summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog52
-rw-r--r--GNUmakefile.am5
-rw-r--r--ManualTests/.gitattributes7
-rw-r--r--ManualTests/ATSU-bad-layout.html24
-rw-r--r--ManualTests/DOMContextMenuEvent.html56
-rw-r--r--ManualTests/Default-port-frame.html12
-rw-r--r--ManualTests/JavaScript-bookmarklets.html55
-rw-r--r--ManualTests/NPN_Invoke/English.lproj/Localized.r17
-rw-r--r--ManualTests/NPN_Invoke/Info.plist30
-rw-r--r--ManualTests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj253
-rw-r--r--ManualTests/NPN_Invoke/main.c265
-rw-r--r--ManualTests/NPN_Invoke/test.html29
-rw-r--r--ManualTests/WebKitSite.webarchivebin0 -> 133460 bytes
-rw-r--r--ManualTests/about-blank-xhr.html10
-rw-r--r--ManualTests/accessibility/java-applet.html20
-rw-r--r--ManualTests/accessibility/resources/AppletTest.classbin0 -> 633 bytes
-rw-r--r--ManualTests/accessibility/resources/AppletTest.java44
-rw-r--r--ManualTests/accidental-strict-mode.html13
-rw-r--r--ManualTests/animate-duration.html65
-rw-r--r--ManualTests/animate-left.html43
-rw-r--r--ManualTests/animate-none.html207
-rw-r--r--ManualTests/animated-gif-bfcache-crash.html50
-rw-r--r--ManualTests/animated-gif-looping.html20
-rw-r--r--ManualTests/animation-with-transition.html60
-rw-r--r--ManualTests/animation/animateColor-by.svg6
-rw-r--r--ManualTests/animation/animateColor-from-by.svg6
-rw-r--r--ManualTests/animation/animateColor-repeat-indefinite.svg6
-rw-r--r--ManualTests/animation/animateColor-to-from.svg6
-rw-r--r--ManualTests/animation/animateColor-to.svg6
-rw-r--r--ManualTests/animation/animateColor-values-simple.svg6
-rw-r--r--ManualTests/animation/animateMotion-to.svg8
-rw-r--r--ManualTests/animation/animateTransform-keyTimes.svg11
-rw-r--r--ManualTests/animation/animateTransform-parser.svg86
-rw-r--r--ManualTests/animation/animateTransform-repeat-once.svg8
-rw-r--r--ManualTests/animation/animateTransform-toanimation.svg9
-rw-r--r--ManualTests/animation/set-to.svg10
-rw-r--r--ManualTests/animation/transitions-and-paused-animations.html71
-rw-r--r--ManualTests/applet-finish-parsing-children.html11
-rw-r--r--ManualTests/applet-param-no-name.html4
-rw-r--r--ManualTests/array-out-of-memory.html42
-rw-r--r--ManualTests/arrow-key-events.html93
-rw-r--r--ManualTests/audio-volume.html28
-rw-r--r--ManualTests/autocompletion-fire-onchange.html40
-rw-r--r--ManualTests/autocorrection/autocorrection-cancelled-by-ESC.html50
-rw-r--r--ManualTests/autocorrection/autocorrection-cancelled-by-typing-1.html45
-rw-r--r--ManualTests/autocorrection/autocorrection-contraction.html45
-rw-r--r--ManualTests/autocorrection/autocorrection-in-iframe.html16
-rw-r--r--ManualTests/autocorrection/close-window-when-correction-is-shown.html48
-rw-r--r--ManualTests/autocorrection/continue-typing-to-dismiss-reversion.html49
-rw-r--r--ManualTests/autocorrection/delete-to-dismiss-reversion.html49
-rw-r--r--ManualTests/autocorrection/delete-to-end-of-word-to-show-reversion.html47
-rw-r--r--ManualTests/autocorrection/dismiss-multiple-guesses.html49
-rw-r--r--ManualTests/autocorrection/document-for-iframe-test.html36
-rw-r--r--ManualTests/autocorrection/move-to-end-of-word-to-show-reversion.html47
-rw-r--r--ManualTests/autocorrection/remove-misspelling-marker-after-appending-letter.html45
-rw-r--r--ManualTests/autocorrection/select-from-multiple-guesses.html49
-rw-r--r--ManualTests/autocorrection/spell-checking-after-reversion.html53
-rw-r--r--ManualTests/autocorrection/spellcheck-on-contraction-when-autocorrection-is-off.html24
-rw-r--r--ManualTests/autocorrection/type-whitespace-to-dismiss-reversion.html48
-rw-r--r--ManualTests/autocorrection/undo-autocorrection.html24
-rw-r--r--ManualTests/autofill-popup-location.html32
-rw-r--r--ManualTests/autofill-popup-width-and-item-direction.html37
-rw-r--r--ManualTests/autofill_alignment.html25
-rw-r--r--ManualTests/autoscroll-over-scrollbar.html8
-rw-r--r--ManualTests/autoscroll-when-outside-window.html7
-rw-r--r--ManualTests/autoscroll.html32
-rw-r--r--ManualTests/back-forward-during-alert-1.html3
-rw-r--r--ManualTests/back-forward-during-alert-2.html10
-rw-r--r--ManualTests/back-from-document-with-scrollbar.html42
-rw-r--r--ManualTests/back.html1
-rw-r--r--ManualTests/background-image-change-in-page-cache.html30
-rw-r--r--ManualTests/bad-clearTimeout-crash.html13
-rw-r--r--ManualTests/bidi-parens.html18
-rw-r--r--ManualTests/bidi-visible-control-characters.html12
-rw-r--r--ManualTests/blackberry/clear-cookie-refresh-result.php10
-rw-r--r--ManualTests/blackberry/clear-cookie-refresh.php4
-rw-r--r--ManualTests/blackberry/clear-localstorage.html30
-rw-r--r--ManualTests/blackberry/http-auth-challenge.html24
-rw-r--r--ManualTests/blackberry/http-auth-challenge.php27
-rw-r--r--ManualTests/blackberry/http-auth-on-200.php6
-rw-r--r--ManualTests/blackberry/http-auth-private-mode-changed.html16
-rw-r--r--ManualTests/blackberry/http-auth-private-mode-changed.php17
-rw-r--r--ManualTests/blackberry/http-cookie-database-set.php14
-rw-r--r--ManualTests/blackberry/http-cookie-database-update.php9
-rw-r--r--ManualTests/blackberry/meta-viewport-initial-scale-wide-content.html21
-rw-r--r--ManualTests/blackberry/notification.html53
-rw-r--r--ManualTests/blackberry/select-popup-items-unicode-display.html15
-rw-r--r--ManualTests/blackberry/selection-touch-override.html2
-rw-r--r--ManualTests/blackberry/slider-thumb-consumes-event.html22
-rw-r--r--ManualTests/blackberry/video-hls-controls.html22
-rw-r--r--ManualTests/blackberry/video-load-with-authentication.html68
-rw-r--r--ManualTests/bugzilla-14899.html33
-rw-r--r--ManualTests/bugzilla-3855.html34
-rw-r--r--ManualTests/bugzilla-48077.html87
-rw-r--r--ManualTests/bugzilla-4840.html26
-rw-r--r--ManualTests/bugzilla-5768.html41
-rw-r--r--ManualTests/bugzilla-83979.svg16
-rw-r--r--ManualTests/canvas-cursor.html41
-rw-r--r--ManualTests/canvas-mask-redraw.html65
-rw-r--r--ManualTests/caret-blink-during-forward-delete.html22
-rw-r--r--ManualTests/caret-image.html9
-rw-r--r--ManualTests/caret-in-columns-flipped.html25
-rw-r--r--ManualTests/caret-in-columns.html21
-rw-r--r--ManualTests/caretScrolling.html18
-rw-r--r--ManualTests/chrome-bidi-text.html5
-rw-r--r--ManualTests/chromium/autofill-popup-shiftupdown.hml16
-rw-r--r--ManualTests/chromium/drag-image-accounts-for-device-scale.html12
-rw-r--r--ManualTests/chromium/modifiers-during-drag-and-drop.html26
-rw-r--r--ManualTests/chromium/no-autofill-on-readonly.html33
-rw-r--r--ManualTests/chromium/onchange-reload-popup.html44
-rw-r--r--ManualTests/chromium/popup-menu-crash.html24
-rw-r--r--ManualTests/chromium/select-close-popup-value-change.html20
-rw-r--r--ManualTests/chromium/suggestions-popup-font-change.html21
-rw-r--r--ManualTests/clear-input-file.html27
-rw-r--r--ManualTests/clearTimeout-crash-bug29832.html20
-rw-r--r--ManualTests/close-on-closedWindow.html39
-rw-r--r--ManualTests/compositing/accel-comp-iframe-tab-repaint.html15
-rw-r--r--ManualTests/compositing/assert-on-tab-switch.html20
-rw-r--r--ManualTests/compositing/caret-in-compositing-frame.html7
-rw-r--r--ManualTests/compositing/font-smoothing.html34
-rw-r--r--ManualTests/compositing/missing-iframe-contents.html33
-rw-r--r--ManualTests/compositing/requires-backing-change.html52
-rw-r--r--ManualTests/compositing/resources/composited-subframe.html28
-rw-r--r--ManualTests/compositing/resources/editable-compositing-subframe.html9
-rw-r--r--ManualTests/compositing/resources/flash-frame.html3
-rw-r--r--ManualTests/compositing/resources/tab-repaint-part-2.html18
-rw-r--r--ManualTests/compositing/show-composited-iframe-on-back-button.html76
-rw-r--r--ManualTests/computed-transform-value.html49
-rw-r--r--ManualTests/containing-block-position-change.html35
-rw-r--r--ManualTests/contenteditable-link.html29
-rw-r--r--ManualTests/context-click-generated-content.html21
-rw-r--r--ManualTests/context-click-unfocused-frame.html17
-rw-r--r--ManualTests/cookieSpeedTest.html28
-rw-r--r--ManualTests/crash-and-no-repaint-after-wake-from-sleep.html186
-rw-r--r--ManualTests/crash-on-accessing-domwindow-without-frame.html22
-rw-r--r--ManualTests/crash-on-find-with-no-selection.html12
-rw-r--r--ManualTests/css3-cursor-fallback-quirks.html64
-rw-r--r--ManualTests/css3-cursor-fallback-strict.html56
-rw-r--r--ManualTests/cur-hotspot.html12
-rw-r--r--ManualTests/cursor-empty-url.html3
-rw-r--r--ManualTests/cursor-max-size.html25
-rw-r--r--ManualTests/cursor.html38
-rw-r--r--ManualTests/cursorfallback.xml32
-rw-r--r--ManualTests/custom-cursors.html10
-rw-r--r--ManualTests/custom-scrollbar-renderer-removed-crash.html11
-rw-r--r--ManualTests/data-transfer-items-file-dragout.html79
-rw-r--r--ManualTests/database-callback-deferred.html17
-rw-r--r--ManualTests/database-threading-stress-test-2.html51
-rw-r--r--ManualTests/database-threading-stress-test.html84
-rw-r--r--ManualTests/debugger-caught-uncaught-exceptions.html35
-rw-r--r--ManualTests/deleteToEndOfLine.html20
-rw-r--r--ManualTests/dictionary-scrolled-iframe.html28
-rw-r--r--ManualTests/directory-drop-on-view.html20
-rw-r--r--ManualTests/disable-javascript-reload.html21
-rw-r--r--ManualTests/disabled-option-elements.html26
-rw-r--r--ManualTests/display-none-option.html11
-rw-r--r--ManualTests/divx-plugin-fails-to-draw.html12
-rw-r--r--ManualTests/dom-manipulation-on-resize.html28
-rw-r--r--ManualTests/dom/document-write-synchronous-after-page-load.html23
-rw-r--r--ManualTests/dom/form-control-for-label.html12
-rw-r--r--ManualTests/dom/progressbar.html15
-rw-r--r--ManualTests/drag-caret.html3
-rw-r--r--ManualTests/drag-color-to-contenteditable.html25
-rw-r--r--ManualTests/drag-cursor-notallowed.html111
-rw-r--r--ManualTests/drag-enter-alert.html29
-rw-r--r--ManualTests/drag-escape.html57
-rw-r--r--ManualTests/drag-image-table-part-decorations.html19
-rw-r--r--ManualTests/drag-image-to-address-bar.html24
-rw-r--r--ManualTests/drag-image-to-desktop.html15
-rw-r--r--ManualTests/drag-image.html27
-rw-r--r--ManualTests/drag-move-in-search-field.html11
-rw-r--r--ManualTests/drag-out-of-background-window.html26
-rw-r--r--ManualTests/drag-with-div-or-image-as-data-image.html55
-rw-r--r--ManualTests/drag_select_highlighting.html14
-rw-r--r--ManualTests/drag_with_opacity.html33
-rw-r--r--ManualTests/drop-in-empty-doc.html6
-rw-r--r--ManualTests/drop-text-acquires-style.html11
-rw-r--r--ManualTests/editing-disabled-node-replace-crash.html13
-rw-r--r--ManualTests/empty-link-target.html28
-rw-r--r--ManualTests/empty-script-crash.html6
-rw-r--r--ManualTests/empty-title-popup.html3
-rw-r--r--ManualTests/eventsource/eventsource-loader-buffering.html54
-rw-r--r--ManualTests/eventsource/eventsource-loader-buffering.php13
-rw-r--r--ManualTests/filters/opacity-above-filter.html27
-rw-r--r--ManualTests/find-count-matches-after-text-control.html14
-rw-r--r--ManualTests/first-line-style-crash.html23
-rw-r--r--ManualTests/fixed-position-no-z-index.html25
-rw-r--r--ManualTests/fixed-position.html92
-rw-r--r--ManualTests/flash-unload-tab.html39
-rw-r--r--ManualTests/flipped-text-rendering.html14
-rw-r--r--ManualTests/focus-change-between-key-events.html24
-rw-r--r--ManualTests/focus-select-when-clicked.html29
-rw-r--r--ManualTests/focusringcolor-change-on-theme-change.html8
-rw-r--r--ManualTests/form-control-madness.html46
-rw-r--r--ManualTests/form-element-spelling.html6
-rw-r--r--ManualTests/form-value-restore.html9
-rw-r--r--ManualTests/forms/calendar-picker-crash-by-type-change.html10
-rw-r--r--ManualTests/forms/calendar-picker.html136
-rw-r--r--ManualTests/forms/color-suggestion-picker.html77
-rw-r--r--ManualTests/frame-hover.html5
-rw-r--r--ManualTests/frame-layout-on-back.html30
-rw-r--r--ManualTests/frames/nested-iframe-blit-on-scroll.html31
-rw-r--r--ManualTests/frames/resources/blit-on-scroll-subframe.html10
-rw-r--r--ManualTests/frames/resources/blit-on-scroll-subsubframe.html10
-rw-r--r--ManualTests/full-screen-keypress.html26
-rw-r--r--ManualTests/fullscreen/full-screen-flash.html28
-rw-r--r--ManualTests/fullscreen/full-screen-zero-width.html17
-rw-r--r--ManualTests/go-back-after-alert.html7
-rw-r--r--ManualTests/goBack-blank-tab-page.html19
-rw-r--r--ManualTests/gtk/caret-browsing.html7
-rw-r--r--ManualTests/gtk/copy-htmltext.html24
-rw-r--r--ManualTests/gtk/cursor-image.html4
-rw-r--r--ManualTests/gtk/floatingdiv.html149
-rw-r--r--ManualTests/gtk/paste-richtext-from-firefox.html30
-rw-r--r--ManualTests/gtk/plugin-resize-scroll.html28
-rw-r--r--ManualTests/gtk/resources/cell.curbin0 -> 326 bytes
-rw-r--r--ManualTests/gtk/resources/long_cell.cur0
-rw-r--r--ManualTests/harfbuzz-mouse-selection-crash.html54
-rw-r--r--ManualTests/hash-ref.html25
-rwxr-xr-xManualTests/iframe_notifications/iframe-reparenting-close-window-child.html29
-rwxr-xr-xManualTests/iframe_notifications/iframe-reparenting-close-window-iframe.html26
-rwxr-xr-xManualTests/iframe_notifications/iframe-reparenting-close-window.html31
-rw-r--r--ManualTests/image-prefetch-stress.html20
-rw-r--r--ManualTests/ime-keydown-preventdefault.html27
-rw-r--r--ManualTests/indexeddb-persists.html69
-rw-r--r--ManualTests/inline-input-marking.html38
-rw-r--r--ManualTests/inline-repaint-container.html12
-rw-r--r--ManualTests/input-empty-on-focus.html6
-rw-r--r--ManualTests/input-file-hidden-open-dialog-on-click.html12
-rw-r--r--ManualTests/input-number-localization.html38
-rw-r--r--ManualTests/input-starved-by-timers.html51
-rw-r--r--ManualTests/input-type-datetime-default-value.html80
-rw-r--r--ManualTests/input-type-file-autocomplete-frame-1.html23
-rw-r--r--ManualTests/input-type-file-autocomplete-frame-2.html7
-rw-r--r--ManualTests/input-type-file-autocomplete-refresh.html10
-rw-r--r--ManualTests/input-type-file-drag-drop.html18
-rw-r--r--ManualTests/input-type-text-unconfirmed-inline-input.html20
-rw-r--r--ManualTests/inspector-document-methods-override.html14
-rw-r--r--ManualTests/inspector-wrappers/console-alert-document-body.html14
-rw-r--r--ManualTests/inspector-wrappers/console-alert-object.html14
-rw-r--r--ManualTests/inspector-wrappers/console-alert-this.html17
-rw-r--r--ManualTests/inspector-wrappers/console-eval.html11
-rw-r--r--ManualTests/inspector-wrappers/console-str-alert-object.html15
-rw-r--r--ManualTests/inspector-wrappers/console-str-getter.html12
-rw-r--r--ManualTests/inspector-wrappers/inspector-evaluate.html11
-rw-r--r--ManualTests/inspector-wrappers/inspector-hasAttributes.html18
-rw-r--r--ManualTests/inspector-wrappers/inspector-treeElementIdentifier.html17
-rw-r--r--ManualTests/inspector-wrappers/inspector-wrappers-test-utils.js46
-rw-r--r--ManualTests/inspector/bp-in-named-eval-after-reload.html65
-rw-r--r--ManualTests/inspector/command-line-api.html6
-rw-r--r--ManualTests/inspector/console-assert.html37
-rw-r--r--ManualTests/inspector/console-call-line-numbers.html14
-rw-r--r--ManualTests/inspector/console-dir.html31
-rw-r--r--ManualTests/inspector/console-log-formatting.html68
-rw-r--r--ManualTests/inspector/console-time.html33
-rw-r--r--ManualTests/inspector/debugger-execution-while-paused.html15
-rw-r--r--ManualTests/inspector/debugger-pause-during-load.html5
-rw-r--r--ManualTests/inspector/debugger-pause-on-else-statements.html18
-rw-r--r--ManualTests/inspector/debugger-pause-on-for-in-statements.html18
-rw-r--r--ManualTests/inspector/debugger-pause-on-for-statements.html16
-rw-r--r--ManualTests/inspector/debugger-scopes-inspection.html35
-rw-r--r--ManualTests/inspector/debugger-shortcuts-with-console-opened.html16
-rw-r--r--ManualTests/inspector/debugger-status-bar-buttons-state.html2
-rw-r--r--ManualTests/inspector/debugger-step-on-do-while-statements.html29
-rw-r--r--ManualTests/inspector/debugger-step-on-for-in-statements.html35
-rw-r--r--ManualTests/inspector/debugger-step-on-for-statements.html28
-rw-r--r--ManualTests/inspector/debugger-step-on-while-statements.html29
-rw-r--r--ManualTests/inspector/debugger-watch-expressions.html115
-rw-r--r--ManualTests/inspector/display-form-data.html249
-rw-r--r--ManualTests/inspector/display-sql-null.html21
-rw-r--r--ManualTests/inspector/display-sql-transaction-error.html24
-rw-r--r--ManualTests/inspector/dom-mutation.html31
-rw-r--r--ManualTests/inspector/duplicate-resource-urls.html61
-rw-r--r--ManualTests/inspector/error-warning-count.html60
-rw-r--r--ManualTests/inspector/errors-with-space in-url.html7
-rw-r--r--ManualTests/inspector/escape-links.html1
-rw-r--r--ManualTests/inspector/forzen-ui-while-paused.html11
-rw-r--r--ManualTests/inspector/hidden-evals.html118
-rw-r--r--ManualTests/inspector/highlight-nodes.html23
-rw-r--r--ManualTests/inspector/highlight-source-line.html4
-rw-r--r--ManualTests/inspector/multiple-console-messages.html86
-rw-r--r--ManualTests/inspector/named-evals.html72
-rw-r--r--ManualTests/inspector/profiler-test-call.html35
-rw-r--r--ManualTests/inspector/profiler-test-many-calls-in-the-same-scope.html42
-rw-r--r--ManualTests/inspector/remember-last-script.html42
-rw-r--r--ManualTests/inspector/resources/loop-statements.js22
-rw-r--r--ManualTests/inspector/resources/mutate-frame-2.html12
-rw-r--r--ManualTests/inspector/resources/mutate-frame.html10
-rw-r--r--ManualTests/inspector/resources/script-console-calls.js8
-rw-r--r--ManualTests/inspector/resources/script-error.js6
-rw-r--r--ManualTests/inspector/returnEvent-crash.html17
-rw-r--r--ManualTests/inspector/styled-error-bubbles-in-scripts.html6
-rw-r--r--ManualTests/inspector/webinspector-log.html22
-rw-r--r--ManualTests/interrupted-compound-transform.html79
-rw-r--r--ManualTests/invalid-mouse-event.html23
-rw-r--r--ManualTests/item-background.html155
-rw-r--r--ManualTests/java-string-object-type.html24
-rw-r--r--ManualTests/js-timers-beneath-modal-dialog.html19
-rw-r--r--ManualTests/keep_spelling_markers.html24
-rw-r--r--ManualTests/keyboard-menukey-event.html31
-rw-r--r--ManualTests/keyboard_select_elements_with_same_beginning.html29
-rw-r--r--ManualTests/keyboard_select_non_english.html36
-rw-r--r--ManualTests/korean-input-space.htmlbin0 -> 1248 bytes
-rw-r--r--ManualTests/large-size-image-crash.html6
-rw-r--r--ManualTests/layoutroot_detach.xml33
-rw-r--r--ManualTests/left-overflow-repaint.html61
-rw-r--r--ManualTests/link-activation-fails-after-double-tap-gesture.html7
-rw-r--r--ManualTests/link-cursor-auto.html24
-rw-r--r--ManualTests/linkjump-1.html79
-rw-r--r--ManualTests/linkjump-2.html37
-rw-r--r--ManualTests/linkjump-3.html125
-rw-r--r--ManualTests/linkjump-4.html132
-rw-r--r--ManualTests/linkjump-5.html24
-rw-r--r--ManualTests/liveconnect-applet-array-parameters.html32
-rw-r--r--ManualTests/liveconnect-applet-get-boolean.html7
-rw-r--r--ManualTests/liveconnect-security-exception.html32
-rw-r--r--ManualTests/load-deferrer-resume-crash.html33
-rw-r--r--ManualTests/load-deferrer-script-element.html44
-rw-r--r--ManualTests/localstorage-empty-database.html16
-rw-r--r--ManualTests/localstorage-value-truncation.html31
-rw-r--r--ManualTests/location-host-canonicalization.html15
-rw-r--r--ManualTests/log-keypress-events.html34
-rw-r--r--ManualTests/mail-attachments.html16
-rw-r--r--ManualTests/mask-composite-missing-images.html23
-rw-r--r--ManualTests/match-marker-rects.html33
-rw-r--r--ManualTests/media-controls-when-javascript-disabled.html26
-rw-r--r--ManualTests/media-controls.html268
-rw-r--r--ManualTests/media-default-playback-rate.html90
-rw-r--r--ManualTests/media-elements/video-preload.html230
-rw-r--r--ManualTests/media-elements/video-replaces-poster.html15
-rw-r--r--ManualTests/media-muted.html32
-rw-r--r--ManualTests/memory/MessageUidsAlreadyDownloaded24296
-rw-r--r--ManualTests/memory/string-growth.html16
-rw-r--r--ManualTests/memory/xhr-multiple-requests-responseText.html57
-rw-r--r--ManualTests/memory/xhr-multiple-requests-responseXML.html117
-rw-r--r--ManualTests/memory/xhr-multiple-requests.html55
-rw-r--r--ManualTests/memory/xhr-repeated-string-access.xml43
-rw-r--r--ManualTests/modal-dialog-arguments.html19
-rw-r--r--ManualTests/modal-dialog-blur-selfclose.html3
-rw-r--r--ManualTests/modal-dialog-blur.html34
-rw-r--r--ManualTests/modal-dialog.html27
-rw-r--r--ManualTests/mouseevent-on-closeddoc.html22
-rw-r--r--ManualTests/mouseevents-on-textnodes.html43
-rw-r--r--ManualTests/mutate-unfocused-text-with-selection.html24
-rw-r--r--ManualTests/named-window-blank-target.html19
-rw-r--r--ManualTests/navigation-during-onload-triggered-by-back.html16
-rw-r--r--ManualTests/nested-fixed-position.html93
-rw-r--r--ManualTests/nested-plug-ins.html45
-rw-r--r--ManualTests/new-window-subresource-crash.html20
-rw-r--r--ManualTests/no-listbox-rendering.html66
-rw-r--r--ManualTests/no-repaint-after-wake-from-sleep.html183
-rw-r--r--ManualTests/non-bmp.html12
-rw-r--r--ManualTests/onbeforeunload-close_with_javascript.html40
-rw-r--r--ManualTests/onclick_in_noncontent.html19
-rw-r--r--ManualTests/onfocus-alert-blinking-caret.html8
-rw-r--r--ManualTests/onsearch-enter.html7
-rw-r--r--ManualTests/onunload-form-submit-crash.html9
-rw-r--r--ManualTests/open-after-close.html16
-rw-r--r--ManualTests/open-close-tokenizer-crash.html6
-rw-r--r--ManualTests/open-url-undefined.html11
-rw-r--r--ManualTests/optgroup-empty-and-nested.html80
-rw-r--r--ManualTests/overlappingTableSpans.html27
-rw-r--r--ManualTests/paint-during-plugin-attach.html0
-rw-r--r--ManualTests/panScroll.html32
-rw-r--r--ManualTests/partially-opaque-form-elements.html27
-rw-r--r--ManualTests/partially-opaque-text-input.html25
-rw-r--r--ManualTests/password-caps-lock.html24
-rw-r--r--ManualTests/password-ctrl-click-lose-focus.html23
-rw-r--r--ManualTests/paste-crash.html26
-rw-r--r--ManualTests/plain-text-paste.html57
-rw-r--r--ManualTests/plug-in-mutates-NSView-hierarchy-during-resize.html37
-rw-r--r--ManualTests/plugin-controller-datasource.html23
-rw-r--r--ManualTests/plugin-in-iframe-scroll.html7
-rw-r--r--ManualTests/plugin-visible-rect-change.html25
-rw-r--r--ManualTests/plugins/flip4mac-update-alert-over-navigation.html30
-rw-r--r--ManualTests/plugins/gtk-windowed-grey-glitch.html20
-rw-r--r--ManualTests/plugins/object-clipping.html22
-rw-r--r--ManualTests/plugins/plugin-paint-causes-layout.html39
-rw-r--r--ManualTests/plugins/test.swfbin0 -> 10085 bytes
-rw-r--r--ManualTests/plugins/timeout-dialog-displayed-over-navigation.html25
-rw-r--r--ManualTests/plugins/timeout-dialog-displayed-over-navigation.swfbin0 -> 5705 bytes
-rw-r--r--ManualTests/plugins/windowed-in-iframe-2.html26
-rw-r--r--ManualTests/plugins/windowed-in-iframe.html21
-rw-r--r--ManualTests/plugins/windowed.html109
-rw-r--r--ManualTests/plugins/windowless.html108
-rw-r--r--ManualTests/pointer-events.html203
-rw-r--r--ManualTests/pop-up-alignment-and-direction.htmlbin0 -> 4730 bytes
-rw-r--r--ManualTests/popup-width-restriction-within-screen.html71
-rw-r--r--ManualTests/post-multi-file-upload.html35
-rw-r--r--ManualTests/pre-tab-selection-rect.html66
-rw-r--r--ManualTests/preload-scanner-entities.html7
-rw-r--r--ManualTests/print-after-window-close.html9
-rw-r--r--ManualTests/print-before-load.html16
-rw-r--r--ManualTests/print-onload-with-image.html13
-rw-r--r--ManualTests/print-with-height-transition-in-screen-stylesheet.html26
-rw-r--r--ManualTests/property-map-save-crash.html49
-rw-r--r--ManualTests/qt/control_paiting_with_transforms.html23
-rw-r--r--ManualTests/qt/double-tap-overscroll.html4
-rw-r--r--ManualTests/qt/main.html10
-rw-r--r--ManualTests/qt/numpad-enter-key.html22
-rw-r--r--ManualTests/qt/plugin-iframe.html26
-rw-r--r--ManualTests/qt/plugin-painting.html60
-rw-r--r--ManualTests/qt/plugin-sibling-frame-include.html17
-rw-r--r--ManualTests/qt/plugin-sibling-frame.html6
-rw-r--r--ManualTests/qt/qtplugin-scrolling.html32
-rw-r--r--ManualTests/qt/qtplugin.html27
-rw-r--r--ManualTests/qt/tap-highlighting-colors.html12
-rw-r--r--ManualTests/qt/tap-highlighting-images.html6
-rw-r--r--ManualTests/qt/tap-highlighting-inlines.html9
-rw-r--r--ManualTests/qt/tap-highlighting-overflow-hidden.html87
-rw-r--r--ManualTests/qt/tap-highlighting.html11
-rw-r--r--ManualTests/qt/unload-alert.html8
-rw-r--r--ManualTests/quit-inside-unload.html14
-rw-r--r--ManualTests/redirect.html2
-rw-r--r--ManualTests/redirectHistory/redir-1.html10
-rw-r--r--ManualTests/redirectHistory/redir-2.html9
-rw-r--r--ManualTests/redirectHistory/redir-3.html11
-rw-r--r--ManualTests/redirection-target.html6
-rw-r--r--ManualTests/redraw-page-cache-visited-links.html34
-rw-r--r--ManualTests/remove-add-fixed-position.html93
-rw-r--r--ManualTests/remove-form-node-with-radio-buttons-crash.html33
-rw-r--r--ManualTests/remove-input-file-onchange.html42
-rw-r--r--ManualTests/remove-on-drop-crash.html10
-rw-r--r--ManualTests/remove-select-onchange.html9
-rw-r--r--ManualTests/reset-initiatedDrag.html27
-rw-r--r--ManualTests/resize-events.html48
-rw-r--r--ManualTests/resources/200x100.pngbin0 -> 236 bytes
-rw-r--r--ManualTests/resources/200x200.pngbin0 -> 314 bytes
-rw-r--r--ManualTests/resources/3dolph.gifbin0 -> 17455 bytes
-rw-r--r--ManualTests/resources/ArrayParameterTestApplet.classbin0 -> 2145 bytes
-rw-r--r--ManualTests/resources/ArrayParameterTestApplet.java89
-rw-r--r--ManualTests/resources/CheckerApplet.classbin0 -> 425 bytes
-rw-r--r--ManualTests/resources/CheckerApplet.java21
-rw-r--r--ManualTests/resources/Default-port-frame-contents.html4
-rw-r--r--ManualTests/resources/DrawMessage.classbin0 -> 1219 bytes
-rw-r--r--ManualTests/resources/StringTypeTest.classbin0 -> 354 bytes
-rw-r--r--ManualTests/resources/StringTypeTest.java7
-rw-r--r--ManualTests/resources/TestApplet.classbin0 -> 427 bytes
-rw-r--r--ManualTests/resources/TestApplet.java16
-rw-r--r--ManualTests/resources/alert-and-go-back.html4
-rw-r--r--ManualTests/resources/animated-10x.gifbin0 -> 1253 bytes
-rw-r--r--ManualTests/resources/animated-2x.gifbin0 -> 2311 bytes
-rw-r--r--ManualTests/resources/animated-infinite.gifbin0 -> 1661 bytes
-rw-r--r--ManualTests/resources/apple.jpgbin0 -> 6388 bytes
-rw-r--r--ManualTests/resources/before-go-back.html17
-rw-r--r--ManualTests/resources/big-page.html2
-rw-r--r--ManualTests/resources/chrome-bidi-text-window.html61
-rw-r--r--ManualTests/resources/containsAnimatedGif.html3
-rw-r--r--ManualTests/resources/cur-hotspot.curbin0 -> 4286 bytes
-rw-r--r--ManualTests/resources/cursor-empty-url.css1
-rw-r--r--ManualTests/resources/drag-image.pngbin0 -> 229 bytes
-rw-r--r--ManualTests/resources/drop-in-empty-doc.xhtml0
-rw-r--r--ManualTests/resources/empty-document-goes-back.html8
-rw-r--r--ManualTests/resources/empty-file.js0
-rw-r--r--ManualTests/resources/favicon-loads-for-local-files.html10
-rw-r--r--ManualTests/resources/favicon.pngbin0 -> 3961 bytes
-rw-r--r--ManualTests/resources/frame-textarea.html9
-rw-r--r--ManualTests/resources/frame1.html8
-rw-r--r--ManualTests/resources/frame2.html8
-rw-r--r--ManualTests/resources/hash-ref-test.html24
-rw-r--r--ManualTests/resources/helpCursor.tiffbin0 -> 274 bytes
-rw-r--r--ManualTests/resources/hover-subframe-1.html29
-rw-r--r--ManualTests/resources/hover-subframe-2.html29
-rw-r--r--ManualTests/resources/iframe-reloaded-on-touch.html3
-rw-r--r--ManualTests/resources/large-size-image-crash.gifbin0 -> 16204 bytes
-rw-r--r--ManualTests/resources/liveconnect-security-exception-popup.html47
-rw-r--r--ManualTests/resources/load-deferrer-script-element.js5
-rw-r--r--ManualTests/resources/lorem-text.html34
-rw-r--r--ManualTests/resources/mouseevent-on-closeddoc.html1
-rwxr-xr-xManualTests/resources/multiFileResources/post-echo-and-notify-done.cgi12
-rw-r--r--ManualTests/resources/multiFileResources/testFile1.html4
-rw-r--r--ManualTests/resources/multiFileResources/testFile2.html4
-rw-r--r--ManualTests/resources/multiFileResources/testFile3.html5
-rw-r--r--ManualTests/resources/named-window-blank-target-step2.html19
-rw-r--r--ManualTests/resources/named-window-blank-target-step3.html14
-rw-r--r--ManualTests/resources/named-window-blank-target-step4.html14
-rw-r--r--ManualTests/resources/navigation-during-onload-container.html10
-rw-r--r--ManualTests/resources/nested-plug-ins-inner-frame.html1
-rw-r--r--ManualTests/resources/nested-plug-ins-outer-frame.html3
-rw-r--r--ManualTests/resources/nestedframesets.html4
-rw-r--r--ManualTests/resources/non-animated.gifbin0 -> 1642 bytes
-rw-r--r--ManualTests/resources/open-after-close-popup.html5
-rw-r--r--ManualTests/resources/open-close-tokenizer-crash.html8
-rw-r--r--ManualTests/resources/orange.movbin0 -> 875 bytes
-rw-r--r--ManualTests/resources/plain-text-paste.dmgbin0 -> 63687 bytes
-rw-r--r--ManualTests/resources/plugin-in-iframe-scroll-iframe.html6
-rw-r--r--ManualTests/resources/popup200x100.html8
-rw-r--r--ManualTests/resources/popup200x200.html8
-rw-r--r--ManualTests/resources/print-subframe.html1
-rw-r--r--ManualTests/resources/redraw-page-cache-visited-links-2.html19
-rw-r--r--ManualTests/resources/simple-iframe.html5
-rw-r--r--ManualTests/resources/simple_image.pngbin0 -> 10585 bytes
-rw-r--r--ManualTests/resources/spinbox.swfbin0 -> 1083 bytes
-rw-r--r--ManualTests/resources/testframe-link_text.html5
-rw-r--r--ManualTests/resources/testframeset.html4
-rw-r--r--ManualTests/resources/textarea-form-back-on-submit.html16
-rw-r--r--ManualTests/resources/touch-poster.pngbin0 -> 11681 bytes
-rw-r--r--ManualTests/resources/video-tab.html1
-rw-r--r--ManualTests/resources/webkit-background.pngbin0 -> 41522 bytes
-rw-r--r--ManualTests/resources/will-go-back.html11
-rw-r--r--ManualTests/resources/window-close-during-parsing-popup1.html11
-rw-r--r--ManualTests/resources/window-close-during-parsing-popup2.html7
-rw-r--r--ManualTests/resources/write-after-open-popup.html5
-rw-r--r--ManualTests/right-click-crash.html6
-rw-r--r--ManualTests/screen-availLeft.html27
-rw-r--r--ManualTests/scrollIntoView-horizontal.html33
-rw-r--r--ManualTests/scrollIntoView-vertical.html45
-rw-r--r--ManualTests/scrollable-positioned-frame.html7
-rw-r--r--ManualTests/scrollable-positioned-nested-frame.html7
-rw-r--r--ManualTests/scrollbar-crash-on-hide-scrolled-area.html40
-rw-r--r--ManualTests/scrollbar-hittest.html26
-rw-r--r--ManualTests/scrollbar-hittest2.html21
-rw-r--r--ManualTests/scrollbar-hover-active.html76
-rw-r--r--ManualTests/scrolling-nestedframesets.html28
-rw-r--r--ManualTests/search-cancel-button.html11
-rw-r--r--ManualTests/secure-keyboard-enabled-after-submit.html34
-rw-r--r--ManualTests/select-delete-item.html21
-rw-r--r--ManualTests/select-element-type-select.html33
-rw-r--r--ManualTests/select-narrow-width.html48
-rw-r--r--ManualTests/select-onchange-after-js.html47
-rw-r--r--ManualTests/select-option-in-onload.html30
-rw-r--r--ManualTests/select-page-scroll.html33
-rw-r--r--ManualTests/select-popup-on-spacebar.html29
-rw-r--r--ManualTests/select-popup-tooltip-test.html19
-rw-r--r--ManualTests/select-scroll.html34
-rw-r--r--ManualTests/select-webkit-appearance-off-narrow-select.html49
-rw-r--r--ManualTests/select_alignment.html34
-rw-r--r--ManualTests/select_dropdown_box_alignment.html30
-rw-r--r--ManualTests/select_hr.html234
-rw-r--r--ManualTests/select_webkit_appearance_off_popup_alignment.html78
-rw-r--r--ManualTests/selection-drag-crash.html14
-rw-r--r--ManualTests/selection-start-after-inserting-line-break-in-textarea.html25
-rw-r--r--ManualTests/show-hide-object.html64
-rw-r--r--ManualTests/show-modal-dialog-test.html15
-rw-r--r--ManualTests/showModalDialog-returnValue.html13
-rw-r--r--ManualTests/simple-image-compositing.html76
-rw-r--r--ManualTests/slider-thumb-tracking.html28
-rw-r--r--ManualTests/spatial-navigation/frameset.html7
-rw-r--r--ManualTests/spatial-navigation/links.html8
-rw-r--r--ManualTests/spatial-navigation/spatial-navigation-test-cases.html147
-rw-r--r--ManualTests/stale-currentEvent.html57
-rw-r--r--ManualTests/stale-scrollbar-client-crash.html54
-rw-r--r--ManualTests/style-keypress-events.html38
-rw-r--r--ManualTests/submit-form-with-target-twice.html15
-rw-r--r--ManualTests/subview-click-assertion.html32
-rw-r--r--ManualTests/svg-animateTransform-calcMode-discrete.svg6
-rw-r--r--ManualTests/svg-animated-gifs.svg17
-rw-r--r--ManualTests/svg-animation-css-transform.html20
-rw-r--r--ManualTests/svg-animation-parseValues.svg15
-rw-r--r--ManualTests/svg-crash-hovering-use.svg30
-rw-r--r--ManualTests/svg-css-animate-compound.html82
-rw-r--r--ManualTests/svg-css-transition-compound.html93
-rw-r--r--ManualTests/svg-cursor-changes.svg29
-rw-r--r--ManualTests/svg-deep-clone-to-new-doc.html56
-rw-r--r--ManualTests/svg-filter-animation.svg120
-rw-r--r--ManualTests/svg-link-hover-use.svg9
-rw-r--r--ManualTests/svg-links.svg12
-rw-r--r--ManualTests/svg-modify-deleted-selection.svg16
-rw-r--r--ManualTests/svg-node-count-vs-scroll.xhtml42
-rw-r--r--ManualTests/svg-repaint-foreignObject.svg81
-rw-r--r--ManualTests/svg-repaint-group.svg81
-rw-r--r--ManualTests/svg-repaint-image.svg77
-rw-r--r--ManualTests/svg-repaint-path.svg77
-rwxr-xr-xManualTests/svg-text-float-not-removed-crash.html34
-rw-r--r--ManualTests/svg-text-selection.svg9
-rw-r--r--ManualTests/svg-tooltip.svg62
-rw-r--r--ManualTests/system-color-change.html7
-rw-r--r--ManualTests/tabbing-input-google.html24
-rw-r--r--ManualTests/tap-gesture-in-iframe-with-tap-highlight-crash.html12
-rw-r--r--ManualTests/target-test.html1
-rw-r--r--ManualTests/target_new-1.html11
-rw-r--r--ManualTests/target_new.html28
-rw-r--r--ManualTests/targeted.html1
-rw-r--r--ManualTests/template.html21
-rw-r--r--ManualTests/test-iframes-loading-the-same-resource.html19
-rw-r--r--ManualTests/text-field-autoscroll.html23
-rw-r--r--ManualTests/textarea-after-stylesheet-link.html18
-rw-r--r--ManualTests/textarea-caret-position-after-auto-spell-correct.html14
-rw-r--r--ManualTests/textarea-focus.html29
-rw-r--r--ManualTests/textarea-iframe-navigation.html17
-rw-r--r--ManualTests/textarea-iframe-navigation2.html12
-rw-r--r--ManualTests/textarea-onpaste.html9
-rw-r--r--ManualTests/textarea-reset-default-value.html24
-rw-r--r--ManualTests/textfield-onblur.html37
-rw-r--r--ManualTests/timeout-test.html13
-rw-r--r--ManualTests/timeout-test.php3
-rw-r--r--ManualTests/title-internal-whitespace.html12
-rw-r--r--ManualTests/touch-stale-iframe-crash.html4
-rw-r--r--ManualTests/transition-accelerated.html46
-rw-r--r--ManualTests/transition-delay.html59
-rw-r--r--ManualTests/transition-events.html90
-rw-r--r--ManualTests/transition-left.html46
-rw-r--r--ManualTests/transition-timing-functions.html122
-rw-r--r--ManualTests/transitions.html54
-rw-r--r--ManualTests/transitions2.html52
-rw-r--r--ManualTests/typed-array-memory.html221
-rw-r--r--ManualTests/update-empty-popup.html28
-rw-r--r--ManualTests/user-drag-with-decorations.html7
-rw-r--r--ManualTests/user-media-request-crash.html28
-rw-r--r--ManualTests/video-in-non-frontmost-tab.html4
-rw-r--r--ManualTests/video-player.html103
-rw-r--r--ManualTests/video-rtsp.html9
-rw-r--r--ManualTests/video-statistics.html79
-rw-r--r--ManualTests/video-waiting-seeking.html81
-rw-r--r--ManualTests/viewport-width-test-after-history-navigation.html40
-rw-r--r--ManualTests/visited-link-new-window.html18
-rw-r--r--ManualTests/webarchive-test.html9
-rw-r--r--ManualTests/whitespace-pre-affinity.html16
-rw-r--r--ManualTests/win/contextmenu-key.html112
-rw-r--r--ManualTests/win/contextmenu-key2.html13
-rw-r--r--ManualTests/win/contextmenu-key3.html8
-rw-r--r--ManualTests/win/milliondollar.html137
-rw-r--r--ManualTests/win/select-menu-off-screen.html22
-rw-r--r--ManualTests/window-close-during-parsing.html18
-rw-r--r--ManualTests/window-open-features-parsing.html38
-rw-r--r--ManualTests/window-print-subframe.html5
-rw-r--r--ManualTests/window-sizing.html126
-rw-r--r--ManualTests/word-spacing-highlight.html15
-rw-r--r--ManualTests/wordXML-selectall.xml3
-rw-r--r--ManualTests/write-after-open.html42
-rw-r--r--ManualTests/xhr-failure-behind-alert.html10
-rw-r--r--PerformanceTests/.gitattributes7
-rw-r--r--PerformanceTests/Animation/balls.html274
-rw-r--r--PerformanceTests/Bindings/append-child.html22
-rw-r--r--PerformanceTests/Bindings/create-element.html14
-rw-r--r--PerformanceTests/Bindings/event-target-wrapper.html31
-rw-r--r--PerformanceTests/Bindings/first-child.html18
-rw-r--r--PerformanceTests/Bindings/get-attribute.html18
-rw-r--r--PerformanceTests/Bindings/get-element-by-id.html15
-rw-r--r--PerformanceTests/Bindings/get-elements-by-tag-name.html15
-rw-r--r--PerformanceTests/Bindings/id-getter.html18
-rw-r--r--PerformanceTests/Bindings/id-setter.html18
-rw-r--r--PerformanceTests/Bindings/insert-before.html24
-rw-r--r--PerformanceTests/Bindings/node-list-access.html20
-rw-r--r--PerformanceTests/Bindings/scroll-top.html15
-rw-r--r--PerformanceTests/Bindings/set-attribute.html18
-rw-r--r--PerformanceTests/Bindings/typed-array-construct-from-array.html17
-rw-r--r--PerformanceTests/Bindings/typed-array-construct-from-same-type.html16
-rw-r--r--PerformanceTests/Bindings/typed-array-construct-from-typed.html16
-rw-r--r--PerformanceTests/Bindings/typed-array-set-from-typed.html18
-rw-r--r--PerformanceTests/Bindings/undefined-first-child.html17
-rw-r--r--PerformanceTests/Bindings/undefined-get-element-by-id.html14
-rw-r--r--PerformanceTests/Bindings/undefined-id-getter.html17
-rw-r--r--PerformanceTests/CSS/CSSPropertySetterGetter.html82
-rw-r--r--PerformanceTests/CSS/CSSPropertyUpdateValue.html80
-rw-r--r--PerformanceTests/ChangeLog2729
-rw-r--r--PerformanceTests/DOM/Accessors.html10
-rw-r--r--PerformanceTests/DOM/CloneNodes.html10
-rw-r--r--PerformanceTests/DOM/CreateNodes.html10
-rw-r--r--PerformanceTests/DOM/DOMDivWalk.html10
-rw-r--r--PerformanceTests/DOM/DOMTable.html13
-rw-r--r--PerformanceTests/DOM/DOMWalk.html10
-rw-r--r--PerformanceTests/DOM/Events.html10
-rw-r--r--PerformanceTests/DOM/GetElement.html10
-rw-r--r--PerformanceTests/DOM/GridSort.html10
-rw-r--r--PerformanceTests/DOM/Template.html10
-rw-r--r--PerformanceTests/DOM/resources/dom-perf.js353
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/accessors.js154
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/clonenodes.js99
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/createnodes.js229
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/domdivwalk.js175
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/domtable.js181
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/domwalk.js153
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/events.js274
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/getelement.js207
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/gridsort.js166
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/suites.js12
-rw-r--r--PerformanceTests/DOM/resources/dom-perf/template.js1180
-rw-r--r--PerformanceTests/DOM/textarea-dom.html25
-rw-r--r--PerformanceTests/DOM/textarea-edit.html22
-rw-r--r--PerformanceTests/Dromaeo/cssquery-dojo.html15
-rw-r--r--PerformanceTests/Dromaeo/cssquery-jquery.html15
-rw-r--r--PerformanceTests/Dromaeo/cssquery-prototype.html15
-rw-r--r--PerformanceTests/Dromaeo/dom-attr.html15
-rw-r--r--PerformanceTests/Dromaeo/dom-modify.html15
-rw-r--r--PerformanceTests/Dromaeo/dom-query.html15
-rw-r--r--PerformanceTests/Dromaeo/dom-traverse.html15
-rw-r--r--PerformanceTests/Dromaeo/dromaeo-3d-cube.html15
-rw-r--r--PerformanceTests/Dromaeo/dromaeo-core-eval.html15
-rw-r--r--PerformanceTests/Dromaeo/dromaeo-object-array.html15
-rw-r--r--PerformanceTests/Dromaeo/dromaeo-object-regexp.html15
-rw-r--r--PerformanceTests/Dromaeo/dromaeo-object-string.html15
-rw-r--r--PerformanceTests/Dromaeo/dromaeo-string-base64.html15
-rw-r--r--PerformanceTests/Dromaeo/jslib-attr-jquery.html15
-rw-r--r--PerformanceTests/Dromaeo/jslib-attr-prototype.html15
-rw-r--r--PerformanceTests/Dromaeo/jslib-event-jquery.html15
-rw-r--r--PerformanceTests/Dromaeo/jslib-event-prototype.html15
-rw-r--r--PerformanceTests/Dromaeo/jslib-modify-jquery.html15
-rw-r--r--PerformanceTests/Dromaeo/jslib-modify-prototype.html15
-rw-r--r--PerformanceTests/Dromaeo/jslib-style-jquery.html15
-rw-r--r--PerformanceTests/Dromaeo/jslib-style-prototype.html15
-rw-r--r--PerformanceTests/Dromaeo/jslib-traverse-jquery.html15
-rw-r--r--PerformanceTests/Dromaeo/jslib-traverse-prototype.html15
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/application.css115
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/favicon.icobin0 -> 1406 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/favicon.pngbin0 -> 448 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/htmlrunner.js4
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/ie.css30
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/bg.pngbin0 -> 711 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/clouds.pngbin0 -> 1130 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/clouds2.pngbin0 -> 1341 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/comets.pngbin0 -> 4047 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino1.pngbin0 -> 1276 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino2.pngbin0 -> 1354 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino3.pngbin0 -> 3345 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino4.pngbin0 -> 1331 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino5.pngbin0 -> 2360 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino6.pngbin0 -> 1374 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino7.pngbin0 -> 2445 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino8.pngbin0 -> 2090 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/left.pngbin0 -> 8908 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo.pngbin0 -> 24809 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo2.pngbin0 -> 19809 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo3.pngbin0 -> 9172 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/right.pngbin0 -> 1821 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/top.pngbin0 -> 890 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/images/water.pngbin0 -> 1371 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/index.html62
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/jquery.js3408
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/lib/dojo-1.6.1.js11363
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/lib/jquery-1.6.4.js9046
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/lib/prototype-1.7.js6082
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/pngfix.js28
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/reset.css38
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/test-head.html4
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/test-head.js2
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/test-tail.html4
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/test-tail.js1
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/72px.pngbin0 -> 9034 bytes
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/MANIFEST.json442
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-dojo.html3063
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html3062
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-prototype.html3062
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-attr.html2943
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-modify.html2973
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-query.html3000
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-traverse.html2972
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-3d-cube.html340
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-core-eval.html35
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-array.html64
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-regexp.html383
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-string.html202
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-string-base64.html155
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html2949
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-attr-prototype.html2949
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html2936
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-event-prototype.html2936
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html2960
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-prototype.html2960
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html2958
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-style-prototype.html2959
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html2960
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-traverse-prototype.html2960
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-3d-morph.html44
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html460
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-binary-trees.html64
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-fannkuch.html80
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-nbody.html181
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-nsieve.html48
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-3bit-bits-in-byte.html46
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bits-in-byte.html35
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html42
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-nsieve-bits.html42
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-controlflow-recursive.html46
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-aes.html443
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-md5.html300
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-sha1.html238
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-tofte.html312
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-xparb.html431
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html103
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-partial-sums.html44
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-spectral-norm.html64
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-regexp-dna.html1740
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-fasta.html104
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html282
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-unpack-code.html81
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-validate-input.html109
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-crypto.html1705
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-deltablue.html887
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-earley-boyer.html4693
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-raytrace.html3444
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-richards.html549
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/web-style.css24
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeo/web/webrunner.js805
-rw-r--r--PerformanceTests/Dromaeo/resources/dromaeorunner.js91
-rw-r--r--PerformanceTests/Dromaeo/sunspider-3d-morph.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-3d-raytrace.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-access-binary-trees.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-access-fannkuch.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-access-nbody.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-access-nsieve.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-bitops-3bit-bits-in-byte.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-bitops-bits-in-byte.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-bitops-bitwise-and.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-bitops-nsieve-bits.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-controlflow-recursive.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-crypto-aes.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-crypto-md5.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-crypto-sha1.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-date-format-tofte.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-date-format-xparb.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-math-cordic.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-math-partial-sums.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-math-spectral-norm.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-regexp-dna.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-string-fasta.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-string-tagcloud.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-string-unpack-code.html15
-rw-r--r--PerformanceTests/Dromaeo/sunspider-string-validate-input.html15
-rw-r--r--PerformanceTests/Dromaeo/v8-crypto.html15
-rw-r--r--PerformanceTests/Dromaeo/v8-deltablue.html15
-rw-r--r--PerformanceTests/Dromaeo/v8-earley-boyer.html15
-rw-r--r--PerformanceTests/Dromaeo/v8-raytrace.html15
-rw-r--r--PerformanceTests/Dromaeo/v8-richards.html15
-rw-r--r--PerformanceTests/Interactive/resources/window-resize.js31
-rw-r--r--PerformanceTests/Interactive/window-resize.html5
-rw-r--r--PerformanceTests/Layout/flexbox-column-nowrap.html35
-rw-r--r--PerformanceTests/Layout/flexbox-column-wrap.html35
-rw-r--r--PerformanceTests/Layout/flexbox-row-nowrap.html35
-rw-r--r--PerformanceTests/Layout/flexbox-row-wrap.html35
-rw-r--r--PerformanceTests/Layout/floats_100_100.html15
-rw-r--r--PerformanceTests/Layout/floats_100_100_nested.html15
-rw-r--r--PerformanceTests/Layout/floats_20_100.html15
-rw-r--r--PerformanceTests/Layout/floats_20_100_nested.html15
-rw-r--r--PerformanceTests/Layout/floats_2_100.html15
-rw-r--r--PerformanceTests/Layout/floats_2_100_nested.html15
-rw-r--r--PerformanceTests/Layout/floats_50_100.html15
-rw-r--r--PerformanceTests/Layout/floats_50_100_nested.html15
-rw-r--r--PerformanceTests/Layout/line-layout.html92
-rw-r--r--PerformanceTests/Layout/resources/floats.css18
-rw-r--r--PerformanceTests/Layout/resources/floats.js57
-rw-r--r--PerformanceTests/Mutation/append-child-deep.html62
-rw-r--r--PerformanceTests/Mutation/append-child.html59
-rw-r--r--PerformanceTests/Mutation/inner-html.html55
-rw-r--r--PerformanceTests/Mutation/remove-child-deep.html66
-rw-r--r--PerformanceTests/Mutation/remove-child.html64
-rw-r--r--PerformanceTests/PageLoad/svg/LICENSES37
-rw-r--r--PerformanceTests/PageLoad/svg/files/33041-Samurai.svg215
-rw-r--r--PerformanceTests/PageLoad/svg/files/42450-under the see.svg3946
-rw-r--r--PerformanceTests/PageLoad/svg/files/42470-flower_from_my_garden_v2.svg1914
-rw-r--r--PerformanceTests/PageLoad/svg/files/44057-drops on a blade.svg1770
-rw-r--r--PerformanceTests/PageLoad/svg/files/Harvey_Rayner.svg679
-rw-r--r--PerformanceTests/PageLoad/svg/files/Sierpinski_carpet_6.svg62
-rw-r--r--PerformanceTests/PageLoad/svg/files/az-lizard_benji_park_01.svg283
-rw-r--r--PerformanceTests/PageLoad/svg/files/bamboo_01.svg6383
-rw-r--r--PerformanceTests/PageLoad/svg/files/cacuts_01.svg1706
-rw-r--r--PerformanceTests/PageLoad/svg/files/cowboy.svg4110
-rw-r--r--PerformanceTests/PageLoad/svg/files/crawfish2_ganson.svg7865
-rw-r--r--PerformanceTests/PageLoad/svg/files/deb9frac1.svg6323
-rw-r--r--PerformanceTests/PageLoad/svg/files/food_leif_lodahl_01.svg56
-rw-r--r--PerformanceTests/PageLoad/svg/files/france.svg663
-rw-r--r--PerformanceTests/PageLoad/svg/files/francobollo_gnome_ezechi_02.svg202
-rw-r--r--PerformanceTests/PageLoad/svg/files/gearflowers.svg8342
-rw-r--r--PerformanceTests/PageLoad/svg/files/hereGear4.svg2808
-rw-r--r--PerformanceTests/PageLoad/svg/files/mtsthelens.svg1629
-rw-r--r--PerformanceTests/PageLoad/svg/files/mtsthelens0.jpgbin0 -> 57004 bytes
-rw-r--r--PerformanceTests/PageLoad/svg/files/world-iso.svg288
-rw-r--r--PerformanceTests/PageLoad/svg/files/worldcup.svg14668
-rw-r--r--PerformanceTests/PageLoad/svg/svg.pltsuite20
-rw-r--r--PerformanceTests/Parser/css-parser-yui.html2629
-rw-r--r--PerformanceTests/Parser/html-parser.html19
-rw-r--r--PerformanceTests/Parser/html5-full-render.html56
-rw-r--r--PerformanceTests/Parser/innerHTML-setter.html22
-rw-r--r--PerformanceTests/Parser/query-selector-deep.html31
-rw-r--r--PerformanceTests/Parser/query-selector-first.html18
-rw-r--r--PerformanceTests/Parser/query-selector-last.html29
-rw-r--r--PerformanceTests/Parser/resources/final-url-en82257
-rw-r--r--PerformanceTests/Parser/resources/greenbox.pngbin0 -> 95 bytes
-rw-r--r--PerformanceTests/Parser/resources/html5.html102483
-rw-r--r--PerformanceTests/Parser/simple-url.html12
-rw-r--r--PerformanceTests/Parser/textarea-parsing.html27
-rw-r--r--PerformanceTests/Parser/tiny-innerHTML.html15
-rw-r--r--PerformanceTests/Parser/url-parser.html14
-rw-r--r--PerformanceTests/Parser/xml-parser.html18
-rw-r--r--PerformanceTests/Replay/Chinese/chinaz.com.replay1
-rw-r--r--PerformanceTests/Replay/Chinese/www.163.com.replay1
-rw-r--r--PerformanceTests/Replay/Chinese/www.alipay.com.replay1
-rw-r--r--PerformanceTests/Replay/Chinese/www.baidu.com.replay1
-rw-r--r--PerformanceTests/Replay/Chinese/www.csdn.net.replay1
-rw-r--r--PerformanceTests/Replay/Chinese/www.douban.com.replay1
-rw-r--r--PerformanceTests/Replay/Chinese/www.hao123.com.replay1
-rw-r--r--PerformanceTests/Replay/Chinese/www.xinhuanet.com.replay1
-rw-r--r--PerformanceTests/Replay/Chinese/www.xunlei.com.replay1
-rw-r--r--PerformanceTests/Replay/Chinese/www.youku.com.replay1
-rw-r--r--PerformanceTests/Replay/English/beatonna.livejournal.com.replay1
-rw-r--r--PerformanceTests/Replay/English/cakewrecks.blogspot.com.replay1
-rw-r--r--PerformanceTests/Replay/English/chemistry.about.com.replay1
-rw-r--r--PerformanceTests/Replay/English/digg.com.replay1
-rw-r--r--PerformanceTests/Replay/English/en.wikipedia.org-rorschach_test.replay1
-rw-r--r--PerformanceTests/Replay/English/icanhascheezburger.com.replay1
-rw-r--r--PerformanceTests/Replay/English/imgur.com-gallery.replay1
-rw-r--r--PerformanceTests/Replay/English/online.wsj.com.replay1
-rw-r--r--PerformanceTests/Replay/English/stockoverflow.com-best-comment.replay1
-rw-r--r--PerformanceTests/Replay/English/www.alibaba.com.replay1
-rw-r--r--PerformanceTests/Replay/English/www.amazon.com-kindle.replay1
-rw-r--r--PerformanceTests/Replay/English/www.apple.com.replay1
-rw-r--r--PerformanceTests/Replay/English/www.cnet.com.replay1
-rw-r--r--PerformanceTests/Replay/English/www.dailymotion.com.replay1
-rw-r--r--PerformanceTests/Replay/English/www.ehow.com-prevent-fire.replay1
-rw-r--r--PerformanceTests/Replay/English/www.filestube.com-amy-adams.replay1
-rw-r--r--PerformanceTests/Replay/English/www.foxnews.replay1
-rw-r--r--PerformanceTests/Replay/English/www.huffingtonpost.com.replay1
-rw-r--r--PerformanceTests/Replay/English/www.imdb.com-twilight.replay1
-rw-r--r--PerformanceTests/Replay/English/www.mozilla.com-all-order.replay1
-rw-r--r--PerformanceTests/Replay/English/www.php.net.replay1
-rw-r--r--PerformanceTests/Replay/English/www.reddit.com.replay1
-rw-r--r--PerformanceTests/Replay/English/www.telegraph.co.uk.replay1
-rw-r--r--PerformanceTests/Replay/English/www.w3.org-htmlcss.replay1
-rw-r--r--PerformanceTests/Replay/English/www.w3schools.com-html.replay1
-rw-r--r--PerformanceTests/Replay/English/www.youtube.com-music.replay1
-rw-r--r--PerformanceTests/Replay/French/www.orange.fr.replay1
-rw-r--r--PerformanceTests/Replay/Italian/www.repubblica.it.replay1
-rw-r--r--PerformanceTests/Replay/Japanese/2ch.net-newsplus.replay1
-rw-r--r--PerformanceTests/Replay/Japanese/entameblog.seesaa.net.replay1
-rw-r--r--PerformanceTests/Replay/Japanese/ja.wikipedia.org.replay1
-rw-r--r--PerformanceTests/Replay/Japanese/www.hatena.ne.jp.replay1
-rw-r--r--PerformanceTests/Replay/Japanese/www.livedoor.com.replay1
-rw-r--r--PerformanceTests/Replay/Japanese/www.nicovideo.jp.replay1
-rw-r--r--PerformanceTests/Replay/Japanese/www.rakuten.co.jp.replay1
-rw-r--r--PerformanceTests/Replay/Japanese/www.yahoo.co.jp.replay1
-rw-r--r--PerformanceTests/Replay/Korean/www.naver.com.replay1
-rw-r--r--PerformanceTests/Replay/Persian/blogfa.com.replay1
-rw-r--r--PerformanceTests/Replay/Polish/www.wp.pl.replay1
-rw-r--r--PerformanceTests/Replay/Portuguese/www.uol.com.br.replay1
-rw-r--r--PerformanceTests/Replay/Russian/lenta.ru.replay1
-rw-r--r--PerformanceTests/Replay/Russian/vkontakte.ru-help.replay1
-rw-r--r--PerformanceTests/Replay/Russian/www.ixbt.com.replay1
-rw-r--r--PerformanceTests/Replay/Russian/www.kp.ru.replay1
-rw-r--r--PerformanceTests/Replay/Russian/www.liveinternet.ru.replay1
-rw-r--r--PerformanceTests/Replay/Russian/www.pravda.ru.replay1
-rw-r--r--PerformanceTests/Replay/Russian/www.rambler.ru.replay1
-rw-r--r--PerformanceTests/Replay/Russian/www.ucoz.ru.replay1
-rw-r--r--PerformanceTests/Replay/Russian/www.yandex.ru.replay1
-rw-r--r--PerformanceTests/Replay/Spanish/www.taringa.net.replay1
-rw-r--r--PerformanceTests/Replay/Swedish/www.flashback.se.replay1
-rw-r--r--PerformanceTests/Replay/Swedish/www.tradera.com.replay1
-rw-r--r--PerformanceTests/Replay/www.google.com.replay1
-rw-r--r--PerformanceTests/Replay/www.techcrunch.com.replay1
-rw-r--r--PerformanceTests/Replay/www.youtube.com.replay1
-rw-r--r--PerformanceTests/SVG/SvgCubics.html921
-rw-r--r--PerformanceTests/SVG/SvgHitTesting.html117
-rw-r--r--PerformanceTests/Skipped54
-rw-r--r--PerformanceTests/SunSpider/ChangeLog1208
-rw-r--r--PerformanceTests/SunSpider/SunSpider.make4
-rw-r--r--PerformanceTests/SunSpider/TODO70
-rw-r--r--PerformanceTests/SunSpider/UNCOVERED99
-rw-r--r--PerformanceTests/SunSpider/hosted/json2.js481
-rw-r--r--PerformanceTests/SunSpider/hosted/sunspider.css31
-rw-r--r--PerformanceTests/SunSpider/hosted/sunspider.html81
-rw-r--r--PerformanceTests/SunSpider/hosted/versions.html55
-rwxr-xr-xPerformanceTests/SunSpider/make-hosted112
-rw-r--r--PerformanceTests/SunSpider/resources/TEMPLATE.html58
-rw-r--r--PerformanceTests/SunSpider/resources/TimeProfile20us.tracetemplatebin0 -> 9974 bytes
-rw-r--r--PerformanceTests/SunSpider/resources/driver-TEMPLATE.html115
-rw-r--r--PerformanceTests/SunSpider/resources/results-TEMPLATE.html108
-rw-r--r--PerformanceTests/SunSpider/resources/sunspider-analyze-results.js268
-rw-r--r--PerformanceTests/SunSpider/resources/sunspider-compare-results.js380
-rw-r--r--PerformanceTests/SunSpider/resources/sunspider-standalone-compare.js26
-rw-r--r--PerformanceTests/SunSpider/resources/sunspider-standalone-driver.js76
-rwxr-xr-xPerformanceTests/SunSpider/sunspider258
-rwxr-xr-xPerformanceTests/SunSpider/sunspider-compare-results161
-rw-r--r--PerformanceTests/SunSpider/tests/parse-only/LIST4
-rw-r--r--PerformanceTests/SunSpider/tests/parse-only/concat-jquery-mootools-prototype.js12699
-rw-r--r--PerformanceTests/SunSpider/tests/parse-only/jquery-1.3.2.js4376
-rw-r--r--PerformanceTests/SunSpider/tests/parse-only/mootools-1.2.2-core-nc.js4003
-rw-r--r--PerformanceTests/SunSpider/tests/parse-only/prototype-1.6.0.3.js4320
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-cube.js337
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-morph.js54
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-raytrace.js441
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/LIST26
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-binary-trees.js50
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-fannkuch.js66
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-nbody.js169
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-nsieve.js38
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-3bit-bits-in-byte.js32
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-bits-in-byte.js21
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-bitwise-and.js28
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-nsieve-bits.js32
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/controlflow-recursive.js25
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-aes.js422
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-md5.js286
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-sha1.js224
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/date-format-tofte.js299
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/date-format-xparb.js417
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-cordic.js95
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-partial-sums.js33
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-spectral-norm.js51
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/regexp-dna.js1712
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-base64.js135
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-fasta.js85
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-tagcloud.js265
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-unpack-code.js68
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-validate-input.js89
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/3d-cube.js337
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/3d-morph.js54
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/3d-raytrace.js441
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/LIST26
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/access-binary-trees.js50
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/access-fannkuch.js66
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/access-nbody.js169
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/access-nsieve.js38
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-3bit-bits-in-byte.js32
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-bits-in-byte.js21
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-bitwise-and.js28
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-nsieve-bits.js32
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/controlflow-recursive.js25
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-aes.js422
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-md5.js286
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-sha1.js224
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/date-format-tofte.js299
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/date-format-xparb.js417
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/math-cordic.js95
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/math-partial-sums.js33
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/math-spectral-norm.js51
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/regexp-dna.js1712
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/string-base64.js135
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/string-fasta.js85
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/string-tagcloud.js265
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/string-unpack-code.js68
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9/string-validate-input.js89
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/3d-cube.js337
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/3d-morph.js54
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/3d-raytrace.js441
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/LIST26
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/access-binary-trees.js50
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/access-fannkuch.js66
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/access-nbody.js169
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/access-nsieve.js38
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-3bit-bits-in-byte.js36
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-bits-in-byte.js25
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-bitwise-and.js30
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-nsieve-bits.js33
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/controlflow-recursive.js25
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-aes.js422
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-md5.js286
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-sha1.js224
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/date-format-tofte.js299
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/date-format-xparb.js417
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/math-cordic.js100
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/math-partial-sums.js33
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/math-spectral-norm.js51
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/regexp-dna.js1712
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/string-base64.js135
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/string-fasta.js85
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/string-tagcloud.js265
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/string-unpack-code.js68
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-1.0/string-validate-input.js89
-rw-r--r--PerformanceTests/SunSpider/tests/ubench/LIST9
-rw-r--r--PerformanceTests/SunSpider/tests/ubench/function-closure.js7
-rw-r--r--PerformanceTests/SunSpider/tests/ubench/function-correct-args.js6
-rw-r--r--PerformanceTests/SunSpider/tests/ubench/function-empty.js6
-rw-r--r--PerformanceTests/SunSpider/tests/ubench/function-excess-args.js6
-rw-r--r--PerformanceTests/SunSpider/tests/ubench/function-missing-args.js6
-rw-r--r--PerformanceTests/SunSpider/tests/ubench/function-sum.js7
-rw-r--r--PerformanceTests/SunSpider/tests/ubench/loop-empty-resolve.js2
-rw-r--r--PerformanceTests/SunSpider/tests/ubench/loop-empty.js2
-rw-r--r--PerformanceTests/SunSpider/tests/ubench/loop-sum.js5
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v4/LIST7
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v4/v8-crypto.js1695
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v4/v8-deltablue.js877
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v4/v8-earley-boyer.js4683
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v4/v8-raytrace.js933
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v4/v8-regexp.js1613
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v4/v8-richards.js537
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v4/v8-splay.js377
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v5/LIST7
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v5/v8-crypto.js1695
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v5/v8-deltablue.js877
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v5/v8-earley-boyer.js4683
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v5/v8-raytrace.js933
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v5/v8-regexp.js1613
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v5/v8-richards.js537
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v5/v8-splay.js377
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v6/LIST7
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v6/v8-crypto.js1695
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v6/v8-deltablue.js877
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v6/v8-earley-boyer.js4683
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js902
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v6/v8-regexp.js1613
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v6/v8-richards.js537
-rw-r--r--PerformanceTests/SunSpider/tests/v8-v6/v8-splay.js393
-rw-r--r--PerformanceTests/SunSpider/xcopy.excludes3
-rw-r--r--PerformanceTests/XSSAuditor/large-post-many-events.html51
-rw-r--r--PerformanceTests/XSSAuditor/large-post-many-inline-scripts-and-events.html10
-rw-r--r--PerformanceTests/XSSAuditor/resources/target-for-large-post-many-inline-scripts-and-events.html1287
-rw-r--r--PerformanceTests/inspector/console-300-lines.html80
-rw-r--r--PerformanceTests/inspector/first-open-elements.html42
-rw-r--r--PerformanceTests/inspector/first-open-resources.html44
-rw-r--r--PerformanceTests/inspector/first-open-scripts.html.broken39
-rw-r--r--PerformanceTests/inspector/heap-snapshot-advanced.html35
-rw-r--r--PerformanceTests/inspector/heap-snapshot-performance-test.js74
-rw-r--r--PerformanceTests/inspector/heap-snapshot.html33
-rw-r--r--PerformanceTests/inspector/inspector-startup-time.html57
-rw-r--r--PerformanceTests/inspector/native-memory-snapshot.html76
-rw-r--r--PerformanceTests/inspector/network-append-30-requests.html.broken52
-rw-r--r--PerformanceTests/inspector/performance-test.js155
-rw-r--r--PerformanceTests/inspector/show-panel.html.broken66
-rw-r--r--PerformanceTests/resources/jquery.flot.min.js6
-rw-r--r--PerformanceTests/resources/results-template.html158
-rwxr-xr-xPerformanceTests/resources/runner.js270
-rw-r--r--Source/JavaScriptCore/API/JSValueRef.cpp2
-rw-r--r--Source/JavaScriptCore/ChangeLog201
-rw-r--r--Source/JavaScriptCore/Configurations/Version.xcconfig2
-rwxr-xr-xSource/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def5
-rw-r--r--Source/JavaScriptCore/bytecode/Watchpoint.h2
-rw-r--r--Source/JavaScriptCore/debugger/DebuggerCallFrame.h1
-rw-r--r--Source/JavaScriptCore/dfg/DFGAbstractState.cpp25
-rw-r--r--Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp2
-rw-r--r--Source/JavaScriptCore/dfg/DFGOperations.cpp6
-rw-r--r--Source/JavaScriptCore/dfg/DFGOperations.h2
-rw-r--r--Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp73
-rw-r--r--Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp75
-rw-r--r--Source/JavaScriptCore/heap/MachineStackMarker.cpp7
-rw-r--r--Source/JavaScriptCore/heap/MachineStackMarker.h4
-rw-r--r--Source/JavaScriptCore/interpreter/Interpreter.cpp22
-rw-r--r--Source/JavaScriptCore/jit/JITOpcodes.cpp45
-rw-r--r--Source/JavaScriptCore/jit/JITOpcodes32_64.cpp46
-rw-r--r--Source/JavaScriptCore/jit/JITStubCall.h14
-rw-r--r--Source/JavaScriptCore/jit/JITStubs.cpp14
-rw-r--r--Source/JavaScriptCore/llint/LLIntSlowPaths.cpp8
-rw-r--r--Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm42
-rw-r--r--Source/JavaScriptCore/llint/LowLevelInterpreter64.asm36
-rw-r--r--Source/JavaScriptCore/runtime/ArrayPrototype.cpp12
-rw-r--r--Source/JavaScriptCore/runtime/BooleanConstructor.cpp4
-rw-r--r--Source/JavaScriptCore/runtime/BooleanObject.h6
-rw-r--r--Source/JavaScriptCore/runtime/JSCell.h2
-rw-r--r--Source/JavaScriptCore/runtime/JSGlobalObject.cpp1
-rw-r--r--Source/JavaScriptCore/runtime/JSGlobalObject.h5
-rw-r--r--Source/JavaScriptCore/runtime/JSString.h8
-rw-r--r--Source/JavaScriptCore/runtime/JSValue.h2
-rw-r--r--Source/JavaScriptCore/runtime/NumberObject.h4
-rw-r--r--Source/JavaScriptCore/runtime/ObjectConstructor.cpp6
-rw-r--r--Source/JavaScriptCore/runtime/Operations.cpp6
-rw-r--r--Source/JavaScriptCore/runtime/Operations.h6
-rw-r--r--Source/JavaScriptCore/runtime/RegExpConstructor.cpp4
-rw-r--r--Source/JavaScriptCore/runtime/RegExpPrototype.cpp6
-rw-r--r--Source/JavaScriptCore/runtime/StringObject.cpp8
-rw-r--r--Source/JavaScriptCore/runtime/StringObject.h2
-rw-r--r--Source/JavaScriptCore/runtime/Structure.h12
-rw-r--r--Source/Platform/ChangeLog33
-rw-r--r--Source/Platform/chromium/public/WebAnimation.h2
-rw-r--r--Source/Platform/chromium/public/WebAnimationCurve.h20
-rw-r--r--Source/Platform/chromium/public/WebFloatAnimationCurve.h33
-rw-r--r--Source/Platform/chromium/public/WebLayer.h1
-rw-r--r--Source/Platform/chromium/public/WebTransformAnimationCurve.h32
-rw-r--r--Source/ThirdParty/ChangeLog9
-rw-r--r--Source/ThirdParty/gtest/src/gtest-internal-inl.h1
-rw-r--r--Source/WTF/ChangeLog87
-rw-r--r--Source/WTF/GNUmakefile.list.am1
-rw-r--r--Source/WTF/WTF.gypi1
-rw-r--r--Source/WTF/WTF.pro1
-rw-r--r--Source/WTF/WTF.vcproj/WTF.vcproj4
-rw-r--r--Source/WTF/WTF.xcodeproj/project.pbxproj4
-rw-r--r--Source/WTF/wtf/CMakeLists.txt1
-rw-r--r--Source/WTF/wtf/FastMalloc.cpp17
-rw-r--r--Source/WTF/wtf/FastMalloc.h4
-rw-r--r--Source/WTF/wtf/PassRefPtr.h1
-rw-r--r--Source/WTF/wtf/Platform.h8
-rw-r--r--Source/WTF/wtf/SaturatedArithmetic.h66
-rw-r--r--Source/WebCore/ChangeLog1790
-rw-r--r--Source/WebCore/Configurations/Version.xcconfig2
-rw-r--r--Source/WebCore/GNUmakefile.am376
-rw-r--r--Source/WebCore/GNUmakefile.features.am96
-rw-r--r--Source/WebCore/Modules/battery/BatteryManager.idl2
-rw-r--r--Source/WebCore/Modules/indexeddb/IDBCallbacks.h5
-rw-r--r--Source/WebCore/Modules/indexeddb/IDBDatabase.cpp8
-rw-r--r--Source/WebCore/Modules/indexeddb/IDBDatabase.h1
-rw-r--r--Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h1
-rw-r--r--Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp6
-rw-r--r--Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.h1
-rw-r--r--Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp20
-rw-r--r--Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.h3
-rw-r--r--Source/WebCore/Modules/indexeddb/IDBRequest.cpp23
-rw-r--r--Source/WebCore/Modules/indexeddb/IDBRequest.h3
-rwxr-xr-xSource/WebCore/UseV8.cmake1
-rw-r--r--Source/WebCore/WebCore.exp.in1
-rw-r--r--Source/WebCore/WebCore.gypi9
-rwxr-xr-xSource/WebCore/WebCore.vcproj/WebCore.vcproj4
-rw-r--r--Source/WebCore/WebCore.xcodeproj/project.pbxproj19
-rw-r--r--Source/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp2
-rw-r--r--Source/WebCore/bindings/js/JSDOMWindowCustom.cpp4
-rw-r--r--Source/WebCore/bindings/js/JSDataViewCustom.cpp2
-rw-r--r--Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp4
-rw-r--r--Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp6
-rw-r--r--Source/WebCore/bindings/js/JSDictionary.cpp4
-rw-r--r--Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp12
-rw-r--r--Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp4
-rw-r--r--Source/WebCore/bindings/js/JSMessageEventCustom.cpp4
-rw-r--r--Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp2
-rw-r--r--Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp2
-rw-r--r--Source/WebCore/bindings/js/JavaScriptCallFrame.cpp8
-rw-r--r--Source/WebCore/bindings/js/JavaScriptCallFrame.h1
-rw-r--r--Source/WebCore/bindings/js/ScriptDebugServer.cpp2
-rw-r--r--Source/WebCore/bindings/js/SerializedScriptValue.cpp82
-rw-r--r--Source/WebCore/bindings/scripts/CodeGeneratorJS.pm13
-rw-r--r--Source/WebCore/bindings/scripts/CodeGeneratorV8.pm4
-rw-r--r--Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp4
-rw-r--r--Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h1
-rw-r--r--Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp10
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestException.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp1
-rw-r--r--Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp1
-rw-r--r--Source/WebCore/bindings/v8/JavaScriptCallFrame.h6
-rw-r--r--Source/WebCore/bindings/v8/ScheduledAction.cpp92
-rw-r--r--Source/WebCore/bindings/v8/ScheduledAction.h53
-rw-r--r--Source/WebCore/bindings/v8/ScopedPersistent.h (renamed from Source/WebCore/bindings/v8/OwnHandle.h)24
-rw-r--r--Source/WebCore/bindings/v8/ScriptController.cpp7
-rw-r--r--Source/WebCore/bindings/v8/ScriptController.h28
-rw-r--r--Source/WebCore/bindings/v8/ScriptDebugServer.cpp6
-rw-r--r--Source/WebCore/bindings/v8/ScriptDebugServer.h10
-rw-r--r--Source/WebCore/bindings/v8/ScriptInstance.cpp42
-rw-r--r--Source/WebCore/bindings/v8/ScriptInstance.h19
-rw-r--r--Source/WebCore/bindings/v8/ScriptState.cpp47
-rw-r--r--Source/WebCore/bindings/v8/ScriptState.h28
-rw-r--r--Source/WebCore/bindings/v8/ScriptValue.cpp20
-rw-r--r--Source/WebCore/bindings/v8/ScriptValue.h68
-rw-r--r--Source/WebCore/bindings/v8/V8AbstractEventListener.cpp33
-rw-r--r--Source/WebCore/bindings/v8/V8AbstractEventListener.h19
-rw-r--r--Source/WebCore/bindings/v8/V8Binding.cpp19
-rw-r--r--Source/WebCore/bindings/v8/V8Binding.h2
-rw-r--r--Source/WebCore/bindings/v8/V8DOMWindowShell.cpp229
-rw-r--r--Source/WebCore/bindings/v8/V8DOMWindowShell.h9
-rw-r--r--Source/WebCore/bindings/v8/V8DOMWrapper.h2
-rw-r--r--Source/WebCore/bindings/v8/V8ObjectConstructor.cpp3
-rw-r--r--Source/WebCore/bindings/v8/V8PerContextData.h6
-rw-r--r--Source/WebCore/bindings/v8/V8Proxy.h91
-rw-r--r--Source/WebCore/bindings/v8/V8RecursionScope.h2
-rw-r--r--Source/WebCore/bindings/v8/V8Utilities.cpp1
-rw-r--r--Source/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h2
-rw-r--r--Source/WebCore/bridge/c/c_utility.cpp2
-rw-r--r--Source/WebCore/bridge/jni/jni_jsobject.mm2
-rw-r--r--Source/WebCore/bridge/qt/qt_runtime.cpp4
-rw-r--r--Source/WebCore/css/CSSComputedStyleDeclaration.cpp24
-rw-r--r--Source/WebCore/css/CSSParser.cpp55
-rw-r--r--Source/WebCore/css/CSSParser.h3
-rw-r--r--Source/WebCore/css/CSSPrimitiveValueMappings.h1
-rw-r--r--Source/WebCore/css/CSSProperty.h1
-rw-r--r--Source/WebCore/css/CSSToStyleMap.h1
-rw-r--r--Source/WebCore/css/StylePropertyShorthand.cpp25
-rw-r--r--Source/WebCore/css/StylePropertyShorthand.h1
-rw-r--r--Source/WebCore/css/StyleResolver.cpp17
-rw-r--r--Source/WebCore/css/StyleResolver.h1
-rw-r--r--Source/WebCore/dom/ElementAttributeData.cpp6
-rw-r--r--Source/WebCore/editing/TextIterator.cpp3
-rw-r--r--Source/WebCore/html/HTMLMediaElement.cpp48
-rw-r--r--Source/WebCore/html/HTMLMediaElement.h10
-rw-r--r--Source/WebCore/html/TimeInputType.cpp19
-rw-r--r--Source/WebCore/html/TimeInputType.h2
-rw-r--r--Source/WebCore/html/shadow/DateTimeEditElement.cpp43
-rw-r--r--Source/WebCore/html/shadow/DateTimeEditElement.h8
-rw-r--r--Source/WebCore/html/shadow/MediaControlRootElement.h1
-rw-r--r--Source/WebCore/html/shadow/SliderThumbElement.cpp7
-rwxr-xr-xSource/WebCore/inspector/CodeGeneratorInspector.py67
-rw-r--r--Source/WebCore/inspector/InspectorIndexedDBAgent.cpp1
-rwxr-xr-xSource/WebCore/inspector/compile-front-end.py7
-rw-r--r--Source/WebCore/inspector/front-end/AdvancedSearchController.js4
-rw-r--r--Source/WebCore/inspector/front-end/ElementsTreeOutline.js2
-rw-r--r--Source/WebCore/inspector/front-end/EventListenersSidebarPane.js2
-rw-r--r--Source/WebCore/inspector/front-end/MemoryStatistics.js4
-rw-r--r--Source/WebCore/inspector/front-end/NetworkPanel.js76
-rw-r--r--Source/WebCore/inspector/front-end/Panel.js18
-rw-r--r--Source/WebCore/inspector/front-end/SearchController.js5
-rw-r--r--Source/WebCore/inspector/front-end/SidebarPane.js9
-rw-r--r--Source/WebCore/inspector/front-end/TimelineGrid.js24
-rw-r--r--Source/WebCore/inspector/front-end/TimelineOverviewPane.js26
-rw-r--r--Source/WebCore/inspector/front-end/TimelinePanel.js35
-rw-r--r--Source/WebCore/inspector/front-end/UIUtils.js25
-rw-r--r--Source/WebCore/inspector/front-end/treeoutline.js82
-rw-r--r--Source/WebCore/page/ContentSecurityPolicy.cpp3
-rw-r--r--Source/WebCore/page/FrameView.h30
-rw-r--r--Source/WebCore/platform/FractionalLayoutUnit.h103
-rw-r--r--Source/WebCore/platform/LengthBox.cpp34
-rw-r--r--Source/WebCore/platform/LengthBox.h14
-rw-r--r--Source/WebCore/platform/ScrollView.h47
-rw-r--r--Source/WebCore/platform/ScrollableArea.cpp35
-rw-r--r--Source/WebCore/platform/ScrollableArea.h20
-rw-r--r--Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.cpp5
-rw-r--r--Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.h4
-rw-r--r--Source/WebCore/platform/WheelFlingPlatformGestureCurve.cpp5
-rw-r--r--Source/WebCore/platform/WheelFlingPlatformGestureCurve.h4
-rw-r--r--Source/WebCore/platform/audio/mac/AudioFileReaderMac.cpp2
-rw-r--r--Source/WebCore/platform/audio/mac/AudioFileReaderMac.h1
-rw-r--r--Source/WebCore/platform/blackberry/CookieParser.cpp4
-rw-r--r--Source/WebCore/platform/chromium/FramelessScrollView.cpp10
-rw-r--r--Source/WebCore/platform/chromium/FramelessScrollView.h8
-rw-r--r--Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp86
-rw-r--r--Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h36
-rw-r--r--Source/WebCore/platform/graphics/Image.cpp2
-rw-r--r--Source/WebCore/platform/graphics/ImageSource.h3
-rw-r--r--Source/WebCore/platform/graphics/MediaPlayer.h10
-rw-r--r--Source/WebCore/platform/graphics/SimpleFontData.h6
-rw-r--r--Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h1
-rw-r--r--Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp86
-rw-r--r--Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h1
-rw-r--r--Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp6
-rw-r--r--Source/WebCore/platform/graphics/chromium/AnimationTranslationUtil.cpp24
-rw-r--r--Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp3
-rw-r--r--Source/WebCore/platform/graphics/chromium/ContentLayerChromium.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp34
-rw-r--r--Source/WebCore/platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/LayerTextureSubImage.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/ProgramBinding.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.h1
-rw-r--r--Source/WebCore/platform/graphics/chromium/ScrollbarLayerChromium.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/TextureCopier.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp15
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.h4
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp4
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.h2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp7
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp9
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.cpp6
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h7
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp42
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h12
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp73
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h11
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTexture.cpp1
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp1
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCPriorityCalculator.cpp3
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCProxy.h8
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.cpp20
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.h12
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCQuadSink.h6
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp50
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.h8
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.cpp23
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.h6
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCRenderer.h2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCRendererGL.cpp (renamed from Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp)203
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCRendererGL.h (renamed from Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h)26
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCResourceProvider.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp11
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.cpp8
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.h4
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp31
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h10
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp7
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.h4
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.cpp8
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.h2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp57
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h14
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp13
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.h2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCTimeSource.h2
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp15
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.h2
-rw-r--r--Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm8
-rw-r--r--Source/WebCore/platform/text/TextDirection.h4
-rw-r--r--Source/WebCore/platform/text/WritingMode.h (renamed from Source/WebCore/bindings/v8/V8Proxy.cpp)77
-rw-r--r--Source/WebCore/platform/win/PopupMenuWin.cpp25
-rw-r--r--Source/WebCore/platform/win/PopupMenuWin.h25
-rw-r--r--Source/WebCore/platform/wx/CursorWx.cpp30
-rw-r--r--Source/WebCore/rendering/InlineFlowBox.cpp8
-rw-r--r--Source/WebCore/rendering/LayoutState.cpp8
-rwxr-xr-xSource/WebCore/rendering/RenderBlock.cpp20
-rw-r--r--Source/WebCore/rendering/RenderBox.cpp110
-rw-r--r--Source/WebCore/rendering/RenderBox.h41
-rw-r--r--Source/WebCore/rendering/RenderBoxModelObject.cpp26
-rw-r--r--Source/WebCore/rendering/RenderBoxModelObject.h8
-rw-r--r--Source/WebCore/rendering/RenderFlexibleBox.cpp24
-rw-r--r--Source/WebCore/rendering/RenderFlowThread.cpp40
-rw-r--r--Source/WebCore/rendering/RenderFlowThread.h9
-rw-r--r--Source/WebCore/rendering/RenderInline.cpp60
-rw-r--r--Source/WebCore/rendering/RenderInline.h4
-rw-r--r--Source/WebCore/rendering/RenderLayer.cpp23
-rw-r--r--Source/WebCore/rendering/RenderLayer.h4
-rw-r--r--Source/WebCore/rendering/RenderListBox.cpp5
-rw-r--r--Source/WebCore/rendering/RenderListBox.h43
-rwxr-xr-xSource/WebCore/rendering/RenderObject.cpp13
-rw-r--r--Source/WebCore/rendering/RenderObject.h2
-rw-r--r--Source/WebCore/rendering/RenderObjectChildList.cpp2
-rw-r--r--Source/WebCore/rendering/RenderTable.cpp19
-rw-r--r--Source/WebCore/rendering/RenderTable.h4
-rw-r--r--Source/WebCore/rendering/RenderTableCaption.cpp14
-rw-r--r--Source/WebCore/rendering/RenderTableCaption.h6
-rw-r--r--Source/WebCore/rendering/RenderTableCol.cpp10
-rw-r--r--Source/WebCore/rendering/RenderTableCol.h2
-rw-r--r--Source/WebCore/rendering/RenderView.cpp2
-rw-r--r--Source/WebCore/rendering/TextAutosizer.cpp28
-rw-r--r--Source/WebCore/rendering/TextAutosizer.h2
-rw-r--r--Source/WebCore/rendering/style/RenderStyle.cpp9
-rw-r--r--Source/WebCore/rendering/style/RenderStyle.h40
-rw-r--r--Source/WebCore/rendering/style/RenderStyleConstants.h5
-rw-r--r--Source/WebKit/blackberry/Api/BackingStore.cpp108
-rw-r--r--Source/WebKit/blackberry/Api/BackingStore.h3
-rw-r--r--Source/WebKit/blackberry/Api/BackingStore_p.h10
-rw-r--r--Source/WebKit/blackberry/Api/InRegionScroller.cpp156
-rw-r--r--Source/WebKit/blackberry/Api/InRegionScroller.h2
-rw-r--r--Source/WebKit/blackberry/Api/InRegionScroller_p.h7
-rw-r--r--Source/WebKit/blackberry/Api/WebPage.cpp53
-rw-r--r--Source/WebKit/blackberry/Api/WebPage.h4
-rw-r--r--Source/WebKit/blackberry/Api/WebPage_p.h6
-rw-r--r--Source/WebKit/blackberry/ChangeLog145
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp17
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.h4
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp16
-rw-r--r--Source/WebKit/chromium/ChangeLog329
-rw-r--r--Source/WebKit/chromium/DEPS2
-rw-r--r--Source/WebKit/chromium/WebKit.gyp2
-rw-r--r--Source/WebKit/chromium/WebKit.gypi8
-rw-r--r--Source/WebKit/chromium/public/WebFrameClient.h2
-rw-r--r--Source/WebKit/chromium/public/WebIDBDatabase.h1
-rw-r--r--Source/WebKit/chromium/public/WebIDBDatabaseCallbacks.h1
-rw-r--r--Source/WebKit/chromium/src/ChromeClientImpl.cpp3
-rw-r--r--Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.cpp5
-rw-r--r--Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.h1
-rw-r--r--Source/WebKit/chromium/src/LinkHighlight.cpp10
-rw-r--r--Source/WebKit/chromium/src/ScrollbarGroup.h50
-rw-r--r--Source/WebKit/chromium/src/WebAnimationImpl.cpp27
-rw-r--r--Source/WebKit/chromium/src/WebAnimationImpl.h7
-rw-r--r--Source/WebKit/chromium/src/WebBindings.cpp1
-rw-r--r--Source/WebKit/chromium/src/WebDOMMessageEvent.cpp4
-rw-r--r--Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp1
-rw-r--r--Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.cpp (renamed from Source/WebKit/chromium/src/WebFloatAnimationCurve.cpp)40
-rw-r--r--Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.h62
-rw-r--r--Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.cpp5
-rw-r--r--Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.h1
-rw-r--r--Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp14
-rw-r--r--Source/WebKit/chromium/src/WebIDBDatabaseImpl.h3
-rw-r--r--Source/WebKit/chromium/src/WebLayerImpl.cpp8
-rw-r--r--Source/WebKit/chromium/src/WebLayerImpl.h1
-rw-r--r--Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp7
-rw-r--r--Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.cpp81
-rw-r--r--Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.h (renamed from Source/WebKit/chromium/src/WebTransformAnimationCurve.cpp)56
-rw-r--r--Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp157
-rw-r--r--Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp386
-rw-r--r--Source/WebKit/chromium/tests/CCQuadCullerTest.cpp12
-rw-r--r--Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp11
-rw-r--r--Source/WebKit/chromium/tests/CCRendererGLTest.cpp (renamed from Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp)124
-rw-r--r--Source/WebKit/chromium/tests/CCSchedulerTestCommon.h2
-rw-r--r--Source/WebKit/chromium/tests/CCSolidColorLayerImplTest.cpp9
-rw-r--r--Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp45
-rw-r--r--Source/WebKit/chromium/tests/GraphicsLayerChromiumTest.cpp6
-rw-r--r--Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp72
-rw-r--r--Source/WebKit/chromium/tests/IDBRequestTest.cpp1
-rw-r--r--Source/WebKit/chromium/tests/MockCCQuadCuller.h29
-rw-r--r--Source/WebKit/chromium/tests/ScrollAnimatorNoneTest.cpp20
-rw-r--r--Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp6
-rw-r--r--Source/WebKit/chromium/tests/WebAnimationTest.cpp8
-rw-r--r--Source/WebKit/chromium/tests/WebFloatAnimationCurveTest.cpp178
-rw-r--r--Source/WebKit/chromium/tests/WebTransformAnimationCurveTest.cpp176
-rw-r--r--Source/WebKit/efl/ChangeLog12
-rw-r--r--Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp53
-rw-r--r--Source/WebKit/efl/ewk/ewk_tiled_matrix_private.h2
-rw-r--r--Source/WebKit/mac/ChangeLog17
-rw-r--r--Source/WebKit/mac/Configurations/Version.xcconfig2
-rw-r--r--Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm2
-rw-r--r--Source/WebKit/win/ChangeLog19
-rw-r--r--Source/WebKit/win/WebScrollBar.cpp25
-rw-r--r--Source/WebKit/win/WebScrollBar.h5
-rw-r--r--Source/WebKit2/ChangeLog111
-rw-r--r--Source/WebKit2/Configurations/Base.xcconfig2
-rw-r--r--Source/WebKit2/Configurations/Version.xcconfig2
-rw-r--r--Source/WebKit2/Scripts/webkit2/messages.py4
-rw-r--r--Source/WebKit2/Scripts/webkit2/parser.py2
-rw-r--r--Source/WebKit2/Shared/API/c/WKBase.h2
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_context.cpp17
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp4
-rw-r--r--Source/WebKit2/UIProcess/win/WebPopupMenuProxyWin.cpp21
-rw-r--r--Source/WebKit2/UIProcess/win/WebPopupMenuProxyWin.h25
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp2
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h43
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.mm1
-rw-r--r--Source/cmake/OptionsEfl.cmake1
-rw-r--r--Tools/ChangeLog112
-rw-r--r--Tools/DumpRenderTree/chromium/WebViewHost.cpp6
-rw-r--r--Tools/DumpRenderTree/chromium/WebViewHost.h2
-rw-r--r--Tools/Scripts/webkitpy/common/config/committers.py2
-rwxr-xr-xTools/Scripts/webkitpy/common/config/watchlist4
-rw-r--r--Tools/Scripts/webkitpy/layout_tests/port/leakdetector.py13
-rw-r--r--Tools/Scripts/webkitpy/layout_tests/port/mac.py8
-rw-r--r--Tools/Scripts/webkitpy/performance_tests/perftest.py4
-rwxr-xr-xTools/Scripts/webkitpy/performance_tests/perftest_unittest.py10
-rw-r--r--Tools/TestWebKitAPI/CMakeLists.txt1
-rw-r--r--Tools/TestWebKitAPI/GNUmakefile.am1
-rw-r--r--Tools/TestWebKitAPI/TestWebKitAPI.gypi5
-rw-r--r--Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj168
-rw-r--r--Tools/TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp105
-rw-r--r--Tools/TestWebKitAPI/win/TestWebKitAPI.vcproj4
-rw-r--r--configure.ac6
-rw-r--r--wscript6
1500 files changed, 472459 insertions, 3399 deletions
diff --git a/ChangeLog b/ChangeLog
index 9f04f8791..973e60872 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,55 @@
+2012-08-23 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Unreviewed build fix. Disable compilation of WebDOM file for now,
+ add the opentype directory, and remove old ATSUI files no longer in the tree.
+
+ * wscript:
+
+2012-08-22 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
+
+ [EFL] Use WTF_USE_SOUP instead BUILDING_SOUP__
+ https://bugs.webkit.org/show_bug.cgi?id=94744
+
+ Reviewed by Gustavo Noronha Silva.
+
+ There is no need to define BUILDING_SOUP__ if only WTF_USE_SOUP
+ is used.
+
+ * GNUmakefile.am:
+ * Source/cmake/OptionsEfl.cmake:
+
+2012-08-23 Zan Dobersek <zandobersek@gmail.com>
+
+ [Gtk] Move feature defines processing into a GNUmakefile that's simple to autogenerate
+ https://bugs.webkit.org/show_bug.cgi?id=87127
+
+ Reviewed by Martin Robinson.
+
+ Add 'feature_defines_defaults' and 'feature_defines_overrides' variables
+ and define them, along with 'feature_defines' (changed from the all-caps version),
+ before webcore_cppflags.
+
+ * GNUmakefile.am:
+
+2012-08-23 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] The tarball should be called webkitgtk-x.x.x.tar.xz
+ https://bugs.webkit.org/show_bug.cgi?id=94572
+
+ Reviewed by Carlos Garcia Campos.
+
+ Change the name of the tarball to match the name of the library
+ and to disambiguate it from other WebKit ports.
+
+ * configure.ac: Update the tarball name.
+
+2012-08-23 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Unreviewed. Bump WebKitGTK+ version number.
+
+ * configure.ac: Bump version number to 1.11.0 now that we branched
+ for 1.10.
+
2012-08-23 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r126306): it broke the plugin process
diff --git a/GNUmakefile.am b/GNUmakefile.am
index 8eeb9ffe9..168270e80 100644
--- a/GNUmakefile.am
+++ b/GNUmakefile.am
@@ -59,6 +59,9 @@ USER_LINGUAS :=
USE_LINGUAS :=
MOFILES :=
ALL_MOFILES :=
+feature_defines_defaults :=
+feature_defines_overrides :=
+feature_defines :=
dom_binding_idls :=
wtf_sources :=
javascriptcore_h_api :=
@@ -100,7 +103,6 @@ global_cflags :=
global_cxxflags :=
JSCORE_GIRSOURCES :=
WEBKIT_GIRSOURCES :=
-FEATURE_DEFINES :=
typelibsdir :=
typelibs_DATA :=
EXTRA_DIST :=
@@ -152,7 +154,6 @@ endif
global_cppflags += \
-DBUILDING_CAIRO__=1 \
-DBUILDING_GTK__=1 \
- -DBUILDING_SOUP__=1 \
-DWTF_CHANGES
if ENABLE_WEBKIT2
diff --git a/ManualTests/.gitattributes b/ManualTests/.gitattributes
new file mode 100644
index 000000000..379f2f5df
--- /dev/null
+++ b/ManualTests/.gitattributes
@@ -0,0 +1,7 @@
+DOMContextMenuEvent.html -crlf
+cursor-max-size.html -crlf
+drag-with-div-or-image-as-data-image.html -crlf
+empty-script-crash.html -crlf
+remove-form-node-with-radio-buttons-crash.html -crlf
+select-delete-item.html -crlf
+textarea-caret-position-after-auto-spell-correct.html -crlf
diff --git a/ManualTests/ATSU-bad-layout.html b/ManualTests/ATSU-bad-layout.html
new file mode 100644
index 000000000..ab725cb07
--- /dev/null
+++ b/ManualTests/ATSU-bad-layout.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=9808">Bugzilla bug 9808</a> REGRESSION: Incorrect layout (and ERROR) when forcing ATSU For All Text</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Choose <i>Use ATSU For All Text</i> from Safari&rsquo;s <i>Debug</i> menu and reload this page.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The text &ldquo;Lorem ipsum&rdquo; below will remain on one line.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+There will be a line break after &ldquo;Lorem&rdquo; (and at many other places on this page).
+</p>
+
+<span>Lorem</span> ipsum
+
+</body>
+</html>
diff --git a/ManualTests/DOMContextMenuEvent.html b/ManualTests/DOMContextMenuEvent.html
new file mode 100644
index 000000000..5c0fc33a5
--- /dev/null
+++ b/ManualTests/DOMContextMenuEvent.html
@@ -0,0 +1,56 @@
+<html>
+<script type="text/javascript">
+
+function context_event(event)
+{
+ if (window.event)
+ {
+ event = window.event;
+ }
+ var swallow = document.getElementById("swallow_context").checked;
+
+ var str =
+ "EVENT PROPERTIES<br>" +
+ "cancelable = "+event.cancelable+"<br>" +
+ "ctrlKey = "+event.ctrlKey+"<br>" +
+ "metaKey = "+event.metaKey+"<br>" +
+ "shiftKey = "+event.shiftKey+"<br>" +
+ "<br>" +
+ "TEST PROPERTIES<br>" +
+ "prevent default = "+swallow+"<br>" +
+ "event time = "+new Date()+"<br>" +
+ "";
+ document.getElementById("event_info").innerHTML=str;
+
+ if (swallow)
+ {
+ if ((typeof event.cancelBubble) != "undefined")
+ event.cancelBubble=true;
+
+ if ((typeof event.preventDefault) != "undefined")
+ event.preventDefault();
+
+ if ((typeof event.returnValue) != "undefined")
+ event.returnValue = false;
+
+ if ((typeof event.stopPropagation) != "undefined")
+ event.stopPropagation();
+
+ return false;
+ }
+
+ return true;
+}
+
+</script>
+
+<body oncontextmenu="return context_event(event)">
+<div>To activate context menu, right-click or ctrl-click anywhere on the page.</div>
+<div>&nbsp;</div>
+<div><input type="checkbox" value="1" name="swallow_context" id="swallow_context"> Prevent default context menu</div>
+<div>&nbsp;</div>
+<tt id="event_info" style='background-color:#eeeeee'>
+ -- No event captured --
+</tt>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/Default-port-frame.html b/ManualTests/Default-port-frame.html
new file mode 100644
index 000000000..660947d4d
--- /dev/null
+++ b/ManualTests/Default-port-frame.html
@@ -0,0 +1,12 @@
+To run this test you will need to put this file and Default-port-frame-contents.html
+on a webserver and then point your browser to http://localhost/Default-port-frame.html.
+We cannot make this a LayoutTest because we don't want to mess with people's default ports.
+<br>
+<iframe src="http://localhost:80/resources/Default-port-frame-contents.html"> </iframe>
+<script>
+ function test() {
+ var result = typeof frames[0].testData != 'undefined';
+ alert(result ? 'Success' : 'Failed');
+ }
+</script>
+<input type="button" onclick="test()" value="Click Me To Test" ></input> \ No newline at end of file
diff --git a/ManualTests/JavaScript-bookmarklets.html b/ManualTests/JavaScript-bookmarklets.html
new file mode 100644
index 000000000..0b71f6f60
--- /dev/null
+++ b/ManualTests/JavaScript-bookmarklets.html
@@ -0,0 +1,55 @@
+<script>
+var arr = new Array("var%20x=' ';", // Space %20
+ "var%20x='#';", // # %23
+ "var%20x='$';", // $ %24
+ "var%20x='%';", // % %25
+ "var%20x='&';", // & %26
+ "var%20x='/';", // / %2F
+ "var%20x=':';", // : %3A
+ "var%20x=';';", // ; %3B
+ "var%20x='<';", // < %3C
+ "var%20x='=';", // = %3D
+ "var%20x='>';", // > %3E
+ "var%20x='?';", // ? %3F
+ "var%20x='@';", // @ %40
+ "var%20x='[';", // [ %5B
+ "var%20x='\\';", // \ %5C
+ "var%20x=']';", // ] %5D
+ "var%20x='^';", // ^ %5E
+ "var%20x='`';", // ' %60
+ "var%20x='{';", // { %7B
+ "var%20x='|';", // | %7C
+ "var%20x='}';", // } %7D
+ "var%20x='~';"); // ~ %7E
+
+
+function makeLinks()
+{
+ var str = "javascript:";
+ var anchor, anchorText;
+ for (key in arr)
+ {
+ anchor = document.createElement("a");
+ anchor.setAttribute("href", str+arr[key]);
+ anchorText = document.createTextNode(arr[key]);
+ anchor.appendChild(anchorText);
+ document.body.appendChild(anchor);
+ document.body.appendChild(document.createElement("br"));
+ }
+}
+
+</script>
+<body onload="makeLinks();">
+This test is for <a href="rdar://problem/5310312">rdar://problem/5310312</a> and can be run manually only.<br>
+<a href="rdar://problem/5379908">rdar://problem/5379908</a> tracks the effort to enhance DRT to make this into a layout test.<br>
+<br>
+<b>Directions:</b>
+<ol>
+<li> drag each link below to the bookmarks bar to create bookmarks
+<li> open the JavaScript console (in the debug menu)
+<li> click on all the bookmarks you've just created
+</ol>
+<b>Expected results:</b>
+no parse errors in the JavaScript console<br>
+<br>
+</body> \ No newline at end of file
diff --git a/ManualTests/NPN_Invoke/English.lproj/Localized.r b/ManualTests/NPN_Invoke/English.lproj/Localized.r
new file mode 100644
index 000000000..f5c8373d5
--- /dev/null
+++ b/ManualTests/NPN_Invoke/English.lproj/Localized.r
@@ -0,0 +1,17 @@
+#include <CoreServices/CoreServices.r>
+
+// Plugin info
+resource 'STR#' (126) { {
+ "Tests NPN_Invoke()",
+ "NPN_Invoke Test Plug-In"
+} };
+
+// MIME Type descriptions
+resource 'STR#' (127) { {
+ "NPN_Invoke test"
+} };
+
+// MIME Types
+resource 'STR#' (128) { {
+ "test/npn-invoke"
+} };
diff --git a/ManualTests/NPN_Invoke/Info.plist b/ManualTests/NPN_Invoke/Info.plist
new file mode 100644
index 000000000..f7684e311
--- /dev/null
+++ b/ManualTests/NPN_Invoke/Info.plist
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>NPN_Invoke</string>
+ <key>CFBundleGetInfoString</key>
+ <string>420+, Copyright 2006 Apple Computer, Inc.</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.test.plugins.npn-invoke</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BRPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>CFPlugInDynamicRegisterFunction</key>
+ <string></string>
+ <key>CFPlugInDynamicRegistration</key>
+ <string>NO</string>
+</dict>
+</plist>
diff --git a/ManualTests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj b/ManualTests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj
new file mode 100644
index 000000000..a8a08f38e
--- /dev/null
+++ b/ManualTests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj
@@ -0,0 +1,253 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 2220AF6109A447200030077C /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2220AF6009A447200030077C /* WebKit.framework */; };
+ 2220B04709A459ED0030077C /* Localized.r in Rez */ = {isa = PBXBuildFile; fileRef = 2220B04609A459ED0030077C /* Localized.r */; };
+ 84226A8E06823C4700780194 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84226A8D06823C4700780194 /* Carbon.framework */; };
+ 8454AD210680F60300DFAEA4 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 8454AD200680F60300DFAEA4 /* main.c */; };
+ 8D576314048677EA00EA77CD /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
+ 2220AF6009A447200030077C /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; };
+ 2220B03809A459B20030077C /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; name = English; path = English.lproj/Localized.r; sourceTree = "<group>"; };
+ 84226A8D06823C4700780194 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+ 8454AD200680F60300DFAEA4 /* main.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; };
+ 8D576316048677EA00EA77CD /* NPN_Invoke.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NPN_Invoke.plugin; sourceTree = BUILT_PRODUCTS_DIR; };
+ 8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8D576313048677EA00EA77CD /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 84226A8E06823C4700780194 /* Carbon.framework in Frameworks */,
+ 8D576314048677EA00EA77CD /* CoreFoundation.framework in Frameworks */,
+ 2220AF6109A447200030077C /* WebKit.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 089C166AFE841209C02AAC07 /* NetscapeMoviePlugIn */ = {
+ isa = PBXGroup;
+ children = (
+ 08FB77AFFE84173DC02AAC07 /* Source */,
+ 089C167CFE841241C02AAC07 /* Resources */,
+ 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
+ 19C28FB6FE9D52B211CA2CBB /* Products */,
+ );
+ name = NetscapeMoviePlugIn;
+ sourceTree = "<group>";
+ };
+ 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ 84226A8D06823C4700780194 /* Carbon.framework */,
+ 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */,
+ 2220AF6009A447200030077C /* WebKit.framework */,
+ );
+ name = "External Frameworks and Libraries";
+ sourceTree = "<group>";
+ };
+ 089C167CFE841241C02AAC07 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 8D576317048677EA00EA77CD /* Info.plist */,
+ 2220B04609A459ED0030077C /* Localized.r */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 08FB77AFFE84173DC02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 8454AD200680F60300DFAEA4 /* main.c */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 19C28FB6FE9D52B211CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8D576316048677EA00EA77CD /* NPN_Invoke.plugin */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 8D57630D048677EA00EA77CD /* NPN_Invoke */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NPN_Invoke" */;
+ buildPhases = (
+ 8D576311048677EA00EA77CD /* Sources */,
+ 8333A742068B76EA00241F49 /* Rez */,
+ 8D57630F048677EA00EA77CD /* Resources */,
+ 8D576313048677EA00EA77CD /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = NPN_Invoke;
+ productInstallPath = "$(HOME)/Library/Bundles";
+ productName = NetscapeMoviePlugIn;
+ productReference = 8D576316048677EA00EA77CD /* NPN_Invoke.plugin */;
+ productType = "com.apple.product-type.bundle";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 089C1669FE841209C02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 149C298708902C53008A9EFC /* Build configuration list for PBXProject "NPN_Invoke" */;
+ compatibilityVersion = "Xcode 2.4";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = 089C166AFE841209C02AAC07 /* NetscapeMoviePlugIn */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8D57630D048677EA00EA77CD /* NPN_Invoke */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D57630F048677EA00EA77CD /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXRezBuildPhase section */
+ 8333A742068B76EA00241F49 /* Rez */ = {
+ isa = PBXRezBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2220B04709A459ED0030077C /* Localized.r in Rez */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXRezBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D576311048677EA00EA77CD /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8454AD210680F60300DFAEA4 /* main.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 2220B04609A459ED0030077C /* Localized.r */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 2220B03809A459B20030077C /* English */,
+ );
+ name = Localized.r;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 149C298408902C53008A9EFC /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ );
+ FRAMEWORK_SEARCH_PATHS = "$(FRAMEWORK_SEARCH_PATHS)";
+ GCC_DEBUGGING_SYMBOLS = full;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "/Library/Internet Plug-Ins";
+ PRODUCT_NAME = NPN_Invoke;
+ WRAPPER_EXTENSION = plugin;
+ };
+ name = Debug;
+ };
+ 149C298508902C53008A9EFC /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ );
+ FRAMEWORK_SEARCH_PATHS = "$(FRAMEWORK_SEARCH_PATHS)";
+ GCC_DEBUGGING_SYMBOLS = full;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "/Library/Internet Plug-Ins";
+ PRODUCT_NAME = NPN_Invoke;
+ WRAPPER_EXTENSION = plugin;
+ };
+ name = Release;
+ };
+ 149C298808902C53008A9EFC /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+ };
+ name = Debug;
+ };
+ 149C298908902C53008A9EFC /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NPN_Invoke" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 149C298408902C53008A9EFC /* Debug */,
+ 149C298508902C53008A9EFC /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 149C298708902C53008A9EFC /* Build configuration list for PBXProject "NPN_Invoke" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 149C298808902C53008A9EFC /* Debug */,
+ 149C298908902C53008A9EFC /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 089C1669FE841209C02AAC07 /* Project object */;
+}
diff --git a/ManualTests/NPN_Invoke/main.c b/ManualTests/NPN_Invoke/main.c
new file mode 100644
index 000000000..4a6d706e1
--- /dev/null
+++ b/ManualTests/NPN_Invoke/main.c
@@ -0,0 +1,265 @@
+/*
+ IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
+ consideration of your agreement to the following terms, and your use, installation,
+ modification or redistribution of this Apple software constitutes acceptance of these
+ terms. If you do not agree with these terms, please do not use, install, modify or
+ redistribute this Apple software.
+
+ In consideration of your agreement to abide by the following terms, and subject to these
+ terms, Apple grants you a personal, non-exclusive license, under AppleÕs copyrights in
+ this original Apple software (the "Apple Software"), to use, reproduce, modify and
+ redistribute the Apple Software, with or without modifications, in source and/or binary
+ forms; provided that if you redistribute the Apple Software in its entirety and without
+ modifications, you must retain this notice and the following text and disclaimers in all
+ such redistributions of the Apple Software. Neither the name, trademarks, service marks
+ or logos of Apple Computer, Inc. may be used to endorse or promote products derived from
+ the Apple Software without specific prior written permission from Apple. Except as expressly
+ stated in this notice, no other rights or licenses, express or implied, are granted by Apple
+ herein, including but not limited to any patent rights that may be infringed by your
+ derivative works or by other works in which the Apple Software may be incorporated.
+
+ The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES,
+ EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS
+ USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
+
+ IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
+ REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND
+ WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR
+ OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <WebKit/npapi.h>
+#import <WebKit/npfunctions.h>
+#import <WebKit/npruntime.h>
+
+NPNetscapeFuncs *browser;
+
+NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* saved);
+NPError NPP_Destroy(NPP instance, NPSavedData** save);
+NPError NPP_SetWindow(NPP instance, NPWindow* window);
+NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16_t* stype);
+NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason);
+int32_t NPP_WriteReady(NPP instance, NPStream* stream);
+int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer);
+void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname);
+void NPP_Print(NPP instance, NPPrint* platformPrint);
+int16_t NPP_HandleEvent(NPP instance, void* event);
+void NPP_URLNotify(NPP instance, const char* URL, NPReason reason, void* notifyData);
+NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value);
+NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value);
+
+#pragma export on
+// Mach-o entry points
+NPError NP_Initialize(NPNetscapeFuncs *browserFuncs);
+NPError NP_GetEntryPoints(NPPluginFuncs *pluginFuncs);
+void NP_Shutdown(void);
+// For compatibility with CFM browsers.
+int main(NPNetscapeFuncs *browserFuncs, NPPluginFuncs *pluginFuncs, NPP_ShutdownProcPtr *shutdown);
+#pragma export off
+
+
+typedef void (* FunctionPointer) (void);
+typedef void (* TransitionVector) (void);
+static FunctionPointer functionPointerForTVector(TransitionVector);
+static TransitionVector tVectorForFunctionPointer(FunctionPointer);
+
+// Mach-o entry points
+NPError NP_Initialize(NPNetscapeFuncs* browserFuncs)
+{
+ browser = browserFuncs;
+ return NPERR_NO_ERROR;
+}
+
+NPError NP_GetEntryPoints(NPPluginFuncs* pluginFuncs)
+{
+ pluginFuncs->version = 11;
+ pluginFuncs->size = sizeof(pluginFuncs);
+ pluginFuncs->newp = NPP_New;
+ pluginFuncs->destroy = NPP_Destroy;
+ pluginFuncs->setwindow = NPP_SetWindow;
+ pluginFuncs->newstream = NPP_NewStream;
+ pluginFuncs->destroystream = NPP_DestroyStream;
+ pluginFuncs->asfile = NPP_StreamAsFile;
+ pluginFuncs->writeready = NPP_WriteReady;
+ pluginFuncs->write = (NPP_WriteProcPtr)NPP_Write;
+ pluginFuncs->print = NPP_Print;
+ pluginFuncs->event = NPP_HandleEvent;
+ pluginFuncs->urlnotify = NPP_URLNotify;
+ pluginFuncs->getvalue = NPP_GetValue;
+ pluginFuncs->setvalue = NPP_SetValue;
+
+ return NPERR_NO_ERROR;
+}
+
+void NP_Shutdown(void)
+{
+
+}
+
+// For compatibility with CFM browsers.
+int main(NPNetscapeFuncs *browserFuncs, NPPluginFuncs *pluginFuncs, NPP_ShutdownProcPtr *shutdown)
+{
+ browser = malloc(sizeof(NPNetscapeFuncs));
+ bzero(browser, sizeof(NPNetscapeFuncs));
+
+ browser->size = browserFuncs->size;
+ browser->version = browserFuncs->version;
+
+ // Since this is a mach-o plug-in and the browser is CFM because it is calling main, translate
+ // our function points into TVectors so the browser can call them.
+ browser->geturl = (NPN_GetURLProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->geturl);
+ browser->posturl = (NPN_PostURLProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->posturl);
+ browser->requestread = (NPN_RequestReadProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->requestread);
+ browser->newstream = (NPN_NewStreamProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->newstream);
+ browser->write = (NPN_WriteProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->write);
+ browser->destroystream = (NPN_DestroyStreamProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->destroystream);
+ browser->status = (NPN_StatusProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->status);
+ browser->uagent = (NPN_UserAgentProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->uagent);
+ browser->memalloc = (NPN_MemAllocProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->memalloc);
+ browser->memfree = (NPN_MemFreeProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->memfree);
+ browser->memflush = (NPN_MemFlushProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->memflush);
+ browser->reloadplugins = (NPN_ReloadPluginsProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->reloadplugins);
+ browser->geturlnotify = (NPN_GetURLNotifyProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->geturlnotify);
+ browser->posturlnotify = (NPN_PostURLNotifyProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->posturlnotify);
+ browser->getvalue = (NPN_GetValueProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->getvalue);
+ browser->setvalue = (NPN_SetValueProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->setvalue);
+ browser->invalidaterect = (NPN_InvalidateRectProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->invalidaterect);
+ browser->invalidateregion = (NPN_InvalidateRegionProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->invalidateregion);
+ browser->forceredraw = (NPN_ForceRedrawProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->forceredraw);
+ browser->getJavaEnv = (NPN_GetJavaEnvProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->getJavaEnv);
+ browser->getJavaPeer = (NPN_GetJavaPeerProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->getJavaPeer);
+
+ pluginFuncs->version = 11;
+ pluginFuncs->size = sizeof(pluginFuncs);
+ pluginFuncs->newp = (NPP_NewProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_New);
+ pluginFuncs->destroy = (NPP_DestroyProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_Destroy);
+ pluginFuncs->setwindow = (NPP_SetWindowProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_SetWindow);
+ pluginFuncs->newstream = (NPP_NewStreamProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_NewStream);
+ pluginFuncs->destroystream = (NPP_DestroyStreamProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_DestroyStream);
+ pluginFuncs->asfile = (NPP_StreamAsFileProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_StreamAsFile);
+ pluginFuncs->writeready = (NPP_WriteReadyProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_WriteReady);
+ pluginFuncs->write = (NPP_WriteProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_Write);
+ pluginFuncs->print = (NPP_PrintProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_Print);
+ pluginFuncs->event = (NPP_HandleEventProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_HandleEvent);
+ pluginFuncs->urlnotify = (NPP_URLNotifyProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_URLNotify);
+ pluginFuncs->getvalue = (NPP_GetValueProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_GetValue);
+ pluginFuncs->setvalue = (NPP_SetValueProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_SetValue);
+
+ *shutdown = (NPP_ShutdownProcPtr)tVectorForFunctionPointer((FunctionPointer)NP_Shutdown);
+
+ return NPERR_NO_ERROR;
+}
+
+NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* saved)
+{
+ // Call window.alert("Success!")
+ NPError error;
+ NPObject *windowObject = NULL;
+ error = browser->getvalue(instance, NPNVWindowNPObject, &windowObject);
+ if (error == NPERR_NO_ERROR) {
+ NPVariant alertMessage;
+ STRINGZ_TO_NPVARIANT("Success!", alertMessage);
+ NPVariant result;
+ browser->invoke(instance, windowObject, browser->getstringidentifier("alert"), &alertMessage, 1, &result);
+ browser->releaseobject(windowObject);
+ }
+
+ return NPERR_NO_ERROR;
+}
+
+NPError NPP_Destroy(NPP instance, NPSavedData** save)
+{
+ return NPERR_NO_ERROR;
+}
+
+NPError NPP_SetWindow(NPP instance, NPWindow* window)
+{
+ return NPERR_NO_ERROR;
+}
+
+NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16_t* stype)
+{
+ *stype = NP_ASFILEONLY;
+ return NPERR_NO_ERROR;
+}
+
+NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason)
+{
+ return NPERR_NO_ERROR;
+}
+
+int32_t NPP_WriteReady(NPP instance, NPStream* stream)
+{
+ return 0;
+}
+
+int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer)
+{
+ return 0;
+}
+
+void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname)
+{
+}
+
+void NPP_Print(NPP instance, NPPrint* platformPrint)
+{
+
+}
+
+int16_t NPP_HandleEvent(NPP instance, void* event)
+{
+ return 1;
+}
+
+void NPP_URLNotify(NPP instance, const char* url, NPReason reason, void* notifyData)
+{
+
+}
+
+NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value)
+{
+ return NPERR_GENERIC_ERROR;
+}
+
+NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value)
+{
+ return NPERR_GENERIC_ERROR;
+}
+
+// function pointer converters
+
+FunctionPointer functionPointerForTVector(TransitionVector tvp)
+{
+ const uint32_t temp[6] = {0x3D800000, 0x618C0000, 0x800C0000, 0x804C0004, 0x7C0903A6, 0x4E800420};
+ uint32_t *newGlue = NULL;
+
+ if (tvp != NULL) {
+ newGlue = (uint32_t *)malloc(sizeof(temp));
+ if (newGlue != NULL) {
+ unsigned i;
+ for (i = 0; i < 6; i++) newGlue[i] = temp[i];
+ newGlue[0] |= ((UInt32)tvp >> 16);
+ newGlue[1] |= ((UInt32)tvp & 0xFFFF);
+ MakeDataExecutable(newGlue, sizeof(temp));
+ }
+ }
+
+ return (FunctionPointer)newGlue;
+}
+
+TransitionVector tVectorForFunctionPointer(FunctionPointer fp)
+{
+ FunctionPointer *newGlue = NULL;
+ if (fp != NULL) {
+ newGlue = (FunctionPointer *)malloc(2 * sizeof(FunctionPointer));
+ if (newGlue != NULL) {
+ newGlue[0] = fp;
+ newGlue[1] = NULL;
+ }
+ }
+ return (TransitionVector)newGlue;
+}
diff --git a/ManualTests/NPN_Invoke/test.html b/ManualTests/NPN_Invoke/test.html
new file mode 100644
index 000000000..516470154
--- /dev/null
+++ b/ManualTests/NPN_Invoke/test.html
@@ -0,0 +1,29 @@
+<html>
+<head>
+<title>NPN_Invoke() test</title>
+</head>
+<body>
+
+<object width="0" height="0" type="test/npn-invoke">
+ <!-- Fallback content to describe how to run the test -- />
+ <p>You do not have the &quot;NPN_Invoke&quot; plugin installed. Before you run this test:</p>
+ <ol>
+ <li>Build the included Xcode project, &quot;NPN_Invoke.xcodeproj&quot;.</li>
+ <li>Copy the built plugin (NPN_Invoke.plugin) to /Library/Internet Plug-Ins.</li>
+ <li>Restart Safari.</li>
+ </ol>
+</object>
+
+<p>This tests NPN_Invoke(), part of the Netscape Plugin API scripting interface.</p>
+<p>To verify, you must run this test with JavaScript enabled and then repeat the test with JavaScript disabled.</p>
+
+<h4>JavaScript enabled</h4>
+<p style="color: green">Success: An alert dialog is shown with the message &quot;Success!&quot;</p>
+<p style="color: red">Failure: No alert dialog is shown, or the message is not &quot;Success!&quot;</p>
+
+<h4>JavaScript disabled</h4>
+<p style="color: green">Success: No alert dialog is shown, and Safari remains open (does not crash).</p>
+<p style="color: red">Failure: An alert dialog is shown, or Safari crashes.</p>
+
+</body>
+</html>
diff --git a/ManualTests/WebKitSite.webarchive b/ManualTests/WebKitSite.webarchive
new file mode 100644
index 000000000..d9f9c88ce
--- /dev/null
+++ b/ManualTests/WebKitSite.webarchive
Binary files differ
diff --git a/ManualTests/about-blank-xhr.html b/ManualTests/about-blank-xhr.html
new file mode 100644
index 000000000..87478782b
--- /dev/null
+++ b/ManualTests/about-blank-xhr.html
@@ -0,0 +1,10 @@
+<ol>
+<li>Create a new tab.</li>
+<li>Navigate that tab to about:blank.</li>
+<li>Paste the following into the location bar:
+ <pre>javascript:x = new XMLHttpRequest(); x.open('get', 'http://jquery.com', false); x.send(); alert(x.responseText)</pre>
+</li>
+<li>Press "Enter".</li>
+<li>If you see the contents of jquery.com appear in an alert dialog, something
+has gone wrong.</li>
+</ol>
diff --git a/ManualTests/accessibility/java-applet.html b/ManualTests/accessibility/java-applet.html
new file mode 100644
index 000000000..5b5fd693b
--- /dev/null
+++ b/ManualTests/accessibility/java-applet.html
@@ -0,0 +1,20 @@
+<html>
+<body id="body">
+
+<applet code="AppletTest.class" width=200 height=140 codebase="resources" name="appletTest"></applet>
+
+<p>This test checks our support for accessibility of java applets.</p>
+<p>To test: (on mac only)
+<ol>
+ <li>Open Accessibility Inspector. Move mouse onto white area of web area.
+ <li>Press Cmd+F7 to lock onto the web area.
+ <li>Click on the "Go To" drop down in the window that appears.
+ <li>Choose AXChildren and select the AXGroup "Button".
+ <li>Choose AXChildren again and do the same.
+ <li>Continue this until you see the AXButton.
+ <li>If you do not see an AXButton, the test fails.
+</ol>
+<hr>
+
+</body>
+</html>
diff --git a/ManualTests/accessibility/resources/AppletTest.class b/ManualTests/accessibility/resources/AppletTest.class
new file mode 100644
index 000000000..5e551a3a6
--- /dev/null
+++ b/ManualTests/accessibility/resources/AppletTest.class
Binary files differ
diff --git a/ManualTests/accessibility/resources/AppletTest.java b/ManualTests/accessibility/resources/AppletTest.java
new file mode 100644
index 000000000..2c98a3230
--- /dev/null
+++ b/ManualTests/accessibility/resources/AppletTest.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2009 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* Source for a test applet used by layout tests. */
+
+import javax.swing.*;
+
+public class AppletTest extends JApplet {
+
+ public void init() {
+
+ setLayout(null);
+ JButton button = new JButton("button");
+ JTextField textField = new JTextField("TextField",20);
+
+ button.setBounds(10,10,100,30);
+ textField.setBounds(10,40,100,40);
+
+ add(button);
+ add(textField);
+ }
+}
diff --git a/ManualTests/accidental-strict-mode.html b/ManualTests/accidental-strict-mode.html
new file mode 100644
index 000000000..45ff8b74e
--- /dev/null
+++ b/ManualTests/accidental-strict-mode.html
@@ -0,0 +1,13 @@
+<p>This tests for regression against <a href="http://bugs.webkit.org/show_bug.cgi?id=7102">REGRESSION: parse mode gets set to strict after going back from non-HTML content</a></p>
+
+<ol>
+<li> Click on PDF link below. Wait for PDF to fully load.
+<li> Click "Back" button once.
+<li> Click the link again.
+<li> Click "Back" button once.
+</ol>
+
+<p>In the failing case, the thin line above the link will get much thicker. If it remains the same, this test has passed.</p>
+
+<table width=100% border=0 cellpadding=0 cellspacing=0><tr><td bgcolor=#3366cc><img width=1 height=1 alt=""></td></tr></table>
+<div><a href="http://www.irs.gov/pub/irs-pdf/fw4.pdf">http://www.irs.gov/pub/irs-pdf/fw4.pdf</a></div>
diff --git a/ManualTests/animate-duration.html b/ManualTests/animate-duration.html
new file mode 100644
index 000000000..d8bf81ebb
--- /dev/null
+++ b/ManualTests/animate-duration.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Overriding Animations</title>
+ <script src="../../shared/javascript/utils.js" type="text/javascript" charset="utf-8"></script>
+ <style type="text/css" media="screen">
+
+ .container {
+ position: relative;
+ width: 400px;
+ height: 120px;
+ border: 1px solid black;
+ margin: 10px;
+ }
+ .box {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ margin: 10px;
+ background-color: blue;
+ z-index: 0;
+ -webkit-animation-name: "slide";
+ -webkit-animation-duration: 1s;
+ -webkit-animation-direction: alternate;
+ -webkit-animation-timing-function: ease-in-out;
+ -webkit-animation-iteration-count: infinite;
+ }
+
+ .one {
+ -webkit-animation-duration: 0s;
+ }
+
+ .two {
+ -webkit-animation-duration: 0;
+ }
+
+ @-webkit-keyframes slide {
+ from { -webkit-transform: translateX(0); }
+ to { -webkit-transform: translateX(280px); }
+ }
+
+ </style>
+</head>
+<body>
+ <p>Single anim (should keep animating)</p>
+ <div class="container" onclick="toggleClassName(this, 'highlighted')">
+ <div class="box none">
+ </div>
+ </div>
+ <p>duration: "0s" (should not animate)</p>
+ <div class="container" onclick="toggleClassName(this, 'highlighted')">
+ <div class="box one">
+ </div>
+ </div>
+ <p>duration: "0" (should animate since inherits valid duration)</p>
+ <div class="container" onclick="toggleClassName(this, 'highlighted')">
+ <div class="box two">
+ </div>
+ </div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/animate-left.html b/ManualTests/animate-left.html
new file mode 100644
index 000000000..3ced2ec7e
--- /dev/null
+++ b/ManualTests/animate-left.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Animation of left property</title>
+ <style>
+ div {
+ position: relative;
+ left: 100px;
+ height: 200px;
+ width: 200px;
+ background-color: #9bb;
+ -webkit-animation-name: bounce;
+ -webkit-animation-duration: 2s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-direction: alternate;
+ -webkit-animation-timing-function: ease-in-out;
+ }
+
+ @-webkit-keyframes bounce {
+ from {
+ left: 100px;
+ }
+ to {
+ left: 300px;
+ }
+ }
+
+ </style>
+</head>
+<body>
+ <h1>Animation of 'left' property</h1>
+
+ <p>The element below should bounce 200 pixels left and right continuously</p>
+
+ <div id="target">
+ This element should animate.
+ </div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/animate-none.html b/ManualTests/animate-none.html
new file mode 100644
index 000000000..4cb2c8b4f
--- /dev/null
+++ b/ManualTests/animate-none.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+ <head>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+ <title>Testing animation-name: none</title>
+
+ <style type="text/css" media="screen">
+ div {
+ width: 300px;
+ height: 100px;
+ margin: 10px;
+ -webkit-animation-name: 'fail';
+ -webkit-animation-duration: 3.5s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-direction: alternate;
+ -webkit-animation-timing-function: linear;
+ }
+
+ @-webkit-keyframes 'fail' {
+ from {
+ -webkit-transform: rotate(-90deg);
+ }
+ to {
+ -webkit-transform: rotate(90deg);
+ }
+ }
+
+ #box1 {
+ position: relative;
+ background-color: blue;
+ -webkit-animation-name: 'sway1';
+ -webkit-animation-duration: 2.5s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-direction: alternate;
+ -webkit-animation-timing-function: linear;
+ }
+
+ @-webkit-keyframes 'sway1' {
+ from {
+ -webkit-transform: translate(0, 0);
+ }
+ to {
+ -webkit-transform: translate(200px, 0);
+ }
+ }
+
+ #box2 {
+ position: relative;
+ background-color: red;
+ -webkit-animation-name: 'sway2';
+ -webkit-animation-duration: 3s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-direction: alternate;
+ -webkit-animation-timing-function: linear;
+ }
+
+ @-webkit-keyframes 'sway2' {
+ from {
+ -webkit-transform: translate(0px, 0);
+ }
+ to {
+ -webkit-transform: translate(200px, 0);
+ }
+ }
+
+ #box3 {
+ position: relative;
+ background-color: green;
+ -webkit-animation-name: 'sway3';
+ -webkit-animation-duration: 3.5s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-direction: alternate;
+ -webkit-animation-timing-function: linear;
+ }
+
+ @-webkit-keyframes 'sway3' {
+ from {
+ -webkit-transform: translate(0px, 0);
+ }
+ to {
+ -webkit-transform: translate(200px, 0);
+ }
+ }
+
+ #box4 {
+ position: relative;
+ background-color: orange;
+ -webkit-animation-name: 'none';
+ -webkit-animation-duration: 3s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-direction: alternate;
+ -webkit-animation-timing-function: linear;
+ }
+
+ #box5 {
+ position: relative;
+ background-color: purple;
+ -webkit-animation-name: 'none';
+ -webkit-animation-duration: 3s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-direction: alternate;
+ -webkit-animation-timing-function: linear;
+ }
+
+ #box6 {
+ position: relative;
+ background-color: blue;
+ -webkit-animation-name: 'fade', 'sway6';
+ -webkit-animation-duration: 3s, 4s;
+ -webkit-animation-iteration-count: infinite, infinite;
+ -webkit-animation-direction: alternate, alternate;
+ -webkit-animation-timing-function: linear, linear;
+ }
+
+ @-webkit-keyframes 'sway6' {
+ from {
+ -webkit-transform: translate(0px, 0);
+ }
+ to {
+ -webkit-transform: translate(200px, 0);
+ }
+ }
+
+ @-webkit-keyframes 'fade' {
+ from {
+ opacity: 1.0;
+ }
+ to {
+ opacity: 0.1;
+ }
+ }
+
+ /* set up animation that should never be run */
+ @-webkit-keyframes none {
+ from {
+ -webkit-transform: translate(200px, 0) rotate(-90deg);
+ }
+ to {
+ -webkit-transform: translate(0px, 0) rotate(90deg);
+ }
+ }
+
+ </style>
+ <script type="text/javascript" charset="utf-8">
+ function killanims() {
+ console.log("click");
+ var box1 = document.getElementById("box1");
+ box1.style.webkitAnimationName = '';
+ var box2 = document.getElementById("box2");
+ box2.style.webkitAnimationName = 'none';
+ var box3 = document.getElementById("box3");
+ box3.style.webkitAnimationName = "'none'";
+ var box6 = document.getElementById("box6");
+ box6.style.webkitAnimationName = "none, 'sway6'";
+ }
+
+ setTimeout(killanims, 2000);
+ </script>
+ </head>
+ <body>
+
+ <h2>Testing animation: none</h2>
+
+ <p>
+ After 2 seconds only the blue rectangles should be
+ animating.
+ Any resulting animation
+ that involves rotation or fading means that this test has FAILED.</p>
+
+ <div id="box1">
+ This rectangle starts with an animation. After 2 seconds a timer
+ will set the animation-name on the element to '' (the empty string).
+ The CSS rule should cause the animation to continue.
+ </div>
+
+ <div id="box2">
+ This rectangle starts with an animation. After 2 seconds a timer
+ will set the animation-name on the element to 'none' (as an identifier).
+ This should cause the animation to stop.
+ </div>
+
+ <div id="box3">
+ This rectangle starts with an animation. After 2 seconds a timer
+ will set the animation-name on the element to 'none' (as a string).
+ This should cause the animation to stop.
+ </div>
+
+ <div id="box4">
+ This rectangle starts with an animation, but animation-name is
+ set to 'none' (as an identifier). No animation should run.
+ </div>
+
+ <div id="box5">
+ This rectangle starts with an animation, but animation-name is
+ set to 'none' (as a string). No animation should run.
+ </div>
+
+ <div id="box6">
+ This rectangle starts with two animations. After 2 seconds a timer
+ will set the animation-name on the fade to 'none'. The other
+ animation (horizontal) should continue.
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/ManualTests/animated-gif-bfcache-crash.html b/ManualTests/animated-gif-bfcache-crash.html
new file mode 100644
index 000000000..581a9570a
--- /dev/null
+++ b/ManualTests/animated-gif-bfcache-crash.html
@@ -0,0 +1,50 @@
+<html>
+<script>
+
+var theWindow;
+
+function step1()
+{
+ theWindow = window.open("./resources/containsAnimatedGif.html", "x");
+ setTimeout(step2, 100);
+}
+
+function step2()
+{
+ window.open("about:blank", "x");
+ setTimeout(step3, 100);
+}
+
+function step3()
+{
+ theWindow.close();
+ theWindow = window.open("./resources/containsAnimatedGif.html");
+ setTimeout(step4, 500);
+}
+
+function step4()
+{
+ theWindow.close();
+ document.getElementById("results").appendChild(document.createTextNode("PASSED"));
+}
+
+</script>
+
+<body>
+<p>This page tests the fix for <br>
+<a href="rdar://problem/6978362">rdar://problem/6978362</a> Repro crash animating GIF if previously used in a closed window's back/forward list <br>
+<a href="https://bugs.webkit.org/show_bug.cgi?id=26568">Bug 26568</a> <br>
+<p>Prerequisites:<br>
+<ul><li>run the LayoutTest's webserver (WebKitTools/run-webkit-httpd)</ul>
+<p>Then click this button: <input type="button" value="Run test" onclick="step1()">
+<p>Expected results:<br>
+<ul>
+<li>A window will open, loading a page with an animated gif.</li>
+<li>about:blank will be loaded in that window, putting the animated gif in the back/forward cache.</li>
+<li>That window will close.</li>
+<li>A new window will open, loading that page with the animated gif</li>
+<li>No crash means test passed </li>
+</ul>
+<span style="color:green;" id="results"></span>
+</body>
+</html>
diff --git a/ManualTests/animated-gif-looping.html b/ManualTests/animated-gif-looping.html
new file mode 100644
index 000000000..7dff13c31
--- /dev/null
+++ b/ManualTests/animated-gif-looping.html
@@ -0,0 +1,20 @@
+<html>
+<body>
+<div>
+ <img src="./resources/animated-infinite.gif">
+ <p>This should animate.</p>
+</div>
+<div>
+ <img src="./resources/non-animated.gif">
+ <p>This should not animate and you should see a cross.</p>
+</div
+<div>
+ <img src="./resources/animated-2x.gif">
+ <p>This animation should loop 2 times.</p>
+</div
+<div>
+ <img src="./resources/animated-10x.gif">
+ <p>This animation should loop 10 times.</p>
+</div
+</body>
+</html>
diff --git a/ManualTests/animation-with-transition.html b/ManualTests/animation-with-transition.html
new file mode 100644
index 000000000..37a758983
--- /dev/null
+++ b/ManualTests/animation-with-transition.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+ <title>simple-animation</title>
+ <style type="text/css" media="screen">
+ div {
+ position: relative;
+ left: 10px;
+ top: 10px;
+ width: 200px;
+ height: 200px;
+ background-color: #696;
+ -webkit-transition: left 5s, top 5s;
+ }
+
+ .animate {
+ -webkit-animation-name: simple;
+ -webkit-animation-duration: 2s;
+ -webkit-animation-timing-function: linear;
+ -webkit-animation-fill-mode: backwards;
+ }
+
+ @-webkit-keyframes simple {
+ 50% {
+ left: 300px;
+ }
+ 100% {
+ left: 80px;
+ }
+ }
+
+
+ </style>
+ <script type="text/javascript" charset="utf-8">
+
+ function doTransition() {
+ var div = document.querySelector("div");
+ div.style.left = "200px";
+ }
+
+ function doAnimation() {
+ var div = document.querySelector("div");
+ div.className = "animate";
+ }
+
+ </script>
+</head>
+<body>
+ <p>Testing setting an animation while a transition is running, in the
+ case where the animation synthesizes the initial keyframe</p>
+ <p>
+ Start the transition, then start the animation.</p>
+ <p>
+ <a href="https://bugs.webkit.org/show_bug.cgi?id=41188">https://bugs.webkit.org/show_bug.cgi?id=41188</a>
+ </p>
+ <button onclick="doTransition();">Transition</button>
+ <button onclick="doAnimation();">Set Animation</button>
+<div></div>
+</body>
+</html>
diff --git a/ManualTests/animation/animateColor-by.svg b/ManualTests/animation/animateColor-by.svg
new file mode 100644
index 000000000..d528865e8
--- /dev/null
+++ b/ManualTests/animation/animateColor-by.svg
@@ -0,0 +1,6 @@
+<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect width='100' height='100' fill='black'>
+ <animateColor attributeName="fill" by='green' dur='3s' fill='freeze' />
+ </rect>
+ <text x='10' y='120'>The rect should animate from black to green over 3 seconds</text>
+</svg>
diff --git a/ManualTests/animation/animateColor-from-by.svg b/ManualTests/animation/animateColor-from-by.svg
new file mode 100644
index 000000000..5d0be057f
--- /dev/null
+++ b/ManualTests/animation/animateColor-from-by.svg
@@ -0,0 +1,6 @@
+<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect width='100' height='100'>
+ <animateColor attributeName="fill" from='#DD0000' by='#0000DD' dur='3s' fill='freeze' />
+ </rect>
+ <text x='10' y='120'>The rect should animate from red to purple over 3 seconds</text>
+</svg>
diff --git a/ManualTests/animation/animateColor-repeat-indefinite.svg b/ManualTests/animation/animateColor-repeat-indefinite.svg
new file mode 100644
index 000000000..c2339f61d
--- /dev/null
+++ b/ManualTests/animation/animateColor-repeat-indefinite.svg
@@ -0,0 +1,6 @@
+<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect width='100' height='100'>
+ <animateColor attributeName="fill" values='blue; green' dur='2s' repeatCount='indefinite' />
+ </rect>
+ <text x='10' y='120'>The rect should animate from blue to green over 2 seconds, repeatedly.</text>
+</svg>
diff --git a/ManualTests/animation/animateColor-to-from.svg b/ManualTests/animation/animateColor-to-from.svg
new file mode 100644
index 000000000..ecd4357ab
--- /dev/null
+++ b/ManualTests/animation/animateColor-to-from.svg
@@ -0,0 +1,6 @@
+<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect width='100' height='100'>
+ <animateColor attributeName="fill" from='blue' to='green' dur='3s' fill='freeze' />
+ </rect>
+ <text x='10' y='120'>The rect should animate from blue to green over 3 seconds</text>
+</svg>
diff --git a/ManualTests/animation/animateColor-to.svg b/ManualTests/animation/animateColor-to.svg
new file mode 100644
index 000000000..4a276c6fb
--- /dev/null
+++ b/ManualTests/animation/animateColor-to.svg
@@ -0,0 +1,6 @@
+<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect width='100' height='100' fill='blue'>
+ <animateColor attributeName="fill" to='green' dur='3s' fill='freeze' />
+ </rect>
+ <text x='10' y='120'>The rect should animate from blue to green over 3 seconds</text>
+</svg>
diff --git a/ManualTests/animation/animateColor-values-simple.svg b/ManualTests/animation/animateColor-values-simple.svg
new file mode 100644
index 000000000..b512651f3
--- /dev/null
+++ b/ManualTests/animation/animateColor-values-simple.svg
@@ -0,0 +1,6 @@
+<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect width='100' height='100'>
+ <animateColor attributeName="fill" values='blue; green' dur='3s' fill='freeze' />
+ </rect>
+ <text x='10' y='120'>The rect should animate from blue to green over 3 seconds</text>
+</svg>
diff --git a/ManualTests/animation/animateMotion-to.svg b/ManualTests/animation/animateMotion-to.svg
new file mode 100644
index 000000000..17e2cdceb
--- /dev/null
+++ b/ManualTests/animation/animateMotion-to.svg
@@ -0,0 +1,8 @@
+<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect width='100' height='100'>
+ <animateMotion to='100,0' dur='3s' />
+ </rect>
+ <text x='10' y='120'>
+ The rect should from 0,0 to 100,0 over 3 seconds.
+ </text>
+</svg>
diff --git a/ManualTests/animation/animateTransform-keyTimes.svg b/ManualTests/animation/animateTransform-keyTimes.svg
new file mode 100644
index 000000000..049a0707e
--- /dev/null
+++ b/ManualTests/animation/animateTransform-keyTimes.svg
@@ -0,0 +1,11 @@
+<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect fill='blue' width='100' height='100'>
+ <animateTransform attributeName="transform" type='translate' values='0,0; 10,0; 100,0' keyTimes='0; .6; 1' dur='3s' fill='freeze' />
+ </rect>
+ <rect fill='none' stroke='orange' x='10' width='100' height='100' />
+ <rect fill='none' stroke='green' x='100' width='100' height='100' />
+ <text x='10' y='120'>
+ The rect should from 0,0 to 100,0 over 3 seconds.
+ <tspan dy='20' x='10'>It should be at the orange at 2 seconds and the green at 3 seconds.</tspan>
+ </text>
+</svg>
diff --git a/ManualTests/animation/animateTransform-parser.svg b/ManualTests/animation/animateTransform-parser.svg
new file mode 100644
index 000000000..4e0dd72f8
--- /dev/null
+++ b/ManualTests/animation/animateTransform-parser.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+animateTransform parsing code coverage for translate, rotate, skewX
+
+TODO: does not test e/E exponent notation
+
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="800px" height="600px">
+ <g transform="translate(-90, -90)">
+ <circle fill="none" stroke="black" stroke-width="3" cx="200" cy="200" r="100" />
+ <line x1="200" y1="200" x2="300" y2="200" stroke="red" stroke-width="30" stroke-linecap="round">
+ <animateTransform attributeName="transform" type="rotate" from=" 0, 200, 200" to=" 360, 200, 200"
+ dur="5s" />
+ </line>
+ <line x1="200" y1="200" x2="300" y2="200" stroke="green" stroke-width="20" stroke-linecap="round">
+ <animateTransform attributeName="transform" type="rotate" from=" 0 200 200" to=" 360 200 200"
+ dur="5s" />
+ </line>
+ <line x1="200" y1="200" x2="300" y2="200" stroke="blue" stroke-width="10" stroke-linecap="round">
+ <animateTransform attributeName="transform" type="rotate" from=" 0,200,200" to=" 360,200,200"
+ dur="5s" />
+ </line>
+ <line x1="200" y1="200" x2="300" y2="200" stroke="white" stroke-width="5" stroke-linecap="round">
+ <animateTransform attributeName="transform" type="rotate" from=" 0,+200 +200" to=" 360 +200 +200"
+ dur="5s" />
+ </line>
+ </g>
+ <g transform="translate(300, 10)">
+ <rect fill="none" stroke="black" stroke-width="3" x="0" y="0" width="200" height="200" />
+ <circle fill="red" cx="0" cy="0" r="30">
+ <animateTransform attributeName="transform" type="translate" from="0, 0" to="200, 200" dur="5s" />
+ </circle>
+ <circle fill="green" cx="0" cy="0" r="20">
+ <animateTransform attributeName="transform" type="translate" from="0 0" to="200 200" dur="5s" />
+ </circle>
+ <circle fill="blue" cx="0" cy="0" r="10">
+ <animateTransform attributeName="transform" type="translate" from="0,0" to="200,200" dur="5s" />
+ </circle>
+ <circle fill="yellow" cx="0" cy="0" r="5">
+ <animateTransform attributeName="transform" type="translate" from=" +0,+0" to=" +200 +200" dur="5s" />
+ </circle>
+ </g>
+ <g transform="translate(10, 300)">
+ <rect fill="none" stroke="black" stroke-width="3" x="0" y="0" width="200" height="200" />
+ <rect fill="red" x="0" y="0" width="40" height="100">
+ <animateTransform attributeName="transform" type="scale" from="1,1" by="0,1" dur="5s" />
+ </rect>
+ <rect fill="green" x="0" y="0" width="30" height="100">
+ <animateTransform attributeName="transform" type="scale" from="1 1" by="0 1" dur="5s" />
+ </rect>
+ <rect fill="blue" x="0" y="0" width="20" height="100">
+ <animateTransform attributeName="transform" type="scale" from="1, 1" by="0, 1" dur="5s" />
+ </rect>
+ <rect fill="yellow" x="0" y="0" width="10" height="100">
+ <animateTransform attributeName="transform" type="scale" from="+1,+1" by=" +0, +1" dur="5s" />
+ </rect>
+
+ <rect fill="red" x="0" y="0" width="100" height="40">
+ <animateTransform attributeName="transform" type="scale" from="1,1" by="1,0" dur="5s" />
+ </rect>
+ <rect fill="green" x="0" y="0" width="100" height="30">
+ <animateTransform attributeName="transform" type="scale" from="1 1" by="1 0" dur="5s" />
+ </rect>
+ <rect fill="blue" x="0" y="0" width="100" height="20">
+ <animateTransform attributeName="transform" type="scale" from="1, 1" by="1, 0" dur="5s" />
+ </rect>
+ <rect fill="yellow" x="0" y="0" width="100" height="10">
+ <animateTransform attributeName="transform" type="scale" from="+1,+1" by=" +1, +0" dur="5s" />
+ </rect>
+ </g>
+
+ <g transform="translate(300, 300)">
+ <rect fill="none" stroke="black" stroke-width="3" x="0" y="0" width="200" height="200" />
+ <rect fill="red" x="0" y="0" width="100" height="100">
+ <animateTransform attributeName="transform" type="skewX" from="0" by="45" dur="5s" />
+ </rect>
+ <rect fill="green" x="0" y="0" width="50" height="100">
+ <animateTransform attributeName="transform" type="skewX" from="0" by=" 45" dur="5s" />
+ </rect>
+ <rect fill="blue" x="0" y="0" width="25" height="100">
+ <animateTransform attributeName="transform" type="skewX" from="0" by=" +45.0" dur="5s" />
+ </rect>
+ </g>
+</svg>
+
diff --git a/ManualTests/animation/animateTransform-repeat-once.svg b/ManualTests/animation/animateTransform-repeat-once.svg
new file mode 100644
index 000000000..b1951baac
--- /dev/null
+++ b/ManualTests/animation/animateTransform-repeat-once.svg
@@ -0,0 +1,8 @@
+<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect fill='blue' width='100' height='100'>
+ <animateTransform attributeName="transform" type='translate' from='0,0' to='100,0' dur='2s' repeatCount='2' fill='freeze' />
+ </rect>
+ <text x='10' y='120'>
+ The rect should from 0,0 to 100,0 over 2 seconds, twice.
+ </text>
+</svg>
diff --git a/ManualTests/animation/animateTransform-toanimation.svg b/ManualTests/animation/animateTransform-toanimation.svg
new file mode 100644
index 000000000..b15ffd35b
--- /dev/null
+++ b/ManualTests/animation/animateTransform-toanimation.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="800px" height="600px">
+ <g transform="translate(10, 300)">
+ <rect fill="red" x="0" y="0" width="100" height="100">
+ <animateTransform attributeName="transform" type="scale" to="5" dur="5s" />
+ </rect>
+ </g>
+</svg>
+
diff --git a/ManualTests/animation/set-to.svg b/ManualTests/animation/set-to.svg
new file mode 100644
index 000000000..8b3545958
--- /dev/null
+++ b/ManualTests/animation/set-to.svg
@@ -0,0 +1,10 @@
+<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect width='100' height='100' fill='red' />
+ <rect x='-100' width='100' height='100' fill='red'>
+ <set attributeName='x' to='0' dur='3s' />
+ <set attributeName='fill' to='green' dur='3s' />
+ </rect>
+ <text x='10' y='120'>
+ There should be a 100x100 green rect at 0,0.
+ </text>
+</svg>
diff --git a/ManualTests/animation/transitions-and-paused-animations.html b/ManualTests/animation/transitions-and-paused-animations.html
new file mode 100644
index 000000000..388d83704
--- /dev/null
+++ b/ManualTests/animation/transitions-and-paused-animations.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Transitions and paused animations</title>
+ <style type="text/css" media="screen">
+
+ .container {
+ height: 200px;
+ width: 200px;
+ border: 1px solid black;
+ -webkit-transition: -webkit-transform 0.5s;
+ }
+
+ .moved {
+ -webkit-transform: translateX(100px);
+
+ }
+ .box {
+ position: relative;
+ height: 100px;
+ width: 100px;
+ margin: 50px;
+ background-color: blue;
+ -webkit-transform: translateZ(0);
+ -webkit-animation: fade 1s infinite linear alternate;
+ }
+
+ .moved .box {
+ -webkit-animation-play-state: paused;
+ }
+
+ @-webkit-keyframes fade {
+ from { -webkit-transform: rotate(-20deg); }
+ to { -webkit-transform: rotate(20deg); }
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8">
+
+ function runTest()
+ {
+ var box = document.querySelectorAll('.box')[0];
+ var container = document.querySelectorAll('.container')[0];
+
+ window.setTimeout(function() {
+ container.className = 'container';
+ }, 250);
+
+ window.setTimeout(function() {
+ container.className = 'container moved';
+ }, 1500);
+
+ window.setTimeout(function() {
+ container.className = 'container';
+ }, 3000);
+ }
+
+ window.addEventListener('load', runTest, false)
+ </script>
+</head>
+<body>
+
+<p>Box should animate smoothly left, then right then left again, and not jump at the end.</p>
+<div class="container moved">
+ <div class="box"></div>
+</div>
+
+</body>
+</html>
diff --git a/ManualTests/applet-finish-parsing-children.html b/ManualTests/applet-finish-parsing-children.html
new file mode 100644
index 000000000..842fd8555
--- /dev/null
+++ b/ManualTests/applet-finish-parsing-children.html
@@ -0,0 +1,11 @@
+<p>
+ Test for <i><a href="rdar://problem/5816522">Bug 5816522</a> REGRESSION (r30111-30112): Tahoe web cam website has some text in Chinese or japanese</i>.
+</p>
+<p>
+ You should see the word PASS below.
+</p>
+<applet codebase="resources" code="DrawMessage.class" width=534 height=50>
+<param name=text value="FAIL">
+<script src="data:text/javascript,document.body.offsetTop;"/>
+<param name=text value="PASS">
+</applet>
diff --git a/ManualTests/applet-param-no-name.html b/ManualTests/applet-param-no-name.html
new file mode 100644
index 000000000..c6e882179
--- /dev/null
+++ b/ManualTests/applet-param-no-name.html
@@ -0,0 +1,4 @@
+<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=8437">http://bugs.webkit.org/show_bug.cgi?id=8437</a></p>
+<p>This tests an applet element with a param element inside it with no name. If Java is enabled and Safari did not crash, then the test passed.</p>
+<applet code=""><param></applet>
+<script>document.body.offsetTop;</script>
diff --git a/ManualTests/array-out-of-memory.html b/ManualTests/array-out-of-memory.html
new file mode 100644
index 000000000..486e200dd
--- /dev/null
+++ b/ManualTests/array-out-of-memory.html
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script>
+
+function runArrayOOMTest() {
+ document.write("<p>Starting test...</p>");
+
+ // The index 'target' is the location in the array we expect to fault on access, should the size calculation of the realloc of the vector be allowed
+ // to overflow. The vector needs to be ((target + 1) * sizeof(JSValue*)) bytes long to hold 'target', or approximately 2/3 UINT32_MAX. Upon growing
+ // the array an additional 50% capacity will be allocated, plus the storage object header, taking the size of the allocation over UINT32_MAX.
+ var target = Math.floor(0xFFFFFFFF / 6);
+ // In order to force arr[target] to be stored in the vector, rather than the sparse map, we need ensure the vector is sufficiently densely populated.
+ var populate = Math.floor(target / 8 + 1);
+
+ try {
+ var arr = new Array();
+ for (i=0; i < populate; ++i)
+ arr[i] = 0;
+ arr[target] = 0;
+ } catch(e) {
+ var expect_name = "Error";
+ var expect_message = "Out of memory";
+ if ((e.name == expect_name) && (e.message == expect_message))
+ document.write("<p>SUCCESS</p>");
+ else
+ document.write("<p>FAIL - Expected \"" + expect_name + "/" + expect_message + "\", got \"" + e.name + "/" + e.message + "\".</p>");
+
+ return;
+ }
+
+ document.write("<p>FAIL - Expected exception.</p>");
+}
+
+</script>
+</head>
+<body>
+<p>This test checks that Array objects fail gracefully (throw exception) when array length grows large.</p>
+<p>This test may run for over 20 seconds on a fast machine, and will consume hundereds of MB of memory.</p>
+<input type="button" onclick="runArrayOOMTest()" value="Start">
+</body>
+</html>
diff --git a/ManualTests/arrow-key-events.html b/ManualTests/arrow-key-events.html
new file mode 100644
index 000000000..81231f158
--- /dev/null
+++ b/ManualTests/arrow-key-events.html
@@ -0,0 +1,93 @@
+<body>
+<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=3387">bug 3387</a>:
+Redundant keydown, keypress, keyup events sent for arrow keys.</p>
+
+<p>Try pressing arrow keys, PgUp/PgDown/Home/End, Esc, or function keys.
+The test passes if the box below doesn't turn red.<p>
+
+<div id="result" style="width:100px; height:100px; background-color:blue;"></div>
+
+<script>
+
+ var console_messages = document.createElement("ol");
+ document.body.appendChild(console_messages);
+
+ window.onkeydown = registerWindow;
+ window.onkeypress = registerWindow;
+ window.onkeyup = registerWindow;
+
+ document.onkeydown = registerDocument;
+ document.onkeypress = registerDocument;
+ document.onkeyup = registerDocument;
+
+ document.body.onkeydown = registerBody;
+ document.body.onkeypress = registerBody;
+ document.body.onkeyup = registerBody;
+
+ document.documentElement.onkeydown = registerDocumentElement;
+ document.documentElement.onkeypress = registerDocumentElement;
+ document.documentElement.onkeyup = registerDocumentElement;
+
+ var bodyKeyDownCount = 0;
+ var documentElementKeyDownCount = 0;
+ var windowKeyDownCount = 0;
+ var documentKeyDownCount = 0;
+
+ function log(message)
+ {
+ var item = document.createElement("li");
+ item.appendChild(document.createTextNode(message));
+ item.style.fontSize = '8px';
+ console_messages.appendChild(item);
+ }
+
+ function registerBody(e)
+ {
+ if ((e.type == "keydown" && ++bodyKeyDownCount != 1)
+ || (e.type == "keyup" && --bodyKeyDownCount != 0))
+ document.getElementById("result").style.backgroundColor = "red";
+
+ if (!e)
+ e = window.event;
+ log("body: " + e.type);
+ return true;
+ }
+
+ function registerDocumentElement(e)
+ {
+ if ((e.type == "keydown" && ++documentElementKeyDownCount != 1)
+ || (e.type == "keyup" && --documentElementKeyDownCount != 0))
+ document.getElementById("result").style.backgroundColor = "red";
+
+ if (!e)
+ e = window.event;
+ log(" documentElement: " + e.type);
+ return true;
+ }
+
+ function registerDocument(e)
+ {
+ if ((e.type == "keydown" && ++documentKeyDownCount != 1)
+ || (e.type == "keyup" && --documentKeyDownCount != 0))
+ document.getElementById("result").style.backgroundColor = "red";
+
+ if (!e)
+ e = window.event;
+ log("  document: " + e.type);
+ return true;
+ }
+
+ function registerWindow(e)
+ {
+ if ((e.type == "keydown" && ++windowKeyDownCount != 1)
+ || (e.type == "keyup" && --windowKeyDownCount != 0))
+ document.getElementById("result").style.backgroundColor = "red";
+
+ if (!e)
+ e = window.event;
+ log("   window: " + e.type);
+ return true;
+ }
+
+</script>
+</body>
diff --git a/ManualTests/audio-volume.html b/ManualTests/audio-volume.html
new file mode 100644
index 000000000..f7e698c53
--- /dev/null
+++ b/ManualTests/audio-volume.html
@@ -0,0 +1,28 @@
+<html>
+ <script>
+ function load()
+ {
+ var url="http://movies.apple.com/movies/us/apple/ipoditunes/2007/touch/ads/apple_ipodtouch_touch_r640-9cie.mov";
+ var vid = document.getElementById('vid')
+ vid.src = url;
+ vid.volume = 0.05;
+ vid.load();
+ }
+ function setVolume(vol)
+ {
+ var vid = document.getElementById('vid')
+ vid.volume = vol;
+ }
+ </script>
+
+ <body>
+
+ <video id=vid controls autoplay>
+ </video>
+ <p>TEST: Audio volume should be 0.05 when the movie begins playing.</p>
+ <input type="button" value="Load movie" onclick="load()">
+ <br>
+ <input type="button" value="volume=1.0" onclick="setVolume(1.0)">
+ <input type="button" value="volume=0.05" onclick="setVolume(0.05)">
+ </body>
+</html?
diff --git a/ManualTests/autocompletion-fire-onchange.html b/ManualTests/autocompletion-fire-onchange.html
new file mode 100644
index 000000000..c6ba28820
--- /dev/null
+++ b/ManualTests/autocompletion-fire-onchange.html
@@ -0,0 +1,40 @@
+<html>
+<head>
+<script>
+// This test case is based on the test case http://data.ici-bas.fr/chromiumissue10879/.
+window.changed = false;
+function checkForChange()
+{
+ if (!location.search)
+ return true;
+
+ if (!window.changed && document.getElementById("field").value != "")
+ log("FAIL");
+ else
+ log("PASS");
+ return false;
+}
+
+function log(msg)
+{
+ document.getElementById("log").appendChild(document.createTextNode(msg + "\n"));
+}
+</script>
+</head>
+<body>
+<p id="description">This test verifies that on autocompletion the 'onchange' event is fired.</p>
+<p>Steps to reproduce:</p>
+<ol>
+ <li>In the input field, type the word &quot;apple&quot; (without quotes). Then click the button Submit or hit the return/enter
+ key on your keyboard</li>
+ <li>Once the page reloads, in the input field, type &quot;ap&quot; (without quotes) and let the browser autocomplete the word (or select
+ &quot;apple&quot; from the autocompletion drop-down list contextual menu). Then click the button Submit or hit the return/enter
+ key on your keyboard.</li>
+</ol>
+<form method="get" onsubmit="return checkForChange()">
+ <p><input type="text" name="field" id="field" value="" onchange="window.changed = true"/></p>
+ <p><input type="submit" value="Submit"/></p>
+</form>
+<pre id="log"></pre>
+</body>
+</html>
diff --git a/ManualTests/autocorrection/autocorrection-cancelled-by-ESC.html b/ManualTests/autocorrection/autocorrection-cancelled-by-ESC.html
new file mode 100644
index 000000000..e6af6ec45
--- /dev/null
+++ b/ManualTests/autocorrection/autocorrection-cancelled-by-ESC.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('c');
+ typeCharacterCommand('o');
+ typeCharacterCommand('l');
+ typeCharacterCommand('l');
+ typeCharacterCommand('a');
+ typeCharacterCommand('p');
+ typeCharacterCommand('s');
+}
+
+</script>
+
+<title>Autocorrection Cancellation By ESC Test</title>
+</head>
+<body>
+<div><p>This test verifies that autocorrection is not applied when user dismisses correction panel by pressing
+ESC key.</p>
+<p>After seeing the correction panel, press ESC key, then press space. You should see the phrase "the collaps"
+where "collaps" has red mispell underline. </p>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. If the user has previously
+dismissed 'collapse' as the correct spelling of 'collaps' several times, the spell checker will not provide
+'collapse' as a suggestion anymore. To fix this, remove all files in ~/Library/Spelling.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/autocorrection-cancelled-by-typing-1.html b/ManualTests/autocorrection/autocorrection-cancelled-by-typing-1.html
new file mode 100644
index 000000000..3e78bb134
--- /dev/null
+++ b/ManualTests/autocorrection/autocorrection-cancelled-by-typing-1.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('c');
+ typeCharacterCommand('o');
+ typeCharacterCommand('l');
+ typeCharacterCommand('l');
+ typeCharacterCommand('a');
+ typeCharacterCommand('p');
+ typeCharacterCommand('s');
+}
+
+</script>
+
+<title>Autocorrection Cancellation By Typing Test</title>
+</head>
+<body>
+<div>This test verifies that autocorrection behaves correctly when continuing typing in a word on which autocorrection panel is hown. You should see correction panel showing 'collapse' after 'collaps' is entered. Then type "ing". Phrase 'the collapsing' should be shown without underline.</div>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. If the user has previously dismissed 'collapse' as the correct spelling of 'collaps' several times, the spell checker will not provide 'collapse' as a suggestion anymore. To fix this, remove all files in ~/Library/Spelling.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/autocorrection-contraction.html b/ManualTests/autocorrection/autocorrection-contraction.html
new file mode 100644
index 000000000..ca40d6239
--- /dev/null
+++ b/ManualTests/autocorrection/autocorrection-contraction.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('i');
+ typeCharacterCommand('s');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('w');
+ typeCharacterCommand('o');
+ typeCharacterCommand('u');
+ typeCharacterCommand('l');
+ typeCharacterCommand('d');
+ typeCharacterCommand('n');
+}
+
+</script>
+
+<title>Autocorrection with Contraction Test</title>
+</head>
+<body>
+<div><p>This test verifies that, after typing an apostrophe, if the current word is part of a contraction, previously shown autocorrection will not be applied.</p>
+<p>After loading the page, you should see correction panel shows "would" for "wouldn". Then after typing "'t", the correction panel dissappears and the final sentence is "this wouldn't".</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/autocorrection-in-iframe.html b/ManualTests/autocorrection/autocorrection-in-iframe.html
new file mode 100644
index 000000000..c4ebbcf27
--- /dev/null
+++ b/ManualTests/autocorrection/autocorrection-in-iframe.html
@@ -0,0 +1,16 @@
+<html>
+<head>
+
+<title>Test autocorreciton UI positioning in iframe</title>
+</head>
+<body>
+<p>This test verifies that autocorrection UI is positioned correctly when the corrected word is in an iframe.</p>
+<p>After typing "the manag", you should see the autocorrection UI is shown below the bounding box of the corrected word "manag".</p>
+<br>
+<br>
+<br>
+<div style="-webkit-transform: translate(100px, 100px) rotate(20deg)">
+ <iframe src="document-for-iframe-test.html"></iframe>
+</div>
+</body>
+</html>
diff --git a/ManualTests/autocorrection/close-window-when-correction-is-shown.html b/ManualTests/autocorrection/close-window-when-correction-is-shown.html
new file mode 100644
index 000000000..5c82a20f5
--- /dev/null
+++ b/ManualTests/autocorrection/close-window-when-correction-is-shown.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('m');
+ typeCharacterCommand('e');
+ typeCharacterCommand('s');
+ typeCharacterCommand('a');
+ typeCharacterCommand('e');
+ typeCharacterCommand('g');
+ typeCharacterCommand('e');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ execMoveSelectionBackwardByCharacterCommand();
+}
+
+</script>
+
+<title>Testing closing window when correction suggestion is shown</title>
+</head>
+<body>
+<div><p>This test verifies that when correction suggestion is visible, closing window doesn't hang or crash.</p>
+<p>After seeing the panel with multiple candidates, close the window.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/continue-typing-to-dismiss-reversion.html b/ManualTests/autocorrection/continue-typing-to-dismiss-reversion.html
new file mode 100644
index 000000000..a1011fac6
--- /dev/null
+++ b/ManualTests/autocorrection/continue-typing-to-dismiss-reversion.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('m');
+ typeCharacterCommand('e');
+ typeCharacterCommand('s');
+ typeCharacterCommand('a');
+ typeCharacterCommand('g');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ execMoveSelectionBackwardByCharacterCommand();
+}
+
+</script>
+
+<title>Continue Typing to Dismiss Reversion Panel Test</title>
+</head>
+<body>
+<div><p>This test verifies that, after reversion panel is shown, continue typing will dismiss the reversion panel.</p>
+<p>After seeing the reversion panel, start typing (excluding whitespace). You should see the panel being
+dismissed once you start typing.</p>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. If the user has previously
+frequently revert 'message' to 'mesage'. To fix this, remove all files in ~/Library/Spelling, then kill AppleSpell.service process.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/delete-to-dismiss-reversion.html b/ManualTests/autocorrection/delete-to-dismiss-reversion.html
new file mode 100644
index 000000000..bbaa77d28
--- /dev/null
+++ b/ManualTests/autocorrection/delete-to-dismiss-reversion.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('m');
+ typeCharacterCommand('e');
+ typeCharacterCommand('s');
+ typeCharacterCommand('a');
+ typeCharacterCommand('g');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ execMoveSelectionBackwardByCharacterCommand();
+}
+
+</script>
+
+<title>Delete to Dismiss Reversion Panel Test</title>
+</head>
+<body>
+<div><p>This test verifies that, after reversion panel is shown, continue deleting the word will dismiss the reversion panel.</p>
+<p>After seeing the reversion panel, start deleting the corrected word character by character. You should see the panel being
+dismissed once you start deleting.</p>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. If the user has previously
+frequently revert 'message' to 'mesage'. To fix this, remove all files in ~/Library/Spelling, then kill AppleSpell.service process.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/delete-to-end-of-word-to-show-reversion.html b/ManualTests/autocorrection/delete-to-end-of-word-to-show-reversion.html
new file mode 100644
index 000000000..aad137688
--- /dev/null
+++ b/ManualTests/autocorrection/delete-to-end-of-word-to-show-reversion.html
@@ -0,0 +1,47 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('m');
+ typeCharacterCommand('e');
+ typeCharacterCommand('s');
+ typeCharacterCommand('a');
+ typeCharacterCommand('g');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ execDeleteCommand();
+}
+
+</script>
+
+<title>Delete to End of Word to Show Reversion Panel Test</title>
+</head>
+<body>
+<div><p>This test verifies that reversion panel is shown when user moves carret to previously corrected word using delete key.</p>
+<p>After seeing the reversion panel, press down key followed by return key. You should see the phrase "the mesage". </p>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. If the user has previously frequently revert 'message' to 'mesage'. To fix this, remove all files in ~/Library/Spelling, then kill AppleSpell.service process.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/dismiss-multiple-guesses.html b/ManualTests/autocorrection/dismiss-multiple-guesses.html
new file mode 100644
index 000000000..67171b783
--- /dev/null
+++ b/ManualTests/autocorrection/dismiss-multiple-guesses.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('m');
+ typeCharacterCommand('e');
+ typeCharacterCommand('s');
+ typeCharacterCommand('a');
+ typeCharacterCommand('e');
+ typeCharacterCommand('g');
+ typeCharacterCommand('e');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ execMoveSelectionBackwardByCharacterCommand();
+}
+
+</script>
+
+<title>Dismiss Multiple Guesses Test</title>
+</head>
+<body>
+<div><p>This test verifies that pressing ESC key diusmisses multiple guesses panel correctly</p>
+<p>After seeing the panel with multiple candidates, pressing ESC key to dismiss the panel.</p>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. To fix this, remove all files in ~/Library/Spelling, then kill AppleSpell.service process.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/document-for-iframe-test.html b/ManualTests/autocorrection/document-for-iframe-test.html
new file mode 100644
index 000000000..629a830f8
--- /dev/null
+++ b/ManualTests/autocorrection/document-for-iframe-test.html
@@ -0,0 +1,36 @@
+<html>
+<head>
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('m');
+ typeCharacterCommand('a');
+ typeCharacterCommand('n');
+ typeCharacterCommand('a');
+ typeCharacterCommand('g');
+}
+</script>
+
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/move-to-end-of-word-to-show-reversion.html b/ManualTests/autocorrection/move-to-end-of-word-to-show-reversion.html
new file mode 100644
index 000000000..ce0170a92
--- /dev/null
+++ b/ManualTests/autocorrection/move-to-end-of-word-to-show-reversion.html
@@ -0,0 +1,47 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('m');
+ typeCharacterCommand('e');
+ typeCharacterCommand('s');
+ typeCharacterCommand('a');
+ typeCharacterCommand('g');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ execMoveSelectionBackwardByCharacterCommand();
+}
+
+</script>
+
+<title>Move to End of Word to Show Reversion Panel Test</title>
+</head>
+<body>
+<div><p>This test verifies that reversion panel is shown when user moves carret to previously corrected word</p>
+<p>After seeing the reversion panel, press down key followed by return key. You should see the phrase "the mesage". </p>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. If the user has previously frequently revert 'message' to 'mesage'. To fix this, remove all files in ~/Library/Spelling, then kill AppleSpell.service process.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/remove-misspelling-marker-after-appending-letter.html b/ManualTests/autocorrection/remove-misspelling-marker-after-appending-letter.html
new file mode 100644
index 000000000..f1c53504c
--- /dev/null
+++ b/ManualTests/autocorrection/remove-misspelling-marker-after-appending-letter.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+
+function editingTest() {
+ textarea = document.getElementById('test');
+ textarea.focus();
+ document.execCommand("InsertText", false, "this brougt");
+ typeCharacterCommand(' ');
+ document.execCommand("Delete");
+ document.execCommand("Delete");
+ typeCharacterCommand(' ');
+
+ // Now the word "brough" should carry misspelling marker.
+
+ document.execCommand("Delete");
+}
+
+</script>
+
+<title>Removing misspelling marker after appending letter test.</title>
+</head>
+<body>
+<div>The test verified that misspelling marker is removed after appending new letter to misspelled word. You should see the phrase "this brought" without red underline.</div>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. If the user has previously dismissed 'brought' as the correct spelling of 'brougth' several times, the spell checker will not provide 'notational' as a suggestion anymore. To fix this, remove all files in ~/Library/Spelling.</p>
+<textarea id="test" cols="80" rows="10"></textarea>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/select-from-multiple-guesses.html b/ManualTests/autocorrection/select-from-multiple-guesses.html
new file mode 100644
index 000000000..cbd1dcda0
--- /dev/null
+++ b/ManualTests/autocorrection/select-from-multiple-guesses.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('m');
+ typeCharacterCommand('e');
+ typeCharacterCommand('s');
+ typeCharacterCommand('a');
+ typeCharacterCommand('e');
+ typeCharacterCommand('g');
+ typeCharacterCommand('e');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ execMoveSelectionBackwardByCharacterCommand();
+}
+
+</script>
+
+<title>Select From Multiple Guesses Test</title>
+</head>
+<body>
+<div><p>This test verifies that multiple guesses on mispelled word is working correctly</p>
+<p>After seeing the panel with multiple candidates, use left and/or right arrow key to select the desired candidate, and then use return key to confirm. You can also use this test to test that pressing ESC key will dismiss the panel.</p>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. To fix this, remove all files in ~/Library/Spelling, then kill AppleSpell.service process.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/spell-checking-after-reversion.html b/ManualTests/autocorrection/spell-checking-after-reversion.html
new file mode 100644
index 000000000..b125f8ab1
--- /dev/null
+++ b/ManualTests/autocorrection/spell-checking-after-reversion.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('c');
+ typeCharacterCommand('y');
+ typeCharacterCommand('l');
+ typeCharacterCommand('i');
+ typeCharacterCommand('n');
+ typeCharacterCommand('d');
+ typeCharacterCommand('r');
+}
+
+</script>
+
+<title>Spellchecking After Reversion Test</title>
+</head>
+<body>
+<div><p>This test verifies the behavior of spellchecking after reversion.</p>
+<ol>
+<li>After seeing the correction panel, press space to accept the correction.</li>
+<li>Press delete key to bring up reversion bubble.</li>
+<li>Press down arrow followed by return key to accept the reversion suggestion.</li>
+<li>Press space key again, and verify that the word "cylindr" IS NOT marked as misspelled.</li>
+<li>Press delete key twice.</li>
+<li>Press space key again, and verify that the word "cylind" IS marked as misspelled.</li>
+</ol>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. To fix this, remove all files in ~/Library/Spelling.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/spellcheck-on-contraction-when-autocorrection-is-off.html b/ManualTests/autocorrection/spellcheck-on-contraction-when-autocorrection-is-off.html
new file mode 100644
index 000000000..5e8407809
--- /dev/null
+++ b/ManualTests/autocorrection/spellcheck-on-contraction-when-autocorrection-is-off.html
@@ -0,0 +1,24 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+
+<title>Undo Autocorrection Test</title>
+</head>
+<body>
+<p>This test verifies that common contraction is not marked as misspelled when autocorrection is off.</p>
+<p><b>Step 1:</b> Bring up contextual manual, and uncheck "Spelling and Grammar -> Correct Spelling Automatically" and "Substitutions -> Text Replacement".</p>
+<p><b>Step 2:</b> Type "this wasn't", and verify that "wasn't" isn't marked as mispelled.</p>
+<p><b>Step 3:</b> Restore the settings in contextual manual, otherwise it may affect the result of other autocorrection related tests.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/type-whitespace-to-dismiss-reversion.html b/ManualTests/autocorrection/type-whitespace-to-dismiss-reversion.html
new file mode 100644
index 000000000..8eb346a34
--- /dev/null
+++ b/ManualTests/autocorrection/type-whitespace-to-dismiss-reversion.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+<script src=../../../../LayoutTests/editing/editing.js language="JavaScript" type="text/JavaScript" ></script>
+
+<script>
+function editingTest() {
+ typeCharacterCommand('t');
+ typeCharacterCommand('h');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ typeCharacterCommand('m');
+ typeCharacterCommand('e');
+ typeCharacterCommand('s');
+ typeCharacterCommand('a');
+ typeCharacterCommand('g');
+ typeCharacterCommand('e');
+ typeCharacterCommand(' ');
+ execMoveSelectionBackwardByCharacterCommand();
+}
+
+</script>
+
+<title>Type Whitespace to Dismiss Reversion Panel Test</title>
+</head>
+<body>
+<div><p>This test verifies that, after reversion panel is shown, typing whitespace will dismiss the reversion panel.</p>
+<p>After seeing the reversion panel, type whitespace. You should see the panel being dismissed once you start typing.</p>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. If the user has previously
+frequently revert 'message' to 'mesage'. To fix this, remove all files in ~/Library/Spelling, then kill AppleSpell.service process.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/autocorrection/undo-autocorrection.html b/ManualTests/autocorrection/undo-autocorrection.html
new file mode 100644
index 000000000..972c88b69
--- /dev/null
+++ b/ManualTests/autocorrection/undo-autocorrection.html
@@ -0,0 +1,24 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+
+<title>Undo Autocorrection Test</title>
+</head>
+<body>
+<div><p>This test verifies the behavior of undoing autocorrection.</p>
+<p><b>Test 1:</b> Type "the mesage". After seeing the correction panel, type whitespace to accept the correction, then select undo. You should see the second word being reverted to "message".</p>
+<p><b>Test 2:</b> Type "the ". Set font to bold, then type "me". Set font to regular, then type "sage". After seeing the correction panel, type whitespace to accept the correction, then select undo. You should see the second word being reverted to "message" with "me" in bold font.</p>
+<p style="color:green">Note, this test can fail due to user specific spell checking data. If the user has previously frequently revert 'message' to 'mesage'. To fix this, remove all files in ~/Library/Spelling, then kill AppleSpell.service process.</p>
+<div contenteditable id="root" class="editing">
+<span id="test"></span>
+</div>
+
+</body>
+</html>
diff --git a/ManualTests/autofill-popup-location.html b/ManualTests/autofill-popup-location.html
new file mode 100644
index 000000000..f6628715a
--- /dev/null
+++ b/ManualTests/autofill-popup-location.html
@@ -0,0 +1,32 @@
+<html>
+ <head>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
+ <title>
+ Test autofill popup window shows at the correct location.
+ </title>
+ </head>
+ <body>
+ <h3>Test autofill popup window shows at the correct location.</h3>
+ <ol>
+ <li> Enter 'Always show bookmarks bar' in the following text input area.</li>
+ <li> Enter 'Test' in the text input area.</li>
+ <li> Press 'a' and make sure 'Always show bookmarks bar' is shown in autofill popup window.</li>
+ <li> Select all with pressing Ctrl-a.</li>
+ <li> Press 't' and make sure 'Test' is shown and the popup window location is correct.</li>
+ </ol>
+ <br>
+ <form><input name=q autofocus></form>
+
+ <ol>
+ <li> Type the text 'This is really long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text.' in the following text input area. And press ENTER to submit.</li>
+ <li>Return to this page</li>
+ <li> Press 'T' and make sure the input text is shown in autofill popup window and it exceeds the width of screen. If your display resolution is very high, and the while text fits in the window, please fill more characters and try again till the text exceeds the width.
+ <li> Type the text 'This is short text.' in the following text input area. And press ENTER to submit.</li>
+ <li> Press 't' and make sure the input text which you typed in is displayed in autofill popup window.</li>
+ <li> Press 'h' and make sure the popup window location is correct.</li>
+ <li> Press arrow key down and make sure the popup window text is not broken.</li>
+ </ol>
+ <br>
+ <form><input name=p></form>
+ </body>
+</html>
diff --git a/ManualTests/autofill-popup-width-and-item-direction.html b/ManualTests/autofill-popup-width-and-item-direction.html
new file mode 100644
index 000000000..fa0a80a51
--- /dev/null
+++ b/ManualTests/autofill-popup-width-and-item-direction.html
@@ -0,0 +1,37 @@
+<html>
+<head>
+<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
+<title>
+Test the popup list box's width and its items' display directionality
+</title>
+</head>
+<body>
+<p>
+Autofill popup list box should have the same width as its input field's width.
+If the submitted input text is longer, it will be truncated to fit in the
+input field's width
+<p> Try type some long text in the "Last name" input box,
+ Say "abcd abcd abcd abcd abcd abcd".
+then click "Submit". Open the file again, and type the first letter "a",
+the form autofill pop-up should show up now with the width the same as
+the width of the input field, and the text "abcd abcd abcd abcd abcd abcd" got
+truncated to fit in.
+<p> Try type the following text into the "First name" and "Last name".
+<ul>
+<li>abcd efg
+<li>שששששש ננננננ בבבבבבבבב
+<li>abc ××× defghijklmnopq
+<li>×××××××××× abcdefghijklmn בבבבבבב
+<li>hi!
+<li>××!
+</ul>
+They should be displayed as RTL in the popup of "First name",
+and should be displayed as LTR in the popup of the "Last name".
+<br>
+<form action="form_action.asp" method="get">
+ First name: <input type="text" name="fname" dir="rtl"/><br />
+ Last name: <input type="text" name="lname" /><br />
+ <input type="submit" value="Submit" />
+</form>
+</body>
+</html>
diff --git a/ManualTests/autofill_alignment.html b/ManualTests/autofill_alignment.html
new file mode 100644
index 000000000..4863e41a0
--- /dev/null
+++ b/ManualTests/autofill_alignment.html
@@ -0,0 +1,25 @@
+<html>
+<head>
+<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
+<title>
+Test auto-fill drop-down items' alignment
+</title>
+</head>
+<body>
+<p>
+Autofill drop-down item's alignment should be the same as the input field.
+It should align left if the input field's direction is ltr. It should
+align right if the input field's direction is rtl.
+<p> Try type some text in the "First name" and "Last name" input box,
+then click "Submit". Open the file again, double click the "First name"
+field, the drop-down box should be opened with the items aligned right.
+Double click the "Last name" field, the drop-down box should be opened
+with the items aligned left.
+<br>
+<form action="form_action.asp" method="get">
+ First name: <input type="text" name="fname" dir="rtl"/><br />
+ Last name: <input type="text" name="lname" /><br />
+ <input type="submit" value="Submit" />
+</form>
+</body>
+</html>
diff --git a/ManualTests/autoscroll-over-scrollbar.html b/ManualTests/autoscroll-over-scrollbar.html
new file mode 100644
index 000000000..2330ed15f
--- /dev/null
+++ b/ManualTests/autoscroll-over-scrollbar.html
@@ -0,0 +1,8 @@
+<html>
+ <body>
+ <h1><a href="https://bugs.webkit.org/show_bug.cgi?id=40403">Bug 40403</a></h1>
+ <p>Click down somewhere in this text, then move the pointer over the scrollbar at the bottom of the window, stop there, holding the mouse button down.</p>
+ <div style="height:3000px; width:3000px;"></div>
+ <p>If the bug occurs, then this text won't be selected until you move the mouse slightly. If the bug does not occur, this text should be selected.</p>
+ </body>
+</html>
diff --git a/ManualTests/autoscroll-when-outside-window.html b/ManualTests/autoscroll-when-outside-window.html
new file mode 100644
index 000000000..91b4ecfe3
--- /dev/null
+++ b/ManualTests/autoscroll-when-outside-window.html
@@ -0,0 +1,7 @@
+<html>
+ <body>
+ <p>Click somewhere in this text, then quickly drag past the bottom of the window and hold still to allow auto-scrolling to happen.</p>
+ <div style="height:3000px"></div>
+ <p>If the bug occurs, then this text won't be selected until you move the mouse slightly. If the bug does not occur, this text should be selected.</p>
+ </body>
+</html>
diff --git a/ManualTests/autoscroll.html b/ManualTests/autoscroll.html
new file mode 100644
index 000000000..db9bd90d9
--- /dev/null
+++ b/ManualTests/autoscroll.html
@@ -0,0 +1,32 @@
+<head>
+<script>
+function addFrameText() {
+ frameDoc = window.frames[0].document;
+ item = frameDoc.createElement("p");
+ item.appendChild(frameDoc.createTextNode("Hello, world!"));
+ for (i = 0; i < 1000; ++i) {
+ frameDoc.body.appendChild(item.cloneNode(true));
+ }
+}
+</script>
+</head>
+
+<body onload="javascript:addFrameText()">
+
+<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=11718">bug 11718</a>:
+When I mouse up after dragging a selection outside of a iframe, the iframe continues to scroll automatically.</p>
+
+<p>Make the frame autoscroll by moving the mouse pointer outside of it while selecting.
+Autoscrolling should stop when you release the mouse button outside the frame (in the main frame,
+in another subframe, or just outside the window).</p>
+
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=49209">bug 49209</a>:
+Open another page in a different tab, middle click in the first iframe, scroll up, and select the other tab. The pan scrolling
+cursor should disappear, and you should exit pan scrolling mode.</p>
+
+<IFRAME FRAMEBORDER=1></IFRAME>
+<br>
+<IFRAME FRAMEBORDER=1></IFRAME>
+
+</body>
+</html>
diff --git a/ManualTests/back-forward-during-alert-1.html b/ManualTests/back-forward-during-alert-1.html
new file mode 100644
index 000000000..41a6e6a27
--- /dev/null
+++ b/ManualTests/back-forward-during-alert-1.html
@@ -0,0 +1,3 @@
+<body>
+View this page, then click <a href="back-forward-during-alert-2.html">here.</a>
+</body>
diff --git a/ManualTests/back-forward-during-alert-2.html b/ManualTests/back-forward-during-alert-2.html
new file mode 100644
index 000000000..931af018c
--- /dev/null
+++ b/ManualTests/back-forward-during-alert-2.html
@@ -0,0 +1,10 @@
+<script>
+function loaded()
+{
+ alert("While this alert is showing, two-fingered swipe back using a MacBook trackpad, Magic Trackpad, or Magic Mouse. You should not be able to navigate back. If you can, dismissing this dialog will likely result in a crash.");
+}
+</script>
+
+<body onload="loaded();">
+Follow the instructions in the alert that shows up on page load.
+</body>
diff --git a/ManualTests/back-from-document-with-scrollbar.html b/ManualTests/back-from-document-with-scrollbar.html
new file mode 100644
index 000000000..800437f2c
--- /dev/null
+++ b/ManualTests/back-from-document-with-scrollbar.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+<script>
+
+function navigate()
+{
+ if (location.hash == "") {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+ }
+
+ history.pushState({ }, "", window.location + "#1");
+ setTimeout(function() {
+ window.location.href = 'data:text/html, \
+ <html style="height: 200%"> \
+ <body onunload=""> \
+ <script> \
+ document.body.offsetWidth; \
+ setTimeout("window.history.back();", 0); \
+ <' + '/script> \
+ </body> \
+ </html> \
+ ';
+ }, 0);
+ return;
+ }
+
+ setTimeout(function () {
+ var result = document.getElementById("result");
+ result.innerHTML = "Success if the web process did not crash."
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ }, 0);
+}
+
+</script>
+</head>
+<body onpageshow="navigate();">
+ <div id="result">Test did not complete</div>
+</body>
+</htmL>
diff --git a/ManualTests/back.html b/ManualTests/back.html
new file mode 100644
index 000000000..4eea5df32
--- /dev/null
+++ b/ManualTests/back.html
@@ -0,0 +1 @@
+<input type="button" onclick="history.back()" value="Go Back"> \ No newline at end of file
diff --git a/ManualTests/background-image-change-in-page-cache.html b/ManualTests/background-image-change-in-page-cache.html
new file mode 100644
index 000000000..c6fb38e14
--- /dev/null
+++ b/ManualTests/background-image-change-in-page-cache.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=12773">12773</a> REGRESSION (r19490): Crash on ipx-server.de</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Click the link below.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+A SUCCESS message will appear at the bottom of the page and Safari will not crash.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Safari will crash or the SUCCESS message will not appear.
+</p>
+
+<div style="background-image: url(resources/3dolph.gif); height: 2px; width: 2px;">
+</div>
+<a href="?clicked">Click here</a>
+<div id="result"></div>
+<script>
+ if (location.href.match("clicked$"))
+ document.getElementById("result").innerText = "SUCCESS";
+</script>
+</body>
+</html>
diff --git a/ManualTests/bad-clearTimeout-crash.html b/ManualTests/bad-clearTimeout-crash.html
new file mode 100644
index 000000000..b7ee23c80
--- /dev/null
+++ b/ManualTests/bad-clearTimeout-crash.html
@@ -0,0 +1,13 @@
+If the back/forward cache is enabled, this test will crash instead of going to the next page that says PASS.
+
+It cannot be automated because DumpRenderTree doesn't support the back/forward cache.
+
+<script>
+if (window.layoutTestController)
+ layoutTestController.waitUntilDone();
+
+setTimeout('',1000);
+clearTimeout(0);
+clearTimeout(0);
+window.location = "data:text/html,This test shouldn't crash. PASS.<scr" + "ipt>if (window.layoutTestController) layoutTestController.notifyDone()</scr" + "ipt>";
+</script>
diff --git a/ManualTests/bidi-parens.html b/ManualTests/bidi-parens.html
new file mode 100644
index 000000000..cbbd854b3
--- /dev/null
+++ b/ManualTests/bidi-parens.html
@@ -0,0 +1,18 @@
+<html>
+<head>
+<style>
+.console {
+ font-family: Arial, Times New Roman
+}
+</style>
+</head>
+<body>
+<p>This test checks for a regression against <a href="http://bugs.webkit.org/show_bug.cgi?id=3435">3435 Parentheses are backwards in Hebrew text (no bidi mirroring?)</a>.</p>
+<p>Success: parentheses encapsulate word.</p>
+<p>Failure: parentheses face away from word.</p>
+<hr>
+<p id="console" dir="rtl">
+(למדינות)
+</p>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/bidi-visible-control-characters.html b/ManualTests/bidi-visible-control-characters.html
new file mode 100644
index 000000000..7eeac06c0
--- /dev/null
+++ b/ManualTests/bidi-visible-control-characters.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-8">
+<title>Internal bidi control characters are visible</title>
+</head>
+<body>
+<p>Since the current default font does not contain bidi control characters, this test needs to be manual. The following paragraph should contain only 3 hebrew characters (and no control characters).</p>
+<p style="font-family:Arial;">&#x05d2;&#x05d1;&#x05d0;</p>
+</body>
+</html>
diff --git a/ManualTests/blackberry/clear-cookie-refresh-result.php b/ManualTests/blackberry/clear-cookie-refresh-result.php
new file mode 100644
index 000000000..30fb0a2a2
--- /dev/null
+++ b/ManualTests/blackberry/clear-cookie-refresh-result.php
@@ -0,0 +1,10 @@
+<?php
+ echo 'This tests the function of clear cookies by clicking "Clear Cookies" button from Settings -> Privacy & Security.<br>';
+ echo 'It is for https://bugs.webkit.org/show_bug.cgi?id=84223.<br>';
+ echo 'Please clear the cookies from Settings -> Privacy & Security by pressing "Clear Cookies" button, then refresh this page to see the result.<br>';
+ if (isset($_COOKIE["cookieName"])) {
+ echo 'result: NOT PASS';
+ } else {
+ echo 'result: PASS';
+ }
+?>
diff --git a/ManualTests/blackberry/clear-cookie-refresh.php b/ManualTests/blackberry/clear-cookie-refresh.php
new file mode 100644
index 000000000..7ab13472a
--- /dev/null
+++ b/ManualTests/blackberry/clear-cookie-refresh.php
@@ -0,0 +1,4 @@
+<?php
+ setcookie("cookieName", "cookieValue");
+ header("Location: clear-cookie-refresh-result.php");
+?>
diff --git a/ManualTests/blackberry/clear-localstorage.html b/ManualTests/blackberry/clear-localstorage.html
new file mode 100644
index 000000000..92e85f472
--- /dev/null
+++ b/ManualTests/blackberry/clear-localstorage.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <p>This test case is used to test the function of clear local storage by clicking "Clear Local Storage" button
+ from Settings -> Privacy & Security. This is for <a href="https://bugs.webkit.org/show_bug.cgi?id=83253">https://bugs.webkit.org/show_bug.cgi?id=83253</a></p>
+ <div>
+ <script type="text/javascript">
+ if (!sessionStorage.getItem("key")) {
+ // initialize test case
+ document.write("Status: <span style='color:yellow'>Initial</span>");
+ sessionStorage.setItem("key", "value");
+ localStorage.setItem("key", "value");
+
+ // notify to clear the local storage and refresh the page.
+ document.write("<p>Please clear the local storage from Settings -> Privacy & Security by pressing \"Clear Local Storage\" button, then reload this page to see the result.</p>");
+ } else {
+ document.write("Result: ");
+ if (!localStorage.getItem("key")) {
+ // success
+ document.write("<span style='color:green'>PASS</span>");
+ } else {
+ // fail
+ document.write("<span style='color:red'>FAIL</span>");
+ }
+ document.write("<p>If you want to run this test case again, please restart the browser.</p>");
+ }
+ </script>
+ </div>
+ </body>
+</html>
diff --git a/ManualTests/blackberry/http-auth-challenge.html b/ManualTests/blackberry/http-auth-challenge.html
new file mode 100644
index 000000000..07de1a217
--- /dev/null
+++ b/ManualTests/blackberry/http-auth-challenge.html
@@ -0,0 +1,24 @@
+<html>
+ <body>
+ <p>To run this test, both http-auth-challenge.html and http-auth-challenge.php must be served over http.</p>
+ <p>This test case is to test the behavior of http authentication challenge dialog. This is for <a href="https://bugs.webkit.org/show_bug.cgi?id=80135">https://bugs.webkit.org/show_bug.cgi?id=80135</a></p>
+ <p>
+ Please follow the following test procedure:
+ <ol>
+ <li>Test dialog behavior when press Cancel button</li>
+ <ol>
+ <li>Start test case, then press Cancel button when authentication dialog pops up;</li>
+ </ol>
+ <li>Test dialog behavior when press OK button</li>
+ <ol>
+ <li>Navigate back to the privious page;</li>
+ <li>Start test case again, then press Ok button without input anything when authentication dialog pops up;</li>
+ <li>When dialog pops up again, enter fake credential and press Ok button: username:"qqqq", password:"qqqq"</li>
+ <li>When dialog pops up agian, enter real credential and press Ok button: username:"aaaa", password:"aaaa"</li>
+ </ol>
+ </ol>
+ <a href="http-auth-challenge.php">Start test here</a>
+ </p>
+
+ </body>
+</html>
diff --git a/ManualTests/blackberry/http-auth-challenge.php b/ManualTests/blackberry/http-auth-challenge.php
new file mode 100644
index 000000000..776396c04
--- /dev/null
+++ b/ManualTests/blackberry/http-auth-challenge.php
@@ -0,0 +1,27 @@
+<?php
+ session_start();
+ if (isset($_SESSION['triedTimes']))
+ $_SESSION['triedTimes'] = $_SESSION['triedTimes'] + 1;
+ else
+ $_SESSION['triedTimes'] = 1;
+
+ $username = $password = "aaaa";
+
+ if ($_SERVER['PHP_AUTH_USER'] == $username && $_SERVER['PHP_AUTH_PW'] == $password){
+ echo "Auth dialog behavior when press OK button: ";
+ if ($_SESSION['triedTimes'] == 5)
+ echo "<span style='color:green'>PASS</span>";
+ else
+ echo "<span style='color:red'>FAIL</span>";
+ exit;
+ } else {
+ header('WWW-Authenticate: Basic realm="My Realm"');
+ header('HTTP/1.0 401 Unauthorized');
+ echo "Auth dialog behavior when press Cancel button: ";
+ if ($_SESSION['triedTimes'] == 1)
+ echo "<span style='color:green'>PASS</span>";
+ else
+ echo "<span style='color:red'>FAIL</span>";
+ exit;
+ }
+?>
diff --git a/ManualTests/blackberry/http-auth-on-200.php b/ManualTests/blackberry/http-auth-on-200.php
new file mode 100644
index 000000000..43831ce34
--- /dev/null
+++ b/ManualTests/blackberry/http-auth-on-200.php
@@ -0,0 +1,6 @@
+<?php
+ header('WWW-Authenticate: Basic realm="FAIL"');
+ header('HTTP/1.0 200 OK');
+ header('Content-Type: text/plain');
+ echo 'PASS if you did not see an authentication dialog';
+?>
diff --git a/ManualTests/blackberry/http-auth-private-mode-changed.html b/ManualTests/blackberry/http-auth-private-mode-changed.html
new file mode 100644
index 000000000..d7359638b
--- /dev/null
+++ b/ManualTests/blackberry/http-auth-private-mode-changed.html
@@ -0,0 +1,16 @@
+<html>
+ <body>
+ <p>Both http-auth-private-mode-changed.html and http-auth-private-mode-changed.php must be served over http.</p>
+ <p>This tests the behavior of http authentication when private browsering is set from on to off. This is for <a href="https://bugs.webkit.org/show_bug.cgi?id=84697">https://bugs.webkit.org/show_bug.cgi?id=84697</a></p><br>
+ <p>
+ Test steps:<br>
+ 1. Set Private Browsing on. (Settings -> Privacy & Security -> Private Browsing).<br>
+ 2. Press <a href="http-auth-private-mode-changed.php">Start test here</a>.<br>
+ 3. When dialog pops up, enter real credential(username: "aaaa", password: "aaaa") and press Ok button.<br>
+ 4. Set Private Browsing off. (Settings -> Privacy & Security -> Private Browsing).<br>
+ 5. Refresh the page.<br>
+ 6. There should be a dialog for you to input username and password again.<br>
+ If you can't see the dialog, this test fails.<br>
+ </p>
+ </body>
+</html>
diff --git a/ManualTests/blackberry/http-auth-private-mode-changed.php b/ManualTests/blackberry/http-auth-private-mode-changed.php
new file mode 100644
index 000000000..f85111b45
--- /dev/null
+++ b/ManualTests/blackberry/http-auth-private-mode-changed.php
@@ -0,0 +1,17 @@
+<?php
+ $username = $password = "aaaa";
+
+ if ($_SERVER['PHP_AUTH_USER'] == $username && $_SERVER['PHP_AUTH_PW'] == $password){
+ echo 'Test steps:<br>';
+ echo '1. Set Private Browsing off. (Settings -> Privacy & Security -> Private Browsing)<br>';
+ echo '2. Refresh the page.<br>';
+ echo '3. There should be a dialog for you to input username and password again.<br>';
+ echo 'If you can\'t see the dialog, this test fails.<br>';
+ exit;
+ } else {
+ header('WWW-Authenticate: Basic realm="My Realm"');
+ header('HTTP/1.0 401 Unauthorized');
+ echo "Authorization Required.";
+ exit;
+ }
+?>
diff --git a/ManualTests/blackberry/http-cookie-database-set.php b/ManualTests/blackberry/http-cookie-database-set.php
new file mode 100644
index 000000000..223f52c05
--- /dev/null
+++ b/ManualTests/blackberry/http-cookie-database-set.php
@@ -0,0 +1,14 @@
+<?php if (isset($_COOKIE["db_cookie"])) {
+ if ($_COOKIE["db_cookie"] == "https_cookie")
+ echo 'PASS';
+ else
+ echo 'FAIL';
+ } else {
+ header("Set-Cookie: db_cookie = http_cookie; expires=Thu, 12-Apr-2312 08:32:29 GMT;");
+ $path = str_replace("http-cookie-database-set.php", "http-cookie-database-update.php", $_SERVER["PHP_SELF"]);
+ $newurl = 'https://'.$_SERVER["HTTP_HOST"].$path;
+ $location = 'Location:'.$newurl;
+ header($location);
+ }
+?>
+
diff --git a/ManualTests/blackberry/http-cookie-database-update.php b/ManualTests/blackberry/http-cookie-database-update.php
new file mode 100644
index 000000000..42a52480b
--- /dev/null
+++ b/ManualTests/blackberry/http-cookie-database-update.php
@@ -0,0 +1,9 @@
+<?php
+ header('Set-Cookie: db_cookie = https_cookie; expires=Thu, 12-Apr-2312 08:32:29 GMT;');
+ echo 'Test updating of cookies\' database. It is for https://bugs.webkit.org/show_bug.cgi?id=83760.<br>';
+ echo 'To run this test, http-cookie-database-set.php must be served over http and http-cookie-database-update.php must be served over https.<br>';
+ echo 'Test steps:<br>';
+ echo '1. Load http-cookie-database-set.php. (If you load http-cookie-database-update.php directly in this step, please clear cookies and load http-cookie-database-set.php to finish this step.<br>';
+ echo '2. Restart the browser and load http-cookie-database-set.php again to see the result.<br>';
+
+?>
diff --git a/ManualTests/blackberry/meta-viewport-initial-scale-wide-content.html b/ManualTests/blackberry/meta-viewport-initial-scale-wide-content.html
new file mode 100644
index 000000000..56265f523
--- /dev/null
+++ b/ManualTests/blackberry/meta-viewport-initial-scale-wide-content.html
@@ -0,0 +1,21 @@
+<html>
+<head>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<style>
+body { margin: 0; padding: 0; }
+#green { width: 100%; height: 100%; background: green; }
+#red { width: 1024px; height: 2048px; background: red; }
+</style>
+</head>
+<body>
+<div id="green">
+This green box should fully fill the initial viewport, and the text within it
+should wrap at the edge of the screen appropriately. The test is PASSED if
+this green box is fully visible and takes up the whole screen.
+</div>
+<div id="red">
+This should not be visible initially. This test is FAILED if you can see
+can red without first scrolling down.
+</div>
+</body>
+</html>
diff --git a/ManualTests/blackberry/notification.html b/ManualTests/blackberry/notification.html
new file mode 100644
index 000000000..cf22d7a29
--- /dev/null
+++ b/ManualTests/blackberry/notification.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<script type="text/javascript">
+var n;
+function setNotification()
+{
+ if (window.webkitNotifications.checkPermission() != 0) {
+ alert("you don't have permission to post notifications, please allow notifications by clicking that link");
+ document.getElementById('allowNotificationLink').style.backgroundColor = 'Red';
+ return 0;
+ }
+ n = window.webkitNotifications.createNotification(window.location.href + '/favicon.ico', 'Notify me', 'This is the notification body');
+ log = document.getElementById("place");
+ n.onshow = function() { log.innerText = "notification showing"; }
+ n.onclick = function() { log.innerText = "notification clicked"; }
+ n.onerror = function() { log.innerText = "notification error"; }
+ n.onclose = function() { log.innerText = "notification closed"; }
+ n.show();
+ log.innerText = "Did you notice the notification ? There are 3 ways the notification will go away:\n 1. It automically goes away in 30 seconds;\n 2. you can click the close button on the notification to close it;\n 3. Click above link 'Click to cancel the notification.\n\n Please verify all work; Whenever the icon is clicked, cancelled, closed, etc. there will be corresponding log is this area, please notice if they show up.";
+
+ setTimeout(timeout, 30000);
+ function timeout() {
+ n.cancel();
+ }
+}
+
+function setAllowNotification()
+{
+ window.webkitNotifications.requestPermission(permissionGranted);
+}
+
+function permissionGranted()
+{
+ if (window.webkitNotifications.checkPermission() == 0)
+ alert("you now have permission to post Notifications");
+ else
+ alert("you don't have permission to post Notifications");
+}
+</script>
+</head>
+
+<body style="font-size:x-large">
+<a style="margin-left: 20px;" id="allowNotificationLink" onclick="setAllowNotification(); return false;" href="#">Click to set allow notifications first</a> <br>
+
+<a style="margin-left: 20px;" onclick="setNotification(); return false;" href="#">Click to set notification</a> <br>
+<a style="margin-left: 20px;" onclick="n.cancel(); return false;" href="#">Click to cancel the notification</a> <br>
+<br><br>
+<div id="place">
+</div>
+
+</body>
+</html>
+
diff --git a/ManualTests/blackberry/select-popup-items-unicode-display.html b/ManualTests/blackberry/select-popup-items-unicode-display.html
new file mode 100644
index 000000000..c07981088
--- /dev/null
+++ b/ManualTests/blackberry/select-popup-items-unicode-display.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <p>This tests if we can show unicode correctly. It is for <a href="https://bugs.webkit.org/show_bug.cgi?id=89969">https://bugs.webkit.org/show_bug.cgi?id=89969.</a></p>
+ <p>
+ If you can see chinese(北京, 澳门) after pressing the droplist, this test passes.
+ </p>
+ <select>
+ <option selected="selected">北京</option>
+ <option>ShenYang</option>
+ <option>澳门</option>
+ <option>Republic of Côte d'Ivoire</option>
+ </select>
+ </body>
+</html>
diff --git a/ManualTests/blackberry/selection-touch-override.html b/ManualTests/blackberry/selection-touch-override.html
new file mode 100644
index 000000000..a39e1f35a
--- /dev/null
+++ b/ManualTests/blackberry/selection-touch-override.html
@@ -0,0 +1,2 @@
+<br><textarea cols="45" rows="5">Text Area without override attribute select all this text and tap on the selection, context menu should be shown!</textarea>
+<br><textarea cols="45" rows="5" data-blackberry-end-selection-on-touch="on">Text Area with override attribute select all this text and tap on the selection, caret should be placed!</textarea>
diff --git a/ManualTests/blackberry/slider-thumb-consumes-event.html b/ManualTests/blackberry/slider-thumb-consumes-event.html
new file mode 100644
index 000000000..de216cc0d
--- /dev/null
+++ b/ManualTests/blackberry/slider-thumb-consumes-event.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title> Slider thumb should eat event </title>
+</head>
+
+<body>
+<p>
+This test case verifies that an event should be comsumed <br>
+by the slider thumb element when pressed on it, to prevent<br>
+the event been used for page zooming or scrolling. <br><br>
+
+Steps to verify:<br>
+1. Zoom in the page.<br>
+2. Press and drag the slider thumb.<br><br>
+
+If the slider changes but the page stays, it SUCCEEDS.<br>
+othersie, if the page scrolls, it FAILS.<br><br>
+
+range: <input type="range" min="0" max="100" step="1" /><br>
+</body>
+</html>
diff --git a/ManualTests/blackberry/video-hls-controls.html b/ManualTests/blackberry/video-hls-controls.html
new file mode 100644
index 000000000..b0fccdb22
--- /dev/null
+++ b/ManualTests/blackberry/video-hls-controls.html
@@ -0,0 +1,22 @@
+<html>
+<head>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Dynamic Live Streaming controls</title>
+</head>
+<body>
+<h3>Dynamic Live Streaming controls</h3>
+<p>This page exists to test the hiding of the timeline container for
+dynamic live streams. Once metadata loads, the control bar below should
+contain only 3 buttons: "play" on the left, and "fullscreen" & "mute
+(volume)" on the right. No seek slider or media times should be shown.
+If only the "play" button shows, it means the link to the test video is
+out of date.
+</p>
+
+<video width="300" height="200" controls>
+ <source src="http://xteleantioquiawebsx.api.channel.livestream.com/3.0/playlist.m3u8">
+</video>
+
+<br> <br> <br>
+<a href="http://xteleantioquiawebsx.api.channel.livestream.com/3.0/playlist.m3u8">Link directly to video</a>
+</body></html>
diff --git a/ManualTests/blackberry/video-load-with-authentication.html b/ManualTests/blackberry/video-load-with-authentication.html
new file mode 100644
index 000000000..a2273f470
--- /dev/null
+++ b/ManualTests/blackberry/video-load-with-authentication.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>video-load-with-authentication</title>
+ <script src="../../LayoutTests/media/video-test.js" type="text/javascript"></script>
+</head>
+<body>
+<p>
+ This test case is for <a href="https://bugs.webkit.org/show_bug.cgi?id=84214">https://bugs.webkit.org/show_bug.cgi?id=84214</a><br>
+ This test case is aming at testing video loading with http authentication challenge. To use this test case you should setup your apache2 http server
+ with http authentication support first.<br>
+ <p>
+ <h3>Ways to setup the apache2 http server with http authentication support</h3>
+ <ol>
+ <li>Add "AllowOverride AuthConfig" to &lt;Directory&gt; setting in your site configuration file;</li>
+ <li>Create the password file using command: <code>htpasswd -c &lt;passord_filename&gt; &lt;username&gt;</code>, and put this file into &lt;ServerRoot&gt;;</li>
+ <li>Create a directory under your server &lt;Directory&gt;, and create the file .htaccess in this directory;</li>
+ <li>Configure the .htaccess file with the following content:
+ <pre>AuthType &lt;Basic|Digest&gt;
+AuthName "Video HTTP Authentication"
+AuthUserFile &lt;/path/to/the/password/file&gt;
+Require user &lt;username&gt;</pre>
+ </li>
+ <li>Put your test video file into this directory, and restart your apache2 http server.</li>
+ </ol>
+ <p>More information about configuring apache2 http authentication, please refer to apache 2.0 document: <a href="http://httpd.apache.org/docs/2.0/howto/auth.html">Authentication, Authorization and Access Control</a>.</p>
+ </p>
+ <p>
+ <h3>Ways to test</h3>
+ <ol>
+ <li>Setup your apache2 http server and prepare the video file as mentioned above;</li>
+ <li>Enter the link pointing to the video file in the "Video Source" text area below;</li>
+ <li>Then press load button, and fill the authentication challenge pop up dialog with the credential information created before, then wait for the result.</li>
+ </ol>
+ </p>
+</p>
+<hr />
+<div>
+ Video Source:
+ <input type="url" id="url" name="videoSrc" size="100"></input><br>
+ <input type="button" value="Load" onclick="load()" />
+</div>
+<video id="video" hidden="hidden"></video>
+<script type="text/javascript">
+ function onLoaded()
+ {
+ logResult(true, "Video file successfully loaded, test case passed.");
+ endTest();
+ }
+
+ function onError()
+ {
+ failTest("Load video file error, test case failed.");
+ }
+
+ function load()
+ {
+ findMediaElement();
+ waitForEvent("loadstart");
+ waitForEvent("loadeddata", onLoaded);
+ waitForEvent("error", onError);
+
+ mediaElement.src = document.getElementById("url").value;
+ mediaElement.load();
+ }
+</script>
+</body>
+</html>
diff --git a/ManualTests/bugzilla-14899.html b/ManualTests/bugzilla-14899.html
new file mode 100644
index 000000000..1cee31a2b
--- /dev/null
+++ b/ManualTests/bugzilla-14899.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+ <script>
+ function test()
+ {
+ document.getElementById("z").style.display='block';
+ open("data:text/html,SUCCESS");
+ }
+ </script>
+</head>
+<body>
+ <p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=14899">Bugzilla bug 14899</a> !d->m_view->needsLayout() in Frame::paint() (Causes assert)</p>
+
+ <p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+ Make sure you are using a debug build of the Web Kit framework. Click the Test button below.
+ </p>
+
+ <p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+ A new window will open.
+ </p>
+
+ <p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+ An assertion failure will occur.
+ </p>
+ <button onclick="test()">Test</button>
+ <div id="z" style="display: none;">
+ <object>
+ <embed width="40" src="resources/orange.mov" controller="false">
+ </object>
+ </div>
+</body>
diff --git a/ManualTests/bugzilla-3855.html b/ManualTests/bugzilla-3855.html
new file mode 100644
index 000000000..dd1910476
--- /dev/null
+++ b/ManualTests/bugzilla-3855.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=3855">Bugzilla Bug 3855</a> Table with Form Field and Hidden DIV crashes Safari</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Type in the text field below.</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Safari will not crash, text will show up in text field as expected.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Safari will crash.
+</p>
+
+Type in the input field below:
+<form>
+<div style="display:none;">
+<table>
+ <tr>
+ <td>test</td>
+ </tr>
+ </table>
+</div>
+
+<input type='text' value='' />
+</form>
+
+</body>
+</html>
diff --git a/ManualTests/bugzilla-48077.html b/ManualTests/bugzilla-48077.html
new file mode 100644
index 000000000..67bb1f1a6
--- /dev/null
+++ b/ManualTests/bugzilla-48077.html
@@ -0,0 +1,87 @@
+<html>
+<!--
+This test case is used to prove HTMLParserScheduler should be suspended when page loading is deferred. See https://bugs.webkit.org/show_bug.cgi?id=48077.
+However, this test case can work only when customHTMLTokenizerChunkSize() is equal to or smaller than 256. To reproduce the problem with other settings, try
+adding more tags into body.
+
+To use the test case, open it in browser, when the alert shows up, wait for a few seconds, and close the alert. If it shows "Error detected", that means the problem exists.
+-->
+<script>
+var showingAlert = false;
+
+function log(message, replace)
+{
+ if (replace)
+ document.getElementById("result").innerHTML = message;
+ else
+ document.getElementById("result").innerHTML += "<br>" + message;
+}
+
+function showAlert()
+{
+ showingAlert = true;
+ alert("Test");
+ showingAlert = false;
+}
+
+// Insert a script element so the script will be executed when the resource is loaded.
+function insertScript()
+{
+ var head = document.getElementsByTagName("head")[0];
+ var myScript = document.createElement('script');
+ myScript.type = 'text/javascript';
+ myScript.src = 'resources/bugzilla-48077.js';
+ head.appendChild(myScript);
+}
+function check()
+{
+ // Check JS re-entrancy. If showingAlert is true, we are still in showAlert().
+ if (showingAlert)
+ log("Error detected!", false);
+ else
+ log("No error detected.", false);
+}
+
+// Do a time consuming job so we can make HTML parser run over time limit.
+function logTime()
+{
+ // time consuming job;
+ var startTime = new Date();
+ do {
+ var currentTime = new Date();
+ log(currentTime, true);
+ } while (currentTime - startTime < 1000);
+}
+</script>
+<body>
+<p id="result"></p>
+
+<script>
+insertScript();
+</script>
+
+<!-- Time consuming job to make HTML parser run over chunk time limit -->
+<script>
+logTime();
+</script>
+
+<!-- Lots of tags to make HTML parser run over chunk size limit -->
+<a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a>
+
+<!-- Time consuming job to make HTML parser run over chunk time limit -->
+<script>
+logTime();
+</script>
+
+<!-- Lots of tags to make HTML parser run over chunk size limit -->
+<a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a>
+
+
+<script>
+check();
+</script>
+
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/bugzilla-4840.html b/ManualTests/bugzilla-4840.html
new file mode 100644
index 000000000..6cf68bdb0
--- /dev/null
+++ b/ManualTests/bugzilla-4840.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=4840">Bugzilla bug 4840</a> Frames only resize wider, can't make them narrower</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Drag the vertical split bar below to the left and release it.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The frames will resize accordingly, with the split bar where you released it.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+The split bar will not follow the mouse when dragged to the left. After releasing
+the mouse button, the frames will not resize and the split bar will continue to
+follow the mouse.
+</p>
+
+<iframe style="width: 100%; height: 200px;" src="data:text/html,<frameset cols=%22*, *%22><frameset rows=%22*, *%22><frame src=%22about:blank%22><frame src=%22about:blank%22></frameset><frame src=%22about:blank%22></frameset>"></iframe>
+
+</body>
+</html>
diff --git a/ManualTests/bugzilla-5768.html b/ManualTests/bugzilla-5768.html
new file mode 100644
index 000000000..4ead9f20a
--- /dev/null
+++ b/ManualTests/bugzilla-5768.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+"http://www.w3.org/TR/html4/frameset.dtd">
+<html>
+<head>
+<title>No relayout when all frames are fixed</title>
+<script type="text/javascript">
+if (window.layoutTestController)
+ layoutTestController.waitUntilDone();
+var i = 0;
+function test()
+{
+ i++;
+ var f = document.getElementById('f');
+ switch(i) {
+ case 1:
+ window.setTimeout(test, 100);
+ break;
+ case 2:
+ f.src = "resources/frame2.html";
+ break;
+ case 3:
+ window.setTimeout(test, 100);
+ break;
+ case 4:
+ f.src = "resources/frame1.html";
+ break;
+ case 5:
+ window.setTimeout(test, 100);
+ break;
+ case 6:
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ break;
+ }
+}
+</script>
+</head>
+<frameset>
+ <frame onload="test()" id="f" src="resources/frame1.html" noresize>
+</frameset>
+</html>
diff --git a/ManualTests/bugzilla-83979.svg b/ManualTests/bugzilla-83979.svg
new file mode 100644
index 000000000..87125819a
--- /dev/null
+++ b/ManualTests/bugzilla-83979.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <filter id="ds2">
+ <feGaussianBlur id="blur" result="blur"/>
+ </filter>
+ </defs>
+ <text x="50" y="50">This test passes if it does not crash after load in Debug builds.</text>
+ <image id="image" xlink:href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect/%3E%3C/svg%3E" width="50" height="50" filter="url(#ds2)"/>
+<script><![CDATA[
+for (var i = 0; i < 10000; i++) {
+}
+document.getElementById("blur").appendChild(document.getElementById("image").cloneNode());
+for (var i = 0; i < 10000; i++) {
+}
+]]></script>
+</svg>
diff --git a/ManualTests/canvas-cursor.html b/ManualTests/canvas-cursor.html
new file mode 100644
index 000000000..e1f73e744
--- /dev/null
+++ b/ManualTests/canvas-cursor.html
@@ -0,0 +1,41 @@
+<html>
+<body>
+This is a test of our ability to convert a canvas to a data url and use it as a cursor. We pass if the cursor animates smoothly and without flickering.<br>
+See https://bugs.webkit.org/show_bug.cgi?id=64321.
+<canvas id="c" width="40" height="40"></canvas>
+<script type="text/javascript">
+var icon = new Image;
+icon.src = 'resources/drag-image.png'
+
+function drawArrow(angle) {
+ var canvas = document.getElementById('c');
+ canvas.width = canvas.width // reset canvas
+ var ctx = canvas.getContext('2d');
+
+ ctx.translate(ctx.canvas.width / 2, ctx.canvas.height / 2);
+ ctx.rotate(angle);
+ ctx.drawImage(icon, -icon.width / 2, -icon.height / 2);
+
+ var x = 20;//Math.floor(Math.cos(angle) * icon.width / 2) + icon.width / 2;
+ var y = 20;//Math.floor(Math.sin(angle) * icon.width / 2) + icon.width / 2;
+
+ var data = canvas.toDataURL();
+ if (data)
+ document.body.style.cursor = 'url('+data+') ' + x + ' ' + y + ', pointer';
+ else
+ console.log('failure');
+}
+
+(function() {
+ var angle = 0;
+ var run = function() {
+ angle += Math.PI / 16;
+ drawArrow(angle);
+ setTimeout(run, 100);
+ };
+ run();
+})();
+ drawArrow();
+</script>
+</body>
+</html>
diff --git a/ManualTests/canvas-mask-redraw.html b/ManualTests/canvas-mask-redraw.html
new file mode 100644
index 000000000..f166b3ace
--- /dev/null
+++ b/ManualTests/canvas-mask-redraw.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Canvas Mask</title>
+ <style type="text/css" media="screen">
+ #canvas1 {
+ height: 300px;
+ width: 400px;
+ border: 1px solid black;
+ }
+
+ .masked {
+/* -webkit-transform: rotate(10deg);*/
+ -webkit-mask: -webkit-canvas(canvas1);
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8">
+
+ var gPageWidth = 320;
+ var gPageHeight = 200;
+
+ function drawPageShadow(shadowWidth)
+ {
+ var ctx = document.getCSSCanvasContext('2d', 'canvas1', gPageWidth, gPageHeight);
+ ctx.clearRect (0, 0, gPageWidth, gPageHeight);
+
+ var gradient = ctx.createLinearGradient(0, 0, shadowWidth, 0);
+ gradient.addColorStop(0, 'rgba(0,0,0,1)');
+ gradient.addColorStop(1, 'rgba(0,0,0,0)');
+ ctx.fillStyle = gradient;
+ ctx.fillRect (0, 0, shadowWidth, gPageHeight);
+ }
+
+ function redrawCanvas(event)
+ {
+ drawPageShadow(event.pageX);
+ }
+
+ function onPageLoad()
+ {
+ drawPageShadow(640);
+ }
+
+ window.addEventListener('load', onPageLoad, false);
+
+ </script>
+</head>
+<body>
+
+ <p>Hovering over the image or text should cause the element to be redrawn with a new mask</p>
+ <a href="https://bugs.webkit.org/show_bug.cgi?id=19954">https://bugs.webkit.org/show_bug.cgi?id=19954</a>
+ <h2>Image with mask</h2>
+ <img src="http://www.google.com/intl/en_ALL/images/logo.gif" width="320" height="200" alt="Clown Fish" class="masked"
+ onmousemove="redrawCanvas(event)">
+
+ <h2>Div with mask</h2>
+ <div class="masked" style="width: 640px" onmousemove="redrawCanvas(event)">
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+
+</body>
+</html>
diff --git a/ManualTests/caret-blink-during-forward-delete.html b/ManualTests/caret-blink-during-forward-delete.html
new file mode 100644
index 000000000..eea0ac1aa
--- /dev/null
+++ b/ManualTests/caret-blink-during-forward-delete.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<body>
+<p>This tests forward deleting 200 characters with 10ms intervals.
+The caret shown below should not blink while the characters are being deleted.</p>
+<div id="test" contenteditable></div>
+<script>
+
+var test = document.getElementById('test');
+var text = '';
+for (var i = 0; i < 200; i++)
+ text += 'a';
+test.textContent = text;
+
+test.focus();
+getSelection().collapse(test, 0);
+for (var i = 0; i < 200; i++)
+ setTimeout(function () {document.execCommand('ForwardDelete', false, null);}, i * 10);
+
+</script>
+</body>
+</html>
diff --git a/ManualTests/caret-image.html b/ManualTests/caret-image.html
new file mode 100644
index 000000000..a6dff5eff
--- /dev/null
+++ b/ManualTests/caret-image.html
@@ -0,0 +1,9 @@
+<p>
+Test to see if caret works correctly to the right of an image.
+If the test is successful, the caret will look thin as usual.
+If the test fails, the caret will be a big black box the size of the image.
+</p>
+
+<div id="test" contenteditable="true">free<img src="resources/webkit-background.png">lunch</div>
+
+<script>window.getSelection().setPosition(document.getElementById("test"), 2);</script>
diff --git a/ManualTests/caret-in-columns-flipped.html b/ManualTests/caret-in-columns-flipped.html
new file mode 100644
index 000000000..b2be4f276
--- /dev/null
+++ b/ManualTests/caret-in-columns-flipped.html
@@ -0,0 +1,25 @@
+<p>
+ (Read from bottom to top)
+</p>
+<div id="target" style="
+ margin: 100px;
+ -webkit-columns: 3;
+ width: 300px;
+ height: 100px;
+ -webkit-user-modify: read-write;
+ -webkit-writing-mode: horizontal-bt;
+ outline: none;
+">
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ The blinking insertion point should be here &rarr;
+</div>
+<script>
+ var target = document.getElementById("target");
+ target.focus();
+ getSelection().modify("move", "forward", "documentboundary");
+</script>
diff --git a/ManualTests/caret-in-columns.html b/ManualTests/caret-in-columns.html
new file mode 100644
index 000000000..394150828
--- /dev/null
+++ b/ManualTests/caret-in-columns.html
@@ -0,0 +1,21 @@
+<div id="target" style="
+ margin: 100px;
+ -webkit-columns: 3;
+ width: 300px;
+ height: 100px;
+ -webkit-user-modify: read-write;
+ outline: none;
+">
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ The blinking insertion point should be here &rarr;
+</div>
+<script>
+ var target = document.getElementById("target");
+ target.focus();
+ getSelection().modify("move", "forward", "documentboundary");
+</script>
diff --git a/ManualTests/caretScrolling.html b/ManualTests/caretScrolling.html
new file mode 100644
index 000000000..6fb8044c5
--- /dev/null
+++ b/ManualTests/caretScrolling.html
@@ -0,0 +1,18 @@
+<html>
+<p>Manual test for fix for <a href="rdar://problem/3690705">rdar://problem/3690705</a> "caret does not move when scrolling overflow: auto editable area"</p>
+<p>
+Click inside the block below, a caret should appear. Grab the block's scroll handle and scroll down. The caret blinks, try to grab the scroll handle while the caret is visible. The caret should scroll and disappear when it reaches the block's border.
+</p>
+
+<div contentEditable style="border: 1px solid blue; height: 100px; overflow:scroll;">
+one<br>
+two<br>
+three<br>
+four<br>
+five<br>
+six<br>
+seven<br>
+eight<br>
+</div>
+
+</html> \ No newline at end of file
diff --git a/ManualTests/chrome-bidi-text.html b/ManualTests/chrome-bidi-text.html
new file mode 100644
index 000000000..99c0a7bf5
--- /dev/null
+++ b/ManualTests/chrome-bidi-text.html
@@ -0,0 +1,5 @@
+<p>
+ This tests drawing bidirectional text in Windows Safari chrome. Click the
+ Start button and follow the instructions.
+</p>
+<button onclick='open("resources/chrome-bidi-text-window.html", null, "toolbar=no")'>Start</button> \ No newline at end of file
diff --git a/ManualTests/chromium/autofill-popup-shiftupdown.hml b/ManualTests/chromium/autofill-popup-shiftupdown.hml
new file mode 100644
index 000000000..e5c15c6d6
--- /dev/null
+++ b/ManualTests/chromium/autofill-popup-shiftupdown.hml
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<body>
+<h3>Test shift + up/down keys work fine even when autofill popup window is shown.</h3>
+<ol>
+<li> Type the text 'hogehoge' in the following text input area. And press ENTER to submit. </li>
+<li> Return to this page. </li>
+<li> Type the text 'hoge' and make sure autofill popup window is shown. </li>
+<li> Move back the cursor two steps at the center between 'o' and 'g'.</li>
+<li> Press 'shift + up' key and make sure the 'ho' is selected even when autofill popup window is shown.</li>
+<li> Press 'shift + down' key and make sure the 'ge' is selected even when autofill popup window is shown.</li>
+<li> Use control/alt/command(only on Mac) modifier and check if they work fine too.</li>
+</ol>
+<form><input name=p autofocus></form>
+</body>
+</html>
diff --git a/ManualTests/chromium/drag-image-accounts-for-device-scale.html b/ManualTests/chromium/drag-image-accounts-for-device-scale.html
new file mode 100644
index 000000000..d8751fbcd
--- /dev/null
+++ b/ManualTests/chromium/drag-image-accounts-for-device-scale.html
@@ -0,0 +1,12 @@
+<html>
+<body>
+ <p>To test device scale, run chrome with --force-device-scale-factor=2 (or run chrome on a device with > 1 device scale, such as a macbook running in high dpi mode)</p>
+ <p>Select some text and start dragging. If the text in the drag image is rendered at the same size as the text on the page and is not blurry (due to scaling), 1st part of this test passes.</p>
+ <p>For 2nd part, try dragging "Drag me" below. Again, if the text in the drag image is rendered at the same size as the text on the page is not blurry, the test passes.</p>
+ <div draggable='true' id='dragme'>
+ Drag me
+ </div>
+ <p>Lastly, for testing dragging of images, drag the image below. If drag image is exactly the same size as the image on the page, the test passes.</p>
+ <img src="../resources/apple.jpg" width="50" height="50">
+</body>
+</html>
diff --git a/ManualTests/chromium/modifiers-during-drag-and-drop.html b/ManualTests/chromium/modifiers-during-drag-and-drop.html
new file mode 100644
index 000000000..72136bbd0
--- /dev/null
+++ b/ManualTests/chromium/modifiers-during-drag-and-drop.html
@@ -0,0 +1,26 @@
+<html>
+<head>
+<script>
+ function logDrag(e) {
+ var l = document.getElementById('log');
+ l.innerHTML += 'shiftKey=' + e.shiftKey + ' ctrlKey=' + e.ctrlKey + ' altKey=' + e.altKey + ' metaKey=' + e.metaKey + '\n';
+ e.preventDefault();
+ }
+
+ document.addEventListener('DOMContentLoaded', function() {
+ document.addEventListener('dragenter', logDrag, false);
+ document.addEventListener('dragover', logDrag, false);
+ document.addEventListener('dragleave', logDrag, false);
+ document.addEventListener('drop', logDrag, false);
+ });
+</script>
+</head>
+
+<body>
+ <p>Drag the "Drag me" with any modifier keys pressed (Shift/Ctrl/Alt) and see if the log messages have the correct modifier state</p>
+ <div draggable='true' id='dragme'>
+ Drag me
+ </div>
+ <pre id='log'></pre>
+</body>
+</html>
diff --git a/ManualTests/chromium/no-autofill-on-readonly.html b/ManualTests/chromium/no-autofill-on-readonly.html
new file mode 100644
index 000000000..9724aaa7b
--- /dev/null
+++ b/ManualTests/chromium/no-autofill-on-readonly.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+</head>
+<body>
+ <p>This page tests that the autofill popup is not shown for read-only and disabled text inputs.</p>
+ <p>Do the following:</p>
+ <ul>
+ <li>Enter a name in the input text in Form 1 and press submit. This is so the autofill has a value for that field.</li>
+ <li>Reload the page so the input text is empty. Click twice on the Form 1 text input. An autofill popup with the name you entered previously should be shown.</li>
+ <li>Click twice on the Form 2 text input. No autofill popup should be shown.</li>
+ <li>Click twice on the Form 3 text input. No autofill popup should be shown.</li>
+ </ul>
+
+ <h1>Form 1 (text input non read-only)</h1>
+ <form action="no-autofill-on-readonly.html">
+ Name:<input type="text" name="name"></input><br>
+ <input type="submit"></input>
+ </form>
+
+ <h1>Form 2 (text input read-only)</h1>
+ <form action="no-autofill-on-readonly.html">
+ Name:<input type="text" name="name" READONLY></input><br>
+ <input type="submit"></input>
+ </form>
+
+ <h1>Form 3 (text input disabled)</h1>
+ <form action="no-autofill-on-readonly.html">
+ Name:<input type="text" name="name" DISABLED></input><br>
+ <input type="submit"></input>
+ </form>
+
+</body>
+</html>
diff --git a/ManualTests/chromium/onchange-reload-popup.html b/ManualTests/chromium/onchange-reload-popup.html
new file mode 100644
index 000000000..ce8f21ec1
--- /dev/null
+++ b/ManualTests/chromium/onchange-reload-popup.html
@@ -0,0 +1,44 @@
+<html>
+<head>
+ <script type="text/javascript">
+
+ function addEvent(obj, evType, fn) {
+ if (obj.addEventListener){
+ obj.addEventListener(evType, fn, false);
+ return true;
+ } else if (obj.attachEvent){
+ var r = obj.attachEvent("on"+evType, fn);
+ return r;
+ } else {
+ return false;
+ }
+ }
+
+ function reloadSelect() {
+ var container = document.getElementById('container');
+ container.innerHTML = '<select id="menu"> \
+ <option value="abcd">abcd</option>\
+ <option value="defg">efgh</option>\
+ </select>';
+
+ var menu = document.getElementById('menu');
+ addEvent(menu, 'change', reloadSelect);
+ }
+
+ </script>
+</head>
+<body>
+ <p>Do the following and see if Chromium crashes.</p>
+ <ul>
+ <li>Click the select</li>
+ <li>Press 'e' on your keyboard</li>
+ <li>Click on the document but not the select itself.</li>
+ </ul>
+
+ <div id="container"/>
+ <script>
+ reloadSelect()
+ </script>
+ </div>
+</body>
+</html>
diff --git a/ManualTests/chromium/popup-menu-crash.html b/ManualTests/chromium/popup-menu-crash.html
new file mode 100644
index 000000000..bbe8f8c50
--- /dev/null
+++ b/ManualTests/chromium/popup-menu-crash.html
@@ -0,0 +1,24 @@
+<body id="body">
+This is a test for https://bugs.webkit.org/show_bug.cgi?id=64295. Chromium sometimes crashes in a mouse event on an HTMLSelectElement if the event handler removes the element from the DOM.
+This test is manual because it requires a real select popup menu, which DRT doesn't provide.<br>
+To run, click on the select below, then select "Click me!" on the dropdown menu. We pass if the HTMLSelectElement disappears and we don't crash.
+<script>
+function handleClick(e) {
+ if (e.target.selectedIndex != 1)
+ return;
+
+ document.getElementById("body").removeChild(document.getElementById("formDiv"));
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', '', true);
+ xhr.send(null);
+}
+</script>
+<div id="formDiv">
+<form>
+<select onmouseup="handleClick(event);">
+<option></option>
+<option>Click me!</option>
+</select>
+</form>
+</div>
+</body>
diff --git a/ManualTests/chromium/select-close-popup-value-change.html b/ManualTests/chromium/select-close-popup-value-change.html
new file mode 100644
index 000000000..f2adf6100
--- /dev/null
+++ b/ManualTests/chromium/select-close-popup-value-change.html
@@ -0,0 +1,20 @@
+<html>
+<head>
+</head>
+<body>
+ <p>Do the following, the test passes if the select keeps the selected value after step 4, fails if the value reverted.</p>
+ <ul>
+ <li>1. Click the select to open the popup list.</li>
+ <li>2. Use keyboard to select a value by pressing the first letter of the value.</li>
+ <li>3. Click the select again to close the popup list, it should stay at the value from step 2.</li>
+ <li>4. Click anywhere else on the page to move the focus out of the select.</li>
+ </ul>
+
+ <select>
+ <option>0</option>
+ <option>1</option>
+ <option>2</option>
+ <option>3</option>
+ </select>
+</body>
+</html>
diff --git a/ManualTests/chromium/suggestions-popup-font-change.html b/ManualTests/chromium/suggestions-popup-font-change.html
new file mode 100644
index 000000000..b85977a39
--- /dev/null
+++ b/ManualTests/chromium/suggestions-popup-font-change.html
@@ -0,0 +1,21 @@
+<html>
+<head>
+</head>
+<body>
+ <p>Verify that the font size in the suggestion popup matches the corresponding
+ input field, test passes if step 2 matches expected behavior.</p>
+ <ul>
+ <li>1. Type "abcd" in the text form and press enter.</li>
+ <li>2. Type "a" in the text form, suggestions popup should appear.
+ Verify that font size of text in suggestion popup is the same as in
+ the corresponding input form.
+ </li>
+ <li>3. Delete contents of input box, press Cntrl/+ [Command/+ on Mac]
+ to magnify the page contents. Repeat step 2, text size should still
+ match. </li>
+ </ul>
+ <form method="get" action="suggestions-popup-font-change.html" id="form">
+ <input name="s" id="s" style="font-size:x-large">
+ </form>
+</body>
+</html>
diff --git a/ManualTests/clear-input-file.html b/ManualTests/clear-input-file.html
new file mode 100644
index 000000000..f1ef360e4
--- /dev/null
+++ b/ManualTests/clear-input-file.html
@@ -0,0 +1,27 @@
+<script>
+function clearWithReset()
+{
+ document.getElementById("form").reset();
+}
+function clearBySettingValue()
+{
+ document.getElementById("file").value = "";
+}
+function clearBySettingValueToNull()
+{
+ document.getElementById("file").value = null;
+}
+function clearBySettingValueToX()
+{
+ document.getElementById("file").value = "x";
+}
+</script>
+<p>Use this to test the various ways you can clear an input type=file element.</p>
+<form id="form">
+<p>Choose a file here: <input type="file" id="file"></input></p>
+<p>Then press one of these buttons, that should clear the file:
+<input type="button" value="clear with reset()" onclick="clearWithReset()">
+<input type="button" value="clear by setting value to ''" onclick="clearBySettingValue()"></p>
+<p>Or press this button that should clear the file, but won't, due to <a href="http://bugs.webkit.org/show_bug.cgi?id=13448">bug 13448</a>: <input type="button" value="clear by setting value to null" onclick="clearBySettingValueToNull()"></p>
+<p>Or press this button to verify we can't set to a non-empty value: <input type="button" value="clear by setting value to 'x'" onclick="clearBySettingValueToX()"></p>
+</form>
diff --git a/ManualTests/clearTimeout-crash-bug29832.html b/ManualTests/clearTimeout-crash-bug29832.html
new file mode 100644
index 000000000..d9ec5c7c6
--- /dev/null
+++ b/ManualTests/clearTimeout-crash-bug29832.html
@@ -0,0 +1,20 @@
+<script>
+var w;
+function clear() {
+ w.clearTimeout(153);
+}
+
+function test() {
+ w = window.open("data:text/html,"+
+ "<script>" +
+ "function navigate() { location.href='data:text/html,<body>Close this page and wait.</body>'};" +
+ "setTimeout(navigate,0);</" +
+ "script>");
+
+ setInterval(clear, 0);
+}
+</script>
+<body>
+<p>This test reproduces the crash in DOMWindow::clearTimeout that happens when DOMWindow is disconnected from the Frame (as in back/forward cache expiration case tested here).
+<p>This is the link to the bug: <a href="https://bugs.webkit.org/show_bug.cgi?id=29832">https://bugs.webkit.org/show_bug.cgi?id=29832</a>
+<p>To reproduce the crash, click the link below, the popup window opens, which will immediately navigate to another one, so the b/f cache entry will be created. Close the popup window. Wait a few seconds (~10), for the page cache to start deleting pages it doesn't need - crash will happen.<br><a href="javascript:test()">Crash me!</a>
diff --git a/ManualTests/close-on-closedWindow.html b/ManualTests/close-on-closedWindow.html
new file mode 100644
index 000000000..9e3071509
--- /dev/null
+++ b/ManualTests/close-on-closedWindow.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4094363">rdar://problem/4094363</a> Can't re-open a window at capripalace.com website because "close" fails on already-closed window</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+<ol>
+ <li>Click the link below </li>
+ <li>Close the window that opens </li>
+ <li>Click the link again </li>
+</ol>
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+If the bug is fixed, a window WILL OPEN after Step #3.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+If the bug is not fixed, a window WILL NOT OPEN after Step #3.
+</p>
+
+<script language="JavaScript">
+win = null;
+function win_open() {
+
+ if (win != null) {
+ win.close();
+ }
+ win = window.open('about:blank');
+}
+</script>
+
+ <a href="javascript:win_open();">Click this link</a>
+
+</body>
+</html>
diff --git a/ManualTests/compositing/accel-comp-iframe-tab-repaint.html b/ManualTests/compositing/accel-comp-iframe-tab-repaint.html
new file mode 100644
index 000000000..35c9c34ef
--- /dev/null
+++ b/ManualTests/compositing/accel-comp-iframe-tab-repaint.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<title>Accelerated compositing tab repaint bug</title>
+<style>
+body {
+ background-color: yellow;
+}
+</style>
+<h1>Accelerated compositing tab repaint bug</h1>
+<p>This test case checks for a repaint bug resulting from accelerated
+compositing of iframes on Mac. Follow these steps:</p>
+<ol>
+<li>Open <a href="resources/tab-repaint-part-2.html">this link</a> in a new tab.</li>
+<li>Close this tab.</li>
+<li>The new page should be blue.</li>
+</ol>
diff --git a/ManualTests/compositing/assert-on-tab-switch.html b/ManualTests/compositing/assert-on-tab-switch.html
new file mode 100644
index 000000000..5b82c49c9
--- /dev/null
+++ b/ManualTests/compositing/assert-on-tab-switch.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style type="text/css" media="screen">
+ .box {
+ width: 100px;
+ height: 100px;
+ background-color: blue;
+ -webkit-transform: translateZ(0);
+ }
+
+ </style>
+</head>
+<body>
+ <div class="box"></div>
+ <p><a href="https://bugs.webkit.org/show_bug.cgi?id=43167">https://bugs.webkit.org/show_bug.cgi?id=43167</a><br>
+ You should not hit an assertion if you load this file in a tab, then switch back and forth between other tabs.</p>
+</body>
+</html>
diff --git a/ManualTests/compositing/caret-in-compositing-frame.html b/ManualTests/compositing/caret-in-compositing-frame.html
new file mode 100644
index 000000000..703f3b25b
--- /dev/null
+++ b/ManualTests/compositing/caret-in-compositing-frame.html
@@ -0,0 +1,7 @@
+<style type="text/css" media="screen">
+ iframe {
+ border: 1px solid black;
+ width: 400px;
+ }
+</style>
+<iframe src="resources/editable-compositing-subframe.html" scrolling="no"></iframe>
diff --git a/ManualTests/compositing/font-smoothing.html b/ManualTests/compositing/font-smoothing.html
new file mode 100644
index 000000000..fce444e26
--- /dev/null
+++ b/ManualTests/compositing/font-smoothing.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+
+<html>
+ <style type="text/css" media="screen">
+ div {
+ margin: 20px;
+ font-size: 24pt;
+ }
+
+ .composited {
+ -webkit-transform: translateZ(0);
+ background-color: white;
+ }
+
+ .smoothed {
+ -webkit-font-smoothing: subpixel-antialiased;
+ }
+ </style>
+<head>
+</head>
+<body>
+ <div class="composited">
+ This text should be antialiased, but not smoothed.
+ </div>
+
+ <div class="smoothed composited">
+ This text should be antialiased and smoothed.
+ </div>
+
+ <div>
+ This text should be antialiased and smoothed in the browser, and antialiased in pixel results.
+ </div>
+</body>
+</html>
diff --git a/ManualTests/compositing/missing-iframe-contents.html b/ManualTests/compositing/missing-iframe-contents.html
new file mode 100644
index 000000000..d769e43fe
--- /dev/null
+++ b/ManualTests/compositing/missing-iframe-contents.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style type="text/css" media="screen">
+ iframe {
+ border: 10px solid black;
+ padding: 5px;
+ margin: 20px;
+ height: 150px;
+ width: 300px;
+ -webkit-box-shadow: 0 0 20px black;
+ -webkit-transform: translateZ(0);
+ }
+
+ </style>
+ <script type="text/javascript" charset="utf-8">
+ function doTest()
+ {
+ document.getElementById('iframe').className = 'dummy';
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+
+ <iframe id="iframe" src="resources/composited-subframe.html"></iframe>
+
+ <p><a href="https://bugs.webkit.org/show_bug.cgi?id=42046">https://bugs.webkit.org/show_bug.cgi?id=42046</a><br>
+ You should see a blue rectangle inside the iframe when the page loads.</p>
+</body>
+</html>
diff --git a/ManualTests/compositing/requires-backing-change.html b/ManualTests/compositing/requires-backing-change.html
new file mode 100644
index 000000000..d065ac1f0
--- /dev/null
+++ b/ManualTests/compositing/requires-backing-change.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style>
+ #container, #container2 {
+ height: 100px;
+ width: 100px;
+ margin: 10px 0;
+ -webkit-perspective: 1000px;
+ }
+
+ #container.transformed, #container2.transformed {
+ -webkit-transform: translateX(0);
+ }
+
+ .box {
+ margin-bottom: 5px;
+ height: 100px;
+ width: 100px;
+ background-color: green;
+ opacity: 0.5;
+ }
+ </style>
+ <script>
+ function doTest()
+ {
+ window.setTimeout(function() {
+ document.getElementById('container').className = 'transformed';
+ document.getElementById('container2').className = '';
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ }, 100);
+ }
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+ <p>All squares should have the same pale green color></p>
+ <div class="box"></div>
+ <div id="container">
+ <div class="box">
+ </div>
+ </div>
+
+ <div id="container2" class="transformed">
+ <div class="box">
+ </div>
+ </div>
+</body>
+</html>
diff --git a/ManualTests/compositing/resources/composited-subframe.html b/ManualTests/compositing/resources/composited-subframe.html
new file mode 100644
index 000000000..4a4f53e61
--- /dev/null
+++ b/ManualTests/compositing/resources/composited-subframe.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style type="text/css" media="screen">
+ body { background-color:silver }
+
+ .box {
+ height: 200px;
+ width: 200px;
+ margin: 10px;
+ padding: 5px;
+ background-color: blue;
+ -webkit-transform: translateZ(0);
+ overflow:hidden;
+ }
+ .box:hover {
+ -webkit-transform: none;
+ }
+ </style>
+</head>
+<body>
+
+ <div id="iframe-content" class="box">
+ </div>
+
+</body>
+</html>
diff --git a/ManualTests/compositing/resources/editable-compositing-subframe.html b/ManualTests/compositing/resources/editable-compositing-subframe.html
new file mode 100644
index 000000000..24b43e8da
--- /dev/null
+++ b/ManualTests/compositing/resources/editable-compositing-subframe.html
@@ -0,0 +1,9 @@
+<style type="text/css" media="screen">
+ #editable {
+ height: 100px;
+ -webkit-transform: translateZ(0px);
+ }
+</style>
+<div id="editable" contenteditable="true">
+The caret should blink correctly when editing this paragraph.
+</div>
diff --git a/ManualTests/compositing/resources/flash-frame.html b/ManualTests/compositing/resources/flash-frame.html
new file mode 100644
index 000000000..34d929012
--- /dev/null
+++ b/ManualTests/compositing/resources/flash-frame.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html>
+<title>Flash frame for repaint test</title>
+<embed src="../../resources/spinbox.swf">
diff --git a/ManualTests/compositing/resources/tab-repaint-part-2.html b/ManualTests/compositing/resources/tab-repaint-part-2.html
new file mode 100644
index 000000000..17cb6e7ca
--- /dev/null
+++ b/ManualTests/compositing/resources/tab-repaint-part-2.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<title>Accelerated compositing tab repaint bug part 2</title>
+<style>
+body {
+ background-color: royalblue;
+}
+iframe {
+ border-width: 0px;
+ width: 400px;
+ height: 200px;
+}
+</style>
+<body>
+<ol>
+<li>This page should have a blue background.</li>
+</ol>
+<iframe src="../resources/flash-frame.html"></iframe>
+</body>
diff --git a/ManualTests/compositing/show-composited-iframe-on-back-button.html b/ManualTests/compositing/show-composited-iframe-on-back-button.html
new file mode 100644
index 000000000..fff88889d
--- /dev/null
+++ b/ManualTests/compositing/show-composited-iframe-on-back-button.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <!--
+ This content was originally intended as a layout test, but the sequencing performed by
+ queueBackNavigation/queueForwardNavigation differs somehow from what occurs when hitting
+ the back and forward buttons, so the error does not occur. I've left all the LayoutTestController
+ logic in the test in case this is fixed in the future.
+ -->
+
+ <title>Show composited iframe contents when navigating back to page</title>
+ <style type="text/css" media="screen">
+ #box {
+ background-color: red;
+ width: 100px;
+ height: 100px;
+ -webkit-transform: translateZ(0);
+ }
+ iframe {
+ margin: 20px;
+ height: 250px;
+ width: 250px;
+ border: 1px solid black;
+ }
+
+ .composited {
+ -webkit-transform: translateZ(0);
+ }
+
+ </style>
+ <script type="text/javascript" charset="utf-8">
+ var dumpLayerTree = function()
+ {
+ if (window.layoutTestController) {
+ document.getElementById('layers').innerHTML += "Layer Tree after\n\n"+layoutTestController.layerTreeAsText()+"\n\n";
+ }
+ }
+
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ }
+
+ function onPageShow(evt)
+ {
+ if (!evt.persisted && window.layoutTestController) {
+ // this is the first time the page has been loaded, then setup the
+ // to-be-tested scenario.
+ document.getElementById('layers').innerHTML = "Layer Tree before\n\n"+layoutTestController.layerTreeAsText()+"\n\n";
+ layoutTestController.queueLoad("resources/subframe.html");
+ layoutTestController.queueBackNavigation(1);
+ layoutTestController.queueForwardNavigation(1);
+ layoutTestController.queueBackNavigation(1);
+ layoutTestController.queueNonLoadingScript("dumpLayerTree()");
+ }
+ }
+
+ window.onpageshow = onPageShow;
+ </script>
+</head>
+<body>
+<p>
+ This page has a composited iframe. When navigating to a new page and then back to this one, the iframe contents should show up.
+</p>
+ Click on the following URL and then click back. When navigating back to this page, the blue box inside the black rectangle
+ should show up.
+</p>
+<pre>
+ <a href="http://apple.com">http://apple.com</a>
+</pre>
+ <div id=box></div>
+ <iframe id="iframe" scrolling="no" src="resources/composited-subframe.html"></iframe>
+<br>
+<pre id="layers"></pre>
+</body>
+</html>
diff --git a/ManualTests/computed-transform-value.html b/ManualTests/computed-transform-value.html
new file mode 100644
index 000000000..5d7e62274
--- /dev/null
+++ b/ManualTests/computed-transform-value.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Get Computed Transform</title>
+ <style type="text/css" media="screen">
+ .box {
+ height: 200px;
+ width: 200px;
+ background-color: #00a0a0;
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8">
+ function printTransform(event)
+ {
+ var box = event.target;
+ var computedTransform = window.getComputedStyle(box).webkitTransform;
+ document.getElementById("output").innerHTML = 'Computed transform is ' + computedTransform;
+ }
+
+ </script>
+</head>
+<body onclick="printTransform(event)">
+
+<h1>Testing transform computed style</h1>
+<p>All boxes are 200x200 pixels. When you click on an element, the computed transform style will be displayed below</p>
+<p id="output">Computed style for -webkit-transform displayed here</p>
+
+
+<div class="box" style="position: absolute; left: 100px; top: 200px; -webkit-transform: scale(1.5, 0.75)">
+ scale(1.5, 0.75)
+</div>
+
+<div class="box" style="position: absolute; left: 400px; top: 200px; -webkit-transform: rotate(30deg)">
+ rotate(30deg)
+</div>
+
+<div class="box" style="position: absolute; left: 100px; top: 400px; -webkit-transform: translate(50px, 80px)">
+ translate(50px, 80px)
+</div>
+
+<div class="box" style="position: absolute; left: 400px; top: 400px; -webkit-transform: translate(10px, 50px) scale(0.8) rotate(-10deg)">
+ translate(10px, 50px) scale(0.8) rotate(-10deg)
+</div>
+
+</body>
+</html>
diff --git a/ManualTests/containing-block-position-change.html b/ManualTests/containing-block-position-change.html
new file mode 100644
index 000000000..adc22384a
--- /dev/null
+++ b/ManualTests/containing-block-position-change.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+ <title></title>
+ <style type="text/css">
+ #t { position: absolute; width: 100px; height: 100px; background: green; left: -120px; }
+ </style>
+ <script type="text/javascript">
+ function test()
+ {
+ var container = document.getElementById("rel");
+ var target = document.getElementById("t");
+ document.body.offsetTop; // force layout
+ container.style.position = "relative";
+ document.body.offsetTop; // force layout
+ target.style.left = "0";
+ }
+ </script>
+</head>
+<body onload="test()">
+ <p>
+ This is a test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=9121">http://bugs.webkit.org/show_bug.cgi?id=9121</a>
+ REGRESSION: [Incremental Repaint] DHTML movement test failures</i>.
+ </p>
+ <p>
+ Do not resize the window. If you did, reload the test.
+ </p>
+ <p>
+ There should be a green square below, aligned with the left margin of the page.
+ </p>
+ <hr>
+ <div id="rel" style="position: static;">
+ <span id="t"></span>
+ </div>
+</body>
+</html>
diff --git a/ManualTests/contenteditable-link.html b/ManualTests/contenteditable-link.html
new file mode 100644
index 000000000..9923aa901
--- /dev/null
+++ b/ManualTests/contenteditable-link.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<TITLE> Webkit bugzilla repro movie: #7156 </TITLE>
+<META NAME="Author" CONTENT="Aldo Hoeben">
+<style type="text/css">
+#editable {
+ width: 40em;
+ height: 10em;
+ border: 1px solid black;
+}
+</STYLE>
+</HEAD>
+
+<BODY>
+<P>Repro movie for bug <a href="http://bugs.webkit.org/show_bug.cgi?id=7156">#7156</a></P>
+
+<div>The behaviour of editable links is controlled by the user default WebKitEditableLinkBehavior. This can be set via a private WebPreference. If the preference is OnlyLiveWithShiftKey, then the link will only be active when the shift key is pressed (WinIE/Firefox behaviour). If the preference is WebKitEditableLinkAlwaysLive or WebKitEditableLinkDefaultBehavior, then the link is always active (Safari 2.0 behaviour). Finally, if the preference is WebKitEditableLinkLiveWhenNotFocused, the link will only be live if the selection before clicking on the link is not in the same editable block as the link.</div>
+
+<div>Also, when a link is 'live' it can be dragged as a link, and when the link isn't 'live', dragging a link just performs a normal text selection.
+</div>
+
+<div id="editable" contentEditable="true">
+ <p>Test content</p>
+ <p><a href="about:blank">Test link</a></p>
+</div>
+
+</BODY>
+</HTML>
diff --git a/ManualTests/context-click-generated-content.html b/ManualTests/context-click-generated-content.html
new file mode 100644
index 000000000..3fcaf6d78
--- /dev/null
+++ b/ManualTests/context-click-generated-content.html
@@ -0,0 +1,21 @@
+<style type="text/css">
+html:before, html:after {
+ content: "";
+ width: 50px;
+ height: 50px;
+ position: fixed;
+}
+html:before {
+ border: solid red 5px;
+}
+html:after {
+ border: solid green 5px;
+ top: 60px;
+}
+</style>
+
+<p>
+Test of crash when context-clicking on generated content.
+Do a control-click or a right-click in one of these two
+boxes, and make sure you don't see a crash.
+</p>
diff --git a/ManualTests/context-click-unfocused-frame.html b/ManualTests/context-click-unfocused-frame.html
new file mode 100644
index 000000000..3e94e8576
--- /dev/null
+++ b/ManualTests/context-click-unfocused-frame.html
@@ -0,0 +1,17 @@
+<frameset cols="*">
+ <frame src="data:text/html,
+ <script>
+ function contextMenu()
+ {
+ document.getElementById('result').appendChild(document.createTextNode('PASS'));
+ }
+ </script>
+ <body onmousedown='return false;' oncontextmenu='contextMenu(); return false;'>
+ <p>
+ Control-click (Mac) or right-click (Windows) below. The word
+ %26ldquo;PASS%26rdquo; should appear. A contextual menu should not open.
+ </p>
+ <p id='result'></p>
+ </body>
+ ">
+</frameset>
diff --git a/ManualTests/cookieSpeedTest.html b/ManualTests/cookieSpeedTest.html
new file mode 100644
index 000000000..8633557e3
--- /dev/null
+++ b/ManualTests/cookieSpeedTest.html
@@ -0,0 +1,28 @@
+<html><head><title>Cookie Test</title>
+<script>
+function cookieTest(){
+ var totalW = 0.0;
+ var totalR = 0.0;
+ var numLoops = 100;
+ for(var i=0; i < numLoops; i++){
+ var randomNumber=Math.floor(Math.random()*11);
+ var time = new Date();
+ time.setTime(time.getTime() + 1000);
+ var cookieString = "cookie" + randomNumber + "=true; expires=" + time.toGMTString();
+ var preW = new Date().getTime();
+ document.cookie = cookieString;
+ var postW = new Date().getTime();
+ if(document.cookie.indexOf(("cookie" + randomNumber)> 0));
+ var postR = new Date().getTime();
+ totalW += (postW - preW);
+ totalR += (postR - postW);
+ }
+ document.write("<br><br>avg R(millis):" + totalR/numLoops);
+ document.write("<br>avg W(millis):" + totalW/numLoops);
+}
+
+</script>
+</head>
+<body onload="javascript:cookieTest();setTimeout(cookieTest(), 1000);">
+</body>
+</html>
diff --git a/ManualTests/crash-and-no-repaint-after-wake-from-sleep.html b/ManualTests/crash-and-no-repaint-after-wake-from-sleep.html
new file mode 100644
index 000000000..c0ccb12e3
--- /dev/null
+++ b/ManualTests/crash-and-no-repaint-after-wake-from-sleep.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>Test for Bugs 39295 and 39297</title>
+ <meta http-equiv="refresh" content="5">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="viewport" content="initial-scale=0.60, minimum-scale=0.60, maximum-scale=0.60">
+ <style type="text/css">
+
+ body {
+ font-family: 'Lucida Grande', Verdana, Arial;
+ font-size: 12px;
+ }
+
+ #stage {
+ margin: 150px auto;
+ width: 600px;
+ height: 400px;
+ /*
+
+ Setting the perspective of the contents of the stage
+ but not the stage itself
+
+ */
+ -webkit-perspective: 800;
+ }
+
+ #rotate {
+ margin: 0 auto;
+ width: 600px;
+ height: 400px;
+ /* Ensure that we're in 3D space */
+ -webkit-transform-style: preserve-3d;
+ /*
+ Make the whole set of rows use the x-axis spin animation
+ for a duration of 7 seconds, running infinitely and linearly
+ */
+ -webkit-animation-name: x-spin;
+ -webkit-animation-duration: 7s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-timing-function: linear;
+ }
+
+ .ring {
+ margin: 0 auto;
+ height: 110px;
+ width: 600px;
+ -webkit-transform-style: preserve-3d;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-timing-function: linear;
+ }
+
+ .ring > :nth-child(odd) {
+ background-color: #995C7F;
+ }
+
+ .ring > :nth-child(even) {
+ background-color: #835A99;
+ }
+
+ .poster {
+ position: absolute;
+ left: 250px;
+ width: 100px;
+ height: 100px;
+ opacity: 0.7;
+ color: rgba(0,0,0,0.9);
+ -webkit-border-radius: 10px;
+ }
+
+ .poster > p {
+ font-family: 'Georgia', serif;
+ font-size: 36px;
+ font-weight: bold;
+ text-align: center;
+ margin-top: 28px;
+ }
+
+ /*
+ Set up each row to have a different animation duration
+ and alternating y-axis rotation directions.
+ */
+ #ring-1 {
+ -webkit-animation-name: y-spin;
+ -webkit-animation-duration: 5s;
+ }
+
+ #ring-2 {
+ -webkit-animation-name: back-y-spin;
+ -webkit-animation-duration: 4s;
+ }
+
+ #ring-3 {
+ -webkit-animation-name: y-spin;
+ -webkit-animation-duration: 3s;
+ }
+
+ /*
+
+ Here we define each of the three individual animations that
+ we will be using to have our 3D rotation effect. The first
+ animation will perform a full rotation on the x-axis, we'll
+ use that on the whole set of objects. The second and third
+ animations will perform a full rotation on the y-axis in
+ opposite directions, alternating directions between rows.
+
+ Note that you currently have to specify an intermediate step
+ for rotations even when you are using individual transformation
+ constructs.
+
+ */
+ @-webkit-keyframes x-spin {
+ 0% { -webkit-transform: rotateX(0deg); }
+ 50% { -webkit-transform: rotateX(180deg); }
+ 100% { -webkit-transform: rotateX(360deg); }
+ }
+
+ @-webkit-keyframes y-spin {
+ 0% { -webkit-transform: rotateY(0deg); }
+ 50% { -webkit-transform: rotateY(180deg); }
+ 100% { -webkit-transform: rotateY(360deg); }
+ }
+
+ @-webkit-keyframes back-y-spin {
+ 0% { -webkit-transform: rotateY(360deg); }
+ 50% { -webkit-transform: rotateY(180deg); }
+ 100% { -webkit-transform: rotateY(0deg); }
+ }
+ </style>
+
+ <script type="text/javascript">
+
+ const POSTERS_PER_ROW = 12;
+ const RING_RADIUS = 200;
+
+ function setup_posters (row)
+ {
+ var posterAngle = 360 / POSTERS_PER_ROW;
+ for (var i = 0; i < POSTERS_PER_ROW; i ++) {
+ var poster = document.createElement('div');
+ poster.className = 'poster';
+ // compute and assign the transform for this poster
+ var transform = 'rotateY(' + (posterAngle * i) + 'deg) translateZ(' + RING_RADIUS + 'px)';
+ poster.style.webkitTransform = transform;
+ // setup the number to show inside the poster
+ var content = poster.appendChild(document.createElement('p'));
+ content.textContent = i;
+ // add the poster to the row
+ row.appendChild(poster);
+ }
+
+ }
+
+ function init ()
+ {
+ setup_posters(document.getElementById('ring-1'));
+ setup_posters(document.getElementById('ring-2'));
+ setup_posters(document.getElementById('ring-3'));
+ }
+
+ // call init once the document is fully loaded
+ window.addEventListener('load', init, false);
+
+ </script>
+ </head>
+
+ <body>
+
+ <p>This is a combined test for <a href="https://bugs.webkit.org/show_bug.cgi?id=39295">Bug 39295: Crash (preceded by
+ assertion) in WKCACFLayerRenderer::setNeedsDisplay when computer wakes from sleep on particular page</a> and <a
+ href="https://bugs.webkit.org/show_bug.cgi?id=39297">Bug 39297: WebView doesn't repaint until page reloads when page
+ using hardware acceleration loads just after waking from sleep</a>. To test, put your computer to sleep (or
+ "Standby", as Windows calls it). When you wake your computer up, the browser should not crash and the animation
+ below should still be running without any periods of non-painting of the WebView.</p>
+ <div id="stage">
+ <div id="rotate">
+ <div id="ring-1" class="ring"></div>
+ <div id="ring-2" class="ring"></div>
+ <div id="ring-3" class="ring"></div>
+ </div>
+ </div>
+
+ </body>
+
+</html>
diff --git a/ManualTests/crash-on-accessing-domwindow-without-frame.html b/ManualTests/crash-on-accessing-domwindow-without-frame.html
new file mode 100644
index 000000000..77dd115ba
--- /dev/null
+++ b/ManualTests/crash-on-accessing-domwindow-without-frame.html
@@ -0,0 +1,22 @@
+<script>
+var w;
+function clear() {
+ // Id doesn't matter, the crash happens while trying to access the NULL Document to lookup the Id.
+ w.clearTimeout(153);
+}
+
+function test() {
+ w = window.open("data:text/html,"+
+ "<script>" +
+ "function navigate() { location.href='data:text/html,<body>Close this page and wait.</body>'};" +
+ "setTimeout(navigate,0);</" +
+ "script>");
+
+ setInterval(clear, 20);
+}
+</script>
+<body><p>This test reproduces the crash that happens when JavaScript has access to DOMWindow which is disconnected from its Frame. This crash was fixed by http://trac.webkit.org/changeset/49786</p>
+To reproduce the crash:
+<ul><li>Click the link below, the popup window opens.</li><li>Close the popup window.</li><li>Wait about 10 seconds (~10, page cache should start deleting pages) and observe the crash.</li></ul>
+Crashes on Safari 4.0.3</p><p><a href="javascript:test()">Crash me!</a></p>
+</body>
diff --git a/ManualTests/crash-on-find-with-no-selection.html b/ManualTests/crash-on-find-with-no-selection.html
new file mode 100644
index 000000000..9dd108cff
--- /dev/null
+++ b/ManualTests/crash-on-find-with-no-selection.html
@@ -0,0 +1,12 @@
+<html>
+<head>
+</head>
+<body>
+<p>This test can be used to verify that we do not crash when searching for text on a page when nothing on the page is currently selected.</p>
+<ol>
+ <li>Ensure that you have not clicked anywhere on this page and that nothing on this page is currently selected.</li>
+ <li>Search for the word &quot;crash&quot; in this page (In Safari for Mac, select Edit->Find->Find or press Cmd-F on your keyboard to open the Find banner to search for a word in the page).
+ <li>This test PASSED if we do not crash and the word &quot;crash&quot; is highlighted in at least the first sentence on this page.</li>
+</ol>
+</body>
+</html>
diff --git a/ManualTests/css3-cursor-fallback-quirks.html b/ManualTests/css3-cursor-fallback-quirks.html
new file mode 100644
index 000000000..0efca75d7
--- /dev/null
+++ b/ManualTests/css3-cursor-fallback-quirks.html
@@ -0,0 +1,64 @@
+<html>
+<head><title>Quirks custom cursor tests</title></head>
+<body>
+<p><a href="http://bugs.webkit.org/show_bug.cgi?id=8991">Bug .991</a>: REGRESSION: missing or broken CSS custom cursors are displayed as a missing image icon.</p>
+<p>Move the cursor over the blue box - it should not turn into a missing image icon, and should turn into an I-beam over text.</p>
+
+<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png), auto;"><span style="cursor:url(nonexistent.png), auto;">some text</span></div>
+<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png);"></div>
+
+<hr>
+<p><a href="http://bugs.webkit.org/show_bug.cgi?id=6001">Bug 6001</a>: WebKit does not handle fallback custom cursors</p>
+<p><a href="http://bugs.webkit.org/show_bug.cgi?id=9013">Bug 9013</a>: Let correct CSS custom cursor declarations parse</p>
+<p>In each of the blue boxes below, the cursor should become a help cursor (question mark).</p>
+<table><tr>
+ <td><div style="width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;"></div></td> <!-- Valid, no fallback needed -->
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff);'></div></td> <!-- Invalid, but allowed by WinIE -->
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), help;'></div></td>
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), url(custom-cursors.html), url(unknown-scheme:custom-cursors.html), url(resources/helpCursor.tiff), text;'></div></td>
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), url("resources/helpCursor.tiff"), text;'></div></td>
+</tr>
+</table>
+<p>In each of the blue boxes below, the cursor should remain the default cursor, since all cursor definitions are invalid in quirks mode.</p>
+<table><tr>
+<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 1 text;'></div></td> <!-- CSS3 hot spot - invalid, should have comma after hotspot coords -->
+</tr>
+</table>
+<p>In each of the blue boxes below, the cursor should show the text cursor, since they contain invalid hotspots.</p>
+<table><tr>
+<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1, text;'></div></td> <!-- CSS3 hot spot - ignored in IE -->
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 2 3, text;'></div></td> <!-- CSS3 hot spot - ignored in IE -->
+</tr>
+</table>
+
+<p>In each of the blue boxes below, the cursor should show the help, since they contain valid hotspots.</p>
+<table><tr>
+<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 2;'></div></td> <!-- CSS3 hot spot - ignored in IE -->
+<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 2, text;'></div></td> <!-- CSS3 hot spot - ignored in IE -->
+</tr>
+</table>
+
+<p></p>
+<p><span style='background-color:gray; cursor:url(nonexistent.png), url("resources/helpCursor.tiff");'>Should show an I-beam cursor.</span></p> <!-- An invalid declaration, even by WinIE standards -->
+<p>The following testcases test inheritance of the cursor property. The first one should have the help cursor for both divs (normal inheritance). The second one should have help cursor for big div, text cursor for small div (inner div has cursor property, should not inherit). The next has invalid css syntax in the inner div, so it should inherit from the parent. The last two testcases have correct syntax and there is no inheritance in this case.</p>
+<table>
+<tr><td>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;"></div></div>
+</td><td>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:text"></div></div>
+</td><td>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:foobar"></div></div>
+</td><td>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:url(resources/helpCursor.tiff) 1 2, text"></div></div>
+</td><td>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:url(nonexistant.png), text"></div></div>
+</td></tr>
+</table>
+<p>In each of the blue boxes below, the hotspot is out-of-range. In quirks mode we do not support hotspots at all, so we show the fallback cursor(text).</p>
+<table><tr>
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) -1 -1, text;'></div></td> <!-- CSS3 hot spot out-of-range -->
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 100 100, text;'></div></td> <!-- CSS3 hot spot out-of-range -->
+</tr>
+</table>
+</body>
+</html>
diff --git a/ManualTests/css3-cursor-fallback-strict.html b/ManualTests/css3-cursor-fallback-strict.html
new file mode 100644
index 000000000..06624c4e4
--- /dev/null
+++ b/ManualTests/css3-cursor-fallback-strict.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Strict custom cursor tests</title></head>
+<body>
+<p><a href="http://bugs.webkit.org/show_bug.cgi?id=8991">Bug .991</a>: REGRESSION: missing or broken CSS custom cursors are displayed as a missing image icon.</p>
+<p>Move the cursor over the blue box - it should not turn into a missing image icon, and should turn into an I-beam over text.</p>
+
+<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png), auto;"><span style="cursor:url(nonexistent.png), auto;">some text</span></div>
+<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png);"></div>
+
+<hr>
+<p><a href="http://bugs.webkit.org/show_bug.cgi?id=6001">Bug 6001</a>: WebKit does not handle fallback custom cursors</p>
+<p><a href="http://bugs.webkit.org/show_bug.cgi?id=9013">Bug 9013</a>: Let correct CSS custom cursor declarations parse</p>
+<p>In each of the blue boxes below, the cursor should become a help cursor (question mark).</p>
+<table><tr>
+ <td><div style="width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;"></div></td> <!-- Valid, no fallback needed -->
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), help;'></div></td>
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), url(custom-cursors.html), url(unknown-scheme:custom-cursors.html), url(resources/helpCursor.tiff), text;'></div></td>
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), url("resources/helpCursor.tiff"), text;'></div></td>
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 1, text;'></div></td> <!-- CSS3 hot spot - valid, no fallback needed -->
+</tr>
+</table>
+<p>In each of the blue boxes below, the cursor should remain the default cursor, since all cursor definitions are invalid in strict mode.</p>
+<table><tr>
+<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 1 text;'></div></td> <!-- CSS3 hot spot - invalid, should have comma after hotspot coords -->
+<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1, text;'></div></td> <!-- CSS3 hot spot - invalid, should have two hotspot coords -->
+<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 2 3, text;'></div></td> <!-- CSS3 hot spot - invalid, should have two hotspot coords -->
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff);'></div></td> <!-- Invalid -->
+</tr>
+</table>
+
+<p></p>
+<p><span style='background-color:gray; cursor:url(nonexistent.png), url("resources/helpCursor.tiff");'>Should show an I-beam cursor.</span></p> <!-- An invalid declaration, even by WinIE standards -->
+<p>The following testcases test inheritance of the cursor property. The first one should have the help cursor for both divs (normal inheritance). The second one should have help cursor for big div, text cursor for small div (inner div has cursor property, should not inherit). The next two have invalid css syntax in the inner div, so they should inherit from parent. The rightmost testcase has a nonexistant url, but the syntax is correct, and there is no inheritance in this case.</p>
+<table>
+<tr><td>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;"></div></div>
+</td><td>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:text"></div></div>
+</td><td>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:foobar"></div></div>
+</td><td>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:url(resources/helpCursor.tiff) 1 2 3, text"></div></div>
+</td><td>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:url(nonexistant.png), text"></div></div>
+</td></tr>
+</table>
+<p>In each of the blue boxes below, the hotspot is out-of-range. For now this means a failure to show the custom cursor(lower level problem?).</p>
+<table><tr>
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) -1 -1, help;'></div></td> <!-- CSS3 hot spot out-of-range -->
+ <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 100 100, help;'></div></td> <!-- CSS3 hot spot out-of-range -->
+</tr>
+</table>
+</body>
+</html>
diff --git a/ManualTests/cur-hotspot.html b/ManualTests/cur-hotspot.html
new file mode 100644
index 000000000..f1cfb5413
--- /dev/null
+++ b/ManualTests/cur-hotspot.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body>
+ <p>Test for .cur cursor intrinsic hot spot behavior. See <a href="https://bugs.webkit.org/show_bug.cgi?id=15779">bug 15779</a>.</p>
+ <div style="background:turquoise;cursor:url(resources/cur-hotspot.cur), auto; width:200px; height:200px; position:absolute; top:100px; left: 50px;">Mouse cursor should be upside down inside this box.</div>
+
+ <div style="background:turquoise;cursor:url(resources/cur-hotspot.cur) 200 200, auto; width:200px; height:200px; position:absolute; top:100px; left: 300px;">Mouse cursor should be upside down inside this box.</div>
+
+ <div style="background:turquoise;cursor:url(resources/cur-hotspot.cur) 0 0, auto; width:200px; height:200px; position:absolute; top:350px; left: 50px;">Mouse cursor should flip erratically, due to incorrect hot spot forced in CSS.</div>
+
+</body>
+</html>
diff --git a/ManualTests/cursor-empty-url.html b/ManualTests/cursor-empty-url.html
new file mode 100644
index 000000000..a336100cb
--- /dev/null
+++ b/ManualTests/cursor-empty-url.html
@@ -0,0 +1,3 @@
+<div>Mousing over the grey block should not cause a crash.</div>
+<link rel="stylesheet" href="resources/cursor-empty-url.css"></link>
+<div id="target" style="width: 50px; height: 50px; margin: 10px; background: #ddd"></div>
diff --git a/ManualTests/cursor-max-size.html b/ManualTests/cursor-max-size.html
new file mode 100644
index 000000000..a112a70c0
--- /dev/null
+++ b/ManualTests/cursor-max-size.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
+<html>
+<head>
+<style>
+html, body
+{
+ height: 100%; width: 100%; overflow: hidden; position: relative;
+ cursor: url("resources/apple.jpg"), /* bigger than 128px x 128px */
+ url("resources/helpCursor.tiff") -10 10, /* negative x in hotspot */
+ url("resources/helpCursor.tiff") 10 -10, /* negative y in hotspot */
+ url("resources/helpCursor.tiff") -10 -10, /* negative x and y in hotspot */
+ url("resources/helpCursor.tiff") 20 10, /* x hotspot outside image (image is 16px x 16px) */
+ url("resources/helpCursor.tiff") 10 20, /* y hotspot outside image (image is 16px x 16px) */
+ url("resources/helpCursor.tiff") 20 20, /* both x and y hotspot outside image (image is 16px x 16px) */
+ auto;
+}
+</style>
+</head>
+<body>
+ <p>
+ If there is a custom cursor, the test has failed. This tests that images larger than 128x128 cannot be used
+ as cursors and that hotspots cannot be outside of the cursors bounds box.
+ </p>
+</body>
+</html>
diff --git a/ManualTests/cursor.html b/ManualTests/cursor.html
new file mode 100644
index 000000000..206cfe01a
--- /dev/null
+++ b/ManualTests/cursor.html
@@ -0,0 +1,38 @@
+<div>Mouse over the grey blocks to change the cursor.</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: auto">auto</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: default">default</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: hand">hand</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: pointer">pointer</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: text">text</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: help">help</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: crosshair">crosshair</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: move">move</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: w-resize">w</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: e-resize">e</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: n-resize">n</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: s-resize">s</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: nw-resize">nw</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: ne-resize">ne</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: sw-resize">sw</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: se-resize">se</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: ns-resize">ns</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: ew-resize">ew</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: nwse-resize">nwse</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: nesw-resize">nesw</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: col-resize">col</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: row-resize">row</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: all-scroll">allscroll</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: vertical-text">verticaltext</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: context-menu">contextmenu</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: no-drop">nodrop</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: not-allowed">notallowed</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: progress">progress</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: wait">wait</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: alias">alias</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: cell">cell</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: copy">copy</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: none">none</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: -webkit-zoom-in">zoom in</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: -webkit-zoom-out">zoom out</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: -webkit-grab">grab</div>
+<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: -webkit-grabbing">grabbing</div>
diff --git a/ManualTests/cursorfallback.xml b/ManualTests/cursorfallback.xml
new file mode 100644
index 000000000..a4fdf2f03
--- /dev/null
+++ b/ManualTests/cursorfallback.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Strict mode + SVG cursor fallback test</title>
+</head>
+<body>
+<p>Test svg cursor fallback, should show help cursor:</p>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="300">
+<defs>
+ <cursor id="help" xlink:href="resources/helpcursor.tiff" x="10" y="11"/>
+</defs>
+<g cursor="url(nonexistent.png), url(custom-cursors.html), url(unknown-scheme:custom-cursors.html), url(#nonexistant), url(#help), text">
+ <rect x="0" y="0" width="50" height="50" fill="blue" />
+</g>
+<text y="62">Test svg cursor fallback with hotspot, should show help cursor:</text>
+<g cursor="url(#help) 1 1, text">
+ <rect x="0" y="70" width="50" height="50" fill="red" />
+</g>
+<text y="132">Test svg cursor fallback with illegal hotspot, should show default cursor:</text>
+<g cursor="url(#help) 1, text">
+ <rect x="0" y="140" width="50" height="50" fill="red" />
+</g>
+<text y="202">Test svg cursor fallback with illegal hotspot, should show default cursor:</text>
+<g cursor="url(#help) 1 2 3, text">
+ <rect x="0" y="210" width="50" height="50" fill="red" />
+</g>
+</svg>
+<p>Testing cursor fallback in strict mode, should show help cursor:</p>
+<div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), url("resources/helpcursor.tiff"), text;'></div>
+</body>
+</html>
diff --git a/ManualTests/custom-cursors.html b/ManualTests/custom-cursors.html
new file mode 100644
index 000000000..0620c47da
--- /dev/null
+++ b/ManualTests/custom-cursors.html
@@ -0,0 +1,10 @@
+<a href="http://bugs.webkit.org/show_bug.cgi?id=8991">Bug 8991</a>: REGRESSION: missing or broken CSS custom cursors are displayed as a missing image icon.<p>
+Move the cursor over the blue box - it should not turn into a missing image icon, and should turn into an I-beam over text.
+
+<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png), auto;"><span style="cursor:url(nonexistent.png), auto;">some text</span></div>
+<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png);"></div>
+
+<hr>
+<a href="http://bugs.webkit.org/show_bug.cgi?id=8991">Bug 6001</a>: WebKit does not handle fallback custom cursors<p>
+Move the cursor over the blue box - it should become a help cursor (question mark).
+<div style="width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), help;"></div>
diff --git a/ManualTests/custom-scrollbar-renderer-removed-crash.html b/ManualTests/custom-scrollbar-renderer-removed-crash.html
new file mode 100644
index 000000000..54f33f490
--- /dev/null
+++ b/ManualTests/custom-scrollbar-renderer-removed-crash.html
@@ -0,0 +1,11 @@
+<html>
+<body>
+Reload page and mouse click quickly in the black box.
+<style>
+::-webkit-scrollbar { width: 1000; }
+</style>
+<script>setTimeout("try { document.body.offsetTop; child = document.body; child.parentNode.removeChild(child); } catch(e) {}", 100);</script>
+<svg>
+</svg>
+</body>
+</html>
diff --git a/ManualTests/data-transfer-items-file-dragout.html b/ManualTests/data-transfer-items-file-dragout.html
new file mode 100644
index 000000000..5e36fcf4c
--- /dev/null
+++ b/ManualTests/data-transfer-items-file-dragout.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<body>
+<p><b>BUG ID: 76367</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=76367">Bugzilla bug </a> Add DataTransferItems support for drag-and-drop'ed files and texts</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br>
+1. Open the <a href="resources">$(WebKitRoot)/ManualTests/resources</a> folder in your native file browser.<br>
+2. Drag and drop a file into the 'Drop files here' area below.<br>
+3. Drag out <a href="#" id="dragout" draggable="true">this link</a> out of the browser window into a different folder in the native file browser).
+</p>
+
+<div id="destination" style="min-height:100px; margin: 5px; border: solid 1px black">Drop files here </div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The same file you dropped in the step 2 should be dragged out to the folder in the step 3. The file should have the same content and the same file name as the dropped file. (NOTE: this does not work for multiple files yet.)
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Nothing happens or a different file from the dropped one (likely a text file with the page title) is dragged out.
+</p>
+<p id="console"></p>
+
+<script>
+function log(text)
+{
+ var console = document.getElementById('console');
+ console.appendChild(document.createTextNode(text));
+ console.appendChild(document.createElement('br'));
+}
+
+function test(expect, actual)
+{
+ log((expect == actual ? 'PASS' : 'FAIL') + ': "' + expect + '" == "' + actual + '"');
+}
+
+var destination = document.getElementById('destination');
+destination.addEventListener('dragover', handleDragOver, false);
+destination.addEventListener('drop', handleDrop, false);
+
+function handleDragOver(e)
+{
+ e.stopPropagation();
+ e.preventDefault();
+}
+
+function handleDrop(e)
+{
+ e.stopPropagation();
+ e.preventDefault();
+
+ log('Verifying contents of DataTransferItems...');
+ var items = e.dataTransfer.items;
+ var files = [];
+ test(1, items.length);
+
+ for (var i = 0; i < items.length; ++i) {
+ test('file', items[i].kind);
+ var file = items[i].getAsFile();
+ log('Dragged files: ' + file.name);
+ log('Dragged file size: ' + file.size);
+ files.push(file);
+ }
+
+ // Setting up dragout items.
+ log('Setting up dragging out with the dropped items...');
+ var source = document.getElementById('dragout');
+ source.addEventListener('dragstart', function(e) {
+ for (var i = 0; i < files.length; ++i) {
+ log('Dragging out ' + files[i].name);
+ e.dataTransfer.items.add(files[i]);
+ }
+ }, false);
+
+ log('Please dragout the link (noted in the step 3) and see if the same file you dropped in in the step 2 is properly drag out.');
+}
+
+</script>
+</body>
+</html>
diff --git a/ManualTests/database-callback-deferred.html b/ManualTests/database-callback-deferred.html
new file mode 100644
index 000000000..cf3d03a87
--- /dev/null
+++ b/ManualTests/database-callback-deferred.html
@@ -0,0 +1,17 @@
+<html>
+<script>
+function test() {
+ function transactionCallback()
+ {
+ document.getElementById("result").innerHTML = "Callback was called. Test passed";
+ }
+ var db = openDatabase("DatabaseCallbackDeferred", "1.0", "", 1);
+ db.transaction(function(tx) { tx.executeSql("CREATE TABLE IF NOT EXISTS CallbackDeferredTest (randomData)", []); }, transactionCallback, transactionCallback);
+
+ alert("Wait for a few seconds and close it");
+}
+</script>
+<body onload="test()">
+<p id="result">Wait...</p>
+</body>
+</html>
diff --git a/ManualTests/database-threading-stress-test-2.html b/ManualTests/database-threading-stress-test-2.html
new file mode 100644
index 000000000..b99af3c79
--- /dev/null
+++ b/ManualTests/database-threading-stress-test-2.html
@@ -0,0 +1,51 @@
+<!doctype html>
+<html>
+<head>
+<script>
+var db;
+
+try {
+ if (window.openDatabase) {
+ db = openDatabase("StressTest2", "1.0", "Database stress test", 200000);
+ if (!db)
+ alert("Failed to open the database on disk. This is probably because the version was bad or there is not enough space left in this domain's quota");
+ } else
+ alert("Couldn't open the database. Please try with a WebKit nightly with this feature enabled");
+} catch(err) { }
+
+function loaded()
+{
+ db.transaction(function(tx) {
+ tx.executeSql("SELECT COUNT(*) FROM WebkitStickyNotes", [], function(result) {
+ loadNotes();
+ }, function(tx, error) {
+ tx.executeSql("CREATE TABLE WebKitStickyNotes (id REAL UNIQUE, note TEXT)", [], function(result) {
+ tx.executeSql("INSERT INTO WebKitStickyNotes (id, note) VALUES (?, ?)", [1, 'Text'], function(result) {
+ tx.executeSql("INSERT INTO WebKitStickyNotes (id, note) VALUES (?, ?)", [2, 'More Text'], function(result) {
+ loadNotes();
+ });
+ });
+ });
+ });
+ });
+}
+
+function loadNotes()
+{
+ db.transaction(function(tx) {
+ tx.executeSql("SELECT id, note FROM WebKitStickyNotes", [], function(tx, result) {
+ loadNotes();
+ }, function(tx, error) {
+ alert('Failed to retrieve notes from database - ' + error.message);
+ return;
+ });
+ });
+}
+
+addEventListener('load', loaded, false);
+</script>
+</head>
+<body>
+<p>This test needs to run without crashes and assertion failures for a while.<p>
+</body>
+</html>
diff --git a/ManualTests/database-threading-stress-test.html b/ManualTests/database-threading-stress-test.html
new file mode 100644
index 000000000..f22610ca2
--- /dev/null
+++ b/ManualTests/database-threading-stress-test.html
@@ -0,0 +1,84 @@
+<!doctype html>
+<html>
+<head>
+
+<style>
+pre { padding: 5px; border: 1px solid black; }
+</style>
+
+<script>
+var db;
+
+try {
+ if (window.openDatabase) {
+ db = openDatabase("StressTest1", "1.0", "Database Stress Test", 200000);
+ if (!db)
+ alert("Failed to open the database on disk. This is probably because the version was bad or there is not enough space left in this domain's quota");
+ } else
+ alert("Couldn't open the database.");
+} catch(err) { }
+
+var highestId = 0;
+var allData = new Array();
+
+function newData()
+{
+ var id = ++highestId;
+ allData.push(id);
+ db.transaction(function (tx)
+ {
+ tx.executeSql("INSERT INTO FillerData (id, filler) VALUES (?, randomblob(1024))", [id]);
+ });
+}
+
+function testOpen()
+{
+ for (var i = 0; i < 4; i++) {
+ newData();
+ }
+
+ setTimeout("testClose();", 0);
+}
+
+function testClose()
+{
+ db.transaction(function(tx)
+ {
+ for (var i = 0; i < allData.length; i++)
+ tx.executeSql("DELETE FROM FillerData WHERE id = ?", [allData[i]]);
+
+ allData = new Array();
+ });
+ setTimeout("testOpen();", 0);
+}
+
+function updateTransactionCount()
+{
+ document.getElementById("transactionCount").innerHTML = "Current Transaction Count: " + highestId;
+ setTimeout("updateTransactionCount();", 1000);
+}
+
+function loaded()
+{
+ db.transaction(function(tx) {
+ tx.executeSql("SELECT COUNT(*) FROM FillerData", [], function(result) { }, function(tx, error) {
+ tx.executeSql("CREATE TABLE FillerData (id REAL UNIQUE, filler)", [], function(result) {
+ });
+ });
+ });
+
+ setTimeout("testOpen();", 0);
+ setTimeout("updateTransactionCount();", 1000);
+}
+
+addEventListener('load', loaded, false);
+</script>
+</head>
+
+<body>
+This test stresses the database threading code by constantly opening transactions to the test database at a fast rate.<br>
+See radar 5729446 for more details.<br>
+<pre id="transactionCount">Current Transaction Count: 0</pre>
+
+</body>
+</html>
diff --git a/ManualTests/debugger-caught-uncaught-exceptions.html b/ManualTests/debugger-caught-uncaught-exceptions.html
new file mode 100644
index 000000000..d812ca6b6
--- /dev/null
+++ b/ManualTests/debugger-caught-uncaught-exceptions.html
@@ -0,0 +1,35 @@
+<html>
+ <head>
+ <script>
+ function generateUncaughtException() {
+ var b = 5;
+ // Pause on uncaught exceptions and pause on all exceptions should pause here,
+ // because even though the exception is being caught by our caller in this case,
+ // it is not being caught in the same function.
+ b.foo.bar;
+ }
+
+ function generateCaughtAndUncaughtExceptions() {
+ var a = 5;
+ try {
+ // This will pause on Pause on all exceptions, but not Pause on uncaught exceptions.
+ a.foo.bar;
+ } catch (e) { }
+
+ try {
+ generateUncaughtException();
+ } catch (e) { }
+
+ // This will pause on both Pause on all exceptions and Pause on uncaught exceptions.
+ a.foo.bar;
+ }
+ </script>
+ </head>
+ <body>
+ <p>This page tests <a href="https://bugs.webkit.org/show_bug.cgi?id=28622">Caught exceptions still pause the debugger</a>
+ <p>To test this bug, open the inspector, open the scripts panel, and click the button to pause on all exceptions, press
+ the button, and see which exceptions are paused on. Then press the pause on exceptions button again to only
+ pause on uncaught exceptions, and see which exceptions are paused on.</p>
+ <input type="button" value="Generate caught and uncaught exceptions" onclick="generateCaughtAndUncaughtExceptions();" />
+ </body>
+</html>
diff --git a/ManualTests/deleteToEndOfLine.html b/ManualTests/deleteToEndOfLine.html
new file mode 100644
index 000000000..fdbc24dbc
--- /dev/null
+++ b/ManualTests/deleteToEndOfLine.html
@@ -0,0 +1,20 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 1px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+</style>
+
+<title>deleteToEndOfLine: test</title>
+</head>
+<body>
+<p>First add the following line to your ~/Library/KeyBindings/DefaultKeyBinding.dict then relaunch Safari: "^k" = "deleteToEndOfLine:";</p>
+<p>Place the cursor between the two 'o's in 'Foo' and hit ^k twice. The first should result in 'Fo\nbar' and the second should result in 'Fobar'.</p>
+<div class="editing" contentEditable><div>Foo</div><div>bar</div></div>
+
+</body>
+</html>
diff --git a/ManualTests/dictionary-scrolled-iframe.html b/ManualTests/dictionary-scrolled-iframe.html
new file mode 100644
index 000000000..d7cf23e83
--- /dev/null
+++ b/ManualTests/dictionary-scrolled-iframe.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8295">Bugzilla bug 8295</a> Dictionary pop-up panel targets the wrong word in a scrolled IFRAME</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b><br>
+1. Click the inner frame&rsquo;s down scroll arrow once.<br>
+2. Move the mouse pointer
+over &ldquo;target&rdquo;.<br>
+3. Press Command-Control-D to invoke the Dictionary pop-up panel.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The Dictionary pop-up panel will appear over &ldquo;target&rdquo;, giving its definition.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+The Dictionary pop-up panel will appear over &ldquo;failure&rdquo;, with the definition of failure.
+</p>
+
+<iframe style="background: #ffd;" src="data:text/html,Curabitur pretium, quam quis semper malesuada, est libero feugiat libero, vel fringilla orci nibh sed neque. Quisque eu nulla non nisi molestie accumsan. Etiam tellus urna, <span style=%22color: green;%22>target</span> ac, laoreet non, suscipit sed, sapien. Phasellus vehicula, sem at posuere tel failure, augue nibh molestie nisl, nec ullamcorper lacus ante vulputate pede. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris viverra augue vitae purus. Morbi sed sem. Donec dui nisi, ultrices non, pretium quis, hendrerit non, est. Donec tellus. Donec eget dui id eros pharetra rutrum. Suspendisse sodales lectus sit amet nulla. Morbi tortor arcu, convallis blandit, elementum eu, aliquet a, tellus.
+"></iframe>
+
+</body>
+</html>
diff --git a/ManualTests/directory-drop-on-view.html b/ManualTests/directory-drop-on-view.html
new file mode 100644
index 000000000..b82cc45b9
--- /dev/null
+++ b/ManualTests/directory-drop-on-view.html
@@ -0,0 +1,20 @@
+<html>
+ <head>
+ <title>
+ Manual drop test
+ </title>
+ </head>
+ <body>
+ This tests that unknown file types are handled correctly when dropped in the window
+ <ul>
+ <li>
+ Drag a file that WebKit doesn't recognise -- eg. a disk image, tarball, etc.<br />
+ WebKit should cause a Finder window to open, with the dropped file selected.
+ </li>
+ <li>
+ Attempt to drop a directory onto the WebView.<br />
+ The drag should not be accepted, and the drag cursor should be the standard disallowed drag cursor.
+ </li>
+ </ul>
+ </body>
+</html> \ No newline at end of file
diff --git a/ManualTests/disable-javascript-reload.html b/ManualTests/disable-javascript-reload.html
new file mode 100644
index 000000000..c7e2a9140
--- /dev/null
+++ b/ManualTests/disable-javascript-reload.html
@@ -0,0 +1,21 @@
+<html>
+<head>
+<script>
+function test()
+{
+ document.getElementById("manualDirections").setAttribute("style","display:block;");
+ document.getElementById("console").innerHTML = "FAIL - disabled javascript hasn't been applied to refreshed webpage";
+}
+
+</script>
+</head>
+<body onload="test();">
+<div id="manualDirections" style="display:none;">
+To run this test manually, disable javascript and reload the page.
+<br><br>
+</div>
+<div id="console">
+PASS
+</div>
+</body
+</html>
diff --git a/ManualTests/disabled-option-elements.html b/ManualTests/disabled-option-elements.html
new file mode 100644
index 000000000..4ff291fdc
--- /dev/null
+++ b/ManualTests/disabled-option-elements.html
@@ -0,0 +1,26 @@
+<body>
+<p>This tests that disabled option elements shouldn't be selectable and that no elements in disabled optgroups are selectable.</p>
+<form name="form">
+<select multiple="multiple">
+<option>my value 1</option>
+<option value="2" disabled>you should not be able to select this</option>
+<option>my value 3</option>
+<optgroup label="disabled option group" disabled>
+ <option>this should be disabled</option>
+ <option>as well as this</option>
+<optgroup>
+</select>
+
+<select>
+<option>my value 1</option>
+<option value="2" disabled>you should not be able to select this</option>
+<option>my value 3</option>
+<optgroup label="disabled option group" disabled>
+ <option>this should be disabled</option>
+ <option>as well as this</option>
+<optgroup>
+</select>
+</form>
+
+</body>
+</html>
diff --git a/ManualTests/display-none-option.html b/ManualTests/display-none-option.html
new file mode 100644
index 000000000..30071f353
--- /dev/null
+++ b/ManualTests/display-none-option.html
@@ -0,0 +1,11 @@
+<p>
+When you click the following &lt;select&gt;, you should see only two options.
+Mac Safari doesn't pass this test yet.
+See <a href="https://bugs.webkit.org/show_bug.cgi?id=8351">Bug 8351</a> for detail.
+
+<p>
+<select>
+ <option>First choice</option>
+ <option style="display: none">You must NOT see this</option>
+ <option>Second choice</option>
+</select>
diff --git a/ManualTests/divx-plugin-fails-to-draw.html b/ManualTests/divx-plugin-fails-to-draw.html
new file mode 100644
index 000000000..57244b7b7
--- /dev/null
+++ b/ManualTests/divx-plugin-fails-to-draw.html
@@ -0,0 +1,12 @@
+<html>
+<body>
+This is a manual test for
+<a href="https://bugs.webkit.org/show_bug.cgi?id=39457">Bug #39457</a>. It
+requires that you have the DivX plug-in installed.<br><br>
+
+The plug-in below should not appear as a white box but as a video player with
+controls.<br><br>
+
+<embed type="video/divx" width=320 height=240>
+</body>
+</html>
diff --git a/ManualTests/dom-manipulation-on-resize.html b/ManualTests/dom-manipulation-on-resize.html
new file mode 100644
index 000000000..81eaa5aa0
--- /dev/null
+++ b/ManualTests/dom-manipulation-on-resize.html
@@ -0,0 +1,28 @@
+<html>
+<head><style>
+body { overflow: hidden; }
+</style>
+<script>
+window.onresize = function() {
+ var tbody = document.createElement("TBODY")
+
+ var m = (document.getElementsByTagName("TABLE"))[0]
+ if(m.hasChildNodes()) m.removeChild(m.lastChild)
+
+ var tr = tbody.appendChild(document.createElement("TR"))
+
+ m.appendChild(tbody)
+}
+</script>
+</head>
+<body onload="setTimeout('window.resizeTo(500,500)', 0)">
+<table></table>
+<p>
+<b>BUG ID: <a href="http://bugs.webkit.org/show_bug.cgi?id=8739">Bugzilla bug 8739</a></b>
+Crash in RenderTableSection::paint due to manipulating DOM on resize
+</p>
+<p id="success" style="background-color:palegreen; padding:3px;">
+><b>TEST PASS:</b> You got here without crashing, which means test PASS. It is normal for the
+window to have resized.
+</p>
+</body></html>
diff --git a/ManualTests/dom/document-write-synchronous-after-page-load.html b/ManualTests/dom/document-write-synchronous-after-page-load.html
new file mode 100644
index 000000000..f62fd68c1
--- /dev/null
+++ b/ManualTests/dom/document-write-synchronous-after-page-load.html
@@ -0,0 +1,23 @@
+<p>This test ensures that document.write after page load is synchronous.</p>
+<p>You will get a PASS or FAIL alert message after a few seconds.</p>
+<script>
+window.onload = function() {
+
+ // Build a very long string to write.
+ var LIMIT = 17;
+ var str = '<p style="display:none">x</p>';
+ for (var i=0; i<LIMIT; ++i)
+ str += str;
+
+ // Write the string and check the DOM immediately and after a small delay.
+ var doc = document.implementation.createHTMLDocument();
+ doc.write(str);
+ var immediateElementCount = doc.getElementsByTagName('*').length;
+ setTimeout(function() {
+ var delayedElementCount = doc.getElementsByTagName('*').length;
+ var passOrFail = (immediateElementCount === delayedElementCount ? "PASS" : "FAIL");
+ alert(passOrFail);
+ }, 100);
+
+}
+</script>
diff --git a/ManualTests/dom/form-control-for-label.html b/ManualTests/dom/form-control-for-label.html
new file mode 100644
index 000000000..aeb8338d7
--- /dev/null
+++ b/ManualTests/dom/form-control-for-label.html
@@ -0,0 +1,12 @@
+<html>
+<style>
+progress {border: 3px solid blue;}
+progress:hover {border: 3px solid red;}
+</style>
+<body>
+<h3>Test hover</h3>
+<label>The border color of the progress bar should change from blue to red when you hover on this label text <progress></progress></label><br>
+<label>The border of this progress bar would change color when it is inside fieldset and legend elements <fieldset><legend><progress></progress></legend></fieldset></label><br>
+</body>
+</html>
+
diff --git a/ManualTests/dom/progressbar.html b/ManualTests/dom/progressbar.html
new file mode 100644
index 000000000..99c888d30
--- /dev/null
+++ b/ManualTests/dom/progressbar.html
@@ -0,0 +1,15 @@
+<h1>Progress bars</h1>
+<h2>Large</h2>
+<div style="font-size:16px">
+This is an example of <progress value=7 max=10></progress> a determinate progress bar.<br>
+This is an example of <progress></progress> an indeterminate progress bar.<br>
+This is an example of <progress dir=rtl value=7 max=10></progress> a right-to-left determinate progress bar.<br>
+This is an example of <progress dir=rtl></progress> a right-to-left indeterminate progress bar.<br>
+</div>
+<h2>Small</h2>
+<div style="font-size:14px">
+This is an example of <progress value=4 max=10></progress> a small determinate progress bar.<br>
+This is an example of <progress></progress> a small indeterminate progress bar.<br>
+This is an example of <progress dir=rtl value=4 max=10></progress> a small right-to-left determinate progress bar.<br>
+This is an example of <progress dir=rtl></progress> a small right-to-left indeterminate progress bar.<br>
+</div>
diff --git a/ManualTests/drag-caret.html b/ManualTests/drag-caret.html
new file mode 100644
index 000000000..4334ab224
--- /dev/null
+++ b/ManualTests/drag-caret.html
@@ -0,0 +1,3 @@
+<p>This tests dragging over an input element, to make sure no drag-cursor is left behind.</p>
+<p><input></p>
+<p>Drag some text over the input element and make sure the Drag Caret disappears when the drag exits the input element. Per https://bugs.webkit.org/show_bug.cgi?id=26787</p>
diff --git a/ManualTests/drag-color-to-contenteditable.html b/ManualTests/drag-color-to-contenteditable.html
new file mode 100644
index 000000000..d0c74b37a
--- /dev/null
+++ b/ManualTests/drag-color-to-contenteditable.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<body>
+<p><b>BUG ID:</b> <a href="https://bugs.webkit.org/show_bug.cgi?id=74775">74775</a> WebKit editing throws exception when monochrome color dragged onto text</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+<ol>
+<li>Open a color panel in any app, such as TextEdit.app.</li>
+<li>Select some text in the editable region below.</li>
+<li>Drag a color swatch for a monochrome color, e.g. a gray from the grayscale slider of the color panel, to the selected text.</li>
+</ol>
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+If the color changes to the desired gray, and the drag appears to be accepted, the test passes.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+If the color change does not apply to the text, and the drag appears to bounce back, then the bug is probably occurring. The bug can be confirmed by looking for evidence of an uncaught exception in the system console log.
+</p>
+
+<div contentEditable="true">Select this text and drag a grayscale color to it.</div>
+
+</body>
+</html>
diff --git a/ManualTests/drag-cursor-notallowed.html b/ManualTests/drag-cursor-notallowed.html
new file mode 100644
index 000000000..e6cb6d46f
--- /dev/null
+++ b/ManualTests/drag-cursor-notallowed.html
@@ -0,0 +1,111 @@
+<html>
+<head>
+<style>
+#dropTarget, #dragMe { text-align: center; display: table-cell; vertical-align: middle }
+#dropTarget {width: 256px; height: 256px; border: 1px dashed}
+#dragMe {-webkit-user-drag: element; -webkit-user-select: none; background: #ff0000; width: 64px; height: 64px; color: white}
+.pass { font-weight: bold; color: green; }
+.fail { font-weight: bold; color: red; }
+</style>
+<script>
+ var dragMe;
+ var dropTarget;
+ var messageElm;
+ var defaultMessageElm;
+ var event;
+
+ var ALLOWED_EFFECTS = 'move';
+ var DROP_EFFECT = 'copy';
+
+ window.onload = function()
+ {
+ dragMe = document.getElementById("dragMe");
+ dropTarget = document.getElementById("dropTarget");
+ messageElm = document.getElementById("message");
+ defaultMessageElm = document.getElementById("default-message");
+
+ if (!dragMe || !dropTarget || !messageElm || !defaultMessageElm)
+ return;
+
+ dragMe.ondragstart = dragStart;
+ dragMe.ondragend = dragEnd;
+
+ dropTarget.ondragenter = dragEntered;
+ dropTarget.ondragover = dragOver;
+ dropTarget.ondrop = drop;
+ }
+
+ function dragStart(e)
+ {
+ event = e;
+ e.dataTransfer.effectAllowed = ALLOWED_EFFECTS;
+ e.dataTransfer.setData('Text', e.target.textContent);
+ }
+
+ function dragEnd(e)
+ {
+ messageElm.style.visibility = "hidden";
+ defaultMessageElm.style.visibility = "visible";
+ return;
+ }
+
+ function dragEntered(e)
+ {
+ messageElm.style.visibility = "visible";
+ defaultMessageElm.style.visibility = "hidden";
+ dragEnteredAndUpdated(e);
+ }
+
+ function dragOver(e)
+ {
+ dragEnteredAndUpdated(e);
+ }
+
+ function dragEnteredAndUpdated(e)
+ {
+ event = e;
+ e.dataTransfer.dropEffect = DROP_EFFECT;
+ cancelDrag(e);
+ }
+
+ function drop(e)
+ {
+ cancelDrag(e);
+ }
+
+ function cancelDrag(e)
+ {
+ if (e.preventDefault)
+ e.preventDefault();
+ else {
+ // Assume this script is executing within Internet Explorer
+ e.returnValue = false;
+ }
+ }
+</script>
+</head>
+<body>
+ <p id="description">This test can be used to verify that the not-allowed cursor is shown during an invalid drag-and-drop operation.
+ In particular, if the effectAllowed is <code><script>document.write(ALLOWED_EFFECTS)</script></code> and the dropEffect of the
+ drop target is <code><script>document.write(DROP_EFFECT)</script></code> then the drop is not allowed and the cursor should
+ change to the not-allowed cursor. Note, this test only pertains to the Windows build since the Mac build does not show a drop cursor
+ for a not-allowed drop operation (see bug #25925).
+ <br/><br/>
+ Drag the red square over the drop target (demarcated by the dashed boundary). While hovering over the drop target, if the cursor
+ is <img alt="not-allowed" src="data:image/gif;base64,R0lGODlhEgASAIAAAAAAAP///yH5BAAAAAAALAAAAAASABIAAAIvjA+px6ifmnmM1ijDmlbuuHmAhoWXaTqYKq7sObZw3HwgXd8cPr8yDGxBXEJioAAAOw=="> then the test <span class="pass">PASSED</span>. Otherwise, the test <span class="fail">FAILED</span>.</p>
+ <div id="test-container">
+ <label for="effectAllowed">effectAllowed:</label> <code><script>document.write(ALLOWED_EFFECTS)</script></code>
+ <br/><br/>
+ <div id="dropTarget">
+ <div id="default-message">Drag the red square over me.<br/><br/>
+ <label for="dropEffect">Expects dropEffect:</label> <code><script>document.write(DROP_EFFECT)</script></code>
+ </div>
+ <div id="message" style="visibility:hidden">The cursor should be <img alt="not-allowed" src="data:image/gif;base64,R0lGODlhEgASAIAAAAAAAP///yH5BAAAAAAALAAAAAASABIAAAIvjA+px6ifmnmM1ijDmlbuuHmAhoWXaTqYKq7sObZw3HwgXd8cPr8yDGxBXEJioAAAOw==">. Is it?</div>
+ </div>
+ <hr/>
+ <p>Items that can be dragged to the drop target:</p>
+ <div id="dragMe" draggable="true">Square</div>
+ <hr/>
+ </div>
+</body>
+</html>
diff --git a/ManualTests/drag-enter-alert.html b/ManualTests/drag-enter-alert.html
new file mode 100644
index 000000000..e563923eb
--- /dev/null
+++ b/ManualTests/drag-enter-alert.html
@@ -0,0 +1,29 @@
+<html>
+<head>
+<script type="text/javascript">
+function test() {
+ if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+
+ var element = document.documentElement;
+ var showAlert = function() {
+ alert('Click OK button.');
+ };
+
+ if (element.addEventListener)
+ element.addEventListener('dragenter', showAlert, false);
+ else
+ element.attachEvent('ondragenter', showAlert);
+}
+</script>
+
+</head>
+<body onload="test()">
+ <p>Do the following and see if Webkit crashes.</p>
+ <ul>
+ <li>Drag the image</li>
+ <li>Click the OK button on the alert box</li>
+ </ul>
+ <img id="dragimage" src="resources/drag-image.png" width="32px" height="32px">
+</body>
+</html>
diff --git a/ManualTests/drag-escape.html b/ManualTests/drag-escape.html
new file mode 100644
index 000000000..ebdf4e798
--- /dev/null
+++ b/ManualTests/drag-escape.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+var expectedEvents = ["dragstart", "dragend"];
+var i = 0;
+
+function recordEvent(e) {
+ log(e.type);
+ if (e.type !== expectedEvents[i]) {
+ log("FAIL - expected " + expectedEvents[i] + " but got " + e.type);
+ } else if (i == expectedEvents.length - 1) {
+ log("SUCCESS");
+ } else {
+ i++;
+ }
+}
+
+
+function log(msg) {
+ var tn = document.createTextNode(msg + "\n");
+ document.getElementById("log").appendChild(tn);
+}
+
+function dragStart(e) {
+ recordEvent(e);
+}
+
+document.ondragend = function(e) {
+ recordEvent(e);
+};
+
+document.ondrop = function(e) {
+ log("FAIL - we should not get a " + e.type);
+};
+
+document.ondragenter = document.ondragover = function(e) {
+ e.preventDefault();
+};
+
+
+</script>
+</head>
+<body>
+ <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=26699">https://bugs.webkit.org/show_bug.cgi?id=26699</a></p>
+
+ <p>Instructions: </p>
+
+ <p>Drag the "Drag Me!" link below</p>
+ <p>Press escape</p>
+
+ <a id="test-link" href="http://webkit.org" ondragstart="dragStart(event)">Drag Me!</a>
+
+ <pre id="log"></pre>
+</body>
+</html>
diff --git a/ManualTests/drag-image-table-part-decorations.html b/ManualTests/drag-image-table-part-decorations.html
new file mode 100644
index 000000000..28aa17595
--- /dev/null
+++ b/ManualTests/drag-image-table-part-decorations.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML>
+<p>
+ When dragging each of the black squares below, the drag image should include
+ only the hollow black square, and no blue background.
+</p>
+<div style="background-color: blue; display: table; height: 100px; width: 100px;"></div>
+<div style="width: 94px; height: 94px; border: solid; -webkit-user-drag: element; margin-top: -50px; margin-bottom: 10px;"></div>
+
+<div style="background-color: blue; display: table-row; height: 100px;"><div style="width: 100px"></div></div>
+<div style="width: 94px; height: 94px; border: solid; -webkit-user-drag: element; margin-top: -50px; margin-bottom: 10px;"></div>
+
+<div style="background-color: blue; display: table-cell; height: 100px; width: 100px;"></div>
+<div style="width: 94px; height: 94px; border: solid; -webkit-user-drag: element; margin-top: -50px; margin-bottom: 10px;"></div>
+
+<fieldset style="background-color: blue; border: none; height: 100px; width: 100px;"><legend></legend></fieldset>
+<div style="width: 94px; height: 94px; border: solid; -webkit-user-drag: element; margin-top: -50px; "></div>
+
+<table style="border-collapse: collapse;"><tr><td style="border-bottom: 100px solid blue; width: 100px;"></td></tr></table>
+<div style="width: 94px; height: 94px; border: solid; -webkit-user-drag: element; margin-top: -50px; "></div>
diff --git a/ManualTests/drag-image-to-address-bar.html b/ManualTests/drag-image-to-address-bar.html
new file mode 100644
index 000000000..8a8c088e9
--- /dev/null
+++ b/ManualTests/drag-image-to-address-bar.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=9952">Bugzilla bug 9952</a> REGRESSION: Repro crash when dragging an image from the window to the address bar</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Drag the image from below to the address bar, then click on the image.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+No crash.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Safari will crash when you drop the image onto the address bar or when you click it.
+</p>
+
+<img src="resources/webkit-background.png"><br><iframe></iframe>
+
+</body>
+</html>
diff --git a/ManualTests/drag-image-to-desktop.html b/ManualTests/drag-image-to-desktop.html
new file mode 100644
index 000000000..abcd395f2
--- /dev/null
+++ b/ManualTests/drag-image-to-desktop.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html>
+<body>
+<span style="">
+<p>This page tests WebKit's behavior when dragging an image with a file extension that doesn't match its MIME type or actual file type
+<p>Prerequisites:<br>
+<ul><li>run the LayoutTest's webserver (WebKitTools/run-webkit-httpd)</ul>
+<p>Steps to test:<br>
+<ol><li>drag and drop the image below to the desktop</ol>
+<img src="http://127.0.0.1:8000/misc/resources/generatedimage.bat" width="88" height="31">
+<p>Expected results:<br>
+The file should have .gif extension <em>(not .bat or .jpg/.jpeg)</em>
+</body>
+</html>
diff --git a/ManualTests/drag-image.html b/ManualTests/drag-image.html
new file mode 100644
index 000000000..580d5e555
--- /dev/null
+++ b/ManualTests/drag-image.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<script>
+function debug(str) {
+ var c = document.getElementById('console')
+ c.appendChild(document.createTextNode(str + '\n'));
+}
+
+var i = new Image()
+i.src ="resources/webkit-background.png";
+
+function dragStartHandler() {
+ event.dataTransfer.setDragImage(i, 10, 10);
+}
+
+</script>
+</head>
+<body onload="runTests();">
+<p>This tests that setting the drag image works. If this is successful, the drag icon when dragging the text below around should look like the image below.</p>
+<img src="resources/webkit-background.png">
+<div ondragstart="dragStartHandler()" style="-khtml-user-select:none; -khtml-user-drag:element;">Try dragging me around!</div>
+<pre id="console">
+</pre>
+</body>
+</html>
diff --git a/ManualTests/drag-move-in-search-field.html b/ManualTests/drag-move-in-search-field.html
new file mode 100644
index 000000000..4bb720aca
--- /dev/null
+++ b/ManualTests/drag-move-in-search-field.html
@@ -0,0 +1,11 @@
+<p>Double-click the word "dolor" to select it, then drag the selection to
+between "lorem" and "ipsum". There should be no assertion failure in a
+debug build.</p>
+
+<input id="foo" type="search" value="lorem ipsum dolor">
+<script>
+function test()
+{
+
+}
+</script>
diff --git a/ManualTests/drag-out-of-background-window.html b/ManualTests/drag-out-of-background-window.html
new file mode 100644
index 000000000..05fa0879d
--- /dev/null
+++ b/ManualTests/drag-out-of-background-window.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=15077">Bugzilla bug 15077</a> REGRESSION: Cannot drag selected text out of a background window</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br>
+1. Select the first line of text in this window.<br>
+2. Switch to another application.<br>
+3. With this window in the background, click and hold inside the selected text,
+then drag the text out of the window.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+This window will not come to the foreground when you click, and you will be able to
+drag the selected text out.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+As soon as you click in the selected text, this window will come to the foreground
+and you may not be able to drag the selected text.
+</p>
+</body>
+</html>
diff --git a/ManualTests/drag-with-div-or-image-as-data-image.html b/ManualTests/drag-with-div-or-image-as-data-image.html
new file mode 100644
index 000000000..1d5a791aa
--- /dev/null
+++ b/ManualTests/drag-with-div-or-image-as-data-image.html
@@ -0,0 +1,55 @@
+<html>
+ <head>
+ <title>Test for WebKit bug 24735: Poor setDragImage support on Windows</title>
+ <style type="text/css">
+
+ .draggable {
+ -webkit-user-drag: element;
+ -webkit-user-select: none;
+ }
+
+ #linkToUseAsImage {
+ background-color: silver;
+ }
+
+ #divToUseAsImage {
+ background-color: pink;
+ }
+
+ </style>
+
+ <script type="text/javascript">
+ function dragDivAndSeeImageDragged()
+ {
+ event.dataTransfer.setDragImage(document.getElementById("imgToUseAsImage"), event.pageX, event.pageY);
+ }
+
+ function dragImageAndSeeDivDragged()
+ {
+ event.dataTransfer.setDragImage(document.getElementById("divToUseAsImage"), event.pageX, event.pageY);
+ }
+ </script>
+ </head>
+ <body >
+ <h3>Test for <a href='https://bugs.webkit.org/show_bug.cgi?id=24735'>WebKit bug 24735</a>: Poor setDragImage support on Windows</h3>
+
+ <p>Instructions: </p>
+ <p>When you drag the first div, the image under the cursor should be of the second image. </p>
+ <p>When you drag the first image, the image under the cursor should be of the second div. </p>
+
+ <br />
+ <br />
+
+ <div class="draggable" ondragstart="dragDivAndSeeImageDragged()"> Drag me, I am a div! (first div)</div>
+ <br />
+ <br />
+ <img src="resources/webkit-background.png" class="draggable" ondragstart="dragImageAndSeeDivDragged()" />
+ <br />
+ <br />
+ <img src="resources/drag-image.png" id="imgToUseAsImage" />
+ <br />
+ <br />
+ <div id="divToUseAsImage"> When a drag is started on the image, this is the div that is used as the drag image! (second div)</div>
+
+ </body>
+</html>
diff --git a/ManualTests/drag_select_highlighting.html b/ManualTests/drag_select_highlighting.html
new file mode 100644
index 000000000..d6f40578b
--- /dev/null
+++ b/ManualTests/drag_select_highlighting.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+<title>Highlight leaves trails</title>
+</head>
+<body>
+<p>Drag across the following line from right to left and all the way back.</p>
+<p style="font-family:'Lucida Grande'; font-size:12px;">
+Curabitur pretium, quam quis semper malesuada, est libero feugiat libero, vel fringilla orci nibh sed neque.
+</p>
+<p>Drag across the following line from left to right and all the way back.</p>
+<p style="font-family:'Lucida Grande'; font-size:12px; text-align:left; direction:rtl; unicode-bidi:bidi-override;">
+Curabitur pretium, quam quis semper malesuada, est libero feugiat libero, vel fringilla orci nibh sed neque.
+</p>
+</body> \ No newline at end of file
diff --git a/ManualTests/drag_with_opacity.html b/ManualTests/drag_with_opacity.html
new file mode 100644
index 000000000..0e4b69b4a
--- /dev/null
+++ b/ManualTests/drag_with_opacity.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<style type="text/css">
+<!--
+.draggable {
+ -khtml-user-drag: element;
+ -apple-dashboard-region:dashboard-region(control rectangle);
+}
+
+.draggable:hover {
+ background: #cccccc;
+}
+
+.draggable:-khtml-drag {
+ opacity: 0.50;
+}
+-->
+</style>
+</head>
+<body>
+ <p>This is the test case for crashing bug &lt;rdar://problem/4234658&gt;<p>
+ <table width="100%" border="1" cellspacing="0" cellpadding="0">
+ <tr>
+ <td>
+ <div class="draggable">Click to right of this text and drag</div>
+ </td>
+ </tr>
+ </table>
+</body>
+</html>
diff --git a/ManualTests/drop-in-empty-doc.html b/ManualTests/drop-in-empty-doc.html
new file mode 100644
index 000000000..eae14f863
--- /dev/null
+++ b/ManualTests/drop-in-empty-doc.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+<body>
+<p>Click <a href="javascript:window.open('resources/drop-in-empty-doc.xhtml')">here</a> to open a new window. Drag and drop a file over the new window. It should not crash.
+</body>
+</html>
diff --git a/ManualTests/drop-text-acquires-style.html b/ManualTests/drop-text-acquires-style.html
new file mode 100644
index 000000000..602c76086
--- /dev/null
+++ b/ManualTests/drop-text-acquires-style.html
@@ -0,0 +1,11 @@
+<html>
+<head>
+<title>Dragging plain text into a styled region</title>
+</head>
+<body>
+<p>This test ensures the plain text dropped into a styled text region will acquire the appropriate style</p>
+<p>To run this test, drag the text in the input element below into the bold text region. The dropped text should be bold.</p>
+<input id="dragme" value="Drag this text" ><br />
+<b contenteditable="true" id="target">Drag the text from the above input element into this bold text</b>
+</body>
+</html>
diff --git a/ManualTests/editing-disabled-node-replace-crash.html b/ManualTests/editing-disabled-node-replace-crash.html
new file mode 100644
index 000000000..970ccb679
--- /dev/null
+++ b/ManualTests/editing-disabled-node-replace-crash.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <title>Replacing text should not crash.</title>
+</head>
+<body>
+ <p>Manual test for fix <a href="https://bugs.webkit.org/show_bug.cgi?id=75941">Bug 75941</a></p>
+ <p>Right click the following input text, and replace the misspelled text [zz] to something.</p>
+ <p>Renderer should not crash in that operation.</p>
+ <input id="input" disabled value="zz">
+</body>
+</html>
diff --git a/ManualTests/empty-link-target.html b/ManualTests/empty-link-target.html
new file mode 100644
index 000000000..06ccd0c72
--- /dev/null
+++ b/ManualTests/empty-link-target.html
@@ -0,0 +1,28 @@
+<html>
+<head><script>
+function print(message) {
+ var paragraph = document.createElement("p");
+ paragraph.appendChild(document.createTextNode(message));
+ document.getElementById("console").appendChild(paragraph);
+}
+
+function test()
+{
+ if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+
+ var e = document.createEvent("MouseEvents");
+ e.initEvent("click", true, false);
+ document.getElementById('a').dispatchEvent(e);
+ print("PASS");
+}
+</script></head>
+
+<body onload="test()">
+<p>Bug: <a href="http://bugs.webkit.org/show_bug.cgi?id=6382">REGRESSION: Repro crash when clicking link with target="_blank"</a></p>
+<p>If the test passes, you will see a PASS message below. (It's normal for a new window to open.)</p>
+<hr>
+<a id="a" href="resources/popup200x200.html" target="_blank"></a>
+<div id='console'/>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/empty-script-crash.html b/ManualTests/empty-script-crash.html
new file mode 100644
index 000000000..5605ff9e6
--- /dev/null
+++ b/ManualTests/empty-script-crash.html
@@ -0,0 +1,6 @@
+This document used to crash when loaded as the very first document in
+a Safari instance to use JavaScript. It can't be a meaningful layout
+test since it would get loaded after many other documents that ran
+scripts.
+<script>
+</script>
diff --git a/ManualTests/empty-title-popup.html b/ManualTests/empty-title-popup.html
new file mode 100644
index 000000000..cb6ea8c6c
--- /dev/null
+++ b/ManualTests/empty-title-popup.html
@@ -0,0 +1,3 @@
+<p>This demonstrates <a href="http://bugs.webkit.org/show_bug.cgi?id=9833">bug 9833</a>.</p>
+<p>Select the second item on the pop up.
+<select><option></option><option>Pick me!</option></select></p>
diff --git a/ManualTests/eventsource/eventsource-loader-buffering.html b/ManualTests/eventsource/eventsource-loader-buffering.html
new file mode 100644
index 000000000..896b7908c
--- /dev/null
+++ b/ManualTests/eventsource/eventsource-loader-buffering.html
@@ -0,0 +1,54 @@
+<!doctype html>
+<html>
+<head>
+<title>EventSource Loader Buffering</title>
+<script>
+window.onload = function () {
+ setTimeout(test_es, 500);
+};
+
+function test_es() {
+ var len = 0;
+ var count = 0;
+ var step = 1000;
+ var es = new EventSource("eventsource-loader-buffering.php");
+ es.onopen = function () {
+ log("got 'open' event");
+ log("waiting for the first " + step + " 'message' events");
+ };
+ es.onmessage = function (evt) {
+ len += evt.data.length;
+ if (++count % step)
+ return;
+ log("got " + count + " 'message' events (" + len + " characters)", 1);
+ if (len >= 1e9)
+ end();
+ };
+ es.onerror = function () {
+ log("got 'error' event");
+ end();
+ };
+ function end() {
+ if (es.readyState != es.CLOSED)
+ es.close();
+ log("ENDED");
+ };
+}
+
+function log(message, updateLast) {
+ if (!log.list)
+ log.list = document.getElementById("log");
+ var text = document.createTextNode(message);
+ if (updateLast)
+ log.list.lastChild.replaceChild(text, log.list.lastChild.firstChild);
+ else
+ log.list.appendChild(document.createElement("li")).appendChild(text);
+}
+</script>
+</head>
+<body>
+<p>Manual test to verify that the EventSource loader does not buffer data (may result in memory growth with long lived connections). Monitor memory usage; it should be stable. This file has to be served from the same web server as the php script with the same name.</p>
+<ul id="log" style="list-style-type: none"></ul>
+</body>
+</html>
+
diff --git a/ManualTests/eventsource/eventsource-loader-buffering.php b/ManualTests/eventsource/eventsource-loader-buffering.php
new file mode 100644
index 000000000..fe2c86f7b
--- /dev/null
+++ b/ManualTests/eventsource/eventsource-loader-buffering.php
@@ -0,0 +1,13 @@
+<?php
+header("Content-Type: text/event-stream");
+
+$data = "";
+for ($i = 0; $i < 1000; $i++)
+ $data .= "x";
+
+for ($i = 0; $i < 30000; $i++) {
+ echo "data: $data\n\n";
+ flush();
+ usleep(1000);
+}
+?>
diff --git a/ManualTests/filters/opacity-above-filter.html b/ManualTests/filters/opacity-above-filter.html
new file mode 100644
index 000000000..ecac0bc43
--- /dev/null
+++ b/ManualTests/filters/opacity-above-filter.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style>
+
+ .container {
+ opacity: 0.8;
+ margin: 10px;
+ }
+
+ .filtered {
+ width: 100px;
+ height: 100px;
+ background-color: blue;
+ -webkit-filter: blur(10px);
+ }
+ </style>
+</head>
+<body>
+ <a href="https://bugs.webkit.org/show_bug.cgi?id=76329">https://bugs.webkit.org/show_bug.cgi?id=76329</a>
+ <p>Open this test in Safari, and hit Command-F to Find. A debug build should not assert.</p>
+ <div class="container">
+ <div class="filtered box"></div>
+ </div>
+</body>
+</html>
diff --git a/ManualTests/find-count-matches-after-text-control.html b/ManualTests/find-count-matches-after-text-control.html
new file mode 100644
index 000000000..738be8c62
--- /dev/null
+++ b/ManualTests/find-count-matches-after-text-control.html
@@ -0,0 +1,14 @@
+<p>
+ Test that text matches are counted correctly when a match occurs inside a text field.
+</p>
+<p>
+ To test:
+ <ol>
+ <li>Choose Edit > Find > Find</li>
+ <li>In the Find field, type &ldquo;lemon&rdquo;
+ </ol>
+</p>
+<p>
+ The test passes if the Find banner says &ldquo;3 matches&rdquo;.
+</p>
+<input value="a lemon in a text field"> and another lemon.
diff --git a/ManualTests/first-line-style-crash.html b/ManualTests/first-line-style-crash.html
new file mode 100644
index 000000000..4758b1ee4
--- /dev/null
+++ b/ManualTests/first-line-style-crash.html
@@ -0,0 +1,23 @@
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="resources/aFileThatProbablyDoesNotExist.css">
+<style type="text/css">
+ div:first-line { color: green; }
+</style>
+</head>
+<body>
+ <p>
+ Regression test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=8760">http://bugs.webkit.org/show_bug.cgi?id=8760</a>
+ crash (hang?) on subtlegradient.com article page</i>.
+ </p>
+ <p>
+ No crash means test PASS.
+ </p>
+ <hr>
+ <div>
+ <span id="t">Lorem ipsum</span>
+ </div>
+ <script type="text/javascript">
+ document.getElementById("t").offsetTop;
+ </script>
+</body>
diff --git a/ManualTests/fixed-position-no-z-index.html b/ManualTests/fixed-position-no-z-index.html
new file mode 100644
index 000000000..4c0b7154d
--- /dev/null
+++ b/ManualTests/fixed-position-no-z-index.html
@@ -0,0 +1,25 @@
+<html>
+<head>
+<style>
+.back { z-index: -1; position: absolute; width:1000px; height:1000px;}
+.d1 { position:fixed; top:0; left:0; width:1000px; height:1000px;}
+.d2 { margin: 30px 40% 20px 20%; position: relative; z-index: 5;}
+body { margin: 0px; }
+</style>
+</head>
+<body>
+<div class="d1"><img class="back" src="resources/simple_image.png">
+</div>
+<div class="d2">
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.<br>
+
+</div>
+</body></html>
diff --git a/ManualTests/fixed-position.html b/ManualTests/fixed-position.html
new file mode 100644
index 000000000..a4d3e2224
--- /dev/null
+++ b/ManualTests/fixed-position.html
@@ -0,0 +1,92 @@
+<html><head>
+
+<meta content="text/html; charset=windows-1251" http-equiv="Content-Type">
+<style>
+.d1{position:fixed;top:50%;right:50%;z-index:2;overflow:hidden;}
+.d2{position:fixed;bottom:5em;left:50;z-index:2;overflow:hidden;}
+.o {background:green;height:40px;width:200px;}
+.t { width:2000px; height:198px;background-color: lightgray; border: 1px solid blue;}
+body { margin: 0px; }
+</style>
+<script>
+function remove_fixed()
+{
+ document.getElementById("d1").style.position = "static";
+}
+
+function change_fixed()
+{
+ document.getElementById("d2").style.bottom = "10em";
+}
+
+</script>
+</head>
+<body class="Gradient">
+<div class="d1" id="d1"><div class="o">This is a test</div></div>
+<div class="d2" id="d2"><div class="o">This is a test</div></div>
+<div class="t" onclick="remove_fixed();">
+000
+</div>
+<div class="t">
+200<br>
+<button onclick="remove_fixed();">remove fixed</button>
+</div>
+<div class="t">
+400<br>
+<button onclick="change_fixed();">change fixed</button>
+</div>
+<div class="t">
+600
+</div>
+<div class="t">
+800
+</div>
+<div class="t">
+1000
+</div>
+<div class="t">
+1200
+</div>
+<div class="t">
+1400
+</div>
+<div class="t">
+1600
+</div>
+<div class="t">
+1800
+</div>
+<div class="t">
+2000
+</div>
+<div class="t">
+2200
+</div>
+<div class="t">
+2400
+</div>
+<div class="t">
+2600
+</div>
+<div class="t">
+2800
+</div>
+<div class="t">
+3000
+</div>
+<div class="t">
+3200
+</div>
+<div class="t">
+3400
+</div>
+<div class="t">
+3600
+</div>
+<div class="t">
+3800
+</div>
+<div class="t">
+4000
+</div>
+</body></html>
diff --git a/ManualTests/flash-unload-tab.html b/ManualTests/flash-unload-tab.html
new file mode 100644
index 000000000..0ba1cf1f0
--- /dev/null
+++ b/ManualTests/flash-unload-tab.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body onload="start()" onunload="test()">
+ <p>
+ <p><b>Bug 14207 : </b>
+ <a href="http://bugs.webkit.org/show_bug.cgi?id=14207">REGRESSION: Crash after closing a tab with Google Maps Street View</a></p>
+
+ <p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+ Open a new tab then close this tab.
+ </p>
+
+ <p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+ Expected : The tab is closed.
+ </p>
+
+ <p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+ If the test FAILS : The webkit crashes.
+ </p>
+ </p>
+ <embed id="target" src="resources/spinbox.swf">
+ <script>
+ var embed;
+
+ function start()
+ {
+ embed = document.getElementById("target");
+ embed.bar;
+ }
+
+ function test()
+ {
+ embed.foo;
+ }
+ </script>
+</body>
+</html>
diff --git a/ManualTests/flipped-text-rendering.html b/ManualTests/flipped-text-rendering.html
new file mode 100644
index 000000000..197e4b319
--- /dev/null
+++ b/ManualTests/flipped-text-rendering.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<html>
+<head>
+<title>Flipped text in link drag image</title>
+</head>
+<body>
+<p>Try dragging each of the following links. In each case, the link text should appear correctly (not flipped) in the
+drag image, above the URL.</p>
+<p>There are three separate code paths, due to the canUseFastRenderer and shouldUseATSU functions.</p>
+<p>WebKit renderer, using CG: <a href="/">Drag me to your leader</a></p>
+<p>WebKit renderer, using ATSUI because of the &#x905;: <a href="/">Drag me &#x0905; to your leader</a></p>
+<p>Cocoa, because of the &#x05d0;: <a href="/">Drag me &#x05d0; to your leader</a></p>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/focus-change-between-key-events.html b/ManualTests/focus-change-between-key-events.html
new file mode 100644
index 000000000..8ceb57512
--- /dev/null
+++ b/ManualTests/focus-change-between-key-events.html
@@ -0,0 +1,24 @@
+<body onload="document.getElementById('dummy').focus();">
+<iframe src="data:text/html,<body onload='document.getElementsByTagName(&quot;input&quot;)[0].focus()'><input></body>" id=victim name=victim>
+</iframe>
+<script>
+
+var cur_pos = 0;
+
+function maybe_redirect(e) {
+ var evt = window.event ? event : e;
+ var cc = evt.charCode ? evt.charCode : evt.keyCode;
+
+ document.getElementById('victim').focus();
+ frames['victim'].focus();
+
+ document.getElementById('dummy').value += String.fromCharCode(cc).toLowerCase();
+
+ setTimeout('focus();document.getElementById("dummy").focus()',1);
+}
+
+
+</script>
+<p>Type some text. It should only appear in the below input field.</p>
+<input type=text onkeydown="maybe_redirect(event)" id=dummy>
+</body>
diff --git a/ManualTests/focus-select-when-clicked.html b/ManualTests/focus-select-when-clicked.html
new file mode 100644
index 000000000..3f1e79894
--- /dev/null
+++ b/ManualTests/focus-select-when-clicked.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4011544">4011544</a> selecting an item from a select menu with the mouse doesn't place the focus on the menu</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br>
+1. Click on the pop-up menu below titled "Click Here", and select OPTION 1 from the list. <br>
+2. Verify that a blue focus ring is drawn around the pop-up menu. <br>
+3. Press tab, and verify that focus moves to TEXT AREA 2 <br></p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Blue focus ring is drawn around the pop-up menu when clicked, then focus moves to TEXT AREA 2 after pressing tab.</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+No blue focus ring drawn around the pop-up menu when clicked, or after selecting OPTION 1 from the list. After selecting option 1 and pressing tab, focus will land on the first focusable element on the page.
+</p>
+
+<input type="text" value="TEXT AREA 1">
+<select>
+ <option>Click Here</option>
+ <option>OPTION 1</option>
+</select>
+<input type="text" value="TEXT AREA 2">
+
+</body>
+</html>
diff --git a/ManualTests/focusringcolor-change-on-theme-change.html b/ManualTests/focusringcolor-change-on-theme-change.html
new file mode 100644
index 000000000..ca12fe671
--- /dev/null
+++ b/ManualTests/focusringcolor-change-on-theme-change.html
@@ -0,0 +1,8 @@
+<input value="Click on me! Focus ring color around this input element should change." style="width:100%">
+<ul>
+<li>Select the input element above.</li>
+<li>Change the system focus ring color.<br>On OS X you can do this by going to System Preferences-&gt;Appearance and selecting another value in the Appearance popup menu.</li>
+<li>Make Safari the active application again.</li>
+</ul>
+
+<p>The tests passes if the focus ring around the input element changes color.</p>
diff --git a/ManualTests/form-control-madness.html b/ManualTests/form-control-madness.html
new file mode 100644
index 000000000..30dac2b21
--- /dev/null
+++ b/ManualTests/form-control-madness.html
@@ -0,0 +1,46 @@
+<input name="b" type="button" onclick="location='back.html'" value="Click Here">
+
+<br>
+Only the radio buttons between X's should be checked after clicking the button and going back
+<form>
+<input type="radio" name="old_version" value="12">
+<input type="radio" name="version" value="12">
+
+X<input type="radio" name="old_version" value="11" checked="checked"> X
+<input type="radio" name="version" value="11">
+
+<input type="radio" name="old_version" value="10">
+X<input type="radio" name="version" value="10" checked="checked">X
+
+<input type="radio" name="old_version" value="9">
+<input type="radio" name="version" value="9">
+
+<input type="radio" name="old_version" value="8">
+<input type="radio" name="version" value="8">
+
+<input type="radio" name="old_version" value="7">
+<input type="radio" name="version" value="7">
+
+<input type="radio" name="old_version" value="6">
+<input type="radio" name="version" value="6">
+
+<input type="radio" name="old_version" value="5">
+<input type="radio" name="version" value="5">
+
+<input type="radio" name="old_version" value="4">
+<input type="radio" name="version" value="4">
+
+<input type="radio" name="old_version" value="3">
+<input type="radio" name="version" value="3">
+
+<input type="radio" name="old_version" value="2">
+<input type="radio" name="version" value="2">
+
+<input type="radio" name="old_version" value="1">
+<input type="radio" name="version" value="1">
+
+<input type="radio" name="old_version" value="0">
+<input type="radio" name="version" value="0">
+</form>
+<br>
+<iframe></iframe> \ No newline at end of file
diff --git a/ManualTests/form-element-spelling.html b/ManualTests/form-element-spelling.html
new file mode 100644
index 000000000..805dddcad
--- /dev/null
+++ b/ManualTests/form-element-spelling.html
@@ -0,0 +1,6 @@
+<html>
+<body>
+ <textarea>Helo everibody</textarea><input type="text" value="Helo everibody">
+ <p>Test that it's possible to do spell-checking in the two elements above. Choose "Check Spelling" or "Spelling..." from the contextual menu and verify that both work.</p>
+</body>
+</html>
diff --git a/ManualTests/form-value-restore.html b/ManualTests/form-value-restore.html
new file mode 100644
index 000000000..7b065af46
--- /dev/null
+++ b/ManualTests/form-value-restore.html
@@ -0,0 +1,9 @@
+<p>This tests if form values get their values properly restored when you go back.
+To test, use the Debug menu to turn off "Use Back/Forward Cache".
+Then, type "a" into the first field below, type "b" into the second field, and select both "c" and "d" in the list box.
+Then, click on <a href="about:blank">this link</a> to go to a blank page.
+Then go back.
+Check that the form elements have the values that selected.</p>
+<div><input type="text" name="text-input"></div>
+<div><textarea></textarea></div>
+<div><select multiple size=5><option>a</option><option>b</option><option>c</option><option>d</option><option>e</option><option>f</option><option>g</option></select></div>
diff --git a/ManualTests/forms/calendar-picker-crash-by-type-change.html b/ManualTests/forms/calendar-picker-crash-by-type-change.html
new file mode 100644
index 000000000..7be901b63
--- /dev/null
+++ b/ManualTests/forms/calendar-picker-crash-by-type-change.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<script>
+var input = document.createElement('input')
+input.type = 'date'
+var event = document.createEvent('KeyboardEvent')
+event.initKeyboardEvent('keydown', false, false, null, 'Down')
+input.dispatchEvent(event)
+input.type = 'color'
+</script>
+<p>Success if the browser didn't crash.</p>
diff --git a/ManualTests/forms/calendar-picker.html b/ManualTests/forms/calendar-picker.html
new file mode 100644
index 000000000..438eb6f6f
--- /dev/null
+++ b/ManualTests/forms/calendar-picker.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Calendar Picker test</title>
+<style>
+body {
+ background-color: #eeffff;
+}
+iframe {
+ z-index: 2147483647;
+ width: 100px;
+ height: 100px;
+ border: 0;
+ overflow: hidden;
+}
+</style>
+</head>
+<body>
+
+<p>This is a testbed for a calendar picker.</p>
+<select onchange="selected(this)">
+ <option>English</option>
+ <option>Japanese</option>
+ <option>Arabic</option>
+</select>
+
+<div><input type="text" id="date"></div>
+<iframe></iframe>
+
+<ol id="console" style="font-family:monospace;">
+</ol>
+
+<script>
+var englishArguments = {
+ locale: 'en-US',
+ monthLabels : ['January', 'February', 'March', 'April', 'May', 'June',
+ 'July', 'August', 'September', 'October', 'November', 'December'],
+ dayLabels : ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
+ todayLabel : 'Today',
+ clearLabel : 'Clear',
+ cancelLabel : 'Cancel',
+ weekStartDay : 0,
+ step : 1,
+ max : '2099-12-31',
+};
+var japaneseArguments = {
+ locale: 'ja-JP',
+ monthLabels : ['1月', '2月', '3月', '4月', '5月', '6月',
+ '7月', '8月', '9月', '10月', '11月', '12月'],
+ dayLabels : ['æ—¥', '月', 'ç«', 'æ°´', '木', '金', '土'],
+ todayLabel : '今日',
+ clearLabel : 'クリア',
+ cancelLabel : 'å–り消ã—',
+ weekStartDay : 0,
+ step : 1,
+ max : '2099-03-15',
+};
+var arabicArguments = {
+ locale: 'ar',
+ isRTL: true,
+ monthLabels : ['يناير', 'Ùبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',
+ 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'],
+ dayLabels : ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+ todayLabel : 'اليوم',
+ clearLabel : 'مسح',
+ weekStartDay : 5,
+ step : 1,
+ max : '2020-05-15',
+};
+
+function openCalendar(args) {
+ var frame = document.getElementsByTagName('iframe')[0];
+ var doc = frame.contentDocument;
+ doc.documentElement.innerHTML = '<head></head><body><div id=main>Loading...</div></body>';
+ var commonCssLink = doc.createElement('link');
+ commonCssLink.rel = 'stylesheet';
+ commonCssLink.href = '../../Source/WebCore/Resources/pagepopups/pickerCommon.css?' + (new Date()).getTime();
+ doc.head.appendChild(commonCssLink);
+ var link = doc.createElement('link');
+ link.rel = 'stylesheet';
+ link.href = '../../Source/WebCore/Resources/pagepopups/calendarPicker.css?' + (new Date()).getTime();
+ doc.head.appendChild(link);
+ var commonJsScript = doc.createElement('script');
+ commonJsScript.src = '../../Source/WebCore/Resources/pagepopups/pickerCommon.js?' + (new Date()).getTime();
+ doc.body.appendChild(commonJsScript);
+ var script = doc.createElement('script');
+ script.src = '../../Source/WebCore/Resources/pagepopups/calendarPicker.js?' + (new Date()).getTime();
+ doc.body.appendChild(script);
+
+ var pagePopupController = {
+ setValueAndClosePopup: function(numValue, stringValue) {
+ window.log('number=' + numValue + ', string="' + stringValue + '"');
+ if (numValue == 0)
+ window.document.getElementById('date').value = stringValue;
+ },
+ localizeNumberString: function(numString) {
+ if (typeof numString == "number")
+ return numString.toLocaleString();
+ return numString.toString();
+ }
+ }
+
+ setTimeout(function() {
+ frame.contentWindow.postMessage(JSON.stringify(args), "*");
+ frame.contentWindow.pagePopupController = pagePopupController;
+ }, 100);
+}
+
+function selected(select) {
+ var frame = document.getElementsByTagName('iframe')[0];
+ frame.style.width = '100px';
+ frame.style.height = '100px';
+ switch (select.selectedIndex) {
+ case 0:
+ openCalendar(englishArguments);
+ break;
+ case 1:
+ openCalendar(japaneseArguments);
+ break;
+ case 2:
+ openCalendar(arabicArguments);
+ break;
+ }
+}
+
+function log(str) {
+ var entry = document.createElement('li');
+ entry.innerText = str;
+ document.getElementById('console').appendChild(entry);
+}
+
+openCalendar(englishArguments);
+</script>
+</body>
+</html>
diff --git a/ManualTests/forms/color-suggestion-picker.html b/ManualTests/forms/color-suggestion-picker.html
new file mode 100644
index 000000000..ded4e7cb7
--- /dev/null
+++ b/ManualTests/forms/color-suggestion-picker.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Color Suggestion Picker test</title>
+<style>
+body {
+ background-color: #eeffff;
+}
+iframe {
+ z-index: 2147483647;
+ width: 180px;
+ height: 240px;
+ border: 0;
+ overflow: hidden;
+}
+</style>
+</head>
+<body>
+
+<p>This is a testbed for a color suggestion picker.</p>
+
+<div><input type="color" id="color"></div>
+<iframe></iframe>
+
+<ol id="console" style="font-family:monospace;">
+</ol>
+
+<script>
+var arguments = {
+ values : ['#000000', '#404040', '#808080', '#c0c0c0', '#ffffff', '#980000', '#ff0000', '#ff9900', '#ffff00', '#00ff00', '#00ffff', '#4a86e8', '#0000ff', '#9900ff', '#ff00ff', '#404040', '#808080', '#c0c0c0', '#ffffff', '#980000', '#ff0000', '#ff9900', '#ffff00', '#00ff00', '#00ffff', '#4a86e8', '#0000ff', '#9900ff', '#ff00ff'],
+ otherColorLabel: 'Other...'
+};
+
+function openColorPicker(args) {
+ var frame = document.getElementsByTagName('iframe')[0];
+ var doc = frame.contentDocument;
+ doc.documentElement.innerHTML = '<head></head><body><div id=main>Loading...</div></body>';
+ var commonCssLink = doc.createElement('link');
+ commonCssLink.rel = 'stylesheet';
+ commonCssLink.href = '../../Source/WebCore/Resources/pagepopups/pickerCommon.css?' + (new Date()).getTime();
+ doc.head.appendChild(commonCssLink);
+ var link = doc.createElement('link');
+ link.rel = 'stylesheet';
+ link.href = '../../Source/WebCore/Resources/pagepopups/colorSuggestionPicker.css?' + (new Date()).getTime();
+ doc.head.appendChild(link);
+ var commonJsScript = doc.createElement('script');
+ commonJsScript.src = '../../Source/WebCore/Resources/pagepopups/pickerCommon.js?' + (new Date()).getTime();
+ doc.body.appendChild(commonJsScript);
+ var script = doc.createElement('script');
+ script.src = '../../Source/WebCore/Resources/pagepopups/colorSuggestionPicker.js?' + (new Date()).getTime();
+ doc.body.appendChild(script);
+
+ var pagePopupController = {
+ setValueAndClosePopup: function(numValue, stringValue) {
+ window.log('number=' + numValue + ', string="' + stringValue + '"');
+ if (numValue === 0)
+ window.document.getElementById('color').value = stringValue;
+ }
+ }
+
+ setTimeout(function() {
+ frame.contentWindow.postMessage(JSON.stringify(args), "*");
+ frame.contentWindow.pagePopupController = pagePopupController;
+ }, 100);
+}
+
+function log(str) {
+ var entry = document.createElement('li');
+ entry.innerText = str;
+ document.getElementById('console').appendChild(entry);
+}
+
+openColorPicker(arguments);
+</script>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/frame-hover.html b/ManualTests/frame-hover.html
new file mode 100644
index 000000000..c4612953f
--- /dev/null
+++ b/ManualTests/frame-hover.html
@@ -0,0 +1,5 @@
+<body>
+<p style="height: 50px;">Move the mouse pointer into the yellow box, then directly into the green box, then out of both boxes. No red or cyan should remain, only yellow and green.</p>
+<iframe src="resources/hover-subframe-1.html" frameborder="0" height="300" scrolling="no" width="200"></iframe><iframe src="resources/hover-subframe-2.html" frameborder="0" height="300" scrolling="no" width="200"></iframe>
+</body>
+</html>
diff --git a/ManualTests/frame-layout-on-back.html b/ManualTests/frame-layout-on-back.html
new file mode 100644
index 000000000..21ad445c6
--- /dev/null
+++ b/ManualTests/frame-layout-on-back.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+<script>
+
+function navigate()
+{
+ if (location.hash == "") {
+ if (window.layoutTestController) {
+ layoutTestController.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
+ layoutTestController.waitUntilDone();
+ }
+
+ history.pushState({ }, "", window.location + "#1");
+ setTimeout("window.location.href = 'resources/empty-document-goes-back.html'", 0);
+ return;
+ }
+
+ setTimeout(function () {
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ }, 0);
+}
+
+</script>
+</head>
+<body style="width:800px" onpageshow="navigate();">
+ <div id="result">This test passes if the iframe lays out and paints (meaning it is purple) after the test naviagtes back.</div><br/><br/>
+ <iframe id="iframe" src="resources/simple-iframe.html"></iframe>
+</body>
+</htmL>
diff --git a/ManualTests/frames/nested-iframe-blit-on-scroll.html b/ManualTests/frames/nested-iframe-blit-on-scroll.html
new file mode 100644
index 000000000..6d4d30ef9
--- /dev/null
+++ b/ManualTests/frames/nested-iframe-blit-on-scroll.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+ <style type="text/css">
+ iframe {
+ position: relative;
+ z-index: 1;
+ left: 10px;
+ top: 10px;
+ border: 1px solid black;
+ }
+
+ #overlap {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ z-index: 2;
+ left: 10px;
+ top: 100px;
+ background-color: blue;
+ }
+ p {
+ margin-top: 50px;
+ }
+ </style>
+</head>
+<body>
+<div id="overlap"></div>
+<iframe id="frame" src="resources/blit-on-scroll-subframe.html" scrolling="no"></iframe>
+<p>The blue box should not get "smeared" when you scroll the inner iframe.</p>
+</body>
+</html>
diff --git a/ManualTests/frames/resources/blit-on-scroll-subframe.html b/ManualTests/frames/resources/blit-on-scroll-subframe.html
new file mode 100644
index 000000000..b0dc4b9eb
--- /dev/null
+++ b/ManualTests/frames/resources/blit-on-scroll-subframe.html
@@ -0,0 +1,10 @@
+<style type="text/css" media="screen">
+ iframe {
+ border: 1px solid black;
+ }
+
+ body {
+ height: 1000px;
+ }
+</style>
+<iframe id="subframe" src="blit-on-scroll-subsubframe.html" width="280" height="250"></iframe>
diff --git a/ManualTests/frames/resources/blit-on-scroll-subsubframe.html b/ManualTests/frames/resources/blit-on-scroll-subsubframe.html
new file mode 100644
index 000000000..908409644
--- /dev/null
+++ b/ManualTests/frames/resources/blit-on-scroll-subsubframe.html
@@ -0,0 +1,10 @@
+<style type="text/css" media="screen">
+ iframe {
+ padding: 10px;
+ }
+
+ body {
+ background-color: gray;
+ height: 1000px;
+ }
+</style>
diff --git a/ManualTests/full-screen-keypress.html b/ManualTests/full-screen-keypress.html
new file mode 100644
index 000000000..716306de3
--- /dev/null
+++ b/ManualTests/full-screen-keypress.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<script>
+ function enterFullScreen() {
+ var element = document.getElementById("fullscreen");
+ element.innerText = "Press the space bar.";
+
+ var consoleDiv = document.getElementById("console");
+ consoleDiv.innerHTML = "<span style='color:red'>FAIL</span>";
+
+ document.addEventListener("keydown", function(event) {
+ consoleDiv.innerHTML = "<span style='color:green'>PASS</span>";
+ document.webkitCancelFullScreen();
+ }, true);
+
+ element.addEventListener("webkitfullscreenchange", function(event) {
+ if (!document.webkitIsFullScreen)
+ element.innerText = "";
+ }, false);
+
+ element.webkitRequestFullScreen();
+ }
+</script>
+<p>This test checks that keyboard events are received by an element in full screen mode. To run the test, press the 'Enter Full Screen' button then press the space bar. The test passes if the element exists full screen and you see the word 'PASS' below.</p>
+<button onclick="enterFullScreen()">Enter Full Screen</button>
+<div id="fullscreen"></div>
+<div id="console"></div> \ No newline at end of file
diff --git a/ManualTests/fullscreen/full-screen-flash.html b/ManualTests/fullscreen/full-screen-flash.html
new file mode 100644
index 000000000..982fe65df
--- /dev/null
+++ b/ManualTests/fullscreen/full-screen-flash.html
@@ -0,0 +1,28 @@
+<style>
+ body { background: green; color: white; }
+ document:-webkit-full-screen-document > body { background: red; }
+ span { text-decoration: underline; cursor: hand; }
+ div {
+ background: blue;
+ width: 200px;
+ height: 100px;
+ }
+ div:-webkit-full-screen {
+ width: 100%;
+ height: 100%;
+ }
+</style>
+<script>
+function toggleFullScreen() {
+ if (document.webkitIsFullScreen)
+ document.webkitCancelFullScreen();
+ else
+ document.getElementsByTagName('div')[0].webkitRequestFullscreen();
+}
+</script>
+<body>
+ This tests that the page does not have a visible "flash" when finishing the exit full screen animation.
+ <span onclick="toggleFullScreen()">Click to toggle full screen.</span>
+ <div>
+ </div>
+</body> \ No newline at end of file
diff --git a/ManualTests/fullscreen/full-screen-zero-width.html b/ManualTests/fullscreen/full-screen-zero-width.html
new file mode 100644
index 000000000..f436b589c
--- /dev/null
+++ b/ManualTests/fullscreen/full-screen-zero-width.html
@@ -0,0 +1,17 @@
+<style>
+ div { width: 0px; }
+ span { text-decoration: underline; cursor: hand; }
+</style>
+<script>
+function toggleFullScreen() {
+ if (document.webkitIsFullScreen)
+ document.webkitCancelFullScreen();
+ else
+ document.getElementsByTagName('div')[0].webkitRequestFullscreen();
+}
+</script>
+<body>
+ This tests that an element with a 0px width will not cause the window to disappear when entering full screen. <span onclick="toggleFullScreen()">Click to toggle full screen.</span>
+ <div>
+ </div>
+</body> \ No newline at end of file
diff --git a/ManualTests/go-back-after-alert.html b/ManualTests/go-back-after-alert.html
new file mode 100644
index 000000000..b3a1e1a54
--- /dev/null
+++ b/ManualTests/go-back-after-alert.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+This tests a bug where going back just before putting up an alert can lead to a crash.
+<hr>
+<a href="resources/alert-and-go-back.html">Click this link to run the test.</a>
+</body>
+</html>
diff --git a/ManualTests/goBack-blank-tab-page.html b/ManualTests/goBack-blank-tab-page.html
new file mode 100644
index 000000000..7a6157e64
--- /dev/null
+++ b/ManualTests/goBack-blank-tab-page.html
@@ -0,0 +1,19 @@
+<html>
+<body>
+<a href="resources/before-go-back.html" target="_blank">
+Link to open in a tab</a>
+<br>
+<br>
+<u>Manual test :</u>
+<br>
+You need to open the above link in a new tab. In the opened page, just click on the link : if the webkit doesn't crash, the test has succeed.
+<br>
+<u>Details :</u>
+<br>
+This test checks if you can go back to a _blank-target previously tab-opened page.
+<br>
+If the webkit doesn't meet an assertion error : this test is Successfull.
+<br>
+When you click on the above link, one page (with _blank target) is loaded and this page will open a link and go back.
+</body>
+</html>
diff --git a/ManualTests/gtk/caret-browsing.html b/ManualTests/gtk/caret-browsing.html
new file mode 100644
index 000000000..182b043dd
--- /dev/null
+++ b/ManualTests/gtk/caret-browsing.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<p>Manual test for Caret Browsing. Resize your window until the first paragraph fills at least two lines of text . Enable caret browsing mode (usually by pressing theF7 key). Press down. Now you should be on the second line of the first paragraph. Press up. Now you should be on the first line again. Now press Ctrl+Down.</p>
+<p>You should be on the first line of the second paragraph now. Press Ctrl+Down again.</p>
+<p>You should be on the first line of the third paragraph now. Press Ctrl+Up, and you should be back on the second paragraph.</p>
+</body>
+</html>
diff --git a/ManualTests/gtk/copy-htmltext.html b/ManualTests/gtk/copy-htmltext.html
new file mode 100644
index 000000000..0b811f6f4
--- /dev/null
+++ b/ManualTests/gtk/copy-htmltext.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>Copy HTML content</title>
+ </head>
+ <body>
+ <h1>Copy HTML content from currently editable area</h1>
+ <div title="EditableArea" contentEditable="true"
+ style="display: block; border: 2px solid black; margin: 5px; padding: 15px;">
+ Here is a Editable Area,<br />
+ <img title="It's the test image" src="http://webkit.org/images/icon-gold.png" /><br /><br />
+ <b>STEPS TO TEST:</b><br />
+ <ol>
+ <li>Select all that text or picture in this editable area (type <b>Ctrl-A</b> / Option-A)</li>
+ <li><b>Copy</b> them use <b>Ctrl-C</b> / Option-C</li>
+ <li>Move the cursor to a blank line below</li>
+ <li>Paste them use <b>Ctrl-V</b> / Option-V</li>
+ </ol>
+ <p><b>Ensure</b> that text and image has been pasted with formats and no garbled.</p>
+ <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />
+ </div>
+ </body>
+</html>
diff --git a/ManualTests/gtk/cursor-image.html b/ManualTests/gtk/cursor-image.html
new file mode 100644
index 000000000..a231337df
--- /dev/null
+++ b/ManualTests/gtk/cursor-image.html
@@ -0,0 +1,4 @@
+<div>Mouse over the grey block below to change the cursor to a small cross.</div>
+<div style="width: 100px; height: 100px; background: lightblue; cursor:url(resources/cell.cur), default;">&nbsp;</div>
+<div>Mouse over the grey block below to change the cursor to three small crosses.</div>
+<div style="width: 100px; height: 100px; background: lightblue; cursor:url(resources/long_cell.cur), default;">&nbsp;</div>
diff --git a/ManualTests/gtk/floatingdiv.html b/ManualTests/gtk/floatingdiv.html
new file mode 100644
index 000000000..b7169c764
--- /dev/null
+++ b/ManualTests/gtk/floatingdiv.html
@@ -0,0 +1,149 @@
+<html>
+<body>
+1<br />
+2<br />
+3<br />
+4<br />
+5<br />
+6<br />
+7<br />
+8<br />
+9<br />
+10<br />
+11<br />
+12<br />
+13<br />
+14<br />
+15<br />
+16<br />
+17<br />
+18<br />
+19<br />
+20<br />
+21<br />
+22<br />
+23<br />
+24<br />
+25<br />
+26<br />
+27<br />
+28<br />
+29<br />
+30<br />
+31<br />
+32<br />
+33<br />
+34<br />
+35<br />
+36<br />
+37<br />
+38<br />
+39<br />
+40<br />
+41<br />
+42<br />
+43<br />
+44<br />
+45<br />
+46<br />
+47<br />
+48<br />
+49<br />
+50<br />
+51<br />
+52<br />
+53<br />
+54<br />
+55<br />
+56<br />
+57<br />
+58<br />
+59<br />
+60<br />
+61<br />
+62<br />
+63<br />
+64<br />
+65<br />
+66<br />
+67<br />
+68<br />
+69<br />
+70<br />
+71<br />
+72<br />
+73<br />
+74<br />
+75<br />
+76<br />
+77<br />
+78<br />
+79<br />
+80<br />
+<div style="border : solid 2px #ff0000; position: absolute; float: right; background : #000000; color : #ffffff; padding : 4px; width : 200px; height : 100px; overflow : auto; ">
+1<br />
+2<br />
+3<br />
+4<br />
+5<br />
+6<br />
+7<br />
+8<br />
+9<br />
+10<br />
+61<br />
+62<br />
+63<br />
+64<br />
+65<br />
+66<br />
+67<br />
+68<br />
+69<br />
+70<br />
+</div>
+127<br />
+128<br />
+129<br />
+130<br />
+131<br />
+132<br />
+133<br />
+134<br />
+135<br />
+136<br />
+137<br />
+138<br />
+139<br />
+140<br />
+141<br />
+142<br />
+143<br />
+144<br />
+145<br />
+146<br />
+147<br />
+148<br />
+149<br />
+150<br />
+151<br />
+152<br />
+153<br />
+154<br />
+155<br />
+156<br />
+157<br />
+158<br />
+159<br />
+160<br />
+161<br />
+162<br />
+163<br />
+164<br />
+165<br />
+166<br />
+167<br />
+168<br />
+169<br />
+170<br />
+</body>
diff --git a/ManualTests/gtk/paste-richtext-from-firefox.html b/ManualTests/gtk/paste-richtext-from-firefox.html
new file mode 100644
index 000000000..c739a59f9
--- /dev/null
+++ b/ManualTests/gtk/paste-richtext-from-firefox.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>Paste rich text from firefox</title>
+ </head>
+ <body>
+ <p><b>BUG ID:</b>
+ <a href="https://bugs.webkit.org/show_bug.cgi?id=26791">Bugzilla bug 26791</a>
+ [Gtk] Paste of rich text from firefox results garbled markup
+ </p>
+ <h1>Paste rich text from firefox</h1>
+ <p>
+ <b>STEPS TO TEST:</b><br>
+ <ol>
+ <li>Launch FireFox to browse <a href="http://www.apple.com">http://www.apple.com</a></li>
+ <li>Select that text or picture from FireFox page</li>
+ <li>Copy them use <b>Ctrl-C</b> / Option-C, (or just select them on Linux)</li>
+ <li>Back in WebkitGtk, click inside the EditableArea below, </li>
+ <li>Paste them use <b>Ctrl-V</b> / Option-V, (or just Middle Mouse Click on Linux)</li>
+ </ol>
+ <p><b>Ensure</b> that text or picture has been pasted with formats and no garbled.</p>
+ <div title="EditableArea" contentEditable="true"
+ style="display: block; border: 1px solid green; margin: 5px; padding: 15px;">
+ <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />
+ </div>
+ </p>
+ </body>
+</html>
+
diff --git a/ManualTests/gtk/plugin-resize-scroll.html b/ManualTests/gtk/plugin-resize-scroll.html
new file mode 100644
index 000000000..d452b95dc
--- /dev/null
+++ b/ManualTests/gtk/plugin-resize-scroll.html
@@ -0,0 +1,28 @@
+<html>
+ <head>
+ <style>
+ html, body {
+ background-color: blue;
+ color: white;
+ }
+ #spacer {
+ width: 100%;
+ height: 1000px;
+ background-color: yellow;
+ }
+ </style>
+ </script>
+ </head>
+ <body>
+ <p>
+ Resize the browser, ensure that the plugin resizes and does not produce a greyish border.
+ Scroll the view, ensure that plugin scrolls out of view.
+ </p>
+
+ <embed id="embed" height="100" style="width: 100%" pbgcolor="green"
+ src="http://www.tizag.com/pics/example.swf" type="application/x-shockwave-flash"/>
+
+ <div id="spacer"><p>content</p></div>
+ </body>
+</html>
+
diff --git a/ManualTests/gtk/resources/cell.cur b/ManualTests/gtk/resources/cell.cur
new file mode 100644
index 000000000..decfbdcac
--- /dev/null
+++ b/ManualTests/gtk/resources/cell.cur
Binary files differ
diff --git a/ManualTests/gtk/resources/long_cell.cur b/ManualTests/gtk/resources/long_cell.cur
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/ManualTests/gtk/resources/long_cell.cur
diff --git a/ManualTests/harfbuzz-mouse-selection-crash.html b/ManualTests/harfbuzz-mouse-selection-crash.html
new file mode 100644
index 000000000..a7e85a1ef
--- /dev/null
+++ b/ManualTests/harfbuzz-mouse-selection-crash.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+#telugu {
+font-size: 2cm;
+line-height: 1.5em;
+font-family: "Lohit Telugu";
+}
+</style>
+<script>
+var ITERATIONS = 10000;
+
+if (window.testRunner)
+ testRunner.waitUntilDone();
+
+function mouseSelection() {
+ var body = document.body;
+ body.focus();
+
+ xStart = 0;
+ yStart = 0;
+
+ if (window.eventSender) {
+ eventSender.mouseMoveTo(xStart, yStart);
+ eventSender.mouseDown();
+ for(i=0;i<ITERATIONS;i++) {
+ randomCoord = randomCoordinate();
+ eventSender.mouseMoveTo(randomCoord.x, randomCoord.y);
+ }
+ }
+ if (window.testRunnder)
+ testRunner.notifyDone();
+}
+
+function randomCoordinate(axis) {
+ return { x: Math.floor(Math.random()*window.innerWidth),
+ y: Math.floor(Math.random()* window.innerHeight) }
+}
+
+</script>
+</head>
+<body onload="mouseSelection()"><p>
+ This test fuzzes HarfBuzzShaper::offsetForPosition to trigger an assertion in the downstream function characterIndexForXPosition().
+ See https://bugs.webkit.org/show_bug.cgi?id=92376 - reason of the assertion being hit is a minuscule floating point inaccuracy
+ between an if condition that gates the call to characterIndexForXPosition and the actual argument that's then given to the function.
+ This test works on WebKit EFL, with the Ubuntu Telugu Lohit font installed to the EFL jhbuild font directory, like:</p>
+ <pre>$ cp /usr/share/fonts/truetype/ttf-telugu-fonts/lohit_te.ttf WebKitBuild/Dependencies/Source/webkitgtk-test-fonts-0.0.3</pre>
+ <p>Run with:</p>
+ <pre>$ WebKitBuild/Debug/bin/DumpRenderTree ManualTests/harfbuzz-mouse-selection-crash.html</pre>
+ <p>Before the change, this would crash 10/10 times. Test passes if it does not crash.</p>
+<p id="telugu">చేనేత కారà±à°®à°¿à°•à±à°² సమసà±à°¯à°²à°¨à± à°ªà±à°°à°­à±à°¤à±à°µà°‚ దృషà±à°Ÿà°¿à°•à°¿ తీసà±à°•à±à°µà±†à°³à±à°²à±‡à°‚à°¦à±à°•à± సిరిసిలà±à°²à°²à±‹ వైఎసà±à°†à°°à± సిపి గౌరవాధà±à°¯à°•à±à°·à±à°°à°¾à°²à± విజయమà±à°® చేపటà±à°Ÿà°¿à°¨à°¦à±€à°•à±à°· విజయవంతమైంది.</p>
+</body>
+</html>
diff --git a/ManualTests/hash-ref.html b/ManualTests/hash-ref.html
new file mode 100644
index 000000000..ed15fdb40
--- /dev/null
+++ b/ManualTests/hash-ref.html
@@ -0,0 +1,25 @@
+<html>
+<head>
+<title>Manual Test for Bug 13067: Manually adding #hash to URL reloads entire page instead of jumping to #hash location in cached page</title>
+<style>
+li { padding-bottom: 12px; }
+</style>
+</head>
+<body>
+<h3>Manual Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=13067">Bug 13067: Manually adding #hash to URL reloads entire page instead of jumping to #hash location in cached page</a></h3>
+<div>
+<p>Instructions</p>
+<ol>
+<li>Click link to <a href="resources/hash-ref-test.html" target="_blank">open test page in new window</a>.</li>
+<li>Set hash ref to "#div5" on the URL and hit <kbd>Enter</kbd>.<br> This should take you to the top of the div5 box <em>without</em> reloading the page.</li>
+<li>Set hash ref to "#" on the URL and hit <kbd>Enter</kbd>.<br> This should take you to the top of the page <em>without</em> reloading.</li>
+<li>Set hash ref to "#div3" on the URL and hit <kbd>Enter</kbd>.<br> This should take you to the top of the div3 box <em>without</em> reloading.</li>
+<li>Hit <kbd>Enter</kbd> in the address bar without chainging the "#div3" hash.<br> This <em>should</em> reload the page.</li>
+<li>Set hash ref to "#" on the URL and hit <kbd>Enter</kbd>.<br> This should take you to the top of the page <em>without</em> reloading.</li>
+<li>Hit <kbd>Enter</kbd> in the address bar without chainging the "#" hash.<br> This <em>should</em> reload the page.</li>
+<li>Delete the hash ref on the URL and hit <kbd>Enter</kbd>.<br> This <em>should</em> reload the page.</li>
+<li>Go back in history 5 times to the first URL.<br> <em>None</em> of the pages should be reloaded.</li>
+<li>Go forward in history 5 times to the last URL.<br> <em>None</em> of the pages should be reloaded.</li>
+</div>
+</body>
+</html>
diff --git a/ManualTests/iframe_notifications/iframe-reparenting-close-window-child.html b/ManualTests/iframe_notifications/iframe-reparenting-close-window-child.html
new file mode 100755
index 000000000..7758115dc
--- /dev/null
+++ b/ManualTests/iframe_notifications/iframe-reparenting-close-window-child.html
@@ -0,0 +1,29 @@
+<html>
+<script>
+
+var iframe;
+
+window.addAndTransferIframe = function()
+{
+ iframe = document.createElement('iframe');
+ iframe.setAttribute('width', '500');
+ iframe.setAttribute('height', '350');
+ iframe.setAttribute('src', 'iframe-reparenting-close-window-iframe.html');
+ window.document.body.appendChild(iframe);
+}
+
+// Called from Iframe when it is loaded and initialized.
+window.transferIframe = function()
+{
+ var backgroundWin = window.opener;
+ backgroundWin.log("Transferring Iframe now.");
+ backgroundWin.document.adoptNode(iframe);
+ backgroundWin.document.body.appendChild(iframe);
+ iframe.contentWindow.finish();
+ window.close();
+}
+</script>
+
+<body>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/iframe_notifications/iframe-reparenting-close-window-iframe.html b/ManualTests/iframe_notifications/iframe-reparenting-close-window-iframe.html
new file mode 100755
index 000000000..5814239cc
--- /dev/null
+++ b/ManualTests/iframe_notifications/iframe-reparenting-close-window-iframe.html
@@ -0,0 +1,26 @@
+<html>
+<head>
+<script>
+var logWin = window.parent.opener;
+logWin.log('Initializing Iframe');
+
+var notificationCenter = null;
+function test() {
+ notificationCenter = window.webkitNotifications;
+ logWin.log("Before transfer: checkPermission returned (should be 1): " + notificationCenter.checkPermission());
+ setTimeout("window.parent.transferIframe();", 5000); // Wait long enough for Chrome popup blocker to release the window so it can actually close.
+}
+
+function testAfterClose()
+{
+ logWin.log("After transfer: checkPermission returned (should be 2): " + notificationCenter.checkPermission());
+}
+window.finish = function() {
+ logWin.log("After transfer, the checkPermission call is accessing a destroyed object and can return invalid value or crash, depending on circumstances.");
+ setInterval(testAfterClose, 1000); // Do it several times in a row, it'll crash after 1-3 times
+}
+</script>
+</head>
+<body onload=test()>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/iframe_notifications/iframe-reparenting-close-window.html b/ManualTests/iframe_notifications/iframe-reparenting-close-window.html
new file mode 100755
index 000000000..66e47e64f
--- /dev/null
+++ b/ManualTests/iframe_notifications/iframe-reparenting-close-window.html
@@ -0,0 +1,31 @@
+<html>
+<script>
+window.log = function(message)
+{
+ document.getElementById("log").innerText += message + "\n";
+}
+
+function childLoaded()
+{
+ log("Child window loaded.");
+ window.childWindow.addAndTransferIframe();
+}
+
+function start()
+{
+ window.childWindow = window.open("iframe-reparenting-close-window-child.html", "_blank");
+ window.childWindow.addEventListener("load", childLoaded, false);
+}
+
+</script>
+<body>
+<p>Bug: https://bugs.webkit.org/show_bug.cgi?id=70147</p>
+<p>This test recreates scenario when an iframe is reparented from one page to another using 'live iframe transfer'
+ (with adoptNode() used on the iframe right before re-parenting into the other page's DOM tree).
+ Then the original page is closed, destroying some internal objects that are associated with the top frame/page/WebVeiw.</p>
+<p>In Chromium, this destroys the underlying NotificationPresenter object which is associated with the Page, and as a result, the use of webkitNotification object from JavaScript can crash the browser or return bogus results ('use-after-delete').
+ Open this test in Chromium and click the button to start the test. If the test doesn't crash, and prints expected results, the bug is not regressed.</p>
+<button onclick="start()">Start test</button>
+<pre id="log"></pre>
+</body>
+</html>
diff --git a/ManualTests/image-prefetch-stress.html b/ManualTests/image-prefetch-stress.html
new file mode 100644
index 000000000..b9203b78b
--- /dev/null
+++ b/ManualTests/image-prefetch-stress.html
@@ -0,0 +1,20 @@
+<html>
+<script type="text/javascript">
+(function(){
+ var i = 0;
+setInterval(function(){
+ var x = new Image();
+ x.src = "http://upload.wikimedia.org/wikipedia/commons/e/e9/Sombrero_Galaxy_in_infrared_light_%28Hubble_Space_Telescope_and_Spitzer_Space_Telescope%29.jpg?" + i;
+ i++;
+ }, 500);
+})()
+</script>
+<body>
+When an image is preloaded in javascript, the size of the image is never
+reported to the javascript garbage collector. If a large image is repeatedly
+preloaded but never used, it will not free any of the images until the
+garbage collector has run out of space to allocate any new free javascript
+variables. This test passes if after a certain point, the number of allocated
+images as reported by the caches window stops growing.
+</body>
+</html>
diff --git a/ManualTests/ime-keydown-preventdefault.html b/ManualTests/ime-keydown-preventdefault.html
new file mode 100644
index 000000000..aa474e937
--- /dev/null
+++ b/ManualTests/ime-keydown-preventdefault.html
@@ -0,0 +1,27 @@
+<html>
+<body>
+<p>Typing in the input fields below should not generate text, even with an IME enabled.</p>
+
+Type into the input:
+<input type=text id='input'></input><br>
+<div id='out' style="float: right"></div>
+Or the text area:
+<textarea id='area'></textarea><br>
+Or the contentEditable area:
+<div contentEditable id='ce' style="border:1px solid red; height:300px; width:300px;"></div>
+<script>
+var input = document.getElementById('input');
+var area = document.getElementById('area');
+var ce = document.getElementById('ce');
+
+var handleKeyDown = function(e) {
+ document.getElementById('out').innerHTML += "<br>Got a key event -- cancelling";
+ e.preventDefault();
+}
+
+input.addEventListener('keydown', handleKeyDown, false);
+area.addEventListener('keydown', handleKeyDown, false);
+ce.addEventListener('keydown', handleKeyDown, false);
+</script>
+</body>
+</html>
diff --git a/ManualTests/indexeddb-persists.html b/ManualTests/indexeddb-persists.html
new file mode 100644
index 000000000..d8061e1bc
--- /dev/null
+++ b/ManualTests/indexeddb-persists.html
@@ -0,0 +1,69 @@
+<html>
+<body>
+<p>This is a test that only applies to IndexedDB. <span id=enabled>Our test for whether you have it enabled seems to have failed.</span></p>
+
+<p>Please follow these steps in order:</p>
+
+<p>First, click <a href="javascript: setData()">here</a> to open a database and set some data within it.</p>
+
+<p>Next, close the browser and then re-open this page.</p>
+
+<p>Lastly, click <a href="javascript: verifyData()">here</a> to verify the data was there</p>
+
+<p>Status: <span id=status>...</span></p>
+
+<script>
+
+if (!('webkitIndexedDB' in window))
+ document.getElementById("enabled").innerHTML = "<font color=red>Your build does NOT seem to have it enabled. So all code on this page is disabled.</font>";
+else
+ document.getElementById("enabled").innerHTML = "<font color=green>Your build seems to have it enabled.</font>";
+
+function status(str, color)
+{
+ if (color)
+ str = "<font color='" + color + "'>" + str + "</font>";
+ document.getElementById("status").innerHTML = str;
+}
+
+function setData()
+{
+ status("Something must have gone wrong (or we're still working)...", "red");
+
+ webkitIndexedDB.open("someDB", "some description").onsuccess = function() {
+ event.result.setVersion("some version").onsuccess = function() {
+ var db = event.source;
+ while (db.objectStoreNames.length)
+ db.removeObjectStore(db.objectStoreNames[0]);
+ db.createObjectStore("test").put("value", "key").onsuccess = function() {
+ status("Value set", "green");
+ }
+ }
+ }
+}
+
+function verifyData()
+{
+ status("Something must have gone wrong (or we're still working)...", "red");
+
+ webkitIndexedDB.open("someDB", "some description").onsuccess = function() {
+ try {
+ var result = event.result.transaction([]).objectStore("test").get("key");
+ result.onsuccess = function() {
+ if (event.result == "value")
+ status("Value verified", "green");
+ else
+ status("Value incorrect!", "red");
+ }
+ result.onerror = function() {
+ status("An error occurred: " + event.code + " " + event.message, "red");
+ }
+ } catch (e) {
+ status("An exception occurred: " + e, "red");
+ }
+ }
+}
+
+</script>
+</body>
+</html>
diff --git a/ManualTests/inline-input-marking.html b/ManualTests/inline-input-marking.html
new file mode 100644
index 000000000..4c62cd4c7
--- /dev/null
+++ b/ManualTests/inline-input-marking.html
@@ -0,0 +1,38 @@
+<html>
+<head>
+
+<style>
+.editing {
+ border: 2px solid red;
+ padding: 12px;
+ font-size: 24px;
+}
+.inputtest {
+ font-family:'Hiragino Kaku Gothic Std';
+ border: 2px solid green;
+}
+</style>
+
+<title>Inline Input Method Marking</title>
+</head>
+<body>
+<p>This tests that the underlining of the inline input hole does not obscure the glyphs.</p>
+
+<ol>
+<li>Switch to Hirigana input method</li>
+<li>Type characters into each of the green blocks below</li>
+<li>As you do so, check that glyphs in the inline hole are clearly readable</li>
+</ol>
+<div contenteditable id="root" class="editing" style="width:400px;">
+9px Hiragino Kaku Gothic Std<div class="inputtest" style="font-size: 9px;"><br></div>
+<br>12px Hiragino Kaku Gothic Std<div class="inputtest" style="font-size: 12px;"><br></div>
+<br>24px Hiragino Kaku Gothic Std<div class="inputtest" style="font-size: 24px;"><br></div>
+</div>
+
+<script>
+runEditingTest();
+</script>
+
+</body>
+</html>
+
diff --git a/ManualTests/inline-repaint-container.html b/ManualTests/inline-repaint-container.html
new file mode 100644
index 000000000..e1f19c96e
--- /dev/null
+++ b/ManualTests/inline-repaint-container.html
@@ -0,0 +1,12 @@
+<div style="-webkit-transform: translatez(0)">
+</div>
+<div style="position: relative;">
+ <span style="position: relative; z-index: 10; top: 40px; left: 30px;">
+ <span style="position: relative; top: 50px; font: 60px ahem; color: red;" id="target">X</span>
+ </span>
+</div>
+<script>
+ setTimeout(function() {
+ document.getElementById("target").style.color = "green";
+ }, 0);
+</script>
diff --git a/ManualTests/input-empty-on-focus.html b/ManualTests/input-empty-on-focus.html
new file mode 100644
index 000000000..7cfc3ff85
--- /dev/null
+++ b/ManualTests/input-empty-on-focus.html
@@ -0,0 +1,6 @@
+<div><img width="200" height="200" src="resources/200x200.png"></div>
+<div><input onfocus="this.value = ''" value="drop image here go boom"></div>
+<p>Drag the image above down into the text field.
+If the test succeeds there will be no crash and you'll end up with an empty text field with a blinking caret.
+It's arguably a bug that the text field accepts an image at all, so some day we might fix that and make this
+test obsolete. Maybe we can find some other way to test the same code path.</p>
diff --git a/ManualTests/input-file-hidden-open-dialog-on-click.html b/ManualTests/input-file-hidden-open-dialog-on-click.html
new file mode 100644
index 000000000..e8042db4d
--- /dev/null
+++ b/ManualTests/input-file-hidden-open-dialog-on-click.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset='utf-8' />
+ <title>Test that file dialog opens when click() is called </title>
+</head>
+<body>
+Test manually that when you click on "Click me" button, an file open dialog appears.
+<input id=fileinput type="file" hidden />
+<button onclick="document.getElementById('fileinput').click();">Click me</button>
+</body>
+</html>
diff --git a/ManualTests/input-number-localization.html b/ManualTests/input-number-localization.html
new file mode 100644
index 000000000..631cc70d4
--- /dev/null
+++ b/ManualTests/input-number-localization.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Number type input shows and accepts localized numbers</title>
+<style>
+:invalid {
+ border-color: red;
+ -webkit-box-shadow: 4px 4px 8px #ff8888;
+}
+</style>
+</head>
+<body>
+<div id="console"></div>
+
+<p>Output test 1: The following text field should have a localized representation for "-1234.5678".
+e.g. "-1234.5678" for en_US locale, "-1234,5678" for fr_FR locale. The thousand separator is
+currently off.</p>
+<div><input type=number value="-1234.5678" step=any></div>
+
+<p>Output test 2: The following text field should have "-1234.5678E+12" in any locale.
+</p>
+<div><input type=number value="-1234.5678E+12" step=any></div>
+
+<p>Input test 1: Type a localized representation of a number (e.g. -1,234.5678 for en_US locale,
+-1.234,5678 for fr_FR locale) into the following text field.
+You'll see an equivalent number in the standard format on the bottom of the text field.</p>
+<p>Input test 2: Type a number in the scientific notation (e.g. 0.1234e-10.)
+You'll see the same number string on the bottom of the text field.</p>
+<div><input type=number id=target step=any oninput="handleInput()"></div>
+<div>Standard format: <output id=output></output></div>
+
+<script>
+function handleInput() {
+ document.getElementById('output').value = document.getElementById('target').value;
+}
+</script>
+</body>
+</html>
diff --git a/ManualTests/input-starved-by-timers.html b/ManualTests/input-starved-by-timers.html
new file mode 100644
index 000000000..f26cfa7b9
--- /dev/null
+++ b/ManualTests/input-starved-by-timers.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+<script>
+function log(m) {
+ document.getElementById("log").innerHTML += m + "<br>";
+}
+
+var multiplyFactor = 2; // Create this many timers in every timer callback.
+var targetLatency = 10000; // Multiply timers until it takes this much to fire all their callbacks.
+var timerCount = 1;
+
+function timerCallback(creationTimestamp) {
+ --timerCount;
+
+ if (!multiplyFactor) {
+ if (timerCount == 0)
+ log("No more timers - UI should be responsive now.");
+ return;
+ }
+
+ // Create more timers. Capture the current time so when callbacks are fired,
+ // we can check how long it actually took (latency caused by a long timer queue).
+ var timestamp = new Date().getTime();
+ for (i = 0; i < multiplyFactor; ++i) {
+ setTimeout(function() { timerCallback(timestamp); }, 0);
+ ++timerCount;
+ }
+
+ // Once the timer queue gets long enough for the timer firing latency to be over the limit,
+ // stop multplying them and keep the number of timers constant.
+ if (multiplyFactor > 1 && new Date().getTime() - creationTimestamp > targetLatency)
+ multiplyFactor = 1;
+}
+
+function runTest() {
+ log("Freezing UI...");
+ setTimeout(function() { timerCallback(new Date().getTime()); }, 0);
+ setTimeout("multiplyFactor = 0; log('Finishing. Started to drain timers.');", 10000);
+}
+
+</script>
+</head>
+<body onload="runTest()">
+This test will create enough timers to freeze browser UI. After 10 seconds, it
+will start drain the timers so the UI becomes responsive again in a few seconds.
+You don't need to kill the browser.<br>If the bug is fixed, there will be no
+UI freeze. Refresh the page to repeat the experiment.<br>Try to click at this
+button (or browser's menu) while UI is frozen: <button onclick="log('clicked')">Click Me</button> <hr>
+<div id="log"></div>
+</body>
+</html>
diff --git a/ManualTests/input-type-datetime-default-value.html b/ManualTests/input-type-datetime-default-value.html
new file mode 100644
index 000000000..8be15d806
--- /dev/null
+++ b/ManualTests/input-type-datetime-default-value.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head><title>Default values for date/time input (type= date, datetime, datetime-local, month, time, week)</title></head>
+
+<p>Enter Up or Down, or click the spin buttons for each input field.</p>
+
+<form>
+ <ul>
+ <li>Emtpy values, no steps
+ <ul>
+ <li>date: <input type="date" size="32" value="" />
+ <li>datetime: <input type="datetime" size="32" value="" />
+ <li>datetime-local: <input type="datetime-local" size="32" value="" />
+ <li>month: <input type="month" size="32" value="" />
+ <li>time: <input type="time" size="32" value="" />
+ <li>week <input type="week" size="32" value="" />
+ </ul>
+ <li>Invalid values, no steps
+ <ul>
+ <li>date: <input type="date" size="32" value="foo" />
+ <li>datetime: <input type="datetime" size="32" value="foo" />
+ <li>datetime-local: <input type="datetime-local" size="32" value="foo" />
+ <li>month: <input type="month" size="32" value="foo" />
+ <li>time: <input type="time" size="32" value="foo" />
+ <li>week <input type="week" size="32" value="foo" />
+ </ul>
+ <li>Emtpy values, invalid steps
+ <ul>
+ <li>date: <input type="date" size="32" value="" step="foo" />
+ <li>datetime: <input type="datetime" size="32" value="" step="foo" />
+ <li>datetime-local: <input type="datetime-local" size="32" value="" step="foo" />
+ <li>month: <input type="month" size="32" value="" step="foo" />
+ <li>time: <input type="time" size="32" value="" step="foo" />
+ <li>week <input type="week" size="32" value="" step="foo" />
+ </ul>
+ <li>Invalid values, invalid steps
+ <ul>
+ <li>date: <input type="date" size="32" value="foo" step="foo" />
+ <li>datetime: <input type="datetime" size="32" value="foo" step="foo" />
+ <li>datetime-local: <input type="datetime-local" size="32" value="foo" step="foo" />
+ <li>month: <input type="month" size="32" value="foo" step="foo" />
+ <li>time: <input type="time" size="32" value="foo" step="foo" />
+ <li>week <input type="week" size="32" value="foo" step="foo" />
+ </ul>
+ <li>Emtpy values, step=any
+ <ul>s
+ <li>date: <input type="date" size="32" value="" step="any" />
+ <li>datetime: <input type="datetime" size="32" value="" step="any" />
+ <li>datetime-local: <input type="datetime-local" size="32" value="" step="any" />
+ <li>month: <input type="month" size="32" value="" step="any" />
+ <li>time: <input type="time" size="32" value="" step="any" />
+ <li>week <input type="week" size="32" value="" step="any" />
+ </ul>
+ <li>Invalid values, step=any
+ <ul>
+ <li>date: <input type="date" size="32" value="foo" step="any" />
+ <li>datetime: <input type="datetime" size="32" value="foo" step="any" />
+ <li>datetime-local: <input type="datetime-local" size="32" value="foo" step="any" />
+ <li>month: <input type="month" size="32" value="foo" step="any" />
+ <li>time: <input type="time" size="32" value="foo" step="any" />
+ <li>week <input type="week" size="32" value="foo" step="any" />
+ </ul>
+ </ul>
+</form>
+
+<p>The input fields should show the current local/UTC date/time (with + or - a unit date/time described below except for step=any).</p>
+
+<p>Unit dates/times</p>
+<ul>
+ <li>date: 1 day (local time)
+ <li>datetime: 1 minute (UTC)
+ <li>datetime-local: 1 minute (local time)
+ <li>month: 1 month (local time)
+ <li>time: 1 minute (local time)
+ <li>week: 1 week (local time)
+</ul>
+
+<p>As for step=any, the values don't change by stepping-up/-down.<p>
+
+</body></html>
diff --git a/ManualTests/input-type-file-autocomplete-frame-1.html b/ManualTests/input-type-file-autocomplete-frame-1.html
new file mode 100644
index 000000000..6abc90cfc
--- /dev/null
+++ b/ManualTests/input-type-file-autocomplete-frame-1.html
@@ -0,0 +1,23 @@
+<html>
+<body>
+<p><b>BUG ID:</b> <a href="<rdar://problem/4532113> REGRESSION (NativeTextField): Crash occurs after modifying field then reloading page -[FormDelegate frameLayoutHasChanged:]">4532113</a> REGRESSION (NativeTextField): Crash occurs after modifying field then reloading page -[FormDelegate frameLayoutHasChanged:]</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+<ol>
+<li> enable Safari's auto fill
+<li> type something in the input field, and press enter to register it with autofill
+<li> clear the field and type part of the same string you did previously
+<li> without ever removing focus from the input field, select the suggestion autofill suggests
+<li> refresh the page or go to a bookmark (don't remove focus from the input field)
+</ol>
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+no crash.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Crash in -[FormDelegate frameLayoutHasChanged:]
+</p>
+</body>
+</html>
diff --git a/ManualTests/input-type-file-autocomplete-frame-2.html b/ManualTests/input-type-file-autocomplete-frame-2.html
new file mode 100644
index 000000000..d3cd114a5
--- /dev/null
+++ b/ManualTests/input-type-file-autocomplete-frame-2.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<table><tr><td>
+<form><input size=55 value="type something in here"></form>
+</td></tr></table>
+</body>
+</html>
diff --git a/ManualTests/input-type-file-autocomplete-refresh.html b/ManualTests/input-type-file-autocomplete-refresh.html
new file mode 100644
index 000000000..eea8dab3a
--- /dev/null
+++ b/ManualTests/input-type-file-autocomplete-refresh.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+
+<frameset rows="50%,50%">
+ <frame src="./input-type-file-autocomplete-frame-1.html">
+ <frame src="./input-type-file-autocomplete-frame-2.html">
+</frameset>
+
+</html>
diff --git a/ManualTests/input-type-file-drag-drop.html b/ManualTests/input-type-file-drag-drop.html
new file mode 100644
index 000000000..eccc6e81a
--- /dev/null
+++ b/ManualTests/input-type-file-drag-drop.html
@@ -0,0 +1,18 @@
+<body>
+<div style="background-color: black;" width="300">
+<input type=file>
+</div>
+<div style="background-color: blue;" width="300">
+<input type=file>
+</div>
+<input type=file>
+<p>
+&lt;input type="file"&gt; should be able to support drag and drop of files. Use the above controls to demonstrate:
+</p>
+<ol>
+<li> Accepting normal file drags (indicating accpetance during hover).
+<li> Rejecting diretory and non-normal file drags.
+<li> Dropping a symlink'd file should accpect/show/upload the target, not the symlink itself.
+<li> Rejecting of file-promise drags (this is probably a bug, not a feature).
+</ol>
+</body> \ No newline at end of file
diff --git a/ManualTests/input-type-text-unconfirmed-inline-input.html b/ManualTests/input-type-text-unconfirmed-inline-input.html
new file mode 100644
index 000000000..857a63e8a
--- /dev/null
+++ b/ManualTests/input-type-text-unconfirmed-inline-input.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head><title>Unconfirmed inline input in <input type=text></title></head>
+
+<script>
+
+function dump(s) {
+ if (s == "")
+ alert("Field appears empty");
+ else
+ alert("Field contents: " + s);
+}
+
+</script>
+
+<p>Enter some text using inline input (e.g. Kotoeri Hiragana) and click the button without closing the input area.</p>
+<p><input type=text id=input value="" size=57><input type=button value="test" onClick="dump(document.getElementById('input').value)"></div>
+<p>The alert should show the inline input text, but without the bug fix it shows empty text.</p>
+
+</body></html>
diff --git a/ManualTests/inspector-document-methods-override.html b/ManualTests/inspector-document-methods-override.html
new file mode 100644
index 000000000..ca53f254b
--- /dev/null
+++ b/ManualTests/inspector-document-methods-override.html
@@ -0,0 +1,14 @@
+<p>This page test that using the Web Inspector's search field on a page that
+overrides <tt>Document.evaluate</tt> or <tt>Document.querySelectorAll</tt>
+still works.<p>
+
+<p>To test, right-click on this page and select &ldquo;Inspect Element&rdquo;,
+then type &ldquo;p&rdquo; in the search field (without the quotes). If the
+search results list appears, then you have passed the test. If one or more
+alert dialogs appear, you have failed the test.</p>
+
+<script>
+ function fail() { alert('FAIL') }
+ document.querySelectorAll = fail;
+ document.evaluate = fail;
+</script>
diff --git a/ManualTests/inspector-wrappers/console-alert-document-body.html b/ManualTests/inspector-wrappers/console-alert-document-body.html
new file mode 100644
index 000000000..a1778340f
--- /dev/null
+++ b/ManualTests/inspector-wrappers/console-alert-document-body.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+<script src="inspector-wrappers-test-utils.js"></script>
+<script>
+window.alert = function(msg) {
+ msg.titleInfo = doAttack;
+ return msg;
+}
+</script>
+</head>
+<body>
+<script>instructions({console: true, trigger: "alert(document.body)"});</script>
+</body>
+</html>
diff --git a/ManualTests/inspector-wrappers/console-alert-object.html b/ManualTests/inspector-wrappers/console-alert-object.html
new file mode 100644
index 000000000..5caab2b89
--- /dev/null
+++ b/ManualTests/inspector-wrappers/console-alert-object.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+<script src="inspector-wrappers-test-utils.js"></script>
+<script>
+window.alert = function(msg) {
+ msg.__proto__.toString = doAttack;
+ return msg;
+}
+</script>
+</head>
+<body>
+<script>instructions({console: true, trigger: "alert({})"});</script>
+</body>
+</html>
diff --git a/ManualTests/inspector-wrappers/console-alert-this.html b/ManualTests/inspector-wrappers/console-alert-this.html
new file mode 100644
index 000000000..4b803268c
--- /dev/null
+++ b/ManualTests/inspector-wrappers/console-alert-this.html
@@ -0,0 +1,17 @@
+<html>
+<head>
+<script src="inspector-wrappers-test-utils.js"></script>
+<script>
+window.alert = function(consolePanel) {
+ var _addMessage = consolePanel.addMessage;
+ consolePanel.addMessage = function() {
+ doAttack(consolePanel.addMessage);
+ consolePanel.addMessage = _addMessage;
+ }
+}
+</script>
+</head>
+<body>
+<script>instructions({console: true, trigger: "alert(this)"});</script>
+</body>
+</html>
diff --git a/ManualTests/inspector-wrappers/console-eval.html b/ManualTests/inspector-wrappers/console-eval.html
new file mode 100644
index 000000000..9274ceae8
--- /dev/null
+++ b/ManualTests/inspector-wrappers/console-eval.html
@@ -0,0 +1,11 @@
+<html>
+<head>
+<script src="inspector-wrappers-test-utils.js"></script>
+<script>
+window.eval = function() { doAttack(eval); }
+</script>
+</head>
+<body>
+<script>instructions({console: true, trigger: "something"});</script>
+</body>
+</html>
diff --git a/ManualTests/inspector-wrappers/console-str-alert-object.html b/ManualTests/inspector-wrappers/console-str-alert-object.html
new file mode 100644
index 000000000..d146663fd
--- /dev/null
+++ b/ManualTests/inspector-wrappers/console-str-alert-object.html
@@ -0,0 +1,15 @@
+<html>
+<head>
+<script src="inspector-wrappers-test-utils.js"></script>
+<script>
+window.str = window.expression = "alert({})";
+window.alert = function(msg) {
+ msg.__proto__.toString = doAttack;
+ return msg;
+}
+</script>
+</head>
+<body>
+<script>instructions({console: true, trigger: "something"});</script>
+</body>
+</html>
diff --git a/ManualTests/inspector-wrappers/console-str-getter.html b/ManualTests/inspector-wrappers/console-str-getter.html
new file mode 100644
index 000000000..31f890736
--- /dev/null
+++ b/ManualTests/inspector-wrappers/console-str-getter.html
@@ -0,0 +1,12 @@
+<html>
+<head>
+<script src="inspector-wrappers-test-utils.js"></script>
+<script>
+window.__defineGetter__("str", doAttack);
+window.__defineGetter__("expression", doAttack);
+</script>
+</head>
+<body>
+<script>instructions({console: true, trigger: "something"});</script>
+</body>
+</html>
diff --git a/ManualTests/inspector-wrappers/inspector-evaluate.html b/ManualTests/inspector-wrappers/inspector-evaluate.html
new file mode 100644
index 000000000..cc00c3b3a
--- /dev/null
+++ b/ManualTests/inspector-wrappers/inspector-evaluate.html
@@ -0,0 +1,11 @@
+<html>
+<head>
+<script src="inspector-wrappers-test-utils.js"></script>
+<script>
+document.evaluate = doAttack;
+</script>
+</head>
+<body>
+<script>instructions({trigger: "Type something into the search box"});</script>
+</body>
+</html>
diff --git a/ManualTests/inspector-wrappers/inspector-hasAttributes.html b/ManualTests/inspector-wrappers/inspector-hasAttributes.html
new file mode 100644
index 000000000..1fdf51a21
--- /dev/null
+++ b/ManualTests/inspector-wrappers/inspector-hasAttributes.html
@@ -0,0 +1,18 @@
+<html>
+<head>
+<script src="inspector-wrappers-test-utils.js"></script>
+</head>
+<body>
+<script>instructions({trigger: "Collapse and expand the &lt;body/&gt; tag"});</script>
+<script>
+ _hasAttributes = document.body.hasAttributes;
+ attackfunc = function() {
+ try { doAttack(); } catch(ex) { }
+ return _hasAttributes.call(this);
+ }
+ document.body.firstChild.hasAttributes = attackfunc;
+ document.body.hasAttributes = attackfunc;
+ document.body.parentNode.hasAttributes = attackfunc;
+</script>
+</body>
+</html>
diff --git a/ManualTests/inspector-wrappers/inspector-treeElementIdentifier.html b/ManualTests/inspector-wrappers/inspector-treeElementIdentifier.html
new file mode 100644
index 000000000..288edc75f
--- /dev/null
+++ b/ManualTests/inspector-wrappers/inspector-treeElementIdentifier.html
@@ -0,0 +1,17 @@
+<html>
+<head>
+<script src="inspector-wrappers-test-utils.js"></script>
+</head>
+<body>
+<script>
+ document.body.__defineGetter__("__treeElementIdentifier", function() {
+ try { doAttack(); } catch(ex) { }
+ return this.___treeElementIdentifier;
+ });
+ document.body.__defineSetter__("__treeElementIdentifier", function(val) {
+ this.___treeElementIdentifier = val;
+ });
+</script>
+<script>instructions({trigger: "Collapse and expand the &lt;body/&gt; tag"});</script>
+</body>
+</html>
diff --git a/ManualTests/inspector-wrappers/inspector-wrappers-test-utils.js b/ManualTests/inspector-wrappers/inspector-wrappers-test-utils.js
new file mode 100644
index 000000000..266616741
--- /dev/null
+++ b/ManualTests/inspector-wrappers/inspector-wrappers-test-utils.js
@@ -0,0 +1,46 @@
+var truealert = window.alert; // we overwrite window.alert sometimes
+
+// Walk up the caller chain and try to find a reference to the Inspector's window
+function doAttack() {
+ var obj = doAttack.caller;
+ for (var i = 0;
+ i < 1000 && (obj.arguments.length == 0 || !obj.arguments[0].target);
+ i++) {
+ obj = obj.caller;
+ }
+ if (i == 1000) return;
+ var win = obj.arguments[0].target.ownerDocument.defaultView;
+ xhr(win);
+}
+
+function xhr(win) {
+ var xhr = new win.XMLHttpRequest();
+ var url = prompt("Test failed. To prove it, I'm going " +
+ "to make a cross-domain XMLHttpRequest. Where " +
+ "would you like me to send it?\n\nHint: You can " +
+ "also try a file:// URL.", "http://www.example.com/");
+ xhr.open("GET", url, false);
+ xhr.send();
+ truealert("Result:\n\n" + xhr.responseText);
+}
+
+function instructions(params) {
+ var str = "<p>This test tries to make a cross-domain XMLHttpRequest to " +
+ "check whether JavaScript object wrappers are working (bug 16837, bug 16011).</p>" +
+ "<p>View this page from an http:// URL to ensure that it's in a different " +
+ "origin from the Inspector.</p>" +
+ "<p>Instructions:</p>" +
+ "<ol>" +
+ "<li>Right click the box" +
+ "<img id=logo src='../resources/webkit-background.png'" +
+ "style='border: 1px solid black; display: block; margin: 1em;'>" +
+ "<li>Choose \"Inspect Element\" from the context menu";
+ if (params.console) {
+ str += "<li>Select the Console";
+ str += "<li>Type " + params.trigger + " into the console and hit Enter";
+ } else {
+ str += "<li>" + params.trigger;
+ }
+ str += "<li>If the test failed, a prompt will appear.</ol>";
+ document.write(str);
+}
diff --git a/ManualTests/inspector/bp-in-named-eval-after-reload.html b/ManualTests/inspector/bp-in-named-eval-after-reload.html
new file mode 100644
index 000000000..4612cd6f2
--- /dev/null
+++ b/ManualTests/inspector/bp-in-named-eval-after-reload.html
@@ -0,0 +1,65 @@
+<style>code{background-color: #ffc;}</style>
+<p><b>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=31375">Bug 31375</a> - Web Inspector: breakpoints in named evals are not restored after a reload</b>
+
+<ul>
+<li><p>open this page with Web Inspector
+<li><p>switch to the Scripts panel, enabling debug if required
+<li><p>the available scripts in the select element should be:
+<ul>
+<li>(program): f1.js
+<li>(program): f2.js
+<li>bp-in-named-eval-after-reload.html
+</ul>
+<li><p>In <code>(program) f1.js</code>, set a breakpoint on the first
+executable line of the function <code>f1()</code>, the invocation of <code>doNothing()</code>.
+<li><p>In <code>(program) f2.js</code>, set a breakpoint on the first
+executable line of the function <code>f2()</code>, the invocation of <code>doNothing()</code>.
+<li><p>click this button: <input id=button type=button value="click me">
+<li><p>debugger should stop in the <code>f1()</code> function.
+<li><p>resume the debugger
+<li><p>debugger should stop in the <code>f2()</code> function (the function in <code>(program) f2.js</code>)
+<li><p>resume the debugger
+<li><p>switch to the web page, reload the web page, switch back to web inspector
+<li><p>in the breakpoints sidebar panel, click on the two breakpoints listed
+and the source for those functions should be shown in the source panel, and
+the previous breakpoint markers should be visible
+<li><p>click the "click me" button above, again
+<li><p>debugger should stop in the <code>f1()</code> function.
+<li><p>resume the debugger
+<li><p>debugger should stop in the <code>f2()</code> function.
+<li><p>resume the debugger
+</ul>
+
+<p>Note that without the fix in <a href="https://bugs.webkit.org/show_bug.cgi?id=31375">Bug 31375</a>,
+the breakpoints won't work after reloading the page.
+
+<script>
+
+function doNothing() { /* allows multi-line functions, easier to debug */ };
+
+eval([
+ "function f1() {",
+ " doNothing();",
+ " console.log(new Date() + ': f1() called');",
+ "}",
+ "//@sourceURL=f1.js"
+].join("\n"));
+
+f2 = Function([
+ "",
+ " doNothing();",
+ " console.log(new Date() + ': f2() called');",
+ "//@sourceURL=f2.js"
+].join("\n"));
+
+var button = document.getElementById("button");
+
+button.addEventListener("click", clickHandler, false);
+
+function clickHandler() {
+ f1();
+ f2();
+}
+
+</script>
+<!-- End -->
diff --git a/ManualTests/inspector/command-line-api.html b/ManualTests/inspector/command-line-api.html
new file mode 100644
index 000000000..8b9a153ce
--- /dev/null
+++ b/ManualTests/inspector/command-line-api.html
@@ -0,0 +1,6 @@
+<script type="text/javascript" charset="utf-8">
+ var $ = function() { console.log("OK") };
+</script>
+
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=20385">Bug 20385: Firebug command line extensions interfere with existing objects</a>.</p>
+<p>To test, execute "$()" in the Inspector's Console. Also trying setting $.</p>
diff --git a/ManualTests/inspector/console-assert.html b/ManualTests/inspector/console-assert.html
new file mode 100644
index 000000000..df2c4cc05
--- /dev/null
+++ b/ManualTests/inspector/console-assert.html
@@ -0,0 +1,37 @@
+<script>
+ function createClickHandler(result, str) {
+ return function() {
+ console.assert(result, "%s", str);
+ }
+ }
+
+ function load() {
+ var tests = [
+ "",
+ "false",
+ "null",
+ "document.body",
+ "!document.body",
+ "true"
+ ];
+
+ for (var i = 0; i < tests.length; ++i) {
+ var test = tests[i];
+ var result;
+ try {
+ result = eval(test);
+ } catch(e) {
+ result = false;
+ }
+ var button = document.createElement("button");
+ button.innerText = "console.assert(" + test + "): should" + (result ? " not" : "") + " assert";
+ button.onclick = createClickHandler(result, test);
+ var p = document.createElement("p");
+ p.appendChild(button);
+ document.body.appendChild(p);
+ }
+ }
+</script>
+<body onload="load()">
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=19134">Bug 19134: Inspector should support console.assert</a>.</p>
+<p>To test, click the buttons below and look at the Inspector's Console.</p>
diff --git a/ManualTests/inspector/console-call-line-numbers.html b/ManualTests/inspector/console-call-line-numbers.html
new file mode 100644
index 000000000..ae831c5a2
--- /dev/null
+++ b/ManualTests/inspector/console-call-line-numbers.html
@@ -0,0 +1,14 @@
+<script>
+ console.info("Test console.info");
+ console.log("Test console.log");
+ console.warn("Test console.warn");
+ console.error("Test console.error");
+ console.time("Test console.time");
+ console.timeEnd("Test console.time");
+ console.count("Test console.count");
+ console.assert(false, "Test console.assert");
+</script>
+<script src="resources/script-console-calls.js"></script>
+<body>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=17234">Bug 17234: Inspector should link console.{log,warn,info,error} back to call site</a>.</p>
+<p>To test, open the Inspector's Console and verify that all console messages have correct resource URLs and line numbers. Also verify that errors and warnings show up inline as bubbles in the resource source view.</p>
diff --git a/ManualTests/inspector/console-dir.html b/ManualTests/inspector/console-dir.html
new file mode 100644
index 000000000..90f389d03
--- /dev/null
+++ b/ManualTests/inspector/console-dir.html
@@ -0,0 +1,31 @@
+<body>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=24329">Bug 24329: REGRESSION: console.dirxml() Console API broken</a>.</p>
+<p>To test, open the Inspector's Console and verify that all console messages have the correct output.</p>
+</body>
+<script>
+ console.log("Testing console.dir:");
+ console.dir(undefined);
+ console.dir(123);
+ console.dir(null);
+ console.dir({});
+ console.dir({test: 1, test1:{apple: "orange"}});
+ console.dir("Test");
+ console.dir(document);
+ console.dir(document.body);
+
+ console.log("\nTesting console.dirxml:");
+ console.dirxml(undefined);
+ console.dirxml(123);
+ console.dirxml(null);
+ console.dirxml({});
+ console.dirxml({test: 1, test1:{apple: "orange"}});
+ console.dirxml("Test");
+ console.dirxml(document);
+ console.dirxml(document.body);
+
+ console.log("\nTesting console.log's %o and %O formatters:");
+ console.log("%o %O", document.body, document.body);
+ console.log("%o %O", undefined, undefined);
+ console.log("%o %O", 123, 123);
+ console.log("%o %O", null, null);
+</script>
diff --git a/ManualTests/inspector/console-log-formatting.html b/ManualTests/inspector/console-log-formatting.html
new file mode 100644
index 000000000..d59ebc97b
--- /dev/null
+++ b/ManualTests/inspector/console-log-formatting.html
@@ -0,0 +1,68 @@
+<script>
+ var s = "this is a string";
+ var i = 5;
+ var ni = -5;
+ var f = 3.14159;
+ var o = { prop1: 1, prop2: 2 };
+ var specifiers = {
+ s: "string",
+ i: "integer",
+ d: "integer",
+ f: "float",
+ "0.3f": "float with precision",
+ o: "object",
+ z: "unsupported",
+ };
+
+ function test(args) {
+ var functions = ["log", "debug"];
+ for (var i = 0; i < functions.length; ++i) {
+ console.info("console." + functions[i] + "(%s)", args);
+ try {
+ eval("console." + functions[i] + "(" + args + ")");
+ } catch (e) {
+ console.error(e);
+ }
+ }
+ }
+
+ function testAllSpecifiers(value, description) {
+ for (var specifier in specifiers)
+ test("'Format " + description + " as " + specifiers[specifier] + ": %" + specifier + "', " + value + "");
+ }
+
+ function runTests() {
+ var values = [
+ { value: "window.noSuchVariable", description: "undefined" },
+ { value: "s", description: "string" },
+ { value: "i", description: "positive integer" },
+ { value: "ni", description: "negative integer" },
+ { value: "f", description: "float" },
+ { value: "o", description: "object" },
+ { value: "document.body", description: "body" },
+ { value: "/test/", description: "RegExp" },
+ { value: "true", description: "boolean" },
+ { value: "null", description: "null" },
+ ];
+
+ for (var i = 0; i < values.length; ++i)
+ testAllSpecifiers(values[i].value, values[i].description);
+
+ var tests = [
+ "'simple test'",
+ "'multiple', 'parameters', 'should', 'be', 'concatenated'",
+ "document",
+ "document, document.body, window, window.location",
+ "document, document.body, 'hello', 'goodbye', window.location",
+ "'Format string with fewer specifiers than parameters: %o %i %f', document.body, i, f, ni, o",
+ "'Format string with more specifiers than parameters: %o %i %f %i %o', document.body, i, f",
+ ];
+
+ for (var i = 0; i < tests.length; ++i)
+ test(tests[i]);
+
+ }
+</script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=17228">Bug 17228: console.{log,warn,info,error} should support format strings, variable arguments</a>.</p>
+<p>Open the Inspector (right-click and choose "Inspect Element"), then click the "Run Tests" button.</p>
+<button onclick="runTests()">Run Tests</button>
diff --git a/ManualTests/inspector/console-time.html b/ManualTests/inspector/console-time.html
new file mode 100644
index 000000000..6c243736d
--- /dev/null
+++ b/ManualTests/inspector/console-time.html
@@ -0,0 +1,33 @@
+<script>
+function test() {
+ // Test 1: call timeEnd before time
+ console.log(">>>console.timeEnd(\"1\")");
+ console.timeEnd("1");
+ // Test 2: call time two times before timeEnd
+ console.log(">>>console.time(\"2\")");
+ console.time("2");
+ setTimeout(function() {
+ console.log(">>>console.time(\"2\")");
+ console.time("2");
+ console.log(">>>console.timeEnd(\"2\")");
+ console.timeEnd("2");
+ console.log("2: If it says ~1000ms the first time is not overwritten.");
+ }, 1000);
+ // Test 3: call timeEnd two times
+ console.log(">>>console.time(\"3\")");
+ console.time("3");
+ console.log(">>>console.timeEnd(\"3\")");
+ console.timeEnd("3");
+ console.log(">>>console.timeEnd(\"3\")");
+ console.timeEnd("3");
+ // Test 4: call time/timeEnd without title parameter
+ console.log(">>>console.time()");
+ console.time();
+ console.log(">>>console.timeEnd()");
+ console.timeEnd();
+};
+
+</script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=19159">Bug 19159: Inspector should support console.time/console.timeEnd</a>.</p>
+<p>Open the Inspector (right-click and choose "Inspect Element"), then click the "Run Tests" button.</p>
+<button onclick="test()">Run Tests</button> \ No newline at end of file
diff --git a/ManualTests/inspector/debugger-execution-while-paused.html b/ManualTests/inspector/debugger-execution-while-paused.html
new file mode 100644
index 000000000..67446d4eb
--- /dev/null
+++ b/ManualTests/inspector/debugger-execution-while-paused.html
@@ -0,0 +1,15 @@
+<script>
+function stepOne()
+{
+ var x = 1;
+}
+
+function stepTwo()
+{
+ alert("Test failed. The second button event still fired.");
+}
+</script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=20284">Bug 20284: JavaScript can be executed even though debugger is running and at a break point</a>.</p>
+<p>To test, open the Inspector and start a debugging session. Set a break point inside the stepOne() function. Now click the Step One button in the page. The breakpoint should be hit. While paused at the breakpoint click on the Step Two button. You should not see an alert dialog.</p>
+<button onclick="stepOne()">Step One</button><br><br>
+<button onclick="stepTwo()">Step Two</button><br><br>
diff --git a/ManualTests/inspector/debugger-pause-during-load.html b/ManualTests/inspector/debugger-pause-during-load.html
new file mode 100644
index 000000000..631cafc1f
--- /dev/null
+++ b/ManualTests/inspector/debugger-pause-during-load.html
@@ -0,0 +1,5 @@
+<script>
+debugger; // You should see this code and execution line in the Scripts panel.
+</script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=19053">Bug 19053: Source code not visible when script is paused before onload fires</a>.</p>
+<p>To test, open the Inspector and start a debugging session. You should see this file and execution line in the Scripts panel.</p>
diff --git a/ManualTests/inspector/debugger-pause-on-else-statements.html b/ManualTests/inspector/debugger-pause-on-else-statements.html
new file mode 100644
index 000000000..424fb7eee
--- /dev/null
+++ b/ManualTests/inspector/debugger-pause-on-else-statements.html
@@ -0,0 +1,18 @@
+<script>
+function test()
+{
+ debugger;
+}
+
+if (false)
+ debugger; // This should not be hit.
+else
+ test();
+</script>
+
+Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=21944">Bug 21944: Can't set a breakpoint on the statement after a single line "else"</a>.
+<br><br>
+Start a debugging session in the Web Inspector and open this file. When the debugger breaks, select the (program) node
+in the call stack, you should see the execution line on the call to test().
+<br><br>
+Also set a breakpoint on the call to test(), and reload. It should break before the test() function is called.
diff --git a/ManualTests/inspector/debugger-pause-on-for-in-statements.html b/ManualTests/inspector/debugger-pause-on-for-in-statements.html
new file mode 100644
index 000000000..c0c24e0de
--- /dev/null
+++ b/ManualTests/inspector/debugger-pause-on-for-in-statements.html
@@ -0,0 +1,18 @@
+<script>
+function test()
+{
+ debugger;
+}
+
+var object = { test: 1 };
+
+for (var property in object)
+ test();
+</script>
+
+Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=22004">Bug 22004: Can't set a breakpoint on the statement after a single line "for"</a>.
+<br><br>
+Start a debugging session in the Web Inspector and open this file. When the debugger breaks, select the (program) node
+in the call stack, you should see the execution line on the call to test().
+<br><br>
+Also set a breakpoint on the call to test(), and reload. It should break before the test() function is called.
diff --git a/ManualTests/inspector/debugger-pause-on-for-statements.html b/ManualTests/inspector/debugger-pause-on-for-statements.html
new file mode 100644
index 000000000..43a63e240
--- /dev/null
+++ b/ManualTests/inspector/debugger-pause-on-for-statements.html
@@ -0,0 +1,16 @@
+<script>
+function test()
+{
+ debugger;
+}
+
+for (var i = 0; i < 1; ++i)
+ test();
+</script>
+
+Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=22004">Bug 22004: Can't set a breakpoint on the statement after a single line "for"</a>.
+<br><br>
+Start a debugging session in the Web Inspector and open this file. When the debugger breaks, select the (program) node
+in the call stack, you should see the execution line on the call to test().
+<br><br>
+Also set a breakpoint on the call to test(), and reload. It should break before the test() function is called.
diff --git a/ManualTests/inspector/debugger-scopes-inspection.html b/ManualTests/inspector/debugger-scopes-inspection.html
new file mode 100644
index 000000000..f06b3e7c4
--- /dev/null
+++ b/ManualTests/inspector/debugger-scopes-inspection.html
@@ -0,0 +1,35 @@
+<script>
+
+var obj = {
+ objField: 30
+};
+
+function handleLoad(e) {
+ new C().m();
+}
+
+function C() {
+ this.a = 10;
+ this.timestamp = Date.now();
+}
+
+C.prototype.m = function() {
+ this.timestamp = Date.now();
+ with (obj) {
+ debugger;
+ objField++;
+ }
+ var self = this;
+ setTimeout(function() {
+ self.m();
+ }, 1000);
+};
+
+
+</script>
+<body onload="handleLoad(event)">
+
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34161"> Bug 34161 - Local scope is shown as With scope in scope chain pane </a>.</p>
+<p>To test, open the Inspector and start a debugging session. In a second debugger will pause. While paused look at scope chain pane. There should be three scopes: 'With scope' containing objField variable, 'Local scope' with this and self variables and 'Global scope'. All scopes but 'Global' should be expanced. 'Global' scope should be collapsed(it takes too long to expand DOMWindow so we prefer to do it on demand). </p>
+</body>
+
diff --git a/ManualTests/inspector/debugger-shortcuts-with-console-opened.html b/ManualTests/inspector/debugger-shortcuts-with-console-opened.html
new file mode 100644
index 000000000..df089d54d
--- /dev/null
+++ b/ManualTests/inspector/debugger-shortcuts-with-console-opened.html
@@ -0,0 +1,16 @@
+<script>
+function testFunction()
+{
+ showAlert();
+}
+
+function showAlert()
+{
+ alert("Test completed.");
+}
+</script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=31252">Bug 31252: Web Inspector: Debugger shortcuts (F8, F10, F11) have no effect if the Console view is open</a>.</p>
+<p>To test, open the Inspector and start a debugging session. Open the Console view (press Esc or click the "Show console" button in the status bar) and make sure it is focused (the cursor is blinking in the text prompt.)
+Set a breakpoint inside testFunction() (on the showAlert() call) and press F8. Now click the Test button in the page. The execution should stop on an HTML line containing <b>onclick="testFunction()"</b>. Press F8. The execution should stop on the breakpoint.
+Press F11, F10, F11 sequentially. You should see the "Test completed." alert dialog ONLY after the last keypress.</p>
+<button onclick="testFunction()">Test</button><br><br>
diff --git a/ManualTests/inspector/debugger-status-bar-buttons-state.html b/ManualTests/inspector/debugger-status-bar-buttons-state.html
new file mode 100644
index 000000000..31ca3b121
--- /dev/null
+++ b/ManualTests/inspector/debugger-status-bar-buttons-state.html
@@ -0,0 +1,2 @@
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=19173">Bug 19173: Tool tips for Inspector debugger status bar buttons are wrong/missing</a>.</p>
+<p>To test, open the Inspector and go to the Scripts panel. Check that the tool tips for the debugger's two status bar buttons make sense when each button is toggled on and off.</p>
diff --git a/ManualTests/inspector/debugger-step-on-do-while-statements.html b/ManualTests/inspector/debugger-step-on-do-while-statements.html
new file mode 100644
index 000000000..190cbf8c1
--- /dev/null
+++ b/ManualTests/inspector/debugger-step-on-do-while-statements.html
@@ -0,0 +1,29 @@
+<script src="resources/loop-statements.js"></script>
+<script>
+function runDoWhile()
+{
+ /* place breakpoint on next line and click continue */ debugger;
+ do {
+ statement();
+ increment();
+ } while (condition());
+}
+
+</script>
+Start a debugging session in the Web Inspector and open this file.
+<br><br>
+Before running the tests please perform the following:
+Make sure the execution is not paused in the debugger.<br>
+Click the button and when the debugger breaks, set a breakpoint on the first line in the loop
+(as indicated by the comment), and click continue.<br>
+The debugger should stop at the beggining of the loop.<br>
+The above actions should be performed before <b>each</b> of the following tests.
+<br><br>
+<input type="button" value="run do-while" onclick="initialize();runDoWhile()"/>
+<br><br>
+TEST 1: Click 'continue'. Execution should continue without stopping on the loop breakpoint again.<br>
+TEST 2: Click 'Step over'. Debugger should step inside the loop to the next statement line.
+'Step over' until the debugger reaches the 'while' line. Click 'Step into' - the debugger should
+enter the 'condition' function.<br>
+TEST 3: 'Step over' to the end of the loop (and 'while' statement) and step over again. Debugger
+should go to the beggining of the loop.<br>
diff --git a/ManualTests/inspector/debugger-step-on-for-in-statements.html b/ManualTests/inspector/debugger-step-on-for-in-statements.html
new file mode 100644
index 000000000..8d6de7841
--- /dev/null
+++ b/ManualTests/inspector/debugger-step-on-for-in-statements.html
@@ -0,0 +1,35 @@
+<script>
+var myObj = {test : 1};
+function getObject()
+{
+ return myObj;
+}
+
+function statement() {
+ ;
+}
+
+function runForIn()
+{
+ /* place breakpoint on next line and click continue */ debugger;
+ for (var property in getObject())
+ statement();
+}
+
+</script>
+Start a debugging session in the Web Inspector and open this file.
+<br><br>
+Before running the tests please perform the following:
+Make sure the execution is not paused in the debugger.<br>
+Click the button and when the debugger breaks, set a breakpoint on the first line in the loop
+(as indicated by the comment), and click continue.<br>
+The debugger should stop at the beggining of the loop.<br>
+The above actions should be performed before <b>each</b> of the following tests.
+<br><br>
+<input type="button" value="run for-in" onclick="runForIn()"/>
+<br><br>
+TEST 1: Click 'continue'. Execution should continue without stopping on the loop breakpoint again.<br>
+TEST 2: Click 'Step over'. Debugger should step inside the loop to the next statement line.<br>
+TEST 3: Click 'Step into'. Debugger should step into 'getObject' function.<br>
+TEST 4: 'Step over' to the statement line and then 'Step over' again. Debugger should pause on
+the for-in loop again.<br>
diff --git a/ManualTests/inspector/debugger-step-on-for-statements.html b/ManualTests/inspector/debugger-step-on-for-statements.html
new file mode 100644
index 000000000..d3a50c668
--- /dev/null
+++ b/ManualTests/inspector/debugger-step-on-for-statements.html
@@ -0,0 +1,28 @@
+<script src="resources/loop-statements.js"></script>
+<script>
+function runFor()
+{
+ /* place breakpoint on next line and click continue */ debugger;
+ for (initialize(); condition(); increment())
+ statement();
+}
+</script>
+Start a debugging session in the Web Inspector and open this file.
+<br><br>
+Before running the tests please perform the following:
+Make sure the execution is not paused in the debugger.<br>
+Click the button and when the debugger breaks, set a breakpoint on the first line in the loop
+(as indicated by the comment), and click continue.<br>
+The debugger should stop at the beggining of the loop.<br>
+The above actions should be performed before <b>each</b> of the following tests.
+<br><br>
+<input type="button" value="run for" onclick="runFor()"/>
+<br><br>
+TEST 1: Click 'continue'. Execution should continue without stopping on the loop breakpoint again.<br>
+TEST 2: Click 'Step over'. Debugger should step inside the loop to the next statement line.<br>
+TEST 3: Click 'Step into'. Debugger should step into 'initialize' function. Click 'Step into' until
+outside of the 'initialize' function - debugger should enter the 'condition' function.<br>
+TEST 4: 'Step over' to the statement line and then 'Step over' again. Debugger should pause on
+the for loop again. Click 'Step into'. Debugger should step into the 'increment' function.
+Click 'Step into' until outside of the 'increment' function - debugger should enter the 'condition'
+function.<br>
diff --git a/ManualTests/inspector/debugger-step-on-while-statements.html b/ManualTests/inspector/debugger-step-on-while-statements.html
new file mode 100644
index 000000000..fd077bc81
--- /dev/null
+++ b/ManualTests/inspector/debugger-step-on-while-statements.html
@@ -0,0 +1,29 @@
+<script src="resources/loop-statements.js"></script>
+<script>
+function runWhile()
+{
+ /* place breakpoint on next line and click continue */ debugger;
+ while (condition()) {
+ statement();
+ increment();
+ }
+}
+
+</script>
+Start a debugging session in the Web Inspector and open this file.
+<br><br>
+Before running the tests please perform the following:
+Make sure the execution is not paused in the debugger.<br>
+Click the button and when the debugger breaks, set a breakpoint on the first line in the loop
+(as indicated by the comment), and click continue.<br>
+The debugger should stop at the beggining of the loop.<br>
+The above actions should be performed before <b>each</b> of the following tests.
+<br><br>
+<input type="button" value="run while" onclick="initialize();runWhile()"/>
+<br><br>
+TEST 1: Click 'continue'. Execution should continue without stopping on the loop breakpoint again.<br>
+TEST 2: Click 'Step over'. Debugger should step inside the loop to the next statement line.<br>
+TEST 3: Click 'Step into'. Debugger should step into 'condition' function.<br>
+TEST 4: 'Step over' the statements until reaching the end of the loop. Debugger should
+step over to the beggingin of the while loop again. Click 'Step into'. Debugger should step into
+the 'condition' function.<br>
diff --git a/ManualTests/inspector/debugger-watch-expressions.html b/ManualTests/inspector/debugger-watch-expressions.html
new file mode 100644
index 000000000..eb883c941
--- /dev/null
+++ b/ManualTests/inspector/debugger-watch-expressions.html
@@ -0,0 +1,115 @@
+<p>Test for
+<a href="https://bugs.webkit.org/show_bug.cgi?id=27514">Bug 27514 - add support for watched expression</a>.
+
+<p>To begin test, open web inspector, go the scripts panel
+(enabling script debugging if necccessary), and then click this link:
+<a href="javascript:runTest()">[begin test]</a>.
+
+<p>Perform the following steps, and note the expected results:
+
+<ol>
+
+<li><p>After clicking the link above, you should now be paused in the body of
+the test method, thanks to the <code>debugger</code> statement.
+
+<li><p>Add the following expressions to the "Watch Expressions" section of the
+Scripts panel sidebar pane: "<code>this</code>", "<code>a</code>",
+"<code>b</code>", "<code>c</code>" and "<code>d</code>". Do <b>NOT</b> enter the quotes.
+
+<li><p>The values of the expressions as shown in the window should a
+<code>DOMWindow</code> for <code>this</code>, <code>undefined</code> for
+the <code>a</code>, <code>b</code>, and <code>c</code> variables, and a
+value of <code>ReferenceError: Can't find variable: d</code>
+for the <code>d</code> variable.
+
+<li><p>Note that the value for <code>d</code> should not change for the life of
+the test, as the variable <code>d</code> is never introduced in the program.
+
+<li><p>Step through the code, and you'll see the values of <code>a</code>,
+<code>b</code>, and <code>c</code> change, as the variables are assigned.
+Also note that as the scope changes due to the function invocation, values
+will be changed to refer to their current scope. The <code>this</code>
+expression will change when the method is invoked on the object constructed by
+the test.
+
+<li><p>Click different stack frames in the Call Stack section to ensure the
+expressions change value appropriately as the current stack frame changes.
+
+<li><p>Drive the debugger through the end of the outermost function, so that
+the debugger is no longer in paused state. The values of
+<code>a</code>, <code>b</code>, and <code>c</code> should all be a
+ReferenceError like <code>d</code>, since these variables are defined in the
+<code>runTest()</code> function, and the expressions are being evaluated against
+the global object.
+
+<li><p>From the console, execute the statement "<code>a = 1</code>". The
+watch expressions do not currently refresh, so the value for <code>a</code>
+should still be ReferenceError.
+
+<li><p>Click the "Refresh" button in the Watch Expressions section and the
+value for "<code>a</code>" should now be "<code>1</code>".
+
+<li><p>Close down the browser, start it back up, traverse to a web site,
+bring up web inspector, go to the Scripts panel. You should see the same
+set of Watch Expressions in the list as you had when you last used web
+inspector.
+
+<li><p>Delete an expression by moving the mouse into the Watch Expression
+section, and clicking the X icon which appears to the right of an
+expression (on hover).
+
+<li><p>Delete an expression by double-clicking anywhere on a top-level line
+of a watch expression, and changing the expression to an empty string or
+nothing but white-space.
+
+<li><p>Modify an entry by double-clicking anywhere on a top-level line
+of a watch expression, and changing the expression.
+
+<li><p>Enter a new expression, "<code>new Date()</code>". The value should be
+a toString() version of the date. Repeatedly press the Refresh button to see
+the value updated with the current time.
+
+</ol>
+
+<script>
+function runTest() {
+
+ // a nested function
+ function subFunction() {
+ debugger;
+ var a = "a in subFunction()";
+
+ subSubFunction();
+
+ // another nested function
+ function subSubFunction() {
+ debugger;
+ var b = "b in subSubFunction()";
+ }
+ }
+
+ // a class
+ function aClass() {
+ this.x = "xxx";
+ this.y = "yyy";
+ }
+
+ aClass.prototype.aMethod = function() {
+ debugger;
+ var c = "c in aMethod()";
+ }
+
+ // main logic
+ debugger;
+
+ var a = "a in runTest()";
+ var b = "b in runTest()";
+ var c = "c in runTest()";
+
+ subFunction();
+
+ var object = new aClass();
+ object.aMethod();
+
+}
+</script>
diff --git a/ManualTests/inspector/display-form-data.html b/ManualTests/inspector/display-form-data.html
new file mode 100644
index 000000000..48cd817e2
--- /dev/null
+++ b/ManualTests/inspector/display-form-data.html
@@ -0,0 +1,249 @@
+<html>
+<head>
+<title>Tests for Bug 22920</title>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
+</head>
+
+<body>
+<p>Tests for
+<ul>
+<li><p><a href="https://bugs.webkit.org/show_bug.cgi?id=22920">Bug 22920: Inspector Request Headers Should Show Data/Variables/Parameters Sent With Request</a>
+<li><p><a href="https://bugs.webkit.org/show_bug.cgi?id=28970">Bug 28970: content-type parameters not taken into account when building form-data</a>
+</ul>
+
+<p>To test, open the Inspector on this page, go to the Resources panel,
+and select the various resources created by this page in the left column of the
+Resources panel. Note that for test-4 ...
+test-11, the -sync and -async versions should show the same Form Data,
+Request Payload and/or Query String Parameter values.
+
+<ul>
+
+<li><p><b>test-1</b>:
+<br>no Form Data, Request Payload or Query String Parameters
+
+<li><p><b>test-2</b>:
+<br>Query String Parameters (1): "parm1: abc"
+
+<li><p><b>test-3</b>:
+<br>Query String Parameters (2): "parm1: def" and "parm2: g h i";
+Hovering over either parm should yield a tooltip:
+<i>"Double-Click to toggle between URL encoded and decoded formats"</i>.
+Double-clicking on either parm should toggle between encoded and decoded
+versions of the string. The decoded form is initially displayed.
+The encoded form of parm2 is "g%20h+i".
+
+<li><p><b>test-4</b>:
+<br>no Form Data, Request Payload or Query String Parameters
+
+<li><p><b>test-5</b>:
+<br>Query String Parameters (1): "parm1: abc"
+
+<li><p><b>test-6</b>:
+<br>Query String Parameters (3): "parm1: def" and "parm2: g h i" and "parm3: jj kk ll"
+
+<li><p><b>test-7</b>:
+<br>Request Payload: 3 lines of text data with a very long 2nd line which should wrap
+
+<li><p><b>test-8</b>:
+<br>Request Payload: 3 lines of text data with a very long 2nd line which should wrap
+
+<li><p><b>test-9</b>:
+<br>Request Payload: 3 lines of text data with a very long 2nd line of binary data which should wrap
+
+<li><p><b>test-10</b>:
+<br>Form Data (1): "parm1: abc"
+
+<li><p><b>test-11</b>:
+<br>Form Data (2): "parm1: def" and "parm2: g h i"
+
+<li><p><b>test-12</b>:
+<br>Query String Parameters (2): "parm1: abc" and "parm2: d e f"
+<br>Form Data (2): "parm1: ghi" and "parm2: j k l"
+
+<li><p><b>test-13</b>:
+<br>Query String Parameters (2): "parm1: &auml;bc" and "parm2: d &#x11B; f"
+<br>Form Data (2): "parm1: ghi" and "parm2: j k l"
+<p>Note that you should view the encoded values of the query string parameters
+by double-clicking on one of the parameters. The values should be:
+<pre>
+parm1: %C3%A4bc
+parm2: d%20%C4%9B+f
+</pre>
+
+<li><p><b>test-14</b>:
+<br>Same results as for test-13, a slightly different but compatible Content-Type
+is used for the form data.
+
+<li><p><b>test-15</b>:
+<br>Query String Parameters (2): "parm1: % (unable to decode value)" and "parm2: % (unable to decode value)",
+with the parenthesized part in red.
+<br>Form Data (2): "parm1: % (unable to decode value)" and "parm2: % (unable to decode value)",
+with the parenthesized part in red.
+<p>Note that you should view the encoded values of the query string parameters
+by double-clicking on one of the parameters. The values for all four parameters should be "%".
+
+<li><p><b>test-form</b>:
+<br>For this test, invoke the form at the bottom of the page
+by pressing the submit button. The Resources panel should have a "test-form"
+resource, with the following data:
+<p>Form Data (2): "field1: value &auml;;b;c" and "field2:value d;&#x11B;;f"
+<p>Note that you should view the encoded values of the query string parameters
+by double-clicking on one of the parameters. The values should be:
+<pre>
+field1: value+%C3%A4%3Bb%3Bc
+field2: value+d%3B%C4%9B%3Bf</pre>
+</ul>
+
+<p><b>test-form</b>
+<form id="form" action="http://example.org/test-form" method="post" enctype="application/x-www-form-urlencoded">
+<span style="font-size:200%">field1:</span> <input style="font-size:200%" type="text" name="field1" value="value &auml;;b;c"><br>
+<span style="font-size:200%">field2:</span> <input style="font-size:200%" type="text" name="field2" value="value d;&#x11B;;f"><br>
+<input type="submit">
+</form>
+
+<div style="display:none">
+
+<img src="http://example.org/test-1">
+<img src="http://example.org/test-2?parm1=abc">
+<img src="http://example.org/test-3?parm1=def&amp;parm2=g%20h+i">
+
+</div>
+
+<hr>
+
+<p><b>NLS sample info</b>
+
+<pre>
+<span style="font-size:300%">&auml;</span> - LATIN SMALL LETTER A WITH DIAERESIS
+Unicode: 0x00E4 == 228
+UTF8: C3 A4
+HTML: &amp;auml;
+
+<span style="font-size:300%">&#x11B;</span> - LATIN SMALL LETTER E WITH CARON
+Unicode: 0x011B == 283
+UTF8: C4 9B
+HTML: &amp;#x11B;
+</pre>
+
+<script>
+
+function getReadyState(num) {
+ switch(num) {
+ case 0: return "uninitialized";
+ case 1: return "loading";
+ case 2: return "loaded";
+ case 3: return "interactive";
+ case 4: return "complete";
+ default: return "unknown: " + num;
+ }
+}
+
+function getProcessXHR(request) {
+ return function() {
+ if (true) return;
+ var rs = getReadyState(request.readyState);
+ console.log("ready state change for " + request.url);
+ console.log(" ready state: " + rs);
+ console.log(" response text: " + request.responseText);
+ if (request.readyState == 4) {
+ console.log(" status: " + request.status);
+ console.log(" status text: " + request.statusText);
+ }
+ }
+}
+
+function sendXHR(url, method, headers, body) {
+ if (!method) method = "GET";
+ if (!headers) headers = [];
+ if (!body) body="";
+
+ // copy headers
+ var headersNew = [];
+ for (var i=0; i<headers.length; i++) {
+ headersNew.push(headers[i]);
+ }
+ headers = headersNew;
+
+ if (body != "") {
+ headers.push(["Content-Length", body.length.toString()]);
+ }
+
+ // sync
+ var req = new XMLHttpRequest();
+
+ req.url = url.replace("^","-sync");
+ req.onreadystatechange = getProcessXHR(req);
+ req.open(method, req.url, false);
+
+ for (var i=0; i<headers.length; i++) {
+ req.setRequestHeader(headers[i][0], headers[i][1]);
+ }
+
+ req.send(body);
+
+ // async
+ var req = new XMLHttpRequest();
+
+ req.url = url.replace("^","-async");
+ req.onreadystatechange = getProcessXHR(req);
+ req.open(method, req.url, true);
+
+ for (var i=0; i<headers.length; i++) {
+ req.setRequestHeader(headers[i][0], headers[i][1]);
+ }
+
+ req.send(body);
+}
+
+var headersPlain = [
+ ["Content-Type", "text/plain"]
+];
+
+var headersForm = [
+ ["Content-Type", "application/x-www-form-urlencoded"]
+];
+
+var headersFormExtra1 = [
+ ["Content-Type", "application/x-www-form-urlencoded;something-else=here"]
+];
+
+var headersFormExtra2 = [
+ ["Content-Type", "application/x-www-form-urlencoded ; something-else=here"]
+];
+
+var headersBinary = [
+ ["Content-Type", "application/octet-stream"]
+];
+
+var longText = "some text with a \n";
+for (var i=0; i<40; i++) {
+ longText += "very-";
+}
+longText += "long\nline in it";
+
+var binaryData = "some text with binary data\n";
+for (var i=0; i<256; i++) {
+ binaryData += String.fromCharCode(i);
+}
+binaryData += "\nin the middle of it";
+
+
+sendXHR("http://example.org/test-4^");
+sendXHR("http://example.org/test-5^?parm1=abc");
+sendXHR("http://example.org/test-6^?parm1=def&parm2=g%20h+i&parm3=jj++kk%20%20ll");
+
+sendXHR("http://example.org/test-7^", "POST", null, longText);
+sendXHR("http://example.org/test-8^", "POST", headersPlain, longText);
+sendXHR("http://example.org/test-9^", "POST", headersBinary, binaryData);
+sendXHR("http://example.org/test-10^", "POST", headersForm, "parm1=abc");
+sendXHR("http://example.org/test-11^", "POST", headersForm, "parm1=def&parm2=g%20h+i");
+sendXHR("http://example.org/test-12^?parm1=abc&parm2=d%20e+f", "POST", headersForm, "parm1=ghi&parm2=j%20k+l");
+sendXHR("http://example.org/test-13^?parm1=%C3%A4bc&parm2=d%20%C4%9B+f", "POST", headersFormExtra1, "parm1=ghi&parm2=j%20k+l");
+sendXHR("http://example.org/test-14^?parm1=%C3%A4bc&parm2=d%20%C4%9B+f", "POST", headersFormExtra2, "parm1=ghi&parm2=j%20k+l");
+sendXHR("http://example.org/test-15^?parm1=%&parm2=%", "POST", headersForm, "parm1=%&parm2=%");
+
+</script>
+
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/inspector/display-sql-null.html b/ManualTests/inspector/display-sql-null.html
new file mode 100644
index 000000000..1d1403bda
--- /dev/null
+++ b/ManualTests/inspector/display-sql-null.html
@@ -0,0 +1,21 @@
+<script>
+ try {
+ var db = openDatabase("InspectorTest", "0.1", "Database for Inspector tests", 200000);
+ db.transaction(function(tx) {
+ tx.executeSql("CREATE TABLE DisplaySQLNull (test TEXT)", [], function(tx) {
+ tx.executeSql("INSERT INTO DisplaySQLNull (test) VALUES (NULL)");
+ })
+ });
+ } catch (e) {
+ }
+</script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=18837">Bug 18837: Database panel fails to display tables if any value is NULL</a>.</p>
+<p>To test:</p>
+<ol>
+ <li>Open the Inspector</li>
+ <li>Go to the Databases panel</li>
+ <li>Click on the <code>DisplaySQLNull</code> table inside the <code>InspectorTest</code> database</li>
+</ol>
+<p>If the contents of the table appear (a single row with the value
+"<code>null</code>" in the <code>test</code> column), you have passed the
+test.</p>
diff --git a/ManualTests/inspector/display-sql-transaction-error.html b/ManualTests/inspector/display-sql-transaction-error.html
new file mode 100644
index 000000000..da2d310d0
--- /dev/null
+++ b/ManualTests/inspector/display-sql-transaction-error.html
@@ -0,0 +1,24 @@
+<script>
+ try {
+ var db = openDatabase("InspectorTest", "0.1", "Database for Inspector tests", 200000);
+ db.transaction(function(tx) {
+ tx.executeSql("CREATE TABLE DisplaySQLTransactionError (test TEXT)", []);
+ });
+ } catch (e) {
+ }
+</script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=19438">Bug 19438: Transaction errors are never displayed in database query view</a>.</p>
+<p>To test:</p>
+<ol>
+ <li>Open the Inspector</li>
+ <li>Go to the Databases panel</li>
+ <li>Click on the <code>InspectorTest</code> database</li>
+ <li>Enter the following text on the query input line: <code>INSERT INTO DisplaySQLTransactionError (test) VALUES (NULL)</code></li>
+</ol>
+<p>If the line of text you entered remains and an error line is output below
+it, you have passed the test.</p>
+<p>If the line of text you entered disappears and no error line is output, you
+have failed the test.</p>
+<p>If the line of text you entered remains and no error line is output, then
+the test has become invalid and needs to be modified to cause the error
+callback passed by the Inspector to <code>db.transaction</code> to be called.</p>
diff --git a/ManualTests/inspector/dom-mutation.html b/ManualTests/inspector/dom-mutation.html
new file mode 100644
index 000000000..33e8333ae
--- /dev/null
+++ b/ManualTests/inspector/dom-mutation.html
@@ -0,0 +1,31 @@
+<script>
+function test1() {
+ document.getElementById("test").src = "resources/mutate-frame.html";
+}
+
+function test2() {
+ document.getElementById("test").src = "resources/mutate-frame-2.html";
+}
+
+var count = 1;
+function run() {
+ var container = document.getElementById("test2");
+ var div = document.createElement("div");
+ div.textContent = "Testing " + (count++);
+ container.appendChild(div);
+ if (count > 10)
+ container.removeChild(container.firstChild);
+}
+
+setInterval(run, 1000);
+</script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=6590">Bug 6590: Web Inspector shows stale DOM tree if the DOM changes after the inspector has loaded</a>.</p>
+<p>To test, open the Inspector and watch the DOM change to match the page. Clicking the buttons will navigate the subframe, and the all the subframe child nodes should change.</p>
+<div style="clear: both">
+<button onclick="test1()">Test Frame 1</button>
+<button onclick="test2()">Test Frame 2</button>
+</div>
+<div style="float: left">
+<iframe id="test" src="resources/mutate-frame.html" width="200" height="300"></iframe>
+</div>
+<div style="float: left; margin-left: 10px;" id="test2"></div>
diff --git a/ManualTests/inspector/duplicate-resource-urls.html b/ManualTests/inspector/duplicate-resource-urls.html
new file mode 100644
index 000000000..7a9be7ede
--- /dev/null
+++ b/ManualTests/inspector/duplicate-resource-urls.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<title>Tests for Bug 30079</title>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
+</head>
+
+<body>
+<p>Tests for
+<ul>
+<li><p><a href="https://bugs.webkit.org/show_bug.cgi?id=30079">Bug 30079: unselectable resources in resource panel</a>
+</ul>
+
+<p>To test, open the Inspector on this page, go to the Resources panel.
+
+<p>First off, you should be able to actually select each "abc" resource to see
+the HTTP info / content. Bug 30079 didn't allow you to select all of these.
+
+<p>For each of the "abc" resources open the <b>HTTP Information</b> and
+<b>Request Payload</b> tree elements above the content. One of the resources
+will not have a <b>Request Payload</b>.
+
+<p>There should be one each of the following resources:
+
+<ul>
+<li><p>One with a Request Method: GET and no Request Payload
+<li><p>One with a Request Method: POST and Request Payload of "123"
+<li><p>One with a Request Method: POST and Request Payload of "456"
+</ul>
+
+<p>Another change made by this bug was to change the way the drag/drop of
+the resource itself worked. The previous method of handling drag/drop of
+the resource was actually causing the unselectability. So the drag/drop
+of the resources needs to be tested as well.
+
+<ul>
+<li><p>Select one of the resources.
+<li><p>Drag it to an application that can accept text or a link
+<li><p>The application should provide some feedback indicating it will accept
+the drop, but may not
+<li>Drop, and the URL for the resource should be rendered appropriately.
+
+<script>
+
+var xhr;
+
+xhr = new XMLHttpRequest();
+xhr.open("POST", "http://example.org/abc");
+xhr.send("123");
+
+xhr = new XMLHttpRequest();
+xhr.open("POST", "http://example.org/abc");
+xhr.send("456");
+
+xhr = new XMLHttpRequest();
+xhr.open("GET", "http://example.org/abc");
+xhr.send();
+
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/inspector/error-warning-count.html b/ManualTests/inspector/error-warning-count.html
new file mode 100644
index 000000000..9f6b9c23f
--- /dev/null
+++ b/ManualTests/inspector/error-warning-count.html
@@ -0,0 +1,60 @@
+<script>
+ function clickHandler(errors, warnings)
+ {
+ return function()
+ {
+ for (var i = 0; i < errors; ++i)
+ console.error("Error " + (i + 1));
+ for (var i = 0; i < warnings; ++i)
+ console.warn("Warning " + (i + 1));
+ }
+ }
+
+ function loaded()
+ {
+ var tests = [
+ { errors: 0, warnings: 0 },
+ { errors: 1, warnings: 0 },
+ { errors: 2, warnings: 0 },
+ { errors: 0, warnings: 1 },
+ { errors: 0, warnings: 2 },
+ { errors: 1, warnings: 1 },
+ { errors: 1, warnings: 2 },
+ { errors: 2, warnings: 1 },
+ { errors: 2, warnings: 2 },
+ { errors: 100, warnings: 100 },
+ ];
+
+ for (var i in tests) {
+ var test = tests[i];
+
+ var button = document.createElement("button");
+ var content = "";
+ if (!test.errors && !test.warnings)
+ content = "(nothing)";
+ else {
+ if (test.errors > 0)
+ content += test.errors + " error" + (test.errors != 1 ? "s" : "");
+ if (test.warnings > 0) {
+ if (content.length)
+ content += ", ";
+ content += test.warnings + " warning" + (test.warnings != 1 ? "s" : "")
+ }
+ }
+ button.innerText = content;
+ button.onclick = clickHandler(test.errors, test.warnings);
+ var p = document.createElement("p");
+ p.appendChild(button);
+ document.body.appendChild(p);
+ }
+ }
+</script>
+<body onload="loaded()">
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=18650">Bug 18650:
+Errors/warnings in Inspector should be visible outside of Resources</a>.</p>
+<p>To test, open the Inspector and click one of the buttons below. You should
+see an error and/or warning count in the Inspector's status bar. Clicking on
+the error/warning count should open the Console. Hovering over the
+error/warning count should show you a tooltip that matches the text in the
+button you clicked.</p>
+<p>Note: You must reload the page between each button press.</p>
diff --git a/ManualTests/inspector/errors-with-space in-url.html b/ManualTests/inspector/errors-with-space in-url.html
new file mode 100644
index 000000000..07e8ee0b1
--- /dev/null
+++ b/ManualTests/inspector/errors-with-space in-url.html
@@ -0,0 +1,7 @@
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=19065">Bug 19065:
+Resources with a space in their URL don't get error/warning bubbles</a>.</p>
+<p>To test, open the Inspector and refresh this page. There should be a red
+bubble with the number "1" in it next to the main resource in the Resources
+panel. Clicking the button below should change the "1" to a "2".</p>
+<p></p></p>
+<button onclick="console.error('hi')">click me</button>
diff --git a/ManualTests/inspector/escape-links.html b/ManualTests/inspector/escape-links.html
new file mode 100644
index 000000000..5c5f6c052
--- /dev/null
+++ b/ManualTests/inspector/escape-links.html
@@ -0,0 +1 @@
+<html>
diff --git a/ManualTests/inspector/forzen-ui-while-paused.html b/ManualTests/inspector/forzen-ui-while-paused.html
new file mode 100644
index 000000000..b8d50b080
--- /dev/null
+++ b/ManualTests/inspector/forzen-ui-while-paused.html
@@ -0,0 +1,11 @@
+<script>
+function foo() {
+ var timeout = setTimeout(function() { alert("This should not happen. If you do see this alert, then timers on the page are firing while paused!") }, 0);
+ debugger;
+ clearTimeout(timeout);
+}
+
+setTimeout(foo, 100);
+</script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=20042">Bug 20042: UI frozen when the debugger is paused</a>.</p>
+<p>Open the inspector and start debugging in the Scripts panel. While paused, try to open the Console. The Console should animate open fully.</p>
diff --git a/ManualTests/inspector/hidden-evals.html b/ManualTests/inspector/hidden-evals.html
new file mode 100644
index 000000000..c507bcd70
--- /dev/null
+++ b/ManualTests/inspector/hidden-evals.html
@@ -0,0 +1,118 @@
+
+<p><b>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=30212">Bug 30212</a> - Each JS execution in console adds extra item into "scripts" combo</b>
+
+<p>The following manual test creates functions via <tt>eval()</tt> and the
+<tt>Function()</tt> constructor, some functions are named using the
+<code>//@sourceURL=</code> directive, some aren't. Some contain
+<tt>debugger</tt> commands, some don't.
+
+<p>The functions named <tt>f_named_X</tt> are 'named' via the
+<code>//@sourceURL=</code> directive, the ones named <tt>f_unnamed_X</tt>
+are not. The 'named' functions should show up in the Scripts select element used
+to select a resource/script to view, the 'unnamed' ones should not.
+
+<ul>
+<li><p>open this page with Web Inspector
+<li><p>switch to the Scripts panel, enabling debug if required
+<li><p>the available scripts in the select element should be:
+<ul>
+<li>(program): f_named_1.eval
+<li>(program): f_named_2.eval
+<li>(program): f_named_3.eval
+<li>hidden-evals.html
+</ul>
+<li><p>click this button: <input id=button type=button value="click me">
+<li><p>debugger should stop in the <code>clickHandler</code> function
+<li><p>at this point, start stepping <b>into</b> the code
+<li><p>you should be able to step into functions <code>f_unnamed_1()</code>
+and <code>f_unnamed_2()</code>. There are no resource/scripts in the
+select element that contain these functions, until you actually are paused
+in them. At that point, entries for these functions will be in the select element,
+named: "(program)". After pausing in both functions, there will be two "(program)"
+entries.
+<li><p>you should be able to use the next/prev buttons (to the left of the select element)
+to switch to other resources/scripts that have been opened, including the ones
+containing these functions
+<li><p>you should be able to click on the functions that exist in the 'hidden'
+resources from the Call Stack, and be shown the source; click around the
+stack trace entries to verify
+<li><p>rather than stepping into the <code>f_named_3()</code> call, press the
+resume button
+<li><p>the debugger should stop in <code>f_named_3()</code> because of the
+<code>debugger</code> command
+<li><p>rather than stepping into the <code>f_unnamed_3()</code> call, press the
+resume button
+<li><p>the debugger should stop in <code>f_unnamed_3()</code> because of the
+<code>debugger</code> command. At this point, a third "(program)" entry for
+this function is added to the select element.
+</ul>
+
+<script>
+
+function doNothing() { /* allows multi-line functions, easier to debug */ };
+
+eval([
+ "function f_named_1() {",
+ " doNothing();",
+ " return 'named_1';",
+ "}",
+ "//@sourceURL=f_named_1.eval"
+].join("\n"));
+
+eval([
+ "function f_unnamed_1() {",
+ " doNothing();",
+ " return 'unnamed_1';",
+ "}"
+].join("\n"));
+
+f_named_2 = Function([
+ "",
+ " doNothing();",
+ " return 'named_2';",
+ "//@sourceURL=f_named_2.eval"
+].join("\n"));
+
+f_unnamed_2 = Function([
+ "",
+ " doNothing();",
+ " return 'unnamed_2';"
+].join("\n"));
+
+f_named_3 = Function([
+ "",
+ " debugger;",
+ " doNothing();",
+ " return 'named_3';",
+ "//@sourceURL=f_named_3.eval"
+].join("\n"));
+
+f_unnamed_3 = Function([
+ "",
+ " debugger;",
+ " doNothing();",
+ " return 'unnamed_3';"
+].join("\n"));
+
+var button = document.getElementById("button");
+
+button.addEventListener("click", clickHandler, false);
+
+function clickHandler() {
+ debugger;
+ f_named_1();
+ f_unnamed_1();
+ f_named_2();
+ f_unnamed_2();
+
+ // press "resume" at this point
+ console.log("press resume before calling f_named_3()");
+ f_named_3();
+
+ // press "resume" at this point
+ console.log("press resume before calling f_unnamed_3()");
+ f_unnamed_3();
+}
+
+</script>
+<!-- End -->
diff --git a/ManualTests/inspector/highlight-nodes.html b/ManualTests/inspector/highlight-nodes.html
new file mode 100644
index 000000000..6712b3af6
--- /dev/null
+++ b/ManualTests/inspector/highlight-nodes.html
@@ -0,0 +1,23 @@
+<style>
+.skewed {
+ -webkit-transform:skew(-5deg,-5deg);
+}
+</style>
+<p>This page has basic tests of node highlighting in the inspected page. To tests, load this page, open the inspector and mouseover the nodes in the treeview of the inspector. You should see the highlights happen with the appropriate padding/border/margin/content highlights.</p>
+<div style="padding:10px; border: 10px solid; margin: 10px;">padding:10px; border: 10px; margin: 10px;</div>
+<div style="padding:10px; border: 10px solid;">padding:10px; border: 10px;</div>
+<div style="padding:10px; margin: 10px;">padding:10px; margin: 10px;</div>
+<div style="border: 10px solid; margin: 10px;">border: 10px; margin: 10px;</div>
+<div style="padding:10px">padding:10px;</div>
+<div style="border: 10px solid;">border: 10px;</div>
+<div style="margin: 10px;">margin: 10px;</div>
+<div>no padding, border, or margin</div>
+<div class=skewed style="padding:10px; border: 10px solid; margin: 10px;">-webkit-transform:skew(-5deg,-5deg); padding:10px; border: 10px; margin: 10px;</div>
+<div class=skewed style="padding:10px; border: 10px solid;">-webkit-transform:skew(-5deg,-5deg); padding:10px; border: 10px;</div>
+<div class=skewed style="padding:10px; margin: 10px;">-webkit-transform:skew(-5deg,-5deg); padding:10px; margin: 10px;</div>
+<div class=skewed style="border: 10px solid; margin: 10px;">-webkit-transform:skew(-5deg,-5deg); border: 10px; margin: 10px;</div>
+<div class=skewed style="padding:10px">-webkit-transform:skew(-5deg,-5deg); padding:10px;</div>
+<div class=skewed style="border: 10px solid;">-webkit-transform:skew(-5deg,-5deg); border: 10px;</div>
+<div class=skewed style="margin: 10px;">-webkit-transform:skew(-5deg,-5deg); margin: 10px;</div>
+<div class=skewed >-webkit-transform:skew(-5deg,-5deg); no padding, border, or margin</div>
+
diff --git a/ManualTests/inspector/highlight-source-line.html b/ManualTests/inspector/highlight-source-line.html
new file mode 100644
index 000000000..2520485a8
--- /dev/null
+++ b/ManualTests/inspector/highlight-source-line.html
@@ -0,0 +1,4 @@
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=19204">Bug 19204: Inspector should highlight source lines when following links to them</a>.</p>
+<p>To test, open the Inspector and reload this page. Then open the Inspector's Console and click the link for the markup error. You should see the line containing the error briefly highlighted in the source view.</p>
+
+<p>This line contains a markup error</i>.</p>
diff --git a/ManualTests/inspector/multiple-console-messages.html b/ManualTests/inspector/multiple-console-messages.html
new file mode 100644
index 000000000..842e6aad3
--- /dev/null
+++ b/ManualTests/inspector/multiple-console-messages.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+ <script>
+ function generateErrors(number)
+ {
+ for (var i = 0; i < number; ++i)
+ console.error("This is an error.");
+ }
+
+ function generateLogs(number)
+ {
+ for (var i = 0; i < number; ++i)
+ console.log("This is a log.");
+ }
+
+ function generateWarnings(number)
+ {
+ for (var i = 0; i < number; ++i)
+ console.warn("This is a warning.");
+ }
+
+ function generateInfos(number)
+ {
+ for (var i = 0; i < number; ++i)
+ console.info("This is an info.");
+ }
+
+ function startTest()
+ {
+ generateErrors(3);
+ generateLogs(3);
+ generateWarnings(3);
+
+ console.group();
+
+ generateErrors(2);
+ generateLogs(1);
+ generateErrors(2);
+
+ generateLogs(2);
+ generateWarnings(1);
+ generateLogs(2);
+
+ generateWarnings(2);
+ generateErrors(1);
+ generateWarnings(2);
+
+ console.groupEnd();
+
+ generateErrors(1);
+ console.group();
+ generateErrors(1);
+ console.group();
+ generateErrors(1);
+ console.groupEnd();
+ generateErrors(1);
+ console.groupEnd();
+ generateErrors(1);
+
+ console.warn("Same message, different level");
+ console.error("Same message, different level");
+ console.log("Same message, different level");
+ console.info("Same message, different level");
+
+ console.log("Variadic message: %s", "message 1");
+ console.log("Variadic message: %s", "message 2");
+ console.log("Variadic message: %s", "message 3");
+ console.log("Variadic message: %s", "message 4");
+
+ console.warn("Warning and error on same line."); console.error("Warning and error on same line."); console.warn("Warning and error on same line."); console.error("Warning and error on same line.");
+
+ }
+ </script>
+</head>
+<body onload="startTest()">
+This test generates warnings, errors, and logs to test the grouping of repeated
+messages in the Web Inspector. To check this test open the Web Inspector and see
+that there are never any repeated messages that don't have a number next to them.
+<br>
+<br>
+<input type="button" onclick="generateErrors(1)" value="Put Error in Console"></input>
+<br>
+<input type="button" onclick="generateLogs(1)" value="Put Log in Console"></input>
+<br>
+<input type="button" onclick="generateWarnings(1)" value="Put Warning in Console"></input>
+</body>
diff --git a/ManualTests/inspector/named-evals.html b/ManualTests/inspector/named-evals.html
new file mode 100644
index 000000000..0c5253172
--- /dev/null
+++ b/ManualTests/inspector/named-evals.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+<script>
+
+function log(message) {
+ console.log(message)
+}
+
+var funcBody = "(){\n" +
+" var thisFunc = arguments.callee;\n" +
+" if (!thisFunc.name) thisFunc.displayName = 'f%';\n" +
+" log(thisFunc.name || thisFunc.displayName);\n" +
+"}";
+
+var funcs = [];
+var patterns = [
+ // proper use of @sourceURL comment
+ "//@sourceURL=f%.js\nfuncs.push(function" + funcBody + ")",
+ "//@sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ " //@sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "// @sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "//@ sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "//@sourceURL =f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "//@sourceURL= f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "//@sourceURL=f%.js \nfuncs.push(function f%" + funcBody + ")",
+ " // @ sourceURL = f%.js \nfuncs.push(function f%" + funcBody + ")",
+ "//@sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ");\n//@sourceURL=should-not-see\n",
+ "funcs.push(function f%" + funcBody + ")\n//@sourceURL=f%.js\n",
+ "funcs.push(function f%" + funcBody + ")\n//@sourceURL=f%.js \n",
+ "funcs.push(function f%" + funcBody + ")\n//@sourceURL=f%.js",
+
+ // improper or non-existant use of @sourceURL comment
+ "funcs.push(function f%" + funcBody + ")",
+ "//@sourceurl=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "//sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "/*@sourceURL=f%.js*/\nfuncs.push(function f%" + funcBody + ")",
+ "//\nsourceURL='f%.js';\nfuncs.push(function f%" + funcBody + ")",
+ "//@sourceURL=\nfuncs.push(function" + funcBody + ")",
+];
+
+
+for (var i=0; i<patterns.length; i++) {
+ eval(patterns[i].replace(/%/g, i));
+}
+
+</script>
+</head>
+
+<body>
+<p>This page's JavaScript calls functions from named eval()'s.
+
+<p>Used to test <a href="https://bugs.webkit.org/show_bug.cgi?id=25475">https://bugs.webkit.org/show_bug.cgi?id=25475</a>
+
+<p>Load the Web Inspector and look at
+the script's panel, and the script list drop-down control.
+You should see entries for scripts named
+<tt>"(program):f0.js"</tt> through <tt>"(program):f12.js"</tt>. The entries were named
+via proper use of the <tt>//@sourceURL</tt> comment. There will also be entries
+named <tt>"(program)"</tt> for source that does not properly use, or use at all,
+the <tt>//@sourceURL</tt> comment.
+
+<p>Now, set a breakpoint in the body of the <tt>"f0"</tt> function in the
+<tt>"(program):f0.js"</tt> script. Then click this button:
+
+<p><input type="button" value="run" onclick="funcs[0]()">
+
+<p>When stopped at the breakpoint, the entry for the function in the
+call stack control should the name of the script, <tt>"(program):f0.js"</tt>,
+beside the function name <tt>"f0"</tt>. Note the function name for
+<tt>f0</tt> is set with the new <tt>"displayName"</tt> property.
+</body>
+</html>
diff --git a/ManualTests/inspector/profiler-test-call.html b/ManualTests/inspector/profiler-test-call.html
new file mode 100644
index 000000000..572a2e91e
--- /dev/null
+++ b/ManualTests/inspector/profiler-test-call.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+<script src="resources/profiler-test-JS-resources.js"></script>
+<script>
+console.profile("Using the call() method");
+function startTest()
+{
+ var myObject = new fakeObject(1, 2);
+ endTest();
+}
+
+function fakeObject (x, y)
+{
+ this.x = x;
+ fakeInteriorFunction.call(this, y);
+}
+
+function fakeInteriorFunction(y)
+{
+ this.y = y;
+}
+
+</script>
+</head>
+
+<body onload="startTest()">
+This page's JavaScript has a call to call() in it.
+<br>
+<br>
+To use this test, load it in the browser then load the WebInspector and look at
+the profile. In the profile there should be a call to fakeObject() with call() as
+its child and a fakeInteriorFunction() as call()'s child.
+<div id="output"></div>
+</body>
+</html>
diff --git a/ManualTests/inspector/profiler-test-many-calls-in-the-same-scope.html b/ManualTests/inspector/profiler-test-many-calls-in-the-same-scope.html
new file mode 100644
index 000000000..da5be42a8
--- /dev/null
+++ b/ManualTests/inspector/profiler-test-many-calls-in-the-same-scope.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+<script src="resources/profiler-test-JS-resources.js"></script>
+<script>
+console.profile("Many Calls In The Same Scope");
+function startTest()
+{
+ insertNewText();
+ insertGivenText("This was a triumph.");
+ arrayOperatorFunction(7);
+ intermediaryFunction();
+ anonymousFunction();
+ end()
+ endT();
+ endT();
+ endTest();
+}
+
+function end()
+{
+ var x = 0;
+}
+
+function endT()
+{
+ var y = 1;
+}
+
+</script>
+</head>
+
+<body onload="startTest()">
+This page's JavaScript has many function calls in the same scope.
+<br>
+<br>
+To use this test, load it in the browser then load the WebInspector and look at
+the profile. In the profile many functions should be the children of startTest.
+Use the sorting capabilites to make sure the similarly named functions are sorted
+correctly.
+<div id="output"></div>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/inspector/remember-last-script.html b/ManualTests/inspector/remember-last-script.html
new file mode 100644
index 000000000..52e7f0204
--- /dev/null
+++ b/ManualTests/inspector/remember-last-script.html
@@ -0,0 +1,42 @@
+<style>code{background-color: #ffc;}</style>
+<p><b>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=27552">Bug 27552</a> - remember last script displayed in Scripts panel</b>
+
+<ul>
+<li><p>open this page with Web Inspector, switch to the <b>Scripts</b> panel, enabling debug if required
+<li><p>the available scripts in the select element should be:
+ <ul>
+ <li><b>(program): f1.js</b>
+ <li><b>remember-last-script.html</b>
+ </ul>
+<li><p>select <b>(program): f1.js</b> so the source is available
+<li><p>switch to the <b>Resources</b> panel
+<li><p>close Web Inspector
+<li><p>Repeat the following several times. Each time, <b>(program): f1.js</b>
+should be the selected script:
+ <ul>
+ <li>open Web Inspector, switch to the <b>Scripts</b> panel, then close Web Inspector
+ </ul>
+<li><p>open Web Inspector, switch to the <b>Scripts</b> panel
+<li><p>select <b>remember-last-script.html</b> so the source is available
+<li><p>Repeat the following several times. Each time, <b>remember-last-script.html</b>
+should be the selected script:
+ <ul>
+ <li>open Web Inspector, switch to the <b>Scripts</b> panel, then close Web Inspector
+ </ul>
+</ul>
+
+<script>
+
+f1 = Function([
+ "",
+ " doNothing();",
+ "//@sourceURL=f1.js"
+].join("\n"));
+
+function doNothing() { /* allows multi-line functions, easier to debug */ };
+
+doNothing();
+f1();
+
+</script>
+<!-- End -->
diff --git a/ManualTests/inspector/resources/loop-statements.js b/ManualTests/inspector/resources/loop-statements.js
new file mode 100644
index 000000000..cbb4e0d28
--- /dev/null
+++ b/ManualTests/inspector/resources/loop-statements.js
@@ -0,0 +1,22 @@
+var i;
+var a;
+
+function initialize()
+{
+ i = false;
+}
+
+function condition()
+{
+ return !i;
+}
+
+function increment()
+{
+ i = !i;
+}
+
+function statement()
+{
+ a = i;
+}
diff --git a/ManualTests/inspector/resources/mutate-frame-2.html b/ManualTests/inspector/resources/mutate-frame-2.html
new file mode 100644
index 000000000..9d413b935
--- /dev/null
+++ b/ManualTests/inspector/resources/mutate-frame-2.html
@@ -0,0 +1,12 @@
+<script>
+var count = 1;
+function run() {
+ var div = document.createElement("div");
+ div.textContent = "Testing " + (count++);
+ document.body.appendChild(div);
+ if (count > 10)
+ document.body.removeChild(document.body.firstChild);
+}
+
+setInterval(run, 1000);
+</script>
diff --git a/ManualTests/inspector/resources/mutate-frame.html b/ManualTests/inspector/resources/mutate-frame.html
new file mode 100644
index 000000000..08fc65618
--- /dev/null
+++ b/ManualTests/inspector/resources/mutate-frame.html
@@ -0,0 +1,10 @@
+<script>
+var count = 1;
+function run() {
+ var div = document.createElement("div");
+ div.textContent = "Testing " + (count++);
+ document.body.appendChild(div);
+}
+
+setInterval(run, 1000);
+</script>
diff --git a/ManualTests/inspector/resources/script-console-calls.js b/ManualTests/inspector/resources/script-console-calls.js
new file mode 100644
index 000000000..9c7bc356a
--- /dev/null
+++ b/ManualTests/inspector/resources/script-console-calls.js
@@ -0,0 +1,8 @@
+console.info("Test console.info");
+console.log("Test console.log");
+console.warn("Test console.warn");
+console.error("Test console.error");
+console.time("Test console.time");
+console.timeEnd("Test console.time");
+console.count("Test console.count");
+console.assert(false, "Test console.assert");
diff --git a/ManualTests/inspector/resources/script-error.js b/ManualTests/inspector/resources/script-error.js
new file mode 100644
index 000000000..c8be5ead3
--- /dev/null
+++ b/ManualTests/inspector/resources/script-error.js
@@ -0,0 +1,6 @@
+var test = document.body;
+this.will.be.an.error = 1;
+
+function test() {
+ return 42;
+}
diff --git a/ManualTests/inspector/returnEvent-crash.html b/ManualTests/inspector/returnEvent-crash.html
new file mode 100644
index 000000000..5dd1119a3
--- /dev/null
+++ b/ManualTests/inspector/returnEvent-crash.html
@@ -0,0 +1,17 @@
+<script>
+ function test2() {
+ var y = 6;
+ y += 3;
+ return y;
+ }
+
+ function test() {
+ var x = 5;
+ eval("test2()");
+ x += 6;
+ return x;
+ }
+</script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=19038">Bug 19038: Crash in JavaScriptDebugServer::returnEvent when inspecting an attached Inspector</a>.</p>
+<p>To test, open and attach the Inspector's debugger, then click the button below. If you don't crash, you have passed the test.</p>
+<button onclick="test()">click me</button>
diff --git a/ManualTests/inspector/styled-error-bubbles-in-scripts.html b/ManualTests/inspector/styled-error-bubbles-in-scripts.html
new file mode 100644
index 000000000..0049cefc8
--- /dev/null
+++ b/ManualTests/inspector/styled-error-bubbles-in-scripts.html
@@ -0,0 +1,6 @@
+<script src="resources/script-error.js"></script>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=20345">Bug 19065:
+Error bubbles are clobbered when syntax highlighting JavaScript resources</a>.</p>
+<p>To test, open the Inspector. There should be a red bubble with the number "1"
+in it next to the the only script resource in the Resources panel. Clicking the
+resource should show syntax highlighted JavaScript with a red error bubble.</p>
diff --git a/ManualTests/inspector/webinspector-log.html b/ManualTests/inspector/webinspector-log.html
new file mode 100644
index 000000000..cdc566361
--- /dev/null
+++ b/ManualTests/inspector/webinspector-log.html
@@ -0,0 +1,22 @@
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=28047">Bug 28047: add utility method to enable logging messages for inspector development</a>.</p>
+
+<ul>
+<li>Open a browser, go to any web page.
+<li>Open web inspector
+<li>Open the console panel
+<li>Open a web inspector on the web inspector
+<li>Open that inspector's console panel
+<li>In that panel, run the code:
+<pre>
+ WebInspector.log("hello, world")
+</pre>
+</ul>
+
+<p>Results:
+<br>In the original inspector window, there should now be a message
+in the console with the text "hello, world". There will be a blue
+maginifying glass icon to the left of the message. Run the same
+command again, and you should see the repeat count go to 2.
+The message and repeat count are blue.
+
+
diff --git a/ManualTests/interrupted-compound-transform.html b/ManualTests/interrupted-compound-transform.html
new file mode 100644
index 000000000..7dafb7358
--- /dev/null
+++ b/ManualTests/interrupted-compound-transform.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Interrupted Transitions on Transform Test</title>
+ <style type="text/css" media="screen">
+ #container {
+ width: 400px;
+ height: 400px;
+ margin: 20px;
+ border: 1px solid black;
+ -webkit-perspective: 800;
+ }
+ #tester {
+ width: 300px;
+ height: 300px;
+ margin: 50px;
+ background-color: blue;
+ -webkit-transition: -webkit-transform 3s linear;
+ -webkit-transform: rotateX(65deg) translateZ(75px) rotateZ(0deg);
+ -webkit-transform-style: preserve-3d;
+ }
+ #pos1 {
+ position:absolute;
+ width: 300px;
+ height: 300px;
+ margin: 50px;
+ border: 2px solid #F00;
+ -webkit-transform: rotateX(65deg) translateZ(75px) rotateZ(118deg);
+ -webkit-transform-style: preserve-3d;
+ }
+ #pos2 {
+ position:absolute;
+ width: 300px;
+ height: 300px;
+ margin: 50px;
+ border: 2px solid #0F0;
+ -webkit-transform: rotateX(65deg) translateZ(75px) rotateZ(80deg);
+ -webkit-transform-style: preserve-3d;
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8">
+ function setAngle(index)
+ {
+ var tester = document.getElementById('tester');
+ tester.style.webkitTransform = "rotateX(65deg) translateZ(75px) rotateZ(" + index + "deg)";
+ }
+
+ function runTest()
+ {
+ window.setTimeout(function() {
+ setAngle(240);
+ }, 0);
+
+ window.setTimeout(function() {
+ setAngle(80);
+ }, 1500);
+ }
+ window.addEventListener('load', runTest, false);
+ </script>
+</head>
+<body>
+In this test you should see a blue diamond spinning in the clockwise direction. After 1.5 seconds it should stop
+close to the red outlne and then spin counterclockwise. After 3 more seconds it should stop close to the
+position of the green outline.
+(see: <a href="https://bugs.webkit.org/show_bug.cgi?id=26162">https://bugs.webkit.org/show_bug.cgi?id=26162)</a>
+<div id="container">
+ <div id="pos1">
+ </div>
+ <div id="pos2">
+ </div>
+ <div id="tester">
+ </div>
+</div>
+
+</body>
+</html>
diff --git a/ManualTests/invalid-mouse-event.html b/ManualTests/invalid-mouse-event.html
new file mode 100644
index 000000000..e76bbe568
--- /dev/null
+++ b/ManualTests/invalid-mouse-event.html
@@ -0,0 +1,23 @@
+<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=8272">bug 8272</a>:
+Use of window.open & window.close can cause crash.</p>
+<ol>
+ <li>(Get a dual processor Mac.)</li>
+ <li>Disable popup blocking in Safari.</li>
+ <li>Click the Start button.</li>
+ <li>As the test runs, move the mouse around.</li>
+ <li>If Safari doesn't crash in a while, interrupt the test by pressing Cmd+W.</li>
+</ol>
+
+<button onclick="window.open('invalid-mouse-event.html?2', '', '');">Start</button>
+
+<script>
+
+if (location.search) {
+ if (location.search == "?1") {
+ window.opener.location = window.opener.location;
+ window.close();
+ } else {
+ window.open('invalid-mouse-event.html?1', '', '');
+ }
+}
+</script>
diff --git a/ManualTests/item-background.html b/ManualTests/item-background.html
new file mode 100644
index 000000000..d9d3b0794
--- /dev/null
+++ b/ManualTests/item-background.html
@@ -0,0 +1,155 @@
+<style>
+ div.container { float: left; background-color: #eee; padding: 4px; margin: 4px; }
+ div.swatch { width: 14px; height: 14px; background-color: white; position: relative; }
+ div.swatch div { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+ select { display: block; margin-left: 14px; margin-bottom: 1px; }
+
+ div.container.white > select,
+ div.container.white > div.swatch > div
+ { background-color: white; }
+
+ div.container.black > select,
+ div.container.black > div.swatch > div
+ { background-color: black; }
+
+ div.container.initial > select,
+ div.container.initial > div.swatch > div
+ { background-color: initial; }
+
+ div.container.semiblue > select,
+ div.container.semiblue > div.swatch > div
+ { background-color: rgba(0, 0, 255, 0.5); }
+
+ .solid { background-color: red; }
+ .reddish { background-color: rgba(255, 0, 0, 0.75); }
+ .semigreen { background-color: rgba(0, 255, 0, 0.5); }
+ .darken { background-color: rgba(0, 0, 0, 0.67); }
+</style>
+<p>
+ <strong>This test is for Windows only.</strong>
+ When you pull down each menu, the items&rsquo; background colors should match up with the swatches on the left (except for the hovered item).
+</p>
+<div class="container white">
+ Solid white menu:
+ <select>
+ <option>Default (transparent) option</option>
+ <option class="solid">Solid red option</option>
+ <option class="reddish">25% transparent red option</option>
+ <option class="semigreen">50% transparent green option</option>
+ <option class="darken">33% transparent black option</option>
+ </select>
+ <div class="swatch"></div>
+ <div class="swatch">
+ <div>
+ <div class="solid"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="reddish"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="semigreen"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="darken"></div>
+ </div>
+ </div>
+</div>
+<div class="container black">
+ Solid black menu:
+ <select>
+ <option>Default (transparent) option</option>
+ <option class="solid">Solid red option</option>
+ <option class="reddish">25% transparent red option</option>
+ <option class="semigreen">50% transparent green option</option>
+ <option class="darken">33% transparent black option</option>
+ </select>
+ <div class="swatch"></div>
+ <div class="swatch">
+ <div>
+ <div class="solid"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="reddish"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="semigreen"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="darken"></div>
+ </div>
+ </div>
+</div>
+<div class="container initial">
+ Transparent menu:
+ <select>
+ <option>Default (transparent) option</option>
+ <option class="solid">Solid red option</option>
+ <option class="reddish">25% transparent red option</option>
+ <option class="semigreen">50% transparent green option</option>
+ <option class="darken">33% transparent black option</option>
+ </select>
+ <div class="swatch"></div>
+ <div class="swatch">
+ <div>
+ <div class="solid"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="reddish"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="semigreen"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="darken"></div>
+ </div>
+ </div>
+</div>
+<div class="container semiblue">
+ 50% blue menu:
+ <select>
+ <option>Default (transparent) option</option>
+ <option class="solid">Solid red option</option>
+ <option class="reddish">25% transparent red option</option>
+ <option class="semigreen">50% transparent green option</option>
+ <option class="darken">33% transparent black option</option>
+ </select>
+ <div class="swatch"></div>
+ <div class="swatch">
+ <div>
+ <div class="solid"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="reddish"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="semigreen"></div>
+ </div>
+ </div>
+ <div class="swatch">
+ <div>
+ <div class="darken"></div>
+ </div>
+ </div>
+</div>
diff --git a/ManualTests/java-string-object-type.html b/ManualTests/java-string-object-type.html
new file mode 100644
index 000000000..ef74626b5
--- /dev/null
+++ b/ManualTests/java-string-object-type.html
@@ -0,0 +1,24 @@
+<html>
+<body onload="test();">
+<script>
+function test()
+{
+ document.getElementById("results").innerHTML =
+ "<p>Type of Java String object is: " + typeof(document.getElementById('applet').getString());
+}
+</script>
+
+<p>This test verifies that Java String objects are of the correct type when returned to JavaScript.</p>
+
+<p>On success, the Java String object will be of type &quot;object&quot;.<br/>
+On failure, the type will be &quot;function&quot;.<br/>
+See Radar 4212626.</p>
+
+<div id="results">
+</div>
+
+<APPLET id="applet" code="StringTypeTest.class" codebase="resources" width="0" height="0">
+</APPLET>
+
+</body>
+</html>
diff --git a/ManualTests/js-timers-beneath-modal-dialog.html b/ManualTests/js-timers-beneath-modal-dialog.html
new file mode 100644
index 000000000..6d5f2c7ed
--- /dev/null
+++ b/ManualTests/js-timers-beneath-modal-dialog.html
@@ -0,0 +1,19 @@
+<p>JS timers should be paused while a modal dialog (or alert) is displayed.</p>
+<p>Please disable popup blocker for this test.</p>
+<div>0</div>
+<script>
+function f()
+{
+ var d = document.getElementsByTagName("div")[0];
+ d.innerHTML = parseInt(d.innerHTML) + 1;
+}
+
+var timerId = setInterval(f, 100);
+
+alert("Numbers in main window should not increase while this alert is displayed");
+showModalDialog("data:text/html,<p>Numbers in main window should not increase while this modal dialog is displayed</p>");
+document.getElementsByTagName("div")[0].innerHTML = "DONE";
+
+clearInterval(timerId);
+
+</script>
diff --git a/ManualTests/keep_spelling_markers.html b/ManualTests/keep_spelling_markers.html
new file mode 100644
index 000000000..7e1d96487
--- /dev/null
+++ b/ManualTests/keep_spelling_markers.html
@@ -0,0 +1,24 @@
+<html><body>
+<h4>Test 1 - Check for hang (was bug #4836034)</h4>
+<ol>
+<li>open this in Blot or Safari</li>
+<li>click before the word "One" in the editable text, below</li>
+<li>repeatedly type cmd-; to advance to the next misspelling</li>
+<li>confirm that you can wrap back to the first misspelling without hanging</li>
+</ol>
+<h4>Test 2 - Check that markings are retained (was bug #4204892)</h4>
+<ol>
+<li>turn on Check Spelling as You Type from Edit-&gt;Spelling menu</li>
+<li>click on each of the misspelled words in the line at the bottom of this page</li>
+<p>&nbsp;&nbsp;(result should be that each misspelled word now has a red squiggly line below it)
+<li>control-click on &#147;foor&#148; in that sentence</li>
+<li>select a corrected spelling from the popup, e.g.&#147;four&#148;</li>
+<li>make sure that no other misspellings lost their red squiggly underline</li>
+</ol>
+<hr>
+<div contenteditable>
+One twwo three foor five siz seven
+<div></br></div>
+<div>eight nine ten</div>
+</div>
+</body></html>
diff --git a/ManualTests/keyboard-menukey-event.html b/ManualTests/keyboard-menukey-event.html
new file mode 100644
index 000000000..bd2c8e74b
--- /dev/null
+++ b/ManualTests/keyboard-menukey-event.html
@@ -0,0 +1,31 @@
+<html lang="en">
+ <head>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
+ <title>Menu key testing</title>
+ <script language="javascript" type="text/javascript">
+ function log(str) {
+ var li = document.createElement("li");
+ li.appendChild(document.createTextNode(str));
+ var results = document.getElementById("results");
+ results.appendChild(li);
+ }
+ </script>
+ </head>
+ <body>
+ <p>
+ See bug: <a href="https://bugs.webkit.org/show_bug.cgi?id=30619">30619</a>.
+ Note: this test is only applicable for Linux and Windows.
+ </p>
+ <ol>
+ <li>Click the text input box below and press Menu key.
+ The test passes if you see 'PASS' below.
+ <input type="text" oncontextmenu="log('PASS');" />
+ </li>
+ <li oncontextmenu="log('PASS');">Click or select somewhere
+ in this text and press Menu key.
+ The test passes if you see additional 'PASS' below.
+ </li>
+ </ol>
+ <ul id="results"></ul>
+ </body>
+</html>
diff --git a/ManualTests/keyboard_select_elements_with_same_beginning.html b/ManualTests/keyboard_select_elements_with_same_beginning.html
new file mode 100644
index 000000000..8e3c102b9
--- /dev/null
+++ b/ManualTests/keyboard_select_elements_with_same_beginning.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
+<title>
+Test select on elements with same beginning letter
+</title>
+</head>
+<body>
+See bug:<a href="https://bugs.webkit.org/show_bug.cgi?id=28205">28205</a>.
+<p>
+Click the drop-down to show selections (not navigate to the selection box).
+Type the first letter 'A' to go to the elements start with 'A'.
+It should select the first item starts with 'A'.
+In windows, Continue typing 'A', it should continue to select the next item starts with 'A'.
+<p>
+<select name="selOrigin">
+ <option value="">Select Station</option>
+ <option value="37169_NJCL">Aberdeen Matawan</option>
+ <option value="2_ATLC">Absecon</option>
+ <option value="3_MNBN">Allendale</option>
+ <option value="4_NJCL">Allenhurst</option>
+ <option value="12_MNE">Basking Ridge</option>
+ <option value="13_NJCL">Bay Head</option>
+ <option value="14_BNTN">Bay Street</option>
+ <option value="15_NJCL">Belmar</option>
+</select>
+</body>
+</html>
diff --git a/ManualTests/keyboard_select_non_english.html b/ManualTests/keyboard_select_non_english.html
new file mode 100644
index 000000000..d06ef97fa
--- /dev/null
+++ b/ManualTests/keyboard_select_non_english.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
+<title>
+Test select non English element
+</title>
+</head>
+<body>
+See bug:<a href="https://bugs.webkit.org/show_bug.cgi?id=25899">25899</a>.
+<p>
+Choose the correct input method. Open the select element then type the first
+letter of one of the elements. The search prefix should be the first non English
+letter, not the value of the physical keyboard plus the native non English
+letter. For example, set the input method as Hebrew, hit keyboard 'c', the
+translated Hebrew character is 'ב'. The search prefix should be 'ב', not "cב".
+And the right element should be selected.
+<p>
+
+Hebrew Select:
+<select style="direction:rtl">
+ <option>×××</option>
+ <option>בבב</option>
+ <option>×’×’×’</option>
+ <option>דדדד מילה ערוכה מ×וד, כדי שיהיה ×פשר לר×ות יישור</option>
+</select>
+
+Russian Select:
+<select>
+ <option>фиÑв</option>
+ <option>уап</option>
+ <option>ршол</option>
+ <option>дьт</option>
+</select>
+</body>
+</html>
diff --git a/ManualTests/korean-input-space.html b/ManualTests/korean-input-space.html
new file mode 100644
index 000000000..c8ccf390d
--- /dev/null
+++ b/ManualTests/korean-input-space.html
Binary files differ
diff --git a/ManualTests/large-size-image-crash.html b/ManualTests/large-size-image-crash.html
new file mode 100644
index 000000000..93cafa2c1
--- /dev/null
+++ b/ManualTests/large-size-image-crash.html
@@ -0,0 +1,6 @@
+<html>
+ <body>
+ Displaying the animated GIF below should not result in memory corruption.
+ <img src="resources/large-size-image-crash.gif">
+ </body>
+</html>
diff --git a/ManualTests/layoutroot_detach.xml b/ManualTests/layoutroot_detach.xml
new file mode 100644
index 000000000..3a64c019e
--- /dev/null
+++ b/ManualTests/layoutroot_detach.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body onload="addImg()">
+<style>
+.killme { display:none }
+</style>
+<div style="overflow:hidden; position:absolute; width:150px; height:150px; top:50px; left:0px">
+ <div id='parent' style="overflow:hidden; position:absolute; width:150px; height:150px; top:50px; left:0px">
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
+ <g>
+ <rect id='rrr' x='0' y='0' width='10' height='10'/>
+ </g>
+ </svg>
+ </div>
+</div>
+<script>
+function boomie() {
+ document.body.offsetTop;
+ document.getElementById('rrr').setAttribute('x', '20');
+ document.getElementById('parent').className='killme';
+}
+function addImg() {
+ window.setTimeout(function() {
+ var i = new Image();
+ i.src = 'http://www.webkit.org/nosuchfile.png';
+ document.body.appendChild(i);
+ i.onerror = boomie;
+ }, 15);
+}
+</script>
+</body>
+</html>
+
diff --git a/ManualTests/left-overflow-repaint.html b/ManualTests/left-overflow-repaint.html
new file mode 100644
index 000000000..5616c4b96
--- /dev/null
+++ b/ManualTests/left-overflow-repaint.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=7916">Bugzilla bug 7916</a> Box repaint rect does not include the left overflow</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Scroll and resize the window as necessary to bring the three test cases below into view.
+Press each Test button once. Do not scroll, resize, or hide the window or switch to another
+tab.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+In each test, &ldquo;Lorem&rdquo; will move down along with &ldquo;ipsum&rdquo;.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+&ldquo;Lorem&rdquo; will stay behind as &ldquo;ipsum&rdquo; moves down.
+</p>
+
+<div style="height: 120px">
+ <p>
+ <button onclick="document.getElementById('t').style.marginTop = '2em'">
+ Test 1
+ </button>
+ Move block with left overflow
+ </p>
+ <div id="t" style="text-indent: -50px; background: silver; margin-left: 50px;">
+ Lorem ipsum
+ </div>
+</div>
+<hr>
+<div style="height: 120px">
+ <p>
+ <button onclick="document.getElementById('u').style.lineHeight = '3'">
+ Test 2
+ </button>
+ </p>
+ Move line with left overflow
+ <div style="text-indent: -50px; background: silver; margin-left: 50px;">
+ Lorem <span id="u">ipsum</span>
+ </div>
+</div>
+<hr>
+<div style="height: 120px">
+ <p>
+ <button onclick="document.getElementById('v').style.height = '3em'">
+ Test 3
+ </button>
+ Change height of table cell with left overflow
+ </p>
+ <table style="margin-left: 50px;"><tr>
+ <td id="v" style="text-indent: -50px; background: silver;">
+ Lorem ipsum
+ </td></tr></table>
+</div>
+
+</body>
+</html>
diff --git a/ManualTests/link-activation-fails-after-double-tap-gesture.html b/ManualTests/link-activation-fails-after-double-tap-gesture.html
new file mode 100644
index 000000000..84cdd8de0
--- /dev/null
+++ b/ManualTests/link-activation-fails-after-double-tap-gesture.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+ <p>This test verifies that after the double tap gesture, links can still be activated.</p>
+ <p>Double tap <span style='color: red'>here</span> and <a href="data:text/html,<html><body style='background-color:green'>PASS</body></html>">try to activate this link</a> with single tap.</p>
+ <p>PASS if new page loads.</p>
+</body>
+</html>
diff --git a/ManualTests/link-cursor-auto.html b/ManualTests/link-cursor-auto.html
new file mode 100644
index 000000000..b978b4bc8
--- /dev/null
+++ b/ManualTests/link-cursor-auto.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/5551163">5551163</a> REGRESSION: Cursor does not change to arrow on "X" button in google maps, making it hard to click</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Move the mouse over the link below.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The mouse pointer will change to an index finger.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+The mouse pointer will change to a wristwatch.
+</p>
+
+<span style="cursor: wait;"><a href="#">This is the link</a></span>
+
+</body>
+</html>
diff --git a/ManualTests/linkjump-1.html b/ManualTests/linkjump-1.html
new file mode 100644
index 000000000..0af0fe6ed
--- /dev/null
+++ b/ManualTests/linkjump-1.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4304213">4304213</a> sometimes have to click twice to jump to top, on href=""</p>
+<b>As of 01-31-2006, this bug has NOT been fixed.</b>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Click through the numbered links on this page.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Page will scroll to the top after clicking link #3.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Page will scroll to the top after clicking link #3. Clicking this link twice might take you to the top of the page (but that is the bug).
+
+</p>
+
+<div><a href="#foo">1. click here</a></div>
+
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.
+</p>
+
+<div id="foo"><a href="#foo2">2. click here</a></div>
+
+<p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P>
+
+
+<div id="foo2"><a href="">3. click here (page should scroll to the top)</a></div>
+
+
+<p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P>
+
+</body>
+</html>
diff --git a/ManualTests/linkjump-2.html b/ManualTests/linkjump-2.html
new file mode 100644
index 000000000..03eee77f1
--- /dev/null
+++ b/ManualTests/linkjump-2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG IDs:</b></p>
+<a href="rdar://4233844">4233844</a> in some cases, HTML href named anchors don't scroll to the right place<br>
+<a href="rdar://problem/4246096">4246096</a> REGRESSION links to named anchors don't scroll to the right place (4825)
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Manually resize window to about 800 x 600. Click on the links below.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Page will scroll as indicated.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Page will NOT scroll, or will not scroll to the position indicated.
+</p>
+
+<a href="#0">1. Click here. Page should scroll to TARGET TEXT.</a>
+
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum consectetuer nulla a ligula. Vestibulum aliquet neque ac nunc. Sed ornare, ipsum sed blandit iaculis, nulla urna suscipit felis, id elementum dolor mi ac velit. Etiam quis velit vitae felis pretium venenatis. Donec lobortis, dui eget imperdiet tristique, velit pede rhoncus sapien, sed interdum quam felis mattis lectus. Sed quis sem. Curabitur pharetra felis eu eros suscipit egestas. Aenean tempus varius urna. Ut dolor. Fusce sem dolor, facilisis et, mollis ac, adipiscing ac, ipsum. Morbi fringilla, diam eget tincidunt consectetuer, mauris lectus vulputate quam, id ornare enim magna in pede. Vivamus commodo, sapien eget aliquam convallis, purus eros blandit libero, eget viverra diam nibh vel mi. Duis iaculis mollis ipsum. Duis accumsan posuere urna. Cras tempus. Pellentesque eu ante. Vestibulum nunc erat, tempus id, nonummy et, ullamcorper ac, odio. Aenean tincidunt enim sed ligula pellentesque lobortis. Donec pellentesque luctus nisl. Maecenas blandit lacus et lacus.
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum consectetuer nulla a ligula. Vestibulum aliquet neque ac nunc. Sed ornare, ipsum sed blandit iaculis, nulla urna suscipit felis, id elementum dolor mi ac velit. Etiam quis velit vitae felis pretium venenatis. Donec lobortis, dui eget imperdiet tristique, velit pede rhoncus sapien, sed interdum quam felis mattis lectus. Sed quis sem. Curabitur pharetra felis eu eros suscipit egestas. Aenean tempus varius urna. Ut dolor. Fusce sem dolor, facilisis et, mollis ac, adipiscing ac, ipsum. Morbi fringilla, diam eget tincidunt consectetuer, mauris lectus vulputate quam, id ornare enim magna in pede. Vivamus commodo, sapien eget aliquam convallis, purus eros blandit libero, eget viverra diam nibh vel mi. Duis iaculis mollis ipsum. Duis accumsan posuere urna. Cras tempus. Pellentesque eu ante. Vestibulum nunc erat, tempus id, nonummy et, ullamcorper ac, odio. Aenean tincidunt enim sed ligula pellentesque lobortis. Donec pellentesque luctus nisl. Maecenas blandit lacus et lacus.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum consectetuer nulla a ligula. Vestibulum aliquet neque ac nunc. Sed ornare, ipsum sed blandit iaculis, nulla urna suscipit felis, id elementum dolor mi ac velit. Etiam quis velit vitae felis pretium venenatis. Donec lobortis, dui eget imperdiet tristique, velit pede rhoncus sapien, sed interdum quam felis mattis lectus. Sed quis sem. Curabitur pharetra felis eu eros suscipit egestas. Aenean tempus varius urna. Ut dolor. Fusce sem dolor, facilisis et, mollis ac, adipiscing ac, ipsum. Morbi fringilla, diam eget tincidunt consectetuer, mauris lectus vulputate quam, id ornare enim magna in pede. Vivamus commodo, sapien eget aliquam convallis, purus eros blandit libero, eget viverra diam nibh vel mi. Duis iaculis mollis ipsum. Duis accumsan posuere urna. Cras tempus. Pellentesque eu ante. Vestibulum nunc erat, tempus id, nonummy et, ullamcorper ac, odio. Aenean tincidunt enim sed ligula pellentesque lobortis. Donec pellentesque luctus nisl. Maecenas blandit lacus et lacus.
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum consectetuer nulla a ligula. Vestibulum aliquet neque ac nunc. Sed ornare, ipsum sed blandit iaculis, nulla urna suscipit felis, id elementum dolor mi ac velit. Etiam quis velit vitae felis pretium venenatis. Donec lobortis, dui eget imperdiet tristique, velit pede rhoncus sapien, sed interdum quam felis mattis lectus. Sed quis sem. Curabitur pharetra felis eu eros suscipit egestas. Aenean tempus varius urna. Ut dolor. Fusce sem dolor, facilisis et, mollis ac, adipiscing ac, ipsum. Morbi fringilla, diam eget tincidunt consectetuer, mauris lectus vulputate quam, id ornare enim magna in pede. Vivamus commodo, sapien eget aliquam convallis, purus eros blandit libero, eget viverra diam nibh vel mi. Duis iaculis mollis ipsum. Duis accumsan posuere urna. Cras tempus. Pellentesque eu ante. Vestibulum nunc erat, tempus id, nonummy et, ullamcorper ac, odio. Aenean tincidunt enim sed ligula pellentesque lobortis.
+<a name="0">
+</a>
+TARGET TEXT
+<p><a href="#anchor">2. Click here. Page should scroll just a little bit, to the top of the red box below.</a></p>
+<a name="anchor"></a>
+<div style="width:100%; border:1px red solid; height:1000px;"></div>
+
+
+</body>
+</html>
diff --git a/ManualTests/linkjump-3.html b/ManualTests/linkjump-3.html
new file mode 100644
index 000000000..64e46c0d1
--- /dev/null
+++ b/ManualTests/linkjump-3.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=6916">Bugzilla 6916</a> REGRESSION: URLs with named anchors in a page don't jump to proper location in document</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Manually resize window to about 800 x 600. Click the link below.</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Page will scroll down to the dashed line.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Page will scroll to the bottom, or to some other unexpected area of the page.
+</p>
+
+<div>Clicking <a href="#link">link</a> should move page down to the dashes, not to the end of the page.</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<font face="arial,sans-serif" size="2"><a name="link"></a>
+<div>--------------</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+<div>blah blah blah</div>
+
+</body>
+</html>
diff --git a/ManualTests/linkjump-4.html b/ManualTests/linkjump-4.html
new file mode 100644
index 000000000..733277ae9
--- /dev/null
+++ b/ManualTests/linkjump-4.html
@@ -0,0 +1,132 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4247537">4247537</a> link jumping should scroll to tallest object on line, not first object on line</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Manually resize window to about 800 x 600. Click the links in this document.</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+After clicking a link, the page should always scroll to the top of the green box.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+After clicking a link, page scrolls to some unexpected area.
+</p>
+
+<div><a href="#foo">1. click to test</a></div>
+
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.
+</p>
+
+** The top of this box <img id="foo" style="height: 200px; width: 100px; background-color: green"> should be aligned to the top of the window **
+
+<div><a href="#foo2">2. click to test</a></div>
+
+
+<p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.
+
+Curabitur facilisis pede nec arcu. Proin ut turpis. Maecenas quam nulla, dapibus vel, accumsan non, volutpat quis, tellus. Suspendisse consectetuer augue in mauris. Duis consequat pede sit amet dolor. Nulla vestibulum enim auctor felis tincidunt sodales. Nullam lobortis massa eu magna. Ut nonummy leo porta quam. Proin dignissim, ante ut aliquet dignissim, est odio aliquet lacus, eu sodales quam arcu ornare urna. Fusce arcu erat, vulputate pulvinar, dapibus luctus, volutpat quis, metus. Mauris eu massa. Praesent eget tortor eget arcu fringilla feugiat. Mauris posuere, risus nec blandit ultrices, enim odio tincidunt tortor, non bibendum elit mi non justo. Fusce tristique lacinia est. Maecenas est sem, eleifend a, fermentum et, interdum non, elit. Etiam sem. Vestibulum ultricies velit. Vivamus a mauris eget arcu volutpat vestibulum. Duis sed dui sit amet libero tempus tempor. Nulla diam.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.
+
+Curabitur facilisis pede nec arcu. Proin ut turpis. Maecenas quam nulla, dapibus vel, accumsan non, volutpat quis, tellus. Suspendisse consectetuer augue in mauris. Duis consequat pede sit amet dolor. Nulla vestibulum enim auctor felis tincidunt sodales. Nullam lobortis massa eu magna. Ut nonummy leo porta quam. Proin dignissim, ante ut aliquet dignissim, est odio aliquet lacus, eu sodales quam arcu ornare urna. Fusce arcu erat, vulputate pulvinar, dapibus luctus, volutpat quis, metus. Mauris eu massa. Praesent eget tortor eget arcu fringilla feugiat. Mauris posuere, risus nec blandit ultrices, enim odio tincidunt tortor, non bibendum elit mi non justo. Fusce tristique lacinia est. Maecenas est sem, eleifend a, fermentum et, interdum non, elit. Etiam sem. Vestibulum ultricies velit. Vivamus a mauris eget arcu volutpat vestibulum. Duis sed dui sit amet libero tempus tempor. Nulla diam.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.</p>
+
+
+<span id="foo2">** The top of this box should be aligned <img style="height: 200px; width: 100px; background-color: green"> to the top of the window **</span>
+
+<div><a href="#foo3">3. click to test</a></div>
+
+
+<p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.
+
+Curabitur facilisis pede nec arcu. Proin ut turpis. Maecenas quam nulla, dapibus vel, accumsan non, volutpat quis, tellus. Suspendisse consectetuer augue in mauris. Duis consequat pede sit amet dolor. Nulla vestibulum enim auctor felis tincidunt sodales. Nullam lobortis massa eu magna. Ut nonummy leo porta quam. Proin dignissim, ante ut aliquet dignissim, est odio aliquet lacus, eu sodales quam arcu ornare urna. Fusce arcu erat, vulputate pulvinar, dapibus luctus, volutpat quis, metus. Mauris eu massa. Praesent eget tortor eget arcu fringilla feugiat. Mauris posuere, risus nec blandit ultrices, enim odio tincidunt tortor, non bibendum elit mi non justo. Fusce tristique lacinia est. Maecenas est sem, eleifend a, fermentum et, interdum non, elit. Etiam sem. Vestibulum ultricies velit. Vivamus a mauris eget arcu volutpat vestibulum. Duis sed dui sit amet libero tempus tempor. Nulla diam.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.</p>
+
+
+
+
+<img style="height: 200px; width: 100px; background-color: yellow"><img id="foo3" style="height: 100px; width: 100px; background-color: green">** The top of the GREEN box should be aligned to the top of the window **
+
+<div><a href="#foo4">4. click to test</a></div>
+
+
+<p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.
+
+Curabitur facilisis pede nec arcu. Proin ut turpis. Maecenas quam nulla, dapibus vel, accumsan non, volutpat quis, tellus. Suspendisse consectetuer augue in mauris. Duis consequat pede sit amet dolor. Nulla vestibulum enim auctor felis tincidunt sodales. Nullam lobortis massa eu magna. Ut nonummy leo porta quam. Proin dignissim, ante ut aliquet dignissim, est odio aliquet lacus, eu sodales quam arcu ornare urna. Fusce arcu erat, vulputate pulvinar, dapibus luctus, volutpat quis, metus. Mauris eu massa. Praesent eget tortor eget arcu fringilla feugiat. Mauris posuere, risus nec blandit ultrices, enim odio tincidunt tortor, non bibendum elit mi non justo. Fusce tristique lacinia est. Maecenas est sem, eleifend a, fermentum et, interdum non, elit. Etiam sem. Vestibulum ultricies velit. Vivamus a mauris eget arcu volutpat vestibulum. Duis sed dui sit amet libero tempus tempor. Nulla diam.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.</p>
+
+
+
+<a name="foo4"></a>
+<img style="height: 100px; width: 100px; background-color: green">** The top of this box should be aligned to the top of the window **
+
+<div><b>You're done!</b></div>
+
+
+<p>
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.
+
+Curabitur facilisis pede nec arcu. Proin ut turpis. Maecenas quam nulla, dapibus vel, accumsan non, volutpat quis, tellus. Suspendisse consectetuer augue in mauris. Duis consequat pede sit amet dolor. Nulla vestibulum enim auctor felis tincidunt sodales. Nullam lobortis massa eu magna. Ut nonummy leo porta quam. Proin dignissim, ante ut aliquet dignissim, est odio aliquet lacus, eu sodales quam arcu ornare urna. Fusce arcu erat, vulputate pulvinar, dapibus luctus, volutpat quis, metus. Mauris eu massa. Praesent eget tortor eget arcu fringilla feugiat. Mauris posuere, risus nec blandit ultrices, enim odio tincidunt tortor, non bibendum elit mi non justo. Fusce tristique lacinia est. Maecenas est sem, eleifend a, fermentum et, interdum non, elit. Etiam sem. Vestibulum ultricies velit. Vivamus a mauris eget arcu volutpat vestibulum. Duis sed dui sit amet libero tempus tempor. Nulla diam.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.
+
+Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.
+
+Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor.
+
+Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.</p>
+</body>
+</html>
diff --git a/ManualTests/linkjump-5.html b/ManualTests/linkjump-5.html
new file mode 100644
index 000000000..7310eb8c0
--- /dev/null
+++ b/ManualTests/linkjump-5.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4256060">4256060</a> Link scrolling to last object on the page doesn't work if the link being scrolled to contains an empty inline</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Manually resize window to about 800 x 600. Click the link below.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Page should scroll to the bottom.</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Page will not scroll to the bottom.
+</p>
+
+<a href="#ccc">Click me</a>
+<div style="border: 1px solid red; height: 800px"></div>
+<a name="ccc"><b></b></a>
+</body>
+</html>
diff --git a/ManualTests/liveconnect-applet-array-parameters.html b/ManualTests/liveconnect-applet-array-parameters.html
new file mode 100644
index 000000000..8f685c92a
--- /dev/null
+++ b/ManualTests/liveconnect-applet-array-parameters.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+ <title>Array parameters Applet</title>
+</head>
+<body>
+<h1>Calling Java Array Test page</h1>
+This page calls a Java method which takes Arrays as parameters. On successful calling of the function, the passed in values are printed
+to stdout from Java using System.out.println
+Send object array should fail, but WebKit should not crash.
+<form name="controls">
+ <input type="button" name="string" value="Send String array" onClick="document.arraytestapplet.arrayFunction(['one', 'two', 'three'])"/><br>
+ <input type="button" name="boolean" value="Send boolean array" onClick="document.arraytestapplet.booleanFunction(['0', '1', '2'])"/><br>
+ <input type="button" name="byte" value="Send byte array" onClick="document.arraytestapplet.byteFunction(new Array(0, 1, 2))"/><br>
+ <input type="button" name="char" value="Send char array" onClick="document.arraytestapplet.charFunction(new Array('a', 'b', 'c'))"/><br>
+ <input type="button" name="short" value="Send short array" onClick="document.arraytestapplet.shortFunction(new Array(0, 1, 2))"/><br>
+ <input type="button" name="int" value="Send int array" onClick="document.arraytestapplet.intFunction(new Array(0, 1, 2))"/><br>
+ <input type="button" name="long" value="Send long array" onClick="document.arraytestapplet.longFunction(new Array(0, 1, 2))"/><br>
+ <input type="button" name="float" value="Send float array" onClick="document.arraytestapplet.floatFunction(new Array(0.0, 0.1, 0.2))"/><br>
+ <input type="button" name="double" value="Send double array" onClick="document.arraytestapplet.doubleFunction(new Array(0.1, 0.1, 0.2))"/><br>
+ <input type="button" name="object" value="Send object array" onClick="document.arraytestapplet.objectFunction(new Array(0.1, 0.1, 0.2))"/><br>
+</form>
+<applet name="arraytestapplet" code="ArrayParameterTestApplet.class" codebase="resources" width="0" height="0" mayscript="true">
+Unable to load applet.
+</applet>
+<!--
+<object id="helloapplet" codetype="application/java-archive"
+ classid="java:HelloApplet.class" archive="helloapplet.jar"
+ height="100" width="200">
+Unable to load applet.
+</object> -->
+</body>
+</html>
diff --git a/ManualTests/liveconnect-applet-get-boolean.html b/ManualTests/liveconnect-applet-get-boolean.html
new file mode 100644
index 000000000..0c0eddf6e
--- /dev/null
+++ b/ManualTests/liveconnect-applet-get-boolean.html
@@ -0,0 +1,7 @@
+<html>
+<body><applet code="CheckerApplet.class" name="Checker" codebase="resources">
+Unable to load applet.</applet>
+This tests retrieving a boolean value from a Java class using javascript. It tests the return value. The return value should be true.<br>
+<input type="button" name="test" value="Read applet" onClick="alert('return value: '+document.Checker.checkVersion())"/>
+</body>
+<html>
diff --git a/ManualTests/liveconnect-security-exception.html b/ManualTests/liveconnect-security-exception.html
new file mode 100644
index 000000000..8bce75283
--- /dev/null
+++ b/ManualTests/liveconnect-security-exception.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+<!--
+Sorry for the hackery in this test. Currently, we have no elegant way to
+catch Java errors and print out an intelligent response.
+-->
+
+<script>
+function loadApplet() {
+ // force Safari to load and cache the TestApplet class
+ document.getElementById('applet').method();
+}
+</script>
+</head>
+<body onload="loadApplet();window.open('resources/liveconnect-security-exception-popup.html', 'w', 'height=300, width=300');">
+<p>This test checks for a regression against <i>rdar://problem/4151132 REGRESSION: Some applet liveconnect calls throws privilege exception.</i>.</p>
+<p>To test:</p>
+<ol>
+<li>Disable popup blocking.</li>
+<li>Select the window titled "popup window."</li>
+<li>From the debug menu, select "Show JavaScript console." This will allow you to see errors thrown in the popup window by the Java Virtual Machine. If there are any, the test has failed.</li>
+<li>If the text in the popup window does not match the text below, the test has failed:<br>
+applet.field returned 1<br>
+incremented applet.field by 1<br>
+applet.field returned 2<br>
+applet.method() returned 1<br>
+</li>
+<li>Otherwise, the test has passed.</li>
+</ol>
+<applet id='applet' code="TestApplet.class" codebase="resources"></applet>
+</body>
+</html>
diff --git a/ManualTests/load-deferrer-resume-crash.html b/ManualTests/load-deferrer-resume-crash.html
new file mode 100644
index 000000000..89f15b13c
--- /dev/null
+++ b/ManualTests/load-deferrer-resume-crash.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+<script>
+var counter = 0;
+
+function loadJSFile(){
+ var i = document.createElement('img')
+ i.setAttribute("src", "resources/apple.jpg?counter=" + counter);
+
+ counter++;
+
+ document.getElementById("images").appendChild(i);
+}
+
+function runModal()
+{
+ loadJSFile();
+
+ alert("Deferring loads");
+}
+</script>
+</head>
+
+<body>
+
+<input id="button" type="button" value="click me" onclick="runModal()"/>
+
+<div id="images"></div>
+
+<p>Click the above button to start loading an image and then open an alert() box. For the test to pass there should be no crash when closing the alert box.</p>
+
+</body>
+</html>
diff --git a/ManualTests/load-deferrer-script-element.html b/ManualTests/load-deferrer-script-element.html
new file mode 100644
index 000000000..c0ad77357
--- /dev/null
+++ b/ManualTests/load-deferrer-script-element.html
@@ -0,0 +1,44 @@
+<html>
+<head>
+<script>
+function log(message)
+{
+ document.getElementById("result").innerHTML += message + "<br>";
+}
+
+function loadJSFile(){
+ var s = document.createElement('script')
+ s.setAttribute("type", "text/javascript")
+ s.setAttribute("src", "resources/load-deferrer-script-element.js")
+
+ document.getElementsByTagName("head")[0].appendChild(s);
+}
+
+jsLoaded = false;
+runningModal = false;
+
+// This line will load external script into memory.
+loadJSFile();
+
+function runModal()
+{
+ jsLoaded = true;
+ loadJSFile();
+
+ runningModal = true;
+ alert("Scripts should not be running in the background!");
+ runningModal = false;
+}
+</script>
+</head>
+
+<body>
+
+<p>This tests the bug https://bugs.webkit.org/show_bug.cgi?id=38910.
+Click the button, wait 5 seconds and close it.
+The test passes if no error messages show up in the page!</p>
+<input id="button" type="button" value="click me" onclick="runModal()"/>
+<p id="result"></p>
+
+</body>
+</html>
diff --git a/ManualTests/localstorage-empty-database.html b/ManualTests/localstorage-empty-database.html
new file mode 100644
index 000000000..d0fcc4116
--- /dev/null
+++ b/ManualTests/localstorage-empty-database.html
@@ -0,0 +1,16 @@
+<html>
+<body>
+<script type="text/javascript">
+ var x = localStorage.getItem('foo');
+</script>
+<p>This page has called <code>localStorage.getItem('foo')</code>.
+Since no data has been stored, no database file should have been created.</p>
+
+<p>If you click <a href="javascript:localStorage.setItem('bar', 'baz');">here</a>, data will be stored, and a database file should be created.</p>
+
+<p>If you click <a href="javascript:localStorage.clear();">here</a>, the local storage will be cleared, and the database file should be gone when the browser is closed.</p>
+
+<p>(This is for <a href="https://bugs.webkit.org/show_bug.cgi?id=40301">https://bugs.webkit.org/show_bug.cgi?id=40301</a>
+and <a href="https://bugs.webkit.org/show_bug.cgi?id=40767">https://bugs.webkit.org/show_bug.cgi?id=40767</a>.)</p>
+</body>
+</html>
diff --git a/ManualTests/localstorage-value-truncation.html b/ManualTests/localstorage-value-truncation.html
new file mode 100644
index 000000000..242376a5a
--- /dev/null
+++ b/ManualTests/localstorage-value-truncation.html
@@ -0,0 +1,31 @@
+<html>
+<body>
+ <p>In this test we need to find out if the browser can save the localStorage item correctly without truncated by the \x00 in the middle of the string.</p>
+<script type="text/javascript">
+ var key = 'TruncVal';
+ var value = '123\x00567';
+
+ var x = localStorage.getItem(key);
+ if (!x) {
+ localStorage.setItem(key, value);
+ document.write("<p>It hasn't got the '" + key + "' in the localStorage database, will create it using:<br>");
+ document.write("<code>localStorage.setItem('" + key + "', '" + value + "');</code><br>");
+ document.write("Now close your browser and start it again to see the results.</p>");
+ }
+ else {
+ document.write("<p>The value of " + key + " is: '" + x + "', the length is: " + x.length + "<br>");
+
+ if (x == value) {
+ document.write("PASS.");
+ }
+ else {
+ document.write("FAIL: The expected value is: '" + value + "', the expected length is: " + value.length);
+ }
+ document.write("</p><a href=\"javascript:localStorage.removeItem('" + key + "');\">remove '" + key + "' from localStorage</a>");
+ }
+</script>
+
+<p>This is for <a href="https://bugs.webkit.org/show_bug.cgi?id=58762">https://bugs.webkit.org/show_bug.cgi?id=58762</a>
+</p>
+</body>
+</html>
diff --git a/ManualTests/location-host-canonicalization.html b/ManualTests/location-host-canonicalization.html
new file mode 100644
index 000000000..d13bd7d4e
--- /dev/null
+++ b/ManualTests/location-host-canonicalization.html
@@ -0,0 +1,15 @@
+<html>
+<head>
+<script>
+function changeHost() {
+ window.location.host = "www.example.com:";
+}
+</script>
+</head>
+<body>
+<p>This will test the URL canonicalization by assigning a host with an empty port specifier to window.location.host</p>
+<p>Clicking the following button should change the host in the current URL to "www.example.com:". It actually loading is not important -
+if you see "www.example.com:0" the test has failed. You should see "www.example.com:"</p>
+<input type="button" value="Click Here" onClick="changeHost();">
+</body>
+</html>
diff --git a/ManualTests/log-keypress-events.html b/ManualTests/log-keypress-events.html
new file mode 100644
index 000000000..87e228840
--- /dev/null
+++ b/ManualTests/log-keypress-events.html
@@ -0,0 +1,34 @@
+<html>
+<body>
+<p>This page is especially useful to test <a href="http://bugs.webkit.org/show_bug.cgi?id=5678">the shift-Tab issue</a>. Should see a code of 9.</p>
+<form name="f">
+Type here: <input id="field" type="text" />
+</form>
+<script language="javascript" type="text/javascript">
+<!--
+function logEvent(event) {
+ myDebugLog("--");
+ if (event.charCode)
+ myDebugLog("event.charCode: " + event.charCode);
+ if (event.which)
+ myDebugLog("event.which: " + event.which);
+ if (event.keyCode)
+ myDebugLog("event.keyCode: " + event.keyCode);
+ myDebugLog("shiftKey: " + event.shiftKey);
+ return false;
+}
+
+function myDebugLog(msg) {
+ var m = document.createElement("div");
+ m.appendChild(document.createTextNode(msg));
+ document.getElementById("debug-log").appendChild(m);
+}
+document.f.field.onkeypress = logEvent;
+// -->
+</script>
+
+<div id="debug-log">
+Key press values:
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/mail-attachments.html b/ManualTests/mail-attachments.html
new file mode 100644
index 000000000..9d8d920ca
--- /dev/null
+++ b/ManualTests/mail-attachments.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4435416">4435416</a> Attachments in Mail compose windows always display the broken image icon</p>
+<p>Steps:</p>
+<ol>
+<li>Launch Mail.app with built WebKit
+<li>create a new email
+<li>drag a file to the email (make sure to use a > 1 page file, otherwise Mail shows the contents inline)
+</ol>
+<p>Verify that the icon is what you see in Finder and has the file name and size beneath it</p>
+</body>
+</html>
diff --git a/ManualTests/mask-composite-missing-images.html b/ManualTests/mask-composite-missing-images.html
new file mode 100644
index 000000000..ed0dfcda1
--- /dev/null
+++ b/ManualTests/mask-composite-missing-images.html
@@ -0,0 +1,23 @@
+<html>
+<head>
+<style>
+.test {
+ width: 200px;
+ height: 200px;
+ border:10px solid black;
+ background-color:lime;
+ -webkit-mask-image: url(url-not-found), url(url-not-found), url(url-not-found), url(url-not-found), url(url-not-found), url(url-not-found), url(url-not-found), url(url-not-found), url(url-not-found);
+ -webkit-mask-position: top left, top right, bottom left, bottom right, top center, center right, bottom center, center left, center;
+ -webkit-mask-origin: border;
+ -webkit-mask-repeat: no-repeat, no-repeat, no-repeat, no-repeat, repeat-x, repeat-y, repeat-x, repeat-y, repeat;
+ -webkit-mask-composite: copy;
+}
+</style>
+</head>
+<body>
+<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=26084">WebKit Bug 26084: Bug 26084: Multiple missing images in webkit-mask-image prevent rendering</a></p>
+<div class="test">This text should be visible.</div>
+<p>If the test passes, you should be able to see a lime square with a black border. Inside the border, you should see the text: This text should be visible.</p>
+</body>
+</html>
+
diff --git a/ManualTests/match-marker-rects.html b/ManualTests/match-marker-rects.html
new file mode 100644
index 000000000..d6509650b
--- /dev/null
+++ b/ManualTests/match-marker-rects.html
@@ -0,0 +1,33 @@
+<style>
+ div {
+ height: 50px;
+ width: 110px;
+ margin: 10px 0;
+ padding: 10px;
+ border: solid black;
+ font-size: 25px;
+ }
+
+ div.columns {
+ -webkit-columns: 2;
+ -webkit-column-gap: 10px;
+ }
+
+ div.scroll {
+ overflow-y: scroll;
+ }
+</style>
+<p>
+ In Safari, choose Edit > Find > Find, and type the strings &ldquo;xyz&rdquo;
+ and &ldquo;123&rdquo;. The white &ldquo;holes&rdquo; in the Find overlay
+ should line up with the matching text below.
+</p>
+<div class="columns">
+ <br>xyz
+</div>
+<div class="scroll" id="scroll">
+ <br><br>123<br><br>
+</div>
+<script>
+ document.getElementById("scroll").scrollTop = 100;
+</script>
diff --git a/ManualTests/media-controls-when-javascript-disabled.html b/ManualTests/media-controls-when-javascript-disabled.html
new file mode 100644
index 000000000..b7e52bc43
--- /dev/null
+++ b/ManualTests/media-controls-when-javascript-disabled.html
@@ -0,0 +1,26 @@
+<html>
+ <head>
+ <style> #error { display: none; } </style>
+ <script>
+ function showErrorMsg()
+ {
+ document.getElementById('error').style.display = 'block';
+ }
+ </script>
+ </head>
+
+<body onload="showErrorMsg()">
+
+ <p>TEST: Video should have controls when scripting is disabled.</p>
+
+ <video
+ src="http://movies.apple.com/movies/us/apple/ipoditunes/2007/touch/ads/apple_ipodtouch_touch_r640-9cie.mov">
+ </video>
+
+ <noscript><p>Scripting is DISABLED.</p></noscript>
+
+ <p id=error>ERROR: JavaScript must be disabled for this test.</p>
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/media-controls.html b/ManualTests/media-controls.html
new file mode 100644
index 000000000..e9df78ec8
--- /dev/null
+++ b/ManualTests/media-controls.html
@@ -0,0 +1,268 @@
+<html>
+<head>
+<style>
+
+body {
+ display: -webkit-box;
+ margin: 0;
+ font-family: Sans-serif;
+ overflow: hidden;
+}
+
+#list {
+ width: 200px;
+ padding: 10px;
+}
+
+#list h1 {
+ margin: 0;
+ font-size: 16px;
+ padding: 0 0 14px 8px;
+ border-right: 4px solid LightGray;
+}
+
+#list ul {
+ margin: 0;
+ padding: 2px 0 0 0;
+ list-style: none;
+}
+
+#list a:target {
+ cursor: default;
+ pointer-events: none;
+ background-color: #eee;
+ border-right: 4px solid Gray;
+}
+
+#list li {
+ padding-bottom: 2px;
+}
+
+#list a {
+ padding: 8px 8px 8px 8px;
+ display: block;
+ border-right: 4px solid LightGray;
+ color: initial;
+ -webkit-transition-property: border-right, background-color;
+ -webkit-transition-duration: 0.4s;
+}
+
+#test {
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-flex: 0.5;
+}
+
+#arena {
+ -webkit-box-flex: 0.5;
+ border: none;
+ display: -webkit-box;
+}
+
+#description {
+ height: 200px;
+ font-size: 12px;
+ padding-right: 16px;
+ overflow: auto;
+}
+
+</style>
+<!-- LayoutTests location is hard-coded to avoid duplication of code. -->
+<script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/media-file.js"></script>
+<script>
+
+var MEDIA_FILES_LOCATION = 'http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/content';
+
+var MEDIA_FILES;
+
+var TESTS = {
+
+'video': {
+ title: 'Typical video with controls',
+ description: '<p>Should have "Rewind", "Play", "Mute" buttons, timeline with time current and remaining shown.</p>' +
+ '<p>You may see brief resize of the video when the metadata arrives and a brief flash of the "Loading..." status.</p>' +
+ '<p>"Play" button should turn into "Pause" when playing, with current and remaining time should changing and the thumb ' +
+ 'of the timeline gliding smoothly along the track, updated every 200ms or so.</p>',
+ html: '<video controls src={video}></video>',
+},
+'audio': {
+ title: 'Typical audio with controls',
+ description: '<p>Should have "Rewind", "Play", "Mute" buttons, timeline with time current and remaining shown.</p>' +
+ '<p>You may see brief resize of the video when the metadata arrives and a brief flash of the "Loading..." status.</p>' +
+ '<p>"Play" button should turn into "Pause" when playing, with current and remaining time should changing and the thumb ' +
+ 'of the timeline gliding smoothly along the track, updated every 200ms or so.</p>',
+ html: '<audio controls src={audio}></audio>',
+},
+'video-volume': {
+ title: 'Video volume controls',
+ description: '<p>When hovering over the "Mute" button, a volume control should appear, showing its own "Mute" button and a volume slider.</p>' +
+ '<p>You should be able to control the volume with the slider and mute/unmute using the "Mute" button</p>' +
+ '<p>Moving the mouse away from the volume control should make the control disappear.</p>',
+ html: '<video controls src={video}></video>',
+},
+'audio-volume': {
+ title: 'Audio volume controls',
+ description: '<p>When hovering over the "Mute" button, a volume control should appear, showing its own "Mute" button and a volume slider.</p>' +
+ '<p>You should be able to control the volume with the slider and mute/unmute using the "Mute" button</p>' +
+ '<p>Moving the mouse away from the volume control should make the control disappear.</p>',
+ html: '<audio style="padding-top: 200px;" controls src={video}></audio>',
+},
+'audio-volume-neg': {
+ title: 'Audio volume controls (negative offset)',
+ description: '<p>When hovering over the "Mute" button, a volume control should appear, showing its own "Mute" button and a volume slider.</p>' +
+ '<p>In this particular layout, the volume control should be positioned directly under the "Mute" button, showing two "Mute" buttons --' +
+ 'one on the main controls and another on the volume control.</p>' +
+ '<p>You should be able to control the volume with the slider and mute/unmute using the "Mute" button</p>' +
+ '<p>Moving the mouse away from the volume control or the "Mute" button should make the control disappear.</p>',
+ html: '<audio controls src={video}></audio>',
+},
+'video-zoomed': {
+ title: 'Magnified video',
+ description: '<p>Should have the same appearance as a typical video, except magnified 1.5 times.</p>' +
+ '<p>Make sure that the appearance of controls does not changed when changing the page zoom.</p>',
+ html: '<video controls src={video} style="zoom:150%"></video>',
+},
+'controls-fade': {
+ title: 'Fading video controls',
+ description: '<p>When the video is playing, the controls should fade out when the mouse is away from the video and fade back in when the mouse is over the video.</p>' +
+ '<p>The controls should not fade when the video is paused.</p>',
+ html: '<video controls src={video} autoplay></video>',
+},
+'timeline-resize': {
+ title: 'Timeline reacting to a resize',
+ description: '<p>When changing the width of the screen, the timeline should be the only one part of the controls changing its width.</p>' +
+ '<p>At a certain minimum point, the current and remaining time should disappear, giving up their space to the timeline.</p>' +
+ '<p>Conversely, when sizing the width up, the current and remaining time should come back into their places.',
+ html: '<video controls src={video} style="width:60%"></video>',
+},
+'toggle-controls': {
+ title: 'Toggling video controls',
+ description: '<p>When clicking on "Toggle Controls" button, the controls should appear and disappear.</p>' +
+ '<p>The controls should have "Rewind", "Play", "Mute" buttons, timeline with time current and remaining shown.</p>',
+ js: function(click) {
+ if (!click)
+ return;
+
+ var video = document.getElementsByTagName('video')[0];
+ video.controls = !video.controls;
+ },
+ html: '<video src={video}></video><br><button onclick="test(true)">Toggle Controls</button>',
+},
+'toggle-controls-autoplay': {
+ title: 'Toggling video controls while playing',
+ description: '<p>When clicking on "Toggle Controls" button, the controls should appear and disappear.</p>' +
+ '<p>The controls should have "Rewind", "Pause", "Mute" buttons, timeline with time current and remaining shown,' +
+ 'with current and remaining time should changing and the thumb of the timeline gliding smoothly along the track, updated every 200ms or so.</p>' +
+ '<p>The controls should fade quickly if the mouse is not over the video.</p>',
+ js: function(click) {
+ if (!click)
+ return;
+
+ var video = document.getElementsByTagName('video')[0];
+ video.controls = !video.controls;
+ },
+ html: '<video src={video} autoplay></video><br><button onclick="test(true)">Toggle Controls</button>',
+},
+'closed-captions': {
+ title: 'Closed-captioned video',
+ description: '<p>If supported, should show a "CC" button, which should toggle display of closed captions.</p>' +
+ '<p>The state of the button should reflect the state of closed-captioning in the video (on at the start of the test).</p>',
+ js: function() {
+ var video = document.getElementsByTagName('video')[0];
+ video.webkitClosedCaptionsVisible = true;
+ video.addEventListener('canplaythrough', function()
+ {
+ video.webkitClosedCaptionsVisible = true;
+ }, false);
+ },
+ html: '<video controls src={video-captioned}></video>',
+},
+'invalid': {
+ title: 'Video with invalid media',
+ description: 'Should have "Rewind" and "Play" buttons, and "Loading..." status ' +
+ 'if supported. Should blink "Loading...", but not twitch or flash other controls if reloaded',
+ html: '<video controls src="foobar"></video>'
+},
+'video-no-source': {
+ title: 'Video with no source',
+ description: 'Should have "Rewind" and "Play" buttons. Should not blink/twitch if reloaded.',
+ html: '<video controls></video>'
+},
+'audio-no-source': {
+ title: 'Audio with no source',
+ description: 'Should have "Rewind" and "Play" buttons. Should not blink/twitch if reloaded.',
+ html: '<audio controls></audio>'
+},
+'controls-buffer-update': {
+ title: 'Buffer progress bar updates',
+ description: '<p>The buffer progress bar should continue to update prior to video playback.</p>' +
+ '<p>Verify the progress bar representing the amount of video buffered continues to ' +
+ 'update prior to video playback. Keep the mouse pointer off the progress bar during this check ' +
+ 'as movement over the control will trigger a repaint which invalidates the test.</p><p>' +
+ 'It\'s expected that the video may stop buffering before the entire video is loaded.</p>',
+ html: '<video controls src="http://movies.apple.com/movies/us/apple/ipoditunes/2007/touch/ads/apple_ipodtouch_touch_640x360.mov' +
+ '?prevent_caching=' + new Date().getTime() + '"></video>'
+}
+
+};
+
+function configureMediaFiles()
+{
+ MEDIA_FILES = {
+ 'audio': absoluteUrl(findMediaFile('audio', MEDIA_FILES_LOCATION + '/test')),
+ 'video': absoluteUrl(findMediaFile('video', MEDIA_FILES_LOCATION + '/test')),
+ 'video-captioned': absoluteUrl(MEDIA_FILES_LOCATION + '/counting-captioned.mov')
+ }
+
+ // FIXME: Add error reporting when resolving these fails.
+
+ function absoluteUrl(url)
+ {
+ var a = document.createElement('a');
+ a.href = url;
+ return '"' + a.href + '"';
+ }
+}
+
+function runTest()
+{
+ var test = TESTS[location.hash.substr(1)];
+ if (!test)
+ return;
+
+ var arena = document.getElementById('arena');
+ document.getElementById('description').innerHTML = '<h2>' + test.title + '</h2>' + test.description;
+ if (test.html) {
+ arena.contentDocument.body.innerHTML = test.html.replace(/{([\w-]+)}/g, function(s, type)
+ {
+ return (MEDIA_FILES[type] || '');
+ });
+ }
+
+ arena.contentDocument.body.appendChild(arena.contentDocument.createElement('script')).textContent = 'window.test = ' + (test.js ? String(test.js) : 'function() {}') + ';\nwindow.test()';
+}
+
+window.addEventListener('hashchange', runTest, false);
+
+window.addEventListener('DOMContentLoaded', function()
+{
+ configureMediaFiles();
+
+ var list = document.getElementById('list').appendChild(document.createElement('ul'));
+ for(var key in TESTS)
+ list.appendChild(document.createElement('li')).innerHTML = '<a href="#' + key + '" id="' + key + '">' + TESTS[key].title + '</a>';
+ runTest();
+}, false);
+
+</script>
+</head>
+<body>
+<div id="list">
+ <h1>Manual Tests of Media Controls Appearance</h1>
+</div>
+<div id="test">
+ <iframe id="arena"></iframe>
+ <div id="description"></div>
+</div>
+</body>
+</html>
diff --git a/ManualTests/media-default-playback-rate.html b/ManualTests/media-default-playback-rate.html
new file mode 100644
index 000000000..b980edc13
--- /dev/null
+++ b/ManualTests/media-default-playback-rate.html
@@ -0,0 +1,90 @@
+
+<html>
+ <head>
+ <!-- LayoutTests location is hard-coded to avoid duplication of code. -->
+ <script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/media-file.js"></script>
+ <script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/video-test.js"></script>
+
+ <script>
+ var expectedRates = { "defaultPlaybackRate" : 1, "playbackRate" : 1};
+ var playingFromScript = false;
+ var changedRate = false;
+
+ function absoluteUrl(url)
+ {
+ var a = document.createElement('a');
+ a.href = url;
+ return a.href;
+ }
+
+ function testRates()
+ {
+ consoleWrite("");
+ var playWithControllerButton = !changedRate && !playingFromScript;
+ testExpected("video.playbackRate", playWithControllerButton ? expectedRates['defaultPlaybackRate'] : expectedRates['playbackRate']);
+ testExpected("video.defaultPlaybackRate", expectedRates['defaultPlaybackRate']);
+ changedRate = false;
+ }
+
+ function playing()
+ {
+ consoleWrite("<br>'playing' event");
+ expectedRates['playbackRate'] = playingFromScript ? video.playbackRate : video.defaultPlaybackRate;
+ testRates();
+ playingFromScript = false;
+ }
+
+ function ratechange()
+ {
+ consoleWrite("<br>'ratechange' event");
+ testRates();
+ }
+
+ function start()
+ {
+ findMediaElement();
+ video.addEventListener('ratechange', ratechange);
+ video.addEventListener('playing', playing);
+
+ // Use the video file from the svn repository to avoid duplicating the file.
+ video.src = absoluteUrl(findMediaFile('video', 'http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/content/test'));
+ testRates();
+ }
+
+ function play()
+ {
+ playingFromScript = true;
+ video.play();
+ }
+
+ function setRate(which, rate)
+ {
+ changedRate = true;
+ video[which] = rate;
+ expectedRates[which] = rate;
+ }
+
+ </script>
+ </head>
+
+ <body onload="start()">
+
+ <video controls > </video>
+ <ul>
+ <li>The current 'playbackRate' and 'defaultPlaybackRate' should be logged every time either changes.</li>
+ <li>'playbackRate' should be set to 'defaultPlaybackRate' when the Play button in the built-in controls is pressed</li>
+ <li>'playbackRate' should NOT when play() is called from script.</li>
+ </ul>
+ <div>
+ <button id="controls" onclick="setRate('defaultPlaybackRate', 2)">defaultPlaybackRate = 2</button>
+ <button id="controls" onclick="setRate('defaultPlaybackRate', 1)">defaultPlaybackRate = 1</button>
+ <button id="controls" onclick="setRate('playbackRate', 2)">playbackRate = 2</button>
+ <button id="controls" onclick="setRate('playbackRate', 1)">playbackRate = 1</button>
+ </div>
+ <div>
+ <button id="controls" onclick="play()">play()</button>
+ <button id="controls" onclick="video.pause()">pause()</button>
+ </div>
+ <br>
+ </body>
+</html>
diff --git a/ManualTests/media-elements/video-preload.html b/ManualTests/media-elements/video-preload.html
new file mode 100644
index 000000000..ddc324fcf
--- /dev/null
+++ b/ManualTests/media-elements/video-preload.html
@@ -0,0 +1,230 @@
+<!doctype html>
+<html>
+ <head>
+ <title>preload test</title>
+ <meta name="viewport" content="width=device-width">
+ <style type="text/css" media="screen">
+ body { font-family: georgia, serif; background: gray; }
+ video { background: yellow; }
+ .info { background-color:#e3e3f3; padding:10px; border:1px solid #9c9; width:600px; }
+ .info table { background: #fff; width:600px; }
+ .info td { border:1px solid; border-color:#fff #bbb #bbb #fff; background-color:#fff; padding:2px; font-size:.7em; width:50%;}
+ #event_log { background: #fff; font-size:.5em; width: 100%; }
+ #refresh { margin-top:10px; }
+ </style>
+
+ <script>
+ document.addEventListener('loadedmetadata', querymovie);
+ document.addEventListener('waiting', querymovie);
+ document.addEventListener('error', querymovie);
+ document.addEventListener('durationchange', querymovie);
+ document.addEventListener('error', querymovie);
+ document.addEventListener('stalled', querymovie);
+ document.addEventListener('canplay', querymovie);
+
+ // log all events
+ var events = ["abort", "beforeload", "canplay", "canplaythrough", "durationchange", "emptied", "ended", "error", "loadeddata", "loadedmetadata", "loadstart", "pause", "play", "playing", "progress", "ratechange", "seeked", "seeking", "stalled", "suspend", "timeupdate", "volumechange", "waiting", "webkitbeginfullscreen", "webkitendfullscreen"];
+ for (var i=0; i < events.length; i++)
+ document.addEventListener(events[i], logProgress, true);
+
+ function printTimeRangeValue(element, prop)
+ {
+ var range;
+
+ if (prop == 'Max time buffered')
+ range = element.buffered;
+ else if (prop == "Max time seekable")
+ range = element.seekable;
+ else
+ alert(prop);
+ if (!range)
+ return "undefined";
+
+ if (range.length)
+ return range.start(0).toFixed(2) + ".." + range.end(0).toFixed(2) + " [length =" + range.length + "]";
+ return "[range length = " + range.length + "]";
+ }
+
+ function statePropertyValue(element, prop)
+ {
+ var readyNames = ['HAVE_NOTHING', 'HAVE_METADATA', 'HAVE_CURRENT_DATA', 'HAVE_FUTURE_DATA', 'HAVE_ENOUGH_DATA'];
+ var networkNames = ['NETWORK_EMPTY', 'NETWORK_IDLE', 'NETWORK_LOADING', 'NETWORK_LOADED', 'NETWORK_NO_SOURCE'];
+ var value;
+
+ if (prop== 'Ready State')
+ value = readyNames[element.readyState];
+ else
+ value = networkNames[element.networkState];
+ return value;
+ }
+
+ function querymovie(evt)
+ {
+ var movieProperties =
+ [
+ ["Source", "src"],
+ ["Current Source", "currentSrc"],
+ ["Duration", "duration"],
+ ["Video Width", "videoWidth"],
+ ["Video Height", "videoHeight"],
+ ["Default Playback Rate", "defaultPlaybackRate"],
+ ["Volume", "volume"],
+ ["Preload", "preload"],
+ ["Ready State", statePropertyValue],
+ ["Network State", statePropertyValue],
+ ["Max time buffered", printTimeRangeValue],
+ ["Max time seekable", printTimeRangeValue]
+ ];
+
+ var vid = evt ? evt.target : document.getElementById('vid');
+ for (var i = 0; i < movieProperties.length; i++)
+ {
+ var prop = movieProperties[i];
+ var val;
+
+ if (typeof prop[1] == 'function')
+ val = prop[1](vid, prop[0]);
+ else
+ val = vid[prop[1]];
+
+ if (typeof val == 'number')
+ val = val.toFixed(2);
+ else if (typeof val == "undefined")
+ val = "undefined";
+ document.getElementById(prop[0]).innerHTML = val;
+ }
+ }
+
+ function setURL(url)
+ {
+ var vid = document.getElementById("vid");
+
+ logMsg(vid, "###############");
+ logMsg(vid, "##### setting url to " + url);
+ if ( url != "" )
+ {
+ vid.src = url;
+ vid.load();
+ }
+ }
+
+ function clockTime()
+ {
+ var now = new Date();
+ var hour = now.getHours();
+ var minute = now.getMinutes();
+ var second = now.getSeconds();
+ var milli = now.getMilliseconds();
+ if (hour > 12)
+ hour = hour - 12;
+ else if (hour == 0)
+ hour = 12;
+ if (hour < 10)
+ hour = "0" + hour;
+ if (minute < 10)
+ minute = "0" + minute;
+ if (second < 10)
+ second = "0" + second;
+ if (milli < 10)
+ milli = "00" + milli;
+ else if (milli < 100)
+ milli = "0" + milli;
+
+ return hour + ':' + minute + ':' + second + '.' + milli;
+ }
+
+ function logMsg(vid, msg)
+ {
+ document.getElementById('event_log').value += clockTime() + " - " + msg + ' \r';
+ }
+
+ function clearlog()
+ {
+ document.getElementById('event_log').value = '';
+ }
+
+ function logProgress(ev)
+ {
+ var vid = ev.target;
+
+ if (ev.type == 'timeupdate')
+ {
+ var logTimeupdate = document.getElementById('log-timeupdate');
+ if (!logTimeupdate.checked)
+ return;
+ }
+ if (ev.type == 'progress')
+ {
+ var logTimeupdate = document.getElementById('log-progress');
+ if (!logTimeupdate.checked)
+ return;
+ }
+
+ logMsg(vid, ev.type + ' (time = ' + vid.currentTime.toFixed(2) + ')');
+ }
+
+ function logError(ev)
+ {
+ var vid = ev.target;
+ logMsg(vid, "vid.error = " + vid.error.code);
+ }
+
+
+ function preload(value)
+ {
+ var vid = document.getElementById("vid");
+ var old = vid.preload;
+ vid.preload=value;
+ querymovie();
+ }
+ </script>
+
+</head>
+
+<body onload="querymovie()">
+ <p>
+ <video id="vid" src="http://trailers.apple.com/movies/weinstein/submarine/submarine-tlr1_480p.mov" height="391"
+ controls preload="metadata">
+ </video>
+ </p>
+ <p>
+ <button id="controls" onclick="preload('none')">preload=none</button>
+ <button id="controls" onclick="preload('metadata')">preload=metadata</button>
+ <button id="controls" onclick="preload('auto')">preload=auto</button>
+ </p>
+
+ <div class="info">
+ <input id="querymovie" type="button" value="Refresh" onclick="querymovie()">
+ <br>
+ <table>
+ <tbody>
+ <tr><td>Preload</td><td id="Preload"></td></tr>
+ <tr><td>Error</td><td id="Error"></td></tr>
+ <tr><td>Duration</td> <td id="Duration"></td></tr>
+ <tr><td>Video Width</td><td id="Video Width"></td></tr>
+ <tr><td>Video Height</td><td id="Video Height"></td></tr>
+ <tr><td>Default Playback Rate</td><td id="Default Playback Rate"></td></tr>
+ <tr><td>Volume</td><td id="Volume"></td></tr>
+ <tr><td>Ready State</td><td id="Ready State"></td></tr>
+ <tr><td>Network State</td><td id="Network State"></td></tr>
+ <tr><td>Max time buffered</td><td id="Max time buffered"></td></tr>
+ <tr><td>Max time seekable</td><td id="Max time seekable"></td></tr>
+ <tr><td>Source</td><td id="Source"></td></tr>
+ <tr><td>Current Source </td> <td id="Current Source"></td></tr>
+ </tbody>
+ </table>
+ </div>
+
+ <br>
+ <div class="info">
+ Enter a url:<input type="text" size="90" maxlength="2048" onchange="setURL(this.value)" >
+ <br>
+ <input id="clear_log" type="button" value="Clear" onclick="clearlog()">
+ <input type="checkbox" id="log-progress"> log 'progress' events
+ <input type="checkbox" checked id="log-timeupdate"> log 'timeupdate' events
+ <textarea rows=30 cols=30 id=event_log></textarea>
+ <div id="event_log"></div>
+ </div>
+
+</body>
+</html>
diff --git a/ManualTests/media-elements/video-replaces-poster.html b/ManualTests/media-elements/video-replaces-poster.html
new file mode 100644
index 000000000..bf91a3921
--- /dev/null
+++ b/ManualTests/media-elements/video-replaces-poster.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ </head>
+ <body>
+ <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34965">https://bugs.webkit.org/show_bug.cgi?id=34965</a><br>
+ Disable accelerated compositing and reload this test. You should see the test video
+ start playing.</p>
+
+ <video width="480" height="270" type="video/mp4"
+ src="../../../../LayoutTests/media/content/test.mp4"
+ poster="../../../../LayoutTests/media/content/abe.png" autoplay>
+ </video>
+ </body>
+</html>
diff --git a/ManualTests/media-muted.html b/ManualTests/media-muted.html
new file mode 100644
index 000000000..40e4e418c
--- /dev/null
+++ b/ManualTests/media-muted.html
@@ -0,0 +1,32 @@
+<html>
+ <!-- LayoutTests location is hard-coded to avoid duplication of code. -->
+ <script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/media-file.js"></script>
+ <script>
+ var vid;
+
+ function canplaythrough()
+ {
+ vid.play();
+ }
+
+ function load()
+ {
+ vid = document.getElementById('vid');
+ vid.addEventListener('canplaythrough', canplaythrough);
+
+ // Mute first
+ vid.muted = true;
+
+ vid.src = "http://src.chromium.org/svn/trunk/src/chrome/test/data/media/" + findMediaFile("video", "bear");
+ }
+ </script>
+
+ <body>
+ <video id=vid controls autoplay>
+ </video>
+ <p>TEST: Video should be muted (e.g., controls) and also produce no sound (<a href="https://bugs.webkit.org/show_bug.cgi?id=57673">bug 57673</a>).</p>
+ <input type="button" value="Load movie" onclick="load()">
+ <br>
+ </body>
+
+</html>
diff --git a/ManualTests/memory/MessageUidsAlreadyDownloaded2 b/ManualTests/memory/MessageUidsAlreadyDownloaded2
new file mode 100644
index 000000000..57269f660
--- /dev/null
+++ b/ManualTests/memory/MessageUidsAlreadyDownloaded2
@@ -0,0 +1,4296 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>1154111803.H358449P19268.mbox1.freenet.de,S=22050,L=363</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-28T19:13:46Z</date>
+ </dict>
+ <key>1154117771.H461347P398.mbox1.freenet.de,S=2443,L=89</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-28T20:22:43Z</date>
+ </dict>
+ <key>1154118461.H845954P11540.mbox1.freenet.de,S=2073,L=60</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-28T20:34:37Z</date>
+ </dict>
+ <key>1154119399.H723288P24749.mbox1.freenet.de,S=3784,L=75</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T06:17:48Z</date>
+ </dict>
+ <key>1154120527.H499834P7002.mbox1.freenet.de,S=2428,L=49</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T06:17:49Z</date>
+ </dict>
+ <key>1154136928.H711235P7432.mbox1.freenet.de,S=2267,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T06:17:55Z</date>
+ </dict>
+ <key>1154141115.H278014P21772.mbox1.freenet.de,S=2648,L=94</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T06:17:55Z</date>
+ </dict>
+ <key>1154142404.H444143P13254.mbox1.freenet.de,S=26736,L=481</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T06:17:55Z</date>
+ </dict>
+ <key>1154143048.H4813P29876.mbox1.freenet.de,S=2432,L=57</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T06:17:55Z</date>
+ </dict>
+ <key>1154146079.H240331P27863.mbox1.freenet.de,S=3336,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T06:17:58Z</date>
+ </dict>
+ <key>1154148315.H16116P16385.mbox1.freenet.de,S=1973,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T06:17:58Z</date>
+ </dict>
+ <key>1154155911.H447952P8367.mbox1.freenet.de,S=9377,L=175</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T06:58:04Z</date>
+ </dict>
+ <key>1154156262.H931482P16302.mbox1.freenet.de,S=1467,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T06:58:04Z</date>
+ </dict>
+ <key>1154157562.H280906P1236.mbox1.freenet.de,S=35699,L=546</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T08:17:58Z</date>
+ </dict>
+ <key>1154157648.H144803P2338.mbox1.freenet.de,S=22613,L=370</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T08:17:58Z</date>
+ </dict>
+ <key>1154160958.H795942P22086.mbox1.freenet.de,S=2829,L=101</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T08:17:58Z</date>
+ </dict>
+ <key>1154164698.H624491P18335.mbox1.freenet.de,S=43702,L=1023</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T16:14:45Z</date>
+ </dict>
+ <key>1154167515.H972702P5030.mbox1.freenet.de,S=22467,L=368</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T16:14:46Z</date>
+ </dict>
+ <key>1154174670.H224050P30725.mbox1.freenet.de,S=3308,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T16:14:47Z</date>
+ </dict>
+ <key>1154176114.H743456P22579.mbox1.freenet.de,S=2006,L=57</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T16:14:47Z</date>
+ </dict>
+ <key>1154184971.H479935P25330.mbox1.freenet.de,S=2635,L=91</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T16:14:47Z</date>
+ </dict>
+ <key>1154185677.H789066P3851.mbox1.freenet.de,S=1167,L=34</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T16:14:47Z</date>
+ </dict>
+ <key>1154190799.H30721P17126.mbox1.freenet.de,S=3783,L=75</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T16:35:31Z</date>
+ </dict>
+ <key>1154194034.H891700P4354.mbox1.freenet.de,S=2153,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T17:35:31Z</date>
+ </dict>
+ <key>1154198323.H243017P9092.mbox1.freenet.de,S=1500,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T18:56:10Z</date>
+ </dict>
+ <key>1154201448.H521281P30530.mbox1.freenet.de,S=3766,L=110</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T19:35:34Z</date>
+ </dict>
+ <key>1154201733.H742067P3354.mbox1.freenet.de,S=1374,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T19:35:34Z</date>
+ </dict>
+ <key>1154202656.H351645P17823.mbox1.freenet.de,S=22871,L=370</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T19:55:49Z</date>
+ </dict>
+ <key>1154206406.H789099P8315.mbox1.freenet.de,S=1975,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T21:11:07Z</date>
+ </dict>
+ <key>1154207701.H462086P24032.mbox1.freenet.de,S=2628,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-29T21:54:47Z</date>
+ </dict>
+ <key>1154211428.H139331P11450.mbox1.freenet.de,S=1978,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:37Z</date>
+ </dict>
+ <key>1154211730.H16038P14828.mbox1.freenet.de,S=7500,L=226</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:39Z</date>
+ </dict>
+ <key>1154221130.H326563P6974.mbox1.freenet.de,S=2771,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:39Z</date>
+ </dict>
+ <key>1154222657.H751377P30045.mbox1.freenet.de,S=2197,L=48</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:39Z</date>
+ </dict>
+ <key>1154226264.H252785P28758.mbox1.freenet.de,S=2933,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:39Z</date>
+ </dict>
+ <key>1154230453.H837438P7526.mbox1.freenet.de,S=3571,L=78</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:41Z</date>
+ </dict>
+ <key>1154236571.H729085P28582.mbox1.freenet.de,S=2807,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:41Z</date>
+ </dict>
+ <key>1154236783.H955292P30199.mbox1.freenet.de,S=2188,L=62</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:41Z</date>
+ </dict>
+ <key>1154242354.H170494P14687.mbox1.freenet.de,S=9625,L=63</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:41Z</date>
+ </dict>
+ <key>1154242855.H757856P18626.mbox1.freenet.de,S=2672,L=91</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:41Z</date>
+ </dict>
+ <key>1154244551.H920942P2192.mbox1.freenet.de,S=2207,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T07:32:41Z</date>
+ </dict>
+ <key>1154263532.H193325P22924.mbox1.freenet.de,S=2039,L=57</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T12:46:38Z</date>
+ </dict>
+ <key>1154265275.H367713P16996.mbox1.freenet.de,S=2198,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-07-30T13:16:47Z</date>
+ </dict>
+ <key>1154282347.H20977P3823.mbox1.freenet.de,S=9587,L=199</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:16Z</date>
+ </dict>
+ <key>1154288804.H803763P8206.mbox1.freenet.de,S=2058,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:17Z</date>
+ </dict>
+ <key>1154299820.H477576P18033.mbox1.freenet.de,S=2618,L=93</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:18Z</date>
+ </dict>
+ <key>1154310315.H820113P1827.mbox1.freenet.de,S=3799,L=110</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:19Z</date>
+ </dict>
+ <key>1154311499.H546032P13891.mbox1.freenet.de,S=2233,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:19Z</date>
+ </dict>
+ <key>1154318224.H536896P14968.mbox1.freenet.de,S=8805,L=157</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154319854.H210142P26288.mbox1.freenet.de,S=2446,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154321361.H711271P5428.mbox1.freenet.de,S=2036,L=59</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154322532.H550166P17256.mbox1.freenet.de,S=3144,L=110</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154325187.H294135P17861.mbox1.freenet.de,S=3459,L=77</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154330389.H180134P593.mbox1.freenet.de,S=2768,L=94</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154330589.H853877P3916.mbox1.freenet.de,S=2048,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154330917.H159606P9329.mbox1.freenet.de,S=28506,L=562</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154335492.H583581P30769.mbox1.freenet.de,S=3134,L=110</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154339191.H120444P8465.mbox1.freenet.de,S=3063,L=77</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154339572.H788076P15350.mbox1.freenet.de,S=1586,L=45</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:22Z</date>
+ </dict>
+ <key>1154341116.H784100P13474.mbox1.freenet.de,S=9493,L=69</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:23Z</date>
+ </dict>
+ <key>1154350115.H216883P8871.mbox1.freenet.de,S=3376,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:23Z</date>
+ </dict>
+ <key>1154352077.H598131P13951.mbox1.freenet.de,S=2053,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:23Z</date>
+ </dict>
+ <key>1154357533.H427278P29986.mbox1.freenet.de,S=5214,L=126</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:23Z</date>
+ </dict>
+ <key>1154368111.H681374P21908.mbox1.freenet.de,S=3384,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:23Z</date>
+ </dict>
+ <key>1154372487.H589212P18160.mbox1.freenet.de,S=1805,L=47</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:23Z</date>
+ </dict>
+ <key>1154373426.H113666P5693.mbox1.freenet.de,S=1955,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:23Z</date>
+ </dict>
+ <key>1154374064.H646622P19789.mbox1.freenet.de,S=16327,L=260</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154374390.H822597P26688.mbox1.freenet.de,S=29058,L=568</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154374877.H443661P8856.mbox1.freenet.de,S=7478,L=144</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154378335.H372820P17205.mbox1.freenet.de,S=29708,L=578</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154380198.H919219P16039.mbox1.freenet.de,S=1617,L=41</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154380266.H829510P17338.mbox1.freenet.de,S=3159,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154381245.H781041P971.mbox1.freenet.de,S=29486,L=573</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154383826.H581519P5619.mbox1.freenet.de,S=2491,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154383907.H914484P6602.mbox1.freenet.de,S=2579,L=59</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154389136.H486057P2884.mbox1.freenet.de,S=18921,L=508</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154406313.H251951P16905.mbox1.freenet.de,S=8234,L=91</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154406403.H74248P17793.mbox1.freenet.de,S=1468,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154406904.H284040P25564.mbox1.freenet.de,S=1328,L=30</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154410875.H702423P10666.mbox1.freenet.de,S=3436,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154411027.H712871P13320.mbox1.freenet.de,S=2299,L=45</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:27Z</date>
+ </dict>
+ <key>1154412960.H909004P13832.mbox1.freenet.de,S=3304,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:30Z</date>
+ </dict>
+ <key>1154423513.H859512P10214.mbox1.freenet.de,S=2261,L=66</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:30Z</date>
+ </dict>
+ <key>1154432726.H69271P12439.mbox1.freenet.de,S=1774,L=41</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:30Z</date>
+ </dict>
+ <key>1154433859.H266614P4663.mbox1.freenet.de,S=61054,L=790</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:30Z</date>
+ </dict>
+ <key>1154437434.H599023P17039.mbox1.freenet.de,S=3191,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:30Z</date>
+ </dict>
+ <key>1154446410.H329415P18075.mbox1.freenet.de,S=1871,L=41</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:30Z</date>
+ </dict>
+ <key>1154446719.H706064P27099.mbox1.freenet.de,S=1666,L=40</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:30Z</date>
+ </dict>
+ <key>1154452994.H219957P9909.mbox1.freenet.de,S=3768,L=109</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:30Z</date>
+ </dict>
+ <key>1154456797.H410486P5536.mbox1.freenet.de,S=3808,L=112</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:30Z</date>
+ </dict>
+ <key>1154458368.H152307P9225.mbox1.freenet.de,S=2298,L=46</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154459822.H574797P13606.mbox1.freenet.de,S=2294,L=44</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154462619.H765747P10024.mbox1.freenet.de,S=2075,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154464640.H274928P18932.mbox1.freenet.de,S=2051,L=59</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154467696.H267955P13501.mbox1.freenet.de,S=26182,L=563</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154467775.H548080P14727.mbox1.freenet.de,S=29184,L=578</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154470343.H767624P26215.mbox1.freenet.de,S=2613,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154479256.H884595P18388.mbox1.freenet.de,S=17010,L=293</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154479329.H790239P19426.mbox1.freenet.de,S=29841,L=576</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154482204.H318144P19613.mbox1.freenet.de,S=2919,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154492754.H490902P13765.mbox1.freenet.de,S=3224,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154496852.H422665P22937.mbox1.freenet.de,S=2168,L=61</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154500305.H761267P3003.mbox1.freenet.de,S=2055,L=59</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:34Z</date>
+ </dict>
+ <key>1154502841.H481665P7299.mbox1.freenet.de,S=9029,L=158</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154503390.H907552P21594.mbox1.freenet.de,S=1355,L=30</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154506274.H963865P12453.mbox1.freenet.de,S=1538,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154507112.H636295P4391.mbox1.freenet.de,S=1545,L=41</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154510432.H500772P6353.mbox1.freenet.de,S=8098,L=136</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154510812.H930961P17880.mbox1.freenet.de,S=3269,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154511935.H742983P21884.mbox1.freenet.de,S=4303,L=63</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154518569.H771158P3018.mbox1.freenet.de,S=3228,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154518727.H778942P8528.mbox1.freenet.de,S=7727,L=181</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154525091.H309996P14768.mbox1.freenet.de,S=1577,L=49</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154527275.H61884P18991.mbox1.freenet.de,S=1629,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154528083.H278774P12141.mbox1.freenet.de,S=3469,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154531670.H161741P576.mbox1.freenet.de,S=17904,L=307</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154540694.H424930P11508.mbox1.freenet.de,S=2100,L=46</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154541967.H480715P24795.mbox1.freenet.de,S=34667,L=1135</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154544700.H204133P16065.mbox1.freenet.de,S=7518,L=177</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154545974.H878571P10429.mbox1.freenet.de,S=17643,L=304</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154547134.H790776P6068.mbox1.freenet.de,S=2129,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154547134.H791582P6082.mbox1.freenet.de,S=2109,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154552079.H183013P26609.mbox1.freenet.de,S=1557,L=34</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:37Z</date>
+ </dict>
+ <key>1154558833.H680601P19873.mbox1.freenet.de,S=29014,L=565</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154559443.H629394P27069.mbox1.freenet.de,S=28201,L=565</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154559705.H963621P30624.mbox1.freenet.de,S=1658,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154559903.H128255P635.mbox1.freenet.de,S=4293,L=115</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154561841.H24917P22788.mbox1.freenet.de,S=1678,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154565078.H552095P24820.mbox1.freenet.de,S=1571,L=49</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154567656.H888068P19790.mbox1.freenet.de,S=28626,L=565</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154577271.H344493P18097.mbox1.freenet.de,S=2687,L=94</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154581483.H783928P29693.mbox1.freenet.de,S=1956,L=49</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154592204.H40007P17630.mbox1.freenet.de,S=1723,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154596091.H624074P1470.mbox1.freenet.de,S=1771,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154596322.H41452P6095.mbox1.freenet.de,S=3290,L=93</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154596653.H393287P14440.mbox1.freenet.de,S=1662,L=49</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154602697.H48510P21068.mbox1.freenet.de,S=3294,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154610123.H590789P10560.mbox1.freenet.de,S=5389,L=140</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154611988.H804047P20437.mbox1.freenet.de,S=15159,L=234</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154620474.H342588P28635.mbox1.freenet.de,S=8578,L=239</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154624033.H534525P3741.mbox1.freenet.de,S=3097,L=109</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154624721.H847487P16221.mbox1.freenet.de,S=1666,L=49</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154625169.H409170P24163.mbox1.freenet.de,S=1810,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:41Z</date>
+ </dict>
+ <key>1154630617.H489240P18189.mbox1.freenet.de,S=15420,L=449</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154630832.H617668P26506.mbox1.freenet.de,S=3275,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154632455.H73886P5468.mbox1.freenet.de,S=41479,L=739</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154636004.H213292P11542.mbox1.freenet.de,S=2073,L=43</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154648684.H553339P9249.mbox1.freenet.de,S=1283,L=30</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154654111.H342601P28367.mbox1.freenet.de,S=1749,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154654548.H92597P32115.mbox1.freenet.de,S=1582,L=49</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154663797.H236313P19106.mbox1.freenet.de,S=3212,L=91</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154666007.H220170P15121.mbox1.freenet.de,S=2399,L=60</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154674137.H953239P18937.mbox1.freenet.de,S=1780,L=44</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154674539.H433913P29115.mbox1.freenet.de,S=1726,L=42</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154678097.H775074P29674.mbox1.freenet.de,S=2118,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154681470.H721664P30619.mbox1.freenet.de,S=1653,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154681835.H440294P5887.mbox1.freenet.de,S=3303,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154683329.H499060P3008.mbox1.freenet.de,S=2973,L=107</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154683349.H475784P3421.mbox1.freenet.de,S=1635,L=49</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154684133.H456313P20424.mbox1.freenet.de,S=16757,L=398</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154686227.H264355P3267.mbox1.freenet.de,S=5053,L=132</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154693255.H104812P23648.mbox1.freenet.de,S=3269,L=91</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154701385.H313603P24878.mbox1.freenet.de,S=1747,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154706438.H888975P28377.mbox1.freenet.de,S=8804,L=156</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154709564.H133555P12044.mbox1.freenet.de,S=1687,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154711177.H804272P9516.mbox1.freenet.de,S=3008,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154711962.H906792P24181.mbox1.freenet.de,S=1714,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:45Z</date>
+ </dict>
+ <key>1154712249.H863087P31306.mbox1.freenet.de,S=1346,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154713540.H686084P26445.mbox1.freenet.de,S=1553,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154713751.H55777P30321.mbox1.freenet.de,S=1656,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154714170.H614557P4421.mbox1.freenet.de,S=3281,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154718674.H962131P20772.mbox1.freenet.de,S=2187,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154736338.H750416P22092.mbox1.freenet.de,S=1653,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154737824.H694419P4946.mbox1.freenet.de,S=3256,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154739519.H564665P7297.mbox1.freenet.de,S=1480,L=48</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154742580.H145981P16735.mbox1.freenet.de,S=3083,L=109</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154748952.H268713P25433.mbox1.freenet.de,S=1582,L=28</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154762163.H879963P5656.mbox1.freenet.de,S=1743,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154762709.H416283P12536.mbox1.freenet.de,S=36151,L=651</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154764703.H681259P13907.mbox1.freenet.de,S=5585,L=142</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154765905.H451651P2578.mbox1.freenet.de,S=1823,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154769448.H539772P24732.mbox1.freenet.de,S=30509,L=579</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154771241.H958339P23393.mbox1.freenet.de,S=2643,L=48</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154771454.H867661P26915.mbox1.freenet.de,S=3250,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154772483.H759921P10662.mbox1.freenet.de,S=31161,L=584</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154774590.H735607P14785.mbox1.freenet.de,S=1349,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154780998.H350794P2186.mbox1.freenet.de,S=1476,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154783729.H629301P24338.mbox1.freenet.de,S=1828,L=42</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154787802.H457991P5386.mbox1.freenet.de,S=1693,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:48Z</date>
+ </dict>
+ <key>1154793287.H907122P26499.mbox1.freenet.de,S=1979,L=57</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154796083.H582751P18038.mbox1.freenet.de,S=3393,L=94</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154800164.H457883P20118.mbox1.freenet.de,S=1586,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154802791.H175746P2813.mbox1.freenet.de,S=32753,L=593</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154807187.H620176P8421.mbox1.freenet.de,S=2249,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154808376.H73702P29758.mbox1.freenet.de,S=31175,L=583</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154815352.H547663P23781.mbox1.freenet.de,S=2226,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154815852.H497641P28672.mbox1.freenet.de,S=1640,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154819844.H89068P3941.mbox1.freenet.de,S=1629,L=49</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154824220.H394534P13505.mbox1.freenet.de,S=3228,L=91</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154825688.H313706P30527.mbox1.freenet.de,S=1339,L=30</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154833081.H437178P7263.mbox1.freenet.de,S=1671,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154834629.H62247P20542.mbox1.freenet.de,S=32275,L=589</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154834996.H616625P23803.mbox1.freenet.de,S=2314,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154835617.H514035P28790.mbox1.freenet.de,S=32395,L=590</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:51Z</date>
+ </dict>
+ <key>1154838795.H268666P26334.mbox1.freenet.de,S=3237,L=112</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154842431.H758835P9655.mbox1.freenet.de,S=1859,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154842671.H909620P13204.mbox1.freenet.de,S=1899,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154845999.H991416P17794.mbox1.freenet.de,S=1522,L=48</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154847930.H731674P21637.mbox1.freenet.de,S=1682,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154850230.H929566P13366.mbox1.freenet.de,S=2687,L=70</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154853778.H392687P27949.mbox1.freenet.de,S=1510,L=30</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154858210.H631452P8577.mbox1.freenet.de,S=1949,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154866627.H35308P2473.mbox1.freenet.de,S=2118,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154870895.H472229P15808.mbox1.freenet.de,S=1666,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154873038.H830117P19580.mbox1.freenet.de,S=1821,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T14:33:52Z</date>
+ </dict>
+ <key>1154874938.H570736P20318.mbox1.freenet.de,S=9402,L=195</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T17:16:29Z</date>
+ </dict>
+ <key>1154879259.H913434P702.mbox1.freenet.de,S=5899,L=123</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T17:16:29Z</date>
+ </dict>
+ <key>1154892728.H872013P14934.mbox1.freenet.de,S=8171,L=176</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T20:03:30Z</date>
+ </dict>
+ <key>1154893187.H782991P23768.mbox1.freenet.de,S=2273,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T20:03:33Z</date>
+ </dict>
+ <key>1154896088.H57751P7859.mbox1.freenet.de,S=1746,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-06T20:29:21Z</date>
+ </dict>
+ <key>1154897034.H715417P27754.mbox1.freenet.de,S=1355,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:15:32Z</date>
+ </dict>
+ <key>1154897842.H192629P9304.mbox1.freenet.de,S=1775,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:15:34Z</date>
+ </dict>
+ <key>1154908466.H256444P4309.mbox1.freenet.de,S=9612,L=202</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:15:34Z</date>
+ </dict>
+ <key>1154913087.H603613P15691.mbox1.freenet.de,S=3458,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:15:34Z</date>
+ </dict>
+ <key>1154921729.H699962P10129.mbox1.freenet.de,S=32365,L=590</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:15:36Z</date>
+ </dict>
+ <key>1154925637.H501014P19587.mbox1.freenet.de,S=2030,L=34</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:15:36Z</date>
+ </dict>
+ <key>1154926530.H205520P969.mbox1.freenet.de,S=1497,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:15:36Z</date>
+ </dict>
+ <key>1154928611.H397993P27462.mbox1.freenet.de,S=1781,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:15:36Z</date>
+ </dict>
+ <key>1154930612.H415665P22794.mbox1.freenet.de,S=1608,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:15:36Z</date>
+ </dict>
+ <key>1154931196.H488624P31905.mbox1.freenet.de,S=31260,L=582</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:15:36Z</date>
+ </dict>
+ <key>1154933559.H443205P4635.mbox1.freenet.de,S=6551340,L=85105</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T06:58:36Z</date>
+ </dict>
+ <key>1154938322.H156182P23187.mbox1.freenet.de,S=2208,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T10:43:42Z</date>
+ </dict>
+ <key>1154939863.H828842P20902.mbox1.freenet.de,S=1646,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T10:43:43Z</date>
+ </dict>
+ <key>1154944050.H239620P3977.mbox1.freenet.de,S=1614,L=34</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T10:43:43Z</date>
+ </dict>
+ <key>1154944762.H411027P17426.mbox1.freenet.de,S=3329,L=93</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T10:43:43Z</date>
+ </dict>
+ <key>1154946936.H546750P29015.mbox1.freenet.de,S=16127,L=450</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T10:43:43Z</date>
+ </dict>
+ <key>1154950715.H932658P9753.mbox1.freenet.de,S=3123,L=57</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T11:44:24Z</date>
+ </dict>
+ <key>1154955826.H244494P25346.mbox1.freenet.de,S=1815,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T13:33:31Z</date>
+ </dict>
+ <key>1154956871.H53807P29765.mbox1.freenet.de,S=1631,L=49</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T13:33:31Z</date>
+ </dict>
+ <key>1154961414.H983301P10603.mbox1.freenet.de,S=3053,L=86</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T14:39:43Z</date>
+ </dict>
+ <key>1154964711.H449025P23281.mbox1.freenet.de,S=5168,L=133</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T15:39:27Z</date>
+ </dict>
+ <key>1154969887.H902776P18126.mbox1.freenet.de,S=3227,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T18:29:33Z</date>
+ </dict>
+ <key>1154973242.H36323P30035.mbox1.freenet.de,S=1313,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T18:29:33Z</date>
+ </dict>
+ <key>1154978298.H254629P25143.mbox1.freenet.de,S=33034,L=597</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T19:42:39Z</date>
+ </dict>
+ <key>1154979552.H889611P20200.mbox1.freenet.de,S=2261,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T19:42:39Z</date>
+ </dict>
+ <key>1154980568.H271316P9540.mbox1.freenet.de,S=31898,L=588</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T20:17:30Z</date>
+ </dict>
+ <key>1154981484.H87054P30587.mbox1.freenet.de,S=1497,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T20:17:31Z</date>
+ </dict>
+ <key>1154981702.H412110P4514.mbox1.freenet.de,S=8573,L=154</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T20:17:31Z</date>
+ </dict>
+ <key>1154981870.H420131P9009.mbox1.freenet.de,S=1651,L=29</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T20:26:09Z</date>
+ </dict>
+ <key>1154982355.H370141P21708.mbox1.freenet.de,S=1428,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T20:26:09Z</date>
+ </dict>
+ <key>1154984295.H419999P24736.mbox1.freenet.de,S=1710,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-07T21:02:39Z</date>
+ </dict>
+ <key>1154986457.H837808P23722.mbox1.freenet.de,S=1762,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T07:11:56Z</date>
+ </dict>
+ <key>1154989237.H324641P29504.mbox1.freenet.de,S=1665,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T07:11:57Z</date>
+ </dict>
+ <key>1154995803.H199883P16986.mbox1.freenet.de,S=3240,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T07:11:57Z</date>
+ </dict>
+ <key>1155007768.H677900P17429.mbox1.freenet.de,S=3429,L=106</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T07:11:57Z</date>
+ </dict>
+ <key>1155012524.H237704P28385.mbox1.freenet.de,S=1690,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T07:11:57Z</date>
+ </dict>
+ <key>1155015722.H329094P31095.mbox1.freenet.de,S=1598,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T07:11:57Z</date>
+ </dict>
+ <key>1155017688.H202986P2108.mbox1.freenet.de,S=2416,L=64</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T07:11:57Z</date>
+ </dict>
+ <key>1155019544.H171597P31071.mbox1.freenet.de,S=14875,L=204</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T07:11:57Z</date>
+ </dict>
+ <key>1155021858.H445423P4116.mbox1.freenet.de,S=2196,L=47</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T08:06:11Z</date>
+ </dict>
+ <key>1155026416.H676559P25807.mbox1.freenet.de,S=4593,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T09:07:42Z</date>
+ </dict>
+ <key>1155026481.H855058P27126.mbox1.freenet.de,S=1880,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T09:07:42Z</date>
+ </dict>
+ <key>1155031071.H398485P26147.mbox1.freenet.de,S=14897,L=204</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T11:24:37Z</date>
+ </dict>
+ <key>1155034969.H2428P30391.mbox1.freenet.de,S=159386,L=2162</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T11:24:38Z</date>
+ </dict>
+ <key>1155038195.H291065P15043.mbox1.freenet.de,S=1987,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T12:28:23Z</date>
+ </dict>
+ <key>1155038654.H448775P28113.mbox1.freenet.de,S=1691,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T12:28:23Z</date>
+ </dict>
+ <key>1155039123.H590017P6572.mbox1.freenet.de,S=3229,L=90</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T12:28:23Z</date>
+ </dict>
+ <key>1155039545.H801292P14681.mbox1.freenet.de,S=1715,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T12:28:23Z</date>
+ </dict>
+ <key>1155041106.H6125P17272.mbox1.freenet.de,S=25559,L=395</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T13:41:32Z</date>
+ </dict>
+ <key>1155047666.H906085P12577.mbox1.freenet.de,S=2136,L=42</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T14:39:06Z</date>
+ </dict>
+ <key>1155050012.H159989P29286.mbox1.freenet.de,S=1652,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T19:47:30Z</date>
+ </dict>
+ <key>1155050208.H193791P1203.mbox1.freenet.de,S=1683,L=40</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T19:47:30Z</date>
+ </dict>
+ <key>1155050754.H895485P13244.mbox1.freenet.de,S=1761,L=41</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T19:47:30Z</date>
+ </dict>
+ <key>1155054454.H613144P13074.mbox1.freenet.de,S=14663,L=205</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T19:47:30Z</date>
+ </dict>
+ <key>1155056216.H853320P28840.mbox1.freenet.de,S=1562,L=28</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T19:47:31Z</date>
+ </dict>
+ <key>1155060313.H287349P23272.mbox1.freenet.de,S=14987,L=206</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T19:47:31Z</date>
+ </dict>
+ <key>1155066043.H154047P5837.mbox1.freenet.de,S=1627,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-08T19:47:31Z</date>
+ </dict>
+ <key>1155071351.H344743P26441.mbox1.freenet.de,S=3238,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T06:51:24Z</date>
+ </dict>
+ <key>1155075396.H2838P11152.mbox1.freenet.de,S=2242,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T06:51:24Z</date>
+ </dict>
+ <key>1155087979.H908982P472.mbox1.freenet.de,S=3206,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T06:51:24Z</date>
+ </dict>
+ <key>1155102590.H596945P18125.mbox1.freenet.de,S=1665,L=28</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T06:51:24Z</date>
+ </dict>
+ <key>1155105219.H245947P23254.mbox1.freenet.de,S=1691,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T06:51:24Z</date>
+ </dict>
+ <key>1155114184.H181845P9641.mbox1.freenet.de,S=1365,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T12:29:40Z</date>
+ </dict>
+ <key>1155116990.H948623P3005.mbox1.freenet.de,S=1483,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T12:29:46Z</date>
+ </dict>
+ <key>1155121665.H11872P25431.mbox1.freenet.de,S=2077,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T12:29:46Z</date>
+ </dict>
+ <key>1155121962.H936848P2813.mbox1.freenet.de,S=3159,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T12:29:46Z</date>
+ </dict>
+ <key>1155122252.H501745P12050.mbox1.freenet.de,S=21210,L=353</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T12:29:46Z</date>
+ </dict>
+ <key>1155125174.H102411P11794.mbox1.freenet.de,S=1882,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T12:29:46Z</date>
+ </dict>
+ <key>1155127037.H36718P9860.mbox1.freenet.de,S=5025,L=132</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T12:47:47Z</date>
+ </dict>
+ <key>1155129246.H357155P25173.mbox1.freenet.de,S=28808,L=427</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T13:17:20Z</date>
+ </dict>
+ <key>1155134270.H946819P22490.mbox1.freenet.de,S=3105,L=91</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T15:38:09Z</date>
+ </dict>
+ <key>1155137071.H215601P6019.mbox1.freenet.de,S=2153,L=69</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T15:38:10Z</date>
+ </dict>
+ <key>1155140096.H731141P5353.mbox1.freenet.de,S=27117,L=947</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T19:20:10Z</date>
+ </dict>
+ <key>1155147435.H883142P16666.mbox1.freenet.de,S=3254,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T19:20:17Z</date>
+ </dict>
+ <key>1155149346.H483480P3230.mbox1.freenet.de,S=1742,L=29</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T19:20:20Z</date>
+ </dict>
+ <key>1155152041.H89754P29468.mbox1.freenet.de,S=13453,L=186</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T20:08:49Z</date>
+ </dict>
+ <key>1155152549.H938827P6615.mbox1.freenet.de,S=1654,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T20:08:49Z</date>
+ </dict>
+ <key>1155155667.H706656P27859.mbox1.freenet.de,S=1670,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T21:04:16Z</date>
+ </dict>
+ <key>1155155721.H806685P29134.mbox1.freenet.de,S=1723,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T21:04:17Z</date>
+ </dict>
+ <key>1155155861.H55151P32242.mbox1.freenet.de,S=1457,L=28</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T21:04:17Z</date>
+ </dict>
+ <key>1155156698.H850532P19416.mbox1.freenet.de,S=13623,L=186</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-09T21:04:17Z</date>
+ </dict>
+ <key>1155159422.H265424P29763.mbox1.freenet.de,S=5487,L=143</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T06:41:11Z</date>
+ </dict>
+ <key>1155161221.H794333P25451.mbox1.freenet.de,S=3397,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T06:41:12Z</date>
+ </dict>
+ <key>1155167903.H387503P8670.mbox1.freenet.de,S=5102,L=130</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T06:41:12Z</date>
+ </dict>
+ <key>1155178649.H955288P12079.mbox1.freenet.de,S=3277,L=93</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T06:41:12Z</date>
+ </dict>
+ <key>1155186315.H470476P5661.mbox1.freenet.de,S=3487,L=61</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T06:41:12Z</date>
+ </dict>
+ <key>1155186658.H670900P15406.mbox1.freenet.de,S=1989,L=34</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T06:41:12Z</date>
+ </dict>
+ <key>1155186997.H18542P21862.mbox1.freenet.de,S=2150,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T06:41:12Z</date>
+ </dict>
+ <key>1155187306.H580672P27067.mbox1.freenet.de,S=2039,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T06:41:12Z</date>
+ </dict>
+ <key>1155199565.H850171P22348.mbox1.freenet.de,S=1390,L=42</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T18:48:28Z</date>
+ </dict>
+ <key>1155200503.H856923P16842.mbox1.freenet.de,S=1755,L=60</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T18:48:29Z</date>
+ </dict>
+ <key>1155205799.H539866P8747.mbox1.freenet.de,S=1448,L=32</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T18:48:29Z</date>
+ </dict>
+ <key>1155210205.H954514P4886.mbox1.freenet.de,S=5059,L=130</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T18:48:29Z</date>
+ </dict>
+ <key>1155211504.H549185P762.mbox1.freenet.de,S=3250,L=92</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T18:48:29Z</date>
+ </dict>
+ <key>1155219619.H759780P2552.mbox1.freenet.de,S=1373,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T18:48:29Z</date>
+ </dict>
+ <key>1155224527.H270710P25060.mbox1.freenet.de,S=7736,L=305</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T18:48:29Z</date>
+ </dict>
+ <key>1155226024.H400337P22956.mbox1.freenet.de,S=34091,L=713</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T18:48:30Z</date>
+ </dict>
+ <key>1155230782.H443448P26737.mbox1.freenet.de,S=13144,L=186</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-10T18:48:30Z</date>
+ </dict>
+ <key>1155243694.H163572P15822.mbox1.freenet.de,S=5506,L=143</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:06Z</date>
+ </dict>
+ <key>1155244054.H318166P26053.mbox1.freenet.de,S=1531,L=29</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155246379.H408080P2400.mbox1.freenet.de,S=2226,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155248794.H746051P3848.mbox1.freenet.de,S=2052,L=45</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155250978.H781606P2109.mbox1.freenet.de,S=1601,L=27</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155251595.H386382P13425.mbox1.freenet.de,S=1574,L=27</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155252375.H816725P24987.mbox1.freenet.de,S=1577,L=27</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155253496.H489745P3333.mbox1.freenet.de,S=3120,L=91</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155263997.H396439P1002.mbox1.freenet.de,S=1640,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155267607.H85281P31359.mbox1.freenet.de,S=13158,L=185</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155268846.H494747P10094.mbox1.freenet.de,S=1951,L=40</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155271169.H140042P28629.mbox1.freenet.de,S=2760,L=97</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155274958.H592129P2743.mbox1.freenet.de,S=16365,L=260</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155278275.H114040P11873.mbox1.freenet.de,S=1723,L=59</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T07:02:15Z</date>
+ </dict>
+ <key>1155288724.H433494P24215.mbox1.freenet.de,S=3220,L=91</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T10:26:06Z</date>
+ </dict>
+ <key>1155293569.H411195P21139.mbox1.freenet.de,S=2721,L=76</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T11:11:15Z</date>
+ </dict>
+ <key>1155295204.H811233P22677.mbox1.freenet.de,S=1621,L=57</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T11:21:09Z</date>
+ </dict>
+ <key>1155296029.H99298P8943.mbox1.freenet.de,S=5011,L=132</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T11:55:47Z</date>
+ </dict>
+ <key>1155297301.H522378P5338.mbox1.freenet.de,S=19298,L=303</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T11:55:47Z</date>
+ </dict>
+ <key>1155297492.H795867P9124.mbox1.freenet.de,S=1373,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T12:01:07Z</date>
+ </dict>
+ <key>1155300909.H622250P20310.mbox1.freenet.de,S=194228,L=2683</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T12:55:49Z</date>
+ </dict>
+ <key>1155308792.H250936P22936.mbox1.freenet.de,S=2028,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T15:10:52Z</date>
+ </dict>
+ <key>1155309026.H629799P28442.mbox1.freenet.de,S=1621,L=29</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T15:10:52Z</date>
+ </dict>
+ <key>1155312703.H180117P16780.mbox1.freenet.de,S=13163,L=186</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-11T17:01:07Z</date>
+ </dict>
+ <key>1155341164.H110377P27980.mbox1.freenet.de,S=1470,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T05:57:14Z</date>
+ </dict>
+ <key>1155341478.H462941P2015.mbox1.freenet.de,S=1599,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T05:57:17Z</date>
+ </dict>
+ <key>1155342793.H314697P19120.mbox1.freenet.de,S=1724,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T05:57:17Z</date>
+ </dict>
+ <key>1155343779.H48544P30268.mbox1.freenet.de,S=3201,L=100</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T05:57:17Z</date>
+ </dict>
+ <key>1155344116.H268158P7799.mbox1.freenet.de,S=1411,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T05:57:17Z</date>
+ </dict>
+ <key>1155354546.H561532P28675.mbox1.freenet.de,S=1371,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T05:57:17Z</date>
+ </dict>
+ <key>1155356696.H995990P11509.mbox1.freenet.de,S=1764,L=40</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T05:57:17Z</date>
+ </dict>
+ <key>1155358818.H814534P27494.mbox1.freenet.de,S=2888,L=98</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T05:57:17Z</date>
+ </dict>
+ <key>1155362721.H710518P1102.mbox1.freenet.de,S=2762,L=74</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T06:07:28Z</date>
+ </dict>
+ <key>1155365332.H325159P29525.mbox1.freenet.de,S=1739,L=62</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T06:54:55Z</date>
+ </dict>
+ <key>1155372108.H319445P16165.mbox1.freenet.de,S=2708,L=62</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T08:46:45Z</date>
+ </dict>
+ <key>1155375874.H230704P3857.mbox1.freenet.de,S=2622,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T09:46:48Z</date>
+ </dict>
+ <key>1155381212.H468458P6801.mbox1.freenet.de,S=1936,L=45</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T11:52:04Z</date>
+ </dict>
+ <key>1155381681.H552427P18977.mbox1.freenet.de,S=5186,L=133</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T11:52:06Z</date>
+ </dict>
+ <key>1155382498.H369535P6941.mbox1.freenet.de,S=26692,L=477</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T11:52:06Z</date>
+ </dict>
+ <key>1155383606.H437045P30481.mbox1.freenet.de,S=1413,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T12:52:04Z</date>
+ </dict>
+ <key>1155383682.H553821P32262.mbox1.freenet.de,S=1712,L=61</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T12:52:04Z</date>
+ </dict>
+ <key>1155387642.H378906P31137.mbox1.freenet.de,S=1697,L=57</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T13:01:56Z</date>
+ </dict>
+ <key>1155389142.H64410P23467.mbox1.freenet.de,S=2791,L=96</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T14:20:15Z</date>
+ </dict>
+ <key>1155392313.H278709P4708.mbox1.freenet.de,S=3907,L=106</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T14:20:15Z</date>
+ </dict>
+ <key>1155392617.H994844P9195.mbox1.freenet.de,S=253915,L=3335</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T14:26:49Z</date>
+ </dict>
+ <key>1155394744.H831207P10676.mbox1.freenet.de,S=2793,L=104</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T15:02:13Z</date>
+ </dict>
+ <key>1155395369.H420233P21087.mbox1.freenet.de,S=36481,L=508</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T15:11:38Z</date>
+ </dict>
+ <key>1155395795.H180618P28398.mbox1.freenet.de,S=2038,L=69</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T15:16:41Z</date>
+ </dict>
+ <key>1155396396.H370822P4949.mbox1.freenet.de,S=4288,L=118</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T15:39:54Z</date>
+ </dict>
+ <key>1155396467.H347908P6065.mbox1.freenet.de,S=1666,L=42</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T15:39:54Z</date>
+ </dict>
+ <key>1155397346.H746437P19876.mbox1.freenet.de,S=232524,L=3830</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T15:47:28Z</date>
+ </dict>
+ <key>1155397550.H814414P23509.mbox1.freenet.de,S=1954,L=45</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T15:47:28Z</date>
+ </dict>
+ <key>1155397892.H161483P29827.mbox1.freenet.de,S=2137,L=67</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T15:54:14Z</date>
+ </dict>
+ <key>1155398368.H272840P5908.mbox1.freenet.de,S=1658,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T16:00:17Z</date>
+ </dict>
+ <key>1155398680.H95312P14345.mbox1.freenet.de,S=5500,L=141</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T16:12:37Z</date>
+ </dict>
+ <key>1155398690.H251433P14586.mbox1.freenet.de,S=2025,L=61</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-12T16:12:37Z</date>
+ </dict>
+ <key>1155399622.H294694P31838.mbox1.freenet.de,S=1643,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:20Z</date>
+ </dict>
+ <key>1155401459.H913217P28572.mbox1.freenet.de,S=2554,L=94</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:24Z</date>
+ </dict>
+ <key>1155404891.H231218P23227.mbox1.freenet.de,S=1675,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:24Z</date>
+ </dict>
+ <key>1155408089.H425332P10206.mbox1.freenet.de,S=2251,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:24Z</date>
+ </dict>
+ <key>1155412433.H747029P3760.mbox1.freenet.de,S=1912,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:24Z</date>
+ </dict>
+ <key>1155414118.H534159P31022.mbox1.freenet.de,S=2836,L=97</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:24Z</date>
+ </dict>
+ <key>1155425735.H926302P27336.mbox1.freenet.de,S=1580,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:24Z</date>
+ </dict>
+ <key>1155429421.H583293P26482.mbox1.freenet.de,S=2703,L=96</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:24Z</date>
+ </dict>
+ <key>1155432697.H707953P20293.mbox1.freenet.de,S=3295,L=100</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:27Z</date>
+ </dict>
+ <key>1155442908.H622889P29028.mbox1.freenet.de,S=15653,L=212</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:27Z</date>
+ </dict>
+ <key>1155447888.H964302P4158.mbox1.freenet.de,S=1773,L=60</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:27Z</date>
+ </dict>
+ <key>1155449311.H702848P16196.mbox1.freenet.de,S=2806,L=97</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:27Z</date>
+ </dict>
+ <key>1155452938.H544521P27881.mbox1.freenet.de,S=1319,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:27Z</date>
+ </dict>
+ <key>1155459240.H508185P13192.mbox1.freenet.de,S=1695,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T09:07:27Z</date>
+ </dict>
+ <key>1155466103.H392282P30143.mbox1.freenet.de,S=2893,L=101</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T10:54:42Z</date>
+ </dict>
+ <key>1155467153.H142108P13986.mbox1.freenet.de,S=1748,L=61</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T11:07:41Z</date>
+ </dict>
+ <key>1155468819.H15840P9570.mbox1.freenet.de,S=5005,L=132</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T11:36:45Z</date>
+ </dict>
+ <key>1155479457.H723406P8075.mbox1.freenet.de,S=2847,L=101</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T20:15:22Z</date>
+ </dict>
+ <key>1155482043.H738903P18244.mbox1.freenet.de,S=15708,L=213</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T20:15:25Z</date>
+ </dict>
+ <key>1155485750.H781909P19673.mbox1.freenet.de,S=5492,L=139</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T20:15:25Z</date>
+ </dict>
+ <key>1155487081.H464166P18373.mbox1.freenet.de,S=1571,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T20:15:25Z</date>
+ </dict>
+ <key>1155489196.H263823P4222.mbox1.freenet.de,S=2037,L=44</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T20:15:25Z</date>
+ </dict>
+ <key>1155489237.H334522P5149.mbox1.freenet.de,S=1672,L=57</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T20:15:25Z</date>
+ </dict>
+ <key>1155492259.H868827P2084.mbox1.freenet.de,S=2749,L=88</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T20:15:25Z</date>
+ </dict>
+ <key>1155494078.H223060P6524.mbox1.freenet.de,S=2068,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T20:15:25Z</date>
+ </dict>
+ <key>1155495377.H271409P8759.mbox1.freenet.de,S=2002,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T20:15:25Z</date>
+ </dict>
+ <key>1155499124.H310745P21654.mbox1.freenet.de,S=13691,L=203</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-13T20:15:25Z</date>
+ </dict>
+ <key>1155502236.H453831P28981.mbox1.freenet.de,S=1974,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:16Z</date>
+ </dict>
+ <key>1155502536.H4863P7134.mbox1.freenet.de,S=3423,L=103</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:16Z</date>
+ </dict>
+ <key>1155504322.H792521P10662.mbox1.freenet.de,S=2113,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:16Z</date>
+ </dict>
+ <key>1155505529.H281536P26985.mbox1.freenet.de,S=2625,L=87</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:16Z</date>
+ </dict>
+ <key>1155506205.H322296P1896.mbox1.freenet.de,S=1785,L=44</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:16Z</date>
+ </dict>
+ <key>1155506625.H931796P6990.mbox1.freenet.de,S=1673,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:17Z</date>
+ </dict>
+ <key>1155507649.H402055P18118.mbox1.freenet.de,S=2829,L=73</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:17Z</date>
+ </dict>
+ <key>1155510882.H358588P21362.mbox1.freenet.de,S=15722,L=213</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:17Z</date>
+ </dict>
+ <key>1155510919.H587150P21798.mbox1.freenet.de,S=1632,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:17Z</date>
+ </dict>
+ <key>1155511387.H485218P26769.mbox1.freenet.de,S=2659,L=101</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:17Z</date>
+ </dict>
+ <key>1155511644.H820998P29150.mbox1.freenet.de,S=31715,L=537</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:17Z</date>
+ </dict>
+ <key>1155520110.H948986P24237.mbox1.freenet.de,S=3381,L=100</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:17Z</date>
+ </dict>
+ <key>1155525640.H835576P13636.mbox1.freenet.de,S=1472,L=32</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:17Z</date>
+ </dict>
+ <key>1155539870.H521633P14256.mbox1.freenet.de,S=3752,L=161</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:24:17Z</date>
+ </dict>
+ <key>1155540611.H107641P28092.mbox1.freenet.de,S=2791,L=90</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T07:53:33Z</date>
+ </dict>
+ <key>1155547625.H571328P4725.mbox1.freenet.de,S=6181,L=138</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T14:32:37Z</date>
+ </dict>
+ <key>1155548287.H367423P19149.mbox1.freenet.de,S=2137,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T14:32:43Z</date>
+ </dict>
+ <key>1155554846.H614484P3380.mbox1.freenet.de,S=2672,L=86</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T14:32:43Z</date>
+ </dict>
+ <key>1155555174.H616170P9716.mbox1.freenet.de,S=4045,L=114</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T14:32:43Z</date>
+ </dict>
+ <key>1155555283.H376477P12879.mbox1.freenet.de,S=5019,L=130</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T14:32:43Z</date>
+ </dict>
+ <key>1155562611.H618120P10679.mbox1.freenet.de,S=1601,L=28</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T14:32:43Z</date>
+ </dict>
+ <key>1155567178.H899466P23120.mbox1.freenet.de,S=2537,L=85</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T15:32:41Z</date>
+ </dict>
+ <key>1155571046.H656123P19290.mbox1.freenet.de,S=15656,L=214</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T19:57:24Z</date>
+ </dict>
+ <key>1155572350.H939519P19072.mbox1.freenet.de,S=3646,L=103</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T19:57:25Z</date>
+ </dict>
+ <key>1155573494.H112844P11809.mbox1.freenet.de,S=10648,L=184</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T19:57:25Z</date>
+ </dict>
+ <key>1155573879.H715341P19888.mbox1.freenet.de,S=18996,L=392</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T19:57:25Z</date>
+ </dict>
+ <key>1155574584.H945804P2119.mbox1.freenet.de,S=4504,L=121</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T19:57:25Z</date>
+ </dict>
+ <key>1155575961.H332723P1198.mbox1.freenet.de,S=1510,L=27</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T19:57:25Z</date>
+ </dict>
+ <key>1155576490.H541871P15183.mbox1.freenet.de,S=1606,L=27</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T19:57:25Z</date>
+ </dict>
+ <key>1155579837.H72419P26294.mbox1.freenet.de,S=2002,L=47</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T19:57:26Z</date>
+ </dict>
+ <key>1155583115.H958331P27966.mbox1.freenet.de,S=1784,L=47</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T19:57:26Z</date>
+ </dict>
+ <key>1155584199.H239307P14726.mbox1.freenet.de,S=3479,L=108</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T19:57:26Z</date>
+ </dict>
+ <key>1155586181.H922796P27202.mbox1.freenet.de,S=1683,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T20:25:36Z</date>
+ </dict>
+ <key>1155588441.H876897P8510.mbox1.freenet.de,S=3823,L=162</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T20:53:00Z</date>
+ </dict>
+ <key>1155591961.H958739P27676.mbox1.freenet.de,S=8528,L=244</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-14T21:46:26Z</date>
+ </dict>
+ <key>1155592810.H178870P7600.mbox1.freenet.de,S=2443,L=86</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:51Z</date>
+ </dict>
+ <key>1155594577.H226466P30501.mbox1.freenet.de,S=1377,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:52Z</date>
+ </dict>
+ <key>1155594767.H359327P502.mbox1.freenet.de,S=2044,L=44</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:52Z</date>
+ </dict>
+ <key>1155595308.H206945P9299.mbox1.freenet.de,S=1539,L=28</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:52Z</date>
+ </dict>
+ <key>1155595714.H968683P18026.mbox1.freenet.de,S=1371,L=26</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:52Z</date>
+ </dict>
+ <key>1155605575.H514963P11444.mbox1.freenet.de,S=1582,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:52Z</date>
+ </dict>
+ <key>1155609054.H722461P26093.mbox1.freenet.de,S=1342,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:53Z</date>
+ </dict>
+ <key>1155609241.H114172P28491.mbox1.freenet.de,S=2377,L=86</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:53Z</date>
+ </dict>
+ <key>1155612954.H927628P8467.mbox1.freenet.de,S=14415,L=202</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:53Z</date>
+ </dict>
+ <key>1155613298.H183926P12165.mbox1.freenet.de,S=1594,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:54Z</date>
+ </dict>
+ <key>1155623498.H162605P23815.mbox1.freenet.de,S=18287,L=285</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:16:54Z</date>
+ </dict>
+ <key>1155627002.H454741P12744.mbox1.freenet.de,S=1289,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:31:50Z</date>
+ </dict>
+ <key>1155627889.H742535P26819.mbox1.freenet.de,S=2535,L=87</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T07:57:39Z</date>
+ </dict>
+ <key>1155634162.H456816P23232.mbox1.freenet.de,S=1713,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T09:31:47Z</date>
+ </dict>
+ <key>1155639133.H569323P26340.mbox1.freenet.de,S=52499,L=954</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T13:39:24Z</date>
+ </dict>
+ <key>1155642027.H16248P21003.mbox1.freenet.de,S=2468,L=77</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T13:39:29Z</date>
+ </dict>
+ <key>1155646523.H196753P28653.mbox1.freenet.de,S=4907,L=129</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T13:39:29Z</date>
+ </dict>
+ <key>1155647354.H345973P19847.mbox1.freenet.de,S=4138,L=70</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T13:39:29Z</date>
+ </dict>
+ <key>1155649003.H40740P30415.mbox1.freenet.de,S=14780,L=202</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T13:39:29Z</date>
+ </dict>
+ <key>1155655360.H224743P23901.mbox1.freenet.de,S=1751,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T15:23:49Z</date>
+ </dict>
+ <key>1155656257.H442639P10814.mbox1.freenet.de,S=12463,L=189</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T18:20:43Z</date>
+ </dict>
+ <key>1155658727.H21998P28019.mbox1.freenet.de,S=2629,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T18:20:47Z</date>
+ </dict>
+ <key>1155660222.H789857P31515.mbox1.freenet.de,S=1713,L=42</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T18:20:47Z</date>
+ </dict>
+ <key>1155660373.H539501P4119.mbox1.freenet.de,S=3977,L=61</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T18:20:47Z</date>
+ </dict>
+ <key>1155660849.H475683P18605.mbox1.freenet.de,S=1779,L=44</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T18:20:47Z</date>
+ </dict>
+ <key>1155661050.H849347P23410.mbox1.freenet.de,S=1723,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T18:20:47Z</date>
+ </dict>
+ <key>1155662519.H272115P25223.mbox1.freenet.de,S=4066,L=120</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T18:20:47Z</date>
+ </dict>
+ <key>1155663279.H93787P15524.mbox1.freenet.de,S=3286,L=99</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T18:20:47Z</date>
+ </dict>
+ <key>1155666170.H581264P16357.mbox1.freenet.de,S=1964,L=44</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T18:25:38Z</date>
+ </dict>
+ <key>1155672629.H698046P26779.mbox1.freenet.de,S=14858,L=202</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T20:13:32Z</date>
+ </dict>
+ <key>1155675970.H481059P829.mbox1.freenet.de,S=30101,L=568</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T21:14:42Z</date>
+ </dict>
+ <key>1155676427.H227690P9433.mbox1.freenet.de,S=28530,L=547</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-15T21:14:42Z</date>
+ </dict>
+ <key>1155679020.H360235P24199.mbox1.freenet.de,S=5379,L=138</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:32:57Z</date>
+ </dict>
+ <key>1155679259.H975948P30996.mbox1.freenet.de,S=1665,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:33:01Z</date>
+ </dict>
+ <key>1155679666.H222655P5397.mbox1.freenet.de,S=13472,L=194</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:33:01Z</date>
+ </dict>
+ <key>1155682595.H840883P17634.mbox1.freenet.de,S=2482,L=77</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:33:01Z</date>
+ </dict>
+ <key>1155683025.H4077P24194.mbox1.freenet.de,S=28912,L=550</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:33:01Z</date>
+ </dict>
+ <key>1155698954.H56251P20772.mbox1.freenet.de,S=1610,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:33:01Z</date>
+ </dict>
+ <key>1155699730.H136388P29061.mbox1.freenet.de,S=13510,L=194</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:33:01Z</date>
+ </dict>
+ <key>1155708190.H419348P27568.mbox1.freenet.de,S=1639,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:33:01Z</date>
+ </dict>
+ <key>1155708619.H61568P4130.mbox1.freenet.de,S=4824,L=73</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:33:02Z</date>
+ </dict>
+ <key>1155708934.H719113P13560.mbox1.freenet.de,S=4427,L=69</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:33:02Z</date>
+ </dict>
+ <key>1155709249.H561354P21490.mbox1.freenet.de,S=4621,L=68</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:33:02Z</date>
+ </dict>
+ <key>1155710073.H447832P6614.mbox1.freenet.de,S=2523,L=77</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T06:37:10Z</date>
+ </dict>
+ <key>1155712109.H228570P13737.mbox1.freenet.de,S=3950,L=163</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T07:16:49Z</date>
+ </dict>
+ <key>1155715259.H942469P29561.mbox1.freenet.de,S=4777,L=70</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T08:08:37Z</date>
+ </dict>
+ <key>1155726497.H229006P18946.mbox1.freenet.de,S=5076,L=132</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T11:27:53Z</date>
+ </dict>
+ <key>1155726841.H315888P31526.mbox1.freenet.de,S=2505,L=100</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T11:27:53Z</date>
+ </dict>
+ <key>1155731830.H203362P7473.mbox1.freenet.de,S=31693,L=579</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T12:40:23Z</date>
+ </dict>
+ <key>1155733467.H948324P28575.mbox1.freenet.de,S=29670,L=568</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T13:12:49Z</date>
+ </dict>
+ <key>1155740627.H596547P27213.mbox1.freenet.de,S=5489,L=143</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T19:17:33Z</date>
+ </dict>
+ <key>1155744035.H967627P7422.mbox1.freenet.de,S=1296,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T19:17:35Z</date>
+ </dict>
+ <key>1155745060.H914526P32159.mbox1.freenet.de,S=2595,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T19:17:35Z</date>
+ </dict>
+ <key>1155753499.H839663P19946.mbox1.freenet.de,S=1682,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T19:17:35Z</date>
+ </dict>
+ <key>1155754705.H760692P11736.mbox1.freenet.de,S=9002,L=379</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-16T19:17:35Z</date>
+ </dict>
+ <key>1155757129.H73453P26817.mbox1.freenet.de,S=3900,L=59</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T06:30:37Z</date>
+ </dict>
+ <key>1155762271.H271538P26592.mbox1.freenet.de,S=9158,L=380</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T06:30:40Z</date>
+ </dict>
+ <key>1155762960.H196055P6057.mbox1.freenet.de,S=2775,L=97</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T06:30:40Z</date>
+ </dict>
+ <key>1155764084.H509441P23252.mbox1.freenet.de,S=1709,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T06:30:40Z</date>
+ </dict>
+ <key>1155764556.H644385P29660.mbox1.freenet.de,S=14251,L=199</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T06:30:40Z</date>
+ </dict>
+ <key>1155774936.H450120P5009.mbox1.freenet.de,S=2777,L=103</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T06:30:40Z</date>
+ </dict>
+ <key>1155780523.H871720P4329.mbox1.freenet.de,S=3183,L=99</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T06:30:41Z</date>
+ </dict>
+ <key>1155783955.H51113P13218.mbox1.freenet.de,S=1799,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T06:30:41Z</date>
+ </dict>
+ <key>1155784022.H990661P14043.mbox1.freenet.de,S=14539,L=199</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T06:30:41Z</date>
+ </dict>
+ <key>1155793718.H955690P17050.mbox1.freenet.de,S=34755,L=632</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T06:30:41Z</date>
+ </dict>
+ <key>1155801361.H759607P6409.mbox1.freenet.de,S=2647,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T11:18:37Z</date>
+ </dict>
+ <key>1155802366.H621150P28413.mbox1.freenet.de,S=2917,L=66</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T11:18:40Z</date>
+ </dict>
+ <key>1155802717.H226200P5106.mbox1.freenet.de,S=2787,L=66</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T11:18:40Z</date>
+ </dict>
+ <key>1155803161.H223217P17067.mbox1.freenet.de,S=1569,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T11:18:40Z</date>
+ </dict>
+ <key>1155807606.H620116P11099.mbox1.freenet.de,S=23684,L=829</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T11:18:40Z</date>
+ </dict>
+ <key>1155808943.H257985P8125.mbox1.freenet.de,S=1803,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T11:18:40Z</date>
+ </dict>
+ <key>1155810163.H393619P4857.mbox1.freenet.de,S=5100,L=132</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T11:18:40Z</date>
+ </dict>
+ <key>1155813863.H756962P28805.mbox1.freenet.de,S=1731,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T11:35:21Z</date>
+ </dict>
+ <key>1155815032.H298878P28376.mbox1.freenet.de,S=2763,L=82</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T11:53:34Z</date>
+ </dict>
+ <key>1155818963.H747901P22963.mbox1.freenet.de,S=34712,L=634</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:22Z</date>
+ </dict>
+ <key>1155818984.H739984P23410.mbox1.freenet.de,S=34308,L=633</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:23Z</date>
+ </dict>
+ <key>1155821900.H745528P30523.mbox1.freenet.de,S=14637,L=199</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:26Z</date>
+ </dict>
+ <key>1155822043.H736444P1616.mbox1.freenet.de,S=5689,L=233</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:26Z</date>
+ </dict>
+ <key>1155823988.H367897P19251.mbox1.freenet.de,S=3639,L=105</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:26Z</date>
+ </dict>
+ <key>1155827411.H56325P7730.mbox1.freenet.de,S=4128,L=62</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:26Z</date>
+ </dict>
+ <key>1155830753.H802421P22648.mbox1.freenet.de,S=2696,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:26Z</date>
+ </dict>
+ <key>1155836839.H781658P6842.mbox1.freenet.de,S=3915,L=163</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:26Z</date>
+ </dict>
+ <key>1155837795.H23180P1296.mbox1.freenet.de,S=1773,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:26Z</date>
+ </dict>
+ <key>1155840734.H800798P4865.mbox1.freenet.de,S=1689,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:27Z</date>
+ </dict>
+ <key>1155841425.H808648P21505.mbox1.freenet.de,S=34988,L=634</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:27Z</date>
+ </dict>
+ <key>1155844693.H738830P5437.mbox1.freenet.de,S=1424,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T20:32:27Z</date>
+ </dict>
+ <key>1155849030.H181753P18909.mbox1.freenet.de,S=2563,L=82</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T21:32:40Z</date>
+ </dict>
+ <key>1155850140.H201004P7026.mbox1.freenet.de,S=5513,L=141</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-17T21:32:40Z</date>
+ </dict>
+ <key>1155856569.H774450P31180.mbox1.freenet.de,S=14378,L=201</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T06:27:09Z</date>
+ </dict>
+ <key>1155858413.H985113P19952.mbox1.freenet.de,S=43251,L=733</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T06:27:10Z</date>
+ </dict>
+ <key>1155866739.H628872P13661.mbox1.freenet.de,S=14587,L=200</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T06:27:11Z</date>
+ </dict>
+ <key>1155867521.H542305P24567.mbox1.freenet.de,S=1470,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T06:27:11Z</date>
+ </dict>
+ <key>1155867939.H526630P498.mbox1.freenet.de,S=3322,L=101</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T06:27:11Z</date>
+ </dict>
+ <key>1155875999.H983999P3123.mbox1.freenet.de,S=7921,L=133</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T06:27:11Z</date>
+ </dict>
+ <key>1155876166.H404276P5169.mbox1.freenet.de,S=14596,L=201</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T06:27:11Z</date>
+ </dict>
+ <key>1155880133.H13635P26998.mbox1.freenet.de,S=1438,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T06:27:12Z</date>
+ </dict>
+ <key>1155881575.H161964P21959.mbox1.freenet.de,S=2546,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T06:27:12Z</date>
+ </dict>
+ <key>1155883400.H255525P17617.mbox1.freenet.de,S=7693,L=142</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T08:49:03Z</date>
+ </dict>
+ <key>1155884435.H930535P2478.mbox1.freenet.de,S=3339,L=59</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T08:49:04Z</date>
+ </dict>
+ <key>1155886199.H865896P10437.mbox1.freenet.de,S=40408,L=703</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T08:49:06Z</date>
+ </dict>
+ <key>1155886812.H222537P23034.mbox1.freenet.de,S=34692,L=632</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T08:49:06Z</date>
+ </dict>
+ <key>1155888897.H165107P3093.mbox1.freenet.de,S=1728,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T08:49:06Z</date>
+ </dict>
+ <key>1155894239.H249312P22078.mbox1.freenet.de,S=35341,L=635</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T10:27:53Z</date>
+ </dict>
+ <key>1155896408.H218608P8208.mbox1.freenet.de,S=36962,L=888</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T10:27:54Z</date>
+ </dict>
+ <key>1155899834.H107315P29722.mbox1.freenet.de,S=5051,L=132</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T13:42:12Z</date>
+ </dict>
+ <key>1155900128.H579880P5438.mbox1.freenet.de,S=1796,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T13:42:13Z</date>
+ </dict>
+ <key>1155908232.H143450P24816.mbox1.freenet.de,S=2679,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T13:42:13Z</date>
+ </dict>
+ <key>1155908730.H379921P3969.mbox1.freenet.de,S=1839,L=48</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T13:47:16Z</date>
+ </dict>
+ <key>1155909184.H50144P16561.mbox1.freenet.de,S=2705,L=96</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T17:40:33Z</date>
+ </dict>
+ <key>1155919201.H953928P10247.mbox1.freenet.de,S=14635,L=200</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T17:40:36Z</date>
+ </dict>
+ <key>1155919500.H299571P18227.mbox1.freenet.de,S=2781,L=83</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T17:40:36Z</date>
+ </dict>
+ <key>1155922317.H155721P10234.mbox1.freenet.de,S=3723,L=59</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T17:40:36Z</date>
+ </dict>
+ <key>1155926157.H516665P26689.mbox1.freenet.de,S=3872,L=162</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T18:45:07Z</date>
+ </dict>
+ <key>1155930117.H43110P409.mbox1.freenet.de,S=1657,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T19:42:59Z</date>
+ </dict>
+ <key>1155930487.H459342P6935.mbox1.freenet.de,S=1810,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T19:52:18Z</date>
+ </dict>
+ <key>1155931871.H711403P31320.mbox1.freenet.de,S=2754,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-18T20:13:08Z</date>
+ </dict>
+ <key>1155940967.H661079P21403.mbox1.freenet.de,S=3892,L=82</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T06:32:11Z</date>
+ </dict>
+ <key>1155942954.H959054P13213.mbox1.freenet.de,S=2606,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T06:32:11Z</date>
+ </dict>
+ <key>1155943594.H830163P21738.mbox1.freenet.de,S=14496,L=199</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T06:32:11Z</date>
+ </dict>
+ <key>1155953941.H375532P22922.mbox1.freenet.de,S=37663,L=650</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T06:32:11Z</date>
+ </dict>
+ <key>1155955639.H224625P4873.mbox1.freenet.de,S=2534,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T06:32:11Z</date>
+ </dict>
+ <key>1155956770.H717876P16828.mbox1.freenet.de,S=1353,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T06:32:11Z</date>
+ </dict>
+ <key>1155958211.H395151P1885.mbox1.freenet.de,S=1575,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T06:32:11Z</date>
+ </dict>
+ <key>1155959154.H720265P12713.mbox1.freenet.de,S=1645,L=29</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T06:32:12Z</date>
+ </dict>
+ <key>1155962213.H850812P15620.mbox1.freenet.de,S=3313,L=99</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T06:32:12Z</date>
+ </dict>
+ <key>1155964530.H674989P10524.mbox1.freenet.de,S=2473,L=57</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T06:32:12Z</date>
+ </dict>
+ <key>1155971182.H958306P25902.mbox1.freenet.de,S=1764,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T07:09:18Z</date>
+ </dict>
+ <key>1155975654.H360857P32746.mbox1.freenet.de,S=24281,L=380</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T08:21:55Z</date>
+ </dict>
+ <key>1155978606.H882247P21614.mbox1.freenet.de,S=4750,L=215</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T09:20:11Z</date>
+ </dict>
+ <key>1155978609.H91622P21762.mbox1.freenet.de,S=2843,L=83</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T09:20:12Z</date>
+ </dict>
+ <key>1155983252.H142286P31396.mbox1.freenet.de,S=1725,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T14:01:58Z</date>
+ </dict>
+ <key>1155990327.H250456P14330.mbox1.freenet.de,S=40658,L=710</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T14:01:59Z</date>
+ </dict>
+ <key>1155992006.H268992P14095.mbox1.freenet.de,S=5002,L=131</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T14:01:59Z</date>
+ </dict>
+ <key>1155993464.H775200P5734.mbox1.freenet.de,S=2750,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T14:01:59Z</date>
+ </dict>
+ <key>1155993923.H23966P13335.mbox1.freenet.de,S=1806,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T14:02:00Z</date>
+ </dict>
+ <key>1155998626.H531558P24470.mbox1.freenet.de,S=2782,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T15:17:45Z</date>
+ </dict>
+ <key>1156000731.H835960P7899.mbox1.freenet.de,S=13307,L=218</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T15:24:13Z</date>
+ </dict>
+ <key>1156001862.H12790P29824.mbox1.freenet.de,S=42175,L=796</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T15:47:46Z</date>
+ </dict>
+ <key>1156002114.H868256P2154.mbox1.freenet.de,S=2789,L=61</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T15:47:47Z</date>
+ </dict>
+ <key>1156002227.H64014P4163.mbox1.freenet.de,S=1648,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T15:47:47Z</date>
+ </dict>
+ <key>1156005285.H611697P29480.mbox1.freenet.de,S=3484,L=102</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T16:47:49Z</date>
+ </dict>
+ <key>1156005955.H380622P10683.mbox1.freenet.de,S=1664,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T16:47:50Z</date>
+ </dict>
+ <key>1156006709.H199343P23552.mbox1.freenet.de,S=3596,L=84</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T17:24:01Z</date>
+ </dict>
+ <key>1156008044.H808442P12305.mbox1.freenet.de,S=2899,L=61</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T17:24:01Z</date>
+ </dict>
+ <key>1156008369.H960103P17621.mbox1.freenet.de,S=2836,L=61</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T17:28:01Z</date>
+ </dict>
+ <key>1156008381.H841515P17850.mbox1.freenet.de,S=3458,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T17:28:01Z</date>
+ </dict>
+ <key>1156008500.H671840P19682.mbox1.freenet.de,S=4883,L=107</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T17:32:47Z</date>
+ </dict>
+ <key>1156008786.H901063P24353.mbox1.freenet.de,S=1410,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-19T18:26:38Z</date>
+ </dict>
+ <key>1156014162.H151759P29462.mbox1.freenet.de,S=8207,L=211</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:30Z</date>
+ </dict>
+ <key>1156014181.H164973P29778.mbox1.freenet.de,S=2801,L=83</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:33Z</date>
+ </dict>
+ <key>1156014251.H352625P31015.mbox1.freenet.de,S=4357,L=103</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156014340.H455048P320.mbox1.freenet.de,S=6468,L=159</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156014743.H629783P6625.mbox1.freenet.de,S=53033,L=881</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156018123.H961397P5943.mbox1.freenet.de,S=3905,L=163</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156028379.H828505P27266.mbox1.freenet.de,S=2767,L=82</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156028508.H894P29445.mbox1.freenet.de,S=1839,L=34</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156030327.H474473P18724.mbox1.freenet.de,S=1649,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156030963.H627766P28091.mbox1.freenet.de,S=2522,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156031101.H865938P30784.mbox1.freenet.de,S=1884,L=34</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156035905.H438180P20429.mbox1.freenet.de,S=16274,L=222</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156038032.H113870P16352.mbox1.freenet.de,S=7836,L=156</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:35Z</date>
+ </dict>
+ <key>1156044240.H86659P12513.mbox1.freenet.de,S=1682,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:36Z</date>
+ </dict>
+ <key>1156051753.H810260P18368.mbox1.freenet.de,S=1558,L=27</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:36Z</date>
+ </dict>
+ <key>1156052106.H745766P25697.mbox1.freenet.de,S=1661,L=28</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:36Z</date>
+ </dict>
+ <key>1156052701.H989197P4642.mbox1.freenet.de,S=3779,L=57</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:36Z</date>
+ </dict>
+ <key>1156054400.H787458P23430.mbox1.freenet.de,S=1741,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:36Z</date>
+ </dict>
+ <key>1156058019.H137367P3773.mbox1.freenet.de,S=39348,L=700</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:36Z</date>
+ </dict>
+ <key>1156058731.H311112P14455.mbox1.freenet.de,S=39941,L=706</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:37Z</date>
+ </dict>
+ <key>1156060483.H441837P7720.mbox1.freenet.de,S=2072,L=46</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:37Z</date>
+ </dict>
+ <key>1156061154.H29866P20249.mbox1.freenet.de,S=3251,L=100</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:37Z</date>
+ </dict>
+ <key>1156061500.H245944P30226.mbox1.freenet.de,S=1849,L=47</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T09:54:37Z</date>
+ </dict>
+ <key>1156068184.H339810P27736.mbox1.freenet.de,S=2760,L=103</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T10:42:01Z</date>
+ </dict>
+ <key>1156069993.H861771P26685.mbox1.freenet.de,S=1731,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T10:42:02Z</date>
+ </dict>
+ <key>1156072809.H896197P13488.mbox1.freenet.de,S=2683,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T11:26:58Z</date>
+ </dict>
+ <key>1156073950.H741083P2725.mbox1.freenet.de,S=2736,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T13:46:06Z</date>
+ </dict>
+ <key>1156074277.H297055P12345.mbox1.freenet.de,S=4930,L=216</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T13:46:07Z</date>
+ </dict>
+ <key>1156074822.H289674P486.mbox1.freenet.de,S=1674,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T13:46:07Z</date>
+ </dict>
+ <key>1156076589.H226383P3006.mbox1.freenet.de,S=13122,L=182</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T13:46:07Z</date>
+ </dict>
+ <key>1156082622.H613666P8035.mbox1.freenet.de,S=1490,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T14:05:51Z</date>
+ </dict>
+ <key>1156084473.H524332P15040.mbox1.freenet.de,S=1386,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T14:36:01Z</date>
+ </dict>
+ <key>1156090742.H552842P4682.mbox1.freenet.de,S=1724,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T16:26:17Z</date>
+ </dict>
+ <key>1156090980.H629428P10269.mbox1.freenet.de,S=40061,L=704</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T16:26:18Z</date>
+ </dict>
+ <key>1156093399.H69021P27455.mbox1.freenet.de,S=2605,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T20:32:26Z</date>
+ </dict>
+ <key>1156093776.H964394P3345.mbox1.freenet.de,S=1648,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T20:32:28Z</date>
+ </dict>
+ <key>1156100633.H224315P22071.mbox1.freenet.de,S=6550,L=176</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T20:32:28Z</date>
+ </dict>
+ <key>1156100691.H592228P23082.mbox1.freenet.de,S=8705,L=235</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T20:32:28Z</date>
+ </dict>
+ <key>1156104739.H462735P1094.mbox1.freenet.de,S=2602,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-20T20:32:28Z</date>
+ </dict>
+ <key>1156109830.H17914P19227.mbox1.freenet.de,S=2492,L=78</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:49Z</date>
+ </dict>
+ <key>1156112101.H795367P17167.mbox1.freenet.de,S=2647,L=101</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:50Z</date>
+ </dict>
+ <key>1156113315.H343544P762.mbox1.freenet.de,S=1658,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:50Z</date>
+ </dict>
+ <key>1156114091.H694234P11549.mbox1.freenet.de,S=1772,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:50Z</date>
+ </dict>
+ <key>1156115165.H762268P24644.mbox1.freenet.de,S=14527,L=200</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:50Z</date>
+ </dict>
+ <key>1156116327.H660320P9489.mbox1.freenet.de,S=1460,L=38</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:50Z</date>
+ </dict>
+ <key>1156116534.H55291P13612.mbox1.freenet.de,S=1449,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:50Z</date>
+ </dict>
+ <key>1156119986.H882019P25652.mbox1.freenet.de,S=2823,L=104</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:50Z</date>
+ </dict>
+ <key>1156122853.H28178P27742.mbox1.freenet.de,S=2002,L=45</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:51Z</date>
+ </dict>
+ <key>1156131466.H176825P3041.mbox1.freenet.de,S=1708,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:51Z</date>
+ </dict>
+ <key>1156133130.H663462P20675.mbox1.freenet.de,S=2592,L=78</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:51Z</date>
+ </dict>
+ <key>1156133473.H468753P24781.mbox1.freenet.de,S=1739,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:51Z</date>
+ </dict>
+ <key>1156141359.H46959P9189.mbox1.freenet.de,S=1998,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:51Z</date>
+ </dict>
+ <key>1156141630.H425226P15434.mbox1.freenet.de,S=40631,L=707</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T06:48:52Z</date>
+ </dict>
+ <key>1156143777.H401918P28037.mbox1.freenet.de,S=37278,L=697</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T07:11:22Z</date>
+ </dict>
+ <key>1156145388.H594392P28582.mbox1.freenet.de,S=2833,L=97</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T07:47:00Z</date>
+ </dict>
+ <key>1156151885.H882182P30496.mbox1.freenet.de,S=1743,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T12:46:55Z</date>
+ </dict>
+ <key>1156153111.H998990P24464.mbox1.freenet.de,S=4674,L=114</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T12:46:56Z</date>
+ </dict>
+ <key>1156154981.H430092P31085.mbox1.freenet.de,S=2626,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T12:46:56Z</date>
+ </dict>
+ <key>1156155567.H266846P10396.mbox1.freenet.de,S=37062,L=649</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T12:46:57Z</date>
+ </dict>
+ <key>1156156653.H123786P1237.mbox1.freenet.de,S=1770,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T12:46:57Z</date>
+ </dict>
+ <key>1156170396.H551730P19808.mbox1.freenet.de,S=41193,L=711</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T15:18:19Z</date>
+ </dict>
+ <key>1156170466.H740758P21835.mbox1.freenet.de,S=51711,L=869</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T15:18:20Z</date>
+ </dict>
+ <key>1156171031.H926392P4585.mbox1.freenet.de,S=2822,L=82</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T15:18:20Z</date>
+ </dict>
+ <key>1156172230.H512316P6915.mbox1.freenet.de,S=24759,L=720</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T15:18:21Z</date>
+ </dict>
+ <key>1156172650.H717242P18326.mbox1.freenet.de,S=36601,L=652</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T15:18:21Z</date>
+ </dict>
+ <key>1156173039.H615099P28777.mbox1.freenet.de,S=1559,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T15:18:22Z</date>
+ </dict>
+ <key>1156177594.H375484P16541.mbox1.freenet.de,S=1656,L=30</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T17:44:50Z</date>
+ </dict>
+ <key>1156179152.H152794P24323.mbox1.freenet.de,S=4969,L=131</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T17:44:50Z</date>
+ </dict>
+ <key>1156179647.H207059P6245.mbox1.freenet.de,S=16092,L=443</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T17:44:51Z</date>
+ </dict>
+ <key>1156179723.H67824P7891.mbox1.freenet.de,S=15277,L=348</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T17:44:51Z</date>
+ </dict>
+ <key>1156180060.H346675P15430.mbox1.freenet.de,S=1685,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T17:44:51Z</date>
+ </dict>
+ <key>1156184445.H418632P10236.mbox1.freenet.de,S=4378,L=89</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T19:14:56Z</date>
+ </dict>
+ <key>1156186699.H700456P19447.mbox1.freenet.de,S=1233,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T19:14:56Z</date>
+ </dict>
+ <key>1156187075.H773717P27146.mbox1.freenet.de,S=6439,L=168</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T19:14:56Z</date>
+ </dict>
+ <key>1156187142.H119915P28764.mbox1.freenet.de,S=24952,L=729</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T19:14:57Z</date>
+ </dict>
+ <key>1156188434.H624660P25438.mbox1.freenet.de,S=1233,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T19:28:29Z</date>
+ </dict>
+ <key>1156190016.H585491P4204.mbox1.freenet.de,S=1233,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T20:10:45Z</date>
+ </dict>
+ <key>1156190229.H892273P10385.mbox1.freenet.de,S=31774,L=502</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T20:10:46Z</date>
+ </dict>
+ <key>1156191121.H58939P1014.mbox1.freenet.de,S=8464,L=170</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T20:15:48Z</date>
+ </dict>
+ <key>1156192210.H445719P28360.mbox1.freenet.de,S=3627,L=103</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T20:33:16Z</date>
+ </dict>
+ <key>1156193539.H965586P24560.mbox1.freenet.de,S=1691,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-21T20:53:33Z</date>
+ </dict>
+ <key>1156194052.H843898P1112.mbox1.freenet.de,S=1967,L=44</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:22Z</date>
+ </dict>
+ <key>1156196073.H946686P6609.mbox1.freenet.de,S=2988,L=69</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:24Z</date>
+ </dict>
+ <key>1156196215.H436396P8975.mbox1.freenet.de,S=7371,L=200</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:24Z</date>
+ </dict>
+ <key>1156196403.H875793P12311.mbox1.freenet.de,S=2590,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:24Z</date>
+ </dict>
+ <key>1156197011.H296928P21563.mbox1.freenet.de,S=3738,L=86</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:24Z</date>
+ </dict>
+ <key>1156200476.H48277P29045.mbox1.freenet.de,S=1986,L=34</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:25Z</date>
+ </dict>
+ <key>1156201055.H431831P10859.mbox1.freenet.de,S=1968,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:25Z</date>
+ </dict>
+ <key>1156203189.H194716P13945.mbox1.freenet.de,S=2412,L=64</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:25Z</date>
+ </dict>
+ <key>1156204076.H822392P25643.mbox1.freenet.de,S=1589,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:25Z</date>
+ </dict>
+ <key>1156204147.H248290P26727.mbox1.freenet.de,S=2650,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:25Z</date>
+ </dict>
+ <key>1156207011.H734989P30440.mbox1.freenet.de,S=30056,L=489</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:28Z</date>
+ </dict>
+ <key>1156210710.H728400P8151.mbox1.freenet.de,S=2498,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:28Z</date>
+ </dict>
+ <key>1156213391.H964402P5554.mbox1.freenet.de,S=5473,L=143</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:28Z</date>
+ </dict>
+ <key>1156215292.H927815P28287.mbox1.freenet.de,S=1586,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:28Z</date>
+ </dict>
+ <key>1156217397.H976068P19638.mbox1.freenet.de,S=1479,L=27</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T06:40:28Z</date>
+ </dict>
+ <key>1156229965.H933681P25828.mbox1.freenet.de,S=2421,L=77</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T07:14:03Z</date>
+ </dict>
+ <key>1156234060.H167927P7982.mbox1.freenet.de,S=3144,L=98</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T10:09:21Z</date>
+ </dict>
+ <key>1156240198.H552010P24198.mbox1.freenet.de,S=38144,L=593</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T10:09:21Z</date>
+ </dict>
+ <key>1156240239.H444189P25491.mbox1.freenet.de,S=38042,L=599</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T10:09:21Z</date>
+ </dict>
+ <key>1156243974.H843643P20009.mbox1.freenet.de,S=1676,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T13:10:59Z</date>
+ </dict>
+ <key>1156247073.H368328P32534.mbox1.freenet.de,S=36249,L=569</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T13:11:02Z</date>
+ </dict>
+ <key>1156247921.H894091P26986.mbox1.freenet.de,S=2596,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T13:11:03Z</date>
+ </dict>
+ <key>1156248662.H609680P13224.mbox1.freenet.de,S=37647,L=593</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T13:11:03Z</date>
+ </dict>
+ <key>1156254708.H669035P13799.mbox1.freenet.de,S=1542,L=27</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T13:56:52Z</date>
+ </dict>
+ <key>1156256353.H821648P30051.mbox1.freenet.de,S=3774,L=98</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T14:20:54Z</date>
+ </dict>
+ <key>1156256369.H12830P30457.mbox1.freenet.de,S=17408,L=480</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T14:20:55Z</date>
+ </dict>
+ <key>1156256982.H147690P13434.mbox1.freenet.de,S=1567,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T14:31:14Z</date>
+ </dict>
+ <key>1156260058.H608282P25599.mbox1.freenet.de,S=2984,L=66</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T19:53:04Z</date>
+ </dict>
+ <key>1156260534.H14160P5828.mbox1.freenet.de,S=3533,L=104</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T19:53:08Z</date>
+ </dict>
+ <key>1156265731.H362387P27705.mbox1.freenet.de,S=2127,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T19:53:08Z</date>
+ </dict>
+ <key>1156265942.H904452P1499.mbox1.freenet.de,S=2295,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T19:53:08Z</date>
+ </dict>
+ <key>1156273508.H146082P6958.mbox1.freenet.de,S=23332,L=624</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T19:53:08Z</date>
+ </dict>
+ <key>1156274107.H293316P22750.mbox1.freenet.de,S=5610,L=144</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T19:53:11Z</date>
+ </dict>
+ <key>1156275874.H463874P31726.mbox1.freenet.de,S=2711,L=81</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T19:53:11Z</date>
+ </dict>
+ <key>1156277419.H710606P2701.mbox1.freenet.de,S=2563,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-22T20:24:08Z</date>
+ </dict>
+ <key>1156285689.H685812P12554.mbox1.freenet.de,S=5035,L=121</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:04Z</date>
+ </dict>
+ <key>1156286221.H591132P20728.mbox1.freenet.de,S=1667,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:05Z</date>
+ </dict>
+ <key>1156286563.H445822P29014.mbox1.freenet.de,S=1444,L=34</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:05Z</date>
+ </dict>
+ <key>1156289183.H89604P29422.mbox1.freenet.de,S=1575,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:06Z</date>
+ </dict>
+ <key>1156289963.H647307P6913.mbox1.freenet.de,S=3304,L=100</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:06Z</date>
+ </dict>
+ <key>1156290394.H586113P16128.mbox1.freenet.de,S=5022,L=128</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:06Z</date>
+ </dict>
+ <key>1156293727.H129171P20060.mbox1.freenet.de,S=1420,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:06Z</date>
+ </dict>
+ <key>1156297635.H278548P20388.mbox1.freenet.de,S=1679,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:06Z</date>
+ </dict>
+ <key>1156300709.H183097P594.mbox1.freenet.de,S=2569,L=78</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:06Z</date>
+ </dict>
+ <key>1156305288.H901531P8596.mbox1.freenet.de,S=2933,L=47</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:06Z</date>
+ </dict>
+ <key>1156310085.H727481P21928.mbox1.freenet.de,S=1594,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:06Z</date>
+ </dict>
+ <key>1156311497.H823295P7719.mbox1.freenet.de,S=17437,L=292</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:07Z</date>
+ </dict>
+ <key>1156311960.H256277P16603.mbox1.freenet.de,S=1878,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:41:07Z</date>
+ </dict>
+ <key>1156315347.H730367P1334.mbox1.freenet.de,S=2576,L=79</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:48:34Z</date>
+ </dict>
+ <key>1156315856.H546199P10284.mbox1.freenet.de,S=5053,L=132</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:58:08Z</date>
+ </dict>
+ <key>1156316015.H836293P15059.mbox1.freenet.de,S=2637,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T06:58:08Z</date>
+ </dict>
+ <key>1156317490.H316128P12220.mbox1.freenet.de,S=1609,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T07:53:19Z</date>
+ </dict>
+ <key>1156323069.H397905P7644.mbox1.freenet.de,S=1731,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T12:01:31Z</date>
+ </dict>
+ <key>1156328305.H107557P11033.mbox1.freenet.de,S=2684,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T12:01:31Z</date>
+ </dict>
+ <key>1156328610.H899510P21236.mbox1.freenet.de,S=20398,L=332</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T12:01:32Z</date>
+ </dict>
+ <key>1156329141.H976121P6861.mbox1.freenet.de,S=22614,L=364</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T12:01:34Z</date>
+ </dict>
+ <key>1156329381.H661923P16478.mbox1.freenet.de,S=3571,L=102</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T12:01:34Z</date>
+ </dict>
+ <key>1156331767.H169951P4175.mbox1.freenet.de,S=19386,L=321</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T12:01:34Z</date>
+ </dict>
+ <key>1156333292.H687377P23174.mbox1.freenet.de,S=19034,L=316</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T12:01:35Z</date>
+ </dict>
+ <key>1156335065.H813527P25388.mbox1.freenet.de,S=1855,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T12:20:52Z</date>
+ </dict>
+ <key>1156335128.H506627P27897.mbox1.freenet.de,S=34219,L=596</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T12:20:52Z</date>
+ </dict>
+ <key>1156337693.H916709P26274.mbox1.freenet.de,S=1488,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T14:33:15Z</date>
+ </dict>
+ <key>1156339969.H201016P29226.mbox1.freenet.de,S=2729,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T14:33:16Z</date>
+ </dict>
+ <key>1156340983.H489572P1578.mbox1.freenet.de,S=5353,L=138</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T14:33:18Z</date>
+ </dict>
+ <key>1156343905.H613262P29822.mbox1.freenet.de,S=18033,L=871</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T14:42:42Z</date>
+ </dict>
+ <key>1156347308.H585921P10247.mbox1.freenet.de,S=2509,L=78</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T17:03:36Z</date>
+ </dict>
+ <key>1156348235.H605443P5820.mbox1.freenet.de,S=24063,L=831</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T17:03:37Z</date>
+ </dict>
+ <key>1156349535.H189526P13945.mbox1.freenet.de,S=2784,L=82</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T17:03:37Z</date>
+ </dict>
+ <key>1156349791.H518401P22732.mbox1.freenet.de,S=7069,L=186</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T17:03:38Z</date>
+ </dict>
+ <key>1156352330.H449068P8873.mbox1.freenet.de,S=6059,L=155</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T17:03:38Z</date>
+ </dict>
+ <key>1156352921.H600969P29626.mbox1.freenet.de,S=25063,L=716</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T17:18:15Z</date>
+ </dict>
+ <key>1156353931.H733759P28776.mbox1.freenet.de,S=9424,L=258</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T17:38:06Z</date>
+ </dict>
+ <key>1156354448.H385753P11448.mbox1.freenet.de,S=1666,L=30</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T17:38:06Z</date>
+ </dict>
+ <key>1156355946.H172785P26542.mbox1.freenet.de,S=3133,L=98</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T18:02:28Z</date>
+ </dict>
+ <key>1156356879.H751770P17495.mbox1.freenet.de,S=64948,L=1457</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T19:11:41Z</date>
+ </dict>
+ <key>1156357949.H742519P7828.mbox1.freenet.de,S=1742,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T19:11:41Z</date>
+ </dict>
+ <key>1156359742.H927083P11243.mbox1.freenet.de,S=8924,L=302</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T19:11:41Z</date>
+ </dict>
+ <key>1156359904.H859310P14363.mbox1.freenet.de,S=6729,L=173</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T19:11:41Z</date>
+ </dict>
+ <key>1156360217.H1360P19796.mbox1.freenet.de,S=1649,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T19:11:42Z</date>
+ </dict>
+ <key>1156360946.H982607P633.mbox1.freenet.de,S=39555,L=717</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T21:19:56Z</date>
+ </dict>
+ <key>1156363621.H577806P17175.mbox1.freenet.de,S=1587,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T21:20:00Z</date>
+ </dict>
+ <key>1156364087.H814559P31535.mbox1.freenet.de,S=1532,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T21:20:00Z</date>
+ </dict>
+ <key>1156364446.H917308P8932.mbox1.freenet.de,S=1621,L=32</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T21:20:00Z</date>
+ </dict>
+ <key>1156366127.H829818P8733.mbox1.freenet.de,S=1353,L=31</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-23T21:20:00Z</date>
+ </dict>
+ <key>1156369166.H442716P21101.mbox1.freenet.de,S=2562,L=70</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T05:58:44Z</date>
+ </dict>
+ <key>1156370291.H719P6952.mbox1.freenet.de,S=1616,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T05:58:45Z</date>
+ </dict>
+ <key>1156371667.H788296P29922.mbox1.freenet.de,S=4999,L=132</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T05:58:45Z</date>
+ </dict>
+ <key>1156375748.H902317P11345.mbox1.freenet.de,S=2497,L=77</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T05:58:45Z</date>
+ </dict>
+ <key>1156384457.H617314P16691.mbox1.freenet.de,S=1584,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T05:58:46Z</date>
+ </dict>
+ <key>1156389145.H523602P9740.mbox1.freenet.de,S=2575,L=80</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T05:58:46Z</date>
+ </dict>
+ <key>1156390322.H953020P24591.mbox1.freenet.de,S=2138,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T05:58:46Z</date>
+ </dict>
+ <key>1156391277.H842866P5178.mbox1.freenet.de,S=1573,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T05:58:46Z</date>
+ </dict>
+ <key>1156392812.H490436P26555.mbox1.freenet.de,S=1943,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T05:58:46Z</date>
+ </dict>
+ <key>1156409023.H275252P19047.mbox1.freenet.de,S=16951,L=282</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T10:16:05Z</date>
+ </dict>
+ <key>1156409406.H140046P26739.mbox1.freenet.de,S=1689,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T10:16:05Z</date>
+ </dict>
+ <key>1156415085.H201171P20387.mbox1.freenet.de,S=1814,L=48</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T10:25:52Z</date>
+ </dict>
+ <key>1156416657.H807142P26711.mbox1.freenet.de,S=312347,L=4119</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T10:56:18Z</date>
+ </dict>
+ <key>1156423141.H738283P9595.mbox1.freenet.de,S=8204,L=155</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T13:14:17Z</date>
+ </dict>
+ <key>1156423586.H986469P18910.mbox1.freenet.de,S=24526,L=378</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T13:14:19Z</date>
+ </dict>
+ <key>1156423766.H305574P22337.mbox1.freenet.de,S=1757,L=47</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T13:14:19Z</date>
+ </dict>
+ <key>1156426034.H411561P11292.mbox1.freenet.de,S=1751,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T14:53:56Z</date>
+ </dict>
+ <key>1156426257.H814508P17034.mbox1.freenet.de,S=2142,L=50</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T14:53:57Z</date>
+ </dict>
+ <key>1156432315.H944338P11912.mbox1.freenet.de,S=1689,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T15:40:00Z</date>
+ </dict>
+ <key>1156437064.H929760P27072.mbox1.freenet.de,S=1396,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T16:34:59Z</date>
+ </dict>
+ <key>1156437552.H24990P7839.mbox1.freenet.de,S=1772,L=47</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T18:00:14Z</date>
+ </dict>
+ <key>1156437671.H85068P11659.mbox1.freenet.de,S=1684,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T18:00:15Z</date>
+ </dict>
+ <key>1156441998.H409093P17815.mbox1.freenet.de,S=5785,L=139</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T18:00:15Z</date>
+ </dict>
+ <key>1156446198.H125878P7360.mbox1.freenet.de,S=8722,L=270</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T19:26:26Z</date>
+ </dict>
+ <key>1156446298.H279321P9602.mbox1.freenet.de,S=7215,L=203</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T19:26:26Z</date>
+ </dict>
+ <key>1156446397.H304492P11756.mbox1.freenet.de,S=20240,L=558</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T19:26:27Z</date>
+ </dict>
+ <key>1156450351.H298345P26939.mbox1.freenet.de,S=4133,L=115</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T21:15:59Z</date>
+ </dict>
+ <key>1156453995.H371780P29628.mbox1.freenet.de,S=1580,L=28</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-24T21:16:00Z</date>
+ </dict>
+ <key>1156460441.H902493P17252.mbox1.freenet.de,S=1585,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T06:39:53Z</date>
+ </dict>
+ <key>1156460928.H250512P22577.mbox1.freenet.de,S=2571,L=78</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T06:40:10Z</date>
+ </dict>
+ <key>1156468449.H428556P31977.mbox1.freenet.de,S=1758,L=47</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T06:40:10Z</date>
+ </dict>
+ <key>1156468701.H640830P2031.mbox1.freenet.de,S=2381,L=76</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T06:40:10Z</date>
+ </dict>
+ <key>1156471052.H538705P24970.mbox1.freenet.de,S=3245,L=90</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T06:40:10Z</date>
+ </dict>
+ <key>1156472233.H352865P4623.mbox1.freenet.de,S=542213,L=7800</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T06:40:13Z</date>
+ </dict>
+ <key>1156490541.H545396P8320.mbox1.freenet.de,S=96654,L=1346</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T07:25:02Z</date>
+ </dict>
+ <key>1156492596.H148223P20881.mbox1.freenet.de,S=1999,L=34</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T09:31:31Z</date>
+ </dict>
+ <key>1156493168.H185516P7060.mbox1.freenet.de,S=1816,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T09:31:31Z</date>
+ </dict>
+ <key>1156502823.H884919P26106.mbox1.freenet.de,S=1691,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T11:31:46Z</date>
+ </dict>
+ <key>1156507113.H321643P19255.mbox1.freenet.de,S=5378,L=140</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T12:35:04Z</date>
+ </dict>
+ <key>1156507414.H963810P28046.mbox1.freenet.de,S=2857,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T12:35:04Z</date>
+ </dict>
+ <key>1156513457.H597038P18199.mbox1.freenet.de,S=1486,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T18:39:22Z</date>
+ </dict>
+ <key>1156516574.H33272P14791.mbox1.freenet.de,S=6938,L=118</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T18:39:23Z</date>
+ </dict>
+ <key>1156517309.H650800P29358.mbox1.freenet.de,S=2982,L=75</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T18:39:23Z</date>
+ </dict>
+ <key>1156522127.H373876P2643.mbox1.freenet.de,S=1587,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T18:39:23Z</date>
+ </dict>
+ <key>1156522766.H246625P20682.mbox1.freenet.de,S=3333,L=100</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T18:39:23Z</date>
+ </dict>
+ <key>1156529537.H136065P26779.mbox1.freenet.de,S=3780,L=116</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T18:39:24Z</date>
+ </dict>
+ <key>1156530524.H954463P14172.mbox1.freenet.de,S=3712,L=115</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T18:39:24Z</date>
+ </dict>
+ <key>1156532587.H787648P19469.mbox1.freenet.de,S=16095,L=437</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T19:22:38Z</date>
+ </dict>
+ <key>1156532679.H554445P21183.mbox1.freenet.de,S=5584,L=162</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T19:22:38Z</date>
+ </dict>
+ <key>1156532748.H638119P22590.mbox1.freenet.de,S=9089,L=198</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T19:22:38Z</date>
+ </dict>
+ <key>1156534574.H270836P24004.mbox1.freenet.de,S=21643,L=350</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T21:09:33Z</date>
+ </dict>
+ <key>1156536377.H578706P25236.mbox1.freenet.de,S=8217,L=176</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T21:09:36Z</date>
+ </dict>
+ <key>1156538955.H25329P11731.mbox1.freenet.de,S=1765,L=55</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T21:09:36Z</date>
+ </dict>
+ <key>1156541102.H692666P12671.mbox1.freenet.de,S=1506,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-25T21:38:36Z</date>
+ </dict>
+ <key>1156544069.H856248P27072.mbox1.freenet.de,S=1562,L=29</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T07:15:58Z</date>
+ </dict>
+ <key>1156549318.H314695P5966.mbox1.freenet.de,S=1594,L=51</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T07:15:58Z</date>
+ </dict>
+ <key>1156552574.H442749P8681.mbox1.freenet.de,S=28405,L=522</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T07:15:58Z</date>
+ </dict>
+ <key>1156553161.H622189P14963.mbox1.freenet.de,S=23163,L=374</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T07:15:59Z</date>
+ </dict>
+ <key>1156561537.H227330P14836.mbox1.freenet.de,S=3759,L=116</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T07:15:59Z</date>
+ </dict>
+ <key>1156564400.H36368P11833.mbox1.freenet.de,S=3864,L=118</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T07:15:59Z</date>
+ </dict>
+ <key>1156574920.H627211P18312.mbox1.freenet.de,S=3010,L=86</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T07:15:59Z</date>
+ </dict>
+ <key>1156576237.H864144P3629.mbox1.freenet.de,S=3196,L=109</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T07:16:00Z</date>
+ </dict>
+ <key>1156576267.H974879P4022.mbox1.freenet.de,S=3065,L=107</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T07:16:00Z</date>
+ </dict>
+ <key>1156579309.H517997P12771.mbox1.freenet.de,S=1724,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T09:38:43Z</date>
+ </dict>
+ <key>1156580704.H8509P31929.mbox1.freenet.de,S=1648,L=54</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T09:38:43Z</date>
+ </dict>
+ <key>1156581378.H425638P8539.mbox1.freenet.de,S=3939,L=119</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T09:38:44Z</date>
+ </dict>
+ <key>1156581789.H721913P14216.mbox1.freenet.de,S=7053,L=123</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T09:38:44Z</date>
+ </dict>
+ <key>1156590749.H170677P27688.mbox1.freenet.de,S=3377,L=112</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T11:43:22Z</date>
+ </dict>
+ <key>1156590890.H501398P30491.mbox1.freenet.de,S=1507,L=36</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T11:43:23Z</date>
+ </dict>
+ <key>1156594169.H314422P20793.mbox1.freenet.de,S=3866,L=117</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T12:59:47Z</date>
+ </dict>
+ <key>1156598595.H104465P28754.mbox1.freenet.de,S=1695,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T13:59:46Z</date>
+ </dict>
+ <key>1156602381.H87196P22354.mbox1.freenet.de,S=1632,L=52</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T14:59:32Z</date>
+ </dict>
+ <key>1156607782.H396993P12508.mbox1.freenet.de,S=5154,L=133</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T16:23:15Z</date>
+ </dict>
+ <key>1156608275.H103212P28930.mbox1.freenet.de,S=1350,L=30</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T16:23:16Z</date>
+ </dict>
+ <key>1156610616.H638298P7490.mbox1.freenet.de,S=4018,L=111</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T17:05:52Z</date>
+ </dict>
+ <key>1156610763.H278725P10198.mbox1.freenet.de,S=3691,L=58</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T17:05:53Z</date>
+ </dict>
+ <key>1156617667.H152062P26956.mbox1.freenet.de,S=4704,L=89</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T19:30:56Z</date>
+ </dict>
+ <key>1156618965.H215788P16362.mbox1.freenet.de,S=24100,L=687</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T19:30:57Z</date>
+ </dict>
+ <key>1156619069.H69198P18118.mbox1.freenet.de,S=8816,L=240</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T19:30:57Z</date>
+ </dict>
+ <key>1156619142.H495546P19352.mbox1.freenet.de,S=5115,L=134</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T19:30:57Z</date>
+ </dict>
+ <key>1156622683.H623990P9695.mbox1.freenet.de,S=4462,L=119</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-26T20:55:10Z</date>
+ </dict>
+ <key>1156627302.H474172P6812.mbox1.freenet.de,S=1705,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:46Z</date>
+ </dict>
+ <key>1156629242.H605644P32006.mbox1.freenet.de,S=1683,L=43</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:47Z</date>
+ </dict>
+ <key>1156633050.H581303P13138.mbox1.freenet.de,S=1524,L=30</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:47Z</date>
+ </dict>
+ <key>1156633485.H534083P21169.mbox1.freenet.de,S=3805,L=116</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:47Z</date>
+ </dict>
+ <key>1156643912.H983156P23127.mbox1.freenet.de,S=3786,L=116</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:47Z</date>
+ </dict>
+ <key>1156645412.H702961P12524.mbox1.freenet.de,S=1590,L=37</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:47Z</date>
+ </dict>
+ <key>1156646412.H830885P22234.mbox1.freenet.de,S=3555,L=104</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:47Z</date>
+ </dict>
+ <key>1156648116.H733591P6025.mbox1.freenet.de,S=23089,L=370</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:48Z</date>
+ </dict>
+ <key>1156650850.H755558P2627.mbox1.freenet.de,S=1560,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:48Z</date>
+ </dict>
+ <key>1156657047.H587784P18251.mbox1.freenet.de,S=1699,L=56</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:48Z</date>
+ </dict>
+ <key>1156659804.H361202P11295.mbox1.freenet.de,S=4485,L=118</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T09:32:48Z</date>
+ </dict>
+ <key>1156677067.H165927P23712.mbox1.freenet.de,S=3816,L=116</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T11:22:35Z</date>
+ </dict>
+ <key>1156677789.H338206P3684.mbox1.freenet.de,S=3917,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T11:23:38Z</date>
+ </dict>
+ <key>1156678063.H539715P10854.mbox1.freenet.de,S=2414,L=48</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T11:33:05Z</date>
+ </dict>
+ <key>1156678360.H217893P18381.mbox1.freenet.de,S=1977,L=35</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T11:33:05Z</date>
+ </dict>
+ <key>1156679377.H960667P9014.mbox1.freenet.de,S=1780,L=33</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T11:59:11Z</date>
+ </dict>
+ <key>1156681141.H749219P15470.mbox1.freenet.de,S=1742,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T12:38:44Z</date>
+ </dict>
+ <key>1156682243.H802388P2173.mbox1.freenet.de,S=4615,L=120</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T12:38:44Z</date>
+ </dict>
+ <key>1156685948.H91108P27966.mbox1.freenet.de,S=1478,L=39</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T13:45:01Z</date>
+ </dict>
+ <key>1156686125.H586308P31263.mbox1.freenet.de,S=6825,L=95</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T13:45:02Z</date>
+ </dict>
+ <key>1156687202.H377173P17632.mbox1.freenet.de,S=1644,L=53</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T14:20:35Z</date>
+ </dict>
+ <key>1156690381.H436758P11593.mbox1.freenet.de,S=5589,L=144</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T17:50:01Z</date>
+ </dict>
+ <key>1156691746.H108969P4127.mbox1.freenet.de,S=20903,L=341</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T17:50:04Z</date>
+ </dict>
+ <key>1156692551.H254066P19430.mbox1.freenet.de,S=3873,L=117</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T17:50:04Z</date>
+ </dict>
+ <key>1156694718.H545079P28530.mbox1.freenet.de,S=21022,L=344</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T17:50:04Z</date>
+ </dict>
+ <key>1156696327.H98631P26821.mbox1.freenet.de,S=9038,L=120</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T17:50:04Z</date>
+ </dict>
+ <key>1156696693.H413970P1627.mbox1.freenet.de,S=2048,L=47</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T17:50:04Z</date>
+ </dict>
+ <key>1156697667.H784900P20074.mbox1.freenet.de,S=1723,L=42</key>
+ <dict>
+ <key>DateDownloaded</key>
+ <date>2006-08-27T17:50:04Z</date>
+ </dict>
+</dict>
+</plist>
diff --git a/ManualTests/memory/string-growth.html b/ManualTests/memory/string-growth.html
new file mode 100644
index 000000000..2f921d014
--- /dev/null
+++ b/ManualTests/memory/string-growth.html
@@ -0,0 +1,16 @@
+<script>
+var x = "x";
+
+for (var i = 1; i < 23; ++i) {
+ x = x + x;
+}
+
+// x should now be a 2^23 character string, which is 16M in size.
+
+var y;
+
+// now append to it repeatedly in a way that prevents buffer sharing
+for (var i = 0; i < 1000; ++i) {
+ y = x + i;
+}
+</script>
diff --git a/ManualTests/memory/xhr-multiple-requests-responseText.html b/ManualTests/memory/xhr-multiple-requests-responseText.html
new file mode 100644
index 000000000..463be577d
--- /dev/null
+++ b/ManualTests/memory/xhr-multiple-requests-responseText.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>TestWidget 1.3</title>
+ <script type="text/javascript">
+ var mainDiv;
+ var widgetID = "12345678";
+
+ function init() {
+ mainDiv = document.getElementById( "main" );
+
+ if ( window.widget ) {
+ widget.setCloseBoxOffset( 304, 16 );
+ window.resizeTo( 640, 480 );
+ //widgetID = widget.identifier;
+ }
+ }
+
+ function getLocalMailIDList() {
+ var storedLocalMailIDList = new Array();
+ var xmlHttp = new XMLHttpRequest();
+ xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);
+ xmlHttp.send(null);
+
+ if (xmlHttp.readyState == 4) {
+ xmlHttp.responseText;
+ }
+ }
+
+ function getLocalMailIDList2() {
+ var storedLocalMailIDList = new Array();
+ var xmlHttp = new XMLHttpRequest();
+ xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);
+ xmlHttp.send(null);
+
+
+ if (xmlHttp.readyState == 4) {
+ xmlHttp.responseText;
+ }
+ }
+
+ function clear() {
+ mainDiv.innerText = "C:\\>";
+ }
+
+ function fillMyRam() {
+ getLocalMailIDList2();
+ setTimeout( "fillMyRam();", 500 );
+ }
+ </script>
+ </head>
+
+ <body onLoad="init();">
+ <div><a href="javascript:fillMyRam();">fillMyRam</a></div>
+ </body>
+</html>
diff --git a/ManualTests/memory/xhr-multiple-requests-responseXML.html b/ManualTests/memory/xhr-multiple-requests-responseXML.html
new file mode 100644
index 000000000..939302ab1
--- /dev/null
+++ b/ManualTests/memory/xhr-multiple-requests-responseXML.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>TestWidget 1.3</title>
+ <script type="text/javascript">
+ var mainDiv;
+ var widgetID = "12345678";
+
+ function init() {
+ mainDiv = document.getElementById( "main" );
+
+ if ( window.widget ) {
+ widget.setCloseBoxOffset( 304, 16 );
+ window.resizeTo( 640, 480 );
+ //widgetID = widget.identifier;
+ }
+ }
+
+ function getLocalMailIDList() {
+ var storedLocalMailIDList = new Array();
+ var xmlHttp = new XMLHttpRequest();
+ xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);
+ xmlHttp.send(null);
+
+ if (xmlHttp.readyState == 4) {
+ var items = xmlHttp.responseXML;
+ var counter = 0;
+
+ for ( var i = 0; i < items.childNodes.length; i++ ) {
+ counter++;
+
+ if ( items.childNodes[i].nodeName == "plist" ) {
+ counter++;
+ //alert( items.childNodes[i].nodeName );
+
+ for ( var j = 0; j < items.childNodes[i].childNodes.length; j++) {
+ counter++;
+
+ if ( items.childNodes[i].childNodes[j].nodeName == "dict" ) {
+ counter++;
+ //alert( items.childNodes[i].childNodes[j].nodeName );
+
+ for ( var k = 0; k < items.childNodes[i].childNodes[j].childNodes.length; k++) {
+ counter++;
+
+ if ( items.childNodes[i].childNodes[j].childNodes[k].nodeName == "key" ) {
+ counter++;
+ //alert( items.childNodes[i].childNodes[j].childNodes[k].nodeName );
+ //alert( items.childNodes[i].childNodes[j].childNodes[k].firstChild.nodeValue );
+ storedLocalMailIDList.push( items.childNodes[i].childNodes[j].childNodes[k].firstChild.nodeValue );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /*
+ for ( var i = 0; i < storedLocalMailIDList.length; i++ ) {
+ counter++;
+ mainDiv.innerText = storedLocalMailIDList[i];
+ }
+ */
+ //alert(storedLocalMailIDList.length);
+
+
+ //storedLocalMailIDList.sort();
+
+ alert(counter);
+ }
+ }
+
+ function getLocalMailIDList2() {
+ var storedLocalMailIDList = new Array();
+ var xmlHttp = new XMLHttpRequest();
+ xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);
+ xmlHttp.send(null);
+
+
+ if (xmlHttp.readyState == 4) {
+ var items = xmlHttp.responseXML; //.getElementsByTagName("key");
+
+ /*
+ //alert(items.length);
+
+ for ( var i = 0; i < items.length; i+= 2 ) {
+ //alert( items[i].firstChild.nodeValue );
+ //storedLocalMailIDList.push( items[i].firstChild.nodeValue );
+ }
+
+ //for ( var i = 0; i < storedLocalMailIDList.length; i++ ) {
+ // mainDiv.innerText = storedLocalMailIDList[i];
+ //}
+
+ //alert(storedLocalMailIDList.length);
+
+ //storedLocalMailIDList.sort();
+ */
+ }
+ }
+
+ function clear() {
+ mainDiv.innerText = "C:\\>";
+ }
+
+ function fillMyRam() {
+ getLocalMailIDList2();
+ setTimeout( "fillMyRam();", 500 );
+ }
+ </script>
+ </head>
+
+ <body onLoad="init();">
+ <div><a href="javascript:fillMyRam();">fillMyRam</a></div>
+ </body>
+</html>
diff --git a/ManualTests/memory/xhr-multiple-requests.html b/ManualTests/memory/xhr-multiple-requests.html
new file mode 100644
index 000000000..17518b934
--- /dev/null
+++ b/ManualTests/memory/xhr-multiple-requests.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>TestWidget 1.3</title>
+ <script type="text/javascript">
+ var mainDiv;
+ var widgetID = "12345678";
+
+ function init() {
+ mainDiv = document.getElementById( "main" );
+
+ if ( window.widget ) {
+ widget.setCloseBoxOffset( 304, 16 );
+ window.resizeTo( 640, 480 );
+ //widgetID = widget.identifier;
+ }
+ }
+
+ function getLocalMailIDList() {
+ var storedLocalMailIDList = new Array();
+ var xmlHttp = new XMLHttpRequest();
+ xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);
+ xmlHttp.send(null);
+
+ if (xmlHttp.readyState == 4) {
+ }
+ }
+
+ function getLocalMailIDList2() {
+ var storedLocalMailIDList = new Array();
+ var xmlHttp = new XMLHttpRequest();
+ xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);
+ xmlHttp.send(null);
+
+
+ if (xmlHttp.readyState == 4) {
+ }
+ }
+
+ function clear() {
+ mainDiv.innerText = "C:\\>";
+ }
+
+ function fillMyRam() {
+ getLocalMailIDList2();
+ setTimeout( "fillMyRam();", 500 );
+ }
+ </script>
+ </head>
+
+ <body onLoad="init();">
+ <div><a href="javascript:fillMyRam();">fillMyRam</a></div>
+ </body>
+</html>
diff --git a/ManualTests/memory/xhr-repeated-string-access.xml b/ManualTests/memory/xhr-repeated-string-access.xml
new file mode 100644
index 000000000..efb8e35fc
--- /dev/null
+++ b/ManualTests/memory/xhr-repeated-string-access.xml
@@ -0,0 +1,43 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+ <head>
+ <title>Massive Memory Leak</title>
+ <script>
+ <![CDATA[
+
+ function loadVideo (videoURI) {
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', videoURI, true);
+ xhr.onreadystatechange = function (xhrEvent) {
+ if (xhr.readyState == 3) {
+ var currentLength = xhr.responseText.length;
+ var totalLength = parseInt(xhr.getResponseHeader('Content-Length'), 10);
+ print((Math.round((currentLength / totalLength) * 10000) / 100) + '%');
+ }
+ else if (xhr.readyState == 4) {
+ if (xhr.status == 200) {
+ alert('done loading');
+ alert(xhr.responseText.length);
+ }
+ else {
+ alert('NOK');
+ }
+ }
+ };
+ xhr.send(null);
+ }
+
+ function print (message) {
+ document.getElementById('outlet').textContent = message;
+ }
+
+ ]]>
+ </script>
+ </head>
+
+ <body>
+ <a onclick="loadVideo('http://streamos.atlrec.com/download/atlantic/bjork/video/bjork_itunes1.m4v');">do it!</a>
+ <p id="outlet" />
+ </body>
+
+</html>
diff --git a/ManualTests/modal-dialog-arguments.html b/ManualTests/modal-dialog-arguments.html
new file mode 100644
index 000000000..99161372b
--- /dev/null
+++ b/ManualTests/modal-dialog-arguments.html
@@ -0,0 +1,19 @@
+<html>
+<script>
+function runTest() {
+ var o = { };
+ showModalDialog("data:text/html,<scr" + "ipt>dialogArguments['result'] = 'PASS'; window.close() </scr" + "ipt>", o);
+
+ if (o.result == 'PASS')
+ document.getElementById('result').innerHTML = 'SUCCESS';
+}
+
+</script>
+<body>
+<div>
+This tests that modal dialog arguments get passed around correctly. Click the button below to test. The text "SUCCESS" will be shown below if the test was successful.
+</div>
+<button onclick="runTest()">Click Me!</button>
+<div id="result">
+</div>
+</html>
diff --git a/ManualTests/modal-dialog-blur-selfclose.html b/ManualTests/modal-dialog-blur-selfclose.html
new file mode 100644
index 000000000..c6b2da8ee
--- /dev/null
+++ b/ManualTests/modal-dialog-blur-selfclose.html
@@ -0,0 +1,3 @@
+<script>
+window.close()
+</script>
diff --git a/ManualTests/modal-dialog-blur.html b/ManualTests/modal-dialog-blur.html
new file mode 100644
index 000000000..bd72aa59d
--- /dev/null
+++ b/ManualTests/modal-dialog-blur.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head><title>
+Tests blur/focus events with modal dialogs
+</title></head>
+<script>
+var failed = "";
+function failBlur() {
+ failed = "blur";
+}
+function failFocus() {
+ failed = "focus";
+}
+
+var inputElement;
+
+function test() {
+ inputElement = document.getElementById("i")
+ inputElement.focus();
+ inputElement.addEventListener("blur", failBlur, false);
+ inputElement.addEventListener("focus", failFocus, false);
+ window.showModalDialog("modal-dialog-blur-selfclose.html");
+ if (failed) {
+ document.getElementById("status").innerHTML = "FAIL, " + failed;
+ } else {
+ document.getElementById("status").innerHTML = "SUCCESS";
+ }
+}
+</script>
+<body onload="test()">
+<input id="i"></input>
+<div id="status">RUNNING...</div>
+</body>
+</html>
diff --git a/ManualTests/modal-dialog.html b/ManualTests/modal-dialog.html
new file mode 100644
index 000000000..fe8f12815
--- /dev/null
+++ b/ManualTests/modal-dialog.html
@@ -0,0 +1,27 @@
+<head>
+<script>
+function timerFired()
+{
+ document.getElementById("timerResult").firstChild.data = "Timer fired!";
+}
+
+function closeModal() {
+ window.returnValue = document.form.toWindow.value;
+ window.close();
+}
+
+function init()
+{
+ document.form.fromWindow.value = window.dialogArguments;
+}
+</script>
+</head>
+<body onload="init()">
+<form name="form">
+<p>Here is the text from the main window: <input name="fromWindow"></p>
+<p>Type text here to be sent back to the main window: <input name="toWindow" value="from modal window"></p>
+<p>Then, push this button: <input type="button" value="Close" onClick="closeModal()"></p>
+<p>Push this button to test timer: <input type="button" value="Test Timer" onClick="setTimeout(timerFired, 0)"></p>
+<p id="timerResult">Timer did not fire yet.</p>
+</form>
+</body>
diff --git a/ManualTests/mouseevent-on-closeddoc.html b/ManualTests/mouseevent-on-closeddoc.html
new file mode 100644
index 000000000..2da76bd7c
--- /dev/null
+++ b/ManualTests/mouseevent-on-closeddoc.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4229177"> 4229177</a> REGRESSION (Denver): crash dispatching mouse events (4608)</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Click on the link below, and move your mouse cursor over the blank page that is loaded.</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+No crash after moving the mouse over the blank page that is loaded. Nothing happens.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Crash after moving the mouse over the blank page that opens.
+</p>
+
+<a href="resources/mouseevent-on-closeddoc.html">Click this link</a>
+</body>
+</html>
diff --git a/ManualTests/mouseevents-on-textnodes.html b/ManualTests/mouseevents-on-textnodes.html
new file mode 100644
index 000000000..2d1c22685
--- /dev/null
+++ b/ManualTests/mouseevents-on-textnodes.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<script type="text/javascript" language="javascript" charset="utf-8">
+
+ document.onmousedown = doIt;
+
+ function doIt(evt) {
+ var elem = evt.target;
+ var anAttr = null;
+ alert (elem);
+ }
+
+</script>
+
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4196646">4196646</a> target returns text node when it should return the parent node</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Click where indicated below.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+After clicking, see alert dialogs as described below.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+After clicking, see alert dialogs other than what is described below.
+Specifically, tests #1 and #3 below will alert "[object TEXT]"
+</p>
+
+<p>1. click on this text - you should see an alert that says "[object P]"</p>
+
+<div style="border: 1px dotted red; width: 500px; ">2. click on white space next to this text --> <br>you should see an alert that says "[object DIV]" --> </div><br>
+
+3. click on this text - you should see an alert that says "[object BODY]"<br><br>
+
+4. click on empty whitespace on this page, below this text - you should see an alert that says "[object HTML]"
+
+</body>
+</html>
diff --git a/ManualTests/mutate-unfocused-text-with-selection.html b/ManualTests/mutate-unfocused-text-with-selection.html
new file mode 100644
index 000000000..c193d12b5
--- /dev/null
+++ b/ManualTests/mutate-unfocused-text-with-selection.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<body>
+<p>This tests modifying a text node with selection but without a focus.
+WebKit used to automatically set the focus to the root editable element of this node but it should not.
+You should see 'PASS' below:</p>
+<div id="target" onfocus="target.innerText='FAIL'" contenteditable>hello</div>
+<div id="focused" contenteditable>world</div>
+<script>
+
+var target = document.getElementById('target');
+var focused = document.getElementById('focused');
+focused.focus();
+getSelection().setBaseAndExtent(target.firstChild, 1, target.firstChild, 3);
+
+// The bug doesn't reproduce if this function was ran here or inside load event handler
+setTimeout(function() {
+ target.firstChild.data = 'PASS';
+ alert('activeElement:' + document.activeElement.id); // necessary to reproduce the bug
+}, 50);
+
+</script>
+</body>
+</html>
diff --git a/ManualTests/named-window-blank-target.html b/ManualTests/named-window-blank-target.html
new file mode 100644
index 000000000..33e8822cb
--- /dev/null
+++ b/ManualTests/named-window-blank-target.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<script type="text/javascript">
+ window.name = "foo"; // any non-empty name will do here
+</script>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=7747">Bugzilla bug 7747</a> REGRESSION: Background tab/window auto-refresh in GMail will take focus.</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br>
+STEP 1: Close all other Safari windows and tabs.<br>
+STEP 2: Open <a href="resources/named-window-blank-target-step2.html">this link</a> in a new window in front of this window and follow the instructions in it.
+</p>
+
+
+</body>
+</html>
diff --git a/ManualTests/navigation-during-onload-triggered-by-back.html b/ManualTests/navigation-during-onload-triggered-by-back.html
new file mode 100644
index 000000000..09a5f57de
--- /dev/null
+++ b/ManualTests/navigation-during-onload-triggered-by-back.html
@@ -0,0 +1,16 @@
+<html>
+<head>
+</head>
+<body>
+<p>Same-document navigation in onload triggered by back navigation.</p>
+ <ol>
+ <li>Start the layout test web server with Tools/Scripts/run-webkit-httpd.</li>
+ <li>Click <a href="resources/navigation-during-onload-container.html">here</a>.</li>
+ <li>Click Back.</li>
+ </ol>
+<p>You should not crash.</p>
+<p>We cannot use history.back() to test this, because it calls Page::goToItem
+(which calls FrameLoader::stopAllLoaders) first. Chromium's back button does
+not call stopAllLoaders first.</p>
+</body>
+</html>
diff --git a/ManualTests/nested-fixed-position.html b/ManualTests/nested-fixed-position.html
new file mode 100644
index 000000000..9bb52003c
--- /dev/null
+++ b/ManualTests/nested-fixed-position.html
@@ -0,0 +1,93 @@
+<html><head>
+
+<meta content="text/html; charset=windows-1251" http-equiv="Content-Type">
+<style>
+.d1{position:fixed;top:50%;right:50%;z-index:2;overflow:hidden;}
+.d2{position:fixed;bottom:0;left:0;z-index:2;width:100%;background-color:darkgray;}
+.o {background:green;height:40px;width:200px;}
+.t { width:2000px; height:198px;background-color: lightgray; border: 1px solid blue;}
+body { margin: 0px; }
+</style>
+<script>
+function remove_fixed()
+{
+ document.getElementById("d2").style.position = "static";
+}
+
+function add_fixed()
+{
+ document.getElementById("d2").style.position = "fixed";
+}
+
+</script>
+</head>
+<body>
+<div class="d2" id="d2">This is the parent div.
+<div class="d1" id="d1"><div class="o">This is the nested div.</div></div>
+</div>
+<div class="t">
+000
+</div>
+<div class="t">
+200
+</div>
+<div class="t">
+400<br>
+<button onclick="remove_fixed();">remove fixed</button>
+</div>
+<div class="t">
+600<br>
+<button onclick="add_fixed();">add fixed</button>
+</div>
+<div class="t">
+800
+</div>
+<div class="t">
+1000
+</div>
+<div class="t">
+1200
+</div>
+<div class="t">
+1400
+</div>
+<div class="t">
+1600
+</div>
+<div class="t">
+1800
+</div>
+<div class="t">
+2000
+</div>
+<div class="t">
+2200
+</div>
+<div class="t">
+2400
+</div>
+<div class="t">
+2600
+</div>
+<div class="t">
+2800
+</div>
+<div class="t">
+3000
+</div>
+<div class="t">
+3200
+</div>
+<div class="t">
+3400
+</div>
+<div class="t">
+3600
+</div>
+<div class="t">
+3800
+</div>
+<div class="t">
+4000
+</div>
+</body></html>
diff --git a/ManualTests/nested-plug-ins.html b/ManualTests/nested-plug-ins.html
new file mode 100644
index 000000000..20a11fa65
--- /dev/null
+++ b/ManualTests/nested-plug-ins.html
@@ -0,0 +1,45 @@
+<script>
+ function toggleDisplay(element, button)
+ {
+ if (element.style.display == "none")
+ element.style.display = "";
+ else
+ element.style.display = "none";
+ }
+
+ function toggleVisibility(element, button)
+ {
+ if (element.style.visibility == "hidden")
+ element.style.visibility = "";
+ else
+ element.style.visibility = "hidden";
+ }
+
+</script>
+<p>
+ Play with the display and visibility toggles. Make sure that turning an inner element visible does not show it if it has a hidden or
+ non-displaying ancestor, and that making an ancestor visible and displaying shows only its descendants the are visible and displaying.
+</p>
+<table>
+ <tr>
+ <td>
+ <input type="checkbox" checked="true" onclick="toggleDisplay(document.getElementById('middle'))"> Outer frame display
+ </td>
+ <td>
+ <input type="checkbox" checked="true" onclick="toggleDisplay(document.getElementById('middle').contentDocument.getElementById('inner'))"> Inner frame display
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="checkbox" checked="true" onclick="toggleVisibility(document.getElementById('middle'))"> Outer frame visibility
+ </td>
+ <td>
+ <input type="checkbox" checked="true" onclick="toggleVisibility(document.getElementById('middle').contentDocument.getElementById('inner'))"> Inner frame visibility
+ </td>
+ <td>
+ <input type="checkbox" checked="true" onclick="toggleVisibility(document.getElementById('middle').contentDocument.getElementById('inner').contentDocument.getElementById('plugin'))"> Inner plug-in visibility
+ </td>
+ </tr>
+</table>
+
+<iframe id="middle" style="height: 400px; width: 400px;" src="resources/nested-plug-ins-outer-frame.html"></iframe>
diff --git a/ManualTests/new-window-subresource-crash.html b/ManualTests/new-window-subresource-crash.html
new file mode 100644
index 000000000..b287d9041
--- /dev/null
+++ b/ManualTests/new-window-subresource-crash.html
@@ -0,0 +1,20 @@
+<body onload="test()">
+<script>
+ function test()
+ {
+ var win = window.open("");
+ var doc = win.document;
+ var text = "<html><body><sc" + "ript src='data:text/javascript,'></scr" + "ipt></body></html>";
+ doc.write(text);
+ }
+</script>
+
+<p>This test verifies that document.writing into a newly-opened empty
+window does not cause crashes or assertion failures, even if it
+triggers subresource loads. If you have popup blocking enabled you can
+click the button below to test. The test only works in Safari, because
+it depends on behavior with resource identifiers, which are provided
+by the app.</p>
+
+<button onclick="test()">Crash</button>
+</body>
diff --git a/ManualTests/no-listbox-rendering.html b/ManualTests/no-listbox-rendering.html
new file mode 100644
index 000000000..24336e01c
--- /dev/null
+++ b/ManualTests/no-listbox-rendering.html
@@ -0,0 +1,66 @@
+<html>
+<body>
+<style>
+td {padding: 20px}
+</style>
+<br><br>
+This test just makes sense if webkit was build with NO_LISTBOX_RENDERING enabled.<br><br>
+You should see in the following table three comboboxes and no listboxes.<br><br>
+At the right cell you see a description of what should be the state of the elements just after loading this page.<br><br>
+<form>
+<table border="1">
+ <tr>
+ <td><select><option>1</option><option>2</option></select></td>
+ <td>combobox in previos cell should have option '1' selected.</td>
+ </tr>
+ <tr>
+ <td><select multiple><option>1</option><option>2</option></select></td>
+ <td>combobox in previos cell should have no selected option.</td>
+ </tr>
+ <tr>
+ <td><select size="5"><option>1</option><option>2</option>s</select></td>
+ <td>combobox in previos cell should have no selected option.</td>
+ </tr>
+ <tr>
+ <td>
+ <select multiple>
+ <optgroup label="1"></optgroup>
+ <option>11</option>
+ <option>12</option>
+ <option>13</option>
+ <option>14</option>
+ <optgroup label="2"></optgroup>
+ <option>21</option>
+ <option>22</option>
+ <option>23</option>
+ <option>24</option>
+ </select>
+ </td>
+ <td>combobox in previos cell should handle optgroup correctly.</td>
+ </tr>
+ <tr>
+ <td>
+ <select>
+ <optgroup label="1"></optgroup>
+ <option>11</option>
+ <option>12</option>
+ <option>13</option>
+ <option>14</option>
+ <optgroup label="2"></optgroup>
+ <option>21</option>
+ <option>22</option>
+ <option>23</option>
+ <option>24</option>
+ </select>
+ </td>
+ <td>combobox in previos cell should handle optgroup correctly.</td>
+ </tr>
+ <tr>
+ <td><input type="reset"</td>
+ <td>after pressing this button all the combo boxes should go back to the state discribed above.</td>
+ </tr>
+</table>
+</form>
+</body>
+</html>
+
diff --git a/ManualTests/no-repaint-after-wake-from-sleep.html b/ManualTests/no-repaint-after-wake-from-sleep.html
new file mode 100644
index 000000000..0c0f16153
--- /dev/null
+++ b/ManualTests/no-repaint-after-wake-from-sleep.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>Test for Bug 39139</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="viewport" content="initial-scale=0.60, minimum-scale=0.60, maximum-scale=0.60">
+ <style type="text/css">
+
+ body {
+ font-family: 'Lucida Grande', Verdana, Arial;
+ font-size: 12px;
+ }
+
+ #stage {
+ margin: 150px auto;
+ width: 600px;
+ height: 400px;
+ /*
+
+ Setting the perspective of the contents of the stage
+ but not the stage itself
+
+ */
+ -webkit-perspective: 800;
+ }
+
+ #rotate {
+ margin: 0 auto;
+ width: 600px;
+ height: 400px;
+ /* Ensure that we're in 3D space */
+ -webkit-transform-style: preserve-3d;
+ /*
+ Make the whole set of rows use the x-axis spin animation
+ for a duration of 7 seconds, running infinitely and linearly
+ */
+ -webkit-animation-name: x-spin;
+ -webkit-animation-duration: 7s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-timing-function: linear;
+ }
+
+ .ring {
+ margin: 0 auto;
+ height: 110px;
+ width: 600px;
+ -webkit-transform-style: preserve-3d;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-timing-function: linear;
+ }
+
+ .ring > :nth-child(odd) {
+ background-color: #995C7F;
+ }
+
+ .ring > :nth-child(even) {
+ background-color: #835A99;
+ }
+
+ .poster {
+ position: absolute;
+ left: 250px;
+ width: 100px;
+ height: 100px;
+ opacity: 0.7;
+ color: rgba(0,0,0,0.9);
+ -webkit-border-radius: 10px;
+ }
+
+ .poster > p {
+ font-family: 'Georgia', serif;
+ font-size: 36px;
+ font-weight: bold;
+ text-align: center;
+ margin-top: 28px;
+ }
+
+ /*
+ Set up each row to have a different animation duration
+ and alternating y-axis rotation directions.
+ */
+ #ring-1 {
+ -webkit-animation-name: y-spin;
+ -webkit-animation-duration: 5s;
+ }
+
+ #ring-2 {
+ -webkit-animation-name: back-y-spin;
+ -webkit-animation-duration: 4s;
+ }
+
+ #ring-3 {
+ -webkit-animation-name: y-spin;
+ -webkit-animation-duration: 3s;
+ }
+
+ /*
+
+ Here we define each of the three individual animations that
+ we will be using to have our 3D rotation effect. The first
+ animation will perform a full rotation on the x-axis, we'll
+ use that on the whole set of objects. The second and third
+ animations will perform a full rotation on the y-axis in
+ opposite directions, alternating directions between rows.
+
+ Note that you currently have to specify an intermediate step
+ for rotations even when you are using individual transformation
+ constructs.
+
+ */
+ @-webkit-keyframes x-spin {
+ 0% { -webkit-transform: rotateX(0deg); }
+ 50% { -webkit-transform: rotateX(180deg); }
+ 100% { -webkit-transform: rotateX(360deg); }
+ }
+
+ @-webkit-keyframes y-spin {
+ 0% { -webkit-transform: rotateY(0deg); }
+ 50% { -webkit-transform: rotateY(180deg); }
+ 100% { -webkit-transform: rotateY(360deg); }
+ }
+
+ @-webkit-keyframes back-y-spin {
+ 0% { -webkit-transform: rotateY(360deg); }
+ 50% { -webkit-transform: rotateY(180deg); }
+ 100% { -webkit-transform: rotateY(0deg); }
+ }
+ </style>
+
+ <script type="text/javascript">
+
+ const POSTERS_PER_ROW = 12;
+ const RING_RADIUS = 200;
+
+ function setup_posters (row)
+ {
+ var posterAngle = 360 / POSTERS_PER_ROW;
+ for (var i = 0; i < POSTERS_PER_ROW; i ++) {
+ var poster = document.createElement('div');
+ poster.className = 'poster';
+ // compute and assign the transform for this poster
+ var transform = 'rotateY(' + (posterAngle * i) + 'deg) translateZ(' + RING_RADIUS + 'px)';
+ poster.style.webkitTransform = transform;
+ // setup the number to show inside the poster
+ var content = poster.appendChild(document.createElement('p'));
+ content.textContent = i;
+ // add the poster to the row
+ row.appendChild(poster);
+ }
+
+ }
+
+ function init ()
+ {
+ setup_posters(document.getElementById('ring-1'));
+ setup_posters(document.getElementById('ring-2'));
+ setup_posters(document.getElementById('ring-3'));
+ }
+
+ // call init once the document is fully loaded
+ window.addEventListener('load', init, false);
+
+ </script>
+ </head>
+
+ <body>
+
+ <p>This is a test for <a href="https://bugs.webkit.org/show_bug.cgi?id=39139">Bug 39139: Pages
+ that use hardware acceleration don't repaint after waking computer from sleep</a>. To test, put
+ your computer to sleep (or "Standby", as Windows calls it). When you wake your computer up, the
+ animation below should still be running.</p>
+ <div id="stage">
+ <div id="rotate">
+ <div id="ring-1" class="ring"></div>
+ <div id="ring-2" class="ring"></div>
+ <div id="ring-3" class="ring"></div>
+ </div>
+ </div>
+
+ </body>
+
+</html>
diff --git a/ManualTests/non-bmp.html b/ManualTests/non-bmp.html
new file mode 100644
index 000000000..e7cc581db
--- /dev/null
+++ b/ManualTests/non-bmp.html
@@ -0,0 +1,12 @@
+<html>
+<head>
+<title>Bug 25657 : Non-BMP characters</title>
+</head>
+<body>
+Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=25657">bug 25657</a> :
+Listed below are Mathematical Bold Capital A through E (U+1D400 .. U+1D404). Note that you need to install a font covering Plane 1 like Code2001 for this test.
+<div>
+&#x1d400;&#x1d401;&#x1d402;&#x1d403;&#x1d404;
+</div>
+</body>
+</html>
diff --git a/ManualTests/onbeforeunload-close_with_javascript.html b/ManualTests/onbeforeunload-close_with_javascript.html
new file mode 100644
index 000000000..525f8f1c4
--- /dev/null
+++ b/ManualTests/onbeforeunload-close_with_javascript.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<script language="JavaScript">
+function openWindow() {
+ window.open("./onbeforeunload-close_with_javascript.html","name","width=700px,height=500px");
+}
+</script>
+</head>
+<BODY onbeforeunload="return 'onBeforeUnloadHandler return string is displayed here.';">
+<p><b>BUG ID:</b> <a href="rdar://problem/4394910">4394910</a> calling Javascript window.close() does not trigger onbeforeunload event</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+ <ol>
+ <li>Click the "Open" button below.
+ <li>In the window that opens, click the "Close" button.
+ </ol>
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+After the close button is clicked, you should see a dialog that reads:</p>
+<pre>Are you sure you want to navigate away from this page?
+
+onBeforeUnloadHandler return string is displayed here.
+
+Press OK to continue or Cancel to stay on the current page.</pre>
+<p id="success" style="background-color:palegreen; padding:3px;">You should see the same dialog if you click the "Close" button in the main window.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+No dialog (as described above) after clicking the "Close" button in the newly opened window, or in the main window.
+</p>
+
+<BODY onbeforeunload="return 'onBeforeUnloadHandler return string is displayed here.';">
+<input type=button value="Open Window" onclick="openWindow()"><br>
+<input type=button value="Close Window" onclick="window.close();"><br>
+<p>Click the Open Window button. Once the new window is opened, close the new window by clicking the Close Window button (not the browser's close window icon).</p>
+</body>
+</html>
diff --git a/ManualTests/onclick_in_noncontent.html b/ManualTests/onclick_in_noncontent.html
new file mode 100644
index 000000000..9c1467450
--- /dev/null
+++ b/ManualTests/onclick_in_noncontent.html
@@ -0,0 +1,19 @@
+<html>
+<head>
+<script>
+function displayAlert(element)
+{
+ alert('You clicked '+element.nodeName);
+}
+</script>
+</head>
+<body>
+ <table style="width:100px;height:100px;border:inset">
+ <tr>
+ <td onclick="displayAlert(this)">Content.</td>
+ </tr>
+ </table>
+ <p>Click anywhere inside the table element and you should get an alert telling you so.</p>
+ <p>Bugzilla 3662 was that clicking in non-content did not fire onclick handler.</p>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/onfocus-alert-blinking-caret.html b/ManualTests/onfocus-alert-blinking-caret.html
new file mode 100644
index 000000000..26b9812d3
--- /dev/null
+++ b/ManualTests/onfocus-alert-blinking-caret.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+
+<body>
+Focus the field below, then dismiss the alert. The field should retain the focus,
+and the caret in the field should blink.
+<br>
+<input onfocus="alert('Test');">
+</body>
diff --git a/ManualTests/onsearch-enter.html b/ManualTests/onsearch-enter.html
new file mode 100644
index 000000000..e6e15fea9
--- /dev/null
+++ b/ManualTests/onsearch-enter.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+ <input type="search" value="test" onsearch="document.getElementById('result').innerHTML='SUCCESS'">
+ <p>This tests that onsearch handlers for search fields are invoked correctly when pressing enter. To test this in Safari, focus the search field and press enter. The text below should change to SUCCESS.</p>
+ <div id="result">FAILURE</div>
+</body>
+</html>
diff --git a/ManualTests/onunload-form-submit-crash.html b/ManualTests/onunload-form-submit-crash.html
new file mode 100644
index 000000000..1813e3fd4
--- /dev/null
+++ b/ManualTests/onunload-form-submit-crash.html
@@ -0,0 +1,9 @@
+<html>
+<body onUnload="document.myForm.submit()">
+<a href="" onClick="location.href=location.href; return false;">Click here and see if Safari crashes.</a>
+<p>Still with me? Now close the window and see if Safari crashes.</p>
+<form name="myForm">
+</form>
+</body>
+<html>
+
diff --git a/ManualTests/open-after-close.html b/ManualTests/open-after-close.html
new file mode 100644
index 000000000..4fcf5d239
--- /dev/null
+++ b/ManualTests/open-after-close.html
@@ -0,0 +1,16 @@
+<html>
+<script>
+ var url = "resources/open-after-close-popup.html";
+
+ function test() {
+ var w = window.open(url, 'popup', "height=200, width=200, top=100, left=100");
+ w.close();
+ window.open(url, 'popup', "height=200, width=200, top=100, left=100");
+ }
+</script>
+<body onload="test()">
+<p>This test checks for a regression against rdar://problem/3572585: window.open fails if name param = the name of a window just closed in same function.</p>
+<p>If the test passes, you will see a "PASS" message open in a new window.</p>
+<hr>
+</body>
+</html>
diff --git a/ManualTests/open-close-tokenizer-crash.html b/ManualTests/open-close-tokenizer-crash.html
new file mode 100644
index 000000000..d108cf86e
--- /dev/null
+++ b/ManualTests/open-close-tokenizer-crash.html
@@ -0,0 +1,6 @@
+<html>
+ <body>
+ <input type="button" value="Click Here" onclick="window.open('resources/open-close-tokenizer-crash.html', 'foo');">
+ Click the button above. Another browser window should open and then immediately close without crashing.
+ </body>
+</html>
diff --git a/ManualTests/open-url-undefined.html b/ManualTests/open-url-undefined.html
new file mode 100644
index 000000000..2f725d5d9
--- /dev/null
+++ b/ManualTests/open-url-undefined.html
@@ -0,0 +1,11 @@
+<body>
+ <p>
+ Tests that <code>window.open()</code> does not interpret the missing URL
+ argument as the literal string &ldquo;undefined&rdquo;.
+ </p>
+ <p>
+ Click the Test button. A new window should open. To pass the test, the address
+ bar of the new window should be empty. If it contains a URL (ending with &ldquo;undefined&rdquo;), WebKit failed the test.
+ </p>
+ <button onclick="window.open()">Test</button>
+</body>
diff --git a/ManualTests/optgroup-empty-and-nested.html b/ManualTests/optgroup-empty-and-nested.html
new file mode 100644
index 000000000..6aa3e7b6b
--- /dev/null
+++ b/ManualTests/optgroup-empty-and-nested.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+ <title>Empty and nested optgroup elements</title>
+</head>
+
+<body>
+
+<select>
+ <!-- A div here is invalid. However, both IE and Firefox will walk into it
+ and enumerate the elements inside. -->
+ <div>
+ <option value="1">Item one</option>
+
+ <!-- this group has no children. We /should/ render it because that matches
+ IE and FireFox. -->
+ <optgroup label="Group one"></optgroup>
+
+ <!-- this group has a text node child. It should render the same as group one. -->
+ <optgroup label="Group two"> </optgroup>
+
+ <!-- for an optgroup without a label, IE will show an empty, unselectable row.
+ Firefox doesn't show it. We /do/ show it because someone might be using
+ it as a spacer. -->
+ <!-- Additionally, this has been updated to test the crash fixed in
+ https://bugs.webkit.org/show_bug.cgi?id=26656. When setting the
+ font-size in the <optgroup> to extra large, opening the select element
+ must not leave any unpainted areas of overlapping text. -->
+ <optgroup style="font-size: x-large;">
+ <option value="2">Item inside an optgroup without a label</option>
+ </optgroup>
+
+ <!-- for an optgroup with an empty label, IE will show an empty,
+ unselectable row. Firefox doesn't show it. We /do/ show it because
+ someone might be using it as a spacer. -->
+ <optgroup label="">
+ <option value="3">Item inside an optgroup with an empty label</option>
+ </optgroup>
+
+ <div>
+ <option value="4"></option>
+ <optgroup label="Group three">
+ <option value="5">Item two</option>
+ <!-- nested groups are disallowed by the spec, but IE and Firefox will
+ flatten the tree. We should match them. -->
+ <optgroup label="Nested group 1"></optgroup>
+ <optgroup label="Nested group 2">
+ <optgroup label="Nested group 3">
+ <option value="6">Item three</option>
+ </optgroup>
+ </optgroup>
+ </optgroup>
+ </div>
+ <option value="7">Item four</option>
+ </div>
+</select>
+
+<p>Click on the select element above. When it drops down you should see the following items in the list:</p>
+
+<ul>
+ <li>Item one</li>
+ <li><b>Group one</b></li>
+ <li><b>Group two</b></li>
+ <li><i>(unselectable, empty row)</i></li>
+ <li>Item inside an optgroup without a label</li>
+ <li><i>(unselectable, empty row)</i></li>
+ <li>Item inside an optgroup with an empty label</li>
+ <li><i>(selectable, empty row)</i></li>
+ <li><b>Group three</b></li>
+ <li>Item two</li>
+ <li><b>Nested group 1</b></li>
+ <li><b>Nested group 2</b></li>
+ <li><b>Nested group 3</b></li>
+ <li>Item three</li>
+ <li>Item four</li>
+</ul>
+
+<p>The text of the rows of the dropdown must not overlap each other.</p>
+
+</body>
+</html>
diff --git a/ManualTests/overlappingTableSpans.html b/ManualTests/overlappingTableSpans.html
new file mode 100644
index 000000000..861606adb
--- /dev/null
+++ b/ManualTests/overlappingTableSpans.html
@@ -0,0 +1,27 @@
+<html>
+ <body>
+ <table>
+ <tr>
+ <td width='1'></td>
+ </tr>
+ <tr>
+ <td colspan='2' rowspan='2'></td>
+ </tr>
+ <tr>
+ <td rowspan='2'></td>
+ </tr>
+ <tr>
+ <td colspan='2'>
+ <table>
+ <tr>
+ <td></td>
+ <td>
+ <input type='text' />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html> \ No newline at end of file
diff --git a/ManualTests/paint-during-plugin-attach.html b/ManualTests/paint-during-plugin-attach.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/ManualTests/paint-during-plugin-attach.html
diff --git a/ManualTests/panScroll.html b/ManualTests/panScroll.html
new file mode 100644
index 000000000..726755b1a
--- /dev/null
+++ b/ManualTests/panScroll.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+ <p><b>BUG ID:</b> <a href="https://bugs.webkit.org/show_bug.cgi?id=16424">Bugzilla Bug 16424</a> Enable auto-scroll in page by mouse middle click</p>
+
+ <p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+ For each iframe : Middle-click within the iframe and then move your mouse.</p>
+
+ <p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+ For each iframe (except the 6th one which explicitly refuses scroll), you should see the scroll bars follow your moves and even reach the end of the page included in the iframe. You should also see an 4 arrow designed icon on the initial click location.
+ </p>
+
+ <p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+ The scroll doesn't follow the mouse moves or doesn't get activated (except the 6th one which explicitly refuses scroll).
+ </p>
+
+ <div style="height=2000px;width=2000px">
+ <iframe src="resources/big-page.html"></iframe>
+ <iframe src="resources/big-page.html" scrolling></iframe>
+ <iframe src="resources/big-page.html" scrolling=""></iframe>
+ <iframe src="resources/big-page.html" scrolling="auto"></iframe>
+ <iframe src="resources/big-page.html" scrolling="yes"></iframe>
+ <iframe src="resources/big-page.html" scrolling="no"></iframe>
+ <iframe src="resources/big-page.html" scrolling="bogus"></iframe>
+ <iframe src="resources/big-page.html" scrolling="1234"></iframe>
+ </div>
+
+ </body>
+ </html>
diff --git a/ManualTests/partially-opaque-form-elements.html b/ManualTests/partially-opaque-form-elements.html
new file mode 100644
index 000000000..b525c642d
--- /dev/null
+++ b/ManualTests/partially-opaque-form-elements.html
@@ -0,0 +1,27 @@
+<html>
+<style>
+ body { opacity: 0.5; }
+</style>
+<body>
+<p><b>BUG ID:</b> <a href="https://bugs.webkit.org/show_bug.cgi?id=41113">Bugzilla bug 41113</a> [WinCairo] Text box backgrounds do not render in partially opaque layers</p>
+
+<div style="background-color:skyblue; padding:3px;">
+In the next paragraph you should see a partially opaque sequence including:
+<ol>
+<li>The word "Before"</li>
+<li>A checkbox</li>
+<li>A radio button</li>
+<li>The world "After"</li>
+</ol>
+If this test is failing you might only see the word "Before."
+</div>
+
+<p>
+Before
+<input value="Checkbox" type="checkbox">
+<input value="Radio" type="radio">
+After
+</p>
+
+</body>
+</html>
diff --git a/ManualTests/partially-opaque-text-input.html b/ManualTests/partially-opaque-text-input.html
new file mode 100644
index 000000000..bef147edc
--- /dev/null
+++ b/ManualTests/partially-opaque-text-input.html
@@ -0,0 +1,25 @@
+<html>
+<style>
+ body { opacity: 0.5; }
+</style>
+<body>
+<p><b>BUG ID:</b> <a href="https://bugs.webkit.org/show_bug.cgi?id=41113">Bugzilla bug 41113</a> [WinCairo] Text box backgrounds do not render in partially opaque layers</p>
+
+<div style="background-color:skyblue; padding:3px;">
+In the next paragraph you should see a partially opaque sequence including:
+<ol>
+<li>The word "Before"</li>
+<li>A text box</li>
+<li>The world "After"</li>
+</ol>
+If this test is failing you will not see the text box border.
+</div>
+
+<p>
+Before
+<input type="text"/>
+After
+</p>
+
+</body>
+</html>
diff --git a/ManualTests/password-caps-lock.html b/ManualTests/password-caps-lock.html
new file mode 100644
index 000000000..d63e4333d
--- /dev/null
+++ b/ManualTests/password-caps-lock.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body onload="document.getElementById('tf').focus()">
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=10577">10577</a> Caps lock icon should show in password fields</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Press the caps lock key.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Verify that the caps lock indicator icon is drawn in the password field. Verify that when you open a new window, the password field in the background window no longer has an indicator.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+If there is no caps lock indicator, or if the indicator remains when the window is inactive, the test has failed.
+</p>
+
+<input type="password" id="tf">
+
+</body>
+</html>
diff --git a/ManualTests/password-ctrl-click-lose-focus.html b/ManualTests/password-ctrl-click-lose-focus.html
new file mode 100644
index 000000000..26cfbc41b
--- /dev/null
+++ b/ManualTests/password-ctrl-click-lose-focus.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4604703">4604703</a> REGRESSION (NativeTextField): Focus is not removed from password field after I ctrl-click into a different field</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+<br>1) Make a selection in the password field
+<br>2) Ctrl-click in the text field</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+After ctrl-clicking in the text field, the password field should lose focus, and its selection should be cleared.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+After ctrl-clicking in the text field, if the password field still has a selection, the test has failed.
+</p>
+<br><input type="text" value="Ctrl-Click in this field. Test passes if the password field no longer has a selection." size=100></input>
+<br><input type="password" id="pass" value="12345"></input>
+</body>
+</html>
diff --git a/ManualTests/paste-crash.html b/ManualTests/paste-crash.html
new file mode 100644
index 000000000..b88af1dc0
--- /dev/null
+++ b/ManualTests/paste-crash.html
@@ -0,0 +1,26 @@
+<HTML><BODY>
+ <p>This test checks for a regression against.</p>
+ <p>To run the test:</p>
+ <ol>
+ <li>Select All
+ <li>Copy
+ <li>Paste into Blot
+ </ol>
+ <p>If you don't crash, you pass.</p>
+ <hr>
+ <iframe style="color: red"></iframe>
+ <iframe src=""></iframe>
+</BODY></HTML>
+<HTML><BODY>
+ <p>This test checks for a regression against.</p>
+ <p>To run the test:</p>
+ <ol>
+ <li>Select All
+ <li>Copy
+ <li>Paste into Blot
+ </ol>
+ <p>If you don't crash, you pass.</p>
+ <hr>
+ <iframe style="color: red"></iframe>
+ <iframe src=""></iframe>
+</BODY></HTML>
diff --git a/ManualTests/plain-text-paste.html b/ManualTests/plain-text-paste.html
new file mode 100644
index 000000000..89ef45141
--- /dev/null
+++ b/ManualTests/plain-text-paste.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8276">Bugzilla bug 8276</a> REGRESSION (NativeTextField): Pasting a Finder item into a text field results in a file: URL being pasted instead of just the file name
+<br><i>and</i><br> <b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8283">Bugzilla bug 8283</a> REGRESSION: File's path doesn't appear after dragging file into input field</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b><br>
+1. Double-click <a href="resources/plain-text-paste.dmg">this disk image</a> in the Finder.<br>
+2. Drag each item from the Finder window into the corresponding field below.<br>
+3. Select item 5 in the Finder window and choose Copy &ldquo;5&rdquo; from the Finder&rsquo;s Edit menu.<br>
+4. Back in Safari, click inside the &ldquo;Paste item 5 here&rdquo; field and choose Paste from the Edit menu.<br>
+5. Eject the disk image.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The fields&rsquo; contents will match the Expected Contents.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+The fields&rsquo; contents will NOT match the Expected Contents.
+</p>
+Plain text clipping
+<table cellspacing="0" cellpadding="5">
+ <col><col style="background: #ffc;">
+ <tr>
+ <td></td>
+ <td><b>Expected Contents</b></td>
+ </tr>
+ <tr>
+ <td>Drag item 1 here: <input></td>
+ <td>Plain text clipping</td>
+ </tr>
+ <tr>
+ <td>Drag item 2 here: <input></td>
+ <td>Styled text clipping</td>
+ </tr>
+ <tr>
+ <td>Drag item 3 here: <input></td>
+ <td><i>full path to 3.gif, starting with a / character</i></td>
+ </tr>
+ <tr>
+ <td>Drag item 4 here: <input></td>
+ <td><i>full path to 4.txt, starting with a / character</i></td>
+ </tr>
+ <tr>
+ <td>Drag item 5 here: <input></td>
+ <td>http://www.ibm.com/</td>
+ </tr>
+ <tr>
+ <td>Paste item 5 here: <input></td>
+ <td>5</td>
+ </tr>
+</body>
+</html>
diff --git a/ManualTests/plug-in-mutates-NSView-hierarchy-during-resize.html b/ManualTests/plug-in-mutates-NSView-hierarchy-during-resize.html
new file mode 100644
index 000000000..e43e0748f
--- /dev/null
+++ b/ManualTests/plug-in-mutates-NSView-hierarchy-during-resize.html
@@ -0,0 +1,37 @@
+<style>
+ div { padding: 10px; margin: 8px; }
+ embed { width: 50px; height: 50px; }
+ iframe { width: 50px; height: 50px; }
+</style>
+<script>
+ var callCount = 0;
+
+ function hideFirst()
+ {
+ if (++callCount != 2)
+ return;
+
+ var target = document.getElementById("target");
+ if (!target)
+ return;
+
+ target.parentNode.removeChild(target);
+ document.body.offsetTop;
+ }
+</script>
+<p>
+ Test that plug-ins cannot cause the NSView hierarchy to change beneath <tt>-[NSView _invalidateGStatesForTree]</tt>.
+</p>
+<p>
+ To test, resize the browser window. Reload and repeat a few times. Each time you resize, the orange rectangle and
+ its contents should vanish, and the browser should not crash.
+</p>
+<div id="target" style="border: solid orange;">
+ <embed type="application/x-webkit-test-netscape"></embed>
+ <iframe src=""></iframe>
+ <iframe src=""></iframe>
+ <iframe src=""></iframe>
+</div>
+<div style="border: solid blue;">
+ <embed type="application/x-webkit-test-netscape" onsetwindow="hideFirst()"></embed>
+</div>
diff --git a/ManualTests/plugin-controller-datasource.html b/ManualTests/plugin-controller-datasource.html
new file mode 100644
index 000000000..6a70bf77e
--- /dev/null
+++ b/ManualTests/plugin-controller-datasource.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8658">Bugzilla bug 8658</a> Assertion failure in -[WebPluginContainerCheck _isForbiddenFileLoad] (bridge is null) when clicking QuickTime object with href</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Click the small orange square below.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+QuickTime Player will open <i>orange.mov</i>.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Nothing will happen in response to clicking the orange square.
+</p>
+
+<EMBED id="e" src="resources/orange.mov" width="15" height="15" controller="false" href="#" target="QuickTimePlayer"></EMBED>
+</body>
+</html>
diff --git a/ManualTests/plugin-in-iframe-scroll.html b/ManualTests/plugin-in-iframe-scroll.html
new file mode 100644
index 000000000..182c43c1a
--- /dev/null
+++ b/ManualTests/plugin-in-iframe-scroll.html
@@ -0,0 +1,7 @@
+<p>This test requires that accelerated compositing be disabled. Please scroll down to the bottom.</p>
+<p>Both squares should be orange, with no red visible at any time.</p>
+<iframe src="resources/plugin-in-iframe-scroll-iframe.html" width="300" height="300" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" style="border:1px"></iframe>
+
+<div style="height:1000px">&nbsp;</div>
+<iframe src="resources/plugin-in-iframe-scroll-iframe.html" width="300" height="300" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" style="border:1px"></iframe>
+<div style="height:1000px">&nbsp;</div>
diff --git a/ManualTests/plugin-visible-rect-change.html b/ManualTests/plugin-visible-rect-change.html
new file mode 100644
index 000000000..3fe12e953
--- /dev/null
+++ b/ManualTests/plugin-visible-rect-change.html
@@ -0,0 +1,25 @@
+<p>
+ This test requires that accelerated compositing be disabled. Clicking the Test button should completely reveal the black-bordered box.
+ The orange video should completely fill the box, with the controller visible and touching the bottom of the box. There should be
+ not be any red visible.
+</p>
+<p>
+ <button onclick="test()">Test</button>
+</p>
+<div style="overflow: hidden; border: solid blue; position: relative;">
+ <div style="height: 100px; padding: 0 8px;">
+ </div>
+ <object type="video/quicktime" style="background-color: red; width: 300px; height: 241px; position: absolute; top: 50px; left: 40px; border: solid black;">
+ <param name="src" value="resources/orange.mov">
+ <param name="controller" value="true">
+ <param name="autoplay" value="false">
+ <param name="scale" value="tofit">
+ </object>
+ <div id="target"></div>
+ <script>
+ function test()
+ {
+ document.getElementById("target").style.height = "500px";
+ }
+ </script>
+</div>
diff --git a/ManualTests/plugins/flip4mac-update-alert-over-navigation.html b/ManualTests/plugins/flip4mac-update-alert-over-navigation.html
new file mode 100644
index 000000000..23917170c
--- /dev/null
+++ b/ManualTests/plugins/flip4mac-update-alert-over-navigation.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+ <title>Test case for &lt;rdar://problem/7313430&gt; Many crashes in Safari inside Flip4Mac below -[NSAlert didEndAlert:returnCode:contextInfo:]</title>
+</head>
+<body>
+ <h1>Test case for &lt;<a href='rdar://problem/7313430'>rdar://problem/7313430</a>&gt; Many crashes in Safari inside Flip4Mac below -[NSAlert didEndAlert:returnCode:contextInfo:]</h1>
+
+ <p>This test requires Flip4Mac to be installed and an update to be available for the version that is installed. Previous versions
+ of Flip4Mac can be downloaded from <a href='http://dynamic.telestream.net/downloads/download-flip4macwmv.htm'>Telestream's website</a>.
+ As of the writing of this test on 2010-04-21 the latest available version of Flip4Mac is 2.3.2.6. The prior version to that,
+ version 2.3.1.2, is therefore currently the most recent version that will reproduce this bug due to it being the most recent version
+ with an update available.
+ </p>
+
+ <p>Once Flip4Mac is installed, you can test the bug by doing the following.</p>
+ <ol>
+ <li>Launch the browser with <code>NSZombieEnabled=YES</code> and <code>NSDeallocateZombies=NO</code> set in the enrivonment.</li>
+ <li>Load this page. A Flip4Mac update alert will be displayed, and soon after the page will navigate.</li>
+ <li>After the new page has loaded click the "Cancel" button on the update alert.The browser should not crash.</li>
+ </ol>
+
+ <p>If you have the correct version of Flip4Mac installed but do not see the update alert displayed when loading this page then you may need to delete
+ the Flip4Mac preferences to force it to check for updates. You can do this by removing <code>~/Library/Preferences/net.telestream.wmv.*</code>
+ and then relaunching the browser.</p>
+
+ <object type="application/asx"></object>
+
+ <script>window.setTimeout(function() { window.location = "data:text/html,If the browser does not crash when you click 'Cancel' in the Flip4Mac update alert sheet then the bug is not present."; }, 10000)</script>
+</body>
+</html>
diff --git a/ManualTests/plugins/gtk-windowed-grey-glitch.html b/ManualTests/plugins/gtk-windowed-grey-glitch.html
new file mode 100644
index 000000000..73975eb31
--- /dev/null
+++ b/ManualTests/plugins/gtk-windowed-grey-glitch.html
@@ -0,0 +1,20 @@
+<html>
+<script type="text/javascript">
+ function openFullScreenFlash() {
+ window.open("test.swf","","width=200,height=200");
+ }
+</script>
+<head>
+ <title>Test grey glitch with fullscreen Flash animation (but 47742)</title>
+</head>
+<body>
+ <p>This manual test is used to test <a href="https://bugs.webkit.org/show_bug.cgi?id=47742">bug 47742</a>.</p>
+ <ul>
+ <li>1. Click on the button to open popup with full screen flash animation.</li>
+ <li>2. Make sure the popup content is not grey.</li>
+ <li>3. Resize the popup. </li>
+ <li>4. Make sure the resize does not produce grey flash (especially when scaling down).</li>
+ </ul>
+ <input type="button" value="Open fullscreen Flash" onclick="openFullScreenFlash();"/>
+</body>
+</html>
diff --git a/ManualTests/plugins/object-clipping.html b/ManualTests/plugins/object-clipping.html
new file mode 100644
index 000000000..6db3fc5c0
--- /dev/null
+++ b/ManualTests/plugins/object-clipping.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <title>clipping objects</title>
+ <style type="text/css" media="screen">
+ object {
+ margin: 30px;
+ border: 20px solid green;
+ }
+ </style>
+</head>
+<body>
+ <p>You should see a clipped video surrounded by a thick green border.</p>
+ <p><a href="https://bugs.webkit.org/show_bug.cgi?id=35555">https://bugs.webkit.org/show_bug.cgi?id=35555</a></p>
+ <object type="video/quicktime" data="../../../../LayoutTests/media/content/test.mp4" width="200" height="150">
+ <param value="false" name="autoplay">
+ <param value="false" name="controller">
+ </object>
+
+</body>
+</html>
diff --git a/ManualTests/plugins/plugin-paint-causes-layout.html b/ManualTests/plugins/plugin-paint-causes-layout.html
new file mode 100644
index 000000000..4781c7ed6
--- /dev/null
+++ b/ManualTests/plugins/plugin-paint-causes-layout.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style type="text/css" media="screen">
+ embed {
+ position: absolute;
+ margin: 10px;
+ }
+
+ .container {
+ position: relative;
+ border: 2px solid blue;
+ padding: 20px;
+ width: 100px;
+ }
+
+ </style>
+ <script type="text/javascript" charset="utf-8">
+ function hideFirst()
+ {
+ var firstDiv = document.getElementById('first');
+ if (!firstDiv)
+ return;
+
+ firstDiv.parentNode.removeChild(firstDiv);
+ document.body.clientWidth;
+ }
+ </script>
+</head>
+<body>
+ <embed type="application/x-webkit-test-netscape" onpaintevent="hideFirst()" drawingmodel="coreanimation"></embed>
+
+ <p>This test should not assert or crash when loaded in Safari, when Safari captures a snapshot.</p>
+ <div id="first" class="container">
+ </div>
+
+</body>
+</html>
diff --git a/ManualTests/plugins/test.swf b/ManualTests/plugins/test.swf
new file mode 100644
index 000000000..895298271
--- /dev/null
+++ b/ManualTests/plugins/test.swf
Binary files differ
diff --git a/ManualTests/plugins/timeout-dialog-displayed-over-navigation.html b/ManualTests/plugins/timeout-dialog-displayed-over-navigation.html
new file mode 100644
index 000000000..53fc1b7c5
--- /dev/null
+++ b/ManualTests/plugins/timeout-dialog-displayed-over-navigation.html
@@ -0,0 +1,25 @@
+<html>
+<head>
+ <title>Test case for &lt;rdar://problem/7856151&gt; REGRESSION: NPP_Destroy is not called when page navigates when plug-in is displaying modal dialog</title>
+
+ <meta http-equiv="refresh" content="3; data:text/html,If we did not crash or hang and there is no Adobe Flash dialog on screen then this test was a success.<p><a href='javascript:history.back();'>Run again</a>.</p><p><a href='rdar://problem/7856151'>&amp;lt;rdar://problem/7856151&amp;gt;</a>.</p>">
+</head>
+<body>
+ <h1>Test case for &lt;<a href='rdar://problem/7856151'>rdar://problem/7856151</a>&gt; REGRESSION: NPP_Destroy is not called when page navigates when plug-in is displaying modal dialog</h1>
+
+ <p>This page loads some Adobe Flash content that results in the Flash Player plug-in displaying a modal alert window. The page then triggers
+ a navigation while this alert is on-screen. After the navigation completes the Flash Player plug-in's modal alert should no longer be
+ visible on-screen and the plug-in host and browser application should not crash.
+ </p>
+
+ <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="550" height="400" align="middle">
+ <param name="allowScriptAccess" value="sameDomain">
+ <param name="allowFullScreen" value="false">
+ <param name="movie" value="timeout-dialog-displayed-over-navigation.swf">
+ <param name="quality" value="high">
+ <param name="bgcolor" value="#ffffff">
+ <embed src="timeout-dialog-displayed-over-navigation.swf" quality="high" bgcolor="#ffffff" width="550" height="400" align="middle"
+ allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer">
+ </object>
+</body>
+</html>
diff --git a/ManualTests/plugins/timeout-dialog-displayed-over-navigation.swf b/ManualTests/plugins/timeout-dialog-displayed-over-navigation.swf
new file mode 100644
index 000000000..7e7c3d9db
--- /dev/null
+++ b/ManualTests/plugins/timeout-dialog-displayed-over-navigation.swf
Binary files differ
diff --git a/ManualTests/plugins/windowed-in-iframe-2.html b/ManualTests/plugins/windowed-in-iframe-2.html
new file mode 100644
index 000000000..b1188e04c
--- /dev/null
+++ b/ManualTests/plugins/windowed-in-iframe-2.html
@@ -0,0 +1,26 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Flash In IFrame Test File</title>
+</head>
+
+<body>
+
+ <b> This manual tests clipping and translation of plugin loaded as the src of an iframe
+ inside a div with auto overflow. The flash in the middle of this page should be clipped
+ to the size of the div and should scroll properly when scrolling the main frame as well
+ as the div itself. This was a problem for GTK+ in
+ <a href="https://bugs.webkit.org/show_bug.cgi?id=57644">bug 57644</a>.
+ </b>
+ <div style="height:300px;">&nbsp;</div>
+ <div style="width: 500px; height: 300px; overflow: auto;">
+ <div style="height:100px;">&nbsp;</div>
+ <iframe width="600" height="368" src="test.swf" frameborder="0" allowfullscreen></iframe>
+ <div style="height:100px;">&nbsp;</div>
+ </div>
+ <div style="height:300px;">&nbsp;</div>
+<br clear="all">
+</body>
+
+</html>
diff --git a/ManualTests/plugins/windowed-in-iframe.html b/ManualTests/plugins/windowed-in-iframe.html
new file mode 100644
index 000000000..fdb937c86
--- /dev/null
+++ b/ManualTests/plugins/windowed-in-iframe.html
@@ -0,0 +1,21 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Flash In IFrame Test File</title>
+</head>
+
+<body>
+
+ <b> This manual tests verifies that when a plugin is loaded as the src of an iframe
+ and that iframe is outside of the viewport of the page, the plugin does not appear
+ in the upper left of the frame. When this page loads you should not see the Flash movie.
+ It should be shown only after you scroll to the bottom of the page. This was a problem for
+ GTK+ in <a href="https://bugs.webkit.org/show_bug.cgi?id=37769">bug 37769</a></b> <br/><br/>
+ <div style="height:2000px;">&nbsp;</div>
+
+ <iframe width="600" height="368" src="test.swf" frameborder="0" allowfullscreen></iframe>
+<br clear="all">
+</body>
+
+</html>
diff --git a/ManualTests/plugins/windowed.html b/ManualTests/plugins/windowed.html
new file mode 100644
index 000000000..56a02f413
--- /dev/null
+++ b/ManualTests/plugins/windowed.html
@@ -0,0 +1,109 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Transparent Flash Test File</title>
+<style>
+ #overlayDiv {
+ position: relative;
+ color: white;
+ background: black;
+ top: 50px;
+ left: -50px;
+ width: 200px;
+ opacity: 0.6;
+ float: left;
+ z-index: 1;
+ display: none;
+ }
+ embed {
+ float: left;
+ -webkit-transition: -webkit-transform 3s ease-in;
+ }
+</style>
+<script>
+ function testVisibility() {
+ var flashPlugin = document.getElementById('flashPlugin');
+ if (flashPlugin.style.display == 'none') {
+ flashPlugin.style.display = 'block';
+ } else {
+ flashPlugin.style.display = 'none';
+ }
+ }
+
+ function testResize() {
+ var flashPlugin = document.getElementById('flashPlugin');
+ flashPlugin.width = flashPlugin.width == "200" ? "100" : "200";
+ flashPlugin.height = flashPlugin.height == "200" ? "100" : "200";
+ }
+
+ function testMove() {
+ var flashPlugin = document.getElementById('flashPlugin');
+ var t = parseInt(flashPlugin.style.top);
+ flashPlugin.style['padding-left'] = "100px";
+ }
+
+ function testAnimation() {
+ var flashPlugin = document.getElementById('flashPlugin');
+ flashPlugin.style.webkitTransform='rotate(180deg)';
+ }
+
+ function toggleDivOverFlash() {
+ var overlayDiv = document.getElementById('overlayDiv');
+ if (overlayDiv.style.display != 'block') {
+ overlayDiv.style.display = 'block';
+ } else {
+ overlayDiv.style.display = '';
+ }
+ }
+</script>
+</head>
+
+<body>
+
+ <b> Verify the following tests with and without the page scrolled (including seeming unrelated test cases like printing). <br/>
+ For the Qt port, test with QGraphicsView enabled and disabled</b> <br/><br/>
+
+ <!-- <embed id="flashPlugin" src="http://www.youtube.com/v/loXfcsXRB-w&#038;hl=en&#038;fs=1" --!>
+ <embed id="flashPlugin" src="test.swf"
+ width="200" height="200"
+ type="application/x-shockwave-flash">
+ </embed>
+
+ <div id="overlayDiv"> This is an overlay that will display over the flash. In addition, you should be able to see
+ the flash through the div contents. </div>
+
+ <div style="clear:both"/>
+
+ <input type="checkbox" name="visibilityCheckBox"> Verify if the flash toggles visibility
+ <input type="button" id="visibilityButton" value="Test Visibility" onClick="testVisibility()"/><br/>
+
+ <input type="checkbox" name="resizeCheckBox"> Verify if the flash resizes when element is resized
+ <input type="button" id="resizeButton" value="Test Resize" onClick="testResize()"/><br/>
+
+ <input type="checkbox" name="moveCheckBox"> Verify if the flash moves when element is moved
+ <input type="button" id="moveButton" value="Test Move" onClick="testMove()"/><br/>
+
+ <input type="checkbox" name="animationCheckBox"> Verify css animations with flash
+ <input type="button" id="animationButton" value="Test Animation" onClick="testAnimation()"/><br/>
+
+ <input type="checkbox" name="printCheckBox"> Verify if printing displays flash on the print preview and printer output <br/>
+
+ <input type="checkbox" name="zoomCheckBox"> Verify if elements in flash are correctly painted and clickable after zooming <br/>
+
+ <input type="checkbox" name="screenshotBox"> Verify if taking a screenshot from QtTestBrowser displays flash <br/>
+
+ <input type="checkbox" name="paintSystemsCheckBox"> Verify if flash is displayed with graphicssystems - raster, opengl <br/>
+
+ <input type="checkbox" name="focusCheckBox"> Verify if shifting focus back and forth from flash to html works
+ <input value="Shift focus here"/></br/>
+
+ <input type="checkbox" name="testZIndex"> Test if html can display over flash
+ <input type="button" value="Toggle transparent div" onClick="toggleDivOverFlash()"<br/>
+
+ <input type="checkbox" name="testZIndex"> Test opaque mode by setting wmode to opaque <br/>
+
+ <br/>
+</body>
+
+</html>
diff --git a/ManualTests/plugins/windowless.html b/ManualTests/plugins/windowless.html
new file mode 100644
index 000000000..27e8a820c
--- /dev/null
+++ b/ManualTests/plugins/windowless.html
@@ -0,0 +1,108 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Transparent Flash Test File</title>
+<style>
+ #overlayDiv {
+ position: relative;
+ color: white;
+ background: black;
+ top: 50px;
+ left: -50px;
+ width: 200px;
+ opacity: 0.6;
+ float: left;
+ z-index: 1;
+ display: none;
+ }
+ embed {
+ float: left;
+ -webkit-transition: -webkit-transform 3s ease-in;
+ }
+</style>
+<script>
+ function testVisibility() {
+ var flashPlugin = document.getElementById('flashPlugin');
+ if (flashPlugin.style.display == 'none') {
+ flashPlugin.style.display = 'block';
+ } else {
+ flashPlugin.style.display = 'none';
+ }
+ }
+
+ function testResize() {
+ var flashPlugin = document.getElementById('flashPlugin');
+ flashPlugin.width = flashPlugin.width == "200" ? "100" : "200";
+ flashPlugin.height = flashPlugin.height == "200" ? "100" : "200";
+ }
+
+ function testMove() {
+ var flashPlugin = document.getElementById('flashPlugin');
+ var t = parseInt(flashPlugin.style.top);
+ flashPlugin.style['padding-left'] = "100px";
+ }
+
+ function testAnimation() {
+ var flashPlugin = document.getElementById('flashPlugin');
+ flashPlugin.style.webkitTransform='rotate(180deg)';
+ }
+
+ function toggleDivOverFlash() {
+ var overlayDiv = document.getElementById('overlayDiv');
+ if (overlayDiv.style.display != 'block') {
+ overlayDiv.style.display = 'block';
+ } else {
+ overlayDiv.style.display = '';
+ }
+ }
+</script>
+</head>
+
+<body>
+
+ <b> Verify the following tests with and without the page scrolled (including seeming unrelated test cases like printing). <br/>
+ For the Qt port, test with QGraphicsView enabled and disabled</b> <br/><br/>
+
+ <!-- <embed id="flashPlugin" src="http://www.youtube.com/v/loXfcsXRB-w&#038;hl=en&#038;fs=1" --!>
+ <embed id="flashPlugin" src="test.swf"
+ width="200" height="200"
+ wmode="transparent"
+ type="application/x-shockwave-flash">
+ </embed>
+
+ <div id="overlayDiv"> This is an overlay that will display over the flash. In addition, you should be able to see
+ the flash through the div contents. </div>
+
+ <div style="clear:both"/>
+
+ <input type="checkbox" name="visibilityCheckBox"> Verify if the flash toggles visibility
+ <input type="button" id="visibilityButton" value="Test Visibility" onClick="testVisibility()"/><br/>
+
+ <input type="checkbox" name="resizeCheckBox"> Verify if the flash resizes when element is resized
+ <input type="button" id="resizeButton" value="Test Resize" onClick="testResize()"/><br/>
+
+ <input type="checkbox" name="moveCheckBox"> Verify if the flash moves when element is moved
+ <input type="button" id="moveButton" value="Test Move" onClick="testMove()"/><br/>
+
+ <input type="checkbox" name="animationCheckBox"> Verify css animations with flash
+ <input type="button" id="animationButton" value="Test Animation" onClick="testAnimation()"/><br/>
+
+ <input type="checkbox" name="printCheckBox"> Verify if printing displays flash on the print preview and printer output <br/>
+
+ <input type="checkbox" name="zoomCheckBox"> Verify if elements in flash are correctly painted and clickable after zooming <br/>
+
+ <input type="checkbox" name="screenshotBox"> Verify if taking a screenshot from QtTestBrowser displays flash <br/>
+
+ <input type="checkbox" name="paintSystemsCheckBox"> Verify if flash is displayed with graphicssystems - raster, opengl <br/>
+
+ <input type="checkbox" name="focusCheckBox"> Verify if shifting focus back and forth from flash to html works
+ <input value="Shift focus here"/></br/>
+
+ <input type="checkbox" name="testZIndex"> Test if html can display over flash
+ <input type="button" value="Toggle transparent div" onClick="toggleDivOverFlash()"<br/>
+
+ <br/>
+</body>
+
+</html>
diff --git a/ManualTests/pointer-events.html b/ManualTests/pointer-events.html
new file mode 100644
index 000000000..7ffac8b6b
--- /dev/null
+++ b/ManualTests/pointer-events.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+ <title>Test for 'pointer-events' property in HTML</title>
+ <style type="text/css" media="screen">
+ #a {
+ pointer-events: auto;
+ background: #88f;
+ }
+
+ #a:hover {
+ background: green;
+ }
+
+ #b {
+ pointer-events: none;
+ background: #88f;
+ }
+
+ #b:hover {
+ background: red;
+ }
+
+ #c {
+ pointer-events: auto;
+ background: #88f;
+ }
+
+ #c span {
+ pointer-events: none;
+ background: #8ff;
+ }
+
+ #c:hover {
+ background: green;
+ }
+
+ #d {
+ pointer-events: none;
+ background: #88f;
+ }
+
+ #d span {
+ pointer-events: auto;
+ padding: 0 10px;
+ background: #8ff;
+ }
+
+ #d:hover {
+ background: gray;
+ }
+
+ #e {
+ padding: 10px;
+ pointer-events: none;
+ background: #88f;
+ }
+
+ #e div {
+ pointer-events: auto;
+ background: #8ff;
+ }
+
+ #e:hover {
+ background: gray;
+ }
+
+ #e div:hover {
+ background: green;
+ }
+
+ #f, #g, #h, #i, #k, #m {
+ padding: 10px;
+ background: #88f;
+ }
+
+ #f {
+ pointer-events: auto;
+ }
+
+ #f:hover {
+ background: green;
+ }
+
+ #g {
+ pointer-events: none;
+ }
+
+ #g:hover {
+ background: red;
+ }
+
+ #h {
+ pointer-events: auto;
+ }
+
+ #h:hover {
+ background: green;
+ }
+
+ #i {
+ pointer-events: none;
+ }
+
+ #i:hover {
+ background: red;
+ }
+
+ #j {
+ background: #88f;
+ pointer-events: none;
+ }
+
+ #j:hover {
+ background: gray;
+ }
+
+ #k {
+ pointer-events: auto;
+ }
+
+ #k:hover {
+ background: green;
+ }
+
+ #l {
+ background: #88f;
+ pointer-events: auto;
+ }
+
+ #l:hover {
+ background: green;
+ }
+
+ #m {
+ pointer-events: none;
+ }
+
+ #m:hover {
+ background: red;
+ }
+
+ </style>
+
+</head>
+<body>
+ <h1>Testing 'pointer-events' property in HTML</h1>
+
+ <p id="a">This whole paragraph SHOULD change background when hovered</p>
+
+ <p id="b">This whole paragraph SHOULD NOT change background when hovered</p>
+
+ <p id="c">This paragraph SHOULD change background when hovered anywhere including
+ <span>this inline text</span> even though the inline text ignores pointer events.</p>
+
+ <p id="d">This paragraph SHOULD NOT change when the pointer is over only it but
+ <span>this inline text</span> SHOULD change and cause the parent to change also.</p>
+
+ <div id="e">This paragraph SHOULD NOT change when the pointer is over only it (not the child)
+ <div>This child element SHOULD change and cause the parent to change also</div>
+ </div>
+
+ <p>
+ The following image SHOULD change when the pointer is over it.
+ </p>
+
+ <img id="f" src="../../../LayoutTests/media/content/abe.png">
+
+ <p>
+ The following image SHOULD NOT change when the pointer is over it.
+ </p>
+
+ <img id="g" src="../../../LayoutTests/media/content/abe.png">
+
+ <p>
+ The following image SHOULD change when the pointer is over it. It is inline
+ with this paragraph.
+ <img id="h" src="../../../LayoutTests/media/content/abe.png">
+ </p>
+
+ <p>
+ The following image SHOULD NOT change when the pointer is over it. It is inline
+ with this paragraph.
+ <img id="i" src="../../../LayoutTests/media/content/abe.png">
+ </p>
+
+ <p id="j">
+ This paragraph SHOULD NOT change when the pointer is over only it, but the child
+ image SHOULD react and cause the parent to change.
+ <img id="k" src="../../../LayoutTests/media/content/abe.png">
+ </p>
+
+ <p id="l">
+ This paragraph SHOULD change when the pointer is over it, but the child
+ image SHOULD NOT react.
+ <img id="m" src="../../../LayoutTests/media/content/abe.png">
+ </p>
+
+
+</body>
+</html>
diff --git a/ManualTests/pop-up-alignment-and-direction.html b/ManualTests/pop-up-alignment-and-direction.html
new file mode 100644
index 000000000..b51798e87
--- /dev/null
+++ b/ManualTests/pop-up-alignment-and-direction.html
Binary files differ
diff --git a/ManualTests/popup-width-restriction-within-screen.html b/ManualTests/popup-width-restriction-within-screen.html
new file mode 100644
index 000000000..1ef2567d0
--- /dev/null
+++ b/ManualTests/popup-width-restriction-within-screen.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
+<title>
+Test the popup list box's width is rectricted within screen.
+</title>
+</head>
+<body>
+
+<h3>Test left to right popup list box's width is restricted within the left screen.</h3>
+<ol>
+ <li> Setup dual screens.</li>
+ <li> Launch browser and maximize the browser window size in the left screen.</li>
+ <li> Enter a very long string into "Left to right" text input box.</li>
+ <li> Hit enter. </li>
+ <li> Go back and start to enter the same string again.</li>
+ <li> Make sure the popup list box's width which suggests the result doesn't exceed the left screen width. </li>
+</ol>
+
+<H3>Test right to left popup window width is restricted within the right screen.</H3>
+<ol>
+ <li> Setup dual screens.</li>
+ <li> Launch browser and maximize the browser window size in the right screen.</li>
+ <li> Enter a very long string into "Right to Left" text input box.</li>
+ <li> Hit enter.</li>
+ <li> Go back and start to enter the same string again.</li>
+ <li> Make sure the popup list box's width which suggests the result doesn't exceed the right screen width.</li>
+</ol>
+
+<br>
+<form action="form_action.asp" method="get">
+ Left to right <input type="text" name="lname" /><br />
+ Right to left <input type="text" name="fname" dir="rtl"/><br />
+ <input type="submit" value="Submit" />
+</form>
+
+<H3>Test left to right select window width is restricted within the left screen.</H3>
+<ol>
+ <li> Setup dual screens.</li>
+ <li> Launch browser and maximize the browser window size in the left screen.</li>
+ <li> Click the following &lt;select&gt; item.</li>
+ <li> Make sure the drop-down box width in the following &lt;select&gt; doesn't exceed the left screen width.</li>
+</ol>
+
+<select style="width:100px">
+<option>Arabic</option>
+<option>Hebrew</option>
+<option>English (United States)</option>
+<option>Chinese (Simplified Chiense)</option>
+<option>Japanese (hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge</option>
+</select>
+
+<H3>Test right to left select window width is restricted within the right screen.</H3>
+<ol>
+ <li> Setup dual screens.</li>
+ <li> Launch browser and maximize the browser window size in the right screen.</li>
+ <li> Click the following &lt;select&gt; item.</li>
+ <li> Make sure the drop-down box width in the following &lt;select&gt; doesn't exceed the right screen width.</li>
+</ol>
+
+<select dir="rtl" style="width:100px">
+<option>Arabic</option>
+<option>Hebrew</option>
+<option>English (United States)</option>
+<option>Chinese (Simplified Chiense)</option>
+<option>Japanese (hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge</option>
+</select>
+
+
+</body>
+</html>
diff --git a/ManualTests/post-multi-file-upload.html b/ManualTests/post-multi-file-upload.html
new file mode 100644
index 000000000..18f303994
--- /dev/null
+++ b/ManualTests/post-multi-file-upload.html
@@ -0,0 +1,35 @@
+<html>
+ <head>
+ <script type="text/javascript">
+ var submittedFiles = 0;
+
+ function log(message)
+ {
+ document.getElementById('console').appendChild(document.createTextNode(message + "\n"));
+ }
+
+ function verifyResults()
+ {
+ if (submittedFiles == 3) {
+ var frame = document.getElementById('fr');
+ frame.parentNode.removeChild(frame);
+ log("Test Passed");
+ } else
+ log("Test Failed");
+ }
+ </script>
+ </head>
+ <body onload="test()">
+ <p>
+ This tests that the multi-file upload control works correctly. This test and the resources/multiFileResources must be placed on a web server so the test can be run manually.<br>
+ Choose "testFile1.html" "testFile2.html" and "testFile3.html" and submit the form. <br>
+ You should see a "Test Passed" or a "Test Failed" message after submitting the form.<br>
+ </p>
+ <form method="post" enctype="multipart/form-data" action="resources/multiFileResources/post-echo-and-notify-done.cgi" id="myForm" target="targetFrame">
+ <input type="file" id="target" multiple name="multiFileInput"></input>
+ <input type="submit" value="Submit">
+ </form>
+ <iframe name="targetFrame" id="fr"></iframe>
+ <pre id='console'></pre>
+ </body>
+</html>
diff --git a/ManualTests/pre-tab-selection-rect.html b/ManualTests/pre-tab-selection-rect.html
new file mode 100644
index 000000000..d9a98019d
--- /dev/null
+++ b/ManualTests/pre-tab-selection-rect.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+<title>Highlighting preformatted text after tab</title>
+<style type="text/css">
+#t4 { font-size: 36px; }
+#t4:first-line { font-size:16px; }
+</style>
+<script type="text/javascript">
+function test1()
+{
+ var t = document.getElementById('t1').childNodes[1];
+ window.getSelection().setBaseAndExtent(t, 1, t, 13);
+}
+
+function test2()
+{
+ var t = document.getElementById('t2').childNodes[0];
+ window.getSelection().setBaseAndExtent(t, 5, t, 23);
+}
+
+function test3()
+{
+ var t = document.getElementById('t3').childNodes[0];
+ window.getSelection().setBaseAndExtent(t, 5, t, 23);
+}
+
+function test4()
+{
+ var t = document.getElementById('t4').childNodes[0];
+ window.getSelection().setBaseAndExtent(t, 11, t, 29);
+}
+</script>
+</head>
+<body>
+<p>
+This is a test for <i>http://bugs.webkit.org/show_bug.cgi?id=6043
+Incorrect selection highlighting in pre-formatted text with tabs</i>.
+</p>
+<hr>
+<p>
+Instructions:
+</p>
+<p>
+1. Click <a href="#" onclick="window.setTimeout(test1,1);">test 1</a>.
+The entire word &ldquo;highlighting&rdquo; below should be highlighted.
+</p>
+<pre id="t1"><span>Buggy</span> highlighting</pre>
+<p>
+2. Click <a href="#" onclick="window.setTimeout(test2,1);">test 2</a>.
+The words &ldquo;buggy highlighting&rdquo; below should be fully highlighted.
+</p>
+<pre id="t2" style="padding-left: 10px;">Very buggy highlighting</pre>
+<p>
+3. Click <a href="#" onclick="window.setTimeout(test3,1);">test 3</a>.
+The words &ldquo;buggy highlighting&rdquo; below should be fully highlighted.
+</p>
+<pre id="t3" style="margin-left: 10px;">Very buggy highlighting</pre>
+<p>
+4. Click <a href="#" onclick="window.setTimeout(test4,1);">test 4</a>.
+The words &ldquo;buggy highlighting&rdquo; below should be fully highlighted.
+</p>
+<p id="t4">
+Even more buggy highlighting.
+</p>
+</body>
+</html>
diff --git a/ManualTests/preload-scanner-entities.html b/ManualTests/preload-scanner-entities.html
new file mode 100644
index 000000000..21446ae65
--- /dev/null
+++ b/ManualTests/preload-scanner-entities.html
@@ -0,0 +1,7 @@
+<script src="does_not_exist_here_just_to_trigger_preload_scanner.js" type="text/javascript"></script>
+<link href="non_existent_stylesheet1&ab-" rel="stylesheet">
+<link href="non_existent_stylesheet2&#xY" rel="stylesheet">
+<link href="non_existent_stylesheet3&#XY" rel="stylesheet">
+<p><a href="rdar://problem/6904095">rdar://problem/6904095</a> Query parameters are sometimes incorrect in URL</p>
+<p>Check with the web inspector that the page tried to load 3 stylesheet resources (and not more).</p>
+
diff --git a/ManualTests/print-after-window-close.html b/ManualTests/print-after-window-close.html
new file mode 100644
index 000000000..f29e39d8a
--- /dev/null
+++ b/ManualTests/print-after-window-close.html
@@ -0,0 +1,9 @@
+<script>
+function crash() {
+ var w = window.open("data:text/html,Loading a data URL is asynchronous, so this text shouldn't appear. But it's most important to check that there is no crash after dismissing the print sheet.");
+ w.document.write("SUCCESS");
+ w.print();
+ w.close();
+}
+</script>
+<button onclick="crash()">Crash</button>
diff --git a/ManualTests/print-before-load.html b/ManualTests/print-before-load.html
new file mode 100644
index 000000000..edec30ba6
--- /dev/null
+++ b/ManualTests/print-before-load.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>Print Test Page</title>
+<body>
+
+<script language="JavaScript" type="text/javascript">
+window.print();
+</script>
+
+This webpage should pop up a print dialog. If you print from that dialog, you
+should see this output on paper.
+
+</body>
+</html>
+
diff --git a/ManualTests/print-onload-with-image.html b/ManualTests/print-onload-with-image.html
new file mode 100644
index 000000000..4d34a1129
--- /dev/null
+++ b/ManualTests/print-onload-with-image.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=UTF-8">
+<title>Print Test</title>
+</head>
+<body onload="window.print()">
+<img src="http://code.google.com/p/chromium/logo?cct=1287781185">
+<H1>Hello, world.</h1>
+<p>
+This webpage should pop up a print dialog.
+</p>
+</body>
+</html>
diff --git a/ManualTests/print-with-height-transition-in-screen-stylesheet.html b/ManualTests/print-with-height-transition-in-screen-stylesheet.html
new file mode 100644
index 000000000..2186c183a
--- /dev/null
+++ b/ManualTests/print-with-height-transition-in-screen-stylesheet.html
@@ -0,0 +1,26 @@
+<head>
+<style media="screen">
+.outer_slide {
+ overflow: hidden;
+ height: 0;
+ -webkit-transition: height 100s ease-in-out;
+}
+</style>
+</head>
+ <body>
+<div>To run this test, Print and then push the Preview button (on Mac OS X). The symptom of the bug is a layout with overlapping text or missing sections.
+If the test passes you should be able to see eight different lines below A, A1, A2, A3, B, B1, C, and C1. If it fails you might see as few as four lines.</div>
+<div><br></div>
+<div>A: When printing you should be able to see all three paragraphs below.</div>
+<div class='outer_slide'>
+ <div>A1: This is a long paragraph which helps us see the mess you can get with long ones.<br>
+ A2: This is a long paragraph which helps us see the mess you can get with long ones.<br>
+ A3: This is a long paragraph which helps us see the mess you can get with long ones.<br>
+</div></div>
+<div>B: When printing you should be able to see one line below.</div>
+<div class='outer_slide'><div>B1: This is a long paragraph which helps us see the mess you can get with long ones.</div></div>
+<div>C: When printing you should be able to see one line below</div>
+<div class='outer_slide'><div>C1: This is a long paragraph which helps us see the mess you can get with long ones.</div></div>
+</div>
+</body>
+</html>
diff --git a/ManualTests/property-map-save-crash.html b/ManualTests/property-map-save-crash.html
new file mode 100644
index 000000000..c4dce1a0a
--- /dev/null
+++ b/ManualTests/property-map-save-crash.html
@@ -0,0 +1,49 @@
+<html>
+ <head>
+ <script>
+ function test()
+ {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+ }
+
+ window.crash = "crash";
+ delete window.crash;
+
+ if (window.navigationController)
+ navigationController.evalAfterBackForwardNavigation("continueTestAfterNavigation()");
+ }
+
+ function continueTestAfterNavigation()
+ {
+ print("PASS: You didn't crash");
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ }
+
+ function print(message) {
+ var paragraph = document.createElement("p");
+ paragraph.appendChild(document.createTextNode(message));
+ document.getElementById("console").appendChild(paragraph);
+ }
+ </script>
+ </head>
+
+ <body onload="test()">
+ <p>Bug: rdar://problem/4465598 REGRESSION (TOT): Crash occurs at http://maps.google.com/?output=html ( KJS::Identifier::add(KJS::UString::Rep*)</p>
+ <p>This cause for this bug was that the code to save the window object's property map tried to use
+ the deleted property sentinel key as a normal pointer.</p>
+ <p>To run this test in Safari:</p>
+ <ol>
+ <li><a href="resources/go-back.html">Click here to do a back/forward navigation.</a></li>
+ <li>You should not crash.</li>
+ </ol>
+ <p>When the automated version of this test passes, you'll see a PASS message below.
+ (The automated version is currently disabled because DumpRenderTree doesn't work
+ with the back/forward cache enabled.)</p>
+ <hr>
+ <div id="console"></div>
+ </body>
+</html>
diff --git a/ManualTests/qt/control_paiting_with_transforms.html b/ManualTests/qt/control_paiting_with_transforms.html
new file mode 100644
index 000000000..06004748c
--- /dev/null
+++ b/ManualTests/qt/control_paiting_with_transforms.html
@@ -0,0 +1,23 @@
+<html>
+<head>
+ <script>
+ var d = 0;
+
+ function rotate() {
+ d+=1;
+ document.getElementById('text_rotate').style.webkitTransform = "rotate(" + d + "deg)";
+ document.getElementById('button_rotate').style.webkitTransform = "rotate(" + (360 - d) + "deg)";
+ setTimeout('rotate()', 10);
+ }
+ </script>
+</head>
+<body>
+ <p>This tests the quality of the control drawing, while transform is applied.<br>
+ Click on the button and check for quality regression, while rotating.</p>
+ <input type='button' value='rotate' onclick='rotate();'>
+ <input id='text_rotate'; style='position:absolute; left:300px; top:100px; -webkit-transform: rotate(0deg);' type='text' value=''>
+ <input id='button_rotate'; style='position:absolute; left:300px; top:300px; -webkit-transform: rotate(0deg);' type='button' value=' '>
+</body>
+</html>
+
+
diff --git a/ManualTests/qt/double-tap-overscroll.html b/ManualTests/qt/double-tap-overscroll.html
new file mode 100644
index 000000000..93d03386d
--- /dev/null
+++ b/ManualTests/qt/double-tap-overscroll.html
@@ -0,0 +1,4 @@
+<html>
+ <div style='width:200; height:200; background-color:red;'></div>
+ <p>Double tap the red box twice. The test passes if the viewport remains within document borders.
+</html> \ No newline at end of file
diff --git a/ManualTests/qt/main.html b/ManualTests/qt/main.html
new file mode 100644
index 000000000..48c103a56
--- /dev/null
+++ b/ManualTests/qt/main.html
@@ -0,0 +1,10 @@
+<html>
+<head>
+<div>
+Plugin test within an iframe:
+</div>
+<div style="float:right;">
+<IFRAME SRC="qtplugin.html" FRAMEBORDER="0" width="100%" height="100%" ></IFRAME>
+ </div>
+</body>
+</html>
diff --git a/ManualTests/qt/numpad-enter-key.html b/ManualTests/qt/numpad-enter-key.html
new file mode 100644
index 000000000..ea9b800a3
--- /dev/null
+++ b/ManualTests/qt/numpad-enter-key.html
@@ -0,0 +1,22 @@
+<html>
+<head>
+ <script type="text/javascript">
+ window.onload = function() {
+ document.getElementById('test').addEventListener('keypress', function(e) {
+ out = document.getElementById('out');
+ out.innerHTML = 'keyCode: ' + e.keyCode + ' (should be 13)';
+ if (e.keyCode == 13)
+ out.style.background = '#6f6';
+ else
+ out.style.background = '#f66';
+ }, false);
+ document.getElementById('test').focus()
+ };
+ </script>
+</head>
+<body>
+ <p>Press the numpad Enter key while the input box below is focused:</p>
+ <p><input type="text" id="test" /></p>
+ <p id="out"></p>
+</body>
+</html>
diff --git a/ManualTests/qt/plugin-iframe.html b/ManualTests/qt/plugin-iframe.html
new file mode 100644
index 000000000..ee838ba20
--- /dev/null
+++ b/ManualTests/qt/plugin-iframe.html
@@ -0,0 +1,26 @@
+<html>
+ <head>
+ <style>
+ html, body {
+ background-color: blue;
+ color: white;
+ }
+ #spacer {
+ width: 100%;
+ height: 1000px;
+ background-color: yellow;
+ }
+ </style>
+ </script>
+ </head>
+ <body>
+ <p>
+ Scroll the view, ensure that plugin scrolls in sync with the view.
+ </p>
+
+ <iframe src="plugin-sibling-frame-include.html" width="200" height="200"
+ frameborder="0" scrolling="auto" name="myInlineFrame"></iframe>
+ <div id="spacer"><p>content</p></div>
+ </body>
+</html>
+
diff --git a/ManualTests/qt/plugin-painting.html b/ManualTests/qt/plugin-painting.html
new file mode 100644
index 000000000..3aa87bc6b
--- /dev/null
+++ b/ManualTests/qt/plugin-painting.html
@@ -0,0 +1,60 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Flash In IFrame Test File</title>
+</head>
+
+<body>
+
+ <b> This manual tests verifies paging and arrow-navigating up and down a page of plugins doesn't result
+ in them appearing to get fused together. QtWebKit wasn't updating the position of the plugins
+ within the page before scheduling them for a repaint, with the result that parts of the plugin
+ were appearing in their old position after a page scroll. This was a problem for
+ Qt in <a href="https://bugs.webkit.org/show_bug.cgi?id=57179">bug 57179</a></b> <br/><br/>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<iframe src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></iframe>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+<embed src="../plugins/test.swf" type="application/x-shockwave-flash" style="position: relative; "></embed>
+
+</body>
+
+</html>
+
+
+
+
diff --git a/ManualTests/qt/plugin-sibling-frame-include.html b/ManualTests/qt/plugin-sibling-frame-include.html
new file mode 100644
index 000000000..e59867c16
--- /dev/null
+++ b/ManualTests/qt/plugin-sibling-frame-include.html
@@ -0,0 +1,17 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>ClickToFlash Test File</title>
+</head>
+
+<body bgcolor="#000">
+
+ <!-- <embed id="flashPlugin" src="http://www.youtube.com/v/loXfcsXRB-w&#038;hl=en&#038;fs=1" --!>
+ <embed src="../plugins/test.swf"
+ type="application/x-shockwave-flash">
+ </embed>
+
+</body>
+
+</html>
diff --git a/ManualTests/qt/plugin-sibling-frame.html b/ManualTests/qt/plugin-sibling-frame.html
new file mode 100644
index 000000000..74e339a22
--- /dev/null
+++ b/ManualTests/qt/plugin-sibling-frame.html
@@ -0,0 +1,6 @@
+<html>
+<head><title>Move the frame to hide the plugin fully</title></head>
+<frameset cols="25%,50%,25%">
+ <frame src="plugin-sibling-frame-include.html">
+</frameset>
+</html>
diff --git a/ManualTests/qt/qtplugin-scrolling.html b/ManualTests/qt/qtplugin-scrolling.html
new file mode 100644
index 000000000..85038326f
--- /dev/null
+++ b/ManualTests/qt/qtplugin-scrolling.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+<style>
+ #spacer {
+ width: 100%;
+ height: 1000px;
+ background-color: yellow;
+ }
+</style>
+</head>
+<body>
+
+<p>
+ Scroll the page, ensure that the two labels move nicely along with the rest of the document.
+</p>
+
+<div>
+<object type="application/x-qt-plugin" classid="alien_QLabel" name="label1" height="30"></object>
+</div>
+
+<div>
+<object type="application/x-qt-plugin" classid="QLabel" name="label2" height="30"></object>
+</div>
+
+<div id="spacer"><p>&nbsp;</p></div>
+
+<script>
+document.label1.setText("Label one");
+document.label2.setText("Label two");
+</script>
+</body>
+</html>
diff --git a/ManualTests/qt/qtplugin.html b/ManualTests/qt/qtplugin.html
new file mode 100644
index 000000000..631ce63fd
--- /dev/null
+++ b/ManualTests/qt/qtplugin.html
@@ -0,0 +1,27 @@
+<html>
+<body>
+Image:<br/>
+ <img src="qrc:/webkit/inspector/Images/largerResourcesButtonGlyph.png" width="80" height="80"/>
+ <br/>
+
+<!-- visible progressbar -->
+<div>
+QT progress bar:
+<object type="application/x-qt-plugin" classid="QProgressBar" name="progressbar1" height=30></object>
+</div>
+
+<!-- should not be visible -->
+<div style="visibility: hidden;">
+You should not see this:
+<object type="application/x-qt-plugin" classid="QProgressBar" name="progressbar2" height=30></object>
+</div>
+
+<script>
+function display(){
+ if (++document.progressbar1.value != 100)
+setTimeout("display()", 50)
+}
+display();
+</script>
+</body>
+</html>
diff --git a/ManualTests/qt/tap-highlighting-colors.html b/ManualTests/qt/tap-highlighting-colors.html
new file mode 100644
index 000000000..ff3adec62
--- /dev/null
+++ b/ManualTests/qt/tap-highlighting-colors.html
@@ -0,0 +1,12 @@
+<h1>
+<input style='' type='text' value="undefined">
+<input style='-webkit-tap-highlight-color: rgb(255, 255, 255);' type='text' value="rgb(255, 255, 255)">
+<input style='-webkit-tap-highlight-color: rgb(0, 0, 0);' type='text' value="rgb(0, 0, 0)">
+<input style='-webkit-tap-highlight-color: rgba(0, 0, 0, 0);' type='text' value="rgba(0, 0, 0, 0)">
+<input style='-webkit-tap-highlight-color: rgb(255, 0, 0);' type='text' value="rgb(255, 0, 0)">
+<input style='-webkit-tap-highlight-color: rgba(255, 0, 0, 0.5);' type='text' value="rgba(255, 0, 0, 0.5)">
+<input style='-webkit-tap-highlight-color: rgba(255, 0, 0, 1);' type='text' value="rgba(255, 0, 0, 1)">
+<input style='-webkit-tap-highlight-color: rgba(255, 0, 0, 0);' type='text' value="rgba(255, 0, 0, 0)">
+<input style='-webkit-tap-highlight-color: rgba(0, 255, 0, 0.5);' type='text' value="rgba(0, 255, 0, 0.5)">
+<input style='-webkit-tap-highlight-color: rgba(0, 0, 255, 0.5);' type='text' value="rgba(0, 0, 255, 0.5)">
+</h1>
diff --git a/ManualTests/qt/tap-highlighting-images.html b/ManualTests/qt/tap-highlighting-images.html
new file mode 100644
index 000000000..bbeea1a4d
--- /dev/null
+++ b/ManualTests/qt/tap-highlighting-images.html
@@ -0,0 +1,6 @@
+<body style="background-color: green">
+ <p>Two anchors, one around a pure image, the other around an image embedded in a div.</p>
+
+ <a href=""><img src="../resources/apple.jpg"></a>
+ <a href=""><div style="background-color: blue;"><img style="display: block; margin-left: auto; margin-right: auto;" src="../resources/apple.jpg"></div></a>
+</body>
diff --git a/ManualTests/qt/tap-highlighting-inlines.html b/ManualTests/qt/tap-highlighting-inlines.html
new file mode 100644
index 000000000..6bb44dfa2
--- /dev/null
+++ b/ManualTests/qt/tap-highlighting-inlines.html
@@ -0,0 +1,9 @@
+<body>
+ <p style="position:absolute; left:100px; top:20px; width: 10em; -webkit-transform: rotate(30deg)">
+ <a href="">some link</a><br><br>
+ <a href="">some link breaking lines</a><br><br>
+ hola mundo! <a href="">a split up link</a><br><br>
+ hello world <a href="">some link also breaking</a><br><br>
+ hi there <a href="">some link that is breaking multiple lines just for the very fun of it</a><br><br>
+ </p>
+</body>
diff --git a/ManualTests/qt/tap-highlighting-overflow-hidden.html b/ManualTests/qt/tap-highlighting-overflow-hidden.html
new file mode 100644
index 000000000..2661d36d0
--- /dev/null
+++ b/ManualTests/qt/tap-highlighting-overflow-hidden.html
@@ -0,0 +1,87 @@
+<html>
+<head>
+<style type="text/css">
+
+ div {
+ position: absolute;
+ border: solid;
+ width: 100px;
+ height: 100px;
+ }
+
+ div.clipping {
+ color: red;
+ overflow: hidden;
+ }
+
+ div.noClipping {
+ color: green;
+ overflow: visible;
+ left: 10px;
+ top: 50px;
+ }
+
+ div.noTransform {
+ left: 150px;
+ top: 50px;
+ }
+
+ div.withTransform {
+ left: 300px;
+ top: 50px;
+ -webkit-transform: rotate(20deg);
+ }
+
+ div.outer {
+ left: 450px;
+ top: 50px;
+ -webkit-transform: rotate(-20deg);
+ }
+
+ div.inner {
+ left: 20px;
+ top: 10px;
+ }
+
+ iframe {
+ border: solid;
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ left: 200px;
+ top: 300px;
+ }
+</style>
+</head>
+
+<body>
+Click on the links. Highlight should be clipped at the red border, while it should overflow on the green.<br>
+<div class="noClipping">
+ <a href="#">Div with overflow visible. Lorem ipsum dolor sit amet, consectetur adipisicing...</a>
+</div>
+<div class="clipping noTransform">
+ <a href="#">Div with overflow hidden without transform. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a>
+</div>
+<div class="clipping withTransform">
+ <a href="#">Div with overflow hidden with transform. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a>
+</div>
+<br>
+
+<div class="clipping outer">
+<div class="clipping inner">
+ <a href="#">Nested divs with overflow hidden with transform. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a>
+</div>
+</div>
+<br>
+<iframe src="data:text/html,
+ <style> div.overflowHiddenNoTransformi { color: red; border: solid; overflow: hidden; left: 150px; top: 100px; width: 100px; height: 100px; }</style>
+ <body>
+ Inside an iframe.
+ <div class='overflowHiddenNoTransformi'>
+ <a href='#'>Div with overflow hidden without transform. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a>
+ </div>
+ </body>
+ "></iframe>
+</body>
+</html>
+
diff --git a/ManualTests/qt/tap-highlighting.html b/ManualTests/qt/tap-highlighting.html
new file mode 100644
index 000000000..feabdf26e
--- /dev/null
+++ b/ManualTests/qt/tap-highlighting.html
@@ -0,0 +1,11 @@
+<h1>
+<input style='position:absolute; left:10px; top:10px;' type='text'>
+<input style='position:absolute; left:0px; top:300px; -webkit-transform:skew(30deg) rotate(-40deg) scale(1.2);' type='text'>
+<input style='position:absolute; left:100px; top:100px; -webkit-transform: rotate(-20deg) scale(1.5);' type='button' value='hest#1'>
+<div style='position:absolute; left:400px; top:200px; -webkit-transform:rotate(10deg);'><a href='#'>hest#2</a></div>
+<div style='position:absolute; left:300px; top:100px; -webkit-transform:rotate(70deg);'><div style=' -webkit-transform:rotate(10deg);'><a href='#'>hest#3</a></div></div>
+<div style='-webkit-transform:rotate(70deg); width:200px'><div style='position:absolute; left:400px; top:-100px; -webkit-transform:rotate(10deg);'><a href='#'>hest#4</a></div></div>
+<div><div style='position:absolute; left:400px; top:400px; -webkit-transform:rotate(10deg);'><a href='#'>hest#4a</a></div></div>
+<a href='#' style='position:absolute;left:500px'>hest#5</a>
+<div style='position:absolute;left:640px'><a href='#'>hest#6</a>
+</h1>
diff --git a/ManualTests/qt/unload-alert.html b/ManualTests/qt/unload-alert.html
new file mode 100644
index 000000000..3b0281895
--- /dev/null
+++ b/ManualTests/qt/unload-alert.html
@@ -0,0 +1,8 @@
+<html>
+<head>
+</head>
+<body onunload="alert('goodbye');">
+Reload me twice ensuring that this didn't result in a crash. Test added due to
+bug <a href="https://bugs.webkit.org/show_bug.cgi?id=26556">@25556</a>
+</body>
+</html>
diff --git a/ManualTests/quit-inside-unload.html b/ManualTests/quit-inside-unload.html
new file mode 100644
index 000000000..23ae71d33
--- /dev/null
+++ b/ManualTests/quit-inside-unload.html
@@ -0,0 +1,14 @@
+<script>
+ var showedAlert = false;
+ function handleUnload()
+ {
+ if (showedAlert)
+ return;
+
+ showedAlert = true;
+ alert("Now Quit Safari. Do not dismiss this alert first.");
+ }
+</script>
+<body onunload="handleUnload()">
+ Close this window
+</body>
diff --git a/ManualTests/redirect.html b/ManualTests/redirect.html
new file mode 100644
index 000000000..f02a707b2
--- /dev/null
+++ b/ManualTests/redirect.html
@@ -0,0 +1,2 @@
+<meta http-equiv="refresh" content="0;url=redirection-target.html">
+<p>See redirection-target.html for details of what this tests.</p>
diff --git a/ManualTests/redirectHistory/redir-1.html b/ManualTests/redirectHistory/redir-1.html
new file mode 100644
index 000000000..1cdab45ca
--- /dev/null
+++ b/ManualTests/redirectHistory/redir-1.html
@@ -0,0 +1,10 @@
+<html>
+<head>
+<meta http-equiv="refresh" content="3;url=redir-2.html"/>
+<title>Redirect 1</title>
+</head>
+<body>
+<p>This test checks that a &quot;quick&quot; redirect does not create an extra entry in the back/forward list. See Radar 4351664.</p>
+<p>Wait a few seconds for the redirect to occur. If you return to this page after the redirect, then the test passed. If you end up at redir-2.html, then the test failed.</p>
+</body>
+</html>
diff --git a/ManualTests/redirectHistory/redir-2.html b/ManualTests/redirectHistory/redir-2.html
new file mode 100644
index 000000000..fe9e6ba90
--- /dev/null
+++ b/ManualTests/redirectHistory/redir-2.html
@@ -0,0 +1,9 @@
+<html>
+<head>
+<meta http-equiv="refresh" content="0;url=redir-3.html"/>
+<title>Redirect 2</title>
+</head>
+<body>
+<p>Test failed</p>
+</body>
+</html>
diff --git a/ManualTests/redirectHistory/redir-3.html b/ManualTests/redirectHistory/redir-3.html
new file mode 100644
index 000000000..a525851a5
--- /dev/null
+++ b/ManualTests/redirectHistory/redir-3.html
@@ -0,0 +1,11 @@
+<html>
+<head>
+<title>Redirect 3</title>
+<script>
+window.setTimeout("window.history.back()", 1000);
+</script>
+</head>
+<body>
+<p>Going back...</p>
+</body>
+</html>
diff --git a/ManualTests/redirection-target.html b/ManualTests/redirection-target.html
new file mode 100644
index 000000000..365681a26
--- /dev/null
+++ b/ManualTests/redirection-target.html
@@ -0,0 +1,6 @@
+<p>
+This test checks that redirection does not leave Safari thinking it's still loading.
+Check that the title bar does not say "Loading" any more.
+The bug was <a href="rdar://problem/4432562">4432562</a> in Radar and
+<a href="http://bugs.webkit.org/show_bug.cgi?id=7058">7058</a> in Bugzilla.
+</p>
diff --git a/ManualTests/redraw-page-cache-visited-links.html b/ManualTests/redraw-page-cache-visited-links.html
new file mode 100644
index 000000000..d13019bc8
--- /dev/null
+++ b/ManualTests/redraw-page-cache-visited-links.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+<script>
+// Uncomment to make this an automated test
+//if (window.layoutTestController) {
+// layoutTestController.waitUntilDone();
+// layoutTestController.keepWebHistory();
+//}
+function runTest() {
+// Uncomment to make this an automated test
+// // Uses window.history hack; see http://bugs.webkit.org/show_bug.cgi?id=7135
+// if (!window.history[99999]) {
+// var element = document.getElementById("mylink");
+// var event = document.createEvent("MouseEvent");
+// event.initEvent("click", true, true);
+// element.dispatchEvent(event);
+// }
+// else {
+// if (window.layoutTestController) {
+// layoutTestController.notifyDone();
+// }
+// }
+}
+</script>
+</head>
+<body onload="runTest();">
+<div><a href="http://bugs.webkit.org/show_bug.cgi?id=8079">Bug 8079 REGRESSION: Redraw from page cache does not show visited links</a></div>
+<ol>
+<li>The link in Step 2 should be rendered in an unvisited link color first.
+<li><a id="mylink" href="./resources/redraw-page-cache-visited-links-2.html">Click This Link Once</a><br><br>
+<li value="4">The test passes if the link in Step 2 is rendered in a visited link color after the click.
+</ol>
+</body>
+</html>
diff --git a/ManualTests/remove-add-fixed-position.html b/ManualTests/remove-add-fixed-position.html
new file mode 100644
index 000000000..983f13d7d
--- /dev/null
+++ b/ManualTests/remove-add-fixed-position.html
@@ -0,0 +1,93 @@
+<html><head>
+<meta name="viewport" content="width=device-width">
+<style>
+.d1 {position:fixed; top:5; right:5; z-index:2; overflow:hidden;}
+.o {background:green; height:40px; width:200px;}
+.t { width:2000px; height:198px; background-color: lightgray; border: 1px solid blue;}
+body { margin: 0px; }
+</style>
+<script>
+
+var fixed;
+
+function remove_child()
+{
+ fixed = document.getElementById("d1");
+ fixed.parentElement.removeChild(fixed);
+}
+
+function add_child()
+{
+ document.body.appendChild(fixed);
+}
+
+</script>
+</head>
+<body>
+<div class="d1" id="d1"><div class="o">This is a test</div></div>
+<div class="t">
+000
+</div>
+<div class="t">
+200<br>
+<button onclick="remove_child();">remove fixed</button>
+</div>
+<div class="t">
+400<br>
+<button onclick="add_child();">add fixed</button>
+</div>
+<div class="t">
+600<br>
+</div>
+<div class="t">
+800
+</div>
+<div class="t">
+1000
+</div>
+<div class="t">
+1200
+</div>
+<div class="t">
+1400
+</div>
+<div class="t">
+1600
+</div>
+<div class="t">
+1800
+</div>
+<div class="t">
+2000
+</div>
+<div class="t">
+2200
+</div>
+<div class="t">
+2400
+</div>
+<div class="t">
+2600
+</div>
+<div class="t">
+2800
+</div>
+<div class="t">
+3000
+</div>
+<div class="t">
+3200
+</div>
+<div class="t">
+3400
+</div>
+<div class="t">
+3600
+</div>
+<div class="t">
+3800
+</div>
+<div class="t">
+4000
+</div>
+</body></html>
diff --git a/ManualTests/remove-form-node-with-radio-buttons-crash.html b/ManualTests/remove-form-node-with-radio-buttons-crash.html
new file mode 100644
index 000000000..298da5a20
--- /dev/null
+++ b/ManualTests/remove-form-node-with-radio-buttons-crash.html
@@ -0,0 +1,33 @@
+<html>
+<script type="text/javascript">
+
+function load1() {
+ var doc = document.getElementById("container");
+ doc.innerHTML = "<form name=\"gaga\"><input type=\"radio\" name=\"asdf\" id=\"chk\" value=\"A\"> Checkbox 1" +
+ "<input type=\"radio\" name=\"asdf\" value=\"B\"> Checkbox 2";
+ document.getElementById("chk").checked = true;
+}
+
+function load2() {
+ var doc = document.getElementById("container");
+ doc.innerHTML = "hello, world";
+}
+
+var ctr = 0;
+
+function runTest() {
+ if (ctr % 2 == 0) {
+ load1();
+ } else {
+ load2();
+ }
+ ctr++;
+ setTimeout("runTest()", 10);
+}
+</script>
+<body>
+<div>This is a test for http://bugs.webkit.org/show_bug.cgi?id=12938 - to test this, press the "Run Test" button and wait for a couple of minutes - the browser should not crash.</div>
+<input type="button" onclick="runTest()" value="Run Test">
+<div id="container"/>
+
+</body></html>
diff --git a/ManualTests/remove-input-file-onchange.html b/ManualTests/remove-input-file-onchange.html
new file mode 100644
index 000000000..80368e36a
--- /dev/null
+++ b/ManualTests/remove-input-file-onchange.html
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<script>
+function removeDiv()
+{
+ var parent = document.getElementById("parent");
+ var child = document.getElementById("child");
+ parent.removeChild(child);
+}
+</script>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4621649">4621649</a> repro crash: Upload link causes crash on pages.google.com in Frame::nodeForWidget</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+<ol>
+<li> To test this bug, just choose any file
+</ol>
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Should see the file chooser disappear and the word "Success" will appear
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Safari will crash in WebCore::Frame::nodeForWidget.
+</p>
+
+<div id="parent">
+<div id="child">
+<form>
+<input id="theFile" type="file" onchange="removeDiv();">
+</form>
+</div>
+</div>
+
+
+
+</body>
+</html>
diff --git a/ManualTests/remove-on-drop-crash.html b/ManualTests/remove-on-drop-crash.html
new file mode 100644
index 000000000..c50adbada
--- /dev/null
+++ b/ManualTests/remove-on-drop-crash.html
@@ -0,0 +1,10 @@
+<body>
+Load <a href="http://www.google.com/">Google</a> and drag the logo onto this page. The second time you drag it on, Safari will crash.
+<script>
+function deleteSelection() {
+ document.execCommand("delete");
+}
+document.designMode="on";
+document.body.addEventListener("DOMNodeInserted", deleteSelection, false);
+</script>
+</body>
diff --git a/ManualTests/remove-select-onchange.html b/ManualTests/remove-select-onchange.html
new file mode 100644
index 000000000..51004b579
--- /dev/null
+++ b/ManualTests/remove-select-onchange.html
@@ -0,0 +1,9 @@
+<p>This test shouldn't crash when you pick something from select, even though it removes itself.
+</p>
+<select id="foo" onchange='sel.parentNode.removeChild(sel)'>
+<option>Boom</option>
+<option>Shouldn't crash when you pick this.</option>
+</select>
+<script>
+var sel = document.getElementById("foo");
+</script> \ No newline at end of file
diff --git a/ManualTests/reset-initiatedDrag.html b/ManualTests/reset-initiatedDrag.html
new file mode 100644
index 000000000..a1c077002
--- /dev/null
+++ b/ManualTests/reset-initiatedDrag.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=9466">Bugzilla bug 9466</a> Assertion failure when dragging an image from the document into Safari's address bar</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b><br>
+1. Drag the apple image into this window&rsquo;s address bar.<br>
+2. Choose History &gt; Back to go back to this page.<br>
+3. Drag a URL from a TextEdit document into this window.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+In step 3, this window will accept the dragged URL.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+In step 1, Safari will quit unexpectedly due to an assertion failure. Alternatively,
+in step 3, this window will not accept the dragged URL.
+</p>
+
+<img src="resources/apple.jpg">
+
+</body>
+</html>
diff --git a/ManualTests/resize-events.html b/ManualTests/resize-events.html
new file mode 100644
index 000000000..42aebb11f
--- /dev/null
+++ b/ManualTests/resize-events.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+ <style>
+ div.block { height: 100px; border: 1px solid black; margin:10px; }
+ </style>
+ <script>
+ var resizecount = 0;
+ var loaded = false;
+ window.onresize = function() {
+ resizecount++;
+ document.getElementById('count1').innerHTML = resizecount;
+ }
+ </script>
+</head>
+<body>
+ <div>
+ Test how many resize events are emitted during page load and dynamic content generation.
+
+ Do not resize the page. It invalidates the test.
+ <p style="text-indent: 10px" id=result1>
+ Resize events (should be 0 or 1): <span id=count1>0</span>
+ </div>
+ <div id=expandingblock>
+ </div>
+ <script>
+ var blockcount = 0;
+ function addBlock() {
+ var el = document.createElement('div');
+ el.setAttribute('class','block');
+ document.getElementById('expandingblock').appendChild(el);
+ if (++blockcount < 30)
+ setTimeout(addBlock, 20);
+ else
+ finish();
+ }
+ function finish() {
+ var result;
+ // 0 or 1 resize events are acceptable.
+ if (resizecount < 2)
+ result = '<p style="color: green">PASS';
+ else
+ result = '<p style="color: red">FAIL';
+ var resultElement = document.getElementById('result1')
+ resultElement.innerHTML += result;
+ }
+ onload = addBlock;
+ </script>
+</body> \ No newline at end of file
diff --git a/ManualTests/resources/200x100.png b/ManualTests/resources/200x100.png
new file mode 100644
index 000000000..f7cf78472
--- /dev/null
+++ b/ManualTests/resources/200x100.png
Binary files differ
diff --git a/ManualTests/resources/200x200.png b/ManualTests/resources/200x200.png
new file mode 100644
index 000000000..35414cdc1
--- /dev/null
+++ b/ManualTests/resources/200x200.png
Binary files differ
diff --git a/ManualTests/resources/3dolph.gif b/ManualTests/resources/3dolph.gif
new file mode 100644
index 000000000..2a1801fa6
--- /dev/null
+++ b/ManualTests/resources/3dolph.gif
Binary files differ
diff --git a/ManualTests/resources/ArrayParameterTestApplet.class b/ManualTests/resources/ArrayParameterTestApplet.class
new file mode 100644
index 000000000..0435db659
--- /dev/null
+++ b/ManualTests/resources/ArrayParameterTestApplet.class
Binary files differ
diff --git a/ManualTests/resources/ArrayParameterTestApplet.java b/ManualTests/resources/ArrayParameterTestApplet.java
new file mode 100644
index 000000000..d145844e4
--- /dev/null
+++ b/ManualTests/resources/ArrayParameterTestApplet.java
@@ -0,0 +1,89 @@
+import java.applet.Applet;
+import java.awt.*;
+import java.awt.event.*;
+
+
+public class ArrayParameterTestApplet
+ extends Applet
+{
+ public void init()
+ {
+ setLayout(new BorderLayout());
+ }
+
+
+ public void start()
+ {
+ }
+
+
+ public void stop()
+ {
+ }
+
+
+ public void destroy()
+ {
+ }
+
+
+ public void arrayFunction(String [] array) {
+ System.out.println("arrayFunction called");
+ for (int i = 0; i < array.length; i++)
+ System.out.println(array[i]);
+ }
+
+ public void booleanFunction(boolean[] array) {
+ System.out.println("booleanArray called");
+ for (int i = 0; i < array.length; i++)
+ System.out.println(array[i]);
+ }
+
+ public void byteFunction(byte[] array) {
+ System.out.println("byteArray called");
+ for (int i = 0; i < array.length; i++)
+ System.out.println(array[i]);
+ }
+
+ public void charFunction(char[] array) {
+ System.out.println("charArray called");
+ for (int i = 0; i < array.length; i++)
+ System.out.println(array[i]);
+ }
+
+ public void shortFunction(short[] array) {
+ System.out.println("shortArray called");
+ for (int i = 0; i < array.length; i++)
+ System.out.println(array[i]);
+ }
+
+ public void intFunction(int[] array) {
+ System.out.println("intArray called");
+ for (int i = 0; i < array.length; i++)
+ System.out.println(array[i]);
+ }
+
+ public void longFunction(long[] array) {
+ System.out.println("longArray called");
+ for (int i = 0; i < array.length; i++)
+ System.out.println(array[i]);
+ }
+
+ public void floatFunction(float[] array) {
+ System.out.println("floatArray called");
+ for (int i = 0; i < array.length; i++)
+ System.out.println(array[i]);
+ }
+
+ public void doubleFunction(double[] array) {
+ System.out.println("doubleArray called");
+ for (int i = 0; i < array.length; i++)
+ System.out.println(array[i]);
+ }
+
+ public void objectFunction(Applet[] array) {
+ System.out.println("objectArray called");
+ for (int i = 0; i < array.length; i++)
+ System.out.println(array[i]);
+ }
+}
diff --git a/ManualTests/resources/CheckerApplet.class b/ManualTests/resources/CheckerApplet.class
new file mode 100644
index 000000000..684aa8192
--- /dev/null
+++ b/ManualTests/resources/CheckerApplet.class
Binary files differ
diff --git a/ManualTests/resources/CheckerApplet.java b/ManualTests/resources/CheckerApplet.java
new file mode 100644
index 000000000..895e33c5a
--- /dev/null
+++ b/ManualTests/resources/CheckerApplet.java
@@ -0,0 +1,21 @@
+import java.applet.Applet;
+import java.awt.Color;
+import java.awt.Component;
+
+public class CheckerApplet extends Applet
+{
+
+ public boolean checkVersion()
+ {
+ return true;
+ }
+
+ public void start()
+ {
+ setBackground(new Color(255, 255, 255));
+ }
+
+ public CheckerApplet()
+ {
+ }
+}
diff --git a/ManualTests/resources/Default-port-frame-contents.html b/ManualTests/resources/Default-port-frame-contents.html
new file mode 100644
index 000000000..3565b2829
--- /dev/null
+++ b/ManualTests/resources/Default-port-frame-contents.html
@@ -0,0 +1,4 @@
+My URL is: <script>document.write(document.URL);</script>
+<script>
+ window.testData = "Sam is SOOOOOO hot!";
+</script> \ No newline at end of file
diff --git a/ManualTests/resources/DrawMessage.class b/ManualTests/resources/DrawMessage.class
new file mode 100644
index 000000000..6de7afc5d
--- /dev/null
+++ b/ManualTests/resources/DrawMessage.class
Binary files differ
diff --git a/ManualTests/resources/StringTypeTest.class b/ManualTests/resources/StringTypeTest.class
new file mode 100644
index 000000000..3a8128733
--- /dev/null
+++ b/ManualTests/resources/StringTypeTest.class
Binary files differ
diff --git a/ManualTests/resources/StringTypeTest.java b/ManualTests/resources/StringTypeTest.java
new file mode 100644
index 000000000..9b8dd783e
--- /dev/null
+++ b/ManualTests/resources/StringTypeTest.java
@@ -0,0 +1,7 @@
+import java.applet.*;
+
+public class StringTypeTest extends Applet {
+ public String getString() {
+ return new String("hello");
+ }
+} \ No newline at end of file
diff --git a/ManualTests/resources/TestApplet.class b/ManualTests/resources/TestApplet.class
new file mode 100644
index 000000000..05fabdd70
--- /dev/null
+++ b/ManualTests/resources/TestApplet.class
Binary files differ
diff --git a/ManualTests/resources/TestApplet.java b/ManualTests/resources/TestApplet.java
new file mode 100644
index 000000000..e4758a39f
--- /dev/null
+++ b/ManualTests/resources/TestApplet.java
@@ -0,0 +1,16 @@
+import java.applet.Applet;
+
+public class TestApplet extends Applet {
+ public static int MAGIC_NUMBER = 1;
+ public int field;
+
+ public void init()
+ {
+ field = MAGIC_NUMBER;
+ }
+
+ public int method()
+ {
+ return MAGIC_NUMBER;
+ }
+} \ No newline at end of file
diff --git a/ManualTests/resources/alert-and-go-back.html b/ManualTests/resources/alert-and-go-back.html
new file mode 100644
index 000000000..55a5b5063
--- /dev/null
+++ b/ManualTests/resources/alert-and-go-back.html
@@ -0,0 +1,4 @@
+<script>
+history.back();
+alert("Wait a moment and then dismiss this alert. If there is no crash, the test succeeded.");
+</script>
diff --git a/ManualTests/resources/animated-10x.gif b/ManualTests/resources/animated-10x.gif
new file mode 100644
index 000000000..56bdb0e1f
--- /dev/null
+++ b/ManualTests/resources/animated-10x.gif
Binary files differ
diff --git a/ManualTests/resources/animated-2x.gif b/ManualTests/resources/animated-2x.gif
new file mode 100644
index 000000000..71080bd88
--- /dev/null
+++ b/ManualTests/resources/animated-2x.gif
Binary files differ
diff --git a/ManualTests/resources/animated-infinite.gif b/ManualTests/resources/animated-infinite.gif
new file mode 100644
index 000000000..8bca4a835
--- /dev/null
+++ b/ManualTests/resources/animated-infinite.gif
Binary files differ
diff --git a/ManualTests/resources/apple.jpg b/ManualTests/resources/apple.jpg
new file mode 100644
index 000000000..bce4c386e
--- /dev/null
+++ b/ManualTests/resources/apple.jpg
Binary files differ
diff --git a/ManualTests/resources/before-go-back.html b/ManualTests/resources/before-go-back.html
new file mode 100644
index 000000000..10d8dbe95
--- /dev/null
+++ b/ManualTests/resources/before-go-back.html
@@ -0,0 +1,17 @@
+<html>
+<body>
+<a href="will-go-back.html">
+Click this link</a>
+<br>
+<br>
+<u>Manual test :</u>
+Just click on the link : if the webkit doesn't crash, the test has succeed.
+<br>
+<u>Details:</u>
+This test checks if you can go back to a _blank previously tab-opened page.
+<br>
+When you click on the above link, one page is loaded and tries to go back.
+<br>
+If the webkit doesn't meet an assertion failure : this test is successfull.
+</body>
+</html>
diff --git a/ManualTests/resources/big-page.html b/ManualTests/resources/big-page.html
new file mode 100644
index 000000000..987ea75c9
--- /dev/null
+++ b/ManualTests/resources/big-page.html
@@ -0,0 +1,2 @@
+<p>This page is large enough to need to be scrolled in a 200x200 frame.</p>
+<div style="width: 400px; height: 400px; background-color: blue"></div>
diff --git a/ManualTests/resources/chrome-bidi-text-window.html b/ManualTests/resources/chrome-bidi-text-window.html
new file mode 100644
index 000000000..a2333b7f1
--- /dev/null
+++ b/ManualTests/resources/chrome-bidi-text-window.html
@@ -0,0 +1,61 @@
+<head>
+ <meta name="content-type" content="text/html; charset=UTF-8">
+ <style>
+ body { margin-top: 0; }
+ select { display: block; font-size: 13px; }
+ div#reference { font: 13px 'Lucida Grande'; text-align: center; height: 24px; }
+ </style>
+ <script>
+ function setTitle(text)
+ {
+ document.title = text;
+ document.getElementById("reference").innerHTML = text;
+ }
+ </script>
+</head>
+<body>
+<div id="reference"></div>
+<p>
+ This tests drawing bidirectional text in Windows Safari chrome.
+</p>
+<p>
+ Select each item from the list and verify that the window title is
+ rendered exactly like the selected item.
+ Pay attention to the ordering of
+ the characters, the direction of parentheses, diacritics and combining marks,
+ and shaping of Arabic letters. You can ignore small differences in the overall width
+ of the text.
+ For your convenience, the
+ text to match will be displayed at the top of the window.
+</p>
+<select onchange="setTitle(item(selectedIndex).innerText)" size="9">
+ <option>
+ First שניה (03) רביעית fifth
+ </option>
+ <option>
+ &#x202b;First שניה (03) רביעית fifth&#x202c;
+ </option>
+ <option>
+ &#x202d;First שניה (03) רביעית fifth&#x202c;
+ </option>
+ <option>
+ &#x202e;First שניה (03) רביעית fifth&#x202c;
+ </option>
+ <option>
+ משהו ×¢× × Ö´×§Ö¼×•Ö¼×“
+ </option>
+ <option>
+ اللغة العربية
+ </option>
+ <option>
+ Et volia&#x0300: ATSUI!
+ </option>
+ <option>
+ Directional &#x202e;overrides&#x202c; are confusing.
+ </option>
+ <option>
+ She said &ldquo;&#x202b;יש TNT במזוודה!&#x202c;&rdquo; and ran off
+ </option>
+</select>
+</body>
+</html>
diff --git a/ManualTests/resources/containsAnimatedGif.html b/ManualTests/resources/containsAnimatedGif.html
new file mode 100644
index 000000000..77b2cbfdd
--- /dev/null
+++ b/ManualTests/resources/containsAnimatedGif.html
@@ -0,0 +1,3 @@
+<html>
+<img src="http://127.0.0.1:8000/misc/resources/animated-gif-with-offsets.gif" />
+</html>
diff --git a/ManualTests/resources/cur-hotspot.cur b/ManualTests/resources/cur-hotspot.cur
new file mode 100644
index 000000000..8107e4796
--- /dev/null
+++ b/ManualTests/resources/cur-hotspot.cur
Binary files differ
diff --git a/ManualTests/resources/cursor-empty-url.css b/ManualTests/resources/cursor-empty-url.css
new file mode 100644
index 000000000..0479af1e7
--- /dev/null
+++ b/ManualTests/resources/cursor-empty-url.css
@@ -0,0 +1 @@
+#target { cursor: url(''), auto; }
diff --git a/ManualTests/resources/drag-image.png b/ManualTests/resources/drag-image.png
new file mode 100644
index 000000000..a229616c1
--- /dev/null
+++ b/ManualTests/resources/drag-image.png
Binary files differ
diff --git a/ManualTests/resources/drop-in-empty-doc.xhtml b/ManualTests/resources/drop-in-empty-doc.xhtml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/ManualTests/resources/drop-in-empty-doc.xhtml
diff --git a/ManualTests/resources/empty-document-goes-back.html b/ManualTests/resources/empty-document-goes-back.html
new file mode 100644
index 000000000..f8f15b7c3
--- /dev/null
+++ b/ManualTests/resources/empty-document-goes-back.html
@@ -0,0 +1,8 @@
+<html>
+<body>
+<script>
+ document.body.offsetWidth;
+ setTimeout("window.history.back();", 0);
+</script>
+</body>
+</html>
diff --git a/ManualTests/resources/empty-file.js b/ManualTests/resources/empty-file.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/ManualTests/resources/empty-file.js
diff --git a/ManualTests/resources/favicon-loads-for-local-files.html b/ManualTests/resources/favicon-loads-for-local-files.html
new file mode 100644
index 000000000..b8e875f2a
--- /dev/null
+++ b/ManualTests/resources/favicon-loads-for-local-files.html
@@ -0,0 +1,10 @@
+<html>
+<head>
+</head>
+<link type="image/png" href="favicon.png" sizes="64x64" rel="icon" />
+<body>
+<p>It's expected that you see a favicon displayed for this page when you open it as a local file.</p>
+<p>The favicon looks like this:</p>
+<img src="favicon.png"/>
+</body>
+</html>
diff --git a/ManualTests/resources/favicon.png b/ManualTests/resources/favicon.png
new file mode 100644
index 000000000..35717cca5
--- /dev/null
+++ b/ManualTests/resources/favicon.png
Binary files differ
diff --git a/ManualTests/resources/frame-textarea.html b/ManualTests/resources/frame-textarea.html
new file mode 100644
index 000000000..54a3e0992
--- /dev/null
+++ b/ManualTests/resources/frame-textarea.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<body>
+ <textarea>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque nulla est, tincidunt pharetra hendrerit nec, ultrices non mi. Fusce feugiat tempus mollis. Nulla sapien augue, iaculis sit amet ornare vitae, ultricies non ante. Aliquam dignissim porta dolor, ac laoreet lectus faucibus ac. Phasellus luctus eros in erat fermentum rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec venenatis bibendum quam.
+
+Cras vel tellus tellus, accumsan malesuada erat. Mauris tincidunt fermentum massa sit amet ornare. Sed pellentesque ultrices sapien, non cursus felis vestibulum id. Integer vitae enim nec lacus hendrerit consequat id in purus. Suspendisse porta, enim nec congue auctor, nisi augue vulputate magna, eu sollicitudin elit felis id erat. Curabitur in ante elit, et lobortis nulla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean gravida odio non nulla porta convallis.
+ </textarea>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/resources/frame1.html b/ManualTests/resources/frame1.html
new file mode 100644
index 000000000..50f3b9838
--- /dev/null
+++ b/ManualTests/resources/frame1.html
@@ -0,0 +1,8 @@
+<html>
+<head>
+<title>frame1</title>
+</head>
+<body>
+Frame 1
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/resources/frame2.html b/ManualTests/resources/frame2.html
new file mode 100644
index 000000000..d74db3814
--- /dev/null
+++ b/ManualTests/resources/frame2.html
@@ -0,0 +1,8 @@
+<html>
+<head>
+<title>frame2</title>
+</head>
+<body>
+Frame 2
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/resources/hash-ref-test.html b/ManualTests/resources/hash-ref-test.html
new file mode 100644
index 000000000..ed45778bc
--- /dev/null
+++ b/ManualTests/resources/hash-ref-test.html
@@ -0,0 +1,24 @@
+<html>
+<head>
+<title>Test Case for Bug 13067: Manually adding #hash to URL reloads entire page instead of jumping to #hash location in cached page</title>
+<style>
+body {
+ min-height: 10000px;
+ margin-top: 0px;
+ padding-top: 0px;
+}
+div {
+ min-height: 100px;
+ border: 1px solid black;
+}
+</style>
+</head>
+<body>
+top
+<div id="div1">div1</div>
+<div id="div2">div2</div>
+<div id="div3">div3</div>
+<div id="div4">div4</div>
+<div id="div5">div5</div>
+</body>
+</html>
diff --git a/ManualTests/resources/helpCursor.tiff b/ManualTests/resources/helpCursor.tiff
new file mode 100644
index 000000000..20b56b904
--- /dev/null
+++ b/ManualTests/resources/helpCursor.tiff
Binary files differ
diff --git a/ManualTests/resources/hover-subframe-1.html b/ManualTests/resources/hover-subframe-1.html
new file mode 100644
index 000000000..181956b1a
--- /dev/null
+++ b/ManualTests/resources/hover-subframe-1.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<style>
+body { margin: 0px; }
+.outer {
+ margin: -100px;
+ width: 400px;
+ height: 500px;
+ background-color: yellow;
+}
+.outer:hover {
+ background-color: red;
+}
+.inner {
+ visibility: hidden;
+ width: 100%;
+ height: 50%;
+ background-color: cyan;
+}
+</style>
+</head>
+
+<body>
+<div class="outer"
+ onmouseover="firstChild.style.visibility='visible'"
+ onmouseout="firstChild.style.visibility='hidden'"><div class="inner"></div></div>
+</body>
+</html>
diff --git a/ManualTests/resources/hover-subframe-2.html b/ManualTests/resources/hover-subframe-2.html
new file mode 100644
index 000000000..ca4ca4094
--- /dev/null
+++ b/ManualTests/resources/hover-subframe-2.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<style>
+body { margin: 0px; }
+.outer {
+ margin: -100px;
+ width: 400px;
+ height: 500px;
+ background-color: green;
+}
+.outer:hover {
+ background-color: red;
+}
+.inner {
+ visibility: hidden;
+ width: 100%;
+ height: 50%;
+ background-color: cyan;
+}
+</style>
+</head>
+
+<body>
+<div class="outer"
+ onmouseover="firstChild.style.visibility='visible'"
+ onmouseout="firstChild.style.visibility='hidden'"><div class="inner"></div></div>
+</body>
+</html>
diff --git a/ManualTests/resources/iframe-reloaded-on-touch.html b/ManualTests/resources/iframe-reloaded-on-touch.html
new file mode 100644
index 000000000..0fa98c51f
--- /dev/null
+++ b/ManualTests/resources/iframe-reloaded-on-touch.html
@@ -0,0 +1,3 @@
+<body>
+<div ontouchstart="window.location.reload()" style="background-color:green;height:200px;width:200px">Touch me</div>
+</body>
diff --git a/ManualTests/resources/large-size-image-crash.gif b/ManualTests/resources/large-size-image-crash.gif
new file mode 100644
index 000000000..6da80af28
--- /dev/null
+++ b/ManualTests/resources/large-size-image-crash.gif
Binary files differ
diff --git a/ManualTests/resources/liveconnect-security-exception-popup.html b/ManualTests/resources/liveconnect-security-exception-popup.html
new file mode 100644
index 000000000..cea621bf9
--- /dev/null
+++ b/ManualTests/resources/liveconnect-security-exception-popup.html
@@ -0,0 +1,47 @@
+<html>
+<head>
+<!--
+Sorry for the hackery in this test. Currently, we have no elegant way to
+catch Java errors and print out an intelligent response.
+-->
+
+<title>popup window</title>
+<script>
+function print(message) {
+ var paragraph = document.createElement("p");
+ paragraph.appendChild(document.createTextNode(message));
+ document.getElementById("console").appendChild(paragraph);
+}
+
+function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ }
+
+ print(
+ "applet.field returned " +
+ document.getElementById('applet').field
+ );
+
+ document.getElementById('applet').field += 1;
+ print(
+ "incremented applet.field by 1"
+ );
+
+ print(
+ "applet.field returned " +
+ document.getElementById('applet').field
+ );
+
+ print(
+ "applet.method() returned " +
+ document.getElementById('applet').method()
+ );
+}
+</script>
+</head>
+<body onload="test();">
+<applet id='applet' code="TestApplet.class" codebase="."></applet>
+<div id='console'/>
+</body>
+</html>
diff --git a/ManualTests/resources/load-deferrer-script-element.js b/ManualTests/resources/load-deferrer-script-element.js
new file mode 100644
index 000000000..fdecdb4c6
--- /dev/null
+++ b/ManualTests/resources/load-deferrer-script-element.js
@@ -0,0 +1,5 @@
+if (jsLoaded) {
+ log("Button was clicked.");
+ // Use a big timeout value to ensure that error messages do not show up.
+ setTimeout(function() { if (runningModal) log("Error: This line should not show up!"); }, 3000);
+}
diff --git a/ManualTests/resources/lorem-text.html b/ManualTests/resources/lorem-text.html
new file mode 100644
index 000000000..12a42a65d
--- /dev/null
+++ b/ManualTests/resources/lorem-text.html
@@ -0,0 +1,34 @@
+<HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=UTF-8"></HEAD><BODY><P>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
+ rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem
+ ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing
+ elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna
+ aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
+ dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus
+ est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
+ sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam
+ et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
+ takimata sanctus est Lorem ipsum dolor sit amet.
+ </P>
+ <P> Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
+ molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero
+ eros et accumsan et iusto odio dignissim qui blandit praesent luptatum
+ zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum
+ dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
+ euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
+ </P>
+ <P> Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
+ suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem
+ vel eum iriure dolor in hendrerit in vulputate velit esse molestie
+ consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et
+ accumsan et iusto odio dignissim qui blandit praesent luptatum zzril
+ delenit augue duis dolore te feugait nulla facilisi.
+ </P>
+ <P> Nam liber tempor cum soluta nobis eleifend option congue nihil
+ imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum
+ dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
+ euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut
+ wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
+ suscipit lobortis nisl ut aliquip ex ea commodo consequat.</P></BODY></HTML> \ No newline at end of file
diff --git a/ManualTests/resources/mouseevent-on-closeddoc.html b/ManualTests/resources/mouseevent-on-closeddoc.html
new file mode 100644
index 000000000..569616a97
--- /dev/null
+++ b/ManualTests/resources/mouseevent-on-closeddoc.html
@@ -0,0 +1 @@
+<body onload="document.open();document.close();document.open();"></body>
diff --git a/ManualTests/resources/multiFileResources/post-echo-and-notify-done.cgi b/ManualTests/resources/multiFileResources/post-echo-and-notify-done.cgi
new file mode 100755
index 000000000..90036729e
--- /dev/null
+++ b/ManualTests/resources/multiFileResources/post-echo-and-notify-done.cgi
@@ -0,0 +1,12 @@
+#!/usr/bin/perl -w
+
+print "Content-type: text/html\n\n";
+
+if ($ENV{'REQUEST_METHOD'} eq "POST") {
+ read(STDIN, $request, $ENV{'CONTENT_LENGTH'})
+ || die "Could not get query\n";
+ print "<pre>$request</pre>";
+ print "<script>if (window.testRunner) testRunner.notifyDone();</script>";
+} else {
+ print "Wrong method: " . $ENV{'REQUEST_METHOD'} . "\n";
+}
diff --git a/ManualTests/resources/multiFileResources/testFile1.html b/ManualTests/resources/multiFileResources/testFile1.html
new file mode 100644
index 000000000..431355426
--- /dev/null
+++ b/ManualTests/resources/multiFileResources/testFile1.html
@@ -0,0 +1,4 @@
+<script>
+parent.log('test file 1 submitted');
+parent.submittedFiles++;
+</script> \ No newline at end of file
diff --git a/ManualTests/resources/multiFileResources/testFile2.html b/ManualTests/resources/multiFileResources/testFile2.html
new file mode 100644
index 000000000..90167f708
--- /dev/null
+++ b/ManualTests/resources/multiFileResources/testFile2.html
@@ -0,0 +1,4 @@
+<script>
+parent.log('test file 2 submitted');
+parent.submittedFiles++;
+</script> \ No newline at end of file
diff --git a/ManualTests/resources/multiFileResources/testFile3.html b/ManualTests/resources/multiFileResources/testFile3.html
new file mode 100644
index 000000000..f89ddf3db
--- /dev/null
+++ b/ManualTests/resources/multiFileResources/testFile3.html
@@ -0,0 +1,5 @@
+<script>
+parent.log('test file 3 submitted');
+parent.submittedFiles++;
+parent.verifyResults();
+</script> \ No newline at end of file
diff --git a/ManualTests/resources/named-window-blank-target-step2.html b/ManualTests/resources/named-window-blank-target-step2.html
new file mode 100644
index 000000000..027560381
--- /dev/null
+++ b/ManualTests/resources/named-window-blank-target-step2.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=7747">Bugzilla bug 7747</a> REGRESSION: Background tab/window auto-refresh in GMail will take focus.</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST (continued):</b> <br>
+STEP 3: Click <a target="foo" href="named-window-blank-target-step3.html">this link</a>.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+If this window is frontmost after STEP 4, then the test FAILED.
+</p>
+
+
+</body>
+</html>
diff --git a/ManualTests/resources/named-window-blank-target-step3.html b/ManualTests/resources/named-window-blank-target-step3.html
new file mode 100644
index 000000000..c51052245
--- /dev/null
+++ b/ManualTests/resources/named-window-blank-target-step3.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=7747">Bugzilla bug 7747</a> REGRESSION: Background tab/window auto-refresh in GMail will take focus.</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br>
+STEP 4: Click <a href="named-window-blank-target-step4.html">this link</a>.
+</p>
+
+</body>
+</html>
diff --git a/ManualTests/resources/named-window-blank-target-step4.html b/ManualTests/resources/named-window-blank-target-step4.html
new file mode 100644
index 000000000..ee07450c9
--- /dev/null
+++ b/ManualTests/resources/named-window-blank-target-step4.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=7747">Bugzilla bug 7747</a> REGRESSION: Background tab/window auto-refresh in GMail will take focus.</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+If this window is frontmost after STEP 4, the test PASSED.
+</p>
+
+</body>
+</html>
diff --git a/ManualTests/resources/navigation-during-onload-container.html b/ManualTests/resources/navigation-during-onload-container.html
new file mode 100644
index 000000000..cbeb9920d
--- /dev/null
+++ b/ManualTests/resources/navigation-during-onload-container.html
@@ -0,0 +1,10 @@
+<script>
+onload = function() {
+ window.location.replace("#foo");
+};
+</script>
+container
+<iframe src="http://127.0.0.1:8000/history/resources/back-during-onload-middle.html"></iframe>
+<p>
+Click the back button and see if the browser crashes.
+</p>
diff --git a/ManualTests/resources/nested-plug-ins-inner-frame.html b/ManualTests/resources/nested-plug-ins-inner-frame.html
new file mode 100644
index 000000000..193bbe97d
--- /dev/null
+++ b/ManualTests/resources/nested-plug-ins-inner-frame.html
@@ -0,0 +1 @@
+<embed id="plugin" width='100' height='100' src='spinbox.swf' wmode='window'>
diff --git a/ManualTests/resources/nested-plug-ins-outer-frame.html b/ManualTests/resources/nested-plug-ins-outer-frame.html
new file mode 100644
index 000000000..c447d165e
--- /dev/null
+++ b/ManualTests/resources/nested-plug-ins-outer-frame.html
@@ -0,0 +1,3 @@
+<embed id="plugin" width='100' height='100' src='spinbox.swf' wmode='window'>
+<br>
+<iframe style="height: 200px; width: 200px;" id='inner' src='nested-plug-ins-inner-frame.html'></iframe>
diff --git a/ManualTests/resources/nestedframesets.html b/ManualTests/resources/nestedframesets.html
new file mode 100644
index 000000000..3202fc023
--- /dev/null
+++ b/ManualTests/resources/nestedframesets.html
@@ -0,0 +1,4 @@
+<frameset cols="300,300" rows="*">
+ <frame src="testframeset.html" >
+ <frame src="lorem-text.html">
+</frameset> \ No newline at end of file
diff --git a/ManualTests/resources/non-animated.gif b/ManualTests/resources/non-animated.gif
new file mode 100644
index 000000000..b6a854067
--- /dev/null
+++ b/ManualTests/resources/non-animated.gif
Binary files differ
diff --git a/ManualTests/resources/open-after-close-popup.html b/ManualTests/resources/open-after-close-popup.html
new file mode 100644
index 000000000..4f443d01f
--- /dev/null
+++ b/ManualTests/resources/open-after-close-popup.html
@@ -0,0 +1,5 @@
+<html>
+ <body>
+ PASS: window.open succeeded after window.close using same name.
+ </body>
+</html>
diff --git a/ManualTests/resources/open-close-tokenizer-crash.html b/ManualTests/resources/open-close-tokenizer-crash.html
new file mode 100644
index 000000000..b45110a22
--- /dev/null
+++ b/ManualTests/resources/open-close-tokenizer-crash.html
@@ -0,0 +1,8 @@
+<html>
+<head>
+<script Language="javaScript">
+self.close();
+</script>
+<script language="javascript" src="empty-file.js"></script>
+</head>
+</html>
diff --git a/ManualTests/resources/orange.mov b/ManualTests/resources/orange.mov
new file mode 100644
index 000000000..a17e81b02
--- /dev/null
+++ b/ManualTests/resources/orange.mov
Binary files differ
diff --git a/ManualTests/resources/plain-text-paste.dmg b/ManualTests/resources/plain-text-paste.dmg
new file mode 100644
index 000000000..f22188df0
--- /dev/null
+++ b/ManualTests/resources/plain-text-paste.dmg
Binary files differ
diff --git a/ManualTests/resources/plugin-in-iframe-scroll-iframe.html b/ManualTests/resources/plugin-in-iframe-scroll-iframe.html
new file mode 100644
index 000000000..b2593b0aa
--- /dev/null
+++ b/ManualTests/resources/plugin-in-iframe-scroll-iframe.html
@@ -0,0 +1,6 @@
+<object type="video/quicktime" style="background-color: red; width: 298px; height: 298px; border:solid 1px">
+ <param name="src" value="orange.mov">
+ <param name="controller" value="false">
+ <param name="autoplay" value="false">
+ <param name="scale" value="tofit">
+</object>
diff --git a/ManualTests/resources/popup200x100.html b/ManualTests/resources/popup200x100.html
new file mode 100644
index 000000000..7e649c0c0
--- /dev/null
+++ b/ManualTests/resources/popup200x100.html
@@ -0,0 +1,8 @@
+<html>
+<head>
+<title>Popup 200x100</title>
+</head>
+<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginheight="0" marginwidth="0">
+<img src="200x100.png" width="200" height="100">
+</body>
+</html>
diff --git a/ManualTests/resources/popup200x200.html b/ManualTests/resources/popup200x200.html
new file mode 100644
index 000000000..c569c0c3d
--- /dev/null
+++ b/ManualTests/resources/popup200x200.html
@@ -0,0 +1,8 @@
+<html>
+<head>
+<title>Popup 100x100</title>
+</head>
+<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginheight="0" marginwidth="0">
+<img src="200x200.png" width="200" height="200">
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/resources/print-subframe.html b/ManualTests/resources/print-subframe.html
new file mode 100644
index 000000000..272b6841d
--- /dev/null
+++ b/ManualTests/resources/print-subframe.html
@@ -0,0 +1 @@
+<p>This text in the subframe should be printed.</p>
diff --git a/ManualTests/resources/redraw-page-cache-visited-links-2.html b/ManualTests/resources/redraw-page-cache-visited-links-2.html
new file mode 100644
index 000000000..c6568dc90
--- /dev/null
+++ b/ManualTests/resources/redraw-page-cache-visited-links-2.html
@@ -0,0 +1,19 @@
+<html>
+<head>
+<script>
+function runTest() {
+// Uncomment to make this an automated test
+// // Uses window.history hack; see http://bugs.webkit.org/show_bug.cgi?id=7135
+// window.history[99999] = 1;
+// window.history.back();
+}
+</script>
+</head>
+<body onload="runTest();">
+<div><a href="http://bugs.webkit.org/show_bug.cgi?id=8079">Bug 8079 REGRESSION: Redraw from page cache does not show visited links</a></div>
+<div><br><br></div>
+<ol>
+<li value="3">Click the "Back" button on the browser.
+</ol>
+</body>
+</html>
diff --git a/ManualTests/resources/simple-iframe.html b/ManualTests/resources/simple-iframe.html
new file mode 100644
index 000000000..d31caf43b
--- /dev/null
+++ b/ManualTests/resources/simple-iframe.html
@@ -0,0 +1,5 @@
+<html>
+<body>
+ <div style="width:600; height:1000; background-color:purple;"></div>
+</body>
+</html>
diff --git a/ManualTests/resources/simple_image.png b/ManualTests/resources/simple_image.png
new file mode 100644
index 000000000..4685399ca
--- /dev/null
+++ b/ManualTests/resources/simple_image.png
Binary files differ
diff --git a/ManualTests/resources/spinbox.swf b/ManualTests/resources/spinbox.swf
new file mode 100644
index 000000000..220d00adf
--- /dev/null
+++ b/ManualTests/resources/spinbox.swf
Binary files differ
diff --git a/ManualTests/resources/testframe-link_text.html b/ManualTests/resources/testframe-link_text.html
new file mode 100644
index 000000000..24c862da3
--- /dev/null
+++ b/ManualTests/resources/testframe-link_text.html
@@ -0,0 +1,5 @@
+<p title="Can you see this title?" style="margin-left: -10px; margin-top: -15px;"><a href="http://www.google.com">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur dui nunc, tristique a, varius commodo, pellentesque in, augue. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur vehicula ante et nisl. Sed vitae sapien. Quisque turpis. Nullam libero urna, semper quis, tincidunt a, aliquam eget, nulla. Proin sollicitudin, purus ut aliquet imperdiet, eros tortor vehicula ante, id rutrum erat sapien ut sem. Mauris urna velit, scelerisque vitae, aliquam non, venenatis vitae, nibh. In nunc massa, commodo in, imperdiet vitae, tempor ut, neque. Suspendisse pharetra, mauris in scelerisque iaculis, tellus magna tempus elit, eget ultricies libero magna eget tortor. Suspendisse nibh quam, commodo sit amet, bibendum dapibus, sollicitudin eu, nisi. Vestibulum ipsum. Sed eget odio at ante iaculis fermentum. Quisque sed velit. Cras adipiscing, felis sed sodales dictum, felis neque dictum ante, ac dignissim leo nibh id erat. Sed consectetuer, ligula quis faucibus tincidunt, mauris lorem tempor justo, et ultricies nisi enim sit amet eros. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam dictum posuere augue. Sed fringilla. Nunc nunc.
+
+Suspendisse fringilla dui quis libero. Vestibulum ipsum erat, dictum eu, sodales et, pharetra nec, nibh. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec ac turpis eget dolor facilisis commodo. Nunc augue. Quisque in mauris ac nunc mollis dictum. In hac habitasse platea dictumst. Cras sed nisl at purus mattis suscipit. Suspendisse potenti. Maecenas vel dui. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Sed pede nisl, tristique ac, convallis vitae, mattis et, ante. Maecenas tortor. Suspendisse pulvinar ullamcorper pede. Praesent ac lacus. Integer sapien massa, tempus at, interdum ut, fermentum vitae, mi. Nullam pulvinar eros id purus. Duis velit quam, dictum ac, gravida ut, luctus id, dui. Nam id neque.
+
+Aliquam vitae tortor sed massa aliquam pellentesque. Aliquam erat volutpat. Donec sem. Duis lacus. Mauris magna velit, feugiat vel, interdum sit amet, viverra vitae, leo. Fusce lectus arcu, lacinia tempor, sodales vitae, mollis nec, turpis. Donec et elit consequat ligula egestas aliquam. Aliquam a turpis. Phasellus quis magna. Pellentesque vehicula, ligula ac tristique sodales, odio arcu mollis lorem, a vestibulum quam ipsum ut orci. In accumsan malesuada nibh. Quisque accumsan, augue non egestas egestas, nibh arcu varius nunc, at ornare ipsum libero et eros.</a></p> \ No newline at end of file
diff --git a/ManualTests/resources/testframeset.html b/ManualTests/resources/testframeset.html
new file mode 100644
index 000000000..4d907e46d
--- /dev/null
+++ b/ManualTests/resources/testframeset.html
@@ -0,0 +1,4 @@
+<frameset rows="244,516" cols="*">
+ <frame src="testframe-link_text.html" >
+ <frame src="http://www.google.com">
+</frameset> \ No newline at end of file
diff --git a/ManualTests/resources/textarea-form-back-on-submit.html b/ManualTests/resources/textarea-form-back-on-submit.html
new file mode 100644
index 000000000..2348e2d91
--- /dev/null
+++ b/ManualTests/resources/textarea-form-back-on-submit.html
@@ -0,0 +1,16 @@
+<html>
+<head>
+<title>Form with a textarea that goes back on submit</title>
+</head>
+<body>
+<form id="form" method="get" action="data:text/html,<body onload='history.back()'></body>">
+ <p>
+ <textarea name="text" rows="3" cols="10" id="textarea">123</textarea><br />
+ <br />
+ <input type="submit" />
+ <input type="reset" />
+ </p>
+</form>
+
+</body>
+</html>
diff --git a/ManualTests/resources/touch-poster.png b/ManualTests/resources/touch-poster.png
new file mode 100644
index 000000000..781c85afe
--- /dev/null
+++ b/ManualTests/resources/touch-poster.png
Binary files differ
diff --git a/ManualTests/resources/video-tab.html b/ManualTests/resources/video-tab.html
new file mode 100644
index 000000000..fec915f3d
--- /dev/null
+++ b/ManualTests/resources/video-tab.html
@@ -0,0 +1 @@
+<video src="http://movies.apple.com/movies/us/apple/ipoditunes/2007/touch/ads/apple_ipodtouch_touch_r640-9cie.mov" controls autoplay>
diff --git a/ManualTests/resources/webkit-background.png b/ManualTests/resources/webkit-background.png
new file mode 100644
index 000000000..6213bf55a
--- /dev/null
+++ b/ManualTests/resources/webkit-background.png
Binary files differ
diff --git a/ManualTests/resources/will-go-back.html b/ManualTests/resources/will-go-back.html
new file mode 100644
index 000000000..5d09ba39d
--- /dev/null
+++ b/ManualTests/resources/will-go-back.html
@@ -0,0 +1,11 @@
+<html>
+<script>
+function goBack() {
+ history.back();
+}
+</script>
+
+<body onload="if (!window.layoutTestController) goBack();">
+If you can go back using the history : test has succeed.
+</body>
+</html>
diff --git a/ManualTests/resources/window-close-during-parsing-popup1.html b/ManualTests/resources/window-close-during-parsing-popup1.html
new file mode 100644
index 000000000..249cea897
--- /dev/null
+++ b/ManualTests/resources/window-close-during-parsing-popup1.html
@@ -0,0 +1,11 @@
+<html>
+<body onload="alert('FAIL: onload fired')" onunload="alert('FAIL: onunload fired')">
+<script>
+window.close();
+alert('PASS: same script tag after close');
+</script>
+<script>
+alert('FAIL: different script tag after close');
+</script>
+</body>
+</html>
diff --git a/ManualTests/resources/window-close-during-parsing-popup2.html b/ManualTests/resources/window-close-during-parsing-popup2.html
new file mode 100644
index 000000000..9d0e68232
--- /dev/null
+++ b/ManualTests/resources/window-close-during-parsing-popup2.html
@@ -0,0 +1,7 @@
+<html>
+<body onload="window.print()">
+<script>
+window.close()
+</script>
+</body>
+</html>
diff --git a/ManualTests/resources/write-after-open-popup.html b/ManualTests/resources/write-after-open-popup.html
new file mode 100644
index 000000000..ca7320077
--- /dev/null
+++ b/ManualTests/resources/write-after-open-popup.html
@@ -0,0 +1,5 @@
+<html>
+ <body>
+ FAIL: document.write should clear this text.
+ </body>
+</html> \ No newline at end of file
diff --git a/ManualTests/right-click-crash.html b/ManualTests/right-click-crash.html
new file mode 100644
index 000000000..75e2ac204
--- /dev/null
+++ b/ManualTests/right-click-crash.html
@@ -0,0 +1,6 @@
+<html><head><script>
+document.onmousedown = function () { alert("Dismiss this and quickly right click again."); };
+</script></head><body>This page is intended to test crashes caused by repeated right clicks.
+To try to reproduce the bug, right click and then dismiss the dialog by hitting Return.
+Do it over and over again in quick succession. The test passes if you don't see a crash.
+See <a href="https://bugs.webkit.org/show_bug.cgi?id=24049">WebKit bug 24049</a> for details.</body></html>
diff --git a/ManualTests/screen-availLeft.html b/ManualTests/screen-availLeft.html
new file mode 100644
index 000000000..e8d9f390d
--- /dev/null
+++ b/ManualTests/screen-availLeft.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script type="text/javascript">
+ function log(s)
+ {
+ var output = document.getElementById('output');
+ output.innerHTML += s + "<br>";
+ }
+
+ function doTest()
+ {
+ window.setInterval(function() {
+
+ var screen = window.screen;
+ log('screen availLeft: ' + screen.availLeft + ' availTop: ' + screen.availTop);
+
+ }, 1000);
+ }
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+ <p>On a two-monitor system, configure the menu bar to be on the right screen. Then drag this window between screens. When on the left screen, screen.availLeft should be negative.</p>
+ <div id="output"></div>
+</body>
+</html>
diff --git a/ManualTests/scrollIntoView-horizontal.html b/ManualTests/scrollIntoView-horizontal.html
new file mode 100644
index 000000000..1cb909c29
--- /dev/null
+++ b/ManualTests/scrollIntoView-horizontal.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID</b> <a href="rdar://problem/3471901">3471901</a> support scrollIntoView method for DOM elements (3474)</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Following the numbered steps on each button, click each button to scroll the next button into view.</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Next button scrolls into view as specified.</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Next button does not scroll into view, or the button is scrolled to the wrong positon (top, bottom).
+</p>
+
+
+<input id="topleft" type="button" value="STEP 1: click to horizontally scroll STEP 2 into view" onclick="document.getElementById('topright').scrollIntoView(false);">
+
+<input id="topright" type="button" value="STEP 2: click to scroll STEP 3 to BOTTOM of view" style="position: absolute; left: 1200px;" onclick="document.getElementById('bottomleft').scrollIntoView(false);">
+
+<div style="height: 500px; width: 1200px; border: 1px solid;">here is a big empty div</div>
+
+<input id="bottomleft" type="button" value="STEP 3: click to scroll STEP 4 to TOP of view" style="position: absolute; top: 1200px;" onclick="document.getElementById('bottomright').scrollIntoView(true);">
+
+<input id="bottomright" type="button" value="STEP 4: click to scroll STEP 1 to TOP of view (then you're done)" style="position: absolute; top: 1200px; left: 1200px;" onclick="document.getElementById('topleft').scrollIntoView();">
+
+<div style="height: 500px; width: 1200px; border: 1px solid; position: absolute; top: 1300px;">here is a big empty div</div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/scrollIntoView-vertical.html b/ManualTests/scrollIntoView-vertical.html
new file mode 100644
index 000000000..0d8525a37
--- /dev/null
+++ b/ManualTests/scrollIntoView-vertical.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID</b> <a href="rdar://problem/3471901">3471901</a> support scrollIntoView method for DOM elements (3474)</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Following the numbered steps, click each button to scroll the specified colored box into view.</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+A colored box should scroll into view after clicking each button. The text on the button specifies the expected position (top, bottom) of the box scrolled into view.</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Colored box does not scroll into view, or the box is scrolled to the wrong positon (top, bottom).
+</p>
+
+<div id="purplebox" style="background-color:purple; width: 300px; height: 100px;">
+ <input type="button" value="STEP 1: click to scroll yellow box to BOTTOM of view" onclick="document.getElementById('yellowbox').scrollIntoView(false);">
+ <input type="button" value="STEP 4: click to scroll orange box to TOP of view" onclick="document.getElementById('orangebox').scrollIntoView(true);">
+</div>
+
+<div style="height: 500px; width: 500px; border: 1px solid;">here is a big empty div</div>
+
+<div id="greenbox" style="background-color:green; width: 300px; height: 100px;">
+ <input type="button" value="STEP 3: click to scroll purple box to TOP of view" onclick="document.getElementById('purplebox').scrollIntoView();">
+</div>
+
+<div style="height: 500px; width: 500px; border: 1px solid;">here is a big empty div</div>
+
+<div id="yellowbox" style="background-color:yellow; width: 300px; height: 100px;">
+ <input type="button" value="STEP 2: click to scroll green box to TOP of view" onclick="document.getElementById('greenbox').scrollIntoView(true);">
+</div>
+
+<div style="height: 500px; width: 500px; border: 1px solid;">here is a big empty div</div>
+
+<div id="orangebox" style="background-color:orange; width: 300px; height: 100px;">
+ Test Complete
+</div>
+
+<div style="height: 500px; width: 500px; border: 1px solid;">here is a big empty div</div>
+
+</body>
+</html>
diff --git a/ManualTests/scrollable-positioned-frame.html b/ManualTests/scrollable-positioned-frame.html
new file mode 100644
index 000000000..56f80f3da
--- /dev/null
+++ b/ManualTests/scrollable-positioned-frame.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+<body>
+ <p>The contents of this frame should scroll with the mouse wheel.</p>
+ <iframe width=200 scrolling=yes src="resources/frame-textarea.html" style="position:fixed; left: 200px" id="frame"></iframe>
+</body>
+</html>
diff --git a/ManualTests/scrollable-positioned-nested-frame.html b/ManualTests/scrollable-positioned-nested-frame.html
new file mode 100644
index 000000000..4e53bbbb4
--- /dev/null
+++ b/ManualTests/scrollable-positioned-nested-frame.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+<body>
+ <p>The contents of this frame should scroll with the mouse wheel.</p>
+ <iframe width=400 scrolling=yes src="scrollable-positioned-frame.html" style="position:fixed; left: 200px" id="frame"></iframe>
+</body>
+</html>
diff --git a/ManualTests/scrollbar-crash-on-hide-scrolled-area.html b/ManualTests/scrollbar-crash-on-hide-scrolled-area.html
new file mode 100644
index 000000000..4fb8f578f
--- /dev/null
+++ b/ManualTests/scrollbar-crash-on-hide-scrolled-area.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8"/>
+ <title>QuickStart</title>
+ <style>
+ .lessonChapters {
+ position:absolute;
+ top:26px;
+ bottom:22px;
+ overflow:auto;
+ }
+ #hint {
+ height:9000px;
+ }
+</style>
+<script>
+ function runTest()
+ {
+ document.getElementById('lessons').scrollTop = 10000;
+ document.getElementById('toHide').style.display='none';
+ }
+</script>
+</head>
+
+<body onload="runTest();">
+
+<div class="lessonChapters" id="lessons">
+<div class="lessonChapter" id="toHide">
+ <br />
+ Manual repro: scroll down and click on <b>Next step</b>
+ <div id="hint">&nbsp;</div>
+ <a href="#" class="nextStepButton" onclick="document.getElementById('toHide').style.display='none'">Next step</a>
+</div>
+<p>Bug #74111: This test is to make sure that a scrolled element does not crash the browser when it goes hidden. The test passes if it does not crash.</p>
+PASSED
+</div>
+
+</body>
+</html>
diff --git a/ManualTests/scrollbar-hittest.html b/ManualTests/scrollbar-hittest.html
new file mode 100644
index 000000000..5ddef708a
--- /dev/null
+++ b/ManualTests/scrollbar-hittest.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=5829">http://bugs.webkit.org/show_bug.cgi?id=5829</a> REGRESSION: cursor tracking and hit testing in scrollable block don't take borders into account</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br>
+1. Scroll down by clicking in the empty space below the scroll thumb. <br>
+2. Scroll up by clicking in the empty space above the scroll thumb.</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Scroll thumb will move back up to the top.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Scroll thumb will NOT move back up to the top.
+</p>
+
+ <div style="overflow: auto; height:300px; width:50px; border-bottom: solid red 50px; border-top: solid green 20px;">
+ <div style="height:400px;"></div>
+ </div>
+
+</body>
+</html>
diff --git a/ManualTests/scrollbar-hittest2.html b/ManualTests/scrollbar-hittest2.html
new file mode 100644
index 000000000..b44a76215
--- /dev/null
+++ b/ManualTests/scrollbar-hittest2.html
@@ -0,0 +1,21 @@
+<html>
+<head>
+<title></title>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=6149">http://bugs.webkit.org/show_bug.cgi?id=6149</a> REGRESSION (WebCore-417.5): horizontal scrollbar in overflow with top border doesn't receive mouse events</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>TO TEST:</b> <br>
+Scroll right by clicking in the empty space to the right of the scroll thumb.</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Scroll thumb will move to the right.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Scroll thumb will NOT move at all.
+<div id="target" style="width: 400px; overflow: auto; border-top: 20px solid grey; border-bottom: 10px solid blue;">
+ <div style="width: 600px; height: 20px; background: green;"></div>
+</div>
+</body>
+</html>
diff --git a/ManualTests/scrollbar-hover-active.html b/ManualTests/scrollbar-hover-active.html
new file mode 100644
index 000000000..e7646ca84
--- /dev/null
+++ b/ManualTests/scrollbar-hover-active.html
@@ -0,0 +1,76 @@
+<head>
+<style>
+div::-webkit-scrollbar {
+ width:17px;
+ height:17px;
+}
+
+div::-webkit-scrollbar-button {
+ display: block;
+ width: 17px;
+ height: 17px;
+}
+
+div::-webkit-scrollbar-button:-webkit-decrement:-webkit-start {
+ background-color:lightblue;
+ border:2px solid black;
+}
+
+div::-webkit-scrollbar-button:-webkit-increment:-webkit-start {
+ background-color:lightgreen;
+ border:2px solid black;
+}
+
+div::-webkit-scrollbar-button:-webkit-decrement:-webkit-end {
+ background-color:orange;
+ border:2px solid black;
+}
+
+div::-webkit-scrollbar-button:-webkit-increment:-webkit-end {
+ background-color:brown;
+ border:2px solid black;
+}
+
+div::-webkit-scrollbar-button:hover {
+ background-color:black !important;
+}
+
+div::-webkit-scrollbar-thumb {
+ min-width:20px;
+ min-height:20px;
+ background-color: navy;
+ border:2px solid #cccccc;
+}
+
+div::-webkit-scrollbar-track {
+ background-color: pink;
+}
+
+div::-webkit-scrollbar-thumb:hover {
+ background-color: green;
+}
+
+div::-webkit-scrollbar-thumb:active {
+ border:3px dotted white;
+}
+
+div::-webkit-scrollbar-track:hover {
+ background-color: maroon;
+}
+
+</style>
+</head>
+<body>
+<div style="width:200px; height:200px; overflow-y:scroll; overflow-x:hidden">
+Hello<br>
+Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>
+Hello<br>Hello<br>Hello<br>Hello<br>
+Hello<br>Hello<br>Hello<br>Hello<br>
+<span style="white-space:nowrap">Hello world this is a long string and will not wrap.</span>
+Hello<br>Hello<br>Hello<br>Hello<br>
+Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>
+Hello<br>Hello<br>Hello<br>Hello<br>
+Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>
+Hello<br>Hello<br>Hello<br>Hello<br>
+Hello<br>Hello<br>Hello<br>
+</div>
diff --git a/ManualTests/scrolling-nestedframesets.html b/ManualTests/scrolling-nestedframesets.html
new file mode 100644
index 000000000..d5f05096e
--- /dev/null
+++ b/ManualTests/scrolling-nestedframesets.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4361048">4361048</a> Glendale Regression: Seed: scrolling with scrollwheel, trackpad doesn't work for nested framesets at gmail.com</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+<ol>
+ <li>Place your mouse cursor over the leftmost frame below.</li>
+ <li>Try to scroll the contents of the frame up and down my using your mouse's scrollwheel.</li>
+ <li>Repeat for the other two frames.</li>
+</ol>
+
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The contents of the frame each frame should scroll.</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+The contents of each frame do NOT scroll.
+</p>
+
+<iframe width="800" height="500" src="resources/nestedframesets.html">
+
+</body>
+</html>
diff --git a/ManualTests/search-cancel-button.html b/ManualTests/search-cancel-button.html
new file mode 100644
index 000000000..23c0c0bb8
--- /dev/null
+++ b/ManualTests/search-cancel-button.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<body>
+ <p>https://bugs.webkit.org/show_bug.cgi?id=69886 - Clicking on the cancel button on readonly and disabled search fields darkens as if the search field was editable</p>
+ <p>Clicking on the disabled/readonly search inputs should not render the cancel button dark when you click on them.</p>
+ <p>Normal search:<br/><input type=search value="This is a string of long text." /></p>
+ <p>Disabled search:<br/><input type=search value="This is a string of long text." disabled /></p>
+ <p>Readonly search:<br/><input type=search value="This is a string of long text." readonly /></p>
+ <p>Disabled and readonly search:<br/><input type=search value="This is a string of long text." disabled readonly /></p>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/secure-keyboard-enabled-after-submit.html b/ManualTests/secure-keyboard-enabled-after-submit.html
new file mode 100644
index 000000000..c0cd5f91a
--- /dev/null
+++ b/ManualTests/secure-keyboard-enabled-after-submit.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=13471">Bugzilla bug 13471</a> REGRESSION (r21045): Secure keyboard entry mode remains in effect after leaving a password field by submitting</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br>
+1) Use System Preferences > International > Input Menu to enable a non-Roman
+input source, e.g. Arabic.<br>
+2) Click in the password field below.<br>
+3) Check that non-Roman input sources are disabled in the Input menu (the flag
+on the right side of the menu bar).<br>
+4) Press Return to submit the form.<br>
+5) Click in the text field.<br>
+6) Check that non-Roman input sources are enabled and selectable in the Input
+menu.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Non-Roman input sources will be disabled in step 3 but will be enabled again in step 6.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Non-Roman input sources will be disabled in step 6.
+</p>
+
+<form method="post" action="data:text/html,Can you enter non-Roman characters in this field now? %3cinput%3e">
+ Focus this password field and press Return: <input type="password">
+</form>
+
+</body>
+</html>
diff --git a/ManualTests/select-delete-item.html b/ManualTests/select-delete-item.html
new file mode 100644
index 000000000..43ca0c314
--- /dev/null
+++ b/ManualTests/select-delete-item.html
@@ -0,0 +1,21 @@
+<html>
+<head>
+ <title>RenderMenuList::itemStyle Select Element Crash</title>
+ <script>
+ function removeItem() {
+ var select = document.getElementById("dropDown");
+ select.removeChild(document.getElementsByTagName("option")[2]);
+ }
+ </script>
+</head>
+<body>
+ <select id="dropDown" onfocus="setTimeout('removeItem();', 2000);">
+ <option>Option 1</option>
+ <option>Option 2</option>
+ <option>Option 3</option>
+ </select>
+ <p>This is a test for bug <a href="http://webkit.org/b/34182">34182</a> Crash in WebKit!WebCore::RenderMenuList::itemStyle.
+ Once the select gets focus, in 2 seconds it will delete an item. This test passes
+ if you have the select open when it deletes an item, and doesn't crash.</p>
+</body>
+</html>
diff --git a/ManualTests/select-element-type-select.html b/ManualTests/select-element-type-select.html
new file mode 100644
index 000000000..0a414f81b
--- /dev/null
+++ b/ManualTests/select-element-type-select.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+
+ <title>select test</title>
+</head>
+
+<body>
+Typing c should select c for you here:<br/>
+<select>
+<option value="1">aaaaa</option>
+<option value="2">bbbbb</option>
+<option value="3">ccccc</option>
+<option value="4">ddddd</option>
+<option value="5">eeeee</option>
+<option value="6">fffff</option>
+<option value="7">ggggg</option>
+</select>
+<br/><br/>
+And should here too:<br/>
+<select multiple size="3">
+<option value="1">aaaaa</option>
+<option value="2">bbbbb</option>
+<option value="3">cccc</option>
+<option value="4">ddddd</option>
+<option value="5">ßcccc</option>
+<option value="6">eeeee</option>
+<option value="7">fffff</option>
+<option value="8">zgggg</option>
+</select>
+</body>
+
+</html>
diff --git a/ManualTests/select-narrow-width.html b/ManualTests/select-narrow-width.html
new file mode 100644
index 000000000..60d271107
--- /dev/null
+++ b/ManualTests/select-narrow-width.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+Select narrow width manual test.
+</head>
+
+<body>
+See bug:<a href="https://bugs.webkit.org/show_bug.cgi?id=25904">25904</a>.
+<p>
+This test ensures that items in a select control can be selected. There
+was a bug in Mac Chromium where select controls did not initialize their
+widths properly, and while a click on the control would display the popup,
+subsequent clicks on menu items were disregarded.
+<p>
+The bug was most easily reproduced with select controls containing many
+(more than 20) items that had narrow widths.
+<br>
+
+<select id="selectId">
+ <option>a</option>
+ <option>b</option>
+ <option>c</option>
+ <option>d</option>
+ <option>e</option>
+ <option>f</option>
+ <option>g</option>
+ <option>h</option>
+ <option>i</option>
+ <option>j</option>
+ <option>k</option>
+ <option>l</option>
+ <option>m</option>
+ <option>n</option>
+ <option>o</option>
+ <option>p</option>
+ <option>q</option>
+ <option>r</option>
+ <option>s</option>
+ <option>t</option>
+ <option>u</option>
+ <option>v</option>
+ <option>w</option>
+ <option>x</option>
+ <option>y</option>
+ <option>z</option>
+</select>
+
+</body>
+</html>
diff --git a/ManualTests/select-onchange-after-js.html b/ManualTests/select-onchange-after-js.html
new file mode 100644
index 000000000..4cdea0a02
--- /dev/null
+++ b/ManualTests/select-onchange-after-js.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<body>
+ <p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=11402">bug 11402</a> and
+ <a href="http://bugs.webkit.org/show_bug.cgi?id=12701">bug 12701</a>:
+ An onChange event should fire when the first item is not the default, and
+ after changing the value via JavaScript.</p>
+ <p>After following the steps below, both selects should display "SUCCESS".</p>
+
+ <form action="" method="post" name="areaform" id="areaform">
+ <select name="selectitem" onChange="onChange1(this)">
+ <option value="1">Please change this to another value</option>
+ <option value="2">(to this one)</option>
+ </select>
+ </form>
+ <form action="" method="post" name="areaform2" id="areaform2">
+ <select name="selectitem2" onChange="onChange2(this)">
+ <option value="1">(to this one)</option>
+ <option value="2" selected>Please change this to another value</option>
+ </select>
+ </form>
+
+ <script>
+ function onChange1(sel) {
+ if (sel.secondTry) {
+ sel.options[1].text='SUCCESS';
+ } else {
+ sel.options[0].text='Please change this to another value once again';
+ sel.value = '1';
+ sel.secondTry = 1;
+ }
+ }
+
+ function onChange2(sel) {
+ if (sel.secondTry) {
+ sel.options[0].text='SUCCESS';
+ } else {
+ sel.options[1].text='Please change this to another value once again';
+ document.forms.areaform2.selectitem2.options[1].selected = true;
+ sel.secondTry = 1;
+ }
+ }
+ </script>
+
+</body>
+</html>
diff --git a/ManualTests/select-option-in-onload.html b/ManualTests/select-option-in-onload.html
new file mode 100644
index 000000000..3a4d8a68e
--- /dev/null
+++ b/ManualTests/select-option-in-onload.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
+<html>
+ <head>
+ <title>Programmatically selected popup item not shown</title>
+ <script type="text/javascript">
+ function testMyPopup() {
+ var myPopup = document.getElementById('testPopup');
+ for (var i = 0; i < myPopup.options.length; i++) {
+ if (myPopup.options[i].value == "2")
+ myPopup.options[i].selected = true;
+ }
+ }
+ </script>
+ </head>
+ <!--body-->
+ <body onload="testMyPopup();">
+ <p>The popup below has the item "FAIL" selected by default in the html, but a javascript function
+ triggered from the body's onload changed it to "PASS" (assuming you saw an alert telling you so).</p>
+ <p>Problem: In old versions of WebKit the change was not visible until you click on the popup.</p>
+ <form action="get">
+ <select id="testPopup">
+ <option value="0"></option>
+ <option value="1">One</option>
+ <option value="2">PASS</option>
+ <option value="3" selected="selected">FAIL</option>
+ </select>
+ </form>
+ </body>
+</html>
diff --git a/ManualTests/select-page-scroll.html b/ManualTests/select-page-scroll.html
new file mode 100644
index 000000000..1dbd2a7fb
--- /dev/null
+++ b/ManualTests/select-page-scroll.html
@@ -0,0 +1,33 @@
+<p>
+Click below the scroll thumb and H should scroll to the top.
+See <a href="https://bugs.webkit.org/show_bug.cgi?id=53628">Bug 53628</a> for detail.
+
+<p>
+<select multiple size=8>
+ <option>A</option>
+ <option>B</option>
+ <option>C</option>
+ <option>D</option>
+ <option>E</option>
+ <option>F</option>
+ <option>G</option>
+ <option>H</option>
+ <option>I</option>
+ <option>J</option>
+ <option>K</option>
+ <option>L</option>
+ <option>M</option>
+ <option>N</option>
+ <option>O</option>
+ <option>P</option>
+ <option>Q</option>
+ <option>R</option>
+ <option>S</option>
+ <option>T</option>
+ <option>U</option>
+ <option>V</option>
+ <option>W</option>
+ <option>X</option>
+ <option>Y</option>
+ <option>Z</option>
+</select>
diff --git a/ManualTests/select-popup-on-spacebar.html b/ManualTests/select-popup-on-spacebar.html
new file mode 100644
index 000000000..7503eca32
--- /dev/null
+++ b/ManualTests/select-popup-on-spacebar.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+</head>
+<body onload="document.getElementById('selectId').focus()">
+<p><b>BUG ID:<a href="https://bugs.webkit.org/show_bug.cgi?id=18363">18363</a>.</p>
+<p id="description">
+This test ensures that pressing spacebar on Mac, Gtk and Chromium ports or pressing
+return in Gtk and Chromium ports will popup the select control when focused.
+</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br>
+Press <em>spacebar</em> or the <em>return</em> key (Gtk only).
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Select pops up the menu list</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Select does not popup a menu list - nothing happens.</p>
+
+
+<select id="selectId">
+ <option>Select</option>
+ <option>Item 1</option>
+</select>
+
+</body>
+</html>
diff --git a/ManualTests/select-popup-tooltip-test.html b/ManualTests/select-popup-tooltip-test.html
new file mode 100644
index 000000000..afba4693a
--- /dev/null
+++ b/ManualTests/select-popup-tooltip-test.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<body>
+<h3> Test tool tip is correctly shown when popup select is displayed.</h3>
+<ol>
+<li>Click the following select tag.</li>
+<li> Move mouse cursor on "option 1" and stop moving.</li>
+<li> After seconds, make sure you can see tool tip text "This is the first option".</li>
+<li> Move mouse cursor on "option 2" and stop moving.</li>
+<li> Make sure you can see tool tip text "This is the second option".</li>
+</ol>
+
+<select size=1>
+<option title="This is the first option">option 1</option>
+<option title="This is the second option">option 2</option>
+<option title="This is the third option">option 3</option>
+</select>
+</body>
+</html>
diff --git a/ManualTests/select-scroll.html b/ManualTests/select-scroll.html
new file mode 100644
index 000000000..95b8a5a8d
--- /dev/null
+++ b/ManualTests/select-scroll.html
@@ -0,0 +1,34 @@
+<p>
+When you click the following &lt;select&gt;, you should see a scrollbar,
+and should be able to scroll down to see "Z" as the last option.
+See <a href="https://bugs.webkit.org/show_bug.cgi?id=49306">Bug 49306</a> for detail.
+
+<p>
+<select>
+ <option>A</option>
+ <option>B</option>
+ <option>C</option>
+ <option>D</option>
+ <option>E</option>
+ <option>F</option>
+ <option>G</option>
+ <option>H</option>
+ <option>I</option>
+ <option>J</option>
+ <option>K</option>
+ <option>L</option>
+ <option>M</option>
+ <option>N</option>
+ <option>O</option>
+ <option>P</option>
+ <option>Q</option>
+ <option>R</option>
+ <option>S</option>
+ <option>T</option>
+ <option>U</option>
+ <option>V</option>
+ <option>W</option>
+ <option>X</option>
+ <option>Y</option>
+ <option>Z</option>
+</select>
diff --git a/ManualTests/select-webkit-appearance-off-narrow-select.html b/ManualTests/select-webkit-appearance-off-narrow-select.html
new file mode 100644
index 000000000..34e46812a
--- /dev/null
+++ b/ManualTests/select-webkit-appearance-off-narrow-select.html
@@ -0,0 +1,49 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <title>Padding on select with webkit-appearance: off</title>
+ <style type="text/css">
+ #webkit-appearance-none {
+ -webkit-appearance: none;
+ border: 1px solid black;
+ width: 15px;
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+
+ #narrow-with-border {
+ border: 1px solid black;
+ width: 40px;
+ }
+ </style>
+</head>
+
+<body>
+ <p>This is a manual test for <a href="https://bugs.webkit.org/show_bug.cgi?id=33235">Padding in popup
+ menu gets lost with styled select in Windows</a></p>
+ <p>To open the selects, click inside the select boxes below.</p>
+
+ <p>The options in this selects should have padding on both the left and the right, the edges of
+ the text should not be pressed against the edges of the opened select.</p>
+ <select id="webkit-appearance-none">
+ <option href="#">Do Action ABCDEFG</option>
+ <option href="#">Do Action ABCDEFG</option>
+ <option href="#">Do Action ABCDEFG</option>
+ <option href="#">Do Action ABCDEFG</option>
+ <hr />
+ <option href="#">Do Action ABCDEFG</option>
+ <option href="#">Do Action ABCDEFG</option>
+ </select>
+
+ <p>The options in this select should not have too much padding on the right</p>
+ <select id="narrow-with-border">
+ <option href="#">Do Action ABCDEFG</option>
+ <option href="#">Do Action ABCDEFG</option>
+ <option href="#">Do Action ABCDEFG</option>
+ <option href="#">Do Action ABCDEFG</option>
+ <hr />
+ <option href="#">Do Action ABCDEFG</option>
+ <option href="#">Do Action ABCDEFG</option>
+ </select>
+</body>
+</html>
diff --git a/ManualTests/select_alignment.html b/ManualTests/select_alignment.html
new file mode 100644
index 000000000..7c1bc0e3d
--- /dev/null
+++ b/ManualTests/select_alignment.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head>
+<title>Test drop-down item's alignment in <select>/<option></title>
+<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
+</head>
+<body>
+<p>
+select drop-down items' alignment should be determined by the directionality of
+&lt;select&gt; tag.
+<p>
+The drop-down items in the following &lt;select&gt; should be left-aligned.
+<br>
+<select>
+<option>abc def</option>
+<option>שנב גקכ</option>
+<option dir="rtl">abc שנב def</option>
+<option dir="ltr">שנב abc גקכ</option>
+<option dir="rtl">hi!</option>
+<option dir="ltr">hi!</option>
+</select>
+<br>
+The drop-down items in the second &lt;select&gt; should be right-aligned.
+<p>
+<select dir="rtl">
+<option>abc def</option>
+<option>שנב גקכ</option>
+<option dir="rtl">abc שנב def</option>
+<option dir="ltr">שנב abc גקכ</option>
+<option dir="rtl">hi!</option>
+<option dir="ltr">hi!</option>
+</select>
+</body>
+</html>
diff --git a/ManualTests/select_dropdown_box_alignment.html b/ManualTests/select_dropdown_box_alignment.html
new file mode 100644
index 000000000..07035b76a
--- /dev/null
+++ b/ManualTests/select_dropdown_box_alignment.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head>
+<title>Test <select> drop-down box's alignment</title>
+<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
+</head>
+<body>
+<p>
+For RTL, select drop-down box's should be right aligned with the &lt;select&gt;
+element and expands to left instead of right.
+<p>
+The drop-down box in the following &lt;select&gt; should be left-aligned and expand to right.
+<br>
+<select style="width:100px">
+<option>Arabic</option>
+<option>Hebrew</option>
+<option>English (United States)</option>
+<option>Chinese (Simplified Chiense)</option>
+</select>
+<br>
+The drop-down box in the second &lt;select&gt; should be right-aligned and expand to left.
+<p>
+<select dir="rtl" style="width:100px">
+<option>Arabic</option>
+<option>Hebrew</option>
+<option>English (United States)</option>
+<option>Chinese (Simplified Chiense)</option>
+</select>
+</body>
+</html>
diff --git a/ManualTests/select_hr.html b/ManualTests/select_hr.html
new file mode 100644
index 000000000..957a99581
--- /dev/null
+++ b/ManualTests/select_hr.html
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<script>
+ function getSelectInfo(myselect, mydiv) {
+ var s = document.getElementById(myselect);
+ var selectLength = s.length;
+ var optionCollectionLength = s.options.length;
+ var selectedInd = s.selectedIndex;
+ var opt = s.options[selectedInd];
+ var optText = "";
+
+ if (opt) {
+ optText = opt.innerHTML;
+ }
+
+ document.getElementById(mydiv).innerHTML = "Select length: " + selectLength + "<br>Option collection length: " + optionCollectionLength + "<br>Selected index: " + selectedInd + "<br>Selected option: " + optText;
+ }
+
+ function getAllInfo(x) {
+ for (i = 1; i < x; i++) {
+ var s = "s" + i;
+ var d = "d" + i;
+
+ getSelectInfo(s, d);
+ }
+ }
+</script>
+
+
+</head>
+<body onload="getAllInfo(12)">
+<p><b>BUG ID:</b> <a href="rdar://problem/4229189">4229189</a> add a way to get a separator into a select element</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Please describe the steps required to test this bug here.
+</p>
+
+
+These tests make sure that adding an hr element in a select works properly.
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>This should be a disabled popup menu, since the hr is not selectable.
+</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> </p>
+<select id = "s1">
+<hr>
+</select>
+<div id="d1"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+You should see a popup menu with the following items: separator, option, separator
+</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+</p>
+<select id = "s2">
+<hr>
+<option>opt 1</option>
+<hr>
+</select>
+<div id="d2"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+You should see a popup menu with the following items: option, separator, option
+</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+</p>
+<select id = "s3">
+<option>opt 1</option>
+<hr>
+<option>opt 2</option>
+</select>
+<div id="d3"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+You should see a popup menu with the following items: option, four separators, two options, separator, option.
+</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+</p>
+<select id = "s4">
+<option>opt 1</option>
+<hr>
+<hr>
+<hr>
+<hr>
+<option>opt 2</option>
+<option>opt 3</option>
+<hr>
+<option>opt 4</option>
+</select>
+<div id="d4"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+You should see a popup menu with the following items: group label, option, separator (incl. in group).
+</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+</p>
+<select id = "s5">
+<optgroup label="Group 1">
+<option>opt 1</option>
+<hr>
+</optgroup>
+</select>
+<div id="d5"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+You should see a popup menu with the following items: separator, group label, option.
+</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+</p>
+<select id = "s6">
+<hr>
+<optgroup label="Group 1">
+<option>opt 1</option>
+</optgroup>
+</select>
+<div id="d6"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+You should see a popup menu with the following items: group label, option, separator, option, separator, option, two separators, (end of group), one option.
+</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+</p>
+<select id = "s7">
+<optgroup label="Group 1">
+<option>opt 1</option>
+<hr>
+<option>opt 2</option>
+<hr>
+<option>opt 3</option>
+<hr>
+<hr>
+</optgroup>
+<option>opt 4</option>
+</select>
+<div id="d7"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+You should see a popup menu with the following items: group label, one option two separators, (end of group), separator, group label, separator, two options, separator, (end of group), option.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+</p>
+<select id = "s8">
+<optgroup label="Group 1">
+<option>opt 1</option>
+<hr>
+<hr>
+</optgroup>
+<hr>
+<optgroup label="Group 2">
+<hr>
+<option>opt 2</option>
+<option>opt 3</option>
+<hr>
+</optgroup>
+<option>opt 4</option>
+</select>
+<div id="d8"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+A disabled popup menu - since the optgroup and the hr are not selectable.
+</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+</p>
+<select id = "s9">
+<optgroup label="Group 1">
+<hr>
+</optgroup>
+</select>
+<div id="d9"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+You should see a list box with the following items: 4 options.
+</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+You should not see any separators in the list box.</p>
+<br><select id = "s10" multiple>
+<option value="test">opt 1</option>
+<hr>
+<hr>
+<hr>
+<hr>
+<option>opt 2</option>
+<option>opt 3</option>
+<hr>
+<option>opt 4</option>
+</select>
+<div id="d10"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+You should see a list box with the following items: one option, group label, 3 options.
+</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+You should not see any separators in the list box.</p>
+<select id = "s11" multiple>
+<option value="test">opt 1</option>
+<hr>
+<hr>
+<optgroup label="Group 1">
+<hr>
+<hr>
+<option>opt 2</option>
+<option>opt 3</option>
+<hr>
+<option>opt 4</option>
+</optgroup>
+</select>
+<div id="d11"></div>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+For each of these list boxes, when you change the selection in JavaScript to index 1, the second option should get highlighted</p>
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+"opt 2" does not get highlighted after clicking the button.</p>
+
+<select id="s12" multiple>
+<option id="o3">opt 1</option>
+<hr>
+<option id="o4">opt 2</option>
+</select>
+<input type="button" value="Change selection to 'opt 2'" onclick="document.getElementById('s12').selectedIndex = 1;"></input>
+
+<br><select id="s13" multiple>
+<option id="o5">opt 1</option>
+<hr>
+<optgroup label="group">
+<option id="o6">opt 2</option>
+</optgroup>
+</select>
+<input type="button" value="Change selection to 'opt 2'" onclick="document.getElementById('s13').selectedIndex = 1;"></input>
+
+<body>
+</html>
+
diff --git a/ManualTests/select_webkit_appearance_off_popup_alignment.html b/ManualTests/select_webkit_appearance_off_popup_alignment.html
new file mode 100644
index 000000000..3e4885218
--- /dev/null
+++ b/ManualTests/select_webkit_appearance_off_popup_alignment.html
@@ -0,0 +1,78 @@
+<html>
+
+<body>
+ <p>Manual test for popup alignment of select with no apperance.</p>
+
+ <p>All popup boxes should all align with select element on both left and right side.</p>
+
+ No scrollbar in popup:<br>
+
+ LTR: <select size="1" style="-webkit-appearance: none;">
+ <option>Item 1</option>
+ <option>Item 2</option>
+ <option>Item 3</option>
+ <option>Item 4</option>
+ <option>Item 5</option>
+ </select>
+
+ RTL: <select size="1" dir="rtl" style="-webkit-appearance: none;">
+ <option>Item 1</option>
+ <option>Item 2</option>
+ <option>Item 3</option>
+ <option>Item 4</option>
+ <option>Item 5</option>
+ </select>
+
+ <br>
+
+ Popup has scrollbar:<br>
+ LTR: <select size="1" style="-webkit-appearance: none; padding-right: 20px;">
+ <option>Item 1</option>
+ <option>Item 2</option>
+ <option>Item 3</option>
+ <option>Item 4</option>
+ <option>Item 5</option>
+ <option>Item 6</option>
+ <option>Item 7</option>
+ <option>Item 8</option>
+ <option>Item 9</option>
+ <option>Item 10</option>
+ <option>Item 11</option>
+ <option>Item 12</option>
+ <option>Item 13</option>
+ <option>Item 14</option>
+ <option>Item 15</option>
+ <option>Item 16</option>
+ <option>Item 17</option>
+ <option>Item 18</option>
+ <option>Item 19</option>
+ <option>Item 20</option>
+ <option>Item 21</option>
+ </select>
+
+ RTL: <select size="1" dir="rtL" style="-webkit-appearance: none; padding-left: 20px;">
+ <option>Item 1</option>
+ <option>Item 2</option>
+ <option>Item 3</option>
+ <option>Item 4</option>
+ <option>Item 5</option>
+ <option>Item 6</option>
+ <option>Item 7</option>
+ <option>Item 8</option>
+ <option>Item 9</option>
+ <option>Item 10</option>
+ <option>Item 11</option>
+ <option>Item 12</option>
+ <option>Item 13</option>
+ <option>Item 14</option>
+ <option>Item 15</option>
+ <option>Item 16</option>
+ <option>Item 17</option>
+ <option>Item 18</option>
+ <option>Item 19</option>
+ <option>Item 20</option>
+ <option>Item 21</option>
+ </select>
+
+</body>
+</html>
diff --git a/ManualTests/selection-drag-crash.html b/ManualTests/selection-drag-crash.html
new file mode 100644
index 000000000..42fd74016
--- /dev/null
+++ b/ManualTests/selection-drag-crash.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+<script>
+function selectText() {
+ window.getSelection().selectAllChildren(document.body);
+}
+</script>
+</head>
+<body onload="selectText()">
+<p>
+Drag the selected text. It shouldn't crash, though it used to on Chromium Mac since createDragImageForSelection() didn't properly use the return value from dissolveDragImageToFraction(), which resulted in a race condition for the drag image's refcount. This issue can't be tested in an automated manner, due to the fact that the race condition is hard to trigger deterministically and that test_shell/DRT simply don't use the (potentially invalid) image parameter.
+</p>
+</body>
+</html>
diff --git a/ManualTests/selection-start-after-inserting-line-break-in-textarea.html b/ManualTests/selection-start-after-inserting-line-break-in-textarea.html
new file mode 100644
index 000000000..020319936
--- /dev/null
+++ b/ManualTests/selection-start-after-inserting-line-break-in-textarea.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<body>
+<p>This tests selectionStart is updated properly when inserting LF into textarea. To test, press Enter several times inside textarea and click the log button. This bug does not reproduce when new lines are added by execCommand or eventSender.</p>
+<textarea cols="20" rows="20"></textarea>
+<button id="button" onclick="verify()">verify</button>
+<div id="console"></div>
+<script>
+
+function verify() {
+ var console = document.getElementById('console');
+ if (textarea.value.match(/[^\n]/))
+ console.innerHTML = 'textarea contains unexpected character. You can only type LF in this test.';
+ else if (textarea.selectionStart != textarea.value.length)
+ console.innerHTML = 'FAIL: expected ' + textarea.value.length + ' but got ' + textarea.selectionStart;
+ else
+ console.innerHTML = 'PASS: ' + textarea.value.length + ' LFs';
+}
+
+var textarea = document.getElementsByTagName('textarea')[0];
+textarea.focus();
+
+</script>
+</body>
+</html>
diff --git a/ManualTests/show-hide-object.html b/ManualTests/show-hide-object.html
new file mode 100644
index 000000000..88bfbc866
--- /dev/null
+++ b/ManualTests/show-hide-object.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/3572507">3572507</a> Flash in div with display:none style will not redraw when style changed to display:block (3479)</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br>
+1. Verify that there is a Flash animation playing below.<br>
+2. Click "Hide Flash".<br>
+3. Click "Show Flash".<br>
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The Flash movie hides when "Hide Flash" is clicked, and shows again when "Show Flash" is clicked.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+The Flash movie hides when "Hide Flash" is clicked, but does not show again when "Show Flash" is clicked. Clicking on "Hide Flash" and then "Show Flash" again will show the movie.
+</p>
+
+<script language="JavaScript">
+
+ // 2 html tabs for multiple flash/java
+ var selected = "tab1";
+
+ function tabClick(whichTab) {
+ selected = whichTab;
+
+ if (whichTab == "tab1") {
+ document.getElementById('tab1').style.display = "block";
+ document.getElementById('tab2').style.display = "none";
+ }
+ else if (whichTab == "tab2") {
+ document.getElementById('tab2').style.display = "block";
+ document.getElementById('tab1').style.display = "none";
+ }
+ }
+</script>
+
+<div>
+
+ <input type=button value="Hide Flash" onClick="tabClick('tab2')"><input type=button value="Show Flash" onClick="tabClick('tab1')">
+
+
+ <div id="tab2" style="display: none">
+ Flash hidden.
+ </div>
+
+ <div id="tab1">
+ <object id="scopeFlash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="300" height="200" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0">
+ <param name="movie" value="resources/spinbox.swf">
+ <param name="quality" value="high">
+ <comment>
+ <embed src="resources/spinbox.swf" width="300" height="200" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
+ </embed>
+ </comment>
+ </object>
+ </div>
+</div>
+
+</body>
+</html>
diff --git a/ManualTests/show-modal-dialog-test.html b/ManualTests/show-modal-dialog-test.html
new file mode 100644
index 000000000..ec39ee44f
--- /dev/null
+++ b/ManualTests/show-modal-dialog-test.html
@@ -0,0 +1,15 @@
+<script>
+function showModal() {
+ document.form.fromModal.value =
+ showModalDialog("modal-dialog.html",
+ document.form.toModal.value,
+ "dialogHeight:280px,dialogWidth:400px");
+}
+</script>
+<form name="form">
+<p>Type text here to be sent to the modal window and press the button:
+<input name="toModal" value="from main window">
+<input type="button" value="Show Modal" onClick="showModal()"></p>
+<hy>
+<p>Text will appear here from the modal window: <input name="fromModal">
+</form>
diff --git a/ManualTests/showModalDialog-returnValue.html b/ManualTests/showModalDialog-returnValue.html
new file mode 100644
index 000000000..fbc3ee360
--- /dev/null
+++ b/ManualTests/showModalDialog-returnValue.html
@@ -0,0 +1,13 @@
+This test makes sure we don't crash when storing the return value from showModalDialog. Popup blocking needs to be disabled for this test to run.<br>
+<script>
+if (showModalDialog("data:text/html,<script>returnValue={value:'PASS'}; close()</"+"script>").value == "PASS")
+ document.write("<span style='color:green'>Test passed.<br>");
+else
+ document.write("<span style='color:red'>Test failed due to incorrect result.<br>");
+value = showModalDialog("data:text/html,<script>close()</"+"script>");
+if (!value)
+ document.write("<span style='color:green'>Test passed.<br>");
+else
+ document.write("<span style='color:red'>Test failed due to incorrect result.<br>");
+
+</script> \ No newline at end of file
diff --git a/ManualTests/simple-image-compositing.html b/ManualTests/simple-image-compositing.html
new file mode 100644
index 000000000..e44ffedf3
--- /dev/null
+++ b/ManualTests/simple-image-compositing.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Checking for simple image layer optimisation</title>
+ <style type="text/css" media="screen">
+ img {
+ float: left;
+ width: 150px;
+ height: 150px;
+ }
+ p {
+ clear: both;
+ margin: 1em 2em;
+ height: 180px;
+ }
+ img {
+ -webkit-transform: rotate3d(0, 0, 1, 0);
+ }
+ </style>
+</head>
+<body>
+
+ <h1>Image optimisation in layers</h1>
+
+ <p style="height: auto">
+ In order to run this test you should enable the debugging options that indicate
+ what type of compositing layer is being used.
+ </p>
+
+<pre>
+defaults write com.apple.Safari WebCoreLayerRepaintCounter -bool yes
+defaults write com.apple.Safari WebCoreLayerBorders -bool yes
+</pre>
+
+ <p style="height: auto">
+ Directly composited image layers will have a yellow border and no repaint counter.
+ </p>
+
+ <p>
+ <img src="resources/simple_image.png">
+ Basic image - no style - can be directly composited
+ </p>
+
+ <p>
+ <img src="resources/simple_image.png" style="border: 5px solid blue;">
+ 5px blue border - can NOT be directly composited
+ </p>
+
+ <p>
+ <img src="resources/simple_image.png" style="margin: 10px 20px;">
+ margin - can NOT be directly composited
+ </p>
+
+ <p>
+ <img src="resources/simple_image.png" style="background-color: grey;">
+ solid background - can be directly composited
+ </p>
+
+ <p>
+ <img src="resources/simple_image.png" style="background: orange url(resources/simple_image.png) -50px -50px;">
+ background image - can NOT be directly composited
+ </p>
+
+ <p>
+ <img src="resources/simple_image.png" style="-webkit-transform: rotate3d(0, 0, 1, 10deg);">
+ rotated but otherwise no style - can be directly composited
+ </p>
+
+
+
+
+</body>
+</html>
diff --git a/ManualTests/slider-thumb-tracking.html b/ManualTests/slider-thumb-tracking.html
new file mode 100644
index 000000000..5a852c859
--- /dev/null
+++ b/ManualTests/slider-thumb-tracking.html
@@ -0,0 +1,28 @@
+<html>
+<head>
+ <title></title>
+ <script type="text/javascript">
+ function test()
+ {
+ var slider = document.getElementById("slider");
+ var x = slider.offsetWidth * 3 / 4;
+ var y = slider.offsetHeight / 2;
+
+ var event = document.createEvent("MouseEvent");
+ event.initMouseEvent("mousedown", true, true, document.defaultView, 1, 0, 0, x, y, false, false, false, false, 0, document);
+ slider.dispatchEvent(event);
+ }
+ </script>
+</head>
+<body onload="test()">
+ <p>
+ Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=11621">http://bugs.webkit.org/show_bug.cgi?id=11621</a>
+ REGRESSION (Native slider): slider thumb not updated when the mouse is dragged/released out of range</i>.
+ </p>
+ <p>
+ The slider thumbs should be at the same horizontal position.
+ </p>
+ <input type="range" id="slider" value="30">
+ <br>
+ <input type="range" value="70">
+</body>
diff --git a/ManualTests/spatial-navigation/frameset.html b/ManualTests/spatial-navigation/frameset.html
new file mode 100644
index 000000000..fe82e4ae3
--- /dev/null
+++ b/ManualTests/spatial-navigation/frameset.html
@@ -0,0 +1,7 @@
+<html>
+ <frameset border=1 rows="10%,10%,*">
+ <frame src="links.html"/>
+ <frame src="links.html"/>
+ <frame src="spatial-navigation-test-cases.html"/>
+ </frameset><br><br>
+</html>
diff --git a/ManualTests/spatial-navigation/links.html b/ManualTests/spatial-navigation/links.html
new file mode 100644
index 000000000..18cfd6291
--- /dev/null
+++ b/ManualTests/spatial-navigation/links.html
@@ -0,0 +1,8 @@
+<html>
+ <body>
+ <p>
+ <a href="a">x</a>
+ <a href="a">y</a>
+ <a href="a">z</a>
+ </body>
+</html>
diff --git a/ManualTests/spatial-navigation/spatial-navigation-test-cases.html b/ManualTests/spatial-navigation/spatial-navigation-test-cases.html
new file mode 100644
index 000000000..bf00c23c8
--- /dev/null
+++ b/ManualTests/spatial-navigation/spatial-navigation-test-cases.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <title>Spatial Navigation Test Cases</title>
+ </head>
+ <body>
+
+ <div style="margin-left: 40px; text-align: center;">
+ <h1 style="text-align: left;">Spatial Navigation Fun</h1>
+ <h2 style="text-align: left;">3x3 Centered Table Test</h2>
+ </div>
+
+ <table style="text-align: left; width: 100%; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ <td style="vertical-align: top; text-align: center;"><a href="a">test</a></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div style="margin-left: 40px; text-align: left;"><br>
+
+ <div style="text-align: left;">
+ <h2>Vertical Sine Test</h2><br>
+ </div>
+
+ <div style="text-align: left;">
+ <a href="a">test<br></a>
+ </div>
+
+ <div style="margin-left: 40px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <div style="margin-left: 80px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <div style="margin-left: 40px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <a href="a">test<br></a>
+
+ <div style="margin-left: 40px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <div style="margin-left: 80px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <div style="margin-left: 40px;">
+ <a href="a">test<br></a>
+ </div>
+
+ <a href="a">test<br></a>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="a">test<br></a>
+
+ <h2>Increasing sentence length</h2>
+ <a href="a">H</a><br>
+ <a href="p">Ho<br></a>
+ <a href="p">How<br></a>
+ <a href="p">How <br></a>
+ <a href="p">How N</a><br>
+ <a href="p">How No</a><br>
+ <a href="p">How Now</a><br>
+ <a href="p">How Now </a><br>
+ <a href="p">How Now B</a><br>
+ <a href="p">How Now Br</a><br>
+ <a href="p">How Now Bro</a><br>
+ <a href="p">How Now Brow</a><br>
+ <a href="p">How Now Brown</a><br>
+ <a href="p">How Now Brown </a><br>
+ <a href="p">How Now Brown C</a><br>
+ <a href="p">How Now Brown Co</a><br>
+ <a href="p">How Now Brown Cow</a><br>
+ <br>
+
+ <h2>Split sentence<br></h2><br>
+ <a href="p">H</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<a href="p">ow Now Brown Cow</a><br>
+ <a href="p">Ho</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <a href="p">w Now Brown Cow</a><br>
+ <a href="p">How</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="p">Now Brown Cow</a><br>
+ <a href="p">How N</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; <a href="p">ow Brown Cow</a><br>
+ <a href="p">How No</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">w Brown Cow</a><br>
+ <a href="p">How Now </a>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">Brown Cow</a><br>
+ <a href="p">How Now B</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">rown Cow</a><br>
+ <a href="p">How Now Br</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">own Cow</a><br>
+ <a href="p">How Now Bro</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">wn Cow</a><br>
+ <a href="p">How Now Brow</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="p">n Cow</a><br>
+ <a href="p">How Now Brown</a> &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; <a href="p">Cow</a><br>
+ <a href="p">How Now Brown C</a> &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">ow</a><br>
+ <a href="p">How Now Brown Co</a> &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <a href="p">w</a><br>
+ <a href="p">How Now Brown Cow</a><br><br>
+
+ <h2>Line Wrap Test</h2><br>
+
+ <table style="text-align: left; width: 393px; height: 72px;" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td style="vertical-align: top;">
+ <span class="huge">
+ <a href="a">Which of the following constanst do you like the most, one is g, one is pi, and the other is e. </a><br>
+ </span>
+ </td>
+
+ <td style="vertical-align: top;">
+ <a href="a">3.14</a><br>
+ <a href="a">2.71</a><br>
+ <a href="a">6.67</a><br>
+ </td>
+ </tr>
+ </tbody>
+ </table><br>
+
+ <h2>Javascript Focus/Blur Test</h2>
+ When going to any link from the following link, you should see a dialog.<br><br>
+ <a href="a" onblur='alert("onBlurt")'>Test</a><br><br>
+
+ <h2>IFrames</h2><br>
+ <iframe src="links.html"></iframe><br><br><br>
+
+ <h2>DIVs</h2><br>
+ <div id=v>
+ <a href="a">a</a>
+ <div id="Div1">
+ <a href="a">b</a>
+ </div>
+ <a href="a">c</a>
+ </div><br><br>
+ <a href="last">last</a>
+ </div>
+</body>
+</html>
diff --git a/ManualTests/stale-currentEvent.html b/ManualTests/stale-currentEvent.html
new file mode 100644
index 000000000..e9dfcfc29
--- /dev/null
+++ b/ManualTests/stale-currentEvent.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+ <script type="text/javascript">
+ var inner_win;
+
+ function open_inner()
+ {
+ var src = 'data:text/html,<title>Pop up</title><input type="button" value="Close" onclick="opener.closeChild()">';
+ var tp = document.getElementById("theparent");
+ inner_win = window.open(src, 'inner', 'width=200, height=200, left=' + (screenLeft + tp.offsetLeft) + ', top=' + (screenTop + outerHeight - innerHeight + tp.offsetTop));
+ }
+
+ function removeHoverNode()
+ {
+ var tp = document.getElementById("theparent");
+ tp.parentNode.removeChild(tp);
+ setTimeout(reportSuccess, 500);
+ }
+
+ function reportSuccess()
+ {
+ document.body.appendChild(document.createTextNode("SUCCESS"));
+ }
+
+ function closeChild()
+ {
+ inner_win.close();
+ document.body.offsetTop;
+ setTimeout(removeHoverNode, 100);
+ }
+ </script>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/5095977">5095997</a> (<a href="http://bugs.webkit.org/show_bug.cgi?id=13218">13218</a>) Reproducible crash after call to window.close()</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b><br>
+ 1. Click the Open button below. A pop up window will open.<br>
+ 2. In the pop up window, click the Close button, being careful not to
+ move the mouse during and shortly after clicking.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+ The black square will be replaced by the word &ldquo;SUCCESS&rdquo; and Safari will not crash.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+ Safari will crash (the word &ldquo;SUCCESS&rdquo; may appear before the crash).
+</p>
+ <div id='theparent'>
+ <input type="button" value="Open" onclick="open_inner()">
+ <div style="background: black; width: 200px; height:200px">
+ </div>
+ </div>
+</body>
+</html>
diff --git a/ManualTests/stale-scrollbar-client-crash.html b/ManualTests/stale-scrollbar-client-crash.html
new file mode 100644
index 000000000..037b21c2d
--- /dev/null
+++ b/ManualTests/stale-scrollbar-client-crash.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/5523503">rdar://problem/5523503</a> Safari crashes clicking scroll bar in FaceBook 'Trips'</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Drag the scroll thumb in each of the vertical scrollbars below.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Each scrollbar will disappear when clicked, along with the box containing it, but the browser will not crash as you continue to drag.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+The scrollbar will disappear and Safari will crash as you continue dragging.
+</p>
+
+<div style="height: 120px;">
+ <div id="overflow" style="overflow: auto; height: 100px; width: 100px; background-color: lightblue;">
+ <div style="height: 200px;"></div>
+ </div>
+</div>
+<div>
+ <select multiple="true" id="listbox" style="height: 100px; width: 100px;">
+ <option>One</option>
+ <option>Two</option>
+ <option>Three</option>
+ <option>Four</option>
+ <option>Five</option>
+ <option>Six</option>
+ <option>Seven</option>
+ <option>Eight</option>
+ <option>Nine</option>
+ <option>Ten</option>
+ </select>
+</div>
+<script>
+ var overflow = document.getElementById("overflow");
+ var listbox = document.getElementById("listbox");
+
+ function mousedown(event)
+ {
+ if (event.target.id)
+ setTimeout(event.target.id + '.style.display = "none"', 0);
+ }
+
+ overflow.addEventListener("mousedown", mousedown, false);
+ listbox.addEventListener("mousedown", mousedown, false);
+</script>
+</body>
+</html>
diff --git a/ManualTests/style-keypress-events.html b/ManualTests/style-keypress-events.html
new file mode 100644
index 000000000..b0d277033
--- /dev/null
+++ b/ManualTests/style-keypress-events.html
@@ -0,0 +1,38 @@
+<body onload="setup()">
+<p>cmd+b and cmd+i should generate a keydown event in contentEditable fields. Also, calling
+preventDefault() in the keydown event should cancel the text styling.</p>
+
+<div contentEditable id="test" style="border: 1px solid; padding: 4px;">
+This is some sample text.<br><br><br><br>
+</div>
+<div>
+<input type="checkbox" id="disable"><label for="disable">preventDefault() in keydown</label>
+</div>
+<div id="log"></div>
+
+<script>
+function setup()
+{
+ var test = document.getElementById("test");
+ test.addEventListener("keydown", keydown, false);
+
+ var selection = window.getSelection();
+ selection.setPosition(test, 0);
+ selection.modify("extend", "forward", "sentence");
+ test.focus();
+}
+
+function log(msg)
+{
+ var log = document.getElementById("log");
+ log.innerHTML += "<br>" + msg;
+}
+
+function keydown(event)
+{
+ log("keydown");
+ if (document.getElementById("disable").checked)
+ event.preventDefault();
+}
+</script>
+</body>
diff --git a/ManualTests/submit-form-with-target-twice.html b/ManualTests/submit-form-with-target-twice.html
new file mode 100644
index 000000000..9b1041072
--- /dev/null
+++ b/ManualTests/submit-form-with-target-twice.html
@@ -0,0 +1,15 @@
+<html>
+<script>
+function runTest() {
+ var form = document.getElementById('f');
+
+ form.submit();
+ form.submit();
+}
+</script>
+<form id="f" target="foo"><input></form>
+<p>This tests that calling form.submit() twice in a row from JavaScript, on a form with a custom target and with at least one text field does not cause an assertion in a debug build of Safari.
+</p>
+<p>To test this, click the button below. A new window should open up and Safari should not assert.</p>
+<button onclick="runTest()">Click Here</button>
+</html>
diff --git a/ManualTests/subview-click-assertion.html b/ManualTests/subview-click-assertion.html
new file mode 100644
index 000000000..121ee2fa6
--- /dev/null
+++ b/ManualTests/subview-click-assertion.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=9984">Bugzilla bug 9984</a> ASSERTION FAILURE: _private->mouseDownEvent != nil (WebKit/WebView/WebHTMLView.m:4863 -[WebHTMLView(WebInternal) _delegateDragSourceActionMask])</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Open this test in a new Safari window. In the new window, click once on the text &ldquo;Click me&rdquo;. Do not click
+anywhere else in the window before clicking the text.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The text will be deselected.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+An assertion failure will occur.
+</p>
+
+<iframe id="frame"></iframe>
+<script>
+ var win = window['frame'];
+ var doc = win.document;
+ doc.write("<p id='target'>Click me</p>");
+ var target = doc.getElementById('target');
+ win.getSelection().setBaseAndExtent(target, 0, target, 1);
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/svg-animateTransform-calcMode-discrete.svg b/ManualTests/svg-animateTransform-calcMode-discrete.svg
new file mode 100644
index 000000000..f9abef8e3
--- /dev/null
+++ b/ManualTests/svg-animateTransform-calcMode-discrete.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg">
+<text x="10" y="20">Testing calcMode="discrete" for &lt;animateTransform&gt;. The rect should jump by 100px at 2s.</text>
+<rect y="30" width="100px" height="100px" fill="green">
+ <animateTransform attributeName="transform" type="translate" from="0,0" to="100,0" calcMode="discrete" fill="freeze" dur="4s"/>
+</rect>
+</svg>
diff --git a/ManualTests/svg-animated-gifs.svg b/ManualTests/svg-animated-gifs.svg
new file mode 100644
index 000000000..c661d41ec
--- /dev/null
+++ b/ManualTests/svg-animated-gifs.svg
@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+ <text x="0" y="15">There should be only one animated image here, rotated, and not clipped:</text>
+ <g transform="rotate(45,100,250)" >
+ <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" />
+ <foreignObject x="70" y="70" width="150" height="150" >
+ <xhtml:img src="resources/3dolph.gif" width="150" height="150" />
+ </foreignObject>
+ </g>
+ <text x="0" y="400">The animated image below should look like the one above:</text>
+ <g transform="translate(0, 400) rotate(45,100,250)" >
+ <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" />
+ <image xlink:href="resources/3dolph.gif" x="60" y="60" width="170" height="170" />
+ </g>
+</svg>
diff --git a/ManualTests/svg-animation-css-transform.html b/ManualTests/svg-animation-css-transform.html
new file mode 100644
index 000000000..320cdcbe8
--- /dev/null
+++ b/ManualTests/svg-animation-css-transform.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>SVG Animation of elements transformed using -webkit-transform</title>
+</head>
+<body>
+ <h1>SVG Animation of SVG element rotated using '-webkit-transform'</h1>
+
+ <p>The rotated rect should from 0,0 to 100,0 over 3 seconds.</p>
+
+ <svg xmlns='http://www.w3.org/2000/svg'>
+ <rect id="target" width='100' height='100' stroke="blue" fill="none" style="-webkit-transform: rotate(45deg)">
+ <animateMotion to='100,0' dur='3s' />
+ </rect>
+ </svg>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/svg-animation-parseValues.svg b/ManualTests/svg-animation-parseValues.svg
new file mode 100644
index 000000000..391916cc8
--- /dev/null
+++ b/ManualTests/svg-animation-parseValues.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">
+ <text text-anchor="middle" x="240" y="15" font-size="16">Test for WebKit bug 12565</text>
+ <text text-anchor="middle" x="240" y="35" font-size="16">(parsing of animateTransform values).</text>
+ <text text-anchor="middle" x="240" y="55" font-size="16">You should see a green square and no red.</text>
+ <g transform="translate(60,90)">
+ <rect fill="red" x="-19" y="-19" width="38" height="38"/>
+ <g fill="green">
+ <animateTransform attributeName="transform" type="rotate" values="450;450;" dur="1s"/>
+ <rect x="-20" y="-20" width="40" height="40"/>
+ </g>
+ </g>
+</svg>
diff --git a/ManualTests/svg-crash-hovering-use.svg b/ManualTests/svg-crash-hovering-use.svg
new file mode 100644
index 000000000..029b23b55
--- /dev/null
+++ b/ManualTests/svg-crash-hovering-use.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg id="svg" viewBox="0 0 100 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<defs>
+ <rect id="rect" width="60" height="10"/>
+</defs>
+
+<text x="30" y="30" transform="scale(0.2 0.2)">Hover over the rectangle - it should not crash</text>
+<use id="use" x="20" y="10" xlink:href="#rect" />
+
+<script>
+<![CDATA[
+ var svg = document.getElementById("svg");
+ var use = document.getElementById("use");
+
+ function addUseElement() {
+ svg.appendChild(use, true);
+ setTimeout(removeUseElement, 50);
+ }
+
+ function removeUseElement() {
+ use.parentElement.removeChild(use);
+ setTimeout(addUseElement, 50);
+ }
+
+ document.addEventListener("DOMNodeInserted", function() {}, true);
+ removeUseElement();
+]]>
+</script>
+</svg>
diff --git a/ManualTests/svg-css-animate-compound.html b/ManualTests/svg-css-animate-compound.html
new file mode 100644
index 000000000..23b84fb6a
--- /dev/null
+++ b/ManualTests/svg-css-animate-compound.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Animation of rotate property</title>
+<style type="text/css" media="screen">
+ div {
+ -webkit-box-sizing: border-box;
+ }
+
+ .column {
+ margin: 10px;
+ display: inline-block;
+ vertical-align: top;
+ }
+ .container {
+ position: relative;
+ height: 200px;
+ width: 200px;
+ margin: 10px;
+ background-color: silver;
+ border: 1px solid black;
+ }
+
+ .box {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 60px;
+ width: 60px;
+ border: 1px dotted black;
+ -webkit-transform-origin: top left; /* to match SVG */
+ }
+
+ .final {
+ border: 1px solid blue;
+ }
+
+ #target, #ref {
+ -webkit-animation-name: bounce;
+ -webkit-animation-duration: 2s;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-direction: alternate;
+ -webkit-animation-timing-function: ease-in-out;
+ }
+
+ @-webkit-keyframes bounce {
+ from {
+ -webkit-transform: translate(0px, 0px) scale(1) rotate(0deg);
+ }
+ to {
+ -webkit-transform: translate(75px, 25px) scale(2) rotate(45deg);
+ }
+ }
+</style>
+</head>
+<body>
+ <h1>CSS Animation of 'webkit-transform:' property for SVG</h1>
+
+ <p>The SVG animation should be identical with the CSS one</p>
+
+ <div class="column">
+ <h2>SVG compound</h2>
+ <div class="container">
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1"
+ viewBox="0 0 200 200" style="width:200px; height:200px;">
+ <rect id="target" x="0" y="0" width="60" height="60" stroke="blue" fill="none">
+ </rect>
+ </svg>
+ </div>
+
+ <h2>CSS compound</h2>
+ <div class="container">
+ <div class="final box" id="ref">
+ </div>
+ </div>
+ </div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/svg-css-transition-compound.html b/ManualTests/svg-css-transition-compound.html
new file mode 100644
index 000000000..0cd9069db
--- /dev/null
+++ b/ManualTests/svg-css-transition-compound.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>CSS Transition of SVG elements</title>
+
+<style type="text/css" media="screen">
+ div {
+ -webkit-box-sizing: border-box;
+ }
+
+ .column {
+ margin: 10px;
+ display: inline-block;
+ vertical-align: top;
+ }
+ .container {
+ position: relative;
+ height: 200px;
+ width: 200px;
+ margin: 10px;
+ background-color: silver;
+ border: 1px solid black;
+ }
+
+ .box {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 60px;
+ width: 60px;
+ border: 1px dotted black;
+ -webkit-transform-origin: top left; /* to match SVG */
+ }
+
+ .final {
+ border: 1px solid blue;
+ }
+
+ #target, #ref {
+ -webkit-transition-property: -webkit-transform;
+ -webkit-transition-duration: 1s;
+ }
+</style>
+
+<script type="text/javascript" charset="utf-8">
+ var flag = true;
+
+ function transition() {
+ var svgElm = document.getElementById("target");
+ var divElm = document.getElementById("ref");
+
+ if (flag) {
+ svgElm.style.webkitTransform = "translate(75px, 25px) scale(2) rotate(45deg)";
+ divElm.style.webkitTransform = "translate(75px, 25px) scale(2) rotate(45deg)";
+ }
+ else {
+ svgElm.style.webkitTransform = "translate(0px, 0px) scale(1) rotate(0deg)";
+ divElm.style.webkitTransform = "translate(0px, 0px) scale(1) rotate(0deg)";
+ }
+ flag = !flag;
+ }
+</script>
+</head>
+<body>
+ <h1>CSS Transition of "-webkit-trasform" property for SVG elements</h1>
+
+ <p>The element below should transition when button is clicked</p>
+ <p>The SVG transition should be identical with the CSS one</p>
+
+ <input type="button" value="Transition" onclick="transition()" />
+
+ <div class="column">
+ <h2>SVG compound</h2>
+ <div class="container">
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1"
+ viewBox="0 0 200 200" style="width:200px; height:200px;">
+ <rect id="target" x="0" y="0" width="60" height="60" stroke="blue" fill="none">
+ </rect>
+ </svg>
+ </div>
+
+ <h2>CSS compound</h2>
+ <div class="container">
+ <div class="final box" id="ref">
+ </div>
+ </div>
+ </div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/svg-cursor-changes.svg b/ManualTests/svg-cursor-changes.svg
new file mode 100644
index 000000000..ba7b546ac
--- /dev/null
+++ b/ManualTests/svg-cursor-changes.svg
@@ -0,0 +1,29 @@
+<svg width="100%" height="100%" viewBox="0 0 300 600" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<cursor id="mycursor" x="10" y="10" xlink:href="resources/webkit-background.png"/>
+
+<!-- Clicking this circle should result in an instant update of the cursor location of this and the next circle (tested using DOM) -->
+<circle onclick="document.getElementById('mycursor').setAttribute('x', '100');" cx="80" cy="150" r="70" fill="green" cursor="url(#mycursor)"/>
+
+<!-- Clicking this circle should result in an instant update of the cursor location of this and the previous circle (tested using SVG DOM) -->
+<circle onclick="document.getElementById('mycursor').x.baseVal.value = 100;" cx="230" cy="150" r="70" fill="green" cursor="url(#mycursor)"/>
+
+<cursor id="mycursor2" x="10" y="10" xlink:href="resources/webkit-background.png"/>
+<cursor id="mycursor3" x="10" y="10" xlink:href="resources/webkit-background.png"/>
+
+<!-- Clicking this circle should result in an instant update of the cursor location (tested using DOM) -->
+<circle onclick="document.getElementById('mycursor2').setAttribute('x', '100');" cx="80" cy="310" r="70" fill="green" cursor="url(#mycursor2)"/>
+
+<!-- Clicking this circle should result in an instant update of the cursor location (tested using SVG DOM) -->
+<circle onclick="document.getElementById('mycursor3').x.baseVal.value = 100;" cx="230" cy="310" r="70" fill="green" cursor="url(#mycursor3)"/>
+
+<cursor id="mycursor4" x="10" y="10" xlink:href="resources/apple.jpg"/>
+
+<!-- Clicking this circle should result in an instant update of the cursor image (tested using DOM) -->
+<circle onclick="document.getElementById('mycursor4').setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', 'resources/webkit-background.png');" cx="80" cy="470" r="70" fill="green" cursor="url(#mycursor4)"/>
+
+<cursor id="mycursor5" x="10" y="10" xlink:href="resources/apple.jpg"/>
+
+<!-- Clicking this circle should result in an instant update of the cursor image (tested using SVG DOM) -->
+<circle onclick="document.getElementById('mycursor5').href.baseVal = 'resources/webkit-background.png';" cx="230" cy="470" r="70" fill="green" cursor="url(#mycursor5)"/>
+
+</svg>
diff --git a/ManualTests/svg-deep-clone-to-new-doc.html b/ManualTests/svg-deep-clone-to-new-doc.html
new file mode 100644
index 000000000..faf0ef530
--- /dev/null
+++ b/ManualTests/svg-deep-clone-to-new-doc.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8" />
+
+ <!-- To run this test: Open this page, close the window, and (hopefully) don't crash.-->
+
+ <script>
+ function gc()
+ {
+ if (window.GCController)
+ GCController.collect();
+ else
+ for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
+ ({});
+ }
+ window.onload = init;
+
+ function init() {
+ var iframe = document.getElementById("iframe");
+ var thesvgdiv = document.getElementById('thediv');
+ var theclone = thesvgdiv.cloneNode(true);
+ iframe.contentDocument.body.appendChild(theclone);
+ setTimeout(function() {
+ iframe.style.display = 'none';
+ iframe.parentNode.removeChild(iframe);
+ gc();
+ window.close();
+ }, 500);
+ }
+ </script>
+</head>
+
+<body>
+ <div>
+ <div id="thediv">
+ <svg id="thesvg" width="12cm" height="3.6cm" viewBox="0 0 1000 300">
+ <defs>
+ <lineargradient id="orange_red" x2="0" y2="1" >
+ <stop stop-color="yellow" />
+ <stop offset="1" stop-color="red" />
+ </lineargradient>
+ </defs>
+ <path id="MyPath" d="M 100 200 C 200 100 300 0 400 100 C 500 200 600 300 700 200 C 800 100 900 100 900 100" fill="none" stroke="red" />
+ <text font-family="Verdana" font-size="72.5" fill="url(#orange_red)" >
+ <textpath xlink:href="#MyPath"> Look mom, SVG in HTML! </textpath>
+ </text>
+ (If you had an HTML5 compliant browser, the previous text would be colored and on a path.)
+ </svg>
+ </div>
+ <div>
+ <iframe id="iframe" width="50%" height="50%"></iframe>
+ </div>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/svg-filter-animation.svg b/ManualTests/svg-filter-animation.svg
new file mode 100644
index 000000000..4bca5e2ba
--- /dev/null
+++ b/ManualTests/svg-filter-animation.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<!--
+ Copyright (C) 2010 University of Szeged
+ Copyright (C) 2010 Zoltan Herczeg
+ Copyright (C) 2010 Gabor Loki
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY UNIVERSITY OF SZEGED ``AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UNIVERSITY OF SZEGED OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
+<rect x="0%" y="0%" width="100%" height="100%" fill="black" />
+
+<defs>
+<filter id="filt" filterUnits="objectBoundingBox" x="0" y="0" width="100%" height="100%">
+ <feTurbulence baseFrequency="0.03" numOctaves="4" seed="67" result="turb"/>
+ <feGaussianBlur in="SourceGraphic" primitiveUnits="objectBoundingBox" stdDeviation="1" result="blur"/>
+ <feComposite in="turb" in2="blur" operator="arithmetic" k2="0.3" k3="1" result="comp"/>
+ <feDiffuseLighting in="comp" primitiveUnits="objectBoundingBox" diffuseConstant="1" lighting-color="white" surfaceScale="10" result="light" >
+ <feSpotLight id="light" x="0" y="300" z="200" pointsAtX="-200" pointsAtY="100" pointsAtZ="0" limitingConeAngle="90" specularExponent="20" />
+ </feDiffuseLighting>
+ <feSpecularLighting in="comp" primitiveUnits="objectBoundingBox" diffuseConstant="1" lighting-color="#A66102" surfaceScale="10" result="ambient" >
+ <feDistantLight azimuth="0" elevation="90" />
+ </feSpecularLighting>
+ <feComposite in="light" in2="ambient" operator="arithmetic" k2="1.2" k3=".8"/>
+</filter>
+</defs>
+
+<g filter="url(#filt)" fill="white" stroke="black" onclick="start()">
+ <rect x="0" y="0" width="400" height="5" />
+ <rect x="0" y="0" width="5" height="200" />
+ <rect x="0" y="195" width="400" height="5" />
+ <rect x="395" y="0" width="5" height="200" />
+ <text font-size="150" font-weight="bold" x="40" y="150">SVG</text>
+</g>
+
+<text id="fps" x="150" y="240" font-size="20" fill="white" stroke="white">afps:</text>
+<text x="30" y="265" font-size="20" font-weight="bold" fill="white" stroke="white">click on the image to start the animation</text>
+
+<script>
+<![CDATA[
+var light_x = document.getElementById('light').x;
+var light_y = document.getElementById('light').y;
+var light_pointsAtX = document.getElementById('light').pointsAtX;
+var light_pointsAtY = document.getElementById('light').pointsAtY;
+var fps = document.getElementById('fps');
+
+var round = Math.round
+
+var startDate = 0;
+var frameCounter = 0;
+var phase = 0;
+function anim() {
+ switch(phase) {
+ case 0:
+ light_pointsAtX.baseVal += 10;
+ if (light_pointsAtX.baseVal >= 380)
+ ++phase;
+ break;
+ case 1:
+ light_x.baseVal += 10;
+ light_pointsAtX.baseVal -= 10;
+ if (light_x.baseVal >= 450) {
+ ++phase;
+ waitCounter = 0;
+ }
+ break;
+ case 2:
+ light_y.baseVal -= 5;
+ if (light_y.baseVal <= -100)
+ ++phase;
+ break;
+ case 3:
+ light_pointsAtX.baseVal += 10;
+ if (light_pointsAtX.baseVal >= 450) {
+ light_x.baseVal = 0;
+ light_pointsAtX.baseVal = -200;
+ light_y.baseVal = 300;
+ light_pointsAtY.baseVal = 100;
+ phase = 0;
+ }
+ break;
+ }
+
+ frameCounter++;
+ fps.textContent = "afps: " +(round(frameCounter * 100000 / (new Date() - startDate)) / 100);
+}
+
+function start() {
+ if (!startDate) {
+ startDate = new Date();
+ setInterval(anim,1);
+ }
+}
+
+//]]>
+</script>
+
+</svg>
diff --git a/ManualTests/svg-link-hover-use.svg b/ManualTests/svg-link-hover-use.svg
new file mode 100644
index 000000000..53450b3f0
--- /dev/null
+++ b/ManualTests/svg-link-hover-use.svg
@@ -0,0 +1,9 @@
+<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
+ <defs>
+ <rect id='rect' width='100' height="100" fill='blue' />
+ </defs>
+ <a xlink:href="http://www.webkit.org" >
+ <use xlink:href="#rect" onmouseover="alert('foo')" />
+ </a>
+ <text y='120' x='10'>The above blue square is a link, the cursor should be a hand above it.</text>
+</svg>
diff --git a/ManualTests/svg-links.svg b/ManualTests/svg-links.svg
new file mode 100644
index 000000000..5d0ff0dee
--- /dev/null
+++ b/ManualTests/svg-links.svg
@@ -0,0 +1,12 @@
+<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
+ <a xlink:href='http://www.apple.com' xlink:title='SUCCESS you got a tooltip'>
+ <rect width='100' height='100' />
+ </a>
+ <text x='10' y='120'>
+ Try the following with the link above:
+ <tspan x='10' dy='20'>1. Hover and notice the status text change</tspan>
+ <tspan x='10' dy='20'>2. Hover and notice the cursor change to a hand</tspan>
+ <tspan x='10' dy='20'>3. Hover and notice a tooltip appear</tspan>
+ <tspan x='10' dy='20'>4. Drag the link and notice a bubble appear with the correct URL</tspan>
+ </text>
+</svg>
diff --git a/ManualTests/svg-modify-deleted-selection.svg b/ManualTests/svg-modify-deleted-selection.svg
new file mode 100644
index 000000000..a04aec3fc
--- /dev/null
+++ b/ManualTests/svg-modify-deleted-selection.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg">
+<style>
+ * {
+ border-top-style: inset
+ }
+</style>
+<script>
+ window.onclick=function() {
+ getSelection().setBaseAndExtent(document,5,document,5);
+ getSelection().deleteFromDocument();
+ getSelection().modify('extend','backward','line');
+ }
+</script>
+<text y="50" fill="green" font-size="20">Test passes if no crash on mouse click. Text may be highlighted.</text>
+<text> 1 </text>
+</svg>
diff --git a/ManualTests/svg-node-count-vs-scroll.xhtml b/ManualTests/svg-node-count-vs-scroll.xhtml
new file mode 100644
index 000000000..1890a5398
--- /dev/null
+++ b/ManualTests/svg-node-count-vs-scroll.xhtml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xml:lang="en">
+ <head>
+ <title>SVG Scrolling Performance depends on #node is Safari?</title>
+
+ <script type="text/javascript">
+ <![CDATA[
+
+ var SVG_NS = 'http://www.w3.org/2000/svg';
+
+ function init() {
+ var nodeCount = parseInt(prompt('# <rect> to generate? ', 50000));
+
+ var svgRoot = document.createElementNS(SVG_NS, 'svg');
+
+ for (var i = 0; i < nodeCount; i++) {
+ var node = document.createElementNS(SVG_NS, 'rect');
+ node.setAttribute('x', i);
+ node.setAttribute('y', i);
+ node.setAttribute('width', 1);
+ node.setAttribute('height', i);
+ node.setAttribute('fill', 'red');
+
+ svgRoot.appendChild(node);
+ }
+
+ svgRoot.style.width = nodeCount + 'px';
+ svgRoot.style.height = nodeCount + 'px';
+ document.body.appendChild(svgRoot);
+ }
+
+ ]]>
+ </script>
+ </head>
+
+ <body onload="init()">
+ <h1>SVG Scrolling Performance depends on #node is Safari?</h1>
+ </body>
+</html>
+
diff --git a/ManualTests/svg-repaint-foreignObject.svg b/ManualTests/svg-repaint-foreignObject.svg
new file mode 100644
index 000000000..5c5cad992
--- /dev/null
+++ b/ManualTests/svg-repaint-foreignObject.svg
@@ -0,0 +1,81 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+<script>
+<![CDATA[
+var stateIndex = 0;
+var currentTarget = 0;
+
+function stateA()
+{
+ document.getElementById("A").textContent = '|A|';
+ document.getElementById("B").textContent = 'B';
+
+ currentTarget = 0;
+ startAnimation();
+}
+
+function stateB()
+{
+ document.getElementById("A").textContent = 'A';
+ document.getElementById("B").textContent = '|B|';
+ currentTarget = 1;
+ startAnimation();
+}
+
+var intervalId = null;
+
+function startAnimation() {
+ if (intervalId == null) {
+ intervalId = setInterval(animationStep, 20);
+ }
+}
+
+function animationStep() {
+ if (Math.abs(stateIndex - currentTarget) < .001) {
+ clearInterval(intervalId);
+ intervalId = null;
+ return;
+ }
+
+ if (stateIndex < currentTarget) {
+ stateIndex += 1 / 128;
+ } else {
+ stateIndex -= 1 / 128;
+ }
+
+ var elt = document.getElementById("targetGroup");
+
+ var transform = "translate(" + (100 * stateIndex) + "," + (100 * stateIndex) + ") rotate(" + (405 * stateIndex) + ",100,250) scale(" + (1 + stateIndex) + ")" ;
+ var opacity = 1 - .75 * stateIndex;
+
+ elt.setAttribute("opacity", opacity);
+ elt.setAttribute("transform", transform);
+}
+
+
+]]>
+</script>
+
+ <text id="A" x="0" y="32" fill="red" font-size="32" onclick="stateA()">|A|</text>
+ <text id="B" x="60" y="32" fill="blue" font-size="32" onclick="stateB()">B</text>
+ <text x="0" y="642" fill="black" font-size="32">Click B and then A above.</text>
+ <text x="0" y="674" fill="black" font-size="32">The animation should have no trails or clipping.</text>
+
+ <circle fill="pink" cx="300" cy="300" stroke="lightblue" stroke-width="40" r="300" />
+
+ <g>
+ <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" />
+
+ <foreignObject id="targetGroup" x="60" y="60" width="170" height="170" >
+ <xhtml:xhtml>
+ <xhtml:img src="http://www.citilink.com/~grizzly/anigifs/3dolph.gif" width="170" height="170" /><br />
+ </xhtml:xhtml>
+ </foreignObject>
+ </g>
+
+
+</svg>
+
+
diff --git a/ManualTests/svg-repaint-group.svg b/ManualTests/svg-repaint-group.svg
new file mode 100644
index 000000000..7f0972e23
--- /dev/null
+++ b/ManualTests/svg-repaint-group.svg
@@ -0,0 +1,81 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+<script>
+<![CDATA[
+var stateIndex = 0;
+var currentTarget = 0;
+
+function stateA()
+{
+ document.getElementById("A").textContent = '|A|';
+ document.getElementById("B").textContent = 'B';
+
+ currentTarget = 0;
+ startAnimation();
+}
+
+function stateB()
+{
+ document.getElementById("A").textContent = 'A';
+ document.getElementById("B").textContent = '|B|';
+ currentTarget = 1;
+ startAnimation();
+}
+
+var intervalId = null;
+
+function startAnimation() {
+ if (intervalId == null) {
+ intervalId = setInterval(animationStep, 20);
+ }
+}
+
+function animationStep() {
+ if (Math.abs(stateIndex - currentTarget) < .001) {
+ clearInterval(intervalId);
+ intervalId = null;
+ return;
+ }
+
+ if (stateIndex < currentTarget) {
+ stateIndex += 1 / 128;
+ } else {
+ stateIndex -= 1 / 128;
+ }
+
+ var elt = document.getElementById("targetGroup");
+
+ var transform = "translate(" + (100 * stateIndex) + "," + (100 * stateIndex) + ") rotate(" + (405 * stateIndex) + ",100,250) scale(" + (1 + stateIndex) + ")" ;
+ var opacity = 1 - .75 * stateIndex;
+
+ elt.setAttribute("opacity", opacity);
+ elt.setAttribute("transform", transform);
+}
+
+
+]]>
+</script>
+
+ <text id="A" x="0" y="32" fill="red" font-size="32" onclick="stateA()">|A|</text>
+ <text id="B" x="60" y="32" fill="blue" font-size="32" onclick="stateB()">B</text>
+ <text x="0" y="642" fill="black" font-size="32">Click B and then A above.</text>
+ <text x="0" y="674" fill="black" font-size="32">The animation should have no trails or clipping.</text>
+
+ <circle fill="pink" cx="300" cy="300" stroke="lightblue" stroke-width="40" r="300" />
+
+ <g id="targetGroup">
+ <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" />
+
+ <foreignObject x="60" y="60" width="170" height="170" >
+ <xhtml:xhtml>
+ <xhtml:img src="http://www.citilink.com/~grizzly/anigifs/3dolph.gif" width="170" height="170" /><br />
+ </xhtml:xhtml>
+ </foreignObject>
+ </g>
+
+
+</svg>
+
+
diff --git a/ManualTests/svg-repaint-image.svg b/ManualTests/svg-repaint-image.svg
new file mode 100644
index 000000000..018a6a0a1
--- /dev/null
+++ b/ManualTests/svg-repaint-image.svg
@@ -0,0 +1,77 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+<script>
+<![CDATA[
+var stateIndex = 0;
+var currentTarget = 0;
+
+function stateA()
+{
+ document.getElementById("A").textContent = '|A|';
+ document.getElementById("B").textContent = 'B';
+
+ currentTarget = 0;
+ startAnimation();
+}
+
+function stateB()
+{
+ document.getElementById("A").textContent = 'A';
+ document.getElementById("B").textContent = '|B|';
+ currentTarget = 1;
+ startAnimation();
+}
+
+var intervalId = null;
+
+function startAnimation() {
+ if (intervalId == null) {
+ intervalId = setInterval(animationStep, 20);
+ }
+}
+
+function animationStep() {
+ if (Math.abs(stateIndex - currentTarget) < .001) {
+ clearInterval(intervalId);
+ intervalId = null;
+ return;
+ }
+
+ if (stateIndex < currentTarget) {
+ stateIndex += 1 / 128;
+ } else {
+ stateIndex -= 1 / 128;
+ }
+
+ var elt = document.getElementById("targetGroup");
+
+ var transform = "translate(" + (100 * stateIndex) + "," + (100 * stateIndex) + ") rotate(" + (405 * stateIndex) + ",100,250) scale(" + (1 + stateIndex) + ")" ;
+ var opacity = 1 - .75 * stateIndex;
+
+ elt.setAttribute("opacity", opacity);
+ elt.setAttribute("transform", transform);
+}
+
+
+]]>
+</script>
+
+ <text id="A" x="0" y="32" fill="red" font-size="32" onclick="stateA()">|A|</text>
+ <text id="B" x="60" y="32" fill="blue" font-size="32" onclick="stateB()">B</text>
+ <text x="0" y="642" fill="black" font-size="32">Click B and then A above.</text>
+ <text x="0" y="674" fill="black" font-size="32">The animation should have no trails or clipping.</text>
+
+ <circle fill="pink" cx="300" cy="300" stroke="lightblue" stroke-width="40" r="300" />
+
+ <g>
+ <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" />
+
+ <image id="targetGroup" x="60" y="60" width="170" height="170" xlink:href="resources/3dolph.gif" />
+ </g>
+
+
+</svg>
+
+
diff --git a/ManualTests/svg-repaint-path.svg b/ManualTests/svg-repaint-path.svg
new file mode 100644
index 000000000..144e8ae57
--- /dev/null
+++ b/ManualTests/svg-repaint-path.svg
@@ -0,0 +1,77 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+<script>
+<![CDATA[
+var stateIndex = 0;
+var currentTarget = 0;
+
+function stateA()
+{
+ document.getElementById("A").textContent = '|A|';
+ document.getElementById("B").textContent = 'B';
+
+ currentTarget = 0;
+ startAnimation();
+}
+
+function stateB()
+{
+ document.getElementById("A").textContent = 'A';
+ document.getElementById("B").textContent = '|B|';
+ currentTarget = 1;
+ startAnimation();
+}
+
+var intervalId = null;
+
+function startAnimation() {
+ if (intervalId == null) {
+ intervalId = setInterval(animationStep, 20);
+ }
+}
+
+function animationStep() {
+ if (Math.abs(stateIndex - currentTarget) < .001) {
+ clearInterval(intervalId);
+ intervalId = null;
+ return;
+ }
+
+ if (stateIndex < currentTarget) {
+ stateIndex += 1 / 128;
+ } else {
+ stateIndex -= 1 / 128;
+ }
+
+ var elt = document.getElementById("targetGroup");
+
+ var transform = "translate(" + (100 * stateIndex) + "," + (100 * stateIndex) + ") rotate(" + (405 * stateIndex) + ",100,250) scale(" + (1 + stateIndex) + ")" ;
+ var opacity = 1 - .75 * stateIndex;
+
+ elt.setAttribute("opacity", opacity);
+ elt.setAttribute("transform", transform);
+}
+
+
+]]>
+</script>
+
+ <text id="A" x="0" y="32" fill="red" font-size="32" onclick="stateA()">|A|</text>
+ <text id="B" x="60" y="32" fill="blue" font-size="32" onclick="stateB()">B</text>
+ <text x="0" y="642" fill="black" font-size="32">Click B and then A above.</text>
+ <text x="0" y="674" fill="black" font-size="32">The animation should have no trails or clipping.</text>
+
+ <circle fill="pink" cx="300" cy="300" stroke="lightblue" stroke-width="40" r="300" />
+
+ <g>
+ <rect id="targetGroup" fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" />
+
+ <image x="60" y="60" width="170" height="170" xlink:href="resources/3dolph.gif" />
+ </g>
+
+
+</svg>
+
+
diff --git a/ManualTests/svg-text-float-not-removed-crash.html b/ManualTests/svg-text-float-not-removed-crash.html
new file mode 100755
index 000000000..e03937fb0
--- /dev/null
+++ b/ManualTests/svg-text-float-not-removed-crash.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<script>
+setInterval(function(){
+ var elements = document.getElementsByTagName("*");
+ var didRemoveElement = false;
+ for (var i = 0; i < elements.length; i++) {
+ var element = elements.item(i);
+ if (!element.firstElementChild && element != document.documentElement) {
+ didRemoveElement = true;
+ try {
+ element.parentNode.removeChild(element)
+ } catch(e) { }
+ }
+ }
+
+ if (!didRemoveElement)
+ document.documentElement.innerHTML = "PASS. WebKit didn't crash.";
+}, 100);
+</script>
+<style>
+#test1:after {
+ float: left;
+ content: 'A';
+}
+</style>
+<svg>
+<text>
+<a id="test1">
+A
+</a>
+</text>
+</svg>
+</html>
diff --git a/ManualTests/svg-text-selection.svg b/ManualTests/svg-text-selection.svg
new file mode 100644
index 000000000..4c34d24f9
--- /dev/null
+++ b/ManualTests/svg-text-selection.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
+ <text x="0" y="100" fill="black" font-size="32">Selection will be constrained to this line.</text>
+ <text x="0" y="200" fill="black" font-size="32">You should be able
+ <tspan x="0" y="235">to select multiline here</tspan>
+ <tspan x="0" y="270">See bug 12334</tspan>
+ </text>
+</svg>
diff --git a/ManualTests/svg-tooltip.svg b/ManualTests/svg-tooltip.svg
new file mode 100644
index 000000000..84fe1d73d
--- /dev/null
+++ b/ManualTests/svg-tooltip.svg
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>This string should not show up as a tooltip</title>
+ <desc>
+ This test verifies that tooltips are properly rendered for SVG content in a variety of
+ scenarios. Hovering over every shape should result in a tooltip of "PASS".
+ </desc>
+ <defs>
+ <ellipse id="e1" cx="100" cy="200" rx="50" ry="30" fill="blue">
+ <title>PASS</title>
+ </ellipse>
+ <ellipse id="e2" cx="250" cy="200" rx="50" ry="30" fill="blue">
+ <title>FAIL</title>
+ </ellipse>
+ <symbol id="e3">
+ <ellipse cx="100" cy="300" rx="50" ry="30" fill="blue">
+ <title>PASS</title>
+ </ellipse>
+ </symbol>
+ <symbol id="e4">
+ <title>FAIL</title>
+ <ellipse cx="250" cy="300" rx="50" ry="30" fill="blue">
+ </ellipse>
+ </symbol>
+ </defs>
+
+ <text y="15" x="0">When hovered, all shapes should show a "PASS" tooltip. Anything else is a failure.</text>
+
+ <ellipse cx="100" cy="100" rx="50" ry="30" fill="blue">
+ <title>PASS</title>
+ </ellipse>
+
+ <g>
+ <title>PASS</title>
+ <ellipse cx="250" cy="100" rx="50" ry="30" fill="blue"/>
+ </g>
+
+ <a xlink:title="PASS" xlink:href="#">
+ <title>FAIL</title>
+ <ellipse id="e4" cx="400" cy="100" rx="50" ry="30" fill="blue"/>
+ </a>
+
+ <use xlink:href="#e1"/>
+
+ <use xlink:href="#e2">
+ <title>PASS</title>
+ </use>
+
+ <g>
+ <title>FAIL</title>
+ <ellipse id="e8" cx="400" cy="200" rx="50" ry="30" fill="blue">
+ <title>PASS</title>
+ </ellipse>
+ </g>
+
+ <use xlink:href="#e3"/>
+ <use xlink:href="#e4">
+ <title>PASS</title>
+ </use>
+
+
+</svg>
diff --git a/ManualTests/system-color-change.html b/ManualTests/system-color-change.html
new file mode 100644
index 000000000..d06f242b6
--- /dev/null
+++ b/ManualTests/system-color-change.html
@@ -0,0 +1,7 @@
+<body bgcolor="highlight">
+Change the system highlight color.
+
+On Mac OS X, go into System Preferences and change the Highlight color in the Appearance preference panel.
+
+If the background of this page changes color immediately, the test passed.
+</body>
diff --git a/ManualTests/tabbing-input-google.html b/ManualTests/tabbing-input-google.html
new file mode 100644
index 000000000..6770c11a0
--- /dev/null
+++ b/ManualTests/tabbing-input-google.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8181">8181</a> REGRESSION: After tabbing in page's field, attempting to tab from Google toolbar search to page fails on first try</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br>
+1) Place the cursor in the Google search field.<br>
+2) Hit tab until focus cycles through the text fields in the page, and comes back to the Google field.<br>
+3) Hit tab once.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The first text field in the page should have focus.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+The first text field in the page does not have focus.
+</p>
+<input type="text" value="1"><input type="text" value="2"><input type="text" value="3">
+</body>
+</html>
diff --git a/ManualTests/tap-gesture-in-iframe-with-tap-highlight-crash.html b/ManualTests/tap-gesture-in-iframe-with-tap-highlight-crash.html
new file mode 100644
index 000000000..403c303b3
--- /dev/null
+++ b/ManualTests/tap-gesture-in-iframe-with-tap-highlight-crash.html
@@ -0,0 +1,12 @@
+<html>
+<body>
+ <p>This test verifies that touch gesture on an iframe does not crash when tap highlighting is on.</p>
+ <p style='color:green'>Tapping on the iframe should not crash.</p>
+ <iframe src='data:text/html,
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+ <html>
+ <body style="margin: 0px;"></body>
+ </html>'>
+ </iframe>
+</body>
+</html>
diff --git a/ManualTests/target-test.html b/ManualTests/target-test.html
new file mode 100644
index 000000000..86f6000bd
--- /dev/null
+++ b/ManualTests/target-test.html
@@ -0,0 +1 @@
+<a href="targeted.html" target="test">Click this link.</a>
diff --git a/ManualTests/target_new-1.html b/ManualTests/target_new-1.html
new file mode 100644
index 000000000..66e16c498
--- /dev/null
+++ b/ManualTests/target_new-1.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en"><head>
+<body>
+<p>Reference the opener, its properties and functions via the links below.</p>
+<ol>
+
+<li>Clicking <a href="#" onclick="alert(window.opener)">here</a> should alert "[object Window]"</li>
+<li>Clicking <a href="#" onclick="alert(window.opener.aVar)">here</a> should alert "some value"</li>
+<li>Clicking <a href="#" onclick="window.opener.externallyCalled()">here</a> should alert "hello from opener"</li>
+</ol>
+</body></html> \ No newline at end of file
diff --git a/ManualTests/target_new.html b/ManualTests/target_new.html
new file mode 100644
index 000000000..d7d75b41e
--- /dev/null
+++ b/ManualTests/target_new.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<script type="text/javascript" language="javascript" charset="utf-8">
+ var aVar = "some value";
+ function externallyCalled() {
+ alert("hello from opener");
+ }
+</script>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="rdar://problem/4172380">4172380</a> [GENENTECH] window.opener not available when child opened via target="_new"</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Click link below, then click links in the window that opens.</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Links in the new window that opens will alert "[object Window]", "some value", and "hello from opener".
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+First link in the new window that opens will alert "null", and the other two links will not work at all.
+</p>
+
+<a href="target_new-1.html" target="_new">Click this link to begin test</a>
+</body>
+</html>
diff --git a/ManualTests/targeted.html b/ManualTests/targeted.html
new file mode 100644
index 000000000..16cb18d99
--- /dev/null
+++ b/ManualTests/targeted.html
@@ -0,0 +1 @@
+This should open in a new window.
diff --git a/ManualTests/template.html b/ManualTests/template.html
new file mode 100644
index 000000000..73fb87256
--- /dev/null
+++ b/ManualTests/template.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<body>
+<p><b>BUG ID:</b> <a href="Bug URL Here">Bug ID Number Here</a> Bug Title Here</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Please describe the steps required to test this bug here.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+Expected results if the test PASSES here. Please describe the results the tester would see if the bug in question is FIXED.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+Expected results if the test FAILS here. Please describe the results the tester would see if the bug in question is NOT FIXED. In many cases, this is just a description of the original bug.
+</p>
+
+Your test code goes here.
+
+</body>
+</html>
diff --git a/ManualTests/test-iframes-loading-the-same-resource.html b/ManualTests/test-iframes-loading-the-same-resource.html
new file mode 100644
index 000000000..462db02d0
--- /dev/null
+++ b/ManualTests/test-iframes-loading-the-same-resource.html
@@ -0,0 +1,19 @@
+<html>
+<head>
+<script>
+ setTimeout('document.getElementById("frame2").src = "resources/test-frame.html";', 100);
+ loadCount = 0
+ function frame2Loaded() {
+ if (loadCount < 40) {
+ setTimeout('document.getElementById("frame2").src = "resources/test-frame.html?'+loadCount+'";', 100);
+ loadCount++;
+ }
+ }
+</script>
+</head>
+<body>
+ To perform this test attempt to drag one of the apple images in the left frame while the right frame is doing loads. This test is not entirely deterministic so it should be attempted a number of times. <br />
+<iframe id="frame1" src="resources/test-frame.html"></iframe>
+<iframe id="frame2" onload="frame2Loaded();"></iframe>
+</body>
+</html>
diff --git a/ManualTests/text-field-autoscroll.html b/ManualTests/text-field-autoscroll.html
new file mode 100644
index 000000000..c7848ec40
--- /dev/null
+++ b/ManualTests/text-field-autoscroll.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8496">Bugzilla #8496</a> REGRESSION: Dragging to select text around a text field causes the text field to scroll</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Start dragging in the text above the text field. Stop where it says "HERE".</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The text field should not autoscroll its text during this drag.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+If the text field scrolls, the test has failed.
+</p>
+Start dragging here....<br>
+<input id="tf" value="12345678910 abcdefghijkl 0000000000"><br>
+End dragging ............................HERE........watch the text field scroll.
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/textarea-after-stylesheet-link.html b/ManualTests/textarea-after-stylesheet-link.html
new file mode 100644
index 000000000..1b886266b
--- /dev/null
+++ b/ManualTests/textarea-after-stylesheet-link.html
@@ -0,0 +1,18 @@
+<html>
+<head>
+<script>
+if (window.layoutTestController) {
+ window.layoutTestController.dumpAsText();
+}
+</script>
+<link rel="stylesheet" />
+</head>
+<body>
+<p>Tests: whether &lt;link rel="stylesheet"/&gt; disturbs the display of text in textareas</p>
+<p>Related bug: <a href = "http://bugs.webkit.org/show_bug.cgi?id=3751">3751: REGRESSION: affects Blogger, GMail & Wikipedia: empty textarea's which should have content</a></p>
+<p>Success: You will see "passed" inside the texarea below</p>
+<hr>
+<textarea>passed</textarea>
+</form>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/textarea-caret-position-after-auto-spell-correct.html b/ManualTests/textarea-caret-position-after-auto-spell-correct.html
new file mode 100644
index 000000000..ab650ac79
--- /dev/null
+++ b/ManualTests/textarea-caret-position-after-auto-spell-correct.html
@@ -0,0 +1,14 @@
+<html>
+<body>
+<p>Tests bug <a href="https://bugs.webkit.org/show_bug.cgi?id=26200">26200</a> where the caret position jumps off to an incorrect position after auto-correcting a misspelled word.</p>
+<p>Open this file in Google Chromium (version 3.0 +), in Windows, and enable the --auto-spell-correct flag. Insert the word 'teh' between any two words in the paragraph below.</p>
+<p>SUCCESS: After hitting space, 'teh' is auto-corrected to 'the', and the caret stays on in the place it is supposed to be in after typing the word and hitting space.</p>
+<textarea rows="6" cols="35">
+This is an english statement.
+This is an english statement.
+This is an english statement.
+This is an english statement.
+This is an english statement.
+</textarea>
+</body>
+<html>
diff --git a/ManualTests/textarea-focus.html b/ManualTests/textarea-focus.html
new file mode 100644
index 000000000..53afe9e96
--- /dev/null
+++ b/ManualTests/textarea-focus.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<style type="text/css">
+ textarea { background: red; }
+ textarea:focus { background: green; }
+</style>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8324">Bugzilla bug 8324</a> REGRESSION: textarea :focus not applied immediately</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+Click in the red text area below.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The text area&rsquo;s background will change from red to green.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+The text area will not change to green. Only switching to another window and back to this window
+will change it to green.
+</p>
+
+<textarea rows="8" cols="40"></textarea>
+
+</body>
+</html>
diff --git a/ManualTests/textarea-iframe-navigation.html b/ManualTests/textarea-iframe-navigation.html
new file mode 100644
index 000000000..98d0748de
--- /dev/null
+++ b/ManualTests/textarea-iframe-navigation.html
@@ -0,0 +1,17 @@
+<html>
+<head>
+</head>
+<body>
+<p>Textarea inside iframe -- Navigation</p>
+ <ol>
+ <li>In the Debug menu, click "Go to about:blank soon"</li>
+ <li>Select a few lines in the textarea, keeping the mouse cursor down inside the area</li>
+ <li>Wait for the navigation to happen</li>
+ <li>Release the mouse</li>
+ </ol>
+<p>You should not crash.</p>
+<hr>
+<iframe style="border: 2px solid black" width="100%" src="textarea-iframe-navigation2.html">
+</iframe>
+</body>
+</html>
diff --git a/ManualTests/textarea-iframe-navigation2.html b/ManualTests/textarea-iframe-navigation2.html
new file mode 100644
index 000000000..74b4964bf
--- /dev/null
+++ b/ManualTests/textarea-iframe-navigation2.html
@@ -0,0 +1,12 @@
+<html>
+<head>
+</head>
+
+<body>
+<textarea rows="3">
+a
+b
+c
+</textarea>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/textarea-onpaste.html b/ManualTests/textarea-onpaste.html
new file mode 100644
index 000000000..04d98b1e8
--- /dev/null
+++ b/ManualTests/textarea-onpaste.html
@@ -0,0 +1,9 @@
+<html>
+ <head>
+ </head>
+ <body>
+ <textarea onpaste="document.getElementById('result').innerHTML='SUCCESS'">Paste here</textarea>
+ This tests that onpaste handlers are called. To test this, paste some text in the textarea below. The result below should change from FAILURE to SUCCESS.
+ <div id="result">FAILURE</div>
+ </body>
+</html>
diff --git a/ManualTests/textarea-reset-default-value.html b/ManualTests/textarea-reset-default-value.html
new file mode 100644
index 000000000..1c747b6c3
--- /dev/null
+++ b/ManualTests/textarea-reset-default-value.html
@@ -0,0 +1,24 @@
+<html>
+<head>
+<title>Test for https://bugs.webkit.org/show_bug.cgi?id=31539</title>
+
+<!-- Manual test for https://bugs.webkit.org/show_bug.cgi?id=31539.
+ Ensure that the value and defaultValue on a textarea is restored correctly when
+ we restore form state (e.g. by hitting back after submitting a form). -->
+
+</head>
+<body>
+<h2>Manual test for https://bugs.webkit.org/show_bug.cgi?id=31539.</h2>
+<p>To run this test:</p>
+<ul>
+ <li>Change the text in the &lt;textarea&gt; below.</li>
+ <li>Submit the form. The form should navigate back immediately.</li>
+ <li>Note that the value in the text area matches what you entered before submitting the form, this is correct.</li>
+ <li>Now click the reset button for the form.
+ <li>The text in the &lt;textarea&gt; should now match '123', the default text for the &lt;textarea&gt;.</li>
+</ul>
+
+<iframe src="resources/textarea-form-back-on-submit.html" width="800" height="200" id="frame"></iframe>
+
+</body>
+</html>
diff --git a/ManualTests/textfield-onblur.html b/ManualTests/textfield-onblur.html
new file mode 100644
index 000000000..8f9d7ec0f
--- /dev/null
+++ b/ManualTests/textfield-onblur.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+ <script>
+ function init () {
+ document.getElementById("test").focus();
+ }
+
+ function foo () {
+ document.open();
+ document.write('Test has passed.');
+ document.close();
+ }
+ </script>
+</head>
+<body onload="init();">
+<p><b>BUG ID:</b> <a href="rdar://problem/4181058">4181058</a> 8C45: Safari repro crash with document.write (WebCore::Node::dispatchEvent)</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+<ul>
+<li> Press the Tab key. This will remove focus from the text field, and should call document.write without crashing.
+</ul>
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+You should see text that says "Test has passed".
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+If the test fails, the browser will crash.
+</p>
+
+<input type="text" id="test" onblur="foo();" />
+
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/timeout-test.html b/ManualTests/timeout-test.html
new file mode 100644
index 000000000..2da94a25d
--- /dev/null
+++ b/ManualTests/timeout-test.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>10m10s Timeout Test</title>
+</head>
+<body>
+To run this test, both timeout-test.html and timeout-test.php must be served over http.<br>
+And you must be patient.<br>
+Clicking on this button will post a form that takes over 10 minutes for the server to respond. The connection should not time out!<br>
+<form action="timeout-test.php" method="post">
+<input type="submit" value="Run Test">
+</form>
+</body>
+</html>
diff --git a/ManualTests/timeout-test.php b/ManualTests/timeout-test.php
new file mode 100644
index 000000000..3c546fe55
--- /dev/null
+++ b/ManualTests/timeout-test.php
@@ -0,0 +1,3 @@
+<?php
+sleep(610)
+?>This content took 10m10s to deliver. Congratulations, you didn't time out!
diff --git a/ManualTests/title-internal-whitespace.html b/ManualTests/title-internal-whitespace.html
new file mode 100644
index 000000000..b2cb89e9b
--- /dev/null
+++ b/ManualTests/title-internal-whitespace.html
@@ -0,0 +1,12 @@
+<html>
+<head>
+ <title>
+ Lorem
+ Ipsum
+ Dolor
+ </title>
+</head>
+<body>
+ Title should render as "Lorem Ipsum Dolor" not "Lorem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ipsum&nbsp;&nbsp;&nbsp;&nbsp;Dolor".
+</body>
+</html>
diff --git a/ManualTests/touch-stale-iframe-crash.html b/ManualTests/touch-stale-iframe-crash.html
new file mode 100644
index 000000000..58751f3b3
--- /dev/null
+++ b/ManualTests/touch-stale-iframe-crash.html
@@ -0,0 +1,4 @@
+<body>
+<iframe id="iframe" src="resources/iframe-reloaded-on-touch.html"></iframe>
+This test passes if it doesn't crash.
+</body>
diff --git a/ManualTests/transition-accelerated.html b/ManualTests/transition-accelerated.html
new file mode 100644
index 000000000..a898c29e8
--- /dev/null
+++ b/ManualTests/transition-accelerated.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style type="text/css" media="screen">
+ .box {
+ position: relative;
+ height: 100px;
+ width: 100px;
+ margin: 10px;
+ background-color: blue;
+ }
+
+ .slow {
+ -webkit-animation: slow 2s infinite linear alternate;
+ }
+
+ .fast {
+ -webkit-animation: fast 2s infinite linear alternate;
+ }
+
+ @-webkit-keyframes slow {
+ from {
+ left: 0px;
+ }
+ to {
+ left: 400px;
+ }
+ }
+
+ @-webkit-keyframes fast {
+ from {
+ -webkit-transform: translateX(0);
+ }
+ to {
+ -webkit-transform: translateX(400px);
+ }
+ }
+ </style>
+</head>
+<body>
+ <p>The lower box should animate more smoothly than the upper one (on Mac).</p>
+ <div class="box slow"></div>
+ <div class="box fast"></div>
+</body>
+</html>
diff --git a/ManualTests/transition-delay.html b/ManualTests/transition-delay.html
new file mode 100644
index 000000000..006c79885
--- /dev/null
+++ b/ManualTests/transition-delay.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Transition Delay</title>
+ <style>
+ #container {
+ position: absolute;
+ width: 500px;
+ height: 340px;
+ border: 1px solid black;
+ }
+
+ .box {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ margin: 10px;
+ background-color: #66F;
+ z-index: 0;
+ }
+
+ #container.slide > .box {
+ -webkit-transform: translateX(380px);
+ -webkit-transition-property: -webkit-transform;
+ -webkit-transition-duration: 2s;
+ }
+
+ #box1 {
+ -webkit-transition-delay: 200ms;
+ }
+
+ #box2 {
+ -webkit-transition-delay: 2s;
+ }
+
+ #box3 {
+ -webkit-transition-delay: 4s;
+ }
+ </style>
+
+</head>
+<body>
+<p>Click to animate</p>
+<div id="container" onclick="this.className = 'slide'">
+ <div class="box" id="box1">
+ Delay: 200ms
+ </div>
+ <div class="box" id="box2">
+ Delay: 2s
+ </div>
+ <div class="box" id="box3">
+ Delay: 4s
+ </div>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/transition-events.html b/ManualTests/transition-events.html
new file mode 100644
index 000000000..36cf940b1
--- /dev/null
+++ b/ManualTests/transition-events.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Transition Events</title>
+ <style type="text/css" media="screen">
+ #box1 {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ margin: 10px;
+ background-color: blue;
+ z-index: 0;
+ -webkit-transition-property: left;
+ -webkit-transition-duration: 2s;
+ left: 0px;
+ }
+
+ #box2 {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ margin: 10px;
+ background-color: red;
+ z-index: 0;
+ -webkit-transition-property: left;
+ -webkit-transition-duration: 2s;
+ left: 0px;
+ }
+
+ #log {
+ position: absolute;
+ width: 90%;
+ height: 200px;
+ overflow: scroll;
+ border: 1px solid black;
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8">
+
+ var switch1 = true;
+ var switch2 = false;
+
+ document.addEventListener('webkitTransitionEnd', function(e) {
+ var id = "1";
+ if (switch1) {
+ id = "2";
+ }
+ var offset = 200;
+ if (switch2) {
+ offset = 0;
+ }
+ var box = document.getElementById("box" + id);
+ box.style.left = "" + offset + "px";
+ switch1 = !switch1;
+ if (!switch1) switch2 = !switch2;
+ logTransition(event);
+ }, false);
+
+ function doClick(obj)
+ {
+ var box1 = document.getElementById("box1");
+ box1.style.left = "200px";
+ }
+
+ function logTransition(event)
+ {
+ var log = document.getElementById('log');
+ log.innerHTML = log.innerHTML + '<br>Property: ' + event.propertyName + ' Time: ' + event.elapsedTime;
+ }
+ </script>
+</head>
+<body>
+ <h2>Transition Events</h2>
+ <p>Click to start transitions. Once started, transition end events should keep
+ things moving forever.</p>
+ <div id="container" onclick="doClick(this)">
+ <div id="box1">
+ </div>
+ <div id="box2">
+ </div>
+ </div>
+
+ <div id="log">
+
+ </div>
+</body>
+</html>
diff --git a/ManualTests/transition-left.html b/ManualTests/transition-left.html
new file mode 100644
index 000000000..492e30600
--- /dev/null
+++ b/ManualTests/transition-left.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Transition of left property</title>
+ <style>
+ div {
+ position: relative;
+ left: 100px;
+ height: 200px;
+ width: 300px;
+ background-color: #9bb;
+ -webkit-transition-property: left;
+ -webkit-transition-duration: 1s;
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8">
+
+ var flag = true;
+
+ function init() {
+ document.getElementById("target").addEventListener("click", function(evt) {
+ if (flag)
+ evt.target.style.left = "300px";
+ else
+ evt.target.style.left = "100px";
+ flag = !flag;
+ }, false);
+ }
+
+ window.addEventListener("load", init, false);
+ </script>
+</head>
+<body>
+ <h1>Transition of 'left' property</h1>
+
+ <p>The element below should move 200 pixels left or right when clicked</p>
+
+ <div id="target">
+ This element should transition.
+ </div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/transition-timing-functions.html b/ManualTests/transition-timing-functions.html
new file mode 100644
index 000000000..ed1e4d16e
--- /dev/null
+++ b/ManualTests/transition-timing-functions.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+ <title>Timing Functions for Transitions</title>
+ <style type="text/css" media="screen">
+
+ body {
+ margin: 10px;
+ padding: 0;
+ }
+
+ .container div {
+ position: relative;
+ width: 250px;
+ height: 50px;
+ background: #99c;
+ -webkit-transition-property: left;
+ -webkit-transition-duration: 5s;
+ margin-bottom: 10px;
+ }
+
+ .container:hover .default,
+ .container:hover .ease,
+ .container:hover .linear,
+ .container:hover .ease-in,
+ .container:hover .ease-out,
+ .container:hover .ease-in-out,
+ .container:hover .cubic,
+ .container:hover .error {
+ left: 400px;
+ }
+
+ .container .ease {
+ -webkit-transition-timing-function: ease;
+ }
+
+ .container .linear {
+ -webkit-transition-timing-function: linear;
+ }
+
+ .container .ease-in {
+ -webkit-transition-timing-function: ease-in;
+ }
+
+ .container .ease-out {
+ -webkit-transition-timing-function: ease-out;
+ }
+
+ .container .ease-in-out {
+ -webkit-transition-timing-function: ease-in-out;
+ }
+
+ .container .cubic {
+ -webkit-transition-timing-function: cubic-bezier(.42, .0, .58, 1.0)
+ }
+
+ .container .error {
+ -webkit-transition-timing-function: bananas;
+ }
+
+ #endmarker {
+ position: absolute;
+ width: 10px;
+ left: 400px;
+ top: 100px;
+ height: 500px;
+ background-color: red;
+ }
+
+
+ </style>
+ </head>
+ <body>
+ <div id="endmarker">
+ </div>
+
+ <h1>Timing functions for transitions</h1>
+ <p>On hover, the elements below should transition using the
+ described timing functions</p>
+
+ <div class="container">
+
+ <div class="default">
+ Default (no timing function specified, should be the same as Ease)
+ </div>
+
+ <div class="ease">
+ Ease (the default ease function)
+ </div>
+
+ <div class="linear">
+ Linear
+ </div>
+
+ <div class="ease-in">
+ Ease In
+ </div>
+
+ <div class="ease-out">
+ Ease Out
+ </div>
+
+ <div class="ease-in-out">
+ Ease In Out
+ </div>
+
+ <div class="cubic">
+ Cubic bezier specified the same as Ease In Out
+ </div>
+
+ <div class="error">
+ Bogus definition, should become default of Ease
+ </div>
+
+ </div>
+
+
+
+ </body>
+</html> \ No newline at end of file
diff --git a/ManualTests/transitions.html b/ManualTests/transitions.html
new file mode 100644
index 000000000..33a9cff3c
--- /dev/null
+++ b/ManualTests/transitions.html
@@ -0,0 +1,54 @@
+<style>
+ div {
+ width: 50px;
+ height: 50px;
+ background-color: yellow;
+ }
+
+ div.green {
+ width: 100px;
+ background-color: green;
+ -webkit-transition-property: background-color;
+ -webkit-transition-duration: 5s;
+ }
+
+ div.square {
+ width: 100px;
+ height: 100px;
+ -webkit-transition-property: height;
+ -webkit-transition-duration: 2s;
+ }
+</style>
+<p id="instructions">
+ When you click the Change button, the shape will
+ <span id="description"></span>.
+ <button style="display: block;" onclick="transition()">Change</button>
+</p>
+<div id="target"></div>
+<script>
+ var state = 0;
+ var transitions = [
+ {className:"green", description:"instantly change into a rectangle and fade from yellow to green over 5 seconds"},
+ {className:"", description:"instantly change into a small yellow square"},
+ {className:"square", description:"instantly change into a yellow rectangle and then animate into a big yellow square over 2 seconds"},
+ {className:"green", description:"instantly change into a yellow rectangle and then animate to a green rectangle over 5 seconds"},
+ {className:"", description:"instantly change into a small yellow square"},
+ {className:"green", description:"instantly change into a yellow rectangle and fade from yellow to green over 5 seconds"},
+ {className:"square", description:"instantly change to a yellow rectangle and then animate into a large yellow square over 2 seconds"},
+ {className:"", description:"instantly change into a small yellow square"}
+ ];
+
+ document.getElementById("description").innerText = transitions[0].description;
+
+ function transition()
+ {
+ var target = document.getElementById("target");
+ target.className = transitions[state].className;
+ state++;
+ if (state < transitions.length)
+ document.getElementById("description").innerText = transitions[state].description;
+ else {
+ document.getElementById("instructions").innerText = "Done.";
+ }
+ }
+</script>
diff --git a/ManualTests/transitions2.html b/ManualTests/transitions2.html
new file mode 100644
index 000000000..6515a790b
--- /dev/null
+++ b/ManualTests/transitions2.html
@@ -0,0 +1,52 @@
+<style>
+ div {
+ width: 50px;
+ height: 50px;
+ background-color: green;
+ }
+
+ div.square {
+ width: 100px;
+ height: 100px;
+ -webkit-transition-property: height;
+ -webkit-transition-duration: 2s;
+ }
+
+ div.rectangle {
+ width: 100px;
+ height: 200px;
+ -webkit-transition-property: width, height;
+ -webkit-transition-duration: 5s;
+ }
+</style>
+<p id="instructions">
+ When you click the Change button, the shape will
+ <span id="description"></span>.
+ <button style="display: block;" onclick="transition()">Change</button>
+</p>
+<div id="target"></div>
+<script>
+ var state = 0;
+ var transitions = [
+ {className:"rectangle", description:"animate to a large rectangle over 5 seconds."},
+ {className:"square", description:"animate to a square over 2 seconds. Try clicking before the first animation finishes and make sure the width doesn't do an ugly jump."},
+ {className:"", description:"instantly change to a small square"},
+ {className:"square", description:"instantly change into a small rectangle and then animate into a large square over 2 seconds"},
+ {className:"rectangle", description:"animate to a large rectangle over 5 seconds"},
+ {className:"", description:"instantly change to a small square"}
+ ];
+
+ document.getElementById("description").innerText = transitions[0].description;
+
+ function transition()
+ {
+ var target = document.getElementById("target");
+ target.className = transitions[state].className;
+ state++;
+ if (state < transitions.length)
+ document.getElementById("description").innerText = transitions[state].description;
+ else {
+ document.getElementById("instructions").innerText = "Done.";
+ }
+ }
+</script>
diff --git a/ManualTests/typed-array-memory.html b/ManualTests/typed-array-memory.html
new file mode 100644
index 000000000..1d624299b
--- /dev/null
+++ b/ManualTests/typed-array-memory.html
@@ -0,0 +1,221 @@
+<html>
+<head>
+<title>ArrayBuffer External Memory test</title>
+<script>
+
+var log;
+function print(message, color)
+{
+ var paragraph = document.createElement("div");
+ paragraph.appendChild(document.createTextNode(message));
+ paragraph.style.fontFamily = "monospace";
+ if (color)
+ paragraph.style.color = color;
+ log.appendChild(paragraph);
+}
+
+function pass(msg)
+{
+ print("PASS: " + msg, "green");
+}
+
+function fail(msg)
+{
+ print("FAIL: " + msg, "red");
+}
+
+var KB = 1024;
+var MB = KB * KB;
+var noise = KB;
+
+function externalMemory() {
+ return getV8Statistics().amount_of_external_allocated_memory;
+}
+
+function collectGarbage() {
+ for (var i = 0; i < 10; i++) gc();
+}
+
+function allocationsThatIncreaseExternalMemory() {
+ function test(expression) {
+ var before = externalMemory();
+ (function () { eval(expression); }) ();
+ var now = externalMemory();
+ if (now < before + MB - noise) {
+ fail(expression + " did not increase the amount of external memory (" +
+ before + ", " + now + ").");
+ } else {
+ pass(expression + " increased the amount of external memory.");
+ }
+ collectGarbage();
+ var after = externalMemory();
+ if (after > now + noise) {
+ fail("Garbage collection after " + expression +
+ " did not return the amount of external memory to the initial value (" +
+ now + ", " + after + ").");
+ } else {
+ pass("Garbage collection after " + expression +
+ " returned the amount of external memory to the initial value.");
+ }
+ }
+
+ test("(new ArrayBuffer(MB))");
+ test("(new Float32Array(MB))");
+ test("(new Float64Array(MB))");
+ test("(new Int8Array(MB))");
+ test("(new Int16Array(MB))");
+ test("(new Int32Array(MB))");
+ test("(new Uint8Array(MB))");
+ test("(new Uint16Array(MB))");
+ test("(new Uint32Array(MB))");
+ var largeJSArray = [];
+ for (var i = 0; i < MB; i++) largeJSArray.push(i);
+ test("(new Float32Array(largeJSArray))");
+ test("(new Float64Array(largeJSArray))");
+ test("(new Int8Array(largeJSArray))");
+ test("(new Int16Array(largeJSArray))");
+ test("(new Int32Array(largeJSArray))");
+ test("(new Uint8Array(largeJSArray))");
+ test("(new Uint16Array(largeJSArray))");
+ test("(new Uint32Array(largeJSArray))");
+ var int8Array = new Int8Array(MB);
+ test("(new Float32Array(int8Array))");
+ test("(new Float64Array(int8Array))");
+ test("(new Int8Array(int8Array))");
+ test("(new Int16Array(int8Array))");
+ test("(new Int32Array(int8Array))");
+ test("(new Uint8Array(int8Array))");
+ test("(new Uint16Array(int8Array))");
+ test("(new Uint32Array(int8Array))");
+}
+
+
+function allocationsThatDoNotChangeExternalMemory() {
+ function test(expression) {
+ var before = externalMemory();
+ (function () { eval(expression); }) ();
+ var now = externalMemory();
+ if (now > before + noise) {
+ fail(expression + " increased the amount of external memory (" + before + ", " + now + ").");
+ } else {
+ pass(expression + " did not increase the amount of external memory.");
+ }
+ collectGarbage();
+ var after = externalMemory();
+ if (after < now - noise) {
+ fail("Garbage collection after " + expression + " decreased the amount of external memory (" +
+ now + ", " + after + ").");
+ } else {
+ pass("Garbage collection after " + expression +
+ " did not decrease the amount of external memory.");
+ }
+ }
+ var arrayBuffer = new ArrayBuffer(MB);
+ test("(new Float32Array(arrayBuffer))");
+ test("(new Float64Array(arrayBuffer))");
+ test("(new Int8Array(arrayBuffer))");
+ test("(new Int16Array(arrayBuffer))");
+ test("(new Int32Array(arrayBuffer))");
+ test("(new Uint8Array(arrayBuffer))");
+ test("(new Uint16Array(arrayBuffer))");
+ test("(new Uint32Array(arrayBuffer))");
+ var int8Array = new Int8Array(MB);
+ test("(new Float32Array(int8Array.buffer))");
+ test("(new Float64Array(int8Array.buffer))");
+ test("(new Int8Array(int8Array.buffer))");
+ test("(new Int16Array(int8Array.buffer))");
+ test("(new Int32Array(int8Array.buffer))");
+ test("(new Uint8Array(int8Array.buffer))");
+ test("(new Uint16Array(int8Array.buffer))");
+ test("(new Uint32Array(int8Array.buffer))");
+}
+
+
+function transfersThatDecreaseExternalMemory() {
+ var workerSource =
+"function externalMemory() {\n" +
+" return getV8Statistics().amount_of_external_allocated_memory;\n" +
+"}\n" +
+"function collectGarbage() {\n" +
+" for (var i = 0; i < 10; i++) gc();\n" +
+"}\n" +
+"var before = externalMemory();\n" +
+"self.onmessage = function(e) {\n" +
+" var now = externalMemory();\n" +
+" e.data = null;\n" +
+" collectGarbage();\n" +
+" var after = externalMemory();\n" +
+" self.postMessage(before + ' ' + now + ' ' + after);\n" +
+"}\n";
+
+ var blob = new Blob([workerSource]);
+ var worker = new Worker(window.webkitURL.createObjectURL(blob));
+ worker.onmessage = function (e) {
+ print("message from worker: " + e.data, "blue");
+ }
+ function test(expression)
+ {
+ var buffer = eval(expression);
+ try {
+ var before = externalMemory();
+ worker.webkitPostMessage(buffer, [buffer]);
+ var now = externalMemory();
+ if (now > before - MB + noise) {
+ fail("Transfer of " + expression + " did not decrease the amount of external memory (" +
+ before + ", " + now + ").");
+ } else {
+ pass("Transfer of " + expression + " decreased the amount of external memory.");
+ }
+ collectGarbage();
+ var after = externalMemory();
+ if (after < now - noise) {
+ fail("Garbage collection after transfer of " + expression +
+ " decreased the amount of external memory (" + now + ", " + after + ").");
+ } else {
+ pass("Garbage collection after transfer of " + expression +
+ " did not decrease the amount of external memory.");
+ }
+ } catch (e) {
+ fail("Transfer of " + name + ": could not webkitPostMessage: " + e);
+ return false;
+ }
+ return true;
+ }
+ test("(new ArrayBuffer(MB))");
+ test("(new Float32Array(MB)).buffer");
+ test("(new Float64Array(MB)).buffer");
+ test("(new Int8Array(MB)).buffer");
+ test("(new Int16Array(MB)).buffer");
+ test("(new Int32Array(MB)).buffer");
+ test("(new Uint8Array(MB)).buffer");
+ test("(new Uint16Array(MB)).buffer");
+ test("(new Uint32Array(MB)).buffer");
+}
+
+
+function runAll() {
+ log = document.getElementById("log1");
+ if (typeof gc == "undefined" || typeof getV8Statistics == "undefined") {
+ print("Run chrome browser with --js-flags='--expose_gc --track_gc_object_stats'", "red");
+ } else {
+ allocationsThatIncreaseExternalMemory();
+ collectGarbage();
+ allocationsThatDoNotChangeExternalMemory();
+ collectGarbage();
+ log = document.getElementById("log2");
+ transfersThatDecreaseExternalMemory();
+ collectGarbage();
+ }
+}
+
+</script>
+</head>
+<body onload="runAll()">
+<p>This test checks that allocation and deallocation of typed arrays correctly
+adjusts the amount of external memory in V8.</p>
+<div id='log1'></div>
+<p>This test checks that transfer of an array buffer to worker decreases amount of
+external memory in the main V8 isolate.</p>
+<div id='log2'></div>
+</body>
+</html>
diff --git a/ManualTests/update-empty-popup.html b/ManualTests/update-empty-popup.html
new file mode 100644
index 000000000..03462f2a1
--- /dev/null
+++ b/ManualTests/update-empty-popup.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+</head>
+<body>
+<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=13379">Bugzilla bug 13379</a> REGRESSION: Cannot add an option to a selected popup</p>
+
+<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b>
+1. Click on the empty popup button.<br>
+2. Click on the Test button.
+</p>
+
+<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>
+The popup button will change to display the word SUCCESS.
+</p>
+
+<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>
+The popup button will become wider but will not display any text. Clicking the popup
+once will not bring up the menu.
+</p>
+
+<select id="select"></select>
+<br>
+<input type="button" onclick='document.getElementById("select").add(new Option("SUCCESS"))' value="Test">
+
+</body>
+</html>
diff --git a/ManualTests/user-drag-with-decorations.html b/ManualTests/user-drag-with-decorations.html
new file mode 100644
index 000000000..1878d11ec
--- /dev/null
+++ b/ManualTests/user-drag-with-decorations.html
@@ -0,0 +1,7 @@
+This tests that we don't include overflow decorations from our ancestor nodes in the drag image for -webkit-user-drag: element. To perform this test drag the green square below. The drag image should not contain any parts of the scrollbar graphics visible on the page.
+
+<div style="height:100px; width:100px;overflow:scroll;">
+ <div style="-webkit-user-drag:element;position:absolute; background: rgba(0,128,0,0.5); height:100px; width:100px;">
+ Drag me!
+ </div>
+</div> \ No newline at end of file
diff --git a/ManualTests/user-media-request-crash.html b/ManualTests/user-media-request-crash.html
new file mode 100644
index 000000000..000f5309c
--- /dev/null
+++ b/ManualTests/user-media-request-crash.html
@@ -0,0 +1,28 @@
+<html>
+<head>
+<meta http-equiv="refresh" content="2"/>
+
+<script>
+function error() {
+}
+
+function getUserMedia(dictionary, callback) {
+ try {
+ navigator.webkitGetUserMedia(dictionary, callback, error);
+ } catch (e) {
+ }
+}
+
+function gotStream1(s) {
+}
+
+function start() {
+ getUserMedia({audio:true}, gotStream1);
+}
+</script>
+
+</head>
+<body onload="start()">
+<h1>Test passes if it does not crash.</h1>
+</body>
+</html>
diff --git a/ManualTests/video-in-non-frontmost-tab.html b/ManualTests/video-in-non-frontmost-tab.html
new file mode 100644
index 000000000..d1fe4a8ca
--- /dev/null
+++ b/ManualTests/video-in-non-frontmost-tab.html
@@ -0,0 +1,4 @@
+This tests that video does not play if it's not in the frontmost tab.
+Command-Click <a href="resources/video-tab.html">this link</a> to open it in a non-frontmost tab.
+If you hear music before switching tabs, then the test failed.
+If not, click on the tab and the video should then play.
diff --git a/ManualTests/video-player.html b/ManualTests/video-player.html
new file mode 100644
index 000000000..74f0a3844
--- /dev/null
+++ b/ManualTests/video-player.html
@@ -0,0 +1,103 @@
+<style>
+#videoelem { width: 100%; height: 100%; position: absolute; }
+#videocontainer { position: relative; width: 400px; height:230px;-webkit-user-select:none; -webkit-transition-duration:0.2s}
+.videobutton {
+ line-height: 40pt;
+ border: 3px solid white;
+ -webkit-border-radius: 20px;
+ opacity: 0.5;
+ position: absolute;
+ font-size: 40pt;
+ color: white;
+ background-color: gray;
+ cursor: pointer;
+ text-align: center;
+ z-index: 1;
+}
+.videozoombutton { bottom:10px;right:10px;width:1.1em;height:1.1em;font-size:15pt; line-height: 15pt; border:2px solid white; -webkit-border-radius: 8px;}
+.videoloading { top: 0; bottom: 0; margin:auto; left:0; right:0; width: 7em; height: 1.2em; cursor:default;}
+.videofadeout { -webkit-transition: 1.5s; opacity:0; }
+#videocontainer:hover .videofadeout { opacity: 0.5; }
+.videoplay { top: 0; bottom: 0; margin:auto; left:0; right:0; width: 1.2em; height: 1.2em;}
+</style>
+<script>
+var videoElem;
+var playButton;
+var showProgress = true;
+var videoLargeSize = false;
+function startedPlaying() {
+ showProgress = false;
+ playButton.innerHTML = "||"
+ playButton.className = "videobutton videoplay videofadeout";
+}
+function stoppedPlaying() {
+ playButton.innerHTML = ">"
+ playButton.className = "videobutton videoplay";
+}
+function updateProgress(ev) {
+ if (!showProgress)
+ return;
+ playButton.innerHTML = "Loading...";
+ playButton.className = "videobutton videoloading";
+}
+function initVideo() {
+ videoElem = document.getElementById("videoelem");
+ playButton = document.getElementById("videoplaybutton");
+ videoZoomButton = document.getElementById("videozoombutton");
+ if (!videoElem.play) {
+ playButton.style.display = "none";
+ videoZoomButton.style.display = "none";
+ return;
+ }
+ videoElem.addEventListener("play", startedPlaying);
+ videoElem.addEventListener("pause", stoppedPlaying);
+ videoElem.addEventListener("ended", function () {
+ if (!videoElem.paused)
+ videoElem.pause();
+ stoppedPlaying();
+ });
+ videoElem.addEventListener("progress", updateProgress);
+ videoElem.addEventListener("begin", updateProgress);
+ videoElem.addEventListener("canplaythrough", function () {
+ videoElem.play();
+ });
+ videoElem.addEventListener("error", function() {
+ playButton.innerHTML = "Load failed";
+ });
+ videoElem.addEventListener("dataunavailable", function () {
+ if (!showProgress) {
+ showProgress = true;
+ playButton.innerHTML = "Loading...";
+ playButton.className = "videobutton videoloading";
+ }
+ });
+ videoZoomButton.addEventListener("click", function () {
+ var container = document.getElementById("videocontainer");
+ videoLargeSize = !videoLargeSize;
+ if (videoLargeSize) {
+ container.style.width = "640px";
+ container.style.height = "360px";
+ videoZoomButton.innerHTML = "-";
+ } else {
+ container.style.width = "400px";
+ container.style.height = "225px";
+ videoZoomButton.innerHTML = "+";
+ }
+ });
+ playButton.addEventListener("click", function () {
+ if (videoElem.paused) {
+ if (!videoElem.src)
+ videoElem.src = "http://movies.apple.com/movies/us/apple/ipoditunes/2007/touch/ads/apple_ipodtouch_touch_r640-9cie.mov";
+ videoElem.play();
+ } else
+ videoElem.pause();
+ } );
+}
+</script>
+<div id=videocontainer>
+<video id=videoelem poster="resources/touch-poster.png">
+<b style="font-size:15pt">This is fallback content. If you had video support you would see some here!</b></video>
+<div class="videobutton videoplay" id=videoplaybutton>&gt;</div>
+<div id=videozoombutton class="videobutton videozoombutton videofadeout">+</div>
+</div>
+<script>initVideo();</script>
diff --git a/ManualTests/video-rtsp.html b/ManualTests/video-rtsp.html
new file mode 100644
index 000000000..f500f697e
--- /dev/null
+++ b/ManualTests/video-rtsp.html
@@ -0,0 +1,9 @@
+<html>
+<head>
+<title>RTSP playback test</title>
+</head>
+<body>
+<video width=400 height=300 preload=none autoplay src="rtsp://dmzosx001.dpa.act.gov.au/medium"></video>
+<p>Test that RTSP URL loads.<p>
+</body>
+</html>
diff --git a/ManualTests/video-statistics.html b/ManualTests/video-statistics.html
new file mode 100644
index 000000000..ed9b1281b
--- /dev/null
+++ b/ManualTests/video-statistics.html
@@ -0,0 +1,79 @@
+<html>
+<head><title>WebKit video playback statistics</title></head>
+<body>
+<!-- inspired by --
+ -- http://people.mozilla.org/~cpearce/paint-stats-demo.html -->
+<video src="http://movies.apple.com/movies/us/apple/ipoditunes/2007/touch/ads/apple_ipodtouch_touch_r640-9cie.mov" id="v" controls autoplay></video>
+<div id="log">
+ Audio bytes decoded: 0 average p/s: 0<br>
+ Video bytes decoded: 0 average p/s: 0<br>
+ Decoded frames: 0 average p/s: 0<br>
+ Dropped frames: 0 average p/s: 0<br>
+</div>
+<script>
+
+var decodedFrames = 0;
+var decodedPerSec = 0;
+var audioBytesDecoded = 0;
+var audioBytesDecodedPerSec = 0;
+var videoBytesDecoded = 0;
+var videoBytesDecodedPerSec = 0;
+var droppedFrames = 0;
+var droppedFramesPerSec = 0;
+
+function Mean() {
+ this.count = 0;
+ this.sum = 0;
+
+ this.record = function(val) {
+ this.count++;
+ this.sum += val;
+ };
+
+ this.mean = function() {
+ return this.count ? (this.sum / this.count).toFixed(3) : 0;
+ };
+}
+
+
+var decodedMean = new Mean();
+var audioMean = new Mean();
+var videoMean = new Mean();
+var dropMean = new Mean();
+
+function recalcRates() {
+ var v = document.getElementById("v");
+
+ if (v.readyState <= HTMLMediaElement.HAVE_CURRENT_DATA || v.paused) {
+ return;
+ }
+
+ decodedPerSec = (v.webkitDecodedFrameCount - decodedFrames);
+ decodedFrames = v.webkitDecodedFrameCount;
+
+ audioBytesDecodedPerSec = v.webkitAudioDecodedByteCount - audioBytesDecoded;
+ audioBytesDecoded = v.webkitAudioDecodedByteCount;
+
+ videoBytesDecodedPerSec = v.webkitVideoDecodedByteCount - videoBytesDecoded;
+ videoBytesDecoded = v.webkitVideoDecodedByteCount;
+
+ droppedFramesPerSec = v.webkitDroppedFrameCount - droppedFrames;
+ droppedFrames = v.webkitDroppedFrameCount;
+
+ decodedMean.record(decodedPerSec);
+ audioMean.record(audioBytesDecodedPerSec);
+ videoMean.record(videoBytesDecodedPerSec);
+ dropMean.record(droppedFramesPerSec);
+
+ var d = document.getElementById("log");
+ d.innerHTML =
+ "Audio bytes decoded: " + v.webkitAudioDecodedByteCount + " average p/s: " + audioMean.mean() + "<br>" +
+ "Video bytes decoded: " + v.webkitVideoDecodedByteCount + " average p/s: " + videoMean.mean() + "<br>" +
+ "Decoded frames: " + v.webkitDecodedFrameCount + " average p/s: " + decodedMean.mean() + "<br>" +
+ "Dropped frames: " + v.webkitDroppedFrameCount + " average p/s: " + dropMean.mean() + "<br>";
+}
+
+setInterval(recalcRates, 1000);
+</script>
+</body>
+</html>
diff --git a/ManualTests/video-waiting-seeking.html b/ManualTests/video-waiting-seeking.html
new file mode 100644
index 000000000..7509cf64e
--- /dev/null
+++ b/ManualTests/video-waiting-seeking.html
@@ -0,0 +1,81 @@
+<html>
+ <head>
+ <script src="../../../LayoutTests/media/video-test.js"></script>
+ <script>
+
+ var seekedCount = 0;
+ var counter = 0;
+
+ function trySeek(seekTo)
+ {
+ if (isInTimeRanges(video.seekable, seekTo)) {
+ if (isInTimeRanges(video.buffered, seekTo)) {
+ consoleWrite("Warining: Seeking into buffered region. May not generate waiting or seeking events.");
+ }
+ run("video.currentTime = " + seekTo);
+ } else {
+ failTest("Cannot seek to " + seekTo + ". Does engine support seeking into unbuffered region?");
+ }
+ }
+
+ function seeked()
+ {
+ ++seekedCount;
+ consoleWrite("");
+ }
+
+ function scheduleSeek() {
+ setTimeout(someTimeLater, 200);
+ }
+
+ function someTimeLater()
+ {
+ consoleWrite("Running scheduled seek");
+ testExpected("seekedCount", counter);
+ testExpected("video.currentTime", counter, ">=");
+
+ if (counter == 3)
+ {
+ consoleWrite("");
+ return;
+ endTest();
+ }
+
+ ++counter;
+
+ scheduleSeek();
+ trySeek(counter);
+ consoleWrite("");
+ }
+
+ function start()
+ {
+ findMediaElement();
+
+ waitForEvent('waiting');
+ waitForEvent('seeking');
+ waitForEvent('seeked', seeked);
+ waitForEvent('play', someTimeLater);
+
+ consoleWrite("Start Load");
+ video.src = "http://127.0.0.1:8000/media/video-throttled-load.cgi?name=../../../media/content/test.mp4&throttle=25";
+ video.load();
+ video.play();
+ }
+ </script>
+ </head>
+ <body onload="start()">
+ <video controls></video>
+
+ <p>Attempt to seek out of the buffered range. If supported, this
+ should cause a waiting and seeking event to be fired for each seek.
+ This test makes assumptions on the size of the input file, the bitrate
+ of delivery, and the duration of the file.
+ </p>
+ <p>
+ Source is assumed to be about 188k with a uniform bitrate, &gt; 4
+ seconds in length, and served at 25kb/s. This should make seeking one
+ second ahead every 200ms always leave the buffered region.
+ </p>
+ </body>
+</html>
diff --git a/ManualTests/viewport-width-test-after-history-navigation.html b/ManualTests/viewport-width-test-after-history-navigation.html
new file mode 100644
index 000000000..4c265bd24
--- /dev/null
+++ b/ManualTests/viewport-width-test-after-history-navigation.html
@@ -0,0 +1,40 @@
+<html>
+<head>
+ <meta name="viewport" content="width=700">
+ <script>
+ var originalViewportWidth;
+
+ function checkViewportWidthAfterHistoryNavigation() {
+ if (originalViewportWidth == window.innerWidth)
+ document.body.innerHTML = "<div style='color:green'>PASS, viewport width is OK after history navigation.</div>";
+ else
+ document.body.innerHTML = "<div style='color:red'>FAIL, viewport width is different after history navigation.</div>";
+ }
+
+ function navigateAwayAndBack() {
+ // Force layout before getting viewport width.
+ document.body.offsetTop;
+ originalViewportWidth = window.innerWidth;
+
+ // Assigning to window.location does not create a history entry, so instead link click is simulated.
+ var evt = document.createEvent("MouseEvents");
+ evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
+ document.getElementById('anchor').dispatchEvent(evt);
+ // Initiate timer to do final verification as we have navigated back to the cached version of this page.
+ // This test makes use of the behavior where timers are restored on a cached page.
+ setTimeout('checkViewportWidthAfterHistoryNavigation()', 1000);
+
+ }
+ </script>
+</head>
+<body onload='setTimeout("navigateAwayAndBack()", 0 );'>
+ <a id='anchor' href='data:text/html,
+ <html>
+ <head>
+ <meta name="viewport" content="width=600">
+ </head>
+ <body onload="document.body.offsetTop; history.back();"></body>
+ </html>'>
+ </a>
+</body>
+</html>
diff --git a/ManualTests/visited-link-new-window.html b/ManualTests/visited-link-new-window.html
new file mode 100644
index 000000000..5e10a34fc
--- /dev/null
+++ b/ManualTests/visited-link-new-window.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Visited link coloring test</test>
+<style>
+:visited {
+ color: limegreen;
+}
+</style>
+</head>
+<body>
+<h1>Visited link coloring test</h1>
+<p>Make sure the link below is not colored as visited (delete the item
+for visited-link.html from your history and restart if
+necessary). Then cmd-click it. The link should turn lime green.</p>
+<a href="resources/visited-link.html">Am I a visited link?</a>
+</body>
+</html>
diff --git a/ManualTests/webarchive-test.html b/ManualTests/webarchive-test.html
new file mode 100644
index 000000000..ab6442284
--- /dev/null
+++ b/ManualTests/webarchive-test.html
@@ -0,0 +1,9 @@
+<html>
+<head>
+<title>webarchive test</title>
+</head>
+<body>
+<p>This test verifies that webarchive files larger than 4KB can be loaded. This functionality had previously regressed due to <a href="https://bugs.webkit.org/show_bug.cgi?id=36196">https://bugs.webkit.org/show_bug.cgi?id=36196</a>. If you see a snapshot of <a href="http://webkit.org">webkit.org</a> in the iframe below, the test passed.</p>
+<iframe src="WebKitSite.webarchive" width="800" height="600"></iframe>
+</body>
+</html>
diff --git a/ManualTests/whitespace-pre-affinity.html b/ManualTests/whitespace-pre-affinity.html
new file mode 100644
index 000000000..eac9040d5
--- /dev/null
+++ b/ManualTests/whitespace-pre-affinity.html
@@ -0,0 +1,16 @@
+<html>
+<body>
+<p>This test checks for a regression against http://bugs.webkit.org/show_bug.cgi?id=3739.</p>
+NOTES:<ol>
+<li>this MUST be checked in a build because the symptom is an assert</li>
+<li>double-click a few times on the blanks lines below</li>
+<li>if you hit the isEqualIgnoringAffinity() assert, the bug is back</li>
+</ol>
+<hr>
+<pre>One
+
+Two
+
+Three</pre>
+</body>
+</html>
diff --git a/ManualTests/win/contextmenu-key.html b/ManualTests/win/contextmenu-key.html
new file mode 100644
index 000000000..7d6f73493
--- /dev/null
+++ b/ManualTests/win/contextmenu-key.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+
+#outer {
+ overflow: auto;
+ width: 200px;
+ height: 200px;
+}
+
+#inner {
+ position: relative;
+ height: 400px;
+}
+
+#inner:focus {
+ background-color: lightblue;
+}
+
+#inner:active {
+ background-color: blue;
+}
+
+#h, #h2 {
+ background: rgba(255, 255, 255, 0);
+}
+
+#h {
+ position: absolute;
+ height: 200px;
+ width: 200px;
+}
+
+#h2 {
+ position: absolute;
+ top: 200px;
+ height: 200px;
+ width: 100%;
+}
+
+#h:hover,
+#h2:hover {
+ background: pink;
+}
+
+#h:active,
+#h2:active {
+ background: red;
+}
+
+pre {
+ position: absolute;
+ left: 250px;
+ top: 80px;
+}
+
+</style>
+</head>
+<body>
+
+<p>Manual test for <a href="https://bugs.webkit.org/show_bug.cgi?id=38129">bug 38129</a></p>
+
+<p>Click the div below and press the context menu key on your keyboard (Shift+F10 also works)</p>
+
+<div id=outer>
+ <div id=inner tabindex=0>
+ <div id=h2></div>
+ </div>
+</div>
+
+<div id=h></div>
+
+<pre></pre>
+
+<script>
+
+function cs(el)
+{
+ if (window.getComputedStyle)
+ return window.getComputedStyle(el, '');
+ return el.currentStyle;
+}
+
+document.addEventListener('contextmenu', function(e)
+{
+ var inner = document.querySelector('#inner');
+ var outer = document.querySelector('#outer');
+ var h = document.querySelector('#h');
+ var h2 = document.querySelector('#h2');
+ var result = [];
+
+ result.push(e.target, document.querySelector('#inner'));
+ result.push(cs(inner, '').backgroundColor, 'rgb(0, 0, 255)');
+ result.push(cs(h, '').backgroundColor, 'rgba(255, 255, 255, 0)');
+ result.push(cs(h2, '').backgroundColor, 'rgba(255, 255, 255, 0)');
+
+ var s = '';
+ for (var i = 0; i < result.length; i += 2) {
+ s += result[i] + ' == ' + result[i + 1] + ' - ' +
+ (result[i] == result[i + 1] ? 'PASS' : 'FAIL') + '<br>';
+ }
+
+ document.querySelector('pre').innerHTML = s;
+
+ return true;
+}, false);
+
+</script>
+
+</body>
+</html>
diff --git a/ManualTests/win/contextmenu-key2.html b/ManualTests/win/contextmenu-key2.html
new file mode 100644
index 000000000..2833e5820
--- /dev/null
+++ b/ManualTests/win/contextmenu-key2.html
@@ -0,0 +1,13 @@
+<div oncontextmenu="contextmenu(event)">
+Select some text in the contenteditable below and press the context menu key
+(or shift+F10). The browser should not crash.
+<div contenteditable id="a">
+<p>|content editable|</p>
+</div>
+After content editable.
+</div>
+<script>
+function contextmenu(event) {
+ document.getElementById("a").style.visibility = "hidden";
+}
+</script>
diff --git a/ManualTests/win/contextmenu-key3.html b/ManualTests/win/contextmenu-key3.html
new file mode 100644
index 000000000..dc328d7ac
--- /dev/null
+++ b/ManualTests/win/contextmenu-key3.html
@@ -0,0 +1,8 @@
+<p>Manual test for <a href="https://bugs.webkit.org/show_bug.cgi?id=76421">bug 76421</a></p>
+<p>Left click on one of the lines in the text area and then hit the keyboard's context menu key to make sure the context menu pops up for the appropriate line.</p>
+
+<textarea style="min-height:75px;">
+ aaaaaaaaa
+ bbbbbbbbb
+ ccccccccc
+</textarea>
diff --git a/ManualTests/win/milliondollar.html b/ManualTests/win/milliondollar.html
new file mode 100644
index 000000000..e1d51ff77
--- /dev/null
+++ b/ManualTests/win/milliondollar.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Million dollar test</title>
+<style type="text/css" media="screen">
+ body {
+ padding: 0px; margin: 0px; font-size: 12px; font-family:"Lucida Grande", Verdana, Arial, sans-serif;
+ background:#303030;
+ }
+ .ie {text-align: left; width:1000px;position:relative;visibility:hidden;z-index:1;}
+ .grid {height: 1000px; width:1000px; position:relative;z-index:153;xoverflow:hidden;}
+ .row {background:url(100grid_inv.png) #000;height: 100px; text-align: left; position:relative;width:1000px;z-index:10;}
+ #lq {width:1000px;position:relative;z-index:0;text-align:left;}
+ .bz {-webkit-perspective: 1500;-webkit-perspective-origin: 50% 325px;}
+ .fc {-webkit-transform-style: preserve-3d;-webkit-transform: rotateY(0deg) ;opacity: 1.0;}
+ @-webkit-keyframes spin_3d {
+ 0% { -webkit-transform: rotateY(0) rotateZ(0); }
+ 33% { -webkit-transform: rotateY(-20deg) rotateZ(-20deg); }
+ 65% { -webkit-transform: rotateY(20deg) rotateZ(20deg); }
+ 100% { -webkit-transform: rotateY(0deg) rotateZ(0deg); }
+ }
+ .plane > a {display:block;height:100%;width:100%;}
+ .plane {
+ position: absolute;
+ opacity:0.5;
+ background-repeat:no-repeat;
+ -webkit-transition: -webkit-transform 0.3s, opacity 0s;-webkit-backface-visibility: visible;}
+</style>
+
+<script type="text/javascript">
+function loadBlocks() {
+ document.getElementById("ie").style.visibility = "visible";
+ document.getElementById("ie").className = document.getElementById("ie").className + " bz";
+ document.getElementById("grid").className = document.getElementById("grid").className + " fc";
+ document.getElementById("lq").style.display = "none";
+
+ var cubes;
+
+ cubify(200,0,250,50);
+ cubify(800,500,900,600);
+ cubify(250,350,300,400);
+ cubify(600,600,650,650);
+ cubify(850,0,900,50);
+ cubify(650,450,700,500);
+ cubify(100,500,250,650);
+ cubify(400,600,500,700);
+ cubify(700,600,800,700);
+ cubify(350,0,500,150);
+ cubify(450,200,500,250);
+ cubify(550,250,600,300);
+ cubify(0,400,100,450);
+ cubify(600,150,650,200);
+ cubify(600,700,650,750);
+ cubify(150,850,450,950);
+ cubify(200,100,300,200);
+ cubify(750,200,950,400);
+ cubify(250,700,350,800);
+ cubify(600,800,700,900);
+ cubify(100,300,150,350);
+ cubify(0,300,50,350);
+ cubify(850,650,950,700);
+ cubify(900,100,950,150);
+ cubify(200,400,250,450);
+ cubify(200,250,250,300);
+ cubify(300,600,350,650);
+ cubify(50,200,100,250);
+ cubify(100,100,150,150);
+ cubify(0,0,5,5);
+ cubify(470,430,475,435);
+ cubify(520,480,525,485);
+ cubify(570,380,575,385);
+ cubify(550,0,600,50);
+ cubify(650,0,700,50);
+ cubify(425,390,455,400);
+ cubify(435,400,445,430);
+ cubify(525,425,530,430);
+ cubify(450,500,465,515);
+ cubify(650,100,750,200);
+ cubify(0,0,50,50);
+ cubify(700,750,900,800);
+ cubify(495,390,510,405);
+ cubify(495,445,500,450);
+ cubify(560,450,565,455);
+ cubify(460,460,465,465);
+ cubify(525,370,530,375);
+ cubify(490,420,495,425);
+ cubify(520,440,525,445);
+ cubify(510,420,515,425);
+ cubify(495,465,500,470);
+ cubify(475,405,480,410);
+ cubify(545,400,550,405);
+ cubify(485,370,490,375);
+ cubify(430,365,435,370);
+
+ document.getElementById("grid").innerHTML = cubes + document.getElementById("grid").innerHTML;
+
+ function cubify(x1, y1, x2, y2)
+ {
+ var width, height,dw;
+ width = x2 - x1;
+ height = y2 - y1;
+ if (width < height) {
+ dw = width;
+ } else {
+ dw = height;
+ }
+ cubes += addBlock(x1,y1,width,height,dw);
+ }
+
+ function addBlock(x1,y1,xf,qp,dw)
+ {
+ return "<div class='a_cube'><div class='plane one' style='background-color: red;height:"+dw+"px;width:"+dw+"px;top:"+y1+"px;left:"+x1+"px;-webkit-transform:rotateY(90deg) rotateZ(-90deg) translateX(0px) translateY(-"+(dw/2)+"px) translateZ("+(dw/2)+"px) translateY(0px);position:absolute;'></div><div class='plane two' style='background-color: blue;height:"+dw+"px;width:"+dw+"px;top:"+y1+"px;left:"+x1+"px;-webkit-transform:rotateY(90deg) rotateX(180deg) rotateZ(-90deg) translateX(0px) translateY(-"+(dw/2)+"px) translateZ("+(dw/2)+"px) translateY(0px);position:absolute;'></div><div class='plane three' style='background-color: green;height:"+dw+"px;width:"+dw+"px;top:"+y1+"px;left:"+x1+"px;-webkit-transform:rotateX(-90deg) translateX(0px) translateZ("+(dw/2)+"px) translateY(-"+(dw/2)+"px);position:absolute;'></div><div class='plane four' style='background-color: yellow;height:"+dw+"px;width:"+dw+"px;top:"+y1+"px;left:"+x1+"px;-webkit-transform:rotateY(90deg) rotateX(90deg) rotateZ(-90deg) translateY(-"+(dw/2)+"px) translateX(0px) translateZ("+(dw/2)+"px) translateY(0px);position:absolute;'></div><div class='plane five' style='background-color: gray;height:"+dw+"px;width:"+dw+"px;top:"+y1+"px;left:"+x1+"px;-webkit-transform:rotateY(0deg) translateX(0px) translateZ("+(dw)+"px) translateY(0px);position:absolute;'></div></div>";
+ }
+
+ document.getElementById("grid").style.webkitAnimation = "spin_3d 36s infinite linear";
+};
+
+</script>
+</head>
+<body onload="loadBlocks()">
+<center>
+ <div id="lq">
+ <div style="top: 252px; left: 203px; width: 196px; height: 196px; position: relative;
+ z-index: 0; text-align: left; border: 0px solid #999; padding: 0px; background: #333;
+ -moz-border-radius: 0px; -webkit-border-radius: 0px; text-align: center;">
+ $1 a pixel
+ </div>
+ </div>
+ <div class="ie" id="ie">
+ <div class="grid" id="grid">
+ <div class="row" id="row0"></div><div class="row" id="row1"></div><div class="row" id="row2"></div><div class="row" id="row3"></div><div class="row" id="row4"></div><div class="row" id="row5"></div><div class="row" id="row6"></div><div class="row" id="row7"></div><div class="row" id="row8"></div><div class="row" id="row9"></div>
+ </div>
+ </div>
+</center>
+</body>
+</html>
diff --git a/ManualTests/win/select-menu-off-screen.html b/ManualTests/win/select-menu-off-screen.html
new file mode 100644
index 000000000..6711b0e61
--- /dev/null
+++ b/ManualTests/win/select-menu-off-screen.html
@@ -0,0 +1,22 @@
+<html>
+<body>
+ <ol>
+ <li>Maximize window.</li>
+ <li>Click on left menu and make sure whole menu (all of the entries should be completely visible) appears on screen against the left edge of the screen.</li>
+ <li>Click on right menuand make sure whole menu (all of the entries should be completely visible) appears on screen against the right edge of the screen.</li>
+ </ol>
+ <select id="left-select-over" style="margin-left:-50px;">
+ <option value="first">First</option>
+ <option value="second">Second</option>
+ <option value="third">Third</option>
+ <option value="fourth">Fourth</option>
+ </select>
+ <select id="right-select-over" style="float:right; margin-right:-50px;">
+ <option value="first">First</option>
+ <option value="second">Second</option>
+ <option value="third">Third</option>
+ <option value="fourth">Fourth</option>
+ </select>
+</body>
+<html>
+
diff --git a/ManualTests/window-close-during-parsing.html b/ManualTests/window-close-during-parsing.html
new file mode 100644
index 000000000..70dfef477
--- /dev/null
+++ b/ManualTests/window-close-during-parsing.html
@@ -0,0 +1,18 @@
+<html>
+<body>
+<p>This test checks a window.close called in the midst of parsing a page.
+ Click the buttons below to load the test pages.
+</p>
+<hr>
+<input type=button value="Run Test 1" onclick='window.open("resources/window-close-during-parsing-popup1.html")'>
+<p>If this test passes, you should see 'PASS: same script tag after close,'
+ but nothing else. In particular, you should not see onload or onunload
+ fire.
+</p>
+<hr>
+<input type=button value="Run Test 2" onclick='window.open("resources/window-close-during-parsing-popup2.html")'>
+<p>If this test passes, you should see a window open and then close.
+ If it fails, Safari will crash.
+</p>
+</body>
+</html>
diff --git a/ManualTests/window-open-features-parsing.html b/ManualTests/window-open-features-parsing.html
new file mode 100644
index 000000000..50dc5e88d
--- /dev/null
+++ b/ManualTests/window-open-features-parsing.html
@@ -0,0 +1,38 @@
+<html><head><script>
+function test() {
+ /* The lowdown on this feature string:
+ - ,=\twidth: reads as key:width value:0200px|0, which, after strtol/toInt, gives you 200
+ - =height: reads as key:height value:"", which means yes, which means 1, but the minimum size is 100, so 100
+ - 1width: reads as key:1width, an invalid key, so it doesn't override the previous width
+ - left: reads as key:left value:no, which means 0, which means aligned to the left side of the screen
+ - \ntoolBAR: reads as key:toolbar value:yes
+ - \rstatus: reads as key:status value:"", which means yes
+ - the trailing comma catches a previous mistake i made reading past the end of the string
+ */
+ var sFeatures = " ,=\twidth == = = 0200px|0=height 400,1width=400,left=nO \ntoolBAR=yeS,resizable=yess, \rstatus= ,";
+ var w = window.open("resources/popup200x100.html", undefined, sFeatures);
+ w.focus();
+}
+</script></head>
+<body>
+<p>This test checks whether parsing of the 'features' argument to window.open matches
+Win IE's behavior, except in the case of "resizable," which should always be true.</p>
+<p>The link below should open a window with the following attributes:</p>
+<ul>
+<li> A WebView exactly 200x100, such that you can see a red 1 pixel border along each edge of the WebView.
+<li> A window aligned to the left hand side of the screen.
+<li> Toolbar visible.
+<li> Statusbar visible.
+<li> Resizable.
+</ul>
+<a href="" onclick="test(); return false;">Click to test</a>
+<hr>
+<p>The link below should open a window with the following attributes:</p>
+<ul>
+<li>A window whose size matches what you would get from file->New Window.</li>
+<li>A window whose positioning matches what you would get from file->New Window.</li>
+<li>Statusbar visible.</li>
+<li>Resizable.</li>
+</ul>
+<a href="" onclick='window.open("", "", "status,resizable");'>Click to test</a>
+</body></html>
diff --git a/ManualTests/window-print-subframe.html b/ManualTests/window-print-subframe.html
new file mode 100644
index 000000000..39047b306
--- /dev/null
+++ b/ManualTests/window-print-subframe.html
@@ -0,0 +1,5 @@
+<script>
+ window.onload = function() { frames[0].print(); }
+</script>
+<p>This text in the main frame should not be printed.</p>
+<iframe src="resources/print-subframe.html">
diff --git a/ManualTests/window-sizing.html b/ManualTests/window-sizing.html
new file mode 100644
index 000000000..572998b80
--- /dev/null
+++ b/ManualTests/window-sizing.html
@@ -0,0 +1,126 @@
+<html>
+<head>
+<script>
+var w;
+function Open(sFeatures)
+{
+ if (w && !w.closed)
+ w.close();
+
+ w = window.open("resources/popup200x200.html", "popup", sFeatures);
+
+}
+
+function test1()
+{
+ Open("width=200, height=200, left = 0, top = 0, scrollbars, resizable");
+
+ setConsole(document.getElementById('console1'));
+ clearConsole();
+ shouldBe("w.innerHeight", 200);
+ shouldBe("w.innerWidth", 200);
+ shouldBe("w.outerWidth", 200);
+ shouldBe("w.screenLeft", 0);
+ shouldBe("w.screenTop", 22); // empirical result of low dpi testing
+ shouldBe("w.outerHeight", 223); // empirical result of low dpi testing
+}
+
+function test2()
+{
+ console = document.getElementById('console2');
+ Open("width=200, height=200, left = 0, top = 0, scrollbars, menubar, status, toolbar, resizable");
+
+ setConsole(document.getElementById('console2'));
+ clearConsole();
+ shouldBe("w.innerHeight", 200);
+ shouldBe("w.innerWidth", 200);
+ shouldBe("w.outerWidth", 200);
+ shouldBe("w.screenLeft", 0);
+ shouldBe("w.screenTop", 22); // empirical result of low dpi testing
+ shouldBe("w.outerHeight", 313); // empirical result of low dpi testing
+}
+
+function test3()
+{
+ Open("width=200,height=200,left=" + (screen.width - 200) + ",screenY=0, resizable");
+ w.moveBy(0, screen.height - w.screenTop - w.outerHeight);
+
+ // should be no-ops
+ w.moveTo(w.screenLeft - 100, w.screenTop + 100);
+ w.moveBy(100, -100);
+ w.resizeTo(w.outerWidth - 100 , w.outerHeight - 100);
+ w.resizeBy(100, 100);
+
+ setConsole(document.getElementById('console3'));
+ clearConsole();
+ shouldBe("w.innerHeight", 200);
+ shouldBe("w.innerWidth", 200);
+ shouldBe("w.outerWidth", 200);
+ shouldBe("w.screenLeft", screen.width - 200);
+ shouldBe("w.screenTop", screen.height - w.outerHeight);
+ shouldBe("w.outerHeight", 223); // empirical result of low dpi testing
+}
+
+var console;
+function print(message, color)
+{
+ var paragraph = document.createElement("div");
+ paragraph.appendChild(document.createTextNode(message));
+ paragraph.style.fontFamily = "monospace";
+ if (color)
+ paragraph.style.color = color;
+ console.appendChild(paragraph);
+}
+
+function clearConsole()
+{
+ console.innerHTML = "";
+}
+
+function setConsole(c)
+{
+ console = c;
+}
+
+function shouldBe(a, b)
+{
+ var evalA = eval(a);
+ if (evalA == b)
+ print("PASS: " + a + " should be " + b + " and is.", "green");
+ else
+ print("FAIL: " + a + " should be " + b + " but instead is " + evalA + ".", "red");
+}
+</script>
+</head>
+<body>
+
+<p>This test checks our support for window sizing and positioning.</p>
+<p>To test: Click each button below. Check to make sure that the window it opens has the specified attributes.
+ Also check for a series of 'PASS' messages below the button.</p>
+<p style="color:red">NOTE: Make sure to test at magnified resolutions.</p>
+<p>To test @ 2X resolution:</p>
+<ol>
+<li>Open Quartz Debug (/Developer/Applications/Performance Tools).</li>
+<li>Select Tools -> Show User Interface Resolution.</li>
+<li>Set the resolution to 2.0.</li>
+<li>Restart Safari.</li>
+</ol>
+<hr>
+
+<p>Window size (no toolbars): You should see a red 1 pixel border along every edge of this page, and no scrollbars.</p>
+<input type="button" value="open it!" onclick="test1()">
+<div id='console1'></div>
+<hr>
+
+<p>Window size (all toolbars): You should see a red 1 pixel border along every edge of this page, and no scrollbars.</p>
+<input type="button" value="open it!" onclick="test2()">
+<div id='console2'></div>
+<hr>
+
+<p>Window positioning: This window should be aligned exactly to the bottom right corner of the screen.</p>
+<input type="button" value="open it!" onclick="test3()">
+<div id='console3'></div>
+<hr>
+
+</body>
+</html>
diff --git a/ManualTests/word-spacing-highlight.html b/ManualTests/word-spacing-highlight.html
new file mode 100644
index 000000000..01b69f9c1
--- /dev/null
+++ b/ManualTests/word-spacing-highlight.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Highlighting with word spacing</title>
+</head>
+<body>
+<p style="word-spacing:5em;">
+M xylophone
+</p>
+<p style="margin-left:1em;">
+&#x2191; click there and drag to the right
+</p>
+</body>
+</html> \ No newline at end of file
diff --git a/ManualTests/wordXML-selectall.xml b/ManualTests/wordXML-selectall.xml
new file mode 100644
index 000000000..900311b04
--- /dev/null
+++ b/ManualTests/wordXML-selectall.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<?mso-application progid="Word.Document"?>
+<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/2/wordml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:SL="http://schemas.microsoft.com/schemaLibrary/2003/2/core" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wx="http://schemas.microsoft.com/office/word/2003/2/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xml:space="preserve"><o:DocumentProperties></o:DocumentProperties><w:fonts><w:defaultFonts w:ascii="Times New Roman" w:fareast="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman"/></w:fonts><w:docPr></w:docPr><w:body><wx:sect><w:p><w:pPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Helvetica" w:h-ansi="Helvetica" w:cs="Helvetica"/><wx:font wx:val="Helvetica"/><w:sz w:val="24"/><w:sz-cs w:val="24"/></w:rPr><w:t>Simply open this document and "Select all" (cmd-a). That was enough to crash. See &lt;rdar://problem/4214259&gt;.</w:t></w:r></w:p><w:sectPr><w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/></w:sectPr></wx:sect></w:body></w:wordDocument> \ No newline at end of file
diff --git a/ManualTests/write-after-open.html b/ManualTests/write-after-open.html
new file mode 100644
index 000000000..e4c2f4b7e
--- /dev/null
+++ b/ManualTests/write-after-open.html
@@ -0,0 +1,42 @@
+<html>
+<body>
+<script>
+i = 0;
+windowArgs = "top=100, left=100, height=200, width=200";
+windowName = "";
+
+w = window.open("", windowName + i++, windowArgs);
+w.document.write("PASS: document.write after window.open(\"\", ...) worked.");
+w.document.close();
+
+w = window.open("", windowName + i++, windowArgs);
+w.document.open();
+w.document.write("PASS: document.write after window.open(\"\", ...) worked.");
+w.document.close();
+
+
+w = window.open("about:blank", windowName + i++, windowArgs);
+w.document.write("PASS: document.write after window.open(\"about:blank\", ...) worked.");
+w.document.close();
+
+w = window.open("about:blank", windowName + i++, windowArgs);
+w.document.open();
+w.document.write("PASS: document.write after window.open(\"about:blank\", ...) worked.");
+w.document.close();
+
+
+w = window.open("resources/write-after-open-popup.html", windowName + i++, windowArgs);
+w.document.write("PASS: document.write after window.open(\"resources/write-after-open-popup.html\", ...) worked.");
+w.document.close();
+
+w = window.open("resources/write-after-open-popup.html", windowName + i++, windowArgs);
+w.document.open();
+w.document.write("PASS: document.write after window.open(\"resources/write-after-open-popup.html\", ...) worked.");
+w.document.close();
+</script>
+
+<p>This test checks for regression against: <rdar://problem/3461547> can't use document.writeln() on windows opened via window.open("about:blank") in same function. </p>
+
+<p>On success, 6 windows will open, one on top of the other, each containing a PASS message.</p>
+</body>
+</html>
diff --git a/ManualTests/xhr-failure-behind-alert.html b/ManualTests/xhr-failure-behind-alert.html
new file mode 100644
index 000000000..23b2a83e6
--- /dev/null
+++ b/ManualTests/xhr-failure-behind-alert.html
@@ -0,0 +1,10 @@
+Connecting to a server that doesn't respond.
+Run this from a local file to avoid cross-origin code path.
+
+<script>
+var req = new XMLHttpRequest;
+req.open("GET", "http://127.0.0.1:7", true);
+req.send();
+req.onerror = function() { document.write("onerror<br>"); }
+alert("PASSED if no crash or assertion failure");
+</script>
diff --git a/PerformanceTests/.gitattributes b/PerformanceTests/.gitattributes
new file mode 100644
index 000000000..74e81375f
--- /dev/null
+++ b/PerformanceTests/.gitattributes
@@ -0,0 +1,7 @@
+PageLoad/svg/files/Harvey_Rayner.svg -crlf
+PageLoad/svg/files/cacuts_02.svg -crlf
+PageLoad/svg/files/crawfish2_ganson.svg -crlf
+PageLoad/svg/files/france.svg -crlf
+PageLoad/svg/files/mtsthelens.svg -crlf
+PageLoad/svg/files/worldcup.svg -crlf
+SunSpider/tests/parse-only/jquery-1.3.2.js -crlf
diff --git a/PerformanceTests/Animation/balls.html b/PerformanceTests/Animation/balls.html
new file mode 100644
index 000000000..e56c9f43d
--- /dev/null
+++ b/PerformanceTests/Animation/balls.html
@@ -0,0 +1,274 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<!--
+ Copyright (c) 2012 Cameron Adams. All rights reserved.
+ Copyright (c) 2012 Code Aurora Forum. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Code Aurora Forum, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This test is based on code written by Cameron Adams and imported from
+ http://themaninblue.com/experiment/AnimationBenchmark/html
+-->
+
+<head>
+
+ <title>Benchmark - HTML &amp; JavaScript</title>
+
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <meta name="author" content="The Man in Blue" />
+ <meta name="robots" content="all" />
+ <meta name="MSSmartTagsPreventParsing" content="true" />
+ <meta name="description" content="" />
+ <meta name="keywords" content="" />
+
+ <style type="text/css">
+
+ html {
+ height: 100%;
+ }
+
+ body {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
+ }
+
+ span {
+ position: absolute;
+ width: 12px;
+ height: 12px;
+ overflow: hidden;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ background-color: #000000;
+ }
+
+ .shadows span {
+ -webkit-box-shadow: 4px 4px 3px rgba(0,0,0,0.33);
+ -moz-box-shadow: 4px 4px 3px rgba(0,0,0,0.33);
+ box-shadow: 4px 4px 3px rgba(0,0,0,0.33);
+ }
+
+ #frameRate {
+ position: absolute;
+ right: 10px;
+ bottom: 10px;
+ z-index: 100;
+ font-size: 25px;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ </style>
+
+ <script type="text/javascript">
+
+ var FRAMES_PER_TIMER_READING = 10;
+ var MAX_ITERATIONS = 110;
+ var MAX_RUNS = 1;
+ var MAX_PARTICLES = 2500;
+ var MAX_VELOCITY = 50;
+ var PARTICLE_RADIUS = 6;
+ var STAGE_WIDTH = 600;
+ var STAGE_HEIGHT = 600;
+ var COLORS = ["#cc0000", "#ffcc00", "#aaff00", "#0099cc", "#194c99", "#661999"];
+
+ var frameTimes = [];
+ var iteration = 0;
+ var run = 0;
+ var animateIntervalId = 0;
+ var statistics = [];
+ var frameRates = [];
+ var particles = [];
+
+ window.onload = init;
+
+ function init()
+ {
+ PerfTestRunner.resetRandomSeed();
+
+ var location = window.location.href;
+ frameRates = [];
+ frameTimes = [];
+ iteration = 0;
+ animateIntervalId = 0;
+ particles = [];
+
+ // Create the particles
+ for (var i = 0; i < MAX_PARTICLES; i++)
+ particles.push(new Particle());
+
+ // Start the animation
+ animateIntervalId = setInterval(animate, 1);
+ }
+
+ function animate()
+ {
+ var currTime = new Date().getTime();
+ var timeDelta = currTime - frameTimes[frameTimes.length - 1];
+
+ if (isNaN(timeDelta))
+ timeDelta = 0;
+
+ // Draw each particle
+ for (var particle in particles)
+ particles[particle].draw(timeDelta);
+
+ if ((iteration++ % FRAMES_PER_TIMER_READING) == 0) {
+ // Limit the frame time array to the last 30 frames
+ if (frameTimes.length > 30)
+ frameTimes.splice(0, 1);
+
+ frameTimes.push(currTime);
+
+ // Calculate the framerate based upon the difference between the absolute times of the oldest and newest frames, subdivided by how many frames were drawn inbetween
+ var frameRate = document.getElementById("frameRate");
+ var frameRateVal = FRAMES_PER_TIMER_READING * 1000 / ((currTime - frameTimes[0]) / (frameTimes.length - 1));
+
+ if (!isNaN(frameRateVal)) {
+ frameRates.push(frameRateVal);
+ var frameRateText = frameRateVal + "";
+ frameRateText = frameRateText.replace(/(^[^.]+\...).*/, "$1");
+ frameRateText += " fps";
+ frameRate.innerHTML = frameRateText;
+ }
+ }
+
+ if (iteration > MAX_ITERATIONS) {
+ clearInterval(animateIntervalId);
+ onCompletedRun();
+ }
+ }
+
+ function Particle()
+ {
+ var angle = Math.PI * 2 * PerfTestRunner.random();
+ var velocity = MAX_VELOCITY / 8 * 7 * PerfTestRunner.random() + MAX_VELOCITY / 8;
+ var x = STAGE_WIDTH / 2 - PARTICLE_RADIUS;
+ var y = STAGE_HEIGHT / 2 - PARTICLE_RADIUS;
+
+ // Create visual element for the particle
+ var domNode = document.createElement('span');
+ document.body.appendChild(domNode);
+
+ // Set initial position to middle of screen
+ domNode.style.left = x + "px";
+ domNode.style.top = y + "px";
+
+ // Set colour of element
+ domNode.style.backgroundColor = COLORS[Math.floor(Math.random() * COLORS.length)];
+
+ function destroy()
+ {
+ document.body.removeChild(domNode);
+ return;
+ }
+
+ function draw(timeDelta)
+ {
+ // Calculate next position of particle
+ var nextX = x + Math.cos(angle) * velocity * (timeDelta / 1000);
+ var nextY = y + Math.sin(angle) * velocity * (timeDelta / 1000);
+
+ // If particle is going to move off right side of screen
+ if (nextX + PARTICLE_RADIUS * 2 > STAGE_WIDTH)
+ // If angle is between 3 o'clock and 6 o'clock
+ if ((angle >= 0 && angle < Math.PI / 2))
+ angle = Math.PI - angle;
+ // If angle is between 12 o'clock and 3 o'clock
+ else if (angle > Math.PI / 2 * 3)
+ angle = angle - (angle - Math.PI / 2 * 3) * 2
+
+ // If particle is going to move off left side of screen
+ if (nextX < 0)
+ // If angle is between 6 o'clock and 9 o'clock
+ if ((angle > Math.PI / 2 && angle < Math.PI))
+ angle = Math.PI - angle;
+ // If angle is between 9 o'clock and 12 o'clock
+ else if (angle > Math.PI && angle < Math.PI / 2 * 3)
+ angle = angle + (Math.PI / 2 * 3 - angle) * 2
+
+ // If particle is going to move off bottom side of screen
+ if (nextY + PARTICLE_RADIUS * 2 > STAGE_HEIGHT)
+ // If angle is between 3 o'clock and 9 o'clock
+ if ((angle > 0 && angle < Math.PI))
+ angle = Math.PI * 2 - angle;
+
+ // If particle is going to move off top side of screen
+ if (nextY < 0)
+ // If angle is between 9 o'clock and 3 o'clock
+ if ((angle > Math.PI && angle < Math.PI * 2))
+ angle = angle - (angle - Math.PI) * 2;
+
+ domNode.style.left = nextX + "px";
+ domNode.style.top = nextY + "px";
+
+ x = nextX;
+ y = nextY;
+ }
+
+ return { draw: draw, destroy: destroy }
+ }
+
+ function onCompletedRun() {
+ for (var particle in particles) {
+ var p = particles[particle];
+ particles[particle] = 0;
+ p.destroy();
+ }
+ particles = [];
+
+ frameRate.innerHTML = "";
+
+ for (var rate in frameRates)
+ PerfTestRunner.log(frameRates[rate].toFixed(2) + " fps");
+
+ var stats = PerfTestRunner.computeStatistics(frameRates, "fps");
+ statistics.push(stats);
+
+ PerfTestRunner.printStatistics(stats, "Time:");
+ PerfTestRunner.getAndPrintMemoryStatistics();
+
+ if (++run < MAX_RUNS) {
+ PerfTestRunner.log("<br>===================================================<br>");
+ init();
+ }
+ else if (window.testRunner)
+ testRunner.notifyDone();
+ }
+ </script>
+ <script src="../resources/runner.js"></script>
+</head>
+
+<body>
+ <div id="frameRate">
+ </div>
+</body>
+
+</html>
diff --git a/PerformanceTests/Bindings/append-child.html b/PerformanceTests/Bindings/append-child.html
new file mode 100644
index 000000000..bd679ff79
--- /dev/null
+++ b/PerformanceTests/Bindings/append-child.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var div = document.createElement("div");
+var childDiv = document.createElement("div");
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'appendChild' and 'removeChild' in Dromaeo/dom-modify.html.",
+ setup: function() {
+ div.innerHTML = "";
+ },
+ run: function() {
+ var localDiv = div;
+ var localChildDiv = childDiv;
+ for (var i = 0; i < 50000; i++)
+ localDiv.appendChild(localChildDiv);
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/create-element.html b/PerformanceTests/Bindings/create-element.html
new file mode 100644
index 000000000..7ef7b8ffa
--- /dev/null
+++ b/PerformanceTests/Bindings/create-element.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'createElement', 'createTextNode' and 'cloneNode' in Dromaeo/dom-modify.html, and other DOM methods that return a new Node object.",
+ run: function() {
+ for (var i = 0; i < 5000; i++)
+ document.createElement("div");
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/event-target-wrapper.html b/PerformanceTests/Bindings/event-target-wrapper.html
new file mode 100644
index 000000000..25d3e0606
--- /dev/null
+++ b/PerformanceTests/Bindings/event-target-wrapper.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<p><a href="#">Click here to start</a></p>
+<script>
+var link = document.getElementsByTagName('a')[0];
+var evt = null;
+var kIteratonsPerTest = 1000000;
+
+link.addEventListener('click', function(event) {
+ link.textContent = '';
+ window.evt = event;
+ event.preventDefault();
+
+ PerfTestRunner.run(function () {
+ var e = window.evt;
+ for (var x = 0; x < kIteratonsPerTest; x++) {
+ e.target;
+ }
+ });
+
+ return false;
+}, false);
+
+if (window.eventSender) {
+ eventSender.mouseMoveTo(link.offsetLeft + 5, link.offsetTop + 5);
+ eventSender.mouseDown();
+ eventSender.mouseUp();
+}
+</script>
+</body>
diff --git a/PerformanceTests/Bindings/first-child.html b/PerformanceTests/Bindings/first-child.html
new file mode 100644
index 000000000..f1714250a
--- /dev/null
+++ b/PerformanceTests/Bindings/first-child.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var div = document.createElement("div");
+div.appendChild(document.createElement("div"));
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'firstChild', 'lastChild', 'nextSibling' and 'previousSibling' in Dromaeo/dom-traverse.html, and other DOM attributes that return a Node object.",
+ run: function() {
+ var localDiv = div;
+ for (var i = 0; i < 100000; i++)
+ localDiv.firstChild;
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/get-attribute.html b/PerformanceTests/Bindings/get-attribute.html
new file mode 100644
index 000000000..77e5b5d63
--- /dev/null
+++ b/PerformanceTests/Bindings/get-attribute.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="foo"></div>
+<script src="../resources/runner.js"></script>
+<script>
+var div = document.getElementById("foo");
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'getAttribute' in Dromaeo/dom-attr.html, and other DOM methods that return a String.",
+ run: function() {
+ var localDiv = div;
+ for (var i = 0; i < 100000; i++)
+ localDiv.getAttribute("id");
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/get-element-by-id.html b/PerformanceTests/Bindings/get-element-by-id.html
new file mode 100644
index 000000000..fec3f6421
--- /dev/null
+++ b/PerformanceTests/Bindings/get-element-by-id.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="foo"></div>
+<script src="../resources/runner.js"></script>
+<script>
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'getElementById' in Dromaeo/dom-query.html, and other DOM methods that return a Node object.",
+ run: function() {
+ for (var i = 0; i < 100000; i++)
+ document.getElementById("foo");
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/get-elements-by-tag-name.html b/PerformanceTests/Bindings/get-elements-by-tag-name.html
new file mode 100644
index 000000000..d51b5db64
--- /dev/null
+++ b/PerformanceTests/Bindings/get-elements-by-tag-name.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div></div>
+<script src="../resources/runner.js"></script>
+<script>
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'getElementsByTagName (not in document)', 'getElementsByTagName', 'getElementsByName (not in document)' and 'getElementsByName' in Dromaeo/dom-query.html, and other DOM methods that return a NodeList.",
+ run: function() {
+ for (var i = 0; i < 50000; i++)
+ document.getElementsByTagName("div");
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/id-getter.html b/PerformanceTests/Bindings/id-getter.html
new file mode 100644
index 000000000..ba1573213
--- /dev/null
+++ b/PerformanceTests/Bindings/id-getter.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="foo"></div>
+<script src="../resources/runner.js"></script>
+<script>
+var div = document.getElementById("foo");
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'element.property' in Dromaeo/dom-attr.html, 'innerHTML' in Dromaeo/dom-modify.html, and other DOM attributes that return a String.",
+ run: function() {
+ var localDiv = div;
+ for (var i = 0; i < 100000; i++)
+ localDiv.id;
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/id-setter.html b/PerformanceTests/Bindings/id-setter.html
new file mode 100644
index 000000000..6d256ae1c
--- /dev/null
+++ b/PerformanceTests/Bindings/id-setter.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="foo"></div>
+<script src="../resources/runner.js"></script>
+<script>
+var div = document.getElementById("foo");
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'element.property = value' in Dromaeo/dom-attr.html, and other DOM attributes that sets a String.",
+ run: function() {
+ var localDiv = div;
+ for (var i = 0; i < 50000; i++)
+ localDiv.id = "foo";
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/insert-before.html b/PerformanceTests/Bindings/insert-before.html
new file mode 100644
index 000000000..29151435f
--- /dev/null
+++ b/PerformanceTests/Bindings/insert-before.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var div = document.createElement("div");
+var childDiv = document.createElement("div");
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'insertBefore' in Dromaeo/dom-modify.html and replaceChild()",
+ setup: function() {
+ div.innerHTML = "";
+ div.appendChild(childDiv);
+ },
+ run: function() {
+ var localDiv = div;
+ var localFirstChildOfDiv = div.firstChild;
+ var localChildDiv = childDiv;
+ for (var i = 0; i < 50000; i++)
+ localDiv.insertBefore(localChildDiv, localFirstChildOfDiv);
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/node-list-access.html b/PerformanceTests/Bindings/node-list-access.html
new file mode 100644
index 000000000..176f6f75e
--- /dev/null
+++ b/PerformanceTests/Bindings/node-list-access.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var div = document.createElement("div");
+for (var i = 0; i < 100000; i++)
+ div.appendChild(document.createElement("div"));
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'childNodes' in Dromaeo/dom-traverse.html, and other DOM attributes that access NodeList.",
+ run: function() {
+ var childNodes = div.childNodes;
+ var length = div.childNodes.length;
+ for (var i = 0; i < length; i++)
+ childNodes[i];
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/scroll-top.html b/PerformanceTests/Bindings/scroll-top.html
new file mode 100644
index 000000000..78318eb27
--- /dev/null
+++ b/PerformanceTests/Bindings/scroll-top.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers DOM attributes that return small integers.",
+ run: function() {
+ var localBody = document.body;
+ for (var i = 0; i < 100000; i++)
+ localBody.scrollTop;
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/set-attribute.html b/PerformanceTests/Bindings/set-attribute.html
new file mode 100644
index 000000000..7f40b5b9b
--- /dev/null
+++ b/PerformanceTests/Bindings/set-attribute.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="foo"></div>
+<script src="../resources/runner.js"></script>
+<script>
+var div = document.getElementById("foo");
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'setAttribute' in Dromaeo/dom-attr.html and other DOM methods that return an undefined.",
+ run: function() {
+ var localDiv = div;
+ for (var i = 0; i < 10000; i++)
+ localDiv.setAttribute("id", "foo");
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/typed-array-construct-from-array.html b/PerformanceTests/Bindings/typed-array-construct-from-array.html
new file mode 100644
index 000000000..4a8e893dd
--- /dev/null
+++ b/PerformanceTests/Bindings/typed-array-construct-from-array.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+
+var length = 10000000;
+var source = new Array(length);
+for (var i = 0; i < length; i++) {
+ source[i] = i;
+}
+
+PerfTestRunner.run(function() {
+ var target = new Uint8Array(source);
+});
+</script>
+</body>
+
diff --git a/PerformanceTests/Bindings/typed-array-construct-from-same-type.html b/PerformanceTests/Bindings/typed-array-construct-from-same-type.html
new file mode 100644
index 000000000..c0464176b
--- /dev/null
+++ b/PerformanceTests/Bindings/typed-array-construct-from-same-type.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+
+var length = 10000000;
+var source = new Uint8Array(length);
+for (var i = 0; i < length; i++) {
+ source[i] = i;
+}
+
+PerfTestRunner.run(function() {
+ var target = new Uint8Array(source);
+});
+</script>
+</body>
diff --git a/PerformanceTests/Bindings/typed-array-construct-from-typed.html b/PerformanceTests/Bindings/typed-array-construct-from-typed.html
new file mode 100644
index 000000000..8fce9f79a
--- /dev/null
+++ b/PerformanceTests/Bindings/typed-array-construct-from-typed.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+
+var length = 10000000;
+var source = new Uint8Array(length);
+for (var i = 0; i < length; i++) {
+ source[i] = i;
+}
+
+PerfTestRunner.run(function() {
+ var target = new Float64Array(source);
+});
+</script>
+</body>
diff --git a/PerformanceTests/Bindings/typed-array-set-from-typed.html b/PerformanceTests/Bindings/typed-array-set-from-typed.html
new file mode 100644
index 000000000..74fc2c7ec
--- /dev/null
+++ b/PerformanceTests/Bindings/typed-array-set-from-typed.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+
+var length = 10000000;
+var source = new Uint8Array(length);
+for (var i = 0; i < length; i++) {
+ source[i] = i;
+}
+var target = new Float64Array(length);
+
+PerfTestRunner.run(function() {
+ target.set(source);
+});
+</script>
+</body>
+
diff --git a/PerformanceTests/Bindings/undefined-first-child.html b/PerformanceTests/Bindings/undefined-first-child.html
new file mode 100644
index 000000000..53714ad25
--- /dev/null
+++ b/PerformanceTests/Bindings/undefined-first-child.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var div = document.createElement("div");
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers undefined DOM attributes that return a null.",
+ run: function() {
+ var localDiv = div;
+ for (var i = 0; i < 100000; i++)
+ localDiv.firstChild;
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/undefined-get-element-by-id.html b/PerformanceTests/Bindings/undefined-get-element-by-id.html
new file mode 100644
index 000000000..d6988ad9f
--- /dev/null
+++ b/PerformanceTests/Bindings/undefined-get-element-by-id.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers 'getElementById (not in document)' in Dromaeo/dom-query.html, and other Node-query methods that return a null.",
+ run: function() {
+ for (var i = 0; i < 100000; i++)
+ document.getElementById("foo");
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Bindings/undefined-id-getter.html b/PerformanceTests/Bindings/undefined-id-getter.html
new file mode 100644
index 000000000..1f441eeca
--- /dev/null
+++ b/PerformanceTests/Bindings/undefined-id-getter.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var div = document.createElement("div");
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark covers undefined DOM attributes that return an empty String.",
+ run: function() {
+ var localDiv = div;
+ for (var i = 0; i < 100000; i++)
+ localDiv.id;
+}});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/CSS/CSSPropertySetterGetter.html b/PerformanceTests/CSS/CSSPropertySetterGetter.html
new file mode 100644
index 000000000..445618c8c
--- /dev/null
+++ b/PerformanceTests/CSS/CSSPropertySetterGetter.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+</head>
+<body>
+<div id="test"></div>
+</body>
+<script>
+var div = document.getElementById("test");
+var properties = {
+'azimuth' : 'right',
+'backgroundColor' : 'green',
+'backgroundImage' : 'url(\'test.png\')',
+'backgroundPosition' : 'top',
+'background-repeat' : 'repeat-x',
+'background' : '#ffffff url(\'img_tree.png\') no-repeat right top',
+'border' : '20px dotted red',
+'borderBottomStyle' : 'dotted',
+'borderCollapse' : 'separate',
+'borderColor' : 'blue',
+'borderSpacing' : '3px',
+'borderStyle' : 'solid',
+'borderTop' : 'green',
+'borderWidth' : '20em',
+'bottom' : '20%',
+'captionSide' : 'top',
+'clear' : 'both',
+'clip' : 'rect(5px, 40px, 45px, 5px)',
+'color' : 'red',
+'content' : 'normal',
+'direction' : 'rtl',
+'display' : 'block',
+'float' : 'right',
+'fontFamily' : '"Times New Roman",Georgia,Serif',
+'fontSize' : '13px',
+'fontVariant' : 'small-caps',
+'fontWeight' : '700',
+'font' : 'italic bold 12px/30px Georgia, serif',
+'height' : '200px',
+'left' : '20%',
+'letterSpacing' : '10px',
+'lineHeight' : '40px',
+'listStyleImage' : 'url(\'test.png\')',
+'listStylePosition' : 'outside',
+'listStyleType' : 'decimal',
+'listStyle' : 'circle inside',
+'marginRight' : '50px',
+'margin' : '10px 20px 30px 5em',
+'maxHeight' : '700px',
+'maxWidth' : '300px',
+'minHeight' : '100px',
+'minWidth' : '100px',
+'outlineColor' : 'gray',
+'outlineStyle' : 'dotted',
+'outlineWidth' : '5px',
+'paddingTop' : '30px',
+'padding' : '30px 20px 10px 50px',
+'pageBreakAfter' : 'always',
+'pageBreakInside' : 'auto',
+'pause' : '2s',
+'position' : 'static',
+'right' : '150px',
+'textAlign' : 'center',
+'textDecoration' : 'blink',
+'textTransform' : 'capitalize',
+'top' : '25%',
+'verticalAlign' : 'text-bottom',
+'visibility' : 'visible',
+'width' : '300px',
+'webkitTransform' : 'scale3d(0.5, 0.5, 0.5)',
+'wordSpacing' : '40px',
+};
+PerfTestRunner.runPerSecond({run:function() {
+ for (key in properties) {
+ var value = div.style[key];
+ div.style[key] = "";
+ div.style[key] = properties[key];
+ }
+}});
+</script>
+</html>
diff --git a/PerformanceTests/CSS/CSSPropertyUpdateValue.html b/PerformanceTests/CSS/CSSPropertyUpdateValue.html
new file mode 100644
index 000000000..ae28d012c
--- /dev/null
+++ b/PerformanceTests/CSS/CSSPropertyUpdateValue.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+</head>
+<body>
+<div id="test"></div>
+</body>
+<script>
+var div = document.getElementById("test");
+var properties = {
+'azimuth' : 'right',
+'backgroundColor' : 'green',
+'backgroundImage' : 'url(\'test.png\')',
+'backgroundPosition' : 'top',
+'background-repeat' : 'repeat-x',
+'background' : '#ffffff url(\'img_tree.png\') no-repeat right top',
+'border' : '20px dotted red',
+'borderBottomStyle' : 'dotted',
+'borderCollapse' : 'separate',
+'borderColor' : 'blue',
+'borderSpacing' : '3px',
+'borderStyle' : 'solid',
+'borderTop' : 'green',
+'borderWidth' : '20em',
+'bottom' : '20%',
+'captionSide' : 'top',
+'clear' : 'both',
+'clip' : 'rect(5px, 40px, 45px, 5px)',
+'color' : 'red',
+'content' : 'normal',
+'direction' : 'rtl',
+'display' : 'block',
+'float' : 'right',
+'fontFamily' : '"Times New Roman",Georgia,Serif',
+'fontSize' : '13px',
+'fontVariant' : 'small-caps',
+'fontWeight' : '700',
+'font' : 'italic bold 12px/30px Georgia, serif',
+'height' : '200px',
+'left' : '20%',
+'letterSpacing' : '10px',
+'lineHeight' : '40px',
+'listStyleImage' : 'url(\'test.png\')',
+'listStylePosition' : 'outside',
+'listStyleType' : 'decimal',
+'listStyle' : 'circle inside',
+'marginRight' : '50px',
+'margin' : '10px 20px 30px 5em',
+'maxHeight' : '700px',
+'maxWidth' : '300px',
+'minHeight' : '100px',
+'minWidth' : '100px',
+'outlineColor' : 'gray',
+'outlineStyle' : 'dotted',
+'outlineWidth' : '5px',
+'paddingTop' : '30px',
+'padding' : '30px 20px 10px 50px',
+'pageBreakAfter' : 'always',
+'pageBreakInside' : 'auto',
+'pause' : '2s',
+'position' : 'static',
+'right' : '150px',
+'textAlign' : 'center',
+'textDecoration' : 'blink',
+'textTransform' : 'capitalize',
+'top' : '25%',
+'verticalAlign' : 'text-bottom',
+'visibility' : 'visible',
+'width' : '300px',
+'webkitTransform' : 'scale3d(0.5, 0.5, 0.5)',
+'wordSpacing' : '40px',
+};
+// The first run will just add the properties but it's fine as the first run of the benchmark is always ignored.
+PerfTestRunner.runPerSecond({run:function() {
+ for (key in properties)
+ div.style[key] = properties[key];
+}});
+</script>
+</html>
diff --git a/PerformanceTests/ChangeLog b/PerformanceTests/ChangeLog
new file mode 100644
index 000000000..f5c669a52
--- /dev/null
+++ b/PerformanceTests/ChangeLog
@@ -0,0 +1,2729 @@
+2012-08-23 Ilya Tikhonovsky <loislo@chromium.org>
+
+ WebInspector: unreviewed single line test fix.
+
+ The test has to open profiles panel explicitly because it is creating lazily.
+
+ * inspector/heap-snapshot-performance-test.js:
+
+2012-08-15 Scott Graham <scottmg@chromium.org>
+
+ Rename window.internals.fastMallocStatistics to mallocStatistics
+ https://bugs.webkit.org/show_bug.cgi?id=94033
+
+ Reviewed by Adam Barth.
+
+ * resources/runner.js:
+ (PerfTestRunner.storeHeapResults):
+ (PerfTestRunner.getUsedMallocHeap):
+ (PerfTestRunner.getAndPrintMemoryStatistics):
+ (PerfTestRunner.initAndStartLoop):
+
+2012-08-10 Ryosuke Niwa <rniwa@webkit.org>
+
+ Unreviewed; fix an insanely silly typo.
+
+ * resources/results-template.html:
+
+2012-08-09 Ryosuke Niwa <rniwa@webkit.org>
+
+ Another build fix after r125178.
+
+ * resources/runner.js:
+
+2012-08-09 Zoltan Horvath <zoltan@webkit.org>
+
+ Add memory measurement to balls.html and dromaeorunner.js
+ https://bugs.webkit.org/show_bug.cgi?id=93617
+
+ Reviewed by Adam Barth.
+
+ Since we added memory measurement support to performance tests we need to modify these tests.
+
+ * Animation/balls.html:
+ * Dromaeo/resources/dromaeorunner.js:
+
+2012-08-09 Zoltan Horvath <zoltan@webkit.org>
+
+ JSHeap and FastMallocStatistics based memory measurement for performance-tests
+ https://bugs.webkit.org/show_bug.cgi?id=90858
+
+ Reviewed Ryosuke Niwa.
+
+ Measure the memory usage of the performancetests with the help of the windows.memory.usedJSHeapSize
+ object and the window.internals.fastMallocStatistics() function call.
+
+ * resources/runner.js:
+ (PerfTestRunner.logStatistics):
+ (PerfTestRunner.printStatistics):
+ (PerfTestRunner.storeHeapResults):
+ (PerfTestRunner.getUsedFastMallocHeap):
+ (PerfTestRunner.getUsedJSHeap):
+ (PerfTestRunner.getAndPrintMemoryStatistics):
+ (PerfTestRunner.ignoreWarmUpAndLog):
+ (PerfTestRunner.initAndStartLoop):
+
+2012-08-08 Benjamin Poulain <benjamin@webkit.org>
+
+ Calling internals from the performance test runner prevents manual running
+ https://bugs.webkit.org/show_bug.cgi?id=93527
+
+ Reviewed by Ryosuke Niwa.
+
+ Since r125065, it is impossible to run the Performance tests manually. The problem is
+ "internals" is not defined when running outside the test runner, so the whole script
+ evaluation fails.
+
+ * resources/runner.js: Verify is window.internals is available before invoking something on it.
+
+2012-08-08 Zoltan Horvath <zoltan@webkit.org>
+
+ Set access to MemoryInfo enabled for the performance tests
+ https://bugs.webkit.org/show_bug.cgi?id=92498
+
+ Reviewed by Ryosuke Niwa.
+
+ We need access to console.memory for the memory measurements.
+
+ * resources/runner.js:
+
+2012-08-07 Ryosuke Niwa <rniwa@webkit.org>
+
+ run-perf-tests should support --no-show-results
+ https://bugs.webkit.org/show_bug.cgi?id=93409
+
+ Reviewed by Dirk Pranke.
+
+ Add a flot as a separate file and load it as an external resource.
+
+ Also include scripts as external resources from both local filesystem and webkit.org
+ so that it continues to work regardless of where you put it.
+
+ It breaks when someone else receives the file and save it somewhere and doesn't have
+ a network connection but that seems like a scenario we don't care that much.
+
+ * resources/jquery.flot.min.js: Added.
+ * resources/results-template.html:
+
+2012-08-06 Ryosuke Niwa <rniwa@webkit.org>
+
+ run-webkit-tests should have ability to add description to its JSON output
+ https://bugs.webkit.org/show_bug.cgi?id=93296
+
+ Reviewed by Dirk Pranke.
+
+ Parse description and show it with the WebKit revision on the results page. Also use bar graphs
+ instead of line graphs since we're not depicting the time series here per arv's suggestion.
+ Finally, add the ability to adjust y-axis between the adjusted value and 0 (plot even doesn't adjust
+ y-axis automatically now) by a mouse click.
+
+ * resources/results-template.html:
+
+2012-08-04 Ryosuke Niwa <rniwa@webkit.org>
+
+ Use testRunner instead of layoutTestController in performance tests
+ https://bugs.webkit.org/show_bug.cgi?id=93184
+
+ Reviewed by Adam Barth.
+
+ * Animation/balls.html:
+ * Dromaeo/resources/dromaeorunner.js:
+ * inspector/console-300-lines.html:
+ * inspector/inspector-startup-time.html:
+ * inspector/network-append-30-requests.html.broken:
+ * inspector/show-panel.html.broken:
+ * resources/runner.js:
+ (PerfTestRunner.logInfo):
+ (PerfTestRunner.initAndStartLoop):
+
+2012-08-02 Arnaud Renevier <a.renevier@sisa.samsung.com>
+
+ TypedArray set method is slow when called with another typed array
+ https://bugs.webkit.org/show_bug.cgi?id=92556
+
+ Reviewed by Kenneth Russell.
+
+ * Bindings/typed-array-set-from-typed.html: Added.
+
+2012-07-28 Ryosuke Niwa <rniwa@webkit.org>
+
+ run-perf-tests should generate a results page
+ https://bugs.webkit.org/show_bug.cgi?id=92575
+
+ Reviewed by Eric Seidel.
+
+ Add a results page template. This page includes flot and flot.fillbetween.
+ jQuery and the json that contains test results are injected by run-perf-tests.
+
+ * resources/results-template.html: Added.
+
+2012-07-27 Arnaud Renevier <a.renevier@sisa.samsung.com>
+
+ use createUninitialized when creating TypedArray from another array
+ https://bugs.webkit.org/show_bug.cgi?id=92518
+
+ Reviewed by Kenneth Russell.
+
+ * Bindings/typed-array-construct-from-array.html: Added.
+
+2012-07-27 Ryosuke Niwa <rniwa@webkit.org>
+
+ Add more Russian replay performance tests
+ https://bugs.webkit.org/show_bug.cgi?id=92462
+
+ Reviewed by Tony Chang.
+
+ Add more Russian sites as suggested by loislo.
+
+ * Replay/Russian/lenta.ru.replay: Added.
+ * Replay/Russian/www.ixbt.com.replay: Added.
+ * Replay/Russian/www.kp.ru.replay: Added.
+ * Replay/Russian/www.liveinternet.ru.replay: Added.
+ * Replay/Russian/www.pravda.ru.replay: Added.
+
+2012-07-26 Arnaud Renevier <a.renevier@sisa.samsung.com>
+
+ constructing TypedArray from another TypedArray is slow
+ https://bugs.webkit.org/show_bug.cgi?id=90838
+
+ Reviewed by Kenneth Russell.
+
+ * Bindings/typed-array-construct-from-same-type.html: Added.
+ * Bindings/typed-array-construct-from-typed.html: Added.
+
+2012-07-25 Ryosuke Niwa <rniwa@webkit.org>
+
+ Import more replay performance tests from Mozilla's Tp5 test suite
+ https://bugs.webkit.org/show_bug.cgi?id=92229
+
+ Reviewed by Andreas Kling.
+
+ Add more replay tests based on Mozilla's Tp5 test suite [1]. Unfortunately,
+ we cannot import all URLs because some of them are not archived on archive.org
+ and others do not replay well on web-page-replay. Nonethless, we're still adding
+ 60+ URLs in this patch.
+
+ [1] http://people.mozilla.org/~jmaher/tp5.manifest
+
+ * Replay/Chinese: Added.
+ * Replay/Chinese/chinaz.com.replay: Added.
+ * Replay/Chinese/www.163.com.replay: Added.
+ * Replay/Chinese/www.alipay.com.replay: Added.
+ * Replay/Chinese/www.baidu.com.replay: Added.
+ * Replay/Chinese/www.csdn.net.replay: Added.
+ * Replay/Chinese/www.douban.com.replay: Added.
+ * Replay/Chinese/www.hao123.com.replay: Added.
+ * Replay/Chinese/www.xinhuanet.com.replay: Added.
+ * Replay/Chinese/www.xunlei.com.replay: Added.
+ * Replay/Chinese/www.youku.com.replay: Added.
+ * Replay/English: Added.
+ * Replay/English/beatonna.livejournal.com.replay: Added.
+ * Replay/English/cakewrecks.blogspot.com.replay: Added.
+ * Replay/English/chemistry.about.com.replay: Added.
+ * Replay/English/digg.com.replay: Added.
+ * Replay/English/en.wikipedia.org-rorschach_test.replay: Added.
+ * Replay/English/icanhascheezburger.com.replay: Added.
+ * Replay/English/imgur.com-gallery.replay: Added.
+ * Replay/English/online.wsj.com.replay: Added.
+ * Replay/English/stockoverflow.com-best-comment.replay: Added.
+ * Replay/English/www.alibaba.com.replay: Added.
+ * Replay/English/www.amazon.com-kindle.replay: Added.
+ * Replay/English/www.apple.com.replay: Added.
+ * Replay/English/www.cnet.com.replay: Added.
+ * Replay/English/www.dailymotion.com.replay: Added.
+ * Replay/English/www.ehow.com-prevent-fire.replay: Added.
+ * Replay/English/www.filestube.com-amy-adams.replay: Added.
+ * Replay/English/www.foxnews.replay: Added.
+ * Replay/English/www.huffingtonpost.com.replay: Added.
+ * Replay/English/www.imdb.com-twilight.replay: Added.
+ * Replay/English/www.mozilla.com-all-order.replay: Added.
+ * Replay/English/www.php.net.replay: Added.
+ * Replay/English/www.reddit.com.replay: Added.
+ * Replay/English/www.telegraph.co.uk.replay: Added.
+ * Replay/English/www.w3.org-htmlcss.replay: Added.
+ * Replay/English/www.w3schools.com-html.replay: Added.
+ * Replay/English/www.youtube.com-music.replay: Added.
+ * Replay/French: Added.
+ * Replay/French/www.orange.fr.replay: Added.
+ * Replay/German: Added.
+ * Replay/Italian: Added.
+ * Replay/Italian/www.repubblica.it.replay: Added.
+ * Replay/Japanese/entameblog.seesaa.net.replay: Added.
+ * Replay/Japanese/www.hatena.ne.jp.replay: Added.
+ * Replay/Japanese/www.nicovideo.jp.replay: Added.
+ * Replay/Korean: Added.
+ * Replay/Korean/www.naver.com.replay: Added.
+ * Replay/Persian: Added.
+ * Replay/Persian/blogfa.com.replay: Added.
+ * Replay/Polish: Added.
+ * Replay/Polish/www.wp.pl.replay: Added.
+ * Replay/Portuguese: Added.
+ * Replay/Portuguese/www.uol.com.br.replay: Added.
+ * Replay/Russian: Added.
+ * Replay/Russian/vkontakte.ru-help.replay: Added.
+ * Replay/Russian/www.rambler.ru.replay: Added.
+ * Replay/Russian/www.ucoz.ru.replay: Added.
+ * Replay/Russian/www.yandex.ru.replay: Added.
+ * Replay/Spanish: Added.
+ * Replay/Spanish/www.taringa.net.replay: Added.
+
+2012-07-24 Ryosuke Niwa <rniwa@webkit.org>
+
+ Add some Japanese and Swedish websites to replay tests
+ https://bugs.webkit.org/show_bug.cgi?id=92076
+
+ Reviewed by Andreas Kling.
+
+ Added new replay tests as follows.
+
+ * Replay/Japanese: Added.
+ * Replay/Japanese/2ch.net-newsplus.replay: Added.
+ * Replay/Japanese/ja.wikipedia.org.replay: Added.
+ * Replay/Japanese/www.livedoor.com.replay: Added.
+ * Replay/Japanese/www.rakuten.co.jp.replay: Added.
+ * Replay/Japanese/www.yahoo.co.jp.replay: Added.
+ * Replay/Swedish: Added.
+ * Replay/Swedish/www.flashback.se.replay: Added.
+ * Replay/Swedish/www.tradera.com.replay: Added.
+ * Replay/www.techcrunch.com.replay: Added.
+
+2012-07-18 MORITA Hajime <morrita@google.com>
+
+ Add window resize benchmark
+ https://bugs.webkit.org/show_bug.cgi?id=91070
+
+ Reviewed by Ryosuke Niwa.
+
+ Added window-resize.html which exercise html5.html. This test
+ resizes the window and forces re-layout repeatedly.
+
+ * Interactive/resources/window-resize.js: Added.
+ * Interactive/window-resize.html: Added.
+ * Parser/resources/html5.html: Modified to inject driver scripts.
+
+2012-07-11 Philip Rogers <pdr@google.com>
+
+ Add a performance test for hit testing in SVG
+ https://bugs.webkit.org/show_bug.cgi?id=90811
+
+ Reviewed by Ryosuke Niwa.
+
+ The shape rendering code is changing a lot and I'd like a performance test to
+ make sure we don't regress, and to track our improvements.
+
+ Performance results in my Linux desktop:
+ RESULT SVG: SvgHitTesting= 105.0 ms
+ median= 103.5 ms, stdev= 4.60434577329 ms, min= 101.0 ms, max= 116.0 ms
+
+ RESULT SVG: SvgHitTesting= 97.8 ms
+ median= 96.5 ms, stdev= 2.67581763205 ms, min= 95.0 ms, max= 102.0 ms
+
+ RESULT SVG: SvgHitTesting= 104.3 ms
+ median= 104.0 ms, stdev= 1.41774468788 ms, min= 102.0 ms, max= 107.0 ms
+
+ RESULT SVG: SvgHitTesting= 103.6 ms
+ median= 103.5 ms, stdev= 1.2 ms, min= 102.0 ms, max= 106.0 ms
+
+ * SVG/SvgHitTesting.html: Added.
+
+2012-07-03 Jan Keromnes <janx@linux.com>
+
+ Web Inspector: WebInspector.TextViewer should be renamed WebInspector.TextEditor
+ https://bugs.webkit.org/show_bug.cgi?id=89939
+
+ Reviewed by Vsevolod Vlasov.
+
+ * inspector/first-open-scripts.html.broken:
+
+2012-06-22 Philip Rogers <pdr@google.com>
+
+ Make SvgCubics performance test more consistent
+ https://bugs.webkit.org/show_bug.cgi?id=89778
+
+ Reviewed by Ryosuke Niwa.
+
+ Previously this test ran twice for each iteration, but this led to inconsistent repaints.
+ This change updates the test to only run once per iteration, and adds even more cubics
+ so that the test runs consistently in the 80ms range on my Linux desktop.
+
+ Performance results on my desktop:
+ RESULT SVG: SvgCubics= 80.5 ms
+ median= 82.0 ms, stdev= 3.04138126515 ms, min= 75.0 ms, max= 85.0 ms
+
+ RESULT SVG: SvgCubics= 80.1 ms
+ median= 81.0 ms, stdev= 4.27668095607 ms, min= 74.0 ms, max= 88.0 ms
+
+ RESULT SVG: SvgCubics= 81.45 ms
+ median= 83.0 ms, stdev= 4.01839520207 ms, min= 75.0 ms, max= 89.0 ms
+
+ RESULT SVG: SvgCubics= 78.9 ms
+ median= 80.0 ms, stdev= 4.75289385533 ms, min= 72.0 ms, max= 87.0 ms
+
+ * SVG/SvgCubics.html:
+
+2012-06-22 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: partially instrument DOM Tree native memory.
+ https://bugs.webkit.org/show_bug.cgi?id=89568
+
+ This patch adds MemoryInstrumentation class that counts all visited
+ objects and calls reportMemoryUsage.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/native-memory-snapshot.html:
+
+2012-06-21 Kentaro Hara <haraken@chromium.org>
+
+ Add a perf-test for innerHTML setter for a large DOM tree
+ https://bugs.webkit.org/show_bug.cgi?id=89723
+
+ Reviewed by Ryosuke Niwa.
+
+ We want a benchmark for innerHTML setter for the following reason:
+
+ - innerHTML setter is widely used in the real world.
+ - I am planning to optimize innerHTML setter in the near future.
+ - I want to use the innerHTML setter benchmark for the patch of bug 88834.
+
+ Performance results in my Linux desktop:
+
+ RESULT Parser: innerHTML-setter= 289.782649995 runs/s
+ median= 290.046269741 runs/s, stdev= 1.06575112224 runs/s, min= 286.831812256 runs/s, max= 291.005291005 runs/s
+
+ RESULT Parser: innerHTML-setter= 289.020706132 runs/s
+ median= 289.093298292 runs/s, stdev= 0.985203313093 runs/s, min= 286.831812256 runs/s, max= 290.620871863 runs/s
+
+ RESULT Parser: innerHTML-setter= 288.912051701 runs/s
+ median= 291.005291005 runs/s, stdev= 3.65241325588 runs/s, min= 283.505154639 runs/s, max= 292.553191489 runs/s
+
+ RESULT Parser: innerHTML-setter= 288.644186666 runs/s
+ median= 288.713910761 runs/s, stdev= 1.31889053717 runs/s, min= 286.085825748 runs/s, max= 290.620871863 runs/s
+
+ RESULT Parser: innerHTML-setter= 288.698714577 runs/s
+ median= 288.713910761 runs/s, stdev= 1.03938198202 runs/s, min= 286.458333333 runs/s, max= 290.237467018 runs/s
+
+ * Parser/innerHTML-setter.html: Added.
+
+2012-06-20 Philip Rogers <pdr@google.com>
+
+ Add a performance test for paths in SVG
+ https://bugs.webkit.org/show_bug.cgi?id=89547
+
+ Reviewed by Ryosuke Niwa.
+
+ This change adds the first performance test for SVG paths.
+ In the test we modify complex cubic paths in several ways, testing:
+ transformations, clipping, d attribute changes, stroke properties,
+ text on a path, and opacity.
+
+ Sample test results on my Linux desktop:
+ RESULT SVG: SvgCubics= 68.85 ms
+ median= 69.5 ms, stdev= 4.70398767005 ms, min= 56.0 ms, max= 75.0 ms
+
+ RESULT SVG: SvgCubics= 68.4 ms
+ median= 69.0 ms, stdev= 3.51283361405 ms, min= 59.0 ms, max= 74.0 ms
+
+ RESULT SVG: SvgCubics= 66.95 ms
+ median= 67.0 ms, stdev= 3.4420197559 ms, min= 59.0 ms, max= 74.0 ms
+
+ RESULT SVG: SvgCubics= 70.2 ms
+ median= 71.5 ms, stdev= 3.23419232576 ms, min= 63.0 ms, max= 74.0 ms
+
+ * SVG: Added.
+ * SVG/SvgCubics.html: Added.
+
+2012-06-20 Tom Zakrajsek <tomz@codeaurora.org>
+
+ Import themaninblue.com/experiment/AnimationBenchmark/ as performance tests
+ https://bugs.webkit.org/show_bug.cgi?id=78789
+
+ Reviewed by Ryosuke Niwa.
+
+ Added PerfTestRunner fixture around it.
+
+ * Animation/balls.html: Added.
+
+2012-06-18 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: native memory snapshot performance and coverage test implementation.
+ https://bugs.webkit.org/show_bug.cgi?id=89363
+
+ We have to track the performance of MemoryAgent.getProcessMemoryDistribution.
+ Also this test will work as a burn down chart for Unknown memory metric.
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/native-memory-snapshot.html: Added.
+ * inspector/performance-test.js:
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.reportSize):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest):
+
+2012-06-05 Alexei Filippov <alexeif@chromium.org>
+
+ Web Inspector: serialize edge counts instead of indexes in heap snapshot
+ https://bugs.webkit.org/show_bug.cgi?id=88324
+
+ The serialized node structure currently holds an index
+ of its first containment edge in the edges array.
+ The index can be quite big (up to 7 digits for large snapshots).
+ The patch changes the serialization format to pass
+ node containment edge count instead. For most nodes the count
+ is just a single digit number.
+ This reduces serialized snapshot size and therefore its transfer time.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/heap-snapshot-performance-test.js:
+
+2012-06-04 Alexei Filippov <alexeif@chromium.org>
+
+ Web Inspector: speed up _calculateRetainedSizes function
+ https://bugs.webkit.org/show_bug.cgi?id=87863
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/heap-snapshot-advanced.html: Added.
+ * inspector/heap-snapshot-performance-test.js: Copied from PerformanceTests/inspector/heap-snapshot.html.
+ (test.performanceTest.step0):
+ (test.performanceTest.step1):
+ (test.performanceTest.step2):
+ (test.performanceTest.cleanup):
+ (test.performanceTest.done):
+ (test.performanceTest):
+ (test):
+ * inspector/heap-snapshot.html:
+
+2012-06-03 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Add a benchmark of querySelector() for an element that appears in the depths in the document
+ https://bugs.webkit.org/show_bug.cgi?id=88202
+
+ Reviewed by Ryosuke Niwa.
+
+ query-selector-first.html tests querySelector() for an element
+ that appears at the head of the document. query-selector-last.html
+ tests querySelector() for an element that appears at the tail of
+ the document. In addition, we want a benchmark of querySelector()
+ for an element that appears in the depths in the document.
+
+ Test results in my Linux desktop:
+
+ RESULT Parser: query-selector-deep= 460.776980611 runs/s
+ median= 460.947503201 runs/s, stdev= 1.72274941942 runs/s, min= 455.696202532 runs/s, max= 463.32046332 runs/s
+
+ RESULT Parser: query-selector-deep= 458.925050915 runs/s
+ median= 459.183673469 runs/s, stdev= 1.47930124139 runs/s, min= 454.545454545 runs/s, max= 460.947503201 runs/s
+
+ RESULT Parser: query-selector-deep= 461.866981491 runs/s
+ median= 461.538461538 runs/s, stdev= 1.14613123359 runs/s, min= 459.183673469 runs/s, max= 463.917525773 runs/s
+
+ RESULT Parser: query-selector-deep= 453.922010788 runs/s
+ median= 454.258855898 runs/s, stdev= 1.77279123317 runs/s, min= 447.204968944 runs/s, max= 455.696202532 runs/s
+
+ RESULT Parser: query-selector-deep= 454.666321221 runs/s
+ median= 454.545454545 runs/s, stdev= 1.65775667417 runs/s, min= 451.127819549 runs/s, max= 456.852791878 runs/s
+
+ * Parser/query-selector-deep.html: Added.
+
+2012-06-03 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Make query-selector-last.html more realistic
+ https://bugs.webkit.org/show_bug.cgi?id=88203
+
+ Reviewed by Ryosuke Niwa.
+
+ query-selector-last.html tests querySelector() for an element
+ that appears after 1000 div elements, all of which have the same
+ id and class. To test the performance of querySelector() under
+ a lot of ids and classes, we should make the ids and classes of
+ the 1000 elements different.
+
+ This patch degrades the performance of query-selector-last.html
+ by 3.6%.
+
+ [Before]
+ RESULT Parser: query-selector-last= 476.382274152 runs/s
+ median= 476.821192053 runs/s, stdev= 1.14578875814 runs/s, min= 474.308300395 runs/s, max= 478.087649402 runs/s
+
+ RESULT Parser: query-selector-last= 478.423061861 runs/s
+ median= 478.723404255 runs/s, stdev= 1.54876867255 runs/s, min= 473.684210526 runs/s, max= 481.347773767 runs/s
+
+ RESULT Parser: query-selector-last= 479.849287174 runs/s
+ median= 480.0 runs/s, stdev= 1.69849752498 runs/s, min= 475.561426684 runs/s, max= 481.927710843 runs/s
+
+ RESULT Parser: query-selector-last= 476.765438846 runs/s
+ median= 477.453580902 runs/s, stdev= 1.8724488664 runs/s, min= 471.821756225 runs/s, max= 478.723404255 runs/s
+
+ RESULT Parser: query-selector-last= 481.715340644 runs/s
+ median= 481.637742305 runs/s, stdev= 1.81446361145 runs/s, min= 475.561426684 runs/s, max= 483.675937122 runs/s
+
+ [After]
+ RESULT Parser: query-selector-last= 458.866623582 runs/s
+ median= 459.183673469 runs/s, stdev= 1.48881464737 runs/s, min= 453.972257251 runs/s, max= 460.947503201 runs/s
+
+ RESULT Parser: query-selector-last= 460.363532897 runs/s
+ median= 460.358056266 runs/s, stdev= 1.58512056995 runs/s, min= 456.273764259 runs/s, max= 462.130937099 runs/s
+
+ RESULT Parser: query-selector-last= 457.727448451 runs/s
+ median= 458.015267176 runs/s, stdev= 1.23681915516 runs/s, min= 453.972257251 runs/s, max= 459.183673469 runs/s
+
+ RESULT Parser: query-selector-last= 465.57336853 runs/s
+ median= 465.717981889 runs/s, stdev= 1.6616925374 runs/s, min= 460.947503201 runs/s, max= 467.532467532 runs/s
+
+ RESULT Parser: query-selector-last= 459.836252019 runs/s
+ median= 459.770114943 runs/s, stdev= 1.84485630505 runs/s, min= 455.696202532 runs/s, max= 462.724935733 runs/s
+
+ * Parser/query-selector-last.html:
+
+2012-06-01 Ryosuke Niwa <rniwa@webkit.org>
+
+ Add public page loading performance tests using web-page-replay
+ https://bugs.webkit.org/show_bug.cgi?id=84008
+
+ Reviewed by Dirk Pranke.
+
+ Add replay tests for google.com and youtube.com as examples.
+
+ * Replay: Added.
+ * Replay/www.google.com.replay: Added.
+ * Replay/www.youtube.com.replay: Added.
+
+2012-05-30 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Add a benchmark for querySelector()
+ https://bugs.webkit.org/show_bug.cgi?id=87742
+
+ Reviewed by Ryosuke Niwa.
+
+ Now I am optimizing querySelector() (bug 87625).
+ This patch adds a performance test for querySelector().
+ query-selector-first.html queries an element that appears
+ at the head of the document. On the other hand,
+ query-selector-last.html queries an element that appears
+ at the tail of the document.
+
+ Test results in my desktop:
+
+ [query-selector-first.html]
+ RESULT Parser: query-selector-first= 252.339803014 runs/s
+ median= 253.646265594 runs/s, stdev= 2.32610873209 runs/s, min= 248.138957816 runs/s, max= 254.777070064 runs/s
+
+ RESULT Parser: query-selector-first= 252.688468897 runs/s
+ median= 252.684876579 runs/s, stdev= 3.60008778708 runs/s, min= 246.002460025 runs/s, max= 258.397932817 runs/s
+
+ RESULT Parser: query-selector-first= 253.466019656 runs/s
+ median= 254.129606099 runs/s, stdev= 1.78002675664 runs/s, min= 247.831474597 runs/s, max= 254.777070064 runs/s
+
+ RESULT Parser: query-selector-first= 256.245078189 runs/s
+ median= 257.06940874 runs/s, stdev= 2.84722072201 runs/s, min= 249.687890137 runs/s, max= 259.74025974 runs/s
+
+ RESULT Parser: query-selector-first= 252.203100497 runs/s
+ median= 252.047989175 runs/s, stdev= 1.75233446036 runs/s, min= 248.138957816 runs/s, max= 255.427841635 runs/s
+
+ [query-selector-last.html]
+ RESULT Parser: query-selector-last= 356.009616076 runs/s
+ median= 355.781448539 runs/s, stdev= 0.841519086864 runs/s, min= 354.430379747 runs/s, max= 358.056265985 runs/s
+
+ RESULT Parser: query-selector-last= 360.735271001 runs/s
+ median= 361.057532424 runs/s, stdev= 1.12253219867 runs/s, min= 358.514724712 runs/s, max= 362.225097025 runs/s
+
+ RESULT Parser: query-selector-last= 359.598592463 runs/s
+ median= 359.435173299 runs/s, stdev= 0.816538258728 runs/s, min= 358.056265985 runs/s, max= 360.824742268 runs/s
+
+ RESULT Parser: query-selector-last= 357.260651715 runs/s
+ median= 357.598978289 runs/s, stdev= 1.17393159885 runs/s, min= 353.982300885 runs/s, max= 358.974358974 runs/s
+
+ RESULT Parser: query-selector-last= 351.696240713 runs/s
+ median= 351.980025916 runs/s, stdev= 1.14200564038 runs/s, min= 348.692403487 runs/s, max= 353.535353535 runs/s
+
+ * Parser/query-selector-first.html: Added.
+ * Parser/query-selector-last.html: Added.
+
+2012-05-25 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: HeapSnapshot: introduce performance counter for HeapSnapshotConstructorsDataGrid._aggregatesReceived method.
+ https://bugs.webkit.org/show_bug.cgi?id=87393
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/heap-snapshot.html:
+
+2012-05-25 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: HeapProfiler's perf test: each N-th run pushes the run results N-th times.
+ https://bugs.webkit.org/show_bug.cgi?id=87476
+
+ The time tracking wrappers were attaching on each run.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/heap-snapshot.html:
+
+2012-05-22 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: HeapProfiler: upstream retainedSize calculation.
+ https://bugs.webkit.org/show_bug.cgi?id=87107
+
+ This patch upstreams V8::HeapSnapshotGenerator::CalculateRetainedSizes function to front-end.
+ After that we will be able to drop retainedSize field from the snapshot serialized data.
+ See meta-bug https://bugs.webkit.org/show_bug.cgi?id=87089
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/heap-snapshot.html: add counter for the _calculateRetainedSize method.
+
+2012-05-21 Kent Tamura <tkent@chromium.org>
+
+ Add performance tests for <textarea>
+ https://bugs.webkit.org/show_bug.cgi?id=86994
+
+ Reviewed by Ryosuke Niwa.
+
+ * DOM/textarea-dom.html: Added.
+ * DOM/textarea-edit.html: Added.
+ * Parser/textarea-parsing.html: Added.
+
+2012-05-18 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: upstream build dominators tree procedure from v8.
+ https://bugs.webkit.org/show_bug.cgi?id=86640
+
+ The idea is to reduce transfer size and move all the post-processing steps to the front-end.
+ The JS implementation is ~1.5 times slower.
+
+ Reviewed by Yury Semikhatsky.
+
+ Covered by existing tests and performance tests.
+
+ * inspector/heap-snapshot.html:
+
+2012-05-18 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Remove Bindings/dom-attributes.html
+ https://bugs.webkit.org/show_bug.cgi?id=86820
+
+ Reviewed by Ryosuke Niwa.
+
+ Bindings/dom-attributes.html is just a collection of random
+ DOM attributes and methods. Now we've added more reasonable
+ micro benchmarks by classifying DOM binding call paths, we
+ can remove Bindings/dom-attributes.html.
+
+ * Bindings/dom-attributes.html: Removed.
+
+2012-05-18 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Add a binding benchmark for getElementById() for an undefined id
+ https://bugs.webkit.org/show_bug.cgi?id=86812
+
+ Reviewed by Ryosuke Niwa.
+
+ We should remove Bindings/dom-attributes.html and instead add more
+ reasonable micro benchmarks by classifying DOM binding call paths.
+
+ This patch adds a benchmark for document.getElementById() for an undefined id.
+ This benchmark covers 'getElementById (not in document)' in Dromaeo/dom-query.html,
+ and other Node-query methods that return a null.'
+
+ (Note: This benchmark is slower than document.getElementById() for a defined id.
+ We will fix the performance issue soon.)
+
+ Test results in my Linux desktop:
+
+ RESULT Bindings: undefined-get-element-by-id= 271.945751345 runs/s
+ median= 273.122389532 runs/s, stdev= 6.78219237299 runs/s, min= 257.4002574 runs/s, max= 281.690140845 runs/s
+
+ RESULT Bindings: undefined-get-element-by-id= 269.105872408 runs/s
+ median= 268.948655257 runs/s, stdev= 5.73707323755 runs/s, min= 257.4002574 runs/s, max= 278.128950695 runs/s
+
+ RESULT Bindings: undefined-get-element-by-id= 269.987513372 runs/s
+ median= 272.952853598 runs/s, stdev= 5.30252336078 runs/s, min= 255.754475703 runs/s, max= 273.97260274 runs/s
+
+ RESULT Bindings: undefined-get-element-by-id= 270.169625901 runs/s
+ median= 271.604938272 runs/s, stdev= 5.29502391906 runs/s, min= 258.064516129 runs/s, max= 278.481012658 runs/s
+
+ RESULT Bindings: undefined-get-element-by-id= 269.054631422 runs/s
+ median= 267.966292802 runs/s, stdev= 6.27197240579 runs/s, min= 258.064516129 runs/s, max= 278.481012658 runs/s
+
+ * Bindings/undefined-get-element-by-id.html: Added.
+
+2012-05-18 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Add a binding benchmark for getElementsByTagName()
+ https://bugs.webkit.org/show_bug.cgi?id=86810
+
+ Reviewed by Ryosuke Niwa.
+
+ We should remove Bindings/dom-attributes.html and instead add more
+ reasonable micro benchmarks by classifying DOM binding call paths.
+
+ This patch adds a benchmark for document.getElementsByTagName().
+ This benchmark covers 'getElementsByTagName (not in document)',
+ 'getElementsByTagName', 'getElementsByName (not in document)'
+ and 'getElementsByName' in Dromaeo/dom-query.html, and other DOM
+ methods that return a NodeList.
+
+ Test results in my Linux desktop:
+
+ RESULT Bindings: get-elements-by-tag-name= 364.542328875 runs/s
+ median= 366.972477064 runs/s, stdev= 5.25387955333 runs/s, min= 351.317440402 runs/s, max= 368.421052632 runs/s
+
+ RESULT Bindings: get-elements-by-tag-name= 364.341569369 runs/s
+ median= 366.492146597 runs/s, stdev= 4.867374197 runs/s, min= 352.644836272 runs/s, max= 367.936925099 runs/s
+
+ RESULT Bindings: get-elements-by-tag-name= 363.924242967 runs/s
+ median= 366.013071895 runs/s, stdev= 5.16768212289 runs/s, min= 351.317440402 runs/s, max= 367.936925099 runs/s
+
+ RESULT Bindings: get-elements-by-tag-name= 365.332594438 runs/s
+ median= 367.454068241 runs/s, stdev= 6.17046918572 runs/s, min= 350.0 runs/s, max= 370.37037037 runs/s
+
+ RESULT Bindings: get-elements-by-tag-name= 363.999514324 runs/s
+ median= 366.492146597 runs/s, stdev= 5.31235674905 runs/s, min= 350.877192982 runs/s, max= 368.421052632 runs/s
+
+ * Bindings/get-elements-by-tag-name.html: Added.
+
+2012-05-18 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Add 7 micro benchmarks for DOM bindings
+ https://bugs.webkit.org/show_bug.cgi?id=86816
+
+ Reviewed by Ryosuke Niwa.
+
+ We should remove Bindings/dom-attributes.html and instead add more
+ reasonable micro benchmarks by classifying DOM binding call paths.
+ This patch adds seven micro benchmarks for DOM bindings.
+
+ id-getter.html covers 'element.property' in Dromaeo/dom-attr.html,
+ 'innerHTML' in Dromaeo/dom-modify.html, and other DOM attributes that
+ return a String.
+
+ id-setter.html covers 'element.property = value' in Dromaeo/dom-attr.html,
+ and other DOM attributes that sets a String.
+
+ undefined-id-getter.html covers undefined DOM attributes that return an empty String.
+
+ append-child.html covers 'appendChild' and 'removeChild' in Dromaeo/dom-modify.html.
+
+ insert-before.html covers 'insertBefore' in Dromaeo/dom-modify.html and replaceChild().
+
+ create-element.html covers 'createElement', 'createTextNode' and 'cloneNode'
+ in Dromaeo/dom-modify.html, and other DOM methods that return a new Node object.
+
+ node-list-access.html covers 'childNodes' in Dromaeo/dom-traverse.html,
+ and other DOM attributes that access NodeList.
+
+ Test results in my Linux desktop:
+
+ [id-getter]
+ RESULT Bindings: id-getter= 550.517821097 runs/s
+ median= 550.688360451 runs/s, stdev= 0.970723739106 runs/s, min= 548.628428928 runs/s, max= 552.070263488 runs/s
+
+ RESULT Bindings: id-getter= 550.655839847 runs/s
+ median= 550.688360451 runs/s, stdev= 1.03312821884 runs/s, min= 549.313358302 runs/s, max= 552.070263488 runs/s
+
+ RESULT Bindings: id-getter= 550.277753355 runs/s
+ median= 550.344180225 runs/s, stdev= 1.19960683464 runs/s, min= 547.945205479 runs/s, max= 552.070263488 runs/s
+
+ RESULT Bindings: id-getter= 550.072271009 runs/s
+ median= 550.344180225 runs/s, stdev= 1.38925152131 runs/s, min= 547.263681592 runs/s, max= 552.070263488 runs/s
+
+ RESULT Bindings: id-getter= 548.802050235 runs/s
+ median= 548.628428928 runs/s, stdev= 1.18244513683 runs/s, min= 545.905707196 runs/s, max= 550.688360451 runs/s
+
+ [id-setter]
+ RESULT Bindings: id-setter= 211.370591663 runs/s
+ median= 210.803689065 runs/s, stdev= 1.4555795889 runs/s, min= 209.973753281 runs/s, max= 214.285714286 runs/s
+
+ RESULT Bindings: id-setter= 215.439081352 runs/s
+ median= 214.797136038 runs/s, stdev= 1.50920388121 runs/s, min= 213.049267643 runs/s, max= 218.446601942 runs/s
+
+ RESULT Bindings: id-setter= 216.721698466 runs/s
+ median= 215.956886352 runs/s, stdev= 1.54090749644 runs/s, min= 214.285714286 runs/s, max= 219.78021978 runs/s
+
+ RESULT Bindings: id-setter= 216.343019087 runs/s
+ median= 215.827338129 runs/s, stdev= 1.46619894553 runs/s, min= 215.053763441 runs/s, max= 218.97810219 runs/s
+
+ RESULT Bindings: id-setter= 216.799288017 runs/s
+ median= 215.956886352 runs/s, stdev= 1.49100776978 runs/s, min= 215.311004785 runs/s, max= 219.78021978 runs/s
+
+ [undefined-id-getter]
+ RESULT Bindings: undefined-id-getter= 494.104255241 runs/s
+ median= 494.132368875 runs/s, stdev= 1.13092821109 runs/s, min= 490.797546012 runs/s, max= 495.662949195 runs/s
+
+ RESULT Bindings: undefined-id-getter= 493.921802916 runs/s
+ median= 493.827160494 runs/s, stdev= 1.25097443119 runs/s, min= 490.196078431 runs/s, max= 495.662949195 runs/s
+
+ RESULT Bindings: undefined-id-getter= 491.976485667 runs/s
+ median= 492.004920049 runs/s, stdev= 0.947090576896 runs/s, min= 490.196078431 runs/s, max= 493.827160494 runs/s
+
+ RESULT Bindings: undefined-id-getter= 491.987710185 runs/s
+ median= 494.132368875 runs/s, stdev= 8.66602543327 runs/s, min= 454.545454545 runs/s, max= 495.662949195 runs/s
+
+ RESULT Bindings: undefined-id-getter= 494.195515847 runs/s
+ median= 494.437577256 runs/s, stdev= 1.06135681702 runs/s, min= 490.797546012 runs/s, max= 495.662949195 runs/s
+
+ [append-child]
+ RESULT Bindings: append-child= 260.628237026 runs/s
+ median= 260.926399352 runs/s, stdev= 2.55231060598 runs/s, min= 256.739409499 runs/s, max= 265.604249668 runs/s
+
+ RESULT Bindings: append-child= 280.796193436 runs/s
+ median= 280.791435348 runs/s, stdev= 2.53961321867 runs/s, min= 277.427490542 runs/s, max= 286.085825748 runs/s
+
+ RESULT Bindings: append-child= 279.856209714 runs/s
+ median= 280.25477707 runs/s, stdev= 2.85447647301 runs/s, min= 275.344180225 runs/s, max= 284.237726098 runs/s
+
+ RESULT Bindings: append-child= 280.834502714 runs/s
+ median= 280.25477707 runs/s, stdev= 2.67738046429 runs/s, min= 277.427490542 runs/s, max= 287.206266319 runs/s
+
+ RESULT Bindings: append-child= 274.723872106 runs/s
+ median= 273.291925466 runs/s, stdev= 3.03671746706 runs/s, min= 272.614622057 runs/s, max= 282.413350449 runs/s
+
+ [insert-before]
+ RESULT Bindings: insert-before= 180.986913006 runs/s
+ median= 180.878552972 runs/s, stdev= 0.758038687299 runs/s, min= 180.18018018 runs/s, max= 183.968462549 runs/s
+
+ RESULT Bindings: insert-before= 186.339916144 runs/s
+ median= 186.170212766 runs/s, stdev= 0.869022097127 runs/s, min= 185.676392573 runs/s, max= 189.798339265 runs/s
+
+ RESULT Bindings: insert-before= 189.45344838 runs/s
+ median= 189.349112426 runs/s, stdev= 0.811854866567 runs/s, min= 187.79342723 runs/s, max= 192.539109507 runs/s
+
+ RESULT Bindings: insert-before= 189.363295991 runs/s
+ median= 189.349112426 runs/s, stdev= 0.75387713097 runs/s, min= 188.014101058 runs/s, max= 192.076830732 runs/s
+
+ RESULT Bindings: insert-before= 189.252041642 runs/s
+ median= 189.349112426 runs/s, stdev= 0.840447225363 runs/s, min= 187.573270809 runs/s, max= 192.076830732 runs/s
+
+ [create-element]
+ RESULT Bindings: create-element= 280.675830077 runs/s
+ median= 280.701824914 runs/s, stdev= 0.788606343054 runs/s, min= 279.441117764 runs/s, max= 282.542885974 runs/s
+
+ RESULT Bindings: create-element= 276.427631436 runs/s
+ median= 277.227722772 runs/s, stdev= 3.39874667549 runs/s, min= 262.417994377 runs/s, max= 279.162512463 runs/s
+
+ RESULT Bindings: create-element= 277.156894411 runs/s
+ median= 277.227722772 runs/s, stdev= 1.13255119226 runs/s, min= 274.914089347 runs/s, max= 278.884462151 runs/s
+
+ RESULT Bindings: create-element= 278.066825356 runs/s
+ median= 278.191822254 runs/s, stdev= 0.686497782792 runs/s, min= 276.953511375 runs/s, max= 279.162512463 runs/s
+
+ RESULT Bindings: create-element= 276.431538109 runs/s
+ median= 276.406712734 runs/s, stdev= 0.759593662298 runs/s, min= 275.229357798 runs/s, max= 278.053624628 runs/s
+
+ [node-list-access]
+ RESULT Bindings: node-list-access= 222.747504073 runs/s
+ median= 222.772277228 runs/s, stdev= 0.789027527555 runs/s, min= 221.674876847 runs/s, max= 224.159402242 runs/s
+
+ RESULT Bindings: node-list-access= 220.722448287 runs/s
+ median= 221.266217576 runs/s, stdev= 1.65463497875 runs/s, min= 217.391304348 runs/s, max= 222.222222222 runs/s
+
+ RESULT Bindings: node-list-access= 222.195870443 runs/s
+ median= 222.222222222 runs/s, stdev= 0.489709262091 runs/s, min= 221.13022113 runs/s, max= 223.048327138 runs/s
+
+ RESULT Bindings: node-list-access= 221.431121677 runs/s
+ median= 221.538545435 runs/s, stdev= 0.608292116087 runs/s, min= 220.048899756 runs/s, max= 222.772277228 runs/s
+
+ RESULT Bindings: node-list-access= 219.001367135 runs/s
+ median= 221.538545435 runs/s, stdev= 4.65773933007 runs/s, min= 209.973753281 runs/s, max= 222.496909765 runs/s
+
+ * Bindings/append-child.html: Added.
+ * Bindings/create-element.html: Added.
+ * Bindings/id-getter.html: Added.
+ * Bindings/id-setter.html: Added.
+ * Bindings/insert-before.html: Added.
+ * Bindings/node-list-access.html: Added.
+ * Bindings/undefined-id-getter.html: Added.
+
+2012-05-18 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Add a binding benchmark for div.setAttribute()
+ https://bugs.webkit.org/show_bug.cgi?id=86815
+
+ Reviewed by Ryosuke Niwa.
+
+ We should remove Bindings/dom-attributes.html and instead add more
+ reasonable micro benchmarks by classifying DOM binding call paths.
+
+ This patch adds a benchmark for div.setAttribute(). This benchmark
+ covers 'setAttribute' in Dromaeo/dom-attr.html and other DOM methods
+ that return an undefined.
+
+ Test results in my Linux desktop:
+
+ RESULT Bindings: set-attribute= 793.745073252 runs/s
+ median= 791.589665765 runs/s, stdev= 6.00467159709 runs/s, min= 785.27607362 runs/s, max= 808.080808081 runs/s
+
+ RESULT Bindings: set-attribute= 790.858444164 runs/s
+ median= 787.918921436 runs/s, stdev= 7.86264953655 runs/s, min= 780.234070221 runs/s, max= 806.04534005 runs/s
+
+ RESULT Bindings: set-attribute= 787.277571417 runs/s
+ median= 784.31372549 runs/s, stdev= 7.45363346657 runs/s, min= 778.588807786 runs/s, max= 804.020100503 runs/s
+
+ RESULT Bindings: set-attribute= 782.401393791 runs/s
+ median= 779.062978802 runs/s, stdev= 6.48250081621 runs/s, min= 777.642770352 runs/s, max= 796.019900498 runs/s
+
+ RESULT Bindings: set-attribute= 791.792516608 runs/s
+ median= 791.556728232 runs/s, stdev= 6.49182980397 runs/s, min= 779.220779221 runs/s, max= 808.080808081 runs/s
+
+ * Bindings/set-attribute.html: Added.
+
+2012-05-17 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Add a binding benchmark for div.getAttribute()
+ https://bugs.webkit.org/show_bug.cgi?id=86814
+
+ Reviewed by Ryosuke Niwa.
+
+ We should remove Bindings/dom-attributes.html and instead add more
+ reasonable micro benchmarks by classifying DOM binding call paths.
+
+ This patch adds a benchmark for div.getAttribute(). This benchmark
+ covers 'getAttribute' in Dromaeo/dom-attr.html, and other DOM methods
+ that return a String.
+
+ Test results in my Linux desktop:
+
+ RESULT Bindings: get-attribute= 250.088158538 runs/s
+ median= 250.469728765 runs/s, stdev= 4.66551901315 runs/s, min= 240.673886883 runs/s, max= 256.739409499 runs/s
+
+ RESULT Bindings: get-attribute= 250.209764698 runs/s
+ median= 250.626959986 runs/s, stdev= 4.12030002477 runs/s, min= 241.254523522 runs/s, max= 255.102040816 runs/s
+
+ RESULT Bindings: get-attribute= 248.907532887 runs/s
+ median= 250.312891114 runs/s, stdev= 3.23173125874 runs/s, min= 240.673886883 runs/s, max= 251.572327044 runs/s
+
+ RESULT Bindings: get-attribute= 250.243680844 runs/s
+ median= 250.783797637 runs/s, stdev= 4.19327170024 runs/s, min= 240.963855422 runs/s, max= 255.102040816 runs/s
+
+ RESULT Bindings: get-attribute= 245.329046608 runs/s
+ median= 244.948040416 runs/s, stdev= 2.24314248534 runs/s, min= 240.384615385 runs/s, max= 248.756218905 runs/s
+
+ * Bindings/get-attribute.html: Added.
+
+2012-05-17 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Add a binding benchmark for getElementById()
+ https://bugs.webkit.org/show_bug.cgi?id=86808
+
+ Reviewed by Ryosuke Niwa.
+
+ Currently Bindings/dom-attributes.html is just a collection
+ of random DOM attributes and methods. We should remove it and
+ instead add more reasonable micro benchmarks by classifying
+ DOM binding call paths.
+
+ This patch adds a benchmark for document.getElementById(),
+ which covers other DOM methods that return a Node Object.
+
+ The reason why we want to add a benchmark for document.getElementById()
+ in spite of the fact that Dromaeo/dom-query.html is already testing
+ document.getElementById(), is that Dromaeo/dom-query.html outputs one
+ result for several benchmarks (i.e. getElementById().nodeType,
+ getElementsByTagName()[0].nodeType etc), and thus we cannot observe
+ regression of getElementById() itself. (Catching regression of
+ getElementById() would be critical.)
+
+ Test results in my Linux desktop:
+
+ RESULT Bindings: get-element-by-id= 300.933707795 runs/s
+ median= 302.267002519 runs/s, stdev= 3.04954648504 runs/s, min= 295.930949445 runs/s, max= 305.34351145 runs/s
+
+ RESULT Bindings: get-element-by-id= 302.030324483 runs/s
+ median= 302.267481977 runs/s, stdev= 1.78518068367 runs/s, min= 298.507462687 runs/s, max= 304.568527919 runs/s
+
+ RESULT Bindings: get-element-by-id= 301.993483538 runs/s
+ median= 302.648171501 runs/s, stdev= 1.87604126626 runs/s, min= 296.662546354 runs/s, max= 304.568527919 runs/s
+
+ RESULT Bindings: get-element-by-id= 301.936607982 runs/s
+ median= 302.45758701 runs/s, stdev= 1.88991087072 runs/s, min= 298.879202989 runs/s, max= 304.955527319 runs/s
+
+ RESULT Bindings: get-element-by-id= 301.952234563 runs/s
+ median= 302.648171501 runs/s, stdev= 1.59929752614 runs/s, min= 299.625468165 runs/s, max= 304.568527919 runs/s
+
+ * Bindings/get-element-by-id.html: Added.
+
+2012-05-17 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Add a benchmark for body.scrollTop
+ https://bugs.webkit.org/show_bug.cgi?id=86806
+
+ Reviewed by Ryosuke Niwa.
+
+ Currently Bindings/dom-attributes.html is just a collection of random
+ DOM attributes and methods. We should remove it and instead add more
+ reasonable micro benchmarks by classifying DOM binding call paths.
+
+ This patch adds a benchmark for body.scrollTop, which covers other
+ DOM attributes that return small integers.
+
+ (Note: Performance optimization for the benchmark will be coming soon.)
+
+ Test results in my Linux desktop:
+
+ RESULT Bindings: scroll-top= 209.410654239 runs/s
+ median= 211.64021164 runs/s, stdev= 4.09958741195 runs/s, min= 201.005025126 runs/s, max= 212.483399734 runs/s
+
+ RESULT Bindings: scroll-top= 195.651111157 runs/s
+ median= 196.319018405 runs/s, stdev= 1.77011627406 runs/s, min= 191.846522782 runs/s, max= 197.28729963 runs/s
+ RESULT Bindings: scroll-top= 200.004907612 runs/s
+ median= 201.511335013 runs/s, stdev= 3.27455403827 runs/s, min= 193.236714976 runs/s, max= 202.53164557 runs/s
+
+ RESULT Bindings: scroll-top= 209.582737512 runs/s
+ median= 210.803689065 runs/s, stdev= 3.16769655464 runs/s, min= 203.045685279 runs/s, max= 211.920529801 runs/s
+
+ RESULT Bindings: scroll-top= 199.924607687 runs/s
+ median= 201.13144338 runs/s, stdev= 3.11080503619 runs/s, min= 193.003618818 runs/s, max= 202.02020202 runs/s
+
+ * Bindings/scroll-top.html: Added.
+
+2012-05-17 Kentaro Hara <haraken@chromium.org>
+
+ [perf-test] Add a micro benchmark for div.firstChild getter for an undefined firstChild
+ https://bugs.webkit.org/show_bug.cgi?id=86725
+
+ Reviewed by Ryosuke Niwa.
+
+ We are going to remove Bindings/dom-attributes.html and instead add more
+ reasonable micro benchmarks by classifying DOM binding call paths.
+
+ In this bug, we add a micro benchmark for div.firstChild getter for an
+ undefined firstChild. This benchmark covers other undefined DOM attributes
+ that return a null.
+
+ (Note: In V8, div.firstChild for an undefined firstChild is currently slower
+ than div.firstChild for a defined firstChild.)
+
+ Test results in my Linux desktop:
+
+ RESULT Bindings: undefined-first-child= 541.408311042 runs/s
+ median= 541.205412054 runs/s, stdev= 1.29841219187 runs/s, min= 537.897310513 runs/s, max= 543.209876543 runs/s
+
+ RESULT Bindings: undefined-first-child= 541.00750695 runs/s
+ median= 540.540540541 runs/s, stdev= 0.967521230965 runs/s, min= 539.215686275 runs/s, max= 543.209876543 runs/s
+
+ RESULT Bindings: undefined-first-child= 523.630714897 runs/s
+ median= 523.560209424 runs/s, stdev= 1.01570919645 runs/s, min= 522.193211488 runs/s, max= 525.624178712 runs/s
+
+ RESULT Bindings: undefined-first-child= 553.077663588 runs/s
+ median= 553.459119497 runs/s, stdev= 0.805697397863 runs/s, min= 551.378446115 runs/s, max= 554.156171285 runs/s
+
+ RESULT Bindings: undefined-first-child= 541.5401432 runs/s
+ median= 541.538666618 runs/s, stdev= 0.954301364767 runs/s, min= 539.877300613 runs/s, max= 543.209876543 runs/s
+
+ * Bindings/undefined-first-child.html: Added.
+
+2012-05-17 Kentaro Hara <haraken@chromium.org>
+
+ [Performance test] Add a micro benchmark for div.firstChild getter
+ https://bugs.webkit.org/show_bug.cgi?id=86582
+
+ Reviewed by Ryosuke Niwa.
+
+ We are going to remove Bindings/dom-attributes.html and instead add more
+ reasonable micro benchmarks by classifying DOM binding call paths.
+
+ In this bug, we add a micro benchmark for div.firstChild getter.
+ This benchmark covers 'firstChild', 'lastChild', 'nextSibling' and
+ 'previousSibling' in Dromaeo/dom-traverse.html, and other DOM attributes
+ that return a Node object.
+
+ Multiple test results in my Linux desktop:
+
+ RESULT Bindings: first-child= 798.157160346 runs/s
+ median= 798.004987531 runs/s, stdev= 1.52006063407 runs/s, min= 796.019900498 runs/s, max= 801.001251564 runs/s
+ RESULT Bindings: first-child= 797.603608554 runs/s
+ median= 797.872340426 runs/s, stdev= 2.2522621261 runs/s, min= 791.556728232 runs/s, max= 801.001251564 runs/s
+ RESULT Bindings: first-child= 798.656295468 runs/s
+ median= 798.004987531 runs/s, stdev= 1.79367478063 runs/s, min= 797.01120797 runs/s, max= 803.011292346 runs/s
+ RESULT Bindings: first-child= 797.812784267 runs/s
+ median= 798.004987531 runs/s, stdev= 2.31766523191 runs/s, min= 791.100123609 runs/s, max= 802.005012531 runs/s
+ RESULT Bindings: first-child= 797.963311597 runs/s
+ median= 798.004987531 runs/s, stdev= 2.53014907337 runs/s, min= 789.14919852 runs/s, max= 801.001251564 runs/s
+
+ * Bindings/first-child.html: Added.
+
+2012-05-16 Kentaro Hara <haraken@chromium.org>
+
+ [Performance test] Support "description" for PerfTestRunner.run and PerfTestRunner.runPerSecond
+ https://bugs.webkit.org/show_bug.cgi?id=86696
+
+ Reviewed by Ryosuke Niwa.
+
+ We want to add some description for each PerfTestRunner.run and
+ PerfTestRunner.runPerSecond, so that people can know what each
+ run is testing.
+
+ Output example:
+
+ $ ./Tools/Scripts/run-perf-tests Bindings/first-child.html
+ Running Bindings/first-child.html (1 of 1)
+ DESCRIPTION: Benchmark for DOM attributes that return a Node object.
+ RESULT Bindings: first-child= 788.359076534 runs/s
+ median= 797.508097751 runs/s, stdev= 19.0972905207 runs/s, min= 746.666666667 runs/s, max= 801.001251564 runs/s
+
+ * resources/runner.js:
+ (PerfTestRunner.logStatistics):
+ (PerfTestRunner.printStatistics):
+ (PerfTestRunner.runPerSecond):
+
+2012-05-16 Yury Semikhatsky <yurys@chromium.org>
+
+ Unreviewed. Fix heap profiler performance test after r117234.
+
+ * inspector/heap-snapshot.html:
+
+2012-05-14 Ryosuke Niwa <rniwa@webkit.org>
+
+ Convert CSS and Parser tests to runs/s tests
+ https://bugs.webkit.org/show_bug.cgi?id=86399
+
+ Reviewed by Ojan Vafai.
+
+ Use runPerSecond instead of run to measure results in function calls per second (run/s) instead of time (ms).
+ This allows us to continue measuring performance reliably even when WebKit's performance improves and results
+ become too small for Date.now()'s precision (around 15 ms).
+
+ It should also reduce perf. bots cycle time for slower tests because we limit the number of function calls by time.
+
+ * CSS/CSSPropertySetterGetter.html:
+ * CSS/CSSPropertyUpdateValue.html:
+ * Parser/css-parser-yui.html:
+ * Parser/simple-url.html:
+ * Parser/tiny-innerHTML.html:
+ * Parser/url-parser.html:
+ * Parser/xml-parser.html:
+
+2012-05-14 Dan Bernstein <mitz@apple.com>
+
+ Add a line layout performance test
+ https://bugs.webkit.org/show_bug.cgi?id=86216
+
+ Reviewed by Ryosuke Niwa.
+
+ * Layout/line-layout.html: Added.
+
+2012-05-14 Tony Chang <tony@chromium.org>
+
+ Don't append log lines while perf tests are running.
+ https://bugs.webkit.org/show_bug.cgi?id=86028
+
+ Reviewed by Ryosuke Niwa.
+
+ In some tests, the extra DOM nodes can cause the test timing to change.
+ Avoid adding DOM nodes until the test is over. When running in a browser,
+ we append nodes as we run so the user can have some feedback.
+
+ * resources/runner.js:
+ (PerfTestRunner.log): Store the log lines in an array until the test is finished.
+
+2012-05-14 Ryosuke Niwa <rniwa@webkit.org>
+
+ Build fix. Don't adjust calls per iteration in the second run.
+
+ * resources/runner.js:
+ (PerfTestRunner._perSecondRunner):
+
+2012-05-13 Ryosuke Niwa <rniwa@webkit.org>
+
+ performance tests should be able to measure runs/sec rather than time
+ https://bugs.webkit.org/show_bug.cgi?id=86021
+
+ Reviewed by Ojan Vafai.
+
+ Add PerfTestRunner.runPerSecond. It uses _runLoop but replaces _runner by _perSecondRunner
+ to compute runs/s of runFunction.
+
+ When _perSecondRunner is called for the first time, i.e. _completedRuns is 0 (notice this is -1
+ in regular run/_runner), it slowly increases the number of function calls to runFunction between
+ time measurements in order to discount the time used by new Date() calls themselves until the
+ total time spent reaches 100 milliseconds.
+
+ By default, runPerSecond runs the test for at least 750 milliseconds in each run, and executes
+ 21 runs, yielding the total run time of roughly 18 seconds. This is significantly faster than
+ most of existing performance tests. Also see http://ejohn.org/blog/accuracy-of-javascript-time/.
+
+ Finally, refactored the existing methods of PerfTestRunner to allow "runs/s" unit and share code.
+
+ * Layout/flexbox-column-nowrap.html:
+ * Layout/flexbox-column-wrap.html:
+ * Layout/flexbox-row-nowrap.html:
+ * Layout/flexbox-row-wrap.html:
+ * resources/runner.js:
+ (PerfTestRunner.computeStatistics): Takes unit.
+ (PerfTestRunner.logStatistics): Ditto.
+ (PerfTestRunner._runLoop):
+ (PerfTestRunner._runner):
+ (PerfTestRunner.runPerSecond): Added.
+ (PerfTestRunner._perSecondRunner): Added. Called by _runLoop.
+ (PerfTestRunner._perSecondRunnerIterator): Added.
+
+2012-05-09 Tony Chang <tony@chromium.org>
+
+ add some basic perf-o-matic tests for flexbox
+ https://bugs.webkit.org/show_bug.cgi?id=86017
+
+ Reviewed by Ryosuke Niwa.
+
+ Each of these tests take < 3s on my machine.
+
+ * Layout/flexbox-column-nowrap.html: Added.
+ * Layout/flexbox-column-wrap.html: Added.
+ * Layout/flexbox-row-nowrap.html: Added.
+ * Layout/flexbox-row-wrap.html: Added.
+
+2012-05-05 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: unreviewed followup fix for the performance test after r116218.
+
+ * inspector/heap-snapshot.html:
+
+2012-05-02 Tom Zakrajsek <tomz@codeaurora.org>
+
+ Need tests for PerfTestRunner.computeStatistics
+ https://bugs.webkit.org/show_bug.cgi?id=85410
+
+ Reviewed by Ryosuke Niwa.
+
+ * resources/runner.js:
+
+2012-05-02 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r115905.
+ http://trac.webkit.org/changeset/115905
+ https://bugs.webkit.org/show_bug.cgi?id=85435
+
+ New computeStatistics test is failing on chromium ports
+ (Requested by tomz on #webkit).
+
+ * resources/runner.js:
+
+2012-05-02 Tom Zakrajsek <tomz@codeaurora.org>
+
+ Need tests for PerfTestRunner.computeStatistics
+ https://bugs.webkit.org/show_bug.cgi?id=85410
+
+ Reviewed by Ryosuke Niwa.
+
+ * resources/runner.js:
+
+2012-04-29 Tom Zakrajsek <tomz@codeaurora.org>
+
+ PerfTestRunner.computeStatistics incorrectly calculates min, max and median
+ https://bugs.webkit.org/show_bug.cgi?id=85111
+
+ Reviewed by Ryosuke Niwa.
+
+ The sort of the data input was being done alphabetically.
+ So I provided a numeric compare function.
+
+ * resources/runner.js:
+
+2012-04-17 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: the fix for test after massive rename in r114271.
+ https://bugs.webkit.org/show_bug.cgi?id=84147
+
+ Drive by fix. The test was renamed to heap-snapshot.html
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/heap-snapshot.html: Renamed from PerformanceTests/inspector/detailed-heapshots-smoke-test.html.
+
+2012-04-16 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: rename heap profiler files and classes DetailedHeapshot* ->HeapSnapshot*
+ https://bugs.webkit.org/show_bug.cgi?id=84038
+
+ A bunch of renames "detailed heapshot" -> "heap snapshot".
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/detailed-heapshots-smoke-test.html:
+
+2012-04-13 Ryosuke Niwa <rniwa@webkit.org>
+
+ Fix skipped list.
+
+ * Skipped:
+
+2012-04-12 Ryosuke Niwa <rniwa@webkit.org>
+
+ Enable SVG page loading performance tests
+ https://bugs.webkit.org/show_bug.cgi?id=83861
+
+ Reviewed by Adam Barth.
+
+ Unskip PageLoad directory and skip tests that load too fast (less than 100ms) and are unstable,
+ and the ones that take too long to load (more than 20s).
+
+ * Skipped:
+
+2012-04-04 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: Unreviewed. temporary disable broken inspector tests.
+
+ * inspector/first-open-scripts.html.broken: Renamed from PerformanceTests/inspector/first-open-scripts.html.
+ * inspector/network-append-30-requests.html.broken: Renamed from PerformanceTests/inspector/network-append-30-requests.html.
+ * inspector/show-panel.html.broken: Renamed from PerformanceTests/inspector/show-panel.html.
+
+2012-04-04 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: linearise aggregate's retaining size calculation.
+ https://bugs.webkit.org/show_bug.cgi?id=83125
+
+ This version is twice as fast as the original and it is non-recursive.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/detailed-heapshots-smoke-test.html:
+
+2012-03-30 David Barr <davidbarr@chromium.org>
+
+ Split up top-level .gitignore and .gitattributes
+ https://bugs.webkit.org/show_bug.cgi?id=82687
+
+ Reviewed by Tor Arne Vestbø.
+
+ * .gitattributes: Added.
+
+2012-03-28 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: switch heap profiler front-end to separate storage of nodes and edges
+ https://bugs.webkit.org/show_bug.cgi?id=82453
+
+ Updated heap profiler performance test after heap profiler front-end
+ changes.
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/detailed-heapshots-smoke-test.html:
+
+2012-03-27 Alexis Menard <alexis.menard@openbossa.org>
+
+ Add a perf test which updates the value of an already declared CSS property.
+ https://bugs.webkit.org/show_bug.cgi?id=82321
+
+ Reviewed by Andreas Kling.
+
+ This benchmark update CSS existing properties of the style from JS.
+
+ * CSS/CSSPropertyUpdateValue.html: Added.
+
+2012-03-15 Kentaro Hara <haraken@chromium.org>
+
+ [PerformanceTests] run-perf-tests should output correct units
+ https://bugs.webkit.org/show_bug.cgi?id=78303
+
+ Reviewed by Ryosuke Niwa.
+
+ Previously run-perf-tests just supported "ms" for units.
+ Consequently, Dromaeo perf tests had been reporting runs/s as "ms".
+ This patch fixes run-perf-tests so that they can support custom units.
+ The default unit is "ms".
+
+ The test result looks like this:
+
+ $ ./Tools/Scripts/run-perf-tests Dromaeo/dom-attr.html
+ RESULT Dromaeo: dom-attr= 6465.9525483 runs/s
+ median= 0.0 runs/s, stdev= 24.2983433436 runs/s, min= 6435.87649402 runs/s, max= 6515.63693392 runs/s
+
+ * Dromaeo/resources/dromaeorunner.js:
+ (.):
+ * resources/runner.js:
+ (PerfTestRunner.computeStatistics):
+ (PerfTestRunner.printStatistics):
+
+2012-03-15 Alexis Menard <alexis.menard@openbossa.org>
+
+ Fix the test failing with run-perf-tests.
+
+ Rubber stamped by Ryosuke Niwa.
+
+ * CSS/CSSPropertySetterGetter.html:
+
+2012-03-14 Alexis Menard <alexis.menard@openbossa.org>
+
+ Add a new perf test to benchmark setting and reading CSS properties from JS.
+ https://bugs.webkit.org/show_bug.cgi?id=81155
+
+ Reviewed by Ryosuke Niwa.
+
+ This benchmark read and set CSS properties from JS. It contains a list
+ of common CSS properties.
+
+ * CSS/CSSPropertySetterGetter.html: Added.
+
+2012-03-14 Alexandru Chiculita <achicu@adobe.com>
+
+ Layout/floats.html should be runnable by run-perf-tests
+ https://bugs.webkit.org/show_bug.cgi?id=77051
+
+ Reviewed by Ryosuke Niwa.
+
+ I've split Layout/floats.html into multiple tests for each button in the original manual test.
+ Some tests take longer to run and I've changed the number of iterations, so that each tests finishes under 30s per run.
+
+ * DOM/resources/dom-perf.js:
+ * Layout/floats.html: Removed.
+ * Layout/floats_100_100.html: Added.
+ * Layout/floats_100_100_nested.html: Added.
+ * Layout/floats_20_100.html: Added.
+ * Layout/floats_20_100_nested.html: Added.
+ * Layout/floats_2_100.html: Added.
+ * Layout/floats_2_100_nested.html: Added.
+ * Layout/floats_50_100.html: Added.
+ * Layout/floats_50_100_nested.html: Added.
+ * Layout/resources/floats.css: Added.
+ (.container):
+ (.float):
+ (.big):
+ (.float-end):
+ * Layout/resources/floats.js: Added.
+ (.):
+ * Skipped:
+ * resources/runner.js:
+ (PerfTestRunner.resetRandomSeed):
+ (PerfTestRunner.random):
+ (Math.random):
+ Moved the Math.random to runner.js to be used by all tests.
+ Added resetRandomSeed to bring the randomizer back to initial seed.
+ It is useful to get the same results at every run and minimize the
+ differences between runs.
+
+2012-03-14 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r110559.
+ http://trac.webkit.org/changeset/110559
+ https://bugs.webkit.org/show_bug.cgi?id=81142
+
+ Broke Dromaeo tests (Requested by rniwa on #webkit).
+
+ * Dromaeo/resources/dromaeorunner.js:
+ (.):
+
+2012-03-13 Kentaro Hara <haraken@chromium.org>
+
+ Dromaeo perf-tests results are wrong
+ https://bugs.webkit.org/show_bug.cgi?id=80974
+
+ Reviewed by Hajime Morita.
+
+ Dromaeo perf-tests had reported the sum of runs/seconds as "ms".
+ This patch fixes them to report the execution time per run.
+
+ At present, they report "0.0ms" for "stdev". This is because
+ dromaeorunner.js can just know stdev of "runs/seconds"
+ and cannot calculate stdev of "ms" from that. We can fix it later.
+
+ * Dromaeo/resources/dromaeorunner.js:
+ (.):
+
+2012-03-12 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: chromium: increase heap snapshot performance coverage.
+ https://bugs.webkit.org/show_bug.cgi?id=80829
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/detailed-heapshots-smoke-test.html:
+ * inspector/performance-test.js:
+ (initialize_TimeTracker.InspectorTest.measureFunction):
+
+2012-03-06 Kentaro Hara <haraken@chromium.org>
+
+ [Perf tests] Reduce the number of loops in dom-attributes.html
+ https://bugs.webkit.org/show_bug.cgi?id=80077
+
+ Reviewed by Ryosuke Niwa.
+
+ dom-attributes.html takes 100~ seconds in the perf bots. This patch reduces
+ the time by reducing the number of loops.
+
+ This is just a temporary fix. After more detailed investigation, I will reduce
+ the number of tests in dom-attributes.html, and revert back the number of loops
+ to guarantee the reliability of the perf test results.
+
+ * Bindings/dom-attributes.html:
+
+2012-03-06 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: Heap Snapshot test: split overal time metric into separate metrics.
+ https://bugs.webkit.org/show_bug.cgi?id=80409
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/detailed-heapshots-smoke-test.html:
+
+2012-03-05 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: [chromium] introduce HeapSnapshot performance test.
+ https://bugs.webkit.org/show_bug.cgi?id=80280
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/detailed-heapshots-smoke-test.html: Added.
+
+2012-03-01 Ryosuke Niwa <rniwa@webkit.org>
+
+ DOM tests take too long to run
+ https://bugs.webkit.org/show_bug.cgi?id=80082
+
+ Reviewed by Eric Seidel.
+
+ Reduce benchmark.timeToRun from 500ms to 100ms. Doesn't seem to affect test results much
+ (except DOM/DOMTable.html) but significantly reduces the runtime of tests.
+
+ * DOM/resources/dom-perf.js:
+ (BenchmarkSuite.prototype.RunSingle):
+
+2012-02-26 Kentaro Hara <haraken@chromium.org>
+
+ [Performance Tests] [Chromium] Bindings/dom-attributes.html is timing out
+ https://bugs.webkit.org/show_bug.cgi?id=79593
+
+ Reviewed by Adam Barth.
+
+ This patch halves the execution time of Bindings/dom-attributes.html
+ in order to avoid timeout in Chromium. The reason for the timeout is that
+ V8 DOM bindings are too much slower than JSC bindings.
+ I am a bit afraid that this patch will reduce the accuracy of the
+ perf test results, but it would make sense to reduce the execution time
+ until we fix the performance issue in V8 DOM bindings.
+
+ * Bindings/dom-attributes.html:
+
+2012-02-24 Ryosuke Niwa <rniwa@webkit.org>
+
+ Rename dom*_*attributes.html to dom*-*attributes.html to follow the WebKit convention.
+
+ * Bindings/dom-attributes.html: Copied from PerformanceTests/Bindings/dom_attributes.html.
+ * Bindings/dom_attributes.html: Removed.
+
+2012-02-24 Kentaro Hara <haraken@chromium.org>
+
+ Unreviewed, rolling out r108477.
+ http://trac.webkit.org/changeset/108477
+ https://bugs.webkit.org/show_bug.cgi?id=79209
+
+ The perf tests committed in r108748 covers the perf tests
+ committed in r108477. So I'll roll out r108477.
+
+ * Bindings/dom_attributes_id_getter.html: Removed.
+ * Bindings/dom_attributes_id_setter.html: Removed.
+ * Bindings/resources/dom_attributes_common.js: Removed.
+
+2012-02-24 Kentaro Hara <haraken@chromium.org>
+
+ Add performance tests for DOM attribute getters and setters
+ https://bugs.webkit.org/show_bug.cgi?id=79208
+
+ Reviewed by Ryosuke Niwa.
+
+ This patch adds performance micro-benchmarks for DOM attribute
+ getters and setters. We selected DOM attributes from HTMLElement,
+ Element and Node which will most impact on the DOM performance
+ in the real Web and which have different call-paths from another
+ DOM attribute.
+
+ The perf test result in my local Chromium/Linux environment is as follows:
+ median= 14967.0 ms, stdev= 85.2385476178 ms, min= 14861.0 ms, max= 15155.0 ms
+
+ If we run the test with DumpRenderTree, we can get the following test results:
+ Info: [HTMLElement.id] avg=65.76ms, median=65.00ms, stdev=2.14ms, min=63, max=70
+ Info: [HTMLElement.title] avg=64.05ms, median=63.00ms, stdev=1.50ms, min=63, max=67
+ Info: [HTMLElement.lang] avg=64.19ms, median=63.00ms, stdev=1.82ms, min=62, max=67
+ Info: [HTMLElement.dir] avg=64.10ms, median=63.00ms, stdev=1.72ms, min=62, max=68
+ Info: [HTMLElement.className] avg=63.33ms, median=63.00ms, stdev=0.89ms, min=63, max=67
+ Info: [HTMLElement.classList] avg=1946.00ms, median=1945.00ms, stdev=38.22ms, min=1921, max=2110
+ Info: [HTMLElement.tabIndex] avg=83.52ms, median=80.00ms, stdev=6.00ms, min=79, max=94
+ Info: [HTMLElement.draggable] avg=78.14ms, median=81.00ms, stdev=3.51ms, min=74, max=82
+ Info: [HTMLElement.webkitdropzone] avg=64.33ms, median=63.00ms, stdev=1.98ms, min=63, max=68
+ Info: [HTMLElement.hidden] avg=65.57ms, median=64.00ms, stdev=3.27ms, min=63, max=71
+ Info: [HTMLElement.accessKey] avg=64.43ms, median=63.00ms, stdev=2.11ms, min=62, max=68
+ Info: [HTMLElement.children] avg=130.76ms, median=128.00ms, stdev=9.75ms, min=109, max=143
+ Info: [HTMLElement.isContentEditable] avg=74.29ms, median=75.00ms, stdev=2.00ms, min=71, max=77
+ Info: [HTMLElement.spellcheck] avg=79.52ms, median=80.00ms, stdev=2.52ms, min=76, max=82
+ Info: [HTMLElement.innerHTML] avg=279.05ms, median=279.00ms, stdev=1.96ms, min=276, max=283
+ Info: [HTMLElement.innerText] avg=204.14ms, median=203.00ms, stdev=2.95ms, min=200, max=210
+ Info: [HTMLElement.outerHTML] avg=1544.10ms, median=1546.00ms, stdev=15.56ms, min=1514, max=1568
+ Info: [HTMLElement.outerText] avg=216.05ms, median=207.00ms, stdev=18.19ms, min=201, max=247
+ Info: [HTMLElement.contentEditable] avg=334.24ms, median=323.00ms, stdev=36.06ms, min=318, max=446
+ Info: [HTMLElement.id="foo"] avg=53.19ms, median=53.00ms, stdev=1.76ms, min=52, max=58
+ Info: [HTMLElement.title="foo"] avg=63.14ms, median=63.00ms, stdev=0.35ms, min=63, max=64
+ Info: [HTMLElement.lang="foo"] avg=60.86ms, median=61.00ms, stdev=0.56ms, min=60, max=62
+ Info: [HTMLElement.dir="foo"] avg=53.57ms, median=54.00ms, stdev=0.58ms, min=53, max=55
+ Info: [HTMLElement.className="foo"] avg=64.52ms, median=64.00ms, stdev=0.91ms, min=63, max=66
+ Info: [HTMLElement.tabIndex="foo"] avg=367.86ms, median=369.00ms, stdev=8.06ms, min=352, max=380
+ Info: [HTMLElement.draggable="foo"] avg=79.43ms, median=79.00ms, stdev=0.58ms, min=79, max=81
+ Info: [HTMLElement.webkitdropzone="foo"] avg=62.14ms, median=62.00ms, stdev=0.35ms, min=62, max=63
+ Info: [HTMLElement.hidden="foo"] avg=61.67ms, median=62.00ms, stdev=0.71ms, min=61, max=64
+ Info: [HTMLElement.accessKey="foo"] avg=61.86ms, median=62.00ms, stdev=0.56ms, min=61, max=63
+ Info: [HTMLElement.spellcheck="foo"] avg=79.57ms, median=80.00ms, stdev=0.58ms, min=78, max=80
+ Info: [HTMLElement.innerHTML="foo"] avg=1176.67ms, median=1169.00ms, stdev=26.60ms, min=1146, max=1246
+ Info: [HTMLElement.innerText="foo"] avg=51.62ms, median=52.00ms, stdev=0.72ms, min=50, max=53
+ Info: [Element.tagName] avg=79.52ms, median=80.00ms, stdev=1.05ms, min=78, max=81
+ Info: [Element.style] avg=126.19ms, median=126.00ms, stdev=10.40ms, min=104, max=161
+ Info: [Element.offsetLeft] avg=98.95ms, median=104.00ms, stdev=4.01ms, min=100, max=99
+ Info: [Element.clientLeft] avg=98.33ms, median=102.00ms, stdev=2.59ms, min=100, max=99
+ Info: [Element.scrollLeft] avg=103.29ms, median=96.00ms, stdev=15.63ms, min=100, max=97
+ Info: [Element.dataset] avg=2448.62ms, median=2441.00ms, stdev=20.43ms, min=2426, max=2503
+ Info: [Element.firstElementChild] avg=58.71ms, median=58.00ms, stdev=2.37ms, min=57, max=65
+ Info: [Element.lastElementChild] avg=56.33ms, median=55.00ms, stdev=1.83ms, min=54, max=59
+ Info: [Element.previousElementSibling] avg=52.95ms, median=52.00ms, stdev=1.70ms, min=52, max=57
+ Info: [Element.nextElementSibling] avg=58.48ms, median=58.00ms, stdev=1.79ms, min=57, max=63
+ Info: [Element.childElementCount] avg=64.57ms, median=64.00ms, stdev=1.81ms, min=63, max=71
+ Info: [Element.onload] avg=98.38ms, median=98.00ms, stdev=0.49ms, min=98, max=99
+ Info: [Element.scrollLeft="foo"] avg=95.24ms, median=95.00ms, stdev=0.92ms, min=94, max=98
+ Info: [Element.onload="foo"] avg=67.14ms, median=67.00ms, stdev=0.56ms, min=66, max=68
+ Info: [Node.nodeName] avg=76.29ms, median=76.00ms, stdev=0.63ms, min=75, max=77
+ Info: [Node.nodeType] avg=53.05ms, median=52.00ms, stdev=2.61ms, min=52, max=61
+ Info: [Node.parentNode] avg=53.52ms, median=53.00ms, stdev=1.22ms, min=52, max=56
+ Info: [Node.childNodes] avg=118.33ms, median=123.00ms, stdev=8.85ms, min=107, max=129
+ Info: [Node.firstChild] avg=53.62ms, median=53.00ms, stdev=1.13ms, min=51, max=55
+ Info: [Node.lastChild] avg=53.14ms, median=53.00ms, stdev=1.21ms, min=52, max=55
+ Info: [Node.previousSibling] avg=51.86ms, median=51.00ms, stdev=1.55ms, min=50, max=54
+ Info: [Node.nextSibling] avg=52.86ms, median=54.00ms, stdev=1.81ms, min=50, max=55
+ Info: [Node.attributes] avg=2027.71ms, median=2026.00ms, stdev=10.48ms, min=2010, max=2051
+ Info: [Node.ownerDocument] avg=152.14ms, median=152.00ms, stdev=1.73ms, min=149, max=155
+ Info: [Node.namespaceURI] avg=60.86ms, median=59.00ms, stdev=3.85ms, min=56, max=66
+ Info: [Node.localName] avg=60.00ms, median=59.00ms, stdev=2.71ms, min=57, max=66
+ Info: [Node.baseURI] avg=671.10ms, median=668.00ms, stdev=10.66ms, min=659, max=706
+ Info: [Node.parentElement] avg=55.05ms, median=56.00ms, stdev=2.15ms, min=52, max=58
+ Info: [Node.nodeValue] avg=61.24ms, median=60.00ms, stdev=2.56ms, min=59, max=68
+ Info: [Node.prefix] avg=60.90ms, median=58.00ms, stdev=4.26ms, min=57, max=68
+ Info: [Node.textContent] avg=149.71ms, median=149.00ms, stdev=1.12ms, min=148, max=152
+ Info: [Node.nodeValue="foo"] avg=23.62ms, median=23.00ms, stdev=0.72ms, min=23, max=25
+ Info: [Node.prefix="foo"] avg=49.57ms, median=49.00ms, stdev=0.73ms, min=49, max=51
+ Info: [Node.textContent="foo"] avg=145.81ms, median=140.00ms, stdev=17.43ms, min=138, max=199
+
+ * Bindings/dom_attributes.html: Added.
+ * resources/runner.js:
+ (PerfTestRunner.info):
+
+2012-02-22 Kentaro Hara <haraken@chromium.org>
+
+ Add performance tests for the Element.id getter and setter
+ https://bugs.webkit.org/show_bug.cgi?id=79209
+
+ Reviewed by Adam Barth.
+
+ This patch adds performance tests for the Element.id getter and setter.
+
+ The results of 10 runs in my local Chromium/Linux are as follows:
+
+ dom_attributes_id_getter.html:
+ median= 92.0 ms, stdev= 1.65151445649 ms, min= 89.0 ms, max= 96.0 ms
+ median= 87.5 ms, stdev= 1.84390889146 ms, min= 85.0 ms, max= 92.0 ms
+ median= 94.0 ms, stdev= 1.46543508898 ms, min= 90.0 ms, max= 95.0 ms
+ median= 86.0 ms, stdev= 1.66958078571 ms, min= 84.0 ms, max= 91.0 ms
+ median= 94.0 ms, stdev= 2.25610283454 ms, min= 103.0 ms, max= 98.0 ms
+ median= 86.0 ms, stdev= 1.49666295471 ms, min= 84.0 ms, max= 91.0 ms
+ median= 86.0 ms, stdev= 1.5321553446 ms, min= 84.0 ms, max= 90.0 ms
+ median= 86.0 ms, stdev= 2.20227155455 ms, min= 84.0 ms, max= 94.0 ms
+ median= 96.0 ms, stdev= 1.74570902501 ms, min= 101.0 ms, max= 99.0 ms
+ median= 86.0 ms, stdev= 1.63935963108 ms, min= 84.0 ms, max= 90.0 ms
+ median= 94.0 ms, stdev= 1.49248115566 ms, min= 90.0 ms, max= 95.0 ms
+ median= 88.0 ms, stdev= 5.20192272146 ms, min= 84.0 ms, max= 98.0 ms
+ median= 86.0 ms, stdev= 1.41067359797 ms, min= 84.0 ms, max= 89.0 ms
+ median= 86.0 ms, stdev= 1.48660687473 ms, min= 84.0 ms, max= 89.0 ms
+ median= 94.0 ms, stdev= 1.58113883008 ms, min= 93.0 ms, max= 97.0 ms
+ median= 86.0 ms, stdev= 1.95959179423 ms, min= 84.0 ms, max= 93.0 ms
+ median= 86.0 ms, stdev= 1.8547236991 ms, min= 84.0 ms, max= 92.0 ms
+ median= 86.0 ms, stdev= 1.39283882772 ms, min= 84.0 ms, max= 89.0 ms
+ median= 88.0 ms, stdev= 1.48660687473 ms, min= 85.0 ms, max= 90.0 ms
+ median= 86.5 ms, stdev= 2.3 ms, min= 84.0 ms, max= 93.0 ms
+
+ dom_attributes_id_setter.html:
+ median= 123.0 ms, stdev= 2.06397674406 ms, min= 119.0 ms, max= 128.0 ms
+ median= 119.0 ms, stdev= 1.92028643697 ms, min= 117.0 ms, max= 123.0 ms
+ median= 121.0 ms, stdev= 1.8781639971 ms, min= 118.0 ms, max= 123.0 ms
+ median= 123.0 ms, stdev= 2.21585198062 ms, min= 119.0 ms, max= 130.0 ms
+ median= 124.5 ms, stdev= 2.36378933071 ms, min= 119.0 ms, max= 129.0 ms
+ median= 122.0 ms, stdev= 2.4474476501 ms, min= 118.0 ms, max= 128.0 ms
+ median= 123.0 ms, stdev= 1.76351920885 ms, min= 118.0 ms, max= 125.0 ms
+ median= 119.0 ms, stdev= 1.79652442232 ms, min= 117.0 ms, max= 125.0 ms
+ median= 121.0 ms, stdev= 1.49916643506 ms, min= 119.0 ms, max= 123.0 ms
+ median= 119.5 ms, stdev= 1.85135085816 ms, min= 117.0 ms, max= 125.0 ms
+ median= 124.0 ms, stdev= 1.43090880213 ms, min= 120.0 ms, max= 124.0 ms
+ median= 122.0 ms, stdev= 1.45859521458 ms, min= 118.0 ms, max= 123.0 ms
+ median= 123.0 ms, stdev= 1.50332963784 ms, min= 120.0 ms, max= 124.0 ms
+ median= 123.0 ms, stdev= 1.3638181697 ms, min= 120.0 ms, max= 125.0 ms
+ median= 119.0 ms, stdev= 1.43527000944 ms, min= 117.0 ms, max= 121.0 ms
+ median= 122.5 ms, stdev= 1.71682847134 ms, min= 118.0 ms, max= 124.0 ms
+ median= 121.0 ms, stdev= 1.44481832768 ms, min= 118.0 ms, max= 123.0 ms
+ median= 120.0 ms, stdev= 1.40978721799 ms, min= 117.0 ms, max= 122.0 ms
+ median= 122.0 ms, stdev= 1.68522995464 ms, min= 119.0 ms, max= 125.0 ms
+ median= 122.0 ms, stdev= 1.55804364509 ms, min= 118.0 ms, max= 123.0 ms
+
+
+ * Bindings/dom_attributes_id_getter.html: Added.
+ * Bindings/dom_attributes_id_setter.html: Added.
+ * Bindings/resources/dom_attributes_common.js: Added.
+
+2012-02-16 Alexis Menard <alexis.menard@openbossa.org>
+
+ Add a perf test for the CSS parser.
+ https://bugs.webkit.org/show_bug.cgi?id=78114
+
+ Reviewed by Ryosuke Niwa.
+
+ Add a perf test for the CSS parser. It load a big CSS chunk
+ which contains some snippets of the YUI library from Yahoo!.
+
+ * Parser/css-parser-yui.html: Added.
+
+2012-02-08 Hajime Morrita <morrita@chromium.org>
+
+ [PerformanceTests] sunspider-crypto-md5.html and sunspider-crypto-sha1.html are timing out on cr-mac perf bot
+ https://bugs.webkit.org/show_bug.cgi?id=78174
+
+ Reviewed by Ryosuke Niwa.
+
+ Pulled back removed files.
+
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-md5.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-sha1.html: Added.
+
+2012-02-02 Hajime Morrita <morrita@chromium.org>
+
+ [PerformanceTests] Each Dromaeo test needs its landing html.
+ https://bugs.webkit.org/show_bug.cgi?id=77504
+
+ Reviewed by Ryosuke Niwa.
+
+ - Added landing pages for each test which are listed in MANIFEST.json
+ - Removed some tests which depends on the library whose license is incompatible to WebKit.
+ - Added local copy of corresponding library. And replace the references to the remote sources
+ to the local copies.
+ - Removed old library files under Dromaeo/resources/dromaeo/web/lib/.
+ - Skipped Sunsupier and v8 test. Such JS centric test should have its own test instead of
+ running as a part of Dromaeo.
+
+ * Dromaeo/cssquery-dojo.html: Added.
+ * Dromaeo/cssquery-jquery.html: Added.
+ * Dromaeo/cssquery-prototype.html: Added.
+ * Dromaeo/dom-attr.html: Added.
+ * Dromaeo/dom-modify.html: Added.
+ * Dromaeo/dom-traverse.html: Added.
+ * Dromaeo/dromaeo-3d-cube.html: Added.
+ * Dromaeo/dromaeo-core-eval.html: Added.
+ * Dromaeo/dromaeo-object-array.html: Added.
+ * Dromaeo/dromaeo-object-regexp.html: Added.
+ * Dromaeo/dromaeo-object-string.html: Added.
+ * Dromaeo/dromaeo-string-base64.html: Added.
+ * Dromaeo/jslib-attr-jquery.html: Added.
+ * Dromaeo/jslib-attr-prototype.html: Added.
+ * Dromaeo/jslib-event-jquery.html: Added.
+ * Dromaeo/jslib-event-prototype.html: Added.
+ * Dromaeo/jslib-modify-jquery.html: Added.
+ * Dromaeo/jslib-modify-prototype.html: Added.
+ * Dromaeo/jslib-style-jquery.html: Added.
+ * Dromaeo/jslib-style-prototype.html: Added.
+ * Dromaeo/jslib-traverse-jquery.html: Added.
+ * Dromaeo/jslib-traverse-prototype.html: Added.
+ * Dromaeo/resources/dromaeo/web/lib/dojo.js: Removed.
+ * Dromaeo/resources/dromaeo/web/lib/dojo-1.6.1.js: Added.
+ * Dromaeo/resources/dromaeo/web/lib/jquery.js: Removed.
+ * Dromaeo/resources/dromaeo/web/lib/jquery-1.6.4.js: Added.
+ * Dromaeo/resources/dromaeo/web/lib/mootools.js: Removed.
+ * Dromaeo/resources/dromaeo/web/lib/prototype.js: Removed.
+ * Dromaeo/resources/dromaeo/web/lib/prototype-1.7.js: Added.
+ * Dromaeo/resources/dromaeo/web/tests/cssquery-dojo.html:
+ * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html:
+ * Dromaeo/resources/dromaeo/web/tests/cssquery-mootools.html: Removed.
+ * Dromaeo/resources/dromaeo/web/tests/cssquery-prototype.html:
+ * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html:
+ * Dromaeo/resources/dromaeo/web/tests/jslib-attr-prototype.html:
+ * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html:
+ * Dromaeo/resources/dromaeo/web/tests/jslib-event-prototype.html:
+ * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:
+ * Dromaeo/resources/dromaeo/web/tests/jslib-modify-prototype.html:
+ * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html:
+ * Dromaeo/resources/dromaeo/web/tests/jslib-style-prototype.html:
+ * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html:
+ * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-prototype.html:
+ * Dromaeo/sunspider-3d-morph.html: Added.
+ * Dromaeo/sunspider-3d-raytrace.html: Added.
+ * Dromaeo/sunspider-access-binary-trees.html: Added.
+ * Dromaeo/sunspider-access-fannkuch.html: Added.
+ * Dromaeo/sunspider-access-nbody.html: Added.
+ * Dromaeo/sunspider-access-nsieve.html: Added.
+ * Dromaeo/sunspider-bitops-3bit-bits-in-byte.html: Added.
+ * Dromaeo/sunspider-bitops-bits-in-byte.html: Added.
+ * Dromaeo/sunspider-bitops-bitwise-and.html: Added.
+ * Dromaeo/sunspider-bitops-nsieve-bits.html: Added.
+ * Dromaeo/sunspider-controlflow-recursive.html: Added.
+ * Dromaeo/sunspider-crypto-aes.html: Added.
+ * Dromaeo/sunspider-crypto-md5.html: Added.
+ * Dromaeo/sunspider-crypto-sha1.html: Added.
+ * Dromaeo/sunspider-date-format-tofte.html: Added.
+ * Dromaeo/sunspider-date-format-xparb.html: Added.
+ * Dromaeo/sunspider-math-cordic.html: Added.
+ * Dromaeo/sunspider-math-partial-sums.html: Added.
+ * Dromaeo/sunspider-math-spectral-norm.html: Added.
+ * Dromaeo/sunspider-regexp-dna.html: Added.
+ * Dromaeo/sunspider-string-fasta.html: Added.
+ * Dromaeo/sunspider-string-tagcloud.html: Added.
+ * Dromaeo/sunspider-string-unpack-code.html: Added.
+ * Dromaeo/sunspider-string-validate-input.html: Added.
+ * Dromaeo/v8-crypto.html: Added.
+ * Dromaeo/v8-deltablue.html: Added.
+ * Dromaeo/v8-earley-boyer.html: Added.
+ * Dromaeo/v8-raytrace.html: Added.
+ * Dromaeo/v8-richards.html: Added.
+ * Skipped:
+
+2012-02-02 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r106543.
+ http://trac.webkit.org/changeset/106543
+ https://bugs.webkit.org/show_bug.cgi?id=77671
+
+ Made tests less stable (Requested by rniwa on #webkit).
+
+ * resources/init.html: Removed.
+
+2012-02-02 Ryosuke Niwa <rniwa@webkit.org>
+
+ [PerformanceTests] tests have dependencies
+ https://bugs.webkit.org/show_bug.cgi?id=77506
+
+ Reviewed by Hajime Morita.
+
+ * resources/init.html: Added.
+
+2012-02-01 Ryosuke Niwa <rniwa@webkit.org>
+
+ Fix after r106386. The empty anchor element was generating an erroneous whitespace.
+
+ * Bindings/event-target-wrapper.html:
+
+2012-02-01 Ryosuke Niwa <rniwa@webkit.org>
+
+ Another fix after r106379.
+
+ * Parser/html5-full-render.html:
+
+2012-01-31 Hajime Morrita <morrita@chromium.org>
+
+ Import Dromaeo to WebKit repository.
+ https://bugs.webkit.org/show_bug.cgi?id=77328
+
+ Reviewed by Ryosuke Niwa.
+
+ Imported a modified version of Dromaeo which is able to
+ run on the DRT.
+
+ The imported version originally came from:
+ https://github.com/omo/dromaeo/commit/c942a1452109cdd5f759b3c4aee8d68d490d44a2
+
+ * Dromaeo/resources/dromaeo/web/application.css: Added.
+ * Dromaeo/resources/dromaeo/web/favicon.ico: Added.
+ * Dromaeo/resources/dromaeo/web/favicon.png: Added.
+ * Dromaeo/resources/dromaeo/web/htmlrunner.js: Added.
+ * Dromaeo/resources/dromaeo/web/ie.css: Added.
+ * Dromaeo/resources/dromaeo/web/images/bg.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/clouds.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/clouds2.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/comets.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/dino1.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/dino2.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/dino3.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/dino4.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/dino5.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/dino6.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/dino7.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/dino8.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/left.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/logo.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/logo2.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/logo3.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/right.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/top.png: Added.
+ * Dromaeo/resources/dromaeo/web/images/water.png: Added.
+ * Dromaeo/resources/dromaeo/web/index.html: Added.
+ * Dromaeo/resources/dromaeo/web/jquery.js: Added.
+ * Dromaeo/resources/dromaeo/web/lib/dojo.js: Added.
+ * Dromaeo/resources/dromaeo/web/lib/jquery.js: Added.
+ * Dromaeo/resources/dromaeo/web/lib/mootools.js: Added.
+ * Dromaeo/resources/dromaeo/web/lib/prototype.js: Added.
+ * Dromaeo/resources/dromaeo/web/pngfix.js: Added.
+ * Dromaeo/resources/dromaeo/web/reset.css: Added.
+ * Dromaeo/resources/dromaeo/web/test-head.html: Added.
+ * Dromaeo/resources/dromaeo/web/test-head.js: Added.
+ * Dromaeo/resources/dromaeo/web/test-tail.html: Added.
+ * Dromaeo/resources/dromaeo/web/test-tail.js: Added.
+ * Dromaeo/resources/dromaeo/web/tests/MANIFEST.json: Added.
+ * Dromaeo/resources/dromaeo/web/tests/cssquery-dojo.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/cssquery-mootools.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/cssquery-prototype.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/cssquery-yui.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/dom-attr.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/dom-modify.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/dom-query.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/dom-traverse.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/dromaeo-3d-cube.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/dromaeo-core-eval.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/dromaeo-object-array.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/dromaeo-object-regexp.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/dromaeo-object-string.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/dromaeo-string-base64.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/jslib-attr-prototype.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/jslib-event-prototype.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/jslib-modify-prototype.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/jslib-style-prototype.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-prototype.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-morph.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-access-binary-trees.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-access-fannkuch.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-access-nbody.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-access-nsieve.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-3bit-bits-in-byte.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bits-in-byte.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-nsieve-bits.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-controlflow-recursive.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-aes.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-md5.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-sha1.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-tofte.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-xparb.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-math-partial-sums.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-math-spectral-norm.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-regexp-dna.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-string-fasta.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-string-unpack-code.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/sunspider-string-validate-input.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/v8-crypto.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/v8-deltablue.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/v8-earley-boyer.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/v8-raytrace.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/v8-richards.html: Added.
+ * Dromaeo/resources/dromaeo/web/tests/72px.png: Added.
+ * Dromaeo/resources/dromaeo/web/web-style.css: Added.
+ * Dromaeo/resources/dromaeo/web/webrunner.js: Added.
+ * Skipped: Unskip the dromaeo driver.
+
+2012-01-31 Ryosuke Niwa <rniwa@webkit.org>
+
+ Fix Parser/html5-full-render.html after r106379.
+
+ * Parser/html5-full-render.html:
+
+2012-01-31 Ryosuke Niwa <rniwa@webkit.org>
+
+ PerfTestRunner should automatically create pre#log
+ https://bugs.webkit.org/show_bug.cgi?id=77469
+
+ Reviewed by Tony Chang.
+
+ Automatically generate <pre id="log"></pre> if there isn't one.
+
+ * Bindings/event-target-wrapper.html:
+ * DOM/Accessors.html:
+ * DOM/CloneNodes.html:
+ * DOM/CreateNodes.html:
+ * DOM/DOMDivWalk.html:
+ * DOM/DOMTable.html:
+ * DOM/DOMWalk.html:
+ * DOM/Events.html:
+ * DOM/GetElement.html:
+ * DOM/GridSort.html:
+ * DOM/Template.html:
+ * Dromaeo/dom-query.html:
+ * Dromaeo/resources/dromaeorunner.js:
+ * Parser/html-parser.html:
+ * Parser/html5-full-render.html:
+ * Parser/simple-url.html:
+ * Parser/tiny-innerHTML.html:
+ * Parser/url-parser.html:
+ * Parser/xml-parser.html:
+ * resources/runner.js:
+ (PerfTestRunner.log):
+ (PerfTestRunner.printStatistics):
+
+2012-01-31 Ryosuke Niwa <rniwa@webkit.org>
+
+ runner.js in performance tests should define a class
+ https://bugs.webkit.org/show_bug.cgi?id=77074
+
+ Reviewed by Eric Seidel.
+
+ Wrap all functions in runner.js by PerfTestRunner and update tests that runner.js accordingly.
+ Also replace compute* functions in runner.js by more robust code from dom-perf.js.
+
+ * Bindings/event-target-wrapper.html:
+ * DOM/DOMTable.html:
+ * DOM/resources/dom-perf.js:
+ (BenchmarkSuite.prototype.RunSingle):
+ (runBenchmarkSuite):
+ * Mutation/append-child-deep.html:
+ * Mutation/append-child.html:
+ * Mutation/inner-html.html:
+ * Mutation/remove-child-deep.html:
+ * Mutation/remove-child.html:
+ * Parser/html-parser.html:
+ * Parser/html5-full-render.html:
+ * Parser/simple-url.html:
+ * Parser/tiny-innerHTML.html:
+ * Parser/url-parser.html:
+ * Parser/xml-parser.html:
+ * resources/runner.js:
+ (PerfTestRunner.log):
+ (PerfTestRunner.logInfo):
+ (PerfTestRunner.loadFile):
+ (PerfTestRunner.computeStatistics):
+ (PerfTestRunner.logStatistics):
+ (PerfTestRunner._runLoop.else):
+ (PerfTestRunner._runLoop):
+ (PerfTestRunner._runner):
+
+2012-01-31 Hajime Morrita <morrita@chromium.org>
+
+ [PerformanceTests] Add landing html for Dromaeo dom-query test
+ https://bugs.webkit.org/show_bug.cgi?id=77329
+
+ Reviewed by Ryosuke Niwa.
+
+ Added a "landing html" which includes actual dromaemo page and
+ send messages to interact with it. The landing html also dumps the
+ score in run-perf-tests friendly format.
+
+ This test isn't enabled until Dromaemo itself is available for run-perf-tests.
+ It will happen in a separate change.
+
+ * Dromaeo/dom-query.html: Added.
+ * Dromaeo/resources/dromaeorunner.js: Added.
+ * Skipped: Skipping this for now.
+
+2012-01-30 Ryosuke Niwa <rniwa@webkit.org>
+
+ Skip inspector tests since they have been timing out.
+
+ * Skipped:
+
+2012-01-29 Ryosuke Niwa <rniwa@webkit.org>
+
+ DOM/DOMDivWalk.html result is unreliable
+ https://bugs.webkit.org/show_bug.cgi?id=77313
+
+ Reviewed by Adam Barth.
+
+ Trigger garbage collection manually between test runs to avoid GC
+ to occur in the middle of runs.
+
+ * DOM/resources/dom-perf.js:
+ (BenchmarkSuite.prototype.RunSingle):
+ * resources/runner.js:
+ (gc.else.gcRec):
+ (gc):
+ (runLoop):
+
+2012-01-26 Ryosuke Niwa <rniwa@webkit.org>
+
+ Import Chromium's dom_perf test
+ https://bugs.webkit.org/show_bug.cgi?id=77175
+
+ Reviewed by Adam Barth.
+
+ Import dom_perf.
+
+ Note resources/dom/suites.js isn't used by any html file yet but it will be used by Chromium port
+ once its perf bots start pulling test files from WebKit repository instead of Google's internal repository.
+
+ * DOM: Added.
+ * DOM/Accessors.html: Added.
+ * DOM/CloneNodes.html: Added.
+ * DOM/CreateNodes.html: Added.
+ * DOM/DOMDivWalk.html: Added.
+ * DOM/DOMTable.html: Added.
+ * DOM/DOMWalk.html: Added.
+ * DOM/Events.html: Added.
+ * DOM/GetElement.html: Added.
+ * DOM/GridSort.html: Added.
+ * DOM/Template.html: Added.
+ * DOM/resources: Added.
+ * DOM/resources/dom-perf.js: Added.
+ * DOM/resources/dom-perf: Added.
+ * DOM/resources/dom-perf/accessors.js: Added.
+ * DOM/resources/dom-perf/clonenodes.js: Added.
+ * DOM/resources/dom-perf/createnodes.js: Added.
+ * DOM/resources/dom-perf/domdivwalk.js: Added.
+ * DOM/resources/dom-perf/domtable.js: Added.
+ * DOM/resources/dom-perf/domwalk.js: Added.
+ * DOM/resources/dom-perf/events.js: Added.
+ * DOM/resources/dom-perf/getelement.js: Added.
+ * DOM/resources/dom-perf/gridsort.js: Added.
+ * DOM/resources/dom-perf/suites.js: Added.
+ * DOM/resources/dom-perf/template.js: Added.
+ * resources/runner.js:
+
+2012-01-25 Ryosuke Niwa <rniwa@webkit.org>
+
+ html5-full-render.html fails due to a log
+ https://bugs.webkit.org/show_bug.cgi?id=77046
+
+ Reviewed by Adam Barth.
+
+ Replace the call to log() in html5-full-render.html by a call to newly added logInfo(),
+ which doesn't print anything inside DRT.
+
+ * Parser/html5-full-render.html:
+ * resources/runner.js:
+ (logInfo):
+
+2012-01-19 Adam Barth <abarth@webkit.org>
+
+ PerformanceTests's runner.js shouldn't be Parser-specific
+ https://bugs.webkit.org/show_bug.cgi?id=76670
+
+ Reviewed by Ryosuke Niwa.
+
+ This runner script is used by a bunch of difference performance tests.
+ It shouldn't be in the Parser directory anymore.
+
+ * Bindings/event-target-wrapper.html:
+ * Mutation/append-child-deep.html:
+ * Mutation/append-child.html:
+ * Mutation/inner-html.html:
+ * Mutation/remove-child-deep.html:
+ * Mutation/remove-child.html:
+ * Parser/html-parser.html:
+ * Parser/html5-full-render.html:
+ * Parser/resources/runner.js: Removed.
+ * Parser/simple-url.html:
+ * Parser/tiny-innerHTML.html:
+ * Parser/url-parser.html:
+ * Parser/xml-parser.html:
+ * resources: Added.
+ * resources/runner.js: Copied from PerformanceTests/Parser/resources/runner.js.
+
+2012-01-19 Ryosuke Niwa <rniwa@webkit.org>
+
+ Some perf tests time out when ran by run-perf-tests
+ https://bugs.webkit.org/show_bug.cgi?id=76612
+
+ Reviewed by Dirk Pranke and Eric Seidel.
+
+ Replace all images in html5.html by geenbox.png to avoid accessing whatwg.org when
+ running the parser tests. Also call dumpAsText, waitUntilDone, and notifyDone automatically
+ inside runner.js to avoid having to call them in individual tests.
+
+ * Bindings/event-target-wrapper.html: Removed calls to layoutTestController methods since
+ they are now called by runner.js automatically.
+ * Parser/resources/greenbox.png: Copied from LayoutTests/fast/css/resources/greenbox.png.
+ * Parser/resources/html5.html:
+ * Parser/resources/runner.js:
+ (runLoop):
+
+2012-01-18 Ryosuke Niwa <rniwa@webkit.org>
+
+ run-perf-tests should support Skipped list
+ https://bugs.webkit.org/show_bug.cgi?id=76594
+
+ Reviewed by Adam Barth.
+
+ Add Skipped list to be used by run-perf-tests as it can only runs tests in
+ Bindings, Parser, and inspector at the moment.
+
+ * Skipped: Added.
+
+2012-01-12 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: performance: restore 'log 300 messages into console' test.
+ https://bugs.webkit.org/show_bug.cgi?id=76170
+
+ It was removed in order of transition from layout tests to perf tests.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/console-300-lines.html: Added.
+
+2012-01-12 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: performance tests: fix memory leak in first-open-resources test.
+ https://bugs.webkit.org/show_bug.cgi?id=76049
+
+ first-open-resources doesn't reset resource panel properly after test run.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/first-open-resources.html:
+
+2012-01-10 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Unreviewed. WebInspector: Remove unnecessary logging from the test.
+
+ * inspector/first-open-resources.html:
+
+2012-01-10 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Unreviewed. Restore test that was removed during migration from LayoutTests folder.
+
+ * inspector/first-open-resources.html: Added.
+
+2012-01-09 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Unreviewed test fix after r103683.
+
+ * inspector/first-open-scripts.html:
+ * inspector/show-panel.html:
+
+2012-01-03 Adam Barth <abarth@webkit.org>
+
+ html-parser.html takes too long to run
+ https://bugs.webkit.org/show_bug.cgi?id=75515
+
+ Reviewed by Eric Seidel.
+
+ In working on runner.js, we introduced a factor of 10 increase to the
+ running time of this benchmark. This patch dials down the number of
+ iterations to something more user-friendly.
+
+ * Parser/html-parser.html:
+
+2011-12-18 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: move heap data stats to separate tab.
+ https://bugs.webkit.org/show_bug.cgi?id=74704
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/performance-test.js:
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest):
+
+2011-12-01 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: chromium: move and adapt Inspector's performance tests for running with run-inspector-perf-tests.py.
+ https://bugs.webkit.org/show_bug.cgi?id=72260
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/first-open-elements.html: Renamed from LayoutTests/inspector/performance/resources/first-open-elements.html.
+ * inspector/first-open-scripts.html: Renamed from LayoutTests/inspector/performance/resources/first-open-scripts.html.
+ * inspector/inspector-startup-time.html: Renamed from LayoutTests/inspector/performance/resources/inspector-startup-time.html.
+ * inspector/network-append-30-requests.html: Renamed from LayoutTests/inspector/performance/resources/network-append-30-requests.html.
+ * inspector/performance-test.js: Renamed from LayoutTests/inspector/performance/resources/performance-test.js.
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.start):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.finish):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._getJSHeapSize):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.done):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._runTest):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
+ (initialize_TimeTracker.InspectorTest.runPerformanceTest):
+ (initialize_TimeTracker.InspectorTest.mark):
+ * inspector/show-panel.html: Renamed from LayoutTests/inspector/performance/resources/show-panel.html.
+
+2011-11-09 Adam Klein <adamk@chromium.org>
+
+ [MutationObservers] Microbenchmarks for appendChild, removeChild, and innerHTML
+ https://bugs.webkit.org/show_bug.cgi?id=71939
+
+ Reviewed by Ojan Vafai.
+
+ These benchmarks time both the DOM mutations themselves and the time taken
+ to call the MutationCallback. This measurement is achieved by
+ executing the code entirely within the MutationCallback itself.
+
+ * Mutation/append-child-deep.html: Added. Covers appendChild in a 200-node-deep tree with subtree observation.
+ * Mutation/append-child.html: Added. Covers appendChild in a flat tree.
+ * Mutation/inner-html.html: Added. Covers innerHTML adding and removing many nodes at a time.
+ * Mutation/remove-child-deep.html: Added. Covers removeChild in a 200-node-deep tree with subtree observation.
+ * Mutation/remove-child.html: Added. Covers removeChild in a flat tree.
+
+2011-10-25 Adam Barth <abarth@webkit.org>
+
+ EventTargetFactory.in is not sorted
+ https://bugs.webkit.org/show_bug.cgi?id=70855
+
+ Reviewed by Eric Seidel.
+
+ Add a microbenchmark for wrapping event target.
+
+ * Bindings: Added.
+ * Bindings/event-target-wrapper.html: Added.
+ * Parser/resources/runner.js:
+ (runLoop):
+ - Let the user of the harness get a callback when the test is done.
+
+2011-10-04 Eric Seidel <eric@webkit.org>
+
+ Update html5-full-render.html to load the HTML5 spec incrementally, closer to how the browser would
+ https://bugs.webkit.org/show_bug.cgi?id=69374
+
+ Unreviewed.
+
+ Per https://bugs.webkit.org/show_bug.cgi?id=69374#c7
+ updating the chunksize to be a bit smaller now that the total
+ size of the html5 spec is smaller than when I wrote the test.
+
+ This should increase the prevalence of style resolution in the
+ sample time, which more closely matches instrument samples
+ taken when loading the full page in Safari.
+
+ * Parser/html5-full-render.html:
+
+2011-10-04 Eric Seidel <eric@webkit.org>
+
+ Update html5-full-render.html to load the HTML5 spec incrementally, closer to how the browser would
+ https://bugs.webkit.org/show_bug.cgi?id=69374
+
+ Reviewed by James Robinson.
+
+ This should finally be able to provide us with a repeatable metric
+ for how fast we're currently able to load the HTML5 spec.
+ There are a variety of interesting functions which show up in this
+ sample, including of course style resolution.
+
+ * Parser/html5-full-render.html:
+
+2011-10-04 Eric Seidel <eric@webkit.org>
+
+ Update our copy of the HTML5 spec used for performance testing to match the latest version
+ https://bugs.webkit.org/show_bug.cgi?id=69364
+
+ Unreviewed. The patch is too large to post, so landing this unreviewed. :(
+
+ The copy of the html5 spec we were using for testing was over a year old
+ and didn't have any of the subresources with it (we were only using it
+ as an HTML parsing benchmark). I'm about to use it for testing
+ the full load/render time of the benchmark, so I've updated to the latest
+ version of the spec (now 8mb instead of 5mb) and inlined two of the
+ CSS files. (Inlining the CSS was necessary to make my testing consistent
+ as there seems to be a race with some timer fired after CSS load.)
+
+ Increasing from 5mb to 8mb showed a similar 30% slowdown in our parser
+ benchmarks as expected.
+
+ * Parser/resources/html5.html:
+
+2011-10-04 Eric Seidel <eric@webkit.org>
+
+ Add loopsPerRun option to Parser performance test runner
+ https://bugs.webkit.org/show_bug.cgi?id=69363
+
+ Reviewed by Antti Koivisto.
+
+ Add loopsPerRun option and abstract out runLoop function (to make the UI more responsive).
+ No change in behavior in any of the tests.
+
+ * Parser/resources/runner.js:
+ (runLoop):
+ (run):
+ (start):
+
+2011-10-03 Eric Seidel <eric@webkit.org>
+
+ Add a microbenchmark for a full-page render of the HTML5 spec
+ https://bugs.webkit.org/show_bug.cgi?id=69285
+
+ Reviewed by Adam Barth.
+
+ This was designed to be a test for https://bugs.webkit.org/show_bug.cgi?id=68944
+ But it seems that by far our dominating cost for the HTML5 benchmark is
+ time spent laying out lines (which isn't actually that surprising).
+
+ I'm adding the performance test for posterity.
+
+ * Parser/html-parser.html:
+ - Removed use of "about:blank" which abarth says is a no-op. Made comment more accurate.
+ * Parser/html5-full-render.html: Copied from PerformanceTests/Parser/html-parser.html.
+
+2011-10-03 Eric Seidel <eric@webkit.org>
+
+ PerformanceTests/Parser/html-parser is only testing parsing of the head element
+ https://bugs.webkit.org/show_bug.cgi?id=69283
+
+ Reviewed by Adam Barth.
+
+ While investigating https://bugs.webkit.org/show_bug.cgi?id=68944
+ I found that the html-parser benchmark was only parsing up to the
+ first script tag per loop! We've fixed this by adding the sandbox
+ tag which will deny all external loads and allow the parser to
+ synchronously continue parsing the entire document to completion
+ (as we had expected it was doing).
+
+ This changes the profile somewhat. Line number counting is much
+ hotter, since we're actually accounting for the parse of the entire
+ document in our sample.
+
+ Total sample time only about doubles, from 1800ms to 3800ms on my machine
+ which is less than I would have expected.
+
+ * Parser/html-parser.html:
+
+2011-08-09 Alexandru Chiculita <achicu@adobe.com>
+
+ Fixing 65868 REGRESSION(r92610) caused by 65668 - Optimize floating elements lookup
+ https://bugs.webkit.org/show_bug.cgi?id=65871
+
+ Reviewed by Dave Hyatt.
+
+ * Layout/floats.html: Added the nested divs, so that we can test the propagation impact of the floats tree.
+
+2011-08-08 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r92610.
+ http://trac.webkit.org/changeset/92610
+ https://bugs.webkit.org/show_bug.cgi?id=65868
+
+ Caused assertion failures when running fast/multicol tests
+ (Requested by andersca on #webkit).
+
+ * Layout/floats.html:
+
+2011-08-08 Alexandru Chiculita <achicu@adobe.com>
+
+ Optimize floating elements lookup
+ https://bugs.webkit.org/show_bug.cgi?id=65668
+
+ Reviewed by David Hyatt.
+
+ * Layout/floats.html: Added the nested divs, so that we can test the propagation impact of the floats tree.
+
+2011-08-04 Alexandru Chiculita <achicu@adobe.com>
+
+ Add a performance test for floating elements layout algorithm
+ https://bugs.webkit.org/show_bug.cgi?id=65741
+
+ The test creating lots of small floats and randomly changes
+ the width of one element at a time. It measures how often it can do that.
+
+ Reviewed by Adam Barth.
+
+ * Layout/floats.html: Added.
+
+2011-05-30 Daniel Bates <dbates@webkit.org>
+
+ Reviewed by Adam Barth.
+
+ Rename XSSFilter to XSSAuditor
+ https://bugs.webkit.org/show_bug.cgi?id=61718
+
+ Currently we use the names XSSFilter and XSSAuditor throughout the project.
+ Instead, we should choose one name for consistency.
+
+ No functionality was changed. So, no new tests.
+
+ * XSSAuditor: Copied from PerformanceTests/XSSFilter.
+ * XSSFilter: Removed.
+ * XSSFilter/large-post-many-events.html: Removed.
+ * XSSFilter/large-post-many-inline-scripts-and-events.html: Removed.
+ * XSSFilter/resources: Removed.
+ * XSSFilter/resources/target-for-large-post-many-inline-scripts-and-events.html: Removed.
+
+2011-03-25 Leo Yang <leo.yang@torchmobile.com.cn>
+
+ Reviewed by Dirk Schulze.
+
+ SVG <use> element performance improvement
+ https://bugs.webkit.org/show_bug.cgi?id=57077
+
+ Add a manual test case which is from
+ http://upload.wikimedia.org/wikipedia/commons/4/4e/Sierpinski_carpet_6.svg
+ for svg <use> element performance test.
+
+ * PageLoad/svg/files/Sierpinski_carpet_6.svg: Added.
+ * PageLoad/svg/svg.pltsuite:
+
+2011-02-05 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Adam Barth.
+
+ Add performance tests for URL parsing
+ https://bugs.webkit.org/show_bug.cgi?id=53845
+
+ The final-url-en URL corpus is from:
+ http://corpus.leeds.ac.uk/internet.html
+
+ There are also other language corpuses which we may want to use in the future.
+
+ The usage instructions were as follows:
+ "URL lists and other resources: you can freely use them in your research
+ provided that you supply a link to this website: http://corpus.leeds.ac.uk/."
+ Done.
+
+ * Parser/simple-url.html: Added.
+ On my machine:
+ Firefox: 255ms
+ TOT WebKit: 378ms
+ Chrome: 286ms
+ Opera: 2830ms (no, that is not a typo)
+ * Parser/url-parser.html: Added.
+ Firefox: 381ms
+ TOT WebKit: 216ms
+ Chrome: 131ms
+ Opera: 1383ms (again, not a typo)
+ * Parser/resources/final-url-en: Added.
+
+2011-02-03 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Daniel Bates.
+
+ Add another XSSFilter PerformanceTest
+ https://bugs.webkit.org/show_bug.cgi?id=53750
+
+ This PerformanceTest tests the case that was slow in
+ https://bugs.webkit.org/show_bug.cgi?id=49845
+
+ * XSSFilter/large-post-many-inline-scripts-and-events.html: Added.
+ * XSSFilter/resources: Added.
+ * XSSFilter/resources/target-for-large-post-many-inline-scripts-and-events.html: Added.
+
+2011-02-03 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Add PerformanceTest for XSSFilter
+ https://bugs.webkit.org/show_bug.cgi?id=53741
+
+ This performance tests covers the case of a large POST data and many
+ small event handlers.
+
+ * XSSFilter: Added.
+ * XSSFilter/large-post-many-events.html: Added.
+
+2011-02-02 Adam Barth <abarth@webkit.org>
+
+ Rubber-stamped by Eric Seidel.
+
+ Merge PerformanceTests/Parser/ChangeLog and
+ PerformanceTests/PageLoad/ChangeLog into PerformanceTests/ChangeLog.
+
+ It's silly to have ChangeLogs for each of these directories separately.
+ I've left SunSpider with its own ChangeLog because it's more of an
+ independent entity.
+
+ * ChangeLog: Added.
+
+2011-02-02 Eric Seidel <eric@webkit.org>
+
+ Unreviewed. Just fixing an exception seen in Firefox.
+
+ HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
+ https://bugs.webkit.org/show_bug.cgi?id=48719
+
+ Make the benchmarks work in Firefox/Opera.
+
+ * resources/runner.js:
+ (log):
+
+2011-01-27 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
+ https://bugs.webkit.org/show_bug.cgi?id=48719
+
+ It's unclear exactly what the Peacekeeper benchmark is testing,
+ because I haven't found a way to run it myself.
+
+ However, I constructed a benchmark which shows at least one possible slow point.
+ The HTML5 spec talks about creating a new document for every time we use
+ the fragment parsing algorithm. Document() it turns out, it a huge bloated
+ mess, and the constructor and destructor do a huge amount of work.
+
+ * benchmarks/parser/tiny-innerHTML.html: Added.
+
+2011-01-29 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r77050.
+ http://trac.webkit.org/changeset/77050
+ https://bugs.webkit.org/show_bug.cgi?id=53371
+
+ Caused a crash in Chromium's test_shell_tests (Requested by
+ rniwa on #webkit).
+
+ * resources/performance-test.js: Removed.
+ * tiny-innerHTML.html: Removed.
+
+2011-01-28 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
+ https://bugs.webkit.org/show_bug.cgi?id=48719
+
+ It's unclear exactly what the Peacekeeper benchmark is testing,
+ because I haven't found a way to run it myself.
+
+ However, I constructed a benchmark which shows at least one possible slow point.
+ The HTML5 spec talks about creating a new document for every time we use
+ the fragment parsing algorithm. Document() it turns out, it a huge bloated
+ mess, and the constructor and destructor do a huge amount of work.
+ To avoid constructing (or destructing) documents for each innerHTML call,
+ this patch adds a shared dummy document used by all innerHTML calls.
+
+ * benchmarks/parser/tiny-innerHTML.html: Added.
+
+2010-12-31 Adam Barth <abarth@webkit.org>
+
+ Rubber-stamped by Eric Seidel.
+
+ Move HTML and XML parser benchmarks into PerformanceTests/Parser
+ https://bugs.webkit.org/show_bug.cgi?id=51772
+
+ Add a ChangeLog for tracking changes to the Parser PerformanceTest.
+
+ * ChangeLog: Added.
+
+2010-12-31 Adam Barth <abarth@webkit.org>
+
+ Rubber-stamped by Eric Seidel.
+
+ Move PageLoadTests to PerformanceTests/PageLoad
+ https://bugs.webkit.org/show_bug.cgi?id=51771
+
+ Update URLs to point to the new directory name.
+
+ * svg/svg.pltsuite:
+
+2006-12-26 Eric Seidel <eric@webkit.org>
+
+ Reviewed by olliej.
+
+ * svg/svg.pltsuite: re-enable word-iso.svg after fixing http://bugs.webkit.org/show_bug.cgi?id=11987
+
+2006-12-26 Eric Seidel <eric@webkit.org>
+
+ Reviewed by bradee-oh.
+
+ Add new PageLoadTests directory (this one)
+ Add LICENSES file to explain where each SVG came from.
+
+ * ChangeLog: Added.
+ * svg/LICENSES: Added.
+ * svg/files/33041-Samurai.svg: Added.
+ * svg/files/42470-flower_from_my_garden_v2.svg: Added.
+ * svg/files/Harvey_Rayner.svg: Added.
+ * svg/files/az-lizard_benji_park_01.svg: Added.
+ * svg/files/bamboo_01.svg: Added.
+ * svg/files/cacuts_01.svg: Added.
+ * svg/files/cowboy.svg: Added.
+ * svg/files/crawfish2_ganson.svg: Added.
+ * svg/files/deb9frac1.svg: Added.
+ * svg/files/food_leif_lodahl_01.svg: Added.
+ * svg/files/france.svg: Added.
+ * svg/files/francobollo_gnome_ezechi_02.svg: Added.
+ * svg/files/gearflowers.svg: Added.
+ * svg/files/hereGear4.svg: Added.
+ * svg/files/mtsthelens.svg: Added.
+ * svg/files/mtsthelens0.jpg: Added.
+ * svg/files/world-iso.svg: Added.
+ * svg/files/worldcup.svg: Added.
+ * svg/svg.pltsuite: Added.
+
diff --git a/PerformanceTests/DOM/Accessors.html b/PerformanceTests/DOM/Accessors.html
new file mode 100644
index 000000000..7bb96a37a
--- /dev/null
+++ b/PerformanceTests/DOM/Accessors.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container"><span id="benchmark_content"></span></div>
+<script type="text/javascript" src="../resources/runner.js"></script>
+<script type="text/javascript" src="resources/dom-perf.js"></script>
+<script type="text/javascript" src="resources/dom-perf/accessors.js"></script>
+<script> runBenchmarkSuite(AccessorsTest); </script>
+</body>
+</html>
diff --git a/PerformanceTests/DOM/CloneNodes.html b/PerformanceTests/DOM/CloneNodes.html
new file mode 100644
index 000000000..4aef2b57f
--- /dev/null
+++ b/PerformanceTests/DOM/CloneNodes.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container"><span id="benchmark_content"></span></div>
+<script type="text/javascript" src="../resources/runner.js"></script>
+<script type="text/javascript" src="resources/dom-perf.js"></script>
+<script type="text/javascript" src="resources/dom-perf/clonenodes.js"></script>
+<script> runBenchmarkSuite(CloneNodesTest); </script>
+</body>
+</html>
diff --git a/PerformanceTests/DOM/CreateNodes.html b/PerformanceTests/DOM/CreateNodes.html
new file mode 100644
index 000000000..13e3d44fe
--- /dev/null
+++ b/PerformanceTests/DOM/CreateNodes.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container"><span id="benchmark_content"></span></div>
+<script type="text/javascript" src="../resources/runner.js"></script>
+<script type="text/javascript" src="resources/dom-perf.js"></script>
+<script type="text/javascript" src="resources/dom-perf/createnodes.js"></script>
+<script> runBenchmarkSuite(CreateNodesTest); </script>
+</body>
+</html>
diff --git a/PerformanceTests/DOM/DOMDivWalk.html b/PerformanceTests/DOM/DOMDivWalk.html
new file mode 100644
index 000000000..a46c14cae
--- /dev/null
+++ b/PerformanceTests/DOM/DOMDivWalk.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container"><span id="benchmark_content"></span></div>
+<script type="text/javascript" src="../resources/runner.js"></script>
+<script type="text/javascript" src="resources/dom-perf.js"></script>
+<script type="text/javascript" src="resources/dom-perf/domdivwalk.js"></script>
+<script> runBenchmarkSuite(DOMDivWalkTest); </script>
+</body>
+</html>
diff --git a/PerformanceTests/DOM/DOMTable.html b/PerformanceTests/DOM/DOMTable.html
new file mode 100644
index 000000000..1709963be
--- /dev/null
+++ b/PerformanceTests/DOM/DOMTable.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container"><span id="benchmark_content"></span></div>
+<script type="text/javascript" src="../resources/runner.js"></script>
+<script type="text/javascript" src="resources/dom-perf.js"></script>
+<script type="text/javascript" src="resources/dom-perf/domtable.js"></script>
+<script>
+runBenchmarkSuite(DOMTableTest, 10);
+// runCount = 10 since this test is very slow (~12m per run on Core i5 2.53Hz MacBookPro)
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/DOM/DOMWalk.html b/PerformanceTests/DOM/DOMWalk.html
new file mode 100644
index 000000000..ffd71c5fa
--- /dev/null
+++ b/PerformanceTests/DOM/DOMWalk.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container"><span id="benchmark_content"></span></div>
+<script type="text/javascript" src="../resources/runner.js"></script>
+<script type="text/javascript" src="resources/dom-perf.js"></script>
+<script type="text/javascript" src="resources/dom-perf/domwalk.js"></script>
+<script> runBenchmarkSuite(DOMWalkTest); </script>
+</body>
+</html>
diff --git a/PerformanceTests/DOM/Events.html b/PerformanceTests/DOM/Events.html
new file mode 100644
index 000000000..daca4e136
--- /dev/null
+++ b/PerformanceTests/DOM/Events.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container"><span id="benchmark_content"></span></div>
+<script type="text/javascript" src="../resources/runner.js"></script>
+<script type="text/javascript" src="resources/dom-perf.js"></script>
+<script type="text/javascript" src="resources/dom-perf/events.js"></script>
+<script> runBenchmarkSuite(EventTest); </script>
+</body>
+</html>
diff --git a/PerformanceTests/DOM/GetElement.html b/PerformanceTests/DOM/GetElement.html
new file mode 100644
index 000000000..ca6c65588
--- /dev/null
+++ b/PerformanceTests/DOM/GetElement.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container"><span id="benchmark_content"></span></div>
+<script type="text/javascript" src="../resources/runner.js"></script>
+<script type="text/javascript" src="resources/dom-perf.js"></script>
+<script type="text/javascript" src="resources/dom-perf/getelement.js"></script>
+<script> runBenchmarkSuite(GetElementTest); </script>
+</body>
+</html>
diff --git a/PerformanceTests/DOM/GridSort.html b/PerformanceTests/DOM/GridSort.html
new file mode 100644
index 000000000..a89b3c960
--- /dev/null
+++ b/PerformanceTests/DOM/GridSort.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container"><span id="benchmark_content"></span></div>
+<script type="text/javascript" src="../resources/runner.js"></script>
+<script type="text/javascript" src="resources/dom-perf.js"></script>
+<script type="text/javascript" src="resources/dom-perf/gridsort.js"></script>
+<script> runBenchmarkSuite(GridSortTest); </script>
+</body>
+</html>
diff --git a/PerformanceTests/DOM/Template.html b/PerformanceTests/DOM/Template.html
new file mode 100644
index 000000000..602586f66
--- /dev/null
+++ b/PerformanceTests/DOM/Template.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container"><span id="benchmark_content"></span></div>
+<script type="text/javascript" src="../resources/runner.js"></script>
+<script type="text/javascript" src="resources/dom-perf.js"></script>
+<script type="text/javascript" src="resources/dom-perf/template.js"></script>
+<script> runBenchmarkSuite(TemplateTest); </script>
+</body>
+</html>
diff --git a/PerformanceTests/DOM/resources/dom-perf.js b/PerformanceTests/DOM/resources/dom-perf.js
new file mode 100644
index 000000000..11291a339
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf.js
@@ -0,0 +1,353 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// A framework for running the benchmark suites and computing a score based
+// on timing measurements.
+//
+// Time measurements are computed by summing individual measurements in a
+// test's run() function. Because Javascript generally has a 1ms timer
+// granularity, tests should be careful to take at least 2ms to run. Tests
+// which run in less than 1ms are invalid. Some older browsers have less
+// timer resolution, as low as 15ms. On these systems tests which take less
+// than 15ms to run are invalid.
+//
+// Scores for a benchmark suite are calculated as the geometric mean across
+// all benchmarks which comprise that suite.
+//
+// Overall score is calculated as the geometric mean across all benchmark
+// suites.
+
+// Benchmark Object.
+// A benchmark is a test which can be run as part of a BenchmarkSuite.
+//
+// Each test provides the following properties:
+// name
+// The name of the benchmark.
+// run
+// The work function which is measured
+// opt_setup (optional)
+// A function which is run before each benchmark iteration.
+// opt_cleanup (optional)
+// A function to cleanup any side-effects of a benchmark.
+// opt_shareSetup (optional)
+// A flag indicating whether the setup function should be run once or with
+// each benchmark iteration. (default is false)
+//
+
+// Add each method to Arrays, to allow easy iteration over elements
+if(!Array.prototype.forEach) {
+ // forEach's calling syntax is:
+ // [].forEach(func, scope);
+ // registered callbacks always get 3 args:
+ // [].forEach(function(item, index, fullArray){});
+ Array.prototype.forEach = function(callback, scope) {
+ callback = hitch(scope, callback);
+ for (var i = 0, len = this.length; i < len; i++)
+ callback(this[i], i, this);
+ };
+}
+
+byId = function(id, doc) {
+ if (typeof id == "string")
+ return (doc||document).getElementById(id);
+ return id;
+};
+
+// A utility object for measuring time intervals.
+function Interval() {
+ var start_ = 0;
+ var stop_ = 0;
+ this.start = function() { start_ = new Date(); };
+ this.stop = function() { stop_ = new Date(); };
+ this.microseconds = function() { return (stop_ - start_) * 1000; };
+}
+
+// A stub profiler object.
+function PseudoProfiler() {}
+PseudoProfiler.prototype.start = function() {};
+PseudoProfiler.prototype.stop = function() {};
+
+var chromiumProfilerInitOnce = false; // Chromium profiler initialization.
+
+// Cross-platform function to get the profiler object.
+// For chromium, returns a Profiler object which can be used during the run.
+// For other browsers, returns a PseudoProfiler object.
+function GetProfiler() {
+ if (window.chromium && window.chromium.Profiler) {
+ var profiler = new window.chromium.Profiler();
+ if (!chromiumProfilerInitOnce) {
+ chromiumProfilerInitOnce = true;
+ profiler.stop();
+ if (profiler.clear)
+ profiler.clear();
+ if (profiler.setThreadName)
+ profiler.setThreadName("domperf javascript");
+ }
+ return profiler;
+ }
+ return new PseudoProfiler();
+}
+
+function Benchmark(name, run, opt_setup, opt_cleanup, opt_shareSetup) {
+ this.name = name;
+ this.timeToRun = 100; // ms.
+ // Tests like DOM/DOMWalk.html are too fast and need to be ran multiple times.
+ // 100 ms was chosen since it was long enough to make DOMWalk and other fast tests stable
+ // but was short enough not to make other slow tests run multiple times.
+ this.run = run;
+ this.setup = opt_setup;
+ this.cleanup = opt_cleanup;
+ this.shareSetup = opt_shareSetup;
+}
+
+// BenchmarkSuite
+// A group of benchmarks that can be run together.
+function BenchmarkSuite(name, benchmarks) {
+ this.name = name;
+ this.benchmarks = benchmarks;
+ for (var i = 0; i < this.benchmarks.length; i++)
+ this.benchmarks[i].suite = this;
+ this.suiteFile = this.currentSuiteFile;
+}
+
+// This computes the amount of overhead is associated with the call to the test
+// function and getting the date.
+BenchmarkSuite.start = new Date();
+
+BenchmarkSuite.Math = new (function() {
+ // Computes the geometric mean of a set of numbers.
+ // nulls in numbers will be ignored
+ // minNumber is optional (defaults to 0.001) anything smaller than this
+ // will be changed to this value, eliminating infinite results
+ // mapFn is an optional arg that will be used as a map function on numbers
+ this.GeometricMean = function(numbers, minNumber, mapFn) {
+ if (mapFn)
+ numbers = dojo.map(numbers, mapFn);
+ var log = 0;
+ var nNumbers = 0;
+ for (var i = 0, n = numbers.length; i < n; i++) {
+ var number = numbers[i];
+ if (number) {
+ if (number < minNumber)
+ number = minNumber;
+ nNumbers++;
+ log += Math.log(number);
+ }
+ }
+ return Math.pow(Math.E, log / nNumbers);
+ };
+
+ // Compares two objects using built-in JavaScript operators.
+ this.ascend = function(a, b) {
+ if (a < b)
+ return -1;
+ else if (a > b)
+ return 1;
+ return 0;
+ };
+});
+
+// Benchmark results hold the benchmark and the measured time used to run the
+// benchmark. The benchmark score is computed later once a full benchmark suite
+// has run to completion.
+function BenchmarkResult(benchmark, times, error, benchmarkContent) {
+ this.benchmark = benchmark;
+ this.error = error;
+ this.times = times;
+
+ this.countNodes = function(parent) {
+ var nDescendants = 0;
+ for (var child = parent.firstChild; child; child = child.nextSibling)
+ nDescendants += countNodes(child);
+ return nDescendants + 1;
+ };
+
+ if (benchmarkContent) {
+ var nNodes = countNodes(benchmarkContent) - 1;
+ if (nNodes > 0) {
+ this.html = benchmarkContent.innerHTML;
+ this.nNodes = nNodes;
+ }
+ }
+ if (!error) {
+ var statistics = PerfTestRunner.computeStatistics(times);
+ this.min = statistics.min;
+ this.max = statistics.max;
+ this.median = statistics.median;
+ this.mean = statistics.mean;
+ this.sum = statistics.sum;
+ this.variance = statistics.variance;
+ this.stdev = statistics.stdev;
+ }
+
+ // Convert results to numbers. Used by the geometric mean computation.
+ this.valueOf = function() { return this.time; };
+}
+
+// Runs a single benchmark and computes the average time it takes to run a
+// single iteration.
+BenchmarkSuite.prototype.RunSingle = function(benchmark, times) {
+ var elapsed = 0;
+ var start = new Date();
+ var runInterval = new Interval();
+ var setupReturn = null;
+ var runReturn = null;
+ var time;
+ var totalTime = 0;
+ var nZeros = 0;
+ var error = null;
+ var profiler = GetProfiler();
+
+ for (var n = 0; !error && totalTime < benchmark.timeToRun; n++) {
+ if (this.benchmarkContent)
+ this.benchmarkContentHolder.removeChild(this.benchmarkContent);
+ this.benchmarkContent = this.benchmarkContentProto.cloneNode();
+ this.benchmarkContentHolder.appendChild(this.benchmarkContent);
+ PerfTestRunner.gc();
+
+ try {
+ if (benchmark.setup) {
+ if (!setupReturn || !benchmark.shareSetup)
+ setupReturn = benchmark.setup();
+ }
+
+ profiler.start();
+ runInterval.start();
+ runReturn = benchmark.run(setupReturn);
+ runInterval.stop();
+ profiler.stop();
+ time = runInterval.microseconds() / 1000;
+ if (time > 0) {
+ times.push(time);
+ elapsed += time;
+ } else
+ times.push(0);
+ if (benchmark.cleanup)
+ benchmark.cleanup(runReturn);
+ } catch (e) {
+ error = e;
+ }
+ totalTime = new Date() - start;
+ }
+
+ var result = new BenchmarkResult(benchmark, times, error, null);
+ if (this.benchmarkContent) {
+ this.benchmarkContentHolder.removeChild(this.benchmarkContent);
+ this.benchmarkContent = null;
+ }
+ return result;
+};
+
+BenchmarkSuite.prototype.generateTree = function(parent, width, depth) {
+ var id = parent.id;
+ if (depth !== 0) {
+ var middle = Math.floor(width / 2);
+ for (var i = 0; i < width; i++) {
+ if (i == middle) {
+ var divNode = document.createElement("div");
+ // TODO:[dave] this causes us to have potentially very long
+ // ids. We might want to encode these values into a smaller string
+ divNode.id = id + ':(' + i + ', 0)';
+ parent.appendChild(divNode);
+ this.generateTree(divNode, width, depth - 1);
+ } else {
+ var p = parent;
+ for (var j = 0; j < i; j++) {
+ var divNode = document.createElement("div");
+ divNode.id = id + ':(' + i + ',' + j + ')';
+ p.appendChild(divNode);
+ p = divNode;
+ }
+ var span = document.createElement("span");
+ span.appendChild(document.createTextNode(p.id));
+ p.appendChild(span);
+ }
+ }
+ }
+};
+
+// Generates a DOM tree (doesn't insert it into the document).
+// The width and depth arguments help shape the "bushiness" of the full tree.
+// The approach is to recursively generate a set of subtrees. At each root we
+// generate width trees, of increasing depth, from 1 to width. Then we recurse
+// from the middle child of this subtree. We do this up to depth times. reps
+// allows us to duplicate a set of trees, without additional recursions.
+BenchmarkSuite.prototype.generateDOMTree = function(width, depth, reps) {
+ var top = document.createElement("div");
+
+ top.id = "test";
+ for (var i = 0; i < reps; i++) {
+ var divNode = document.createElement("div");
+ divNode.id = "test" + i;
+ this.generateTree(divNode, width, depth);
+ top.appendChild(divNode);
+ }
+ return top;
+};
+
+// Generate a small sized tree.
+// 92 span leaves, max depth: 23, avg depth: 14
+BenchmarkSuite.prototype.generateSmallTree = function() {
+ return this.generateDOMTree(14, 12, 10);
+};
+
+// Generate a medium sized tree.
+// 1320 span leaves, max depth: 27, avg depth: 16
+BenchmarkSuite.prototype.generateMediumTree = function() {
+ return this.generateDOMTree(19, 13, 9);
+};
+
+// Generate a large sized tree.
+// 2600 span leaves, max depth: 55, avg depth: 30
+BenchmarkSuite.prototype.generateLargeTree = function() {
+ return this.generateDOMTree(26, 26, 4);
+};
+
+function runBenchmarkSuite(suite, runCount) {
+ PerfTestRunner.run(function () {
+ var container = document.getElementById('container');
+ var content = document.getElementById('benchmark_content');
+ suite.benchmarkContentHolder = container;
+ suite.benchmarkContentProto = content;
+ var totalMeanTime = 0;
+ for (var j = 0; j < suite.benchmarks.length; j++) {
+ var result = suite.RunSingle(suite.benchmarks[j], []);
+ if (result.error)
+ log(result.error);
+ else
+ totalMeanTime += result.mean;
+ }
+ return totalMeanTime;
+ }, 1, runCount || 20, function () {
+ var container = document.getElementById('container');
+ if (container.firstChild)
+ container.removeChild(container.firstChild);
+ });
+}
diff --git a/PerformanceTests/DOM/resources/dom-perf/accessors.js b/PerformanceTests/DOM/resources/dom-perf/accessors.js
new file mode 100644
index 000000000..43866119b
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/accessors.js
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// Accessors - measure access get/set properties on various objects.
+
+// Accessors are generally pretty quick. We loop on each accessor
+// many times in order to crank up the time of the microbenchmark
+// so that measurements are more substantial. Values were chosen
+// to make Firefox3 performance land in the 100-300ms range.
+var kBigCount = 1500000;
+var kLittleCount = 300000;
+var kTinyCount = 30000;
+var kVeryTinyCount = 5000;
+
+var Accessors = {};
+
+Accessors.WindowGet = function() {
+ var nLoops = kLittleCount;
+ for (var loop = 0; loop < nLoops; loop++)
+ window.length;
+}
+
+Accessors.WindowSet = function() {
+ var nLoops = kBigCount;
+ for (var loop = 0; loop < kLittleCount; loop++)
+ window.name = "title";
+}
+
+Accessors.RootGet = function() {
+ var nLoops = kLittleCount;
+ for (var loop = 0; loop < nLoops; loop++)
+ length;
+}
+
+Accessors.RootSet = function() {
+ var nLoops = kLittleCount;
+ for (var loop = 0; loop < nLoops; loop++)
+ title = "name";
+}
+
+Accessors.DocumentGet = function() {
+ var nLoops = kLittleCount;
+ for (var loop = 0; loop < nLoops; loop++)
+ document.nodeType;
+}
+
+Accessors.DocumentSet = function() {
+ var nLoops = kVeryTinyCount;
+ for (var loop = 0; loop < nLoops; loop++)
+ document.title = "name";
+}
+
+Accessors.DOMObjectSetup = function() {
+ var o1 = document.createElement("span");
+ var o2 = document.createElement("span");
+ o1.appendChild(o2);
+ this.suite.benchmarkContent.appendChild(o1);
+ return o1;
+}
+
+Accessors.DOMObjectGet = function(o1) {
+ var nLoops = kLittleCount;
+ for (var loop = 0; loop < nLoops; loop++)
+ o1.nodeType;
+}
+
+Accessors.DOMObjectSet = function(o1) {
+ var nLoops = kLittleCount;
+ var title = "title";
+ for (var loop = 0; loop < nLoops; loop++)
+ o1.title = title;
+}
+
+Accessors.ObjectGet = function(o1) {
+ var nLoops = kBigCount;
+ for (var loop = 0; loop < nLoops; loop++)
+ o1.nodeType;
+}
+
+Accessors.NodeListSetup = function() {
+ var o1 = document.createElement("span");
+ var o2 = document.createElement("span");
+ o1.appendChild(o2);
+ this.suite.benchmarkContent.appendChild(o1);
+ return o1.childNodes;
+}
+
+Accessors.NodeListGet = function(o1) {
+ var nLoops = kLittleCount;
+ for (var loop = 0; loop < nLoops; loop++)
+ o1.length;
+}
+
+Accessors.CSSSetup = function() {
+ var span = document.createElement("span");
+ span.appendChild(document.createTextNode("test"));
+ span.style.fontWeight = "bold";
+ this.suite.benchmarkContent.appendChild(span);
+ return span;
+}
+
+
+Accessors.CSSGet = function(span) {
+ var nLoops = kLittleCount;
+ for (var loop = 0; loop < nLoops; loop++)
+ span.style.fontWeight;
+}
+
+Accessors.CSSSet = function(span) {
+ var nLoops = kTinyCount;
+ for (var loop = 0; loop < nLoops; loop++)
+ span.style.fontWeight = "bold";
+}
+
+var AccessorsTest = new BenchmarkSuite('Accessors', [
+ new Benchmark("CSS Style Get", Accessors.CSSGet, Accessors.CSSSetup),
+ new Benchmark("CSS Style Set", Accessors.CSSSet, Accessors.CSSSetup),
+ new Benchmark("Document Get NodeType", Accessors.DocumentGet),
+ new Benchmark("Document Set Title", Accessors.DocumentSet),
+ new Benchmark("Nodelist Get Length", Accessors.NodeListGet, Accessors.NodeListSetup),
+ new Benchmark("Span Get NodeType", Accessors.DOMObjectGet, Accessors.DOMObjectSetup),
+ new Benchmark("Span Set Title", Accessors.DOMObjectSet, Accessors.DOMObjectSetup),
+ new Benchmark("Root Get Length", Accessors.RootGet),
+ new Benchmark("Root Set Title", Accessors.RootSet),
+ new Benchmark("Window Get Length", Accessors.WindowGet),
+ new Benchmark("Window Set Name", Accessors.WindowSet)
+]);
diff --git a/PerformanceTests/DOM/resources/dom-perf/clonenodes.js b/PerformanceTests/DOM/resources/dom-perf/clonenodes.js
new file mode 100644
index 000000000..3b54d0f86
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/clonenodes.js
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// Tests cloning and appending small and medium DOM trees.
+function CloneNodes(size, style) {
+ var me = this;
+ this.size = size;
+ this.style = style;
+
+ this.name = me.size + ', ' + me.style;
+
+ var nClones = 0;
+
+ this.Setup = function() {
+ // getDOMTree will initialize the global tree if necessary.
+ me.domTree = me.getDOMTree();
+ if (me.style == 'append')
+ me.domTree = me.domTree.cloneNode(true);
+ };
+
+ this.Test = function() {
+ var kIterations = 10;
+ if (me.style == 'clone') {
+ for (var iterations = 0; iterations < kIterations; iterations++)
+ me.domTree.cloneNode(true);
+ } else {
+ for (var iterations = 0; iterations < kIterations; iterations++)
+ this.suite.benchmarkContent.appendChild(me.domTree);
+ }
+ };
+
+ // Returns a tree of size me.size from the pool in the prototype, creating
+ // one if needed.
+ this.getDOMTree = function() {
+ var domTree = me.Trees[me.size];
+ if (!domTree) {
+ switch (this.size) {
+ case 'small':
+ domTree = BenchmarkSuite.prototype.generateSmallTree();
+ break;
+ case 'medium':
+ domTree = BenchmarkSuite.prototype.generateMediumTree();
+ break;
+ case 'large':
+ domTree = BenchmarkSuite.prototype.generateLargeTree();
+ break;
+ }
+ me.Trees[me.size] = domTree;
+ }
+ return domTree;
+ };
+
+ this.GetBenchmark = function() {
+ return new Benchmark(this.name, this.Test, this.Setup);
+ };
+};
+
+CloneNodes.prototype = {
+ Sizes: ['small', 'medium'],
+ Styles: ['clone', 'append'],
+ Trees: {}
+};
+
+// Generate a test for each size/style combination.
+var benchmarks = [];
+CloneNodes.prototype.Sizes.forEach(function(size) {
+ CloneNodes.prototype.Styles.forEach(function(style) {
+ benchmarks.push(new CloneNodes(size, style).GetBenchmark());
+ });
+});
+
+var CloneNodesTest = new BenchmarkSuite('CloneNodes', benchmarks);
diff --git a/PerformanceTests/DOM/resources/dom-perf/createnodes.js b/PerformanceTests/DOM/resources/dom-perf/createnodes.js
new file mode 100644
index 000000000..8c35bf74c
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/createnodes.js
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// CreateNodes
+// Test mechanisms for creating and inserting nodes into a DOM tree.
+//
+// There are many ways to add nodes into a DOM tree. This test exercises
+// use of:
+// - createElement()/appendChild()
+// - createDocumentFragment()
+// - innerHTML()
+// - spans
+
+function CreateNodes() {}
+
+CreateNodes.nIterations = 10000;
+CreateNodes.nIterationsSlow = 2000;
+CreateNodes.currentIterations = CreateNodes.nIterations;
+CreateNodes.nodeProto = null;
+
+CreateNodes.createNode = function() {
+ if (!CreateNodes.nodeProto) {
+ var html = this.getNodeHTML();
+ var span = document.createElement("span");
+ span.innerHTML = html;
+ CreateNodes.nodeProto = span.firstChild;
+ }
+ return CreateNodes.nodeProto;
+};
+
+CreateNodes.getNodeHTML = function() {
+ return "<div style=\"font-style:bold\">test</div>";
+};
+
+CreateNodes.appendNodesWithDOM = function(node) {
+ var nodes = CreateNodes.createNodesWithDOM(node);
+ for (var i = 0; i < CreateNodes.nIterations; i++)
+ this.suite.benchmarkContent.appendChild(nodes[i]);
+ CreateNodes.forceNode(this);
+};
+
+CreateNodes.justAppendNodesWithDOM = function(nodes) {
+ for (var i = 0; i < CreateNodes.nIterations; i++)
+ this.suite.benchmarkContent.appendChild(nodes[i]);
+};
+
+CreateNodes.createNodesWithHTML = function(html) {
+ var allHTML = "";
+ for (var i = 0; i < CreateNodes.currentIterations; i++)
+ allHTML += html;
+ return allHTML;
+};
+
+CreateNodes.checkNodes = function() {
+ var length = this.suite.benchmarkContent.childNodes.length;
+ var count = CreateNodes.currentIterations;
+ if (length != count)
+ throw "Should have " + count + " nodes, have: " + length;
+};
+
+// Ensures that the node has really been created and not just delayed
+CreateNodes.forceNode = function(benchmark) {
+ var child = benchmark.suite.benchmarkContent.childNodes[CreateNodes.nIterations / 2];
+};
+
+CreateNodes.appendNodesWithHTML = function(html) {
+ var allHTML = CreateNodes.createNodesWithHTML(html);
+ this.suite.benchmarkContent.innerHTML = allHTML;
+ CreateNodes.forceNode(this);
+};
+
+CreateNodes.createNodesWithDOM = function(node) {
+ var nodes = [];
+ for (var i = 0; i < CreateNodes.nIterations; i++)
+ nodes.push(node.cloneNode(true));
+ return nodes;
+};
+
+CreateNodes.createNodesWithDOMSetup = function() {
+ return createNodesWithDOM(createNode());
+};
+
+CreateNodes.createNodeSetup = function() {
+ CreateNodes.currentIterations = CreateNodes.nIterations;
+ return CreateNodes.createNode();
+};
+
+CreateNodes.createNodesWithHTMLUsingSpans = function(html) {
+ var spans = [];
+ for (var i = 0; i < CreateNodes.currentIterations; i++) {
+ var spanNode = document.createElement("span");
+ spanNode.innerHTML = html;
+ spans.push(spanNode);
+ }
+ return spans;
+};
+
+CreateNodes.appendNodesWithHTMLUsingSpans = function(html) {
+ var spans = CreateNodes.createNodesWithHTMLUsingSpans(html);
+ for (var i = 0; i < CreateNodes.currentIterations; i++)
+ this.suite.benchmarkContent.appendChild(spans[i]);
+ CreateNodes.forceNode(this);
+};
+
+CreateNodes.appendNodesWithHTMLUsingDocumentFragments = function(html) {
+ var fragments = CreateNodes.createNodesWithHTMLUsingDocumentFragments(html);
+ for (var i = 0; i < CreateNodes.nIterations; i++)
+ this.suite.benchmarkContent.appendChild(fragments[i]);
+ CreateNodes.forceNode(this);
+};
+
+CreateNodes.createNodesWithHTMLUsingDocumentFragments = function(html) {
+ var fragments = [];
+ for (var i = 0; i < CreateNodes.nIterations; i++) {
+ var fragment = document.createDocumentFragment();
+ fragment.innerHTML = html;
+ fragments.push(fragment);
+ }
+ return fragments;
+};
+
+CreateNodes.appendNodesWithDOMUsingDocumentFragment = function(node) {
+ var fragment = CreateNodes.createNodesWithDOMUsingDocumentFragment(node);
+ this.suite.benchmarkContent.appendChild(fragment);
+ CreateNodes.forceNode(this);
+};
+
+CreateNodes.appendNodesWithDOMUsingSharedDocumentFragment = function(fragment) {
+ this.suite.benchmarkContent.appendChild(fragment.cloneNode(true));
+ CreateNodes.forceNode(this);
+};
+
+CreateNodes.createNodesWithDOMUsingDocumentFragment = function(node) {
+ var nodes = CreateNodes.createNodesWithDOM(node);
+ var fragment = document.createDocumentFragment();
+ for (var i = 0; i < CreateNodes.nIterations; i++)
+ fragment.appendChild(nodes[i]);
+ return fragment;
+};
+
+CreateNodes.createSharedDocumentFragment = function() {
+ var nodes = CreateNodes.createNodesWithDOM(CreateNodes.createNode());
+ var fragment = document.createDocumentFragment();
+ for (var i = 0; i < CreateNodes.nIterations; i++)
+ fragment.appendChild(nodes[i]);
+ return fragment;
+};
+
+CreateNodes.createHTMLSetup = function() {
+ CreateNodes.currentIterations = CreateNodes.nIterationsSlow;
+ return CreateNodes.getNodeHTML();
+};
+
+CreateNodes.createIFramesHTML = function() {
+ var html = [];
+ for (var i = 0; i < 100; i++)
+ html.push("<iframe src='blank.html'></iframe>");
+ return html.join('');
+}
+
+CreateNodes.appendIFramesHTML = function(html) {
+ this.suite.benchmarkContent.innerHTML = html;
+}
+
+CreateNodes.createIFramesDOM = function() {
+ var nodes = [];
+ for (var i = 0; i < 100; i++) {
+ var iframe = document.createElement('iframe');
+ iframe.src = 'blank.html';
+ nodes.push(iframe);
+ }
+ return nodes;
+}
+
+CreateNodes.appendIFramesDOM = function(nodes) {
+ var content = this.suite.benchmarkContent;
+ for (var i = 0, l = nodes.length; i < l; i++)
+ content.appendChild(nodes[i]);
+}
+
+var CreateNodesTest = new BenchmarkSuite('CreateNodes', [
+ new Benchmark("append, DOM, DocumentFragment",
+ CreateNodes.appendNodesWithDOMUsingDocumentFragment, CreateNodes.createNodeSetup, CreateNodes.checkNodes),
+ new Benchmark("create, DOM, DocumentFragment",
+ CreateNodes.createNodesWithDOMUsingDocumentFragment, CreateNodes.createNodeSetup),
+ new Benchmark("append, DOM, SharedDocumentFragment",
+ CreateNodes.appendNodesWithDOMUsingSharedDocumentFragment, CreateNodes.createSharedDocumentFragment, CreateNodes.checkNodes),
+ new Benchmark("create, DOM",
+ CreateNodes.createNodesWithDOM, CreateNodes.createNodeSetup),
+ new Benchmark("append, DOM",
+ CreateNodes.appendNodesWithDOM, CreateNodes.createNodeSetup, CreateNodes.checkNodes),
+ new Benchmark("append, DOM, iFrame",
+ CreateNodes.appendIFramesDOM, CreateNodes.createIFramesDOM),
+ new Benchmark("append, HTML",
+ CreateNodes.appendNodesWithHTML, CreateNodes.createHTMLSetup, CreateNodes.checkNodes),
+ new Benchmark("create, HTML, Spans",
+ CreateNodes.createNodesWithHTMLUsingSpans, CreateNodes.createHTMLSetup),
+ new Benchmark("append, HTML, Spans",
+ CreateNodes.appendNodesWithHTMLUsingSpans, CreateNodes.createHTMLSetup, CreateNodes.checkNodes),
+ new Benchmark("append, HTML, iFrame",
+ CreateNodes.appendIFramesHTML, CreateNodes.createIFramesHTML)
+]);
diff --git a/PerformanceTests/DOM/resources/dom-perf/domdivwalk.js b/PerformanceTests/DOM/resources/dom-perf/domdivwalk.js
new file mode 100644
index 000000000..e31702374
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/domdivwalk.js
@@ -0,0 +1,175 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DOMDivWalk
+// Tests iteration of a DOM tree which is comprised of a hierarchical
+// set of div sections.
+//
+// Two mechanisms are used to iterate the DOM tree:
+// - recursive iteration via Node.children
+// - document.getElementsByTagName
+//
+// Various tree sizes are tested:
+// - small, medium, and large DOMs
+//
+// Because this test is run repeatedly on the same DOM tree, the first
+// iteration may cause creation of the JS DOM Objects, and subsequent
+// iterations will use the cached instance of that JS Object.
+//
+
+// These tests try walking over different DOM trees full of divs
+// First create a DDWalkTest, using the above values,
+// then call GetBenchmark()
+function DDWalkTest(size, appendStyle, traverseStyle) {
+ var me = this;
+ this.size = size;
+ this.appendStyle = appendStyle;
+ this.traverseStyle = traverseStyle;
+ this.nodesFound = 0;
+
+ this.name = (this.Sizes.length > 1 ? (me.size + ", ") : "") + me.appendStyle + ", " + me.traverseStyle;
+
+ this.setupDOM = function() {
+ var domTree = me.getDOMTree().cloneNode(true);
+ this.suite.benchmarkContent.appendChild(domTree);
+ me.nodesFound = 0;
+ return domTree;
+ };
+
+ this.setupHTML = function() {
+ this.suite.benchmarkContent.innerHTML = me.getDOMTree().innerHTML;
+ me.nodesFound = 0;
+ };
+
+ if (this.appendStyle == "DOM")
+ this.Setup = this.setupDOM;
+ else
+ this.Setup = this.setupHTML;
+
+ this.recurseChildNodes = function(handle) {
+ function walkSubtree(parent, depth) {
+ if (me.nodesFound == me.maxNodesFound)
+ return;
+ else {
+ if (parent.nodeName == "SPAN" && depth > 0)
+ me.nodesFound++;
+ var children = parent.childNodes;
+ var nChildren = children.length;
+ while (nChildren-- > 0) {
+ var child = children[nChildren];
+ walkSubtree(child, depth + 1);
+ }
+ }
+ }
+ walkSubtree(this.suite.benchmarkContent, 0);
+ };
+
+ this.recurseSiblings = function(handle) {
+ function walkSubtree(parent, depth) {
+ if (me.nodesFound == me.maxNodesFound)
+ return;
+ else {
+ if (parent.nodeName == "SPAN" && depth > 0)
+ me.nodesFound++;
+ for (var child = parent.firstChild; child !== null; child = child.nextSibling)
+ walkSubtree(child, depth + 1);
+ }
+ }
+ walkSubtree(this.suite.benchmarkContent, 0);
+ };
+
+ this.getElements = function(handle) {
+ var kIterations = 10;
+
+ for (var iterations = 0; iterations < kIterations; iterations++) {
+ me.nodesFound = 0;
+ var items = this.suite.benchmarkContent.getElementsByTagName("span");
+ for (var index = 0, length = items.length; index < length; ++index) {
+ var item = items[index];
+ var nodeName = item.nodeName;
+ ++me.nodesFound;
+ if (me.nodesFound == me.maxNodesFound)
+ return;
+ }
+ }
+ };
+
+ this.Test = this[this.traverseStyle];
+
+ this.Cleanup = function(handle) {
+ var expectedCount = me.ExpectedCounts[me.size];
+ if (me.nodesFound != expectedCount)
+ throw "Wrong number of nodes found: " + me.nodesFound + " expected: " + expectedCount;
+ };
+
+ this.GetBenchmark = function() {
+ return new Benchmark(this.name, this.Test, this.Setup, this.Cleanup);
+ };
+
+ this.getDOMTree = function() {
+ var domTree = me.Trees[me.size];
+ if (!domTree) {
+ switch (me.size) {
+ case "small" : domTree = BenchmarkSuite.prototype.generateSmallTree(); break;
+ case "medium" : domTree = BenchmarkSuite.prototype.generateMediumTree(); break;
+ case "large" : domTree = BenchmarkSuite.prototype.generateLargeTree(); break;
+ }
+ me.Trees[me.size] = domTree;
+ }
+ return domTree;
+ };
+}
+
+DDWalkTest.prototype = {
+ // Different sizes are possible, but we try to keep the runtime and memory
+ // consumption reasonable.
+ Sizes: ["medium"],
+ Trees: {},
+ AppendStyles: ["DOM", "HTML"],
+ TraverseStyles: ["recurseChildNodes", "recurseSiblings", "getElements"],
+ ExpectedCounts : {"small" : 90, "medium": 2106, "large" : 2000},
+
+ // Limits the number of nodes to this number
+ // If we don't do this the tests can take too long to run
+ maxNodesFound : 10000
+};
+
+
+// Generate the matrix of all benchmarks
+var benchmarks = [];
+DDWalkTest.prototype.Sizes.forEach(function(size) {
+ DDWalkTest.prototype.AppendStyles.forEach(function(appendStyle) {
+ DDWalkTest.prototype.TraverseStyles.forEach(function(traverseStyle) {
+ benchmarks.push(new DDWalkTest(size, appendStyle, traverseStyle).GetBenchmark());
+ });
+ });
+});
+
+var DOMDivWalkTest = new BenchmarkSuite("DOMDivWalk", benchmarks);
diff --git a/PerformanceTests/DOM/resources/dom-perf/domtable.js b/PerformanceTests/DOM/resources/dom-perf/domtable.js
new file mode 100644
index 000000000..c2e629b1d
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/domtable.js
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DOMTable - a benchmark creating tables and accessing table elements
+//
+// This benchmark tests different mechanisms for creating an HTML table. By
+// either creating the DOM elements individually or by creating an inner HTML
+// as a string. The effect of forcing a layout is also measured.
+// A second part of the benchmark sums the contents of all elements. Again
+// in one set the benchmark is created using DOM functions from JavaScript,
+// causing all nodes to be prewrapped, while in a second set the table is
+// created using inner HTML which will wrap the elements at access.
+
+// Size of the created tables.
+var DOMTable_maxRows = 100;
+var DOMTable_maxCols = 40;
+
+// Helper variable to create consistent values for the table elements.
+var DOMTable_element_count = 0;
+
+// Functions needed to create a table by creating individual DOM elements.
+function DOMTable_CreateCell(row_id, col_id) {
+ var cell = document.createElement("td");
+ cell.id = "$" + row_id + "$" + col_id;
+ cell.textContent = DOMTable_element_count++;
+ return cell;
+}
+
+function DOMTable_CreateRow(row_id, cols) {
+ var row = document.createElement("tr");
+ for (var i = 0; i < cols; i++)
+ row.appendChild(DOMTable_CreateCell(row_id, i));
+ return row;
+}
+
+function DOMTable_CreateTable(rows, cols) {
+ var table = document.createElement("table");
+ for (var i = 0; i < rows; i++)
+ table.appendChild(DOMTable_CreateRow(i, cols));
+ return table;
+}
+
+// Functions needed to create a table by creating a big piece of HTML in a
+// single string.
+function DOMTable_CreateCellIH(row_id, col_id) {
+ return '<td id="$' + row_id + '$' + col_id + '">' + DOMTable_element_count++ + '</td>';
+}
+
+function DOMTable_CreateRowIH(row_id, cols) {
+ var html_string = '<tr>';
+ for (var i = 0; i < cols; i++)
+ html_string += DOMTable_CreateCellIH(row_id, i);
+ return html_string + '</tr>';
+}
+
+function DOMTable_CreateTableIH(rows, cols) {
+ var html_string = '<table>';
+ for (var i = 0; i < rows; i++)
+ html_string += DOMTable_CreateRowIH(i, cols);
+ return html_string + '</table>';
+}
+
+
+// Shared setup function for all table creation tests.
+function DOMTable_CreateSetup() {
+ DOMTable_element_count = 0;
+ return document.getElementById("benchmark_content");
+}
+
+function DOMTable_Create(root_element) {
+ // Create the table and add it to the root_element for the benchmark.
+ root_element.appendChild(DOMTable_CreateTable(DOMTable_maxRows, DOMTable_maxCols));
+ return root_element;
+}
+
+function DOMTable_CreateLayout(root_element) {
+ // Create the table and add it to the root_element for the benchmark.
+ root_element.appendChild(DOMTable_CreateTable(DOMTable_maxRows, DOMTable_maxCols));
+ // Force a layout by requesting the height of the table. The result is
+ // going to be ignored because there is not cleanup function registered.
+ return root_element.scrollHeight;
+}
+
+function DOMTable_InnerHTML(root_element) {
+ // Create the HTML string for the table and set it at the root_element for the benchmark.
+ root_element.innerHTML = DOMTable_CreateTableIH(DOMTable_maxRows, DOMTable_maxCols);
+ return root_element;
+}
+
+function DOMTable_InnerHTMLLayout(root_element) {
+ // Create the HTML string for the table and set it at the root_element for the benchmark.
+ root_element.innerHTML = DOMTable_CreateTableIH(DOMTable_maxRows, DOMTable_maxCols);
+ // Force a layout by requesting the height of the table. The result is
+ // going to be ignored because there is not cleanup function registered.
+ return root_element.scrollHeight;
+}
+
+function DOMTableSum_Setup() {
+ // Create the table to be summed using DOM operations from JavaScript. By
+ // doing it this way the elements are all pre-wrapped.
+ DOMTable_element_count = 0;
+ var root_element = document.getElementById("benchmark_content");
+ var table = DOMTable_CreateTable(DOMTable_maxRows, DOMTable_maxCols*5);
+ root_element.appendChild(table);
+ return root_element;
+}
+
+function DOMTableSum_SetupIH() {
+ // Create the table to be summed using InnerHTML. By doing it this way the
+ // elements need to be wrapped on access.
+ DOMTable_element_count = 0;
+ var root_element = document.getElementById("benchmark_content");
+ var table = DOMTable_CreateTableIH(DOMTable_maxRows, DOMTable_maxCols*5);
+ root_element.innerHTML = table;
+ return root_element;
+}
+
+function DOMTableSum_ById(ignore) {
+ // Sum all elements in the table by finding each element by its id.
+ var sum = 0;
+ var maxRows = DOMTable_maxRows;
+ var maxCols = DOMTable_maxCols*5;
+ for (var r = 0; r < maxRows; r++) {
+ for (var c = 0; c < maxCols; c++) {
+ var cell = document.getElementById("$"+r+"$"+c);
+ sum += (+cell.textContent);
+ }
+ }
+ return sum;
+}
+
+function DOMTableSum_ByTagName(root_element) {
+ // Sum all elements in the table by getting a NodeList of all "td" elements.
+ var sum = 0;
+ var nodes = root_element.getElementsByTagName("td");
+ var length = nodes.length;
+ for (var i = 0; i < length; i++) {
+ var cell = nodes[i];
+ sum += (+cell.textContent);
+ }
+ return sum;
+}
+
+var DOMTableTest = new BenchmarkSuite('DOMTable', [
+ new Benchmark("create", DOMTable_Create, DOMTable_CreateSetup),
+ new Benchmark("create and layout", DOMTable_CreateLayout, DOMTable_CreateSetup),
+ new Benchmark("create with innerHTML", DOMTable_InnerHTML, DOMTable_CreateSetup),
+ new Benchmark("create and layout with innerHTML", DOMTable_InnerHTMLLayout, DOMTable_CreateSetup),
+ new Benchmark("sum elements by id", DOMTableSum_ById, DOMTableSum_Setup),
+ new Benchmark("sum elements by id with innerHTML", DOMTableSum_ById, DOMTableSum_SetupIH),
+ new Benchmark("sum elements by tagname", DOMTableSum_ByTagName, DOMTableSum_Setup),
+ new Benchmark("sum elements by tagname with innerHTML", DOMTableSum_ByTagName, DOMTableSum_SetupIH)
+]);
+
diff --git a/PerformanceTests/DOM/resources/dom-perf/domwalk.js b/PerformanceTests/DOM/resources/dom-perf/domwalk.js
new file mode 100644
index 000000000..4f23d43be
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/domwalk.js
@@ -0,0 +1,153 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DOMWalk - a benchmark for walking the DOM
+//
+// This benchmark tests different mechanisms for touching every element
+// in a section of the DOM. The elements are created from JavaScript causing
+// them to be pre-wrapped.
+//
+// Tests small iterations and large iterations to see if there is a difference.
+
+
+// We use two mechanisms to walk the DOM, and then
+// verify that both yield the same result.
+var __num_nodes = 0;
+
+// We create a table to iterate as part of this test.
+// For now it's just a big table with lots of elements.
+function DOMWalk_CreateTable(height, width) {
+ var table = document.getElementById("fake_dom");
+ if (table) {
+ // clear out existing table
+ while (table.rows.length > 0)
+ table.deleteRow(0);
+ } else {
+ var doc = document;
+ table = doc.createElement("table");
+ table.id = "fake_dom";
+ table.border = 1;
+
+ for (var row = 0; row < height; row++) {
+ var row_object = doc.createElement("tr");
+ for (var column = 0; column < width; column++) {
+ var col_object = doc.createElement("td");
+ var text = document.createTextNode(row.toString() + "." + column.toString());
+ col_object.appendChild(text);
+ row_object.appendChild(col_object);
+ }
+ table.appendChild(row_object);
+ }
+ var content = document.getElementById("benchmark_content");
+ content.appendChild(table);
+ var html = content.innerHTML;
+ var width = content.clientWidth;
+ }
+ return table;
+}
+
+function DOMWalk_SetupSmall() {
+ // Creates a table with 100 nodes.
+ DOMWalk_CreateTable(10, 10);
+}
+
+function DOMWalk_SetupLarge() {
+ // Creates a table with 4000 nodes.
+ DOMWalk_CreateTable(200, 200);
+}
+
+// Walks the DOM via getElementsByTagName.
+function DOMWalk_ByTagName(table) {
+ var items = table.getElementsByTagName("*");
+ var item;
+ var length = items.length;
+ for (var index = 0; index < length; index++)
+ item = items[index];
+
+ // Return the number of nodes seen.
+ return items.length;
+}
+
+function DOMWalk_ByTagNameDriver(loops) {
+ var table = document.getElementById("benchmark_content");
+ for (var loop = 0; loop < loops; loop++)
+ __num_nodes = DOMWalk_ByTagName(table);
+}
+
+function DOMWalk_ByTagNameSmall() {
+ // This test runs in a short time. We loop a few times in order to avoid small time measurements.
+ DOMWalk_ByTagNameDriver(1000);
+}
+
+function DOMWalk_ByTagNameLarge() {
+ DOMWalk_ByTagNameDriver(1);
+}
+
+function DOMWalk_Recursive(node) {
+ // Count Element Nodes only.
+ // IE does not define the Node constants.
+ var count = (node.nodeType == /* Node.ELEMENT_NODE */ 1) ? 1 : 0;
+
+ var child = node.firstChild;
+ while (child !== null) {
+ count += DOMWalk_Recursive(child);
+ child = child.nextSibling;
+ }
+
+ return count;
+}
+
+// Walks the DOM via a recursive walk
+function DOMWalk_RecursiveDriver(loops) {
+ var table = document.getElementById("benchmark_content");
+ for (var loop = 0; loop < loops; loop++) {
+ var count = DOMWalk_Recursive(table) - 1; // don't count the root node.
+ if (count != __num_nodes || count === 0)
+ throw "DOMWalk failed! Expected " + __num_nodes + " nodes but found " + count + ".";
+ }
+}
+
+function DOMWalk_RecursiveSmall() {
+ // This test runs in a short time. We loop a few times in order to avoid small time measurements.
+ DOMWalk_RecursiveDriver(200);
+}
+
+function DOMWalk_RecursiveLarge() {
+ // Only iterate once over the large DOM structures.
+ DOMWalk_RecursiveDriver(1);
+}
+
+
+var DOMWalkTest = new BenchmarkSuite('DOMWalk', [
+ new Benchmark("DOMWalkByTag (100 nodes)", DOMWalk_ByTagNameSmall, DOMWalk_SetupSmall),
+ new Benchmark("DOMWalkRecursive (100 nodes)", DOMWalk_RecursiveSmall, DOMWalk_SetupSmall),
+ new Benchmark("DOMWalkByTag (4000 nodes)", DOMWalk_ByTagNameLarge, DOMWalk_SetupLarge),
+ new Benchmark("DOMWalkRecursive (4000 nodes)", DOMWalk_RecursiveLarge, DOMWalk_SetupLarge)
+]);
diff --git a/PerformanceTests/DOM/resources/dom-perf/events.js b/PerformanceTests/DOM/resources/dom-perf/events.js
new file mode 100644
index 000000000..088648928
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/events.js
@@ -0,0 +1,274 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// Events test - test the hooking and dispatch of events.
+//
+// This is a fairly simple test for measuring event peformance.
+// We create a DOM structure (a set of nested divs) to test with.
+//
+// The Hooking test measures the time to register onclick handlers for
+// each node in the structure. This simulates conditions where applications
+// register event handlers on many nodes programatically.
+//
+// The Dispatch test measures the time to dispatch events to each node
+// in the structure. In this case, we register the event handler as part
+// of the HTML for the structure, and then simply simulate onclick events
+// to each node.
+//
+// Works in IE, FF, Safari, and Chrome.
+
+var Events_counter = 0;
+function EventClickHandler() {
+ Events_counter++;
+}
+
+function EventsTest(rows, cols) {
+ var me = this;
+ this.rows = rows;
+ this.cols = cols;
+ this.cell_count = 0; // Track the number of cells created in our dom tree.
+ this.proxies = [];
+ this.random_ids = [];
+
+ // Create a DOM structure and optionally register event handlers on each node.
+ // Create the structure by setting innerHTML so that the DOM nodes are not
+ // pre-wrapped for JS access.
+ this.CreateTable = function(add_event_listeners) {
+ var html_string = '<div>';
+ for (var i = 0; i < me.rows; i++)
+ html_string += me.CreateRow(i, me.cols, add_event_listeners);
+ return html_string + '</div>';
+ };
+
+ // Returns an html string for a div with a row/column based id, with an optional onclick handler.
+ this.CreateCell = function(row_id, col_id, add_event_listeners) {
+ var str = '<div id="r' + row_id + 'c' + col_id + '"';
+ if (add_event_listeners)
+ str += ' onclick="EventClickHandler();"';
+ str += '>'+ me.cell_count++ + '</div>';
+ return str;
+ };
+
+ // Returns an html string with an outer div containing |cols| inner divs,
+ // optionally having an onclick handler.
+ this.CreateRow = function(row_id, cols, add_event_listeners) {
+ var html_string = '<div id="r' + row_id + '">';
+ for (var i = 0; i < cols; i++)
+ html_string += me.CreateCell(row_id, i, add_event_listeners);
+ return html_string + '</div>';
+ };
+
+ // Prepares for testing with elements that have no pre-defined onclick
+ // handlers.
+ this.Setup = function() {
+ me.cell_count = 0;
+ Events_counter = 0;
+ var root_element = document.getElementById("benchmark_content");
+ root_element.innerHTML = me.CreateTable(false);
+ return root_element;
+ };
+
+ // Similar to Setup, but with onclick handlers already defined in the html.
+ this.SetupWithListeners = function() {
+ me.cell_count = 0;
+ Events_counter = 0;
+ var root_element = document.getElementById("benchmark_content");
+ root_element.innerHTML = me.CreateTable(true);
+ return root_element;
+ };
+
+ // Sets up for testing performance of removing event handlers.
+ this.SetupForTeardown = function() {
+ me.random_ids = [];
+ me.SetupWithListeners();
+ var tmp = [];
+ for (var row = 0; row < me.rows; row++) {
+ for (var col = 0; col < me.cols; col++)
+ tmp.push("r" + row + "c" + col);
+ }
+ while (tmp.length > 0) {
+ var index = Math.floor(Math.random() * tmp.length);
+ me.random_ids.push(tmp.splice(index, 1));
+ }
+ };
+
+ // Tests the time it takes to go through and hook all elements in our dom.
+ this.HookTest = function() {
+ var node_count = 0;
+
+ var row_id = 0;
+ while(true) {
+ var row = document.getElementById('r' + row_id);
+ if (row == undefined)
+ break;
+
+ var col_id = 0;
+ while(true) {
+ var col = document.getElementById('r' + row_id + 'c' + col_id);
+ if (col == undefined)
+ break;
+
+ if (col.addEventListener)
+ col.addEventListener("click", EventClickHandler, false);
+ else if (col.attachEvent)
+ col.attachEvent("onclick", EventClickHandler); // To support IE
+ else
+ throw "FAILED TO ATTACH EVENTS";
+ col_id++;
+ node_count++;
+ }
+
+ row_id++;
+ }
+
+ if (node_count != me.rows * me.cols)
+ throw "ERROR - did not iterate all nodes";
+ };
+
+ // Tests the time it takes to go through and hook all elements in our dom.
+ // Creates new proxy object for each registration
+ this.HookTestProxy = function() {
+ var node_count = 0;
+
+ var row_id = 0;
+ while(true) {
+ var row = document.getElementById('r' + row_id);
+ if (row == undefined)
+ break;
+
+ var col_id = 0;
+ while(true) {
+ var col = document.getElementById('r' + row_id + 'c' + col_id);
+ if (col == undefined)
+ break;
+
+ var proxy = function() {};
+ proxy.col = col;
+ me.proxies.push(proxy);
+ if (col.addEventListener)
+ col.addEventListener("click", proxy, false);
+ else if (col.attachEvent)
+ col.attachEvent("onclick", proxy); // To support IE
+ else
+ throw "FAILED TO ATTACH EVENTS";
+ col_id++;
+ node_count++;
+ }
+
+ row_id++;
+ }
+
+ if (node_count != me.rows * me.cols)
+ throw "ERROR - did not iterate all nodes";
+ };
+
+ // Tests firing the events for each element in our dom.
+ this.DispatchTest = function() {
+ var node_count = 0;
+
+ var row_id = 0;
+ while(true) {
+ var row = document.getElementById('r' + row_id);
+ if (row == undefined)
+ break;
+
+ var col_id = 0;
+ while(true) {
+ var col = document.getElementById('r' + row_id + 'c' + col_id);
+ if (col == undefined)
+ break;
+
+ if (document.createEvent) {
+ var event = document.createEvent("MouseEvents");
+ event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
+ col.dispatchEvent(event);
+ } else if (col.fireEvent) {
+ var event = document.createEventObject();
+ col.fireEvent("onclick", event);
+ } else
+ throw "FAILED TO FIRE EVENTS";
+
+ col_id++;
+ node_count++;
+ }
+
+ row_id++;
+ }
+
+ if (Events_counter != me.rows * me.cols)
+ throw "ERROR - did not fire events on all nodes!" + Events_counter;
+ };
+
+ // Tests removing event handlers.
+ this.TeardownTest = function() {
+ var node_count = 0;
+ for (var i = 0; i < me.random_ids.length; i++) {
+ var col = document.getElementById(me.random_ids[i]);
+ if (col.removeEventListener)
+ col.removeEventListener("click", EventClickHandler, false);
+ else if (col.detachEvent)
+ col.detachEvent("onclick", EventClickHandler);
+ else
+ throw "FAILED TO FIRE EVENTS";
+ node_count++;
+ }
+
+ if (node_count != me.rows * me.cols)
+ throw "ERROR - did not remove listeners from all nodes! " + node_count;
+ };
+
+ // Removes event handlers and their associated proxy objects.
+ this.ProxyCleanup = function() {
+ for (var i = 0, n = me.proxies.length; i < n; i++) {
+ var proxy = me.proxies[i];
+ var col = proxy.col;
+ if (col.removeEventListener)
+ col.removeEventListener("click", proxy, false);
+ else if (col.detachEvent)
+ col.detachEvent("onclick", proxy); // To support IE
+ }
+ me.proxies = [];
+ };
+}
+
+var small_test = new EventsTest(100, 10);
+var large_test = new EventsTest(100, 50);
+var extra_large_test = new EventsTest(200, 20);
+
+var EventTest = new BenchmarkSuite('Events', [
+ new Benchmark("Event Hooking (1000 nodes)", small_test.HookTest, small_test.Setup),
+ new Benchmark("Event Dispatch (1000 nodes)", small_test.DispatchTest, small_test.SetupWithListeners),
+ new Benchmark("Event Hooking (5000 nodes)", large_test.HookTest, large_test.Setup),
+ new Benchmark("Event Hooking Proxy (4000 nodes)",
+ extra_large_test.HookTestProxy, extra_large_test.Setup, extra_large_test.ProxyCleanup),
+ new Benchmark("Event Dispatch (5000 nodes)", large_test.DispatchTest, large_test.SetupWithListeners),
+ new Benchmark("Event Teardown (5000 nodes)", large_test.TeardownTest, large_test.SetupForTeardown),
+ new Benchmark("Event Teardown (4000 nodes)", extra_large_test.TeardownTest, extra_large_test.SetupForTeardown)
+]);
diff --git a/PerformanceTests/DOM/resources/dom-perf/getelement.js b/PerformanceTests/DOM/resources/dom-perf/getelement.js
new file mode 100644
index 000000000..3a12cd8af
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/getelement.js
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// Tests looking for ids in different DOM trees full of div elements.
+function GetElementTest(size, appendStyle, treeStyle) {
+ var me = this;
+ this.size = size;
+ this.appendStyle = appendStyle;
+ this.ids = null;
+ this.treeStyle = treeStyle;
+ this.name = (this.Sizes.length > 1 ? (me.size + ", ") : "") + me.appendStyle + ", " + me.treeStyle;
+
+ this.setupDOM = function() {
+ var domTree = me.getDOMTree().cloneNode(true);
+ this.suite.benchmarkContent.appendChild(domTree);
+ me.nodesFound = 0;
+ me.ids = me.getIds();
+ return domTree;
+ };
+
+ this.setupHTML = function() {
+ this.suite.benchmarkContent.innerHTML = me.getDOMTree().innerHTML;
+ me.nodesFound = 0;
+ me.ids = me.getIds();
+ };
+
+ if (this.appendStyle == "DOM")
+ this.Setup = this.setupDOM;
+ else
+ this.Setup = this.setupHTML;
+
+ this.Test = function(handle) {
+ var kIterations = 1;
+ for (var iterations = 0; iterations < kIterations; iterations++) {
+ me.nodesFound = 0;
+ for (var i = 0, len = me.ids.length; i < len; i++) {
+ var div = document.getElementById(me.ids[i]);
+ var nodeName = div.nodeName;
+ me.nodesFound++;
+ }
+ }
+ };
+
+ this.Cleanup = function(handle) {
+ var expectedCount = me.ids.length;
+ if (me.nodesFound != expectedCount)
+ throw "Wrong number of nodes found: " + me.nodesFound + " expected: " + expectedCount;
+ };
+
+ this.GetBenchmark = function() {
+ return new Benchmark(this.name, this.Test, this.Setup, this.Cleanup);
+ };
+
+ this.getIdsFromTree = function(parent, maxNumberOfNodes) {
+ var allDivs = parent.getElementsByTagName("div");
+ var len = allDivs.length;
+ var skip;
+ if (maxNumberOfNodes >= allDivs.length)
+ skip = 0;
+ else
+ skip = Math.floor(allDivs.length / maxNumberOfNodes) - 1;
+ var ids = [];
+ var l = 0;
+ for (var i = 0, len = allDivs.length; i < len && l < maxNumberOfNodes; i += (skip + 1)) {
+ var div = allDivs[i];
+ ids.push(div.id);
+ l++;
+ }
+ return ids;
+ };
+
+ this.createTreeAndIds = function() {
+ var maxNumberOfNodes = 20000;
+ var domTree;
+
+ if (me.treeStyle == "dups") {
+ // We use four of the trees for the dups style,
+ // so they get too big if you use the full size for the bigger trees
+ switch (me.size) {
+ case "small":
+ domTree = BenchmarkSuite.prototype.generateSmallTree();
+ break;
+ case "medium":
+ domTree = BenchmarkSuite.prototype.generateDOMTree(15, 12, 4);
+ break;
+ case "large":
+ domTree = BenchmarkSuite.prototype.generateDOMTree(26, 26, 1);
+ break;
+ }
+ } else {
+ switch (me.size) {
+ case "small":
+ domTree = BenchmarkSuite.prototype.generateSmallTree();
+ break;
+ case "medium":
+ domTree = BenchmarkSuite.prototype.generateMediumTree();
+ break;
+ case "large":
+ domTree = BenchmarkSuite.prototype.generateLargeTree();
+ break;
+ }
+ }
+
+ var allDivs = domTree.getElementsByTagName("*");
+ var len = allDivs.length;
+ var modBy;
+ if (maxNumberOfNodes >= allDivs.length)
+ modBy = 1;
+ else
+ modBy = Math.floor(allDivs.length / maxNumberOfNodes);
+ var ids = [];
+ for (var i = 0, len = allDivs.length; i < len; i++) {
+ var mod = i % modBy;
+ var div = allDivs[i];
+ if (mod == 0 && ids.length < maxNumberOfNodes) {
+ if (div.id && div.id != "")
+ ids.push(div.id);
+ } else if (me.treeStyle == "sparse")
+ div.id = null;
+ }
+
+ if (me.treeStyle == "dups") {
+ var newRoot = document.createElement("div");
+ for (var i = 0; i < 5; i++)
+ newRoot.appendChild(domTree.cloneNode(true));
+ domTree = newRoot;
+ }
+
+ var treeAndIds = {
+ tree: domTree,
+ ids: ids
+ };
+ return treeAndIds;
+ };
+
+ this.getTreeAndIds = function() {
+ var treeAndIdsMap = me.TreeAndIds[me.size];
+ if (!treeAndIdsMap) {
+ treeAndIdsMap = {};
+ me.TreeAndIds[me.size] = treeAndIdsMap;
+ }
+ var treeAndIds = treeAndIdsMap[me.treeStyle];
+ if (!treeAndIds) {
+ treeAndIds = me.createTreeAndIds();
+ treeAndIdsMap[me.treeStyle] = treeAndIds;
+ }
+ return treeAndIds;
+ };
+
+ this.getDOMTree = function() {
+ var treeAndIds = me.getTreeAndIds();
+ return treeAndIds.tree;
+ };
+
+ this.getIds = function() {
+ var treeAndIds = me.getTreeAndIds();
+ return treeAndIds.ids;
+ };
+}
+
+GetElementTest.prototype = {
+ // Different sizes are possible, but we try to keep the runtime and memory
+ // consumption reasonable.
+ Sizes: ["medium"],
+ TreeStyles: ["sparse", "dense", "dups"],
+ TreeAndIds: {},
+ AppendStyles: ["DOM", "HTML"]
+};
+
+// Generate the matrix of all benchmarks
+var benchmarks = [];
+GetElementTest.prototype.Sizes.forEach(function(size) {
+ GetElementTest.prototype.AppendStyles.forEach(function(appendStyle) {
+ GetElementTest.prototype.TreeStyles.forEach(function(treeStyle) {
+ benchmarks.push(new GetElementTest(size, appendStyle, treeStyle).GetBenchmark());
+ });
+ });
+});
+
+var GetElementTest = new BenchmarkSuite("Get Elements", benchmarks);
diff --git a/PerformanceTests/DOM/resources/dom-perf/gridsort.js b/PerformanceTests/DOM/resources/dom-perf/gridsort.js
new file mode 100644
index 000000000..b7010de24
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/gridsort.js
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// GridSort
+//
+// This test is designed to test the performance of sorting a grid of nodes
+// such as what you might use in a spreadsheet application.
+
+// returns an array of integers from 0 to totalCells
+function generateValuesArray(totalCells) {
+ var values = [];
+ for (var i = 0; i < totalCells; i++)
+ values[i] = i;
+ return values;
+}
+
+// creates value text nodes in a table using DOM methods
+function populateTableUsingDom(tableId, width, height) {
+ var table = document.getElementById(tableId);
+ var values = generateValuesArray(width * height);
+
+ for (var i = 0; i < height; i++) {
+ var row = table.insertRow(i);
+ for (var j = 0; j < width; j++) {
+ var cell = row.insertCell(j);
+ var valueIndex = Math.floor(Math.random() * values.length);
+ var value = values.splice(valueIndex, 1);
+ cell.appendChild(document.createTextNode(value));
+ }
+ }
+}
+
+// returns HTML string for rows/columns of table data
+function getTableContentHTML(width, height) {
+ var values = generateValuesArray(width * height);
+
+ var html = []; // fragments we will join together at the end
+ var htmlIndex = 0;
+
+ for (var i = 0; i < height; i++) {
+ html.push("<tr>");
+ for (var j = 0; j < width; j++) {
+ html.push("<td>");
+ var valueIndex = Math.floor(Math.random() * values.length);
+ var value = values.splice(valueIndex, 1);
+ html.push(value);
+ html.push("</td>");
+ }
+ html.push("</tr>");
+ }
+ return html.join("");
+}
+
+// When sorting a table by a column, we create one of these for each
+// cell in the column, and it keeps pointers to all the nodes in that
+// row. This way we can sort an array of SortHelper objects, and then
+// use the sibling node pointers to move all values in a row to their
+// proper place according to the new sort order.
+function SortHelper(row, index) {
+ this.nodes = [];
+ var numCells = row.cells.length;
+ for (var i = 0; i < numCells; i++)
+ this.nodes[i] = row.cells[i].firstChild;
+ this.originalIndex = index;
+}
+
+function compare(a, b) {
+ return a - b;
+}
+
+// sorts all rows of the table on a given column
+function sortTableOnColumn(table, columnIndex) {
+ var numRows = table.rows.length;
+ var sortHelpers = [];
+ for (var i = 0; i < numRows; i++)
+ sortHelpers.push(new SortHelper(table.rows[i], i));
+
+ // sort by nodeValue with original position breaking ties
+ sortHelpers.sort(function(a, b) {
+ var cmp = compare(Number(a.nodes[columnIndex].nodeValue), Number(b.nodes[columnIndex].nodeValue));
+ if (cmp === 0)
+ return compare(a.originalIndex, b.originalIndex);
+ return cmp;
+ });
+
+ // now place all cells in their new position
+ var numSortHelpers = sortHelpers.length;
+ for (var i = 0; i < numSortHelpers; i++) {
+ var helper = sortHelpers[i];
+ if (i == helper.originalIndex)
+ continue; // no need to move this row
+ var columnCount = table.rows[i].cells.length;
+ for (var j = 0; j < columnCount; j++) {
+ var cell = table.rows[i].cells[j];
+ if (cell.firstChild) {
+ // a SortHelper will still have a reference to this node, so it
+ // won't get orphaned/garbage collected
+ cell.removeChild(cell.firstChild);
+ }
+ cell.appendChild(helper.nodes[j]);
+ }
+ }
+}
+
+function clearExistingTable() {
+ var table = document.getElementById("gridsort_table");
+ if (table) {
+ // clear out existing table
+ table.parentNode.removeChild(table);
+ }
+}
+
+function createTableUsingDom() {
+ clearExistingTable();
+ var table = document.createElement("table");
+ table.id = "gridsort_table";
+ table.border = 1;
+ document.getElementById("benchmark_content").appendChild(table);
+ populateTableUsingDom("gridsort_table", 60, 60);
+}
+
+function createTableUsingInnerHtml() {
+ clearExistingTable();
+ var tableContent = getTableContentHTML(60, 60);
+ var html = "<table id='gridsort_table' border='1'>" + tableContent + "</table>";
+ document.getElementById("benchmark_content").innerHTML = html;
+}
+
+function sortTable() {
+ var table = document.getElementById("gridsort_table");
+ // TODO - it might be interesting to sort several (or all)
+ // columns in succession, but for now that's fairly slow
+ sortTableOnColumn(table, 0);
+}
+
+var GridSortTest = new BenchmarkSuite('GridSort', [
+ new Benchmark("SortDomTable (60x60)", sortTable, createTableUsingDom, null, false),
+ new Benchmark("SortInnerHtmlTable (60x60)", sortTable, createTableUsingInnerHtml, null, false)
+]);
diff --git a/PerformanceTests/DOM/resources/dom-perf/suites.js b/PerformanceTests/DOM/resources/dom-perf/suites.js
new file mode 100644
index 000000000..eaba53cf9
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/suites.js
@@ -0,0 +1,12 @@
+var suiteFiles = [
+ "dom/accessors.js",
+ "dom/createnodes.js",
+ "dom/domtable.js",
+ "dom/domwalk.js",
+ "dom/domdivwalk.js",
+ "dom/clonenodes.js",
+ "dom/getelement.js",
+ "dom/events.js",
+ "dom/gridsort.js",
+ "dom/template.js"
+];
diff --git a/PerformanceTests/DOM/resources/dom-perf/template.js b/PerformanceTests/DOM/resources/dom-perf/template.js
new file mode 100644
index 000000000..db9930a7b
--- /dev/null
+++ b/PerformanceTests/DOM/resources/dom-perf/template.js
@@ -0,0 +1,1180 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// Template Test
+// This test uses a simple JS templating system for injecting JSON data into
+// an HTML page. It is designed to use the kind of DOM manipulation common
+// in templating systems.
+//
+// Code from http://code.google.com/p/google-jstemplate/source/browse/trunk/jstemplate.js
+
+// This is the HTML code to use in the template test
+var content ="\
+<style type=\"text/css\"> \
+body {\
+ border-top: 10px solid #3B85E3;\
+ color: #333;\
+ font-family: Verdana,Arial,Helvetica,sans-serif;\
+}\
+body, td {\
+ font-size: 11px;\
+}\
+a:link, a:visited {\
+ color: #2C3EBA;\
+ text-decoration: none;\
+}\
+a:hover {\
+ color: red;\
+ text-decoration: underline;\
+}\
+h1 {\
+ border-left: 10px solid #FFF;\
+ font-size: 16px;\
+ font-weight: bold;\
+ margin: 0;\
+ padding: 0.2em;\
+ color: #3B85E3;\
+}\
+h2 {\
+ border-left: 10px solid #FFF;\
+ font-size: 11px;\
+ font-weight: normal;\
+ margin: 0;\
+ padding: 0 6em 0.2em 0.2em;\
+}\
+.details {\
+ margin: 0.4em 1.9em 0 1.2em;\
+ padding: 0 0.4em 0.3em 0;\
+ white-space: nowrap;\
+}\
+.details .outer {\
+ padding-right: 0;\
+ vertical-align: top;\
+}\
+.details .top {\
+ border-top: 2px solid #333;\
+ font-weight: bold;\
+ margin-top: 0.4em;\
+}\
+.details .header2 {\
+ font-weight: bold;\
+ padding-left: 0.9em;\
+}\
+.details .key {\
+ padding-left: 1.1em;\
+ vertical-align: top;\
+}\
+.details .value {\
+ text-align: right;\
+ color: #333;\
+ font-weight: bold;\
+}\
+.details .zebra {\
+ background: #EEE;\
+}\
+.lower {\
+ text-transform: lowercase;\
+}\
+</style> \
+ <h1 class=\"lower\">About Stats</h1> \
+ <table class=\"details\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"> \
+ <tbody> \
+ <tr> \
+ <td class=\"outer\"> \
+ <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"> \
+ <tbody> \
+ <tr> \
+ <td class=\"top\" width=\"100\">Counters</td> \
+ <td class=\"top value\" colspan=2></td> \
+ </tr> \
+ <tr> \
+ <td class=\"header2 lower\" width=\"200\">name</td> \
+ <td class=\"header2 lower\">value</td> \
+ <td class=\"header2 lower\">delta</td> \
+ </tr> \
+ <tr jsselect=\"counters\" name=\"counter\"> \
+ <td class=\"key\" width=\"200\" jscontent=\"name\"></td> \
+ <td class=\"value\" jscontent=\"value\"></td> \
+ <td class=\"value\" jscontent=\"delta\"></td> \
+ </tr> \
+ </tbody> \
+ </table> \
+ </td> \
+ <td width=\"15\"/> \
+ <td class=\"outer\"> \
+ <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"> \
+ <tbody> \
+ <tr> \
+ <td class=\"top\" width=\"100\">Timers</td> \
+ <td class=\"top value\"></td> \
+ <td class=\"top value\" colspan=3></td> \
+ </tr> \
+ <tr> \
+ <td class=\"header2 lower\" width=\"200\">name</td> \
+ <td class=\"header2 lower\">count</td> \
+ <td class=\"header2 lower\">time (ms)</td> \
+ <td class=\"header2 lower\">avg time (ms)</td> \
+ </tr> \
+ <tr jsselect=\"timers\" name=\"timer\"> \
+ <td class=\"key\" width=\"200\" jscontent=\"name\"></td> \
+ <td class=\"value\" jscontent=\"value\"></td> \
+ <td class=\"value\" jscontent=\"time\"></td> \
+ <td class=\"value\"></td> \
+ </tr> \
+ </tbody> \
+ </table> \
+ </td> \
+ </tr> \
+ </tbody> \
+ </table><br/> \
+</body> \
+</html> \
+";
+
+// Generic Template Library
+
+/**
+ * @fileoverview This file contains miscellaneous basic functionality.
+ *
+ */
+
+/**
+ * Returns the document owner of the given element. In particular,
+ * returns window.document if node is null or the browser does not
+ * support ownerDocument.
+ *
+ * @param {Node} node The node whose ownerDocument is required.
+ * @returns {Document|Null} The owner document or null if unsupported.
+ */
+function Template_ownerDocument(node) {
+ return (node ? node.ownerDocument : null) || document;
+}
+
+/**
+ * Wrapper function to create CSS units (pixels) string
+ *
+ * @param {Number} numPixels Number of pixels, may be floating point.
+ * @returns {String} Corresponding CSS units string.
+ */
+function Template_px(numPixels) {
+ return round(numPixels) + "px";
+}
+
+/**
+ * Sets display to none. Doing this as a function saves a few bytes for
+ * the 'style.display' property and the 'none' literal.
+ *
+ * @param {Element} node The dom element to manipulate.
+ */
+function Template_displayNone(node) {
+ node.style.display = 'none';
+}
+
+/**
+ * Sets display to default.
+ *
+ * @param {Element} node The dom element to manipulate.
+ */
+function Template_displayDefault(node) {
+ node.style.display = '';
+}
+
+var DOM_ELEMENT_NODE = 1;
+var DOM_ATTRIBUTE_NODE = 2;
+var DOM_TEXT_NODE = 3;
+var DOM_CDATA_SECTION_NODE = 4;
+var DOM_ENTITY_REFERENCE_NODE = 5;
+var DOM_ENTITY_NODE = 6;
+var DOM_PROCESSING_INSTRUCTION_NODE = 7;
+var DOM_COMMENT_NODE = 8;
+var DOM_DOCUMENT_NODE = 9;
+var DOM_DOCUMENT_TYPE_NODE = 10;
+var DOM_DOCUMENT_FRAGMENT_NODE = 11;
+var DOM_NOTATION_NODE = 12;
+
+/**
+ * Get an attribute from the DOM. Simple redirect, exists to compress code.
+ *
+ * @param {Element} node Element to interrogate.
+ * @param {String} name Name of parameter to extract.
+ * @return {String} Resulting attribute.
+ */
+function Template_domGetAttribute(node, name) {
+ return node.getAttribute(name);
+}
+
+/**
+ * Set an attribute in the DOM. Simple redirect to compress code.
+ *
+ * @param {Element} node Element to interrogate.
+ * @param {String} name Name of parameter to set.
+ * @param {String} value Set attribute to this value.
+ */
+function Template_domSetAttribute(node, name, value) {
+ node.setAttribute(name, value);
+}
+
+/**
+ * Remove an attribute from the DOM. Simple redirect to compress code.
+ *
+ * @param {Element} node Element to interrogate.
+ * @param {String} name Name of parameter to remove.
+ */
+function Template_domRemoveAttribute(node, name) {
+ node.removeAttribute(name);
+}
+
+/**
+ * Clone a node in the DOM.
+ *
+ * @param {Node} node Node to clone.
+ * @return {Node} Cloned node.
+ */
+function Template_domCloneNode(node) {
+ return node.cloneNode(true);
+}
+
+/**
+ * Return a safe string for the className of a node.
+ * If className is not a string, returns "".
+ *
+ * @param {Element} node DOM element to query.
+ * @return {String}
+ */
+function Template_domClassName(node) {
+ return node.className ? "" + node.className : "";
+}
+
+/**
+ * Inserts a new child before a given sibling.
+ *
+ * @param {Node} newChild Node to insert.
+ * @param {Node} oldChild Sibling node.
+ * @return {Node} Reference to new child.
+ */
+function Template_domInsertBefore(newChild, oldChild) {
+ return oldChild.parentNode.insertBefore(newChild, oldChild);
+}
+
+/**
+ * Appends a new child to the specified (parent) node.
+ *
+ * @param {Element} node Parent element.
+ * @param {Node} child Child node to append.
+ * @return {Node} Newly appended node.
+ */
+function Template_domAppendChild(node, child) {
+ return node.appendChild(child);
+}
+
+/**
+ * Remove a new child from the specified (parent) node.
+ *
+ * @param {Element} node Parent element.
+ * @param {Node} child Child node to remove.
+ * @return {Node} Removed node.
+ */
+function Template_domRemoveChild(node, child) {
+ return node.removeChild(child);
+}
+
+/**
+ * Replaces an old child node with a new child node.
+ *
+ * @param {Node} newChild New child to append.
+ * @param {Node} oldChild Old child to remove.
+ * @return {Node} Replaced node.
+ */
+function Template_domReplaceChild(newChild, oldChild) {
+ return oldChild.parentNode.replaceChild(newChild, oldChild);
+}
+
+/**
+ * Removes a node from the DOM.
+ *
+ * @param {Node} node The node to remove.
+ * @return {Node} The removed node.
+ */
+function Template_domRemoveNode(node) {
+ return Template_domRemoveChild(node.parentNode, node);
+}
+
+/**
+ * Creates a new text node in the given document.
+ *
+ * @param {Document} doc Target document.
+ * @param {String} text Text composing new text node.
+ * @return {Text} Newly constructed text node.
+ */
+function Template_domCreateTextNode(doc, text) {
+ return doc.createTextNode(text);
+}
+
+/**
+ * Redirect to document.getElementById
+ *
+ * @param {Document} doc Target document.
+ * @param {String} id Id of requested node.
+ * @return {Element|Null} Resulting element.
+ */
+function Template_domGetElementById(doc, id) {
+ return doc.getElementById(id);
+}
+
+/**
+ * @fileoverview This file contains javascript utility functions that
+ * do not depend on anything defined elsewhere.
+ *
+ */
+
+/**
+ * Returns the value of the length property of the given object. Used
+ * to reduce compiled code size.
+ *
+ * @param {Array | String} a The string or array to interrogate.
+ * @return {Number} The value of the length property.
+ */
+function Template_jsLength(a) {
+ return a.length;
+}
+
+var min = Math.min;
+var max = Math.max;
+var ceil = Math.ceil;
+var floor = Math.floor;
+var round = Math.round;
+var abs = Math.abs;
+
+/**
+ * Copies all properties from second object to the first. Modifies to.
+ *
+ * @param {Object} to The target object.
+ * @param {Object} from The source object.
+ */
+function Template_copyProperties(to, from) {
+ foreachin(from, function(p) { to[p] = from[p]; });
+}
+
+/**
+ * Iterates over the array, calling the given function for each
+ * element.
+ *
+ * @param {Array} array
+ * @param {Function} fn
+ */
+function foreach(array, fn) {
+ var I = Template_jsLength(array);
+ for (var i = 0; i < I; ++i)
+ fn(array[i], i);
+}
+
+/**
+ * Safely iterates over all properties of the given object, calling
+ * the given function for each property. If opt_all isn't true, uses
+ * hasOwnProperty() to assure the property is on the object, not on
+ * its prototype.
+ *
+ * @param {Object} object
+ * @param {Function} fn
+ * @param {Boolean} opt_all If true, also iterates over inherited properties.
+ */
+function foreachin(object, fn, opt_all) {
+ for (var i in object) {
+ if (opt_all || !object.hasOwnProperty || object.hasOwnProperty(i))
+ fn(i, object[i]);
+ }
+}
+
+/**
+ * Trim whitespace from begin and end of string.
+ *
+ * @see testStringTrim();
+ *
+ * @param {String} str Input string.
+ * @return {String} Trimmed string.
+ */
+function Template_stringTrim(str) {
+ return Template_stringTrimRight(stringTrimLeft(str));
+}
+
+/**
+ * Trim whitespace from beginning of string.
+ *
+ * @see testStringTrimLeft();
+ *
+ * @param {String} str Input string.
+ * @return {String} Trimmed string.
+ */
+function Template_stringTrimLeft(str) {
+ return str.replace(/^\s+/, "");
+}
+
+/**
+ * Trim whitespace from end of string.
+ *
+ * @see testStringTrimRight();
+ *
+ * @param {String} str Input string.
+ * @return {String} Trimmed string.
+ */
+function Template_stringTrimRight(str) {
+ return str.replace(/\s+$/, "");
+}
+
+/**
+ * Jscompiler wrapper for parseInt() with base 10.
+ *
+ * @param {String} s String repersentation of a number.
+ *
+ * @return {Number} The integer contained in s, converted on base 10.
+ */
+function Template_parseInt10(s) {
+ return parseInt(s, 10);
+}
+/**
+ * @fileoverview A simple formatter to project JavaScript data into
+ * HTML templates. The template is edited in place. I.e. in order to
+ * instantiate a template, clone it from the DOM first, and then
+ * process the cloned template. This allows for updating of templates:
+ * If the templates is processed again, changed values are merely
+ * updated.
+ *
+ * NOTE: IE DOM doesn't have importNode().
+ *
+ * NOTE: The property name "length" must not be used in input
+ * data, see comment in jstSelect_().
+ */
+
+/**
+ * Names of jstemplate attributes. These attributes are attached to
+ * normal HTML elements and bind expression context data to the HTML
+ * fragment that is used as template.
+ */
+var ATT_select = 'jsselect';
+var ATT_instance = 'jsinstance';
+var ATT_display = 'jsdisplay';
+var ATT_values = 'jsvalues';
+var ATT_eval = 'jseval';
+var ATT_transclude = 'transclude';
+var ATT_content = 'jscontent';
+
+/**
+ * Names of special variables defined by the jstemplate evaluation
+ * context. These can be used in js expression in jstemplate
+ * attributes.
+ */
+var VAR_index = '$index';
+var VAR_this = '$this';
+
+/**
+ * Context for processing a jstemplate. The context contains a context
+ * object, whose properties can be referred to in jstemplate
+ * expressions, and it holds the locally defined variables.
+ *
+ * @param {Object} opt_data The context object. Null if no context.
+ *
+ * @param {Object} opt_parent The parent context, from which local
+ * variables are inherited. Normally the context object of the parent
+ * context is the object whose property the parent object is. Null for the
+ * context of the root object.
+ *
+ * @constructor
+ */
+function JsExprContext(opt_data, opt_parent) {
+ var me = this;
+
+ /**
+ * The local context of the input data in which the jstemplate
+ * expressions are evaluated. Notice that this is usually an Object,
+ * but it can also be a scalar value (and then still the expression
+ * $this can be used to refer to it). Notice this can be a scalar
+ * value, including undefined.
+ *
+ * @type {Object}
+ */
+ me.data_ = opt_data;
+
+ /**
+ * The context for variable definitions in which the jstemplate
+ * expressions are evaluated. Other than for the local context,
+ * which replaces the parent context, variable definitions of the
+ * parent are inherited. The special variable $this points to data_.
+ *
+ * @type {Object}
+ */
+ me.vars_ = {};
+ if (opt_parent)
+ Template_copyProperties(me.vars_, opt_parent.vars_);
+ this.vars_[VAR_this] = me.data_;
+}
+
+/**
+ * Evaluates the given expression in the context of the current
+ * context object and the current local variables.
+ *
+ * @param {String} expr A javascript expression.
+ *
+ * @param {Element} template DOM node of the template.
+ *
+ * @return The value of that expression.
+ */
+JsExprContext.prototype.jseval = function(expr, template) {
+ with (this.vars_) {
+ with (this.data_) {
+ try {
+ return (function() { return eval('[' + expr + '][0]'); }).call(template);
+ } catch (e) {
+ return null;
+ }
+ }
+ }
+};
+
+/**
+ * Clones the current context for a new context object. The cloned
+ * context has the data object as its context object and the current
+ * context as its parent context. It also sets the $index variable to
+ * the given value. This value usually is the position of the data
+ * object in a list for which a template is instantiated multiply.
+ *
+ * @param {Object} data The new context object.
+ *
+ * @param {Number} index Position of the new context when multiply
+ * instantiated. (See implementation of jstSelect().)
+ *
+ * @return {JsExprContext}
+ */
+JsExprContext.prototype.clone = function(data, index) {
+ var ret = new JsExprContext(data, this);
+ ret.setVariable(VAR_index, index);
+ if (this.resolver_)
+ ret.setSubTemplateResolver(this.resolver_);
+ return ret;
+};
+
+/**
+ * Binds a local variable to the given value. If set from jstemplate
+ * jsvalue expressions, variable names must start with $, but in the
+ * API they only have to be valid javascript identifier.
+ *
+ * @param {String} name
+ *
+ * @param {Object} value
+ */
+JsExprContext.prototype.setVariable = function(name, value) {
+ this.vars_[name] = value;
+};
+
+/**
+ * Sets the function used to resolve the values of the transclude
+ * attribute into DOM nodes. By default, this is jstGetTemplate(). The
+ * value set here is inherited by clones of this context.
+ *
+ * @param {Function} resolver The function used to resolve transclude
+ * ids into a DOM node of a subtemplate. The DOM node returned by this
+ * function will be inserted into the template instance being
+ * processed. Thus, the resolver function must instantiate the
+ * subtemplate as necessary.
+ */
+JsExprContext.prototype.setSubTemplateResolver = function(resolver) {
+ this.resolver_ = resolver;
+};
+
+/**
+ * Resolves a sub template from an id. Used to process the transclude
+ * attribute. If a resolver function was set using
+ * setSubTemplateResolver(), it will be used, otherwise
+ * jstGetTemplate().
+ *
+ * @param {String} id The id of the sub template.
+ *
+ * @return {Node} The root DOM node of the sub template, for direct
+ * insertion into the currently processed template instance.
+ */
+JsExprContext.prototype.getSubTemplate = function(id) {
+ return (this.resolver_ || jstGetTemplate).call(this, id);
+};
+
+/**
+ * HTML template processor. Data values are bound to HTML templates
+ * using the attributes transclude, jsselect, jsdisplay, jscontent,
+ * jsvalues. The template is modifed in place. The values of those
+ * attributes are JavaScript expressions that are evaluated in the
+ * context of the data object fragment.
+ *
+ * @param {JsExprContext} context Context created from the input data
+ * object.
+ *
+ * @param {Element} template DOM node of the template. This will be
+ * processed in place. After processing, it will still be a valid
+ * template that, if processed again with the same data, will remain
+ * unchanged.
+ */
+function jstProcess(context, template) {
+ var processor = new JstProcessor();
+ processor.run_([ processor, processor.jstProcess_, context, template ]);
+}
+
+/**
+ * Internal class used by jstemplates to maintain context.
+ * NOTE: This is necessary to process deep templates in Safari
+ * which has a relatively shallow stack.
+ * @class
+ */
+function JstProcessor() {
+}
+
+/**
+ * Runs the state machine, beginning with function "start".
+ *
+ * @param {Array} start The first function to run, in the form
+ * [object, method, args ...]
+ */
+JstProcessor.prototype.run_ = function(start) {
+ var me = this;
+
+ me.queue_ = [ start ];
+ while (Template_jsLength(me.queue_)) {
+ var f = me.queue_.shift();
+ f[1].apply(f[0], f.slice(2));
+ }
+};
+
+/**
+ * Appends a function to be called later.
+ * Analogous to calling that function on a subsequent line, or a subsequent
+ * iteration of a loop.
+ *
+ * @param {Array} f A function in the form [object, method, args ...]
+ */
+JstProcessor.prototype.enqueue_ = function(f) {
+ this.queue_.push(f);
+};
+
+/**
+ * Implements internals of jstProcess.
+ *
+ * @param {JsExprContext} context
+ *
+ * @param {Element} template
+ */
+JstProcessor.prototype.jstProcess_ = function(context, template) {
+ var me = this;
+
+ var transclude = Template_domGetAttribute(template, ATT_transclude);
+ if (transclude) {
+ var tr = context.getSubTemplate(transclude);
+ if (tr) {
+ Template_domReplaceChild(tr, template);
+ me.enqueue_([ me, me.jstProcess_, context, tr ]);
+ } else
+ Template_domRemoveNode(template);
+ return;
+ }
+
+ var select = Template_domGetAttribute(template, ATT_select);
+ if (select) {
+ me.jstSelect_(context, template, select);
+ return;
+ }
+
+ var display = Template_domGetAttribute(template, ATT_display);
+ if (display) {
+ if (!context.jseval(display, template)) {
+ Template_displayNone(template);
+ return;
+ }
+ Template_displayDefault(template);
+ }
+
+ var values = Template_domGetAttribute(template, ATT_values);
+ if (values)
+ me.jstValues_(context, template, values);
+
+ var expressions = Template_domGetAttribute(template, ATT_eval);
+ if (expressions) {
+ foreach(expressions.split(/\s*;\s*/), function(expression) {
+ expression = Template_stringTrim(expression);
+ if (Template_jsLength(expression))
+ context.jseval(expression, template);
+ });
+ }
+
+ var content = Template_domGetAttribute(template, ATT_content);
+ if (content)
+ me.jstContent_(context, template, content);
+ else {
+ var childnodes = [];
+ for (var i = 0; i < Template_jsLength(template.childNodes); ++i) {
+ if (template.childNodes[i].nodeType == DOM_ELEMENT_NODE)
+ me.enqueue_([me, me.jstProcess_, context, template.childNodes[i]]);
+ }
+ }
+};
+
+/**
+ * Implements the jsselect attribute: evalutes the value of the
+ * jsselect attribute in the current context, with the current
+ * variable bindings (see JsExprContext.jseval()). If the value is an
+ * array, the current template node is multiplied once for every
+ * element in the array, with the array element being the context
+ * object. If the array is empty, or the value is undefined, then the
+ * current template node is dropped. If the value is not an array,
+ * then it is just made the context object.
+ *
+ * @param {JsExprContext} context The current evaluation context.
+ *
+ * @param {Element} template The currently processed node of the template.
+ *
+ * @param {String} select The javascript expression to evaluate.
+ *
+ * @param {Function} process The function to continue processing with.
+ */
+JstProcessor.prototype.jstSelect_ = function(context, template, select) {
+ var me = this;
+
+ var value = context.jseval(select, template);
+ Template_domRemoveAttribute(template, ATT_select);
+
+ var instance = Template_domGetAttribute(template, ATT_instance);
+ var instance_last = false;
+ if (instance) {
+ if (instance.charAt(0) == '*') {
+ instance = Template_parseInt10(instance.substr(1));
+ instance_last = true;
+ } else
+ instance = Template_parseInt10(instance);
+ }
+
+ var multiple = (value !== null && typeof value == 'object' && typeof value.length == 'number');
+ var multiple_empty = (multiple && value.length == 0);
+
+ if (multiple) {
+ if (multiple_empty) {
+ if (!instance) {
+ Template_domSetAttribute(template, ATT_select, select);
+ Template_domSetAttribute(template, ATT_instance, '*0');
+ Template_displayNone(template);
+ } else
+ Template_domRemoveNode(template);
+ } else {
+ Template_displayDefault(template);
+ if (instance === null || instance === "" || instance === undefined ||
+ (instance_last && instance < Template_jsLength(value) - 1)) {
+ var templatenodes = [];
+ var instances_start = instance || 0;
+ for (var i = instances_start + 1; i < Template_jsLength(value); ++i) {
+ var node = Template_domCloneNode(template);
+ templatenodes.push(node);
+ Template_domInsertBefore(node, template);
+ }
+ templatenodes.push(template);
+
+ for (var i = 0; i < Template_jsLength(templatenodes); ++i) {
+ var ii = i + instances_start;
+ var v = value[ii];
+ var t = templatenodes[i];
+
+ me.enqueue_([me, me.jstProcess_, context.clone(v, ii), t]);
+ var instanceStr = (ii == Template_jsLength(value) - 1 ? '*' : '') + ii;
+ me.enqueue_([null, postProcessMultiple_, t, select, instanceStr]);
+ }
+ } else if (instance < Template_jsLength(value)) {
+ var v = value[instance];
+
+ me.enqueue_([me, me.jstProcess_, context.clone(v, instance), template]);
+ var instanceStr = (instance == Template_jsLength(value) - 1 ? '*' : '') + instance;
+ me.enqueue_([null, postProcessMultiple_, template, select, instanceStr]);
+ } else
+ Template_domRemoveNode(template);
+ }
+ } else {
+ if (value == null) {
+ Template_domSetAttribute(template, ATT_select, select);
+ Template_displayNone(template);
+ } else {
+ me.enqueue_([me, me.jstProcess_, context.clone(value, 0), template]);
+ me.enqueue_([null, postProcessSingle_, template, select]);
+ }
+ }
+};
+
+/**
+ * Sets ATT_select and ATT_instance following recursion to jstProcess.
+ *
+ * @param {Element} template The template
+ *
+ * @param {String} select The jsselect string
+ *
+ * @param {String} instanceStr The new value for the jsinstance attribute
+ */
+function postProcessMultiple_(template, select, instanceStr) {
+ Template_domSetAttribute(template, ATT_select, select);
+ Template_domSetAttribute(template, ATT_instance, instanceStr);
+}
+
+/**
+ * Sets ATT_select and makes the element visible following recursion to
+ * jstProcess.
+ *
+ * @param {Element} template The template
+ *
+ * @param {String} select The jsselect string
+ */
+function postProcessSingle_(template, select) {
+ Template_domSetAttribute(template, ATT_select, select);
+ Template_displayDefault(template);
+}
+
+/**
+ * Implements the jsvalues attribute: evaluates each of the values and
+ * assigns them to variables in the current context (if the name
+ * starts with '$', javascript properties of the current template node
+ * (if the name starts with '.'), or DOM attributes of the current
+ * template node (otherwise). Since DOM attribute values are always
+ * strings, the value is coerced to string in the latter case,
+ * otherwise it's the uncoerced javascript value.
+ *
+ * @param {JsExprContext} context Current evaluation context.
+ *
+ * @param {Element} template Currently processed template node.
+ *
+ * @param {String} valuesStr Value of the jsvalues attribute to be
+ * processed.
+ */
+JstProcessor.prototype.jstValues_ = function(context, template, valuesStr) {
+ var values = valuesStr.split(/\s*;\s*/);
+ for (var i = 0; i < Template_jsLength(values); ++i) {
+ var colon = values[i].indexOf(':');
+ if (colon < 0)
+ continue;
+ var label = Template_stringTrim(values[i].substr(0, colon));
+ var value = context.jseval(values[i].substr(colon + 1), template);
+
+ if (label.charAt(0) == '$')
+ context.setVariable(label, value);
+ else if (label.charAt(0) == '.')
+ template[label.substr(1)] = value;
+ else if (label) {
+ if (typeof value == 'boolean') {
+ if (value)
+ Template_domSetAttribute(template, label, label);
+ else
+ Template_domRemoveAttribute(template, label);
+ } else
+ Template_domSetAttribute(template, label, '' + value);
+ }
+ }
+};
+
+/**
+ * Implements the jscontent attribute. Evalutes the expression in
+ * jscontent in the current context and with the current variables,
+ * and assigns its string value to the content of the current template
+ * node.
+ *
+ * @param {JsExprContext} context Current evaluation context.
+ *
+ * @param {Element} template Currently processed template node.
+ *
+ * @param {String} content Value of the jscontent attribute to be
+ * processed.
+ */
+JstProcessor.prototype.jstContent_ = function(context, template, content) {
+ var value = '' + context.jseval(content, template);
+ if (template.innerHTML == value)
+ return;
+ while (template.firstChild)
+ Template_domRemoveNode(template.firstChild);
+ var t = Template_domCreateTextNode(Template_ownerDocument(template), value);
+ Template_domAppendChild(template, t);
+};
+
+/**
+ * Helps to implement the transclude attribute, and is the initial
+ * call to get hold of a template from its ID.
+ *
+ * @param {String} name The ID of the HTML element used as template.
+ *
+ * @returns {Element} The DOM node of the template. (Only element
+ * nodes can be found by ID, hence it's a Element.)
+ */
+function jstGetTemplate(name) {
+ var section = Template_domGetElementById(document, name);
+ if (section) {
+ var ret = Template_domCloneNode(section);
+ Template_domRemoveAttribute(ret, 'id');
+ return ret;
+ } else
+ return null;
+}
+
+window['jstGetTemplate'] = jstGetTemplate;
+window['jstProcess'] = jstProcess;
+window['JsExprContext'] = JsExprContext;
+
+function TemplateTest() {
+ // Find the location to insert the content
+ var tp = document.getElementById('benchmark_content');
+
+ // Inject the content
+ tp.innerHTML = content;
+
+ // Run the template
+ var cx = new JsExprContext(
+ {"counters": [
+ {"name":"Chrome:Init","time":5},
+ {"delta":0,"name":"Shutdown:window_close:time","time":111,"value":1},
+ {"delta":0,"name":" Shutdown:window_close:timeMA","value":111},
+ {"delta":0,"name":"Shutdown:window_close:time_pe","time":111,"value":1},
+ {"delta":0,"name":" Shutdown:window_close:time_p","value":111},
+ {"delta":0,"name":"Shutdown:renderers:total","time":1,"value":1},
+ {"delta":0,"name":" Shutdown:renderers:totalMAX","value":1},
+ {"delta":0,"name":"Shutdown:renderers:slow","time":0,"value":1},
+ {"delta":0,"name":" Shutdown:renderers:slowMAX","value":10},
+ {"delta":0,"name":"DNS:PrefetchQueue","time":2,"value":6},
+ {"delta":0,"name":" DNS:PrefetchQueueMAX","value":1},
+ {"delta":0,"name":"DNS:PrefetchFoundNameL","time":1048,"value":1003},
+ {"delta":0,"name":" DNS:PrefetchFoundNameLMAX","value":46},
+ {"delta":0,"name":"SB:QueueDepth","time":0,"value":1},
+ {"delta":0,"name":" SB:QueueDepthMAX","value":0},
+ {"delta":102,"name":"IPC:SendMsgCount","value":1016},
+ {"delta":98,"name":"Chrome:ProcMsgL UI","time":2777,"value":1378},
+ {"delta":2381,"name":" Chrome:ProcMsgL UIMAX","value":2409},
+ {"delta":98,"name":"Chrome:TotalMsgL UI","time":5715,"value":1378},
+ {"delta":1518,"name":" Chrome:TotalMsgL UIMAX","value":2409},
+ {"name":"Chrome:RendererInit","time":9},
+ {"delta":0,"name":"WebFrameActiveCount","value":2},
+ {"delta":0,"name":"Gears:LoadTime","time":1,"value":1},
+ {"delta":0,"name":" Gears:LoadTimeMAX","value":1},
+ {"delta":1,"name":"URLRequestCount","value":41},
+ {"delta":1,"name":"mime_sniffer:ShouldSniffMimeT","time":27,"value":27},
+ {"delta":0,"name":" mime_sniffer:ShouldSniffMime","value":1},
+ {"delta":3,"name":"ResourceLoadServer","time":1065,"value":73},
+ {"delta":0,"name":" ResourceLoadServerMAX","value":51},
+ {"delta":11,"name":"WebFramePaintTime","time":232,"value":42},
+ {"delta":9,"name":" WebFramePaintTimeMAX","value":41},
+ {"delta":11,"name":"MPArch:RWH_OnMsgPaintRect","time":136,"value":42},
+ {"delta":0,"name":" MPArch:RWH_OnMsgPaintRectMAX","value":9},
+ {"delta":0,"name":"NPObjects","value":2},
+ {"delta":6008832,"name":"V8:OsMemoryAllocated","value":28422144},
+ {"delta":7905,"name":"V8:GlobalHandles","value":16832},
+ {"delta":0,"name":"V8:PcreMallocCount","value":0},
+ {"delta":1,"name":"V8:ObjectPropertiesToDictiona","value":16},
+ {"delta":0,"name":"V8:ObjectElementsToDictionary","value":0},
+ {"delta":1128652,"name":"V8:AliveAfterLastGC","value":4467596},
+ {"delta":0,"name":"V8:ObjsSinceLastYoung","value":0},
+ {"delta":0,"name":"V8:ObjsSinceLastFull","value":0},
+ {"delta":2048,"name":"V8:SymbolTableCapacity","value":12288},
+ {"delta":1493,"name":"V8:NumberOfSymbols","value":6865},
+ {"delta":100442,"name":"V8:TotalExternalStringMemory","value":359184},
+ {"delta":0,"name":"V8:ScriptWrappers","value":0},
+ {"delta":3,"name":"V8:CallInitializeStubs","value":20},
+ {"delta":0,"name":"V8:CallPreMonomorphicStubs","value":4},
+ {"delta":0,"name":"V8:CallNormalStubs","value":0},
+ {"delta":6,"name":"V8:CallMegamorphicStubs","value":44},
+ {"delta":0,"name":"V8:ArgumentsAdaptors","value":0},
+ {"delta":647,"name":"V8:CompilationCacheHits","value":1269},
+ {"delta":9,"name":"V8:CompilationCacheMisses","value":57},
+ {"delta":0,"name":"V8:RegExpCacheHits","value":2},
+ {"delta":0,"name":"V8:RegExpCacheMisses","value":6},
+ {"delta":6260,"name":"V8:TotalEvalSize","value":12621},
+ {"delta":50221,"name":"V8:TotalLoadSize","value":217362},
+ {"delta":63734,"name":"V8:TotalParseSize","value":299135},
+ {"delta":15174,"name":"V8:TotalPreparseSkipped","value":61824},
+ {"delta":69932,"name":"V8:TotalCompileSize","value":313048},
+ {"delta":22,"name":"V8:CodeStubs","value":117},
+ {"delta":1185,"name":"V8:TotalStubsCodeSize","value":6456},
+ {"delta":45987,"name":"V8:TotalCompiledCodeSize","value":169546},
+ {"delta":0,"name":"V8:GCCompactorCausedByRequest","value":0},
+ {"delta":0,"name":"V8:GCCompactorCausedByPromote","value":0},
+ {"delta":0,"name":"V8:GCCompactorCausedByOldspac","value":0},
+ {"delta":0,"name":"V8:GCCompactorCausedByWeakHan","value":0},
+ {"delta":0,"name":"V8:GCLastResortFromJS","value":0},
+ {"delta":0,"name":"V8:GCLastResortFromHandles","value":0},
+ {"delta":0,"name":"V8:KeyedLoadGenericSmi","value":0},
+ {"delta":0,"name":"V8:KeyedLoadGenericSymbol","value":0},
+ {"delta":0,"name":"V8:KeyedLoadGenericSlow","value":0},
+ {"delta":0,"name":"V8:KeyedLoadFunctionPrototype","value":0},
+ {"delta":0,"name":"V8:KeyedLoadStringLength","value":0},
+ {"delta":0,"name":"V8:KeyedLoadArrayLength","value":0},
+ {"delta":0,"name":"V8:KeyedLoadConstantFunction","value":0},
+ {"delta":0,"name":"V8:KeyedLoadField","value":0},
+ {"delta":0,"name":"V8:KeyedLoadCallback","value":0},
+ {"delta":0,"name":"V8:KeyedLoadInterceptor","value":0},
+ {"delta":0,"name":"V8:KeyedStoreField","value":0},
+ {"delta":0,"name":"V8:ForIn","value":0},
+ {"delta":2,"name":"V8:EnumCacheHits","value":9},
+ {"delta":4,"name":"V8:EnumCacheMisses","value":23},
+ {"delta":3724,"name":"V8:RelocInfoCount","value":18374},
+ {"delta":6080,"name":"V8:RelocInfoSize","value":30287},
+ {"delta":0,"name":"History:InitTime","time":12,"value":1},
+ {"delta":0,"name":" History:InitTimeMAX","value":12},
+ {"delta":1,"name":"History:GetFavIconForURL","time":0,"value":22},
+ {"delta":0,"name":" History:GetFavIconForURLMAX","value":0},
+ {"delta":2,"name":"V8:PreParse","time":9,"value":11},
+ {"delta":9,"name":"V8:Parse","time":9,"value":57},
+ {"delta":3,"name":"V8:Compile","time":3,"value":22},
+ {"delta":49,"name":"V8:ParseLazy","time":17,"value":231},
+ {"delta":47,"name":"V8:CompileLazy","time":3,"value":221},
+ {"delta":12,"name":"V8:GCScavenger","time":13,"value":28},
+ {"delta":0,"name":"NewTabPage:SearchURLs:Total","time":0,"value":1},
+ {"delta":0,"name":" NewTabPage:SearchURLs:TotalM","value":0},
+ {"delta":6,"name":"V8:CompileEval","time":1,"value":35},
+ {"delta":0,"name":"Memory:CachedFontAndDC","time":3,"value":3},
+ {"delta":0,"name":" Memory:CachedFontAndDCMAX","value":2},
+ {"delta":0,"name":"ResourceLoaderWait","time":1296,"value":48},
+ {"delta":0,"name":" ResourceLoaderWaitMAX","value":55},
+ {"delta":0,"name":"History:GetPageThumbnail","time":15,"value":9},
+ {"delta":0,"name":" History:GetPageThumbnailMAX","value":10},
+ {"delta":9,"name":"MPArch:RWH_InputEventDelta","time":327,"value":170},
+ {"delta":0,"name":" MPArch:RWH_InputEventDeltaMA","value":154},
+ {"delta":0,"name":"Omnibox:QueryBookmarksTime","time":2,"value":44},
+ {"delta":0,"name":" Omnibox:QueryBookmarksTimeMA","value":1},
+ {"delta":0,"name":"Chrome:DelayMsgUI","value":3},
+ {"delta":0,"name":"Autocomplete:HistoryAsyncQuer","time":351,"value":86},
+ {"delta":0,"name":" Autocomplete:HistoryAsyncQue","value":10},
+ {"delta":0,"name":"History:QueryHistory","time":1018,"value":44},
+ {"delta":0,"name":" History:QueryHistoryMAX","value":233},
+ {"delta":0,"name":"DiskCache:GetFileForNewBlock","time":0,"value":34},
+ {"delta":0,"name":" DiskCache:GetFileForNewBlock","value":0},
+ {"delta":0,"name":"DiskCache:CreateBlock","time":0,"value":34},
+ {"delta":0,"name":" DiskCache:CreateBlockMAX","value":0},
+ {"delta":0,"name":"DiskCache:CreateTime","time":0,"value":10},
+ {"delta":0,"name":" DiskCache:CreateTimeMAX","value":0},
+ {"delta":0,"name":"DNS:PrefetchPositiveHitL","time":1048,"value":2},
+ {"delta":0,"name":" DNS:PrefetchPositiveHitLMAX","value":1002},
+ {"delta":0,"name":"DiskCache:GetRankings","time":0,"value":27},
+ {"delta":0,"name":" DiskCache:GetRankingsMAX","value":0},
+ {"delta":0,"name":"DiskCache:DeleteHeader","time":0,"value":3},
+ {"delta":0,"name":" DiskCache:DeleteHeaderMAX","value":0},
+ {"delta":0,"name":"DiskCache:DeleteData","time":0,"value":3},
+ {"delta":0,"name":" DiskCache:DeleteDataMAX","value":0},
+ {"delta":0,"name":"DiskCache:DeleteBlock","time":0,"value":6},
+ {"delta":0,"name":" DiskCache:DeleteBlockMAX","value":0},
+ {"delta":0,"name":"SessionRestore:last_session_f","time":0,"value":1},
+ {"delta":0,"name":" SessionRestore:last_session_","value":0},
+ {"delta":3,"name":"SessionRestore:command_size","time":2940,"value":36},
+ {"delta":0,"name":" SessionRestore:command_sizeM","value":277},
+ {"delta":0,"name":"DNS:IndependentNavigation","time":2,"value":4},
+ {"delta":0,"name":" DNS:IndependentNavigationMAX","value":1},
+ {"delta":0,"name":"DiskCache:UpdateRank","time":1,"value":25},
+ {"delta":0,"name":" DiskCache:UpdateRankMAX","value":1},
+ {"delta":0,"name":"DiskCache:WriteTime","time":1,"value":21},
+ {"delta":0,"name":" DiskCache:WriteTimeMAX","value":1},
+ {"delta":0,"name":"Net:Transaction_Latency","time":183,"value":7},
+ {"delta":0,"name":" Net:Transaction_LatencyMAX","value":37},
+ {"delta":0,"name":"Net:Transaction_Bandwidth","time":40,"value":7},
+ {"delta":0,"name":" Net:Transaction_BandwidthMAX","value":8},
+ {"delta":0,"name":"NewTabUI load","time":564,"value":1},
+ {"delta":0,"name":" NewTabUI loadMAX","value":564},
+ {"delta":0,"name":"DiskCache:OpenTime","time":0,"value":2},
+ {"delta":0,"name":" DiskCache:OpenTimeMAX","value":0},
+ {"delta":0,"name":"DiskCache:ReadTime","time":0,"value":4},
+ {"delta":0,"name":" DiskCache:ReadTimeMAX","value":0},
+ {"delta":0,"name":"MPArch:RWHH_WhiteoutDuration_","time":27,"value":1},
+ {"delta":0,"name":" MPArch:RWHH_WhiteoutDuration","value":27},
+ {"delta":1,"name":"AsyncIO:IPCChannelClose","time":0,"value":4},
+ {"delta":0,"name":" AsyncIO:IPCChannelCloseMAX","value":0},
+ {"name":"GetHistoryTimer","time":0},
+ {"delta":0,"name":"DiskCache:Entries","time":7,"value":1},
+ {"delta":0,"name":" DiskCache:EntriesMAX","value":7},
+ {"delta":0,"name":"DiskCache:Size","time":0,"value":1},
+ {"delta":0,"name":" DiskCache:SizeMAX","value":0},
+ {"delta":0,"name":"DiskCache:MaxSize","time":80,"value":1},
+ {"delta":0,"name":" DiskCache:MaxSizeMAX","value":80},
+ {"delta":0,"name":"History:AddFTSData","time":1,"value":1},
+ {"delta":0,"name":" History:AddFTSDataMAX","value":1},
+ {"delta":0,"name":"Chrome:SlowMsgUI","value":1}
+ ],
+ "timers":[
+ {"name":"Chrome:Init","time":5},
+ {"delta":0,"name":"Shutdown:window_close:time","time":111,"value":1},
+ {"delta":0,"name":"Shutdown:window_close:time_pe","time":111,"value":1},
+ {"delta":0,"name":"Shutdown:renderers:total","time":1,"value":1},
+ {"delta":0,"name":"Shutdown:renderers:slow","time":0,"value":1},
+ {"delta":0,"name":"DNS:PrefetchQueue","time":2,"value":6},
+ {"delta":0,"name":"DNS:PrefetchFoundNameL","time":1048,"value":1003},
+ {"delta":0,"name":"SB:QueueDepth","time":0,"value":1},
+ {"delta":98,"name":"Chrome:ProcMsgL UI","time":2777,"value":1378},
+ {"delta":98,"name":"Chrome:TotalMsgL UI","time":5715,"value":1378},
+ {"name":"Chrome:RendererInit","time":9},
+ {"delta":0,"name":"Gears:LoadTime","time":1,"value":1},
+ {"delta":1,"name":"mime_sniffer:ShouldSniffMimeT","time":27,"value":27},
+ {"delta":3,"name":"ResourceLoadServer","time":1065,"value":73},
+ {"delta":11,"name":"WebFramePaintTime","time":232,"value":42},
+ {"delta":11,"name":"MPArch:RWH_OnMsgPaintRect","time":136,"value":42},
+ {"delta":0,"name":"History:InitTime","time":12,"value":1},
+ {"delta":1,"name":"History:GetFavIconForURL","time":0,"value":22},
+ {"delta":2,"name":"V8:PreParse","time":9,"value":11},
+ {"delta":9,"name":"V8:Parse","time":9,"value":57},
+ {"delta":3,"name":"V8:Compile","time":3,"value":22},
+ {"delta":49,"name":"V8:ParseLazy","time":17,"value":231},
+ {"delta":47,"name":"V8:CompileLazy","time":3,"value":221},
+ {"delta":12,"name":"V8:GCScavenger","time":13,"value":28},
+ {"delta":0,"name":"NewTabPage:SearchURLs:Total","time":0,"value":1},
+ {"delta":6,"name":"V8:CompileEval","time":1,"value":35},
+ {"delta":0,"name":"Memory:CachedFontAndDC","time":3,"value":3},
+ {"delta":0,"name":"ResourceLoaderWait","time":1296,"value":48},
+ {"delta":0,"name":"History:GetPageThumbnail","time":15,"value":9},
+ {"delta":9,"name":"MPArch:RWH_InputEventDelta","time":327,"value":170},
+ {"delta":0,"name":"Omnibox:QueryBookmarksTime","time":2,"value":44},
+ {"delta":0,"name":"Autocomplete:HistoryAsyncQuer","time":351,"value":86},
+ {"delta":0,"name":"History:QueryHistory","time":1018,"value":44},
+ {"delta":0,"name":"DiskCache:GetFileForNewBlock","time":0,"value":34},
+ {"delta":0,"name":"DiskCache:CreateBlock","time":0,"value":34},
+ {"delta":0,"name":"DiskCache:CreateTime","time":0,"value":10},
+ {"delta":0,"name":"DNS:PrefetchPositiveHitL","time":1048,"value":2},
+ {"delta":0,"name":"DiskCache:GetRankings","time":0,"value":27},
+ {"delta":0,"name":"DiskCache:DeleteHeader","time":0,"value":3},
+ {"delta":0,"name":"DiskCache:DeleteData","time":0,"value":3},
+ {"delta":0,"name":"DiskCache:DeleteBlock","time":0,"value":6},
+ {"delta":0,"name":"SessionRestore:last_session_f","time":0,"value":1},
+ {"delta":3,"name":"SessionRestore:command_size","time":2940,"value":36},
+ {"delta":0,"name":"DNS:IndependentNavigation","time":2,"value":4},
+ {"delta":0,"name":"DiskCache:UpdateRank","time":1,"value":25},
+ {"delta":0,"name":"DiskCache:WriteTime","time":1,"value":21},
+ {"delta":0,"name":"Net:Transaction_Latency","time":183,"value":7},
+ {"delta":0,"name":"Net:Transaction_Bandwidth","time":40,"value":7},
+ {"delta":0,"name":"NewTabUI load","time":564,"value":1},
+ {"delta":0,"name":"DiskCache:OpenTime","time":0,"value":2},
+ {"delta":0,"name":"DiskCache:ReadTime","time":0,"value":4},
+ {"delta":0,"name":"MPArch:RWHH_WhiteoutDuration_","time":27,"value":1},
+ {"delta":1,"name":"AsyncIO:IPCChannelClose","time":0,"value":4},
+ {"name":"GetHistoryTimer","time":0},
+ {"delta":0,"name":"DiskCache:Entries","time":7,"value":1},
+ {"delta":0,"name":"DiskCache:Size","time":0,"value":1},
+ {"delta":0,"name":"DiskCache:MaxSize","time":80,"value":1},
+ {"delta":0,"name":"History:AddFTSData","time":1,"value":1}
+ ]});
+ jstProcess(cx, tp);
+}
+
+var TemplateTest = new BenchmarkSuite('Template', [new Benchmark("Template",TemplateTest)]);
diff --git a/PerformanceTests/DOM/textarea-dom.html b/PerformanceTests/DOM/textarea-dom.html
new file mode 100644
index 000000000..f027564b3
--- /dev/null
+++ b/PerformanceTests/DOM/textarea-dom.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<body>
+<style>
+textarea:valid {
+ background-color: lime;
+}
+textarea:invalid {
+ background-color: red;
+}
+</style>
+<script src="../resources/runner.js"></script>
+<textarea maxlength=2147483647 id="container"></textarea>
+<script>
+var container = document.getElementById('container');
+var nodes = [];
+var childCount = 1000;
+for (var i = 0; i < childCount; ++i)
+ nodes.push(document.createTextNode('A quick brown fox jumps over the lazy dog.\n'));
+PerfTestRunner.runPerSecond({run: function() {
+ for (var i = 0; i < childCount; ++i)
+ container.appendChild(nodes[i]);
+ container.innerHTML = '';
+}});
+</script>
+</body>
diff --git a/PerformanceTests/DOM/textarea-edit.html b/PerformanceTests/DOM/textarea-edit.html
new file mode 100644
index 000000000..7c80e149a
--- /dev/null
+++ b/PerformanceTests/DOM/textarea-edit.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<body>
+<style>
+textarea:valid {
+ background-color: lime;
+}
+textarea:invalid {
+ background-color: red;
+}
+</style>
+<script src="../resources/runner.js"></script>
+<textarea maxlength=2147483647 id="container"></textarea>
+<script>
+var container = document.getElementById('container');
+container.focus();
+PerfTestRunner.runPerSecond({run: function() {
+ for (var i = 0; i < 500; ++i)
+ document.execCommand('insertText', false, 'A quick brown fox jumps over the lazy dog.\n');
+ container.value = '';
+}});
+</script>
+</body>
diff --git a/PerformanceTests/Dromaeo/cssquery-dojo.html b/PerformanceTests/Dromaeo/cssquery-dojo.html
new file mode 100644
index 000000000..15f537cd9
--- /dev/null
+++ b/PerformanceTests/Dromaeo/cssquery-dojo.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("cssquery-dojo");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/cssquery-jquery.html b/PerformanceTests/Dromaeo/cssquery-jquery.html
new file mode 100644
index 000000000..964f5e8b3
--- /dev/null
+++ b/PerformanceTests/Dromaeo/cssquery-jquery.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("cssquery-jquery");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/cssquery-prototype.html b/PerformanceTests/Dromaeo/cssquery-prototype.html
new file mode 100644
index 000000000..67a5951ec
--- /dev/null
+++ b/PerformanceTests/Dromaeo/cssquery-prototype.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("cssquery-prototype");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/dom-attr.html b/PerformanceTests/Dromaeo/dom-attr.html
new file mode 100644
index 000000000..1a4594705
--- /dev/null
+++ b/PerformanceTests/Dromaeo/dom-attr.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("dom-attr");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/dom-modify.html b/PerformanceTests/Dromaeo/dom-modify.html
new file mode 100644
index 000000000..5bf08e194
--- /dev/null
+++ b/PerformanceTests/Dromaeo/dom-modify.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("dom-modify");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/dom-query.html b/PerformanceTests/Dromaeo/dom-query.html
new file mode 100644
index 000000000..89a806a04
--- /dev/null
+++ b/PerformanceTests/Dromaeo/dom-query.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("dom-query");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/dom-traverse.html b/PerformanceTests/Dromaeo/dom-traverse.html
new file mode 100644
index 000000000..dc6375cc7
--- /dev/null
+++ b/PerformanceTests/Dromaeo/dom-traverse.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("dom-traverse");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/dromaeo-3d-cube.html b/PerformanceTests/Dromaeo/dromaeo-3d-cube.html
new file mode 100644
index 000000000..21d0c9662
--- /dev/null
+++ b/PerformanceTests/Dromaeo/dromaeo-3d-cube.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("dromaeo-3d-cube");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/dromaeo-core-eval.html b/PerformanceTests/Dromaeo/dromaeo-core-eval.html
new file mode 100644
index 000000000..4873d14e3
--- /dev/null
+++ b/PerformanceTests/Dromaeo/dromaeo-core-eval.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("dromaeo-core-eval");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/dromaeo-object-array.html b/PerformanceTests/Dromaeo/dromaeo-object-array.html
new file mode 100644
index 000000000..5e8c73c89
--- /dev/null
+++ b/PerformanceTests/Dromaeo/dromaeo-object-array.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("dromaeo-object-array");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/dromaeo-object-regexp.html b/PerformanceTests/Dromaeo/dromaeo-object-regexp.html
new file mode 100644
index 000000000..fc76ebc06
--- /dev/null
+++ b/PerformanceTests/Dromaeo/dromaeo-object-regexp.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("dromaeo-object-regexp");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/dromaeo-object-string.html b/PerformanceTests/Dromaeo/dromaeo-object-string.html
new file mode 100644
index 000000000..5ffb7920e
--- /dev/null
+++ b/PerformanceTests/Dromaeo/dromaeo-object-string.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("dromaeo-object-string");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/dromaeo-string-base64.html b/PerformanceTests/Dromaeo/dromaeo-string-base64.html
new file mode 100644
index 000000000..6147a56cd
--- /dev/null
+++ b/PerformanceTests/Dromaeo/dromaeo-string-base64.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("dromaeo-string-base64");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/jslib-attr-jquery.html b/PerformanceTests/Dromaeo/jslib-attr-jquery.html
new file mode 100644
index 000000000..812fc45ea
--- /dev/null
+++ b/PerformanceTests/Dromaeo/jslib-attr-jquery.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("jslib-attr-jquery");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/jslib-attr-prototype.html b/PerformanceTests/Dromaeo/jslib-attr-prototype.html
new file mode 100644
index 000000000..02c7fbc5c
--- /dev/null
+++ b/PerformanceTests/Dromaeo/jslib-attr-prototype.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("jslib-attr-prototype");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/jslib-event-jquery.html b/PerformanceTests/Dromaeo/jslib-event-jquery.html
new file mode 100644
index 000000000..fdd178842
--- /dev/null
+++ b/PerformanceTests/Dromaeo/jslib-event-jquery.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("jslib-event-jquery");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/jslib-event-prototype.html b/PerformanceTests/Dromaeo/jslib-event-prototype.html
new file mode 100644
index 000000000..c5cf7d9ae
--- /dev/null
+++ b/PerformanceTests/Dromaeo/jslib-event-prototype.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("jslib-event-prototype");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/jslib-modify-jquery.html b/PerformanceTests/Dromaeo/jslib-modify-jquery.html
new file mode 100644
index 000000000..6e3c8d5ad
--- /dev/null
+++ b/PerformanceTests/Dromaeo/jslib-modify-jquery.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("jslib-modify-jquery");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/jslib-modify-prototype.html b/PerformanceTests/Dromaeo/jslib-modify-prototype.html
new file mode 100644
index 000000000..16b2a7d7c
--- /dev/null
+++ b/PerformanceTests/Dromaeo/jslib-modify-prototype.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("jslib-modify-prototype");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/jslib-style-jquery.html b/PerformanceTests/Dromaeo/jslib-style-jquery.html
new file mode 100644
index 000000000..f96e63eb1
--- /dev/null
+++ b/PerformanceTests/Dromaeo/jslib-style-jquery.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("jslib-style-jquery");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/jslib-style-prototype.html b/PerformanceTests/Dromaeo/jslib-style-prototype.html
new file mode 100644
index 000000000..baca04a20
--- /dev/null
+++ b/PerformanceTests/Dromaeo/jslib-style-prototype.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("jslib-style-prototype");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/jslib-traverse-jquery.html b/PerformanceTests/Dromaeo/jslib-traverse-jquery.html
new file mode 100644
index 000000000..6107af1aa
--- /dev/null
+++ b/PerformanceTests/Dromaeo/jslib-traverse-jquery.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("jslib-traverse-jquery");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/jslib-traverse-prototype.html b/PerformanceTests/Dromaeo/jslib-traverse-prototype.html
new file mode 100644
index 000000000..6baa358df
--- /dev/null
+++ b/PerformanceTests/Dromaeo/jslib-traverse-prototype.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("jslib-traverse-prototype");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/application.css b/PerformanceTests/Dromaeo/resources/dromaeo/web/application.css
new file mode 100644
index 000000000..e540dd29e
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/application.css
@@ -0,0 +1,115 @@
+ol.results { text-align: left; display: none; font-size: 10px; list-style: none; display: none; }
+.alldone ol.results { display: block; width: 48%; float: left; }
+ol.results li { clear: both; overflow: auto; }
+ol.results b { display: block; width: 200px; float: left; text-align: right; padding-right: 15px; }
+#info { clear:both;width:420px;margin:0 auto;text-align:left; padding: 10px; }
+div.results { width:420px;margin:0 auto;margin-bottom:20px;text-align:left; padding: 10px 10px 10px 10px; }
+#info span { font-weight: bold; padding-top: 8px; }
+h1 { text-align: left; }
+h1 img { float:left;margin-right: 15px;margin-top: -10px; border: 0; }
+h1 small { font-weight:normal; }
+iframe { display: none; }
+div.resultwrap { text-align: center; }
+table.results { font-size: 12px; margin: 0 auto; }
+table.results td, table.results th.name, table.results th { text-align: right; }
+table.results .winner { color: #000; background-color: #c7331d; }
+table.results .tie { color: #000; background-color: #f9f2a1; }
+
+body {
+ font: normal 11px "Lucida Grande", Helvetica, Arial, sans-serif;
+ background: black url(images/bg.png) repeat-x;
+ margin: 0px auto;
+ padding: 0px;
+ color: #eee;
+ text-align: center;
+ line-height: 180%;
+}
+div, img, form, ul {
+ margin: 0px;
+ padding: 0px;
+ border: 0px;
+}
+small {font-size: 9px;}
+div, span, td, .text_l {text-align: left;}
+.clear {clear: both;}
+.text_r {text-align: right;}
+.text_c {text-align: center;}
+a {font: normal "Arial", sans-serif; color: #f9f2a1; }
+.left {float: left;}
+.right {float: right;}
+
+#wrapper {width: 690px; margin: 0px auto; padding: 0px; margin-top: -7px; text-align: center;}
+#content {margin-bottom: 30px;}
+#main {padding-bottom: 40px;}
+
+#top {background: url(images/top.png) repeat-x; height: 250px;}
+#logo {position: absolute; top: 0; left: 0; width: 100%; text-align: center; z-index: 100;}
+#logo img { margin: 0px auto; padding: 0px;}
+.dino1 {position: absolute; top: 105px; right: 300px; z-index: 15;}
+.dino2 {position: absolute; top: 110px; left: 15%; z-index: 12;}
+.dino3 {position: absolute; top: 120px; left: 400px; z-index: 31;}
+.dino4 {position: absolute; top: 96px; left: 200px; z-index: 8;}
+.dino5 {position: absolute; top: 110px; right: 85px; z-index: 14;}
+.dino6 {position: absolute; top: 105px; left: 30%; z-index: 14;}
+.dino7 {position: absolute; top: 110px; left: 70%; z-index: 22;}
+.dino8 {position: absolute; top: 105px; left: 37%; z-index: 20;}
+.coment {position: absolute; top: 0px; right: 0px; z-index: 2; float: right;}
+
+.clouds {position: absolute; top: 10px; right: 11%; z-index: 12;}
+.clouds2 {position: absolute; top: 50px; right: 29%; z-index: 13;}
+.clouds5 {position: absolute; top: 0px; right: 15%; z-index: 16;}
+.clouds3 {position: absolute; top: 15px; left: 10%; z-index: 15;}
+.clouds4 {position: absolute; top: 10px; left: 15%; z-index: 14;}
+
+.water {position: absolute; top: 110px; right: 9%; z-index: 13;}
+
+
+/* rendered html stuff */
+
+table.results {text-align: center; margin: 0px auto; padding: 0px; background: none;}
+table.results td, table.results th {padding: 2px;}
+table.results tr.onetest td, table.results tr.onetest th {padding: 0px;}
+table.results tr.hidden { display: none; }
+#info {margin-bottom: 10px;}
+table.results .winner {background: #58bd79;}
+.name {font-weight: bold;}
+
+div.resultwrap {margin: 10px 0 10px 0;}
+div.results {padding: 10px; margin-bottom: 20px; background: #c7331d;}
+
+div.result-item { position: relative; width: 48%; float: left; overflow: hidden; margin-left: 1%; margin-right: 1%; height: 100px; }
+.alldone div.result-item { width: 98%; height: auto; margin-bottom: 10px; overflow: auto; }
+.alldone div.result-item p { width: 48%; float: left; }
+
+div.result-item p { padding: 0px 4px; }
+
+div.test { overflow: hidden; margin: 4px 0; }
+div.test b { display: block; width: 100%; text-align: left; margin: 0px; background: #c7331d; padding: 4px; }
+/*div.done div.test b {background: #58bd79;}*/
+div.done div.test b {background: #222;}
+div.bar { width: 100px; border: 1px inset #666; background: #c7331d; text-align: left; position: absolute; top: 7px; right: 4px; }
+div.bar div { height: 20px; background: #222; text-align: right; }
+div.done div.bar div {background: #58bd79; color: #000;}
+div.bar span { padding-left: 5px; padding-right: 5px; }
+
+#info { margin: auto; }
+
+h1 { font-size: 28px; border-bottom: 1px solid #AAA; position: relative; padding: 0px 1% 2px 1%;}
+h1 div.bar { font-size: 10px; width: 275px; top: -2px; right: 1%; }
+h1 input { position: absolute; top: 0px; right: 300px; }
+
+h2 { font-size: 20px; border-bottom: 1px solid #AAA; position: relative; padding: 0px 1% 2px 1%;}
+h2 a { color: #FFF; }
+h2 div.bar { font-size: 10px; width: 275px; top: -2px; right: 1%; }
+h2 input { position: absolute; top: 0px; right: 300px; }
+
+ul#tests { clear:both;width:420px;margin:0 auto;text-align:left; padding: 10px; list-style: none; }
+#tests b { background: #c7331d; color: #000; display: block; padding: 4px 0 4px 4px; margin-left: -20px; margin-bottom: 5px; font-size: 1.1em; -webkit-border-radius: 4px; -moz-border-radius: 4px; font-weight: normal; }
+#tests b.recommended { background: #58bd79; }
+#tests a:first-of-type { font-size: 1.2em; }
+#tests b a { font-weight: bold; color: #000; }
+#tests li { padding-left: 10px; padding-bottom: 5px; }
+
+#overview { position: relative; }
+#overview a { font-size: 10px; top: -29px; left: 8px; position: absolute; }
+#overview table a { position: static; }
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/favicon.ico b/PerformanceTests/Dromaeo/resources/dromaeo/web/favicon.ico
new file mode 100644
index 000000000..d44438903
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/favicon.ico
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/favicon.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/favicon.png
new file mode 100644
index 000000000..d772102a9
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/favicon.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/htmlrunner.js b/PerformanceTests/Dromaeo/resources/dromaeo/web/htmlrunner.js
new file mode 100644
index 000000000..1365792c3
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/htmlrunner.js
@@ -0,0 +1,4 @@
+var startTest = top.startTest || function(){};
+var test = top.test || function(name, fn){ fn(); };
+var endTest = top.endTest || function(){};
+var prep = top.prep || function(fn){ fn(); };
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/ie.css b/PerformanceTests/Dromaeo/resources/dromaeo/web/ie.css
new file mode 100644
index 000000000..aca378701
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/ie.css
@@ -0,0 +1,30 @@
+/* --------------------------------------------------------------
+
+ ie.css
+
+ Contains every hack for Internet Explorer versions prior
+ to IE7, so that our core files stay sweet and nimble.
+
+-------------------------------------------------------------- */
+
+/* Make sure the layout is centered in IE5 */
+body { text-align: center; }
+.container { text-align: left; }
+
+
+/* This fixes the problem where IE6 adds an extra 3px margin to
+ two columns that are floated up against each other. */
+
+* html .column { overflow-x: hidden; } /* IE6 fix */
+
+.pull-1, .pull-2, .pull-3, .pull-4,
+.push-1, .push-2, .push-3, .push-4,
+ul, ol {
+ position: relative; /* Keeps IE6 from cutting pulled/pushed images */
+}
+
+/* Fixes incorrect styling of legend in IE6 fieldsets. */
+legend { margin-bottom:1.4em; }
+
+/* Fixes incorrect placement of numbers in ol's in IE6/7 */
+ol { margin-left:2em; } \ No newline at end of file
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/bg.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/bg.png
new file mode 100644
index 000000000..bd659a8f9
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/bg.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/clouds.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/clouds.png
new file mode 100644
index 000000000..c9f7dc277
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/clouds.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/clouds2.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/clouds2.png
new file mode 100644
index 000000000..ac835dcfe
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/clouds2.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/comets.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/comets.png
new file mode 100644
index 000000000..37dd962a3
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/comets.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino1.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino1.png
new file mode 100644
index 000000000..2dda27222
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino1.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino2.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino2.png
new file mode 100644
index 000000000..ccfa15c0c
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino2.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino3.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino3.png
new file mode 100644
index 000000000..a766b28e2
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino3.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino4.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino4.png
new file mode 100644
index 000000000..03301d37f
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino4.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino5.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino5.png
new file mode 100644
index 000000000..5fd028d34
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino5.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino6.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino6.png
new file mode 100644
index 000000000..ded810640
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino6.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino7.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino7.png
new file mode 100644
index 000000000..ac2021b2e
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino7.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino8.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino8.png
new file mode 100644
index 000000000..a4b1fe401
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/dino8.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/left.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/left.png
new file mode 100644
index 000000000..b688f2b9b
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/left.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo.png
new file mode 100644
index 000000000..199fda761
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo2.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo2.png
new file mode 100644
index 000000000..427687f4b
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo2.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo3.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo3.png
new file mode 100644
index 000000000..306c485fe
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/logo3.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/right.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/right.png
new file mode 100644
index 000000000..154cb411f
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/right.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/top.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/top.png
new file mode 100644
index 000000000..24039c345
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/top.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/images/water.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/water.png
new file mode 100644
index 000000000..40a0f0d38
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/images/water.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/index.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/index.html
new file mode 100644
index 000000000..418d70008
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/index.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; utf-8" />
+ <title>Dromaeo: JavaScript Performance Testing</title>
+ <link href="reset.css" rel="stylesheet" type="text/css" />
+ <!--[if lt IE 7.]>
+ <link href="ie.css" rel="stylesheet" type="text/css" />
+ <script defer type="text/javascript" src="pngfix.js"></script>
+ <![endif]-->
+ <link href="application.css" rel="stylesheet" type="text/css" />
+<!--
+ <script src="lib/jquery-1.6.4.js"></script>
+ -->
+ <script src="jquery.js"></script>
+ <script src="json.js"></script>
+ <script src="webrunner.js"></script>
+</head>
+<body>
+ <div id="top" >
+ <div id="logo">
+ <a href="./"><img src="images/logo3.png" class="png"/></a>
+ </div>
+ <img src="images/dino1.png" class="dino1 png"/>
+ <img src="images/left.png" class="left png"/>
+ <img src="images/dino2.png" class="dino2 png"/>
+ <img src="images/dino2.png" class="dino2 png"/>
+ <img src="images/dino3.png" class="dino3 png"/>
+ <img src="images/dino4.png" class="dino4 png"/>
+ <img src="images/dino5.png" class="dino5 png"/>
+ <img src="images/dino7.png" class="dino7 png"/>
+ <img src="images/dino8.png" class="dino8 png"/>
+ <img src="images/dino6.png" class="dino6 png"/>
+ <img src="images/clouds2.png" class="clouds2 png"/>
+ <img src="images/clouds.png" class="clouds png"/>
+ <img src="images/clouds2.png" class="clouds3 png"/>
+ <img src="images/clouds.png" class="clouds4 png"/>
+ <img src="images/clouds2.png" class="clouds5 png"/>
+ <img src="images/comets.png" class="right png"/>
+ </div>
+ <div id="wrapper">
+ <div id="main">
+<div id="info"><span>Mozilla JavaScript performance test suite.</span><br/>More information about <a href="http://wiki.mozilla.org/Dromaeo">Dromaeo</a> can be found on the Mozilla wiki.</div>
+<h1 id="overview" class="test"><span>Performance Tests</span> <input type="button" id="pause" class="pause" value="Loading..."/><div class="bar"><div id="timebar" style="width:25%;"><span class="left">Est.&nbsp;Time:&nbsp;<strong id="left">0:00</strong></span></div></div><a href="./">&laquo; View All Tests</a></h1><br style="clear:both;"/>
+<ul id="tests">
+ <li><b class="recommended"><a href="?recommended">&raquo; Run Recommended Tests</a><br/>(All tests except for those testing the CSS Selector engines.)</b></li>
+ <li><b><a href="?all">&raquo; Run All Tests</a></b><br/><br/></li>
+
+ <li><b><a href="?dromaeo|sunspider|v8">&raquo; Run All JavaScript Tests</a></b></li>
+ <li><a href="?dromaeo">Dromaeo JavaScript Tests</a><br/>(Tests Strings, RegExps, Arrays, and eval.)</li>
+ <li><a href="?sunspider">SunSpider JavaScript Tests</a><br/>(From the <a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider.html">WebKit team</a>. Tests Math, Bitops, Looping, and Functions.)</li>
+ <li><a href="?v8">V8 JavaScript Tests</a><br/>(From the <a href="http://code.google.com/apis/v8/benchmarks.html">V8 team</a>. Tests Functions, Strings, and Objects.)<br/><br/></li>
+
+ <li><b><a href="?dom|jslib|cssquery">&raquo; Run All DOM Tests</a></b></li>
+ <li><a href="?dom">DOM Core Tests</a><br/>(Tests DOM Querying, Traversing, Manipulation, and Atributes.)</li>
+ <li><a href="?jslib">JavaScript Library Tests</a><br/>(Tests DOM functionality in jQuery and Prototype.)</li>
+ <li><a href="?cssquery">CSS Selector Tests</a><br/>(From the <a href="http://code.google.com/p/slickspeed/">MooTools team</a>. Tests jQuery, Prototype, Dojo, MooTools, YUI, and ExtJS.)</li>
+</ul>
+</div>
+</div>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/jquery.js b/PerformanceTests/Dromaeo/resources/dromaeo/web/jquery.js
new file mode 100644
index 000000000..a73ecd008
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/jquery.js
@@ -0,0 +1,3408 @@
+(function(){
+/*
+ * jQuery 1.2.3 - New Wave Javascript
+ *
+ * Copyright (c) 2008 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $
+ * $Rev: 4663 $
+ */
+
+// Map over jQuery in case of overwrite
+if ( window.jQuery )
+ var _jQuery = window.jQuery;
+
+var jQuery = window.jQuery = function( selector, context ) {
+ // The jQuery object is actually just the init constructor 'enhanced'
+ return new jQuery.prototype.init( selector, context );
+};
+
+// Map over the $ in case of overwrite
+if ( window.$ )
+ var _$ = window.$;
+
+// Map the jQuery namespace to the '$' one
+window.$ = jQuery;
+
+// A simple way to check for HTML strings or ID strings
+// (both of which we optimize for)
+var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
+
+// Is it a simple selector
+var isSimple = /^.[^:#\[\.]*$/;
+
+jQuery.fn = jQuery.prototype = {
+ init: function( selector, context ) {
+ // Make sure that a selection was provided
+ selector = selector || document;
+
+ // Handle $(DOMElement)
+ if ( selector.nodeType ) {
+ this[0] = selector;
+ this.length = 1;
+ return this;
+
+ // Handle HTML strings
+ } else if ( typeof selector == "string" ) {
+ // Are we dealing with HTML string or an ID?
+ var match = quickExpr.exec( selector );
+
+ // Verify a match, and that no context was specified for #id
+ if ( match && (match[1] || !context) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[1] )
+ selector = jQuery.clean( [ match[1] ], context );
+
+ // HANDLE: $("#id")
+ else {
+ var elem = document.getElementById( match[3] );
+
+ // Make sure an element was located
+ if ( elem )
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id != match[3] )
+ return jQuery().find( selector );
+
+ // Otherwise, we inject the element directly into the jQuery object
+ else {
+ this[0] = elem;
+ this.length = 1;
+ return this;
+ }
+
+ else
+ selector = [];
+ }
+
+ // HANDLE: $(expr, [context])
+ // (which is just equivalent to: $(content).find(expr)
+ } else
+ return new jQuery( context ).find( selector );
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) )
+ return new jQuery( document )[ jQuery.fn.ready ? "ready" : "load" ]( selector );
+
+ return this.setArray(
+ // HANDLE: $(array)
+ selector.constructor == Array && selector ||
+
+ // HANDLE: $(arraylike)
+ // Watch for when an array-like object, contains DOM nodes, is passed in as the selector
+ (selector.jquery || selector.length && selector != window && !selector.nodeType && selector[0] != undefined && selector[0].nodeType) && jQuery.makeArray( selector ) ||
+
+ // HANDLE: $(*)
+ [ selector ] );
+ },
+
+ // The current version of jQuery being used
+ jquery: "1.2.3",
+
+ // The number of elements contained in the matched element set
+ size: function() {
+ return this.length;
+ },
+
+ // The number of elements contained in the matched element set
+ length: 0,
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+ return num == undefined ?
+
+ // Return a 'clean' array
+ jQuery.makeArray( this ) :
+
+ // Return just the object
+ this[ num ];
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems ) {
+ // Build a new jQuery matched element set
+ var ret = jQuery( elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Force the current matched set of elements to become
+ // the specified array of elements (destroying the stack in the process)
+ // You should use pushStack() in order to do this, but maintain the stack
+ setArray: function( elems ) {
+ // Resetting the length to 0, then using the native Array push
+ // is a super-fast way to populate an object with array-like properties
+ this.length = 0;
+ Array.prototype.push.apply( this, elems );
+
+ return this;
+ },
+
+ // Execute a callback for every element in the matched set.
+ // (You can seed the arguments with an array of args, but this is
+ // only used internally.)
+ each: function( callback, args ) {
+ return jQuery.each( this, callback, args );
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function( elem ) {
+ var ret = -1;
+
+ // Locate the position of the desired element
+ this.each(function(i){
+ if ( this == elem )
+ ret = i;
+ });
+
+ return ret;
+ },
+
+ attr: function( name, value, type ) {
+ var options = name;
+
+ // Look for the case where we're accessing a style value
+ if ( name.constructor == String )
+ if ( value == undefined )
+ return this.length && jQuery[ type || "attr" ]( this[0], name ) || undefined;
+
+ else {
+ options = {};
+ options[ name ] = value;
+ }
+
+ // Check to see if we're setting style values
+ return this.each(function(i){
+ // Set all the styles
+ for ( name in options )
+ jQuery.attr(
+ type ?
+ this.style :
+ this,
+ name, jQuery.prop( this, options[ name ], type, i, name )
+ );
+ });
+ },
+
+ css: function( key, value ) {
+ // ignore negative width and height values
+ if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
+ value = undefined;
+ return this.attr( key, value, "curCSS" );
+ },
+
+ text: function( text ) {
+ if ( typeof text != "object" && text != null )
+ return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
+
+ var ret = "";
+
+ jQuery.each( text || this, function(){
+ jQuery.each( this.childNodes, function(){
+ if ( this.nodeType != 8 )
+ ret += this.nodeType != 1 ?
+ this.nodeValue :
+ jQuery.fn.text( [ this ] );
+ });
+ });
+
+ return ret;
+ },
+
+ wrapAll: function( html ) {
+ if ( this[0] )
+ // The elements to wrap the target around
+ jQuery( html, this[0].ownerDocument )
+ .clone()
+ .insertBefore( this[0] )
+ .map(function(){
+ var elem = this;
+
+ while ( elem.firstChild )
+ elem = elem.firstChild;
+
+ return elem;
+ })
+ .append(this);
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ return this.each(function(){
+ jQuery( this ).contents().wrapAll( html );
+ });
+ },
+
+ wrap: function( html ) {
+ return this.each(function(){
+ jQuery( this ).wrapAll( html );
+ });
+ },
+
+ append: function() {
+ return this.domManip(arguments, true, false, function(elem){
+ if (this.nodeType == 1)
+ this.appendChild( elem );
+ });
+ },
+
+ prepend: function() {
+ return this.domManip(arguments, true, true, function(elem){
+ if (this.nodeType == 1)
+ this.insertBefore( elem, this.firstChild );
+ });
+ },
+
+ before: function() {
+ return this.domManip(arguments, false, false, function(elem){
+ this.parentNode.insertBefore( elem, this );
+ });
+ },
+
+ after: function() {
+ return this.domManip(arguments, false, true, function(elem){
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ });
+ },
+
+ end: function() {
+ return this.prevObject || jQuery( [] );
+ },
+
+ find: function( selector ) {
+ var elems = jQuery.map(this, function(elem){
+ return jQuery.find( selector, elem );
+ });
+
+ return this.pushStack( /[^+>] [^+>]/.test( selector ) || selector.indexOf("..") > -1 ?
+ jQuery.unique( elems ) :
+ elems );
+ },
+
+ clone: function( events ) {
+ // Do the clone
+ var ret = this.map(function(){
+ if ( jQuery.browser.msie && !jQuery.isXMLDoc(this) ) {
+ // IE copies events bound via attachEvent when
+ // using cloneNode. Calling detachEvent on the
+ // clone will also remove the events from the orignal
+ // In order to get around this, we use innerHTML.
+ // Unfortunately, this means some modifications to
+ // attributes in IE that are actually only stored
+ // as properties will not be copied (such as the
+ // the name attribute on an input).
+ var clone = this.cloneNode(true),
+ container = document.createElement("div");
+ container.appendChild(clone);
+ return jQuery.clean([container.innerHTML])[0];
+ } else
+ return this.cloneNode(true);
+ });
+
+ // Need to set the expando to null on the cloned set if it exists
+ // removeData doesn't work here, IE removes it from the original as well
+ // this is primarily for IE but the data expando shouldn't be copied over in any browser
+ var clone = ret.find("*").andSelf().each(function(){
+ if ( this[ expando ] != undefined )
+ this[ expando ] = null;
+ });
+
+ // Copy the events from the original to the clone
+ if ( events === true )
+ this.find("*").andSelf().each(function(i){
+ if (this.nodeType == 3)
+ return;
+ var events = jQuery.data( this, "events" );
+
+ for ( var type in events )
+ for ( var handler in events[ type ] )
+ jQuery.event.add( clone[ i ], type, events[ type ][ handler ], events[ type ][ handler ].data );
+ });
+
+ // Return the cloned set
+ return ret;
+ },
+
+ filter: function( selector ) {
+ return this.pushStack(
+ jQuery.isFunction( selector ) &&
+ jQuery.grep(this, function(elem, i){
+ return selector.call( elem, i );
+ }) ||
+
+ jQuery.multiFilter( selector, this ) );
+ },
+
+ not: function( selector ) {
+ if ( selector.constructor == String )
+ // test special case where just one selector is passed in
+ if ( isSimple.test( selector ) )
+ return this.pushStack( jQuery.multiFilter( selector, this, true ) );
+ else
+ selector = jQuery.multiFilter( selector, this );
+
+ var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
+ return this.filter(function() {
+ return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
+ });
+ },
+
+ add: function( selector ) {
+ return !selector ? this : this.pushStack( jQuery.merge(
+ this.get(),
+ selector.constructor == String ?
+ jQuery( selector ).get() :
+ selector.length != undefined && (!selector.nodeName || jQuery.nodeName(selector, "form")) ?
+ selector : [selector] ) );
+ },
+
+ is: function( selector ) {
+ return selector ?
+ jQuery.multiFilter( selector, this ).length > 0 :
+ false;
+ },
+
+ hasClass: function( selector ) {
+ return this.is( "." + selector );
+ },
+
+ val: function( value ) {
+ if ( value == undefined ) {
+
+ if ( this.length ) {
+ var elem = this[0];
+
+ // We need to handle select boxes special
+ if ( jQuery.nodeName( elem, "select" ) ) {
+ var index = elem.selectedIndex,
+ values = [],
+ options = elem.options,
+ one = elem.type == "select-one";
+
+ // Nothing was selected
+ if ( index < 0 )
+ return null;
+
+ // Loop through all the selected options
+ for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
+ var option = options[ i ];
+
+ if ( option.selected ) {
+ // Get the specifc value for the option
+ value = jQuery.browser.msie && !option.attributes.value.specified ? option.text : option.value;
+
+ // We don't need an array for one selects
+ if ( one )
+ return value;
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ return values;
+
+ // Everything else, we just grab the value
+ } else
+ return (this[0].value || "").replace(/\r/g, "");
+
+ }
+
+ return undefined;
+ }
+
+ return this.each(function(){
+ if ( this.nodeType != 1 )
+ return;
+
+ if ( value.constructor == Array && /radio|checkbox/.test( this.type ) )
+ this.checked = (jQuery.inArray(this.value, value) >= 0 ||
+ jQuery.inArray(this.name, value) >= 0);
+
+ else if ( jQuery.nodeName( this, "select" ) ) {
+ var values = value.constructor == Array ?
+ value :
+ [ value ];
+
+ jQuery( "option", this ).each(function(){
+ this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
+ jQuery.inArray( this.text, values ) >= 0);
+ });
+
+ if ( !values.length )
+ this.selectedIndex = -1;
+
+ } else
+ this.value = value;
+ });
+ },
+
+ html: function( value ) {
+ return value == undefined ?
+ (this.length ?
+ this[0].innerHTML :
+ null) :
+ this.empty().append( value );
+ },
+
+ replaceWith: function( value ) {
+ return this.after( value ).remove();
+ },
+
+ eq: function( i ) {
+ return this.slice( i, i + 1 );
+ },
+
+ slice: function() {
+ return this.pushStack( Array.prototype.slice.apply( this, arguments ) );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map(this, function(elem, i){
+ return callback.call( elem, i, elem );
+ }));
+ },
+
+ andSelf: function() {
+ return this.add( this.prevObject );
+ },
+
+ data: function( key, value ){
+ var parts = key.split(".");
+ parts[1] = parts[1] ? "." + parts[1] : "";
+
+ if ( value == null ) {
+ var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+ if ( data == undefined && this.length )
+ data = jQuery.data( this[0], key );
+
+ return data == null && parts[1] ?
+ this.data( parts[0] ) :
+ data;
+ } else
+ return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
+ jQuery.data( this, key, value );
+ });
+ },
+
+ removeData: function( key ){
+ return this.each(function(){
+ jQuery.removeData( this, key );
+ });
+ },
+
+ domManip: function( args, table, reverse, callback ) {
+ var clone = this.length > 1, elems;
+
+ return this.each(function(){
+ if ( !elems ) {
+ elems = jQuery.clean( args, this.ownerDocument );
+
+ if ( reverse )
+ elems.reverse();
+ }
+
+ var obj = this;
+
+ if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) )
+ obj = this.getElementsByTagName("tbody")[0] || this.appendChild( this.ownerDocument.createElement("tbody") );
+
+ var scripts = jQuery( [] );
+
+ jQuery.each(elems, function(){
+ var elem = clone ?
+ jQuery( this ).clone( true )[0] :
+ this;
+
+ // execute all scripts after the elements have been injected
+ if ( jQuery.nodeName( elem, "script" ) ) {
+ scripts = scripts.add( elem );
+ } else {
+ // Remove any inner scripts for later evaluation
+ if ( elem.nodeType == 1 )
+ scripts = scripts.add( jQuery( "script", elem ).remove() );
+
+ // Inject the elements into the document
+ callback.call( obj, elem );
+ }
+ });
+
+ scripts.each( evalScript );
+ });
+ }
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.prototype.init.prototype = jQuery.prototype;
+
+function evalScript( i, elem ) {
+ if ( elem.src )
+ jQuery.ajax({
+ url: elem.src,
+ async: false,
+ dataType: "script"
+ });
+
+ else
+ jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
+
+ if ( elem.parentNode )
+ elem.parentNode.removeChild( elem );
+}
+
+jQuery.extend = jQuery.fn.extend = function() {
+ // copy reference to target object
+ var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
+
+ // Handle a deep copy situation
+ if ( target.constructor == Boolean ) {
+ deep = target;
+ target = arguments[1] || {};
+ // skip the boolean and the target
+ i = 2;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target != "object" && typeof target != "function" )
+ target = {};
+
+ // extend jQuery itself if only one argument is passed
+ if ( length == 1 ) {
+ target = this;
+ i = 0;
+ }
+
+ for ( ; i < length; i++ )
+ // Only deal with non-null/undefined values
+ if ( (options = arguments[ i ]) != null )
+ // Extend the base object
+ for ( var name in options ) {
+ // Prevent never-ending loop
+ if ( target === options[ name ] )
+ continue;
+
+ // Recurse if we're merging object values
+ if ( deep && options[ name ] && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
+ target[ name ] = jQuery.extend( target[ name ], options[ name ] );
+
+ // Don't bring in undefined values
+ else if ( options[ name ] != undefined )
+ target[ name ] = options[ name ];
+
+ }
+
+ // Return the modified object
+ return target;
+};
+
+var expando = "jQuery" + (new Date()).getTime(), uuid = 0, windowData = {};
+
+// exclude the following css properties to add px
+var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i;
+
+jQuery.extend({
+ noConflict: function( deep ) {
+ window.$ = _$;
+
+ if ( deep )
+ window.jQuery = _jQuery;
+
+ return jQuery;
+ },
+
+ // See test/unit/core.js for details concerning this function.
+ isFunction: function( fn ) {
+ return !!fn && typeof fn != "string" && !fn.nodeName &&
+ fn.constructor != Array && /function/i.test( fn + "" );
+ },
+
+ // check if an element is in a (or is an) XML document
+ isXMLDoc: function( elem ) {
+ return elem.documentElement && !elem.body ||
+ elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
+ },
+
+ // Evalulates a script in a global context
+ globalEval: function( data ) {
+ data = jQuery.trim( data );
+
+ if ( data ) {
+ // Inspired by code by Andrea Giammarchi
+ // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
+ var head = document.getElementsByTagName("head")[0] || document.documentElement,
+ script = document.createElement("script");
+
+ script.type = "text/javascript";
+ if ( jQuery.browser.msie )
+ script.text = data;
+ else
+ script.appendChild( document.createTextNode( data ) );
+
+ head.appendChild( script );
+ head.removeChild( script );
+ }
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
+ },
+
+ cache: {},
+
+ data: function( elem, name, data ) {
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var id = elem[ expando ];
+
+ // Compute a unique ID for the element
+ if ( !id )
+ id = elem[ expando ] = ++uuid;
+
+ // Only generate the data cache if we're
+ // trying to access or manipulate it
+ if ( name && !jQuery.cache[ id ] )
+ jQuery.cache[ id ] = {};
+
+ // Prevent overriding the named cache with undefined values
+ if ( data != undefined )
+ jQuery.cache[ id ][ name ] = data;
+
+ // Return the named cache data, or the ID for the element
+ return name ?
+ jQuery.cache[ id ][ name ] :
+ id;
+ },
+
+ removeData: function( elem, name ) {
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var id = elem[ expando ];
+
+ // If we want to remove a specific section of the element's data
+ if ( name ) {
+ if ( jQuery.cache[ id ] ) {
+ // Remove the section of cache data
+ delete jQuery.cache[ id ][ name ];
+
+ // If we've removed all the data, remove the element's cache
+ name = "";
+
+ for ( name in jQuery.cache[ id ] )
+ break;
+
+ if ( !name )
+ jQuery.removeData( elem );
+ }
+
+ // Otherwise, we want to remove all of the element's data
+ } else {
+ // Clean up the element expando
+ try {
+ delete elem[ expando ];
+ } catch(e){
+ // IE has trouble directly removing the expando
+ // but it's ok with using removeAttribute
+ if ( elem.removeAttribute )
+ elem.removeAttribute( expando );
+ }
+
+ // Completely remove the data cache
+ delete jQuery.cache[ id ];
+ }
+ },
+
+ // args is for internal usage only
+ each: function( object, callback, args ) {
+ if ( args ) {
+ if ( object.length == undefined ) {
+ for ( var name in object )
+ if ( callback.apply( object[ name ], args ) === false )
+ break;
+ } else
+ for ( var i = 0, length = object.length; i < length; i++ )
+ if ( callback.apply( object[ i ], args ) === false )
+ break;
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if ( object.length == undefined ) {
+ for ( var name in object )
+ if ( callback.call( object[ name ], name, object[ name ] ) === false )
+ break;
+ } else
+ for ( var i = 0, length = object.length, value = object[0];
+ i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
+ }
+
+ return object;
+ },
+
+ prop: function( elem, value, type, i, name ) {
+ // Handle executable functions
+ if ( jQuery.isFunction( value ) )
+ value = value.call( elem, i );
+
+ // Handle passing in a number to a CSS property
+ return value && value.constructor == Number && type == "curCSS" && !exclude.test( name ) ?
+ value + "px" :
+ value;
+ },
+
+ className: {
+ // internal only, use addClass("class")
+ add: function( elem, classNames ) {
+ jQuery.each((classNames || "").split(/\s+/), function(i, className){
+ if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
+ elem.className += (elem.className ? " " : "") + className;
+ });
+ },
+
+ // internal only, use removeClass("class")
+ remove: function( elem, classNames ) {
+ if (elem.nodeType == 1)
+ elem.className = classNames != undefined ?
+ jQuery.grep(elem.className.split(/\s+/), function(className){
+ return !jQuery.className.has( classNames, className );
+ }).join(" ") :
+ "";
+ },
+
+ // internal only, use is(".class")
+ has: function( elem, className ) {
+ return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
+ }
+ },
+
+ // A method for quickly swapping in/out CSS properties to get correct calculations
+ swap: function( elem, options, callback ) {
+ var old = {};
+ // Remember the old values, and insert the new ones
+ for ( var name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ callback.call( elem );
+
+ // Revert the old values
+ for ( var name in options )
+ elem.style[ name ] = old[ name ];
+ },
+
+ css: function( elem, name, force ) {
+ if ( name == "width" || name == "height" ) {
+ var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ];
+
+ function getWH() {
+ val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
+ var padding = 0, border = 0;
+ jQuery.each( which, function() {
+ padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
+ border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
+ });
+ val -= Math.round(padding + border);
+ }
+
+ if ( jQuery(elem).is(":visible") )
+ getWH();
+ else
+ jQuery.swap( elem, props, getWH );
+
+ return Math.max(0, val);
+ }
+
+ return jQuery.curCSS( elem, name, force );
+ },
+
+ curCSS: function( elem, name, force ) {
+ var ret;
+
+ // A helper method for determining if an element's values are broken
+ function color( elem ) {
+ if ( !jQuery.browser.safari )
+ return false;
+
+ var ret = document.defaultView.getComputedStyle( elem, null );
+ return !ret || ret.getPropertyValue("color") == "";
+ }
+
+ // We need to handle opacity special in IE
+ if ( name == "opacity" && jQuery.browser.msie ) {
+ ret = jQuery.attr( elem.style, "opacity" );
+
+ return ret == "" ?
+ "1" :
+ ret;
+ }
+ // Opera sometimes will give the wrong display answer, this fixes it, see #2037
+ if ( jQuery.browser.opera && name == "display" ) {
+ var save = elem.style.outline;
+ elem.style.outline = "0 solid black";
+ elem.style.outline = save;
+ }
+
+ // Make sure we're using the right name for getting the float value
+ if ( name.match( /float/i ) )
+ name = styleFloat;
+
+ if ( !force && elem.style && elem.style[ name ] )
+ ret = elem.style[ name ];
+
+ else if ( document.defaultView && document.defaultView.getComputedStyle ) {
+
+ // Only "float" is needed here
+ if ( name.match( /float/i ) )
+ name = "float";
+
+ name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
+
+ var getComputedStyle = document.defaultView.getComputedStyle( elem, null );
+
+ if ( getComputedStyle && !color( elem ) )
+ ret = getComputedStyle.getPropertyValue( name );
+
+ // If the element isn't reporting its values properly in Safari
+ // then some display: none elements are involved
+ else {
+ var swap = [], stack = [];
+
+ // Locate all of the parent display: none elements
+ for ( var a = elem; a && color(a); a = a.parentNode )
+ stack.unshift(a);
+
+ // Go through and make them visible, but in reverse
+ // (It would be better if we knew the exact display type that they had)
+ for ( var i = 0; i < stack.length; i++ )
+ if ( color( stack[ i ] ) ) {
+ swap[ i ] = stack[ i ].style.display;
+ stack[ i ].style.display = "block";
+ }
+
+ // Since we flip the display style, we have to handle that
+ // one special, otherwise get the value
+ ret = name == "display" && swap[ stack.length - 1 ] != null ?
+ "none" :
+ ( getComputedStyle && getComputedStyle.getPropertyValue( name ) ) || "";
+
+ // Finally, revert the display styles back
+ for ( var i = 0; i < swap.length; i++ )
+ if ( swap[ i ] != null )
+ stack[ i ].style.display = swap[ i ];
+ }
+
+ // We should always get a number back from opacity
+ if ( name == "opacity" && ret == "" )
+ ret = "1";
+
+ } else if ( elem.currentStyle ) {
+ var camelCase = name.replace(/\-(\w)/g, function(all, letter){
+ return letter.toUpperCase();
+ });
+
+ ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
+
+ // From the awesome hack by Dean Edwards
+ // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+ // If we're not dealing with a regular pixel number
+ // but a number that has a weird ending, we need to convert it to pixels
+ if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
+ // Remember the original values
+ var style = elem.style.left, runtimeStyle = elem.runtimeStyle.left;
+
+ // Put in the new values to get a computed value out
+ elem.runtimeStyle.left = elem.currentStyle.left;
+ elem.style.left = ret || 0;
+ ret = elem.style.pixelLeft + "px";
+
+ // Revert the changed values
+ elem.style.left = style;
+ elem.runtimeStyle.left = runtimeStyle;
+ }
+ }
+
+ return ret;
+ },
+
+ clean: function( elems, context ) {
+ var ret = [];
+ context = context || document;
+ // !context.createElement fails in IE with an error but returns typeof 'object'
+ if (typeof context.createElement == 'undefined')
+ context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
+
+ jQuery.each(elems, function(i, elem){
+ if ( !elem )
+ return;
+
+ if ( elem.constructor == Number )
+ elem = elem.toString();
+
+ // Convert html string into DOM nodes
+ if ( typeof elem == "string" ) {
+ // Fix "XHTML"-style tags in all browsers
+ elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
+ return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
+ all :
+ front + "></" + tag + ">";
+ });
+
+ // Trim whitespace, otherwise indexOf won't work as expected
+ var tags = jQuery.trim( elem ).toLowerCase(), div = context.createElement("div");
+
+ var wrap =
+ // option or optgroup
+ !tags.indexOf("<opt") &&
+ [ 1, "<select multiple='multiple'>", "</select>" ] ||
+
+ !tags.indexOf("<leg") &&
+ [ 1, "<fieldset>", "</fieldset>" ] ||
+
+ tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
+ [ 1, "<table>", "</table>" ] ||
+
+ !tags.indexOf("<tr") &&
+ [ 2, "<table><tbody>", "</tbody></table>" ] ||
+
+ // <thead> matched above
+ (!tags.indexOf("<td") || !tags.indexOf("<th")) &&
+ [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] ||
+
+ !tags.indexOf("<col") &&
+ [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] ||
+
+ // IE can't serialize <link> and <script> tags normally
+ jQuery.browser.msie &&
+ [ 1, "div<div>", "</div>" ] ||
+
+ [ 0, "", "" ];
+
+ // Go to html and back, then peel off extra wrappers
+ div.innerHTML = wrap[1] + elem + wrap[2];
+
+ // Move to the right depth
+ while ( wrap[0]-- )
+ div = div.lastChild;
+
+ // Remove IE's autoinserted <tbody> from table fragments
+ if ( jQuery.browser.msie ) {
+
+ // String was a <table>, *may* have spurious <tbody>
+ var tbody = !tags.indexOf("<table") && tags.indexOf("<tbody") < 0 ?
+ div.firstChild && div.firstChild.childNodes :
+
+ // String was a bare <thead> or <tfoot>
+ wrap[1] == "<table>" && tags.indexOf("<tbody") < 0 ?
+ div.childNodes :
+ [];
+
+ for ( var j = tbody.length - 1; j >= 0 ; --j )
+ if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length )
+ tbody[ j ].parentNode.removeChild( tbody[ j ] );
+
+ // IE completely kills leading whitespace when innerHTML is used
+ if ( /^\s/.test( elem ) )
+ div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
+
+ }
+
+ elem = jQuery.makeArray( div.childNodes );
+ }
+
+ if ( elem.length === 0 && (!jQuery.nodeName( elem, "form" ) && !jQuery.nodeName( elem, "select" )) )
+ return;
+
+ if ( elem[0] == undefined || jQuery.nodeName( elem, "form" ) || elem.options )
+ ret.push( elem );
+
+ else
+ ret = jQuery.merge( ret, elem );
+
+ });
+
+ return ret;
+ },
+
+ attr: function( elem, name, value ) {
+ // don't set attributes on text and comment nodes
+ if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
+ return undefined;
+
+ var fix = jQuery.isXMLDoc( elem ) ?
+ {} :
+ jQuery.props;
+
+ // Safari mis-reports the default selected property of a hidden option
+ // Accessing the parent's selectedIndex property fixes it
+ if ( name == "selected" && jQuery.browser.safari )
+ elem.parentNode.selectedIndex;
+
+ // Certain attributes only work when accessed via the old DOM 0 way
+ if ( fix[ name ] ) {
+ if ( value != undefined )
+ elem[ fix[ name ] ] = value;
+
+ return elem[ fix[ name ] ];
+
+ } else if ( jQuery.browser.msie && name == "style" )
+ return jQuery.attr( elem.style, "cssText", value );
+
+ else if ( value == undefined && jQuery.browser.msie && jQuery.nodeName( elem, "form" ) && (name == "action" || name == "method") )
+ return elem.getAttributeNode( name ).nodeValue;
+
+ // IE elem.getAttribute passes even for style
+ else if ( elem.tagName ) {
+
+ if ( value != undefined ) {
+ // We can't allow the type property to be changed (since it causes problems in IE)
+ if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
+ throw "type property can't be changed";
+
+ // convert the value to a string (all browsers do this but IE) see #1070
+ elem.setAttribute( name, "" + value );
+ }
+
+ if ( jQuery.browser.msie && /href|src/.test( name ) && !jQuery.isXMLDoc( elem ) )
+ return elem.getAttribute( name, 2 );
+
+ return elem.getAttribute( name );
+
+ // elem is actually elem.style ... set the style
+ } else {
+ // IE actually uses filters for opacity
+ if ( name == "opacity" && jQuery.browser.msie ) {
+ if ( value != undefined ) {
+ // IE has trouble with opacity if it does not have layout
+ // Force it by setting the zoom level
+ elem.zoom = 1;
+
+ // Set the alpha filter to set the opacity
+ elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
+ (parseFloat( value ).toString() == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
+ }
+
+ return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
+ (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100).toString() :
+ "";
+ }
+
+ name = name.replace(/-([a-z])/ig, function(all, letter){
+ return letter.toUpperCase();
+ });
+
+ if ( value != undefined )
+ elem[ name ] = value;
+
+ return elem[ name ];
+ }
+ },
+
+ trim: function( text ) {
+ return (text || "").replace( /^\s+|\s+$/g, "" );
+ },
+
+ makeArray: function( array ) {
+ var ret = [];
+
+ // Need to use typeof to fight Safari childNodes crashes
+ if ( typeof array != "array" )
+ for ( var i = 0, length = array.length; i < length; i++ )
+ ret.push( array[ i ] );
+ else
+ ret = array.slice( 0 );
+
+ return ret;
+ },
+
+ inArray: function( elem, array ) {
+ for ( var i = 0, length = array.length; i < length; i++ )
+ if ( array[ i ] == elem )
+ return i;
+
+ return -1;
+ },
+
+ merge: function( first, second ) {
+ // We have to loop this way because IE & Opera overwrite the length
+ // expando of getElementsByTagName
+
+ // Also, we need to make sure that the correct elements are being returned
+ // (IE returns comment nodes in a '*' query)
+ if ( jQuery.browser.msie ) {
+ for ( var i = 0; second[ i ]; i++ )
+ if ( second[ i ].nodeType != 8 )
+ first.push( second[ i ] );
+
+ } else
+ for ( var i = 0; second[ i ]; i++ )
+ first.push( second[ i ] );
+
+ return first;
+ },
+
+ unique: function( array ) {
+ var ret = [], done = {};
+
+ try {
+
+ for ( var i = 0, length = array.length; i < length; i++ ) {
+ var id = jQuery.data( array[ i ] );
+
+ if ( !done[ id ] ) {
+ done[ id ] = true;
+ ret.push( array[ i ] );
+ }
+ }
+
+ } catch( e ) {
+ ret = array;
+ }
+
+ return ret;
+ },
+
+ grep: function( elems, callback, inv ) {
+ var ret = [];
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( var i = 0, length = elems.length; i < length; i++ )
+ if ( !inv && callback( elems[ i ], i ) || inv && !callback( elems[ i ], i ) )
+ ret.push( elems[ i ] );
+
+ return ret;
+ },
+
+ map: function( elems, callback ) {
+ var ret = [];
+
+ // Go through the array, translating each of the items to their
+ // new value (or values).
+ for ( var i = 0, length = elems.length; i < length; i++ ) {
+ var value = callback( elems[ i ], i );
+
+ if ( value !== null && value != undefined ) {
+ if ( value.constructor != Array )
+ value = [ value ];
+
+ ret = ret.concat( value );
+ }
+ }
+
+ return ret;
+ }
+});
+
+var userAgent = navigator.userAgent.toLowerCase();
+
+// Figure out what browser is being used
+jQuery.browser = {
+ version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
+ safari: /webkit/.test( userAgent ),
+ opera: /opera/.test( userAgent ),
+ msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
+ mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
+};
+
+var styleFloat = jQuery.browser.msie ?
+ "styleFloat" :
+ "cssFloat";
+
+jQuery.extend({
+ // Check to see if the W3C box model is being used
+ boxModel: !jQuery.browser.msie || document.compatMode == "CSS1Compat",
+
+ props: {
+ "for": "htmlFor",
+ "class": "className",
+ "float": styleFloat,
+ cssFloat: styleFloat,
+ styleFloat: styleFloat,
+ innerHTML: "innerHTML",
+ className: "className",
+ value: "value",
+ disabled: "disabled",
+ checked: "checked",
+ readonly: "readOnly",
+ selected: "selected",
+ maxlength: "maxLength",
+ selectedIndex: "selectedIndex",
+ defaultValue: "defaultValue",
+ tagName: "tagName",
+ nodeName: "nodeName"
+ }
+});
+
+jQuery.each({
+ parent: function(elem){return elem.parentNode;},
+ parents: function(elem){return jQuery.dir(elem,"parentNode");},
+ next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
+ prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},
+ nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},
+ prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},
+ siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},
+ children: function(elem){return jQuery.sibling(elem.firstChild);},
+ contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}
+}, function(name, fn){
+ jQuery.fn[ name ] = function( selector ) {
+ var ret = jQuery.map( this, fn );
+
+ if ( selector && typeof selector == "string" )
+ ret = jQuery.multiFilter( selector, ret );
+
+ return this.pushStack( jQuery.unique( ret ) );
+ };
+});
+
+jQuery.each({
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function(name, original){
+ jQuery.fn[ name ] = function() {
+ var args = arguments;
+
+ return this.each(function(){
+ for ( var i = 0, length = args.length; i < length; i++ )
+ jQuery( args[ i ] )[ original ]( this );
+ });
+ };
+});
+
+jQuery.each({
+ removeAttr: function( name ) {
+ jQuery.attr( this, name, "" );
+ if (this.nodeType == 1)
+ this.removeAttribute( name );
+ },
+
+ addClass: function( classNames ) {
+ jQuery.className.add( this, classNames );
+ },
+
+ removeClass: function( classNames ) {
+ jQuery.className.remove( this, classNames );
+ },
+
+ toggleClass: function( classNames ) {
+ jQuery.className[ jQuery.className.has( this, classNames ) ? "remove" : "add" ]( this, classNames );
+ },
+
+ remove: function( selector ) {
+ if ( !selector || jQuery.filter( selector, [ this ] ).r.length ) {
+ // Prevent memory leaks
+ jQuery( "*", this ).add(this).each(function(){
+ jQuery.event.remove(this);
+ jQuery.removeData(this);
+ });
+ if (this.parentNode)
+ this.parentNode.removeChild( this );
+ }
+ },
+
+ empty: function() {
+ // Remove element nodes and prevent memory leaks
+ jQuery( ">*", this ).remove();
+
+ // Remove any remaining nodes
+ while ( this.firstChild )
+ this.removeChild( this.firstChild );
+ }
+}, function(name, fn){
+ jQuery.fn[ name ] = function(){
+ return this.each( fn, arguments );
+ };
+});
+
+jQuery.each([ "Height", "Width" ], function(i, name){
+ var type = name.toLowerCase();
+
+ jQuery.fn[ type ] = function( size ) {
+ // Get window width or height
+ return this[0] == window ?
+ // Opera reports document.body.client[Width/Height] properly in both quirks and standards
+ jQuery.browser.opera && document.body[ "client" + name ] ||
+
+ // Safari reports inner[Width/Height] just fine (Mozilla and Opera include scroll bar widths)
+ jQuery.browser.safari && window[ "inner" + name ] ||
+
+ // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
+ document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] || document.body[ "client" + name ] :
+
+ // Get document width or height
+ this[0] == document ?
+ // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
+ Math.max(
+ Math.max(document.body["scroll" + name], document.documentElement["scroll" + name]),
+ Math.max(document.body["offset" + name], document.documentElement["offset" + name])
+ ) :
+
+ // Get or set width or height on the element
+ size == undefined ?
+ // Get width or height on the element
+ (this.length ? jQuery.css( this[0], type ) : null) :
+
+ // Set the width or height on the element (default to pixels if value is unitless)
+ this.css( type, size.constructor == String ? size : size + "px" );
+ };
+});
+
+var chars = jQuery.browser.safari && parseInt(jQuery.browser.version) < 417 ?
+ "(?:[\\w*_-]|\\\\.)" :
+ "(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",
+ quickChild = new RegExp("^>\\s*(" + chars + "+)"),
+ quickID = new RegExp("^(" + chars + "+)(#)(" + chars + "+)"),
+ quickClass = new RegExp("^([#.]?)(" + chars + "*)");
+
+jQuery.extend({
+ expr: {
+ "": function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},
+ "#": function(a,i,m){return a.getAttribute("id")==m[2];},
+ ":": {
+ // Position Checks
+ lt: function(a,i,m){return i<m[3]-0;},
+ gt: function(a,i,m){return i>m[3]-0;},
+ nth: function(a,i,m){return m[3]-0==i;},
+ eq: function(a,i,m){return m[3]-0==i;},
+ first: function(a,i){return i==0;},
+ last: function(a,i,m,r){return i==r.length-1;},
+ even: function(a,i){return i%2==0;},
+ odd: function(a,i){return i%2;},
+
+ // Child Checks
+ "first-child": function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},
+ "last-child": function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},
+ "only-child": function(a){return !jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},
+
+ // Parent Checks
+ parent: function(a){return a.firstChild;},
+ empty: function(a){return !a.firstChild;},
+
+ // Text Check
+ contains: function(a,i,m){return (a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},
+
+ // Visibility
+ visible: function(a){return "hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},
+ hidden: function(a){return "hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},
+
+ // Form attributes
+ enabled: function(a){return !a.disabled;},
+ disabled: function(a){return a.disabled;},
+ checked: function(a){return a.checked;},
+ selected: function(a){return a.selected||jQuery.attr(a,"selected");},
+
+ // Form elements
+ text: function(a){return "text"==a.type;},
+ radio: function(a){return "radio"==a.type;},
+ checkbox: function(a){return "checkbox"==a.type;},
+ file: function(a){return "file"==a.type;},
+ password: function(a){return "password"==a.type;},
+ submit: function(a){return "submit"==a.type;},
+ image: function(a){return "image"==a.type;},
+ reset: function(a){return "reset"==a.type;},
+ button: function(a){return "button"==a.type||jQuery.nodeName(a,"button");},
+ input: function(a){return /input|select|textarea|button/i.test(a.nodeName);},
+
+ // :has()
+ has: function(a,i,m){return jQuery.find(m[3],a).length;},
+
+ // :header
+ header: function(a){return /h\d/i.test(a.nodeName);},
+
+ // :animated
+ animated: function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}
+ }
+ },
+
+ // The regular expressions that power the parsing engine
+ parse: [
+ // Match: [@value='test'], [@foo]
+ /^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,
+
+ // Match: :contains('foo')
+ /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,
+
+ // Match: :even, :last-chlid, #id, .class
+ new RegExp("^([:.#]*)(" + chars + "+)")
+ ],
+
+ multiFilter: function( expr, elems, not ) {
+ var old, cur = [];
+
+ while ( expr && expr != old ) {
+ old = expr;
+ var f = jQuery.filter( expr, elems, not );
+ expr = f.t.replace(/^\s*,\s*/, "" );
+ cur = not ? elems = f.r : jQuery.merge( cur, f.r );
+ }
+
+ return cur;
+ },
+
+ find: function( t, context ) {
+ // Quickly handle non-string expressions
+ if ( typeof t != "string" )
+ return [ t ];
+
+ // check to make sure context is a DOM element or a document
+ if ( context && context.nodeType != 1 && context.nodeType != 9)
+ return [ ];
+
+ // Set the correct context (if none is provided)
+ context = context || document;
+
+ // Initialize the search
+ var ret = [context], done = [], last, nodeName;
+
+ // Continue while a selector expression exists, and while
+ // we're no longer looping upon ourselves
+ while ( t && last != t ) {
+ var r = [];
+ last = t;
+
+ t = jQuery.trim(t);
+
+ var foundToken = false;
+
+ // An attempt at speeding up child selectors that
+ // point to a specific element tag
+ var re = quickChild;
+ var m = re.exec(t);
+
+ if ( m ) {
+ nodeName = m[1].toUpperCase();
+
+ // Perform our own iteration and filter
+ for ( var i = 0; ret[i]; i++ )
+ for ( var c = ret[i].firstChild; c; c = c.nextSibling )
+ if ( c.nodeType == 1 && (nodeName == "*" || c.nodeName.toUpperCase() == nodeName) )
+ r.push( c );
+
+ ret = r;
+ t = t.replace( re, "" );
+ if ( t.indexOf(" ") == 0 ) continue;
+ foundToken = true;
+ } else {
+ re = /^([>+~])\s*(\w*)/i;
+
+ if ( (m = re.exec(t)) != null ) {
+ r = [];
+
+ var merge = {};
+ nodeName = m[2].toUpperCase();
+ m = m[1];
+
+ for ( var j = 0, rl = ret.length; j < rl; j++ ) {
+ var n = m == "~" || m == "+" ? ret[j].nextSibling : ret[j].firstChild;
+ for ( ; n; n = n.nextSibling )
+ if ( n.nodeType == 1 ) {
+ var id = jQuery.data(n);
+
+ if ( m == "~" && merge[id] ) break;
+
+ if (!nodeName || n.nodeName.toUpperCase() == nodeName ) {
+ if ( m == "~" ) merge[id] = true;
+ r.push( n );
+ }
+
+ if ( m == "+" ) break;
+ }
+ }
+
+ ret = r;
+
+ // And remove the token
+ t = jQuery.trim( t.replace( re, "" ) );
+ foundToken = true;
+ }
+ }
+
+ // See if there's still an expression, and that we haven't already
+ // matched a token
+ if ( t && !foundToken ) {
+ // Handle multiple expressions
+ if ( !t.indexOf(",") ) {
+ // Clean the result set
+ if ( context == ret[0] ) ret.shift();
+
+ // Merge the result sets
+ done = jQuery.merge( done, ret );
+
+ // Reset the context
+ r = ret = [context];
+
+ // Touch up the selector string
+ t = " " + t.substr(1,t.length);
+
+ } else {
+ // Optimize for the case nodeName#idName
+ var re2 = quickID;
+ var m = re2.exec(t);
+
+ // Re-organize the results, so that they're consistent
+ if ( m ) {
+ m = [ 0, m[2], m[3], m[1] ];
+
+ } else {
+ // Otherwise, do a traditional filter check for
+ // ID, class, and element selectors
+ re2 = quickClass;
+ m = re2.exec(t);
+ }
+
+ m[2] = m[2].replace(/\\/g, "");
+
+ var elem = ret[ret.length-1];
+
+ // Try to do a global search by ID, where we can
+ if ( m[1] == "#" && elem && elem.getElementById && !jQuery.isXMLDoc(elem) ) {
+ // Optimization for HTML document case
+ var oid = elem.getElementById(m[2]);
+
+ // Do a quick check for the existence of the actual ID attribute
+ // to avoid selecting by the name attribute in IE
+ // also check to insure id is a string to avoid selecting an element with the name of 'id' inside a form
+ if ( (jQuery.browser.msie||jQuery.browser.opera) && oid && typeof oid.id == "string" && oid.id != m[2] )
+ oid = jQuery('[@id="'+m[2]+'"]', elem)[0];
+
+ // Do a quick check for node name (where applicable) so
+ // that div#foo searches will be really fast
+ ret = r = oid && (!m[3] || jQuery.nodeName(oid, m[3])) ? [oid] : [];
+ } else {
+ // We need to find all descendant elements
+ for ( var i = 0; ret[i]; i++ ) {
+ // Grab the tag name being searched for
+ var tag = m[1] == "#" && m[3] ? m[3] : m[1] != "" || m[0] == "" ? "*" : m[2];
+
+ // Handle IE7 being really dumb about <object>s
+ if ( tag == "*" && ret[i].nodeName.toLowerCase() == "object" )
+ tag = "param";
+
+ r = jQuery.merge( r, ret[i].getElementsByTagName( tag ));
+ }
+
+ // It's faster to filter by class and be done with it
+ if ( m[1] == "." )
+ r = jQuery.classFilter( r, m[2] );
+
+ // Same with ID filtering
+ if ( m[1] == "#" ) {
+ var tmp = [];
+
+ // Try to find the element with the ID
+ for ( var i = 0; r[i]; i++ )
+ if ( r[i].getAttribute("id") == m[2] ) {
+ tmp = [ r[i] ];
+ break;
+ }
+
+ r = tmp;
+ }
+
+ ret = r;
+ }
+
+ t = t.replace( re2, "" );
+ }
+
+ }
+
+ // If a selector string still exists
+ if ( t ) {
+ // Attempt to filter it
+ var val = jQuery.filter(t,r);
+ ret = r = val.r;
+ t = jQuery.trim(val.t);
+ }
+ }
+
+ // An error occurred with the selector;
+ // just return an empty set instead
+ if ( t )
+ ret = [];
+
+ // Remove the root context
+ if ( ret && context == ret[0] )
+ ret.shift();
+
+ // And combine the results
+ done = jQuery.merge( done, ret );
+
+ return done;
+ },
+
+ classFilter: function(r,m,not){
+ m = " " + m + " ";
+ var tmp = [];
+ for ( var i = 0; r[i]; i++ ) {
+ var pass = (" " + r[i].className + " ").indexOf( m ) >= 0;
+ if ( !not && pass || not && !pass )
+ tmp.push( r[i] );
+ }
+ return tmp;
+ },
+
+ filter: function(t,r,not) {
+ var last;
+
+ // Look for common filter expressions
+ while ( t && t != last ) {
+ last = t;
+
+ var p = jQuery.parse, m;
+
+ for ( var i = 0; p[i]; i++ ) {
+ m = p[i].exec( t );
+
+ if ( m ) {
+ // Remove what we just matched
+ t = t.substring( m[0].length );
+
+ m[2] = m[2].replace(/\\/g, "");
+ break;
+ }
+ }
+
+ if ( !m )
+ break;
+
+ // :not() is a special case that can be optimized by
+ // keeping it out of the expression list
+ if ( m[1] == ":" && m[2] == "not" )
+ // optimize if only one selector found (most common case)
+ r = isSimple.test( m[3] ) ?
+ jQuery.filter(m[3], r, true).r :
+ jQuery( r ).not( m[3] );
+
+ // We can get a big speed boost by filtering by class here
+ else if ( m[1] == "." )
+ r = jQuery.classFilter(r, m[2], not);
+
+ else if ( m[1] == "[" ) {
+ var tmp = [], type = m[3];
+
+ for ( var i = 0, rl = r.length; i < rl; i++ ) {
+ var a = r[i], z = a[ jQuery.props[m[2]] || m[2] ];
+
+ if ( z == null || /href|src|selected/.test(m[2]) )
+ z = jQuery.attr(a,m[2]) || '';
+
+ if ( (type == "" && !!z ||
+ type == "=" && z == m[5] ||
+ type == "!=" && z != m[5] ||
+ type == "^=" && z && !z.indexOf(m[5]) ||
+ type == "$=" && z.substr(z.length - m[5].length) == m[5] ||
+ (type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ not )
+ tmp.push( a );
+ }
+
+ r = tmp;
+
+ // We can get a speed boost by handling nth-child here
+ } else if ( m[1] == ":" && m[2] == "nth-child" ) {
+ var merge = {}, tmp = [],
+ // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+ test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
+ m[3] == "even" && "2n" || m[3] == "odd" && "2n+1" ||
+ !/\D/.test(m[3]) && "0n+" + m[3] || m[3]),
+ // calculate the numbers (first)n+(last) including if they are negative
+ first = (test[1] + (test[2] || 1)) - 0, last = test[3] - 0;
+
+ // loop through all the elements left in the jQuery object
+ for ( var i = 0, rl = r.length; i < rl; i++ ) {
+ var node = r[i], parentNode = node.parentNode, id = jQuery.data(parentNode);
+
+ if ( !merge[id] ) {
+ var c = 1;
+
+ for ( var n = parentNode.firstChild; n; n = n.nextSibling )
+ if ( n.nodeType == 1 )
+ n.nodeIndex = c++;
+
+ merge[id] = true;
+ }
+
+ var add = false;
+
+ if ( first == 0 ) {
+ if ( node.nodeIndex == last )
+ add = true;
+ } else if ( (node.nodeIndex - last) % first == 0 && (node.nodeIndex - last) / first >= 0 )
+ add = true;
+
+ if ( add ^ not )
+ tmp.push( node );
+ }
+
+ r = tmp;
+
+ // Otherwise, find the expression to execute
+ } else {
+ var fn = jQuery.expr[ m[1] ];
+ if ( typeof fn == "object" )
+ fn = fn[ m[2] ];
+
+ if ( typeof fn == "string" )
+ fn = eval("false||function(a,i){return " + fn + ";}");
+
+ // Execute it against the current filter
+ r = jQuery.grep( r, function(elem, i){
+ return fn(elem, i, m, r);
+ }, not );
+ }
+ }
+
+ // Return an array of filtered elements (r)
+ // and the modified expression string (t)
+ return { r: r, t: t };
+ },
+
+ dir: function( elem, dir ){
+ var matched = [];
+ var cur = elem[dir];
+ while ( cur && cur != document ) {
+ if ( cur.nodeType == 1 )
+ matched.push( cur );
+ cur = cur[dir];
+ }
+ return matched;
+ },
+
+ nth: function(cur,result,dir,elem){
+ result = result || 1;
+ var num = 0;
+
+ for ( ; cur; cur = cur[dir] )
+ if ( cur.nodeType == 1 && ++num == result )
+ break;
+
+ return cur;
+ },
+
+ sibling: function( n, elem ) {
+ var r = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType == 1 && (!elem || n != elem) )
+ r.push( n );
+ }
+
+ return r;
+ }
+});
+
+/*
+ * A number of helper functions used for managing events.
+ * Many of the ideas behind this code orignated from
+ * Dean Edwards' addEvent library.
+ */
+jQuery.event = {
+
+ // Bind an event to an element
+ // Original by Dean Edwards
+ add: function(elem, types, handler, data) {
+ if ( elem.nodeType == 3 || elem.nodeType == 8 )
+ return;
+
+ // For whatever reason, IE has trouble passing the window object
+ // around, causing it to be cloned in the process
+ if ( jQuery.browser.msie && elem.setInterval != undefined )
+ elem = window;
+
+ // Make sure that the function being executed has a unique ID
+ if ( !handler.guid )
+ handler.guid = this.guid++;
+
+ // if data is passed, bind to handler
+ if( data != undefined ) {
+ // Create temporary function pointer to original handler
+ var fn = handler;
+
+ // Create unique handler function, wrapped around original handler
+ handler = function() {
+ // Pass arguments and context to original handler
+ return fn.apply(this, arguments);
+ };
+
+ // Store data in unique handler
+ handler.data = data;
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ handler.guid = fn.guid;
+ }
+
+ // Init the element's event structure
+ var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
+ handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){
+ // returned undefined or false
+ var val;
+
+ // Handle the second event of a trigger and when
+ // an event is called after a page has unloaded
+ if ( typeof jQuery == "undefined" || jQuery.event.triggered )
+ return val;
+
+ val = jQuery.event.handle.apply(arguments.callee.elem, arguments);
+
+ return val;
+ });
+ // Add elem as a property of the handle function
+ // This is to prevent a memory leak with non-native
+ // event in IE.
+ handle.elem = elem;
+
+ // Handle multiple events seperated by a space
+ // jQuery(...).bind("mouseover mouseout", fn);
+ jQuery.each(types.split(/\s+/), function(index, type) {
+ // Namespaced event handlers
+ var parts = type.split(".");
+ type = parts[0];
+ handler.type = parts[1];
+
+ // Get the current list of functions bound to this event
+ var handlers = events[type];
+
+ // Init the event handler queue
+ if (!handlers) {
+ handlers = events[type] = {};
+
+ // Check for a special event handler
+ // Only use addEventListener/attachEvent if the special
+ // events handler returns false
+ if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem) === false ) {
+ // Bind the global event handler to the element
+ if (elem.addEventListener)
+ elem.addEventListener(type, handle, false);
+ else if (elem.attachEvent)
+ elem.attachEvent("on" + type, handle);
+ }
+ }
+
+ // Add the function to the element's handler list
+ handlers[handler.guid] = handler;
+
+ // Keep track of which events have been used, for global triggering
+ jQuery.event.global[type] = true;
+ });
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ guid: 1,
+ global: {},
+
+ // Detach an event or set of events from an element
+ remove: function(elem, types, handler) {
+ // don't do events on text and comment nodes
+ if ( elem.nodeType == 3 || elem.nodeType == 8 )
+ return;
+
+ var events = jQuery.data(elem, "events"), ret, index;
+
+ if ( events ) {
+ // Unbind all events for the element
+ if ( types == undefined || (typeof types == "string" && types.charAt(0) == ".") )
+ for ( var type in events )
+ this.remove( elem, type + (types || "") );
+ else {
+ // types is actually an event object here
+ if ( types.type ) {
+ handler = types.handler;
+ types = types.type;
+ }
+
+ // Handle multiple events seperated by a space
+ // jQuery(...).unbind("mouseover mouseout", fn);
+ jQuery.each(types.split(/\s+/), function(index, type){
+ // Namespaced event handlers
+ var parts = type.split(".");
+ type = parts[0];
+
+ if ( events[type] ) {
+ // remove the given handler for the given type
+ if ( handler )
+ delete events[type][handler.guid];
+
+ // remove all handlers for the given type
+ else
+ for ( handler in events[type] )
+ // Handle the removal of namespaced events
+ if ( !parts[1] || events[type][handler].type == parts[1] )
+ delete events[type][handler];
+
+ // remove generic event handler if no more handlers exist
+ for ( ret in events[type] ) break;
+ if ( !ret ) {
+ if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem) === false ) {
+ if (elem.removeEventListener)
+ elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
+ else if (elem.detachEvent)
+ elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
+ }
+ ret = null;
+ delete events[type];
+ }
+ }
+ });
+ }
+
+ // Remove the expando if it's no longer used
+ for ( ret in events ) break;
+ if ( !ret ) {
+ var handle = jQuery.data( elem, "handle" );
+ if ( handle ) handle.elem = null;
+ jQuery.removeData( elem, "events" );
+ jQuery.removeData( elem, "handle" );
+ }
+ }
+ },
+
+ trigger: function(type, data, elem, donative, extra) {
+ // Clone the incoming data, if any
+ data = jQuery.makeArray(data || []);
+
+ if ( type.indexOf("!") >= 0 ) {
+ type = type.slice(0, -1);
+ var exclusive = true;
+ }
+
+ // Handle a global trigger
+ if ( !elem ) {
+ // Only trigger if we've ever bound an event for it
+ if ( this.global[type] )
+ jQuery("*").add([window, document]).trigger(type, data);
+
+ // Handle triggering a single element
+ } else {
+ // don't do events on text and comment nodes
+ if ( elem.nodeType == 3 || elem.nodeType == 8 )
+ return undefined;
+
+ var val, ret, fn = jQuery.isFunction( elem[ type ] || null ),
+ // Check to see if we need to provide a fake event, or not
+ event = !data[0] || !data[0].preventDefault;
+
+ // Pass along a fake event
+ if ( event )
+ data.unshift( this.fix({ type: type, target: elem }) );
+
+ // Enforce the right trigger type
+ data[0].type = type;
+ if ( exclusive )
+ data[0].exclusive = true;
+
+ // Trigger the event
+ if ( jQuery.isFunction( jQuery.data(elem, "handle") ) )
+ val = jQuery.data(elem, "handle").apply( elem, data );
+
+ // Handle triggering native .onfoo handlers
+ if ( !fn && elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
+ val = false;
+
+ // Extra functions don't get the custom event object
+ if ( event )
+ data.shift();
+
+ // Handle triggering of extra function
+ if ( extra && jQuery.isFunction( extra ) ) {
+ // call the extra function and tack the current return value on the end for possible inspection
+ ret = extra.apply( elem, val == null ? data : data.concat( val ) );
+ // if anything is returned, give it precedence and have it overwrite the previous value
+ if (ret !== undefined)
+ val = ret;
+ }
+
+ // Trigger the native events (except for clicks on links)
+ if ( fn && donative !== false && val !== false && !(jQuery.nodeName(elem, 'a') && type == "click") ) {
+ this.triggered = true;
+ try {
+ elem[ type ]();
+ // prevent IE from throwing an error for some hidden elements
+ } catch (e) {}
+ }
+
+ this.triggered = false;
+ }
+
+ return val;
+ },
+
+ handle: function(event) {
+ // returned undefined or false
+ var val;
+
+ // Empty object is for triggered events with no data
+ event = jQuery.event.fix( event || window.event || {} );
+
+ // Namespaced event handlers
+ var parts = event.type.split(".");
+ event.type = parts[0];
+
+ var handlers = jQuery.data(this, "events") && jQuery.data(this, "events")[event.type], args = Array.prototype.slice.call( arguments, 1 );
+ args.unshift( event );
+
+ for ( var j in handlers ) {
+ var handler = handlers[j];
+ // Pass in a reference to the handler function itself
+ // So that we can later remove it
+ args[0].handler = handler;
+ args[0].data = handler.data;
+
+ // Filter the functions by class
+ if ( !parts[1] && !event.exclusive || handler.type == parts[1] ) {
+ var ret = handler.apply( this, args );
+
+ if ( val !== false )
+ val = ret;
+
+ if ( ret === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+
+ // Clean up added properties in IE to prevent memory leak
+ if (jQuery.browser.msie)
+ event.target = event.preventDefault = event.stopPropagation =
+ event.handler = event.data = null;
+
+ return val;
+ },
+
+ fix: function(event) {
+ // store a copy of the original event object
+ // and clone to set read-only properties
+ var originalEvent = event;
+ event = jQuery.extend({}, originalEvent);
+
+ // add preventDefault and stopPropagation since
+ // they will not work on the clone
+ event.preventDefault = function() {
+ // if preventDefault exists run it on the original event
+ if (originalEvent.preventDefault)
+ originalEvent.preventDefault();
+ // otherwise set the returnValue property of the original event to false (IE)
+ originalEvent.returnValue = false;
+ };
+ event.stopPropagation = function() {
+ // if stopPropagation exists run it on the original event
+ if (originalEvent.stopPropagation)
+ originalEvent.stopPropagation();
+ // otherwise set the cancelBubble property of the original event to true (IE)
+ originalEvent.cancelBubble = true;
+ };
+
+ // Fix target property, if necessary
+ if ( !event.target )
+ event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either
+
+ // check if target is a textnode (safari)
+ if ( event.target.nodeType == 3 )
+ event.target = originalEvent.target.parentNode;
+
+ // Add relatedTarget, if necessary
+ if ( !event.relatedTarget && event.fromElement )
+ event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if ( event.pageX == null && event.clientX != null ) {
+ var doc = document.documentElement, body = document.body;
+ event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
+ event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
+ }
+
+ // Add which for key events
+ if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
+ event.which = event.charCode || event.keyCode;
+
+ // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
+ if ( !event.metaKey && event.ctrlKey )
+ event.metaKey = event.ctrlKey;
+
+ // Add which for click: 1 == left; 2 == middle; 3 == right
+ // Note: button is not normalized, so don't use it
+ if ( !event.which && event.button )
+ event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
+
+ return event;
+ },
+
+ special: {
+ ready: {
+ setup: function() {
+ // Make sure the ready event is setup
+ bindReady();
+ return;
+ },
+
+ teardown: function() { return; }
+ },
+
+ mouseenter: {
+ setup: function() {
+ if ( jQuery.browser.msie ) return false;
+ jQuery(this).bind("mouseover", jQuery.event.special.mouseenter.handler);
+ return true;
+ },
+
+ teardown: function() {
+ if ( jQuery.browser.msie ) return false;
+ jQuery(this).unbind("mouseover", jQuery.event.special.mouseenter.handler);
+ return true;
+ },
+
+ handler: function(event) {
+ // If we actually just moused on to a sub-element, ignore it
+ if ( withinElement(event, this) ) return true;
+ // Execute the right handlers by setting the event type to mouseenter
+ arguments[0].type = "mouseenter";
+ return jQuery.event.handle.apply(this, arguments);
+ }
+ },
+
+ mouseleave: {
+ setup: function() {
+ if ( jQuery.browser.msie ) return false;
+ jQuery(this).bind("mouseout", jQuery.event.special.mouseleave.handler);
+ return true;
+ },
+
+ teardown: function() {
+ if ( jQuery.browser.msie ) return false;
+ jQuery(this).unbind("mouseout", jQuery.event.special.mouseleave.handler);
+ return true;
+ },
+
+ handler: function(event) {
+ // If we actually just moused on to a sub-element, ignore it
+ if ( withinElement(event, this) ) return true;
+ // Execute the right handlers by setting the event type to mouseleave
+ arguments[0].type = "mouseleave";
+ return jQuery.event.handle.apply(this, arguments);
+ }
+ }
+ }
+};
+
+jQuery.fn.extend({
+ bind: function( type, data, fn ) {
+ return type == "unload" ? this.one(type, data, fn) : this.each(function(){
+ jQuery.event.add( this, type, fn || data, fn && data );
+ });
+ },
+
+ one: function( type, data, fn ) {
+ return this.each(function(){
+ jQuery.event.add( this, type, function(event) {
+ jQuery(this).unbind(event);
+ return (fn || data).apply( this, arguments);
+ }, fn && data);
+ });
+ },
+
+ unbind: function( type, fn ) {
+ return this.each(function(){
+ jQuery.event.remove( this, type, fn );
+ });
+ },
+
+ trigger: function( type, data, fn ) {
+ return this.each(function(){
+ jQuery.event.trigger( type, data, this, true, fn );
+ });
+ },
+
+ triggerHandler: function( type, data, fn ) {
+ if ( this[0] )
+ return jQuery.event.trigger( type, data, this[0], false, fn );
+ return undefined;
+ },
+
+ toggle: function() {
+ // Save reference to arguments for access in closure
+ var args = arguments;
+
+ return this.click(function(event) {
+ // Figure out which function to execute
+ this.lastToggle = 0 == this.lastToggle ? 1 : 0;
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[this.lastToggle].apply( this, arguments ) || false;
+ });
+ },
+
+ hover: function(fnOver, fnOut) {
+ return this.bind('mouseenter', fnOver).bind('mouseleave', fnOut);
+ },
+
+ ready: function(fn) {
+ // Attach the listeners
+ bindReady();
+
+ // If the DOM is already ready
+ if ( jQuery.isReady )
+ // Execute the function immediately
+ fn.call( document, jQuery );
+
+ // Otherwise, remember the function for later
+ else
+ // Add the function to the wait list
+ jQuery.readyList.push( function() { return fn.call(this, jQuery); } );
+
+ return this;
+ }
+});
+
+jQuery.extend({
+ isReady: false,
+ readyList: [],
+ // Handle when the DOM is ready
+ ready: function() {
+ // Make sure that the DOM is not already loaded
+ if ( !jQuery.isReady ) {
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If there are functions bound, to execute
+ if ( jQuery.readyList ) {
+ // Execute all of them
+ jQuery.each( jQuery.readyList, function(){
+ this.apply( document );
+ });
+
+ // Reset the list of functions
+ jQuery.readyList = null;
+ }
+
+ // Trigger any bound ready events
+ jQuery(document).triggerHandler("ready");
+ }
+ }
+});
+
+var readyBound = false;
+
+function bindReady(){
+ if ( readyBound ) return;
+ readyBound = true;
+
+ // Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
+ if ( document.addEventListener && !jQuery.browser.opera)
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", jQuery.ready, false );
+
+ // If IE is used and is not in a frame
+ // Continually check to see if the document is ready
+ if ( jQuery.browser.msie && window == top ) (function(){
+ if (jQuery.isReady) return;
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch( error ) {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+ // and execute any waiting functions
+ jQuery.ready();
+ })();
+
+ if ( jQuery.browser.opera )
+ document.addEventListener( "DOMContentLoaded", function () {
+ if (jQuery.isReady) return;
+ for (var i = 0; i < document.styleSheets.length; i++)
+ if (document.styleSheets[i].disabled) {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+ // and execute any waiting functions
+ jQuery.ready();
+ }, false);
+
+ if ( jQuery.browser.safari ) {
+ var numStyles;
+ (function(){
+ if (jQuery.isReady) return;
+ if ( document.readyState != "loaded" && document.readyState != "complete" ) {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+ if ( numStyles === undefined )
+ numStyles = jQuery("style, link[rel=stylesheet]").length;
+ if ( document.styleSheets.length != numStyles ) {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+ // and execute any waiting functions
+ jQuery.ready();
+ })();
+ }
+
+ // A fallback to window.onload, that will always work
+ jQuery.event.add( window, "load", jQuery.ready );
+}
+
+jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
+ "mousedown,mouseup,mousemove,mouseover,mouseout,change,select," +
+ "submit,keydown,keypress,keyup,error").split(","), function(i, name){
+
+ // Handle event binding
+ jQuery.fn[name] = function(fn){
+ return fn ? this.bind(name, fn) : this.trigger(name);
+ };
+});
+
+// Checks if an event happened on an element within another element
+// Used in jQuery.event.special.mouseenter and mouseleave handlers
+var withinElement = function(event, elem) {
+ // Check if mouse(over|out) are still within the same parent element
+ var parent = event.relatedTarget;
+ // Traverse up the tree
+ while ( parent && parent != elem ) try { parent = parent.parentNode; } catch(error) { parent = elem; }
+ // Return true if we actually just moused on to a sub-element
+ return parent == elem;
+};
+
+// Prevent memory leaks in IE
+// And prevent errors on refresh with events like mouseover in other browsers
+// Window isn't included so as not to unbind existing unload events
+jQuery(window).bind("unload", function() {
+ jQuery("*").add(document).unbind();
+});
+jQuery.fn.extend({
+ load: function( url, params, callback ) {
+ if ( jQuery.isFunction( url ) )
+ return this.bind("load", url);
+
+ var off = url.indexOf(" ");
+ if ( off >= 0 ) {
+ var selector = url.slice(off, url.length);
+ url = url.slice(0, off);
+ }
+
+ callback = callback || function(){};
+
+ // Default to a GET request
+ var type = "GET";
+
+ // If the second parameter was provided
+ if ( params )
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+ // We assume that it's the callback
+ callback = params;
+ params = null;
+
+ // Otherwise, build a param string
+ } else {
+ params = jQuery.param( params );
+ type = "POST";
+ }
+
+ var self = this;
+
+ // Request the remote document
+ jQuery.ajax({
+ url: url,
+ type: type,
+ dataType: "html",
+ data: params,
+ complete: function(res, status){
+ // If successful, inject the HTML into all the matched elements
+ if ( status == "success" || status == "notmodified" )
+ // See if a selector was specified
+ self.html( selector ?
+ // Create a dummy div to hold the results
+ jQuery("<div/>")
+ // inject the contents of the document in, removing the scripts
+ // to avoid any 'Permission Denied' errors in IE
+ .append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
+
+ // Locate the specified elements
+ .find(selector) :
+
+ // If not, just inject the full result
+ res.responseText );
+
+ self.each( callback, [res.responseText, status, res] );
+ }
+ });
+ return this;
+ },
+
+ serialize: function() {
+ return jQuery.param(this.serializeArray());
+ },
+ serializeArray: function() {
+ return this.map(function(){
+ return jQuery.nodeName(this, "form") ?
+ jQuery.makeArray(this.elements) : this;
+ })
+ .filter(function(){
+ return this.name && !this.disabled &&
+ (this.checked || /select|textarea/i.test(this.nodeName) ||
+ /text|hidden|password/i.test(this.type));
+ })
+ .map(function(i, elem){
+ var val = jQuery(this).val();
+ return val == null ? null :
+ val.constructor == Array ?
+ jQuery.map( val, function(val, i){
+ return {name: elem.name, value: val};
+ }) :
+ {name: elem.name, value: val};
+ }).get();
+ }
+});
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){
+ jQuery.fn[o] = function(f){
+ return this.bind(o, f);
+ };
+});
+
+var jsc = (new Date).getTime();
+
+jQuery.extend({
+ get: function( url, data, callback, type ) {
+ // shift arguments if data argument was ommited
+ if ( jQuery.isFunction( data ) ) {
+ callback = data;
+ data = null;
+ }
+
+ return jQuery.ajax({
+ type: "GET",
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type
+ });
+ },
+
+ getScript: function( url, callback ) {
+ return jQuery.get(url, null, callback, "script");
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get(url, data, callback, "json");
+ },
+
+ post: function( url, data, callback, type ) {
+ if ( jQuery.isFunction( data ) ) {
+ callback = data;
+ data = {};
+ }
+
+ return jQuery.ajax({
+ type: "POST",
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type
+ });
+ },
+
+ ajaxSetup: function( settings ) {
+ jQuery.extend( jQuery.ajaxSettings, settings );
+ },
+
+ ajaxSettings: {
+ global: true,
+ type: "GET",
+ timeout: 0,
+ contentType: "application/x-www-form-urlencoded",
+ processData: true,
+ async: true,
+ data: null,
+ username: null,
+ password: null,
+ accepts: {
+ xml: "application/xml, text/xml",
+ html: "text/html",
+ script: "text/javascript, application/javascript",
+ json: "application/json, text/javascript",
+ text: "text/plain",
+ _default: "*/*"
+ }
+ },
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+
+ ajax: function( s ) {
+ var jsonp, jsre = /=\?(&|$)/g, status, data;
+
+ // Extend the settings, but re-extend 's' so that it can be
+ // checked again later (in the test suite, specifically)
+ s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
+
+ // convert data if not already a string
+ if ( s.data && s.processData && typeof s.data != "string" )
+ s.data = jQuery.param(s.data);
+
+ // Handle JSONP Parameter Callbacks
+ if ( s.dataType == "jsonp" ) {
+ if ( s.type.toLowerCase() == "get" ) {
+ if ( !s.url.match(jsre) )
+ s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?";
+ } else if ( !s.data || !s.data.match(jsre) )
+ s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
+ s.dataType = "json";
+ }
+
+ // Build temporary JSONP function
+ if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) {
+ jsonp = "jsonp" + jsc++;
+
+ // Replace the =? sequence both in the query string and the data
+ if ( s.data )
+ s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
+ s.url = s.url.replace(jsre, "=" + jsonp + "$1");
+
+ // We need to make sure
+ // that a JSONP style response is executed properly
+ s.dataType = "script";
+
+ // Handle JSONP-style loading
+ window[ jsonp ] = function(tmp){
+ data = tmp;
+ success();
+ complete();
+ // Garbage collect
+ window[ jsonp ] = undefined;
+ try{ delete window[ jsonp ]; } catch(e){}
+ if ( head )
+ head.removeChild( script );
+ };
+ }
+
+ if ( s.dataType == "script" && s.cache == null )
+ s.cache = false;
+
+ if ( s.cache === false && s.type.toLowerCase() == "get" ) {
+ var ts = (new Date()).getTime();
+ // try replacing _= if it is there
+ var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
+ // if nothing was replaced, add timestamp to the end
+ s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
+ }
+
+ // If data is available, append data to url for get requests
+ if ( s.data && s.type.toLowerCase() == "get" ) {
+ s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
+
+ // IE likes to send both get and post data, prevent this
+ s.data = null;
+ }
+
+ // Watch for a new set of requests
+ if ( s.global && ! jQuery.active++ )
+ jQuery.event.trigger( "ajaxStart" );
+
+ // If we're requesting a remote document
+ // and trying to load JSON or Script with a GET
+ if ( (!s.url.indexOf("http") || !s.url.indexOf("//")) && s.dataType == "script" && s.type.toLowerCase() == "get" ) {
+ var head = document.getElementsByTagName("head")[0];
+ var script = document.createElement("script");
+ script.src = s.url;
+ if (s.scriptCharset)
+ script.charset = s.scriptCharset;
+
+ // Handle Script loading
+ if ( !jsonp ) {
+ var done = false;
+
+ // Attach handlers for all browsers
+ script.onload = script.onreadystatechange = function(){
+ if ( !done && (!this.readyState ||
+ this.readyState == "loaded" || this.readyState == "complete") ) {
+ done = true;
+ success();
+ complete();
+ head.removeChild( script );
+ }
+ };
+ }
+
+ head.appendChild(script);
+
+ // We handle everything using the script element injection
+ return undefined;
+ }
+
+ var requestDone = false;
+
+ // Create the request object; Microsoft failed to properly
+ // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
+ var xml = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
+
+ // Open the socket
+ xml.open(s.type, s.url, s.async, s.username, s.password);
+
+ // Need an extra try/catch for cross domain requests in Firefox 3
+ try {
+ // Set the correct header, if data is being sent
+ if ( s.data )
+ xml.setRequestHeader("Content-Type", s.contentType);
+
+ // Set the If-Modified-Since header, if ifModified mode.
+ if ( s.ifModified )
+ xml.setRequestHeader("If-Modified-Since",
+ jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
+
+ // Set header so the called script knows that it's an XMLHttpRequest
+ xml.setRequestHeader("X-Requested-With", "XMLHttpRequest");
+
+ // Set the Accepts header for the server, depending on the dataType
+ xml.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
+ s.accepts[ s.dataType ] + ", */*" :
+ s.accepts._default );
+ } catch(e){}
+
+ // Allow custom headers/mimetypes
+ if ( s.beforeSend )
+ s.beforeSend(xml);
+
+ if ( s.global )
+ jQuery.event.trigger("ajaxSend", [xml, s]);
+
+ // Wait for a response to come back
+ var onreadystatechange = function(isTimeout){
+ // The transfer is complete and the data is available, or the request timed out
+ if ( !requestDone && xml && (xml.readyState == 4 || isTimeout == "timeout") ) {
+ requestDone = true;
+
+ // clear poll interval
+ if (ival) {
+ clearInterval(ival);
+ ival = null;
+ }
+
+ status = isTimeout == "timeout" && "timeout" ||
+ !jQuery.httpSuccess( xml ) && "error" ||
+ s.ifModified && jQuery.httpNotModified( xml, s.url ) && "notmodified" ||
+ "success";
+
+ if ( status == "success" ) {
+ // Watch for, and catch, XML document parse errors
+ try {
+ // process the data (runs the xml through httpData regardless of callback)
+ data = jQuery.httpData( xml, s.dataType );
+ } catch(e) {
+ status = "parsererror";
+ }
+ }
+
+ // Make sure that the request was successful or notmodified
+ if ( status == "success" ) {
+ // Cache Last-Modified header, if ifModified mode.
+ var modRes;
+ try {
+ modRes = xml.getResponseHeader("Last-Modified");
+ } catch(e) {} // swallow exception thrown by FF if header is not available
+
+ if ( s.ifModified && modRes )
+ jQuery.lastModified[s.url] = modRes;
+
+ // JSONP handles its own success callback
+ if ( !jsonp )
+ success();
+ } else
+ jQuery.handleError(s, xml, status);
+
+ // Fire the complete handlers
+ complete();
+
+ // Stop memory leaks
+ if ( s.async )
+ xml = null;
+ }
+ };
+
+ if ( s.async ) {
+ // don't attach the handler to the request, just poll it instead
+ var ival = setInterval(onreadystatechange, 13);
+
+ // Timeout checker
+ if ( s.timeout > 0 )
+ setTimeout(function(){
+ // Check to see if the request is still happening
+ if ( xml ) {
+ // Cancel the request
+ xml.abort();
+
+ if( !requestDone )
+ onreadystatechange( "timeout" );
+ }
+ }, s.timeout);
+ }
+
+ // Send the data
+ try {
+ xml.send(s.data);
+ } catch(e) {
+ jQuery.handleError(s, xml, null, e);
+ }
+
+ // firefox 1.5 doesn't fire statechange for sync requests
+ if ( !s.async )
+ onreadystatechange();
+
+ function success(){
+ // If a local callback was specified, fire it and pass it the data
+ if ( s.success )
+ s.success( data, status );
+
+ // Fire the global callback
+ if ( s.global )
+ jQuery.event.trigger( "ajaxSuccess", [xml, s] );
+ }
+
+ function complete(){
+ // Process result
+ if ( s.complete )
+ s.complete(xml, status);
+
+ // The request was completed
+ if ( s.global )
+ jQuery.event.trigger( "ajaxComplete", [xml, s] );
+
+ // Handle the global AJAX counter
+ if ( s.global && ! --jQuery.active )
+ jQuery.event.trigger( "ajaxStop" );
+ }
+
+ // return XMLHttpRequest to allow aborting the request etc.
+ return xml;
+ },
+
+ handleError: function( s, xml, status, e ) {
+ // If a local callback was specified, fire it
+ if ( s.error ) s.error( xml, status, e );
+
+ // Fire the global callback
+ if ( s.global )
+ jQuery.event.trigger( "ajaxError", [xml, s, e] );
+ },
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Determines if an XMLHttpRequest was successful or not
+ httpSuccess: function( r ) {
+ try {
+ // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
+ return !r.status && location.protocol == "file:" ||
+ ( r.status >= 200 && r.status < 300 ) || r.status == 304 || r.status == 1223 ||
+ jQuery.browser.safari && r.status == undefined;
+ } catch(e){}
+ return false;
+ },
+
+ // Determines if an XMLHttpRequest returns NotModified
+ httpNotModified: function( xml, url ) {
+ try {
+ var xmlRes = xml.getResponseHeader("Last-Modified");
+
+ // Firefox always returns 200. check Last-Modified date
+ return xml.status == 304 || xmlRes == jQuery.lastModified[url] ||
+ jQuery.browser.safari && xml.status == undefined;
+ } catch(e){}
+ return false;
+ },
+
+ httpData: function( r, type ) {
+ var ct = r.getResponseHeader("content-type");
+ var xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0;
+ var data = xml ? r.responseXML : r.responseText;
+
+ if ( xml && data.documentElement.tagName == "parsererror" )
+ throw "parsererror";
+
+ // If the type is "script", eval it in global context
+ if ( type == "script" )
+ jQuery.globalEval( data );
+
+ // Get the JavaScript object, if JSON is used.
+ if ( type == "json" )
+ data = eval("(" + data + ")");
+
+ return data;
+ },
+
+ // Serialize an array of form elements or a set of
+ // key/values into a query string
+ param: function( a ) {
+ var s = [];
+
+ // If an array was passed in, assume that it is an array
+ // of form elements
+ if ( a.constructor == Array || a.jquery )
+ // Serialize the form elements
+ jQuery.each( a, function(){
+ s.push( encodeURIComponent(this.name) + "=" + encodeURIComponent( this.value ) );
+ });
+
+ // Otherwise, assume that it's an object of key/value pairs
+ else
+ // Serialize the key/values
+ for ( var j in a )
+ // If the value is an array then the key names need to be repeated
+ if ( a[j] && a[j].constructor == Array )
+ jQuery.each( a[j], function(){
+ s.push( encodeURIComponent(j) + "=" + encodeURIComponent( this ) );
+ });
+ else
+ s.push( encodeURIComponent(j) + "=" + encodeURIComponent( a[j] ) );
+
+ // Return the resulting serialization
+ return s.join("&").replace(/%20/g, "+");
+ }
+
+});
+jQuery.fn.extend({
+ show: function(speed,callback){
+ return speed ?
+ this.animate({
+ height: "show", width: "show", opacity: "show"
+ }, speed, callback) :
+
+ this.filter(":hidden").each(function(){
+ this.style.display = this.oldblock || "";
+ if ( jQuery.css(this,"display") == "none" ) {
+ var elem = jQuery("<" + this.tagName + " />").appendTo("body");
+ this.style.display = elem.css("display");
+ // handle an edge condition where css is - div { display:none; } or similar
+ if (this.style.display == "none")
+ this.style.display = "block";
+ elem.remove();
+ }
+ }).end();
+ },
+
+ hide: function(speed,callback){
+ return speed ?
+ this.animate({
+ height: "hide", width: "hide", opacity: "hide"
+ }, speed, callback) :
+
+ this.filter(":visible").each(function(){
+ this.oldblock = this.oldblock || jQuery.css(this,"display");
+ this.style.display = "none";
+ }).end();
+ },
+
+ // Save the old toggle function
+ _toggle: jQuery.fn.toggle,
+
+ toggle: function( fn, fn2 ){
+ return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
+ this._toggle( fn, fn2 ) :
+ fn ?
+ this.animate({
+ height: "toggle", width: "toggle", opacity: "toggle"
+ }, fn, fn2) :
+ this.each(function(){
+ jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
+ });
+ },
+
+ slideDown: function(speed,callback){
+ return this.animate({height: "show"}, speed, callback);
+ },
+
+ slideUp: function(speed,callback){
+ return this.animate({height: "hide"}, speed, callback);
+ },
+
+ slideToggle: function(speed, callback){
+ return this.animate({height: "toggle"}, speed, callback);
+ },
+
+ fadeIn: function(speed, callback){
+ return this.animate({opacity: "show"}, speed, callback);
+ },
+
+ fadeOut: function(speed, callback){
+ return this.animate({opacity: "hide"}, speed, callback);
+ },
+
+ fadeTo: function(speed,to,callback){
+ return this.animate({opacity: to}, speed, callback);
+ },
+
+ animate: function( prop, speed, easing, callback ) {
+ var optall = jQuery.speed(speed, easing, callback);
+
+ return this[ optall.queue === false ? "each" : "queue" ](function(){
+ if ( this.nodeType != 1)
+ return false;
+
+ var opt = jQuery.extend({}, optall);
+ var hidden = jQuery(this).is(":hidden"), self = this;
+
+ for ( var p in prop ) {
+ if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
+ return jQuery.isFunction(opt.complete) && opt.complete.apply(this);
+
+ if ( p == "height" || p == "width" ) {
+ // Store display property
+ opt.display = jQuery.css(this, "display");
+
+ // Make sure that nothing sneaks out
+ opt.overflow = this.style.overflow;
+ }
+ }
+
+ if ( opt.overflow != null )
+ this.style.overflow = "hidden";
+
+ opt.curAnim = jQuery.extend({}, prop);
+
+ jQuery.each( prop, function(name, val){
+ var e = new jQuery.fx( self, opt, name );
+
+ if ( /toggle|show|hide/.test(val) )
+ e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
+ else {
+ var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
+ start = e.cur(true) || 0;
+
+ if ( parts ) {
+ var end = parseFloat(parts[2]),
+ unit = parts[3] || "px";
+
+ // We need to compute starting value
+ if ( unit != "px" ) {
+ self.style[ name ] = (end || 1) + unit;
+ start = ((end || 1) / e.cur(true)) * start;
+ self.style[ name ] = start + unit;
+ }
+
+ // If a +=/-= token was provided, we're doing a relative animation
+ if ( parts[1] )
+ end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
+
+ e.custom( start, end, unit );
+ } else
+ e.custom( start, val, "" );
+ }
+ });
+
+ // For JS strict compliance
+ return true;
+ });
+ },
+
+ queue: function(type, fn){
+ if ( jQuery.isFunction(type) || ( type && type.constructor == Array )) {
+ fn = type;
+ type = "fx";
+ }
+
+ if ( !type || (typeof type == "string" && !fn) )
+ return queue( this[0], type );
+
+ return this.each(function(){
+ if ( fn.constructor == Array )
+ queue(this, type, fn);
+ else {
+ queue(this, type).push( fn );
+
+ if ( queue(this, type).length == 1 )
+ fn.apply(this);
+ }
+ });
+ },
+
+ stop: function(clearQueue, gotoEnd){
+ var timers = jQuery.timers;
+
+ if (clearQueue)
+ this.queue([]);
+
+ this.each(function(){
+ // go in reverse order so anything added to the queue during the loop is ignored
+ for ( var i = timers.length - 1; i >= 0; i-- )
+ if ( timers[i].elem == this ) {
+ if (gotoEnd)
+ // force the next step to be the last
+ timers[i](true);
+ timers.splice(i, 1);
+ }
+ });
+
+ // start the next in the queue if the last step wasn't forced
+ if (!gotoEnd)
+ this.dequeue();
+
+ return this;
+ }
+
+});
+
+var queue = function( elem, type, array ) {
+ if ( !elem )
+ return undefined;
+
+ type = type || "fx";
+
+ var q = jQuery.data( elem, type + "queue" );
+
+ if ( !q || array )
+ q = jQuery.data( elem, type + "queue",
+ array ? jQuery.makeArray(array) : [] );
+
+ return q;
+};
+
+jQuery.fn.dequeue = function(type){
+ type = type || "fx";
+
+ return this.each(function(){
+ var q = queue(this, type);
+
+ q.shift();
+
+ if ( q.length )
+ q[0].apply( this );
+ });
+};
+
+jQuery.extend({
+
+ speed: function(speed, easing, fn) {
+ var opt = speed && speed.constructor == Object ? speed : {
+ complete: fn || !fn && easing ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && easing.constructor != Function && easing
+ };
+
+ opt.duration = (opt.duration && opt.duration.constructor == Number ?
+ opt.duration :
+ { slow: 600, fast: 200 }[opt.duration]) || 400;
+
+ // Queueing
+ opt.old = opt.complete;
+ opt.complete = function(){
+ if ( opt.queue !== false )
+ jQuery(this).dequeue();
+ if ( jQuery.isFunction( opt.old ) )
+ opt.old.apply( this );
+ };
+
+ return opt;
+ },
+
+ easing: {
+ linear: function( p, n, firstNum, diff ) {
+ return firstNum + diff * p;
+ },
+ swing: function( p, n, firstNum, diff ) {
+ return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
+ }
+ },
+
+ timers: [],
+ timerId: null,
+
+ fx: function( elem, options, prop ){
+ this.options = options;
+ this.elem = elem;
+ this.prop = prop;
+
+ if ( !options.orig )
+ options.orig = {};
+ }
+
+});
+
+jQuery.fx.prototype = {
+
+ // Simple function for setting a style value
+ update: function(){
+ if ( this.options.step )
+ this.options.step.apply( this.elem, [ this.now, this ] );
+
+ (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
+
+ // Set display property to block for height/width animations
+ if ( this.prop == "height" || this.prop == "width" )
+ this.elem.style.display = "block";
+ },
+
+ // Get the current size
+ cur: function(force){
+ if ( this.elem[this.prop] != null && this.elem.style[this.prop] == null )
+ return this.elem[ this.prop ];
+
+ var r = parseFloat(jQuery.css(this.elem, this.prop, force));
+ return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0;
+ },
+
+ // Start an animation from one number to another
+ custom: function(from, to, unit){
+ this.startTime = (new Date()).getTime();
+ this.start = from;
+ this.end = to;
+ this.unit = unit || this.unit || "px";
+ this.now = this.start;
+ this.pos = this.state = 0;
+ this.update();
+
+ var self = this;
+ function t(gotoEnd){
+ return self.step(gotoEnd);
+ }
+
+ t.elem = this.elem;
+
+ jQuery.timers.push(t);
+
+ if ( jQuery.timerId == null ) {
+ jQuery.timerId = setInterval(function(){
+ var timers = jQuery.timers;
+
+ for ( var i = 0; i < timers.length; i++ )
+ if ( !timers[i]() )
+ timers.splice(i--, 1);
+
+ if ( !timers.length ) {
+ clearInterval( jQuery.timerId );
+ jQuery.timerId = null;
+ }
+ }, 13);
+ }
+ },
+
+ // Simple 'show' function
+ show: function(){
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
+ this.options.show = true;
+
+ // Begin the animation
+ this.custom(0, this.cur());
+
+ // Make sure that we start at a small width/height to avoid any
+ // flash of content
+ if ( this.prop == "width" || this.prop == "height" )
+ this.elem.style[this.prop] = "1px";
+
+ // Start by showing the element
+ jQuery(this.elem).show();
+ },
+
+ // Simple 'hide' function
+ hide: function(){
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
+ this.options.hide = true;
+
+ // Begin the animation
+ this.custom(this.cur(), 0);
+ },
+
+ // Each step of an animation
+ step: function(gotoEnd){
+ var t = (new Date()).getTime();
+
+ if ( gotoEnd || t > this.options.duration + this.startTime ) {
+ this.now = this.end;
+ this.pos = this.state = 1;
+ this.update();
+
+ this.options.curAnim[ this.prop ] = true;
+
+ var done = true;
+ for ( var i in this.options.curAnim )
+ if ( this.options.curAnim[i] !== true )
+ done = false;
+
+ if ( done ) {
+ if ( this.options.display != null ) {
+ // Reset the overflow
+ this.elem.style.overflow = this.options.overflow;
+
+ // Reset the display
+ this.elem.style.display = this.options.display;
+ if ( jQuery.css(this.elem, "display") == "none" )
+ this.elem.style.display = "block";
+ }
+
+ // Hide the element if the "hide" operation was done
+ if ( this.options.hide )
+ this.elem.style.display = "none";
+
+ // Reset the properties, if the item has been hidden or shown
+ if ( this.options.hide || this.options.show )
+ for ( var p in this.options.curAnim )
+ jQuery.attr(this.elem.style, p, this.options.orig[p]);
+ }
+
+ // If a callback was provided, execute it
+ if ( done && jQuery.isFunction( this.options.complete ) )
+ // Execute the complete function
+ this.options.complete.apply( this.elem );
+
+ return false;
+ } else {
+ var n = t - this.startTime;
+ this.state = n / this.options.duration;
+
+ // Perform the easing function, defaults to swing
+ this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration);
+ this.now = this.start + ((this.end - this.start) * this.pos);
+
+ // Perform the next step of the animation
+ this.update();
+ }
+
+ return true;
+ }
+
+};
+
+jQuery.fx.step = {
+ scrollLeft: function(fx){
+ fx.elem.scrollLeft = fx.now;
+ },
+
+ scrollTop: function(fx){
+ fx.elem.scrollTop = fx.now;
+ },
+
+ opacity: function(fx){
+ jQuery.attr(fx.elem.style, "opacity", fx.now);
+ },
+
+ _default: function(fx){
+ fx.elem.style[ fx.prop ] = fx.now + fx.unit;
+ }
+};
+// The Offset Method
+// Originally By Brandon Aaron, part of the Dimension Plugin
+// http://jquery.com/plugins/project/dimensions
+jQuery.fn.offset = function() {
+ var left = 0, top = 0, elem = this[0], results;
+
+ if ( elem ) with ( jQuery.browser ) {
+ var parent = elem.parentNode,
+ offsetChild = elem,
+ offsetParent = elem.offsetParent,
+ doc = elem.ownerDocument,
+ safari2 = safari && parseInt(version) < 522 && !/adobeair/i.test(userAgent),
+ fixed = jQuery.css(elem, "position") == "fixed";
+
+ // Use getBoundingClientRect if available
+ if ( elem.getBoundingClientRect ) {
+ var box = elem.getBoundingClientRect();
+
+ // Add the document scroll offsets
+ add(box.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft),
+ box.top + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop));
+
+ // IE adds the HTML element's border, by default it is medium which is 2px
+ // IE 6 and 7 quirks mode the border width is overwritable by the following css html { border: 0; }
+ // IE 7 standards mode, the border is always 2px
+ // This border/offset is typically represented by the clientLeft and clientTop properties
+ // However, in IE6 and 7 quirks mode the clientLeft and clientTop properties are not updated when overwriting it via CSS
+ // Therefore this method will be off by 2px in IE while in quirksmode
+ add( -doc.documentElement.clientLeft, -doc.documentElement.clientTop );
+
+ // Otherwise loop through the offsetParents and parentNodes
+ } else {
+
+ // Initial element offsets
+ add( elem.offsetLeft, elem.offsetTop );
+
+ // Get parent offsets
+ while ( offsetParent ) {
+ // Add offsetParent offsets
+ add( offsetParent.offsetLeft, offsetParent.offsetTop );
+
+ // Mozilla and Safari > 2 does not include the border on offset parents
+ // However Mozilla adds the border for table or table cells
+ if ( mozilla && !/^t(able|d|h)$/i.test(offsetParent.tagName) || safari && !safari2 )
+ border( offsetParent );
+
+ // Add the document scroll offsets if position is fixed on any offsetParent
+ if ( !fixed && jQuery.css(offsetParent, "position") == "fixed" )
+ fixed = true;
+
+ // Set offsetChild to previous offsetParent unless it is the body element
+ offsetChild = /^body$/i.test(offsetParent.tagName) ? offsetChild : offsetParent;
+ // Get next offsetParent
+ offsetParent = offsetParent.offsetParent;
+ }
+
+ // Get parent scroll offsets
+ while ( parent && parent.tagName && !/^body|html$/i.test(parent.tagName) ) {
+ // Remove parent scroll UNLESS that parent is inline or a table to work around Opera inline/table scrollLeft/Top bug
+ if ( !/^inline|table.*$/i.test(jQuery.css(parent, "display")) )
+ // Subtract parent scroll offsets
+ add( -parent.scrollLeft, -parent.scrollTop );
+
+ // Mozilla does not add the border for a parent that has overflow != visible
+ if ( mozilla && jQuery.css(parent, "overflow") != "visible" )
+ border( parent );
+
+ // Get next parent
+ parent = parent.parentNode;
+ }
+
+ // Safari <= 2 doubles body offsets with a fixed position element/offsetParent or absolutely positioned offsetChild
+ // Mozilla doubles body offsets with a non-absolutely positioned offsetChild
+ if ( (safari2 && (fixed || jQuery.css(offsetChild, "position") == "absolute")) ||
+ (mozilla && jQuery.css(offsetChild, "position") != "absolute") )
+ add( -doc.body.offsetLeft, -doc.body.offsetTop );
+
+ // Add the document scroll offsets if position is fixed
+ if ( fixed )
+ add(Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft),
+ Math.max(doc.documentElement.scrollTop, doc.body.scrollTop));
+ }
+
+ // Return an object with top and left properties
+ results = { top: top, left: left };
+ }
+
+ function border(elem) {
+ add( jQuery.curCSS(elem, "borderLeftWidth", true), jQuery.curCSS(elem, "borderTopWidth", true) );
+ }
+
+ function add(l, t) {
+ left += parseInt(l) || 0;
+ top += parseInt(t) || 0;
+ }
+
+ return results;
+};
+})();
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/dojo-1.6.1.js b/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/dojo-1.6.1.js
new file mode 100644
index 000000000..674e0ad42
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/dojo-1.6.1.js
@@ -0,0 +1,11363 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+/*
+ This is an optimized version of Dojo, built for deployment and not for
+ development. To get sources and documentation, please visit:
+
+ http://dojotoolkit.org
+*/
+
+;(function(){
+
+ /*
+ dojo, dijit, and dojox must always be the first three, and in that order.
+ djConfig.scopeMap = [
+ ["dojo", "fojo"],
+ ["dijit", "fijit"],
+ ["dojox", "fojox"]
+
+ ]
+ */
+
+ /**Build will replace this comment with a scoped djConfig **/
+
+ //The null below can be relaced by a build-time value used instead of djConfig.scopeMap.
+ var sMap = null;
+
+ //See if new scopes need to be defined.
+ if((sMap || (typeof djConfig != "undefined" && djConfig.scopeMap)) && (typeof window != "undefined")){
+ var scopeDef = "", scopePrefix = "", scopeSuffix = "", scopeMap = {}, scopeMapRev = {};
+ sMap = sMap || djConfig.scopeMap;
+ for(var i = 0; i < sMap.length; i++){
+ //Make local variables, then global variables that use the locals.
+ var newScope = sMap[i];
+ scopeDef += "var " + newScope[0] + " = {}; " + newScope[1] + " = " + newScope[0] + ";" + newScope[1] + "._scopeName = '" + newScope[1] + "';";
+ scopePrefix += (i == 0 ? "" : ",") + newScope[0];
+ scopeSuffix += (i == 0 ? "" : ",") + newScope[1];
+ scopeMap[newScope[0]] = newScope[1];
+ scopeMapRev[newScope[1]] = newScope[0];
+ }
+
+ eval(scopeDef + "dojo._scopeArgs = [" + scopeSuffix + "];");
+
+ dojo._scopePrefixArgs = scopePrefix;
+ dojo._scopePrefix = "(function(" + scopePrefix + "){";
+ dojo._scopeSuffix = "})(" + scopeSuffix + ")";
+ dojo._scopeMap = scopeMap;
+ dojo._scopeMapRev = scopeMapRev;
+ }
+
+/*=====
+// note:
+// 'djConfig' does not exist under 'dojo.*' so that it can be set before the
+// 'dojo' variable exists.
+// note:
+// Setting any of these variables *after* the library has loaded does
+// nothing at all.
+
+djConfig = {
+ // summary:
+ // Application code can set the global 'djConfig' prior to loading
+ // the library to override certain global settings for how dojo works.
+ //
+ // isDebug: Boolean
+ // Defaults to `false`. If set to `true`, ensures that Dojo provides
+ // extended debugging feedback via Firebug. If Firebug is not available
+ // on your platform, setting `isDebug` to `true` will force Dojo to
+ // pull in (and display) the version of Firebug Lite which is
+ // integrated into the Dojo distribution, thereby always providing a
+ // debugging/logging console when `isDebug` is enabled. Note that
+ // Firebug's `console.*` methods are ALWAYS defined by Dojo. If
+ // `isDebug` is false and you are on a platform without Firebug, these
+ // methods will be defined as no-ops.
+ isDebug: false,
+ // debugAtAllCosts: Boolean
+ // Defaults to `false`. If set to `true`, this triggers an alternate
+ // mode of the package system in which dependencies are detected and
+ // only then are resources evaluated in dependency order via
+ // `<script>` tag inclusion. This may double-request resources and
+ // cause problems with scripts which expect `dojo.require()` to
+ // preform synchronously. `debugAtAllCosts` can be an invaluable
+ // debugging aid, but when using it, ensure that all code which
+ // depends on Dojo modules is wrapped in `dojo.addOnLoad()` handlers.
+ // Due to the somewhat unpredictable side-effects of using
+ // `debugAtAllCosts`, it is strongly recommended that you enable this
+ // flag as a last resort. `debugAtAllCosts` has no effect when loading
+ // resources across domains. For usage information, see the
+ // [Dojo Book](http://dojotoolkit.org/book/book-dojo/part-4-meta-dojo-making-your-dojo-code-run-faster-and-better/debugging-facilities/deb)
+ debugAtAllCosts: false,
+ // locale: String
+ // The locale to assume for loading localized resources in this page,
+ // specified according to [RFC 3066](http://www.ietf.org/rfc/rfc3066.txt).
+ // Must be specified entirely in lowercase, e.g. `en-us` and `zh-cn`.
+ // See the documentation for `dojo.i18n` and `dojo.requireLocalization`
+ // for details on loading localized resources. If no locale is specified,
+ // Dojo assumes the locale of the user agent, according to `navigator.userLanguage`
+ // or `navigator.language` properties.
+ locale: undefined,
+ // extraLocale: Array
+ // No default value. Specifies additional locales whose
+ // resources should also be loaded alongside the default locale when
+ // calls to `dojo.requireLocalization()` are processed.
+ extraLocale: undefined,
+ // baseUrl: String
+ // The directory in which `dojo.js` is located. Under normal
+ // conditions, Dojo auto-detects the correct location from which it
+ // was loaded. You may need to manually configure `baseUrl` in cases
+ // where you have renamed `dojo.js` or in which `<base>` tags confuse
+ // some browsers (e.g. IE 6). The variable `dojo.baseUrl` is assigned
+ // either the value of `djConfig.baseUrl` if one is provided or the
+ // auto-detected root if not. Other modules are located relative to
+ // this path. The path should end in a slash.
+ baseUrl: undefined,
+ // modulePaths: Object
+ // A map of module names to paths relative to `dojo.baseUrl`. The
+ // key/value pairs correspond directly to the arguments which
+ // `dojo.registerModulePath` accepts. Specifiying
+ // `djConfig.modulePaths = { "foo": "../../bar" }` is the equivalent
+ // of calling `dojo.registerModulePath("foo", "../../bar");`. Multiple
+ // modules may be configured via `djConfig.modulePaths`.
+ modulePaths: {},
+ // afterOnLoad: Boolean
+ // Indicates Dojo was added to the page after the page load. In this case
+ // Dojo will not wait for the page DOMContentLoad/load events and fire
+ // its dojo.addOnLoad callbacks after making sure all outstanding
+ // dojo.required modules have loaded. Only works with a built dojo.js,
+ // it does not work the dojo.js directly from source control.
+ afterOnLoad: false,
+ // addOnLoad: Function or Array
+ // Adds a callback via dojo.addOnLoad. Useful when Dojo is added after
+ // the page loads and djConfig.afterOnLoad is true. Supports the same
+ // arguments as dojo.addOnLoad. When using a function reference, use
+ // `djConfig.addOnLoad = function(){};`. For object with function name use
+ // `djConfig.addOnLoad = [myObject, "functionName"];` and for object with
+ // function reference use
+ // `djConfig.addOnLoad = [myObject, function(){}];`
+ addOnLoad: null,
+ // require: Array
+ // An array of module names to be loaded immediately after dojo.js has been included
+ // in a page.
+ require: [],
+ // defaultDuration: Array
+ // Default duration, in milliseconds, for wipe and fade animations within dijits.
+ // Assigned to dijit.defaultDuration.
+ defaultDuration: 200,
+ // dojoBlankHtmlUrl: String
+ // Used by some modules to configure an empty iframe. Used by dojo.io.iframe and
+ // dojo.back, and dijit popup support in IE where an iframe is needed to make sure native
+ // controls do not bleed through the popups. Normally this configuration variable
+ // does not need to be set, except when using cross-domain/CDN Dojo builds.
+ // Save dojo/resources/blank.html to your domain and set `djConfig.dojoBlankHtmlUrl`
+ // to the path on your domain your copy of blank.html.
+ dojoBlankHtmlUrl: undefined,
+ // ioPublish: Boolean?
+ // Set this to true to enable publishing of topics for the different phases of
+ // IO operations. Publishing is done via dojo.publish. See dojo.__IoPublish for a list
+ // of topics that are published.
+ ioPublish: false,
+ // useCustomLogger: Anything?
+ // If set to a value that evaluates to true such as a string or array and
+ // isDebug is true and Firebug is not available or running, then it bypasses
+ // the creation of Firebug Lite allowing you to define your own console object.
+ useCustomLogger: undefined,
+ // transparentColor: Array
+ // Array containing the r, g, b components used as transparent color in dojo.Color;
+ // if undefined, [255,255,255] (white) will be used.
+ transparentColor: undefined,
+ // skipIeDomLoaded: Boolean
+ // For IE only, skip the DOMContentLoaded hack used. Sometimes it can cause an Operation
+ // Aborted error if the rest of the page triggers script defers before the DOM is ready.
+ // If this is config value is set to true, then dojo.addOnLoad callbacks will not be
+ // triggered until the page load event, which is after images and iframes load. If you
+ // want to trigger the callbacks sooner, you can put a script block in the bottom of
+ // your HTML that calls dojo._loadInit();. If you are using multiversion support, change
+ // "dojo." to the appropriate scope name for dojo.
+ skipIeDomLoaded: false
+}
+=====*/
+
+(function(){
+ // firebug stubs
+
+ if(typeof this["loadFirebugConsole"] == "function"){
+ // for Firebug 1.2
+ this["loadFirebugConsole"]();
+ }else{
+ this.console = this.console || {};
+
+ // Be careful to leave 'log' always at the end
+ var cn = [
+ "assert", "count", "debug", "dir", "dirxml", "error", "group",
+ "groupEnd", "info", "profile", "profileEnd", "time", "timeEnd",
+ "trace", "warn", "log"
+ ];
+ var i = 0, tn;
+ while((tn=cn[i++])){
+ if(!console[tn]){
+ (function(){
+ var tcn = tn+"";
+ console[tcn] = ('log' in console) ? function(){
+ var a = Array.apply({}, arguments);
+ a.unshift(tcn+":");
+ console["log"](a.join(" "));
+ } : function(){}
+ console[tcn]._fake = true;
+ })();
+ }
+ }
+ }
+
+ //TODOC: HOW TO DOC THIS?
+ // dojo is the root variable of (almost all) our public symbols -- make sure it is defined.
+ if(typeof dojo == "undefined"){
+ dojo = {
+ _scopeName: "dojo",
+ _scopePrefix: "",
+ _scopePrefixArgs: "",
+ _scopeSuffix: "",
+ _scopeMap: {},
+ _scopeMapRev: {}
+ };
+ }
+
+ var d = dojo;
+
+ //Need placeholders for dijit and dojox for scoping code.
+ if(typeof dijit == "undefined"){
+ dijit = {_scopeName: "dijit"};
+ }
+ if(typeof dojox == "undefined"){
+ dojox = {_scopeName: "dojox"};
+ }
+
+ if(!d._scopeArgs){
+ d._scopeArgs = [dojo, dijit, dojox];
+ }
+
+/*=====
+dojo.global = {
+ // summary:
+ // Alias for the global scope
+ // (e.g. the window object in a browser).
+ // description:
+ // Refer to 'dojo.global' rather than referring to window to ensure your
+ // code runs correctly in contexts other than web browsers (e.g. Rhino on a server).
+}
+=====*/
+ d.global = this;
+
+ d.config =/*===== djConfig = =====*/{
+ isDebug: false,
+ debugAtAllCosts: false
+ };
+
+ // FIXME: 2.0, drop djConfig support. Use dojoConfig exclusively for global config.
+ var cfg = typeof djConfig != "undefined" ? djConfig :
+ typeof dojoConfig != "undefined" ? dojoConfig : null;
+
+ if(cfg){
+ for(var c in cfg){
+ d.config[c] = cfg[c];
+ }
+ }
+
+/*=====
+ // Override locale setting, if specified
+ dojo.locale = {
+ // summary: the locale as defined by Dojo (read-only)
+ };
+=====*/
+ dojo.locale = d.config.locale;
+
+ var rev = "$Rev: 24595 $".match(/\d+/);
+
+/*=====
+ dojo.version = function(){
+ // summary:
+ // Version number of the Dojo Toolkit
+ // major: Integer
+ // Major version. If total version is "1.2.0beta1", will be 1
+ // minor: Integer
+ // Minor version. If total version is "1.2.0beta1", will be 2
+ // patch: Integer
+ // Patch version. If total version is "1.2.0beta1", will be 0
+ // flag: String
+ // Descriptor flag. If total version is "1.2.0beta1", will be "beta1"
+ // revision: Number
+ // The SVN rev from which dojo was pulled
+ this.major = 0;
+ this.minor = 0;
+ this.patch = 0;
+ this.flag = "";
+ this.revision = 0;
+ }
+=====*/
+ dojo.version = {
+ major: 1, minor: 6, patch: 1, flag: "",
+ revision: rev ? +rev[0] : NaN,
+ toString: function(){
+ with(d.version){
+ return major + "." + minor + "." + patch + flag + " (" + revision + ")"; // String
+ }
+ }
+ }
+
+ // Register with the OpenAjax hub
+ if(typeof OpenAjax != "undefined"){
+ OpenAjax.hub.registerLibrary(dojo._scopeName, "http://dojotoolkit.org", d.version.toString());
+ }
+
+ var extraNames, extraLen, empty = {};
+ for(var i in {toString: 1}){ extraNames = []; break; }
+ dojo._extraNames = extraNames = extraNames || ["hasOwnProperty", "valueOf", "isPrototypeOf",
+ "propertyIsEnumerable", "toLocaleString", "toString", "constructor"];
+ extraLen = extraNames.length;
+
+ dojo._mixin = function(/*Object*/ target, /*Object*/ source){
+ // summary:
+ // Adds all properties and methods of source to target. This addition
+ // is "prototype extension safe", so that instances of objects
+ // will not pass along prototype defaults.
+ var name, s, i;
+ for(name in source){
+ // the "tobj" condition avoid copying properties in "source"
+ // inherited from Object.prototype. For example, if target has a custom
+ // toString() method, don't overwrite it with the toString() method
+ // that source inherited from Object.prototype
+ s = source[name];
+ if(!(name in target) || (target[name] !== s && (!(name in empty) || empty[name] !== s))){
+ target[name] = s;
+ }
+ }
+ // IE doesn't recognize some custom functions in for..in
+ if(extraLen && source){
+ for(i = 0; i < extraLen; ++i){
+ name = extraNames[i];
+ s = source[name];
+ if(!(name in target) || (target[name] !== s && (!(name in empty) || empty[name] !== s))){
+ target[name] = s;
+ }
+ }
+ }
+ return target; // Object
+ }
+
+ dojo.mixin = function(/*Object*/obj, /*Object...*/props){
+ // summary:
+ // Adds all properties and methods of props to obj and returns the
+ // (now modified) obj.
+ // description:
+ // `dojo.mixin` can mix multiple source objects into a
+ // destination object which is then returned. Unlike regular
+ // `for...in` iteration, `dojo.mixin` is also smart about avoiding
+ // extensions which other toolkits may unwisely add to the root
+ // object prototype
+ // obj:
+ // The object to mix properties into. Also the return value.
+ // props:
+ // One or more objects whose values are successively copied into
+ // obj. If more than one of these objects contain the same value,
+ // the one specified last in the function call will "win".
+ // example:
+ // make a shallow copy of an object
+ // | var copy = dojo.mixin({}, source);
+ // example:
+ // many class constructors often take an object which specifies
+ // values to be configured on the object. In this case, it is
+ // often simplest to call `dojo.mixin` on the `this` object:
+ // | dojo.declare("acme.Base", null, {
+ // | constructor: function(properties){
+ // | // property configuration:
+ // | dojo.mixin(this, properties);
+ // |
+ // | console.log(this.quip);
+ // | // ...
+ // | },
+ // | quip: "I wasn't born yesterday, you know - I've seen movies.",
+ // | // ...
+ // | });
+ // |
+ // | // create an instance of the class and configure it
+ // | var b = new acme.Base({quip: "That's what it does!" });
+ // example:
+ // copy in properties from multiple objects
+ // | var flattened = dojo.mixin(
+ // | {
+ // | name: "Frylock",
+ // | braces: true
+ // | },
+ // | {
+ // | name: "Carl Brutanananadilewski"
+ // | }
+ // | );
+ // |
+ // | // will print "Carl Brutanananadilewski"
+ // | console.log(flattened.name);
+ // | // will print "true"
+ // | console.log(flattened.braces);
+ if(!obj){ obj = {}; }
+ for(var i=1, l=arguments.length; i<l; i++){
+ d._mixin(obj, arguments[i]);
+ }
+ return obj; // Object
+ }
+
+ dojo._getProp = function(/*Array*/parts, /*Boolean*/create, /*Object*/context){
+ var obj=context || d.global;
+ for(var i=0, p; obj && (p=parts[i]); i++){
+ if(i == 0 && d._scopeMap[p]){
+ p = d._scopeMap[p];
+ }
+ obj = (p in obj ? obj[p] : (create ? obj[p]={} : undefined));
+ }
+ return obj; // mixed
+ }
+
+ dojo.setObject = function(/*String*/name, /*Object*/value, /*Object?*/context){
+ // summary:
+ // Set a property from a dot-separated string, such as "A.B.C"
+ // description:
+ // Useful for longer api chains where you have to test each object in
+ // the chain, or when you have an object reference in string format.
+ // Objects are created as needed along `path`. Returns the passed
+ // value if setting is successful or `undefined` if not.
+ // name:
+ // Path to a property, in the form "A.B.C".
+ // context:
+ // Optional. Object to use as root of path. Defaults to
+ // `dojo.global`.
+ // example:
+ // set the value of `foo.bar.baz`, regardless of whether
+ // intermediate objects already exist:
+ // | dojo.setObject("foo.bar.baz", value);
+ // example:
+ // without `dojo.setObject`, we often see code like this:
+ // | // ensure that intermediate objects are available
+ // | if(!obj["parent"]){ obj.parent = {}; }
+ // | if(!obj.parent["child"]){ obj.parent.child= {}; }
+ // | // now we can safely set the property
+ // | obj.parent.child.prop = "some value";
+ // wheras with `dojo.setObject`, we can shorten that to:
+ // | dojo.setObject("parent.child.prop", "some value", obj);
+ var parts=name.split("."), p=parts.pop(), obj=d._getProp(parts, true, context);
+ return obj && p ? (obj[p]=value) : undefined; // Object
+ }
+
+ dojo.getObject = function(/*String*/name, /*Boolean?*/create, /*Object?*/context){
+ // summary:
+ // Get a property from a dot-separated string, such as "A.B.C"
+ // description:
+ // Useful for longer api chains where you have to test each object in
+ // the chain, or when you have an object reference in string format.
+ // name:
+ // Path to an property, in the form "A.B.C".
+ // create:
+ // Optional. Defaults to `false`. If `true`, Objects will be
+ // created at any point along the 'path' that is undefined.
+ // context:
+ // Optional. Object to use as root of path. Defaults to
+ // 'dojo.global'. Null may be passed.
+ return d._getProp(name.split("."), create, context); // Object
+ }
+
+ dojo.exists = function(/*String*/name, /*Object?*/obj){
+ // summary:
+ // determine if an object supports a given method
+ // description:
+ // useful for longer api chains where you have to test each object in
+ // the chain. Useful for object and method detection.
+ // name:
+ // Path to an object, in the form "A.B.C".
+ // obj:
+ // Object to use as root of path. Defaults to
+ // 'dojo.global'. Null may be passed.
+ // example:
+ // | // define an object
+ // | var foo = {
+ // | bar: { }
+ // | };
+ // |
+ // | // search the global scope
+ // | dojo.exists("foo.bar"); // true
+ // | dojo.exists("foo.bar.baz"); // false
+ // |
+ // | // search from a particular scope
+ // | dojo.exists("bar", foo); // true
+ // | dojo.exists("bar.baz", foo); // false
+ return d.getObject(name, false, obj) !== undefined; // Boolean
+ }
+
+ dojo["eval"] = function(/*String*/ scriptFragment){
+ // summary:
+ // A legacy method created for use exclusively by internal Dojo methods. Do not use
+ // this method directly, the behavior of this eval will differ from the normal
+ // browser eval.
+ // description:
+ // Placed in a separate function to minimize size of trapped
+ // exceptions. Calling eval() directly from some other scope may
+ // complicate tracebacks on some platforms.
+ // returns:
+ // The result of the evaluation. Often `undefined`
+ return d.global.eval ? d.global.eval(scriptFragment) : eval(scriptFragment); // Object
+ }
+
+ /*=====
+ dojo.deprecated = function(behaviour, extra, removal){
+ // summary:
+ // Log a debug message to indicate that a behavior has been
+ // deprecated.
+ // behaviour: String
+ // The API or behavior being deprecated. Usually in the form
+ // of "myApp.someFunction()".
+ // extra: String?
+ // Text to append to the message. Often provides advice on a
+ // new function or facility to achieve the same goal during
+ // the deprecation period.
+ // removal: String?
+ // Text to indicate when in the future the behavior will be
+ // removed. Usually a version number.
+ // example:
+ // | dojo.deprecated("myApp.getTemp()", "use myApp.getLocaleTemp() instead", "1.0");
+ }
+
+ dojo.experimental = function(moduleName, extra){
+ // summary: Marks code as experimental.
+ // description:
+ // This can be used to mark a function, file, or module as
+ // experimental. Experimental code is not ready to be used, and the
+ // APIs are subject to change without notice. Experimental code may be
+ // completed deleted without going through the normal deprecation
+ // process.
+ // moduleName: String
+ // The name of a module, or the name of a module file or a specific
+ // function
+ // extra: String?
+ // some additional message for the user
+ // example:
+ // | dojo.experimental("dojo.data.Result");
+ // example:
+ // | dojo.experimental("dojo.weather.toKelvin()", "PENDING approval from NOAA");
+ }
+ =====*/
+
+ //Real functions declared in dojo._firebug.firebug.
+ d.deprecated = d.experimental = function(){};
+
+})();
+// vim:ai:ts=4:noet
+
+/*
+ * loader.js - A bootstrap module. Runs before the hostenv_*.js file. Contains
+ * all of the package loading methods.
+ */
+(function(){
+ var d = dojo, currentModule;
+
+ d.mixin(d, {
+ _loadedModules: {},
+ _inFlightCount: 0,
+ _hasResource: {},
+
+ _modulePrefixes: {
+ dojo: { name: "dojo", value: "." },
+ // dojox: { name: "dojox", value: "../dojox" },
+ // dijit: { name: "dijit", value: "../dijit" },
+ doh: { name: "doh", value: "../util/doh" },
+ tests: { name: "tests", value: "tests" }
+ },
+
+ _moduleHasPrefix: function(/*String*/module){
+ // summary: checks to see if module has been established
+ var mp = d._modulePrefixes;
+ return !!(mp[module] && mp[module].value); // Boolean
+ },
+
+ _getModulePrefix: function(/*String*/module){
+ // summary: gets the prefix associated with module
+ var mp = d._modulePrefixes;
+ if(d._moduleHasPrefix(module)){
+ return mp[module].value; // String
+ }
+ return module; // String
+ },
+
+ _loadedUrls: [],
+
+ //WARNING:
+ // This variable is referenced by packages outside of bootstrap:
+ // FloatingPane.js and undo/browser.js
+ _postLoad: false,
+
+ //Egad! Lots of test files push on this directly instead of using dojo.addOnLoad.
+ _loaders: [],
+ _unloaders: [],
+ _loadNotifying: false
+ });
+
+
+ dojo._loadPath = function(/*String*/relpath, /*String?*/module, /*Function?*/cb){
+ // summary:
+ // Load a Javascript module given a relative path
+ //
+ // description:
+ // Loads and interprets the script located at relpath, which is
+ // relative to the script root directory. If the script is found but
+ // its interpretation causes a runtime exception, that exception is
+ // not caught by us, so the caller will see it. We return a true
+ // value if and only if the script is found.
+ //
+ // relpath:
+ // A relative path to a script (no leading '/', and typically ending
+ // in '.js').
+ // module:
+ // A module whose existance to check for after loading a path. Can be
+ // used to determine success or failure of the load.
+ // cb:
+ // a callback function to pass the result of evaluating the script
+
+ var uri = ((relpath.charAt(0) == '/' || relpath.match(/^\w+:/)) ? "" : d.baseUrl) + relpath;
+ try{
+ currentModule = module;
+ return !module ? d._loadUri(uri, cb) : d._loadUriAndCheck(uri, module, cb); // Boolean
+ }catch(e){
+ console.error(e);
+ return false; // Boolean
+ }finally{
+ currentModule = null;
+ }
+ }
+
+ dojo._loadUri = function(/*String*/uri, /*Function?*/cb){
+ // summary:
+ // Loads JavaScript from a URI
+ // description:
+ // Reads the contents of the URI, and evaluates the contents. This is
+ // used to load modules as well as resource bundles. Returns true if
+ // it succeeded. Returns false if the URI reading failed. Throws if
+ // the evaluation throws.
+ // uri: a uri which points at the script to be loaded
+ // cb:
+ // a callback function to process the result of evaluating the script
+ // as an expression, typically used by the resource bundle loader to
+ // load JSON-style resources
+
+ if(d._loadedUrls[uri]){
+ return true; // Boolean
+ }
+ d._inFlightCount++; // block addOnLoad calls that arrive while we're busy downloading
+ var contents = d._getText(uri, true);
+ if(contents){ // not 404, et al
+ d._loadedUrls[uri] = true;
+ d._loadedUrls.push(uri);
+ if(cb){
+ //conditional to support script-inject i18n bundle format
+ contents = /^define\(/.test(contents) ? contents : '('+contents+')';
+ }else{
+ //Only do the scoping if no callback. If a callback is specified,
+ //it is most likely the i18n bundle stuff.
+ contents = d._scopePrefix + contents + d._scopeSuffix;
+ }
+ if(!d.isIE){ contents += "\r\n//@ sourceURL=" + uri; } // debugging assist for Firebug
+ var value = d["eval"](contents);
+ if(cb){ cb(value); }
+ }
+ // Check to see if we need to call _callLoaded() due to an addOnLoad() that arrived while we were busy downloading
+ if(--d._inFlightCount == 0 && d._postLoad && d._loaders.length){
+ // We shouldn't be allowed to get here but Firefox allows an event
+ // (mouse, keybd, async xhrGet) to interrupt a synchronous xhrGet.
+ // If the current script block contains multiple require() statements, then after each
+ // require() returns, inFlightCount == 0, but we want to hold the _callLoaded() until
+ // all require()s are done since the out-of-sequence addOnLoad() presumably needs them all.
+ // setTimeout allows the next require() to start (if needed), and then we check this again.
+ setTimeout(function(){
+ // If inFlightCount > 0, then multiple require()s are running sequentially and
+ // the next require() started after setTimeout() was executed but before we got here.
+ if(d._inFlightCount == 0){
+ d._callLoaded();
+ }
+ }, 0);
+ }
+ return !!contents; // Boolean: contents? true : false
+ }
+
+ // FIXME: probably need to add logging to this method
+ dojo._loadUriAndCheck = function(/*String*/uri, /*String*/moduleName, /*Function?*/cb){
+ // summary: calls loadUri then findModule and returns true if both succeed
+ var ok = false;
+ try{
+ ok = d._loadUri(uri, cb);
+ }catch(e){
+ console.error("failed loading " + uri + " with error: " + e);
+ }
+ return !!(ok && d._loadedModules[moduleName]); // Boolean
+ }
+
+ dojo.loaded = function(){
+ // summary:
+ // signal fired when initial environment and package loading is
+ // complete. You should use dojo.addOnLoad() instead of doing a
+ // direct dojo.connect() to this method in order to handle
+ // initialization tasks that require the environment to be
+ // initialized. In a browser host, declarative widgets will
+ // be constructed when this function finishes runing.
+ d._loadNotifying = true;
+ d._postLoad = true;
+ var mll = d._loaders;
+
+ //Clear listeners so new ones can be added
+ //For other xdomain package loads after the initial load.
+ d._loaders = [];
+
+ for(var x = 0; x < mll.length; x++){
+ mll[x]();
+ }
+
+ d._loadNotifying = false;
+
+ //Make sure nothing else got added to the onload queue
+ //after this first run. If something did, and we are not waiting for any
+ //more inflight resources, run again.
+ if(d._postLoad && d._inFlightCount == 0 && mll.length){
+ d._callLoaded();
+ }
+ }
+
+ dojo.unloaded = function(){
+ // summary:
+ // signal fired by impending environment destruction. You should use
+ // dojo.addOnUnload() instead of doing a direct dojo.connect() to this
+ // method to perform page/application cleanup methods. See
+ // dojo.addOnUnload for more info.
+ var mll = d._unloaders;
+ while(mll.length){
+ (mll.pop())();
+ }
+ }
+
+ d._onto = function(arr, obj, fn){
+ if(!fn){
+ arr.push(obj);
+ }else if(fn){
+ var func = (typeof fn == "string") ? obj[fn] : fn;
+ arr.push(function(){ func.call(obj); });
+ }
+ }
+
+ dojo.ready = dojo.addOnLoad = function(/*Object*/obj, /*String|Function?*/functionName){
+ // summary:
+ // Registers a function to be triggered after the DOM and dojo.require() calls
+ // have finished loading.
+ //
+ // description:
+ // Registers a function to be triggered after the DOM has finished
+ // loading and `dojo.require` modules have loaded. Widgets declared in markup
+ // have been instantiated if `djConfig.parseOnLoad` is true when this fires.
+ //
+ // Images and CSS files may or may not have finished downloading when
+ // the specified function is called. (Note that widgets' CSS and HTML
+ // code is guaranteed to be downloaded before said widgets are
+ // instantiated, though including css resouces BEFORE any script elements
+ // is highly recommended).
+ //
+ // example:
+ // Register an anonymous function to run when everything is ready
+ // | dojo.addOnLoad(function(){ doStuff(); });
+ //
+ // example:
+ // Register a function to run when everything is ready by pointer:
+ // | var init = function(){ doStuff(); }
+ // | dojo.addOnLoad(init);
+ //
+ // example:
+ // Register a function to run scoped to `object`, either by name or anonymously:
+ // | dojo.addOnLoad(object, "functionName");
+ // | dojo.addOnLoad(object, function(){ doStuff(); });
+
+ d._onto(d._loaders, obj, functionName);
+
+ //Added for xdomain loading. dojo.addOnLoad is used to
+ //indicate callbacks after doing some dojo.require() statements.
+ //In the xdomain case, if all the requires are loaded (after initial
+ //page load), then immediately call any listeners.
+ if(d._postLoad && d._inFlightCount == 0 && !d._loadNotifying){
+ d._callLoaded();
+ }
+ }
+
+ //Support calling dojo.addOnLoad via djConfig.addOnLoad. Support all the
+ //call permutations of dojo.addOnLoad. Mainly useful when dojo is added
+ //to the page after the page has loaded.
+ var dca = d.config.addOnLoad;
+ if(dca){
+ d.addOnLoad[(dca instanceof Array ? "apply" : "call")](d, dca);
+ }
+
+ dojo._modulesLoaded = function(){
+ if(d._postLoad){ return; }
+ if(d._inFlightCount > 0){
+ console.warn("files still in flight!");
+ return;
+ }
+ d._callLoaded();
+ }
+
+ dojo._callLoaded = function(){
+
+ // The "object" check is for IE, and the other opera check fixes an
+ // issue in Opera where it could not find the body element in some
+ // widget test cases. For 0.9, maybe route all browsers through the
+ // setTimeout (need protection still for non-browser environments
+ // though). This might also help the issue with FF 2.0 and freezing
+ // issues where we try to do sync xhr while background css images are
+ // being loaded (trac #2572)? Consider for 0.9.
+ if(typeof setTimeout == "object" || (d.config.useXDomain && d.isOpera)){
+ setTimeout(
+ d.isAIR ? function(){ d.loaded(); } : d._scopeName + ".loaded();",
+ 0);
+ }else{
+ d.loaded();
+ }
+ }
+
+ dojo._getModuleSymbols = function(/*String*/modulename){
+ // summary:
+ // Converts a module name in dotted JS notation to an array
+ // representing the path in the source tree
+ var syms = modulename.split(".");
+ for(var i = syms.length; i>0; i--){
+ var parentModule = syms.slice(0, i).join(".");
+ if(i == 1 && !d._moduleHasPrefix(parentModule)){
+ // Support default module directory (sibling of dojo) for top-level modules
+ syms[0] = "../" + syms[0];
+ }else{
+ var parentModulePath = d._getModulePrefix(parentModule);
+ if(parentModulePath != parentModule){
+ syms.splice(0, i, parentModulePath);
+ break;
+ }
+ }
+ }
+ return syms; // Array
+ }
+
+ dojo._global_omit_module_check = false;
+
+ dojo.loadInit = function(/*Function*/init){
+ // summary:
+ // Executes a function that needs to be executed for the loader's dojo.requireIf
+ // resolutions to work. This is needed mostly for the xdomain loader case where
+ // a function needs to be executed to set up the possible values for a dojo.requireIf
+ // call.
+ // init:
+ // a function reference. Executed immediately.
+ // description: This function is mainly a marker for the xdomain loader to know parts of
+ // code that needs be executed outside the function wrappper that is placed around modules.
+ // The init function could be executed more than once, and it should make no assumptions
+ // on what is loaded, or what modules are available. Only the functionality in Dojo Base
+ // is allowed to be used. Avoid using this method. For a valid use case,
+ // see the source for dojox.gfx.
+ init();
+ }
+
+ dojo._loadModule = dojo.require = function(/*String*/moduleName, /*Boolean?*/omitModuleCheck){
+ // summary:
+ // loads a Javascript module from the appropriate URI
+ //
+ // moduleName: String
+ // module name to load, using periods for separators,
+ // e.g. "dojo.date.locale". Module paths are de-referenced by dojo's
+ // internal mapping of locations to names and are disambiguated by
+ // longest prefix. See `dojo.registerModulePath()` for details on
+ // registering new modules.
+ //
+ // omitModuleCheck: Boolean?
+ // if `true`, omitModuleCheck skips the step of ensuring that the
+ // loaded file actually defines the symbol it is referenced by.
+ // For example if it called as `dojo.require("a.b.c")` and the
+ // file located at `a/b/c.js` does not define an object `a.b.c`,
+ // and exception will be throws whereas no exception is raised
+ // when called as `dojo.require("a.b.c", true)`
+ //
+ // description:
+ // Modules are loaded via dojo.require by using one of two loaders: the normal loader
+ // and the xdomain loader. The xdomain loader is used when dojo was built with a
+ // custom build that specified loader=xdomain and the module lives on a modulePath
+ // that is a whole URL, with protocol and a domain. The versions of Dojo that are on
+ // the Google and AOL CDNs use the xdomain loader.
+ //
+ // If the module is loaded via the xdomain loader, it is an asynchronous load, since
+ // the module is added via a dynamically created script tag. This
+ // means that dojo.require() can return before the module has loaded. However, this
+ // should only happen in the case where you do dojo.require calls in the top-level
+ // HTML page, or if you purposely avoid the loader checking for dojo.require
+ // dependencies in your module by using a syntax like dojo["require"] to load the module.
+ //
+ // Sometimes it is useful to not have the loader detect the dojo.require calls in the
+ // module so that you can dynamically load the modules as a result of an action on the
+ // page, instead of right at module load time.
+ //
+ // Also, for script blocks in an HTML page, the loader does not pre-process them, so
+ // it does not know to download the modules before the dojo.require calls occur.
+ //
+ // So, in those two cases, when you want on-the-fly module loading or for script blocks
+ // in the HTML page, special care must be taken if the dojo.required code is loaded
+ // asynchronously. To make sure you can execute code that depends on the dojo.required
+ // modules, be sure to add the code that depends on the modules in a dojo.addOnLoad()
+ // callback. dojo.addOnLoad waits for all outstanding modules to finish loading before
+ // executing.
+ //
+ // This type of syntax works with both xdomain and normal loaders, so it is good
+ // practice to always use this idiom for on-the-fly code loading and in HTML script
+ // blocks. If at some point you change loaders and where the code is loaded from,
+ // it will all still work.
+ //
+ // More on how dojo.require
+ // `dojo.require("A.B")` first checks to see if symbol A.B is
+ // defined. If it is, it is simply returned (nothing to do).
+ //
+ // If it is not defined, it will look for `A/B.js` in the script root
+ // directory.
+ //
+ // `dojo.require` throws an exception if it cannot find a file
+ // to load, or if the symbol `A.B` is not defined after loading.
+ //
+ // It returns the object `A.B`, but note the caveats above about on-the-fly loading and
+ // HTML script blocks when the xdomain loader is loading a module.
+ //
+ // `dojo.require()` does nothing about importing symbols into
+ // the current namespace. It is presumed that the caller will
+ // take care of that.
+ //
+ // example:
+ // To use dojo.require in conjunction with dojo.ready:
+ //
+ // | dojo.require("foo");
+ // | dojo.require("bar");
+ // | dojo.addOnLoad(function(){
+ // | //you can now safely do something with foo and bar
+ // | });
+ //
+ // example:
+ // For example, to import all symbols into a local block, you might write:
+ //
+ // | with (dojo.require("A.B")) {
+ // | ...
+ // | }
+ //
+ // And to import just the leaf symbol to a local variable:
+ //
+ // | var B = dojo.require("A.B");
+ // | ...
+ //
+ // returns:
+ // the required namespace object
+ omitModuleCheck = d._global_omit_module_check || omitModuleCheck;
+
+ //Check if it is already loaded.
+ var module = d._loadedModules[moduleName];
+ if(module){
+ return module;
+ }
+
+ // convert periods to slashes
+ var relpath = d._getModuleSymbols(moduleName).join("/") + '.js';
+ var modArg = !omitModuleCheck ? moduleName : null;
+ var ok = d._loadPath(relpath, modArg);
+ if(!ok && !omitModuleCheck){
+ throw new Error("Could not load '" + moduleName + "'; last tried '" + relpath + "'");
+ }
+
+ // check that the symbol was defined
+ // Don't bother if we're doing xdomain (asynchronous) loading.
+ if(!omitModuleCheck && !d._isXDomain){
+ // pass in false so we can give better error
+ module = d._loadedModules[moduleName];
+ if(!module){
+ throw new Error("symbol '" + moduleName + "' is not defined after loading '" + relpath + "'");
+ }
+ }
+
+ return module;
+ }
+
+ dojo.provide = function(/*String*/ resourceName){
+ // summary:
+ // Register a resource with the package system. Works in conjunction with `dojo.require`
+ //
+ // description:
+ // Each javascript source file is called a resource. When a
+ // resource is loaded by the browser, `dojo.provide()` registers
+ // that it has been loaded.
+ //
+ // Each javascript source file must have at least one
+ // `dojo.provide()` call at the top of the file, corresponding to
+ // the file name. For example, `js/dojo/foo.js` must have
+ // `dojo.provide("dojo.foo");` before any calls to
+ // `dojo.require()` are made.
+ //
+ // For backwards compatibility reasons, in addition to registering
+ // the resource, `dojo.provide()` also ensures that the javascript
+ // object for the module exists. For example,
+ // `dojo.provide("dojox.data.FlickrStore")`, in addition to
+ // registering that `FlickrStore.js` is a resource for the
+ // `dojox.data` module, will ensure that the `dojox.data`
+ // javascript object exists, so that calls like
+ // `dojo.data.foo = function(){ ... }` don't fail.
+ //
+ // In the case of a build where multiple javascript source files
+ // are combined into one bigger file (similar to a .lib or .jar
+ // file), that file may contain multiple dojo.provide() calls, to
+ // note that it includes multiple resources.
+ //
+ // resourceName: String
+ // A dot-sperated string identifying a resource.
+ //
+ // example:
+ // Safely create a `my` object, and make dojo.require("my.CustomModule") work
+ // | dojo.provide("my.CustomModule");
+
+ //Make sure we have a string.
+ resourceName = resourceName + "";
+ return (d._loadedModules[resourceName] = d.getObject(resourceName, true)); // Object
+ }
+
+ //Start of old bootstrap2:
+
+ dojo.platformRequire = function(/*Object*/modMap){
+ // summary:
+ // require one or more modules based on which host environment
+ // Dojo is currently operating in
+ // description:
+ // This method takes a "map" of arrays which one can use to
+ // optionally load dojo modules. The map is indexed by the
+ // possible dojo.name_ values, with two additional values:
+ // "default" and "common". The items in the "default" array will
+ // be loaded if none of the other items have been choosen based on
+ // dojo.name_, set by your host environment. The items in the
+ // "common" array will *always* be loaded, regardless of which
+ // list is chosen.
+ // example:
+ // | dojo.platformRequire({
+ // | browser: [
+ // | "foo.sample", // simple module
+ // | "foo.test",
+ // | ["foo.bar.baz", true] // skip object check in _loadModule (dojo.require)
+ // | ],
+ // | default: [ "foo.sample._base" ],
+ // | common: [ "important.module.common" ]
+ // | });
+
+ var common = modMap.common || [];
+ var result = common.concat(modMap[d._name] || modMap["default"] || []);
+
+ for(var x=0; x<result.length; x++){
+ var curr = result[x];
+ if(curr.constructor == Array){
+ d._loadModule.apply(d, curr);
+ }else{
+ d._loadModule(curr);
+ }
+ }
+ }
+
+ dojo.requireIf = function(/*Boolean*/ condition, /*String*/ resourceName){
+ // summary:
+ // If the condition is true then call `dojo.require()` for the specified
+ // resource
+ //
+ // example:
+ // | dojo.requireIf(dojo.isBrowser, "my.special.Module");
+
+ if(condition === true){
+ // FIXME: why do we support chained require()'s here? does the build system?
+ var args = [];
+ for(var i = 1; i < arguments.length; i++){
+ args.push(arguments[i]);
+ }
+ d.require.apply(d, args);
+ }
+ }
+
+ dojo.requireAfterIf = d.requireIf;
+
+ dojo.registerModulePath = function(/*String*/module, /*String*/prefix){
+ // summary:
+ // Maps a module name to a path
+ // description:
+ // An unregistered module is given the default path of ../[module],
+ // relative to Dojo root. For example, module acme is mapped to
+ // ../acme. If you want to use a different module name, use
+ // dojo.registerModulePath.
+ // example:
+ // If your dojo.js is located at this location in the web root:
+ // | /myapp/js/dojo/dojo/dojo.js
+ // and your modules are located at:
+ // | /myapp/js/foo/bar.js
+ // | /myapp/js/foo/baz.js
+ // | /myapp/js/foo/thud/xyzzy.js
+ // Your application can tell Dojo to locate the "foo" namespace by calling:
+ // | dojo.registerModulePath("foo", "../../foo");
+ // At which point you can then use dojo.require() to load the
+ // modules (assuming they provide() the same things which are
+ // required). The full code might be:
+ // | <script type="text/javascript"
+ // | src="/myapp/js/dojo/dojo/dojo.js"></script>
+ // | <script type="text/javascript">
+ // | dojo.registerModulePath("foo", "../../foo");
+ // | dojo.require("foo.bar");
+ // | dojo.require("foo.baz");
+ // | dojo.require("foo.thud.xyzzy");
+ // | </script>
+ d._modulePrefixes[module] = { name: module, value: prefix };
+ };
+
+ dojo.requireLocalization = function(/*String*/moduleName, /*String*/bundleName, /*String?*/locale, /*String?*/availableFlatLocales){
+ // summary:
+ // Declares translated resources and loads them if necessary, in the
+ // same style as dojo.require. Contents of the resource bundle are
+ // typically strings, but may be any name/value pair, represented in
+ // JSON format. See also `dojo.i18n.getLocalization`.
+ //
+ // description:
+ // Load translated resource bundles provided underneath the "nls"
+ // directory within a package. Translated resources may be located in
+ // different packages throughout the source tree.
+ //
+ // Each directory is named for a locale as specified by RFC 3066,
+ // (http://www.ietf.org/rfc/rfc3066.txt), normalized in lowercase.
+ // Note that the two bundles in the example do not define all the
+ // same variants. For a given locale, bundles will be loaded for
+ // that locale and all more general locales above it, including a
+ // fallback at the root directory. For example, a declaration for
+ // the "de-at" locale will first load `nls/de-at/bundleone.js`,
+ // then `nls/de/bundleone.js` and finally `nls/bundleone.js`. The
+ // data will be flattened into a single Object so that lookups
+ // will follow this cascading pattern. An optional build step can
+ // preload the bundles to avoid data redundancy and the multiple
+ // network hits normally required to load these resources.
+ //
+ // moduleName:
+ // name of the package containing the "nls" directory in which the
+ // bundle is found
+ //
+ // bundleName:
+ // bundle name, i.e. the filename without the '.js' suffix. Using "nls" as a
+ // a bundle name is not supported, since "nls" is the name of the folder
+ // that holds bundles. Using "nls" as the bundle name will cause problems
+ // with the custom build.
+ //
+ // locale:
+ // the locale to load (optional) By default, the browser's user
+ // locale as defined by dojo.locale
+ //
+ // availableFlatLocales:
+ // A comma-separated list of the available, flattened locales for this
+ // bundle. This argument should only be set by the build process.
+ //
+ // example:
+ // A particular widget may define one or more resource bundles,
+ // structured in a program as follows, where moduleName is
+ // mycode.mywidget and bundleNames available include bundleone and
+ // bundletwo:
+ // | ...
+ // | mycode/
+ // | mywidget/
+ // | nls/
+ // | bundleone.js (the fallback translation, English in this example)
+ // | bundletwo.js (also a fallback translation)
+ // | de/
+ // | bundleone.js
+ // | bundletwo.js
+ // | de-at/
+ // | bundleone.js
+ // | en/
+ // | (empty; use the fallback translation)
+ // | en-us/
+ // | bundleone.js
+ // | en-gb/
+ // | bundleone.js
+ // | es/
+ // | bundleone.js
+ // | bundletwo.js
+ // | ...etc
+ // | ...
+ //
+
+ d.require("dojo.i18n");
+ d.i18n._requireLocalization.apply(d.hostenv, arguments);
+ };
+
+
+ var ore = new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),
+ ire = new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$");
+
+ dojo._Url = function(/*dojo._Url|String...*/){
+ // summary:
+ // Constructor to create an object representing a URL.
+ // It is marked as private, since we might consider removing
+ // or simplifying it.
+ // description:
+ // Each argument is evaluated in order relative to the next until
+ // a canonical uri is produced. To get an absolute Uri relative to
+ // the current document use:
+ // new dojo._Url(document.baseURI, url)
+
+ var n = null,
+ _a = arguments,
+ uri = [_a[0]];
+ // resolve uri components relative to each other
+ for(var i = 1; i<_a.length; i++){
+ if(!_a[i]){ continue; }
+
+ // Safari doesn't support this.constructor so we have to be explicit
+ // FIXME: Tracked (and fixed) in Webkit bug 3537.
+ // http://bugs.webkit.org/show_bug.cgi?id=3537
+ var relobj = new d._Url(_a[i]+""),
+ uriobj = new d._Url(uri[0]+"");
+
+ if(
+ relobj.path == "" &&
+ !relobj.scheme &&
+ !relobj.authority &&
+ !relobj.query
+ ){
+ if(relobj.fragment != n){
+ uriobj.fragment = relobj.fragment;
+ }
+ relobj = uriobj;
+ }else if(!relobj.scheme){
+ relobj.scheme = uriobj.scheme;
+
+ if(!relobj.authority){
+ relobj.authority = uriobj.authority;
+
+ if(relobj.path.charAt(0) != "/"){
+ var path = uriobj.path.substring(0,
+ uriobj.path.lastIndexOf("/") + 1) + relobj.path;
+
+ var segs = path.split("/");
+ for(var j = 0; j < segs.length; j++){
+ if(segs[j] == "."){
+ // flatten "./" references
+ if(j == segs.length - 1){
+ segs[j] = "";
+ }else{
+ segs.splice(j, 1);
+ j--;
+ }
+ }else if(j > 0 && !(j == 1 && segs[0] == "") &&
+ segs[j] == ".." && segs[j-1] != ".."){
+ // flatten "../" references
+ if(j == (segs.length - 1)){
+ segs.splice(j, 1);
+ segs[j - 1] = "";
+ }else{
+ segs.splice(j - 1, 2);
+ j -= 2;
+ }
+ }
+ }
+ relobj.path = segs.join("/");
+ }
+ }
+ }
+
+ uri = [];
+ if(relobj.scheme){
+ uri.push(relobj.scheme, ":");
+ }
+ if(relobj.authority){
+ uri.push("//", relobj.authority);
+ }
+ uri.push(relobj.path);
+ if(relobj.query){
+ uri.push("?", relobj.query);
+ }
+ if(relobj.fragment){
+ uri.push("#", relobj.fragment);
+ }
+ }
+
+ this.uri = uri.join("");
+
+ // break the uri into its main components
+ var r = this.uri.match(ore);
+
+ this.scheme = r[2] || (r[1] ? "" : n);
+ this.authority = r[4] || (r[3] ? "" : n);
+ this.path = r[5]; // can never be undefined
+ this.query = r[7] || (r[6] ? "" : n);
+ this.fragment = r[9] || (r[8] ? "" : n);
+
+ if(this.authority != n){
+ // server based naming authority
+ r = this.authority.match(ire);
+
+ this.user = r[3] || n;
+ this.password = r[4] || n;
+ this.host = r[6] || r[7]; // ipv6 || ipv4
+ this.port = r[9] || n;
+ }
+ }
+
+ dojo._Url.prototype.toString = function(){ return this.uri; };
+
+ dojo.moduleUrl = function(/*String*/module, /*dojo._Url||String*/url){
+ // summary:
+ // Returns a `dojo._Url` object relative to a module.
+ // example:
+ // | var pngPath = dojo.moduleUrl("acme","images/small.png");
+ // | console.dir(pngPath); // list the object properties
+ // | // create an image and set it's source to pngPath's value:
+ // | var img = document.createElement("img");
+ // | // NOTE: we assign the string representation of the url object
+ // | img.src = pngPath.toString();
+ // | // add our image to the document
+ // | dojo.body().appendChild(img);
+ // example:
+ // you may de-reference as far as you like down the package
+ // hierarchy. This is sometimes handy to avoid lenghty relative
+ // urls or for building portable sub-packages. In this example,
+ // the `acme.widget` and `acme.util` directories may be located
+ // under different roots (see `dojo.registerModulePath`) but the
+ // the modules which reference them can be unaware of their
+ // relative locations on the filesystem:
+ // | // somewhere in a configuration block
+ // | dojo.registerModulePath("acme.widget", "../../acme/widget");
+ // | dojo.registerModulePath("acme.util", "../../util");
+ // |
+ // | // ...
+ // |
+ // | // code in a module using acme resources
+ // | var tmpltPath = dojo.moduleUrl("acme.widget","templates/template.html");
+ // | var dataPath = dojo.moduleUrl("acme.util","resources/data.json");
+
+ var loc = d._getModuleSymbols(module).join('/');
+ if(!loc){ return null; }
+ if(loc.lastIndexOf("/") != loc.length-1){
+ loc += "/";
+ }
+
+ //If the path is an absolute path (starts with a / or is on another
+ //domain/xdomain) then don't add the baseUrl.
+ var colonIndex = loc.indexOf(":");
+ if(loc.charAt(0) != "/" && (colonIndex == -1 || colonIndex > loc.indexOf("/"))){
+ loc = d.baseUrl + loc;
+ }
+
+ return new d._Url(loc, url); // dojo._Url
+ };
+
+
+
+})();
+
+/*=====
+dojo.isBrowser = {
+ // example:
+ // | if(dojo.isBrowser){ ... }
+};
+
+dojo.isFF = {
+ // example:
+ // | if(dojo.isFF > 1){ ... }
+};
+
+dojo.isIE = {
+ // example:
+ // | if(dojo.isIE > 6){
+ // | // we are IE7
+ // | }
+};
+
+dojo.isSafari = {
+ // example:
+ // | if(dojo.isSafari){ ... }
+ // example:
+ // Detect iPhone:
+ // | if(dojo.isSafari && navigator.userAgent.indexOf("iPhone") != -1){
+ // | // we are iPhone. Note, iPod touch reports "iPod" above and fails this test.
+ // | }
+};
+
+dojo = {
+ // isBrowser: Boolean
+ // True if the client is a web-browser
+ isBrowser: true,
+ // isFF: Number | undefined
+ // Version as a Number if client is FireFox. undefined otherwise. Corresponds to
+ // major detected FireFox version (1.5, 2, 3, etc.)
+ isFF: 2,
+ // isIE: Number | undefined
+ // Version as a Number if client is MSIE(PC). undefined otherwise. Corresponds to
+ // major detected IE version (6, 7, 8, etc.)
+ isIE: 6,
+ // isKhtml: Number | undefined
+ // Version as a Number if client is a KHTML browser. undefined otherwise. Corresponds to major
+ // detected version.
+ isKhtml: 0,
+ // isWebKit: Number | undefined
+ // Version as a Number if client is a WebKit-derived browser (Konqueror,
+ // Safari, Chrome, etc.). undefined otherwise.
+ isWebKit: 0,
+ // isMozilla: Number | undefined
+ // Version as a Number if client is a Mozilla-based browser (Firefox,
+ // SeaMonkey). undefined otherwise. Corresponds to major detected version.
+ isMozilla: 0,
+ // isOpera: Number | undefined
+ // Version as a Number if client is Opera. undefined otherwise. Corresponds to
+ // major detected version.
+ isOpera: 0,
+ // isSafari: Number | undefined
+ // Version as a Number if client is Safari or iPhone. undefined otherwise.
+ isSafari: 0,
+ // isChrome: Number | undefined
+ // Version as a Number if client is Chrome browser. undefined otherwise.
+ isChrome: 0
+ // isMac: Boolean
+ // True if the client runs on Mac
+}
+=====*/
+if(typeof window != 'undefined'){
+ dojo.isBrowser = true;
+ dojo._name = "browser";
+
+
+ // attempt to figure out the path to dojo if it isn't set in the config
+ (function(){
+ var d = dojo;
+
+ // this is a scope protection closure. We set browser versions and grab
+ // the URL we were loaded from here.
+
+ // grab the node we were loaded from
+ if(document && document.getElementsByTagName){
+ var scripts = document.getElementsByTagName("script");
+ var rePkg = /dojo(\.xd)?\.js(\W|$)/i;
+ for(var i = 0; i < scripts.length; i++){
+ var src = scripts[i].getAttribute("src");
+ if(!src){ continue; }
+ var m = src.match(rePkg);
+ if(m){
+ // find out where we came from
+ if(!d.config.baseUrl){
+ d.config.baseUrl = src.substring(0, m.index);
+ }
+ // and find out if we need to modify our behavior
+ var cfg = (scripts[i].getAttribute("djConfig") || scripts[i].getAttribute("data-dojo-config"));
+ if(cfg){
+ var cfgo = eval("({ "+cfg+" })");
+ for(var x in cfgo){
+ dojo.config[x] = cfgo[x];
+ }
+ }
+ break; // "first Dojo wins"
+ }
+ }
+ }
+ d.baseUrl = d.config.baseUrl;
+
+ // fill in the rendering support information in dojo.render.*
+ var n = navigator;
+ var dua = n.userAgent,
+ dav = n.appVersion,
+ tv = parseFloat(dav);
+
+ if(dua.indexOf("Opera") >= 0){ d.isOpera = tv; }
+ if(dua.indexOf("AdobeAIR") >= 0){ d.isAIR = 1; }
+ d.isKhtml = (dav.indexOf("Konqueror") >= 0) ? tv : 0;
+ d.isWebKit = parseFloat(dua.split("WebKit/")[1]) || undefined;
+ d.isChrome = parseFloat(dua.split("Chrome/")[1]) || undefined;
+ d.isMac = dav.indexOf("Macintosh") >= 0;
+
+ // safari detection derived from:
+ // http://developer.apple.com/internet/safari/faq.html#anchor2
+ // http://developer.apple.com/internet/safari/uamatrix.html
+ var index = Math.max(dav.indexOf("WebKit"), dav.indexOf("Safari"), 0);
+ if(index && !dojo.isChrome){
+ // try to grab the explicit Safari version first. If we don't get
+ // one, look for less than 419.3 as the indication that we're on something
+ // "Safari 2-ish".
+ d.isSafari = parseFloat(dav.split("Version/")[1]);
+ if(!d.isSafari || parseFloat(dav.substr(index + 7)) <= 419.3){
+ d.isSafari = 2;
+ }
+ }
+
+ if(dua.indexOf("Gecko") >= 0 && !d.isKhtml && !d.isWebKit){ d.isMozilla = d.isMoz = tv; }
+ if(d.isMoz){
+ //We really need to get away from this. Consider a sane isGecko approach for the future.
+ d.isFF = parseFloat(dua.split("Firefox/")[1] || dua.split("Minefield/")[1]) || undefined;
+ }
+ if(document.all && !d.isOpera){
+ d.isIE = parseFloat(dav.split("MSIE ")[1]) || undefined;
+ //In cases where the page has an HTTP header or META tag with
+ //X-UA-Compatible, then it is in emulation mode.
+ //Make sure isIE reflects the desired version.
+ //document.documentMode of 5 means quirks mode.
+ //Only switch the value if documentMode's major version
+ //is different from isIE's major version.
+ var mode = document.documentMode;
+ if(mode && mode != 5 && Math.floor(d.isIE) != mode){
+ d.isIE = mode;
+ }
+ }
+
+ //Workaround to get local file loads of dojo to work on IE 7
+ //by forcing to not use native xhr.
+ if(dojo.isIE && window.location.protocol === "file:"){
+ dojo.config.ieForceActiveXXhr=true;
+ }
+
+ d.isQuirks = document.compatMode == "BackCompat";
+
+ // TODO: is the HTML LANG attribute relevant?
+ d.locale = dojo.config.locale || (d.isIE ? n.userLanguage : n.language).toLowerCase();
+
+ // These are in order of decreasing likelihood; this will change in time.
+ d._XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
+
+ d._xhrObj = function(){
+ // summary:
+ // does the work of portably generating a new XMLHTTPRequest object.
+ var http, last_e;
+ if(!dojo.isIE || !dojo.config.ieForceActiveXXhr){
+ try{ http = new XMLHttpRequest(); }catch(e){}
+ }
+ if(!http){
+ for(var i=0; i<3; ++i){
+ var progid = d._XMLHTTP_PROGIDS[i];
+ try{
+ http = new ActiveXObject(progid);
+ }catch(e){
+ last_e = e;
+ }
+
+ if(http){
+ d._XMLHTTP_PROGIDS = [progid]; // so faster next time
+ break;
+ }
+ }
+ }
+
+ if(!http){
+ throw new Error("XMLHTTP not available: "+last_e);
+ }
+
+ return http; // XMLHTTPRequest instance
+ }
+
+ d._isDocumentOk = function(http){
+ var stat = http.status || 0,
+ lp = location.protocol;
+ return (stat >= 200 && stat < 300) || // Boolean
+ stat == 304 || // allow any 2XX response code
+ stat == 1223 || // get it out of the cache
+ // Internet Explorer mangled the status code
+ // Internet Explorer mangled the status code OR we're Titanium/browser chrome/chrome extension requesting a local file
+ (!stat && (lp == "file:" || lp == "chrome:" || lp == "chrome-extension:" || lp == "app:"));
+ }
+
+ //See if base tag is in use.
+ //This is to fix http://trac.dojotoolkit.org/ticket/3973,
+ //but really, we need to find out how to get rid of the dojo._Url reference
+ //below and still have DOH work with the dojo.i18n test following some other
+ //test that uses the test frame to load a document (trac #2757).
+ //Opera still has problems, but perhaps a larger issue of base tag support
+ //with XHR requests (hasBase is true, but the request is still made to document
+ //path, not base path).
+ var owloc = window.location+"";
+ var base = document.getElementsByTagName("base");
+ var hasBase = (base && base.length > 0);
+
+ d._getText = function(/*URI*/ uri, /*Boolean*/ fail_ok){
+ // summary: Read the contents of the specified uri and return those contents.
+ // uri:
+ // A relative or absolute uri. If absolute, it still must be in
+ // the same "domain" as we are.
+ // fail_ok:
+ // Default false. If fail_ok and loading fails, return null
+ // instead of throwing.
+ // returns: The response text. null is returned when there is a
+ // failure and failure is okay (an exception otherwise)
+
+ // NOTE: must be declared before scope switches ie. this._xhrObj()
+ var http = d._xhrObj();
+
+ if(!hasBase && dojo._Url){
+ uri = (new dojo._Url(owloc, uri)).toString();
+ }
+
+ if(d.config.cacheBust){
+ //Make sure we have a string before string methods are used on uri
+ uri += "";
+ uri += (uri.indexOf("?") == -1 ? "?" : "&") + String(d.config.cacheBust).replace(/\W+/g,"");
+ }
+
+ http.open('GET', uri, false);
+ try{
+ http.send(null);
+ if(!d._isDocumentOk(http)){
+ var err = Error("Unable to load "+uri+" status:"+ http.status);
+ err.status = http.status;
+ err.responseText = http.responseText;
+ throw err;
+ }
+ }catch(e){
+ if(fail_ok){ return null; } // null
+ // rethrow the exception
+ throw e;
+ }
+ return http.responseText; // String
+ }
+
+
+ var _w = window;
+ var _handleNodeEvent = function(/*String*/evtName, /*Function*/fp){
+ // summary:
+ // non-destructively adds the specified function to the node's
+ // evtName handler.
+ // evtName: should be in the form "onclick" for "onclick" handlers.
+ // Make sure you pass in the "on" part.
+ var _a = _w.attachEvent || _w.addEventListener;
+ evtName = _w.attachEvent ? evtName : evtName.substring(2);
+ _a(evtName, function(){
+ fp.apply(_w, arguments);
+ }, false);
+ };
+
+
+ d._windowUnloaders = [];
+
+ d.windowUnloaded = function(){
+ // summary:
+ // signal fired by impending window destruction. You may use
+ // dojo.addOnWindowUnload() to register a listener for this
+ // event. NOTE: if you wish to dojo.connect() to this method
+ // to perform page/application cleanup, be aware that this
+ // event WILL NOT fire if no handler has been registered with
+ // dojo.addOnWindowUnload. This behavior started in Dojo 1.3.
+ // Previous versions always triggered dojo.windowUnloaded. See
+ // dojo.addOnWindowUnload for more info.
+ var mll = d._windowUnloaders;
+ while(mll.length){
+ (mll.pop())();
+ }
+ d = null;
+ };
+
+ var _onWindowUnloadAttached = 0;
+ d.addOnWindowUnload = function(/*Object?|Function?*/obj, /*String|Function?*/functionName){
+ // summary:
+ // registers a function to be triggered when window.onunload
+ // fires.
+ // description:
+ // The first time that addOnWindowUnload is called Dojo
+ // will register a page listener to trigger your unload
+ // handler with. Note that registering these handlers may
+ // destory "fastback" page caching in browsers that support
+ // it. Be careful trying to modify the DOM or access
+ // JavaScript properties during this phase of page unloading:
+ // they may not always be available. Consider
+ // dojo.addOnUnload() if you need to modify the DOM or do
+ // heavy JavaScript work since it fires at the eqivalent of
+ // the page's "onbeforeunload" event.
+ // example:
+ // | dojo.addOnWindowUnload(functionPointer)
+ // | dojo.addOnWindowUnload(object, "functionName");
+ // | dojo.addOnWindowUnload(object, function(){ /* ... */});
+
+ d._onto(d._windowUnloaders, obj, functionName);
+ if(!_onWindowUnloadAttached){
+ _onWindowUnloadAttached = 1;
+ _handleNodeEvent("onunload", d.windowUnloaded);
+ }
+ };
+
+ var _onUnloadAttached = 0;
+ d.addOnUnload = function(/*Object?|Function?*/obj, /*String|Function?*/functionName){
+ // summary:
+ // registers a function to be triggered when the page unloads.
+ // description:
+ // The first time that addOnUnload is called Dojo will
+ // register a page listener to trigger your unload handler
+ // with.
+ //
+ // In a browser enviroment, the functions will be triggered
+ // during the window.onbeforeunload event. Be careful of doing
+ // too much work in an unload handler. onbeforeunload can be
+ // triggered if a link to download a file is clicked, or if
+ // the link is a javascript: link. In these cases, the
+ // onbeforeunload event fires, but the document is not
+ // actually destroyed. So be careful about doing destructive
+ // operations in a dojo.addOnUnload callback.
+ //
+ // Further note that calling dojo.addOnUnload will prevent
+ // browsers from using a "fast back" cache to make page
+ // loading via back button instantaneous.
+ // example:
+ // | dojo.addOnUnload(functionPointer)
+ // | dojo.addOnUnload(object, "functionName")
+ // | dojo.addOnUnload(object, function(){ /* ... */});
+
+ d._onto(d._unloaders, obj, functionName);
+ if(!_onUnloadAttached){
+ _onUnloadAttached = 1;
+ _handleNodeEvent("onbeforeunload", dojo.unloaded);
+ }
+ };
+
+ })();
+
+ //START DOMContentLoaded
+ dojo._initFired = false;
+ dojo._loadInit = function(e){
+ if(dojo._scrollIntervalId){
+ clearInterval(dojo._scrollIntervalId);
+ dojo._scrollIntervalId = 0;
+ }
+
+ if(!dojo._initFired){
+ dojo._initFired = true;
+
+ //Help out IE to avoid memory leak.
+ if(!dojo.config.afterOnLoad && window.detachEvent){
+ window.detachEvent("onload", dojo._loadInit);
+ }
+
+ if(dojo._inFlightCount == 0){
+ dojo._modulesLoaded();
+ }
+ }
+ }
+
+ if(!dojo.config.afterOnLoad){
+ if(document.addEventListener){
+ //Standards. Hooray! Assumption here that if standards based,
+ //it knows about DOMContentLoaded. It is OK if it does not, the fall through
+ //to window onload should be good enough.
+ document.addEventListener("DOMContentLoaded", dojo._loadInit, false);
+ window.addEventListener("load", dojo._loadInit, false);
+ }else if(window.attachEvent){
+ window.attachEvent("onload", dojo._loadInit);
+
+ //DOMContentLoaded approximation. Diego Perini found this MSDN article
+ //that indicates doScroll is available after DOM ready, so do a setTimeout
+ //to check when it is available.
+ //http://msdn.microsoft.com/en-us/library/ms531426.aspx
+ if(!dojo.config.skipIeDomLoaded && self === self.top){
+ dojo._scrollIntervalId = setInterval(function (){
+ try{
+ //When dojo is loaded into an iframe in an IE HTML Application
+ //(HTA), such as in a selenium test, javascript in the iframe
+ //can't see anything outside of it, so self===self.top is true,
+ //but the iframe is not the top window and doScroll will be
+ //available before document.body is set. Test document.body
+ //before trying the doScroll trick
+ if(document.body){
+ document.documentElement.doScroll("left");
+ dojo._loadInit();
+ }
+ }catch (e){}
+ }, 30);
+ }
+ }
+ }
+
+ if(dojo.isIE){
+ try{
+ (function(){
+ document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
+ var vmlElems = ["*", "group", "roundrect", "oval", "shape", "rect", "imagedata", "path", "textpath", "text"],
+ i = 0, l = 1, s = document.createStyleSheet();
+ if(dojo.isIE >= 8){
+ i = 1;
+ l = vmlElems.length;
+ }
+ for(; i < l; ++i){
+ s.addRule("v\\:" + vmlElems[i], "behavior:url(#default#VML); display:inline-block");
+ }
+ })();
+ }catch(e){}
+ }
+ //END DOMContentLoaded
+
+
+ /*
+ OpenAjax.subscribe("OpenAjax", "onload", function(){
+ if(dojo._inFlightCount == 0){
+ dojo._modulesLoaded();
+ }
+ });
+
+ OpenAjax.subscribe("OpenAjax", "onunload", function(){
+ dojo.unloaded();
+ });
+ */
+} //if (typeof window != 'undefined')
+
+//Register any module paths set up in djConfig. Need to do this
+//in the hostenvs since hostenv_browser can read djConfig from a
+//script tag's attribute.
+(function(){
+ var mp = dojo.config["modulePaths"];
+ if(mp){
+ for(var param in mp){
+ dojo.registerModulePath(param, mp[param]);
+ }
+ }
+})();
+
+//Load debug code if necessary.
+if(dojo.config.isDebug){
+ dojo.require("dojo._firebug.firebug");
+}
+
+if(dojo.config.debugAtAllCosts){
+ // this breaks the new AMD based module loader. The XDomain won't be necessary
+ // anyway if you switch to the asynchronous loader
+ //dojo.config.useXDomain = true;
+ //dojo.require("dojo._base._loader.loader_xd");
+ dojo.require("dojo._base._loader.loader_debug");
+ dojo.require("dojo.i18n");
+}
+
+
+if(!dojo._hasResource["dojo._base.lang"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.lang"] = true;
+dojo.provide("dojo._base.lang");
+
+
+(function(){
+ var d = dojo, opts = Object.prototype.toString;
+
+ // Crockford (ish) functions
+
+ dojo.isString = function(/*anything*/ it){
+ // summary:
+ // Return true if it is a String
+ return (typeof it == "string" || it instanceof String); // Boolean
+ };
+
+ dojo.isArray = function(/*anything*/ it){
+ // summary:
+ // Return true if it is an Array.
+ // Does not work on Arrays created in other windows.
+ return it && (it instanceof Array || typeof it == "array"); // Boolean
+ };
+
+ dojo.isFunction = function(/*anything*/ it){
+ // summary:
+ // Return true if it is a Function
+ return opts.call(it) === "[object Function]";
+ };
+
+ dojo.isObject = function(/*anything*/ it){
+ // summary:
+ // Returns true if it is a JavaScript object (or an Array, a Function
+ // or null)
+ return it !== undefined &&
+ (it === null || typeof it == "object" || d.isArray(it) || d.isFunction(it)); // Boolean
+ };
+
+ dojo.isArrayLike = function(/*anything*/ it){
+ // summary:
+ // similar to dojo.isArray() but more permissive
+ // description:
+ // Doesn't strongly test for "arrayness". Instead, settles for "isn't
+ // a string or number and has a length property". Arguments objects
+ // and DOM collections will return true when passed to
+ // dojo.isArrayLike(), but will return false when passed to
+ // dojo.isArray().
+ // returns:
+ // If it walks like a duck and quacks like a duck, return `true`
+ return it && it !== undefined && // Boolean
+ // keep out built-in constructors (Number, String, ...) which have length
+ // properties
+ !d.isString(it) && !d.isFunction(it) &&
+ !(it.tagName && it.tagName.toLowerCase() == 'form') &&
+ (d.isArray(it) || isFinite(it.length));
+ };
+
+ dojo.isAlien = function(/*anything*/ it){
+ // summary:
+ // Returns true if it is a built-in function or some other kind of
+ // oddball that *should* report as a function but doesn't
+ return it && !d.isFunction(it) && /\{\s*\[native code\]\s*\}/.test(String(it)); // Boolean
+ };
+
+ dojo.extend = function(/*Object*/ constructor, /*Object...*/ props){
+ // summary:
+ // Adds all properties and methods of props to constructor's
+ // prototype, making them available to all instances created with
+ // constructor.
+ for(var i=1, l=arguments.length; i<l; i++){
+ d._mixin(constructor.prototype, arguments[i]);
+ }
+ return constructor; // Object
+ };
+
+ dojo._hitchArgs = function(scope, method /*,...*/){
+ var pre = d._toArray(arguments, 2);
+ var named = d.isString(method);
+ return function(){
+ // arrayify arguments
+ var args = d._toArray(arguments);
+ // locate our method
+ var f = named ? (scope||d.global)[method] : method;
+ // invoke with collected args
+ return f && f.apply(scope || this, pre.concat(args)); // mixed
+ }; // Function
+ };
+
+ dojo.hitch = function(/*Object*/scope, /*Function|String*/method /*,...*/){
+ // summary:
+ // Returns a function that will only ever execute in the a given scope.
+ // This allows for easy use of object member functions
+ // in callbacks and other places in which the "this" keyword may
+ // otherwise not reference the expected scope.
+ // Any number of default positional arguments may be passed as parameters
+ // beyond "method".
+ // Each of these values will be used to "placehold" (similar to curry)
+ // for the hitched function.
+ // scope:
+ // The scope to use when method executes. If method is a string,
+ // scope is also the object containing method.
+ // method:
+ // A function to be hitched to scope, or the name of the method in
+ // scope to be hitched.
+ // example:
+ // | dojo.hitch(foo, "bar")();
+ // runs foo.bar() in the scope of foo
+ // example:
+ // | dojo.hitch(foo, myFunction);
+ // returns a function that runs myFunction in the scope of foo
+ // example:
+ // Expansion on the default positional arguments passed along from
+ // hitch. Passed args are mixed first, additional args after.
+ // | var foo = { bar: function(a, b, c){ console.log(a, b, c); } };
+ // | var fn = dojo.hitch(foo, "bar", 1, 2);
+ // | fn(3); // logs "1, 2, 3"
+ // example:
+ // | var foo = { bar: 2 };
+ // | dojo.hitch(foo, function(){ this.bar = 10; })();
+ // execute an anonymous function in scope of foo
+
+ if(arguments.length > 2){
+ return d._hitchArgs.apply(d, arguments); // Function
+ }
+ if(!method){
+ method = scope;
+ scope = null;
+ }
+ if(d.isString(method)){
+ scope = scope || d.global;
+ if(!scope[method]){ throw(['dojo.hitch: scope["', method, '"] is null (scope="', scope, '")'].join('')); }
+ return function(){ return scope[method].apply(scope, arguments || []); }; // Function
+ }
+ return !scope ? method : function(){ return method.apply(scope, arguments || []); }; // Function
+ };
+
+ /*=====
+ dojo.delegate = function(obj, props){
+ // summary:
+ // Returns a new object which "looks" to obj for properties which it
+ // does not have a value for. Optionally takes a bag of properties to
+ // seed the returned object with initially.
+ // description:
+ // This is a small implementaton of the Boodman/Crockford delegation
+ // pattern in JavaScript. An intermediate object constructor mediates
+ // the prototype chain for the returned object, using it to delegate
+ // down to obj for property lookup when object-local lookup fails.
+ // This can be thought of similarly to ES4's "wrap", save that it does
+ // not act on types but rather on pure objects.
+ // obj:
+ // The object to delegate to for properties not found directly on the
+ // return object or in props.
+ // props:
+ // an object containing properties to assign to the returned object
+ // returns:
+ // an Object of anonymous type
+ // example:
+ // | var foo = { bar: "baz" };
+ // | var thinger = dojo.delegate(foo, { thud: "xyzzy"});
+ // | thinger.bar == "baz"; // delegated to foo
+ // | foo.thud == undefined; // by definition
+ // | thinger.thud == "xyzzy"; // mixed in from props
+ // | foo.bar = "thonk";
+ // | thinger.bar == "thonk"; // still delegated to foo's bar
+ }
+ =====*/
+
+ dojo.delegate = dojo._delegate = (function(){
+ // boodman/crockford delegation w/ cornford optimization
+ function TMP(){}
+ return function(obj, props){
+ TMP.prototype = obj;
+ var tmp = new TMP();
+ TMP.prototype = null;
+ if(props){
+ d._mixin(tmp, props);
+ }
+ return tmp; // Object
+ };
+ })();
+
+ /*=====
+ dojo._toArray = function(obj, offset, startWith){
+ // summary:
+ // Converts an array-like object (i.e. arguments, DOMCollection) to an
+ // array. Returns a new Array with the elements of obj.
+ // obj: Object
+ // the object to "arrayify". We expect the object to have, at a
+ // minimum, a length property which corresponds to integer-indexed
+ // properties.
+ // offset: Number?
+ // the location in obj to start iterating from. Defaults to 0.
+ // Optional.
+ // startWith: Array?
+ // An array to pack with the properties of obj. If provided,
+ // properties in obj are appended at the end of startWith and
+ // startWith is the returned array.
+ }
+ =====*/
+
+ var efficient = function(obj, offset, startWith){
+ return (startWith||[]).concat(Array.prototype.slice.call(obj, offset||0));
+ };
+
+ var slow = function(obj, offset, startWith){
+ var arr = startWith||[];
+ for(var x = offset || 0; x < obj.length; x++){
+ arr.push(obj[x]);
+ }
+ return arr;
+ };
+
+ dojo._toArray =
+ d.isIE ? function(obj){
+ return ((obj.item) ? slow : efficient).apply(this, arguments);
+ } :
+ efficient;
+
+ dojo.partial = function(/*Function|String*/method /*, ...*/){
+ // summary:
+ // similar to hitch() except that the scope object is left to be
+ // whatever the execution context eventually becomes.
+ // description:
+ // Calling dojo.partial is the functional equivalent of calling:
+ // | dojo.hitch(null, funcName, ...);
+ var arr = [ null ];
+ return d.hitch.apply(d, arr.concat(d._toArray(arguments))); // Function
+ };
+
+ var extraNames = d._extraNames, extraLen = extraNames.length, empty = {};
+
+ dojo.clone = function(/*anything*/ o){
+ // summary:
+ // Clones objects (including DOM nodes) and all children.
+ // Warning: do not clone cyclic structures.
+ if(!o || typeof o != "object" || d.isFunction(o)){
+ // null, undefined, any non-object, or function
+ return o; // anything
+ }
+ if(o.nodeType && "cloneNode" in o){
+ // DOM Node
+ return o.cloneNode(true); // Node
+ }
+ if(o instanceof Date){
+ // Date
+ return new Date(o.getTime()); // Date
+ }
+ if(o instanceof RegExp){
+ // RegExp
+ return new RegExp(o); // RegExp
+ }
+ var r, i, l, s, name;
+ if(d.isArray(o)){
+ // array
+ r = [];
+ for(i = 0, l = o.length; i < l; ++i){
+ if(i in o){
+ r.push(d.clone(o[i]));
+ }
+ }
+// we don't clone functions for performance reasons
+// }else if(d.isFunction(o)){
+// // function
+// r = function(){ return o.apply(this, arguments); };
+ }else{
+ // generic objects
+ r = o.constructor ? new o.constructor() : {};
+ }
+ for(name in o){
+ // the "tobj" condition avoid copying properties in "source"
+ // inherited from Object.prototype. For example, if target has a custom
+ // toString() method, don't overwrite it with the toString() method
+ // that source inherited from Object.prototype
+ s = o[name];
+ if(!(name in r) || (r[name] !== s && (!(name in empty) || empty[name] !== s))){
+ r[name] = d.clone(s);
+ }
+ }
+ // IE doesn't recognize some custom functions in for..in
+ if(extraLen){
+ for(i = 0; i < extraLen; ++i){
+ name = extraNames[i];
+ s = o[name];
+ if(!(name in r) || (r[name] !== s && (!(name in empty) || empty[name] !== s))){
+ r[name] = s; // functions only, we don't clone them
+ }
+ }
+ }
+ return r; // Object
+ };
+
+ /*=====
+ dojo.trim = function(str){
+ // summary:
+ // Trims whitespace from both sides of the string
+ // str: String
+ // String to be trimmed
+ // returns: String
+ // Returns the trimmed string
+ // description:
+ // This version of trim() was selected for inclusion into the base due
+ // to its compact size and relatively good performance
+ // (see [Steven Levithan's blog](http://blog.stevenlevithan.com/archives/faster-trim-javascript)
+ // Uses String.prototype.trim instead, if available.
+ // The fastest but longest version of this function is located at
+ // dojo.string.trim()
+ return ""; // String
+ }
+ =====*/
+
+ dojo.trim = String.prototype.trim ?
+ function(str){ return str.trim(); } :
+ function(str){ return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); };
+
+ /*=====
+ dojo.replace = function(tmpl, map, pattern){
+ // summary:
+ // Performs parameterized substitutions on a string. Throws an
+ // exception if any parameter is unmatched.
+ // tmpl: String
+ // String to be used as a template.
+ // map: Object|Function
+ // If an object, it is used as a dictionary to look up substitutions.
+ // If a function, it is called for every substitution with following
+ // parameters: a whole match, a name, an offset, and the whole template
+ // string (see https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/replace
+ // for more details).
+ // pattern: RegEx?
+ // Optional regular expression objects that overrides the default pattern.
+ // Must be global and match one item. The default is: /\{([^\}]+)\}/g,
+ // which matches patterns like that: "{xxx}", where "xxx" is any sequence
+ // of characters, which doesn't include "}".
+ // returns: String
+ // Returns the substituted string.
+ // example:
+ // | // uses a dictionary for substitutions:
+ // | dojo.replace("Hello, {name.first} {name.last} AKA {nick}!",
+ // | {
+ // | nick: "Bob",
+ // | name: {
+ // | first: "Robert",
+ // | middle: "X",
+ // | last: "Cringely"
+ // | }
+ // | });
+ // | // returns: Hello, Robert Cringely AKA Bob!
+ // example:
+ // | // uses an array for substitutions:
+ // | dojo.replace("Hello, {0} {2}!",
+ // | ["Robert", "X", "Cringely"]);
+ // | // returns: Hello, Robert Cringely!
+ // example:
+ // | // uses a function for substitutions:
+ // | function sum(a){
+ // | var t = 0;
+ // | dojo.forEach(a, function(x){ t += x; });
+ // | return t;
+ // | }
+ // | dojo.replace(
+ // | "{count} payments averaging {avg} USD per payment.",
+ // | dojo.hitch(
+ // | { payments: [11, 16, 12] },
+ // | function(_, key){
+ // | switch(key){
+ // | case "count": return this.payments.length;
+ // | case "min": return Math.min.apply(Math, this.payments);
+ // | case "max": return Math.max.apply(Math, this.payments);
+ // | case "sum": return sum(this.payments);
+ // | case "avg": return sum(this.payments) / this.payments.length;
+ // | }
+ // | }
+ // | )
+ // | );
+ // | // prints: 3 payments averaging 13 USD per payment.
+ // example:
+ // | // uses an alternative PHP-like pattern for substitutions:
+ // | dojo.replace("Hello, ${0} ${2}!",
+ // | ["Robert", "X", "Cringely"], /\$\{([^\}]+)\}/g);
+ // | // returns: Hello, Robert Cringely!
+ return ""; // String
+ }
+ =====*/
+
+ var _pattern = /\{([^\}]+)\}/g;
+ dojo.replace = function(tmpl, map, pattern){
+ return tmpl.replace(pattern || _pattern, d.isFunction(map) ?
+ map : function(_, k){ return d.getObject(k, false, map); });
+ };
+})();
+
+}
+
+if(!dojo._hasResource["dojo._base.array"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.array"] = true;
+dojo.provide("dojo._base.array");
+
+
+
+(function(){
+ var _getParts = function(arr, obj, cb){
+ return [
+ (typeof arr == "string") ? arr.split("") : arr,
+ obj || dojo.global,
+ // FIXME: cache the anonymous functions we create here?
+ (typeof cb == "string") ? new Function("item", "index", "array", cb) : cb
+ ];
+ };
+
+ var everyOrSome = function(/*Boolean*/every, /*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){
+ var _p = _getParts(arr, thisObject, callback); arr = _p[0];
+ for(var i=0,l=arr.length; i<l; ++i){
+ var result = !!_p[2].call(_p[1], arr[i], i, arr);
+ if(every ^ result){
+ return result; // Boolean
+ }
+ }
+ return every; // Boolean
+ };
+
+ dojo.mixin(dojo, {
+ indexOf: function( /*Array*/ array,
+ /*Object*/ value,
+ /*Integer?*/ fromIndex,
+ /*Boolean?*/ findLast){
+ // summary:
+ // locates the first index of the provided value in the
+ // passed array. If the value is not found, -1 is returned.
+ // description:
+ // This method corresponds to the JavaScript 1.6 Array.indexOf method, with one difference: when
+ // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript
+ // 1.6's indexOf skips the holes in the sparse array.
+ // For details on this method, see:
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/indexOf
+
+ var step = 1, end = array.length || 0, i = 0;
+ if(findLast){
+ i = end - 1;
+ step = end = -1;
+ }
+ if(fromIndex != undefined){ i = fromIndex; }
+ if((findLast && i > end) || i < end){
+ for(; i != end; i += step){
+ if(array[i] == value){ return i; }
+ }
+ }
+ return -1; // Number
+ },
+
+ lastIndexOf: function(/*Array*/array, /*Object*/value, /*Integer?*/fromIndex){
+ // summary:
+ // locates the last index of the provided value in the passed
+ // array. If the value is not found, -1 is returned.
+ // description:
+ // This method corresponds to the JavaScript 1.6 Array.lastIndexOf method, with one difference: when
+ // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript
+ // 1.6's lastIndexOf skips the holes in the sparse array.
+ // For details on this method, see:
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/lastIndexOf
+ return dojo.indexOf(array, value, fromIndex, true); // Number
+ },
+
+ forEach: function(/*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){
+ // summary:
+ // for every item in arr, callback is invoked. Return values are ignored.
+ // If you want to break out of the loop, consider using dojo.every() or dojo.some().
+ // forEach does not allow breaking out of the loop over the items in arr.
+ // arr:
+ // the array to iterate over. If a string, operates on individual characters.
+ // callback:
+ // a function is invoked with three arguments: item, index, and array
+ // thisObject:
+ // may be used to scope the call to callback
+ // description:
+ // This function corresponds to the JavaScript 1.6 Array.forEach() method, with one difference: when
+ // run over sparse arrays, this implemenation passes the "holes" in the sparse array to
+ // the callback function with a value of undefined. JavaScript 1.6's forEach skips the holes in the sparse array.
+ // For more details, see:
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/forEach
+ // example:
+ // | // log out all members of the array:
+ // | dojo.forEach(
+ // | [ "thinger", "blah", "howdy", 10 ],
+ // | function(item){
+ // | console.log(item);
+ // | }
+ // | );
+ // example:
+ // | // log out the members and their indexes
+ // | dojo.forEach(
+ // | [ "thinger", "blah", "howdy", 10 ],
+ // | function(item, idx, arr){
+ // | console.log(item, "at index:", idx);
+ // | }
+ // | );
+ // example:
+ // | // use a scoped object member as the callback
+ // |
+ // | var obj = {
+ // | prefix: "logged via obj.callback:",
+ // | callback: function(item){
+ // | console.log(this.prefix, item);
+ // | }
+ // | };
+ // |
+ // | // specifying the scope function executes the callback in that scope
+ // | dojo.forEach(
+ // | [ "thinger", "blah", "howdy", 10 ],
+ // | obj.callback,
+ // | obj
+ // | );
+ // |
+ // | // alternately, we can accomplish the same thing with dojo.hitch()
+ // | dojo.forEach(
+ // | [ "thinger", "blah", "howdy", 10 ],
+ // | dojo.hitch(obj, "callback")
+ // | );
+
+ // match the behavior of the built-in forEach WRT empty arrs
+ if(!arr || !arr.length){ return; }
+
+ // FIXME: there are several ways of handilng thisObject. Is
+ // dojo.global always the default context?
+ var _p = _getParts(arr, thisObject, callback); arr = _p[0];
+ for(var i=0,l=arr.length; i<l; ++i){
+ _p[2].call(_p[1], arr[i], i, arr);
+ }
+ },
+
+ every: function(/*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){
+ // summary:
+ // Determines whether or not every item in arr satisfies the
+ // condition implemented by callback.
+ // arr:
+ // the array to iterate on. If a string, operates on individual characters.
+ // callback:
+ // a function is invoked with three arguments: item, index,
+ // and array and returns true if the condition is met.
+ // thisObject:
+ // may be used to scope the call to callback
+ // description:
+ // This function corresponds to the JavaScript 1.6 Array.every() method, with one difference: when
+ // run over sparse arrays, this implemenation passes the "holes" in the sparse array to
+ // the callback function with a value of undefined. JavaScript 1.6's every skips the holes in the sparse array.
+ // For more details, see:
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/every
+ // example:
+ // | // returns false
+ // | dojo.every([1, 2, 3, 4], function(item){ return item>1; });
+ // example:
+ // | // returns true
+ // | dojo.every([1, 2, 3, 4], function(item){ return item>0; });
+ return everyOrSome(true, arr, callback, thisObject); // Boolean
+ },
+
+ some: function(/*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){
+ // summary:
+ // Determines whether or not any item in arr satisfies the
+ // condition implemented by callback.
+ // arr:
+ // the array to iterate over. If a string, operates on individual characters.
+ // callback:
+ // a function is invoked with three arguments: item, index,
+ // and array and returns true if the condition is met.
+ // thisObject:
+ // may be used to scope the call to callback
+ // description:
+ // This function corresponds to the JavaScript 1.6 Array.some() method, with one difference: when
+ // run over sparse arrays, this implemenation passes the "holes" in the sparse array to
+ // the callback function with a value of undefined. JavaScript 1.6's some skips the holes in the sparse array.
+ // For more details, see:
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/some
+ // example:
+ // | // is true
+ // | dojo.some([1, 2, 3, 4], function(item){ return item>1; });
+ // example:
+ // | // is false
+ // | dojo.some([1, 2, 3, 4], function(item){ return item<1; });
+ return everyOrSome(false, arr, callback, thisObject); // Boolean
+ },
+
+ map: function(/*Array|String*/arr, /*Function|String*/callback, /*Function?*/thisObject){
+ // summary:
+ // applies callback to each element of arr and returns
+ // an Array with the results
+ // arr:
+ // the array to iterate on. If a string, operates on
+ // individual characters.
+ // callback:
+ // a function is invoked with three arguments, (item, index,
+ // array), and returns a value
+ // thisObject:
+ // may be used to scope the call to callback
+ // description:
+ // This function corresponds to the JavaScript 1.6 Array.map() method, with one difference: when
+ // run over sparse arrays, this implemenation passes the "holes" in the sparse array to
+ // the callback function with a value of undefined. JavaScript 1.6's map skips the holes in the sparse array.
+ // For more details, see:
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map
+ // example:
+ // | // returns [2, 3, 4, 5]
+ // | dojo.map([1, 2, 3, 4], function(item){ return item+1 });
+
+ var _p = _getParts(arr, thisObject, callback); arr = _p[0];
+ var outArr = (arguments[3] ? (new arguments[3]()) : []);
+ for(var i=0,l=arr.length; i<l; ++i){
+ outArr.push(_p[2].call(_p[1], arr[i], i, arr));
+ }
+ return outArr; // Array
+ },
+
+ filter: function(/*Array*/arr, /*Function|String*/callback, /*Object?*/thisObject){
+ // summary:
+ // Returns a new Array with those items from arr that match the
+ // condition implemented by callback.
+ // arr:
+ // the array to iterate over.
+ // callback:
+ // a function that is invoked with three arguments (item,
+ // index, array). The return of this function is expected to
+ // be a boolean which determines whether the passed-in item
+ // will be included in the returned array.
+ // thisObject:
+ // may be used to scope the call to callback
+ // description:
+ // This function corresponds to the JavaScript 1.6 Array.filter() method, with one difference: when
+ // run over sparse arrays, this implemenation passes the "holes" in the sparse array to
+ // the callback function with a value of undefined. JavaScript 1.6's filter skips the holes in the sparse array.
+ // For more details, see:
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter
+ // example:
+ // | // returns [2, 3, 4]
+ // | dojo.filter([1, 2, 3, 4], function(item){ return item>1; });
+
+ var _p = _getParts(arr, thisObject, callback); arr = _p[0];
+ var outArr = [];
+ for(var i=0,l=arr.length; i<l; ++i){
+ if(_p[2].call(_p[1], arr[i], i, arr)){
+ outArr.push(arr[i]);
+ }
+ }
+ return outArr; // Array
+ }
+ });
+})();
+/*
+*/
+
+}
+
+if(!dojo._hasResource["dojo._base.declare"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.declare"] = true;
+dojo.provide("dojo._base.declare");
+
+
+
+
+(function(){
+ var d = dojo, mix = d._mixin, op = Object.prototype, opts = op.toString,
+ xtor = new Function, counter = 0, cname = "constructor";
+
+ function err(msg, cls){ throw new Error("declare" + (cls ? " " + cls : "") + ": " + msg); }
+
+ // C3 Method Resolution Order (see http://www.python.org/download/releases/2.3/mro/)
+ function c3mro(bases, className){
+ var result = [], roots = [{cls: 0, refs: []}], nameMap = {}, clsCount = 1,
+ l = bases.length, i = 0, j, lin, base, top, proto, rec, name, refs;
+
+ // build a list of bases naming them if needed
+ for(; i < l; ++i){
+ base = bases[i];
+ if(!base){
+ err("mixin #" + i + " is unknown. Did you use dojo.require to pull it in?", className);
+ }else if(opts.call(base) != "[object Function]"){
+ err("mixin #" + i + " is not a callable constructor.", className);
+ }
+ lin = base._meta ? base._meta.bases : [base];
+ top = 0;
+ // add bases to the name map
+ for(j = lin.length - 1; j >= 0; --j){
+ proto = lin[j].prototype;
+ if(!proto.hasOwnProperty("declaredClass")){
+ proto.declaredClass = "uniqName_" + (counter++);
+ }
+ name = proto.declaredClass;
+ if(!nameMap.hasOwnProperty(name)){
+ nameMap[name] = {count: 0, refs: [], cls: lin[j]};
+ ++clsCount;
+ }
+ rec = nameMap[name];
+ if(top && top !== rec){
+ rec.refs.push(top);
+ ++top.count;
+ }
+ top = rec;
+ }
+ ++top.count;
+ roots[0].refs.push(top);
+ }
+
+ // remove classes without external references recursively
+ while(roots.length){
+ top = roots.pop();
+ result.push(top.cls);
+ --clsCount;
+ // optimization: follow a single-linked chain
+ while(refs = top.refs, refs.length == 1){
+ top = refs[0];
+ if(!top || --top.count){
+ // branch or end of chain => do not end to roots
+ top = 0;
+ break;
+ }
+ result.push(top.cls);
+ --clsCount;
+ }
+ if(top){
+ // branch
+ for(i = 0, l = refs.length; i < l; ++i){
+ top = refs[i];
+ if(!--top.count){
+ roots.push(top);
+ }
+ }
+ }
+ }
+ if(clsCount){
+ err("can't build consistent linearization", className);
+ }
+
+ // calculate the superclass offset
+ base = bases[0];
+ result[0] = base ?
+ base._meta && base === result[result.length - base._meta.bases.length] ?
+ base._meta.bases.length : 1 : 0;
+
+ return result;
+ }
+
+ function inherited(args, a, f){
+ var name, chains, bases, caller, meta, base, proto, opf, pos,
+ cache = this._inherited = this._inherited || {};
+
+ // crack arguments
+ if(typeof args == "string"){
+ name = args;
+ args = a;
+ a = f;
+ }
+ f = 0;
+
+ caller = args.callee;
+ name = name || caller.nom;
+ if(!name){
+ err("can't deduce a name to call inherited()", this.declaredClass);
+ }
+
+ meta = this.constructor._meta;
+ bases = meta.bases;
+
+ pos = cache.p;
+ if(name != cname){
+ // method
+ if(cache.c !== caller){
+ // cache bust
+ pos = 0;
+ base = bases[0];
+ meta = base._meta;
+ if(meta.hidden[name] !== caller){
+ // error detection
+ chains = meta.chains;
+ if(chains && typeof chains[name] == "string"){
+ err("calling chained method with inherited: " + name, this.declaredClass);
+ }
+ // find caller
+ do{
+ meta = base._meta;
+ proto = base.prototype;
+ if(meta && (proto[name] === caller && proto.hasOwnProperty(name) || meta.hidden[name] === caller)){
+ break;
+ }
+ }while(base = bases[++pos]); // intentional assignment
+ pos = base ? pos : -1;
+ }
+ }
+ // find next
+ base = bases[++pos];
+ if(base){
+ proto = base.prototype;
+ if(base._meta && proto.hasOwnProperty(name)){
+ f = proto[name];
+ }else{
+ opf = op[name];
+ do{
+ proto = base.prototype;
+ f = proto[name];
+ if(f && (base._meta ? proto.hasOwnProperty(name) : f !== opf)){
+ break;
+ }
+ }while(base = bases[++pos]); // intentional assignment
+ }
+ }
+ f = base && f || op[name];
+ }else{
+ // constructor
+ if(cache.c !== caller){
+ // cache bust
+ pos = 0;
+ meta = bases[0]._meta;
+ if(meta && meta.ctor !== caller){
+ // error detection
+ chains = meta.chains;
+ if(!chains || chains.constructor !== "manual"){
+ err("calling chained constructor with inherited", this.declaredClass);
+ }
+ // find caller
+ while(base = bases[++pos]){ // intentional assignment
+ meta = base._meta;
+ if(meta && meta.ctor === caller){
+ break;
+ }
+ }
+ pos = base ? pos : -1;
+ }
+ }
+ // find next
+ while(base = bases[++pos]){ // intentional assignment
+ meta = base._meta;
+ f = meta ? meta.ctor : base;
+ if(f){
+ break;
+ }
+ }
+ f = base && f;
+ }
+
+ // cache the found super method
+ cache.c = f;
+ cache.p = pos;
+
+ // now we have the result
+ if(f){
+ return a === true ? f : f.apply(this, a || args);
+ }
+ // intentionally if a super method was not found
+ }
+
+ function getInherited(name, args){
+ if(typeof name == "string"){
+ return this.inherited(name, args, true);
+ }
+ return this.inherited(name, true);
+ }
+
+ // emulation of "instanceof"
+ function isInstanceOf(cls){
+ var bases = this.constructor._meta.bases;
+ for(var i = 0, l = bases.length; i < l; ++i){
+ if(bases[i] === cls){
+ return true;
+ }
+ }
+ return this instanceof cls;
+ }
+
+ function mixOwn(target, source){
+ var name, i = 0, l = d._extraNames.length;
+ // add props adding metadata for incoming functions skipping a constructor
+ for(name in source){
+ if(name != cname && source.hasOwnProperty(name)){
+ target[name] = source[name];
+ }
+ }
+ // process unenumerable methods on IE
+ for(; i < l; ++i){
+ name = d._extraNames[i];
+ if(name != cname && source.hasOwnProperty(name)){
+ target[name] = source[name];
+ }
+ }
+ }
+
+ // implementation of safe mixin function
+ function safeMixin(target, source){
+ var name, t, i = 0, l = d._extraNames.length;
+ // add props adding metadata for incoming functions skipping a constructor
+ for(name in source){
+ t = source[name];
+ if((t !== op[name] || !(name in op)) && name != cname){
+ if(opts.call(t) == "[object Function]"){
+ // non-trivial function method => attach its name
+ t.nom = name;
+ }
+ target[name] = t;
+ }
+ }
+ // process unenumerable methods on IE
+ for(; i < l; ++i){
+ name = d._extraNames[i];
+ t = source[name];
+ if((t !== op[name] || !(name in op)) && name != cname){
+ if(opts.call(t) == "[object Function]"){
+ // non-trivial function method => attach its name
+ t.nom = name;
+ }
+ target[name] = t;
+ }
+ }
+ return target;
+ }
+
+ function extend(source){
+ safeMixin(this.prototype, source);
+ return this;
+ }
+
+ // chained constructor compatible with the legacy dojo.declare()
+ function chainedConstructor(bases, ctorSpecial){
+ return function(){
+ var a = arguments, args = a, a0 = a[0], f, i, m,
+ l = bases.length, preArgs;
+
+ if(!(this instanceof a.callee)){
+ // not called via new, so force it
+ return applyNew(a);
+ }
+
+ //this._inherited = {};
+ // perform the shaman's rituals of the original dojo.declare()
+ // 1) call two types of the preamble
+ if(ctorSpecial && (a0 && a0.preamble || this.preamble)){
+ // full blown ritual
+ preArgs = new Array(bases.length);
+ // prepare parameters
+ preArgs[0] = a;
+ for(i = 0;;){
+ // process the preamble of the 1st argument
+ a0 = a[0];
+ if(a0){
+ f = a0.preamble;
+ if(f){
+ a = f.apply(this, a) || a;
+ }
+ }
+ // process the preamble of this class
+ f = bases[i].prototype;
+ f = f.hasOwnProperty("preamble") && f.preamble;
+ if(f){
+ a = f.apply(this, a) || a;
+ }
+ // one peculiarity of the preamble:
+ // it is called if it is not needed,
+ // e.g., there is no constructor to call
+ // let's watch for the last constructor
+ // (see ticket #9795)
+ if(++i == l){
+ break;
+ }
+ preArgs[i] = a;
+ }
+ }
+ // 2) call all non-trivial constructors using prepared arguments
+ for(i = l - 1; i >= 0; --i){
+ f = bases[i];
+ m = f._meta;
+ f = m ? m.ctor : f;
+ if(f){
+ f.apply(this, preArgs ? preArgs[i] : a);
+ }
+ }
+ // 3) continue the original ritual: call the postscript
+ f = this.postscript;
+ if(f){
+ f.apply(this, args);
+ }
+ };
+ }
+
+
+ // chained constructor compatible with the legacy dojo.declare()
+ function singleConstructor(ctor, ctorSpecial){
+ return function(){
+ var a = arguments, t = a, a0 = a[0], f;
+
+ if(!(this instanceof a.callee)){
+ // not called via new, so force it
+ return applyNew(a);
+ }
+
+ //this._inherited = {};
+ // perform the shaman's rituals of the original dojo.declare()
+ // 1) call two types of the preamble
+ if(ctorSpecial){
+ // full blown ritual
+ if(a0){
+ // process the preamble of the 1st argument
+ f = a0.preamble;
+ if(f){
+ t = f.apply(this, t) || t;
+ }
+ }
+ f = this.preamble;
+ if(f){
+ // process the preamble of this class
+ f.apply(this, t);
+ // one peculiarity of the preamble:
+ // it is called even if it is not needed,
+ // e.g., there is no constructor to call
+ // let's watch for the last constructor
+ // (see ticket #9795)
+ }
+ }
+ // 2) call a constructor
+ if(ctor){
+ ctor.apply(this, a);
+ }
+ // 3) continue the original ritual: call the postscript
+ f = this.postscript;
+ if(f){
+ f.apply(this, a);
+ }
+ };
+ }
+
+ // plain vanilla constructor (can use inherited() to call its base constructor)
+ function simpleConstructor(bases){
+ return function(){
+ var a = arguments, i = 0, f, m;
+
+ if(!(this instanceof a.callee)){
+ // not called via new, so force it
+ return applyNew(a);
+ }
+
+ //this._inherited = {};
+ // perform the shaman's rituals of the original dojo.declare()
+ // 1) do not call the preamble
+ // 2) call the top constructor (it can use this.inherited())
+ for(; f = bases[i]; ++i){ // intentional assignment
+ m = f._meta;
+ f = m ? m.ctor : f;
+ if(f){
+ f.apply(this, a);
+ break;
+ }
+ }
+ // 3) call the postscript
+ f = this.postscript;
+ if(f){
+ f.apply(this, a);
+ }
+ };
+ }
+
+ function chain(name, bases, reversed){
+ return function(){
+ var b, m, f, i = 0, step = 1;
+ if(reversed){
+ i = bases.length - 1;
+ step = -1;
+ }
+ for(; b = bases[i]; i += step){ // intentional assignment
+ m = b._meta;
+ f = (m ? m.hidden : b.prototype)[name];
+ if(f){
+ f.apply(this, arguments);
+ }
+ }
+ };
+ }
+
+ // forceNew(ctor)
+ // return a new object that inherits from ctor.prototype but
+ // without actually running ctor on the object.
+ function forceNew(ctor){
+ // create object with correct prototype using a do-nothing
+ // constructor
+ xtor.prototype = ctor.prototype;
+ var t = new xtor;
+ xtor.prototype = null; // clean up
+ return t;
+ }
+
+ // applyNew(args)
+ // just like 'new ctor()' except that the constructor and its arguments come
+ // from args, which must be an array or an arguments object
+ function applyNew(args){
+ // create an object with ctor's prototype but without
+ // calling ctor on it.
+ var ctor = args.callee, t = forceNew(ctor);
+ // execute the real constructor on the new object
+ ctor.apply(t, args);
+ return t;
+ }
+
+ d.declare = function(className, superclass, props){
+ // crack parameters
+ if(typeof className != "string"){
+ props = superclass;
+ superclass = className;
+ className = "";
+ }
+ props = props || {};
+
+ var proto, i, t, ctor, name, bases, chains, mixins = 1, parents = superclass;
+
+ // build a prototype
+ if(opts.call(superclass) == "[object Array]"){
+ // C3 MRO
+ bases = c3mro(superclass, className);
+ t = bases[0];
+ mixins = bases.length - t;
+ superclass = bases[mixins];
+ }else{
+ bases = [0];
+ if(superclass){
+ if(opts.call(superclass) == "[object Function]"){
+ t = superclass._meta;
+ bases = bases.concat(t ? t.bases : superclass);
+ }else{
+ err("base class is not a callable constructor.", className);
+ }
+ }else if(superclass !== null){
+ err("unknown base class. Did you use dojo.require to pull it in?", className);
+ }
+ }
+ if(superclass){
+ for(i = mixins - 1;; --i){
+ proto = forceNew(superclass);
+ if(!i){
+ // stop if nothing to add (the last base)
+ break;
+ }
+ // mix in properties
+ t = bases[i];
+ (t._meta ? mixOwn : mix)(proto, t.prototype);
+ // chain in new constructor
+ ctor = new Function;
+ ctor.superclass = superclass;
+ ctor.prototype = proto;
+ superclass = proto.constructor = ctor;
+ }
+ }else{
+ proto = {};
+ }
+ // add all properties
+ safeMixin(proto, props);
+ // add constructor
+ t = props.constructor;
+ if(t !== op.constructor){
+ t.nom = cname;
+ proto.constructor = t;
+ }
+
+ // collect chains and flags
+ for(i = mixins - 1; i; --i){ // intentional assignment
+ t = bases[i]._meta;
+ if(t && t.chains){
+ chains = mix(chains || {}, t.chains);
+ }
+ }
+ if(proto["-chains-"]){
+ chains = mix(chains || {}, proto["-chains-"]);
+ }
+
+ // build ctor
+ t = !chains || !chains.hasOwnProperty(cname);
+ bases[0] = ctor = (chains && chains.constructor === "manual") ? simpleConstructor(bases) :
+ (bases.length == 1 ? singleConstructor(props.constructor, t) : chainedConstructor(bases, t));
+
+ // add meta information to the constructor
+ ctor._meta = {bases: bases, hidden: props, chains: chains,
+ parents: parents, ctor: props.constructor};
+ ctor.superclass = superclass && superclass.prototype;
+ ctor.extend = extend;
+ ctor.prototype = proto;
+ proto.constructor = ctor;
+
+ // add "standard" methods to the prototype
+ proto.getInherited = getInherited;
+ proto.inherited = inherited;
+ proto.isInstanceOf = isInstanceOf;
+
+ // add name if specified
+ if(className){
+ proto.declaredClass = className;
+ d.setObject(className, ctor);
+ }
+
+ // build chains and add them to the prototype
+ if(chains){
+ for(name in chains){
+ if(proto[name] && typeof chains[name] == "string" && name != cname){
+ t = proto[name] = chain(name, bases, chains[name] === "after");
+ t.nom = name;
+ }
+ }
+ }
+ // chained methods do not return values
+ // no need to chain "invisible" functions
+
+ return ctor; // Function
+ };
+
+ d.safeMixin = safeMixin;
+
+ /*=====
+ dojo.declare = function(className, superclass, props){
+ // summary:
+ // Create a feature-rich constructor from compact notation.
+ // className: String?:
+ // The optional name of the constructor (loosely, a "class")
+ // stored in the "declaredClass" property in the created prototype.
+ // It will be used as a global name for a created constructor.
+ // superclass: Function|Function[]:
+ // May be null, a Function, or an Array of Functions. This argument
+ // specifies a list of bases (the left-most one is the most deepest
+ // base).
+ // props: Object:
+ // An object whose properties are copied to the created prototype.
+ // Add an instance-initialization function by making it a property
+ // named "constructor".
+ // returns:
+ // New constructor function.
+ // description:
+ // Create a constructor using a compact notation for inheritance and
+ // prototype extension.
+ //
+ // Mixin ancestors provide a type of multiple inheritance.
+ // Prototypes of mixin ancestors are copied to the new class:
+ // changes to mixin prototypes will not affect classes to which
+ // they have been mixed in.
+ //
+ // Ancestors can be compound classes created by this version of
+ // dojo.declare. In complex cases all base classes are going to be
+ // linearized according to C3 MRO algorithm
+ // (see http://www.python.org/download/releases/2.3/mro/ for more
+ // details).
+ //
+ // "className" is cached in "declaredClass" property of the new class,
+ // if it was supplied. The immediate super class will be cached in
+ // "superclass" property of the new class.
+ //
+ // Methods in "props" will be copied and modified: "nom" property
+ // (the declared name of the method) will be added to all copied
+ // functions to help identify them for the internal machinery. Be
+ // very careful, while reusing methods: if you use the same
+ // function under different names, it can produce errors in some
+ // cases.
+ //
+ // It is possible to use constructors created "manually" (without
+ // dojo.declare) as bases. They will be called as usual during the
+ // creation of an instance, their methods will be chained, and even
+ // called by "this.inherited()".
+ //
+ // Special property "-chains-" governs how to chain methods. It is
+ // a dictionary, which uses method names as keys, and hint strings
+ // as values. If a hint string is "after", this method will be
+ // called after methods of its base classes. If a hint string is
+ // "before", this method will be called before methods of its base
+ // classes.
+ //
+ // If "constructor" is not mentioned in "-chains-" property, it will
+ // be chained using the legacy mode: using "after" chaining,
+ // calling preamble() method before each constructor, if available,
+ // and calling postscript() after all constructors were executed.
+ // If the hint is "after", it is chained as a regular method, but
+ // postscript() will be called after the chain of constructors.
+ // "constructor" cannot be chained "before", but it allows
+ // a special hint string: "manual", which means that constructors
+ // are not going to be chained in any way, and programmer will call
+ // them manually using this.inherited(). In the latter case
+ // postscript() will be called after the construction.
+ //
+ // All chaining hints are "inherited" from base classes and
+ // potentially can be overridden. Be very careful when overriding
+ // hints! Make sure that all chained methods can work in a proposed
+ // manner of chaining.
+ //
+ // Once a method was chained, it is impossible to unchain it. The
+ // only exception is "constructor". You don't need to define a
+ // method in order to supply a chaining hint.
+ //
+ // If a method is chained, it cannot use this.inherited() because
+ // all other methods in the hierarchy will be called automatically.
+ //
+ // Usually constructors and initializers of any kind are chained
+ // using "after" and destructors of any kind are chained as
+ // "before". Note that chaining assumes that chained methods do not
+ // return any value: any returned value will be discarded.
+ //
+ // example:
+ // | dojo.declare("my.classes.bar", my.classes.foo, {
+ // | // properties to be added to the class prototype
+ // | someValue: 2,
+ // | // initialization function
+ // | constructor: function(){
+ // | this.myComplicatedObject = new ReallyComplicatedObject();
+ // | },
+ // | // other functions
+ // | someMethod: function(){
+ // | doStuff();
+ // | }
+ // | });
+ //
+ // example:
+ // | var MyBase = dojo.declare(null, {
+ // | // constructor, properties, and methods go here
+ // | // ...
+ // | });
+ // | var MyClass1 = dojo.declare(MyBase, {
+ // | // constructor, properties, and methods go here
+ // | // ...
+ // | });
+ // | var MyClass2 = dojo.declare(MyBase, {
+ // | // constructor, properties, and methods go here
+ // | // ...
+ // | });
+ // | var MyDiamond = dojo.declare([MyClass1, MyClass2], {
+ // | // constructor, properties, and methods go here
+ // | // ...
+ // | });
+ //
+ // example:
+ // | var F = function(){ console.log("raw constructor"); };
+ // | F.prototype.method = function(){
+ // | console.log("raw method");
+ // | };
+ // | var A = dojo.declare(F, {
+ // | constructor: function(){
+ // | console.log("A.constructor");
+ // | },
+ // | method: function(){
+ // | console.log("before calling F.method...");
+ // | this.inherited(arguments);
+ // | console.log("...back in A");
+ // | }
+ // | });
+ // | new A().method();
+ // | // will print:
+ // | // raw constructor
+ // | // A.constructor
+ // | // before calling F.method...
+ // | // raw method
+ // | // ...back in A
+ //
+ // example:
+ // | var A = dojo.declare(null, {
+ // | "-chains-": {
+ // | destroy: "before"
+ // | }
+ // | });
+ // | var B = dojo.declare(A, {
+ // | constructor: function(){
+ // | console.log("B.constructor");
+ // | },
+ // | destroy: function(){
+ // | console.log("B.destroy");
+ // | }
+ // | });
+ // | var C = dojo.declare(B, {
+ // | constructor: function(){
+ // | console.log("C.constructor");
+ // | },
+ // | destroy: function(){
+ // | console.log("C.destroy");
+ // | }
+ // | });
+ // | new C().destroy();
+ // | // prints:
+ // | // B.constructor
+ // | // C.constructor
+ // | // C.destroy
+ // | // B.destroy
+ //
+ // example:
+ // | var A = dojo.declare(null, {
+ // | "-chains-": {
+ // | constructor: "manual"
+ // | }
+ // | });
+ // | var B = dojo.declare(A, {
+ // | constructor: function(){
+ // | // ...
+ // | // call the base constructor with new parameters
+ // | this.inherited(arguments, [1, 2, 3]);
+ // | // ...
+ // | }
+ // | });
+ //
+ // example:
+ // | var A = dojo.declare(null, {
+ // | "-chains-": {
+ // | m1: "before"
+ // | },
+ // | m1: function(){
+ // | console.log("A.m1");
+ // | },
+ // | m2: function(){
+ // | console.log("A.m2");
+ // | }
+ // | });
+ // | var B = dojo.declare(A, {
+ // | "-chains-": {
+ // | m2: "after"
+ // | },
+ // | m1: function(){
+ // | console.log("B.m1");
+ // | },
+ // | m2: function(){
+ // | console.log("B.m2");
+ // | }
+ // | });
+ // | var x = new B();
+ // | x.m1();
+ // | // prints:
+ // | // B.m1
+ // | // A.m1
+ // | x.m2();
+ // | // prints:
+ // | // A.m2
+ // | // B.m2
+ return new Function(); // Function
+ };
+ =====*/
+
+ /*=====
+ dojo.safeMixin = function(target, source){
+ // summary:
+ // Mix in properties skipping a constructor and decorating functions
+ // like it is done by dojo.declare.
+ // target: Object
+ // Target object to accept new properties.
+ // source: Object
+ // Source object for new properties.
+ // description:
+ // This function is used to mix in properties like dojo._mixin does,
+ // but it skips a constructor property and decorates functions like
+ // dojo.declare does.
+ //
+ // It is meant to be used with classes and objects produced with
+ // dojo.declare. Functions mixed in with dojo.safeMixin can use
+ // this.inherited() like normal methods.
+ //
+ // This function is used to implement extend() method of a constructor
+ // produced with dojo.declare().
+ //
+ // example:
+ // | var A = dojo.declare(null, {
+ // | m1: function(){
+ // | console.log("A.m1");
+ // | },
+ // | m2: function(){
+ // | console.log("A.m2");
+ // | }
+ // | });
+ // | var B = dojo.declare(A, {
+ // | m1: function(){
+ // | this.inherited(arguments);
+ // | console.log("B.m1");
+ // | }
+ // | });
+ // | B.extend({
+ // | m2: function(){
+ // | this.inherited(arguments);
+ // | console.log("B.m2");
+ // | }
+ // | });
+ // | var x = new B();
+ // | dojo.safeMixin(x, {
+ // | m1: function(){
+ // | this.inherited(arguments);
+ // | console.log("X.m1");
+ // | },
+ // | m2: function(){
+ // | this.inherited(arguments);
+ // | console.log("X.m2");
+ // | }
+ // | });
+ // | x.m2();
+ // | // prints:
+ // | // A.m1
+ // | // B.m1
+ // | // X.m1
+ };
+ =====*/
+
+ /*=====
+ Object.inherited = function(name, args, newArgs){
+ // summary:
+ // Calls a super method.
+ // name: String?
+ // The optional method name. Should be the same as the caller's
+ // name. Usually "name" is specified in complex dynamic cases, when
+ // the calling method was dynamically added, undecorated by
+ // dojo.declare, and it cannot be determined.
+ // args: Arguments
+ // The caller supply this argument, which should be the original
+ // "arguments".
+ // newArgs: Object?
+ // If "true", the found function will be returned without
+ // executing it.
+ // If Array, it will be used to call a super method. Otherwise
+ // "args" will be used.
+ // returns:
+ // Whatever is returned by a super method, or a super method itself,
+ // if "true" was specified as newArgs.
+ // description:
+ // This method is used inside method of classes produced with
+ // dojo.declare to call a super method (next in the chain). It is
+ // used for manually controlled chaining. Consider using the regular
+ // chaining, because it is faster. Use "this.inherited()" only in
+ // complex cases.
+ //
+ // This method cannot me called from automatically chained
+ // constructors including the case of a special (legacy)
+ // constructor chaining. It cannot be called from chained methods.
+ //
+ // If "this.inherited()" cannot find the next-in-chain method, it
+ // does nothing and returns "undefined". The last method in chain
+ // can be a default method implemented in Object, which will be
+ // called last.
+ //
+ // If "name" is specified, it is assumed that the method that
+ // received "args" is the parent method for this call. It is looked
+ // up in the chain list and if it is found the next-in-chain method
+ // is called. If it is not found, the first-in-chain method is
+ // called.
+ //
+ // If "name" is not specified, it will be derived from the calling
+ // method (using a methoid property "nom").
+ //
+ // example:
+ // | var B = dojo.declare(A, {
+ // | method1: function(a, b, c){
+ // | this.inherited(arguments);
+ // | },
+ // | method2: function(a, b){
+ // | return this.inherited(arguments, [a + b]);
+ // | }
+ // | });
+ // | // next method is not in the chain list because it is added
+ // | // manually after the class was created.
+ // | B.prototype.method3 = function(){
+ // | console.log("This is a dynamically-added method.");
+ // | this.inherited("method3", arguments);
+ // | };
+ // example:
+ // | var B = dojo.declare(A, {
+ // | method: function(a, b){
+ // | var super = this.inherited(arguments, true);
+ // | // ...
+ // | if(!super){
+ // | console.log("there is no super method");
+ // | return 0;
+ // | }
+ // | return super.apply(this, arguments);
+ // | }
+ // | });
+ return {}; // Object
+ }
+ =====*/
+
+ /*=====
+ Object.getInherited = function(name, args){
+ // summary:
+ // Returns a super method.
+ // name: String?
+ // The optional method name. Should be the same as the caller's
+ // name. Usually "name" is specified in complex dynamic cases, when
+ // the calling method was dynamically added, undecorated by
+ // dojo.declare, and it cannot be determined.
+ // args: Arguments
+ // The caller supply this argument, which should be the original
+ // "arguments".
+ // returns:
+ // Returns a super method (Function) or "undefined".
+ // description:
+ // This method is a convenience method for "this.inherited()".
+ // It uses the same algorithm but instead of executing a super
+ // method, it returns it, or "undefined" if not found.
+ //
+ // example:
+ // | var B = dojo.declare(A, {
+ // | method: function(a, b){
+ // | var super = this.getInherited(arguments);
+ // | // ...
+ // | if(!super){
+ // | console.log("there is no super method");
+ // | return 0;
+ // | }
+ // | return super.apply(this, arguments);
+ // | }
+ // | });
+ return {}; // Object
+ }
+ =====*/
+
+ /*=====
+ Object.isInstanceOf = function(cls){
+ // summary:
+ // Checks the inheritance chain to see if it is inherited from this
+ // class.
+ // cls: Function
+ // Class constructor.
+ // returns:
+ // "true", if this object is inherited from this class, "false"
+ // otherwise.
+ // description:
+ // This method is used with instances of classes produced with
+ // dojo.declare to determine of they support a certain interface or
+ // not. It models "instanceof" operator.
+ //
+ // example:
+ // | var A = dojo.declare(null, {
+ // | // constructor, properties, and methods go here
+ // | // ...
+ // | });
+ // | var B = dojo.declare(null, {
+ // | // constructor, properties, and methods go here
+ // | // ...
+ // | });
+ // | var C = dojo.declare([A, B], {
+ // | // constructor, properties, and methods go here
+ // | // ...
+ // | });
+ // | var D = dojo.declare(A, {
+ // | // constructor, properties, and methods go here
+ // | // ...
+ // | });
+ // |
+ // | var a = new A(), b = new B(), c = new C(), d = new D();
+ // |
+ // | console.log(a.isInstanceOf(A)); // true
+ // | console.log(b.isInstanceOf(A)); // false
+ // | console.log(c.isInstanceOf(A)); // true
+ // | console.log(d.isInstanceOf(A)); // true
+ // |
+ // | console.log(a.isInstanceOf(B)); // false
+ // | console.log(b.isInstanceOf(B)); // true
+ // | console.log(c.isInstanceOf(B)); // true
+ // | console.log(d.isInstanceOf(B)); // false
+ // |
+ // | console.log(a.isInstanceOf(C)); // false
+ // | console.log(b.isInstanceOf(C)); // false
+ // | console.log(c.isInstanceOf(C)); // true
+ // | console.log(d.isInstanceOf(C)); // false
+ // |
+ // | console.log(a.isInstanceOf(D)); // false
+ // | console.log(b.isInstanceOf(D)); // false
+ // | console.log(c.isInstanceOf(D)); // false
+ // | console.log(d.isInstanceOf(D)); // true
+ return {}; // Object
+ }
+ =====*/
+
+ /*=====
+ Object.extend = function(source){
+ // summary:
+ // Adds all properties and methods of source to constructor's
+ // prototype, making them available to all instances created with
+ // constructor. This method is specific to constructors created with
+ // dojo.declare.
+ // source: Object
+ // Source object which properties are going to be copied to the
+ // constructor's prototype.
+ // description:
+ // Adds source properties to the constructor's prototype. It can
+ // override existing properties.
+ //
+ // This method is similar to dojo.extend function, but it is specific
+ // to constructors produced by dojo.declare. It is implemented
+ // using dojo.safeMixin, and it skips a constructor property,
+ // and properly decorates copied functions.
+ //
+ // example:
+ // | var A = dojo.declare(null, {
+ // | m1: function(){},
+ // | s1: "Popokatepetl"
+ // | });
+ // | A.extend({
+ // | m1: function(){},
+ // | m2: function(){},
+ // | f1: true,
+ // | d1: 42
+ // | });
+ };
+ =====*/
+})();
+
+}
+
+if(!dojo._hasResource["dojo._base.connect"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.connect"] = true;
+dojo.provide("dojo._base.connect");
+
+
+
+// this file courtesy of the TurboAjax Group, licensed under a Dojo CLA
+
+// low-level delegation machinery
+dojo._listener = {
+ // create a dispatcher function
+ getDispatcher: function(){
+ // following comments pulled out-of-line to prevent cloning them
+ // in the returned function.
+ // - indices (i) that are really in the array of listeners (ls) will
+ // not be in Array.prototype. This is the 'sparse array' trick
+ // that keeps us safe from libs that take liberties with built-in
+ // objects
+ // - listener is invoked with current scope (this)
+ return function(){
+ var ap = Array.prototype, c = arguments.callee, ls = c._listeners, t = c.target,
+ // return value comes from original target function
+ r = t && t.apply(this, arguments),
+ // make local copy of listener array so it is immutable during processing
+ i, lls = [].concat(ls)
+ ;
+
+ // invoke listeners after target function
+ for(i in lls){
+ if(!(i in ap)){
+ lls[i].apply(this, arguments);
+ }
+ }
+ // return value comes from original target function
+ return r;
+ };
+ },
+ // add a listener to an object
+ add: function(/*Object*/ source, /*String*/ method, /*Function*/ listener){
+ // Whenever 'method' is invoked, 'listener' will have the same scope.
+ // Trying to supporting a context object for the listener led to
+ // complexity.
+ // Non trivial to provide 'once' functionality here
+ // because listener could be the result of a dojo.hitch call,
+ // in which case two references to the same hitch target would not
+ // be equivalent.
+ source = source || dojo.global;
+ // The source method is either null, a dispatcher, or some other function
+ var f = source[method];
+ // Ensure a dispatcher
+ if(!f || !f._listeners){
+ var d = dojo._listener.getDispatcher();
+ // original target function is special
+ d.target = f;
+ // dispatcher holds a list of listeners
+ d._listeners = [];
+ // redirect source to dispatcher
+ f = source[method] = d;
+ }
+ // The contract is that a handle is returned that can
+ // identify this listener for disconnect.
+ //
+ // The type of the handle is private. Here is it implemented as Integer.
+ // DOM event code has this same contract but handle is Function
+ // in non-IE browsers.
+ //
+ // We could have separate lists of before and after listeners.
+ return f._listeners.push(listener); /*Handle*/
+ },
+ // remove a listener from an object
+ remove: function(/*Object*/ source, /*String*/ method, /*Handle*/ handle){
+ var f = (source || dojo.global)[method];
+ // remember that handle is the index+1 (0 is not a valid handle)
+ if(f && f._listeners && handle--){
+ delete f._listeners[handle];
+ }
+ }
+};
+
+// Multiple delegation for arbitrary methods.
+
+// This unit knows nothing about DOM, but we include DOM aware documentation
+// and dontFix argument here to help the autodocs. Actual DOM aware code is in
+// event.js.
+
+dojo.connect = function(/*Object|null*/ obj,
+ /*String*/ event,
+ /*Object|null*/ context,
+ /*String|Function*/ method,
+ /*Boolean?*/ dontFix){
+ // summary:
+ // `dojo.connect` is the core event handling and delegation method in
+ // Dojo. It allows one function to "listen in" on the execution of
+ // any other, triggering the second whenever the first is called. Many
+ // listeners may be attached to a function, and source functions may
+ // be either regular function calls or DOM events.
+ //
+ // description:
+ // Connects listeners to actions, so that after event fires, a
+ // listener is called with the same arguments passed to the original
+ // function.
+ //
+ // Since `dojo.connect` allows the source of events to be either a
+ // "regular" JavaScript function or a DOM event, it provides a uniform
+ // interface for listening to all the types of events that an
+ // application is likely to deal with though a single, unified
+ // interface. DOM programmers may want to think of it as
+ // "addEventListener for everything and anything".
+ //
+ // When setting up a connection, the `event` parameter must be a
+ // string that is the name of the method/event to be listened for. If
+ // `obj` is null, `dojo.global` is assumed, meaning that connections
+ // to global methods are supported but also that you may inadvertently
+ // connect to a global by passing an incorrect object name or invalid
+ // reference.
+ //
+ // `dojo.connect` generally is forgiving. If you pass the name of a
+ // function or method that does not yet exist on `obj`, connect will
+ // not fail, but will instead set up a stub method. Similarly, null
+ // arguments may simply be omitted such that fewer than 4 arguments
+ // may be required to set up a connection See the examples for details.
+ //
+ // The return value is a handle that is needed to
+ // remove this connection with `dojo.disconnect`.
+ //
+ // obj:
+ // The source object for the event function.
+ // Defaults to `dojo.global` if null.
+ // If obj is a DOM node, the connection is delegated
+ // to the DOM event manager (unless dontFix is true).
+ //
+ // event:
+ // String name of the event function in obj.
+ // I.e. identifies a property `obj[event]`.
+ //
+ // context:
+ // The object that method will receive as "this".
+ //
+ // If context is null and method is a function, then method
+ // inherits the context of event.
+ //
+ // If method is a string then context must be the source
+ // object object for method (context[method]). If context is null,
+ // dojo.global is used.
+ //
+ // method:
+ // A function reference, or name of a function in context.
+ // The function identified by method fires after event does.
+ // method receives the same arguments as the event.
+ // See context argument comments for information on method's scope.
+ //
+ // dontFix:
+ // If obj is a DOM node, set dontFix to true to prevent delegation
+ // of this connection to the DOM event manager.
+ //
+ // example:
+ // When obj.onchange(), do ui.update():
+ // | dojo.connect(obj, "onchange", ui, "update");
+ // | dojo.connect(obj, "onchange", ui, ui.update); // same
+ //
+ // example:
+ // Using return value for disconnect:
+ // | var link = dojo.connect(obj, "onchange", ui, "update");
+ // | ...
+ // | dojo.disconnect(link);
+ //
+ // example:
+ // When onglobalevent executes, watcher.handler is invoked:
+ // | dojo.connect(null, "onglobalevent", watcher, "handler");
+ //
+ // example:
+ // When ob.onCustomEvent executes, customEventHandler is invoked:
+ // | dojo.connect(ob, "onCustomEvent", null, "customEventHandler");
+ // | dojo.connect(ob, "onCustomEvent", "customEventHandler"); // same
+ //
+ // example:
+ // When ob.onCustomEvent executes, customEventHandler is invoked
+ // with the same scope (this):
+ // | dojo.connect(ob, "onCustomEvent", null, customEventHandler);
+ // | dojo.connect(ob, "onCustomEvent", customEventHandler); // same
+ //
+ // example:
+ // When globalEvent executes, globalHandler is invoked
+ // with the same scope (this):
+ // | dojo.connect(null, "globalEvent", null, globalHandler);
+ // | dojo.connect("globalEvent", globalHandler); // same
+
+ // normalize arguments
+ var a=arguments, args=[], i=0;
+ // if a[0] is a String, obj was omitted
+ args.push(dojo.isString(a[0]) ? null : a[i++], a[i++]);
+ // if the arg-after-next is a String or Function, context was NOT omitted
+ var a1 = a[i+1];
+ args.push(dojo.isString(a1)||dojo.isFunction(a1) ? a[i++] : null, a[i++]);
+ // absorb any additional arguments
+ for(var l=a.length; i<l; i++){ args.push(a[i]); }
+ // do the actual work
+ return dojo._connect.apply(this, args); /*Handle*/
+}
+
+// used by non-browser hostenvs. always overriden by event.js
+dojo._connect = function(obj, event, context, method){
+ var l=dojo._listener, h=l.add(obj, event, dojo.hitch(context, method));
+ return [obj, event, h, l]; // Handle
+};
+
+dojo.disconnect = function(/*Handle*/ handle){
+ // summary:
+ // Remove a link created by dojo.connect.
+ // description:
+ // Removes the connection between event and the method referenced by handle.
+ // handle:
+ // the return value of the dojo.connect call that created the connection.
+ if(handle && handle[0] !== undefined){
+ dojo._disconnect.apply(this, handle);
+ // let's not keep this reference
+ delete handle[0];
+ }
+};
+
+dojo._disconnect = function(obj, event, handle, listener){
+ listener.remove(obj, event, handle);
+};
+
+// topic publish/subscribe
+
+dojo._topics = {};
+
+dojo.subscribe = function(/*String*/ topic, /*Object|null*/ context, /*String|Function*/ method){
+ // summary:
+ // Attach a listener to a named topic. The listener function is invoked whenever the
+ // named topic is published (see: dojo.publish).
+ // Returns a handle which is needed to unsubscribe this listener.
+ // context:
+ // Scope in which method will be invoked, or null for default scope.
+ // method:
+ // The name of a function in context, or a function reference. This is the function that
+ // is invoked when topic is published.
+ // example:
+ // | dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); });
+ // | dojo.publish("alerts", [ "read this", "hello world" ]);
+
+ // support for 2 argument invocation (omitting context) depends on hitch
+ return [topic, dojo._listener.add(dojo._topics, topic, dojo.hitch(context, method))]; /*Handle*/
+};
+
+dojo.unsubscribe = function(/*Handle*/ handle){
+ // summary:
+ // Remove a topic listener.
+ // handle:
+ // The handle returned from a call to subscribe.
+ // example:
+ // | var alerter = dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); };
+ // | ...
+ // | dojo.unsubscribe(alerter);
+ if(handle){
+ dojo._listener.remove(dojo._topics, handle[0], handle[1]);
+ }
+};
+
+dojo.publish = function(/*String*/ topic, /*Array*/ args){
+ // summary:
+ // Invoke all listener method subscribed to topic.
+ // topic:
+ // The name of the topic to publish.
+ // args:
+ // An array of arguments. The arguments will be applied
+ // to each topic subscriber (as first class parameters, via apply).
+ // example:
+ // | dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); };
+ // | dojo.publish("alerts", [ "read this", "hello world" ]);
+
+ // Note that args is an array, which is more efficient vs variable length
+ // argument list. Ideally, var args would be implemented via Array
+ // throughout the APIs.
+ var f = dojo._topics[topic];
+ if(f){
+ f.apply(this, args||[]);
+ }
+};
+
+dojo.connectPublisher = function( /*String*/ topic,
+ /*Object|null*/ obj,
+ /*String*/ event){
+ // summary:
+ // Ensure that every time obj.event() is called, a message is published
+ // on the topic. Returns a handle which can be passed to
+ // dojo.disconnect() to disable subsequent automatic publication on
+ // the topic.
+ // topic:
+ // The name of the topic to publish.
+ // obj:
+ // The source object for the event function. Defaults to dojo.global
+ // if null.
+ // event:
+ // The name of the event function in obj.
+ // I.e. identifies a property obj[event].
+ // example:
+ // | dojo.connectPublisher("/ajax/start", dojo, "xhrGet");
+ var pf = function(){ dojo.publish(topic, arguments); }
+ return event ? dojo.connect(obj, event, pf) : dojo.connect(obj, pf); //Handle
+};
+
+}
+
+if(!dojo._hasResource["dojo._base.Deferred"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.Deferred"] = true;
+dojo.provide("dojo._base.Deferred");
+
+
+
+(function(){
+ var mutator = function(){};
+ var freeze = Object.freeze || function(){};
+ // A deferred provides an API for creating and resolving a promise.
+ dojo.Deferred = function(/*Function?*/canceller){
+ // summary:
+ // Deferreds provide a generic means for encapsulating an asynchronous
+ // operation and notifying users of the completion and result of the operation.
+ // description:
+ // The dojo.Deferred API is based on the concept of promises that provide a
+ // generic interface into the eventual completion of an asynchronous action.
+ // The motivation for promises fundamentally is about creating a
+ // separation of concerns that allows one to achieve the same type of
+ // call patterns and logical data flow in asynchronous code as can be
+ // achieved in synchronous code. Promises allows one
+ // to be able to call a function purely with arguments needed for
+ // execution, without conflating the call with concerns of whether it is
+ // sync or async. One shouldn't need to alter a call's arguments if the
+ // implementation switches from sync to async (or vice versa). By having
+ // async functions return promises, the concerns of making the call are
+ // separated from the concerns of asynchronous interaction (which are
+ // handled by the promise).
+ //
+ // The dojo.Deferred is a type of promise that provides methods for fulfilling the
+ // promise with a successful result or an error. The most important method for
+ // working with Dojo's promises is the then() method, which follows the
+ // CommonJS proposed promise API. An example of using a Dojo promise:
+ //
+ // | var resultingPromise = someAsyncOperation.then(function(result){
+ // | ... handle result ...
+ // | },
+ // | function(error){
+ // | ... handle error ...
+ // | });
+ //
+ // The .then() call returns a new promise that represents the result of the
+ // execution of the callback. The callbacks will never affect the original promises value.
+ //
+ // The dojo.Deferred instances also provide the following functions for backwards compatibility:
+ //
+ // * addCallback(handler)
+ // * addErrback(handler)
+ // * callback(result)
+ // * errback(result)
+ //
+ // Callbacks are allowed to return promises themselves, so
+ // you can build complicated sequences of events with ease.
+ //
+ // The creator of the Deferred may specify a canceller. The canceller
+ // is a function that will be called if Deferred.cancel is called
+ // before the Deferred fires. You can use this to implement clean
+ // aborting of an XMLHttpRequest, etc. Note that cancel will fire the
+ // deferred with a CancelledError (unless your canceller returns
+ // another kind of error), so the errbacks should be prepared to
+ // handle that error for cancellable Deferreds.
+ // example:
+ // | var deferred = new dojo.Deferred();
+ // | setTimeout(function(){ deferred.callback({success: true}); }, 1000);
+ // | return deferred;
+ // example:
+ // Deferred objects are often used when making code asynchronous. It
+ // may be easiest to write functions in a synchronous manner and then
+ // split code using a deferred to trigger a response to a long-lived
+ // operation. For example, instead of register a callback function to
+ // denote when a rendering operation completes, the function can
+ // simply return a deferred:
+ //
+ // | // callback style:
+ // | function renderLotsOfData(data, callback){
+ // | var success = false
+ // | try{
+ // | for(var x in data){
+ // | renderDataitem(data[x]);
+ // | }
+ // | success = true;
+ // | }catch(e){ }
+ // | if(callback){
+ // | callback(success);
+ // | }
+ // | }
+ //
+ // | // using callback style
+ // | renderLotsOfData(someDataObj, function(success){
+ // | // handles success or failure
+ // | if(!success){
+ // | promptUserToRecover();
+ // | }
+ // | });
+ // | // NOTE: no way to add another callback here!!
+ // example:
+ // Using a Deferred doesn't simplify the sending code any, but it
+ // provides a standard interface for callers and senders alike,
+ // providing both with a simple way to service multiple callbacks for
+ // an operation and freeing both sides from worrying about details
+ // such as "did this get called already?". With Deferreds, new
+ // callbacks can be added at any time.
+ //
+ // | // Deferred style:
+ // | function renderLotsOfData(data){
+ // | var d = new dojo.Deferred();
+ // | try{
+ // | for(var x in data){
+ // | renderDataitem(data[x]);
+ // | }
+ // | d.callback(true);
+ // | }catch(e){
+ // | d.errback(new Error("rendering failed"));
+ // | }
+ // | return d;
+ // | }
+ //
+ // | // using Deferred style
+ // | renderLotsOfData(someDataObj).then(null, function(){
+ // | promptUserToRecover();
+ // | });
+ // | // NOTE: addErrback and addCallback both return the Deferred
+ // | // again, so we could chain adding callbacks or save the
+ // | // deferred for later should we need to be notified again.
+ // example:
+ // In this example, renderLotsOfData is synchronous and so both
+ // versions are pretty artificial. Putting the data display on a
+ // timeout helps show why Deferreds rock:
+ //
+ // | // Deferred style and async func
+ // | function renderLotsOfData(data){
+ // | var d = new dojo.Deferred();
+ // | setTimeout(function(){
+ // | try{
+ // | for(var x in data){
+ // | renderDataitem(data[x]);
+ // | }
+ // | d.callback(true);
+ // | }catch(e){
+ // | d.errback(new Error("rendering failed"));
+ // | }
+ // | }, 100);
+ // | return d;
+ // | }
+ //
+ // | // using Deferred style
+ // | renderLotsOfData(someDataObj).then(null, function(){
+ // | promptUserToRecover();
+ // | });
+ //
+ // Note that the caller doesn't have to change his code at all to
+ // handle the asynchronous case.
+ var result, finished, isError, head, nextListener;
+ var promise = (this.promise = {});
+
+ function complete(value){
+ if(finished){
+ throw new Error("This deferred has already been resolved");
+ }
+ result = value;
+ finished = true;
+ notify();
+ }
+ function notify(){
+ var mutated;
+ while(!mutated && nextListener){
+ var listener = nextListener;
+ nextListener = nextListener.next;
+ if((mutated = (listener.progress == mutator))){ // assignment and check
+ finished = false;
+ }
+ var func = (isError ? listener.error : listener.resolved);
+ if (func) {
+ try {
+ var newResult = func(result);
+ if (newResult && typeof newResult.then === "function") {
+ newResult.then(dojo.hitch(listener.deferred, "resolve"), dojo.hitch(listener.deferred, "reject"));
+ continue;
+ }
+ var unchanged = mutated && newResult === undefined;
+ if(mutated && !unchanged){
+ isError = newResult instanceof Error;
+ }
+ listener.deferred[unchanged && isError ? "reject" : "resolve"](unchanged ? result : newResult);
+ }
+ catch (e) {
+ listener.deferred.reject(e);
+ }
+ }else {
+ if(isError){
+ listener.deferred.reject(result);
+ }else{
+ listener.deferred.resolve(result);
+ }
+ }
+ }
+ }
+ // calling resolve will resolve the promise
+ this.resolve = this.callback = function(value){
+ // summary:
+ // Fulfills the Deferred instance successfully with the provide value
+ this.fired = 0;
+ this.results = [value, null];
+ complete(value);
+ };
+
+
+ // calling error will indicate that the promise failed
+ this.reject = this.errback = function(error){
+ // summary:
+ // Fulfills the Deferred instance as an error with the provided error
+ isError = true;
+ this.fired = 1;
+ complete(error);
+ this.results = [null, error];
+ if(!error || error.log !== false){
+ (dojo.config.deferredOnError || function(x){ console.error(x); })(error);
+ }
+ };
+ // call progress to provide updates on the progress on the completion of the promise
+ this.progress = function(update){
+ // summary
+ // Send progress events to all listeners
+ var listener = nextListener;
+ while(listener){
+ var progress = listener.progress;
+ progress && progress(update);
+ listener = listener.next;
+ }
+ };
+ this.addCallbacks = function(/*Function?*/callback, /*Function?*/errback){
+ this.then(callback, errback, mutator);
+ return this;
+ };
+ // provide the implementation of the promise
+ this.then = promise.then = function(/*Function?*/resolvedCallback, /*Function?*/errorCallback, /*Function?*/progressCallback){
+ // summary:
+ // Adds a fulfilledHandler, errorHandler, and progressHandler to be called for
+ // completion of a promise. The fulfilledHandler is called when the promise
+ // is fulfilled. The errorHandler is called when a promise fails. The
+ // progressHandler is called for progress events. All arguments are optional
+ // and non-function values are ignored. The progressHandler is not only an
+ // optional argument, but progress events are purely optional. Promise
+ // providers are not required to ever create progress events.
+ //
+ // This function will return a new promise that is fulfilled when the given
+ // fulfilledHandler or errorHandler callback is finished. This allows promise
+ // operations to be chained together. The value returned from the callback
+ // handler is the fulfillment value for the returned promise. If the callback
+ // throws an error, the returned promise will be moved to failed state.
+ //
+ // example:
+ // An example of using a CommonJS compliant promise:
+ // | asyncComputeTheAnswerToEverything().
+ // | then(addTwo).
+ // | then(printResult, onError);
+ // | >44
+ //
+ var returnDeferred = progressCallback == mutator ? this : new dojo.Deferred(promise.cancel);
+ var listener = {
+ resolved: resolvedCallback,
+ error: errorCallback,
+ progress: progressCallback,
+ deferred: returnDeferred
+ };
+ if(nextListener){
+ head = head.next = listener;
+ }
+ else{
+ nextListener = head = listener;
+ }
+ if(finished){
+ notify();
+ }
+ return returnDeferred.promise;
+ };
+ var deferred = this;
+ this.cancel = promise.cancel = function () {
+ // summary:
+ // Cancels the asynchronous operation
+ if(!finished){
+ var error = canceller && canceller(deferred);
+ if(!finished){
+ if (!(error instanceof Error)) {
+ error = new Error(error);
+ }
+ error.log = false;
+ deferred.reject(error);
+ }
+ }
+ };
+ freeze(promise);
+ };
+ dojo.extend(dojo.Deferred, {
+ addCallback: function (/*Function*/callback) {
+ return this.addCallbacks(dojo.hitch.apply(dojo, arguments));
+ },
+
+ addErrback: function (/*Function*/errback) {
+ return this.addCallbacks(null, dojo.hitch.apply(dojo, arguments));
+ },
+
+ addBoth: function (/*Function*/callback) {
+ var enclosed = dojo.hitch.apply(dojo, arguments);
+ return this.addCallbacks(enclosed, enclosed);
+ },
+ fired: -1
+ });
+})();
+dojo.when = function(promiseOrValue, /*Function?*/callback, /*Function?*/errback, /*Function?*/progressHandler){
+ // summary:
+ // This provides normalization between normal synchronous values and
+ // asynchronous promises, so you can interact with them in a common way
+ // example:
+ // | function printFirstAndList(items){
+ // | dojo.when(findFirst(items), console.log);
+ // | dojo.when(findLast(items), console.log);
+ // | }
+ // | function findFirst(items){
+ // | return dojo.when(items, function(items){
+ // | return items[0];
+ // | });
+ // | }
+ // | function findLast(items){
+ // | return dojo.when(items, function(items){
+ // | return items[items.length];
+ // | });
+ // | }
+ // And now all three of his functions can be used sync or async.
+ // | printFirstAndLast([1,2,3,4]) will work just as well as
+ // | printFirstAndLast(dojo.xhrGet(...));
+
+ if(promiseOrValue && typeof promiseOrValue.then === "function"){
+ return promiseOrValue.then(callback, errback, progressHandler);
+ }
+ return callback(promiseOrValue);
+};
+
+}
+
+if(!dojo._hasResource["dojo._base.json"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.json"] = true;
+dojo.provide("dojo._base.json");
+
+
+dojo.fromJson = function(/*String*/ json){
+ // summary:
+ // Parses a [JSON](http://json.org) string to return a JavaScript object.
+ // description:
+ // Throws for invalid JSON strings, but it does not use a strict JSON parser. It
+ // delegates to eval(). The content passed to this method must therefore come
+ // from a trusted source.
+ // json:
+ // a string literal of a JSON item, for instance:
+ // `'{ "foo": [ "bar", 1, { "baz": "thud" } ] }'`
+
+ return eval("(" + json + ")"); // Object
+};
+
+dojo._escapeString = function(/*String*/str){
+ //summary:
+ // Adds escape sequences for non-visual characters, double quote and
+ // backslash and surrounds with double quotes to form a valid string
+ // literal.
+ return ('"' + str.replace(/(["\\])/g, '\\$1') + '"').
+ replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").
+ replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r"); // string
+};
+
+dojo.toJsonIndentStr = "\t";
+dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint, /*String?*/ _indentStr){
+ // summary:
+ // Returns a [JSON](http://json.org) serialization of an object.
+ // description:
+ // Returns a [JSON](http://json.org) serialization of an object.
+ // Note that this doesn't check for infinite recursion, so don't do that!
+ // it:
+ // an object to be serialized. Objects may define their own
+ // serialization via a special "__json__" or "json" function
+ // property. If a specialized serializer has been defined, it will
+ // be used as a fallback.
+ // prettyPrint:
+ // if true, we indent objects and arrays to make the output prettier.
+ // The variable `dojo.toJsonIndentStr` is used as the indent string --
+ // to use something other than the default (tab), change that variable
+ // before calling dojo.toJson().
+ // _indentStr:
+ // private variable for recursive calls when pretty printing, do not use.
+ // example:
+ // simple serialization of a trivial object
+ // | var jsonStr = dojo.toJson({ howdy: "stranger!", isStrange: true });
+ // | doh.is('{"howdy":"stranger!","isStrange":true}', jsonStr);
+ // example:
+ // a custom serializer for an objects of a particular class:
+ // | dojo.declare("Furby", null, {
+ // | furbies: "are strange",
+ // | furbyCount: 10,
+ // | __json__: function(){
+ // | },
+ // | });
+
+ if(it === undefined){
+ return "undefined";
+ }
+ var objtype = typeof it;
+ if(objtype == "number" || objtype == "boolean"){
+ return it + "";
+ }
+ if(it === null){
+ return "null";
+ }
+ if(dojo.isString(it)){
+ return dojo._escapeString(it);
+ }
+ // recurse
+ var recurse = arguments.callee;
+ // short-circuit for objects that support "json" serialization
+ // if they return "self" then just pass-through...
+ var newObj;
+ _indentStr = _indentStr || "";
+ var nextIndent = prettyPrint ? _indentStr + dojo.toJsonIndentStr : "";
+ var tf = it.__json__||it.json;
+ if(dojo.isFunction(tf)){
+ newObj = tf.call(it);
+ if(it !== newObj){
+ return recurse(newObj, prettyPrint, nextIndent);
+ }
+ }
+ if(it.nodeType && it.cloneNode){ // isNode
+ // we can't seriailize DOM nodes as regular objects because they have cycles
+ // DOM nodes could be serialized with something like outerHTML, but
+ // that can be provided by users in the form of .json or .__json__ function.
+ throw new Error("Can't serialize DOM nodes");
+ }
+
+ var sep = prettyPrint ? " " : "";
+ var newLine = prettyPrint ? "\n" : "";
+
+ // array
+ if(dojo.isArray(it)){
+ var res = dojo.map(it, function(obj){
+ var val = recurse(obj, prettyPrint, nextIndent);
+ if(typeof val != "string"){
+ val = "undefined";
+ }
+ return newLine + nextIndent + val;
+ });
+ return "[" + res.join("," + sep) + newLine + _indentStr + "]";
+ }
+ /*
+ // look in the registry
+ try {
+ window.o = it;
+ newObj = dojo.json.jsonRegistry.match(it);
+ return recurse(newObj, prettyPrint, nextIndent);
+ }catch(e){
+ // console.log(e);
+ }
+ // it's a function with no adapter, skip it
+ */
+ if(objtype == "function"){
+ return null; // null
+ }
+ // generic object code path
+ var output = [], key;
+ for(key in it){
+ var keyStr, val;
+ if(typeof key == "number"){
+ keyStr = '"' + key + '"';
+ }else if(typeof key == "string"){
+ keyStr = dojo._escapeString(key);
+ }else{
+ // skip non-string or number keys
+ continue;
+ }
+ val = recurse(it[key], prettyPrint, nextIndent);
+ if(typeof val != "string"){
+ // skip non-serializable values
+ continue;
+ }
+ // FIXME: use += on Moz!!
+ // MOW NOTE: using += is a pain because you have to account for the dangling comma...
+ output.push(newLine + nextIndent + keyStr + ":" + sep + val);
+ }
+ return "{" + output.join("," + sep) + newLine + _indentStr + "}"; // String
+};
+
+}
+
+if(!dojo._hasResource["dojo._base.Color"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.Color"] = true;
+dojo.provide("dojo._base.Color");
+
+
+
+
+(function(){
+
+ var d = dojo;
+
+ dojo.Color = function(/*Array|String|Object*/ color){
+ // summary:
+ // Takes a named string, hex string, array of rgb or rgba values,
+ // an object with r, g, b, and a properties, or another `dojo.Color` object
+ // and creates a new Color instance to work from.
+ //
+ // example:
+ // Work with a Color instance:
+ // | var c = new dojo.Color();
+ // | c.setColor([0,0,0]); // black
+ // | var hex = c.toHex(); // #000000
+ //
+ // example:
+ // Work with a node's color:
+ // | var color = dojo.style("someNode", "backgroundColor");
+ // | var n = new dojo.Color(color);
+ // | // adjust the color some
+ // | n.r *= .5;
+ // | console.log(n.toString()); // rgb(128, 255, 255);
+ if(color){ this.setColor(color); }
+ };
+
+ // FIXME:
+ // there's got to be a more space-efficient way to encode or discover
+ // these!! Use hex?
+ dojo.Color.named = {
+ black: [0,0,0],
+ silver: [192,192,192],
+ gray: [128,128,128],
+ white: [255,255,255],
+ maroon: [128,0,0],
+ red: [255,0,0],
+ purple: [128,0,128],
+ fuchsia: [255,0,255],
+ green: [0,128,0],
+ lime: [0,255,0],
+ olive: [128,128,0],
+ yellow: [255,255,0],
+ navy: [0,0,128],
+ blue: [0,0,255],
+ teal: [0,128,128],
+ aqua: [0,255,255],
+ transparent: d.config.transparentColor || [255,255,255]
+ };
+
+ dojo.extend(dojo.Color, {
+ r: 255, g: 255, b: 255, a: 1,
+ _set: function(r, g, b, a){
+ var t = this; t.r = r; t.g = g; t.b = b; t.a = a;
+ },
+ setColor: function(/*Array|String|Object*/ color){
+ // summary:
+ // Takes a named string, hex string, array of rgb or rgba values,
+ // an object with r, g, b, and a properties, or another `dojo.Color` object
+ // and sets this color instance to that value.
+ //
+ // example:
+ // | var c = new dojo.Color(); // no color
+ // | c.setColor("#ededed"); // greyish
+ if(d.isString(color)){
+ d.colorFromString(color, this);
+ }else if(d.isArray(color)){
+ d.colorFromArray(color, this);
+ }else{
+ this._set(color.r, color.g, color.b, color.a);
+ if(!(color instanceof d.Color)){ this.sanitize(); }
+ }
+ return this; // dojo.Color
+ },
+ sanitize: function(){
+ // summary:
+ // Ensures the object has correct attributes
+ // description:
+ // the default implementation does nothing, include dojo.colors to
+ // augment it with real checks
+ return this; // dojo.Color
+ },
+ toRgb: function(){
+ // summary:
+ // Returns 3 component array of rgb values
+ // example:
+ // | var c = new dojo.Color("#000000");
+ // | console.log(c.toRgb()); // [0,0,0]
+ var t = this;
+ return [t.r, t.g, t.b]; // Array
+ },
+ toRgba: function(){
+ // summary:
+ // Returns a 4 component array of rgba values from the color
+ // represented by this object.
+ var t = this;
+ return [t.r, t.g, t.b, t.a]; // Array
+ },
+ toHex: function(){
+ // summary:
+ // Returns a CSS color string in hexadecimal representation
+ // example:
+ // | console.log(new dojo.Color([0,0,0]).toHex()); // #000000
+ var arr = d.map(["r", "g", "b"], function(x){
+ var s = this[x].toString(16);
+ return s.length < 2 ? "0" + s : s;
+ }, this);
+ return "#" + arr.join(""); // String
+ },
+ toCss: function(/*Boolean?*/ includeAlpha){
+ // summary:
+ // Returns a css color string in rgb(a) representation
+ // example:
+ // | var c = new dojo.Color("#FFF").toCss();
+ // | console.log(c); // rgb('255','255','255')
+ var t = this, rgb = t.r + ", " + t.g + ", " + t.b;
+ return (includeAlpha ? "rgba(" + rgb + ", " + t.a : "rgb(" + rgb) + ")"; // String
+ },
+ toString: function(){
+ // summary:
+ // Returns a visual representation of the color
+ return this.toCss(true); // String
+ }
+ });
+
+ dojo.blendColors = function(
+ /*dojo.Color*/ start,
+ /*dojo.Color*/ end,
+ /*Number*/ weight,
+ /*dojo.Color?*/ obj
+ ){
+ // summary:
+ // Blend colors end and start with weight from 0 to 1, 0.5 being a 50/50 blend,
+ // can reuse a previously allocated dojo.Color object for the result
+ var t = obj || new d.Color();
+ d.forEach(["r", "g", "b", "a"], function(x){
+ t[x] = start[x] + (end[x] - start[x]) * weight;
+ if(x != "a"){ t[x] = Math.round(t[x]); }
+ });
+ return t.sanitize(); // dojo.Color
+ };
+
+ dojo.colorFromRgb = function(/*String*/ color, /*dojo.Color?*/ obj){
+ // summary:
+ // Returns a `dojo.Color` instance from a string of the form
+ // "rgb(...)" or "rgba(...)". Optionally accepts a `dojo.Color`
+ // object to update with the parsed value and return instead of
+ // creating a new object.
+ // returns:
+ // A dojo.Color object. If obj is passed, it will be the return value.
+ var m = color.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);
+ return m && dojo.colorFromArray(m[1].split(/\s*,\s*/), obj); // dojo.Color
+ };
+
+ dojo.colorFromHex = function(/*String*/ color, /*dojo.Color?*/ obj){
+ // summary:
+ // Converts a hex string with a '#' prefix to a color object.
+ // Supports 12-bit #rgb shorthand. Optionally accepts a
+ // `dojo.Color` object to update with the parsed value.
+ //
+ // returns:
+ // A dojo.Color object. If obj is passed, it will be the return value.
+ //
+ // example:
+ // | var thing = dojo.colorFromHex("#ededed"); // grey, longhand
+ //
+ // example:
+ // | var thing = dojo.colorFromHex("#000"); // black, shorthand
+ var t = obj || new d.Color(),
+ bits = (color.length == 4) ? 4 : 8,
+ mask = (1 << bits) - 1;
+ color = Number("0x" + color.substr(1));
+ if(isNaN(color)){
+ return null; // dojo.Color
+ }
+ d.forEach(["b", "g", "r"], function(x){
+ var c = color & mask;
+ color >>= bits;
+ t[x] = bits == 4 ? 17 * c : c;
+ });
+ t.a = 1;
+ return t; // dojo.Color
+ };
+
+ dojo.colorFromArray = function(/*Array*/ a, /*dojo.Color?*/ obj){
+ // summary:
+ // Builds a `dojo.Color` from a 3 or 4 element array, mapping each
+ // element in sequence to the rgb(a) values of the color.
+ // example:
+ // | var myColor = dojo.colorFromArray([237,237,237,0.5]); // grey, 50% alpha
+ // returns:
+ // A dojo.Color object. If obj is passed, it will be the return value.
+ var t = obj || new d.Color();
+ t._set(Number(a[0]), Number(a[1]), Number(a[2]), Number(a[3]));
+ if(isNaN(t.a)){ t.a = 1; }
+ return t.sanitize(); // dojo.Color
+ };
+
+ dojo.colorFromString = function(/*String*/ str, /*dojo.Color?*/ obj){
+ // summary:
+ // Parses `str` for a color value. Accepts hex, rgb, and rgba
+ // style color values.
+ // description:
+ // Acceptable input values for str may include arrays of any form
+ // accepted by dojo.colorFromArray, hex strings such as "#aaaaaa", or
+ // rgb or rgba strings such as "rgb(133, 200, 16)" or "rgba(10, 10,
+ // 10, 50)"
+ // returns:
+ // A dojo.Color object. If obj is passed, it will be the return value.
+ var a = d.Color.named[str];
+ return a && d.colorFromArray(a, obj) || d.colorFromRgb(str, obj) || d.colorFromHex(str, obj);
+ };
+})();
+
+}
+
+if(!dojo._hasResource["dojo._base.window"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.window"] = true;
+dojo.provide("dojo._base.window");
+
+
+/*=====
+dojo.doc = {
+ // summary:
+ // Alias for the current document. 'dojo.doc' can be modified
+ // for temporary context shifting. Also see dojo.withDoc().
+ // description:
+ // Refer to dojo.doc rather
+ // than referring to 'window.document' to ensure your code runs
+ // correctly in managed contexts.
+ // example:
+ // | n.appendChild(dojo.doc.createElement('div'));
+}
+=====*/
+dojo.doc = window["document"] || null;
+
+dojo.body = function(){
+ // summary:
+ // Return the body element of the document
+ // return the body object associated with dojo.doc
+ // example:
+ // | dojo.body().appendChild(dojo.doc.createElement('div'));
+
+ // Note: document.body is not defined for a strict xhtml document
+ // Would like to memoize this, but dojo.doc can change vi dojo.withDoc().
+ return dojo.doc.body || dojo.doc.getElementsByTagName("body")[0]; // Node
+};
+
+dojo.setContext = function(/*Object*/globalObject, /*DocumentElement*/globalDocument){
+ // summary:
+ // changes the behavior of many core Dojo functions that deal with
+ // namespace and DOM lookup, changing them to work in a new global
+ // context (e.g., an iframe). The varibles dojo.global and dojo.doc
+ // are modified as a result of calling this function and the result of
+ // `dojo.body()` likewise differs.
+ dojo.global = globalObject;
+ dojo.doc = globalDocument;
+};
+
+dojo.withGlobal = function( /*Object*/globalObject,
+ /*Function*/callback,
+ /*Object?*/thisObject,
+ /*Array?*/cbArguments){
+ // summary:
+ // Invoke callback with globalObject as dojo.global and
+ // globalObject.document as dojo.doc.
+ // description:
+ // Invoke callback with globalObject as dojo.global and
+ // globalObject.document as dojo.doc. If provided, globalObject
+ // will be executed in the context of object thisObject
+ // When callback() returns or throws an error, the dojo.global
+ // and dojo.doc will be restored to its previous state.
+
+ var oldGlob = dojo.global;
+ try{
+ dojo.global = globalObject;
+ return dojo.withDoc.call(null, globalObject.document, callback, thisObject, cbArguments);
+ }finally{
+ dojo.global = oldGlob;
+ }
+};
+
+dojo.withDoc = function( /*DocumentElement*/documentObject,
+ /*Function*/callback,
+ /*Object?*/thisObject,
+ /*Array?*/cbArguments){
+ // summary:
+ // Invoke callback with documentObject as dojo.doc.
+ // description:
+ // Invoke callback with documentObject as dojo.doc. If provided,
+ // callback will be executed in the context of object thisObject
+ // When callback() returns or throws an error, the dojo.doc will
+ // be restored to its previous state.
+
+ var oldDoc = dojo.doc,
+ oldLtr = dojo._bodyLtr,
+ oldQ = dojo.isQuirks;
+
+ try{
+ dojo.doc = documentObject;
+ delete dojo._bodyLtr; // uncache
+ dojo.isQuirks = dojo.doc.compatMode == "BackCompat"; // no need to check for QuirksMode which was Opera 7 only
+
+ if(thisObject && typeof callback == "string"){
+ callback = thisObject[callback];
+ }
+
+ return callback.apply(thisObject, cbArguments || []);
+ }finally{
+ dojo.doc = oldDoc;
+ delete dojo._bodyLtr; // in case it was undefined originally, and set to true/false by the alternate document
+ if(oldLtr !== undefined){ dojo._bodyLtr = oldLtr; }
+ dojo.isQuirks = oldQ;
+ }
+};
+
+}
+
+if(!dojo._hasResource["dojo._base.event"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.event"] = true;
+dojo.provide("dojo._base.event");
+
+
+
+// this file courtesy of the TurboAjax Group, licensed under a Dojo CLA
+
+(function(){
+ // DOM event listener machinery
+ var del = (dojo._event_listener = {
+ add: function(/*DOMNode*/ node, /*String*/ name, /*Function*/ fp){
+ if(!node){return;}
+ name = del._normalizeEventName(name);
+ fp = del._fixCallback(name, fp);
+ if(
+ !dojo.isIE &&
+ (name == "mouseenter" || name == "mouseleave")
+ ){
+ var ofp = fp;
+ name = (name == "mouseenter") ? "mouseover" : "mouseout";
+ fp = function(e){
+ if(!dojo.isDescendant(e.relatedTarget, node)){
+ // e.type = oname; // FIXME: doesn't take? SJM: event.type is generally immutable.
+ return ofp.call(this, e);
+ }
+ }
+ }
+ node.addEventListener(name, fp, false);
+ return fp; /*Handle*/
+ },
+ remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){
+ // summary:
+ // clobbers the listener from the node
+ // node:
+ // DOM node to attach the event to
+ // event:
+ // the name of the handler to remove the function from
+ // handle:
+ // the handle returned from add
+ if(node){
+ event = del._normalizeEventName(event);
+ if(!dojo.isIE && (event == "mouseenter" || event == "mouseleave")){
+ event = (event == "mouseenter") ? "mouseover" : "mouseout";
+ }
+
+ node.removeEventListener(event, handle, false);
+ }
+ },
+ _normalizeEventName: function(/*String*/ name){
+ // Generally, name should be lower case, unless it is special
+ // somehow (e.g. a Mozilla DOM event).
+ // Remove 'on'.
+ return name.slice(0,2) =="on" ? name.slice(2) : name;
+ },
+ _fixCallback: function(/*String*/ name, fp){
+ // By default, we only invoke _fixEvent for 'keypress'
+ // If code is added to _fixEvent for other events, we have
+ // to revisit this optimization.
+ // This also applies to _fixEvent overrides for Safari and Opera
+ // below.
+ return name != "keypress" ? fp : function(e){ return fp.call(this, del._fixEvent(e, this)); };
+ },
+ _fixEvent: function(evt, sender){
+ // _fixCallback only attaches us to keypress.
+ // Switch on evt.type anyway because we might
+ // be called directly from dojo.fixEvent.
+ switch(evt.type){
+ case "keypress":
+ del._setKeyChar(evt);
+ break;
+ }
+ return evt;
+ },
+ _setKeyChar: function(evt){
+ evt.keyChar = evt.charCode >= 32 ? String.fromCharCode(evt.charCode) : '';
+ evt.charOrCode = evt.keyChar || evt.keyCode;
+ },
+ // For IE and Safari: some ctrl-key combinations (mostly w/punctuation) do not emit a char code in IE
+ // we map those virtual key codes to ascii here
+ // not valid for all (non-US) keyboards, so maybe we shouldn't bother
+ _punctMap: {
+ 106:42,
+ 111:47,
+ 186:59,
+ 187:43,
+ 188:44,
+ 189:45,
+ 190:46,
+ 191:47,
+ 192:96,
+ 219:91,
+ 220:92,
+ 221:93,
+ 222:39
+ }
+ });
+
+ // DOM events
+
+ dojo.fixEvent = function(/*Event*/ evt, /*DOMNode*/ sender){
+ // summary:
+ // normalizes properties on the event object including event
+ // bubbling methods, keystroke normalization, and x/y positions
+ // evt: Event
+ // native event object
+ // sender: DOMNode
+ // node to treat as "currentTarget"
+ return del._fixEvent(evt, sender);
+ };
+
+ dojo.stopEvent = function(/*Event*/ evt){
+ // summary:
+ // prevents propagation and clobbers the default action of the
+ // passed event
+ // evt: Event
+ // The event object. If omitted, window.event is used on IE.
+ evt.preventDefault();
+ evt.stopPropagation();
+ // NOTE: below, this method is overridden for IE
+ };
+
+ // the default listener to use on dontFix nodes, overriden for IE
+ var node_listener = dojo._listener;
+
+ // Unify connect and event listeners
+ dojo._connect = function(obj, event, context, method, dontFix){
+ // FIXME: need a more strict test
+ var isNode = obj && (obj.nodeType||obj.attachEvent||obj.addEventListener);
+ // choose one of three listener options: raw (connect.js), DOM event on a Node, custom event on a Node
+ // we need the third option to provide leak prevention on broken browsers (IE)
+ var lid = isNode ? (dontFix ? 2 : 1) : 0, l = [dojo._listener, del, node_listener][lid];
+ // create a listener
+ var h = l.add(obj, event, dojo.hitch(context, method));
+ // formerly, the disconnect package contained "l" directly, but if client code
+ // leaks the disconnect package (by connecting it to a node), referencing "l"
+ // compounds the problem.
+ // instead we return a listener id, which requires custom _disconnect below.
+ // return disconnect package
+ return [ obj, event, h, lid ];
+ };
+
+ dojo._disconnect = function(obj, event, handle, listener){
+ ([dojo._listener, del, node_listener][listener]).remove(obj, event, handle);
+ };
+
+ // Constants
+
+ // Public: client code should test
+ // keyCode against these named constants, as the
+ // actual codes can vary by browser.
+ dojo.keys = {
+ // summary:
+ // Definitions for common key values
+ BACKSPACE: 8,
+ TAB: 9,
+ CLEAR: 12,
+ ENTER: 13,
+ SHIFT: 16,
+ CTRL: 17,
+ ALT: 18,
+ META: dojo.isSafari ? 91 : 224, // the apple key on macs
+ PAUSE: 19,
+ CAPS_LOCK: 20,
+ ESCAPE: 27,
+ SPACE: 32,
+ PAGE_UP: 33,
+ PAGE_DOWN: 34,
+ END: 35,
+ HOME: 36,
+ LEFT_ARROW: 37,
+ UP_ARROW: 38,
+ RIGHT_ARROW: 39,
+ DOWN_ARROW: 40,
+ INSERT: 45,
+ DELETE: 46,
+ HELP: 47,
+ LEFT_WINDOW: 91,
+ RIGHT_WINDOW: 92,
+ SELECT: 93,
+ NUMPAD_0: 96,
+ NUMPAD_1: 97,
+ NUMPAD_2: 98,
+ NUMPAD_3: 99,
+ NUMPAD_4: 100,
+ NUMPAD_5: 101,
+ NUMPAD_6: 102,
+ NUMPAD_7: 103,
+ NUMPAD_8: 104,
+ NUMPAD_9: 105,
+ NUMPAD_MULTIPLY: 106,
+ NUMPAD_PLUS: 107,
+ NUMPAD_ENTER: 108,
+ NUMPAD_MINUS: 109,
+ NUMPAD_PERIOD: 110,
+ NUMPAD_DIVIDE: 111,
+ F1: 112,
+ F2: 113,
+ F3: 114,
+ F4: 115,
+ F5: 116,
+ F6: 117,
+ F7: 118,
+ F8: 119,
+ F9: 120,
+ F10: 121,
+ F11: 122,
+ F12: 123,
+ F13: 124,
+ F14: 125,
+ F15: 126,
+ NUM_LOCK: 144,
+ SCROLL_LOCK: 145,
+ // virtual key mapping
+ copyKey: dojo.isMac && !dojo.isAIR ? (dojo.isSafari ? 91 : 224 ) : 17
+ };
+
+ var evtCopyKey = dojo.isMac ? "metaKey" : "ctrlKey";
+
+ dojo.isCopyKey = function(e){
+ // summary:
+ // Checks an event for the copy key (meta on Mac, and ctrl anywhere else)
+ // e: Event
+ // Event object to examine
+ return e[evtCopyKey]; // Boolean
+ };
+
+ // Public: decoding mouse buttons from events
+
+/*=====
+ dojo.mouseButtons = {
+ // LEFT: Number
+ // Numeric value of the left mouse button for the platform.
+ LEFT: 0,
+ // MIDDLE: Number
+ // Numeric value of the middle mouse button for the platform.
+ MIDDLE: 1,
+ // RIGHT: Number
+ // Numeric value of the right mouse button for the platform.
+ RIGHT: 2,
+
+ isButton: function(e, button){
+ // summary:
+ // Checks an event object for a pressed button
+ // e: Event
+ // Event object to examine
+ // button: Number
+ // The button value (example: dojo.mouseButton.LEFT)
+ return e.button == button; // Boolean
+ },
+ isLeft: function(e){
+ // summary:
+ // Checks an event object for the pressed left button
+ // e: Event
+ // Event object to examine
+ return e.button == 0; // Boolean
+ },
+ isMiddle: function(e){
+ // summary:
+ // Checks an event object for the pressed middle button
+ // e: Event
+ // Event object to examine
+ return e.button == 1; // Boolean
+ },
+ isRight: function(e){
+ // summary:
+ // Checks an event object for the pressed right button
+ // e: Event
+ // Event object to examine
+ return e.button == 2; // Boolean
+ }
+ };
+=====*/
+
+ if(dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)){
+ dojo.mouseButtons = {
+ LEFT: 1,
+ MIDDLE: 4,
+ RIGHT: 2,
+ // helper functions
+ isButton: function(e, button){ return e.button & button; },
+ isLeft: function(e){ return e.button & 1; },
+ isMiddle: function(e){ return e.button & 4; },
+ isRight: function(e){ return e.button & 2; }
+ };
+ }else{
+ dojo.mouseButtons = {
+ LEFT: 0,
+ MIDDLE: 1,
+ RIGHT: 2,
+ // helper functions
+ isButton: function(e, button){ return e.button == button; },
+ isLeft: function(e){ return e.button == 0; },
+ isMiddle: function(e){ return e.button == 1; },
+ isRight: function(e){ return e.button == 2; }
+ };
+ }
+
+ // IE event normalization
+ if(dojo.isIE){
+ var _trySetKeyCode = function(e, code){
+ try{
+ // squelch errors when keyCode is read-only
+ // (e.g. if keyCode is ctrl or shift)
+ return (e.keyCode = code);
+ }catch(e){
+ return 0;
+ }
+ };
+
+ // by default, use the standard listener
+ var iel = dojo._listener;
+ var listenersName = (dojo._ieListenersName = "_" + dojo._scopeName + "_listeners");
+ // dispatcher tracking property
+ if(!dojo.config._allow_leaks){
+ // custom listener that handles leak protection for DOM events
+ node_listener = iel = dojo._ie_listener = {
+ // support handler indirection: event handler functions are
+ // referenced here. Event dispatchers hold only indices.
+ handlers: [],
+ // add a listener to an object
+ add: function(/*Object*/ source, /*String*/ method, /*Function*/ listener){
+ source = source || dojo.global;
+ var f = source[method];
+ if(!f||!f[listenersName]){
+ var d = dojo._getIeDispatcher();
+ // original target function is special
+ d.target = f && (ieh.push(f) - 1);
+ // dispatcher holds a list of indices into handlers table
+ d[listenersName] = [];
+ // redirect source to dispatcher
+ f = source[method] = d;
+ }
+ return f[listenersName].push(ieh.push(listener) - 1) ; /*Handle*/
+ },
+ // remove a listener from an object
+ remove: function(/*Object*/ source, /*String*/ method, /*Handle*/ handle){
+ var f = (source||dojo.global)[method], l = f && f[listenersName];
+ if(f && l && handle--){
+ delete ieh[l[handle]];
+ delete l[handle];
+ }
+ }
+ };
+ // alias used above
+ var ieh = iel.handlers;
+ }
+
+ dojo.mixin(del, {
+ add: function(/*DOMNode*/ node, /*String*/ event, /*Function*/ fp){
+ if(!node){return;} // undefined
+ event = del._normalizeEventName(event);
+ if(event=="onkeypress"){
+ // we need to listen to onkeydown to synthesize
+ // keypress events that otherwise won't fire
+ // on IE
+ var kd = node.onkeydown;
+ if(!kd || !kd[listenersName] || !kd._stealthKeydownHandle){
+ var h = del.add(node, "onkeydown", del._stealthKeyDown);
+ kd = node.onkeydown;
+ kd._stealthKeydownHandle = h;
+ kd._stealthKeydownRefs = 1;
+ }else{
+ kd._stealthKeydownRefs++;
+ }
+ }
+ return iel.add(node, event, del._fixCallback(fp));
+ },
+ remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){
+ event = del._normalizeEventName(event);
+ iel.remove(node, event, handle);
+ if(event=="onkeypress"){
+ var kd = node.onkeydown;
+ if(--kd._stealthKeydownRefs <= 0){
+ iel.remove(node, "onkeydown", kd._stealthKeydownHandle);
+ delete kd._stealthKeydownHandle;
+ }
+ }
+ },
+ _normalizeEventName: function(/*String*/ eventName){
+ // Generally, eventName should be lower case, unless it is
+ // special somehow (e.g. a Mozilla event)
+ // ensure 'on'
+ return eventName.slice(0,2) != "on" ? "on" + eventName : eventName;
+ },
+ _nop: function(){},
+ _fixEvent: function(/*Event*/ evt, /*DOMNode*/ sender){
+ // summary:
+ // normalizes properties on the event object including event
+ // bubbling methods, keystroke normalization, and x/y positions
+ // evt:
+ // native event object
+ // sender:
+ // node to treat as "currentTarget"
+ if(!evt){
+ var w = sender && (sender.ownerDocument || sender.document || sender).parentWindow || window;
+ evt = w.event;
+ }
+ if(!evt){return(evt);}
+ evt.target = evt.srcElement;
+ evt.currentTarget = (sender || evt.srcElement);
+ evt.layerX = evt.offsetX;
+ evt.layerY = evt.offsetY;
+ // FIXME: scroll position query is duped from dojo.html to
+ // avoid dependency on that entire module. Now that HTML is in
+ // Base, we should convert back to something similar there.
+ var se = evt.srcElement, doc = (se && se.ownerDocument) || document;
+ // DO NOT replace the following to use dojo.body(), in IE, document.documentElement should be used
+ // here rather than document.body
+ var docBody = ((dojo.isIE < 6) || (doc["compatMode"] == "BackCompat")) ? doc.body : doc.documentElement;
+ var offset = dojo._getIeDocumentElementOffset();
+ evt.pageX = evt.clientX + dojo._fixIeBiDiScrollLeft(docBody.scrollLeft || 0) - offset.x;
+ evt.pageY = evt.clientY + (docBody.scrollTop || 0) - offset.y;
+ if(evt.type == "mouseover"){
+ evt.relatedTarget = evt.fromElement;
+ }
+ if(evt.type == "mouseout"){
+ evt.relatedTarget = evt.toElement;
+ }
+ if (dojo.isIE < 9 || dojo.isQuirks) {
+ evt.stopPropagation = del._stopPropagation;
+ evt.preventDefault = del._preventDefault;
+ }
+ return del._fixKeys(evt);
+ },
+ _fixKeys: function(evt){
+ switch(evt.type){
+ case "keypress":
+ var c = ("charCode" in evt ? evt.charCode : evt.keyCode);
+ if (c==10){
+ // CTRL-ENTER is CTRL-ASCII(10) on IE, but CTRL-ENTER on Mozilla
+ c=0;
+ evt.keyCode = 13;
+ }else if(c==13||c==27){
+ c=0; // Mozilla considers ENTER and ESC non-printable
+ }else if(c==3){
+ c=99; // Mozilla maps CTRL-BREAK to CTRL-c
+ }
+ // Mozilla sets keyCode to 0 when there is a charCode
+ // but that stops the event on IE.
+ evt.charCode = c;
+ del._setKeyChar(evt);
+ break;
+ }
+ return evt;
+ },
+ _stealthKeyDown: function(evt){
+ // IE doesn't fire keypress for most non-printable characters.
+ // other browsers do, we simulate it here.
+ var kp = evt.currentTarget.onkeypress;
+ // only works if kp exists and is a dispatcher
+ if(!kp || !kp[listenersName]){ return; }
+ // munge key/charCode
+ var k=evt.keyCode;
+ // These are Windows Virtual Key Codes
+ // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/VirtualKeyCodes.asp
+ var unprintable = (k!=13 || (dojo.isIE >= 9 && !dojo.isQuirks)) && k!=32 && k!=27 && (k<48||k>90) && (k<96||k>111) && (k<186||k>192) && (k<219||k>222);
+
+ // synthesize keypress for most unprintables and CTRL-keys
+ if(unprintable||evt.ctrlKey){
+ var c = unprintable ? 0 : k;
+ if(evt.ctrlKey){
+ if(k==3 || k==13){
+ return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively
+ }else if(c>95 && c<106){
+ c -= 48; // map CTRL-[numpad 0-9] to ASCII
+ }else if((!evt.shiftKey)&&(c>=65&&c<=90)){
+ c += 32; // map CTRL-[A-Z] to lowercase
+ }else{
+ c = del._punctMap[c] || c; // map other problematic CTRL combinations to ASCII
+ }
+ }
+ // simulate a keypress event
+ var faux = del._synthesizeEvent(evt, {type: 'keypress', faux: true, charCode: c});
+ kp.call(evt.currentTarget, faux);
+ if(dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)){
+ evt.cancelBubble = faux.cancelBubble;
+ }
+ evt.returnValue = faux.returnValue;
+ _trySetKeyCode(evt, faux.keyCode);
+ }
+ },
+ // Called in Event scope
+ _stopPropagation: function(){
+ this.cancelBubble = true;
+ },
+ _preventDefault: function(){
+ // Setting keyCode to 0 is the only way to prevent certain keypresses (namely
+ // ctrl-combinations that correspond to menu accelerator keys).
+ // Otoh, it prevents upstream listeners from getting this information
+ // Try to split the difference here by clobbering keyCode only for ctrl
+ // combinations. If you still need to access the key upstream, bubbledKeyCode is
+ // provided as a workaround.
+ this.bubbledKeyCode = this.keyCode;
+ if(this.ctrlKey){_trySetKeyCode(this, 0);}
+ this.returnValue = false;
+ }
+ });
+
+ // override stopEvent for IE
+ dojo.stopEvent = (dojo.isIE < 9 || dojo.isQuirks) ? function(evt){
+ evt = evt || window.event;
+ del._stopPropagation.call(evt);
+ del._preventDefault.call(evt);
+ } : dojo.stopEvent;
+ }
+
+ del._synthesizeEvent = function(evt, props){
+ var faux = dojo.mixin({}, evt, props);
+ del._setKeyChar(faux);
+ // FIXME: would prefer to use dojo.hitch: dojo.hitch(evt, evt.preventDefault);
+ // but it throws an error when preventDefault is invoked on Safari
+ // does Event.preventDefault not support "apply" on Safari?
+ faux.preventDefault = function(){ evt.preventDefault(); };
+ faux.stopPropagation = function(){ evt.stopPropagation(); };
+ return faux;
+ };
+
+ // Opera event normalization
+ if(dojo.isOpera){
+ dojo.mixin(del, {
+ _fixEvent: function(evt, sender){
+ switch(evt.type){
+ case "keypress":
+ var c = evt.which;
+ if(c==3){
+ c=99; // Mozilla maps CTRL-BREAK to CTRL-c
+ }
+ // can't trap some keys at all, like INSERT and DELETE
+ // there is no differentiating info between DELETE and ".", or INSERT and "-"
+ c = c<41 && !evt.shiftKey ? 0 : c;
+ if(evt.ctrlKey && !evt.shiftKey && c>=65 && c<=90){
+ // lowercase CTRL-[A-Z] keys
+ c += 32;
+ }
+ return del._synthesizeEvent(evt, { charCode: c });
+ }
+ return evt;
+ }
+ });
+ }
+
+ // Webkit event normalization
+ if(dojo.isWebKit){
+ del._add = del.add;
+ del._remove = del.remove;
+
+ dojo.mixin(del, {
+ add: function(/*DOMNode*/ node, /*String*/ event, /*Function*/ fp){
+ if(!node){return;} // undefined
+ var handle = del._add(node, event, fp);
+ if(del._normalizeEventName(event) == "keypress"){
+ // we need to listen to onkeydown to synthesize
+ // keypress events that otherwise won't fire
+ // in Safari 3.1+: https://lists.webkit.org/pipermail/webkit-dev/2007-December/002992.html
+ handle._stealthKeyDownHandle = del._add(node, "keydown", function(evt){
+ //A variation on the IE _stealthKeydown function
+ //Synthesize an onkeypress event, but only for unprintable characters.
+ var k=evt.keyCode;
+ // These are Windows Virtual Key Codes
+ // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/VirtualKeyCodes.asp
+ var unprintable = k!=13 && k!=32 && (k<48 || k>90) && (k<96 || k>111) && (k<186 || k>192) && (k<219 || k>222);
+ // synthesize keypress for most unprintables and CTRL-keys
+ if(unprintable || evt.ctrlKey){
+ var c = unprintable ? 0 : k;
+ if(evt.ctrlKey){
+ if(k==3 || k==13){
+ return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively
+ }else if(c>95 && c<106){
+ c -= 48; // map CTRL-[numpad 0-9] to ASCII
+ }else if(!evt.shiftKey && c>=65 && c<=90){
+ c += 32; // map CTRL-[A-Z] to lowercase
+ }else{
+ c = del._punctMap[c] || c; // map other problematic CTRL combinations to ASCII
+ }
+ }
+ // simulate a keypress event
+ var faux = del._synthesizeEvent(evt, {type: 'keypress', faux: true, charCode: c});
+ fp.call(evt.currentTarget, faux);
+ }
+ });
+ }
+ return handle; /*Handle*/
+ },
+
+ remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){
+ if(node){
+ if(handle._stealthKeyDownHandle){
+ del._remove(node, "keydown", handle._stealthKeyDownHandle);
+ }
+ del._remove(node, event, handle);
+ }
+ },
+ _fixEvent: function(evt, sender){
+ switch(evt.type){
+ case "keypress":
+ if(evt.faux){ return evt; }
+ var c = evt.charCode;
+ c = c>=32 ? c : 0;
+ return del._synthesizeEvent(evt, {charCode: c, faux: true});
+ }
+ return evt;
+ }
+ });
+ }
+ })();
+
+if(dojo.isIE){
+ // keep this out of the closure
+ // closing over 'iel' or 'ieh' b0rks leak prevention
+ // ls[i] is an index into the master handler array
+ dojo._ieDispatcher = function(args, sender){
+ var ap = Array.prototype,
+ h = dojo._ie_listener.handlers,
+ c = args.callee,
+ ls = c[dojo._ieListenersName],
+ t = h[c.target];
+ // return value comes from original target function
+ var r = t && t.apply(sender, args);
+ // make local copy of listener array so it's immutable during processing
+ var lls = [].concat(ls);
+ // invoke listeners after target function
+ for(var i in lls){
+ var f = h[lls[i]];
+ if(!(i in ap) && f){
+ f.apply(sender, args);
+ }
+ }
+ return r;
+ };
+ dojo._getIeDispatcher = function(){
+ // ensure the returned function closes over nothing ("new Function" apparently doesn't close)
+ return new Function(dojo._scopeName + "._ieDispatcher(arguments, this)"); // function
+ };
+ // keep this out of the closure to reduce RAM allocation
+ dojo._event_listener._fixCallback = function(fp){
+ var f = dojo._event_listener._fixEvent;
+ return function(e){ return fp.call(this, f(e, this)); };
+ };
+}
+
+}
+
+if(!dojo._hasResource["dojo._base.html"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.html"] = true;
+dojo.provide("dojo._base.html");
+
+
+
+// FIXME: need to add unit tests for all the semi-public methods
+
+try{
+ document.execCommand("BackgroundImageCache", false, true);
+}catch(e){
+ // sane browsers don't have cache "issues"
+}
+
+// =============================
+// DOM Functions
+// =============================
+
+/*=====
+dojo.byId = function(id, doc){
+ // summary:
+ // Returns DOM node with matching `id` attribute or `null`
+ // if not found. If `id` is a DomNode, this function is a no-op.
+ //
+ // id: String|DOMNode
+ // A string to match an HTML id attribute or a reference to a DOM Node
+ //
+ // doc: Document?
+ // Document to work in. Defaults to the current value of
+ // dojo.doc. Can be used to retrieve
+ // node references from other documents.
+ //
+ // example:
+ // Look up a node by ID:
+ // | var n = dojo.byId("foo");
+ //
+ // example:
+ // Check if a node exists, and use it.
+ // | var n = dojo.byId("bar");
+ // | if(n){ doStuff() ... }
+ //
+ // example:
+ // Allow string or DomNode references to be passed to a custom function:
+ // | var foo = function(nodeOrId){
+ // | nodeOrId = dojo.byId(nodeOrId);
+ // | // ... more stuff
+ // | }
+=====*/
+
+if(dojo.isIE){
+ dojo.byId = function(id, doc){
+ if(typeof id != "string"){
+ return id;
+ }
+ var _d = doc || dojo.doc, te = _d.getElementById(id);
+ // attributes.id.value is better than just id in case the
+ // user has a name=id inside a form
+ if(te && (te.attributes.id.value == id || te.id == id)){
+ return te;
+ }else{
+ var eles = _d.all[id];
+ if(!eles || eles.nodeName){
+ eles = [eles];
+ }
+ // if more than 1, choose first with the correct id
+ var i=0;
+ while((te=eles[i++])){
+ if((te.attributes && te.attributes.id && te.attributes.id.value == id)
+ || te.id == id){
+ return te;
+ }
+ }
+ }
+ };
+}else{
+ dojo.byId = function(id, doc){
+ // inline'd type check.
+ // be sure to return null per documentation, to match IE branch.
+ return ((typeof id == "string") ? (doc || dojo.doc).getElementById(id) : id) || null; // DomNode
+ };
+}
+/*=====
+};
+=====*/
+
+(function(){
+ var d = dojo;
+ var byId = d.byId;
+
+ var _destroyContainer = null,
+ _destroyDoc;
+ d.addOnWindowUnload(function(){
+ _destroyContainer = null; //prevent IE leak
+ });
+
+/*=====
+ dojo._destroyElement = function(node){
+ // summary:
+ // Existing alias for `dojo.destroy`. Deprecated, will be removed
+ // in 2.0
+ }
+=====*/
+ dojo._destroyElement = dojo.destroy = function(/*String|DomNode*/node){
+ // summary:
+ // Removes a node from its parent, clobbering it and all of its
+ // children.
+ //
+ // description:
+ // Removes a node from its parent, clobbering it and all of its
+ // children. Function only works with DomNodes, and returns nothing.
+ //
+ // node:
+ // A String ID or DomNode reference of the element to be destroyed
+ //
+ // example:
+ // Destroy a node byId:
+ // | dojo.destroy("someId");
+ //
+ // example:
+ // Destroy all nodes in a list by reference:
+ // | dojo.query(".someNode").forEach(dojo.destroy);
+
+ node = byId(node);
+ try{
+ var doc = node.ownerDocument;
+ // cannot use _destroyContainer.ownerDocument since this can throw an exception on IE
+ if(!_destroyContainer || _destroyDoc != doc){
+ _destroyContainer = doc.createElement("div");
+ _destroyDoc = doc;
+ }
+ _destroyContainer.appendChild(node.parentNode ? node.parentNode.removeChild(node) : node);
+ // NOTE: see http://trac.dojotoolkit.org/ticket/2931. This may be a bug and not a feature
+ _destroyContainer.innerHTML = "";
+ }catch(e){
+ /* squelch */
+ }
+ };
+
+ dojo.isDescendant = function(/*DomNode|String*/node, /*DomNode|String*/ancestor){
+ // summary:
+ // Returns true if node is a descendant of ancestor
+ // node: string id or node reference to test
+ // ancestor: string id or node reference of potential parent to test against
+ //
+ // example:
+ // Test is node id="bar" is a descendant of node id="foo"
+ // | if(dojo.isDescendant("bar", "foo")){ ... }
+ try{
+ node = byId(node);
+ ancestor = byId(ancestor);
+ while(node){
+ if(node == ancestor){
+ return true; // Boolean
+ }
+ node = node.parentNode;
+ }
+ }catch(e){ /* squelch, return false */ }
+ return false; // Boolean
+ };
+
+ dojo.setSelectable = function(/*DomNode|String*/node, /*Boolean*/selectable){
+ // summary:
+ // Enable or disable selection on a node
+ // node:
+ // id or reference to node
+ // selectable:
+ // state to put the node in. false indicates unselectable, true
+ // allows selection.
+ // example:
+ // Make the node id="bar" unselectable
+ // | dojo.setSelectable("bar");
+ // example:
+ // Make the node id="bar" selectable
+ // | dojo.setSelectable("bar", true);
+ node = byId(node);
+ if(d.isMozilla){
+ node.style.MozUserSelect = selectable ? "" : "none";
+ }else if(d.isKhtml || d.isWebKit){
+ node.style.KhtmlUserSelect = selectable ? "auto" : "none";
+ }else if(d.isIE){
+ var v = (node.unselectable = selectable ? "" : "on");
+ d.query("*", node).forEach("item.unselectable = '"+v+"'");
+ }
+ //FIXME: else? Opera?
+ };
+
+ var _insertBefore = function(/*DomNode*/node, /*DomNode*/ref){
+ var parent = ref.parentNode;
+ if(parent){
+ parent.insertBefore(node, ref);
+ }
+ };
+
+ var _insertAfter = function(/*DomNode*/node, /*DomNode*/ref){
+ // summary:
+ // Try to insert node after ref
+ var parent = ref.parentNode;
+ if(parent){
+ if(parent.lastChild == ref){
+ parent.appendChild(node);
+ }else{
+ parent.insertBefore(node, ref.nextSibling);
+ }
+ }
+ };
+
+ dojo.place = function(node, refNode, position){
+ // summary:
+ // Attempt to insert node into the DOM, choosing from various positioning options.
+ // Returns the first argument resolved to a DOM node.
+ //
+ // node: String|DomNode
+ // id or node reference, or HTML fragment starting with "<" to place relative to refNode
+ //
+ // refNode: String|DomNode
+ // id or node reference to use as basis for placement
+ //
+ // position: String|Number?
+ // string noting the position of node relative to refNode or a
+ // number indicating the location in the childNodes collection of refNode.
+ // Accepted string values are:
+ // | * before
+ // | * after
+ // | * replace
+ // | * only
+ // | * first
+ // | * last
+ // "first" and "last" indicate positions as children of refNode, "replace" replaces refNode,
+ // "only" replaces all children. position defaults to "last" if not specified
+ //
+ // returns: DomNode
+ // Returned values is the first argument resolved to a DOM node.
+ //
+ // .place() is also a method of `dojo.NodeList`, allowing `dojo.query` node lookups.
+ //
+ // example:
+ // Place a node by string id as the last child of another node by string id:
+ // | dojo.place("someNode", "anotherNode");
+ //
+ // example:
+ // Place a node by string id before another node by string id
+ // | dojo.place("someNode", "anotherNode", "before");
+ //
+ // example:
+ // Create a Node, and place it in the body element (last child):
+ // | dojo.place("<div></div>", dojo.body());
+ //
+ // example:
+ // Put a new LI as the first child of a list by id:
+ // | dojo.place("<li></li>", "someUl", "first");
+
+ refNode = byId(refNode);
+ if(typeof node == "string"){ // inline'd type check
+ node = /^\s*</.test(node) ? d._toDom(node, refNode.ownerDocument) : byId(node);
+ }
+ if(typeof position == "number"){ // inline'd type check
+ var cn = refNode.childNodes;
+ if(!cn.length || cn.length <= position){
+ refNode.appendChild(node);
+ }else{
+ _insertBefore(node, cn[position < 0 ? 0 : position]);
+ }
+ }else{
+ switch(position){
+ case "before":
+ _insertBefore(node, refNode);
+ break;
+ case "after":
+ _insertAfter(node, refNode);
+ break;
+ case "replace":
+ refNode.parentNode.replaceChild(node, refNode);
+ break;
+ case "only":
+ d.empty(refNode);
+ refNode.appendChild(node);
+ break;
+ case "first":
+ if(refNode.firstChild){
+ _insertBefore(node, refNode.firstChild);
+ break;
+ }
+ // else fallthrough...
+ default: // aka: last
+ refNode.appendChild(node);
+ }
+ }
+ return node; // DomNode
+ };
+
+ // Box functions will assume this model.
+ // On IE/Opera, BORDER_BOX will be set if the primary document is in quirks mode.
+ // Can be set to change behavior of box setters.
+
+ // can be either:
+ // "border-box"
+ // "content-box" (default)
+ dojo.boxModel = "content-box";
+
+ // We punt per-node box mode testing completely.
+ // If anybody cares, we can provide an additional (optional) unit
+ // that overrides existing code to include per-node box sensitivity.
+
+ // Opera documentation claims that Opera 9 uses border-box in BackCompat mode.
+ // but experiments (Opera 9.10.8679 on Windows Vista) indicate that it actually continues to use content-box.
+ // IIRC, earlier versions of Opera did in fact use border-box.
+ // Opera guys, this is really confusing. Opera being broken in quirks mode is not our fault.
+
+ if(d.isIE /*|| dojo.isOpera*/){
+ // client code may have to adjust if compatMode varies across iframes
+ d.boxModel = document.compatMode == "BackCompat" ? "border-box" : "content-box";
+ }
+
+ // =============================
+ // Style Functions
+ // =============================
+
+ // getComputedStyle drives most of the style code.
+ // Wherever possible, reuse the returned object.
+ //
+ // API functions below that need to access computed styles accept an
+ // optional computedStyle parameter.
+ // If this parameter is omitted, the functions will call getComputedStyle themselves.
+ // This way, calling code can access computedStyle once, and then pass the reference to
+ // multiple API functions.
+
+/*=====
+ dojo.getComputedStyle = function(node){
+ // summary:
+ // Returns a "computed style" object.
+ //
+ // description:
+ // Gets a "computed style" object which can be used to gather
+ // information about the current state of the rendered node.
+ //
+ // Note that this may behave differently on different browsers.
+ // Values may have different formats and value encodings across
+ // browsers.
+ //
+ // Note also that this method is expensive. Wherever possible,
+ // reuse the returned object.
+ //
+ // Use the dojo.style() method for more consistent (pixelized)
+ // return values.
+ //
+ // node: DOMNode
+ // A reference to a DOM node. Does NOT support taking an
+ // ID string for speed reasons.
+ // example:
+ // | dojo.getComputedStyle(dojo.byId('foo')).borderWidth;
+ //
+ // example:
+ // Reusing the returned object, avoiding multiple lookups:
+ // | var cs = dojo.getComputedStyle(dojo.byId("someNode"));
+ // | var w = cs.width, h = cs.height;
+ return; // CSS2Properties
+ }
+=====*/
+
+ // Although we normally eschew argument validation at this
+ // level, here we test argument 'node' for (duck)type,
+ // by testing nodeType, ecause 'document' is the 'parentNode' of 'body'
+ // it is frequently sent to this function even
+ // though it is not Element.
+ var gcs;
+ if(d.isWebKit){
+ gcs = function(/*DomNode*/node){
+ var s;
+ if(node.nodeType == 1){
+ var dv = node.ownerDocument.defaultView;
+ s = dv.getComputedStyle(node, null);
+ if(!s && node.style){
+ node.style.display = "";
+ s = dv.getComputedStyle(node, null);
+ }
+ }
+ return s || {};
+ };
+ }else if(d.isIE){
+ gcs = function(node){
+ // IE (as of 7) doesn't expose Element like sane browsers
+ return node.nodeType == 1 /* ELEMENT_NODE*/ ? node.currentStyle : {};
+ };
+ }else{
+ gcs = function(node){
+ return node.nodeType == 1 ?
+ node.ownerDocument.defaultView.getComputedStyle(node, null) : {};
+ };
+ }
+ dojo.getComputedStyle = gcs;
+
+ if(!d.isIE){
+ d._toPixelValue = function(element, value){
+ // style values can be floats, client code may want
+ // to round for integer pixels.
+ return parseFloat(value) || 0;
+ };
+ }else{
+ d._toPixelValue = function(element, avalue){
+ if(!avalue){ return 0; }
+ // on IE7, medium is usually 4 pixels
+ if(avalue == "medium"){ return 4; }
+ // style values can be floats, client code may
+ // want to round this value for integer pixels.
+ if(avalue.slice && avalue.slice(-2) == 'px'){ return parseFloat(avalue); }
+ with(element){
+ var sLeft = style.left;
+ var rsLeft = runtimeStyle.left;
+ runtimeStyle.left = currentStyle.left;
+ try{
+ // 'avalue' may be incompatible with style.left, which can cause IE to throw
+ // this has been observed for border widths using "thin", "medium", "thick" constants
+ // those particular constants could be trapped by a lookup
+ // but perhaps there are more
+ style.left = avalue;
+ avalue = style.pixelLeft;
+ }catch(e){
+ avalue = 0;
+ }
+ style.left = sLeft;
+ runtimeStyle.left = rsLeft;
+ }
+ return avalue;
+ };
+ }
+ var px = d._toPixelValue;
+
+ // FIXME: there opacity quirks on FF that we haven't ported over. Hrm.
+ /*=====
+ dojo._getOpacity = function(node){
+ // summary:
+ // Returns the current opacity of the passed node as a
+ // floating-point value between 0 and 1.
+ // node: DomNode
+ // a reference to a DOM node. Does NOT support taking an
+ // ID string for speed reasons.
+ // returns: Number between 0 and 1
+ return; // Number
+ }
+ =====*/
+
+ var astr = "DXImageTransform.Microsoft.Alpha";
+ var af = function(n, f){
+ try{
+ return n.filters.item(astr);
+ }catch(e){
+ return f ? {} : null;
+ }
+ };
+
+ dojo._getOpacity =
+ d.isIE < 9 ? function(node){
+ try{
+ return af(node).Opacity / 100; // Number
+ }catch(e){
+ return 1; // Number
+ }
+ } :
+ function(node){
+ return gcs(node).opacity;
+ };
+
+ /*=====
+ dojo._setOpacity = function(node, opacity){
+ // summary:
+ // set the opacity of the passed node portably. Returns the
+ // new opacity of the node.
+ // node: DOMNode
+ // a reference to a DOM node. Does NOT support taking an
+ // ID string for performance reasons.
+ // opacity: Number
+ // A Number between 0 and 1. 0 specifies transparent.
+ // returns: Number between 0 and 1
+ return; // Number
+ }
+ =====*/
+
+ dojo._setOpacity =
+ d.isIE < 9 ? function(/*DomNode*/node, /*Number*/opacity){
+ var ov = opacity * 100, opaque = opacity == 1;
+ node.style.zoom = opaque ? "" : 1;
+
+ if(!af(node)){
+ if(opaque){
+ return opacity;
+ }
+ node.style.filter += " progid:" + astr + "(Opacity=" + ov + ")";
+ }else{
+ af(node, 1).Opacity = ov;
+ }
+
+ // on IE7 Alpha(Filter opacity=100) makes text look fuzzy so disable it altogether (bug #2661),
+ //but still update the opacity value so we can get a correct reading if it is read later.
+ af(node, 1).Enabled = !opaque;
+
+ if(node.nodeName.toLowerCase() == "tr"){
+ d.query("> td", node).forEach(function(i){
+ d._setOpacity(i, opacity);
+ });
+ }
+ return opacity;
+ } :
+ function(node, opacity){
+ return node.style.opacity = opacity;
+ };
+
+ var _pixelNamesCache = {
+ left: true, top: true
+ };
+ var _pixelRegExp = /margin|padding|width|height|max|min|offset/; // |border
+ var _toStyleValue = function(node, type, value){
+ type = type.toLowerCase(); // FIXME: should we really be doing string case conversion here? Should we cache it? Need to profile!
+ if(d.isIE){
+ if(value == "auto"){
+ if(type == "height"){ return node.offsetHeight; }
+ if(type == "width"){ return node.offsetWidth; }
+ }
+ if(type == "fontweight"){
+ switch(value){
+ case 700: return "bold";
+ case 400:
+ default: return "normal";
+ }
+ }
+ }
+ if(!(type in _pixelNamesCache)){
+ _pixelNamesCache[type] = _pixelRegExp.test(type);
+ }
+ return _pixelNamesCache[type] ? px(node, value) : value;
+ };
+
+ var _floatStyle = d.isIE ? "styleFloat" : "cssFloat",
+ _floatAliases = { "cssFloat": _floatStyle, "styleFloat": _floatStyle, "float": _floatStyle }
+ ;
+
+ // public API
+
+ dojo.style = function( /*DomNode|String*/ node,
+ /*String?|Object?*/ style,
+ /*String?*/ value){
+ // summary:
+ // Accesses styles on a node. If 2 arguments are
+ // passed, acts as a getter. If 3 arguments are passed, acts
+ // as a setter.
+ // description:
+ // Getting the style value uses the computed style for the node, so the value
+ // will be a calculated value, not just the immediate node.style value.
+ // Also when getting values, use specific style names,
+ // like "borderBottomWidth" instead of "border" since compound values like
+ // "border" are not necessarily reflected as expected.
+ // If you want to get node dimensions, use `dojo.marginBox()`,
+ // `dojo.contentBox()` or `dojo.position()`.
+ // node:
+ // id or reference to node to get/set style for
+ // style:
+ // the style property to set in DOM-accessor format
+ // ("borderWidth", not "border-width") or an object with key/value
+ // pairs suitable for setting each property.
+ // value:
+ // If passed, sets value on the node for style, handling
+ // cross-browser concerns. When setting a pixel value,
+ // be sure to include "px" in the value. For instance, top: "200px".
+ // Otherwise, in some cases, some browsers will not apply the style.
+ // example:
+ // Passing only an ID or node returns the computed style object of
+ // the node:
+ // | dojo.style("thinger");
+ // example:
+ // Passing a node and a style property returns the current
+ // normalized, computed value for that property:
+ // | dojo.style("thinger", "opacity"); // 1 by default
+ //
+ // example:
+ // Passing a node, a style property, and a value changes the
+ // current display of the node and returns the new computed value
+ // | dojo.style("thinger", "opacity", 0.5); // == 0.5
+ //
+ // example:
+ // Passing a node, an object-style style property sets each of the values in turn and returns the computed style object of the node:
+ // | dojo.style("thinger", {
+ // | "opacity": 0.5,
+ // | "border": "3px solid black",
+ // | "height": "300px"
+ // | });
+ //
+ // example:
+ // When the CSS style property is hyphenated, the JavaScript property is camelCased.
+ // font-size becomes fontSize, and so on.
+ // | dojo.style("thinger",{
+ // | fontSize:"14pt",
+ // | letterSpacing:"1.2em"
+ // | });
+ //
+ // example:
+ // dojo.NodeList implements .style() using the same syntax, omitting the "node" parameter, calling
+ // dojo.style() on every element of the list. See: `dojo.query()` and `dojo.NodeList()`
+ // | dojo.query(".someClassName").style("visibility","hidden");
+ // | // or
+ // | dojo.query("#baz > div").style({
+ // | opacity:0.75,
+ // | fontSize:"13pt"
+ // | });
+
+ var n = byId(node), args = arguments.length, op = (style == "opacity");
+ style = _floatAliases[style] || style;
+ if(args == 3){
+ return op ? d._setOpacity(n, value) : n.style[style] = value; /*Number*/
+ }
+ if(args == 2 && op){
+ return d._getOpacity(n);
+ }
+ var s = gcs(n);
+ if(args == 2 && typeof style != "string"){ // inline'd type check
+ for(var x in style){
+ d.style(node, x, style[x]);
+ }
+ return s;
+ }
+ return (args == 1) ? s : _toStyleValue(n, style, s[style] || n.style[style]); /* CSS2Properties||String||Number */
+ };
+
+ // =============================
+ // Box Functions
+ // =============================
+
+ dojo._getPadExtents = function(/*DomNode*/n, /*Object*/computedStyle){
+ // summary:
+ // Returns object with special values specifically useful for node
+ // fitting.
+ // description:
+ // Returns an object with `w`, `h`, `l`, `t` properties:
+ // | l/t = left/top padding (respectively)
+ // | w = the total of the left and right padding
+ // | h = the total of the top and bottom padding
+ // If 'node' has position, l/t forms the origin for child nodes.
+ // The w/h are used for calculating boxes.
+ // Normally application code will not need to invoke this
+ // directly, and will use the ...box... functions instead.
+ var
+ s = computedStyle||gcs(n),
+ l = px(n, s.paddingLeft),
+ t = px(n, s.paddingTop);
+ return {
+ l: l,
+ t: t,
+ w: l+px(n, s.paddingRight),
+ h: t+px(n, s.paddingBottom)
+ };
+ };
+
+ dojo._getBorderExtents = function(/*DomNode*/n, /*Object*/computedStyle){
+ // summary:
+ // returns an object with properties useful for noting the border
+ // dimensions.
+ // description:
+ // * l/t = the sum of left/top border (respectively)
+ // * w = the sum of the left and right border
+ // * h = the sum of the top and bottom border
+ //
+ // The w/h are used for calculating boxes.
+ // Normally application code will not need to invoke this
+ // directly, and will use the ...box... functions instead.
+ var
+ ne = "none",
+ s = computedStyle||gcs(n),
+ bl = (s.borderLeftStyle != ne ? px(n, s.borderLeftWidth) : 0),
+ bt = (s.borderTopStyle != ne ? px(n, s.borderTopWidth) : 0);
+ return {
+ l: bl,
+ t: bt,
+ w: bl + (s.borderRightStyle!=ne ? px(n, s.borderRightWidth) : 0),
+ h: bt + (s.borderBottomStyle!=ne ? px(n, s.borderBottomWidth) : 0)
+ };
+ };
+
+ dojo._getPadBorderExtents = function(/*DomNode*/n, /*Object*/computedStyle){
+ // summary:
+ // Returns object with properties useful for box fitting with
+ // regards to padding.
+ // description:
+ // * l/t = the sum of left/top padding and left/top border (respectively)
+ // * w = the sum of the left and right padding and border
+ // * h = the sum of the top and bottom padding and border
+ //
+ // The w/h are used for calculating boxes.
+ // Normally application code will not need to invoke this
+ // directly, and will use the ...box... functions instead.
+ var
+ s = computedStyle||gcs(n),
+ p = d._getPadExtents(n, s),
+ b = d._getBorderExtents(n, s);
+ return {
+ l: p.l + b.l,
+ t: p.t + b.t,
+ w: p.w + b.w,
+ h: p.h + b.h
+ };
+ };
+
+ dojo._getMarginExtents = function(n, computedStyle){
+ // summary:
+ // returns object with properties useful for box fitting with
+ // regards to box margins (i.e., the outer-box).
+ //
+ // * l/t = marginLeft, marginTop, respectively
+ // * w = total width, margin inclusive
+ // * h = total height, margin inclusive
+ //
+ // The w/h are used for calculating boxes.
+ // Normally application code will not need to invoke this
+ // directly, and will use the ...box... functions instead.
+ var
+ s = computedStyle||gcs(n),
+ l = px(n, s.marginLeft),
+ t = px(n, s.marginTop),
+ r = px(n, s.marginRight),
+ b = px(n, s.marginBottom);
+ if(d.isWebKit && (s.position != "absolute")){
+ // FIXME: Safari's version of the computed right margin
+ // is the space between our right edge and the right edge
+ // of our offsetParent.
+ // What we are looking for is the actual margin value as
+ // determined by CSS.
+ // Hack solution is to assume left/right margins are the same.
+ r = l;
+ }
+ return {
+ l: l,
+ t: t,
+ w: l+r,
+ h: t+b
+ };
+ };
+
+ // Box getters work in any box context because offsetWidth/clientWidth
+ // are invariant wrt box context
+ //
+ // They do *not* work for display: inline objects that have padding styles
+ // because the user agent ignores padding (it's bogus styling in any case)
+ //
+ // Be careful with IMGs because they are inline or block depending on
+ // browser and browser mode.
+
+ // Although it would be easier to read, there are not separate versions of
+ // _getMarginBox for each browser because:
+ // 1. the branching is not expensive
+ // 2. factoring the shared code wastes cycles (function call overhead)
+ // 3. duplicating the shared code wastes bytes
+
+ dojo._getMarginBox = function(/*DomNode*/node, /*Object*/computedStyle){
+ // summary:
+ // returns an object that encodes the width, height, left and top
+ // positions of the node's margin box.
+ var s = computedStyle || gcs(node), me = d._getMarginExtents(node, s);
+ var l = node.offsetLeft - me.l, t = node.offsetTop - me.t, p = node.parentNode;
+ if(d.isMoz){
+ // Mozilla:
+ // If offsetParent has a computed overflow != visible, the offsetLeft is decreased
+ // by the parent's border.
+ // We don't want to compute the parent's style, so instead we examine node's
+ // computed left/top which is more stable.
+ var sl = parseFloat(s.left), st = parseFloat(s.top);
+ if(!isNaN(sl) && !isNaN(st)){
+ l = sl, t = st;
+ }else{
+ // If child's computed left/top are not parseable as a number (e.g. "auto"), we
+ // have no choice but to examine the parent's computed style.
+ if(p && p.style){
+ var pcs = gcs(p);
+ if(pcs.overflow != "visible"){
+ var be = d._getBorderExtents(p, pcs);
+ l += be.l, t += be.t;
+ }
+ }
+ }
+ }else if(d.isOpera || (d.isIE > 7 && !d.isQuirks)){
+ // On Opera and IE 8, offsetLeft/Top includes the parent's border
+ if(p){
+ be = d._getBorderExtents(p);
+ l -= be.l;
+ t -= be.t;
+ }
+ }
+ return {
+ l: l,
+ t: t,
+ w: node.offsetWidth + me.w,
+ h: node.offsetHeight + me.h
+ };
+ }
+
+ dojo._getMarginSize = function(/*DomNode*/node, /*Object*/computedStyle){
+ // summary:
+ // returns an object that encodes the width and height of
+ // the node's margin box
+ node = byId(node);
+ var me = d._getMarginExtents(node, computedStyle || gcs(node));
+
+ var size = node.getBoundingClientRect();
+ return {
+ w: (size.right - size.left) + me.w,
+ h: (size.bottom - size.top) + me.h
+ }
+ }
+
+ dojo._getContentBox = function(node, computedStyle){
+ // summary:
+ // Returns an object that encodes the width, height, left and top
+ // positions of the node's content box, irrespective of the
+ // current box model.
+
+ // clientWidth/Height are important since the automatically account for scrollbars
+ // fallback to offsetWidth/Height for special cases (see #3378)
+ var s = computedStyle || gcs(node),
+ pe = d._getPadExtents(node, s),
+ be = d._getBorderExtents(node, s),
+ w = node.clientWidth,
+ h
+ ;
+ if(!w){
+ w = node.offsetWidth, h = node.offsetHeight;
+ }else{
+ h = node.clientHeight, be.w = be.h = 0;
+ }
+ // On Opera, offsetLeft includes the parent's border
+ if(d.isOpera){ pe.l += be.l; pe.t += be.t; };
+ return {
+ l: pe.l,
+ t: pe.t,
+ w: w - pe.w - be.w,
+ h: h - pe.h - be.h
+ };
+ };
+
+ dojo._getBorderBox = function(node, computedStyle){
+ var s = computedStyle || gcs(node),
+ pe = d._getPadExtents(node, s),
+ cb = d._getContentBox(node, s)
+ ;
+ return {
+ l: cb.l - pe.l,
+ t: cb.t - pe.t,
+ w: cb.w + pe.w,
+ h: cb.h + pe.h
+ };
+ };
+
+ // Box setters depend on box context because interpretation of width/height styles
+ // vary wrt box context.
+ //
+ // The value of dojo.boxModel is used to determine box context.
+ // dojo.boxModel can be set directly to change behavior.
+ //
+ // Beware of display: inline objects that have padding styles
+ // because the user agent ignores padding (it's a bogus setup anyway)
+ //
+ // Be careful with IMGs because they are inline or block depending on
+ // browser and browser mode.
+ //
+ // Elements other than DIV may have special quirks, like built-in
+ // margins or padding, or values not detectable via computedStyle.
+ // In particular, margins on TABLE do not seems to appear
+ // at all in computedStyle on Mozilla.
+
+ dojo._setBox = function(/*DomNode*/node, /*Number?*/l, /*Number?*/t, /*Number?*/w, /*Number?*/h, /*String?*/u){
+ // summary:
+ // sets width/height/left/top in the current (native) box-model
+ // dimentions. Uses the unit passed in u.
+ // node:
+ // DOM Node reference. Id string not supported for performance
+ // reasons.
+ // l:
+ // left offset from parent.
+ // t:
+ // top offset from parent.
+ // w:
+ // width in current box model.
+ // h:
+ // width in current box model.
+ // u:
+ // unit measure to use for other measures. Defaults to "px".
+ u = u || "px";
+ var s = node.style;
+ if(!isNaN(l)){ s.left = l + u; }
+ if(!isNaN(t)){ s.top = t + u; }
+ if(w >= 0){ s.width = w + u; }
+ if(h >= 0){ s.height = h + u; }
+ };
+
+ dojo._isButtonTag = function(/*DomNode*/node) {
+ // summary:
+ // True if the node is BUTTON or INPUT.type="button".
+ return node.tagName == "BUTTON"
+ || node.tagName=="INPUT" && (node.getAttribute("type")||'').toUpperCase() == "BUTTON"; // boolean
+ };
+
+ dojo._usesBorderBox = function(/*DomNode*/node){
+ // summary:
+ // True if the node uses border-box layout.
+
+ // We could test the computed style of node to see if a particular box
+ // has been specified, but there are details and we choose not to bother.
+
+ // TABLE and BUTTON (and INPUT type=button) are always border-box by default.
+ // If you have assigned a different box to either one via CSS then
+ // box functions will break.
+
+ var n = node.tagName;
+ return d.boxModel=="border-box" || n=="TABLE" || d._isButtonTag(node); // boolean
+ };
+
+ dojo._setContentSize = function(/*DomNode*/node, /*Number*/widthPx, /*Number*/heightPx, /*Object*/computedStyle){
+ // summary:
+ // Sets the size of the node's contents, irrespective of margins,
+ // padding, or borders.
+ if(d._usesBorderBox(node)){
+ var pb = d._getPadBorderExtents(node, computedStyle);
+ if(widthPx >= 0){ widthPx += pb.w; }
+ if(heightPx >= 0){ heightPx += pb.h; }
+ }
+ d._setBox(node, NaN, NaN, widthPx, heightPx);
+ };
+
+ dojo._setMarginBox = function(/*DomNode*/node, /*Number?*/leftPx, /*Number?*/topPx,
+ /*Number?*/widthPx, /*Number?*/heightPx,
+ /*Object*/computedStyle){
+ // summary:
+ // sets the size of the node's margin box and placement
+ // (left/top), irrespective of box model. Think of it as a
+ // passthrough to dojo._setBox that handles box-model vagaries for
+ // you.
+
+ var s = computedStyle || gcs(node),
+ // Some elements have special padding, margin, and box-model settings.
+ // To use box functions you may need to set padding, margin explicitly.
+ // Controlling box-model is harder, in a pinch you might set dojo.boxModel.
+ bb = d._usesBorderBox(node),
+ pb = bb ? _nilExtents : d._getPadBorderExtents(node, s)
+ ;
+ if(d.isWebKit){
+ // on Safari (3.1.2), button nodes with no explicit size have a default margin
+ // setting an explicit size eliminates the margin.
+ // We have to swizzle the width to get correct margin reading.
+ if(d._isButtonTag(node)){
+ var ns = node.style;
+ if(widthPx >= 0 && !ns.width) { ns.width = "4px"; }
+ if(heightPx >= 0 && !ns.height) { ns.height = "4px"; }
+ }
+ }
+ var mb = d._getMarginExtents(node, s);
+ if(widthPx >= 0){ widthPx = Math.max(widthPx - pb.w - mb.w, 0); }
+ if(heightPx >= 0){ heightPx = Math.max(heightPx - pb.h - mb.h, 0); }
+ d._setBox(node, leftPx, topPx, widthPx, heightPx);
+ };
+
+ var _nilExtents = { l:0, t:0, w:0, h:0 };
+
+ // public API
+
+ dojo.marginBox = function(/*DomNode|String*/node, /*Object?*/box){
+ // summary:
+ // Getter/setter for the margin-box of node.
+ // description:
+ // Getter/setter for the margin-box of node.
+ // Returns an object in the expected format of box (regardless
+ // if box is passed). The object might look like:
+ // `{ l: 50, t: 200, w: 300: h: 150 }`
+ // for a node offset from its parent 50px to the left, 200px from
+ // the top with a margin width of 300px and a margin-height of
+ // 150px.
+ // node:
+ // id or reference to DOM Node to get/set box for
+ // box:
+ // If passed, denotes that dojo.marginBox() should
+ // update/set the margin box for node. Box is an object in the
+ // above format. All properties are optional if passed.
+ // example:
+ // Retrieve the marginbox of a passed node
+ // | var box = dojo.marginBox("someNodeId");
+ // | console.dir(box);
+ //
+ // example:
+ // Set a node's marginbox to the size of another node
+ // | var box = dojo.marginBox("someNodeId");
+ // | dojo.marginBox("someOtherNode", box);
+
+ var n = byId(node), s = gcs(n), b = box;
+ return !b ? d._getMarginBox(n, s) : d._setMarginBox(n, b.l, b.t, b.w, b.h, s); // Object
+ };
+
+ dojo.contentBox = function(/*DomNode|String*/node, /*Object?*/box){
+ // summary:
+ // Getter/setter for the content-box of node.
+ // description:
+ // Returns an object in the expected format of box (regardless if box is passed).
+ // The object might look like:
+ // `{ l: 50, t: 200, w: 300: h: 150 }`
+ // for a node offset from its parent 50px to the left, 200px from
+ // the top with a content width of 300px and a content-height of
+ // 150px. Note that the content box may have a much larger border
+ // or margin box, depending on the box model currently in use and
+ // CSS values set/inherited for node.
+ // While the getter will return top and left values, the
+ // setter only accepts setting the width and height.
+ // node:
+ // id or reference to DOM Node to get/set box for
+ // box:
+ // If passed, denotes that dojo.contentBox() should
+ // update/set the content box for node. Box is an object in the
+ // above format, but only w (width) and h (height) are supported.
+ // All properties are optional if passed.
+ var n = byId(node), s = gcs(n), b = box;
+ return !b ? d._getContentBox(n, s) : d._setContentSize(n, b.w, b.h, s); // Object
+ };
+
+ // =============================
+ // Positioning
+ // =============================
+
+ var _sumAncestorProperties = function(node, prop){
+ if(!(node = (node||0).parentNode)){return 0;}
+ var val, retVal = 0, _b = d.body();
+ while(node && node.style){
+ if(gcs(node).position == "fixed"){
+ return 0;
+ }
+ val = node[prop];
+ if(val){
+ retVal += val - 0;
+ // opera and khtml #body & #html has the same values, we only
+ // need one value
+ if(node == _b){ break; }
+ }
+ node = node.parentNode;
+ }
+ return retVal; // integer
+ };
+
+ dojo._docScroll = function(){
+ var n = d.global;
+ return "pageXOffset" in n
+ ? { x:n.pageXOffset, y:n.pageYOffset }
+ : (n = d.isQuirks? d.doc.body : d.doc.documentElement, { x:d._fixIeBiDiScrollLeft(n.scrollLeft || 0), y:n.scrollTop || 0 });
+ };
+
+ dojo._isBodyLtr = function(){
+ return "_bodyLtr" in d? d._bodyLtr :
+ d._bodyLtr = (d.body().dir || d.doc.documentElement.dir || "ltr").toLowerCase() == "ltr"; // Boolean
+ };
+
+ dojo._getIeDocumentElementOffset = function(){
+ // summary:
+ // returns the offset in x and y from the document body to the
+ // visual edge of the page
+ // description:
+ // The following values in IE contain an offset:
+ // | event.clientX
+ // | event.clientY
+ // | node.getBoundingClientRect().left
+ // | node.getBoundingClientRect().top
+ // But other position related values do not contain this offset,
+ // such as node.offsetLeft, node.offsetTop, node.style.left and
+ // node.style.top. The offset is always (2, 2) in LTR direction.
+ // When the body is in RTL direction, the offset counts the width
+ // of left scroll bar's width. This function computes the actual
+ // offset.
+
+ //NOTE: assumes we're being called in an IE browser
+
+ var de = d.doc.documentElement; // only deal with HTML element here, _abs handles body/quirks
+
+ if(d.isIE < 8){
+ var r = de.getBoundingClientRect(); // works well for IE6+
+ //console.debug('rect left,top = ' + r.left+','+r.top + ', html client left/top = ' + de.clientLeft+','+de.clientTop + ', rtl = ' + (!d._isBodyLtr()) + ', quirks = ' + d.isQuirks);
+ var l = r.left,
+ t = r.top;
+ if(d.isIE < 7){
+ l += de.clientLeft; // scrollbar size in strict/RTL, or,
+ t += de.clientTop; // HTML border size in strict
+ }
+ return {
+ x: l < 0? 0 : l, // FRAME element border size can lead to inaccurate negative values
+ y: t < 0? 0 : t
+ };
+ }else{
+ return {
+ x: 0,
+ y: 0
+ };
+ }
+
+ };
+
+ dojo._fixIeBiDiScrollLeft = function(/*Integer*/ scrollLeft){
+ // In RTL direction, scrollLeft should be a negative value, but IE
+ // returns a positive one. All codes using documentElement.scrollLeft
+ // must call this function to fix this error, otherwise the position
+ // will offset to right when there is a horizontal scrollbar.
+
+ var ie = d.isIE;
+ if(ie && !d._isBodyLtr()){
+ var qk = d.isQuirks,
+ de = qk ? d.doc.body : d.doc.documentElement;
+ if(ie == 6 && !qk && d.global.frameElement && de.scrollHeight > de.clientHeight){
+ scrollLeft += de.clientLeft; // workaround ie6+strict+rtl+iframe+vertical-scrollbar bug where clientWidth is too small by clientLeft pixels
+ }
+ return (ie < 8 || qk) ? (scrollLeft + de.clientWidth - de.scrollWidth) : -scrollLeft; // Integer
+ }
+ return scrollLeft; // Integer
+ };
+
+ // FIXME: need a setter for coords or a moveTo!!
+ dojo._abs = dojo.position = function(/*DomNode*/node, /*Boolean?*/includeScroll){
+ // summary:
+ // Gets the position and size of the passed element relative to
+ // the viewport (if includeScroll==false), or relative to the
+ // document root (if includeScroll==true).
+ //
+ // description:
+ // Returns an object of the form:
+ // { x: 100, y: 300, w: 20, h: 15 }
+ // If includeScroll==true, the x and y values will include any
+ // document offsets that may affect the position relative to the
+ // viewport.
+ // Uses the border-box model (inclusive of border and padding but
+ // not margin). Does not act as a setter.
+
+ node = byId(node);
+ var db = d.body(),
+ dh = db.parentNode,
+ ret = node.getBoundingClientRect();
+ ret = { x: ret.left, y: ret.top, w: ret.right - ret.left, h: ret.bottom - ret.top };
+ if(d.isIE){
+ // On IE there's a 2px offset that we need to adjust for, see _getIeDocumentElementOffset()
+ var offset = d._getIeDocumentElementOffset();
+
+ // fixes the position in IE, quirks mode
+ ret.x -= offset.x + (d.isQuirks ? db.clientLeft+db.offsetLeft : 0);
+ ret.y -= offset.y + (d.isQuirks ? db.clientTop+db.offsetTop : 0);
+ }else if(d.isFF == 3){
+ // In FF3 you have to subtract the document element margins.
+ // Fixed in FF3.5 though.
+ var cs = gcs(dh);
+ ret.x -= px(dh, cs.marginLeft) + px(dh, cs.borderLeftWidth);
+ ret.y -= px(dh, cs.marginTop) + px(dh, cs.borderTopWidth);
+ }
+ // account for document scrolling
+ if(includeScroll){
+ var scroll = d._docScroll();
+ ret.x += scroll.x;
+ ret.y += scroll.y;
+ }
+
+ return ret; // Object
+ };
+
+ dojo.coords = function(/*DomNode|String*/node, /*Boolean?*/includeScroll){
+ // summary:
+ // Deprecated: Use position() for border-box x/y/w/h
+ // or marginBox() for margin-box w/h/l/t.
+ // Returns an object representing a node's size and position.
+ //
+ // description:
+ // Returns an object that measures margin-box (w)idth/(h)eight
+ // and absolute position x/y of the border-box. Also returned
+ // is computed (l)eft and (t)op values in pixels from the
+ // node's offsetParent as returned from marginBox().
+ // Return value will be in the form:
+ //| { l: 50, t: 200, w: 300: h: 150, x: 100, y: 300 }
+ // Does not act as a setter. If includeScroll is passed, the x and
+ // y params are affected as one would expect in dojo.position().
+ var n = byId(node), s = gcs(n), mb = d._getMarginBox(n, s);
+ var abs = d.position(n, includeScroll);
+ mb.x = abs.x;
+ mb.y = abs.y;
+ return mb;
+ };
+
+ // =============================
+ // Element attribute Functions
+ // =============================
+
+ // dojo.attr() should conform to http://www.w3.org/TR/DOM-Level-2-Core/
+
+ var _propNames = {
+ // properties renamed to avoid clashes with reserved words
+ "class": "className",
+ "for": "htmlFor",
+ // properties written as camelCase
+ tabindex: "tabIndex",
+ readonly: "readOnly",
+ colspan: "colSpan",
+ frameborder: "frameBorder",
+ rowspan: "rowSpan",
+ valuetype: "valueType"
+ },
+ _attrNames = {
+ // original attribute names
+ classname: "class",
+ htmlfor: "for",
+ // for IE
+ tabindex: "tabIndex",
+ readonly: "readOnly"
+ },
+ _forcePropNames = {
+ innerHTML: 1,
+ className: 1,
+ htmlFor: d.isIE,
+ value: 1
+ };
+
+ var _fixAttrName = function(/*String*/ name){
+ return _attrNames[name.toLowerCase()] || name;
+ };
+
+ var _hasAttr = function(node, name){
+ var attr = node.getAttributeNode && node.getAttributeNode(name);
+ return attr && attr.specified; // Boolean
+ };
+
+ // There is a difference in the presence of certain properties and their default values
+ // between browsers. For example, on IE "disabled" is present on all elements,
+ // but it is value is "false"; "tabIndex" of <div> returns 0 by default on IE, yet other browsers
+ // can return -1.
+
+ dojo.hasAttr = function(/*DomNode|String*/node, /*String*/name){
+ // summary:
+ // Returns true if the requested attribute is specified on the
+ // given element, and false otherwise.
+ // node:
+ // id or reference to the element to check
+ // name:
+ // the name of the attribute
+ // returns:
+ // true if the requested attribute is specified on the
+ // given element, and false otherwise
+ var lc = name.toLowerCase();
+ return _forcePropNames[_propNames[lc] || name] || _hasAttr(byId(node), _attrNames[lc] || name); // Boolean
+ };
+
+ var _evtHdlrMap = {}, _ctr = 0,
+ _attrId = dojo._scopeName + "attrid",
+ // the next dictionary lists elements with read-only innerHTML on IE
+ _roInnerHtml = {col: 1, colgroup: 1,
+ // frameset: 1, head: 1, html: 1, style: 1,
+ table: 1, tbody: 1, tfoot: 1, thead: 1, tr: 1, title: 1};
+
+ dojo.attr = function(/*DomNode|String*/node, /*String|Object*/name, /*String?*/value){
+ // summary:
+ // Gets or sets an attribute on an HTML element.
+ // description:
+ // Handles normalized getting and setting of attributes on DOM
+ // Nodes. If 2 arguments are passed, and a the second argumnt is a
+ // string, acts as a getter.
+ //
+ // If a third argument is passed, or if the second argument is a
+ // map of attributes, acts as a setter.
+ //
+ // When passing functions as values, note that they will not be
+ // directly assigned to slots on the node, but rather the default
+ // behavior will be removed and the new behavior will be added
+ // using `dojo.connect()`, meaning that event handler properties
+ // will be normalized and that some caveats with regards to
+ // non-standard behaviors for onsubmit apply. Namely that you
+ // should cancel form submission using `dojo.stopEvent()` on the
+ // passed event object instead of returning a boolean value from
+ // the handler itself.
+ // node:
+ // id or reference to the element to get or set the attribute on
+ // name:
+ // the name of the attribute to get or set.
+ // value:
+ // The value to set for the attribute
+ // returns:
+ // when used as a getter, the value of the requested attribute
+ // or null if that attribute does not have a specified or
+ // default value;
+ //
+ // when used as a setter, the DOM node
+ //
+ // example:
+ // | // get the current value of the "foo" attribute on a node
+ // | dojo.attr(dojo.byId("nodeId"), "foo");
+ // | // or we can just pass the id:
+ // | dojo.attr("nodeId", "foo");
+ //
+ // example:
+ // | // use attr() to set the tab index
+ // | dojo.attr("nodeId", "tabIndex", 3);
+ // |
+ //
+ // example:
+ // Set multiple values at once, including event handlers:
+ // | dojo.attr("formId", {
+ // | "foo": "bar",
+ // | "tabIndex": -1,
+ // | "method": "POST",
+ // | "onsubmit": function(e){
+ // | // stop submitting the form. Note that the IE behavior
+ // | // of returning true or false will have no effect here
+ // | // since our handler is connect()ed to the built-in
+ // | // onsubmit behavior and so we need to use
+ // | // dojo.stopEvent() to ensure that the submission
+ // | // doesn't proceed.
+ // | dojo.stopEvent(e);
+ // |
+ // | // submit the form with Ajax
+ // | dojo.xhrPost({ form: "formId" });
+ // | }
+ // | });
+ //
+ // example:
+ // Style is s special case: Only set with an object hash of styles
+ // | dojo.attr("someNode",{
+ // | id:"bar",
+ // | style:{
+ // | width:"200px", height:"100px", color:"#000"
+ // | }
+ // | });
+ //
+ // example:
+ // Again, only set style as an object hash of styles:
+ // | var obj = { color:"#fff", backgroundColor:"#000" };
+ // | dojo.attr("someNode", "style", obj);
+ // |
+ // | // though shorter to use `dojo.style()` in this case:
+ // | dojo.style("someNode", obj);
+
+ node = byId(node);
+ var args = arguments.length, prop;
+ if(args == 2 && typeof name != "string"){ // inline'd type check
+ // the object form of setter: the 2nd argument is a dictionary
+ for(var x in name){
+ d.attr(node, x, name[x]);
+ }
+ return node; // DomNode
+ }
+ var lc = name.toLowerCase(),
+ propName = _propNames[lc] || name,
+ forceProp = _forcePropNames[propName],
+ attrName = _attrNames[lc] || name;
+ if(args == 3){
+ // setter
+ do{
+ if(propName == "style" && typeof value != "string"){ // inline'd type check
+ // special case: setting a style
+ d.style(node, value);
+ break;
+ }
+ if(propName == "innerHTML"){
+ // special case: assigning HTML
+ if(d.isIE && node.tagName.toLowerCase() in _roInnerHtml){
+ d.empty(node);
+ node.appendChild(d._toDom(value, node.ownerDocument));
+ }else{
+ node[propName] = value;
+ }
+ break;
+ }
+ if(d.isFunction(value)){
+ // special case: assigning an event handler
+ // clobber if we can
+ var attrId = d.attr(node, _attrId);
+ if(!attrId){
+ attrId = _ctr++;
+ d.attr(node, _attrId, attrId);
+ }
+ if(!_evtHdlrMap[attrId]){
+ _evtHdlrMap[attrId] = {};
+ }
+ var h = _evtHdlrMap[attrId][propName];
+ if(h){
+ d.disconnect(h);
+ }else{
+ try{
+ delete node[propName];
+ }catch(e){}
+ }
+ // ensure that event objects are normalized, etc.
+ _evtHdlrMap[attrId][propName] = d.connect(node, propName, value);
+ break;
+ }
+ if(forceProp || typeof value == "boolean"){
+ // special case: forcing assignment to the property
+ // special case: setting boolean to a property instead of attribute
+ node[propName] = value;
+ break;
+ }
+ // node's attribute
+ node.setAttribute(attrName, value);
+ }while(false);
+ return node; // DomNode
+ }
+ // getter
+ // should we access this attribute via a property or
+ // via getAttribute()?
+ value = node[propName];
+ if(forceProp && typeof value != "undefined"){
+ // node's property
+ return value; // Anything
+ }
+ if(propName != "href" && (typeof value == "boolean" || d.isFunction(value))){
+ // node's property
+ return value; // Anything
+ }
+ // node's attribute
+ // we need _hasAttr() here to guard against IE returning a default value
+ return _hasAttr(node, attrName) ? node.getAttribute(attrName) : null; // Anything
+ };
+
+ dojo.removeAttr = function(/*DomNode|String*/ node, /*String*/ name){
+ // summary:
+ // Removes an attribute from an HTML element.
+ // node:
+ // id or reference to the element to remove the attribute from
+ // name:
+ // the name of the attribute to remove
+ byId(node).removeAttribute(_fixAttrName(name));
+ };
+
+ dojo.getNodeProp = function(/*DomNode|String*/ node, /*String*/ name){
+ // summary:
+ // Returns an effective value of a property or an attribute.
+ // node:
+ // id or reference to the element to remove the attribute from
+ // name:
+ // the name of the attribute
+ node = byId(node);
+ var lc = name.toLowerCase(),
+ propName = _propNames[lc] || name;
+ if((propName in node) && propName != "href"){
+ // node's property
+ return node[propName]; // Anything
+ }
+ // node's attribute
+ var attrName = _attrNames[lc] || name;
+ return _hasAttr(node, attrName) ? node.getAttribute(attrName) : null; // Anything
+ };
+
+ dojo.create = function(tag, attrs, refNode, pos){
+ // summary:
+ // Create an element, allowing for optional attribute decoration
+ // and placement.
+ //
+ // description:
+ // A DOM Element creation function. A shorthand method for creating a node or
+ // a fragment, and allowing for a convenient optional attribute setting step,
+ // as well as an optional DOM placement reference.
+ //|
+ // Attributes are set by passing the optional object through `dojo.attr`.
+ // See `dojo.attr` for noted caveats and nuances, and API if applicable.
+ //|
+ // Placement is done via `dojo.place`, assuming the new node to be the action
+ // node, passing along the optional reference node and position.
+ //
+ // tag: String|DomNode
+ // A string of the element to create (eg: "div", "a", "p", "li", "script", "br"),
+ // or an existing DOM node to process.
+ //
+ // attrs: Object
+ // An object-hash of attributes to set on the newly created node.
+ // Can be null, if you don't want to set any attributes/styles.
+ // See: `dojo.attr` for a description of available attributes.
+ //
+ // refNode: String?|DomNode?
+ // Optional reference node. Used by `dojo.place` to place the newly created
+ // node somewhere in the dom relative to refNode. Can be a DomNode reference
+ // or String ID of a node.
+ //
+ // pos: String?
+ // Optional positional reference. Defaults to "last" by way of `dojo.place`,
+ // though can be set to "first","after","before","last", "replace" or "only"
+ // to further control the placement of the new node relative to the refNode.
+ // 'refNode' is required if a 'pos' is specified.
+ //
+ // returns: DomNode
+ //
+ // example:
+ // Create a DIV:
+ // | var n = dojo.create("div");
+ //
+ // example:
+ // Create a DIV with content:
+ // | var n = dojo.create("div", { innerHTML:"<p>hi</p>" });
+ //
+ // example:
+ // Place a new DIV in the BODY, with no attributes set
+ // | var n = dojo.create("div", null, dojo.body());
+ //
+ // example:
+ // Create an UL, and populate it with LI's. Place the list as the first-child of a
+ // node with id="someId":
+ // | var ul = dojo.create("ul", null, "someId", "first");
+ // | var items = ["one", "two", "three", "four"];
+ // | dojo.forEach(items, function(data){
+ // | dojo.create("li", { innerHTML: data }, ul);
+ // | });
+ //
+ // example:
+ // Create an anchor, with an href. Place in BODY:
+ // | dojo.create("a", { href:"foo.html", title:"Goto FOO!" }, dojo.body());
+ //
+ // example:
+ // Create a `dojo.NodeList()` from a new element (for syntatic sugar):
+ // | dojo.query(dojo.create('div'))
+ // | .addClass("newDiv")
+ // | .onclick(function(e){ console.log('clicked', e.target) })
+ // | .place("#someNode"); // redundant, but cleaner.
+
+ var doc = d.doc;
+ if(refNode){
+ refNode = byId(refNode);
+ doc = refNode.ownerDocument;
+ }
+ if(typeof tag == "string"){ // inline'd type check
+ tag = doc.createElement(tag);
+ }
+ if(attrs){ d.attr(tag, attrs); }
+ if(refNode){ d.place(tag, refNode, pos); }
+ return tag; // DomNode
+ };
+
+ /*=====
+ dojo.empty = function(node){
+ // summary:
+ // safely removes all children of the node.
+ // node: DOMNode|String
+ // a reference to a DOM node or an id.
+ // example:
+ // Destroy node's children byId:
+ // | dojo.empty("someId");
+ //
+ // example:
+ // Destroy all nodes' children in a list by reference:
+ // | dojo.query(".someNode").forEach(dojo.empty);
+ }
+ =====*/
+
+ d.empty =
+ d.isIE ? function(node){
+ node = byId(node);
+ for(var c; c = node.lastChild;){ // intentional assignment
+ d.destroy(c);
+ }
+ } :
+ function(node){
+ byId(node).innerHTML = "";
+ };
+
+ /*=====
+ dojo._toDom = function(frag, doc){
+ // summary:
+ // instantiates an HTML fragment returning the corresponding DOM.
+ // frag: String
+ // the HTML fragment
+ // doc: DocumentNode?
+ // optional document to use when creating DOM nodes, defaults to
+ // dojo.doc if not specified.
+ // returns: DocumentFragment
+ //
+ // example:
+ // Create a table row:
+ // | var tr = dojo._toDom("<tr><td>First!</td></tr>");
+ }
+ =====*/
+
+ // support stuff for dojo._toDom
+ var tagWrap = {
+ option: ["select"],
+ tbody: ["table"],
+ thead: ["table"],
+ tfoot: ["table"],
+ tr: ["table", "tbody"],
+ td: ["table", "tbody", "tr"],
+ th: ["table", "thead", "tr"],
+ legend: ["fieldset"],
+ caption: ["table"],
+ colgroup: ["table"],
+ col: ["table", "colgroup"],
+ li: ["ul"]
+ },
+ reTag = /<\s*([\w\:]+)/,
+ masterNode = {}, masterNum = 0,
+ masterName = "__" + d._scopeName + "ToDomId";
+
+ // generate start/end tag strings to use
+ // for the injection for each special tag wrap case.
+ for(var param in tagWrap){
+ if(tagWrap.hasOwnProperty(param)){
+ var tw = tagWrap[param];
+ tw.pre = param == "option" ? '<select multiple="multiple">' : "<" + tw.join("><") + ">";
+ tw.post = "</" + tw.reverse().join("></") + ">";
+ // the last line is destructive: it reverses the array,
+ // but we don't care at this point
+ }
+ }
+
+ d._toDom = function(frag, doc){
+ // summary:
+ // converts HTML string into DOM nodes.
+
+ doc = doc || d.doc;
+ var masterId = doc[masterName];
+ if(!masterId){
+ doc[masterName] = masterId = ++masterNum + "";
+ masterNode[masterId] = doc.createElement("div");
+ }
+
+ // make sure the frag is a string.
+ frag += "";
+
+ // find the starting tag, and get node wrapper
+ var match = frag.match(reTag),
+ tag = match ? match[1].toLowerCase() : "",
+ master = masterNode[masterId],
+ wrap, i, fc, df;
+ if(match && tagWrap[tag]){
+ wrap = tagWrap[tag];
+ master.innerHTML = wrap.pre + frag + wrap.post;
+ for(i = wrap.length; i; --i){
+ master = master.firstChild;
+ }
+ }else{
+ master.innerHTML = frag;
+ }
+
+ // one node shortcut => return the node itself
+ if(master.childNodes.length == 1){
+ return master.removeChild(master.firstChild); // DOMNode
+ }
+
+ // return multiple nodes as a document fragment
+ df = doc.createDocumentFragment();
+ while(fc = master.firstChild){ // intentional assignment
+ df.appendChild(fc);
+ }
+ return df; // DOMNode
+ };
+
+ // =============================
+ // (CSS) Class Functions
+ // =============================
+ var _className = "className";
+
+ dojo.hasClass = function(/*DomNode|String*/node, /*String*/classStr){
+ // summary:
+ // Returns whether or not the specified classes are a portion of the
+ // class list currently applied to the node.
+ //
+ // node:
+ // String ID or DomNode reference to check the class for.
+ //
+ // classStr:
+ // A string class name to look for.
+ //
+ // example:
+ // Do something if a node with id="someNode" has class="aSillyClassName" present
+ // | if(dojo.hasClass("someNode","aSillyClassName")){ ... }
+
+ return ((" "+ byId(node)[_className] +" ").indexOf(" " + classStr + " ") >= 0); // Boolean
+ };
+
+ var spaces = /\s+/, a1 = [""],
+ fakeNode = {},
+ str2array = function(s){
+ if(typeof s == "string" || s instanceof String){
+ if(s.indexOf(" ") < 0){
+ a1[0] = s;
+ return a1;
+ }else{
+ return s.split(spaces);
+ }
+ }
+ // assumed to be an array
+ return s || "";
+ };
+
+ dojo.addClass = function(/*DomNode|String*/node, /*String|Array*/classStr){
+ // summary:
+ // Adds the specified classes to the end of the class list on the
+ // passed node. Will not re-apply duplicate classes.
+ //
+ // node:
+ // String ID or DomNode reference to add a class string too
+ //
+ // classStr:
+ // A String class name to add, or several space-separated class names,
+ // or an array of class names.
+ //
+ // example:
+ // Add a class to some node:
+ // | dojo.addClass("someNode", "anewClass");
+ //
+ // example:
+ // Add two classes at once:
+ // | dojo.addClass("someNode", "firstClass secondClass");
+ //
+ // example:
+ // Add two classes at once (using array):
+ // | dojo.addClass("someNode", ["firstClass", "secondClass"]);
+ //
+ // example:
+ // Available in `dojo.NodeList` for multiple additions
+ // | dojo.query("ul > li").addClass("firstLevel");
+
+ node = byId(node);
+ classStr = str2array(classStr);
+ var cls = node[_className], oldLen;
+ cls = cls ? " " + cls + " " : " ";
+ oldLen = cls.length;
+ for(var i = 0, len = classStr.length, c; i < len; ++i){
+ c = classStr[i];
+ if(c && cls.indexOf(" " + c + " ") < 0){
+ cls += c + " ";
+ }
+ }
+ if(oldLen < cls.length){
+ node[_className] = cls.substr(1, cls.length - 2);
+ }
+ };
+
+ dojo.removeClass = function(/*DomNode|String*/node, /*String|Array?*/classStr){
+ // summary:
+ // Removes the specified classes from node. No `dojo.hasClass`
+ // check is required.
+ //
+ // node:
+ // String ID or DomNode reference to remove the class from.
+ //
+ // classStr:
+ // An optional String class name to remove, or several space-separated
+ // class names, or an array of class names. If omitted, all class names
+ // will be deleted.
+ //
+ // example:
+ // Remove a class from some node:
+ // | dojo.removeClass("someNode", "firstClass");
+ //
+ // example:
+ // Remove two classes from some node:
+ // | dojo.removeClass("someNode", "firstClass secondClass");
+ //
+ // example:
+ // Remove two classes from some node (using array):
+ // | dojo.removeClass("someNode", ["firstClass", "secondClass"]);
+ //
+ // example:
+ // Remove all classes from some node:
+ // | dojo.removeClass("someNode");
+ //
+ // example:
+ // Available in `dojo.NodeList()` for multiple removal
+ // | dojo.query(".foo").removeClass("foo");
+
+ node = byId(node);
+ var cls;
+ if(classStr !== undefined){
+ classStr = str2array(classStr);
+ cls = " " + node[_className] + " ";
+ for(var i = 0, len = classStr.length; i < len; ++i){
+ cls = cls.replace(" " + classStr[i] + " ", " ");
+ }
+ cls = d.trim(cls);
+ }else{
+ cls = "";
+ }
+ if(node[_className] != cls){ node[_className] = cls; }
+ };
+
+ dojo.replaceClass = function(/*DomNode|String*/node, /*String|Array*/addClassStr, /*String|Array?*/removeClassStr){
+ // summary:
+ // Replaces one or more classes on a node if not present.
+ // Operates more quickly than calling dojo.removeClass and dojo.addClass
+ // node:
+ // String ID or DomNode reference to remove the class from.
+ // addClassStr:
+ // A String class name to add, or several space-separated class names,
+ // or an array of class names.
+ // removeClassStr:
+ // A String class name to remove, or several space-separated class names,
+ // or an array of class names.
+ //
+ // example:
+ // | dojo.replaceClass("someNode", "add1 add2", "remove1 remove2");
+ //
+ // example:
+ // Replace all classes with addMe
+ // | dojo.replaceClass("someNode", "addMe");
+ //
+ // example:
+ // Available in `dojo.NodeList()` for multiple toggles
+ // | dojo.query(".findMe").replaceClass("addMe", "removeMe");
+
+ node = byId(node);
+ fakeNode.className = node.className;
+ dojo.removeClass(fakeNode, removeClassStr);
+ dojo.addClass(fakeNode, addClassStr);
+ if(node.className !== fakeNode.className){
+ node.className = fakeNode.className;
+ }
+ };
+
+ dojo.toggleClass = function(/*DomNode|String*/node, /*String|Array*/classStr, /*Boolean?*/condition){
+ // summary:
+ // Adds a class to node if not present, or removes if present.
+ // Pass a boolean condition if you want to explicitly add or remove.
+ // condition:
+ // If passed, true means to add the class, false means to remove.
+ //
+ // example:
+ // | dojo.toggleClass("someNode", "hovered");
+ //
+ // example:
+ // Forcefully add a class
+ // | dojo.toggleClass("someNode", "hovered", true);
+ //
+ // example:
+ // Available in `dojo.NodeList()` for multiple toggles
+ // | dojo.query(".toggleMe").toggleClass("toggleMe");
+
+ if(condition === undefined){
+ condition = !d.hasClass(node, classStr);
+ }
+ d[condition ? "addClass" : "removeClass"](node, classStr);
+ };
+
+})();
+
+}
+
+if(!dojo._hasResource["dojo._base.NodeList"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.NodeList"] = true;
+dojo.provide("dojo._base.NodeList");
+
+
+
+
+
+
+(function(){
+
+ var d = dojo;
+
+ var ap = Array.prototype, aps = ap.slice, apc = ap.concat;
+
+ var tnl = function(/*Array*/ a, /*dojo.NodeList?*/ parent, /*Function?*/ NodeListCtor){
+ // summary:
+ // decorate an array to make it look like a `dojo.NodeList`.
+ // a:
+ // Array of nodes to decorate.
+ // parent:
+ // An optional parent NodeList that generated the current
+ // list of nodes. Used to call _stash() so the parent NodeList
+ // can be accessed via end() later.
+ // NodeListCtor:
+ // An optional constructor function to use for any
+ // new NodeList calls. This allows a certain chain of
+ // NodeList calls to use a different object than dojo.NodeList.
+ if(!a.sort){
+ // make sure it's a real array before we pass it on to be wrapped
+ a = aps.call(a, 0);
+ }
+ var ctor = NodeListCtor || this._NodeListCtor || d._NodeListCtor;
+ a.constructor = ctor;
+ dojo._mixin(a, ctor.prototype);
+ a._NodeListCtor = ctor;
+ return parent ? a._stash(parent) : a;
+ };
+
+ var loopBody = function(f, a, o){
+ a = [0].concat(aps.call(a, 0));
+ o = o || d.global;
+ return function(node){
+ a[0] = node;
+ return f.apply(o, a);
+ };
+ };
+
+ // adapters
+
+ var adaptAsForEach = function(f, o){
+ // summary:
+ // adapts a single node function to be used in the forEach-type
+ // actions. The initial object is returned from the specialized
+ // function.
+ // f: Function
+ // a function to adapt
+ // o: Object?
+ // an optional context for f
+ return function(){
+ this.forEach(loopBody(f, arguments, o));
+ return this; // Object
+ };
+ };
+
+ var adaptAsMap = function(f, o){
+ // summary:
+ // adapts a single node function to be used in the map-type
+ // actions. The return is a new array of values, as via `dojo.map`
+ // f: Function
+ // a function to adapt
+ // o: Object?
+ // an optional context for f
+ return function(){
+ return this.map(loopBody(f, arguments, o));
+ };
+ };
+
+ var adaptAsFilter = function(f, o){
+ // summary:
+ // adapts a single node function to be used in the filter-type actions
+ // f: Function
+ // a function to adapt
+ // o: Object?
+ // an optional context for f
+ return function(){
+ return this.filter(loopBody(f, arguments, o));
+ };
+ };
+
+ var adaptWithCondition = function(f, g, o){
+ // summary:
+ // adapts a single node function to be used in the map-type
+ // actions, behaves like forEach() or map() depending on arguments
+ // f: Function
+ // a function to adapt
+ // g: Function
+ // a condition function, if true runs as map(), otherwise runs as forEach()
+ // o: Object?
+ // an optional context for f and g
+ return function(){
+ var a = arguments, body = loopBody(f, a, o);
+ if(g.call(o || d.global, a)){
+ return this.map(body); // self
+ }
+ this.forEach(body);
+ return this; // self
+ };
+ };
+
+ var magicGuard = function(a){
+ // summary:
+ // the guard function for dojo.attr() and dojo.style()
+ return a.length == 1 && (typeof a[0] == "string"); // inline'd type check
+ };
+
+ var orphan = function(node){
+ // summary:
+ // function to orphan nodes
+ var p = node.parentNode;
+ if(p){
+ p.removeChild(node);
+ }
+ };
+ // FIXME: should we move orphan() to dojo.html?
+
+ dojo.NodeList = function(){
+ // summary:
+ // dojo.NodeList is an of Array subclass which adds syntactic
+ // sugar for chaining, common iteration operations, animation, and
+ // node manipulation. NodeLists are most often returned as the
+ // result of dojo.query() calls.
+ // description:
+ // dojo.NodeList instances provide many utilities that reflect
+ // core Dojo APIs for Array iteration and manipulation, DOM
+ // manipulation, and event handling. Instead of needing to dig up
+ // functions in the dojo.* namespace, NodeLists generally make the
+ // full power of Dojo available for DOM manipulation tasks in a
+ // simple, chainable way.
+ // example:
+ // create a node list from a node
+ // | new dojo.NodeList(dojo.byId("foo"));
+ // example:
+ // get a NodeList from a CSS query and iterate on it
+ // | var l = dojo.query(".thinger");
+ // | l.forEach(function(node, index, nodeList){
+ // | console.log(index, node.innerHTML);
+ // | });
+ // example:
+ // use native and Dojo-provided array methods to manipulate a
+ // NodeList without needing to use dojo.* functions explicitly:
+ // | var l = dojo.query(".thinger");
+ // | // since NodeLists are real arrays, they have a length
+ // | // property that is both readable and writable and
+ // | // push/pop/shift/unshift methods
+ // | console.log(l.length);
+ // | l.push(dojo.create("span"));
+ // |
+ // | // dojo's normalized array methods work too:
+ // | console.log( l.indexOf(dojo.byId("foo")) );
+ // | // ...including the special "function as string" shorthand
+ // | console.log( l.every("item.nodeType == 1") );
+ // |
+ // | // NodeLists can be [..] indexed, or you can use the at()
+ // | // function to get specific items wrapped in a new NodeList:
+ // | var node = l[3]; // the 4th element
+ // | var newList = l.at(1, 3); // the 2nd and 4th elements
+ // example:
+ // the style functions you expect are all there too:
+ // | // style() as a getter...
+ // | var borders = dojo.query(".thinger").style("border");
+ // | // ...and as a setter:
+ // | dojo.query(".thinger").style("border", "1px solid black");
+ // | // class manipulation
+ // | dojo.query("li:nth-child(even)").addClass("even");
+ // | // even getting the coordinates of all the items
+ // | var coords = dojo.query(".thinger").coords();
+ // example:
+ // DOM manipulation functions from the dojo.* namespace area also
+ // available:
+ // | // remove all of the elements in the list from their
+ // | // parents (akin to "deleting" them from the document)
+ // | dojo.query(".thinger").orphan();
+ // | // place all elements in the list at the front of #foo
+ // | dojo.query(".thinger").place("foo", "first");
+ // example:
+ // Event handling couldn't be easier. `dojo.connect` is mapped in,
+ // and shortcut handlers are provided for most DOM events:
+ // | // like dojo.connect(), but with implicit scope
+ // | dojo.query("li").connect("onclick", console, "log");
+ // |
+ // | // many common event handlers are already available directly:
+ // | dojo.query("li").onclick(console, "log");
+ // | var toggleHovered = dojo.hitch(dojo, "toggleClass", "hovered");
+ // | dojo.query("p")
+ // | .onmouseenter(toggleHovered)
+ // | .onmouseleave(toggleHovered);
+ // example:
+ // chainability is a key advantage of NodeLists:
+ // | dojo.query(".thinger")
+ // | .onclick(function(e){ /* ... */ })
+ // | .at(1, 3, 8) // get a subset
+ // | .style("padding", "5px")
+ // | .forEach(console.log);
+
+ return tnl(Array.apply(null, arguments));
+ };
+
+ //Allow things that new up a NodeList to use a delegated or alternate NodeList implementation.
+ d._NodeListCtor = d.NodeList;
+
+ var nl = d.NodeList, nlp = nl.prototype;
+
+ // expose adapters and the wrapper as private functions
+
+ nl._wrap = nlp._wrap = tnl;
+ nl._adaptAsMap = adaptAsMap;
+ nl._adaptAsForEach = adaptAsForEach;
+ nl._adaptAsFilter = adaptAsFilter;
+ nl._adaptWithCondition = adaptWithCondition;
+
+ // mass assignment
+
+ // add array redirectors
+ d.forEach(["slice", "splice"], function(name){
+ var f = ap[name];
+ //Use a copy of the this array via this.slice() to allow .end() to work right in the splice case.
+ // CANNOT apply ._stash()/end() to splice since it currently modifies
+ // the existing this array -- it would break backward compatibility if we copy the array before
+ // the splice so that we can use .end(). So only doing the stash option to this._wrap for slice.
+ nlp[name] = function(){ return this._wrap(f.apply(this, arguments), name == "slice" ? this : null); };
+ });
+ // concat should be here but some browsers with native NodeList have problems with it
+
+ // add array.js redirectors
+ d.forEach(["indexOf", "lastIndexOf", "every", "some"], function(name){
+ var f = d[name];
+ nlp[name] = function(){ return f.apply(d, [this].concat(aps.call(arguments, 0))); };
+ });
+
+ // add conditional methods
+ d.forEach(["attr", "style"], function(name){
+ nlp[name] = adaptWithCondition(d[name], magicGuard);
+ });
+
+ // add forEach actions
+ d.forEach(["connect", "addClass", "removeClass", "replaceClass", "toggleClass", "empty", "removeAttr"], function(name){
+ nlp[name] = adaptAsForEach(d[name]);
+ });
+
+ dojo.extend(dojo.NodeList, {
+ _normalize: function(/*String||Element||Object||NodeList*/content, /*DOMNode?*/refNode){
+ // summary:
+ // normalizes data to an array of items to insert.
+ // description:
+ // If content is an object, it can have special properties "template" and
+ // "parse". If "template" is defined, then the template value is run through
+ // dojo.string.substitute (if dojo.string.substitute has been dojo.required elsewhere),
+ // or if templateFunc is a function on the content, that function will be used to
+ // transform the template into a final string to be used for for passing to dojo._toDom.
+ // If content.parse is true, then it is remembered for later, for when the content
+ // nodes are inserted into the DOM. At that point, the nodes will be parsed for widgets
+ // (if dojo.parser has been dojo.required elsewhere).
+
+ //Wanted to just use a DocumentFragment, but for the array/NodeList
+ //case that meant using cloneNode, but we may not want that.
+ //Cloning should only happen if the node operations span
+ //multiple refNodes. Also, need a real array, not a NodeList from the
+ //DOM since the node movements could change those NodeLists.
+
+ var parse = content.parse === true ? true : false;
+
+ //Do we have an object that needs to be run through a template?
+ if(typeof content.template == "string"){
+ var templateFunc = content.templateFunc || (dojo.string && dojo.string.substitute);
+ content = templateFunc ? templateFunc(content.template, content) : content;
+ }
+
+ var type = (typeof content);
+ if(type == "string" || type == "number"){
+ content = dojo._toDom(content, (refNode && refNode.ownerDocument));
+ if(content.nodeType == 11){
+ //DocumentFragment. It cannot handle cloneNode calls, so pull out the children.
+ content = dojo._toArray(content.childNodes);
+ }else{
+ content = [content];
+ }
+ }else if(!dojo.isArrayLike(content)){
+ content = [content];
+ }else if(!dojo.isArray(content)){
+ //To get to this point, content is array-like, but
+ //not an array, which likely means a DOM NodeList. Convert it now.
+ content = dojo._toArray(content);
+ }
+
+ //Pass around the parse info
+ if(parse){
+ content._runParse = true;
+ }
+ return content; //Array
+ },
+
+ _cloneNode: function(/*DOMNode*/ node){
+ // summary:
+ // private utility to clone a node. Not very interesting in the vanilla
+ // dojo.NodeList case, but delegates could do interesting things like
+ // clone event handlers if that is derivable from the node.
+ return node.cloneNode(true);
+ },
+
+ _place: function(/*Array*/ary, /*DOMNode*/refNode, /*String*/position, /*Boolean*/useClone){
+ // summary:
+ // private utility to handle placing an array of nodes relative to another node.
+ // description:
+ // Allows for cloning the nodes in the array, and for
+ // optionally parsing widgets, if ary._runParse is true.
+
+ //Avoid a disallowed operation if trying to do an innerHTML on a non-element node.
+ if(refNode.nodeType != 1 && position == "only"){
+ return;
+ }
+ var rNode = refNode, tempNode;
+
+ //Always cycle backwards in case the array is really a
+ //DOM NodeList and the DOM operations take it out of the live collection.
+ var length = ary.length;
+ for(var i = length - 1; i >= 0; i--){
+ var node = (useClone ? this._cloneNode(ary[i]) : ary[i]);
+
+ //If need widget parsing, use a temp node, instead of waiting after inserting into
+ //real DOM because we need to start widget parsing at one node up from current node,
+ //which could cause some already parsed widgets to be parsed again.
+ if(ary._runParse && dojo.parser && dojo.parser.parse){
+ if(!tempNode){
+ tempNode = rNode.ownerDocument.createElement("div");
+ }
+ tempNode.appendChild(node);
+ dojo.parser.parse(tempNode);
+ node = tempNode.firstChild;
+ while(tempNode.firstChild){
+ tempNode.removeChild(tempNode.firstChild);
+ }
+ }
+
+ if(i == length - 1){
+ dojo.place(node, rNode, position);
+ }else{
+ rNode.parentNode.insertBefore(node, rNode);
+ }
+ rNode = node;
+ }
+ },
+
+ _stash: function(parent){
+ // summary:
+ // private function to hold to a parent NodeList. end() to return the parent NodeList.
+ //
+ // example:
+ // How to make a `dojo.NodeList` method that only returns the third node in
+ // the dojo.NodeList but allows access to the original NodeList by using this._stash:
+ // | dojo.extend(dojo.NodeList, {
+ // | third: function(){
+ // | var newNodeList = dojo.NodeList(this[2]);
+ // | return newNodeList._stash(this);
+ // | }
+ // | });
+ // | // then see how _stash applies a sub-list, to be .end()'ed out of
+ // | dojo.query(".foo")
+ // | .third()
+ // | .addClass("thirdFoo")
+ // | .end()
+ // | // access to the orig .foo list
+ // | .removeClass("foo")
+ // |
+ //
+ this._parent = parent;
+ return this; //dojo.NodeList
+ },
+
+ end: function(){
+ // summary:
+ // Ends use of the current `dojo.NodeList` by returning the previous dojo.NodeList
+ // that generated the current dojo.NodeList.
+ // description:
+ // Returns the `dojo.NodeList` that generated the current `dojo.NodeList`. If there
+ // is no parent dojo.NodeList, an empty dojo.NodeList is returned.
+ // example:
+ // | dojo.query("a")
+ // | .filter(".disabled")
+ // | // operate on the anchors that only have a disabled class
+ // | .style("color", "grey")
+ // | .end()
+ // | // jump back to the list of anchors
+ // | .style(...)
+ //
+ if(this._parent){
+ return this._parent;
+ }else{
+ //Just return empty list.
+ return new this._NodeListCtor();
+ }
+ },
+
+ // http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array#Methods
+
+ // FIXME: handle return values for #3244
+ // http://trac.dojotoolkit.org/ticket/3244
+
+ // FIXME:
+ // need to wrap or implement:
+ // join (perhaps w/ innerHTML/outerHTML overload for toString() of items?)
+ // reduce
+ // reduceRight
+
+ /*=====
+ slice: function(begin, end){
+ // summary:
+ // Returns a new NodeList, maintaining this one in place
+ // description:
+ // This method behaves exactly like the Array.slice method
+ // with the caveat that it returns a dojo.NodeList and not a
+ // raw Array. For more details, see Mozilla's (slice
+ // documentation)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:slice]
+ // begin: Integer
+ // Can be a positive or negative integer, with positive
+ // integers noting the offset to begin at, and negative
+ // integers denoting an offset from the end (i.e., to the left
+ // of the end)
+ // end: Integer?
+ // Optional parameter to describe what position relative to
+ // the NodeList's zero index to end the slice at. Like begin,
+ // can be positive or negative.
+ return this._wrap(a.slice.apply(this, arguments));
+ },
+
+ splice: function(index, howmany, item){
+ // summary:
+ // Returns a new NodeList, manipulating this NodeList based on
+ // the arguments passed, potentially splicing in new elements
+ // at an offset, optionally deleting elements
+ // description:
+ // This method behaves exactly like the Array.splice method
+ // with the caveat that it returns a dojo.NodeList and not a
+ // raw Array. For more details, see Mozilla's (splice
+ // documentation)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:splice]
+ // For backwards compatibility, calling .end() on the spliced NodeList
+ // does not return the original NodeList -- splice alters the NodeList in place.
+ // index: Integer
+ // begin can be a positive or negative integer, with positive
+ // integers noting the offset to begin at, and negative
+ // integers denoting an offset from the end (i.e., to the left
+ // of the end)
+ // howmany: Integer?
+ // Optional parameter to describe what position relative to
+ // the NodeList's zero index to end the slice at. Like begin,
+ // can be positive or negative.
+ // item: Object...?
+ // Any number of optional parameters may be passed in to be
+ // spliced into the NodeList
+ // returns:
+ // dojo.NodeList
+ return this._wrap(a.splice.apply(this, arguments));
+ },
+
+ indexOf: function(value, fromIndex){
+ // summary:
+ // see dojo.indexOf(). The primary difference is that the acted-on
+ // array is implicitly this NodeList
+ // value: Object:
+ // The value to search for.
+ // fromIndex: Integer?:
+ // The location to start searching from. Optional. Defaults to 0.
+ // description:
+ // For more details on the behavior of indexOf, see Mozilla's
+ // (indexOf
+ // docs)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:indexOf]
+ // returns:
+ // Positive Integer or 0 for a match, -1 of not found.
+ return d.indexOf(this, value, fromIndex); // Integer
+ },
+
+ lastIndexOf: function(value, fromIndex){
+ // summary:
+ // see dojo.lastIndexOf(). The primary difference is that the
+ // acted-on array is implicitly this NodeList
+ // description:
+ // For more details on the behavior of lastIndexOf, see
+ // Mozilla's (lastIndexOf
+ // docs)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:lastIndexOf]
+ // value: Object
+ // The value to search for.
+ // fromIndex: Integer?
+ // The location to start searching from. Optional. Defaults to 0.
+ // returns:
+ // Positive Integer or 0 for a match, -1 of not found.
+ return d.lastIndexOf(this, value, fromIndex); // Integer
+ },
+
+ every: function(callback, thisObject){
+ // summary:
+ // see `dojo.every()` and the (Array.every
+ // docs)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:every].
+ // Takes the same structure of arguments and returns as
+ // dojo.every() with the caveat that the passed array is
+ // implicitly this NodeList
+ // callback: Function: the callback
+ // thisObject: Object?: the context
+ return d.every(this, callback, thisObject); // Boolean
+ },
+
+ some: function(callback, thisObject){
+ // summary:
+ // Takes the same structure of arguments and returns as
+ // `dojo.some()` with the caveat that the passed array is
+ // implicitly this NodeList. See `dojo.some()` and Mozilla's
+ // (Array.some
+ // documentation)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:some].
+ // callback: Function: the callback
+ // thisObject: Object?: the context
+ return d.some(this, callback, thisObject); // Boolean
+ },
+ =====*/
+
+ concat: function(item){
+ // summary:
+ // Returns a new NodeList comprised of items in this NodeList
+ // as well as items passed in as parameters
+ // description:
+ // This method behaves exactly like the Array.concat method
+ // with the caveat that it returns a `dojo.NodeList` and not a
+ // raw Array. For more details, see the (Array.concat
+ // docs)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:concat]
+ // item: Object?
+ // Any number of optional parameters may be passed in to be
+ // spliced into the NodeList
+ // returns:
+ // dojo.NodeList
+
+ //return this._wrap(apc.apply(this, arguments));
+ // the line above won't work for the native NodeList :-(
+
+ // implementation notes:
+ // 1) Native NodeList is not an array, and cannot be used directly
+ // in concat() --- the latter doesn't recognize it as an array, and
+ // does not inline it, but append as a single entity.
+ // 2) On some browsers (e.g., Safari) the "constructor" property is
+ // read-only and cannot be changed. So we have to test for both
+ // native NodeList and dojo.NodeList in this property to recognize
+ // the node list.
+
+ var t = d.isArray(this) ? this : aps.call(this, 0),
+ m = d.map(arguments, function(a){
+ return a && !d.isArray(a) &&
+ (typeof NodeList != "undefined" && a.constructor === NodeList || a.constructor === this._NodeListCtor) ?
+ aps.call(a, 0) : a;
+ });
+ return this._wrap(apc.apply(t, m), this); // dojo.NodeList
+ },
+
+ map: function(/*Function*/ func, /*Function?*/ obj){
+ // summary:
+ // see dojo.map(). The primary difference is that the acted-on
+ // array is implicitly this NodeList and the return is a
+ // dojo.NodeList (a subclass of Array)
+ ///return d.map(this, func, obj, d.NodeList); // dojo.NodeList
+ return this._wrap(d.map(this, func, obj), this); // dojo.NodeList
+ },
+
+ forEach: function(callback, thisObj){
+ // summary:
+ // see `dojo.forEach()`. The primary difference is that the acted-on
+ // array is implicitly this NodeList. If you want the option to break out
+ // of the forEach loop, use every() or some() instead.
+ d.forEach(this, callback, thisObj);
+ // non-standard return to allow easier chaining
+ return this; // dojo.NodeList
+ },
+
+ /*=====
+ coords: function(){
+ // summary:
+ // Returns the box objects of all elements in a node list as
+ // an Array (*not* a NodeList). Acts like `dojo.coords`, though assumes
+ // the node passed is each node in this list.
+
+ return d.map(this, d.coords); // Array
+ },
+
+ position: function(){
+ // summary:
+ // Returns border-box objects (x/y/w/h) of all elements in a node list
+ // as an Array (*not* a NodeList). Acts like `dojo.position`, though
+ // assumes the node passed is each node in this list.
+
+ return d.map(this, d.position); // Array
+ },
+
+ attr: function(property, value){
+ // summary:
+ // gets or sets the DOM attribute for every element in the
+ // NodeList. See also `dojo.attr`
+ // property: String
+ // the attribute to get/set
+ // value: String?
+ // optional. The value to set the property to
+ // returns:
+ // if no value is passed, the result is an array of attribute values
+ // If a value is passed, the return is this NodeList
+ // example:
+ // Make all nodes with a particular class focusable:
+ // | dojo.query(".focusable").attr("tabIndex", -1);
+ // example:
+ // Disable a group of buttons:
+ // | dojo.query("button.group").attr("disabled", true);
+ // example:
+ // innerHTML can be assigned or retrieved as well:
+ // | // get the innerHTML (as an array) for each list item
+ // | var ih = dojo.query("li.replaceable").attr("innerHTML");
+ return; // dojo.NodeList
+ return; // Array
+ },
+
+ style: function(property, value){
+ // summary:
+ // gets or sets the CSS property for every element in the NodeList
+ // property: String
+ // the CSS property to get/set, in JavaScript notation
+ // ("lineHieght" instead of "line-height")
+ // value: String?
+ // optional. The value to set the property to
+ // returns:
+ // if no value is passed, the result is an array of strings.
+ // If a value is passed, the return is this NodeList
+ return; // dojo.NodeList
+ return; // Array
+ },
+
+ addClass: function(className){
+ // summary:
+ // adds the specified class to every node in the list
+ // className: String|Array
+ // A String class name to add, or several space-separated class names,
+ // or an array of class names.
+ return; // dojo.NodeList
+ },
+
+ removeClass: function(className){
+ // summary:
+ // removes the specified class from every node in the list
+ // className: String|Array?
+ // An optional String class name to remove, or several space-separated
+ // class names, or an array of class names. If omitted, all class names
+ // will be deleted.
+ // returns:
+ // dojo.NodeList, this list
+ return; // dojo.NodeList
+ },
+
+ toggleClass: function(className, condition){
+ // summary:
+ // Adds a class to node if not present, or removes if present.
+ // Pass a boolean condition if you want to explicitly add or remove.
+ // condition: Boolean?
+ // If passed, true means to add the class, false means to remove.
+ // className: String
+ // the CSS class to add
+ return; // dojo.NodeList
+ },
+
+ connect: function(methodName, objOrFunc, funcName){
+ // summary:
+ // attach event handlers to every item of the NodeList. Uses dojo.connect()
+ // so event properties are normalized
+ // methodName: String
+ // the name of the method to attach to. For DOM events, this should be
+ // the lower-case name of the event
+ // objOrFunc: Object|Function|String
+ // if 2 arguments are passed (methodName, objOrFunc), objOrFunc should
+ // reference a function or be the name of the function in the global
+ // namespace to attach. If 3 arguments are provided
+ // (methodName, objOrFunc, funcName), objOrFunc must be the scope to
+ // locate the bound function in
+ // funcName: String?
+ // optional. A string naming the function in objOrFunc to bind to the
+ // event. May also be a function reference.
+ // example:
+ // add an onclick handler to every button on the page
+ // | dojo.query("div:nth-child(odd)").connect("onclick", function(e){
+ // | console.log("clicked!");
+ // | });
+ // example:
+ // attach foo.bar() to every odd div's onmouseover
+ // | dojo.query("div:nth-child(odd)").connect("onmouseover", foo, "bar");
+ },
+
+ empty: function(){
+ // summary:
+ // clears all content from each node in the list. Effectively
+ // equivalent to removing all child nodes from every item in
+ // the list.
+ return this.forEach("item.innerHTML='';"); // dojo.NodeList
+ // FIXME: should we be checking for and/or disposing of widgets below these nodes?
+ },
+ =====*/
+
+ // useful html methods
+ coords: adaptAsMap(d.coords),
+ position: adaptAsMap(d.position),
+
+ // FIXME: connectPublisher()? connectRunOnce()?
+
+ /*
+ destroy: function(){
+ // summary:
+ // destroys every item in the list.
+ this.forEach(d.destroy);
+ // FIXME: should we be checking for and/or disposing of widgets below these nodes?
+ },
+ */
+
+ place: function(/*String||Node*/ queryOrNode, /*String*/ position){
+ // summary:
+ // places elements of this node list relative to the first element matched
+ // by queryOrNode. Returns the original NodeList. See: `dojo.place`
+ // queryOrNode:
+ // may be a string representing any valid CSS3 selector or a DOM node.
+ // In the selector case, only the first matching element will be used
+ // for relative positioning.
+ // position:
+ // can be one of:
+ // | "last" (default)
+ // | "first"
+ // | "before"
+ // | "after"
+ // | "only"
+ // | "replace"
+ // or an offset in the childNodes property
+ var item = d.query(queryOrNode)[0];
+ return this.forEach(function(node){ d.place(node, item, position); }); // dojo.NodeList
+ },
+
+ orphan: function(/*String?*/ filter){
+ // summary:
+ // removes elements in this list that match the filter
+ // from their parents and returns them as a new NodeList.
+ // filter:
+ // CSS selector like ".foo" or "div > span"
+ // returns:
+ // `dojo.NodeList` containing the orphaned elements
+ return (filter ? d._filterQueryResult(this, filter) : this).forEach(orphan); // dojo.NodeList
+ },
+
+ adopt: function(/*String||Array||DomNode*/ queryOrListOrNode, /*String?*/ position){
+ // summary:
+ // places any/all elements in queryOrListOrNode at a
+ // position relative to the first element in this list.
+ // Returns a dojo.NodeList of the adopted elements.
+ // queryOrListOrNode:
+ // a DOM node or a query string or a query result.
+ // Represents the nodes to be adopted relative to the
+ // first element of this NodeList.
+ // position:
+ // can be one of:
+ // | "last" (default)
+ // | "first"
+ // | "before"
+ // | "after"
+ // | "only"
+ // | "replace"
+ // or an offset in the childNodes property
+ return d.query(queryOrListOrNode).place(this[0], position)._stash(this); // dojo.NodeList
+ },
+
+ // FIXME: do we need this?
+ query: function(/*String*/ queryStr){
+ // summary:
+ // Returns a new list whose members match the passed query,
+ // assuming elements of the current NodeList as the root for
+ // each search.
+ // example:
+ // assume a DOM created by this markup:
+ // | <div id="foo">
+ // | <p>
+ // | bacon is tasty, <span>dontcha think?</span>
+ // | </p>
+ // | </div>
+ // | <div id="bar">
+ // | <p>great comedians may not be funny <span>in person</span></p>
+ // | </div>
+ // If we are presented with the following definition for a NodeList:
+ // | var l = new dojo.NodeList(dojo.byId("foo"), dojo.byId("bar"));
+ // it's possible to find all span elements under paragraphs
+ // contained by these elements with this sub-query:
+ // | var spans = l.query("p span");
+
+ // FIXME: probably slow
+ if(!queryStr){ return this; }
+ var ret = this.map(function(node){
+ // FIXME: why would we ever get undefined here?
+ return d.query(queryStr, node).filter(function(subNode){ return subNode !== undefined; });
+ });
+ return this._wrap(apc.apply([], ret), this); // dojo.NodeList
+ },
+
+ filter: function(/*String|Function*/ filter){
+ // summary:
+ // "masks" the built-in javascript filter() method (supported
+ // in Dojo via `dojo.filter`) to support passing a simple
+ // string filter in addition to supporting filtering function
+ // objects.
+ // filter:
+ // If a string, a CSS rule like ".thinger" or "div > span".
+ // example:
+ // "regular" JS filter syntax as exposed in dojo.filter:
+ // | dojo.query("*").filter(function(item){
+ // | // highlight every paragraph
+ // | return (item.nodeName == "p");
+ // | }).style("backgroundColor", "yellow");
+ // example:
+ // the same filtering using a CSS selector
+ // | dojo.query("*").filter("p").styles("backgroundColor", "yellow");
+
+ var a = arguments, items = this, start = 0;
+ if(typeof filter == "string"){ // inline'd type check
+ items = d._filterQueryResult(this, a[0]);
+ if(a.length == 1){
+ // if we only got a string query, pass back the filtered results
+ return items._stash(this); // dojo.NodeList
+ }
+ // if we got a callback, run it over the filtered items
+ start = 1;
+ }
+ return this._wrap(d.filter(items, a[start], a[start + 1]), this); // dojo.NodeList
+ },
+
+ /*
+ // FIXME: should this be "copyTo" and include parenting info?
+ clone: function(){
+ // summary:
+ // creates node clones of each element of this list
+ // and returns a new list containing the clones
+ },
+ */
+
+ addContent: function(/*String||DomNode||Object||dojo.NodeList*/ content, /*String||Integer?*/ position){
+ // summary:
+ // add a node, NodeList or some HTML as a string to every item in the
+ // list. Returns the original list.
+ // description:
+ // a copy of the HTML content is added to each item in the
+ // list, with an optional position argument. If no position
+ // argument is provided, the content is appended to the end of
+ // each item.
+ // content:
+ // DOM node, HTML in string format, a NodeList or an Object. If a DOM node or
+ // NodeList, the content will be cloned if the current NodeList has more than one
+ // element. Only the DOM nodes are cloned, no event handlers. If it is an Object,
+ // it should be an object with at "template" String property that has the HTML string
+ // to insert. If dojo.string has already been dojo.required, then dojo.string.substitute
+ // will be used on the "template" to generate the final HTML string. Other allowed
+ // properties on the object are: "parse" if the HTML
+ // string should be parsed for widgets (dojo.require("dojo.parser") to get that
+ // option to work), and "templateFunc" if a template function besides dojo.string.substitute
+ // should be used to transform the "template".
+ // position:
+ // can be one of:
+ // | "last"||"end" (default)
+ // | "first||"start"
+ // | "before"
+ // | "after"
+ // | "replace" (replaces nodes in this NodeList with new content)
+ // | "only" (removes other children of the nodes so new content is the only child)
+ // or an offset in the childNodes property
+ // example:
+ // appends content to the end if the position is omitted
+ // | dojo.query("h3 > p").addContent("hey there!");
+ // example:
+ // add something to the front of each element that has a
+ // "thinger" property:
+ // | dojo.query("[thinger]").addContent("...", "first");
+ // example:
+ // adds a header before each element of the list
+ // | dojo.query(".note").addContent("<h4>NOTE:</h4>", "before");
+ // example:
+ // add a clone of a DOM node to the end of every element in
+ // the list, removing it from its existing parent.
+ // | dojo.query(".note").addContent(dojo.byId("foo"));
+ // example:
+ // Append nodes from a templatized string.
+ // dojo.require("dojo.string");
+ // dojo.query(".note").addContent({
+ // template: '<b>${id}: </b><span>${name}</span>',
+ // id: "user332",
+ // name: "Mr. Anderson"
+ // });
+ // example:
+ // Append nodes from a templatized string that also has widgets parsed.
+ // dojo.require("dojo.string");
+ // dojo.require("dojo.parser");
+ // var notes = dojo.query(".note").addContent({
+ // template: '<button dojoType="dijit.form.Button">${text}</button>',
+ // parse: true,
+ // text: "Send"
+ // });
+ content = this._normalize(content, this[0]);
+ for(var i = 0, node; (node = this[i]); i++){
+ this._place(content, node, position, i > 0);
+ }
+ return this; //dojo.NodeList
+ },
+
+ instantiate: function(/*String|Object*/ declaredClass, /*Object?*/ properties){
+ // summary:
+ // Create a new instance of a specified class, using the
+ // specified properties and each node in the nodeList as a
+ // srcNodeRef.
+ // example:
+ // Grabs all buttons in the page and converts them to diji.form.Buttons.
+ // | var buttons = dojo.query("button").instantiate("dijit.form.Button", {showLabel: true});
+ var c = d.isFunction(declaredClass) ? declaredClass : d.getObject(declaredClass);
+ properties = properties || {};
+ return this.forEach(function(node){
+ new c(properties, node);
+ }); // dojo.NodeList
+ },
+
+ at: function(/*===== index =====*/){
+ // summary:
+ // Returns a new NodeList comprised of items in this NodeList
+ // at the given index or indices.
+ //
+ // index: Integer...
+ // One or more 0-based indices of items in the current
+ // NodeList. A negative index will start at the end of the
+ // list and go backwards.
+ //
+ // example:
+ // Shorten the list to the first, second, and third elements
+ // | dojo.query("a").at(0, 1, 2).forEach(fn);
+ //
+ // example:
+ // Retrieve the first and last elements of a unordered list:
+ // | dojo.query("ul > li").at(0, -1).forEach(cb);
+ //
+ // example:
+ // Do something for the first element only, but end() out back to
+ // the original list and continue chaining:
+ // | dojo.query("a").at(0).onclick(fn).end().forEach(function(n){
+ // | console.log(n); // all anchors on the page.
+ // | })
+ //
+ // returns:
+ // dojo.NodeList
+ var t = new this._NodeListCtor();
+ d.forEach(arguments, function(i){
+ if(i < 0){ i = this.length + i }
+ if(this[i]){ t.push(this[i]); }
+ }, this);
+ return t._stash(this); // dojo.NodeList
+ }
+
+ });
+
+ nl.events = [
+ // summary:
+ // list of all DOM events used in NodeList
+ "blur", "focus", "change", "click", "error", "keydown", "keypress",
+ "keyup", "load", "mousedown", "mouseenter", "mouseleave", "mousemove",
+ "mouseout", "mouseover", "mouseup", "submit"
+ ];
+
+ // FIXME: pseudo-doc the above automatically generated on-event functions
+
+ // syntactic sugar for DOM events
+ d.forEach(nl.events, function(evt){
+ var _oe = "on" + evt;
+ nlp[_oe] = function(a, b){
+ return this.connect(_oe, a, b);
+ };
+ // FIXME: should these events trigger publishes?
+ /*
+ return (a ? this.connect(_oe, a, b) :
+ this.forEach(function(n){
+ // FIXME:
+ // listeners get buried by
+ // addEventListener and can't be dug back
+ // out to be triggered externally.
+ // see:
+ // http://developer.mozilla.org/en/docs/DOM:element
+
+ console.log(n, evt, _oe);
+
+ // FIXME: need synthetic event support!
+ var _e = { target: n, faux: true, type: evt };
+ // dojo._event_listener._synthesizeEvent({}, { target: n, faux: true, type: evt });
+ try{ n[evt](_e); }catch(e){ console.log(e); }
+ try{ n[_oe](_e); }catch(e){ console.log(e); }
+ })
+ );
+ */
+ }
+ );
+
+})();
+
+}
+
+if(!dojo._hasResource["dojo._base.query"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.query"] = true;
+(function(){
+
+/*
+ dojo.query() architectural overview:
+
+ dojo.query is a relatively full-featured CSS3 query library. It is
+ designed to take any valid CSS3 selector and return the nodes matching
+ the selector. To do this quickly, it processes queries in several
+ steps, applying caching where profitable.
+
+ The steps (roughly in reverse order of the way they appear in the code):
+ 1.) check to see if we already have a "query dispatcher"
+ - if so, use that with the given parameterization. Skip to step 4.
+ 2.) attempt to determine which branch to dispatch the query to:
+ - JS (optimized DOM iteration)
+ - native (FF3.1+, Safari 3.1+, IE 8+)
+ 3.) tokenize and convert to executable "query dispatcher"
+ - this is where the lion's share of the complexity in the
+ system lies. In the DOM version, the query dispatcher is
+ assembled as a chain of "yes/no" test functions pertaining to
+ a section of a simple query statement (".blah:nth-child(odd)"
+ but not "div div", which is 2 simple statements). Individual
+ statement dispatchers are cached (to prevent re-definition)
+ as are entire dispatch chains (to make re-execution of the
+ same query fast)
+ 4.) the resulting query dispatcher is called in the passed scope
+ (by default the top-level document)
+ - for DOM queries, this results in a recursive, top-down
+ evaluation of nodes based on each simple query section
+ - for native implementations, this may mean working around spec
+ bugs. So be it.
+ 5.) matched nodes are pruned to ensure they are unique (if necessary)
+*/
+
+var defineQuery= function(d){
+ // define everything in a closure for compressability reasons. "d" is an
+ // alias to "dojo" (or the toolkit alias object, e.g., "acme").
+
+ ////////////////////////////////////////////////////////////////////////
+ // Toolkit aliases
+ ////////////////////////////////////////////////////////////////////////
+
+ // if you are extracting dojo.query for use in your own system, you will
+ // need to provide these methods and properties. No other porting should be
+ // necessary, save for configuring the system to use a class other than
+ // dojo.NodeList as the return instance instantiator
+ var trim = d.trim;
+ var each = d.forEach;
+ // d.isIE; // float
+ // d.isSafari; // float
+ // d.isOpera; // float
+ // d.isWebKit; // float
+ // d.doc ; // document element
+ var qlc = (d._NodeListCtor = d.NodeList);
+
+ var getDoc = function(){ return d.doc; };
+ // NOTE(alex): the spec is idiotic. CSS queries should ALWAYS be case-sensitive, but nooooooo
+ var cssCaseBug = ((d.isWebKit||d.isMozilla) && ((getDoc().compatMode) == "BackCompat"));
+
+ ////////////////////////////////////////////////////////////////////////
+ // Global utilities
+ ////////////////////////////////////////////////////////////////////////
+
+
+ // on browsers that support the "children" collection we can avoid a lot of
+ // iteration on chaff (non-element) nodes.
+ // why.
+ var childNodesName = !!getDoc().firstChild["children"] ? "children" : "childNodes";
+
+ var specials = ">~+";
+
+ // global thunk to determine whether we should treat the current query as
+ // case sensitive or not. This switch is flipped by the query evaluator
+ // based on the document passed as the context to search.
+ var caseSensitive = false;
+
+ // how high?
+ var yesman = function(){ return true; };
+
+ ////////////////////////////////////////////////////////////////////////
+ // Tokenizer
+ ////////////////////////////////////////////////////////////////////////
+
+ var getQueryParts = function(query){
+ // summary:
+ // state machine for query tokenization
+ // description:
+ // instead of using a brittle and slow regex-based CSS parser,
+ // dojo.query implements an AST-style query representation. This
+ // representation is only generated once per query. For example,
+ // the same query run multiple times or under different root nodes
+ // does not re-parse the selector expression but instead uses the
+ // cached data structure. The state machine implemented here
+ // terminates on the last " " (space) character and returns an
+ // ordered array of query component structures (or "parts"). Each
+ // part represents an operator or a simple CSS filtering
+ // expression. The structure for parts is documented in the code
+ // below.
+
+
+ // NOTE:
+ // this code is designed to run fast and compress well. Sacrifices
+ // to readability and maintainability have been made. Your best
+ // bet when hacking the tokenizer is to put The Donnas on *really*
+ // loud (may we recommend their "Spend The Night" release?) and
+ // just assume you're gonna make mistakes. Keep the unit tests
+ // open and run them frequently. Knowing is half the battle ;-)
+ if(specials.indexOf(query.slice(-1)) >= 0){
+ // if we end with a ">", "+", or "~", that means we're implicitly
+ // searching all children, so make it explicit
+ query += " * "
+ }else{
+ // if you have not provided a terminator, one will be provided for
+ // you...
+ query += " ";
+ }
+
+ var ts = function(/*Integer*/ s, /*Integer*/ e){
+ // trim and slice.
+
+ // take an index to start a string slice from and an end position
+ // and return a trimmed copy of that sub-string
+ return trim(query.slice(s, e));
+ }
+
+ // the overall data graph of the full query, as represented by queryPart objects
+ var queryParts = [];
+
+
+ // state keeping vars
+ var inBrackets = -1, inParens = -1, inMatchFor = -1,
+ inPseudo = -1, inClass = -1, inId = -1, inTag = -1,
+ lc = "", cc = "", pStart;
+
+ // iteration vars
+ var x = 0, // index in the query
+ ql = query.length,
+ currentPart = null, // data structure representing the entire clause
+ _cp = null; // the current pseudo or attr matcher
+
+ // several temporary variables are assigned to this structure during a
+ // potential sub-expression match:
+ // attr:
+ // a string representing the current full attribute match in a
+ // bracket expression
+ // type:
+ // if there's an operator in a bracket expression, this is
+ // used to keep track of it
+ // value:
+ // the internals of parenthetical expression for a pseudo. for
+ // :nth-child(2n+1), value might be "2n+1"
+
+ var endTag = function(){
+ // called when the tokenizer hits the end of a particular tag name.
+ // Re-sets state variables for tag matching and sets up the matcher
+ // to handle the next type of token (tag or operator).
+ if(inTag >= 0){
+ var tv = (inTag == x) ? null : ts(inTag, x); // .toLowerCase();
+ currentPart[ (specials.indexOf(tv) < 0) ? "tag" : "oper" ] = tv;
+ inTag = -1;
+ }
+ }
+
+ var endId = function(){
+ // called when the tokenizer might be at the end of an ID portion of a match
+ if(inId >= 0){
+ currentPart.id = ts(inId, x).replace(/\\/g, "");
+ inId = -1;
+ }
+ }
+
+ var endClass = function(){
+ // called when the tokenizer might be at the end of a class name
+ // match. CSS allows for multiple classes, so we augment the
+ // current item with another class in its list
+ if(inClass >= 0){
+ currentPart.classes.push(ts(inClass+1, x).replace(/\\/g, ""));
+ inClass = -1;
+ }
+ }
+
+ var endAll = function(){
+ // at the end of a simple fragment, so wall off the matches
+ endId(); endTag(); endClass();
+ }
+
+ var endPart = function(){
+ endAll();
+ if(inPseudo >= 0){
+ currentPart.pseudos.push({ name: ts(inPseudo+1, x) });
+ }
+ // hint to the selector engine to tell it whether or not it
+ // needs to do any iteration. Many simple selectors don't, and
+ // we can avoid significant construction-time work by advising
+ // the system to skip them
+ currentPart.loops = (
+ currentPart.pseudos.length ||
+ currentPart.attrs.length ||
+ currentPart.classes.length );
+
+ currentPart.oquery = currentPart.query = ts(pStart, x); // save the full expression as a string
+
+
+ // otag/tag are hints to suggest to the system whether or not
+ // it's an operator or a tag. We save a copy of otag since the
+ // tag name is cast to upper-case in regular HTML matches. The
+ // system has a global switch to figure out if the current
+ // expression needs to be case sensitive or not and it will use
+ // otag or tag accordingly
+ currentPart.otag = currentPart.tag = (currentPart["oper"]) ? null : (currentPart.tag || "*");
+
+ if(currentPart.tag){
+ // if we're in a case-insensitive HTML doc, we likely want
+ // the toUpperCase when matching on element.tagName. If we
+ // do it here, we can skip the string op per node
+ // comparison
+ currentPart.tag = currentPart.tag.toUpperCase();
+ }
+
+ // add the part to the list
+ if(queryParts.length && (queryParts[queryParts.length-1].oper)){
+ // operators are always infix, so we remove them from the
+ // list and attach them to the next match. The evaluator is
+ // responsible for sorting out how to handle them.
+ currentPart.infixOper = queryParts.pop();
+ currentPart.query = currentPart.infixOper.query + " " + currentPart.query;
+ /*
+ console.debug( "swapping out the infix",
+ currentPart.infixOper,
+ "and attaching it to",
+ currentPart);
+ */
+ }
+ queryParts.push(currentPart);
+
+ currentPart = null;
+ }
+
+ // iterate over the query, character by character, building up a
+ // list of query part objects
+ for(; lc=cc, cc=query.charAt(x), x < ql; x++){
+ // cc: the current character in the match
+ // lc: the last character (if any)
+
+ // someone is trying to escape something, so don't try to match any
+ // fragments. We assume we're inside a literal.
+ if(lc == "\\"){ continue; }
+ if(!currentPart){ // a part was just ended or none has yet been created
+ // NOTE: I hate all this alloc, but it's shorter than writing tons of if's
+ pStart = x;
+ // rules describe full CSS sub-expressions, like:
+ // #someId
+ // .className:first-child
+ // but not:
+ // thinger > div.howdy[type=thinger]
+ // the indidual components of the previous query would be
+ // split into 3 parts that would be represented a structure
+ // like:
+ // [
+ // {
+ // query: "thinger",
+ // tag: "thinger",
+ // },
+ // {
+ // query: "div.howdy[type=thinger]",
+ // classes: ["howdy"],
+ // infixOper: {
+ // query: ">",
+ // oper: ">",
+ // }
+ // },
+ // ]
+ currentPart = {
+ query: null, // the full text of the part's rule
+ pseudos: [], // CSS supports multiple pseud-class matches in a single rule
+ attrs: [], // CSS supports multi-attribute match, so we need an array
+ classes: [], // class matches may be additive, e.g.: .thinger.blah.howdy
+ tag: null, // only one tag...
+ oper: null, // ...or operator per component. Note that these wind up being exclusive.
+ id: null, // the id component of a rule
+ getTag: function(){
+ return (caseSensitive) ? this.otag : this.tag;
+ }
+ };
+
+ // if we don't have a part, we assume we're going to start at
+ // the beginning of a match, which should be a tag name. This
+ // might fault a little later on, but we detect that and this
+ // iteration will still be fine.
+ inTag = x;
+ }
+
+ if(inBrackets >= 0){
+ // look for a the close first
+ if(cc == "]"){ // if we're in a [...] clause and we end, do assignment
+ if(!_cp.attr){
+ // no attribute match was previously begun, so we
+ // assume this is an attribute existence match in the
+ // form of [someAttributeName]
+ _cp.attr = ts(inBrackets+1, x);
+ }else{
+ // we had an attribute already, so we know that we're
+ // matching some sort of value, as in [attrName=howdy]
+ _cp.matchFor = ts((inMatchFor||inBrackets+1), x);
+ }
+ var cmf = _cp.matchFor;
+ if(cmf){
+ // try to strip quotes from the matchFor value. We want
+ // [attrName=howdy] to match the same
+ // as [attrName = 'howdy' ]
+ if( (cmf.charAt(0) == '"') || (cmf.charAt(0) == "'") ){
+ _cp.matchFor = cmf.slice(1, -1);
+ }
+ }
+ // end the attribute by adding it to the list of attributes.
+ currentPart.attrs.push(_cp);
+ _cp = null; // necessary?
+ inBrackets = inMatchFor = -1;
+ }else if(cc == "="){
+ // if the last char was an operator prefix, make sure we
+ // record it along with the "=" operator.
+ var addToCc = ("|~^$*".indexOf(lc) >=0 ) ? lc : "";
+ _cp.type = addToCc+cc;
+ _cp.attr = ts(inBrackets+1, x-addToCc.length);
+ inMatchFor = x+1;
+ }
+ // now look for other clause parts
+ }else if(inParens >= 0){
+ // if we're in a parenthetical expression, we need to figure
+ // out if it's attached to a pseudo-selector rule like
+ // :nth-child(1)
+ if(cc == ")"){
+ if(inPseudo >= 0){
+ _cp.value = ts(inParens+1, x);
+ }
+ inPseudo = inParens = -1;
+ }
+ }else if(cc == "#"){
+ // start of an ID match
+ endAll();
+ inId = x+1;
+ }else if(cc == "."){
+ // start of a class match
+ endAll();
+ inClass = x;
+ }else if(cc == ":"){
+ // start of a pseudo-selector match
+ endAll();
+ inPseudo = x;
+ }else if(cc == "["){
+ // start of an attribute match.
+ endAll();
+ inBrackets = x;
+ // provide a new structure for the attribute match to fill-in
+ _cp = {
+ /*=====
+ attr: null, type: null, matchFor: null
+ =====*/
+ };
+ }else if(cc == "("){
+ // we really only care if we've entered a parenthetical
+ // expression if we're already inside a pseudo-selector match
+ if(inPseudo >= 0){
+ // provide a new structure for the pseudo match to fill-in
+ _cp = {
+ name: ts(inPseudo+1, x),
+ value: null
+ }
+ currentPart.pseudos.push(_cp);
+ }
+ inParens = x;
+ }else if(
+ (cc == " ") &&
+ // if it's a space char and the last char is too, consume the
+ // current one without doing more work
+ (lc != cc)
+ ){
+ endPart();
+ }
+ }
+ return queryParts;
+ };
+
+
+ ////////////////////////////////////////////////////////////////////////
+ // DOM query infrastructure
+ ////////////////////////////////////////////////////////////////////////
+
+ var agree = function(first, second){
+ // the basic building block of the yes/no chaining system. agree(f1,
+ // f2) generates a new function which returns the boolean results of
+ // both of the passed functions to a single logical-anded result. If
+ // either are not passed, the other is used exclusively.
+ if(!first){ return second; }
+ if(!second){ return first; }
+
+ return function(){
+ return first.apply(window, arguments) && second.apply(window, arguments);
+ }
+ };
+
+ var getArr = function(i, arr){
+ // helps us avoid array alloc when we don't need it
+ var r = arr||[]; // FIXME: should this be 'new d._NodeListCtor()' ?
+ if(i){ r.push(i); }
+ return r;
+ };
+
+ var _isElement = function(n){ return (1 == n.nodeType); };
+
+ // FIXME: need to coalesce _getAttr with defaultGetter
+ var blank = "";
+ var _getAttr = function(elem, attr){
+ if(!elem){ return blank; }
+ if(attr == "class"){
+ return elem.className || blank;
+ }
+ if(attr == "for"){
+ return elem.htmlFor || blank;
+ }
+ if(attr == "style"){
+ return elem.style.cssText || blank;
+ }
+ return (caseSensitive ? elem.getAttribute(attr) : elem.getAttribute(attr, 2)) || blank;
+ };
+
+ var attrs = {
+ "*=": function(attr, value){
+ return function(elem){
+ // E[foo*="bar"]
+ // an E element whose "foo" attribute value contains
+ // the substring "bar"
+ return (_getAttr(elem, attr).indexOf(value)>=0);
+ }
+ },
+ "^=": function(attr, value){
+ // E[foo^="bar"]
+ // an E element whose "foo" attribute value begins exactly
+ // with the string "bar"
+ return function(elem){
+ return (_getAttr(elem, attr).indexOf(value)==0);
+ }
+ },
+ "$=": function(attr, value){
+ // E[foo$="bar"]
+ // an E element whose "foo" attribute value ends exactly
+ // with the string "bar"
+ var tval = " "+value;
+ return function(elem){
+ var ea = " "+_getAttr(elem, attr);
+ return (ea.lastIndexOf(value)==(ea.length-value.length));
+ }
+ },
+ "~=": function(attr, value){
+ // E[foo~="bar"]
+ // an E element whose "foo" attribute value is a list of
+ // space-separated values, one of which is exactly equal
+ // to "bar"
+
+ // return "[contains(concat(' ',@"+attr+",' '), ' "+ value +" ')]";
+ var tval = " "+value+" ";
+ return function(elem){
+ var ea = " "+_getAttr(elem, attr)+" ";
+ return (ea.indexOf(tval)>=0);
+ }
+ },
+ "|=": function(attr, value){
+ // E[hreflang|="en"]
+ // an E element whose "hreflang" attribute has a
+ // hyphen-separated list of values beginning (from the
+ // left) with "en"
+ var valueDash = " "+value+"-";
+ return function(elem){
+ var ea = " "+_getAttr(elem, attr);
+ return (
+ (ea == value) ||
+ (ea.indexOf(valueDash)==0)
+ );
+ }
+ },
+ "=": function(attr, value){
+ return function(elem){
+ return (_getAttr(elem, attr) == value);
+ }
+ }
+ };
+
+ // avoid testing for node type if we can. Defining this in the negative
+ // here to avoid negation in the fast path.
+ var _noNES = (typeof getDoc().firstChild.nextElementSibling == "undefined");
+ var _ns = !_noNES ? "nextElementSibling" : "nextSibling";
+ var _ps = !_noNES ? "previousElementSibling" : "previousSibling";
+ var _simpleNodeTest = (_noNES ? _isElement : yesman);
+
+ var _lookLeft = function(node){
+ // look left
+ while(node = node[_ps]){
+ if(_simpleNodeTest(node)){ return false; }
+ }
+ return true;
+ };
+
+ var _lookRight = function(node){
+ // look right
+ while(node = node[_ns]){
+ if(_simpleNodeTest(node)){ return false; }
+ }
+ return true;
+ };
+
+ var getNodeIndex = function(node){
+ var root = node.parentNode;
+ var i = 0,
+ tret = root[childNodesName],
+ ci = (node["_i"]||-1),
+ cl = (root["_l"]||-1);
+
+ if(!tret){ return -1; }
+ var l = tret.length;
+
+ // we calculate the parent length as a cheap way to invalidate the
+ // cache. It's not 100% accurate, but it's much more honest than what
+ // other libraries do
+ if( cl == l && ci >= 0 && cl >= 0 ){
+ // if it's legit, tag and release
+ return ci;
+ }
+
+ // else re-key things
+ root["_l"] = l;
+ ci = -1;
+ for(var te = root["firstElementChild"]||root["firstChild"]; te; te = te[_ns]){
+ if(_simpleNodeTest(te)){
+ te["_i"] = ++i;
+ if(node === te){
+ // NOTE:
+ // shortcutting the return at this step in indexing works
+ // very well for benchmarking but we avoid it here since
+ // it leads to potential O(n^2) behavior in sequential
+ // getNodexIndex operations on a previously un-indexed
+ // parent. We may revisit this at a later time, but for
+ // now we just want to get the right answer more often
+ // than not.
+ ci = i;
+ }
+ }
+ }
+ return ci;
+ };
+
+ var isEven = function(elem){
+ return !((getNodeIndex(elem)) % 2);
+ };
+
+ var isOdd = function(elem){
+ return ((getNodeIndex(elem)) % 2);
+ };
+
+ var pseudos = {
+ "checked": function(name, condition){
+ return function(elem){
+ return !!("checked" in elem ? elem.checked : elem.selected);
+ }
+ },
+ "first-child": function(){ return _lookLeft; },
+ "last-child": function(){ return _lookRight; },
+ "only-child": function(name, condition){
+ return function(node){
+ if(!_lookLeft(node)){ return false; }
+ if(!_lookRight(node)){ return false; }
+ return true;
+ };
+ },
+ "empty": function(name, condition){
+ return function(elem){
+ // DomQuery and jQuery get this wrong, oddly enough.
+ // The CSS 3 selectors spec is pretty explicit about it, too.
+ var cn = elem.childNodes;
+ var cnl = elem.childNodes.length;
+ // if(!cnl){ return true; }
+ for(var x=cnl-1; x >= 0; x--){
+ var nt = cn[x].nodeType;
+ if((nt === 1)||(nt == 3)){ return false; }
+ }
+ return true;
+ }
+ },
+ "contains": function(name, condition){
+ var cz = condition.charAt(0);
+ if( cz == '"' || cz == "'" ){ //remove quote
+ condition = condition.slice(1, -1);
+ }
+ return function(elem){
+ return (elem.innerHTML.indexOf(condition) >= 0);
+ }
+ },
+ "not": function(name, condition){
+ var p = getQueryParts(condition)[0];
+ var ignores = { el: 1 };
+ if(p.tag != "*"){
+ ignores.tag = 1;
+ }
+ if(!p.classes.length){
+ ignores.classes = 1;
+ }
+ var ntf = getSimpleFilterFunc(p, ignores);
+ return function(elem){
+ return (!ntf(elem));
+ }
+ },
+ "nth-child": function(name, condition){
+ var pi = parseInt;
+ // avoid re-defining function objects if we can
+ if(condition == "odd"){
+ return isOdd;
+ }else if(condition == "even"){
+ return isEven;
+ }
+ // FIXME: can we shorten this?
+ if(condition.indexOf("n") != -1){
+ var tparts = condition.split("n", 2);
+ var pred = tparts[0] ? ((tparts[0] == '-') ? -1 : pi(tparts[0])) : 1;
+ var idx = tparts[1] ? pi(tparts[1]) : 0;
+ var lb = 0, ub = -1;
+ if(pred > 0){
+ if(idx < 0){
+ idx = (idx % pred) && (pred + (idx % pred));
+ }else if(idx>0){
+ if(idx >= pred){
+ lb = idx - idx % pred;
+ }
+ idx = idx % pred;
+ }
+ }else if(pred<0){
+ pred *= -1;
+ // idx has to be greater than 0 when pred is negative;
+ // shall we throw an error here?
+ if(idx > 0){
+ ub = idx;
+ idx = idx % pred;
+ }
+ }
+ if(pred > 0){
+ return function(elem){
+ var i = getNodeIndex(elem);
+ return (i>=lb) && (ub<0 || i<=ub) && ((i % pred) == idx);
+ }
+ }else{
+ condition = idx;
+ }
+ }
+ var ncount = pi(condition);
+ return function(elem){
+ return (getNodeIndex(elem) == ncount);
+ }
+ }
+ };
+
+ var defaultGetter = (d.isIE < 9 || (dojo.isIE && dojo.isQuirks)) ? function(cond){
+ var clc = cond.toLowerCase();
+ if(clc == "class"){ cond = "className"; }
+ return function(elem){
+ return (caseSensitive ? elem.getAttribute(cond) : elem[cond]||elem[clc]);
+ }
+ } : function(cond){
+ return function(elem){
+ return (elem && elem.getAttribute && elem.hasAttribute(cond));
+ }
+ };
+
+ var getSimpleFilterFunc = function(query, ignores){
+ // generates a node tester function based on the passed query part. The
+ // query part is one of the structures generated by the query parser
+ // when it creates the query AST. The "ignores" object specifies which
+ // (if any) tests to skip, allowing the system to avoid duplicating
+ // work where it may have already been taken into account by other
+ // factors such as how the nodes to test were fetched in the first
+ // place
+ if(!query){ return yesman; }
+ ignores = ignores||{};
+
+ var ff = null;
+
+ if(!("el" in ignores)){
+ ff = agree(ff, _isElement);
+ }
+
+ if(!("tag" in ignores)){
+ if(query.tag != "*"){
+ ff = agree(ff, function(elem){
+ return (elem && (elem.tagName == query.getTag()));
+ });
+ }
+ }
+
+ if(!("classes" in ignores)){
+ each(query.classes, function(cname, idx, arr){
+ // get the class name
+ /*
+ var isWildcard = cname.charAt(cname.length-1) == "*";
+ if(isWildcard){
+ cname = cname.substr(0, cname.length-1);
+ }
+ // I dislike the regex thing, even if memoized in a cache, but it's VERY short
+ var re = new RegExp("(?:^|\\s)" + cname + (isWildcard ? ".*" : "") + "(?:\\s|$)");
+ */
+ var re = new RegExp("(?:^|\\s)" + cname + "(?:\\s|$)");
+ ff = agree(ff, function(elem){
+ return re.test(elem.className);
+ });
+ ff.count = idx;
+ });
+ }
+
+ if(!("pseudos" in ignores)){
+ each(query.pseudos, function(pseudo){
+ var pn = pseudo.name;
+ if(pseudos[pn]){
+ ff = agree(ff, pseudos[pn](pn, pseudo.value));
+ }
+ });
+ }
+
+ if(!("attrs" in ignores)){
+ each(query.attrs, function(attr){
+ var matcher;
+ var a = attr.attr;
+ // type, attr, matchFor
+ if(attr.type && attrs[attr.type]){
+ matcher = attrs[attr.type](a, attr.matchFor);
+ }else if(a.length){
+ matcher = defaultGetter(a);
+ }
+ if(matcher){
+ ff = agree(ff, matcher);
+ }
+ });
+ }
+
+ if(!("id" in ignores)){
+ if(query.id){
+ ff = agree(ff, function(elem){
+ return (!!elem && (elem.id == query.id));
+ });
+ }
+ }
+
+ if(!ff){
+ if(!("default" in ignores)){
+ ff = yesman;
+ }
+ }
+ return ff;
+ };
+
+ var _nextSibling = function(filterFunc){
+ return function(node, ret, bag){
+ while(node = node[_ns]){
+ if(_noNES && (!_isElement(node))){ continue; }
+ if(
+ (!bag || _isUnique(node, bag)) &&
+ filterFunc(node)
+ ){
+ ret.push(node);
+ }
+ break;
+ }
+ return ret;
+ }
+ };
+
+ var _nextSiblings = function(filterFunc){
+ return function(root, ret, bag){
+ var te = root[_ns];
+ while(te){
+ if(_simpleNodeTest(te)){
+ if(bag && !_isUnique(te, bag)){
+ break;
+ }
+ if(filterFunc(te)){
+ ret.push(te);
+ }
+ }
+ te = te[_ns];
+ }
+ return ret;
+ }
+ };
+
+ // get an array of child *elements*, skipping text and comment nodes
+ var _childElements = function(filterFunc){
+ filterFunc = filterFunc||yesman;
+ return function(root, ret, bag){
+ // get an array of child elements, skipping text and comment nodes
+ var te, x = 0, tret = root[childNodesName];
+ while(te = tret[x++]){
+ if(
+ _simpleNodeTest(te) &&
+ (!bag || _isUnique(te, bag)) &&
+ (filterFunc(te, x))
+ ){
+ ret.push(te);
+ }
+ }
+ return ret;
+ };
+ };
+
+ /*
+ // thanks, Dean!
+ var itemIsAfterRoot = d.isIE ? function(item, root){
+ return (item.sourceIndex > root.sourceIndex);
+ } : function(item, root){
+ return (item.compareDocumentPosition(root) == 2);
+ };
+ */
+
+ // test to see if node is below root
+ var _isDescendant = function(node, root){
+ var pn = node.parentNode;
+ while(pn){
+ if(pn == root){
+ break;
+ }
+ pn = pn.parentNode;
+ }
+ return !!pn;
+ };
+
+ var _getElementsFuncCache = {};
+
+ var getElementsFunc = function(query){
+ var retFunc = _getElementsFuncCache[query.query];
+ // if we've got a cached dispatcher, just use that
+ if(retFunc){ return retFunc; }
+ // else, generate a new on
+
+ // NOTE:
+ // this function returns a function that searches for nodes and
+ // filters them. The search may be specialized by infix operators
+ // (">", "~", or "+") else it will default to searching all
+ // descendants (the " " selector). Once a group of children is
+ // found, a test function is applied to weed out the ones we
+ // don't want. Many common cases can be fast-pathed. We spend a
+ // lot of cycles to create a dispatcher that doesn't do more work
+ // than necessary at any point since, unlike this function, the
+ // dispatchers will be called every time. The logic of generating
+ // efficient dispatchers looks like this in pseudo code:
+ //
+ // # if it's a purely descendant query (no ">", "+", or "~" modifiers)
+ // if infixOperator == " ":
+ // if only(id):
+ // return def(root):
+ // return d.byId(id, root);
+ //
+ // elif id:
+ // return def(root):
+ // return filter(d.byId(id, root));
+ //
+ // elif cssClass && getElementsByClassName:
+ // return def(root):
+ // return filter(root.getElementsByClassName(cssClass));
+ //
+ // elif only(tag):
+ // return def(root):
+ // return root.getElementsByTagName(tagName);
+ //
+ // else:
+ // # search by tag name, then filter
+ // return def(root):
+ // return filter(root.getElementsByTagName(tagName||"*"));
+ //
+ // elif infixOperator == ">":
+ // # search direct children
+ // return def(root):
+ // return filter(root.children);
+ //
+ // elif infixOperator == "+":
+ // # search next sibling
+ // return def(root):
+ // return filter(root.nextElementSibling);
+ //
+ // elif infixOperator == "~":
+ // # search rightward siblings
+ // return def(root):
+ // return filter(nextSiblings(root));
+
+ var io = query.infixOper;
+ var oper = (io ? io.oper : "");
+ // the default filter func which tests for all conditions in the query
+ // part. This is potentially inefficient, so some optimized paths may
+ // re-define it to test fewer things.
+ var filterFunc = getSimpleFilterFunc(query, { el: 1 });
+ var qt = query.tag;
+ var wildcardTag = ("*" == qt);
+ var ecs = getDoc()["getElementsByClassName"];
+
+ if(!oper){
+ // if there's no infix operator, then it's a descendant query. ID
+ // and "elements by class name" variants can be accelerated so we
+ // call them out explicitly:
+ if(query.id){
+ // testing shows that the overhead of yesman() is acceptable
+ // and can save us some bytes vs. re-defining the function
+ // everywhere.
+ filterFunc = (!query.loops && wildcardTag) ?
+ yesman :
+ getSimpleFilterFunc(query, { el: 1, id: 1 });
+
+ retFunc = function(root, arr){
+ var te = d.byId(query.id, (root.ownerDocument||root));
+ if(!te || !filterFunc(te)){ return; }
+ if(9 == root.nodeType){ // if root's a doc, we just return directly
+ return getArr(te, arr);
+ }else{ // otherwise check ancestry
+ if(_isDescendant(te, root)){
+ return getArr(te, arr);
+ }
+ }
+ }
+ }else if(
+ ecs &&
+ // isAlien check. Workaround for Prototype.js being totally evil/dumb.
+ /\{\s*\[native code\]\s*\}/.test(String(ecs)) &&
+ query.classes.length &&
+ !cssCaseBug
+ ){
+ // it's a class-based query and we've got a fast way to run it.
+
+ // ignore class and ID filters since we will have handled both
+ filterFunc = getSimpleFilterFunc(query, { el: 1, classes: 1, id: 1 });
+ var classesString = query.classes.join(" ");
+ retFunc = function(root, arr, bag){
+ var ret = getArr(0, arr), te, x=0;
+ var tret = root.getElementsByClassName(classesString);
+ while((te = tret[x++])){
+ if(filterFunc(te, root) && _isUnique(te, bag)){
+ ret.push(te);
+ }
+ }
+ return ret;
+ };
+
+ }else if(!wildcardTag && !query.loops){
+ // it's tag only. Fast-path it.
+ retFunc = function(root, arr, bag){
+ var ret = getArr(0, arr), te, x=0;
+ var tret = root.getElementsByTagName(query.getTag());
+ while((te = tret[x++])){
+ if(_isUnique(te, bag)){
+ ret.push(te);
+ }
+ }
+ return ret;
+ };
+ }else{
+ // the common case:
+ // a descendant selector without a fast path. By now it's got
+ // to have a tag selector, even if it's just "*" so we query
+ // by that and filter
+ filterFunc = getSimpleFilterFunc(query, { el: 1, tag: 1, id: 1 });
+ retFunc = function(root, arr, bag){
+ var ret = getArr(0, arr), te, x=0;
+ // we use getTag() to avoid case sensitivity issues
+ var tret = root.getElementsByTagName(query.getTag());
+ while((te = tret[x++])){
+ if(filterFunc(te, root) && _isUnique(te, bag)){
+ ret.push(te);
+ }
+ }
+ return ret;
+ };
+ }
+ }else{
+ // the query is scoped in some way. Instead of querying by tag we
+ // use some other collection to find candidate nodes
+ var skipFilters = { el: 1 };
+ if(wildcardTag){
+ skipFilters.tag = 1;
+ }
+ filterFunc = getSimpleFilterFunc(query, skipFilters);
+ if("+" == oper){
+ retFunc = _nextSibling(filterFunc);
+ }else if("~" == oper){
+ retFunc = _nextSiblings(filterFunc);
+ }else if(">" == oper){
+ retFunc = _childElements(filterFunc);
+ }
+ }
+ // cache it and return
+ return _getElementsFuncCache[query.query] = retFunc;
+ };
+
+ var filterDown = function(root, queryParts){
+ // NOTE:
+ // this is the guts of the DOM query system. It takes a list of
+ // parsed query parts and a root and finds children which match
+ // the selector represented by the parts
+ var candidates = getArr(root), qp, x, te, qpl = queryParts.length, bag, ret;
+
+ for(var i = 0; i < qpl; i++){
+ ret = [];
+ qp = queryParts[i];
+ x = candidates.length - 1;
+ if(x > 0){
+ // if we have more than one root at this level, provide a new
+ // hash to use for checking group membership but tell the
+ // system not to post-filter us since we will already have been
+ // gauranteed to be unique
+ bag = {};
+ ret.nozip = true;
+ }
+ var gef = getElementsFunc(qp);
+ for(var j = 0; (te = candidates[j]); j++){
+ // for every root, get the elements that match the descendant
+ // selector, adding them to the "ret" array and filtering them
+ // via membership in this level's bag. If there are more query
+ // parts, then this level's return will be used as the next
+ // level's candidates
+ gef(te, ret, bag);
+ }
+ if(!ret.length){ break; }
+ candidates = ret;
+ }
+ return ret;
+ };
+
+ ////////////////////////////////////////////////////////////////////////
+ // the query runner
+ ////////////////////////////////////////////////////////////////////////
+
+ // these are the primary caches for full-query results. The query
+ // dispatcher functions are generated then stored here for hash lookup in
+ // the future
+ var _queryFuncCacheDOM = {},
+ _queryFuncCacheQSA = {};
+
+ // this is the second level of spliting, from full-length queries (e.g.,
+ // "div.foo .bar") into simple query expressions (e.g., ["div.foo",
+ // ".bar"])
+ var getStepQueryFunc = function(query){
+ var qparts = getQueryParts(trim(query));
+
+ // if it's trivial, avoid iteration and zipping costs
+ if(qparts.length == 1){
+ // we optimize this case here to prevent dispatch further down the
+ // chain, potentially slowing things down. We could more elegantly
+ // handle this in filterDown(), but it's slower for simple things
+ // that need to be fast (e.g., "#someId").
+ var tef = getElementsFunc(qparts[0]);
+ return function(root){
+ var r = tef(root, new qlc());
+ if(r){ r.nozip = true; }
+ return r;
+ }
+ }
+
+ // otherwise, break it up and return a runner that iterates over the parts recursively
+ return function(root){
+ return filterDown(root, qparts);
+ }
+ };
+
+ // NOTES:
+ // * we can't trust QSA for anything but document-rooted queries, so
+ // caching is split into DOM query evaluators and QSA query evaluators
+ // * caching query results is dirty and leak-prone (or, at a minimum,
+ // prone to unbounded growth). Other toolkits may go this route, but
+ // they totally destroy their own ability to manage their memory
+ // footprint. If we implement it, it should only ever be with a fixed
+ // total element reference # limit and an LRU-style algorithm since JS
+ // has no weakref support. Caching compiled query evaluators is also
+ // potentially problematic, but even on large documents the size of the
+ // query evaluators is often < 100 function objects per evaluator (and
+ // LRU can be applied if it's ever shown to be an issue).
+ // * since IE's QSA support is currently only for HTML documents and even
+ // then only in IE 8's "standards mode", we have to detect our dispatch
+ // route at query time and keep 2 separate caches. Ugg.
+
+ // we need to determine if we think we can run a given query via
+ // querySelectorAll or if we'll need to fall back on DOM queries to get
+ // there. We need a lot of information about the environment and the query
+ // to make the determiniation (e.g. does it support QSA, does the query in
+ // question work in the native QSA impl, etc.).
+ var nua = navigator.userAgent;
+ // some versions of Safari provided QSA, but it was buggy and crash-prone.
+ // We need te detect the right "internal" webkit version to make this work.
+ var wk = "WebKit/";
+ var is525 = (
+ d.isWebKit &&
+ (nua.indexOf(wk) > 0) &&
+ (parseFloat(nua.split(wk)[1]) > 528)
+ );
+
+ // IE QSA queries may incorrectly include comment nodes, so we throw the
+ // zipping function into "remove" comments mode instead of the normal "skip
+ // it" which every other QSA-clued browser enjoys
+ var noZip = d.isIE ? "commentStrip" : "nozip";
+
+ var qsa = "querySelectorAll";
+ var qsaAvail = (
+ !!getDoc()[qsa] &&
+ // see #5832
+ (!d.isSafari || (d.isSafari > 3.1) || is525 )
+ );
+
+ //Don't bother with n+3 type of matches, IE complains if we modify those.
+ var infixSpaceRe = /n\+\d|([^ ])?([>~+])([^ =])?/g;
+ var infixSpaceFunc = function(match, pre, ch, post) {
+ return ch ? (pre ? pre + " " : "") + ch + (post ? " " + post : "") : /*n+3*/ match;
+ };
+
+ var getQueryFunc = function(query, forceDOM){
+ //Normalize query. The CSS3 selectors spec allows for omitting spaces around
+ //infix operators, >, ~ and +
+ //Do the work here since detection for spaces is used as a simple "not use QSA"
+ //test below.
+ query = query.replace(infixSpaceRe, infixSpaceFunc);
+
+ if(qsaAvail){
+ // if we've got a cached variant and we think we can do it, run it!
+ var qsaCached = _queryFuncCacheQSA[query];
+ if(qsaCached && !forceDOM){ return qsaCached; }
+ }
+
+ // else if we've got a DOM cached variant, assume that we already know
+ // all we need to and use it
+ var domCached = _queryFuncCacheDOM[query];
+ if(domCached){ return domCached; }
+
+ // TODO:
+ // today we're caching DOM and QSA branches separately so we
+ // recalc useQSA every time. If we had a way to tag root+query
+ // efficiently, we'd be in good shape to do a global cache.
+
+ var qcz = query.charAt(0);
+ var nospace = (-1 == query.indexOf(" "));
+
+ // byId searches are wicked fast compared to QSA, even when filtering
+ // is required
+ if( (query.indexOf("#") >= 0) && (nospace) ){
+ forceDOM = true;
+ }
+
+ var useQSA = (
+ qsaAvail && (!forceDOM) &&
+ // as per CSS 3, we can't currently start w/ combinator:
+ // http://www.w3.org/TR/css3-selectors/#w3cselgrammar
+ (specials.indexOf(qcz) == -1) &&
+ // IE's QSA impl sucks on pseudos
+ (!d.isIE || (query.indexOf(":") == -1)) &&
+
+ (!(cssCaseBug && (query.indexOf(".") >= 0))) &&
+
+ // FIXME:
+ // need to tighten up browser rules on ":contains" and "|=" to
+ // figure out which aren't good
+ // Latest webkit (around 531.21.8) does not seem to do well with :checked on option
+ // elements, even though according to spec, selected options should
+ // match :checked. So go nonQSA for it:
+ // http://bugs.dojotoolkit.org/ticket/5179
+ (query.indexOf(":contains") == -1) && (query.indexOf(":checked") == -1) &&
+ (query.indexOf("|=") == -1) // some browsers don't grok it
+ );
+
+ // TODO:
+ // if we've got a descendant query (e.g., "> .thinger" instead of
+ // just ".thinger") in a QSA-able doc, but are passed a child as a
+ // root, it should be possible to give the item a synthetic ID and
+ // trivially rewrite the query to the form "#synid > .thinger" to
+ // use the QSA branch
+
+
+ if(useQSA){
+ var tq = (specials.indexOf(query.charAt(query.length-1)) >= 0) ?
+ (query + " *") : query;
+ return _queryFuncCacheQSA[query] = function(root){
+ try{
+ // the QSA system contains an egregious spec bug which
+ // limits us, effectively, to only running QSA queries over
+ // entire documents. See:
+ // http://ejohn.org/blog/thoughts-on-queryselectorall/
+ // despite this, we can also handle QSA runs on simple
+ // selectors, but we don't want detection to be expensive
+ // so we're just checking for the presence of a space char
+ // right now. Not elegant, but it's cheaper than running
+ // the query parser when we might not need to
+ if(!((9 == root.nodeType) || nospace)){ throw ""; }
+ var r = root[qsa](tq);
+ // skip expensive duplication checks and just wrap in a NodeList
+ r[noZip] = true;
+ return r;
+ }catch(e){
+ // else run the DOM branch on this query, ensuring that we
+ // default that way in the future
+ return getQueryFunc(query, true)(root);
+ }
+ }
+ }else{
+ // DOM branch
+ var parts = query.split(/\s*,\s*/);
+ return _queryFuncCacheDOM[query] = ((parts.length < 2) ?
+ // if not a compound query (e.g., ".foo, .bar"), cache and return a dispatcher
+ getStepQueryFunc(query) :
+ // if it *is* a complex query, break it up into its
+ // constituent parts and return a dispatcher that will
+ // merge the parts when run
+ function(root){
+ var pindex = 0, // avoid array alloc for every invocation
+ ret = [],
+ tp;
+ while((tp = parts[pindex++])){
+ ret = ret.concat(getStepQueryFunc(tp)(root));
+ }
+ return ret;
+ }
+ );
+ }
+ };
+
+ var _zipIdx = 0;
+
+ // NOTE:
+ // this function is Moo inspired, but our own impl to deal correctly
+ // with XML in IE
+ var _nodeUID = d.isIE ? function(node){
+ if(caseSensitive){
+ // XML docs don't have uniqueID on their nodes
+ return (node.getAttribute("_uid") || node.setAttribute("_uid", ++_zipIdx) || _zipIdx);
+
+ }else{
+ return node.uniqueID;
+ }
+ } :
+ function(node){
+ return (node._uid || (node._uid = ++_zipIdx));
+ };
+
+ // determine if a node in is unique in a "bag". In this case we don't want
+ // to flatten a list of unique items, but rather just tell if the item in
+ // question is already in the bag. Normally we'd just use hash lookup to do
+ // this for us but IE's DOM is busted so we can't really count on that. On
+ // the upside, it gives us a built in unique ID function.
+ var _isUnique = function(node, bag){
+ if(!bag){ return 1; }
+ var id = _nodeUID(node);
+ if(!bag[id]){ return bag[id] = 1; }
+ return 0;
+ };
+
+ // attempt to efficiently determine if an item in a list is a dupe,
+ // returning a list of "uniques", hopefully in doucment order
+ var _zipIdxName = "_zipIdx";
+ var _zip = function(arr){
+ if(arr && arr.nozip){
+ return (qlc._wrap) ? qlc._wrap(arr) : arr;
+ }
+ // var ret = new d._NodeListCtor();
+ var ret = new qlc();
+ if(!arr || !arr.length){ return ret; }
+ if(arr[0]){
+ ret.push(arr[0]);
+ }
+ if(arr.length < 2){ return ret; }
+
+ _zipIdx++;
+
+ // we have to fork here for IE and XML docs because we can't set
+ // expandos on their nodes (apparently). *sigh*
+ if(d.isIE && caseSensitive){
+ var szidx = _zipIdx+"";
+ arr[0].setAttribute(_zipIdxName, szidx);
+ for(var x = 1, te; te = arr[x]; x++){
+ if(arr[x].getAttribute(_zipIdxName) != szidx){
+ ret.push(te);
+ }
+ te.setAttribute(_zipIdxName, szidx);
+ }
+ }else if(d.isIE && arr.commentStrip){
+ try{
+ for(var x = 1, te; te = arr[x]; x++){
+ if(_isElement(te)){
+ ret.push(te);
+ }
+ }
+ }catch(e){ /* squelch */ }
+ }else{
+ if(arr[0]){ arr[0][_zipIdxName] = _zipIdx; }
+ for(var x = 1, te; te = arr[x]; x++){
+ if(arr[x][_zipIdxName] != _zipIdx){
+ ret.push(te);
+ }
+ te[_zipIdxName] = _zipIdx;
+ }
+ }
+ return ret;
+ };
+
+ // the main executor
+ d.query = function(/*String*/ query, /*String|DOMNode?*/ root){
+ // summary:
+ // Returns nodes which match the given CSS3 selector, searching the
+ // entire document by default but optionally taking a node to scope
+ // the search by. Returns an instance of dojo.NodeList.
+ // description:
+ // dojo.query() is the swiss army knife of DOM node manipulation in
+ // Dojo. Much like Prototype's "$$" (bling-bling) function or JQuery's
+ // "$" function, dojo.query provides robust, high-performance
+ // CSS-based node selector support with the option of scoping searches
+ // to a particular sub-tree of a document.
+ //
+ // Supported Selectors:
+ // --------------------
+ //
+ // dojo.query() supports a rich set of CSS3 selectors, including:
+ //
+ // * class selectors (e.g., `.foo`)
+ // * node type selectors like `span`
+ // * ` ` descendant selectors
+ // * `>` child element selectors
+ // * `#foo` style ID selectors
+ // * `*` universal selector
+ // * `~`, the preceded-by sibling selector
+ // * `+`, the immediately preceded-by sibling selector
+ // * attribute queries:
+ // | * `[foo]` attribute presence selector
+ // | * `[foo='bar']` attribute value exact match
+ // | * `[foo~='bar']` attribute value list item match
+ // | * `[foo^='bar']` attribute start match
+ // | * `[foo$='bar']` attribute end match
+ // | * `[foo*='bar']` attribute substring match
+ // * `:first-child`, `:last-child`, and `:only-child` positional selectors
+ // * `:empty` content emtpy selector
+ // * `:checked` pseudo selector
+ // * `:nth-child(n)`, `:nth-child(2n+1)` style positional calculations
+ // * `:nth-child(even)`, `:nth-child(odd)` positional selectors
+ // * `:not(...)` negation pseudo selectors
+ //
+ // Any legal combination of these selectors will work with
+ // `dojo.query()`, including compound selectors ("," delimited).
+ // Very complex and useful searches can be constructed with this
+ // palette of selectors and when combined with functions for
+ // manipulation presented by dojo.NodeList, many types of DOM
+ // manipulation operations become very straightforward.
+ //
+ // Unsupported Selectors:
+ // ----------------------
+ //
+ // While dojo.query handles many CSS3 selectors, some fall outside of
+ // what's reasonable for a programmatic node querying engine to
+ // handle. Currently unsupported selectors include:
+ //
+ // * namespace-differentiated selectors of any form
+ // * all `::` pseduo-element selectors
+ // * certain pseduo-selectors which don't get a lot of day-to-day use:
+ // | * `:root`, `:lang()`, `:target`, `:focus`
+ // * all visual and state selectors:
+ // | * `:root`, `:active`, `:hover`, `:visisted`, `:link`,
+ // `:enabled`, `:disabled`
+ // * `:*-of-type` pseudo selectors
+ //
+ // dojo.query and XML Documents:
+ // -----------------------------
+ //
+ // `dojo.query` (as of dojo 1.2) supports searching XML documents
+ // in a case-sensitive manner. If an HTML document is served with
+ // a doctype that forces case-sensitivity (e.g., XHTML 1.1
+ // Strict), dojo.query() will detect this and "do the right
+ // thing". Case sensitivity is dependent upon the document being
+ // searched and not the query used. It is therefore possible to
+ // use case-sensitive queries on strict sub-documents (iframes,
+ // etc.) or XML documents while still assuming case-insensitivity
+ // for a host/root document.
+ //
+ // Non-selector Queries:
+ // ---------------------
+ //
+ // If something other than a String is passed for the query,
+ // `dojo.query` will return a new `dojo.NodeList` instance
+ // constructed from that parameter alone and all further
+ // processing will stop. This means that if you have a reference
+ // to a node or NodeList, you can quickly construct a new NodeList
+ // from the original by calling `dojo.query(node)` or
+ // `dojo.query(list)`.
+ //
+ // query:
+ // The CSS3 expression to match against. For details on the syntax of
+ // CSS3 selectors, see <http://www.w3.org/TR/css3-selectors/#selectors>
+ // root:
+ // A DOMNode (or node id) to scope the search from. Optional.
+ // returns: dojo.NodeList
+ // An instance of `dojo.NodeList`. Many methods are available on
+ // NodeLists for searching, iterating, manipulating, and handling
+ // events on the matched nodes in the returned list.
+ // example:
+ // search the entire document for elements with the class "foo":
+ // | dojo.query(".foo");
+ // these elements will match:
+ // | <span class="foo"></span>
+ // | <span class="foo bar"></span>
+ // | <p class="thud foo"></p>
+ // example:
+ // search the entire document for elements with the classes "foo" *and* "bar":
+ // | dojo.query(".foo.bar");
+ // these elements will match:
+ // | <span class="foo bar"></span>
+ // while these will not:
+ // | <span class="foo"></span>
+ // | <p class="thud foo"></p>
+ // example:
+ // find `<span>` elements which are descendants of paragraphs and
+ // which have a "highlighted" class:
+ // | dojo.query("p span.highlighted");
+ // the innermost span in this fragment matches:
+ // | <p class="foo">
+ // | <span>...
+ // | <span class="highlighted foo bar">...</span>
+ // | </span>
+ // | </p>
+ // example:
+ // set an "odd" class on all odd table rows inside of the table
+ // `#tabular_data`, using the `>` (direct child) selector to avoid
+ // affecting any nested tables:
+ // | dojo.query("#tabular_data > tbody > tr:nth-child(odd)").addClass("odd");
+ // example:
+ // remove all elements with the class "error" from the document
+ // and store them in a list:
+ // | var errors = dojo.query(".error").orphan();
+ // example:
+ // add an onclick handler to every submit button in the document
+ // which causes the form to be sent via Ajax instead:
+ // | dojo.query("input[type='submit']").onclick(function(e){
+ // | dojo.stopEvent(e); // prevent sending the form
+ // | var btn = e.target;
+ // | dojo.xhrPost({
+ // | form: btn.form,
+ // | load: function(data){
+ // | // replace the form with the response
+ // | var div = dojo.doc.createElement("div");
+ // | dojo.place(div, btn.form, "after");
+ // | div.innerHTML = data;
+ // | dojo.style(btn.form, "display", "none");
+ // | }
+ // | });
+ // | });
+
+ //Set list constructor to desired value. This can change
+ //between calls, so always re-assign here.
+ qlc = d._NodeListCtor;
+
+ if(!query){
+ return new qlc();
+ }
+
+ if(query.constructor == qlc){
+ return query;
+ }
+ if(typeof query != "string"){ // inline'd type check
+ return new qlc(query); // dojo.NodeList
+ }
+ if(typeof root == "string"){ // inline'd type check
+ root = d.byId(root);
+ if(!root){ return new qlc(); }
+ }
+
+ root = root||getDoc();
+ var od = root.ownerDocument||root.documentElement;
+
+ // throw the big case sensitivity switch
+
+ // NOTE:
+ // Opera in XHTML mode doesn't detect case-sensitivity correctly
+ // and it's not clear that there's any way to test for it
+ caseSensitive = (root.contentType && root.contentType=="application/xml") ||
+ (d.isOpera && (root.doctype || od.toString() == "[object XMLDocument]")) ||
+ (!!od) &&
+ (d.isIE ? od.xml : (root.xmlVersion||od.xmlVersion));
+
+ // NOTE:
+ // adding "true" as the 2nd argument to getQueryFunc is useful for
+ // testing the DOM branch without worrying about the
+ // behavior/performance of the QSA branch.
+ var r = getQueryFunc(query)(root);
+
+ // FIXME:
+ // need to investigate this branch WRT #8074 and #8075
+ if(r && r.nozip && !qlc._wrap){
+ return r;
+ }
+ return _zip(r); // dojo.NodeList
+ }
+
+ // FIXME: need to add infrastructure for post-filtering pseudos, ala :last
+ d.query.pseudos = pseudos;
+
+ // function for filtering a NodeList based on a selector, optimized for simple selectors
+ d._filterQueryResult = function(/*NodeList*/ nodeList, /*String*/ filter, /*String|DOMNode?*/ root){
+ var tmpNodeList = new d._NodeListCtor(),
+ parts = getQueryParts(filter),
+ filterFunc =
+ (parts.length == 1 && !/[^\w#\.]/.test(filter)) ?
+ getSimpleFilterFunc(parts[0]) :
+ function(node) {
+ return dojo.query(filter, root).indexOf(node) != -1;
+ };
+ for(var x = 0, te; te = nodeList[x]; x++){
+ if(filterFunc(te)){ tmpNodeList.push(te); }
+ }
+ return tmpNodeList;
+ }
+};//end defineQuery
+
+var defineAcme= function(){
+ // a self-sufficient query impl
+ acme = {
+ trim: function(/*String*/ str){
+ // summary:
+ // trims whitespaces from both sides of the string
+ str = str.replace(/^\s+/, '');
+ for(var i = str.length - 1; i >= 0; i--){
+ if(/\S/.test(str.charAt(i))){
+ str = str.substring(0, i + 1);
+ break;
+ }
+ }
+ return str; // String
+ },
+ forEach: function(/*String*/ arr, /*Function*/ callback, /*Object?*/ thisObject){
+ // summary:
+ // an iterator function that passes items, indexes,
+ // and the array to a callback
+ if(!arr || !arr.length){ return; }
+ for(var i=0,l=arr.length; i<l; ++i){
+ callback.call(thisObject||window, arr[i], i, arr);
+ }
+ },
+ byId: function(id, doc){
+ // summary:
+ // a function that return an element by ID, but also
+ // accepts nodes safely
+ if(typeof id == "string"){
+ return (doc||document).getElementById(id); // DomNode
+ }else{
+ return id; // DomNode
+ }
+ },
+ // the default document to search
+ doc: document,
+ // the constructor for node list objects returned from query()
+ NodeList: Array
+ };
+
+ // define acme.isIE, acme.isSafari, acme.isOpera, etc.
+ var n = navigator;
+ var dua = n.userAgent;
+ var dav = n.appVersion;
+ var tv = parseFloat(dav);
+ acme.isOpera = (dua.indexOf("Opera") >= 0) ? tv: undefined;
+ acme.isKhtml = (dav.indexOf("Konqueror") >= 0) ? tv : undefined;
+ acme.isWebKit = parseFloat(dua.split("WebKit/")[1]) || undefined;
+ acme.isChrome = parseFloat(dua.split("Chrome/")[1]) || undefined;
+ var index = Math.max(dav.indexOf("WebKit"), dav.indexOf("Safari"), 0);
+ if(index && !acme.isChrome){
+ acme.isSafari = parseFloat(dav.split("Version/")[1]);
+ if(!acme.isSafari || parseFloat(dav.substr(index + 7)) <= 419.3){
+ acme.isSafari = 2;
+ }
+ }
+ if(document.all && !acme.isOpera){
+ acme.isIE = parseFloat(dav.split("MSIE ")[1]) || undefined;
+ }
+
+ Array._wrap = function(arr){ return arr; };
+ return acme;
+};
+
+ //prefers queryPortability, then acme, then dojo
+ if(this["dojo"]){
+ dojo.provide("dojo._base.query");
+
+
+ defineQuery(this["queryPortability"]||this["acme"]||dojo);
+ }else{
+ defineQuery(this["queryPortability"]||this["acme"]||defineAcme());
+ }
+
+})();
+
+/*
+*/
+
+}
+
+if(!dojo._hasResource["dojo._base.xhr"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.xhr"] = true;
+dojo.provide("dojo._base.xhr");
+
+
+
+
+
+
+(function(){
+ var _d = dojo, cfg = _d.config;
+
+ function setValue(/*Object*/obj, /*String*/name, /*String*/value){
+ //summary:
+ // For the named property in object, set the value. If a value
+ // already exists and it is a string, convert the value to be an
+ // array of values.
+
+ //Skip it if there is no value
+ if(value === null){
+ return;
+ }
+
+ var val = obj[name];
+ if(typeof val == "string"){ // inline'd type check
+ obj[name] = [val, value];
+ }else if(_d.isArray(val)){
+ val.push(value);
+ }else{
+ obj[name] = value;
+ }
+ }
+
+ dojo.fieldToObject = function(/*DOMNode||String*/ inputNode){
+ // summary:
+ // Serialize a form field to a JavaScript object.
+ //
+ // description:
+ // Returns the value encoded in a form field as
+ // as a string or an array of strings. Disabled form elements
+ // and unchecked radio and checkboxes are skipped. Multi-select
+ // elements are returned as an array of string values.
+ var ret = null;
+ var item = _d.byId(inputNode);
+ if(item){
+ var _in = item.name;
+ var type = (item.type||"").toLowerCase();
+ if(_in && type && !item.disabled){
+ if(type == "radio" || type == "checkbox"){
+ if(item.checked){ ret = item.value; }
+ }else if(item.multiple){
+ ret = [];
+ _d.query("option", item).forEach(function(opt){
+ if(opt.selected){
+ ret.push(opt.value);
+ }
+ });
+ }else{
+ ret = item.value;
+ }
+ }
+ }
+ return ret; // Object
+ };
+
+ dojo.formToObject = function(/*DOMNode||String*/ formNode){
+ // summary:
+ // Serialize a form node to a JavaScript object.
+ // description:
+ // Returns the values encoded in an HTML form as
+ // string properties in an object which it then returns. Disabled form
+ // elements, buttons, and other non-value form elements are skipped.
+ // Multi-select elements are returned as an array of string values.
+ //
+ // example:
+ // This form:
+ // | <form id="test_form">
+ // | <input type="text" name="blah" value="blah">
+ // | <input type="text" name="no_value" value="blah" disabled>
+ // | <input type="button" name="no_value2" value="blah">
+ // | <select type="select" multiple name="multi" size="5">
+ // | <option value="blah">blah</option>
+ // | <option value="thud" selected>thud</option>
+ // | <option value="thonk" selected>thonk</option>
+ // | </select>
+ // | </form>
+ //
+ // yields this object structure as the result of a call to
+ // formToObject():
+ //
+ // | {
+ // | blah: "blah",
+ // | multi: [
+ // | "thud",
+ // | "thonk"
+ // | ]
+ // | };
+
+ var ret = {};
+ var exclude = "file|submit|image|reset|button|";
+ _d.forEach(dojo.byId(formNode).elements, function(item){
+ var _in = item.name;
+ var type = (item.type||"").toLowerCase();
+ if(_in && type && exclude.indexOf(type) == -1 && !item.disabled){
+ setValue(ret, _in, _d.fieldToObject(item));
+ if(type == "image"){
+ ret[_in+".x"] = ret[_in+".y"] = ret[_in].x = ret[_in].y = 0;
+ }
+ }
+ });
+ return ret; // Object
+ };
+
+ dojo.objectToQuery = function(/*Object*/ map){
+ // summary:
+ // takes a name/value mapping object and returns a string representing
+ // a URL-encoded version of that object.
+ // example:
+ // this object:
+ //
+ // | {
+ // | blah: "blah",
+ // | multi: [
+ // | "thud",
+ // | "thonk"
+ // | ]
+ // | };
+ //
+ // yields the following query string:
+ //
+ // | "blah=blah&multi=thud&multi=thonk"
+
+ // FIXME: need to implement encodeAscii!!
+ var enc = encodeURIComponent;
+ var pairs = [];
+ var backstop = {};
+ for(var name in map){
+ var value = map[name];
+ if(value != backstop[name]){
+ var assign = enc(name) + "=";
+ if(_d.isArray(value)){
+ for(var i=0; i < value.length; i++){
+ pairs.push(assign + enc(value[i]));
+ }
+ }else{
+ pairs.push(assign + enc(value));
+ }
+ }
+ }
+ return pairs.join("&"); // String
+ };
+
+ dojo.formToQuery = function(/*DOMNode||String*/ formNode){
+ // summary:
+ // Returns a URL-encoded string representing the form passed as either a
+ // node or string ID identifying the form to serialize
+ return _d.objectToQuery(_d.formToObject(formNode)); // String
+ };
+
+ dojo.formToJson = function(/*DOMNode||String*/ formNode, /*Boolean?*/prettyPrint){
+ // summary:
+ // Create a serialized JSON string from a form node or string
+ // ID identifying the form to serialize
+ return _d.toJson(_d.formToObject(formNode), prettyPrint); // String
+ };
+
+ dojo.queryToObject = function(/*String*/ str){
+ // summary:
+ // Create an object representing a de-serialized query section of a
+ // URL. Query keys with multiple values are returned in an array.
+ //
+ // example:
+ // This string:
+ //
+ // | "foo=bar&foo=baz&thinger=%20spaces%20=blah&zonk=blarg&"
+ //
+ // results in this object structure:
+ //
+ // | {
+ // | foo: [ "bar", "baz" ],
+ // | thinger: " spaces =blah",
+ // | zonk: "blarg"
+ // | }
+ //
+ // Note that spaces and other urlencoded entities are correctly
+ // handled.
+
+ // FIXME: should we grab the URL string if we're not passed one?
+ var ret = {};
+ var qp = str.split("&");
+ var dec = decodeURIComponent;
+ _d.forEach(qp, function(item){
+ if(item.length){
+ var parts = item.split("=");
+ var name = dec(parts.shift());
+ var val = dec(parts.join("="));
+ if(typeof ret[name] == "string"){ // inline'd type check
+ ret[name] = [ret[name]];
+ }
+
+ if(_d.isArray(ret[name])){
+ ret[name].push(val);
+ }else{
+ ret[name] = val;
+ }
+ }
+ });
+ return ret; // Object
+ };
+
+ // need to block async callbacks from snatching this thread as the result
+ // of an async callback might call another sync XHR, this hangs khtml forever
+ // must checked by watchInFlight()
+
+ dojo._blockAsync = false;
+
+ // MOW: remove dojo._contentHandlers alias in 2.0
+ var handlers = _d._contentHandlers = dojo.contentHandlers = {
+ // summary:
+ // A map of availble XHR transport handle types. Name matches the
+ // `handleAs` attribute passed to XHR calls.
+ //
+ // description:
+ // A map of availble XHR transport handle types. Name matches the
+ // `handleAs` attribute passed to XHR calls. Each contentHandler is
+ // called, passing the xhr object for manipulation. The return value
+ // from the contentHandler will be passed to the `load` or `handle`
+ // functions defined in the original xhr call.
+ //
+ // example:
+ // Creating a custom content-handler:
+ // | dojo.contentHandlers.makeCaps = function(xhr){
+ // | return xhr.responseText.toUpperCase();
+ // | }
+ // | // and later:
+ // | dojo.xhrGet({
+ // | url:"foo.txt",
+ // | handleAs:"makeCaps",
+ // | load: function(data){ /* data is a toUpper version of foo.txt */ }
+ // | });
+
+ text: function(xhr){
+ // summary: A contentHandler which simply returns the plaintext response data
+ return xhr.responseText;
+ },
+ json: function(xhr){
+ // summary: A contentHandler which returns a JavaScript object created from the response data
+ return _d.fromJson(xhr.responseText || null);
+ },
+ "json-comment-filtered": function(xhr){
+ // summary: A contentHandler which expects comment-filtered JSON.
+ // description:
+ // A contentHandler which expects comment-filtered JSON.
+ // the json-comment-filtered option was implemented to prevent
+ // "JavaScript Hijacking", but it is less secure than standard JSON. Use
+ // standard JSON instead. JSON prefixing can be used to subvert hijacking.
+ //
+ // Will throw a notice suggesting to use application/json mimetype, as
+ // json-commenting can introduce security issues. To decrease the chances of hijacking,
+ // use the standard `json` contentHandler, and prefix your "JSON" with: {}&&
+ //
+ // use djConfig.useCommentedJson = true to turn off the notice
+ if(!dojo.config.useCommentedJson){
+ console.warn("Consider using the standard mimetype:application/json."
+ + " json-commenting can introduce security issues. To"
+ + " decrease the chances of hijacking, use the standard the 'json' handler and"
+ + " prefix your json with: {}&&\n"
+ + "Use djConfig.useCommentedJson=true to turn off this message.");
+ }
+
+ var value = xhr.responseText;
+ var cStartIdx = value.indexOf("\/*");
+ var cEndIdx = value.lastIndexOf("*\/");
+ if(cStartIdx == -1 || cEndIdx == -1){
+ throw new Error("JSON was not comment filtered");
+ }
+ return _d.fromJson(value.substring(cStartIdx+2, cEndIdx));
+ },
+ javascript: function(xhr){
+ // summary: A contentHandler which evaluates the response data, expecting it to be valid JavaScript
+
+ // FIXME: try Moz and IE specific eval variants?
+ return _d.eval(xhr.responseText);
+ },
+ xml: function(xhr){
+ // summary: A contentHandler returning an XML Document parsed from the response data
+ var result = xhr.responseXML;
+ if(_d.isIE && (!result || !result.documentElement)){
+ //WARNING: this branch used by the xml handling in dojo.io.iframe,
+ //so be sure to test dojo.io.iframe if making changes below.
+ var ms = function(n){ return "MSXML" + n + ".DOMDocument"; };
+ var dp = ["Microsoft.XMLDOM", ms(6), ms(4), ms(3), ms(2)];
+ _d.some(dp, function(p){
+ try{
+ var dom = new ActiveXObject(p);
+ dom.async = false;
+ dom.loadXML(xhr.responseText);
+ result = dom;
+ }catch(e){ return false; }
+ return true;
+ });
+ }
+ return result; // DOMDocument
+ },
+ "json-comment-optional": function(xhr){
+ // summary: A contentHandler which checks the presence of comment-filtered JSON and
+ // alternates between the `json` and `json-comment-filtered` contentHandlers.
+ if(xhr.responseText && /^[^{\[]*\/\*/.test(xhr.responseText)){
+ return handlers["json-comment-filtered"](xhr);
+ }else{
+ return handlers["json"](xhr);
+ }
+ }
+ };
+
+ /*=====
+ dojo.__IoArgs = function(){
+ // url: String
+ // URL to server endpoint.
+ // content: Object?
+ // Contains properties with string values. These
+ // properties will be serialized as name1=value2 and
+ // passed in the request.
+ // timeout: Integer?
+ // Milliseconds to wait for the response. If this time
+ // passes, the then error callbacks are called.
+ // form: DOMNode?
+ // DOM node for a form. Used to extract the form values
+ // and send to the server.
+ // preventCache: Boolean?
+ // Default is false. If true, then a
+ // "dojo.preventCache" parameter is sent in the request
+ // with a value that changes with each request
+ // (timestamp). Useful only with GET-type requests.
+ // handleAs: String?
+ // Acceptable values depend on the type of IO
+ // transport (see specific IO calls for more information).
+ // rawBody: String?
+ // Sets the raw body for an HTTP request. If this is used, then the content
+ // property is ignored. This is mostly useful for HTTP methods that have
+ // a body to their requests, like PUT or POST. This property can be used instead
+ // of postData and putData for dojo.rawXhrPost and dojo.rawXhrPut respectively.
+ // ioPublish: Boolean?
+ // Set this explicitly to false to prevent publishing of topics related to
+ // IO operations. Otherwise, if djConfig.ioPublish is set to true, topics
+ // will be published via dojo.publish for different phases of an IO operation.
+ // See dojo.__IoPublish for a list of topics that are published.
+ // load: Function?
+ // This function will be
+ // called on a successful HTTP response code.
+ // error: Function?
+ // This function will
+ // be called when the request fails due to a network or server error, the url
+ // is invalid, etc. It will also be called if the load or handle callback throws an
+ // exception, unless djConfig.debugAtAllCosts is true. This allows deployed applications
+ // to continue to run even when a logic error happens in the callback, while making
+ // it easier to troubleshoot while in debug mode.
+ // handle: Function?
+ // This function will
+ // be called at the end of every request, whether or not an error occurs.
+ this.url = url;
+ this.content = content;
+ this.timeout = timeout;
+ this.form = form;
+ this.preventCache = preventCache;
+ this.handleAs = handleAs;
+ this.ioPublish = ioPublish;
+ this.load = function(response, ioArgs){
+ // ioArgs: dojo.__IoCallbackArgs
+ // Provides additional information about the request.
+ // response: Object
+ // The response in the format as defined with handleAs.
+ }
+ this.error = function(response, ioArgs){
+ // ioArgs: dojo.__IoCallbackArgs
+ // Provides additional information about the request.
+ // response: Object
+ // The response in the format as defined with handleAs.
+ }
+ this.handle = function(loadOrError, response, ioArgs){
+ // loadOrError: String
+ // Provides a string that tells you whether this function
+ // was called because of success (load) or failure (error).
+ // response: Object
+ // The response in the format as defined with handleAs.
+ // ioArgs: dojo.__IoCallbackArgs
+ // Provides additional information about the request.
+ }
+ }
+ =====*/
+
+ /*=====
+ dojo.__IoCallbackArgs = function(args, xhr, url, query, handleAs, id, canDelete, json){
+ // args: Object
+ // the original object argument to the IO call.
+ // xhr: XMLHttpRequest
+ // For XMLHttpRequest calls only, the
+ // XMLHttpRequest object that was used for the
+ // request.
+ // url: String
+ // The final URL used for the call. Many times it
+ // will be different than the original args.url
+ // value.
+ // query: String
+ // For non-GET requests, the
+ // name1=value1&name2=value2 parameters sent up in
+ // the request.
+ // handleAs: String
+ // The final indicator on how the response will be
+ // handled.
+ // id: String
+ // For dojo.io.script calls only, the internal
+ // script ID used for the request.
+ // canDelete: Boolean
+ // For dojo.io.script calls only, indicates
+ // whether the script tag that represents the
+ // request can be deleted after callbacks have
+ // been called. Used internally to know when
+ // cleanup can happen on JSONP-type requests.
+ // json: Object
+ // For dojo.io.script calls only: holds the JSON
+ // response for JSONP-type requests. Used
+ // internally to hold on to the JSON responses.
+ // You should not need to access it directly --
+ // the same object should be passed to the success
+ // callbacks directly.
+ this.args = args;
+ this.xhr = xhr;
+ this.url = url;
+ this.query = query;
+ this.handleAs = handleAs;
+ this.id = id;
+ this.canDelete = canDelete;
+ this.json = json;
+ }
+ =====*/
+
+
+ /*=====
+ dojo.__IoPublish = function(){
+ // summary:
+ // This is a list of IO topics that can be published
+ // if djConfig.ioPublish is set to true. IO topics can be
+ // published for any Input/Output, network operation. So,
+ // dojo.xhr, dojo.io.script and dojo.io.iframe can all
+ // trigger these topics to be published.
+ // start: String
+ // "/dojo/io/start" is sent when there are no outstanding IO
+ // requests, and a new IO request is started. No arguments
+ // are passed with this topic.
+ // send: String
+ // "/dojo/io/send" is sent whenever a new IO request is started.
+ // It passes the dojo.Deferred for the request with the topic.
+ // load: String
+ // "/dojo/io/load" is sent whenever an IO request has loaded
+ // successfully. It passes the response and the dojo.Deferred
+ // for the request with the topic.
+ // error: String
+ // "/dojo/io/error" is sent whenever an IO request has errored.
+ // It passes the error and the dojo.Deferred
+ // for the request with the topic.
+ // done: String
+ // "/dojo/io/done" is sent whenever an IO request has completed,
+ // either by loading or by erroring. It passes the error and
+ // the dojo.Deferred for the request with the topic.
+ // stop: String
+ // "/dojo/io/stop" is sent when all outstanding IO requests have
+ // finished. No arguments are passed with this topic.
+ this.start = "/dojo/io/start";
+ this.send = "/dojo/io/send";
+ this.load = "/dojo/io/load";
+ this.error = "/dojo/io/error";
+ this.done = "/dojo/io/done";
+ this.stop = "/dojo/io/stop";
+ }
+ =====*/
+
+
+ dojo._ioSetArgs = function(/*dojo.__IoArgs*/args,
+ /*Function*/canceller,
+ /*Function*/okHandler,
+ /*Function*/errHandler){
+ // summary:
+ // sets up the Deferred and ioArgs property on the Deferred so it
+ // can be used in an io call.
+ // args:
+ // The args object passed into the public io call. Recognized properties on
+ // the args object are:
+ // canceller:
+ // The canceller function used for the Deferred object. The function
+ // will receive one argument, the Deferred object that is related to the
+ // canceller.
+ // okHandler:
+ // The first OK callback to be registered with Deferred. It has the opportunity
+ // to transform the OK response. It will receive one argument -- the Deferred
+ // object returned from this function.
+ // errHandler:
+ // The first error callback to be registered with Deferred. It has the opportunity
+ // to do cleanup on an error. It will receive two arguments: error (the
+ // Error object) and dfd, the Deferred object returned from this function.
+
+ var ioArgs = {args: args, url: args.url};
+
+ //Get values from form if requestd.
+ var formObject = null;
+ if(args.form){
+ var form = _d.byId(args.form);
+ //IE requires going through getAttributeNode instead of just getAttribute in some form cases,
+ //so use it for all. See #2844
+ var actnNode = form.getAttributeNode("action");
+ ioArgs.url = ioArgs.url || (actnNode ? actnNode.value : null);
+ formObject = _d.formToObject(form);
+ }
+
+ // set up the query params
+ var miArgs = [{}];
+
+ if(formObject){
+ // potentially over-ride url-provided params w/ form values
+ miArgs.push(formObject);
+ }
+ if(args.content){
+ // stuff in content over-rides what's set by form
+ miArgs.push(args.content);
+ }
+ if(args.preventCache){
+ miArgs.push({"dojo.preventCache": new Date().valueOf()});
+ }
+ ioArgs.query = _d.objectToQuery(_d.mixin.apply(null, miArgs));
+
+ // .. and the real work of getting the deferred in order, etc.
+ ioArgs.handleAs = args.handleAs || "text";
+ var d = new _d.Deferred(canceller);
+ d.addCallbacks(okHandler, function(error){
+ return errHandler(error, d);
+ });
+
+ //Support specifying load, error and handle callback functions from the args.
+ //For those callbacks, the "this" object will be the args object.
+ //The callbacks will get the deferred result value as the
+ //first argument and the ioArgs object as the second argument.
+ var ld = args.load;
+ if(ld && _d.isFunction(ld)){
+ d.addCallback(function(value){
+ return ld.call(args, value, ioArgs);
+ });
+ }
+ var err = args.error;
+ if(err && _d.isFunction(err)){
+ d.addErrback(function(value){
+ return err.call(args, value, ioArgs);
+ });
+ }
+ var handle = args.handle;
+ if(handle && _d.isFunction(handle)){
+ d.addBoth(function(value){
+ return handle.call(args, value, ioArgs);
+ });
+ }
+
+ //Plug in topic publishing, if dojo.publish is loaded.
+ if(cfg.ioPublish && _d.publish && ioArgs.args.ioPublish !== false){
+ d.addCallbacks(
+ function(res){
+ _d.publish("/dojo/io/load", [d, res]);
+ return res;
+ },
+ function(res){
+ _d.publish("/dojo/io/error", [d, res]);
+ return res;
+ }
+ );
+ d.addBoth(function(res){
+ _d.publish("/dojo/io/done", [d, res]);
+ return res;
+ });
+ }
+
+ d.ioArgs = ioArgs;
+
+ // FIXME: need to wire up the xhr object's abort method to something
+ // analagous in the Deferred
+ return d;
+ };
+
+ var _deferredCancel = function(/*Deferred*/dfd){
+ // summary: canceller function for dojo._ioSetArgs call.
+
+ dfd.canceled = true;
+ var xhr = dfd.ioArgs.xhr;
+ var _at = typeof xhr.abort;
+ if(_at == "function" || _at == "object" || _at == "unknown"){
+ xhr.abort();
+ }
+ var err = dfd.ioArgs.error;
+ if(!err){
+ err = new Error("xhr cancelled");
+ err.dojoType="cancel";
+ }
+ return err;
+ };
+ var _deferredOk = function(/*Deferred*/dfd){
+ // summary: okHandler function for dojo._ioSetArgs call.
+
+ var ret = handlers[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);
+ return ret === undefined ? null : ret;
+ };
+ var _deferError = function(/*Error*/error, /*Deferred*/dfd){
+ // summary: errHandler function for dojo._ioSetArgs call.
+
+ if(!dfd.ioArgs.args.failOk){
+ console.error(error);
+ }
+ return error;
+ };
+
+ // avoid setting a timer per request. It degrades performance on IE
+ // something fierece if we don't use unified loops.
+ var _inFlightIntvl = null;
+ var _inFlight = [];
+
+
+ //Use a separate count for knowing if we are starting/stopping io calls.
+ //Cannot use _inFlight.length since it can change at a different time than
+ //when we want to do this kind of test. We only want to decrement the count
+ //after a callback/errback has finished, since the callback/errback should be
+ //considered as part of finishing a request.
+ var _pubCount = 0;
+ var _checkPubCount = function(dfd){
+ if(_pubCount <= 0){
+ _pubCount = 0;
+ if(cfg.ioPublish && _d.publish && (!dfd || dfd && dfd.ioArgs.args.ioPublish !== false)){
+ _d.publish("/dojo/io/stop");
+ }
+ }
+ };
+
+ var _watchInFlight = function(){
+ //summary:
+ // internal method that checks each inflight XMLHttpRequest to see
+ // if it has completed or if the timeout situation applies.
+
+ var now = (new Date()).getTime();
+ // make sure sync calls stay thread safe, if this callback is called
+ // during a sync call and this results in another sync call before the
+ // first sync call ends the browser hangs
+ if(!_d._blockAsync){
+ // we need manual loop because we often modify _inFlight (and therefore 'i') while iterating
+ // note: the second clause is an assigment on purpose, lint may complain
+ for(var i = 0, tif; i < _inFlight.length && (tif = _inFlight[i]); i++){
+ var dfd = tif.dfd;
+ var func = function(){
+ if(!dfd || dfd.canceled || !tif.validCheck(dfd)){
+ _inFlight.splice(i--, 1);
+ _pubCount -= 1;
+ }else if(tif.ioCheck(dfd)){
+ _inFlight.splice(i--, 1);
+ tif.resHandle(dfd);
+ _pubCount -= 1;
+ }else if(dfd.startTime){
+ //did we timeout?
+ if(dfd.startTime + (dfd.ioArgs.args.timeout || 0) < now){
+ _inFlight.splice(i--, 1);
+ var err = new Error("timeout exceeded");
+ err.dojoType = "timeout";
+ dfd.errback(err);
+ //Cancel the request so the io module can do appropriate cleanup.
+ dfd.cancel();
+ _pubCount -= 1;
+ }
+ }
+ };
+ if(dojo.config.debugAtAllCosts){
+ func.call(this);
+ }else{
+ try{
+ func.call(this);
+ }catch(e){
+ dfd.errback(e);
+ }
+ }
+ }
+ }
+
+ _checkPubCount(dfd);
+
+ if(!_inFlight.length){
+ clearInterval(_inFlightIntvl);
+ _inFlightIntvl = null;
+ return;
+ }
+ };
+
+ dojo._ioCancelAll = function(){
+ //summary: Cancels all pending IO requests, regardless of IO type
+ //(xhr, script, iframe).
+ try{
+ _d.forEach(_inFlight, function(i){
+ try{
+ i.dfd.cancel();
+ }catch(e){/*squelch*/}
+ });
+ }catch(e){/*squelch*/}
+ };
+
+ //Automatically call cancel all io calls on unload
+ //in IE for trac issue #2357.
+ if(_d.isIE){
+ _d.addOnWindowUnload(_d._ioCancelAll);
+ }
+
+ _d._ioNotifyStart = function(/*Deferred*/dfd){
+ // summary:
+ // If dojo.publish is available, publish topics
+ // about the start of a request queue and/or the
+ // the beginning of request.
+ // description:
+ // Used by IO transports. An IO transport should
+ // call this method before making the network connection.
+ if(cfg.ioPublish && _d.publish && dfd.ioArgs.args.ioPublish !== false){
+ if(!_pubCount){
+ _d.publish("/dojo/io/start");
+ }
+ _pubCount += 1;
+ _d.publish("/dojo/io/send", [dfd]);
+ }
+ };
+
+ _d._ioWatch = function(dfd, validCheck, ioCheck, resHandle){
+ // summary:
+ // Watches the io request represented by dfd to see if it completes.
+ // dfd: Deferred
+ // The Deferred object to watch.
+ // validCheck: Function
+ // Function used to check if the IO request is still valid. Gets the dfd
+ // object as its only argument.
+ // ioCheck: Function
+ // Function used to check if basic IO call worked. Gets the dfd
+ // object as its only argument.
+ // resHandle: Function
+ // Function used to process response. Gets the dfd
+ // object as its only argument.
+ var args = dfd.ioArgs.args;
+ if(args.timeout){
+ dfd.startTime = (new Date()).getTime();
+ }
+
+ _inFlight.push({dfd: dfd, validCheck: validCheck, ioCheck: ioCheck, resHandle: resHandle});
+ if(!_inFlightIntvl){
+ _inFlightIntvl = setInterval(_watchInFlight, 50);
+ }
+ // handle sync requests
+ //A weakness: async calls in flight
+ //could have their handlers called as part of the
+ //_watchInFlight call, before the sync's callbacks
+ // are called.
+ if(args.sync){
+ _watchInFlight();
+ }
+ };
+
+ var _defaultContentType = "application/x-www-form-urlencoded";
+
+ var _validCheck = function(/*Deferred*/dfd){
+ return dfd.ioArgs.xhr.readyState; //boolean
+ };
+ var _ioCheck = function(/*Deferred*/dfd){
+ return 4 == dfd.ioArgs.xhr.readyState; //boolean
+ };
+ var _resHandle = function(/*Deferred*/dfd){
+ var xhr = dfd.ioArgs.xhr;
+ if(_d._isDocumentOk(xhr)){
+ dfd.callback(dfd);
+ }else{
+ var err = new Error("Unable to load " + dfd.ioArgs.url + " status:" + xhr.status);
+ err.status = xhr.status;
+ err.responseText = xhr.responseText;
+ dfd.errback(err);
+ }
+ };
+
+ dojo._ioAddQueryToUrl = function(/*dojo.__IoCallbackArgs*/ioArgs){
+ //summary: Adds query params discovered by the io deferred construction to the URL.
+ //Only use this for operations which are fundamentally GET-type operations.
+ if(ioArgs.query.length){
+ ioArgs.url += (ioArgs.url.indexOf("?") == -1 ? "?" : "&") + ioArgs.query;
+ ioArgs.query = null;
+ }
+ };
+
+ /*=====
+ dojo.declare("dojo.__XhrArgs", dojo.__IoArgs, {
+ constructor: function(){
+ // summary:
+ // In addition to the properties listed for the dojo._IoArgs type,
+ // the following properties are allowed for dojo.xhr* methods.
+ // handleAs: String?
+ // Acceptable values are: text (default), json, json-comment-optional,
+ // json-comment-filtered, javascript, xml. See `dojo.contentHandlers`
+ // sync: Boolean?
+ // false is default. Indicates whether the request should
+ // be a synchronous (blocking) request.
+ // headers: Object?
+ // Additional HTTP headers to send in the request.
+ // failOk: Boolean?
+ // false is default. Indicates whether a request should be
+ // allowed to fail (and therefore no console error message in
+ // the event of a failure)
+ this.handleAs = handleAs;
+ this.sync = sync;
+ this.headers = headers;
+ this.failOk = failOk;
+ }
+ });
+ =====*/
+
+ dojo.xhr = function(/*String*/ method, /*dojo.__XhrArgs*/ args, /*Boolean?*/ hasBody){
+ // summary:
+ // Sends an HTTP request with the given method.
+ // description:
+ // Sends an HTTP request with the given method.
+ // See also dojo.xhrGet(), xhrPost(), xhrPut() and dojo.xhrDelete() for shortcuts
+ // for those HTTP methods. There are also methods for "raw" PUT and POST methods
+ // via dojo.rawXhrPut() and dojo.rawXhrPost() respectively.
+ // method:
+ // HTTP method to be used, such as GET, POST, PUT, DELETE. Should be uppercase.
+ // hasBody:
+ // If the request has an HTTP body, then pass true for hasBody.
+
+ //Make the Deferred object for this xhr request.
+ var dfd = _d._ioSetArgs(args, _deferredCancel, _deferredOk, _deferError);
+ var ioArgs = dfd.ioArgs;
+
+ //Pass the args to _xhrObj, to allow alternate XHR calls based specific calls, like
+ //the one used for iframe proxies.
+ var xhr = ioArgs.xhr = _d._xhrObj(ioArgs.args);
+ //If XHR factory fails, cancel the deferred.
+ if(!xhr){
+ dfd.cancel();
+ return dfd;
+ }
+
+ //Allow for specifying the HTTP body completely.
+ if("postData" in args){
+ ioArgs.query = args.postData;
+ }else if("putData" in args){
+ ioArgs.query = args.putData;
+ }else if("rawBody" in args){
+ ioArgs.query = args.rawBody;
+ }else if((arguments.length > 2 && !hasBody) || "POST|PUT".indexOf(method.toUpperCase()) == -1){
+ //Check for hasBody being passed. If no hasBody,
+ //then only append query string if not a POST or PUT request.
+ _d._ioAddQueryToUrl(ioArgs);
+ }
+
+ // IE 6 is a steaming pile. It won't let you call apply() on the native function (xhr.open).
+ // workaround for IE6's apply() "issues"
+ xhr.open(method, ioArgs.url, args.sync !== true, args.user || undefined, args.password || undefined);
+ if(args.headers){
+ for(var hdr in args.headers){
+ if(hdr.toLowerCase() === "content-type" && !args.contentType){
+ args.contentType = args.headers[hdr];
+ }else if(args.headers[hdr]){
+ //Only add header if it has a value. This allows for instnace, skipping
+ //insertion of X-Requested-With by specifying empty value.
+ xhr.setRequestHeader(hdr, args.headers[hdr]);
+ }
+ }
+ }
+ // FIXME: is this appropriate for all content types?
+ xhr.setRequestHeader("Content-Type", args.contentType || _defaultContentType);
+ if(!args.headers || !("X-Requested-With" in args.headers)){
+ xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
+ }
+ // FIXME: set other headers here!
+ _d._ioNotifyStart(dfd);
+ if(dojo.config.debugAtAllCosts){
+ xhr.send(ioArgs.query);
+ }else{
+ try{
+ xhr.send(ioArgs.query);
+ }catch(e){
+ ioArgs.error = e;
+ dfd.cancel();
+ }
+ }
+ _d._ioWatch(dfd, _validCheck, _ioCheck, _resHandle);
+ xhr = null;
+ return dfd; // dojo.Deferred
+ };
+
+ dojo.xhrGet = function(/*dojo.__XhrArgs*/ args){
+ // summary:
+ // Sends an HTTP GET request to the server.
+ return _d.xhr("GET", args); // dojo.Deferred
+ };
+
+ dojo.rawXhrPost = dojo.xhrPost = function(/*dojo.__XhrArgs*/ args){
+ // summary:
+ // Sends an HTTP POST request to the server. In addtion to the properties
+ // listed for the dojo.__XhrArgs type, the following property is allowed:
+ // postData:
+ // String. Send raw data in the body of the POST request.
+ return _d.xhr("POST", args, true); // dojo.Deferred
+ };
+
+ dojo.rawXhrPut = dojo.xhrPut = function(/*dojo.__XhrArgs*/ args){
+ // summary:
+ // Sends an HTTP PUT request to the server. In addtion to the properties
+ // listed for the dojo.__XhrArgs type, the following property is allowed:
+ // putData:
+ // String. Send raw data in the body of the PUT request.
+ return _d.xhr("PUT", args, true); // dojo.Deferred
+ };
+
+ dojo.xhrDelete = function(/*dojo.__XhrArgs*/ args){
+ // summary:
+ // Sends an HTTP DELETE request to the server.
+ return _d.xhr("DELETE", args); //dojo.Deferred
+ };
+
+ /*
+ dojo.wrapForm = function(formNode){
+ //summary:
+ // A replacement for FormBind, but not implemented yet.
+
+ // FIXME: need to think harder about what extensions to this we might
+ // want. What should we allow folks to do w/ this? What events to
+ // set/send?
+ throw new Error("dojo.wrapForm not yet implemented");
+ }
+ */
+})();
+
+}
+
+if(!dojo._hasResource["dojo._base.fx"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.fx"] = true;
+dojo.provide("dojo._base.fx");
+
+
+
+
+
+
+/*
+ Animation loosely package based on Dan Pupius' work, contributed under CLA:
+ http://pupius.co.uk/js/Toolkit.Drawing.js
+*/
+(function(){
+ var d = dojo;
+ var _mixin = d._mixin;
+
+ dojo._Line = function(/*int*/ start, /*int*/ end){
+ // summary:
+ // dojo._Line is the object used to generate values from a start value
+ // to an end value
+ // start: int
+ // Beginning value for range
+ // end: int
+ // Ending value for range
+ this.start = start;
+ this.end = end;
+ };
+
+ dojo._Line.prototype.getValue = function(/*float*/ n){
+ // summary: Returns the point on the line
+ // n: a floating point number greater than 0 and less than 1
+ return ((this.end - this.start) * n) + this.start; // Decimal
+ };
+
+ dojo.Animation = function(args){
+ // summary:
+ // A generic animation class that fires callbacks into its handlers
+ // object at various states.
+ // description:
+ // A generic animation class that fires callbacks into its handlers
+ // object at various states. Nearly all dojo animation functions
+ // return an instance of this method, usually without calling the
+ // .play() method beforehand. Therefore, you will likely need to
+ // call .play() on instances of `dojo.Animation` when one is
+ // returned.
+ // args: Object
+ // The 'magic argument', mixing all the properties into this
+ // animation instance.
+
+ _mixin(this, args);
+ if(d.isArray(this.curve)){
+ this.curve = new d._Line(this.curve[0], this.curve[1]);
+ }
+
+ };
+
+ // Alias to drop come 2.0:
+ d._Animation = d.Animation;
+
+ d.extend(dojo.Animation, {
+ // duration: Integer
+ // The time in milliseonds the animation will take to run
+ duration: 350,
+
+ /*=====
+ // curve: dojo._Line|Array
+ // A two element array of start and end values, or a `dojo._Line` instance to be
+ // used in the Animation.
+ curve: null,
+
+ // easing: Function?
+ // A Function to adjust the acceleration (or deceleration) of the progress
+ // across a dojo._Line
+ easing: null,
+ =====*/
+
+ // repeat: Integer?
+ // The number of times to loop the animation
+ repeat: 0,
+
+ // rate: Integer?
+ // the time in milliseconds to wait before advancing to next frame
+ // (used as a fps timer: 1000/rate = fps)
+ rate: 20 /* 50 fps */,
+
+ /*=====
+ // delay: Integer?
+ // The time in milliseconds to wait before starting animation after it
+ // has been .play()'ed
+ delay: null,
+
+ // beforeBegin: Event?
+ // Synthetic event fired before a dojo.Animation begins playing (synchronous)
+ beforeBegin: null,
+
+ // onBegin: Event?
+ // Synthetic event fired as a dojo.Animation begins playing (useful?)
+ onBegin: null,
+
+ // onAnimate: Event?
+ // Synthetic event fired at each interval of a `dojo.Animation`
+ onAnimate: null,
+
+ // onEnd: Event?
+ // Synthetic event fired after the final frame of a `dojo.Animation`
+ onEnd: null,
+
+ // onPlay: Event?
+ // Synthetic event fired any time a `dojo.Animation` is play()'ed
+ onPlay: null,
+
+ // onPause: Event?
+ // Synthetic event fired when a `dojo.Animation` is paused
+ onPause: null,
+
+ // onStop: Event
+ // Synthetic event fires when a `dojo.Animation` is stopped
+ onStop: null,
+
+ =====*/
+
+ _percent: 0,
+ _startRepeatCount: 0,
+
+ _getStep: function(){
+ var _p = this._percent,
+ _e = this.easing
+ ;
+ return _e ? _e(_p) : _p;
+ },
+ _fire: function(/*Event*/ evt, /*Array?*/ args){
+ // summary:
+ // Convenience function. Fire event "evt" and pass it the
+ // arguments specified in "args".
+ // description:
+ // Convenience function. Fire event "evt" and pass it the
+ // arguments specified in "args".
+ // Fires the callback in the scope of the `dojo.Animation`
+ // instance.
+ // evt:
+ // The event to fire.
+ // args:
+ // The arguments to pass to the event.
+ var a = args||[];
+ if(this[evt]){
+ if(d.config.debugAtAllCosts){
+ this[evt].apply(this, a);
+ }else{
+ try{
+ this[evt].apply(this, a);
+ }catch(e){
+ // squelch and log because we shouldn't allow exceptions in
+ // synthetic event handlers to cause the internal timer to run
+ // amuck, potentially pegging the CPU. I'm not a fan of this
+ // squelch, but hopefully logging will make it clear what's
+ // going on
+ console.error("exception in animation handler for:", evt);
+ console.error(e);
+ }
+ }
+ }
+ return this; // dojo.Animation
+ },
+
+ play: function(/*int?*/ delay, /*Boolean?*/ gotoStart){
+ // summary:
+ // Start the animation.
+ // delay:
+ // How many milliseconds to delay before starting.
+ // gotoStart:
+ // If true, starts the animation from the beginning; otherwise,
+ // starts it from its current position.
+ // returns: dojo.Animation
+ // The instance to allow chaining.
+
+ var _t = this;
+ if(_t._delayTimer){ _t._clearTimer(); }
+ if(gotoStart){
+ _t._stopTimer();
+ _t._active = _t._paused = false;
+ _t._percent = 0;
+ }else if(_t._active && !_t._paused){
+ return _t;
+ }
+
+ _t._fire("beforeBegin", [_t.node]);
+
+ var de = delay || _t.delay,
+ _p = dojo.hitch(_t, "_play", gotoStart);
+
+ if(de > 0){
+ _t._delayTimer = setTimeout(_p, de);
+ return _t;
+ }
+ _p();
+ return _t;
+ },
+
+ _play: function(gotoStart){
+ var _t = this;
+ if(_t._delayTimer){ _t._clearTimer(); }
+ _t._startTime = new Date().valueOf();
+ if(_t._paused){
+ _t._startTime -= _t.duration * _t._percent;
+ }
+
+ _t._active = true;
+ _t._paused = false;
+ var value = _t.curve.getValue(_t._getStep());
+ if(!_t._percent){
+ if(!_t._startRepeatCount){
+ _t._startRepeatCount = _t.repeat;
+ }
+ _t._fire("onBegin", [value]);
+ }
+
+ _t._fire("onPlay", [value]);
+
+ _t._cycle();
+ return _t; // dojo.Animation
+ },
+
+ pause: function(){
+ // summary: Pauses a running animation.
+ var _t = this;
+ if(_t._delayTimer){ _t._clearTimer(); }
+ _t._stopTimer();
+ if(!_t._active){ return _t; /*dojo.Animation*/ }
+ _t._paused = true;
+ _t._fire("onPause", [_t.curve.getValue(_t._getStep())]);
+ return _t; // dojo.Animation
+ },
+
+ gotoPercent: function(/*Decimal*/ percent, /*Boolean?*/ andPlay){
+ // summary:
+ // Sets the progress of the animation.
+ // percent:
+ // A percentage in decimal notation (between and including 0.0 and 1.0).
+ // andPlay:
+ // If true, play the animation after setting the progress.
+ var _t = this;
+ _t._stopTimer();
+ _t._active = _t._paused = true;
+ _t._percent = percent;
+ if(andPlay){ _t.play(); }
+ return _t; // dojo.Animation
+ },
+
+ stop: function(/*boolean?*/ gotoEnd){
+ // summary: Stops a running animation.
+ // gotoEnd: If true, the animation will end.
+ var _t = this;
+ if(_t._delayTimer){ _t._clearTimer(); }
+ if(!_t._timer){ return _t; /* dojo.Animation */ }
+ _t._stopTimer();
+ if(gotoEnd){
+ _t._percent = 1;
+ }
+ _t._fire("onStop", [_t.curve.getValue(_t._getStep())]);
+ _t._active = _t._paused = false;
+ return _t; // dojo.Animation
+ },
+
+ status: function(){
+ // summary:
+ // Returns a string token representation of the status of
+ // the animation, one of: "paused", "playing", "stopped"
+ if(this._active){
+ return this._paused ? "paused" : "playing"; // String
+ }
+ return "stopped"; // String
+ },
+
+ _cycle: function(){
+ var _t = this;
+ if(_t._active){
+ var curr = new Date().valueOf();
+ var step = (curr - _t._startTime) / (_t.duration);
+
+ if(step >= 1){
+ step = 1;
+ }
+ _t._percent = step;
+
+ // Perform easing
+ if(_t.easing){
+ step = _t.easing(step);
+ }
+
+ _t._fire("onAnimate", [_t.curve.getValue(step)]);
+
+ if(_t._percent < 1){
+ _t._startTimer();
+ }else{
+ _t._active = false;
+
+ if(_t.repeat > 0){
+ _t.repeat--;
+ _t.play(null, true);
+ }else if(_t.repeat == -1){
+ _t.play(null, true);
+ }else{
+ if(_t._startRepeatCount){
+ _t.repeat = _t._startRepeatCount;
+ _t._startRepeatCount = 0;
+ }
+ }
+ _t._percent = 0;
+ _t._fire("onEnd", [_t.node]);
+ !_t.repeat && _t._stopTimer();
+ }
+ }
+ return _t; // dojo.Animation
+ },
+
+ _clearTimer: function(){
+ // summary: Clear the play delay timer
+ clearTimeout(this._delayTimer);
+ delete this._delayTimer;
+ }
+
+ });
+
+ // the local timer, stubbed into all Animation instances
+ var ctr = 0,
+ timer = null,
+ runner = {
+ run: function(){}
+ };
+
+ d.extend(d.Animation, {
+
+ _startTimer: function(){
+ if(!this._timer){
+ this._timer = d.connect(runner, "run", this, "_cycle");
+ ctr++;
+ }
+ if(!timer){
+ timer = setInterval(d.hitch(runner, "run"), this.rate);
+ }
+ },
+
+ _stopTimer: function(){
+ if(this._timer){
+ d.disconnect(this._timer);
+ this._timer = null;
+ ctr--;
+ }
+ if(ctr <= 0){
+ clearInterval(timer);
+ timer = null;
+ ctr = 0;
+ }
+ }
+
+ });
+
+ var _makeFadeable =
+ d.isIE ? function(node){
+ // only set the zoom if the "tickle" value would be the same as the
+ // default
+ var ns = node.style;
+ // don't set the width to auto if it didn't already cascade that way.
+ // We don't want to f anyones designs
+ if(!ns.width.length && d.style(node, "width") == "auto"){
+ ns.width = "auto";
+ }
+ } :
+ function(){};
+
+ dojo._fade = function(/*Object*/ args){
+ // summary:
+ // Returns an animation that will fade the node defined by
+ // args.node from the start to end values passed (args.start
+ // args.end) (end is mandatory, start is optional)
+
+ args.node = d.byId(args.node);
+ var fArgs = _mixin({ properties: {} }, args),
+ props = (fArgs.properties.opacity = {});
+
+ props.start = !("start" in fArgs) ?
+ function(){
+ return +d.style(fArgs.node, "opacity")||0;
+ } : fArgs.start;
+ props.end = fArgs.end;
+
+ var anim = d.animateProperty(fArgs);
+ d.connect(anim, "beforeBegin", d.partial(_makeFadeable, fArgs.node));
+
+ return anim; // dojo.Animation
+ };
+
+ /*=====
+ dojo.__FadeArgs = function(node, duration, easing){
+ // node: DOMNode|String
+ // The node referenced in the animation
+ // duration: Integer?
+ // Duration of the animation in milliseconds.
+ // easing: Function?
+ // An easing function.
+ this.node = node;
+ this.duration = duration;
+ this.easing = easing;
+ }
+ =====*/
+
+ dojo.fadeIn = function(/*dojo.__FadeArgs*/ args){
+ // summary:
+ // Returns an animation that will fade node defined in 'args' from
+ // its current opacity to fully opaque.
+ return d._fade(_mixin({ end: 1 }, args)); // dojo.Animation
+ };
+
+ dojo.fadeOut = function(/*dojo.__FadeArgs*/ args){
+ // summary:
+ // Returns an animation that will fade node defined in 'args'
+ // from its current opacity to fully transparent.
+ return d._fade(_mixin({ end: 0 }, args)); // dojo.Animation
+ };
+
+ dojo._defaultEasing = function(/*Decimal?*/ n){
+ // summary: The default easing function for dojo.Animation(s)
+ return 0.5 + ((Math.sin((n + 1.5) * Math.PI)) / 2);
+ };
+
+ var PropLine = function(properties){
+ // PropLine is an internal class which is used to model the values of
+ // an a group of CSS properties across an animation lifecycle. In
+ // particular, the "getValue" function handles getting interpolated
+ // values between start and end for a particular CSS value.
+ this._properties = properties;
+ for(var p in properties){
+ var prop = properties[p];
+ if(prop.start instanceof d.Color){
+ // create a reusable temp color object to keep intermediate results
+ prop.tempColor = new d.Color();
+ }
+ }
+ };
+
+ PropLine.prototype.getValue = function(r){
+ var ret = {};
+ for(var p in this._properties){
+ var prop = this._properties[p],
+ start = prop.start;
+ if(start instanceof d.Color){
+ ret[p] = d.blendColors(start, prop.end, r, prop.tempColor).toCss();
+ }else if(!d.isArray(start)){
+ ret[p] = ((prop.end - start) * r) + start + (p != "opacity" ? prop.units || "px" : 0);
+ }
+ }
+ return ret;
+ };
+
+ /*=====
+ dojo.declare("dojo.__AnimArgs", [dojo.__FadeArgs], {
+ // Properties: Object?
+ // A hash map of style properties to Objects describing the transition,
+ // such as the properties of dojo._Line with an additional 'units' property
+ properties: {}
+
+ //TODOC: add event callbacks
+ });
+ =====*/
+
+ dojo.animateProperty = function(/*dojo.__AnimArgs*/ args){
+ // summary:
+ // Returns an animation that will transition the properties of
+ // node defined in `args` depending how they are defined in
+ // `args.properties`
+ //
+ // description:
+ // `dojo.animateProperty` is the foundation of most `dojo.fx`
+ // animations. It takes an object of "properties" corresponding to
+ // style properties, and animates them in parallel over a set
+ // duration.
+ //
+ // example:
+ // A simple animation that changes the width of the specified node.
+ // | dojo.animateProperty({
+ // | node: "nodeId",
+ // | properties: { width: 400 },
+ // | }).play();
+ // Dojo figures out the start value for the width and converts the
+ // integer specified for the width to the more expressive but
+ // verbose form `{ width: { end: '400', units: 'px' } }` which you
+ // can also specify directly. Defaults to 'px' if ommitted.
+ //
+ // example:
+ // Animate width, height, and padding over 2 seconds... the
+ // pedantic way:
+ // | dojo.animateProperty({ node: node, duration:2000,
+ // | properties: {
+ // | width: { start: '200', end: '400', units:"px" },
+ // | height: { start:'200', end: '400', units:"px" },
+ // | paddingTop: { start:'5', end:'50', units:"px" }
+ // | }
+ // | }).play();
+ // Note 'paddingTop' is used over 'padding-top'. Multi-name CSS properties
+ // are written using "mixed case", as the hyphen is illegal as an object key.
+ //
+ // example:
+ // Plug in a different easing function and register a callback for
+ // when the animation ends. Easing functions accept values between
+ // zero and one and return a value on that basis. In this case, an
+ // exponential-in curve.
+ // | dojo.animateProperty({
+ // | node: "nodeId",
+ // | // dojo figures out the start value
+ // | properties: { width: { end: 400 } },
+ // | easing: function(n){
+ // | return (n==0) ? 0 : Math.pow(2, 10 * (n - 1));
+ // | },
+ // | onEnd: function(node){
+ // | // called when the animation finishes. The animation
+ // | // target is passed to this function
+ // | }
+ // | }).play(500); // delay playing half a second
+ //
+ // example:
+ // Like all `dojo.Animation`s, animateProperty returns a handle to the
+ // Animation instance, which fires the events common to Dojo FX. Use `dojo.connect`
+ // to access these events outside of the Animation definiton:
+ // | var anim = dojo.animateProperty({
+ // | node:"someId",
+ // | properties:{
+ // | width:400, height:500
+ // | }
+ // | });
+ // | dojo.connect(anim,"onEnd", function(){
+ // | console.log("animation ended");
+ // | });
+ // | // play the animation now:
+ // | anim.play();
+ //
+ // example:
+ // Each property can be a function whose return value is substituted along.
+ // Additionally, each measurement (eg: start, end) can be a function. The node
+ // reference is passed direcly to callbacks.
+ // | dojo.animateProperty({
+ // | node:"mine",
+ // | properties:{
+ // | height:function(node){
+ // | // shrink this node by 50%
+ // | return dojo.position(node).h / 2
+ // | },
+ // | width:{
+ // | start:function(node){ return 100; },
+ // | end:function(node){ return 200; }
+ // | }
+ // | }
+ // | }).play();
+ //
+
+ var n = args.node = d.byId(args.node);
+ if(!args.easing){ args.easing = d._defaultEasing; }
+
+ var anim = new d.Animation(args);
+ d.connect(anim, "beforeBegin", anim, function(){
+ var pm = {};
+ for(var p in this.properties){
+ // Make shallow copy of properties into pm because we overwrite
+ // some values below. In particular if start/end are functions
+ // we don't want to overwrite them or the functions won't be
+ // called if the animation is reused.
+ if(p == "width" || p == "height"){
+ this.node.display = "block";
+ }
+ var prop = this.properties[p];
+ if(d.isFunction(prop)){
+ prop = prop(n);
+ }
+ prop = pm[p] = _mixin({}, (d.isObject(prop) ? prop: { end: prop }));
+
+ if(d.isFunction(prop.start)){
+ prop.start = prop.start(n);
+ }
+ if(d.isFunction(prop.end)){
+ prop.end = prop.end(n);
+ }
+ var isColor = (p.toLowerCase().indexOf("color") >= 0);
+ function getStyle(node, p){
+ // dojo.style(node, "height") can return "auto" or "" on IE; this is more reliable:
+ var v = { height: node.offsetHeight, width: node.offsetWidth }[p];
+ if(v !== undefined){ return v; }
+ v = d.style(node, p);
+ return (p == "opacity") ? +v : (isColor ? v : parseFloat(v));
+ }
+ if(!("end" in prop)){
+ prop.end = getStyle(n, p);
+ }else if(!("start" in prop)){
+ prop.start = getStyle(n, p);
+ }
+
+ if(isColor){
+ prop.start = new d.Color(prop.start);
+ prop.end = new d.Color(prop.end);
+ }else{
+ prop.start = (p == "opacity") ? +prop.start : parseFloat(prop.start);
+ }
+ }
+ this.curve = new PropLine(pm);
+ });
+ d.connect(anim, "onAnimate", d.hitch(d, "style", anim.node));
+ return anim; // dojo.Animation
+ };
+
+ dojo.anim = function( /*DOMNode|String*/ node,
+ /*Object*/ properties,
+ /*Integer?*/ duration,
+ /*Function?*/ easing,
+ /*Function?*/ onEnd,
+ /*Integer?*/ delay){
+ // summary:
+ // A simpler interface to `dojo.animateProperty()`, also returns
+ // an instance of `dojo.Animation` but begins the animation
+ // immediately, unlike nearly every other Dojo animation API.
+ // description:
+ // `dojo.anim` is a simpler (but somewhat less powerful) version
+ // of `dojo.animateProperty`. It uses defaults for many basic properties
+ // and allows for positional parameters to be used in place of the
+ // packed "property bag" which is used for other Dojo animation
+ // methods.
+ //
+ // The `dojo.Animation` object returned from `dojo.anim` will be
+ // already playing when it is returned from this function, so
+ // calling play() on it again is (usually) a no-op.
+ // node:
+ // a DOM node or the id of a node to animate CSS properties on
+ // duration:
+ // The number of milliseconds over which the animation
+ // should run. Defaults to the global animation default duration
+ // (350ms).
+ // easing:
+ // An easing function over which to calculate acceleration
+ // and deceleration of the animation through its duration.
+ // A default easing algorithm is provided, but you may
+ // plug in any you wish. A large selection of easing algorithms
+ // are available in `dojo.fx.easing`.
+ // onEnd:
+ // A function to be called when the animation finishes
+ // running.
+ // delay:
+ // The number of milliseconds to delay beginning the
+ // animation by. The default is 0.
+ // example:
+ // Fade out a node
+ // | dojo.anim("id", { opacity: 0 });
+ // example:
+ // Fade out a node over a full second
+ // | dojo.anim("id", { opacity: 0 }, 1000);
+ return d.animateProperty({ // dojo.Animation
+ node: node,
+ duration: duration || d.Animation.prototype.duration,
+ properties: properties,
+ easing: easing,
+ onEnd: onEnd
+ }).play(delay || 0);
+ };
+})();
+
+}
+
+if(!dojo._hasResource["dojo._base.browser"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base.browser"] = true;
+dojo.provide("dojo._base.browser");
+
+
+
+
+
+
+
+
+
+ //Need this to be the last code segment in base, so do not place any
+ //dojo/requireIf calls in this file/ Otherwise, due to how the build system
+ //puts all requireIf dependencies after the current file, the require calls
+ //could be called before all of base is defined/
+ dojo.forEach(dojo.config.require, function(i){
+ dojo["require"](i);
+ });
+
+}
+
+if(!dojo._hasResource["dojo._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo._base"] = true;
+dojo.provide("dojo._base");
+
+
+
+
+
+
+
+
+
+
+
+}
+
+ //INSERT dojo.i18n._preloadLocalizations HERE
+
+ //Check if document already complete, and if so, just trigger page load
+ //listeners. NOTE: does not work with Firefox before 3.6. To support
+ //those browsers, set djConfig.afterOnLoad = true when you know Dojo is added
+ //after page load. Using a timeout so the rest of this
+ //script gets evaluated properly. This work needs to happen after the
+ //dojo.config.require work done in dojo._base.
+ if(dojo.isBrowser && (document.readyState === "complete" || dojo.config.afterOnLoad)){
+ window.setTimeout(dojo._loadInit, 100);
+ }
+})();
+
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/jquery-1.6.4.js b/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/jquery-1.6.4.js
new file mode 100644
index 000000000..b83520a3b
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/jquery-1.6.4.js
@@ -0,0 +1,9046 @@
+/*!
+ * jQuery JavaScript Library v1.6.4
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Sep 12 18:54:48 2011 -0400
+ */
+(function( window, undefined ) {
+
+// Use the correct document accordingly with window argument (sandbox)
+var document = window.document,
+ navigator = window.navigator,
+ location = window.location;
+var jQuery = (function() {
+
+// Define a local copy of jQuery
+var jQuery = function( selector, context ) {
+ // The jQuery object is actually just the init constructor 'enhanced'
+ return new jQuery.fn.init( selector, context, rootjQuery );
+ },
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$,
+
+ // A central reference to the root jQuery(document)
+ rootjQuery,
+
+ // A simple way to check for HTML strings or ID strings
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+ quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+
+ // Check if a string has a non-whitespace character in it
+ rnotwhite = /\S/,
+
+ // Used for trimming whitespace
+ trimLeft = /^\s+/,
+ trimRight = /\s+$/,
+
+ // Check for digits
+ rdigit = /\d/,
+
+ // Match a standalone tag
+ rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+
+ // JSON RegExp
+ rvalidchars = /^[\],:{}\s]*$/,
+ rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+ rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+ rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+
+ // Useragent RegExp
+ rwebkit = /(webkit)[ \/]([\w.]+)/,
+ ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
+ rmsie = /(msie) ([\w.]+)/,
+ rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
+
+ // Matches dashed string for camelizing
+ rdashAlpha = /-([a-z]|[0-9])/ig,
+ rmsPrefix = /^-ms-/,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return ( letter + "" ).toUpperCase();
+ },
+
+ // Keep a UserAgent string for use with jQuery.browser
+ userAgent = navigator.userAgent,
+
+ // For matching the engine and version of the browser
+ browserMatch,
+
+ // The deferred used on DOM ready
+ readyList,
+
+ // The ready event handler
+ DOMContentLoaded,
+
+ // Save a reference to some core methods
+ toString = Object.prototype.toString,
+ hasOwn = Object.prototype.hasOwnProperty,
+ push = Array.prototype.push,
+ slice = Array.prototype.slice,
+ trim = String.prototype.trim,
+ indexOf = Array.prototype.indexOf,
+
+ // [[Class]] -> type pairs
+ class2type = {};
+
+jQuery.fn = jQuery.prototype = {
+ constructor: jQuery,
+ init: function( selector, context, rootjQuery ) {
+ var match, elem, ret, doc;
+
+ // Handle $(""), $(null), or $(undefined)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Handle $(DOMElement)
+ if ( selector.nodeType ) {
+ this.context = this[0] = selector;
+ this.length = 1;
+ return this;
+ }
+
+ // The body element only exists once, optimize finding it
+ if ( selector === "body" && !context && document.body ) {
+ this.context = document;
+ this[0] = document.body;
+ this.selector = selector;
+ this.length = 1;
+ return this;
+ }
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ // Are we dealing with HTML string or an ID?
+ if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = quickExpr.exec( selector );
+ }
+
+ // Verify a match, and that no context was specified for #id
+ if ( match && (match[1] || !context) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[1] ) {
+ context = context instanceof jQuery ? context[0] : context;
+ doc = (context ? context.ownerDocument || context : document);
+
+ // If a single string is passed in and it's a single tag
+ // just do a createElement and skip the rest
+ ret = rsingleTag.exec( selector );
+
+ if ( ret ) {
+ if ( jQuery.isPlainObject( context ) ) {
+ selector = [ document.createElement( ret[1] ) ];
+ jQuery.fn.attr.call( selector, context, true );
+
+ } else {
+ selector = [ doc.createElement( ret[1] ) ];
+ }
+
+ } else {
+ ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
+ selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes;
+ }
+
+ return jQuery.merge( this, selector );
+
+ // HANDLE: $("#id")
+ } else {
+ elem = document.getElementById( match[2] );
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id !== match[2] ) {
+ return rootjQuery.find( selector );
+ }
+
+ // Otherwise, we inject the element directly into the jQuery object
+ this.length = 1;
+ this[0] = elem;
+ }
+
+ this.context = document;
+ this.selector = selector;
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return (context || rootjQuery).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return this.constructor( context ).find( selector );
+ }
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return rootjQuery.ready( selector );
+ }
+
+ if (selector.selector !== undefined) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return jQuery.makeArray( selector, this );
+ },
+
+ // Start with an empty selector
+ selector: "",
+
+ // The current version of jQuery being used
+ jquery: "1.6.4",
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ // The number of elements contained in the matched element set
+ size: function() {
+ return this.length;
+ },
+
+ toArray: function() {
+ return slice.call( this, 0 );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+ return num == null ?
+
+ // Return a 'clean' array
+ this.toArray() :
+
+ // Return just the object
+ ( num < 0 ? this[ this.length + num ] : this[ num ] );
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems, name, selector ) {
+ // Build a new jQuery matched element set
+ var ret = this.constructor();
+
+ if ( jQuery.isArray( elems ) ) {
+ push.apply( ret, elems );
+
+ } else {
+ jQuery.merge( ret, elems );
+ }
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ ret.context = this.context;
+
+ if ( name === "find" ) {
+ ret.selector = this.selector + (this.selector ? " " : "") + selector;
+ } else if ( name ) {
+ ret.selector = this.selector + "." + name + "(" + selector + ")";
+ }
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ // (You can seed the arguments with an array of args, but this is
+ // only used internally.)
+ each: function( callback, args ) {
+ return jQuery.each( this, callback, args );
+ },
+
+ ready: function( fn ) {
+ // Attach the listeners
+ jQuery.bindReady();
+
+ // Add the callback
+ readyList.done( fn );
+
+ return this;
+ },
+
+ eq: function( i ) {
+ return i === -1 ?
+ this.slice( i ) :
+ this.slice( i, +i + 1 );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ slice: function() {
+ return this.pushStack( slice.apply( this, arguments ),
+ "slice", slice.call(arguments).join(",") );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map(this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ }));
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor(null);
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: [].sort,
+ splice: [].splice
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[0] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+ target = arguments[1] || {};
+ // skip the boolean and the target
+ i = 2;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+ target = {};
+ }
+
+ // extend jQuery itself if only one argument is passed
+ if ( length === i ) {
+ target = this;
+ --i;
+ }
+
+ for ( ; i < length; i++ ) {
+ // Only deal with non-null/undefined values
+ if ( (options = arguments[ i ]) != null ) {
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray(src) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject(src) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend({
+ noConflict: function( deep ) {
+ if ( window.$ === jQuery ) {
+ window.$ = _$;
+ }
+
+ if ( deep && window.jQuery === jQuery ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+ },
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+ // Either a released hold or an DOMready/load event and not yet ready
+ if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if ( !document.body ) {
+ return setTimeout( jQuery.ready, 1 );
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.resolveWith( document, [ jQuery ] );
+
+ // Trigger any bound ready events
+ if ( jQuery.fn.trigger ) {
+ jQuery( document ).trigger( "ready" ).unbind( "ready" );
+ }
+ }
+ },
+
+ bindReady: function() {
+ if ( readyList ) {
+ return;
+ }
+
+ readyList = jQuery._Deferred();
+
+ // Catch cases where $(document).ready() is called after the
+ // browser event has already occurred.
+ if ( document.readyState === "complete" ) {
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ return setTimeout( jQuery.ready, 1 );
+ }
+
+ // Mozilla, Opera and webkit nightlies currently support this event
+ if ( document.addEventListener ) {
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", jQuery.ready, false );
+
+ // If IE event model is used
+ } else if ( document.attachEvent ) {
+ // ensure firing before onload,
+ // maybe late but safe also for iframes
+ document.attachEvent( "onreadystatechange", DOMContentLoaded );
+
+ // A fallback to window.onload, that will always work
+ window.attachEvent( "onload", jQuery.ready );
+
+ // If IE and not a frame
+ // continually check to see if the document is ready
+ var toplevel = false;
+
+ try {
+ toplevel = window.frameElement == null;
+ } catch(e) {}
+
+ if ( document.documentElement.doScroll && toplevel ) {
+ doScrollCheck();
+ }
+ }
+ },
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function( obj ) {
+ return jQuery.type(obj) === "function";
+ },
+
+ isArray: Array.isArray || function( obj ) {
+ return jQuery.type(obj) === "array";
+ },
+
+ // A crude way of determining if an object is a window
+ isWindow: function( obj ) {
+ return obj && typeof obj === "object" && "setInterval" in obj;
+ },
+
+ isNaN: function( obj ) {
+ return obj == null || !rdigit.test( obj ) || isNaN( obj );
+ },
+
+ type: function( obj ) {
+ return obj == null ?
+ String( obj ) :
+ class2type[ toString.call(obj) ] || "object";
+ },
+
+ isPlainObject: function( obj ) {
+ // Must be an Object.
+ // Because of IE, we also have to check the presence of the constructor property.
+ // Make sure that DOM nodes and window objects don't pass through, as well
+ if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ try {
+ // Not own constructor property must be Object
+ if ( obj.constructor &&
+ !hasOwn.call(obj, "constructor") &&
+ !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+ return false;
+ }
+ } catch ( e ) {
+ // IE8,9 Will throw exceptions on certain host objects #9897
+ return false;
+ }
+
+ // Own properties are enumerated firstly, so to speed up,
+ // if last one is own, then all properties are own.
+
+ var key;
+ for ( key in obj ) {}
+
+ return key === undefined || hasOwn.call( obj, key );
+ },
+
+ isEmptyObject: function( obj ) {
+ for ( var name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ error: function( msg ) {
+ throw msg;
+ },
+
+ parseJSON: function( data ) {
+ if ( typeof data !== "string" || !data ) {
+ return null;
+ }
+
+ // Make sure leading/trailing whitespace is removed (IE can't handle it)
+ data = jQuery.trim( data );
+
+ // Attempt to parse using the native JSON parser first
+ if ( window.JSON && window.JSON.parse ) {
+ return window.JSON.parse( data );
+ }
+
+ // Make sure the incoming data is actual JSON
+ // Logic borrowed from http://json.org/json2.js
+ if ( rvalidchars.test( data.replace( rvalidescape, "@" )
+ .replace( rvalidtokens, "]" )
+ .replace( rvalidbraces, "")) ) {
+
+ return (new Function( "return " + data ))();
+
+ }
+ jQuery.error( "Invalid JSON: " + data );
+ },
+
+ // Cross-browser xml parsing
+ parseXML: function( data ) {
+ var xml, tmp;
+ try {
+ if ( window.DOMParser ) { // Standard
+ tmp = new DOMParser();
+ xml = tmp.parseFromString( data , "text/xml" );
+ } else { // IE
+ xml = new ActiveXObject( "Microsoft.XMLDOM" );
+ xml.async = "false";
+ xml.loadXML( data );
+ }
+ } catch( e ) {
+ xml = undefined;
+ }
+ if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+ jQuery.error( "Invalid XML: " + data );
+ }
+ return xml;
+ },
+
+ noop: function() {},
+
+ // Evaluates a script in a global context
+ // Workarounds based on findings by Jim Driscoll
+ // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
+ globalEval: function( data ) {
+ if ( data && rnotwhite.test( data ) ) {
+ // We use execScript on Internet Explorer
+ // We use an anonymous function so that context is window
+ // rather than jQuery in Firefox
+ ( window.execScript || function( data ) {
+ window[ "eval" ].call( window, data );
+ } )( data );
+ }
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
+ },
+
+ // args is for internal usage only
+ each: function( object, callback, args ) {
+ var name, i = 0,
+ length = object.length,
+ isObj = length === undefined || jQuery.isFunction( object );
+
+ if ( args ) {
+ if ( isObj ) {
+ for ( name in object ) {
+ if ( callback.apply( object[ name ], args ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( ; i < length; ) {
+ if ( callback.apply( object[ i++ ], args ) === false ) {
+ break;
+ }
+ }
+ }
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if ( isObj ) {
+ for ( name in object ) {
+ if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( ; i < length; ) {
+ if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
+ break;
+ }
+ }
+ }
+ }
+
+ return object;
+ },
+
+ // Use native String.trim function wherever possible
+ trim: trim ?
+ function( text ) {
+ return text == null ?
+ "" :
+ trim.call( text );
+ } :
+
+ // Otherwise use our own trimming functionality
+ function( text ) {
+ return text == null ?
+ "" :
+ text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( array, results ) {
+ var ret = results || [];
+
+ if ( array != null ) {
+ // The window, strings (and functions) also have 'length'
+ // The extra typeof function check is to prevent crashes
+ // in Safari 2 (See: #3039)
+ // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
+ var type = jQuery.type( array );
+
+ if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
+ push.call( ret, array );
+ } else {
+ jQuery.merge( ret, array );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, array ) {
+ if ( !array ) {
+ return -1;
+ }
+
+ if ( indexOf ) {
+ return indexOf.call( array, elem );
+ }
+
+ for ( var i = 0, length = array.length; i < length; i++ ) {
+ if ( array[ i ] === elem ) {
+ return i;
+ }
+ }
+
+ return -1;
+ },
+
+ merge: function( first, second ) {
+ var i = first.length,
+ j = 0;
+
+ if ( typeof second.length === "number" ) {
+ for ( var l = second.length; j < l; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+
+ } else {
+ while ( second[j] !== undefined ) {
+ first[ i++ ] = second[ j++ ];
+ }
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, inv ) {
+ var ret = [], retVal;
+ inv = !!inv;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( var i = 0, length = elems.length; i < length; i++ ) {
+ retVal = !!callback( elems[ i ], i );
+ if ( inv !== retVal ) {
+ ret.push( elems[ i ] );
+ }
+ }
+
+ return ret;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var value, key, ret = [],
+ i = 0,
+ length = elems.length,
+ // jquery objects are treated as arrays
+ isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
+
+ // Go through the array, translating each of the items to their
+ if ( isArray ) {
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret[ ret.length ] = value;
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( key in elems ) {
+ value = callback( elems[ key ], key, arg );
+
+ if ( value != null ) {
+ ret[ ret.length ] = value;
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return ret.concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ if ( typeof context === "string" ) {
+ var tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ var args = slice.call( arguments, 2 ),
+ proxy = function() {
+ return fn.apply( context, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ // Mutifunctional method to get and set values to a collection
+ // The value/s can optionally be executed if it's a function
+ access: function( elems, key, value, exec, fn, pass ) {
+ var length = elems.length;
+
+ // Setting many attributes
+ if ( typeof key === "object" ) {
+ for ( var k in key ) {
+ jQuery.access( elems, k, key[k], exec, fn, value );
+ }
+ return elems;
+ }
+
+ // Setting one attribute
+ if ( value !== undefined ) {
+ // Optionally, function values get executed if exec is true
+ exec = !pass && exec && jQuery.isFunction(value);
+
+ for ( var i = 0; i < length; i++ ) {
+ fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
+ }
+
+ return elems;
+ }
+
+ // Getting an attribute
+ return length ? fn( elems[0], key ) : undefined;
+ },
+
+ now: function() {
+ return (new Date()).getTime();
+ },
+
+ // Use of jQuery.browser is frowned upon.
+ // More details: http://docs.jquery.com/Utilities/jQuery.browser
+ uaMatch: function( ua ) {
+ ua = ua.toLowerCase();
+
+ var match = rwebkit.exec( ua ) ||
+ ropera.exec( ua ) ||
+ rmsie.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
+ [];
+
+ return { browser: match[1] || "", version: match[2] || "0" };
+ },
+
+ sub: function() {
+ function jQuerySub( selector, context ) {
+ return new jQuerySub.fn.init( selector, context );
+ }
+ jQuery.extend( true, jQuerySub, this );
+ jQuerySub.superclass = this;
+ jQuerySub.fn = jQuerySub.prototype = this();
+ jQuerySub.fn.constructor = jQuerySub;
+ jQuerySub.sub = this.sub;
+ jQuerySub.fn.init = function init( selector, context ) {
+ if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
+ context = jQuerySub( context );
+ }
+
+ return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
+ };
+ jQuerySub.fn.init.prototype = jQuerySub.fn;
+ var rootjQuerySub = jQuerySub(document);
+ return jQuerySub;
+ },
+
+ browser: {}
+});
+
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+browserMatch = jQuery.uaMatch( userAgent );
+if ( browserMatch.browser ) {
+ jQuery.browser[ browserMatch.browser ] = true;
+ jQuery.browser.version = browserMatch.version;
+}
+
+// Deprecated, use jQuery.browser.webkit instead
+if ( jQuery.browser.webkit ) {
+ jQuery.browser.safari = true;
+}
+
+// IE doesn't match non-breaking spaces with \s
+if ( rnotwhite.test( "\xA0" ) ) {
+ trimLeft = /^[\s\xA0]+/;
+ trimRight = /[\s\xA0]+$/;
+}
+
+// All jQuery objects should point back to these
+rootjQuery = jQuery(document);
+
+// Cleanup functions for the document ready method
+if ( document.addEventListener ) {
+ DOMContentLoaded = function() {
+ document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+ jQuery.ready();
+ };
+
+} else if ( document.attachEvent ) {
+ DOMContentLoaded = function() {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if ( document.readyState === "complete" ) {
+ document.detachEvent( "onreadystatechange", DOMContentLoaded );
+ jQuery.ready();
+ }
+ };
+}
+
+// The DOM ready check for Internet Explorer
+function doScrollCheck() {
+ if ( jQuery.isReady ) {
+ return;
+ }
+
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch(e) {
+ setTimeout( doScrollCheck, 1 );
+ return;
+ }
+
+ // and execute any waiting functions
+ jQuery.ready();
+}
+
+return jQuery;
+
+})();
+
+
+var // Promise methods
+ promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ),
+ // Static reference to slice
+ sliceDeferred = [].slice;
+
+jQuery.extend({
+ // Create a simple deferred (one callbacks list)
+ _Deferred: function() {
+ var // callbacks list
+ callbacks = [],
+ // stored [ context , args ]
+ fired,
+ // to avoid firing when already doing so
+ firing,
+ // flag to know if the deferred has been cancelled
+ cancelled,
+ // the deferred itself
+ deferred = {
+
+ // done( f1, f2, ...)
+ done: function() {
+ if ( !cancelled ) {
+ var args = arguments,
+ i,
+ length,
+ elem,
+ type,
+ _fired;
+ if ( fired ) {
+ _fired = fired;
+ fired = 0;
+ }
+ for ( i = 0, length = args.length; i < length; i++ ) {
+ elem = args[ i ];
+ type = jQuery.type( elem );
+ if ( type === "array" ) {
+ deferred.done.apply( deferred, elem );
+ } else if ( type === "function" ) {
+ callbacks.push( elem );
+ }
+ }
+ if ( _fired ) {
+ deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] );
+ }
+ }
+ return this;
+ },
+
+ // resolve with given context and args
+ resolveWith: function( context, args ) {
+ if ( !cancelled && !fired && !firing ) {
+ // make sure args are available (#8421)
+ args = args || [];
+ firing = 1;
+ try {
+ while( callbacks[ 0 ] ) {
+ callbacks.shift().apply( context, args );
+ }
+ }
+ finally {
+ fired = [ context, args ];
+ firing = 0;
+ }
+ }
+ return this;
+ },
+
+ // resolve with this as context and given arguments
+ resolve: function() {
+ deferred.resolveWith( this, arguments );
+ return this;
+ },
+
+ // Has this deferred been resolved?
+ isResolved: function() {
+ return !!( firing || fired );
+ },
+
+ // Cancel
+ cancel: function() {
+ cancelled = 1;
+ callbacks = [];
+ return this;
+ }
+ };
+
+ return deferred;
+ },
+
+ // Full fledged deferred (two callbacks list)
+ Deferred: function( func ) {
+ var deferred = jQuery._Deferred(),
+ failDeferred = jQuery._Deferred(),
+ promise;
+ // Add errorDeferred methods, then and promise
+ jQuery.extend( deferred, {
+ then: function( doneCallbacks, failCallbacks ) {
+ deferred.done( doneCallbacks ).fail( failCallbacks );
+ return this;
+ },
+ always: function() {
+ return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments );
+ },
+ fail: failDeferred.done,
+ rejectWith: failDeferred.resolveWith,
+ reject: failDeferred.resolve,
+ isRejected: failDeferred.isResolved,
+ pipe: function( fnDone, fnFail ) {
+ return jQuery.Deferred(function( newDefer ) {
+ jQuery.each( {
+ done: [ fnDone, "resolve" ],
+ fail: [ fnFail, "reject" ]
+ }, function( handler, data ) {
+ var fn = data[ 0 ],
+ action = data[ 1 ],
+ returned;
+ if ( jQuery.isFunction( fn ) ) {
+ deferred[ handler ](function() {
+ returned = fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise().then( newDefer.resolve, newDefer.reject );
+ } else {
+ newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
+ }
+ });
+ } else {
+ deferred[ handler ]( newDefer[ action ] );
+ }
+ });
+ }).promise();
+ },
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ if ( obj == null ) {
+ if ( promise ) {
+ return promise;
+ }
+ promise = obj = {};
+ }
+ var i = promiseMethods.length;
+ while( i-- ) {
+ obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ];
+ }
+ return obj;
+ }
+ });
+ // Make sure only one callback list will be used
+ deferred.done( failDeferred.cancel ).fail( deferred.cancel );
+ // Unexpose cancel
+ delete deferred.cancel;
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( firstParam ) {
+ var args = arguments,
+ i = 0,
+ length = args.length,
+ count = length,
+ deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
+ firstParam :
+ jQuery.Deferred();
+ function resolveFunc( i ) {
+ return function( value ) {
+ args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+ if ( !( --count ) ) {
+ // Strange bug in FF4:
+ // Values changed onto the arguments object sometimes end up as undefined values
+ // outside the $.when method. Cloning the object into a fresh array solves the issue
+ deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) );
+ }
+ };
+ }
+ if ( length > 1 ) {
+ for( ; i < length; i++ ) {
+ if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) {
+ args[ i ].promise().then( resolveFunc(i), deferred.reject );
+ } else {
+ --count;
+ }
+ }
+ if ( !count ) {
+ deferred.resolveWith( deferred, args );
+ }
+ } else if ( deferred !== firstParam ) {
+ deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
+ }
+ return deferred.promise();
+ }
+});
+
+
+
+jQuery.support = (function() {
+
+ var div = document.createElement( "div" ),
+ documentElement = document.documentElement,
+ all,
+ a,
+ select,
+ opt,
+ input,
+ marginDiv,
+ support,
+ fragment,
+ body,
+ testElementParent,
+ testElement,
+ testElementStyle,
+ tds,
+ events,
+ eventName,
+ i,
+ isSupported;
+
+ // Preliminary tests
+ div.setAttribute("className", "t");
+ div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
+
+
+ all = div.getElementsByTagName( "*" );
+ a = div.getElementsByTagName( "a" )[ 0 ];
+
+ // Can't get basic test support
+ if ( !all || !all.length || !a ) {
+ return {};
+ }
+
+ // First batch of supports tests
+ select = document.createElement( "select" );
+ opt = select.appendChild( document.createElement("option") );
+ input = div.getElementsByTagName( "input" )[ 0 ];
+
+ support = {
+ // IE strips leading whitespace when .innerHTML is used
+ leadingWhitespace: ( div.firstChild.nodeType === 3 ),
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ tbody: !div.getElementsByTagName( "tbody" ).length,
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ htmlSerialize: !!div.getElementsByTagName( "link" ).length,
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText instead)
+ style: /top/.test( a.getAttribute("style") ),
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ hrefNormalized: ( a.getAttribute( "href" ) === "/a" ),
+
+ // Make sure that element opacity exists
+ // (IE uses filter instead)
+ // Use a regex to work around a WebKit issue. See #5145
+ opacity: /^0.55$/.test( a.style.opacity ),
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ cssFloat: !!a.style.cssFloat,
+
+ // Make sure that if no value is specified for a checkbox
+ // that it defaults to "on".
+ // (WebKit defaults to "" instead)
+ checkOn: ( input.value === "on" ),
+
+ // Make sure that a selected-by-default option has a working selected property.
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+ optSelected: opt.selected,
+
+ // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+ getSetAttribute: div.className !== "t",
+
+ // Will be defined later
+ submitBubbles: true,
+ changeBubbles: true,
+ focusinBubbles: false,
+ deleteExpando: true,
+ noCloneEvent: true,
+ inlineBlockNeedsLayout: false,
+ shrinkWrapBlocks: false,
+ reliableMarginRight: true
+ };
+
+ // Make sure checked status is properly cloned
+ input.checked = true;
+ support.noCloneChecked = input.cloneNode( true ).checked;
+
+ // Make sure that the options inside disabled selects aren't marked as disabled
+ // (WebKit marks them as disabled)
+ select.disabled = true;
+ support.optDisabled = !opt.disabled;
+
+ // Test to see if it's possible to delete an expando from an element
+ // Fails in Internet Explorer
+ try {
+ delete div.test;
+ } catch( e ) {
+ support.deleteExpando = false;
+ }
+
+ if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
+ div.attachEvent( "onclick", function() {
+ // Cloning a node shouldn't copy over any
+ // bound event handlers (IE does this)
+ support.noCloneEvent = false;
+ });
+ div.cloneNode( true ).fireEvent( "onclick" );
+ }
+
+ // Check if a radio maintains it's value
+ // after being appended to the DOM
+ input = document.createElement("input");
+ input.value = "t";
+ input.setAttribute("type", "radio");
+ support.radioValue = input.value === "t";
+
+ input.setAttribute("checked", "checked");
+ div.appendChild( input );
+ fragment = document.createDocumentFragment();
+ fragment.appendChild( div.firstChild );
+
+ // WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ div.innerHTML = "";
+
+ // Figure out if the W3C box model works as expected
+ div.style.width = div.style.paddingLeft = "1px";
+
+ body = document.getElementsByTagName( "body" )[ 0 ];
+ // We use our own, invisible, body unless the body is already present
+ // in which case we use a div (#9239)
+ testElement = document.createElement( body ? "div" : "body" );
+ testElementStyle = {
+ visibility: "hidden",
+ width: 0,
+ height: 0,
+ border: 0,
+ margin: 0,
+ background: "none"
+ };
+ if ( body ) {
+ jQuery.extend( testElementStyle, {
+ position: "absolute",
+ left: "-1000px",
+ top: "-1000px"
+ });
+ }
+ for ( i in testElementStyle ) {
+ testElement.style[ i ] = testElementStyle[ i ];
+ }
+ testElement.appendChild( div );
+ testElementParent = body || documentElement;
+ testElementParent.insertBefore( testElement, testElementParent.firstChild );
+
+ // Check if a disconnected checkbox will retain its checked
+ // value of true after appended to the DOM (IE6/7)
+ support.appendChecked = input.checked;
+
+ support.boxModel = div.offsetWidth === 2;
+
+ if ( "zoom" in div.style ) {
+ // Check if natively block-level elements act like inline-block
+ // elements when setting their display to 'inline' and giving
+ // them layout
+ // (IE < 8 does this)
+ div.style.display = "inline";
+ div.style.zoom = 1;
+ support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 );
+
+ // Check if elements with layout shrink-wrap their children
+ // (IE 6 does this)
+ div.style.display = "";
+ div.innerHTML = "<div style='width:4px;'></div>";
+ support.shrinkWrapBlocks = ( div.offsetWidth !== 2 );
+ }
+
+ div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
+ tds = div.getElementsByTagName( "td" );
+
+ // Check if table cells still have offsetWidth/Height when they are set
+ // to display:none and there are still other visible table cells in a
+ // table row; if so, offsetWidth/Height are not reliable for use when
+ // determining if an element has been hidden directly using
+ // display:none (it is still safe to use offsets if a parent element is
+ // hidden; don safety goggles and see bug #4512 for more information).
+ // (only IE 8 fails this test)
+ isSupported = ( tds[ 0 ].offsetHeight === 0 );
+
+ tds[ 0 ].style.display = "";
+ tds[ 1 ].style.display = "none";
+
+ // Check if empty table cells still have offsetWidth/Height
+ // (IE < 8 fail this test)
+ support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
+ div.innerHTML = "";
+
+ // Check if div with explicit width and no margin-right incorrectly
+ // gets computed margin-right based on width of container. For more
+ // info see bug #3333
+ // Fails in WebKit before Feb 2011 nightlies
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ if ( document.defaultView && document.defaultView.getComputedStyle ) {
+ marginDiv = document.createElement( "div" );
+ marginDiv.style.width = "0";
+ marginDiv.style.marginRight = "0";
+ div.appendChild( marginDiv );
+ support.reliableMarginRight =
+ ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
+ }
+
+ // Remove the body element we added
+ testElement.innerHTML = "";
+ testElementParent.removeChild( testElement );
+
+ // Technique from Juriy Zaytsev
+ // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
+ // We only care about the case where non-standard event systems
+ // are used, namely in IE. Short-circuiting here helps us to
+ // avoid an eval call (in setAttribute) which can cause CSP
+ // to go haywire. See: https://developer.mozilla.org/en/Security/CSP
+ if ( div.attachEvent ) {
+ for( i in {
+ submit: 1,
+ change: 1,
+ focusin: 1
+ } ) {
+ eventName = "on" + i;
+ isSupported = ( eventName in div );
+ if ( !isSupported ) {
+ div.setAttribute( eventName, "return;" );
+ isSupported = ( typeof div[ eventName ] === "function" );
+ }
+ support[ i + "Bubbles" ] = isSupported;
+ }
+ }
+
+ // Null connected elements to avoid leaks in IE
+ testElement = fragment = select = opt = body = marginDiv = div = input = null;
+
+ return support;
+})();
+
+// Keep track of boxModel
+jQuery.boxModel = jQuery.support.boxModel;
+
+
+
+
+var rbrace = /^(?:\{.*\}|\[.*\])$/,
+ rmultiDash = /([A-Z])/g;
+
+jQuery.extend({
+ cache: {},
+
+ // Please use with caution
+ uuid: 0,
+
+ // Unique for each copy of jQuery on the page
+ // Non-digits removed to match rinlinejQuery
+ expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
+
+ // The following elements throw uncatchable exceptions if you
+ // attempt to add expando properties to them.
+ noData: {
+ "embed": true,
+ // Ban all objects except for Flash (which handle expandos)
+ "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
+ "applet": true
+ },
+
+ hasData: function( elem ) {
+ elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
+
+ return !!elem && !isEmptyDataObject( elem );
+ },
+
+ data: function( elem, name, data, pvt /* Internal Use Only */ ) {
+ if ( !jQuery.acceptData( elem ) ) {
+ return;
+ }
+
+ var thisCache, ret,
+ internalKey = jQuery.expando,
+ getByName = typeof name === "string",
+
+ // We have to handle DOM nodes and JS objects differently because IE6-7
+ // can't GC object references properly across the DOM-JS boundary
+ isNode = elem.nodeType,
+
+ // Only DOM nodes need the global jQuery cache; JS object data is
+ // attached directly to the object so GC can occur automatically
+ cache = isNode ? jQuery.cache : elem,
+
+ // Only defining an ID for JS objects if its cache already exists allows
+ // the code to shortcut on the same path as a DOM node with no cache
+ id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando;
+
+ // Avoid doing any more work than we need to when trying to get data on an
+ // object that has no data at all
+ if ( (!id || (pvt && id && (cache[ id ] && !cache[ id ][ internalKey ]))) && getByName && data === undefined ) {
+ return;
+ }
+
+ if ( !id ) {
+ // Only DOM nodes need a new unique ID for each element since their data
+ // ends up in the global cache
+ if ( isNode ) {
+ elem[ jQuery.expando ] = id = ++jQuery.uuid;
+ } else {
+ id = jQuery.expando;
+ }
+ }
+
+ if ( !cache[ id ] ) {
+ cache[ id ] = {};
+
+ // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
+ // metadata on plain JS objects when the object is serialized using
+ // JSON.stringify
+ if ( !isNode ) {
+ cache[ id ].toJSON = jQuery.noop;
+ }
+ }
+
+ // An object can be passed to jQuery.data instead of a key/value pair; this gets
+ // shallow copied over onto the existing cache
+ if ( typeof name === "object" || typeof name === "function" ) {
+ if ( pvt ) {
+ cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name);
+ } else {
+ cache[ id ] = jQuery.extend(cache[ id ], name);
+ }
+ }
+
+ thisCache = cache[ id ];
+
+ // Internal jQuery data is stored in a separate object inside the object's data
+ // cache in order to avoid key collisions between internal data and user-defined
+ // data
+ if ( pvt ) {
+ if ( !thisCache[ internalKey ] ) {
+ thisCache[ internalKey ] = {};
+ }
+
+ thisCache = thisCache[ internalKey ];
+ }
+
+ if ( data !== undefined ) {
+ thisCache[ jQuery.camelCase( name ) ] = data;
+ }
+
+ // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should
+ // not attempt to inspect the internal events object using jQuery.data, as this
+ // internal data object is undocumented and subject to change.
+ if ( name === "events" && !thisCache[name] ) {
+ return thisCache[ internalKey ] && thisCache[ internalKey ].events;
+ }
+
+ // Check for both converted-to-camel and non-converted data property names
+ // If a data property was specified
+ if ( getByName ) {
+
+ // First Try to find as-is property data
+ ret = thisCache[ name ];
+
+ // Test for null|undefined property data
+ if ( ret == null ) {
+
+ // Try to find the camelCased property
+ ret = thisCache[ jQuery.camelCase( name ) ];
+ }
+ } else {
+ ret = thisCache;
+ }
+
+ return ret;
+ },
+
+ removeData: function( elem, name, pvt /* Internal Use Only */ ) {
+ if ( !jQuery.acceptData( elem ) ) {
+ return;
+ }
+
+ var thisCache,
+
+ // Reference to internal data cache key
+ internalKey = jQuery.expando,
+
+ isNode = elem.nodeType,
+
+ // See jQuery.data for more information
+ cache = isNode ? jQuery.cache : elem,
+
+ // See jQuery.data for more information
+ id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
+
+ // If there is already no cache entry for this object, there is no
+ // purpose in continuing
+ if ( !cache[ id ] ) {
+ return;
+ }
+
+ if ( name ) {
+
+ thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];
+
+ if ( thisCache ) {
+
+ // Support interoperable removal of hyphenated or camelcased keys
+ if ( !thisCache[ name ] ) {
+ name = jQuery.camelCase( name );
+ }
+
+ delete thisCache[ name ];
+
+ // If there is no data left in the cache, we want to continue
+ // and let the cache object itself get destroyed
+ if ( !isEmptyDataObject(thisCache) ) {
+ return;
+ }
+ }
+ }
+
+ // See jQuery.data for more information
+ if ( pvt ) {
+ delete cache[ id ][ internalKey ];
+
+ // Don't destroy the parent cache unless the internal data object
+ // had been the only thing left in it
+ if ( !isEmptyDataObject(cache[ id ]) ) {
+ return;
+ }
+ }
+
+ var internalCache = cache[ id ][ internalKey ];
+
+ // Browsers that fail expando deletion also refuse to delete expandos on
+ // the window, but it will allow it on all other JS objects; other browsers
+ // don't care
+ // Ensure that `cache` is not a window object #10080
+ if ( jQuery.support.deleteExpando || !cache.setInterval ) {
+ delete cache[ id ];
+ } else {
+ cache[ id ] = null;
+ }
+
+ // We destroyed the entire user cache at once because it's faster than
+ // iterating through each key, but we need to continue to persist internal
+ // data if it existed
+ if ( internalCache ) {
+ cache[ id ] = {};
+ // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
+ // metadata on plain JS objects when the object is serialized using
+ // JSON.stringify
+ if ( !isNode ) {
+ cache[ id ].toJSON = jQuery.noop;
+ }
+
+ cache[ id ][ internalKey ] = internalCache;
+
+ // Otherwise, we need to eliminate the expando on the node to avoid
+ // false lookups in the cache for entries that no longer exist
+ } else if ( isNode ) {
+ // IE does not allow us to delete expando properties from nodes,
+ // nor does it have a removeAttribute function on Document nodes;
+ // we must handle all of these cases
+ if ( jQuery.support.deleteExpando ) {
+ delete elem[ jQuery.expando ];
+ } else if ( elem.removeAttribute ) {
+ elem.removeAttribute( jQuery.expando );
+ } else {
+ elem[ jQuery.expando ] = null;
+ }
+ }
+ },
+
+ // For internal use only.
+ _data: function( elem, name, data ) {
+ return jQuery.data( elem, name, data, true );
+ },
+
+ // A method for determining if a DOM node can handle the data expando
+ acceptData: function( elem ) {
+ if ( elem.nodeName ) {
+ var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
+
+ if ( match ) {
+ return !(match === true || elem.getAttribute("classid") !== match);
+ }
+ }
+
+ return true;
+ }
+});
+
+jQuery.fn.extend({
+ data: function( key, value ) {
+ var data = null;
+
+ if ( typeof key === "undefined" ) {
+ if ( this.length ) {
+ data = jQuery.data( this[0] );
+
+ if ( this[0].nodeType === 1 ) {
+ var attr = this[0].attributes, name;
+ for ( var i = 0, l = attr.length; i < l; i++ ) {
+ name = attr[i].name;
+
+ if ( name.indexOf( "data-" ) === 0 ) {
+ name = jQuery.camelCase( name.substring(5) );
+
+ dataAttr( this[0], name, data[ name ] );
+ }
+ }
+ }
+ }
+
+ return data;
+
+ } else if ( typeof key === "object" ) {
+ return this.each(function() {
+ jQuery.data( this, key );
+ });
+ }
+
+ var parts = key.split(".");
+ parts[1] = parts[1] ? "." + parts[1] : "";
+
+ if ( value === undefined ) {
+ data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+ // Try to fetch any internally stored data first
+ if ( data === undefined && this.length ) {
+ data = jQuery.data( this[0], key );
+ data = dataAttr( this[0], key, data );
+ }
+
+ return data === undefined && parts[1] ?
+ this.data( parts[0] ) :
+ data;
+
+ } else {
+ return this.each(function() {
+ var $this = jQuery( this ),
+ args = [ parts[0], value ];
+
+ $this.triggerHandler( "setData" + parts[1] + "!", args );
+ jQuery.data( this, key, value );
+ $this.triggerHandler( "changeData" + parts[1] + "!", args );
+ });
+ }
+ },
+
+ removeData: function( key ) {
+ return this.each(function() {
+ jQuery.removeData( this, key );
+ });
+ }
+});
+
+function dataAttr( elem, key, data ) {
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+
+ var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = data === "true" ? true :
+ data === "false" ? false :
+ data === "null" ? null :
+ !jQuery.isNaN( data ) ? parseFloat( data ) :
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
+ data;
+ } catch( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ jQuery.data( elem, key, data );
+
+ } else {
+ data = undefined;
+ }
+ }
+
+ return data;
+}
+
+// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON
+// property to be considered empty objects; this property always exists in
+// order to make sure JSON.stringify does not expose internal metadata
+function isEmptyDataObject( obj ) {
+ for ( var name in obj ) {
+ if ( name !== "toJSON" ) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+
+
+
+function handleQueueMarkDefer( elem, type, src ) {
+ var deferDataKey = type + "defer",
+ queueDataKey = type + "queue",
+ markDataKey = type + "mark",
+ defer = jQuery.data( elem, deferDataKey, undefined, true );
+ if ( defer &&
+ ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) &&
+ ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) {
+ // Give room for hard-coded callbacks to fire first
+ // and eventually mark/queue something else on the element
+ setTimeout( function() {
+ if ( !jQuery.data( elem, queueDataKey, undefined, true ) &&
+ !jQuery.data( elem, markDataKey, undefined, true ) ) {
+ jQuery.removeData( elem, deferDataKey, true );
+ defer.resolve();
+ }
+ }, 0 );
+ }
+}
+
+jQuery.extend({
+
+ _mark: function( elem, type ) {
+ if ( elem ) {
+ type = (type || "fx") + "mark";
+ jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true );
+ }
+ },
+
+ _unmark: function( force, elem, type ) {
+ if ( force !== true ) {
+ type = elem;
+ elem = force;
+ force = false;
+ }
+ if ( elem ) {
+ type = type || "fx";
+ var key = type + "mark",
+ count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 );
+ if ( count ) {
+ jQuery.data( elem, key, count, true );
+ } else {
+ jQuery.removeData( elem, key, true );
+ handleQueueMarkDefer( elem, type, "mark" );
+ }
+ }
+ },
+
+ queue: function( elem, type, data ) {
+ if ( elem ) {
+ type = (type || "fx") + "queue";
+ var q = jQuery.data( elem, type, undefined, true );
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !q || jQuery.isArray(data) ) {
+ q = jQuery.data( elem, type, jQuery.makeArray(data), true );
+ } else {
+ q.push( data );
+ }
+ }
+ return q || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ fn = queue.shift(),
+ defer;
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ }
+
+ if ( fn ) {
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift("inprogress");
+ }
+
+ fn.call(elem, function() {
+ jQuery.dequeue(elem, type);
+ });
+ }
+
+ if ( !queue.length ) {
+ jQuery.removeData( elem, type + "queue", true );
+ handleQueueMarkDefer( elem, type, "queue" );
+ }
+ }
+});
+
+jQuery.fn.extend({
+ queue: function( type, data ) {
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ }
+
+ if ( data === undefined ) {
+ return jQuery.queue( this[0], type );
+ }
+ return this.each(function() {
+ var queue = jQuery.queue( this, type, data );
+
+ if ( type === "fx" && queue[0] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ });
+ },
+ dequeue: function( type ) {
+ return this.each(function() {
+ jQuery.dequeue( this, type );
+ });
+ },
+ // Based off of the plugin by Clint Helfers, with permission.
+ // http://blindsignals.com/index.php/2009/07/jquery-delay/
+ delay: function( time, type ) {
+ time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
+ type = type || "fx";
+
+ return this.queue( type, function() {
+ var elem = this;
+ setTimeout(function() {
+ jQuery.dequeue( elem, type );
+ }, time );
+ });
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, object ) {
+ if ( typeof type !== "string" ) {
+ object = type;
+ type = undefined;
+ }
+ type = type || "fx";
+ var defer = jQuery.Deferred(),
+ elements = this,
+ i = elements.length,
+ count = 1,
+ deferDataKey = type + "defer",
+ queueDataKey = type + "queue",
+ markDataKey = type + "mark",
+ tmp;
+ function resolve() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ }
+ while( i-- ) {
+ if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
+ ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
+ jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
+ jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) {
+ count++;
+ tmp.done( resolve );
+ }
+ }
+ resolve();
+ return defer.promise();
+ }
+});
+
+
+
+
+var rclass = /[\n\t\r]/g,
+ rspace = /\s+/,
+ rreturn = /\r/g,
+ rtype = /^(?:button|input)$/i,
+ rfocusable = /^(?:button|input|object|select|textarea)$/i,
+ rclickable = /^a(?:rea)?$/i,
+ rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
+ nodeHook, boolHook;
+
+jQuery.fn.extend({
+ attr: function( name, value ) {
+ return jQuery.access( this, name, value, true, jQuery.attr );
+ },
+
+ removeAttr: function( name ) {
+ return this.each(function() {
+ jQuery.removeAttr( this, name );
+ });
+ },
+
+ prop: function( name, value ) {
+ return jQuery.access( this, name, value, true, jQuery.prop );
+ },
+
+ removeProp: function( name ) {
+ name = jQuery.propFix[ name ] || name;
+ return this.each(function() {
+ // try/catch handles cases where IE balks (such as removing a property on window)
+ try {
+ this[ name ] = undefined;
+ delete this[ name ];
+ } catch( e ) {}
+ });
+ },
+
+ addClass: function( value ) {
+ var classNames, i, l, elem,
+ setClass, c, cl;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( j ) {
+ jQuery( this ).addClass( value.call(this, j, this.className) );
+ });
+ }
+
+ if ( value && typeof value === "string" ) {
+ classNames = value.split( rspace );
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ elem = this[ i ];
+
+ if ( elem.nodeType === 1 ) {
+ if ( !elem.className && classNames.length === 1 ) {
+ elem.className = value;
+
+ } else {
+ setClass = " " + elem.className + " ";
+
+ for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+ if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
+ setClass += classNames[ c ] + " ";
+ }
+ }
+ elem.className = jQuery.trim( setClass );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function( value ) {
+ var classNames, i, l, elem, className, c, cl;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( j ) {
+ jQuery( this ).removeClass( value.call(this, j, this.className) );
+ });
+ }
+
+ if ( (value && typeof value === "string") || value === undefined ) {
+ classNames = (value || "").split( rspace );
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ elem = this[ i ];
+
+ if ( elem.nodeType === 1 && elem.className ) {
+ if ( value ) {
+ className = (" " + elem.className + " ").replace( rclass, " " );
+ for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+ className = className.replace(" " + classNames[ c ] + " ", " ");
+ }
+ elem.className = jQuery.trim( className );
+
+ } else {
+ elem.className = "";
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function( value, stateVal ) {
+ var type = typeof value,
+ isBool = typeof stateVal === "boolean";
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( i ) {
+ jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
+ });
+ }
+
+ return this.each(function() {
+ if ( type === "string" ) {
+ // toggle individual class names
+ var className,
+ i = 0,
+ self = jQuery( this ),
+ state = stateVal,
+ classNames = value.split( rspace );
+
+ while ( (className = classNames[ i++ ]) ) {
+ // check each className given, space seperated list
+ state = isBool ? state : !self.hasClass( className );
+ self[ state ? "addClass" : "removeClass" ]( className );
+ }
+
+ } else if ( type === "undefined" || type === "boolean" ) {
+ if ( this.className ) {
+ // store className if set
+ jQuery._data( this, "__className__", this.className );
+ }
+
+ // toggle whole className
+ this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
+ }
+ });
+ },
+
+ hasClass: function( selector ) {
+ var className = " " + selector + " ";
+ for ( var i = 0, l = this.length; i < l; i++ ) {
+ if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ val: function( value ) {
+ var hooks, ret,
+ elem = this[0];
+
+ if ( !arguments.length ) {
+ if ( elem ) {
+ hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];
+
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
+ return ret;
+ }
+
+ ret = elem.value;
+
+ return typeof ret === "string" ?
+ // handle most common string cases
+ ret.replace(rreturn, "") :
+ // handle cases where value is null/undef or number
+ ret == null ? "" : ret;
+ }
+
+ return undefined;
+ }
+
+ var isFunction = jQuery.isFunction( value );
+
+ return this.each(function( i ) {
+ var self = jQuery(this), val;
+
+ if ( this.nodeType !== 1 ) {
+ return;
+ }
+
+ if ( isFunction ) {
+ val = value.call( this, i, self.val() );
+ } else {
+ val = value;
+ }
+
+ // Treat null/undefined as ""; convert numbers to string
+ if ( val == null ) {
+ val = "";
+ } else if ( typeof val === "number" ) {
+ val += "";
+ } else if ( jQuery.isArray( val ) ) {
+ val = jQuery.map(val, function ( value ) {
+ return value == null ? "" : value + "";
+ });
+ }
+
+ hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ];
+
+ // If set returns undefined, fall back to normal setting
+ if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
+ this.value = val;
+ }
+ });
+ }
+});
+
+jQuery.extend({
+ valHooks: {
+ option: {
+ get: function( elem ) {
+ // attributes.value is undefined in Blackberry 4.7 but
+ // uses .value. See #6932
+ var val = elem.attributes.value;
+ return !val || val.specified ? elem.value : elem.text;
+ }
+ },
+ select: {
+ get: function( elem ) {
+ var value,
+ index = elem.selectedIndex,
+ values = [],
+ options = elem.options,
+ one = elem.type === "select-one";
+
+ // Nothing was selected
+ if ( index < 0 ) {
+ return null;
+ }
+
+ // Loop through all the selected options
+ for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
+ var option = options[ i ];
+
+ // Don't return options that are disabled or in a disabled optgroup
+ if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
+ (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
+
+ // Get the specific value for the option
+ value = jQuery( option ).val();
+
+ // We don't need an array for one selects
+ if ( one ) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ // Fixes Bug #2551 -- select.val() broken in IE after form.reset()
+ if ( one && !values.length && options.length ) {
+ return jQuery( options[ index ] ).val();
+ }
+
+ return values;
+ },
+
+ set: function( elem, value ) {
+ var values = jQuery.makeArray( value );
+
+ jQuery(elem).find("option").each(function() {
+ this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
+ });
+
+ if ( !values.length ) {
+ elem.selectedIndex = -1;
+ }
+ return values;
+ }
+ }
+ },
+
+ attrFn: {
+ val: true,
+ css: true,
+ html: true,
+ text: true,
+ data: true,
+ width: true,
+ height: true,
+ offset: true
+ },
+
+ attrFix: {
+ // Always normalize to ensure hook usage
+ tabindex: "tabIndex"
+ },
+
+ attr: function( elem, name, value, pass ) {
+ var nType = elem.nodeType;
+
+ // don't get/set attributes on text, comment and attribute nodes
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+ return undefined;
+ }
+
+ if ( pass && name in jQuery.attrFn ) {
+ return jQuery( elem )[ name ]( value );
+ }
+
+ // Fallback to prop when attributes are not supported
+ if ( !("getAttribute" in elem) ) {
+ return jQuery.prop( elem, name, value );
+ }
+
+ var ret, hooks,
+ notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+ // Normalize the name if needed
+ if ( notxml ) {
+ name = jQuery.attrFix[ name ] || name;
+
+ hooks = jQuery.attrHooks[ name ];
+
+ if ( !hooks ) {
+ // Use boolHook for boolean attributes
+ if ( rboolean.test( name ) ) {
+ hooks = boolHook;
+
+ // Use nodeHook if available( IE6/7 )
+ } else if ( nodeHook ) {
+ hooks = nodeHook;
+ }
+ }
+ }
+
+ if ( value !== undefined ) {
+
+ if ( value === null ) {
+ jQuery.removeAttr( elem, name );
+ return undefined;
+
+ } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
+ return ret;
+
+ } else {
+ elem.setAttribute( name, "" + value );
+ return value;
+ }
+
+ } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
+ return ret;
+
+ } else {
+
+ ret = elem.getAttribute( name );
+
+ // Non-existent attributes return null, we normalize to undefined
+ return ret === null ?
+ undefined :
+ ret;
+ }
+ },
+
+ removeAttr: function( elem, name ) {
+ var propName;
+ if ( elem.nodeType === 1 ) {
+ name = jQuery.attrFix[ name ] || name;
+
+ jQuery.attr( elem, name, "" );
+ elem.removeAttribute( name );
+
+ // Set corresponding property to false for boolean attributes
+ if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) {
+ elem[ propName ] = false;
+ }
+ }
+ },
+
+ attrHooks: {
+ type: {
+ set: function( elem, value ) {
+ // We can't allow the type property to be changed (since it causes problems in IE)
+ if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
+ jQuery.error( "type property can't be changed" );
+ } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
+ // Setting the type on a radio button after the value resets the value in IE6-9
+ // Reset value to it's default in case type is set after value
+ // This is for element creation
+ var val = elem.value;
+ elem.setAttribute( "type", value );
+ if ( val ) {
+ elem.value = val;
+ }
+ return value;
+ }
+ }
+ },
+ // Use the value property for back compat
+ // Use the nodeHook for button elements in IE6/7 (#1954)
+ value: {
+ get: function( elem, name ) {
+ if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+ return nodeHook.get( elem, name );
+ }
+ return name in elem ?
+ elem.value :
+ null;
+ },
+ set: function( elem, value, name ) {
+ if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+ return nodeHook.set( elem, value, name );
+ }
+ // Does not return so that setAttribute is also used
+ elem.value = value;
+ }
+ }
+ },
+
+ propFix: {
+ tabindex: "tabIndex",
+ readonly: "readOnly",
+ "for": "htmlFor",
+ "class": "className",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ cellpadding: "cellPadding",
+ rowspan: "rowSpan",
+ colspan: "colSpan",
+ usemap: "useMap",
+ frameborder: "frameBorder",
+ contenteditable: "contentEditable"
+ },
+
+ prop: function( elem, name, value ) {
+ var nType = elem.nodeType;
+
+ // don't get/set properties on text, comment and attribute nodes
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+ return undefined;
+ }
+
+ var ret, hooks,
+ notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+ if ( notxml ) {
+ // Fix name and attach hooks
+ name = jQuery.propFix[ name ] || name;
+ hooks = jQuery.propHooks[ name ];
+ }
+
+ if ( value !== undefined ) {
+ if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+ return ret;
+
+ } else {
+ return (elem[ name ] = value);
+ }
+
+ } else {
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+ return ret;
+
+ } else {
+ return elem[ name ];
+ }
+ }
+ },
+
+ propHooks: {
+ tabIndex: {
+ get: function( elem ) {
+ // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ var attributeNode = elem.getAttributeNode("tabindex");
+
+ return attributeNode && attributeNode.specified ?
+ parseInt( attributeNode.value, 10 ) :
+ rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
+ 0 :
+ undefined;
+ }
+ }
+ }
+});
+
+// Add the tabindex propHook to attrHooks for back-compat
+jQuery.attrHooks.tabIndex = jQuery.propHooks.tabIndex;
+
+// Hook for boolean attributes
+boolHook = {
+ get: function( elem, name ) {
+ // Align boolean attributes with corresponding properties
+ // Fall back to attribute presence where some booleans are not supported
+ var attrNode;
+ return jQuery.prop( elem, name ) === true || ( attrNode = elem.getAttributeNode( name ) ) && attrNode.nodeValue !== false ?
+ name.toLowerCase() :
+ undefined;
+ },
+ set: function( elem, value, name ) {
+ var propName;
+ if ( value === false ) {
+ // Remove boolean attributes when set to false
+ jQuery.removeAttr( elem, name );
+ } else {
+ // value is true since we know at this point it's type boolean and not false
+ // Set boolean attributes to the same name and set the DOM property
+ propName = jQuery.propFix[ name ] || name;
+ if ( propName in elem ) {
+ // Only set the IDL specifically if it already exists on the element
+ elem[ propName ] = true;
+ }
+
+ elem.setAttribute( name, name.toLowerCase() );
+ }
+ return name;
+ }
+};
+
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !jQuery.support.getSetAttribute ) {
+
+ // Use this for any attribute in IE6/7
+ // This fixes almost every IE6/7 issue
+ nodeHook = jQuery.valHooks.button = {
+ get: function( elem, name ) {
+ var ret;
+ ret = elem.getAttributeNode( name );
+ // Return undefined if nodeValue is empty string
+ return ret && ret.nodeValue !== "" ?
+ ret.nodeValue :
+ undefined;
+ },
+ set: function( elem, value, name ) {
+ // Set the existing or create a new attribute node
+ var ret = elem.getAttributeNode( name );
+ if ( !ret ) {
+ ret = document.createAttribute( name );
+ elem.setAttributeNode( ret );
+ }
+ return (ret.nodeValue = value + "");
+ }
+ };
+
+ // Set width and height to auto instead of 0 on empty string( Bug #8150 )
+ // This is for removals
+ jQuery.each([ "width", "height" ], function( i, name ) {
+ jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+ set: function( elem, value ) {
+ if ( value === "" ) {
+ elem.setAttribute( name, "auto" );
+ return value;
+ }
+ }
+ });
+ });
+}
+
+
+// Some attributes require a special call on IE
+if ( !jQuery.support.hrefNormalized ) {
+ jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
+ jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+ get: function( elem ) {
+ var ret = elem.getAttribute( name, 2 );
+ return ret === null ? undefined : ret;
+ }
+ });
+ });
+}
+
+if ( !jQuery.support.style ) {
+ jQuery.attrHooks.style = {
+ get: function( elem ) {
+ // Return undefined in the case of empty string
+ // Normalize to lowercase since IE uppercases css property names
+ return elem.style.cssText.toLowerCase() || undefined;
+ },
+ set: function( elem, value ) {
+ return (elem.style.cssText = "" + value);
+ }
+ };
+}
+
+// Safari mis-reports the default selected property of an option
+// Accessing the parent's selectedIndex property fixes it
+if ( !jQuery.support.optSelected ) {
+ jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
+ get: function( elem ) {
+ var parent = elem.parentNode;
+
+ if ( parent ) {
+ parent.selectedIndex;
+
+ // Make sure that it also works with optgroups, see #5701
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ return null;
+ }
+ });
+}
+
+// Radios and checkboxes getter/setter
+if ( !jQuery.support.checkOn ) {
+ jQuery.each([ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = {
+ get: function( elem ) {
+ // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
+ return elem.getAttribute("value") === null ? "on" : elem.value;
+ }
+ };
+ });
+}
+jQuery.each([ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
+ set: function( elem, value ) {
+ if ( jQuery.isArray( value ) ) {
+ return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0);
+ }
+ }
+ });
+});
+
+
+
+
+var rnamespaces = /\.(.*)$/,
+ rformElems = /^(?:textarea|input|select)$/i,
+ rperiod = /\./g,
+ rspaces = / /g,
+ rescape = /[^\w\s.|`]/g,
+ fcleanup = function( nm ) {
+ return nm.replace(rescape, "\\$&");
+ };
+
+/*
+ * A number of helper functions used for managing events.
+ * Many of the ideas behind this code originated from
+ * Dean Edwards' addEvent library.
+ */
+jQuery.event = {
+
+ // Bind an event to an element
+ // Original by Dean Edwards
+ add: function( elem, types, handler, data ) {
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ if ( handler === false ) {
+ handler = returnFalse;
+ } else if ( !handler ) {
+ // Fixes bug #7229. Fix recommended by jdalton
+ return;
+ }
+
+ var handleObjIn, handleObj;
+
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ }
+
+ // Make sure that the function being executed has a unique ID
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure
+ var elemData = jQuery._data( elem );
+
+ // If no elemData is found then we must be trying to bind to one of the
+ // banned noData elements
+ if ( !elemData ) {
+ return;
+ }
+
+ var events = elemData.events,
+ eventHandle = elemData.handle;
+
+ if ( !events ) {
+ elemData.events = events = {};
+ }
+
+ if ( !eventHandle ) {
+ elemData.handle = eventHandle = function( e ) {
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
+ jQuery.event.handle.apply( eventHandle.elem, arguments ) :
+ undefined;
+ };
+ }
+
+ // Add elem as a property of the handle function
+ // This is to prevent a memory leak with non-native events in IE.
+ eventHandle.elem = elem;
+
+ // Handle multiple events separated by a space
+ // jQuery(...).bind("mouseover mouseout", fn);
+ types = types.split(" ");
+
+ var type, i = 0, namespaces;
+
+ while ( (type = types[ i++ ]) ) {
+ handleObj = handleObjIn ?
+ jQuery.extend({}, handleObjIn) :
+ { handler: handler, data: data };
+
+ // Namespaced event handlers
+ if ( type.indexOf(".") > -1 ) {
+ namespaces = type.split(".");
+ type = namespaces.shift();
+ handleObj.namespace = namespaces.slice(0).sort().join(".");
+
+ } else {
+ namespaces = [];
+ handleObj.namespace = "";
+ }
+
+ handleObj.type = type;
+ if ( !handleObj.guid ) {
+ handleObj.guid = handler.guid;
+ }
+
+ // Get the current list of functions bound to this event
+ var handlers = events[ type ],
+ special = jQuery.event.special[ type ] || {};
+
+ // Init the event handler queue
+ if ( !handlers ) {
+ handlers = events[ type ] = [];
+
+ // Check for a special event handler
+ // Only use addEventListener/attachEvent if the special
+ // events handler returns false
+ if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+ // Bind the global event handler to the element
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle, false );
+
+ } else if ( elem.attachEvent ) {
+ elem.attachEvent( "on" + type, eventHandle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add the function to the element's handler list
+ handlers.push( handleObj );
+
+ // Keep track of which events have been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ global: {},
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, pos ) {
+ // don't do events on text and comment nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ if ( handler === false ) {
+ handler = returnFalse;
+ }
+
+ var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
+ elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
+ events = elemData && elemData.events;
+
+ if ( !elemData || !events ) {
+ return;
+ }
+
+ // types is actually an event object here
+ if ( types && types.type ) {
+ handler = types.handler;
+ types = types.type;
+ }
+
+ // Unbind all events for the element
+ if ( !types || typeof types === "string" && types.charAt(0) === "." ) {
+ types = types || "";
+
+ for ( type in events ) {
+ jQuery.event.remove( elem, type + types );
+ }
+
+ return;
+ }
+
+ // Handle multiple events separated by a space
+ // jQuery(...).unbind("mouseover mouseout", fn);
+ types = types.split(" ");
+
+ while ( (type = types[ i++ ]) ) {
+ origType = type;
+ handleObj = null;
+ all = type.indexOf(".") < 0;
+ namespaces = [];
+
+ if ( !all ) {
+ // Namespaced event handlers
+ namespaces = type.split(".");
+ type = namespaces.shift();
+
+ namespace = new RegExp("(^|\\.)" +
+ jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)");
+ }
+
+ eventType = events[ type ];
+
+ if ( !eventType ) {
+ continue;
+ }
+
+ if ( !handler ) {
+ for ( j = 0; j < eventType.length; j++ ) {
+ handleObj = eventType[ j ];
+
+ if ( all || namespace.test( handleObj.namespace ) ) {
+ jQuery.event.remove( elem, origType, handleObj.handler, j );
+ eventType.splice( j--, 1 );
+ }
+ }
+
+ continue;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+
+ for ( j = pos || 0; j < eventType.length; j++ ) {
+ handleObj = eventType[ j ];
+
+ if ( handler.guid === handleObj.guid ) {
+ // remove the given handler for the given type
+ if ( all || namespace.test( handleObj.namespace ) ) {
+ if ( pos == null ) {
+ eventType.splice( j--, 1 );
+ }
+
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+
+ if ( pos != null ) {
+ break;
+ }
+ }
+ }
+
+ // remove generic event handler if no more handlers exist
+ if ( eventType.length === 0 || pos != null && eventType.length === 1 ) {
+ if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ ret = null;
+ delete events[ type ];
+ }
+ }
+
+ // Remove the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ var handle = elemData.handle;
+ if ( handle ) {
+ handle.elem = null;
+ }
+
+ delete elemData.events;
+ delete elemData.handle;
+
+ if ( jQuery.isEmptyObject( elemData ) ) {
+ jQuery.removeData( elem, undefined, true );
+ }
+ }
+ },
+
+ // Events that are safe to short-circuit if no handlers are attached.
+ // Native DOM events should not be added, they may have inline handlers.
+ customEvent: {
+ "getData": true,
+ "setData": true,
+ "changeData": true
+ },
+
+ trigger: function( event, data, elem, onlyHandlers ) {
+ // Event object or event type
+ var type = event.type || event,
+ namespaces = [],
+ exclusive;
+
+ if ( type.indexOf("!") >= 0 ) {
+ // Exclusive events trigger only for the exact event (no namespaces)
+ type = type.slice(0, -1);
+ exclusive = true;
+ }
+
+ if ( type.indexOf(".") >= 0 ) {
+ // Namespaced trigger; create a regexp to match event type in handle()
+ namespaces = type.split(".");
+ type = namespaces.shift();
+ namespaces.sort();
+ }
+
+ if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
+ // No jQuery handlers for this event type, and it can't have inline handlers
+ return;
+ }
+
+ // Caller can pass in an Event, Object, or just an event type string
+ event = typeof event === "object" ?
+ // jQuery.Event object
+ event[ jQuery.expando ] ? event :
+ // Object literal
+ new jQuery.Event( type, event ) :
+ // Just the event type (string)
+ new jQuery.Event( type );
+
+ event.type = type;
+ event.exclusive = exclusive;
+ event.namespace = namespaces.join(".");
+ event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");
+
+ // triggerHandler() and global events don't bubble or run the default action
+ if ( onlyHandlers || !elem ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+
+ // Handle a global trigger
+ if ( !elem ) {
+ // TODO: Stop taunting the data cache; remove global events and always attach to document
+ jQuery.each( jQuery.cache, function() {
+ // internalKey variable is just used to make it easier to find
+ // and potentially change this stuff later; currently it just
+ // points to jQuery.expando
+ var internalKey = jQuery.expando,
+ internalCache = this[ internalKey ];
+ if ( internalCache && internalCache.events && internalCache.events[ type ] ) {
+ jQuery.event.trigger( event, data, internalCache.handle.elem );
+ }
+ });
+ return;
+ }
+
+ // Don't do events on text and comment nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ // Clean up the event in case it is being reused
+ event.result = undefined;
+ event.target = elem;
+
+ // Clone any incoming data and prepend the event, creating the handler arg list
+ data = data != null ? jQuery.makeArray( data ) : [];
+ data.unshift( event );
+
+ var cur = elem,
+ // IE doesn't like method names with a colon (#3533, #8272)
+ ontype = type.indexOf(":") < 0 ? "on" + type : "";
+
+ // Fire event on the current element, then bubble up the DOM tree
+ do {
+ var handle = jQuery._data( cur, "handle" );
+
+ event.currentTarget = cur;
+ if ( handle ) {
+ handle.apply( cur, data );
+ }
+
+ // Trigger an inline bound script
+ if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) {
+ event.result = false;
+ event.preventDefault();
+ }
+
+ // Bubble up to document, then to window
+ cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window;
+ } while ( cur && !event.isPropagationStopped() );
+
+ // If nobody prevented the default action, do it now
+ if ( !event.isDefaultPrevented() ) {
+ var old,
+ special = jQuery.event.special[ type ] || {};
+
+ if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) &&
+ !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
+
+ // Call a native DOM method on the target with the same name name as the event.
+ // Can't use an .isFunction)() check here because IE6/7 fails that test.
+ // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch.
+ try {
+ if ( ontype && elem[ type ] ) {
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ old = elem[ ontype ];
+
+ if ( old ) {
+ elem[ ontype ] = null;
+ }
+
+ jQuery.event.triggered = type;
+ elem[ type ]();
+ }
+ } catch ( ieError ) {}
+
+ if ( old ) {
+ elem[ ontype ] = old;
+ }
+
+ jQuery.event.triggered = undefined;
+ }
+ }
+
+ return event.result;
+ },
+
+ handle: function( event ) {
+ event = jQuery.event.fix( event || window.event );
+ // Snapshot the handlers list since a called handler may add/remove events.
+ var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0),
+ run_all = !event.exclusive && !event.namespace,
+ args = Array.prototype.slice.call( arguments, 0 );
+
+ // Use the fix-ed Event rather than the (read-only) native event
+ args[0] = event;
+ event.currentTarget = this;
+
+ for ( var j = 0, l = handlers.length; j < l; j++ ) {
+ var handleObj = handlers[ j ];
+
+ // Triggered event must 1) be non-exclusive and have no namespace, or
+ // 2) have namespace(s) a subset or equal to those in the bound event.
+ if ( run_all || event.namespace_re.test( handleObj.namespace ) ) {
+ // Pass in a reference to the handler function itself
+ // So that we can later remove it
+ event.handler = handleObj.handler;
+ event.data = handleObj.data;
+ event.handleObj = handleObj;
+
+ var ret = handleObj.handler.apply( this, args );
+
+ if ( ret !== undefined ) {
+ event.result = ret;
+ if ( ret === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+
+ if ( event.isImmediatePropagationStopped() ) {
+ break;
+ }
+ }
+ }
+ return event.result;
+ },
+
+ props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+
+ fix: function( event ) {
+ if ( event[ jQuery.expando ] ) {
+ return event;
+ }
+
+ // store a copy of the original event object
+ // and "clone" to set read-only properties
+ var originalEvent = event;
+ event = jQuery.Event( originalEvent );
+
+ for ( var i = this.props.length, prop; i; ) {
+ prop = this.props[ --i ];
+ event[ prop ] = originalEvent[ prop ];
+ }
+
+ // Fix target property, if necessary
+ if ( !event.target ) {
+ // Fixes #1925 where srcElement might not be defined either
+ event.target = event.srcElement || document;
+ }
+
+ // check if target is a textnode (safari)
+ if ( event.target.nodeType === 3 ) {
+ event.target = event.target.parentNode;
+ }
+
+ // Add relatedTarget, if necessary
+ if ( !event.relatedTarget && event.fromElement ) {
+ event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
+ }
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if ( event.pageX == null && event.clientX != null ) {
+ var eventDocument = event.target.ownerDocument || document,
+ doc = eventDocument.documentElement,
+ body = eventDocument.body;
+
+ event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
+ event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
+ }
+
+ // Add which for key events
+ if ( event.which == null && (event.charCode != null || event.keyCode != null) ) {
+ event.which = event.charCode != null ? event.charCode : event.keyCode;
+ }
+
+ // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
+ if ( !event.metaKey && event.ctrlKey ) {
+ event.metaKey = event.ctrlKey;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ // Note: button is not normalized, so don't use it
+ if ( !event.which && event.button !== undefined ) {
+ event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
+ }
+
+ return event;
+ },
+
+ // Deprecated, use jQuery.guid instead
+ guid: 1E8,
+
+ // Deprecated, use jQuery.proxy instead
+ proxy: jQuery.proxy,
+
+ special: {
+ ready: {
+ // Make sure the ready event is setup
+ setup: jQuery.bindReady,
+ teardown: jQuery.noop
+ },
+
+ live: {
+ add: function( handleObj ) {
+ jQuery.event.add( this,
+ liveConvert( handleObj.origType, handleObj.selector ),
+ jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) );
+ },
+
+ remove: function( handleObj ) {
+ jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj );
+ }
+ },
+
+ beforeunload: {
+ setup: function( data, namespaces, eventHandle ) {
+ // We only want to do this special case on windows
+ if ( jQuery.isWindow( this ) ) {
+ this.onbeforeunload = eventHandle;
+ }
+ },
+
+ teardown: function( namespaces, eventHandle ) {
+ if ( this.onbeforeunload === eventHandle ) {
+ this.onbeforeunload = null;
+ }
+ }
+ }
+ }
+};
+
+jQuery.removeEvent = document.removeEventListener ?
+ function( elem, type, handle ) {
+ if ( elem.removeEventListener ) {
+ elem.removeEventListener( type, handle, false );
+ }
+ } :
+ function( elem, type, handle ) {
+ if ( elem.detachEvent ) {
+ elem.detachEvent( "on" + type, handle );
+ }
+ };
+
+jQuery.Event = function( src, props ) {
+ // Allow instantiation without the 'new' keyword
+ if ( !this.preventDefault ) {
+ return new jQuery.Event( src, props );
+ }
+
+ // Event object
+ if ( src && src.type ) {
+ this.originalEvent = src;
+ this.type = src.type;
+
+ // Events bubbling up the document may have been marked as prevented
+ // by a handler lower down the tree; reflect the correct value.
+ this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
+ src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
+
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // Put explicitly provided properties onto the event object
+ if ( props ) {
+ jQuery.extend( this, props );
+ }
+
+ // timeStamp is buggy for some events on Firefox(#3843)
+ // So we won't rely on the native value
+ this.timeStamp = jQuery.now();
+
+ // Mark it as fixed
+ this[ jQuery.expando ] = true;
+};
+
+function returnFalse() {
+ return false;
+}
+function returnTrue() {
+ return true;
+}
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ preventDefault: function() {
+ this.isDefaultPrevented = returnTrue;
+
+ var e = this.originalEvent;
+ if ( !e ) {
+ return;
+ }
+
+ // if preventDefault exists run it on the original event
+ if ( e.preventDefault ) {
+ e.preventDefault();
+
+ // otherwise set the returnValue property of the original event to false (IE)
+ } else {
+ e.returnValue = false;
+ }
+ },
+ stopPropagation: function() {
+ this.isPropagationStopped = returnTrue;
+
+ var e = this.originalEvent;
+ if ( !e ) {
+ return;
+ }
+ // if stopPropagation exists run it on the original event
+ if ( e.stopPropagation ) {
+ e.stopPropagation();
+ }
+ // otherwise set the cancelBubble property of the original event to true (IE)
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation: function() {
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ },
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse
+};
+
+// Checks if an event happened on an element within another element
+// Used in jQuery.event.special.mouseenter and mouseleave handlers
+var withinElement = function( event ) {
+
+ // Check if mouse(over|out) are still within the same parent element
+ var related = event.relatedTarget,
+ inside = false,
+ eventType = event.type;
+
+ event.type = event.data;
+
+ if ( related !== this ) {
+
+ if ( related ) {
+ inside = jQuery.contains( this, related );
+ }
+
+ if ( !inside ) {
+
+ jQuery.event.handle.apply( this, arguments );
+
+ event.type = eventType;
+ }
+ }
+},
+
+// In case of event delegation, we only need to rename the event.type,
+// liveHandler will take care of the rest.
+delegate = function( event ) {
+ event.type = event.data;
+ jQuery.event.handle.apply( this, arguments );
+};
+
+// Create mouseenter and mouseleave events
+jQuery.each({
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+}, function( orig, fix ) {
+ jQuery.event.special[ orig ] = {
+ setup: function( data ) {
+ jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig );
+ },
+ teardown: function( data ) {
+ jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement );
+ }
+ };
+});
+
+// submit delegation
+if ( !jQuery.support.submitBubbles ) {
+
+ jQuery.event.special.submit = {
+ setup: function( data, namespaces ) {
+ if ( !jQuery.nodeName( this, "form" ) ) {
+ jQuery.event.add(this, "click.specialSubmit", function( e ) {
+ // Avoid triggering error on non-existent type attribute in IE VML (#7071)
+ var elem = e.target,
+ type = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.type : "";
+
+ if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
+ trigger( "submit", this, arguments );
+ }
+ });
+
+ jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
+ var elem = e.target,
+ type = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.type : "";
+
+ if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
+ trigger( "submit", this, arguments );
+ }
+ });
+
+ } else {
+ return false;
+ }
+ },
+
+ teardown: function( namespaces ) {
+ jQuery.event.remove( this, ".specialSubmit" );
+ }
+ };
+
+}
+
+// change delegation, happens here so we have bind.
+if ( !jQuery.support.changeBubbles ) {
+
+ var changeFilters,
+
+ getVal = function( elem ) {
+ var type = jQuery.nodeName( elem, "input" ) ? elem.type : "",
+ val = elem.value;
+
+ if ( type === "radio" || type === "checkbox" ) {
+ val = elem.checked;
+
+ } else if ( type === "select-multiple" ) {
+ val = elem.selectedIndex > -1 ?
+ jQuery.map( elem.options, function( elem ) {
+ return elem.selected;
+ }).join("-") :
+ "";
+
+ } else if ( jQuery.nodeName( elem, "select" ) ) {
+ val = elem.selectedIndex;
+ }
+
+ return val;
+ },
+
+ testChange = function testChange( e ) {
+ var elem = e.target, data, val;
+
+ if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) {
+ return;
+ }
+
+ data = jQuery._data( elem, "_change_data" );
+ val = getVal(elem);
+
+ // the current data will be also retrieved by beforeactivate
+ if ( e.type !== "focusout" || elem.type !== "radio" ) {
+ jQuery._data( elem, "_change_data", val );
+ }
+
+ if ( data === undefined || val === data ) {
+ return;
+ }
+
+ if ( data != null || val ) {
+ e.type = "change";
+ e.liveFired = undefined;
+ jQuery.event.trigger( e, arguments[1], elem );
+ }
+ };
+
+ jQuery.event.special.change = {
+ filters: {
+ focusout: testChange,
+
+ beforedeactivate: testChange,
+
+ click: function( e ) {
+ var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
+
+ if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) {
+ testChange.call( this, e );
+ }
+ },
+
+ // Change has to be called before submit
+ // Keydown will be called before keypress, which is used in submit-event delegation
+ keydown: function( e ) {
+ var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
+
+ if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) ||
+ (e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
+ type === "select-multiple" ) {
+ testChange.call( this, e );
+ }
+ },
+
+ // Beforeactivate happens also before the previous element is blurred
+ // with this event you can't trigger a change event, but you can store
+ // information
+ beforeactivate: function( e ) {
+ var elem = e.target;
+ jQuery._data( elem, "_change_data", getVal(elem) );
+ }
+ },
+
+ setup: function( data, namespaces ) {
+ if ( this.type === "file" ) {
+ return false;
+ }
+
+ for ( var type in changeFilters ) {
+ jQuery.event.add( this, type + ".specialChange", changeFilters[type] );
+ }
+
+ return rformElems.test( this.nodeName );
+ },
+
+ teardown: function( namespaces ) {
+ jQuery.event.remove( this, ".specialChange" );
+
+ return rformElems.test( this.nodeName );
+ }
+ };
+
+ changeFilters = jQuery.event.special.change.filters;
+
+ // Handle when the input is .focus()'d
+ changeFilters.focus = changeFilters.beforeactivate;
+}
+
+function trigger( type, elem, args ) {
+ // Piggyback on a donor event to simulate a different one.
+ // Fake originalEvent to avoid donor's stopPropagation, but if the
+ // simulated event prevents default then we do the same on the donor.
+ // Don't pass args or remember liveFired; they apply to the donor event.
+ var event = jQuery.extend( {}, args[ 0 ] );
+ event.type = type;
+ event.originalEvent = {};
+ event.liveFired = undefined;
+ jQuery.event.handle.call( elem, event );
+ if ( event.isDefaultPrevented() ) {
+ args[ 0 ].preventDefault();
+ }
+}
+
+// Create "bubbling" focus and blur events
+if ( !jQuery.support.focusinBubbles ) {
+ jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+ // Attach a single capturing handler while someone wants focusin/focusout
+ var attaches = 0;
+
+ jQuery.event.special[ fix ] = {
+ setup: function() {
+ if ( attaches++ === 0 ) {
+ document.addEventListener( orig, handler, true );
+ }
+ },
+ teardown: function() {
+ if ( --attaches === 0 ) {
+ document.removeEventListener( orig, handler, true );
+ }
+ }
+ };
+
+ function handler( donor ) {
+ // Donor event is always a native one; fix it and switch its type.
+ // Let focusin/out handler cancel the donor focus/blur event.
+ var e = jQuery.event.fix( donor );
+ e.type = fix;
+ e.originalEvent = {};
+ jQuery.event.trigger( e, null, e.target );
+ if ( e.isDefaultPrevented() ) {
+ donor.preventDefault();
+ }
+ }
+ });
+}
+
+jQuery.each(["bind", "one"], function( i, name ) {
+ jQuery.fn[ name ] = function( type, data, fn ) {
+ var handler;
+
+ // Handle object literals
+ if ( typeof type === "object" ) {
+ for ( var key in type ) {
+ this[ name ](key, data, type[key], fn);
+ }
+ return this;
+ }
+
+ if ( arguments.length === 2 || data === false ) {
+ fn = data;
+ data = undefined;
+ }
+
+ if ( name === "one" ) {
+ handler = function( event ) {
+ jQuery( this ).unbind( event, handler );
+ return fn.apply( this, arguments );
+ };
+ handler.guid = fn.guid || jQuery.guid++;
+ } else {
+ handler = fn;
+ }
+
+ if ( type === "unload" && name !== "one" ) {
+ this.one( type, data, fn );
+
+ } else {
+ for ( var i = 0, l = this.length; i < l; i++ ) {
+ jQuery.event.add( this[i], type, handler, data );
+ }
+ }
+
+ return this;
+ };
+});
+
+jQuery.fn.extend({
+ unbind: function( type, fn ) {
+ // Handle object literals
+ if ( typeof type === "object" && !type.preventDefault ) {
+ for ( var key in type ) {
+ this.unbind(key, type[key]);
+ }
+
+ } else {
+ for ( var i = 0, l = this.length; i < l; i++ ) {
+ jQuery.event.remove( this[i], type, fn );
+ }
+ }
+
+ return this;
+ },
+
+ delegate: function( selector, types, data, fn ) {
+ return this.live( types, data, fn, selector );
+ },
+
+ undelegate: function( selector, types, fn ) {
+ if ( arguments.length === 0 ) {
+ return this.unbind( "live" );
+
+ } else {
+ return this.die( types, null, fn, selector );
+ }
+ },
+
+ trigger: function( type, data ) {
+ return this.each(function() {
+ jQuery.event.trigger( type, data, this );
+ });
+ },
+
+ triggerHandler: function( type, data ) {
+ if ( this[0] ) {
+ return jQuery.event.trigger( type, data, this[0], true );
+ }
+ },
+
+ toggle: function( fn ) {
+ // Save reference to arguments for access in closure
+ var args = arguments,
+ guid = fn.guid || jQuery.guid++,
+ i = 0,
+ toggler = function( event ) {
+ // Figure out which function to execute
+ var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i;
+ jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 );
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[ lastToggle ].apply( this, arguments ) || false;
+ };
+
+ // link all the functions, so any of them can unbind this click handler
+ toggler.guid = guid;
+ while ( i < args.length ) {
+ args[ i++ ].guid = guid;
+ }
+
+ return this.click( toggler );
+ },
+
+ hover: function( fnOver, fnOut ) {
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+ }
+});
+
+var liveMap = {
+ focus: "focusin",
+ blur: "focusout",
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+};
+
+jQuery.each(["live", "die"], function( i, name ) {
+ jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) {
+ var type, i = 0, match, namespaces, preType,
+ selector = origSelector || this.selector,
+ context = origSelector ? this : jQuery( this.context );
+
+ if ( typeof types === "object" && !types.preventDefault ) {
+ for ( var key in types ) {
+ context[ name ]( key, data, types[key], selector );
+ }
+
+ return this;
+ }
+
+ if ( name === "die" && !types &&
+ origSelector && origSelector.charAt(0) === "." ) {
+
+ context.unbind( origSelector );
+
+ return this;
+ }
+
+ if ( data === false || jQuery.isFunction( data ) ) {
+ fn = data || returnFalse;
+ data = undefined;
+ }
+
+ types = (types || "").split(" ");
+
+ while ( (type = types[ i++ ]) != null ) {
+ match = rnamespaces.exec( type );
+ namespaces = "";
+
+ if ( match ) {
+ namespaces = match[0];
+ type = type.replace( rnamespaces, "" );
+ }
+
+ if ( type === "hover" ) {
+ types.push( "mouseenter" + namespaces, "mouseleave" + namespaces );
+ continue;
+ }
+
+ preType = type;
+
+ if ( liveMap[ type ] ) {
+ types.push( liveMap[ type ] + namespaces );
+ type = type + namespaces;
+
+ } else {
+ type = (liveMap[ type ] || type) + namespaces;
+ }
+
+ if ( name === "live" ) {
+ // bind live handler
+ for ( var j = 0, l = context.length; j < l; j++ ) {
+ jQuery.event.add( context[j], "live." + liveConvert( type, selector ),
+ { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } );
+ }
+
+ } else {
+ // unbind live handler
+ context.unbind( "live." + liveConvert( type, selector ), fn );
+ }
+ }
+
+ return this;
+ };
+});
+
+function liveHandler( event ) {
+ var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
+ elems = [],
+ selectors = [],
+ events = jQuery._data( this, "events" );
+
+ // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911)
+ if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) {
+ return;
+ }
+
+ if ( event.namespace ) {
+ namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
+ }
+
+ event.liveFired = this;
+
+ var live = events.live.slice(0);
+
+ for ( j = 0; j < live.length; j++ ) {
+ handleObj = live[j];
+
+ if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) {
+ selectors.push( handleObj.selector );
+
+ } else {
+ live.splice( j--, 1 );
+ }
+ }
+
+ match = jQuery( event.target ).closest( selectors, event.currentTarget );
+
+ for ( i = 0, l = match.length; i < l; i++ ) {
+ close = match[i];
+
+ for ( j = 0; j < live.length; j++ ) {
+ handleObj = live[j];
+
+ if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) {
+ elem = close.elem;
+ related = null;
+
+ // Those two events require additional checking
+ if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) {
+ event.type = handleObj.preType;
+ related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0];
+
+ // Make sure not to accidentally match a child element with the same selector
+ if ( related && jQuery.contains( elem, related ) ) {
+ related = elem;
+ }
+ }
+
+ if ( !related || related !== elem ) {
+ elems.push({ elem: elem, handleObj: handleObj, level: close.level });
+ }
+ }
+ }
+ }
+
+ for ( i = 0, l = elems.length; i < l; i++ ) {
+ match = elems[i];
+
+ if ( maxLevel && match.level > maxLevel ) {
+ break;
+ }
+
+ event.currentTarget = match.elem;
+ event.data = match.handleObj.data;
+ event.handleObj = match.handleObj;
+
+ ret = match.handleObj.origHandler.apply( match.elem, arguments );
+
+ if ( ret === false || event.isPropagationStopped() ) {
+ maxLevel = match.level;
+
+ if ( ret === false ) {
+ stop = false;
+ }
+ if ( event.isImmediatePropagationStopped() ) {
+ break;
+ }
+ }
+ }
+
+ return stop;
+}
+
+function liveConvert( type, selector ) {
+ return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&");
+}
+
+jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ "change select submit keydown keypress keyup error").split(" "), function( i, name ) {
+
+ // Handle event binding
+ jQuery.fn[ name ] = function( data, fn ) {
+ if ( fn == null ) {
+ fn = data;
+ data = null;
+ }
+
+ return arguments.length > 0 ?
+ this.bind( name, data, fn ) :
+ this.trigger( name );
+ };
+
+ if ( jQuery.attrFn ) {
+ jQuery.attrFn[ name ] = true;
+ }
+});
+
+
+
+/*!
+ * Sizzle CSS Selector Engine
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+ done = 0,
+ toString = Object.prototype.toString,
+ hasDuplicate = false,
+ baseHasDuplicate = true,
+ rBackslash = /\\/g,
+ rNonWord = /\W/;
+
+// Here we check if the JavaScript engine is using some sort of
+// optimization where it does not always call our comparision
+// function. If that is the case, discard the hasDuplicate value.
+// Thus far that includes Google Chrome.
+[0, 0].sort(function() {
+ baseHasDuplicate = false;
+ return 0;
+});
+
+var Sizzle = function( selector, context, results, seed ) {
+ results = results || [];
+ context = context || document;
+
+ var origContext = context;
+
+ if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+ return [];
+ }
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ var m, set, checkSet, extra, ret, cur, pop, i,
+ prune = true,
+ contextXML = Sizzle.isXML( context ),
+ parts = [],
+ soFar = selector;
+
+ // Reset the position of the chunker regexp (start from head)
+ do {
+ chunker.exec( "" );
+ m = chunker.exec( soFar );
+
+ if ( m ) {
+ soFar = m[3];
+
+ parts.push( m[1] );
+
+ if ( m[2] ) {
+ extra = m[3];
+ break;
+ }
+ }
+ } while ( m );
+
+ if ( parts.length > 1 && origPOS.exec( selector ) ) {
+
+ if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+ set = posProcess( parts[0] + parts[1], context );
+
+ } else {
+ set = Expr.relative[ parts[0] ] ?
+ [ context ] :
+ Sizzle( parts.shift(), context );
+
+ while ( parts.length ) {
+ selector = parts.shift();
+
+ if ( Expr.relative[ selector ] ) {
+ selector += parts.shift();
+ }
+
+ set = posProcess( selector, set );
+ }
+ }
+
+ } else {
+ // Take a shortcut and set the context if the root selector is an ID
+ // (but not if it'll be faster if the inner selector is an ID)
+ if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+ Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
+
+ ret = Sizzle.find( parts.shift(), context, contextXML );
+ context = ret.expr ?
+ Sizzle.filter( ret.expr, ret.set )[0] :
+ ret.set[0];
+ }
+
+ if ( context ) {
+ ret = seed ?
+ { expr: parts.pop(), set: makeArray(seed) } :
+ Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+
+ set = ret.expr ?
+ Sizzle.filter( ret.expr, ret.set ) :
+ ret.set;
+
+ if ( parts.length > 0 ) {
+ checkSet = makeArray( set );
+
+ } else {
+ prune = false;
+ }
+
+ while ( parts.length ) {
+ cur = parts.pop();
+ pop = cur;
+
+ if ( !Expr.relative[ cur ] ) {
+ cur = "";
+ } else {
+ pop = parts.pop();
+ }
+
+ if ( pop == null ) {
+ pop = context;
+ }
+
+ Expr.relative[ cur ]( checkSet, pop, contextXML );
+ }
+
+ } else {
+ checkSet = parts = [];
+ }
+ }
+
+ if ( !checkSet ) {
+ checkSet = set;
+ }
+
+ if ( !checkSet ) {
+ Sizzle.error( cur || selector );
+ }
+
+ if ( toString.call(checkSet) === "[object Array]" ) {
+ if ( !prune ) {
+ results.push.apply( results, checkSet );
+
+ } else if ( context && context.nodeType === 1 ) {
+ for ( i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
+ results.push( set[i] );
+ }
+ }
+
+ } else {
+ for ( i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+ results.push( set[i] );
+ }
+ }
+ }
+
+ } else {
+ makeArray( checkSet, results );
+ }
+
+ if ( extra ) {
+ Sizzle( extra, origContext, results, seed );
+ Sizzle.uniqueSort( results );
+ }
+
+ return results;
+};
+
+Sizzle.uniqueSort = function( results ) {
+ if ( sortOrder ) {
+ hasDuplicate = baseHasDuplicate;
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ for ( var i = 1; i < results.length; i++ ) {
+ if ( results[i] === results[ i - 1 ] ) {
+ results.splice( i--, 1 );
+ }
+ }
+ }
+ }
+
+ return results;
+};
+
+Sizzle.matches = function( expr, set ) {
+ return Sizzle( expr, null, null, set );
+};
+
+Sizzle.matchesSelector = function( node, expr ) {
+ return Sizzle( expr, null, null, [node] ).length > 0;
+};
+
+Sizzle.find = function( expr, context, isXML ) {
+ var set;
+
+ if ( !expr ) {
+ return [];
+ }
+
+ for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
+ var match,
+ type = Expr.order[i];
+
+ if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+ var left = match[1];
+ match.splice( 1, 1 );
+
+ if ( left.substr( left.length - 1 ) !== "\\" ) {
+ match[1] = (match[1] || "").replace( rBackslash, "" );
+ set = Expr.find[ type ]( match, context, isXML );
+
+ if ( set != null ) {
+ expr = expr.replace( Expr.match[ type ], "" );
+ break;
+ }
+ }
+ }
+ }
+
+ if ( !set ) {
+ set = typeof context.getElementsByTagName !== "undefined" ?
+ context.getElementsByTagName( "*" ) :
+ [];
+ }
+
+ return { set: set, expr: expr };
+};
+
+Sizzle.filter = function( expr, set, inplace, not ) {
+ var match, anyFound,
+ old = expr,
+ result = [],
+ curLoop = set,
+ isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
+
+ while ( expr && set.length ) {
+ for ( var type in Expr.filter ) {
+ if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
+ var found, item,
+ filter = Expr.filter[ type ],
+ left = match[1];
+
+ anyFound = false;
+
+ match.splice(1,1);
+
+ if ( left.substr( left.length - 1 ) === "\\" ) {
+ continue;
+ }
+
+ if ( curLoop === result ) {
+ result = [];
+ }
+
+ if ( Expr.preFilter[ type ] ) {
+ match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+ if ( !match ) {
+ anyFound = found = true;
+
+ } else if ( match === true ) {
+ continue;
+ }
+ }
+
+ if ( match ) {
+ for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
+ if ( item ) {
+ found = filter( item, match, i, curLoop );
+ var pass = not ^ !!found;
+
+ if ( inplace && found != null ) {
+ if ( pass ) {
+ anyFound = true;
+
+ } else {
+ curLoop[i] = false;
+ }
+
+ } else if ( pass ) {
+ result.push( item );
+ anyFound = true;
+ }
+ }
+ }
+ }
+
+ if ( found !== undefined ) {
+ if ( !inplace ) {
+ curLoop = result;
+ }
+
+ expr = expr.replace( Expr.match[ type ], "" );
+
+ if ( !anyFound ) {
+ return [];
+ }
+
+ break;
+ }
+ }
+ }
+
+ // Improper expression
+ if ( expr === old ) {
+ if ( anyFound == null ) {
+ Sizzle.error( expr );
+
+ } else {
+ break;
+ }
+ }
+
+ old = expr;
+ }
+
+ return curLoop;
+};
+
+Sizzle.error = function( msg ) {
+ throw "Syntax error, unrecognized expression: " + msg;
+};
+
+var Expr = Sizzle.selectors = {
+ order: [ "ID", "NAME", "TAG" ],
+
+ match: {
+ ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+ CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+ NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
+ ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
+ TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
+ CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
+ POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
+ PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+ },
+
+ leftMatch: {},
+
+ attrMap: {
+ "class": "className",
+ "for": "htmlFor"
+ },
+
+ attrHandle: {
+ href: function( elem ) {
+ return elem.getAttribute( "href" );
+ },
+ type: function( elem ) {
+ return elem.getAttribute( "type" );
+ }
+ },
+
+ relative: {
+ "+": function(checkSet, part){
+ var isPartStr = typeof part === "string",
+ isTag = isPartStr && !rNonWord.test( part ),
+ isPartStrNotTag = isPartStr && !isTag;
+
+ if ( isTag ) {
+ part = part.toLowerCase();
+ }
+
+ for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+ if ( (elem = checkSet[i]) ) {
+ while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+ checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+ elem || false :
+ elem === part;
+ }
+ }
+
+ if ( isPartStrNotTag ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ },
+
+ ">": function( checkSet, part ) {
+ var elem,
+ isPartStr = typeof part === "string",
+ i = 0,
+ l = checkSet.length;
+
+ if ( isPartStr && !rNonWord.test( part ) ) {
+ part = part.toLowerCase();
+
+ for ( ; i < l; i++ ) {
+ elem = checkSet[i];
+
+ if ( elem ) {
+ var parent = elem.parentNode;
+ checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+ }
+ }
+
+ } else {
+ for ( ; i < l; i++ ) {
+ elem = checkSet[i];
+
+ if ( elem ) {
+ checkSet[i] = isPartStr ?
+ elem.parentNode :
+ elem.parentNode === part;
+ }
+ }
+
+ if ( isPartStr ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ }
+ },
+
+ "": function(checkSet, part, isXML){
+ var nodeCheck,
+ doneName = done++,
+ checkFn = dirCheck;
+
+ if ( typeof part === "string" && !rNonWord.test( part ) ) {
+ part = part.toLowerCase();
+ nodeCheck = part;
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
+ },
+
+ "~": function( checkSet, part, isXML ) {
+ var nodeCheck,
+ doneName = done++,
+ checkFn = dirCheck;
+
+ if ( typeof part === "string" && !rNonWord.test( part ) ) {
+ part = part.toLowerCase();
+ nodeCheck = part;
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
+ }
+ },
+
+ find: {
+ ID: function( match, context, isXML ) {
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ return m && m.parentNode ? [m] : [];
+ }
+ },
+
+ NAME: function( match, context ) {
+ if ( typeof context.getElementsByName !== "undefined" ) {
+ var ret = [],
+ results = context.getElementsByName( match[1] );
+
+ for ( var i = 0, l = results.length; i < l; i++ ) {
+ if ( results[i].getAttribute("name") === match[1] ) {
+ ret.push( results[i] );
+ }
+ }
+
+ return ret.length === 0 ? null : ret;
+ }
+ },
+
+ TAG: function( match, context ) {
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ return context.getElementsByTagName( match[1] );
+ }
+ }
+ },
+ preFilter: {
+ CLASS: function( match, curLoop, inplace, result, not, isXML ) {
+ match = " " + match[1].replace( rBackslash, "" ) + " ";
+
+ if ( isXML ) {
+ return match;
+ }
+
+ for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+ if ( elem ) {
+ if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
+ if ( !inplace ) {
+ result.push( elem );
+ }
+
+ } else if ( inplace ) {
+ curLoop[i] = false;
+ }
+ }
+ }
+
+ return false;
+ },
+
+ ID: function( match ) {
+ return match[1].replace( rBackslash, "" );
+ },
+
+ TAG: function( match, curLoop ) {
+ return match[1].replace( rBackslash, "" ).toLowerCase();
+ },
+
+ CHILD: function( match ) {
+ if ( match[1] === "nth" ) {
+ if ( !match[2] ) {
+ Sizzle.error( match[0] );
+ }
+
+ match[2] = match[2].replace(/^\+|\s*/g, '');
+
+ // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+ var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
+ match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+ !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+ // calculate the numbers (first)n+(last) including if they are negative
+ match[2] = (test[1] + (test[2] || 1)) - 0;
+ match[3] = test[3] - 0;
+ }
+ else if ( match[2] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // TODO: Move to normal caching system
+ match[0] = done++;
+
+ return match;
+ },
+
+ ATTR: function( match, curLoop, inplace, result, not, isXML ) {
+ var name = match[1] = match[1].replace( rBackslash, "" );
+
+ if ( !isXML && Expr.attrMap[name] ) {
+ match[1] = Expr.attrMap[name];
+ }
+
+ // Handle if an un-quoted value was used
+ match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
+
+ if ( match[2] === "~=" ) {
+ match[4] = " " + match[4] + " ";
+ }
+
+ return match;
+ },
+
+ PSEUDO: function( match, curLoop, inplace, result, not ) {
+ if ( match[1] === "not" ) {
+ // If we're dealing with a complex expression, or a simple one
+ if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+ match[3] = Sizzle(match[3], null, null, curLoop);
+
+ } else {
+ var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+
+ if ( !inplace ) {
+ result.push.apply( result, ret );
+ }
+
+ return false;
+ }
+
+ } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+ return true;
+ }
+
+ return match;
+ },
+
+ POS: function( match ) {
+ match.unshift( true );
+
+ return match;
+ }
+ },
+
+ filters: {
+ enabled: function( elem ) {
+ return elem.disabled === false && elem.type !== "hidden";
+ },
+
+ disabled: function( elem ) {
+ return elem.disabled === true;
+ },
+
+ checked: function( elem ) {
+ return elem.checked === true;
+ },
+
+ selected: function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ parent: function( elem ) {
+ return !!elem.firstChild;
+ },
+
+ empty: function( elem ) {
+ return !elem.firstChild;
+ },
+
+ has: function( elem, i, match ) {
+ return !!Sizzle( match[3], elem ).length;
+ },
+
+ header: function( elem ) {
+ return (/h\d/i).test( elem.nodeName );
+ },
+
+ text: function( elem ) {
+ var attr = elem.getAttribute( "type" ), type = elem.type;
+ // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+ // use getAttribute instead to test this case
+ return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
+ },
+
+ radio: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
+ },
+
+ checkbox: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
+ },
+
+ file: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
+ },
+
+ password: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
+ },
+
+ submit: function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && "submit" === elem.type;
+ },
+
+ image: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
+ },
+
+ reset: function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && "reset" === elem.type;
+ },
+
+ button: function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && "button" === elem.type || name === "button";
+ },
+
+ input: function( elem ) {
+ return (/input|select|textarea|button/i).test( elem.nodeName );
+ },
+
+ focus: function( elem ) {
+ return elem === elem.ownerDocument.activeElement;
+ }
+ },
+ setFilters: {
+ first: function( elem, i ) {
+ return i === 0;
+ },
+
+ last: function( elem, i, match, array ) {
+ return i === array.length - 1;
+ },
+
+ even: function( elem, i ) {
+ return i % 2 === 0;
+ },
+
+ odd: function( elem, i ) {
+ return i % 2 === 1;
+ },
+
+ lt: function( elem, i, match ) {
+ return i < match[3] - 0;
+ },
+
+ gt: function( elem, i, match ) {
+ return i > match[3] - 0;
+ },
+
+ nth: function( elem, i, match ) {
+ return match[3] - 0 === i;
+ },
+
+ eq: function( elem, i, match ) {
+ return match[3] - 0 === i;
+ }
+ },
+ filter: {
+ PSEUDO: function( elem, match, i, array ) {
+ var name = match[1],
+ filter = Expr.filters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+
+ } else if ( name === "contains" ) {
+ return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0;
+
+ } else if ( name === "not" ) {
+ var not = match[3];
+
+ for ( var j = 0, l = not.length; j < l; j++ ) {
+ if ( not[j] === elem ) {
+ return false;
+ }
+ }
+
+ return true;
+
+ } else {
+ Sizzle.error( name );
+ }
+ },
+
+ CHILD: function( elem, match ) {
+ var type = match[1],
+ node = elem;
+
+ switch ( type ) {
+ case "only":
+ case "first":
+ while ( (node = node.previousSibling) ) {
+ if ( node.nodeType === 1 ) {
+ return false;
+ }
+ }
+
+ if ( type === "first" ) {
+ return true;
+ }
+
+ node = elem;
+
+ case "last":
+ while ( (node = node.nextSibling) ) {
+ if ( node.nodeType === 1 ) {
+ return false;
+ }
+ }
+
+ return true;
+
+ case "nth":
+ var first = match[2],
+ last = match[3];
+
+ if ( first === 1 && last === 0 ) {
+ return true;
+ }
+
+ var doneName = match[0],
+ parent = elem.parentNode;
+
+ if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
+ var count = 0;
+
+ for ( node = parent.firstChild; node; node = node.nextSibling ) {
+ if ( node.nodeType === 1 ) {
+ node.nodeIndex = ++count;
+ }
+ }
+
+ parent.sizcache = doneName;
+ }
+
+ var diff = elem.nodeIndex - last;
+
+ if ( first === 0 ) {
+ return diff === 0;
+
+ } else {
+ return ( diff % first === 0 && diff / first >= 0 );
+ }
+ }
+ },
+
+ ID: function( elem, match ) {
+ return elem.nodeType === 1 && elem.getAttribute("id") === match;
+ },
+
+ TAG: function( elem, match ) {
+ return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
+ },
+
+ CLASS: function( elem, match ) {
+ return (" " + (elem.className || elem.getAttribute("class")) + " ")
+ .indexOf( match ) > -1;
+ },
+
+ ATTR: function( elem, match ) {
+ var name = match[1],
+ result = Expr.attrHandle[ name ] ?
+ Expr.attrHandle[ name ]( elem ) :
+ elem[ name ] != null ?
+ elem[ name ] :
+ elem.getAttribute( name ),
+ value = result + "",
+ type = match[2],
+ check = match[4];
+
+ return result == null ?
+ type === "!=" :
+ type === "=" ?
+ value === check :
+ type === "*=" ?
+ value.indexOf(check) >= 0 :
+ type === "~=" ?
+ (" " + value + " ").indexOf(check) >= 0 :
+ !check ?
+ value && result !== false :
+ type === "!=" ?
+ value !== check :
+ type === "^=" ?
+ value.indexOf(check) === 0 :
+ type === "$=" ?
+ value.substr(value.length - check.length) === check :
+ type === "|=" ?
+ value === check || value.substr(0, check.length + 1) === check + "-" :
+ false;
+ },
+
+ POS: function( elem, match, i, array ) {
+ var name = match[2],
+ filter = Expr.setFilters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ }
+ }
+ }
+};
+
+var origPOS = Expr.match.POS,
+ fescape = function(all, num){
+ return "\\" + (num - 0 + 1);
+ };
+
+for ( var type in Expr.match ) {
+ Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
+ Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
+}
+
+var makeArray = function( array, results ) {
+ array = Array.prototype.slice.call( array, 0 );
+
+ if ( results ) {
+ results.push.apply( results, array );
+ return results;
+ }
+
+ return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+// Also verifies that the returned array holds DOM nodes
+// (which is not the case in the Blackberry browser)
+try {
+ Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
+
+// Provide a fallback method if it does not work
+} catch( e ) {
+ makeArray = function( array, results ) {
+ var i = 0,
+ ret = results || [];
+
+ if ( toString.call(array) === "[object Array]" ) {
+ Array.prototype.push.apply( ret, array );
+
+ } else {
+ if ( typeof array.length === "number" ) {
+ for ( var l = array.length; i < l; i++ ) {
+ ret.push( array[i] );
+ }
+
+ } else {
+ for ( ; array[i]; i++ ) {
+ ret.push( array[i] );
+ }
+ }
+ }
+
+ return ret;
+ };
+}
+
+var sortOrder, siblingCheck;
+
+if ( document.documentElement.compareDocumentPosition ) {
+ sortOrder = function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+ return a.compareDocumentPosition ? -1 : 1;
+ }
+
+ return a.compareDocumentPosition(b) & 4 ? -1 : 1;
+ };
+
+} else {
+ sortOrder = function( a, b ) {
+ // The nodes are identical, we can exit early
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+
+ // Fallback to using sourceIndex (in IE) if it's available on both nodes
+ } else if ( a.sourceIndex && b.sourceIndex ) {
+ return a.sourceIndex - b.sourceIndex;
+ }
+
+ var al, bl,
+ ap = [],
+ bp = [],
+ aup = a.parentNode,
+ bup = b.parentNode,
+ cur = aup;
+
+ // If the nodes are siblings (or identical) we can do a quick check
+ if ( aup === bup ) {
+ return siblingCheck( a, b );
+
+ // If no parents were found then the nodes are disconnected
+ } else if ( !aup ) {
+ return -1;
+
+ } else if ( !bup ) {
+ return 1;
+ }
+
+ // Otherwise they're somewhere else in the tree so we need
+ // to build up a full list of the parentNodes for comparison
+ while ( cur ) {
+ ap.unshift( cur );
+ cur = cur.parentNode;
+ }
+
+ cur = bup;
+
+ while ( cur ) {
+ bp.unshift( cur );
+ cur = cur.parentNode;
+ }
+
+ al = ap.length;
+ bl = bp.length;
+
+ // Start walking down the tree looking for a discrepancy
+ for ( var i = 0; i < al && i < bl; i++ ) {
+ if ( ap[i] !== bp[i] ) {
+ return siblingCheck( ap[i], bp[i] );
+ }
+ }
+
+ // We ended someplace up the tree so do a sibling check
+ return i === al ?
+ siblingCheck( a, bp[i], -1 ) :
+ siblingCheck( ap[i], b, 1 );
+ };
+
+ siblingCheck = function( a, b, ret ) {
+ if ( a === b ) {
+ return ret;
+ }
+
+ var cur = a.nextSibling;
+
+ while ( cur ) {
+ if ( cur === b ) {
+ return -1;
+ }
+
+ cur = cur.nextSibling;
+ }
+
+ return 1;
+ };
+}
+
+// Utility function for retreiving the text value of an array of DOM nodes
+Sizzle.getText = function( elems ) {
+ var ret = "", elem;
+
+ for ( var i = 0; elems[i]; i++ ) {
+ elem = elems[i];
+
+ // Get the text from text nodes and CDATA nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
+ ret += elem.nodeValue;
+
+ // Traverse everything else, except comment nodes
+ } else if ( elem.nodeType !== 8 ) {
+ ret += Sizzle.getText( elem.childNodes );
+ }
+ }
+
+ return ret;
+};
+
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+ // We're going to inject a fake input element with a specified name
+ var form = document.createElement("div"),
+ id = "script" + (new Date()).getTime(),
+ root = document.documentElement;
+
+ form.innerHTML = "<a name='" + id + "'/>";
+
+ // Inject it into the root element, check its status, and remove it quickly
+ root.insertBefore( form, root.firstChild );
+
+ // The workaround has to do additional checks after a getElementById
+ // Which slows things down for other browsers (hence the branching)
+ if ( document.getElementById( id ) ) {
+ Expr.find.ID = function( match, context, isXML ) {
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+
+ return m ?
+ m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
+ [m] :
+ undefined :
+ [];
+ }
+ };
+
+ Expr.filter.ID = function( elem, match ) {
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+
+ return elem.nodeType === 1 && node && node.nodeValue === match;
+ };
+ }
+
+ root.removeChild( form );
+
+ // release memory in IE
+ root = form = null;
+})();
+
+(function(){
+ // Check to see if the browser returns only elements
+ // when doing getElementsByTagName("*")
+
+ // Create a fake element
+ var div = document.createElement("div");
+ div.appendChild( document.createComment("") );
+
+ // Make sure no comments are found
+ if ( div.getElementsByTagName("*").length > 0 ) {
+ Expr.find.TAG = function( match, context ) {
+ var results = context.getElementsByTagName( match[1] );
+
+ // Filter out possible comments
+ if ( match[1] === "*" ) {
+ var tmp = [];
+
+ for ( var i = 0; results[i]; i++ ) {
+ if ( results[i].nodeType === 1 ) {
+ tmp.push( results[i] );
+ }
+ }
+
+ results = tmp;
+ }
+
+ return results;
+ };
+ }
+
+ // Check to see if an attribute returns normalized href attributes
+ div.innerHTML = "<a href='#'></a>";
+
+ if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+ div.firstChild.getAttribute("href") !== "#" ) {
+
+ Expr.attrHandle.href = function( elem ) {
+ return elem.getAttribute( "href", 2 );
+ };
+ }
+
+ // release memory in IE
+ div = null;
+})();
+
+if ( document.querySelectorAll ) {
+ (function(){
+ var oldSizzle = Sizzle,
+ div = document.createElement("div"),
+ id = "__sizzle__";
+
+ div.innerHTML = "<p class='TEST'></p>";
+
+ // Safari can't handle uppercase or unicode characters when
+ // in quirks mode.
+ if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+ return;
+ }
+
+ Sizzle = function( query, context, extra, seed ) {
+ context = context || document;
+
+ // Only use querySelectorAll on non-XML documents
+ // (ID selectors don't work in non-HTML documents)
+ if ( !seed && !Sizzle.isXML(context) ) {
+ // See if we find a selector to speed up
+ var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
+
+ if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
+ // Speed-up: Sizzle("TAG")
+ if ( match[1] ) {
+ return makeArray( context.getElementsByTagName( query ), extra );
+
+ // Speed-up: Sizzle(".CLASS")
+ } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
+ return makeArray( context.getElementsByClassName( match[2] ), extra );
+ }
+ }
+
+ if ( context.nodeType === 9 ) {
+ // Speed-up: Sizzle("body")
+ // The body element only exists once, optimize finding it
+ if ( query === "body" && context.body ) {
+ return makeArray( [ context.body ], extra );
+
+ // Speed-up: Sizzle("#ID")
+ } else if ( match && match[3] ) {
+ var elem = context.getElementById( match[3] );
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id === match[3] ) {
+ return makeArray( [ elem ], extra );
+ }
+
+ } else {
+ return makeArray( [], extra );
+ }
+ }
+
+ try {
+ return makeArray( context.querySelectorAll(query), extra );
+ } catch(qsaError) {}
+
+ // qSA works strangely on Element-rooted queries
+ // We can work around this by specifying an extra ID on the root
+ // and working up from there (Thanks to Andrew Dupont for the technique)
+ // IE 8 doesn't work on object elements
+ } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+ var oldContext = context,
+ old = context.getAttribute( "id" ),
+ nid = old || id,
+ hasParent = context.parentNode,
+ relativeHierarchySelector = /^\s*[+~]/.test( query );
+
+ if ( !old ) {
+ context.setAttribute( "id", nid );
+ } else {
+ nid = nid.replace( /'/g, "\\$&" );
+ }
+ if ( relativeHierarchySelector && hasParent ) {
+ context = context.parentNode;
+ }
+
+ try {
+ if ( !relativeHierarchySelector || hasParent ) {
+ return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
+ }
+
+ } catch(pseudoError) {
+ } finally {
+ if ( !old ) {
+ oldContext.removeAttribute( "id" );
+ }
+ }
+ }
+ }
+
+ return oldSizzle(query, context, extra, seed);
+ };
+
+ for ( var prop in oldSizzle ) {
+ Sizzle[ prop ] = oldSizzle[ prop ];
+ }
+
+ // release memory in IE
+ div = null;
+ })();
+}
+
+(function(){
+ var html = document.documentElement,
+ matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
+
+ if ( matches ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9 fails this)
+ var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
+ pseudoWorks = false;
+
+ try {
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( document.documentElement, "[test!='']:sizzle" );
+
+ } catch( pseudoError ) {
+ pseudoWorks = true;
+ }
+
+ Sizzle.matchesSelector = function( node, expr ) {
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+ if ( !Sizzle.isXML( node ) ) {
+ try {
+ if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
+ var ret = matches.call( node, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || !disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9, so check for that
+ node.document && node.document.nodeType !== 11 ) {
+ return ret;
+ }
+ }
+ } catch(e) {}
+ }
+
+ return Sizzle(expr, null, null, [node]).length > 0;
+ };
+ }
+})();
+
+(function(){
+ var div = document.createElement("div");
+
+ div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+ // Opera can't find a second classname (in 9.6)
+ // Also, make sure that getElementsByClassName actually exists
+ if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
+ return;
+ }
+
+ // Safari caches class attributes, doesn't catch changes (in 3.2)
+ div.lastChild.className = "e";
+
+ if ( div.getElementsByClassName("e").length === 1 ) {
+ return;
+ }
+
+ Expr.order.splice(1, 0, "CLASS");
+ Expr.find.CLASS = function( match, context, isXML ) {
+ if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+ return context.getElementsByClassName(match[1]);
+ }
+ };
+
+ // release memory in IE
+ div = null;
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+
+ if ( elem ) {
+ var match = false;
+
+ elem = elem[dir];
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 && !isXML ){
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if ( elem.nodeName.toLowerCase() === cur ) {
+ match = elem;
+ break;
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+
+ if ( elem ) {
+ var match = false;
+
+ elem = elem[dir];
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 ) {
+ if ( !isXML ) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if ( typeof cur !== "string" ) {
+ if ( elem === cur ) {
+ match = true;
+ break;
+ }
+
+ } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+ match = elem;
+ break;
+ }
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+if ( document.documentElement.contains ) {
+ Sizzle.contains = function( a, b ) {
+ return a !== b && (a.contains ? a.contains(b) : true);
+ };
+
+} else if ( document.documentElement.compareDocumentPosition ) {
+ Sizzle.contains = function( a, b ) {
+ return !!(a.compareDocumentPosition(b) & 16);
+ };
+
+} else {
+ Sizzle.contains = function() {
+ return false;
+ };
+}
+
+Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+var posProcess = function( selector, context ) {
+ var match,
+ tmpSet = [],
+ later = "",
+ root = context.nodeType ? [context] : context;
+
+ // Position selectors must be done after the filter
+ // And so must :not(positional) so we move all PSEUDOs to the end
+ while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+ later += match[0];
+ selector = selector.replace( Expr.match.PSEUDO, "" );
+ }
+
+ selector = Expr.relative[selector] ? selector + "*" : selector;
+
+ for ( var i = 0, l = root.length; i < l; i++ ) {
+ Sizzle( selector, root[i], tmpSet );
+ }
+
+ return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.filters;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+})();
+
+
+var runtil = /Until$/,
+ rparentsprev = /^(?:parents|prevUntil|prevAll)/,
+ // Note: This RegExp should be improved, or likely pulled from Sizzle
+ rmultiselector = /,/,
+ isSimple = /^.[^:#\[\.,]*$/,
+ slice = Array.prototype.slice,
+ POS = jQuery.expr.match.POS,
+ // methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
+
+jQuery.fn.extend({
+ find: function( selector ) {
+ var self = this,
+ i, l;
+
+ if ( typeof selector !== "string" ) {
+ return jQuery( selector ).filter(function() {
+ for ( i = 0, l = self.length; i < l; i++ ) {
+ if ( jQuery.contains( self[ i ], this ) ) {
+ return true;
+ }
+ }
+ });
+ }
+
+ var ret = this.pushStack( "", "find", selector ),
+ length, n, r;
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ length = ret.length;
+ jQuery.find( selector, this[i], ret );
+
+ if ( i > 0 ) {
+ // Make sure that the results are unique
+ for ( n = length; n < ret.length; n++ ) {
+ for ( r = 0; r < length; r++ ) {
+ if ( ret[r] === ret[n] ) {
+ ret.splice(n--, 1);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return ret;
+ },
+
+ has: function( target ) {
+ var targets = jQuery( target );
+ return this.filter(function() {
+ for ( var i = 0, l = targets.length; i < l; i++ ) {
+ if ( jQuery.contains( this, targets[i] ) ) {
+ return true;
+ }
+ }
+ });
+ },
+
+ not: function( selector ) {
+ return this.pushStack( winnow(this, selector, false), "not", selector);
+ },
+
+ filter: function( selector ) {
+ return this.pushStack( winnow(this, selector, true), "filter", selector );
+ },
+
+ is: function( selector ) {
+ return !!selector && ( typeof selector === "string" ?
+ jQuery.filter( selector, this ).length > 0 :
+ this.filter( selector ).length > 0 );
+ },
+
+ closest: function( selectors, context ) {
+ var ret = [], i, l, cur = this[0];
+
+ // Array
+ if ( jQuery.isArray( selectors ) ) {
+ var match, selector,
+ matches = {},
+ level = 1;
+
+ if ( cur && selectors.length ) {
+ for ( i = 0, l = selectors.length; i < l; i++ ) {
+ selector = selectors[i];
+
+ if ( !matches[ selector ] ) {
+ matches[ selector ] = POS.test( selector ) ?
+ jQuery( selector, context || this.context ) :
+ selector;
+ }
+ }
+
+ while ( cur && cur.ownerDocument && cur !== context ) {
+ for ( selector in matches ) {
+ match = matches[ selector ];
+
+ if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) {
+ ret.push({ selector: selector, elem: cur, level: level });
+ }
+ }
+
+ cur = cur.parentNode;
+ level++;
+ }
+ }
+
+ return ret;
+ }
+
+ // String
+ var pos = POS.test( selectors ) || typeof selectors !== "string" ?
+ jQuery( selectors, context || this.context ) :
+ 0;
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ cur = this[i];
+
+ while ( cur ) {
+ if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
+ ret.push( cur );
+ break;
+
+ } else {
+ cur = cur.parentNode;
+ if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
+ break;
+ }
+ }
+ }
+ }
+
+ ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
+
+ return this.pushStack( ret, "closest", selectors );
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
+ }
+
+ // index in selector
+ if ( typeof elem === "string" ) {
+ return jQuery.inArray( this[0], jQuery( elem ) );
+ }
+
+ // Locate the position of the desired element
+ return jQuery.inArray(
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[0] : elem, this );
+ },
+
+ add: function( selector, context ) {
+ var set = typeof selector === "string" ?
+ jQuery( selector, context ) :
+ jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
+ all = jQuery.merge( this.get(), set );
+
+ return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
+ all :
+ jQuery.unique( all ) );
+ },
+
+ andSelf: function() {
+ return this.add( this.prevObject );
+ }
+});
+
+// A painfully simple check to see if an element is disconnected
+// from a document (should be improved, where feasible).
+function isDisconnected( node ) {
+ return !node || !node.parentNode || node.parentNode.nodeType === 11;
+}
+
+jQuery.each({
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return jQuery.dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return jQuery.nth( elem, 2, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return jQuery.nth( elem, 2, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return jQuery.dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return jQuery.dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return jQuery.sibling( elem.parentNode.firstChild, elem );
+ },
+ children: function( elem ) {
+ return jQuery.sibling( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return jQuery.nodeName( elem, "iframe" ) ?
+ elem.contentDocument || elem.contentWindow.document :
+ jQuery.makeArray( elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var ret = jQuery.map( this, fn, until ),
+ // The variable 'args' was introduced in
+ // https://github.com/jquery/jquery/commit/52a0238
+ // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
+ // http://code.google.com/p/v8/issues/detail?id=1050
+ args = slice.call(arguments);
+
+ if ( !runtil.test( name ) ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ ret = jQuery.filter( selector, ret );
+ }
+
+ ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
+
+ if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
+ ret = ret.reverse();
+ }
+
+ return this.pushStack( ret, name, args.join(",") );
+ };
+});
+
+jQuery.extend({
+ filter: function( expr, elems, not ) {
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return elems.length === 1 ?
+ jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
+ jQuery.find.matches(expr, elems);
+ },
+
+ dir: function( elem, dir, until ) {
+ var matched = [],
+ cur = elem[ dir ];
+
+ while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
+ if ( cur.nodeType === 1 ) {
+ matched.push( cur );
+ }
+ cur = cur[dir];
+ }
+ return matched;
+ },
+
+ nth: function( cur, result, dir, elem ) {
+ result = result || 1;
+ var num = 0;
+
+ for ( ; cur; cur = cur[dir] ) {
+ if ( cur.nodeType === 1 && ++num === result ) {
+ break;
+ }
+ }
+
+ return cur;
+ },
+
+ sibling: function( n, elem ) {
+ var r = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ r.push( n );
+ }
+ }
+
+ return r;
+ }
+});
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, keep ) {
+
+ // Can't pass null or undefined to indexOf in Firefox 4
+ // Set to 0 to skip string check
+ qualifier = qualifier || 0;
+
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ var retVal = !!qualifier.call( elem, i, elem );
+ return retVal === keep;
+ });
+
+ } else if ( qualifier.nodeType ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ return (elem === qualifier) === keep;
+ });
+
+ } else if ( typeof qualifier === "string" ) {
+ var filtered = jQuery.grep(elements, function( elem ) {
+ return elem.nodeType === 1;
+ });
+
+ if ( isSimple.test( qualifier ) ) {
+ return jQuery.filter(qualifier, filtered, !keep);
+ } else {
+ qualifier = jQuery.filter( qualifier, filtered );
+ }
+ }
+
+ return jQuery.grep(elements, function( elem, i ) {
+ return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
+ });
+}
+
+
+
+
+var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
+ rleadingWhitespace = /^\s+/,
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
+ rtagName = /<([\w:]+)/,
+ rtbody = /<tbody/i,
+ rhtml = /<|&#?\w+;/,
+ rnocache = /<(?:script|object|embed|option|style)/i,
+ // checked="checked" or checked
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+ rscriptType = /\/(java|ecma)script/i,
+ rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
+ wrapMap = {
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
+ legend: [ 1, "<fieldset>", "</fieldset>" ],
+ thead: [ 1, "<table>", "</table>" ],
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+ col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+ area: [ 1, "<map>", "</map>" ],
+ _default: [ 0, "", "" ]
+ };
+
+wrapMap.optgroup = wrapMap.option;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+// IE can't serialize <link> and <script> tags normally
+if ( !jQuery.support.htmlSerialize ) {
+ wrapMap._default = [ 1, "div<div>", "</div>" ];
+}
+
+jQuery.fn.extend({
+ text: function( text ) {
+ if ( jQuery.isFunction(text) ) {
+ return this.each(function(i) {
+ var self = jQuery( this );
+
+ self.text( text.call(this, i, self.text()) );
+ });
+ }
+
+ if ( typeof text !== "object" && text !== undefined ) {
+ return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
+ }
+
+ return jQuery.text( this );
+ },
+
+ wrapAll: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each(function(i) {
+ jQuery(this).wrapAll( html.call(this, i) );
+ });
+ }
+
+ if ( this[0] ) {
+ // The elements to wrap the target around
+ var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
+
+ if ( this[0].parentNode ) {
+ wrap.insertBefore( this[0] );
+ }
+
+ wrap.map(function() {
+ var elem = this;
+
+ while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
+ elem = elem.firstChild;
+ }
+
+ return elem;
+ }).append( this );
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each(function(i) {
+ jQuery(this).wrapInner( html.call(this, i) );
+ });
+ }
+
+ return this.each(function() {
+ var self = jQuery( this ),
+ contents = self.contents();
+
+ if ( contents.length ) {
+ contents.wrapAll( html );
+
+ } else {
+ self.append( html );
+ }
+ });
+ },
+
+ wrap: function( html ) {
+ return this.each(function() {
+ jQuery( this ).wrapAll( html );
+ });
+ },
+
+ unwrap: function() {
+ return this.parent().each(function() {
+ if ( !jQuery.nodeName( this, "body" ) ) {
+ jQuery( this ).replaceWith( this.childNodes );
+ }
+ }).end();
+ },
+
+ append: function() {
+ return this.domManip(arguments, true, function( elem ) {
+ if ( this.nodeType === 1 ) {
+ this.appendChild( elem );
+ }
+ });
+ },
+
+ prepend: function() {
+ return this.domManip(arguments, true, function( elem ) {
+ if ( this.nodeType === 1 ) {
+ this.insertBefore( elem, this.firstChild );
+ }
+ });
+ },
+
+ before: function() {
+ if ( this[0] && this[0].parentNode ) {
+ return this.domManip(arguments, false, function( elem ) {
+ this.parentNode.insertBefore( elem, this );
+ });
+ } else if ( arguments.length ) {
+ var set = jQuery(arguments[0]);
+ set.push.apply( set, this.toArray() );
+ return this.pushStack( set, "before", arguments );
+ }
+ },
+
+ after: function() {
+ if ( this[0] && this[0].parentNode ) {
+ return this.domManip(arguments, false, function( elem ) {
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ });
+ } else if ( arguments.length ) {
+ var set = this.pushStack( this, "after", arguments );
+ set.push.apply( set, jQuery(arguments[0]).toArray() );
+ return set;
+ }
+ },
+
+ // keepData is for internal use only--do not document
+ remove: function( selector, keepData ) {
+ for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+ if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
+ if ( !keepData && elem.nodeType === 1 ) {
+ jQuery.cleanData( elem.getElementsByTagName("*") );
+ jQuery.cleanData( [ elem ] );
+ }
+
+ if ( elem.parentNode ) {
+ elem.parentNode.removeChild( elem );
+ }
+ }
+ }
+
+ return this;
+ },
+
+ empty: function() {
+ for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+ // Remove element nodes and prevent memory leaks
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( elem.getElementsByTagName("*") );
+ }
+
+ // Remove any remaining nodes
+ while ( elem.firstChild ) {
+ elem.removeChild( elem.firstChild );
+ }
+ }
+
+ return this;
+ },
+
+ clone: function( dataAndEvents, deepDataAndEvents ) {
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+ return this.map( function () {
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+ });
+ },
+
+ html: function( value ) {
+ if ( value === undefined ) {
+ return this[0] && this[0].nodeType === 1 ?
+ this[0].innerHTML.replace(rinlinejQuery, "") :
+ null;
+
+ // See if we can take a shortcut and just use innerHTML
+ } else if ( typeof value === "string" && !rnocache.test( value ) &&
+ (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
+ !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
+
+ value = value.replace(rxhtmlTag, "<$1></$2>");
+
+ try {
+ for ( var i = 0, l = this.length; i < l; i++ ) {
+ // Remove element nodes and prevent memory leaks
+ if ( this[i].nodeType === 1 ) {
+ jQuery.cleanData( this[i].getElementsByTagName("*") );
+ this[i].innerHTML = value;
+ }
+ }
+
+ // If using innerHTML throws an exception, use the fallback method
+ } catch(e) {
+ this.empty().append( value );
+ }
+
+ } else if ( jQuery.isFunction( value ) ) {
+ this.each(function(i){
+ var self = jQuery( this );
+
+ self.html( value.call(this, i, self.html()) );
+ });
+
+ } else {
+ this.empty().append( value );
+ }
+
+ return this;
+ },
+
+ replaceWith: function( value ) {
+ if ( this[0] && this[0].parentNode ) {
+ // Make sure that the elements are removed from the DOM before they are inserted
+ // this can help fix replacing a parent with child elements
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function(i) {
+ var self = jQuery(this), old = self.html();
+ self.replaceWith( value.call( this, i, old ) );
+ });
+ }
+
+ if ( typeof value !== "string" ) {
+ value = jQuery( value ).detach();
+ }
+
+ return this.each(function() {
+ var next = this.nextSibling,
+ parent = this.parentNode;
+
+ jQuery( this ).remove();
+
+ if ( next ) {
+ jQuery(next).before( value );
+ } else {
+ jQuery(parent).append( value );
+ }
+ });
+ } else {
+ return this.length ?
+ this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
+ this;
+ }
+ },
+
+ detach: function( selector ) {
+ return this.remove( selector, true );
+ },
+
+ domManip: function( args, table, callback ) {
+ var results, first, fragment, parent,
+ value = args[0],
+ scripts = [];
+
+ // We can't cloneNode fragments that contain checked, in WebKit
+ if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
+ return this.each(function() {
+ jQuery(this).domManip( args, table, callback, true );
+ });
+ }
+
+ if ( jQuery.isFunction(value) ) {
+ return this.each(function(i) {
+ var self = jQuery(this);
+ args[0] = value.call(this, i, table ? self.html() : undefined);
+ self.domManip( args, table, callback );
+ });
+ }
+
+ if ( this[0] ) {
+ parent = value && value.parentNode;
+
+ // If we're in a fragment, just use that instead of building a new one
+ if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
+ results = { fragment: parent };
+
+ } else {
+ results = jQuery.buildFragment( args, this, scripts );
+ }
+
+ fragment = results.fragment;
+
+ if ( fragment.childNodes.length === 1 ) {
+ first = fragment = fragment.firstChild;
+ } else {
+ first = fragment.firstChild;
+ }
+
+ if ( first ) {
+ table = table && jQuery.nodeName( first, "tr" );
+
+ for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
+ callback.call(
+ table ?
+ root(this[i], first) :
+ this[i],
+ // Make sure that we do not leak memory by inadvertently discarding
+ // the original fragment (which might have attached data) instead of
+ // using it; in addition, use the original fragment object for the last
+ // item instead of first because it can end up being emptied incorrectly
+ // in certain situations (Bug #8070).
+ // Fragments from the fragment cache must always be cloned and never used
+ // in place.
+ results.cacheable || (l > 1 && i < lastIndex) ?
+ jQuery.clone( fragment, true, true ) :
+ fragment
+ );
+ }
+ }
+
+ if ( scripts.length ) {
+ jQuery.each( scripts, evalScript );
+ }
+ }
+
+ return this;
+ }
+});
+
+function root( elem, cur ) {
+ return jQuery.nodeName(elem, "table") ?
+ (elem.getElementsByTagName("tbody")[0] ||
+ elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
+ elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+
+ if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+ return;
+ }
+
+ var internalKey = jQuery.expando,
+ oldData = jQuery.data( src ),
+ curData = jQuery.data( dest, oldData );
+
+ // Switch to use the internal data object, if it exists, for the next
+ // stage of data copying
+ if ( (oldData = oldData[ internalKey ]) ) {
+ var events = oldData.events;
+ curData = curData[ internalKey ] = jQuery.extend({}, oldData);
+
+ if ( events ) {
+ delete curData.handle;
+ curData.events = {};
+
+ for ( var type in events ) {
+ for ( var i = 0, l = events[ type ].length; i < l; i++ ) {
+ jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
+ }
+ }
+ }
+ }
+}
+
+function cloneFixAttributes( src, dest ) {
+ var nodeName;
+
+ // We do not need to do anything for non-Elements
+ if ( dest.nodeType !== 1 ) {
+ return;
+ }
+
+ // clearAttributes removes the attributes, which we don't want,
+ // but also removes the attachEvent events, which we *do* want
+ if ( dest.clearAttributes ) {
+ dest.clearAttributes();
+ }
+
+ // mergeAttributes, in contrast, only merges back on the
+ // original attributes, not the events
+ if ( dest.mergeAttributes ) {
+ dest.mergeAttributes( src );
+ }
+
+ nodeName = dest.nodeName.toLowerCase();
+
+ // IE6-8 fail to clone children inside object elements that use
+ // the proprietary classid attribute value (rather than the type
+ // attribute) to identify the type of content to display
+ if ( nodeName === "object" ) {
+ dest.outerHTML = src.outerHTML;
+
+ } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
+ // IE6-8 fails to persist the checked state of a cloned checkbox
+ // or radio button. Worse, IE6-7 fail to give the cloned element
+ // a checked appearance if the defaultChecked value isn't also set
+ if ( src.checked ) {
+ dest.defaultChecked = dest.checked = src.checked;
+ }
+
+ // IE6-7 get confused and end up setting the value of a cloned
+ // checkbox/radio button to an empty string instead of "on"
+ if ( dest.value !== src.value ) {
+ dest.value = src.value;
+ }
+
+ // IE6-8 fails to return the selected option to the default selected
+ // state when cloning options
+ } else if ( nodeName === "option" ) {
+ dest.selected = src.defaultSelected;
+
+ // IE6-8 fails to set the defaultValue to the correct value when
+ // cloning other types of input fields
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
+ dest.defaultValue = src.defaultValue;
+ }
+
+ // Event data gets referenced instead of copied if the expando
+ // gets copied too
+ dest.removeAttribute( jQuery.expando );
+}
+
+jQuery.buildFragment = function( args, nodes, scripts ) {
+ var fragment, cacheable, cacheresults, doc;
+
+ // nodes may contain either an explicit document object,
+ // a jQuery collection or context object.
+ // If nodes[0] contains a valid object to assign to doc
+ if ( nodes && nodes[0] ) {
+ doc = nodes[0].ownerDocument || nodes[0];
+ }
+
+ // Ensure that an attr object doesn't incorrectly stand in as a document object
+ // Chrome and Firefox seem to allow this to occur and will throw exception
+ // Fixes #8950
+ if ( !doc.createDocumentFragment ) {
+ doc = document;
+ }
+
+ // Only cache "small" (1/2 KB) HTML strings that are associated with the main document
+ // Cloning options loses the selected state, so don't cache them
+ // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
+ // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
+ if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
+ args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
+
+ cacheable = true;
+
+ cacheresults = jQuery.fragments[ args[0] ];
+ if ( cacheresults && cacheresults !== 1 ) {
+ fragment = cacheresults;
+ }
+ }
+
+ if ( !fragment ) {
+ fragment = doc.createDocumentFragment();
+ jQuery.clean( args, doc, fragment, scripts );
+ }
+
+ if ( cacheable ) {
+ jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1;
+ }
+
+ return { fragment: fragment, cacheable: cacheable };
+};
+
+jQuery.fragments = {};
+
+jQuery.each({
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function( name, original ) {
+ jQuery.fn[ name ] = function( selector ) {
+ var ret = [],
+ insert = jQuery( selector ),
+ parent = this.length === 1 && this[0].parentNode;
+
+ if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
+ insert[ original ]( this[0] );
+ return this;
+
+ } else {
+ for ( var i = 0, l = insert.length; i < l; i++ ) {
+ var elems = (i > 0 ? this.clone(true) : this).get();
+ jQuery( insert[i] )[ original ]( elems );
+ ret = ret.concat( elems );
+ }
+
+ return this.pushStack( ret, name, insert.selector );
+ }
+ };
+});
+
+function getAll( elem ) {
+ if ( "getElementsByTagName" in elem ) {
+ return elem.getElementsByTagName( "*" );
+
+ } else if ( "querySelectorAll" in elem ) {
+ return elem.querySelectorAll( "*" );
+
+ } else {
+ return [];
+ }
+}
+
+// Used in clean, fixes the defaultChecked property
+function fixDefaultChecked( elem ) {
+ if ( elem.type === "checkbox" || elem.type === "radio" ) {
+ elem.defaultChecked = elem.checked;
+ }
+}
+// Finds all inputs and passes them to fixDefaultChecked
+function findInputs( elem ) {
+ if ( jQuery.nodeName( elem, "input" ) ) {
+ fixDefaultChecked( elem );
+ } else if ( "getElementsByTagName" in elem ) {
+ jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
+ }
+}
+
+jQuery.extend({
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+ var clone = elem.cloneNode(true),
+ srcElements,
+ destElements,
+ i;
+
+ if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
+ (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
+ // IE copies events bound via attachEvent when using cloneNode.
+ // Calling detachEvent on the clone will also remove the events
+ // from the original. In order to get around this, we use some
+ // proprietary methods to clear the events. Thanks to MooTools
+ // guys for this hotness.
+
+ cloneFixAttributes( elem, clone );
+
+ // Using Sizzle here is crazy slow, so we use getElementsByTagName
+ // instead
+ srcElements = getAll( elem );
+ destElements = getAll( clone );
+
+ // Weird iteration because IE will replace the length property
+ // with an element if you are cloning the body and one of the
+ // elements on the page has a name or id of "length"
+ for ( i = 0; srcElements[i]; ++i ) {
+ // Ensure that the destination node is not null; Fixes #9587
+ if ( destElements[i] ) {
+ cloneFixAttributes( srcElements[i], destElements[i] );
+ }
+ }
+ }
+
+ // Copy the events from the original to the clone
+ if ( dataAndEvents ) {
+ cloneCopyEvent( elem, clone );
+
+ if ( deepDataAndEvents ) {
+ srcElements = getAll( elem );
+ destElements = getAll( clone );
+
+ for ( i = 0; srcElements[i]; ++i ) {
+ cloneCopyEvent( srcElements[i], destElements[i] );
+ }
+ }
+ }
+
+ srcElements = destElements = null;
+
+ // Return the cloned set
+ return clone;
+ },
+
+ clean: function( elems, context, fragment, scripts ) {
+ var checkScriptType;
+
+ context = context || document;
+
+ // !context.createElement fails in IE with an error but returns typeof 'object'
+ if ( typeof context.createElement === "undefined" ) {
+ context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
+ }
+
+ var ret = [], j;
+
+ for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+ if ( typeof elem === "number" ) {
+ elem += "";
+ }
+
+ if ( !elem ) {
+ continue;
+ }
+
+ // Convert html string into DOM nodes
+ if ( typeof elem === "string" ) {
+ if ( !rhtml.test( elem ) ) {
+ elem = context.createTextNode( elem );
+ } else {
+ // Fix "XHTML"-style tags in all browsers
+ elem = elem.replace(rxhtmlTag, "<$1></$2>");
+
+ // Trim whitespace, otherwise indexOf won't work as expected
+ var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
+ wrap = wrapMap[ tag ] || wrapMap._default,
+ depth = wrap[0],
+ div = context.createElement("div");
+
+ // Go to html and back, then peel off extra wrappers
+ div.innerHTML = wrap[1] + elem + wrap[2];
+
+ // Move to the right depth
+ while ( depth-- ) {
+ div = div.lastChild;
+ }
+
+ // Remove IE's autoinserted <tbody> from table fragments
+ if ( !jQuery.support.tbody ) {
+
+ // String was a <table>, *may* have spurious <tbody>
+ var hasBody = rtbody.test(elem),
+ tbody = tag === "table" && !hasBody ?
+ div.firstChild && div.firstChild.childNodes :
+
+ // String was a bare <thead> or <tfoot>
+ wrap[1] === "<table>" && !hasBody ?
+ div.childNodes :
+ [];
+
+ for ( j = tbody.length - 1; j >= 0 ; --j ) {
+ if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
+ tbody[ j ].parentNode.removeChild( tbody[ j ] );
+ }
+ }
+ }
+
+ // IE completely kills leading whitespace when innerHTML is used
+ if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+ div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
+ }
+
+ elem = div.childNodes;
+ }
+ }
+
+ // Resets defaultChecked for any radios and checkboxes
+ // about to be appended to the DOM in IE 6/7 (#8060)
+ var len;
+ if ( !jQuery.support.appendChecked ) {
+ if ( elem[0] && typeof (len = elem.length) === "number" ) {
+ for ( j = 0; j < len; j++ ) {
+ findInputs( elem[j] );
+ }
+ } else {
+ findInputs( elem );
+ }
+ }
+
+ if ( elem.nodeType ) {
+ ret.push( elem );
+ } else {
+ ret = jQuery.merge( ret, elem );
+ }
+ }
+
+ if ( fragment ) {
+ checkScriptType = function( elem ) {
+ return !elem.type || rscriptType.test( elem.type );
+ };
+ for ( i = 0; ret[i]; i++ ) {
+ if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
+ scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
+
+ } else {
+ if ( ret[i].nodeType === 1 ) {
+ var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );
+
+ ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
+ }
+ fragment.appendChild( ret[i] );
+ }
+ }
+ }
+
+ return ret;
+ },
+
+ cleanData: function( elems ) {
+ var data, id, cache = jQuery.cache, internalKey = jQuery.expando, special = jQuery.event.special,
+ deleteExpando = jQuery.support.deleteExpando;
+
+ for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+ if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+ continue;
+ }
+
+ id = elem[ jQuery.expando ];
+
+ if ( id ) {
+ data = cache[ id ] && cache[ id ][ internalKey ];
+
+ if ( data && data.events ) {
+ for ( var type in data.events ) {
+ if ( special[ type ] ) {
+ jQuery.event.remove( elem, type );
+
+ // This is a shortcut to avoid jQuery.event.remove's overhead
+ } else {
+ jQuery.removeEvent( elem, type, data.handle );
+ }
+ }
+
+ // Null the DOM reference to avoid IE6/7/8 leak (#7054)
+ if ( data.handle ) {
+ data.handle.elem = null;
+ }
+ }
+
+ if ( deleteExpando ) {
+ delete elem[ jQuery.expando ];
+
+ } else if ( elem.removeAttribute ) {
+ elem.removeAttribute( jQuery.expando );
+ }
+
+ delete cache[ id ];
+ }
+ }
+ }
+});
+
+function evalScript( i, elem ) {
+ if ( elem.src ) {
+ jQuery.ajax({
+ url: elem.src,
+ async: false,
+ dataType: "script"
+ });
+ } else {
+ jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
+ }
+
+ if ( elem.parentNode ) {
+ elem.parentNode.removeChild( elem );
+ }
+}
+
+
+
+
+var ralpha = /alpha\([^)]*\)/i,
+ ropacity = /opacity=([^)]*)/,
+ // fixed for IE9, see #8346
+ rupper = /([A-Z]|^ms)/g,
+ rnumpx = /^-?\d+(?:px)?$/i,
+ rnum = /^-?\d/,
+ rrelNum = /^([\-+])=([\-+.\de]+)/,
+
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+ cssWidth = [ "Left", "Right" ],
+ cssHeight = [ "Top", "Bottom" ],
+ curCSS,
+
+ getComputedStyle,
+ currentStyle;
+
+jQuery.fn.css = function( name, value ) {
+ // Setting 'undefined' is a no-op
+ if ( arguments.length === 2 && value === undefined ) {
+ return this;
+ }
+
+ return jQuery.access( this, name, value, true, function( elem, name, value ) {
+ return value !== undefined ?
+ jQuery.style( elem, name, value ) :
+ jQuery.css( elem, name );
+ });
+};
+
+jQuery.extend({
+ // Add in style property hooks for overriding the default
+ // behavior of getting and setting a style property
+ cssHooks: {
+ opacity: {
+ get: function( elem, computed ) {
+ if ( computed ) {
+ // We should always get a number back from opacity
+ var ret = curCSS( elem, "opacity", "opacity" );
+ return ret === "" ? "1" : ret;
+
+ } else {
+ return elem.style.opacity;
+ }
+ }
+ }
+ },
+
+ // Exclude the following css properties to add px
+ cssNumber: {
+ "fillOpacity": true,
+ "fontWeight": true,
+ "lineHeight": true,
+ "opacity": true,
+ "orphans": true,
+ "widows": true,
+ "zIndex": true,
+ "zoom": true
+ },
+
+ // Add in properties whose names you wish to fix before
+ // setting or getting the value
+ cssProps: {
+ // normalize float css property
+ "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
+ },
+
+ // Get and set the style property on a DOM Node
+ style: function( elem, name, value, extra ) {
+ // Don't set styles on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+ return;
+ }
+
+ // Make sure that we're working with the right name
+ var ret, type, origName = jQuery.camelCase( name ),
+ style = elem.style, hooks = jQuery.cssHooks[ origName ];
+
+ name = jQuery.cssProps[ origName ] || origName;
+
+ // Check if we're setting a value
+ if ( value !== undefined ) {
+ type = typeof value;
+
+ // convert relative number strings (+= or -=) to relative numbers. #7345
+ if ( type === "string" && (ret = rrelNum.exec( value )) ) {
+ value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
+ // Fixes bug #9237
+ type = "number";
+ }
+
+ // Make sure that NaN and null values aren't set. See: #7116
+ if ( value == null || type === "number" && isNaN( value ) ) {
+ return;
+ }
+
+ // If a number was passed in, add 'px' to the (except for certain CSS properties)
+ if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
+ value += "px";
+ }
+
+ // If a hook was provided, use that value, otherwise just set the specified value
+ if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
+ // Wrapped to prevent IE from throwing errors when 'invalid' values are provided
+ // Fixes bug #5509
+ try {
+ style[ name ] = value;
+ } catch(e) {}
+ }
+
+ } else {
+ // If a hook was provided get the non-computed value from there
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
+ return ret;
+ }
+
+ // Otherwise just get the value from the style object
+ return style[ name ];
+ }
+ },
+
+ css: function( elem, name, extra ) {
+ var ret, hooks;
+
+ // Make sure that we're working with the right name
+ name = jQuery.camelCase( name );
+ hooks = jQuery.cssHooks[ name ];
+ name = jQuery.cssProps[ name ] || name;
+
+ // cssFloat needs a special treatment
+ if ( name === "cssFloat" ) {
+ name = "float";
+ }
+
+ // If a hook was provided get the computed value from there
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
+ return ret;
+
+ // Otherwise, if a way to get the computed value exists, use that
+ } else if ( curCSS ) {
+ return curCSS( elem, name );
+ }
+ },
+
+ // A method for quickly swapping in/out CSS properties to get correct calculations
+ swap: function( elem, options, callback ) {
+ var old = {};
+
+ // Remember the old values, and insert the new ones
+ for ( var name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ callback.call( elem );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+ }
+});
+
+// DEPRECATED, Use jQuery.css() instead
+jQuery.curCSS = jQuery.css;
+
+jQuery.each(["height", "width"], function( i, name ) {
+ jQuery.cssHooks[ name ] = {
+ get: function( elem, computed, extra ) {
+ var val;
+
+ if ( computed ) {
+ if ( elem.offsetWidth !== 0 ) {
+ return getWH( elem, name, extra );
+ } else {
+ jQuery.swap( elem, cssShow, function() {
+ val = getWH( elem, name, extra );
+ });
+ }
+
+ return val;
+ }
+ },
+
+ set: function( elem, value ) {
+ if ( rnumpx.test( value ) ) {
+ // ignore negative width and height values #1599
+ value = parseFloat( value );
+
+ if ( value >= 0 ) {
+ return value + "px";
+ }
+
+ } else {
+ return value;
+ }
+ }
+ };
+});
+
+if ( !jQuery.support.opacity ) {
+ jQuery.cssHooks.opacity = {
+ get: function( elem, computed ) {
+ // IE uses filters for opacity
+ return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
+ ( parseFloat( RegExp.$1 ) / 100 ) + "" :
+ computed ? "1" : "";
+ },
+
+ set: function( elem, value ) {
+ var style = elem.style,
+ currentStyle = elem.currentStyle,
+ opacity = jQuery.isNaN( value ) ? "" : "alpha(opacity=" + value * 100 + ")",
+ filter = currentStyle && currentStyle.filter || style.filter || "";
+
+ // IE has trouble with opacity if it does not have layout
+ // Force it by setting the zoom level
+ style.zoom = 1;
+
+ // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
+ if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
+
+ // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+ // if "filter:" is present at all, clearType is disabled, we want to avoid this
+ // style.removeAttribute is IE Only, but so apparently is this code path...
+ style.removeAttribute( "filter" );
+
+ // if there there is no filter style applied in a css rule, we are done
+ if ( currentStyle && !currentStyle.filter ) {
+ return;
+ }
+ }
+
+ // otherwise, set new filter values
+ style.filter = ralpha.test( filter ) ?
+ filter.replace( ralpha, opacity ) :
+ filter + " " + opacity;
+ }
+ };
+}
+
+jQuery(function() {
+ // This hook cannot be added until DOM ready because the support test
+ // for it is not run until after DOM ready
+ if ( !jQuery.support.reliableMarginRight ) {
+ jQuery.cssHooks.marginRight = {
+ get: function( elem, computed ) {
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ // Work around by temporarily setting element display to inline-block
+ var ret;
+ jQuery.swap( elem, { "display": "inline-block" }, function() {
+ if ( computed ) {
+ ret = curCSS( elem, "margin-right", "marginRight" );
+ } else {
+ ret = elem.style.marginRight;
+ }
+ });
+ return ret;
+ }
+ };
+ }
+});
+
+if ( document.defaultView && document.defaultView.getComputedStyle ) {
+ getComputedStyle = function( elem, name ) {
+ var ret, defaultView, computedStyle;
+
+ name = name.replace( rupper, "-$1" ).toLowerCase();
+
+ if ( !(defaultView = elem.ownerDocument.defaultView) ) {
+ return undefined;
+ }
+
+ if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
+ ret = computedStyle.getPropertyValue( name );
+ if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
+ ret = jQuery.style( elem, name );
+ }
+ }
+
+ return ret;
+ };
+}
+
+if ( document.documentElement.currentStyle ) {
+ currentStyle = function( elem, name ) {
+ var left,
+ ret = elem.currentStyle && elem.currentStyle[ name ],
+ rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
+ style = elem.style;
+
+ // From the awesome hack by Dean Edwards
+ // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+ // If we're not dealing with a regular pixel number
+ // but a number that has a weird ending, we need to convert it to pixels
+ if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
+ // Remember the original values
+ left = style.left;
+
+ // Put in the new values to get a computed value out
+ if ( rsLeft ) {
+ elem.runtimeStyle.left = elem.currentStyle.left;
+ }
+ style.left = name === "fontSize" ? "1em" : (ret || 0);
+ ret = style.pixelLeft + "px";
+
+ // Revert the changed values
+ style.left = left;
+ if ( rsLeft ) {
+ elem.runtimeStyle.left = rsLeft;
+ }
+ }
+
+ return ret === "" ? "auto" : ret;
+ };
+}
+
+curCSS = getComputedStyle || currentStyle;
+
+function getWH( elem, name, extra ) {
+
+ // Start with offset property
+ var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+ which = name === "width" ? cssWidth : cssHeight;
+
+ if ( val > 0 ) {
+ if ( extra !== "border" ) {
+ jQuery.each( which, function() {
+ if ( !extra ) {
+ val -= parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
+ }
+ if ( extra === "margin" ) {
+ val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
+ } else {
+ val -= parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
+ }
+ });
+ }
+
+ return val + "px";
+ }
+
+ // Fall back to computed then uncomputed css if necessary
+ val = curCSS( elem, name, name );
+ if ( val < 0 || val == null ) {
+ val = elem.style[ name ] || 0;
+ }
+ // Normalize "", auto, and prepare for extra
+ val = parseFloat( val ) || 0;
+
+ // Add padding, border, margin
+ if ( extra ) {
+ jQuery.each( which, function() {
+ val += parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
+ if ( extra !== "padding" ) {
+ val += parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
+ }
+ if ( extra === "margin" ) {
+ val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
+ }
+ });
+ }
+
+ return val + "px";
+}
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+ jQuery.expr.filters.hidden = function( elem ) {
+ var width = elem.offsetWidth,
+ height = elem.offsetHeight;
+
+ return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && (elem.style.display || jQuery.css( elem, "display" )) === "none");
+ };
+
+ jQuery.expr.filters.visible = function( elem ) {
+ return !jQuery.expr.filters.hidden( elem );
+ };
+}
+
+
+
+
+var r20 = /%20/g,
+ rbracket = /\[\]$/,
+ rCRLF = /\r?\n/g,
+ rhash = /#.*$/,
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
+ rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
+ // #7653, #8125, #8152: local protocol detection
+ rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
+ rnoContent = /^(?:GET|HEAD)$/,
+ rprotocol = /^\/\//,
+ rquery = /\?/,
+ rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+ rselectTextarea = /^(?:select|textarea)/i,
+ rspacesAjax = /\s+/,
+ rts = /([?&])_=[^&]*/,
+ rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
+
+ // Keep a copy of the old load method
+ _load = jQuery.fn.load,
+
+ /* Prefilters
+ * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+ * 2) These are called:
+ * - BEFORE asking for a transport
+ * - AFTER param serialization (s.data is a string if s.processData is true)
+ * 3) key is the dataType
+ * 4) the catchall symbol "*" can be used
+ * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+ */
+ prefilters = {},
+
+ /* Transports bindings
+ * 1) key is the dataType
+ * 2) the catchall symbol "*" can be used
+ * 3) selection will start with transport dataType and THEN go to "*" if needed
+ */
+ transports = {},
+
+ // Document location
+ ajaxLocation,
+
+ // Document location segments
+ ajaxLocParts,
+
+ // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+ allTypes = ["*/"] + ["*"];
+
+// #8138, IE may throw an exception when accessing
+// a field from window.location if document.domain has been set
+try {
+ ajaxLocation = location.href;
+} catch( e ) {
+ // Use the href attribute of an A element
+ // since IE will modify it given document.location
+ ajaxLocation = document.createElement( "a" );
+ ajaxLocation.href = "";
+ ajaxLocation = ajaxLocation.href;
+}
+
+// Segment location into parts
+ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+ // dataTypeExpression is optional and defaults to "*"
+ return function( dataTypeExpression, func ) {
+
+ if ( typeof dataTypeExpression !== "string" ) {
+ func = dataTypeExpression;
+ dataTypeExpression = "*";
+ }
+
+ if ( jQuery.isFunction( func ) ) {
+ var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
+ i = 0,
+ length = dataTypes.length,
+ dataType,
+ list,
+ placeBefore;
+
+ // For each dataType in the dataTypeExpression
+ for(; i < length; i++ ) {
+ dataType = dataTypes[ i ];
+ // We control if we're asked to add before
+ // any existing element
+ placeBefore = /^\+/.test( dataType );
+ if ( placeBefore ) {
+ dataType = dataType.substr( 1 ) || "*";
+ }
+ list = structure[ dataType ] = structure[ dataType ] || [];
+ // then we add to the structure accordingly
+ list[ placeBefore ? "unshift" : "push" ]( func );
+ }
+ }
+ };
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
+ dataType /* internal */, inspected /* internal */ ) {
+
+ dataType = dataType || options.dataTypes[ 0 ];
+ inspected = inspected || {};
+
+ inspected[ dataType ] = true;
+
+ var list = structure[ dataType ],
+ i = 0,
+ length = list ? list.length : 0,
+ executeOnly = ( structure === prefilters ),
+ selection;
+
+ for(; i < length && ( executeOnly || !selection ); i++ ) {
+ selection = list[ i ]( options, originalOptions, jqXHR );
+ // If we got redirected to another dataType
+ // we try there if executing only and not done already
+ if ( typeof selection === "string" ) {
+ if ( !executeOnly || inspected[ selection ] ) {
+ selection = undefined;
+ } else {
+ options.dataTypes.unshift( selection );
+ selection = inspectPrefiltersOrTransports(
+ structure, options, originalOptions, jqXHR, selection, inspected );
+ }
+ }
+ }
+ // If we're only executing or nothing was selected
+ // we try the catchall dataType if not done already
+ if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
+ selection = inspectPrefiltersOrTransports(
+ structure, options, originalOptions, jqXHR, "*", inspected );
+ }
+ // unnecessary when only executing (prefilters)
+ // but it'll be ignored by the caller in that case
+ return selection;
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+ var key, deep,
+ flatOptions = jQuery.ajaxSettings.flatOptions || {};
+ for( key in src ) {
+ if ( src[ key ] !== undefined ) {
+ ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+ }
+ }
+ if ( deep ) {
+ jQuery.extend( true, target, deep );
+ }
+}
+
+jQuery.fn.extend({
+ load: function( url, params, callback ) {
+ if ( typeof url !== "string" && _load ) {
+ return _load.apply( this, arguments );
+
+ // Don't do a request if no elements are being requested
+ } else if ( !this.length ) {
+ return this;
+ }
+
+ var off = url.indexOf( " " );
+ if ( off >= 0 ) {
+ var selector = url.slice( off, url.length );
+ url = url.slice( 0, off );
+ }
+
+ // Default to a GET request
+ var type = "GET";
+
+ // If the second parameter was provided
+ if ( params ) {
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+ // We assume that it's the callback
+ callback = params;
+ params = undefined;
+
+ // Otherwise, build a param string
+ } else if ( typeof params === "object" ) {
+ params = jQuery.param( params, jQuery.ajaxSettings.traditional );
+ type = "POST";
+ }
+ }
+
+ var self = this;
+
+ // Request the remote document
+ jQuery.ajax({
+ url: url,
+ type: type,
+ dataType: "html",
+ data: params,
+ // Complete callback (responseText is used internally)
+ complete: function( jqXHR, status, responseText ) {
+ // Store the response as specified by the jqXHR object
+ responseText = jqXHR.responseText;
+ // If successful, inject the HTML into all the matched elements
+ if ( jqXHR.isResolved() ) {
+ // #4825: Get the actual response in case
+ // a dataFilter is present in ajaxSettings
+ jqXHR.done(function( r ) {
+ responseText = r;
+ });
+ // See if a selector was specified
+ self.html( selector ?
+ // Create a dummy div to hold the results
+ jQuery("<div>")
+ // inject the contents of the document in, removing the scripts
+ // to avoid any 'Permission Denied' errors in IE
+ .append(responseText.replace(rscript, ""))
+
+ // Locate the specified elements
+ .find(selector) :
+
+ // If not, just inject the full result
+ responseText );
+ }
+
+ if ( callback ) {
+ self.each( callback, [ responseText, status, jqXHR ] );
+ }
+ }
+ });
+
+ return this;
+ },
+
+ serialize: function() {
+ return jQuery.param( this.serializeArray() );
+ },
+
+ serializeArray: function() {
+ return this.map(function(){
+ return this.elements ? jQuery.makeArray( this.elements ) : this;
+ })
+ .filter(function(){
+ return this.name && !this.disabled &&
+ ( this.checked || rselectTextarea.test( this.nodeName ) ||
+ rinput.test( this.type ) );
+ })
+ .map(function( i, elem ){
+ var val = jQuery( this ).val();
+
+ return val == null ?
+ null :
+ jQuery.isArray( val ) ?
+ jQuery.map( val, function( val, i ){
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ }) :
+ { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ }).get();
+ }
+});
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
+ jQuery.fn[ o ] = function( f ){
+ return this.bind( o, f );
+ };
+});
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+ jQuery[ method ] = function( url, data, callback, type ) {
+ // shift arguments if data argument was omitted
+ if ( jQuery.isFunction( data ) ) {
+ type = type || callback;
+ callback = data;
+ data = undefined;
+ }
+
+ return jQuery.ajax({
+ type: method,
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type
+ });
+ };
+});
+
+jQuery.extend({
+
+ getScript: function( url, callback ) {
+ return jQuery.get( url, undefined, callback, "script" );
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get( url, data, callback, "json" );
+ },
+
+ // Creates a full fledged settings object into target
+ // with both ajaxSettings and settings fields.
+ // If target is omitted, writes into ajaxSettings.
+ ajaxSetup: function( target, settings ) {
+ if ( settings ) {
+ // Building a settings object
+ ajaxExtend( target, jQuery.ajaxSettings );
+ } else {
+ // Extending ajaxSettings
+ settings = target;
+ target = jQuery.ajaxSettings;
+ }
+ ajaxExtend( target, settings );
+ return target;
+ },
+
+ ajaxSettings: {
+ url: ajaxLocation,
+ isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+ global: true,
+ type: "GET",
+ contentType: "application/x-www-form-urlencoded",
+ processData: true,
+ async: true,
+ /*
+ timeout: 0,
+ data: null,
+ dataType: null,
+ username: null,
+ password: null,
+ cache: null,
+ traditional: false,
+ headers: {},
+ */
+
+ accepts: {
+ xml: "application/xml, text/xml",
+ html: "text/html",
+ text: "text/plain",
+ json: "application/json, text/javascript",
+ "*": allTypes
+ },
+
+ contents: {
+ xml: /xml/,
+ html: /html/,
+ json: /json/
+ },
+
+ responseFields: {
+ xml: "responseXML",
+ text: "responseText"
+ },
+
+ // List of data converters
+ // 1) key format is "source_type destination_type" (a single space in-between)
+ // 2) the catchall symbol "*" can be used for source_type
+ converters: {
+
+ // Convert anything to text
+ "* text": window.String,
+
+ // Text to html (true = no transformation)
+ "text html": true,
+
+ // Evaluate text as a json expression
+ "text json": jQuery.parseJSON,
+
+ // Parse text as xml
+ "text xml": jQuery.parseXML
+ },
+
+ // For options that shouldn't be deep extended:
+ // you can add your own custom options here if
+ // and when you create one that shouldn't be
+ // deep extended (see ajaxExtend)
+ flatOptions: {
+ context: true,
+ url: true
+ }
+ },
+
+ ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+ ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+ // Main method
+ ajax: function( url, options ) {
+
+ // If url is an object, simulate pre-1.5 signature
+ if ( typeof url === "object" ) {
+ options = url;
+ url = undefined;
+ }
+
+ // Force options to be an object
+ options = options || {};
+
+ var // Create the final options object
+ s = jQuery.ajaxSetup( {}, options ),
+ // Callbacks context
+ callbackContext = s.context || s,
+ // Context for global events
+ // It's the callbackContext if one was provided in the options
+ // and if it's a DOM node or a jQuery collection
+ globalEventContext = callbackContext !== s &&
+ ( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
+ jQuery( callbackContext ) : jQuery.event,
+ // Deferreds
+ deferred = jQuery.Deferred(),
+ completeDeferred = jQuery._Deferred(),
+ // Status-dependent callbacks
+ statusCode = s.statusCode || {},
+ // ifModified key
+ ifModifiedKey,
+ // Headers (they are sent all at once)
+ requestHeaders = {},
+ requestHeadersNames = {},
+ // Response headers
+ responseHeadersString,
+ responseHeaders,
+ // transport
+ transport,
+ // timeout handle
+ timeoutTimer,
+ // Cross-domain detection vars
+ parts,
+ // The jqXHR state
+ state = 0,
+ // To know if global events are to be dispatched
+ fireGlobals,
+ // Loop variable
+ i,
+ // Fake xhr
+ jqXHR = {
+
+ readyState: 0,
+
+ // Caches the header
+ setRequestHeader: function( name, value ) {
+ if ( !state ) {
+ var lname = name.toLowerCase();
+ name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+ requestHeaders[ name ] = value;
+ }
+ return this;
+ },
+
+ // Raw string
+ getAllResponseHeaders: function() {
+ return state === 2 ? responseHeadersString : null;
+ },
+
+ // Builds headers hashtable if needed
+ getResponseHeader: function( key ) {
+ var match;
+ if ( state === 2 ) {
+ if ( !responseHeaders ) {
+ responseHeaders = {};
+ while( ( match = rheaders.exec( responseHeadersString ) ) ) {
+ responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+ }
+ }
+ match = responseHeaders[ key.toLowerCase() ];
+ }
+ return match === undefined ? null : match;
+ },
+
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( !state ) {
+ s.mimeType = type;
+ }
+ return this;
+ },
+
+ // Cancel the request
+ abort: function( statusText ) {
+ statusText = statusText || "abort";
+ if ( transport ) {
+ transport.abort( statusText );
+ }
+ done( 0, statusText );
+ return this;
+ }
+ };
+
+ // Callback for when everything is done
+ // It is defined here because jslint complains if it is declared
+ // at the end of the function (which would be more logical and readable)
+ function done( status, nativeStatusText, responses, headers ) {
+
+ // Called once
+ if ( state === 2 ) {
+ return;
+ }
+
+ // State is "done" now
+ state = 2;
+
+ // Clear timeout if it exists
+ if ( timeoutTimer ) {
+ clearTimeout( timeoutTimer );
+ }
+
+ // Dereference transport for early garbage collection
+ // (no matter how long the jqXHR object will be used)
+ transport = undefined;
+
+ // Cache response headers
+ responseHeadersString = headers || "";
+
+ // Set readyState
+ jqXHR.readyState = status > 0 ? 4 : 0;
+
+ var isSuccess,
+ success,
+ error,
+ statusText = nativeStatusText,
+ response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
+ lastModified,
+ etag;
+
+ // If successful, handle type chaining
+ if ( status >= 200 && status < 300 || status === 304 ) {
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+
+ if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
+ jQuery.lastModified[ ifModifiedKey ] = lastModified;
+ }
+ if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
+ jQuery.etag[ ifModifiedKey ] = etag;
+ }
+ }
+
+ // If not modified
+ if ( status === 304 ) {
+
+ statusText = "notmodified";
+ isSuccess = true;
+
+ // If we have data
+ } else {
+
+ try {
+ success = ajaxConvert( s, response );
+ statusText = "success";
+ isSuccess = true;
+ } catch(e) {
+ // We have a parsererror
+ statusText = "parsererror";
+ error = e;
+ }
+ }
+ } else {
+ // We extract error from statusText
+ // then normalize statusText and status for non-aborts
+ error = statusText;
+ if( !statusText || status ) {
+ statusText = "error";
+ if ( status < 0 ) {
+ status = 0;
+ }
+ }
+ }
+
+ // Set data for the fake xhr object
+ jqXHR.status = status;
+ jqXHR.statusText = "" + ( nativeStatusText || statusText );
+
+ // Success/Error
+ if ( isSuccess ) {
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+ } else {
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+ }
+
+ // Status-dependent callbacks
+ jqXHR.statusCode( statusCode );
+ statusCode = undefined;
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
+ [ jqXHR, s, isSuccess ? success : error ] );
+ }
+
+ // Complete
+ completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] );
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+ // Handle the global AJAX counter
+ if ( !( --jQuery.active ) ) {
+ jQuery.event.trigger( "ajaxStop" );
+ }
+ }
+ }
+
+ // Attach deferreds
+ deferred.promise( jqXHR );
+ jqXHR.success = jqXHR.done;
+ jqXHR.error = jqXHR.fail;
+ jqXHR.complete = completeDeferred.done;
+
+ // Status-dependent callbacks
+ jqXHR.statusCode = function( map ) {
+ if ( map ) {
+ var tmp;
+ if ( state < 2 ) {
+ for( tmp in map ) {
+ statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
+ }
+ } else {
+ tmp = map[ jqXHR.status ];
+ jqXHR.then( tmp, tmp );
+ }
+ }
+ return this;
+ };
+
+ // Remove hash character (#7531: and string promotion)
+ // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+ // We also use the url parameter if available
+ s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+ // Extract dataTypes list
+ s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
+
+ // Determine if a cross-domain request is in order
+ if ( s.crossDomain == null ) {
+ parts = rurl.exec( s.url.toLowerCase() );
+ s.crossDomain = !!( parts &&
+ ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
+ ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
+ ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
+ );
+ }
+
+ // Convert data if not already a string
+ if ( s.data && s.processData && typeof s.data !== "string" ) {
+ s.data = jQuery.param( s.data, s.traditional );
+ }
+
+ // Apply prefilters
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+ // If request was aborted inside a prefiler, stop there
+ if ( state === 2 ) {
+ return false;
+ }
+
+ // We can fire global events as of now if asked to
+ fireGlobals = s.global;
+
+ // Uppercase the type
+ s.type = s.type.toUpperCase();
+
+ // Determine if request has content
+ s.hasContent = !rnoContent.test( s.type );
+
+ // Watch for a new set of requests
+ if ( fireGlobals && jQuery.active++ === 0 ) {
+ jQuery.event.trigger( "ajaxStart" );
+ }
+
+ // More options handling for requests with no content
+ if ( !s.hasContent ) {
+
+ // If data is available, append data to url
+ if ( s.data ) {
+ s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
+ // #9682: remove data so that it's not used in an eventual retry
+ delete s.data;
+ }
+
+ // Get ifModifiedKey before adding the anti-cache parameter
+ ifModifiedKey = s.url;
+
+ // Add anti-cache in url if needed
+ if ( s.cache === false ) {
+
+ var ts = jQuery.now(),
+ // try replacing _= if it is there
+ ret = s.url.replace( rts, "$1_=" + ts );
+
+ // if nothing was replaced, add timestamp to the end
+ s.url = ret + ( (ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
+ }
+ }
+
+ // Set the correct header, if data is being sent
+ if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+ jqXHR.setRequestHeader( "Content-Type", s.contentType );
+ }
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ ifModifiedKey = ifModifiedKey || s.url;
+ if ( jQuery.lastModified[ ifModifiedKey ] ) {
+ jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
+ }
+ if ( jQuery.etag[ ifModifiedKey ] ) {
+ jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
+ }
+ }
+
+ // Set the Accepts header for the server, depending on the dataType
+ jqXHR.setRequestHeader(
+ "Accept",
+ s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+ s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+ s.accepts[ "*" ]
+ );
+
+ // Check for headers option
+ for ( i in s.headers ) {
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
+ }
+
+ // Allow custom headers/mimetypes and early abort
+ if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+ // Abort if not done already
+ jqXHR.abort();
+ return false;
+
+ }
+
+ // Install callbacks on deferreds
+ for ( i in { success: 1, error: 1, complete: 1 } ) {
+ jqXHR[ i ]( s[ i ] );
+ }
+
+ // Get transport
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+ // If no transport, we auto-abort
+ if ( !transport ) {
+ done( -1, "No Transport" );
+ } else {
+ jqXHR.readyState = 1;
+ // Send global event
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+ }
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = setTimeout( function(){
+ jqXHR.abort( "timeout" );
+ }, s.timeout );
+ }
+
+ try {
+ state = 1;
+ transport.send( requestHeaders, done );
+ } catch (e) {
+ // Propagate exception as error if not done
+ if ( state < 2 ) {
+ done( -1, e );
+ // Simply rethrow otherwise
+ } else {
+ jQuery.error( e );
+ }
+ }
+ }
+
+ return jqXHR;
+ },
+
+ // Serialize an array of form elements or a set of
+ // key/values into a query string
+ param: function( a, traditional ) {
+ var s = [],
+ add = function( key, value ) {
+ // If value is a function, invoke it and return its value
+ value = jQuery.isFunction( value ) ? value() : value;
+ s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+ };
+
+ // Set traditional to true for jQuery <= 1.3.2 behavior.
+ if ( traditional === undefined ) {
+ traditional = jQuery.ajaxSettings.traditional;
+ }
+
+ // If an array was passed in, assume that it is an array of form elements.
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+ // Serialize the form elements
+ jQuery.each( a, function() {
+ add( this.name, this.value );
+ });
+
+ } else {
+ // If traditional, encode the "old" way (the way 1.3.2 or older
+ // did it), otherwise encode params recursively.
+ for ( var prefix in a ) {
+ buildParams( prefix, a[ prefix ], traditional, add );
+ }
+ }
+
+ // Return the resulting serialization
+ return s.join( "&" ).replace( r20, "+" );
+ }
+});
+
+function buildParams( prefix, obj, traditional, add ) {
+ if ( jQuery.isArray( obj ) ) {
+ // Serialize array item.
+ jQuery.each( obj, function( i, v ) {
+ if ( traditional || rbracket.test( prefix ) ) {
+ // Treat each array item as a scalar.
+ add( prefix, v );
+
+ } else {
+ // If array item is non-scalar (array or object), encode its
+ // numeric index to resolve deserialization ambiguity issues.
+ // Note that rack (as of 1.0.0) can't currently deserialize
+ // nested arrays properly, and attempting to do so may cause
+ // a server error. Possible fixes are to modify rack's
+ // deserialization algorithm or to provide an option or flag
+ // to force array serialization to be shallow.
+ buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
+ }
+ });
+
+ } else if ( !traditional && obj != null && typeof obj === "object" ) {
+ // Serialize object item.
+ for ( var name in obj ) {
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+ }
+
+ } else {
+ // Serialize scalar item.
+ add( prefix, obj );
+ }
+}
+
+// This is still on the jQuery object... for now
+// Want to move this to jQuery.ajax some day
+jQuery.extend({
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+ etag: {}
+
+});
+
+/* Handles responses to an ajax request:
+ * - sets all responseXXX fields accordingly
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+ var contents = s.contents,
+ dataTypes = s.dataTypes,
+ responseFields = s.responseFields,
+ ct,
+ type,
+ finalDataType,
+ firstDataType;
+
+ // Fill responseXXX fields
+ for( type in responseFields ) {
+ if ( type in responses ) {
+ jqXHR[ responseFields[type] ] = responses[ type ];
+ }
+ }
+
+ // Remove auto dataType and get content-type in the process
+ while( dataTypes[ 0 ] === "*" ) {
+ dataTypes.shift();
+ if ( ct === undefined ) {
+ ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
+ }
+ }
+
+ // Check if we're dealing with a known content-type
+ if ( ct ) {
+ for ( type in contents ) {
+ if ( contents[ type ] && contents[ type ].test( ct ) ) {
+ dataTypes.unshift( type );
+ break;
+ }
+ }
+ }
+
+ // Check to see if we have a response for the expected dataType
+ if ( dataTypes[ 0 ] in responses ) {
+ finalDataType = dataTypes[ 0 ];
+ } else {
+ // Try convertible dataTypes
+ for ( type in responses ) {
+ if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+ finalDataType = type;
+ break;
+ }
+ if ( !firstDataType ) {
+ firstDataType = type;
+ }
+ }
+ // Or just use first one
+ finalDataType = finalDataType || firstDataType;
+ }
+
+ // If we found a dataType
+ // We add the dataType to the list if needed
+ // and return the corresponding response
+ if ( finalDataType ) {
+ if ( finalDataType !== dataTypes[ 0 ] ) {
+ dataTypes.unshift( finalDataType );
+ }
+ return responses[ finalDataType ];
+ }
+}
+
+// Chain conversions given the request and the original response
+function ajaxConvert( s, response ) {
+
+ // Apply the dataFilter if provided
+ if ( s.dataFilter ) {
+ response = s.dataFilter( response, s.dataType );
+ }
+
+ var dataTypes = s.dataTypes,
+ converters = {},
+ i,
+ key,
+ length = dataTypes.length,
+ tmp,
+ // Current and previous dataTypes
+ current = dataTypes[ 0 ],
+ prev,
+ // Conversion expression
+ conversion,
+ // Conversion function
+ conv,
+ // Conversion functions (transitive conversion)
+ conv1,
+ conv2;
+
+ // For each dataType in the chain
+ for( i = 1; i < length; i++ ) {
+
+ // Create converters map
+ // with lowercased keys
+ if ( i === 1 ) {
+ for( key in s.converters ) {
+ if( typeof key === "string" ) {
+ converters[ key.toLowerCase() ] = s.converters[ key ];
+ }
+ }
+ }
+
+ // Get the dataTypes
+ prev = current;
+ current = dataTypes[ i ];
+
+ // If current is auto dataType, update it to prev
+ if( current === "*" ) {
+ current = prev;
+ // If no auto and dataTypes are actually different
+ } else if ( prev !== "*" && prev !== current ) {
+
+ // Get the converter
+ conversion = prev + " " + current;
+ conv = converters[ conversion ] || converters[ "* " + current ];
+
+ // If there is no direct converter, search transitively
+ if ( !conv ) {
+ conv2 = undefined;
+ for( conv1 in converters ) {
+ tmp = conv1.split( " " );
+ if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
+ conv2 = converters[ tmp[1] + " " + current ];
+ if ( conv2 ) {
+ conv1 = converters[ conv1 ];
+ if ( conv1 === true ) {
+ conv = conv2;
+ } else if ( conv2 === true ) {
+ conv = conv1;
+ }
+ break;
+ }
+ }
+ }
+ }
+ // If we found no converter, dispatch an error
+ if ( !( conv || conv2 ) ) {
+ jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
+ }
+ // If found converter is not an equivalence
+ if ( conv !== true ) {
+ // Convert with 1 or 2 converters accordingly
+ response = conv ? conv( response ) : conv2( conv1(response) );
+ }
+ }
+ }
+ return response;
+}
+
+
+
+
+var jsc = jQuery.now(),
+ jsre = /(\=)\?(&|$)|\?\?/i;
+
+// Default jsonp settings
+jQuery.ajaxSetup({
+ jsonp: "callback",
+ jsonpCallback: function() {
+ return jQuery.expando + "_" + ( jsc++ );
+ }
+});
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+ var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
+ ( typeof s.data === "string" );
+
+ if ( s.dataTypes[ 0 ] === "jsonp" ||
+ s.jsonp !== false && ( jsre.test( s.url ) ||
+ inspectData && jsre.test( s.data ) ) ) {
+
+ var responseContainer,
+ jsonpCallback = s.jsonpCallback =
+ jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
+ previous = window[ jsonpCallback ],
+ url = s.url,
+ data = s.data,
+ replace = "$1" + jsonpCallback + "$2";
+
+ if ( s.jsonp !== false ) {
+ url = url.replace( jsre, replace );
+ if ( s.url === url ) {
+ if ( inspectData ) {
+ data = data.replace( jsre, replace );
+ }
+ if ( s.data === data ) {
+ // Add callback manually
+ url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
+ }
+ }
+ }
+
+ s.url = url;
+ s.data = data;
+
+ // Install callback
+ window[ jsonpCallback ] = function( response ) {
+ responseContainer = [ response ];
+ };
+
+ // Clean-up function
+ jqXHR.always(function() {
+ // Set callback back to previous value
+ window[ jsonpCallback ] = previous;
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( previous ) ) {
+ window[ jsonpCallback ]( responseContainer[ 0 ] );
+ }
+ });
+
+ // Use data converter to retrieve json after script execution
+ s.converters["script json"] = function() {
+ if ( !responseContainer ) {
+ jQuery.error( jsonpCallback + " was not called" );
+ }
+ return responseContainer[ 0 ];
+ };
+
+ // force json dataType
+ s.dataTypes[ 0 ] = "json";
+
+ // Delegate to script
+ return "script";
+ }
+});
+
+
+
+
+// Install script dataType
+jQuery.ajaxSetup({
+ accepts: {
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+ },
+ contents: {
+ script: /javascript|ecmascript/
+ },
+ converters: {
+ "text script": function( text ) {
+ jQuery.globalEval( text );
+ return text;
+ }
+ }
+});
+
+// Handle cache's special case and global
+jQuery.ajaxPrefilter( "script", function( s ) {
+ if ( s.cache === undefined ) {
+ s.cache = false;
+ }
+ if ( s.crossDomain ) {
+ s.type = "GET";
+ s.global = false;
+ }
+});
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function(s) {
+
+ // This transport only deals with cross domain requests
+ if ( s.crossDomain ) {
+
+ var script,
+ head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
+
+ return {
+
+ send: function( _, callback ) {
+
+ script = document.createElement( "script" );
+
+ script.async = "async";
+
+ if ( s.scriptCharset ) {
+ script.charset = s.scriptCharset;
+ }
+
+ script.src = s.url;
+
+ // Attach handlers for all browsers
+ script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+ if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+ // Handle memory leak in IE
+ script.onload = script.onreadystatechange = null;
+
+ // Remove the script
+ if ( head && script.parentNode ) {
+ head.removeChild( script );
+ }
+
+ // Dereference the script
+ script = undefined;
+
+ // Callback if not abort
+ if ( !isAbort ) {
+ callback( 200, "success" );
+ }
+ }
+ };
+ // Use insertBefore instead of appendChild to circumvent an IE6 bug.
+ // This arises when a base node is used (#2709 and #4378).
+ head.insertBefore( script, head.firstChild );
+ },
+
+ abort: function() {
+ if ( script ) {
+ script.onload( 0, 1 );
+ }
+ }
+ };
+ }
+});
+
+
+
+
+var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
+ xhrOnUnloadAbort = window.ActiveXObject ? function() {
+ // Abort all pending requests
+ for ( var key in xhrCallbacks ) {
+ xhrCallbacks[ key ]( 0, 1 );
+ }
+ } : false,
+ xhrId = 0,
+ xhrCallbacks;
+
+// Functions to create xhrs
+function createStandardXHR() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch( e ) {}
+}
+
+function createActiveXHR() {
+ try {
+ return new window.ActiveXObject( "Microsoft.XMLHTTP" );
+ } catch( e ) {}
+}
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject ?
+ /* Microsoft failed to properly
+ * implement the XMLHttpRequest in IE7 (can't request local files),
+ * so we use the ActiveXObject when it is available
+ * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+ * we need a fallback.
+ */
+ function() {
+ return !this.isLocal && createStandardXHR() || createActiveXHR();
+ } :
+ // For all other browsers, use the standard XMLHttpRequest object
+ createStandardXHR;
+
+// Determine support properties
+(function( xhr ) {
+ jQuery.extend( jQuery.support, {
+ ajax: !!xhr,
+ cors: !!xhr && ( "withCredentials" in xhr )
+ });
+})( jQuery.ajaxSettings.xhr() );
+
+// Create transport if the browser can provide an xhr
+if ( jQuery.support.ajax ) {
+
+ jQuery.ajaxTransport(function( s ) {
+ // Cross domain only allowed if supported through XMLHttpRequest
+ if ( !s.crossDomain || jQuery.support.cors ) {
+
+ var callback;
+
+ return {
+ send: function( headers, complete ) {
+
+ // Get a new xhr
+ var xhr = s.xhr(),
+ handle,
+ i;
+
+ // Open the socket
+ // Passing null username, generates a login popup on Opera (#2865)
+ if ( s.username ) {
+ xhr.open( s.type, s.url, s.async, s.username, s.password );
+ } else {
+ xhr.open( s.type, s.url, s.async );
+ }
+
+ // Apply custom fields if provided
+ if ( s.xhrFields ) {
+ for ( i in s.xhrFields ) {
+ xhr[ i ] = s.xhrFields[ i ];
+ }
+ }
+
+ // Override mime type if needed
+ if ( s.mimeType && xhr.overrideMimeType ) {
+ xhr.overrideMimeType( s.mimeType );
+ }
+
+ // X-Requested-With header
+ // For cross-domain requests, seeing as conditions for a preflight are
+ // akin to a jigsaw puzzle, we simply never set it to be sure.
+ // (it can always be set on a per-request basis or even using ajaxSetup)
+ // For same-domain requests, won't change header if already provided.
+ if ( !s.crossDomain && !headers["X-Requested-With"] ) {
+ headers[ "X-Requested-With" ] = "XMLHttpRequest";
+ }
+
+ // Need an extra try/catch for cross domain requests in Firefox 3
+ try {
+ for ( i in headers ) {
+ xhr.setRequestHeader( i, headers[ i ] );
+ }
+ } catch( _ ) {}
+
+ // Do send the request
+ // This may raise an exception which is actually
+ // handled in jQuery.ajax (so no try/catch here)
+ xhr.send( ( s.hasContent && s.data ) || null );
+
+ // Listener
+ callback = function( _, isAbort ) {
+
+ var status,
+ statusText,
+ responseHeaders,
+ responses,
+ xml;
+
+ // Firefox throws exceptions when accessing properties
+ // of an xhr when a network error occured
+ // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
+ try {
+
+ // Was never called and is aborted or complete
+ if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+ // Only called once
+ callback = undefined;
+
+ // Do not keep as active anymore
+ if ( handle ) {
+ xhr.onreadystatechange = jQuery.noop;
+ if ( xhrOnUnloadAbort ) {
+ delete xhrCallbacks[ handle ];
+ }
+ }
+
+ // If it's an abort
+ if ( isAbort ) {
+ // Abort it manually if needed
+ if ( xhr.readyState !== 4 ) {
+ xhr.abort();
+ }
+ } else {
+ status = xhr.status;
+ responseHeaders = xhr.getAllResponseHeaders();
+ responses = {};
+ xml = xhr.responseXML;
+
+ // Construct response list
+ if ( xml && xml.documentElement /* #4958 */ ) {
+ responses.xml = xml;
+ }
+ responses.text = xhr.responseText;
+
+ // Firefox throws an exception when accessing
+ // statusText for faulty cross-domain requests
+ try {
+ statusText = xhr.statusText;
+ } catch( e ) {
+ // We normalize with Webkit giving an empty statusText
+ statusText = "";
+ }
+
+ // Filter status for non standard behaviors
+
+ // If the request is local and we have data: assume a success
+ // (success with no data won't get notified, that's the best we
+ // can do given current implementations)
+ if ( !status && s.isLocal && !s.crossDomain ) {
+ status = responses.text ? 200 : 404;
+ // IE - #1450: sometimes returns 1223 when it should be 204
+ } else if ( status === 1223 ) {
+ status = 204;
+ }
+ }
+ }
+ } catch( firefoxAccessException ) {
+ if ( !isAbort ) {
+ complete( -1, firefoxAccessException );
+ }
+ }
+
+ // Call complete if needed
+ if ( responses ) {
+ complete( status, statusText, responses, responseHeaders );
+ }
+ };
+
+ // if we're in sync mode or it's in cache
+ // and has been retrieved directly (IE6 & IE7)
+ // we need to manually fire the callback
+ if ( !s.async || xhr.readyState === 4 ) {
+ callback();
+ } else {
+ handle = ++xhrId;
+ if ( xhrOnUnloadAbort ) {
+ // Create the active xhrs callbacks list if needed
+ // and attach the unload handler
+ if ( !xhrCallbacks ) {
+ xhrCallbacks = {};
+ jQuery( window ).unload( xhrOnUnloadAbort );
+ }
+ // Add to list of active xhrs callbacks
+ xhrCallbacks[ handle ] = callback;
+ }
+ xhr.onreadystatechange = callback;
+ }
+ },
+
+ abort: function() {
+ if ( callback ) {
+ callback(0,1);
+ }
+ }
+ };
+ }
+ });
+}
+
+
+
+
+var elemdisplay = {},
+ iframe, iframeDoc,
+ rfxtypes = /^(?:toggle|show|hide)$/,
+ rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
+ timerId,
+ fxAttrs = [
+ // height animations
+ [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
+ // width animations
+ [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
+ // opacity animations
+ [ "opacity" ]
+ ],
+ fxNow;
+
+jQuery.fn.extend({
+ show: function( speed, easing, callback ) {
+ var elem, display;
+
+ if ( speed || speed === 0 ) {
+ return this.animate( genFx("show", 3), speed, easing, callback);
+
+ } else {
+ for ( var i = 0, j = this.length; i < j; i++ ) {
+ elem = this[i];
+
+ if ( elem.style ) {
+ display = elem.style.display;
+
+ // Reset the inline display of this element to learn if it is
+ // being hidden by cascaded rules or not
+ if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
+ display = elem.style.display = "";
+ }
+
+ // Set elements which have been overridden with display: none
+ // in a stylesheet to whatever the default browser style is
+ // for such an element
+ if ( display === "" && jQuery.css( elem, "display" ) === "none" ) {
+ jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName));
+ }
+ }
+ }
+
+ // Set the display of most of the elements in a second loop
+ // to avoid the constant reflow
+ for ( i = 0; i < j; i++ ) {
+ elem = this[i];
+
+ if ( elem.style ) {
+ display = elem.style.display;
+
+ if ( display === "" || display === "none" ) {
+ elem.style.display = jQuery._data(elem, "olddisplay") || "";
+ }
+ }
+ }
+
+ return this;
+ }
+ },
+
+ hide: function( speed, easing, callback ) {
+ if ( speed || speed === 0 ) {
+ return this.animate( genFx("hide", 3), speed, easing, callback);
+
+ } else {
+ for ( var i = 0, j = this.length; i < j; i++ ) {
+ if ( this[i].style ) {
+ var display = jQuery.css( this[i], "display" );
+
+ if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) {
+ jQuery._data( this[i], "olddisplay", display );
+ }
+ }
+ }
+
+ // Set the display of the elements in a second loop
+ // to avoid the constant reflow
+ for ( i = 0; i < j; i++ ) {
+ if ( this[i].style ) {
+ this[i].style.display = "none";
+ }
+ }
+
+ return this;
+ }
+ },
+
+ // Save the old toggle function
+ _toggle: jQuery.fn.toggle,
+
+ toggle: function( fn, fn2, callback ) {
+ var bool = typeof fn === "boolean";
+
+ if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
+ this._toggle.apply( this, arguments );
+
+ } else if ( fn == null || bool ) {
+ this.each(function() {
+ var state = bool ? fn : jQuery(this).is(":hidden");
+ jQuery(this)[ state ? "show" : "hide" ]();
+ });
+
+ } else {
+ this.animate(genFx("toggle", 3), fn, fn2, callback);
+ }
+
+ return this;
+ },
+
+ fadeTo: function( speed, to, easing, callback ) {
+ return this.filter(":hidden").css("opacity", 0).show().end()
+ .animate({opacity: to}, speed, easing, callback);
+ },
+
+ animate: function( prop, speed, easing, callback ) {
+ var optall = jQuery.speed(speed, easing, callback);
+
+ if ( jQuery.isEmptyObject( prop ) ) {
+ return this.each( optall.complete, [ false ] );
+ }
+
+ // Do not change referenced properties as per-property easing will be lost
+ prop = jQuery.extend( {}, prop );
+
+ return this[ optall.queue === false ? "each" : "queue" ](function() {
+ // XXX 'this' does not always have a nodeName when running the
+ // test suite
+
+ if ( optall.queue === false ) {
+ jQuery._mark( this );
+ }
+
+ var opt = jQuery.extend( {}, optall ),
+ isElement = this.nodeType === 1,
+ hidden = isElement && jQuery(this).is(":hidden"),
+ name, val, p,
+ display, e,
+ parts, start, end, unit;
+
+ // will store per property easing and be used to determine when an animation is complete
+ opt.animatedProperties = {};
+
+ for ( p in prop ) {
+
+ // property name normalization
+ name = jQuery.camelCase( p );
+ if ( p !== name ) {
+ prop[ name ] = prop[ p ];
+ delete prop[ p ];
+ }
+
+ val = prop[ name ];
+
+ // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
+ if ( jQuery.isArray( val ) ) {
+ opt.animatedProperties[ name ] = val[ 1 ];
+ val = prop[ name ] = val[ 0 ];
+ } else {
+ opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
+ }
+
+ if ( val === "hide" && hidden || val === "show" && !hidden ) {
+ return opt.complete.call( this );
+ }
+
+ if ( isElement && ( name === "height" || name === "width" ) ) {
+ // Make sure that nothing sneaks out
+ // Record all 3 overflow attributes because IE does not
+ // change the overflow attribute when overflowX and
+ // overflowY are set to the same value
+ opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
+
+ // Set display property to inline-block for height/width
+ // animations on inline elements that are having width/height
+ // animated
+ if ( jQuery.css( this, "display" ) === "inline" &&
+ jQuery.css( this, "float" ) === "none" ) {
+ if ( !jQuery.support.inlineBlockNeedsLayout ) {
+ this.style.display = "inline-block";
+
+ } else {
+ display = defaultDisplay( this.nodeName );
+
+ // inline-level elements accept inline-block;
+ // block-level elements need to be inline with layout
+ if ( display === "inline" ) {
+ this.style.display = "inline-block";
+
+ } else {
+ this.style.display = "inline";
+ this.style.zoom = 1;
+ }
+ }
+ }
+ }
+ }
+
+ if ( opt.overflow != null ) {
+ this.style.overflow = "hidden";
+ }
+
+ for ( p in prop ) {
+ e = new jQuery.fx( this, opt, p );
+ val = prop[ p ];
+
+ if ( rfxtypes.test(val) ) {
+ e[ val === "toggle" ? hidden ? "show" : "hide" : val ]();
+
+ } else {
+ parts = rfxnum.exec( val );
+ start = e.cur();
+
+ if ( parts ) {
+ end = parseFloat( parts[2] );
+ unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
+
+ // We need to compute starting value
+ if ( unit !== "px" ) {
+ jQuery.style( this, p, (end || 1) + unit);
+ start = ((end || 1) / e.cur()) * start;
+ jQuery.style( this, p, start + unit);
+ }
+
+ // If a +=/-= token was provided, we're doing a relative animation
+ if ( parts[1] ) {
+ end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
+ }
+
+ e.custom( start, end, unit );
+
+ } else {
+ e.custom( start, val, "" );
+ }
+ }
+ }
+
+ // For JS strict compliance
+ return true;
+ });
+ },
+
+ stop: function( clearQueue, gotoEnd ) {
+ if ( clearQueue ) {
+ this.queue([]);
+ }
+
+ this.each(function() {
+ var timers = jQuery.timers,
+ i = timers.length;
+ // clear marker counters if we know they won't be
+ if ( !gotoEnd ) {
+ jQuery._unmark( true, this );
+ }
+ while ( i-- ) {
+ if ( timers[i].elem === this ) {
+ if (gotoEnd) {
+ // force the next step to be the last
+ timers[i](true);
+ }
+
+ timers.splice(i, 1);
+ }
+ }
+ });
+
+ // start the next in the queue if the last step wasn't forced
+ if ( !gotoEnd ) {
+ this.dequeue();
+ }
+
+ return this;
+ }
+
+});
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+ setTimeout( clearFxNow, 0 );
+ return ( fxNow = jQuery.now() );
+}
+
+function clearFxNow() {
+ fxNow = undefined;
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, num ) {
+ var obj = {};
+
+ jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() {
+ obj[ this ] = type;
+ });
+
+ return obj;
+}
+
+// Generate shortcuts for custom animations
+jQuery.each({
+ slideDown: genFx("show", 1),
+ slideUp: genFx("hide", 1),
+ slideToggle: genFx("toggle", 1),
+ fadeIn: { opacity: "show" },
+ fadeOut: { opacity: "hide" },
+ fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return this.animate( props, speed, easing, callback );
+ };
+});
+
+jQuery.extend({
+ speed: function( speed, easing, fn ) {
+ var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : {
+ complete: fn || !fn && easing ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
+ };
+
+ opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+ opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default;
+
+ // Queueing
+ opt.old = opt.complete;
+ opt.complete = function( noUnmark ) {
+ if ( jQuery.isFunction( opt.old ) ) {
+ opt.old.call( this );
+ }
+
+ if ( opt.queue !== false ) {
+ jQuery.dequeue( this );
+ } else if ( noUnmark !== false ) {
+ jQuery._unmark( this );
+ }
+ };
+
+ return opt;
+ },
+
+ easing: {
+ linear: function( p, n, firstNum, diff ) {
+ return firstNum + diff * p;
+ },
+ swing: function( p, n, firstNum, diff ) {
+ return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
+ }
+ },
+
+ timers: [],
+
+ fx: function( elem, options, prop ) {
+ this.options = options;
+ this.elem = elem;
+ this.prop = prop;
+
+ options.orig = options.orig || {};
+ }
+
+});
+
+jQuery.fx.prototype = {
+ // Simple function for setting a style value
+ update: function() {
+ if ( this.options.step ) {
+ this.options.step.call( this.elem, this.now, this );
+ }
+
+ (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
+ },
+
+ // Get the current size
+ cur: function() {
+ if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) {
+ return this.elem[ this.prop ];
+ }
+
+ var parsed,
+ r = jQuery.css( this.elem, this.prop );
+ // Empty strings, null, undefined and "auto" are converted to 0,
+ // complex values such as "rotate(1rad)" are returned as is,
+ // simple values such as "10px" are parsed to Float.
+ return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
+ },
+
+ // Start an animation from one number to another
+ custom: function( from, to, unit ) {
+ var self = this,
+ fx = jQuery.fx;
+
+ this.startTime = fxNow || createFxNow();
+ this.start = from;
+ this.end = to;
+ this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
+ this.now = this.start;
+ this.pos = this.state = 0;
+
+ function t( gotoEnd ) {
+ return self.step(gotoEnd);
+ }
+
+ t.elem = this.elem;
+
+ if ( t() && jQuery.timers.push(t) && !timerId ) {
+ timerId = setInterval( fx.tick, fx.interval );
+ }
+ },
+
+ // Simple 'show' function
+ show: function() {
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
+ this.options.show = true;
+
+ // Begin the animation
+ // Make sure that we start at a small width/height to avoid any
+ // flash of content
+ this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur());
+
+ // Start by showing the element
+ jQuery( this.elem ).show();
+ },
+
+ // Simple 'hide' function
+ hide: function() {
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
+ this.options.hide = true;
+
+ // Begin the animation
+ this.custom(this.cur(), 0);
+ },
+
+ // Each step of an animation
+ step: function( gotoEnd ) {
+ var t = fxNow || createFxNow(),
+ done = true,
+ elem = this.elem,
+ options = this.options,
+ i, n;
+
+ if ( gotoEnd || t >= options.duration + this.startTime ) {
+ this.now = this.end;
+ this.pos = this.state = 1;
+ this.update();
+
+ options.animatedProperties[ this.prop ] = true;
+
+ for ( i in options.animatedProperties ) {
+ if ( options.animatedProperties[i] !== true ) {
+ done = false;
+ }
+ }
+
+ if ( done ) {
+ // Reset the overflow
+ if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
+
+ jQuery.each( [ "", "X", "Y" ], function (index, value) {
+ elem.style[ "overflow" + value ] = options.overflow[index];
+ });
+ }
+
+ // Hide the element if the "hide" operation was done
+ if ( options.hide ) {
+ jQuery(elem).hide();
+ }
+
+ // Reset the properties, if the item has been hidden or shown
+ if ( options.hide || options.show ) {
+ for ( var p in options.animatedProperties ) {
+ jQuery.style( elem, p, options.orig[p] );
+ }
+ }
+
+ // Execute the complete function
+ options.complete.call( elem );
+ }
+
+ return false;
+
+ } else {
+ // classical easing cannot be used with an Infinity duration
+ if ( options.duration == Infinity ) {
+ this.now = t;
+ } else {
+ n = t - this.startTime;
+ this.state = n / options.duration;
+
+ // Perform the easing function, defaults to swing
+ this.pos = jQuery.easing[ options.animatedProperties[ this.prop ] ]( this.state, n, 0, 1, options.duration );
+ this.now = this.start + ((this.end - this.start) * this.pos);
+ }
+ // Perform the next step of the animation
+ this.update();
+ }
+
+ return true;
+ }
+};
+
+jQuery.extend( jQuery.fx, {
+ tick: function() {
+ for ( var timers = jQuery.timers, i = 0 ; i < timers.length ; ++i ) {
+ if ( !timers[i]() ) {
+ timers.splice(i--, 1);
+ }
+ }
+
+ if ( !timers.length ) {
+ jQuery.fx.stop();
+ }
+ },
+
+ interval: 13,
+
+ stop: function() {
+ clearInterval( timerId );
+ timerId = null;
+ },
+
+ speeds: {
+ slow: 600,
+ fast: 200,
+ // Default speed
+ _default: 400
+ },
+
+ step: {
+ opacity: function( fx ) {
+ jQuery.style( fx.elem, "opacity", fx.now );
+ },
+
+ _default: function( fx ) {
+ if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
+ fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop === "height" ? Math.max(0, fx.now) : fx.now) + fx.unit;
+ } else {
+ fx.elem[ fx.prop ] = fx.now;
+ }
+ }
+ }
+});
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+ jQuery.expr.filters.animated = function( elem ) {
+ return jQuery.grep(jQuery.timers, function( fn ) {
+ return elem === fn.elem;
+ }).length;
+ };
+}
+
+// Try to restore the default display value of an element
+function defaultDisplay( nodeName ) {
+
+ if ( !elemdisplay[ nodeName ] ) {
+
+ var body = document.body,
+ elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
+ display = elem.css( "display" );
+
+ elem.remove();
+
+ // If the simple way fails,
+ // get element's real default display by attaching it to a temp iframe
+ if ( display === "none" || display === "" ) {
+ // No iframe to use yet, so create it
+ if ( !iframe ) {
+ iframe = document.createElement( "iframe" );
+ iframe.frameBorder = iframe.width = iframe.height = 0;
+ }
+
+ body.appendChild( iframe );
+
+ // Create a cacheable copy of the iframe document on first call.
+ // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
+ // document to it; WebKit & Firefox won't allow reusing the iframe document.
+ if ( !iframeDoc || !iframe.createElement ) {
+ iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
+ iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "<!doctype html>" : "" ) + "<html><body>" );
+ iframeDoc.close();
+ }
+
+ elem = iframeDoc.createElement( nodeName );
+
+ iframeDoc.body.appendChild( elem );
+
+ display = jQuery.css( elem, "display" );
+
+ body.removeChild( iframe );
+ }
+
+ // Store the correct default display
+ elemdisplay[ nodeName ] = display;
+ }
+
+ return elemdisplay[ nodeName ];
+}
+
+
+
+
+var rtable = /^t(?:able|d|h)$/i,
+ rroot = /^(?:body|html)$/i;
+
+if ( "getBoundingClientRect" in document.documentElement ) {
+ jQuery.fn.offset = function( options ) {
+ var elem = this[0], box;
+
+ if ( options ) {
+ return this.each(function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ });
+ }
+
+ if ( !elem || !elem.ownerDocument ) {
+ return null;
+ }
+
+ if ( elem === elem.ownerDocument.body ) {
+ return jQuery.offset.bodyOffset( elem );
+ }
+
+ try {
+ box = elem.getBoundingClientRect();
+ } catch(e) {}
+
+ var doc = elem.ownerDocument,
+ docElem = doc.documentElement;
+
+ // Make sure we're not dealing with a disconnected DOM node
+ if ( !box || !jQuery.contains( docElem, elem ) ) {
+ return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
+ }
+
+ var body = doc.body,
+ win = getWindow(doc),
+ clientTop = docElem.clientTop || body.clientTop || 0,
+ clientLeft = docElem.clientLeft || body.clientLeft || 0,
+ scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop,
+ scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
+ top = box.top + scrollTop - clientTop,
+ left = box.left + scrollLeft - clientLeft;
+
+ return { top: top, left: left };
+ };
+
+} else {
+ jQuery.fn.offset = function( options ) {
+ var elem = this[0];
+
+ if ( options ) {
+ return this.each(function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ });
+ }
+
+ if ( !elem || !elem.ownerDocument ) {
+ return null;
+ }
+
+ if ( elem === elem.ownerDocument.body ) {
+ return jQuery.offset.bodyOffset( elem );
+ }
+
+ jQuery.offset.initialize();
+
+ var computedStyle,
+ offsetParent = elem.offsetParent,
+ prevOffsetParent = elem,
+ doc = elem.ownerDocument,
+ docElem = doc.documentElement,
+ body = doc.body,
+ defaultView = doc.defaultView,
+ prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
+ top = elem.offsetTop,
+ left = elem.offsetLeft;
+
+ while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
+ if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
+ break;
+ }
+
+ computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
+ top -= elem.scrollTop;
+ left -= elem.scrollLeft;
+
+ if ( elem === offsetParent ) {
+ top += elem.offsetTop;
+ left += elem.offsetLeft;
+
+ if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
+ top += parseFloat( computedStyle.borderTopWidth ) || 0;
+ left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+ }
+
+ prevOffsetParent = offsetParent;
+ offsetParent = elem.offsetParent;
+ }
+
+ if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
+ top += parseFloat( computedStyle.borderTopWidth ) || 0;
+ left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+ }
+
+ prevComputedStyle = computedStyle;
+ }
+
+ if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
+ top += body.offsetTop;
+ left += body.offsetLeft;
+ }
+
+ if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
+ top += Math.max( docElem.scrollTop, body.scrollTop );
+ left += Math.max( docElem.scrollLeft, body.scrollLeft );
+ }
+
+ return { top: top, left: left };
+ };
+}
+
+jQuery.offset = {
+ initialize: function() {
+ var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.css(body, "marginTop") ) || 0,
+ html = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
+
+ jQuery.extend( container.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" } );
+
+ container.innerHTML = html;
+ body.insertBefore( container, body.firstChild );
+ innerDiv = container.firstChild;
+ checkDiv = innerDiv.firstChild;
+ td = innerDiv.nextSibling.firstChild.firstChild;
+
+ this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
+ this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
+
+ checkDiv.style.position = "fixed";
+ checkDiv.style.top = "20px";
+
+ // safari subtracts parent border width here which is 5px
+ this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15);
+ checkDiv.style.position = checkDiv.style.top = "";
+
+ innerDiv.style.overflow = "hidden";
+ innerDiv.style.position = "relative";
+
+ this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
+
+ this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop);
+
+ body.removeChild( container );
+ jQuery.offset.initialize = jQuery.noop;
+ },
+
+ bodyOffset: function( body ) {
+ var top = body.offsetTop,
+ left = body.offsetLeft;
+
+ jQuery.offset.initialize();
+
+ if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) {
+ top += parseFloat( jQuery.css(body, "marginTop") ) || 0;
+ left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
+ }
+
+ return { top: top, left: left };
+ },
+
+ setOffset: function( elem, options, i ) {
+ var position = jQuery.css( elem, "position" );
+
+ // set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ var curElem = jQuery( elem ),
+ curOffset = curElem.offset(),
+ curCSSTop = jQuery.css( elem, "top" ),
+ curCSSLeft = jQuery.css( elem, "left" ),
+ calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
+ props = {}, curPosition = {}, curTop, curLeft;
+
+ // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+ options = options.call( elem, i, curOffset );
+ }
+
+ if (options.top != null) {
+ props.top = (options.top - curOffset.top) + curTop;
+ }
+ if (options.left != null) {
+ props.left = (options.left - curOffset.left) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+ } else {
+ curElem.css( props );
+ }
+ }
+};
+
+
+jQuery.fn.extend({
+ position: function() {
+ if ( !this[0] ) {
+ return null;
+ }
+
+ var elem = this[0],
+
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent(),
+
+ // Get correct offsets
+ offset = this.offset(),
+ parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
+
+ // Subtract element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
+ offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
+
+ // Add offsetParent borders
+ parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
+ parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
+
+ // Subtract the two offsets
+ return {
+ top: offset.top - parentOffset.top,
+ left: offset.left - parentOffset.left
+ };
+ },
+
+ offsetParent: function() {
+ return this.map(function() {
+ var offsetParent = this.offsetParent || document.body;
+ while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+ return offsetParent;
+ });
+ }
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( ["Left", "Top"], function( i, name ) {
+ var method = "scroll" + name;
+
+ jQuery.fn[ method ] = function( val ) {
+ var elem, win;
+
+ if ( val === undefined ) {
+ elem = this[ 0 ];
+
+ if ( !elem ) {
+ return null;
+ }
+
+ win = getWindow( elem );
+
+ // Return the scroll offset
+ return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
+ jQuery.support.boxModel && win.document.documentElement[ method ] ||
+ win.document.body[ method ] :
+ elem[ method ];
+ }
+
+ // Set the scroll offset
+ return this.each(function() {
+ win = getWindow( this );
+
+ if ( win ) {
+ win.scrollTo(
+ !i ? val : jQuery( win ).scrollLeft(),
+ i ? val : jQuery( win ).scrollTop()
+ );
+
+ } else {
+ this[ method ] = val;
+ }
+ });
+ };
+});
+
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ?
+ elem :
+ elem.nodeType === 9 ?
+ elem.defaultView || elem.parentWindow :
+ false;
+}
+
+
+
+
+// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
+jQuery.each([ "Height", "Width" ], function( i, name ) {
+
+ var type = name.toLowerCase();
+
+ // innerHeight and innerWidth
+ jQuery.fn[ "inner" + name ] = function() {
+ var elem = this[0];
+ return elem && elem.style ?
+ parseFloat( jQuery.css( elem, type, "padding" ) ) :
+ null;
+ };
+
+ // outerHeight and outerWidth
+ jQuery.fn[ "outer" + name ] = function( margin ) {
+ var elem = this[0];
+ return elem && elem.style ?
+ parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
+ null;
+ };
+
+ jQuery.fn[ type ] = function( size ) {
+ // Get window width or height
+ var elem = this[0];
+ if ( !elem ) {
+ return size == null ? null : this;
+ }
+
+ if ( jQuery.isFunction( size ) ) {
+ return this.each(function( i ) {
+ var self = jQuery( this );
+ self[ type ]( size.call( this, i, self[ type ]() ) );
+ });
+ }
+
+ if ( jQuery.isWindow( elem ) ) {
+ // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
+ // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
+ var docElemProp = elem.document.documentElement[ "client" + name ],
+ body = elem.document.body;
+ return elem.document.compatMode === "CSS1Compat" && docElemProp ||
+ body && body[ "client" + name ] || docElemProp;
+
+ // Get document width or height
+ } else if ( elem.nodeType === 9 ) {
+ // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
+ return Math.max(
+ elem.documentElement["client" + name],
+ elem.body["scroll" + name], elem.documentElement["scroll" + name],
+ elem.body["offset" + name], elem.documentElement["offset" + name]
+ );
+
+ // Get or set width or height on the element
+ } else if ( size === undefined ) {
+ var orig = jQuery.css( elem, type ),
+ ret = parseFloat( orig );
+
+ return jQuery.isNaN( ret ) ? orig : ret;
+
+ // Set the width or height on the element (default to pixels if value is unitless)
+ } else {
+ return this.css( type, typeof size === "string" ? size : size + "px" );
+ }
+ };
+
+});
+
+
+// Expose jQuery to the global object
+window.jQuery = window.$ = jQuery;
+})(window);
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/prototype-1.7.js b/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/prototype-1.7.js
new file mode 100644
index 000000000..42c3d757c
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/prototype-1.7.js
@@ -0,0 +1,6082 @@
+/* Prototype JavaScript framework, version 1.7
+ * (c) 2005-2010 Sam Stephenson
+ *
+ * Prototype is freely distributable under the terms of an MIT-style license.
+ * For details, see the Prototype web site: http://www.prototypejs.org/
+ *
+ *--------------------------------------------------------------------------*/
+
+var Prototype = {
+
+ Version: '1.7',
+
+ Browser: (function(){
+ var ua = navigator.userAgent;
+ var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';
+ return {
+ IE: !!window.attachEvent && !isOpera,
+ Opera: isOpera,
+ WebKit: ua.indexOf('AppleWebKit/') > -1,
+ Gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1,
+ MobileSafari: /Apple.*Mobile/.test(ua)
+ }
+ })(),
+
+ BrowserFeatures: {
+ XPath: !!document.evaluate,
+
+ SelectorsAPI: !!document.querySelector,
+
+ ElementExtensions: (function() {
+ var constructor = window.Element || window.HTMLElement;
+ return !!(constructor && constructor.prototype);
+ })(),
+ SpecificElementExtensions: (function() {
+ if (typeof window.HTMLDivElement !== 'undefined')
+ return true;
+
+ var div = document.createElement('div'),
+ form = document.createElement('form'),
+ isSupported = false;
+
+ if (div['__proto__'] && (div['__proto__'] !== form['__proto__'])) {
+ isSupported = true;
+ }
+
+ div = form = null;
+
+ return isSupported;
+ })()
+ },
+
+ ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
+ JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
+
+ emptyFunction: function() { },
+
+ K: function(x) { return x }
+};
+
+if (Prototype.Browser.MobileSafari)
+ Prototype.BrowserFeatures.SpecificElementExtensions = false;
+
+
+var Abstract = { };
+
+
+var Try = {
+ these: function() {
+ var returnValue;
+
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ var lambda = arguments[i];
+ try {
+ returnValue = lambda();
+ break;
+ } catch (e) { }
+ }
+
+ return returnValue;
+ }
+};
+
+/* Based on Alex Arnell's inheritance implementation. */
+
+var Class = (function() {
+
+ var IS_DONTENUM_BUGGY = (function(){
+ for (var p in { toString: 1 }) {
+ if (p === 'toString') return false;
+ }
+ return true;
+ })();
+
+ function subclass() {};
+ function create() {
+ var parent = null, properties = $A(arguments);
+ if (Object.isFunction(properties[0]))
+ parent = properties.shift();
+
+ function klass() {
+ this.initialize.apply(this, arguments);
+ }
+
+ Object.extend(klass, Class.Methods);
+ klass.superclass = parent;
+ klass.subclasses = [];
+
+ if (parent) {
+ subclass.prototype = parent.prototype;
+ klass.prototype = new subclass;
+ parent.subclasses.push(klass);
+ }
+
+ for (var i = 0, length = properties.length; i < length; i++)
+ klass.addMethods(properties[i]);
+
+ if (!klass.prototype.initialize)
+ klass.prototype.initialize = Prototype.emptyFunction;
+
+ klass.prototype.constructor = klass;
+ return klass;
+ }
+
+ function addMethods(source) {
+ var ancestor = this.superclass && this.superclass.prototype,
+ properties = Object.keys(source);
+
+ if (IS_DONTENUM_BUGGY) {
+ if (source.toString != Object.prototype.toString)
+ properties.push("toString");
+ if (source.valueOf != Object.prototype.valueOf)
+ properties.push("valueOf");
+ }
+
+ for (var i = 0, length = properties.length; i < length; i++) {
+ var property = properties[i], value = source[property];
+ if (ancestor && Object.isFunction(value) &&
+ value.argumentNames()[0] == "$super") {
+ var method = value;
+ value = (function(m) {
+ return function() { return ancestor[m].apply(this, arguments); };
+ })(property).wrap(method);
+
+ value.valueOf = method.valueOf.bind(method);
+ value.toString = method.toString.bind(method);
+ }
+ this.prototype[property] = value;
+ }
+
+ return this;
+ }
+
+ return {
+ create: create,
+ Methods: {
+ addMethods: addMethods
+ }
+ };
+})();
+(function() {
+
+ var _toString = Object.prototype.toString,
+ NULL_TYPE = 'Null',
+ UNDEFINED_TYPE = 'Undefined',
+ BOOLEAN_TYPE = 'Boolean',
+ NUMBER_TYPE = 'Number',
+ STRING_TYPE = 'String',
+ OBJECT_TYPE = 'Object',
+ FUNCTION_CLASS = '[object Function]',
+ BOOLEAN_CLASS = '[object Boolean]',
+ NUMBER_CLASS = '[object Number]',
+ STRING_CLASS = '[object String]',
+ ARRAY_CLASS = '[object Array]',
+ DATE_CLASS = '[object Date]',
+ NATIVE_JSON_STRINGIFY_SUPPORT = window.JSON &&
+ typeof JSON.stringify === 'function' &&
+ JSON.stringify(0) === '0' &&
+ typeof JSON.stringify(Prototype.K) === 'undefined';
+
+ function Type(o) {
+ switch(o) {
+ case null: return NULL_TYPE;
+ case (void 0): return UNDEFINED_TYPE;
+ }
+ var type = typeof o;
+ switch(type) {
+ case 'boolean': return BOOLEAN_TYPE;
+ case 'number': return NUMBER_TYPE;
+ case 'string': return STRING_TYPE;
+ }
+ return OBJECT_TYPE;
+ }
+
+ function extend(destination, source) {
+ for (var property in source)
+ destination[property] = source[property];
+ return destination;
+ }
+
+ function inspect(object) {
+ try {
+ if (isUndefined(object)) return 'undefined';
+ if (object === null) return 'null';
+ return object.inspect ? object.inspect() : String(object);
+ } catch (e) {
+ if (e instanceof RangeError) return '...';
+ throw e;
+ }
+ }
+
+ function toJSON(value) {
+ return Str('', { '': value }, []);
+ }
+
+ function Str(key, holder, stack) {
+ var value = holder[key],
+ type = typeof value;
+
+ if (Type(value) === OBJECT_TYPE && typeof value.toJSON === 'function') {
+ value = value.toJSON(key);
+ }
+
+ var _class = _toString.call(value);
+
+ switch (_class) {
+ case NUMBER_CLASS:
+ case BOOLEAN_CLASS:
+ case STRING_CLASS:
+ value = value.valueOf();
+ }
+
+ switch (value) {
+ case null: return 'null';
+ case true: return 'true';
+ case false: return 'false';
+ }
+
+ type = typeof value;
+ switch (type) {
+ case 'string':
+ return value.inspect(true);
+ case 'number':
+ return isFinite(value) ? String(value) : 'null';
+ case 'object':
+
+ for (var i = 0, length = stack.length; i < length; i++) {
+ if (stack[i] === value) { throw new TypeError(); }
+ }
+ stack.push(value);
+
+ var partial = [];
+ if (_class === ARRAY_CLASS) {
+ for (var i = 0, length = value.length; i < length; i++) {
+ var str = Str(i, value, stack);
+ partial.push(typeof str === 'undefined' ? 'null' : str);
+ }
+ partial = '[' + partial.join(',') + ']';
+ } else {
+ var keys = Object.keys(value);
+ for (var i = 0, length = keys.length; i < length; i++) {
+ var key = keys[i], str = Str(key, value, stack);
+ if (typeof str !== "undefined") {
+ partial.push(key.inspect(true)+ ':' + str);
+ }
+ }
+ partial = '{' + partial.join(',') + '}';
+ }
+ stack.pop();
+ return partial;
+ }
+ }
+
+ function stringify(object) {
+ return JSON.stringify(object);
+ }
+
+ function toQueryString(object) {
+ return $H(object).toQueryString();
+ }
+
+ function toHTML(object) {
+ return object && object.toHTML ? object.toHTML() : String.interpret(object);
+ }
+
+ function keys(object) {
+ if (Type(object) !== OBJECT_TYPE) { throw new TypeError(); }
+ var results = [];
+ for (var property in object) {
+ if (object.hasOwnProperty(property)) {
+ results.push(property);
+ }
+ }
+ return results;
+ }
+
+ function values(object) {
+ var results = [];
+ for (var property in object)
+ results.push(object[property]);
+ return results;
+ }
+
+ function clone(object) {
+ return extend({ }, object);
+ }
+
+ function isElement(object) {
+ return !!(object && object.nodeType == 1);
+ }
+
+ function isArray(object) {
+ return _toString.call(object) === ARRAY_CLASS;
+ }
+
+ var hasNativeIsArray = (typeof Array.isArray == 'function')
+ && Array.isArray([]) && !Array.isArray({});
+
+ if (hasNativeIsArray) {
+ isArray = Array.isArray;
+ }
+
+ function isHash(object) {
+ return object instanceof Hash;
+ }
+
+ function isFunction(object) {
+ return _toString.call(object) === FUNCTION_CLASS;
+ }
+
+ function isString(object) {
+ return _toString.call(object) === STRING_CLASS;
+ }
+
+ function isNumber(object) {
+ return _toString.call(object) === NUMBER_CLASS;
+ }
+
+ function isDate(object) {
+ return _toString.call(object) === DATE_CLASS;
+ }
+
+ function isUndefined(object) {
+ return typeof object === "undefined";
+ }
+
+ extend(Object, {
+ extend: extend,
+ inspect: inspect,
+ toJSON: NATIVE_JSON_STRINGIFY_SUPPORT ? stringify : toJSON,
+ toQueryString: toQueryString,
+ toHTML: toHTML,
+ keys: Object.keys || keys,
+ values: values,
+ clone: clone,
+ isElement: isElement,
+ isArray: isArray,
+ isHash: isHash,
+ isFunction: isFunction,
+ isString: isString,
+ isNumber: isNumber,
+ isDate: isDate,
+ isUndefined: isUndefined
+ });
+})();
+Object.extend(Function.prototype, (function() {
+ var slice = Array.prototype.slice;
+
+ function update(array, args) {
+ var arrayLength = array.length, length = args.length;
+ while (length--) array[arrayLength + length] = args[length];
+ return array;
+ }
+
+ function merge(array, args) {
+ array = slice.call(array, 0);
+ return update(array, args);
+ }
+
+ function argumentNames() {
+ var names = this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1]
+ .replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g, '')
+ .replace(/\s+/g, '').split(',');
+ return names.length == 1 && !names[0] ? [] : names;
+ }
+
+ function bind(context) {
+ if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
+ var __method = this, args = slice.call(arguments, 1);
+ return function() {
+ var a = merge(args, arguments);
+ return __method.apply(context, a);
+ }
+ }
+
+ function bindAsEventListener(context) {
+ var __method = this, args = slice.call(arguments, 1);
+ return function(event) {
+ var a = update([event || window.event], args);
+ return __method.apply(context, a);
+ }
+ }
+
+ function curry() {
+ if (!arguments.length) return this;
+ var __method = this, args = slice.call(arguments, 0);
+ return function() {
+ var a = merge(args, arguments);
+ return __method.apply(this, a);
+ }
+ }
+
+ function delay(timeout) {
+ var __method = this, args = slice.call(arguments, 1);
+ timeout = timeout * 1000;
+ return window.setTimeout(function() {
+ return __method.apply(__method, args);
+ }, timeout);
+ }
+
+ function defer() {
+ var args = update([0.01], arguments);
+ return this.delay.apply(this, args);
+ }
+
+ function wrap(wrapper) {
+ var __method = this;
+ return function() {
+ var a = update([__method.bind(this)], arguments);
+ return wrapper.apply(this, a);
+ }
+ }
+
+ function methodize() {
+ if (this._methodized) return this._methodized;
+ var __method = this;
+ return this._methodized = function() {
+ var a = update([this], arguments);
+ return __method.apply(null, a);
+ };
+ }
+
+ return {
+ argumentNames: argumentNames,
+ bind: bind,
+ bindAsEventListener: bindAsEventListener,
+ curry: curry,
+ delay: delay,
+ defer: defer,
+ wrap: wrap,
+ methodize: methodize
+ }
+})());
+
+
+
+(function(proto) {
+
+
+ function toISOString() {
+ return this.getUTCFullYear() + '-' +
+ (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
+ this.getUTCDate().toPaddedString(2) + 'T' +
+ this.getUTCHours().toPaddedString(2) + ':' +
+ this.getUTCMinutes().toPaddedString(2) + ':' +
+ this.getUTCSeconds().toPaddedString(2) + 'Z';
+ }
+
+
+ function toJSON() {
+ return this.toISOString();
+ }
+
+ if (!proto.toISOString) proto.toISOString = toISOString;
+ if (!proto.toJSON) proto.toJSON = toJSON;
+
+})(Date.prototype);
+
+
+RegExp.prototype.match = RegExp.prototype.test;
+
+RegExp.escape = function(str) {
+ return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
+};
+var PeriodicalExecuter = Class.create({
+ initialize: function(callback, frequency) {
+ this.callback = callback;
+ this.frequency = frequency;
+ this.currentlyExecuting = false;
+
+ this.registerCallback();
+ },
+
+ registerCallback: function() {
+ this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+ },
+
+ execute: function() {
+ this.callback(this);
+ },
+
+ stop: function() {
+ if (!this.timer) return;
+ clearInterval(this.timer);
+ this.timer = null;
+ },
+
+ onTimerEvent: function() {
+ if (!this.currentlyExecuting) {
+ try {
+ this.currentlyExecuting = true;
+ this.execute();
+ this.currentlyExecuting = false;
+ } catch(e) {
+ this.currentlyExecuting = false;
+ throw e;
+ }
+ }
+ }
+});
+Object.extend(String, {
+ interpret: function(value) {
+ return value == null ? '' : String(value);
+ },
+ specialChar: {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '\\': '\\\\'
+ }
+});
+
+Object.extend(String.prototype, (function() {
+ var NATIVE_JSON_PARSE_SUPPORT = window.JSON &&
+ typeof JSON.parse === 'function' &&
+ JSON.parse('{"test": true}').test;
+
+ function prepareReplacement(replacement) {
+ if (Object.isFunction(replacement)) return replacement;
+ var template = new Template(replacement);
+ return function(match) { return template.evaluate(match) };
+ }
+
+ function gsub(pattern, replacement) {
+ var result = '', source = this, match;
+ replacement = prepareReplacement(replacement);
+
+ if (Object.isString(pattern))
+ pattern = RegExp.escape(pattern);
+
+ if (!(pattern.length || pattern.source)) {
+ replacement = replacement('');
+ return replacement + source.split('').join(replacement) + replacement;
+ }
+
+ while (source.length > 0) {
+ if (match = source.match(pattern)) {
+ result += source.slice(0, match.index);
+ result += String.interpret(replacement(match));
+ source = source.slice(match.index + match[0].length);
+ } else {
+ result += source, source = '';
+ }
+ }
+ return result;
+ }
+
+ function sub(pattern, replacement, count) {
+ replacement = prepareReplacement(replacement);
+ count = Object.isUndefined(count) ? 1 : count;
+
+ return this.gsub(pattern, function(match) {
+ if (--count < 0) return match[0];
+ return replacement(match);
+ });
+ }
+
+ function scan(pattern, iterator) {
+ this.gsub(pattern, iterator);
+ return String(this);
+ }
+
+ function truncate(length, truncation) {
+ length = length || 30;
+ truncation = Object.isUndefined(truncation) ? '...' : truncation;
+ return this.length > length ?
+ this.slice(0, length - truncation.length) + truncation : String(this);
+ }
+
+ function strip() {
+ return this.replace(/^\s+/, '').replace(/\s+$/, '');
+ }
+
+ function stripTags() {
+ return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, '');
+ }
+
+ function stripScripts() {
+ return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
+ }
+
+ function extractScripts() {
+ var matchAll = new RegExp(Prototype.ScriptFragment, 'img'),
+ matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+ return (this.match(matchAll) || []).map(function(scriptTag) {
+ return (scriptTag.match(matchOne) || ['', ''])[1];
+ });
+ }
+
+ function evalScripts() {
+ return this.extractScripts().map(function(script) { return eval(script) });
+ }
+
+ function escapeHTML() {
+ return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
+ }
+
+ function unescapeHTML() {
+ return this.stripTags().replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');
+ }
+
+
+ function toQueryParams(separator) {
+ var match = this.strip().match(/([^?#]*)(#.*)?$/);
+ if (!match) return { };
+
+ return match[1].split(separator || '&').inject({ }, function(hash, pair) {
+ if ((pair = pair.split('='))[0]) {
+ var key = decodeURIComponent(pair.shift()),
+ value = pair.length > 1 ? pair.join('=') : pair[0];
+
+ if (value != undefined) value = decodeURIComponent(value);
+
+ if (key in hash) {
+ if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
+ hash[key].push(value);
+ }
+ else hash[key] = value;
+ }
+ return hash;
+ });
+ }
+
+ function toArray() {
+ return this.split('');
+ }
+
+ function succ() {
+ return this.slice(0, this.length - 1) +
+ String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+ }
+
+ function times(count) {
+ return count < 1 ? '' : new Array(count + 1).join(this);
+ }
+
+ function camelize() {
+ return this.replace(/-+(.)?/g, function(match, chr) {
+ return chr ? chr.toUpperCase() : '';
+ });
+ }
+
+ function capitalize() {
+ return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+ }
+
+ function underscore() {
+ return this.replace(/::/g, '/')
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
+ .replace(/([a-z\d])([A-Z])/g, '$1_$2')
+ .replace(/-/g, '_')
+ .toLowerCase();
+ }
+
+ function dasherize() {
+ return this.replace(/_/g, '-');
+ }
+
+ function inspect(useDoubleQuotes) {
+ var escapedString = this.replace(/[\x00-\x1f\\]/g, function(character) {
+ if (character in String.specialChar) {
+ return String.specialChar[character];
+ }
+ return '\\u00' + character.charCodeAt().toPaddedString(2, 16);
+ });
+ if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
+ return "'" + escapedString.replace(/'/g, '\\\'') + "'";
+ }
+
+ function unfilterJSON(filter) {
+ return this.replace(filter || Prototype.JSONFilter, '$1');
+ }
+
+ function isJSON() {
+ var str = this;
+ if (str.blank()) return false;
+ str = str.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@');
+ str = str.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
+ str = str.replace(/(?:^|:|,)(?:\s*\[)+/g, '');
+ return (/^[\],:{}\s]*$/).test(str);
+ }
+
+ function evalJSON(sanitize) {
+ var json = this.unfilterJSON(),
+ cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
+ if (cx.test(json)) {
+ json = json.replace(cx, function (a) {
+ return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+ });
+ }
+ try {
+ if (!sanitize || json.isJSON()) return eval('(' + json + ')');
+ } catch (e) { }
+ throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
+ }
+
+ function parseJSON() {
+ var json = this.unfilterJSON();
+ return JSON.parse(json);
+ }
+
+ function include(pattern) {
+ return this.indexOf(pattern) > -1;
+ }
+
+ function startsWith(pattern) {
+ return this.lastIndexOf(pattern, 0) === 0;
+ }
+
+ function endsWith(pattern) {
+ var d = this.length - pattern.length;
+ return d >= 0 && this.indexOf(pattern, d) === d;
+ }
+
+ function empty() {
+ return this == '';
+ }
+
+ function blank() {
+ return /^\s*$/.test(this);
+ }
+
+ function interpolate(object, pattern) {
+ return new Template(this, pattern).evaluate(object);
+ }
+
+ return {
+ gsub: gsub,
+ sub: sub,
+ scan: scan,
+ truncate: truncate,
+ strip: String.prototype.trim || strip,
+ stripTags: stripTags,
+ stripScripts: stripScripts,
+ extractScripts: extractScripts,
+ evalScripts: evalScripts,
+ escapeHTML: escapeHTML,
+ unescapeHTML: unescapeHTML,
+ toQueryParams: toQueryParams,
+ parseQuery: toQueryParams,
+ toArray: toArray,
+ succ: succ,
+ times: times,
+ camelize: camelize,
+ capitalize: capitalize,
+ underscore: underscore,
+ dasherize: dasherize,
+ inspect: inspect,
+ unfilterJSON: unfilterJSON,
+ isJSON: isJSON,
+ evalJSON: NATIVE_JSON_PARSE_SUPPORT ? parseJSON : evalJSON,
+ include: include,
+ startsWith: startsWith,
+ endsWith: endsWith,
+ empty: empty,
+ blank: blank,
+ interpolate: interpolate
+ };
+})());
+
+var Template = Class.create({
+ initialize: function(template, pattern) {
+ this.template = template.toString();
+ this.pattern = pattern || Template.Pattern;
+ },
+
+ evaluate: function(object) {
+ if (object && Object.isFunction(object.toTemplateReplacements))
+ object = object.toTemplateReplacements();
+
+ return this.template.gsub(this.pattern, function(match) {
+ if (object == null) return (match[1] + '');
+
+ var before = match[1] || '';
+ if (before == '\\') return match[2];
+
+ var ctx = object, expr = match[3],
+ pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
+
+ match = pattern.exec(expr);
+ if (match == null) return before;
+
+ while (match != null) {
+ var comp = match[1].startsWith('[') ? match[2].replace(/\\\\]/g, ']') : match[1];
+ ctx = ctx[comp];
+ if (null == ctx || '' == match[3]) break;
+ expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
+ match = pattern.exec(expr);
+ }
+
+ return before + String.interpret(ctx);
+ });
+ }
+});
+Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
+
+var $break = { };
+
+var Enumerable = (function() {
+ function each(iterator, context) {
+ var index = 0;
+ try {
+ this._each(function(value) {
+ iterator.call(context, value, index++);
+ });
+ } catch (e) {
+ if (e != $break) throw e;
+ }
+ return this;
+ }
+
+ function eachSlice(number, iterator, context) {
+ var index = -number, slices = [], array = this.toArray();
+ if (number < 1) return array;
+ while ((index += number) < array.length)
+ slices.push(array.slice(index, index+number));
+ return slices.collect(iterator, context);
+ }
+
+ function all(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result = true;
+ this.each(function(value, index) {
+ result = result && !!iterator.call(context, value, index);
+ if (!result) throw $break;
+ });
+ return result;
+ }
+
+ function any(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result = false;
+ this.each(function(value, index) {
+ if (result = !!iterator.call(context, value, index))
+ throw $break;
+ });
+ return result;
+ }
+
+ function collect(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var results = [];
+ this.each(function(value, index) {
+ results.push(iterator.call(context, value, index));
+ });
+ return results;
+ }
+
+ function detect(iterator, context) {
+ var result;
+ this.each(function(value, index) {
+ if (iterator.call(context, value, index)) {
+ result = value;
+ throw $break;
+ }
+ });
+ return result;
+ }
+
+ function findAll(iterator, context) {
+ var results = [];
+ this.each(function(value, index) {
+ if (iterator.call(context, value, index))
+ results.push(value);
+ });
+ return results;
+ }
+
+ function grep(filter, iterator, context) {
+ iterator = iterator || Prototype.K;
+ var results = [];
+
+ if (Object.isString(filter))
+ filter = new RegExp(RegExp.escape(filter));
+
+ this.each(function(value, index) {
+ if (filter.match(value))
+ results.push(iterator.call(context, value, index));
+ });
+ return results;
+ }
+
+ function include(object) {
+ if (Object.isFunction(this.indexOf))
+ if (this.indexOf(object) != -1) return true;
+
+ var found = false;
+ this.each(function(value) {
+ if (value == object) {
+ found = true;
+ throw $break;
+ }
+ });
+ return found;
+ }
+
+ function inGroupsOf(number, fillWith) {
+ fillWith = Object.isUndefined(fillWith) ? null : fillWith;
+ return this.eachSlice(number, function(slice) {
+ while(slice.length < number) slice.push(fillWith);
+ return slice;
+ });
+ }
+
+ function inject(memo, iterator, context) {
+ this.each(function(value, index) {
+ memo = iterator.call(context, memo, value, index);
+ });
+ return memo;
+ }
+
+ function invoke(method) {
+ var args = $A(arguments).slice(1);
+ return this.map(function(value) {
+ return value[method].apply(value, args);
+ });
+ }
+
+ function max(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result;
+ this.each(function(value, index) {
+ value = iterator.call(context, value, index);
+ if (result == null || value >= result)
+ result = value;
+ });
+ return result;
+ }
+
+ function min(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result;
+ this.each(function(value, index) {
+ value = iterator.call(context, value, index);
+ if (result == null || value < result)
+ result = value;
+ });
+ return result;
+ }
+
+ function partition(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var trues = [], falses = [];
+ this.each(function(value, index) {
+ (iterator.call(context, value, index) ?
+ trues : falses).push(value);
+ });
+ return [trues, falses];
+ }
+
+ function pluck(property) {
+ var results = [];
+ this.each(function(value) {
+ results.push(value[property]);
+ });
+ return results;
+ }
+
+ function reject(iterator, context) {
+ var results = [];
+ this.each(function(value, index) {
+ if (!iterator.call(context, value, index))
+ results.push(value);
+ });
+ return results;
+ }
+
+ function sortBy(iterator, context) {
+ return this.map(function(value, index) {
+ return {
+ value: value,
+ criteria: iterator.call(context, value, index)
+ };
+ }).sort(function(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a < b ? -1 : a > b ? 1 : 0;
+ }).pluck('value');
+ }
+
+ function toArray() {
+ return this.map();
+ }
+
+ function zip() {
+ var iterator = Prototype.K, args = $A(arguments);
+ if (Object.isFunction(args.last()))
+ iterator = args.pop();
+
+ var collections = [this].concat(args).map($A);
+ return this.map(function(value, index) {
+ return iterator(collections.pluck(index));
+ });
+ }
+
+ function size() {
+ return this.toArray().length;
+ }
+
+ function inspect() {
+ return '#<Enumerable:' + this.toArray().inspect() + '>';
+ }
+
+
+
+
+
+
+
+
+
+ return {
+ each: each,
+ eachSlice: eachSlice,
+ all: all,
+ every: all,
+ any: any,
+ some: any,
+ collect: collect,
+ map: collect,
+ detect: detect,
+ findAll: findAll,
+ select: findAll,
+ filter: findAll,
+ grep: grep,
+ include: include,
+ member: include,
+ inGroupsOf: inGroupsOf,
+ inject: inject,
+ invoke: invoke,
+ max: max,
+ min: min,
+ partition: partition,
+ pluck: pluck,
+ reject: reject,
+ sortBy: sortBy,
+ toArray: toArray,
+ entries: toArray,
+ zip: zip,
+ size: size,
+ inspect: inspect,
+ find: detect
+ };
+})();
+
+function $A(iterable) {
+ if (!iterable) return [];
+ if ('toArray' in Object(iterable)) return iterable.toArray();
+ var length = iterable.length || 0, results = new Array(length);
+ while (length--) results[length] = iterable[length];
+ return results;
+}
+
+
+function $w(string) {
+ if (!Object.isString(string)) return [];
+ string = string.strip();
+ return string ? string.split(/\s+/) : [];
+}
+
+Array.from = $A;
+
+
+(function() {
+ var arrayProto = Array.prototype,
+ slice = arrayProto.slice,
+ _each = arrayProto.forEach; // use native browser JS 1.6 implementation if available
+
+ function each(iterator, context) {
+ for (var i = 0, length = this.length >>> 0; i < length; i++) {
+ if (i in this) iterator.call(context, this[i], i, this);
+ }
+ }
+ if (!_each) _each = each;
+
+ function clear() {
+ this.length = 0;
+ return this;
+ }
+
+ function first() {
+ return this[0];
+ }
+
+ function last() {
+ return this[this.length - 1];
+ }
+
+ function compact() {
+ return this.select(function(value) {
+ return value != null;
+ });
+ }
+
+ function flatten() {
+ return this.inject([], function(array, value) {
+ if (Object.isArray(value))
+ return array.concat(value.flatten());
+ array.push(value);
+ return array;
+ });
+ }
+
+ function without() {
+ var values = slice.call(arguments, 0);
+ return this.select(function(value) {
+ return !values.include(value);
+ });
+ }
+
+ function reverse(inline) {
+ return (inline === false ? this.toArray() : this)._reverse();
+ }
+
+ function uniq(sorted) {
+ return this.inject([], function(array, value, index) {
+ if (0 == index || (sorted ? array.last() != value : !array.include(value)))
+ array.push(value);
+ return array;
+ });
+ }
+
+ function intersect(array) {
+ return this.uniq().findAll(function(item) {
+ return array.detect(function(value) { return item === value });
+ });
+ }
+
+
+ function clone() {
+ return slice.call(this, 0);
+ }
+
+ function size() {
+ return this.length;
+ }
+
+ function inspect() {
+ return '[' + this.map(Object.inspect).join(', ') + ']';
+ }
+
+ function indexOf(item, i) {
+ i || (i = 0);
+ var length = this.length;
+ if (i < 0) i = length + i;
+ for (; i < length; i++)
+ if (this[i] === item) return i;
+ return -1;
+ }
+
+ function lastIndexOf(item, i) {
+ i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
+ var n = this.slice(0, i).reverse().indexOf(item);
+ return (n < 0) ? n : i - n - 1;
+ }
+
+ function concat() {
+ var array = slice.call(this, 0), item;
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ item = arguments[i];
+ if (Object.isArray(item) && !('callee' in item)) {
+ for (var j = 0, arrayLength = item.length; j < arrayLength; j++)
+ array.push(item[j]);
+ } else {
+ array.push(item);
+ }
+ }
+ return array;
+ }
+
+ Object.extend(arrayProto, Enumerable);
+
+ if (!arrayProto._reverse)
+ arrayProto._reverse = arrayProto.reverse;
+
+ Object.extend(arrayProto, {
+ _each: _each,
+ clear: clear,
+ first: first,
+ last: last,
+ compact: compact,
+ flatten: flatten,
+ without: without,
+ reverse: reverse,
+ uniq: uniq,
+ intersect: intersect,
+ clone: clone,
+ toArray: clone,
+ size: size,
+ inspect: inspect
+ });
+
+ var CONCAT_ARGUMENTS_BUGGY = (function() {
+ return [].concat(arguments)[0][0] !== 1;
+ })(1,2)
+
+ if (CONCAT_ARGUMENTS_BUGGY) arrayProto.concat = concat;
+
+ if (!arrayProto.indexOf) arrayProto.indexOf = indexOf;
+ if (!arrayProto.lastIndexOf) arrayProto.lastIndexOf = lastIndexOf;
+})();
+function $H(object) {
+ return new Hash(object);
+};
+
+var Hash = Class.create(Enumerable, (function() {
+ function initialize(object) {
+ this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
+ }
+
+
+ function _each(iterator) {
+ for (var key in this._object) {
+ var value = this._object[key], pair = [key, value];
+ pair.key = key;
+ pair.value = value;
+ iterator(pair);
+ }
+ }
+
+ function set(key, value) {
+ return this._object[key] = value;
+ }
+
+ function get(key) {
+ if (this._object[key] !== Object.prototype[key])
+ return this._object[key];
+ }
+
+ function unset(key) {
+ var value = this._object[key];
+ delete this._object[key];
+ return value;
+ }
+
+ function toObject() {
+ return Object.clone(this._object);
+ }
+
+
+
+ function keys() {
+ return this.pluck('key');
+ }
+
+ function values() {
+ return this.pluck('value');
+ }
+
+ function index(value) {
+ var match = this.detect(function(pair) {
+ return pair.value === value;
+ });
+ return match && match.key;
+ }
+
+ function merge(object) {
+ return this.clone().update(object);
+ }
+
+ function update(object) {
+ return new Hash(object).inject(this, function(result, pair) {
+ result.set(pair.key, pair.value);
+ return result;
+ });
+ }
+
+ function toQueryPair(key, value) {
+ if (Object.isUndefined(value)) return key;
+ return key + '=' + encodeURIComponent(String.interpret(value));
+ }
+
+ function toQueryString() {
+ return this.inject([], function(results, pair) {
+ var key = encodeURIComponent(pair.key), values = pair.value;
+
+ if (values && typeof values == 'object') {
+ if (Object.isArray(values)) {
+ var queryValues = [];
+ for (var i = 0, len = values.length, value; i < len; i++) {
+ value = values[i];
+ queryValues.push(toQueryPair(key, value));
+ }
+ return results.concat(queryValues);
+ }
+ } else results.push(toQueryPair(key, values));
+ return results;
+ }).join('&');
+ }
+
+ function inspect() {
+ return '#<Hash:{' + this.map(function(pair) {
+ return pair.map(Object.inspect).join(': ');
+ }).join(', ') + '}>';
+ }
+
+ function clone() {
+ return new Hash(this);
+ }
+
+ return {
+ initialize: initialize,
+ _each: _each,
+ set: set,
+ get: get,
+ unset: unset,
+ toObject: toObject,
+ toTemplateReplacements: toObject,
+ keys: keys,
+ values: values,
+ index: index,
+ merge: merge,
+ update: update,
+ toQueryString: toQueryString,
+ inspect: inspect,
+ toJSON: toObject,
+ clone: clone
+ };
+})());
+
+Hash.from = $H;
+Object.extend(Number.prototype, (function() {
+ function toColorPart() {
+ return this.toPaddedString(2, 16);
+ }
+
+ function succ() {
+ return this + 1;
+ }
+
+ function times(iterator, context) {
+ $R(0, this, true).each(iterator, context);
+ return this;
+ }
+
+ function toPaddedString(length, radix) {
+ var string = this.toString(radix || 10);
+ return '0'.times(length - string.length) + string;
+ }
+
+ function abs() {
+ return Math.abs(this);
+ }
+
+ function round() {
+ return Math.round(this);
+ }
+
+ function ceil() {
+ return Math.ceil(this);
+ }
+
+ function floor() {
+ return Math.floor(this);
+ }
+
+ return {
+ toColorPart: toColorPart,
+ succ: succ,
+ times: times,
+ toPaddedString: toPaddedString,
+ abs: abs,
+ round: round,
+ ceil: ceil,
+ floor: floor
+ };
+})());
+
+function $R(start, end, exclusive) {
+ return new ObjectRange(start, end, exclusive);
+}
+
+var ObjectRange = Class.create(Enumerable, (function() {
+ function initialize(start, end, exclusive) {
+ this.start = start;
+ this.end = end;
+ this.exclusive = exclusive;
+ }
+
+ function _each(iterator) {
+ var value = this.start;
+ while (this.include(value)) {
+ iterator(value);
+ value = value.succ();
+ }
+ }
+
+ function include(value) {
+ if (value < this.start)
+ return false;
+ if (this.exclusive)
+ return value < this.end;
+ return value <= this.end;
+ }
+
+ return {
+ initialize: initialize,
+ _each: _each,
+ include: include
+ };
+})());
+
+
+
+var Ajax = {
+ getTransport: function() {
+ return Try.these(
+ function() {return new XMLHttpRequest()},
+ function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+ function() {return new ActiveXObject('Microsoft.XMLHTTP')}
+ ) || false;
+ },
+
+ activeRequestCount: 0
+};
+
+Ajax.Responders = {
+ responders: [],
+
+ _each: function(iterator) {
+ this.responders._each(iterator);
+ },
+
+ register: function(responder) {
+ if (!this.include(responder))
+ this.responders.push(responder);
+ },
+
+ unregister: function(responder) {
+ this.responders = this.responders.without(responder);
+ },
+
+ dispatch: function(callback, request, transport, json) {
+ this.each(function(responder) {
+ if (Object.isFunction(responder[callback])) {
+ try {
+ responder[callback].apply(responder, [request, transport, json]);
+ } catch (e) { }
+ }
+ });
+ }
+};
+
+Object.extend(Ajax.Responders, Enumerable);
+
+Ajax.Responders.register({
+ onCreate: function() { Ajax.activeRequestCount++ },
+ onComplete: function() { Ajax.activeRequestCount-- }
+});
+Ajax.Base = Class.create({
+ initialize: function(options) {
+ this.options = {
+ method: 'post',
+ asynchronous: true,
+ contentType: 'application/x-www-form-urlencoded',
+ encoding: 'UTF-8',
+ parameters: '',
+ evalJSON: true,
+ evalJS: true
+ };
+ Object.extend(this.options, options || { });
+
+ this.options.method = this.options.method.toLowerCase();
+
+ if (Object.isHash(this.options.parameters))
+ this.options.parameters = this.options.parameters.toObject();
+ }
+});
+Ajax.Request = Class.create(Ajax.Base, {
+ _complete: false,
+
+ initialize: function($super, url, options) {
+ $super(options);
+ this.transport = Ajax.getTransport();
+ this.request(url);
+ },
+
+ request: function(url) {
+ this.url = url;
+ this.method = this.options.method;
+ var params = Object.isString(this.options.parameters) ?
+ this.options.parameters :
+ Object.toQueryString(this.options.parameters);
+
+ if (!['get', 'post'].include(this.method)) {
+ params += (params ? '&' : '') + "_method=" + this.method;
+ this.method = 'post';
+ }
+
+ if (params && this.method === 'get') {
+ this.url += (this.url.include('?') ? '&' : '?') + params;
+ }
+
+ this.parameters = params.toQueryParams();
+
+ try {
+ var response = new Ajax.Response(this);
+ if (this.options.onCreate) this.options.onCreate(response);
+ Ajax.Responders.dispatch('onCreate', this, response);
+
+ this.transport.open(this.method.toUpperCase(), this.url,
+ this.options.asynchronous);
+
+ if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);
+
+ this.transport.onreadystatechange = this.onStateChange.bind(this);
+ this.setRequestHeaders();
+
+ this.body = this.method == 'post' ? (this.options.postBody || params) : null;
+ this.transport.send(this.body);
+
+ /* Force Firefox to handle ready state 4 for synchronous requests */
+ if (!this.options.asynchronous && this.transport.overrideMimeType)
+ this.onStateChange();
+
+ }
+ catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ onStateChange: function() {
+ var readyState = this.transport.readyState;
+ if (readyState > 1 && !((readyState == 4) && this._complete))
+ this.respondToReadyState(this.transport.readyState);
+ },
+
+ setRequestHeaders: function() {
+ var headers = {
+ 'X-Requested-With': 'XMLHttpRequest',
+ 'X-Prototype-Version': Prototype.Version,
+ 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+ };
+
+ if (this.method == 'post') {
+ headers['Content-type'] = this.options.contentType +
+ (this.options.encoding ? '; charset=' + this.options.encoding : '');
+
+ /* Force "Connection: close" for older Mozilla browsers to work
+ * around a bug where XMLHttpRequest sends an incorrect
+ * Content-length header. See Mozilla Bugzilla #246651.
+ */
+ if (this.transport.overrideMimeType &&
+ (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+ headers['Connection'] = 'close';
+ }
+
+ if (typeof this.options.requestHeaders == 'object') {
+ var extras = this.options.requestHeaders;
+
+ if (Object.isFunction(extras.push))
+ for (var i = 0, length = extras.length; i < length; i += 2)
+ headers[extras[i]] = extras[i+1];
+ else
+ $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+ }
+
+ for (var name in headers)
+ this.transport.setRequestHeader(name, headers[name]);
+ },
+
+ success: function() {
+ var status = this.getStatus();
+ return !status || (status >= 200 && status < 300) || status == 304;
+ },
+
+ getStatus: function() {
+ try {
+ if (this.transport.status === 1223) return 204;
+ return this.transport.status || 0;
+ } catch (e) { return 0 }
+ },
+
+ respondToReadyState: function(readyState) {
+ var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);
+
+ if (state == 'Complete') {
+ try {
+ this._complete = true;
+ (this.options['on' + response.status]
+ || this.options['on' + (this.success() ? 'Success' : 'Failure')]
+ || Prototype.emptyFunction)(response, response.headerJSON);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ var contentType = response.getHeader('Content-type');
+ if (this.options.evalJS == 'force'
+ || (this.options.evalJS && this.isSameOrigin() && contentType
+ && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
+ this.evalResponse();
+ }
+
+ try {
+ (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
+ Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ if (state == 'Complete') {
+ this.transport.onreadystatechange = Prototype.emptyFunction;
+ }
+ },
+
+ isSameOrigin: function() {
+ var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
+ return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
+ protocol: location.protocol,
+ domain: document.domain,
+ port: location.port ? ':' + location.port : ''
+ }));
+ },
+
+ getHeader: function(name) {
+ try {
+ return this.transport.getResponseHeader(name) || null;
+ } catch (e) { return null; }
+ },
+
+ evalResponse: function() {
+ try {
+ return eval((this.transport.responseText || '').unfilterJSON());
+ } catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ dispatchException: function(exception) {
+ (this.options.onException || Prototype.emptyFunction)(this, exception);
+ Ajax.Responders.dispatch('onException', this, exception);
+ }
+});
+
+Ajax.Request.Events =
+ ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+
+
+
+
+
+
+
+Ajax.Response = Class.create({
+ initialize: function(request){
+ this.request = request;
+ var transport = this.transport = request.transport,
+ readyState = this.readyState = transport.readyState;
+
+ if ((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
+ this.status = this.getStatus();
+ this.statusText = this.getStatusText();
+ this.responseText = String.interpret(transport.responseText);
+ this.headerJSON = this._getHeaderJSON();
+ }
+
+ if (readyState == 4) {
+ var xml = transport.responseXML;
+ this.responseXML = Object.isUndefined(xml) ? null : xml;
+ this.responseJSON = this._getResponseJSON();
+ }
+ },
+
+ status: 0,
+
+ statusText: '',
+
+ getStatus: Ajax.Request.prototype.getStatus,
+
+ getStatusText: function() {
+ try {
+ return this.transport.statusText || '';
+ } catch (e) { return '' }
+ },
+
+ getHeader: Ajax.Request.prototype.getHeader,
+
+ getAllHeaders: function() {
+ try {
+ return this.getAllResponseHeaders();
+ } catch (e) { return null }
+ },
+
+ getResponseHeader: function(name) {
+ return this.transport.getResponseHeader(name);
+ },
+
+ getAllResponseHeaders: function() {
+ return this.transport.getAllResponseHeaders();
+ },
+
+ _getHeaderJSON: function() {
+ var json = this.getHeader('X-JSON');
+ if (!json) return null;
+ json = decodeURIComponent(escape(json));
+ try {
+ return json.evalJSON(this.request.options.sanitizeJSON ||
+ !this.request.isSameOrigin());
+ } catch (e) {
+ this.request.dispatchException(e);
+ }
+ },
+
+ _getResponseJSON: function() {
+ var options = this.request.options;
+ if (!options.evalJSON || (options.evalJSON != 'force' &&
+ !(this.getHeader('Content-type') || '').include('application/json')) ||
+ this.responseText.blank())
+ return null;
+ try {
+ return this.responseText.evalJSON(options.sanitizeJSON ||
+ !this.request.isSameOrigin());
+ } catch (e) {
+ this.request.dispatchException(e);
+ }
+ }
+});
+
+Ajax.Updater = Class.create(Ajax.Request, {
+ initialize: function($super, container, url, options) {
+ this.container = {
+ success: (container.success || container),
+ failure: (container.failure || (container.success ? null : container))
+ };
+
+ options = Object.clone(options);
+ var onComplete = options.onComplete;
+ options.onComplete = (function(response, json) {
+ this.updateContent(response.responseText);
+ if (Object.isFunction(onComplete)) onComplete(response, json);
+ }).bind(this);
+
+ $super(url, options);
+ },
+
+ updateContent: function(responseText) {
+ var receiver = this.container[this.success() ? 'success' : 'failure'],
+ options = this.options;
+
+ if (!options.evalScripts) responseText = responseText.stripScripts();
+
+ if (receiver = $(receiver)) {
+ if (options.insertion) {
+ if (Object.isString(options.insertion)) {
+ var insertion = { }; insertion[options.insertion] = responseText;
+ receiver.insert(insertion);
+ }
+ else options.insertion(receiver, responseText);
+ }
+ else receiver.update(responseText);
+ }
+ }
+});
+
+Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
+ initialize: function($super, container, url, options) {
+ $super(options);
+ this.onComplete = this.options.onComplete;
+
+ this.frequency = (this.options.frequency || 2);
+ this.decay = (this.options.decay || 1);
+
+ this.updater = { };
+ this.container = container;
+ this.url = url;
+
+ this.start();
+ },
+
+ start: function() {
+ this.options.onComplete = this.updateComplete.bind(this);
+ this.onTimerEvent();
+ },
+
+ stop: function() {
+ this.updater.options.onComplete = undefined;
+ clearTimeout(this.timer);
+ (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
+ },
+
+ updateComplete: function(response) {
+ if (this.options.decay) {
+ this.decay = (response.responseText == this.lastText ?
+ this.decay * this.options.decay : 1);
+
+ this.lastText = response.responseText;
+ }
+ this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
+ },
+
+ onTimerEvent: function() {
+ this.updater = new Ajax.Updater(this.container, this.url, this.options);
+ }
+});
+
+
+function $(element) {
+ if (arguments.length > 1) {
+ for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+ elements.push($(arguments[i]));
+ return elements;
+ }
+ if (Object.isString(element))
+ element = document.getElementById(element);
+ return Element.extend(element);
+}
+
+if (Prototype.BrowserFeatures.XPath) {
+ document._getElementsByXPath = function(expression, parentElement) {
+ var results = [];
+ var query = document.evaluate(expression, $(parentElement) || document,
+ null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ for (var i = 0, length = query.snapshotLength; i < length; i++)
+ results.push(Element.extend(query.snapshotItem(i)));
+ return results;
+ };
+}
+
+/*--------------------------------------------------------------------------*/
+
+if (!Node) var Node = { };
+
+if (!Node.ELEMENT_NODE) {
+ Object.extend(Node, {
+ ELEMENT_NODE: 1,
+ ATTRIBUTE_NODE: 2,
+ TEXT_NODE: 3,
+ CDATA_SECTION_NODE: 4,
+ ENTITY_REFERENCE_NODE: 5,
+ ENTITY_NODE: 6,
+ PROCESSING_INSTRUCTION_NODE: 7,
+ COMMENT_NODE: 8,
+ DOCUMENT_NODE: 9,
+ DOCUMENT_TYPE_NODE: 10,
+ DOCUMENT_FRAGMENT_NODE: 11,
+ NOTATION_NODE: 12
+ });
+}
+
+
+
+(function(global) {
+ function shouldUseCache(tagName, attributes) {
+ if (tagName === 'select') return false;
+ if ('type' in attributes) return false;
+ return true;
+ }
+
+ var HAS_EXTENDED_CREATE_ELEMENT_SYNTAX = (function(){
+ try {
+ var el = document.createElement('<input name="x">');
+ return el.tagName.toLowerCase() === 'input' && el.name === 'x';
+ }
+ catch(err) {
+ return false;
+ }
+ })();
+
+ var element = global.Element;
+
+ global.Element = function(tagName, attributes) {
+ attributes = attributes || { };
+ tagName = tagName.toLowerCase();
+ var cache = Element.cache;
+
+ if (HAS_EXTENDED_CREATE_ELEMENT_SYNTAX && attributes.name) {
+ tagName = '<' + tagName + ' name="' + attributes.name + '">';
+ delete attributes.name;
+ return Element.writeAttribute(document.createElement(tagName), attributes);
+ }
+
+ if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
+
+ var node = shouldUseCache(tagName, attributes) ?
+ cache[tagName].cloneNode(false) : document.createElement(tagName);
+
+ return Element.writeAttribute(node, attributes);
+ };
+
+ Object.extend(global.Element, element || { });
+ if (element) global.Element.prototype = element.prototype;
+
+})(this);
+
+Element.idCounter = 1;
+Element.cache = { };
+
+Element._purgeElement = function(element) {
+ var uid = element._prototypeUID;
+ if (uid) {
+ Element.stopObserving(element);
+ element._prototypeUID = void 0;
+ delete Element.Storage[uid];
+ }
+}
+
+Element.Methods = {
+ visible: function(element) {
+ return $(element).style.display != 'none';
+ },
+
+ toggle: function(element) {
+ element = $(element);
+ Element[Element.visible(element) ? 'hide' : 'show'](element);
+ return element;
+ },
+
+ hide: function(element) {
+ element = $(element);
+ element.style.display = 'none';
+ return element;
+ },
+
+ show: function(element) {
+ element = $(element);
+ element.style.display = '';
+ return element;
+ },
+
+ remove: function(element) {
+ element = $(element);
+ element.parentNode.removeChild(element);
+ return element;
+ },
+
+ update: (function(){
+
+ var SELECT_ELEMENT_INNERHTML_BUGGY = (function(){
+ var el = document.createElement("select"),
+ isBuggy = true;
+ el.innerHTML = "<option value=\"test\">test</option>";
+ if (el.options && el.options[0]) {
+ isBuggy = el.options[0].nodeName.toUpperCase() !== "OPTION";
+ }
+ el = null;
+ return isBuggy;
+ })();
+
+ var TABLE_ELEMENT_INNERHTML_BUGGY = (function(){
+ try {
+ var el = document.createElement("table");
+ if (el && el.tBodies) {
+ el.innerHTML = "<tbody><tr><td>test</td></tr></tbody>";
+ var isBuggy = typeof el.tBodies[0] == "undefined";
+ el = null;
+ return isBuggy;
+ }
+ } catch (e) {
+ return true;
+ }
+ })();
+
+ var LINK_ELEMENT_INNERHTML_BUGGY = (function() {
+ try {
+ var el = document.createElement('div');
+ el.innerHTML = "<link>";
+ var isBuggy = (el.childNodes.length === 0);
+ el = null;
+ return isBuggy;
+ } catch(e) {
+ return true;
+ }
+ })();
+
+ var ANY_INNERHTML_BUGGY = SELECT_ELEMENT_INNERHTML_BUGGY ||
+ TABLE_ELEMENT_INNERHTML_BUGGY || LINK_ELEMENT_INNERHTML_BUGGY;
+
+ var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING = (function () {
+ var s = document.createElement("script"),
+ isBuggy = false;
+ try {
+ s.appendChild(document.createTextNode(""));
+ isBuggy = !s.firstChild ||
+ s.firstChild && s.firstChild.nodeType !== 3;
+ } catch (e) {
+ isBuggy = true;
+ }
+ s = null;
+ return isBuggy;
+ })();
+
+
+ function update(element, content) {
+ element = $(element);
+ var purgeElement = Element._purgeElement;
+
+ var descendants = element.getElementsByTagName('*'),
+ i = descendants.length;
+ while (i--) purgeElement(descendants[i]);
+
+ if (content && content.toElement)
+ content = content.toElement();
+
+ if (Object.isElement(content))
+ return element.update().insert(content);
+
+ content = Object.toHTML(content);
+
+ var tagName = element.tagName.toUpperCase();
+
+ if (tagName === 'SCRIPT' && SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING) {
+ element.text = content;
+ return element;
+ }
+
+ if (ANY_INNERHTML_BUGGY) {
+ if (tagName in Element._insertionTranslations.tags) {
+ while (element.firstChild) {
+ element.removeChild(element.firstChild);
+ }
+ Element._getContentFromAnonymousElement(tagName, content.stripScripts())
+ .each(function(node) {
+ element.appendChild(node)
+ });
+ } else if (LINK_ELEMENT_INNERHTML_BUGGY && Object.isString(content) && content.indexOf('<link') > -1) {
+ while (element.firstChild) {
+ element.removeChild(element.firstChild);
+ }
+ var nodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts(), true);
+ nodes.each(function(node) { element.appendChild(node) });
+ }
+ else {
+ element.innerHTML = content.stripScripts();
+ }
+ }
+ else {
+ element.innerHTML = content.stripScripts();
+ }
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ }
+
+ return update;
+ })(),
+
+ replace: function(element, content) {
+ element = $(element);
+ if (content && content.toElement) content = content.toElement();
+ else if (!Object.isElement(content)) {
+ content = Object.toHTML(content);
+ var range = element.ownerDocument.createRange();
+ range.selectNode(element);
+ content.evalScripts.bind(content).defer();
+ content = range.createContextualFragment(content.stripScripts());
+ }
+ element.parentNode.replaceChild(content, element);
+ return element;
+ },
+
+ insert: function(element, insertions) {
+ element = $(element);
+
+ if (Object.isString(insertions) || Object.isNumber(insertions) ||
+ Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
+ insertions = {bottom:insertions};
+
+ var content, insert, tagName, childNodes;
+
+ for (var position in insertions) {
+ content = insertions[position];
+ position = position.toLowerCase();
+ insert = Element._insertionTranslations[position];
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ insert(element, content);
+ continue;
+ }
+
+ content = Object.toHTML(content);
+
+ tagName = ((position == 'before' || position == 'after')
+ ? element.parentNode : element).tagName.toUpperCase();
+
+ childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+
+ if (position == 'top' || position == 'after') childNodes.reverse();
+ childNodes.each(insert.curry(element));
+
+ content.evalScripts.bind(content).defer();
+ }
+
+ return element;
+ },
+
+ wrap: function(element, wrapper, attributes) {
+ element = $(element);
+ if (Object.isElement(wrapper))
+ $(wrapper).writeAttribute(attributes || { });
+ else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
+ else wrapper = new Element('div', wrapper);
+ if (element.parentNode)
+ element.parentNode.replaceChild(wrapper, element);
+ wrapper.appendChild(element);
+ return wrapper;
+ },
+
+ inspect: function(element) {
+ element = $(element);
+ var result = '<' + element.tagName.toLowerCase();
+ $H({'id': 'id', 'className': 'class'}).each(function(pair) {
+ var property = pair.first(),
+ attribute = pair.last(),
+ value = (element[property] || '').toString();
+ if (value) result += ' ' + attribute + '=' + value.inspect(true);
+ });
+ return result + '>';
+ },
+
+ recursivelyCollect: function(element, property, maximumLength) {
+ element = $(element);
+ maximumLength = maximumLength || -1;
+ var elements = [];
+
+ while (element = element[property]) {
+ if (element.nodeType == 1)
+ elements.push(Element.extend(element));
+ if (elements.length == maximumLength)
+ break;
+ }
+
+ return elements;
+ },
+
+ ancestors: function(element) {
+ return Element.recursivelyCollect(element, 'parentNode');
+ },
+
+ descendants: function(element) {
+ return Element.select(element, "*");
+ },
+
+ firstDescendant: function(element) {
+ element = $(element).firstChild;
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ return $(element);
+ },
+
+ immediateDescendants: function(element) {
+ var results = [], child = $(element).firstChild;
+ while (child) {
+ if (child.nodeType === 1) {
+ results.push(Element.extend(child));
+ }
+ child = child.nextSibling;
+ }
+ return results;
+ },
+
+ previousSiblings: function(element, maximumLength) {
+ return Element.recursivelyCollect(element, 'previousSibling');
+ },
+
+ nextSiblings: function(element) {
+ return Element.recursivelyCollect(element, 'nextSibling');
+ },
+
+ siblings: function(element) {
+ element = $(element);
+ return Element.previousSiblings(element).reverse()
+ .concat(Element.nextSiblings(element));
+ },
+
+ match: function(element, selector) {
+ element = $(element);
+ if (Object.isString(selector))
+ return Prototype.Selector.match(element, selector);
+ return selector.match(element);
+ },
+
+ up: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(element.parentNode);
+ var ancestors = Element.ancestors(element);
+ return Object.isNumber(expression) ? ancestors[expression] :
+ Prototype.Selector.find(ancestors, expression, index);
+ },
+
+ down: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return Element.firstDescendant(element);
+ return Object.isNumber(expression) ? Element.descendants(element)[expression] :
+ Element.select(element, expression)[index || 0];
+ },
+
+ previous: function(element, expression, index) {
+ element = $(element);
+ if (Object.isNumber(expression)) index = expression, expression = false;
+ if (!Object.isNumber(index)) index = 0;
+
+ if (expression) {
+ return Prototype.Selector.find(element.previousSiblings(), expression, index);
+ } else {
+ return element.recursivelyCollect("previousSibling", index + 1)[index];
+ }
+ },
+
+ next: function(element, expression, index) {
+ element = $(element);
+ if (Object.isNumber(expression)) index = expression, expression = false;
+ if (!Object.isNumber(index)) index = 0;
+
+ if (expression) {
+ return Prototype.Selector.find(element.nextSiblings(), expression, index);
+ } else {
+ var maximumLength = Object.isNumber(index) ? index + 1 : 1;
+ return element.recursivelyCollect("nextSibling", index + 1)[index];
+ }
+ },
+
+
+ select: function(element) {
+ element = $(element);
+ var expressions = Array.prototype.slice.call(arguments, 1).join(', ');
+ return Prototype.Selector.select(expressions, element);
+ },
+
+ adjacent: function(element) {
+ element = $(element);
+ var expressions = Array.prototype.slice.call(arguments, 1).join(', ');
+ return Prototype.Selector.select(expressions, element.parentNode).without(element);
+ },
+
+ identify: function(element) {
+ element = $(element);
+ var id = Element.readAttribute(element, 'id');
+ if (id) return id;
+ do { id = 'anonymous_element_' + Element.idCounter++ } while ($(id));
+ Element.writeAttribute(element, 'id', id);
+ return id;
+ },
+
+ readAttribute: function(element, name) {
+ element = $(element);
+ if (Prototype.Browser.IE) {
+ var t = Element._attributeTranslations.read;
+ if (t.values[name]) return t.values[name](element, name);
+ if (t.names[name]) name = t.names[name];
+ if (name.include(':')) {
+ return (!element.attributes || !element.attributes[name]) ? null :
+ element.attributes[name].value;
+ }
+ }
+ return element.getAttribute(name);
+ },
+
+ writeAttribute: function(element, name, value) {
+ element = $(element);
+ var attributes = { }, t = Element._attributeTranslations.write;
+
+ if (typeof name == 'object') attributes = name;
+ else attributes[name] = Object.isUndefined(value) ? true : value;
+
+ for (var attr in attributes) {
+ name = t.names[attr] || attr;
+ value = attributes[attr];
+ if (t.values[attr]) name = t.values[attr](element, value);
+ if (value === false || value === null)
+ element.removeAttribute(name);
+ else if (value === true)
+ element.setAttribute(name, name);
+ else element.setAttribute(name, value);
+ }
+ return element;
+ },
+
+ getHeight: function(element) {
+ return Element.getDimensions(element).height;
+ },
+
+ getWidth: function(element) {
+ return Element.getDimensions(element).width;
+ },
+
+ classNames: function(element) {
+ return new Element.ClassNames(element);
+ },
+
+ hasClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ var elementClassName = element.className;
+ return (elementClassName.length > 0 && (elementClassName == className ||
+ new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
+ },
+
+ addClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ if (!Element.hasClassName(element, className))
+ element.className += (element.className ? ' ' : '') + className;
+ return element;
+ },
+
+ removeClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ element.className = element.className.replace(
+ new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
+ return element;
+ },
+
+ toggleClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ return Element[Element.hasClassName(element, className) ?
+ 'removeClassName' : 'addClassName'](element, className);
+ },
+
+ cleanWhitespace: function(element) {
+ element = $(element);
+ var node = element.firstChild;
+ while (node) {
+ var nextNode = node.nextSibling;
+ if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+ element.removeChild(node);
+ node = nextNode;
+ }
+ return element;
+ },
+
+ empty: function(element) {
+ return $(element).innerHTML.blank();
+ },
+
+ descendantOf: function(element, ancestor) {
+ element = $(element), ancestor = $(ancestor);
+
+ if (element.compareDocumentPosition)
+ return (element.compareDocumentPosition(ancestor) & 8) === 8;
+
+ if (ancestor.contains)
+ return ancestor.contains(element) && ancestor !== element;
+
+ while (element = element.parentNode)
+ if (element == ancestor) return true;
+
+ return false;
+ },
+
+ scrollTo: function(element) {
+ element = $(element);
+ var pos = Element.cumulativeOffset(element);
+ window.scrollTo(pos[0], pos[1]);
+ return element;
+ },
+
+ getStyle: function(element, style) {
+ element = $(element);
+ style = style == 'float' ? 'cssFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value || value == 'auto') {
+ var css = document.defaultView.getComputedStyle(element, null);
+ value = css ? css[style] : null;
+ }
+ if (style == 'opacity') return value ? parseFloat(value) : 1.0;
+ return value == 'auto' ? null : value;
+ },
+
+ getOpacity: function(element) {
+ return $(element).getStyle('opacity');
+ },
+
+ setStyle: function(element, styles) {
+ element = $(element);
+ var elementStyle = element.style, match;
+ if (Object.isString(styles)) {
+ element.style.cssText += ';' + styles;
+ return styles.include('opacity') ?
+ element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
+ }
+ for (var property in styles)
+ if (property == 'opacity') element.setOpacity(styles[property]);
+ else
+ elementStyle[(property == 'float' || property == 'cssFloat') ?
+ (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
+ property] = styles[property];
+
+ return element;
+ },
+
+ setOpacity: function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+ return element;
+ },
+
+ makePositioned: function(element) {
+ element = $(element);
+ var pos = Element.getStyle(element, 'position');
+ if (pos == 'static' || !pos) {
+ element._madePositioned = true;
+ element.style.position = 'relative';
+ if (Prototype.Browser.Opera) {
+ element.style.top = 0;
+ element.style.left = 0;
+ }
+ }
+ return element;
+ },
+
+ undoPositioned: function(element) {
+ element = $(element);
+ if (element._madePositioned) {
+ element._madePositioned = undefined;
+ element.style.position =
+ element.style.top =
+ element.style.left =
+ element.style.bottom =
+ element.style.right = '';
+ }
+ return element;
+ },
+
+ makeClipping: function(element) {
+ element = $(element);
+ if (element._overflow) return element;
+ element._overflow = Element.getStyle(element, 'overflow') || 'auto';
+ if (element._overflow !== 'hidden')
+ element.style.overflow = 'hidden';
+ return element;
+ },
+
+ undoClipping: function(element) {
+ element = $(element);
+ if (!element._overflow) return element;
+ element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
+ element._overflow = null;
+ return element;
+ },
+
+ clonePosition: function(element, source) {
+ var options = Object.extend({
+ setLeft: true,
+ setTop: true,
+ setWidth: true,
+ setHeight: true,
+ offsetTop: 0,
+ offsetLeft: 0
+ }, arguments[2] || { });
+
+ source = $(source);
+ var p = Element.viewportOffset(source), delta = [0, 0], parent = null;
+
+ element = $(element);
+
+ if (Element.getStyle(element, 'position') == 'absolute') {
+ parent = Element.getOffsetParent(element);
+ delta = Element.viewportOffset(parent);
+ }
+
+ if (parent == document.body) {
+ delta[0] -= document.body.offsetLeft;
+ delta[1] -= document.body.offsetTop;
+ }
+
+ if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px';
+ if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px';
+ if (options.setWidth) element.style.width = source.offsetWidth + 'px';
+ if (options.setHeight) element.style.height = source.offsetHeight + 'px';
+ return element;
+ }
+};
+
+Object.extend(Element.Methods, {
+ getElementsBySelector: Element.Methods.select,
+
+ childElements: Element.Methods.immediateDescendants
+});
+
+Element._attributeTranslations = {
+ write: {
+ names: {
+ className: 'class',
+ htmlFor: 'for'
+ },
+ values: { }
+ }
+};
+
+if (Prototype.Browser.Opera) {
+ Element.Methods.getStyle = Element.Methods.getStyle.wrap(
+ function(proceed, element, style) {
+ switch (style) {
+ case 'height': case 'width':
+ if (!Element.visible(element)) return null;
+
+ var dim = parseInt(proceed(element, style), 10);
+
+ if (dim !== element['offset' + style.capitalize()])
+ return dim + 'px';
+
+ var properties;
+ if (style === 'height') {
+ properties = ['border-top-width', 'padding-top',
+ 'padding-bottom', 'border-bottom-width'];
+ }
+ else {
+ properties = ['border-left-width', 'padding-left',
+ 'padding-right', 'border-right-width'];
+ }
+ return properties.inject(dim, function(memo, property) {
+ var val = proceed(element, property);
+ return val === null ? memo : memo - parseInt(val, 10);
+ }) + 'px';
+ default: return proceed(element, style);
+ }
+ }
+ );
+
+ Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(
+ function(proceed, element, attribute) {
+ if (attribute === 'title') return element.title;
+ return proceed(element, attribute);
+ }
+ );
+}
+
+else if (Prototype.Browser.IE) {
+ Element.Methods.getStyle = function(element, style) {
+ element = $(element);
+ style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value && element.currentStyle) value = element.currentStyle[style];
+
+ if (style == 'opacity') {
+ if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+ if (value[1]) return parseFloat(value[1]) / 100;
+ return 1.0;
+ }
+
+ if (value == 'auto') {
+ if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
+ return element['offset' + style.capitalize()] + 'px';
+ return null;
+ }
+ return value;
+ };
+
+ Element.Methods.setOpacity = function(element, value) {
+ function stripAlpha(filter){
+ return filter.replace(/alpha\([^\)]*\)/gi,'');
+ }
+ element = $(element);
+ var currentStyle = element.currentStyle;
+ if ((currentStyle && !currentStyle.hasLayout) ||
+ (!currentStyle && element.style.zoom == 'normal'))
+ element.style.zoom = 1;
+
+ var filter = element.getStyle('filter'), style = element.style;
+ if (value == 1 || value === '') {
+ (filter = stripAlpha(filter)) ?
+ style.filter = filter : style.removeAttribute('filter');
+ return element;
+ } else if (value < 0.00001) value = 0;
+ style.filter = stripAlpha(filter) +
+ 'alpha(opacity=' + (value * 100) + ')';
+ return element;
+ };
+
+ Element._attributeTranslations = (function(){
+
+ var classProp = 'className',
+ forProp = 'for',
+ el = document.createElement('div');
+
+ el.setAttribute(classProp, 'x');
+
+ if (el.className !== 'x') {
+ el.setAttribute('class', 'x');
+ if (el.className === 'x') {
+ classProp = 'class';
+ }
+ }
+ el = null;
+
+ el = document.createElement('label');
+ el.setAttribute(forProp, 'x');
+ if (el.htmlFor !== 'x') {
+ el.setAttribute('htmlFor', 'x');
+ if (el.htmlFor === 'x') {
+ forProp = 'htmlFor';
+ }
+ }
+ el = null;
+
+ return {
+ read: {
+ names: {
+ 'class': classProp,
+ 'className': classProp,
+ 'for': forProp,
+ 'htmlFor': forProp
+ },
+ values: {
+ _getAttr: function(element, attribute) {
+ return element.getAttribute(attribute);
+ },
+ _getAttr2: function(element, attribute) {
+ return element.getAttribute(attribute, 2);
+ },
+ _getAttrNode: function(element, attribute) {
+ var node = element.getAttributeNode(attribute);
+ return node ? node.value : "";
+ },
+ _getEv: (function(){
+
+ var el = document.createElement('div'), f;
+ el.onclick = Prototype.emptyFunction;
+ var value = el.getAttribute('onclick');
+
+ if (String(value).indexOf('{') > -1) {
+ f = function(element, attribute) {
+ attribute = element.getAttribute(attribute);
+ if (!attribute) return null;
+ attribute = attribute.toString();
+ attribute = attribute.split('{')[1];
+ attribute = attribute.split('}')[0];
+ return attribute.strip();
+ };
+ }
+ else if (value === '') {
+ f = function(element, attribute) {
+ attribute = element.getAttribute(attribute);
+ if (!attribute) return null;
+ return attribute.strip();
+ };
+ }
+ el = null;
+ return f;
+ })(),
+ _flag: function(element, attribute) {
+ return $(element).hasAttribute(attribute) ? attribute : null;
+ },
+ style: function(element) {
+ return element.style.cssText.toLowerCase();
+ },
+ title: function(element) {
+ return element.title;
+ }
+ }
+ }
+ }
+ })();
+
+ Element._attributeTranslations.write = {
+ names: Object.extend({
+ cellpadding: 'cellPadding',
+ cellspacing: 'cellSpacing'
+ }, Element._attributeTranslations.read.names),
+ values: {
+ checked: function(element, value) {
+ element.checked = !!value;
+ },
+
+ style: function(element, value) {
+ element.style.cssText = value ? value : '';
+ }
+ }
+ };
+
+ Element._attributeTranslations.has = {};
+
+ $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
+ 'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
+ Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
+ Element._attributeTranslations.has[attr.toLowerCase()] = attr;
+ });
+
+ (function(v) {
+ Object.extend(v, {
+ href: v._getAttr2,
+ src: v._getAttr2,
+ type: v._getAttr,
+ action: v._getAttrNode,
+ disabled: v._flag,
+ checked: v._flag,
+ readonly: v._flag,
+ multiple: v._flag,
+ onload: v._getEv,
+ onunload: v._getEv,
+ onclick: v._getEv,
+ ondblclick: v._getEv,
+ onmousedown: v._getEv,
+ onmouseup: v._getEv,
+ onmouseover: v._getEv,
+ onmousemove: v._getEv,
+ onmouseout: v._getEv,
+ onfocus: v._getEv,
+ onblur: v._getEv,
+ onkeypress: v._getEv,
+ onkeydown: v._getEv,
+ onkeyup: v._getEv,
+ onsubmit: v._getEv,
+ onreset: v._getEv,
+ onselect: v._getEv,
+ onchange: v._getEv
+ });
+ })(Element._attributeTranslations.read.values);
+
+ if (Prototype.BrowserFeatures.ElementExtensions) {
+ (function() {
+ function _descendants(element) {
+ var nodes = element.getElementsByTagName('*'), results = [];
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.tagName !== "!") // Filter out comment nodes.
+ results.push(node);
+ return results;
+ }
+
+ Element.Methods.down = function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return element.firstDescendant();
+ return Object.isNumber(expression) ? _descendants(element)[expression] :
+ Element.select(element, expression)[index || 0];
+ }
+ })();
+ }
+
+}
+
+else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1) ? 0.999999 :
+ (value === '') ? '' : (value < 0.00001) ? 0 : value;
+ return element;
+ };
+}
+
+else if (Prototype.Browser.WebKit) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+
+ if (value == 1)
+ if (element.tagName.toUpperCase() == 'IMG' && element.width) {
+ element.width++; element.width--;
+ } else try {
+ var n = document.createTextNode(' ');
+ element.appendChild(n);
+ element.removeChild(n);
+ } catch (e) { }
+
+ return element;
+ };
+}
+
+if ('outerHTML' in document.documentElement) {
+ Element.Methods.replace = function(element, content) {
+ element = $(element);
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ element.parentNode.replaceChild(content, element);
+ return element;
+ }
+
+ content = Object.toHTML(content);
+ var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
+
+ if (Element._insertionTranslations.tags[tagName]) {
+ var nextSibling = element.next(),
+ fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+ parent.removeChild(element);
+ if (nextSibling)
+ fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
+ else
+ fragments.each(function(node) { parent.appendChild(node) });
+ }
+ else element.outerHTML = content.stripScripts();
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ };
+}
+
+Element._returnOffset = function(l, t) {
+ var result = [l, t];
+ result.left = l;
+ result.top = t;
+ return result;
+};
+
+Element._getContentFromAnonymousElement = function(tagName, html, force) {
+ var div = new Element('div'),
+ t = Element._insertionTranslations.tags[tagName];
+
+ var workaround = false;
+ if (t) workaround = true;
+ else if (force) {
+ workaround = true;
+ t = ['', '', 0];
+ }
+
+ if (workaround) {
+ div.innerHTML = '&nbsp;' + t[0] + html + t[1];
+ div.removeChild(div.firstChild);
+ for (var i = t[2]; i--; ) {
+ div = div.firstChild;
+ }
+ }
+ else {
+ div.innerHTML = html;
+ }
+ return $A(div.childNodes);
+};
+
+Element._insertionTranslations = {
+ before: function(element, node) {
+ element.parentNode.insertBefore(node, element);
+ },
+ top: function(element, node) {
+ element.insertBefore(node, element.firstChild);
+ },
+ bottom: function(element, node) {
+ element.appendChild(node);
+ },
+ after: function(element, node) {
+ element.parentNode.insertBefore(node, element.nextSibling);
+ },
+ tags: {
+ TABLE: ['<table>', '</table>', 1],
+ TBODY: ['<table><tbody>', '</tbody></table>', 2],
+ TR: ['<table><tbody><tr>', '</tr></tbody></table>', 3],
+ TD: ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
+ SELECT: ['<select>', '</select>', 1]
+ }
+};
+
+(function() {
+ var tags = Element._insertionTranslations.tags;
+ Object.extend(tags, {
+ THEAD: tags.TBODY,
+ TFOOT: tags.TBODY,
+ TH: tags.TD
+ });
+})();
+
+Element.Methods.Simulated = {
+ hasAttribute: function(element, attribute) {
+ attribute = Element._attributeTranslations.has[attribute] || attribute;
+ var node = $(element).getAttributeNode(attribute);
+ return !!(node && node.specified);
+ }
+};
+
+Element.Methods.ByTag = { };
+
+Object.extend(Element, Element.Methods);
+
+(function(div) {
+
+ if (!Prototype.BrowserFeatures.ElementExtensions && div['__proto__']) {
+ window.HTMLElement = { };
+ window.HTMLElement.prototype = div['__proto__'];
+ Prototype.BrowserFeatures.ElementExtensions = true;
+ }
+
+ div = null;
+
+})(document.createElement('div'));
+
+Element.extend = (function() {
+
+ function checkDeficiency(tagName) {
+ if (typeof window.Element != 'undefined') {
+ var proto = window.Element.prototype;
+ if (proto) {
+ var id = '_' + (Math.random()+'').slice(2),
+ el = document.createElement(tagName);
+ proto[id] = 'x';
+ var isBuggy = (el[id] !== 'x');
+ delete proto[id];
+ el = null;
+ return isBuggy;
+ }
+ }
+ return false;
+ }
+
+ function extendElementWith(element, methods) {
+ for (var property in methods) {
+ var value = methods[property];
+ if (Object.isFunction(value) && !(property in element))
+ element[property] = value.methodize();
+ }
+ }
+
+ var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY = checkDeficiency('object');
+
+ if (Prototype.BrowserFeatures.SpecificElementExtensions) {
+ if (HTMLOBJECTELEMENT_PROTOTYPE_BUGGY) {
+ return function(element) {
+ if (element && typeof element._extendedByPrototype == 'undefined') {
+ var t = element.tagName;
+ if (t && (/^(?:object|applet|embed)$/i.test(t))) {
+ extendElementWith(element, Element.Methods);
+ extendElementWith(element, Element.Methods.Simulated);
+ extendElementWith(element, Element.Methods.ByTag[t.toUpperCase()]);
+ }
+ }
+ return element;
+ }
+ }
+ return Prototype.K;
+ }
+
+ var Methods = { }, ByTag = Element.Methods.ByTag;
+
+ var extend = Object.extend(function(element) {
+ if (!element || typeof element._extendedByPrototype != 'undefined' ||
+ element.nodeType != 1 || element == window) return element;
+
+ var methods = Object.clone(Methods),
+ tagName = element.tagName.toUpperCase();
+
+ if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
+
+ extendElementWith(element, methods);
+
+ element._extendedByPrototype = Prototype.emptyFunction;
+ return element;
+
+ }, {
+ refresh: function() {
+ if (!Prototype.BrowserFeatures.ElementExtensions) {
+ Object.extend(Methods, Element.Methods);
+ Object.extend(Methods, Element.Methods.Simulated);
+ }
+ }
+ });
+
+ extend.refresh();
+ return extend;
+})();
+
+if (document.documentElement.hasAttribute) {
+ Element.hasAttribute = function(element, attribute) {
+ return element.hasAttribute(attribute);
+ };
+}
+else {
+ Element.hasAttribute = Element.Methods.Simulated.hasAttribute;
+}
+
+Element.addMethods = function(methods) {
+ var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
+
+ if (!methods) {
+ Object.extend(Form, Form.Methods);
+ Object.extend(Form.Element, Form.Element.Methods);
+ Object.extend(Element.Methods.ByTag, {
+ "FORM": Object.clone(Form.Methods),
+ "INPUT": Object.clone(Form.Element.Methods),
+ "SELECT": Object.clone(Form.Element.Methods),
+ "TEXTAREA": Object.clone(Form.Element.Methods),
+ "BUTTON": Object.clone(Form.Element.Methods)
+ });
+ }
+
+ if (arguments.length == 2) {
+ var tagName = methods;
+ methods = arguments[1];
+ }
+
+ if (!tagName) Object.extend(Element.Methods, methods || { });
+ else {
+ if (Object.isArray(tagName)) tagName.each(extend);
+ else extend(tagName);
+ }
+
+ function extend(tagName) {
+ tagName = tagName.toUpperCase();
+ if (!Element.Methods.ByTag[tagName])
+ Element.Methods.ByTag[tagName] = { };
+ Object.extend(Element.Methods.ByTag[tagName], methods);
+ }
+
+ function copy(methods, destination, onlyIfAbsent) {
+ onlyIfAbsent = onlyIfAbsent || false;
+ for (var property in methods) {
+ var value = methods[property];
+ if (!Object.isFunction(value)) continue;
+ if (!onlyIfAbsent || !(property in destination))
+ destination[property] = value.methodize();
+ }
+ }
+
+ function findDOMClass(tagName) {
+ var klass;
+ var trans = {
+ "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
+ "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
+ "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
+ "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
+ "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
+ "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
+ "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
+ "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
+ "FrameSet", "IFRAME": "IFrame"
+ };
+ if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName.capitalize() + 'Element';
+ if (window[klass]) return window[klass];
+
+ var element = document.createElement(tagName),
+ proto = element['__proto__'] || element.constructor.prototype;
+
+ element = null;
+ return proto;
+ }
+
+ var elementPrototype = window.HTMLElement ? HTMLElement.prototype :
+ Element.prototype;
+
+ if (F.ElementExtensions) {
+ copy(Element.Methods, elementPrototype);
+ copy(Element.Methods.Simulated, elementPrototype, true);
+ }
+
+ if (F.SpecificElementExtensions) {
+ for (var tag in Element.Methods.ByTag) {
+ var klass = findDOMClass(tag);
+ if (Object.isUndefined(klass)) continue;
+ copy(T[tag], klass.prototype);
+ }
+ }
+
+ Object.extend(Element, Element.Methods);
+ delete Element.ByTag;
+
+ if (Element.extend.refresh) Element.extend.refresh();
+ Element.cache = { };
+};
+
+
+document.viewport = {
+
+ getDimensions: function() {
+ return { width: this.getWidth(), height: this.getHeight() };
+ },
+
+ getScrollOffsets: function() {
+ return Element._returnOffset(
+ window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
+ window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
+ }
+};
+
+(function(viewport) {
+ var B = Prototype.Browser, doc = document, element, property = {};
+
+ function getRootElement() {
+ if (B.WebKit && !doc.evaluate)
+ return document;
+
+ if (B.Opera && window.parseFloat(window.opera.version()) < 9.5)
+ return document.body;
+
+ return document.documentElement;
+ }
+
+ function define(D) {
+ if (!element) element = getRootElement();
+
+ property[D] = 'client' + D;
+
+ viewport['get' + D] = function() { return element[property[D]] };
+ return viewport['get' + D]();
+ }
+
+ viewport.getWidth = define.curry('Width');
+
+ viewport.getHeight = define.curry('Height');
+})(document.viewport);
+
+
+Element.Storage = {
+ UID: 1
+};
+
+Element.addMethods({
+ getStorage: function(element) {
+ if (!(element = $(element))) return;
+
+ var uid;
+ if (element === window) {
+ uid = 0;
+ } else {
+ if (typeof element._prototypeUID === "undefined")
+ element._prototypeUID = Element.Storage.UID++;
+ uid = element._prototypeUID;
+ }
+
+ if (!Element.Storage[uid])
+ Element.Storage[uid] = $H();
+
+ return Element.Storage[uid];
+ },
+
+ store: function(element, key, value) {
+ if (!(element = $(element))) return;
+
+ if (arguments.length === 2) {
+ Element.getStorage(element).update(key);
+ } else {
+ Element.getStorage(element).set(key, value);
+ }
+
+ return element;
+ },
+
+ retrieve: function(element, key, defaultValue) {
+ if (!(element = $(element))) return;
+ var hash = Element.getStorage(element), value = hash.get(key);
+
+ if (Object.isUndefined(value)) {
+ hash.set(key, defaultValue);
+ value = defaultValue;
+ }
+
+ return value;
+ },
+
+ clone: function(element, deep) {
+ if (!(element = $(element))) return;
+ var clone = element.cloneNode(deep);
+ clone._prototypeUID = void 0;
+ if (deep) {
+ var descendants = Element.select(clone, '*'),
+ i = descendants.length;
+ while (i--) {
+ descendants[i]._prototypeUID = void 0;
+ }
+ }
+ return Element.extend(clone);
+ },
+
+ purge: function(element) {
+ if (!(element = $(element))) return;
+ var purgeElement = Element._purgeElement;
+
+ purgeElement(element);
+
+ var descendants = element.getElementsByTagName('*'),
+ i = descendants.length;
+
+ while (i--) purgeElement(descendants[i]);
+
+ return null;
+ }
+});
+
+(function() {
+
+ function toDecimal(pctString) {
+ var match = pctString.match(/^(\d+)%?$/i);
+ if (!match) return null;
+ return (Number(match[1]) / 100);
+ }
+
+ function getPixelValue(value, property, context) {
+ var element = null;
+ if (Object.isElement(value)) {
+ element = value;
+ value = element.getStyle(property);
+ }
+
+ if (value === null) {
+ return null;
+ }
+
+ if ((/^(?:-)?\d+(\.\d+)?(px)?$/i).test(value)) {
+ return window.parseFloat(value);
+ }
+
+ var isPercentage = value.include('%'), isViewport = (context === document.viewport);
+
+ if (/\d/.test(value) && element && element.runtimeStyle && !(isPercentage && isViewport)) {
+ var style = element.style.left, rStyle = element.runtimeStyle.left;
+ element.runtimeStyle.left = element.currentStyle.left;
+ element.style.left = value || 0;
+ value = element.style.pixelLeft;
+ element.style.left = style;
+ element.runtimeStyle.left = rStyle;
+
+ return value;
+ }
+
+ if (element && isPercentage) {
+ context = context || element.parentNode;
+ var decimal = toDecimal(value);
+ var whole = null;
+ var position = element.getStyle('position');
+
+ var isHorizontal = property.include('left') || property.include('right') ||
+ property.include('width');
+
+ var isVertical = property.include('top') || property.include('bottom') ||
+ property.include('height');
+
+ if (context === document.viewport) {
+ if (isHorizontal) {
+ whole = document.viewport.getWidth();
+ } else if (isVertical) {
+ whole = document.viewport.getHeight();
+ }
+ } else {
+ if (isHorizontal) {
+ whole = $(context).measure('width');
+ } else if (isVertical) {
+ whole = $(context).measure('height');
+ }
+ }
+
+ return (whole === null) ? 0 : whole * decimal;
+ }
+
+ return 0;
+ }
+
+ function toCSSPixels(number) {
+ if (Object.isString(number) && number.endsWith('px')) {
+ return number;
+ }
+ return number + 'px';
+ }
+
+ function isDisplayed(element) {
+ var originalElement = element;
+ while (element && element.parentNode) {
+ var display = element.getStyle('display');
+ if (display === 'none') {
+ return false;
+ }
+ element = $(element.parentNode);
+ }
+ return true;
+ }
+
+ var hasLayout = Prototype.K;
+ if ('currentStyle' in document.documentElement) {
+ hasLayout = function(element) {
+ if (!element.currentStyle.hasLayout) {
+ element.style.zoom = 1;
+ }
+ return element;
+ };
+ }
+
+ function cssNameFor(key) {
+ if (key.include('border')) key = key + '-width';
+ return key.camelize();
+ }
+
+ Element.Layout = Class.create(Hash, {
+ initialize: function($super, element, preCompute) {
+ $super();
+ this.element = $(element);
+
+ Element.Layout.PROPERTIES.each( function(property) {
+ this._set(property, null);
+ }, this);
+
+ if (preCompute) {
+ this._preComputing = true;
+ this._begin();
+ Element.Layout.PROPERTIES.each( this._compute, this );
+ this._end();
+ this._preComputing = false;
+ }
+ },
+
+ _set: function(property, value) {
+ return Hash.prototype.set.call(this, property, value);
+ },
+
+ set: function(property, value) {
+ throw "Properties of Element.Layout are read-only.";
+ },
+
+ get: function($super, property) {
+ var value = $super(property);
+ return value === null ? this._compute(property) : value;
+ },
+
+ _begin: function() {
+ if (this._prepared) return;
+
+ var element = this.element;
+ if (isDisplayed(element)) {
+ this._prepared = true;
+ return;
+ }
+
+ var originalStyles = {
+ position: element.style.position || '',
+ width: element.style.width || '',
+ visibility: element.style.visibility || '',
+ display: element.style.display || ''
+ };
+
+ element.store('prototype_original_styles', originalStyles);
+
+ var position = element.getStyle('position'),
+ width = element.getStyle('width');
+
+ if (width === "0px" || width === null) {
+ element.style.display = 'block';
+ width = element.getStyle('width');
+ }
+
+ var context = (position === 'fixed') ? document.viewport :
+ element.parentNode;
+
+ element.setStyle({
+ position: 'absolute',
+ visibility: 'hidden',
+ display: 'block'
+ });
+
+ var positionedWidth = element.getStyle('width');
+
+ var newWidth;
+ if (width && (positionedWidth === width)) {
+ newWidth = getPixelValue(element, 'width', context);
+ } else if (position === 'absolute' || position === 'fixed') {
+ newWidth = getPixelValue(element, 'width', context);
+ } else {
+ var parent = element.parentNode, pLayout = $(parent).getLayout();
+
+ newWidth = pLayout.get('width') -
+ this.get('margin-left') -
+ this.get('border-left') -
+ this.get('padding-left') -
+ this.get('padding-right') -
+ this.get('border-right') -
+ this.get('margin-right');
+ }
+
+ element.setStyle({ width: newWidth + 'px' });
+
+ this._prepared = true;
+ },
+
+ _end: function() {
+ var element = this.element;
+ var originalStyles = element.retrieve('prototype_original_styles');
+ element.store('prototype_original_styles', null);
+ element.setStyle(originalStyles);
+ this._prepared = false;
+ },
+
+ _compute: function(property) {
+ var COMPUTATIONS = Element.Layout.COMPUTATIONS;
+ if (!(property in COMPUTATIONS)) {
+ throw "Property not found.";
+ }
+
+ return this._set(property, COMPUTATIONS[property].call(this, this.element));
+ },
+
+ toObject: function() {
+ var args = $A(arguments);
+ var keys = (args.length === 0) ? Element.Layout.PROPERTIES :
+ args.join(' ').split(' ');
+ var obj = {};
+ keys.each( function(key) {
+ if (!Element.Layout.PROPERTIES.include(key)) return;
+ var value = this.get(key);
+ if (value != null) obj[key] = value;
+ }, this);
+ return obj;
+ },
+
+ toHash: function() {
+ var obj = this.toObject.apply(this, arguments);
+ return new Hash(obj);
+ },
+
+ toCSS: function() {
+ var args = $A(arguments);
+ var keys = (args.length === 0) ? Element.Layout.PROPERTIES :
+ args.join(' ').split(' ');
+ var css = {};
+
+ keys.each( function(key) {
+ if (!Element.Layout.PROPERTIES.include(key)) return;
+ if (Element.Layout.COMPOSITE_PROPERTIES.include(key)) return;
+
+ var value = this.get(key);
+ if (value != null) css[cssNameFor(key)] = value + 'px';
+ }, this);
+ return css;
+ },
+
+ inspect: function() {
+ return "#<Element.Layout>";
+ }
+ });
+
+ Object.extend(Element.Layout, {
+ PROPERTIES: $w('height width top left right bottom border-left border-right border-top border-bottom padding-left padding-right padding-top padding-bottom margin-top margin-bottom margin-left margin-right padding-box-width padding-box-height border-box-width border-box-height margin-box-width margin-box-height'),
+
+ COMPOSITE_PROPERTIES: $w('padding-box-width padding-box-height margin-box-width margin-box-height border-box-width border-box-height'),
+
+ COMPUTATIONS: {
+ 'height': function(element) {
+ if (!this._preComputing) this._begin();
+
+ var bHeight = this.get('border-box-height');
+ if (bHeight <= 0) {
+ if (!this._preComputing) this._end();
+ return 0;
+ }
+
+ var bTop = this.get('border-top'),
+ bBottom = this.get('border-bottom');
+
+ var pTop = this.get('padding-top'),
+ pBottom = this.get('padding-bottom');
+
+ if (!this._preComputing) this._end();
+
+ return bHeight - bTop - bBottom - pTop - pBottom;
+ },
+
+ 'width': function(element) {
+ if (!this._preComputing) this._begin();
+
+ var bWidth = this.get('border-box-width');
+ if (bWidth <= 0) {
+ if (!this._preComputing) this._end();
+ return 0;
+ }
+
+ var bLeft = this.get('border-left'),
+ bRight = this.get('border-right');
+
+ var pLeft = this.get('padding-left'),
+ pRight = this.get('padding-right');
+
+ if (!this._preComputing) this._end();
+
+ return bWidth - bLeft - bRight - pLeft - pRight;
+ },
+
+ 'padding-box-height': function(element) {
+ var height = this.get('height'),
+ pTop = this.get('padding-top'),
+ pBottom = this.get('padding-bottom');
+
+ return height + pTop + pBottom;
+ },
+
+ 'padding-box-width': function(element) {
+ var width = this.get('width'),
+ pLeft = this.get('padding-left'),
+ pRight = this.get('padding-right');
+
+ return width + pLeft + pRight;
+ },
+
+ 'border-box-height': function(element) {
+ if (!this._preComputing) this._begin();
+ var height = element.offsetHeight;
+ if (!this._preComputing) this._end();
+ return height;
+ },
+
+ 'border-box-width': function(element) {
+ if (!this._preComputing) this._begin();
+ var width = element.offsetWidth;
+ if (!this._preComputing) this._end();
+ return width;
+ },
+
+ 'margin-box-height': function(element) {
+ var bHeight = this.get('border-box-height'),
+ mTop = this.get('margin-top'),
+ mBottom = this.get('margin-bottom');
+
+ if (bHeight <= 0) return 0;
+
+ return bHeight + mTop + mBottom;
+ },
+
+ 'margin-box-width': function(element) {
+ var bWidth = this.get('border-box-width'),
+ mLeft = this.get('margin-left'),
+ mRight = this.get('margin-right');
+
+ if (bWidth <= 0) return 0;
+
+ return bWidth + mLeft + mRight;
+ },
+
+ 'top': function(element) {
+ var offset = element.positionedOffset();
+ return offset.top;
+ },
+
+ 'bottom': function(element) {
+ var offset = element.positionedOffset(),
+ parent = element.getOffsetParent(),
+ pHeight = parent.measure('height');
+
+ var mHeight = this.get('border-box-height');
+
+ return pHeight - mHeight - offset.top;
+ },
+
+ 'left': function(element) {
+ var offset = element.positionedOffset();
+ return offset.left;
+ },
+
+ 'right': function(element) {
+ var offset = element.positionedOffset(),
+ parent = element.getOffsetParent(),
+ pWidth = parent.measure('width');
+
+ var mWidth = this.get('border-box-width');
+
+ return pWidth - mWidth - offset.left;
+ },
+
+ 'padding-top': function(element) {
+ return getPixelValue(element, 'paddingTop');
+ },
+
+ 'padding-bottom': function(element) {
+ return getPixelValue(element, 'paddingBottom');
+ },
+
+ 'padding-left': function(element) {
+ return getPixelValue(element, 'paddingLeft');
+ },
+
+ 'padding-right': function(element) {
+ return getPixelValue(element, 'paddingRight');
+ },
+
+ 'border-top': function(element) {
+ return getPixelValue(element, 'borderTopWidth');
+ },
+
+ 'border-bottom': function(element) {
+ return getPixelValue(element, 'borderBottomWidth');
+ },
+
+ 'border-left': function(element) {
+ return getPixelValue(element, 'borderLeftWidth');
+ },
+
+ 'border-right': function(element) {
+ return getPixelValue(element, 'borderRightWidth');
+ },
+
+ 'margin-top': function(element) {
+ return getPixelValue(element, 'marginTop');
+ },
+
+ 'margin-bottom': function(element) {
+ return getPixelValue(element, 'marginBottom');
+ },
+
+ 'margin-left': function(element) {
+ return getPixelValue(element, 'marginLeft');
+ },
+
+ 'margin-right': function(element) {
+ return getPixelValue(element, 'marginRight');
+ }
+ }
+ });
+
+ if ('getBoundingClientRect' in document.documentElement) {
+ Object.extend(Element.Layout.COMPUTATIONS, {
+ 'right': function(element) {
+ var parent = hasLayout(element.getOffsetParent());
+ var rect = element.getBoundingClientRect(),
+ pRect = parent.getBoundingClientRect();
+
+ return (pRect.right - rect.right).round();
+ },
+
+ 'bottom': function(element) {
+ var parent = hasLayout(element.getOffsetParent());
+ var rect = element.getBoundingClientRect(),
+ pRect = parent.getBoundingClientRect();
+
+ return (pRect.bottom - rect.bottom).round();
+ }
+ });
+ }
+
+ Element.Offset = Class.create({
+ initialize: function(left, top) {
+ this.left = left.round();
+ this.top = top.round();
+
+ this[0] = this.left;
+ this[1] = this.top;
+ },
+
+ relativeTo: function(offset) {
+ return new Element.Offset(
+ this.left - offset.left,
+ this.top - offset.top
+ );
+ },
+
+ inspect: function() {
+ return "#<Element.Offset left: #{left} top: #{top}>".interpolate(this);
+ },
+
+ toString: function() {
+ return "[#{left}, #{top}]".interpolate(this);
+ },
+
+ toArray: function() {
+ return [this.left, this.top];
+ }
+ });
+
+ function getLayout(element, preCompute) {
+ return new Element.Layout(element, preCompute);
+ }
+
+ function measure(element, property) {
+ return $(element).getLayout().get(property);
+ }
+
+ function getDimensions(element) {
+ element = $(element);
+ var display = Element.getStyle(element, 'display');
+
+ if (display && display !== 'none') {
+ return { width: element.offsetWidth, height: element.offsetHeight };
+ }
+
+ var style = element.style;
+ var originalStyles = {
+ visibility: style.visibility,
+ position: style.position,
+ display: style.display
+ };
+
+ var newStyles = {
+ visibility: 'hidden',
+ display: 'block'
+ };
+
+ if (originalStyles.position !== 'fixed')
+ newStyles.position = 'absolute';
+
+ Element.setStyle(element, newStyles);
+
+ var dimensions = {
+ width: element.offsetWidth,
+ height: element.offsetHeight
+ };
+
+ Element.setStyle(element, originalStyles);
+
+ return dimensions;
+ }
+
+ function getOffsetParent(element) {
+ element = $(element);
+
+ if (isDocument(element) || isDetached(element) || isBody(element) || isHtml(element))
+ return $(document.body);
+
+ var isInline = (Element.getStyle(element, 'display') === 'inline');
+ if (!isInline && element.offsetParent) return $(element.offsetParent);
+
+ while ((element = element.parentNode) && element !== document.body) {
+ if (Element.getStyle(element, 'position') !== 'static') {
+ return isHtml(element) ? $(document.body) : $(element);
+ }
+ }
+
+ return $(document.body);
+ }
+
+
+ function cumulativeOffset(element) {
+ element = $(element);
+ var valueT = 0, valueL = 0;
+ if (element.parentNode) {
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ } while (element);
+ }
+ return new Element.Offset(valueL, valueT);
+ }
+
+ function positionedOffset(element) {
+ element = $(element);
+
+ var layout = element.getLayout();
+
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ if (element) {
+ if (isBody(element)) break;
+ var p = Element.getStyle(element, 'position');
+ if (p !== 'static') break;
+ }
+ } while (element);
+
+ valueL -= layout.get('margin-top');
+ valueT -= layout.get('margin-left');
+
+ return new Element.Offset(valueL, valueT);
+ }
+
+ function cumulativeScrollOffset(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.scrollTop || 0;
+ valueL += element.scrollLeft || 0;
+ element = element.parentNode;
+ } while (element);
+ return new Element.Offset(valueL, valueT);
+ }
+
+ function viewportOffset(forElement) {
+ element = $(element);
+ var valueT = 0, valueL = 0, docBody = document.body;
+
+ var element = forElement;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ if (element.offsetParent == docBody &&
+ Element.getStyle(element, 'position') == 'absolute') break;
+ } while (element = element.offsetParent);
+
+ element = forElement;
+ do {
+ if (element != docBody) {
+ valueT -= element.scrollTop || 0;
+ valueL -= element.scrollLeft || 0;
+ }
+ } while (element = element.parentNode);
+ return new Element.Offset(valueL, valueT);
+ }
+
+ function absolutize(element) {
+ element = $(element);
+
+ if (Element.getStyle(element, 'position') === 'absolute') {
+ return element;
+ }
+
+ var offsetParent = getOffsetParent(element);
+ var eOffset = element.viewportOffset(),
+ pOffset = offsetParent.viewportOffset();
+
+ var offset = eOffset.relativeTo(pOffset);
+ var layout = element.getLayout();
+
+ element.store('prototype_absolutize_original_styles', {
+ left: element.getStyle('left'),
+ top: element.getStyle('top'),
+ width: element.getStyle('width'),
+ height: element.getStyle('height')
+ });
+
+ element.setStyle({
+ position: 'absolute',
+ top: offset.top + 'px',
+ left: offset.left + 'px',
+ width: layout.get('width') + 'px',
+ height: layout.get('height') + 'px'
+ });
+
+ return element;
+ }
+
+ function relativize(element) {
+ element = $(element);
+ if (Element.getStyle(element, 'position') === 'relative') {
+ return element;
+ }
+
+ var originalStyles =
+ element.retrieve('prototype_absolutize_original_styles');
+
+ if (originalStyles) element.setStyle(originalStyles);
+ return element;
+ }
+
+ if (Prototype.Browser.IE) {
+ getOffsetParent = getOffsetParent.wrap(
+ function(proceed, element) {
+ element = $(element);
+
+ if (isDocument(element) || isDetached(element) || isBody(element) || isHtml(element))
+ return $(document.body);
+
+ var position = element.getStyle('position');
+ if (position !== 'static') return proceed(element);
+
+ element.setStyle({ position: 'relative' });
+ var value = proceed(element);
+ element.setStyle({ position: position });
+ return value;
+ }
+ );
+
+ positionedOffset = positionedOffset.wrap(function(proceed, element) {
+ element = $(element);
+ if (!element.parentNode) return new Element.Offset(0, 0);
+ var position = element.getStyle('position');
+ if (position !== 'static') return proceed(element);
+
+ var offsetParent = element.getOffsetParent();
+ if (offsetParent && offsetParent.getStyle('position') === 'fixed')
+ hasLayout(offsetParent);
+
+ element.setStyle({ position: 'relative' });
+ var value = proceed(element);
+ element.setStyle({ position: position });
+ return value;
+ });
+ } else if (Prototype.Browser.Webkit) {
+ cumulativeOffset = function(element) {
+ element = $(element);
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ if (element.offsetParent == document.body)
+ if (Element.getStyle(element, 'position') == 'absolute') break;
+
+ element = element.offsetParent;
+ } while (element);
+
+ return new Element.Offset(valueL, valueT);
+ };
+ }
+
+
+ Element.addMethods({
+ getLayout: getLayout,
+ measure: measure,
+ getDimensions: getDimensions,
+ getOffsetParent: getOffsetParent,
+ cumulativeOffset: cumulativeOffset,
+ positionedOffset: positionedOffset,
+ cumulativeScrollOffset: cumulativeScrollOffset,
+ viewportOffset: viewportOffset,
+ absolutize: absolutize,
+ relativize: relativize
+ });
+
+ function isBody(element) {
+ return element.nodeName.toUpperCase() === 'BODY';
+ }
+
+ function isHtml(element) {
+ return element.nodeName.toUpperCase() === 'HTML';
+ }
+
+ function isDocument(element) {
+ return element.nodeType === Node.DOCUMENT_NODE;
+ }
+
+ function isDetached(element) {
+ return element !== document.body &&
+ !Element.descendantOf(element, document.body);
+ }
+
+ if ('getBoundingClientRect' in document.documentElement) {
+ Element.addMethods({
+ viewportOffset: function(element) {
+ element = $(element);
+ if (isDetached(element)) return new Element.Offset(0, 0);
+
+ var rect = element.getBoundingClientRect(),
+ docEl = document.documentElement;
+ return new Element.Offset(rect.left - docEl.clientLeft,
+ rect.top - docEl.clientTop);
+ }
+ });
+ }
+})();
+window.$$ = function() {
+ var expression = $A(arguments).join(', ');
+ return Prototype.Selector.select(expression, document);
+};
+
+Prototype.Selector = (function() {
+
+ function select() {
+ throw new Error('Method "Prototype.Selector.select" must be defined.');
+ }
+
+ function match() {
+ throw new Error('Method "Prototype.Selector.match" must be defined.');
+ }
+
+ function find(elements, expression, index) {
+ index = index || 0;
+ var match = Prototype.Selector.match, length = elements.length, matchIndex = 0, i;
+
+ for (i = 0; i < length; i++) {
+ if (match(elements[i], expression) && index == matchIndex++) {
+ return Element.extend(elements[i]);
+ }
+ }
+ }
+
+ function extendElements(elements) {
+ for (var i = 0, length = elements.length; i < length; i++) {
+ Element.extend(elements[i]);
+ }
+ return elements;
+ }
+
+
+ var K = Prototype.K;
+
+ return {
+ select: select,
+ match: match,
+ find: find,
+ extendElements: (Element.extend === K) ? K : extendElements,
+ extendElement: Element.extend
+ };
+})();
+Prototype._original_property = window.Sizzle;
+/*!
+ * Sizzle CSS Selector Engine - v1.0
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+ done = 0,
+ toString = Object.prototype.toString,
+ hasDuplicate = false,
+ baseHasDuplicate = true;
+
+[0, 0].sort(function(){
+ baseHasDuplicate = false;
+ return 0;
+});
+
+var Sizzle = function(selector, context, results, seed) {
+ results = results || [];
+ var origContext = context = context || document;
+
+ if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+ return [];
+ }
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ var parts = [], m, set, checkSet, check, mode, extra, prune = true, contextXML = isXML(context),
+ soFar = selector;
+
+ while ( (chunker.exec(""), m = chunker.exec(soFar)) !== null ) {
+ soFar = m[3];
+
+ parts.push( m[1] );
+
+ if ( m[2] ) {
+ extra = m[3];
+ break;
+ }
+ }
+
+ if ( parts.length > 1 && origPOS.exec( selector ) ) {
+ if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+ set = posProcess( parts[0] + parts[1], context );
+ } else {
+ set = Expr.relative[ parts[0] ] ?
+ [ context ] :
+ Sizzle( parts.shift(), context );
+
+ while ( parts.length ) {
+ selector = parts.shift();
+
+ if ( Expr.relative[ selector ] )
+ selector += parts.shift();
+
+ set = posProcess( selector, set );
+ }
+ }
+ } else {
+ if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+ Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
+ var ret = Sizzle.find( parts.shift(), context, contextXML );
+ context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0];
+ }
+
+ if ( context ) {
+ var ret = seed ?
+ { expr: parts.pop(), set: makeArray(seed) } :
+ Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+ set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set;
+
+ if ( parts.length > 0 ) {
+ checkSet = makeArray(set);
+ } else {
+ prune = false;
+ }
+
+ while ( parts.length ) {
+ var cur = parts.pop(), pop = cur;
+
+ if ( !Expr.relative[ cur ] ) {
+ cur = "";
+ } else {
+ pop = parts.pop();
+ }
+
+ if ( pop == null ) {
+ pop = context;
+ }
+
+ Expr.relative[ cur ]( checkSet, pop, contextXML );
+ }
+ } else {
+ checkSet = parts = [];
+ }
+ }
+
+ if ( !checkSet ) {
+ checkSet = set;
+ }
+
+ if ( !checkSet ) {
+ throw "Syntax error, unrecognized expression: " + (cur || selector);
+ }
+
+ if ( toString.call(checkSet) === "[object Array]" ) {
+ if ( !prune ) {
+ results.push.apply( results, checkSet );
+ } else if ( context && context.nodeType === 1 ) {
+ for ( var i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) {
+ results.push( set[i] );
+ }
+ }
+ } else {
+ for ( var i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+ results.push( set[i] );
+ }
+ }
+ }
+ } else {
+ makeArray( checkSet, results );
+ }
+
+ if ( extra ) {
+ Sizzle( extra, origContext, results, seed );
+ Sizzle.uniqueSort( results );
+ }
+
+ return results;
+};
+
+Sizzle.uniqueSort = function(results){
+ if ( sortOrder ) {
+ hasDuplicate = baseHasDuplicate;
+ results.sort(sortOrder);
+
+ if ( hasDuplicate ) {
+ for ( var i = 1; i < results.length; i++ ) {
+ if ( results[i] === results[i-1] ) {
+ results.splice(i--, 1);
+ }
+ }
+ }
+ }
+
+ return results;
+};
+
+Sizzle.matches = function(expr, set){
+ return Sizzle(expr, null, null, set);
+};
+
+Sizzle.find = function(expr, context, isXML){
+ var set, match;
+
+ if ( !expr ) {
+ return [];
+ }
+
+ for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
+ var type = Expr.order[i], match;
+
+ if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+ var left = match[1];
+ match.splice(1,1);
+
+ if ( left.substr( left.length - 1 ) !== "\\" ) {
+ match[1] = (match[1] || "").replace(/\\/g, "");
+ set = Expr.find[ type ]( match, context, isXML );
+ if ( set != null ) {
+ expr = expr.replace( Expr.match[ type ], "" );
+ break;
+ }
+ }
+ }
+ }
+
+ if ( !set ) {
+ set = context.getElementsByTagName("*");
+ }
+
+ return {set: set, expr: expr};
+};
+
+Sizzle.filter = function(expr, set, inplace, not){
+ var old = expr, result = [], curLoop = set, match, anyFound,
+ isXMLFilter = set && set[0] && isXML(set[0]);
+
+ while ( expr && set.length ) {
+ for ( var type in Expr.filter ) {
+ if ( (match = Expr.match[ type ].exec( expr )) != null ) {
+ var filter = Expr.filter[ type ], found, item;
+ anyFound = false;
+
+ if ( curLoop == result ) {
+ result = [];
+ }
+
+ if ( Expr.preFilter[ type ] ) {
+ match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+ if ( !match ) {
+ anyFound = found = true;
+ } else if ( match === true ) {
+ continue;
+ }
+ }
+
+ if ( match ) {
+ for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
+ if ( item ) {
+ found = filter( item, match, i, curLoop );
+ var pass = not ^ !!found;
+
+ if ( inplace && found != null ) {
+ if ( pass ) {
+ anyFound = true;
+ } else {
+ curLoop[i] = false;
+ }
+ } else if ( pass ) {
+ result.push( item );
+ anyFound = true;
+ }
+ }
+ }
+ }
+
+ if ( found !== undefined ) {
+ if ( !inplace ) {
+ curLoop = result;
+ }
+
+ expr = expr.replace( Expr.match[ type ], "" );
+
+ if ( !anyFound ) {
+ return [];
+ }
+
+ break;
+ }
+ }
+ }
+
+ if ( expr == old ) {
+ if ( anyFound == null ) {
+ throw "Syntax error, unrecognized expression: " + expr;
+ } else {
+ break;
+ }
+ }
+
+ old = expr;
+ }
+
+ return curLoop;
+};
+
+var Expr = Sizzle.selectors = {
+ order: [ "ID", "NAME", "TAG" ],
+ match: {
+ ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
+ CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
+ NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,
+ ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
+ TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,
+ CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
+ POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
+ PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
+ },
+ leftMatch: {},
+ attrMap: {
+ "class": "className",
+ "for": "htmlFor"
+ },
+ attrHandle: {
+ href: function(elem){
+ return elem.getAttribute("href");
+ }
+ },
+ relative: {
+ "+": function(checkSet, part, isXML){
+ var isPartStr = typeof part === "string",
+ isTag = isPartStr && !/\W/.test(part),
+ isPartStrNotTag = isPartStr && !isTag;
+
+ if ( isTag && !isXML ) {
+ part = part.toUpperCase();
+ }
+
+ for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+ if ( (elem = checkSet[i]) ) {
+ while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+ checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ?
+ elem || false :
+ elem === part;
+ }
+ }
+
+ if ( isPartStrNotTag ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ },
+ ">": function(checkSet, part, isXML){
+ var isPartStr = typeof part === "string";
+
+ if ( isPartStr && !/\W/.test(part) ) {
+ part = isXML ? part : part.toUpperCase();
+
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ var parent = elem.parentNode;
+ checkSet[i] = parent.nodeName === part ? parent : false;
+ }
+ }
+ } else {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ checkSet[i] = isPartStr ?
+ elem.parentNode :
+ elem.parentNode === part;
+ }
+ }
+
+ if ( isPartStr ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ }
+ },
+ "": function(checkSet, part, isXML){
+ var doneName = done++, checkFn = dirCheck;
+
+ if ( !/\W/.test(part) ) {
+ var nodeCheck = part = isXML ? part : part.toUpperCase();
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
+ },
+ "~": function(checkSet, part, isXML){
+ var doneName = done++, checkFn = dirCheck;
+
+ if ( typeof part === "string" && !/\W/.test(part) ) {
+ var nodeCheck = part = isXML ? part : part.toUpperCase();
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
+ }
+ },
+ find: {
+ ID: function(match, context, isXML){
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ return m ? [m] : [];
+ }
+ },
+ NAME: function(match, context, isXML){
+ if ( typeof context.getElementsByName !== "undefined" ) {
+ var ret = [], results = context.getElementsByName(match[1]);
+
+ for ( var i = 0, l = results.length; i < l; i++ ) {
+ if ( results[i].getAttribute("name") === match[1] ) {
+ ret.push( results[i] );
+ }
+ }
+
+ return ret.length === 0 ? null : ret;
+ }
+ },
+ TAG: function(match, context){
+ return context.getElementsByTagName(match[1]);
+ }
+ },
+ preFilter: {
+ CLASS: function(match, curLoop, inplace, result, not, isXML){
+ match = " " + match[1].replace(/\\/g, "") + " ";
+
+ if ( isXML ) {
+ return match;
+ }
+
+ for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+ if ( elem ) {
+ if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) {
+ if ( !inplace )
+ result.push( elem );
+ } else if ( inplace ) {
+ curLoop[i] = false;
+ }
+ }
+ }
+
+ return false;
+ },
+ ID: function(match){
+ return match[1].replace(/\\/g, "");
+ },
+ TAG: function(match, curLoop){
+ for ( var i = 0; curLoop[i] === false; i++ ){}
+ return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
+ },
+ CHILD: function(match){
+ if ( match[1] == "nth" ) {
+ var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
+ match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" ||
+ !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+ match[2] = (test[1] + (test[2] || 1)) - 0;
+ match[3] = test[3] - 0;
+ }
+
+ match[0] = done++;
+
+ return match;
+ },
+ ATTR: function(match, curLoop, inplace, result, not, isXML){
+ var name = match[1].replace(/\\/g, "");
+
+ if ( !isXML && Expr.attrMap[name] ) {
+ match[1] = Expr.attrMap[name];
+ }
+
+ if ( match[2] === "~=" ) {
+ match[4] = " " + match[4] + " ";
+ }
+
+ return match;
+ },
+ PSEUDO: function(match, curLoop, inplace, result, not){
+ if ( match[1] === "not" ) {
+ if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+ match[3] = Sizzle(match[3], null, null, curLoop);
+ } else {
+ var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+ if ( !inplace ) {
+ result.push.apply( result, ret );
+ }
+ return false;
+ }
+ } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+ return true;
+ }
+
+ return match;
+ },
+ POS: function(match){
+ match.unshift( true );
+ return match;
+ }
+ },
+ filters: {
+ enabled: function(elem){
+ return elem.disabled === false && elem.type !== "hidden";
+ },
+ disabled: function(elem){
+ return elem.disabled === true;
+ },
+ checked: function(elem){
+ return elem.checked === true;
+ },
+ selected: function(elem){
+ elem.parentNode.selectedIndex;
+ return elem.selected === true;
+ },
+ parent: function(elem){
+ return !!elem.firstChild;
+ },
+ empty: function(elem){
+ return !elem.firstChild;
+ },
+ has: function(elem, i, match){
+ return !!Sizzle( match[3], elem ).length;
+ },
+ header: function(elem){
+ return /h\d/i.test( elem.nodeName );
+ },
+ text: function(elem){
+ return "text" === elem.type;
+ },
+ radio: function(elem){
+ return "radio" === elem.type;
+ },
+ checkbox: function(elem){
+ return "checkbox" === elem.type;
+ },
+ file: function(elem){
+ return "file" === elem.type;
+ },
+ password: function(elem){
+ return "password" === elem.type;
+ },
+ submit: function(elem){
+ return "submit" === elem.type;
+ },
+ image: function(elem){
+ return "image" === elem.type;
+ },
+ reset: function(elem){
+ return "reset" === elem.type;
+ },
+ button: function(elem){
+ return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON";
+ },
+ input: function(elem){
+ return /input|select|textarea|button/i.test(elem.nodeName);
+ }
+ },
+ setFilters: {
+ first: function(elem, i){
+ return i === 0;
+ },
+ last: function(elem, i, match, array){
+ return i === array.length - 1;
+ },
+ even: function(elem, i){
+ return i % 2 === 0;
+ },
+ odd: function(elem, i){
+ return i % 2 === 1;
+ },
+ lt: function(elem, i, match){
+ return i < match[3] - 0;
+ },
+ gt: function(elem, i, match){
+ return i > match[3] - 0;
+ },
+ nth: function(elem, i, match){
+ return match[3] - 0 == i;
+ },
+ eq: function(elem, i, match){
+ return match[3] - 0 == i;
+ }
+ },
+ filter: {
+ PSEUDO: function(elem, match, i, array){
+ var name = match[1], filter = Expr.filters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ } else if ( name === "contains" ) {
+ return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0;
+ } else if ( name === "not" ) {
+ var not = match[3];
+
+ for ( var i = 0, l = not.length; i < l; i++ ) {
+ if ( not[i] === elem ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+ },
+ CHILD: function(elem, match){
+ var type = match[1], node = elem;
+ switch (type) {
+ case 'only':
+ case 'first':
+ while ( (node = node.previousSibling) ) {
+ if ( node.nodeType === 1 ) return false;
+ }
+ if ( type == 'first') return true;
+ node = elem;
+ case 'last':
+ while ( (node = node.nextSibling) ) {
+ if ( node.nodeType === 1 ) return false;
+ }
+ return true;
+ case 'nth':
+ var first = match[2], last = match[3];
+
+ if ( first == 1 && last == 0 ) {
+ return true;
+ }
+
+ var doneName = match[0],
+ parent = elem.parentNode;
+
+ if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
+ var count = 0;
+ for ( node = parent.firstChild; node; node = node.nextSibling ) {
+ if ( node.nodeType === 1 ) {
+ node.nodeIndex = ++count;
+ }
+ }
+ parent.sizcache = doneName;
+ }
+
+ var diff = elem.nodeIndex - last;
+ if ( first == 0 ) {
+ return diff == 0;
+ } else {
+ return ( diff % first == 0 && diff / first >= 0 );
+ }
+ }
+ },
+ ID: function(elem, match){
+ return elem.nodeType === 1 && elem.getAttribute("id") === match;
+ },
+ TAG: function(elem, match){
+ return (match === "*" && elem.nodeType === 1) || elem.nodeName === match;
+ },
+ CLASS: function(elem, match){
+ return (" " + (elem.className || elem.getAttribute("class")) + " ")
+ .indexOf( match ) > -1;
+ },
+ ATTR: function(elem, match){
+ var name = match[1],
+ result = Expr.attrHandle[ name ] ?
+ Expr.attrHandle[ name ]( elem ) :
+ elem[ name ] != null ?
+ elem[ name ] :
+ elem.getAttribute( name ),
+ value = result + "",
+ type = match[2],
+ check = match[4];
+
+ return result == null ?
+ type === "!=" :
+ type === "=" ?
+ value === check :
+ type === "*=" ?
+ value.indexOf(check) >= 0 :
+ type === "~=" ?
+ (" " + value + " ").indexOf(check) >= 0 :
+ !check ?
+ value && result !== false :
+ type === "!=" ?
+ value != check :
+ type === "^=" ?
+ value.indexOf(check) === 0 :
+ type === "$=" ?
+ value.substr(value.length - check.length) === check :
+ type === "|=" ?
+ value === check || value.substr(0, check.length + 1) === check + "-" :
+ false;
+ },
+ POS: function(elem, match, i, array){
+ var name = match[2], filter = Expr.setFilters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ }
+ }
+ }
+};
+
+var origPOS = Expr.match.POS;
+
+for ( var type in Expr.match ) {
+ Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
+ Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source );
+}
+
+var makeArray = function(array, results) {
+ array = Array.prototype.slice.call( array, 0 );
+
+ if ( results ) {
+ results.push.apply( results, array );
+ return results;
+ }
+
+ return array;
+};
+
+try {
+ Array.prototype.slice.call( document.documentElement.childNodes, 0 );
+
+} catch(e){
+ makeArray = function(array, results) {
+ var ret = results || [];
+
+ if ( toString.call(array) === "[object Array]" ) {
+ Array.prototype.push.apply( ret, array );
+ } else {
+ if ( typeof array.length === "number" ) {
+ for ( var i = 0, l = array.length; i < l; i++ ) {
+ ret.push( array[i] );
+ }
+ } else {
+ for ( var i = 0; array[i]; i++ ) {
+ ret.push( array[i] );
+ }
+ }
+ }
+
+ return ret;
+ };
+}
+
+var sortOrder;
+
+if ( document.documentElement.compareDocumentPosition ) {
+ sortOrder = function( a, b ) {
+ if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+ if ( a == b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ }
+
+ var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+} else if ( "sourceIndex" in document.documentElement ) {
+ sortOrder = function( a, b ) {
+ if ( !a.sourceIndex || !b.sourceIndex ) {
+ if ( a == b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ }
+
+ var ret = a.sourceIndex - b.sourceIndex;
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+} else if ( document.createRange ) {
+ sortOrder = function( a, b ) {
+ if ( !a.ownerDocument || !b.ownerDocument ) {
+ if ( a == b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ }
+
+ var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
+ aRange.setStart(a, 0);
+ aRange.setEnd(a, 0);
+ bRange.setStart(b, 0);
+ bRange.setEnd(b, 0);
+ var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+}
+
+(function(){
+ var form = document.createElement("div"),
+ id = "script" + (new Date).getTime();
+ form.innerHTML = "<a name='" + id + "'/>";
+
+ var root = document.documentElement;
+ root.insertBefore( form, root.firstChild );
+
+ if ( !!document.getElementById( id ) ) {
+ Expr.find.ID = function(match, context, isXML){
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
+ }
+ };
+
+ Expr.filter.ID = function(elem, match){
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+ return elem.nodeType === 1 && node && node.nodeValue === match;
+ };
+ }
+
+ root.removeChild( form );
+ root = form = null; // release memory in IE
+})();
+
+(function(){
+
+ var div = document.createElement("div");
+ div.appendChild( document.createComment("") );
+
+ if ( div.getElementsByTagName("*").length > 0 ) {
+ Expr.find.TAG = function(match, context){
+ var results = context.getElementsByTagName(match[1]);
+
+ if ( match[1] === "*" ) {
+ var tmp = [];
+
+ for ( var i = 0; results[i]; i++ ) {
+ if ( results[i].nodeType === 1 ) {
+ tmp.push( results[i] );
+ }
+ }
+
+ results = tmp;
+ }
+
+ return results;
+ };
+ }
+
+ div.innerHTML = "<a href='#'></a>";
+ if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+ div.firstChild.getAttribute("href") !== "#" ) {
+ Expr.attrHandle.href = function(elem){
+ return elem.getAttribute("href", 2);
+ };
+ }
+
+ div = null; // release memory in IE
+})();
+
+if ( document.querySelectorAll ) (function(){
+ var oldSizzle = Sizzle, div = document.createElement("div");
+ div.innerHTML = "<p class='TEST'></p>";
+
+ if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+ return;
+ }
+
+ Sizzle = function(query, context, extra, seed){
+ context = context || document;
+
+ if ( !seed && context.nodeType === 9 && !isXML(context) ) {
+ try {
+ return makeArray( context.querySelectorAll(query), extra );
+ } catch(e){}
+ }
+
+ return oldSizzle(query, context, extra, seed);
+ };
+
+ for ( var prop in oldSizzle ) {
+ Sizzle[ prop ] = oldSizzle[ prop ];
+ }
+
+ div = null; // release memory in IE
+})();
+
+if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){
+ var div = document.createElement("div");
+ div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+ if ( div.getElementsByClassName("e").length === 0 )
+ return;
+
+ div.lastChild.className = "e";
+
+ if ( div.getElementsByClassName("e").length === 1 )
+ return;
+
+ Expr.order.splice(1, 0, "CLASS");
+ Expr.find.CLASS = function(match, context, isXML) {
+ if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+ return context.getElementsByClassName(match[1]);
+ }
+ };
+
+ div = null; // release memory in IE
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ var sibDir = dir == "previousSibling" && !isXML;
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ if ( sibDir && elem.nodeType === 1 ){
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ elem = elem[dir];
+ var match = false;
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 && !isXML ){
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if ( elem.nodeName === cur ) {
+ match = elem;
+ break;
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ var sibDir = dir == "previousSibling" && !isXML;
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ if ( sibDir && elem.nodeType === 1 ) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ elem = elem[dir];
+ var match = false;
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 ) {
+ if ( !isXML ) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ if ( typeof cur !== "string" ) {
+ if ( elem === cur ) {
+ match = true;
+ break;
+ }
+
+ } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+ match = elem;
+ break;
+ }
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+var contains = document.compareDocumentPosition ? function(a, b){
+ return a.compareDocumentPosition(b) & 16;
+} : function(a, b){
+ return a !== b && (a.contains ? a.contains(b) : true);
+};
+
+var isXML = function(elem){
+ return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
+ !!elem.ownerDocument && elem.ownerDocument.documentElement.nodeName !== "HTML";
+};
+
+var posProcess = function(selector, context){
+ var tmpSet = [], later = "", match,
+ root = context.nodeType ? [context] : context;
+
+ while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+ later += match[0];
+ selector = selector.replace( Expr.match.PSEUDO, "" );
+ }
+
+ selector = Expr.relative[selector] ? selector + "*" : selector;
+
+ for ( var i = 0, l = root.length; i < l; i++ ) {
+ Sizzle( selector, root[i], tmpSet );
+ }
+
+ return Sizzle.filter( later, tmpSet );
+};
+
+
+window.Sizzle = Sizzle;
+
+})();
+
+;(function(engine) {
+ var extendElements = Prototype.Selector.extendElements;
+
+ function select(selector, scope) {
+ return extendElements(engine(selector, scope || document));
+ }
+
+ function match(element, selector) {
+ return engine.matches(selector, [element]).length == 1;
+ }
+
+ Prototype.Selector.engine = engine;
+ Prototype.Selector.select = select;
+ Prototype.Selector.match = match;
+})(Sizzle);
+
+window.Sizzle = Prototype._original_property;
+delete Prototype._original_property;
+
+var Form = {
+ reset: function(form) {
+ form = $(form);
+ form.reset();
+ return form;
+ },
+
+ serializeElements: function(elements, options) {
+ if (typeof options != 'object') options = { hash: !!options };
+ else if (Object.isUndefined(options.hash)) options.hash = true;
+ var key, value, submitted = false, submit = options.submit, accumulator, initial;
+
+ if (options.hash) {
+ initial = {};
+ accumulator = function(result, key, value) {
+ if (key in result) {
+ if (!Object.isArray(result[key])) result[key] = [result[key]];
+ result[key].push(value);
+ } else result[key] = value;
+ return result;
+ };
+ } else {
+ initial = '';
+ accumulator = function(result, key, value) {
+ return result + (result ? '&' : '') + encodeURIComponent(key) + '=' + encodeURIComponent(value);
+ }
+ }
+
+ return elements.inject(initial, function(result, element) {
+ if (!element.disabled && element.name) {
+ key = element.name; value = $(element).getValue();
+ if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
+ submit !== false && (!submit || key == submit) && (submitted = true)))) {
+ result = accumulator(result, key, value);
+ }
+ }
+ return result;
+ });
+ }
+};
+
+Form.Methods = {
+ serialize: function(form, options) {
+ return Form.serializeElements(Form.getElements(form), options);
+ },
+
+ getElements: function(form) {
+ var elements = $(form).getElementsByTagName('*'),
+ element,
+ arr = [ ],
+ serializers = Form.Element.Serializers;
+ for (var i = 0; element = elements[i]; i++) {
+ arr.push(element);
+ }
+ return arr.inject([], function(elements, child) {
+ if (serializers[child.tagName.toLowerCase()])
+ elements.push(Element.extend(child));
+ return elements;
+ })
+ },
+
+ getInputs: function(form, typeName, name) {
+ form = $(form);
+ var inputs = form.getElementsByTagName('input');
+
+ if (!typeName && !name) return $A(inputs).map(Element.extend);
+
+ for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
+ var input = inputs[i];
+ if ((typeName && input.type != typeName) || (name && input.name != name))
+ continue;
+ matchingInputs.push(Element.extend(input));
+ }
+
+ return matchingInputs;
+ },
+
+ disable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('disable');
+ return form;
+ },
+
+ enable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('enable');
+ return form;
+ },
+
+ findFirstElement: function(form) {
+ var elements = $(form).getElements().findAll(function(element) {
+ return 'hidden' != element.type && !element.disabled;
+ });
+ var firstByIndex = elements.findAll(function(element) {
+ return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
+ }).sortBy(function(element) { return element.tabIndex }).first();
+
+ return firstByIndex ? firstByIndex : elements.find(function(element) {
+ return /^(?:input|select|textarea)$/i.test(element.tagName);
+ });
+ },
+
+ focusFirstElement: function(form) {
+ form = $(form);
+ var element = form.findFirstElement();
+ if (element) element.activate();
+ return form;
+ },
+
+ request: function(form, options) {
+ form = $(form), options = Object.clone(options || { });
+
+ var params = options.parameters, action = form.readAttribute('action') || '';
+ if (action.blank()) action = window.location.href;
+ options.parameters = form.serialize(true);
+
+ if (params) {
+ if (Object.isString(params)) params = params.toQueryParams();
+ Object.extend(options.parameters, params);
+ }
+
+ if (form.hasAttribute('method') && !options.method)
+ options.method = form.method;
+
+ return new Ajax.Request(action, options);
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+
+Form.Element = {
+ focus: function(element) {
+ $(element).focus();
+ return element;
+ },
+
+ select: function(element) {
+ $(element).select();
+ return element;
+ }
+};
+
+Form.Element.Methods = {
+
+ serialize: function(element) {
+ element = $(element);
+ if (!element.disabled && element.name) {
+ var value = element.getValue();
+ if (value != undefined) {
+ var pair = { };
+ pair[element.name] = value;
+ return Object.toQueryString(pair);
+ }
+ }
+ return '';
+ },
+
+ getValue: function(element) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ return Form.Element.Serializers[method](element);
+ },
+
+ setValue: function(element, value) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ Form.Element.Serializers[method](element, value);
+ return element;
+ },
+
+ clear: function(element) {
+ $(element).value = '';
+ return element;
+ },
+
+ present: function(element) {
+ return $(element).value != '';
+ },
+
+ activate: function(element) {
+ element = $(element);
+ try {
+ element.focus();
+ if (element.select && (element.tagName.toLowerCase() != 'input' ||
+ !(/^(?:button|reset|submit)$/i.test(element.type))))
+ element.select();
+ } catch (e) { }
+ return element;
+ },
+
+ disable: function(element) {
+ element = $(element);
+ element.disabled = true;
+ return element;
+ },
+
+ enable: function(element) {
+ element = $(element);
+ element.disabled = false;
+ return element;
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+var Field = Form.Element;
+
+var $F = Form.Element.Methods.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element.Serializers = (function() {
+ function input(element, value) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ return inputSelector(element, value);
+ default:
+ return valueSelector(element, value);
+ }
+ }
+
+ function inputSelector(element, value) {
+ if (Object.isUndefined(value))
+ return element.checked ? element.value : null;
+ else element.checked = !!value;
+ }
+
+ function valueSelector(element, value) {
+ if (Object.isUndefined(value)) return element.value;
+ else element.value = value;
+ }
+
+ function select(element, value) {
+ if (Object.isUndefined(value))
+ return (element.type === 'select-one' ? selectOne : selectMany)(element);
+
+ var opt, currentValue, single = !Object.isArray(value);
+ for (var i = 0, length = element.length; i < length; i++) {
+ opt = element.options[i];
+ currentValue = this.optionValue(opt);
+ if (single) {
+ if (currentValue == value) {
+ opt.selected = true;
+ return;
+ }
+ }
+ else opt.selected = value.include(currentValue);
+ }
+ }
+
+ function selectOne(element) {
+ var index = element.selectedIndex;
+ return index >= 0 ? optionValue(element.options[index]) : null;
+ }
+
+ function selectMany(element) {
+ var values, length = element.length;
+ if (!length) return null;
+
+ for (var i = 0, values = []; i < length; i++) {
+ var opt = element.options[i];
+ if (opt.selected) values.push(optionValue(opt));
+ }
+ return values;
+ }
+
+ function optionValue(opt) {
+ return Element.hasAttribute(opt, 'value') ? opt.value : opt.text;
+ }
+
+ return {
+ input: input,
+ inputSelector: inputSelector,
+ textarea: valueSelector,
+ select: select,
+ selectOne: selectOne,
+ selectMany: selectMany,
+ optionValue: optionValue,
+ button: valueSelector
+ };
+})();
+
+/*--------------------------------------------------------------------------*/
+
+
+Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
+ initialize: function($super, element, frequency, callback) {
+ $super(callback, frequency);
+ this.element = $(element);
+ this.lastValue = this.getValue();
+ },
+
+ execute: function() {
+ var value = this.getValue();
+ if (Object.isString(this.lastValue) && Object.isString(value) ?
+ this.lastValue != value : String(this.lastValue) != String(value)) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ }
+});
+
+Form.Element.Observer = Class.create(Abstract.TimedObserver, {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.Observer = Class.create(Abstract.TimedObserver, {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = Class.create({
+ initialize: function(element, callback) {
+ this.element = $(element);
+ this.callback = callback;
+
+ this.lastValue = this.getValue();
+ if (this.element.tagName.toLowerCase() == 'form')
+ this.registerFormCallbacks();
+ else
+ this.registerCallback(this.element);
+ },
+
+ onElementEvent: function() {
+ var value = this.getValue();
+ if (this.lastValue != value) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ },
+
+ registerFormCallbacks: function() {
+ Form.getElements(this.element).each(this.registerCallback, this);
+ },
+
+ registerCallback: function(element) {
+ if (element.type) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ Event.observe(element, 'click', this.onElementEvent.bind(this));
+ break;
+ default:
+ Event.observe(element, 'change', this.onElementEvent.bind(this));
+ break;
+ }
+ }
+ }
+});
+
+Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.EventObserver = Class.create(Abstract.EventObserver, {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+(function() {
+
+ var Event = {
+ KEY_BACKSPACE: 8,
+ KEY_TAB: 9,
+ KEY_RETURN: 13,
+ KEY_ESC: 27,
+ KEY_LEFT: 37,
+ KEY_UP: 38,
+ KEY_RIGHT: 39,
+ KEY_DOWN: 40,
+ KEY_DELETE: 46,
+ KEY_HOME: 36,
+ KEY_END: 35,
+ KEY_PAGEUP: 33,
+ KEY_PAGEDOWN: 34,
+ KEY_INSERT: 45,
+
+ cache: {}
+ };
+
+ var docEl = document.documentElement;
+ var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED = 'onmouseenter' in docEl
+ && 'onmouseleave' in docEl;
+
+
+
+ var isIELegacyEvent = function(event) { return false; };
+
+ if (window.attachEvent) {
+ if (window.addEventListener) {
+ isIELegacyEvent = function(event) {
+ return !(event instanceof window.Event);
+ };
+ } else {
+ isIELegacyEvent = function(event) { return true; };
+ }
+ }
+
+ var _isButton;
+
+ function _isButtonForDOMEvents(event, code) {
+ return event.which ? (event.which === code + 1) : (event.button === code);
+ }
+
+ var legacyButtonMap = { 0: 1, 1: 4, 2: 2 };
+ function _isButtonForLegacyEvents(event, code) {
+ return event.button === legacyButtonMap[code];
+ }
+
+ function _isButtonForWebKit(event, code) {
+ switch (code) {
+ case 0: return event.which == 1 && !event.metaKey;
+ case 1: return event.which == 2 || (event.which == 1 && event.metaKey);
+ case 2: return event.which == 3;
+ default: return false;
+ }
+ }
+
+ if (window.attachEvent) {
+ if (!window.addEventListener) {
+ _isButton = _isButtonForLegacyEvents;
+ } else {
+ _isButton = function(event, code) {
+ return isIELegacyEvent(event) ? _isButtonForLegacyEvents(event, code) :
+ _isButtonForDOMEvents(event, code);
+ }
+ }
+ } else if (Prototype.Browser.WebKit) {
+ _isButton = _isButtonForWebKit;
+ } else {
+ _isButton = _isButtonForDOMEvents;
+ }
+
+ function isLeftClick(event) { return _isButton(event, 0) }
+
+ function isMiddleClick(event) { return _isButton(event, 1) }
+
+ function isRightClick(event) { return _isButton(event, 2) }
+
+ function element(event) {
+ event = Event.extend(event);
+
+ var node = event.target, type = event.type,
+ currentTarget = event.currentTarget;
+
+ if (currentTarget && currentTarget.tagName) {
+ if (type === 'load' || type === 'error' ||
+ (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
+ && currentTarget.type === 'radio'))
+ node = currentTarget;
+ }
+
+ if (node.nodeType == Node.TEXT_NODE)
+ node = node.parentNode;
+
+ return Element.extend(node);
+ }
+
+ function findElement(event, expression) {
+ var element = Event.element(event);
+
+ if (!expression) return element;
+ while (element) {
+ if (Object.isElement(element) && Prototype.Selector.match(element, expression)) {
+ return Element.extend(element);
+ }
+ element = element.parentNode;
+ }
+ }
+
+ function pointer(event) {
+ return { x: pointerX(event), y: pointerY(event) };
+ }
+
+ function pointerX(event) {
+ var docElement = document.documentElement,
+ body = document.body || { scrollLeft: 0 };
+
+ return event.pageX || (event.clientX +
+ (docElement.scrollLeft || body.scrollLeft) -
+ (docElement.clientLeft || 0));
+ }
+
+ function pointerY(event) {
+ var docElement = document.documentElement,
+ body = document.body || { scrollTop: 0 };
+
+ return event.pageY || (event.clientY +
+ (docElement.scrollTop || body.scrollTop) -
+ (docElement.clientTop || 0));
+ }
+
+
+ function stop(event) {
+ Event.extend(event);
+ event.preventDefault();
+ event.stopPropagation();
+
+ event.stopped = true;
+ }
+
+
+ Event.Methods = {
+ isLeftClick: isLeftClick,
+ isMiddleClick: isMiddleClick,
+ isRightClick: isRightClick,
+
+ element: element,
+ findElement: findElement,
+
+ pointer: pointer,
+ pointerX: pointerX,
+ pointerY: pointerY,
+
+ stop: stop
+ };
+
+ var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
+ m[name] = Event.Methods[name].methodize();
+ return m;
+ });
+
+ if (window.attachEvent) {
+ function _relatedTarget(event) {
+ var element;
+ switch (event.type) {
+ case 'mouseover':
+ case 'mouseenter':
+ element = event.fromElement;
+ break;
+ case 'mouseout':
+ case 'mouseleave':
+ element = event.toElement;
+ break;
+ default:
+ return null;
+ }
+ return Element.extend(element);
+ }
+
+ var additionalMethods = {
+ stopPropagation: function() { this.cancelBubble = true },
+ preventDefault: function() { this.returnValue = false },
+ inspect: function() { return '[object Event]' }
+ };
+
+ Event.extend = function(event, element) {
+ if (!event) return false;
+
+ if (!isIELegacyEvent(event)) return event;
+
+ if (event._extendedByPrototype) return event;
+ event._extendedByPrototype = Prototype.emptyFunction;
+
+ var pointer = Event.pointer(event);
+
+ Object.extend(event, {
+ target: event.srcElement || element,
+ relatedTarget: _relatedTarget(event),
+ pageX: pointer.x,
+ pageY: pointer.y
+ });
+
+ Object.extend(event, methods);
+ Object.extend(event, additionalMethods);
+
+ return event;
+ };
+ } else {
+ Event.extend = Prototype.K;
+ }
+
+ if (window.addEventListener) {
+ Event.prototype = window.Event.prototype || document.createEvent('HTMLEvents').__proto__;
+ Object.extend(Event.prototype, methods);
+ }
+
+ function _createResponder(element, eventName, handler) {
+ var registry = Element.retrieve(element, 'prototype_event_registry');
+
+ if (Object.isUndefined(registry)) {
+ CACHE.push(element);
+ registry = Element.retrieve(element, 'prototype_event_registry', $H());
+ }
+
+ var respondersForEvent = registry.get(eventName);
+ if (Object.isUndefined(respondersForEvent)) {
+ respondersForEvent = [];
+ registry.set(eventName, respondersForEvent);
+ }
+
+ if (respondersForEvent.pluck('handler').include(handler)) return false;
+
+ var responder;
+ if (eventName.include(":")) {
+ responder = function(event) {
+ if (Object.isUndefined(event.eventName))
+ return false;
+
+ if (event.eventName !== eventName)
+ return false;
+
+ Event.extend(event, element);
+ handler.call(element, event);
+ };
+ } else {
+ if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED &&
+ (eventName === "mouseenter" || eventName === "mouseleave")) {
+ if (eventName === "mouseenter" || eventName === "mouseleave") {
+ responder = function(event) {
+ Event.extend(event, element);
+
+ var parent = event.relatedTarget;
+ while (parent && parent !== element) {
+ try { parent = parent.parentNode; }
+ catch(e) { parent = element; }
+ }
+
+ if (parent === element) return;
+
+ handler.call(element, event);
+ };
+ }
+ } else {
+ responder = function(event) {
+ Event.extend(event, element);
+ handler.call(element, event);
+ };
+ }
+ }
+
+ responder.handler = handler;
+ respondersForEvent.push(responder);
+ return responder;
+ }
+
+ function _destroyCache() {
+ for (var i = 0, length = CACHE.length; i < length; i++) {
+ Event.stopObserving(CACHE[i]);
+ CACHE[i] = null;
+ }
+ }
+
+ var CACHE = [];
+
+ if (Prototype.Browser.IE)
+ window.attachEvent('onunload', _destroyCache);
+
+ if (Prototype.Browser.WebKit)
+ window.addEventListener('unload', Prototype.emptyFunction, false);
+
+
+ var _getDOMEventName = Prototype.K,
+ translations = { mouseenter: "mouseover", mouseleave: "mouseout" };
+
+ if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED) {
+ _getDOMEventName = function(eventName) {
+ return (translations[eventName] || eventName);
+ };
+ }
+
+ function observe(element, eventName, handler) {
+ element = $(element);
+
+ var responder = _createResponder(element, eventName, handler);
+
+ if (!responder) return element;
+
+ if (eventName.include(':')) {
+ if (element.addEventListener)
+ element.addEventListener("dataavailable", responder, false);
+ else {
+ element.attachEvent("ondataavailable", responder);
+ element.attachEvent("onlosecapture", responder);
+ }
+ } else {
+ var actualEventName = _getDOMEventName(eventName);
+
+ if (element.addEventListener)
+ element.addEventListener(actualEventName, responder, false);
+ else
+ element.attachEvent("on" + actualEventName, responder);
+ }
+
+ return element;
+ }
+
+ function stopObserving(element, eventName, handler) {
+ element = $(element);
+
+ var registry = Element.retrieve(element, 'prototype_event_registry');
+ if (!registry) return element;
+
+ if (!eventName) {
+ registry.each( function(pair) {
+ var eventName = pair.key;
+ stopObserving(element, eventName);
+ });
+ return element;
+ }
+
+ var responders = registry.get(eventName);
+ if (!responders) return element;
+
+ if (!handler) {
+ responders.each(function(r) {
+ stopObserving(element, eventName, r.handler);
+ });
+ return element;
+ }
+
+ var i = responders.length, responder;
+ while (i--) {
+ if (responders[i].handler === handler) {
+ responder = responders[i];
+ break;
+ }
+ }
+ if (!responder) return element;
+
+ if (eventName.include(':')) {
+ if (element.removeEventListener)
+ element.removeEventListener("dataavailable", responder, false);
+ else {
+ element.detachEvent("ondataavailable", responder);
+ element.detachEvent("onlosecapture", responder);
+ }
+ } else {
+ var actualEventName = _getDOMEventName(eventName);
+ if (element.removeEventListener)
+ element.removeEventListener(actualEventName, responder, false);
+ else
+ element.detachEvent('on' + actualEventName, responder);
+ }
+
+ registry.set(eventName, responders.without(responder));
+
+ return element;
+ }
+
+ function fire(element, eventName, memo, bubble) {
+ element = $(element);
+
+ if (Object.isUndefined(bubble))
+ bubble = true;
+
+ if (element == document && document.createEvent && !element.dispatchEvent)
+ element = document.documentElement;
+
+ var event;
+ if (document.createEvent) {
+ event = document.createEvent('HTMLEvents');
+ event.initEvent('dataavailable', bubble, true);
+ } else {
+ event = document.createEventObject();
+ event.eventType = bubble ? 'ondataavailable' : 'onlosecapture';
+ }
+
+ event.eventName = eventName;
+ event.memo = memo || { };
+
+ if (document.createEvent)
+ element.dispatchEvent(event);
+ else
+ element.fireEvent(event.eventType, event);
+
+ return Event.extend(event);
+ }
+
+ Event.Handler = Class.create({
+ initialize: function(element, eventName, selector, callback) {
+ this.element = $(element);
+ this.eventName = eventName;
+ this.selector = selector;
+ this.callback = callback;
+ this.handler = this.handleEvent.bind(this);
+ },
+
+ start: function() {
+ Event.observe(this.element, this.eventName, this.handler);
+ return this;
+ },
+
+ stop: function() {
+ Event.stopObserving(this.element, this.eventName, this.handler);
+ return this;
+ },
+
+ handleEvent: function(event) {
+ var element = Event.findElement(event, this.selector);
+ if (element) this.callback.call(this.element, event, element);
+ }
+ });
+
+ function on(element, eventName, selector, callback) {
+ element = $(element);
+ if (Object.isFunction(selector) && Object.isUndefined(callback)) {
+ callback = selector, selector = null;
+ }
+
+ return new Event.Handler(element, eventName, selector, callback).start();
+ }
+
+ Object.extend(Event, Event.Methods);
+
+ Object.extend(Event, {
+ fire: fire,
+ observe: observe,
+ stopObserving: stopObserving,
+ on: on
+ });
+
+ Element.addMethods({
+ fire: fire,
+
+ observe: observe,
+
+ stopObserving: stopObserving,
+
+ on: on
+ });
+
+ Object.extend(document, {
+ fire: fire.methodize(),
+
+ observe: observe.methodize(),
+
+ stopObserving: stopObserving.methodize(),
+
+ on: on.methodize(),
+
+ loaded: false
+ });
+
+ if (window.Event) Object.extend(window.Event, Event);
+ else window.Event = Event;
+})();
+
+(function() {
+ /* Support for the DOMContentLoaded event is based on work by Dan Webb,
+ Matthias Miller, Dean Edwards, John Resig, and Diego Perini. */
+
+ var timer;
+
+ function fireContentLoadedEvent() {
+ if (document.loaded) return;
+ if (timer) window.clearTimeout(timer);
+ document.loaded = true;
+ document.fire('dom:loaded');
+ }
+
+ function checkReadyState() {
+ if (document.readyState === 'complete') {
+ document.stopObserving('readystatechange', checkReadyState);
+ fireContentLoadedEvent();
+ }
+ }
+
+ function pollDoScroll() {
+ try { document.documentElement.doScroll('left'); }
+ catch(e) {
+ timer = pollDoScroll.defer();
+ return;
+ }
+ fireContentLoadedEvent();
+ }
+
+ if (document.addEventListener) {
+ document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);
+ } else {
+ document.observe('readystatechange', checkReadyState);
+ if (window == top)
+ timer = pollDoScroll.defer();
+ }
+
+ Event.observe(window, 'load', fireContentLoadedEvent);
+})();
+
+Element.addMethods();
+
+/*------------------------------- DEPRECATED -------------------------------*/
+
+Hash.toQueryString = Object.toQueryString;
+
+var Toggle = { display: Element.toggle };
+
+Element.Methods.childOf = Element.Methods.descendantOf;
+
+var Insertion = {
+ Before: function(element, content) {
+ return Element.insert(element, {before:content});
+ },
+
+ Top: function(element, content) {
+ return Element.insert(element, {top:content});
+ },
+
+ Bottom: function(element, content) {
+ return Element.insert(element, {bottom:content});
+ },
+
+ After: function(element, content) {
+ return Element.insert(element, {after:content});
+ }
+};
+
+var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
+
+var Position = {
+ includeScrollOffsets: false,
+
+ prepare: function() {
+ this.deltaX = window.pageXOffset
+ || document.documentElement.scrollLeft
+ || document.body.scrollLeft
+ || 0;
+ this.deltaY = window.pageYOffset
+ || document.documentElement.scrollTop
+ || document.body.scrollTop
+ || 0;
+ },
+
+ within: function(element, x, y) {
+ if (this.includeScrollOffsets)
+ return this.withinIncludingScrolloffsets(element, x, y);
+ this.xcomp = x;
+ this.ycomp = y;
+ this.offset = Element.cumulativeOffset(element);
+
+ return (y >= this.offset[1] &&
+ y < this.offset[1] + element.offsetHeight &&
+ x >= this.offset[0] &&
+ x < this.offset[0] + element.offsetWidth);
+ },
+
+ withinIncludingScrolloffsets: function(element, x, y) {
+ var offsetcache = Element.cumulativeScrollOffset(element);
+
+ this.xcomp = x + offsetcache[0] - this.deltaX;
+ this.ycomp = y + offsetcache[1] - this.deltaY;
+ this.offset = Element.cumulativeOffset(element);
+
+ return (this.ycomp >= this.offset[1] &&
+ this.ycomp < this.offset[1] + element.offsetHeight &&
+ this.xcomp >= this.offset[0] &&
+ this.xcomp < this.offset[0] + element.offsetWidth);
+ },
+
+ overlap: function(mode, element) {
+ if (!mode) return 0;
+ if (mode == 'vertical')
+ return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+ element.offsetHeight;
+ if (mode == 'horizontal')
+ return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+ element.offsetWidth;
+ },
+
+
+ cumulativeOffset: Element.Methods.cumulativeOffset,
+
+ positionedOffset: Element.Methods.positionedOffset,
+
+ absolutize: function(element) {
+ Position.prepare();
+ return Element.absolutize(element);
+ },
+
+ relativize: function(element) {
+ Position.prepare();
+ return Element.relativize(element);
+ },
+
+ realOffset: Element.Methods.cumulativeScrollOffset,
+
+ offsetParent: Element.Methods.getOffsetParent,
+
+ page: Element.Methods.viewportOffset,
+
+ clone: function(source, target, options) {
+ options = options || { };
+ return Element.clonePosition(target, source, options);
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
+ function iter(name) {
+ return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
+ }
+
+ instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
+ function(element, className) {
+ className = className.toString().strip();
+ var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
+ return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
+ } : function(element, className) {
+ className = className.toString().strip();
+ var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
+ if (!classNames && !className) return elements;
+
+ var nodes = $(element).getElementsByTagName('*');
+ className = ' ' + className + ' ';
+
+ for (var i = 0, child, cn; child = nodes[i]; i++) {
+ if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
+ (classNames && classNames.all(function(name) {
+ return !name.toString().blank() && cn.include(' ' + name + ' ');
+ }))))
+ elements.push(Element.extend(child));
+ }
+ return elements;
+ };
+
+ return function(className, parentElement) {
+ return $(parentElement || document.body).getElementsByClassName(className);
+ };
+}(Element.Methods);
+
+/*--------------------------------------------------------------------------*/
+
+Element.ClassNames = Class.create();
+Element.ClassNames.prototype = {
+ initialize: function(element) {
+ this.element = $(element);
+ },
+
+ _each: function(iterator) {
+ this.element.className.split(/\s+/).select(function(name) {
+ return name.length > 0;
+ })._each(iterator);
+ },
+
+ set: function(className) {
+ this.element.className = className;
+ },
+
+ add: function(classNameToAdd) {
+ if (this.include(classNameToAdd)) return;
+ this.set($A(this).concat(classNameToAdd).join(' '));
+ },
+
+ remove: function(classNameToRemove) {
+ if (!this.include(classNameToRemove)) return;
+ this.set($A(this).without(classNameToRemove).join(' '));
+ },
+
+ toString: function() {
+ return $A(this).join(' ');
+ }
+};
+
+Object.extend(Element.ClassNames.prototype, Enumerable);
+
+/*--------------------------------------------------------------------------*/
+
+(function() {
+ window.Selector = Class.create({
+ initialize: function(expression) {
+ this.expression = expression.strip();
+ },
+
+ findElements: function(rootElement) {
+ return Prototype.Selector.select(this.expression, rootElement);
+ },
+
+ match: function(element) {
+ return Prototype.Selector.match(element, this.expression);
+ },
+
+ toString: function() {
+ return this.expression;
+ },
+
+ inspect: function() {
+ return "#<Selector: " + this.expression + ">";
+ }
+ });
+
+ Object.extend(Selector, {
+ matchElements: function(elements, expression) {
+ var match = Prototype.Selector.match,
+ results = [];
+
+ for (var i = 0, length = elements.length; i < length; i++) {
+ var element = elements[i];
+ if (match(element, expression)) {
+ results.push(Element.extend(element));
+ }
+ }
+ return results;
+ },
+
+ findElement: function(elements, expression, index) {
+ index = index || 0;
+ var matchIndex = 0, element;
+ for (var i = 0, length = elements.length; i < length; i++) {
+ element = elements[i];
+ if (Prototype.Selector.match(element, expression) && index === matchIndex++) {
+ return Element.extend(element);
+ }
+ }
+ },
+
+ findChildElements: function(element, expressions) {
+ var selector = expressions.toArray().join(', ');
+ return Prototype.Selector.select(selector, element || document);
+ }
+ });
+})();
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/pngfix.js b/PerformanceTests/Dromaeo/resources/dromaeo/web/pngfix.js
new file mode 100644
index 000000000..ec211d1c7
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/pngfix.js
@@ -0,0 +1,28 @@
+
+var arVersion = navigator.appVersion.split("MSIE")
+var version = parseFloat(arVersion[1])
+
+if ((version >= 5.5) && (document.body.filters))
+{
+ for(var i=0; i<document.images.length; i++)
+ {
+ var img = document.images[i]
+ var imgName = img.src.toUpperCase()
+ if (imgName.indexOf('.PNG') > -1)
+ {
+ var imgID = (img.id) ? "id='" + img.id + "' " : ""
+ var imgClass = (img.className) ? "class='" + img.className + "' " : ""
+ var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
+ var imgStyle = "display:inline-block;" + img.style.cssText
+ if (img.align == "left") imgStyle = "float:left;" + imgStyle
+ if (img.align == "right") imgStyle = "float:right;" + imgStyle
+ if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
+ var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
+ img.outerHTML = strNewHTML
+ i = i-1
+ }
+ }
+} \ No newline at end of file
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/reset.css b/PerformanceTests/Dromaeo/resources/dromaeo/web/reset.css
new file mode 100644
index 000000000..4a3cf9415
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/reset.css
@@ -0,0 +1,38 @@
+/* --------------------------------------------------------------
+
+ reset.css
+ * Resets default browser CSS.
+
+ Based on work by Eric Meyer:
+ * meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/
+
+-------------------------------------------------------------- */
+
+html, body, div, span, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, code,
+del, dfn, em, img, q, dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-weight: inherit;
+ font-style: inherit;
+ font-size: 100%;
+ font-family: inherit;
+ vertical-align: baseline;
+}
+
+
+body { line-height: 1.5; background: #fff; margin:1.5em 0; }
+
+/* Tables still need 'cellspacing="0"' in the markup. */
+caption, th, td { text-align: left; font-weight:400; }
+
+/* Remove possible quote marks (") from <q>, <blockquote>. */
+blockquote:before, blockquote:after, q:before, q:after { content: ""; }
+blockquote, q { quotes: "" ""; }
+
+a img { border: none; }
+
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/test-head.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/test-head.html
new file mode 100644
index 000000000..481251c50
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/test-head.html
@@ -0,0 +1,4 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/test-head.js b/PerformanceTests/Dromaeo/resources/dromaeo/web/test-head.js
new file mode 100644
index 000000000..9839f9931
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/test-head.js
@@ -0,0 +1,2 @@
+(function(){
+
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/test-tail.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/test-tail.html
new file mode 100644
index 000000000..1b4431bad
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/test-tail.html
@@ -0,0 +1,4 @@
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/test-tail.js b/PerformanceTests/Dromaeo/resources/dromaeo/web/test-tail.js
new file mode 100644
index 000000000..0319a0fe5
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/test-tail.js
@@ -0,0 +1 @@
+})();
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/72px.png b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/72px.png
new file mode 100644
index 000000000..3920987a9
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/72px.png
Binary files differ
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/MANIFEST.json b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/MANIFEST.json
new file mode 100644
index 000000000..24d6376ad
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/MANIFEST.json
@@ -0,0 +1,442 @@
+{
+"dromaeo-3d-cube": {
+ file: "dromaeo-3d-cube.html",
+ name: "Rotating 3D Cube",
+ origin: ["Simon Speich", "http://www.speich.net/computer/moztesting/3d.htm"],
+ desc: "Rotating the individual pixels of a cube. No rendering done.",
+ category: "Dromaeo JavaScript Tests",
+ tags: ["object", "array", "property", "math"]
+},
+"dromaeo-string-base64": {
+ file: "dromaeo-string-base64.html",
+ name: "Base 64 Encoding and Decoding",
+ origin: ["Mozilla", "http://mozilla.org/"],
+ desc: "Encode and decode a random string to base 64.",
+ category: "Dromaeo JavaScript Tests",
+ tags: ["string","array","looping","bitops"]
+},
+"dromaeo-core-eval": {
+ file: "dromaeo-core-eval.html",
+ name: "Code Evaluation",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Microtests of code evaluation (eval, new Function).",
+ category: "Dromaeo JavaScript Tests",
+ tags: ["eval","microtest"]
+},
+"dromaeo-object-array": {
+ file: "dromaeo-object-array.html",
+ name: "Arrays",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Microtests of arrays (construction, methods, access).",
+ category: "Dromaeo JavaScript Tests",
+ tags: ["array","microtest"]
+},
+"dromaeo-object-regexp": {
+ file: "dromaeo-object-regexp.html",
+ name: "Regular Expressions",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Microtests of regular expressions (construction, matching, replace).",
+ category: "Dromaeo JavaScript Tests",
+ tags: ["regexp","microtest"]
+},
+"dromaeo-object-string": {
+ file: "dromaeo-object-string.html",
+ name: "Strings",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Microtests of strings (concatenation, methods).",
+ category: "Dromaeo JavaScript Tests",
+ tags: ["string","microtest"]
+},
+"v8-crypto": {
+ file: "v8-crypto.html",
+ name: "RSA Encryption/Decryption",
+ origin: ["V8 Benchmark", "http://code.google.com/apis/v8/benchmarks.html"],
+ desc: "Encrypt a string and then decrypt it again using RSA.",
+ category: "V8 Benchmark Tests",
+ tags: ["looping","string","bitops"]
+},
+"v8-deltablue": {
+ file: "v8-deltablue.html",
+ name: "DeltaBlue Constraint Solving",
+ origin: ["V8 Benchmark", "http://code.google.com/apis/v8/benchmarks.html"],
+ desc: "Computing a number of limitations on a set of values.",
+ category: "V8 Benchmark Tests",
+ tags: ["looping","functions"]
+},
+"v8-earley-boyer": {
+ file: "v8-earley-boyer.html",
+ name: "String Parsing and Searching",
+ origin: ["V8 Benchmark", "http://code.google.com/apis/v8/benchmarks.html"],
+ desc: "Tests for parsing languages and searching strings.",
+ category: "V8 Benchmark Tests",
+ tags: ["looping","functions","string"]
+},
+"v8-raytrace": {
+ file: "v8-raytrace.html",
+ name: "RayTracer",
+ origin: ["V8 Benchmark", "http://code.google.com/apis/v8/benchmarks.html"],
+ desc: "Renders a scene using raytracing (no rendering done).",
+ category: "V8 Benchmark Tests",
+ tags: ["looping","functions","object"]
+},
+"v8-richards": {
+ file: "v8-richards.html",
+ name: "Richards Benchmarks",
+ origin: ["V8 Benchmark", "http://code.google.com/apis/v8/benchmarks.html"],
+ desc: "A series of benchmarks to test the quality of system implementation languages.",
+ category: "V8 Benchmark Tests",
+ tags: ["functions","object"]
+},
+"sunspider-3d-morph": {
+ file: "sunspider-3d-morph.html",
+ name: "3D Mesh Transformation",
+ origin: ["WebKit", "http://webkit.org/misc/morph.html"],
+ desc: "Transforming the points of a matrix. No visual output.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["array", "looping", "math"]
+},
+"sunspider-3d-raytrace": {
+ file: "sunspider-3d-raytrace.html",
+ name: "3D Raytrace",
+ origin: ["Apple", "http://apple.com/"],
+ desc: "Rendering a scene using raytracing techniques. No visual output.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["array", "functions", "math"]
+},
+"sunspider-access-binary-trees": {
+ file: "sunspider-access-binary-trees.html",
+ name: "Traversing Binary Trees",
+ origin: ["Language Shootout", "http://shootout.alioth.debian.org/"],
+ desc: "Moving through an object representation of a binary tree.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["object", "recursion"]
+},
+"sunspider-access-fannkuch": {
+ file: "sunspider-access-fannkuch.html",
+ name: "Fannkuch",
+ origin: ["Language Shootout", "http://shootout.alioth.debian.org/"],
+ desc: "Figure out the number of ways in which a set of numbers can be manipulated.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["array", "looping"]
+},
+"sunspider-access-nbody": {
+ file: "sunspider-access-nbody.html",
+ name: "N-Body Rotation and Gravity",
+ origin: ["Language Shootout", "http://shootout.alioth.debian.org/"],
+ desc: "Compute the location of multiple planets based upon rotation and gravity.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["object", "property", "looping", "math"]
+},
+"sunspider-access-nsieve": {
+ file: "sunspider-access-nsieve.html",
+ name: "Prime Number Computation",
+ origin: ["Language Shootout", "http://shootout.alioth.debian.org/"],
+ desc: "Compute the number of prime numbers in a specific range of numbers.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["looping", "array"]
+},
+"sunspider-bitops-3bit-bits-in-byte": {
+ file: "sunspider-bitops-3bit-bits-in-byte.html",
+ name: "Compute Bits in Byte",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Compute the number of bits in a number using bitops.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["looping", "bitops"]
+},
+"sunspider-bitops-bits-in-byte": {
+ file: "sunspider-bitops-bits-in-byte.html",
+ name: "Compute Bits in Byte (2)",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Compute the number of bits in a number using bitops.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["looping", "bitops"]
+},
+"sunspider-bitops-bitwise-and": {
+ file: "sunspider-bitops-bitwise-and.html",
+ name: "Bitwise And",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Compute a number by using a series of 'and' bit operations.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["looping", "bitops"]
+},
+"sunspider-bitops-nsieve-bits": {
+ file: "sunspider-bitops-nsieve-bits.html",
+ name: "Prime Number Computation (2)",
+ origin: ["Language Shootout", "http://shootout.alioth.debian.org/"],
+ desc: "Compute the number of prime numbers in a specific range of numbers using bit operations.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["looping", "bitops", "array"]
+},
+"sunspider-controlflow-recursive": {
+ file: "sunspider-controlflow-recursive.html",
+ name: "Recursive Number Calculation",
+ origin: ["Language Shootout", "http://shootout.alioth.debian.org/"],
+ desc: "Compute various numbers in a recursive manner.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["functions"]
+},
+"sunspider-crypto-aes": {
+ file: "sunspider-crypto-aes.html",
+ name: "AES Encryption/Decryption",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Encrypt a string and then decrypt it again using AES.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["looping","string","bitops"]
+},
+"sunspider-crypto-md5": {
+ file: "sunspider-crypto-md5.html",
+ name: "MD5 Hashing",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Hash a long string using MD5.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["looping","string"]
+},
+"sunspider-crypto-sha1": {
+ file: "sunspider-crypto-sha1.html",
+ name: "SHA1 Hashing",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Hash a long string using SHA1.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["looping","string"]
+},
+"sunspider-date-format-xparb": {
+ file: "sunspider-date-format-xparb.html",
+ name: "Date Formatting",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Converting a date into a string representation.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["date","string"]
+},
+"sunspider-date-format-tofte": {
+ file: "sunspider-date-format-tofte.html",
+ name: "Date Formatting (2)",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Converting a date into a string representation.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["date","string"]
+},
+"sunspider-math-cordic": {
+ file: "sunspider-math-cordic.html",
+ name: "Trigonometric Calculation",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Calculate values from hyperbolic and trigonometric functions.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["math","looping"]
+},
+"sunspider-math-partial-sums": {
+ file: "sunspider-math-partial-sums.html",
+ name: "Partial Sum Calculation",
+ origin: ["Language Shootout", "http://shootout.alioth.debian.org/"],
+ desc: "Calculate the partial sum of a few different number series.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["math","looping"]
+},
+"sunspider-math-spectral-norm": {
+ file: "sunspider-math-spectral-norm.html",
+ name: "Spectral Norm of a Matrix",
+ origin: ["Language Shootout", "http://shootout.alioth.debian.org/"],
+ desc: "Calculate the spectral norm of a matrix of numbers.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["array","looping","math"]
+},
+"sunspider-regexp-dna": {
+ file: "sunspider-regexp-dna.html",
+ name: "DNA Sequence Counting",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Counts occurences in a DNA sequence.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["string","regexp"]
+},
+"sunspider-string-fasta": {
+ file: "sunspider-string-fasta.html",
+ name: "DNA Sequence Alignment",
+ origin: ["Language Shootout", "http://shootout.alioth.debian.org/"],
+ desc: "Find DNA matches within a larger sequence.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["string","object","looping"]
+},
+"sunspider-string-tagcloud": {
+ file: "sunspider-string-tagcloud.html",
+ name: "Tag Cloud Creation",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Convert a JSON structure into an HTML tag cloud.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["string","regexp"]
+},
+"sunspider-string-unpack-code": {
+ file: "sunspider-string-unpack-code.html",
+ name: "Script Unpacking",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Decompressing scripts run through Dean Edwards' Packer.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["regexp","string","looping"]
+},
+"sunspider-string-validate-input": {
+ file: "sunspider-string-validate-input.html",
+ name: "Validate User Input",
+ origin: ["SunSpider", "http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"],
+ desc: "Test user input against a series of rules.",
+ category: "SunSpider JavaScript Tests",
+ tags: ["string","regexp"]
+},
+"dom-attr": {
+ file: "dom-attr.html",
+ name: "DOM Attributes",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Setting and getting DOM node attributes.",
+ category: "Dromaeo DOM Tests",
+ tags: ["dom","attributes"]
+},
+"dom-modify": {
+ file: "dom-modify.html",
+ name: "DOM Modification",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Creating and injecting DOM nodes into a document.",
+ category: "Dromaeo DOM Tests",
+ tags: ["dom","modify"]
+},
+"dom-query": {
+ file: "dom-query.html",
+ name: "DOM Query",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Querying DOM elements in a document.",
+ category: "Dromaeo DOM Tests",
+ tags: ["dom","query"]
+},
+"dom-traverse": {
+ file: "dom-traverse.html",
+ name: "DOM Traversal",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Traversing a DOM structure.",
+ category: "Dromaeo DOM Tests",
+ tags: ["dom","traverse"]
+},
+"jslib-attr-jquery": {
+ file: "jslib-attr-jquery.html",
+ name: "DOM Attributes (jQuery)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Setting and getting DOM node attributes using the jQuery JavaScript Library.",
+ category: "JavaScript Library Tests",
+ tags: ["dom","jslib","jquery","attributes"]
+},
+"jslib-attr-prototype": {
+ file: "jslib-attr-prototype.html",
+ name: "DOM Attributes (Prototype)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Setting and getting DOM node attributes using the Prototype JavaScript Library.",
+ category: "JavaScript Library Tests",
+ tags: ["dom","jslib","prototype","attributes"]
+},
+"jslib-event-jquery": {
+ file: "jslib-event-jquery.html",
+ name: "DOM Events (jQuery)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Binding, removing, and triggering DOM events using the jQuery JavaScript Library.",
+ category: "JavaScript Library Tests",
+ tags: ["dom","jslib","jquery","events"]
+},
+"jslib-event-prototype": {
+ file: "jslib-event-prototype.html",
+ name: "DOM Events (Prototype)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Binding, removing, and triggering DOM events using the Prototype JavaScript Library.",
+ category: "JavaScript Library Tests",
+ tags: ["dom","jslib","prototype","events"]
+},
+"jslib-modify-jquery": {
+ file: "jslib-modify-jquery.html",
+ name: "DOM Modification (jQuery)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Creating and injecting DOM nodes into a document using the jQuery JavaScript Library.",
+ category: "JavaScript Library Tests",
+ tags: ["dom","jslib","jquery","modify"]
+},
+"jslib-modify-prototype": {
+ file: "jslib-modify-prototype.html",
+ name: "DOM Modification (Prototype)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Creating and injecting DOM nodes into a document using the Prototype JavaScript Library.",
+ category: "JavaScript Library Tests",
+ tags: ["dom","jslib","prototype","modify"]
+},
+"jslib-style-jquery": {
+ file: "jslib-style-jquery.html",
+ name: "DOM Style (jQuery)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Getting and setting CSS information on DOM elements using the jQuery JavaScript Library.",
+ category: "JavaScript Library Tests",
+ tags: ["dom","jslib","jquery","style"]
+},
+"jslib-style-prototype": {
+ file: "jslib-style-prototype.html",
+ name: "DOM Style (Prototype)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Getting and setting CSS information on DOM elements using the Prototype JavaScript Library.",
+ category: "JavaScript Library Tests",
+ tags: ["dom","jslib","prototype","style"]
+},
+"jslib-traverse-jquery": {
+ file: "jslib-traverse-jquery.html",
+ name: "DOM Traversal (jQuery)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Traversing a DOM structure using the jQuery JavaScript Library.",
+ category: "JavaScript Library Tests",
+ tags: ["dom","jslib","jquery","traverse"]
+},
+"jslib-traverse-prototype": {
+ file: "jslib-traverse-prototype.html",
+ name: "DOM Traversal (Prototype)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Traversing a DOM structure using the Prototype JavaScript Library.",
+ category: "JavaScript Library Tests",
+ tags: ["dom","jslib","prototype","traverse"]
+},
+"cssquery-jquery": {
+ file: "cssquery-jquery.html",
+ name: "DOM Query (jQuery)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Querying DOM elements in a document using the jQuery JavaScript Library.",
+ category: "CSS Selector Tests",
+ tags: ["dom","jslib","jquery","query"]
+},
+"cssquery-prototype": {
+ file: "cssquery-prototype.html",
+ name: "DOM Query (Prototype)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Querying DOM elements in a document using the Prototype JavaScript Library.",
+ category: "CSS Selector Tests",
+ tags: ["dom","jslib","prototype","query"]
+},
+"cssquery-dojo": {
+ file: "cssquery-dojo.html",
+ name: "DOM Query (Dojo)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Querying DOM elements in a document using the Dojo JavaScript Library.",
+ category: "CSS Selector Tests",
+ tags: ["dom","jslib","dojo","query"]
+},
+"cssquery-ext": {
+ file: "cssquery-ext.html",
+ name: "DOM Query (ExtJS)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Querying DOM elements in a document using the ExtJS JavaScript Library.",
+ category: "CSS Selector Tests",
+ tags: ["dom","jslib","extjs","query"]
+},
+"cssquery-mootools": {
+ file: "cssquery-mootools.html",
+ name: "DOM Query (Mootools)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Querying DOM elements in a document using the Mootools JavaScript Library.",
+ category: "CSS Selector Tests",
+ tags: ["dom","jslib","mootools","query"]
+},
+"cssquery-yui": {
+ file: "cssquery-yui.html",
+ name: "DOM Query (Yahoo UI)",
+ origin: ["John Resig", "http://ejohn.org/"],
+ desc: "Querying DOM elements in a document using the Yahoo UI JavaScript Library.",
+ category: "CSS Selector Tests",
+ tags: ["dom","jslib","yui","query"]
+}
+}
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-dojo.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-dojo.html
new file mode 100644
index 000000000..8cb884b2c
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-dojo.html
@@ -0,0 +1,3063 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/dojo-1.6.1.js"></script>
+<script>
+window.onload = function(){
+startTest("cssquery-dojo", 'a8cfcc7a');
+
+// Try to force real results
+var ret, tmp;
+
+var html = document.body.innerHTML;
+var query = dojo.query;
+
+ prep(function(){
+ var div = document.createElement("div");
+ div.innerHTML = html;
+ document.body.appendChild( div );
+ });
+
+ test("Dojo - *", function(){
+ query("*");
+ });
+
+ test("Dojo - div:only-child", function(){
+ query("div:only-child");
+ });
+
+ test("Dojo - div:first-child", function(){
+ query("div:first-child");
+ });
+
+ test("Dojo - div:nth-child(even)", function(){
+ query("div:nth-child(even)");
+ });
+
+ test("Dojo - div:nth-child(2n)", function(){
+ query("div:nth-child(2n)");
+ });
+
+ test("Dojo - div:nth-child(odd)", function(){
+ query("div:nth-child(odd)");
+ });
+
+ test("Dojo - div:nth-child(2n+1)", function(){
+ query("div:nth-child(2n+1)");
+ });
+
+ test("Dojo - div:nth-child(n)", function(){
+ query("div:nth-child(n)");
+ });
+
+ test("Dojo - div:last-child", function(){
+ query("div:last-child");
+ });
+
+ test("Dojo - div > div", function(){
+ query("div > div");
+ });
+
+ test("Dojo - div + div", function(){
+ query("div + div");
+ });
+
+ test("Dojo - div ~ div", function(){
+ query("div ~ div");
+ });
+
+ test("Dojo - body", function(){
+ query("body");
+ });
+
+ test("Dojo - body div", function(){
+ query("body div");
+ });
+
+ test("Dojo - div", function(){
+ query("div");
+ });
+
+ test("Dojo - div div", function(){
+ query("div div");
+ });
+
+ test("Dojo - div div div", function(){
+ query("div div div");
+ });
+
+ test("Dojo - div, div, div", function(){
+ query("div, div, div");
+ });
+
+ test("Dojo - div, a, span", function(){
+ query("div, a, span");
+ });
+
+ test("Dojo - .dialog", function(){
+ query(".dialog");
+ });
+
+ test("Dojo - div.dialog", function(){
+ query("div.dialog");
+ });
+
+ test("Dojo - div .dialog", function(){
+ query("div .dialog");
+ });
+
+ test("Dojo - div.character, div.dialog", function(){
+ query("div.character, div.dialog");
+ });
+
+ test("Dojo - #speech5", function(){
+ query("#speech5");
+ });
+
+ //test("Dojo - div#speech5", function(){
+ //query("div#speech5");
+ //});
+
+ //test("Dojo - div #speech5", function(){
+ //query("div #speech5");
+ //});
+
+ test("Dojo - div.scene div.dialog", function(){
+ query("div.scene div.dialog");
+ });
+
+ //test("Dojo - div#scene1 div.dialog div", function(){
+ //query("div#scene1 div.dialog div");
+ //});
+
+ test("Dojo - #scene1 #speech1", function(){
+ query("#scene1 #speech1");
+ });
+
+ test("Dojo - div[class]", function(){
+ query("div[class]");
+ });
+
+ test("Dojo - div[class=dialog]", function(){
+ query("div[class=dialog]");
+ });
+
+ test("Dojo - div[class^=dia]", function(){
+ query("div[class^=dia]");
+ });
+
+ test("Dojo - div[class$=log]", function(){
+ query("div[class$=log]");
+ });
+
+ test("Dojo - div[class*=sce]", function(){
+ query("div[class*=sce]");
+ });
+
+ test("Dojo - div[class|=dialog]", function(){
+ query("div[class|=dialog]");
+ });
+
+ test("Dojo - div[class~=dialog]", function(){
+ query("div[class~=dialog]");
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html
new file mode 100644
index 000000000..357153a0c
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html
@@ -0,0 +1,3062 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/jquery-1.6.4.js"></script>
+<script>
+window.onload = function(){
+startTest("cssquery-jquery", '7704c451');
+
+// Try to force real results
+var ret, tmp;
+
+var html = document.body.innerHTML;
+
+ prep(function(){
+ var div = document.createElement("div");
+ div.innerHTML = html;
+ document.body.appendChild( div );
+ });
+
+ test("jQuery - *", function(){
+ jQuery("*");
+ });
+
+ test("jQuery - div:only-child", function(){
+ jQuery("div:only-child");
+ });
+
+ test("jQuery - div:first-child", function(){
+ jQuery("div:first-child");
+ });
+
+ test("jQuery - div:nth-child(even)", function(){
+ jQuery("div:nth-child(even)");
+ });
+
+ test("jQuery - div:nth-child(2n)", function(){
+ jQuery("div:nth-child(2n)");
+ });
+
+ test("jQuery - div:nth-child(odd)", function(){
+ jQuery("div:nth-child(odd)");
+ });
+
+ test("jQuery - div:nth-child(2n+1)", function(){
+ jQuery("div:nth-child(2n+1)");
+ });
+
+ test("jQuery - div:nth-child(n)", function(){
+ jQuery("div:nth-child(n)");
+ });
+
+ test("jQuery - div:last-child", function(){
+ jQuery("div:last-child");
+ });
+
+ test("jQuery - div > div", function(){
+ jQuery("div > div");
+ });
+
+ test("jQuery - div + div", function(){
+ jQuery("div + div");
+ });
+
+ test("jQuery - div ~ div", function(){
+ jQuery("div ~ div");
+ });
+
+ test("jQuery - body", function(){
+ jQuery("body");
+ });
+
+ test("jQuery - body div", function(){
+ jQuery("body div");
+ });
+
+ test("jQuery - div", function(){
+ jQuery("div");
+ });
+
+ test("jQuery - div div", function(){
+ jQuery("div div");
+ });
+
+ test("jQuery - div div div", function(){
+ jQuery("div div div");
+ });
+
+ test("jQuery - div, div, div", function(){
+ jQuery("div, div, div");
+ });
+
+ test("jQuery - div, a, span", function(){
+ jQuery("div, a, span");
+ });
+
+ test("jQuery - .dialog", function(){
+ jQuery(".dialog");
+ });
+
+ test("jQuery - div.dialog", function(){
+ jQuery("div.dialog");
+ });
+
+ test("jQuery - div .dialog", function(){
+ jQuery("div .dialog");
+ });
+
+ test("jQuery - div.character, div.dialog", function(){
+ jQuery("div.character, div.dialog");
+ });
+
+ test("jQuery - #speech5", function(){
+ jQuery("#speech5");
+ });
+
+ test("jQuery - div#speech5", function(){
+ jQuery("div#speech5");
+ });
+
+ test("jQuery - div #speech5", function(){
+ jQuery("div #speech5");
+ });
+
+ test("jQuery - div.scene div.dialog", function(){
+ jQuery("div.scene div.dialog");
+ });
+
+ test("jQuery - div#scene1 div.dialog div", function(){
+ jQuery("div#scene1 div.dialog div");
+ });
+
+ test("jQuery - #scene1 #speech1", function(){
+ jQuery("#scene1 #speech1");
+ });
+
+ test("jQuery - div[class]", function(){
+ jQuery("div[class]");
+ });
+
+ test("jQuery - div[class=dialog]", function(){
+ jQuery("div[class=dialog]");
+ });
+
+ test("jQuery - div[class^=dia]", function(){
+ jQuery("div[class^=dia]");
+ });
+
+ test("jQuery - div[class$=log]", function(){
+ jQuery("div[class$=log]");
+ });
+
+ test("jQuery - div[class*=sce]", function(){
+ jQuery("div[class*=sce]");
+ });
+
+ test("jQuery - div[class|=dialog]", function(){
+ jQuery("div[class|=dialog]");
+ });
+
+ test("jQuery - div[class~=dialog]", function(){
+ jQuery("div[class~=dialog]");
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-prototype.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-prototype.html
new file mode 100644
index 000000000..788a221a8
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/cssquery-prototype.html
@@ -0,0 +1,3062 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/prototype-1.7.js"></script>
+<script>
+window.onload = function(){
+startTest("cssquery-prototype", 'a6eb02e3');
+
+// Try to force real results
+var ret, tmp;
+
+var html = document.body.innerHTML;
+
+ prep(function(){
+ var div = document.createElement("div");
+ div.innerHTML = html;
+ document.body.appendChild( div );
+ });
+
+ test("Prototype - *", function(){
+ $$("*");
+ });
+
+ test("Prototype - div:only-child", function(){
+ $$("div:only-child");
+ });
+
+ test("Prototype - div:first-child", function(){
+ $$("div:first-child");
+ });
+
+ test("Prototype - div:nth-child(even)", function(){
+ $$("div:nth-child(even)");
+ });
+
+ test("Prototype - div:nth-child(2n)", function(){
+ $$("div:nth-child(2n)");
+ });
+
+ test("Prototype - div:nth-child(odd)", function(){
+ $$("div:nth-child(odd)");
+ });
+
+ test("Prototype - div:nth-child(2n+1)", function(){
+ $$("div:nth-child(2n+1)");
+ });
+
+ test("Prototype - div:nth-child(n)", function(){
+ $$("div:nth-child(n)");
+ });
+
+ test("Prototype - div:last-child", function(){
+ $$("div:last-child");
+ });
+
+ test("Prototype - div > div", function(){
+ $$("div > div");
+ });
+
+ test("Prototype - div + div", function(){
+ $$("div + div");
+ });
+
+ test("Prototype - div ~ div", function(){
+ $$("div ~ div");
+ });
+
+ test("Prototype - body", function(){
+ $$("body");
+ });
+
+ test("Prototype - body div", function(){
+ $$("body div");
+ });
+
+ test("Prototype - div", function(){
+ $$("div");
+ });
+
+ test("Prototype - div div", function(){
+ $$("div div");
+ });
+
+ test("Prototype - div div div", function(){
+ $$("div div div");
+ });
+
+ test("Prototype - div, div, div", function(){
+ $$("div, div, div");
+ });
+
+ test("Prototype - div, a, span", function(){
+ $$("div, a, span");
+ });
+
+ test("Prototype - .dialog", function(){
+ $$(".dialog");
+ });
+
+ test("Prototype - div.dialog", function(){
+ $$("div.dialog");
+ });
+
+ test("Prototype - div .dialog", function(){
+ $$("div .dialog");
+ });
+
+ test("Prototype - div.character, div.dialog", function(){
+ $$("div.character, div.dialog");
+ });
+
+ test("Prototype - #speech5", function(){
+ $$("#speech5");
+ });
+
+ test("Prototype - div#speech5", function(){
+ $$("div#speech5");
+ });
+
+ test("Prototype - div #speech5", function(){
+ $$("div #speech5");
+ });
+
+ test("Prototype - div.scene div.dialog", function(){
+ $$("div.scene div.dialog");
+ });
+
+ test("Prototype - div#scene1 div.dialog div", function(){
+ $$("div#scene1 div.dialog div");
+ });
+
+ test("Prototype - #scene1 #speech1", function(){
+ $$("#scene1 #speech1");
+ });
+
+ test("Prototype - div[class]", function(){
+ $$("div[class]");
+ });
+
+ test("Prototype - div[class=dialog]", function(){
+ $$("div[class=dialog]");
+ });
+
+ test("Prototype - div[class^=dia]", function(){
+ $$("div[class^=dia]");
+ });
+
+ test("Prototype - div[class$=log]", function(){
+ $$("div[class$=log]");
+ });
+
+ test("Prototype - div[class*=sce]", function(){
+ $$("div[class*=sce]");
+ });
+
+ test("Prototype - div[class|=dialog]", function(){
+ $$("div[class|=dialog]");
+ });
+
+ test("Prototype - div[class~=dialog]", function(){
+ $$("div[class~=dialog]");
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-attr.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-attr.html
new file mode 100644
index 000000000..8963333fe
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-attr.html
@@ -0,0 +1,2943 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+window.onload = function(){
+startTest("dom-attr", '4739b154');
+
+// Try to force real results
+var ret, tmp;
+
+var elem = document.getElementById("test1");
+var a = document.getElementsByTagName("a")[0];
+var num = 10240;
+
+ test( "getAttribute", function(){
+ for ( var i = 0; i < num; i++ )
+ ret = elem.getAttribute("id");
+ });
+
+ test( "element.property", function(){
+ for ( var i = 0; i < num * 2; i++ )
+ ret = elem.id;
+ });
+
+ test( "setAttribute", function(){
+ for ( var i = 0; i < num; i++ )
+ a.setAttribute("id", "foo");
+ });
+
+ test( "element.property = value", function(){
+ for ( var i = 0; i < num; i++ )
+ a.id = "foo";
+ });
+
+ test( "element.expando = value", function(){
+ for ( var i = 0; i < num; i++ )
+ a["test" + num] = function(){};
+ });
+
+ test( "element.expando", function(){
+ for ( var i = 0; i < num; i++ )
+ ret = a["test" + num];
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test1"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test1"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test1 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-modify.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-modify.html
new file mode 100644
index 000000000..e7e17edc9
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-modify.html
@@ -0,0 +1,2973 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+window.onload = function(){
+startTest("dom-modify", 'd74d9ae0');
+
+// Try to force real results
+var ret, tmp, str;
+
+var elems = [];
+var htmlstr = document.body.innerHTML;
+var div = document.createElement("div");
+var num = 400;
+
+for ( var i = 0; i < 1024; i++ )
+ str += String.fromCharCode( (25 * Math.random()) + 97 );
+
+ test( "createElement", function(){
+ for ( var i = 0; i < num; i++ ) {
+ ret = document.createElement("div");
+ ret = document.createElement("span");
+ ret = document.createElement("table");
+ ret = document.createElement("tr");
+ ret = document.createElement("select");
+ }
+ });
+
+ test( "createTextNode", function(){
+ for ( var i = 0; i < num; i++ ) {
+ ret = document.createTextNode(str);
+ ret = document.createTextNode(str + "2");
+ ret = document.createTextNode(str + "3");
+ ret = document.createTextNode(str + "4");
+ ret = document.createTextNode(str + "5");
+ }
+ });
+
+ /* Need a better way to test this
+ test( "removeChild", function(){
+ while ( document.body.firstChild )
+ document.body.removeChild( document.body.firstChild );
+ });
+ */
+
+ test( "innerHTML", function(){
+ document.body.innerHTML = htmlstr;
+ });
+
+ prep(function(){
+ elems = [];
+ var telems = document.body.childNodes;
+ for ( var i = 0; i < telems.length; i++ )
+ elems.push( telems[i] );
+ });
+
+ test( "cloneNode", function(){
+ for ( var i = 0; i < elems.length; i++ ) {
+ ret = elems[i].cloneNode(false);
+ ret = elems[i].cloneNode(true);
+ ret = elems[i].cloneNode(true);
+ }
+ });
+
+ test( "appendChild", function(){
+ for ( var i = 0; i < elems.length; i++ )
+ document.body.appendChild( elems[i] );
+ });
+
+ test( "insertBefore", function(){
+ for ( var i = 0; i < elems.length; i++ )
+ document.body.insertBefore( elems[i], document.body.firstChild );
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test1"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test1"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test1 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-query.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-query.html
new file mode 100644
index 000000000..85b7bd6e1
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-query.html
@@ -0,0 +1,3000 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+window.onload = function(){
+startTest("dom-query", '2f9d158a');
+
+// Try to force real results
+var ret, tmp;
+var num = 40;
+var html = document.body.innerHTML;
+
+ prep(function(){
+ html = html.replace(/id="test(\w).*?"/g, 'id="test$1' + num + '"');
+ html = html.replace(/name="test.*?"/g, 'name="test' + num + '"');
+ html = html.replace(/class="foo.*?"/g, 'class="foo test' + num + ' bar"');
+ var div = document.createElement("div");
+ div.innerHTML = html;
+ document.body.appendChild( div );
+ });
+
+ test( "getElementById", function(){
+ for ( var i = 0; i < num * 30; i++ ) {
+ ret = document.getElementById("testA" + num).nodeType;
+ ret = document.getElementById("testB" + num).nodeType;
+ ret = document.getElementById("testC" + num).nodeType;
+ ret = document.getElementById("testD" + num).nodeType;
+ ret = document.getElementById("testE" + num).nodeType;
+ ret = document.getElementById("testF" + num).nodeType;
+ }
+ });
+
+ test( "getElementById (not in document)", function(){
+ for ( var i = 0; i < num * 30; i++ ) {
+ ret = document.getElementById("testA");
+ ret = document.getElementById("testB");
+ ret = document.getElementById("testC");
+ ret = document.getElementById("testD");
+ ret = document.getElementById("testE");
+ ret = document.getElementById("testF");
+ }
+ });
+
+ test( "getElementsByTagName(div)", function(){
+ for ( var i = 0; i < num; i++ ) {
+ var elems = document.getElementsByTagName("div");
+ ret = elems[elems.length-1].nodeType;
+ }
+ });
+
+ test( "getElementsByTagName(p)", function(){
+ for ( var i = 0; i < num; i++ ) {
+ var elems = document.getElementsByTagName("p");
+ ret = elems[elems.length-1].nodeType;
+ }
+ });
+
+ test( "getElementsByTagName(a)", function(){
+ for ( var i = 0; i < num; i++ ) {
+ var elems = document.getElementsByTagName("a");
+ ret = elems[elems.length-1].nodeType;
+ }
+ });
+
+ test( "getElementsByTagName(*)", function(){
+ for ( var i = 0; i < num; i++ ) {
+ var elems = document.getElementsByTagName("*");
+ ret = elems[elems.length-1].nodeType;
+ }
+ });
+
+ test( "getElementsByTagName (not in document)", function(){
+ for ( var i = 0; i < num; i++ ) {
+ var elems = document.getElementsByTagName("strong");
+ ret = elems.length == 0;
+ }
+ });
+
+ test( "getElementsByName", function(){
+ for ( var i = 0; i < num * 20; i++ ) {
+ var elems = document.getElementsByName("test" + num);
+ ret = elems[elems.length-1].nodeType;
+ var elems = document.getElementsByName("test" + num);
+ ret = elems[elems.length-1].nodeType;
+ var elems = document.getElementsByName("test" + num);
+ ret = elems[elems.length-1].nodeType;
+ var elems = document.getElementsByName("test" + num);
+ ret = elems[elems.length-1].nodeType;
+ }
+ });
+
+ test( "getElementsByName (not in document)", function(){
+ for ( var i = 0; i < num * 20; i++ ) {
+ ret = document.getElementsByName("test").length == 0;
+ ret = document.getElementsByName("test").length == 0;
+ ret = document.getElementsByName("test").length == 0;
+ ret = document.getElementsByName("test").length == 0;
+ ret = document.getElementsByName("test").length == 0;
+ }
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="testF10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2 id="testA10"><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2 id="testB10"><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2 id="testC10"><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2 id="testD10"><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2 id="testE10"><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-traverse.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-traverse.html
new file mode 100644
index 000000000..99fa8d81e
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dom-traverse.html
@@ -0,0 +1,2972 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+window.onload = function(){
+startTest("dom-traverse", 'c6c3a905');
+
+// Try to force real results
+var ret, tmp;
+var num = 40;
+var html = document.body.innerHTML;
+
+ prep(function(){
+ html = html.replace(/id="test.*?"/g, 'id="test' + num + '"');
+ html = html.replace(/name="test.*?"/g, 'name="test' + num + '"');
+ html = html.replace(/class="foo.*?"/g, 'class="foo test' + num + ' bar"');
+ var div = document.createElement("div");
+ div.innerHTML = html;
+ document.body.appendChild( div );
+ });
+
+ test( "firstChild", function(){
+ var nodes = document.body.childNodes, nl = nodes.length;
+
+ for ( var i = 0; i < num; i++ ) {
+ for ( var j = 0; j < nl; j++ ) {
+ var cur = nodes[j];
+ while ( cur )
+ cur = cur.firstChild;
+ ret = cur;
+ }
+ }
+ });
+
+ test( "lastChild", function(){
+ var nodes = document.body.childNodes, nl = nodes.length;
+
+ for ( var i = 0; i < num; i++ ) {
+ for ( var j = 0; j < nl; j++ ) {
+ var cur = nodes[j];
+ while ( cur )
+ cur = cur.lastChild;
+ ret = cur;
+ }
+ }
+ });
+
+ test( "nextSibling", function(){
+ for ( var i = 0; i < num * 2; i++ ) {
+ var cur = document.body.firstChild;
+ while ( cur )
+ cur = cur.nextSibling;
+ ret = cur;
+ }
+ });
+
+ test( "previousSibling", function(){
+ for ( var i = 0; i < num * 2; i++ ) {
+ var cur = document.body.lastChild;
+ while ( cur )
+ cur = cur.previousSibling;
+ ret = cur;
+ }
+ });
+
+ test( "childNodes", function(){
+ for ( var i = 0; i < num; i++ ) {
+ var nodes = document.body.childNodes;
+ for ( var j = 0; j < nodes.length; j++ )
+ ret = nodes[j];
+ }
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-3d-cube.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-3d-cube.html
new file mode 100644
index 000000000..cb0d8966e
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-3d-cube.html
@@ -0,0 +1,340 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// 3D Cube Rotation
+// http://www.speich.net/computer/moztesting/3d.htm
+// Created by Simon Speich
+
+var Q = new Array();
+var MTrans = new Array(); // transformation matrix
+var MQube = new Array(); // position information of qube
+var I = new Array(); // entity matrix
+var Origin = new Object();
+var Testing = new Object();
+var LoopTimer;
+
+var DisplArea = new Object();
+DisplArea.Width = 300;
+DisplArea.Height = 300;
+
+function DrawLine(From, To) {
+ var x1 = From.V[0];
+ var x2 = To.V[0];
+ var y1 = From.V[1];
+ var y2 = To.V[1];
+ var dx = Math.abs(x2 - x1);
+ var dy = Math.abs(y2 - y1);
+ var x = x1;
+ var y = y1;
+ var IncX1, IncY1;
+ var IncX2, IncY2;
+ var Den;
+ var Num;
+ var NumAdd;
+ var NumPix;
+
+ if (x2 >= x1) { IncX1 = 1; IncX2 = 1; }
+ else { IncX1 = -1; IncX2 = -1; }
+ if (y2 >= y1) { IncY1 = 1; IncY2 = 1; }
+ else { IncY1 = -1; IncY2 = -1; }
+ if (dx >= dy) {
+ IncX1 = 0;
+ IncY2 = 0;
+ Den = dx;
+ Num = dx / 2;
+ NumAdd = dy;
+ NumPix = dx;
+ }
+ else {
+ IncX2 = 0;
+ IncY1 = 0;
+ Den = dy;
+ Num = dy / 2;
+ NumAdd = dx;
+ NumPix = dy;
+ }
+
+ NumPix = Math.round(Q.LastPx + NumPix);
+
+ var i = Q.LastPx;
+ for (; i < NumPix; i++) {
+ Num += NumAdd;
+ if (Num >= Den) {
+ Num -= Den;
+ x += IncX1;
+ y += IncY1;
+ }
+ x += IncX2;
+ y += IncY2;
+ }
+ Q.LastPx = NumPix;
+}
+
+function CalcCross(V0, V1) {
+ var Cross = new Array();
+ Cross[0] = V0[1]*V1[2] - V0[2]*V1[1];
+ Cross[1] = V0[2]*V1[0] - V0[0]*V1[2];
+ Cross[2] = V0[0]*V1[1] - V0[1]*V1[0];
+ return Cross;
+}
+
+function CalcNormal(V0, V1, V2) {
+ var A = new Array(); var B = new Array();
+ for (var i = 0; i < 3; i++) {
+ A[i] = V0[i] - V1[i];
+ B[i] = V2[i] - V1[i];
+ }
+ A = CalcCross(A, B);
+ var Length = Math.sqrt(A[0]*A[0] + A[1]*A[1] + A[2]*A[2]);
+ for (var i = 0; i < 3; i++) A[i] = A[i] / Length;
+ A[3] = 1;
+ return A;
+}
+
+function CreateP(X,Y,Z) {
+ this.V = [X,Y,Z,1];
+}
+
+// mulitplies two matrices
+function MMulti(M1, M2) {
+ var M = [[],[],[],[]];
+ var i = 0;
+ var j = 0;
+ for (; i < 4; i++) {
+ j = 0;
+ for (; j < 4; j++) M[i][j] = M1[i][0] * M2[0][j] + M1[i][1] * M2[1][j] + M1[i][2] * M2[2][j] + M1[i][3] * M2[3][j];
+ }
+ return M;
+}
+
+//multiplies matrix with vector
+function VMulti(M, V) {
+ var Vect = new Array();
+ var i = 0;
+ for (;i < 4; i++) Vect[i] = M[i][0] * V[0] + M[i][1] * V[1] + M[i][2] * V[2] + M[i][3] * V[3];
+ return Vect;
+}
+
+function VMulti2(M, V) {
+ var Vect = new Array();
+ var i = 0;
+ for (;i < 3; i++) Vect[i] = M[i][0] * V[0] + M[i][1] * V[1] + M[i][2] * V[2];
+ return Vect;
+}
+
+// add to matrices
+function MAdd(M1, M2) {
+ var M = [[],[],[],[]];
+ var i = 0;
+ var j = 0;
+ for (; i < 4; i++) {
+ j = 0;
+ for (; j < 4; j++) M[i][j] = M1[i][j] + M2[i][j];
+ }
+ return M;
+}
+
+function Translate(M, Dx, Dy, Dz) {
+ var T = [
+ [1,0,0,Dx],
+ [0,1,0,Dy],
+ [0,0,1,Dz],
+ [0,0,0,1]
+ ];
+ return MMulti(T, M);
+}
+
+function RotateX(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [1,0,0,0],
+ [0,Cos,-Sin,0],
+ [0,Sin,Cos,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function RotateY(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [Cos,0,Sin,0],
+ [0,1,0,0],
+ [-Sin,0,Cos,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function RotateZ(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [Cos,-Sin,0,0],
+ [Sin,Cos,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function DrawQube() {
+ // calc current normals
+ var CurN = new Array();
+ var i = 5;
+ Q.LastPx = 0;
+ for (; i > -1; i--) CurN[i] = VMulti2(MQube, Q.Normal[i]);
+ if (CurN[0][2] < 0) {
+ if (!Q.Line[0]) { DrawLine(Q[0], Q[1]); Q.Line[0] = true; };
+ if (!Q.Line[1]) { DrawLine(Q[1], Q[2]); Q.Line[1] = true; };
+ if (!Q.Line[2]) { DrawLine(Q[2], Q[3]); Q.Line[2] = true; };
+ if (!Q.Line[3]) { DrawLine(Q[3], Q[0]); Q.Line[3] = true; };
+ }
+ if (CurN[1][2] < 0) {
+ if (!Q.Line[2]) { DrawLine(Q[3], Q[2]); Q.Line[2] = true; };
+ if (!Q.Line[9]) { DrawLine(Q[2], Q[6]); Q.Line[9] = true; };
+ if (!Q.Line[6]) { DrawLine(Q[6], Q[7]); Q.Line[6] = true; };
+ if (!Q.Line[10]) { DrawLine(Q[7], Q[3]); Q.Line[10] = true; };
+ }
+ if (CurN[2][2] < 0) {
+ if (!Q.Line[4]) { DrawLine(Q[4], Q[5]); Q.Line[4] = true; };
+ if (!Q.Line[5]) { DrawLine(Q[5], Q[6]); Q.Line[5] = true; };
+ if (!Q.Line[6]) { DrawLine(Q[6], Q[7]); Q.Line[6] = true; };
+ if (!Q.Line[7]) { DrawLine(Q[7], Q[4]); Q.Line[7] = true; };
+ }
+ if (CurN[3][2] < 0) {
+ if (!Q.Line[4]) { DrawLine(Q[4], Q[5]); Q.Line[4] = true; };
+ if (!Q.Line[8]) { DrawLine(Q[5], Q[1]); Q.Line[8] = true; };
+ if (!Q.Line[0]) { DrawLine(Q[1], Q[0]); Q.Line[0] = true; };
+ if (!Q.Line[11]) { DrawLine(Q[0], Q[4]); Q.Line[11] = true; };
+ }
+ if (CurN[4][2] < 0) {
+ if (!Q.Line[11]) { DrawLine(Q[4], Q[0]); Q.Line[11] = true; };
+ if (!Q.Line[3]) { DrawLine(Q[0], Q[3]); Q.Line[3] = true; };
+ if (!Q.Line[10]) { DrawLine(Q[3], Q[7]); Q.Line[10] = true; };
+ if (!Q.Line[7]) { DrawLine(Q[7], Q[4]); Q.Line[7] = true; };
+ }
+ if (CurN[5][2] < 0) {
+ if (!Q.Line[8]) { DrawLine(Q[1], Q[5]); Q.Line[8] = true; };
+ if (!Q.Line[5]) { DrawLine(Q[5], Q[6]); Q.Line[5] = true; };
+ if (!Q.Line[9]) { DrawLine(Q[6], Q[2]); Q.Line[9] = true; };
+ if (!Q.Line[1]) { DrawLine(Q[2], Q[1]); Q.Line[1] = true; };
+ }
+ Q.Line = [false,false,false,false,false,false,false,false,false,false,false,false];
+ Q.LastPx = 0;
+}
+
+function Loop() {
+ if (Testing.LoopCount > Testing.LoopMax) return;
+ var TestingStr = String(Testing.LoopCount);
+ while (TestingStr.length < 3) TestingStr = "0" + TestingStr;
+ MTrans = Translate(I, -Q[8].V[0], -Q[8].V[1], -Q[8].V[2]);
+ MTrans = RotateX(MTrans, 1);
+ MTrans = RotateY(MTrans, 3);
+ MTrans = RotateZ(MTrans, 5);
+ MTrans = Translate(MTrans, Q[8].V[0], Q[8].V[1], Q[8].V[2]);
+ MQube = MMulti(MTrans, MQube);
+ var i = 8;
+ for (; i > -1; i--) {
+ Q[i].V = VMulti(MTrans, Q[i].V);
+ }
+ DrawQube();
+ Testing.LoopCount++;
+ Loop();
+}
+
+function Init(CubeSize) {
+ // init/reset vars
+ Origin.V = [150,150,20,1];
+ Testing.LoopCount = 0;
+ Testing.LoopMax = 50;
+ Testing.TimeMax = 0;
+ Testing.TimeAvg = 0;
+ Testing.TimeMin = 0;
+ Testing.TimeTemp = 0;
+ Testing.TimeTotal = 0;
+ Testing.Init = false;
+
+ // transformation matrix
+ MTrans = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // position information of qube
+ MQube = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // entity matrix
+ I = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // create qube
+ Q[0] = new CreateP(-CubeSize,-CubeSize, CubeSize);
+ Q[1] = new CreateP(-CubeSize, CubeSize, CubeSize);
+ Q[2] = new CreateP( CubeSize, CubeSize, CubeSize);
+ Q[3] = new CreateP( CubeSize,-CubeSize, CubeSize);
+ Q[4] = new CreateP(-CubeSize,-CubeSize,-CubeSize);
+ Q[5] = new CreateP(-CubeSize, CubeSize,-CubeSize);
+ Q[6] = new CreateP( CubeSize, CubeSize,-CubeSize);
+ Q[7] = new CreateP( CubeSize,-CubeSize,-CubeSize);
+
+ // center of gravity
+ Q[8] = new CreateP(0, 0, 0);
+
+ // anti-clockwise edge check
+ Q.Edge = [[0,1,2],[3,2,6],[7,6,5],[4,5,1],[4,0,3],[1,5,6]];
+
+ // calculate squad normals
+ Q.Normal = new Array();
+ for (var i = 0; i < Q.Edge.length; i++) Q.Normal[i] = CalcNormal(Q[Q.Edge[i][0]].V, Q[Q.Edge[i][1]].V, Q[Q.Edge[i][2]].V);
+
+ // line drawn ?
+ Q.Line = [false,false,false,false,false,false,false,false,false,false,false,false];
+
+ // create line pixels
+ Q.NumPx = 9 * 2 * CubeSize;
+ for (var i = 0; i < Q.NumPx; i++) new CreateP(0,0,0);
+
+ MTrans = Translate(MTrans, Origin.V[0], Origin.V[1], Origin.V[2]);
+ MQube = MMulti(MTrans, MQube);
+
+ var i = 0;
+ for (; i < 9; i++) {
+ Q[i].V = VMulti(MTrans, Q[i].V);
+ }
+ DrawQube();
+ Testing.Init = true;
+ Loop();
+}
+
+window.onload = function(){ startTest("dromaeo-3d-cube", '979cd0f1');
+
+test("Rotate 3D Cube", function(){
+ Init(20);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-core-eval.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-core-eval.html
new file mode 100644
index 000000000..5b6cd2cee
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-core-eval.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+window.onload = function(){ startTest("dromaeo-core-eval", 'efec1da2');
+
+// Try to force real results
+var ret, tmp;
+
+// The commands that we'll be evaling
+var cmd = 'var str="";for(var i=0;i<1000;i++){str += "a";}ret = str;';
+
+// TESTS: eval()
+var num = 4;
+
+prep(function(){
+ tmp = cmd;
+
+ for ( var n = 0; n < num; n++ )
+ tmp += tmp;
+});
+
+test( "Normal eval", function(){
+ eval(tmp);
+});
+
+test( "new Function", function(){
+ (new Function(tmp))();
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-array.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-array.html
new file mode 100644
index 000000000..d45fb36b7
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-array.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+window.onload = function(){ startTest("dromaeo-object-array", 'bde4f5f4');
+
+var ret = [], tmp, num = 500;
+var i = 1024;
+
+ // TESTS: Array Building
+
+ test("Array Construction, []", function(){
+ for ( var j = 0; j < i * 15; j++ ) {
+ ret = [];
+ ret.length = i;
+ }
+ });
+
+ test("Array Construction, new Array()", function(){
+ for ( var j = 0; j < i * 10; j++ )
+ ret = new Array(i);
+ });
+
+ test("Array Construction, unshift", function(){
+ ret = [];
+ for ( var j = 0; j < i; j++ )
+ ret.unshift(j);
+ });
+
+ test("Array Construction, splice", function(){
+ ret = [];
+ for ( var j = 0; j < i; j++ )
+ ret.splice(0,0,j);
+ });
+
+ test("Array Deconstruction, shift", function(){
+ var a = ret.slice();
+ for ( var j = 0; j < i; j++ )
+ tmp = a.shift();
+ });
+
+ test("Array Deconstruction, splice", function(){
+ var a = ret.slice();
+ for ( var j = 0; j < i; j++ )
+ tmp = a.splice(0,1);
+ });
+
+ test("Array Construction, push", function(){
+ ret = [];
+ for ( var j = 0; j < i * 25; j++ )
+ ret.push(j);
+ });
+
+ test("Array Deconstruction, pop", function(){
+ var a = ret.slice();
+ for ( var j = 0; j < i * 25; j++ )
+ tmp = a.pop();
+ });
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-regexp.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-regexp.html
new file mode 100644
index 000000000..fe36ccdd2
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-regexp.html
@@ -0,0 +1,383 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+window.onload = function(){ startTest("dromaeo-object-regexp", '812dde38');
+
+// Try to force real results
+var str = [], tmp, ret, re, testStrings = [];
+var i = 65536;
+
+function randomChar(){
+ return String.fromCharCode( (25 * Math.random()) + 97 );
+}
+
+for ( var i = 0; i < 16384; i++ )
+ str.push( randomChar() );
+
+str = str.join("");
+str += str;
+str += str;
+
+function generateTestStrings(count){
+ var t, nest;
+ if ( testStrings.length >= count )
+ return testStrings.slice(0, count);
+ for ( var i = testStrings.length; i < count; i++ ) {
+ // Make all tested strings different
+ t = randomChar() + str + randomChar();
+ nest = Math.floor(4 * Math.random());
+ for ( var j = 0; j < nest; j++ ) {
+ t = randomChar() + t + randomChar();
+ }
+ // Try to minimize benchmark order dependencies by
+ // exercising the strings
+ for ( var j = 0; j < t.length; j += 100 ) {
+ ret = t[j];
+ ret = t.substring(j, j + 100);
+ }
+ testStrings[i] = t;
+ }
+ return testStrings;
+}
+
+ // TESTS: split
+
+ prep(function(){
+ // It's impossible to specify empty regexp by simply
+ // using two slashes as this will be interpreted as a
+ // comment start. See note to ECMA-262 5th 7.8.5.
+ re = /(?:)/;
+ tmp = generateTestStrings(30);
+ });
+
+ test( "Compiled Object Empty Split", function(){
+ for ( var i = 0; i < 30; i++ )
+ ret = tmp[i].split( re );
+ });
+
+ prep(function(){
+ re = /a/;
+ tmp = generateTestStrings(30);
+ });
+
+ test( "Compiled Object Char Split", function(){
+ for ( var i = 0; i < 30; i++ )
+ ret = tmp[i].split( re );
+ });
+
+ prep(function(){
+ re = /.*/;
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Object Variable Split", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = tmp[i].split( re );
+ });
+
+ // TESTS: Compiled RegExps
+
+ prep(function(){
+ re = /aaaaaaaaaa/g;
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Match", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = tmp[i].match( re );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Test", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = re.test( tmp[i] );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Empty Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, "" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled 12 Char Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, "asdfasdfasdf" );
+ });
+
+ prep(function(){
+ re = new RegExp("aaaaaaaaaa", "g");
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Object Match", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = tmp[i].match( re );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Object Test", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = re.test( tmp[i] );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Object Empty Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, "" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Object 12 Char Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, "asdfasdfasdf" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Object 12 Char Replace Function", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, function(all){
+ return "asdfasdfasdf";
+ });
+ });
+
+ // TESTS: Variable Length
+
+ prep(function(){
+ re = /a.*a/;
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Variable Match", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = tmp[i].match( re );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Variable Test", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = re.test( tmp[i] );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Variable Empty Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, "" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Variable 12 Char Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, "asdfasdfasdf" );
+ });
+
+ prep(function(){
+ re = new RegExp("aaaaaaaaaa", "g");
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Variable Object Match", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = tmp[i].match( re );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Variable Object Test", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = re.test( tmp[i] );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Variable Object Empty Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, "" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Variable Object 12 Char Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, "asdfasdfasdf" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Variable Object 12 Char Replace Function", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, function(all){
+ return "asdfasdfasdf";
+ });
+ });
+
+ // TESTS: Capturing
+
+ prep(function(){
+ re = /aa(b)aa/g;
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Compiled Capture Match", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = tmp[i].match( re );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Capture Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, "asdfasdfasdf" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Capture Replace with Capture", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, "asdf\\1asdfasdf" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Capture Replace with Capture Function", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, function(all,capture){
+ return "asdf" + capture + "asdfasdf";
+ });
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Compiled Capture Replace with Upperase Capture Function", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( re, function(all,capture){
+ return capture.toUpperCase();
+ });
+ });
+
+ // TESTS: Uncompiled RegExps
+
+ prep(function(){
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Uncompiled Match", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = tmp[i].match( /aaaaaaaaaa/g );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Uncompiled Test", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = (/aaaaaaaaaa/g).test( tmp[i] );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Uncompiled Empty Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( /aaaaaaaaaa/g, "" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Uncompiled 12 Char Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( /aaaaaaaaaa/g, "asdfasdfasdf" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Uncompiled Object Match", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = tmp[i].match( new RegExp("aaaaaaaaaa", "g") );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(100);
+ });
+
+ test( "Uncompiled Object Test", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = (new RegExp("aaaaaaaaaa", "g")).test( tmp[i] );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Uncompiled Object Empty Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( new RegExp("aaaaaaaaaa", "g"), "" );
+ });
+
+ prep(function(){
+ tmp = generateTestStrings(50);
+ });
+
+ test( "Uncompiled Object 12 Char Replace", function(){
+ for ( var i = 0; i < 50; i++ )
+ ret = tmp[i].replace( new RegExp("aaaaaaaaaa", "g"), "asdfasdfasdf" );
+ });
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-string.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-string.html
new file mode 100644
index 000000000..836b6e445
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-object-string.html
@@ -0,0 +1,202 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+window.onload = function(){ startTest("dromaeo-object-string", 'ef8605c3');
+
+// Try to force real results
+var ret;
+var num = 80000;
+
+// TESTS: String concatenation
+
+ test( "Concat String", function(){
+ var str = "";
+ for ( var i = 0; i < num; i++ )
+ str += "a";
+ ret = str;
+ });
+
+ test( "Concat String Object", function(){
+ var str = new String();
+ for ( var i = 0; i < num; i++ )
+ str += "a";
+ ret = str;
+ });
+
+ test( "Concat String from charCode", function(){
+ var str = "";
+ for ( var i = 0; i < num / 2; i++ )
+ str += String.fromCharCode(97);
+ ret = str;
+ });
+
+ test( "Array String Join", function(){
+ var str = [];
+ for ( var i = 0; i < num / 2; i++ )
+ str.push("a");
+ ret = str.join("");
+ });
+
+var ostr = [], tmp, tmp2, num = 5000, tmpstr;
+
+for ( var i = 0; i < 16384; i++ )
+ ostr.push( String.fromCharCode( (25 * Math.random()) + 97 ) );
+
+ostr = ostr.join("");
+ostr += ostr;
+ostr += ostr;
+
+var str;
+var i = 52288;
+
+ prep(function(){
+ str = new String(ostr);
+ });
+
+ // TESTS: split
+ test( "String Split", function(){
+ ret = str.split("");
+ });
+
+ prep(function(){
+ tmpstr = str;
+ tmpstr += tmpstr;
+ tmpstr += tmpstr;
+ tmpstr += tmpstr;
+ tmpstr += tmpstr;
+ });
+
+ test( "String Split on Char", function(){
+ ret = tmpstr.split("a");
+ });
+
+ prep(function(){
+ str += str;
+ });
+
+ // TESTS: characters
+
+ test( "charAt", function(){
+ for ( var j = 0; j < num; j++ ) {
+ ret = str.charAt(0);
+ ret = str.charAt(str.length - 1);
+ ret = str.charAt( 15000 );
+ ret = str.charAt( 12000 );
+ }
+ });
+
+ test( "[Number]", function(){
+ for ( var j = 0; j < num; j++ ) {
+ ret = str[0];
+ ret = str[str.length - 1];
+ ret = str[ 15000 ];
+ ret = str[ 10000 ];
+ ret = str[ 5000 ];
+ }
+ });
+
+ test( "charCodeAt", function(){
+ for ( var j = 0; j < num; j++ ) {
+ ret = str.charCodeAt(0);
+ ret = str.charCodeAt(str.length - 1);
+ ret = str.charCodeAt( 15000 );
+ ret = str.charCodeAt( 10000 );
+ ret = str.charCodeAt( 5000 );
+ }
+ });
+
+ // TESTS: indexOf
+
+ test( "indexOf", function(){
+ for ( var j = 0; j < num; j++ ) {
+ ret = str.indexOf("a");
+ ret = str.indexOf("b");
+ ret = str.indexOf("c");
+ ret = str.indexOf("d");
+ }
+ });
+
+ test( "lastIndexOf", function(){
+ for ( var j = 0; j < num; j++ ) {
+ ret = str.lastIndexOf("a");
+ ret = str.lastIndexOf("b");
+ ret = str.lastIndexOf("c");
+ ret = str.lastIndexOf("d");
+ }
+ });
+
+ // TESTS: slice
+
+ test( "slice", function(){
+ for ( var j = 0; j < num; j++ ) {
+ ret = str.slice(0);
+ ret = str.slice(0,5);
+ ret = str.slice(-1);
+ ret = str.slice(-6,-1);
+ ret = str.slice( 15000, 15005 );
+ ret = str.slice( 12000, -1 );
+ }
+ });
+
+ // TESTS: substr
+
+ test( "substr", function(){
+ for ( var j = 0; j < num; j++ ) {
+ ret = str.substr(0);
+ ret = str.substr(0,5);
+ ret = str.substr(-1);
+ ret = str.substr(-6,1);
+ ret = str.substr( 15000, 5 );
+ ret = str.substr( 12000, 5 );
+ }
+ });
+
+ // TESTS: substring
+
+ test( "substring", function(){
+ for ( var j = 0; j < num; j++ ) {
+ ret = str.substring(0);
+ ret = str.substring(0,5);
+ ret = str.substring(-1);
+ ret = str.substring(-6,-1);
+ ret = str.substring( 15000, 15005 );
+ ret = str.substring( 12000, -1 );
+ }
+ });
+
+ // TESTS: toLower/UpperCase
+
+ test( "toLowerCase", function(){
+ for ( var j = 0; j < num / 1000; j++ ) {
+ ret = str.toLowerCase();
+ }
+ });
+
+ test( "toUpperCase", function(){
+ for ( var j = 0; j < num / 1000; j++ ) {
+ ret = str.toUpperCase();
+ }
+ });
+
+ // TESTS: comparing
+ prep(function(){
+ tmp = str;
+ tmp2 = str;
+ });
+
+ test( "comparing", function(){
+ tmp = "a" + tmp + "a";
+ tmp2 = "a" + tmp2 + "a";
+ for ( var j = 0; j < num / 1000; j++ ) {
+ ret = tmp == tmp2;
+ ret = tmp < tmp2;
+ ret = tmp > tmp2;
+ }
+ });
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-string-base64.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-string-base64.html
new file mode 100644
index 000000000..bb82256a1
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/dromaeo-string-base64.html
@@ -0,0 +1,155 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla XML-RPC Client component.
+ *
+ * The Initial Developer of the Original Code is
+ * Digital Creations 2, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 2000
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Martijn Pieters <mj@digicool.com> (original author)
+ * Samuel Sieb <samuel@sieb.net>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+// From: http://lxr.mozilla.org/mozilla/source/extensions/xml-rpc/src/nsXmlRpcClient.js#956
+
+/* Convert data (an array of integers) to a Base64 string. */
+var toBase64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+var base64Pad = '=';
+
+function toBase64(data) {
+ var result = '';
+ var length = data.length;
+ var i;
+ // Convert every three bytes to 4 ascii characters.
+ for (i = 0; i < (length - 2); i += 3) {
+ result += toBase64Table[data.charCodeAt(i) >> 2];
+ result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i+1) >> 4)];
+ result += toBase64Table[((data.charCodeAt(i+1) & 0x0f) << 2) + (data.charCodeAt(i+2) >> 6)];
+ result += toBase64Table[data.charCodeAt(i+2) & 0x3f];
+ }
+
+ // Convert the remaining 1 or 2 bytes, pad out to 4 characters.
+ if (length%3) {
+ i = length - (length%3);
+ result += toBase64Table[data.charCodeAt(i) >> 2];
+ if ((length%3) == 2) {
+ result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.chartCodeAt(i+1) >> 4)];
+ result += toBase64Table[(data.charCodeAt(i+1) & 0x0f) << 2];
+ result += base64Pad;
+ } else {
+ result += toBase64Table[(data.charCodeAt(i) & 0x03) << 4];
+ result += base64Pad + base64Pad;
+ }
+ }
+
+ return result;
+}
+
+/* Convert Base64 data to a string */
+var toBinaryTable = [
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
+ 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1,
+ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,
+ 15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1,
+ -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
+ 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1
+];
+
+function base64ToString(data) {
+ var result = '';
+ var leftbits = 0; // number of bits decoded, but yet to be appended
+ var leftdata = 0; // bits decoded, but yet to be appended
+
+ // Convert one by one.
+ for (var i = 0; i < data.length; i++) {
+ var c = toBinaryTable[data.charCodeAt(i) & 0x7f];
+ var padding = (data.charCodeAt(i) == base64Pad.charCodeAt(0));
+ // Skip illegal characters and whitespace
+ if (c == -1) continue;
+
+ // Collect data into leftdata, update bitcount
+ leftdata = (leftdata << 6) | c;
+ leftbits += 6;
+
+ // If we have 8 or more bits, append 8 bits to the result
+ if (leftbits >= 8) {
+ leftbits -= 8;
+ // Append if not padding.
+ if (!padding)
+ result += String.fromCharCode((leftdata >> leftbits) & 0xff);
+ leftdata &= (1 << leftbits) - 1;
+ }
+ }
+
+ // If there are any bits left, the base64 string was corrupted
+ if (leftbits)
+ throw Components.Exception('Corrupted base64 string');
+
+ return result;
+}
+
+window.onload = function(){ startTest("dromaeo-string-base64", '09340c18');
+
+var str = [];
+
+for ( var i = 0; i < 4096; i++ )
+ str.push( String.fromCharCode( (25 * Math.random()) + 97 ) );
+
+str = str.join("");
+str += str;
+str += str;
+
+var base64;
+
+test( "Convert String to Base 64", function(){
+ base64 = toBase64(str);
+});
+
+prep(function(){
+ if ( !base64 )
+ base64 = toBase64(str);
+});
+
+test( "Convert Base 64 to String", function(){
+ if ( str !== base64ToString(base64) ) {
+ throw "String conversion mis-match.";
+ }
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html
new file mode 100644
index 000000000..916a1f1c4
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html
@@ -0,0 +1,2949 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/jquery-1.6.4.js"></script>
+<script>
+window.onload = function(){
+startTest("jslib-attr-jquery", 'bab725d6');
+
+// Try to force real results
+var ret, tmp, div;
+
+var html = document.body.innerHTML;
+
+ prep(function(){
+ div = jQuery("div");
+ var tmp = document.createElement("div");
+ tmp.innerHTML = html;
+ document.body.appendChild( tmp );
+ });
+
+ test("jQuery - addClass", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.addClass("foo");
+ });
+
+ test("jQuery - removeClass", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.removeClass("foo");
+ });
+
+ test("jQuery - hasClass x10", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = div.hasClass("test");
+ });
+
+ test("jQuery - attr(class) x100", function(){
+ for ( var i = 0; i < 1000; i++ )
+ ret = div.attr("class");
+ });
+
+ test("jQuery - attr(class,test)", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.attr("class","test");
+ });
+
+ test("jQuery - removeAttribute", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.removeAttr("id");
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-attr-prototype.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-attr-prototype.html
new file mode 100644
index 000000000..238df571a
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-attr-prototype.html
@@ -0,0 +1,2949 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/prototype-1.7.js"></script>
+<script>
+window.onload = function(){
+startTest("jslib-attr-prototype", 'a2753b79');
+
+// Try to force real results
+var ret, tmp, div;
+
+var html = document.body.innerHTML;
+
+ prep(function(){
+ div = $$("div");
+ var tmp = document.createElement("div");
+ tmp.innerHTML = html;
+ document.body.appendChild( tmp );
+ });
+
+ test("Prototype - addClassName", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.invoke("addClassName", "foo");
+ });
+
+ test("Prototype - removeClassName", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.invoke("removeClassName", "foo");
+ });
+
+ test("Prototype - hasClassName", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("hasClassName", "test");
+ });
+
+ test("Prototype - readAttribute", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("readAttribute", "class");
+ });
+
+ test("Prototype - writeAttribute", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.invoke("writeAttribute","class","test");
+ });
+
+ /* ???
+ test("Prototype - removeAttribute", function(){
+ });
+ */
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html
new file mode 100644
index 000000000..72b55528e
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html
@@ -0,0 +1,2936 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/jquery-1.6.4.js"></script>
+<script>
+window.onload = function(){
+startTest("jslib-event-jquery", 'e7fab8ee');
+
+// Try to force real results
+var ret, tmp, div;
+
+var html = document.body.innerHTML;
+
+function testfn(){}
+
+ prep(function(){
+ div = jQuery("div");
+ var tmp = document.createElement("div");
+ tmp.innerHTML = html;
+ document.body.appendChild( tmp );
+ });
+
+ test("jQuery - bind", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.bind("click", testfn);
+ });
+
+ test("jQuery - trigger", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.trigger("click");
+ });
+
+ test("jQuery - unbind x10", function(){
+ for ( var i = 0; i < 100; i++ )
+ div.unbind("click", testfn);
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-event-prototype.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-event-prototype.html
new file mode 100644
index 000000000..71f29af34
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-event-prototype.html
@@ -0,0 +1,2936 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/prototype-1.7.js"></script>
+<script>
+window.onload = function(){
+startTest("jslib-event-prototype", '1c979bdc');
+
+// Try to force real results
+var ret, tmp, div;
+
+var html = document.body.innerHTML;
+
+function testfn(){}
+
+ prep(function(){
+ div = $$("div");
+ var tmp = document.createElement("div");
+ tmp.innerHTML = html;
+ document.body.appendChild( tmp );
+ });
+
+ test("Prototype - observe", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.invoke("observe", "click", testfn);
+ });
+
+ test("Prototype - fire", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.invoke("fire", "click");
+ });
+
+ test("Prototype - stopObserving", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.invoke("stopObserving", "click", testfn);
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html
new file mode 100644
index 000000000..dadff3b4f
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html
@@ -0,0 +1,2960 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/jquery-1.6.4.js"></script>
+<script>
+window.onload = function(){
+startTest("jslib-modify-jquery", '4dda1446');
+
+// Try to force real results
+var ret, tmp, div, a, dd;
+
+var html = document.body.innerHTML,
+ elem = document.createElement("div"),
+ elem2 = document.createElement("strong"),
+ elemStr = "<strong>some text</strong>";
+
+ prep(function(){
+ a = jQuery("a");
+ dd = jQuery("dd");
+ div = jQuery("div");
+ var tmp = document.createElement("div");
+ tmp.innerHTML = html;
+ document.body.appendChild( tmp );
+ });
+
+ /* // Need to find a good way to test this
+ test("jQuery - wrap()", function(){
+ div.wrap( elem );
+ });
+ */
+
+ test("jQuery - html()", function(){
+ dd.html( elemStr );
+ });
+
+ test("jQuery - before()", function(){
+ div.before( elemStr );
+ });
+
+ test("jQuery - after()", function(){
+ div.before( elemStr );
+ });
+
+ test("jQuery - prepend()", function(){
+ div.prepend( elemStr );
+ });
+
+ test("jQuery - append()", function(){
+ div.append( elemStr );
+ });
+
+ /* // Need a good way to test
+ test("jQuery - replaceWith()", function(){
+ div.replaceWith( elem );
+ });
+
+ test("jQuery - remove()", function(){
+ div.remove();
+ });
+ */
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-prototype.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-prototype.html
new file mode 100644
index 000000000..da7acb2a2
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-prototype.html
@@ -0,0 +1,2960 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/prototype-1.7.js"></script>
+<script>
+window.onload = function(){
+startTest("jslib-modify-prototype", 'b0a7f89d');
+
+// Try to force real results
+var ret, tmp, div, a, dd;
+
+var html = document.body.innerHTML,
+ elem = document.createElement("div"),
+ elem2 = document.createElement("strong"),
+ elemStr = "<strong>some text</strong>";
+
+ prep(function(){
+ a = $$("a");
+ dd = $$("dd");
+ div = $$("div");
+ var tmp = document.createElement("div");
+ tmp.innerHTML = html;
+ document.body.appendChild( tmp );
+ });
+
+ /* // Need a good way to test this
+ test("Prototype - wrap()", function(){
+ div.invoke("wrap", "div");
+ });
+ */
+
+ test("Prototype - update()", function(){
+ dd.invoke("update", elemStr);
+ });
+
+ test("Prototype - before", function(){
+ div.invoke("insert", {before: elemStr});
+ });
+
+ test("Prototype - after", function(){
+ div.invoke("insert", {after: elemStr});
+ });
+
+ test("Prototype - prepend", function(){
+ div.invoke("insert", {top: elemStr});
+ });
+
+ test("Prototype - append", function(){
+ div.invoke("insert", {bottom: elemStr});
+ });
+
+ /* // Need a good way to test
+ test("Prototype - replace()", function(){
+ div.invoke("replace", elem );
+ });
+
+ test("Prototype - remove()", function(){
+ div.invoke("remove");
+ });
+ */
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html
new file mode 100644
index 000000000..1f9beac57
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html
@@ -0,0 +1,2958 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/jquery-1.6.4.js"></script>
+<script>
+window.onload = function(){
+startTest("jslib-style-jquery", '48860295');
+
+// Try to force real results
+var ret, tmp, div;
+
+var html = document.body.innerHTML;
+
+ prep(function(){
+ div = jQuery("div");
+ var tmp = document.createElement("div");
+ tmp.innerHTML = html;
+ document.body.appendChild( tmp );
+ });
+
+ test("jQuery - css(color) x100", function(){
+ for ( var i = 0; i < 1000; i++ )
+ ret = div.css("color");
+ });
+
+ test("jQuery - css(color,red)", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.css("color","red");
+ });
+
+ test("jQuery - height() x10", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = div.height();
+ });
+
+ test("jQuery - width() x10", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = div.width();
+ });
+
+ test("jQuery - .is(:visible)", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.is(":visible");
+ });
+
+ test("jQuery - .show()", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.show();
+ });
+
+ test("jQuery - .hide()", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.hide();
+ });
+
+ test("jQuery - .toggle()", function(){
+ div.toggle();
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-style-prototype.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-style-prototype.html
new file mode 100644
index 000000000..5c7e69e8f
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-style-prototype.html
@@ -0,0 +1,2959 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/prototype-1.7.js"></script>
+<script>
+window.onload = function(){
+startTest("jslib-style-prototype", 'dd94462e');
+
+// Try to force real results
+var ret, tmp, div;
+
+var html = document.body.innerHTML;
+
+ prep(function(){
+ div = $$("div");
+ var tmp = document.createElement("div");
+ tmp.innerHTML = html;
+ document.body.appendChild( tmp );
+ });
+
+ test("Prototype - getStyle()", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("getStyle","color");
+ });
+
+ test("Prototype - setStyle()", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.invoke("setStyle","color","red");
+ });
+
+ test("Prototype - getHeight()", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("getHeight");
+ });
+
+ test("Prototype - getWidth()", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("getWidth");
+ });
+
+ test("Prototype - visible()", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("visible");
+ });
+
+ test("Prototype - .show()", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.invoke("show");
+ });
+
+ test("Prototype - .hide()", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.invoke("hide");
+ });
+
+ test("Prototype - .toggle() x10", function(){
+ for ( var i = 0; i < 10; i++ )
+ div.invoke("toggle");
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html
new file mode 100644
index 000000000..3c3d74182
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html
@@ -0,0 +1,2960 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/jquery-1.6.4.js"></script>
+<script>
+window.onload = function(){
+startTest("jslib-traverse-jquery", '08696563');
+
+// Try to force real results
+var ret, tmp, div, dd;
+
+var html = document.body.innerHTML;
+
+ prep(function(){
+ div = jQuery("div");
+ dd = jQuery("dd");
+ var tmp = document.createElement("div");
+ tmp.innerHTML = html;
+ document.body.appendChild( tmp );
+ });
+
+ test("jQuery - parent x10", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = div.parent().length;
+ });
+
+ test("jQuery - parents x10", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = div.parents().length;
+ });
+
+ test("jQuery - prev x10", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = div.prev().length;
+ });
+
+ test("jQuery - prevAll", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = dd.prevAll().length;
+ });
+
+ test("jQuery - next x10", function(){
+ for ( var i = 0; i < 100; i++ )
+ ret = div.next().length;
+ });
+
+ test("jQuery - nextAll", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = dd.nextAll().length;
+ });
+
+ test("jQuery - siblings", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = dd.siblings().length;
+ });
+
+ test("jQuery - children", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.children().length;
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-traverse-prototype.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-traverse-prototype.html
new file mode 100644
index 000000000..a8b795a20
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-traverse-prototype.html
@@ -0,0 +1,2960 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script src="../lib/prototype-1.7.js"></script>
+<script>
+window.onload = function(){
+startTest("jslib-traverse-prototype", '16ac685d');
+
+// Try to force real results
+var ret, tmp, div, dd;
+
+var html = document.body.innerHTML;
+
+ prep(function(){
+ div = $$("div");
+ dd = $$("dd");
+ var tmp = document.createElement("div");
+ tmp.innerHTML = html;
+ document.body.appendChild( tmp );
+ });
+
+ test("Prototype - up", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("up").length;
+ });
+
+ test("Prototype - ancestors", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("ancestors").length;
+ });
+
+ test("Prototype - previous", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("previous").length;
+ });
+
+ test("Prototype - previousSiblings", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = dd.invoke("previousSiblings").length;
+ });
+
+ test("Prototype - next", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("next").length;
+ });
+
+ test("Prototype - nextSiblings", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = dd.invoke("nextSiblings").length;
+ });
+
+ test("Prototype - siblings", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = dd.invoke("siblings").length;
+ });
+
+ test("Prototype - childElements", function(){
+ for ( var i = 0; i < 10; i++ )
+ ret = div.invoke("childElements").length;
+ });
+
+endTest();
+};
+</script>
+</head>
+<body>
+ <div class="head">
+ <p><a href="http://www.w3.org/"><img height=48 alt=W3C src="72px.png" width=72></a>
+
+ <h1 id="title">Selectors</h1>
+
+ <h2>W3C Working Draft 15 December 2005</h2>
+
+ <dl>
+
+ <dt>This version:
+
+ <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215">
+ http://www.w3.org/TR/2005/WD-css3-selectors-20051215</a>
+
+ <dt>Latest version:
+
+ <dd><a href="http://www.w3.org/TR/css3-selectors">
+ http://www.w3.org/TR/css3-selectors</a>
+
+ <dt>Previous version:
+
+ <dd><a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113">
+ http://www.w3.org/TR/2001/CR-css3-selectors-20011113</a>
+
+ <dt><a name=editors-list></a>Editors:
+
+ <dd class="vcard"><span class="fn">Daniel Glazman</span> (Invited Expert)</dd>
+
+ <dd class="vcard"><a lang="tr" class="url fn" href="http://www.tantek.com/">Tantek &Ccedil;elik</a> (Invited Expert)
+
+ <dd class="vcard"><a href="mailto:ian@hixie.ch" class="url fn">Ian Hickson</a> (<span
+ class="company"><a href="http://www.google.com/">Google</a></span>)
+
+ <dd class="vcard"><span class="fn">Peter Linss</span> (former editor, <span class="company"><a
+ href="http://www.netscape.com/">Netscape/AOL</a></span>)
+
+ <dd class="vcard"><span class="fn">John Williams</span> (former editor, <span class="company"><a
+ href="http://www.quark.com/">Quark, Inc.</a></span>)
+
+ </dl>
+
+ <p class="copyright"><a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+ Copyright</a> &copy; 2005 <a href="http://www.w3.org/"><abbr
+ title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup>
+ (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+ Institute of Technology">MIT</abbr></a>, <a
+ href="http://www.ercim.org/"><acronym title="European Research
+ Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a
+ href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+
+ <hr title="Separator for header">
+
+ </div>
+
+ <h2><a name=abstract></a>Abstract</h2>
+
+ <p><em>Selectors</em> are patterns that match against elements in a
+ tree. Selectors have been optimized for use with HTML and XML, and
+ are designed to be usable in performance-critical code.</p>
+
+ <p><acronym title="Cascading Style Sheets">CSS</acronym> (Cascading
+ Style Sheets) is a language for describing the rendering of <acronym
+ title="Hypertext Markup Language">HTML</acronym> and <acronym
+ title="Extensible Markup Language">XML</acronym> documents on
+ screen, on paper, in speech, etc. CSS uses Selectors for binding
+ style properties to elements in the document. This document
+ describes extensions to the selectors defined in CSS level 2. These
+ extended selectors will be used by CSS level 3.
+
+ <p>Selectors define the following function:</p>
+
+ <pre>expression &#x2217; element &rarr; boolean</pre>
+
+ <p>That is, given an element and a selector, this specification
+ defines whether that element matches the selector.</p>
+
+ <p>These expressions can also be used, for instance, to select a set
+ of elements, or a single element from a set of elements, by
+ evaluating the expression across all the elements in a
+ subtree. <acronym title="Simple Tree Transformation
+ Sheets">STTS</acronym> (Simple Tree Transformation Sheets), a
+ language for transforming XML trees, uses this mechanism. <a href="#refsSTTS">[STTS]</a></p>
+
+ <h2><a name=status></a>Status of this document</h2>
+
+ <p><em>This section describes the status of this document at the
+ time of its publication. Other documents may supersede this
+ document. A list of current W3C publications and the latest revision
+ of this technical report can be found in the <a
+ href="http://www.w3.org/TR/">W3C technical reports index at
+ http://www.w3.org/TR/.</a></em></p>
+
+ <p>This document describes the selectors that already exist in <a
+ href="#refsCSS1"><abbr title="CSS level 1">CSS1</abbr></a> and <a
+ href="#refsCSS21"><abbr title="CSS level 2">CSS2</abbr></a>, and
+ also proposes new selectors for <abbr title="CSS level
+ 3">CSS3</abbr> and other languages that may need them.</p>
+
+ <p>The CSS Working Group doesn't expect that all implementations of
+ CSS3 will have to implement all selectors. Instead, there will
+ probably be a small number of variants of CSS3, called profiles. For
+ example, it may be that only a profile for interactive user agents
+ will include all of the selectors.</p>
+
+ <p>This specification is a last call working draft for the the <a
+ href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>
+ (<a href="/Style/">Style Activity</a>). This
+ document is a revision of the <a
+ href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">Candidate
+ Recommendation dated 2001 November 13</a>, and has incorporated
+ implementation feedback received in the past few years. It is
+ expected that this last call will proceed straight to Proposed
+ Recommendation stage since it is believed that interoperability will
+ be demonstrable.</p>
+
+ <p>All persons are encouraged to review and implement this
+ specification and return comments to the (<a
+ href="http://lists.w3.org/Archives/Public/www-style/">archived</a>)
+ public mailing list <a
+ href="http://www.w3.org/Mail/Lists.html#www-style">www-style</a>
+ (see <a href="http://www.w3.org/Mail/Request">instructions</a>). W3C
+ Members can also send comments directly to the CSS Working
+ Group.
+ The deadline for comments is 14 January 2006.</p>
+
+ <p>This is still a draft document and may be updated, replaced, or
+ obsoleted by other documents at any time. It is inappropriate to
+ cite a W3C Working Draft as other than &quot;work in progress&quot;.
+
+ <p>This document may be available in <a
+ href="http://www.w3.org/Style/css3-selectors-updates/translations">translation</a>.
+ The English version of this specification is the only normative
+ version.
+
+ <div class="subtoc">
+
+ <h2 id="test10"><a name=contents>Table of contents</a></h2>
+
+ <ul class="toc">
+ <li class="tocline2"><a href="#context">1. Introduction</a>
+ <ul>
+ <li><a href="#dependencies">1.1. Dependencies</a> </li>
+ <li><a href="#terminology">1.2. Terminology</a> </li>
+ <li><a href="#changesFromCSS2">1.3. Changes from CSS2</a> </li>
+ </ul>
+ <li class="tocline2"><a href="#selectors">2. Selectors</a>
+ <li class="tocline2"><a href="#casesens">3. Case sensitivity</a>
+ <li class="tocline2"><a href="#selector-syntax">4. Selector syntax</a>
+ <li class="tocline2"><a href="#grouping">5. Groups of selectors</a>
+ <li class="tocline2"><a href="#simple-selectors">6. Simple selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#type-selectors">6.1. Type selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#typenmsp">6.1.1. Type selectors and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#universal-selector">6.2. Universal selector</a>
+ <ul>
+ <li><a href="#univnmsp">6.2.1. Universal selector and namespaces</a></li>
+ </ul>
+ <li class="tocline3"><a href="#attribute-selectors">6.3. Attribute selectors</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#attribute-representation">6.3.1. Representation of attributes and attributes values</a>
+ <li><a href="#attribute-substrings">6.3.2. Substring matching attribute selectors</a>
+ <li class="tocline4"><a href="#attrnmsp">6.3.3. Attribute selectors and namespaces</a>
+ <li class="tocline4"><a href="#def-values">6.3.4. Default attribute values in DTDs</a></li>
+ </ul>
+ <li class="tocline3"><a href="#class-html">6.4. Class selectors</a>
+ <li class="tocline3"><a href="#id-selectors">6.5. ID selectors</a>
+ <li class="tocline3"><a href="#pseudo-classes">6.6. Pseudo-classes</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#dynamic-pseudos">6.6.1. Dynamic pseudo-classes</a>
+ <li class="tocline4"><a href="#target-pseudo">6.6.2. The :target pseudo-class</a>
+ <li class="tocline4"><a href="#lang-pseudo">6.6.3. The :lang() pseudo-class</a>
+ <li class="tocline4"><a href="#UIstates">6.6.4. UI element states pseudo-classes</a>
+ <li class="tocline4"><a href="#structural-pseudos">6.6.5. Structural pseudo-classes</a>
+ <ul>
+ <li><a href="#root-pseudo">:root pseudo-class</a>
+ <li><a href="#nth-child-pseudo">:nth-child() pseudo-class</a>
+ <li><a href="#nth-last-child-pseudo">:nth-last-child()</a>
+ <li><a href="#nth-of-type-pseudo">:nth-of-type() pseudo-class</a>
+ <li><a href="#nth-last-of-type-pseudo">:nth-last-of-type()</a>
+ <li><a href="#first-child-pseudo">:first-child pseudo-class</a>
+ <li><a href="#last-child-pseudo">:last-child pseudo-class</a>
+ <li><a href="#first-of-type-pseudo">:first-of-type pseudo-class</a>
+ <li><a href="#last-of-type-pseudo">:last-of-type pseudo-class</a>
+ <li><a href="#only-child-pseudo">:only-child pseudo-class</a>
+ <li><a href="#only-of-type-pseudo">:only-of-type pseudo-class</a>
+ <li><a href="#empty-pseudo">:empty pseudo-class</a></li>
+ </ul>
+ <li class="tocline4"><a href="#negation">6.6.7. The negation pseudo-class</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li><a href="#pseudo-elements">7. Pseudo-elements</a>
+ <ul>
+ <li><a href="#first-line">7.1. The ::first-line pseudo-element</a>
+ <li><a href="#first-letter">7.2. The ::first-letter pseudo-element</a>
+ <li><a href="#UIfragments">7.3. The ::selection pseudo-element</a>
+ <li><a href="#gen-content">7.4. The ::before and ::after pseudo-elements</a></li>
+ </ul>
+ <li class="tocline2"><a href="#combinators">8. Combinators</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#descendant-combinators">8.1. Descendant combinators</a>
+ <li class="tocline3"><a href="#child-combinators">8.2. Child combinators</a>
+ <li class="tocline3"><a href="#sibling-combinators">8.3. Sibling combinators</a>
+ <ul class="toc">
+ <li class="tocline4"><a href="#adjacent-sibling-combinators">8.3.1. Adjacent sibling combinator</a>
+ <li class="tocline4"><a href="#general-sibling-combinators">8.3.2. General sibling combinator</a></li>
+ </ul>
+ </li>
+ </ul>
+ <li class="tocline2"><a href="#specificity">9. Calculating a selector's specificity</a>
+ <li class="tocline2"><a href="#w3cselgrammar">10. The grammar of Selectors</a>
+ <ul class="toc">
+ <li class="tocline3"><a href="#grammar">10.1. Grammar</a>
+ <li class="tocline3"><a href="#lex">10.2. Lexical scanner</a></li>
+ </ul>
+ <li class="tocline2"><a href="#downlevel">11. Namespaces and down-level clients</a>
+ <li class="tocline2"><a href="#profiling">12. Profiles</a>
+ <li><a href="#Conformance">13. Conformance and requirements</a>
+ <li><a href="#Tests">14. Tests</a>
+ <li><a href="#ACKS">15. Acknowledgements</a>
+ <li class="tocline2"><a href="#references">16. References</a>
+ </ul>
+
+ </div>
+
+ <h2><a name=context>1. Introduction</a></h2>
+
+ <h3><a name=dependencies></a>1.1. Dependencies</h3>
+
+ <p>Some features of this specification are specific to CSS, or have
+ particular limitations or rules specific to CSS. In this
+ specification, these have been described in terms of CSS2.1. <a
+ href="#refsCSS21">[CSS21]</a></p>
+
+ <h3><a name=terminology></a>1.2. Terminology</h3>
+
+ <p>All of the text of this specification is normative except
+ examples, notes, and sections explicitly marked as
+ non-normative.</p>
+
+ <h3><a name=changesFromCSS2></a>1.3. Changes from CSS2</h3>
+
+ <p><em>This section is non-normative.</em></p>
+
+ <p>The main differences between the selectors in CSS2 and those in
+ Selectors are:
+
+ <ul>
+
+ <li>the list of basic definitions (selector, group of selectors,
+ simple selector, etc.) has been changed; in particular, what was
+ referred to in CSS2 as a simple selector is now called a sequence
+ of simple selectors, and the term "simple selector" is now used for
+ the components of this sequence</li>
+
+ <li>an optional namespace component is now allowed in type element
+ selectors, the universal selector and attribute selectors</li>
+
+ <li>a <a href="#general-sibling-combinators">new combinator</a> has been introduced</li>
+
+ <li>new simple selectors including substring matching attribute
+ selectors, and new pseudo-classes</li>
+
+ <li>new pseudo-elements, and introduction of the "::" convention
+ for pseudo-elements</li>
+
+ <li>the grammar has been rewritten</li>
+
+ <li>profiles to be added to specifications integrating Selectors
+ and defining the set of selectors which is actually supported by
+ each specification</li>
+
+ <li>Selectors are now a CSS3 Module and an independent
+ specification; other specifications can now refer to this document
+ independently of CSS</li>
+
+ <li>the specification now has its own test suite</li>
+
+ </ul>
+
+<h2><a name=selectors></a>2. Selectors</h2>
+
+<p><em>This section is non-normative, as it merely summarizes the
+following sections.</em></p>
+
+<p>A Selector represents a structure. This structure can be used as a
+condition (e.g. in a CSS rule) that determines which elements a
+selector matches in the document tree, or as a flat description of the
+HTML or XML fragment corresponding to that structure.</p>
+
+<p>Selectors may range from simple element names to rich contextual
+representations.</p>
+
+<p>The following table summarizes the Selector syntax:</p>
+
+<table class="selectorsReview">
+ <thead>
+ <tr>
+ <th class="pattern">Pattern</th>
+ <th class="meaning">Meaning</th>
+ <th class="described">Described in section</th>
+ <th class="origin">First defined in CSS level</th></tr>
+ <tbody>
+ <tr>
+ <td class="pattern">*</td>
+ <td class="meaning">any element</td>
+ <td class="described"><a
+ href="#universal-selector">Universal
+ selector</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E</td>
+ <td class="meaning">an element of type E</td>
+ <td class="described"><a
+ href="#type-selectors">Type selector</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E[foo]</td>
+ <td class="meaning">an E element with a "foo" attribute</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is exactly
+ equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo~="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value is a list of
+ space-separated values, one of which is exactly equal to "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E[foo^="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value begins exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo$="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value ends exactly
+ with the string "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[foo*="bar"]</td>
+ <td class="meaning">an E element whose "foo" attribute value contains the
+ substring "bar"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E[hreflang|="en"]</td>
+ <td class="meaning">an E element whose "hreflang" attribute has a hyphen-separated
+ list of values beginning (from the left) with "en"</td>
+ <td class="described"><a
+ href="#attribute-selectors">Attribute
+ selectors</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:root</td>
+ <td class="meaning">an E element, root of the document</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-child(n)</td>
+ <td class="meaning">an E element, the n-th child of its parent, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:nth-last-of-type(n)</td>
+ <td class="meaning">an E element, the n-th sibling of its type, counting
+ from the last one</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-child</td>
+ <td class="meaning">an E element, first child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:last-child</td>
+ <td class="meaning">an E element, last child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:first-of-type</td>
+ <td class="meaning">an E element, first sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:last-of-type</td>
+ <td class="meaning">an E element, last sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-child</td>
+ <td class="meaning">an E element, only child of its parent</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:only-of-type</td>
+ <td class="meaning">an E element, only sibling of its type</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:empty</td>
+ <td class="meaning">an E element that has no children (including text
+ nodes)</td>
+ <td class="described"><a
+ href="#structural-pseudos">Structural
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:link<br>E:visited</td>
+ <td class="meaning">an E element being the source anchor of a hyperlink of
+ which the target is not yet visited (:link) or already visited
+ (:visited)</td>
+ <td class="described"><a
+ href="#link">The link
+ pseudo-classes</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:active<br>E:hover<br>E:focus</td>
+ <td class="meaning">an E element during certain user actions</td>
+ <td class="described"><a
+ href="#useraction-pseudos">The user
+ action pseudo-classes</a></td>
+ <td class="origin">1 and 2</td></tr>
+ <tr>
+ <td class="pattern">E:target</td>
+ <td class="meaning">an E element being the target of the referring URI</td>
+ <td class="described"><a
+ href="#target-pseudo">The target
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:lang(fr)</td>
+ <td class="meaning">an element of type E in language "fr" (the document
+ language specifies how language is determined)</td>
+ <td class="described"><a
+ href="#lang-pseudo">The :lang()
+ pseudo-class</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E:enabled<br>E:disabled</td>
+ <td class="meaning">a user interface element E which is enabled or
+ disabled</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E:checked<!--<br>E:indeterminate--></td>
+ <td class="meaning">a user interface element E which is checked<!-- or in an
+ indeterminate state--> (for instance a radio-button or checkbox)</td>
+ <td class="described"><a
+ href="#UIstates">The UI element states
+ pseudo-classes</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::first-line</td>
+ <td class="meaning">the first formatted line of an E element</td>
+ <td class="described"><a
+ href="#first-line">The ::first-line
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::first-letter</td>
+ <td class="meaning">the first formatted letter of an E element</td>
+ <td class="described"><a
+ href="#first-letter">The ::first-letter
+ pseudo-element</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E::selection</td>
+ <td class="meaning">the portion of an E element that is currently
+ selected/highlighted by the user</td>
+ <td class="described"><a
+ href="#UIfragments">The UI element
+ fragments pseudo-elements</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E::before</td>
+ <td class="meaning">generated content before an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::before
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E::after</td>
+ <td class="meaning">generated content after an E element</td>
+ <td class="described"><a
+ href="#gen-content">The ::after
+ pseudo-element</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E.warning</td>
+ <td class="meaning">an E element whose class is
+"warning" (the document language specifies how class is determined).</td>
+ <td class="described"><a
+ href="#class-html">Class
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E#myid</td>
+ <td class="meaning">an E element with ID equal to "myid".</td>
+ <td class="described"><a
+ href="#id-selectors">ID
+ selectors</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E:not(s)</td>
+ <td class="meaning">an E element that does not match simple selector s</td>
+ <td class="described"><a
+ href="#negation">Negation
+ pseudo-class</a></td>
+ <td class="origin">3</td></tr>
+ <tr>
+ <td class="pattern">E F</td>
+ <td class="meaning">an F element descendant of an E element</td>
+ <td class="described"><a
+ href="#descendant-combinators">Descendant
+ combinator</a></td>
+ <td class="origin">1</td></tr>
+ <tr>
+ <td class="pattern">E &gt; F</td>
+ <td class="meaning">an F element child of an E element</td>
+ <td class="described"><a
+ href="#child-combinators">Child
+ combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E + F</td>
+ <td class="meaning">an F element immediately preceded by an E element</td>
+ <td class="described"><a
+ href="#adjacent-sibling-combinators">Adjacent sibling combinator</a></td>
+ <td class="origin">2</td></tr>
+ <tr>
+ <td class="pattern">E ~ F</td>
+ <td class="meaning">an F element preceded by an E element</td>
+ <td class="described"><a
+ href="#general-sibling-combinators">General sibling combinator</a></td>
+ <td class="origin">3</td></tr></tbody></table>
+
+<p>The meaning of each selector is derived from the table above by
+prepending "matches" to the contents of each cell in the "Meaning"
+column.</p>
+
+<h2><a name=casesens>3. Case sensitivity</a></h2>
+
+<p>The case sensitivity of document language element names, attribute
+names, and attribute values in selectors depends on the document
+language. For example, in HTML, element names are case-insensitive,
+but in XML, they are case-sensitive.</p>
+
+<h2><a name=selector-syntax>4. Selector syntax</a></h2>
+
+<p>A <dfn><a name=selector>selector</a></dfn> is a chain of one
+or more <a href="#sequence">sequences of simple selectors</a>
+separated by <a href="#combinators">combinators</a>.</p>
+
+<p>A <dfn><a name=sequence>sequence of simple selectors</a></dfn>
+is a chain of <a href="#simple-selectors-dfn">simple selectors</a>
+that are not separated by a <a href="#combinators">combinator</a>. It
+always begins with a <a href="#type-selectors">type selector</a> or a
+<a href="#universal-selector">universal selector</a>. No other type
+selector or universal selector is allowed in the sequence.</p>
+
+<p>A <dfn><a name=simple-selectors-dfn></a><a
+href="#simple-selectors">simple selector</a></dfn> is either a <a
+href="#type-selectors">type selector</a>, <a
+href="#universal-selector">universal selector</a>, <a
+href="#attribute-selectors">attribute selector</a>, <a
+href="#class-html">class selector</a>, <a
+href="#id-selectors">ID selector</a>, <a
+href="#content-selectors">content selector</a>, or <a
+href="#pseudo-classes">pseudo-class</a>. One <a
+href="#pseudo-elements">pseudo-element</a> may be appended to the last
+sequence of simple selectors.</p>
+
+<p><dfn>Combinators</dfn> are: white space, &quot;greater-than
+sign&quot; (U+003E, <code>&gt;</code>), &quot;plus sign&quot; (U+002B,
+<code>+</code>) and &quot;tilde&quot; (U+007E, <code>~</code>). White
+space may appear between a combinator and the simple selectors around
+it. <a name=whitespace></a>Only the characters "space" (U+0020), "tab"
+(U+0009), "line feed" (U+000A), "carriage return" (U+000D), and "form
+feed" (U+000C) can occur in white space. Other space-like characters,
+such as "em-space" (U+2003) and "ideographic space" (U+3000), are
+never part of white space.</p>
+
+<p>The elements of a document tree that are represented by a selector
+are the <dfn><a name=subject></a>subjects of the selector</dfn>. A
+selector consisting of a single sequence of simple selectors
+represents any element satisfying its requirements. Prepending another
+sequence of simple selectors and a combinator to a sequence imposes
+additional matching constraints, so the subjects of a selector are
+always a subset of the elements represented by the last sequence of
+simple selectors.</p>
+
+<p>An empty selector, containing no sequence of simple selectors and
+no pseudo-element, is an <a href="#Conformance">invalid
+selector</a>.</p>
+
+<h2><a name=grouping>5. Groups of selectors</a></h2>
+
+<p>When several selectors share the same declarations, they may be
+grouped into a comma-separated list. (A comma is U+002C.)</p>
+
+<div class="example">
+<p>CSS examples:</p>
+<p>In this example, we condense three rules with identical
+declarations into one. Thus,</p>
+<pre>h1 { font-family: sans-serif }
+h2 { font-family: sans-serif }
+h3 { font-family: sans-serif }</pre>
+<p>is equivalent to:</p>
+<pre>h1, h2, h3 { font-family: sans-serif }</pre>
+</div>
+
+<p><strong>Warning</strong>: the equivalence is true in this example
+because all the selectors are valid selectors. If just one of these
+selectors were invalid, the entire group of selectors would be
+invalid. This would invalidate the rule for all three heading
+elements, whereas in the former case only one of the three individual
+heading rules would be invalidated.</p>
+
+
+<h2><a name=simple-selectors>6. Simple selectors</a></h2>
+
+<h3><a name=type-selectors>6.1. Type selector</a></h3>
+
+<p>A <dfn>type selector</dfn> is the name of a document language
+element type. A type selector represents an instance of the element
+type in the document tree.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents an <code>h1</code> element in the document tree:</p>
+ <pre>h1</pre>
+</div>
+
+
+<h4><a name=typenmsp>6.1.1. Type selectors and namespaces</a></h4>
+
+<p>Type selectors allow an optional namespace (<a
+href="#refsXMLNAMES">[XMLNAMES]</a>) component. A namespace prefix
+that has been previously declared may be prepended to the element name
+separated by the namespace separator &quot;vertical bar&quot;
+(U+007C, <code>|</code>).</p>
+
+<p>The namespace component may be left empty to indicate that the
+selector is only to represent elements with no declared namespace.</p>
+
+<p>An asterisk may be used for the namespace prefix, indicating that
+the selector represents elements in any namespace (including elements
+with no namespace).</p>
+
+<p>Element type selectors that have no namespace component (no
+namespace separator), represent elements without regard to the
+element's namespace (equivalent to "<code>*|</code>") unless a default
+namespace has been declared. If a default namespace has been declared,
+the selector will represent only elements in the default
+namespace.</p>
+
+<p>A type selector containing a namespace prefix that has not been
+previously declared is an <a href="#Conformance">invalid</a> selector.
+The mechanism for declaring a namespace prefix is left up to the
+language implementing Selectors. In CSS, such a mechanism is defined
+in the General Syntax module.</p>
+
+<p>In a namespace-aware client, element type selectors will only match
+against the <a
+href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local part</a>
+of the element's <a
+href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">qualified
+name</a>. See <a href="#downlevel">below</a> for notes about matching
+behaviors in down-level clients.</p>
+
+<p>In summary:</p>
+
+<dl>
+ <dt><code>ns|E</code></dt>
+ <dd>elements with name E in namespace ns</dd>
+ <dt><code>*|E</code></dt>
+ <dd>elements with name E in any namespace, including those without any
+ declared namespace</dd>
+ <dt><code>|E</code></dt>
+ <dd>elements with name E without any declared namespace</dd>
+ <dt><code>E</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|E.
+ Otherwise it is equivalent to ns|E where ns is the default namespace.</dd>
+</dl>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <pre>@namespace foo url(http://www.example.com);
+ foo|h1 { color: blue }
+ foo|* { color: yellow }
+ |h1 { color: red }
+ *|h1 { color: green }
+ h1 { color: green }</pre>
+
+ <p>The first rule will match only <code>h1</code> elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The second rule will match all elements in the
+ "http://www.example.com" namespace.</p>
+
+ <p>The third rule will match only <code>h1</code> elements without
+ any declared namespace.</p>
+
+ <p>The fourth rule will match <code>h1</code> elements in any
+ namespace (including those without any declared namespace).</p>
+
+ <p>The last rule is equivalent to the fourth rule because no default
+ namespace has been defined.</p>
+
+</div>
+
+<h3><a name=universal-selector>6.2. Universal selector</a> </h3>
+
+<p>The <dfn>universal selector</dfn>, written &quot;asterisk&quot;
+(<code>*</code>), represents the qualified name of any element
+type. It represents any single element in the document tree in any
+namespace (including those without any declared namespace) if no
+default namespace has been specified. If a default namespace has been
+specified, see <a href="#univnmsp">Universal selector and
+Namespaces</a> below.</p>
+
+<p>If the universal selector is not the only component of a sequence
+of simple selectors, the <code>*</code> may be omitted.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <ul>
+ <li><code>*[hreflang|=en]</code> and <code>[hreflang|=en]</code> are equivalent,</li>
+ <li><code>*.warning</code> and <code>.warning</code> are equivalent,</li>
+ <li><code>*#myid</code> and <code>#myid</code> are equivalent.</li>
+ </ul>
+</div>
+
+<p class="note"><strong>Note:</strong> it is recommended that the
+<code>*</code>, representing the universal selector, not be
+omitted.</p>
+
+<h4><a name=univnmsp>6.2.1. Universal selector and namespaces</a></h4>
+
+<p>The universal selector allows an optional namespace component. It
+is used as follows:</p>
+
+<dl>
+ <dt><code>ns|*</code></dt>
+ <dd>all elements in namespace ns</dd>
+ <dt><code>*|*</code></dt>
+ <dd>all elements</dd>
+ <dt><code>|*</code></dt>
+ <dd>all elements without any declared namespace</dd>
+ <dt><code>*</code></dt>
+ <dd>if no default namespace has been specified, this is equivalent to *|*.
+ Otherwise it is equivalent to ns|* where ns is the default namespace.</dd>
+</dl>
+
+<p>A universal selector containing a namespace prefix that has not
+been previously declared is an <a href="#Conformance">invalid</a>
+selector. The mechanism for declaring a namespace prefix is left up
+to the language implementing Selectors. In CSS, such a mechanism is
+defined in the General Syntax module.</p>
+
+
+<h3><a name=attribute-selectors>6.3. Attribute selectors</a></h3>
+
+<p>Selectors allow the representation of an element's attributes. When
+a selector is used as an expression to match against an element,
+attribute selectors must be considered to match an element if that
+element has an attribute that matches the attribute represented by the
+attribute selector.</p>
+
+<h4><a name=attribute-representation>6.3.1. Attribute presence and values
+selectors</a></h4>
+
+<p>CSS2 introduced four attribute selectors:</p>
+
+<dl>
+ <dt><code>[att]</code>
+ <dd>Represents an element with the <code>att</code> attribute, whatever the value of
+ the attribute.</dd>
+ <dt><code>[att=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is exactly
+ "val".</dd>
+ <dt><code>[att~=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value is a <a
+ href="#whitespace">whitespace</a>-separated list of words, one of
+ which is exactly "val". If "val" contains whitespace, it will never
+ represent anything (since the words are <em>separated</em> by
+ spaces).</dd>
+ <dt><code>[att|=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute, its value either
+ being exactly "val" or beginning with "val" immediately followed by
+ "-" (U+002D). This is primarily intended to allow language subcode
+ matches (e.g., the <code>hreflang</code> attribute on the
+ <code>link</code> element in HTML) as described in RFC 3066 (<a
+ href="#refsRFC3066">[RFC3066]</a>). For <code>lang</code> (or
+ <code>xml:lang</code>) language subcode matching, please see <a
+ href="#lang-pseudo">the <code>:lang</code> pseudo-class</a>.</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names and values in selectors depends on
+the document language.</p>
+
+<div class="example">
+
+ <p>Examples:</p>
+
+ <p>The following attribute selector represents an <code>h1</code>
+ element that carries the <code>title</code> attribute, whatever its
+ value:</p>
+
+ <pre>h1[title]</pre>
+
+ <p>In the following example, the selector represents a
+ <code>span</code> element whose <code>class</code> attribute has
+ exactly the value "example":</p>
+
+ <pre>span[class="example"]</pre>
+
+ <p>Multiple attribute selectors can be used to represent several
+ attributes of an element, or several conditions on the same
+ attribute. Here, the selector represents a <code>span</code> element
+ whose <code>hello</code> attribute has exactly the value "Cleveland"
+ and whose <code>goodbye</code> attribute has exactly the value
+ "Columbus":</p>
+
+ <pre>span[hello="Cleveland"][goodbye="Columbus"]</pre>
+
+ <p>The following selectors illustrate the differences between "="
+ and "~=". The first selector will represent, for example, the value
+ "copyright copyleft copyeditor" on a <code>rel</code> attribute. The
+ second selector will only represent an <code>a</code> element with
+ an <code>href</code> attribute having the exact value
+ "http://www.w3.org/".</p>
+
+ <pre>a[rel~="copyright"]
+a[href="http://www.w3.org/"]</pre>
+
+ <p>The following selector represents a <code>link</code> element
+ whose <code>hreflang</code> attribute is exactly "fr".</p>
+
+ <pre>link[hreflang=fr]</pre>
+
+ <p>The following selector represents a <code>link</code> element for
+ which the values of the <code>hreflang</code> attribute begins with
+ "en", including "en", "en-US", and "en-cockney":</p>
+
+ <pre>link[hreflang|="en"]</pre>
+
+ <p>Similarly, the following selectors represents a
+ <code>DIALOGUE</code> element whenever it has one of two different
+ values for an attribute <code>character</code>:</p>
+
+ <pre>DIALOGUE[character=romeo]
+DIALOGUE[character=juliet]</pre>
+
+</div>
+
+<h4><a name=attribute-substrings></a>6.3.2. Substring matching attribute
+selectors</h4>
+
+<p>Three additional attribute selectors are provided for matching
+substrings in the value of an attribute:</p>
+
+<dl>
+ <dt><code>[att^=val]</code></dt>
+ <dd>Represents an element with the <code>att</code> attribute whose value begins
+ with the prefix "val".</dd>
+ <dt><code>[att$=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value ends with
+ the suffix "val".</dd>
+ <dt><code>[att*=val]</code>
+ <dd>Represents an element with the <code>att</code> attribute whose value contains
+ at least one instance of the substring "val".</dd>
+</dl>
+
+<p>Attribute values must be identifiers or strings. The
+case-sensitivity of attribute names in selectors depends on the
+document language.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents an HTML <code>object</code>, referencing an
+ image:</p>
+ <pre>object[type^="image/"]</pre>
+ <p>The following selector represents an HTML anchor <code>a</code> with an
+ <code>href</code> attribute whose value ends with ".html".</p>
+ <pre>a[href$=".html"]</pre>
+ <p>The following selector represents an HTML paragraph with a <code>title</code>
+ attribute whose value contains the substring "hello"</p>
+ <pre>p[title*="hello"]</pre>
+</div>
+
+<h4><a name=attrnmsp>6.3.3. Attribute selectors and namespaces</a></h4>
+
+<p>Attribute selectors allow an optional namespace component to the
+attribute name. A namespace prefix that has been previously declared
+may be prepended to the attribute name separated by the namespace
+separator &quot;vertical bar&quot; (<code>|</code>). In keeping with
+the Namespaces in the XML recommendation, default namespaces do not
+apply to attributes, therefore attribute selectors without a namespace
+component apply only to attributes that have no declared namespace
+(equivalent to "<code>|attr</code>"). An asterisk may be used for the
+namespace prefix indicating that the selector is to match all
+attribute names without regard to the attribute's namespace.
+
+<p>An attribute selector with an attribute name containing a namespace
+prefix that has not been previously declared is an <a
+href="#Conformance">invalid</a> selector. The mechanism for declaring
+a namespace prefix is left up to the language implementing Selectors.
+In CSS, such a mechanism is defined in the General Syntax module.
+
+<div class="example">
+ <p>CSS examples:</p>
+ <pre>@namespace foo "http://www.example.com";
+[foo|att=val] { color: blue }
+[*|att] { color: yellow }
+[|att] { color: green }
+[att] { color: green }</pre>
+
+ <p>The first rule will match only elements with the attribute
+ <code>att</code> in the "http://www.example.com" namespace with the
+ value "val".</p>
+
+ <p>The second rule will match only elements with the attribute
+ <code>att</code> regardless of the namespace of the attribute
+ (including no declared namespace).</p>
+
+ <p>The last two rules are equivalent and will match only elements
+ with the attribute <code>att</code> where the attribute is not
+ declared to be in a namespace.</p>
+
+</div>
+
+<h4><a name=def-values>6.3.4. Default attribute values in DTDs</a></h4>
+
+<p>Attribute selectors represent explicitly set attribute values in
+the document tree. Default attribute values may be defined in a DTD or
+elsewhere, but cannot always be selected by attribute
+selectors. Selectors should be designed so that they work even if the
+default values are not included in the document tree.</p>
+
+<p>More precisely, a UA is <em>not</em> required to read an "external
+subset" of the DTD but <em>is</em> required to look for default
+attribute values in the document's "internal subset." (See <a
+href="#refsXML10">[XML10]</a> for definitions of these subsets.)</p>
+
+<p>A UA that recognizes an XML namespace <a
+href="#refsXMLNAMES">[XMLNAMES]</a> is not required to use its
+knowledge of that namespace to treat default attribute values as if
+they were present in the document. (For example, an XHTML UA is not
+required to use its built-in knowledge of the XHTML DTD.)</p>
+
+<p class="note"><strong>Note:</strong> Typically, implementations
+choose to ignore external subsets.</p>
+
+<div class="example">
+<p>Example:</p>
+
+<p>Consider an element EXAMPLE with an attribute "notation" that has a
+default value of "decimal". The DTD fragment might be</p>
+
+<pre class="dtd-example">&lt;!ATTLIST EXAMPLE notation (decimal,octal) "decimal"></pre>
+
+<p>If the style sheet contains the rules</p>
+
+<pre>EXAMPLE[notation=decimal] { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>the first rule will not match elements whose "notation" attribute
+is set by default, i.e. not set explicitly. To catch all cases, the
+attribute selector for the default value must be dropped:</p>
+
+<pre>EXAMPLE { /*... default property settings ...*/ }
+EXAMPLE[notation=octal] { /*... other settings...*/ }</pre>
+
+<p>Here, because the selector <code>EXAMPLE[notation=octal]</code> is
+more specific than the tag
+selector alone, the style declarations in the second rule will override
+those in the first for elements that have a "notation" attribute value
+of "octal". Care has to be taken that all property declarations that
+are to apply only to the default case are overridden in the non-default
+cases' style rules.</p>
+
+</div>
+
+<h3><a name=class-html>6.4. Class selectors</a></h3>
+
+<p>Working with HTML, authors may use the period (U+002E,
+<code>.</code>) notation as an alternative to the <code>~=</code>
+notation when representing the <code>class</code> attribute. Thus, for
+HTML, <code>div.value</code> and <code>div[class~=value]</code> have
+the same meaning. The attribute value must immediately follow the
+&quot;period&quot; (<code>.</code>).</p>
+
+<p>UAs may apply selectors using the period (.) notation in XML
+documents if the UA has namespace-specific knowledge that allows it to
+determine which attribute is the &quot;class&quot; attribute for the
+respective namespace. One such example of namespace-specific knowledge
+is the prose in the specification for a particular namespace (e.g. SVG
+1.0 <a href="#refsSVG">[SVG]</a> describes the <a
+href="http://www.w3.org/TR/2001/PR-SVG-20010719/styling.html#ClassAttribute">SVG
+&quot;class&quot; attribute</a> and how a UA should interpret it, and
+similarly MathML 1.01 <a href="#refsMATH">[MATH]</a> describes the <a
+href="http://www.w3.org/1999/07/REC-MathML-19990707/chapter2.html#sec2.3.4">MathML
+&quot;class&quot; attribute</a>.)</p>
+
+<div class="example">
+ <p>CSS examples:</p>
+
+ <p>We can assign style information to all elements with
+ <code>class~="pastoral"</code> as follows:</p>
+
+ <pre>*.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>or just</p>
+
+ <pre>.pastoral { color: green } /* all elements with class~=pastoral */</pre>
+
+ <p>The following assigns style only to H1 elements with
+ <code>class~="pastoral"</code>:</p>
+
+ <pre>H1.pastoral { color: green } /* H1 elements with class~=pastoral */</pre>
+
+ <p>Given these rules, the first H1 instance below would not have
+ green text, while the second would:</p>
+
+ <pre>&lt;H1&gt;Not green&lt;/H1&gt;
+&lt;H1 class="pastoral"&gt;Very green&lt;/H1&gt;</pre>
+
+</div>
+
+<p>To represent a subset of "class" values, each value must be preceded
+by a ".", in any order.</P>
+
+<div class="example">
+
+ <p>CSS example:</p>
+
+ <p>The following rule matches any P element whose "class" attribute
+ has been assigned a list of <a
+ href="#whitespace">whitespace</a>-separated values that includes
+ "pastoral" and "marine":</p>
+
+ <pre>p.pastoral.marine { color: green }</pre>
+
+ <p>This rule matches when <code>class="pastoral blue aqua
+ marine"</code> but does not match for <code>class="pastoral
+ blue"</code>.</p>
+
+</div>
+
+<p class="note"><strong>Note:</strong> Because CSS gives considerable
+power to the "class" attribute, authors could conceivably design their
+own "document language" based on elements with almost no associated
+presentation (such as DIV and SPAN in HTML) and assigning style
+information through the "class" attribute. Authors should avoid this
+practice since the structural elements of a document language often
+have recognized and accepted meanings and author-defined classes may
+not.</p>
+
+<p class="note"><strong>Note:</strong> If an element has multiple
+class attributes, their values must be concatenated with spaces
+between the values before searching for the class. As of this time the
+working group is not aware of any manner in which this situation can
+be reached, however, so this behavior is explicitly non-normative in
+this specification.</p>
+
+<h3><a name=id-selectors>6.5. ID selectors</a></h3>
+
+<p>Document languages may contain attributes that are declared to be
+of type ID. What makes attributes of type ID special is that no two
+such attributes can have the same value in a document, regardless of
+the type of the elements that carry them; whatever the document
+language, an ID typed attribute can be used to uniquely identify its
+element. In HTML all ID attributes are named "id"; XML applications
+may name ID attributes differently, but the same restriction
+applies.</p>
+
+<p>An ID-typed attribute of a document language allows authors to
+assign an identifier to one element instance in the document tree. W3C
+ID selectors represent an element instance based on its identifier. An
+ID selector contains a &quot;number sign&quot; (U+0023,
+<code>#</code>) immediately followed by the ID value, which must be an
+identifier.</p>
+
+<p>Selectors does not specify how a UA knows the ID-typed attribute of
+an element. The UA may, e.g., read a document's DTD, have the
+information hard-coded or ask the user.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following ID selector represents an <code>h1</code> element
+ whose ID-typed attribute has the value "chapter1":</p>
+ <pre>h1#chapter1</pre>
+ <p>The following ID selector represents any element whose ID-typed
+ attribute has the value "chapter1":</p>
+ <pre>#chapter1</pre>
+ <p>The following selector represents any element whose ID-typed
+ attribute has the value "z98y".</p>
+ <pre>*#z98y</pre>
+</div>
+
+<p class="note"><strong>Note.</strong> In XML 1.0 <a
+href="#refsXML10">[XML10]</a>, the information about which attribute
+contains an element's IDs is contained in a DTD or a schema. When
+parsing XML, UAs do not always read the DTD, and thus may not know
+what the ID of an element is (though a UA may have namespace-specific
+knowledge that allows it to determine which attribute is the ID
+attribute for that namespace). If a style sheet designer knows or
+suspects that a UA may not know what the ID of an element is, he
+should use normal attribute selectors instead:
+<code>[name=p371]</code> instead of <code>#p371</code>. Elements in
+XML 1.0 documents without a DTD do not have IDs at all.</p>
+
+<p>If an element has multiple ID attributes, all of them must be
+treated as IDs for that element for the purposes of the ID
+selector. Such a situation could be reached using mixtures of xml:id,
+DOM3 Core, XML DTDs, and namespace-specific knowledge.</p>
+
+<h3><a name=pseudo-classes>6.6. Pseudo-classes</a></h3>
+
+<p>The pseudo-class concept is introduced to permit selection based on
+information that lies outside of the document tree or that cannot be
+expressed using the other simple selectors.</p>
+
+<p>A pseudo-class always consists of a &quot;colon&quot;
+(<code>:</code>) followed by the name of the pseudo-class and
+optionally by a value between parentheses.</p>
+
+<p>Pseudo-classes are allowed in all sequences of simple selectors
+contained in a selector. Pseudo-classes are allowed anywhere in
+sequences of simple selectors, after the leading type selector or
+universal selector (possibly omitted). Pseudo-class names are
+case-insensitive. Some pseudo-classes are mutually exclusive, while
+others can be applied simultaneously to the same
+element. Pseudo-classes may be dynamic, in the sense that an element
+may acquire or lose a pseudo-class while a user interacts with the
+document.</p>
+
+
+<h4><a name=dynamic-pseudos>6.6.1. Dynamic pseudo-classes</a></h4>
+
+<p>Dynamic pseudo-classes classify elements on characteristics other
+than their name, attributes, or content, in principle characteristics
+that cannot be deduced from the document tree.</p>
+
+<p>Dynamic pseudo-classes do not appear in the document source or
+document tree.</p>
+
+
+<h5>The <a name=link>link pseudo-classes: :link and :visited</a></h5>
+
+<p>User agents commonly display unvisited links differently from
+previously visited ones. Selectors
+provides the pseudo-classes <code>:link</code> and
+<code>:visited</code> to distinguish them:</p>
+
+<ul>
+ <li>The <code>:link</code> pseudo-class applies to links that have
+ not yet been visited.</li>
+ <li>The <code>:visited</code> pseudo-class applies once the link has
+ been visited by the user. </li>
+</ul>
+
+<p>After some amount of time, user agents may choose to return a
+visited link to the (unvisited) ':link' state.</p>
+
+<p>The two states are mutually exclusive.</p>
+
+<div class="example">
+
+ <p>Example:</p>
+
+ <p>The following selector represents links carrying class
+ <code>external</code> and already visited:</p>
+
+ <pre>a.external:visited</pre>
+
+</div>
+
+<p class="note"><strong>Note:</strong> It is possible for style sheet
+authors to abuse the :link and :visited pseudo-classes to determine
+which sites a user has visited without the user's consent.
+
+<p>UAs may therefore treat all links as unvisited links, or implement
+other measures to preserve the user's privacy while rendering visited
+and unvisited links differently.</p>
+
+<h5>The <a name=useraction-pseudos>user action pseudo-classes
+:hover, :active, and :focus</a></h5>
+
+<p>Interactive user agents sometimes change the rendering in response
+to user actions. Selectors provides
+three pseudo-classes for the selection of an element the user is
+acting on.</p>
+
+<ul>
+
+ <li>The <code>:hover</code> pseudo-class applies while the user
+ designates an element with a pointing device, but does not activate
+ it. For example, a visual user agent could apply this pseudo-class
+ when the cursor (mouse pointer) hovers over a box generated by the
+ element. User agents not that do not support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> do not have to support this pseudo-class. Some conforming
+ user agents that support <a
+ href="http://www.w3.org/TR/REC-CSS2/media.html#interactive-media-group">interactive
+ media</a> may not be able to support this pseudo-class (e.g., a pen
+ device that does not detect hovering).</li>
+
+ <li>The <code>:active</code> pseudo-class applies while an element
+ is being activated by the user. For example, between the times the
+ user presses the mouse button and releases it.</li>
+
+ <li>The <code>:focus</code> pseudo-class applies while an element
+ has the focus (accepts keyboard or mouse events, or other forms of
+ input). </li>
+
+</ul>
+
+<p>There may be document language or implementation specific limits on
+which elements can become <code>:active</code> or acquire
+<code>:focus</code>.</p>
+
+<p>These pseudo-classes are not mutually exclusive. An element may
+match several pseudo-classes at the same time.</p>
+
+<p>Selectors doesn't define if the parent of an element that is
+':active' or ':hover' is also in that state.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <pre>a:link /* unvisited links */
+a:visited /* visited links */
+a:hover /* user hovers */
+a:active /* active links */</pre>
+ <p>An example of combining dynamic pseudo-classes:</p>
+ <pre>a:focus
+a:focus:hover</pre>
+ <p>The last selector matches <code>a</code> elements that are in
+ the pseudo-class :focus and in the pseudo-class :hover.</p>
+</div>
+
+<p class="note"><strong>Note:</strong> An element can be both ':visited'
+and ':active' (or ':link' and ':active').</p>
+
+<h4><a name=target-pseudo>6.6.2. The target pseudo-class :target</a></h4>
+
+<p>Some URIs refer to a location within a resource. This kind of URI
+ends with a &quot;number sign&quot; (#) followed by an anchor
+identifier (called the fragment identifier).</p>
+
+<p>URIs with fragment identifiers link to a certain element within the
+document, known as the target element. For instance, here is a URI
+pointing to an anchor named <code>section_2</code> in an HTML
+document:</p>
+
+<pre>http://example.com/html/top.html#section_2</pre>
+
+<p>A target element can be represented by the <code>:target</code>
+pseudo-class. If the document's URI has no fragment identifier, then
+the document has no target element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>p.note:target</pre>
+ <p>This selector represents a <code>p</code> element of class
+ <code>note</code> that is the target element of the referring
+ URI.</p>
+</div>
+
+<div class="example">
+ <p>CSS example:</p>
+ <p>Here, the <code>:target</code> pseudo-class is used to make the
+ target element red and place an image before it, if there is one:</p>
+ <pre>*:target { color : red }
+*:target::before { content : url(target.png) }</pre>
+</div>
+
+<h4><a name=lang-pseudo>6.6.3. The language pseudo-class :lang</a></h4>
+
+<p>If the document language specifies how the human language of an
+element is determined, it is possible to write selectors that
+represent an element based on its language. For example, in HTML <a
+href="#refsHTML4">[HTML4]</a>, the language is determined by a
+combination of the <code>lang</code> attribute, the <code>meta</code>
+element, and possibly by information from the protocol (such as HTTP
+headers). XML uses an attribute called <code>xml:lang</code>, and
+there may be other document language-specific methods for determining
+the language.</p>
+
+<p>The pseudo-class <code>:lang(C)</code> represents an element that
+is in language C. Whether an element is represented by a
+<code>:lang()</code> selector is based solely on the identifier C
+being either equal to, or a hyphen-separated substring of, the
+element's language value, in the same way as if performed by the <a
+href="#attribute-representation">'|='</a> operator in attribute
+selectors. The identifier C does not have to be a valid language
+name.</p>
+
+<p>C must not be empty. (If it is, the selector is invalid.)</p>
+
+<p class="note"><strong>Note:</strong> It is recommended that
+documents and protocols indicate language using codes from RFC 3066 <a
+href="#refsRFC3066">[RFC3066]</a> or its successor, and by means of
+"xml:lang" attributes in the case of XML-based documents <a
+href="#refsXML10">[XML10]</a>. See <a
+href="http://www.w3.org/International/questions/qa-lang-2or3.html">
+"FAQ: Two-letter or three-letter language codes."</a></p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The two following selectors represent an HTML document that is in
+ Belgian, French, or German. The two next selectors represent
+ <code>q</code> quotations in an arbitrary element in Belgian, French,
+ or German.</p>
+ <pre>html:lang(fr-be)
+html:lang(de)
+:lang(fr-be) &gt; q
+:lang(de) &gt; q</pre>
+</div>
+
+<h4><a name=UIstates>6.6.4. The UI element states pseudo-classes</a></h4>
+
+<h5><a name=enableddisabled>The :enabled and :disabled pseudo-classes</a></h5>
+
+<p>The <code>:enabled</code> pseudo-class allows authors to customize
+the look of user interface elements that are enabled &mdash; which the
+user can select or activate in some fashion (e.g. clicking on a button
+with a mouse). There is a need for such a pseudo-class because there
+is no way to programmatically specify the default appearance of say,
+an enabled <code>input</code> element without also specifying what it
+would look like when it was disabled.</p>
+
+<p>Similar to <code>:enabled</code>, <code>:disabled</code> allows the
+author to specify precisely how a disabled or inactive user interface
+element should look.</p>
+
+<p>Most elements will be neither enabled nor disabled. An element is
+enabled if the user can either activate it or transfer the focus to
+it. An element is disabled if it could be enabled, but the user cannot
+presently activate it or transfer focus to it.</p>
+
+
+<h5><a name=checked>The :checked pseudo-class</a></h5>
+
+<p>Radio and checkbox elements can be toggled by the user. Some menu
+items are "checked" when the user selects them. When such elements are
+toggled "on" the <code>:checked</code> pseudo-class applies. The
+<code>:checked</code> pseudo-class initially applies to such elements
+that have the HTML4 <code>selected</code> and <code>checked</code>
+attributes as described in <a
+href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.2.1">Section
+17.2.1 of HTML4</a>, but of course the user can toggle "off" such
+elements in which case the <code>:checked</code> pseudo-class would no
+longer apply. While the <code>:checked</code> pseudo-class is dynamic
+in nature, and is altered by user action, since it can also be based
+on the presence of the semantic HTML4 <code>selected</code> and
+<code>checked</code> attributes, it applies to all media.
+
+
+<h5><a name=indeterminate>The :indeterminate pseudo-class</a></h5>
+
+<div class="note">
+
+<p>Radio and checkbox elements can be toggled by the user, but are
+sometimes in an indeterminate state, neither checked nor unchecked.
+This can be due to an element attribute, or DOM manipulation.</p>
+
+<p>A future version of this specification may introduce an
+<code>:indeterminate</code> pseudo-class that applies to such elements.
+<!--While the <code>:indeterminate</code> pseudo-class is dynamic in
+nature, and is altered by user action, since it can also be based on
+the presence of an element attribute, it applies to all media.</p>
+
+<p>Components of a radio-group initialized with no pre-selected choice
+are an example of :indeterminate state.--></p>
+
+</div>
+
+
+<h4><a name=structural-pseudos>6.6.5. Structural pseudo-classes</a></h4>
+
+<p>Selectors introduces the concept of <dfn>structural
+pseudo-classes</dfn> to permit selection based on extra information that lies in
+the document tree but cannot be represented by other simple selectors or
+combinators.
+
+<p>Note that standalone pieces of PCDATA (text nodes in the DOM) are
+not counted when calculating the position of an element in the list of
+children of its parent. When calculating the position of an element in
+the list of children of its parent, the index numbering starts at 1.
+
+
+<h5><a name=root-pseudo>:root pseudo-class</a></h5>
+
+<p>The <code>:root</code> pseudo-class represents an element that is
+the root of the document. In HTML 4, this is always the
+<code>HTML</code> element.
+
+
+<h5><a name=nth-child-pseudo>:nth-child() pseudo-class</a></h5>
+
+<p>The
+<code>:nth-child(<var>a</var><code>n</code>+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>before</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. In
+other words, this matches the <var>b</var>th child of an element after
+all the children have been split into groups of <var>a</var> elements
+each. For example, this allows the selectors to address every other
+row in a table, and could be used to alternate the color
+of paragraph text in a cycle of four. The <var>a</var> and
+<var>b</var> values must be zero, negative integers or positive
+integers. The index of the first child of an element is 1.
+
+<p>In addition to this, <code>:nth-child()</code> can take
+'<code>odd</code>' and '<code>even</code>' as arguments instead.
+'<code>odd</code>' has the same signification as <code>2n+1</code>,
+and '<code>even</code>' has the same signification as <code>2n</code>.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+1) /* represents every odd row of an HTML table */
+tr:nth-child(odd) /* same */
+tr:nth-child(2n) /* represents every even row of an HTML table */
+tr:nth-child(even) /* same */
+
+/* Alternate paragraph colours in CSS */
+p:nth-child(4n+1) { color: navy; }
+p:nth-child(4n+2) { color: green; }
+p:nth-child(4n+3) { color: maroon; }
+p:nth-child(4n+4) { color: purple; }</pre>
+</div>
+
+<p>When <var>a</var>=0, no repeating is used, so for example
+<code>:nth-child(0n+5)</code> matches only the fifth child. When
+<var>a</var>=0, the <var>a</var><code>n</code> part need not be
+included, so the syntax simplifies to
+<code>:nth-child(<var>b</var>)</code> and the last example simplifies
+to <code>:nth-child(5)</code>.
+
+<div class="example">
+<p>Examples:</p>
+<pre>foo:nth-child(0n+1) /* represents an element foo, first child of its parent element */
+foo:nth-child(1) /* same */</pre>
+</div>
+
+<p>When <var>a</var>=1, the number may be omitted from the rule.
+
+<div class="example">
+<p>Examples:</p>
+<p>The following selectors are therefore equivalent:</p>
+<pre>bar:nth-child(1n+0) /* represents all bar elements, specificity (0,1,1) */
+bar:nth-child(n+0) /* same */
+bar:nth-child(n) /* same */
+bar /* same but lower specificity (0,0,1) */</pre>
+</div>
+
+<p>If <var>b</var>=0, then every <var>a</var>th element is picked. In
+such a case, the <var>b</var> part may be omitted.
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-child(2n+0) /* represents every even row of an HTML table */
+tr:nth-child(2n) /* same */</pre>
+</div>
+
+<p>If both <var>a</var> and <var>b</var> are equal to zero, the
+pseudo-class represents no element in the document tree.</p>
+
+<p>The value <var>a</var> can be negative, but only the positive
+values of <var>a</var><code>n</code>+<var>b</var>, for
+<code>n</code>&ge;0, may represent an element in the document
+tree.</p>
+
+<div class="example">
+<p>Example:</p>
+<pre>html|tr:nth-child(-n+6) /* represents the 6 first rows of XHTML tables */</pre>
+</div>
+
+<p>When the value <var>b</var> is negative, the "+" character in the
+expression must be removed (it is effectively replaced by the "-"
+character indicating the negative value of <var>b</var>).</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>:nth-child(10n-1) /* represents the 9th, 19th, 29th, etc, element */
+:nth-child(10n+9) /* Same */
+:nth-child(10n+-1) /* Syntactically invalid, and would be ignored */</pre>
+</div>
+
+
+<h5><a name=nth-last-child-pseudo>:nth-last-child() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-child(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings
+<strong>after</strong> it in the document tree, for a given positive
+integer or zero value of <code>n</code>, and has a parent element. See
+<code>:nth-child()</code> pseudo-class for the syntax of its argument.
+It also accepts the '<code>even</code>' and '<code>odd</code>' values
+as arguments.
+
+
+<div class="example">
+<p>Examples:</p>
+<pre>tr:nth-last-child(-n+2) /* represents the two last rows of an HTML table */
+
+foo:nth-last-child(odd) /* represents all odd foo elements in their parent element,
+ counting from the last one */</pre>
+</div>
+
+
+<h5><a name=nth-of-type-pseudo>:nth-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>before</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. In other words, this matches the <var>b</var>th child
+of that type after all the children of that type have been split into
+groups of a elements each. See <code>:nth-child()</code> pseudo-class
+for the syntax of its argument. It also accepts the
+'<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+<p>CSS example:</p>
+<p>This allows an author to alternate the position of floated images:</p>
+<pre>img:nth-of-type(2n+1) { float: right; }
+img:nth-of-type(2n) { float: left; }</pre>
+</div>
+
+
+<h5><a name=nth-last-of-type-pseudo>:nth-last-of-type() pseudo-class</a></h5>
+
+<p>The <code>:nth-last-of-type(<var>a</var>n+<var>b</var>)</code>
+pseudo-class notation represents an element that has
+<var>a</var><code>n</code>+<var>b</var>-1 siblings with the same
+element name <strong>after</strong> it in the document tree, for a
+given zero or positive integer value of <code>n</code>, and has a
+parent element. See <code>:nth-child()</code> pseudo-class for the
+syntax of its argument. It also accepts the '<code>even</code>' and '<code>odd</code>' values.
+
+
+<div class="example">
+ <p>Example:</p>
+ <p>To represent all <code>h2</code> children of an XHTML
+ <code>body</code> except the first and last, one could use the
+ following selector:</p>
+ <pre>body &gt; h2:nth-of-type(n+2):nth-last-of-type(n+2)</pre>
+ <p>In this case, one could also use <code>:not()</code>, although the
+ selector ends up being just as long:</p>
+ <pre>body &gt; h2:not(:first-of-type):not(:last-of-type)</pre>
+</div>
+
+
+<h5><a name=first-child-pseudo>:first-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-child(1)</code>. The <code>:first-child</code> pseudo-class
+represents an element that is the first child of some other element.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ the first child of a <code>div</code> element:</p>
+ <pre>div &gt; p:first-child</pre>
+ <p>This selector can represent the <code>p</code> inside the
+ <code>div</code> of the following fragment:</p>
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>but cannot represent the second <code>p</code> in the following
+fragment:
+ <pre>&lt;p&gt; The last P before the note.&lt;/p&gt;
+&lt;div class="note"&gt;
+ &lt;h2&gt; Note &lt;/h2&gt;
+ &lt;p&gt; The first P inside the note.&lt;/p&gt;
+&lt;/div&gt;</pre>
+ <p>The following two selectors are usually equivalent:</p>
+ <pre>* &gt; a:first-child /* a is first child of any element */
+a:first-child /* Same (assuming a is not the root element) */</pre>
+</div>
+
+<h5><a name=last-child-pseudo>:last-child pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-child(1)</code>. The <code>:last-child</code> pseudo-class
+represents an element that is the last child of some other element.
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents a list item <code>li</code> that
+ is the last child of an ordered list <code>ol</code>.
+ <pre>ol &gt; li:last-child</pre>
+</div>
+
+<h5><a name=first-of-type-pseudo>:first-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-of-type(1)</code>. The <code>:first-of-type</code> pseudo-class
+represents an element that is the first sibling of its type in the list of
+children of its parent element.
+
+<div class="example">
+<p>Example:</p>
+<p>The following selector represents a definition title
+<code>dt</code> inside a definition list <code>dl</code>, this
+<code>dt</code> being the first of its type in the list of children of
+its parent element.</p>
+<pre>dl dt:first-of-type</pre>
+<p>It is a valid description for the first two <code>dt</code>
+elements in the following example but not for the third one:</p>
+<pre>&lt;dl&gt;
+ &lt;dt&gt;gigogne&lt;/dt&gt;
+ &lt;dd&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;fus&eacute;e&lt;/dt&gt;
+ &lt;dd&gt;multistage rocket&lt;/dd&gt;
+ &lt;dt&gt;table&lt;/dt&gt;
+ &lt;dd&gt;nest of tables&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+</div>
+
+<h5><a name=last-of-type-pseudo>:last-of-type pseudo-class</a></h5>
+
+<p>Same as <code>:nth-last-of-type(1)</code>. The
+<code>:last-of-type</code> pseudo-class represents an element that is
+the last sibling of its type in the list of children of its parent
+element.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <p>The following selector represents the last data cell
+ <code>td</code> of a table row.</p>
+ <pre>tr &gt; td:last-of-type</pre>
+</div>
+
+<h5><a name=only-child-pseudo>:only-child pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children. Same as
+<code>:first-child:last-child</code> or
+<code>:nth-child(1):nth-last-child(1)</code>, but with a lower
+specificity.</p>
+
+<h5><a name=only-of-type-pseudo>:only-of-type pseudo-class</a></h5>
+
+<p>Represents an element that has a parent element and whose parent
+element has no other element children with the same element name. Same
+as <code>:first-of-type:last-of-type</code> or
+<code>:nth-of-type(1):nth-last-of-type(1)</code>, but with a lower
+specificity.</p>
+
+
+<h5><a name=empty-pseudo></a>:empty pseudo-class</h5>
+
+<p>The <code>:empty</code> pseudo-class represents an element that has
+no children at all. In terms of the DOM, only element nodes and text
+nodes (including CDATA nodes and entity references) whose data has a
+non-zero length must be considered as affecting emptiness; comments,
+PIs, and other nodes must not affect whether an element is considered
+empty or not.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p><code>p:empty</code> is a valid representation of the following fragment:</p>
+ <pre>&lt;p&gt;&lt;/p&gt;</pre>
+ <p><code>foo:empty</code> is not a valid representation for the
+ following fragments:</p>
+ <pre>&lt;foo&gt;bar&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;&lt;bar&gt;bla&lt;/bar&gt;&lt;/foo&gt;</pre>
+ <pre>&lt;foo&gt;this is not &lt;bar&gt;:empty&lt;/bar&gt;&lt;/foo&gt;</pre>
+</div>
+
+<h4><a name=content-selectors>6.6.6. Blank</a></h4> <!-- It's the Return of Appendix H!!! Run away! -->
+
+<p>This section intentionally left blank.</p>
+<!-- (used to be :contains()) -->
+
+<h4><a name=negation></a>6.6.7. The negation pseudo-class</h4>
+
+<p>The negation pseudo-class, <code>:not(<var>X</var>)</code>, is a
+functional notation taking a <a href="#simple-selectors-dfn">simple
+selector</a> (excluding the negation pseudo-class itself and
+pseudo-elements) as an argument. It represents an element that is not
+represented by the argument.
+
+<!-- pseudo-elements are not simple selectors, so the above paragraph
+may be a bit confusing -->
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following CSS selector matches all <code>button</code>
+ elements in an HTML document that are not disabled.</p>
+ <pre>button:not([DISABLED])</pre>
+ <p>The following selector represents all but <code>FOO</code>
+ elements.</p>
+ <pre>*:not(FOO)</pre>
+ <p>The following group of selectors represents all HTML elements
+ except links.</p>
+ <pre>html|*:not(:link):not(:visited)</pre>
+</div>
+
+<p>Default namespace declarations do not affect the argument of the
+negation pseudo-class unless the argument is a universal selector or a
+type selector.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>Assuming that the default namespace is bound to
+ "http://example.com/", the following selector represents all
+ elements that are not in that namespace:</p>
+ <pre>*|*:not(*)</pre>
+ <p>The following CSS selector matches any element being hovered,
+ regardless of its namespace. In particular, it is not limited to
+ only matching elements in the default namespace that are not being
+ hovered, and elements not in the default namespace don't match the
+ rule when they <em>are</em> being hovered.</p>
+ <pre>*|*:not(:hover)</pre>
+</div>
+
+<p class="note"><strong>Note</strong>: the :not() pseudo allows
+useless selectors to be written. For instance <code>:not(*|*)</code>,
+which represents no element at all, or <code>foo:not(bar)</code>,
+which is equivalent to <code>foo</code> but with a higher
+specificity.</p>
+
+<h3><a name=pseudo-elements>7. Pseudo-elements</a></h3>
+
+<p>Pseudo-elements create abstractions about the document tree beyond
+those specified by the document language. For instance, document
+languages do not offer mechanisms to access the first letter or first
+line of an element's content. Pseudo-elements allow designers to refer
+to this otherwise inaccessible information. Pseudo-elements may also
+provide designers a way to refer to content that does not exist in the
+source document (e.g., the <code>::before</code> and
+<code>::after</code> pseudo-elements give access to generated
+content).</p>
+
+<p>A pseudo-element is made of two colons (<code>::</code>) followed
+by the name of the pseudo-element.</p>
+
+<p>This <code>::</code> notation is introduced by the current document
+in order to establish a discrimination between pseudo-classes and
+pseudo-elements. For compatibility with existing style sheets, user
+agents must also accept the previous one-colon notation for
+pseudo-elements introduced in CSS levels 1 and 2 (namely,
+<code>:first-line</code>, <code>:first-letter</code>,
+<code>:before</code> and <code>:after</code>). This compatibility is
+not allowed for the new pseudo-elements introduced in CSS level 3.</p>
+
+<p>Only one pseudo-element may appear per selector, and if present it
+must appear after the sequence of simple selectors that represents the
+<a href="#subject">subjects</a> of the selector. <span class="note">A
+future version of this specification may allow multiple
+pesudo-elements per selector.</span></p>
+
+<h4><a name=first-line>7.1. The ::first-line pseudo-element</a></h4>
+
+<p>The <code>::first-line</code> pseudo-element describes the contents
+of the first formatted line of an element.
+
+<div class="example">
+<p>CSS example:</p>
+<pre>p::first-line { text-transform: uppercase }</pre>
+<p>The above rule means "change the letters of the first line of every
+paragraph to uppercase".</p>
+</div>
+
+<p>The selector <code>p::first-line</code> does not match any real
+HTML element. It does match a pseudo-element that conforming user
+agents will insert at the beginning of every paragraph.</p>
+
+<p>Note that the length of the first line depends on a number of
+factors, including the width of the page, the font size, etc. Thus,
+an ordinary HTML paragraph such as:</p>
+
+<pre>
+&lt;P&gt;This is a somewhat long HTML
+paragraph that will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the lines of which happen to be broken as follows:
+
+<pre>
+THIS IS A SOMEWHAT LONG HTML PARAGRAPH THAT
+will be broken into several lines. The first
+line will be identified by a fictional tag
+sequence. The other lines will be treated as
+ordinary lines in the paragraph.
+</pre>
+
+<p>This paragraph might be "rewritten" by user agents to include the
+<em>fictional tag sequence</em> for <code>::first-line</code>. This
+fictional tag sequence helps to show how properties are inherited.</p>
+
+<pre>
+&lt;P&gt;<b>&lt;P::first-line&gt;</b> This is a somewhat long HTML
+paragraph that <b>&lt;/P::first-line&gt;</b> will be broken into several
+lines. The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>If a pseudo-element breaks up a real element, the desired effect
+can often be described by a fictional tag sequence that closes and
+then re-opens the element. Thus, if we mark up the previous paragraph
+with a <code>span</code> element:</p>
+
+<pre>
+&lt;P&gt;<b>&lt;SPAN class="test"&gt;</b> This is a somewhat long HTML
+paragraph that will be broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>the user agent could simulate start and end tags for
+<code>span</code> when inserting the fictional tag sequence for
+<code>::first-line</code>.
+
+<pre>
+&lt;P&gt;&lt;P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> This is a
+somewhat long HTML
+paragraph that will <b>&lt;/SPAN&gt;</b>&lt;/P::first-line&gt;<b>&lt;SPAN class="test"&gt;</b> be
+broken into several
+lines.<b>&lt;/SPAN&gt;</b> The first line will be identified
+by a fictional tag sequence. The other lines
+will be treated as ordinary lines in the
+paragraph.&lt;/P&gt;
+</pre>
+
+<p>In CSS, the <code>::first-line</code> pseudo-element can only be
+attached to a block-level element, an inline-block, a table-caption,
+or a table-cell.</p>
+
+<p><a name="first-formatted-line"></a>The "first formatted line" of an
+element may occur inside a
+block-level descendant in the same flow (i.e., a block-level
+descendant that is not positioned and not a float). E.g., the first
+line of the <code>div</code> in <code>&lt;DIV>&lt;P>This
+line...&lt;/P>&lt/DIV></code> is the first line of the <code>p</code> (assuming
+that both <code>p</code> and <code>div</code> are block-level).
+
+<p>The first line of a table-cell or inline-block cannot be the first
+formatted line of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first formatted line of the
+<code>div</code> is not the line "Hello".
+
+<p class="note">Note that the first line of the <code>p</code> in this
+fragment: <code>&lt;p&gt&lt;br&gt;First...</code> doesn't contain any
+letters (assuming the default style for <code>br</code> in HTML
+4). The word "First" is not on the first formatted line.
+
+<p>A UA should act as if the fictional start tags of the
+<code>::first-line</code> pseudo-elements were nested just inside the
+innermost enclosing block-level element. (Since CSS1 and CSS2 were
+silent on this case, authors should not rely on this behavior.) Here
+is an example. The fictional tag sequence for</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>First paragraph&lt;/P>
+ &lt;P>Second paragraph&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>is</p>
+
+<pre>
+&lt;DIV>
+ &lt;P>&lt;DIV::first-line>&lt;P::first-line>First paragraph&lt;/P::first-line>&lt;/DIV::first-line>&lt;/P>
+ &lt;P>&lt;P::first-line>Second paragraph&lt;/P::first-line>&lt;/P>
+&lt;/DIV>
+</pre>
+
+<p>The <code>::first-line</code> pseudo-element is similar to an
+inline-level element, but with certain restrictions. In CSS, the
+following properties apply to a <code>::first-line</code>
+pseudo-element: font properties, color property, background
+properties, 'word-spacing', 'letter-spacing', 'text-decoration',
+'vertical-align', 'text-transform', 'line-height'. UAs may apply other
+properties as well.</p>
+
+
+<h4><a name=first-letter>7.2. The ::first-letter pseudo-element</a></h4>
+
+<p>The <code>::first-letter</code> pseudo-element represents the first
+letter of the first line of a block, if it is not preceded by any
+other content (such as images or inline tables) on its line. The
+::first-letter pseudo-element may be used for "initial caps" and "drop
+caps", which are common typographical effects. This type of initial
+letter is similar to an inline-level element if its 'float' property
+is 'none'; otherwise, it is similar to a floated element.</p>
+
+<p>In CSS, these are the properties that apply to <code>::first-letter</code>
+pseudo-elements: font properties, 'text-decoration', 'text-transform',
+'letter-spacing', 'word-spacing' (when appropriate), 'line-height',
+'float', 'vertical-align' (only if 'float' is 'none'), margin
+properties, padding properties, border properties, color property,
+background properties. UAs may apply other properties as well. To
+allow UAs to render a typographically correct drop cap or initial cap,
+the UA may choose a line-height, width and height based on the shape
+of the letter, unlike for normal elements.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>This example shows a possible rendering of an initial cap. Note
+that the 'line-height' that is inherited by the <code>::first-letter</code>
+pseudo-element is 1.1, but the UA in this example has computed the
+height of the first letter differently, so that it doesn't cause any
+unnecessary space between the first two lines. Also note that the
+fictional start tag of the first letter is inside the <span>span</span>, and thus
+the font weight of the first letter is normal, not bold as the <span>span</span>:
+<pre>
+p { line-height: 1.1 }
+p::first-letter { font-size: 3em; font-weight: normal }
+span { font-weight: bold }
+...
+&lt;p>&lt;span>Het hemelsche&lt;/span> gerecht heeft zich ten lange lesten&lt;br>
+Erbarremt over my en mijn benaeuwde vesten&lt;br>
+En arme burgery, en op mijn volcx gebed&lt;br>
+En dagelix geschrey de bange stad ontzet.
+</pre>
+<div class="figure">
+<p><img src="initial-cap.png" alt="Image illustrating the ::first-letter pseudo-element">
+</div>
+</div>
+
+<div class="example">
+<p>The following CSS will make a drop cap initial letter span about two lines:</p>
+
+<pre>
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;TITLE&gt;Drop cap initial letter&lt;/TITLE&gt;
+ &lt;STYLE type="text/css"&gt;
+ P { font-size: 12pt; line-height: 1.2 }
+ P::first-letter { font-size: 200%; font-weight: bold; float: left }
+ SPAN { text-transform: uppercase }
+ &lt;/STYLE&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ &lt;P&gt;&lt;SPAN&gt;The first&lt;/SPAN&gt; few words of an article
+ in The Economist.&lt;/P&gt;
+ &lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre>
+
+<p>This example might be formatted as follows:</p>
+
+<div class="figure">
+<P><img src="first-letter.gif" alt="Image illustrating the combined effect of the ::first-letter and ::first-line pseudo-elements"></p>
+</div>
+
+<p>The <span class="index-inst" title="fictional tag
+sequence">fictional tag sequence</span> is:</p>
+
+<pre>
+&lt;P&gt;
+&lt;SPAN&gt;
+&lt;P::first-letter&gt;
+T
+&lt;/P::first-letter&gt;he first
+&lt;/SPAN&gt;
+few words of an article in the Economist.
+&lt;/P&gt;
+</pre>
+
+<p>Note that the <code>::first-letter</code> pseudo-element tags abut
+the content (i.e., the initial character), while the ::first-line
+pseudo-element start tag is inserted right after the start tag of the
+block element.</p> </div>
+
+<p>In order to achieve traditional drop caps formatting, user agents
+may approximate font sizes, for example to align baselines. Also, the
+glyph outline may be taken into account when formatting.</p>
+
+<p>Punctuation (i.e, characters defined in Unicode in the "open" (Ps),
+"close" (Pe), "initial" (Pi). "final" (Pf) and "other" (Po)
+punctuation classes), that precedes or follows the first letter should
+be included. <a href="#refsUNICODE">[UNICODE]</a></p>
+
+<div class="figure">
+<P><img src="first-letter2.gif" alt="Quotes that precede the
+first letter should be included."></p>
+</div>
+
+<p>The <code>::first-letter</code> also applies if the first letter is
+in fact a digit, e.g., the "6" in "67 million dollars is a lot of
+money."</p>
+
+<p>In CSS, the <code>::first-letter</code> pseudo-element applies to
+block, list-item, table-cell, table-caption, and inline-block
+elements. <span class="note">A future version of this specification
+may allow this pesudo-element to apply to more element
+types.</span></p>
+
+<p>The <code>::first-letter</code> pseudo-element can be used with all
+such elements that contain text, or that have a descendant in the same
+flow that contains text. A UA should act as if the fictional start tag
+of the ::first-letter pseudo-element is just before the first text of
+the element, even if that first text is in a descendant.</p>
+
+<div class="example">
+<p>Example:</p>
+<p>The fictional tag sequence for this HTMLfragment:
+<pre>&lt;div>
+&lt;p>The first text.</pre>
+<p>is:
+<pre>&lt;div>
+&lt;p>&lt;div::first-letter>&lt;p::first-letter>T&lt;/...>&lt;/...>he first text.</pre>
+</div>
+
+<p>The first letter of a table-cell or inline-block cannot be the
+first letter of an ancestor element. Thus, in <code>&lt;DIV&gt;&lt;P
+STYLE="display: inline-block">Hello&lt;BR&gt;Goodbye&lt;/P&gt;
+etcetera&lt;/DIV&gt;</code> the first letter of the <code>div</code> is not the
+letter "H". In fact, the <code>div</code> doesn't have a first letter.
+
+<p>The first letter must occur on the <a
+href="#first-formatted-line">first formatted line.</a> For example, in
+this fragment: <code>&lt;p&gt&lt;br&gt;First...</code> the first line
+doesn't contain any letters and <code>::first-letter</code> doesn't
+match anything (assuming the default style for <code>br</code> in HTML
+4). In particular, it does not match the "F" of "First."
+
+<p>In CSS, if an element is a list item ('display: list-item'), the
+<code>::first-letter</code> applies to the first letter in the
+principal box after the marker. UAs may ignore
+<code>::first-letter</code> on list items with 'list-style-position:
+inside'. If an element has <code>::before</code> or
+<code>::after</code> content, the <code>::first-letter</code> applies
+to the first letter of the element <em>including</em> that content.
+
+<div class="example">
+<p>Example:</p>
+<p>After the rule 'p::before {content: "Note: "}', the selector
+'p::first-letter' matches the "N" of "Note".</p>
+</div>
+
+<p>Some languages may have specific rules about how to treat certain
+letter combinations. In Dutch, for example, if the letter combination
+"ij" appears at the beginning of a word, both letters should be
+considered within the <code>::first-letter</code> pseudo-element.
+
+<p>If the letters that would form the ::first-letter are not in the
+same element, such as "'T" in <code>&lt;p>'&lt;em>T...</code>, the UA
+may create a ::first-letter pseudo-element from one of the elements,
+both elements, or simply not create a pseudo-element.</p>
+
+<p>Similarly, if the first letter(s) of the block are not at the start
+of the line (for example due to bidirectional reordering), then the UA
+need not create the pseudo-element(s).
+
+<div class="example">
+<p>Example:</p>
+<p><a name="overlapping-example">The following example</a> illustrates
+how overlapping pseudo-elements may interact. The first letter of
+each P element will be green with a font size of '24pt'. The rest of
+the first formatted line will be 'blue' while the rest of the
+paragraph will be 'red'.</p>
+
+<pre>p { color: red; font-size: 12pt }
+p::first-letter { color: green; font-size: 200% }
+p::first-line { color: blue }
+
+&lt;P&gt;Some text that ends up on two lines&lt;/P&gt;</pre>
+
+<p>Assuming that a line break will occur before the word "ends", the
+<span class="index-inst" title="fictional tag sequence">fictional tag
+sequence</span> for this fragment might be:</p>
+
+<pre>&lt;P&gt;
+&lt;P::first-line&gt;
+&lt;P::first-letter&gt;
+S
+&lt;/P::first-letter&gt;ome text that
+&lt;/P::first-line&gt;
+ends up on two lines
+&lt;/P&gt;</pre>
+
+<p>Note that the <code>::first-letter</code> element is inside the <code>::first-line</code>
+element. Properties set on <code>::first-line</code> are inherited by
+<code>::first-letter</code>, but are overridden if the same property is set on
+<code>::first-letter</code>.</p>
+</div>
+
+
+<h4><a name=UIfragments>7.3.</a> <a name=selection>The ::selection pseudo-element</a></h4>
+
+<p>The <code>::selection</code> pseudo-element applies to the portion
+of a document that has been highlighted by the user. This also
+applies, for example, to selected text within an editable text
+field. This pseudo-element should not be confused with the <code><a
+href="#checked">:checked</a></code> pseudo-class (which used to be
+named <code>:selected</code>)
+
+<p>Although the <code>::selection</code> pseudo-element is dynamic in
+nature, and is altered by user action, it is reasonable to expect that
+when a UA re-renders to a static medium (such as a printed page, see
+<a href="#refsCSS21">[CSS21]</a>) which was originally rendered to a
+dynamic medium (like screen), the UA may wish to transfer the current
+<code>::selection</code> state to that other medium, and have all the
+appropriate formatting and rendering take effect as well. This is not
+required &mdash; UAs may omit the <code>::selection</code>
+pseudo-element for static media.
+
+<p>These are the CSS properties that apply to <code>::selection</code>
+pseudo-elements: color, background, cursor (optional), outline
+(optional). The computed value of the 'background-image' property on
+<code>::selection</code> may be ignored.
+
+
+<h4><a name=gen-content>7.4. The ::before and ::after pseudo-elements</a></h4>
+
+<p>The <code>::before</code> and <code>::after</code> pseudo-elements
+can be used to describe generated content before or after an element's
+content. They are explained in CSS 2.1 <a
+href="#refsCSS21">[CSS21]</a>.</p>
+
+<p>When the <code>::first-letter</code> and <code>::first-line</code>
+pseudo-elements are combined with <code>::before</code> and
+<code>::after</code>, they apply to the first letter or line of the
+element including the inserted text.</p>
+
+<h2><a name=combinators>8. Combinators</a></h2>
+
+<h3><a name=descendant-combinators>8.1. Descendant combinator</a></h3>
+
+<p>At times, authors may want selectors to describe an element that is
+the descendant of another element in the document tree (e.g., "an
+<code>EM</code> element that is contained within an <code>H1</code>
+element"). Descendant combinators express such a relationship. A
+descendant combinator is <a href="#whitespace">white space</a> that
+separates two sequences of simple selectors. A selector of the form
+"<code>A B</code>" represents an element <code>B</code> that is an
+arbitrary descendant of some ancestor element <code>A</code>.
+
+<div class="example">
+ <p>Examples:</p>
+ <p>For example, consider the following selector:</p>
+ <pre>h1 em</pre>
+ <p>It represents an <code>em</code> element being the descendant of
+ an <code>h1</code> element. It is a correct and valid, but partial,
+ description of the following fragment:</p>
+ <pre>&lt;h1&gt;This &lt;span class="myclass"&gt;headline
+is &lt;em&gt;very&lt;/em&gt; important&lt;/span&gt;&lt;/h1&gt;</pre>
+ <p>The following selector:</p>
+ <pre>div * p</pre>
+ <p>represents a <code>p</code> element that is a grandchild or later
+ descendant of a <code>div</code> element. Note the whitespace on
+ either side of the "*" is not part of the universal selector; the
+ whitespace is a combinator indicating that the DIV must be the
+ ancestor of some element, and that that element must be an ancestor
+ of the P.</p>
+ <p>The following selector, which combines descendant combinators and
+ <a href="#attribute-selectors">attribute selectors</a>, represents an
+ element that (1) has the <code>href</code> attribute set and (2) is
+ inside a <code>p</code> that is itself inside a <code>div</code>:</p>
+ <pre>div p *[href]</pre>
+</div>
+
+<h3><a name=child-combinators>8.2. Child combinators</a></h3>
+
+<p>A <dfn>child combinator</dfn> describes a childhood relationship
+between two elements. A child combinator is made of the
+&quot;greater-than sign&quot; (<code>&gt;</code>) character and
+separates two sequences of simple selectors.
+
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element that is
+ child of <code>body</code>:</p>
+ <pre>body &gt; p</pre>
+ <p>The following example combines descendant combinators and child
+ combinators.</p>
+ <pre>div ol&gt;li p</pre><!-- LEAVE THOSE SPACES OUT! see below -->
+ <p>It represents a <code>p</code> element that is a descendant of an
+ <code>li</code> element; the <code>li</code> element must be the
+ child of an <code>ol</code> element; the <code>ol</code> element must
+ be a descendant of a <code>div</code>. Notice that the optional white
+ space around the "&gt;" combinator has been left out.</p>
+</div>
+
+<p>For information on selecting the first child of an element, please
+see the section on the <code><a
+href="#structural-pseudos">:first-child</a></code> pseudo-class
+above.</p>
+
+<h3><a name=sibling-combinators>8.3. Sibling combinators</a></h3>
+
+<p>There are two different sibling combinators: the adjacent sibling
+combinator and the general sibling combinator. In both cases,
+non-element nodes (e.g. text between elements) are ignored when
+considering adjacency of elements.</p>
+
+<h4><a name=adjacent-sibling-combinators>8.3.1. Adjacent sibling combinator</a></h4>
+
+<p>The adjacent sibling combinator is made of the &quot;plus
+sign&quot; (U+002B, <code>+</code>) character that separates two
+sequences of simple selectors. The elements represented by the two
+sequences share the same parent in the document tree and the element
+represented by the first sequence immediately precedes the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Examples:</p>
+ <p>The following selector represents a <code>p</code> element
+ immediately following a <code>math</code> element:</p>
+ <pre>math + p</pre>
+ <p>The following selector is conceptually similar to the one in the
+ previous example, except that it adds an attribute selector &mdash; it
+ adds a constraint to the <code>h1</code> element, that it must have
+ <code>class="opener"</code>:</p>
+ <pre>h1.opener + h2</pre>
+</div>
+
+
+<h4><a name=general-sibling-combinators>8.3.2. General sibling combinator</a></h4>
+
+<p>The general sibling combinator is made of the &quot;tilde&quot;
+(U+007E, <code>~</code>) character that separates two sequences of
+simple selectors. The elements represented by the two sequences share
+the same parent in the document tree and the element represented by
+the first sequence precedes (not necessarily immediately) the element
+represented by the second one.</p>
+
+<div class="example">
+ <p>Example:</p>
+ <pre>h1 ~ pre</pre>
+ <p>represents a <code>pre</code> element following an <code>h1</code>. It
+ is a correct and valid, but partial, description of:</p>
+ <pre>&lt;h1&gt;Definition of the function a&lt;/h1&gt;
+&lt;p&gt;Function a(x) has to be applied to all figures in the table.&lt;/p&gt;
+&lt;pre&gt;function a(x) = 12x/13.5&lt;/pre&gt;</pre>
+</div>
+
+<h2><a name=specificity>9. Calculating a selector's specificity</a></h2>
+
+<p>A selector's specificity is calculated as follows:</p>
+
+<ul>
+ <li>count the number of ID selectors in the selector (= a)</li>
+ <li>count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)</li>
+ <li>count the number of element names in the selector (= c)</li>
+ <li>ignore pseudo-elements</li>
+</ul>
+
+<p>Selectors inside <a href="#negation">the negation pseudo-class</a>
+are counted like any other, but the negation itself does not count as
+a pseudo-class.</p>
+
+<p>Concatenating the three numbers a-b-c (in a number system with a
+large base) gives the specificity.</p>
+
+<div class="example">
+<p>Examples:</p>
+<pre>* /* a=0 b=0 c=0 -&gt; specificity = 0 */
+LI /* a=0 b=0 c=1 -&gt; specificity = 1 */
+UL LI /* a=0 b=0 c=2 -&gt; specificity = 2 */
+UL OL+LI /* a=0 b=0 c=3 -&gt; specificity = 3 */
+H1 + *[REL=up] /* a=0 b=1 c=1 -&gt; specificity = 11 */
+UL OL LI.red /* a=0 b=1 c=3 -&gt; specificity = 13 */
+LI.red.level /* a=0 b=2 c=1 -&gt; specificity = 21 */
+#x34y /* a=1 b=0 c=0 -&gt; specificity = 100 */
+#s12:not(FOO) /* a=1 b=0 c=1 -&gt; specificity = 101 */
+</pre>
+</div>
+
+<p class="note"><strong>Note:</strong> the specificity of the styles
+specified in an HTML <code>style</code> attribute is described in CSS
+2.1. <a href="#refsCSS21">[CSS21]</a>.</p>
+
+<h2><a name=w3cselgrammar>10. The grammar of Selectors</a></h2>
+
+<h3><a name=grammar>10.1. Grammar</a></h3>
+
+<p>The grammar below defines the syntax of Selectors. It is globally
+LL(1) and can be locally LL(2) (but note that most UA's should not use
+it directly, since it doesn't express the parsing conventions). The
+format of the productions is optimized for human consumption and some
+shorthand notations beyond Yacc (see <a href="#refsYACC">[YACC]</a>)
+are used:</p>
+
+<ul>
+ <li><b>*</b>: 0 or more
+ <li><b>+</b>: 1 or more
+ <li><b>?</b>: 0 or 1
+ <li><b>|</b>: separates alternatives
+ <li><b>[ ]</b>: grouping </li>
+</ul>
+
+<p>The productions are:</p>
+
+<pre>selectors_group
+ : selector [ COMMA S* selector ]*
+ ;
+
+selector
+ : simple_selector_sequence [ combinator simple_selector_sequence ]*
+ ;
+
+combinator
+ /* combinators can be surrounded by white space */
+ : PLUS S* | GREATER S* | TILDE S* | S+
+ ;
+
+simple_selector_sequence
+ : [ type_selector | universal ]
+ [ HASH | class | attrib | pseudo | negation ]*
+ | [ HASH | class | attrib | pseudo | negation ]+
+ ;
+
+type_selector
+ : [ namespace_prefix ]? element_name
+ ;
+
+namespace_prefix
+ : [ IDENT | '*' ]? '|'
+ ;
+
+element_name
+ : IDENT
+ ;
+
+universal
+ : [ namespace_prefix ]? '*'
+ ;
+
+class
+ : '.' IDENT
+ ;
+
+attrib
+ : '[' S* [ namespace_prefix ]? IDENT S*
+ [ [ PREFIXMATCH |
+ SUFFIXMATCH |
+ SUBSTRINGMATCH |
+ '=' |
+ INCLUDES |
+ DASHMATCH ] S* [ IDENT | STRING ] S*
+ ]? ']'
+ ;
+
+pseudo
+ /* '::' starts a pseudo-element, ':' a pseudo-class */
+ /* Exceptions: :first-line, :first-letter, :before and :after. */
+ /* Note that pseudo-elements are restricted to one per selector and */
+ /* occur only in the last simple_selector_sequence. */
+ : ':' ':'? [ IDENT | functional_pseudo ]
+ ;
+
+functional_pseudo
+ : FUNCTION S* expression ')'
+ ;
+
+expression
+ /* In CSS3, the expressions are identifiers, strings, */
+ /* or of the form "an+b" */
+ : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
+ ;
+
+negation
+ : NOT S* negation_arg S* ')'
+ ;
+
+negation_arg
+ : type_selector | universal | HASH | class | attrib | pseudo
+ ;</pre>
+
+
+<h3><a name=lex>10.2. Lexical scanner</a></h3>
+
+<p>The following is the <a name=x3>tokenizer</a>, written in Flex (see
+<a href="#refsFLEX">[FLEX]</a>) notation. The tokenizer is
+case-insensitive.</p>
+
+<p>The two occurrences of "\377" represent the highest character
+number that current versions of Flex can deal with (decimal 255). They
+should be read as "\4177777" (decimal 1114111), which is the highest
+possible code point in Unicode/ISO-10646. <a
+href="#refsUNICODE">[UNICODE]</a></p>
+
+<pre>%option case-insensitive
+
+ident [-]?{nmstart}{nmchar}*
+name {nmchar}+
+nmstart [_a-z]|{nonascii}|{escape}
+nonascii [^\0-\177]
+unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
+escape {unicode}|\\[^\n\r\f0-9a-f]
+nmchar [_a-z0-9-]|{nonascii}|{escape}
+num [0-9]+|[0-9]*\.[0-9]+
+string {string1}|{string2}
+string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
+string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
+invalid {invalid1}|{invalid2}
+invalid1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*
+invalid2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*
+nl \n|\r\n|\r|\f
+w [ \t\r\n\f]*
+
+%%
+
+[ \t\r\n\f]+ return S;
+
+"~=" return INCLUDES;
+"|=" return DASHMATCH;
+"^=" return PREFIXMATCH;
+"$=" return SUFFIXMATCH;
+"*=" return SUBSTRINGMATCH;
+{ident} return IDENT;
+{string} return STRING;
+{ident}"(" return FUNCTION;
+{num} return NUMBER;
+"#"{name} return HASH;
+{w}"+" return PLUS;
+{w}"&gt;" return GREATER;
+{w}"," return COMMA;
+{w}"~" return TILDE;
+":not(" return NOT;
+@{ident} return ATKEYWORD;
+{invalid} return INVALID;
+{num}% return PERCENTAGE;
+{num}{ident} return DIMENSION;
+"&lt;!--" return CDO;
+"--&gt;" return CDC;
+
+"url("{w}{string}{w}")" return URI;
+"url("{w}([!#$%&*-~]|{nonascii}|{escape})*{w}")" return URI;
+U\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})? return UNICODE_RANGE;
+
+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */
+
+. return *yytext;</pre>
+
+
+
+<h2><a name=downlevel>11. Namespaces and down-level clients</a></h2>
+
+<p>An important issue is the interaction of CSS selectors with XML
+documents in web clients that were produced prior to this
+document. Unfortunately, due to the fact that namespaces must be
+matched based on the URI which identifies the namespace, not the
+namespace prefix, some mechanism is required to identify namespaces in
+CSS by their URI as well. Without such a mechanism, it is impossible
+to construct a CSS style sheet which will properly match selectors in
+all cases against a random set of XML documents. However, given
+complete knowledge of the XML document to which a style sheet is to be
+applied, and a limited use of namespaces within the XML document, it
+is possible to construct a style sheet in which selectors would match
+elements and attributes correctly.</p>
+
+<p>It should be noted that a down-level CSS client will (if it
+properly conforms to CSS forward compatible parsing rules) ignore all
+<code>@namespace</code> at-rules, as well as all style rules that make
+use of namespace qualified element type or attribute selectors. The
+syntax of delimiting namespace prefixes in CSS was deliberately chosen
+so that down-level CSS clients would ignore the style rules rather
+than possibly match them incorrectly.</p>
+
+<p>The use of default namespaces in CSS makes it possible to write
+element type selectors that will function in both namespace aware CSS
+clients as well as down-level clients. It should be noted that
+down-level clients may incorrectly match selectors against XML
+elements in other namespaces.</p>
+
+<p>The following are scenarios and examples in which it is possible to
+construct style sheets which would function properly in web clients
+that do not implement this proposal.</p>
+
+<ol>
+ <li>
+
+ <p>The XML document does not use namespaces.</p>
+
+ <ul>
+
+ <li>In this case, it is obviously not necessary to declare or use
+ namespaces in the style sheet. Standard CSS element type and
+ attribute selectors will function adequately in a down-level
+ client.</li>
+
+ <li>In a CSS namespace aware client, the default behavior of
+ element selectors matching without regard to namespace will
+ function properly against all elements, since no namespaces are
+ present. However, the use of specific element type selectors that
+ match only elements that have no namespace ("<code>|name</code>")
+ will guarantee that selectors will match only XML elements that do
+ not have a declared namespace. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document defines a single, default namespace used
+ throughout the document. No namespace prefixes are used in element
+ names.</p>
+
+ <ul>
+
+ <li>In this case, a down-level client will function as if
+ namespaces were not used in the XML document at all. Standard CSS
+ element type and attribute selectors will match against all
+ elements. </li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <p>The XML document does <b>not</b> use a default namespace, all
+ namespace prefixes used are known to the style sheet author, and
+ there is a direct mapping between namespace prefixes and namespace
+ URIs. (A given prefix may only be mapped to one namespace URI
+ throughout the XML document; there may be multiple prefixes mapped
+ to the same URI).</p>
+
+ <ul>
+
+ <li>In this case, the down-level client will view and match
+ element type and attribute selectors based on their fully
+ qualified name, not the local part as outlined in the <a
+ href="#typenmsp">Type selectors and Namespaces</a> section. CSS
+ selectors may be declared using an escaped colon "<code>\:</code>"
+ to describe the fully qualified names, e.g.
+ "<code>html\:h1</code>" will match
+ <code>&lt;html:h1&gt;</code>. Selectors using the qualified name
+ will only match XML elements that use the same prefix. Other
+ namespace prefixes used in the XML that are mapped to the same URI
+ will not match as expected unless additional CSS style rules are
+ declared for them.</li>
+
+ <li>Note that selectors declared in this fashion will
+ <em>only</em> match in down-level clients. A CSS namespace aware
+ client will match element type and attribute selectors based on
+ the name's local part. Selectors declared with the fully
+ qualified name will not match (unless there is no namespace prefix
+ in the fully qualified name).</li>
+
+ </ul>
+
+ </li>
+
+ </ol>
+
+<p>In other scenarios: when the namespace prefixes used in the XML are
+not known in advance by the style sheet author; or a combination of
+elements with no namespace are used in conjunction with elements using
+a default namespace; or the same namespace prefix is mapped to
+<em>different</em> namespace URIs within the same document, or in
+different documents; it is impossible to construct a CSS style sheet
+that will function properly against all elements in those documents,
+unless, the style sheet is written using a namespace URI syntax (as
+outlined in this document or similar) and the document is processed by
+a CSS and XML namespace aware client.</p>
+
+<h2><a name=profiling>12. Profiles</a></h2>
+
+<p>Each specification using Selectors must define the subset of W3C
+Selectors it allows and excludes, and describe the local meaning of
+all the components of that subset.</p>
+
+<p>Non normative examples:
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 1</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>class selectors<br>ID selectors<br>:link,
+ :visited and :active pseudo-classes<br>descendant combinator
+ <br>::first-line and ::first-letter pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>universal selector<br>attribute selectors<br>:hover and :focus
+ pseudo-classes<br>:target pseudo-class<br>:lang() pseudo-class<br>all UI
+ element states pseudo-classes<br>all structural
+ pseudo-classes<br>negation pseudo-class<br>all
+ UI element fragments pseudo-elements<br>::before and ::after
+ pseudo-elements<br>child combinators<br>sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>only one class selector allowed per sequence of simple
+ selectors</td></tr></tbody></table><br><br>
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>CSS level 2</td></tr>
+ <tr>
+ <th>Accepts</th>
+ <td>type selectors<br>universal selector<br>attribute presence and
+ values selectors<br>class selectors<br>ID selectors<br>:link, :visited,
+ :active, :hover, :focus, :lang() and :first-child pseudo-classes
+ <br>descendant combinator<br>child combinator<br>adjacent sibling
+ combinator<br>::first-line and ::first-letter pseudo-elements<br>::before
+ and ::after pseudo-elements</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>
+
+<p>content selectors<br>substring matching attribute
+ selectors<br>:target pseudo-classes<br>all UI element
+ states pseudo-classes<br>all structural pseudo-classes other
+ than :first-child<br>negation pseudo-class<br>all UI element
+ fragments pseudo-elements<br>general sibling combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>more than one class selector per sequence of simple selectors (CSS1
+ constraint) allowed</td></tr></tbody></table>
+
+<p>In CSS, selectors express pattern matching rules that determine which style
+rules apply to elements in the document tree.
+
+<p>The following selector (CSS level 2) will <b>match</b> all anchors <code>a</code>
+with attribute <code>name</code> set inside a section 1 header <code>h1</code>:
+<pre>h1 a[name]</pre>
+
+<p>All CSS declarations attached to such a selector are applied to elements
+matching it. </div>
+
+<div class="profile">
+<table class="tprofile">
+ <tbody>
+ <tr>
+ <th class="title" colspan=2>Selectors profile</th></tr>
+ <tr>
+ <th>Specification</th>
+ <td>STTS 3</td>
+ </tr>
+ <tr>
+ <th>Accepts</th>
+ <td>
+
+<p>type selectors<br>universal selectors<br>attribute selectors<br>class
+ selectors<br>ID selectors<br>all structural pseudo-classes<br>
+ all combinators
+
+<p>namespaces</td></tr>
+ <tr>
+ <th>Excludes</th>
+ <td>non-accepted pseudo-classes<br>pseudo-elements<br></td></tr>
+ <tr>
+ <th>Extra constraints</th>
+ <td>some selectors and combinators are not allowed in fragment
+ descriptions on the right side of STTS declarations.</td></tr></tbody></table>
+<form>
+<input type="text" name="test10"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+<input type="text" name="foo"/>
+</form>
+
+<p>Selectors can be used in STTS 3 in two different
+ manners:
+<ol>
+ <li>a selection mechanism equivalent to CSS selection mechanism: declarations
+ attached to a given selector are applied to elements matching that selector,
+ <li>fragment descriptions that appear on the right side of declarations.
+</li></ol></div>
+
+<h2><a name=Conformance></a>13. Conformance and requirements</h2>
+
+<p>This section defines conformance with the present specification only.
+
+<p>The inability of a user agent to implement part of this specification due to
+the limitations of a particular device (e.g., non interactive user agents will
+probably not implement dynamic pseudo-classes because they make no sense without
+interactivity) does not imply non-conformance.
+
+<p>All specifications reusing Selectors must contain a <a
+href="#profiling">Profile</a> listing the
+subset of Selectors it accepts or excludes, and describing the constraints
+it adds to the current specification.
+
+<p>Invalidity is caused by a parsing error, e.g. an unrecognized token or a token
+which is not allowed at the current parsing point.
+
+<p>User agents must observe the rules for handling parsing errors:
+<ul>
+ <li>a simple selector containing an undeclared namespace prefix is invalid</li>
+ <li>a selector containing an invalid simple selector, an invalid combinator
+ or an invalid token is invalid. </li>
+ <li>a group of selectors containing an invalid selector is invalid.</li>
+</ul>
+
+<p class="foo test10 bar">Specifications reusing Selectors must define how to handle parsing
+errors. (In the case of CSS, the entire rule in which the selector is
+used is dropped.)</p>
+
+<!-- Apparently all these references are out of date:
+<p>Implementations of this specification must behave as
+"recipients of text data" as defined by <a href="#refsCWWW">[CWWW]</a>
+when parsing selectors and attempting matches. (In particular,
+implementations must assume the data is normalized and must not
+normalize it.) Normative rules for matching strings are defined in
+<a href="#refsCWWW">[CWWW]</a> and <a
+href="#refsUNICODE">[UNICODE]</a> and apply to implementations of this
+specification.</p>-->
+
+<h2><a name=Tests></a>14. Tests</h2>
+
+<p>This specification has <a
+href="http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/">a test
+suite</a> allowing user agents to verify their basic conformance to
+the specification. This test suite does not pretend to be exhaustive
+and does not cover all possible combined cases of Selectors.</p>
+
+<h2><a name=ACKS></a>15. Acknowledgements</h2>
+
+<p>The CSS working group would like to thank everyone who has sent
+comments on this specification over the years.</p>
+
+<p>The working group would like to extend special thanks to Donna
+McManus, Justin Baker, Joel Sklar, and Molly Ives Brower who perfermed
+the final editorial review.</p>
+
+<h2><a name=references>16. References</a></h2>
+
+<dl class="refs">
+
+ <dt>[CSS1]
+ <dd><a name=refsCSS1></a> Bert Bos, H&aring;kon Wium Lie; "<cite>Cascading Style Sheets, level 1</cite>", W3C Recommendation, 17 Dec 1996, revised 11 Jan 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a></code>)
+
+ <dt>[CSS21]
+ <dd><a name=refsCSS21></a> Bert Bos, Tantek &Ccedil;elik, Ian Hickson, H&aring;kon Wium Lie, editors; "<cite>Cascading Style Sheets, level 2 revision 1</cite>", W3C Working Draft, 13 June 2005
+ <dd>(<code><a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a></code>)
+
+ <dt>[CWWW]
+ <dd><a name=refsCWWW></a> Martin J. D&uuml;rst, Fran&ccedil;ois Yergeau, Misha Wolf, Asmus Freytag, Tex Texin, editors; "<cite>Character Model for the World Wide Web</cite>", W3C Recommendation, 15 February 2005
+ <dd>(<code><a href="http://www.w3.org/TR/charmod/">http://www.w3.org/TR/charmod/</a></code>)
+
+ <dt>[FLEX]
+ <dd><a name="refsFLEX"></a> "<cite>Flex: The Lexical Scanner Generator</cite>", Version 2.3.7, ISBN 1882114213
+
+ <dt>[HTML4]
+ <dd><a name="refsHTML4"></a> Dave Ragget, Arnaud Le Hors, Ian Jacobs, editors; "<cite>HTML 4.01 Specification</cite>", W3C Recommendation, 24 December 1999
+ <dd>(<a href="http://www.w3.org/TR/html4/"><code>http://www.w3.org/TR/html4/</code></a>)
+
+ <dt>[MATH]
+ <dd><a name="refsMATH"></a> Patrick Ion, Robert Miner, editors; "<cite>Mathematical Markup Language (MathML) 1.01</cite>", W3C Recommendation, revision of 7 July 1999
+ <dd>(<code><a href="http://www.w3.org/TR/REC-MathML/">http://www.w3.org/TR/REC-MathML/</a></code>)
+
+ <dt>[RFC3066]
+ <dd><a name="refsRFC3066"></a> H. Alvestrand; "<cite>Tags for the Identification of Languages</cite>", Request for Comments 3066, January 2001
+ <dd>(<a href="http://www.ietf.org/rfc/rfc3066.txt"><code>http://www.ietf.org/rfc/rfc3066.txt</code></a>)
+
+ <dt>[STTS]
+ <dd><a name=refsSTTS></a> Daniel Glazman; "<cite>Simple Tree Transformation Sheets 3</cite>", Electricit&eacute; de France, submission to the W3C, 11 November 1998
+ <dd>(<code><a href="http://www.w3.org/TR/NOTE-STTS3">http://www.w3.org/TR/NOTE-STTS3</a></code>)
+
+ <dt>[SVG]
+ <dd><a name="refsSVG"></a> Jon Ferraiolo, &#34276;&#27810; &#28147;, Dean Jackson, editors; "<cite>Scalable Vector Graphics (SVG) 1.1 Specification</cite>", W3C Recommendation, 14 January 2003
+ <dd>(<code><a href="http://www.w3.org/TR/SVG/">http://www.w3.org/TR/SVG/</a></code>)
+
+ <dt>[UNICODE]</dt>
+ <dd><a name="refsUNICODE"></a> <cite><a
+ href="http://www.unicode.org/versions/Unicode4.1.0/">The Unicode Standard, Version 4.1</a></cite>, The Unicode Consortium. Boston, MA, Addison-Wesley, March 2005. ISBN 0-321-18578-1, as amended by <a href="http://www.unicode.org/versions/Unicode4.0.1/">Unicode 4.0.1</a> and <a href="http://www.unicode.org/versions/Unicode4.1.0/">Unicode 4.1.0</a>.
+ <dd>(<code><a href="http://www.unicode.org/versions/">http://www.unicode.org/versions/</a></code>)</dd>
+
+ <dt>[XML10]
+ <dd><a name="refsXML10"></a> Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran&ccedil;ois Yergeau, editors; "<cite>Extensible Markup Language (XML) 1.0 (Third Edition)</cite>", W3C Recommendation, 4 February 2004
+ <dd>(<a href="http://www.w3.org/TR/REC-xml/"><code>http://www.w3.org/TR/REC-xml/</code></a>)
+
+ <dt>[XMLNAMES]
+ <dd><a name="refsXMLNAMES"></a> Tim Bray, Dave Hollander, Andrew Layman, editors; "<cite>Namespaces in XML</cite>", W3C Recommendation, 14 January 1999
+ <dd>(<a href="http://www.w3.org/TR/REC-xml-names/"><code>http://www.w3.org/TR/REC-xml-names/</code></a>)
+
+ <dt>[YACC]
+ <dd><a name="refsYACC"></a> S. C. Johnson; "<cite>YACC &mdash; Yet another compiler compiler</cite>", Technical Report, Murray Hill, 1975
+
+</dl>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-3d-morph.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-3d-morph.html
new file mode 100644
index 000000000..8bdacaae5
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-3d-morph.html
@@ -0,0 +1,44 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// Test from here:
+// http://webkit.org/misc/morph.html
+
+window.onload = function(){ startTest("sunspider-3d-morph", '62915fe1');
+
+var loops = 15, nx, nz, a;
+var size = 120;
+
+function morph(a,f) {
+ var PI2nx = Math.PI * 8/nx;
+ var sin = Math.sin;
+ var f30 = -(50 * sin(f*Math.PI*2));
+
+ for (var i = 0; i < nz; ++i) {
+ for (var j = 0; j < nx; ++j) {
+ a[3*(i*nx+j)+1] = sin((j-1) * PI2nx ) * -f30
+ }
+ }
+}
+
+
+prep(function(){
+ nz = nx = size / 3;
+});
+
+test("Mesh Transform", function(){
+ a = Array();
+ for (var i=0; i < nx*nz*3; ++i)
+ a[i] = 0;
+
+ for (var i = 0; i < loops; ++i) {
+ morph(a, i/loops)
+ }
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html
new file mode 100644
index 000000000..4acc31d18
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html
@@ -0,0 +1,460 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function createVector(x,y,z) {
+ return new Array(x,y,z);
+}
+
+function sqrLengthVector(self) {
+ return self[0] * self[0] + self[1] * self[1] + self[2] * self[2];
+}
+
+function lengthVector(self) {
+ return Math.sqrt(self[0] * self[0] + self[1] * self[1] + self[2] * self[2]);
+}
+
+function addVector(self, v) {
+ self[0] += v[0];
+ self[1] += v[1];
+ self[2] += v[2];
+ return self;
+}
+
+function subVector(self, v) {
+ self[0] -= v[0];
+ self[1] -= v[1];
+ self[2] -= v[2];
+ return self;
+}
+
+function scaleVector(self, scale) {
+ self[0] *= scale;
+ self[1] *= scale;
+ self[2] *= scale;
+ return self;
+}
+
+function normaliseVector(self) {
+ var len = Math.sqrt(self[0] * self[0] + self[1] * self[1] + self[2] * self[2]);
+ self[0] /= len;
+ self[1] /= len;
+ self[2] /= len;
+ return self;
+}
+
+function add(v1, v2) {
+ return new Array(v1[0] + v2[0], v1[1] + v2[1], v1[2] + v2[2]);
+}
+
+function sub(v1, v2) {
+ return new Array(v1[0] - v2[0], v1[1] - v2[1], v1[2] - v2[2]);
+}
+
+function scalev(v1, v2) {
+ return new Array(v1[0] * v2[0], v1[1] * v2[1], v1[2] * v2[2]);
+}
+
+function dot(v1, v2) {
+ return v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
+}
+
+function scale(v, scale) {
+ return [v[0] * scale, v[1] * scale, v[2] * scale];
+}
+
+function cross(v1, v2) {
+ return [v1[1] * v2[2] - v1[2] * v2[1],
+ v1[2] * v2[0] - v1[0] * v2[2],
+ v1[0] * v2[1] - v1[1] * v2[0]];
+
+}
+
+function normalise(v) {
+ var len = lengthVector(v);
+ return [v[0] / len, v[1] / len, v[2] / len];
+}
+
+function transformMatrix(self, v) {
+ var vals = self;
+ var x = vals[0] * v[0] + vals[1] * v[1] + vals[2] * v[2] + vals[3];
+ var y = vals[4] * v[0] + vals[5] * v[1] + vals[6] * v[2] + vals[7];
+ var z = vals[8] * v[0] + vals[9] * v[1] + vals[10] * v[2] + vals[11];
+ return [x, y, z];
+}
+
+function invertMatrix(self) {
+ var temp = new Array(16);
+ var tx = -self[3];
+ var ty = -self[7];
+ var tz = -self[11];
+ for (h = 0; h < 3; h++)
+ for (v = 0; v < 3; v++)
+ temp[h + v * 4] = self[v + h * 4];
+ for (i = 0; i < 11; i++)
+ self[i] = temp[i];
+ self[3] = tx * self[0] + ty * self[1] + tz * self[2];
+ self[7] = tx * self[4] + ty * self[5] + tz * self[6];
+ self[11] = tx * self[8] + ty * self[9] + tz * self[10];
+ return self;
+}
+
+
+// Triangle intersection using barycentric coord method
+function Triangle(p1, p2, p3) {
+ var edge1 = sub(p3, p1);
+ var edge2 = sub(p2, p1);
+ var normal = cross(edge1, edge2);
+ if (Math.abs(normal[0]) > Math.abs(normal[1]))
+ if (Math.abs(normal[0]) > Math.abs(normal[2]))
+ this.axis = 0;
+ else
+ this.axis = 2;
+ else
+ if (Math.abs(normal[1]) > Math.abs(normal[2]))
+ this.axis = 1;
+ else
+ this.axis = 2;
+ var u = (this.axis + 1) % 3;
+ var v = (this.axis + 2) % 3;
+ var u1 = edge1[u];
+ var v1 = edge1[v];
+
+ var u2 = edge2[u];
+ var v2 = edge2[v];
+ this.normal = normalise(normal);
+ this.nu = normal[u] / normal[this.axis];
+ this.nv = normal[v] / normal[this.axis];
+ this.nd = dot(normal, p1) / normal[this.axis];
+ var det = u1 * v2 - v1 * u2;
+ this.eu = p1[u];
+ this.ev = p1[v];
+ this.nu1 = u1 / det;
+ this.nv1 = -v1 / det;
+ this.nu2 = v2 / det;
+ this.nv2 = -u2 / det;
+ this.material = [0.7, 0.7, 0.7];
+}
+
+Triangle.prototype.intersect = function(orig, dir, near, far) {
+ var u = (this.axis + 1) % 3;
+ var v = (this.axis + 2) % 3;
+ var d = dir[this.axis] + this.nu * dir[u] + this.nv * dir[v];
+ var t = (this.nd - orig[this.axis] - this.nu * orig[u] - this.nv * orig[v]) / d;
+ if (t < near || t > far)
+ return null;
+ var Pu = orig[u] + t * dir[u] - this.eu;
+ var Pv = orig[v] + t * dir[v] - this.ev;
+ var a2 = Pv * this.nu1 + Pu * this.nv1;
+ if (a2 < 0)
+ return null;
+ var a3 = Pu * this.nu2 + Pv * this.nv2;
+ if (a3 < 0)
+ return null;
+
+ if ((a2 + a3) > 1)
+ return null;
+ return t;
+}
+
+function Scene(a_triangles) {
+ this.triangles = a_triangles;
+ this.lights = [];
+ this.ambient = [0,0,0];
+ this.background = [0.8,0.8,1];
+}
+var zero = new Array(0,0,0);
+
+Scene.prototype.intersect = function(origin, dir, near, far) {
+ var closest = null;
+ for (i = 0; i < this.triangles.length; i++) {
+ var triangle = this.triangles[i];
+ var d = triangle.intersect(origin, dir, near, far);
+ if (d == null || d > far || d < near)
+ continue;
+ far = d;
+ closest = triangle;
+ }
+
+ if (!closest)
+ return [this.background[0],this.background[1],this.background[2]];
+
+ var normal = closest.normal;
+ var hit = add(origin, scale(dir, far));
+ if (dot(dir, normal) > 0)
+ normal = [-normal[0], -normal[1], -normal[2]];
+
+ var colour = null;
+ if (closest.shader) {
+ colour = closest.shader(closest, hit, dir);
+ } else {
+ colour = closest.material;
+ }
+
+ // do reflection
+ var reflected = null;
+ if (colour.reflection > 0.001) {
+ var reflection = addVector(scale(normal, -2*dot(dir, normal)), dir);
+ reflected = this.intersect(hit, reflection, 0.0001, 1000000);
+ if (colour.reflection >= 0.999999)
+ return reflected;
+ }
+
+ var l = [this.ambient[0], this.ambient[1], this.ambient[2]];
+ for (var i = 0; i < this.lights.length; i++) {
+ var light = this.lights[i];
+ var toLight = sub(light, hit);
+ var distance = lengthVector(toLight);
+ scaleVector(toLight, 1.0/distance);
+ distance -= 0.0001;
+ if (this.blocked(hit, toLight, distance))
+ continue;
+ var nl = dot(normal, toLight);
+ if (nl > 0)
+ addVector(l, scale(light.colour, nl));
+ }
+ l = scalev(l, colour);
+ if (reflected) {
+ l = addVector(scaleVector(l, 1 - colour.reflection), scaleVector(reflected, colour.reflection));
+ }
+ return l;
+}
+
+Scene.prototype.blocked = function(O, D, far) {
+ var near = 0.0001;
+ var closest = null;
+ for (i = 0; i < this.triangles.length; i++) {
+ var triangle = this.triangles[i];
+ var d = triangle.intersect(O, D, near, far);
+ if (d == null || d > far || d < near)
+ continue;
+ return true;
+ }
+
+ return false;
+}
+
+
+// this camera code is from notes i made ages ago, it is from *somewhere* -- i cannot remember where
+// that somewhere is
+function Camera(origin, lookat, up) {
+ var zaxis = normaliseVector(subVector(lookat, origin));
+ var xaxis = normaliseVector(cross(up, zaxis));
+ var yaxis = normaliseVector(cross(xaxis, subVector([0,0,0], zaxis)));
+ var m = new Array(16);
+ m[0] = xaxis[0]; m[1] = xaxis[1]; m[2] = xaxis[2];
+ m[4] = yaxis[0]; m[5] = yaxis[1]; m[6] = yaxis[2];
+ m[8] = zaxis[0]; m[9] = zaxis[1]; m[10] = zaxis[2];
+ invertMatrix(m);
+ m[3] = 0; m[7] = 0; m[11] = 0;
+ this.origin = origin;
+ this.directions = new Array(4);
+ this.directions[0] = normalise([-0.7, 0.7, 1]);
+ this.directions[1] = normalise([ 0.7, 0.7, 1]);
+ this.directions[2] = normalise([ 0.7, -0.7, 1]);
+ this.directions[3] = normalise([-0.7, -0.7, 1]);
+ this.directions[0] = transformMatrix(m, this.directions[0]);
+ this.directions[1] = transformMatrix(m, this.directions[1]);
+ this.directions[2] = transformMatrix(m, this.directions[2]);
+ this.directions[3] = transformMatrix(m, this.directions[3]);
+}
+
+Camera.prototype.generateRayPair = function(y) {
+ rays = new Array(new Object(), new Object());
+ rays[0].origin = this.origin;
+ rays[1].origin = this.origin;
+ rays[0].dir = addVector(scale(this.directions[0], y), scale(this.directions[3], 1 - y));
+ rays[1].dir = addVector(scale(this.directions[1], y), scale(this.directions[2], 1 - y));
+ return rays;
+}
+
+function renderRows(camera, scene, pixels, width, height, starty, stopy) {
+ for (var y = starty; y < stopy; y++) {
+ var rays = camera.generateRayPair(y / height);
+ for (var x = 0; x < width; x++) {
+ var xp = x / width;
+ var origin = addVector(scale(rays[0].origin, xp), scale(rays[1].origin, 1 - xp));
+ var dir = normaliseVector(addVector(scale(rays[0].dir, xp), scale(rays[1].dir, 1 - xp)));
+ var l = scene.intersect(origin, dir);
+ pixels[y][x] = l;
+ }
+ }
+}
+
+Camera.prototype.render = function(scene, pixels, width, height) {
+ var cam = this;
+ var row = 0;
+ renderRows(cam, scene, pixels, width, height, 0, height);
+}
+
+
+
+function raytraceScene(size)
+{
+ var startDate = new Date().getTime();
+ var numTriangles = 2 * 6;
+ var triangles = new Array();//numTriangles);
+ var tfl = createVector(-10, 10, -10);
+ var tfr = createVector( 10, 10, -10);
+ var tbl = createVector(-10, 10, 10);
+ var tbr = createVector( 10, 10, 10);
+ var bfl = createVector(-10, -10, -10);
+ var bfr = createVector( 10, -10, -10);
+ var bbl = createVector(-10, -10, 10);
+ var bbr = createVector( 10, -10, 10);
+
+ // cube!!!
+ // front
+ var i = 0;
+
+ triangles[i++] = new Triangle(tfl, tfr, bfr);
+ triangles[i++] = new Triangle(tfl, bfr, bfl);
+ // back
+ triangles[i++] = new Triangle(tbl, tbr, bbr);
+ triangles[i++] = new Triangle(tbl, bbr, bbl);
+ // triangles[i-1].material = [0.7,0.2,0.2];
+ // triangles[i-1].material.reflection = 0.8;
+ // left
+ triangles[i++] = new Triangle(tbl, tfl, bbl);
+ // triangles[i-1].reflection = 0.6;
+ triangles[i++] = new Triangle(tfl, bfl, bbl);
+ // triangles[i-1].reflection = 0.6;
+ // right
+ triangles[i++] = new Triangle(tbr, tfr, bbr);
+ triangles[i++] = new Triangle(tfr, bfr, bbr);
+ // top
+ triangles[i++] = new Triangle(tbl, tbr, tfr);
+ triangles[i++] = new Triangle(tbl, tfr, tfl);
+ // bottom
+ triangles[i++] = new Triangle(bbl, bbr, bfr);
+ triangles[i++] = new Triangle(bbl, bfr, bfl);
+
+ //Floor!!!!
+ var green = createVector(0.0, 0.4, 0.0);
+ var grey = createVector(0.4, 0.4, 0.4);
+ grey.reflection = 1.0;
+ var floorShader = function(tri, pos, view) {
+ var x = ((pos[0]/32) % 2 + 2) % 2;
+ var z = ((pos[2]/32 + 0.3) % 2 + 2) % 2;
+ if (x < 1 != z < 1) {
+ //in the real world we use the fresnel term...
+ // var angle = 1-dot(view, tri.normal);
+ // angle *= angle;
+ // angle *= angle;
+ // angle *= angle;
+ //grey.reflection = angle;
+ return grey;
+ } else
+ return green;
+ }
+ var ffl = createVector(-1000, -30, -1000);
+ var ffr = createVector( 1000, -30, -1000);
+ var fbl = createVector(-1000, -30, 1000);
+ var fbr = createVector( 1000, -30, 1000);
+ triangles[i++] = new Triangle(fbl, fbr, ffr);
+ triangles[i-1].shader = floorShader;
+ triangles[i++] = new Triangle(fbl, ffr, ffl);
+ triangles[i-1].shader = floorShader;
+
+ var _scene = new Scene(triangles);
+ _scene.lights[0] = createVector(20, 38, -22);
+ _scene.lights[0].colour = createVector(0.7, 0.3, 0.3);
+ _scene.lights[1] = createVector(-23, 40, 17);
+ _scene.lights[1].colour = createVector(0.7, 0.3, 0.3);
+ _scene.lights[2] = createVector(23, 20, 17);
+ _scene.lights[2].colour = createVector(0.7, 0.7, 0.7);
+ _scene.ambient = createVector(0.1, 0.1, 0.1);
+ // _scene.background = createVector(0.7, 0.7, 1.0);
+
+ var pixels = new Array();
+ for (var y = 0; y < size; y++) {
+ pixels[y] = new Array();
+ for (var x = 0; x < size; x++) {
+ pixels[y][x] = 0;
+ }
+ }
+
+ var _camera = new Camera(createVector(-40, 40, 40), createVector(0, 0, 0), createVector(0, 1, 0));
+ _camera.render(_scene, pixels, size, size);
+
+ return pixels;
+}
+
+function arrayToCanvasCommands(pixels, size)
+{
+ var s = '<canvas id="renderCanvas" width="30px" height="30px"></canvas><scr' + 'ipt>\nvar pixels = [';
+ for (var y = 0; y < size; y++) {
+ s += "[";
+ for (var x = 0; x < size; x++) {
+ s += "[" + pixels[y][x] + "],";
+ }
+ s+= "],";
+ }
+ s += '];\n var canvas = document.getElementById("renderCanvas").getContext("2d");\n\
+\n\
+\n\
+ var size = 20;\n\
+ canvas.fillStyle = "red";\n\
+ canvas.fillRect(0, 0, size, size);\n\
+ canvas.scale(1, -1);\n\
+ canvas.translate(0, -size);\n\
+\n\
+ if (!canvas.setFillColor)\n\
+ canvas.setFillColor = function(r, g, b, a) {\n\
+ this.fillStyle = "rgb("+[Math.floor(r * 255), Math.floor(g * 255), Math.floor(b * 255)]+")";\n\
+ }\n\
+\n\
+for (var y = 0; y < size; y++) {\n\
+ for (var x = 0; x < size; x++) {\n\
+ var l = pixels[y][x];\n\
+ canvas.setFillColor(l[0], l[1], l[2], 1);\n\
+ canvas.fillRect(x, y, 1, 1);\n\
+ }\n\
+}</scr' + 'ipt>';
+
+ return s;
+}
+
+window.onload = function(){ startTest("sunspider-3d-raytrace", '8f9b64d5');
+
+var rayoutput;
+
+test("3D Raytrace", function(){
+ rayoutput = raytraceScene(15);
+});
+
+test("Convert pixels to canvas", function(){
+ for ( var i = 0; i < 10; i++ )
+ testOutput = arrayToCanvasCommands(rayoutput, 15);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-binary-trees.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-binary-trees.html
new file mode 100644
index 000000000..d0c8777c9
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-binary-trees.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+function TreeNode(left,right,item){
+ this.left = left;
+ this.right = right;
+ this.item = item;
+}
+
+TreeNode.prototype.itemCheck = function(){
+ if (this.left==null) return this.item;
+ else return this.item + this.left.itemCheck() - this.right.itemCheck();
+}
+
+function bottomUpTree(item,depth){
+ if (depth>0){
+ return new TreeNode(
+ bottomUpTree(2*item-1, depth-1)
+ ,bottomUpTree(2*item, depth-1)
+ ,item
+ );
+ }
+ else {
+ return new TreeNode(null,null,item);
+ }
+}
+
+window.onload = function(){ startTest("sunspider-access-binary-trees", 'c1dfeea3');
+
+var ret;
+
+test( "Binary Trees", function(){
+ for ( var n = 4; n <= 5; n += 1 ) {
+ var minDepth = 4;
+ var maxDepth = Math.max(minDepth + 2, n);
+ var stretchDepth = maxDepth + 1;
+
+ var check = bottomUpTree(0,stretchDepth).itemCheck();
+
+ var longLivedTree = bottomUpTree(0,maxDepth);
+ for (var depth=minDepth; depth<=maxDepth; depth+=2){
+ var iterations = 1 << (maxDepth - depth + minDepth);
+
+ check = 0;
+ for (var i=1; i<=iterations; i++){
+ check += bottomUpTree(i,depth).itemCheck();
+ check += bottomUpTree(-i,depth).itemCheck();
+ }
+ }
+
+ ret = longLivedTree.itemCheck();
+ }
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-fannkuch.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-fannkuch.html
new file mode 100644
index 000000000..55044289a
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-fannkuch.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+function fannkuch(n) {
+ var check = 0;
+ var perm = Array(n);
+ var perm1 = Array(n);
+ var count = Array(n);
+ var maxPerm = Array(n);
+ var maxFlipsCount = 0;
+ var m = n - 1;
+
+ for (var i = 0; i < n; i++) perm1[i] = i;
+ var r = n;
+
+ while (true) {
+ // write-out the first 30 permutations
+ if (check < 30){
+ var s = "";
+ for(var i=0; i<n; i++) s += (perm1[i]+1).toString();
+ check++;
+ }
+
+ while (r != 1) { count[r - 1] = r; r--; }
+ if (!(perm1[0] == 0 || perm1[m] == m)) {
+ for (var i = 0; i < n; i++) perm[i] = perm1[i];
+
+ var flipsCount = 0;
+ var k;
+
+ while (!((k = perm[0]) == 0)) {
+ var k2 = (k + 1) >> 1;
+ for (var i = 0; i < k2; i++) {
+ var temp = perm[i]; perm[i] = perm[k - i]; perm[k - i] = temp;
+ }
+ flipsCount++;
+ }
+
+ if (flipsCount > maxFlipsCount) {
+ maxFlipsCount = flipsCount;
+ for (var i = 0; i < n; i++) maxPerm[i] = perm1[i];
+ }
+ }
+
+ while (true) {
+ if (r == n) return maxFlipsCount;
+ var perm0 = perm1[0];
+ var i = 0;
+ while (i < r) {
+ var j = i + 1;
+ perm1[i] = perm1[j];
+ i = j;
+ }
+ perm1[r] = perm0;
+
+ count[r] = count[r] - 1;
+ if (count[r] > 0) break;
+ r++;
+ }
+ }
+}
+
+window.onload = function(){ startTest("sunspider-access-fannkuch", '786198fd');
+
+var ret;
+
+test( "Pfannkuchen", function(){
+ ret = fannkuch(7);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-nbody.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-nbody.html
new file mode 100644
index 000000000..3ebb6c098
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-nbody.html
@@ -0,0 +1,181 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+var PI = 3.141592653589793;
+var SOLAR_MASS = 4 * PI * PI;
+var DAYS_PER_YEAR = 365.24;
+
+function Body(x,y,z,vx,vy,vz,mass){
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ this.vx = vx;
+ this.vy = vy;
+ this.vz = vz;
+ this.mass = mass;
+}
+
+Body.prototype.offsetMomentum = function(px,py,pz) {
+ this.vx = -px / SOLAR_MASS;
+ this.vy = -py / SOLAR_MASS;
+ this.vz = -pz / SOLAR_MASS;
+ return this;
+}
+
+function Jupiter(){
+ return new Body(
+ 4.84143144246472090e+00,
+ -1.16032004402742839e+00,
+ -1.03622044471123109e-01,
+ 1.66007664274403694e-03 * DAYS_PER_YEAR,
+ 7.69901118419740425e-03 * DAYS_PER_YEAR,
+ -6.90460016972063023e-05 * DAYS_PER_YEAR,
+ 9.54791938424326609e-04 * SOLAR_MASS
+ );
+}
+
+function Saturn(){
+ return new Body(
+ 8.34336671824457987e+00,
+ 4.12479856412430479e+00,
+ -4.03523417114321381e-01,
+ -2.76742510726862411e-03 * DAYS_PER_YEAR,
+ 4.99852801234917238e-03 * DAYS_PER_YEAR,
+ 2.30417297573763929e-05 * DAYS_PER_YEAR,
+ 2.85885980666130812e-04 * SOLAR_MASS
+ );
+}
+
+function Uranus(){
+ return new Body(
+ 1.28943695621391310e+01,
+ -1.51111514016986312e+01,
+ -2.23307578892655734e-01,
+ 2.96460137564761618e-03 * DAYS_PER_YEAR,
+ 2.37847173959480950e-03 * DAYS_PER_YEAR,
+ -2.96589568540237556e-05 * DAYS_PER_YEAR,
+ 4.36624404335156298e-05 * SOLAR_MASS
+ );
+}
+
+function Neptune(){
+ return new Body(
+ 1.53796971148509165e+01,
+ -2.59193146099879641e+01,
+ 1.79258772950371181e-01,
+ 2.68067772490389322e-03 * DAYS_PER_YEAR,
+ 1.62824170038242295e-03 * DAYS_PER_YEAR,
+ -9.51592254519715870e-05 * DAYS_PER_YEAR,
+ 5.15138902046611451e-05 * SOLAR_MASS
+ );
+}
+
+function Sun(){
+ return new Body(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SOLAR_MASS);
+}
+
+
+function NBodySystem(bodies){
+ this.bodies = bodies;
+ var px = 0.0;
+ var py = 0.0;
+ var pz = 0.0;
+ var size = this.bodies.length;
+ for (var i=0; i<size; i++){
+ var b = this.bodies[i];
+ var m = b.mass;
+ px += b.vx * m;
+ py += b.vy * m;
+ pz += b.vz * m;
+ }
+ this.bodies[0].offsetMomentum(px,py,pz);
+}
+
+NBodySystem.prototype.advance = function(dt){
+ var dx, dy, dz, distance, mag;
+ var size = this.bodies.length;
+
+ for (var i=0; i<size; i++) {
+ var bodyi = this.bodies[i];
+ for (var j=i+1; j<size; j++) {
+ var bodyj = this.bodies[j];
+ dx = bodyi.x - bodyj.x;
+ dy = bodyi.y - bodyj.y;
+ dz = bodyi.z - bodyj.z;
+
+ distance = Math.sqrt(dx*dx + dy*dy + dz*dz);
+ mag = dt / (distance * distance * distance);
+
+ bodyi.vx -= dx * bodyj.mass * mag;
+ bodyi.vy -= dy * bodyj.mass * mag;
+ bodyi.vz -= dz * bodyj.mass * mag;
+
+ bodyj.vx += dx * bodyi.mass * mag;
+ bodyj.vy += dy * bodyi.mass * mag;
+ bodyj.vz += dz * bodyi.mass * mag;
+ }
+ }
+
+ for (var i=0; i<size; i++) {
+ var body = this.bodies[i];
+ body.x += dt * body.vx;
+ body.y += dt * body.vy;
+ body.z += dt * body.vz;
+ }
+}
+
+NBodySystem.prototype.energy = function(){
+ var dx, dy, dz, distance;
+ var e = 0.0;
+ var size = this.bodies.length;
+
+ for (var i=0; i<size; i++) {
+ var bodyi = this.bodies[i];
+
+ e += 0.5 * bodyi.mass *
+ ( bodyi.vx * bodyi.vx
+ + bodyi.vy * bodyi.vy
+ + bodyi.vz * bodyi.vz );
+
+ for (var j=i+1; j<size; j++) {
+ var bodyj = this.bodies[j];
+ dx = bodyi.x - bodyj.x;
+ dy = bodyi.y - bodyj.y;
+ dz = bodyi.z - bodyj.z;
+
+ distance = Math.sqrt(dx*dx + dy*dy + dz*dz);
+ e -= (bodyi.mass * bodyj.mass) / distance;
+ }
+ }
+ return e;
+}
+
+window.onload = function(){ startTest("sunspider-access-nbody", '38cd3387');
+
+var ret;
+
+test( "N-Body", function(){
+ for ( var n = 3; n <= 6; n *= 2 ) {
+ var bodies = new NBodySystem( Array(
+ Sun(),Jupiter(),Saturn(),Uranus(),Neptune()
+ ));
+ var max = n * 100;
+
+ ret = bodies.energy();
+ for (var i=0; i<max; i++){
+ bodies.advance(0.01);
+ }
+ ret = bodies.energy();
+ }
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-nsieve.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-nsieve.html
new file mode 100644
index 000000000..00dc1cc91
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-access-nsieve.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// modified by Isaac Gouy
+
+function pad(number,width){
+ var s = number.toString();
+ var prefixWidth = width - s.length;
+ if (prefixWidth>0){
+ for (var i=1; i<=prefixWidth; i++) s = " " + s;
+ }
+ return s;
+}
+
+function nsieve(m, isPrime){
+ var i, k, count;
+
+ for (i=2; i<=m; i++) { isPrime[i] = true; }
+ count = 0;
+
+ for (i=2; i<=m; i++){
+ if (isPrime[i]) {
+ for (k=i+i; k<=m; k+=i) isPrime[k] = false;
+ count++;
+ }
+ }
+ return count;
+}
+
+window.onload = function(){ startTest("sunspider-access-nsieve", 'efeee6f3');
+
+test( "N-Sieve", function(){
+ for ( var i = 1; i <= 2; i++ ) {
+ var m = (1<<i)*10000;
+ var flags = Array(m+1);
+ nsieve(m,flags);
+ }
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-3bit-bits-in-byte.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-3bit-bits-in-byte.html
new file mode 100644
index 000000000..f3caffc79
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-3bit-bits-in-byte.html
@@ -0,0 +1,46 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// Copyright (c) 2004 by Arthur Langereis (arthur_ext at domain xfinitegames, tld com
+
+// 1 op = 6 ANDs, 3 SHRs, 3 SHLs, 4 assigns, 2 ADDs
+// O(1)
+function fast3bitlookup(b) {
+var c, bi3b = 0xE994; // 0b1110 1001 1001 0100; // 3 2 2 1 2 1 1 0
+c = 3 & (bi3b >> ((b << 1) & 14));
+c += 3 & (bi3b >> ((b >> 2) & 14));
+c += 3 & (bi3b >> ((b >> 5) & 6));
+return c;
+
+/*
+lir4,0xE994; 9 instructions, no memory access, minimal register dependence, 6 shifts, 2 adds, 1 inline assign
+rlwinmr5,r3,1,28,30
+rlwinmr6,r3,30,28,30
+rlwinmr7,r3,27,29,30
+rlwnmr8,r4,r5,30,31
+rlwnmr9,r4,r6,30,31
+rlwnmr10,r4,r7,30,31
+addr3,r8,r9
+addr3,r3,r10
+*/
+}
+
+
+function TimeFunc(func) {
+var x, y, t;
+for(var x=0; x<250; x++)
+for(var y=0; y<256; y++) func(y);
+}
+
+window.onload = function(){ startTest("sunspider-bitops-3bit-bits-in-byte", '3664f684');
+
+test("3bit bits in byte", function(){
+ TimeFunc(fast3bitlookup);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bits-in-byte.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bits-in-byte.html
new file mode 100644
index 000000000..f3cbf2127
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bits-in-byte.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// Copyright (c) 2004 by Arthur Langereis (arthur_ext at domain xfinitegames, tld com)
+
+
+// 1 op = 2 assigns, 16 compare/branches, 8 ANDs, (0-8) ADDs, 8 SHLs
+// O(n)
+function bitsinbyte(b) {
+var m = 1, c = 0;
+while(m<0x100) {
+if(b & m) c++;
+m <<= 1;
+}
+return c;
+}
+
+function TimeFunc(func) {
+var x, y, t;
+for(var x=0; x<100; x++)
+for(var y=0; y<256; y++) func(y);
+}
+
+window.onload = function(){ startTest("sunspider-bitops-bits-in-byte", '245fac8a');
+
+test("Bit in byte (2)", function(){
+ TimeFunc(bitsinbyte);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html
new file mode 100644
index 000000000..a6e10e4c1
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+window.onload = function(){ startTest("sunspider-bitops-bitwise-and", '17d2bd38');
+
+test("Bitwise And", function(){
+ bitwiseAndValue = 4294967296;
+ for (var i = 0; i < 60000; i++)
+ bitwiseAndValue = bitwiseAndValue & i;
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-nsieve-bits.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-nsieve-bits.html
new file mode 100644
index 000000000..42e414cd1
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-nsieve-bits.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org
+//
+// Contributed by Ian Osgood
+
+function pad(n,width) {
+ var s = n.toString();
+ while (s.length < width) s = ' ' + s;
+ return s;
+}
+
+function primes(isPrime, n) {
+ var i, count = 0, m = 10000<<n, size = m+31>>5;
+
+ for (i=0; i<size; i++) isPrime[i] = 0xffffffff;
+
+ for (i=2; i<m; i++)
+ if (isPrime[i>>5] & 1<<(i&31)) {
+ for (var j=i+i; j<m; j+=i)
+ isPrime[j>>5] &= ~(1<<(j&31));
+ count++;
+ }
+}
+
+window.onload = function(){ startTest("sunspider-bitops-nsieve-bits", '35973a6b');
+
+var i = 2;
+
+test( "N-Sieve Bits", function(){
+ var isPrime = new Array((10000<<i)+31>>5);
+ primes(isPrime, i);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-controlflow-recursive.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-controlflow-recursive.html
new file mode 100644
index 000000000..b0162481b
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-controlflow-recursive.html
@@ -0,0 +1,46 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+// contributed by Isaac Gouy
+
+function ack(m,n){
+ if (m==0) { return n+1; }
+ if (n==0) { return ack(m-1,1); }
+ return ack(m-1, ack(m,n-1) );
+}
+
+function fib(n) {
+ if (n < 2){ return 1; }
+ return fib(n-2) + fib(n-1);
+}
+
+function tak(x,y,z) {
+ if (y >= x) return z;
+ return tak(tak(x-1,y,z), tak(y-1,z,x), tak(z-1,x,y));
+}
+
+window.onload = function(){ startTest("sunspider-controlflow-recursive", '558ed308');
+
+ test("Ack", function(){
+ for ( var i = 3; i <= 5; i++ )
+ ack(3,i);
+ });
+
+ test("Fib", function(){
+ for ( var i = 3; i <= 5; i++ )
+ fib(17.0+i);
+ });
+
+ test("Tak", function(){
+ for ( var i = 3; i <= 5; i++ )
+ tak(3*i+3,2*i+2,i+1);
+ });
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-aes.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-aes.html
new file mode 100644
index 000000000..758a150f8
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-aes.html
@@ -0,0 +1,443 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * AES Cipher function: encrypt 'input' with Rijndael algorithm
+ *
+ * takes byte-array 'input' (16 bytes)
+ * 2D byte-array key schedule 'w' (Nr+1 x Nb bytes)
+ *
+ * applies Nr rounds (10/12/14) using key schedule w for 'add round key' stage
+ *
+ * returns byte-array encrypted value (16 bytes)
+ */
+function Cipher(input, w) { // main Cipher function [§5.1]
+ var Nb = 4; // block size (in words): no of columns in state (fixed at 4 for AES)
+ var Nr = w.length/Nb - 1; // no of rounds: 10/12/14 for 128/192/256-bit keys
+
+ var state = [[],[],[],[]]; // initialise 4xNb byte-array 'state' with input [§3.4]
+ for (var i=0; i<4*Nb; i++) state[i%4][Math.floor(i/4)] = input[i];
+
+ state = AddRoundKey(state, w, 0, Nb);
+
+ for (var round=1; round<Nr; round++) {
+ state = SubBytes(state, Nb);
+ state = ShiftRows(state, Nb);
+ state = MixColumns(state, Nb);
+ state = AddRoundKey(state, w, round, Nb);
+ }
+
+ state = SubBytes(state, Nb);
+ state = ShiftRows(state, Nb);
+ state = AddRoundKey(state, w, Nr, Nb);
+
+ var output = new Array(4*Nb); // convert state to 1-d array before returning [§3.4]
+ for (var i=0; i<4*Nb; i++) output[i] = state[i%4][Math.floor(i/4)];
+ return output;
+}
+
+
+function SubBytes(s, Nb) { // apply SBox to state S [§5.1.1]
+ for (var r=0; r<4; r++) {
+ for (var c=0; c<Nb; c++) s[r][c] = Sbox[s[r][c]];
+ }
+ return s;
+}
+
+
+function ShiftRows(s, Nb) { // shift row r of state S left by r bytes [§5.1.2]
+ var t = new Array(4);
+ for (var r=1; r<4; r++) {
+ for (var c=0; c<4; c++) t[c] = s[r][(c+r)%Nb]; // shift into temp copy
+ for (var c=0; c<4; c++) s[r][c] = t[c]; // and copy back
+ } // note that this will work for Nb=4,5,6, but not 7,8 (always 4 for AES):
+ return s; // see fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.311.pdf
+}
+
+
+function MixColumns(s, Nb) { // combine bytes of each col of state S [§5.1.3]
+ for (var c=0; c<4; c++) {
+ var a = new Array(4); // 'a' is a copy of the current column from 's'
+ var b = new Array(4); // 'b' is a•{02} in GF(2^8)
+ for (var i=0; i<4; i++) {
+ a[i] = s[i][c];
+ b[i] = s[i][c]&0x80 ? s[i][c]<<1 ^ 0x011b : s[i][c]<<1;
+ }
+ // a[n] ^ b[n] is a•{03} in GF(2^8)
+ s[0][c] = b[0] ^ a[1] ^ b[1] ^ a[2] ^ a[3]; // 2*a0 + 3*a1 + a2 + a3
+ s[1][c] = a[0] ^ b[1] ^ a[2] ^ b[2] ^ a[3]; // a0 * 2*a1 + 3*a2 + a3
+ s[2][c] = a[0] ^ a[1] ^ b[2] ^ a[3] ^ b[3]; // a0 + a1 + 2*a2 + 3*a3
+ s[3][c] = a[0] ^ b[0] ^ a[1] ^ a[2] ^ b[3]; // 3*a0 + a1 + a2 + 2*a3
+ }
+ return s;
+}
+
+
+function AddRoundKey(state, w, rnd, Nb) { // xor Round Key into state S [§5.1.4]
+ for (var r=0; r<4; r++) {
+ for (var c=0; c<Nb; c++) state[r][c] ^= w[rnd*4+c][r];
+ }
+ return state;
+}
+
+
+function KeyExpansion(key) { // generate Key Schedule (byte-array Nr+1 x Nb) from Key [§5.2]
+ var Nb = 4; // block size (in words): no of columns in state (fixed at 4 for AES)
+ var Nk = key.length/4 // key length (in words): 4/6/8 for 128/192/256-bit keys
+ var Nr = Nk + 6; // no of rounds: 10/12/14 for 128/192/256-bit keys
+
+ var w = new Array(Nb*(Nr+1));
+ var temp = new Array(4);
+
+ for (var i=0; i<Nk; i++) {
+ var r = [key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]];
+ w[i] = r;
+ }
+
+ for (var i=Nk; i<(Nb*(Nr+1)); i++) {
+ w[i] = new Array(4);
+ for (var t=0; t<4; t++) temp[t] = w[i-1][t];
+ if (i % Nk == 0) {
+ temp = SubWord(RotWord(temp));
+ for (var t=0; t<4; t++) temp[t] ^= Rcon[i/Nk][t];
+ } else if (Nk > 6 && i%Nk == 4) {
+ temp = SubWord(temp);
+ }
+ for (var t=0; t<4; t++) w[i][t] = w[i-Nk][t] ^ temp[t];
+ }
+
+ return w;
+}
+
+function SubWord(w) { // apply SBox to 4-byte word w
+ for (var i=0; i<4; i++) w[i] = Sbox[w[i]];
+ return w;
+}
+
+function RotWord(w) { // rotate 4-byte word w left by one byte
+ w[4] = w[0];
+ for (var i=0; i<4; i++) w[i] = w[i+1];
+ return w;
+}
+
+
+// Sbox is pre-computed multiplicative inverse in GF(2^8) used in SubBytes and KeyExpansion [§5.1.1]
+var Sbox = [0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,
+ 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,
+ 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,
+ 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,
+ 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,
+ 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,
+ 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,
+ 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,
+ 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,
+ 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,
+ 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,
+ 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,
+ 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,
+ 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,
+ 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,
+ 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16];
+
+// Rcon is Round Constant used for the Key Expansion [1st col is 2^(r-1) in GF(2^8)] [§5.2]
+var Rcon = [ [0x00, 0x00, 0x00, 0x00],
+ [0x01, 0x00, 0x00, 0x00],
+ [0x02, 0x00, 0x00, 0x00],
+ [0x04, 0x00, 0x00, 0x00],
+ [0x08, 0x00, 0x00, 0x00],
+ [0x10, 0x00, 0x00, 0x00],
+ [0x20, 0x00, 0x00, 0x00],
+ [0x40, 0x00, 0x00, 0x00],
+ [0x80, 0x00, 0x00, 0x00],
+ [0x1b, 0x00, 0x00, 0x00],
+ [0x36, 0x00, 0x00, 0x00] ];
+
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * Use AES to encrypt 'plaintext' with 'password' using 'nBits' key, in 'Counter' mode of operation
+ * - see http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
+ * for each block
+ * - outputblock = cipher(counter, key)
+ * - cipherblock = plaintext xor outputblock
+ */
+function AESEncryptCtr(plaintext, password, nBits) {
+ if (!(nBits==128 || nBits==192 || nBits==256)) return ''; // standard allows 128/192/256 bit keys
+
+ // for this example script, generate the key by applying Cipher to 1st 16/24/32 chars of password;
+ // for real-world applications, a more secure approach would be to hash the password e.g. with SHA-1
+ var nBytes = nBits/8; // no bytes in key
+ var pwBytes = new Array(nBytes);
+ for (var i=0; i<nBytes; i++) pwBytes[i] = password.charCodeAt(i) & 0xff;
+ var key = Cipher(pwBytes, KeyExpansion(pwBytes));
+ key = key.concat(key.slice(0, nBytes-16)); // key is now 16/24/32 bytes long
+
+ // initialise counter block (NIST SP800-38A §B.2): millisecond time-stamp for nonce in 1st 8 bytes,
+ // block counter in 2nd 8 bytes
+ var blockSize = 16; // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var counterBlock = new Array(blockSize); // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var nonce = (new Date()).getTime(); // milliseconds since 1-Jan-1970
+
+ // encode nonce in two stages to cater for JavaScript 32-bit limit on bitwise ops
+ for (var i=0; i<4; i++) counterBlock[i] = (nonce >>> i*8) & 0xff;
+ for (var i=0; i<4; i++) counterBlock[i+4] = (nonce/0x100000000 >>> i*8) & 0xff;
+
+ // generate key schedule - an expansion of the key into distinct Key Rounds for each round
+ var keySchedule = KeyExpansion(key);
+
+ var blockCount = Math.ceil(plaintext.length/blockSize);
+ var ciphertext = new Array(blockCount); // ciphertext as array of strings
+
+ for (var b=0; b<blockCount; b++) {
+ // set counter (block #) in last 8 bytes of counter block (leaving nonce in 1st 8 bytes)
+ // again done in two stages for 32-bit ops
+ for (var c=0; c<4; c++) counterBlock[15-c] = (b >>> c*8) & 0xff;
+ for (var c=0; c<4; c++) counterBlock[15-c-4] = (b/0x100000000 >>> c*8)
+
+ var cipherCntr = Cipher(counterBlock, keySchedule); // -- encrypt counter block --
+
+ // calculate length of final block:
+ var blockLength = b<blockCount-1 ? blockSize : (plaintext.length-1)%blockSize+1;
+
+ var ct = '';
+ for (var i=0; i<blockLength; i++) { // -- xor plaintext with ciphered counter byte-by-byte --
+ var plaintextByte = plaintext.charCodeAt(b*blockSize+i);
+ var cipherByte = plaintextByte ^ cipherCntr[i];
+ ct += String.fromCharCode(cipherByte);
+ }
+ // ct is now ciphertext for this block
+
+ ciphertext[b] = escCtrlChars(ct); // escape troublesome characters in ciphertext
+ }
+
+ // convert the nonce to a string to go on the front of the ciphertext
+ var ctrTxt = '';
+ for (var i=0; i<8; i++) ctrTxt += String.fromCharCode(counterBlock[i]);
+ ctrTxt = escCtrlChars(ctrTxt);
+
+ // use '-' to separate blocks, use Array.join to concatenate arrays of strings for efficiency
+ return ctrTxt + '-' + ciphertext.join('-');
+}
+
+
+/*
+ * Use AES to decrypt 'ciphertext' with 'password' using 'nBits' key, in Counter mode of operation
+ *
+ * for each block
+ * - outputblock = cipher(counter, key)
+ * - cipherblock = plaintext xor outputblock
+ */
+function AESDecryptCtr(ciphertext, password, nBits) {
+ if (!(nBits==128 || nBits==192 || nBits==256)) return ''; // standard allows 128/192/256 bit keys
+
+ var nBytes = nBits/8; // no bytes in key
+ var pwBytes = new Array(nBytes);
+ for (var i=0; i<nBytes; i++) pwBytes[i] = password.charCodeAt(i) & 0xff;
+ var pwKeySchedule = KeyExpansion(pwBytes);
+ var key = Cipher(pwBytes, pwKeySchedule);
+ key = key.concat(key.slice(0, nBytes-16)); // key is now 16/24/32 bytes long
+
+ var keySchedule = KeyExpansion(key);
+
+ ciphertext = ciphertext.split('-'); // split ciphertext into array of block-length strings
+
+ // recover nonce from 1st element of ciphertext
+ var blockSize = 16; // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var counterBlock = new Array(blockSize);
+ var ctrTxt = unescCtrlChars(ciphertext[0]);
+ for (var i=0; i<8; i++) counterBlock[i] = ctrTxt.charCodeAt(i);
+
+ var plaintext = new Array(ciphertext.length-1);
+
+ for (var b=1; b<ciphertext.length; b++) {
+ // set counter (block #) in last 8 bytes of counter block (leaving nonce in 1st 8 bytes)
+ for (var c=0; c<4; c++) counterBlock[15-c] = ((b-1) >>> c*8) & 0xff;
+ for (var c=0; c<4; c++) counterBlock[15-c-4] = ((b/0x100000000-1) >>> c*8) & 0xff;
+
+ var cipherCntr = Cipher(counterBlock, keySchedule); // encrypt counter block
+
+ ciphertext[b] = unescCtrlChars(ciphertext[b]);
+
+ var pt = '';
+ for (var i=0; i<ciphertext[b].length; i++) {
+ // -- xor plaintext with ciphered counter byte-by-byte --
+ var ciphertextByte = ciphertext[b].charCodeAt(i);
+ var plaintextByte = ciphertextByte ^ cipherCntr[i];
+ pt += String.fromCharCode(plaintextByte);
+ }
+ // pt is now plaintext for this block
+
+ plaintext[b-1] = pt; // b-1 'cos no initial nonce block in plaintext
+ }
+
+ return plaintext.join('');
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+function escCtrlChars(str) { // escape control chars which might cause problems handling ciphertext
+ return str.replace(/[\0\t\n\v\f\r\xa0'"!-]/g, function(c) { return '!' + c.charCodeAt(0) + '!'; });
+} // \xa0 to cater for bug in Firefox; include '-' to leave it free for use as a block marker
+
+function unescCtrlChars(str) { // unescape potentially problematic control characters
+ return str.replace(/!\d\d?\d?!/g, function(c) { return String.fromCharCode(c.slice(1,-1)); });
+}
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * if escCtrlChars()/unescCtrlChars() still gives problems, use encodeBase64()/decodeBase64() instead
+ */
+var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+
+function encodeBase64(str) { // http://tools.ietf.org/html/rfc4648
+ var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
+
+ str = encodeUTF8(str); // encode multi-byte chars into UTF-8 for byte-array
+
+ do { // pack three octets into four hexets
+ o1 = str.charCodeAt(i++);
+ o2 = str.charCodeAt(i++);
+ o3 = str.charCodeAt(i++);
+
+ bits = o1<<16 | o2<<8 | o3;
+
+ h1 = bits>>18 & 0x3f;
+ h2 = bits>>12 & 0x3f;
+ h3 = bits>>6 & 0x3f;
+ h4 = bits & 0x3f;
+
+ // end of string? index to '=' in b64
+ if (isNaN(o3)) h4 = 64;
+ if (isNaN(o2)) h3 = 64;
+
+ // use hexets to index into b64, and append result to encoded string
+ enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
+ } while (i < str.length);
+
+ return enc;
+}
+
+function decodeBase64(str) {
+ var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
+
+ do { // unpack four hexets into three octets using index points in b64
+ h1 = b64.indexOf(str.charAt(i++));
+ h2 = b64.indexOf(str.charAt(i++));
+ h3 = b64.indexOf(str.charAt(i++));
+ h4 = b64.indexOf(str.charAt(i++));
+
+ bits = h1<<18 | h2<<12 | h3<<6 | h4;
+
+ o1 = bits>>16 & 0xff;
+ o2 = bits>>8 & 0xff;
+ o3 = bits & 0xff;
+
+ if (h3 == 64) enc += String.fromCharCode(o1);
+ else if (h4 == 64) enc += String.fromCharCode(o1, o2);
+ else enc += String.fromCharCode(o1, o2, o3);
+ } while (i < str.length);
+
+ return decodeUTF8(enc); // decode UTF-8 byte-array back to Unicode
+}
+
+function encodeUTF8(str) { // encode multi-byte string into utf-8 multiple single-byte characters
+ str = str.replace(
+ /[\u0080-\u07ff]/g, // U+0080 - U+07FF = 2-byte chars
+ function(c) {
+ var cc = c.charCodeAt(0);
+ return String.fromCharCode(0xc0 | cc>>6, 0x80 | cc&0x3f); }
+ );
+ str = str.replace(
+ /[\u0800-\uffff]/g, // U+0800 - U+FFFF = 3-byte chars
+ function(c) {
+ var cc = c.charCodeAt(0);
+ return String.fromCharCode(0xe0 | cc>>12, 0x80 | cc>>6&0x3F, 0x80 | cc&0x3f); }
+ );
+ return str;
+}
+
+function decodeUTF8(str) { // decode utf-8 encoded string back into multi-byte characters
+ str = str.replace(
+ /[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars
+ function(c) {
+ var cc = (c.charCodeAt(0)&0x1f)<<6 | c.charCodeAt(1)&0x3f;
+ return String.fromCharCode(cc); }
+ );
+ str = str.replace(
+ /[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars
+ function(c) {
+ var cc = (c.charCodeAt(0)&0x0f)<<12 | (c.charCodeAt(1)&0x3f<<6) | c.charCodeAt(2)&0x3f;
+ return String.fromCharCode(cc); }
+ );
+ return str;
+}
+
+
+function byteArrayToHexStr(b) { // convert byte array to hex string for displaying test vectors
+ var s = '';
+ for (var i=0; i<b.length; i++) s += b[i].toString(16) + ' ';
+ return s;
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+
+var plainText = "ROMEO: But, soft! what light through yonder window breaks?\n\
+It is the east, and Juliet is the sun.\n\
+Arise, fair sun, and kill the envious moon,\n\
+Who is already sick and pale with grief,\n\
+That thou her maid art far more fair than she:\n\
+Be not her maid, since she is envious;\n\
+Her vestal livery is but sick and green\n\
+And none but fools do wear it; cast it off.\n\
+It is my lady, O, it is my love!\n\
+O, that she knew she were!\n\
+She speaks yet she says nothing: what of that?\n\
+Her eye discourses; I will answer it.\n\
+I am too bold, 'tis not to me she speaks:\n\
+Two of the fairest stars in all the heaven,\n\
+Having some business, do entreat her eyes\n\
+To twinkle in their spheres till they return.\n\
+What if her eyes were there, they in her head?\n\
+The brightness of her cheek would shame those stars,\n\
+As daylight doth a lamp; her eyes in heaven\n\
+Would through the airy region stream so bright\n\
+That birds would sing and think it were not night.\n\
+See, how she leans her cheek upon her hand!\n\
+O, that I were a glove upon that hand,\n\
+That I might touch that cheek!\n\
+JULIET: Ay me!\n\
+ROMEO: She speaks:\n\
+O, speak again, bright angel! for thou art\n\
+As glorious to this night, being o'er my head\n\
+As is a winged messenger of heaven\n\
+Unto the white-upturned wondering eyes\n\
+Of mortals that fall back to gaze on him\n\
+When he bestrides the lazy-pacing clouds\n\
+And sails upon the bosom of the air.";
+
+var password = "O Romeo, Romeo! wherefore art thou Romeo?";
+var cipherText, decryptedText;
+
+window.onload = function(){ startTest("sunspider-crypto-aes", 'e80e78f2');
+
+test("AES Encrypt", function(){
+ cipherText = AESEncryptCtr(plainText, password, 256);
+});
+
+test("AES Decrypt", function(){
+ decryptedText = AESDecryptCtr(cipherText, password, 256);
+
+ if ( decryptedText !== plainText )
+ throw "Decryption failed.";
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-md5.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-md5.html
new file mode 100644
index 000000000..b3aec55ac
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-md5.html
@@ -0,0 +1,300 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/*
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+ * Digest Algorithm, as defined in RFC 1321.
+ * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for more info.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
+function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
+function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
+function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
+function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
+function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function md5_vm_test()
+{
+ return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
+}
+
+/*
+ * Calculate the MD5 of an array of little-endian words, and a bit length
+ */
+function core_md5(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << ((len) % 32);
+ x[(((len + 64) >>> 9) << 4) + 14] = len;
+
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+
+ a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
+ d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
+ c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
+ b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
+ a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
+ d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
+ c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
+ b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
+ a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
+ d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
+ c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
+ b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
+ a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
+ d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
+ c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
+ b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
+
+ a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
+ d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
+ c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
+ b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
+ a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
+ d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
+ c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
+ b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
+ a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
+ d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
+ c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
+ b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
+ a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
+ d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
+ c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
+ b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
+
+ a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
+ d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
+ c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
+ b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
+ a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
+ d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
+ c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
+ b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
+ a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
+ d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
+ c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
+ b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
+ a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
+ d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
+ c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
+ b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
+
+ a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
+ d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
+ c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
+ b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
+ a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
+ d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
+ c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
+ b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
+ a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
+ d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
+ c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
+ b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
+ a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
+ d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
+ c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
+ b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ }
+ return Array(a, b, c, d);
+
+}
+
+/*
+ * These functions implement the four basic operations the algorithm uses.
+ */
+function md5_cmn(q, a, b, x, s, t)
+{
+ return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
+}
+function md5_ff(a, b, c, d, x, s, t)
+{
+ return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
+}
+function md5_gg(a, b, c, d, x, s, t)
+{
+ return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
+}
+function md5_hh(a, b, c, d, x, s, t)
+{
+ return md5_cmn(b ^ c ^ d, a, b, x, s, t);
+}
+function md5_ii(a, b, c, d, x, s, t)
+{
+ return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
+}
+
+/*
+ * Calculate the HMAC-MD5, of a key and some data
+ */
+function core_hmac_md5(key, data)
+{
+ var bkey = str2binl(key);
+ if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
+ return core_md5(opad.concat(hash), 512 + 128);
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function bit_rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+ * Convert a string to an array of little-endian words
+ * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
+ */
+function str2binl(str)
+{
+ var bin = Array();
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < str.length * chrsz; i += chrsz)
+ bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
+ return bin;
+}
+
+/*
+ * Convert an array of little-endian words to a string
+ */
+function binl2str(bin)
+{
+ var str = "";
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < bin.length * 32; i += chrsz)
+ str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
+ return str;
+}
+
+/*
+ * Convert an array of little-endian words to a hex string.
+ */
+function binl2hex(binarray)
+{
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i++)
+ {
+ str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
+ hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
+ }
+ return str;
+}
+
+/*
+ * Convert an array of little-endian words to a base-64 string
+ */
+function binl2b64(binarray)
+{
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i += 3)
+ {
+ var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
+ | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
+ | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+ else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+ }
+ }
+ return str;
+}
+
+var plainText = "Rebellious subjects, enemies to peace,\n\
+Profaners of this neighbour-stained steel,--\n\
+Will they not hear? What, ho! you men, you beasts,\n\
+That quench the fire of your pernicious rage\n\
+With purple fountains issuing from your veins,\n\
+On pain of torture, from those bloody hands\n\
+Throw your mistemper'd weapons to the ground,\n\
+And hear the sentence of your moved prince.\n\
+Three civil brawls, bred of an airy word,\n\
+By thee, old Capulet, and Montague,\n\
+Have thrice disturb'd the quiet of our streets,\n\
+And made Verona's ancient citizens\n\
+Cast by their grave beseeming ornaments,\n\
+To wield old partisans, in hands as old,\n\
+Canker'd with peace, to part your canker'd hate:\n\
+If ever you disturb our streets again,\n\
+Your lives shall pay the forfeit of the peace.\n\
+For this time, all the rest depart away:\n\
+You Capulet; shall go along with me:\n\
+And, Montague, come you this afternoon,\n\
+To know our further pleasure in this case,\n\
+To old Free-town, our common judgment-place.\n\
+Once more, on pain of death, all men depart."
+
+for (var i = 0; i <2; i++) {
+ plainText += plainText;
+}
+
+window.onload = function(){ startTest("sunspider-crypto-md5", 'bd4d08e1');
+
+test("MD5", function(){
+ var md5Output = hex_md5(plainText);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-sha1.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-sha1.html
new file mode 100644
index 000000000..55caf6eff
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-sha1.html
@@ -0,0 +1,238 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
+ * in FIPS PUB 180-1
+ * Version 2.1a Copyright Paul Johnston 2000 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length * chrsz));}
+function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length * chrsz));}
+function str_sha1(s){return binb2str(core_sha1(str2binb(s),s.length * chrsz));}
+function hex_hmac_sha1(key, data){ return binb2hex(core_hmac_sha1(key, data));}
+function b64_hmac_sha1(key, data){ return binb2b64(core_hmac_sha1(key, data));}
+function str_hmac_sha1(key, data){ return binb2str(core_hmac_sha1(key, data));}
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function sha1_vm_test()
+{
+ return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d";
+}
+
+/*
+ * Calculate the SHA-1 of an array of big-endian words, and a bit length
+ */
+function core_sha1(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << (24 - len % 32);
+ x[((len + 64 >> 9) << 4) + 15] = len;
+
+ var w = Array(80);
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+ var e = -1009589776;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+ var olde = e;
+
+ for(var j = 0; j < 80; j++)
+ {
+ if(j < 16) w[j] = x[i + j];
+ else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
+ var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)),
+ safe_add(safe_add(e, w[j]), sha1_kt(j)));
+ e = d;
+ d = c;
+ c = rol(b, 30);
+ b = a;
+ a = t;
+ }
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ e = safe_add(e, olde);
+ }
+ return Array(a, b, c, d, e);
+
+}
+
+/*
+ * Perform the appropriate triplet combination function for the current
+ * iteration
+ */
+function sha1_ft(t, b, c, d)
+{
+ if(t < 20) return (b & c) | ((~b) & d);
+ if(t < 40) return b ^ c ^ d;
+ if(t < 60) return (b & c) | (b & d) | (c & d);
+ return b ^ c ^ d;
+}
+
+/*
+ * Determine the appropriate additive constant for the current iteration
+ */
+function sha1_kt(t)
+{
+ return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
+ (t < 60) ? -1894007588 : -899497514;
+}
+
+/*
+ * Calculate the HMAC-SHA1 of a key and some data
+ */
+function core_hmac_sha1(key, data)
+{
+ var bkey = str2binb(key);
+ if(bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz);
+ return core_sha1(opad.concat(hash), 512 + 160);
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+ * Convert an 8-bit or 16-bit string to an array of big-endian words
+ * In 8-bit function, characters >255 have their hi-byte silently ignored.
+ */
+function str2binb(str)
+{
+ var bin = Array();
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < str.length * chrsz; i += chrsz)
+ bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i%32);
+ return bin;
+}
+
+/*
+ * Convert an array of big-endian words to a string
+ */
+function binb2str(bin)
+{
+ var str = "";
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < bin.length * 32; i += chrsz)
+ str += String.fromCharCode((bin[i>>5] >>> (32 - chrsz - i%32)) & mask);
+ return str;
+}
+
+/*
+ * Convert an array of big-endian words to a hex string.
+ */
+function binb2hex(binarray)
+{
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i++)
+ {
+ str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
+ hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF);
+ }
+ return str;
+}
+
+/*
+ * Convert an array of big-endian words to a base-64 string
+ */
+function binb2b64(binarray)
+{
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i += 3)
+ {
+ var triplet = (((binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16)
+ | (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 )
+ | ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+ else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+ }
+ }
+ return str;
+}
+
+
+var plainText = "Two households, both alike in dignity,\n\
+In fair Verona, where we lay our scene,\n\
+From ancient grudge break to new mutiny,\n\
+Where civil blood makes civil hands unclean.\n\
+From forth the fatal loins of these two foes\n\
+A pair of star-cross'd lovers take their life;\n\
+Whole misadventured piteous overthrows\n\
+Do with their death bury their parents' strife.\n\
+The fearful passage of their death-mark'd love,\n\
+And the continuance of their parents' rage,\n\
+Which, but their children's end, nought could remove,\n\
+Is now the two hours' traffic of our stage;\n\
+The which if you with patient ears attend,\n\
+What here shall miss, our toil shall strive to mend.";
+
+for (var i = 0; i <2; i++) {
+ plainText += plainText;
+}
+
+window.onload = function(){ startTest("sunspider-crypto-sha1", 'b1fc168a');
+
+test("SHA1 Hashing", function(){
+ var sha1Output = hex_sha1(plainText);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-tofte.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-tofte.html
new file mode 100644
index 000000000..acda2c0b4
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-tofte.html
@@ -0,0 +1,312 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+function arrayExists(array, x) {
+ for (var i = 0; i < array.length; i++) {
+ if (array[i] == x) return true;
+ }
+ return false;
+}
+
+Date.prototype.formatDate = function (input,time) {
+ // formatDate :
+ // a PHP date like function, for formatting date strings
+ // See: http://www.php.net/date
+ //
+ // input : format string
+ // time : epoch time (seconds, and optional)
+ //
+ // if time is not passed, formatting is based on
+ // the current "this" date object's set time.
+ //
+ // supported:
+ // a, A, B, d, D, F, g, G, h, H, i, j, l (lowercase L), L,
+ // m, M, n, O, r, s, S, t, U, w, W, y, Y, z
+ //
+ // unsupported:
+ // I (capital i), T, Z
+
+ var switches = ["a", "A", "B", "d", "D", "F", "g", "G", "h", "H",
+ "i", "j", "l", "L", "m", "M", "n", "O", "r", "s",
+ "S", "t", "U", "w", "W", "y", "Y", "z"];
+ var daysLong = ["Sunday", "Monday", "Tuesday", "Wednesday",
+ "Thursday", "Friday", "Saturday"];
+ var daysShort = ["Sun", "Mon", "Tue", "Wed",
+ "Thu", "Fri", "Sat"];
+ var monthsShort = ["Jan", "Feb", "Mar", "Apr",
+ "May", "Jun", "Jul", "Aug", "Sep",
+ "Oct", "Nov", "Dec"];
+ var monthsLong = ["January", "February", "March", "April",
+ "May", "June", "July", "August", "September",
+ "October", "November", "December"];
+ var daysSuffix = ["st", "nd", "rd", "th", "th", "th", "th", // 1st - 7th
+ "th", "th", "th", "th", "th", "th", "th", // 8th - 14th
+ "th", "th", "th", "th", "th", "th", "st", // 15th - 21st
+ "nd", "rd", "th", "th", "th", "th", "th", // 22nd - 28th
+ "th", "th", "st"]; // 29th - 31st
+
+ function a() {
+ // Lowercase Ante meridiem and Post meridiem
+ return self.getHours() > 11? "pm" : "am";
+ }
+ function A() {
+ // Uppercase Ante meridiem and Post meridiem
+ return self.getHours() > 11? "PM" : "AM";
+ }
+
+ function B(){
+ // Swatch internet time. code simply grabbed from ppk,
+ // since I was feeling lazy:
+ // http://www.xs4all.nl/~ppk/js/beat.html
+ var off = (self.getTimezoneOffset() + 60)*60;
+ var theSeconds = (self.getHours() * 3600) +
+ (self.getMinutes() * 60) +
+ self.getSeconds() + off;
+ var beat = Math.floor(theSeconds/86.4);
+ if (beat > 1000) beat -= 1000;
+ if (beat < 0) beat += 1000;
+ if ((""+beat).length == 1) beat = "00"+beat;
+ if ((""+beat).length == 2) beat = "0"+beat;
+ return beat;
+ }
+
+ function d() {
+ // Day of the month, 2 digits with leading zeros
+ return new String(self.getDate()).length == 1?
+ "0"+self.getDate() : self.getDate();
+ }
+ function D() {
+ // A textual representation of a day, three letters
+ return daysShort[self.getDay()];
+ }
+ function F() {
+ // A full textual representation of a month
+ return monthsLong[self.getMonth()];
+ }
+ function g() {
+ // 12-hour format of an hour without leading zeros
+ return self.getHours() > 12? self.getHours()-12 : self.getHours();
+ }
+ function G() {
+ // 24-hour format of an hour without leading zeros
+ return self.getHours();
+ }
+ function h() {
+ // 12-hour format of an hour with leading zeros
+ if (self.getHours() > 12) {
+ var s = new String(self.getHours()-12);
+ return s.length == 1?
+ "0"+ (self.getHours()-12) : self.getHours()-12;
+ } else {
+ var s = new String(self.getHours());
+ return s.length == 1?
+ "0"+self.getHours() : self.getHours();
+ }
+ }
+ function H() {
+ // 24-hour format of an hour with leading zeros
+ return new String(self.getHours()).length == 1?
+ "0"+self.getHours() : self.getHours();
+ }
+ function i() {
+ // Minutes with leading zeros
+ return new String(self.getMinutes()).length == 1?
+ "0"+self.getMinutes() : self.getMinutes();
+ }
+ function j() {
+ // Day of the month without leading zeros
+ return self.getDate();
+ }
+ function l() {
+ // A full textual representation of the day of the week
+ return daysLong[self.getDay()];
+ }
+ function L() {
+ // leap year or not. 1 if leap year, 0 if not.
+ // the logic should match iso's 8601 standard.
+ var y_ = Y();
+ if (
+ (y_ % 4 == 0 && y_ % 100 != 0) ||
+ (y_ % 4 == 0 && y_ % 100 == 0 && y_ % 400 == 0)
+ ) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ function m() {
+ // Numeric representation of a month, with leading zeros
+ return self.getMonth() < 9?
+ "0"+(self.getMonth()+1) :
+ self.getMonth()+1;
+ }
+ function M() {
+ // A short textual representation of a month, three letters
+ return monthsShort[self.getMonth()];
+ }
+ function n() {
+ // Numeric representation of a month, without leading zeros
+ return self.getMonth()+1;
+ }
+ function O() {
+ // Difference to Greenwich time (GMT) in hours
+ var os = Math.abs(self.getTimezoneOffset());
+ var h = ""+Math.floor(os/60);
+ var m = ""+(os%60);
+ h.length == 1? h = "0"+h:1;
+ m.length == 1? m = "0"+m:1;
+ return self.getTimezoneOffset() < 0 ? "+"+h+m : "-"+h+m;
+ }
+ function r() {
+ // RFC 822 formatted date
+ var r; // result
+ // Thu , 21 Dec 2000
+ r = D() + ", " + j() + " " + M() + " " + Y() +
+ // 16 : 01 : 07 +0200
+ " " + H() + ":" + i() + ":" + s() + " " + O();
+ return r;
+ }
+ function S() {
+ // English ordinal suffix for the day of the month, 2 characters
+ return daysSuffix[self.getDate()-1];
+ }
+ function s() {
+ // Seconds, with leading zeros
+ return new String(self.getSeconds()).length == 1?
+ "0"+self.getSeconds() : self.getSeconds();
+ }
+ function t() {
+
+ // thanks to Matt Bannon for some much needed code-fixes here!
+ var daysinmonths = [null,31,28,31,30,31,30,31,31,30,31,30,31];
+ if (L()==1 && n()==2) return 29; // leap day
+ return daysinmonths[n()];
+ }
+ function U() {
+ // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
+ return Math.round(self.getTime()/1000);
+ }
+ function W() {
+ // Weeknumber, as per ISO specification:
+ // http://www.cl.cam.ac.uk/~mgk25/iso-time.html
+
+ // if the day is three days before newyears eve,
+ // there's a chance it's "week 1" of next year.
+ // here we check for that.
+ var beforeNY = 364+L() - z();
+ var afterNY = z();
+ var weekday = w()!=0?w()-1:6; // makes sunday (0), into 6.
+ if (beforeNY <= 2 && weekday <= 2-beforeNY) {
+ return 1;
+ }
+ // similarly, if the day is within threedays of newyears
+ // there's a chance it belongs in the old year.
+ var ny = new Date("January 1 " + Y() + " 00:00:00");
+ var nyDay = ny.getDay()!=0?ny.getDay()-1:6;
+ if (
+ (afterNY <= 2) &&
+ (nyDay >=4) &&
+ (afterNY >= (6-nyDay))
+ ) {
+ // Since I'm not sure we can just always return 53,
+ // i call the function here again, using the last day
+ // of the previous year, as the date, and then just
+ // return that week.
+ var prevNY = new Date("December 31 " + (Y()-1) + " 00:00:00");
+ return prevNY.formatDate("W");
+ }
+
+ // week 1, is the week that has the first thursday in it.
+ // note that this value is not zero index.
+ if (nyDay <= 3) {
+ // first day of the year fell on a thursday, or earlier.
+ return 1 + Math.floor( ( z() + nyDay ) / 7 );
+ } else {
+ // first day of the year fell on a friday, or later.
+ return 1 + Math.floor( ( z() - ( 7 - nyDay ) ) / 7 );
+ }
+ }
+ function w() {
+ // Numeric representation of the day of the week
+ return self.getDay();
+ }
+
+ function Y() {
+ // A full numeric representation of a year, 4 digits
+
+ // we first check, if getFullYear is supported. if it
+ // is, we just use that. ppks code is nice, but wont
+ // work with dates outside 1900-2038, or something like that
+ if (self.getFullYear) {
+ var newDate = new Date("January 1 2001 00:00:00 +0000");
+ var x = newDate .getFullYear();
+ if (x == 2001) {
+ // i trust the method now
+ return self.getFullYear();
+ }
+ }
+ // else, do this:
+ // codes thanks to ppk:
+ // http://www.xs4all.nl/~ppk/js/introdate.html
+ var x = self.getYear();
+ var y = x % 100;
+ y += (y < 38) ? 2000 : 1900;
+ return y;
+ }
+ function y() {
+ // A two-digit representation of a year
+ var y = Y()+"";
+ return y.substring(y.length-2,y.length);
+ }
+ function z() {
+ // The day of the year, zero indexed! 0 through 366
+ var t = new Date("January 1 " + Y() + " 00:00:00");
+ var diff = self.getTime() - t.getTime();
+ return Math.floor(diff/1000/60/60/24);
+ }
+
+ var self = this;
+ if (time) {
+ // save time
+ var prevTime = self.getTime();
+ self.setTime(time);
+ }
+
+ var ia = input.split("");
+ var ij = 0;
+ while (ia[ij]) {
+ if (ia[ij] == "\\") {
+ // this is our way of allowing users to escape stuff
+ ia.splice(ij,1);
+ } else {
+ if (arrayExists(switches,ia[ij])) {
+ ia[ij] = eval(ia[ij] + "()");
+ }
+ }
+ ij++;
+ }
+ // reset time, back to what it was
+ if (prevTime) {
+ self.setTime(prevTime);
+ }
+ return ia.join("");
+}
+
+var date = new Date("1/1/2007 1:11:11");
+
+window.onload = function(){ startTest("sunspider-date-format-tofte", '393fb742');
+
+test("Format Date", function(){
+ for (var i = 0; i < 50; ++i) {
+ var shortFormat = date.formatDate("Y-m-d");
+ var longFormat = date.formatDate("l, F d, Y g:i:s A");
+ date.setTime(date.getTime() + 84266956);
+ }
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-xparb.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-xparb.html
new file mode 100644
index 000000000..036ec21d9
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-xparb.html
@@ -0,0 +1,431 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/*
+ * Copyright (C) 2004 Baron Schwartz <baron at sequent dot org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation, version 2.1.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ */
+
+Date.parseFunctions = {count:0};
+Date.parseRegexes = [];
+Date.formatFunctions = {count:0};
+
+Date.prototype.dateFormat = function(format) {
+ if (Date.formatFunctions[format] == null) {
+ Date.createNewFormat(format);
+ }
+ var func = Date.formatFunctions[format];
+ return this[func]();
+}
+
+Date.createNewFormat = function(format) {
+ var funcName = "format" + Date.formatFunctions.count++;
+ Date.formatFunctions[format] = funcName;
+ var code = "Date.prototype." + funcName + " = function(){return ";
+ var special = false;
+ var ch = '';
+ for (var i = 0; i < format.length; ++i) {
+ ch = format.charAt(i);
+ if (!special && ch == "\\") {
+ special = true;
+ }
+ else if (special) {
+ special = false;
+ code += "'" + String.escape(ch) + "' + ";
+ }
+ else {
+ code += Date.getFormatCode(ch);
+ }
+ }
+ eval(code.substring(0, code.length - 3) + ";}");
+}
+
+Date.getFormatCode = function(character) {
+ switch (character) {
+ case "d":
+ return "String.leftPad(this.getDate(), 2, '0') + ";
+ case "D":
+ return "Date.dayNames[this.getDay()].substring(0, 3) + ";
+ case "j":
+ return "this.getDate() + ";
+ case "l":
+ return "Date.dayNames[this.getDay()] + ";
+ case "S":
+ return "this.getSuffix() + ";
+ case "w":
+ return "this.getDay() + ";
+ case "z":
+ return "this.getDayOfYear() + ";
+ case "W":
+ return "this.getWeekOfYear() + ";
+ case "F":
+ return "Date.monthNames[this.getMonth()] + ";
+ case "m":
+ return "String.leftPad(this.getMonth() + 1, 2, '0') + ";
+ case "M":
+ return "Date.monthNames[this.getMonth()].substring(0, 3) + ";
+ case "n":
+ return "(this.getMonth() + 1) + ";
+ case "t":
+ return "this.getDaysInMonth() + ";
+ case "L":
+ return "(this.isLeapYear() ? 1 : 0) + ";
+ case "Y":
+ return "this.getFullYear() + ";
+ case "y":
+ return "('' + this.getFullYear()).substring(2, 4) + ";
+ case "a":
+ return "(this.getHours() < 12 ? 'am' : 'pm') + ";
+ case "A":
+ return "(this.getHours() < 12 ? 'AM' : 'PM') + ";
+ case "g":
+ return "((this.getHours() %12) ? this.getHours() % 12 : 12) + ";
+ case "G":
+ return "this.getHours() + ";
+ case "h":
+ return "String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";
+ case "H":
+ return "String.leftPad(this.getHours(), 2, '0') + ";
+ case "i":
+ return "String.leftPad(this.getMinutes(), 2, '0') + ";
+ case "s":
+ return "String.leftPad(this.getSeconds(), 2, '0') + ";
+ case "O":
+ return "this.getGMTOffset() + ";
+ case "T":
+ return "this.getTimezone() + ";
+ case "Z":
+ return "(this.getTimezoneOffset() * -60) + ";
+ default:
+ return "'" + String.escape(character) + "' + ";
+ }
+}
+
+Date.parseDate = function(input, format) {
+ if (Date.parseFunctions[format] == null) {
+ Date.createParser(format);
+ }
+ var func = Date.parseFunctions[format];
+ return Date[func](input);
+}
+
+Date.createParser = function(format) {
+ var funcName = "parse" + Date.parseFunctions.count++;
+ var regexNum = Date.parseRegexes.length;
+ var currentGroup = 1;
+ Date.parseFunctions[format] = funcName;
+
+ var code = "Date." + funcName + " = function(input){\n"
+ + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1;\n"
+ + "var d = new Date();\n"
+ + "y = d.getFullYear();\n"
+ + "m = d.getMonth();\n"
+ + "d = d.getDate();\n"
+ + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n"
+ + "if (results && results.length > 0) {"
+ var regex = "";
+
+ var special = false;
+ var ch = '';
+ for (var i = 0; i < format.length; ++i) {
+ ch = format.charAt(i);
+ if (!special && ch == "\\") {
+ special = true;
+ }
+ else if (special) {
+ special = false;
+ regex += String.escape(ch);
+ }
+ else {
+ obj = Date.formatCodeToRegex(ch, currentGroup);
+ currentGroup += obj.g;
+ regex += obj.s;
+ if (obj.g && obj.c) {
+ code += obj.c;
+ }
+ }
+ }
+
+ code += "if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"
+ + "{return new Date(y, m, d, h, i, s);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"
+ + "{return new Date(y, m, d, h, i);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n"
+ + "{return new Date(y, m, d, h);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0)\n"
+ + "{return new Date(y, m, d);}\n"
+ + "else if (y > 0 && m >= 0)\n"
+ + "{return new Date(y, m);}\n"
+ + "else if (y > 0)\n"
+ + "{return new Date(y);}\n"
+ + "}return null;}";
+
+ Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$");
+ eval(code);
+}
+
+Date.formatCodeToRegex = function(character, currentGroup) {
+ switch (character) {
+ case "D":
+ return {g:0,
+ c:null,
+ s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};
+ case "j":
+ case "d":
+ return {g:1,
+ c:"d = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{1,2})"};
+ case "l":
+ return {g:0,
+ c:null,
+ s:"(?:" + Date.dayNames.join("|") + ")"};
+ case "S":
+ return {g:0,
+ c:null,
+ s:"(?:st|nd|rd|th)"};
+ case "w":
+ return {g:0,
+ c:null,
+ s:"\\d"};
+ case "z":
+ return {g:0,
+ c:null,
+ s:"(?:\\d{1,3})"};
+ case "W":
+ return {g:0,
+ c:null,
+ s:"(?:\\d{2})"};
+ case "F":
+ return {g:1,
+ c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "].substring(0, 3)], 10);\n",
+ s:"(" + Date.monthNames.join("|") + ")"};
+ case "M":
+ return {g:1,
+ c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "]], 10);\n",
+ s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};
+ case "n":
+ case "m":
+ return {g:1,
+ c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n",
+ s:"(\\d{1,2})"};
+ case "t":
+ return {g:0,
+ c:null,
+ s:"\\d{1,2}"};
+ case "L":
+ return {g:0,
+ c:null,
+ s:"(?:1|0)"};
+ case "Y":
+ return {g:1,
+ c:"y = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{4})"};
+ case "y":
+ return {g:1,
+ c:"var ty = parseInt(results[" + currentGroup + "], 10);\n"
+ + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",
+ s:"(\\d{1,2})"};
+ case "a":
+ return {g:1,
+ c:"if (results[" + currentGroup + "] == 'am') {\n"
+ + "if (h == 12) { h = 0; }\n"
+ + "} else { if (h < 12) { h += 12; }}",
+ s:"(am|pm)"};
+ case "A":
+ return {g:1,
+ c:"if (results[" + currentGroup + "] == 'AM') {\n"
+ + "if (h == 12) { h = 0; }\n"
+ + "} else { if (h < 12) { h += 12; }}",
+ s:"(AM|PM)"};
+ case "g":
+ case "G":
+ case "h":
+ case "H":
+ return {g:1,
+ c:"h = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{1,2})"};
+ case "i":
+ return {g:1,
+ c:"i = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{2})"};
+ case "s":
+ return {g:1,
+ c:"s = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{2})"};
+ case "O":
+ return {g:0,
+ c:null,
+ s:"[+-]\\d{4}"};
+ case "T":
+ return {g:0,
+ c:null,
+ s:"[A-Z]{3}"};
+ case "Z":
+ return {g:0,
+ c:null,
+ s:"[+-]\\d{1,5}"};
+ default:
+ return {g:0,
+ c:null,
+ s:String.escape(character)};
+ }
+}
+
+Date.prototype.getTimezone = function() {
+ return this.toString().replace(
+ /^.*? ([A-Z]{3}) [0-9]{4}.*$/, "$1").replace(
+ /^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, "$1$2$3");
+}
+
+Date.prototype.getGMTOffset = function() {
+ return (this.getTimezoneOffset() > 0 ? "-" : "+")
+ + String.leftPad(Math.floor(this.getTimezoneOffset() / 60), 2, "0")
+ + String.leftPad(this.getTimezoneOffset() % 60, 2, "0");
+}
+
+Date.prototype.getDayOfYear = function() {
+ var num = 0;
+ Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
+ for (var i = 0; i < this.getMonth(); ++i) {
+ num += Date.daysInMonth[i];
+ }
+ return num + this.getDate() - 1;
+}
+
+Date.prototype.getWeekOfYear = function() {
+ // Skip to Thursday of this week
+ var now = this.getDayOfYear() + (4 - this.getDay());
+ // Find the first Thursday of the year
+ var jan1 = new Date(this.getFullYear(), 0, 1);
+ var then = (7 - jan1.getDay() + 4);
+ document.write(then);
+ return String.leftPad(((now - then) / 7) + 1, 2, "0");
+}
+
+Date.prototype.isLeapYear = function() {
+ var year = this.getFullYear();
+ return ((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year)));
+}
+
+Date.prototype.getFirstDayOfMonth = function() {
+ var day = (this.getDay() - (this.getDate() - 1)) % 7;
+ return (day < 0) ? (day + 7) : day;
+}
+
+Date.prototype.getLastDayOfMonth = function() {
+ var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7;
+ return (day < 0) ? (day + 7) : day;
+}
+
+Date.prototype.getDaysInMonth = function() {
+ Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
+ return Date.daysInMonth[this.getMonth()];
+}
+
+Date.prototype.getSuffix = function() {
+ switch (this.getDate()) {
+ case 1:
+ case 21:
+ case 31:
+ return "st";
+ case 2:
+ case 22:
+ return "nd";
+ case 3:
+ case 23:
+ return "rd";
+ default:
+ return "th";
+ }
+}
+
+String.escape = function(string) {
+ return string.replace(/('|\\)/g, "\\$1");
+}
+
+String.leftPad = function (val, size, ch) {
+ var result = new String(val);
+ if (ch == null) {
+ ch = " ";
+ }
+ while (result.length < size) {
+ result = ch + result;
+ }
+ return result;
+}
+
+Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
+Date.monthNames =
+ ["January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December"];
+Date.dayNames =
+ ["Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"];
+Date.y2kYear = 50;
+Date.monthNumbers = {
+ Jan:0,
+ Feb:1,
+ Mar:2,
+ Apr:3,
+ May:4,
+ Jun:5,
+ Jul:6,
+ Aug:7,
+ Sep:8,
+ Oct:9,
+ Nov:10,
+ Dec:11};
+Date.patterns = {
+ ISO8601LongPattern:"Y-m-d H:i:s",
+ ISO8601ShortPattern:"Y-m-d",
+ ShortDatePattern: "n/j/Y",
+ LongDatePattern: "l, F d, Y",
+ FullDateTimePattern: "l, F d, Y g:i:s A",
+ MonthDayPattern: "F d",
+ ShortTimePattern: "g:i A",
+ LongTimePattern: "g:i:s A",
+ SortableDateTimePattern: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTimePattern: "Y-m-d H:i:sO",
+ YearMonthPattern: "F, Y"};
+
+var date = new Date("1/1/2007 1:11:11");
+
+window.onload = function(){ startTest("sunspider-date-format-xparb", 'e2a44595');
+
+test("Date Format (2)", function(){
+ for (i = 0; i < 400; ++i) {
+ var shortFormat = date.dateFormat("Y-m-d");
+ var longFormat = date.dateFormat("l, F d, Y g:i:s A");
+ date.setTime(date.getTime() + 84266956);
+ }
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html
new file mode 100644
index 000000000..c71964efe
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html
@@ -0,0 +1,103 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/*
+ * Copyright (C) Rich Moore. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/////. Start CORDIC
+
+var AG_CONST = 0.6072529350;
+
+function FIXED(X)
+{
+ return X * 65536.0;
+}
+
+function FLOAT(X)
+{
+ return X / 65536.0;
+}
+
+function DEG2RAD(X)
+{
+ return 0.017453 * (X);
+}
+
+var Angles = [
+ FIXED(45.0), FIXED(26.565), FIXED(14.0362), FIXED(7.12502),
+ FIXED(3.57633), FIXED(1.78991), FIXED(0.895174), FIXED(0.447614),
+ FIXED(0.223811), FIXED(0.111906), FIXED(0.055953),
+ FIXED(0.027977)
+ ];
+
+
+function cordicsincos() {
+ var X;
+ var Y;
+ var TargetAngle;
+ var CurrAngle;
+ var Step;
+
+ X = FIXED(AG_CONST); /* AG_CONST * cos(0) */
+ Y = 0; /* AG_CONST * sin(0) */
+
+ TargetAngle = FIXED(28.027);
+ CurrAngle = 0;
+ for (Step = 0; Step < 12; Step++) {
+ var NewX;
+ if (TargetAngle > CurrAngle) {
+ NewX = X - (Y >> Step);
+ Y = (X >> Step) + Y;
+ X = NewX;
+ CurrAngle += Angles[Step];
+ } else {
+ NewX = X + (Y >> Step);
+ Y = -(X >> Step) + Y;
+ X = NewX;
+ CurrAngle -= Angles[Step];
+ }
+ }
+}
+
+///// End CORDIC
+
+function cordic( runs ) {
+ for ( var i = 0 ; i < runs ; i++ ) {
+ cordicsincos();
+ }
+}
+
+window.onload = function(){ startTest("sunspider-math-cordic", '211c9ee6');
+
+test("Cordic", function(){
+ cordic(2500);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-partial-sums.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-partial-sums.html
new file mode 100644
index 000000000..582265cb0
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-partial-sums.html
@@ -0,0 +1,44 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+// contributed by Isaac Gouy
+
+function partial(n){
+ var a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0.0;
+ var twothirds = 2.0/3.0;
+ var alt = -1.0;
+ var k2 = k3 = sk = ck = 0.0;
+
+ for (var k = 1; k <= n; k++){
+ k2 = k*k;
+ k3 = k2*k;
+ sk = Math.sin(k);
+ ck = Math.cos(k);
+ alt = -alt;
+
+ a1 += Math.pow(twothirds,k-1);
+ a2 += Math.pow(k,-0.5);
+ a3 += 1.0/(k*(k+1.0));
+ a4 += 1.0/(k3 * sk*sk);
+ a5 += 1.0/(k3 * ck*ck);
+ a6 += 1.0/k;
+ a7 += 1.0/k2;
+ a8 += alt/k;
+ a9 += alt/(2*k -1);
+ }
+}
+
+window.onload = function(){ startTest("sunspider-math-partial-sums", 'a31c1c44');
+
+test( "Partial Sums", function(){
+ partial(2048);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-spectral-norm.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-spectral-norm.html
new file mode 100644
index 000000000..f44a906d4
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-math-spectral-norm.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// contributed by Ian Osgood
+
+function A(i,j) {
+ return 1/((i+j)*(i+j+1)/2+i+1);
+}
+
+function Au(u,v) {
+ for (var i=0; i<u.length; ++i) {
+ var t = 0;
+ for (var j=0; j<u.length; ++j)
+ t += A(i,j) * u[j];
+ v[i] = t;
+ }
+}
+
+function Atu(u,v) {
+ for (var i=0; i<u.length; ++i) {
+ var t = 0;
+ for (var j=0; j<u.length; ++j)
+ t += A(j,i) * u[j];
+ v[i] = t;
+ }
+}
+
+function AtAu(u,v,w) {
+ Au(u,w);
+ Atu(w,v);
+}
+
+function spectralnorm(n) {
+ var i, u=[], v=[], w=[], vv=0, vBv=0;
+ for (i=0; i<n; ++i) {
+ u[i] = 1; v[i] = w[i] = 0;
+ }
+ for (i=0; i<10; ++i) {
+ AtAu(u,v,w);
+ AtAu(v,u,w);
+ }
+ for (i=0; i<n; ++i) {
+ vBv += u[i]*v[i];
+ vv += v[i]*v[i];
+ }
+ return Math.sqrt(vBv/vv);
+}
+
+window.onload = function(){ startTest("sunspider-math-spectral-norm", 'e740809d');
+
+test( "Spectral Norm", function(){
+ for (var i = 12; i <= 24; i *= 2)
+ spectralnorm(i);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-regexp-dna.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-regexp-dna.html
new file mode 100644
index 000000000..036865936
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-regexp-dna.html
@@ -0,0 +1,1740 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// contributed by Jesse Millikan
+// Base on the Ruby version by jose fco. gonzalez
+
+var l;
+var dnaInput = ">ONE Homo sapiens alu\n\
+GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n\
+TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n\
+AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n\
+GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n\
+CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n\
+GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n\
+GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n\
+TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n\
+AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n\
+GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n\
+AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n\
+AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n\
+GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n\
+CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n\
+AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n\
+TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n\
+TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n\
+GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n\
+TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n\
+CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n\
+CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n\
+TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n\
+CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n\
+AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n\
+GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n\
+TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n\
+TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n\
+GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n\
+GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n\
+ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n\
+TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n\
+CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n\
+CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n\
+GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n\
+CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n\
+GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n\
+GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n\
+GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n\
+GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n\
+GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n\
+AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n\
+CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n\
+GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n\
+AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n\
+GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n\
+ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n\
+GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC\n\
+GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC\n\
+GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG\n\
+TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA\n\
+AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG\n\
+GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT\n\
+CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC\n\
+TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG\n\
+ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC\n\
+GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA\n\
+ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA\n\
+CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA\n\
+CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA\n\
+ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG\n\
+CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG\n\
+AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC\n\
+CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG\n\
+AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC\n\
+CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG\n\
+CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG\n\
+CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG\n\
+CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC\n\
+ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA\n\
+AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC\n\
+TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC\n\
+ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG\n\
+CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG\n\
+AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT\n\
+AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA\n\
+TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC\n\
+CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA\n\
+TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG\n\
+CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT\n\
+GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG\n\
+GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG\n\
+CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG\n\
+GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG\n\
+GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT\n\
+AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT\n\
+GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT\n\
+CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG\n\
+GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC\n\
+TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT\n\
+CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG\n\
+ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG\n\
+CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG\n\
+AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA\n\
+CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG\n\
+CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC\n\
+ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC\n\
+GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC\n\
+GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG\n\
+GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT\n\
+TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG\n\
+CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA\n\
+GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG\n\
+CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC\n\
+GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG\n\
+CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA\n\
+CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG\n\
+CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA\n\
+ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC\n\
+CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT\n\
+GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA\n\
+AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG\n\
+ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC\n\
+TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA\n\
+GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC\n\
+GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG\n\
+TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC\n\
+AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA\n\
+ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA\n\
+GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\n\
+AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG\n\
+TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC\n\
+CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT\n\
+GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC\n\
+CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA\n\
+GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT\n\
+TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC\n\
+ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC\n\
+TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG\n\
+GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG\n\
+TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG\n\
+GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC\n\
+GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT\n\
+ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC\n\
+GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC\n\
+GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC\n\
+CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA\n\
+ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG\n\
+AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC\n\
+TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT\n\
+CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG\n\
+TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG\n\
+CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC\n\
+GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT\n\
+GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC\n\
+CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC\n\
+TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG\n\
+CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\n\
+AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG\n\
+AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG\n\
+AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT\n\
+GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA\n\
+TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC\n\
+AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA\n\
+AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG\n\
+CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC\n\
+TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG\n\
+GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT\n\
+CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG\n\
+CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG\n\
+GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA\n\
+AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA\n\
+GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC\n\
+TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC\n\
+CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA\n\
+GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG\n\
+CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG\n\
+AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG\n\
+ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC\n\
+ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC\n\
+AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC\n\
+GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG\n\
+GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT\n\
+CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC\n\
+GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC\n\
+CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\n\
+GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA\n\
+GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG\n\
+GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT\n\
+CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA\n\
+AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG\n\
+CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC\n\
+CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG\n\
+GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG\n\
+GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT\n\
+TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA\n\
+ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG\n\
+CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA\n\
+ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA\n\
+GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG\n\
+TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC\n\
+GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA\n\
+GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT\n\
+GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT\n\
+GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG\n\
+TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT\n\
+TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC\n\
+TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC\n\
+GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT\n\
+CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC\n\
+TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA\n\
+GATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGG\n\
+GCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCT\n\
+GAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT\n\
+ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAG\n\
+GCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTG\n\
+CACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCA\n\
+CGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTT\n\
+CGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCC\n\
+GGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGC\n\
+TTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGG\n\
+GCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCC\n\
+AGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTG\n\
+GCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCG\n\
+CGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAG\n\
+GCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAG\n\
+ACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAG\n\
+GCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGA\n\
+AACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATC\n\
+CCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAG\n\
+TGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAA\n\
+AAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCG\n\
+GATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTA\n\
+CTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGG\n\
+AGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCG\n\
+CGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCG\n\
+GTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGT\n\
+CAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAA\n\
+AATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGG\n\
+AGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTC\n\
+CAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCT\n\
+GTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA\n\
+CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCG\n\
+TGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAA\n\
+CCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGAC\n\
+AGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCAC\n\
+TTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAA\n\
+CATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGC\n\
+CTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGA\n\
+GGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCC\n\
+GTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGA\n\
+GGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCC\n\
+CGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGC\n\
+TACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGC\n\
+CGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGC\n\
+CGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCA\n\
+CCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAA\n\
+AATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCT\n\
+GAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCA\n\
+CTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGC\n\
+TCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGA\n\
+GTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTA\n\
+GCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAAT\n\
+CGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCC\n\
+TGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAAT\n\
+CCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGC\n\
+CTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTG\n\
+GCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGG\n\
+GAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGC\n\
+GAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG\n\
+GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGG\n\
+TGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTA\n\
+ATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTG\n\
+CAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTC\n\
+AAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGG\n\
+GCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCT\n\
+CTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTC\n\
+GGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGA\n\
+TCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGC\n\
+GCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGA\n\
+GGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATAC\n\
+AAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGC\n\
+AGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCA\n\
+CTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACG\n\
+CCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCG\n\
+AGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGG\n\
+GCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTT\n\
+GAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGC\n\
+GACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAG\n\
+CACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGC\n\
+CAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCG\n\
+CGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGC\n\
+GGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGAC\n\
+TCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGC\n\
+CGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAA\n\
+CCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCC\n\
+AGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTG\n\
+AGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA\n\
+GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n\
+TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n\
+AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n\
+GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n\
+CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n\
+GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n\
+GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n\
+TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n\
+AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n\
+GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n\
+AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n\
+AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n\
+GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n\
+CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n\
+AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n\
+TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n\
+TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n\
+GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n\
+TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n\
+CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n\
+CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n\
+TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n\
+CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n\
+AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n\
+GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n\
+TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n\
+TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n\
+GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n\
+GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n\
+ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n\
+TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n\
+CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n\
+CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n\
+GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n\
+CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n\
+GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n\
+GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n\
+GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n\
+GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n\
+GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n\
+AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n\
+CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n\
+GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n\
+AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n\
+GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n\
+ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n\
+GAGGCTGAGGCAGGAGAATC\n\
+>TWO IUB ambiguity codes\n\
+cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg\n\
+tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa\n\
+NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt\n\
+cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga\n\
+gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa\n\
+HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca\n\
+tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt\n\
+tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt\n\
+acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct\n\
+tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt\n\
+gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa\n\
+accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt\n\
+RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt\n\
+tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag\n\
+cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg\n\
+ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat\n\
+actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg\n\
+YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa\n\
+KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata\n\
+aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa\n\
+aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg\n\
+gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc\n\
+tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK\n\
+tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt\n\
+ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg\n\
+ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa\n\
+BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt\n\
+aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc\n\
+tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc\n\
+cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac\n\
+aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga\n\
+tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga\n\
+aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD\n\
+gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg\n\
+ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV\n\
+taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa\n\
+ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat\n\
+gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg\n\
+gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa\n\
+tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt\n\
+tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt\n\
+taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca\n\
+cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag\n\
+aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt\n\
+cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt\n\
+ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW\n\
+attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag\n\
+ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa\n\
+attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc\n\
+tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta\n\
+aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata\n\
+cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc\n\
+gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg\n\
+attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca\n\
+BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga\n\
+DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat\n\
+tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM\n\
+tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR\n\
+tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg\n\
+taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc\n\
+aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc\n\
+DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa\n\
+VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt\n\
+agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat\n\
+gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt\n\
+tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt\n\
+catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt\n\
+tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR\n\
+aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat\n\
+aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac\n\
+acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS\n\
+tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga\n\
+aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM\n\
+acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt\n\
+RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt\n\
+RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta\n\
+tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac\n\
+gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt\n\
+YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc\n\
+ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt\n\
+ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat\n\
+gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta\n\
+KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD\n\
+aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg\n\
+gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH\n\
+taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact\n\
+VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV\n\
+NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa\n\
+MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag\n\
+cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata\n\
+ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg\n\
+tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN\n\
+aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc\n\
+actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg\n\
+tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga\n\
+gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa\n\
+BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca\n\
+aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata\n\
+aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat\n\
+YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt\n\
+aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW\n\
+cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata\n\
+tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata\n\
+tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt\n\
+MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac\n\
+taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta\n\
+tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS\n\
+RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc\n\
+agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata\n\
+NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa\n\
+gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata\n\
+aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt\n\
+ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW\n\
+cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt\n\
+tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa\n\
+RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt\n\
+tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD\n\
+gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc\n\
+tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta\n\
+ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM\n\
+tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc\n\
+ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc\n\
+BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt\n\
+gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga\n\
+acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag\n\
+gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc\n\
+taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat\n\
+acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta\n\
+tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt\n\
+catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa\n\
+tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB\n\
+atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR\n\
+ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta\n\
+ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta\n\
+cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK\n\
+SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW\n\
+VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc\n\
+BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct\n\
+NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt\n\
+tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa\n\
+ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa\n\
+cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa\n\
+VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR\n\
+atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac\n\
+aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc\n\
+tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac\n\
+RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag\n\
+gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc\n\
+tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact\n\
+attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc\n\
+atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga\n\
+cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt\n\
+NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR\n\
+ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat\n\
+cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg\n\
+aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac\n\
+agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR\n\
+tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga\n\
+ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg\n\
+ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa\n\
+tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag\n\
+taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg\n\
+tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN\n\
+YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt\n\
+ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa\n\
+tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat\n\
+ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg\n\
+attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt\n\
+atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW\n\
+YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta\n\
+gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV\n\
+MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta\n\
+tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt\n\
+ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa\n\
+aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa\n\
+BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM\n\
+tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK\n\
+StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV\n\
+cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN\n\
+atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg\n\
+atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg\n\
+ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct\n\
+gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM\n\
+tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD\n\
+BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc\n\
+agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga\n\
+HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR\n\
+tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt\n\
+aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa\n\
+catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB\n\
+aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat\n\
+tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt\n\
+cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag\n\
+DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat\n\
+gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta\n\
+tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM\n\
+atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc\n\
+KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt\n\
+tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata\n\
+tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK\n\
+taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt\n\
+NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa\n\
+HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa\n\
+ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg\n\
+tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK\n\
+cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga\n\
+ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca\n\
+HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg\n\
+gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS\n\
+BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg\n\
+gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat\n\
+KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact\n\
+cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat\n\
+tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD\n\
+taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM\n\
+gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt\n\
+aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat\n\
+acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta\n\
+RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc\n\
+attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac\n\
+KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS\n\
+KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD\n\
+gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB\n\
+aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct\n\
+aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga\n\
+ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY\n\
+tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga\n\
+aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta\n\
+tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY\n\
+MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc\n\
+cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta\n\
+caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt\n\
+ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc\n\
+acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat\n\
+tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc\n\
+gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa\n\
+atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga\n\
+aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat\n\
+NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt\n\
+taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa\n\
+aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat\n\
+ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca\n\
+DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata\n\
+tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat\n\
+aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa\n\
+ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM\n\
+ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca\n\
+RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa\n\
+aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac\n\
+aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt\n\
+aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK\n\
+tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat\n\
+atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR\n\
+BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc\n\
+gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct\n\
+cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN\n\
+RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat\n\
+taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt\n\
+aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt\n\
+gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct\n\
+gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa\n\
+aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta\n\
+gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg\n\
+ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat\n\
+MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct\n\
+SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY\n\
+aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt\n\
+VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat\n\
+HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc\n\
+agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt\n\
+gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg\n\
+agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg\n\
+tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag\n\
+gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga\n\
+VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg\n\
+tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV\n\
+MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt\n\
+actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa\n\
+WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa\n\
+tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD\n\
+KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct\n\
+BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac\n\
+attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB\n\
+VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD\n\
+aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca\n\
+tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat\n\
+tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK\n\
+tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt\n\
+VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta\n\
+tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat\n\
+ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa\n\
+tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg\n\
+WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta\n\
+tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc\n\
+tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct\n\
+MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat\n\
+tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac\n\
+atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg\n\
+aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt\n\
+aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa\n\
+aatYggtaRtatNtHcaatcaHtagVtgtattataNggaMtcttHtNagctaaaggtaga\n\
+YctMattNaMVNtcKtactBKcaHHcBttaSagaKacataYgctaKaYgttYcgacWVtt\n\
+WtSagcaacatcccHaccKtcttaacgaKttcacKtNtacHtatatRtaaatacactaBt\n\
+ttgaHaRttggttWtatYagcatYDatcggagagcWBataagRtacctataRKgtBgatg\n\
+aDatataSttagBaHtaatNtaDWcWtgtaattacagKttcNtMagtattaNgtctcgtc\n\
+ctcttBaHaKcKccgtRcaaYagSattaagtKataDatatatagtcDtaacaWHcaKttD\n\
+gaaRcgtgYttgtcatatNtatttttatggccHtgDtYHtWgttatYaacaattcaWtat\n\
+NgctcaaaSttRgctaatcaaatNatcgtttaBtNNVtgttataagcaaagattBacgtD\n\
+atttNatttaaaDcBgtaSKgacgtagataatttcHMVNttgttBtDtgtaWKaaRMcKM\n\
+tHtaVtagataWctccNNaSWtVaHatctcMgggDgtNHtDaDttatatVWttgttattt\n\
+aacctttcacaaggaSaDcggttttttatatVtctgVtaacaStDVaKactaMtttaSNa\n\
+gtgaaattaNacttSKctattcctctaSagKcaVttaagNaVcttaVaaRNaHaaHttat\n\
+gtHttgtgatMccaggtaDcgaccgtWgtWMtttaHcRtattgScctatttKtaaccaag\n\
+tYagaHgtWcHaatgccKNRtttagtMYSgaDatctgtgaWDtccMNcgHgcaaacNDaa\n\
+aRaStDWtcaaaaHKtaNBctagBtgtattaactaattttVctagaatggcWSatMaccc\n\
+ttHttaSgSgtgMRcatRVKtatctgaaaccDNatYgaaVHNgatMgHRtacttaaaRta\n\
+tStRtDtatDttYatattHggaBcttHgcgattgaKcKtttcRataMtcgaVttWacatN\n\
+catacctRataDDatVaWNcggttgaHtgtMacVtttaBHtgagVttMaataattatgtt\n\
+cttagtttgtgcDtSatttgBtcaacHattaaBagVWcgcaSYttMgcttacYKtVtatc\n\
+aYaKctgBatgcgggcYcaaaaacgNtctagKBtattatctttKtaVttatagtaYtRag\n\
+NtaYataaVtgaatatcHgcaaRataHtacacatgtaNtgtcgYatWMatttgaactacR\n\
+ctaWtWtatacaatctBatatgYtaagtatgtgtatSttactVatcttYtaBcKgRaSgg\n\
+RaaaaatgcagtaaaWgtaRgcgataatcBaataccgtatttttccatcNHtatWYgatH\n\
+SaaaDHttgctgtccHtggggcctaataatttttctatattYWtcattBtgBRcVttaVM\n\
+RSgctaatMagtYtttaaaaatBRtcBttcaaVtaacagctccSaaSttKNtHtKYcagc\n\
+agaaaccccRtttttaaDcDtaStatccaagcgctHtatcttaDRYgatDHtWcaaaBcW\n\
+gKWHttHataagHacgMNKttMKHccaYcatMVaacgttaKgYcaVaaBtacgcaacttt\n\
+MctaaHaatgtBatgagaSatgtatgSRgHgWaVWgataaatatttccKagVgataattW\n\
+aHNcYggaaatgctHtKtaDtctaaagtMaatVDVactWtSaaWaaMtaHtaSKtcBRaN\n\
+cttStggtBttacNagcatagRgtKtgcgaacaacBcgKaatgataagatgaaaattgta\n\
+ctgcgggtccHHWHaaNacaBttNKtKtcaaBatatgctaHNgtKcDWgtttatNgVDHg\n\
+accaacWctKaaggHttgaRgYaatHcaBacaatgagcaaattactgtaVaaYaDtagat\n\
+tgagNKggtggtgKtWKaatacagDRtatRaMRtgattDggtcaaYRtatttNtagaDtc\n\
+acaaSDctDtataatcgtactaHttatacaatYaacaaHttHatHtgcgatRRttNgcat\n\
+SVtacWWgaaggagtatVMaVaaattScDDKNcaYBYaDatHgtctatBagcaacaagaa\n\
+tgagaaRcataaKNaRtBDatcaaacgcattttttaaBtcSgtacaRggatgtMNaattg\n\
+gatatWtgagtattaaaVctgcaYMtatgatttttYgaHtgtcttaagWBttHttgtctt\n\
+attDtcgtatWtataataSgctaHagcDVcNtaatcaagtaBDaWaDgtttagYctaNcc\n\
+DtaKtaHcttaataacccaRKtacaVaatNgcWRaMgaattatgaBaaagattVYaHMDc\n\
+aDHtcRcgYtcttaaaWaaaVKgatacRtttRRKYgaatacaWVacVcRtatMacaBtac\n\
+tggMataaattttHggNagSctacHgtBagcgtcgtgattNtttgatSaaggMttctttc\n\
+ttNtYNagBtaaacaaatttMgaccttacataattgYtcgacBtVMctgStgMDtagtaR\n\
+ctHtatgttcatatVRNWataDKatWcgaaaaagttaaaagcacgHNacgtaatctttMR\n\
+tgacttttDacctataaacgaaatatgattagaactccSYtaBctttaataacWgaaaYa\n\
+tagatgWttcatKtNgatttttcaagHtaYgaaRaDaagtaggagcttatVtagtctttc\n\
+attaaaatcgKtattaRttacagVaDatgcatVgattgggtctttHVtagKaaRBtaHta\n\
+aggccccaaaaKatggtttaMWgtBtaaacttcactttKHtcgatctccctaYaBacMgt\n\
+cttBaBaNgcgaaacaatctagtHccHtKttcRtRVttccVctttcatacYagMVtMcag\n\
+aMaaacaataBctgYtaatRaaagattaaccatVRatHtaRagcgcaBcgDttStttttc\n\
+VtttaDtKgcaaWaaaaatSccMcVatgtKgtaKgcgatatgtagtSaaaDttatacaaa\n\
+catYaRRcVRHctKtcgacKttaaVctaDaatgttMggRcWaacttttHaDaKaDaBctg\n\
+taggcgtttaHBccatccattcNHtDaYtaataMttacggctNVaacDattgatatttta\n\
+cVttSaattacaaRtataNDgacVtgaacataVRttttaDtcaaacataYDBtttaatBa\n\
+DtttYDaDaMccMttNBttatatgagaaMgaNtattHccNataattcaHagtgaaggDga\n\
+tgtatatatgYatgaStcataaBStWacgtcccataRMaaDattggttaaattcMKtctM\n\
+acaBSactcggaatDDgatDgcWctaacaccgggaVcacWKVacggtaNatatacctMta\n\
+tgatagtgcaKagggVaDtgtaacttggagtcKatatcgMcttRaMagcattaBRaStct\n\
+YSggaHYtacaactMBaagDcaBDRaaacMYacaHaattagcattaaaHgcgctaaggSc\n\
+cKtgaaKtNaBtatDDcKBSaVtgatVYaagVtctSgMctacgttaacWaaattctSgtD\n\
+actaaStaaattgcagBBRVctaatatacctNttMcRggctttMttagacRaHcaBaacV\n\
+KgaataHttttMgYgattcYaNRgttMgcVaaacaVVcDHaatttgKtMYgtatBtVVct\n\
+WgVtatHtacaaHttcacgatagcagtaaNattBatatatttcVgaDagcggttMaagtc\n\
+ScHagaaatgcYNggcgtttttMtStggtRatctacttaaatVVtBacttHNttttaRca\n\
+aatcacagHgagagtMgatcSWaNRacagDtatactaaDKaSRtgattctccatSaaRtt\n\
+aaYctacacNtaRtaactggatgaccYtacactttaattaattgattYgttcagDtNKtt\n\
+agDttaaaaaaaBtttaaNaYWKMBaaaacVcBMtatWtgBatatgaacVtattMtYatM\n\
+NYDKNcKgDttDaVtaaaatgggatttctgtaaatWtctcWgtVVagtcgRgacttcccc\n\
+taDcacagcRcagagtgtWSatgtacatgttaaSttgtaaHcgatgggMagtgaacttat\n\
+RtttaVcaccaWaMgtactaatSSaHtcMgaaYtatcgaaggYgggcgtgaNDtgttMNg\n\
+aNDMtaattcgVttttaacatgVatgtWVMatatcaKgaaattcaBcctccWcttgaaWH\n\
+tWgHtcgNWgaRgctcBgSgaattgcaaHtgattgtgNagtDttHHgBttaaWcaaWagc\n\
+aSaHHtaaaVctRaaMagtaDaatHtDMtcVaWMtagSagcttHSattaacaaagtRacM\n\
+tRtctgttagcMtcaBatVKtKtKacgagaSNatSactgtatatcBctgagVtYactgta\n\
+aattaaaggcYgDHgtaacatSRDatMMccHatKgttaacgactKtgKagtcttcaaHRV\n\
+tccttKgtSataatttacaactggatDNgaacttcaRtVaagDcaWatcBctctHYatHa\n\
+DaaatttagYatSatccaWtttagaaatVaacBatHcatcgtacaatatcgcNYRcaata\n\
+YaRaYtgattVttgaatgaVaactcRcaNStgtgtattMtgaggtNttBaDRcgaaaagc\n\
+tNgBcWaWgtSaDcVtgVaatMKBtttcgtttctaaHctaaagYactgMtatBDtcStga\n\
+ccgtSDattYaataHctgggaYYttcggttaWaatctggtRagWMaDagtaacBccacta\n\
+cgHWMKaatgatWatcctgHcaBaSctVtcMtgtDttacctaVgatYcWaDRaaaaRtag\n\
+atcgaMagtggaRaWctctgMgcWttaagKBRtaaDaaWtctgtaagYMttactaHtaat\n\
+cttcataacggcacBtSgcgttNHtgtHccatgttttaaagtatcgaKtMttVcataYBB\n\
+aKtaMVaVgtattNDSataHcagtWMtaggtaSaaKgttgBtVtttgttatcatKcgHac\n\
+acRtctHatNVagSBgatgHtgaRaSgttRcctaacaaattDNttgacctaaYtBgaaaa\n\
+tagttattactcttttgatgtNNtVtgtatMgtcttRttcatttgatgacacttcHSaaa\n\
+ccaWWDtWagtaRDDVNacVaRatgttBccttaatHtgtaaacStcVNtcacaSRttcYa\n\
+gacagaMMttttgMcNttBcgWBtactgVtaRttctccaaYHBtaaagaBattaYacgat\n\
+ttacatctgtaaMKaRYtttttactaaVatWgctBtttDVttctggcDaHaggDaagtcg\n\
+aWcaagtagtWttHtgKtVataStccaMcWcaagataagatcactctHatgtcYgaKcat\n\
+cagatactaagNSStHcctRRNtattgtccttagttagMVgtatagactaactctVcaat\n\
+MctgtttgtgttgccttatWgtaBVtttctggMcaaKgDWtcgtaaYStgSactatttHg\n\
+atctgKagtagBtVacRaagRtMctatgggcaaaKaaaatacttcHctaRtgtDcttDat\n\
+taggaaatttcYHaRaaBttaatggcacKtgctHVcaDcaaaVDaaaVcgMttgtNagcg\n\
+taDWgtcgttaatDgKgagcSatatcSHtagtagttggtgtHaWtaHKtatagctgtVga\n\
+ttaBVaatgaataagtaatVatSttaHctttKtttgtagttaccttaatcgtagtcctgB\n\
+cgactatttVcMacHaaaggaatgDatggKtaHtgStatattaaSagctWcctccRtata\n\
+BaDYcgttgcNaagaggatRaaaYtaWgNtSMcaatttactaacatttaaWttHtatBat\n\
+tgtcgacaatNgattgcNgtMaaaKaBDattHacttggtRtttaYaacgVactBtaBaKt\n\
+gBttatgVttgtVttcaatcWcNctDBaaBgaDHacBttattNtgtDtatttVSaaacag\n\
+gatgcRatSgtaSaNtgBatagttcHBgcBBaaattaHgtDattatDaKaatBaaYaaMa\n\
+ataaataKtttYtagtBgMatNcatgtttgaNagtgttgtgKaNaSagtttgaSMaYBca\n\
+aaacDStagttVacaaaaactaaWttBaagtctgtgcgtMgtaattctcctacctcaNtt\n\
+taaccaaaaVtBcacataacaccccBcWMtatVtggaatgaWtcaaWaaaaaaaaWtDta\n\
+atatRcctDWtcctaccMtVVatKttaWaaKaaatataaagScHBagaggBaSMtaWaVt\n\
+atattactSaaaKNaactatNatccttgaYctattcaaaVgatttYHcRagattttaSat\n\
+aggttattcVtaaagaKgtattattKtRttNcggcRgtgtgtWYtaacHgKatKgatYta\n\
+cYagDtWcHBDctctgRaYKaYagcactKcacSaRtBttttBHKcMtNtcBatttatttt\n\
+tgSatVgaaagaWtcDtagDatatgMacaacRgatatatgtttgtKtNRaatatNatgYc\n\
+aHtgHataacKtgagtagtaacYttaNccaaatHcacaacaVDtagtaYtccagcattNt\n\
+acKtBtactaaagaBatVtKaaHBctgStgtBgtatgaSNtgDataaccctgtagcaBgt\n\
+gatcttaDataStgaMaccaSBBgWagtacKcgattgaDgNNaaaacacagtSatBacKD\n\
+gcgtataBKcatacactaSaatYtYcDaactHttcatRtttaatcaattataRtttgtaa\n\
+gMcgNttcatcBtYBagtNWNMtSHcattcRctttttRWgaKacKttgggagBcgttcgc\n\
+MaWHtaatactgtctctatttataVgtttaBScttttaBMaNaatMacactYtBMggtHa\n\
+cMagtaRtctgcatttaHtcaaaatttgagKtgNtactBacaHtcgtatttctMaSRagc\n\
+agttaatgtNtaaattgagagWcKtaNttagVtacgatttgaatttcgRtgtWcVatcgt\n\
+taaDVctgtttBWgaccagaaagtcSgtVtatagaBccttttcctaaattgHtatcggRa\n\
+ttttcaaggcYSKaagWaWtRactaaaacccBatMtttBaatYtaagaactSttcgaaSc\n\
+aatagtattgaccaagtgttttctaacatgtttNVaatcaaagagaaaNattaaRtttta\n\
+VaaaccgcaggNMtatattVctcaagaggaacgBgtttaacaagttcKcYaatatactaa\n\
+ccBaaaSggttcNtattctagttRtBacgScVctcaatttaatYtaaaaaaatgSaatga\n\
+tagaMBRatgRcMcgttgaWHtcaVYgaatYtaatctttYttatRaWtctgBtDcgatNa\n\
+tcKaBaDgatgtaNatWKctccgatattaacattNaaacDatgBgttctgtDtaaaMggt\n\
+gaBaSHataacgccSctaBtttaRBtcNHcDatcDcctagagtcRtaBgWttDRVHagat\n\
+tYatgtatcWtaHtttYcattWtaaagtctNgtStggRNcgcggagSSaaagaaaatYcH\n\
+DtcgctttaatgYcKBVSgtattRaYBaDaaatBgtatgaHtaaRaRgcaSWNtagatHa\n\
+acttNctBtcaccatctMcatattccaSatttgcgaDagDgtatYtaaaVDtaagtttWV\n\
+aagtagYatRttaagDcNgacKBcScagHtattatcDaDactaaaaaYgHttBcgaDttg\n\
+gataaaKSRcBMaBcgaBSttcWtgNBatRaccgattcatttataacggHVtaattcaca\n\
+agagVttaaRaatVVRKcgWtVgacctgDgYaaHaWtctttcacMagggatVgactagMa\n\
+aataKaaNWagKatagNaaWtaaaatttgaattttatttgctaaVgaHatBatcaaBWcB\n\
+gttcMatcgBaaNgttcgSNaggSaRtttgHtRtattaNttcDcatSaVttttcgaaaaa\n\
+ttgHatctaRaggSaNatMDaaatDcacgattttagaHgHaWtYgattaatHNSttatMS\n\
+gggNtcKtYatRggtttgtMWVtttaYtagcagBagHaYagttatatggtBacYcattaR\n\
+SataBatMtttaaatctHcaaaSaaaagttNSaaWcWRccRtKaagtBWtcaaattSttM\n\
+tattggaaaccttaacgttBtWatttatatWcDaatagattcctScacctaagggRaaYt\n\
+aNaatgVtBcttaaBaacaMVaaattatStYgRcctgtactatcMcVKatttcgSgatRH\n\
+MaaaHtagtaaHtVgcaaataatatcgKKtgccaatBNgaaWcVttgagttaKatagttc\n\
+aggKDatDtattgaKaVcaKtaataDataataHSaHcattagttaatRVYcNaHtaRcaa\n\
+ggtNHcgtcaaccaBaaagYtHWaaaRcKgaYaaDttgcWYtataRgaatatgtYtgcKt\n\
+aNttWacatYHctRaDtYtattcBttttatcSataYaYgttWaRagcacHMgtttHtYtt\n\
+YaatcggtatStttcgtRSattaaDaKMaatatactaNBaWgctacacYtgaYVgtgHta\n\
+aaRaaRgHtagtWattataaaSDaaWtgMattatcgaaaagtaYRSaWtSgNtBgagcRY\n\
+aMDtactaacttaWgtatctagacaagNtattHggataatYttYatcataDcgHgttBtt\n\
+ctttVttgccgaaWtaaaacgKgtatctaaaaaNtccDtaDatBMaMggaatNKtatBaa\n\
+atVtccRaHtaSacataHattgtttKVYattcataVaattWtcgtgMttcttKtgtctaa\n\
+cVtatctatatBRataactcgKatStatattcatHHRttKtccaacgtgggtgRgtgaMt\n\
+attattggctatcgtgacMtRcBDtcttgtactaatRHttttaagatcgVMDStattatY\n\
+BtttDttgtBtNttgRcMtYtgBacHaWaBaatDKctaagtgaaactaatgRaaKgatcc\n\
+aagNaaaatattaggWNtaagtatacttttKcgtcggSYtcttgRctataYcttatataa\n\
+agtatattaatttataVaacacaDHatctatttttKYVatHRactttaBHccaWagtact\n\
+BtcacgaVgcgttRtttttttSVgtSagtBaaattctgaHgactcttgMcattttagVta\n\
+agaattHctHtcaDaaNtaacRggWatagttcgtSttgaDatcNgNagctagDgatcNtt\n\
+KgttgtaDtctttRaaYStRatDtgMggactSttaDtagSaVtBDttgtDgccatcacaM\n\
+attaaaMtNacaVcgSWcVaaDatcaHaatgaattaMtatccVtctBtaattgtWattat\n\
+BRcWcaatgNNtactWYtDaKttaaatcactcagtRaaRgatggtKgcgccaaHgaggat\n\
+StattYcaNMtcaBttacttatgagDaNtaMgaaWtgtttcttctaHtMNgttatctaWW\n\
+atMtBtaaatagDVatgtBYtatcggcttaagacMRtaHScgatatYgRDtcattatSDa\n\
+HggaaataNgaWSRRaaaBaatagBattaDctttgHWNttacaataaaaaaatacggttt\n\
+gHgVtaHtWMttNtBtctagtMcgKMgHgYtataHaNagWtcaacYattaataYRgtaWK\n\
+gaBctataaccgatttaHaNBRaRaMtccggtNgacMtctcatttgcaattcWgMactta\n\
+caaDaaNtactWatVtttagccttMaatcagVaagtctVaaDaBtattaattaYtNaYtg\n\
+gattaKtaKctYaMtattYgatattataatKtVgDcttatatNBtcgttgtStttttMag\n\
+aggttaHYSttcKgtcKtDNtataagttataagSgttatDtRttattgttttSNggRtca\n\
+aKMNatgaatattgtBWtaMacctgggYgaSgaagYataagattacgagaatBtggtRcV\n\
+HtgYggaDgaYaKagWagctatagacgaaHgtWaNgacttHRatVaWacKYtgRVNgVcS\n\
+gRWctacatcKSactctgWYtBggtataagcttNRttVtgRcaWaaatDMatYattaact\n\
+ttcgaagRatSctgccttgcRKaccHtttSNVagtagHagBagttagaccaRtataBcca\n\
+taatSHatRtcHagacBWatagcaMtacaRtgtgaaBatctKRtScttccaNaatcNgta\n\
+atatWtcaMgactctBtWtaaNactHaaaaRctcgcatggctMcaaNtcagaaaaacaca\n\
+gtggggWttRttagtaagaVctVMtcgaatcttcMaaaHcaHBttcgattatgtcaDagc\n\
+YRtBtYcgacMgtDcagcgaNgttaataatagcagKYYtcgtaBtYctMaRtaRtDagaa\n\
+aacacatgYaBttgattattcgaaNttBctSataaMataWRgaHtttccgtDgaYtatgg\n\
+tDgHKgMtatttVtMtVagttaRatMattRagataaccctKctMtSttgaHagtcStcta\n\
+tttccSagatgttccacgaggYNttHRacgattcDatatDcataaaatBBttatcgaHtN\n\
+HaaatatDNaggctgaNcaaggagttBttMgRagVatBcRtaWgatgBtSgaKtcgHttt\n\
+gaatcaaDaHttcSBgHcagtVaaSttDcagccgttNBtgttHagYtattctttRWaaVt\n\
+SttcatatKaaRaaaNacaVtVctMtSDtDtRHRcgtaatgctcttaaatSacacaatcg\n\
+HattcaWcttaaaatHaaatcNctWttaNMcMtaKctVtcctaagYgatgatcYaaaRac\n\
+tctaRDaYagtaacgtDgaggaaatctcaaacatcaScttcKttNtaccatNtaNataca\n\
+tttHaaDHgcaDatMWaaBttcRggctMaagctVYcacgatcaDttatYtaatcKatWat\n\
+caatVYtNagatttgattgaYttttYgacttVtcKaRagaaaHVgDtaMatKYagagttN\n\
+atWttaccNtYtcDWgSatgaRgtMatgKtcgacaagWtacttaagtcgKtgatccttNc\n\
+ttatagMatHVggtagcgHctatagccctYttggtaattKNaacgaaYatatVctaataM\n\
+aaaYtgVtcKaYtaataacagaatHcacVagatYWHttagaaSMaatWtYtgtaaagNaa\n\
+acaVgaWtcacNWgataNttcaSagctMDaRttgNactaccgataMaaatgtttattDtc\n\
+aagacgctDHYYatggttcaagccNctccttcMctttagacBtaaWtaWVHggaaaaNat\n\
+ttaDtDtgctaaHHtMtatNtMtagtcatttgcaaaRatacagRHtatDNtgtDgaatVg\n\
+tVNtcaaatYBMaaaagcaKgtgatgatMgWWMaHttttMgMagatDtataaattaacca\n\
+actMtacataaattgRataatacgBtKtaataattRgtatDagDtcRDacctatRcagag\n\
+cSHatNtcaScNtttggacNtaaggaccgtgKNttgttNcttgaaRgYgRtNtcagttBc\n\
+ttttcHtKtgcttYaaNgYagtaaatgaatggWaMattBHtatctatSgtcYtgcHtaat\n\
+tHgaaMtHcagaaSatggtatgccaHBtYtcNattWtgtNgctttaggtttgtWatNtgH\n\
+tgcDttactttttttgcNtactKtWRaVcttcatagtgSNKaNccgaataaBttataata\n\
+YtSagctttaaatSttggctaaKSaatRccgWHgagDttaaatcatgagMtcgagtVtaD\n\
+ggaBtatttgDacataaacgtagYRagBWtgDStKDgatgaagttcattatttaKWcata\n\
+aatWRgatataRgttRacaaNKttNtKagaaYaStaactScattattaacgatttaaatg\n\
+DtaattagatHgaYataaactatggggatVHtgccgtNgatNYcaStRtagaccacWcaM\n\
+tatRagHgVactYtWHtcttcatgatWgagaKggagtatgaWtDtVtNaNtcgYYgtaaa\n\
+ctttaDtBactagtaDctatagtaatatttatatataacgHaaaRagKattSagttYtSt\n\
+>THREE Homo sapiens frequency\n\
+agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct\n\
+cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt\n\
+tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat\n\
+tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc\n\
+gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc\n\
+tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg\n\
+tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat\n\
+atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag\n\
+cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa\n\
+ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt\n\
+ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat\n\
+atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc\n\
+gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact\n\
+tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag\n\
+gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg\n\
+atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag\n\
+tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac\n\
+ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag\n\
+tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta\n\
+aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt\n\
+gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa\n\
+ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc\n\
+agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt\n\
+agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat\n\
+acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc\n\
+cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct\n\
+cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct\n\
+cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa\n\
+aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt\n\
+tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt\n\
+atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct\n\
+cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga\n\
+tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat\n\
+catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc\n\
+tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg\n\
+caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc\n\
+tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc\n\
+aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag\n\
+aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat\n\
+ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac\n\
+gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag\n\
+ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt\n\
+cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta\n\
+gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca\n\
+ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt\n\
+cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg\n\
+taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg\n\
+gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc\n\
+taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt\n\
+ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt\n\
+aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt\n\
+gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta\n\
+acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct\n\
+ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta\n\
+tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt\n\
+tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg\n\
+tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa\n\
+ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac\n\
+aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga\n\
+tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca\n\
+gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt\n\
+gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc\n\
+cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg\n\
+actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa\n\
+tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg\n\
+ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt\n\
+ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta\n\
+agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc\n\
+gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa\n\
+tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt\n\
+atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca\n\
+cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa\n\
+tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca\n\
+gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg\n\
+gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat\n\
+aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg\n\
+gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat\n\
+cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa\n\
+taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg\n\
+tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt\n\
+ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac\n\
+aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc\n\
+gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag\n\
+aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc\n\
+tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa\n\
+tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata\n\
+aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta\n\
+ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc\n\
+ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc\n\
+caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct\n\
+gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg\n\
+cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc\n\
+ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta\n\
+tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg\n\
+atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc\n\
+ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc\n\
+acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc\n\
+taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga\n\
+ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga\n\
+aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat\n\
+cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc\n\
+tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact\n\
+gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa\n\
+aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag\n\
+cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc\n\
+cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa\n\
+gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg\n\
+cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg\n\
+gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca\n\
+agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac\n\
+aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt\n\
+aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg\n\
+cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt\n\
+agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg\n\
+cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa\n\
+agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga\n\
+gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta\n\
+aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata\n\
+agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc\n\
+cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc\n\
+agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca\n\
+ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga\n\
+tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag\n\
+gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat\n\
+gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt\n\
+ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg\n\
+gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc\n\
+atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc\n\
+tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata\n\
+ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg\n\
+tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag\n\
+cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg\n\
+ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat\n\
+aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg\n\
+gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat\n\
+ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag\n\
+atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac\n\
+aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct\n\
+gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga\n\
+atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt\n\
+aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt\n\
+tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg\n\
+ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta\n\
+gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac\n\
+cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct\n\
+ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga\n\
+ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg\n\
+ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat\n\
+cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga\n\
+tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt\n\
+tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc\n\
+cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt\n\
+gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct\n\
+ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt\n\
+ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa\n\
+tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc\n\
+agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta\n\
+ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc\n\
+cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct\n\
+agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc\n\
+tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc\n\
+gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga\n\
+ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa\n\
+ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca\n\
+agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata\n\
+attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact\n\
+ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat\n\
+agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat\n\
+aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata\n\
+gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta\n\
+gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg\n\
+ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac\n\
+gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata\n\
+ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat\n\
+taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta\n\
+aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata\n\
+tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata\n\
+ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga\n\
+agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt\n\
+ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt\n\
+agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg\n\
+gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa\n\
+tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg\n\
+gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct\n\
+cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc\n\
+ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta\n\
+cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt\n\
+gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc\n\
+gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc\n\
+tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt\n\
+cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca\n\
+aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac\n\
+ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac\n\
+gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag\n\
+aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga\n\
+gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct\n\
+aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta\n\
+gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat\n\
+agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat\n\
+caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta\n\
+gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta\n\
+aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt\n\
+tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt\n\
+tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc\n\
+ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg\n\
+ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg\n\
+gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa\n\
+ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa\n\
+aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa\n\
+tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat\n\
+acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac\n\
+atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga\n\
+gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac\n\
+tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc\n\
+cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa\n\
+gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg\n\
+acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga\n\
+acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga\n\
+attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg\n\
+tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt\n\
+cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag\n\
+aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac\n\
+ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac\n\
+tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat\n\
+gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga\n\
+gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc\n\
+acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta\n\
+gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac\n\
+gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc\n\
+ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt\n\
+taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg\n\
+agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa\n\
+gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag\n\
+ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc\n\
+accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag\n\
+tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact\n\
+taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga\n\
+catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat\n\
+tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga\n\
+ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg\n\
+aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa\n\
+atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa\n\
+tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt\n\
+ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact\n\
+tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt\n\
+aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat\n\
+agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc\n\
+acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc\n\
+aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct\n\
+ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat\n\
+gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat\n\
+taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata\n\
+taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga\n\
+tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat\n\
+gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg\n\
+ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa\n\
+atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat\n\
+tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat\n\
+cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt\n\
+aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac\n\
+taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag\n\
+caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata\n\
+ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct\n\
+tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac\n\
+tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg\n\
+gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta\n\
+gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat\n\
+gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg\n\
+ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa\n\
+tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa\n\
+taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac\n\
+gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt\n\
+ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga\n\
+gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca\n\
+tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc\n\
+ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt\n\
+tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc\n\
+cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat\n\
+ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg\n\
+caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg\n\
+cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat\n\
+gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat\n\
+cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg\n\
+taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat\n\
+tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata\n\
+taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc\n\
+tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac\n\
+tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt\n\
+tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt\n\
+ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt\n\
+aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg\n\
+atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga\n\
+actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta\n\
+gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga\n\
+ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga\n\
+gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct\n\
+tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc\n\
+aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta\n\
+atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt\n\
+catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc\n\
+taaagataactctagtaaggccaactcccttcaatgctgttgccagttataatccaagag\n\
+ctgtccttttctgaaccatagcggcttctgaagcgaactagaagcaaagttggttctagc\n\
+cagacagccacataccctgtacgggtgtattactaaaactggtccggtattagttcacca\n\
+agggaggaattaggcaaaggatctaggtatgcaagtcggagtattacatccctaccctga\n\
+atccatcaataggttcctctgtactggccttcgcaatgagtattcaaggttgtacagccg\n\
+tataataataagatagtgactatgaacgggaagtaacccgctcaccttccccaaaacatt\n\
+gttatatctaagtattaaagtctgccgtagtgttaatactcgaaaataaacaactggcaa\n\
+attacaccgcacttaagccgcttttgatttatatttttccaatgcgcttttaaaaataat\n\
+tcagtcctacatactaattaagacccttaaacggagatatcacaagttaagttttaacca\n\
+tctcgactaggtggaactatagatacccaactcaatttatcattacctgtaatgttccta\n\
+gaaggattgcatttcatgtcaagacggtggagtttcacagcgaaacttcagtgtgaacag\n\
+attctgagaaatcacctaaacctattagtcagagcacccggttagaaccagttgtcaaaa\n\
+aatagagcggttgcatgagacagaagtaacgatgagatccgttgtaacgttgagacatct\n\
+ggcctatcgtcaatacagtcctcccttaaaaatatttttaaatactaggcaaacccaaca\n\
+taggttagtcctatgtgatacgccacatggtatatcattttgtaacgttacctagggata\n\
+atcaggaagtggaattacgcaaaagtagacagtgaaatgcttagggttatagtctagtcc\n\
+aaagataaaggataaagcacgtcagagaactatattagccgaatgggaatcattgttagg\n\
+agactgtggatcatgtctaaaaagcaacgcagaaacagtcatcgaaaaaatctcgttttt\n\
+gtttgaatctaaaagagctttgatgaccgatagtacctgtatactagttactgtattacg\n\
+tgtctaatgatttcggattggggtccccagaatcagacgtcattgtagacgattcaagtt\n\
+taccaatttaatttcccagctctccttggagaactatcgccaataattgcagtcactttc\n\
+cttttctgaaacgataaagccgtcagagttctctgcaacgttggacttacctgaggttct\n\
+aacccactttcggttctaatagtagttaacgacacaacgaataacctttactgtggggct\n\
+ttcacgatattttttcgcttattattaatggttacgtcataagctggtgtccaaattaag\n\
+gttaccggcttcgcagagtagttgtatccaagtataacttccctaatcataagatcgagg\n\
+tagaaaattaatgctgtctctaaccgaacagatatgtcccactatgtggtatggacgttg\n\
+ctaattacttctgaagggaaattggtcattatggatacgtgtctaccatcaggtcggacg\n\
+cagatatggttctgtcttcagttgatccaccgttctttataggataataactgacgatta\n\
+aagattatggtaaatagattaagccaattctcttcttgtcagtgaagcatccttaactga\n\
+cttgctctgcagcccctcatacatttagctattcaaagtaccggctcgtttcaaactctc\n\
+ccacctttggaagaggttgtcaacttgataagtatatcatttacagcattttttcggacg\n\
+tacctctaatgtttcattgcagaaaattagttttttctatcgcacattttgcaagtaacg\n\
+ttagagacacaattatctgcgaatgaactgctagatctgacgaccgggagcctcgcaaat\n\
+atcaaaaaagactgacatatatcaaggagtcgttgacaagtgctggtaagtcaattggtt\n\
+tatctgtcccggcgtttcgatcttaagctgaccatgcacggcagagtaatgtcactctcg\n\
+ttcttacaagtctgtctccaagggtcggcaaaaaagacccctccattctcgagcccactc\n\
+acgatatgtagggacgacaacttgtgcggcttatgaattgtctggactgcgggcgagggt\n\
+ccatatctccgaagttagaagggacatacctttagatgataagatcaattcttattgacg\n\
+aaattcatccacaacggggaacaacttcaccctagacttacgtctgaaaagacacctagc\n\
+gtcttataaaaggtcagtgccccgtttcgtaaggctggaattacctacgcaaacttaaac\n\
+ctcgcgcccttccttacgtatcgacaagatagaggctatcgcgaatgtactacggaggca\n\
+tgaatcatatactagaaccaagtgcctgtgatattaacaagatgatccgacgcgagcacc\n\
+gtaattctaggcataaaactccagcaatttgggggccgaaaacaaatgacgttagctaat\n\
+taattatatgacatgatcaaaggaggtcaatcacgcatcgagttcgacgtatattcattg\n\
+aacttcgtgcgtttgaaagaaacttttatgaaggcaaaattgatcctgtctcctatttca\n\
+tgcgtacctcctagttgataattccccgagcagtggttaggacacttttgtcggtatcaa\n\
+gttccggtctcaaaacgtaaaattctgtaatctgtatggatggtctgtgaattagttaat\n\
+ttttatgaagtcgtcgagacgcagttcctattgatttattctaaacggagatgtgcttcg\n\
+tgggactcggaagtagatctgtgtttatgattattgctactttagatgctgactgttaac\n\
+tccgtgttgtttttcaaccgtatatcacaaccgaattggatagaacctatagtttcaagt\n\
+tctgccacaaggtatcatatttacagttagtgctggttgcttctttcaaacgtggtgagt\n\
+ttgtgctatcacgtcaacggtagagctcagtggaccgagtgcgcgttcaaccctgttcca\n\
+gagagggtgtgatagcacatataccacgctcgtcgaggcgttcatgatagtttgcaagag\n\
+ccggtgttaaacacatattattattgttatccaactaatcggacctatgcataaagcatt\n\
+gtctaaacagaataattgcctatatacggtagttttagtgatttatatcttagtatcagt\n\
+tagagcttcgaactcttcaggttcctcatatttaacgttcttcgaaagcgaaaacttcta\n\
+caaacgaatgtaagcggttttccaagtagtacctataaatcacagaaagatctgtctcag\n\
+tatagttgaaatggtattcagctagtgacgtgtaccaattatcatagttcactcaagcaa\n\
+gacgctcattaacgaatatagacaagacactatatcatataataaaaaagaacatggtgc\n\
+tcgaacatagttgaattcaccatattgaaggggaatgctgacatgtaattcgctactaga\n\
+cgatcaattccctacttgtcaaagttgaactggtacgttcttggaattaaatatgattgc\n\
+gctggaccaaattgcgacttcttgagtttcagggcaaacgattgagccggaggatgtccg\n\
+tctcttacctttcttgcttatgataaacgacggtccctgtacatcactgggaattctcag\n\
+caaaaataattgggtaaatcgagactcgatgtattcggccacaaaggtgttagacgttaa\n\
+agattattcaacggggcgataataggatcataaccggtatgcaagcgcattgaaagagcc\n\
+atgagatccttatccgataaacgctgcacggtatgtgcagccttattgtcgatcacgaat\n\
+ttataaatgtagtctgggctgtaagttgaagacctaagttataatgaagtgcaataccaa\n\
+atcgattcatagtggattatcagactcaagatatctcctgataaattacagttgttaaga\n\
+tacggataaaatgagatttaagattagcagcctctaatctgtttcaatcccgttggaatg\n\
+tggtatgcgatcaaggttaagttaaaatcaagcctgtcttcagtcttgattcttgttctg\n\
+ccatcgcatgcggtctacgtgagttaatatgtagcttacgttctagcttgtgctaatctg\n\
+agtatagattcgtagaggaatattatcaagcttccacgcctcaacgtacgtgtattggtc\n\
+acacaagacactaaaagtggaagtagcgtaaactatagtctagttgttaaatgctcagtt\n\
+cttgttatattcgatatactcttggctaatttatgtctgagtatataaaattaatgatat\n\
+taacttgcatttcacggatcccttagaaaaagattttgaccgagcgcattataaacggtt\n\
+acaccgaatcaatagaagcatacccaatagctttctttgaatttattgcctgcgcaactt\n\
+ggctgactctctagatccgaataattctatatggtcgtgacgaaactagttcattactgt\n\
+ttaaaatgccaacatgtcttttgggccgataatggctctttgcaaaattactcaatgata\n\
+cgattgatcaaagcggtagttgctagtggtagcatgtaagtctatcaaatgtctgattat\n\
+ccgaaaatcttccaaaagagtccacgtaccatatctatctcatagcgacgcgaggggaac\n\
+cttatctaactatcattccatttaccgggtgactctcgatgcaggatccgattgggataa\n\
+attgcccagaaatggctcattcctgactaagggtaaggccgttctcagcaagggaacccc\n\
+gcgaatctaggcttataccatctagattgttaactacttgcctgtagttctacagccata\n\
+ctggacagttgtttctaaatgatcgggattcatgctagcactcctctgaatgcaccgcgt\n\
+aagtttaactattacgtccgtgggcagataaggatggaggctgtatgtatcttaactgtt\n\
+acctaatatggctggtaattatcaaagtaaggaccttaatgccatagcgctagcaatcgc\n\
+tttgtatactgaccatgtgccaacctctcttaatctgtaaaatataatgtcttagctaac\n\
+tgtggacgatcatgtctctgcctagagcttcgctgtatcaattcctatagccagcgtact\n\
+agtgacacaacaacaccgtgtgagaaaagatattagtccttacgtctgtctctctacagc\n\
+ttattgatgaggattgaacatggacatatagctccccctcaaaagcagatgctacctctt\n\
+tattccattctcgaacatttgccgaacttaatttcgacaaacctgaggtcacgtcttaat\n\
+ttatcggtaacgtcacgtccctttgagactggataaatatattaccaggggccaacgagc\n\
+aattgttggaggcgcttctataatacaaggtgtcttgtcaaagaaagacggcgtgcgtct\n\
+cgtgcaactcacttaaccaatattaatgtgaaacccccctctctcacatcttatgcggtg\n\
+tactgccctggtacatttcctgtacaggactccaacagtgtagattcctaagatagctgt\n\
+tggagttgcctcacgccagatcgaaaaactgaataaactagtgagctgagctgcagaaat\n\
+accgcttaattacttatgactagttcaaagggacctacgtgatgtcagacattgcaagga\n\
+agaaattaggtttgtgcgtcattttggctggactagcactccttacttcccctactattc\n\
+aaatgtcgtaaacagcatgagacaggatcgtgctgacatttaaggtctattgggaacgag\n\
+gctacctttggtcgcgcgctcgcgttctccgaatgaccgaaatgcatgagcacagtatgc\n\
+aattgcttatagatctaaggtctggtcgttgaaaccaagcacgtaggcctgggaaatcag\n\
+ttcttcctcagcaactacacaaaagcgtccaagcattagtacttgtagtaaatgtccgaa\n\
+cctatgcgctcatttgaaagtcaaaaaatatttttaagcagtaggcacctaacccgattc\n\
+ctctacttagtagctttctttgattctcagaattgactgcaatatcactgcacaattctg\n\
+tgccattactagacttctctgtattaacgtctcatcttactaacactcgcctaggacaca\n\
+tctgagagtgaagtatttcaatacatttactgaaatcttcagttctaaaatccccgaata\n\
+aggctcttatcggtttggccaacacaagaaaaaaacttcttgcaccactcaccttcatac\n\
+gcaggagcctggggaacttagtaataactatttcggcagacaaagcttataacaagttgc\n\
+cggcgcgtataatatttaaaagaccccttgagctgctcaattaaaacgctcacctggtat\n\
+aggctattagatagtgccgtcttagtaaggggcgggaattatcggataaactgatatttt\n\
+gataaaataaccgacttgttcacgacataagtcactaaggagattttatctttctccaaa\n\
+gtatatcttccttggataatttcaaagcgctgcaatttaagttctgttactagtttatgc\n\
+tgctgggaggtgaccggaaggcgtagtaatctagaggcaaattataagaagttcatcata\n\
+tcattttcgactacaaaaacaaggtgttgtatgccggcgcattgtgtaaactggacgagt\n\
+accctagatggaaaattatacgttaagccaagatttcgatgtaatgataattacctacac\n\
+atttttgctatccataggaacaagagctgttctataggctcgtggcatacgaacatttgc\n\
+tgccgctatgaatattggaagctcttcaactacagactctattcttaattgccgtcgaaa\n\
+atgggccgaatcggctattattaatactcggtttttccgaggggattgttgtcgacagtc\n\
+gtaattattattaatattgatgttggtgaggtcatttaaatacaaccttgcagacaatga\n\
+ataagggatccaatctctcatactccttttacaattgctcatgcccctatgcaaacctta\n\
+tgccgccacacctccgcaactctctcttctgaactgtaagtagcttcattactggtttga\n\
+gactatactgaagctgatgacattctaaaatggctattttcgaatgtgattcataatgtt\n\
+tatcgtttgggatggcagaatcacgttatttttgatatagcccgggtattctattgtata\n\
+gaacgtatgctacaagtcattccccgaagaagactagaagtaaacaacatgcgaccatcg\n\
+ttaagccacgcaaggctgtagctttatttcccgataacctatcttccataaatagcggac\n\
+agcaggatactgacgctcaacatcagtggttatggtctaatttttaacttttaataaggt\n\
+aacttcagcaggcatacacagtaactctttaatttataatcaaattagaagtctgacact\n\
+tcttatatttttctatcatccaacgcgatcgcccattagcttattgtgttactaataacg\n\
+tatctaaaccaatccttttcaagctactgcctatattgtcaatatatacaaacaacagga\n\
+tagtaggctgcttaaaaaatattgtcaaccgtgtacgctttacaatacccggaaatcaca\n\
+aactttgtagacaacgagtgaaatttatacactacgaagggccagcgtacaagacccatg\n\
+aattaggcgatatgtttattctgacatattggtttatccttaatctgtcgctgtaaaatg\n\
+aagccgcccccatccctgcgaattttttttcgaagattcacgactgaaatataaatacgt\n\
+ttggctatatttatgttggagggaggcaatagcctttactgttaaccgaagatttagcca\n\
+gtgagtgtgacactaaaacactggaataaatgcaggcgttcttctgggtaaaaggtttag\n\
+tcaatctcgcctataagttcatatagctctggatataattatctggcccatgcatttatc\n\
+atggcgcttggtgccctgtgtgaagccggcctctcatattgaaggtccgaagtattccat\n\
+gtacattaagatcactctctcattcatgcatcttggcttaacaaatctggttgtccaagc\n\
+tttccaggcacgtatggtacaaattcggatcgaatacttataaaaatgatatgttaaact\n\
+gtctaaaacgctcatctacaaagtaaagtgcactaaccaatagagtctcaagaccgtgta\n\
+atgctggtgcactgaatgtgtaatacggttagaagggattagttatgttacaaatccatt\n\
+gaaaacttaagaagcattgcgtgctcggagggtgcatcttttatcaagagactaacatta\n\
+ttttcaacgacgtacatgctttacaatagggtacttatcaaacgccgagaaacgcgccta\n\
+tagtgatgttatgattatgacccgatatccattggaccgaattttatgtaggttcccagc\n\
+gtactcgcgtaatatctcggtattgccataatgtaatacttgtcggtctctcccagatga\n\
+aaaagcgttacagagtatttcaatgaaaaacagcgcgcaacgtcaatacctttaggggta\n\
+acggccgctgatttcatatagatatacgataagttggtatagctctactaggtggcatcc\n\
+acaatcgttgcatttactatagctggttacaatcataatctataccgttccttacatact\n\
+accatagcgggatagcgtttttttgccgttgattgggtttaagaggatgtcagtctcatt\n\
+atatccgattcggtgggagagccgttgttttcaaatcgcacactttgtgacataatgtac\n\
+aagataacaaaactgatataagatataaactgtcaatatcaccttgacacttgaatcaaa\n\
+gtaaattaactcgcaaatataatttgactaattgggtgcagatttctcaattaataaaaa\n\
+aatggcaccggatgggcttacaagccccttatcattcacttgtatcatgatttccaagaa\n\
+caatagaatttgctagcaagtatgaacagagattcgaattgcatccacagtacgccggag\n\
+cgtttattttaatgtggatatgacgatgtactgttggcggcatttgctagtaaccggtcc\n\
+ttatttacgtagcgcacacgtaagcatgtctgggagaaatatggtggtacaatctcagag\n\
+aaagattacagtttggtttaaataggacttatcgggtcggaagtggaacttaataagcag\n\
+tacacaattgggcaacagacgtcttgcctattacaataggattacaatgcgttagatttc\n\
+agacacgttcgtgtttggctattcgtcaattccctaaatagttagacgatcaactattat\n\
+caaagtgattctttgttcatcctccattcatgtaacagatggcacactacgcataacgcc\n\
+gaggaattttaacgagatttaagagagcagttcgggcacaacccacttgactttataaca\n\
+gctcggcagcataaacggtaatatgtgacaaatttccaaacgttataagaacgtatgtgt\n\
+acttagaaaactaagtggttcatgttcaacagatgtgacgcagcaagcctaacttatcta\n\
+ttggttttgctataaaagaacaaagttacacagaatcctaagggcttgtttcacacttat\n\
+gcctagtgcttcaccatcttaaaatagcgaaaccggcacgaatcaaaccttaaaacaatg\n\
+cgcagatattggtgatggtgactccgggtatgataatggtaactgttgaccagcgcccac\n\
+ctcatcgaagtatagaaagtggttaggataaggatgagaccgaacttatttccggccata\n\
+actttagattttctacctagtacacaacatcagggcggacacgaaaccgccatcacatca\n\
+tataccaggtttaatttgcttaatgggggaagtgtcaacgaaccttcgaactttagcagg\n\
+catatggccattatatatggccccagagcagaatgctacagcagacaaaatttggattta\n\
+tgtagtttaatacctatcaaacttggtgtgaccatacttgtctaacgacagtgcacaaag\n\
+tgtaagttacaattattactactcagcagcttctgcaatgataaaatcttatcatacacg\n\
+tcacatatgataatatctacttagggggaacgggctccacaacctacatagtactcaata\n\
+cttacactattcgacaggcacaccaaacctgtacagtcccaaaagattgagtcaactttg\n\
+cagtactgcagatcacagtaatagcttagttagcgagtcaaaattagttttctacgagac\n\
+tgcacgaccgtgcaaatttccgatgtgttggctacaaatagcaacgtatgaatttgtttg\n\
+aagccacgtaaactgtacaaccttagagataagtctcaggctactaaaaacacgttgtgg\n\
+cactaacaggatcatggttgattcttacttattcggctgaccggcccaataagtaacctt\n\
+caactagaacagaataatcgggagtagtttaattcagtcaaggtgcaggtctcattgtaa\n\
+ctaacaagctctgtgtaaccaagttaaaatcgttttcttagcggattccctacttatgga\n\
+tttgagctcgtccacaatattcgatacaagaagtttgtggtccgtaacaacgaaatttta\n\
+attacgctgtgcagcctcatccaaggaattaatagaaggttgatggtaggctccgaacgc\n\
+tccatgattataatcaagtggactgtgcagtaaacgaggaaggtatcctgacgtcgtggt\n\
+gttcgtttttgttatttgtgccctatacgagtagataaaccatgaacagcacagtgtgaa\n\
+cccatggttgattttaggctaccttatttttaatttccgttacacagaaacgaattccac\n\
+aactaacatgccattaatttttcgatatcttataaaagatggtcgaaattcattcattta\n\
+ttttttttcggttctcgaaagtcaactaagctgtcgcgttttgtttctctttagaggtaa\n\
+aagtggctttgatctcctacgtttggatactagtcaaccattactccatttgatccgtga\n\
+gtatcacctgtctaacatccagcattatgactcctcggcgaagaaaagacacacttctta\n\
+gagtcgatgtgtattagctagggacacagttgtttaatacgatagtgagcccagggaggg\n\
+cagtgcgtcccccagtagatttattcagctagtgtaagtataagatatctcacccacgag\n\
+gttcaagtgatatgcagtcttagaataatacttatcctgaatttcgatattatgggtact\n\
+tcaataatccgctagcgctactttatgtctcgttggacagcaggacacatggcagtctta\n\
+aacactaaagacatcacctgaatgaatgtaatgggattacaagaatcaatgaggtattat\n\
+atacgacgtaggaaactctggatatatacagtaatctagttacgccatcgcacttcattc\n\
+ctctggaaacttagaagacatcagctgtacgtggaggaaccagacccccgtatgtagcca\n\
+aatagaaccaaagttgcttatacaaacacacccaatgacaatggaccgctggagttcgta\n\
+aactcggaacgtagtactgcacaaacccagcatttagcaataggagctacgtatgcaact\n\
+cccacgtggtaataccttcaagctatcaatatataggtgcctagctaatcgcattcgcaa\n\
+gcagtattcaagcttgtaaaccagtataataattacagaggctctatgaaacccaacttt\n\
+ccagctaaaagtcccaattaaatggttatttcgtacttttaaagtcgcccgttctgttat\n\
+tacgcgaattgattctactccaaaattaaacacaaattatcaaccgtttcatttatattt\n\
+gtcaatgcagctgtttaaaataaggctctactaaattataattaagacacttattaccag\n\
+atttctctagttaagtttgaaccagctcgactaccgcgaaagatacattcccttctctat\n\
+ttttcagttcatctatgggtcagagaagcattgaatttattctattcaccctcgtcgttc\n\
+acagcgaatcgtcagtgtgatcagtgtatgagaaatatcctaaaccgtttagtcagacca\n\
+cacgcttagaacaagtggtctaaaaagactgccctggaaggagtaagaagtatacagctg\n\
+atccggtgtatccttcagtcatctgccctatactaattacacgacgcaaggaaaaatagg\n\
+tttattttctaggcaaacccttcataggtgactccgatgtgttacgaatcatgcttgaga\n\
+atgtgctatcgttaccgacggataataacgatctccaatgaaccaaatgtagaatgtcta\n\
+ttgattacccttttactattcgacttagagataggagatagaacctcagtgtactttttt\n\
+agccgaatgggaatctttgggaggtgaatggccataaggtcgtaaatccaaccctcttaa\n\
+agtcttccatattatatcgttgttcgtggaatcgataacagatttgttgacccatagtaa\n\
+atgtatactagtttatgttgtaagtgtagattgttttccgattgccgtccaaactttatg\n\
+tcgtaattgtagaccagtaaagttgaccaaggtaagtgcccagcgatcctgcgagatcga\n\
+tcgccaatttttccagtcactgtaagtgtaggtttagataaagccgtatgagttatatca\n\
+taagggcctcggaaagcagcttcgaaccaaagttcccttataatagtagtttaactataa\n\
+aagtatatactggtctgtcgccctttcacgatttgttttaccggtttatgaagcgttacg\n\
+tcattagagcggctccaatttaaggttaacggcttccatgtgtagttgtatacaaggata\n\
+acttaaagtatctgttcagcgagctagttaagttatcctcgatagaacacaactcagagg\n\
+tcccaagatcgggtttgcaacttgctaatttattctcaaggcaaattgggaattatcgat\n\
+acctgtataccataaggtcgctcgatgtgatgcttatgtcttctggtgatcctaccttag\n\
+ttagtgctgattaacggaacattaatgtttatcgttttgagatttagccaattctctgat\n\
+tctaactcaagatgccttatctgacgtgctatgcagcccctaagtattttacattgtaat\n\
+aggacacgctcctttaaaactcgccaaaaggtcgttgtggttctctactggttaactata\n\
+taatttacagctttgttgagctagttcctctttggtttaagtcctcaatattagttggtt\n\
+cgagcgataagttggctagttaccttagtcactatattagatccgaatgttatgcttcat\n\
+ctgaagaccgccaccctccaaaatttcttttaagactcacttattgcaaggtgtaggtga\n\
+attcggctcgtttctcaagtggtgtatctgtacacgagtttccatattttcatcaacagc\n\
+caccgcacacttatgtcactctaggtattaaaagtcgctctacaaggggacgcaattaag\n\
+aaacagacatgctagtcaaaaataaacatagcgaggcaccactaattcggccgcttatca\n\
+atgggatgctctgcgcgagacgcgccagagctcagtagttagttcggacatacatttact\n\
+tcagatgatcaattagttttctacaaatgcttactctaccccgaaaaaagtcaccagact\n\
+cttacgtctctttagtatccttccgtcttatataaggtcagtcccccgtttcggtaccct\n\
+ggaatttactaagaataatgaaacagcccccaaggacgtacgtttacaaatgatagacca\n\
+gatcgcctagcttattccgacgcatgttgcatagaattgaaccaacggaatgtgagagta\n\
+actagatgagccgaccacagcacccgtttgcgtcgcagaatacgcctgatagttcggcca\n\
+cgaaatcatatgtcctttgagtattaagtatttgtaatgatcaatcgagctcaagcaagc\n\
+ttacacttcctcggatattcagggaacttagtgcctttgaaagatacgttgatcaacgaa\n\
+aaattgataatggctcatatggaatgcctacctcatagtgctgaattaacacagcactgc\n\
+ggacctaacttttcgaggtttcaagttcacgtctcaaaacctaataggctggaatatgta\n\
+gggatcctcggtgaatttgtgattgggtttgttgtagtactgaccaagtgaatattcttt\n\
+ttttctaaaagcagatctgctgccgggcactacgaaggagatctctgtgtatcattattg\n\
+cttcttgacatgatgactcttaaatcactgtgggtgtgcaaaacgatagcacaacccaat\n\
+tcgatagtacatattgttgatacttcgcactaaaccgttcatatttaaaggttgtgctcc\n\
+ttccttcgttaaatactggtgacttggtcctatctactattagctagacctctggggaac\n\
+cacgcccccgtaaaacctgtgcaagagagggggtcatacatcttagacatcgcgcctcca\n\
+ccagggaagcattgggtgattgaccaggtgtgtaacaaatatgattattcttatactaat\n\
+attagcaaagatgcataatgatttgtattaaatgtataattgaattgataagggtctttt\n\
+agtcagtgatagagtagtataaggtagacattagaactcttaaccggacgcagatttttc\n\
+ggtcttagtaagccaattagtcgacaaaacaaggtaagagcggttactagtagtacctat\n\
+aatgcactgaatcttcggtcgaagtatagttctaatgctatgcagattgtgacggcgaca\n\
+aatgttcagacttatatcatgaaacaagctcttgtaagtattgacaaatgaaaagattga\n\
+atatttttaaatacaaaatgcgcctacttattaggggaattaaccagattgaaggccaat\n\
+cctcacatgtaatgagataatagacgataaatgaaattcttgtaatagttgaactgctac\n\
+gtgatgggtattatatatgattgagatcctccaattgccgacgtcttgtcttgatgccca\n\
+aaagattgtcaacgaggagctccctcgcgtacctgtcgtccgtatcataaacgacgcgac\n\
+atgtacagcactccgaagtataagcaataataatgcgggtaatccagactagatcttttc\n\
+ggactcaatgcggtttcacggtaaacatgattaataccggagagtagtcgagcttatcag\n\
+cgatgcaagcgaattcattgtgccaggagatacgttgcagataaaaccggcaacgtatgt\n\
+caacaagttttggcgatctcgttgtttgtattcgacgaggcgcgggaacttcaagaacta\n\
+tcgtatattcaagtccattaccttttagtttcagactggtggagctgactaaagttatat\n\
+catcattttgtacactggtttagttaacgataatttcagatttaacatgaccagacgata\n\
+atcgctgtatatccagttggaatgtggtttgccagaaaggttaacttataatcaagcctc\n\
+tcttcagtcttgattcgtcgtatcccatccattgcgctatacctcagtgtatttggagct\n\
+gtagttataccgtgtgctaagatcagtagacatgacgagagcaatattatctaccttaca\n\
+agcatcaacggacgtctagtcggaacaaaagactctaaaactcgaacttcaggttaatat\n\
+actatagttctgtattcagcagttattcttatattcgatattatcttgcctattggatgt\n\
+ctgactttagtatattaatcatagtatctgccatgtaaaggtgccagtactaaatctgtt\n\
+tcacagtgcgaattataaacggttacaaccattaaagacaacaagaccctatagctttat\n\
+ttgaattttgtcaatgcgcaacttggagctcgcgatacatcccaattagtctatagggtc\n\
+gggacgattctacggcatttctggttataatgacaacatggattgtggcccgagaatcgc\n\
+tctttcattaattaagcaatcattacagtcttataagcgctacttccgagtggtagcagg\n\
+taactcgatataaggtcgcatgagccgaatagcttaaaaaacaggccaccgaacattgat\n\
+agagaataccgaccacagcgcaacctttgattactttcattaaattgtacggctcactcg\n\
+acatcaagcttaagattgcgataatgtgaactcaaatggatcagtactgaagaaccgtaa\n\
+cccacttcgcagaaagcgtacccagagaagatacgctgttacaatatacagggtgaaatt\n\
+attgcctgttcttcgtaaccatttcgccaaacttggttagaaatgatagccattcatgat\n\
+agaaataagctgaatgataccagtatctttaactatgtagtcagggggaagataacgatg\n\
+gtccatgtatgtttctgatatgtgacagtattggccgcgtaatttgctaacgaagctact\n\
+taatgcctttgagcttcatatagatttctttaatcaaaatcggcaaaaagatagtatgag\n\
+ctataatatatgctagtagagaactctggaccatcatctatatgaatactgattcgagcg\n\
+tgcaattactttagcctgcgtactactgactctacaaaacactctgagataagtttgtag\n\
+tcagtaagtcgctctctataaaccttttggatgaccattgtacagccacttatagatccc\n\
+aataaatagcacaggagacagagtttttcaatgctcgatcatttgccgatagtattttcg\n\
+tctaacctcagggcacctattatttgatacctaacctaacggccctttcacaatggagaa\n\
+atatatgacatcgggacaaacacaaatggtgggtggccaggagatatgacatggtggcgt\n\
+ctctaagaaacacggactccctctaggcaaactcacgtaaccaattttaatgtcaaacaa\n\
+aacgctcgaaaagattttgccgtgtaatgacctggtacattgactggtcaggaatacatc\n\
+actgtagttgccgtagtgtcctgttggtgttccatcaagacacatcgtataacgcaattt\n\
+acgacggacatcagatcaagttatacagattatttaagtatcacgtgtgcattgggacat\n\
+aagggatctcacacatgccttggaacatttttgctttgtgccgctttttcgctgcactac\n\
+caatccttacttaccagtatattcaaaggtcgttaacagaatgagaaaggttagggctct\n\
+aagttatcgtcgattgggatagacgagacatttgcgagcgccctccacggatacgaatct\n\
+cccatatcaatgtgaactggatgctatgcagtttagttcttacgtctcctagtggtaaaa\n\
+atcaaagtagcactcgcatagcagttattcagaacctaatacacaaaaccgtcaaacatt\n\
+ttctaattctaggtatgggccgatcataggagctaaggtgaaactcataaatgttttgtt\n\
+agatctagcatcctaaaaagatgcatatactgagtagctggcgtgcattctctcaattgt\n\
+atcctttttaactgaactagtcggtcccatttcgtgactgagatctattaaccgataaga\n\
+ttaataacactcgcattcgtatcagctcagagtgaagtttttcaataatttgactgatat\n\
+attaacttctaaaataaccctttaagcctcggatccgtttcccaatcacatcaaaaattc\n\
+ttattccaactatctacggattaacaacgtgcatggggatcgtagtaagaacttgttccg\n\
+atcactttgagtatatcaagttgacggcccggttattattgaatagaaacattcacctgc\n\
+taaattaaataccgcacatcggatacccgatttcagagggccgtcttactaagggcaggc\n\
+tttgttcggtttaactgagatgttcattattttacagtatgcttcaactaatatgtaacg\n\
+aaggacagtggatctgtctccatagtagatcttcagtcgtgaatttcataccgctcctat\n\
+ttaagttcgcgttcgagttgttgatcatggcacgtgaaagcaacccctagtattctagac\n\
+gaaaattttttctagttcatctgataatttgccaattcaaaaacaaccgctggtttcccg\n\
+gcgcattctctaaaatggaagtcgaacctagagccattatttgtcggtaacccatgagtt\n\
+ccttcttttcagaagttaatacactgtggtcctatacagaggaaaaacagcggttatata\n\
+cgatcgtggcataacaacattggatcaagatagcaatttggctacctattctaattctca\n\
+ctagattcggtattccactacaatatcggcagattaggattggatgaataatcggtgttt\n\
+aagtccggttgcgtctccaatctcctaatttttattaatattgatcttggtgacctattg\n\
+taaataaaaacttcaagactttgaataacggtgaaaagatagaagactcatttgaaaatg\n\
+gatcatccacagatccaaacattagcaagacactaatccccaactagctattctgatcgc\n\
+gatcgtgctgcagtactcctgtcacaatagtctgttcatgatctaattctttttgggctt\n\
+tgttcgatggtgattcagaatctttatccggtcgcttccctgtagctactttgtggggat\n\
+attgcccggggattatagggttgagatcgtttcctaaaagtatttaaaccaagtagactt\n\
+caactaaactacatcagaacatcgtgaagacaccatacgcggtacctttatttaccgata\n\
+acatttcttcaagaaataccggtaagcagcataatgaccctaaacagctcggggtatcgt\n\
+cgtagttttaaattttatttaggttactgctcaaggaataaaaactaactatttaattta\n\
+taataatattacaaggctcacactgattagatttgtctataagacttcgcgatcccccat\n\
+taccggattgtcttaagaataaactagataaaccatgcattttctagataaggcctttag\n\
+tctaattagatacaaaaaacacgatagttgcatccttaatttattgtgtcaaacctggaa\n\
+ccttttaattacccgcaaatcactttatgtcgagactacctctgaaatttattatctacc\n\
+taccgcatgaggacttgaaccatcttgtaggagttatgtttattagctaagattcgttta\n\
+tcctgtagcggtccatgtatattcaacaagcaaaaagcactcagaattgtttttagttga\n\
+gtcaagactgatatataaataagtttccctagttttttcgtggtgggacgatattgaatt\n\
+gaatcttaaccgaagagtttcccactctgtcgcacaataatacacgccaatatttccagc\n\
+cctgcttatgccttaatcggttactcaatctcccattgaagttcattttgatctgcatag\n\
+aagtttcgggcccagccttttttctgccaccttcctccaagctctgtagacgcactctaa\n\
+gattgatgctcacatgtattaattctacattaacataaatatataagtcatgcatcttcg\n\
+agtaaaatatctggttctccaacatgtcctggcacgtatcgttataatgcccatacatgt\n\
+agtattaaaatgattgggttaactggatattaagatcatcgaaattgtaaagtcaaatta\n\
+acaatactgtctcaagaccgtgtattcctcgtgctcggaagggctattacgcttacttcc\n\
+gttttggtatcttaatatgactttcaaaaattaagttgcagtgagtcctacctgcgtgca\n\
+tcggttagcaagagtataaaagttgtttaaacgaactacttgctttacaataccggtcgt\n\
+atatatcgccgtgaatccagaagattgtcttctttggattatcaaccgagatcctgtgga\n\
+ccgatgttttgggaccttcacagaggactccaggtagagctcgcttttgcattaatctaa\n\
+gaattgtacctctctaaaagatctaaaacagtgaatgtgtatttcatggaaaaacacaga\n\
+gaaacgtaaattactttaggccgaaaggcacatgagttattatacatatacgagatggtg\n\
+gtatacatcgaattcggggcatacactatagttgcattgtatttagctgctttaaataat\n\
+atgatattaccttccttacataagacattaccggcataccctggttttcaacttgtgggg\n\
+ctttttgacgatcgcactctcatttgatccgagtagggcggtgacccctgcttttcaaat\n\
+acaaaaatttcgctatgaaggtaatagattacttttcgctgttatgatagaaacggtaaa\n\
+tttaaaattgaaacttctagaaaagtaaagtaacgagaaatgattttgtgaataatgcgg\n\
+tcatgattgcgcaagtaagaaaaaaaggcaaaaggatgcgcggaatagaaacttatcagt\n\
+cacgggtatcttgatttcattcttcttgtcaattgccgacataggatgaaatcagattcc\n\
+aatgcaatacacagtaacccccacccttgattgtaatgtcgatttgaagttgtacgcgtc\n\
+gacgaagtggatagtatacgggccttttgtacggtgcgatcaactatgaatctcggcgag\n\
+ttagatggtcgtacaatctcacacatagaggtcacttgcctgtaatgacgaattttcggc\n\
+taggtactcgaactttattagaagtaaaaatgtgggcaaaagaaggattccattttacaa\n\
+gacgattacaatgagttacatgtctctcaacgtagtctttccctagtagtctttgaacta\n\
+tttaggtactccagaaaattttagcaaagggtttctgtgtgaatccgccattcatgttta\n\
+tgatggaacaataagaataacgccctcgtatgttatcgacagtgaagtcagcagttcggc\n\
+caaaaacatattcaatttagtacagatccccagaagttaagctaagtgctctaaaatggc\n\
+ctaaacggttatcaaagtaggtctaattactatactaacgggtgcatcgtaataactgct\n\
+gtcgatgcaacactatatgatagtgtcgttttgctatatatgtacaatgtgacaaagaag\n\
+ccttagcgattcttgcaaacttaggacttcggattctcaatcttaaatgtccgaaaacgc\n\
+aaagattcaaaaatttaatctatgagcagatatgcctgatggtgactacgcgtatgttaa\n\
+ggctaaatgttgacaaccgcacacataatcgaactattgatagtcgggagcataaccagg\n\
+tgaacgtactttgttcacgacatttattgacatgttctaaatacgtctcaaaatcacggc\n\
+gcactagaaaacgcaatcaaatcattgtcctggtttaagggccgtaatgccggtagtgtc\n\
+aaacttcatgagaactttagctggcttttggccagtatttagggaccaagagcactagcc\n\
+ttaagctgaatattttgccatttatctactgttataactttaaaacttggtggcaccaga\n\
+cttgtcgatacacacgcatcaatctgtaacgtaaaaggtttactaagaacaagcgtagga\n\
+attgagtttatattatatttaaactaaaagatgatattagcttctgagggcgatagggct\n\
+ccaaatcataaagaggaatatattattacacgattagaaacccacaacatacctcgaatc\n\
+gcccaaaagtttgacgaaacttggcagtactccacatctcagtaatacagttgggagagt\n\
+ctcaaatgttgttttattactcaatgaaccaccctcataatttcactgctgttccattaa\n\
+atttgcaaacgatcatttgctttgaagaaacgtaaaatcgacaaaattacagataagtag\n\
+atgcataataaaaaaaactgctcgctataacacgatcatcgtgcattcttacttaggagc\n\
+atcacccgcacaataacgtaccttaaactacaacactattagaccgagtactgtaattca\n\
+cgaaagctcaagctcgcattgtaaagaacttgctctctcgtaaaatgtgataatagtttg\n\
+cggagaggattcaattattttccattgcacctactccactagattcgataaaagaaggtg\n\
+gtcctcccttaaaaagaaatgttaagtaacatcggaaccataagcaaagcatgtaagtga\n\
+accgtcatccttccctaagaaacataaaggtttttaataatgtcgactgtgaactataac\n\
+tgcatcctttcctgacctactccggttccttgttgttatttctgaacgagaccagtagat\n\
+aaacaatgtaaaccacagtgggtaccaatggtgcatgtgacgctaccgttgttttaagtg\n\
+cccgtacaaacataagaagtcataatcttacttgaaattaattttgccttttattttttt\n\
+tcaggctcgaaattaatgatttgttttttttgaccttctagttacgctaatatgcggtcg\n\
+cctgtggtttctattgagtcctataacgggatgggatctaatacgtttggttactagtaa\n\
+acaaggtataaatttgataccggagtatcaactgtataacatcaagctttatgactcata\n\
+cgcgaagtaatgacacaaggctttcaggagatcgcgagtacagagccactaaggggtgta\n\
+ttacgatagtgacaccaccgagcgcactcactccccaagtagatttatgatcctacgcta\n\
+agtattagatatataaccaaagaggttctagtcagtgcaactcttagaataataattagc\n\
+cggttttgcctttttaggcctaatgcaatattcagctagcccttatgtatctcgcgttcc\n\
+acagcaccactcatggcacgcgtttaaactaatcaaatataatctatgaatgttatgcca\n\
+gtacttgaataaatcaggttttttataagtccttgcatactctcgttatatactgttaga\n\
+gtcttaccccatagaaattctttcatctgcaaacttagaagaattctcagctacggggag\n\
+cataaagtccccaggatgttgacaaatacaacaaatgtggcttatacaaacactccatat\n\
+gaaaatcgaaccctcgtggtagttttagccgaaccttgtacggataaatccctccatttt\n\
+ccaatagcagatacctatcctactacctcgtggtattaaattaaagcttgaaatatagag\n\
+ctgcatagcttatccaattcccaagcacgagtctaccgtcgtaaccacgatttgatttac\n\
+agacgctagagcaaacccatctttaaacatataagtaaaaattaaagggtgagtgcgtac\n\
+gtgtttactagcaacttcgcttattaagacaattgtttataagccataattaaaaacata\n\
+tgttcaacaggttcattgatatttgtaattgcacaggtttttaataaggatctacgtaag\n\
+tataatgaacaaactttttaccagagttatattctgtactttgaaaatgctcctctaccg\n\
+ccttagagactttcaattagattttttgcagttaatctatgcgtaagtgaaccatgcaag\n\
+ggatgcgattcaaccgcctcgtgctaaccctatcgtctgtctcataactgtaggtctaat\n\
+ataattttcagttttcgaacacataaccctttgaaaatctgctatttaatgtctcacctg\n\
+catgcactatcttctatactgctcagaacggctatacgtcactatgctccaagtgacgat\n\
+ttaaacgaagcaaggaataataggtttattttagtgcaaaacaattaagtgcggactacg\n\
+tgctctttacaataagccttgtgattgggctataggttaagtcccatattaacgatctcc\n\
+aatgtacaaaatcgacaatcgctttgcattacccggttactagtcgaattacagatagct\n\
+gttagatactcactctaattttggacaacaatcccaatcttggggtcgtctatcgcctga\n\
+agctcgtaaatccttccatcttaaacgattacatattatagacttgttcggggtagagat\n\
+atcacagttgtgcaaacattgtaaatcgatactagtttatgttggtagtctagttgcttt\n\
+taccattccccgaaaaacttgatctactatttcgacaacagtaaacttgaactaggtaag\n\
+tgaaaacagagaatgcctcatagtgccactatttgtccactatatgtaagtgtagcttta\n\
+cataatccactatgactgagatcattacggcctaggaaagcagcgtagaaaaaaagggcc\n\
+cggatattacgactgtaactataaaactagttactggtagcgcgccatgtatagatttgt\n\
+tttaccggttgtggttgcgttaacgaatttcagccgcgaaaattgatccgttaaccagtc\n\
+catctcgacttctataaaacgataaagtaaagttgatgttcagcctccttcttatggttg\n\
+catcgagagtacactactcagtgggaaatagatcggggttcctacttcagattgtattat\n\
+ctaggcaattgccgattgtgccatacctggataaaataagctacctacatgtgatgctta\n\
+tctattatcgtcatactaccttagggtgtcctgttgaacgctacattaatctttagccgt\n\
+ttgagatgttccaatggataggagtctaacgcatgatgaagtttaggaaggcagagcatc\n\
+ccactaagtatgtgacagtgtatttcgaaacgagacgttataaatagaaaaaaggtcctt\n\
+ctggttctattctgctgaactattgaatggaaagattggttgacctacgtactatttgct\n\
+tgaagtcatcaatttgacggggtgagagacatatggtgcatactttacggactctatatt\n\
+ttagatcagaagcttagcagtcttctctacaccccctcacgacataattgcttttaagaa\n\
+tctatgtttgattcctctacgggaattcggatccgttcgcatgtgcggtttatctaaacc\n\
+aggggacatatgttcagctaaagcatacgaacactttgctaactagacgtatgtatagta\n\
+gctataaatcccgacgatatttacaaaaagaaatgagactcaaatatatacatagcgacc\n\
+ctacacttattcgcaccctgatctaggcgatcctagcacccacacccgaaagtgagcact\n\
+agtgtcttccgtattaaatttactgcagttgagattttagttgtctactaaggattactc\n\
+taacccgtaataaggatcaagactcggtactagctttactatcattccctatgtgttttc\n\
+ctaactcacaagggtacgtaccagcctatgtaattacaataatgataaagacacaaagga\n\
+agtaactttacaaatgagtctccagttacactagcttagtccctcccatcttgctttgaa\n\
+gtctaaatacgcaatctctgaggatatacagcagaagaacactcataacgttggagtcca\n\
+agaattagactcatagggcccccaacatttaatatgtactgtgagtttgaaggtgttcta\n\
+ttgttaattcctgctcttgatacatgacacgtactccgtgtttaaggcttcggactgact\n\
+ttctttcataagttgagcaacgaaaatttcagaatcgataagttggattcactaactaat\n\
+acggctgattgaaaactccactccggacctatatggtcgacctttatacgtaaccgatat\n\
+aaaacttataggctggtatatcgagccttcctagcgcaatttcggatggggtttcttcta\n\
+ctactcaacaacggaatagtctttgtttagtaaaccagagctcaggacgcccaatacgta\n\
+ggagagcgctgtggagcatgtgtcattatggactggagcactcttaaatcactctgcgtg\n\
+tgctaaacgatagatcataacatgtcctgagtaaattttcttgatacgtcgcaatatacc\n\
+gttattagttaaacgttctcatccgtcatgcgtgaaatacggctgtcgtgctcagatata\n\
+ctattagcgactcatctcgcctaacacgcacacgtataaactcggaatgactgccgctct\n\
+tacatattagaaatacagactacaccacggaagcattgggtcattctcaaccgctgtata\n\
+aaagatgattagtcttataataagattaccaaagaggcagaatcatgggtagtaaatcta\n\
+ttattcaagtgattaccgtcgtgtaggcagggagtgaggacgagatggtactcaggacaa\n\
+atattaaccggacgaagtggtttacgtcgtactttcactattagtagtaaatacaaggta\n\
+acaccggggaatagtactaaatataatgatatctatcttcgggagaacgagtcgtctatt\n\
+gctttgaacattctcaaggcgtaaaatgtgctgacttatagcatgatacaaccgattgtt\n\
+acttttgtctattcaaaagattgaatagttttttatacaaaagccgcatacttatgacgg\n\
+ctagtatacagtttcatcccctagcatcaatgctatggacagtattgaacttataggaaa\n\
+ttcttctaatagggcaaatccgtcgtgatgcctattttttttcagtcacatcctcaaatg\n\
+gcactagtattgtcgggatcccattaacaggctcaaccacgagctcacgcgaggacatgt\n\
+agtccgtatctttaacgaagcgacagcgacagaactcccatggataaccaattataaggc\n\
+ccgtaatcctctagacatcgtttaccaataaatccgctttctccgtaatcatgttgaata\n\
+ccccagagtagtccagatgataaccgatgaaacacaagtctttctcaatgcacttacggt\n\
+gaacttattaccgccaacgtagctcatcaaggttgcgacatctagttgtgtgtttgcgac\n\
+gagcccagcgaacttcatcaactttcgtatattcaacgccttgtaattttactttaagac\n\
+gcctggtgatgtagattcttagataatcagtttgttatcggctgtactttaccataattt\n\
+cacaggtttcaggtcaagaagattatagctgtatatacagttccatgctcggtgcacaga\n\
+aacgtgatcggataataatcaatcgcttatgtcgtctttaggcgtatccaatacatgccc\n\
+cgataccgcagtgtatttcgacatgtaggtataccgtcgcatttgagctcgagtcaggac\n\
+gtcagctagattagattccttaatagaatataccgacctctagtccgaactaaactatag\n\
+ataacgccaacttcaggttaattgtctagtcgtctgtttgcagatgggattcttagatga\n\
+gtgagtatcggccatattggttcgagcactttagtttttgatgcataggatatgcaatgt\n\
+atagctgaaagtactttatctgtttcaaactcacattgattaaaccggtaaacctttaaa\n\
+gactacaagaaaatattcagtgagggcaattttgtcaatcacaatcttccagctagagat\n\
+acttcacaatttgtcttgaggctacgcaacattagacggattttcgcgttttattgaaat\n\
+aatcgaggggcccaagagtatccatagttcattttgtaagatttctttacaggcttatta\n\
+cagcttcttcagactcctacatgcttacgagttatatgctagcatgtgaacaatagatta\n\
+atatacaggaaaacgtacattgagagagatgaccctacacagcgcaaccgttgagtactt\n\
+tcattaaagggtaacgctctcgagacagcatccttaagatggccttattgtcaaatcatt\n\
+tgcagaagtacgcaagatccctaaccaacgtagaagaatccctacaaacacatgagacgc\n\
+ggtgaaaatagacagggtgttagtattcaatcttcggagtatcaatttcgccaatcttgg\n\
+tgagaaagcataccctttcttcagagaaagaagatcaatcataacactatctttaacgag\n\
+gtacgcacgcgcatcattacctgcctccatggatctttaggatagcggaaagtattggca\n\
+gcgtattgtgatttcgttcctactttatcaatttcacattcatatacatgtcttttatca\n\
+aaatcgccaataagataggatgagctatattagatgctagtagagttcgcgccaacatca\n\
+tcgataggaatactcaggacagcgtgataggacttttcaatccctaatactctctataat\n\
+tataactctctcttaagtttggaggcagtaacgcgctctatataatcagtttgctgcacc\n\
+attcttcagcctctgatacatacaaataaattccacagcagtaagagggtttaattgaga\n\
+catcttgggaacttaggattttactctaacatcaccgaaacgattattggataccgtacc\n\
+taaacgaactttctcaaggcagtaatataggacatccgcaataacacaaatgctgcctcc\n\
+ccaggagttatgtcttcctggaggctatatcttacacccactcactataggcaaactaaa\n\
+gtttaaatgttgattgtctaaaaaaaagatagataagagttggccggcgtagcacatgcg\n\
+aaagtgaatcgtaagctataattctctggacttgaagttctgtcctgttcctctgcaaga\n\
+aacaaacttcctttaaagctatttacgacgcacatctcagcaagttataaacatgttgga\n\
+agtttctagtcggaattcccaaagaacggatctatctaatgcattcctacatttttcctg\n\
+tctgccgatggtgccatcctattcaaagaatttcttaaaagtagattaaatgggactttt\n\
+aacaatgagtaaccttacgcctctaagggttcctcgagtgccatacaccagtcaggtccg\n\
+agccacatacacggagaacattctaacatagcattctcaactcgatcatttgcaggttac\n\
+ttctttcctatcctagtgctaaaaatcatacttgcaatcccatagcacggattaagaacc\n\
+taagaaacaattcagtaaaacatgttcgaattcttggtatgggaacatcattgcagctat\n\
+ggtctaacgcattaatgtttgggtacatcttccatcatataaacaggaagagtctgacga\n\
+cagggagtgcttgcgatcatgtctatcattgtgaaatcaaattgtagctcacatgtcgtc\n\
+tatgagagcgtgtatccgataagatttagaaaaatagaagtcgtataagatctcactgaa\n\
+cttttgaatgaatgtgaagcatatatgatctgctttaataaaactttatccataggatac\n\
+gtttccaaatcaattcaataattattagtcaaaatagataaggatgaacaacctgaaggc\n\
+cgatcggacgtagaaagtggtcccatcactttgagttgatattgttgaaccacacgttat\n\
+tatggttttcaaacagtctcaggatattgtatatacagataatccgataccagttgtctg\n\
+acgcccctcttacgtaccccaccctttgtgacgtttaaagcagttgttcagtattttaaa\n\
+ctaggcggcaactaatttggaaagaagcacagtggatatgtctaaattcttgttattcag\n\
+gcctgaatttaatacaccgcatagttaacttcgcggtagagttgttcatcatgcctcctc\n\
+taagctaccacttctatgatacaccaatagttgttctacggaatctgataattggccaag\n\
+tcataaacttccgctgcgttcaacccccttgctcgaatatccaactcgaaaagacagcct\n\
+tttggtgtccggaacaaatcagttacttcttttctgatgttaattctctgtggtcagata\n\
+cagaccaaaaactccgcggatttaccatcctccaagaacaaatttgcatcaacatagcat\n\
+tttggctacatattctaagtctcaatagtttaggttttcaactacattatcccaacatta\n\
+ggattggaggaataatagctgggtaagtccccttgcgtctacaatcgactattttttatg\n\
+aatatgcttctgccgcacctatggttattaaaaaagtcatgactttgaagaaccctgaaa\n\
+agatagatgaatcaggtgtaatggcagcagccaaagagcatataattagcaacactctaa\n\
+gaacattatagatatgatgatagcgatcgtcatgatgttatccggtcacaatagtagctt\n\
+catcagctaattcgttttgccagtggtgacttgcgctggaagaatcgttatacggtccct\n\
+tccctcttgatacggtgggggcttattcaaccgcgtggattgggttgtcatacttgcatt\n\
+aaacgatgtaaaccatctagtagtcaactatactaaatcacaaaatagtgatcaatacat\n\
+acccgcttcatggttttaaccatttaattgattaaagatattccgctaagaaccattatc\n\
+tacctaaactgatcgccgtatcctagtagtttgaaatttgatgtaccgtaatgatcaacg\n\
+aagtaaaacgttatattgtatgtagaataataggtcttggagctaaatgatgtgattggt\n\
+agtgaagacttacccttacaactttaccggtttctcggaagaatatactagagaatcaat\n\
+gcatgggctacataagcactttagtctaatgagataaaaaatacacgagtcttccatcat\n\
+gaattttttgtcgaaaaactcgaacctggtaatttaaaccatatatctttatgtcgtcaa\n\
+taactctcatatgttttatataacttcccaatcacgacttgtaactgcttgttcgactga\n\
+gctgtttgagctatgaggccgggatccggttgagctacatctatttgctacaagaaaaat\n\
+gaaagcacatttgttgggagttctggctacactcatagagaaataagtggcccgagtggg\n\
+tgcggcctgcctccatattcaagtgtatcttaaaccaagtggttccaacgctcgcgctaa\n\
+agaattaaagcctttatttcctccacggagtagcccgtaatccggttcgaaagagaccat\n\
+tgaagttaattttcatatccagtgaagtttaggcacaagcatgtgttctgccacatgcct\n\
+caaagcgctcttcaaccaagatatgattcatcctaacttcgatgaatgcgtctgtaacat\n\
+aaatatagaaggaatgattcggcgagttaattttcgccttctccaacatggcatccctac\n\
+gttcgttataaggaccatacatgtaggttttaaaggtttgcggttaatcgatatttacat\n\
+catagaaattctatagtcaaatttacaagactctagatactcactcgttgcagccggcta\n\
+ggaagcgctttgtaccttacttcccttttcgttgcgtaatatgaatttcatatagtaagt\n\
+tcaaggcactcatacctccgtgaagagggtagatagactattaaagttgtttaatagtac\n\
+gtattgatggaaatgacccgtaggagatttaccactcaatccacaagattcgctgctgtg\n\
+cattatcaaaacagtgcatgtcgaaacatgggttgggtccttcaaacacgaatccaggta\n\
+gagatacctttgcaattttt\n";
+
+dnaInput = dnaInput + dnaInput + dnaInput;
+
+var ilen, clen,
+ seqs = [
+ /agggtaaa|tttaccct/ig,
+ /[cgt]gggtaaa|tttaccc[acg]/ig,
+ /a[act]ggtaaa|tttacc[agt]t/ig],
+ seqs2 = [/ag[act]gtaaa|tttac[agt]ct/ig,
+ /agg[act]taaa|ttta[agt]cct/ig,
+ /aggg[acg]aaa|ttt[cgt]ccct/ig],
+ seqs3 = [/agggt[cgt]aa|tt[acg]accct/ig,
+ /agggta[cgt]a|t[acg]taccct/ig,
+ /agggtaa[cgt]|[acg]ttaccct/ig],
+ subs = {
+ B: '(c|g|t)', D: '(a|g|t)', H: '(a|c|t)', K: '(g|t)',
+ M: '(a|c)', N: '(a|c|g|t)', R: '(a|g)', S: '(c|t)',
+ V: '(a|c|g)', W: '(a|t)', Y: '(c|t)' }
+
+ilen = dnaInput.length;
+
+// There is no in-place substitution
+dnaInput = dnaInput.replace(/>.*\n|\n/g,"")
+clen = dnaInput.length
+
+var dnaOutputString;
+
+window.onload = function(){ startTest("sunspider-regexp-dna", '4a9a13f2');
+
+test("DNA Match (1)", function(){
+ for(i in seqs)
+ dnaOutputString += seqs[i].source + " " + (dnaInput.match(seqs[i]) || []).length + "\n";
+ // match returns null if no matches, so replace with empty
+});
+
+test("DNA Match (2)", function(){
+ for(i in seqs2)
+ dnaOutputString += seqs2[i].source + " " + (dnaInput.match(seqs2[i]) || []).length + "\n";
+ // match returns null if no matches, so replace with empty
+});
+
+test("DNA Match (3)", function(){
+ for(i in seqs3)
+ dnaOutputString += seqs3[i].source + " " + (dnaInput.match(seqs3[i]) || []).length + "\n";
+ // match returns null if no matches, so replace with empty
+});
+
+test("DNA Replace", function(){
+ for(k in subs)
+ dnaInput = dnaInput.replace(k, subs[k]) // FIXME: Would like this to be a global substitution in a future version of SunSpider.
+ // search string, replacement string, flags
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-fasta.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-fasta.html
new file mode 100644
index 000000000..3f4395f70
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-fasta.html
@@ -0,0 +1,104 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org
+//
+// Contributed by Ian Osgood
+
+var last = 42, A = 3877, C = 29573, M = 139968;
+
+function rand(max) {
+ last = (last * A + C) % M;
+ return max * last / M;
+}
+
+var ALU =
+ "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" +
+ "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" +
+ "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" +
+ "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" +
+ "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" +
+ "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" +
+ "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA";
+
+var IUB = {
+ a:0.27, c:0.12, g:0.12, t:0.27,
+ B:0.02, D:0.02, H:0.02, K:0.02,
+ M:0.02, N:0.02, R:0.02, S:0.02,
+ V:0.02, W:0.02, Y:0.02
+}
+
+var HomoSap = {
+ a: 0.3029549426680,
+ c: 0.1979883004921,
+ g: 0.1975473066391,
+ t: 0.3015094502008
+}
+
+function makeCumulative(table) {
+ var last = null;
+ for (var c in table) {
+ if (last) table[c] += table[last];
+ last = c;
+ }
+}
+
+function fastaRepeat(n, seq) {
+ var seqi = 0, lenOut = 60;
+ while (n>0) {
+ if (n<lenOut) lenOut = n;
+ if (seqi + lenOut < seq.length) {
+ ret = seq.substring(seqi, seqi+lenOut);
+ seqi += lenOut;
+ } else {
+ var s = seq.substring(seqi);
+ seqi = lenOut - s.length;
+ ret = s + seq.substring(0, seqi);
+ }
+ n -= lenOut;
+ }
+}
+
+function fastaRandom(n, table) {
+ var line = new Array(60);
+ makeCumulative(table);
+ while (n>0) {
+ if (n<line.length) line = new Array(n);
+ for (var i=0; i<line.length; i++) {
+ var r = rand(1);
+ for (var c in table) {
+ if (r < table[c]) {
+ line[i] = c;
+ break;
+ }
+ }
+ }
+ ret = line.join('');
+ n -= line.length;
+ }
+}
+
+window.onload = function(){ startTest("sunspider-string-fasta", '8d52ecfc');
+
+var ret;
+var n = 16;
+
+test( "Homo sapiens alu", function(){
+ ret = fastaRepeat(4*n*10000, ALU);
+});
+
+test( "IUB ambiguity codes", function(){
+ ret = fastaRandom(3*n*100, IUB);
+});
+
+test( "Homo sapiens frequency", function(){
+ ret = fastaRandom(5*n*100, HomoSap);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html
new file mode 100644
index 000000000..38158facb
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html
@@ -0,0 +1,282 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ Portions from:
+ json.js
+ 2007-10-10
+
+ Public Domain
+*/
+
+// This test parses a JSON string giving tag names and popularity, and
+// generates html markup for a "tagcloud" view.
+
+if (!Object.prototype.toJSONString) {
+
+ Array.prototype.toJSONString = function (w) {
+ var a = [], // The array holding the partial texts.
+ i, // Loop counter.
+ l = this.length,
+ v; // The value to be stringified.
+
+ for (i = 0; i < l; i += 1) {
+ v = this[i];
+ switch (typeof v) {
+ case 'object':
+
+ if (v && typeof v.toJSONString === 'function') {
+ a.push(v.toJSONString(w));
+ } else {
+ a.push('null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(v.toJSONString());
+ break;
+ default:
+ a.push('null');
+ }
+ }
+
+ return '[' + a.join(',') + ']';
+ };
+
+
+ Boolean.prototype.toJSONString = function () {
+ return String(this);
+ };
+
+
+ Date.prototype.toJSONString = function () {
+
+ function f(n) {
+
+ return n < 10 ? '0' + n : n;
+ }
+
+ return '"' + this.getUTCFullYear() + '-' +
+ f(this.getUTCMonth() + 1) + '-' +
+ f(this.getUTCDate()) + 'T' +
+ f(this.getUTCHours()) + ':' +
+ f(this.getUTCMinutes()) + ':' +
+ f(this.getUTCSeconds()) + 'Z"';
+ };
+
+
+ Number.prototype.toJSONString = function () {
+
+ return isFinite(this) ? String(this) : 'null';
+ };
+
+
+ Object.prototype.toJSONString = function (w) {
+ var a = [], // The array holding the partial texts.
+ k, // The current key.
+ i, // The loop counter.
+ v; // The current value.
+
+ if (w) {
+ for (i = 0; i < w.length; i += 1) {
+ k = w[i];
+ if (typeof k === 'string') {
+ v = this[k];
+ switch (typeof v) {
+ case 'object':
+
+ if (v) {
+ if (typeof v.toJSONString === 'function') {
+ a.push(k.toJSONString() + ':' +
+ v.toJSONString(w));
+ }
+ } else {
+ a.push(k.toJSONString() + ':null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(k.toJSONString() + ':' + v.toJSONString());
+
+ }
+ }
+ }
+ } else {
+
+ for (k in this) {
+ if (typeof k === 'string' &&
+ Object.prototype.hasOwnProperty.apply(this, [k])) {
+ v = this[k];
+ switch (typeof v) {
+ case 'object':
+
+ if (v) {
+ if (typeof v.toJSONString === 'function') {
+ a.push(k.toJSONString() + ':' +
+ v.toJSONString());
+ }
+ } else {
+ a.push(k.toJSONString() + ':null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(k.toJSONString() + ':' + v.toJSONString());
+
+ }
+ }
+ }
+ }
+
+ return '{' + a.join(',') + '}';
+ };
+
+
+ (function (s) {
+
+ var m = {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '"' : '\\"',
+ '\\': '\\\\'
+ };
+
+
+ s.parseJSON = function (filter) {
+ var j;
+
+ function walk(k, v) {
+ var i, n;
+ if (v && typeof v === 'object') {
+ for (i in v) {
+ if (Object.prototype.hasOwnProperty.apply(v, [i])) {
+ n = walk(i, v[i]);
+ if (n !== undefined) {
+ v[i] = n;
+ }
+ }
+ }
+ }
+ return filter(k, v);
+ }
+
+ if (/^[\],:{}\s]*$/.test(this.replace(/\\./g, '@').
+ replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g, ']').
+ replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
+
+ j = eval('(' + this + ')');
+
+ return typeof filter === 'function' ? walk('', j) : j;
+ }
+
+ throw new SyntaxError('parseJSON');
+ };
+
+
+ s.toJSONString = function () {
+
+ if (/["\\\x00-\x1f]/.test(this)) {
+ return '"' + this.replace(/[\x00-\x1f\\"]/g, function (a) {
+ var c = m[a];
+ if (c) {
+ return c;
+ }
+ c = a.charCodeAt();
+ return '\\u00' + Math.floor(c / 16).toString(16) +
+ (c % 16).toString(16);
+ }) + '"';
+ }
+ return '"' + this + '"';
+ };
+ })(String.prototype);
+}
+
+var tagInfoJSON = '[\n {\n \"tag\": "titillation",\n \"popularity\": 4294967296\n },\n {\n \"tag\": "foamless",\n \"popularity\": 1257718401\n },\n {\n \"tag\": "snarler",\n \"popularity\": 613166183\n },\n {\n \"tag\": "multangularness",\n \"popularity\": 368304452\n },\n {\n \"tag\": "Fesapo unventurous",\n \"popularity\": 248026512\n },\n {\n \"tag\": "esthesioblast",\n \"popularity\": 179556755\n },\n {\n \"tag\": "echeneidoid",\n \"popularity\": 136641578\n },\n {\n \"tag\": "embryoctony",\n \"popularity\": 107852576\n },\n {\n \"tag\": "undilatory",\n \"popularity\": 87537981\n },\n {\n \"tag\": "predisregard",\n \"popularity\": 72630939\n },\n {\n \"tag\": "allergenic",\n \"popularity\": 61345190\n },\n {\n \"tag\": "uncloudy",\n \"popularity\": 52580571\n },\n {\n \"tag\": "unforeseeably",\n \"popularity\": 45628109\n },\n {\n \"tag\": "sturniform",\n \"popularity\": 40013489\n },\n {\n \"tag\": "anesthetize",\n \"popularity\": 35409226\n },\n {\n \"tag\": "ametabolia",\n \"popularity\": 31583050\n },\n {\n \"tag\": "angiopathy",\n \"popularity\": 28366350\n },\n {\n \"tag\": "sultanaship",\n \"popularity\": 25634218\n },\n {\n \"tag\": "Frenchwise",\n \"popularity\": 23292461\n },\n {\n \"tag\": "cerviconasal",\n \"popularity\": 21268909\n },\n {\n \"tag\": "mercurialness",\n \"popularity\": 19507481\n },\n {\n \"tag\": "glutelin venditate",\n \"popularity\": 17964042\n },\n {\n \"tag\": "acred overblack",\n \"popularity\": 16603454\n },\n {\n \"tag\": "Atik",\n \"popularity\": 15397451\n },\n {\n \"tag\": "puncturer",\n \"popularity\": 14323077\n },\n {\n \"tag\": "pukatea",\n \"popularity\": 13361525\n },\n {\n \"tag\": "suberize",\n \"popularity\": 12497261\n },\n {\n \"tag\": "Godfrey",\n \"popularity\": 11717365\n },\n {\n \"tag\": "tetraptote",\n \"popularity\": 11011011\n },\n {\n \"tag\": "lucidness",\n \"popularity\": 10369074\n },\n {\n \"tag\": "tartness",\n \"popularity\": 9783815\n },\n {\n \"tag\": "axfetch",\n \"popularity\": 9248634\n },\n {\n \"tag\": "preacquittal",\n \"popularity\": 8757877\n },\n {\n \"tag\": "matris",\n \"popularity\": 8306671\n },\n {\n \"tag\": "hyphenate",\n \"popularity\": 7890801\n },\n {\n \"tag\": "semifabulous",\n \"popularity\": 7506606\n },\n {\n \"tag\": "oppressiveness",\n \"popularity\": 7150890\n },\n {\n \"tag\": "Protococcales",\n \"popularity\": 6820856\n },\n {\n \"tag\": "unpreventive",\n \"popularity\": 6514045\n },\n {\n \"tag\": "Cordia",\n \"popularity\": 6228289\n },\n {\n \"tag\": "Wakamba leaflike",\n \"popularity\": 5961668\n },\n {\n \"tag\": "dacryoma",\n \"popularity\": 5712480\n },\n {\n \"tag\": "inguinal",\n \"popularity\": 5479211\n },\n {\n \"tag\": "responseless",\n \"popularity\": 5260507\n },\n {\n \"tag\": "supplementarily",\n \"popularity\": 5055158\n },\n {\n \"tag\": "emu",\n \"popularity\": 4862079\n },\n {\n \"tag\": "countermeet",\n \"popularity\": 4680292\n },\n {\n \"tag\": "purrer",\n \"popularity\": 4508918\n },\n {\n \"tag\": "Corallinaceae",\n \"popularity\": 4347162\n },\n {\n \"tag\": "speculum",\n \"popularity\": 4194304\n },\n {\n \"tag\": "crimpness",\n \"popularity\": 4049690\n },\n {\n \"tag\": "antidetonant",\n \"popularity\": 3912727\n },\n {\n \"tag\": "topeewallah",\n \"popularity\": 3782875\n },\n {\n \"tag\": "fidalgo ballant",\n \"popularity\": 3659640\n },\n {\n \"tag\": "utriculose",\n \"popularity\": 3542572\n },\n {\n \"tag\": "testata",\n \"popularity\": 3431259\n },\n {\n \"tag\": "beltmaking",\n \"popularity\": 3325322\n },\n {\n \"tag\": "necrotype",\n \"popularity\": 3224413\n },\n {\n \"tag\": "ovistic",\n \"popularity\": 3128215\n },\n {\n \"tag\": "swindlership",\n \"popularity\": 3036431\n },\n {\n \"tag\": "augustal",\n \"popularity\": 2948792\n },\n {\n \"tag\": "Titoist",\n \"popularity\": 2865047\n },\n {\n \"tag\": "trisoctahedral",\n \"popularity\": 2784963\n },\n {\n \"tag\": "sequestrator",\n \"popularity\": 2708327\n },\n {\n \"tag\": "sideburns",\n \"popularity\": 2634939\n },\n {\n \"tag\": "paraphrasia",\n \"popularity\": 2564616\n },\n {\n \"tag\": "graminology unbay",\n \"popularity\": 2497185\n },\n {\n \"tag\": "acaridomatium emargination",\n \"popularity\": 2432487\n },\n {\n \"tag\": "roofward",\n \"popularity\": 2370373\n },\n {\n \"tag\": "lauder",\n \"popularity\": 2310705\n },\n {\n \"tag\": "subjunctive",\n \"popularity\": 2253354\n },\n {\n \"tag\": "subelongate",\n \"popularity\": 2198199\n },\n {\n \"tag\": "guacimo",\n \"popularity\": 2145128\n },\n {\n \"tag\": "cockade",\n \"popularity\": 2094033\n },\n {\n \"tag\": "misgauge",\n \"popularity\": 2044818\n },\n {\n \"tag\": "unexpensive",\n \"popularity\": 1997388\n },\n {\n \"tag\": "chebel",\n \"popularity\": 1951657\n },\n {\n \"tag\": "unpursuing",\n \"popularity\": 1907543\n },\n {\n \"tag\": "kilobar",\n \"popularity\": 1864969\n },\n {\n \"tag\": "obsecration",\n \"popularity\": 1823863\n },\n {\n \"tag\": "nacarine",\n \"popularity\": 1784157\n },\n {\n \"tag\": "spirituosity",\n \"popularity\": 1745787\n },\n {\n \"tag\": "movableness deity",\n \"popularity\": 1708692\n },\n {\n \"tag\": "exostracism",\n \"popularity\": 1672816\n },\n {\n \"tag\": "archipterygium",\n \"popularity\": 1638104\n },\n {\n \"tag\": "monostrophic",\n \"popularity\": 1604506\n },\n {\n \"tag\": "gynecide",\n \"popularity\": 1571974\n },\n {\n \"tag\": "gladden",\n \"popularity\": 1540462\n },\n {\n \"tag\": "throughbred",\n \"popularity\": 1509927\n },\n {\n \"tag\": "groper",\n \"popularity\": 1480329\n },\n {\n \"tag\": "Xenosaurus",\n \"popularity\": 1451628\n },\n {\n \"tag\": "photoetcher",\n \"popularity\": 1423788\n },\n {\n \"tag\": "glucosid",\n \"popularity\": 1396775\n },\n {\n \"tag\": "Galtonian",\n \"popularity\": 1370555\n },\n {\n \"tag\": "mesosporic",\n \"popularity\": 1345097\n },\n {\n \"tag\": "theody",\n \"popularity\": 1320370\n },\n {\n \"tag\": "zaffer",\n \"popularity\": 1296348\n },\n {\n \"tag\": "probiology",\n \"popularity\": 1273003\n },\n {\n \"tag\": "rhizomic",\n \"popularity\": 1250308\n },\n {\n \"tag\": "superphosphate",\n \"popularity\": 1228240\n },\n {\n \"tag\": "Hippolytan",\n \"popularity\": 1206776\n },\n {\n \"tag\": "garget",\n \"popularity\": 1185892\n },\n {\n \"tag\": "diploplacula",\n \"popularity\": 1165568\n },\n {\n \"tag\": "orohydrographical",\n \"popularity\": 1145785\n },\n {\n \"tag\": "enhypostatize",\n \"popularity\": 1126521\n },\n {\n \"tag\": "polisman",\n \"popularity\": 1107759\n },\n {\n \"tag\": "acetometer",\n \"popularity\": 1089482\n },\n {\n \"tag\": "unsnatched",\n \"popularity\": 1071672\n },\n {\n \"tag\": "yabber",\n \"popularity\": 1054313\n },\n {\n \"tag\": "demiwolf",\n \"popularity\": 1037390\n },\n {\n \"tag\": "chromascope",\n \"popularity\": 1020888\n },\n {\n \"tag\": "seamanship",\n \"popularity\": 1004794\n },\n {\n \"tag\": "nonfenestrated",\n \"popularity\": 989092\n },\n {\n \"tag\": "hydrophytism",\n \"popularity\": 973771\n },\n {\n \"tag\": "dotter",\n \"popularity\": 958819\n },\n {\n \"tag\": "thermoperiodism",\n \"popularity\": 944222\n },\n {\n \"tag\": "unlawyerlike",\n \"popularity\": 929970\n },\n {\n \"tag\": "enantiomeride citywards",\n \"popularity\": 916052\n },\n {\n \"tag\": "unmetallurgical",\n \"popularity\": 902456\n },\n {\n \"tag\": "prickled",\n \"popularity\": 889174\n },\n {\n \"tag\": "strangerwise manioc",\n \"popularity\": 876195\n },\n {\n \"tag\": "incisorial",\n \"popularity\": 863510\n },\n {\n \"tag\": "irrationalize",\n \"popularity\": 851110\n },\n {\n \"tag\": "nasology",\n \"popularity\": 838987\n },\n {\n \"tag\": "fatuism",\n \"popularity\": 827131\n },\n {\n \"tag\": "Huk",\n \"popularity\": 815535\n },\n {\n \"tag\": "properispomenon",\n \"popularity\": 804192\n },\n {\n \"tag\": "unpummelled",\n \"popularity\": 793094\n },\n {\n \"tag\": "technographically",\n \"popularity\": 782233\n },\n {\n \"tag\": "underfurnish",\n \"popularity\": 771603\n },\n {\n \"tag\": "sinter",\n \"popularity\": 761198\n },\n {\n \"tag\": "lateroanterior",\n \"popularity\": 751010\n },\n {\n \"tag\": "nonpersonification",\n \"popularity\": 741034\n },\n {\n \"tag\": "Sitophilus",\n \"popularity\": 731264\n },\n {\n \"tag\": "unstudded overexerted",\n \"popularity\": 721694\n },\n {\n \"tag\": "tracheation",\n \"popularity\": 712318\n },\n {\n \"tag\": "thirteenth begloze",\n \"popularity\": 703131\n },\n {\n \"tag\": "bespice",\n \"popularity\": 694129\n },\n {\n \"tag\": "doppia",\n \"popularity\": 685305\n },\n {\n \"tag\": "unadorned",\n \"popularity\": 676656\n },\n {\n \"tag\": "dovelet engraff",\n \"popularity\": 668176\n },\n {\n \"tag\": "diphyozooid",\n \"popularity\": 659862\n },\n {\n \"tag\": "mure",\n \"popularity\": 651708\n },\n {\n \"tag\": "Tripitaka",\n \"popularity\": 643710\n },\n {\n \"tag\": "Billjim",\n \"popularity\": 635865\n },\n {\n \"tag\": "pyramidical",\n \"popularity\": 628169\n },\n {\n \"tag\": "circumlocutionist",\n \"popularity\": 620617\n },\n {\n \"tag\": "slapstick",\n \"popularity\": 613207\n },\n {\n \"tag\": "preobedience",\n \"popularity\": 605934\n },\n {\n \"tag\": "unfriarlike",\n \"popularity\": 598795\n },\n {\n \"tag\": "microchromosome",\n \"popularity\": 591786\n },\n {\n \"tag\": "Orphicism",\n \"popularity\": 584905\n },\n {\n \"tag\": "peel",\n \"popularity\": 578149\n },\n {\n \"tag\": "obediential",\n \"popularity\": 571514\n },\n {\n \"tag\": "Peripatidea",\n \"popularity\": 564997\n },\n {\n \"tag\": "undoubtful",\n \"popularity\": 558596\n },\n {\n \"tag\": "lodgeable",\n \"popularity\": 552307\n },\n {\n \"tag\": "pustulated woodchat",\n \"popularity\": 546129\n },\n {\n \"tag\": "antepast",\n \"popularity\": 540057\n },\n {\n \"tag\": "sagittoid matrimoniously",\n \"popularity\": 534091\n },\n {\n \"tag\": "Albizzia",\n \"popularity\": 528228\n },\n {\n \"tag\": "Elateridae unnewness",\n \"popularity\": 522464\n },\n {\n \"tag\": "convertingness",\n \"popularity\": 516798\n },\n {\n \"tag\": "Pelew",\n \"popularity\": 511228\n },\n {\n \"tag\": "recapitulation",\n \"popularity\": 505751\n },\n {\n \"tag\": "shack",\n \"popularity\": 500365\n },\n {\n \"tag\": "unmellowed",\n \"popularity\": 495069\n },\n {\n \"tag\": "pavis capering",\n \"popularity\": 489859\n },\n {\n \"tag\": "fanfare",\n \"popularity\": 484735\n },\n {\n \"tag\": "sole",\n \"popularity\": 479695\n },\n {\n \"tag\": "subarcuate",\n \"popularity\": 474735\n },\n {\n \"tag\": "multivious",\n \"popularity\": 469856\n },\n {\n \"tag\": "squandermania",\n \"popularity\": 465054\n },\n {\n \"tag\": "scintle",\n \"popularity\": 460329\n },\n {\n \"tag\": "hash chirognomic",\n \"popularity\": 455679\n },\n {\n \"tag\": "linseed",\n \"popularity\": 451101\n },\n {\n \"tag\": "redoubtable",\n \"popularity\": 446596\n },\n {\n \"tag\": "poachy reimpact",\n \"popularity\": 442160\n },\n {\n \"tag\": "limestone",\n \"popularity\": 437792\n },\n {\n \"tag\": "serranid",\n \"popularity\": 433492\n },\n {\n \"tag\": "pohna",\n \"popularity\": 429258\n },\n {\n \"tag\": "warwolf",\n \"popularity\": 425088\n },\n {\n \"tag\": "ruthenous",\n \"popularity\": 420981\n },\n {\n \"tag\": "dover",\n \"popularity\": 416935\n },\n {\n \"tag\": "deuteroalbumose",\n \"popularity\": 412950\n },\n {\n \"tag\": "pseudoprophetic",\n \"popularity\": 409025\n },\n {\n \"tag\": "dissoluteness",\n \"popularity\": 405157\n },\n {\n \"tag\": "preinvention",\n \"popularity\": 401347\n },\n {\n \"tag\": "swagbellied",\n \"popularity\": 397592\n },\n {\n \"tag\": "Ophidia",\n \"popularity\": 393892\n },\n {\n \"tag\": "equanimity",\n \"popularity\": 390245\n },\n {\n \"tag\": "troutful",\n \"popularity\": 386651\n },\n {\n \"tag\": "uke",\n \"popularity\": 383108\n },\n {\n \"tag\": "preacquaint",\n \"popularity\": 379616\n },\n {\n \"tag\": "shoq",\n \"popularity\": 376174\n },\n {\n \"tag\": "yox",\n \"popularity\": 372780\n },\n {\n \"tag\": "unelemental",\n \"popularity\": 369434\n },\n {\n \"tag\": "Yavapai",\n \"popularity\": 366134\n },\n {\n \"tag\": "joulean",\n \"popularity\": 362880\n },\n {\n \"tag\": "dracontine",\n \"popularity\": 359672\n },\n {\n \"tag\": "hardmouth",\n \"popularity\": 356507\n },\n {\n \"tag\": "sylvanize",\n \"popularity\": 353386\n },\n {\n \"tag\": "intraparenchymatous meadowbur",\n \"popularity\": 350308\n },\n {\n \"tag\": "uncharily",\n \"popularity\": 347271\n },\n {\n \"tag\": "redtab flexibly",\n \"popularity\": 344275\n },\n {\n \"tag\": "centervelic",\n \"popularity\": 341319\n },\n {\n \"tag\": "unravellable",\n \"popularity\": 338403\n },\n {\n \"tag\": "infortunately",\n \"popularity\": 335526\n },\n {\n \"tag\": "cannel",\n \"popularity\": 332687\n },\n {\n \"tag\": "oxyblepsia",\n \"popularity\": 329885\n },\n {\n \"tag\": "Damon",\n \"popularity\": 327120\n },\n {\n \"tag\": "etherin",\n \"popularity\": 324391\n },\n {\n \"tag\": "luminal",\n \"popularity\": 321697\n },\n {\n \"tag\": "interrogatorily presbyte",\n \"popularity\": 319038\n },\n {\n \"tag\": "hemiclastic",\n \"popularity\": 316414\n },\n {\n \"tag\": "poh flush",\n \"popularity\": 313823\n },\n {\n \"tag\": "Psoroptes",\n \"popularity\": 311265\n },\n {\n \"tag\": "dispirit",\n \"popularity\": 308740\n },\n {\n \"tag\": "nashgab",\n \"popularity\": 306246\n },\n {\n \"tag\": "Aphidiinae",\n \"popularity\": 303784\n },\n {\n \"tag\": "rhapsody nonconstruction",\n \"popularity\": 301353\n },\n {\n \"tag\": "Osmond",\n \"popularity\": 298952\n },\n {\n \"tag\": "Leonis",\n \"popularity\": 296581\n },\n {\n \"tag\": "Lemnian",\n \"popularity\": 294239\n },\n {\n \"tag\": "acetonic gnathonic",\n \"popularity\": 291926\n },\n {\n \"tag\": "surculus",\n \"popularity\": 289641\n },\n {\n \"tag\": "diagonally",\n \"popularity\": 287384\n },\n {\n \"tag\": "counterpenalty",\n \"popularity\": 285154\n },\n {\n \"tag\": "Eugenie",\n \"popularity\": 282952\n },\n {\n \"tag\": "hornbook",\n \"popularity\": 280776\n },\n {\n \"tag\": "miscoin",\n \"popularity\": 278626\n },\n {\n \"tag\": "admi",\n \"popularity\": 276501\n },\n {\n \"tag\": "Tarmac",\n \"popularity\": 274402\n },\n {\n \"tag\": "inexplicable",\n \"popularity\": 272328\n },\n {\n \"tag\": "rascallion",\n \"popularity\": 270278\n },\n {\n \"tag\": "dusterman",\n \"popularity\": 268252\n },\n {\n \"tag\": "osteostomous unhoroscopic",\n \"popularity\": 266250\n },\n {\n \"tag\": "spinibulbar",\n \"popularity\": 264271\n },\n {\n \"tag\": "phototelegraphically",\n \"popularity\": 262315\n },\n {\n \"tag\": "Manihot",\n \"popularity\": 260381\n },\n {\n \"tag\": "neighborhood",\n \"popularity\": 258470\n },\n {\n \"tag\": "Vincetoxicum",\n \"popularity\": 256581\n },\n {\n \"tag\": "khirka",\n \"popularity\": 254713\n },\n {\n \"tag\": "conscriptive",\n \"popularity\": 252866\n },\n {\n \"tag\": "synechthran",\n \"popularity\": 251040\n },\n {\n \"tag\": "Guttiferales",\n \"popularity\": 249235\n },\n {\n \"tag\": "roomful",\n \"popularity\": 247450\n },\n {\n \"tag\": "germinal",\n \"popularity\": 245685\n },\n {\n \"tag\": "untraitorous",\n \"popularity\": 243939\n },\n {\n \"tag\": "nondissenting",\n \"popularity\": 242213\n },\n {\n \"tag\": "amotion",\n \"popularity\": 240506\n },\n {\n \"tag\": "badious",\n \"popularity\": 238817\n },\n {\n \"tag\": "sumpit",\n \"popularity\": 237147\n },\n {\n \"tag\": "ectozoic",\n \"popularity\": 235496\n },\n {\n \"tag\": "elvet",\n \"popularity\": 233862\n },\n {\n \"tag\": "underclerk",\n \"popularity\": 232246\n },\n {\n \"tag\": "reticency",\n \"popularity\": 230647\n },\n {\n \"tag\": "neutroclusion",\n \"popularity\": 229065\n },\n {\n \"tag\": "unbelieving",\n \"popularity\": 227500\n },\n {\n \"tag\": "histogenetic",\n \"popularity\": 225952\n },\n {\n \"tag\": "dermamyiasis",\n \"popularity\": 224421\n },\n {\n \"tag\": "telenergy",\n \"popularity\": 222905\n },\n {\n \"tag\": "axiomatic",\n \"popularity\": 221406\n },\n {\n \"tag\": "undominoed",\n \"popularity\": 219922\n },\n {\n \"tag\": "periosteoma",\n \"popularity\": 218454\n },\n {\n \"tag\": "justiciaryship",\n \"popularity\": 217001\n },\n {\n \"tag\": "autoluminescence",\n \"popularity\": 215563\n },\n {\n \"tag\": "osmous",\n \"popularity\": 214140\n },\n {\n \"tag\": "borgh",\n \"popularity\": 212731\n },\n {\n \"tag\": "bedebt",\n \"popularity\": 211337\n },\n {\n \"tag\": "considerableness adenoidism",\n \"popularity\": 209957\n },\n {\n \"tag\": "sailorizing",\n \"popularity\": 208592\n },\n {\n \"tag\": "Montauk",\n \"popularity\": 207240\n },\n {\n \"tag\": "Bridget",\n \"popularity\": 205901\n },\n {\n \"tag\": "Gekkota",\n \"popularity\": 204577\n },\n {\n \"tag\": "subcorymbose",\n \"popularity\": 203265\n },\n {\n \"tag\": "undersap",\n \"popularity\": 201967\n },\n {\n \"tag\": "poikilothermic",\n \"popularity\": 200681\n },\n {\n \"tag\": "enneatical",\n \"popularity\": 199409\n },\n {\n \"tag\": "martinetism",\n \"popularity\": 198148\n },\n {\n \"tag\": "sustanedly",\n \"popularity\": 196901\n },\n {\n \"tag\": "declaration",\n \"popularity\": 195665\n },\n {\n \"tag\": "myringoplasty",\n \"popularity\": 194442\n },\n {\n \"tag\": "Ginkgo",\n \"popularity\": 193230\n },\n {\n \"tag\": "unrecurrent",\n \"popularity\": 192031\n },\n {\n \"tag\": "proprecedent",\n \"popularity\": 190843\n },\n {\n \"tag\": "roadman",\n \"popularity\": 189666\n },\n {\n \"tag\": "elemin",\n \"popularity\": 188501\n },\n {\n \"tag\": "maggot",\n \"popularity\": 187347\n },\n {\n \"tag\": "alitrunk",\n \"popularity\": 186204\n },\n {\n \"tag\": "introspection",\n \"popularity\": 185071\n },\n {\n \"tag\": "batiker",\n \"popularity\": 183950\n },\n {\n \"tag\": "backhatch oversettle",\n \"popularity\": 182839\n },\n {\n \"tag\": "thresherman",\n \"popularity\": 181738\n },\n {\n \"tag\": "protemperance",\n \"popularity\": 180648\n },\n {\n \"tag\": "undern",\n \"popularity\": 179568\n },\n {\n \"tag\": "tweeg",\n \"popularity\": 178498\n },\n {\n \"tag\": "crosspath",\n \"popularity\": 177438\n },\n {\n \"tag\": "Tangaridae",\n \"popularity\": 176388\n },\n {\n \"tag\": "scrutation",\n \"popularity\": 175348\n },\n {\n \"tag\": "piecemaker",\n \"popularity\": 174317\n },\n {\n \"tag\": "paster",\n \"popularity\": 173296\n },\n {\n \"tag\": "unpretendingness",\n \"popularity\": 172284\n },\n {\n \"tag\": "inframundane",\n \"popularity\": 171281\n },\n {\n \"tag\": "kiblah",\n \"popularity\": 170287\n },\n {\n \"tag\": "playwrighting",\n \"popularity\": 169302\n },\n {\n \"tag\": "gonepoiesis snowslip",\n \"popularity\": 168326\n },\n {\n \"tag\": "hoodwise",\n \"popularity\": 167359\n },\n {\n \"tag\": "postseason",\n \"popularity\": 166401\n },\n {\n \"tag\": "equivocality",\n \"popularity\": 165451\n },\n {\n \"tag\": "Opiliaceae nuclease",\n \"popularity\": 164509\n },\n {\n \"tag\": "sextipara",\n \"popularity\": 163576\n },\n {\n \"tag\": "weeper",\n \"popularity\": 162651\n },\n {\n \"tag\": "frambesia",\n \"popularity\": 161735\n },\n {\n \"tag\": "answerable",\n \"popularity\": 160826\n },\n {\n \"tag\": "Trichosporum",\n \"popularity\": 159925\n },\n {\n \"tag\": "cajuputol",\n \"popularity\": 159033\n },\n {\n \"tag\": "pleomorphous",\n \"popularity\": 158148\n },\n {\n \"tag\": "aculeolate",\n \"popularity\": 157270\n },\n {\n \"tag\": "wherever",\n \"popularity\": 156400\n },\n {\n \"tag\": "collapse",\n \"popularity\": 155538\n },\n {\n \"tag\": "porky",\n \"popularity\": 154683\n },\n {\n \"tag\": "perule",\n \"popularity\": 153836\n },\n {\n \"tag\": "Nevada",\n \"popularity\": 152996\n },\n {\n \"tag\": "conalbumin",\n \"popularity\": 152162\n },\n {\n \"tag\": "tsunami",\n \"popularity\": 151336\n },\n {\n \"tag\": "Gulf",\n \"popularity\": 150517\n },\n {\n \"tag\": "hertz",\n \"popularity\": 149705\n },\n {\n \"tag\": "limmock",\n \"popularity\": 148900\n },\n {\n \"tag\": "Tartarize",\n \"popularity\": 148101\n },\n {\n \"tag\": "entosphenoid",\n \"popularity\": 147310\n },\n {\n \"tag\": "ibis",\n \"popularity\": 146524\n },\n {\n \"tag\": "unyeaned",\n \"popularity\": 145746\n },\n {\n \"tag\": "tritural",\n \"popularity\": 144973\n },\n {\n \"tag\": "hundredary",\n \"popularity\": 144207\n },\n {\n \"tag\": "stolonlike",\n \"popularity\": 143448\n },\n {\n \"tag\": "chorister",\n \"popularity\": 142694\n },\n {\n \"tag\": "mismove",\n \"popularity\": 141947\n },\n {\n \"tag\": "Andine",\n \"popularity\": 141206\n },\n {\n \"tag\": "Annette proneur escribe",\n \"popularity\": 140471\n },\n {\n \"tag\": "exoperidium",\n \"popularity\": 139742\n },\n {\n \"tag\": "disedge",\n \"popularity\": 139019\n },\n {\n \"tag\": "hypochloruria",\n \"popularity\": 138302\n },\n {\n \"tag\": "prepupa",\n \"popularity\": 137590\n },\n {\n \"tag\": "assent",\n \"popularity\": 136884\n },\n {\n \"tag\": "hydrazobenzene",\n \"popularity\": 136184\n },\n {\n \"tag\": "emballonurid",\n \"popularity\": 135489\n },\n {\n \"tag\": "roselle",\n \"popularity\": 134800\n },\n {\n \"tag\": "unifiedly",\n \"popularity\": 134117\n },\n {\n \"tag\": "clang",\n \"popularity\": 133439\n },\n {\n \"tag\": "acetolytic",\n \"popularity\": 132766\n },\n {\n \"tag\": "cladodont",\n \"popularity\": 132098\n },\n {\n \"tag\": "recoast",\n \"popularity\": 131436\n },\n {\n \"tag\": "celebrated tydie Eocarboniferous",\n \"popularity\": 130779\n },\n {\n \"tag\": "superconsciousness",\n \"popularity\": 130127\n },\n {\n \"tag\": "soberness",\n \"popularity\": 129480\n },\n {\n \"tag\": "panoramist",\n \"popularity\": 128838\n },\n {\n \"tag\": "Orbitolina",\n \"popularity\": 128201\n },\n {\n \"tag\": "overlewd",\n \"popularity\": 127569\n },\n {\n \"tag\": "demiquaver",\n \"popularity\": 126942\n },\n {\n \"tag\": "kamelaukion",\n \"popularity\": 126319\n },\n {\n \"tag\": "flancard",\n \"popularity\": 125702\n },\n {\n \"tag\": "tricuspid",\n \"popularity\": 125089\n },\n {\n \"tag\": "bepelt",\n \"popularity\": 124480\n },\n {\n \"tag\": "decuplet",\n \"popularity\": 123877\n },\n {\n \"tag\": "Rockies",\n \"popularity\": 123278\n },\n {\n \"tag\": "unforgeability",\n \"popularity\": 122683\n },\n {\n \"tag\": "mocha",\n \"popularity\": 122093\n },\n {\n \"tag\": "scrunge",\n \"popularity\": 121507\n },\n {\n \"tag\": "delighter",\n \"popularity\": 120926\n },\n {\n \"tag\": "willey Microtinae",\n \"popularity\": 120349\n },\n {\n \"tag\": "unhuntable",\n \"popularity\": 119777\n },\n {\n \"tag\": "historically",\n \"popularity\": 119208\n },\n {\n \"tag\": "vicegerentship",\n \"popularity\": 118644\n },\n {\n \"tag\": "hemangiosarcoma",\n \"popularity\": 118084\n },\n {\n \"tag\": "harpago",\n \"popularity\": 117528\n },\n {\n \"tag\": "unionoid",\n \"popularity\": 116976\n },\n {\n \"tag\": "wiseman",\n \"popularity\": 116429\n },\n {\n \"tag\": "diclinism",\n \"popularity\": 115885\n },\n {\n \"tag\": "Maud",\n \"popularity\": 115345\n },\n {\n \"tag\": "scaphocephalism",\n \"popularity\": 114809\n },\n {\n \"tag\": "obtenebration",\n \"popularity\": 114277\n },\n {\n \"tag\": "cymar predreadnought",\n \"popularity\": 113749\n },\n {\n \"tag\": "discommend",\n \"popularity\": 113225\n },\n {\n \"tag\": "crude",\n \"popularity\": 112704\n },\n {\n \"tag\": "upflash",\n \"popularity\": 112187\n },\n {\n \"tag\": "saltimbank",\n \"popularity\": 111674\n },\n {\n \"tag\": "posthysterical",\n \"popularity\": 111165\n },\n {\n \"tag\": "trample",\n \"popularity\": 110659\n },\n {\n \"tag\": "ungirthed",\n \"popularity\": 110157\n },\n {\n \"tag\": "unshakable",\n \"popularity\": 109658\n },\n {\n \"tag\": "hepatocystic",\n \"popularity\": 109163\n },\n {\n \"tag\": "psammophyte",\n \"popularity\": 108671\n },\n {\n \"tag\": "millionfold",\n \"popularity\": 108183\n },\n {\n \"tag\": "outtaste",\n \"popularity\": 107698\n },\n {\n \"tag\": "poppycockish",\n \"popularity\": 107217\n },\n {\n \"tag\": "viduine",\n \"popularity\": 106739\n },\n {\n \"tag\": "pleasureman",\n \"popularity\": 106264\n },\n {\n \"tag\": "cholesterolemia",\n \"popularity\": 105792\n },\n {\n \"tag\": "hostlerwife",\n \"popularity\": 105324\n },\n {\n \"tag\": "figure undergrass",\n \"popularity\": 104859\n },\n {\n \"tag\": "bedrape",\n \"popularity\": 104398\n },\n {\n \"tag\": "nuttishness",\n \"popularity\": 103939\n },\n {\n \"tag\": "fow",\n \"popularity\": 103484\n },\n {\n \"tag\": "rachianesthesia",\n \"popularity\": 103031\n },\n {\n \"tag\": "recruitable",\n \"popularity\": 102582\n },\n {\n \"tag\": "semianatomical Oenotheraceae",\n \"popularity\": 102136\n },\n {\n \"tag\": "extracapsular",\n \"popularity\": 101693\n },\n {\n \"tag\": "unsigneted",\n \"popularity\": 101253\n },\n {\n \"tag\": "fissural",\n \"popularity\": 100816\n },\n {\n \"tag\": "ayous",\n \"popularity\": 100381\n },\n {\n \"tag\": "crestfallenness odontograph",\n \"popularity\": 99950\n },\n {\n \"tag\": "monopodium",\n \"popularity\": 99522\n },\n {\n \"tag\": "germfree",\n \"popularity\": 99096\n },\n {\n \"tag\": "dauphin",\n \"popularity\": 98673\n },\n {\n \"tag\": "nonagesimal",\n \"popularity\": 98254\n },\n {\n \"tag\": "waterchat",\n \"popularity\": 97836\n },\n {\n \"tag\": "Entelodon",\n \"popularity\": 97422\n },\n {\n \"tag\": "semischolastic",\n \"popularity\": 97010\n },\n {\n \"tag\": "somata",\n \"popularity\": 96602\n },\n {\n \"tag\": "expositorily",\n \"popularity\": 96195\n },\n {\n \"tag\": "bass",\n \"popularity\": 95792\n },\n {\n \"tag\": "calorimetry",\n \"popularity\": 95391\n },\n {\n \"tag\": "entireness",\n \"popularity\": 94993\n },\n {\n \"tag\": "ratline soppiness",\n \"popularity\": 94597\n },\n {\n \"tag\": "shor",\n \"popularity\": 94204\n },\n {\n \"tag\": "coprecipitation",\n \"popularity\": 93813\n },\n {\n \"tag\": "unblushingly",\n \"popularity\": 93425\n },\n {\n \"tag\": "macarize",\n \"popularity\": 93040\n },\n {\n \"tag\": "scruplesomeness",\n \"popularity\": 92657\n },\n {\n \"tag\": "offsaddle",\n \"popularity\": 92276\n },\n {\n \"tag\": "hypertragical",\n \"popularity\": 91898\n },\n {\n \"tag\": "uncassock loined",\n \"popularity\": 91522\n },\n {\n \"tag\": "interlobate",\n \"popularity\": 91149\n },\n {\n \"tag\": "releasor orrisroot stoloniferously",\n \"popularity\": 90778\n },\n {\n \"tag\": "elementoid",\n \"popularity\": 90410\n },\n {\n \"tag\": "Lentilla",\n \"popularity\": 90043\n },\n {\n \"tag\": "distressing",\n \"popularity\": 89679\n },\n {\n \"tag\": "hydrodrome",\n \"popularity\": 89318\n },\n {\n \"tag\": "Jeannette",\n \"popularity\": 88958\n },\n {\n \"tag\": "Kuli",\n \"popularity\": 88601\n },\n {\n \"tag\": "taxinomist",\n \"popularity\": 88246\n },\n {\n \"tag\": "southwestwardly",\n \"popularity\": 87894\n },\n {\n \"tag\": "polyparia",\n \"popularity\": 87543\n },\n {\n \"tag\": "exmeridian",\n \"popularity\": 87195\n },\n {\n \"tag\": "splenius regimentaled",\n \"popularity\": 86849\n },\n {\n \"tag\": "Sphaeropsidaceae",\n \"popularity\": 86505\n },\n {\n \"tag\": "unbegun",\n \"popularity\": 86163\n },\n {\n \"tag\": "something",\n \"popularity\": 85823\n },\n {\n \"tag\": "contaminable nonexpulsion",\n \"popularity\": 85486\n },\n {\n \"tag\": "douser",\n \"popularity\": 85150\n },\n {\n \"tag\": "prostrike",\n \"popularity\": 84817\n },\n {\n \"tag\": "worky",\n \"popularity\": 84485\n },\n {\n \"tag\": "folliful",\n \"popularity\": 84156\n },\n {\n \"tag\": "prioracy",\n \"popularity\": 83828\n },\n {\n \"tag\": "undermentioned",\n \"popularity\": 83503\n },\n {\n \"tag\": "Judaica",\n \"popularity\": 83179\n },\n {\n \"tag\": "multifarious",\n \"popularity\": 82858\n },\n {\n \"tag\": "poogye",\n \"popularity\": 82538\n },\n {\n \"tag\": "Sparganium",\n \"popularity\": 82221\n },\n {\n \"tag\": "thurrock",\n \"popularity\": 81905\n },\n {\n \"tag\": "outblush",\n \"popularity\": 81591\n },\n {\n \"tag\": "Strophanthus supraordination",\n \"popularity\": 81279\n },\n {\n \"tag\": "gingerroot",\n \"popularity\": 80969\n },\n {\n \"tag\": "unconscient",\n \"popularity\": 80661\n },\n {\n \"tag\": "unconstitutionally",\n \"popularity\": 80354\n },\n {\n \"tag\": "plaguily",\n \"popularity\": 80050\n },\n {\n \"tag\": "waterily equatorwards",\n \"popularity\": 79747\n },\n {\n \"tag\": "nondeposition",\n \"popularity\": 79446\n },\n {\n \"tag\": "dronishly",\n \"popularity\": 79147\n },\n {\n \"tag\": "gateado",\n \"popularity\": 78849\n },\n {\n \"tag\": "dislink",\n \"popularity\": 78553\n },\n {\n \"tag\": "Joceline",\n \"popularity\": 78259\n },\n {\n \"tag\": "amphiboliferous",\n \"popularity\": 77967\n },\n {\n \"tag\": "bushrope",\n \"popularity\": 77676\n },\n {\n \"tag\": "plumicorn sulphosalicylic",\n \"popularity\": 77387\n },\n {\n \"tag\": "nonefficiency",\n \"popularity\": 77100\n },\n {\n \"tag\": "hieroscopy",\n \"popularity\": 76815\n },\n {\n \"tag\": "causativeness",\n \"popularity\": 76531\n },\n {\n \"tag\": "swird paleoeremology",\n \"popularity\": 76249\n },\n {\n \"tag\": "camphoric",\n \"popularity\": 75968\n },\n {\n \"tag\": "retaining",\n \"popularity\": 75689\n },\n {\n \"tag\": "thyreoprotein",\n \"popularity\": 75411\n },\n {\n \"tag\": "carbona",\n \"popularity\": 75136\n },\n {\n \"tag\": "protectively",\n \"popularity\": 74861\n },\n {\n \"tag\": "mosasaur",\n \"popularity\": 74589\n },\n {\n \"tag\": "reciprocator",\n \"popularity\": 74317\n },\n {\n \"tag\": "detentive",\n \"popularity\": 74048\n },\n {\n \"tag\": "supravital",\n \"popularity\": 73780\n },\n {\n \"tag\": "Vespertilionidae",\n \"popularity\": 73513\n },\n {\n \"tag\": "parka",\n \"popularity\": 73248\n },\n {\n \"tag\": "pickaway",\n \"popularity\": 72984\n },\n {\n \"tag\": "oleaceous",\n \"popularity\": 72722\n },\n {\n \"tag\": "anticogitative",\n \"popularity\": 72462\n },\n {\n \"tag\": "woe",\n \"popularity\": 72203\n },\n {\n \"tag\": "skeuomorph",\n \"popularity\": 71945\n },\n {\n \"tag\": "helpmeet",\n \"popularity\": 71689\n },\n {\n \"tag\": "Hexactinellida brickmaking",\n \"popularity\": 71434\n },\n {\n \"tag\": "resink",\n \"popularity\": 71180\n },\n {\n \"tag\": "diluter",\n \"popularity\": 70928\n },\n {\n \"tag\": "micromicron",\n \"popularity\": 70677\n },\n {\n \"tag\": "parentage",\n \"popularity\": 70428\n },\n {\n \"tag\": "galactorrhoea",\n \"popularity\": 70180\n },\n {\n \"tag\": "gey",\n \"popularity\": 69934\n },\n {\n \"tag\": "gesticulatory",\n \"popularity\": 69689\n },\n {\n \"tag\": "wergil",\n \"popularity\": 69445\n },\n {\n \"tag\": "Lecanora",\n \"popularity\": 69202\n },\n {\n \"tag\": "malanders karst",\n \"popularity\": 68961\n },\n {\n \"tag\": "vibetoite",\n \"popularity\": 68721\n },\n {\n \"tag\": "unrequitedness",\n \"popularity\": 68483\n },\n {\n \"tag\": "outwash",\n \"popularity\": 68245\n },\n {\n \"tag\": "unsacred",\n \"popularity\": 68009\n },\n {\n \"tag\": "unabetted dividend",\n \"popularity\": 67775\n },\n {\n \"tag\": "untraveling",\n \"popularity\": 67541\n },\n {\n \"tag\": "thermobattery",\n \"popularity\": 67309\n },\n {\n \"tag\": "polypragmist",\n \"popularity\": 67078\n },\n {\n \"tag\": "irrefutableness",\n \"popularity\": 66848\n },\n {\n \"tag\": "remiges",\n \"popularity\": 66620\n },\n {\n \"tag\": "implode",\n \"popularity\": 66393\n },\n {\n \"tag\": "superfluousness",\n \"popularity\": 66166\n },\n {\n \"tag\": "croakily unalleviated",\n \"popularity\": 65942\n },\n {\n \"tag\": "edicule",\n \"popularity\": 65718\n },\n {\n \"tag\": "entophytous",\n \"popularity\": 65495\n },\n {\n \"tag\": "benefactorship Toryish",\n \"popularity\": 65274\n },\n {\n \"tag\": "pseudoamateurish",\n \"popularity\": 65054\n },\n {\n \"tag\": "flueless Iguanodontoidea snipnose",\n \"popularity\": 64835\n },\n {\n \"tag\": "zealotical Zamicrus interpole",\n \"popularity\": 64617\n },\n {\n \"tag\": "whereabout",\n \"popularity\": 64401\n },\n {\n \"tag\": "benzazide",\n \"popularity\": 64185\n },\n {\n \"tag\": "pokeweed",\n \"popularity\": 63971\n },\n {\n \"tag\": "calamitoid",\n \"popularity\": 63757\n },\n {\n \"tag\": "sporozoal",\n \"popularity\": 63545\n },\n {\n \"tag\": "physcioid Welshwoman",\n \"popularity\": 63334\n },\n {\n \"tag\": "wanting",\n \"popularity\": 63124\n },\n {\n \"tag\": "unencumbering",\n \"popularity\": 62915\n },\n {\n \"tag\": "Tupi",\n \"popularity\": 62707\n },\n {\n \"tag\": "potbank",\n \"popularity\": 62501\n },\n {\n \"tag\": "bulked",\n \"popularity\": 62295\n },\n {\n \"tag\": "uparise",\n \"popularity\": 62090\n },\n {\n \"tag\": "Sudra",\n \"popularity\": 61887\n },\n {\n \"tag\": "hyperscrupulosity",\n \"popularity\": 61684\n },\n {\n \"tag\": "subterraneously unmaid",\n \"popularity\": 61483\n },\n {\n \"tag\": "poisonousness",\n \"popularity\": 61282\n },\n {\n \"tag\": "phare",\n \"popularity\": 61083\n },\n {\n \"tag\": "dicynodont",\n \"popularity\": 60884\n },\n {\n \"tag\": "chewer",\n \"popularity\": 60687\n },\n {\n \"tag\": "uliginous",\n \"popularity\": 60490\n },\n {\n \"tag\": "tinman",\n \"popularity\": 60295\n },\n {\n \"tag\": "coconut",\n \"popularity\": 60100\n },\n {\n \"tag\": "phryganeoid",\n \"popularity\": 59907\n },\n {\n \"tag\": "bismillah",\n \"popularity\": 59714\n },\n {\n \"tag\": "tautomeric",\n \"popularity\": 59523\n },\n {\n \"tag\": "jerquer",\n \"popularity\": 59332\n },\n {\n \"tag\": "Dryopithecinae",\n \"popularity\": 59143\n },\n {\n \"tag\": "ghizite",\n \"popularity\": 58954\n },\n {\n \"tag\": "unliveable",\n \"popularity\": 58766\n },\n {\n \"tag\": "craftsmaster",\n \"popularity\": 58579\n },\n {\n \"tag\": "semiscenic",\n \"popularity\": 58394\n },\n {\n \"tag\": "danaid",\n \"popularity\": 58209\n },\n {\n \"tag\": "flawful",\n \"popularity\": 58025\n },\n {\n \"tag\": "risibleness",\n \"popularity\": 57841\n },\n {\n \"tag\": "Muscovite",\n \"popularity\": 57659\n },\n {\n \"tag\": "snaringly",\n \"popularity\": 57478\n },\n {\n \"tag\": "brilliantwise",\n \"popularity\": 57297\n },\n {\n \"tag\": "plebeity",\n \"popularity\": 57118\n },\n {\n \"tag\": "historicalness",\n \"popularity\": 56939\n },\n {\n \"tag\": "piecemeal",\n \"popularity\": 56761\n },\n {\n \"tag\": "maxillipedary",\n \"popularity\": 56584\n },\n {\n \"tag\": "Hypenantron",\n \"popularity\": 56408\n },\n {\n \"tag\": "quaintness avigate",\n \"popularity\": 56233\n },\n {\n \"tag\": "ave",\n \"popularity\": 56059\n },\n {\n \"tag\": "mediaevally",\n \"popularity\": 55885\n },\n {\n \"tag\": "brucite",\n \"popularity\": 55712\n },\n {\n \"tag\": "Schwendenerian",\n \"popularity\": 55541\n },\n {\n \"tag\": "julole",\n \"popularity\": 55370\n },\n {\n \"tag\": "palaeolith",\n \"popularity\": 55199\n },\n {\n \"tag\": "cotyledonary",\n \"popularity\": 55030\n },\n {\n \"tag\": "rond",\n \"popularity\": 54861\n },\n {\n \"tag\": "boomster tassoo",\n \"popularity\": 54694\n },\n {\n \"tag\": "cattishly",\n \"popularity\": 54527\n },\n {\n \"tag\": "tonguefence",\n \"popularity\": 54360\n },\n {\n \"tag\": "hexastylar triskele",\n \"popularity\": 54195\n },\n {\n \"tag\": "ariot",\n \"popularity\": 54030\n },\n {\n \"tag\": "intarsist",\n \"popularity\": 53867\n },\n {\n \"tag\": "Oscines",\n \"popularity\": 53704\n },\n {\n \"tag\": "Spaniolize",\n \"popularity\": 53541\n },\n {\n \"tag\": "smellfungus",\n \"popularity\": 53380\n },\n {\n \"tag\": "redisplay",\n \"popularity\": 53219\n },\n {\n \"tag\": "phosphene",\n \"popularity\": 53059\n },\n {\n \"tag\": "phycomycete",\n \"popularity\": 52900\n },\n {\n \"tag\": "prophetic",\n \"popularity\": 52741\n },\n {\n \"tag\": "overtrustful",\n \"popularity\": 52584\n },\n {\n \"tag\": "pinitol",\n \"popularity\": 52427\n },\n {\n \"tag\": "asthmatic",\n \"popularity\": 52270\n },\n {\n \"tag\": "convulsive",\n \"popularity\": 52115\n },\n {\n \"tag\": "draughtswoman",\n \"popularity\": 51960\n },\n {\n \"tag\": "unetymologizable",\n \"popularity\": 51806\n },\n {\n \"tag\": "centrarchoid",\n \"popularity\": 51652\n },\n {\n \"tag\": "mesioincisal",\n \"popularity\": 51500\n },\n {\n \"tag\": "transbaikal",\n \"popularity\": 51348\n },\n {\n \"tag\": "silveriness",\n \"popularity\": 51196\n },\n {\n \"tag\": "costotomy",\n \"popularity\": 51046\n },\n {\n \"tag\": "caracore",\n \"popularity\": 50896\n },\n {\n \"tag\": "depotentiation",\n \"popularity\": 50747\n },\n {\n \"tag\": "glossoepiglottidean",\n \"popularity\": 50598\n },\n {\n \"tag\": "upswell",\n \"popularity\": 50450\n },\n {\n \"tag\": "flecnodal",\n \"popularity\": 50303\n },\n {\n \"tag\": "coventrate",\n \"popularity\": 50157\n },\n {\n \"tag\": "duchesse",\n \"popularity\": 50011\n },\n {\n \"tag\": "excisemanship trophied",\n \"popularity\": 49866\n },\n {\n \"tag\": "cytinaceous",\n \"popularity\": 49721\n },\n {\n \"tag\": "assuringly",\n \"popularity\": 49577\n },\n {\n \"tag\": "unconducted upliftitis",\n \"popularity\": 49434\n },\n {\n \"tag\": "rachicentesis",\n \"popularity\": 49292\n },\n {\n \"tag\": "antiangular",\n \"popularity\": 49150\n },\n {\n \"tag\": "advisal",\n \"popularity\": 49008\n },\n {\n \"tag\": "birdcatcher",\n \"popularity\": 48868\n },\n {\n \"tag\": "secularistic",\n \"popularity\": 48728\n },\n {\n \"tag\": "grandeeism superinformal",\n \"popularity\": 48588\n },\n {\n \"tag\": "unapprehension",\n \"popularity\": 48449\n },\n {\n \"tag\": "excipulum",\n \"popularity\": 48311\n },\n {\n \"tag\": "decimole",\n \"popularity\": 48174\n },\n {\n \"tag\": "semidrachm",\n \"popularity\": 48037\n },\n {\n \"tag\": "uvulotome",\n \"popularity\": 47901\n },\n {\n \"tag\": "Lemaneaceae",\n \"popularity\": 47765\n },\n {\n \"tag\": "corrade",\n \"popularity\": 47630\n },\n {\n \"tag\": "Kuroshio",\n \"popularity\": 47495\n },\n {\n \"tag\": "Araliophyllum",\n \"popularity\": 47361\n },\n {\n \"tag\": "victoriousness cardiosphygmograph",\n \"popularity\": 47228\n },\n {\n \"tag\": "reinvent",\n \"popularity\": 47095\n },\n {\n \"tag\": "Macrotolagus",\n \"popularity\": 46963\n },\n {\n \"tag\": "strenuousness",\n \"popularity\": 46831\n },\n {\n \"tag\": "deviability",\n \"popularity\": 46700\n },\n {\n \"tag\": "phyllospondylous",\n \"popularity\": 46570\n },\n {\n \"tag\": "bisect rudderhole",\n \"popularity\": 46440\n },\n {\n \"tag\": "crownwork",\n \"popularity\": 46311\n },\n {\n \"tag\": "Ascalabota",\n \"popularity\": 46182\n },\n {\n \"tag\": "prostatomyomectomy",\n \"popularity\": 46054\n },\n {\n \"tag\": "neurosyphilis",\n \"popularity\": 45926\n },\n {\n \"tag\": "tabloid scraplet",\n \"popularity\": 45799\n },\n {\n \"tag\": "nonmedullated servility",\n \"popularity\": 45673\n },\n {\n \"tag\": "melopoeic practicalization",\n \"popularity\": 45547\n },\n {\n \"tag\": "nonrhythmic",\n \"popularity\": 45421\n },\n {\n \"tag\": "deplorer",\n \"popularity\": 45296\n },\n {\n \"tag\": "Ophion",\n \"popularity\": 45172\n },\n {\n \"tag\": "subprioress",\n \"popularity\": 45048\n },\n {\n \"tag\": "semiregular",\n \"popularity\": 44925\n },\n {\n \"tag\": "praelection",\n \"popularity\": 44802\n },\n {\n \"tag\": "discinct",\n \"popularity\": 44680\n },\n {\n \"tag\": "preplace",\n \"popularity\": 44558\n },\n {\n \"tag\": "paternoster",\n \"popularity\": 44437\n },\n {\n \"tag\": "suboccipital",\n \"popularity\": 44316\n },\n {\n \"tag\": "Teutophil",\n \"popularity\": 44196\n },\n {\n \"tag\": "tracheole",\n \"popularity\": 44076\n },\n {\n \"tag\": "subsmile",\n \"popularity\": 43957\n },\n {\n \"tag\": "nonapostatizing",\n \"popularity\": 43839\n },\n {\n \"tag\": "cleidotomy",\n \"popularity\": 43720\n },\n {\n \"tag\": "hingle",\n \"popularity\": 43603\n },\n {\n \"tag\": "jocoque",\n \"popularity\": 43486\n },\n {\n \"tag\": "trundler notidanian",\n \"popularity\": 43369\n },\n {\n \"tag\": "strangling misdaub",\n \"popularity\": 43253\n },\n {\n \"tag\": "noncancellable",\n \"popularity\": 43137\n },\n {\n \"tag\": "lavabo",\n \"popularity\": 43022\n },\n {\n \"tag\": "lanterloo",\n \"popularity\": 42907\n },\n {\n \"tag\": "uncitizenly",\n \"popularity\": 42793\n },\n {\n \"tag\": "autoturning",\n \"popularity\": 42679\n },\n {\n \"tag\": "Haganah",\n \"popularity\": 42566\n },\n {\n \"tag\": "Glecoma",\n \"popularity\": 42453\n },\n {\n \"tag\": "membered",\n \"popularity\": 42341\n },\n {\n \"tag\": "consuetudinal",\n \"popularity\": 42229\n },\n {\n \"tag\": "gatehouse",\n \"popularity\": 42117\n },\n {\n \"tag\": "tetherball",\n \"popularity\": 42006\n },\n {\n \"tag\": "counterrevolutionist numismatical",\n \"popularity\": 41896\n },\n {\n \"tag\": "pagehood plateiasmus",\n \"popularity\": 41786\n },\n {\n \"tag\": "pelterer",\n \"popularity\": 41676\n },\n {\n \"tag\": "splenemphraxis",\n \"popularity\": 41567\n },\n {\n \"tag\": "Crypturidae",\n \"popularity\": 41458\n },\n {\n \"tag\": "caboodle",\n \"popularity\": 41350\n },\n {\n \"tag\": "Filaria",\n \"popularity\": 41242\n },\n {\n \"tag\": "noninvincibility",\n \"popularity\": 41135\n },\n {\n \"tag\": "preadvertisement",\n \"popularity\": 41028\n },\n {\n \"tag\": "bathrobe",\n \"popularity\": 40921\n },\n {\n \"tag\": "nitrifier",\n \"popularity\": 40815\n },\n {\n \"tag\": "furthermore",\n \"popularity\": 40709\n },\n {\n \"tag\": "recrate",\n \"popularity\": 40604\n },\n {\n \"tag\": "inexist",\n \"popularity\": 40499\n },\n {\n \"tag\": "Mocoan",\n \"popularity\": 40395\n },\n {\n \"tag\": "forint",\n \"popularity\": 40291\n },\n {\n \"tag\": "cardiomyoliposis",\n \"popularity\": 40187\n },\n {\n \"tag\": "channeling",\n \"popularity\": 40084\n },\n {\n \"tag\": "quebrachine",\n \"popularity\": 39981\n },\n {\n \"tag\": "magistery",\n \"popularity\": 39879\n },\n {\n \"tag\": "koko",\n \"popularity\": 39777\n },\n {\n \"tag\": "nobilify",\n \"popularity\": 39676\n },\n {\n \"tag\": "articulate taprooted",\n \"popularity\": 39575\n },\n {\n \"tag\": "cardiotonic Nicaragua",\n \"popularity\": 39474\n },\n {\n \"tag\": "assertiveness",\n \"popularity\": 39374\n },\n {\n \"tag\": "springtail",\n \"popularity\": 39274\n },\n {\n \"tag\": "spontoon",\n \"popularity\": 39174\n },\n {\n \"tag\": "plesiobiosis",\n \"popularity\": 39075\n },\n {\n \"tag\": "rooinek",\n \"popularity\": 38976\n },\n {\n \"tag\": "hairif falsehood",\n \"popularity\": 38878\n },\n {\n \"tag\": "synodally",\n \"popularity\": 38780\n },\n {\n \"tag\": "biodynamics",\n \"popularity\": 38683\n },\n {\n \"tag\": "trickling",\n \"popularity\": 38585\n },\n {\n \"tag\": "oxfly daystar",\n \"popularity\": 38489\n },\n {\n \"tag\": "epicycloidal",\n \"popularity\": 38392\n },\n {\n \"tag\": "shorthand",\n \"popularity\": 38296\n },\n {\n \"tag\": "herpolhode",\n \"popularity\": 38201\n },\n {\n \"tag\": "polysynthesism",\n \"popularity\": 38105\n },\n {\n \"tag\": "cany",\n \"popularity\": 38010\n },\n {\n \"tag\": "sideage",\n \"popularity\": 37916\n },\n {\n \"tag\": "strainableness",\n \"popularity\": 37822\n },\n {\n \"tag\": "superformidable",\n \"popularity\": 37728\n },\n {\n \"tag\": "slendang",\n \"popularity\": 37634\n },\n {\n \"tag\": "impropriation",\n \"popularity\": 37541\n },\n {\n \"tag\": "ficklehearted",\n \"popularity\": 37449\n },\n {\n \"tag\": "wintrify",\n \"popularity\": 37356\n },\n {\n \"tag\": "geomorphogenist",\n \"popularity\": 37264\n },\n {\n \"tag\": "smuggleable",\n \"popularity\": 37173\n },\n {\n \"tag\": "delapsion",\n \"popularity\": 37081\n },\n {\n \"tag\": "projective",\n \"popularity\": 36990\n },\n {\n \"tag\": "unglue exfoliation",\n \"popularity\": 36900\n },\n {\n \"tag\": "Acerae",\n \"popularity\": 36810\n },\n {\n \"tag\": "unstaged",\n \"popularity\": 36720\n },\n {\n \"tag\": "ranal",\n \"popularity\": 36630\n },\n {\n \"tag\": "worrier",\n \"popularity\": 36541\n },\n {\n \"tag\": "unhid",\n \"popularity\": 36452\n },\n {\n \"tag\": "adequation",\n \"popularity\": 36363\n },\n {\n \"tag\": "strongylid Sokotri",\n \"popularity\": 36275\n },\n {\n \"tag\": "fumingly",\n \"popularity\": 36187\n },\n {\n \"tag\": "gynosporangium phaenogenetic",\n \"popularity\": 36100\n },\n {\n \"tag\": "uniunguiculate",\n \"popularity\": 36012\n },\n {\n \"tag\": "prudelike",\n \"popularity\": 35926\n },\n {\n \"tag\": "seminomata",\n \"popularity\": 35839\n },\n {\n \"tag\": "trinklet",\n \"popularity\": 35753\n },\n {\n \"tag\": "risorial",\n \"popularity\": 35667\n },\n {\n \"tag\": "pericardiocentesis",\n \"popularity\": 35581\n },\n {\n \"tag\": "filmist",\n \"popularity\": 35496\n },\n {\n \"tag\": "Nana",\n \"popularity\": 35411\n }]'; //,\n {\n \"tag\": "cynipoid",\n \"popularity\": 35326\n },\n {\n \"tag\": "cteniform",\n \"popularity\": 35242\n },\n {\n \"tag\": "semiflex",\n \"popularity\": 35158\n },\n {\n \"tag\": "solstitially",\n \"popularity\": 35074\n },\n {\n \"tag\": "Algarsife",\n \"popularity\": 34991\n },\n {\n \"tag\": "noncriminal",\n \"popularity\": 34908\n },\n {\n \"tag\": "compassion",\n \"popularity\": 34825\n },\n {\n \"tag\": "Buddhic",\n \"popularity\": 34743\n },\n {\n \"tag\": "vellicative dactylically hotfoot",\n \"popularity\": 34661\n },\n {\n \"tag\": "chicory",\n \"popularity\": 34579\n },\n {\n \"tag\": "transperitoneally",\n \"popularity\": 34497\n },\n {\n \"tag\": "pennae",\n \"popularity\": 34416\n },\n {\n \"tag\": "Flamandize",\n \"popularity\": 34335\n },\n {\n \"tag\": "underviewer",\n \"popularity\": 34254\n },\n {\n \"tag\": "assoil",\n \"popularity\": 34174\n },\n {\n \"tag\": "saccharobacillus",\n \"popularity\": 34094\n },\n {\n \"tag\": "biacetylene",\n \"popularity\": 34014\n },\n {\n \"tag\": "mouchardism",\n \"popularity\": 33935\n },\n {\n \"tag\": "anisomeric",\n \"popularity\": 33856\n },\n {\n \"tag\": "digestive",\n \"popularity\": 33777\n },\n {\n \"tag\": "darlingly",\n \"popularity\": 33698\n },\n {\n \"tag\": "liman",\n \"popularity\": 33620\n },\n {\n \"tag\": "soldanrie",\n \"popularity\": 33542\n },\n {\n \"tag\": "sully",\n \"popularity\": 33464\n },\n {\n \"tag\": "brightsmith",\n \"popularity\": 33387\n },\n {\n \"tag\": "inwrap antiliturgist ureterocervical",\n \"popularity\": 33309\n },\n {\n \"tag\": "discommodity",\n \"popularity\": 33232\n },\n {\n \"tag\": "typical aggrandizer",\n \"popularity\": 33156\n },\n {\n \"tag\": "xenogeny",\n \"popularity\": 33079\n },\n {\n \"tag\": "uncountrified",\n \"popularity\": 33003\n },\n {\n \"tag\": "Podarge",\n \"popularity\": 32928\n },\n {\n \"tag\": "uninterviewed",\n \"popularity\": 32852\n },\n {\n \"tag\": "underprior",\n \"popularity\": 32777\n },\n {\n \"tag\": "leiomyomatous",\n \"popularity\": 32702\n },\n {\n \"tag\": "postdysenteric",\n \"popularity\": 32627\n },\n {\n \"tag\": "Fusicladium",\n \"popularity\": 32553\n },\n {\n \"tag\": "Dulcinea",\n \"popularity\": 32478\n },\n {\n \"tag\": "interspersion",\n \"popularity\": 32404\n },\n {\n \"tag\": "preobligate",\n \"popularity\": 32331\n },\n {\n \"tag\": "subaggregate",\n \"popularity\": 32257\n },\n {\n \"tag\": "grammarianism",\n \"popularity\": 32184\n },\n {\n \"tag\": "palikar",\n \"popularity\": 32111\n },\n {\n \"tag\": "facileness",\n \"popularity\": 32039\n },\n {\n \"tag\": "deuterofibrinose",\n \"popularity\": 31966\n },\n {\n \"tag\": "pseudesthesia",\n \"popularity\": 31894\n },\n {\n \"tag\": "sedimentary",\n \"popularity\": 31822\n },\n {\n \"tag\": "typewrite",\n \"popularity\": 31751\n },\n {\n \"tag\": "immemorable",\n \"popularity\": 31679\n },\n {\n \"tag\": "Myrtus",\n \"popularity\": 31608\n },\n {\n \"tag\": "hauchecornite",\n \"popularity\": 31537\n },\n {\n \"tag\": "galleylike",\n \"popularity\": 31467\n },\n {\n \"tag\": "thimber",\n \"popularity\": 31396\n },\n {\n \"tag\": "Hegelianism",\n \"popularity\": 31326\n },\n {\n \"tag\": "strig",\n \"popularity\": 31256\n },\n {\n \"tag\": "skyre",\n \"popularity\": 31187\n },\n {\n \"tag\": "eupepticism",\n \"popularity\": 31117\n },\n {\n \"tag\": "eponymism",\n \"popularity\": 31048\n },\n {\n \"tag\": "flunkeyhood",\n \"popularity\": 30979\n },\n {\n \"tag\": "Abama",\n \"popularity\": 30911\n },\n {\n \"tag\": "adiadochokinesis",\n \"popularity\": 30842\n },\n {\n \"tag\": "spendthrifty",\n \"popularity\": 30774\n },\n {\n \"tag\": "chalcedony",\n \"popularity\": 30706\n },\n {\n \"tag\": "authorism",\n \"popularity\": 30638\n },\n {\n \"tag\": "nasturtium",\n \"popularity\": 30571\n },\n {\n \"tag\": "Acanthocereus",\n \"popularity\": 30504\n },\n {\n \"tag\": "uncollapsible",\n \"popularity\": 30437\n },\n {\n \"tag\": "excursionist",\n \"popularity\": 30370\n },\n {\n \"tag\": "fogbow",\n \"popularity\": 30303\n },\n {\n \"tag\": "overlie",\n \"popularity\": 30237\n },\n {\n \"tag\": "velours",\n \"popularity\": 30171\n },\n {\n \"tag\": "zoodendria madrigal stagbush",\n \"popularity\": 30105\n },\n {\n \"tag\": "imi",\n \"popularity\": 30039\n },\n {\n \"tag\": "cojudge",\n \"popularity\": 29974\n },\n {\n \"tag\": "depurate argal",\n \"popularity\": 29909\n },\n {\n \"tag\": "unrecognition",\n \"popularity\": 29844\n },\n {\n \"tag\": "paunchful",\n \"popularity\": 29779\n },\n {\n \"tag\": "invalued",\n \"popularity\": 29714\n },\n {\n \"tag\": "probang",\n \"popularity\": 29650\n },\n {\n \"tag\": "chetvert",\n \"popularity\": 29586\n },\n {\n \"tag\": "enactable",\n \"popularity\": 29522\n },\n {\n \"tag\": "detoxicate adhibit",\n \"popularity\": 29458\n },\n {\n \"tag\": "kullaite",\n \"popularity\": 29395\n },\n {\n \"tag\": "undazzling",\n \"popularity\": 29332\n },\n {\n \"tag\": "excalation",\n \"popularity\": 29269\n },\n {\n \"tag\": "sievings",\n \"popularity\": 29206\n },\n {\n \"tag\": "disenthral",\n \"popularity\": 29143\n },\n {\n \"tag\": "disinterestedly",\n \"popularity\": 29081\n },\n {\n \"tag\": "stanner",\n \"popularity\": 29018\n },\n {\n \"tag\": "recapitulative",\n \"popularity\": 28956\n },\n {\n \"tag\": "objectivist",\n \"popularity\": 28895\n },\n {\n \"tag\": "hypermetropia",\n \"popularity\": 28833\n },\n {\n \"tag\": "incumbency",\n \"popularity\": 28772\n },\n {\n \"tag\": "protegee",\n \"popularity\": 28711\n },\n {\n \"tag\": "zealotic",\n \"popularity\": 28650\n },\n {\n \"tag\": "predebit",\n \"popularity\": 28589\n },\n {\n \"tag\": "cupolar",\n \"popularity\": 28528\n },\n {\n \"tag\": "unattributed",\n \"popularity\": 28468\n },\n {\n \"tag\": "louisine",\n \"popularity\": 28408\n },\n {\n \"tag\": "illustrate",\n \"popularity\": 28348\n },\n {\n \"tag\": "inofficiousness",\n \"popularity\": 28288\n },\n {\n \"tag\": "Americawards",\n \"popularity\": 28228\n },\n {\n \"tag\": "foreflap",\n \"popularity\": 28169\n },\n {\n \"tag\": "eruditeness",\n \"popularity\": 28110\n },\n {\n \"tag\": "copiopsia",\n \"popularity\": 28051\n },\n {\n \"tag\": "sporuliferous",\n \"popularity\": 27992\n },\n {\n \"tag\": "muttering",\n \"popularity\": 27934\n },\n {\n \"tag\": "prepsychology adrip",\n \"popularity\": 27875\n },\n {\n \"tag\": "unfriendly",\n \"popularity\": 27817\n },\n {\n \"tag\": "sulphanilic",\n \"popularity\": 27759\n },\n {\n \"tag\": "Coelococcus",\n \"popularity\": 27701\n },\n {\n \"tag\": "undoubtfulness",\n \"popularity\": 27643\n },\n {\n \"tag\": "flaringly",\n \"popularity\": 27586\n },\n {\n \"tag\": "unordain",\n \"popularity\": 27529\n },\n {\n \"tag\": "fratchety",\n \"popularity\": 27472\n },\n {\n \"tag\": "decadentism dolefully",\n \"popularity\": 27415\n },\n {\n \"tag\": "synthronus",\n \"popularity\": 27358\n },\n {\n \"tag\": "maiid",\n \"popularity\": 27301\n },\n {\n \"tag\": "rhinobyon",\n \"popularity\": 27245\n },\n {\n \"tag\": "Didynamia",\n \"popularity\": 27189\n },\n {\n \"tag\": "millionairedom",\n \"popularity\": 27133\n },\n {\n \"tag\": "mulierine",\n \"popularity\": 27077\n },\n {\n \"tag\": "Mayo",\n \"popularity\": 27021\n },\n {\n \"tag\": "perceivedness",\n \"popularity\": 26966\n },\n {\n \"tag\": "unadoration",\n \"popularity\": 26911\n },\n {\n \"tag\": "regraft",\n \"popularity\": 26856\n },\n {\n \"tag\": "witch",\n \"popularity\": 26801\n },\n {\n \"tag\": "ungrow",\n \"popularity\": 26746\n },\n {\n \"tag\": "glossopharyngeus",\n \"popularity\": 26691\n },\n {\n \"tag\": "unstirrable",\n \"popularity\": 26637\n },\n {\n \"tag\": "synodsman",\n \"popularity\": 26583\n },\n {\n \"tag\": "placentalian",\n \"popularity\": 26529\n },\n {\n \"tag\": "corpulently",\n \"popularity\": 26475\n },\n {\n \"tag\": "photochromoscope",\n \"popularity\": 26421\n },\n {\n \"tag\": "indusiate retinasphaltum chokestrap",\n \"popularity\": 26368\n },\n {\n \"tag\": "murdrum",\n \"popularity\": 26314\n },\n {\n \"tag\": "belatedness",\n \"popularity\": 26261\n },\n {\n \"tag\": "Cochin",\n \"popularity\": 26208\n },\n {\n \"tag\": "Leonist",\n \"popularity\": 26155\n },\n {\n \"tag\": "keeker confined",\n \"popularity\": 26102\n },\n {\n \"tag\": "unintellectual",\n \"popularity\": 26050\n },\n {\n \"tag\": "nymphaline bait",\n \"popularity\": 25997\n },\n {\n \"tag\": "sarcosporidiosis",\n \"popularity\": 25945\n },\n {\n \"tag\": "catawamptiously",\n \"popularity\": 25893\n },\n {\n \"tag\": "outshame",\n \"popularity\": 25841\n },\n {\n \"tag\": "animalism",\n \"popularity\": 25790\n },\n {\n \"tag\": "epithalamial",\n \"popularity\": 25738\n },\n {\n \"tag\": "ganner",\n \"popularity\": 25687\n },\n {\n \"tag\": "desilicify",\n \"popularity\": 25635\n },\n {\n \"tag\": "dandyism",\n \"popularity\": 25584\n },\n {\n \"tag\": "hyleg",\n \"popularity\": 25533\n },\n {\n \"tag\": "photophysical",\n \"popularity\": 25483\n },\n {\n \"tag\": "underload",\n \"popularity\": 25432\n },\n {\n \"tag\": "unintrusive",\n \"popularity\": 25382\n },\n {\n \"tag\": "succinamic",\n \"popularity\": 25331\n },\n {\n \"tag\": "matchy",\n \"popularity\": 25281\n },\n {\n \"tag\": "concordal",\n \"popularity\": 25231\n },\n {\n \"tag\": "exteriority",\n \"popularity\": 25181\n },\n {\n \"tag\": "sterculiad",\n \"popularity\": 25132\n },\n {\n \"tag\": "sulfoxylic",\n \"popularity\": 25082\n },\n {\n \"tag\": "oversubscription",\n \"popularity\": 25033\n },\n {\n \"tag\": "chiasmic",\n \"popularity\": 24984\n },\n {\n \"tag\": "pseudoparthenogenesis",\n \"popularity\": 24935\n },\n {\n \"tag\": "indorse",\n \"popularity\": 24886\n },\n {\n \"tag\": "Krishnaite",\n \"popularity\": 24837\n },\n {\n \"tag\": "calcinize",\n \"popularity\": 24788\n },\n {\n \"tag\": "rhodium",\n \"popularity\": 24740\n },\n {\n \"tag\": "tragopan",\n \"popularity\": 24692\n },\n {\n \"tag\": "overwhelmingly",\n \"popularity\": 24643\n },\n {\n \"tag\": "procidence accorporate",\n \"popularity\": 24595\n },\n {\n \"tag\": "polemize speelless",\n \"popularity\": 24548\n },\n {\n \"tag\": "radiocarpal goran",\n \"popularity\": 24500\n },\n {\n \"tag\": "counteroffer Pelodytes",\n \"popularity\": 24452\n },\n {\n \"tag\": "lionhearted",\n \"popularity\": 24405\n },\n {\n \"tag\": "paramastoid",\n \"popularity\": 24358\n },\n {\n \"tag\": "murine",\n \"popularity\": 24310\n },\n {\n \"tag\": "woodbined",\n \"popularity\": 24263\n },\n {\n \"tag\": "packthread",\n \"popularity\": 24217\n },\n {\n \"tag\": "citreous",\n \"popularity\": 24170\n },\n {\n \"tag\": "unfallaciously",\n \"popularity\": 24123\n },\n {\n \"tag\": "tentwork reincarnadine",\n \"popularity\": 24077\n },\n {\n \"tag\": "verminousness",\n \"popularity\": 24030\n },\n {\n \"tag\": "sillometer",\n \"popularity\": 23984\n },\n {\n \"tag\": "jointy",\n \"popularity\": 23938\n },\n {\n \"tag\": "streptolysin",\n \"popularity\": 23892\n },\n {\n \"tag\": "Florentinism",\n \"popularity\": 23847\n },\n {\n \"tag\": "monosomatous",\n \"popularity\": 23801\n },\n {\n \"tag\": "capsulociliary",\n \"popularity\": 23756\n },\n {\n \"tag\": "organum",\n \"popularity\": 23710\n },\n {\n \"tag\": "overtly",\n \"popularity\": 23665\n },\n {\n \"tag\": "ophthalmoscopical",\n \"popularity\": 23620\n },\n {\n \"tag\": "supposititiously",\n \"popularity\": 23575\n },\n {\n \"tag\": "radiochemistry",\n \"popularity\": 23530\n },\n {\n \"tag\": "flaxtail",\n \"popularity\": 23486\n },\n {\n \"tag\": "pretympanic",\n \"popularity\": 23441\n },\n {\n \"tag\": "auscultation",\n \"popularity\": 23397\n },\n {\n \"tag\": "hairdresser",\n \"popularity\": 23352\n },\n {\n \"tag\": "chaffless",\n \"popularity\": 23308\n },\n {\n \"tag\": "polioencephalitis",\n \"popularity\": 23264\n },\n {\n \"tag\": "axolotl",\n \"popularity\": 23220\n },\n {\n \"tag\": "smous",\n \"popularity\": 23177\n },\n {\n \"tag\": "morgen disenamour toothed",\n \"popularity\": 23133\n },\n {\n \"tag\": "chaiseless",\n \"popularity\": 23089\n },\n {\n \"tag\": "frugally",\n \"popularity\": 23046\n },\n {\n \"tag\": "combustive antievolutionist cinenegative",\n \"popularity\": 23003\n },\n {\n \"tag\": "malacolite",\n \"popularity\": 22960\n },\n {\n \"tag\": "borne",\n \"popularity\": 22917\n },\n {\n \"tag\": "mercaptole",\n \"popularity\": 22874\n },\n {\n \"tag\": "judicatory",\n \"popularity\": 22831\n },\n {\n \"tag\": "noctivagation",\n \"popularity\": 22789\n },\n {\n \"tag\": "synthete",\n \"popularity\": 22746\n },\n {\n \"tag\": "tomboyism",\n \"popularity\": 22704\n },\n {\n \"tag\": "serranoid",\n \"popularity\": 22661\n },\n {\n \"tag\": "impostorism",\n \"popularity\": 22619\n },\n {\n \"tag\": "flagellosis Talitha",\n \"popularity\": 22577\n },\n {\n \"tag\": "pseudoviscous",\n \"popularity\": 22535\n },\n {\n \"tag\": "Galleriidae",\n \"popularity\": 22494\n },\n {\n \"tag\": "undulation didelph Comintern",\n \"popularity\": 22452\n },\n {\n \"tag\": "triangulopyramidal",\n \"popularity\": 22411\n },\n {\n \"tag\": "middlings",\n \"popularity\": 22369\n },\n {\n \"tag\": "piperazin",\n \"popularity\": 22328\n },\n {\n \"tag\": "endostitis",\n \"popularity\": 22287\n },\n {\n \"tag\": "swordlike",\n \"popularity\": 22246\n },\n {\n \"tag\": "forthwith",\n \"popularity\": 22205\n },\n {\n \"tag\": "menaceful",\n \"popularity\": 22164\n },\n {\n \"tag\": "explantation defective",\n \"popularity\": 22123\n },\n {\n \"tag\": "arrear",\n \"popularity\": 22083\n },\n {\n \"tag\": "engraft",\n \"popularity\": 22042\n },\n {\n \"tag\": "revolunteer",\n \"popularity\": 22002\n },\n {\n \"tag\": "foliaceous",\n \"popularity\": 21962\n },\n {\n \"tag\": "pseudograph",\n \"popularity\": 21922\n },\n {\n \"tag\": "maenaite",\n \"popularity\": 21882\n },\n {\n \"tag\": "interfinger",\n \"popularity\": 21842\n },\n {\n \"tag\": "macroscopically",\n \"popularity\": 21802\n },\n {\n \"tag\": "bluewood",\n \"popularity\": 21762\n },\n {\n \"tag\": "chikara",\n \"popularity\": 21723\n },\n {\n \"tag\": "reprehension diazeuxis nickelous",\n \"popularity\": 21683\n },\n {\n \"tag\": "vacuation",\n \"popularity\": 21644\n },\n {\n \"tag\": "Sartish",\n \"popularity\": 21605\n },\n {\n \"tag\": "pseudogyny",\n \"popularity\": 21566\n },\n {\n \"tag\": "friedcake",\n \"popularity\": 21527\n },\n {\n \"tag\": "thraw",\n \"popularity\": 21488\n },\n {\n \"tag\": "bifid",\n \"popularity\": 21449\n },\n {\n \"tag\": "truthlessly",\n \"popularity\": 21411\n },\n {\n \"tag\": "lungy",\n \"popularity\": 21372\n },\n {\n \"tag\": "fluoborite",\n \"popularity\": 21334\n },\n {\n \"tag\": "anthropolithic",\n \"popularity\": 21295\n },\n {\n \"tag\": "coachee straw",\n \"popularity\": 21257\n },\n {\n \"tag\": "dehorner Grecize",\n \"popularity\": 21219\n },\n {\n \"tag\": "spondylopyosis",\n \"popularity\": 21181\n },\n {\n \"tag\": "institutionary",\n \"popularity\": 21143\n },\n {\n \"tag\": "agentry",\n \"popularity\": 21105\n },\n {\n \"tag\": "musing bietle",\n \"popularity\": 21068\n },\n {\n \"tag\": "cormophyte",\n \"popularity\": 21030\n },\n {\n \"tag\": "semielliptic",\n \"popularity\": 20993\n },\n {\n \"tag\": "ependytes",\n \"popularity\": 20955\n },\n {\n \"tag\": "coachmaster",\n \"popularity\": 20918\n },\n {\n \"tag\": "overexuberant",\n \"popularity\": 20881\n },\n {\n \"tag\": "selectable",\n \"popularity\": 20844\n },\n {\n \"tag\": "saclike",\n \"popularity\": 20807\n },\n {\n \"tag\": "mullion",\n \"popularity\": 20770\n },\n {\n \"tag\": "pantheonize prevalency",\n \"popularity\": 20733\n },\n {\n \"tag\": "trophosperm",\n \"popularity\": 20697\n },\n {\n \"tag\": "paraphrasist",\n \"popularity\": 20660\n },\n {\n \"tag\": "undercarry",\n \"popularity\": 20624\n },\n {\n \"tag\": "thallogenic",\n \"popularity\": 20587\n },\n {\n \"tag\": "bulgy forbid",\n \"popularity\": 20551\n },\n {\n \"tag\": "proliquor gratulatory",\n \"popularity\": 20515\n },\n {\n \"tag\": "booker",\n \"popularity\": 20479\n },\n {\n \"tag\": "wizen",\n \"popularity\": 20443\n },\n {\n \"tag\": "synchondrosially",\n \"popularity\": 20407\n },\n {\n \"tag\": "herbless",\n \"popularity\": 20371\n },\n {\n \"tag\": "arfvedsonite",\n \"popularity\": 20336\n },\n {\n \"tag\": "Neuroptera",\n \"popularity\": 20300\n },\n {\n \"tag\": "fingerstone",\n \"popularity\": 20265\n },\n {\n \"tag\": "Odontoglossae",\n \"popularity\": 20229\n },\n {\n \"tag\": "transmigrator",\n \"popularity\": 20194\n },\n {\n \"tag\": "Dehaites",\n \"popularity\": 20159\n },\n {\n \"tag\": "Molinist",\n \"popularity\": 20124\n },\n {\n \"tag\": "novelistic",\n \"popularity\": 20089\n },\n {\n \"tag\": "astelic",\n \"popularity\": 20054\n },\n {\n \"tag\": "pyelometry",\n \"popularity\": 20019\n },\n {\n \"tag\": "pigmentation",\n \"popularity\": 19984\n },\n {\n \"tag\": "epinaos",\n \"popularity\": 19950\n },\n {\n \"tag\": "outdare",\n \"popularity\": 19915\n },\n {\n \"tag\": "Funje philaristocracy",\n \"popularity\": 19881\n },\n {\n \"tag\": "keddah",\n \"popularity\": 19846\n },\n {\n \"tag\": "axoidean",\n \"popularity\": 19812\n },\n {\n \"tag\": "ovule",\n \"popularity\": 19778\n },\n {\n \"tag\": "solidify",\n \"popularity\": 19744\n },\n {\n \"tag\": "noncelestial",\n \"popularity\": 19710\n },\n {\n \"tag\": "overmultiplication",\n \"popularity\": 19676\n },\n {\n \"tag\": "hexatetrahedron",\n \"popularity\": 19642\n },\n {\n \"tag\": "pliciform",\n \"popularity\": 19609\n },\n {\n \"tag\": "zimbalon",\n \"popularity\": 19575\n },\n {\n \"tag\": "annexational",\n \"popularity\": 19542\n },\n {\n \"tag\": "eurhodol",\n \"popularity\": 19508\n },\n {\n \"tag\": "yark",\n \"popularity\": 19475\n },\n {\n \"tag\": "illegality nitroalizarin",\n \"popularity\": 19442\n },\n {\n \"tag\": "quadratum",\n \"popularity\": 19409\n },\n {\n \"tag\": "saccharine",\n \"popularity\": 19376\n },\n {\n \"tag\": "unemploy",\n \"popularity\": 19343\n },\n {\n \"tag\": "uniclinal unipotent",\n \"popularity\": 19310\n },\n {\n \"tag\": "turbo",\n \"popularity\": 19277\n },\n {\n \"tag\": "sybarism",\n \"popularity\": 19244\n },\n {\n \"tag\": "motacilline",\n \"popularity\": 19212\n },\n {\n \"tag\": "weaselly",\n \"popularity\": 19179\n },\n {\n \"tag\": "plastid",\n \"popularity\": 19147\n },\n {\n \"tag\": "wasting",\n \"popularity\": 19114\n },\n {\n \"tag\": "begrime fluting",\n \"popularity\": 19082\n },\n {\n \"tag\": "Nephilinae",\n \"popularity\": 19050\n },\n {\n \"tag\": "disregardance",\n \"popularity\": 19018\n },\n {\n \"tag\": "Shakerlike",\n \"popularity\": 18986\n },\n {\n \"tag\": "uniped",\n \"popularity\": 18954\n },\n {\n \"tag\": "knap",\n \"popularity\": 18922\n },\n {\n \"tag\": "electivism undergardener",\n \"popularity\": 18890\n },\n {\n \"tag\": "hulverheaded",\n \"popularity\": 18858\n },\n {\n \"tag\": "unruptured",\n \"popularity\": 18827\n },\n {\n \"tag\": "solemnize credently",\n \"popularity\": 18795\n },\n {\n \"tag\": "pentastomoid possessingly",\n \"popularity\": 18764\n },\n {\n \"tag\": "octose",\n \"popularity\": 18733\n },\n {\n \"tag\": "psithurism indefensibility",\n \"popularity\": 18701\n },\n {\n \"tag\": "torrentuous cyanometer subcrenate",\n \"popularity\": 18670\n },\n {\n \"tag\": "photoplaywright tapaculo",\n \"popularity\": 18639\n },\n {\n \"tag\": "univalence",\n \"popularity\": 18608\n },\n {\n \"tag\": "Porthetria",\n \"popularity\": 18577\n },\n {\n \"tag\": "funambulo",\n \"popularity\": 18546\n },\n {\n \"tag\": "pedion",\n \"popularity\": 18515\n },\n {\n \"tag\": "horticulturally",\n \"popularity\": 18485\n },\n {\n \"tag\": "marennin",\n \"popularity\": 18454\n },\n {\n \"tag\": "horselaugh",\n \"popularity\": 18423\n },\n {\n \"tag\": "semiexecutive",\n \"popularity\": 18393\n },\n {\n \"tag\": "Monopteridae",\n \"popularity\": 18363\n },\n {\n \"tag\": "commonable",\n \"popularity\": 18332\n },\n {\n \"tag\": "dreariment",\n \"popularity\": 18302\n },\n {\n \"tag\": "disbud",\n \"popularity\": 18272\n },\n {\n \"tag\": "monocled",\n \"popularity\": 18242\n },\n {\n \"tag\": "hurlbarrow",\n \"popularity\": 18212\n },\n {\n \"tag\": "opiateproof",\n \"popularity\": 18182\n },\n {\n \"tag\": "Fahrenheit",\n \"popularity\": 18152\n },\n {\n \"tag\": "writhed",\n \"popularity\": 18122\n },\n {\n \"tag\": "Volstead",\n \"popularity\": 18093\n },\n {\n \"tag\": "yesternight",\n \"popularity\": 18063\n },\n {\n \"tag\": "readmittance",\n \"popularity\": 18033\n },\n {\n \"tag\": "reiterable",\n \"popularity\": 18004\n },\n {\n \"tag\": "triquetral",\n \"popularity\": 17975\n },\n {\n \"tag\": "guillotinement",\n \"popularity\": 17945\n },\n {\n \"tag\": "repermission",\n \"popularity\": 17916\n },\n {\n \"tag\": "assishly",\n \"popularity\": 17887\n },\n {\n \"tag\": "daidle",\n \"popularity\": 17858\n },\n {\n \"tag\": "prismatoid",\n \"popularity\": 17829\n },\n {\n \"tag\": "irreptitious",\n \"popularity\": 17800\n },\n {\n \"tag\": "sourdeline",\n \"popularity\": 17771\n },\n {\n \"tag\": "Austrian",\n \"popularity\": 17742\n },\n {\n \"tag\": "psychorrhagic",\n \"popularity\": 17713\n },\n {\n \"tag\": "Monumbo",\n \"popularity\": 17685\n },\n {\n \"tag\": "cloiochoanitic",\n \"popularity\": 17656\n },\n {\n \"tag\": "hant",\n \"popularity\": 17628\n },\n {\n \"tag\": "roily pulldown",\n \"popularity\": 17599\n },\n {\n \"tag\": "recongratulation",\n \"popularity\": 17571\n },\n {\n \"tag\": "Peking",\n \"popularity\": 17543\n },\n {\n \"tag\": "erdvark",\n \"popularity\": 17514\n },\n {\n \"tag\": "antimnemonic",\n \"popularity\": 17486\n },\n {\n \"tag\": "noncapillarity",\n \"popularity\": 17458\n },\n {\n \"tag\": "irrepressive",\n \"popularity\": 17430\n },\n {\n \"tag\": "Petromyzontes",\n \"popularity\": 17402\n },\n {\n \"tag\": "piscatorially",\n \"popularity\": 17374\n },\n {\n \"tag\": "cholesterosis",\n \"popularity\": 17346\n },\n {\n \"tag\": "denunciate",\n \"popularity\": 17319\n },\n {\n \"tag\": "unmetalled",\n \"popularity\": 17291\n },\n {\n \"tag\": "Tigris enruin",\n \"popularity\": 17263\n },\n {\n \"tag\": "anaspalin",\n \"popularity\": 17236\n },\n {\n \"tag\": "monodromy",\n \"popularity\": 17208\n },\n {\n \"tag\": "Canichanan",\n \"popularity\": 17181\n },\n {\n \"tag\": "mesolabe",\n \"popularity\": 17154\n },\n {\n \"tag\": "trichothallic overcunningness",\n \"popularity\": 17127\n },\n {\n \"tag\": "spinsterishly",\n \"popularity\": 17099\n },\n {\n \"tag\": "sensilla",\n \"popularity\": 17072\n },\n {\n \"tag\": "wifelkin",\n \"popularity\": 17045\n },\n {\n \"tag\": "suppositionless",\n \"popularity\": 17018\n },\n {\n \"tag\": "irksomeness",\n \"popularity\": 16991\n },\n {\n \"tag\": "sanbenito",\n \"popularity\": 16964\n },\n {\n \"tag\": "nonstatement",\n \"popularity\": 16938\n },\n {\n \"tag\": "phenoloid",\n \"popularity\": 16911\n },\n {\n \"tag\": "Steinberger",\n \"popularity\": 16884\n },\n {\n \"tag\": "replicated boom",\n \"popularity\": 16858\n },\n {\n \"tag\": "sciomachiology",\n \"popularity\": 16831\n },\n {\n \"tag\": "starwise",\n \"popularity\": 16805\n },\n {\n \"tag\": "prerich",\n \"popularity\": 16778\n },\n {\n \"tag\": "unspawned",\n \"popularity\": 16752\n },\n {\n \"tag\": "unindentable",\n \"popularity\": 16726\n },\n {\n \"tag\": "stromatic",\n \"popularity\": 16700\n },\n {\n \"tag\": "fetishize",\n \"popularity\": 16673\n },\n {\n \"tag\": "dihydroxy",\n \"popularity\": 16647\n },\n {\n \"tag\": "precaudal",\n \"popularity\": 16621\n },\n {\n \"tag\": "Madagascar",\n \"popularity\": 16595\n },\n {\n \"tag\": "repinement",\n \"popularity\": 16570\n },\n {\n \"tag\": "noncathedral wenzel",\n \"popularity\": 16544\n },\n {\n \"tag\": "corollike",\n \"popularity\": 16518\n },\n {\n \"tag\": "pubes unamortization",\n \"popularity\": 16492\n },\n {\n \"tag\": "brickcroft",\n \"popularity\": 16467\n },\n {\n \"tag\": "intertrabecular",\n \"popularity\": 16441\n },\n {\n \"tag\": "formulaic",\n \"popularity\": 16416\n },\n {\n \"tag\": "arienzo",\n \"popularity\": 16390\n },\n {\n \"tag\": "Mazzinian",\n \"popularity\": 16365\n },\n {\n \"tag\": "wallowishly",\n \"popularity\": 16339\n },\n {\n \"tag\": "sysselman",\n \"popularity\": 16314\n },\n {\n \"tag\": "seligmannite",\n \"popularity\": 16289\n },\n {\n \"tag\": "harlequinery",\n \"popularity\": 16264\n },\n {\n \"tag\": "zucchetto",\n \"popularity\": 16239\n },\n {\n \"tag\": "malonyl",\n \"popularity\": 16214\n },\n {\n \"tag\": "patwari",\n \"popularity\": 16189\n },\n {\n \"tag\": "neoholmia venturesomeness",\n \"popularity\": 16164\n },\n {\n \"tag\": "Dehwar",\n \"popularity\": 16139\n },\n {\n \"tag\": "fetiferous",\n \"popularity\": 16114\n },\n {\n \"tag\": "chromatophore",\n \"popularity\": 16090\n },\n {\n \"tag\": "reregistration",\n \"popularity\": 16065\n },\n {\n \"tag\": "alienor",\n \"popularity\": 16040\n },\n {\n \"tag\": "Hexagynia",\n \"popularity\": 16016\n },\n {\n \"tag\": "cerebrotonia",\n \"popularity\": 15991\n },\n {\n \"tag\": "deedbox",\n \"popularity\": 15967\n },\n {\n \"tag\": "staab",\n \"popularity\": 15943\n },\n {\n \"tag\": "uratemia",\n \"popularity\": 15918\n },\n {\n \"tag\": "flaunt",\n \"popularity\": 15894\n },\n {\n \"tag\": "bogy",\n \"popularity\": 15870\n },\n {\n \"tag\": "subcartilaginous",\n \"popularity\": 15846\n },\n {\n \"tag\": "protonephridial",\n \"popularity\": 15822\n },\n {\n \"tag\": "Boswellia",\n \"popularity\": 15798\n },\n {\n \"tag\": "relaxant untiaraed protoepiphyte",\n \"popularity\": 15774\n },\n {\n \"tag\": "nesslerization",\n \"popularity\": 15750\n },\n {\n \"tag\": "precession",\n \"popularity\": 15726\n },\n {\n \"tag\": "peat",\n \"popularity\": 15702\n },\n {\n \"tag\": "unbit",\n \"popularity\": 15678\n },\n {\n \"tag\": "snailish",\n \"popularity\": 15655\n },\n {\n \"tag\": "porismatical",\n \"popularity\": 15631\n },\n {\n \"tag\": "hooflike",\n \"popularity\": 15608\n },\n {\n \"tag\": "resuppose phene cranic",\n \"popularity\": 15584\n },\n {\n \"tag\": "peptonization kipskin",\n \"popularity\": 15561\n },\n {\n \"tag\": "birdstone",\n \"popularity\": 15537\n },\n {\n \"tag\": "empty inferoanterior",\n \"popularity\": 15514\n },\n {\n \"tag\": "androtauric",\n \"popularity\": 15491\n },\n {\n \"tag\": "triamide",\n \"popularity\": 15467\n },\n {\n \"tag\": "showmanry",\n \"popularity\": 15444\n },\n {\n \"tag\": "doing",\n \"popularity\": 15421\n },\n {\n \"tag\": "bouchaleen",\n \"popularity\": 15398\n },\n {\n \"tag\": "precollude",\n \"popularity\": 15375\n },\n {\n \"tag\": "finger",\n \"popularity\": 15352\n },\n {\n \"tag\": "limnetic intermessenger",\n \"popularity\": 15329\n },\n {\n \"tag\": "uncharitable picrotoxic",\n \"popularity\": 15306\n },\n {\n \"tag\": "nationalizer Phasmidae",\n \"popularity\": 15283\n },\n {\n \"tag\": "laughingstock",\n \"popularity\": 15261\n },\n {\n \"tag\": "nondeferential",\n \"popularity\": 15238\n },\n {\n \"tag\": "uproariously",\n \"popularity\": 15215\n },\n {\n \"tag\": "manzanilla",\n \"popularity\": 15193\n },\n {\n \"tag\": "khahoon",\n \"popularity\": 15170\n },\n {\n \"tag\": "olericulturally longshanks",\n \"popularity\": 15148\n },\n {\n \"tag\": "enthusiastically methionic",\n \"popularity\": 15125\n },\n {\n \"tag\": "pobs",\n \"popularity\": 15103\n },\n {\n \"tag\": "tricarpellate",\n \"popularity\": 15081\n },\n {\n \"tag\": "souterrain",\n \"popularity\": 15058\n },\n {\n \"tag\": "tethelin",\n \"popularity\": 15036\n },\n {\n \"tag\": "tartle",\n \"popularity\": 15014\n },\n {\n \"tag\": "tidelike",\n \"popularity\": 14992\n },\n {\n \"tag\": "cosmoramic",\n \"popularity\": 14970\n },\n {\n \"tag\": "pretardiness",\n \"popularity\": 14948\n },\n {\n \"tag\": "insoul",\n \"popularity\": 14926\n },\n {\n \"tag\": "anthroxan",\n \"popularity\": 14904\n },\n {\n \"tag\": "jilter",\n \"popularity\": 14882\n },\n {\n \"tag\": "pectinibranchian trematode",\n \"popularity\": 14860\n },\n {\n \"tag\": "Renaissancist",\n \"popularity\": 14838\n },\n {\n \"tag\": "imaginant",\n \"popularity\": 14817\n },\n {\n \"tag\": "supercensure",\n \"popularity\": 14795\n },\n {\n \"tag\": "festilogy",\n \"popularity\": 14773\n },\n {\n \"tag\": "regression",\n \"popularity\": 14752\n },\n {\n \"tag\": "mesobregmate languorously",\n \"popularity\": 14730\n },\n {\n \"tag\": "unsupernaturalized",\n \"popularity\": 14709\n },\n {\n \"tag\": "boobyish",\n \"popularity\": 14687\n },\n {\n \"tag\": "scopolamine",\n \"popularity\": 14666\n },\n {\n \"tag\": "reamputation unchristianly",\n \"popularity\": 14645\n },\n {\n \"tag\": "cuneatic",\n \"popularity\": 14623\n },\n {\n \"tag\": "heathberry",\n \"popularity\": 14602\n },\n {\n \"tag\": "hate",\n \"popularity\": 14581\n },\n {\n \"tag\": "redeemableness",\n \"popularity\": 14560\n },\n {\n \"tag\": "damasse",\n \"popularity\": 14539\n },\n {\n \"tag\": "thrillsome",\n \"popularity\": 14518\n },\n {\n \"tag\": "disseverment",\n \"popularity\": 14497\n },\n {\n \"tag\": "underbishopric Ostyak",\n \"popularity\": 14476\n },\n {\n \"tag\": "Exoascales",\n \"popularity\": 14455\n },\n {\n \"tag\": "soiled",\n \"popularity\": 14434\n },\n {\n \"tag\": "Cain",\n \"popularity\": 14413\n },\n {\n \"tag\": "mismanageable arenae",\n \"popularity\": 14392\n },\n {\n \"tag\": "manducate unhinderably",\n \"popularity\": 14372\n },\n {\n \"tag\": "peregrin",\n \"popularity\": 14351\n },\n {\n \"tag\": "musicianly",\n \"popularity\": 14330\n },\n {\n \"tag\": "aln",\n \"popularity\": 14310\n },\n {\n \"tag\": "intercentrum",\n \"popularity\": 14289\n },\n {\n \"tag\": "roothold",\n \"popularity\": 14269\n },\n {\n \"tag\": "jane aneurism",\n \"popularity\": 14248\n },\n {\n \"tag\": "insinuatively forefeel phytolatrous",\n \"popularity\": 14228\n },\n {\n \"tag\": "kanchil",\n \"popularity\": 14208\n },\n {\n \"tag\": "Austrophile",\n \"popularity\": 14187\n },\n {\n \"tag\": "unterrorized",\n \"popularity\": 14167\n },\n {\n \"tag\": "admeasure",\n \"popularity\": 14147\n },\n {\n \"tag\": "electrodissolution",\n \"popularity\": 14127\n },\n {\n \"tag\": "unweddedly",\n \"popularity\": 14107\n },\n {\n \"tag\": "unannoying",\n \"popularity\": 14087\n },\n {\n \"tag\": "uningenuous",\n \"popularity\": 14067\n },\n {\n \"tag\": "omnibenevolent",\n \"popularity\": 14047\n },\n {\n \"tag\": "commissure",\n \"popularity\": 14027\n },\n {\n \"tag\": "tellureted",\n \"popularity\": 14007\n },\n {\n \"tag\": "suffragan",\n \"popularity\": 13987\n },\n {\n \"tag\": "sphaeriaceous",\n \"popularity\": 13967\n },\n {\n \"tag\": "unfearing",\n \"popularity\": 13947\n },\n {\n \"tag\": "stentoriousness precounsellor",\n \"popularity\": 13928\n },\n {\n \"tag\": "haemaspectroscope",\n \"popularity\": 13908\n },\n {\n \"tag\": "teras",\n \"popularity\": 13888\n },\n {\n \"tag\": "pulicine",\n \"popularity\": 13869\n },\n {\n \"tag\": "colicystopyelitis",\n \"popularity\": 13849\n },\n {\n \"tag\": "Physalia",\n \"popularity\": 13830\n },\n {\n \"tag\": "Saxicolidae",\n \"popularity\": 13810\n },\n {\n \"tag\": "peritonital",\n \"popularity\": 13791\n },\n {\n \"tag\": "dysphotic",\n \"popularity\": 13771\n },\n {\n \"tag\": "unabandoned",\n \"popularity\": 13752\n },\n {\n \"tag\": "rashful",\n \"popularity\": 13733\n },\n {\n \"tag\": "goodyness Manobo",\n \"popularity\": 13714\n },\n {\n \"tag\": "glaring",\n \"popularity\": 13694\n },\n {\n \"tag\": "horrorful",\n \"popularity\": 13675\n },\n {\n \"tag\": "intercepting",\n \"popularity\": 13656\n },\n {\n \"tag\": "semifine",\n \"popularity\": 13637\n },\n {\n \"tag\": "Gaypoo",\n \"popularity\": 13618\n },\n {\n \"tag\": "Metrosideros",\n \"popularity\": 13599\n },\n {\n \"tag\": "thoracicolumbar",\n \"popularity\": 13580\n },\n {\n \"tag\": "unserried",\n \"popularity\": 13561\n },\n {\n \"tag\": "keeperess cauterization",\n \"popularity\": 13542\n },\n {\n \"tag\": "administrant",\n \"popularity\": 13523\n },\n {\n \"tag\": "unpropitiatedness",\n \"popularity\": 13505\n },\n {\n \"tag\": "pensileness",\n \"popularity\": 13486\n },\n {\n \"tag\": "quinaldic unreceivable",\n \"popularity\": 13467\n },\n {\n \"tag\": "Carnaria",\n \"popularity\": 13448\n },\n {\n \"tag\": "azothionium wurrus",\n \"popularity\": 13430\n },\n {\n \"tag\": "mistresshood",\n \"popularity\": 13411\n },\n {\n \"tag\": "Savara",\n \"popularity\": 13393\n },\n {\n \"tag\": "dasyurine",\n \"popularity\": 13374\n },\n {\n \"tag\": "superideal",\n \"popularity\": 13356\n },\n {\n \"tag\": "Parisianize",\n \"popularity\": 13337\n },\n {\n \"tag\": "underearth",\n \"popularity\": 13319\n },\n {\n \"tag\": "athrogenic",\n \"popularity\": 13301\n },\n {\n \"tag\": "communicate",\n \"popularity\": 13282\n },\n {\n \"tag\": "denervation enworthed",\n \"popularity\": 13264\n },\n {\n \"tag\": "subbromide",\n \"popularity\": 13246\n },\n {\n \"tag\": "stenocoriasis",\n \"popularity\": 13228\n },\n {\n \"tag\": "facetiousness",\n \"popularity\": 13209\n },\n {\n \"tag\": "twaddling",\n \"popularity\": 13191\n },\n {\n \"tag\": "tetartoconid",\n \"popularity\": 13173\n },\n {\n \"tag\": "audiophile",\n \"popularity\": 13155\n },\n {\n \"tag\": "fustigate",\n \"popularity\": 13137\n },\n {\n \"tag\": "Sorbian cacophonia",\n \"popularity\": 13119\n },\n {\n \"tag\": "fondish",\n \"popularity\": 13101\n },\n {\n \"tag\": "endomastoiditis",\n \"popularity\": 13084\n },\n {\n \"tag\": "sniptious",\n \"popularity\": 13066\n },\n {\n \"tag\": "glochidiate",\n \"popularity\": 13048\n },\n {\n \"tag\": "polycarboxylic",\n \"popularity\": 13030\n },\n {\n \"tag\": "stamp",\n \"popularity\": 13012\n },\n {\n \"tag\": "tritonymph endotoxoid",\n \"popularity\": 12995\n },\n {\n \"tag\": "wolfskin",\n \"popularity\": 12977\n },\n {\n \"tag\": "oncosimeter",\n \"popularity\": 12959\n },\n {\n \"tag\": "outward",\n \"popularity\": 12942\n },\n {\n \"tag\": "circumscribed",\n \"popularity\": 12924\n },\n {\n \"tag\": "autohemolytic",\n \"popularity\": 12907\n },\n {\n \"tag\": "isorhamnose",\n \"popularity\": 12889\n },\n {\n \"tag\": "monarchomachic",\n \"popularity\": 12872\n },\n {\n \"tag\": "phaenomenon",\n \"popularity\": 12855\n },\n {\n \"tag\": "angiopressure",\n \"popularity\": 12837\n },\n {\n \"tag\": "similarize",\n \"popularity\": 12820\n },\n {\n \"tag\": "unseeable",\n \"popularity\": 12803\n },\n {\n \"tag\": "Toryize",\n \"popularity\": 12785\n },\n {\n \"tag\": "fruitling",\n \"popularity\": 12768\n },\n {\n \"tag\": "axle",\n \"popularity\": 12751\n },\n {\n \"tag\": "priestal cocked",\n \"popularity\": 12734\n },\n {\n \"tag\": "serotoxin",\n \"popularity\": 12717\n },\n {\n \"tag\": "unmovably",\n \"popularity\": 12700\n },\n {\n \"tag\": "darbha",\n \"popularity\": 12683\n },\n {\n \"tag\": "Mongolize",\n \"popularity\": 12666\n },\n {\n \"tag\": "clusteringly",\n \"popularity\": 12649\n },\n {\n \"tag\": "tendence",\n \"popularity\": 12632\n },\n {\n \"tag\": "foziness",\n \"popularity\": 12615\n },\n {\n \"tag\": "brickkiln lithify",\n \"popularity\": 12598\n },\n {\n \"tag\": "unpriest",\n \"popularity\": 12581\n },\n {\n \"tag\": "convincer",\n \"popularity\": 12564\n },\n {\n \"tag\": "mornlike",\n \"popularity\": 12548\n },\n {\n \"tag\": "overaddiction ostentatiousness",\n \"popularity\": 12531\n },\n {\n \"tag\": "diffusively moccasin pendom",\n \"popularity\": 12514\n },\n {\n \"tag\": "boose",\n \"popularity\": 12498\n },\n {\n \"tag\": "myonosus",\n \"popularity\": 12481\n },\n {\n \"tag\": "handsome",\n \"popularity\": 12464\n },\n {\n \"tag\": "paroxysmic",\n \"popularity\": 12448\n },\n {\n \"tag\": "Ulidian",\n \"popularity\": 12431\n },\n {\n \"tag\": "heartache",\n \"popularity\": 12415\n },\n {\n \"tag\": "torporize",\n \"popularity\": 12398\n },\n {\n \"tag\": "hippish",\n \"popularity\": 12382\n },\n {\n \"tag\": "stigmal militation",\n \"popularity\": 12366\n },\n {\n \"tag\": "matmaker",\n \"popularity\": 12349\n },\n {\n \"tag\": "marantaceous bivoluminous",\n \"popularity\": 12333\n },\n {\n \"tag\": "Uraniidae",\n \"popularity\": 12317\n },\n {\n \"tag\": "risper",\n \"popularity\": 12301\n },\n {\n \"tag\": "tintinnabulation",\n \"popularity\": 12284\n },\n {\n \"tag\": "tributorian",\n \"popularity\": 12268\n },\n {\n \"tag\": "ashamedly",\n \"popularity\": 12252\n },\n {\n \"tag\": "Macrourus",\n \"popularity\": 12236\n },\n {\n \"tag\": "Chora",\n \"popularity\": 12220\n },\n {\n \"tag\": "caul",\n \"popularity\": 12204\n },\n {\n \"tag\": "exsector",\n \"popularity\": 12188\n },\n {\n \"tag\": "acutish",\n \"popularity\": 12172\n },\n {\n \"tag\": "amphichrome",\n \"popularity\": 12156\n },\n {\n \"tag\": "guarder",\n \"popularity\": 12140\n },\n {\n \"tag\": "sculpturally",\n \"popularity\": 12124\n },\n {\n \"tag\": "benightmare",\n \"popularity\": 12108\n },\n {\n \"tag\": "chucky",\n \"popularity\": 12093\n },\n {\n \"tag\": "Venetian",\n \"popularity\": 12077\n },\n {\n \"tag\": "autotheater",\n \"popularity\": 12061\n },\n {\n \"tag\": "planarioid",\n \"popularity\": 12045\n },\n {\n \"tag\": "handkerchiefful",\n \"popularity\": 12030\n },\n {\n \"tag\": "fuliginousness potentize",\n \"popularity\": 12014\n },\n {\n \"tag\": "pantheum",\n \"popularity\": 11998\n },\n {\n \"tag\": "heavyweight",\n \"popularity\": 11983\n },\n {\n \"tag\": "unbrick",\n \"popularity\": 11967\n },\n {\n \"tag\": "duomachy",\n \"popularity\": 11952\n },\n {\n \"tag\": "polyphyodont",\n \"popularity\": 11936\n },\n {\n \"tag\": "hibernacle",\n \"popularity\": 11921\n },\n {\n \"tag\": "undistend",\n \"popularity\": 11905\n },\n {\n \"tag\": "hystericky",\n \"popularity\": 11890\n },\n {\n \"tag\": "paleolimnology",\n \"popularity\": 11875\n },\n {\n \"tag\": "cedarware",\n \"popularity\": 11859\n },\n {\n \"tag\": "overwrested",\n \"popularity\": 11844\n },\n {\n \"tag\": "Syriacism",\n \"popularity\": 11829\n },\n {\n \"tag\": "pretan",\n \"popularity\": 11813\n },\n {\n \"tag\": "formant",\n \"popularity\": 11798\n },\n {\n \"tag\": "pharmacopoeist Fedia",\n \"popularity\": 11783\n },\n {\n \"tag\": "exorcist eerisome",\n \"popularity\": 11768\n },\n {\n \"tag\": "separation",\n \"popularity\": 11753\n },\n {\n \"tag\": "infancy",\n \"popularity\": 11738\n },\n {\n \"tag\": "ecrasite",\n \"popularity\": 11723\n },\n {\n \"tag\": "propolize",\n \"popularity\": 11708\n },\n {\n \"tag\": "uncram phyllin",\n \"popularity\": 11693\n },\n {\n \"tag\": "thymopathy",\n \"popularity\": 11678\n },\n {\n \"tag\": "omniscient",\n \"popularity\": 11663\n },\n {\n \"tag\": "coussinet hazer",\n \"popularity\": 11648\n },\n {\n \"tag\": "contributiveness",\n \"popularity\": 11633\n },\n {\n \"tag\": "septifluous",\n \"popularity\": 11618\n },\n {\n \"tag\": "halfness",\n \"popularity\": 11603\n },\n {\n \"tag\": "tocher",\n \"popularity\": 11589\n },\n {\n \"tag\": "monotonist",\n \"popularity\": 11574\n },\n {\n \"tag\": "headchair",\n \"popularity\": 11559\n },\n {\n \"tag\": "everywhence",\n \"popularity\": 11544\n },\n {\n \"tag\": "gerate",\n \"popularity\": 11530\n },\n {\n \"tag\": "unrepellent",\n \"popularity\": 11515\n },\n {\n \"tag\": "inidoneous",\n \"popularity\": 11500\n },\n {\n \"tag\": "Rifi",\n \"popularity\": 11486\n },\n {\n \"tag\": "unstop",\n \"popularity\": 11471\n },\n {\n \"tag\": "conformer",\n \"popularity\": 11457\n },\n {\n \"tag\": "vivisectionally",\n \"popularity\": 11442\n },\n {\n \"tag\": "nonfinishing",\n \"popularity\": 11428\n },\n {\n \"tag\": "tyranness",\n \"popularity\": 11413\n },\n {\n \"tag\": "shepherdage havoc",\n \"popularity\": 11399\n },\n {\n \"tag\": "coronale",\n \"popularity\": 11385\n },\n {\n \"tag\": "airmarker",\n \"popularity\": 11370\n },\n {\n \"tag\": "subpanel",\n \"popularity\": 11356\n },\n {\n \"tag\": "conciliation",\n \"popularity\": 11342\n },\n {\n \"tag\": "supergun",\n \"popularity\": 11327\n },\n {\n \"tag\": "photoheliography",\n \"popularity\": 11313\n },\n {\n \"tag\": "cacosmia",\n \"popularity\": 11299\n },\n {\n \"tag\": "caressant",\n \"popularity\": 11285\n },\n {\n \"tag\": "swivet",\n \"popularity\": 11270\n },\n {\n \"tag\": "coddler",\n \"popularity\": 11256\n },\n {\n \"tag\": "rakehellish",\n \"popularity\": 11242\n },\n {\n \"tag\": "recohabitation",\n \"popularity\": 11228\n },\n {\n \"tag\": "postillator",\n \"popularity\": 11214\n },\n {\n \"tag\": "receipt",\n \"popularity\": 11200\n },\n {\n \"tag\": "nonconformistical",\n \"popularity\": 11186\n },\n {\n \"tag\": "unglorified",\n \"popularity\": 11172\n },\n {\n \"tag\": "unordinariness",\n \"popularity\": 11158\n },\n {\n \"tag\": "tetrahydroxy",\n \"popularity\": 11144\n },\n {\n \"tag\": "haploperistomic corporeity",\n \"popularity\": 11130\n },\n {\n \"tag\": "varical",\n \"popularity\": 11117\n },\n {\n \"tag\": "pilferment",\n \"popularity\": 11103\n },\n {\n \"tag\": "reverentially playcraft",\n \"popularity\": 11089\n },\n {\n \"tag\": "unretentive",\n \"popularity\": 11075\n },\n {\n \"tag\": "readiness",\n \"popularity\": 11061\n },\n {\n \"tag\": "thermomagnetism",\n \"popularity\": 11048\n },\n {\n \"tag\": "spotless",\n \"popularity\": 11034\n },\n {\n \"tag\": "semishrubby",\n \"popularity\": 11020\n },\n {\n \"tag\": "metrotomy",\n \"popularity\": 11007\n },\n {\n \"tag\": "hocker",\n \"popularity\": 10993\n },\n {\n \"tag\": "anecdotal",\n \"popularity\": 10979\n },\n {\n \"tag\": "tetrabelodont",\n \"popularity\": 10966\n },\n {\n \"tag\": "Ramillied",\n \"popularity\": 10952\n },\n {\n \"tag\": "sympatheticism",\n \"popularity\": 10939\n },\n {\n \"tag\": "kiskatom",\n \"popularity\": 10925\n },\n {\n \"tag\": "concyclically",\n \"popularity\": 10912\n },\n {\n \"tag\": "tunicless",\n \"popularity\": 10899\n },\n {\n \"tag\": "formalistic",\n \"popularity\": 10885\n },\n {\n \"tag\": "thermacogenesis",\n \"popularity\": 10872\n },\n {\n \"tag\": "multimotored",\n \"popularity\": 10858\n },\n {\n \"tag\": "inversive",\n \"popularity\": 10845\n },\n {\n \"tag\": "Jatki",\n \"popularity\": 10832\n },\n {\n \"tag\": "highest",\n \"popularity\": 10818\n },\n {\n \"tag\": "rubidic",\n \"popularity\": 10805\n },\n {\n \"tag\": "acranial",\n \"popularity\": 10792\n },\n {\n \"tag\": "pulvinulus",\n \"popularity\": 10779\n },\n {\n \"tag\": "nattiness",\n \"popularity\": 10766\n },\n {\n \"tag\": "antisimoniacal",\n \"popularity\": 10752\n },\n {\n \"tag\": "tetanize",\n \"popularity\": 10739\n },\n {\n \"tag\": "spectrophobia",\n \"popularity\": 10726\n },\n {\n \"tag\": "monopolitical",\n \"popularity\": 10713\n },\n {\n \"tag\": "teallite",\n \"popularity\": 10700\n },\n {\n \"tag\": "alicyclic interpellator",\n \"popularity\": 10687\n },\n {\n \"tag\": "nonsynthesized",\n \"popularity\": 10674\n },\n {\n \"tag\": "wheelwrighting",\n \"popularity\": 10661\n },\n {\n \"tag\": "pelliculate",\n \"popularity\": 10648\n },\n {\n \"tag\": "Euphyllopoda",\n \"popularity\": 10635\n },\n {\n \"tag\": "graver",\n \"popularity\": 10622\n },\n {\n \"tag\": "automorph",\n \"popularity\": 10609\n },\n {\n \"tag\": "underhanded",\n \"popularity\": 10597\n },\n {\n \"tag\": "causal",\n \"popularity\": 10584\n },\n {\n \"tag\": "odoom",\n \"popularity\": 10571\n },\n {\n \"tag\": "apodictical",\n \"popularity\": 10558\n },\n {\n \"tag\": "foundery",\n \"popularity\": 10545\n },\n {\n \"tag\": "unneighbored",\n \"popularity\": 10533\n },\n {\n \"tag\": "woolshearing",\n \"popularity\": 10520\n },\n {\n \"tag\": "boschveld",\n \"popularity\": 10507\n },\n {\n \"tag\": "unhardened lipopod",\n \"popularity\": 10495\n },\n {\n \"tag\": "unenriching",\n \"popularity\": 10482\n },\n {\n \"tag\": "spak",\n \"popularity\": 10469\n },\n {\n \"tag\": "yogasana",\n \"popularity\": 10457\n },\n {\n \"tag\": "depoetize",\n \"popularity\": 10444\n },\n {\n \"tag\": "parousiamania",\n \"popularity\": 10432\n },\n {\n \"tag\": "longlegs",\n \"popularity\": 10419\n },\n {\n \"tag\": "gelatinizability",\n \"popularity\": 10407\n },\n {\n \"tag\": "edeology",\n \"popularity\": 10394\n },\n {\n \"tag\": "sodwork",\n \"popularity\": 10382\n },\n {\n \"tag\": "somnambule",\n \"popularity\": 10369\n },\n {\n \"tag\": "antiquing",\n \"popularity\": 10357\n },\n {\n \"tag\": "intaker",\n \"popularity\": 10344\n },\n {\n \"tag\": "Gerberia",\n \"popularity\": 10332\n },\n {\n \"tag\": "preadmit",\n \"popularity\": 10320\n },\n {\n \"tag\": "bullhorn",\n \"popularity\": 10307\n },\n {\n \"tag\": "sororal",\n \"popularity\": 10295\n },\n {\n \"tag\": "phaeophyceous",\n \"popularity\": 10283\n },\n {\n \"tag\": "omphalopsychite",\n \"popularity\": 10271\n },\n {\n \"tag\": "substantious",\n \"popularity\": 10258\n },\n {\n \"tag\": "undemonstratively",\n \"popularity\": 10246\n },\n {\n \"tag\": "corallike blackit",\n \"popularity\": 10234\n },\n {\n \"tag\": "amoebous",\n \"popularity\": 10222\n },\n {\n \"tag\": "Polypodium",\n \"popularity\": 10210\n },\n {\n \"tag\": "blodite",\n \"popularity\": 10198\n },\n {\n \"tag\": "hordarian",\n \"popularity\": 10186\n },\n {\n \"tag\": "nonmoral",\n \"popularity\": 10174\n },\n {\n \"tag\": "dredgeful",\n \"popularity\": 10162\n },\n {\n \"tag\": "nourishingly",\n \"popularity\": 10150\n },\n {\n \"tag\": "seamy",\n \"popularity\": 10138\n },\n {\n \"tag\": "vara",\n \"popularity\": 10126\n },\n {\n \"tag\": "incorruptibleness",\n \"popularity\": 10114\n },\n {\n \"tag\": "manipulator",\n \"popularity\": 10102\n },\n {\n \"tag\": "chromodiascope uncountably",\n \"popularity\": 10090\n },\n {\n \"tag\": "typhemia",\n \"popularity\": 10078\n },\n {\n \"tag\": "Smalcaldic",\n \"popularity\": 10066\n },\n {\n \"tag\": "precontrive",\n \"popularity\": 10054\n },\n {\n \"tag\": "sowarry",\n \"popularity\": 10042\n },\n {\n \"tag\": "monopodic",\n \"popularity\": 10031\n },\n {\n \"tag\": "recodify",\n \"popularity\": 10019\n },\n {\n \"tag\": "phosphowolframic rimple",\n \"popularity\": 10007\n },\n {\n \"tag\": "triconch",\n \"popularity\": 9995\n },\n {\n \"tag\": "pycnodontoid",\n \"popularity\": 9984\n },\n {\n \"tag\": "bradyspermatism",\n \"popularity\": 9972\n },\n {\n \"tag\": "extensionist",\n \"popularity\": 9960\n },\n {\n \"tag\": "characterize",\n \"popularity\": 9949\n },\n {\n \"tag\": "anatreptic proteolytic",\n \"popularity\": 9937\n },\n {\n \"tag\": "waterboard",\n \"popularity\": 9925\n },\n {\n \"tag\": "allopathically",\n \"popularity\": 9914\n },\n {\n \"tag\": "arithmetician",\n \"popularity\": 9902\n },\n {\n \"tag\": "subsist",\n \"popularity\": 9891\n },\n {\n \"tag\": "Islamitish",\n \"popularity\": 9879\n },\n {\n \"tag\": "biddy",\n \"popularity\": 9868\n },\n {\n \"tag\": "reverberation",\n \"popularity\": 9856\n },\n {\n \"tag\": "Zaporogue",\n \"popularity\": 9845\n },\n {\n \"tag\": "soapberry",\n \"popularity\": 9833\n },\n {\n \"tag\": "physiognomics",\n \"popularity\": 9822\n },\n {\n \"tag\": "hospitalization",\n \"popularity\": 9810\n },\n {\n \"tag\": "dissembler",\n \"popularity\": 9799\n },\n {\n \"tag\": "festinate",\n \"popularity\": 9788\n },\n {\n \"tag\": "angiectopia",\n \"popularity\": 9776\n },\n {\n \"tag\": "Pulicidae",\n \"popularity\": 9765\n },\n {\n \"tag\": "beslimer",\n \"popularity\": 9754\n },\n {\n \"tag\": "nontreaty",\n \"popularity\": 9743\n },\n {\n \"tag\": "unhaggled",\n \"popularity\": 9731\n },\n {\n \"tag\": "catfall",\n \"popularity\": 9720\n },\n {\n \"tag\": "stola",\n \"popularity\": 9709\n },\n {\n \"tag\": "pataco",\n \"popularity\": 9698\n },\n {\n \"tag\": "ontologistic",\n \"popularity\": 9686\n },\n {\n \"tag\": "aerosphere",\n \"popularity\": 9675\n },\n {\n \"tag\": "deobstruent",\n \"popularity\": 9664\n },\n {\n \"tag\": "threepence",\n \"popularity\": 9653\n },\n {\n \"tag\": "cyprinoid",\n \"popularity\": 9642\n },\n {\n \"tag\": "overbank",\n \"popularity\": 9631\n },\n {\n \"tag\": "prostyle",\n \"popularity\": 9620\n },\n {\n \"tag\": "photoactivation",\n \"popularity\": 9609\n },\n {\n \"tag\": "homothetic",\n \"popularity\": 9598\n },\n {\n \"tag\": "roguedom",\n \"popularity\": 9587\n },\n {\n \"tag\": "underschool",\n \"popularity\": 9576\n },\n {\n \"tag\": "tractility",\n \"popularity\": 9565\n },\n {\n \"tag\": "gardenin",\n \"popularity\": 9554\n },\n {\n \"tag\": "Micromastictora",\n \"popularity\": 9543\n },\n {\n \"tag\": "gossypine",\n \"popularity\": 9532\n },\n {\n \"tag\": "amylodyspepsia",\n \"popularity\": 9521\n },\n {\n \"tag\": "Luciana",\n \"popularity\": 9510\n },\n {\n \"tag\": "meetly nonfisherman",\n \"popularity\": 9500\n },\n {\n \"tag\": "backhanded",\n \"popularity\": 9489\n },\n {\n \"tag\": "decrustation",\n \"popularity\": 9478\n },\n {\n \"tag\": "pinrail",\n \"popularity\": 9467\n },\n {\n \"tag\": "Mahori",\n \"popularity\": 9456\n },\n {\n \"tag\": "unsizable",\n \"popularity\": 9446\n },\n {\n \"tag\": "disawa",\n \"popularity\": 9435\n },\n {\n \"tag\": "launderability inconsidered",\n \"popularity\": 9424\n },\n {\n \"tag\": "unclassical",\n \"popularity\": 9414\n },\n {\n \"tag\": "inobtrusiveness",\n \"popularity\": 9403\n },\n {\n \"tag\": "sialogenous",\n \"popularity\": 9392\n },\n {\n \"tag\": "sulphonamide",\n \"popularity\": 9382\n },\n {\n \"tag\": "diluvion",\n \"popularity\": 9371\n },\n {\n \"tag\": "deuteranope",\n \"popularity\": 9361\n },\n {\n \"tag\": "addition",\n \"popularity\": 9350\n },\n {\n \"tag\": "bockeret",\n \"popularity\": 9339\n },\n {\n \"tag\": "unidentified",\n \"popularity\": 9329\n },\n {\n \"tag\": "caryatic",\n \"popularity\": 9318\n },\n {\n \"tag\": "misattribution",\n \"popularity\": 9308\n },\n {\n \"tag\": "outray",\n \"popularity\": 9297\n },\n {\n \"tag\": "areometrical",\n \"popularity\": 9287\n },\n {\n \"tag\": "antilogism",\n \"popularity\": 9277\n },\n {\n \"tag\": "inadjustable",\n \"popularity\": 9266\n },\n {\n \"tag\": "byssus",\n \"popularity\": 9256\n },\n {\n \"tag\": "trun",\n \"popularity\": 9245\n },\n {\n \"tag\": "thereology",\n \"popularity\": 9235\n },\n {\n \"tag\": "extort",\n \"popularity\": 9225\n },\n {\n \"tag\": "bumpkin",\n \"popularity\": 9214\n },\n {\n \"tag\": "sulphobenzide",\n \"popularity\": 9204\n },\n {\n \"tag\": "hydrogeology",\n \"popularity\": 9194\n },\n {\n \"tag\": "nidulariaceous",\n \"popularity\": 9183\n },\n {\n \"tag\": "propodiale",\n \"popularity\": 9173\n },\n {\n \"tag\": "fierily",\n \"popularity\": 9163\n },\n {\n \"tag\": "aerotonometry",\n \"popularity\": 9153\n },\n {\n \"tag\": "pelobatid oversuperstitious",\n \"popularity\": 9142\n },\n {\n \"tag\": "restringent",\n \"popularity\": 9132\n },\n {\n \"tag\": "tetrapodic",\n \"popularity\": 9122\n },\n {\n \"tag\": "heroicness Vendidad",\n \"popularity\": 9112\n },\n {\n \"tag\": "Sphingurus",\n \"popularity\": 9102\n },\n {\n \"tag\": "sclerote",\n \"popularity\": 9092\n },\n {\n \"tag\": "unkeyed",\n \"popularity\": 9082\n },\n {\n \"tag\": "superparliamentary",\n \"popularity\": 9072\n },\n {\n \"tag\": "hetericism",\n \"popularity\": 9061\n },\n {\n \"tag\": "hucklebone",\n \"popularity\": 9051\n },\n {\n \"tag\": "yojan",\n \"popularity\": 9041\n },\n {\n \"tag\": "bossed",\n \"popularity\": 9031\n },\n {\n \"tag\": "spiderwork",\n \"popularity\": 9021\n },\n {\n \"tag\": "millfeed dullery",\n \"popularity\": 9011\n },\n {\n \"tag\": "adnoun",\n \"popularity\": 9001\n },\n {\n \"tag\": "mesometric",\n \"popularity\": 8992\n },\n {\n \"tag\": "doublehandedness",\n \"popularity\": 8982\n },\n {\n \"tag\": "suppurant",\n \"popularity\": 8972\n },\n {\n \"tag\": "Berlinize",\n \"popularity\": 8962\n },\n {\n \"tag\": "sontag",\n \"popularity\": 8952\n },\n {\n \"tag\": "biplane",\n \"popularity\": 8942\n },\n {\n \"tag\": "insula",\n \"popularity\": 8932\n },\n {\n \"tag\": "unbrand",\n \"popularity\": 8922\n },\n {\n \"tag\": "Basilosaurus",\n \"popularity\": 8913\n },\n {\n \"tag\": "prenomination",\n \"popularity\": 8903\n },\n {\n \"tag\": "untextual",\n \"popularity\": 8893\n },\n {\n \"tag\": "coleslaw",\n \"popularity\": 8883\n },\n {\n \"tag\": "langsyne",\n \"popularity\": 8874\n },\n {\n \"tag\": "impede",\n \"popularity\": 8864\n },\n {\n \"tag\": "irrigator",\n \"popularity\": 8854\n },\n {\n \"tag\": "deflocculation",\n \"popularity\": 8844\n },\n {\n \"tag\": "narghile",\n \"popularity\": 8835\n },\n {\n \"tag\": "unguardedly ebenaceous",\n \"popularity\": 8825\n },\n {\n \"tag\": "conversantly subocular",\n \"popularity\": 8815\n },\n {\n \"tag\": "hydroponic",\n \"popularity\": 8806\n },\n {\n \"tag\": "anthropopsychism",\n \"popularity\": 8796\n },\n {\n \"tag\": "panoptic",\n \"popularity\": 8787\n },\n {\n \"tag\": "insufferable",\n \"popularity\": 8777\n },\n {\n \"tag\": "salema",\n \"popularity\": 8768\n },\n {\n \"tag\": "Myriapoda",\n \"popularity\": 8758\n },\n {\n \"tag\": "regarrison",\n \"popularity\": 8748\n },\n {\n \"tag\": "overlearned",\n \"popularity\": 8739\n },\n {\n \"tag\": "ultraroyalist conventical bureaucratical",\n \"popularity\": 8729\n },\n {\n \"tag\": "epicaridan",\n \"popularity\": 8720\n },\n {\n \"tag\": "poetastress",\n \"popularity\": 8711\n },\n {\n \"tag\": "monophthalmus",\n \"popularity\": 8701\n },\n {\n \"tag\": "simnel",\n \"popularity\": 8692\n },\n {\n \"tag\": "compotor",\n \"popularity\": 8682\n },\n {\n \"tag\": "hydrolase",\n \"popularity\": 8673\n },\n {\n \"tag\": "attemptless",\n \"popularity\": 8663\n },\n {\n \"tag\": "visceroptosis",\n \"popularity\": 8654\n },\n {\n \"tag\": "unpreparedly",\n \"popularity\": 8645\n },\n {\n \"tag\": "mastage",\n \"popularity\": 8635\n },\n {\n \"tag\": "preinfluence",\n \"popularity\": 8626\n },\n {\n \"tag\": "Siwan",\n \"popularity\": 8617\n },\n {\n \"tag\": "ceratotheca belvedere",\n \"popularity\": 8607\n },\n {\n \"tag\": "disenablement",\n \"popularity\": 8598\n },\n {\n \"tag\": "nine",\n \"popularity\": 8589\n },\n {\n \"tag\": "spellingdown abridgment",\n \"popularity\": 8580\n },\n {\n \"tag\": "twilightless",\n \"popularity\": 8571\n },\n {\n \"tag\": "overflow",\n \"popularity\": 8561\n },\n {\n \"tag\": "mismeasurement",\n \"popularity\": 8552\n },\n {\n \"tag\": "nawabship",\n \"popularity\": 8543\n },\n {\n \"tag\": "Phrynosoma",\n \"popularity\": 8534\n },\n {\n \"tag\": "unanticipatingly",\n \"popularity\": 8525\n },\n {\n \"tag\": "blankite",\n \"popularity\": 8516\n },\n {\n \"tag\": "role",\n \"popularity\": 8506\n },\n {\n \"tag\": "peperine edelweiss",\n \"popularity\": 8497\n },\n {\n \"tag\": "unhysterical",\n \"popularity\": 8488\n },\n {\n \"tag\": "attentiveness",\n \"popularity\": 8479\n },\n {\n \"tag\": "scintillant",\n \"popularity\": 8470\n },\n {\n \"tag\": "stenostomatous",\n \"popularity\": 8461\n },\n {\n \"tag\": "pectinite",\n \"popularity\": 8452\n },\n {\n \"tag\": "herring",\n \"popularity\": 8443\n },\n {\n \"tag\": "interroom",\n \"popularity\": 8434\n },\n {\n \"tag\": "laccol",\n \"popularity\": 8425\n },\n {\n \"tag\": "unpartably kylite",\n \"popularity\": 8416\n },\n {\n \"tag\": "spirivalve",\n \"popularity\": 8407\n },\n {\n \"tag\": "hoosegow",\n \"popularity\": 8398\n },\n {\n \"tag\": "doat",\n \"popularity\": 8389\n },\n {\n \"tag\": "amphibian",\n \"popularity\": 8380\n },\n {\n \"tag\": "exposit",\n \"popularity\": 8371\n },\n {\n \"tag\": "canopy",\n \"popularity\": 8363\n },\n {\n \"tag\": "houndlike",\n \"popularity\": 8354\n },\n {\n \"tag\": "spikebill",\n \"popularity\": 8345\n },\n {\n \"tag\": "wiseacre pyrotechnic",\n \"popularity\": 8336\n },\n {\n \"tag\": "confessingly woodman",\n \"popularity\": 8327\n },\n {\n \"tag\": "overside",\n \"popularity\": 8318\n },\n {\n \"tag\": "oftwhiles",\n \"popularity\": 8310\n },\n {\n \"tag\": "Musophagidae",\n \"popularity\": 8301\n },\n {\n \"tag\": "slumberer",\n \"popularity\": 8292\n },\n {\n \"tag\": "leiotrichy",\n \"popularity\": 8283\n },\n {\n \"tag\": "Mantispidae",\n \"popularity\": 8275\n },\n {\n \"tag\": "perceptually",\n \"popularity\": 8266\n },\n {\n \"tag\": "biller",\n \"popularity\": 8257\n },\n {\n \"tag\": "eudaemonical",\n \"popularity\": 8249\n },\n {\n \"tag\": "underfiend",\n \"popularity\": 8240\n },\n {\n \"tag\": "impartible",\n \"popularity\": 8231\n },\n {\n \"tag\": "saxicavous",\n \"popularity\": 8223\n },\n {\n \"tag\": "yapster",\n \"popularity\": 8214\n },\n {\n \"tag\": "aliseptal",\n \"popularity\": 8205\n },\n {\n \"tag\": "omniparient",\n \"popularity\": 8197\n },\n {\n \"tag\": "nishiki",\n \"popularity\": 8188\n },\n {\n \"tag\": "yuzluk",\n \"popularity\": 8180\n },\n {\n \"tag\": "solderer",\n \"popularity\": 8171\n },\n {\n \"tag\": "Pinna",\n \"popularity\": 8162\n },\n {\n \"tag\": "reinterfere",\n \"popularity\": 8154\n },\n {\n \"tag\": "superepic",\n \"popularity\": 8145\n },\n {\n \"tag\": "ronquil",\n \"popularity\": 8137\n },\n {\n \"tag\": "bratstvo",\n \"popularity\": 8128\n },\n {\n \"tag\": "Thea",\n \"popularity\": 8120\n },\n {\n \"tag\": "hermaphroditical",\n \"popularity\": 8111\n },\n {\n \"tag\": "enlief",\n \"popularity\": 8103\n },\n {\n \"tag\": "Jesuate",\n \"popularity\": 8095\n },\n {\n \"tag\": "gaysome",\n \"popularity\": 8086\n },\n {\n \"tag\": "iliohypogastric",\n \"popularity\": 8078\n },\n {\n \"tag\": "regardance",\n \"popularity\": 8069\n },\n {\n \"tag\": "cumulately",\n \"popularity\": 8061\n },\n {\n \"tag\": "haustorial nucleolocentrosome",\n \"popularity\": 8053\n },\n {\n \"tag\": "cosmocrat",\n \"popularity\": 8044\n },\n {\n \"tag\": "onyxitis",\n \"popularity\": 8036\n },\n {\n \"tag\": "Cabinda",\n \"popularity\": 8028\n },\n {\n \"tag\": "coresort",\n \"popularity\": 8019\n },\n {\n \"tag\": "drusy preformant",\n \"popularity\": 8011\n },\n {\n \"tag\": "piningly",\n \"popularity\": 8003\n },\n {\n \"tag\": "bootlessly",\n \"popularity\": 7994\n },\n {\n \"tag\": "talari",\n \"popularity\": 7986\n },\n {\n \"tag\": "amidoacetal",\n \"popularity\": 7978\n },\n {\n \"tag\": "pschent",\n \"popularity\": 7970\n },\n {\n \"tag\": "consumptional scarer titivate",\n \"popularity\": 7962\n },\n {\n \"tag\": "Anserinae",\n \"popularity\": 7953\n },\n {\n \"tag\": "flaunter",\n \"popularity\": 7945\n },\n {\n \"tag\": "reindeer",\n \"popularity\": 7937\n },\n {\n \"tag\": "disparage",\n \"popularity\": 7929\n },\n {\n \"tag\": "superheat",\n \"popularity\": 7921\n },\n {\n \"tag\": "Chromatium",\n \"popularity\": 7912\n },\n {\n \"tag\": "Tina",\n \"popularity\": 7904\n },\n {\n \"tag\": "rededicatory",\n \"popularity\": 7896\n },\n {\n \"tag\": "nontransient",\n \"popularity\": 7888\n },\n {\n \"tag\": "Phocaean brinkless",\n \"popularity\": 7880\n },\n {\n \"tag\": "ventriculose",\n \"popularity\": 7872\n },\n {\n \"tag\": "upplough",\n \"popularity\": 7864\n },\n {\n \"tag\": "succorless",\n \"popularity\": 7856\n },\n {\n \"tag\": "hayrake",\n \"popularity\": 7848\n },\n {\n \"tag\": "merriness amorphia",\n \"popularity\": 7840\n },\n {\n \"tag\": "merycism",\n \"popularity\": 7832\n },\n {\n \"tag\": "checkrow",\n \"popularity\": 7824\n },\n {\n \"tag\": "scry",\n \"popularity\": 7816\n },\n {\n \"tag\": "obvolve",\n \"popularity\": 7808\n },\n {\n \"tag\": "orchard",\n \"popularity\": 7800\n },\n {\n \"tag\": "isomerize",\n \"popularity\": 7792\n },\n {\n \"tag\": "competitrix",\n \"popularity\": 7784\n },\n {\n \"tag\": "unbannered",\n \"popularity\": 7776\n },\n {\n \"tag\": "undoctrined",\n \"popularity\": 7768\n },\n {\n \"tag\": "theologian",\n \"popularity\": 7760\n },\n {\n \"tag\": "nebby",\n \"popularity\": 7752\n },\n {\n \"tag\": "Cardiazol",\n \"popularity\": 7745\n },\n {\n \"tag\": "phagedenic",\n \"popularity\": 7737\n },\n {\n \"tag\": "nostalgic",\n \"popularity\": 7729\n },\n {\n \"tag\": "orthodoxy",\n \"popularity\": 7721\n },\n {\n \"tag\": "oversanguine",\n \"popularity\": 7713\n },\n {\n \"tag\": "lish",\n \"popularity\": 7705\n },\n {\n \"tag\": "ketogenic",\n \"popularity\": 7698\n },\n {\n \"tag\": "syndicalize",\n \"popularity\": 7690\n },\n {\n \"tag\": "leeftail",\n \"popularity\": 7682\n },\n {\n \"tag\": "bulbomedullary",\n \"popularity\": 7674\n },\n {\n \"tag\": "reletter",\n \"popularity\": 7667\n },\n {\n \"tag\": "bitterly",\n \"popularity\": 7659\n },\n {\n \"tag\": "participatory",\n \"popularity\": 7651\n },\n {\n \"tag\": "baldberry",\n \"popularity\": 7643\n },\n {\n \"tag\": "prowaterpower",\n \"popularity\": 7636\n },\n {\n \"tag\": "lexicographical",\n \"popularity\": 7628\n },\n {\n \"tag\": "Anisodactyli",\n \"popularity\": 7620\n },\n {\n \"tag\": "amphipodous",\n \"popularity\": 7613\n },\n {\n \"tag\": "triglandular",\n \"popularity\": 7605\n },\n {\n \"tag\": "xanthopsin",\n \"popularity\": 7597\n },\n {\n \"tag\": "indefinitude",\n \"popularity\": 7590\n },\n {\n \"tag\": "bookworm",\n \"popularity\": 7582\n },\n {\n \"tag\": "suffocative",\n \"popularity\": 7574\n },\n {\n \"tag\": "uncongested tyrant",\n \"popularity\": 7567\n },\n {\n \"tag\": "alow harmoniously Pamir",\n \"popularity\": 7559\n },\n {\n \"tag\": "monander",\n \"popularity\": 7552\n },\n {\n \"tag\": "bagatelle",\n \"popularity\": 7544\n },\n {\n \"tag\": "membranology",\n \"popularity\": 7537\n },\n {\n \"tag\": "parturifacient",\n \"popularity\": 7529\n },\n {\n \"tag\": "excitovascular",\n \"popularity\": 7522\n },\n {\n \"tag\": "homopolar",\n \"popularity\": 7514\n },\n {\n \"tag\": "phobiac",\n \"popularity\": 7507\n },\n {\n \"tag\": "clype",\n \"popularity\": 7499\n },\n {\n \"tag\": "unsubversive",\n \"popularity\": 7492\n },\n {\n \"tag\": "bostrychoidal scorpionwort",\n \"popularity\": 7484\n },\n {\n \"tag\": "biliteralism",\n \"popularity\": 7477\n },\n {\n \"tag\": "dentatocostate",\n \"popularity\": 7469\n },\n {\n \"tag\": "Pici",\n \"popularity\": 7462\n },\n {\n \"tag\": "sideritic",\n \"popularity\": 7454\n },\n {\n \"tag\": "syntaxis",\n \"popularity\": 7447\n },\n {\n \"tag\": "ingest",\n \"popularity\": 7440\n },\n {\n \"tag\": "rigmarolish",\n \"popularity\": 7432\n },\n {\n \"tag\": "ocreaceous",\n \"popularity\": 7425\n },\n {\n \"tag\": "hyperbrachyskelic",\n \"popularity\": 7418\n },\n {\n \"tag\": "basophobia",\n \"popularity\": 7410\n },\n {\n \"tag\": "substantialness",\n \"popularity\": 7403\n },\n {\n \"tag\": "agglutinoid",\n \"popularity\": 7396\n },\n {\n \"tag\": "longleaf",\n \"popularity\": 7388\n },\n {\n \"tag\": "electroengraving",\n \"popularity\": 7381\n },\n {\n \"tag\": "laparoenterotomy",\n \"popularity\": 7374\n },\n {\n \"tag\": "oxalylurea",\n \"popularity\": 7366\n },\n {\n \"tag\": "unattaintedly",\n \"popularity\": 7359\n },\n {\n \"tag\": "pennystone",\n \"popularity\": 7352\n },\n {\n \"tag\": "Plumbaginaceae",\n \"popularity\": 7345\n },\n {\n \"tag\": "horntip",\n \"popularity\": 7337\n },\n {\n \"tag\": "begrudge",\n \"popularity\": 7330\n },\n {\n \"tag\": "bechignoned",\n \"popularity\": 7323\n },\n {\n \"tag\": "hologonidium",\n \"popularity\": 7316\n },\n {\n \"tag\": "Pulian",\n \"popularity\": 7309\n },\n {\n \"tag\": "gratulation",\n \"popularity\": 7301\n },\n {\n \"tag\": "Sebright",\n \"popularity\": 7294\n },\n {\n \"tag\": "coinstantaneous emotionally",\n \"popularity\": 7287\n },\n {\n \"tag\": "thoracostracan",\n \"popularity\": 7280\n },\n {\n \"tag\": "saurodont",\n \"popularity\": 7273\n },\n {\n \"tag\": "coseat",\n \"popularity\": 7266\n },\n {\n \"tag\": "irascibility",\n \"popularity\": 7259\n },\n {\n \"tag\": "occlude",\n \"popularity\": 7251\n },\n {\n \"tag\": "metallurgist",\n \"popularity\": 7244\n },\n {\n \"tag\": "extraviolet",\n \"popularity\": 7237\n },\n {\n \"tag\": "clinic",\n \"popularity\": 7230\n },\n {\n \"tag\": "skater",\n \"popularity\": 7223\n },\n {\n \"tag\": "linguistic",\n \"popularity\": 7216\n },\n {\n \"tag\": "attacheship",\n \"popularity\": 7209\n },\n {\n \"tag\": "Rachianectes",\n \"popularity\": 7202\n },\n {\n \"tag\": "foliolose",\n \"popularity\": 7195\n },\n {\n \"tag\": "claudetite",\n \"popularity\": 7188\n },\n {\n \"tag\": "aphidian scratching",\n \"popularity\": 7181\n },\n {\n \"tag\": "Carida",\n \"popularity\": 7174\n },\n {\n \"tag\": "tiepin polymicroscope",\n \"popularity\": 7167\n },\n {\n \"tag\": "telpherage",\n \"popularity\": 7160\n },\n {\n \"tag\": "meek",\n \"popularity\": 7153\n },\n {\n \"tag\": "swiftness",\n \"popularity\": 7146\n },\n {\n \"tag\": "gentes",\n \"popularity\": 7139\n },\n {\n \"tag\": "uncommemorated",\n \"popularity\": 7132\n },\n {\n \"tag\": "Lazarus",\n \"popularity\": 7125\n },\n {\n \"tag\": "redivive",\n \"popularity\": 7119\n },\n {\n \"tag\": "nonfebrile",\n \"popularity\": 7112\n },\n {\n \"tag\": "nymphet",\n \"popularity\": 7105\n },\n {\n \"tag\": "areologically",\n \"popularity\": 7098\n },\n {\n \"tag\": "undonkey",\n \"popularity\": 7091\n },\n {\n \"tag\": "projecting",\n \"popularity\": 7084\n },\n {\n \"tag\": "pinnigrade",\n \"popularity\": 7077\n },\n {\n \"tag\": "butylation",\n \"popularity\": 7071\n },\n {\n \"tag\": "philologistic lenticle",\n \"popularity\": 7064\n },\n {\n \"tag\": "nooky",\n \"popularity\": 7057\n },\n {\n \"tag\": "incestuousness",\n \"popularity\": 7050\n },\n {\n \"tag\": "palingenetically",\n \"popularity\": 7043\n },\n {\n \"tag\": "mitochondria",\n \"popularity\": 7037\n },\n {\n \"tag\": "truthify",\n \"popularity\": 7030\n },\n {\n \"tag\": "titanyl",\n \"popularity\": 7023\n },\n {\n \"tag\": "bestride",\n \"popularity\": 7016\n },\n {\n \"tag\": "chende",\n \"popularity\": 7010\n },\n {\n \"tag\": "Chaucerian monophote",\n \"popularity\": 7003\n },\n {\n \"tag\": "cutback",\n \"popularity\": 6996\n },\n {\n \"tag\": "unpatiently",\n \"popularity\": 6989\n },\n {\n \"tag\": "subvitreous",\n \"popularity\": 6983\n },\n {\n \"tag\": "organizable",\n \"popularity\": 6976\n },\n {\n \"tag\": "anniverse uncomprehensible",\n \"popularity\": 6969\n },\n {\n \"tag\": "hyalescence",\n \"popularity\": 6963\n },\n {\n \"tag\": "amniochorial",\n \"popularity\": 6956\n },\n {\n \"tag\": "Corybantian",\n \"popularity\": 6949\n },\n {\n \"tag\": "genocide Scaphitidae",\n \"popularity\": 6943\n },\n {\n \"tag\": "accordionist",\n \"popularity\": 6936\n },\n {\n \"tag\": "becheck",\n \"popularity\": 6930\n },\n {\n \"tag\": "overproduce",\n \"popularity\": 6923\n },\n {\n \"tag\": "unmaniac frijolillo",\n \"popularity\": 6916\n },\n {\n \"tag\": "multisulcated",\n \"popularity\": 6910\n },\n {\n \"tag\": "wennebergite",\n \"popularity\": 6903\n },\n {\n \"tag\": "tautousious mowth",\n \"popularity\": 6897\n },\n {\n \"tag\": "marigold",\n \"popularity\": 6890\n },\n {\n \"tag\": "affray",\n \"popularity\": 6884\n },\n {\n \"tag\": "nonidolatrous",\n \"popularity\": 6877\n },\n {\n \"tag\": "aphrasia",\n \"popularity\": 6871\n },\n {\n \"tag\": "muddlingly",\n \"popularity\": 6864\n },\n {\n \"tag\": "clear",\n \"popularity\": 6858\n },\n {\n \"tag\": "Clitoria",\n \"popularity\": 6851\n },\n {\n \"tag\": "apportionment underwaist",\n \"popularity\": 6845\n },\n {\n \"tag\": "kodakist",\n \"popularity\": 6838\n },\n {\n \"tag\": "Momotidae",\n \"popularity\": 6832\n },\n {\n \"tag\": "cryptovalency",\n \"popularity\": 6825\n },\n {\n \"tag\": "floe",\n \"popularity\": 6819\n },\n {\n \"tag\": "aphagia",\n \"popularity\": 6812\n },\n {\n \"tag\": "brontograph",\n \"popularity\": 6806\n },\n {\n \"tag\": "tubulous",\n \"popularity\": 6799\n },\n {\n \"tag\": "unhorse",\n \"popularity\": 6793\n },\n {\n \"tag\": "chlordane",\n \"popularity\": 6787\n },\n {\n \"tag\": "colloquy brochan",\n \"popularity\": 6780\n },\n {\n \"tag\": "sloosh",\n \"popularity\": 6774\n },\n {\n \"tag\": "battered",\n \"popularity\": 6767\n },\n {\n \"tag\": "monocularity pluriguttulate",\n \"popularity\": 6761\n },\n {\n \"tag\": "chiastoneury",\n \"popularity\": 6755\n },\n {\n \"tag\": "Sanguinaria",\n \"popularity\": 6748\n },\n {\n \"tag\": "confessionary",\n \"popularity\": 6742\n },\n {\n \"tag\": "enzymic",\n \"popularity\": 6736\n },\n {\n \"tag\": "cord",\n \"popularity\": 6729\n },\n {\n \"tag\": "oviducal",\n \"popularity\": 6723\n },\n {\n \"tag\": "crozzle outsea",\n \"popularity\": 6717\n },\n {\n \"tag\": "balladical",\n \"popularity\": 6710\n },\n {\n \"tag\": "uncollectibleness",\n \"popularity\": 6704\n },\n {\n \"tag\": "predorsal",\n \"popularity\": 6698\n },\n {\n \"tag\": "reauthenticate",\n \"popularity\": 6692\n },\n {\n \"tag\": "ravissant",\n \"popularity\": 6685\n },\n {\n \"tag\": "advantageousness",\n \"popularity\": 6679\n },\n {\n \"tag\": "rung",\n \"popularity\": 6673\n },\n {\n \"tag\": "duncedom",\n \"popularity\": 6667\n },\n {\n \"tag\": "hematolite",\n \"popularity\": 6660\n },\n {\n \"tag\": "thisness",\n \"popularity\": 6654\n },\n {\n \"tag\": "mapau",\n \"popularity\": 6648\n },\n {\n \"tag\": "Hecatic",\n \"popularity\": 6642\n },\n {\n \"tag\": "meningoencephalocele",\n \"popularity\": 6636\n },\n {\n \"tag\": "confection sorra",\n \"popularity\": 6630\n },\n {\n \"tag\": "unsedate",\n \"popularity\": 6623\n },\n {\n \"tag\": "meningocerebritis",\n \"popularity\": 6617\n },\n {\n \"tag\": "biopsychological",\n \"popularity\": 6611\n },\n {\n \"tag\": "clavicithern",\n \"popularity\": 6605\n },\n {\n \"tag\": "resun",\n \"popularity\": 6599\n },\n {\n \"tag\": "bayamo",\n \"popularity\": 6593\n },\n {\n \"tag\": "seeableness",\n \"popularity\": 6587\n },\n {\n \"tag\": "hypsidolichocephalism",\n \"popularity\": 6581\n },\n {\n \"tag\": "salivous",\n \"popularity\": 6574\n },\n {\n \"tag\": "neumatize",\n \"popularity\": 6568\n },\n {\n \"tag\": "stree",\n \"popularity\": 6562\n },\n {\n \"tag\": "markshot",\n \"popularity\": 6556\n },\n {\n \"tag\": "phraseologically",\n \"popularity\": 6550\n },\n {\n \"tag\": "yealing",\n \"popularity\": 6544\n },\n {\n \"tag\": "puggy",\n \"popularity\": 6538\n },\n {\n \"tag\": "sexadecimal",\n \"popularity\": 6532\n },\n {\n \"tag\": "unofficerlike",\n \"popularity\": 6526\n },\n {\n \"tag\": "curiosa",\n \"popularity\": 6520\n },\n {\n \"tag\": "pedomotor",\n \"popularity\": 6514\n },\n {\n \"tag\": "astrally",\n \"popularity\": 6508\n },\n {\n \"tag\": "prosomatic",\n \"popularity\": 6502\n },\n {\n \"tag\": "bulletheaded",\n \"popularity\": 6496\n },\n {\n \"tag\": "fortuned",\n \"popularity\": 6490\n },\n {\n \"tag\": "pixy",\n \"popularity\": 6484\n },\n {\n \"tag\": "protectrix",\n \"popularity\": 6478\n },\n {\n \"tag\": "arthritical",\n \"popularity\": 6472\n },\n {\n \"tag\": "coction",\n \"popularity\": 6466\n },\n {\n \"tag\": "Anthropos",\n \"popularity\": 6460\n },\n {\n \"tag\": "runer",\n \"popularity\": 6454\n },\n {\n \"tag\": "prenotify",\n \"popularity\": 6449\n },\n {\n \"tag\": "microspheric gastroparalysis",\n \"popularity\": 6443\n },\n {\n \"tag\": "Jovicentrical",\n \"popularity\": 6437\n },\n {\n \"tag\": "ceratopsid",\n \"popularity\": 6431\n },\n {\n \"tag\": "Theodoric",\n \"popularity\": 6425\n },\n {\n \"tag\": "Pactolus",\n \"popularity\": 6419\n },\n {\n \"tag\": "spawning",\n \"popularity\": 6413\n },\n {\n \"tag\": "nonconfidential",\n \"popularity\": 6407\n },\n {\n \"tag\": "halotrichite infumate",\n \"popularity\": 6402\n },\n {\n \"tag\": "undiscriminatingly",\n \"popularity\": 6396\n },\n {\n \"tag\": "unexasperated",\n \"popularity\": 6390\n },\n {\n \"tag\": "isoeugenol",\n \"popularity\": 6384\n },\n {\n \"tag\": "pressboard",\n \"popularity\": 6378\n },\n {\n \"tag\": "unshrew",\n \"popularity\": 6372\n },\n {\n \"tag\": "huffingly",\n \"popularity\": 6367\n },\n {\n \"tag\": "wagaun",\n \"popularity\": 6361\n },\n {\n \"tag\": "squirt Philistine",\n \"popularity\": 6355\n },\n {\n \"tag\": "kryptic",\n \"popularity\": 6349\n },\n {\n \"tag\": "paraform",\n \"popularity\": 6344\n },\n {\n \"tag\": "preverify",\n \"popularity\": 6338\n },\n {\n \"tag\": "dalar",\n \"popularity\": 6332\n },\n {\n \"tag\": "interdictor appraisingly",\n \"popularity\": 6326\n },\n {\n \"tag\": "chipped",\n \"popularity\": 6321\n },\n {\n \"tag\": "Pteropoda",\n \"popularity\": 6315\n },\n {\n \"tag\": "Bohairic",\n \"popularity\": 6309\n },\n {\n \"tag\": "felting",\n \"popularity\": 6303\n },\n {\n \"tag\": "compurgatorial",\n \"popularity\": 6298\n },\n {\n \"tag\": "unclead",\n \"popularity\": 6292\n },\n {\n \"tag\": "stockish",\n \"popularity\": 6286\n },\n {\n \"tag\": "mulligatawny",\n \"popularity\": 6281\n },\n {\n \"tag\": "Monotheletism",\n \"popularity\": 6275\n },\n {\n \"tag\": "lutanist",\n \"popularity\": 6269\n },\n {\n \"tag\": "gluttonize",\n \"popularity\": 6264\n },\n {\n \"tag\": "hackneyed",\n \"popularity\": 6258\n },\n {\n \"tag\": "yield",\n \"popularity\": 6253\n },\n {\n \"tag\": "sulphonamido",\n \"popularity\": 6247\n },\n {\n \"tag\": "granulative",\n \"popularity\": 6241\n },\n {\n \"tag\": "swingy",\n \"popularity\": 6236\n },\n {\n \"tag\": "Desmidiales",\n \"popularity\": 6230\n },\n {\n \"tag\": "tootlish",\n \"popularity\": 6224\n },\n {\n \"tag\": "unsatisfiedly",\n \"popularity\": 6219\n },\n {\n \"tag\": "burucha",\n \"popularity\": 6213\n },\n {\n \"tag\": "premeditatingly",\n \"popularity\": 6208\n },\n {\n \"tag\": "cowrie",\n \"popularity\": 6202\n },\n {\n \"tag\": "pleurolysis",\n \"popularity\": 6197\n },\n {\n \"tag\": "nationalist",\n \"popularity\": 6191\n },\n {\n \"tag\": "Pholadacea",\n \"popularity\": 6186\n },\n {\n \"tag\": "anakrousis",\n \"popularity\": 6180\n },\n {\n \"tag\": "proctorial",\n \"popularity\": 6175\n },\n {\n \"tag\": "cavillation",\n \"popularity\": 6169\n },\n {\n \"tag\": "cervicobregmatic",\n \"popularity\": 6163\n },\n {\n \"tag\": "interspecific",\n \"popularity\": 6158\n },\n {\n \"tag\": "Teutonity",\n \"popularity\": 6152\n },\n {\n \"tag\": "snakeholing",\n \"popularity\": 6147\n },\n {\n \"tag\": "balcony",\n \"popularity\": 6142\n },\n {\n \"tag\": "latchless",\n \"popularity\": 6136\n },\n {\n \"tag\": "Mithraea",\n \"popularity\": 6131\n },\n {\n \"tag\": "pseudepigraph",\n \"popularity\": 6125\n },\n {\n \"tag\": "flosser",\n \"popularity\": 6120\n },\n {\n \"tag\": "kotyle",\n \"popularity\": 6114\n },\n {\n \"tag\": "outdo",\n \"popularity\": 6109\n },\n {\n \"tag\": "interclerical",\n \"popularity\": 6103\n },\n {\n \"tag\": "aurar",\n \"popularity\": 6098\n },\n {\n \"tag\": "apophyseal",\n \"popularity\": 6093\n },\n {\n \"tag\": "Miro",\n \"popularity\": 6087\n },\n {\n \"tag\": "Priscillian",\n \"popularity\": 6082\n },\n {\n \"tag\": "alluvia",\n \"popularity\": 6076\n },\n {\n \"tag\": "exordize",\n \"popularity\": 6071\n },\n {\n \"tag\": "breakage",\n \"popularity\": 6066\n },\n {\n \"tag\": "unclosable",\n \"popularity\": 6060\n },\n {\n \"tag\": "monocondylous",\n \"popularity\": 6055\n },\n {\n \"tag\": "dyarchy",\n \"popularity\": 6050\n },\n {\n \"tag\": "subchelate",\n \"popularity\": 6044\n },\n {\n \"tag\": "hearsay",\n \"popularity\": 6039\n },\n {\n \"tag\": "prestigiously",\n \"popularity\": 6034\n },\n {\n \"tag\": "unimuscular",\n \"popularity\": 6028\n },\n {\n \"tag\": "lingwort",\n \"popularity\": 6023\n },\n {\n \"tag\": "jealous",\n \"popularity\": 6018\n },\n {\n \"tag\": "artilleryman",\n \"popularity\": 6012\n },\n {\n \"tag\": "phantasmagorially",\n \"popularity\": 6007\n },\n {\n \"tag\": "stagnum",\n \"popularity\": 6002\n },\n {\n \"tag\": "organotropism shatteringly",\n \"popularity\": 5997\n },\n {\n \"tag\": "Mytilus Hebraist",\n \"popularity\": 5991\n },\n {\n \"tag\": "returf",\n \"popularity\": 5986\n },\n {\n \"tag\": "townfolk",\n \"popularity\": 5981\n },\n {\n \"tag\": "propitiative",\n \"popularity\": 5976\n },\n {\n \"tag\": "Anita unsullied",\n \"popularity\": 5970\n },\n {\n \"tag\": "bandoleered",\n \"popularity\": 5965\n },\n {\n \"tag\": "cubby",\n \"popularity\": 5960\n },\n {\n \"tag\": "Hexanchus",\n \"popularity\": 5955\n },\n {\n \"tag\": "circuminsular",\n \"popularity\": 5949\n },\n {\n \"tag\": "chamberletted eumycete",\n \"popularity\": 5944\n },\n {\n \"tag\": "secure",\n \"popularity\": 5939\n },\n {\n \"tag\": "Edwardean",\n \"popularity\": 5934\n },\n {\n \"tag\": "strenth",\n \"popularity\": 5929\n },\n {\n \"tag\": "exhaustless",\n \"popularity\": 5923\n },\n {\n \"tag\": "electioneerer",\n \"popularity\": 5918\n },\n {\n \"tag\": "estoile",\n \"popularity\": 5913\n },\n {\n \"tag\": "redden",\n \"popularity\": 5908\n },\n {\n \"tag\": "solicitee",\n \"popularity\": 5903\n },\n {\n \"tag\": "nonpatented",\n \"popularity\": 5898\n },\n {\n \"tag\": "lemming",\n \"popularity\": 5893\n },\n {\n \"tag\": "marled subalate",\n \"popularity\": 5887\n },\n {\n \"tag\": "premial horizonward",\n \"popularity\": 5882\n },\n {\n \"tag\": "nonrefueling",\n \"popularity\": 5877\n },\n {\n \"tag\": "rupturewort",\n \"popularity\": 5872\n },\n {\n \"tag\": "unfed",\n \"popularity\": 5867\n },\n {\n \"tag\": "empanelment",\n \"popularity\": 5862\n },\n {\n \"tag\": "isoosmosis",\n \"popularity\": 5857\n },\n {\n \"tag\": "jipijapa",\n \"popularity\": 5852\n },\n {\n \"tag\": "Fiji",\n \"popularity\": 5847\n },\n {\n \"tag\": "interferant",\n \"popularity\": 5842\n },\n {\n \"tag\": "reconstitution",\n \"popularity\": 5837\n },\n {\n \"tag\": "dockyardman",\n \"popularity\": 5832\n },\n {\n \"tag\": "dolichopodous",\n \"popularity\": 5826\n },\n {\n \"tag\": "whiteworm",\n \"popularity\": 5821\n },\n {\n \"tag\": "atheistically",\n \"popularity\": 5816\n },\n {\n \"tag\": "nonconcern",\n \"popularity\": 5811\n },\n {\n \"tag\": "scarabaeidoid",\n \"popularity\": 5806\n },\n {\n \"tag\": "triumviri",\n \"popularity\": 5801\n },\n {\n \"tag\": "rakit",\n \"popularity\": 5796\n },\n {\n \"tag\": "leecheater",\n \"popularity\": 5791\n },\n {\n \"tag\": "Arthrostraca",\n \"popularity\": 5786\n },\n {\n \"tag\": "upknit",\n \"popularity\": 5781\n },\n {\n \"tag\": "tymbalon",\n \"popularity\": 5776\n },\n {\n \"tag\": "inventurous",\n \"popularity\": 5771\n },\n {\n \"tag\": "perradiate",\n \"popularity\": 5766\n },\n {\n \"tag\": "seer",\n \"popularity\": 5762\n },\n {\n \"tag\": "Auricularia",\n \"popularity\": 5757\n },\n {\n \"tag\": "wettish exclusivity",\n \"popularity\": 5752\n },\n {\n \"tag\": "arteriosympathectomy",\n \"popularity\": 5747\n },\n {\n \"tag\": "tunlike",\n \"popularity\": 5742\n },\n {\n \"tag\": "cephalocercal",\n \"popularity\": 5737\n },\n {\n \"tag\": "meaninglessness",\n \"popularity\": 5732\n },\n {\n \"tag\": "fountful",\n \"popularity\": 5727\n },\n {\n \"tag\": "appraisement",\n \"popularity\": 5722\n },\n {\n \"tag\": "geniculated",\n \"popularity\": 5717\n },\n {\n \"tag\": "rotator",\n \"popularity\": 5712\n },\n {\n \"tag\": "foremarch biography",\n \"popularity\": 5707\n },\n {\n \"tag\": "arid",\n \"popularity\": 5703\n },\n {\n \"tag\": "inapprehensible",\n \"popularity\": 5698\n },\n {\n \"tag\": "chlorosulphonic",\n \"popularity\": 5693\n },\n {\n \"tag\": "braguette",\n \"popularity\": 5688\n },\n {\n \"tag\": "panophthalmitis",\n \"popularity\": 5683\n },\n {\n \"tag\": "pro objurgatorily",\n \"popularity\": 5678\n },\n {\n \"tag\": "zooplasty",\n \"popularity\": 5673\n },\n {\n \"tag\": "Terebratulidae",\n \"popularity\": 5669\n },\n {\n \"tag\": "Mahran",\n \"popularity\": 5664\n },\n {\n \"tag\": "anthologize merocele",\n \"popularity\": 5659\n },\n {\n \"tag\": "firecracker chiropractic",\n \"popularity\": 5654\n },\n {\n \"tag\": "tenorist",\n \"popularity\": 5649\n },\n {\n \"tag\": "amphitene",\n \"popularity\": 5645\n },\n {\n \"tag\": "silverbush toadstone",\n \"popularity\": 5640\n },\n {\n \"tag\": "entozoological",\n \"popularity\": 5635\n },\n {\n \"tag\": "trustlessness",\n \"popularity\": 5630\n },\n {\n \"tag\": "reassay",\n \"popularity\": 5625\n },\n {\n \"tag\": "chrysalides",\n \"popularity\": 5621\n },\n {\n \"tag\": "truncation",\n \"popularity\": 5616\n },\n {\n \"tag\": "unwavered mausoleal",\n \"popularity\": 5611\n },\n {\n \"tag\": "unserrated",\n \"popularity\": 5606\n },\n {\n \"tag\": "frampler",\n \"popularity\": 5602\n },\n {\n \"tag\": "celestial",\n \"popularity\": 5597\n },\n {\n \"tag\": "depreter",\n \"popularity\": 5592\n },\n {\n \"tag\": "retaliate",\n \"popularity\": 5588\n },\n {\n \"tag\": "decempunctate",\n \"popularity\": 5583\n },\n {\n \"tag\": "submitter",\n \"popularity\": 5578\n },\n {\n \"tag\": "phenothiazine",\n \"popularity\": 5573\n },\n {\n \"tag\": "hobbledehoyish",\n \"popularity\": 5569\n },\n {\n \"tag\": "erraticness",\n \"popularity\": 5564\n },\n {\n \"tag\": "ovariodysneuria",\n \"popularity\": 5559\n },\n {\n \"tag\": "puja",\n \"popularity\": 5555\n },\n {\n \"tag\": "cesspool",\n \"popularity\": 5550\n },\n {\n \"tag\": "sonation",\n \"popularity\": 5545\n },\n {\n \"tag\": "moggan",\n \"popularity\": 5541\n },\n {\n \"tag\": "overjutting",\n \"popularity\": 5536\n },\n {\n \"tag\": "cohobate",\n \"popularity\": 5531\n },\n {\n \"tag\": "Distoma",\n \"popularity\": 5527\n },\n {\n \"tag\": "Plectognathi",\n \"popularity\": 5522\n },\n {\n \"tag\": "dumple caliphate",\n \"popularity\": 5517\n },\n {\n \"tag\": "shiko",\n \"popularity\": 5513\n },\n {\n \"tag\": "downness",\n \"popularity\": 5508\n },\n {\n \"tag\": "whippletree",\n \"popularity\": 5504\n },\n {\n \"tag\": "nymphaeum",\n \"popularity\": 5499\n },\n {\n \"tag\": "there trest",\n \"popularity\": 5494\n },\n {\n \"tag\": "psychrometer",\n \"popularity\": 5490\n },\n {\n \"tag\": "pyelograph",\n \"popularity\": 5485\n },\n {\n \"tag\": "unsalvable",\n \"popularity\": 5481\n },\n {\n \"tag\": "bescreen",\n \"popularity\": 5476\n },\n {\n \"tag\": "cushy",\n \"popularity\": 5471\n },\n {\n \"tag\": "plicatolobate",\n \"popularity\": 5467\n },\n {\n \"tag\": "lakie",\n \"popularity\": 5462\n },\n {\n \"tag\": "anthropodeoxycholic",\n \"popularity\": 5458\n },\n {\n \"tag\": "resatisfaction",\n \"popularity\": 5453\n },\n {\n \"tag\": "unravelment unaccidental",\n \"popularity\": 5449\n },\n {\n \"tag\": "telewriter monogeneous",\n \"popularity\": 5444\n },\n {\n \"tag\": "unsabred",\n \"popularity\": 5440\n },\n {\n \"tag\": "startlingly",\n \"popularity\": 5435\n },\n {\n \"tag\": "Aralia",\n \"popularity\": 5431\n },\n {\n \"tag\": "alamonti",\n \"popularity\": 5426\n },\n {\n \"tag\": "Franklinization",\n \"popularity\": 5422\n },\n {\n \"tag\": "parliament",\n \"popularity\": 5417\n },\n {\n \"tag\": "schoolkeeper",\n \"popularity\": 5413\n },\n {\n \"tag\": "nonsociety",\n \"popularity\": 5408\n },\n {\n \"tag\": "parenthetic",\n \"popularity\": 5404\n },\n {\n \"tag\": "stog",\n \"popularity\": 5399\n },\n {\n \"tag\": "Pristipomidae",\n \"popularity\": 5395\n },\n {\n \"tag\": "exocarp",\n \"popularity\": 5390\n },\n {\n \"tag\": "monaxonial",\n \"popularity\": 5386\n },\n {\n \"tag\": "tramroad",\n \"popularity\": 5381\n },\n {\n \"tag\": "hookah",\n \"popularity\": 5377\n },\n {\n \"tag\": "saccharonic",\n \"popularity\": 5372\n },\n {\n \"tag\": "perimetrium",\n \"popularity\": 5368\n },\n {\n \"tag\": "libelluloid",\n \"popularity\": 5364\n },\n {\n \"tag\": "overrunningly",\n \"popularity\": 5359\n },\n {\n \"tag\": "untwister",\n \"popularity\": 5355\n },\n {\n \"tag\": "ninnyhammer",\n \"popularity\": 5350\n },\n {\n \"tag\": "metranate",\n \"popularity\": 5346\n },\n {\n \"tag\": "sarcoblast",\n \"popularity\": 5341\n },\n {\n \"tag\": "porkish",\n \"popularity\": 5337\n },\n {\n \"tag\": "chauvinistic",\n \"popularity\": 5333\n },\n {\n \"tag\": "sexagesimal",\n \"popularity\": 5328\n },\n {\n \"tag\": "hematogenic",\n \"popularity\": 5324\n },\n {\n \"tag\": "selfpreservatory",\n \"popularity\": 5320\n },\n {\n \"tag\": "myelauxe",\n \"popularity\": 5315\n },\n {\n \"tag\": "triply",\n \"popularity\": 5311\n },\n {\n \"tag\": "metaphysicous",\n \"popularity\": 5306\n },\n {\n \"tag\": "vitrinoid",\n \"popularity\": 5302\n },\n {\n \"tag\": "glabellae",\n \"popularity\": 5298\n },\n {\n \"tag\": "moonlighter",\n \"popularity\": 5293\n },\n {\n \"tag\": "monotheistically epexegetical",\n \"popularity\": 5289\n },\n {\n \"tag\": "pseudolateral",\n \"popularity\": 5285\n },\n {\n \"tag\": "heptamethylene",\n \"popularity\": 5280\n },\n {\n \"tag\": "salvadora",\n \"popularity\": 5276\n },\n {\n \"tag\": "unjovial diphenylthiourea",\n \"popularity\": 5272\n },\n {\n \"tag\": "thievishness",\n \"popularity\": 5268\n },\n {\n \"tag\": "unridable",\n \"popularity\": 5263\n },\n {\n \"tag\": "underhandedly",\n \"popularity\": 5259\n },\n {\n \"tag\": "fungiform",\n \"popularity\": 5255\n },\n {\n \"tag\": "scruffle",\n \"popularity\": 5250\n },\n {\n \"tag\": "preindisposition",\n \"popularity\": 5246\n },\n {\n \"tag\": "Amadis",\n \"popularity\": 5242\n },\n {\n \"tag\": "Culex",\n \"popularity\": 5238\n },\n {\n \"tag\": "churning",\n \"popularity\": 5233\n },\n {\n \"tag\": "imperite",\n \"popularity\": 5229\n },\n {\n \"tag\": "levorotation",\n \"popularity\": 5225\n },\n {\n \"tag\": "barbate",\n \"popularity\": 5221\n },\n {\n \"tag\": "knotwort",\n \"popularity\": 5216\n },\n {\n \"tag\": "gypsiferous",\n \"popularity\": 5212\n },\n {\n \"tag\": "tourmalinic",\n \"popularity\": 5208\n },\n {\n \"tag\": "helleboric",\n \"popularity\": 5204\n },\n {\n \"tag\": "pneumograph",\n \"popularity\": 5199\n },\n {\n \"tag\": "Peltigeraceae",\n \"popularity\": 5195\n },\n {\n \"tag\": "busine",\n \"popularity\": 5191\n },\n {\n \"tag\": "Ailuridae",\n \"popularity\": 5187\n },\n {\n \"tag\": "azotate",\n \"popularity\": 5183\n },\n {\n \"tag\": "unlikable",\n \"popularity\": 5178\n },\n {\n \"tag\": "sloyd",\n \"popularity\": 5174\n },\n {\n \"tag\": "biblioclasm",\n \"popularity\": 5170\n },\n {\n \"tag\": "Seres",\n \"popularity\": 5166\n },\n {\n \"tag\": "unaccurateness",\n \"popularity\": 5162\n },\n {\n \"tag\": "scrollwise",\n \"popularity\": 5157\n },\n {\n \"tag\": "flandowser",\n \"popularity\": 5153\n },\n {\n \"tag\": "unblackened",\n \"popularity\": 5149\n },\n {\n \"tag\": "schistosternia",\n \"popularity\": 5145\n },\n {\n \"tag\": "fuse",\n \"popularity\": 5141\n },\n {\n \"tag\": "narthecal",\n \"popularity\": 5137\n },\n {\n \"tag\": "Cueva",\n \"popularity\": 5133\n },\n {\n \"tag\": "appositeness",\n \"popularity\": 5128\n },\n {\n \"tag\": "proindustrial",\n \"popularity\": 5124\n },\n {\n \"tag\": "dermatorrhoea",\n \"popularity\": 5120\n },\n {\n \"tag\": "oxyurous tendential",\n \"popularity\": 5116\n },\n {\n \"tag\": "isopurpurin",\n \"popularity\": 5112\n },\n {\n \"tag\": "impose",\n \"popularity\": 5108\n },\n {\n \"tag\": "wordsmanship",\n \"popularity\": 5104\n },\n {\n \"tag\": "saturator",\n \"popularity\": 5100\n },\n {\n \"tag\": "Nordicity",\n \"popularity\": 5096\n },\n {\n \"tag\": "interaccuse",\n \"popularity\": 5092\n },\n {\n \"tag\": "acridinic",\n \"popularity\": 5087\n },\n {\n \"tag\": "scholion",\n \"popularity\": 5083\n },\n {\n \"tag\": "pseudoaconitine",\n \"popularity\": 5079\n },\n {\n \"tag\": "doctorial",\n \"popularity\": 5075\n },\n {\n \"tag\": "Etchimin",\n \"popularity\": 5071\n },\n {\n \"tag\": "oliviform",\n \"popularity\": 5067\n },\n {\n \"tag\": "Pele",\n \"popularity\": 5063\n },\n {\n \"tag\": "Chiromantis Progymnasium",\n \"popularity\": 5059\n },\n {\n \"tag\": "toxosis",\n \"popularity\": 5055\n },\n {\n \"tag\": "spadilla",\n \"popularity\": 5051\n },\n {\n \"tag\": "Actinopterygii",\n \"popularity\": 5047\n },\n {\n \"tag\": "untiring",\n \"popularity\": 5043\n },\n {\n \"tag\": "butyral",\n \"popularity\": 5039\n },\n {\n \"tag\": "Gymnoderinae",\n \"popularity\": 5035\n },\n {\n \"tag\": "testudo",\n \"popularity\": 5031\n },\n {\n \"tag\": "frigorify",\n \"popularity\": 5027\n },\n {\n \"tag\": "aliency",\n \"popularity\": 5023\n },\n {\n \"tag\": "jargon",\n \"popularity\": 5019\n },\n {\n \"tag\": "counterservice",\n \"popularity\": 5015\n },\n {\n \"tag\": "isostrychnine",\n \"popularity\": 5011\n },\n {\n \"tag\": "tellership",\n \"popularity\": 5007\n },\n {\n \"tag\": "miscegenetic",\n \"popularity\": 5003\n },\n {\n \"tag\": "sorcer",\n \"popularity\": 4999\n },\n {\n \"tag\": "tilewright",\n \"popularity\": 4995\n },\n {\n \"tag\": "cyanoplastid",\n \"popularity\": 4991\n },\n {\n \"tag\": "fluxionally",\n \"popularity\": 4987\n },\n {\n \"tag\": "proudhearted",\n \"popularity\": 4983\n },\n {\n \"tag\": "blithely",\n \"popularity\": 4979\n },\n {\n \"tag\": "jestproof",\n \"popularity\": 4975\n },\n {\n \"tag\": "jestwise",\n \"popularity\": 4971\n },\n {\n \"tag\": "nonassimilable",\n \"popularity\": 4967\n },\n {\n \"tag\": "compurgation",\n \"popularity\": 4964\n },\n {\n \"tag\": "unhate",\n \"popularity\": 4960\n },\n {\n \"tag\": "haplodonty",\n \"popularity\": 4956\n },\n {\n \"tag\": "cardholder",\n \"popularity\": 4952\n },\n {\n \"tag\": "rainlight megohmmeter overstout",\n \"popularity\": 4948\n },\n {\n \"tag\": "itchless",\n \"popularity\": 4944\n },\n {\n \"tag\": "begiggle",\n \"popularity\": 4940\n },\n {\n \"tag\": "chromatosphere",\n \"popularity\": 4936\n },\n {\n \"tag\": "typicality",\n \"popularity\": 4932\n },\n {\n \"tag\": "overgrown",\n \"popularity\": 4928\n },\n {\n \"tag\": "envolume",\n \"popularity\": 4925\n },\n {\n \"tag\": "pachycholia",\n \"popularity\": 4921\n },\n {\n \"tag\": "passageable",\n \"popularity\": 4917\n },\n {\n \"tag\": "pathopoiesis",\n \"popularity\": 4913\n },\n {\n \"tag\": "overbreak",\n \"popularity\": 4909\n },\n {\n \"tag\": "satyric",\n \"popularity\": 4905\n },\n {\n \"tag\": "unaudited",\n \"popularity\": 4901\n },\n {\n \"tag\": "whimble",\n \"popularity\": 4898\n },\n {\n \"tag\": "pressureless",\n \"popularity\": 4894\n },\n {\n \"tag\": "Selene",\n \"popularity\": 4890\n },\n {\n \"tag\": "slithery",\n \"popularity\": 4886\n },\n {\n \"tag\": "nondisfigurement",\n \"popularity\": 4882\n },\n {\n \"tag\": "overdelicious",\n \"popularity\": 4878\n },\n {\n \"tag\": "Perca",\n \"popularity\": 4875\n },\n {\n \"tag\": "Palladium",\n \"popularity\": 4871\n },\n {\n \"tag\": "insagacity",\n \"popularity\": 4867\n },\n {\n \"tag\": "peristoma",\n \"popularity\": 4863\n },\n {\n \"tag\": "uncreativeness",\n \"popularity\": 4859\n },\n {\n \"tag\": "incomparability surfboarding",\n \"popularity\": 4856\n },\n {\n \"tag\": "bacillar",\n \"popularity\": 4852\n },\n {\n \"tag\": "ulcerative",\n \"popularity\": 4848\n },\n {\n \"tag\": "stychomythia",\n \"popularity\": 4844\n },\n {\n \"tag\": "sesma somatics nonentry",\n \"popularity\": 4840\n },\n {\n \"tag\": "unsepulchred",\n \"popularity\": 4837\n },\n {\n \"tag\": "cephalanthium",\n \"popularity\": 4833\n },\n {\n \"tag\": "Asiaticization",\n \"popularity\": 4829\n },\n {\n \"tag\": "killeen",\n \"popularity\": 4825\n },\n {\n \"tag\": "Pseudococcus",\n \"popularity\": 4822\n },\n {\n \"tag\": "untractable",\n \"popularity\": 4818\n },\n {\n \"tag\": "apolegamic",\n \"popularity\": 4814\n },\n {\n \"tag\": "hyperpnea",\n \"popularity\": 4810\n },\n {\n \"tag\": "martyrolatry",\n \"popularity\": 4807\n },\n {\n \"tag\": "Sarmatic",\n \"popularity\": 4803\n },\n {\n \"tag\": "nonsurface",\n \"popularity\": 4799\n },\n {\n \"tag\": "adjoined",\n \"popularity\": 4796\n },\n {\n \"tag\": "vasiform",\n \"popularity\": 4792\n },\n {\n \"tag\": "tastelessness",\n \"popularity\": 4788\n },\n {\n \"tag\": "rumbo",\n \"popularity\": 4784\n },\n {\n \"tag\": "subdititious",\n \"popularity\": 4781\n },\n {\n \"tag\": "reparticipation",\n \"popularity\": 4777\n },\n {\n \"tag\": "Yorkshireism",\n \"popularity\": 4773\n },\n {\n \"tag\": "outcrow",\n \"popularity\": 4770\n },\n {\n \"tag\": "casserole",\n \"popularity\": 4766\n },\n {\n \"tag\": "semideltaic",\n \"popularity\": 4762\n },\n {\n \"tag\": "freemason",\n \"popularity\": 4759\n },\n {\n \"tag\": "catkin",\n \"popularity\": 4755\n },\n {\n \"tag\": "conscient",\n \"popularity\": 4751\n },\n {\n \"tag\": "reliably",\n \"popularity\": 4748\n },\n {\n \"tag\": "Telembi",\n \"popularity\": 4744\n },\n {\n \"tag\": "hide",\n \"popularity\": 4740\n },\n {\n \"tag\": "social",\n \"popularity\": 4737\n },\n {\n \"tag\": "ichneutic",\n \"popularity\": 4733\n },\n {\n \"tag\": "polypotome blouse pentagrammatic",\n \"popularity\": 4729\n },\n {\n \"tag\": "airdrome pesthole",\n \"popularity\": 4726\n },\n {\n \"tag\": "unportended",\n \"popularity\": 4722\n },\n {\n \"tag\": "sheerly",\n \"popularity\": 4719\n },\n {\n \"tag\": "acardiac",\n \"popularity\": 4715\n },\n {\n \"tag\": "fetor",\n \"popularity\": 4711\n },\n {\n \"tag\": "storax",\n \"popularity\": 4708\n },\n {\n \"tag\": "syndactylic",\n \"popularity\": 4704\n },\n {\n \"tag\": "otiatrics",\n \"popularity\": 4700\n },\n {\n \"tag\": "range",\n \"popularity\": 4697\n },\n {\n \"tag\": "branchway",\n \"popularity\": 4693\n },\n {\n \"tag\": "beatific",\n \"popularity\": 4690\n },\n {\n \"tag\": "Rugosa",\n \"popularity\": 4686\n },\n {\n \"tag\": "rafty",\n \"popularity\": 4682\n },\n {\n \"tag\": "gapy",\n \"popularity\": 4679\n },\n {\n \"tag\": "heterocercal",\n \"popularity\": 4675\n },\n {\n \"tag\": "actinopterygious",\n \"popularity\": 4672\n },\n {\n \"tag\": "glauconite",\n \"popularity\": 4668\n },\n {\n \"tag\": "limbless priest",\n \"popularity\": 4665\n },\n {\n \"tag\": "chrysene",\n \"popularity\": 4661\n },\n {\n \"tag\": "isentropic",\n \"popularity\": 4658\n },\n {\n \"tag\": "lairdess",\n \"popularity\": 4654\n },\n {\n \"tag\": "butterhead choliambic",\n \"popularity\": 4650\n },\n {\n \"tag\": "hexaseme",\n \"popularity\": 4647\n },\n {\n \"tag\": "treeify",\n \"popularity\": 4643\n },\n {\n \"tag\": "coronetted fructify",\n \"popularity\": 4640\n },\n {\n \"tag\": "admiralty",\n \"popularity\": 4636\n },\n {\n \"tag\": "Flosculariidae",\n \"popularity\": 4633\n },\n {\n \"tag\": "limaceous",\n \"popularity\": 4629\n },\n {\n \"tag\": "subterconscious",\n \"popularity\": 4626\n },\n {\n \"tag\": "stayless",\n \"popularity\": 4622\n },\n {\n \"tag\": "psha",\n \"popularity\": 4619\n },\n {\n \"tag\": "Mediterraneanize",\n \"popularity\": 4615\n },\n {\n \"tag\": "impenetrably",\n \"popularity\": 4612\n },\n {\n \"tag\": "Myrmeleonidae",\n \"popularity\": 4608\n },\n {\n \"tag\": "germander",\n \"popularity\": 4605\n },\n {\n \"tag\": "Buri",\n \"popularity\": 4601\n },\n {\n \"tag\": "papyrotamia",\n \"popularity\": 4598\n },\n {\n \"tag\": "Toxylon",\n \"popularity\": 4594\n },\n {\n \"tag\": "batatilla",\n \"popularity\": 4591\n },\n {\n \"tag\": "fabella assumer",\n \"popularity\": 4587\n },\n {\n \"tag\": "macromethod",\n \"popularity\": 4584\n },\n {\n \"tag\": "Blechnum",\n \"popularity\": 4580\n },\n {\n \"tag\": "pantography",\n \"popularity\": 4577\n },\n {\n \"tag\": "seminovel",\n \"popularity\": 4574\n },\n {\n \"tag\": "disembarrassment",\n \"popularity\": 4570\n },\n {\n \"tag\": "bushmaking",\n \"popularity\": 4567\n },\n {\n \"tag\": "neurosis",\n \"popularity\": 4563\n },\n {\n \"tag\": "Animalia",\n \"popularity\": 4560\n },\n {\n \"tag\": "Bernice",\n \"popularity\": 4556\n },\n {\n \"tag\": "wisen",\n \"popularity\": 4553\n },\n {\n \"tag\": "subhymenium",\n \"popularity\": 4549\n },\n {\n \"tag\": "esophagomycosis",\n \"popularity\": 4546\n },\n {\n \"tag\": "wireworks",\n \"popularity\": 4543\n },\n {\n \"tag\": "Sabellidae",\n \"popularity\": 4539\n },\n {\n \"tag\": "fustianish",\n \"popularity\": 4536\n },\n {\n \"tag\": "professively",\n \"popularity\": 4532\n },\n {\n \"tag\": "overcorruptly",\n \"popularity\": 4529\n },\n {\n \"tag\": "overcreep",\n \"popularity\": 4526\n },\n {\n \"tag\": "Castilloa",\n \"popularity\": 4522\n },\n {\n \"tag\": "forelady Georgie",\n \"popularity\": 4519\n },\n {\n \"tag\": "outsider",\n \"popularity\": 4515\n },\n {\n \"tag\": "Enukki",\n \"popularity\": 4512\n },\n {\n \"tag\": "gypsy",\n \"popularity\": 4509\n },\n {\n \"tag\": "Passamaquoddy",\n \"popularity\": 4505\n },\n {\n \"tag\": "reposit",\n \"popularity\": 4502\n },\n {\n \"tag\": "overtenderness",\n \"popularity\": 4499\n },\n {\n \"tag\": "keratome",\n \"popularity\": 4495\n },\n {\n \"tag\": "interclavicular hypermonosyllable Susanna",\n \"popularity\": 4492\n },\n {\n \"tag\": "mispropose",\n \"popularity\": 4489\n },\n {\n \"tag\": "Membranipora",\n \"popularity\": 4485\n },\n {\n \"tag\": "lampad",\n \"popularity\": 4482\n },\n {\n \"tag\": "header",\n \"popularity\": 4479\n },\n {\n \"tag\": "triseriate",\n \"popularity\": 4475\n },\n {\n \"tag\": "distrainment",\n \"popularity\": 4472\n },\n {\n \"tag\": "staphyloplastic",\n \"popularity\": 4469\n },\n {\n \"tag\": "outscour",\n \"popularity\": 4465\n },\n {\n \"tag\": "tallowmaking",\n \"popularity\": 4462\n },\n {\n \"tag\": "plugger",\n \"popularity\": 4459\n },\n {\n \"tag\": "fashionize",\n \"popularity\": 4455\n },\n {\n \"tag\": "puzzle",\n \"popularity\": 4452\n },\n {\n \"tag\": "imbrue",\n \"popularity\": 4449\n },\n {\n \"tag\": "osteoblast",\n \"popularity\": 4445\n },\n {\n \"tag\": "Hydrocores",\n \"popularity\": 4442\n },\n {\n \"tag\": "Lutra",\n \"popularity\": 4439\n },\n {\n \"tag\": "upridge scarfy",\n \"popularity\": 4435\n },\n {\n \"tag\": "ancon taffle",\n \"popularity\": 4432\n },\n {\n \"tag\": "impest",\n \"popularity\": 4429\n },\n {\n \"tag\": "uncollatedness",\n \"popularity\": 4426\n },\n {\n \"tag\": "hypersensitize",\n \"popularity\": 4422\n },\n {\n \"tag\": "autographically",\n \"popularity\": 4419\n },\n {\n \"tag\": "louther",\n \"popularity\": 4416\n },\n {\n \"tag\": "Ollie",\n \"popularity\": 4413\n },\n {\n \"tag\": "recompensate",\n \"popularity\": 4409\n },\n {\n \"tag\": "Shan",\n \"popularity\": 4406\n },\n {\n \"tag\": "brachycnemic",\n \"popularity\": 4403\n },\n {\n \"tag\": "Carinatae",\n \"popularity\": 4399\n },\n {\n \"tag\": "geotherm",\n \"popularity\": 4396\n },\n {\n \"tag\": "sawback",\n \"popularity\": 4393\n },\n {\n \"tag\": "Novatianist",\n \"popularity\": 4390\n },\n {\n \"tag\": "reapproach",\n \"popularity\": 4387\n },\n {\n \"tag\": "myelopoietic",\n \"popularity\": 4383\n },\n {\n \"tag\": "cyanin",\n \"popularity\": 4380\n },\n {\n \"tag\": "unsmutted",\n \"popularity\": 4377\n },\n {\n \"tag\": "nonpapist",\n \"popularity\": 4374\n },\n {\n \"tag\": "transbaikalian",\n \"popularity\": 4370\n },\n {\n \"tag\": "connately",\n \"popularity\": 4367\n },\n {\n \"tag\": "tenderize iterance",\n \"popularity\": 4364\n },\n {\n \"tag\": "hydrostatical",\n \"popularity\": 4361\n },\n {\n \"tag\": "unflag",\n \"popularity\": 4358\n },\n {\n \"tag\": "translate",\n \"popularity\": 4354\n },\n {\n \"tag\": "Scorzonera",\n \"popularity\": 4351\n },\n {\n \"tag\": "uncomforted",\n \"popularity\": 4348\n },\n {\n \"tag\": "risser varied",\n \"popularity\": 4345\n },\n {\n \"tag\": "plumbate",\n \"popularity\": 4342\n },\n {\n \"tag\": "Usneaceae",\n \"popularity\": 4338\n },\n {\n \"tag\": "fohat",\n \"popularity\": 4335\n },\n {\n \"tag\": "slagging",\n \"popularity\": 4332\n },\n {\n \"tag\": "superserious",\n \"popularity\": 4329\n },\n {\n \"tag\": "theocracy",\n \"popularity\": 4326\n },\n {\n \"tag\": "valonia",\n \"popularity\": 4323\n },\n {\n \"tag\": "Sapindales",\n \"popularity\": 4319\n },\n {\n \"tag\": "palaeozoologist",\n \"popularity\": 4316\n },\n {\n \"tag\": "yalb",\n \"popularity\": 4313\n },\n {\n \"tag\": "unviewed",\n \"popularity\": 4310\n },\n {\n \"tag\": "polyarteritis",\n \"popularity\": 4307\n },\n {\n \"tag\": "vectorial",\n \"popularity\": 4304\n },\n {\n \"tag\": "skimpingly",\n \"popularity\": 4301\n },\n {\n \"tag\": "athort",\n \"popularity\": 4297\n },\n {\n \"tag\": "tribofluorescence",\n \"popularity\": 4294\n },\n {\n \"tag\": "benzonitrol",\n \"popularity\": 4291\n },\n {\n \"tag\": "swiller subobtuse subjacency",\n \"popularity\": 4288\n },\n {\n \"tag\": "uncompassed",\n \"popularity\": 4285\n },\n {\n \"tag\": "cacochymia",\n \"popularity\": 4282\n },\n {\n \"tag\": "commensalist butadiene",\n \"popularity\": 4279\n },\n {\n \"tag\": "culpable",\n \"popularity\": 4276\n },\n {\n \"tag\": "contributive",\n \"popularity\": 4273\n },\n {\n \"tag\": "attemperately",\n \"popularity\": 4269\n },\n {\n \"tag\": "spelt",\n \"popularity\": 4266\n },\n {\n \"tag\": "exoneration",\n \"popularity\": 4263\n },\n {\n \"tag\": "antivivisectionist",\n \"popularity\": 4260\n },\n {\n \"tag\": "granitification",\n \"popularity\": 4257\n },\n {\n \"tag\": "palladize",\n \"popularity\": 4254\n },\n {\n \"tag\": "marksmanship",\n \"popularity\": 4251\n },\n {\n \"tag\": "bullydom",\n \"popularity\": 4248\n },\n {\n \"tag\": "spirality",\n \"popularity\": 4245\n },\n {\n \"tag\": "caliginous",\n \"popularity\": 4242\n },\n {\n \"tag\": "reportedly",\n \"popularity\": 4239\n },\n {\n \"tag\": "polyad",\n \"popularity\": 4236\n },\n {\n \"tag\": "arthroempyesis",\n \"popularity\": 4233\n },\n {\n \"tag\": "semibay facultatively",\n \"popularity\": 4229\n },\n {\n \"tag\": "metastatically",\n \"popularity\": 4226\n },\n {\n \"tag\": "prophetically",\n \"popularity\": 4223\n },\n {\n \"tag\": "Linguatula elapid",\n \"popularity\": 4220\n },\n {\n \"tag\": "pyknatom",\n \"popularity\": 4217\n },\n {\n \"tag\": "centimeter",\n \"popularity\": 4214\n },\n {\n \"tag\": "mensurate",\n \"popularity\": 4211\n },\n {\n \"tag\": "migraine",\n \"popularity\": 4208\n },\n {\n \"tag\": "pentagamist",\n \"popularity\": 4205\n },\n {\n \"tag\": "querken",\n \"popularity\": 4202\n },\n {\n \"tag\": "ambulance",\n \"popularity\": 4199\n },\n {\n \"tag\": "Stokavian",\n \"popularity\": 4196\n },\n {\n \"tag\": "malvasian",\n \"popularity\": 4193\n },\n {\n \"tag\": "uncouthsome",\n \"popularity\": 4190\n },\n {\n \"tag\": "readable",\n \"popularity\": 4187\n },\n {\n \"tag\": "enlodge",\n \"popularity\": 4184\n },\n {\n \"tag\": "plasterwise Appendiculariidae perspectograph",\n \"popularity\": 4181\n },\n {\n \"tag\": "inkweed",\n \"popularity\": 4178\n },\n {\n \"tag\": "streep",\n \"popularity\": 4175\n },\n {\n \"tag\": "diadelphian cultured",\n \"popularity\": 4172\n },\n {\n \"tag\": "hymenopterous",\n \"popularity\": 4169\n },\n {\n \"tag\": "unexorableness",\n \"popularity\": 4166\n },\n {\n \"tag\": "cascaron",\n \"popularity\": 4163\n },\n {\n \"tag\": "undaintiness",\n \"popularity\": 4160\n },\n {\n \"tag\": "Curtana",\n \"popularity\": 4157\n },\n {\n \"tag\": "scurvied",\n \"popularity\": 4154\n },\n {\n \"tag\": "molluscoidal",\n \"popularity\": 4151\n },\n {\n \"tag\": "yurt",\n \"popularity\": 4148\n },\n {\n \"tag\": "deciduitis",\n \"popularity\": 4145\n },\n {\n \"tag\": "creephole",\n \"popularity\": 4142\n },\n {\n \"tag\": "quatrefeuille",\n \"popularity\": 4139\n },\n {\n \"tag\": "bicapitate adenomatome",\n \"popularity\": 4136\n },\n {\n \"tag\": "damassin",\n \"popularity\": 4134\n },\n {\n \"tag\": "planching",\n \"popularity\": 4131\n },\n {\n \"tag\": "dashedly inferential",\n \"popularity\": 4128\n },\n {\n \"tag\": "lobe",\n \"popularity\": 4125\n },\n {\n \"tag\": "Hyrachyus",\n \"popularity\": 4122\n },\n {\n \"tag\": "knab",\n \"popularity\": 4119\n },\n {\n \"tag\": "discohexaster",\n \"popularity\": 4116\n },\n {\n \"tag\": "malign",\n \"popularity\": 4113\n },\n {\n \"tag\": "pedagoguism",\n \"popularity\": 4110\n },\n {\n \"tag\": "shrubbery",\n \"popularity\": 4107\n },\n {\n \"tag\": "undershrub",\n \"popularity\": 4104\n },\n {\n \"tag\": "bureaucrat",\n \"popularity\": 4101\n },\n {\n \"tag\": "pantaleon",\n \"popularity\": 4098\n },\n {\n \"tag\": "mesoventral",\n \"popularity\": 4096\n }]';
+
+function makeTagCloud(tagInfo)
+{
+ var output = '<div class="tagCloud" style="width: 100%">';
+
+ tagInfo.sort(function(a, b) { if (a.tag < b.tag) { return -1; } else if (a.tag == b.tag) { return 0; } else return 1; });
+
+ for (var i = 0; i < tagInfo.length; i++) {
+ var tag = tagInfo[i].tag;
+
+ var validates = true;
+ for (var j = 0; j < tag.length; j++) {
+ var ch = tag.charCodeAt(j);
+ if (ch < 0x20 || ch >= 0x7f) {
+ validates = false;
+ break;
+ }
+ }
+
+ if (!validates)
+ continue;
+
+ var url = "http://example.com/tag/" + tag.replace(" ", "").toLowerCase();
+ var popularity = tagInfo[i].popularity;
+ var color = 'rgb(' + Math.floor(255 * (popularity - 12) / 20) + ', 0, 255)';
+ output += ' <a href="' + url + '" style="font-size: ' + popularity + 'px; color: ' + color + '">' + tag + '</a> \n';
+ }
+
+ output += '</div>';
+ output.replace(" ", "&nbsp;");
+
+ return output;
+}
+
+window.onload = function(){
+startTest("sunspider-string-tagcloud", 'f05543ff');
+
+var tagInfo;
+
+test("Parse JSON", function(){
+ var log2 = Math.log(2);
+ tagInfo = tagInfoJSON.parseJSON(function(a, b) { if (a == "popularity") { return Math.log(b) / log2; } else {return b; } });
+});
+
+test("Make Tag Cloud", function(){
+ var tagcloud = makeTagCloud(tagInfo);
+});
+
+endTest();
+};
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-unpack-code.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-unpack-code.html
new file mode 100644
index 000000000..ba0e2e7d7
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-unpack-code.html
@@ -0,0 +1,81 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// This test case unpacks the compressed code for the MochiKit,
+// jQuery, Dojo and Prototype JavaScript libraries.
+
+window.onload = function(){ startTest("sunspider-string-unpack-code", '5e425aed');
+
+test("Unpack Code", function(){
+
+/***
+ MochiKit.MochiKit 1.3.1 : PACKED VERSION
+ THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please
+ diff against the source tree, not this file.
+
+ See <http://mochikit.com/> for documentation, downloads, license, etc.
+
+ (c) 2005 Bob Ippolito. All rights Reserved.
+***/
+
+
+var decompressedMochiKit = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('if(H(1q)!="L"){1q.2X("B.J")}if(H(B)=="L"){B={}}if(H(B.J)=="L"){B.J={}}B.J.1Y="1.3.1";B.J.1r="B.J";B.J.2l=G(7V,vR){if(7V===O){7V={}}R(u i=1;i<M.K;i++){u o=M[i];if(H(o)!="L"&&o!==O){R(u k in o){7V[k]=o[k]}}}F 7V};B.J.2l(B.J,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},4f:G(n){if(M.K===0){n=1}F G(){F n++}},4L:G(mw){u me=M.2U;if(M.K==1){me.1U=mw;F Y me()}},bg:G(vQ){u X=[];u m=B.J;u aw=m.1R(O,M);1M(aw.K){u o=aw.2P();if(o&&H(o)=="3n"&&H(o.K)=="2y"){R(u i=o.K-1;i>=0;i--){aw.e9(o[i])}}N{X.1c(o)}}F X},1R:G(7U,1i,av){if(!av){av=0}if(1i){u l=1i.K;if(H(l)!="2y"){if(H(B.15)!="L"){1i=B.15.2G(1i);l=1i.K}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(!7U){7U=[]}R(u i=av;i<l;i++){7U.1c(1i[i])}}F 7U},8Z:G(5g,1i){if(5g===O){5g={}}R(u i=1;i<M.K;i++){u o=M[i];if(H(o)!="L"&&o!==O){R(u k in o){u v=o[k];if(H(5g[k])=="3n"&&H(v)=="3n"){M.2U(5g[k],v)}N{5g[k]=v}}}}F 5g},lO:G(6c,1i){if(6c===O){6c={}}R(u i=1;i<M.K;i++){u o=M[i];R(u k in o){if(!(k in 6c)){6c[k]=o[k]}}}F 6c},lN:G(1i){u fj=[];R(u mv in 1i){fj.1c(mv)}F fj},lM:G(1i){u fh=[];u e;R(u fi in 1i){u v;1f{v=1i[fi]}1e(e){2V}fh.1c([fi,v])}F fh},jq:G(fg,ff,fe){fe.1U=Y B.J.5a(fg.1r+"."+ff);fg[ff]=fe},4i:{7L:G(a){F!!a},vP:G(a){F!a},eE:G(a){F a},2E:G(a){F~a},vO:G(a){F-a},vN:G(a,b){F a+b},vM:G(a,b){F a-b},4u:G(a,b){F a/b},vL:G(a,b){F a%b},vK:G(a,b){F a*b},3W:G(a,b){F a&b},or:G(a,b){F a|b},vJ:G(a,b){F a^b},vI:G(a,b){F a<<b},vH:G(a,b){F a>>b},vG:G(a,b){F a>>>b},eq:G(a,b){F a==b},ne:G(a,b){F a!=b},gt:G(a,b){F a>b},ge:G(a,b){F a>=b},lt:G(a,b){F a<b},le:G(a,b){F a<=b},vF:G(a,b){F B.J.2f(a,b)===0},vE:G(a,b){F B.J.2f(a,b)!==0},vD:G(a,b){F B.J.2f(a,b)==1},vC:G(a,b){F B.J.2f(a,b)!=-1},vB:G(a,b){F B.J.2f(a,b)==-1},vA:G(a,b){F B.J.2f(a,b)!=1},vz:G(a,b){F a&&b},vy:G(a,b){F a||b},vx:G(a,b){F b in a}},24:G(mu){F G(){F D[mu].1w(D,M)}},lL:G(mt){F G(a9){F a9[mt]}},66:G(){u fd={};R(u i=0;i<M.K;i++){u 6b=M[i];fd[6b]=6b}F G(){R(u i=0;i<M.K;i++){if(!(H(M[i])in fd)){F 1m}}F 1h}},lJ:G(){R(u i=0;i<M.K;i++){if(M[i]!==O){F 1m}}F 1h},lK:G(){R(u i=0;i<M.K;i++){u o=M[i];if(!(H(o)=="L"||o===O)){F 1m}}F 1h},lI:G(1i){F!B.J.7e.1w(D,M)},7e:G(1i){R(u i=0;i<M.K;i++){u o=M[i];if(!(o&&o.K)){F 1m}}F 1h},3A:G(){R(u i=0;i<M.K;i++){u o=M[i];u 6b=H(o);if((6b!="3n"&&!(6b=="G"&&H(o.vw)=="G"))||o===O||H(o.K)!="2y"){F 1m}}F 1h},eN:G(){R(u i=0;i<M.K;i++){u o=M[i];if(H(o)!="3n"||o===O||H(o.9P)!="G"){F 1m}}F 1h},lH:G(fn){if(fn===O){F B.J.1R(O,M,1)}u fc=[];R(u i=1;i<M.K;i++){fc.1c(fn(M[i]))}F fc},2r:G(fn,1g){u m=B.J;u 6a=B.15;u fb=m.3A;if(M.K<=2){if(!fb(1g)){if(6a){1g=6a.2G(1g);if(fn===O){F 1g}}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(fn===O){F m.1R(O,1g)}u 69=[];R(u i=0;i<1g.K;i++){69.1c(fn(1g[i]))}F 69}N{if(fn===O){fn=7o}u 7T=O;R(i=1;i<M.K;i++){if(!fb(M[i])){if(6a){F 6a.2G(6a.4c.1w(O,M))}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}u l=M[i].K;if(7T===O||7T>l){7T=l}}69=[];R(i=0;i<7T;i++){u fa=[];R(u j=1;j<M.K;j++){fa.1c(M[j][i])}69.1c(fn.1w(D,fa))}F 69}},lG:G(fn){u f9=[];if(fn===O){fn=B.J.4i.7L}R(u i=1;i<M.K;i++){u o=M[i];if(fn(o)){f9.1c(o)}}F f9},47:G(fn,1g,7S){u aq=[];u m=B.J;if(!m.3A(1g)){if(B.15){1g=B.15.2G(1g)}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(fn===O){fn=m.4i.7L}if(H(7o.1U.47)=="G"){F 7o.1U.47.cz(1g,fn,7S)}N{if(H(7S)=="L"||7S===O){R(u i=0;i<1g.K;i++){u o=1g[i];if(fn(o)){aq.1c(o)}}}N{R(i=0;i<1g.K;i++){o=1g[i];if(fn.cz(7S,o)){aq.1c(o)}}}}F aq},mq:G(7R){F G(){hd(M.K){3j 0:F 7R();3j 1:F 7R(M[0]);3j 2:F 7R(M[0],M[1]);3j 3:F 7R(M[0],M[1],M[2])}u f8=[];R(u i=0;i<M.K;i++){f8.1c("M["+i+"]")}F dB("(1A("+f8.2b(",")+"))")}},lv:G(mr,ms){u m=B.J;F m.1O.1w(D,m.1R([ms,mr],M,2))},1O:G(3c,4o){if(H(3c)=="1n"){3c=4o[3c]}u ao=3c.f5;u 5f=3c.am;u f6=3c.f7;u m=B.J;if(H(3c)=="G"&&H(3c.1w)=="L"){3c=m.mq(3c)}if(H(ao)!="G"){ao=3c}if(H(4o)!="L"){f6=4o}if(H(5f)=="L"){5f=[]}N{5f=5f.9T()}m.1R(5f,M,2);u 7Q=G(){u ap=M;u me=M.2U;if(me.am.K>0){ap=m.2o(me.am,ap)}u 4o=me.f7;if(!4o){4o=D}F me.f5.1w(4o,ap)};7Q.f7=f6;7Q.f5=ao;7Q.am=5f;F 7Q},lF:G(7P){u mp=B.J.1O;R(u k in 7P){u f4=7P[k];if(H(f4)=="G"){7P[k]=mp(f4,7P)}}},5u:G(mo,mn,ml,mk){B.J.ae.5M(mo,mn,ml,mk)},mj:{"5L":1h,"1n":1h,"2y":1h},2f:G(a,b){if(a==b){F 0}u f3=(H(a)=="L"||a===O);u f2=(H(b)=="L"||b===O);if(f3&&f2){F 0}N{if(f3){F-1}N{if(f2){F 1}}}u m=B.J;u f1=m.mj;if(!(H(a)in f1&&H(b)in f1)){1f{F m.ae.3C(a,b)}1e(e){if(e!=m.4d){14 e}}}if(a<b){F-1}N{if(a>b){F 1}}u f0=m.U;14 Y 3p(f0(a)+" 3W "+f0(b)+" 9v 2E be vv")},eM:G(a,b){F B.J.2f(a.9P(),b.9P())},eL:G(a,b){u mi=B.J.2f;u 7O=a.K;u al=0;if(7O>b.K){al=1;7O=b.K}N{if(7O<b.K){al=-1}}R(u i=0;i<7O;i++){u 4j=mi(a[i],b[i]);if(4j){F 4j}}F al},7M:G(mh,mg,mf,md){B.J.ad.5M(mh,mg,mf,md)},U:G(o){if(H(o)=="L"){F"L"}N{if(o===O){F"O"}}1f{if(H(o.1K)=="G"){F o.1K()}N{if(H(o.U)=="G"&&o.U!=M.2U){F o.U()}}F B.J.ad.3C(o)}1e(e){if(H(o.1r)=="1n"&&(o.1l==cZ.1U.1l||o.1l==vu.1U.1l)){F o.1r}}1f{u eZ=(o+"")}1e(e){F"["+H(o)+"]"}if(H(o)=="G"){o=eZ.23(/^\\s+/,"");u 5n=o.2A("{");if(5n!=-1){o=o.3H(0,5n)+"{...}"}}F eZ},eK:G(o){u m=B.J;F"["+m.2r(m.U,o).2b(", ")+"]"},ac:G(o){F("\\""+o.23(/(["\\\\])/g,"\\\\$1")+"\\"").23(/[\\f]/g,"\\\\f").23(/[\\b]/g,"\\\\b").23(/[\\n]/g,"\\\\n").23(/[\\t]/g,"\\\\t").23(/[\\r]/g,"\\\\r")},eJ:G(o){F o+""},ly:G(mc,mb,ma,m9){B.J.ab.5M(mc,mb,ma,m9)},lx:G(){F dB("("+M[0]+")")},lz:G(o){u 5e=H(o);if(5e=="L"){F"L"}N{if(5e=="2y"||5e=="5L"){F o+""}N{if(o===O){F"O"}}}u m=B.J;u eY=m.ac;if(5e=="1n"){F eY(o)}u me=M.2U;u 3S;if(H(o.m8)=="G"){3S=o.m8();if(o!==3S){F me(3S)}}if(H(o.m7)=="G"){3S=o.m7();if(o!==3S){F me(3S)}}if(5e!="G"&&H(o.K)=="2y"){u X=[];R(u i=0;i<o.K;i++){u 2i=me(o[i]);if(H(2i)!="1n"){2i="L"}X.1c(2i)}F"["+X.2b(", ")+"]"}1f{3S=m.ab.3C(o);F me(3S)}1e(e){if(e!=m.4d){14 e}}if(5e=="G"){F O}X=[];R(u k in o){u ak;if(H(k)=="2y"){ak="\\""+k+"\\""}N{if(H(k)=="1n"){ak=eY(k)}N{2V}}2i=me(o[k]);if(H(2i)!="1n"){2V}X.1c(ak+":"+2i)}F"{"+X.2b(", ")+"}"},lE:G(a,b){F(B.J.2f(a,b)===0)},lD:G(eX,4n){if(eX.K!=4n.K){F 1m}F(B.J.2f(eX,4n)===0)},2o:G(){u eW=[];u m6=B.J.1R;R(u i=0;i<M.K;i++){m6(eW,M[i])}F eW},eR:G(2h){u m=B.J;u eU=m.2f;if(M.K==1){F G(a,b){F eU(a[2h],b[2h])}}u eV=m.1R(O,M);F G(a,b){u aj=0;R(u i=0;(aj===0)&&(i<eV.K);i++){u 2h=eV[i];aj=eU(a[2h],b[2h])}F aj}},lC:G(2h){u m5=B.J.eR.1w(D,M);F G(a,b){F m5(b,a)}},2z:G(m4){u m=B.J;F m.1O.1w(D,m.1R([m4,L],M,1))},67:G(m0,1g){if(1g.K===0){F O}u ai=1g[0];u m3=B.J.2f;R(u i=1;i<1g.K;i++){u o=1g[i];if(m3(o,ai)==m0){ai=o}}F ai},lB:G(){F B.J.67(1,M)},lA:G(){F B.J.67(-1,M)},bi:G(1g,lY,lZ,3B){if(H(3B)=="L"||3B===O){3B=1g.K}R(u i=(lZ||0);i<3B;i++){if(1g[i]===lY){F i}}F-1},eO:G(1g,lW,lX,3B){if(H(3B)=="L"||3B===O){3B=1g.K}u 4j=B.J.2f;R(u i=(lX||0);i<3B;i++){if(4j(1g[i],lW)===0){F i}}F-1},d4:G(1j,lV){u ah=[1j];u lU=B.J.1R;1M(ah.K){u X=lV(ah.2P());if(X){lU(ah,X)}}},3f:G(ag){u 2w=ag.1r;if(H(2w)=="L"){2w=""}N{2w=2w+"."}R(u 1b in ag){u o=ag[1b];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+1b}1e(e){}}}},dw:G(3s,68){if(H(B.S)!="L"&&M.K==1&&(H(3s)=="1n"||(H(3s.3T)!="L"&&3s.3T>0))){u kv=B.S.d5(3s);3s=kv[0];68=kv[1]}N{if(M.K==1){u o=3s;3s=[];68=[];R(u k in o){u v=o[k];if(H(v)!="G"){3s.1c(k);68.1c(v)}}}}u W=[];u lT=28.2a(3s.K,68.K);u eT=B.J.af;R(u i=0;i<lT;i++){v=68[i];if(H(v)!="L"&&v!==O){W.1c(eT(3s[i])+"="+eT(v))}}F W.2b("&")},lw:G(lS,lQ){u 7N=lS.23(/\\+/g,"%20").2R("&");u o={};u 5d;if(H(lR)!="L"){5d=lR}N{5d=vt}if(lQ){R(u i=0;i<7N.K;i++){u 2n=7N[i].2R("=");u 1b=5d(2n[0]);u 4n=o[1b];if(!(4n 2C 7o)){4n=[];o[1b]=4n}4n.1c(5d(2n[1]))}}N{R(i=0;i<7N.K;i++){2n=7N[i].2R("=");o[5d(2n[0])]=5d(2n[1])}}F o}});B.J.4a=G(){D.4m=[]};B.J.4a.1U={5M:G(1b,eS,3y,lP){if(lP){D.4m.e9([1b,eS,3y])}N{D.4m.1c([1b,eS,3y])}},3C:G(){R(u i=0;i<D.4m.K;i++){u 2n=D.4m[i];if(2n[1].1w(D,M)){F 2n[2].1w(D,M)}}14 B.J.4d},vs:G(1b){R(u i=0;i<D.4m.K;i++){u 2n=D.4m[i];if(2n[0]==1b){D.4m.4y(i,1);F 1h}}F 1m}};B.J.1z=["4f","4L","1R","2l","8Z","lO","lN","lM","5a","4i","24","lL","66","lo","ln","lK","lJ","lI","7e","3A","eN","lH","2r","lG","47","1O","lF","4d","4a","5u","2f","7M","U","lE","lD","2o","eR","lC","2z","lm","67","lp","eI","lB","lA","d4","ll","af","dw","lz","ly","lx","lw","eO","bi","bg","lv"];B.J.1W=["3f","ae","ad","ab","eM","eL","eK","ac","eJ"];B.J.2Y=G(lu,eP){if(H(B.eQ)=="L"){B.eQ=(B.3d||(H(1x)=="L"&&H(1q)=="L"))}if(!B.eQ){F}u 1p=eP.2k[":1p"];R(u i=0;i<1p.K;i++){lu[1p[i]]=eP[1p[i]]}};B.J.2d=G(){u m=D;m.vr=m.24;m.vq=m.eO;if(H(ls)!="L"){m.af=G(lr){F ls(lr).23(/\\\'/g,"%27")}}N{m.af=G(lq){F vp(lq).23(/\\+/g,"%2B").23(/\\"/g,"%22").W.23(/\\\'/g,"%27")}}m.5a=G(1b){D.43=1b;D.1b=1b};m.5a.1U=Y 2x();m.2l(m.5a.1U,{U:G(){if(D.43&&D.43!=D.1b){F D.1b+"("+m.U(D.43)+")"}N{F D.1b+"()"}},1l:m.24("U")});m.4d=Y m.5a("B.J.4d");m.lp=m.2z(m.67,1);m.eI=m.2z(m.67,-1);m.lo=m.66("G");m.ln=m.66("L");m.lm=m.2z(m.2l,O);m.ll=m.2z(m.2r,O);m.ae=Y m.4a();m.5u("vo",m.eN,m.eM);m.5u("ej",m.3A,m.eL);m.ad=Y m.4a();m.7M("ej",m.3A,m.eK);m.7M("1n",m.66("1n"),m.ac);m.7M("vn",m.66("2y","5L"),m.eJ);m.ab=Y m.4a();u 1p=m.2o(m.1z,m.1W);m.2k={":3e":m.2o(m.1W),":1p":1p};m.3f(D)};B.J.2d();if(!B.3d){2f=B.J.2f}B.J.2Y(D,B.J);if(H(1q)!="L"){1q.2X("B.15");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.15 3F on B.J!"}if(H(B.15)=="L"){B.15={}}B.15.1r="B.15";B.15.1Y="1.3.1";B.J.2l(B.15,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},9W:G(1b,lk,lj,lh){B.15.9Y.5M(1b,lk,lj,lh)},1Q:G(3R,lg){u I=B.15;if(M.K==2){F I.9Z(G(a){F a!=lg},3R)}if(H(3R.1a)=="G"){F 3R}N{if(H(3R.1Q)=="G"){F 3R.1Q()}}1f{F I.9Y.3C(3R)}1e(e){u m=B.J;if(e==m.4d){e=Y 3p(H(3R)+": "+m.U(3R)+" is 2E vm")}14 e}},eu:G(n){if(!n){n=0}u m=B.J;F{U:G(){F"eu("+n+")"},1l:m.24("U"),1a:m.4f(n)}},et:G(p){u I=B.15;u m=B.J;u 1g=[];u lf=I.1Q(p);F{U:G(){F"et(...)"},1l:m.24("U"),1a:G(){1f{u W=lf.1a();1g.1c(W);F W}1e(e){if(e!=I.25){14 e}if(1g.K===0){D.1a=G(){14 I.25}}N{u i=-1;D.1a=G(){i=(i+1)%1g.K;F 1g[i]}}F D.1a()}}}},7b:G(Q,n){u m=B.J;if(H(n)=="L"){F{U:G(){F"7b("+m.U(Q)+")"},1l:m.24("U"),1a:G(){F Q}}}F{U:G(){F"7b("+m.U(Q)+", "+n+")"},1l:m.24("U"),1a:G(){if(n<=0){14 B.15.25}n-=1;F Q}}},1a:G(ld){F ld.1a()},es:G(p,q){u m=B.J;u 1a=B.15.1a;u lc=m.2r(1Q,M);F{U:G(){F"es(...)"},1l:m.24("U"),1a:G(){F m.2r(1a,lc)}}},a1:G(3b,1V){u m=B.J;1V=B.15.1Q(1V);if(3b===O){3b=m.4i.7L}F{U:G(){F"a1(...)"},1l:m.24("U"),1a:G(){1M(1h){u W=1V.1a();if(3b(W)){F W}}F L}}},a0:G(3b,1V){u m=B.J;1V=B.15.1Q(1V);if(3b===O){3b=m.4i.7L}F{U:G(){F"a0(...)"},1l:m.24("U"),1a:G(){1M(1h){u W=1V.1a();if(!3b(W)){F W}}F L}}},er:G(1V){u I=B.15;u m=B.J;1V=I.1Q(1V);u 5c=0;u 2J=0;u 3a=1;u i=-1;if(M.K==2){2J=M[1]}N{if(M.K==3){5c=M[1];2J=M[2]}N{5c=M[1];2J=M[2];3a=M[3]}}F{U:G(){F"er("+["...",5c,2J,3a].2b(", ")+")"},1l:m.24("U"),1a:G(){u W;1M(i<5c){W=1V.1a();i++}if(5c>=2J){14 I.25}5c+=3a;F W}}},4c:G(aa,p,q){u m=B.J;u I=B.15;u lb=m.2r(I.1Q,m.1R(O,M,1));u 2r=m.2r;u 1a=I.1a;F{U:G(){F"4c(...)"},1l:m.24("U"),1a:G(){F aa.1w(D,2r(1a,lb))}}},ep:G(aa,1V,I){1V=B.15.1Q(1V);u m=B.J;F{U:G(){F"ep(...)"},1l:m.24("U"),1a:G(){F aa.1w(I,1V.1a())}}},55:G(p,q){u I=B.15;u m=B.J;if(M.K==1){F I.1Q(M[0])}u 64=m.2r(I.1Q,M);F{U:G(){F"55(...)"},1l:m.24("U"),1a:G(){1M(64.K>1){1f{F 64[0].1a()}1e(e){if(e!=I.25){14 e}64.2P()}}if(64.K==1){u a9=64.2P();D.1a=m.1O("1a",a9);F D.1a()}14 I.25}}},9Z:G(3b,1V){u I=B.15;1V=I.1Q(1V);F{U:G(){F"9Z(...)"},1l:B.J.24("U"),1a:G(){u W=1V.1a();if(!3b(W)){D.1a=G(){14 I.25};D.1a()}F W}}},eo:G(3b,1V){1V=B.15.1Q(1V);u m=B.J;u 1O=m.1O;F{"U":G(){F"eo(...)"},"1l":m.24("U"),"1a":G(){1M(1h){u W=1V.1a();if(!3b(W)){2K}}D.1a=1O("1a",1V);F W}}},a7:G(63,2u,la){2u.62[63]=-1;u m=B.J;u l9=m.eI;F{U:G(){F"en("+63+", ...)"},1l:m.24("U"),1a:G(){u W;u i=2u.62[63];if(i==2u.29){W=la.1a();2u.a8.1c(W);2u.29+=1;2u.62[63]+=1}N{W=2u.a8[i-2u.2a];2u.62[63]+=1;if(i==2u.2a&&l9(2u.62)!=2u.2a){2u.2a+=1;2u.a8.2P()}}F W}}},en:G(a6,n){u W=[];u 2u={"62":[],"a8":[],"29":-1,"2a":-1};if(M.K==1){n=2}u I=B.15;a6=I.1Q(a6);u a7=I.a7;R(u i=0;i<n;i++){W.1c(a7(i,2u,a6))}F W},2G:G(4l){u m=B.J;if(H(4l.9T)=="G"){F 4l.9T()}N{if(m.3A(4l)){F m.2o(4l)}}u I=B.15;4l=I.1Q(4l);u W=[];1f{1M(1h){W.1c(4l.1a())}}1e(e){if(e!=I.25){14 e}F W}F L},7H:G(fn,7K,l8){u i=0;u x=l8;u I=B.15;7K=I.1Q(7K);if(M.K<3){1f{x=7K.1a()}1e(e){if(e==I.25){e=Y 3p("7H() of vl vk vj no vi 3m")}14 e}i++}1f{1M(1h){x=fn(x,7K.1a())}}1e(e){if(e!=I.25){14 e}}F x},7I:G(){u 4k=0;u 2J=0;u 3a=1;if(M.K==1){2J=M[0]}N{if(M.K==2){4k=M[0];2J=M[1]}N{if(M.K==3){4k=M[0];2J=M[1];3a=M[2]}N{14 Y 3p("7I() vh 1, 2, or 3 M!")}}}if(3a===0){14 Y 3p("7I() 3a 5p 2E be 0")}F{1a:G(){if((3a>0&&4k>=2J)||(3a<0&&4k<=2J)){14 B.15.25}u W=4k;4k+=3a;F W},U:G(){F"7I("+[4k,2J,3a].2b(", ")+")"},1l:B.J.24("U")}},l0:G(a5,l7){u x=l7||0;u I=B.15;a5=I.1Q(a5);1f{1M(1h){x+=a5.1a()}}1e(e){if(e!=I.25){14 e}}F x},em:G(a4){u I=B.15;a4=I.1Q(a4);1f{1M(1h){a4.1a()}}1e(e){if(e!=I.25){14 e}}},9a:G(7J,1A,I){u m=B.J;if(M.K>2){1A=m.1O(1A,I)}if(m.3A(7J)){1f{R(u i=0;i<7J.K;i++){1A(7J[i])}}1e(e){if(e!=B.15.25){14 e}}}N{I=B.15;I.em(I.4c(1A,7J))}},kZ:G(l6,1A){u I=B.15;1f{I.a0(1A,l6).1a();F 1m}1e(e){if(e!=I.25){14 e}F 1h}},kY:G(l5,4j){u W=B.15.2G(l5);if(M.K==1){4j=B.J.2f}W.iz(4j);F W},kX:G(l4){u W=B.15.2G(l4);W.vg();F W},kW:G(l3,1A){u I=B.15;1f{I.a1(1A,l3).1a();F 1h}1e(e){if(e!=I.25){14 e}F 1m}},kV:G(1g,5b){if(B.J.3A(5b)){R(u i=0;i<5b.K;i++){1g.1c(5b[i])}}N{u I=B.15;5b=I.1Q(5b);1f{1M(1h){1g.1c(5b.1a())}}1e(e){if(e!=I.25){14 e}}}F 1g},ek:G(a3,eH){u m=B.J;u I=B.15;if(M.K<2){eH=m.4i.eE}a3=I.1Q(a3);u pk=L;u k=L;u v;G eF(){v=a3.1a();k=eH(v)}G l2(){u 7j=v;v=L;F 7j}u eG=1h;F{U:G(){F"ek(...)"},1a:G(){1M(k==pk){eF();if(eG){eG=1m;2K}}pk=k;F[k,{1a:G(){if(v==L){eF()}if(k!=pk){14 I.25}F l2()}}]}}},kU:G(a2,eD){u m=B.J;u I=B.15;if(M.K<2){eD=m.4i.eE}a2=I.1Q(a2);u ey=[];u eA=1h;u ez;1M(1h){1f{u eB=a2.1a();u 2h=eD(eB)}1e(e){if(e==I.25){2K}14 e}if(eA||2h!=ez){u eC=[];ey.1c([2h,eC])}eC.1c(eB);eA=1m;ez=2h}F ey},9X:G(ex){u i=0;F{U:G(){F"9X(...)"},1l:B.J.24("U"),1a:G(){if(i>=ex.K){14 B.15.25}F ex[i++]}}},eh:G(ew){F(ew&&H(ew.ei)=="G")},9V:G(l1){F{U:G(){F"9V(...)"},1l:B.J.24("U"),1a:G(){u W=l1.ei();if(W===O||W===L){14 B.15.25}F W}}}});B.15.1W=["9Y","9X","eh","9V",];B.15.1z=["25","9W","1Q","eu","et","7b","1a","es","a1","a0","er","4c","ep","55","9Z","eo","en","2G","7H","7I","l0","em","9a","kZ","kY","kX","kW","kV","ek","kU"];B.15.2d=G(){u m=B.J;D.25=Y m.5a("25");D.9Y=Y m.4a();D.9W("ej",m.3A,D.9X);D.9W("ei",D.eh,D.9V);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.15.2d();if(!B.3d){7H=B.15.7H}B.J.2Y(D,B.15);if(H(1q)!="L"){1q.2X("B.1H");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1H 3F on B.J!"}if(H(B.1H)=="L"){B.1H={}}B.1H.1r="B.1H";B.1H.1Y="1.3.1";B.1H.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1H.1l=G(){F D.1K()};B.1H.1z=["5C","49","7A","kR","2L","5Z","kG","ch","kE","kC"];B.1H.1W=["ef","e8","e7"];B.1H.49=G(1P,kT,3z){D.1P=1P;D.3N=kT;D.3z=3z;D.vf=Y 3Q()};B.1H.49.1U={U:G(){u m=B.J;F"49("+m.2r(m.U,[D.1P,D.3N,D.3z]).2b(", ")+")"},1l:B.J.24("U")};B.J.2l(B.1H,{ef:G(7F){u I=B.1H;if(H(7F)=="1n"){7F=I.5C[7F]}F G(1t){u 7G=1t.3N;if(H(7G)=="1n"){7G=I.5C[7G]}F 7G>=7F}},e8:G(){u kS=B.1H.49;R(u i=0;i<M.K;i++){if(!(M[i]2C kS)){F 1m}}F 1h},e7:G(a,b){F B.J.2f([a.3N,a.3z],[b.3N,b.3z])},kR:G(1t){cq("1P: "+1t.1P+"\\ve: "+1t.3N+"\\vd: "+1t.3z.2b(" "))}});B.1H.7A=G(7E){D.4f=0;if(H(7E)=="L"||7E===O){7E=-1}D.ec=7E;D.4h=[];D.7C={};D.e5=1m};B.1H.7A.1U={vc:G(){D.4h.4y(0,D.4h.K)},kK:G(1t){if(H(2O)!="L"&&2O.eg&&2O.eg.5Z){2O.eg.5Z(1t)}N{if(H(7h)!="L"&&7h.kQ){7h.kQ(1t)}N{if(H(5X)=="G"){5X(1t)}}}},kL:G(1t){R(u k in D.7C){u 2n=D.7C[k];if(2n.kO!=k||(2n[0]&&!2n[0](1t))){2V}2n[1](1t)}},hE:G(ee,7D,kP){if(H(7D)=="1n"){7D=B.1H.ef(7D)}u ed=[7D,kP];ed.kO=ee;D.7C[ee]=ed},c9:G(kN){gi D.7C[kN]},kH:G(kM,vb){u 1t=Y B.1H.49(D.4f,kM,B.J.1R(O,M,1));D.4h.1c(1t);D.kL(1t);if(D.e5){D.kK(1t.3N+": "+1t.3z.2b(" "))}D.4f+=1;1M(D.ec>=0&&D.4h.K>D.ec){D.4h.2P()}},c8:G(9U){u ea=0;if(!(H(9U)=="L"||9U===O)){ea=28.29(0,D.4h.K-9U)}F D.4h.9T(ea)},kJ:G(7B){if(H(7B)=="L"||7B===O){7B=30}u 9S=D.c8(7B);if(9S.K){u 1g=2r(G(m){F"\\n ["+m.1P+"] "+m.3N+": "+m.3z.2b(" ")},9S);1g.e9("va "+9S.K+" v9:");F 1g.2b("")}F""},v8:G(kI){if(H(B.1I)=="L"){cq(D.kJ())}N{B.1I.bY(kI||1m)}}};B.1H.2d=G(){D.5C={8M:40,8L:50,8K:30,8J:20,8I:10};u m=B.J;m.5u("49",D.e8,D.e7);u 61=m.2z;u e6=D.7A;u 60=e6.1U.kH;m.2l(D.7A.1U,{kF:61(60,"8I"),5Z:61(60,"8J"),dE:61(60,"8M"),kD:61(60,"8L"),kB:61(60,"8K")});u I=D;u 5Y=G(1b){F G(){I.2L[1b].1w(I.2L,M)}};D.5Z=5Y("5Z");D.kG=5Y("dE");D.ch=5Y("kF");D.kE=5Y("kD");D.kC=5Y("kB");D.2L=Y e6();D.2L.e5=1h;D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};if(H(5X)=="L"&&H(2v)!="L"&&2v.kA&&H(kz)!="L"){5X=G(){5X.3G=M;u ev=2v.kA("v7");ev.v6("5X",1m,1h);kz(ev)}}B.1H.2d();B.J.2Y(D,B.1H);if(H(1q)!="L"){1q.2X("B.1D")}if(H(B)=="L"){B={}}if(H(B.1D)=="L"){B.1D={}}B.1D.1r="B.1D";B.1D.1Y="1.3.1";B.1D.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1D.1l=G(){F D.1K()};B.1D.ks=G(1y){1y=1y+"";if(H(1y)!="1n"||1y.K===0){F O}u 7z=1y.2R("-");if(7z.K===0){F O}F Y 3Q(7z[0],7z[1]-1,7z[2])};B.1D.ky=/(\\d{4,})(?:-(\\d{1,2})(?:-(\\d{1,2})(?:[T ](\\d{1,2}):(\\d{1,2})(?::(\\d{1,2})(?:\\.(\\d+))?)?(?:(Z)|([+-])(\\d{1,2})(?::(\\d{1,2}))?)?)?)?)?/;B.1D.kr=G(1y){1y=1y+"";if(H(1y)!="1n"||1y.K===0){F O}u X=1y.3C(B.1D.ky);if(H(X)=="L"||X===O){F O}u 5W,7y,7x,9R,2a,9Q,7w;5W=3w(X[1],10);if(H(X[2])=="L"||X[2]===""){F Y 3Q(5W)}7y=3w(X[2],10)-1;7x=3w(X[3],10);if(H(X[4])=="L"||X[4]===""){F Y 3Q(5W,7y,7x)}9R=3w(X[4],10);2a=3w(X[5],10);9Q=(H(X[6])!="L"&&X[6]!=="")?3w(X[6],10):0;if(H(X[7])!="L"&&X[7]!==""){7w=28.ha(c5*4M("0."+X[7]))}N{7w=0}if((H(X[8])=="L"||X[8]==="")&&(H(X[9])=="L"||X[9]==="")){F Y 3Q(5W,7y,7x,9R,2a,9Q,7w)}u 58;if(H(X[9])!="L"&&X[9]!==""){58=3w(X[10],10)*v5;if(H(X[11])!="L"&&X[11]!==""){58+=3w(X[11],10)*kw}if(X[9]=="-"){58=-58}}N{58=0}F Y 3Q(3Q.v4(5W,7y,7x,9R,2a,9Q,7w)-58)};B.1D.dY=G(2g,kx){if(H(2g)=="L"||2g===O){F O}u hh=2g.v3();u mm=2g.v2();u ss=2g.v1();u 1g=[((kx&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)];F 1g.2b(":")};B.1D.kq=G(2g,7v){if(H(2g)=="L"||2g===O){F O}u ku=7v?"T":" ";u kt=7v?"Z":"";if(7v){2g=Y 3Q(2g.9P()+(2g.v0()*kw))}F B.1D.dX(2g)+ku+B.1D.dY(2g,7v)+kt};B.1D.dX=G(2g){if(H(2g)=="L"||2g===O){F O}u e4=B.1D.e3;F[2g.dZ(),e4(2g.e1()+1),e4(2g.e0())].2b("-")};B.1D.kp=G(d){d=d+"";if(H(d)!="1n"||d.K===0){F O}u a=d.2R("/");F Y 3Q(a[2],a[0]-1,a[1])};B.1D.e3=G(n){F(n>9)?n:"0"+n};B.1D.ko=G(d){if(H(d)=="L"||d===O){F O}u e2=B.1D.e3;F[e2(d.e1()+1),e2(d.e0()),d.dZ()].2b("/")};B.1D.kn=G(d){if(H(d)=="L"||d===O){F O}F[d.e1()+1,d.e0(),d.dZ()].2b("/")};B.1D.1z=["ks","kr","dY","kq","dX","kp","ko","kn"];B.1D.1W=[];B.1D.2k={":3e":B.1D.1z,":1p":B.1D.1z};B.1D.2d=G(){u 2w=D.1r+".";R(u k in D){u o=D[k];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+k}1e(e){}}}};B.1D.2d();if(H(B.J)!="L"){B.J.2Y(D,B.1D)}N{(G(km,dW){if((H(1x)=="L"&&H(1q)=="L")||(H(B.3d)=="5L"&&B.3d)){u 1p=dW.2k[":1p"];R(u i=0;i<1p.K;i++){km[1p[i]]=dW[1p[i]]}}})(D,B.1D)}if(H(1q)!="L"){1q.2X("B.1s")}if(H(B)=="L"){B={}}if(H(B.1s)=="L"){B.1s={}}B.1s.1r="B.1s";B.1s.1Y="1.3.1";B.1s.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1s.1l=G(){F D.1K()};B.1s.ke=G(kl,kk,kj,ki,kh,dV,kg,9N,kf){F G(1P){1P=4M(1P);if(H(1P)=="L"||1P===O||k8(1P)){F kl}u 9L=kk;u 9K=kj;if(1P<0){1P=-1P}N{9L=9L.23(/-/,"")}u me=M.2U;u 9M=B.1s.dJ(ki);if(kh){1P=1P*3k;9K=9M.9y+9K}1P=B.1s.dK(1P,dV);u 9O=1P.2R(/\\./);u 3r=9O[0];u 3P=(9O.K==1)?"":9O[1];u X="";1M(3r.K<kg){3r="0"+3r}if(9N){1M(3r.K>9N){u i=3r.K-9N;X=9M.9A+3r.2W(i,3r.K)+X;3r=3r.2W(0,i)}}X=3r+X;if(dV>0){1M(3P.K<kf){3P=3P+"0"}X=X+9M.9z+3P}F 9L+X+9K}};B.1s.k5=G(9J,9H,9G){if(H(9H)=="L"){9H=""}u 3q=9J.3C(/((?:[0#]+,)?[0#]+)(?:\\.([0#]+))?(%)?/);if(!3q){14 3p("uZ uY")}u 7u=9J.3H(0,3q.c6);u kd=9J.3H(3q.c6+3q[0].K);if(7u.uX(/-/)==-1){7u=7u+"-"}u 9I=3q[1];u 3P=(H(3q[2])=="1n"&&3q[2]!="")?3q[2]:"";u kc=(H(3q[3])=="1n"&&3q[3]!="");u dU=9I.2R(/,/);u 9F;if(H(9G)=="L"){9G="dG"}if(dU.K==1){9F=O}N{9F=dU[1].K}u ka=9I.K-9I.23(/0/g,"").K;u k9=3P.K-3P.23(/0/g,"").K;u kb=3P.K;u W=B.1s.ke(9H,7u,kd,9G,kc,kb,ka,9F,k9);u m=B.J;if(m){u fn=M.2U;u 3G=m.2o(M);W.U=G(){F[I.1r,"(",2r(m.U,3G).2b(", "),")"].2b("")}}F W};B.1s.dJ=G(4g){if(H(4g)=="L"||4g===O){4g="dG"}if(H(4g)=="1n"){u W=B.1s.5V[4g];if(H(W)=="1n"){W=M.2U(W);B.1s.5V[4g]=W}F W}N{F 4g}};B.1s.k4=G(dT,9E){if(9E){u X=dT/9E;if(!k8(X)){F B.1s.9B(dT/9E)}}F"0"};B.1s.9B=G(dS){u dR=(dS<0?"-":"");u s=28.8B(28.uW(dS)*3k).1l();if(s=="0"){F s}if(s.K<3){1M(s.3Z(s.K-1)=="0"){s=s.2W(0,s.K-1)}F dR+"0."+s}u 5E=dR+s.2W(0,s.K-2);u 7t=s.2W(s.K-2,s.K);if(7t=="uV"){F 5E}N{if(7t.3Z(1)=="0"){F 5E+"."+7t.3Z(0)}N{F 5E+"."+7t}}};B.1s.dI=G(1y,dQ){1y=1y+"";if(H(1y)!="1n"){F O}if(!dQ){F 1y.23(/^\\s+/,"")}N{F 1y.23(Y 8V("^["+dQ+"]+"),"")}};B.1s.dH=G(1y,dP){1y=1y+"";if(H(1y)!="1n"){F O}if(!dP){F 1y.23(/\\s+$/,"")}N{F 1y.23(Y 8V("["+dP+"]+$"),"")}};B.1s.k2=G(1y,dO){u I=B.1s;F I.dH(I.dI(1y,dO),dO)};B.1s.dL=G(9D,9C){9D=28.8B(9D*28.dN(10,9C));u X=(9D*28.dN(10,-9C)).6I(9C);if(X.3Z(0)=="."){X="0"+X}F X};B.1s.dK=G(k7,dM){F B.1s.dL(k7+0.5*28.dN(10,-dM),dM)};B.1s.k3=G(k6){F B.1s.9B(3k*k6)+"%"};B.1s.1z=["dL","dK","k5","dJ","k4","9B","k3","dI","dH","k2"];B.1s.5V={k1:{9A:",",9z:".",9y:"%"},uU:{9A:".",9z:",",9y:"%"},uT:{9A:" ",9z:",",9y:"%"},"dG":"k1"};B.1s.1W=[];B.1s.2k={":1p":B.1s.1z,":3e":B.1s.1z};B.1s.2d=G(){u 2w=D.1r+".";u k,v,o;R(k in D.5V){o=D.5V[k];if(H(o)=="3n"){o.U=G(){F D.1r};o.1r=2w+"5V."+k}}R(k in D){o=D[k];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+k}1e(e){}}}};B.1s.2d();if(H(B.J)!="L"){B.J.2Y(D,B.1s)}N{(G(k0,dF){if((H(1x)=="L"&&H(1q)=="L")||(H(B.3d)=="5L"&&B.3d)){u 1p=dF.2k[":1p"];R(u i=0;i<1p.K;i++){k0[1p[i]]=dF[1p[i]]}}})(D,B.1s)}if(H(1q)!="L"){1q.2X("B.1k");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1k 3F on B.J!"}if(H(B.1k)=="L"){B.1k={}}B.1k.1r="B.1k";B.1k.1Y="1.3.1";B.1k.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1k.1l=G(){F D.1K()};B.1k.2t=G(jZ){D.55=[];D.id=D.7n();D.2H=-1;D.54=0;D.53=[O,O];D.7m=jZ;D.7l=1m;D.7r=1m};B.1k.2t.1U={U:G(){u 7s;if(D.2H==-1){7s="uS"}N{if(D.2H===0){7s="uR"}N{7s="dE"}}F"2t("+D.id+", "+7s+")"},1l:B.J.24("U"),7n:B.J.4f(),jY:G(){u I=B.1k;if(D.2H==-1){if(D.7m){D.7m(D)}N{D.7l=1h}if(D.2H==-1){D.52(Y I.di(D))}}N{if((D.2H===0)&&(D.53[0]2C I.2t)){D.53[0].jY()}}},jQ:G(){D.54++},jX:G(){D.54--;if((D.54===0)&&(D.2H>=0)){D.9u()}},jR:G(X){D.9x(X);D.jX()},9x:G(X){D.2H=((X 2C 2x)?1:0);D.53[D.2H]=X;D.9u()},dD:G(){if(D.2H!=-1){if(!D.7l){14 Y B.1k.dj(D)}D.7l=1m;F}},3o:G(X){D.dD();if(X 2C B.1k.2t){14 Y 2x("2t jW 9v aB be 7r if jV jU jT jS of a 3o")}D.9x(X)},52:G(X){D.dD();u I=B.1k;if(X 2C I.2t){14 Y 2x("2t jW 9v aB be 7r if jV jU jT jS of a 3o")}if(!(X 2C 2x)){X=Y I.9p(X)}D.9x(X)},jP:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(fn,fn)},5Q:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(fn,O)},jA:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(O,fn)},9w:G(cb,eb){if(D.7r){14 Y 2x("uQ uP 9v 2E be re-uO")}D.55.1c([cb,eb]);if(D.2H>=0){D.9u()}F D},9u:G(){u dC=D.55;u 56=D.2H;u X=D.53[56];u I=D;u cb=O;1M(dC.K>0&&D.54===0){u 2n=dC.2P();u f=2n[56];if(f===O){2V}1f{X=f(X);56=((X 2C 2x)?1:0);if(X 2C B.1k.2t){cb=G(X){I.jR(X)};D.jQ()}}1e(3O){56=1;if(!(3O 2C 2x)){3O=Y B.1k.9p(3O)}X=3O}}D.2H=56;D.53[56]=X;if(cb&&D.54){X.jP(cb);X.7r=1h}}};B.J.2l(B.1k,{dk:G(){F dB("("+M[0].jN+")")},dp:G(uN){u d=Y B.1k.2t();d.3o.1w(d,M);F d},9q:G(uM){u d=Y B.1k.2t();d.52.1w(d,M);F d},do:G(){u I=M.2U;if(!I.7q){u dy=[G(){F Y 7q()},G(){F Y dA("jO.dz")},G(){F Y dA("uL.dz")},G(){F Y dA("jO.dz.4.0")},G(){14 Y B.1k.dh("uK uJ 2E uI 7q")}];R(u i=0;i<dy.K;i++){u 1A=dy[i];1f{I.7q=1A;F 1A()}1e(e){}}}F I.7q()},dx:G(){},jK:G(d){if(D.uH==4){1f{D.5T=O}1e(e){1f{D.5T=B.1k.dx}1e(e){}}u 5U=O;1f{5U=D.jm;if(!5U&&B.J.7e(D.jN)){5U=jM}}1e(e){}if(5U==hQ||5U==jM){d.3o(D)}N{u 3O=Y B.1k.dg(D,"uG uF");if(3O.2y){d.52(3O)}N{d.52(3O)}}}},jL:G(2s){1f{2s.5T=O}1e(e){1f{2s.5T=B.1k.dx}1e(e){}}2s.uE()},dl:G(2s,7p){if(H(7p)=="L"||7p===O){7p=""}u m=B.J;u I=B.1k;u d=Y I.2t(m.2z(I.jL,2s));1f{2s.5T=m.1O(I.jK,2s,d);2s.uD(7p)}1e(e){1f{2s.5T=O}1e(uC){}d.52(e)}F d},dn:G(5F){u I=B.1k;u 2s=I.do();if(M.K>1){u m=B.J;u qs=m.dw.1w(O,m.1R(O,M,1));if(qs){5F+="?"+qs}}2s.cp("uB",5F,1h);F I.dl(2s)},jv:G(5F){u I=B.1k;u d=I.dn.1w(I,M);d=d.5Q(I.dk);F d},dm:G(jJ,dv){u d=Y B.1k.2t();u m=B.J;if(H(dv)!="L"){d.5Q(G(){F dv})}u jI=uA(m.1O("3o",d),28.8B(jJ*c5));d.7m=G(){1f{uz(jI)}1e(e){}};F d},ju:G(jH,1A){u m=B.J;u jG=m.2z.1w(m,m.1R(O,M,1));F B.1k.dm(jH).5Q(G(X){F jG()})}});B.1k.5O=G(){D.5S=[];D.4e=1m;D.id=D.7n()};B.1k.5O.1U={bX:B.1k.5O,uy:G(){d=Y B.1k.2t();if(D.4e){D.5S.1c(d)}N{D.4e=1h;d.3o(D)}F d},jF:G(){if(!D.4e){14 3p("ux to jF an jE 5O")}D.4e=1m;if(D.5S.K>0){D.4e=1h;D.5S.2P().3o(D)}},7n:B.J.4f(),U:G(){u 9t;if(D.4e){9t="4e, "+D.5S.K+" 5S"}N{9t="jE"}F"5O("+D.id+", "+9t+")"},1l:B.J.24("U")};B.1k.7i=G(2G,du,jC,jB,jD){D.2G=2G;D.9r=Y 7o(D.2G.K);D.55=[];D.id=D.7n();D.2H=-1;D.54=0;D.53=[O,O];D.7m=jD;D.7l=1m;if(D.2G.K===0&&!du){D.3o(D.9r)}D.dr=0;D.jz=du;D.jy=jC;D.jx=jB;u 9s=0;B.J.2r(B.J.1O(G(d){d.5Q(B.J.1O(D.dt,D),9s,1h);d.jA(B.J.1O(D.dt,D),9s,1m);9s+=1},D),D.2G)};B.J.2l(B.1k.7i.1U,B.1k.2t.1U);B.J.2l(B.1k.7i.1U,{dt:G(ds,7k,5R){D.9r[ds]=[7k,5R];D.dr+=1;if(D.2H!==0){if(7k&&D.jz){D.3o([ds,5R])}N{if(!7k&&D.jy){D.52(5R)}N{if(D.dr==D.2G.K){D.3o(D.9r)}}}}if(!7k&&D.jx){5R=O}F 5R}});B.1k.jt=G(jw){u d=Y B.1k.7i(jw,1m,1h,1m);d.5Q(G(dq){u 7j=[];R(u i=0;i<dq.K;i++){7j.1c(dq[i][1])}F 7j});F d};B.1k.jr=G(1A){u I=B.1k;u 5P;1f{u r=1A.1w(O,B.J.1R([],M,1));if(r 2C I.2t){5P=r}N{if(r 2C 2x){5P=I.9q(r)}N{5P=I.dp(r)}}}1e(e){5P=I.9q(e)}F 5P};B.1k.1z=["dj","di","dh","9p","dg","2t","dp","9q","do","dn","jv","dm","ju","dl","5O","7i","jt","jr"];B.1k.1W=["dk"];B.1k.2d=G(){u m=B.J;u ne=m.2z(m.jq,D);ne("dj",G(jp){D.jo=jp});ne("di",G(jn){D.jo=jn});ne("dh",G(1t){D.43=1t});ne("9p",G(1t){D.43=1t});ne("dg",G(2s,1t){D.2s=2s;D.43=1t;1f{D.2y=2s.jm}1e(e){}});D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.1k.2d();B.J.2Y(D,B.1k);if(H(1q)!="L"){1q.2X("B.S");1q.2M("B.15")}if(H(1x)!="L"){1x.26("B.15",[])}1f{if(H(B.15)=="L"){14""}}1e(e){14"B.S 3F on B.15!"}if(H(B.S)=="L"){B.S={}}B.S.1r="B.S";B.S.1Y="1.3.1";B.S.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.S.1l=G(){F D.1K()};B.S.1z=["d5","cr","b9","95","94","j3","9k","cX","cw","iT","iV","4X","9j","iQ","hS","cs","ia","i9","i8","i7","i6","i5","i4","hV","i3","i2","i1","cu","hW","ct","i0","hZ","hY","hX","P","io","il","ik","ij","cm","ih","ii","ig","ie","ic","cv","8d","A","6m","ib","1E","$","4q","aH","cO","cN","iM","5G","iK","9d","9e","iH","iD","9c","iB","cG","97","hU","hT","iw","jh","jb","j6","j5","jk","jl"];B.S.1W=["9b"];B.S.5N=G(w,h){D.w=w;D.h=h};B.S.5N.1U.U=G(){u U=B.J.U;F"{w: "+U(D.w)+", h: "+U(D.h)+"}"};B.S.5t=G(x,y){D.x=x;D.y=y};B.S.5t.1U.U=G(){u U=B.J.U;F"{x: "+U(D.x)+", y: "+U(D.y)+"}"};B.S.5t.1U.1l=G(){F D.U()};B.J.2l(B.S,{jl:G(Q,o){Q=B.S.1E(Q);B.S.4X(Q,{"1T":{"9o":o,"-hL-9o":o,"-uw-9o":o,"47":" uv(9o="+(o*3k)+")"}})},jk:G(){u d=Y B.S.5N();u w=B.S.3X;u b=B.S.1Z.5s;if(w.jj){d.w=w.jj;d.h=w.uu}N{if(b.dd.9n){d.w=b.dd.9n;d.h=b.dd.ji}N{if(b&&b.9n){d.w=b.9n;d.h=b.ji}}}F d},jh:G(Q){u I=B.S;if(H(Q.w)=="2y"||H(Q.h)=="2y"){F Y I.5N(Q.w||0,Q.h||0)}Q=I.1E(Q);if(!Q){F L}if(I.4q(Q,"3u")!="98"){F Y I.5N(Q.jg||0,Q.ci||0)}u s=Q.1T;u je=s.dc;u jf=s.6P;s.dc="fR";s.6P="j8";s.3u="";u jd=Q.jg;u jc=Q.ci;s.3u="98";s.6P=jf;s.dc=je;F Y I.5N(jd,jc)},jb:G(Q,4Z){u I=B.S;Q=I.1E(Q);if(!Q){F L}u c=Y I.5t(0,0);if(Q.x&&Q.y){c.x+=Q.x||0;c.y+=Q.y||0;F c}N{if(Q.3t===O||I.4q(Q,"3u")=="98"){F L}}u 51=O;u 2j=O;u d=B.S.1Z;u de=d.7Z;u b=d.5s;if(Q.ja){51=Q.ja();c.x+=51.2I+(de.6y||b.6y)-(de.8q||b.8q);c.y+=51.3D+(de.4C||b.4C)-(de.8p||b.8p)}N{if(d.j9){51=d.j9(Q);c.x+=51.x;c.y+=51.y}N{if(Q.8g){c.x+=Q.db;c.y+=Q.da;2j=Q.8g;if(2j!=Q){1M(2j){c.x+=2j.db;c.y+=2j.da;2j=2j.8g}}u ua=ut.us.8G();if((H(7h)!="L"&&4M(7h.ur())<9)||(ua.2A("uq")!=-1&&I.4q(Q,"6P")=="j8")){c.x-=b.db;c.y-=b.da}}}}if(H(4Z)!="L"){4Z=M.2U(4Z);if(4Z){c.x-=(4Z.x||0);c.y-=(4Z.y||0)}}if(Q.3t){2j=Q.3t}N{2j=O}1M(2j&&2j.j7!="uo"&&2j.j7!="co"){c.x-=2j.6y;c.y-=2j.4C;if(2j.3t){2j=2j.3t}N{2j=O}}F c},j6:G(Q,d9,7g){Q=B.S.1E(Q);if(H(7g)=="L"){7g="px"}B.S.4X(Q,{"1T":{"5A":d9.w+7g,"3V":d9.h+7g}})},j5:G(Q,d8,7f){Q=B.S.1E(Q);if(H(7f)=="L"){7f="px"}B.S.4X(Q,{"1T":{"2I":d8.x+7f,"3D":d8.y+7f}})},cr:G(){F B.S.3X},b9:G(){F B.S.1Z},95:G(2m,1A){u I=B.S;u d6=I.1Z;u d7=I.un;u W;1f{I.3X=2m;I.1Z=2m.2v;W=1A()}1e(e){I.3X=d7;I.1Z=d6;14 e}I.3X=d7;I.1Z=d6;F W},d5:G(Q){u 7d=[];u 7c=[];u m=B.J;u I=B.S;if(H(Q)=="L"||Q===O){Q=I.1Z}N{Q=I.1E(Q)}m.d4(Q,G(Q){u 1b=Q.1b;if(m.7e(1b)){u 4Y=Q.cD;if(4Y=="cv"&&(Q.1J=="um"||Q.1J=="uk")&&!Q.ip){F O}if(4Y=="ct"){if(Q.j4>=0){u 9m=Q.1S[Q.j4];7d.1c(1b);7c.1c((9m.3m)?9m.3m:9m.7X);F O}7d.1c(1b);7c.1c("");F O}if(4Y=="cu"||4Y=="P"||4Y=="8d"||4Y=="6m"){F Q.5h}7d.1c(1b);7c.1c(Q.3m||"");F O}F Q.5h});F[7d,7c]},94:G(1N,1A){u I=B.S;u d3=I.1Z;u W;1f{I.1Z=1N;W=1A()}1e(e){I.1Z=d3;14 e}I.1Z=d3;F W},j3:G(1b,j2,3y,j1){B.S.9b.5M(1b,j2,3y,j1)},9k:G(1j,7a){u im=B.15;u I=B.S;u 1Q=im.1Q;u iY=im.7b;u 4c=im.4c;u iX=I.9b;u iZ=I.9k;u iW=B.J.4d;1M(1h){if(H(1j)=="L"||1j===O){F O}if(H(1j.3T)!="L"&&1j.3T>0){F 1j}if(H(1j)=="2y"||H(1j)=="5L"){1j=1j.1l()}if(H(1j)=="1n"){F I.1Z.4S(1j)}if(H(1j.j0)=="G"){1j=1j.j0(7a);2V}if(H(1j)=="G"){1j=1j(7a);2V}u 9l=O;1f{9l=1Q(1j)}1e(e){}if(9l){F 4c(iZ,9l,iY(7a))}1f{1j=iX.3C(1j,7a);2V}1e(e){if(e!=iW){14 e}}F I.1Z.4S(1j.1l())}F L},iV:G(1j,79,iU){u o={};o[79]=iU;1f{F B.S.4X(1j,o)}1e(e){}F O},iT:G(1j,79){u I=B.S;u d2=I.4U.99[79];1j=I.1E(1j);1f{if(d2){F 1j[d2]}F 1j.fm(79)}1e(e){}F O},4X:G(1j,5K){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j)}if(5K){u d0=B.J.8Z;if(I.4U.6X){R(u k in 5K){u v=5K[k];if(H(v)=="3n"&&H(Q[k])=="3n"){d0(Q[k],v)}N{if(k.2W(0,2)=="on"){if(H(v)=="1n"){v=Y cZ(v)}Q[k]=v}N{Q.4p(k,v)}}}}N{u iS=I.4U.99;R(k in 5K){v=5K[k];u d1=iS[k];if(k=="1T"&&H(v)=="1n"){Q.1T.3x=v}N{if(H(d1)=="1n"){Q[d1]=v}N{if(H(Q[k])=="3n"&&H(v)=="3n"){d0(Q[k],v)}N{if(k.2W(0,2)=="on"){if(H(v)=="1n"){v=Y cZ(v)}Q[k]=v}N{Q.4p(k,v)}}}}}}}F Q},9j:G(1j){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j)}u 78=[I.9k(B.J.1R(O,M,1),Q)];u iR=B.J.2o;1M(78.K){u n=78.2P();if(H(n)=="L"||n===O){}N{if(H(n.3T)=="2y"){Q.2c(n)}N{78=iR(n,78)}}}F Q},iQ:G(1j){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j);M[0]=Q}u cY;1M((cY=Q.6n)){Q.6S(cY)}if(M.K<2){F Q}N{F I.9j.1w(D,M)}},cX:G(1b,4b){u Q;u I=B.S;u m=B.J;if(H(4b)=="1n"||H(4b)=="2y"){u 3G=m.1R([1b,O],M,1);F M.2U.1w(D,3G)}if(H(1b)=="1n"){if(4b&&"1b"in 4b&&!I.4U.6X){1b=("<"+1b+" 1b=\\""+I.9c(4b.1b)+"\\">")}Q=I.1Z.2S(1b)}N{Q=1b}if(4b){I.4X(Q,4b)}if(M.K<=2){F Q}N{u 3G=m.1R([Q],M,2);F I.9j.1w(D,3G)}},cw:G(){u m=B.J;F m.2z.1w(D,m.1R([B.S.cX],M))},cs:G(5J,1d){u I=B.S;5J=I.1E(5J);u cW=5J.3t;if(1d){1d=I.1E(1d);cW.uj(1d,5J)}N{cW.6S(5J)}F 1d},1E:G(id){u I=B.S;if(M.K==1){F((H(id)=="1n")?I.1Z.hN(id):id)}N{F B.J.2r(I.1E,M)}},4q:G(iP,cV,cU){if(M.K==2){cU=cV}u I=B.S;u el=I.1E(iP);u 77=I.1Z;if(!el||el==77){F L}if(el.iO){F el.iO[cV]}if(H(77.5k)=="L"){F L}if(77.5k===O){F L}u 9i=77.5k.g4(el,O);if(H(9i)=="L"||9i===O){F L}F 9i.6q(cU)},aH:G(76,9g,4W){u I=B.S;if(H(76)=="L"||76===O){76="*"}if(H(4W)=="L"||4W===O){4W=I.1Z}4W=I.1E(4W);u 9h=(4W.fr(76)||I.1Z.1p);if(H(9g)=="L"||9g===O){F B.J.1R(O,9h)}u cR=[];R(u i=0;i<9h.K;i++){u cS=9h[i];u cT=cS.3M.2R(" ");R(u j=0;j<cT.K;j++){if(cT[j]==9g){cR.1c(cS);2K}}}F cR},iN:G(5I,9f){u W=G(){u cQ=M.2U.5H;R(u i=0;i<cQ.K;i++){if(cQ[i].1w(D,M)===1m){2K}}if(9f){1f{D[5I]=O}1e(e){}}};W.5H=[];F W},cO:G(cP,5I,1A,9f){u I=B.S;u 4V=cP[5I];u 75=4V;if(!(H(4V)=="G"&&H(4V.5H)=="3n"&&4V.5H!==O)){75=I.iN(5I,9f);if(H(4V)=="G"){75.5H.1c(4V)}cP[5I]=75}75.5H.1c(1A)},cN:G(1A){u I=B.S;I.cO(I.3X,"gh",1A,1h)},iM:G(74){u I=B.S;I.cN(G(){74=I.1E(74);if(74){74.ui()}})},5G:G(iL,cM){u I=B.S;u 1i=I.1E(iL);if(I.4U.6X){1i.4p("iq",cM)}N{1i.4p("3M",cM)}},iK:G(cL){u I=B.S;R(u i=1;i<M.K;i++){u 1i=I.1E(M[i]);if(!I.9d(1i,cL)){I.9e(1i,cL)}}},9d:G(iJ,73){u I=B.S;u 1i=I.1E(iJ);u 2F=1i.3M;if(2F.K===0){I.5G(1i,73);F 1h}if(2F==73){F 1m}u cK=1i.3M.2R(" ");R(u i=0;i<cK.K;i++){if(cK[i]==73){F 1m}}I.5G(1i,2F+" "+73);F 1h},9e:G(iI,cJ){u I=B.S;u 1i=I.1E(iI);u 2F=1i.3M;if(2F.K===0){F 1m}if(2F==cJ){I.5G(1i,"");F 1h}u 72=1i.3M.2R(" ");R(u i=0;i<72.K;i++){if(72[i]==cJ){72.4y(i,1);I.5G(1i,72.2b(" "));F 1h}}F 1m},iH:G(iG,iF,iE){u 1i=B.S.1E(iG);u X=B.S.9e(1i,iF);if(X){B.S.9d(1i,iE)}F X},iD:G(iC,uh){u 1i=B.S.1E(iC);u cI=1i.3M.2R(" ");R(u i=1;i<M.K;i++){u cH=1m;R(u j=0;j<cI.K;j++){if(cI[j]==M[i]){cH=1h;2K}}if(!cH){F 1m}}F 1h},9c:G(s){F s.23(/&/g,"&ug;").23(/"/g,"&uf;").23(/</g,"&lt;").23(/>/g,"&gt;")},iB:G(2q){F B.S.cG(2q).2b("")},cG:G(2q,1g){if(H(1g)=="L"||1g===O){1g=[]}u 70=[2q];u I=B.S;u cB=I.9c;u iA=I.4U;1M(70.K){2q=70.hP();if(H(2q)=="1n"){1g.1c(2q)}N{if(2q.3T==1){1g.1c("<"+2q.cD.8G());u 71=[];u cF=iA(2q);R(u i=0;i<cF.K;i++){u a=cF[i];71.1c([" ",a.1b,"=\\"",cB(a.3m),"\\""])}71.iz();R(i=0;i<71.K;i++){u cE=71[i];R(u j=0;j<cE.K;j++){1g.1c(cE[j])}}if(2q.ue()){1g.1c(">");70.1c("</"+2q.cD.8G()+">");u cC=2q.5h;R(i=cC.K-1;i>=0;i--){70.1c(cC[i])}}N{1g.1c("/>")}}N{if(2q.3T==3){1g.1c(cB(2q.iv))}}}}F 1g},97:G(ix,cA){u m=B.J;u iy=m.1R(O,M,1);B.15.9a(m.47(O,m.2r(B.S.1E,iy)),G(cA){cA.1T.3u=ix})},iw:G(1j,iu){u W=[];(G(1j){u cn=1j.5h;if(cn){R(u i=0;i<cn.K;i++){M.2U.cz(D,cn[i])}}u cy=1j.iv;if(H(cy)=="1n"){W.1c(cy)}})(B.S.1E(1j));if(iu){F W}N{F W.2b("")}},2d:G(2m){u m=B.J;D.1Z=2v;D.3X=2m;D.9b=Y m.4a();u 6Z=D.1Z.2S("cj");u 2T;if(6Z&&6Z.6Y&&6Z.6Y.K>0){u it=m.47;2T=G(1j){F it(2T.ir,1j.6Y)};2T.cx={};B.15.9a(6Z.6Y,G(a){2T.cx[a.1b]=a.3m});2T.ir=G(a){F(2T.cx[a.1b]!=a.3m)};2T.6X=1m;2T.99={"iq":"3M","ip":"ud","uc":"ub","R":"u9"}}N{2T=G(1j){F 1j.6Y};2T.6X=1h;2T.99={}}D.4U=2T;u 1C=D.cw;D.io=1C("ul");D.il=1C("ol");D.ik=1C("li");D.ij=1C("td");D.cm=1C("tr");D.ii=1C("u8");D.ih=1C("u7");D.ig=1C("u6");D.ie=1C("u5");D.ic=1C("th");D.cv=1C("ck");D.8d=1C("cj");D.A=1C("a");D.6m=1C("4u");D.ib=1C("u4");D.ia=1C("2e");D.i9=1C("tt");D.i8=1C("4O");D.i7=1C("h1");D.i6=1C("h2");D.i5=1C("h3");D.i4=1C("br");D.i3=1C("hr");D.i2=1C("u3");D.i1=1C("u2");D.cu=1C("u1");D.P=1C("p");D.ct=1C("u0");D.i0=1C("hJ");D.hZ=1C("tZ");D.hY=1C("tY");D.hX=1C("tX");D.hW=1C("tW");D.hV=1C("tV");D.hU=m.2z(D.97,"98");D.hT=m.2z(D.97,"8c");D.hS=D.cs;D.$=D.1E;D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)}});B.S.2d(((H(2O)=="L")?D:2O));if(!B.3d){95=B.S.95;94=B.S.94}B.J.2Y(D,B.S);if(H(1q)!="L"){1q.2X("B.1I");1q.2M("B.1H");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.1H",[]);1x.26("B.J",[])}1f{if(H(B.J)=="L"||H(B.1H)=="L"){14""}}1e(e){14"B.1I 3F on B.J 3W B.1H!"}if(H(B.1I)=="L"){B.1I={}}B.1I.1r="B.1I";B.1I.1Y="1.3.1";B.1I.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1I.1l=G(){F D.1K()};B.1I.bY=G(6W){u m=B.1I;6W=!(!6W);if(m.3l&&m.3l.8Q!=6W){m.3l.hA();m.3l=O}if(!m.3l||m.3l.8P){m.3l=Y m.1I(6W,B.1H.2L)}F m.3l};B.1I.1I=G(4R,6V){if(H(6V)=="L"||6V===O){6V=B.1H.2L}D.2L=6V;u tU=B.J.2l;u c3=B.J.8Z;u 1O=B.J.1O;u hM=B.J.4L;u 2m=2O;u 6U="tT";if(H(B.S)!="L"){2m=B.S.cr()}if(!4R){u 5F=2m.tS.tR.2R("?")[0].23(/[:\\/.><&]/g,"hR");u 1b=6U+"hR"+5F;u 5D=2m.cp("",1b,"tQ,tP,3V=hQ");if(!5D){cq("tO tN to cp tM 2O tL to hP-up tK.");F L}5D.2v.fl("<!tJ co tI \\"-//tH//tG co 4.0 tF//tE\\" "+"\\"fq://fp.tD.fo/cm/tC/tB.tA\\">"+"<hO><5E><8Y>[B.1I]</8Y></5E>"+"<5s></5s></hO>");5D.2v.hG();5D.2v.8Y+=" "+2m.2v.8Y;2m=5D}u 1N=2m.2v;D.1N=1N;u 21=1N.hN(6U);u c4=!!21;if(21&&H(21.5B)!="L"){21.5B.2L=D.2L;21.5B.6K();F 21.5B}if(c4){u cl;1M((cl=21.6n)){21.6S(cl)}}N{21=1N.2S("4u");21.id=6U}21.5B=D;u 8T=1N.2S("ck");u 8S=1N.2S("ck");u 6O=1N.2S("2e");u 6N=1N.2S("2e");u 6M=1N.2S("2e");u 6L=1N.2S("2e");u 3L=1N.2S("4u");u 42=1N.2S("4u");u 8U=6U+"tz";D.8N=hM(D.8N);u 4T=[];u 6R=O;u cf=G(1t){u 6T=1t.3N;if(H(6T)=="2y"){6T=B.1H.5C[6T]}F 6T};u cd=G(1t){F 1t.3z.2b(" ")};u ca=1O(G(1t){u 8W=cf(1t);u 7X=cd(1t);u c=D.8N[8W];u p=1N.2S("cj");p.3M="B-49 B-5C-"+8W;p.1T.3x="ty: 2N; 4F-8X: -hL-4O-3y; 4F-8X: -o-4O-3y; 4F-8X: 4O-3y; 4F-8X: 4O-tx; hK-3y: 2K-hK; 3y-hJ: tw; 3U: "+c;p.2c(1N.4S(8W+": "+7X));42.2c(p);42.2c(1N.2S("br"));if(3L.ci>3L.hI){3L.4C=0}N{3L.4C=3L.hI}},D);u hD=G(1t){4T[4T.K]=1t;ca(1t)};u hF=G(){u cg,ce;1f{cg=Y 8V(8T.3m);ce=Y 8V(8S.3m)}1e(e){ch("2x in 47 tv: "+e.43);F O}F G(1t){F(cg.hH(cf(1t))&&ce.hH(cd(1t)))}};u cc=G(){1M(42.6n){42.6S(42.6n)}};u hB=G(){4T=[];cc()};u bZ=1O(G(){if(D.8P){F}D.8P=1h;if(B.1I.3l==D){B.1I.3l=O}D.2L.c9(8U);21.5B=O;if(4R){21.3t.6S(21)}N{D.2m.hG()}},D);u c7=G(){cc();R(u i=0;i<4T.K;i++){u 1t=4T[i];if(6R===O||6R(1t)){ca(1t)}}};D.6K=G(){6R=hF();c7();D.2L.c9(8U);D.2L.hE(8U,6R,hD)};u c0=1O(G(){4T=D.2L.c8();c7()},D);u c2=1O(G(6Q){6Q=6Q||2O.6D;2h=6Q.6w||6Q.8t;if(2h==13){D.6K()}},D);u 31="3u: 8c; z-c6: c5; 2I: 2N; 6f: 2N; 6P: tu; 5A: 3k%; he-3U: 4F; c1: "+D.8O;if(4R){31+="; 3V: ts; 3E-3D: fO 8a 8y"}N{31+="; 3V: 3k%;"}21.1T.3x=31;if(!c4){1N.5s.2c(21)}31={"3x":"5A: 33%; 3u: 8Q; c1: "+D.8O};c3(8T,{"3m":"8L|8M|8K|8J|8I","hC":c2,"1T":31});21.2c(8T);c3(8S,{"3m":".*","hC":c2,"1T":31});21.2c(8S);31="5A: 8%; 3u:8Q; c1: "+D.8O;6O.2c(1N.4S("tq"));6O.8R=1O("6K",D);6O.1T.3x=31;21.2c(6O);6N.2c(1N.4S("tp"));6N.8R=c0;6N.1T.3x=31;21.2c(6N);6M.2c(1N.4S("tn"));6M.8R=hB;6M.1T.3x=31;21.2c(6M);6L.2c(1N.4S("tm"));6L.8R=bZ;6L.1T.3x=31;21.2c(6L);3L.1T.3x="fS: tk; 5A: 3k%";42.1T.3x="5A: 3k%; 3V: "+(4R?"tj":"3k%");3L.2c(42);21.2c(3L);D.6K();c0();if(4R){D.2m=L}N{D.2m=2m}D.8Q=4R;D.hA=bZ;D.8P=1m;F D};B.1I.1I.1U={"8O":"ti tg,tf-te","8N":{"8M":"1v","8L":"gU","8K":"1F","8J":"8y","8I":"bx"}};B.1I.1W=["1I"];B.1I.1z=["bY"];B.1I.2d=G(){D.2k={":3e":D.1z,":1p":B.J.2o(D.1z,D.1W)};B.J.3f(D);B.1I.3l=O};B.1I.2d();B.J.2Y(D,B.1I);if(H(1q)!="L"){1q.2X("B.V");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.V 3F on B.J"}if(H(B.V)=="L"){B.V={}}B.V.1r="B.V";B.V.1Y="1.3.1";B.V.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.V.1l=G(){F D.1K()};B.V.V=G(1v,hz,1F,6J){if(H(6J)=="L"||6J===O){6J=1}D.1B={r:1v,g:hz,b:1F,a:6J}};B.V.V.1U={bX:B.V.V,tc:G(hy){u 1B=D.1B;u m=B.V;F m.V.3Y(1B.r,1B.g,1B.b,hy)},tb:G(1o){u 1G=D.41();1G.h=1o;u m=B.V;F m.V.4H(1G)},ta:G(hx){u 1G=D.41();1G.s=hx;u m=B.V;F m.V.4H(1G)},t9:G(hw){u 1G=D.41();1G.l=hw;u m=B.V;F m.V.4H(1G)},t8:G(hv){u 1G=D.41();1G.l=28.29(1G.l-hv,0);u m=B.V;F m.V.4H(1G)},t7:G(hu){u 1G=D.41();1G.l=28.2a(1G.l+hu,1);u m=B.V;F m.V.4H(1G)},fJ:G(ht,5z){if(H(5z)=="L"||5z===O){5z=0.5}u sf=1-5z;u s=D.1B;u d=ht.1B;u df=5z;F B.V.V.3Y((s.r*sf)+(d.r*df),(s.g*sf)+(d.g*df),(s.b*sf)+(d.b*df),(s.a*sf)+(d.a*df))},h4:G(hs){u a=D.6r();u b=hs.6r();F B.J.2f([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a])},hq:G(){F D.41().b>0.5},t6:G(){F(!D.hq())},t5:G(){u c=D.41();u 2Z=B.V.6F;u W=D.ho;if(!W){u 5y=(2Z(c.h,bF).6I(0)+","+2Z(c.s,3k).hp(4)+"%"+","+2Z(c.l,3k).hp(4)+"%");u a=c.a;if(a>=1){a=1;W="1G("+5y+")"}N{if(a<=0){a=0}W="t4("+5y+","+a+")"}D.ho=W}F W},hl:G(){u c=D.1B;u 2Z=B.V.6F;u W=D.hn;if(!W){u 5y=(2Z(c.r,3h).6I(0)+","+2Z(c.g,3h).6I(0)+","+2Z(c.b,3h).6I(0));if(c.a!=1){W="t3("+5y+","+c.a+")"}N{W="1B("+5y+")"}D.hn=W}F W},6r:G(){F B.J.4L(D.1B)},t2:G(){u m=B.V;u c=D.1B;u 2Z=B.V.6F;u W=D.hm;if(!W){W=("#"+m.6E(2Z(c.r,3h))+m.6E(2Z(c.g,3h))+m.6E(2Z(c.b,3h)));D.hm=W}F W},t1:G(){u 2Q=D.2Q;u c=D.1B;if(H(2Q)=="L"||2Q===O){2Q=B.V.bA(D.1B);D.2Q=2Q}F B.J.4L(2Q)},41:G(){u 1G=D.1G;u c=D.1B;if(H(1G)=="L"||1G===O){1G=B.V.bC(D.1B);D.1G=1G}F B.J.4L(1G)},1l:G(){F D.hl()},U:G(){u c=D.1B;u hk=[c.r,c.g,c.b,c.a];F D.bX.1r+"("+hk.2b(", ")+")"}};B.J.2l(B.V.V,{3Y:G(1v,bW,1F,8H){u hj=B.V.V;if(M.K==1){u 1B=1v;1v=1B.r;bW=1B.g;1F=1B.b;if(H(1B.a)=="L"){8H=L}N{8H=1B.a}}F Y hj(1v,bW,1F,8H)},4H:G(1o,t0,sZ,sY){u m=B.V;F m.V.3Y(m.bB.1w(m,M))},sX:G(1o,sW,sV,sU){u m=B.V;F m.V.3Y(m.bz.1w(m,M))},hi:G(1b){u 8F=B.V.V;if(1b.3Z(0)=="\\""){1b=1b.3H(1,1b.K-2)}u bV=8F.by[1b.8G()];if(H(bV)=="1n"){F 8F.bT(bV)}N{if(1b=="aP"){F 8F.sT()}}F O},8f:G(4Q){u I=B.V.V;u bU=4Q.3H(0,3);if(bU=="1B"){F I.h9(4Q)}N{if(bU=="1G"){F I.h8(4Q)}N{if(4Q.3Z(0)=="#"){F I.bT(4Q)}}}F I.hi(4Q)},bT:G(4P){if(4P.3Z(0)=="#"){4P=4P.2W(1)}u 8E=[];u i,5x;if(4P.K==3){R(i=0;i<3;i++){5x=4P.3H(i,1);8E.1c(3w(5x+5x,16)/3h)}}N{R(i=0;i<6;i+=2){5x=4P.3H(i,2);8E.1c(3w(5x,16)/3h)}}u bS=B.V.V;F bS.3Y.1w(bS,8E)},bG:G(4O,hf,hg,4N){if(4N.2A(4O)===0){4N=4N.2W(4N.2A("(",3)+1,4N.K-1)}u bR=4N.2R(/\\s*,\\s*/);u bP=[];R(u i=0;i<bR.K;i++){u c=bR[i];u 2i;u bQ=c.2W(c.K-3);if(c.3Z(c.K-1)=="%"){2i=0.bE*4M(c.2W(0,c.K-1))}N{if(bQ=="sS"){2i=4M(c)/bF}N{if(bQ=="sR"){2i=4M(c)/(28.sQ*2)}N{2i=hg[i]*4M(c)}}}bP.1c(2i)}F D[hf].1w(D,bP)},bN:G(Q,sP,sO){u d=B.S;u 2F=B.V.V;R(Q=d.1E(Q);Q;Q=Q.3t){u bO=d.4q.1w(d,M);if(!bO){2V}u 8D=2F.8f(bO);if(!8D){2K}if(8D.6r().a>0){F 8D}}F O},ba:G(Q){u 2F=B.V.V;F 2F.bN(Q,"aZ","he-3U")||2F.sN()},sM:G(Q){u 2F=B.V.V;F 2F.bN(Q,"3U","3U")||2F.sL()},sK:G(){F B.J.4L(B.V.V.by)}});B.J.2l(B.V,{6F:G(v,8C){v*=8C;if(v<0){F 0}N{if(v>8C){F 8C}N{F v}}},hc:G(n1,n2,1o){if(1o>6){1o-=6}N{if(1o<0){1o+=6}}u 2i;if(1o<1){2i=n1+(n2-n1)*1o}N{if(1o<3){2i=n2}N{if(1o<4){2i=n1+(n2-n1)*(4-1o)}N{2i=n1}}}F 2i},bz:G(1o,5w,3i,bM){if(M.K==1){u 2Q=1o;1o=2Q.h;5w=2Q.s;3i=2Q.v;bM=2Q.a}u 1v;u 3K;u 1F;if(5w===0){1v=0;3K=0;1F=0}N{u i=28.8B(1o*6);u f=(1o*6)-i;u p=3i*(1-5w);u q=3i*(1-(5w*f));u t=3i*(1-(5w*(1-f)));hd(i){3j 1:1v=q;3K=3i;1F=p;2K;3j 2:1v=p;3K=3i;1F=t;2K;3j 3:1v=p;3K=q;1F=3i;2K;3j 4:1v=t;3K=p;1F=3i;2K;3j 5:1v=3i;3K=p;1F=q;2K;3j 6:3j 0:1v=3i;3K=t;1F=p;2K}}F{r:1v,g:3K,b:1F,a:bM}},bB:G(1o,5v,3v,bL){if(M.K==1){u 1G=1o;1o=1G.h;5v=1G.s;3v=1G.l;bL=1G.a}u 1v;u 8A;u 1F;if(5v===0){1v=3v;8A=3v;1F=3v}N{u m2;if(3v<=0.5){m2=3v*(1+5v)}N{m2=3v+5v-(3v*5v)}u m1=(2*3v)-m2;u f=B.V.hc;u h6=1o*6;1v=f(m1,m2,h6+2);8A=f(m1,m2,h6);1F=f(m1,m2,h6-2)}F{r:1v,g:8A,b:1F,a:bL}},bA:G(1v,4K,1F,bK){if(M.K==1){u 1B=1v;1v=1B.r;4K=1B.g;1F=1B.b;bK=1B.a}u 29=28.29(28.29(1v,4K),1F);u 2a=28.2a(28.2a(1v,4K),1F);u 1o;u 8z;u hb=29;if(2a==29){1o=0;8z=0}N{u 6H=(29-2a);8z=6H/29;if(1v==29){1o=(4K-1F)/6H}N{if(4K==29){1o=2+((1F-1v)/6H)}N{1o=4+((1v-4K)/6H)}}1o/=6;if(1o<0){1o+=1}if(1o>1){1o-=1}}F{h:1o,s:8z,v:hb,a:bK}},bC:G(1v,4J,1F,bI){if(M.K==1){u 1B=1v;1v=1B.r;4J=1B.g;1F=1B.b;bI=1B.a}u 29=28.29(1v,28.29(4J,1F));u 2a=28.2a(1v,28.2a(4J,1F));u 1o;u 6G;u bJ=(29+2a)/2;u 4I=29-2a;if(4I===0){1o=0;6G=0}N{if(bJ<=0.5){6G=4I/(29+2a)}N{6G=4I/(2-29-2a)}if(1v==29){1o=(4J-1F)/4I}N{if(4J==29){1o=2+((1F-1v)/4I)}N{1o=4+((1v-4J)/4I)}}1o/=6;if(1o<0){1o+=1}if(1o>1){1o-=1}}F{h:1o,s:6G,l:bJ,a:bI}},6E:G(1P){1P=28.ha(1P);u bH=1P.1l(16);if(1P<16){F"0"+bH}F bH},2d:G(){u m=B.J;D.V.h9=m.1O(D.V.bG,D.V,"1B","3Y",[1/3h,1/3h,1/3h,1]);D.V.h8=m.1O(D.V.bG,D.V,"1G","4H",[1/bF,0.bE,0.bE,1]);u 4G=1/3;u bD={8y:[0,0,0],1F:[0,0,1],gY:[0.6,0.4,0.2],gX:[0,1,1],sJ:[4G,4G,4G],gR:[0.5,0.5,0.5],bx:[0,1,0],sI:[2*4G,2*4G,2*4G],gN:[1,0,1],gL:[1,0.5,0],gK:[0.5,0,0.5],1v:[1,0,0],aP:[0,0,0,0],4F:[1,1,1],gI:[1,1,0]};u h7=G(1b,r,g,b,a){u W=D.3Y(r,g,b,a);D[1b]=G(){F W};F W};R(u k in bD){u 1b=k+"V";u h5=m.2o([h7,D.V,1b],bD[k]);D.V[1b]=m.1O.1w(O,h5)}u h0=G(){R(u i=0;i<M.K;i++){if(!(M[i]2C V)){F 1m}}F 1h};u gZ=G(a,b){F a.h4(b)};m.3f(D);m.5u(D.V.1r,h0,gZ);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)}}});B.V.1z=["V"];B.V.1W=["6F","bC","bB","bA","bz","6E"];B.V.2d();B.J.2Y(D,B.V);B.V.V.by={sH:"#sG",sF:"#sE",sD:"#gW",sC:"#sB",sA:"#sz",sy:"#sx",sw:"#sv",8y:"#su",st:"#sr",1F:"#sq",sp:"#so",gY:"#sn",sm:"#sl",sk:"#sj",si:"#sh",sg:"#se",sd:"#sc",sb:"#sa",s9:"#s8",s7:"#s6",gX:"#gW",s5:"#s4",s3:"#s2",s1:"#s0",rZ:"#gV",rY:"#rX",rW:"#gV",rV:"#rU",rT:"#rS",rR:"#rQ",rP:"#rO",rN:"#rM",gU:"#rL",rK:"#rJ",rI:"#rH",rG:"#rF",rE:"#gT",rD:"#gT",rC:"#rB",rA:"#rz",ry:"#rx",rw:"#rv",ru:"#gS",rt:"#gS",rs:"#rr",rq:"#rp",ro:"#rn",rm:"#rl",rk:"#gM",rj:"#ri",rh:"#rg",rf:"#rd",rc:"#rb",gR:"#gQ",bx:"#ra",r9:"#r8",r7:"#gQ",r6:"#r5",r4:"#r3",r2:"#r1",r0:"#qZ",qY:"#qX",qW:"#qV",qU:"#qT",qS:"#qR",qQ:"#qP",qO:"#qN",qM:"#qL",qK:"#qJ",qI:"#qH",qG:"#qF",qE:"#gP",qD:"#qC",qB:"#gP",qA:"#qz",qy:"#qx",qw:"#qv",qu:"#qt",qr:"#gO",qq:"#gO",qp:"#qo",qn:"#qm",ql:"#qk",qj:"#qi",qh:"#qg",gN:"#gM",qf:"#qe",qd:"#qc",qb:"#qa",q9:"#q8",q7:"#q6",q5:"#q4",q3:"#q2",q1:"#q0",pZ:"#pY",pX:"#pW",pV:"#pU",pT:"#pS",pR:"#pQ",pP:"#pO",pN:"#pM",pL:"#pK",pJ:"#pI",pH:"#pG",pF:"#pE",gL:"#pD",pC:"#pB",pA:"#pz",py:"#pw",pv:"#pu",pt:"#ps",pr:"#pq",pp:"#po",pn:"#pm",pl:"#pj",pi:"#ph",pg:"#pf",pe:"#pd",gK:"#pc",1v:"#pb",pa:"#p9",p8:"#p7",p6:"#p5",p4:"#p3",p2:"#p1",p0:"#oZ",oY:"#oX",oW:"#oV",oU:"#oT",oS:"#oR",oQ:"#oP",oO:"#gJ",oN:"#gJ",oM:"#oL",oK:"#oJ",oI:"#oH",oG:"#oF",oE:"#oD",oC:"#oB",oA:"#oz",oy:"#ox",ow:"#ov",ou:"#ot",4F:"#os",oq:"#op",gI:"#oo",om:"#ok"};if(H(1q)!="L"){1q.2X("B.1u");1q.2M("B.J");1q.2M("B.S")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.S",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1u 3F on B.J!"}1f{if(H(B.S)=="L"){14""}}1e(e){14"B.1u 3F on B.S!"}if(H(B.1u)=="L"){B.1u={}}B.1u.1r="B.1u";B.1u.1Y="1.3.1";B.1u.4x=[];B.1u.bq=G(1d,e){D.1L=e||2O.6D;D.gH=1d};B.J.2l(B.1u.bq.1U,{1K:G(){u U=B.J.U;u 1y="{6D(): "+U(D.6D())+", 1d(): "+U(D.1d())+", 1J(): "+U(D.1J())+", 8x(): "+U(D.8x())+", 4E(): "+"{8w: "+U(D.4E().8w)+", 8v: "+U(D.4E().8v)+", 8u: "+U(D.4E().8u)+", 2P: "+U(D.4E().2P)+", bw: "+U(D.4E().bw)+"}";if(D.1J()&&D.1J().2A("2h")===0){1y+=", 2h(): {3J: "+U(D.2h().3J)+", 1n: "+U(D.2h().1n)+"}"}if(D.1J()&&(D.1J().2A("3I")===0||D.1J().2A("gE")!=-1||D.1J()=="gD")){1y+=", 3I(): {4D: "+U(D.3I().4D)+", 6A: "+U(D.3I().6A);if(D.1J()!="gC"){1y+=", 2e: {2I: "+U(D.3I().2e.2I)+", 6v: "+U(D.3I().2e.6v)+", 3g: "+U(D.3I().2e.3g)+"}}"}N{1y+="}"}}if(D.1J()=="gG"||D.1J()=="gF"){1y+=", 6C(): "+U(D.6C())}1y+="}";F 1y},1l:G(){F D.1K()},1d:G(){F D.gH},6D:G(){F D.1L},1J:G(){F D.1L.1J||L},8x:G(){F D.1L.8x||D.1L.oj},6C:G(){if(D.1J()=="gG"){F(D.1L.6C||D.1L.aW)}N{if(D.1J()=="gF"){F(D.1L.6C||D.1L.oi)}}F L},4E:G(){u m={};m.8w=D.1L.oh;m.8v=D.1L.og;m.8u=D.1L.oe||1m;m.2P=D.1L.od;m.bw=m.8w||m.8v||m.2P||m.8u;F m},2h:G(){u k={};if(D.1J()&&D.1J().2A("2h")===0){if(D.1J()=="oc"||D.1J()=="ob"){k.3J=D.1L.8t;k.1n=(B.1u.5r[k.3J]||"oa");F k}N{if(D.1J()=="o9"){k.3J=0;k.1n="";if(H(D.1L.6B)!="L"&&D.1L.6B!==0&&!B.1u.bv[D.1L.6B]){k.3J=D.1L.6B;k.1n=bu.bt(k.3J)}N{if(D.1L.8t&&H(D.1L.6B)=="L"){k.3J=D.1L.8t;k.1n=bu.bt(k.3J)}}F k}}}F L},3I:G(){u m={};u e=D.1L;if(D.1J()&&(D.1J().2A("3I")===0||D.1J().2A("gE")!=-1||D.1J()=="gD")){m.6A=Y B.S.5t(0,0);if(e.6z||e.6x){m.6A.x=(!e.6z||e.6z<0)?0:e.6z;m.6A.y=(!e.6x||e.6x<0)?0:e.6x}m.4D=Y B.S.5t(0,0);if(e.8s||e.8r){m.4D.x=(!e.8s||e.8s<0)?0:e.8s;m.4D.y=(!e.8r||e.8r<0)?0:e.8r}N{u de=B.S.1Z.7Z;u b=B.S.1Z.5s;m.4D.x=e.6z+(de.6y||b.6y)-(de.8q||b.8q);m.4D.y=e.6x+(de.4C||b.4C)-(de.8p||b.8p)}if(D.1J()!="gC"){m.2e={};m.2e.2I=1m;m.2e.3g=1m;m.2e.6v=1m;if(e.6w){m.2e.2I=(e.6w==1);m.2e.6v=(e.6w==2);m.2e.3g=(e.6w==3)}N{m.2e.2I=!!(e.2e&1);m.2e.3g=!!(e.2e&2);m.2e.6v=!!(e.2e&4)}}F m}F L},2J:G(){D.8o();D.8n()},8o:G(){if(D.1L.8o){D.1L.8o()}N{D.1L.o8=1h}},8n:G(){if(D.1L.8n){D.1L.8n()}N{D.1L.o7=1m}}});B.1u.bv={3:"gz",o6:"gA",o5:"gy",o4:"gx",o3:"gw",o2:"gv",o1:"gu",o0:"gs",nZ:"gr",nY:"gq",nX:"gp",nW:"go"};R(i=gB;i<=nV;i++){B.1u.bv[i]="gk"+(i-gB+1)}B.1u.5r={8:"nU",9:"nT",12:"gA",13:"gz",16:"nS",17:"nR",18:"nQ",19:"nP",20:"nO",27:"nN",32:"nM",33:"gy",34:"gx",35:"gw",36:"gv",37:"gu",38:"gs",39:"gr",40:"gq",44:"nL",45:"gp",46:"go",59:"gn",91:"nK",92:"nJ",93:"nI",nH:"nG",nF:"nE",nD:"nC-gm",nB:"nA",nz:"ny",nx:"nw",nv:"nu",nt:"gn",ns:"nr",nq:"np",nn:"nm-gm",nl:"nk",nj:"ni",nh:"ng",nf:"nd",nc:"nb",na:"n9",n8:"n7"};R(u i=48;i<=57;i++){B.1u.5r[i]="gl"+(i-48)}R(i=65;i<=90;i++){B.1u.5r[i]="gl"+bu.bt(i)}R(i=96;i<=n6;i++){B.1u.5r[i]="n5"+(i-96)}R(i=gj;i<=n4;i++){B.1u.5r[i]="gk"+(i-gj+1)}B.J.2l(B.1u,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},g7:G(){u I=B.1u;u bs=I.4x;R(u i=0;i<bs.K;i++){I.6t(bs[i])}gi I.4x;1f{2O.gh=L}1e(e){}1f{2O.g8=L}1e(e){}},gb:G(1d,1A,1i,gg){u E=B.1u.bq;if(!gg){F B.J.1O(1A,1i)}1i=1i||1d;if(H(1A)=="1n"){F G(gf){1i[1A].1w(1i,[Y E(1d,gf)])}}N{F G(gd){1A.1w(1i,[Y E(1d,gd)])}}},6s:G(1d,2D,5q,4B){1d=B.S.1E(1d);u I=B.1u;if(H(2D)!="1n"){14 Y 2x("\'2D\' 5p be a 1n")}u 1i=O;u 1A=O;if(H(4B)!="L"){1i=5q;1A=4B;if(H(4B)=="1n"){if(H(5q[4B])!="G"){14 Y 2x("\'bp\' 5p be a G on \'gc\'")}}N{if(H(4B)!="G"){14 Y 2x("\'bp\' 5p be a G or 1n")}}}N{if(H(5q)!="G"){14 Y 2x("\'gc\' 5p be a G if \'bp\' is 2E n3")}N{1A=5q}}if(H(1i)=="L"||1i===O){1i=1d}u bm=!!(1d.bo||1d.bn);u 8m=I.gb(1d,1A,1i,bm);if(1d.bo){1d.bo(2D.3H(2),8m,1m)}N{if(1d.bn){1d.bn(2D,8m)}}u bk=[1d,2D,8m,bm,5q,4B];I.4x.1c(bk);F bk},6t:G(6u){if(!6u[3]){F}u 1d=6u[0];u 2D=6u[1];u bj=6u[2];if(1d.ga){1d.ga(2D.3H(2),bj,1m)}N{if(1d.g9){1d.g9(2D,bj)}N{14 Y 2x("\'1d\' 5p be a S n0")}}},8j:G(bh){u I=B.1u;u 5o=I.4x;u m=B.J;if(M.K>1){u 1d=B.S.1E(M[0]);u 2D=M[1];u 1i=M[2];u 1A=M[3];R(u i=5o.K-1;i>=0;i--){u o=5o[i];if(o[0]===1d&&o[1]===2D&&o[4]===1i&&o[5]===1A){I.6t(o);5o.4y(i,1);F 1h}}}N{u 5n=m.bi(5o,bh);if(5n>=0){I.6t(bh);5o.4y(5n,1);F 1h}}F 1m},8i:G(1d,2D){1d=B.S.1E(1d);u m=B.J;u 8l=m.bg(m.1R(O,M,1));u I=B.1u;u bd=I.6t;u 4z=I.4x;if(8l.K===0){R(u i=4z.K-1;i>=0;i--){u 4A=4z[i];if(4A[0]===1d){bd(4A);4z.4y(i,1)}}}N{u bf={};R(u i=0;i<8l.K;i++){bf[8l[i]]=1h}R(u i=4z.K-1;i>=0;i--){u 4A=4z[i];if(4A[0]===1d&&4A[1]in bf){bd(4A);4z.4y(i,1)}}}},8h:G(1d,2D){u bc=B.1u.4x;1d=B.S.1E(1d);u 3G=B.J.1R(O,M,2);u 5m=[];R(u i=0;i<bc.K;i++){u 8k=bc[i];if(8k[0]===1d&&8k[1]===2D){1f{8k[2].1w(1d,3G)}1e(e){5m.1c(e)}}}if(5m.K==1){14 5m[0]}N{if(5m.K>1){u e=Y 2x("mZ bb mY in mX \'2D\', mW bb mV");e.bb=5m;14 e}}}});B.1u.1W=[];B.1u.1z=["6s","8j","8h","8i"];B.1u.2d=G(2m){u m=B.J;D.1Z=2v;D.3X=2m;1f{D.6s(2O,"g8",D.g7)}1e(e){}D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.1u.2d(D);if(!B.3d){6s=B.1u.6s;8j=B.1u.8j;8i=B.1u.8i;8h=B.1u.8h}B.J.2Y(D,B.1u);if(H(1q)!="L"){1q.2X("B.1X");1q.2M("B.J");1q.2M("B.S");1q.2M("B.V")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.S",[]);1x.26("B.V",[])}1f{if(H(B.J)=="L"||H(B.S)=="L"||H(B.V)=="L"){14""}}1e(e){14"B.1X 3F on B.J, B.S 3W B.V!"}if(H(B.1X)=="L"){B.1X={}}B.1X.1r="B.1X";B.1X.1Y="1.3.1";B.1X.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1X.1l=G(){F D.1K()};B.1X.aI=G(e,g6){e=B.S.1E(e);D.fN(g6);if(D.1S.fL){e=D.g5(e)}u 4w=D.1S.3U;u C=B.V.V;if(D.1S.3U=="aW"){4w=C.ba(e)}N{if(!(4w 2C C)){4w=C.8f(4w)}}D.82=(4w.6r().a<=0);u 5l=D.1S.aV;if(D.1S.aV=="fM"){5l=C.ba(e.8g)}N{if(!(5l 2C C)){5l=C.8f(5l)}}D.g3(e,4w,5l)};B.1X.aI.1U={g5:G(e){u mU=e.3t;u 1N=B.S.b9();if(H(1N.5k)=="L"||1N.5k===O){F e}u 4v=1N.5k.g4(e,O);if(H(4v)=="L"||4v===O){F e}u b8=B.S.6m({"1T":{3u:"8c",mT:4v.6q("6p-3D"),85:4v.6q("6p-3g"),mS:4v.6q("6p-6f"),86:4v.6q("6p-2I"),6p:"2N"}});b8.6o=e.6o;e.6o="";e.2c(b8);F e},g3:G(e,b7,8e){if(D.1S.3E){D.g2(e,8e)}if(D.fy()){D.fX(e,b7,8e)}if(D.fx()){D.fV(e,b7,8e)}},g2:G(el,g1){u b6="6l 8a "+D.aQ(g1);u g0="3E-2I: "+b6;u fZ="3E-3g: "+b6;u fY="1T=\'"+g0+";"+fZ+"\'";el.6o="<4u "+fY+">"+el.6o+"</4u>"},fX:G(el,fW,b5){u b4=D.b1(b5);R(u i=0;i<D.1S.89;i++){b4.2c(D.b0(fW,b5,i,"3D"))}el.1T.mR=0;el.mQ(b4,el.6n)},fV:G(el,fU,b3){u b2=D.b1(b3);R(u i=(D.1S.89-1);i>=0;i--){b2.2c(D.b0(fU,b3,i,"6f"))}el.1T.mP=0;el.2c(b2)},b1:G(fT){u 2q=B.S;F 2q.6m({1T:{aZ:fT.1l()}})},b0:G(aY,fQ,n,aX){u 6k=B.S.8d();u 2p=6k.1T;2p.aZ=aY.1l();2p.3u="8c";2p.3V="6l";2p.fS="fR";2p.mO="6l";u 8b=D.aQ(aY,fQ);if(D.1S.3E&&n===0){2p.mN="8a";2p.mM="6l";2p.84="2N";2p.83="2N";2p.mL="2N";2p.3V="2N";2p.fP=8b.1l()}N{if(8b){2p.fP=8b.1l();2p.mK="8a";2p.mJ="2N 6l"}}if(!D.1S.4r&&(n==(D.1S.89-1))){2p.3V="fO"}D.fI(6k,n,aX);D.fG(6k,n,aX);F 6k},fN:G(fK){D.1S={6g:"1p",3U:"aW",aV:"fM",5j:1h,3E:1m,4r:1m,fL:1m};B.J.2l(D.1S,fK);D.1S.89=(D.1S.4r?2:4)},aL:G(){u 88=D.1S.6g;if(D.6h(88,"1p","3D")){F""}u aU=(88.2A("tl")!=-1);u aT=(88.2A("tr")!=-1);if(aU&&aT){F""}if(aU){F"2I"}if(aT){F"3g"}F""},aK:G(){u 87=D.1S.6g;if(D.6h(87,"1p","6f")){F""}u aS=(87.2A("bl")!=-1);u aR=(87.2A("br")!=-1);if(aS&&aR){F""}if(aS){F"2I"}if(aR){F"3g"}F""},aQ:G(aN,aO){if(aN=="aP"){F aO}N{if(D.1S.3E){F D.1S.3E}N{if(D.1S.5j){F aO.fJ(aN)}}}F""},fI:G(el,n,fH){u 6j=D.fE(n)+"px";u aM=(fH=="3D"?D.aL():D.aK());u 4t=el.1T;if(aM=="2I"){4t.86=6j;4t.85="2N"}N{if(aM=="3g"){4t.85=6j;4t.86="2N"}N{4t.86=6j;4t.85=6j}}},fG:G(el,n,fF){u 6i=D.fz(n)+"px";u aJ=(fF=="3D"?D.aL():D.aK());u 4s=el.1T;if(aJ=="2I"){4s.84=6i;4s.83="2N"}N{if(aJ=="3g"){4s.83=6i;4s.84="2N"}N{4s.84=6i;4s.83=6i}}},fE:G(n){if(D.82){F 0}u o=D.1S;if(o.4r&&o.5j){u fD=[1,0];F fD[n]}N{if(o.4r){u fC=[2,1];F fC[n]}N{if(o.5j){u fB=[3,2,1,0];F fB[n]}N{u fA=[5,3,2,1];F fA[n]}}}},fz:G(n){u o=D.1S;u 5i;if(o.4r&&(o.5j||D.82)){F 1}N{if(o.4r){5i=[1,0]}N{if(o.5j){5i=[2,1,1,1]}N{if(o.3E){5i=[0,2,0,0]}N{if(D.82){5i=[5,3,2,1]}N{F 0}}}}}F 5i[n]},6h:G(1y){R(u i=1;i<M.K;i++){if(1y.2A(M[i])!=-1){F 1h}}F 1m},fy:G(){F D.6h(D.1S.6g,"1p","3D","tl","tr")},fx:G(){F D.6h(D.1S.6g,"1p","6f","bl","br")},mI:G(el){F(el.5h.K==1&&el.5h[0].3T==3)}};B.1X.aF=G(e,fw){Y B.1X.aI(e,fw)};B.1X.fs=G(fv,fu,ft){u aG=B.S.aH(fv,fu);R(u i=0;i<aG.K;i++){B.1X.aF(aG[i],ft)}};B.1X.V=B.V.V;B.1X.mH=B.S.4q;B.1X.2d=G(){u m=B.J;m.3f(D);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)}};B.1X.1z=["aF","fs"];B.1X.1W=[];B.1X.2d();B.J.2Y(D,B.1X);if(H(B)=="L"){B={}}if(H(B.B)=="L"){B.B={}}B.B.1r="B.B";B.B.1Y="1.3.1";B.B.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.B.1l=G(){F D.1K()};B.B.aA=["J","15","1H","1D","1s","1k","S","1I","V","1u","1X"];if(H(1x)!="L"||H(1q)!="L"){if(H(1q)!="L"){1q.2X("B.B");1q.2M("B.*")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.15",[]);1x.26("B.1H",[]);1x.26("B.1D",[]);1x.26("B.1s",[]);1x.26("B.1k",[]);1x.26("B.S",[]);1x.26("B.1I",[]);1x.26("B.V",[]);1x.26("B.1u",[]);1x.26("B.1X",[])}(G(){u 6e=B.J.1R;u I=B.B;u aE=I.aA;u aD=[];u aC=[];u 81={};u i,k,m,1p;R(i=0;i<aE.K;i++){m=B[aE[i]];6e(aD,m.1z);6e(aC,m.1W);R(k in m.2k){81[k]=6e(81[k],m.2k[k])}1p=m.2k[":1p"];if(!1p){1p=6e(O,m.1z,m.1W)}u j;R(j=0;j<1p.K;j++){k=1p[j];I[k]=m[k]}}I.1z=aD;I.1W=aC;I.2k=81}())}N{if(H(B.3d)=="L"){B.3d=1h}(G(){u 80=2v.fr("7W");u ay="fq://fp.mG.fo/mF/mE/mD.is.aB.mC";u 2w=O;u ax=O;u az={};u i;R(i=0;i<80.K;i++){u 1d=80[i].fm("1d");if(!1d){2V}az[1d]=1h;if(1d.3C(/B.js$/)){2w=1d.2W(0,1d.mB("B.js"));ax=80[i]}}if(2w===O){F}u 6d=B.B.aA;R(u i=0;i<6d.K;i++){if(B[6d[i]]){2V}u 7Y=2w+6d[i]+".js";if(7Y in az){2V}if(2v.7Z&&2v.7Z.mA==ay){u s=2v.mz(ay,"7W");s.4p("id","my"+2w+6d[i]);s.4p("1d",7Y);s.4p("1J","mx/x-fk");ax.3t.2c(s)}N{2v.fl("<7W 1d=\\""+7Y+"\\" 1J=\\"7X/fk\\"></7W>")}}})()}',62,1976,'||||||||||||||||||||||||||||||var|||||||MochiKit||this||return|function|typeof|self|Base|length|undefined|arguments|else|null||elem|for|DOM||repr|Color|rval|res|new||||||throw|Iter|||||next|name|push|src|catch|try|lst|true|obj|node|Async|toString|false|string|hue|all|dojo|NAME|Format|msg|Signal|red|apply|JSAN|str|EXPORT|func|rgb|_425|DateTime|getElement|blue|hsl|Logging|LoggingPane|type|__repr__|_event|while|doc|bind|num|iter|extend|options|style|prototype|seq|EXPORT_OK|Visual|VERSION|_document||_434||replace|forwardCall|StopIteration|use||Math|max|min|join|appendChild|__new__|button|compare|date|key|val|_329|EXPORT_TAGS|update|win|pair|concat|_596|dom|map|req|Deferred|sync|document|base|Error|number|partial|indexOf||instanceof|sig|not|cls|list|fired|left|stop|break|logger|require|0px|window|shift|hsv|split|createElement|_423|callee|continue|substring|provide|_exportSymbols|ccc||_464|||||||||step|pred|_51|__compat__|common|nameFunctions|right|255|_517|case|100|_loggingPane|value|object|callback|TypeError|_251|_246|_113|parentNode|display|_522|parseInt|cssText|wrap|info|isArrayLike|end|match|top|border|depends|args|substr|mouse|code|_519|_443|className|level|err|frac|Date|_135|_85|nodeType|color|height|and|_window|fromRGB|charAt||asHSL|_444|message||||filter||LogMessage|AdapterRegistry|_366|imap|NotFound|locked|counter|_262|_messages|operator|cmp|_165|_161|pairs|arr|_52|setAttribute|computedStyle|compact|_614|_610|div|_576|_572|_observers|splice|_565|_566|_555|scrollTop|page|modifier|white|_541|fromHSL|_539|_535|_528|clone|parseFloat|_505|pre|_499|_497|_427|createTextNode|_446|attributeArray|_388|_379|updateNodeAttributes|_341|_326||box|errback|results|paused|chain|_285||ofs||NamedError|_175|_147|_122|_83|_54|_17|childNodes|_619|blend|defaultView|_574|_569|idx|_562|must|_554|_specialKeys|body|Coordinates|registerComparator|_521|_516|hex|mid|_478|width|loggingPane|LogLevel|nwin|head|url|setElementClass|callStack|path|dest|_359|boolean|register|Dimensions|DeferredLock|_313|addCallback|_310|waiting|onreadystatechange|_290|LOCALE|year|printfire|_214|log|_213|_211|pos|_155|_153||typeMatcher|listMinMax|_114|_40|itr|typ|_19|_634|_625|bottom|corners|_hasString|_612|_608|_595|1px|DIV|firstChild|innerHTML|padding|getPropertyValue|asRGB|connect|_disconnect|_559|middle|which|clientY|scrollLeft|clientX|client|charCode|relatedTarget|event|toColorPart|clampColorComponent|_537|_534|toFixed|_468|buildAndApplyFilter|_442|_441|_440|_439|position|_463|_447|removeChild|_449|uid|_428|_426|compliant|attributes|_422|_409|_412|_400|_395|_390|_389|_377|_375|_363|attr|ctx|repeat|_340|_339|isNotEmpty|_335|_333|opera|DeferredList|ret|_309|silentlyCancelled|canceller|_nextId|Array|_293|XMLHttpRequest|chained|_281|tail|_252|_225|msec|day|month|iso|Logger|_208|listeners|_200|_198|_194|_196|reduce|range|_169|_162|truth|registerRepr|_121|_70|_58|_56|_47|_45|_41|_13|_1|script|text|uri|documentElement|_630|_629|isTransparent|borderRightWidth|borderLeftWidth|marginRight|marginLeft|_602|_599|numSlices|solid|_597|block|SPAN|_579|fromString|offsetParent|signal|disconnectAll|disconnect|_570|_563|_557|preventDefault|stopPropagation|clientTop|clientLeft|pageY|pageX|keyCode|meta|ctrl|alt|target|black|_532|_524|floor|_513|_512|_500|_495|toLowerCase|_487|DEBUG|INFO|WARNING|FATAL|ERROR|colorTable|logFont|closed|inline|onclick|_438|_437|_445|RegExp|_452|space|title|updatetree|||||withDocument|withWindow||setDisplayForElement|none|renames|forEach|domConverters|escapeHTML|addElementClass|removeElementClass|once|_378|_380|_376|appendChildNodes|coerceToDOM|_355|opt|clientWidth|opacity|GenericError|fail|resultList|_307|_301|_fire|can|addCallbacks|_resback|percent|decimal|separator|twoDigitFloat|_274|_273|_264|_257|_250|_249|_254|_248|_243|_242|fmt|_240|_245|getTime|sec|hour|_209|slice|_206|iterateNextIter|registerIteratorFactory|arrayLikeIter|iteratorRegistry|takewhile|ifilterfalse|ifilter|_181|_176|_168|_166|_159|_tee|deque|arg|fun|jsonRegistry|reprString|reprRegistry|comparatorRegistry|urlEncode|_110|_108|cur|_95|_87|_71|im_preargs||_53|_57|_46|present|like|array|Argument|_15|_12|_632|_631|_633|SUBMODULES|only|_628|_627|_626|roundElement|_624|getElementsByTagAndClassName|_RoundCorners|_613|_whichSideBottom|_whichSideTop|_609|_605|_606|transparent|_borderColor|_604|_603|_601|_600|bgColor|fromElement|_594|_592|backgroundColor|_createCornerSlice|_createCorner|_590|_589|_587|_586|_581|_578|_577|currentDocument|fromBackground|errors|_568|_564||sigs|flattenArguments|_561|findIdentical|_560|_558||_556|attachEvent|addEventListener|funcOrStr|Event||_548|fromCharCode|String|_specialMacKeys|any|green|_namedColors|hsvToRGB|rgbToHSV|hslToRGB|rgbToHSL|_542|01|360|_fromColorString|_540|_536|_538|_529|_523|_518|fromComputedStyle|_511|_507|_508|_506|_501|fromHexString|_498|_496|_486|__class__|createLoggingPane|_459|_461|font|_462|_430|_435|1000|index|_460|getMessages|removeListener|_451||_457|_450|infore|_448|_456|logDebug|offsetHeight|span|input|_436|TR||HTML|open|alert|currentWindow|swapDOM|SELECT|FORM|INPUT|createDOMFunc|ignoreAttr|_421|call|_417|_410|_415|nodeName|_414|_413|emitHTML|good|_406|_399|_397|_393|_392|addLoadEvent|addToCallStack|_387|_386|_381|_382|_383|_373|_372|_369|createDOM|_365|Function|_360|_362|_358|_344|nodeWalk|formContents|_337|_338|_334|_332|offsetTop|offsetLeft|visibility|parentElement|||XMLHttpRequestError|BrowserComplianceError|CancelledError|AlreadyCalledError|evalJSONRequest|sendXMLHttpRequest|wait|doSimpleXMLHttpRequest|getXMLHttpRequest|succeed|_312|finishedCount|_308|_cbDeferred|_303|_297|queryString|_nothing|_289|XMLHTTP|ActiveXObject|eval|_284|_check|error|_279|default|rstrip|lstrip|formatLocale|roundToFixed|truncToFixed|_276|pow|_272|_271|_270|sign|_265|_263|tmp|_238|_232|toISODate|toISOTime|getFullYear|getDate|getMonth|_230|_padTwo|_228|useNativeConsole|_212|compareLogMessage|isLogMessage|unshift|_207||maxSize|_202|_199|logLevelAtLeast|console|hasIterateNext|iterateNext|arrayLike|groupby||exhaust|tee|dropwhile|applymap||islice|izip|cycle|count||_189|_188|_183|_185|_184|_186|_187|_182|identity|fetch|_180|_177|listMin|reprNumber|reprArrayLike|compareArrayLike|compareDateLike|isDateLike|findValue|_128|__export__|keyComparator|_124|_118|_93|_94|_90|_88|_84|_77|_68|_67|_66|_65|_60|im_func|_55|im_self|_48|_44|_42|_39|_36|_33|_27|_26|_25|_22|_24|_20|javascript|write|getAttribute||org|www|http|getElementsByTagName|roundClass|_623|_622|_621|_620|_isBottomRounded|_isTopRounded|_borderSize|_618|_617|_616|_615|_marginSize|_611|_setBorder|_607|_setMargin|blendedColor|_598|__unstable__wrapElement|fromParent|_setOptions|2px|borderColor|_593|hidden|overflow|_591|_588|_roundBottomCorners|_585|_roundTopCorners|_584|_583|_582|_580|_renderBorder|_roundCornersImpl|getComputedStyle|_doWrap|_571|_unloadCache|onunload|detachEvent|removeEventListener|_listener|objOrFunc|_552||_551|_549|onload|delete|112|KEY_F|KEY_|MINUS|KEY_SEMICOLON|KEY_DELETE|KEY_INSERT|KEY_ARROW_DOWN|KEY_ARROW_RIGHT|KEY_ARROW_UP||KEY_ARROW_LEFT|KEY_HOME|KEY_END|KEY_PAGE_DOWN|KEY_PAGE_UP|KEY_ENTER|KEY_NUM_PAD_CLEAR|63236|mousemove|contextmenu|click|mouseout|mouseover|_src|yellow|708090|purple|orange|ff00ff|magenta|778899|d3d3d3|808080|gray|696969|2f4f4f|darkred|a9a9a9|00ffff|cyan|brown|_547|_546||||compareRGB|_545||_543|fromHSLString|fromRGBString|round|_533|_hslValue|switch|background|_503|_504||fromName|_488|col|toRGBString|_hexString|_rgbString|_hslString|toPrecision|isLight||_481|_477|_476|_475|_474|_473|_469|_466|closePane|_458|onkeypress|_454|addListener|_455|close|test|scrollHeight|option|word|moz|_431|getElementById|html|pop|200|_|removeElement|showElement|hideElement|CANVAS|STRONG|FIELDSET|LEGEND|OPTGROUP|OPTION|TEXTAREA|LABEL|HR|BR|H3|H2|H1|PRE|TT|BUTTON|IMG|TH||TABLE||TFOOT|THEAD|TBODY|TD|LI|OL|||UL|checked|class|ignoreAttrFilter||_424|_419|nodeValue|scrapeText|_416|_418|sort|_411|toHTML|_404|hasElementClass|_403|_402|_401|swapElementClass|_398|_394|toggleElementClass|_391|focusOnLoad|_newCallStack|currentStyle|_371|replaceChildNodes|_364|_361|getNodeAttribute|_357|setNodeAttribute|_354|_352|_350|_353|toDOM|_346|_345|registerDOMConverter|selectedIndex|setElementPosition|setElementDimensions|tagName|absolute|getBoxObjectFor|getBoundingClientRect|elementPosition|_325|_324|_322|_323|offsetWidth|elementDimensions|clientHeight|innerWidth|getViewportDimensions|setOpacity|status|_317|deferred|_316|_newNamedError|maybeDeferred||gatherResults|callLater|loadJSONDoc|_311|consumeErrors|fireOnOneErrback|fireOnOneCallback|addErrback|_305|_304|_306|unlocked|release|_300|_299|_298|_296|_xhr_onreadystatechange|_xhr_canceller|304|responseText|Msxml2|addBoth|_pause|_continue|result|the|are|they|instances|_unpause|cancel|_280|_278|en_US|strip|percentFormat|twoDigitAverage|numberFormatter|_277|_275|isNaN|_259|_258|_260|_255|_253|_numberFormatter|_241|_239|_237|_236|_235|_234|_233|_231|toAmericanDate|toPaddedAmericanDate|americanDate|toISOTimestamp|isoTimestamp|isoDate|foot|sep||60000|_221|_isoRegexp|dispatchEvent|createEvent|warning|logWarning|fatal|logFatal|debug|logError|baseLog|_210|getMessageText|logToConsole|dispatchListeners|_204|_203|ident|_201|postError|alertListener|_197|_192|groupby_as_array|iextend|some|reversed|sorted|every|sum|_190|eat|_174|_173|_172|_171|_167|_163|_158|_157|_151|_144|_141||_139|_136|_134||_133|_132|zip|merge|isUndefined|isCallable|listMax|_131|_130|encodeURIComponent||_127|method|parseQueryString|evalJSON|registerJSON|serializeJSON|objMin|objMax|reverseKeyComparator|arrayEqual|objEqual|bindMethods|xfilter|xmap|isEmpty|isNull|isUndefinedOrNull|itemgetter|items|keys|setdefault|_126|_120|decodeURIComponent|_119|len|_109|_107|_104|_105|_101|_102|_98|||_100|_97|_96|_91|json|__json__|_82|_81|_80|_79|_76||_75|_74|_73|_69|_primitives|_64|_63||_62|_61|_59|_wrapDumbFunction|_49|_50|_31|_30|_21|_7|application|MochiKit_|createElementNS|namespaceURI|lastIndexOf|xul|there|gatekeeper|keymaster|mozilla|getElementsComputedStyle|_hasSingleTextChild|borderWidth|borderStyle|borderBottomWidth|borderTopWidth|borderTopStyle|fontSize|paddingBottom|insertBefore|paddingTop|marginBottom|marginTop|_575|property|see|handling|thrown|Multiple|element|||given|123|KEY_NUM_PAD_|105|KEY_APOSTROPHE|222|KEY_RIGHT_SQUARE_BRACKET|221|KEY_REVERSE_SOLIDUS|220|KEY_LEFT_SQUARE_BRACKET||219|KEY_GRAVE_ACCENT|192|KEY_SOLIDUS|191|KEY_FULL_STOP|190|KEY_HYPHEN|189||KEY_COMMA|188|KEY_EQUALS_SIGN|187|186|KEY_SCROLL_LOCK|145|KEY_NUM_LOCK|144|KEY_NUM_PAD_SOLIDUS|111|KEY_NUM_PAD_FULL_STOP|110|KEY_NUM_PAD_HYPHEN|109|KEY_NUM_PAD_PLUS_SIGN|107|KEY_NUM_PAD_ASTERISK|106|KEY_SELECT|KEY_WINDOWS_RIGHT|KEY_WINDOWS_LEFT|KEY_PRINT_SCREEN|KEY_SPACEBAR|KEY_ESCAPE|KEY_CAPS_LOCK|KEY_PAUSE|KEY_ALT|KEY_CTRL|KEY_SHIFT|KEY_TAB|KEY_BACKSPACE|63242|63272|63302|63233|63235|63232|63234|63273|63275|63277|63276|63289|returnValue|cancelBubble|keypress|KEY_UNKNOWN|keyup|keydown|shiftKey|metaKey||ctrlKey|altKey|toElement|srcElement|9acd32||yellowgreen||ffff00|f5f5f5|whitesmoke||ffffff|f5deb3|wheat|ee82ee|violet|40e0d0|turquoise|ff6347|tomato|d8bfd8|thistle|008080|teal|d2b48c|tan|4682b4|steelblue|00ff7f|springgreen|fffafa|snow|slategrey|slategray|6a5acd|slateblue|87ceeb|skyblue|c0c0c0|silver|a0522d|sienna|fff5ee|seashell|2e8b57|seagreen|f4a460|sandybrown|fa8072|salmon|8b4513|saddlebrown|4169e1|royalblue|bc8f8f|rosybrown|ff0000|800080|b0e0e6|powderblue|dda0dd|plum|ffc0cb|pink|cd853f||peru|ffdab9|peachpuff|ffefd5|papayawhip|db7093|palevioletred|afeeee|paleturquoise|98fb98|palegreen|eee8aa||palegoldenrod|da70d6|orchid|ff4500|orangered|ffa500|6b8e23|olivedrab|808000|olive|fdf5e6|oldlace|000080|navy|ffdead|navajowhite|ffe4b5|moccasin|ffe4e1|mistyrose|f5fffa|mintcream|191970|midnightblue|c71585|mediumvioletred|48d1cc|mediumturquoise|00fa9a|mediumspringgreen|7b68ee|mediumslateblue|3cb371|mediumseagreen|9370db|mediumpurple|ba55d3|mediumorchid|0000cd|mediumblue|66cdaa|mediumaquamarine|800000|maroon|faf0e6|linen|32cd32|limegreen|00ff00|lime|ffffe0|lightyellow|b0c4de|lightsteelblue|lightslategrey|lightslategray||87cefa|lightskyblue|20b2aa|lightseagreen|ffa07a|lightsalmon|ffb6c1|lightpink|lightgrey|90ee90|lightgreen|lightgray|fafad2|lightgoldenrodyellow|e0ffff|lightcyan|f08080|lightcoral|add8e6|lightblue|fffacd|lemonchiffon|7cfc00|lawngreen|fff0f5|lavenderblush|e6e6fa|lavender|f0e68c|khaki|fffff0|ivory|4b0082|indigo|cd5c5c|indianred|ff69b4|hotpink|f0fff0|honeydew|grey|adff2f|greenyellow|008000|daa520|goldenrod|ffd700||gold|f8f8ff|ghostwhite|dcdcdc|gainsboro|fuchsia|228b22|forestgreen|fffaf0|floralwhite|b22222|firebrick|1e90ff|dodgerblue|dimgrey|dimgray|00bfff|deepskyblue|ff1493|deeppink|9400d3|darkviolet|00ced1|darkturquoise|darkslategrey|darkslategray|483d8b|darkslateblue|8fbc8f|darkseagreen|e9967a|darksalmon|8b0000|9932cc|darkorchid|ff8c00|darkorange|556b2f|darkolivegreen|8b008b|darkmagenta|bdb76b|darkkhaki|darkgrey|006400|darkgreen|darkgray|b8860b|darkgoldenrod|008b8b|darkcyan|00008b|darkblue|dc143c|crimson|fff8dc|cornsilk|6495ed|cornflowerblue|ff7f50|coral|d2691e||chocolate|7fff00|chartreuse|5f9ea0|cadetblue|deb887|burlywood|a52a2a|8a2be2|blueviolet|0000ff|ffebcd||blanchedalmond|000000|ffe4c4|bisque|f5f5dc|beige|f0ffff|azure|7fffd4|aquamarine|aqua|faebd7|antiquewhite|f0f8ff|aliceblue|lightGray|darkGray|namedColors|blackColor|fromText|whiteColor|_510|_509|PI|rad|deg|transparentColor|_494|_493|_492|fromHSV|_491|_490|_489|asHSV|toHexString|rgba|hsla|toHSLString|isDark|lighterColorWithLevel|darkerColorWithLevel|colorWithLightness|colorWithSaturation|colorWithHue|colorWithAlpha||serif|sans|Verdana||8pt|8em|auto||Close|Clear||Load|Filter||10em||fixed|regex|emergency|line|margin|_Listener|dtd|loose|html4|w3|EN|Transitional|DTD|W3C|PUBLIC|DOCTYPE|blocking|due|debugging|able|Not|resizable|dependent|href|location|_MochiKit_LoggingPane|_429|canvas|strong|fieldset|legend|optgroup|select|form|textarea|label|img|table|tfoot|thead|tbody|htmlFor||useMap|usemap|defaultChecked|hasChildNodes|quot|amp|_405|focus|replaceChild|checkbox||radio|_win|BODY||safari|version|userAgent|navigator|innerHeight|alpha|khtml|Tried|acquire|clearTimeout|setTimeout|GET|ignore|send|abort|failed|Request|readyState|support|does|Browser|Microsoft|_288|_287|used|Deferreds|Chained|success|unfired|fr_FR|de_DE|00|abs|search|pattern|Invalid|getTimezoneOffset|getSeconds|getMinutes|getHours|UTC|3600000|initEvent|Events|debuggingBookmarklet|MESSAGES|LAST|_205|clear|ninfo|nlevel|timestamp|reverse|takes|initial|with|sequence|empty|iterable|numbers|dateLike|escape|find|forward|unregister|unescape|Object|compared|item|contains|logor|logand|cle|clt|cge|cgt|cne|ceq|zrshift|rshift|lshift|xor|mul|mod|sub|add|neg|lognot|_9|_2'.split('|'),0,{})
+
+
+/*
+ * jQuery 1.2.1 - New Wave Javascript
+ *
+ * Copyright (c) 2007 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2007-09-16 23:42:06 -0400 (Sun, 16 Sep 2007) $
+ * $Rev: 3353 $
+ */
+
+var decompressedJQuery = function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(G(){9(1m E!="W")H w=E;H E=18.15=G(a,b){I 6 7u E?6.5N(a,b):1u E(a,b)};9(1m $!="W")H D=$;18.$=E;H u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;E.1b=E.3A={5N:G(c,a){c=c||U;9(1m c=="1M"){H m=u.2S(c);9(m&&(m[1]||!a)){9(m[1])c=E.4D([m[1]],a);J{H b=U.3S(m[3]);9(b)9(b.22!=m[3])I E().1Y(c);J{6[0]=b;6.K=1;I 6}J c=[]}}J I 1u E(a).1Y(c)}J 9(E.1n(c))I 1u E(U)[E.1b.2d?"2d":"39"](c);I 6.6v(c.1c==1B&&c||(c.4c||c.K&&c!=18&&!c.1y&&c[0]!=W&&c[0].1y)&&E.2h(c)||[c])},4c:"1.2.1",7Y:G(){I 6.K},K:0,21:G(a){I a==W?E.2h(6):6[a]},2o:G(a){H b=E(a);b.4Y=6;I b},6v:G(a){6.K=0;1B.3A.1a.16(6,a);I 6},N:G(a,b){I E.N(6,a,b)},4I:G(a){H b=-1;6.N(G(i){9(6==a)b=i});I b},1x:G(f,d,e){H c=f;9(f.1c==3X)9(d==W)I 6.K&&E[e||"1x"](6[0],f)||W;J{c={};c[f]=d}I 6.N(G(a){L(H b 1i c)E.1x(e?6.R:6,b,E.1e(6,c[b],e,a,b))})},17:G(b,a){I 6.1x(b,a,"3C")},2g:G(e){9(1m e!="5i"&&e!=S)I 6.4n().3g(U.6F(e));H t="";E.N(e||6,G(){E.N(6.3j,G(){9(6.1y!=8)t+=6.1y!=1?6.6x:E.1b.2g([6])})});I t},5m:G(b){9(6[0])E(b,6[0].3H).6u().3d(6[0]).1X(G(){H a=6;1W(a.1w)a=a.1w;I a}).3g(6);I 6},8m:G(a){I 6.N(G(){E(6).6q().5m(a)})},8d:G(a){I 6.N(G(){E(6).5m(a)})},3g:G(){I 6.3z(1q,Q,1,G(a){6.58(a)})},6j:G(){I 6.3z(1q,Q,-1,G(a){6.3d(a,6.1w)})},6g:G(){I 6.3z(1q,P,1,G(a){6.12.3d(a,6)})},50:G(){I 6.3z(1q,P,-1,G(a){6.12.3d(a,6.2q)})},2D:G(){I 6.4Y||E([])},1Y:G(t){H b=E.1X(6,G(a){I E.1Y(t,a)});I 6.2o(/[^+>] [^+>]/.14(t)||t.1g("..")>-1?E.4V(b):b)},6u:G(e){H f=6.1X(G(){I 6.67?E(6.67)[0]:6.4R(Q)});H d=f.1Y("*").4O().N(G(){9(6[F]!=W)6[F]=S});9(e===Q)6.1Y("*").4O().N(G(i){H c=E.M(6,"2P");L(H a 1i c)L(H b 1i c[a])E.1j.1f(d[i],a,c[a][b],c[a][b].M)});I f},1E:G(t){I 6.2o(E.1n(t)&&E.2W(6,G(b,a){I t.16(b,[a])})||E.3m(t,6))},5V:G(t){I 6.2o(t.1c==3X&&E.3m(t,6,Q)||E.2W(6,G(a){I(t.1c==1B||t.4c)?E.2A(a,t)<0:a!=t}))},1f:G(t){I 6.2o(E.1R(6.21(),t.1c==3X?E(t).21():t.K!=W&&(!t.11||E.11(t,"2Y"))?t:[t]))},3t:G(a){I a?E.3m(a,6).K>0:P},7c:G(a){I 6.3t("."+a)},3i:G(b){9(b==W){9(6.K){H c=6[0];9(E.11(c,"24")){H e=c.4Z,a=[],Y=c.Y,2G=c.O=="24-2G";9(e<0)I S;L(H i=2G?e:0,33=2G?e+1:Y.K;i<33;i++){H d=Y[i];9(d.26){H b=E.V.1h&&!d.9V["1Q"].9L?d.2g:d.1Q;9(2G)I b;a.1a(b)}}I a}J I 6[0].1Q.1p(/\\r/g,"")}}J I 6.N(G(){9(b.1c==1B&&/4k|5j/.14(6.O))6.2Q=(E.2A(6.1Q,b)>=0||E.2A(6.2H,b)>=0);J 9(E.11(6,"24")){H a=b.1c==1B?b:[b];E("9h",6).N(G(){6.26=(E.2A(6.1Q,a)>=0||E.2A(6.2g,a)>=0)});9(!a.K)6.4Z=-1}J 6.1Q=b})},4o:G(a){I a==W?(6.K?6[0].3O:S):6.4n().3g(a)},6H:G(a){I 6.50(a).28()},6E:G(i){I 6.2J(i,i+1)},2J:G(){I 6.2o(1B.3A.2J.16(6,1q))},1X:G(b){I 6.2o(E.1X(6,G(a,i){I b.2O(a,i,a)}))},4O:G(){I 6.1f(6.4Y)},3z:G(f,d,g,e){H c=6.K>1,a;I 6.N(G(){9(!a){a=E.4D(f,6.3H);9(g<0)a.8U()}H b=6;9(d&&E.11(6,"1I")&&E.11(a[0],"4m"))b=6.4l("1K")[0]||6.58(U.5B("1K"));E.N(a,G(){H a=c?6.4R(Q):6;9(!5A(0,a))e.2O(b,a)})})}};G 5A(i,b){H a=E.11(b,"1J");9(a){9(b.3k)E.3G({1d:b.3k,3e:P,1V:"1J"});J E.5f(b.2g||b.6s||b.3O||"");9(b.12)b.12.3b(b)}J 9(b.1y==1)E("1J",b).N(5A);I a}E.1k=E.1b.1k=G(){H c=1q[0]||{},a=1,2c=1q.K,5e=P;9(c.1c==8o){5e=c;c=1q[1]||{}}9(2c==1){c=6;a=0}H b;L(;a<2c;a++)9((b=1q[a])!=S)L(H i 1i b){9(c==b[i])6r;9(5e&&1m b[i]==\'5i\'&&c[i])E.1k(c[i],b[i]);J 9(b[i]!=W)c[i]=b[i]}I c};H F="15"+(1u 3D()).3B(),6p=0,5c={};E.1k({8a:G(a){18.$=D;9(a)18.15=w;I E},1n:G(a){I!!a&&1m a!="1M"&&!a.11&&a.1c!=1B&&/G/i.14(a+"")},4a:G(a){I a.2V&&!a.1G||a.37&&a.3H&&!a.3H.1G},5f:G(a){a=E.36(a);9(a){9(18.6l)18.6l(a);J 9(E.V.1N)18.56(a,0);J 3w.2O(18,a)}},11:G(b,a){I b.11&&b.11.27()==a.27()},1L:{},M:G(c,d,b){c=c==18?5c:c;H a=c[F];9(!a)a=c[F]=++6p;9(d&&!E.1L[a])E.1L[a]={};9(b!=W)E.1L[a][d]=b;I d?E.1L[a][d]:a},30:G(c,b){c=c==18?5c:c;H a=c[F];9(b){9(E.1L[a]){2E E.1L[a][b];b="";L(b 1i E.1L[a])1T;9(!b)E.30(c)}}J{2a{2E c[F]}29(e){9(c.53)c.53(F)}2E E.1L[a]}},N:G(a,b,c){9(c){9(a.K==W)L(H i 1i a)b.16(a[i],c);J L(H i=0,48=a.K;i<48;i++)9(b.16(a[i],c)===P)1T}J{9(a.K==W)L(H i 1i a)b.2O(a[i],i,a[i]);J L(H i=0,48=a.K,3i=a[0];i<48&&b.2O(3i,i,3i)!==P;3i=a[++i]){}}I a},1e:G(c,b,d,e,a){9(E.1n(b))b=b.2O(c,[e]);H f=/z-?4I|7T-?7Q|1r|69|7P-?1H/i;I b&&b.1c==4W&&d=="3C"&&!f.14(a)?b+"2T":b},1o:{1f:G(b,c){E.N((c||"").2l(/\\s+/),G(i,a){9(!E.1o.3K(b.1o,a))b.1o+=(b.1o?" ":"")+a})},28:G(b,c){b.1o=c!=W?E.2W(b.1o.2l(/\\s+/),G(a){I!E.1o.3K(c,a)}).66(" "):""},3K:G(t,c){I E.2A(c,(t.1o||t).3s().2l(/\\s+/))>-1}},2k:G(e,o,f){L(H i 1i o){e.R["3r"+i]=e.R[i];e.R[i]=o[i]}f.16(e,[]);L(H i 1i o)e.R[i]=e.R["3r"+i]},17:G(e,p){9(p=="1H"||p=="2N"){H b={},42,41,d=["7J","7I","7G","7F"];E.N(d,G(){b["7C"+6]=0;b["7B"+6+"5Z"]=0});E.2k(e,b,G(){9(E(e).3t(\':3R\')){42=e.7A;41=e.7w}J{e=E(e.4R(Q)).1Y(":4k").5W("2Q").2D().17({4C:"1P",2X:"4F",19:"2Z",7o:"0",1S:"0"}).5R(e.12)[0];H a=E.17(e.12,"2X")||"3V";9(a=="3V")e.12.R.2X="7g";42=e.7e;41=e.7b;9(a=="3V")e.12.R.2X="3V";e.12.3b(e)}});I p=="1H"?42:41}I E.3C(e,p)},3C:G(h,j,i){H g,2w=[],2k=[];G 3n(a){9(!E.V.1N)I P;H b=U.3o.3Z(a,S);I!b||b.4y("3n")==""}9(j=="1r"&&E.V.1h){g=E.1x(h.R,"1r");I g==""?"1":g}9(j.1t(/4u/i))j=y;9(!i&&h.R[j])g=h.R[j];J 9(U.3o&&U.3o.3Z){9(j.1t(/4u/i))j="4u";j=j.1p(/([A-Z])/g,"-$1").2p();H d=U.3o.3Z(h,S);9(d&&!3n(h))g=d.4y(j);J{L(H a=h;a&&3n(a);a=a.12)2w.4w(a);L(a=0;a<2w.K;a++)9(3n(2w[a])){2k[a]=2w[a].R.19;2w[a].R.19="2Z"}g=j=="19"&&2k[2w.K-1]!=S?"2s":U.3o.3Z(h,S).4y(j)||"";L(a=0;a<2k.K;a++)9(2k[a]!=S)2w[a].R.19=2k[a]}9(j=="1r"&&g=="")g="1"}J 9(h.3Q){H f=j.1p(/\\-(\\w)/g,G(m,c){I c.27()});g=h.3Q[j]||h.3Q[f];9(!/^\\d+(2T)?$/i.14(g)&&/^\\d/.14(g)){H k=h.R.1S;H e=h.4v.1S;h.4v.1S=h.3Q.1S;h.R.1S=g||0;g=h.R.71+"2T";h.R.1S=k;h.4v.1S=e}}I g},4D:G(a,e){H r=[];e=e||U;E.N(a,G(i,d){9(!d)I;9(d.1c==4W)d=d.3s();9(1m d=="1M"){d=d.1p(/(<(\\w+)[^>]*?)\\/>/g,G(m,a,b){I b.1t(/^(70|6Z|6Y|9Q|4t|9N|9K|3a|9G|9E)$/i)?m:a+"></"+b+">"});H s=E.36(d).2p(),1s=e.5B("1s"),2x=[];H c=!s.1g("<9y")&&[1,"<24>","</24>"]||!s.1g("<9w")&&[1,"<6T>","</6T>"]||s.1t(/^<(9u|1K|9t|9r|9p)/)&&[1,"<1I>","</1I>"]||!s.1g("<4m")&&[2,"<1I><1K>","</1K></1I>"]||(!s.1g("<9m")||!s.1g("<9k"))&&[3,"<1I><1K><4m>","</4m></1K></1I>"]||!s.1g("<6Y")&&[2,"<1I><1K></1K><6L>","</6L></1I>"]||E.V.1h&&[1,"1s<1s>","</1s>"]||[0,"",""];1s.3O=c[1]+d+c[2];1W(c[0]--)1s=1s.5p;9(E.V.1h){9(!s.1g("<1I")&&s.1g("<1K")<0)2x=1s.1w&&1s.1w.3j;J 9(c[1]=="<1I>"&&s.1g("<1K")<0)2x=1s.3j;L(H n=2x.K-1;n>=0;--n)9(E.11(2x[n],"1K")&&!2x[n].3j.K)2x[n].12.3b(2x[n]);9(/^\\s/.14(d))1s.3d(e.6F(d.1t(/^\\s*/)[0]),1s.1w)}d=E.2h(1s.3j)}9(0===d.K&&(!E.11(d,"2Y")&&!E.11(d,"24")))I;9(d[0]==W||E.11(d,"2Y")||d.Y)r.1a(d);J r=E.1R(r,d)});I r},1x:G(c,d,a){H e=E.4a(c)?{}:E.5o;9(d=="26"&&E.V.1N)c.12.4Z;9(e[d]){9(a!=W)c[e[d]]=a;I c[e[d]]}J 9(E.V.1h&&d=="R")I E.1x(c.R,"9e",a);J 9(a==W&&E.V.1h&&E.11(c,"2Y")&&(d=="9d"||d=="9a"))I c.97(d).6x;J 9(c.37){9(a!=W){9(d=="O"&&E.11(c,"4t")&&c.12)6G"O 94 93\'t 92 91";c.90(d,a)}9(E.V.1h&&/6C|3k/.14(d)&&!E.4a(c))I c.4p(d,2);I c.4p(d)}J{9(d=="1r"&&E.V.1h){9(a!=W){c.69=1;c.1E=(c.1E||"").1p(/6O\\([^)]*\\)/,"")+(3I(a).3s()=="8S"?"":"6O(1r="+a*6A+")")}I c.1E?(3I(c.1E.1t(/1r=([^)]*)/)[1])/6A).3s():""}d=d.1p(/-([a-z])/8Q,G(z,b){I b.27()});9(a!=W)c[d]=a;I c[d]}},36:G(t){I(t||"").1p(/^\\s+|\\s+$/g,"")},2h:G(a){H r=[];9(1m a!="8P")L(H i=0,2c=a.K;i<2c;i++)r.1a(a[i]);J r=a.2J(0);I r},2A:G(b,a){L(H i=0,2c=a.K;i<2c;i++)9(a[i]==b)I i;I-1},1R:G(a,b){9(E.V.1h){L(H i=0;b[i];i++)9(b[i].1y!=8)a.1a(b[i])}J L(H i=0;b[i];i++)a.1a(b[i]);I a},4V:G(b){H r=[],2f={};2a{L(H i=0,6y=b.K;i<6y;i++){H a=E.M(b[i]);9(!2f[a]){2f[a]=Q;r.1a(b[i])}}}29(e){r=b}I r},2W:G(b,a,c){9(1m a=="1M")a=3w("P||G(a,i){I "+a+"}");H d=[];L(H i=0,4g=b.K;i<4g;i++)9(!c&&a(b[i],i)||c&&!a(b[i],i))d.1a(b[i]);I d},1X:G(c,b){9(1m b=="1M")b=3w("P||G(a){I "+b+"}");H d=[];L(H i=0,4g=c.K;i<4g;i++){H a=b(c[i],i);9(a!==S&&a!=W){9(a.1c!=1B)a=[a];d=d.8M(a)}}I d}});H v=8K.8I.2p();E.V={4s:(v.1t(/.+(?:8F|8E|8C|8B)[\\/: ]([\\d.]+)/)||[])[1],1N:/6w/.14(v),34:/34/.14(v),1h:/1h/.14(v)&&!/34/.14(v),35:/35/.14(v)&&!/(8z|6w)/.14(v)};H y=E.V.1h?"4h":"5h";E.1k({5g:!E.V.1h||U.8y=="8x",4h:E.V.1h?"4h":"5h",5o:{"L":"8w","8v":"1o","4u":y,5h:y,4h:y,3O:"3O",1o:"1o",1Q:"1Q",3c:"3c",2Q:"2Q",8u:"8t",26:"26",8s:"8r"}});E.N({1D:"a.12",8q:"15.4e(a,\'12\')",8p:"15.2I(a,2,\'2q\')",8n:"15.2I(a,2,\'4d\')",8l:"15.4e(a,\'2q\')",8k:"15.4e(a,\'4d\')",8j:"15.5d(a.12.1w,a)",8i:"15.5d(a.1w)",6q:"15.11(a,\'8h\')?a.8f||a.8e.U:15.2h(a.3j)"},G(i,n){E.1b[i]=G(a){H b=E.1X(6,n);9(a&&1m a=="1M")b=E.3m(a,b);I 6.2o(E.4V(b))}});E.N({5R:"3g",8c:"6j",3d:"6g",8b:"50",89:"6H"},G(i,n){E.1b[i]=G(){H a=1q;I 6.N(G(){L(H j=0,2c=a.K;j<2c;j++)E(a[j])[n](6)})}});E.N({5W:G(a){E.1x(6,a,"");6.53(a)},88:G(c){E.1o.1f(6,c)},87:G(c){E.1o.28(6,c)},86:G(c){E.1o[E.1o.3K(6,c)?"28":"1f"](6,c)},28:G(a){9(!a||E.1E(a,[6]).r.K){E.30(6);6.12.3b(6)}},4n:G(){E("*",6).N(G(){E.30(6)});1W(6.1w)6.3b(6.1w)}},G(i,n){E.1b[i]=G(){I 6.N(n,1q)}});E.N(["85","5Z"],G(i,a){H n=a.2p();E.1b[n]=G(h){I 6[0]==18?E.V.1N&&3y["84"+a]||E.5g&&38.33(U.2V["5a"+a],U.1G["5a"+a])||U.1G["5a"+a]:6[0]==U?38.33(U.1G["6n"+a],U.1G["6m"+a]):h==W?(6.K?E.17(6[0],n):S):6.17(n,h.1c==3X?h:h+"2T")}});H C=E.V.1N&&3x(E.V.4s)<83?"(?:[\\\\w*57-]|\\\\\\\\.)":"(?:[\\\\w\\82-\\81*57-]|\\\\\\\\.)",6k=1u 47("^>\\\\s*("+C+"+)"),6i=1u 47("^("+C+"+)(#)("+C+"+)"),6h=1u 47("^([#.]?)("+C+"*)");E.1k({55:{"":"m[2]==\'*\'||15.11(a,m[2])","#":"a.4p(\'22\')==m[2]",":":{80:"i<m[3]-0",7Z:"i>m[3]-0",2I:"m[3]-0==i",6E:"m[3]-0==i",3v:"i==0",3u:"i==r.K-1",6f:"i%2==0",6e:"i%2","3v-46":"a.12.4l(\'*\')[0]==a","3u-46":"15.2I(a.12.5p,1,\'4d\')==a","7X-46":"!15.2I(a.12.5p,2,\'4d\')",1D:"a.1w",4n:"!a.1w",7W:"(a.6s||a.7V||15(a).2g()||\'\').1g(m[3])>=0",3R:\'"1P"!=a.O&&15.17(a,"19")!="2s"&&15.17(a,"4C")!="1P"\',1P:\'"1P"==a.O||15.17(a,"19")=="2s"||15.17(a,"4C")=="1P"\',7U:"!a.3c",3c:"a.3c",2Q:"a.2Q",26:"a.26||15.1x(a,\'26\')",2g:"\'2g\'==a.O",4k:"\'4k\'==a.O",5j:"\'5j\'==a.O",54:"\'54\'==a.O",52:"\'52\'==a.O",51:"\'51\'==a.O",6d:"\'6d\'==a.O",6c:"\'6c\'==a.O",2r:\'"2r"==a.O||15.11(a,"2r")\',4t:"/4t|24|6b|2r/i.14(a.11)",3K:"15.1Y(m[3],a).K",7S:"/h\\\\d/i.14(a.11)",7R:"15.2W(15.32,G(1b){I a==1b.T;}).K"}},6a:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1u 47("^([:.#]*)("+C+"+)")],3m:G(a,c,b){H d,2b=[];1W(a&&a!=d){d=a;H f=E.1E(a,c,b);a=f.t.1p(/^\\s*,\\s*/,"");2b=b?c=f.r:E.1R(2b,f.r)}I 2b},1Y:G(t,o){9(1m t!="1M")I[t];9(o&&!o.1y)o=S;o=o||U;H d=[o],2f=[],3u;1W(t&&3u!=t){H r=[];3u=t;t=E.36(t);H l=P;H g=6k;H m=g.2S(t);9(m){H p=m[1].27();L(H i=0;d[i];i++)L(H c=d[i].1w;c;c=c.2q)9(c.1y==1&&(p=="*"||c.11.27()==p.27()))r.1a(c);d=r;t=t.1p(g,"");9(t.1g(" ")==0)6r;l=Q}J{g=/^([>+~])\\s*(\\w*)/i;9((m=g.2S(t))!=S){r=[];H p=m[2],1R={};m=m[1];L(H j=0,31=d.K;j<31;j++){H n=m=="~"||m=="+"?d[j].2q:d[j].1w;L(;n;n=n.2q)9(n.1y==1){H h=E.M(n);9(m=="~"&&1R[h])1T;9(!p||n.11.27()==p.27()){9(m=="~")1R[h]=Q;r.1a(n)}9(m=="+")1T}}d=r;t=E.36(t.1p(g,""));l=Q}}9(t&&!l){9(!t.1g(",")){9(o==d[0])d.44();2f=E.1R(2f,d);r=d=[o];t=" "+t.68(1,t.K)}J{H k=6i;H m=k.2S(t);9(m){m=[0,m[2],m[3],m[1]]}J{k=6h;m=k.2S(t)}m[2]=m[2].1p(/\\\\/g,"");H f=d[d.K-1];9(m[1]=="#"&&f&&f.3S&&!E.4a(f)){H q=f.3S(m[2]);9((E.V.1h||E.V.34)&&q&&1m q.22=="1M"&&q.22!=m[2])q=E(\'[@22="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.11(q,m[3]))?[q]:[]}J{L(H i=0;d[i];i++){H a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];9(a=="*"&&d[i].11.2p()=="5i")a="3a";r=E.1R(r,d[i].4l(a))}9(m[1]==".")r=E.4X(r,m[2]);9(m[1]=="#"){H e=[];L(H i=0;r[i];i++)9(r[i].4p("22")==m[2]){e=[r[i]];1T}r=e}d=r}t=t.1p(k,"")}}9(t){H b=E.1E(t,r);d=r=b.r;t=E.36(b.t)}}9(t)d=[];9(d&&o==d[0])d.44();2f=E.1R(2f,d);I 2f},4X:G(r,m,a){m=" "+m+" ";H c=[];L(H i=0;r[i];i++){H b=(" "+r[i].1o+" ").1g(m)>=0;9(!a&&b||a&&!b)c.1a(r[i])}I c},1E:G(t,r,h){H d;1W(t&&t!=d){d=t;H p=E.6a,m;L(H i=0;p[i];i++){m=p[i].2S(t);9(m){t=t.7O(m[0].K);m[2]=m[2].1p(/\\\\/g,"");1T}}9(!m)1T;9(m[1]==":"&&m[2]=="5V")r=E.1E(m[3],r,Q).r;J 9(m[1]==".")r=E.4X(r,m[2],h);J 9(m[1]=="["){H g=[],O=m[3];L(H i=0,31=r.K;i<31;i++){H a=r[i],z=a[E.5o[m[2]]||m[2]];9(z==S||/6C|3k|26/.14(m[2]))z=E.1x(a,m[2])||\'\';9((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1g(m[5])||O=="$="&&z.68(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1g(m[5])>=0)^h)g.1a(a)}r=g}J 9(m[1]==":"&&m[2]=="2I-46"){H e={},g=[],14=/(\\d*)n\\+?(\\d*)/.2S(m[3]=="6f"&&"2n"||m[3]=="6e"&&"2n+1"||!/\\D/.14(m[3])&&"n+"+m[3]||m[3]),3v=(14[1]||1)-0,d=14[2]-0;L(H i=0,31=r.K;i<31;i++){H j=r[i],12=j.12,22=E.M(12);9(!e[22]){H c=1;L(H n=12.1w;n;n=n.2q)9(n.1y==1)n.4U=c++;e[22]=Q}H b=P;9(3v==1){9(d==0||j.4U==d)b=Q}J 9((j.4U+d)%3v==0)b=Q;9(b^h)g.1a(j)}r=g}J{H f=E.55[m[1]];9(1m f!="1M")f=E.55[m[1]][m[2]];f=3w("P||G(a,i){I "+f+"}");r=E.2W(r,f,h)}}I{r:r,t:t}},4e:G(b,c){H d=[];H a=b[c];1W(a&&a!=U){9(a.1y==1)d.1a(a);a=a[c]}I d},2I:G(a,e,c,b){e=e||1;H d=0;L(;a;a=a[c])9(a.1y==1&&++d==e)1T;I a},5d:G(n,a){H r=[];L(;n;n=n.2q){9(n.1y==1&&(!a||n!=a))r.1a(n)}I r}});E.1j={1f:G(g,e,c,h){9(E.V.1h&&g.4j!=W)g=18;9(!c.2u)c.2u=6.2u++;9(h!=W){H d=c;c=G(){I d.16(6,1q)};c.M=h;c.2u=d.2u}H i=e.2l(".");e=i[0];c.O=i[1];H b=E.M(g,"2P")||E.M(g,"2P",{});H f=E.M(g,"2t",G(){H a;9(1m E=="W"||E.1j.4T)I a;a=E.1j.2t.16(g,1q);I a});H j=b[e];9(!j){j=b[e]={};9(g.4S)g.4S(e,f,P);J g.7N("43"+e,f)}j[c.2u]=c;6.1Z[e]=Q},2u:1,1Z:{},28:G(d,c,b){H e=E.M(d,"2P"),2L,4I;9(1m c=="1M"){H a=c.2l(".");c=a[0]}9(e){9(c&&c.O){b=c.4Q;c=c.O}9(!c){L(c 1i e)6.28(d,c)}J 9(e[c]){9(b)2E e[c][b.2u];J L(b 1i e[c])9(!a[1]||e[c][b].O==a[1])2E e[c][b];L(2L 1i e[c])1T;9(!2L){9(d.4P)d.4P(c,E.M(d,"2t"),P);J d.7M("43"+c,E.M(d,"2t"));2L=S;2E e[c]}}L(2L 1i e)1T;9(!2L){E.30(d,"2P");E.30(d,"2t")}}},1F:G(d,b,e,c,f){b=E.2h(b||[]);9(!e){9(6.1Z[d])E("*").1f([18,U]).1F(d,b)}J{H a,2L,1b=E.1n(e[d]||S),4N=!b[0]||!b[0].2M;9(4N)b.4w(6.4M({O:d,2m:e}));b[0].O=d;9(E.1n(E.M(e,"2t")))a=E.M(e,"2t").16(e,b);9(!1b&&e["43"+d]&&e["43"+d].16(e,b)===P)a=P;9(4N)b.44();9(f&&f.16(e,b)===P)a=P;9(1b&&c!==P&&a!==P&&!(E.11(e,\'a\')&&d=="4L")){6.4T=Q;e[d]()}6.4T=P}I a},2t:G(d){H a;d=E.1j.4M(d||18.1j||{});H b=d.O.2l(".");d.O=b[0];H c=E.M(6,"2P")&&E.M(6,"2P")[d.O],3q=1B.3A.2J.2O(1q,1);3q.4w(d);L(H j 1i c){3q[0].4Q=c[j];3q[0].M=c[j].M;9(!b[1]||c[j].O==b[1]){H e=c[j].16(6,3q);9(a!==P)a=e;9(e===P){d.2M();d.3p()}}}9(E.V.1h)d.2m=d.2M=d.3p=d.4Q=d.M=S;I a},4M:G(c){H a=c;c=E.1k({},a);c.2M=G(){9(a.2M)a.2M();a.7L=P};c.3p=G(){9(a.3p)a.3p();a.7K=Q};9(!c.2m&&c.65)c.2m=c.65;9(E.V.1N&&c.2m.1y==3)c.2m=a.2m.12;9(!c.4K&&c.4J)c.4K=c.4J==c.2m?c.7H:c.4J;9(c.64==S&&c.63!=S){H e=U.2V,b=U.1G;c.64=c.63+(e&&e.2R||b.2R||0);c.7E=c.7D+(e&&e.2B||b.2B||0)}9(!c.3Y&&(c.61||c.60))c.3Y=c.61||c.60;9(!c.5F&&c.5D)c.5F=c.5D;9(!c.3Y&&c.2r)c.3Y=(c.2r&1?1:(c.2r&2?3:(c.2r&4?2:0)));I c}};E.1b.1k({3W:G(c,a,b){I c=="5Y"?6.2G(c,a,b):6.N(G(){E.1j.1f(6,c,b||a,b&&a)})},2G:G(d,b,c){I 6.N(G(){E.1j.1f(6,d,G(a){E(6).5X(a);I(c||b).16(6,1q)},c&&b)})},5X:G(a,b){I 6.N(G(){E.1j.28(6,a,b)})},1F:G(c,a,b){I 6.N(G(){E.1j.1F(c,a,6,Q,b)})},7x:G(c,a,b){9(6[0])I E.1j.1F(c,a,6[0],P,b)},25:G(){H a=1q;I 6.4L(G(e){6.4H=0==6.4H?1:0;e.2M();I a[6.4H].16(6,[e])||P})},7v:G(f,g){G 4G(e){H p=e.4K;1W(p&&p!=6)2a{p=p.12}29(e){p=6};9(p==6)I P;I(e.O=="4x"?f:g).16(6,[e])}I 6.4x(4G).5U(4G)},2d:G(f){5T();9(E.3T)f.16(U,[E]);J E.3l.1a(G(){I f.16(6,[E])});I 6}});E.1k({3T:P,3l:[],2d:G(){9(!E.3T){E.3T=Q;9(E.3l){E.N(E.3l,G(){6.16(U)});E.3l=S}9(E.V.35||E.V.34)U.4P("5S",E.2d,P);9(!18.7t.K)E(18).39(G(){E("#4E").28()})}}});E.N(("7s,7r,39,7q,6n,5Y,4L,7p,"+"7n,7m,7l,4x,5U,7k,24,"+"51,7j,7i,7h,3U").2l(","),G(i,o){E.1b[o]=G(f){I f?6.3W(o,f):6.1F(o)}});H x=P;G 5T(){9(x)I;x=Q;9(E.V.35||E.V.34)U.4S("5S",E.2d,P);J 9(E.V.1h){U.7f("<7d"+"7y 22=4E 7z=Q "+"3k=//:><\\/1J>");H a=U.3S("4E");9(a)a.62=G(){9(6.2C!="1l")I;E.2d()};a=S}J 9(E.V.1N)E.4B=4j(G(){9(U.2C=="5Q"||U.2C=="1l"){4A(E.4B);E.4B=S;E.2d()}},10);E.1j.1f(18,"39",E.2d)}E.1b.1k({39:G(g,d,c){9(E.1n(g))I 6.3W("39",g);H e=g.1g(" ");9(e>=0){H i=g.2J(e,g.K);g=g.2J(0,e)}c=c||G(){};H f="4z";9(d)9(E.1n(d)){c=d;d=S}J{d=E.3a(d);f="5P"}H h=6;E.3G({1d:g,O:f,M:d,1l:G(a,b){9(b=="1C"||b=="5O")h.4o(i?E("<1s/>").3g(a.40.1p(/<1J(.|\\s)*?\\/1J>/g,"")).1Y(i):a.40);56(G(){h.N(c,[a.40,b,a])},13)}});I 6},7a:G(){I E.3a(6.5M())},5M:G(){I 6.1X(G(){I E.11(6,"2Y")?E.2h(6.79):6}).1E(G(){I 6.2H&&!6.3c&&(6.2Q||/24|6b/i.14(6.11)||/2g|1P|52/i.14(6.O))}).1X(G(i,c){H b=E(6).3i();I b==S?S:b.1c==1B?E.1X(b,G(a,i){I{2H:c.2H,1Q:a}}):{2H:c.2H,1Q:b}}).21()}});E.N("5L,5K,6t,5J,5I,5H".2l(","),G(i,o){E.1b[o]=G(f){I 6.3W(o,f)}});H B=(1u 3D).3B();E.1k({21:G(d,b,a,c){9(E.1n(b)){a=b;b=S}I E.3G({O:"4z",1d:d,M:b,1C:a,1V:c})},78:G(b,a){I E.21(b,S,a,"1J")},77:G(c,b,a){I E.21(c,b,a,"45")},76:G(d,b,a,c){9(E.1n(b)){a=b;b={}}I E.3G({O:"5P",1d:d,M:b,1C:a,1V:c})},75:G(a){E.1k(E.59,a)},59:{1Z:Q,O:"4z",2z:0,5G:"74/x-73-2Y-72",6o:Q,3e:Q,M:S},49:{},3G:G(s){H f,2y=/=(\\?|%3F)/g,1v,M;s=E.1k(Q,s,E.1k(Q,{},E.59,s));9(s.M&&s.6o&&1m s.M!="1M")s.M=E.3a(s.M);9(s.1V=="4b"){9(s.O.2p()=="21"){9(!s.1d.1t(2y))s.1d+=(s.1d.1t(/\\?/)?"&":"?")+(s.4b||"5E")+"=?"}J 9(!s.M||!s.M.1t(2y))s.M=(s.M?s.M+"&":"")+(s.4b||"5E")+"=?";s.1V="45"}9(s.1V=="45"&&(s.M&&s.M.1t(2y)||s.1d.1t(2y))){f="4b"+B++;9(s.M)s.M=s.M.1p(2y,"="+f);s.1d=s.1d.1p(2y,"="+f);s.1V="1J";18[f]=G(a){M=a;1C();1l();18[f]=W;2a{2E 18[f]}29(e){}}}9(s.1V=="1J"&&s.1L==S)s.1L=P;9(s.1L===P&&s.O.2p()=="21")s.1d+=(s.1d.1t(/\\?/)?"&":"?")+"57="+(1u 3D()).3B();9(s.M&&s.O.2p()=="21"){s.1d+=(s.1d.1t(/\\?/)?"&":"?")+s.M;s.M=S}9(s.1Z&&!E.5b++)E.1j.1F("5L");9(!s.1d.1g("8g")&&s.1V=="1J"){H h=U.4l("9U")[0];H g=U.5B("1J");g.3k=s.1d;9(!f&&(s.1C||s.1l)){H j=P;g.9R=g.62=G(){9(!j&&(!6.2C||6.2C=="5Q"||6.2C=="1l")){j=Q;1C();1l();h.3b(g)}}}h.58(g);I}H k=P;H i=18.6X?1u 6X("9P.9O"):1u 6W();i.9M(s.O,s.1d,s.3e);9(s.M)i.5C("9J-9I",s.5G);9(s.5y)i.5C("9H-5x-9F",E.49[s.1d]||"9D, 9C 9B 9A 5v:5v:5v 9z");i.5C("X-9x-9v","6W");9(s.6U)s.6U(i);9(s.1Z)E.1j.1F("5H",[i,s]);H c=G(a){9(!k&&i&&(i.2C==4||a=="2z")){k=Q;9(d){4A(d);d=S}1v=a=="2z"&&"2z"||!E.6S(i)&&"3U"||s.5y&&E.6R(i,s.1d)&&"5O"||"1C";9(1v=="1C"){2a{M=E.6Q(i,s.1V)}29(e){1v="5k"}}9(1v=="1C"){H b;2a{b=i.5s("6P-5x")}29(e){}9(s.5y&&b)E.49[s.1d]=b;9(!f)1C()}J E.5r(s,i,1v);1l();9(s.3e)i=S}};9(s.3e){H d=4j(c,13);9(s.2z>0)56(G(){9(i){i.9q();9(!k)c("2z")}},s.2z)}2a{i.9o(s.M)}29(e){E.5r(s,i,S,e)}9(!s.3e)c();I i;G 1C(){9(s.1C)s.1C(M,1v);9(s.1Z)E.1j.1F("5I",[i,s])}G 1l(){9(s.1l)s.1l(i,1v);9(s.1Z)E.1j.1F("6t",[i,s]);9(s.1Z&&!--E.5b)E.1j.1F("5K")}},5r:G(s,a,b,e){9(s.3U)s.3U(a,b,e);9(s.1Z)E.1j.1F("5J",[a,s,e])},5b:0,6S:G(r){2a{I!r.1v&&9n.9l=="54:"||(r.1v>=6N&&r.1v<9j)||r.1v==6M||E.V.1N&&r.1v==W}29(e){}I P},6R:G(a,c){2a{H b=a.5s("6P-5x");I a.1v==6M||b==E.49[c]||E.V.1N&&a.1v==W}29(e){}I P},6Q:G(r,b){H c=r.5s("9i-O");H d=b=="6K"||!b&&c&&c.1g("6K")>=0;H a=d?r.9g:r.40;9(d&&a.2V.37=="5k")6G"5k";9(b=="1J")E.5f(a);9(b=="45")a=3w("("+a+")");I a},3a:G(a){H s=[];9(a.1c==1B||a.4c)E.N(a,G(){s.1a(3f(6.2H)+"="+3f(6.1Q))});J L(H j 1i a)9(a[j]&&a[j].1c==1B)E.N(a[j],G(){s.1a(3f(j)+"="+3f(6))});J s.1a(3f(j)+"="+3f(a[j]));I s.66("&").1p(/%20/g,"+")}});E.1b.1k({1A:G(b,a){I b?6.1U({1H:"1A",2N:"1A",1r:"1A"},b,a):6.1E(":1P").N(G(){6.R.19=6.3h?6.3h:"";9(E.17(6,"19")=="2s")6.R.19="2Z"}).2D()},1z:G(b,a){I b?6.1U({1H:"1z",2N:"1z",1r:"1z"},b,a):6.1E(":3R").N(G(){6.3h=6.3h||E.17(6,"19");9(6.3h=="2s")6.3h="2Z";6.R.19="2s"}).2D()},6J:E.1b.25,25:G(a,b){I E.1n(a)&&E.1n(b)?6.6J(a,b):a?6.1U({1H:"25",2N:"25",1r:"25"},a,b):6.N(G(){E(6)[E(6).3t(":1P")?"1A":"1z"]()})},9c:G(b,a){I 6.1U({1H:"1A"},b,a)},9b:G(b,a){I 6.1U({1H:"1z"},b,a)},99:G(b,a){I 6.1U({1H:"25"},b,a)},98:G(b,a){I 6.1U({1r:"1A"},b,a)},96:G(b,a){I 6.1U({1r:"1z"},b,a)},95:G(c,a,b){I 6.1U({1r:a},c,b)},1U:G(k,i,h,g){H j=E.6D(i,h,g);I 6[j.3L===P?"N":"3L"](G(){j=E.1k({},j);H f=E(6).3t(":1P"),3y=6;L(H p 1i k){9(k[p]=="1z"&&f||k[p]=="1A"&&!f)I E.1n(j.1l)&&j.1l.16(6);9(p=="1H"||p=="2N"){j.19=E.17(6,"19");j.2U=6.R.2U}}9(j.2U!=S)6.R.2U="1P";j.3M=E.1k({},k);E.N(k,G(c,a){H e=1u E.2j(3y,j,c);9(/25|1A|1z/.14(a))e[a=="25"?f?"1A":"1z":a](k);J{H b=a.3s().1t(/^([+-]=)?([\\d+-.]+)(.*)$/),1O=e.2b(Q)||0;9(b){H d=3I(b[2]),2i=b[3]||"2T";9(2i!="2T"){3y.R[c]=(d||1)+2i;1O=((d||1)/e.2b(Q))*1O;3y.R[c]=1O+2i}9(b[1])d=((b[1]=="-="?-1:1)*d)+1O;e.3N(1O,d,2i)}J e.3N(1O,a,"")}});I Q})},3L:G(a,b){9(E.1n(a)){b=a;a="2j"}9(!a||(1m a=="1M"&&!b))I A(6[0],a);I 6.N(G(){9(b.1c==1B)A(6,a,b);J{A(6,a).1a(b);9(A(6,a).K==1)b.16(6)}})},9f:G(){H a=E.32;I 6.N(G(){L(H i=0;i<a.K;i++)9(a[i].T==6)a.6I(i--,1)}).5n()}});H A=G(b,c,a){9(!b)I;H q=E.M(b,c+"3L");9(!q||a)q=E.M(b,c+"3L",a?E.2h(a):[]);I q};E.1b.5n=G(a){a=a||"2j";I 6.N(G(){H q=A(6,a);q.44();9(q.K)q[0].16(6)})};E.1k({6D:G(b,a,c){H d=b&&b.1c==8Z?b:{1l:c||!c&&a||E.1n(b)&&b,2e:b,3J:c&&a||a&&a.1c!=8Y&&a};d.2e=(d.2e&&d.2e.1c==4W?d.2e:{8X:8W,8V:6N}[d.2e])||8T;d.3r=d.1l;d.1l=G(){E(6).5n();9(E.1n(d.3r))d.3r.16(6)};I d},3J:{6B:G(p,n,b,a){I b+a*p},5q:G(p,n,b,a){I((-38.9s(p*38.8R)/2)+0.5)*a+b}},32:[],2j:G(b,c,a){6.Y=c;6.T=b;6.1e=a;9(!c.3P)c.3P={}}});E.2j.3A={4r:G(){9(6.Y.2F)6.Y.2F.16(6.T,[6.2v,6]);(E.2j.2F[6.1e]||E.2j.2F.6z)(6);9(6.1e=="1H"||6.1e=="2N")6.T.R.19="2Z"},2b:G(a){9(6.T[6.1e]!=S&&6.T.R[6.1e]==S)I 6.T[6.1e];H r=3I(E.3C(6.T,6.1e,a));I r&&r>-8O?r:3I(E.17(6.T,6.1e))||0},3N:G(c,b,e){6.5u=(1u 3D()).3B();6.1O=c;6.2D=b;6.2i=e||6.2i||"2T";6.2v=6.1O;6.4q=6.4i=0;6.4r();H f=6;G t(){I f.2F()}t.T=6.T;E.32.1a(t);9(E.32.K==1){H d=4j(G(){H a=E.32;L(H i=0;i<a.K;i++)9(!a[i]())a.6I(i--,1);9(!a.K)4A(d)},13)}},1A:G(){6.Y.3P[6.1e]=E.1x(6.T.R,6.1e);6.Y.1A=Q;6.3N(0,6.2b());9(6.1e=="2N"||6.1e=="1H")6.T.R[6.1e]="8N";E(6.T).1A()},1z:G(){6.Y.3P[6.1e]=E.1x(6.T.R,6.1e);6.Y.1z=Q;6.3N(6.2b(),0)},2F:G(){H t=(1u 3D()).3B();9(t>6.Y.2e+6.5u){6.2v=6.2D;6.4q=6.4i=1;6.4r();6.Y.3M[6.1e]=Q;H a=Q;L(H i 1i 6.Y.3M)9(6.Y.3M[i]!==Q)a=P;9(a){9(6.Y.19!=S){6.T.R.2U=6.Y.2U;6.T.R.19=6.Y.19;9(E.17(6.T,"19")=="2s")6.T.R.19="2Z"}9(6.Y.1z)6.T.R.19="2s";9(6.Y.1z||6.Y.1A)L(H p 1i 6.Y.3M)E.1x(6.T.R,p,6.Y.3P[p])}9(a&&E.1n(6.Y.1l))6.Y.1l.16(6.T);I P}J{H n=t-6.5u;6.4i=n/6.Y.2e;6.4q=E.3J[6.Y.3J||(E.3J.5q?"5q":"6B")](6.4i,n,0,1,6.Y.2e);6.2v=6.1O+((6.2D-6.1O)*6.4q);6.4r()}I Q}};E.2j.2F={2R:G(a){a.T.2R=a.2v},2B:G(a){a.T.2B=a.2v},1r:G(a){E.1x(a.T.R,"1r",a.2v)},6z:G(a){a.T.R[a.1e]=a.2v+a.2i}};E.1b.6m=G(){H c=0,3E=0,T=6[0],5t;9(T)8L(E.V){H b=E.17(T,"2X")=="4F",1D=T.12,23=T.23,2K=T.3H,4f=1N&&3x(4s)<8J;9(T.6V){5w=T.6V();1f(5w.1S+38.33(2K.2V.2R,2K.1G.2R),5w.3E+38.33(2K.2V.2B,2K.1G.2B));9(1h){H d=E("4o").17("8H");d=(d=="8G"||E.5g&&3x(4s)>=7)&&2||d;1f(-d,-d)}}J{1f(T.5l,T.5z);1W(23){1f(23.5l,23.5z);9(35&&/^t[d|h]$/i.14(1D.37)||!4f)d(23);9(4f&&!b&&E.17(23,"2X")=="4F")b=Q;23=23.23}1W(1D.37&&!/^1G|4o$/i.14(1D.37)){9(!/^8D|1I-9S.*$/i.14(E.17(1D,"19")))1f(-1D.2R,-1D.2B);9(35&&E.17(1D,"2U")!="3R")d(1D);1D=1D.12}9(4f&&b)1f(-2K.1G.5l,-2K.1G.5z)}5t={3E:3E,1S:c}}I 5t;G d(a){1f(E.17(a,"9T"),E.17(a,"8A"))}G 1f(l,t){c+=3x(l)||0;3E+=3x(t)||0}}})();',62,616,'||||||this|||if|||||||||||||||||||||||||||||||||function|var|return|else|length|for|data|each|type|false|true|style|null|elem|document|browser|undefined||options|||nodeName|parentNode||test|jQuery|apply|css|window|display|push|fn|constructor|url|prop|add|indexOf|msie|in|event|extend|complete|typeof|isFunction|className|replace|arguments|opacity|div|match|new|status|firstChild|attr|nodeType|hide|show|Array|success|parent|filter|trigger|body|height|table|script|tbody|cache|string|safari|start|hidden|value|merge|left|break|animate|dataType|while|map|find|global||get|id|offsetParent|select|toggle|selected|toUpperCase|remove|catch|try|cur|al|ready|duration|done|text|makeArray|unit|fx|swap|split|target||pushStack|toLowerCase|nextSibling|button|none|handle|guid|now|stack|tb|jsre|timeout|inArray|scrollTop|readyState|end|delete|step|one|name|nth|slice|doc|ret|preventDefault|width|call|events|checked|scrollLeft|exec|px|overflow|documentElement|grep|position|form|block|removeData|rl|timers|max|opera|mozilla|trim|tagName|Math|load|param|removeChild|disabled|insertBefore|async|encodeURIComponent|append|oldblock|val|childNodes|src|readyList|multiFilter|color|defaultView|stopPropagation|args|old|toString|is|last|first|eval|parseInt|self|domManip|prototype|getTime|curCSS|Date|top||ajax|ownerDocument|parseFloat|easing|has|queue|curAnim|custom|innerHTML|orig|currentStyle|visible|getElementById|isReady|error|static|bind|String|which|getComputedStyle|responseText|oWidth|oHeight|on|shift|json|child|RegExp|ol|lastModified|isXMLDoc|jsonp|jquery|previousSibling|dir|safari2|el|styleFloat|state|setInterval|radio|getElementsByTagName|tr|empty|html|getAttribute|pos|update|version|input|float|runtimeStyle|unshift|mouseover|getPropertyValue|GET|clearInterval|safariTimer|visibility|clean|__ie_init|absolute|handleHover|lastToggle|index|fromElement|relatedTarget|click|fix|evt|andSelf|removeEventListener|handler|cloneNode|addEventListener|triggered|nodeIndex|unique|Number|classFilter|prevObject|selectedIndex|after|submit|password|removeAttribute|file|expr|setTimeout|_|appendChild|ajaxSettings|client|active|win|sibling|deep|globalEval|boxModel|cssFloat|object|checkbox|parsererror|offsetLeft|wrapAll|dequeue|props|lastChild|swing|handleError|getResponseHeader|results|startTime|00|box|Modified|ifModified|offsetTop|evalScript|createElement|setRequestHeader|ctrlKey|callback|metaKey|contentType|ajaxSend|ajaxSuccess|ajaxError|ajaxStop|ajaxStart|serializeArray|init|notmodified|POST|loaded|appendTo|DOMContentLoaded|bindReady|mouseout|not|removeAttr|unbind|unload|Width|keyCode|charCode|onreadystatechange|clientX|pageX|srcElement|join|outerHTML|substr|zoom|parse|textarea|reset|image|odd|even|before|quickClass|quickID|prepend|quickChild|execScript|offset|scroll|processData|uuid|contents|continue|textContent|ajaxComplete|clone|setArray|webkit|nodeValue|fl|_default|100|linear|href|speed|eq|createTextNode|throw|replaceWith|splice|_toggle|xml|colgroup|304|200|alpha|Last|httpData|httpNotModified|httpSuccess|fieldset|beforeSend|getBoundingClientRect|XMLHttpRequest|ActiveXObject|col|br|abbr|pixelLeft|urlencoded|www|application|ajaxSetup|post|getJSON|getScript|elements|serialize|clientWidth|hasClass|scr|clientHeight|write|relative|keyup|keypress|keydown|change|mousemove|mouseup|mousedown|right|dblclick|resize|focus|blur|frames|instanceof|hover|offsetWidth|triggerHandler|ipt|defer|offsetHeight|border|padding|clientY|pageY|Left|Right|toElement|Bottom|Top|cancelBubble|returnValue|detachEvent|attachEvent|substring|line|weight|animated|header|font|enabled|innerText|contains|only|size|gt|lt|uFFFF|u0128|417|inner|Height|toggleClass|removeClass|addClass|replaceAll|noConflict|insertAfter|prependTo|wrap|contentWindow|contentDocument|http|iframe|children|siblings|prevAll|nextAll|wrapInner|prev|Boolean|next|parents|maxLength|maxlength|readOnly|readonly|class|htmlFor|CSS1Compat|compatMode|compatible|borderTopWidth|ie|ra|inline|it|rv|medium|borderWidth|userAgent|522|navigator|with|concat|1px|10000|array|ig|PI|NaN|400|reverse|fast|600|slow|Function|Object|setAttribute|changed|be|can|property|fadeTo|fadeOut|getAttributeNode|fadeIn|slideToggle|method|slideUp|slideDown|action|cssText|stop|responseXML|option|content|300|th|protocol|td|location|send|cap|abort|colg|cos|tfoot|thead|With|leg|Requested|opt|GMT|1970|Jan|01|Thu|area|Since|hr|If|Type|Content|meta|specified|open|link|XMLHTTP|Microsoft|img|onload|row|borderLeftWidth|head|attributes'.split('|'),0,{});
+
+/*
+ Copyright (c) 2004-2007, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+/*
+ This is a compiled version of Dojo, built for deployment and not for
+ development. To get an editable version, please visit:
+
+ http://dojotoolkit.org
+
+ for documentation and information on getting the source.
+*/
+
+var decompressedDojo = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('if(V z=="1k"){(B(){if(V D["1o"]=="1k"){D.1o={}}if((!D["1z"])||(!1z["ca"])){D.1z={}}A cn=["rA","rz","1K","ry","rx","9f","rw","rv","ru","rt","rs","rr","rq","ro","rn","rm"];A i=0,24;1s(24=cn[i++]){if(!1z[24]){1z[24]=B(){}}}if(V D["z"]=="1k"){D.z={}}z.1W=D;A d3={im:U,rl:U,rk:"",rj:"",ri:"",rh:K,rg:U};R(A 8z in d3){if(V 1o[8z]=="1k"){1o[8z]=d3[8z]}}A jK=["rf","rd","rc","rb"];A t;1s(t=jK.3a()){z["is"+t]=U}})();z.8h=1o.8h;z.cY={jJ:0,jI:9,jH:0,jG:"",jF:2V("$ra: r9 $".1f(/[0-9]+/)[0]),2i:B(){4G(z.cY){C jJ+"."+jI+"."+jH+jG+" ("+jF+")"}}};z.d1=B(jE,jD,1V){A 2h=1V||z.1W;R(A i=0,p;2h&&(p=jE[i]);i++){2h=(p in 2h?2h[p]:(jD?2h[p]={}:1k))}C 2h};z.88=B(jC,jA,jB){A d2=jC.1A("."),p=d2.8q(),M=z.d1(d2,K,jB);C(M&&p?(M[p]=jA):1k)};z.6q=B(jz,jy,jx){C z.d1(jz.1A("."),jy,jx)};z.r8=B(jw,M){C!!z.6q(jw,U,M)};z["3u"]=B(d0){C z.1W.3u?z.1W.3u(d0):3u(d0)};z.ia=B(jv,cZ,cX){A 8y="r7: "+jv;if(cZ){8y+=" "+cZ}if(cX){8y+=" -- r6 be r5 in cY: "+cX}1z.1K(8y)};z.r4=B(ju,cW){A cV="r3: "+ju+" -- r2 r1 4F r0 qZ qY.";if(cW){cV+=" "+cW}1z.1K(cV)};(B(){A cR={53:{},6p:0,1h:{},8k:{z:{1p:"z",1Z:"."},cU:{1p:"cU",1Z:"../qX/cU"},cT:{1p:"cT",1Z:"cT"}},cN:B(cS){A mp=D.8k;C jp(mp[cS]&&mp[cS].1Z)},jk:B(8x){A mp=D.8k;if(D.cN(8x)){C mp[8x].1Z}C 8x},8v:[],6t:U,56:[],8t:[],8u:U};R(A cQ in cR){z[cQ]=cR[cQ]}})();z.jg=B(8w,cP,cb){A 1g=(((8w.2s(0)=="/"||8w.1f(/^\\w+:/)))?"":D.51)+8w;if(1o.jt&&z.c8){1g+="?"+67(1o.jt).2f(/\\W+/g,"")}1u{C!cP?D.cO(1g,cb):D.jq(1g,cP,cb)}1y(e){1z.1K(e);C U}};z.cO=B(1g,cb){if(D.8v[1g]){C K}A 6u=D.iR(1g,K);if(!6u){C U}D.8v[1g]=K;D.8v.Y(1g);if(cb){6u="("+6u+")"}A jr=z["3u"](6u+"\\r\\n//@ qW="+1g);if(cb){cb(jr)}C K};z.jq=B(1g,jo,cb){A ok=U;1u{ok=D.cO(1g,cb)}1y(e){1z.1K("qV je ",1g," 4G 9f: ",e)}C jp(ok&&D.53[jo])};z.6m=B(){D.8u=K;D.6t=K;A 57=D.56;D.56=[];R(A x=0;x<57.G;x++){57[x]()}D.8u=U;if(z.6t&&z.6p==0&&D.56.G>0){z.8s()}};z.ck=B(){A 57=D.8t;1s(57.G){(57.8q())()}};z.qU=B(M,jn){A d=z;if(P.G==1){d.56.Y(M)}I{if(P.G>1){d.56.Y(B(){M[jn]()})}}if(d.6t&&d.6p==0&&!d.8u){d.8s()}};z.dW=B(M,jm){A d=z;if(P.G==1){d.8t.Y(M)}I{if(P.G>1){d.8t.Y(B(){M[jm]()})}}};z.iM=B(){if(D.6t){C}if(D.6p>0){1z.1K("qT qS in qR!");C}z.8s()};z.8s=B(){if(V 5c=="8b"||(1o["qQ"]&&z.2M)){5c("z.6m();",0)}I{z.6m()}};z.cF=B(jl){A 4v=jl.1A(".");R(A i=4v.G;i>0;i--){A 8r=4v.2w(0,i).22(".");if((i==1)&&!D.cN(8r)){4v[0]="../"+4v[0]}I{A cM=D.jk(8r);if(cM!=8r){4v.3S(0,i,cM);3f}}}C 4v};z.jj=U;z.8m=B(2T,qP,55){55=D.jj||55;A 54=D.53[2T];if(54){C 54}A cL=2T.1A(".");A 3L=D.cF(2T);A jh=((3L[0].2s(0)!="/")&&!3L[0].1f(/^\\w+:/));A ji=3L[3L.G-1];A 3m;if(ji=="*"){2T=cL.2w(0,-1).22(".");3L.8q();3m=3L.22("/")+"/"+(1o["qO"]||"qN")+".js";if(jh&&3m.2s(0)=="/"){3m=3m.2w(1)}}I{3m=3L.22("/")+".js";2T=cL.22(".")}A jf=(!55)?2T:L;A ok=D.jg(3m,jf);if((!ok)&&(!55)){2m S 1O("qM 3O 4E \'"+2T+"\'; 72 qL \'"+3m+"\'")}if((!55)&&(!D["qK"])){54=D.53[2T];if(!54){2m S 1O("qJ \'"+2T+"\' is 3O qI a8 je \'"+3m+"\'")}}C 54};z.8c=z.8m;z.1Q=B(cK){A cJ=cK+"";A 8p=cJ;A 6s=cK.1A(/\\./);if(6s[6s.G-1]=="*"){6s.8q();8p=6s.22(".")}A 8o=z.6q(8p,K);D.53[cJ]=8o;D.53[8p]=8o;C 8o};z.qH=B(8n){A jd=8n["qG"]||[];A cI=jd.3U(8n[z.j4]||8n["aY"]||[]);R(A x=0;x<cI.G;x++){A 8l=cI[x];if(8l.1P==4e){z.8m.14(z,8l)}I{z.8m(8l)}}};z.jb=B(jc,qF){if(jc===K){A cH=[];R(A i=1;i<P.G;i++){cH.Y(P[i])}z.8c.14(z,cH)}};z.qE=z.jb;z.io=B(cG,ja){D.8k[cG]={1p:cG,1Z:ja}};z.qD=B(qC,qB,qA,qz){z.8c("z.j9");z.j9.qy.14(z.qx,P)};(B(){A j7=S 9G("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?$");A j6=S 9G("^((([^:]+:)?([^@]+))@)?([^:]*)(:([0-9]+))?$");z.4r=B(){A n=L;A 1V=P;A 1g=1V[0];R(A i=1;i<1V.G;i++){if(!1V[i]){6c}A 1t=S z.4r(1V[i]+"");A 4u=S z.4r(1g+"");if((1t.28=="")&&(!1t.4t)&&(!1t.3l)&&(!1t.1r)){if(1t.52!=n){4u.52=1t.52}1t=4u}I{if(!1t.4t){1t.4t=4u.4t;if(!1t.3l){1t.3l=4u.3l;if(1t.28.2s(0)!="/"){A j8=4u.28.21(0,4u.28.31("/")+1)+1t.28;A 1X=j8.1A("/");R(A j=0;j<1X.G;j++){if(1X[j]=="."){if(j==1X.G-1){1X[j]=""}I{1X.3S(j,1);j--}}I{if(j>0&&!(j==1&&1X[0]=="")&&1X[j]==".."&&1X[j-1]!=".."){if(j==(1X.G-1)){1X.3S(j,1);1X[j-1]=""}I{1X.3S(j-1,2);j-=2}}}}1t.28=1X.22("/")}}}}1g="";if(1t.4t){1g+=1t.4t+":"}if(1t.3l){1g+="//"+1t.3l}1g+=1t.28;if(1t.1r){1g+="?"+1t.1r}if(1t.52){1g+="#"+1t.52}}D.1g=1g.2i();A r=D.1g.1f(j7);D.4t=r[2]||(r[1]?"":n);D.3l=r[4]||(r[3]?"":n);D.28=r[5];D.1r=r[7]||(r[6]?"":n);D.52=r[9]||(r[8]?"":n);if(D.3l!=n){r=D.3l.1f(j6);D.8X=r[3]||n;D.8W=r[4]||n;D.qw=r[5];D.qv=r[7]||n}};z.4r.1C.2i=B(){C D.1g}})();z.qu=B(j5,2E){A 2B=z.cF(j5).22("/");if(!2B){C L}if(2B.31("/")!=2B.G-1){2B+="/"}A cE=2B.T(":");if(2B.2s(0)!="/"&&(cE==-1||cE>2B.T("/"))){2B=z.51+2B}C S z.4r(2B,2E)};if(V 26!="1k"){z.c8=K;z.j4="qt";(B(){A d=z;if(1q&&1q.4I){A 8j=1q.4I("ak");A j3=/z(\\.qs)?\\.js([\\?\\.]|$)/i;R(A i=0;i<8j.G;i++){A 4X=8j[i].5t("4X");if(!4X){6c}A m=4X.1f(j3);if(m){if(!1o["51"]){1o["51"]=4X.21(0,m.hK)}A cD=8j[i].5t("1o");if(cD){A cC=3u("({ "+cD+" })");R(A x in cC){1o[x]=cC[x]}}3f}}}d.51=1o["51"];A n=cq;A 8i=n.iL;A 4Z=n.qr;A 6r=2k(4Z);d.2M=(8i.T("qq")>=0)?6r:0;d.6B=(4Z.T("qo")>=0)||(4Z.T("j2")>=0)?6r:0;d.3o=(4Z.T("j2")>=0)?6r:0;A j1=8i.T("qn");d.gu=d.7B=((j1>=0)&&(!d.6B))?6r:0;d.j0=0;d.1l=0;d.iV=0;1u{if(d.7B){d.j0=2k(8i.1A("qm/")[1].1A(" ")[0])}if((1q.gx)&&(!d.2M)){d.1l=2k(4Z.1A("qk ")[1].1A(";")[0])}}1y(e){}if(z.1l&&(26.8f.cu==="9q:")){1o.iT=K}d.iX=B(){A 2A;A qj;A cB=d.6q("cz.cy");if(cB){C cB}if(V iZ!="1k"){2A=S iZ()}I{if(d.1l){1u{2A=S 9j("qi.qh")}1y(e){}}I{if(cq.qg["8Z/x-iY"]){2A=1q.a9("8b");2A.cA("Z","8Z/x-iY");2A.cA("3n",0);2A.cA("58",0);2A.1c.gq="7C";1q.5K.4c(2A)}}}if(!2A){C L}z.88("cz.cy.qf",2A);C z.6q("cz.cy")};A iW=d.iX();if(iW){d.iV=K}A cm=1q["aX"];d.qe=(cm=="aW")||(cm=="gr")||(d.1l<6);d.8h=1o.8h||(d.1l?n.qd:n.qc).1M();d.qb=1z.1K;d.cx=["iU.8g","em.8g","iU.8g.4.0"];d.9b=B(){A 4s=L;A cv=L;if(!z.1l||!1o.iT){1u{4s=S qa()}1y(e){}}if(!4s){R(A i=0;i<3;++i){A cw=z.cx[i];1u{4s=S 9j(cw)}1y(e){cv=e}if(4s){z.cx=[cw];3f}}}if(!4s){2m S 1O("8g 3O q9: "+cv)}C 4s};d.8Y=B(iS){A 4Y=iS.3N||0;C((4Y>=q8)&&(4Y<q7))||(4Y==q6)||(4Y==q5)||(!4Y&&(8f.cu=="9q:"||8f.cu=="q4:"))};A cs=1q.4I("q3");A iQ=(cs&&cs.G>0);d.iR=B(1g,iP){A 3K=D.9b();if(!iQ&&z.4r){1g=(S z.4r(26.8f,1g)).2i()}3K.dL("dD",1g,U);1u{3K.dI(L);if(!d.8Y(3K)){A 1G=1O("q2 4F 4E "+1g+" 3N:"+3K.3N);1G.3N=3K.3N;1G.2G=3K.2G;2m 1G}}1y(e){if(iP){C L}2m e}C 3K.2G}})();z.iO=U;z.6o=B(e){z.iO=K;A cr=(e&&e.Z)?e.Z.1M():"4E";if(P.2O.iN||(cr!="q1"&&cr!="4E")){C}P.2O.iN=K;if(V z["8e"]!="1k"){dX(z.8e);63 z.8e}if(z.6p==0){z.iM()}};if(1q.66){if(z.2M||(z.7B&&(1o["q0"]===K))){1q.66("pZ",z.6o,L)}26.66("4E",z.6o,L)}if(/(pY|pX)/i.6Z(cq.iL)){z.8e=dN(B(){if(/6m|iJ/.6Z(1q.6F)){z.6o()}},10)}(B(){A 3g=26;A 8d=B(cp,fp){A iK=3g[cp]||B(){};3g[cp]=B(){fp.14(3g,P);iK.14(3g,P)}};if(z.1l){1q.fJ("<iI"+"iH pW 4X=\\"//:\\" "+"pV=\\"if(D.6F==\'iJ\'){z.6o();}\\">"+"</iI"+"iH>");A co=K;8d("iG",B(){3g.5c(B(){co=U},0)});8d("pU",B(){if(co){z.ck()}});1u{1q.pT.2P("v","pS:pR-pQ-pP:pO");1q.pN().pM("v\\\\:*","pL:2E(#aY#pK)")}1y(e){}}I{8d("iG",B(){z.ck()})}})();z.pJ=B(){};z.1e=26["1q"]||L;z.3E=B(){C z.1e.3E||z.1e.4I("3E")[0]};z.ch=B(iF,iE){z.1W=iF;z.1e=iE};z.cf=B(4q,6n,iD){if((6n)&&((V 4q=="3c")||(4q 1N 67))){4q=6n[4q]}C(6n?4q.14(6n,iD||[]):4q())};z.pI=B(cj,iC,iB,iA){A cg;A iz=z.1W;A iy=z.1e;1u{z.ch(cj,cj.1q);cg=z.cf(iC,iB,iA)}ir{z.ch(iz,iy)}C cg};z.pH=B(ix,iw,iv,iu){A ce;A ip=z.1e;1u{z.1e=ix;ce=z.cf(iw,iv,iu)}ir{z.1e=ip}C ce};if(1o["cd"]){R(A cc in 1o["cd"]){z.io(cc,1o["cd"][cc])}}}if(1o.im){if(!1z.ca){z.8c("z.pG.ca")}}}if(!z.1h["z.X.c9"]){z.1h["z.X.c9"]=K;z.1Q("z.X.c9");z.1R=B(it){C(V it=="3c"||it 1N 67)};z.2l=B(it){C(it&&it 1N 4e||V it=="6a"||((V z["1H"]!="1k")&&(it 1N z.1H)))};if(z.c8&&z.3o){z.1Y=B(it){if((V(it)=="B")&&(it=="[8b 1H]")){C U}C(V it=="B"||it 1N bI)}}I{z.1Y=B(it){C(V it=="B"||it 1N bI)}}z.ib=B(it){if(V it=="1k"){C U}C(it===L||V it=="8b"||z.2l(it)||z.1Y(it))};z.pF=B(it){A d=z;if((!it)||(V it=="1k")){C U}if(d.1R(it)){C U}if(d.1Y(it)){C U}if(d.2l(it)){C K}if((it.5w)&&(it.5w.1M()=="3R")){C U}if(pE(it.G)){C K}C U};z.pD=B(it){if(!it){C U}C!z.1Y(it)&&/\\{\\s*\\[il 5h\\]\\s*\\}/.6Z(67(it))};z.c7=B(M,4W){A 8a={};R(A x in 4W){if((V 8a[x]=="1k")||(8a[x]!=4W[x])){M[x]=4W[x]}}if(z.1l){A p=4W.2i;if((V(p)=="B")&&(p!=M.2i)&&(p!=8a.2i)&&(p!="\\pC 2i() {\\n [il 5h]\\n}\\n")){M.2i=4W.2i}}C M};z.1x=B(M,pB){R(A i=1,l=P.G;i<l;i++){z.c7(M,P[i])}C M};z.4M=B(c6,pA){R(A i=1,l=P.G;i<l;i++){z.c7(c6.1C,P[i])}C c6};z.ig=B(c5,89){A ij=z.4d(P,2);A ik=z.1R(89);C B(){A ih=z.4d(P);A f=(ik?(c5||z.1W)[89]:89);C(f)&&(f.14(c5||D,ij.3U(ih)))}};z.2p=B(2z,3k){if(P.G>2){C z.ig.14(z,P)}if(!3k){3k=2z;2z=L}if(z.1R(3k)){2z=2z||z.1W;if(!2z[3k]){2m(["z.2p: ie[\\"",3k,"\\"] is L (ie=\\"",2z,"\\")"].22(""))}C B(){C 2z[3k].14(2z,P||[])}}I{C(!2z?3k:B(){C 3k.14(2z,P||[])})}};z.6j=B(M,c3){B c4(){};c4.1C=M;A c2=S c4();if(c3){z.1x(c2,c3)}C c2};z.7X=B(pz){A Q=[L];C z.2p.14(z,Q.3U(z.4d(P)))};z.4d=B(M,ic){A Q=[];R(A x=ic||0;x<M.G;x++){Q.Y(M[x])}C Q};z.c1=B(o){if(!o){C o}if(z.2l(o)){A r=[];R(A i=0;i<o.G;++i){r.Y(z.c1(o[i]))}C r}I{if(z.ib(o)){if(o.2t&&o.a7){C o.a7(K)}I{A r=S o.1P();R(A i in o){if(!(i in r)||r[i]!=o[i]){r[i]=z.c1(o[i])}}C r}}}C o};z.7g=B(2H){C 2H.2f(/^\\s\\s*/,"").2f(/\\s\\s*$/,"")}}if(!z.1h["z.X.2r"]){z.1h["z.X.2r"]=K;z.1Q("z.X.2r");z.2r=B(6l,4p,3j){if(z.1Y(3j)||(P.G>3)){z.ia("z.2r: R 9P \'"+6l+"\' py pw B as \'1P\' pv pu of as a pt i3.","","1.0");A c=3j;3j=P[3]||{};3j.1P=c}A dd=P.2O,4V=L;if(z.2l(4p)){4V=4p;4p=4V.3a()}if(4V){R(A i=0,m;i<4V.G;i++){m=4V[i];if(!m){2m("ps #"+i+" 4F pr of "+6l+" is L. pq\'s pp a po pl is 3O 6m.")}4p=dd.6j(4p,m)}}A i9=(3j||0).1P,6k=dd.6j(4p),fn;R(A i in 3j){if(z.1Y(fn=3j[i])&&(!0[i])){fn.i4=i}}z.4M(6k,{4o:6l,bY:i9,bZ:L},3j||0);6k.1C.1P=6k;C z.88(6l,6k)};z.1x(z.2r,{6j:B(c0,i8){A bp=(c0||0).1C,mp=(i8||0).1C;A 2S=z.2r.i7();z.1x(2S,{84:bp,1x:mp});if(c0){2S.1C=z.6j(bp)}z.4M(2S,z.2r.i6,mp||0,{bY:L});2S.1C.1P=2S;2S.1C.4o=(bp||0).4o+"pk"+(mp||0).4o;z.88(2S.1C.4o,2S);C 2S},i7:B(){C B(){D.i5(P)}},i6:{i5:B(86){A c=86.2O,s=c.84,ct=s&&s.1P,m=c.1x,87=m&&m.1P,a=86,ii,fn;if(a[0]){if((fn=a[0]["bZ"])){a=fn.14(D,a)||a}}if(fn=c.1C.bZ){a=fn.14(D,a)||a}if(ct&&ct.14){ct.14(D,a)}if(87&&87.14){87.14(D,a)}if(ii=c.1C.bY){ii.14(D,86)}},bX:B(85){A c=D.1P,p,m;1s(c){p=c.84;m=c.1x;if(m==85||(m 1N 85.1P)){C p}if(m&&(m=m.bX(85))){C m}c=p&&p.1P}},6h:B(83,82,bW,6i){A p=bW,c,m,f;do{c=p.1P;m=c.1x;if(m&&(m=D.6h(83,82,m,6i))){C m}if((f=p[83])&&(6i==(f==82))){C p}p=c.84}1s(p);C!6i&&(p=D.bX(bW))&&D.6h(83,82,p,6i)},bU:B(2R,4U,bV){A a=P;if(!z.1R(a[0])){bV=4U;4U=2R;2R=4U.2O.i4}A c=4U.2O,p=D.1P.1C,a=bV||4U,fn,mp;if(D[2R]!=c||p[2R]==c){mp=D.6h(2R,c,p,K);if(!mp){2m(D.4o+": 1p i3 (\\""+2R+"\\") 4F bU pj 1f 2O (2r.js)")}p=D.6h(2R,c,mp,U)}fn=p&&p[2R];if(!fn){1z.1K(mp.4o+": no bU \\""+2R+"\\" ph pg (2r.js)");C}C fn.14(D,a)}}})}if(!z.1h["z.X.2c"]){z.1h["z.X.2c"]=K;z.1Q("z.X.2c");z.3i={i2:B(){C B(){A ap=4e.1C,c=P.2O,ls=c.2b,t=c.5V;A r=t&&t.14(D,P);R(A i in ls){if(!(i in ap)){ls[i].14(D,P)}}C r}},2P:B(6g,bT,i1){6g=6g||z.1W;A f=6g[bT];if(!f||!f.2b){A d=z.3i.i2();d.5V=f;d.2b=[];f=6g[bT]=d}C f.2b.Y(i1)},3J:B(i0,hZ,bS){A f=(i0||z.1W)[hZ];if(f&&f.2b&&bS--){63 f.2b[bS]}}};z.2c=B(M,pd,pc,pa,p9){A a=P,F=[],i=0;F.Y(z.1R(a[0])?L:a[i++],a[i++]);A a1=a[i+1];F.Y(z.1R(a1)||z.1Y(a1)?a[i++]:L,a[i++]);R(A l=a.G;i<l;i++){F.Y(a[i])}C z.by.14(D,F)};z.by=B(M,bR,hY,hX){A l=z.3i,h=l.2P(M,bR,z.2p(hY,hX));C[M,bR,h,l]};z.p8=B(6f){if(6f&&6f[0]!==1k){z.bv.14(D,6f);63 6f[0]}};z.bv=B(M,hV,hU,hW){hW.3J(M,hV,hU)};z.80={};z.p7=B(bQ,hT,hS){C[bQ,z.3i.2P(z.80,bQ,z.2p(hT,hS))]};z.p6=B(81){if(81){z.3i.3J(z.80,81[0],81[1])}};z.hQ=B(hR,F){A f=z.80[hR];(f)&&(f.14(D,F||[]))};z.p5=B(hP,M,bP){A pf=B(){z.hQ(hP,P)};C(bP)?z.2c(M,bP,pf):z.2c(M,pf)}}if(!z.1h["z.X.30"]){z.1h["z.X.30"]=K;z.1Q("z.X.30");z.30=B(hO){D.bM=[];D.id=D.hN();D.2y=-1;D.3M=0;D.4R=[L,L];D.bO=hO;D.7Z=U};z.4M(z.30,{hN:(B(){A n=1;C B(){C n++}})(),4C:B(){if(D.2y==-1){if(D.bO){D.bO(D)}I{D.7Z=K}if(D.2y==-1){A 1G=S 1O("30 p4");1G.dY="4C";D.5i(1G)}}I{if((D.2y==0)&&(D.4R[0]1N z.30)){D.4R[0].4C()}}},7V:B(1v){D.2y=((1v 1N 1O)?1:0);D.4R[D.2y]=1v;D.7U()},bN:B(){if(D.2y!=-1){if(!D.7Z){2m S 1O("p3 p2!")}D.7Z=U;C}},dM:B(1v){D.bN();D.7V(1v)},5i:B(1v){D.bN();if(!(1v 1N 1O)){1v=S 1O(1v)}D.7V(1v)},9e:B(cb,4T){A 6e=z.2p(cb,4T);if(P.G>2){6e=z.7X(6e,P,2)}C D.5k(6e,6e)},ef:B(cb,4T){A 7Y=z.2p(cb,4T);if(P.G>2){7Y=z.7X(7Y,P,2)}C D.5k(7Y,L)},ed:B(cb,4T){A 7W=z.2p(cb,4T);if(P.G>2){7W=z.7X(7W,P,2)}C D.5k(L,7W)},5k:B(cb,eb){D.bM.Y([cb,eb]);if(D.2y>=0){D.7U()}C D},7U:B(){A bL=D.bM;A 4n=D.2y;A 1v=D.4R[4n];A 4S=D;A cb=L;1s((bL.G>0)&&(D.3M==0)){A f=bL.3a()[4n];if(!f){6c}1u{1v=f(1v);4n=((1v 1N 1O)?1:0);if(1v 1N z.30){cb=B(1v){4S.7V(1v);4S.3M--;if((4S.3M==0)&&(4S.2y>=0)){4S.7U()}};D.3M++}}1y(1G){1z.1K(1G);4n=1;1v=1G}}D.2y=4n;D.4R[4n]=1v;if((cb)&&(D.3M)){1v.9e(cb)}}})}if(!z.1h["z.X.2e"]){z.1h["z.X.2e"]=K;z.1Q("z.X.2e");z.5m=B(2e){1u{C 3u("("+2e+")")}1y(e){1z.1K(e);C 2e}};z.bK=B(2H){C("\\""+2H.2f(/(["\\\\])/g,"\\\\$1")+"\\"").2f(/[\\f]/g,"\\\\f").2f(/[\\b]/g,"\\\\b").2f(/[\\n]/g,"\\\\n").2f(/[\\t]/g,"\\\\t").2f(/[\\r]/g,"\\\\r")};z.hM="\\t";z.eq=B(it,4l,4P){4P=4P||"";A 4k=(4l?4P+z.hM:"");A 6b=(4l?"\\n":"");A 4Q=V(it);if(4Q=="1k"){C"1k"}I{if((4Q=="4J")||(4Q=="p1")){C it+""}I{if(it===L){C"L"}}}if(4Q=="3c"){C z.bK(it)}A 6d=P.2O;A 4m;if(V it.hL=="B"){4m=it.hL();if(it!==4m){C 6d(4m,4l,4k)}}if(V it.2e=="B"){4m=it.2e();if(it!==4m){C 6d(4m,4l,4k)}}if(z.2l(it)){A 1v=[];R(A i=0;i<it.G;i++){A 1U=6d(it[i],4l,4k);if(V(1U)!="3c"){1U="1k"}1v.Y(6b+4k+1U)}C"["+1v.22(", ")+6b+4P+"]"}if(4Q=="B"){C L}A bJ=[];R(A 1i in it){A 7T;if(V(1i)=="4J"){7T="\\""+1i+"\\""}I{if(V(1i)=="3c"){7T=z.bK(1i)}I{6c}}1U=6d(it[1i],4l,4k);if(V(1U)!="3c"){6c}bJ.Y(6b+4k+7T+": "+1U)}C"{"+bJ.22(", ")+6b+4P+"}"}}if(!z.1h["z.X.6a"]){z.1h["z.X.6a"]=K;z.1Q("z.X.6a");(B(){A 69=B(Q,M,cb){C[(z.1R(Q)?Q.1A(""):Q),(M||z.1W),(z.1R(cb)?(S bI("1m","hK","6a",cb)):cb)]};z.1x(z,{T:B(bH,hH,hI,hJ){A i=0,2q=1,1d=bH.G;if(hJ){i=1d-1;2q=1d=-1}R(i=hI||i;i!=1d;i+=2q){if(bH[i]==hH){C i}}C-1},31:B(hG,hF,hE){C z.T(hG,hF,hE,K)},1n:B(Q,hD,M){if(!Q||!Q.G){C}A 1I=69(Q,M,hD);Q=1I[0];R(A i=0,l=1I[0].G;i<l;i++){1I[2].2d(1I[1],Q[i],i,Q)}},bE:B(bF,Q,hC,M){A 1I=69(Q,M,hC);Q=1I[0];R(A i=0,l=Q.G;i<l;i++){A bG=!!1I[2].2d(1I[1],Q[i],i,Q);if(bF^bG){C bG}}C bF},ah:B(Q,hB,hA){C D.bE(K,Q,hB,hA)},ag:B(Q,hz,hy){C D.bE(U,Q,hz,hy)},23:B(Q,7t,M){A 1I=69(Q,M,7t);Q=1I[0];A bD=((P[3])?(S P[3]()):[]);R(A i=0;i<Q.G;++i){bD.Y(1I[2].2d(1I[1],Q[i],i,Q))}C bD},3T:B(Q,hx,M){A 1I=69(Q,M,hx);Q=1I[0];A bC=[];R(A i=0;i<Q.G;i++){if(1I[2].2d(1I[1],Q[i],i,Q)){bC.Y(Q[i])}}C bC}})})()}if(!z.1h["z.X.1J"]){z.1h["z.X.1J"]=K;z.1Q("z.X.1J");z.1J=B(bB){if(bB){D.hw(bB)}};z.1J.hp={p0:[0,0,0],oZ:[60,60,60],oY:[2j,2j,2j],oX:[1T,1T,1T],oW:[2j,0,0],oV:[1T,0,0],oU:[2j,0,2j],oT:[1T,0,1T],oS:[0,2j,0],oR:[0,1T,0],oQ:[2j,2j,0],oP:[1T,1T,0],oO:[0,0,2j],oN:[0,0,1T],oM:[0,2j,2j],oL:[0,1T,1T]};z.4M(z.1J,{r:1T,g:1T,b:1T,a:1,bz:B(r,g,b,a){A t=D;t.r=r;t.g=g;t.b=b;t.a=a},hw:B(2Q){A d=z;if(d.1R(2Q)){d.hq(2Q,D)}I{if(d.2l(2Q)){d.7P(2Q,D)}I{D.bz(2Q.r,2Q.g,2Q.b,2Q.a);if(!(2Q 1N d.1J)){D.7Q()}}}C D},7Q:B(){C D},oK:B(){A t=D;C[t.r,t.g,t.b]},oJ:B(){A t=D;C[t.r,t.g,t.b,t.a]},oI:B(){A Q=z.23(["r","g","b"],B(x){A s=D[x].2i(16);C s.G<2?"0"+s:s},D);C"#"+Q.22("")},8F:B(hv){A t=D,7S=t.r+", "+t.g+", "+t.b;C(hv?"hs("+7S+", "+t.a:"7S("+7S)+")"},2i:B(){C D.8F(K)}});z.d8=B(bA,1d,hu,M){A d=z,t=M||S z.1J();d.1n(["r","g","b","a"],B(x){t[x]=bA[x]+(1d[x]-bA[x])*hu;if(x!="a"){t[x]=2Y.oH(t[x])}});C t.7Q()};z.ho=B(ht,M){A m=ht.1M().1f(/^hs?\\(([\\s\\.,0-9]+)\\)/);C m&&z.7P(m[1].1A(/\\s*,\\s*/),M)};z.hn=B(4j,M){A d=z,t=M||S d.1J(),7R=(4j.G==4)?4:8,hr=(1<<7R)-1;4j=2V("oG"+4j.3b(1));if(2L(4j)){C L}d.1n(["b","g","r"],B(x){A c=4j&hr;4j>>=7R;t[x]=7R==4?17*c:c});t.a=1;C t};z.7P=B(a,M){A t=M||S z.1J();t.bz(2V(a[0]),2V(a[1]),2V(a[2]),2V(a[3]));if(2L(t.a)){t.a=1}C t.7Q()};z.hq=B(2H,M){A a=z.1J.hp[2H];C a&&z.7P(a,M)||z.ho(2H,M)||z.hn(2H,M)}}if(!z.1h["z.X"]){z.1h["z.X"]=K;z.1Q("z.X")}if(!z.1h["z.X.5Z"]){z.1h["z.X.5Z"]=K;z.1Q("z.X.5Z");(B(){A 1j=z.b2={2P:B(E,68,fp){if(!E){C}68=1j.4O(68);fp=1j.7G(68,fp);E.66(68,fp,U);C fp},3J:B(E,hm,hl){(E)&&(E.oF(1j.4O(hm),hl,U))},4O:B(1p){C(1p.2w(0,2)=="on"?1p.2w(2):1p)},7G:B(1p,fp){C(1p!="4b"?fp:B(e){C fp.2d(D,1j.4i(e,D))})},4i:B(H,oE){4w(H.Z){2X"4b":1j.7K(H);3f}C H},7K:B(H){H.oD=(H.3h?67.oC(H.3h):"")}};z.oB=B(H,hk){C 1j.4i(H,hk)};z.gY=B(H){H.7J();H.7I()};A 7O=z.3i;z.by=B(M,bx,hh,hg,hi){A hj=M&&(M.2t||M.oA||M.66);A bw=!hj?0:(!hi?1:2),l=[z.3i,1j,7O][bw];A h=l.2P(M,bx,z.2p(hh,hg));C[M,bx,h,bw]};z.bv=B(M,he,hd,hf){([z.3i,1j,7O][hf]).3J(M,he,hd)};z.5W={oz:8,gV:9,oy:12,ox:13,ow:16,ov:17,ou:18,gG:19,ot:20,os:27,or:32,b5:33,b4:34,gE:35,gF:36,b7:37,b9:38,b6:39,b8:40,gD:45,8S:46,oq:47,oo:91,om:92,ol:93,oj:96,oi:97,oh:98,og:99,oe:6D,od:oc,ob:oa,o9:o8,o7:o6,o5:o4,o3:bi,o2:o1,o0:nZ,nY:nX,nW:nV,nU:bk,gS:nT,gR:nS,gQ:nR,gP:nQ,gO:nP,gN:nO,gM:nN,gL:nM,gK:nL,gJ:nK,gI:nJ,gH:nI,nH:nG,nF:nE,nD:nC,gB:nB,gC:nA};if(z.1l){bf=B(e,5h){1u{C(e.3I=5h)}1y(e){C 0}};A 61=z.3i;if(!1o.nz){7O=61=z.gy={b3:[],2P:B(64,bu,hc){64=64||z.1W;A f=64[bu];if(!f||!f.2b){A d=z.gz();d.5V=f&&(7M.Y(f)-1);d.2b=[];f=64[bu]=d}C f.2b.Y(7M.Y(hc)-1)},3J:B(hb,ha,7N){A f=(hb||z.1W)[ha],l=f&&f.2b;if(f&&l&&7N--){63 7M[l[7N]];63 l[7N]}}};A 7M=61.b3}z.1x(1j,{2P:B(E,62,fp){if(!E){C}62=1j.4O(62);if(62=="h3"){A kd=E.bs;if(!kd||!kd.2b||!kd.h9){1j.2P(E,"bs",1j.h4);E.bs.h9=K}}C 61.2P(E,62,1j.7G(fp))},3J:B(E,h8,h7){61.3J(E,1j.4O(h8),h7)},4O:B(7L){C(7L.2w(0,2)!="on"?"on"+7L:7L)},ny:B(){},4i:B(H,4N){if(!H){A w=(4N)&&((4N.aD||4N.1q||4N).nx)||26;H=w.5Z}if(!H){C(H)}H.5V=H.br;H.bh=(4N||H.br);H.nw=H.nv;H.nu=H.nr;A bq=H.br,1e=(bq&&bq.aD)||1q;A bn=((z.1l<6)||(1e["aX"]=="aW"))?1e.3E:1e.5K;A bm=z.aB();H.nq=H.np+z.aH(bn.5I||0)-bm.x;H.nn=H.nm+(bn.5G||0)-bm.y;if(H.Z=="fk"){H.h6=H.nl}if(H.Z=="fj"){H.h6=H.nk}H.7I=1j.bc;H.7J=1j.ba;C 1j.h5(H)},h5:B(H){4w(H.Z){2X"4b":A c=("3h"in H?H.3h:H.3I);if(c==10){c=0;H.3I=13}I{if(c==13||c==27){c=0}I{if(c==3){c=99}}}H.3h=c;1j.7K(H);3f}C H},gZ:{bi:42,bk:47,h2:59,nj:43,ni:44,nh:45,ng:46,nf:47,60:96,h1:91,nb:92,na:93,h0:39},h4:B(H){A kp=H.bh.h3;if(!kp||!kp.2b){C}A k=H.3I;A bj=(k!=13)&&(k!=32)&&(k!=27)&&(k<48||k>90)&&(k<96||k>bk)&&(k<h2||k>60)&&(k<h1||k>h0);if(bj||H.5Y){A c=(bj?0:k);if(H.5Y){if(k==3||k==13){C}I{if(c>95&&c<bi){c-=48}I{if((!H.5X)&&(c>=65&&c<=90)){c+=32}I{c=1j.gZ[c]||c}}}}A 2x=1j.7H(H,{Z:"4b",2x:K,3h:c});kp.2d(H.bh,2x);H.bg=2x.bg;H.bd=2x.bd;bf(H,2x.3I)}},bc:B(){D.bg=K},ba:B(){D.n9=D.3I;if(D.5Y){bf(D,0)}D.bd=U}});z.gY=B(H){H=H||26.5Z;1j.bc.2d(H);1j.ba.2d(H)}}1j.7H=B(H,gX){A 2x=z.1x({},H,gX);1j.7K(2x);2x.7J=B(){H.7J()};2x.7I=B(){H.7I()};C 2x};if(z.2M){z.1x(1j,{4i:B(H,n8){4w(H.Z){2X"4b":A c=H.n7;if(c==3){c=99}c=((c<41)&&(!H.5X)?0:c);if((H.5Y)&&(!H.5X)&&(c>=65)&&(c<=90)){c+=32}C 1j.7H(H,{3h:c})}C H}})}if(z.3o){z.1x(1j,{4i:B(H,n6){4w(H.Z){2X"4b":A c=H.3h,s=H.5X,k=H.3I;k=k||gA[H.gW]||0;if(H.gW=="n5"){c=0}I{if((H.5Y)&&(c>0)&&(c<27)){c+=96}I{if(c==z.5W.gU){c=z.5W.gV;s=K}I{c=(c>=32&&c<gT?c:0)}}}C 1j.7H(H,{3h:c,5X:s,3I:k})}C H}});z.1x(z.5W,{gU:25,b9:gT,b8:n4,b7:n3,b6:n2,gS:n1,gR:n0,gQ:mZ,gP:mY,gO:mX,gN:mW,gM:mV,gL:mU,gK:mT,gJ:mS,gI:mR,gH:mQ,gG:mP,8S:mO,gF:mN,gE:mM,b5:mL,b4:mK,gD:mJ,mI:mH,gC:mG,gB:mF});A dk=z.5W,gA={"mE":dk.b9,"mD":dk.b8,"mC":dk.b7,"mB":dk.b6,"mA":dk.b5,"mz":dk.b4}}})();if(z.1l){z.gz=B(){C B(){A ap=4e.1C,h=z.gy.b3,c=P.2O,ls=c.2b,t=h[c.5V];A r=t&&t.14(D,P);R(A i in ls){if(!(i in ap)){h[ls[i]].14(D,P)}}C r}};z.b2.7G=B(fp){A f=z.b2.4i;C B(e){C fp.2d(D,f(e,D))}}}}if(!z.1h["z.X.b1"]){z.1h["z.X.b1"]=K;z.1Q("z.X.b1");1u{1q.my("mx",U,K)}1y(e){}if(z.1l||z.2M){z.1D=B(id,1e){if(z.1R(id)){A b0=(1e||z.1e);A 11=b0.gv(id);if((11)&&(11.gw.id.1Z==id)){C 11}I{A 5U=b0.gx[id];if(!5U){C}if(!5U.G){C 5U}A i=0;1s(11=5U[i++]){if(11.gw.id.1Z==id){C 11}}}}I{C id}}}I{z.1D=B(id,1e){if(z.1R(id)){C(1e||z.1e).gv(id)}I{C id}}}(B(){A 5T=L;z.mw=B(E){E=z.1D(E);1u{if(!5T){5T=1q.a9("mv")}5T.4c(E.1L?E.1L.fs(E):E);5T.9L=""}1y(e){}};z.mu=B(E,7F){1u{E=z.1D(E);7F=z.1D(7F);1s(E){if(E===7F){C K}E=E.1L}}1y(e){}C U};z.mt=B(E,5S){E=z.1D(E);if(z.gu){E.1c.ms=(5S)?"dg":"7C"}I{if(z.6B){E.1c.mr=(5S)?"8K":"7C"}I{if(z.1l){E.gs=(5S)?"":"on";z.1r("*",E).1n(B(gt){gt.gs=(5S)?"":"on"})}}}};A 5R=B(E,4h){4h.1L.mq(E,4h);C K};A aZ=B(E,4h){A pn=4h.1L;if(4h==pn.fm){pn.4c(E)}I{C 5R(E,4h.71)}C K};z.5E=B(E,2a,3H){if((!E)||(!2a)||(V 3H=="1k")){C U}E=z.1D(E);2a=z.1D(2a);if(V 3H=="4J"){A cn=2a.3W;if(((3H==0)&&(cn.G==0))||(cn.G==3H)){2a.4c(E);C K}if(3H==0){C 5R(E,2a.5A)}C aZ(E,cn[3H-1])}4w(3H.1M()){2X"mo":C 5R(E,2a);2X"a8":C aZ(E,2a);2X"9M":if(2a.5A){C 5R(E,2a.5A)}I{2a.4c(E);C K}3f;aY:2a.4c(E);C K}};z.aP="5g-3G";if(z.1l){A aV=1q.aX;z.aP=(aV=="aW")||(aV=="gr")||(z.1l<6)?"g5-3G":"5g-3G"}A 1E,dv=1q.mn;if(z.3o){1E=B(E){A s=dv.3F(E,L);if(!s&&E.1c){E.1c.gq="";s=dv.3F(E,L)}C s||{}}}I{if(z.1l){1E=B(E){C E.gn}}I{1E=B(E){C dv.3F(E,L)}}}z.3F=1E;if(!z.1l){z.4g=B(mm,gp){C 2k(gp)||0}}I{z.4g=B(go,2N){if(!2N){C 0}if(2N=="ml"){C 4}if(2N.2w&&(2N.2w(-2)=="px")){C 2k(2N)}4G(go){A gm=1c.2g;A gl=aU.2g;aU.2g=gn.2g;1u{1c.2g=2N;2N=1c.mk}1y(e){2N=0}1c.2g=gm;aU.2g=gl}C 2N}}z.ge=(z.1l?B(E){1u{C(E.mj.mi.2W/6D)}1y(e){C 1}}:B(E){C z.3F(E).2W});z.gf=(z.1l?B(E,7D){if(7D==1){E.1c.7E=E.1c.7E.2f(/gk:[^;]*;/i,"");if(E.gj.1M()=="gi"){z.1r("> gh",E).1n(B(i){i.1c.7E=i.1c.7E.2f(/gk:[^;]*;/i,"")})}}I{A o="mh(mg="+(7D*6D)+")";E.1c.3T=o}if(E.gj.1M()=="gi"){z.1r("> gh",E).1n(B(i){i.1c.3T=o})}C 7D}:B(E,gg){C E.1c.2W=gg});A 5Q={3n:K,58:K,2g:K,5J:K};A gd=B(E,Z,5P){Z=Z.1M();if(5Q[Z]===K){C z.4g(E,5P)}I{if(5Q[Z]===U){C 5P}I{if((Z.T("mf")>=0)||(Z.T("md")>=0)||(Z.T("3n")>=0)||(Z.T("58")>=0)||(Z.T("5q")>=0)||(Z.T("mc")>=0)||(Z.T("ma")>=0)){5Q[Z]=K;C z.4g(E,5P)}I{5Q[Z]=U;C 5P}}}};z.1c=B(E,5O,aT){A n=z.1D(E),F=P.G,op=(5O=="2W");if(F==3){C op?z.gf(n,aT):n.1c[5O]=aT}if(F==2&&op){C z.ge(n)}A s=z.3F(n);C(F==1)?s:gd(n,5O,s[5O])};z.7A=B(n,gc){A s=gc||1E(n),px=z.4g,l=px(n,s.m9),t=px(n,s.m8);C{l:l,t:t,w:l+px(n,s.m7),h:t+px(n,s.m6)}};z.5N=B(n,gb){A ne="7C",px=z.4g,s=gb||1E(n),bl=(s.m5!=ne?px(n,s.m4):0),bt=(s.m3!=ne?px(n,s.m2):0);C{l:bl,t:bt,w:bl+(s.m1!=ne?px(n,s.m0):0),h:bt+(s.lZ!=ne?px(n,s.lY):0)}};z.aN=B(n,ga){A s=ga||1E(n),p=z.7A(n,s),b=z.5N(n,s);C{l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h}};z.aM=B(n,g9){A s=g9||1E(n),px=z.4g,l=px(n,s.lX),t=px(n,s.lW),r=px(n,s.lV),b=px(n,s.lU);if(z.3o&&(s.ax!="fU")){r=l}C{l:l,t:t,w:l+r,h:t+b}};z.au=B(E,g8){A s=g8||1E(E),me=z.aM(E,s);A l=E.fT-me.l,t=E.fS-me.t;if(z.7B){A aS=2k(s.2g),aR=2k(s.5J);if(!2L(aS)&&!2L(aR)){l=aS,t=aR}I{A p=E.1L;if(p&&p.1c){A aQ=1E(p);if(aQ.lT!="lS"){A be=z.5N(p,aQ);l+=be.l,t+=be.t}}}}I{if(z.2M){A p=E.1L;if(p){A be=z.5N(p);l-=be.l,t-=be.t}}}C{l:l,t:t,w:E.6v+me.w,h:E.8D+me.h}};z.aK=B(E,g7){A s=g7||1E(E),pe=z.7A(E,s),be=z.5N(E,s),w=E.aF,h;if(!w){w=E.6v,h=E.8D}I{h=E.lR,be.w=be.h=0}if(z.2M){pe.l+=be.l;pe.t+=be.t}C{l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h}};z.lQ=B(E,g6){A s=g6||1E(E),pe=z.7A(E,s),cb=z.aK(E,s);C{l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h}};z.aL=B(E,l,t,w,h,u){u=u||"px";4G(E.1c){if(!2L(l)){2g=l+u}if(!2L(t)){5J=t+u}if(w>=0){3n=w+u}if(h>=0){58=h+u}}};z.aO=B(E){A n=E.5w;C(z.aP=="g5-3G")||(n=="lP")||(n=="lO")};z.fX=B(E,7z,7y,g4){A bb=z.aO(E);if(bb){A pb=z.aN(E,g4);if(7z>=0){7z+=pb.w}if(7y>=0){7y+=pb.h}}z.aL(E,g3,g3,7z,7y)};z.fY=B(E,g1,g0,5M,5L,g2){A s=g2||z.3F(E);A bb=z.aO(E),pb=bb?fZ:z.aN(E,s),mb=z.aM(E,s);if(5M>=0){5M=2Y.5q(5M-pb.w-mb.w,0)}if(5L>=0){5L=2Y.5q(5L-pb.h-mb.h,0)}z.aL(E,g1,g0,5M,5L)};A fZ={l:0,t:0,w:0,h:0};z.lN=B(E,3G){A n=z.1D(E),s=1E(n),b=3G;C!b?z.au(n,s):z.fY(n,b.l,b.t,b.w,b.h,s)};z.lM=B(E,3G){A n=z.1D(E),s=1E(n),b=3G;C!b?z.aK(n,s):z.fX(n,b.w,b.h,s)};A 5H=B(E,1a){if(!(E=(E||0).1L)){C 0}A 1U,aJ=0,2h=z.3E();1s(E&&E.1c){if(1E(E).ax=="lL"){C 0}1U=E[1a];if(1U){aJ+=1U-0;if(E==2h){3f}}E=E.1L}C aJ};z.fQ=B(){A 2h=z.3E();A 3g=z.1W;A de=z.1e.5K;C{y:(3g.lK||de.5G||2h.5G||0),x:(3g.lJ||z.aH(de.5I)||2h.5I||0)}};z.aG=B(){C V z.aI=="1k"?(z.aI=z.3F(z.3E()).lI=="lH"):z.aI};z.aB=B(){A de=z.1e.5K;if(z.1l>=7){C{x:de.aC().2g,y:de.aC().5J}}I{C{x:z.aG()||26.am==26?de.fW:de.6v-de.aF-de.fW,y:de.lG}}};z.aH=B(aE){if(z.1l&&!z.aG()){A de=z.1e.5K;C aE+de.aF-de.lF}C aE};z.fP=B(E,aw){A ay=E.aD;A J={x:0,y:0};A 7w=U;A db=z.3E();if(z.1l){A aA=E.aC();A az=z.aB();J.x=aA.2g-az.x;J.y=aA.5J-az.y}I{if(ay["fV"]){A bo=ay.fV(E);J.x=bo.x-5H(E,"5I");J.y=bo.y-5H(E,"5G")}I{if(E["fR"]){7w=K;A 7x;if(z.3o&&(1E(E).ax=="fU")&&(E.1L==db)){7x=db}I{7x=db.1L}if(E.1L!=db){A nd=E;if(z.2M){nd=db}J.x-=5H(nd,"5I");J.y-=5H(nd,"5G")}A 4f=E;do{A n=4f["fT"];if(!z.2M||n>0){J.x+=2L(n)?0:n}A m=4f["fS"];J.y+=2L(m)?0:m;4f=4f.fR}1s((4f!=7x)&&4f)}I{if(E["x"]&&E["y"]){J.x+=2L(E.x)?0:E.x;J.y+=2L(E.y)?0:E.y}}}}if(7w||aw){A av=z.fQ();A m=7w?(!aw?-1:0):1;J.y+=m*av.y;J.x+=m*av.x}C J};z.af=B(E,fO){A n=z.1D(E),s=1E(n),mb=z.au(n,s);A at=z.fP(n,fO);mb.x=at.x;mb.y=at.y;C mb}})();z.fL=B(E,fN){C((" "+E.3A+" ").T(" "+fN+" ")>=0)};z.7s=B(E,ar){A 7v=E.3A;if((" "+7v+" ").T(" "+ar+" ")<0){E.3A=7v+(7v?" ":"")+ar}};z.7r=B(E,fM){A t=z.7g((" "+E.3A+" ").2f(" "+fM+" "," "));if(E.3A!=t){E.3A=t}};z.lE=B(E,aq,7u){if(V 7u=="1k"){7u=!z.fL(E,aq)}z[7u?"7s":"7r"](E,aq)}}if(!z.1h["z.X.1H"]){z.1h["z.X.1H"]=K;z.1Q("z.X.1H");(B(){A d=z;z.1H=B(){A F=P;if((F.G==1)&&(V F[0]=="4J")){D.G=eK(F[0])}I{if(F.G){d.1n(F,B(i){D.Y(i)},D)}}};z.1H.1C=S 4e;if(d.1l){A fK=B(al){C("A a2 = am."+al+"; "+"A ap = 4e.1C; "+"A ao = a2.1C; "+"R(A x in ao){ ap[x] = ao[x]; } "+"am."+al+" = 4e; ")};A fI=fK("z.1H");A aj=26.lD();aj.1q.fJ("<ak>"+fI+"</ak>");aj.lC(1,1,1,1)}z.4M(z.1H,{T:B(fH,fG){C d.T(D,fH,fG)},31:B(lB,lA){A aa=d.4d(P);aa.ae(D);C d.31.14(d,aa)},ah:B(fF,fE){C d.ah(D,fF,fE)},ag:B(fD,fC){C d.ag(D,fD,fC)},1n:B(fB,fA){d.1n(D,fB,fA);C D},23:B(7t,M){C d.23(D,7t,M,d.1H)},af:B(){C d.23(D,d.af)},1c:B(lz,ly){A aa=d.4d(P);aa.ae(D[0]);A s=d.1c.14(d,aa);C(P.G>1)?D:s},lx:B(lw,lv){A aa=d.4d(P);aa.ae(L);A s=D.23(B(i){aa[0]=i;C d.1c.14(d,aa)});C(P.G>1)?D:s},7s:B(fz){C D.1n(B(i){z.7s(i,fz)})},7r:B(fy){C D.1n(B(i){z.7r(i,fy)})},5E:B(fw,7q){A 1m=d.1r(fw)[0];7q=7q||"72";R(A x=0;x<D.G;x++){d.5E(D[x],1m,7q)}C D},2c:B(fv,fu,ft){D.1n(B(1m){d.2c(1m,fv,fu,ft)});C D},lu:B(ad){A ac=(ad)?d.9t(D,ad):D;ac.1n(B(1m){if(1m["1L"]){1m.1L.fs(1m)}});C ac},lt:B(fr,fq){A 1m=D[0];C d.1r(fr).1n(B(ai){d.5E(ai,1m,(fq||"72"))})},1r:B(7p){7p=7p||"";A J=S d.1H();D.1n(B(1m){d.1r(7p,1m).1n(B(ab){if(V ab!="1k"){J.Y(ab)}})});C J},3T:B(fo){A 5F=D;A 1V=P;A r=S d.1H();A rp=B(t){if(V t!="1k"){r.Y(t)}};if(d.1R(fo)){5F=d.9t(D,1V[0]);if(1V.G==1){C 5F}d.1n(d.3T(5F,1V[1],1V[2]),rp);C r}d.1n(d.3T(5F,1V[0],1V[1]),rp);C r},lr:B(7o,7n){A 1S=d.1e.a9("lq");if(d.1R(7o)){1S.9L=7o}I{1S.4c(7o)}A ct=((7n=="9M")||(7n=="a8"))?"fm":"5A";D.1n(B(1m){A 24=1S.a7(K);1s(24[ct]){d.5E(24[ct],1m,7n)}});C D},7m:B(fl,F){A a5=[];F=F||{};D.1n(B(1m){A a6={E:1m};d.1x(a6,F);a5.Y(d[fl](a6))});C d.fx.lp(a5)},8I:B(F){C D.7m("8I",F)},8H:B(F){C D.7m("8H",F)},6y:B(F){C D.7m("6y",F)}});z.1n(["fk","lo","fj","fi","ln","lm","ll","fi","lk","lj","4b"],B(H){A a4="on"+H;z.1H.1C[a4]=B(a,b){C D.2c(a4,a,b)}})})()}if(!z.1h["z.X.1r"]){z.1h["z.X.1r"]=K;z.1Q("z.X.1r");(B(){A d=z;A 2I=B(q){C[q.T("#"),q.T("."),q.T("["),q.T(":")]};A a0=B(a3,fh){A ql=a3.G;A i=2I(a3);A 1d=ql;R(A x=fh;x<i.G;x++){if(i[x]>=0){if(i[x]<1d){1d=i[x]}}}C(1d<0)?ql:1d};A 6X=B(7l){A i=2I(7l);if(i[0]!=-1){C 7l.21(i[0]+1,a0(7l,1))}I{C""}};A 5r=B(7k){A 5D;A i=2I(7k);if((i[0]==0)||(i[1]==0)){5D=0}I{5D=a0(7k,0)}C((5D>0)?7k.3b(0,5D).1M():"*")};A fg=B(Q){A J=-1;R(A x=0;x<Q.G;x++){A 1S=Q[x];if(1S>=0){if((1S>J)||(J==-1)){J=1S}}}C J};A 9H=B(7i){A i=2I(7i);if(-1==i[1]){C""}A di=i[1]+1;A 7j=fg(i.2w(2));if(di<7j){C 7i.21(di,7j)}I{if(-1==7j){C 7i.3b(di)}I{C""}}};A f3=[{1i:"|=",1f:B(15,fe){C"[5z(3U(\' \',@"+15+",\' \'), \' "+fe+"-\')]"}},{1i:"~=",1f:B(15,fd){C"[5z(3U(\' \',@"+15+",\' \'), \' "+fd+" \')]"}},{1i:"^=",1f:B(15,fb){C"[li-4G(@"+15+", \'"+fb+"\')]"}},{1i:"*=",1f:B(15,fa){C"[5z(@"+15+", \'"+fa+"\')]"}},{1i:"$=",1f:B(15,9Z){C"[21(@"+15+", 3c-G(@"+15+")-"+(9Z.G-1)+")=\'"+9Z+"\']"}},{1i:"!=",1f:B(15,f9){C"[3O(@"+15+"=\'"+f9+"\')]"}},{1i:"=",1f:B(15,f8){C"[@"+15+"=\'"+f8+"\']"}}];A 9C=B(9Y,3Z,f7,f6){A 49;A i=2I(3Z);if(i[2]>=0){A 4L=3Z.T("]",i[2]);A 29=3Z.21(i[2]+1,4L);1s(29&&29.G){if(29.2s(0)=="@"){29=29.2w(1)}49=L;R(A x=0;x<9Y.G;x++){A 1S=9Y[x];A 7h=29.T(1S.1i);if(7h>=0){A 15=29.21(0,7h);A 4a=29.21(7h+1S.1i.G);if((4a.2s(0)=="\\"")||(4a.2s(0)=="\'")){4a=4a.21(1,4a.G-1)}49=1S.1f(d.7g(15),d.7g(4a));3f}}if((!49)&&(29.G)){49=f7(29)}if(49){f6(49)}29=L;A 7f=3Z.T("[",4L);if(0<=7f){4L=3Z.T("]",7f);if(0<=4L){29=3Z.21(7f+1,4L)}}}}};A f0=B(f5){A 4K=".";A 7e=f5.1A(" ");1s(7e.G){A 2K=7e.3a();A 7d;if(2K==">"){7d="/";2K=7e.3a()}I{7d="//"}A f4=5r(2K);4K+=7d+f4;A id=6X(2K);if(id.G){4K+="[@id=\'"+id+"\'][1]"}A cn=9H(2K);if(cn.G){A 9X=" ";if(cn.2s(cn.G-1)=="*"){9X="";cn=cn.3b(0,cn.G-1)}4K+="[5z(3U(\' \',@9P,\' \'), \' "+cn+9X+"\')]"}9C(f3,2K,B(f2){C"[@"+f2+"]"},B(f1){4K+=f1})}C 4K};A 7a={};A eC=B(28){if(7a[28]){C 7a[28]}A 1e=d.1e;A 9W=f0(28);A 4H=B(9V){A J=[];A 7b;1u{7b=1e.9x(9W,9V,L,lh.lg,L)}1y(e){1z.1K("lf in le:",9W,"lc:",9V);1z.1K(e)}A 7c=7b.eZ();1s(7c){J.Y(7c);7c=7b.eZ()}C J};C 7a[28]=4H};A 5x={};A 9B={};A 3y=B(79,78){if(!79){C 78}if(!78){C 79}C B(){C 79.14(26,P)&&78.14(26,P)}};A 75=B(9U,3Y,5B,2J){A 2v=2J+1;A 76=(3Y.G==2v);A 2K=3Y[2J];if(2K==">"){A 77=9U.3W;if(!77.G){C}2v++;76=(3Y.G==2v);A 4H=6O(3Y[2J+1]);R(A x=0,11;x<77.G,11=77[x];x++){if(4H(11)){if(76){5B.Y(11)}I{75(11,3Y,5B,2v)}}}}A 5C=6U(2K)(9U);if(76){1s(5C.G){5B.Y(5C.3a())}}I{1s(5C.G){75(5C.3a(),3Y,5B,2v)}}};A eE=B(9T,eY){A J=[];A x=9T.G-1,11;1s(11=9T[x--]){75(11,eY,J,0)}C J};A 6O=B(3D){if(5x[3D]){C 5x[3D]}A ff=L;A 9S=5r(3D);if(9S!="*"){ff=3y(ff,B(N){C((N.2t==1)&&(9S==N.5w.1M()))})}A 9R=6X(3D);if(9R.G){ff=3y(ff,B(N){C((N.2t==1)&&(N.id==9R))})}if(2Y.5q.14(D,2I(3D).2w(1))>=0){ff=3y(ff,9z(3D))}C 5x[3D]=ff};A 5y=B(E){A pn=E.1L;A 9Q=pn.3W;A 2v=-1;A 3C=pn.5A;if(!3C){C 2v}A ci=E["eW"];A cl=pn["eX"];if(((V cl=="4J")&&(cl!=9Q.G))||(V ci!="4J")){pn["eX"]=9Q.G;A 2J=1;do{if(3C===E){2v=2J}if(3C.2t==1){3C["eW"]=2J;2J++}3C=3C.71}1s(3C)}I{2v=ci}C 2v};A lb=0;A 3X=B(N,15){A 74="";if(15=="9P"){C N.3A||74}if(15=="R"){C N.la||74}C N.5t(15,2)||74};A eH=[{1i:"|=",1f:B(15,9O){A eV=" "+9O+"-";C B(N){A ea=" "+(N.5t(15,2)||"");C((ea==9O)||(ea.T(eV)==0))}}},{1i:"^=",1f:B(15,eU){C B(N){C(3X(N,15).T(eU)==0)}}},{1i:"*=",1f:B(15,eT){C B(N){C(3X(N,15).T(eT)>=0)}}},{1i:"~=",1f:B(15,eS){A 9N=" "+eS+" ";C B(N){A ea=" "+3X(N,15)+" ";C(ea.T(9N)>=0)}}},{1i:"$=",1f:B(15,73){A 9N=" "+73;C B(N){A ea=" "+3X(N,15);C(ea.31(73)==(ea.G-73.G))}}},{1i:"!=",1f:B(15,eR){C B(N){C(3X(N,15)!=eR)}}},{1i:"=",1f:B(15,eQ){C B(N){C(3X(N,15)==eQ)}}}];A 9E=[{1i:"9M-9K",1f:B(1p,l9){C B(N){if(N.2t!=1){C U}A fc=N.eP;1s(fc&&(fc.2t!=1)){fc=fc.eP}C(!fc)}}},{1i:"72-9K",1f:B(1p,l8){C B(N){if(N.2t!=1){C U}A nc=N.71;1s(nc&&(nc.2t!=1)){nc=nc.71}C(!nc)}}},{1i:"l7",1f:B(1p,l6){C B(N){A cn=N.3W;A eO=N.3W.G;R(A x=eO-1;x>=0;x--){A nt=cn[x].2t;if((nt==1)||(nt==3)){C U}}C K}}},{1i:"5z",1f:B(1p,eN){C B(N){C(N.9L.T(eN)>=0)}}},{1i:"3O",1f:B(1p,eM){A eL=6O(eM);C B(N){C(!eL(N))}}},{1i:"l5-9K",1f:B(1p,2u){A pi=eK;if(2u=="l4"){C B(N){C(((5y(N))%2)==1)}}I{if((2u=="2n")||(2u=="l3")){C B(N){C((5y(N)%2)==0)}}I{if(2u.T("l2+")==0){A 70=pi(2u.3b(3));C B(N){C(N.1L.3W[70-1]===N)}}I{if((2u.T("n+")>0)&&(2u.G>3)){A 9J=2u.1A("n+",2);A eJ=pi(9J[0]);A 2J=pi(9J[1]);C B(N){C((5y(N)%eJ)==2J)}}I{if(2u.T("n")==-1){A 70=pi(2u);C B(N){C(5y(N)==70)}}}}}}}}];A 9z=B(3e){A 9I=(9B[3e]||5x[3e]);if(9I){C 9I}A ff=L;A i=2I(3e);if(i[0]>=0){A 24=5r(3e);if(24!="*"){ff=3y(ff,B(N){C(N.5w.1M()==24)})}}A 5u;A 3B=9H(3e);if(3B.G){A 9F=3B.2s(3B.G-1)=="*";if(9F){3B=3B.3b(0,3B.G-1)}A re=S 9G("(?:^|\\\\s)"+3B+(9F?".*":"")+"(?:\\\\s|$)");ff=3y(ff,B(N){C re.6Z(N.3A)})}if(i[3]>=0){A 3z=3e.3b(i[3]+1);A 9D="";A 5v=3z.T("(");A 6Y=3z.31(")");if((0<=5v)&&(0<=6Y)&&(6Y>5v)){9D=3z.21(5v+1,6Y);3z=3z.3b(0,5v)}5u=L;R(A x=0;x<9E.G;x++){A 1S=9E[x];if(1S.1i==3z){5u=1S.1f(3z,9D);3f}}if(5u){ff=3y(ff,5u)}}A eG=(d.1l)?B(5s){A eI=5s.1M();C B(N){C N[5s]||N[eI]}}:B(5s){C B(N){C(N&&N.5t&&N.l1(5s))}};9C(eH,3e,eG,B(eF){ff=3y(ff,eF)});if(!ff){ff=B(){C K}}C 9B[3e]=ff};A 6W={};A 6U=B(3d,1B){A 9A=6W[3d];if(9A){C 9A}A i=2I(3d);A id=6X(3d);if(i[0]==0){C 6W[3d]=B(1B){C[d.1D(id)]}}A 9y=9z(3d);A 5p;if(i[0]>=0){5p=B(1B){A 11=d.1D(id);if(9y(11)){C[11]}}}I{A 3V;A 24=5r(3d);if(2Y.5q.14(D,2I(3d))==-1){5p=B(1B){A J=[];A 11,x=0,3V=1B.4I(24);1s(11=3V[x++]){J.Y(11)}C J}}I{5p=B(1B){A J=[];A 11,x=0,3V=1B.4I(24);1s(11=3V[x++]){if(9y(11)){J.Y(11)}}C J}}}C 6W[3d]=5p};A l0={};A 5o={">":B(1B){A J=[];A 11,x=0,3V=1B.3W;1s(11=3V[x++]){if(11.2t==1){J.Y(11)}}C J}};A 9w=B(6V){if(0>6V.T(" ")){C 6U(6V)}A eD=B(1B){A 6S=6V.1A(" ");A 6T;if(6S[0]==">"){6T=[1B]}I{6T=6U(6S.3a())(1B)}C eE(6T,6S)};C eD};A 9v=((1q["9x"]&&!d.3o)?B(3x){A 6R=3x.1A(" ");if((1q["9x"])&&(3x.T(":")==-1)&&((K))){if(((6R.G>2)&&(3x.T(">")==-1))||(6R.G>3)||(3x.T("[")>=0)||((1==6R.G)&&(0<=3x.T(".")))){C eC(3x)}}C 9w(3x)}:9w);A ey=B(3w){if(5o[3w]){C 5o[3w]}if(0>3w.T(",")){C 5o[3w]=9v(3w)}I{A eB=3w.1A(/\\s*,\\s*/);A 4H=B(1B){A eA=0;A J=[];A 6Q;1s(6Q=eB[eA++]){J=J.3U(9v(6Q,6Q.T(" "))(1B))}C J};C 5o[3w]=4H}};A 5n=0;A ez=B(Q){A J=S d.1H();if(!Q){C J}if(Q[0]){J.Y(Q[0])}if(Q.G<2){C J}5n++;Q[0]["9u"]=5n;R(A x=1,11;11=Q[x];x++){if(Q[x]["9u"]!=5n){J.Y(11)}11["9u"]=5n}C J};d.1r=B(6P,1B){if(V 6P!="3c"){C S d.1H(6P)}if(V 1B=="3c"){1B=d.1D(1B)}C ez(ey(6P)(1B||d.1e))};d.9t=B(ex,9s){A 9r=S d.1H();A ff=(9s)?6O(9s):B(){C K};R(A x=0,11;11=ex[x];x++){if(ff(11)){9r.Y(11)}}C 9r}})()}if(!z.1h["z.X.1b"]){z.1h["z.X.1b"]=K;z.1Q("z.X.1b");z.6K=B(ew){A J={};A iq="kZ[Z!=9q][Z!=kY][Z!=et][Z!=kX][Z!=kW], kV, kU";z.1r(iq,ew).3T(B(E){C(!E.kT)}).1n(B(1m){A 3v=1m.1p;A Z=(1m.Z||"").1M();if((Z=="kS")||(Z=="kR")){if(1m.kQ){J[3v]=1m.1Z}}I{if(1m.kP){A ev=J[3v]=[];z.1r("kO[kN]",1m).1n(B(eu){ev.Y(eu.1Z)})}I{J[3v]=1m.1Z;if(Z=="et"){J[3v+".x"]=J[3v+".y"]=J[3v].x=J[3v].y=0}}}});C J};z.9h=B(23){A ec=kM;A J="";A es={};R(A x in 23){if(23[x]!=es[x]){if(z.2l(23[x])){R(A y=0;y<23[x].G;y++){J+=ec(x)+"="+ec(23[x][y])+"&"}}I{J+=ec(x)+"="+ec(23[x])+"&"}}}if((J.G)&&(J.2s(J.G-1)=="&")){J=J.3b(0,J.G-1)}C J};z.kL=B(er){C z.9h(z.6K(er))};z.kK=B(ep){C z.eq(z.6K(ep))};z.kJ=B(2H){A J={};A qp=2H.1A("&");A dc=kI;z.1n(qp,B(1m){if(1m.G){A 9p=1m.1A("=");A 1p=dc(9p.3a());A 1U=dc(9p.22("="));if(z.1R(J[1p])){J[1p]=[J[1p]]}if(z.2l(J[1p])){J[1p].Y(1U)}I{J[1p]=1U}}});C J};z.e1=U;z.e6={"9g":B(1b){C 1b.2G},"2e":B(1b){if(!1o.eo){1z.1K("kH kG kF a kE of 9g/2e-6M-9m"+" 4F kD kC kB kA 4G en kz"+" (ky 1o.eo=K 4F kx kw D kv)")}C z.5m(1b.2G)},"2e-6M-ku":B(1b){A 6N=1b.2G;A 9o=6N.T("/*");A 9n=6N.31("*/");if((9o==-1)||(9n==-1)){C z.5m(1b.2G)}C z.5m(6N.21(9o+2,9n))},"2e-6M-9m":B(1b){A 6L=1b.2G;A 9l=6L.T("/*");A 9k=6L.31("*/");if((9l==-1)||(9k==-1)){1z.1K("kt en ks\'t 6M 9m!");C""}C z.5m(6L.21(9l+2,9k))},"kr":B(1b){C z.3u(1b.2G)},"kq":B(1b){if(z.1l&&!1b.el){z.1n(["ko","em","kn","km"],B(i){1u{A 1e=S 9j(kl[i]+".kk");1e.kj=U;1e.ki(1b.2G);C 1e}1y(e){}})}I{C 1b.el}}};(B(){z.e5=B(F,ej,ei,eh){A 2F={};2F.F=F;A 6J=L;if(F.3R){A 3R=z.1D(F.3R);A 9i=3R.kh("kg");2F.2E=F.2E||(9i?9i.1Z:L);6J=z.6K(3R)}I{2F.2E=F.2E}A 5l=[{}];if(6J){5l.Y(6J)}if(F.5g){5l.Y(F.5g)}if(F.ek){5l.Y({"z.ek":S 5d().8O()})}2F.1r=z.9h(z.1x.14(L,5l));2F.9d=F.9d||"9g";A d=S z.30(ej);d.5k(ei,B(eg){C eh(eg,d)});A ld=F.4E;if(ld&&z.1Y(ld)){d.ef(B(ee){C ld.2d(F,ee,2F)})}A 1G=F.9f;if(1G&&z.1Y(1G)){d.ed(B(e9){C 1G.2d(F,e9,2F)})}A 6I=F.kf;if(6I&&z.1Y(6I)){d.9e(B(e8){C 6I.2d(F,e8,2F)})}d.1F=2F;C d};A e4=B(O){O.e0=K;A 1b=O.1F.1b;if(V 1b.e7=="B"){1b.e7()}};A e3=B(O){C z.e6[O.1F.9d](O.1F.1b)};A e2=B(9c,O){1z.1K(9c);C 9c};A 3Q=B(F){A O=z.e5(F,e4,e3,e2);O.1F.1b=z.9b(O.1F.F);C O};A 5j=L;A 3t=[];A 94=B(){A dZ=(S 5d()).dU();if(!z.e1){z.1n(3t,B(4D,6H){if(!4D){C}A O=4D.O;1u{if(!O||O.e0||!4D.dT(O)){3t.3S(6H,1);C}if(4D.dR(O)){3t.3S(6H,1);4D.dP(O)}I{if(O.9a){if(O.9a+(O.1F.F.6G||0)<dZ){3t.3S(6H,1);A 1G=S 1O("6G ke");1G.dY="6G";O.5i(1G);O.4C()}}}}1y(e){1z.1K(e);O.5i(S 1O("kc!"))}})}if(!3t.G){dX(5j);5j=L;C}};z.dV=B(){1u{z.1n(3t,B(i){i.O.4C()})}1y(e){}};if(z.1l){z.dW(z.dV)}z.dH=B(O,dS,dQ,dO){if(O.1F.F.6G){O.9a=(S 5d()).dU()}3t.Y({O:O,dT:dS,dR:dQ,dP:dO});if(!5j){5j=dN(94,50)}94()};A dJ="8Z/x-kb-3R-ka";A dG=B(O){C O.1F.1b.6F};A dF=B(O){C 4==O.1F.1b.6F};A dE=B(O){if(z.8Y(O.1F.1b)){O.dM(O)}I{O.5i(S 1O("k9 k8 k7 5h:"+O.1F.1b.3N))}};A 3P=B(Z,O){A 3s=O.1F;A F=3s.F;3s.1b.dL(Z,3s.2E,(F.k6!==K),(F.8X?F.8X:1k),(F.8W?F.8W:1k));if(F.6E){R(A 5f in F.6E){if(5f.1M()==="5g-Z"&&!F.8V){F.8V=F.6E[5f]}I{3s.1b.dK(5f,F.6E[5f])}}}3s.1b.dK("k5-k4",(F.8V||dJ));1u{3s.1b.dI(3s.1r)}1y(e){O.4C()}z.dH(O,dG,dF,dE);C O};z.8T=B(4B){if(4B.1r.G){4B.2E+=(4B.2E.T("?")==-1?"?":"&")+4B.1r;4B.1r=L}};z.k3=B(F){A O=3Q(F);z.8T(O.1F);C 3P("dD",O)};z.k2=B(F){C 3P("dC",3Q(F))};z.k1=B(F){A O=3Q(F);O.1F.1r=F.k0;C 3P("dC",O)};z.jZ=B(F){C 3P("dA",3Q(F))};z.jY=B(F){A O=3Q(F);A dB=O.1F;if(F["8U"]){dB.1r=F.8U;F.8U=L}C 3P("dA",O)};z.jX=B(F){A O=3Q(F);z.8T(O.1F);C 3P("8S",O)};z.dz=B(jW){2m S 1O("z.dz 3O jV jU")}})()}if(!z.1h["z.X.fx"]){z.1h["z.X.fx"]=K;z.1Q("z.X.fx");z.dx=B(dy,1d){D.1w=dy;D.1d=1d;D.4x=B(n){C((D.1d-D.1w)*n)+D.1w}};z.2r("z.d6",L,{1P:B(F){z.1x(D,F);if(z.2l(D.2C)){D.2C=S z.dx(D.2C[0],D.2C[1])}},2C:L,8Q:jT,5a:L,4z:0,dj:10,du:L,6x:L,dt:L,8B:L,dh:L,ds:L,dr:L,dm:L,2D:U,2Z:U,4A:L,8N:L,3r:L,2o:0,4y:0,3q:B(H,F){if(D[H]){D[H].14(D,F||[])}C D},5b:B(dw,8R){if(8R){5e(D.3r);D.2D=D.2Z=U;D.2o=0}I{if(D.2D&&!D.2Z){C D}}D.3q("6x");A d=dw||D.du;if(d>0){5c(z.2p(D,B(){D.5b(L,8R)}),d);C D}D.4A=S 5d().8O();if(D.2Z){D.4A-=D.8Q*D.2o}D.8N=D.4A+D.8Q;D.2D=K;D.2Z=U;A 8P=D.2C.4x(D.2o);if(!D.2o){if(!D.4y){D.4y=D.4z}D.3q("dt",[8P])}D.3q("ds",[8P]);D.8M();C D},jS:B(){5e(D.3r);if(!D.2D){C D}D.2Z=K;D.3q("dr",[D.2C.4x(D.2o)]);C D},jR:B(dq,dp){5e(D.3r);D.2D=D.2Z=K;D.2o=dq*6D;if(dp){D.5b()}C D},jQ:B(dn){if(!D.3r){C}5e(D.3r);if(dn){D.2o=1}D.3q("dm",[D.2C.4x(D.2o)]);D.2D=D.2Z=U;C D},3N:B(){if(D.2D){C D.2Z?"3M":"jP"}C"jO"},8M:B(){5e(D.3r);if(D.2D){A dl=S 5d().8O();A 2q=(dl-D.4A)/(D.8N-D.4A);if(2q>=1){2q=1}D.2o=2q;if(D.5a){2q=D.5a(2q)}D.3q("8B",[D.2C.4x(2q)]);if(2q<1){D.3r=5c(z.2p(D,"8M"),D.dj)}I{D.2D=U;if(D.4z>0){D.4z--;D.5b(L,K)}I{if(D.4z==-1){D.5b(L,K)}I{if(D.4y){D.4z=D.4y;D.4y=0}}}D.2o=0;D.3q("dh")}}C D}});(B(){A df=B(E){if(z.1l){A ns=E.1c;if(!ns.8L.G&&z.1c(E,"8L")=="dg"){ns.8L="1"}if(!ns.3n.G&&z.1c(E,"3n")=="8K"){ns.3n="8K"}}};z.6C=B(F){if(V F.1d=="1k"){2m S 1O("z.6C jN an 1d 1Z")}F.E=z.1D(F.E);A 3p=z.1x({6w:{}},F);A 8J=(3p.6w.2W={});8J.1w=(V 3p.1w=="1k")?B(){C 2V(z.1c(3p.E,"2W"))}:3p.1w;8J.1d=3p.1d;A 2U=z.6y(3p);z.2c(2U,"6x",L,B(){df(3p.E)});C 2U};z.8I=B(F){C z.6C(z.1x({1d:1},F))};z.8H=B(F){C z.6C(z.1x({1d:0},F))};if(z.6B&&!z.3o){z.8E=B(n){C 2k("0.5")+((2Y.da((n+2k("1.5"))*2Y.d9))/2)}}I{z.8E=B(n){C 0.5+((2Y.da((n+1.5)*2Y.d9))/2)}}A d4=B(6A){D.8G=6A;R(A p in 6A){A 1a=6A[p];if(1a.1w 1N z.1J){1a.d7=S z.1J()}}D.4x=B(r){A J={};R(A p in D.8G){A 1a=D.8G[p];A 6z=L;if(1a.1w 1N z.1J){6z=z.d8(1a.1w,1a.1d,r,1a.d7).8F()}I{if(!z.2l(1a.1w)){6z=((1a.1d-1a.1w)*r)+1a.1w+(p!="2W"?1a.jM||"px":"")}}J[p]=6z}C J}};z.6y=B(F){F.E=z.1D(F.E);if(!F.5a){F.5a=z.8E}A 2U=S z.d6(F);z.2c(2U,"6x",2U,B(){A pm={};R(A p in D.6w){A 1a=pm[p]=z.1x({},D.6w[p]);if(z.1Y(1a.1w)){1a.1w=1a.1w()}if(z.1Y(1a.1d)){1a.1d=1a.1d()}A d5=(p.1M().T("jL")>=0);B 8C(E,p){4w(p){2X"58":C E.8D;2X"3n":C E.6v}A v=z.1c(E,p);C(p=="2W")?2V(v):2k(v)};if(V 1a.1d=="1k"){1a.1d=8C(D.E,p)}I{if(V 1a.1w=="1k"){1a.1w=8C(D.E,p)}}if(d5){1a.1w=S z.1J(1a.1w);1a.1d=S z.1J(1a.1d)}I{1a.1w=(p=="2W")?2V(1a.1w):2k(1a.1w)}}D.2C=S d4(pm)});z.2c(2U,"8B",2U,B(8A){R(A s in 8A){z.1c(D.E,s,8A[s])}});C 2U}})()}',62,1711,'|||||||||||||||||||||||||||||||||||dojo|var|function|return|this|node|args|length|evt|else|ret|true|null|obj|elem|dfd|arguments|arr|for|new|indexOf|false|typeof||_base|push|type||te|||apply|attr|||||prop|xhr|style|end|doc|match|uri|_hasResource|key|del|undefined|isIE|item|forEach|djConfig|name|document|query|while|_66|try|res|start|mixin|catch|console|split|root|prototype|byId|gcs|ioArgs|err|NodeList|_p|Color|debug|parentNode|toLowerCase|instanceof|Error|constructor|provide|isString|ta|255|val|_a|global|_69|isFunction|value||substring|join|map|tn||window||path|_343|_220|_listeners|connect|call|json|replace|left|_b|toString|128|parseFloat|isArray|throw||_percent|hitch|step|declare|charAt|nodeType|_3c3|nidx|slice|faux|fired|_c4|_7e|loc|curve|_active|url|_44c|responseText|str|_312|idx|tqp|isNaN|isOpera|_22d|callee|add|_18b|_f8|_e2|_41|anim|Number|opacity|case|Math|_paused|Deferred|lastIndexOf|||||||||shift|substr|string|_3e7|_3ce|break|_w|charCode|_listener|_d5|_c5|authority|_49|width|isSafari|_49e|fire|_timer|_47b|_465|eval|_in|_40c|_409|_362|_3d9|className|_3d5|_386|_37a|body|getComputedStyle|box|_221|keyCode|remove|_8d|_46|paused|status|not|_478|_461|form|splice|filter|concat|tret|childNodes|_38b|_367|_33d||||||||||_340|_348|keypress|appendChild|_toArray|Array|_2b0|_toPixelValue|ref|_fixEvent|_19f|_14c|_14a|_150|_141|declaredClass|_d4|_99|_Url|_83|scheme|_67|_3d|switch|getValue|_startRepeatCount|repeat|_startTime|_47e|cancel|tif|load|to|with|tf|getElementsByTagName|number|_34c|_342|extend|_1e3|_normalizeEventName|_14b|_14e|results|self|cbfn|_f9|_d8|_b2|src|_88|dav||baseUrl|fragment|_loadedModules|_44|_43|_loaders|mll|height||easing|play|setTimeout|Date|clearTimeout|hdr|content|code|errback|_464|addCallbacks|_450|fromJson|_413|_3fc|_3ee|max|_31e|cond|getAttribute|_3d4|obi|tagName|_360|_381|contains|firstChild|_368|_372|_320|place|_2fa|scrollTop|_299|scrollLeft|top|documentElement|_288|_287|_getBorderExtents|_23f|_23d|_239|_218|_216|_211|eles|target|keys|shiftKey|ctrlKey|event|192|iel|_1db|delete|_1cf||addEventListener|String|_1af|_157|array|_14d|continue|_14f|_137|_11f|_106|_findMethod|has|_delegate|_dc|_d3|loaded|_9a|_loadInit|_inFlightCount|getObject|tv|_4f|_postLoad|_2d|offsetWidth|properties|beforeBegin|animateProperty|_4ad|_4a6|isKhtml|_fade|100|headers|readyState|timeout|_469|_457|_44d|formToObject|_441|comment|_43d|_36f|_419|tp|_40a|_406|_407|_373|_403|_3e6|_31b|cbi|test|_3c7|nextSibling|last|_3a1|_38e|_365|_36b|ecn|_364|_363|_356|_35e|_35f|_34f|_34d|_349|trim|tci|_328|_32b|_31f|_31c|_anim|_300|_2ff|_2f5|_2e7|removeClass|addClass|func|_2c4|cls|_2a9|_2ae|_280|_27f|_getPadExtents|isMoz|none|_233|cssText|_214|_fixCallback|_synthesizeEvent|stopPropagation|preventDefault|_setKeyChar|_1e1|ieh|_1d7|_1be|colorFromArray|sanitize|bits|rgb|_156|_fire|_resback|_13d|partial|_13a|silentlyCancelled|_topics|_127|_f1|_f0|superclass|_ec|_e3|mct|setObject|_bf|_b3|object|require|_92|_khtmlTimer|location|XMLHTTP|locale|dua|_71|_modulePrefixes|_55|_loadModule|_51|_50|_4e|pop|_3f|_callLoaded|_unloaders|_loadNotifying|_loadedUrls|_27|_24|_1d|_5|_4b7|onAnimate|getStyle|offsetHeight|_defaultEasing|toCss|_properties|fadeOut|fadeIn|_49f|auto|zoom|_cycle|_endTime|valueOf|_494|duration|_492|DELETE|_ioAddQueryToUrl|putData|contentType|password|user|_isDocumentOk|application|||||_466||||||startTime|_xhrObj|_45f|handleAs|addBoth|error|text|objectToQuery|_44f|ActiveXObject|_443|_442|filtered|_43f|_43e|_437|file|tnl|_41c|_filterQueryResult|_zipIdx|_408|_402|evaluate|_3ed|_380|fHit|_361|_33b|_3da|_3ab|_3d6|RegExp|_327|_3cf|_3c9|child|innerHTML|first|tval|_391|class|pnc|_37e|_37c|_375|_366|_35c|_35a|_353|_33c|_336|_314|||_315|_oe|_307|_309|cloneNode|after|createElement||_2f8|_2ef|_2ee|unshift|coords|some|every||_2cb|script|_2c9|parent||a2p||_2c3|_2bd||abs|_getMarginBox|_2b3|_2a6|position|_2a7|_2ac|_2ab|_getIeDocumentElementOffset|getBoundingClientRect|ownerDocument|_2a3|clientWidth|_isBodyLtr|_fixIeBiDiScrollLeft|_bodyLtr|_29d|_getContentBox|_setBox|_getMarginExtents|_getPadBorderExtents|_usesBorderBox|boxModel|pcs|st|sl|_240|runtimeStyle|_dcm|BackCompat|compatMode|default|_21b|_d|html|_event_listener|handlers|PAGE_DOWN|PAGE_UP|RIGHT_ARROW|LEFT_ARROW|DOWN_ARROW|UP_ARROW|_preventDefault||_stopPropagation|returnValue||_trySetKeyCode|cancelBubble|currentTarget|106|_1ee|111||_1e8|_1e7|||se|srcElement|onkeydown||_1d0|_disconnect|lid|_1c0|_connect|_set|_195|_185|_183|_17d|_everyOrSome|_16b|_172|_15b|Function|_154|_escapeString|_140|chain|_check|canceller|_12d|_124|_11a|_10d|_107|inherited|_fa|_f2|_findMixin|_constructor|preamble|_de|clone|tmp|_c7|TMP|_be|_ba|_mixin|isBrowser|lang|firebug||param|modulePaths|_a7|_fireCallback|_a0|setContext||_9c|unloaded||||_96|_93|navigator|_90|_89||protocol|_84|_86|_XMLHTTP_PROGIDS|gears|google|setAttribute|_80|_77|cfg|_6f|_getModuleSymbols|_5a|_58|_53|_4d|_4c|_45|_40|_moduleHasPrefix|_loadUri|_28|_26|_21|_22|tests|doh|_20|_1f|_1c|version|_1b|_19|_getProp|_11|_4|_4a5|_4b3|_Animation|tempColor|blendColors|PI|sin|||||_49a|normal|onEnd||rate||curr|onStop|_497||_496|pct|onPause|onPlay|onBegin|delay||_491|_Line|_48b|wrapForm|PUT|_487|POST|GET|_476|_474|_472|_ioWatch|send|_471|setRequestHeader|open|callback|setInterval|_470|resHandle|_46f|ioCheck|_46e|validCheck|getTime|_ioCancelAll|addOnUnload|clearInterval|dojoType|now|canceled|_blockAsync|_45e|_45c|_459|_ioSetArgs|_contentHandlers|abort|_458|_456||||addErrback|_454|addCallback|_452|_44b|_44a|_449|preventCache|responseXML|Microsoft|JSON|usePlainJson|_431|toJson|_430|_42d|image|opt|ria|_421|_41b|_40b|_zip|_410|_40d|_357|sqf|_374|_3e5|_3df|_38f|clc|pred|parseInt|ntf|_3bf|_3bc|cnl|previousSibling|_3a9|_3a6|_39c|_399|_396|_392|__cachedIndex|__cachedLength|_376|iterateNext|_34a|_355|_354|_32c|_350|_34b|_33f|_33e|_33a|_338|_334|_332||_330|_32e||_322|_316|mousemove|mouseout|mouseover|_305|lastChild||_2f9||_2f2|_2f1|removeChild|_2ec|_2eb|_2ea|_2e6||_2e4|_2e2|_2d6|_2d5|_2d4|_2d3|_2d2|_2d1|_2cd|_2cc|scs|write|_2c8|hasClass|_2c0|_2bb|_2b5|_abs|_docScroll|offsetParent|offsetTop|offsetLeft|absolute|getBoxObjectFor|clientLeft|_setContentSize|_setMarginBox|_28d|_286|_285|_289|NaN|_281|border|_272|_26b|_260|_258|_253|_24c|_246|_23a|_getOpacity|_setOpacity|_238|td|tr|nodeName|FILTER|_22f|_22e|currentStyle|_22c|_22b|display|QuirksMode|unselectable|_217|isMozilla|getElementById|attributes|all|_ie_listener|_getIeDispatcher|_1fd|NUM_LOCK|SCROLL_LOCK|INSERT|END|HOME|PAUSE|F12|F11|F10|F9|F8|F7|F6|F5|F4|F3|F2|F1|63232|SHIFT_TAB|TAB|keyIdentifier|_1f3|stopEvent|_punctMap|222|219|186|onkeypress|_stealthKeyDown|_fixKeys|relatedTarget|_1e0|_1df|_stealthKeydown|_1d6|_1d5|_1d1|_1ca|_1c9|_1cb|_1c2|_1c1|_1c3|_1c4|_1bc|_1b3|_1b2|colorFromHex|colorFromRgb|named|colorFromString|mask|rgba|_19c|_197|_192|setColor|_180|_178|_177|_175|_174|_16d|_166|_164|_163|_162|_15c|_15d|_15e|index|__json__|toJsonIndentStr|_nextId|_12f|_12b|publish|_128|_126|_125|_122|_121|_123|_11c|_11b|_10c|_10b|_108|getDispatcher|argument|nom|_construct|_core|_makeCtor|_df|_db|deprecated|isObject|_cc||scope||_hitchArgs|_c2||pre|_c1|native|isDebug||registerModulePath|_a8||finally|||_a6|_a5|_a4|_a3|_a2|_a1|_9f|_9e|_9d|_9b|_98|_97|onbeforeunload|ipt|scr|complete|_95|userAgent|_modulesLoaded|initialized|_initFired|_8c|_8a|_getText|_87|ieForceActiveXXhr|Msxml2|isGears|_81|_gearsObject|googlegears|GearsFactory|isFF|_7d|Safari|_72|_name|_6c|ire|ore|_68|i18n|_5b|requireIf|_56|_52|loading|_4a|_loadPath|_47|_48|_global_omit_module_check|_getModulePrefix|_3c|_3a|_37|_30|Boolean|_loadUriAndCheck|_2e||cacheBust|_1e|_1a|_17|_16|_15|_14|_f|_10|_e|_9|_8|revision|flag|patch|minor|major|_6|color|units|needs|stopped|playing|stop|gotoPercent|pause|1000|implemented|yet|_48a|xhrDelete|rawXhrPut|xhrPut|postData|rawXhrPost|xhrPost|xhrGet|Type|Content|sync|response|http|bad|urlencoded|www|_watchInFlightError||exceeded|handle|action|getAttributeNode|loadXML|async|XMLDOM|prefixes|MSXML3|MSXML|MSXML2||xml|javascript|wasn|your|optional|message|off|turn|use|endpoints|issues|security|potential|avoid|mimetype|using|consider|please|decodeURIComponent|queryToObject|formToJson|formToQuery|encodeURIComponent|selected|option|multiple|checked|checkbox|radio|disabled|textarea|select|button|reset|submit|input|_3fb|hasAttribute|0n|even|odd|nth|_3b5|empty|_3b1|_3ad|htmlFor|_38a|under||exprssion|failure|ANY_TYPE|XPathResult|starts|keyup|keydown|mouseup|mousedown|blur|click|combine|span|addContent||adopt|orphan|_2de|_2dd|styles|_2da|_2d9|_2cf|_2ce|show|createPopup|toggleClass|scrollWidth|clientTop|ltr|direction|pageXOffset|pageYOffset|fixed|contentBox|marginBox|BUTTON|TABLE|_getBorderBox|clientHeight|visible|overflow|marginBottom|marginRight|marginTop|marginLeft|borderBottomWidth|borderBottomStyle|borderRightWidth|borderRightStyle|borderTopWidth|borderTopStyle|borderLeftWidth|borderLeftStyle|paddingBottom|paddingRight|paddingTop|paddingLeft|offset||min|padding||margin|Opacity|Alpha|alpha|filters|pixelLeft|medium|_22a|defaultView|before||insertBefore|KhtmlUserSelect|MozUserSelect|setSelectable|isDescendant|div|_destroyElement|BackgroundImageCache|execCommand|PageDown|PageUp|Right|Left|Down|Up|63289|63249|63248|PRINT_SCREEN|63302|63277|63276|63275|63273|63272|63250|63247|63246|63245|63244|63243|63242|63241|63240|63239|63238|63237|63236|63235|63234|63233|Enter|_1f9|which|_1f6|bubbledKeyCode|221|220||||191|190|189|188|187|toElement|fromElement|clientY|pageY||clientX|pageX|offsetY|||layerY|offsetX|layerX|parentWindow|_nop|_allow_leaks|145|144|126|F15|125|F14|124|F13|123|122|121|120|119|118|117|116|115|114|113|112|NUMPAD_DIVIDE|110|NUMPAD_PERIOD|109|NUMPAD_MINUS|108|NUMPAD_ENTER|107|NUMPAD_PLUS|NUMPAD_MULTIPLY|105|NUMPAD_9|104|NUMPAD_8|103|NUMPAD_7|102|NUMPAD_6|101|NUMPAD_5|NUMPAD_4||NUMPAD_3|NUMPAD_2|NUMPAD_1|NUMPAD_0||SELECT|RIGHT_WINDOW||LEFT_WINDOW||HELP|SPACE|ESCAPE|CAPS_LOCK|ALT|CTRL|SHIFT|ENTER|CLEAR|BACKSPACE|attachEvent|fixEvent|fromCharCode|keyChar|_1b9|removeEventListener|0x|round|toHex|toRgba|toRgb|aqua|teal|blue|navy|yellow|olive|lime|green|fuchsia|purple|red|maroon|white|gray|silver|black|boolean|called|already|Cancelled|connectPublisher|unsubscribe|subscribe|disconnect|_113|_112||_111|_110|||found|was||must|_|module|||required|likely|It|declaration|Mixin|separate|instead|property|initializer||pass|_c9|_bb|_b7|nfunction|isAlien|isFinite|isArrayLike|_firebug|withDoc|withGlobal|_writeIncludes|VML|behavior|addRule|createStyleSheet|vml|com|microsoft|schemas|urn|namespaces|onunload|onreadystatechange|defer|khtml|WebKit|DOMContentLoaded|enableMozDomContentLoaded|domcontentloaded|Unable|base|chrome|1223|304|300|200|available|XMLHttpRequest|_println|language|userLanguage|isQuirks|factory|mimeTypes|Factory|Gears|_7f|MSIE||Firefox|Gecko|Konqueror||Opera|appVersion|xd|browser|moduleUrl|port|host|hostenv|_requireLocalization|_5f|_5e|_5d|_5c|requireLocalization|requireAfterIf|_57|common|platformRequire|defined|symbol|_isXDomain|tried|Could|__package__|packageFileName|_42|useXDomain|flight|still|files|addOnLoad|failed|sourceURL|util|notice|without|change|subject|APIs|EXPERIMENTAL|experimental|removed|will|DEPRECATED|exists|10315|Rev|Mobile|Spidermonkey|Rhino||Browser|delayMozLoadingFix|preventBackButtonFix|libraryScriptUri|baseRelativePath|baseScriptUri|allowQueryConfig|warn|trace|timeEnd||time|profileEnd|profile|log|info|groupEnd|group|dirxml|dir|count|assert'.split('|'),0,{});
+
+
+/*
+
+Prototype 1.5 rc0
+ - Adapted from Ruby on Rails - http://dev.rubyonrails.org/browser/spinoffs/prototype/src
+ - By Lunarmedia, 06 August, 2006
+ - Available at (and packed with) JavascriptCompressor.com
+
+Please note this version is missing the selector.js component of the full Prototype library.
+You can get the compressed version of selector at JavascriptCompressor.com
+
+*/
+
+var decompressedPrototype = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[(function(e){return d[e]})];e=(function(){return'\\w+'});c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('d T={4l:\'1.5.8P\',3E:\'(?:<3G.*?>)((\\n|\\r|.)*?)(?:<\\/3G>)\',2v:7(){},K:7(x){c x}};d 1b={17:7(){c 7(){6.1I.2n(6,N)}}};d 1e=z q();q.u=7(5d,O){G(d 1G 2M O){5d[1G]=O[1G]}c 5d};q.1U=7(U){1j{f(U==1v)c\'1v\';f(U==1L)c\'1L\';c U.1U?U.1U():U.2C()}1s(e){f(e 8R 9l)c\'...\';25 e}};7j.v.1d=7(){d 43=6,23=$A(N),U=23.8S();c 7(){c 43.2n(U,23.3s($A(N)))}};7j.v.8U=7(U){d 43=6;c 7(C){c 43.8V(U,C||1W.C)}};q.u(8Q.v,{8W:7(){d 4Z=6.2C(16);f(6<16)c\'0\'+4Z;c 4Z},5j:7(){c 6+1},8Y:7(o){$R(0,6,11).V(o);c 6}});d 6s={6j:7(){d 48;G(d i=0;i<N.t;i++){d 6L=N[i];1j{48=6L();1y}1s(e){}}c 48}};d 6Q=1b.17();6Q.v={1I:7(1a,1J){6.1a=1a;6.1J=1J;6.41=Y;6.2A()},2A:7(){5Z(6.2D.1d(6),6.1J*4z)},2D:7(){f(!6.41){1j{6.41=11;6.1a()}8Z{6.41=Y}}}};q.u(4b.v,{2T:7(1A,1z){d L=\'\',O=6,I;1z=N.90.52(1z);1H(O.t>0){f(I=O.I(1A)){L+=O.47(0,I.w);L+=(1z(I)||\'\').2C();O=O.47(I.w+I[0].t)}1D{L+=O,O=\'\'}}c L},92:7(1A,1z,3i){1z=6.2T.52(1z);3i=3i===1v?1:3i;c 6.2T(1A,7(I){f(--3i<0)c I[0];c 1z(I)})},93:7(1A,o){6.2T(1A,o);c 6},94:7(t,2S){t=t||30;2S=2S===1v?\'...\':2S;c 6.t>t?6.47(0,t-2S.t)+2S:6},9F:7(){c 6.2y(/^\\s+/,\'\').2y(/\\s+$/,\'\')},71:7(){c 6.2y(/<\\/?[^>]+>/7Y,\'\')},2Q:7(){c 6.2y(z 3O(T.3E,\'5P\'),\'\')},70:7(){d 6Y=z 3O(T.3E,\'5P\');d 5p=z 3O(T.3E,\'98\');c(6.I(6Y)||[]).1C(7(5o){c(5o.I(5p)||[\'\',\'\'])[1]})},3q:7(){c 6.70().1C(7(3G){c 4q(3G)})},9E:7(){d 1q=J.4Y(\'1q\');d 1Y=J.9D(6);1q.75(1Y);c 1q.3h},9c:7(){d 1q=J.4Y(\'1q\');1q.3h=6.71();c 1q.2z[0]?1q.2z[0].6q:\'\'},78:7(){d 7i=6.I(/^\\??(.*)$/)[1].3j(\'&\');c 7i.36({},7(5b,72){d 1i=72.3j(\'=\');5b[1i[0]]=1i[1];c 5b})},1Z:7(){c 6.3j(\'\')},3P:7(){d 2l=6.3j(\'-\');f(2l.t==1)c 2l[0];d 54=6.5g(\'-\')==0?2l[0].7e(0).3Y()+2l[0].7g(1):2l[0];G(d i=1,73=2l.t;i<73;i++){d s=2l[i];54+=s.7e(0).3Y()+s.7g(1)}c 54},1U:7(){c"\'"+6.2y(/\\\\/g,\'\\\\\\\\\').2y(/\'/g,\'\\\\\\\'\')+"\'"}});4b.v.2T.52=7(1z){f(2i 1z==\'7\')c 1z;d 2U=z 3n(1z);c 7(I){c 2U.7a(I)}};4b.v.9h=4b.v.78;d 3n=1b.17();3n.79=/(^|.|\\r|\\n)(#\\{(.*?)\\})/;3n.v={1I:7(2U,1A){6.2U=2U.2C();6.1A=1A||3n.79},7a:7(U){c 6.2U.2T(6.1A,7(I){d 53=I[1];f(53==\'\\\\\')c I[2];c 53+(U[I[3]]||\'\').2C()})}};d $1y=z q();d $49=z q();d 1p={V:7(o){d w=0;1j{6.2m(7(h){1j{o(h,w++)}1s(e){f(e!=$49)25 e}})}1s(e){f(e!=$1y)25 e}},9n:7(o){d L=11;6.V(7(h,w){L=L&&!!(o||T.K)(h,w);f(!L)25 $1y});c L},9o:7(o){d L=11;6.V(7(h,w){f(L=!!(o||T.K)(h,w))25 $1y});c L},3e:7(o){d P=[];6.V(7(h,w){P.W(o(h,w))});c P},7n:7(o){d L;6.V(7(h,w){f(o(h,w)){L=h;25 $1y}});c L},7o:7(o){d P=[];6.V(7(h,w){f(o(h,w))P.W(h)});c P},9p:7(1A,o){d P=[];6.V(7(h,w){d 7c=h.2C();f(7c.I(1A))P.W((o||T.K)(h,w))});c P},1M:7(U){d 51=Y;6.V(7(h){f(h==U){51=11;25 $1y}});c 51},36:7(45,o){6.V(7(h,w){45=o(45,h,w)});c 45},9q:7(1F){d 23=$A(N).47(1);c 6.3e(7(h){c h[1F].2n(h,23)})},9s:7(o){d L;6.V(7(h,w){h=(o||T.K)(h,w);f(L==1v||h>=L)L=h});c L},9u:7(o){d L;6.V(7(h,w){h=(o||T.K)(h,w);f(L==1v||h<L)L=h});c L},9v:7(o){d 50=[],58=[];6.V(7(h,w){((o||T.K)(h,w)?50:58).W(h)});c[50,58]},3r:7(1G){d P=[];6.V(7(h,w){P.W(h[1G])});c P},9x:7(o){d P=[];6.V(7(h,w){f(!o(h,w))P.W(h)});c P},9y:7(o){c 6.3e(7(h,w){c{h:h,59:o(h,w)}}).9z(7(18,3U){d a=18.59,b=3U.59;c a<b?-1:a>b?1:0}).3r(\'h\')},1Z:7(){c 6.3e(T.K)},9B:7(){d o=T.K,23=$A(N);f(2i 23.5e()==\'7\')o=23.9C();d 7l=[6].3s(23).1C($A);c 6.1C(7(h,w){c o(7l.3r(w))})},1U:7(){c\'#<1p:\'+6.1Z().1U()+\'>\'}};q.u(1p,{1C:1p.3e,5v:1p.7n,1k:1p.7o,8M:1p.1M,7p:1p.1Z});d $A=1E.7q=7(2R){f(!2R)c[];f(2R.1Z){c 2R.1Z()}1D{d P=[];G(d i=0;i<2R.t;i++)P.W(2R[i]);c P}};q.u(1E.v,1p);f(!1E.v.4d)1E.v.4d=1E.v.4m;q.u(1E.v,{2m:7(o){G(d i=0;i<6.t;i++)o(6[i])},5i:7(){6.t=0;c 6},7r:7(){c 6[0]},5e:7(){c 6[6.t-1]},7s:7(){c 6.1k(7(h){c h!=1v||h!=1L})},6J:7(){c 6.36([],7(6H,h){c 6H.3s(h&&h.5D==1E?h.6J():[h])})},5s:7(){d 4N=$A(N);c 6.1k(7(h){c!4N.1M(h)})},5g:7(U){G(d i=0;i<6.t;i++)f(6[i]==U)c i;c-1},4m:7(5h){c(5h!==Y?6:6.1Z()).4d()},1U:7(){c\'[\'+6.1C(q.1U).1N(\', \')+\']\'}});d 4h={2m:7(o){G(d 1O 2M 6){d h=6[1O];f(2i h==\'7\')49;d 1i=[1O,h];1i.1O=1O;1i.h=h;o(1i)}},7t:7(){c 6.3r(\'1O\')},4N:7(){c 6.3r(\'h\')},7u:7(2N){c $H(2N).36($H(6),7(4Q,1i){4Q[1i.1O]=1i.h;c 4Q})},7w:7(){c 6.1C(7(1i){c 1i.1C(4n).1N(\'=\')}).1N(\'&\')},1U:7(){c\'#<4h:{\'+6.1C(7(1i){c 1i.1C(q.1U).1N(\': \')}).1N(\', \')+\'}>\'}};7 $H(U){d 2N=q.u({},U||{});q.u(2N,1p);q.u(2N,4h);c 2N};3L=1b.17();q.u(3L.v,1p);q.u(3L.v,{1I:7(22,2x,2H){6.22=22;6.2x=2x;6.2H=2H},2m:7(o){d h=6.22;2q{o(h);h=h.5j()}1H(6.1M(h))},1M:7(h){f(h<6.22)c Y;f(6.2H)c h<6.2x;c h<=6.2x}});d $R=7(22,2x,2H){c z 3L(22,2x,2H)};d M={4w:7(){c 6s.6j(7(){c z 5C()},7(){c z 5n(\'7y.6d\')},7(){c z 5n(\'7z.6d\')})||Y},4s:0};M.2W={3b:[],2m:7(o){6.3b.2m(o)},69:7(4F){f(!6.1M(4F))6.3b.W(4F)},7A:7(5t){6.3b=6.3b.5s(5t)},3y:7(1a,26,E,2Z){6.V(7(3o){f(3o[1a]&&2i 3o[1a]==\'7\'){1j{3o[1a].2n(3o,[26,E,2Z])}1s(e){}}})}};q.u(M.2W,1p);M.2W.69({5G:7(){M.4s++},1B:7(){M.4s--}});M.44=7(){};M.44.v={4a:7(m){6.m={1F:\'4j\',4p:11,5H:\'5E/x-86-Q-7C\',28:\'\'};q.u(6.m,m||{})},3l:7(){c 6.E.32==1v||6.E.32==0||(6.E.32>=84&&6.E.32<7E)},7G:7(){c!6.3l()}};M.3t=1b.17();M.3t.5L=[\'7H\',\'80\',\'7I\',\'7J\',\'4t\'];M.3t.v=q.u(z M.44(),{1I:7(1l,m){6.E=M.4w();6.4a(m);6.26(1l)},26:7(1l){d 28=6.m.28||\'\';f(28.t>0)28+=\'&7K=\';1j{6.1l=1l;f(6.m.1F==\'7L\'&&28.t>0)6.1l+=(6.1l.I(/\\?/)?\'&\':\'?\')+28;M.2W.3y(\'5G\',6,6.E);6.E.7N(6.m.1F,6.1l,6.m.4p);f(6.m.4p){6.E.5T=6.5J.1d(6);2Y((7(){6.4r(1)}).1d(6),10)}6.5A();d 1c=6.m.5V?6.m.5V:28;6.E.7O(6.m.1F==\'4j\'?1c:1L)}1s(e){6.3p(e)}},5A:7(){d 1P=[\'X-7P-7Q\',\'5C\',\'X-T-4l\',T.4l,\'7R\',\'1Y/7m, 1Y/2e, 5E/5F, 1Y/5F, */*\'];f(6.m.1F==\'4j\'){1P.W(\'5Q-2g\',6.m.5H);f(6.E.7S)1P.W(\'7T\',\'7U\')}f(6.m.1P)1P.W.2n(1P,6.m.1P);G(d i=0;i<1P.t;i+=2)6.E.7V(1P[i],1P[i+1])},5J:7(){d 2F=6.E.2F;f(2F!=1)6.4r(6.E.2F)},4A:7(B){1j{c 6.E.7W(B)}1s(e){}},5M:7(){1j{c 4q(\'(\'+6.4A(\'X-7X\')+\')\')}1s(e){}},5R:7(){1j{c 4q(6.E.3F)}1s(e){6.3p(e)}},4r:7(2F){d C=M.3t.5L[2F];d E=6.E,2Z=6.5M();f(C==\'4t\'){1j{(6.m[\'2I\'+6.E.32]||6.m[\'2I\'+(6.3l()?\'81\':\'82\')]||T.2v)(E,2Z)}1s(e){6.3p(e)}f((6.4A(\'5Q-2g\')||\'\').I(/^1Y\\/7m/i))6.5R()}1j{(6.m[\'2I\'+C]||T.2v)(E,2Z);M.2W.3y(\'2I\'+C,6,E,2Z)}1s(e){6.3p(e)}f(C==\'4t\')6.E.5T=T.2v},3p:7(57){(6.m.5W||T.2v)(6,57);M.2W.3y(\'5W\',6,57)}});M.4C=1b.17();q.u(q.u(M.4C.v,M.3t.v),{1I:7(1w,1l,m){6.4x={3m:1w.3m?$(1w.3m):$(1w),3z:1w.3z?$(1w.3z):(1w.3m?1L:$(1w))};6.E=M.4w();6.4a(m);d 1B=6.m.1B||T.2v;6.m.1B=(7(E,U){6.5Y();1B(E,U)}).1d(6);6.26(1l)},5Y:7(){d 3A=6.3l()?6.4x.3m:6.4x.3z;d 3k=6.E.3F;f(!6.m.3q)3k=3k.2Q();f(3A){f(6.m.60){z 6.m.60(3A,3k)}1D{k.6h(3A,3k)}}f(6.3l()){f(6.1B)2Y(6.1B.1d(6),10)}}});M.61=1b.17();M.61.v=q.u(z M.44(),{1I:7(1w,1l,m){6.4a(m);6.1B=6.m.1B;6.1J=(6.m.1J||2);6.2s=(6.m.2s||1);6.4B={};6.1w=1w;6.1l=1l;6.22()},22:7(){6.m.1B=6.63.1d(6);6.2D()},7b:7(){6.4B.1B=1v;89(6.65);(6.1B||T.2v).2n(6,N)},63:7(26){f(6.m.2s){6.2s=(26.3F==6.64?6.2s*6.m.2s:1);6.64=26.3F}6.65=2Y(6.2D.1d(6),6.2s*6.1J*4z)},2D:7(){6.4B=z M.4C(6.1w,6.1l,6.m)}});7 $(){d P=[],4;G(d i=0;i<N.t;i++){4=N[i];f(2i 4==\'8c\')4=J.8d(4);P.W(k.u(4))}c P.t<2?P[0]:P};J.8f=7(1f,6a){d 6b=($(6a)||J.1c).4D(\'*\');c $A(6b).36([],7(12,4E){f(4E.1f.I(z 3O("(^|\\\\s)"+1f+"(\\\\s|$)")))12.W(k.u(4E));c 12})};f(!1W.k)d k=z q();k.u=7(4){f(!4)c;f(4X)c 4;f(!4.6e&&4.1h&&4!=1W){d 2a=k.3d,2r=k.u.2r;G(d 1G 2M 2a){d h=2a[1G];f(2i h==\'7\')4[1G]=2r.4W(h)}}4.6e=11;c 4};k.u.2r={4W:7(h){c 6[h]=6[h]||7(){c h.2n(1L,[6].3s($A(N)))}}};k.3d={4U:7(4){c $(4).l.2B!=\'3Q\'},6N:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);k[k.4U(4)?\'6f\':\'6w\'](4)}},6f:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);4.l.2B=\'3Q\'}},6w:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);4.l.2B=\'\'}},42:7(4){4=$(4);4.1X.8h(4)},6h:7(4,2e){$(4).3h=2e.2Q();2Y(7(){2e.3q()},10)},2y:7(4,2e){4=$(4);f(4.6k){4.6k=2e.2Q()}1D{d 1K=4.6R.6S();1K.56(4);4.1X.8i(1K.6T(2e.2Q()),4)}2Y(7(){2e.3q()},10)},8k:7(4){4=$(4);c 4.2k},3K:7(4){c z k.3S(4)},8l:7(4,1f){f(!(4=$(4)))c;c k.3K(4).1M(1f)},8m:7(4,1f){f(!(4=$(4)))c;c k.3K(4).7k(1f)},8n:7(4,1f){f(!(4=$(4)))c;c k.3K(4).42(1f)},8p:7(4){4=$(4);G(d i=0;i<4.2z.t;i++){d 3M=4.2z[i];f(3M.8q==3&&!/\\S/.4v(3M.6q))k.42(3M)}},8r:7(4){c $(4).3h.I(/^\\s*$/)},8s:7(4,3I){4=$(4),3I=$(3I);1H(4=4.1X)f(4==3I)c 11;c Y},6t:7(4){4=$(4);d x=4.x?4.x:4.2f,y=4.y?4.y:4.29;1W.6t(x,y)},1R:7(4,l){4=$(4);d h=4.l[l.3P()];f(!h){f(J.4J&&J.4J.6v){d 4L=J.4J.6v(4,1L);h=4L?4L.8v(l):1L}1D f(4.6x){h=4.6x[l.3P()]}}f(1W.6E&&[\'18\',\'1n\',\'3U\',\'6G\'].1M(l))f(k.1R(4,\'14\')==\'4G\')h=\'6y\';c h==\'6y\'?1L:h},8x:7(4,l){4=$(4);G(d B 2M l)4.l[B.3P()]=l[B]},8y:7(4){4=$(4);f(k.1R(4,\'2B\')!=\'3Q\')c{21:4.2p,24:4.2k};d 20=4.l;d 6B=20.4O;d 6A=20.14;20.4O=\'31\';20.14=\'2o\';20.2B=\'\';d 6C=4.6m;d 6D=4.6p;20.2B=\'3Q\';20.14=6A;20.4O=6B;c{21:6C,24:6D}},8z:7(4){4=$(4);d 4R=k.1R(4,\'14\');f(4R==\'4G\'||!4R){4.4T=11;4.l.14=\'3T\';f(1W.6E){4.l.1n=0;4.l.18=0}}},8A:7(4){4=$(4);f(4.4T){4.4T=1v;4.l.14=4.l.1n=4.l.18=4.l.6G=4.l.3U=\'\'}},8B:7(4){4=$(4);f(4.3c)c;4.3c=4.l.3V;f((k.1R(4,\'3V\')||\'4U\')!=\'31\')4.l.3V=\'31\'},8D:7(4){4=$(4);f(4.3c)c;4.l.3V=4.3c;4.3c=1v}};q.u(k,k.3d);d 4X=Y;f(!3W&&/3x|3w|3u/.4v(33.62)){d 3W={}};k.6K=7(2a){q.u(k.3d,2a||{});f(2i 3W!=\'1v\'){d 2a=k.3d,2r=k.u.2r;G(d 1G 2M 2a){d h=2a[1G];f(2i h==\'7\')3W.v[1G]=2r.4W(h)}4X=11}};k.6K();d 6M=z q();6M.2B=k.6N;1e.1g=7(3f){6.3f=3f};1e.1g.v={1I:7(4,2t){6.4=$(4);6.2t=2t.2Q();f(6.3f&&6.4.6O){1j{6.4.6O(6.3f,6.2t)}1s(e){d 1h=6.4.1h.2w();f(1h==\'4V\'||1h==\'8N\'){6.2X(6.6U())}1D{25 e}}}1D{6.1K=6.4.6R.6S();f(6.2V)6.2V();6.2X([6.1K.6T(6.2t)])}2Y(7(){2t.3q()},10)},6U:7(){d 1q=J.4Y(\'1q\');1q.3h=\'<6V><4V>\'+6.2t+\'</4V></6V>\';c $A(1q.2z[0].2z[0].2z)}};d 1g=z q();1g.6W=1b.17();1g.6W.v=q.u(z 1e.1g(\'96\'),{2V:7(){6.1K.97(6.4)},2X:7(2h){2h.V((7(2j){6.4.1X.55(2j,6.4)}).1d(6))}});1g.5m=1b.17();1g.5m.v=q.u(z 1e.1g(\'99\'),{2V:7(){6.1K.56(6.4);6.1K.74(11)},2X:7(2h){2h.4m(Y).V((7(2j){6.4.55(2j,6.4.9a)}).1d(6))}});1g.7h=1b.17();1g.7h.v=q.u(z 1e.1g(\'9d\'),{2V:7(){6.1K.56(6.4);6.1K.74(6.4)},2X:7(2h){2h.V((7(2j){6.4.75(2j)}).1d(6))}});1g.76=1b.17();1g.76.v=q.u(z 1e.1g(\'9i\'),{2V:7(){6.1K.9m(6.4)},2X:7(2h){2h.V((7(2j){6.4.1X.55(2j,6.4.9t)}).1d(6))}});k.3S=1b.17();k.3S.v={1I:7(4){6.4=$(4)},2m:7(o){6.4.1f.3j(/\\s+/).1k(7(B){c B.t>0}).2m(o)},5c:7(1f){6.4.1f=1f},7k:7(5a){f(6.1M(5a))c;6.5c(6.1Z().3s(5a).1N(\' \'))},42:7(4c){f(!6.1M(4c))c;6.5c(6.1k(7(1f){c 1f!=4c}).1N(\' \'))},2C:7(){c 6.1Z().1N(\' \')}};q.u(k.3S.v,1p);d 5I={5i:7(){G(d i=0;i<N.t;i++)$(N[i]).h=\'\'},4f:7(4){$(4).4f()},7v:7(){G(d i=0;i<N.t;i++)f($(N[i]).h==\'\')c Y;c 11},1k:7(4){$(4).1k()},5y:7(4){4=$(4);4.4f();f(4.1k)4.1k()}};d D={3a:7(Q){d 12=D.2L($(Q));d 4I=z 1E();G(d i=0;i<12.t;i++){d 4g=D.k.3a(12[i]);f(4g)4I.W(4g)}c 4I.1N(\'&\')},2L:7(Q){Q=$(Q);d 12=z 1E();G(d 1h 2M D.k.2E){d 4H=Q.4D(1h);G(d j=0;j<4H.t;j++)12.W(4H[j])}c 12},7x:7(Q,3N,B){Q=$(Q);d 3H=Q.4D(\'2u\');f(!3N&&!B)c 3H;d 4y=z 1E();G(d i=0;i<3H.t;i++){d 2u=3H[i];f((3N&&2u.2g!=3N)||(B&&2u.B!=B))49;4y.W(2u)}c 4y},7B:7(Q){d 12=D.2L(Q);G(d i=0;i<12.t;i++){d 4=12[i];4.7D();4.4o=\'11\'}},7F:7(Q){d 12=D.2L(Q);G(d i=0;i<12.t;i++){d 4=12[i];4.4o=\'\'}},5z:7(Q){c D.2L(Q).5v(7(4){c 4.2g!=\'31\'&&!4.4o&&[\'2u\',\'1k\',\'3J\'].1M(4.1h.2w())})},7M:7(Q){5I.5y(D.5z(Q))},5w:7(Q){$(Q).5w()}};D.k={3a:7(4){4=$(4);d 1F=4.1h.2w();d 1S=D.k.2E[1F](4);f(1S){d 1O=4n(1S[0]);f(1O.t==0)c;f(1S[1].5D!=1E)1S[1]=[1S[1]];c 1S[1].1C(7(h){c 1O+\'=\'+4n(h)}).1N(\'&\')}},1x:7(4){4=$(4);d 1F=4.1h.2w();d 1S=D.k.2E[1F](4);f(1S)c 1S[1]}};D.k.2E={2u:7(4){6c(4.2g.2w()){1r\'7Z\':1r\'31\':1r\'6l\':1r\'1Y\':c D.k.2E.3J(4);1r\'6g\':1r\'6i\':c D.k.2E.5O(4)}c Y},5O:7(4){f(4.83)c[4.B,4.h]},3J:7(4){c[4.B,4.h]},1k:7(4){c D.k.2E[4.2g==\'1k-6n\'?\'5S\':\'5X\'](4)},5S:7(4){d h=\'\',2b,w=4.85;f(w>=0){2b=4.m[w];h=2b.h||2b.1Y}c[4.B,h]},5X:7(4){d h=[];G(d i=0;i<4.t;i++){d 2b=4.m[i];f(2b.87)h.W(2b.h||2b.1Y)}c[4.B,h]}};d $F=D.k.1x;1e.3D=7(){};1e.3D.v={1I:7(4,1J,1a){6.1J=1J;6.4=$(4);6.1a=1a;6.2K=6.1x();6.2A()},2A:7(){5Z(6.2D.1d(6),6.1J*4z)},2D:7(){d h=6.1x();f(6.2K!=h){6.1a(6.4,h);6.2K=h}}};D.k.3C=1b.17();D.k.3C.v=q.u(z 1e.3D(),{1x:7(){c D.k.1x(6.4)}});D.3C=1b.17();D.3C.v=q.u(z 1e.3D(),{1x:7(){c D.3a(6.4)}});1e.2c=7(){};1e.2c.v={1I:7(4,1a){6.4=$(4);6.1a=1a;6.2K=6.1x();f(6.4.1h.2w()==\'Q\')6.67();1D 6.2A(6.4)},4K:7(){d h=6.1x();f(6.2K!=h){6.1a(6.4,h);6.2K=h}},67:7(){d 12=D.2L(6.4);G(d i=0;i<12.t;i++)6.2A(12[i])},2A:7(4){f(4.2g){6c(4.2g.2w()){1r\'6g\':1r\'6i\':1o.3B(4,\'8j\',6.4K.1d(6));1y;1r\'6l\':1r\'1Y\':1r\'3J\':1r\'1k-6n\':1r\'1k-8t\':1o.3B(4,\'8u\',6.4K.1d(6));1y}}}};D.k.2c=1b.17();D.k.2c.v=q.u(z 1e.2c(),{1x:7(){c D.k.1x(6.4)}});D.2c=1b.17();D.2c.v=q.u(z 1e.2c(),{1x:7(){c D.3a(6.4)}});f(!1W.1o){d 1o=z q()}q.u(1o,{8C:8,8F:9,8H:13,8I:27,8J:37,8L:38,8O:39,8T:40,8X:46,4:7(C){c C.Z||C.91},95:7(C){c(((C.6X)&&(C.6X==1))||((C.6Z)&&(C.6Z==1)))},9b:7(C){c C.9e||(C.9f+(J.3R.2G||J.1c.2G))},9g:7(C){c C.9j||(C.9k+(J.3R.2O||J.1c.2O))},7b:7(C){f(C.7d){C.7d();C.9r()}1D{C.48=Y;C.9w=11}},9A:7(C,1h){d 4=1o.4(C);1H(4.1X&&(!4.1h||(4.1h.3Y()!=1h.3Y())))4=4.1X;c 4},1T:Y,5u:7(4,B,1V,1u){f(!6.1T)6.1T=[];f(4.5f){6.1T.W([4,B,1V,1u]);4.5f(B,1V,1u)}1D f(4.4i){6.1T.W([4,B,1V,1u]);4.4i(\'2I\'+B,1V)}},66:7(){f(!1o.1T)c;G(d i=0;i<1o.1T.t;i++){1o.5N.2n(6,1o.1T[i]);1o.1T[i][0]=1L}1o.1T=Y},3B:7(4,B,1V,1u){d 4=$(4);1u=1u||Y;f(B==\'5U\'&&(33.4u.I(/3x|3w|3u/)||4.4i))B=\'5K\';6.5u(4,B,1V,1u)},5N:7(4,B,1V,1u){d 4=$(4);1u=1u||Y;f(B==\'5U\'&&(33.4u.I(/3x|3w|3u/)||4.4k))B=\'5K\';f(4.5x){4.5x(B,1V,1u)}1D f(4.4k){1j{4.4k(\'2I\'+B,1V)}1s(e){}}}});f(33.4u.I(/\\88\\b/))1o.3B(1W,\'8a\',1o.66,Y);d 2d={6o:Y,4P:7(){6.6z=1W.8e||J.3R.2G||J.1c.2G||0;6.6F=1W.8g||J.3R.2O||J.1c.2O||0},6u:7(4){d 19=0,15=0;2q{19+=4.2O||0;15+=4.2G||0;4=4.1X}1H(4);c[15,19]},35:7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;4=4.1Q}1H(4);c[15,19]},68:7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;4=4.1Q;f(4){p=k.1R(4,\'14\');f(p==\'3T\'||p==\'2o\')1y}}1H(4);c[15,19]},1Q:7(4){f(4.1Q)c 4.1Q;f(4==J.1c)c 4;1H((4=4.1X)&&4!=J.1c)f(k.1R(4,\'14\')!=\'4G\')c 4;c J.1c},8o:7(4,x,y){f(6.6o)c 6.6r(4,x,y);6.3g=x;6.34=y;6.1t=6.35(4);c(y>=6.1t[1]&&y<6.1t[1]+4.2k&&x>=6.1t[0]&&x<6.1t[0]+4.2p)},6r:7(4,x,y){d 4S=6.6u(4);6.3g=x+4S[0]-6.6z;6.34=y+4S[1]-6.6F;6.1t=6.35(4);c(6.34>=6.1t[1]&&6.34<6.1t[1]+4.2k&&6.3g>=6.1t[0]&&6.3g<6.1t[0]+4.2p)},8E:7(3Z,4){f(!3Z)c 0;f(3Z==\'8G\')c((6.1t[1]+4.2k)-6.34)/4.2k;f(3Z==\'8K\')c((6.1t[0]+4.2p)-6.3g)/4.2p},77:7(O,Z){O=$(O);Z=$(Z);Z.l.14=\'2o\';d 2P=6.35(O);Z.l.1n=2P[1]+\'1m\';Z.l.18=2P[0]+\'1m\';Z.l.21=O.2p+\'1m\';Z.l.24=O.2k+\'1m\'},4e:7(4M){d 19=0,15=0;d 4=4M;2q{19+=4.29||0;15+=4.2f||0;f(4.1Q==J.1c)f(k.1R(4,\'14\')==\'2o\')1y}1H(4=4.1Q);4=4M;2q{19-=4.2O||0;15-=4.2G||0}1H(4=4.1X);c[15,19]},77:7(O,Z){d m=q.u({5l:11,5r:11,5B:11,5q:11,29:0,2f:0},N[2]||{});O=$(O);d p=2d.4e(O);Z=$(Z);d 2J=[0,0];d 3v=1L;f(k.1R(Z,\'14\')==\'2o\'){3v=2d.1Q(Z);2J=2d.4e(3v)}f(3v==J.1c){2J[0]-=J.1c.2f;2J[1]-=J.1c.29}f(m.5l)Z.l.18=(p[0]-2J[0]+m.2f)+\'1m\';f(m.5r)Z.l.1n=(p[1]-2J[1]+m.29)+\'1m\';f(m.5B)Z.l.21=O.2p+\'1m\';f(m.5q)Z.l.24=O.2k+\'1m\'},8b:7(4){4=$(4);f(4.l.14==\'2o\')c;2d.4P();d 2P=2d.68(4);d 1n=2P[1];d 18=2P[0];d 21=4.6m;d 24=4.6p;4.6P=18-3X(4.l.18||0);4.6I=1n-3X(4.l.1n||0);4.5k=4.l.21;4.7f=4.l.24;4.l.14=\'2o\';4.l.1n=1n+\'1m\';4.l.18=18+\'1m\';4.l.21=21+\'1m\';4.l.24=24+\'1m\'},8w:7(4){4=$(4);f(4.l.14==\'3T\')c;2d.4P();4.l.14=\'3T\';d 1n=3X(4.l.1n||0)-(4.6I||0);d 18=3X(4.l.18||0)-(4.6P||0);4.l.1n=1n+\'1m\';4.l.18=18+\'1m\';4.l.24=4.7f;4.l.21=4.5k}};f(/3x|3w|3u/.4v(33.62)){2d.35=7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;f(4.1Q==J.1c)f(k.1R(4,\'14\')==\'2o\')1y;4=4.1Q}1H(4);c[15,19]}};',62,600,'||||element||this|function|||||return|var||if||value|||Element|style|options||iterator||Object|||length|extend|prototype|index|||new||name|event|Form|transport||for||match|document||result|Ajax|arguments|source|results|form|||Prototype|object|each|push||false|target||true|elements||position|valueL||create|left|valueT|callback|Class|body|bind|Abstract|className|Insertion|tagName|pair|try|select|url|px|top|Event|Enumerable|div|case|catch|offset|useCapture|undefined|container|getValue|break|replacement|pattern|onComplete|map|else|Array|method|property|while|initialize|frequency|range|null|include|join|key|requestHeaders|offsetParent|getStyle|parameter|observers|inspect|observer|window|parentNode|text|toArray|els|width|start|args|height|throw|request||parameters|offsetTop|methods|opt|EventObserver|Position|html|offsetLeft|type|fragments|typeof|fragment|offsetHeight|oStringList|_each|apply|absolute|offsetWidth|do|cache|decay|content|input|emptyFunction|toLowerCase|end|replace|childNodes|registerCallback|display|toString|onTimerEvent|Serializers|readyState|scrollLeft|exclusive|on|delta|lastValue|getElements|in|hash|scrollTop|offsets|stripScripts|iterable|truncation|gsub|template|initializeRange|Responders|insertContent|setTimeout|json||hidden|status|navigator|ycomp|cumulativeOffset|inject||||serialize|responders|_overflow|Methods|collect|adjacency|xcomp|innerHTML|count|split|response|responseIsSuccess|success|Template|responder|dispatchException|evalScripts|pluck|concat|Request|KHTML|parent|Safari|Konqueror|dispatch|failure|receiver|observe|Observer|TimedObserver|ScriptFragment|responseText|script|inputs|ancestor|textarea|classNames|ObjectRange|node|typeName|RegExp|camelize|none|documentElement|ClassNames|relative|right|overflow|HTMLElement|parseFloat|toUpperCase|mode||currentlyExecuting|remove|__method|Base|memo||slice|returnValue|continue|setOptions|String|classNameToRemove|_reverse|page|focus|queryComponent|Hash|attachEvent|post|detachEvent|Version|reverse|encodeURIComponent|disabled|asynchronous|eval|respondToReadyState|activeRequestCount|Complete|appVersion|test|getTransport|containers|matchingInputs|1000|header|updater|Updater|getElementsByTagName|child|responderToAdd|static|tagElements|queryComponents|defaultView|onElementEvent|css|forElement|values|visibility|prepare|mergedHash|pos|offsetcache|_madePositioned|visible|tbody|findOrStore|_nativeExtensions|createElement|digits|trues|found|prepareReplacement|before|camelizedString|insertBefore|selectNodeContents|exception|falses|criteria|classNameToAdd|params|set|destination|last|addEventListener|indexOf|inline|clear|succ|_originalWidth|setLeft|Top|ActiveXObject|scriptTag|matchOne|setHeight|setTop|without|responderToRemove|_observeAndCache|find|reset|removeEventListener|activate|findFirstElement|setRequestHeaders|setWidth|XMLHttpRequest|constructor|application|xml|onCreate|contentType|Field|onStateChange|keydown|Events|evalJSON|stopObserving|inputSelector|img|Content|evalResponse|selectOne|onreadystatechange|keypress|postBody|onException|selectMany|updateContent|setInterval|insertion|PeriodicalUpdater|userAgent|updateComplete|lastText|timer|unloadCache|registerFormCallbacks|positionedOffset|register|parentElement|children|switch|XMLHTTP|_extended|hide|checkbox|update|radio|these|outerHTML|password|clientWidth|one|includeScrollOffsets|clientHeight|nodeValue|withinIncludingScrolloffsets|Try|scrollTo|realOffset|getComputedStyle|show|currentStyle|auto|deltaX|originalPosition|originalVisibility|originalWidth|originalHeight|opera|deltaY|bottom|array|_originalTop|flatten|addMethods|lambda|Toggle|toggle|insertAdjacentHTML|_originalLeft|PeriodicalExecuter|ownerDocument|createRange|createContextualFragment|contentFromAnonymousTable|table|Before|which|matchAll|button|extractScripts|stripTags|pairString|len|collapse|appendChild|After|clone|toQueryParams|Pattern|evaluate|stop|stringValue|preventDefault|charAt|_originalHeight|substring|Bottom|pairs|Function|add|collections|javascript|detect|findAll|entries|from|first|compact|keys|merge|present|toQueryString|getInputs|Msxml2|Microsoft|unregister|disable|urlencoded|blur|300|enable|responseIsFailure|Uninitialized|Loaded|Interactive|_|get|focusFirstElement|open|send|Requested|With|Accept|overrideMimeType|Connection|close|setRequestHeader|getResponseHeader|JSON|gi|submit|Loading|Success|Failure|checked|200|selectedIndex|www|selected|bMSIE|clearTimeout|unload|absolutize|string|getElementById|pageXOffset|getElementsByClassName|pageYOffset|removeChild|replaceChild|click|getHeight|hasClassName|addClassName|removeClassName|within|cleanWhitespace|nodeType|empty|childOf|multiple|change|getPropertyValue|relativize|setStyle|getDimensions|makePositioned|undoPositioned|makeClipping|KEY_BACKSPACE|undoClipping|overlap|KEY_TAB|vertical|KEY_RETURN|KEY_ESC|KEY_LEFT|horizontal|KEY_UP|member|tr|KEY_RIGHT|0_RC_0|Number|instanceof|shift|KEY_DOWN|bindAsEventListener|call|toColorPart|KEY_DELETE|times|finally|callee|srcElement|sub|scan|truncate|isLeftClick|beforeBegin|setStartBefore|im|afterBegin|firstChild|pointerX|unescapeHTML|beforeEnd|pageX|clientX|pointerY|parseQuery|afterEnd|pageY|clientY|RangeError|setStartAfter|all|any|grep|invoke|stopPropagation|max|nextSibling|min|partition|cancelBubble|reject|sortBy|sort|findElement|zip|pop|createTextNode|escapeHTML|strip'.split('|'),0,{})
+
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-validate-input.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-validate-input.html
new file mode 100644
index 000000000..1efc80ae2
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/sunspider-string-validate-input.html
@@ -0,0 +1,109 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+var letters = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
+var numbers = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26);
+var colors = new Array("FF","CC","99","66","33","00");
+
+var endResult;
+
+function testEmail()
+{
+ endResult = "";
+ var r;
+
+ // make up email address
+ for (var k=0;k<2000;k++)
+ {
+ var name = makeName(6);
+ var email = (k%2)?name+"@mac.com":name+"(at)mac.com";
+
+ // validate the email address
+ var pattern = /^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-_]+(\.?[a-zA-Z0-9\-_]*)\.[a-zA-Z]{2,3}$/;
+
+ if(pattern.test(email))
+ {
+ r = email + " appears to be a valid email address.";
+ addResult(r);
+ }
+ else
+ {
+ r = email + " does NOT appear to be a valid email address.";
+ addResult(r);
+ }
+ }
+}
+
+function testZip()
+{
+ endResult = "";
+ var r;
+
+ // make up ZIP codes
+ for (var s=0;s<2000;s++)
+ {
+ var zipGood = true;
+ var zip = makeNumber(4);
+ (s%2)?zip=zip+"xyz":zip=zip.concat("7");
+
+ // validate the zip code
+ for (var i = 0; i < zip.length; i++) {
+ var ch = zip.charAt(i);
+ if (ch < "0" || ch > "9") {
+ zipGood = false;
+ r = zip + " contains letters.";
+ addResult(r);
+ }
+ }
+ if (zipGood && zip.length>5)
+ {
+ zipGood = false;
+ r = zip + " is longer than five characters.";
+ addResult(r);
+ }
+ if (zipGood)
+ {
+ r = zip + " appears to be a valid ZIP code.";
+ addResult(r);
+ }
+ }
+}
+
+function makeName(n)
+{
+ var tmp = "";
+ for (var i=0;i<n;i++)
+ {
+ var l = Math.floor(26*Math.random());
+ tmp += letters[l];
+ }
+ return tmp;
+}
+
+function makeNumber(n)
+{
+ var tmp = "";
+ for (var i=0;i<n;i++)
+ {
+ var l = Math.floor(9*Math.random());
+ tmp = tmp.concat(l);
+ }
+ return tmp;
+}
+
+function addResult(r)
+{
+ endResult += "\n" + r;
+}
+
+window.onload = function(){ startTest("sunspider-string-validate-input", '7e409a49');
+
+test("Validate Email Input", testEmail);
+test("Validate Zipcode Input", testEmail);
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-crypto.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-crypto.html
new file mode 100644
index 000000000..19a8ea601
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-crypto.html
@@ -0,0 +1,1705 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+/*
+ * Copyright (c) 2003-2005 Tom Wu
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * In addition, the following condition applies:
+ *
+ * All redistributions must retain an intact copy of this copyright notice
+ * and disclaimer.
+ */
+
+
+// The code has been adapted for use as a benchmark by Google.
+
+// Basic JavaScript BN library - subset useful for RSA encryption.
+
+// Bits per digit
+var dbits;
+var BI_DB;
+var BI_DM;
+var BI_DV;
+
+var BI_FP;
+var BI_FV;
+var BI_F1;
+var BI_F2;
+
+// JavaScript engine analysis
+var canary = 0xdeadbeefcafe;
+var j_lm = ((canary&0xffffff)==0xefcafe);
+
+// (public) Constructor
+function BigInteger(a,b,c) {
+ this.array = new Array();
+ if(a != null)
+ if("number" == typeof a) this.fromNumber(a,b,c);
+ else if(b == null && "string" != typeof a) this.fromString(a,256);
+ else this.fromString(a,b);
+}
+
+// return new, unset BigInteger
+function nbi() { return new BigInteger(null); }
+
+// am: Compute w_j += (x*this_i), propagate carries,
+// c is initial carry, returns final carry.
+// c < 3*dvalue, x < 2*dvalue, this_i < dvalue
+// We need to select the fastest one that works in this environment.
+
+// am1: use a single mult and divide to get the high bits,
+// max digit bits should be 26 because
+// max internal value = 2*dvalue^2-2*dvalue (< 2^53)
+function am1(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+ while(--n >= 0) {
+ var v = x*this_array[i++]+w_array[j]+c;
+ c = Math.floor(v/0x4000000);
+ w_array[j++] = v&0x3ffffff;
+ }
+ return c;
+}
+
+// am2 avoids a big mult-and-extract completely.
+// Max digit bits should be <= 30 because we do bitwise ops
+// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
+function am2(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+ var xl = x&0x7fff, xh = x>>15;
+ while(--n >= 0) {
+ var l = this_array[i]&0x7fff;
+ var h = this_array[i++]>>15;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x7fff)<<15)+w_array[j]+(c&0x3fffffff);
+ c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
+ w_array[j++] = l&0x3fffffff;
+ }
+ return c;
+}
+
+// Alternately, set max digit bits to 28 since some
+// browsers slow down when dealing with 32-bit numbers.
+function am3(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+
+ var xl = x&0x3fff, xh = x>>14;
+ while(--n >= 0) {
+ var l = this_array[i]&0x3fff;
+ var h = this_array[i++]>>14;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x3fff)<<14)+w_array[j]+c;
+ c = (l>>28)+(m>>14)+xh*h;
+ w_array[j++] = l&0xfffffff;
+ }
+ return c;
+}
+
+// This is tailored to VMs with 2-bit tagging. It makes sure
+// that all the computations stay within the 29 bits available.
+function am4(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+
+ var xl = x&0x1fff, xh = x>>13;
+ while(--n >= 0) {
+ var l = this_array[i]&0x1fff;
+ var h = this_array[i++]>>13;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x1fff)<<13)+w_array[j]+c;
+ c = (l>>26)+(m>>13)+xh*h;
+ w_array[j++] = l&0x3ffffff;
+ }
+ return c;
+}
+
+// am3/28 is best for SM, Rhino, but am4/26 is best for v8.
+// Kestrel (Opera 9.5) gets its best result with am4/26.
+// IE7 does 9% better with am3/28 than with am4/26.
+// Firefox (SM) gets 10% faster with am3/28 than with am4/26.
+
+setupEngine = function(fn, bits) {
+ BigInteger.prototype.am = fn;
+ dbits = bits;
+
+ BI_DB = dbits;
+ BI_DM = ((1<<dbits)-1);
+ BI_DV = (1<<dbits);
+
+ BI_FP = 52;
+ BI_FV = Math.pow(2,BI_FP);
+ BI_F1 = BI_FP-dbits;
+ BI_F2 = 2*dbits-BI_FP;
+}
+
+
+// Digit conversions
+var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
+var BI_RC = new Array();
+var rr,vv;
+rr = "0".charCodeAt(0);
+for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
+rr = "a".charCodeAt(0);
+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
+rr = "A".charCodeAt(0);
+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
+
+function int2char(n) { return BI_RM.charAt(n); }
+function intAt(s,i) {
+ var c = BI_RC[s.charCodeAt(i)];
+ return (c==null)?-1:c;
+}
+
+// (protected) copy this to r
+function bnpCopyTo(r) {
+ var this_array = this.array;
+ var r_array = r.array;
+
+ for(var i = this.t-1; i >= 0; --i) r_array[i] = this_array[i];
+ r.t = this.t;
+ r.s = this.s;
+}
+
+// (protected) set from integer value x, -DV <= x < DV
+function bnpFromInt(x) {
+ var this_array = this.array;
+ this.t = 1;
+ this.s = (x<0)?-1:0;
+ if(x > 0) this_array[0] = x;
+ else if(x < -1) this_array[0] = x+DV;
+ else this.t = 0;
+}
+
+// return bigint initialized to value
+function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
+
+// (protected) set from string and radix
+function bnpFromString(s,b) {
+ var this_array = this.array;
+ var k;
+ if(b == 16) k = 4;
+ else if(b == 8) k = 3;
+ else if(b == 256) k = 8; // byte array
+ else if(b == 2) k = 1;
+ else if(b == 32) k = 5;
+ else if(b == 4) k = 2;
+ else { this.fromRadix(s,b); return; }
+ this.t = 0;
+ this.s = 0;
+ var i = s.length, mi = false, sh = 0;
+ while(--i >= 0) {
+ var x = (k==8)?s[i]&0xff:intAt(s,i);
+ if(x < 0) {
+ if(s.charAt(i) == "-") mi = true;
+ continue;
+ }
+ mi = false;
+ if(sh == 0)
+ this_array[this.t++] = x;
+ else if(sh+k > BI_DB) {
+ this_array[this.t-1] |= (x&((1<<(BI_DB-sh))-1))<<sh;
+ this_array[this.t++] = (x>>(BI_DB-sh));
+ }
+ else
+ this_array[this.t-1] |= x<<sh;
+ sh += k;
+ if(sh >= BI_DB) sh -= BI_DB;
+ }
+ if(k == 8 && (s[0]&0x80) != 0) {
+ this.s = -1;
+ if(sh > 0) this_array[this.t-1] |= ((1<<(BI_DB-sh))-1)<<sh;
+ }
+ this.clamp();
+ if(mi) BigInteger.ZERO.subTo(this,this);
+}
+
+// (protected) clamp off excess high words
+function bnpClamp() {
+ var this_array = this.array;
+ var c = this.s&BI_DM;
+ while(this.t > 0 && this_array[this.t-1] == c) --this.t;
+}
+
+// (public) return string representation in given radix
+function bnToString(b) {
+ var this_array = this.array;
+ if(this.s < 0) return "-"+this.negate().toString(b);
+ var k;
+ if(b == 16) k = 4;
+ else if(b == 8) k = 3;
+ else if(b == 2) k = 1;
+ else if(b == 32) k = 5;
+ else if(b == 4) k = 2;
+ else return this.toRadix(b);
+ var km = (1<<k)-1, d, m = false, r = "", i = this.t;
+ var p = BI_DB-(i*BI_DB)%k;
+ if(i-- > 0) {
+ if(p < BI_DB && (d = this_array[i]>>p) > 0) { m = true; r = int2char(d); }
+ while(i >= 0) {
+ if(p < k) {
+ d = (this_array[i]&((1<<p)-1))<<(k-p);
+ d |= this_array[--i]>>(p+=BI_DB-k);
+ }
+ else {
+ d = (this_array[i]>>(p-=k))&km;
+ if(p <= 0) { p += BI_DB; --i; }
+ }
+ if(d > 0) m = true;
+ if(m) r += int2char(d);
+ }
+ }
+ return m?r:"0";
+}
+
+// (public) -this
+function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
+
+// (public) |this|
+function bnAbs() { return (this.s<0)?this.negate():this; }
+
+// (public) return + if this > a, - if this < a, 0 if equal
+function bnCompareTo(a) {
+ var this_array = this.array;
+ var a_array = a.array;
+
+ var r = this.s-a.s;
+ if(r != 0) return r;
+ var i = this.t;
+ r = i-a.t;
+ if(r != 0) return r;
+ while(--i >= 0) if((r=this_array[i]-a_array[i]) != 0) return r;
+ return 0;
+}
+
+// returns bit length of the integer x
+function nbits(x) {
+ var r = 1, t;
+ if((t=x>>>16) != 0) { x = t; r += 16; }
+ if((t=x>>8) != 0) { x = t; r += 8; }
+ if((t=x>>4) != 0) { x = t; r += 4; }
+ if((t=x>>2) != 0) { x = t; r += 2; }
+ if((t=x>>1) != 0) { x = t; r += 1; }
+ return r;
+}
+
+// (public) return the number of bits in "this"
+function bnBitLength() {
+ var this_array = this.array;
+ if(this.t <= 0) return 0;
+ return BI_DB*(this.t-1)+nbits(this_array[this.t-1]^(this.s&BI_DM));
+}
+
+// (protected) r = this << n*DB
+function bnpDLShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var i;
+ for(i = this.t-1; i >= 0; --i) r_array[i+n] = this_array[i];
+ for(i = n-1; i >= 0; --i) r_array[i] = 0;
+ r.t = this.t+n;
+ r.s = this.s;
+}
+
+// (protected) r = this >> n*DB
+function bnpDRShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ for(var i = n; i < this.t; ++i) r_array[i-n] = this_array[i];
+ r.t = Math.max(this.t-n,0);
+ r.s = this.s;
+}
+
+// (protected) r = this << n
+function bnpLShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var bs = n%BI_DB;
+ var cbs = BI_DB-bs;
+ var bm = (1<<cbs)-1;
+ var ds = Math.floor(n/BI_DB), c = (this.s<<bs)&BI_DM, i;
+ for(i = this.t-1; i >= 0; --i) {
+ r_array[i+ds+1] = (this_array[i]>>cbs)|c;
+ c = (this_array[i]&bm)<<bs;
+ }
+ for(i = ds-1; i >= 0; --i) r_array[i] = 0;
+ r_array[ds] = c;
+ r.t = this.t+ds+1;
+ r.s = this.s;
+ r.clamp();
+}
+
+// (protected) r = this >> n
+function bnpRShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ r.s = this.s;
+ var ds = Math.floor(n/BI_DB);
+ if(ds >= this.t) { r.t = 0; return; }
+ var bs = n%BI_DB;
+ var cbs = BI_DB-bs;
+ var bm = (1<<bs)-1;
+ r_array[0] = this_array[ds]>>bs;
+ for(var i = ds+1; i < this.t; ++i) {
+ r_array[i-ds-1] |= (this_array[i]&bm)<<cbs;
+ r_array[i-ds] = this_array[i]>>bs;
+ }
+ if(bs > 0) r_array[this.t-ds-1] |= (this.s&bm)<<cbs;
+ r.t = this.t-ds;
+ r.clamp();
+}
+
+// (protected) r = this - a
+function bnpSubTo(a,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var a_array = a.array;
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
+ while(i < m) {
+ c += this_array[i]-a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ if(a.t < this.t) {
+ c -= a.s;
+ while(i < this.t) {
+ c += this_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += this.s;
+ }
+ else {
+ c += this.s;
+ while(i < a.t) {
+ c -= a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c -= a.s;
+ }
+ r.s = (c<0)?-1:0;
+ if(c < -1) r_array[i++] = BI_DV+c;
+ else if(c > 0) r_array[i++] = c;
+ r.t = i;
+ r.clamp();
+}
+
+// (protected) r = this * a, r != this,a (HAC 14.12)
+// "this" should be the larger one if appropriate.
+function bnpMultiplyTo(a,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var x = this.abs(), y = a.abs();
+ var y_array = y.array;
+
+ var i = x.t;
+ r.t = i+y.t;
+ while(--i >= 0) r_array[i] = 0;
+ for(i = 0; i < y.t; ++i) r_array[i+x.t] = x.am(0,y_array[i],r,i,0,x.t);
+ r.s = 0;
+ r.clamp();
+ if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
+}
+
+// (protected) r = this^2, r != this (HAC 14.16)
+function bnpSquareTo(r) {
+ var x = this.abs();
+ var x_array = x.array;
+ var r_array = r.array;
+
+ var i = r.t = 2*x.t;
+ while(--i >= 0) r_array[i] = 0;
+ for(i = 0; i < x.t-1; ++i) {
+ var c = x.am(i,x_array[i],r,2*i,0,1);
+ if((r_array[i+x.t]+=x.am(i+1,2*x_array[i],r,2*i+1,c,x.t-i-1)) >= BI_DV) {
+ r_array[i+x.t] -= BI_DV;
+ r_array[i+x.t+1] = 1;
+ }
+ }
+ if(r.t > 0) r_array[r.t-1] += x.am(i,x_array[i],r,2*i,0,1);
+ r.s = 0;
+ r.clamp();
+}
+
+// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
+// r != q, this != m. q or r may be null.
+function bnpDivRemTo(m,q,r) {
+ var pm = m.abs();
+ if(pm.t <= 0) return;
+ var pt = this.abs();
+ if(pt.t < pm.t) {
+ if(q != null) q.fromInt(0);
+ if(r != null) this.copyTo(r);
+ return;
+ }
+ if(r == null) r = nbi();
+ var y = nbi(), ts = this.s, ms = m.s;
+ var pm_array = pm.array;
+ var nsh = BI_DB-nbits(pm_array[pm.t-1]); // normalize modulus
+ if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
+ else { pm.copyTo(y); pt.copyTo(r); }
+ var ys = y.t;
+
+ var y_array = y.array;
+ var y0 = y_array[ys-1];
+ if(y0 == 0) return;
+ var yt = y0*(1<<BI_F1)+((ys>1)?y_array[ys-2]>>BI_F2:0);
+ var d1 = BI_FV/yt, d2 = (1<<BI_F1)/yt, e = 1<<BI_F2;
+ var i = r.t, j = i-ys, t = (q==null)?nbi():q;
+ y.dlShiftTo(j,t);
+
+ var r_array = r.array;
+ if(r.compareTo(t) >= 0) {
+ r_array[r.t++] = 1;
+ r.subTo(t,r);
+ }
+ BigInteger.ONE.dlShiftTo(ys,t);
+ t.subTo(y,y); // "negative" y so we can replace sub with am later
+ while(y.t < ys) y_array[y.t++] = 0;
+ while(--j >= 0) {
+ // Estimate quotient digit
+ var qd = (r_array[--i]==y0)?BI_DM:Math.floor(r_array[i]*d1+(r_array[i-1]+e)*d2);
+ if((r_array[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
+ y.dlShiftTo(j,t);
+ r.subTo(t,r);
+ while(r_array[i] < --qd) r.subTo(t,r);
+ }
+ }
+ if(q != null) {
+ r.drShiftTo(ys,q);
+ if(ts != ms) BigInteger.ZERO.subTo(q,q);
+ }
+ r.t = ys;
+ r.clamp();
+ if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
+ if(ts < 0) BigInteger.ZERO.subTo(r,r);
+}
+
+// (public) this mod a
+function bnMod(a) {
+ var r = nbi();
+ this.abs().divRemTo(a,null,r);
+ if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
+ return r;
+}
+
+// Modular reduction using "classic" algorithm
+function Classic(m) { this.m = m; }
+function cConvert(x) {
+ if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
+ else return x;
+}
+function cRevert(x) { return x; }
+function cReduce(x) { x.divRemTo(this.m,null,x); }
+function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+Classic.prototype.convert = cConvert;
+Classic.prototype.revert = cRevert;
+Classic.prototype.reduce = cReduce;
+Classic.prototype.mulTo = cMulTo;
+Classic.prototype.sqrTo = cSqrTo;
+
+// (protected) return "-1/this % 2^DB"; useful for Mont. reduction
+// justification:
+// xy == 1 (mod m)
+// xy = 1+km
+// xy(2-xy) = (1+km)(1-km)
+// x[y(2-xy)] = 1-k^2m^2
+// x[y(2-xy)] == 1 (mod m^2)
+// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
+// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
+// JS multiply "overflows" differently from C/C++, so care is needed here.
+function bnpInvDigit() {
+ var this_array = this.array;
+ if(this.t < 1) return 0;
+ var x = this_array[0];
+ if((x&1) == 0) return 0;
+ var y = x&3; // y == 1/x mod 2^2
+ y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
+ y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
+ y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
+ // last step - calculate inverse mod DV directly;
+ // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
+ y = (y*(2-x*y%BI_DV))%BI_DV; // y == 1/x mod 2^dbits
+ // we really want the negative inverse, and -DV < y < DV
+ return (y>0)?BI_DV-y:-y;
+}
+
+// Montgomery reduction
+function Montgomery(m) {
+ this.m = m;
+ this.mp = m.invDigit();
+ this.mpl = this.mp&0x7fff;
+ this.mph = this.mp>>15;
+ this.um = (1<<(BI_DB-15))-1;
+ this.mt2 = 2*m.t;
+}
+
+// xR mod m
+function montConvert(x) {
+ var r = nbi();
+ x.abs().dlShiftTo(this.m.t,r);
+ r.divRemTo(this.m,null,r);
+ if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
+ return r;
+}
+
+// x/R mod m
+function montRevert(x) {
+ var r = nbi();
+ x.copyTo(r);
+ this.reduce(r);
+ return r;
+}
+
+// x = x/R mod m (HAC 14.32)
+function montReduce(x) {
+ var x_array = x.array;
+ while(x.t <= this.mt2) // pad x so am has enough room later
+ x_array[x.t++] = 0;
+ for(var i = 0; i < this.m.t; ++i) {
+ // faster way of calculating u0 = x[i]*mp mod DV
+ var j = x_array[i]&0x7fff;
+ var u0 = (j*this.mpl+(((j*this.mph+(x_array[i]>>15)*this.mpl)&this.um)<<15))&BI_DM;
+ // use am to combine the multiply-shift-add into one call
+ j = i+this.m.t;
+ x_array[j] += this.m.am(0,u0,x,i,0,this.m.t);
+ // propagate carry
+ while(x_array[j] >= BI_DV) { x_array[j] -= BI_DV; x_array[++j]++; }
+ }
+ x.clamp();
+ x.drShiftTo(this.m.t,x);
+ if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
+}
+
+// r = "x^2/R mod m"; x != r
+function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+// r = "xy/R mod m"; x,y != r
+function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+
+Montgomery.prototype.convert = montConvert;
+Montgomery.prototype.revert = montRevert;
+Montgomery.prototype.reduce = montReduce;
+Montgomery.prototype.mulTo = montMulTo;
+Montgomery.prototype.sqrTo = montSqrTo;
+
+// (protected) true iff this is even
+function bnpIsEven() {
+ var this_array = this.array;
+ return ((this.t>0)?(this_array[0]&1):this.s) == 0;
+}
+
+// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
+function bnpExp(e,z) {
+ if(e > 0xffffffff || e < 1) return BigInteger.ONE;
+ var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
+ g.copyTo(r);
+ while(--i >= 0) {
+ z.sqrTo(r,r2);
+ if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
+ else { var t = r; r = r2; r2 = t; }
+ }
+ return z.revert(r);
+}
+
+// (public) this^e % m, 0 <= e < 2^32
+function bnModPowInt(e,m) {
+ var z;
+ if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
+ return this.exp(e,z);
+}
+
+// protected
+BigInteger.prototype.copyTo = bnpCopyTo;
+BigInteger.prototype.fromInt = bnpFromInt;
+BigInteger.prototype.fromString = bnpFromString;
+BigInteger.prototype.clamp = bnpClamp;
+BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
+BigInteger.prototype.drShiftTo = bnpDRShiftTo;
+BigInteger.prototype.lShiftTo = bnpLShiftTo;
+BigInteger.prototype.rShiftTo = bnpRShiftTo;
+BigInteger.prototype.subTo = bnpSubTo;
+BigInteger.prototype.multiplyTo = bnpMultiplyTo;
+BigInteger.prototype.squareTo = bnpSquareTo;
+BigInteger.prototype.divRemTo = bnpDivRemTo;
+BigInteger.prototype.invDigit = bnpInvDigit;
+BigInteger.prototype.isEven = bnpIsEven;
+BigInteger.prototype.exp = bnpExp;
+
+// public
+BigInteger.prototype.toString = bnToString;
+BigInteger.prototype.negate = bnNegate;
+BigInteger.prototype.abs = bnAbs;
+BigInteger.prototype.compareTo = bnCompareTo;
+BigInteger.prototype.bitLength = bnBitLength;
+BigInteger.prototype.mod = bnMod;
+BigInteger.prototype.modPowInt = bnModPowInt;
+
+// "constants"
+BigInteger.ZERO = nbv(0);
+BigInteger.ONE = nbv(1);
+// Copyright (c) 2005 Tom Wu
+// All Rights Reserved.
+// See "LICENSE" for details.
+
+// Extended JavaScript BN functions, required for RSA private ops.
+
+// (public)
+function bnClone() { var r = nbi(); this.copyTo(r); return r; }
+
+// (public) return value as integer
+function bnIntValue() {
+ var this_array = this.array;
+ if(this.s < 0) {
+ if(this.t == 1) return this_array[0]-BI_DV;
+ else if(this.t == 0) return -1;
+ }
+ else if(this.t == 1) return this_array[0];
+ else if(this.t == 0) return 0;
+ // assumes 16 < DB < 32
+ return ((this_array[1]&((1<<(32-BI_DB))-1))<<BI_DB)|this_array[0];
+}
+
+// (public) return value as byte
+function bnByteValue() {
+ var this_array = this.array;
+ return (this.t==0)?this.s:(this_array[0]<<24)>>24;
+}
+
+// (public) return value as short (assumes DB>=16)
+function bnShortValue() {
+ var this_array = this.array;
+ return (this.t==0)?this.s:(this_array[0]<<16)>>16;
+}
+
+// (protected) return x s.t. r^x < DV
+function bnpChunkSize(r) { return Math.floor(Math.LN2*BI_DB/Math.log(r)); }
+
+// (public) 0 if this == 0, 1 if this > 0
+function bnSigNum() {
+ var this_array = this.array;
+ if(this.s < 0) return -1;
+ else if(this.t <= 0 || (this.t == 1 && this_array[0] <= 0)) return 0;
+ else return 1;
+}
+
+// (protected) convert to radix string
+function bnpToRadix(b) {
+ if(b == null) b = 10;
+ if(this.signum() == 0 || b < 2 || b > 36) return "0";
+ var cs = this.chunkSize(b);
+ var a = Math.pow(b,cs);
+ var d = nbv(a), y = nbi(), z = nbi(), r = "";
+ this.divRemTo(d,y,z);
+ while(y.signum() > 0) {
+ r = (a+z.intValue()).toString(b).substr(1) + r;
+ y.divRemTo(d,y,z);
+ }
+ return z.intValue().toString(b) + r;
+}
+
+// (protected) convert from radix string
+function bnpFromRadix(s,b) {
+ this.fromInt(0);
+ if(b == null) b = 10;
+ var cs = this.chunkSize(b);
+ var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
+ for(var i = 0; i < s.length; ++i) {
+ var x = intAt(s,i);
+ if(x < 0) {
+ if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
+ continue;
+ }
+ w = b*w+x;
+ if(++j >= cs) {
+ this.dMultiply(d);
+ this.dAddOffset(w,0);
+ j = 0;
+ w = 0;
+ }
+ }
+ if(j > 0) {
+ this.dMultiply(Math.pow(b,j));
+ this.dAddOffset(w,0);
+ }
+ if(mi) BigInteger.ZERO.subTo(this,this);
+}
+
+// (protected) alternate constructor
+function bnpFromNumber(a,b,c) {
+ if("number" == typeof b) {
+ // new BigInteger(int,int,RNG)
+ if(a < 2) this.fromInt(1);
+ else {
+ this.fromNumber(a,c);
+ if(!this.testBit(a-1)) // force MSB set
+ this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);
+ if(this.isEven()) this.dAddOffset(1,0); // force odd
+ while(!this.isProbablePrime(b)) {
+ this.dAddOffset(2,0);
+ if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);
+ }
+ }
+ }
+ else {
+ // new BigInteger(int,RNG)
+ var x = new Array(), t = a&7;
+ x.length = (a>>3)+1;
+ b.nextBytes(x);
+ if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;
+ this.fromString(x,256);
+ }
+}
+
+// (public) convert to bigendian byte array
+function bnToByteArray() {
+ var this_array = this.array;
+ var i = this.t, r = new Array();
+ r[0] = this.s;
+ var p = BI_DB-(i*BI_DB)%8, d, k = 0;
+ if(i-- > 0) {
+ if(p < BI_DB && (d = this_array[i]>>p) != (this.s&BI_DM)>>p)
+ r[k++] = d|(this.s<<(BI_DB-p));
+ while(i >= 0) {
+ if(p < 8) {
+ d = (this_array[i]&((1<<p)-1))<<(8-p);
+ d |= this_array[--i]>>(p+=BI_DB-8);
+ }
+ else {
+ d = (this_array[i]>>(p-=8))&0xff;
+ if(p <= 0) { p += BI_DB; --i; }
+ }
+ if((d&0x80) != 0) d |= -256;
+ if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;
+ if(k > 0 || d != this.s) r[k++] = d;
+ }
+ }
+ return r;
+}
+
+function bnEquals(a) { return(this.compareTo(a)==0); }
+function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
+function bnMax(a) { return(this.compareTo(a)>0)?this:a; }
+
+// (protected) r = this op a (bitwise)
+function bnpBitwiseTo(a,op,r) {
+ var this_array = this.array;
+ var a_array = a.array;
+ var r_array = r.array;
+ var i, f, m = Math.min(a.t,this.t);
+ for(i = 0; i < m; ++i) r_array[i] = op(this_array[i],a_array[i]);
+ if(a.t < this.t) {
+ f = a.s&BI_DM;
+ for(i = m; i < this.t; ++i) r_array[i] = op(this_array[i],f);
+ r.t = this.t;
+ }
+ else {
+ f = this.s&BI_DM;
+ for(i = m; i < a.t; ++i) r_array[i] = op(f,a_array[i]);
+ r.t = a.t;
+ }
+ r.s = op(this.s,a.s);
+ r.clamp();
+}
+
+// (public) this & a
+function op_and(x,y) { return x&y; }
+function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }
+
+// (public) this | a
+function op_or(x,y) { return x|y; }
+function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }
+
+// (public) this ^ a
+function op_xor(x,y) { return x^y; }
+function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }
+
+// (public) this & ~a
+function op_andnot(x,y) { return x&~y; }
+function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }
+
+// (public) ~this
+function bnNot() {
+ var this_array = this.array;
+ var r = nbi();
+ var r_array = r.array;
+
+ for(var i = 0; i < this.t; ++i) r_array[i] = BI_DM&~this_array[i];
+ r.t = this.t;
+ r.s = ~this.s;
+ return r;
+}
+
+// (public) this << n
+function bnShiftLeft(n) {
+ var r = nbi();
+ if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);
+ return r;
+}
+
+// (public) this >> n
+function bnShiftRight(n) {
+ var r = nbi();
+ if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);
+ return r;
+}
+
+// return index of lowest 1-bit in x, x < 2^31
+function lbit(x) {
+ if(x == 0) return -1;
+ var r = 0;
+ if((x&0xffff) == 0) { x >>= 16; r += 16; }
+ if((x&0xff) == 0) { x >>= 8; r += 8; }
+ if((x&0xf) == 0) { x >>= 4; r += 4; }
+ if((x&3) == 0) { x >>= 2; r += 2; }
+ if((x&1) == 0) ++r;
+ return r;
+}
+
+// (public) returns index of lowest 1-bit (or -1 if none)
+function bnGetLowestSetBit() {
+ var this_array = this.array;
+ for(var i = 0; i < this.t; ++i)
+ if(this_array[i] != 0) return i*BI_DB+lbit(this_array[i]);
+ if(this.s < 0) return this.t*BI_DB;
+ return -1;
+}
+
+// return number of 1 bits in x
+function cbit(x) {
+ var r = 0;
+ while(x != 0) { x &= x-1; ++r; }
+ return r;
+}
+
+// (public) return number of set bits
+function bnBitCount() {
+ var r = 0, x = this.s&BI_DM;
+ for(var i = 0; i < this.t; ++i) r += cbit(this_array[i]^x);
+ return r;
+}
+
+// (public) true iff nth bit is set
+function bnTestBit(n) {
+ var this_array = this.array;
+ var j = Math.floor(n/BI_DB);
+ if(j >= this.t) return(this.s!=0);
+ return((this_array[j]&(1<<(n%BI_DB)))!=0);
+}
+
+// (protected) this op (1<<n)
+function bnpChangeBit(n,op) {
+ var r = BigInteger.ONE.shiftLeft(n);
+ this.bitwiseTo(r,op,r);
+ return r;
+}
+
+// (public) this | (1<<n)
+function bnSetBit(n) { return this.changeBit(n,op_or); }
+
+// (public) this & ~(1<<n)
+function bnClearBit(n) { return this.changeBit(n,op_andnot); }
+
+// (public) this ^ (1<<n)
+function bnFlipBit(n) { return this.changeBit(n,op_xor); }
+
+// (protected) r = this + a
+function bnpAddTo(a,r) {
+ var this_array = this.array;
+ var a_array = a.array;
+ var r_array = r.array;
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
+ while(i < m) {
+ c += this_array[i]+a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ if(a.t < this.t) {
+ c += a.s;
+ while(i < this.t) {
+ c += this_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += this.s;
+ }
+ else {
+ c += this.s;
+ while(i < a.t) {
+ c += a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += a.s;
+ }
+ r.s = (c<0)?-1:0;
+ if(c > 0) r_array[i++] = c;
+ else if(c < -1) r_array[i++] = BI_DV+c;
+ r.t = i;
+ r.clamp();
+}
+
+// (public) this + a
+function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }
+
+// (public) this - a
+function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }
+
+// (public) this * a
+function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }
+
+// (public) this / a
+function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }
+
+// (public) this % a
+function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }
+
+// (public) [this/a,this%a]
+function bnDivideAndRemainder(a) {
+ var q = nbi(), r = nbi();
+ this.divRemTo(a,q,r);
+ return new Array(q,r);
+}
+
+// (protected) this *= n, this >= 0, 1 < n < DV
+function bnpDMultiply(n) {
+ var this_array = this.array;
+ this_array[this.t] = this.am(0,n-1,this,0,0,this.t);
+ ++this.t;
+ this.clamp();
+}
+
+// (protected) this += n << w words, this >= 0
+function bnpDAddOffset(n,w) {
+ var this_array = this.array;
+ while(this.t <= w) this_array[this.t++] = 0;
+ this_array[w] += n;
+ while(this_array[w] >= BI_DV) {
+ this_array[w] -= BI_DV;
+ if(++w >= this.t) this_array[this.t++] = 0;
+ ++this_array[w];
+ }
+}
+
+// A "null" reducer
+function NullExp() {}
+function nNop(x) { return x; }
+function nMulTo(x,y,r) { x.multiplyTo(y,r); }
+function nSqrTo(x,r) { x.squareTo(r); }
+
+NullExp.prototype.convert = nNop;
+NullExp.prototype.revert = nNop;
+NullExp.prototype.mulTo = nMulTo;
+NullExp.prototype.sqrTo = nSqrTo;
+
+// (public) this^e
+function bnPow(e) { return this.exp(e,new NullExp()); }
+
+// (protected) r = lower n words of "this * a", a.t <= n
+// "this" should be the larger one if appropriate.
+function bnpMultiplyLowerTo(a,n,r) {
+ var r_array = r.array;
+ var a_array = a.array;
+ var i = Math.min(this.t+a.t,n);
+ r.s = 0; // assumes a,this >= 0
+ r.t = i;
+ while(i > 0) r_array[--i] = 0;
+ var j;
+ for(j = r.t-this.t; i < j; ++i) r_array[i+this.t] = this.am(0,a_array[i],r,i,0,this.t);
+ for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a_array[i],r,i,0,n-i);
+ r.clamp();
+}
+
+// (protected) r = "this * a" without lower n words, n > 0
+// "this" should be the larger one if appropriate.
+function bnpMultiplyUpperTo(a,n,r) {
+ var r_array = r.array;
+ var a_array = a.array;
+ --n;
+ var i = r.t = this.t+a.t-n;
+ r.s = 0; // assumes a,this >= 0
+ while(--i >= 0) r_array[i] = 0;
+ for(i = Math.max(n-this.t,0); i < a.t; ++i)
+ r_array[this.t+i-n] = this.am(n-i,a_array[i],r,0,0,this.t+i-n);
+ r.clamp();
+ r.drShiftTo(1,r);
+}
+
+// Barrett modular reduction
+function Barrett(m) {
+ // setup Barrett
+ this.r2 = nbi();
+ this.q3 = nbi();
+ BigInteger.ONE.dlShiftTo(2*m.t,this.r2);
+ this.mu = this.r2.divide(m);
+ this.m = m;
+}
+
+function barrettConvert(x) {
+ if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);
+ else if(x.compareTo(this.m) < 0) return x;
+ else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }
+}
+
+function barrettRevert(x) { return x; }
+
+// x = x mod m (HAC 14.42)
+function barrettReduce(x) {
+ x.drShiftTo(this.m.t-1,this.r2);
+ if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }
+ this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);
+ this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);
+ while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);
+ x.subTo(this.r2,x);
+ while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
+}
+
+// r = x^2 mod m; x != r
+function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+// r = x*y mod m; x,y != r
+function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+
+Barrett.prototype.convert = barrettConvert;
+Barrett.prototype.revert = barrettRevert;
+Barrett.prototype.reduce = barrettReduce;
+Barrett.prototype.mulTo = barrettMulTo;
+Barrett.prototype.sqrTo = barrettSqrTo;
+
+// (public) this^e % m (HAC 14.85)
+function bnModPow(e,m) {
+ var e_array = e.array;
+ var i = e.bitLength(), k, r = nbv(1), z;
+ if(i <= 0) return r;
+ else if(i < 18) k = 1;
+ else if(i < 48) k = 3;
+ else if(i < 144) k = 4;
+ else if(i < 768) k = 5;
+ else k = 6;
+ if(i < 8)
+ z = new Classic(m);
+ else if(m.isEven())
+ z = new Barrett(m);
+ else
+ z = new Montgomery(m);
+
+ // precomputation
+ var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;
+ g[1] = z.convert(this);
+ if(k > 1) {
+ var g2 = nbi();
+ z.sqrTo(g[1],g2);
+ while(n <= km) {
+ g[n] = nbi();
+ z.mulTo(g2,g[n-2],g[n]);
+ n += 2;
+ }
+ }
+
+ var j = e.t-1, w, is1 = true, r2 = nbi(), t;
+ i = nbits(e_array[j])-1;
+ while(j >= 0) {
+ if(i >= k1) w = (e_array[j]>>(i-k1))&km;
+ else {
+ w = (e_array[j]&((1<<(i+1))-1))<<(k1-i);
+ if(j > 0) w |= e_array[j-1]>>(BI_DB+i-k1);
+ }
+
+ n = k;
+ while((w&1) == 0) { w >>= 1; --n; }
+ if((i -= n) < 0) { i += BI_DB; --j; }
+ if(is1) { // ret == 1, don't bother squaring or multiplying it
+ g[w].copyTo(r);
+ is1 = false;
+ }
+ else {
+ while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }
+ if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }
+ z.mulTo(r2,g[w],r);
+ }
+
+ while(j >= 0 && (e_array[j]&(1<<i)) == 0) {
+ z.sqrTo(r,r2); t = r; r = r2; r2 = t;
+ if(--i < 0) { i = BI_DB-1; --j; }
+ }
+ }
+ return z.revert(r);
+}
+
+// (public) gcd(this,a) (HAC 14.54)
+function bnGCD(a) {
+ var x = (this.s<0)?this.negate():this.clone();
+ var y = (a.s<0)?a.negate():a.clone();
+ if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }
+ var i = x.getLowestSetBit(), g = y.getLowestSetBit();
+ if(g < 0) return x;
+ if(i < g) g = i;
+ if(g > 0) {
+ x.rShiftTo(g,x);
+ y.rShiftTo(g,y);
+ }
+ while(x.signum() > 0) {
+ if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);
+ if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);
+ if(x.compareTo(y) >= 0) {
+ x.subTo(y,x);
+ x.rShiftTo(1,x);
+ }
+ else {
+ y.subTo(x,y);
+ y.rShiftTo(1,y);
+ }
+ }
+ if(g > 0) y.lShiftTo(g,y);
+ return y;
+}
+
+// (protected) this % n, n < 2^26
+function bnpModInt(n) {
+ var this_array = this.array;
+ if(n <= 0) return 0;
+ var d = BI_DV%n, r = (this.s<0)?n-1:0;
+ if(this.t > 0)
+ if(d == 0) r = this_array[0]%n;
+ else for(var i = this.t-1; i >= 0; --i) r = (d*r+this_array[i])%n;
+ return r;
+}
+
+// (public) 1/this % m (HAC 14.61)
+function bnModInverse(m) {
+ var ac = m.isEven();
+ if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;
+ var u = m.clone(), v = this.clone();
+ var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);
+ while(u.signum() != 0) {
+ while(u.isEven()) {
+ u.rShiftTo(1,u);
+ if(ac) {
+ if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }
+ a.rShiftTo(1,a);
+ }
+ else if(!b.isEven()) b.subTo(m,b);
+ b.rShiftTo(1,b);
+ }
+ while(v.isEven()) {
+ v.rShiftTo(1,v);
+ if(ac) {
+ if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }
+ c.rShiftTo(1,c);
+ }
+ else if(!d.isEven()) d.subTo(m,d);
+ d.rShiftTo(1,d);
+ }
+ if(u.compareTo(v) >= 0) {
+ u.subTo(v,u);
+ if(ac) a.subTo(c,a);
+ b.subTo(d,b);
+ }
+ else {
+ v.subTo(u,v);
+ if(ac) c.subTo(a,c);
+ d.subTo(b,d);
+ }
+ }
+ if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;
+ if(d.compareTo(m) >= 0) return d.subtract(m);
+ if(d.signum() < 0) d.addTo(m,d); else return d;
+ if(d.signum() < 0) return d.add(m); else return d;
+}
+
+var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509];
+var lplim = (1<<26)/lowprimes[lowprimes.length-1];
+
+// (public) test primality with certainty >= 1-.5^t
+function bnIsProbablePrime(t) {
+ var i, x = this.abs();
+ var x_array = x.array;
+ if(x.t == 1 && x_array[0] <= lowprimes[lowprimes.length-1]) {
+ for(i = 0; i < lowprimes.length; ++i)
+ if(x_array[0] == lowprimes[i]) return true;
+ return false;
+ }
+ if(x.isEven()) return false;
+ i = 1;
+ while(i < lowprimes.length) {
+ var m = lowprimes[i], j = i+1;
+ while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];
+ m = x.modInt(m);
+ while(i < j) if(m%lowprimes[i++] == 0) return false;
+ }
+ return x.millerRabin(t);
+}
+
+// (protected) true if probably prime (HAC 4.24, Miller-Rabin)
+function bnpMillerRabin(t) {
+ var n1 = this.subtract(BigInteger.ONE);
+ var k = n1.getLowestSetBit();
+ if(k <= 0) return false;
+ var r = n1.shiftRight(k);
+ t = (t+1)>>1;
+ if(t > lowprimes.length) t = lowprimes.length;
+ var a = nbi();
+ for(var i = 0; i < t; ++i) {
+ a.fromInt(lowprimes[i]);
+ var y = a.modPow(r,this);
+ if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {
+ var j = 1;
+ while(j++ < k && y.compareTo(n1) != 0) {
+ y = y.modPowInt(2,this);
+ if(y.compareTo(BigInteger.ONE) == 0) return false;
+ }
+ if(y.compareTo(n1) != 0) return false;
+ }
+ }
+ return true;
+}
+
+// protected
+BigInteger.prototype.chunkSize = bnpChunkSize;
+BigInteger.prototype.toRadix = bnpToRadix;
+BigInteger.prototype.fromRadix = bnpFromRadix;
+BigInteger.prototype.fromNumber = bnpFromNumber;
+BigInteger.prototype.bitwiseTo = bnpBitwiseTo;
+BigInteger.prototype.changeBit = bnpChangeBit;
+BigInteger.prototype.addTo = bnpAddTo;
+BigInteger.prototype.dMultiply = bnpDMultiply;
+BigInteger.prototype.dAddOffset = bnpDAddOffset;
+BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;
+BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;
+BigInteger.prototype.modInt = bnpModInt;
+BigInteger.prototype.millerRabin = bnpMillerRabin;
+
+// public
+BigInteger.prototype.clone = bnClone;
+BigInteger.prototype.intValue = bnIntValue;
+BigInteger.prototype.byteValue = bnByteValue;
+BigInteger.prototype.shortValue = bnShortValue;
+BigInteger.prototype.signum = bnSigNum;
+BigInteger.prototype.toByteArray = bnToByteArray;
+BigInteger.prototype.equals = bnEquals;
+BigInteger.prototype.min = bnMin;
+BigInteger.prototype.max = bnMax;
+BigInteger.prototype.and = bnAnd;
+BigInteger.prototype.or = bnOr;
+BigInteger.prototype.xor = bnXor;
+BigInteger.prototype.andNot = bnAndNot;
+BigInteger.prototype.not = bnNot;
+BigInteger.prototype.shiftLeft = bnShiftLeft;
+BigInteger.prototype.shiftRight = bnShiftRight;
+BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;
+BigInteger.prototype.bitCount = bnBitCount;
+BigInteger.prototype.testBit = bnTestBit;
+BigInteger.prototype.setBit = bnSetBit;
+BigInteger.prototype.clearBit = bnClearBit;
+BigInteger.prototype.flipBit = bnFlipBit;
+BigInteger.prototype.add = bnAdd;
+BigInteger.prototype.subtract = bnSubtract;
+BigInteger.prototype.multiply = bnMultiply;
+BigInteger.prototype.divide = bnDivide;
+BigInteger.prototype.remainder = bnRemainder;
+BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;
+BigInteger.prototype.modPow = bnModPow;
+BigInteger.prototype.modInverse = bnModInverse;
+BigInteger.prototype.pow = bnPow;
+BigInteger.prototype.gcd = bnGCD;
+BigInteger.prototype.isProbablePrime = bnIsProbablePrime;
+
+// BigInteger interfaces not implemented in jsbn:
+
+// BigInteger(int signum, byte[] magnitude)
+// double doubleValue()
+// float floatValue()
+// int hashCode()
+// long longValue()
+// static BigInteger valueOf(long val)
+// prng4.js - uses Arcfour as a PRNG
+
+function Arcfour() {
+ this.i = 0;
+ this.j = 0;
+ this.S = new Array();
+}
+
+// Initialize arcfour context from key, an array of ints, each from [0..255]
+function ARC4init(key) {
+ var i, j, t;
+ for(i = 0; i < 256; ++i)
+ this.S[i] = i;
+ j = 0;
+ for(i = 0; i < 256; ++i) {
+ j = (j + this.S[i] + key[i % key.length]) & 255;
+ t = this.S[i];
+ this.S[i] = this.S[j];
+ this.S[j] = t;
+ }
+ this.i = 0;
+ this.j = 0;
+}
+
+function ARC4next() {
+ var t;
+ this.i = (this.i + 1) & 255;
+ this.j = (this.j + this.S[this.i]) & 255;
+ t = this.S[this.i];
+ this.S[this.i] = this.S[this.j];
+ this.S[this.j] = t;
+ return this.S[(t + this.S[this.i]) & 255];
+}
+
+Arcfour.prototype.init = ARC4init;
+Arcfour.prototype.next = ARC4next;
+
+// Plug in your RNG constructor here
+function prng_newstate() {
+ return new Arcfour();
+}
+
+// Pool size must be a multiple of 4 and greater than 32.
+// An array of bytes the size of the pool will be passed to init()
+var rng_psize = 256;
+// Random number generator - requires a PRNG backend, e.g. prng4.js
+
+// For best results, put code like
+// <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
+// in your main HTML document.
+
+var rng_state;
+var rng_pool;
+var rng_pptr;
+
+// Mix in a 32-bit integer into the pool
+function rng_seed_int(x) {
+ rng_pool[rng_pptr++] ^= x & 255;
+ rng_pool[rng_pptr++] ^= (x >> 8) & 255;
+ rng_pool[rng_pptr++] ^= (x >> 16) & 255;
+ rng_pool[rng_pptr++] ^= (x >> 24) & 255;
+ if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;
+}
+
+// Mix in the current time (w/milliseconds) into the pool
+function rng_seed_time() {
+ // Use pre-computed date to avoid making the benchmark
+ // results dependent on the current date.
+ rng_seed_int(1122926989487);
+}
+
+// Initialize the pool with junk if needed.
+if(rng_pool == null) {
+ rng_pool = new Array();
+ rng_pptr = 0;
+ var t;
+ while(rng_pptr < rng_psize) { // extract some randomness from Math.random()
+ t = Math.floor(65536 * Math.random());
+ rng_pool[rng_pptr++] = t >>> 8;
+ rng_pool[rng_pptr++] = t & 255;
+ }
+ rng_pptr = 0;
+ rng_seed_time();
+ //rng_seed_int(window.screenX);
+ //rng_seed_int(window.screenY);
+}
+
+function rng_get_byte() {
+ if(rng_state == null) {
+ rng_seed_time();
+ rng_state = prng_newstate();
+ rng_state.init(rng_pool);
+ for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr)
+ rng_pool[rng_pptr] = 0;
+ rng_pptr = 0;
+ //rng_pool = null;
+ }
+ // TODO: allow reseeding after first request
+ return rng_state.next();
+}
+
+function rng_get_bytes(ba) {
+ var i;
+ for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();
+}
+
+function SecureRandom() {}
+
+SecureRandom.prototype.nextBytes = rng_get_bytes;
+// Depends on jsbn.js and rng.js
+
+// convert a (hex) string to a bignum object
+function parseBigInt(str,r) {
+ return new BigInteger(str,r);
+}
+
+function linebrk(s,n) {
+ var ret = "";
+ var i = 0;
+ while(i + n < s.length) {
+ ret += s.substring(i,i+n) + "\n";
+ i += n;
+ }
+ return ret + s.substring(i,s.length);
+}
+
+function byte2Hex(b) {
+ if(b < 0x10)
+ return "0" + b.toString(16);
+ else
+ return b.toString(16);
+}
+
+// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint
+function pkcs1pad2(s,n) {
+ if(n < s.length + 11) {
+ alert("Message too long for RSA");
+ return null;
+ }
+ var ba = new Array();
+ var i = s.length - 1;
+ while(i >= 0 && n > 0) ba[--n] = s.charCodeAt(i--);
+ ba[--n] = 0;
+ var rng = new SecureRandom();
+ var x = new Array();
+ while(n > 2) { // random non-zero pad
+ x[0] = 0;
+ while(x[0] == 0) rng.nextBytes(x);
+ ba[--n] = x[0];
+ }
+ ba[--n] = 2;
+ ba[--n] = 0;
+ return new BigInteger(ba);
+}
+
+// "empty" RSA key constructor
+function RSAKey() {
+ this.n = null;
+ this.e = 0;
+ this.d = null;
+ this.p = null;
+ this.q = null;
+ this.dmp1 = null;
+ this.dmq1 = null;
+ this.coeff = null;
+}
+
+// Set the public key fields N and e from hex strings
+function RSASetPublic(N,E) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ }
+ else
+ alert("Invalid RSA public key");
+}
+
+// Perform raw public operation on "x": return x^e (mod n)
+function RSADoPublic(x) {
+ return x.modPowInt(this.e, this.n);
+}
+
+// Return the PKCS#1 RSA encryption of "text" as an even-length hex string
+function RSAEncrypt(text) {
+ var m = pkcs1pad2(text,(this.n.bitLength()+7)>>3);
+ if(m == null) return null;
+ var c = this.doPublic(m);
+ if(c == null) return null;
+ var h = c.toString(16);
+ if((h.length & 1) == 0) return h; else return "0" + h;
+}
+
+// Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string
+//function RSAEncryptB64(text) {
+// var h = this.encrypt(text);
+// if(h) return hex2b64(h); else return null;
+//}
+
+// protected
+RSAKey.prototype.doPublic = RSADoPublic;
+
+// public
+RSAKey.prototype.setPublic = RSASetPublic;
+RSAKey.prototype.encrypt = RSAEncrypt;
+//RSAKey.prototype.encrypt_b64 = RSAEncryptB64;
+// Depends on rsa.js and jsbn2.js
+
+// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext
+function pkcs1unpad2(d,n) {
+ var b = d.toByteArray();
+ var i = 0;
+ while(i < b.length && b[i] == 0) ++i;
+ if(b.length-i != n-1 || b[i] != 2)
+ return null;
+ ++i;
+ while(b[i] != 0)
+ if(++i >= b.length) return null;
+ var ret = "";
+ while(++i < b.length)
+ ret += String.fromCharCode(b[i]);
+ return ret;
+}
+
+// Set the private key fields N, e, and d from hex strings
+function RSASetPrivate(N,E,D) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ this.d = parseBigInt(D,16);
+ }
+ else
+ alert("Invalid RSA private key");
+}
+
+// Set the private key fields N, e, d and CRT params from hex strings
+function RSASetPrivateEx(N,E,D,P,Q,DP,DQ,C) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ this.d = parseBigInt(D,16);
+ this.p = parseBigInt(P,16);
+ this.q = parseBigInt(Q,16);
+ this.dmp1 = parseBigInt(DP,16);
+ this.dmq1 = parseBigInt(DQ,16);
+ this.coeff = parseBigInt(C,16);
+ }
+ else
+ alert("Invalid RSA private key");
+}
+
+// Generate a new random private key B bits long, using public expt E
+function RSAGenerate(B,E) {
+ var rng = new SecureRandom();
+ var qs = B>>1;
+ this.e = parseInt(E,16);
+ var ee = new BigInteger(E,16);
+ for(;;) {
+ for(;;) {
+ this.p = new BigInteger(B-qs,1,rng);
+ if(this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) break;
+ }
+ for(;;) {
+ this.q = new BigInteger(qs,1,rng);
+ if(this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) break;
+ }
+ if(this.p.compareTo(this.q) <= 0) {
+ var t = this.p;
+ this.p = this.q;
+ this.q = t;
+ }
+ var p1 = this.p.subtract(BigInteger.ONE);
+ var q1 = this.q.subtract(BigInteger.ONE);
+ var phi = p1.multiply(q1);
+ if(phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {
+ this.n = this.p.multiply(this.q);
+ this.d = ee.modInverse(phi);
+ this.dmp1 = this.d.mod(p1);
+ this.dmq1 = this.d.mod(q1);
+ this.coeff = this.q.modInverse(this.p);
+ break;
+ }
+ }
+}
+
+// Perform raw private operation on "x": return x^d (mod n)
+function RSADoPrivate(x) {
+ if(this.p == null || this.q == null)
+ return x.modPow(this.d, this.n);
+
+ // TODO: re-calculate any missing CRT params
+ var xp = x.mod(this.p).modPow(this.dmp1, this.p);
+ var xq = x.mod(this.q).modPow(this.dmq1, this.q);
+
+ while(xp.compareTo(xq) < 0)
+ xp = xp.add(this.p);
+ return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);
+}
+
+// Return the PKCS#1 RSA decryption of "ctext".
+// "ctext" is an even-length hex string and the output is a plain string.
+function RSADecrypt(ctext) {
+ var c = parseBigInt(ctext, 16);
+ var m = this.doPrivate(c);
+ if(m == null) return null;
+ return pkcs1unpad2(m, (this.n.bitLength()+7)>>3);
+}
+
+// Return the PKCS#1 RSA decryption of "ctext".
+// "ctext" is a Base64-encoded string and the output is a plain string.
+//function RSAB64Decrypt(ctext) {
+// var h = b64tohex(ctext);
+// if(h) return this.decrypt(h); else return null;
+//}
+
+// protected
+RSAKey.prototype.doPrivate = RSADoPrivate;
+
+// public
+RSAKey.prototype.setPrivate = RSASetPrivate;
+RSAKey.prototype.setPrivateEx = RSASetPrivateEx;
+RSAKey.prototype.generate = RSAGenerate;
+RSAKey.prototype.decrypt = RSADecrypt;
+//RSAKey.prototype.b64_decrypt = RSAB64Decrypt;
+
+
+nValue="a5261939975948bb7a58dffe5ff54e65f0498f9175f5a09288810b8975871e99af3b5dd94057b0fc07535f5f97444504fa35169d461d0d30cf0192e307727c065168c788771c561a9400fb49175e9e6aa4e23fe11af69e9412dd23b0cb6684c4c2429bce139e848ab26d0829073351f4acd36074eafd036a5eb83359d2a698d3";
+eValue="10001";
+dValue="8e9912f6d3645894e8d38cb58c0db81ff516cf4c7e5a14c7f1eddb1459d2cded4d8d293fc97aee6aefb861859c8b6a3d1dfe710463e1f9ddc72048c09751971c4a580aa51eb523357a3cc48d31cfad1d4a165066ed92d4748fb6571211da5cb14bc11b6e2df7c1a559e6d5ac1cd5c94703a22891464fba23d0d965086277a161";
+pValue="d090ce58a92c75233a6486cb0a9209bf3583b64f540c76f5294bb97d285eed33aec220bde14b2417951178ac152ceab6da7090905b478195498b352048f15e7d";
+qValue="cab575dc652bb66df15a0359609d51d1db184750c00c6698b90ef3465c99655103edbf0d54c56aec0ce3c4d22592338092a126a0cc49f65a4a30d222b411e58f";
+dmp1Value="1a24bca8e273df2f0e47c199bbf678604e7df7215480c77c8db39f49b000ce2cf7500038acfff5433b7d582a01f1826e6f4d42e1c57f5e1fef7b12aabc59fd25";
+dmq1Value="3d06982efbbe47339e1f6d36b1216b8a741d410b0c662f54f7118b27b9a4ec9d914337eb39841d8666f3034408cf94f5b62f11c402fc994fe15a05493150d9fd";
+coeffValue="3a3e731acd8960b7ff9eb81a7ff93bd1cfa74cbd56987db58b4594fb09c09084db1734c8143f98b602b981aaa9243ca28deb69b5b280ee8dcee0fd2625e53250";
+
+setupEngine(am3, 28);
+
+var TEXT = "The quick brown fox jumped over the extremely lazy frog! " +
+ "Now is the time for all good men to come to the party.";
+var encrypted;
+
+window.onload = function(){ startTest("v8-crypto", 'f0250ffa');
+
+test("RSA Encrypt", function encrypt() {
+ var RSA = new RSAKey();
+ RSA.setPublic(nValue, eValue);
+ RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue);
+ encrypted = RSA.encrypt(TEXT);
+});
+
+test("RSA Decrypt", function decrypt() {
+ var RSA = new RSAKey();
+ RSA.setPublic(nValue, eValue);
+ RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue);
+ var decrypted = RSA.decrypt(encrypted);
+ if (decrypted != TEXT) {
+ throw new Error("Crypto operation failed");
+ }
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-deltablue.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-deltablue.html
new file mode 100644
index 000000000..69e6348cb
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-deltablue.html
@@ -0,0 +1,887 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// Copyright 2008 the V8 project authors. All rights reserved.
+// Copyright 1996 John Maloney and Mario Wolczko.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+// This implementation of the DeltaBlue benchmark is derived
+// from the Smalltalk implementation by John Maloney and Mario
+// Wolczko. Some parts have been translated directly, whereas
+// others have been modified more aggresively to make it feel
+// more like a JavaScript program.
+
+
+/**
+ * A JavaScript implementation of the DeltaBlue constrain-solving
+ * algorithm, as described in:
+ *
+ * "The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver"
+ * Bjorn N. Freeman-Benson and John Maloney
+ * January 1990 Communications of the ACM,
+ * also available as University of Washington TR 89-08-06.
+ *
+ * Beware: this benchmark is written in a grotesque style where
+ * the constraint model is built by side-effects from constructors.
+ * I've kept it this way to avoid deviating too much from the original
+ * implementation.
+ */
+
+
+/* --- O b j e c t M o d e l --- */
+
+function inherits(orig, shuper) {
+ function Inheriter() { }
+ Inheriter.prototype = shuper.prototype;
+ orig.prototype = new Inheriter();
+ orig.superConstructor = shuper;
+}
+
+function OrderedCollection() {
+ this.elms = new Array();
+}
+
+OrderedCollection.prototype.add = function (elm) {
+ this.elms.push(elm);
+}
+
+OrderedCollection.prototype.at = function (index) {
+ return this.elms[index];
+}
+
+OrderedCollection.prototype.size = function () {
+ return this.elms.length;
+}
+
+OrderedCollection.prototype.removeFirst = function () {
+ return this.elms.pop();
+}
+
+OrderedCollection.prototype.remove = function (elm) {
+ var index = 0, skipped = 0;
+ for (var i = 0; i < this.elms.length; i++) {
+ var value = this.elms[i];
+ if (value != elm) {
+ this.elms[index] = value;
+ index++;
+ } else {
+ skipped++;
+ }
+ }
+ for (var i = 0; i < skipped; i++)
+ this.elms.pop();
+}
+
+/* --- *
+ * S t r e n g t h
+ * --- */
+
+/**
+ * Strengths are used to measure the relative importance of constraints.
+ * New strengths may be inserted in the strength hierarchy without
+ * disrupting current constraints. Strengths cannot be created outside
+ * this class, so pointer comparison can be used for value comparison.
+ */
+function Strength(strengthValue, name) {
+ this.strengthValue = strengthValue;
+ this.name = name;
+}
+
+Strength.stronger = function (s1, s2) {
+ return s1.strengthValue < s2.strengthValue;
+}
+
+Strength.weaker = function (s1, s2) {
+ return s1.strengthValue > s2.strengthValue;
+}
+
+Strength.weakestOf = function (s1, s2) {
+ return this.weaker(s1, s2) ? s1 : s2;
+}
+
+Strength.strongest = function (s1, s2) {
+ return this.stronger(s1, s2) ? s1 : s2;
+}
+
+Strength.prototype.nextWeaker = function () {
+ switch (this.strengthValue) {
+ case 0: return Strength.WEAKEST;
+ case 1: return Strength.WEAK_DEFAULT;
+ case 2: return Strength.NORMAL;
+ case 3: return Strength.STRONG_DEFAULT;
+ case 4: return Strength.PREFERRED;
+ case 5: return Strength.REQUIRED;
+ }
+}
+
+// Strength constants.
+Strength.REQUIRED = new Strength(0, "required");
+Strength.STONG_PREFERRED = new Strength(1, "strongPreferred");
+Strength.PREFERRED = new Strength(2, "preferred");
+Strength.STRONG_DEFAULT = new Strength(3, "strongDefault");
+Strength.NORMAL = new Strength(4, "normal");
+Strength.WEAK_DEFAULT = new Strength(5, "weakDefault");
+Strength.WEAKEST = new Strength(6, "weakest");
+
+/* --- *
+ * C o n s t r a i n t
+ * --- */
+
+/**
+ * An abstract class representing a system-maintainable relationship
+ * (or "constraint") between a set of variables. A constraint supplies
+ * a strength instance variable; concrete subclasses provide a means
+ * of storing the constrained variables and other information required
+ * to represent a constraint.
+ */
+function Constraint(strength) {
+ this.strength = strength;
+}
+
+/**
+ * Activate this constraint and attempt to satisfy it.
+ */
+Constraint.prototype.addConstraint = function () {
+ this.addToGraph();
+ planner.incrementalAdd(this);
+}
+
+/**
+ * Attempt to find a way to enforce this constraint. If successful,
+ * record the solution, perhaps modifying the current dataflow
+ * graph. Answer the constraint that this constraint overrides, if
+ * there is one, or nil, if there isn't.
+ * Assume: I am not already satisfied.
+ */
+Constraint.prototype.satisfy = function (mark) {
+ this.chooseMethod(mark);
+ if (!this.isSatisfied()) {
+ if (this.strength == Strength.REQUIRED)
+ alert("Could not satisfy a required constraint!");
+ return null;
+ }
+ this.markInputs(mark);
+ var out = this.output();
+ var overridden = out.determinedBy;
+ if (overridden != null) overridden.markUnsatisfied();
+ out.determinedBy = this;
+ if (!planner.addPropagate(this, mark))
+ alert("Cycle encountered");
+ out.mark = mark;
+ return overridden;
+}
+
+Constraint.prototype.destroyConstraint = function () {
+ if (this.isSatisfied()) planner.incrementalRemove(this);
+ else this.removeFromGraph();
+}
+
+/**
+ * Normal constraints are not input constraints. An input constraint
+ * is one that depends on external state, such as the mouse, the
+ * keybord, a clock, or some arbitraty piece of imperative code.
+ */
+Constraint.prototype.isInput = function () {
+ return false;
+}
+
+/* --- *
+ * U n a r y C o n s t r a i n t
+ * --- */
+
+/**
+ * Abstract superclass for constraints having a single possible output
+ * variable.
+ */
+function UnaryConstraint(v, strength) {
+ UnaryConstraint.superConstructor.call(this, strength);
+ this.myOutput = v;
+ this.satisfied = false;
+ this.addConstraint();
+}
+
+inherits(UnaryConstraint,Constraint);
+
+/**
+ * Adds this constraint to the constraint graph
+ */
+UnaryConstraint.prototype.addToGraph = function () {
+ this.myOutput.addConstraint(this);
+ this.satisfied = false;
+}
+
+/**
+ * Decides if this constraint can be satisfied and records that
+ * decision.
+ */
+UnaryConstraint.prototype.chooseMethod = function (mark) {
+ this.satisfied = (this.myOutput.mark != mark)
+ && Strength.stronger(this.strength, this.myOutput.walkStrength);
+}
+
+/**
+ * Returns true if this constraint is satisfied in the current solution.
+ */
+UnaryConstraint.prototype.isSatisfied = function () {
+ return this.satisfied;
+}
+
+UnaryConstraint.prototype.markInputs = function (mark) {
+ // has no inputs
+}
+
+/**
+ * Returns the current output variable.
+ */
+UnaryConstraint.prototype.output = function () {
+ return this.myOutput;
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this constraint. Assume
+ * this constraint is satisfied.
+ */
+UnaryConstraint.prototype.recalculate = function () {
+ this.myOutput.walkStrength = this.strength;
+ this.myOutput.stay = !this.isInput();
+ if (this.myOutput.stay) this.execute(); // Stay optimization
+}
+
+/**
+ * Records that this constraint is unsatisfied
+ */
+UnaryConstraint.prototype.markUnsatisfied = function () {
+ this.satisfied = false;
+}
+
+UnaryConstraint.prototype.inputsKnown = function () {
+ return true;
+}
+
+UnaryConstraint.prototype.removeFromGraph = function () {
+ if (this.myOutput != null) this.myOutput.removeConstraint(this);
+ this.satisfied = false;
+}
+
+/* --- *
+ * S t a y C o n s t r a i n t
+ * --- */
+
+/**
+ * Variables that should, with some level of preference, stay the same.
+ * Planners may exploit the fact that instances, if satisfied, will not
+ * change their output during plan execution. This is called "stay
+ * optimization".
+ */
+function StayConstraint(v, str) {
+ StayConstraint.superConstructor.call(this, v, str);
+}
+
+inherits(StayConstraint,UnaryConstraint);
+
+StayConstraint.prototype.execute = function () {
+ // Stay constraints do nothing
+}
+
+/* --- *
+ * E d i t C o n s t r a i n t
+ * --- */
+
+/**
+ * A unary input constraint used to mark a variable that the client
+ * wishes to change.
+ */
+function EditConstraint(v, str) {
+ EditConstraint.superConstructor.call(this, v, str);
+}
+
+inherits(EditConstraint,UnaryConstraint);
+
+/**
+ * Edits indicate that a variable is to be changed by imperative code.
+ */
+EditConstraint.prototype.isInput = function () {
+ return true;
+}
+
+EditConstraint.prototype.execute = function () {
+ // Edit constraints do nothing
+}
+
+/* --- *
+ * B i n a r y C o n s t r a i n t
+ * --- */
+
+var Direction = new Object();
+Direction.NONE = 0;
+Direction.FORWARD = 1;
+Direction.BACKWARD = -1;
+
+/**
+ * Abstract superclass for constraints having two possible output
+ * variables.
+ */
+function BinaryConstraint(var1, var2, strength) {
+ BinaryConstraint.superConstructor.call(this, strength);
+ this.v1 = var1;
+ this.v2 = var2;
+ this.direction = Direction.NONE;
+ this.addConstraint();
+}
+
+inherits(BinaryConstraint,Constraint);
+
+/**
+ * Decides if this constratint can be satisfied and which way it
+ * should flow based on the relative strength of the variables related,
+ * and record that decision.
+ */
+BinaryConstraint.prototype.chooseMethod = function (mark) {
+ if (this.v1.mark == mark) {
+ this.direction = (this.v1.mark != mark && Strength.stronger(this.strength, this.v2.walkStrength))
+ ? Direction.FORWARD
+ : Direction.NONE;
+ }
+ if (this.v2.mark == mark) {
+ this.direction = (this.v1.mark != mark && Strength.stronger(this.strength, this.v1.walkStrength))
+ ? Direction.BACKWARD
+ : Direction.NONE;
+ }
+ if (Strength.weaker(this.v1.walkStrength, this.v2.walkStrength)) {
+ this.direction = Strength.stronger(this.strength, this.v1.walkStrength)
+ ? Direction.BACKWARD
+ : Direction.NONE;
+ } else {
+ this.direction = Strength.stronger(this.strength, this.v2.walkStrength)
+ ? Direction.FORWARD
+ : Direction.BACKWARD
+ }
+}
+
+/**
+ * Add this constraint to the constraint graph
+ */
+BinaryConstraint.prototype.addToGraph = function () {
+ this.v1.addConstraint(this);
+ this.v2.addConstraint(this);
+ this.direction = Direction.NONE;
+}
+
+/**
+ * Answer true if this constraint is satisfied in the current solution.
+ */
+BinaryConstraint.prototype.isSatisfied = function () {
+ return this.direction != Direction.NONE;
+}
+
+/**
+ * Mark the input variable with the given mark.
+ */
+BinaryConstraint.prototype.markInputs = function (mark) {
+ this.input().mark = mark;
+}
+
+/**
+ * Returns the current input variable
+ */
+BinaryConstraint.prototype.input = function () {
+ return (this.direction == Direction.FORWARD) ? this.v1 : this.v2;
+}
+
+/**
+ * Returns the current output variable
+ */
+BinaryConstraint.prototype.output = function () {
+ return (this.direction == Direction.FORWARD) ? this.v2 : this.v1;
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this
+ * constraint. Assume this constraint is satisfied.
+ */
+BinaryConstraint.prototype.recalculate = function () {
+ var ihn = this.input(), out = this.output();
+ out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength);
+ out.stay = ihn.stay;
+ if (out.stay) this.execute();
+}
+
+/**
+ * Record the fact that this constraint is unsatisfied.
+ */
+BinaryConstraint.prototype.markUnsatisfied = function () {
+ this.direction = Direction.NONE;
+}
+
+BinaryConstraint.prototype.inputsKnown = function (mark) {
+ var i = this.input();
+ return i.mark == mark || i.stay || i.determinedBy == null;
+}
+
+BinaryConstraint.prototype.removeFromGraph = function () {
+ if (this.v1 != null) this.v1.removeConstraint(this);
+ if (this.v2 != null) this.v2.removeConstraint(this);
+ this.direction = Direction.NONE;
+}
+
+/* --- *
+ * S c a l e C o n s t r a i n t
+ * --- */
+
+/**
+ * Relates two variables by the linear scaling relationship: "v2 =
+ * (v1 * scale) + offset". Either v1 or v2 may be changed to maintain
+ * this relationship but the scale factor and offset are considered
+ * read-only.
+ */
+function ScaleConstraint(src, scale, offset, dest, strength) {
+ this.direction = Direction.NONE;
+ this.scale = scale;
+ this.offset = offset;
+ ScaleConstraint.superConstructor.call(this, src, dest, strength);
+}
+
+inherits(ScaleConstraint,BinaryConstraint);
+
+/**
+ * Adds this constraint to the constraint graph.
+ */
+ScaleConstraint.prototype.addToGraph = function () {
+ ScaleConstraint.superConstructor.prototype.addToGraph.call(this);
+ this.scale.addConstraint(this);
+ this.offset.addConstraint(this);
+}
+
+ScaleConstraint.prototype.removeFromGraph = function () {
+ ScaleConstraint.superConstructor.prototype.removeFromGraph.call(this);
+ if (this.scale != null) this.scale.removeConstraint(this);
+ if (this.offset != null) this.offset.removeConstraint(this);
+}
+
+ScaleConstraint.prototype.markInputs = function (mark) {
+ ScaleConstraint.superConstructor.prototype.markInputs.call(this, mark);
+ this.scale.mark = this.offset.mark = mark;
+}
+
+/**
+ * Enforce this constraint. Assume that it is satisfied.
+ */
+ScaleConstraint.prototype.execute = function () {
+ if (this.direction == Direction.FORWARD) {
+ this.v2.value = this.v1.value * this.scale.value + this.offset.value;
+ } else {
+ this.v1.value = (this.v2.value - this.offset.value) / this.scale.value;
+ }
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this constraint. Assume
+ * this constraint is satisfied.
+ */
+ScaleConstraint.prototype.recalculate = function () {
+ var ihn = this.input(), out = this.output();
+ out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength);
+ out.stay = ihn.stay && this.scale.stay && this.offset.stay;
+ if (out.stay) this.execute();
+}
+
+/* --- *
+ * E q u a l i t y C o n s t r a i n t
+ * --- */
+
+/**
+ * Constrains two variables to have the same value.
+ */
+function EqualityConstraint(var1, var2, strength) {
+ EqualityConstraint.superConstructor.call(this, var1, var2, strength);
+}
+
+inherits(EqualityConstraint,BinaryConstraint);
+
+/**
+ * Enforce this constraint. Assume that it is satisfied.
+ */
+EqualityConstraint.prototype.execute = function () {
+ this.output().value = this.input().value;
+}
+
+/* --- *
+ * V a r i a b l e
+ * --- */
+
+/**
+ * A constrained variable. In addition to its value, it maintain the
+ * structure of the constraint graph, the current dataflow graph, and
+ * various parameters of interest to the DeltaBlue incremental
+ * constraint solver.
+ **/
+function Variable(name, initialValue) {
+ this.value = initialValue || 0;
+ this.constraints = new OrderedCollection();
+ this.determinedBy = null;
+ this.mark = 0;
+ this.walkStrength = Strength.WEAKEST;
+ this.stay = true;
+ this.name = name;
+}
+
+/**
+ * Add the given constraint to the set of all constraints that refer
+ * this variable.
+ */
+Variable.prototype.addConstraint = function (c) {
+ this.constraints.add(c);
+}
+
+/**
+ * Removes all traces of c from this variable.
+ */
+Variable.prototype.removeConstraint = function (c) {
+ this.constraints.remove(c);
+ if (this.determinedBy == c) this.determinedBy = null;
+}
+
+/* --- *
+ * P l a n n e r
+ * --- */
+
+/**
+ * The DeltaBlue planner
+ */
+function Planner() {
+ this.currentMark = 0;
+}
+
+/**
+ * Attempt to satisfy the given constraint and, if successful,
+ * incrementally update the dataflow graph. Details: If satifying
+ * the constraint is successful, it may override a weaker constraint
+ * on its output. The algorithm attempts to resatisfy that
+ * constraint using some other method. This process is repeated
+ * until either a) it reaches a variable that was not previously
+ * determined by any constraint or b) it reaches a constraint that
+ * is too weak to be satisfied using any of its methods. The
+ * variables of constraints that have been processed are marked with
+ * a unique mark value so that we know where we've been. This allows
+ * the algorithm to avoid getting into an infinite loop even if the
+ * constraint graph has an inadvertent cycle.
+ */
+Planner.prototype.incrementalAdd = function (c) {
+ var mark = this.newMark();
+ var overridden = c.satisfy(mark);
+ while (overridden != null)
+ overridden = overridden.satisfy(mark);
+}
+
+/**
+ * Entry point for retracting a constraint. Remove the given
+ * constraint and incrementally update the dataflow graph.
+ * Details: Retracting the given constraint may allow some currently
+ * unsatisfiable downstream constraint to be satisfied. We therefore collect
+ * a list of unsatisfied downstream constraints and attempt to
+ * satisfy each one in turn. This list is traversed by constraint
+ * strength, strongest first, as a heuristic for avoiding
+ * unnecessarily adding and then overriding weak constraints.
+ * Assume: c is satisfied.
+ */
+Planner.prototype.incrementalRemove = function (c) {
+ var out = c.output();
+ c.markUnsatisfied();
+ c.removeFromGraph();
+ var unsatisfied = this.removePropagateFrom(out);
+ var strength = Strength.REQUIRED;
+ do {
+ for (var i = 0; i < unsatisfied.size(); i++) {
+ var u = unsatisfied.at(i);
+ if (u.strength == strength)
+ this.incrementalAdd(u);
+ }
+ strength = strength.nextWeaker();
+ } while (strength != Strength.WEAKEST);
+}
+
+/**
+ * Select a previously unused mark value.
+ */
+Planner.prototype.newMark = function () {
+ return ++this.currentMark;
+}
+
+/**
+ * Extract a plan for resatisfaction starting from the given source
+ * constraints, usually a set of input constraints. This method
+ * assumes that stay optimization is desired; the plan will contain
+ * only constraints whose output variables are not stay. Constraints
+ * that do no computation, such as stay and edit constraints, are
+ * not included in the plan.
+ * Details: The outputs of a constraint are marked when it is added
+ * to the plan under construction. A constraint may be appended to
+ * the plan when all its input variables are known. A variable is
+ * known if either a) the variable is marked (indicating that has
+ * been computed by a constraint appearing earlier in the plan), b)
+ * the variable is 'stay' (i.e. it is a constant at plan execution
+ * time), or c) the variable is not determined by any
+ * constraint. The last provision is for past states of history
+ * variables, which are not stay but which are also not computed by
+ * any constraint.
+ * Assume: sources are all satisfied.
+ */
+Planner.prototype.makePlan = function (sources) {
+ var mark = this.newMark();
+ var plan = new Plan();
+ var todo = sources;
+ while (todo.size() > 0) {
+ var c = todo.removeFirst();
+ if (c.output().mark != mark && c.inputsKnown(mark)) {
+ plan.addConstraint(c);
+ c.output().mark = mark;
+ this.addConstraintsConsumingTo(c.output(), todo);
+ }
+ }
+ return plan;
+}
+
+/**
+ * Extract a plan for resatisfying starting from the output of the
+ * given constraints, usually a set of input constraints.
+ */
+Planner.prototype.extractPlanFromConstraints = function (constraints) {
+ var sources = new OrderedCollection();
+ for (var i = 0; i < constraints.size(); i++) {
+ var c = constraints.at(i);
+ if (c.isInput() && c.isSatisfied())
+ // not in plan already and eligible for inclusion
+ sources.add(c);
+ }
+ return this.makePlan(sources);
+}
+
+/**
+ * Recompute the walkabout strengths and stay flags of all variables
+ * downstream of the given constraint and recompute the actual
+ * values of all variables whose stay flag is true. If a cycle is
+ * detected, remove the given constraint and answer
+ * false. Otherwise, answer true.
+ * Details: Cycles are detected when a marked variable is
+ * encountered downstream of the given constraint. The sender is
+ * assumed to have marked the inputs of the given constraint with
+ * the given mark. Thus, encountering a marked node downstream of
+ * the output constraint means that there is a path from the
+ * constraint's output to one of its inputs.
+ */
+Planner.prototype.addPropagate = function (c, mark) {
+ var todo = new OrderedCollection();
+ todo.add(c);
+ while (todo.size() > 0) {
+ var d = todo.removeFirst();
+ if (d.output().mark == mark) {
+ this.incrementalRemove(c);
+ return false;
+ }
+ d.recalculate();
+ this.addConstraintsConsumingTo(d.output(), todo);
+ }
+ return true;
+}
+
+
+/**
+ * Update the walkabout strengths and stay flags of all variables
+ * downstream of the given constraint. Answer a collection of
+ * unsatisfied constraints sorted in order of decreasing strength.
+ */
+Planner.prototype.removePropagateFrom = function (out) {
+ out.determinedBy = null;
+ out.walkStrength = Strength.WEAKEST;
+ out.stay = true;
+ var unsatisfied = new OrderedCollection();
+ var todo = new OrderedCollection();
+ todo.add(out);
+ while (todo.size() > 0) {
+ var v = todo.removeFirst();
+ for (var i = 0; i < v.constraints.size(); i++) {
+ var c = v.constraints.at(i);
+ if (!c.isSatisfied())
+ unsatisfied.add(c);
+ }
+ var determining = v.determinedBy;
+ for (var i = 0; i < v.constraints.size(); i++) {
+ var next = v.constraints.at(i);
+ if (next != determining && next.isSatisfied()) {
+ next.recalculate();
+ todo.add(next.output());
+ }
+ }
+ }
+ return unsatisfied;
+}
+
+Planner.prototype.addConstraintsConsumingTo = function (v, coll) {
+ var determining = v.determinedBy;
+ var cc = v.constraints;
+ for (var i = 0; i < cc.size(); i++) {
+ var c = cc.at(i);
+ if (c != determining && c.isSatisfied())
+ coll.add(c);
+ }
+}
+
+/* --- *
+ * P l a n
+ * --- */
+
+/**
+ * A Plan is an ordered list of constraints to be executed in sequence
+ * to resatisfy all currently satisfiable constraints in the face of
+ * one or more changing inputs.
+ */
+function Plan() {
+ this.v = new OrderedCollection();
+}
+
+Plan.prototype.addConstraint = function (c) {
+ this.v.add(c);
+}
+
+Plan.prototype.size = function () {
+ return this.v.size();
+}
+
+Plan.prototype.constraintAt = function (index) {
+ return this.v.at(index);
+}
+
+Plan.prototype.execute = function () {
+ for (var i = 0; i < this.size(); i++) {
+ var c = this.constraintAt(i);
+ c.execute();
+ }
+}
+
+/* --- *
+ * M a i n
+ * --- */
+
+/**
+ * This is the standard DeltaBlue benchmark. A long chain of equality
+ * constraints is constructed with a stay constraint on one end. An
+ * edit constraint is then added to the opposite end and the time is
+ * measured for adding and removing this constraint, and extracting
+ * and executing a constraint satisfaction plan. There are two cases.
+ * In case 1, the added constraint is stronger than the stay
+ * constraint and values must propagate down the entire length of the
+ * chain. In case 2, the added constraint is weaker than the stay
+ * constraint so it cannot be accomodated. The cost in this case is,
+ * of course, very low. Typical situations lie somewhere between these
+ * two extremes.
+ */
+function chainTest(n) {
+ planner = new Planner();
+ var prev = null, first = null, last = null;
+
+ // Build chain of n equality constraints
+ for (var i = 0; i <= n; i++) {
+ var name = "v" + i;
+ var v = new Variable(name);
+ if (prev != null)
+ new EqualityConstraint(prev, v, Strength.REQUIRED);
+ if (i == 0) first = v;
+ if (i == n) last = v;
+ prev = v;
+ }
+
+ new StayConstraint(last, Strength.STRONG_DEFAULT);
+ var edit = new EditConstraint(first, Strength.PREFERRED);
+ var edits = new OrderedCollection();
+ edits.add(edit);
+ var plan = planner.extractPlanFromConstraints(edits);
+ for (var i = 0; i < 100; i++) {
+ first.value = i;
+ plan.execute();
+ if (last.value != i)
+ alert("Chain test failed.");
+ }
+}
+
+/**
+ * This test constructs a two sets of variables related to each
+ * other by a simple linear transformation (scale and offset). The
+ * time is measured to change a variable on either side of the
+ * mapping and to change the scale and offset factors.
+ */
+function projectionTest(n) {
+ planner = new Planner();
+ var scale = new Variable("scale", 10);
+ var offset = new Variable("offset", 1000);
+ var src = null, dst = null;
+
+ var dests = new OrderedCollection();
+ for (var i = 0; i < n; i++) {
+ src = new Variable("src" + i, i);
+ dst = new Variable("dst" + i, i);
+ dests.add(dst);
+ new StayConstraint(src, Strength.NORMAL);
+ new ScaleConstraint(src, scale, offset, dst, Strength.REQUIRED);
+ }
+
+ change(src, 17);
+ if (dst.value != 1170) alert("Projection 1 failed");
+ change(dst, 1050);
+ if (src.value != 5) alert("Projection 2 failed");
+ change(scale, 5);
+ for (var i = 0; i < n - 1; i++) {
+ if (dests.at(i).value != i * 5 + 1000)
+ alert("Projection 3 failed");
+ }
+ change(offset, 2000);
+ for (var i = 0; i < n - 1; i++) {
+ if (dests.at(i).value != i * 5 + 2000)
+ alert("Projection 4 failed");
+ }
+}
+
+function change(v, newValue) {
+ var edit = new EditConstraint(v, Strength.PREFERRED);
+ var edits = new OrderedCollection();
+ edits.add(edit);
+ var plan = planner.extractPlanFromConstraints(edits);
+ for (var i = 0; i < 10; i++) {
+ v.value = newValue;
+ plan.execute();
+ }
+ edit.destroyConstraint();
+}
+
+// Global variable holding the current planner.
+var planner = null;
+
+window.onload = function(){ startTest("v8-deltablue", 'b95228dc');
+
+test("Constraint Solving", function deltaBlue() {
+ chainTest(100);
+ projectionTest(100);
+});
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-earley-boyer.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-earley-boyer.html
new file mode 100644
index 000000000..6324417fe
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-earley-boyer.html
@@ -0,0 +1,4693 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// This file is automatically generated by scheme2js, except for the
+// benchmark harness code at the beginning and end of the file.
+
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/*
+ * To use write/prints/... the default-output port has to be set first.
+ * Simply setting SC_DEFAULT_OUT and SC_ERROR_OUT to the desired values
+ * should do the trick.
+ * In the following example the std-out and error-port are redirected to
+ * a DIV.
+function initRuntime() {
+ function escapeHTML(s) {
+ var tmp = s;
+ tmp = tmp.replace(/&/g, "&amp;");
+ tmp = tmp.replace(/</g, "&lt;");
+ tmp = tmp.replace(/>/g, "&gt;");
+ tmp = tmp.replace(/ /g, "&nbsp;");
+ tmp = tmp.replace(/\n/g, "<br />");
+ tmp = tmp.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp");
+ return tmp;
+
+ }
+
+ document.write("<div id='stdout'></div>");
+ SC_DEFAULT_OUT = new sc_GenericOutputPort(
+ function(s) {
+ var stdout = document.getElementById('stdout');
+ stdout.innerHTML = stdout.innerHTML + escapeHTML(s);
+ });
+ SC_ERROR_OUT = SC_DEFAULT_OUT;
+}
+*/
+
+
+function sc_print_debug() {
+ sc_print.apply(null, arguments);
+}
+/*** META ((export *js*)) */
+var sc_JS_GLOBALS = this;
+
+var __sc_LINE=-1;
+var __sc_FILE="";
+
+/*** META ((export #t)) */
+function sc_alert() {
+ var len = arguments.length;
+ var s = "";
+ var i;
+
+ for( i = 0; i < len; i++ ) {
+ s += sc_toDisplayString(arguments[ i ]);
+ }
+
+ return alert( s );
+}
+
+/*** META ((export #t)) */
+function sc_typeof( x ) {
+ return typeof x;
+}
+
+/*** META ((export #t)) */
+function sc_error() {
+ var a = [sc_jsstring2symbol("*error*")];
+ for (var i = 0; i < arguments.length; i++) {
+ a[i+1] = arguments[i];
+ }
+ throw a;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "throw ")))
+*/
+function sc_raise(obj) {
+ throw obj;
+}
+
+/*** META ((export with-handler-lambda)) */
+function sc_withHandlerLambda(handler, body) {
+ try {
+ return body();
+ } catch(e) {
+ if (!e._internalException)
+ return handler(e);
+ else
+ throw e;
+ }
+}
+
+var sc_properties = new Object();
+
+/*** META ((export #t)) */
+function sc_putpropBang(sym, key, val) {
+ var ht = sc_properties[sym];
+ if (!ht) {
+ ht = new Object();
+ sc_properties[sym] = ht;
+ }
+ ht[key] = val;
+}
+
+/*** META ((export #t)) */
+function sc_getprop(sym, key) {
+ var ht = sc_properties[sym];
+ if (ht) {
+ if (key in ht)
+ return ht[key];
+ else
+ return false;
+ } else
+ return false;
+}
+
+/*** META ((export #t)) */
+function sc_rempropBang(sym, key) {
+ var ht = sc_properties[sym];
+ if (ht)
+ delete ht[key];
+}
+
+/*** META ((export #t)) */
+function sc_any2String(o) {
+ return jsstring2string(sc_toDisplayString(o));
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "==="))
+ (type bool))
+*/
+function sc_isEqv(o1, o2) {
+ return (o1 === o2);
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "==="))
+ (type bool))
+*/
+function sc_isEq(o1, o2) {
+ return (o1 === o2);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isNumber(n) {
+ return (typeof n === "number");
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isComplex(n) {
+ return sc_isNumber(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isReal(n) {
+ return sc_isNumber(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isRational(n) {
+ return sc_isReal(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isInteger(n) {
+ return (parseInt(n) === n);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix ", false")))
+*/
+// we don't have exact numbers...
+function sc_isExact(n) {
+ return false;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ", true"))
+ (type bool))
+*/
+function sc_isInexact(n) {
+ return true;
+}
+
+/*** META ((export = =fx =fl)
+ (type bool)
+ (peephole (infix 2 2 "===")))
+*/
+function sc_equal(x) {
+ for (var i = 1; i < arguments.length; i++)
+ if (x !== arguments[i])
+ return false;
+ return true;
+}
+
+/*** META ((export < <fx <fl)
+ (type bool)
+ (peephole (infix 2 2 "<")))
+*/
+function sc_less(x) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x >= arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export > >fx >fl)
+ (type bool)
+ (peephole (infix 2 2 ">")))
+*/
+function sc_greater(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x <= arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export <= <=fx <=fl)
+ (type bool)
+ (peephole (infix 2 2 "<=")))
+*/
+function sc_lessEqual(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x > arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export >= >=fl >=fx)
+ (type bool)
+ (peephole (infix 2 2 ">=")))
+*/
+function sc_greaterEqual(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x < arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "=== 0")))
+*/
+function sc_isZero(x) {
+ return (x === 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "> 0")))
+*/
+function sc_isPositive(x) {
+ return (x > 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "< 0")))
+*/
+function sc_isNegative(x) {
+ return (x < 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "%2===1")))
+*/
+function sc_isOdd(x) {
+ return (x % 2 === 1);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "%2===0")))
+*/
+function sc_isEven(x) {
+ return (x % 2 === 0);
+}
+
+/*** META ((export #t)) */
+var sc_max = Math.max;
+/*** META ((export #t)) */
+var sc_min = Math.min;
+
+/*** META ((export + +fx +fl)
+ (peephole (infix 0 #f "+" "0")))
+*/
+function sc_plus() {
+ var sum = 0;
+ for (var i = 0; i < arguments.length; i++)
+ sum += arguments[i];
+ return sum;
+}
+
+/*** META ((export * *fx *fl)
+ (peephole (infix 0 #f "*" "1")))
+*/
+function sc_multi() {
+ var product = 1;
+ for (var i = 0; i < arguments.length; i++)
+ product *= arguments[i];
+ return product;
+}
+
+/*** META ((export - -fx -fl)
+ (peephole (minus)))
+*/
+function sc_minus(x) {
+ if (arguments.length === 1)
+ return -x;
+ else {
+ var res = x;
+ for (var i = 1; i < arguments.length; i++)
+ res -= arguments[i];
+ return res;
+ }
+}
+
+/*** META ((export / /fl)
+ (peephole (div)))
+*/
+function sc_div(x) {
+ if (arguments.length === 1)
+ return 1/x;
+ else {
+ var res = x;
+ for (var i = 1; i < arguments.length; i++)
+ res /= arguments[i];
+ return res;
+ }
+}
+
+/*** META ((export #t)) */
+var sc_abs = Math.abs;
+
+/*** META ((export quotient /fx)
+ (peephole (hole 2 "parseInt(" x "/" y ")")))
+*/
+function sc_quotient(x, y) {
+ return parseInt(x / y);
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "%")))
+*/
+function sc_remainder(x, y) {
+ return x % y;
+}
+
+/*** META ((export #t)
+ (peephole (modulo)))
+*/
+function sc_modulo(x, y) {
+ var remainder = x % y;
+ // if they don't have the same sign
+ if ((remainder * y) < 0)
+ return remainder + y;
+ else
+ return remainder;
+}
+
+function sc_euclid_gcd(a, b) {
+ var temp;
+ if (a === 0) return b;
+ if (b === 0) return a;
+ if (a < 0) {a = -a;};
+ if (b < 0) {b = -b;};
+ if (b > a) {temp = a; a = b; b = temp;};
+ while (true) {
+ a %= b;
+ if(a === 0) {return b;};
+ b %= a;
+ if(b === 0) {return a;};
+ };
+ return b;
+}
+
+/*** META ((export #t)) */
+function sc_gcd() {
+ var gcd = 0;
+ for (var i = 0; i < arguments.length; i++)
+ gcd = sc_euclid_gcd(gcd, arguments[i]);
+ return gcd;
+}
+
+/*** META ((export #t)) */
+function sc_lcm() {
+ var lcm = 1;
+ for (var i = 0; i < arguments.length; i++) {
+ var f = Math.round(arguments[i] / sc_euclid_gcd(arguments[i], lcm));
+ lcm *= Math.abs(f);
+ }
+ return lcm;
+}
+
+// LIMITATION: numerator and denominator don't make sense in floating point world.
+//var SC_MAX_DECIMALS = 1000000
+//
+// function sc_numerator(x) {
+// var rounded = Math.round(x * SC_MAX_DECIMALS);
+// return Math.round(rounded / sc_euclid_gcd(rounded, SC_MAX_DECIMALS));
+// }
+
+// function sc_denominator(x) {
+// var rounded = Math.round(x * SC_MAX_DECIMALS);
+// return Math.round(SC_MAX_DECIMALS / sc_euclid_gcd(rounded, SC_MAX_DECIMALS));
+// }
+
+/*** META ((export #t)) */
+var sc_floor = Math.floor;
+/*** META ((export #t)) */
+var sc_ceiling = Math.ceil;
+/*** META ((export #t)) */
+var sc_truncate = parseInt;
+/*** META ((export #t)) */
+var sc_round = Math.round;
+
+// LIMITATION: sc_rationalize doesn't make sense in a floating point world.
+
+/*** META ((export #t)) */
+var sc_exp = Math.exp;
+/*** META ((export #t)) */
+var sc_log = Math.log;
+/*** META ((export #t)) */
+var sc_sin = Math.sin;
+/*** META ((export #t)) */
+var sc_cos = Math.cos;
+/*** META ((export #t)) */
+var sc_tan = Math.tan;
+/*** META ((export #t)) */
+var sc_asin = Math.asin;
+/*** META ((export #t)) */
+var sc_acos = Math.acos;
+/*** META ((export #t)) */
+var sc_atan = Math.atan;
+
+/*** META ((export #t)) */
+var sc_sqrt = Math.sqrt;
+/*** META ((export #t)) */
+var sc_expt = Math.pow;
+
+// LIMITATION: we don't have complex numbers.
+// LIMITATION: the following functions are hence not implemented.
+// LIMITATION: make-rectangular, make-polar, real-part, imag-part, magnitude, angle
+// LIMITATION: 2 argument atan
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_exact2inexact(x) {
+ return x;
+}
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_inexact2exact(x) {
+ return x;
+}
+
+function sc_number2jsstring(x, radix) {
+ if (radix)
+ return x.toString(radix);
+ else
+ return x.toString();
+}
+
+function sc_jsstring2number(s, radix) {
+ if (s === "") return false;
+
+ if (radix) {
+ var t = parseInt(s, radix);
+ if (!t && t !== 0) return false;
+ // verify that each char is in range. (parseInt ignores leading
+ // white and trailing chars)
+ var allowedChars = "01234567890abcdefghijklmnopqrstuvwxyz".substring(0, radix+1);
+ if ((new RegExp("^["+allowedChars+"]*$", "i")).test(s))
+ return t;
+ else return false;
+ } else {
+ var t = +s; // does not ignore trailing chars.
+ if (!t && t !== 0) return false;
+ // simply verify that first char is not whitespace.
+ var c = s.charAt(0);
+ // if +c is 0, but the char is not "0", then we have a whitespace.
+ if (+c === 0 && c !== "0") return false;
+ return t;
+ }
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (not)))
+*/
+function sc_not(b) {
+ return b === false;
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isBoolean(b) {
+ return (b === true) || (b === false);
+}
+
+function sc_Pair(car, cdr) {
+ this.car = car;
+ this.cdr = cdr;
+}
+
+sc_Pair.prototype.toString = function() {
+ return sc_toDisplayString(this);
+};
+sc_Pair.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {
+ var current = this;
+
+ var res = "(";
+
+ while(true) {
+ res += writeOrDisplay(current.car);
+ if (sc_isPair(current.cdr)) {
+ res += " ";
+ current = current.cdr;
+ } else if (current.cdr !== null) {
+ res += " . " + writeOrDisplay(current.cdr);
+ break;
+ } else // current.cdr == null
+ break;
+ }
+
+ res += ")";
+
+ return res;
+};
+sc_Pair.prototype.sc_toDisplayString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toDisplayString);
+};
+sc_Pair.prototype.sc_toWriteString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toWriteString);
+};
+// sc_Pair.prototype.sc_toWriteCircleString in IO.js
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_Pair")))
+*/
+function sc_isPair(p) {
+ return (p instanceof sc_Pair);
+}
+
+function sc_isPairEqual(p1, p2, comp) {
+ return (comp(p1.car, p2.car) && comp(p1.cdr, p2.cdr));
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 "new sc_Pair(" car ", " cdr ")")))
+*/
+function sc_cons(car, cdr) {
+ return new sc_Pair(car, cdr);
+}
+
+/*** META ((export cons*)) */
+function sc_consStar() {
+ var res = arguments[arguments.length - 1];
+ for (var i = arguments.length-2; i >= 0; i--)
+ res = new sc_Pair(arguments[i], res);
+ return res;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".car")))
+*/
+function sc_car(p) {
+ return p.car;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".cdr")))
+*/
+function sc_cdr(p) {
+ return p.cdr;
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 p ".car = " val)))
+*/
+function sc_setCarBang(p, val) {
+ p.car = val;
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 p ".cdr = " val)))
+*/
+function sc_setCdrBang(p, val) {
+ p.cdr = val;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".car.car")))
+*/
+function sc_caar(p) { return p.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car")))
+*/
+function sc_cadr(p) { return p.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr")))
+*/
+function sc_cdar(p) { return p.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr")))
+*/
+function sc_cddr(p) { return p.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car")))
+*/
+function sc_caaar(p) { return p.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car")))
+*/
+function sc_cadar(p) { return p.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car")))
+*/
+function sc_caadr(p) { return p.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car")))
+*/
+function sc_caddr(p) { return p.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr")))
+*/
+function sc_cdaar(p) { return p.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr")))
+*/
+function sc_cdadr(p) { return p.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr")))
+*/
+function sc_cddar(p) { return p.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr")))
+*/
+function sc_cdddr(p) { return p.cdr.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car.car")))
+*/
+function sc_caaaar(p) { return p.car.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car.car")))
+*/
+function sc_caadar(p) { return p.car.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car.car")))
+*/
+function sc_caaadr(p) { return p.cdr.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car.car")))
+*/
+function sc_caaddr(p) { return p.cdr.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car.cdr")))
+*/
+function sc_cdaaar(p) { return p.car.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car.cdr")))
+*/
+function sc_cdadar(p) { return p.car.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car.cdr")))
+*/
+function sc_cdaadr(p) { return p.cdr.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car.cdr")))
+*/
+function sc_cdaddr(p) { return p.cdr.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr.car")))
+*/
+function sc_cadaar(p) { return p.car.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr.car")))
+*/
+function sc_caddar(p) { return p.car.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr.car")))
+*/
+function sc_cadadr(p) { return p.cdr.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr.car")))
+*/
+function sc_cadddr(p) { return p.cdr.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr.cdr")))
+*/
+function sc_cddaar(p) { return p.car.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr.cdr")))
+*/
+function sc_cdddar(p) { return p.car.cdr.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr.cdr")))
+*/
+function sc_cddadr(p) { return p.cdr.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr.cdr")))
+*/
+function sc_cddddr(p) { return p.cdr.cdr.cdr.cdr; }
+
+/*** META ((export #t)) */
+function sc_lastPair(l) {
+ if (!sc_isPair(l)) sc_error("sc_lastPair: pair expected");
+ var res = l;
+ var cdr = l.cdr;
+ while (sc_isPair(cdr)) {
+ res = cdr;
+ cdr = res.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " === null")))
+*/
+function sc_isNull(o) {
+ return (o === null);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isList(o) {
+ var rabbit;
+ var turtle;
+
+ var rabbit = o;
+ var turtle = o;
+ while (true) {
+ if (rabbit === null ||
+ (rabbit instanceof sc_Pair && rabbit.cdr === null))
+ return true; // end of list
+ else if ((rabbit instanceof sc_Pair) &&
+ (rabbit.cdr instanceof sc_Pair)) {
+ rabbit = rabbit.cdr.cdr;
+ turtle = turtle.cdr;
+ if (rabbit === turtle) return false; // cycle
+ } else
+ return false; // not pair
+ }
+}
+
+/*** META ((export #t)) */
+function sc_list() {
+ var res = null;
+ var a = arguments;
+ for (var i = a.length-1; i >= 0; i--)
+ res = new sc_Pair(a[i], res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_iota(num, init) {
+ var res = null;
+ if (!init) init = 0;
+ for (var i = num - 1; i >= 0; i--)
+ res = new sc_Pair(i + init, res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_makeList(nbEls, fill) {
+ var res = null;
+ for (var i = 0; i < nbEls; i++)
+ res = new sc_Pair(fill, res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_length(l) {
+ var res = 0;
+ while (l !== null) {
+ res++;
+ l = l.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_remq(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l !== null) {
+ if (l.car !== o) {
+ tail.cdr = sc_cons(l.car, null);
+ tail = tail.cdr;
+ }
+ l = l.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_remqBang(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ var needsAssig = true;
+ while (l !== null) {
+ if (l.car === o) {
+ needsAssig = true;
+ } else {
+ if (needsAssig) {
+ tail.cdr = l;
+ needsAssig = false;
+ }
+ tail = l;
+ }
+ l = l.cdr;
+ }
+ tail.cdr = null;
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_delete(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l !== null) {
+ if (!sc_isEqual(l.car, o)) {
+ tail.cdr = sc_cons(l.car, null);
+ tail = tail.cdr;
+ }
+ l = l.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_deleteBang(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ var needsAssig = true;
+ while (l !== null) {
+ if (sc_isEqual(l.car, o)) {
+ needsAssig = true;
+ } else {
+ if (needsAssig) {
+ tail.cdr = l;
+ needsAssig = false;
+ }
+ tail = l;
+ }
+ l = l.cdr;
+ }
+ tail.cdr = null;
+ return dummy.cdr;
+}
+
+function sc_reverseAppendBang(l1, l2) {
+ var res = l2;
+ while (l1 !== null) {
+ var tmp = res;
+ res = l1;
+ l1 = l1.cdr;
+ res.cdr = tmp;
+ }
+ return res;
+}
+
+function sc_dualAppend(l1, l2) {
+ if (l1 === null) return l2;
+ if (l2 === null) return l1;
+ var rev = sc_reverse(l1);
+ return sc_reverseAppendBang(rev, l2);
+}
+
+/*** META ((export #t)) */
+function sc_append() {
+ if (arguments.length === 0)
+ return null;
+ var res = arguments[arguments.length - 1];
+ for (var i = arguments.length - 2; i >= 0; i--)
+ res = sc_dualAppend(arguments[i], res);
+ return res;
+}
+
+function sc_dualAppendBang(l1, l2) {
+ if (l1 === null) return l2;
+ if (l2 === null) return l1;
+ var tmp = l1;
+ while (tmp.cdr !== null) tmp=tmp.cdr;
+ tmp.cdr = l2;
+ return l1;
+}
+
+/*** META ((export #t)) */
+function sc_appendBang() {
+ var res = null;
+ for (var i = 0; i < arguments.length; i++)
+ res = sc_dualAppendBang(res, arguments[i]);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_reverse(l1) {
+ var res = null;
+ while (l1 !== null) {
+ res = sc_cons(l1.car, res);
+ l1 = l1.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_reverseBang(l) {
+ return sc_reverseAppendBang(l, null);
+}
+
+/*** META ((export #t)) */
+function sc_listTail(l, k) {
+ var res = l;
+ for (var i = 0; i < k; i++) {
+ res = res.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_listRef(l, k) {
+ return sc_listTail(l, k).car;
+}
+
+/* // unoptimized generic versions
+function sc_memX(o, l, comp) {
+ while (l != null) {
+ if (comp(l.car, o))
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+function sc_memq(o, l) { return sc_memX(o, l, sc_isEq); }
+function sc_memv(o, l) { return sc_memX(o, l, sc_isEqv); }
+function sc_member(o, l) { return sc_memX(o, l, sc_isEqual); }
+*/
+
+/* optimized versions */
+/*** META ((export #t)) */
+function sc_memq(o, l) {
+ while (l !== null) {
+ if (l.car === o)
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_memv(o, l) {
+ while (l !== null) {
+ if (l.car === o)
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_member(o, l) {
+ while (l !== null) {
+ if (sc_isEqual(l.car,o))
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+
+/* // generic unoptimized versions
+function sc_assX(o, al, comp) {
+ while (al != null) {
+ if (comp(al.car.car, o))
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+function sc_assq(o, al) { return sc_assX(o, al, sc_isEq); }
+function sc_assv(o, al) { return sc_assX(o, al, sc_isEqv); }
+function sc_assoc(o, al) { return sc_assX(o, al, sc_isEqual); }
+*/
+// optimized versions
+/*** META ((export #t)) */
+function sc_assq(o, al) {
+ while (al !== null) {
+ if (al.car.car === o)
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_assv(o, al) {
+ while (al !== null) {
+ if (al.car.car === o)
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_assoc(o, al) {
+ while (al !== null) {
+ if (sc_isEqual(al.car.car, o))
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+
+/* can be used for mutable strings and characters */
+function sc_isCharStringEqual(cs1, cs2) { return cs1.val === cs2.val; }
+function sc_isCharStringLess(cs1, cs2) { return cs1.val < cs2.val; }
+function sc_isCharStringGreater(cs1, cs2) { return cs1.val > cs2.val; }
+function sc_isCharStringLessEqual(cs1, cs2) { return cs1.val <= cs2.val; }
+function sc_isCharStringGreaterEqual(cs1, cs2) { return cs1.val >= cs2.val; }
+function sc_isCharStringCIEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() === cs2.val.toLowerCase(); }
+function sc_isCharStringCILess(cs1, cs2)
+ { return cs1.val.toLowerCase() < cs2.val.toLowerCase(); }
+function sc_isCharStringCIGreater(cs1, cs2)
+ { return cs1.val.toLowerCase() > cs2.val.toLowerCase(); }
+function sc_isCharStringCILessEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() <= cs2.val.toLowerCase(); }
+function sc_isCharStringCIGreaterEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() >= cs2.val.toLowerCase(); }
+
+
+
+
+function sc_Char(c) {
+ var cached = sc_Char.lazy[c];
+ if (cached)
+ return cached;
+ this.val = c;
+ sc_Char.lazy[c] = this;
+ // add return, so FF does not complain.
+ return undefined;
+}
+sc_Char.lazy = new Object();
+// thanks to Eric
+sc_Char.char2readable = {
+ "\000": "#\\null",
+ "\007": "#\\bell",
+ "\010": "#\\backspace",
+ "\011": "#\\tab",
+ "\012": "#\\newline",
+ "\014": "#\\page",
+ "\015": "#\\return",
+ "\033": "#\\escape",
+ "\040": "#\\space",
+ "\177": "#\\delete",
+
+ /* poeticless names */
+ "\001": "#\\soh",
+ "\002": "#\\stx",
+ "\003": "#\\etx",
+ "\004": "#\\eot",
+ "\005": "#\\enq",
+ "\006": "#\\ack",
+
+ "\013": "#\\vt",
+ "\016": "#\\so",
+ "\017": "#\\si",
+
+ "\020": "#\\dle",
+ "\021": "#\\dc1",
+ "\022": "#\\dc2",
+ "\023": "#\\dc3",
+ "\024": "#\\dc4",
+ "\025": "#\\nak",
+ "\026": "#\\syn",
+ "\027": "#\\etb",
+
+ "\030": "#\\can",
+ "\031": "#\\em",
+ "\032": "#\\sub",
+ "\033": "#\\esc",
+ "\034": "#\\fs",
+ "\035": "#\\gs",
+ "\036": "#\\rs",
+ "\037": "#\\us"};
+
+sc_Char.readable2char = {
+ "null": "\000",
+ "bell": "\007",
+ "backspace": "\010",
+ "tab": "\011",
+ "newline": "\012",
+ "page": "\014",
+ "return": "\015",
+ "escape": "\033",
+ "space": "\040",
+ "delete": "\000",
+ "soh": "\001",
+ "stx": "\002",
+ "etx": "\003",
+ "eot": "\004",
+ "enq": "\005",
+ "ack": "\006",
+ "bel": "\007",
+ "bs": "\010",
+ "ht": "\011",
+ "nl": "\012",
+ "vt": "\013",
+ "np": "\014",
+ "cr": "\015",
+ "so": "\016",
+ "si": "\017",
+ "dle": "\020",
+ "dc1": "\021",
+ "dc2": "\022",
+ "dc3": "\023",
+ "dc4": "\024",
+ "nak": "\025",
+ "syn": "\026",
+ "etb": "\027",
+ "can": "\030",
+ "em": "\031",
+ "sub": "\032",
+ "esc": "\033",
+ "fs": "\034",
+ "gs": "\035",
+ "rs": "\036",
+ "us": "\037",
+ "sp": "\040",
+ "del": "\177"};
+
+sc_Char.prototype.toString = function() {
+ return this.val;
+};
+// sc_toDisplayString == toString
+sc_Char.prototype.sc_toWriteString = function() {
+ var entry = sc_Char.char2readable[this.val];
+ if (entry)
+ return entry;
+ else
+ return "#\\" + this.val;
+};
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "instanceof sc_Char")))
+*/
+function sc_isChar(c) {
+ return (c instanceof sc_Char);
+}
+
+/*** META ((export char=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val === " c2 ".val")))
+*/
+var sc_isCharEqual = sc_isCharStringEqual;
+/*** META ((export char<?)
+ (type bool)
+ (peephole (hole 2 c1 ".val < " c2 ".val")))
+*/
+var sc_isCharLess = sc_isCharStringLess;
+/*** META ((export char>?)
+ (type bool)
+ (peephole (hole 2 c1 ".val > " c2 ".val")))
+*/
+var sc_isCharGreater = sc_isCharStringGreater;
+/*** META ((export char<=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val <= " c2 ".val")))
+*/
+var sc_isCharLessEqual = sc_isCharStringLessEqual;
+/*** META ((export char>=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val >= " c2 ".val")))
+*/
+var sc_isCharGreaterEqual = sc_isCharStringGreaterEqual;
+/*** META ((export char-ci=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() === " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIEqual = sc_isCharStringCIEqual;
+/*** META ((export char-ci<?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() < " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCILess = sc_isCharStringCILess;
+/*** META ((export char-ci>?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() > " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIGreater = sc_isCharStringCIGreater;
+/*** META ((export char-ci<=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() <= " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCILessEqual = sc_isCharStringCILessEqual;
+/*** META ((export char-ci>=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() >= " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIGreaterEqual = sc_isCharStringCIGreaterEqual;
+
+var SC_NUMBER_CLASS = "0123456789";
+var SC_WHITESPACE_CLASS = ' \r\n\t\f';
+var SC_LOWER_CLASS = 'abcdefghijklmnopqrstuvwxyz';
+var SC_UPPER_CLASS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+
+function sc_isCharOfClass(c, cl) { return (cl.indexOf(c) != -1); }
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharAlphabetic(c)
+ { return sc_isCharOfClass(c.val, SC_LOWER_CLASS) ||
+ sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_NUMBER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharNumeric(c)
+ { return sc_isCharOfClass(c.val, SC_NUMBER_CLASS); }
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharWhitespace(c) {
+ var tmp = c.val;
+ return tmp === " " || tmp === "\r" || tmp === "\n" || tmp === "\t" || tmp === "\f";
+}
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_UPPER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharUpperCase(c)
+ { return sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_LOWER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharLowerCase(c)
+ { return sc_isCharOfClass(c.val, SC_LOWER_CLASS); }
+
+/*** META ((export #t)
+ (peephole (postfix ".val.charCodeAt(0)")))
+*/
+function sc_char2integer(c)
+ { return c.val.charCodeAt(0); }
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(String.fromCharCode(" n "))")))
+*/
+function sc_integer2char(n)
+ { return new sc_Char(String.fromCharCode(n)); }
+
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(" c ".val.toUpperCase())")))
+*/
+function sc_charUpcase(c)
+ { return new sc_Char(c.val.toUpperCase()); }
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(" c ".val.toLowerCase())")))
+*/
+function sc_charDowncase(c)
+ { return new sc_Char(c.val.toLowerCase()); }
+
+function sc_makeJSStringOfLength(k, c) {
+ var fill;
+ if (c === undefined)
+ fill = " ";
+ else
+ fill = c;
+ var res = "";
+ var len = 1;
+ // every round doubles the size of fill.
+ while (k >= len) {
+ if (k & len)
+ res = res.concat(fill);
+ fill = fill.concat(fill);
+ len *= 2;
+ }
+ return res;
+}
+
+function sc_makejsString(k, c) {
+ var fill;
+ if (c)
+ fill = c.val;
+ else
+ fill = " ";
+ return sc_makeJSStringOfLength(k, fill);
+}
+
+function sc_jsstring2list(s) {
+ var res = null;
+ for (var i = s.length - 1; i >= 0; i--)
+ res = sc_cons(new sc_Char(s.charAt(i)), res);
+ return res;
+}
+
+function sc_list2jsstring(l) {
+ var a = new Array();
+ while(l !== null) {
+ a.push(l.car.val);
+ l = l.cdr;
+ }
+ return "".concat.apply("", a);
+}
+
+var sc_Vector = Array;
+
+sc_Vector.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {
+ if (this.length === 0) return "#()";
+
+ var res = "#(" + writeOrDisplay(this[0]);
+ for (var i = 1; i < this.length; i++)
+ res += " " + writeOrDisplay(this[i]);
+ res += ")";
+ return res;
+};
+sc_Vector.prototype.sc_toDisplayString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toDisplayString);
+};
+sc_Vector.prototype.sc_toWriteString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toWriteString);
+};
+
+/*** META ((export vector? array?)
+ (type bool)
+ (peephole (postfix " instanceof sc_Vector")))
+*/
+function sc_isVector(v) {
+ return (v instanceof sc_Vector);
+}
+
+// only applies to vectors
+function sc_isVectorEqual(v1, v2, comp) {
+ if (v1.length !== v2.length) return false;
+ for (var i = 0; i < v1.length; i++)
+ if (!comp(v1[i], v2[i])) return false;
+ return true;
+}
+
+/*** META ((export make-vector make-array)) */
+function sc_makeVector(size, fill) {
+ var a = new sc_Vector(size);
+ if (fill !== undefined)
+ sc_vectorFillBang(a, fill);
+ return a;
+}
+
+/*** META ((export vector array)
+ (peephole (vector)))
+*/
+function sc_vector() {
+ var a = new sc_Vector();
+ for (var i = 0; i < arguments.length; i++)
+ a.push(arguments[i]);
+ return a;
+}
+
+/*** META ((export vector-length array-length)
+ (peephole (postfix ".length")))
+*/
+function sc_vectorLength(v) {
+ return v.length;
+}
+
+/*** META ((export vector-ref array-ref)
+ (peephole (hole 2 v "[" pos "]")))
+*/
+function sc_vectorRef(v, pos) {
+ return v[pos];
+}
+
+/*** META ((export vector-set! array-set!)
+ (peephole (hole 3 v "[" pos "] = " val)))
+*/
+function sc_vectorSetBang(v, pos, val) {
+ v[pos] = val;
+}
+
+/*** META ((export vector->list array->list)) */
+function sc_vector2list(a) {
+ var res = null;
+ for (var i = a.length-1; i >= 0; i--)
+ res = sc_cons(a[i], res);
+ return res;
+}
+
+/*** META ((export list->vector list->array)) */
+function sc_list2vector(l) {
+ var a = new sc_Vector();
+ while(l !== null) {
+ a.push(l.car);
+ l = l.cdr;
+ }
+ return a;
+}
+
+/*** META ((export vector-fill! array-fill!)) */
+function sc_vectorFillBang(a, fill) {
+ for (var i = 0; i < a.length; i++)
+ a[i] = fill;
+}
+
+
+/*** META ((export #t)) */
+function sc_copyVector(a, len) {
+ if (len <= a.length)
+ return a.slice(0, len);
+ else {
+ var tmp = a.concat();
+ tmp.length = len;
+ return tmp;
+ }
+}
+
+/*** META ((export #t)
+ (peephole (hole 3 a ".slice(" start "," end ")")))
+*/
+function sc_vectorCopy(a, start, end) {
+ return a.slice(start, end);
+}
+
+/*** META ((export #t)) */
+function sc_vectorCopyBang(target, tstart, source, sstart, send) {
+ if (!sstart) sstart = 0;
+ if (!send) send = source.length;
+
+ // if target == source we don't want to overwrite not yet copied elements.
+ if (tstart <= sstart) {
+ for (var i = tstart, j = sstart; j < send; i++, j++) {
+ target[i] = source[j];
+ }
+ } else {
+ var diff = send - sstart;
+ for (var i = tstart + diff - 1, j = send - 1;
+ j >= sstart;
+ i--, j--) {
+ target[i] = source[j];
+ }
+ }
+ return target;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "typeof " o " === 'function'")))
+*/
+function sc_isProcedure(o) {
+ return (typeof o === "function");
+}
+
+/*** META ((export #t)) */
+function sc_apply(proc) {
+ var args = new Array();
+ // first part of arguments are not in list-form.
+ for (var i = 1; i < arguments.length - 1; i++)
+ args.push(arguments[i]);
+ var l = arguments[arguments.length - 1];
+ while (l !== null) {
+ args.push(l.car);
+ l = l.cdr;
+ }
+ return proc.apply(null, args);
+}
+
+/*** META ((export #t)) */
+function sc_map(proc, l1) {
+ if (l1 === undefined)
+ return null;
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ var revres = null;
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ revres = sc_cons(proc.apply(null, applyArgs), revres);
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_mapBang(proc, l1) {
+ if (l1 === undefined)
+ return null;
+ // else
+ var l1_orig = l1;
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ while (l1 !== null) {
+ var tmp = l1;
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ tmp.car = proc.apply(null, applyArgs);
+ }
+ return l1_orig;
+}
+
+/*** META ((export #t)) */
+function sc_forEach(proc, l1) {
+ if (l1 === undefined)
+ return undefined;
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ proc.apply(null, applyArgs);
+ }
+ // add return so FF does not complain.
+ return undefined;
+}
+
+/*** META ((export #t)) */
+function sc_filter(proc, l1) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l1 !== null) {
+ if (proc(l1.car) !== false) {
+ tail.cdr = sc_cons(l1.car, null);
+ tail = tail.cdr;
+ }
+ l1 = l1.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_filterBang(proc, l1) {
+ var head = sc_cons("dummy", l1);
+ var it = head;
+ var next = l1;
+ while (next !== null) {
+ if (proc(next.car) !== false) {
+ it.cdr = next
+ it = next;
+ }
+ next = next.cdr;
+ }
+ it.cdr = null;
+ return head.cdr;
+}
+
+function sc_filterMap1(proc, l1) {
+ var revres = null;
+ while (l1 !== null) {
+ var tmp = proc(l1.car)
+ if (tmp !== false) revres = sc_cons(tmp, revres);
+ l1 = l1.cdr;
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+function sc_filterMap2(proc, l1, l2) {
+ var revres = null;
+ while (l1 !== null) {
+ var tmp = proc(l1.car, l2.car);
+ if(tmp !== false) revres = sc_cons(tmp, revres);
+ l1 = l1.cdr;
+ l2 = l2.cdr
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_filterMap(proc, l1, l2, l3) {
+ if (l2 === undefined)
+ return sc_filterMap1(proc, l1);
+ else if (l3 === undefined)
+ return sc_filterMap2(proc, l1, l2);
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ var revres = null;
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ var tmp = proc.apply(null, applyArgs);
+ if(tmp !== false) revres = sc_cons(tmp, revres);
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_any(proc, l) {
+ var revres = null;
+ while (l !== null) {
+ var tmp = proc(l.car);
+ if(tmp !== false) return tmp;
+ l = l.cdr;
+ }
+ return false;
+}
+
+/*** META ((export any?)
+ (peephole (hole 2 "sc_any(" proc "," l ") !== false")))
+*/
+function sc_anyPred(proc, l) {
+ return sc_any(proc, l)!== false;
+}
+
+/*** META ((export #t)) */
+function sc_every(proc, l) {
+ var revres = null;
+ var tmp = true;
+ while (l !== null) {
+ tmp = proc(l.car);
+ if (tmp === false) return false;
+ l = l.cdr;
+ }
+ return tmp;
+}
+
+/*** META ((export every?)
+ (peephole (hole 2 "sc_every(" proc "," l ") !== false")))
+*/
+function sc_everyPred(proc, l) {
+ var tmp = sc_every(proc, l);
+ if (tmp !== false) return true;
+ return false;
+}
+
+/*** META ((export #t)
+ (peephole (postfix "()")))
+*/
+function sc_force(o) {
+ return o();
+}
+
+/*** META ((export #t)) */
+function sc_makePromise(proc) {
+ var isResultReady = false;
+ var result = undefined;
+ return function() {
+ if (!isResultReady) {
+ var tmp = proc();
+ if (!isResultReady) {
+ isResultReady = true;
+ result = tmp;
+ }
+ }
+ return result;
+ };
+}
+
+function sc_Values(values) {
+ this.values = values;
+}
+
+/*** META ((export #t)
+ (peephole (values)))
+*/
+function sc_values() {
+ if (arguments.length === 1)
+ return arguments[0];
+ else
+ return new sc_Values(arguments);
+}
+
+/*** META ((export #t)) */
+function sc_callWithValues(producer, consumer) {
+ var produced = producer();
+ if (produced instanceof sc_Values)
+ return consumer.apply(null, produced.values);
+ else
+ return consumer(produced);
+}
+
+/*** META ((export #t)) */
+function sc_dynamicWind(before, thunk, after) {
+ before();
+ try {
+ var res = thunk();
+ return res;
+ } finally {
+ after();
+ }
+}
+
+
+// TODO: eval/scheme-report-environment/null-environment/interaction-environment
+
+// LIMITATION: 'load' doesn't exist without files.
+// LIMITATION: transcript-on/transcript-off doesn't exist without files.
+
+
+function sc_Struct(name) {
+ this.name = name;
+}
+sc_Struct.prototype.sc_toDisplayString = function() {
+ return "#<struct" + sc_hash(this) + ">";
+};
+sc_Struct.prototype.sc_toWriteString = sc_Struct.prototype.sc_toDisplayString;
+
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Struct(" name ")")))
+*/
+function sc_makeStruct(name) {
+ return new sc_Struct(name);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_Struct")))
+*/
+function sc_isStruct(o) {
+ return (o instanceof sc_Struct);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 2 "(" 1 " instanceof sc_Struct) && ( " 1 ".name === " 0 ")")))
+*/
+function sc_isStructNamed(name, s) {
+ return ((s instanceof sc_Struct) && (s.name === name));
+}
+
+/*** META ((export struct-field)
+ (peephole (hole 3 0 "[" 2 "]")))
+*/
+function sc_getStructField(s, name, field) {
+ return s[field];
+}
+
+/*** META ((export struct-field-set!)
+ (peephole (hole 4 0 "[" 2 "] = " 3)))
+*/
+function sc_setStructFieldBang(s, name, field, val) {
+ s[field] = val;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "~")))
+*/
+function sc_bitNot(x) {
+ return ~x;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "&")))
+*/
+function sc_bitAnd(x, y) {
+ return x & y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "|")))
+*/
+function sc_bitOr(x, y) {
+ return x | y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "^")))
+*/
+function sc_bitXor(x, y) {
+ return x ^ y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "<<")))
+*/
+function sc_bitLsh(x, y) {
+ return x << y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 ">>")))
+*/
+function sc_bitRsh(x, y) {
+ return x >> y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 ">>>")))
+*/
+function sc_bitUrsh(x, y) {
+ return x >>> y;
+}
+
+/*** META ((export js-field js-property)
+ (peephole (hole 2 o "[" field "]")))
+*/
+function sc_jsField(o, field) {
+ return o[field];
+}
+
+/*** META ((export js-field-set! js-property-set!)
+ (peephole (hole 3 o "[" field "] = " val)))
+*/
+function sc_setJsFieldBang(o, field, val) {
+ return o[field] = val;
+}
+
+/*** META ((export js-field-delete! js-property-delete!)
+ (peephole (hole 2 "delete" o "[" field "]")))
+*/
+function sc_deleteJsFieldBang(o, field) {
+ delete o[field];
+}
+
+/*** META ((export #t)
+ (peephole (jsCall)))
+*/
+function sc_jsCall(o, fun) {
+ var args = new Array();
+ for (var i = 2; i < arguments.length; i++)
+ args[i-2] = arguments[i];
+ return fun.apply(o, args);
+}
+
+/*** META ((export #t)
+ (peephole (jsMethodCall)))
+*/
+function sc_jsMethodCall(o, field) {
+ var args = new Array();
+ for (var i = 2; i < arguments.length; i++)
+ args[i-2] = arguments[i];
+ return o[field].apply(o, args);
+}
+
+/*** META ((export new js-new)
+ (peephole (jsNew)))
+*/
+function sc_jsNew(c) {
+ var evalStr = "new c(";
+ evalStr +=arguments.length > 1? "arguments[1]": "";
+ for (var i = 2; i < arguments.length; i++)
+ evalStr += ", arguments[" + i + "]";
+ evalStr +=")";
+ return eval(evalStr);
+}
+
+// ======================== RegExp ====================
+/*** META ((export #t)) */
+function sc_pregexp(re) {
+ return new RegExp(sc_string2jsstring(re));
+}
+
+/*** META ((export #t)) */
+function sc_pregexpMatch(re, s) {
+ var reg = (re instanceof RegExp) ? re : sc_pregexp(re);
+ var tmp = reg.exec(sc_string2jsstring(s));
+
+ if (tmp == null) return false;
+
+ var res = null;
+ for (var i = tmp.length-1; i >= 0; i--) {
+ if (tmp[i] !== null) {
+ res = sc_cons(sc_jsstring2string(tmp[i]), res);
+ } else {
+ res = sc_cons(false, res);
+ }
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_pregexpReplace(re, s1, s2) {
+ var reg;
+ var jss1 = sc_string2jsstring(s1);
+ var jss2 = sc_string2jsstring(s2);
+
+ if (re instanceof RegExp) {
+ if (re.global)
+ reg = re;
+ else
+ reg = new RegExp(re.source);
+ } else {
+ reg = new RegExp(sc_string2jsstring(re));
+ }
+
+ return jss1.replace(reg, jss2);
+}
+
+/*** META ((export pregexp-replace*)) */
+function sc_pregexpReplaceAll(re, s1, s2) {
+ var reg;
+ var jss1 = sc_string2jsstring(s1);
+ var jss2 = sc_string2jsstring(s2);
+
+ if (re instanceof RegExp) {
+ if (re.global)
+ reg = re;
+ else
+ reg = new RegExp(re.source, "g");
+ } else {
+ reg = new RegExp(sc_string2jsstring(re), "g");
+ }
+
+ return jss1.replace(reg, jss2);
+}
+
+/*** META ((export #t)) */
+function sc_pregexpSplit(re, s) {
+ var reg = ((re instanceof RegExp) ?
+ re :
+ new RegExp(sc_string2jsstring(re)));
+ var jss = sc_string2jsstring(s);
+ var tmp = jss.split(reg);
+
+ if (tmp == null) return false;
+
+ return sc_vector2list(tmp);
+}
+
+
+/* =========================================================================== */
+/* Other library stuff */
+/* =========================================================================== */
+
+/*** META ((export #t)
+ (peephole (hole 1 "Math.floor(Math.random()*" 'n ")")))
+*/
+function sc_random(n) {
+ return Math.floor(Math.random()*n);
+}
+
+/*** META ((export current-date)
+ (peephole (hole 0 "new Date()")))
+*/
+function sc_currentDate() {
+ return new Date();
+}
+
+function sc_Hashtable() {
+}
+sc_Hashtable.prototype.toString = function() {
+ return "#{%hashtable}";
+};
+// sc_toWriteString == sc_toDisplayString == toString
+
+function sc_HashtableElement(key, val) {
+ this.key = key;
+ this.val = val;
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "new sc_Hashtable()")))
+*/
+function sc_makeHashtable() {
+ return new sc_Hashtable();
+}
+
+/*** META ((export #t)) */
+function sc_hashtablePutBang(ht, key, val) {
+ var hash = sc_hash(key);
+ ht[hash] = new sc_HashtableElement(key, val);
+}
+
+/*** META ((export #t)) */
+function sc_hashtableGet(ht, key) {
+ var hash = sc_hash(key);
+ if (hash in ht)
+ return ht[hash].val;
+ else
+ return false;
+}
+
+/*** META ((export #t)) */
+function sc_hashtableForEach(ht, f) {
+ for (var v in ht) {
+ if (ht[v] instanceof sc_HashtableElement)
+ f(ht[v].key, ht[v].val);
+ }
+}
+
+/*** META ((export hashtable-contains?)
+ (peephole (hole 2 "sc_hash(" 1 ") in " 0)))
+*/
+function sc_hashtableContains(ht, key) {
+ var hash = sc_hash(key);
+ if (hash in ht)
+ return true;
+ else
+ return false;
+}
+
+var SC_HASH_COUNTER = 0;
+
+function sc_hash(o) {
+ if (o === null)
+ return "null";
+ else if (o === undefined)
+ return "undefined";
+ else if (o === true)
+ return "true";
+ else if (o === false)
+ return "false";
+ else if (typeof o === "number")
+ return "num-" + o;
+ else if (typeof o === "string")
+ return "jsstr-" + o;
+ else if (o.sc_getHash)
+ return o.sc_getHash();
+ else
+ return sc_counterHash.call(o);
+}
+function sc_counterHash() {
+ if (!this.sc_hash) {
+ this.sc_hash = "hash-" + SC_HASH_COUNTER;
+ SC_HASH_COUNTER++;
+ }
+ return this.sc_hash;
+}
+
+function sc_Trampoline(args, maxTailCalls) {
+ this['__trampoline return__'] = true;
+ this.args = args;
+ this.MAX_TAIL_CALLs = maxTailCalls;
+}
+// TODO: call/cc stuff
+sc_Trampoline.prototype.restart = function() {
+ var o = this;
+ while (true) {
+ // set both globals.
+ SC_TAIL_OBJECT.calls = o.MAX_TAIL_CALLs-1;
+ var fun = o.args.callee;
+ var res = fun.apply(SC_TAIL_OBJECT, o.args);
+ if (res instanceof sc_Trampoline)
+ o = res;
+ else
+ return res;
+ }
+}
+
+/*** META ((export bind-exit-lambda)) */
+function sc_bindExitLambda(proc) {
+ var escape_obj = new sc_BindExitException();
+ var escape = function(res) {
+ escape_obj.res = res;
+ throw escape_obj;
+ };
+ try {
+ return proc(escape);
+ } catch(e) {
+ if (e === escape_obj) {
+ return e.res;
+ }
+ throw e;
+ }
+}
+function sc_BindExitException() {
+ this._internalException = true;
+}
+
+var SC_SCM2JS_GLOBALS = new Object();
+
+// default tail-call depth.
+// normally the program should set it again. but just in case...
+var SC_TAIL_OBJECT = new Object();
+SC_SCM2JS_GLOBALS.TAIL_OBJECT = SC_TAIL_OBJECT;
+// ======================== I/O =======================
+
+/*------------------------------------------------------------------*/
+
+function sc_EOF() {
+}
+var SC_EOF_OBJECT = new sc_EOF();
+
+function sc_Port() {
+}
+
+/* --------------- Input ports -------------------------------------*/
+
+function sc_InputPort() {
+}
+sc_InputPort.prototype = new sc_Port();
+
+sc_InputPort.prototype.peekChar = function() {
+ if (!("peeked" in this))
+ this.peeked = this.getNextChar();
+ return this.peeked;
+}
+sc_InputPort.prototype.readChar = function() {
+ var tmp = this.peekChar();
+ delete this.peeked;
+ return tmp;
+}
+sc_InputPort.prototype.isCharReady = function() {
+ return true;
+}
+sc_InputPort.prototype.close = function() {
+ // do nothing
+}
+
+/* .............. String port ..........................*/
+function sc_ErrorInputPort() {
+};
+sc_ErrorInputPort.prototype = new sc_InputPort();
+sc_ErrorInputPort.prototype.getNextChar = function() {
+ throw "can't read from error-port.";
+};
+sc_ErrorInputPort.prototype.isCharReady = function() {
+ return false;
+};
+
+
+/* .............. String port ..........................*/
+
+function sc_StringInputPort(jsStr) {
+ // we are going to do some charAts on the str.
+ // instead of recreating all the time a String-object, we
+ // create one in the beginning. (not sure, if this is really an optim)
+ this.str = new String(jsStr);
+ this.pos = 0;
+}
+sc_StringInputPort.prototype = new sc_InputPort();
+sc_StringInputPort.prototype.getNextChar = function() {
+ if (this.pos >= this.str.length)
+ return SC_EOF_OBJECT;
+ return this.str.charAt(this.pos++);
+};
+
+/* ------------- Read and other lib-funs -------------------------------*/
+function sc_Token(type, val, pos) {
+ this.type = type;
+ this.val = val;
+ this.pos = pos;
+}
+sc_Token.EOF = 0/*EOF*/;
+sc_Token.OPEN_PAR = 1/*OPEN_PAR*/;
+sc_Token.CLOSE_PAR = 2/*CLOSE_PAR*/;
+sc_Token.OPEN_BRACE = 3/*OPEN_BRACE*/;
+sc_Token.CLOSE_BRACE = 4/*CLOSE_BRACE*/;
+sc_Token.OPEN_BRACKET = 5/*OPEN_BRACKET*/;
+sc_Token.CLOSE_BRACKET = 6/*CLOSE_BRACKET*/;
+sc_Token.WHITESPACE = 7/*WHITESPACE*/;
+sc_Token.QUOTE = 8/*QUOTE*/;
+sc_Token.ID = 9/*ID*/;
+sc_Token.DOT = 10/*DOT*/;
+sc_Token.STRING = 11/*STRING*/;
+sc_Token.NUMBER = 12/*NUMBER*/;
+sc_Token.ERROR = 13/*ERROR*/;
+sc_Token.VECTOR_BEGIN = 14/*VECTOR_BEGIN*/;
+sc_Token.TRUE = 15/*TRUE*/;
+sc_Token.FALSE = 16/*FALSE*/;
+sc_Token.UNSPECIFIED = 17/*UNSPECIFIED*/;
+sc_Token.REFERENCE = 18/*REFERENCE*/;
+sc_Token.STORE = 19/*STORE*/;
+sc_Token.CHAR = 20/*CHAR*/;
+
+var SC_ID_CLASS = SC_LOWER_CLASS + SC_UPPER_CLASS + "!$%*+-./:<=>?@^_~";
+function sc_Tokenizer(port) {
+ this.port = port;
+}
+sc_Tokenizer.prototype.peekToken = function() {
+ if (this.peeked)
+ return this.peeked;
+ var newToken = this.nextToken();
+ this.peeked = newToken;
+ return newToken;
+};
+sc_Tokenizer.prototype.readToken = function() {
+ var tmp = this.peekToken();
+ delete this.peeked;
+ return tmp;
+};
+sc_Tokenizer.prototype.nextToken = function() {
+ var port = this.port;
+
+ function isNumberChar(c) {
+ return (c >= "0" && c <= "9");
+ };
+ function isIdOrNumberChar(c) {
+ return SC_ID_CLASS.indexOf(c) != -1 || // ID-char
+ (c >= "0" && c <= "9");
+ }
+ function isWhitespace(c) {
+ return c === " " || c === "\r" || c === "\n" || c === "\t" || c === "\f";
+ };
+ function isWhitespaceOrEOF(c) {
+ return isWhitespace(c) || c === SC_EOF_OBJECT;
+ };
+
+ function readString() {
+ res = "";
+ while (true) {
+ var c = port.readChar();
+ switch (c) {
+ case '"':
+ return new sc_Token(11/*STRING*/, res);
+ case "\\":
+ var tmp = port.readChar();
+ switch (tmp) {
+ case '0': res += "\0"; break;
+ case 'a': res += "\a"; break;
+ case 'b': res += "\b"; break;
+ case 'f': res += "\f"; break;
+ case 'n': res += "\n"; break;
+ case 'r': res += "\r"; break;
+ case 't': res += "\t"; break;
+ case 'v': res += "\v"; break;
+ case '"': res += '"'; break;
+ case '\\': res += '\\'; break;
+ case 'x':
+ /* hexa-number */
+ var nb = 0;
+ while (true) {
+ var hexC = port.peekChar();
+ if (hexC >= '0' && hexC <= '9') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - '0'.charCodeAt(0);
+ } else if (hexC >= 'a' && hexC <= 'f') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - 'a'.charCodeAt(0);
+ } else if (hexC >= 'A' && hexC <= 'F') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - 'A'.charCodeAt(0);
+ } else {
+ // next char isn't part of hex.
+ res += String.fromCharCode(nb);
+ break;
+ }
+ }
+ break;
+ default:
+ if (tmp === SC_EOF_OBJECT) {
+ return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res);
+ }
+ res += tmp;
+ }
+ break;
+ default:
+ if (c === SC_EOF_OBJECT) {
+ return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res);
+ }
+ res += c;
+ }
+ }
+ };
+ function readIdOrNumber(firstChar) {
+ var res = firstChar;
+ while (isIdOrNumberChar(port.peekChar()))
+ res += port.readChar();
+ if (isNaN(res))
+ return new sc_Token(9/*ID*/, res);
+ else
+ return new sc_Token(12/*NUMBER*/, res - 0);
+ };
+
+ function skipWhitespaceAndComments() {
+ var done = false;
+ while (!done) {
+ done = true;
+ while (isWhitespace(port.peekChar()))
+ port.readChar();
+ if (port.peekChar() === ';') {
+ port.readChar();
+ done = false;
+ while (true) {
+ curChar = port.readChar();
+ if (curChar === SC_EOF_OBJECT ||
+ curChar === '\n')
+ break;
+ }
+ }
+ }
+ };
+
+ function readDot() {
+ if (isWhitespace(port.peekChar()))
+ return new sc_Token(10/*DOT*/);
+ else
+ return readIdOrNumber(".");
+ };
+
+ function readSharp() {
+ var c = port.readChar();
+ if (isWhitespace(c))
+ return new sc_Token(13/*ERROR*/, "bad #-pattern0.");
+
+ // reference
+ if (isNumberChar(c)) {
+ var nb = c - 0;
+ while (isNumberChar(port.peekChar()))
+ nb = nb*10 + (port.readChar() - 0);
+ switch (port.readChar()) {
+ case '#':
+ return new sc_Token(18/*REFERENCE*/, nb);
+ case '=':
+ return new sc_Token(19/*STORE*/, nb);
+ default:
+ return new sc_Token(13/*ERROR*/, "bad #-pattern1." + nb);
+ }
+ }
+
+ if (c === "(")
+ return new sc_Token(14/*VECTOR_BEGIN*/);
+
+ if (c === "\\") { // character
+ var tmp = ""
+ while (!isWhitespaceOrEOF(port.peekChar()))
+ tmp += port.readChar();
+ switch (tmp.length) {
+ case 0: // it's escaping a whitespace char:
+ if (sc_isEOFObject(port.peekChar))
+ return new sc_Token(13/*ERROR*/, "bad #-pattern2.");
+ else
+ return new sc_Token(20/*CHAR*/, port.readChar());
+ case 1:
+ return new sc_Token(20/*CHAR*/, tmp);
+ default:
+ var entry = sc_Char.readable2char[tmp.toLowerCase()];
+ if (entry)
+ return new sc_Token(20/*CHAR*/, entry);
+ else
+ return new sc_Token(13/*ERROR*/, "unknown character description: #\\" + tmp);
+ }
+ }
+
+ // some constants (#t, #f, #unspecified)
+ var res;
+ var needing;
+ switch (c) {
+ case 't': res = new sc_Token(15/*TRUE*/, true); needing = ""; break;
+ case 'f': res = new sc_Token(16/*FALSE*/, false); needing = ""; break;
+ case 'u': res = new sc_Token(17/*UNSPECIFIED*/, undefined); needing = "nspecified"; break;
+ default:
+ return new sc_Token(13/*ERROR*/, "bad #-pattern3: " + c);
+ }
+ while(true) {
+ c = port.peekChar();
+ if ((isWhitespaceOrEOF(c) || c === ')') &&
+ needing == "")
+ return res;
+ else if (isWhitespace(c) || needing == "")
+ return new sc_Token(13/*ERROR*/, "bad #-pattern4 " + c + " " + needing);
+ else if (needing.charAt(0) == c) {
+ port.readChar(); // consume
+ needing = needing.slice(1);
+ } else
+ return new sc_Token(13/*ERROR*/, "bad #-pattern5");
+ }
+
+ };
+
+ skipWhitespaceAndComments();
+ var curChar = port.readChar();
+ if (curChar === SC_EOF_OBJECT)
+ return new sc_Token(0/*EOF*/, curChar);
+ switch (curChar)
+ {
+ case " ":
+ case "\n":
+ case "\t":
+ return readWhitespace();
+ case "(":
+ return new sc_Token(1/*OPEN_PAR*/);
+ case ")":
+ return new sc_Token(2/*CLOSE_PAR*/);
+ case "{":
+ return new sc_Token(3/*OPEN_BRACE*/);
+ case "}":
+ return new sc_Token(4/*CLOSE_BRACE*/);
+ case "[":
+ return new sc_Token(5/*OPEN_BRACKET*/);
+ case "]":
+ return new sc_Token(6/*CLOSE_BRACKET*/);
+ case "'":
+ return new sc_Token(8/*QUOTE*/);
+ case "#":
+ return readSharp();
+ case ".":
+ return readDot();
+ case '"':
+ return readString();
+ default:
+ if (isIdOrNumberChar(curChar))
+ return readIdOrNumber(curChar);
+ throw "unexpected character: " + curChar;
+ }
+};
+
+function sc_Reader(tokenizer) {
+ this.tokenizer = tokenizer;
+ this.backref = new Array();
+}
+sc_Reader.prototype.read = function() {
+ function readList(listBeginType) {
+ function matchesPeer(open, close) {
+ return open === 1/*OPEN_PAR*/ && close === 2/*CLOSE_PAR*/
+ || open === 3/*OPEN_BRACE*/ && close === 4/*CLOSE_BRACE*/
+ || open === 5/*OPEN_BRACKET*/ && close === 6/*CLOSE_BRACKET*/;
+ };
+ var res = null;
+
+ while (true) {
+ var token = tokenizer.peekToken();
+
+ switch (token.type) {
+ case 2/*CLOSE_PAR*/:
+ case 4/*CLOSE_BRACE*/:
+ case 6/*CLOSE_BRACKET*/:
+ if (matchesPeer(listBeginType, token.type)) {
+ tokenizer.readToken(); // consume token
+ return sc_reverseBang(res);
+ } else
+ throw "closing par doesn't match: " + listBeginType
+ + " " + listEndType;
+
+ case 0/*EOF*/:
+ throw "unexpected end of file";
+
+ case 10/*DOT*/:
+ tokenizer.readToken(); // consume token
+ var cdr = this.read();
+ var par = tokenizer.readToken();
+ if (!matchesPeer(listBeginType, par.type))
+ throw "closing par doesn't match: " + listBeginType
+ + " " + par.type;
+ else
+ return sc_reverseAppendBang(res, cdr);
+
+
+ default:
+ res = sc_cons(this.read(), res);
+ }
+ }
+ };
+ function readQuote() {
+ return sc_cons("quote", sc_cons(this.read(), null));
+ };
+ function readVector() {
+ // opening-parenthesis is already consumed
+ var a = new Array();
+ while (true) {
+ var token = tokenizer.peekToken();
+ switch (token.type) {
+ case 2/*CLOSE_PAR*/:
+ tokenizer.readToken();
+ return a;
+
+ default:
+ a.push(this.read());
+ }
+ }
+ };
+
+ function storeRefence(nb) {
+ var tmp = this.read();
+ this.backref[nb] = tmp;
+ return tmp;
+ };
+
+ function readReference(nb) {
+ if (nb in this.backref)
+ return this.backref[nb];
+ else
+ throw "bad reference: " + nb;
+ };
+
+ var tokenizer = this.tokenizer;
+
+ var token = tokenizer.readToken();
+
+ // handle error
+ if (token.type === 13/*ERROR*/)
+ throw token.val;
+
+ switch (token.type) {
+ case 1/*OPEN_PAR*/:
+ case 3/*OPEN_BRACE*/:
+ case 5/*OPEN_BRACKET*/:
+ return readList.call(this, token.type);
+ case 8/*QUOTE*/:
+ return readQuote.call(this);
+ case 11/*STRING*/:
+ return sc_jsstring2string(token.val);
+ case 20/*CHAR*/:
+ return new sc_Char(token.val);
+ case 14/*VECTOR_BEGIN*/:
+ return readVector.call(this);
+ case 18/*REFERENCE*/:
+ return readReference.call(this, token.val);
+ case 19/*STORE*/:
+ return storeRefence.call(this, token.val);
+ case 9/*ID*/:
+ return sc_jsstring2symbol(token.val);
+ case 0/*EOF*/:
+ case 12/*NUMBER*/:
+ case 15/*TRUE*/:
+ case 16/*FALSE*/:
+ case 17/*UNSPECIFIED*/:
+ return token.val;
+ default:
+ throw "unexpected token " + token.type + " " + token.val;
+ }
+};
+
+/*** META ((export #t)) */
+function sc_read(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var reader = new sc_Reader(new sc_Tokenizer(port));
+ return reader.read();
+}
+/*** META ((export #t)) */
+function sc_readChar(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var t = port.readChar();
+ return t === SC_EOF_OBJECT? t: new sc_Char(t);
+}
+/*** META ((export #t)) */
+function sc_peekChar(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var t = port.peekChar();
+ return t === SC_EOF_OBJECT? t: new sc_Char(t);
+}
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharReady(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ return port.isCharReady();
+}
+/*** META ((export #t)
+ (peephole (postfix ".close()")))
+*/
+function sc_closeInputPort(p) {
+ return p.close();
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_InputPort")))
+*/
+function sc_isInputPort(o) {
+ return (o instanceof sc_InputPort);
+}
+
+/*** META ((export eof-object?)
+ (type bool)
+ (peephole (postfix " === SC_EOF_OBJECT")))
+*/
+function sc_isEOFObject(o) {
+ return o === SC_EOF_OBJECT;
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "SC_DEFAULT_IN")))
+*/
+function sc_currentInputPort() {
+ return SC_DEFAULT_IN;
+}
+
+/* ------------ file operations are not supported -----------*/
+/*** META ((export #t)) */
+function sc_callWithInputFile(s, proc) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_callWithOutputFile(s, proc) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_withInputFromFile(s, thunk) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToFile(s, thunk) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_openInputFile(s) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_openOutputFile(s) {
+ throw "can't open " + s;
+}
+
+/* ----------------------------------------------------------------------------*/
+/*** META ((export #t)) */
+function sc_basename(p) {
+ var i = p.lastIndexOf('/');
+
+ if(i >= 0)
+ return p.substring(i + 1, p.length);
+ else
+ return '';
+}
+
+/*** META ((export #t)) */
+function sc_dirname(p) {
+ var i = p.lastIndexOf('/');
+
+ if(i >= 0)
+ return p.substring(0, i);
+ else
+ return '';
+}
+
+/* ----------------------------------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_withInputFromPort(p, thunk) {
+ try {
+ var tmp = SC_DEFAULT_IN; // THREAD: shared var.
+ SC_DEFAULT_IN = p;
+ return thunk();
+ } finally {
+ SC_DEFAULT_IN = tmp;
+ }
+}
+
+/*** META ((export #t)) */
+function sc_withInputFromString(s, thunk) {
+ return sc_withInputFromPort(new sc_StringInputPort(sc_string2jsstring(s)), thunk);
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToPort(p, thunk) {
+ try {
+ var tmp = SC_DEFAULT_OUT; // THREAD: shared var.
+ SC_DEFAULT_OUT = p;
+ return thunk();
+ } finally {
+ SC_DEFAULT_OUT = tmp;
+ }
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToString(thunk) {
+ var p = new sc_StringOutputPort();
+ sc_withOutputToPort(p, thunk);
+ return p.close();
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToProcedure(proc, thunk) {
+ var t = function(s) { proc(sc_jsstring2string(s)); };
+ return sc_withOutputToPort(new sc_GenericOutputPort(t), thunk);
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "new sc_StringOutputPort()")))
+*/
+function sc_openOutputString() {
+ return new sc_StringOutputPort();
+}
+
+/*** META ((export #t)) */
+function sc_openInputString(str) {
+ return new sc_StringInputPort(sc_string2jsstring(str));
+}
+
+/* ----------------------------------------------------------------------------*/
+
+function sc_OutputPort() {
+}
+sc_OutputPort.prototype = new sc_Port();
+sc_OutputPort.prototype.appendJSString = function(obj) {
+ /* do nothing */
+}
+sc_OutputPort.prototype.close = function() {
+ /* do nothing */
+}
+
+function sc_StringOutputPort() {
+ this.res = "";
+}
+sc_StringOutputPort.prototype = new sc_OutputPort();
+sc_StringOutputPort.prototype.appendJSString = function(s) {
+ this.res += s;
+}
+sc_StringOutputPort.prototype.close = function() {
+ return sc_jsstring2string(this.res);
+}
+
+/*** META ((export #t)) */
+function sc_getOutputString(sp) {
+ return sc_jsstring2string(sp.res);
+}
+
+
+function sc_ErrorOutputPort() {
+}
+sc_ErrorOutputPort.prototype = new sc_OutputPort();
+sc_ErrorOutputPort.prototype.appendJSString = function(s) {
+ throw "don't write on ErrorPort!";
+}
+sc_ErrorOutputPort.prototype.close = function() {
+ /* do nothing */
+}
+
+function sc_GenericOutputPort(appendJSString, close) {
+ this.appendJSString = appendJSString;
+ if (close)
+ this.close = close;
+}
+sc_GenericOutputPort.prototype = new sc_OutputPort();
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_OutputPort")))
+*/
+function sc_isOutputPort(o) {
+ return (o instanceof sc_OutputPort);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".close()")))
+*/
+function sc_closeOutputPort(p) {
+ return p.close();
+}
+
+/* ------------------ write ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_write(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toWriteString(o));
+}
+
+function sc_toWriteString(o) {
+ if (o === null)
+ return "()";
+ else if (o === true)
+ return "#t";
+ else if (o === false)
+ return "#f";
+ else if (o === undefined)
+ return "#unspecified";
+ else if (typeof o === 'function')
+ return "#<procedure " + sc_hash(o) + ">";
+ else if (o.sc_toWriteString)
+ return o.sc_toWriteString();
+ else
+ return o.toString();
+}
+
+function sc_escapeWriteString(s) {
+ var res = "";
+ var j = 0;
+ for (i = 0; i < s.length; i++) {
+ switch (s.charAt(i)) {
+ case "\0": res += s.substring(j, i) + "\\0"; j = i + 1; break;
+ case "\b": res += s.substring(j, i) + "\\b"; j = i + 1; break;
+ case "\f": res += s.substring(j, i) + "\\f"; j = i + 1; break;
+ case "\n": res += s.substring(j, i) + "\\n"; j = i + 1; break;
+ case "\r": res += s.substring(j, i) + "\\r"; j = i + 1; break;
+ case "\t": res += s.substring(j, i) + "\\t"; j = i + 1; break;
+ case "\v": res += s.substring(j, i) + "\\v"; j = i + 1; break;
+ case '"': res += s.substring(j, i) + '\\"'; j = i + 1; break;
+ case "\\": res += s.substring(j, i) + "\\\\"; j = i + 1; break;
+ default:
+ var c = s.charAt(i);
+ if ("\a" !== "a" && c == "\a") {
+ res += s.substring(j, i) + "\\a"; j = i + 1; continue;
+ }
+ if ("\v" !== "v" && c == "\v") {
+ res += s.substring(j, i) + "\\v"; j = i + 1; continue;
+ }
+ //if (s.charAt(i) < ' ' || s.charCodeAt(i) > 127) {
+ // CARE: Manuel is this OK with HOP?
+ if (s.charAt(i) < ' ') {
+ /* non printable character and special chars */
+ res += s.substring(j, i) + "\\x" + s.charCodeAt(i).toString(16);
+ j = i + 1;
+ }
+ // else just let i increase...
+ }
+ }
+ res += s.substring(j, i);
+ return res;
+}
+
+/* ------------------ display ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_display(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toDisplayString(o));
+}
+
+function sc_toDisplayString(o) {
+ if (o === null)
+ return "()";
+ else if (o === true)
+ return "#t";
+ else if (o === false)
+ return "#f";
+ else if (o === undefined)
+ return "#unspecified";
+ else if (typeof o === 'function')
+ return "#<procedure " + sc_hash(o) + ">";
+ else if (o.sc_toDisplayString)
+ return o.sc_toDisplayString();
+ else
+ return o.toString();
+}
+
+/* ------------------ newline ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_newline(p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString("\n");
+}
+
+/* ------------------ write-char ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_writeChar(c, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(c.val);
+}
+
+/* ------------------ write-circle ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_writeCircle(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toWriteCircleString(o));
+}
+
+function sc_toWriteCircleString(o) {
+ var symb = sc_gensym("writeCircle");
+ var nbPointer = new Object();
+ nbPointer.nb = 0;
+ sc_prepWriteCircle(o, symb, nbPointer);
+ return sc_genToWriteCircleString(o, symb);
+}
+
+function sc_prepWriteCircle(o, symb, nbPointer) {
+ // TODO sc_Struct
+ if (o instanceof sc_Pair ||
+ o instanceof sc_Vector) {
+ if (o[symb] !== undefined) {
+ // not the first visit.
+ o[symb]++;
+ // unless there is already a number, assign one.
+ if (!o[symb + "nb"]) o[symb + "nb"] = nbPointer.nb++;
+ return;
+ }
+ o[symb] = 0;
+ if (o instanceof sc_Pair) {
+ sc_prepWriteCircle(o.car, symb, nbPointer);
+ sc_prepWriteCircle(o.cdr, symb, nbPointer);
+ } else {
+ for (var i = 0; i < o.length; i++)
+ sc_prepWriteCircle(o[i], symb, nbPointer);
+ }
+ }
+}
+
+function sc_genToWriteCircleString(o, symb) {
+ if (!(o instanceof sc_Pair ||
+ o instanceof sc_Vector))
+ return sc_toWriteString(o);
+ return o.sc_toWriteCircleString(symb);
+}
+sc_Pair.prototype.sc_toWriteCircleString = function(symb, inList) {
+ if (this[symb + "use"]) { // use-flag is set. Just use it.
+ var nb = this[symb + "nb"];
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+ if (inList)
+ return '. #' + nb + '#';
+ else
+ return '#' + nb + '#';
+ }
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+
+ var res = "";
+
+ if (this[symb] !== undefined) { // implies > 0
+ this[symb + "use"] = true;
+ if (inList)
+ res += '. #' + this[symb + "nb"] + '=';
+ else
+ res += '#' + this[symb + "nb"] + '=';
+ inList = false;
+ }
+
+ if (!inList)
+ res += "(";
+
+ // print car
+ res += sc_genToWriteCircleString(this.car, symb);
+
+ if (sc_isPair(this.cdr)) {
+ res += " " + this.cdr.sc_toWriteCircleString(symb, true);
+ } else if (this.cdr !== null) {
+ res += " . " + sc_genToWriteCircleString(this.cdr, symb);
+ }
+ if (!inList)
+ res += ")";
+ return res;
+};
+sc_Vector.prototype.sc_toWriteCircleString = function(symb) {
+ if (this[symb + "use"]) { // use-flag is set. Just use it.
+ var nb = this[symb + "nb"];
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+ return '#' + nb + '#';
+ }
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+
+ var res = "";
+ if (this[symb] !== undefined) { // implies > 0
+ this[symb + "use"] = true;
+ res += '#' + this[symb + "nb"] + '=';
+ }
+ res += "#(";
+ for (var i = 0; i < this.length; i++) {
+ res += sc_genToWriteCircleString(this[i], symb);
+ if (i < this.length - 1) res += " ";
+ }
+ res += ")";
+ return res;
+};
+
+
+/* ------------------ print ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_print(s) {
+ if (arguments.length === 1) {
+ sc_display(s);
+ sc_newline();
+ }
+ else {
+ for (var i = 0; i < arguments.length; i++)
+ sc_display(arguments[i]);
+ sc_newline();
+ }
+}
+
+/* ------------------ format ---------------------------------------------------*/
+/*** META ((export #t)) */
+function sc_format(s, args) {
+ var len = s.length;
+ var p = new sc_StringOutputPort();
+ var i = 0, j = 1;
+
+ while( i < len ) {
+ var i2 = s.indexOf("~", i);
+
+ if (i2 == -1) {
+ p.appendJSString( s.substring( i, len ) );
+ return p.close();
+ } else {
+ if (i2 > i) {
+ if (i2 == (len - 1)) {
+ p.appendJSString(s.substring(i, len));
+ return p.close();
+ } else {
+ p.appendJSString(s.substring(i, i2));
+ i = i2;
+ }
+ }
+
+ switch(s.charCodeAt(i2 + 1)) {
+ case 65:
+ case 97:
+ // a
+ sc_display(arguments[j], p);
+ i += 2; j++;
+ break;
+
+ case 83:
+ case 115:
+ // s
+ sc_write(arguments[j], p);
+ i += 2; j++;
+ break;
+
+ case 86:
+ case 118:
+ // v
+ sc_display(arguments[j], p);
+ p.appendJSString("\n");
+ i += 2; j++;
+ break;
+
+ case 67:
+ case 99:
+ // c
+ p.appendJSString(String.fromCharCode(arguments[j]));
+ i += 2; j++;
+ break;
+
+ case 88:
+ case 120:
+ // x
+ p.appendJSString(arguments[j].toString(6));
+ i += 2; j++;
+ break;
+
+ case 79:
+ case 111:
+ // o
+ p.appendJSString(arguments[j].toString(8));
+ i += 2; j++;
+ break;
+
+ case 66:
+ case 98:
+ // b
+ p.appendJSString(arguments[j].toString(2));
+ i += 2; j++;
+ break;
+
+ case 37:
+ case 110:
+ // %, n
+ p.appendJSString("\n");
+ i += 2; break;
+
+ case 114:
+ // r
+ p.appendJSString("\r");
+ i += 2; break;
+
+ case 126:
+ // ~
+ p.appendJSString("~");
+ i += 2; break;
+
+ default:
+ sc_error( "format: illegal ~"
+ + String.fromCharCode(s.charCodeAt(i2 + 1))
+ + " sequence" );
+ return "";
+ }
+ }
+ }
+
+ return p.close();
+}
+
+/* ------------------ global ports ---------------------------------------------------*/
+
+var SC_DEFAULT_IN = new sc_ErrorInputPort();
+var SC_DEFAULT_OUT = new sc_ErrorOutputPort();
+var SC_ERROR_OUT = new sc_ErrorOutputPort();
+
+var sc_SYMBOL_PREFIX = "\u1E9C";
+var sc_KEYWORD_PREFIX = "\u1E9D";
+
+/*** META ((export #t)
+ (peephole (id))) */
+function sc_jsstring2string(s) {
+ return s;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9C' +")))
+*/
+function sc_jsstring2symbol(s) {
+ return sc_SYMBOL_PREFIX + s;
+}
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_string2jsstring(s) {
+ return s;
+}
+
+/*** META ((export #t)
+ (peephole (symbol2jsstring_immutable)))
+*/
+function sc_symbol2jsstring(s) {
+ return s.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".slice(1)")))
+*/
+function sc_keyword2jsstring(k) {
+ return k.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9D' +")))
+*/
+function sc_jsstring2keyword(s) {
+ return sc_KEYWORD_PREFIX + s;
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isKeyword(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) === sc_KEYWORD_PREFIX);
+}
+
+
+/*** META ((export #t)) */
+var sc_gensym = function() {
+ var counter = 1000;
+ return function(sym) {
+ counter++;
+ if (!sym) sym = sc_SYMBOL_PREFIX;
+ return sym + "s" + counter + "~" + "^sC-GeNsYm ";
+ };
+}();
+
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isEqual(o1, o2) {
+ return ((o1 === o2) ||
+ (sc_isPair(o1) && sc_isPair(o2)
+ && sc_isPairEqual(o1, o2, sc_isEqual)) ||
+ (sc_isVector(o1) && sc_isVector(o2)
+ && sc_isVectorEqual(o1, o2, sc_isEqual)));
+}
+
+/*** META ((export number->symbol integer->symbol)) */
+function sc_number2symbol(x, radix) {
+ return sc_SYMBOL_PREFIX + sc_number2jsstring(x, radix);
+}
+
+/*** META ((export number->string integer->string)) */
+var sc_number2string = sc_number2jsstring;
+
+/*** META ((export #t)) */
+function sc_symbol2number(s, radix) {
+ return sc_jsstring2number(s.slice(1), radix);
+}
+
+/*** META ((export #t)) */
+var sc_string2number = sc_jsstring2number;
+
+/*** META ((export #t)
+ (peephole (prefix "+" s)))
+ ;; peephole will only apply if no radix is given.
+*/
+function sc_string2integer(s, radix) {
+ if (!radix) return +s;
+ return parseInt(s, radix);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "+")))
+*/
+function sc_string2real(s) {
+ return +s;
+}
+
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isSymbol(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) === sc_SYMBOL_PREFIX);
+}
+
+/*** META ((export #t)
+ (peephole (symbol2string_immutable)))
+*/
+function sc_symbol2string(s) {
+ return s.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9C' +")))
+*/
+function sc_string2symbol(s) {
+ return sc_SYMBOL_PREFIX + s;
+}
+
+/*** META ((export symbol-append)
+ (peephole (symbolAppend_immutable)))
+*/
+function sc_symbolAppend() {
+ var res = sc_SYMBOL_PREFIX;
+ for (var i = 0; i < arguments.length; i++)
+ res += arguments[i].slice(1);
+ return res;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".val")))
+*/
+function sc_char2string(c) { return c.val; }
+
+/*** META ((export #t)
+ (peephole (hole 1 "'\\u1E9C' + " c ".val")))
+*/
+function sc_char2symbol(c) { return sc_SYMBOL_PREFIX + c.val; }
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isString(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) !== sc_SYMBOL_PREFIX);
+}
+
+/*** META ((export #t)) */
+var sc_makeString = sc_makejsString;
+
+
+/*** META ((export #t)) */
+function sc_string() {
+ for (var i = 0; i < arguments.length; i++)
+ arguments[i] = arguments[i].val;
+ return "".concat.apply("", arguments);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".length")))
+*/
+function sc_stringLength(s) { return s.length; }
+
+/*** META ((export #t)) */
+function sc_stringRef(s, k) {
+ return new sc_Char(s.charAt(k));
+}
+
+/* there's no stringSet in the immutable version
+function sc_stringSet(s, k, c)
+*/
+
+
+/*** META ((export string=?)
+ (type bool)
+ (peephole (hole 2 str1 " === " str2)))
+*/
+function sc_isStringEqual(s1, s2) {
+ return s1 === s2;
+}
+/*** META ((export string<?)
+ (type bool)
+ (peephole (hole 2 str1 " < " str2)))
+*/
+function sc_isStringLess(s1, s2) {
+ return s1 < s2;
+}
+/*** META ((export string>?)
+ (type bool)
+ (peephole (hole 2 str1 " > " str2)))
+*/
+function sc_isStringGreater(s1, s2) {
+ return s1 > s2;
+}
+/*** META ((export string<=?)
+ (type bool)
+ (peephole (hole 2 str1 " <= " str2)))
+*/
+function sc_isStringLessEqual(s1, s2) {
+ return s1 <= s2;
+}
+/*** META ((export string>=?)
+ (type bool)
+ (peephole (hole 2 str1 " >= " str2)))
+*/
+function sc_isStringGreaterEqual(s1, s2) {
+ return s1 >= s2;
+}
+/*** META ((export string-ci=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() === " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIEqual(s1, s2) {
+ return s1.toLowerCase() === s2.toLowerCase();
+}
+/*** META ((export string-ci<?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() < " str2 ".toLowerCase()")))
+*/
+function sc_isStringCILess(s1, s2) {
+ return s1.toLowerCase() < s2.toLowerCase();
+}
+/*** META ((export string-ci>?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() > " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIGreater(s1, s2) {
+ return s1.toLowerCase() > s2.toLowerCase();
+}
+/*** META ((export string-ci<=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() <= " str2 ".toLowerCase()")))
+*/
+function sc_isStringCILessEqual(s1, s2) {
+ return s1.toLowerCase() <= s2.toLowerCase();
+}
+/*** META ((export string-ci>=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() >= " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIGreaterEqual(s1, s2) {
+ return s1.toLowerCase() >= s2.toLowerCase();
+}
+
+/*** META ((export #t)
+ (peephole (hole 3 s ".substring(" start ", " end ")")))
+*/
+function sc_substring(s, start, end) {
+ return s.substring(start, end);
+}
+
+/*** META ((export #t))
+*/
+function sc_isSubstring_at(s1, s2, i) {
+ return s2 == s1.substring(i, i+ s2.length);
+}
+
+/*** META ((export #t)
+ (peephole (infix 0 #f "+" "''")))
+*/
+function sc_stringAppend() {
+ return "".concat.apply("", arguments);
+}
+
+/*** META ((export #t)) */
+var sc_string2list = sc_jsstring2list;
+
+/*** META ((export #t)) */
+var sc_list2string = sc_list2jsstring;
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_stringCopy(s) {
+ return s;
+}
+
+/* there's no string-fill in the immutable version
+function sc_stringFill(s, c)
+*/
+
+/*** META ((export #t)
+ (peephole (postfix ".slice(1)")))
+*/
+function sc_keyword2string(o) {
+ return o.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9D' +")))
+*/
+function sc_string2keyword(o) {
+ return sc_KEYWORD_PREFIX + o;
+}
+
+String.prototype.sc_toDisplayString = function() {
+ if (this.charAt(0) === sc_SYMBOL_PREFIX)
+ // TODO: care for symbols with spaces (escape-chars symbols).
+ return this.slice(1);
+ else if (this.charAt(0) === sc_KEYWORD_PREFIX)
+ return ":" + this.slice(1);
+ else
+ return this.toString();
+};
+
+String.prototype.sc_toWriteString = function() {
+ if (this.charAt(0) === sc_SYMBOL_PREFIX)
+ // TODO: care for symbols with spaces (escape-chars symbols).
+ return this.slice(1);
+ else if (this.charAt(0) === sc_KEYWORD_PREFIX)
+ return ":" + this.slice(1);
+ else
+ return '"' + sc_escapeWriteString(this) + '"';
+};
+/* Exported Variables */
+var BgL_testzd2boyerzd2;
+var BgL_nboyerzd2benchmarkzd2;
+var BgL_setupzd2boyerzd2;
+/* End Exports */
+
+var translate_term_nboyer;
+var translate_args_nboyer;
+var untranslate_term_nboyer;
+var BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer;
+var BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer;
+var translate_alist_nboyer;
+var apply_subst_nboyer;
+var apply_subst_lst_nboyer;
+var tautologyp_nboyer;
+var if_constructor_nboyer;
+var rewrite_count_nboyer;
+var rewrite_nboyer;
+var rewrite_args_nboyer;
+var unify_subst_nboyer;
+var one_way_unify1_nboyer;
+var false_term_nboyer;
+var true_term_nboyer;
+var trans_of_implies1_nboyer;
+var is_term_equal_nboyer;
+var is_term_member_nboyer;
+var const_nboyer;
+var sc_const_3_nboyer;
+var sc_const_4_nboyer;
+{
+ (sc_const_4_nboyer = (new sc_Pair("\u1E9Cimplies",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cu",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cw",null)))))),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cw",null)))))),null)))))));
+ (sc_const_3_nboyer = sc_list((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccompile",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Ccodegen",(new sc_Pair((new sc_Pair("\u1E9Coptimize",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreaterp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clesseqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cboolean",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ciff",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceven1",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Codd",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccountps-",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccountps-loop",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfact-",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfact-loop",(new sc_Pair("\u1E9Ci",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdivides",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-true",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-false",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctautology-checker",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctautologyp",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfalsify",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfalsify1",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime1",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair("\u1E9Cp",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))))),(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cc",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cplus-fringe",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair("\u1E9Cenvrn",null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmc-flatten",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cintersect",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Ck",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ck",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Csort-lp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus1",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Ci",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cbase",null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cj",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cj",(new sc_Pair((1),null)))))),null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Ci",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cw",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cz",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnlistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csamefringe",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cz",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cw",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair(sc_list("\u1E9Cand", (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Ca",null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cb",null)))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cl",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cl",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdsort",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx1",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx2",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx3",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx4",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx5",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx6",(new sc_Pair("\u1E9Cx7",null)))))),null)))))),null)))))),null)))))),null)))))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((6),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx7",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cy",(new sc_Pair((2),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csigma",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Ci",null)))),null)))))),(new sc_Pair((2),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cz",null)))),null)))))),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Ca",null)))),null)))),(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Cb",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair("\u1E9Cz",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cassignedp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair((new sc_Pair("\u1E9Cset",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cval",(new sc_Pair("\u1E9Cmem",null)))))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair("\u1E9Cval",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cmem",null)))))),null)))))))),null))))))));
+ (const_nboyer = (new sc_Pair((new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))))),null)))))))))));
+ BgL_nboyerzd2benchmarkzd2 = function() {
+ var args = null;
+ for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) {
+ args = sc_cons(arguments[sc_tmp], args);
+ }
+ var n;
+ return ((n = ((args === null)?(0):(args.car))), (BgL_setupzd2boyerzd2()), (BgL_runzd2benchmarkzd2(("nboyer"+(sc_number2string(n))), (1), function() {
+ return (BgL_testzd2boyerzd2(n));
+ }, function(rewrites) {
+ if ((sc_isNumber(rewrites)))
+ switch (n) {
+ case (0):
+ return (rewrites===(95024));
+ break;
+ case (1):
+ return (rewrites===(591777));
+ break;
+ case (2):
+ return (rewrites===(1813975));
+ break;
+ case (3):
+ return (rewrites===(5375678));
+ break;
+ case (4):
+ return (rewrites===(16445406));
+ break;
+ case (5):
+ return (rewrites===(51507739));
+ break;
+ default:
+ return true;
+ break;
+ }
+ else
+ return false;
+ })));
+ };
+ BgL_setupzd2boyerzd2 = function() {
+ return true;
+ };
+ BgL_testzd2boyerzd2 = function() {
+ return true;
+ };
+ translate_term_nboyer = function(term) {
+ var lst;
+ return (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((translate_term_nboyer((lst.car))), (translate_args_nboyer((lst.cdr))))))))));
+ };
+ translate_args_nboyer = function(lst) {
+ var sc_lst_5;
+ var term;
+ return ((lst === null)?null:(new sc_Pair(((term = (lst.car)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))), ((sc_lst_5 = (lst.cdr)), ((sc_lst_5 === null)?null:(new sc_Pair((translate_term_nboyer((sc_lst_5.car))), (translate_args_nboyer((sc_lst_5.cdr))))))))));
+ };
+ untranslate_term_nboyer = function(term) {
+ var optrOpnd;
+ var tail1131;
+ var L1127;
+ var falseHead1130;
+ var symbol_record;
+ if (!(term instanceof sc_Pair))
+ return term;
+ else
+ {
+ (falseHead1130 = (new sc_Pair(null, null)));
+ (L1127 = (term.cdr));
+ (tail1131 = falseHead1130);
+ while (!(L1127 === null)) {
+ {
+ (tail1131.cdr = (new sc_Pair((untranslate_term_nboyer((L1127.car))), null)));
+ (tail1131 = (tail1131.cdr));
+ (L1127 = (L1127.cdr));
+ }
+ }
+ (optrOpnd = (falseHead1130.cdr));
+ return (new sc_Pair(((symbol_record = (term.car)), (symbol_record[(0)])), optrOpnd));
+ }
+ };
+ BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer = function(sym) {
+ var r;
+ var x;
+ return ((x = (sc_assq(sym, BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), ((x!== false)?(x.cdr):((r = [sym, null]), (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = (new sc_Pair((new sc_Pair(sym, r)), BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), r)));
+ };
+ (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null);
+ translate_alist_nboyer = function(alist) {
+ var sc_alist_6;
+ var term;
+ return ((alist === null)?null:(new sc_Pair((new sc_Pair((alist.car.car), ((term = (alist.car.cdr)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))))), ((sc_alist_6 = (alist.cdr)), ((sc_alist_6 === null)?null:(new sc_Pair((new sc_Pair((sc_alist_6.car.car), (translate_term_nboyer((sc_alist_6.car.cdr))))), (translate_alist_nboyer((sc_alist_6.cdr))))))))));
+ };
+ apply_subst_nboyer = function(alist, term) {
+ var lst;
+ var temp_temp;
+ return (!(term instanceof sc_Pair)?((temp_temp = (sc_assq(term, alist))), ((temp_temp!== false)?(temp_temp.cdr):term)):(new sc_Pair((term.car), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), (apply_subst_lst_nboyer(alist, (lst.cdr))))))))));
+ };
+ apply_subst_lst_nboyer = function(alist, lst) {
+ var sc_lst_7;
+ return ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), ((sc_lst_7 = (lst.cdr)), ((sc_lst_7 === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (sc_lst_7.car))), (apply_subst_lst_nboyer(alist, (sc_lst_7.cdr))))))))));
+ };
+ tautologyp_nboyer = function(sc_x_11, true_lst, false_lst) {
+ var tmp1125;
+ var x;
+ var tmp1126;
+ var sc_x_8;
+ var sc_tmp1125_9;
+ var sc_tmp1126_10;
+ var sc_x_11;
+ var true_lst;
+ var false_lst;
+ while (true) {
+ if ((((sc_tmp1126_10 = (is_term_equal_nboyer(sc_x_11, true_term_nboyer))), ((sc_tmp1126_10!== false)?sc_tmp1126_10:(is_term_member_nboyer(sc_x_11, true_lst))))!== false))
+ return true;
+ else
+ if ((((sc_tmp1125_9 = (is_term_equal_nboyer(sc_x_11, false_term_nboyer))), ((sc_tmp1125_9!== false)?sc_tmp1125_9:(is_term_member_nboyer(sc_x_11, false_lst))))!== false))
+ return false;
+ else
+ if (!(sc_x_11 instanceof sc_Pair))
+ return false;
+ else
+ if (((sc_x_11.car)===if_constructor_nboyer))
+ if ((((sc_x_8 = (sc_x_11.cdr.car)), (tmp1126 = (is_term_equal_nboyer(sc_x_8, true_term_nboyer))), ((tmp1126!== false)?tmp1126:(is_term_member_nboyer(sc_x_8, true_lst))))!== false))
+ (sc_x_11 = (sc_x_11.cdr.cdr.car));
+ else
+ if ((((x = (sc_x_11.cdr.car)), (tmp1125 = (is_term_equal_nboyer(x, false_term_nboyer))), ((tmp1125!== false)?tmp1125:(is_term_member_nboyer(x, false_lst))))!== false))
+ (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car));
+ else
+ if (((tautologyp_nboyer((sc_x_11.cdr.cdr.car), (new sc_Pair((sc_x_11.cdr.car), true_lst)), false_lst))!== false))
+ {
+ (false_lst = (new sc_Pair((sc_x_11.cdr.car), false_lst)));
+ (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car));
+ }
+ else
+ return false;
+ else
+ return false;
+ }
+ };
+ (if_constructor_nboyer = "\u1E9C*");
+ (rewrite_count_nboyer = (0));
+ rewrite_nboyer = function(term) {
+ var term2;
+ var sc_term_12;
+ var lst;
+ var symbol_record;
+ var sc_lst_13;
+ {
+ (++rewrite_count_nboyer);
+ if (!(term instanceof sc_Pair))
+ return term;
+ else
+ {
+ (sc_term_12 = (new sc_Pair((term.car), ((sc_lst_13 = (term.cdr)), ((sc_lst_13 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_13.car))), (rewrite_args_nboyer((sc_lst_13.cdr))))))))));
+ (lst = ((symbol_record = (term.car)), (symbol_record[(1)])));
+ while (true) {
+ if ((lst === null))
+ return sc_term_12;
+ else
+ if ((((term2 = ((lst.car).cdr.car)), (unify_subst_nboyer = null), (one_way_unify1_nboyer(sc_term_12, term2)))!== false))
+ return (rewrite_nboyer((apply_subst_nboyer(unify_subst_nboyer, ((lst.car).cdr.cdr.car)))));
+ else
+ (lst = (lst.cdr));
+ }
+ }
+ }
+ };
+ rewrite_args_nboyer = function(lst) {
+ var sc_lst_14;
+ return ((lst === null)?null:(new sc_Pair((rewrite_nboyer((lst.car))), ((sc_lst_14 = (lst.cdr)), ((sc_lst_14 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_14.car))), (rewrite_args_nboyer((sc_lst_14.cdr))))))))));
+ };
+ (unify_subst_nboyer = "\u1E9C*");
+ one_way_unify1_nboyer = function(term1, term2) {
+ var lst1;
+ var lst2;
+ var temp_temp;
+ if (!(term2 instanceof sc_Pair))
+ {
+ (temp_temp = (sc_assq(term2, unify_subst_nboyer)));
+ if ((temp_temp!== false))
+ return (is_term_equal_nboyer(term1, (temp_temp.cdr)));
+ else
+ if ((sc_isNumber(term2)))
+ return (sc_isEqual(term1, term2));
+ else
+ {
+ (unify_subst_nboyer = (new sc_Pair((new sc_Pair(term2, term1)), unify_subst_nboyer)));
+ return true;
+ }
+ }
+ else
+ if (!(term1 instanceof sc_Pair))
+ return false;
+ else
+ if (((term1.car)===(term2.car)))
+ {
+ (lst1 = (term1.cdr));
+ (lst2 = (term2.cdr));
+ while (true) {
+ if ((lst1 === null))
+ return (lst2 === null);
+ else
+ if ((lst2 === null))
+ return false;
+ else
+ if (((one_way_unify1_nboyer((lst1.car), (lst2.car)))!== false))
+ {
+ (lst1 = (lst1.cdr));
+ (lst2 = (lst2.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ };
+ (false_term_nboyer = "\u1E9C*");
+ (true_term_nboyer = "\u1E9C*");
+ trans_of_implies1_nboyer = function(n) {
+ var sc_n_15;
+ return ((sc_isEqual(n, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (n-(1)), n)), ((sc_n_15 = (n-(1))), ((sc_isEqual(sc_n_15, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (sc_n_15-(1)), sc_n_15)), (trans_of_implies1_nboyer((sc_n_15-(1)))))))))));
+ };
+ is_term_equal_nboyer = function(x, y) {
+ var lst1;
+ var lst2;
+ var r2;
+ var r1;
+ if ((x instanceof sc_Pair))
+ if ((y instanceof sc_Pair))
+ if ((((r1 = (x.car)), (r2 = (y.car)), (r1===r2))!== false))
+ {
+ (lst1 = (x.cdr));
+ (lst2 = (y.cdr));
+ while (true) {
+ if ((lst1 === null))
+ return (lst2 === null);
+ else
+ if ((lst2 === null))
+ return false;
+ else
+ if (((is_term_equal_nboyer((lst1.car), (lst2.car)))!== false))
+ {
+ (lst1 = (lst1.cdr));
+ (lst2 = (lst2.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ else
+ return false;
+ else
+ return (sc_isEqual(x, y));
+ };
+ is_term_member_nboyer = function(x, lst) {
+ var x;
+ var lst;
+ while (true) {
+ if ((lst === null))
+ return false;
+ else
+ if (((is_term_equal_nboyer(x, (lst.car)))!== false))
+ return true;
+ else
+ (lst = (lst.cdr));
+ }
+ };
+ BgL_setupzd2boyerzd2 = function() {
+ var symbol_record;
+ var value;
+ var BgL_sc_symbolzd2record_16zd2;
+ var sym;
+ var sc_sym_17;
+ var term;
+ var lst;
+ var sc_term_18;
+ var sc_term_19;
+ {
+ (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null);
+ (if_constructor_nboyer = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer("\u1E9Cif")));
+ (false_term_nboyer = ((sc_term_19 = (new sc_Pair("\u1E9Cf",null))), (!(sc_term_19 instanceof sc_Pair)?sc_term_19:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_19.car))), (translate_args_nboyer((sc_term_19.cdr))))))));
+ (true_term_nboyer = ((sc_term_18 = (new sc_Pair("\u1E9Ct",null))), (!(sc_term_18 instanceof sc_Pair)?sc_term_18:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_18.car))), (translate_args_nboyer((sc_term_18.cdr))))))));
+ (lst = sc_const_3_nboyer);
+ while (!(lst === null)) {
+ {
+ (term = (lst.car));
+ if (((term instanceof sc_Pair)&&(((term.car)==="\u1E9Cequal")&&((term.cdr.car) instanceof sc_Pair))))
+ {
+ (sc_sym_17 = ((term.cdr.car).car));
+ (value = (new sc_Pair((!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr)))))), ((sym = ((term.cdr.car).car)), (BgL_sc_symbolzd2record_16zd2 = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sym))), (BgL_sc_symbolzd2record_16zd2[(1)])))));
+ (symbol_record = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sc_sym_17)));
+ (symbol_record[(1)] = value);
+ }
+ else
+ (sc_error("ADD-LEMMA did not like term: ", term));
+ (lst = (lst.cdr));
+ }
+ }
+ return true;
+ }
+ };
+ BgL_testzd2boyerzd2 = function(n) {
+ var optrOpnd;
+ var term;
+ var sc_n_20;
+ var answer;
+ var sc_term_21;
+ var sc_term_22;
+ {
+ (rewrite_count_nboyer = (0));
+ (term = sc_const_4_nboyer);
+ (sc_n_20 = n);
+ while (!(sc_n_20=== 0)) {
+ {
+ (term = (sc_list("\u1E9Cor", term, (new sc_Pair("\u1E9Cf",null)))));
+ (--sc_n_20);
+ }
+ }
+ (sc_term_22 = term);
+ if (!(sc_term_22 instanceof sc_Pair))
+ (optrOpnd = sc_term_22);
+ else
+ (optrOpnd = (new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_22.car))), (translate_args_nboyer((sc_term_22.cdr))))));
+ (sc_term_21 = (apply_subst_nboyer(((const_nboyer === null)?null:(new sc_Pair((new sc_Pair((const_nboyer.car.car), (translate_term_nboyer((const_nboyer.car.cdr))))), (translate_alist_nboyer((const_nboyer.cdr)))))), optrOpnd)));
+ (answer = (tautologyp_nboyer((rewrite_nboyer(sc_term_21)), null, null)));
+ (sc_write(rewrite_count_nboyer));
+ (sc_display(" rewrites"));
+ (sc_newline());
+ if ((answer!== false))
+ return rewrite_count_nboyer;
+ else
+ return false;
+ }
+ };
+}
+/* Exported Variables */
+var BgL_parsezd2ze3nbzd2treesze3;
+var BgL_earleyzd2benchmarkzd2;
+var BgL_parsezd2ze3parsedzf3zc2;
+var test2;
+var BgL_parsezd2ze3treesz31;
+var BgL_makezd2parserzd2;
+/* End Exports */
+
+var const_earley;
+{
+ (const_earley = (new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair((new sc_Pair("\u1E9Ca",null)),(new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair("\u1E9Cs",null)))),null)))))),null)));
+ BgL_makezd2parserzd2 = function(grammar, lexer) {
+ var i;
+ var parser_descr;
+ var def_loop;
+ var nb_nts;
+ var names;
+ var steps;
+ var predictors;
+ var enders;
+ var starters;
+ var nts;
+ var sc_names_1;
+ var sc_steps_2;
+ var sc_predictors_3;
+ var sc_enders_4;
+ var sc_starters_5;
+ var nb_confs;
+ var BgL_sc_defzd2loop_6zd2;
+ var BgL_sc_nbzd2nts_7zd2;
+ var sc_nts_8;
+ var BgL_sc_defzd2loop_9zd2;
+ var ind;
+ {
+ ind = function(nt, sc_nts_10) {
+ var i;
+ {
+ (i = ((sc_nts_10.length)-(1)));
+ while (true) {
+ if ((i>=(0)))
+ if ((sc_isEqual((sc_nts_10[i]), nt)))
+ return i;
+ else
+ (--i);
+ else
+ return false;
+ }
+ }
+ };
+ (sc_nts_8 = ((BgL_sc_defzd2loop_9zd2 = function(defs, sc_nts_11) {
+ var rule_loop;
+ var head;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, sc_nts_12) {
+ var nt;
+ var l;
+ var sc_nts_13;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (l = rule);
+ (sc_nts_13 = sc_nts_12);
+ while ((l instanceof sc_Pair)) {
+ {
+ (nt = (l.car));
+ (l = (l.cdr));
+ (sc_nts_13 = (((sc_member(nt, sc_nts_13))!== false)?sc_nts_13:(new sc_Pair(nt, sc_nts_13))));
+ }
+ }
+ return (rule_loop((rules.cdr), sc_nts_13));
+ }
+ else
+ return (BgL_sc_defzd2loop_9zd2((defs.cdr), sc_nts_12));
+ }), (rule_loop((def.cdr), (((sc_member(head, sc_nts_11))!== false)?sc_nts_11:(new sc_Pair(head, sc_nts_11)))))):(sc_list2vector((sc_reverse(sc_nts_11)))));
+ }), (BgL_sc_defzd2loop_9zd2(grammar, null))));
+ (BgL_sc_nbzd2nts_7zd2 = (sc_nts_8.length));
+ (nb_confs = (((BgL_sc_defzd2loop_6zd2 = function(defs, BgL_sc_nbzd2confs_14zd2) {
+ var rule_loop;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (rule_loop = function(rules, BgL_sc_nbzd2confs_15zd2) {
+ var l;
+ var BgL_sc_nbzd2confs_16zd2;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (l = rule);
+ (BgL_sc_nbzd2confs_16zd2 = BgL_sc_nbzd2confs_15zd2);
+ while ((l instanceof sc_Pair)) {
+ {
+ (l = (l.cdr));
+ (++BgL_sc_nbzd2confs_16zd2);
+ }
+ }
+ return (rule_loop((rules.cdr), (BgL_sc_nbzd2confs_16zd2+(1))));
+ }
+ else
+ return (BgL_sc_defzd2loop_6zd2((defs.cdr), BgL_sc_nbzd2confs_15zd2));
+ }), (rule_loop((def.cdr), BgL_sc_nbzd2confs_14zd2))):BgL_sc_nbzd2confs_14zd2);
+ }), (BgL_sc_defzd2loop_6zd2(grammar, (0))))+BgL_sc_nbzd2nts_7zd2));
+ (sc_starters_5 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_enders_4 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_predictors_3 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_steps_2 = (sc_makeVector(nb_confs, false)));
+ (sc_names_1 = (sc_makeVector(nb_confs, false)));
+ (nts = sc_nts_8);
+ (starters = sc_starters_5);
+ (enders = sc_enders_4);
+ (predictors = sc_predictors_3);
+ (steps = sc_steps_2);
+ (names = sc_names_1);
+ (nb_nts = (sc_nts_8.length));
+ (i = (nb_nts-(1)));
+ while ((i>=(0))) {
+ {
+ (sc_steps_2[i] = (i-nb_nts));
+ (sc_names_1[i] = (sc_list((sc_nts_8[i]), (0))));
+ (sc_enders_4[i] = (sc_list(i)));
+ (--i);
+ }
+ }
+ def_loop = function(defs, conf) {
+ var rule_loop;
+ var head;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, conf, rule_num) {
+ var i;
+ var sc_i_17;
+ var nt;
+ var l;
+ var sc_conf_18;
+ var sc_i_19;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (names[conf] = (sc_list(head, rule_num)));
+ (sc_i_19 = (ind(head, nts)));
+ (starters[sc_i_19] = (new sc_Pair(conf, (starters[sc_i_19]))));
+ (l = rule);
+ (sc_conf_18 = conf);
+ while ((l instanceof sc_Pair)) {
+ {
+ (nt = (l.car));
+ (steps[sc_conf_18] = (ind(nt, nts)));
+ (sc_i_17 = (ind(nt, nts)));
+ (predictors[sc_i_17] = (new sc_Pair(sc_conf_18, (predictors[sc_i_17]))));
+ (l = (l.cdr));
+ (++sc_conf_18);
+ }
+ }
+ (steps[sc_conf_18] = ((ind(head, nts))-nb_nts));
+ (i = (ind(head, nts)));
+ (enders[i] = (new sc_Pair(sc_conf_18, (enders[i]))));
+ return (rule_loop((rules.cdr), (sc_conf_18+(1)), (rule_num+(1))));
+ }
+ else
+ return (def_loop((defs.cdr), conf));
+ }), (rule_loop((def.cdr), conf, (1)))):undefined);
+ };
+ (def_loop(grammar, (sc_nts_8.length)));
+ (parser_descr = [lexer, sc_nts_8, sc_starters_5, sc_enders_4, sc_predictors_3, sc_steps_2, sc_names_1]);
+ return function(input) {
+ var optrOpnd;
+ var sc_optrOpnd_20;
+ var sc_optrOpnd_21;
+ var sc_optrOpnd_22;
+ var loop1;
+ var BgL_sc_stateza2_23za2;
+ var toks;
+ var BgL_sc_nbzd2nts_24zd2;
+ var sc_steps_25;
+ var sc_enders_26;
+ var state_num;
+ var BgL_sc_statesza2_27za2;
+ var states;
+ var i;
+ var conf;
+ var l;
+ var tok_nts;
+ var sc_i_28;
+ var sc_i_29;
+ var l1;
+ var l2;
+ var tok;
+ var tail1129;
+ var L1125;
+ var goal_enders;
+ var BgL_sc_statesza2_30za2;
+ var BgL_sc_nbzd2nts_31zd2;
+ var BgL_sc_nbzd2confs_32zd2;
+ var nb_toks;
+ var goal_starters;
+ var sc_states_33;
+ var BgL_sc_nbzd2confs_34zd2;
+ var BgL_sc_nbzd2toks_35zd2;
+ var sc_toks_36;
+ var falseHead1128;
+ var sc_names_37;
+ var sc_steps_38;
+ var sc_predictors_39;
+ var sc_enders_40;
+ var sc_starters_41;
+ var sc_nts_42;
+ var lexer;
+ var sc_ind_43;
+ var make_states;
+ var BgL_sc_confzd2setzd2getza2_44za2;
+ var conf_set_merge_new_bang;
+ var conf_set_adjoin;
+ var BgL_sc_confzd2setzd2adjoinza2_45za2;
+ var BgL_sc_confzd2setzd2adjoinza2za2_46z00;
+ var conf_set_union;
+ var forw;
+ var is_parsed;
+ var deriv_trees;
+ var BgL_sc_derivzd2treesza2_47z70;
+ var nb_deriv_trees;
+ var BgL_sc_nbzd2derivzd2treesza2_48za2;
+ {
+ sc_ind_43 = function(nt, sc_nts_49) {
+ var i;
+ {
+ (i = ((sc_nts_49.length)-(1)));
+ while (true) {
+ if ((i>=(0)))
+ if ((sc_isEqual((sc_nts_49[i]), nt)))
+ return i;
+ else
+ (--i);
+ else
+ return false;
+ }
+ }
+ };
+ make_states = function(BgL_sc_nbzd2toks_50zd2, BgL_sc_nbzd2confs_51zd2) {
+ var v;
+ var i;
+ var sc_states_52;
+ {
+ (sc_states_52 = (sc_makeVector((BgL_sc_nbzd2toks_50zd2+(1)), false)));
+ (i = BgL_sc_nbzd2toks_50zd2);
+ while ((i>=(0))) {
+ {
+ (v = (sc_makeVector((BgL_sc_nbzd2confs_51zd2+(1)), false)));
+ (v[(0)] = (-1));
+ (sc_states_52[i] = v);
+ (--i);
+ }
+ }
+ return sc_states_52;
+ }
+ };
+ BgL_sc_confzd2setzd2getza2_44za2 = function(state, BgL_sc_statezd2num_53zd2, sc_conf_54) {
+ var conf_set;
+ var BgL_sc_confzd2set_55zd2;
+ return ((BgL_sc_confzd2set_55zd2 = (state[(sc_conf_54+(1))])), ((BgL_sc_confzd2set_55zd2!== false)?BgL_sc_confzd2set_55zd2:((conf_set = (sc_makeVector((BgL_sc_statezd2num_53zd2+(6)), false))), (conf_set[(1)] = (-3)), (conf_set[(2)] = (-1)), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)), (state[(sc_conf_54+(1))] = conf_set), conf_set)));
+ };
+ conf_set_merge_new_bang = function(conf_set) {
+ return ((conf_set[((conf_set[(1)])+(5))] = (conf_set[(4)])), (conf_set[(1)] = (conf_set[(3)])), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)));
+ };
+ conf_set_adjoin = function(state, conf_set, sc_conf_56, i) {
+ var tail;
+ return ((tail = (conf_set[(3)])), (conf_set[(i+(5))] = (-1)), (conf_set[(tail+(5))] = i), (conf_set[(3)] = i), ((tail<(0))?((conf_set[(0)] = (state[(0)])), (state[(0)] = sc_conf_56)):undefined));
+ };
+ BgL_sc_confzd2setzd2adjoinza2_45za2 = function(sc_states_57, BgL_sc_statezd2num_58zd2, l, i) {
+ var conf_set;
+ var sc_conf_59;
+ var l1;
+ var state;
+ {
+ (state = (sc_states_57[BgL_sc_statezd2num_58zd2]));
+ (l1 = l);
+ while ((l1 instanceof sc_Pair)) {
+ {
+ (sc_conf_59 = (l1.car));
+ (conf_set = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_58zd2, sc_conf_59)));
+ if (((conf_set[(i+(5))])=== false))
+ {
+ (conf_set_adjoin(state, conf_set, sc_conf_59, i));
+ (l1 = (l1.cdr));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ }
+ return undefined;
+ }
+ };
+ BgL_sc_confzd2setzd2adjoinza2za2_46z00 = function(sc_states_60, BgL_sc_statesza2_61za2, BgL_sc_statezd2num_62zd2, sc_conf_63, i) {
+ var BgL_sc_confzd2setza2_64z70;
+ var BgL_sc_stateza2_65za2;
+ var conf_set;
+ var state;
+ return ((state = (sc_states_60[BgL_sc_statezd2num_62zd2])), ((((conf_set = (state[(sc_conf_63+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)?((BgL_sc_stateza2_65za2 = (BgL_sc_statesza2_61za2[BgL_sc_statezd2num_62zd2])), (BgL_sc_confzd2setza2_64z70 = (BgL_sc_confzd2setzd2getza2_44za2(BgL_sc_stateza2_65za2, BgL_sc_statezd2num_62zd2, sc_conf_63))), (((BgL_sc_confzd2setza2_64z70[(i+(5))])=== false)?(conf_set_adjoin(BgL_sc_stateza2_65za2, BgL_sc_confzd2setza2_64z70, sc_conf_63, i)):undefined), true):false));
+ };
+ conf_set_union = function(state, conf_set, sc_conf_66, other_set) {
+ var i;
+ {
+ (i = (other_set[(2)]));
+ while ((i>=(0))) {
+ if (((conf_set[(i+(5))])=== false))
+ {
+ (conf_set_adjoin(state, conf_set, sc_conf_66, i));
+ (i = (other_set[(i+(5))]));
+ }
+ else
+ (i = (other_set[(i+(5))]));
+ }
+ return undefined;
+ }
+ };
+ forw = function(sc_states_67, BgL_sc_statezd2num_68zd2, sc_starters_69, sc_enders_70, sc_predictors_71, sc_steps_72, sc_nts_73) {
+ var next_set;
+ var next;
+ var conf_set;
+ var ender;
+ var l;
+ var starter_set;
+ var starter;
+ var sc_l_74;
+ var sc_loop1_75;
+ var head;
+ var BgL_sc_confzd2set_76zd2;
+ var BgL_sc_statezd2num_77zd2;
+ var state;
+ var sc_states_78;
+ var preds;
+ var BgL_sc_confzd2set_79zd2;
+ var step;
+ var sc_conf_80;
+ var BgL_sc_nbzd2nts_81zd2;
+ var sc_state_82;
+ {
+ (sc_state_82 = (sc_states_67[BgL_sc_statezd2num_68zd2]));
+ (BgL_sc_nbzd2nts_81zd2 = (sc_nts_73.length));
+ while (true) {
+ {
+ (sc_conf_80 = (sc_state_82[(0)]));
+ if ((sc_conf_80>=(0)))
+ {
+ (step = (sc_steps_72[sc_conf_80]));
+ (BgL_sc_confzd2set_79zd2 = (sc_state_82[(sc_conf_80+(1))]));
+ (head = (BgL_sc_confzd2set_79zd2[(4)]));
+ (sc_state_82[(0)] = (BgL_sc_confzd2set_79zd2[(0)]));
+ (conf_set_merge_new_bang(BgL_sc_confzd2set_79zd2));
+ if ((step>=(0)))
+ {
+ (sc_l_74 = (sc_starters_69[step]));
+ while ((sc_l_74 instanceof sc_Pair)) {
+ {
+ (starter = (sc_l_74.car));
+ (starter_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, starter)));
+ if (((starter_set[(BgL_sc_statezd2num_68zd2+(5))])=== false))
+ {
+ (conf_set_adjoin(sc_state_82, starter_set, starter, BgL_sc_statezd2num_68zd2));
+ (sc_l_74 = (sc_l_74.cdr));
+ }
+ else
+ (sc_l_74 = (sc_l_74.cdr));
+ }
+ }
+ (l = (sc_enders_70[step]));
+ while ((l instanceof sc_Pair)) {
+ {
+ (ender = (l.car));
+ if ((((conf_set = (sc_state_82[(ender+(1))])), ((conf_set!== false)?(conf_set[(BgL_sc_statezd2num_68zd2+(5))]):false))!== false))
+ {
+ (next = (sc_conf_80+(1)));
+ (next_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, next)));
+ (conf_set_union(sc_state_82, next_set, next, BgL_sc_confzd2set_79zd2));
+ (l = (l.cdr));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ }
+ else
+ {
+ (preds = (sc_predictors_71[(step+BgL_sc_nbzd2nts_81zd2)]));
+ (sc_states_78 = sc_states_67);
+ (state = sc_state_82);
+ (BgL_sc_statezd2num_77zd2 = BgL_sc_statezd2num_68zd2);
+ (BgL_sc_confzd2set_76zd2 = BgL_sc_confzd2set_79zd2);
+ sc_loop1_75 = function(l) {
+ var sc_state_83;
+ var BgL_sc_nextzd2set_84zd2;
+ var sc_next_85;
+ var pred_set;
+ var i;
+ var pred;
+ if ((l instanceof sc_Pair))
+ {
+ (pred = (l.car));
+ (i = head);
+ while ((i>=(0))) {
+ {
+ (pred_set = ((sc_state_83 = (sc_states_78[i])), (sc_state_83[(pred+(1))])));
+ if ((pred_set!== false))
+ {
+ (sc_next_85 = (pred+(1)));
+ (BgL_sc_nextzd2set_84zd2 = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_77zd2, sc_next_85)));
+ (conf_set_union(state, BgL_sc_nextzd2set_84zd2, sc_next_85, pred_set));
+ }
+ (i = (BgL_sc_confzd2set_76zd2[(i+(5))]));
+ }
+ }
+ return (sc_loop1_75((l.cdr)));
+ }
+ else
+ return undefined;
+ };
+ (sc_loop1_75(preds));
+ }
+ }
+ else
+ return undefined;
+ }
+ }
+ }
+ };
+ is_parsed = function(nt, i, j, sc_nts_86, sc_enders_87, sc_states_88) {
+ var conf_set;
+ var state;
+ var sc_conf_89;
+ var l;
+ var BgL_sc_ntza2_90za2;
+ {
+ (BgL_sc_ntza2_90za2 = (sc_ind_43(nt, sc_nts_86)));
+ if ((BgL_sc_ntza2_90za2!== false))
+ {
+ (sc_nts_86.length);
+ (l = (sc_enders_87[BgL_sc_ntza2_90za2]));
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (sc_conf_89 = (l.car));
+ if ((((state = (sc_states_88[j])), (conf_set = (state[(sc_conf_89+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ return true;
+ else
+ (l = (l.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ }
+ };
+ deriv_trees = function(sc_conf_91, i, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2) {
+ var sc_loop1_98;
+ var prev;
+ var name;
+ return ((name = (sc_names_94[sc_conf_91])), ((name!== false)?((sc_conf_91<BgL_sc_nbzd2nts_97zd2)?(sc_list((sc_list(name, ((sc_toks_95[i]).car))))):(sc_list((sc_list(name))))):((prev = (sc_conf_91-(1))), (sc_loop1_98 = function(l1, l2) {
+ var loop2;
+ var ender_set;
+ var state;
+ var ender;
+ var l1;
+ var l2;
+ while (true) {
+ if ((l1 instanceof sc_Pair))
+ {
+ (ender = (l1.car));
+ (ender_set = ((state = (sc_states_96[j])), (state[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ loop2 = function(k, l2) {
+ var loop3;
+ var ender_trees;
+ var prev_trees;
+ var conf_set;
+ var sc_state_99;
+ var k;
+ var l2;
+ while (true) {
+ if ((k>=(0)))
+ if (((k>=i)&&(((sc_state_99 = (sc_states_96[k])), (conf_set = (sc_state_99[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)))
+ {
+ (prev_trees = (deriv_trees(prev, i, k, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2)));
+ (ender_trees = (deriv_trees(ender, k, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2)));
+ loop3 = function(l3, l2) {
+ var l4;
+ var sc_l2_100;
+ var ender_tree;
+ if ((l3 instanceof sc_Pair))
+ {
+ (ender_tree = (sc_list((l3.car))));
+ (l4 = prev_trees);
+ (sc_l2_100 = l2);
+ while ((l4 instanceof sc_Pair)) {
+ {
+ (sc_l2_100 = (new sc_Pair((sc_append((l4.car), ender_tree)), sc_l2_100)));
+ (l4 = (l4.cdr));
+ }
+ }
+ return (loop3((l3.cdr), sc_l2_100));
+ }
+ else
+ return (loop2((ender_set[(k+(5))]), l2));
+ };
+ return (loop3(ender_trees, l2));
+ }
+ else
+ (k = (ender_set[(k+(5))]));
+ else
+ return (sc_loop1_98((l1.cdr), l2));
+ }
+ };
+ return (loop2((ender_set[(2)]), l2));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ else
+ return l2;
+ }
+ }), (sc_loop1_98((sc_enders_92[(sc_steps_93[prev])]), null)))));
+ };
+ BgL_sc_derivzd2treesza2_47z70 = function(nt, i, j, sc_nts_101, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106) {
+ var conf_set;
+ var state;
+ var sc_conf_107;
+ var l;
+ var trees;
+ var BgL_sc_nbzd2nts_108zd2;
+ var BgL_sc_ntza2_109za2;
+ {
+ (BgL_sc_ntza2_109za2 = (sc_ind_43(nt, sc_nts_101)));
+ if ((BgL_sc_ntza2_109za2!== false))
+ {
+ (BgL_sc_nbzd2nts_108zd2 = (sc_nts_101.length));
+ (l = (sc_enders_102[BgL_sc_ntza2_109za2]));
+ (trees = null);
+ while ((l instanceof sc_Pair)) {
+ {
+ (sc_conf_107 = (l.car));
+ if ((((state = (sc_states_106[j])), (conf_set = (state[(sc_conf_107+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ {
+ (l = (l.cdr));
+ (trees = (sc_append((deriv_trees(sc_conf_107, i, j, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106, BgL_sc_nbzd2nts_108zd2)), trees)));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ return trees;
+ }
+ else
+ return false;
+ }
+ };
+ nb_deriv_trees = function(sc_conf_110, i, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2) {
+ var sc_loop1_116;
+ var tmp1124;
+ var prev;
+ return ((prev = (sc_conf_110-(1))), ((((tmp1124 = (sc_conf_110<BgL_sc_nbzd2nts_115zd2)), ((tmp1124!== false)?tmp1124:((sc_steps_112[prev])<(0))))!== false)?(1):((sc_loop1_116 = function(l, sc_n_118) {
+ var nb_ender_trees;
+ var nb_prev_trees;
+ var conf_set;
+ var state;
+ var k;
+ var n;
+ var ender_set;
+ var sc_state_117;
+ var ender;
+ var l;
+ var sc_n_118;
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (ender = (l.car));
+ (ender_set = ((sc_state_117 = (sc_states_114[j])), (sc_state_117[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ (k = (ender_set[(2)]));
+ (n = sc_n_118);
+ while ((k>=(0))) {
+ if (((k>=i)&&(((state = (sc_states_114[k])), (conf_set = (state[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)))
+ {
+ (nb_prev_trees = (nb_deriv_trees(prev, i, k, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2)));
+ (nb_ender_trees = (nb_deriv_trees(ender, k, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2)));
+ (k = (ender_set[(k+(5))]));
+ (n +=(nb_prev_trees*nb_ender_trees));
+ }
+ else
+ (k = (ender_set[(k+(5))]));
+ }
+ return (sc_loop1_116((l.cdr), n));
+ }
+ else
+ (l = (l.cdr));
+ }
+ else
+ return sc_n_118;
+ }
+ }), (sc_loop1_116((sc_enders_111[(sc_steps_112[prev])]), (0))))));
+ };
+ BgL_sc_nbzd2derivzd2treesza2_48za2 = function(nt, i, j, sc_nts_119, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123) {
+ var conf_set;
+ var state;
+ var sc_conf_124;
+ var l;
+ var nb_trees;
+ var BgL_sc_nbzd2nts_125zd2;
+ var BgL_sc_ntza2_126za2;
+ {
+ (BgL_sc_ntza2_126za2 = (sc_ind_43(nt, sc_nts_119)));
+ if ((BgL_sc_ntza2_126za2!== false))
+ {
+ (BgL_sc_nbzd2nts_125zd2 = (sc_nts_119.length));
+ (l = (sc_enders_120[BgL_sc_ntza2_126za2]));
+ (nb_trees = (0));
+ while ((l instanceof sc_Pair)) {
+ {
+ (sc_conf_124 = (l.car));
+ if ((((state = (sc_states_123[j])), (conf_set = (state[(sc_conf_124+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ {
+ (l = (l.cdr));
+ (nb_trees = ((nb_deriv_trees(sc_conf_124, i, j, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123, BgL_sc_nbzd2nts_125zd2))+nb_trees));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ return nb_trees;
+ }
+ else
+ return false;
+ }
+ };
+ (lexer = (parser_descr[(0)]));
+ (sc_nts_42 = (parser_descr[(1)]));
+ (sc_starters_41 = (parser_descr[(2)]));
+ (sc_enders_40 = (parser_descr[(3)]));
+ (sc_predictors_39 = (parser_descr[(4)]));
+ (sc_steps_38 = (parser_descr[(5)]));
+ (sc_names_37 = (parser_descr[(6)]));
+ (falseHead1128 = (new sc_Pair(null, null)));
+ (L1125 = (lexer(input)));
+ (tail1129 = falseHead1128);
+ while (!(L1125 === null)) {
+ {
+ (tok = (L1125.car));
+ (l1 = (tok.cdr));
+ (l2 = null);
+ while ((l1 instanceof sc_Pair)) {
+ {
+ (sc_i_29 = (sc_ind_43((l1.car), sc_nts_42)));
+ if ((sc_i_29!== false))
+ {
+ (l1 = (l1.cdr));
+ (l2 = (new sc_Pair(sc_i_29, l2)));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ }
+ (sc_optrOpnd_22 = (new sc_Pair((tok.car), (sc_reverse(l2)))));
+ (sc_optrOpnd_21 = (new sc_Pair(sc_optrOpnd_22, null)));
+ (tail1129.cdr = sc_optrOpnd_21);
+ (tail1129 = (tail1129.cdr));
+ (L1125 = (L1125.cdr));
+ }
+ }
+ (sc_optrOpnd_20 = (falseHead1128.cdr));
+ (sc_toks_36 = (sc_list2vector(sc_optrOpnd_20)));
+ (BgL_sc_nbzd2toks_35zd2 = (sc_toks_36.length));
+ (BgL_sc_nbzd2confs_34zd2 = (sc_steps_38.length));
+ (sc_states_33 = (make_states(BgL_sc_nbzd2toks_35zd2, BgL_sc_nbzd2confs_34zd2)));
+ (goal_starters = (sc_starters_41[(0)]));
+ (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (0), goal_starters, (0)));
+ (forw(sc_states_33, (0), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
+ (sc_i_28 = (0));
+ while ((sc_i_28<BgL_sc_nbzd2toks_35zd2)) {
+ {
+ (tok_nts = ((sc_toks_36[sc_i_28]).cdr));
+ (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (sc_i_28+(1)), tok_nts, sc_i_28));
+ (forw(sc_states_33, (sc_i_28+(1)), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
+ (++sc_i_28);
+ }
+ }
+ (nb_toks = (sc_toks_36.length));
+ (BgL_sc_nbzd2confs_32zd2 = (sc_steps_38.length));
+ (BgL_sc_nbzd2nts_31zd2 = (sc_nts_42.length));
+ (BgL_sc_statesza2_30za2 = (make_states(nb_toks, BgL_sc_nbzd2confs_32zd2)));
+ (goal_enders = (sc_enders_40[(0)]));
+ (l = goal_enders);
+ while ((l instanceof sc_Pair)) {
+ {
+ (conf = (l.car));
+ (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_33, BgL_sc_statesza2_30za2, nb_toks, conf, (0)));
+ (l = (l.cdr));
+ }
+ }
+ (i = nb_toks);
+ while ((i>=(0))) {
+ {
+ (states = sc_states_33);
+ (BgL_sc_statesza2_27za2 = BgL_sc_statesza2_30za2);
+ (state_num = i);
+ (sc_enders_26 = sc_enders_40);
+ (sc_steps_25 = sc_steps_38);
+ (BgL_sc_nbzd2nts_24zd2 = BgL_sc_nbzd2nts_31zd2);
+ (toks = sc_toks_36);
+ (BgL_sc_stateza2_23za2 = (BgL_sc_statesza2_30za2[i]));
+ loop1 = function() {
+ var sc_loop1_127;
+ var prev;
+ var BgL_sc_statesza2_128za2;
+ var sc_states_129;
+ var j;
+ var i;
+ var sc_i_130;
+ var head;
+ var conf_set;
+ var sc_conf_131;
+ {
+ (sc_conf_131 = (BgL_sc_stateza2_23za2[(0)]));
+ if ((sc_conf_131>=(0)))
+ {
+ (conf_set = (BgL_sc_stateza2_23za2[(sc_conf_131+(1))]));
+ (head = (conf_set[(4)]));
+ (BgL_sc_stateza2_23za2[(0)] = (conf_set[(0)]));
+ (conf_set_merge_new_bang(conf_set));
+ (sc_i_130 = head);
+ while ((sc_i_130>=(0))) {
+ {
+ (i = sc_i_130);
+ (j = state_num);
+ (sc_states_129 = states);
+ (BgL_sc_statesza2_128za2 = BgL_sc_statesza2_27za2);
+ (prev = (sc_conf_131-(1)));
+ if (((sc_conf_131>=BgL_sc_nbzd2nts_24zd2)&&((sc_steps_25[prev])>=(0))))
+ {
+ sc_loop1_127 = function(l) {
+ var k;
+ var ender_set;
+ var state;
+ var ender;
+ var l;
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (ender = (l.car));
+ (ender_set = ((state = (sc_states_129[j])), (state[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ (k = (ender_set[(2)]));
+ while ((k>=(0))) {
+ {
+ if ((k>=i))
+ if (((BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, k, prev, i))!== false))
+ (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, j, ender, k));
+ (k = (ender_set[(k+(5))]));
+ }
+ }
+ return (sc_loop1_127((l.cdr)));
+ }
+ else
+ (l = (l.cdr));
+ }
+ else
+ return undefined;
+ }
+ };
+ (sc_loop1_127((sc_enders_26[(sc_steps_25[prev])])));
+ }
+ (sc_i_130 = (conf_set[(sc_i_130+(5))]));
+ }
+ }
+ return (loop1());
+ }
+ else
+ return undefined;
+ }
+ };
+ (loop1());
+ (--i);
+ }
+ }
+ (optrOpnd = BgL_sc_statesza2_30za2);
+ return [sc_nts_42, sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_names_37, sc_toks_36, optrOpnd, is_parsed, BgL_sc_derivzd2treesza2_47z70, BgL_sc_nbzd2derivzd2treesza2_48za2];
+ }
+ };
+ }
+ };
+ BgL_parsezd2ze3parsedzf3zc2 = function(parse, nt, i, j) {
+ var is_parsed;
+ var states;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (states = (parse[(7)])), (is_parsed = (parse[(8)])), (is_parsed(nt, i, j, nts, enders, states)));
+ };
+ BgL_parsezd2ze3treesz31 = function(parse, nt, i, j) {
+ var BgL_sc_derivzd2treesza2_132z70;
+ var states;
+ var toks;
+ var names;
+ var steps;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (names = (parse[(5)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_derivzd2treesza2_132z70 = (parse[(9)])), (BgL_sc_derivzd2treesza2_132z70(nt, i, j, nts, enders, steps, names, toks, states)));
+ };
+ BgL_parsezd2ze3nbzd2treesze3 = function(parse, nt, i, j) {
+ var BgL_sc_nbzd2derivzd2treesza2_133za2;
+ var states;
+ var toks;
+ var steps;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_nbzd2derivzd2treesza2_133za2 = (parse[(10)])), (BgL_sc_nbzd2derivzd2treesza2_133za2(nt, i, j, nts, enders, steps, toks, states)));
+ };
+ test2 = function(k) {
+ var x;
+ var p;
+ return ((p = (BgL_makezd2parserzd2(const_earley, function(l) {
+ var sc_x_134;
+ var tail1134;
+ var L1130;
+ var falseHead1133;
+ {
+ (falseHead1133 = (new sc_Pair(null, null)));
+ (tail1134 = falseHead1133);
+ (L1130 = l);
+ while (!(L1130 === null)) {
+ {
+ (tail1134.cdr = (new sc_Pair(((sc_x_134 = (L1130.car)), (sc_list(sc_x_134, sc_x_134))), null)));
+ (tail1134 = (tail1134.cdr));
+ (L1130 = (L1130.cdr));
+ }
+ }
+ return (falseHead1133.cdr);
+ }
+ }))), (x = (p((sc_vector2list((sc_makeVector(k, "\u1E9Ca"))))))), (sc_length((BgL_parsezd2ze3treesz31(x, "\u1E9Cs", (0), k)))));
+ };
+ BgL_earleyzd2benchmarkzd2 = function() {
+ var args = null;
+ for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) {
+ args = sc_cons(arguments[sc_tmp], args);
+ }
+ var k;
+ return ((k = ((args === null)?(7):(args.car))), (BgL_runzd2benchmarkzd2("earley", (1), function() {
+ return (test2(k));
+ }, function(result) {
+ return ((sc_display(result)), (sc_newline()), result == 132);
+ })));
+ };
+}
+
+
+/************* END OF GENERATED CODE *************/
+// Invoke this function to run a benchmark.
+// The first argument is a string identifying the benchmark.
+// The second argument is the number of times to run the benchmark.
+// The third argument is a function that runs the benchmark.
+// The fourth argument is a unary function that warns if the result
+// returned by the benchmark is incorrect.
+//
+// Example:
+// RunBenchmark("new Array()",
+// 1,
+// function () { new Array(1000000); }
+// function (v) {
+// return (v instanceof Array) && (v.length == 1000000);
+// });
+
+SC_DEFAULT_OUT = new sc_GenericOutputPort(function(s) {});
+SC_ERROR_OUT = SC_DEFAULT_OUT;
+
+function RunBenchmark(name, count, run, warn) {
+ for (var n = 0; n < count; ++n) {
+ result = run();
+ if (!warn(result)) {
+ throw new Error("Earley or Boyer did incorrect number of rewrites");
+ }
+ }
+}
+
+var BgL_runzd2benchmarkzd2 = RunBenchmark;
+
+window.onload = function(){ startTest("v8-earley-boyer", 'd4c16950');
+
+test("Earley", BgL_earleyzd2benchmarkzd2);
+test("Boyer", BgL_nboyerzd2benchmarkzd2);
+
+endTest(); };
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-raytrace.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-raytrace.html
new file mode 100644
index 000000000..55c18257e
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-raytrace.html
@@ -0,0 +1,3444 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// The ray tracer code in this file is written by Adam Burmister. It
+// is available in its original form from:
+//
+// http://labs.flog.nz.co/raytracer/
+//
+// It has been modified slightly by Google to work as a standalone
+// benchmark, but the all the computational code remains
+// untouched. This file also contains a copy of the Prototype
+// JavaScript framework which is used by the ray tracer.
+
+
+var checkNumber;
+
+// Create dummy objects if we're not running in a browser.
+if (typeof document == 'undefined') {
+ document = { };
+ window = { opera: null };
+ navigator = { userAgent: null, appVersion: "" };
+}
+
+
+// ------------------------------------------------------------------------
+// ------------------------------------------------------------------------
+
+
+/* Prototype JavaScript framework, version 1.5.0
+ * (c) 2005-2007 Sam Stephenson
+ *
+ * Prototype is freely distributable under the terms of an MIT-style license.
+ * For details, see the Prototype web site: http://prototype.conio.net/
+ *
+/*--------------------------------------------------------------------------*/
+
+//--------------------
+var Prototype = {
+ Version: '1.5.0',
+ BrowserFeatures: {
+ XPath: !!document.evaluate
+ },
+
+ ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',
+ emptyFunction: function() {},
+ K: function(x) { return x }
+}
+
+var Class = {
+ create: function() {
+ return function() {
+ this.initialize.apply(this, arguments);
+ }
+ }
+}
+
+var Abstract = new Object();
+
+Object.extend = function(destination, source) {
+ for (var property in source) {
+ destination[property] = source[property];
+ }
+ return destination;
+}
+
+Object.extend(Object, {
+ inspect: function(object) {
+ try {
+ if (object === undefined) return 'undefined';
+ if (object === null) return 'null';
+ return object.inspect ? object.inspect() : object.toString();
+ } catch (e) {
+ if (e instanceof RangeError) return '...';
+ throw e;
+ }
+ },
+
+ keys: function(object) {
+ var keys = [];
+ for (var property in object)
+ keys.push(property);
+ return keys;
+ },
+
+ values: function(object) {
+ var values = [];
+ for (var property in object)
+ values.push(object[property]);
+ return values;
+ },
+
+ clone: function(object) {
+ return Object.extend({}, object);
+ }
+});
+
+Function.prototype.bind = function() {
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function() {
+ return __method.apply(object, args.concat($A(arguments)));
+ }
+}
+
+Function.prototype.bindAsEventListener = function(object) {
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function(event) {
+ return __method.apply(object, [( event || window.event)].concat(args).concat($A(arguments)));
+ }
+}
+
+Object.extend(Number.prototype, {
+ toColorPart: function() {
+ var digits = this.toString(16);
+ if (this < 16) return '0' + digits;
+ return digits;
+ },
+
+ succ: function() {
+ return this + 1;
+ },
+
+ times: function(iterator) {
+ $R(0, this, true).each(iterator);
+ return this;
+ }
+});
+
+var Try = {
+ these: function() {
+ var returnValue;
+
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ var lambda = arguments[i];
+ try {
+ returnValue = lambda();
+ break;
+ } catch (e) {}
+ }
+
+ return returnValue;
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+var PeriodicalExecuter = Class.create();
+PeriodicalExecuter.prototype = {
+ initialize: function(callback, frequency) {
+ this.callback = callback;
+ this.frequency = frequency;
+ this.currentlyExecuting = false;
+
+ this.registerCallback();
+ },
+
+ registerCallback: function() {
+ this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+ },
+
+ stop: function() {
+ if (!this.timer) return;
+ clearInterval(this.timer);
+ this.timer = null;
+ },
+
+ onTimerEvent: function() {
+ if (!this.currentlyExecuting) {
+ try {
+ this.currentlyExecuting = true;
+ this.callback(this);
+ } finally {
+ this.currentlyExecuting = false;
+ }
+ }
+ }
+}
+String.interpret = function(value){
+ return value == null ? '' : String(value);
+}
+
+Object.extend(String.prototype, {
+ gsub: function(pattern, replacement) {
+ var result = '', source = this, match;
+ replacement = arguments.callee.prepareReplacement(replacement);
+
+ while (source.length > 0) {
+ if (match = source.match(pattern)) {
+ result += source.slice(0, match.index);
+ result += String.interpret(replacement(match));
+ source = source.slice(match.index + match[0].length);
+ } else {
+ result += source, source = '';
+ }
+ }
+ return result;
+ },
+
+ sub: function(pattern, replacement, count) {
+ replacement = this.gsub.prepareReplacement(replacement);
+ count = count === undefined ? 1 : count;
+
+ return this.gsub(pattern, function(match) {
+ if (--count < 0) return match[0];
+ return replacement(match);
+ });
+ },
+
+ scan: function(pattern, iterator) {
+ this.gsub(pattern, iterator);
+ return this;
+ },
+
+ truncate: function(length, truncation) {
+ length = length || 30;
+ truncation = truncation === undefined ? '...' : truncation;
+ return this.length > length ?
+ this.slice(0, length - truncation.length) + truncation : this;
+ },
+
+ strip: function() {
+ return this.replace(/^\s+/, '').replace(/\s+$/, '');
+ },
+
+ stripTags: function() {
+ return this.replace(/<\/?[^>]+>/gi, '');
+ },
+
+ stripScripts: function() {
+ return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
+ },
+
+ extractScripts: function() {
+ var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
+ var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+ return (this.match(matchAll) || []).map(function(scriptTag) {
+ return (scriptTag.match(matchOne) || ['', ''])[1];
+ });
+ },
+
+ evalScripts: function() {
+ return this.extractScripts().map(function(script) { return eval(script) });
+ },
+
+ escapeHTML: function() {
+ var div = document.createElement('div');
+ var text = document.createTextNode(this);
+ div.appendChild(text);
+ return div.innerHTML;
+ },
+
+ unescapeHTML: function() {
+ var div = document.createElement('div');
+ div.innerHTML = this.stripTags();
+ return div.childNodes[0] ? (div.childNodes.length > 1 ?
+ $A(div.childNodes).inject('',function(memo,node){ return memo+node.nodeValue }) :
+ div.childNodes[0].nodeValue) : '';
+ },
+
+ toQueryParams: function(separator) {
+ var match = this.strip().match(/([^?#]*)(#.*)?$/);
+ if (!match) return {};
+
+ return match[1].split(separator || '&').inject({}, function(hash, pair) {
+ if ((pair = pair.split('='))[0]) {
+ var name = decodeURIComponent(pair[0]);
+ var value = pair[1] ? decodeURIComponent(pair[1]) : undefined;
+
+ if (hash[name] !== undefined) {
+ if (hash[name].constructor != Array)
+ hash[name] = [hash[name]];
+ if (value) hash[name].push(value);
+ }
+ else hash[name] = value;
+ }
+ return hash;
+ });
+ },
+
+ toArray: function() {
+ return this.split('');
+ },
+
+ succ: function() {
+ return this.slice(0, this.length - 1) +
+ String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+ },
+
+ camelize: function() {
+ var parts = this.split('-'), len = parts.length;
+ if (len == 1) return parts[0];
+
+ var camelized = this.charAt(0) == '-'
+ ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
+ : parts[0];
+
+ for (var i = 1; i < len; i++)
+ camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
+
+ return camelized;
+ },
+
+ capitalize: function(){
+ return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+ },
+
+ underscore: function() {
+ return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
+ },
+
+ dasherize: function() {
+ return this.gsub(/_/,'-');
+ },
+
+ inspect: function(useDoubleQuotes) {
+ var escapedString = this.replace(/\\/g, '\\\\');
+ if (useDoubleQuotes)
+ return '"' + escapedString.replace(/"/g, '\\"') + '"';
+ else
+ return "'" + escapedString.replace(/'/g, '\\\'') + "'";
+ }
+});
+
+String.prototype.gsub.prepareReplacement = function(replacement) {
+ if (typeof replacement == 'function') return replacement;
+ var template = new Template(replacement);
+ return function(match) { return template.evaluate(match) };
+}
+
+String.prototype.parseQuery = String.prototype.toQueryParams;
+
+var Template = Class.create();
+Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
+Template.prototype = {
+ initialize: function(template, pattern) {
+ this.template = template.toString();
+ this.pattern = pattern || Template.Pattern;
+ },
+
+ evaluate: function(object) {
+ return this.template.gsub(this.pattern, function(match) {
+ var before = match[1];
+ if (before == '\\') return match[2];
+ return before + String.interpret(object[match[3]]);
+ });
+ }
+}
+
+var $break = new Object();
+var $continue = new Object();
+
+var Enumerable = {
+ each: function(iterator) {
+ var index = 0;
+ try {
+ this._each(function(value) {
+ try {
+ iterator(value, index++);
+ } catch (e) {
+ if (e != $continue) throw e;
+ }
+ });
+ } catch (e) {
+ if (e != $break) throw e;
+ }
+ return this;
+ },
+
+ eachSlice: function(number, iterator) {
+ var index = -number, slices = [], array = this.toArray();
+ while ((index += number) < array.length)
+ slices.push(array.slice(index, index+number));
+ return slices.map(iterator);
+ },
+
+ all: function(iterator) {
+ var result = true;
+ this.each(function(value, index) {
+ result = result && !!(iterator || Prototype.K)(value, index);
+ if (!result) throw $break;
+ });
+ return result;
+ },
+
+ any: function(iterator) {
+ var result = false;
+ this.each(function(value, index) {
+ if (result = !!(iterator || Prototype.K)(value, index))
+ throw $break;
+ });
+ return result;
+ },
+
+ collect: function(iterator) {
+ var results = [];
+ this.each(function(value, index) {
+ results.push((iterator || Prototype.K)(value, index));
+ });
+ return results;
+ },
+
+ detect: function(iterator) {
+ var result;
+ this.each(function(value, index) {
+ if (iterator(value, index)) {
+ result = value;
+ throw $break;
+ }
+ });
+ return result;
+ },
+
+ findAll: function(iterator) {
+ var results = [];
+ this.each(function(value, index) {
+ if (iterator(value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ grep: function(pattern, iterator) {
+ var results = [];
+ this.each(function(value, index) {
+ var stringValue = value.toString();
+ if (stringValue.match(pattern))
+ results.push((iterator || Prototype.K)(value, index));
+ })
+ return results;
+ },
+
+ include: function(object) {
+ var found = false;
+ this.each(function(value) {
+ if (value == object) {
+ found = true;
+ throw $break;
+ }
+ });
+ return found;
+ },
+
+ inGroupsOf: function(number, fillWith) {
+ fillWith = fillWith === undefined ? null : fillWith;
+ return this.eachSlice(number, function(slice) {
+ while(slice.length < number) slice.push(fillWith);
+ return slice;
+ });
+ },
+
+ inject: function(memo, iterator) {
+ this.each(function(value, index) {
+ memo = iterator(memo, value, index);
+ });
+ return memo;
+ },
+
+ invoke: function(method) {
+ var args = $A(arguments).slice(1);
+ return this.map(function(value) {
+ return value[method].apply(value, args);
+ });
+ },
+
+ max: function(iterator) {
+ var result;
+ this.each(function(value, index) {
+ value = (iterator || Prototype.K)(value, index);
+ if (result == undefined || value >= result)
+ result = value;
+ });
+ return result;
+ },
+
+ min: function(iterator) {
+ var result;
+ this.each(function(value, index) {
+ value = (iterator || Prototype.K)(value, index);
+ if (result == undefined || value < result)
+ result = value;
+ });
+ return result;
+ },
+
+ partition: function(iterator) {
+ var trues = [], falses = [];
+ this.each(function(value, index) {
+ ((iterator || Prototype.K)(value, index) ?
+ trues : falses).push(value);
+ });
+ return [trues, falses];
+ },
+
+ pluck: function(property) {
+ var results = [];
+ this.each(function(value, index) {
+ results.push(value[property]);
+ });
+ return results;
+ },
+
+ reject: function(iterator) {
+ var results = [];
+ this.each(function(value, index) {
+ if (!iterator(value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ sortBy: function(iterator) {
+ return this.map(function(value, index) {
+ return {value: value, criteria: iterator(value, index)};
+ }).sort(function(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a < b ? -1 : a > b ? 1 : 0;
+ }).pluck('value');
+ },
+
+ toArray: function() {
+ return this.map();
+ },
+
+ zip: function() {
+ var iterator = Prototype.K, args = $A(arguments);
+ if (typeof args.last() == 'function')
+ iterator = args.pop();
+
+ var collections = [this].concat(args).map($A);
+ return this.map(function(value, index) {
+ return iterator(collections.pluck(index));
+ });
+ },
+
+ size: function() {
+ return this.toArray().length;
+ },
+
+ inspect: function() {
+ return '#<Enumerable:' + this.toArray().inspect() + '>';
+ }
+}
+
+Object.extend(Enumerable, {
+ map: Enumerable.collect,
+ find: Enumerable.detect,
+ select: Enumerable.findAll,
+ member: Enumerable.include,
+ entries: Enumerable.toArray
+});
+var $A = Array.from = function(iterable) {
+ if (!iterable) return [];
+ if (iterable.toArray) {
+ return iterable.toArray();
+ } else {
+ var results = [];
+ for (var i = 0, length = iterable.length; i < length; i++)
+ results.push(iterable[i]);
+ return results;
+ }
+}
+
+Object.extend(Array.prototype, Enumerable);
+
+if (!Array.prototype._reverse)
+ Array.prototype._reverse = Array.prototype.reverse;
+
+Object.extend(Array.prototype, {
+ _each: function(iterator) {
+ for (var i = 0, length = this.length; i < length; i++)
+ iterator(this[i]);
+ },
+
+ clear: function() {
+ this.length = 0;
+ return this;
+ },
+
+ first: function() {
+ return this[0];
+ },
+
+ last: function() {
+ return this[this.length - 1];
+ },
+
+ compact: function() {
+ return this.select(function(value) {
+ return value != null;
+ });
+ },
+
+ flatten: function() {
+ return this.inject([], function(array, value) {
+ return array.concat(value && value.constructor == Array ?
+ value.flatten() : [value]);
+ });
+ },
+
+ without: function() {
+ var values = $A(arguments);
+ return this.select(function(value) {
+ return !values.include(value);
+ });
+ },
+
+ indexOf: function(object) {
+ for (var i = 0, length = this.length; i < length; i++)
+ if (this[i] == object) return i;
+ return -1;
+ },
+
+ reverse: function(inline) {
+ return (inline !== false ? this : this.toArray())._reverse();
+ },
+
+ reduce: function() {
+ return this.length > 1 ? this : this[0];
+ },
+
+ uniq: function() {
+ return this.inject([], function(array, value) {
+ return array.include(value) ? array : array.concat([value]);
+ });
+ },
+
+ clone: function() {
+ return [].concat(this);
+ },
+
+ size: function() {
+ return this.length;
+ },
+
+ inspect: function() {
+ return '[' + this.map(Object.inspect).join(', ') + ']';
+ }
+});
+
+Array.prototype.toArray = Array.prototype.clone;
+
+function $w(string){
+ string = string.strip();
+ return string ? string.split(/\s+/) : [];
+}
+
+if(window.opera){
+ Array.prototype.concat = function(){
+ var array = [];
+ for(var i = 0, length = this.length; i < length; i++) array.push(this[i]);
+ for(var i = 0, length = arguments.length; i < length; i++) {
+ if(arguments[i].constructor == Array) {
+ for(var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
+ array.push(arguments[i][j]);
+ } else {
+ array.push(arguments[i]);
+ }
+ }
+ return array;
+ }
+}
+var Hash = function(obj) {
+ Object.extend(this, obj || {});
+};
+
+Object.extend(Hash, {
+ toQueryString: function(obj) {
+ var parts = [];
+
+ this.prototype._each.call(obj, function(pair) {
+ if (!pair.key) return;
+
+ if (pair.value && pair.value.constructor == Array) {
+ var values = pair.value.compact();
+ if (values.length < 2) pair.value = values.reduce();
+ else {
+ key = encodeURIComponent(pair.key);
+ values.each(function(value) {
+ value = value != undefined ? encodeURIComponent(value) : '';
+ parts.push(key + '=' + encodeURIComponent(value));
+ });
+ return;
+ }
+ }
+ if (pair.value == undefined) pair[1] = '';
+ parts.push(pair.map(encodeURIComponent).join('='));
+ });
+
+ return parts.join('&');
+ }
+});
+
+Object.extend(Hash.prototype, Enumerable);
+Object.extend(Hash.prototype, {
+ _each: function(iterator) {
+ for (var key in this) {
+ var value = this[key];
+ if (value && value == Hash.prototype[key]) continue;
+
+ var pair = [key, value];
+ pair.key = key;
+ pair.value = value;
+ iterator(pair);
+ }
+ },
+
+ keys: function() {
+ return this.pluck('key');
+ },
+
+ values: function() {
+ return this.pluck('value');
+ },
+
+ merge: function(hash) {
+ return $H(hash).inject(this, function(mergedHash, pair) {
+ mergedHash[pair.key] = pair.value;
+ return mergedHash;
+ });
+ },
+
+ remove: function() {
+ var result;
+ for(var i = 0, length = arguments.length; i < length; i++) {
+ var value = this[arguments[i]];
+ if (value !== undefined){
+ if (result === undefined) result = value;
+ else {
+ if (result.constructor != Array) result = [result];
+ result.push(value)
+ }
+ }
+ delete this[arguments[i]];
+ }
+ return result;
+ },
+
+ toQueryString: function() {
+ return Hash.toQueryString(this);
+ },
+
+ inspect: function() {
+ return '#<Hash:{' + this.map(function(pair) {
+ return pair.map(Object.inspect).join(': ');
+ }).join(', ') + '}>';
+ }
+});
+
+function $H(object) {
+ if (object && object.constructor == Hash) return object;
+ return new Hash(object);
+};
+ObjectRange = Class.create();
+Object.extend(ObjectRange.prototype, Enumerable);
+Object.extend(ObjectRange.prototype, {
+ initialize: function(start, end, exclusive) {
+ this.start = start;
+ this.end = end;
+ this.exclusive = exclusive;
+ },
+
+ _each: function(iterator) {
+ var value = this.start;
+ while (this.include(value)) {
+ iterator(value);
+ value = value.succ();
+ }
+ },
+
+ include: function(value) {
+ if (value < this.start)
+ return false;
+ if (this.exclusive)
+ return value < this.end;
+ return value <= this.end;
+ }
+});
+
+var $R = function(start, end, exclusive) {
+ return new ObjectRange(start, end, exclusive);
+}
+
+var Ajax = {
+ getTransport: function() {
+ return Try.these(
+ function() {return new XMLHttpRequest()},
+ function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+ function() {return new ActiveXObject('Microsoft.XMLHTTP')}
+ ) || false;
+ },
+
+ activeRequestCount: 0
+}
+
+Ajax.Responders = {
+ responders: [],
+
+ _each: function(iterator) {
+ this.responders._each(iterator);
+ },
+
+ register: function(responder) {
+ if (!this.include(responder))
+ this.responders.push(responder);
+ },
+
+ unregister: function(responder) {
+ this.responders = this.responders.without(responder);
+ },
+
+ dispatch: function(callback, request, transport, json) {
+ this.each(function(responder) {
+ if (typeof responder[callback] == 'function') {
+ try {
+ responder[callback].apply(responder, [request, transport, json]);
+ } catch (e) {}
+ }
+ });
+ }
+};
+
+Object.extend(Ajax.Responders, Enumerable);
+
+Ajax.Responders.register({
+ onCreate: function() {
+ Ajax.activeRequestCount++;
+ },
+ onComplete: function() {
+ Ajax.activeRequestCount--;
+ }
+});
+
+Ajax.Base = function() {};
+Ajax.Base.prototype = {
+ setOptions: function(options) {
+ this.options = {
+ method: 'post',
+ asynchronous: true,
+ contentType: 'application/x-www-form-urlencoded',
+ encoding: 'UTF-8',
+ parameters: ''
+ }
+ Object.extend(this.options, options || {});
+
+ this.options.method = this.options.method.toLowerCase();
+ if (typeof this.options.parameters == 'string')
+ this.options.parameters = this.options.parameters.toQueryParams();
+ }
+}
+
+Ajax.Request = Class.create();
+Ajax.Request.Events =
+ ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
+ _complete: false,
+
+ initialize: function(url, options) {
+ this.transport = Ajax.getTransport();
+ this.setOptions(options);
+ this.request(url);
+ },
+
+ request: function(url) {
+ this.url = url;
+ this.method = this.options.method;
+ var params = this.options.parameters;
+
+ if (!['get', 'post'].include(this.method)) {
+ // simulate other verbs over post
+ params['_method'] = this.method;
+ this.method = 'post';
+ }
+
+ params = Hash.toQueryString(params);
+ if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) params += '&_='
+
+ // when GET, append parameters to URL
+ if (this.method == 'get' && params)
+ this.url += (this.url.indexOf('?') > -1 ? '&' : '?') + params;
+
+ try {
+ Ajax.Responders.dispatch('onCreate', this, this.transport);
+
+ this.transport.open(this.method.toUpperCase(), this.url,
+ this.options.asynchronous);
+
+ if (this.options.asynchronous)
+ setTimeout(function() { this.respondToReadyState(1) }.bind(this), 10);
+
+ this.transport.onreadystatechange = this.onStateChange.bind(this);
+ this.setRequestHeaders();
+
+ var body = this.method == 'post' ? (this.options.postBody || params) : null;
+
+ this.transport.send(body);
+
+ /* Force Firefox to handle ready state 4 for synchronous requests */
+ if (!this.options.asynchronous && this.transport.overrideMimeType)
+ this.onStateChange();
+
+ }
+ catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ onStateChange: function() {
+ var readyState = this.transport.readyState;
+ if (readyState > 1 && !((readyState == 4) && this._complete))
+ this.respondToReadyState(this.transport.readyState);
+ },
+
+ setRequestHeaders: function() {
+ var headers = {
+ 'X-Requested-With': 'XMLHttpRequest',
+ 'X-Prototype-Version': Prototype.Version,
+ 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+ };
+
+ if (this.method == 'post') {
+ headers['Content-type'] = this.options.contentType +
+ (this.options.encoding ? '; charset=' + this.options.encoding : '');
+
+ /* Force "Connection: close" for older Mozilla browsers to work
+ * around a bug where XMLHttpRequest sends an incorrect
+ * Content-length header. See Mozilla Bugzilla #246651.
+ */
+ if (this.transport.overrideMimeType &&
+ (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+ headers['Connection'] = 'close';
+ }
+
+ // user-defined headers
+ if (typeof this.options.requestHeaders == 'object') {
+ var extras = this.options.requestHeaders;
+
+ if (typeof extras.push == 'function')
+ for (var i = 0, length = extras.length; i < length; i += 2)
+ headers[extras[i]] = extras[i+1];
+ else
+ $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+ }
+
+ for (var name in headers)
+ this.transport.setRequestHeader(name, headers[name]);
+ },
+
+ success: function() {
+ return !this.transport.status
+ || (this.transport.status >= 200 && this.transport.status < 300);
+ },
+
+ respondToReadyState: function(readyState) {
+ var state = Ajax.Request.Events[readyState];
+ var transport = this.transport, json = this.evalJSON();
+
+ if (state == 'Complete') {
+ try {
+ this._complete = true;
+ (this.options['on' + this.transport.status]
+ || this.options['on' + (this.success() ? 'Success' : 'Failure')]
+ || Prototype.emptyFunction)(transport, json);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ if ((this.getHeader('Content-type') || 'text/javascript').strip().
+ match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))
+ this.evalResponse();
+ }
+
+ try {
+ (this.options['on' + state] || Prototype.emptyFunction)(transport, json);
+ Ajax.Responders.dispatch('on' + state, this, transport, json);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ if (state == 'Complete') {
+ // avoid memory leak in MSIE: clean up
+ this.transport.onreadystatechange = Prototype.emptyFunction;
+ }
+ },
+
+ getHeader: function(name) {
+ try {
+ return this.transport.getResponseHeader(name);
+ } catch (e) { return null }
+ },
+
+ evalJSON: function() {
+ try {
+ var json = this.getHeader('X-JSON');
+ return json ? eval('(' + json + ')') : null;
+ } catch (e) { return null }
+ },
+
+ evalResponse: function() {
+ try {
+ return eval(this.transport.responseText);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ dispatchException: function(exception) {
+ (this.options.onException || Prototype.emptyFunction)(this, exception);
+ Ajax.Responders.dispatch('onException', this, exception);
+ }
+});
+
+Ajax.Updater = Class.create();
+
+Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
+ initialize: function(container, url, options) {
+ this.container = {
+ success: (container.success || container),
+ failure: (container.failure || (container.success ? null : container))
+ }
+
+ this.transport = Ajax.getTransport();
+ this.setOptions(options);
+
+ var onComplete = this.options.onComplete || Prototype.emptyFunction;
+ this.options.onComplete = (function(transport, param) {
+ this.updateContent();
+ onComplete(transport, param);
+ }).bind(this);
+
+ this.request(url);
+ },
+
+ updateContent: function() {
+ var receiver = this.container[this.success() ? 'success' : 'failure'];
+ var response = this.transport.responseText;
+
+ if (!this.options.evalScripts) response = response.stripScripts();
+
+ if (receiver = $(receiver)) {
+ if (this.options.insertion)
+ new this.options.insertion(receiver, response);
+ else
+ receiver.update(response);
+ }
+
+ if (this.success()) {
+ if (this.onComplete)
+ setTimeout(this.onComplete.bind(this), 10);
+ }
+ }
+});
+
+Ajax.PeriodicalUpdater = Class.create();
+Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {
+ initialize: function(container, url, options) {
+ this.setOptions(options);
+ this.onComplete = this.options.onComplete;
+
+ this.frequency = (this.options.frequency || 2);
+ this.decay = (this.options.decay || 1);
+
+ this.updater = {};
+ this.container = container;
+ this.url = url;
+
+ this.start();
+ },
+
+ start: function() {
+ this.options.onComplete = this.updateComplete.bind(this);
+ this.onTimerEvent();
+ },
+
+ stop: function() {
+ this.updater.options.onComplete = undefined;
+ clearTimeout(this.timer);
+ (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
+ },
+
+ updateComplete: function(request) {
+ if (this.options.decay) {
+ this.decay = (request.responseText == this.lastText ?
+ this.decay * this.options.decay : 1);
+
+ this.lastText = request.responseText;
+ }
+ this.timer = setTimeout(this.onTimerEvent.bind(this),
+ this.decay * this.frequency * 1000);
+ },
+
+ onTimerEvent: function() {
+ this.updater = new Ajax.Updater(this.container, this.url, this.options);
+ }
+});
+function $(element) {
+ if (arguments.length > 1) {
+ for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+ elements.push($(arguments[i]));
+ return elements;
+ }
+ if (typeof element == 'string')
+ element = document.getElementById(element);
+ return Element.extend(element);
+}
+
+if (Prototype.BrowserFeatures.XPath) {
+ document._getElementsByXPath = function(expression, parentElement) {
+ var results = [];
+ var query = document.evaluate(expression, $(parentElement) || document,
+ null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ for (var i = 0, length = query.snapshotLength; i < length; i++)
+ results.push(query.snapshotItem(i));
+ return results;
+ };
+}
+
+document.getElementsByClassName = function(className, parentElement) {
+ if (Prototype.BrowserFeatures.XPath) {
+ var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
+ return document._getElementsByXPath(q, parentElement);
+ } else {
+ var children = ($(parentElement) || document.body).getElementsByTagName('*');
+ var elements = [], child;
+ for (var i = 0, length = children.length; i < length; i++) {
+ child = children[i];
+ if (Element.hasClassName(child, className))
+ elements.push(Element.extend(child));
+ }
+ return elements;
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+if (!window.Element)
+ var Element = new Object();
+
+Element.extend = function(element) {
+ if (!element || _nativeExtensions || element.nodeType == 3) return element;
+
+ if (!element._extended && element.tagName && element != window) {
+ var methods = Object.clone(Element.Methods), cache = Element.extend.cache;
+
+ if (element.tagName == 'FORM')
+ Object.extend(methods, Form.Methods);
+ if (['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName))
+ Object.extend(methods, Form.Element.Methods);
+
+ Object.extend(methods, Element.Methods.Simulated);
+
+ for (var property in methods) {
+ var value = methods[property];
+ if (typeof value == 'function' && !(property in element))
+ element[property] = cache.findOrStore(value);
+ }
+ }
+
+ element._extended = true;
+ return element;
+};
+
+Element.extend.cache = {
+ findOrStore: function(value) {
+ return this[value] = this[value] || function() {
+ return value.apply(null, [this].concat($A(arguments)));
+ }
+ }
+};
+
+Element.Methods = {
+ visible: function(element) {
+ return $(element).style.display != 'none';
+ },
+
+ toggle: function(element) {
+ element = $(element);
+ Element[Element.visible(element) ? 'hide' : 'show'](element);
+ return element;
+ },
+
+ hide: function(element) {
+ $(element).style.display = 'none';
+ return element;
+ },
+
+ show: function(element) {
+ $(element).style.display = '';
+ return element;
+ },
+
+ remove: function(element) {
+ element = $(element);
+ element.parentNode.removeChild(element);
+ return element;
+ },
+
+ update: function(element, html) {
+ html = typeof html == 'undefined' ? '' : html.toString();
+ $(element).innerHTML = html.stripScripts();
+ setTimeout(function() {html.evalScripts()}, 10);
+ return element;
+ },
+
+ replace: function(element, html) {
+ element = $(element);
+ html = typeof html == 'undefined' ? '' : html.toString();
+ if (element.outerHTML) {
+ element.outerHTML = html.stripScripts();
+ } else {
+ var range = element.ownerDocument.createRange();
+ range.selectNodeContents(element);
+ element.parentNode.replaceChild(
+ range.createContextualFragment(html.stripScripts()), element);
+ }
+ setTimeout(function() {html.evalScripts()}, 10);
+ return element;
+ },
+
+ inspect: function(element) {
+ element = $(element);
+ var result = '<' + element.tagName.toLowerCase();
+ $H({'id': 'id', 'className': 'class'}).each(function(pair) {
+ var property = pair.first(), attribute = pair.last();
+ var value = (element[property] || '').toString();
+ if (value) result += ' ' + attribute + '=' + value.inspect(true);
+ });
+ return result + '>';
+ },
+
+ recursivelyCollect: function(element, property) {
+ element = $(element);
+ var elements = [];
+ while (element = element[property])
+ if (element.nodeType == 1)
+ elements.push(Element.extend(element));
+ return elements;
+ },
+
+ ancestors: function(element) {
+ return $(element).recursivelyCollect('parentNode');
+ },
+
+ descendants: function(element) {
+ return $A($(element).getElementsByTagName('*'));
+ },
+
+ immediateDescendants: function(element) {
+ if (!(element = $(element).firstChild)) return [];
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ if (element) return [element].concat($(element).nextSiblings());
+ return [];
+ },
+
+ previousSiblings: function(element) {
+ return $(element).recursivelyCollect('previousSibling');
+ },
+
+ nextSiblings: function(element) {
+ return $(element).recursivelyCollect('nextSibling');
+ },
+
+ siblings: function(element) {
+ element = $(element);
+ return element.previousSiblings().reverse().concat(element.nextSiblings());
+ },
+
+ match: function(element, selector) {
+ if (typeof selector == 'string')
+ selector = new Selector(selector);
+ return selector.match($(element));
+ },
+
+ up: function(element, expression, index) {
+ return Selector.findElement($(element).ancestors(), expression, index);
+ },
+
+ down: function(element, expression, index) {
+ return Selector.findElement($(element).descendants(), expression, index);
+ },
+
+ previous: function(element, expression, index) {
+ return Selector.findElement($(element).previousSiblings(), expression, index);
+ },
+
+ next: function(element, expression, index) {
+ return Selector.findElement($(element).nextSiblings(), expression, index);
+ },
+
+ getElementsBySelector: function() {
+ var args = $A(arguments), element = $(args.shift());
+ return Selector.findChildElements(element, args);
+ },
+
+ getElementsByClassName: function(element, className) {
+ return document.getElementsByClassName(className, element);
+ },
+
+ readAttribute: function(element, name) {
+ element = $(element);
+ if (document.all && !window.opera) {
+ var t = Element._attributeTranslations;
+ if (t.values[name]) return t.values[name](element, name);
+ if (t.names[name]) name = t.names[name];
+ var attribute = element.attributes[name];
+ if(attribute) return attribute.nodeValue;
+ }
+ return element.getAttribute(name);
+ },
+
+ getHeight: function(element) {
+ return $(element).getDimensions().height;
+ },
+
+ getWidth: function(element) {
+ return $(element).getDimensions().width;
+ },
+
+ classNames: function(element) {
+ return new Element.ClassNames(element);
+ },
+
+ hasClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ var elementClassName = element.className;
+ if (elementClassName.length == 0) return false;
+ if (elementClassName == className ||
+ elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
+ return true;
+ return false;
+ },
+
+ addClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ Element.classNames(element).add(className);
+ return element;
+ },
+
+ removeClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ Element.classNames(element).remove(className);
+ return element;
+ },
+
+ toggleClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ Element.classNames(element)[element.hasClassName(className) ? 'remove' : 'add'](className);
+ return element;
+ },
+
+ observe: function() {
+ Event.observe.apply(Event, arguments);
+ return $A(arguments).first();
+ },
+
+ stopObserving: function() {
+ Event.stopObserving.apply(Event, arguments);
+ return $A(arguments).first();
+ },
+
+ // removes whitespace-only text node children
+ cleanWhitespace: function(element) {
+ element = $(element);
+ var node = element.firstChild;
+ while (node) {
+ var nextNode = node.nextSibling;
+ if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+ element.removeChild(node);
+ node = nextNode;
+ }
+ return element;
+ },
+
+ empty: function(element) {
+ return $(element).innerHTML.match(/^\s*$/);
+ },
+
+ descendantOf: function(element, ancestor) {
+ element = $(element), ancestor = $(ancestor);
+ while (element = element.parentNode)
+ if (element == ancestor) return true;
+ return false;
+ },
+
+ scrollTo: function(element) {
+ element = $(element);
+ var pos = Position.cumulativeOffset(element);
+ window.scrollTo(pos[0], pos[1]);
+ return element;
+ },
+
+ getStyle: function(element, style) {
+ element = $(element);
+ if (['float','cssFloat'].include(style))
+ style = (typeof element.style.styleFloat != 'undefined' ? 'styleFloat' : 'cssFloat');
+ style = style.camelize();
+ var value = element.style[style];
+ if (!value) {
+ if (document.defaultView && document.defaultView.getComputedStyle) {
+ var css = document.defaultView.getComputedStyle(element, null);
+ value = css ? css[style] : null;
+ } else if (element.currentStyle) {
+ value = element.currentStyle[style];
+ }
+ }
+
+ if((value == 'auto') && ['width','height'].include(style) && (element.getStyle('display') != 'none'))
+ value = element['offset'+style.capitalize()] + 'px';
+
+ if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
+ if (Element.getStyle(element, 'position') == 'static') value = 'auto';
+ if(style == 'opacity') {
+ if(value) return parseFloat(value);
+ if(value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+ if(value[1]) return parseFloat(value[1]) / 100;
+ return 1.0;
+ }
+ return value == 'auto' ? null : value;
+ },
+
+ setStyle: function(element, style) {
+ element = $(element);
+ for (var name in style) {
+ var value = style[name];
+ if(name == 'opacity') {
+ if (value == 1) {
+ value = (/Gecko/.test(navigator.userAgent) &&
+ !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? 0.999999 : 1.0;
+ if(/MSIE/.test(navigator.userAgent) && !window.opera)
+ element.style.filter = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');
+ } else if(value == '') {
+ if(/MSIE/.test(navigator.userAgent) && !window.opera)
+ element.style.filter = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');
+ } else {
+ if(value < 0.00001) value = 0;
+ if(/MSIE/.test(navigator.userAgent) && !window.opera)
+ element.style.filter = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'') +
+ 'alpha(opacity='+value*100+')';
+ }
+ } else if(['float','cssFloat'].include(name)) name = (typeof element.style.styleFloat != 'undefined') ? 'styleFloat' : 'cssFloat';
+ element.style[name.camelize()] = value;
+ }
+ return element;
+ },
+
+ getDimensions: function(element) {
+ element = $(element);
+ var display = $(element).getStyle('display');
+ if (display != 'none' && display != null) // Safari bug
+ return {width: element.offsetWidth, height: element.offsetHeight};
+
+ // All *Width and *Height properties give 0 on elements with display none,
+ // so enable the element temporarily
+ var els = element.style;
+ var originalVisibility = els.visibility;
+ var originalPosition = els.position;
+ var originalDisplay = els.display;
+ els.visibility = 'hidden';
+ els.position = 'absolute';
+ els.display = 'block';
+ var originalWidth = element.clientWidth;
+ var originalHeight = element.clientHeight;
+ els.display = originalDisplay;
+ els.position = originalPosition;
+ els.visibility = originalVisibility;
+ return {width: originalWidth, height: originalHeight};
+ },
+
+ makePositioned: function(element) {
+ element = $(element);
+ var pos = Element.getStyle(element, 'position');
+ if (pos == 'static' || !pos) {
+ element._madePositioned = true;
+ element.style.position = 'relative';
+ // Opera returns the offset relative to the positioning context, when an
+ // element is position relative but top and left have not been defined
+ if (window.opera) {
+ element.style.top = 0;
+ element.style.left = 0;
+ }
+ }
+ return element;
+ },
+
+ undoPositioned: function(element) {
+ element = $(element);
+ if (element._madePositioned) {
+ element._madePositioned = undefined;
+ element.style.position =
+ element.style.top =
+ element.style.left =
+ element.style.bottom =
+ element.style.right = '';
+ }
+ return element;
+ },
+
+ makeClipping: function(element) {
+ element = $(element);
+ if (element._overflow) return element;
+ element._overflow = element.style.overflow || 'auto';
+ if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
+ element.style.overflow = 'hidden';
+ return element;
+ },
+
+ undoClipping: function(element) {
+ element = $(element);
+ if (!element._overflow) return element;
+ element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
+ element._overflow = null;
+ return element;
+ }
+};
+
+Object.extend(Element.Methods, {childOf: Element.Methods.descendantOf});
+
+Element._attributeTranslations = {};
+
+Element._attributeTranslations.names = {
+ colspan: "colSpan",
+ rowspan: "rowSpan",
+ valign: "vAlign",
+ datetime: "dateTime",
+ accesskey: "accessKey",
+ tabindex: "tabIndex",
+ enctype: "encType",
+ maxlength: "maxLength",
+ readonly: "readOnly",
+ longdesc: "longDesc"
+};
+
+Element._attributeTranslations.values = {
+ _getAttr: function(element, attribute) {
+ return element.getAttribute(attribute, 2);
+ },
+
+ _flag: function(element, attribute) {
+ return $(element).hasAttribute(attribute) ? attribute : null;
+ },
+
+ style: function(element) {
+ return element.style.cssText.toLowerCase();
+ },
+
+ title: function(element) {
+ var node = element.getAttributeNode('title');
+ return node.specified ? node.nodeValue : null;
+ }
+};
+
+Object.extend(Element._attributeTranslations.values, {
+ href: Element._attributeTranslations.values._getAttr,
+ src: Element._attributeTranslations.values._getAttr,
+ disabled: Element._attributeTranslations.values._flag,
+ checked: Element._attributeTranslations.values._flag,
+ readonly: Element._attributeTranslations.values._flag,
+ multiple: Element._attributeTranslations.values._flag
+});
+
+Element.Methods.Simulated = {
+ hasAttribute: function(element, attribute) {
+ var t = Element._attributeTranslations;
+ attribute = t.names[attribute] || attribute;
+ return $(element).getAttributeNode(attribute).specified;
+ }
+};
+
+// IE is missing .innerHTML support for TABLE-related elements
+if (document.all && !window.opera){
+ Element.Methods.update = function(element, html) {
+ element = $(element);
+ html = typeof html == 'undefined' ? '' : html.toString();
+ var tagName = element.tagName.toUpperCase();
+ if (['THEAD','TBODY','TR','TD'].include(tagName)) {
+ var div = document.createElement('div');
+ switch (tagName) {
+ case 'THEAD':
+ case 'TBODY':
+ div.innerHTML = '<table><tbody>' + html.stripScripts() + '</tbody></table>';
+ depth = 2;
+ break;
+ case 'TR':
+ div.innerHTML = '<table><tbody><tr>' + html.stripScripts() + '</tr></tbody></table>';
+ depth = 3;
+ break;
+ case 'TD':
+ div.innerHTML = '<table><tbody><tr><td>' + html.stripScripts() + '</td></tr></tbody></table>';
+ depth = 4;
+ }
+ $A(element.childNodes).each(function(node){
+ element.removeChild(node)
+ });
+ depth.times(function(){ div = div.firstChild });
+
+ $A(div.childNodes).each(
+ function(node){ element.appendChild(node) });
+ } else {
+ element.innerHTML = html.stripScripts();
+ }
+ setTimeout(function() {html.evalScripts()}, 10);
+ return element;
+ }
+};
+
+Object.extend(Element, Element.Methods);
+
+var _nativeExtensions = false;
+
+if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))
+ ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) {
+ var className = 'HTML' + tag + 'Element';
+ if(window[className]) return;
+ var klass = window[className] = {};
+ klass.prototype = document.createElement(tag ? tag.toLowerCase() : 'div').__proto__;
+ });
+
+Element.addMethods = function(methods) {
+ Object.extend(Element.Methods, methods || {});
+
+ function copy(methods, destination, onlyIfAbsent) {
+ onlyIfAbsent = onlyIfAbsent || false;
+ var cache = Element.extend.cache;
+ for (var property in methods) {
+ var value = methods[property];
+ if (!onlyIfAbsent || !(property in destination))
+ destination[property] = cache.findOrStore(value);
+ }
+ }
+
+ if (typeof HTMLElement != 'undefined') {
+ copy(Element.Methods, HTMLElement.prototype);
+ copy(Element.Methods.Simulated, HTMLElement.prototype, true);
+ copy(Form.Methods, HTMLFormElement.prototype);
+ [HTMLInputElement, HTMLTextAreaElement, HTMLSelectElement].each(function(klass) {
+ copy(Form.Element.Methods, klass.prototype);
+ });
+ _nativeExtensions = true;
+ }
+}
+
+var Toggle = new Object();
+Toggle.display = Element.toggle;
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.Insertion = function(adjacency) {
+ this.adjacency = adjacency;
+}
+
+Abstract.Insertion.prototype = {
+ initialize: function(element, content) {
+ this.element = $(element);
+ this.content = content.stripScripts();
+
+ if (this.adjacency && this.element.insertAdjacentHTML) {
+ try {
+ this.element.insertAdjacentHTML(this.adjacency, this.content);
+ } catch (e) {
+ var tagName = this.element.tagName.toUpperCase();
+ if (['TBODY', 'TR'].include(tagName)) {
+ this.insertContent(this.contentFromAnonymousTable());
+ } else {
+ throw e;
+ }
+ }
+ } else {
+ this.range = this.element.ownerDocument.createRange();
+ if (this.initializeRange) this.initializeRange();
+ this.insertContent([this.range.createContextualFragment(this.content)]);
+ }
+
+ setTimeout(function() {content.evalScripts()}, 10);
+ },
+
+ contentFromAnonymousTable: function() {
+ var div = document.createElement('div');
+ div.innerHTML = '<table><tbody>' + this.content + '</tbody></table>';
+ return $A(div.childNodes[0].childNodes[0].childNodes);
+ }
+}
+
+var Insertion = new Object();
+
+Insertion.Before = Class.create();
+Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
+ initializeRange: function() {
+ this.range.setStartBefore(this.element);
+ },
+
+ insertContent: function(fragments) {
+ fragments.each((function(fragment) {
+ this.element.parentNode.insertBefore(fragment, this.element);
+ }).bind(this));
+ }
+});
+
+Insertion.Top = Class.create();
+Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
+ initializeRange: function() {
+ this.range.selectNodeContents(this.element);
+ this.range.collapse(true);
+ },
+
+ insertContent: function(fragments) {
+ fragments.reverse(false).each((function(fragment) {
+ this.element.insertBefore(fragment, this.element.firstChild);
+ }).bind(this));
+ }
+});
+
+Insertion.Bottom = Class.create();
+Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
+ initializeRange: function() {
+ this.range.selectNodeContents(this.element);
+ this.range.collapse(this.element);
+ },
+
+ insertContent: function(fragments) {
+ fragments.each((function(fragment) {
+ this.element.appendChild(fragment);
+ }).bind(this));
+ }
+});
+
+Insertion.After = Class.create();
+Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
+ initializeRange: function() {
+ this.range.setStartAfter(this.element);
+ },
+
+ insertContent: function(fragments) {
+ fragments.each((function(fragment) {
+ this.element.parentNode.insertBefore(fragment,
+ this.element.nextSibling);
+ }).bind(this));
+ }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Element.ClassNames = Class.create();
+Element.ClassNames.prototype = {
+ initialize: function(element) {
+ this.element = $(element);
+ },
+
+ _each: function(iterator) {
+ this.element.className.split(/\s+/).select(function(name) {
+ return name.length > 0;
+ })._each(iterator);
+ },
+
+ set: function(className) {
+ this.element.className = className;
+ },
+
+ add: function(classNameToAdd) {
+ if (this.include(classNameToAdd)) return;
+ this.set($A(this).concat(classNameToAdd).join(' '));
+ },
+
+ remove: function(classNameToRemove) {
+ if (!this.include(classNameToRemove)) return;
+ this.set($A(this).without(classNameToRemove).join(' '));
+ },
+
+ toString: function() {
+ return $A(this).join(' ');
+ }
+};
+
+Object.extend(Element.ClassNames.prototype, Enumerable);
+var Selector = Class.create();
+Selector.prototype = {
+ initialize: function(expression) {
+ this.params = {classNames: []};
+ this.expression = expression.toString().strip();
+ this.parseExpression();
+ this.compileMatcher();
+ },
+
+ parseExpression: function() {
+ function abort(message) { throw 'Parse error in selector: ' + message; }
+
+ if (this.expression == '') abort('empty expression');
+
+ var params = this.params, expr = this.expression, match, modifier, clause, rest;
+ while (match = expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)) {
+ params.attributes = params.attributes || [];
+ params.attributes.push({name: match[2], operator: match[3], value: match[4] || match[5] || ''});
+ expr = match[1];
+ }
+
+ if (expr == '*') return this.params.wildcard = true;
+
+ while (match = expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) {
+ modifier = match[1], clause = match[2], rest = match[3];
+ switch (modifier) {
+ case '#': params.id = clause; break;
+ case '.': params.classNames.push(clause); break;
+ case '':
+ case undefined: params.tagName = clause.toUpperCase(); break;
+ default: abort(expr.inspect());
+ }
+ expr = rest;
+ }
+
+ if (expr.length > 0) abort(expr.inspect());
+ },
+
+ buildMatchExpression: function() {
+ var params = this.params, conditions = [], clause;
+
+ if (params.wildcard)
+ conditions.push('true');
+ if (clause = params.id)
+ conditions.push('element.readAttribute("id") == ' + clause.inspect());
+ if (clause = params.tagName)
+ conditions.push('element.tagName.toUpperCase() == ' + clause.inspect());
+ if ((clause = params.classNames).length > 0)
+ for (var i = 0, length = clause.length; i < length; i++)
+ conditions.push('element.hasClassName(' + clause[i].inspect() + ')');
+ if (clause = params.attributes) {
+ clause.each(function(attribute) {
+ var value = 'element.readAttribute(' + attribute.name.inspect() + ')';
+ var splitValueBy = function(delimiter) {
+ return value + ' && ' + value + '.split(' + delimiter.inspect() + ')';
+ }
+
+ switch (attribute.operator) {
+ case '=': conditions.push(value + ' == ' + attribute.value.inspect()); break;
+ case '~=': conditions.push(splitValueBy(' ') + '.include(' + attribute.value.inspect() + ')'); break;
+ case '|=': conditions.push(
+ splitValueBy('-') + '.first().toUpperCase() == ' + attribute.value.toUpperCase().inspect()
+ ); break;
+ case '!=': conditions.push(value + ' != ' + attribute.value.inspect()); break;
+ case '':
+ case undefined: conditions.push('element.hasAttribute(' + attribute.name.inspect() + ')'); break;
+ default: throw 'Unknown operator ' + attribute.operator + ' in selector';
+ }
+ });
+ }
+
+ return conditions.join(' && ');
+ },
+
+ compileMatcher: function() {
+ this.match = new Function('element', 'if (!element.tagName) return false; \
+ element = $(element); \
+ return ' + this.buildMatchExpression());
+ },
+
+ findElements: function(scope) {
+ var element;
+
+ if (element = $(this.params.id))
+ if (this.match(element))
+ if (!scope || Element.childOf(element, scope))
+ return [element];
+
+ scope = (scope || document).getElementsByTagName(this.params.tagName || '*');
+
+ var results = [];
+ for (var i = 0, length = scope.length; i < length; i++)
+ if (this.match(element = scope[i]))
+ results.push(Element.extend(element));
+
+ return results;
+ },
+
+ toString: function() {
+ return this.expression;
+ }
+}
+
+Object.extend(Selector, {
+ matchElements: function(elements, expression) {
+ var selector = new Selector(expression);
+ return elements.select(selector.match.bind(selector)).map(Element.extend);
+ },
+
+ findElement: function(elements, expression, index) {
+ if (typeof expression == 'number') index = expression, expression = false;
+ return Selector.matchElements(elements, expression || '*')[index || 0];
+ },
+
+ findChildElements: function(element, expressions) {
+ return expressions.map(function(expression) {
+ return expression.match(/[^\s"]+(?:"[^"]*"[^\s"]+)*/g).inject([null], function(results, expr) {
+ var selector = new Selector(expr);
+ return results.inject([], function(elements, result) {
+ return elements.concat(selector.findElements(result || element));
+ });
+ });
+ }).flatten();
+ }
+});
+
+function $$() {
+ return Selector.findChildElements(document, $A(arguments));
+}
+var Form = {
+ reset: function(form) {
+ $(form).reset();
+ return form;
+ },
+
+ serializeElements: function(elements, getHash) {
+ var data = elements.inject({}, function(result, element) {
+ if (!element.disabled && element.name) {
+ var key = element.name, value = $(element).getValue();
+ if (value != undefined) {
+ if (result[key]) {
+ if (result[key].constructor != Array) result[key] = [result[key]];
+ result[key].push(value);
+ }
+ else result[key] = value;
+ }
+ }
+ return result;
+ });
+
+ return getHash ? data : Hash.toQueryString(data);
+ }
+};
+
+Form.Methods = {
+ serialize: function(form, getHash) {
+ return Form.serializeElements(Form.getElements(form), getHash);
+ },
+
+ getElements: function(form) {
+ return $A($(form).getElementsByTagName('*')).inject([],
+ function(elements, child) {
+ if (Form.Element.Serializers[child.tagName.toLowerCase()])
+ elements.push(Element.extend(child));
+ return elements;
+ }
+ );
+ },
+
+ getInputs: function(form, typeName, name) {
+ form = $(form);
+ var inputs = form.getElementsByTagName('input');
+
+ if (!typeName && !name) return $A(inputs).map(Element.extend);
+
+ for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
+ var input = inputs[i];
+ if ((typeName && input.type != typeName) || (name && input.name != name))
+ continue;
+ matchingInputs.push(Element.extend(input));
+ }
+
+ return matchingInputs;
+ },
+
+ disable: function(form) {
+ form = $(form);
+ form.getElements().each(function(element) {
+ element.blur();
+ element.disabled = 'true';
+ });
+ return form;
+ },
+
+ enable: function(form) {
+ form = $(form);
+ form.getElements().each(function(element) {
+ element.disabled = '';
+ });
+ return form;
+ },
+
+ findFirstElement: function(form) {
+ return $(form).getElements().find(function(element) {
+ return element.type != 'hidden' && !element.disabled &&
+ ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
+ });
+ },
+
+ focusFirstElement: function(form) {
+ form = $(form);
+ form.findFirstElement().activate();
+ return form;
+ }
+}
+
+Object.extend(Form, Form.Methods);
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element = {
+ focus: function(element) {
+ $(element).focus();
+ return element;
+ },
+
+ select: function(element) {
+ $(element).select();
+ return element;
+ }
+}
+
+Form.Element.Methods = {
+ serialize: function(element) {
+ element = $(element);
+ if (!element.disabled && element.name) {
+ var value = element.getValue();
+ if (value != undefined) {
+ var pair = {};
+ pair[element.name] = value;
+ return Hash.toQueryString(pair);
+ }
+ }
+ return '';
+ },
+
+ getValue: function(element) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ return Form.Element.Serializers[method](element);
+ },
+
+ clear: function(element) {
+ $(element).value = '';
+ return element;
+ },
+
+ present: function(element) {
+ return $(element).value != '';
+ },
+
+ activate: function(element) {
+ element = $(element);
+ element.focus();
+ if (element.select && ( element.tagName.toLowerCase() != 'input' ||
+ !['button', 'reset', 'submit'].include(element.type) ) )
+ element.select();
+ return element;
+ },
+
+ disable: function(element) {
+ element = $(element);
+ element.disabled = true;
+ return element;
+ },
+
+ enable: function(element) {
+ element = $(element);
+ element.blur();
+ element.disabled = false;
+ return element;
+ }
+}
+
+Object.extend(Form.Element, Form.Element.Methods);
+var Field = Form.Element;
+var $F = Form.Element.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element.Serializers = {
+ input: function(element) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ return Form.Element.Serializers.inputSelector(element);
+ default:
+ return Form.Element.Serializers.textarea(element);
+ }
+ },
+
+ inputSelector: function(element) {
+ return element.checked ? element.value : null;
+ },
+
+ textarea: function(element) {
+ return element.value;
+ },
+
+ select: function(element) {
+ return this[element.type == 'select-one' ?
+ 'selectOne' : 'selectMany'](element);
+ },
+
+ selectOne: function(element) {
+ var index = element.selectedIndex;
+ return index >= 0 ? this.optionValue(element.options[index]) : null;
+ },
+
+ selectMany: function(element) {
+ var values, length = element.length;
+ if (!length) return null;
+
+ for (var i = 0, values = []; i < length; i++) {
+ var opt = element.options[i];
+ if (opt.selected) values.push(this.optionValue(opt));
+ }
+ return values;
+ },
+
+ optionValue: function(opt) {
+ // extend element because hasAttribute may not be native
+ return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.TimedObserver = function() {}
+Abstract.TimedObserver.prototype = {
+ initialize: function(element, frequency, callback) {
+ this.frequency = frequency;
+ this.element = $(element);
+ this.callback = callback;
+
+ this.lastValue = this.getValue();
+ this.registerCallback();
+ },
+
+ registerCallback: function() {
+ setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+ },
+
+ onTimerEvent: function() {
+ var value = this.getValue();
+ var changed = ('string' == typeof this.lastValue && 'string' == typeof value
+ ? this.lastValue != value : String(this.lastValue) != String(value));
+ if (changed) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ }
+}
+
+Form.Element.Observer = Class.create();
+Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.Observer = Class.create();
+Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = function() {}
+Abstract.EventObserver.prototype = {
+ initialize: function(element, callback) {
+ this.element = $(element);
+ this.callback = callback;
+
+ this.lastValue = this.getValue();
+ if (this.element.tagName.toLowerCase() == 'form')
+ this.registerFormCallbacks();
+ else
+ this.registerCallback(this.element);
+ },
+
+ onElementEvent: function() {
+ var value = this.getValue();
+ if (this.lastValue != value) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ },
+
+ registerFormCallbacks: function() {
+ Form.getElements(this.element).each(this.registerCallback.bind(this));
+ },
+
+ registerCallback: function(element) {
+ if (element.type) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ Event.observe(element, 'click', this.onElementEvent.bind(this));
+ break;
+ default:
+ Event.observe(element, 'change', this.onElementEvent.bind(this));
+ break;
+ }
+ }
+ }
+}
+
+Form.Element.EventObserver = Class.create();
+Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.EventObserver = Class.create();
+Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+if (!window.Event) {
+ var Event = new Object();
+}
+
+Object.extend(Event, {
+ KEY_BACKSPACE: 8,
+ KEY_TAB: 9,
+ KEY_RETURN: 13,
+ KEY_ESC: 27,
+ KEY_LEFT: 37,
+ KEY_UP: 38,
+ KEY_RIGHT: 39,
+ KEY_DOWN: 40,
+ KEY_DELETE: 46,
+ KEY_HOME: 36,
+ KEY_END: 35,
+ KEY_PAGEUP: 33,
+ KEY_PAGEDOWN: 34,
+
+ element: function(event) {
+ return event.target || event.srcElement;
+ },
+
+ isLeftClick: function(event) {
+ return (((event.which) && (event.which == 1)) ||
+ ((event.button) && (event.button == 1)));
+ },
+
+ pointerX: function(event) {
+ return event.pageX || (event.clientX +
+ (document.documentElement.scrollLeft || document.body.scrollLeft));
+ },
+
+ pointerY: function(event) {
+ return event.pageY || (event.clientY +
+ (document.documentElement.scrollTop || document.body.scrollTop));
+ },
+
+ stop: function(event) {
+ if (event.preventDefault) {
+ event.preventDefault();
+ event.stopPropagation();
+ } else {
+ event.returnValue = false;
+ event.cancelBubble = true;
+ }
+ },
+
+ // find the first node with the given tagName, starting from the
+ // node the event was triggered on; traverses the DOM upwards
+ findElement: function(event, tagName) {
+ var element = Event.element(event);
+ while (element.parentNode && (!element.tagName ||
+ (element.tagName.toUpperCase() != tagName.toUpperCase())))
+ element = element.parentNode;
+ return element;
+ },
+
+ observers: false,
+
+ _observeAndCache: function(element, name, observer, useCapture) {
+ if (!this.observers) this.observers = [];
+ if (element.addEventListener) {
+ this.observers.push([element, name, observer, useCapture]);
+ element.addEventListener(name, observer, useCapture);
+ } else if (element.attachEvent) {
+ this.observers.push([element, name, observer, useCapture]);
+ element.attachEvent('on' + name, observer);
+ }
+ },
+
+ unloadCache: function() {
+ if (!Event.observers) return;
+ for (var i = 0, length = Event.observers.length; i < length; i++) {
+ Event.stopObserving.apply(this, Event.observers[i]);
+ Event.observers[i][0] = null;
+ }
+ Event.observers = false;
+ },
+
+ observe: function(element, name, observer, useCapture) {
+ element = $(element);
+ useCapture = useCapture || false;
+
+ if (name == 'keypress' &&
+ (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
+ || element.attachEvent))
+ name = 'keydown';
+
+ Event._observeAndCache(element, name, observer, useCapture);
+ },
+
+ stopObserving: function(element, name, observer, useCapture) {
+ element = $(element);
+ useCapture = useCapture || false;
+
+ if (name == 'keypress' &&
+ (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
+ || element.detachEvent))
+ name = 'keydown';
+
+ if (element.removeEventListener) {
+ element.removeEventListener(name, observer, useCapture);
+ } else if (element.detachEvent) {
+ try {
+ element.detachEvent('on' + name, observer);
+ } catch (e) {}
+ }
+ }
+});
+
+/* prevent memory leaks in IE */
+if (navigator.appVersion.match(/\bMSIE\b/))
+ Event.observe(window, 'unload', Event.unloadCache, false);
+var Position = {
+ // set to true if needed, warning: firefox performance problems
+ // NOT neeeded for page scrolling, only if draggable contained in
+ // scrollable elements
+ includeScrollOffsets: false,
+
+ // must be called before calling withinIncludingScrolloffset, every time the
+ // page is scrolled
+ prepare: function() {
+ this.deltaX = window.pageXOffset
+ || document.documentElement.scrollLeft
+ || document.body.scrollLeft
+ || 0;
+ this.deltaY = window.pageYOffset
+ || document.documentElement.scrollTop
+ || document.body.scrollTop
+ || 0;
+ },
+
+ realOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.scrollTop || 0;
+ valueL += element.scrollLeft || 0;
+ element = element.parentNode;
+ } while (element);
+ return [valueL, valueT];
+ },
+
+ cumulativeOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ } while (element);
+ return [valueL, valueT];
+ },
+
+ positionedOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ if (element) {
+ if(element.tagName=='BODY') break;
+ var p = Element.getStyle(element, 'position');
+ if (p == 'relative' || p == 'absolute') break;
+ }
+ } while (element);
+ return [valueL, valueT];
+ },
+
+ offsetParent: function(element) {
+ if (element.offsetParent) return element.offsetParent;
+ if (element == document.body) return element;
+
+ while ((element = element.parentNode) && element != document.body)
+ if (Element.getStyle(element, 'position') != 'static')
+ return element;
+
+ return document.body;
+ },
+
+ // caches x/y coordinate pair to use with overlap
+ within: function(element, x, y) {
+ if (this.includeScrollOffsets)
+ return this.withinIncludingScrolloffsets(element, x, y);
+ this.xcomp = x;
+ this.ycomp = y;
+ this.offset = this.cumulativeOffset(element);
+
+ return (y >= this.offset[1] &&
+ y < this.offset[1] + element.offsetHeight &&
+ x >= this.offset[0] &&
+ x < this.offset[0] + element.offsetWidth);
+ },
+
+ withinIncludingScrolloffsets: function(element, x, y) {
+ var offsetcache = this.realOffset(element);
+
+ this.xcomp = x + offsetcache[0] - this.deltaX;
+ this.ycomp = y + offsetcache[1] - this.deltaY;
+ this.offset = this.cumulativeOffset(element);
+
+ return (this.ycomp >= this.offset[1] &&
+ this.ycomp < this.offset[1] + element.offsetHeight &&
+ this.xcomp >= this.offset[0] &&
+ this.xcomp < this.offset[0] + element.offsetWidth);
+ },
+
+ // within must be called directly before
+ overlap: function(mode, element) {
+ if (!mode) return 0;
+ if (mode == 'vertical')
+ return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+ element.offsetHeight;
+ if (mode == 'horizontal')
+ return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+ element.offsetWidth;
+ },
+
+ page: function(forElement) {
+ var valueT = 0, valueL = 0;
+
+ var element = forElement;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+
+ // Safari fix
+ if (element.offsetParent==document.body)
+ if (Element.getStyle(element,'position')=='absolute') break;
+
+ } while (element = element.offsetParent);
+
+ element = forElement;
+ do {
+ if (!window.opera || element.tagName=='BODY') {
+ valueT -= element.scrollTop || 0;
+ valueL -= element.scrollLeft || 0;
+ }
+ } while (element = element.parentNode);
+
+ return [valueL, valueT];
+ },
+
+ clone: function(source, target) {
+ var options = Object.extend({
+ setLeft: true,
+ setTop: true,
+ setWidth: true,
+ setHeight: true,
+ offsetTop: 0,
+ offsetLeft: 0
+ }, arguments[2] || {})
+
+ // find page position of source
+ source = $(source);
+ var p = Position.page(source);
+
+ // find coordinate system to use
+ target = $(target);
+ var delta = [0, 0];
+ var parent = null;
+ // delta [0,0] will do fine with position: fixed elements,
+ // position:absolute needs offsetParent deltas
+ if (Element.getStyle(target,'position') == 'absolute') {
+ parent = Position.offsetParent(target);
+ delta = Position.page(parent);
+ }
+
+ // correct by body offsets (fixes Safari)
+ if (parent == document.body) {
+ delta[0] -= document.body.offsetLeft;
+ delta[1] -= document.body.offsetTop;
+ }
+
+ // set position
+ if(options.setLeft) target.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px';
+ if(options.setTop) target.style.top = (p[1] - delta[1] + options.offsetTop) + 'px';
+ if(options.setWidth) target.style.width = source.offsetWidth + 'px';
+ if(options.setHeight) target.style.height = source.offsetHeight + 'px';
+ },
+
+ absolutize: function(element) {
+ element = $(element);
+ if (element.style.position == 'absolute') return;
+ Position.prepare();
+
+ var offsets = Position.positionedOffset(element);
+ var top = offsets[1];
+ var left = offsets[0];
+ var width = element.clientWidth;
+ var height = element.clientHeight;
+
+ element._originalLeft = left - parseFloat(element.style.left || 0);
+ element._originalTop = top - parseFloat(element.style.top || 0);
+ element._originalWidth = element.style.width;
+ element._originalHeight = element.style.height;
+
+ element.style.position = 'absolute';
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.width = width + 'px';
+ element.style.height = height + 'px';
+ },
+
+ relativize: function(element) {
+ element = $(element);
+ if (element.style.position == 'relative') return;
+ Position.prepare();
+
+ element.style.position = 'relative';
+ var top = parseFloat(element.style.top || 0) - (element._originalTop || 0);
+ var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
+
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.height = element._originalHeight;
+ element.style.width = element._originalWidth;
+ }
+}
+
+// Safari returns margins on body which is incorrect if the child is absolutely
+// positioned. For performance reasons, redefine Position.cumulativeOffset for
+// KHTML/WebKit only.
+if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
+ Position.cumulativeOffset = function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ if (element.offsetParent == document.body)
+ if (Element.getStyle(element, 'position') == 'absolute') break;
+
+ element = element.offsetParent;
+ } while (element);
+
+ return [valueL, valueT];
+ }
+}
+
+Element.addMethods();
+
+
+// ------------------------------------------------------------------------
+// ------------------------------------------------------------------------
+
+// The rest of this file is the actual ray tracer written by Adam
+// Burmister. It's a concatenation of the following files:
+//
+// flog/color.js
+// flog/light.js
+// flog/vector.js
+// flog/ray.js
+// flog/scene.js
+// flog/material/basematerial.js
+// flog/material/solid.js
+// flog/material/chessboard.js
+// flog/shape/baseshape.js
+// flog/shape/sphere.js
+// flog/shape/plane.js
+// flog/intersectioninfo.js
+// flog/camera.js
+// flog/background.js
+// flog/engine.js
+
+
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Color = Class.create();
+
+Flog.RayTracer.Color.prototype = {
+ red : 0.0,
+ green : 0.0,
+ blue : 0.0,
+
+ initialize : function(r, g, b) {
+ if(!r) r = 0.0;
+ if(!g) g = 0.0;
+ if(!b) b = 0.0;
+
+ this.red = r;
+ this.green = g;
+ this.blue = b;
+ },
+
+ add : function(c1, c2){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red + c2.red;
+ result.green = c1.green + c2.green;
+ result.blue = c1.blue + c2.blue;
+
+ return result;
+ },
+
+ addScalar: function(c1, s){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red + s;
+ result.green = c1.green + s;
+ result.blue = c1.blue + s;
+
+ result.limit();
+
+ return result;
+ },
+
+ subtract: function(c1, c2){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red - c2.red;
+ result.green = c1.green - c2.green;
+ result.blue = c1.blue - c2.blue;
+
+ return result;
+ },
+
+ multiply : function(c1, c2) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red * c2.red;
+ result.green = c1.green * c2.green;
+ result.blue = c1.blue * c2.blue;
+
+ return result;
+ },
+
+ multiplyScalar : function(c1, f) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red * f;
+ result.green = c1.green * f;
+ result.blue = c1.blue * f;
+
+ return result;
+ },
+
+ divideFactor : function(c1, f) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red / f;
+ result.green = c1.green / f;
+ result.blue = c1.blue / f;
+
+ return result;
+ },
+
+ limit: function(){
+ this.red = (this.red > 0.0) ? ( (this.red > 1.0) ? 1.0 : this.red ) : 0.0;
+ this.green = (this.green > 0.0) ? ( (this.green > 1.0) ? 1.0 : this.green ) : 0.0;
+ this.blue = (this.blue > 0.0) ? ( (this.blue > 1.0) ? 1.0 : this.blue ) : 0.0;
+ },
+
+ distance : function(color) {
+ var d = Math.abs(this.red - color.red) + Math.abs(this.green - color.green) + Math.abs(this.blue - color.blue);
+ return d;
+ },
+
+ blend: function(c1, c2, w){
+ var result = new Flog.RayTracer.Color(0,0,0);
+ result = Flog.RayTracer.Color.prototype.add(
+ Flog.RayTracer.Color.prototype.multiplyScalar(c1, 1 - w),
+ Flog.RayTracer.Color.prototype.multiplyScalar(c2, w)
+ );
+ return result;
+ },
+
+ brightness : function() {
+ var r = Math.floor(this.red*255);
+ var g = Math.floor(this.green*255);
+ var b = Math.floor(this.blue*255);
+ return (r * 77 + g * 150 + b * 29) >> 8;
+ },
+
+ toString : function () {
+ var r = Math.floor(this.red*255);
+ var g = Math.floor(this.green*255);
+ var b = Math.floor(this.blue*255);
+
+ return "rgb("+ r +","+ g +","+ b +")";
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Light = Class.create();
+
+Flog.RayTracer.Light.prototype = {
+ position: null,
+ color: null,
+ intensity: 10.0,
+
+ initialize : function(pos, color, intensity) {
+ this.position = pos;
+ this.color = color;
+ this.intensity = (intensity ? intensity : 10.0);
+ },
+
+ getIntensity: function(distance){
+ if(distance >= intensity) return 0;
+
+ return Math.pow((intensity - distance) / strength, 0.2);
+ },
+
+ toString : function () {
+ return 'Light [' + this.position.x + ',' + this.position.y + ',' + this.position.z + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Vector = Class.create();
+
+Flog.RayTracer.Vector.prototype = {
+ x : 0.0,
+ y : 0.0,
+ z : 0.0,
+
+ initialize : function(x, y, z) {
+ this.x = (x ? x : 0);
+ this.y = (y ? y : 0);
+ this.z = (z ? z : 0);
+ },
+
+ copy: function(vector){
+ this.x = vector.x;
+ this.y = vector.y;
+ this.z = vector.z;
+ },
+
+ normalize : function() {
+ var m = this.magnitude();
+ return new Flog.RayTracer.Vector(this.x / m, this.y / m, this.z / m);
+ },
+
+ magnitude : function() {
+ return Math.sqrt((this.x * this.x) + (this.y * this.y) + (this.z * this.z));
+ },
+
+ cross : function(w) {
+ return new Flog.RayTracer.Vector(
+ -this.z * w.y + this.y * w.z,
+ this.z * w.x - this.x * w.z,
+ -this.y * w.x + this.x * w.y);
+ },
+
+ dot : function(w) {
+ return this.x * w.x + this.y * w.y + this.z * w.z;
+ },
+
+ add : function(v, w) {
+ return new Flog.RayTracer.Vector(w.x + v.x, w.y + v.y, w.z + v.z);
+ },
+
+ subtract : function(v, w) {
+ if(!w || !v) throw 'Vectors must be defined [' + v + ',' + w + ']';
+ return new Flog.RayTracer.Vector(v.x - w.x, v.y - w.y, v.z - w.z);
+ },
+
+ multiplyVector : function(v, w) {
+ return new Flog.RayTracer.Vector(v.x * w.x, v.y * w.y, v.z * w.z);
+ },
+
+ multiplyScalar : function(v, w) {
+ return new Flog.RayTracer.Vector(v.x * w, v.y * w, v.z * w);
+ },
+
+ toString : function () {
+ return 'Vector [' + this.x + ',' + this.y + ',' + this.z + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Ray = Class.create();
+
+Flog.RayTracer.Ray.prototype = {
+ position : null,
+ direction : null,
+ initialize : function(pos, dir) {
+ this.position = pos;
+ this.direction = dir;
+ },
+
+ toString : function () {
+ return 'Ray [' + this.position + ',' + this.direction + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Scene = Class.create();
+
+Flog.RayTracer.Scene.prototype = {
+ camera : null,
+ shapes : [],
+ lights : [],
+ background : null,
+
+ initialize : function() {
+ this.camera = new Flog.RayTracer.Camera(
+ new Flog.RayTracer.Vector(0,0,-5),
+ new Flog.RayTracer.Vector(0,0,1),
+ new Flog.RayTracer.Vector(0,1,0)
+ );
+ this.shapes = new Array();
+ this.lights = new Array();
+ this.background = new Flog.RayTracer.Background(new Flog.RayTracer.Color(0,0,0.5), 0.2);
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Material) == 'undefined') Flog.RayTracer.Material = {};
+
+Flog.RayTracer.Material.BaseMaterial = Class.create();
+
+Flog.RayTracer.Material.BaseMaterial.prototype = {
+
+ gloss: 2.0, // [0...infinity] 0 = matt
+ transparency: 0.0, // 0=opaque
+ reflection: 0.0, // [0...infinity] 0 = no reflection
+ refraction: 0.50,
+ hasTexture: false,
+
+ initialize : function() {
+
+ },
+
+ getColor: function(u, v){
+
+ },
+
+ wrapUp: function(t){
+ t = t % 2.0;
+ if(t < -1) t += 2.0;
+ if(t >= 1) t -= 2.0;
+ return t;
+ },
+
+ toString : function () {
+ return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Material.Solid = Class.create();
+
+Flog.RayTracer.Material.Solid.prototype = Object.extend(
+ new Flog.RayTracer.Material.BaseMaterial(), {
+ initialize : function(color, reflection, refraction, transparency, gloss) {
+ this.color = color;
+ this.reflection = reflection;
+ this.transparency = transparency;
+ this.gloss = gloss;
+ this.hasTexture = false;
+ },
+
+ getColor: function(u, v){
+ return this.color;
+ },
+
+ toString : function () {
+ return 'SolidMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+ }
+);
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Material.Chessboard = Class.create();
+
+Flog.RayTracer.Material.Chessboard.prototype = Object.extend(
+ new Flog.RayTracer.Material.BaseMaterial(), {
+ colorEven: null,
+ colorOdd: null,
+ density: 0.5,
+
+ initialize : function(colorEven, colorOdd, reflection, transparency, gloss, density) {
+ this.colorEven = colorEven;
+ this.colorOdd = colorOdd;
+ this.reflection = reflection;
+ this.transparency = transparency;
+ this.gloss = gloss;
+ this.density = density;
+ this.hasTexture = true;
+ },
+
+ getColor: function(u, v){
+ var t = this.wrapUp(u * this.density) * this.wrapUp(v * this.density);
+
+ if(t < 0.0)
+ return this.colorEven;
+ else
+ return this.colorOdd;
+ },
+
+ toString : function () {
+ return 'ChessMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+ }
+);
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.BaseShape = Class.create();
+
+Flog.RayTracer.Shape.BaseShape.prototype = {
+ position: null,
+ material: null,
+
+ initialize : function() {
+ this.position = new Vector(0,0,0);
+ this.material = new Flog.RayTracer.Material.SolidMaterial(
+ new Flog.RayTracer.Color(1,0,1),
+ 0,
+ 0,
+ 0
+ );
+ },
+
+ toString : function () {
+ return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.Sphere = Class.create();
+
+Flog.RayTracer.Shape.Sphere.prototype = {
+ initialize : function(pos, radius, material) {
+ this.radius = radius;
+ this.position = pos;
+ this.material = material;
+ },
+
+ intersect: function(ray){
+ var info = new Flog.RayTracer.IntersectionInfo();
+ info.shape = this;
+
+ var dst = Flog.RayTracer.Vector.prototype.subtract(ray.position, this.position);
+
+ var B = dst.dot(ray.direction);
+ var C = dst.dot(dst) - (this.radius * this.radius);
+ var D = (B * B) - C;
+
+ if(D > 0){ // intersection!
+ info.isHit = true;
+ info.distance = (-B) - Math.sqrt(D);
+ info.position = Flog.RayTracer.Vector.prototype.add(
+ ray.position,
+ Flog.RayTracer.Vector.prototype.multiplyScalar(
+ ray.direction,
+ info.distance
+ )
+ );
+ info.normal = Flog.RayTracer.Vector.prototype.subtract(
+ info.position,
+ this.position
+ ).normalize();
+
+ info.color = this.material.getColor(0,0);
+ } else {
+ info.isHit = false;
+ }
+ return info;
+ },
+
+ toString : function () {
+ return 'Sphere [position=' + this.position + ', radius=' + this.radius + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.Plane = Class.create();
+
+Flog.RayTracer.Shape.Plane.prototype = {
+ d: 0.0,
+
+ initialize : function(pos, d, material) {
+ this.position = pos;
+ this.d = d;
+ this.material = material;
+ },
+
+ intersect: function(ray){
+ var info = new Flog.RayTracer.IntersectionInfo();
+
+ var Vd = this.position.dot(ray.direction);
+ if(Vd == 0) return info; // no intersection
+
+ var t = -(this.position.dot(ray.position) + this.d) / Vd;
+ if(t <= 0) return info;
+
+ info.shape = this;
+ info.isHit = true;
+ info.position = Flog.RayTracer.Vector.prototype.add(
+ ray.position,
+ Flog.RayTracer.Vector.prototype.multiplyScalar(
+ ray.direction,
+ t
+ )
+ );
+ info.normal = this.position;
+ info.distance = t;
+
+ if(this.material.hasTexture){
+ var vU = new Flog.RayTracer.Vector(this.position.y, this.position.z, -this.position.x);
+ var vV = vU.cross(this.position);
+ var u = info.position.dot(vU);
+ var v = info.position.dot(vV);
+ info.color = this.material.getColor(u,v);
+ } else {
+ info.color = this.material.getColor(0,0);
+ }
+
+ return info;
+ },
+
+ toString : function () {
+ return 'Plane [' + this.position + ', d=' + this.d + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.IntersectionInfo = Class.create();
+
+Flog.RayTracer.IntersectionInfo.prototype = {
+ isHit: false,
+ hitCount: 0,
+ shape: null,
+ position: null,
+ normal: null,
+ color: null,
+ distance: null,
+
+ initialize : function() {
+ this.color = new Flog.RayTracer.Color(0,0,0);
+ },
+
+ toString : function () {
+ return 'Intersection [' + this.position + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Camera = Class.create();
+
+Flog.RayTracer.Camera.prototype = {
+ position: null,
+ lookAt: null,
+ equator: null,
+ up: null,
+ screen: null,
+
+ initialize : function(pos, lookAt, up) {
+ this.position = pos;
+ this.lookAt = lookAt;
+ this.up = up;
+ this.equator = lookAt.normalize().cross(this.up);
+ this.screen = Flog.RayTracer.Vector.prototype.add(this.position, this.lookAt);
+ },
+
+ getRay: function(vx, vy){
+ var pos = Flog.RayTracer.Vector.prototype.subtract(
+ this.screen,
+ Flog.RayTracer.Vector.prototype.subtract(
+ Flog.RayTracer.Vector.prototype.multiplyScalar(this.equator, vx),
+ Flog.RayTracer.Vector.prototype.multiplyScalar(this.up, vy)
+ )
+ );
+ pos.y = pos.y * -1;
+ var dir = Flog.RayTracer.Vector.prototype.subtract(
+ pos,
+ this.position
+ );
+
+ var ray = new Flog.RayTracer.Ray(pos, dir.normalize());
+
+ return ray;
+ },
+
+ toString : function () {
+ return 'Ray []';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Background = Class.create();
+
+Flog.RayTracer.Background.prototype = {
+ color : null,
+ ambience : 0.0,
+
+ initialize : function(color, ambience) {
+ this.color = color;
+ this.ambience = ambience;
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Engine = Class.create();
+
+Flog.RayTracer.Engine.prototype = {
+ canvas: null, /* 2d context we can render to */
+
+ initialize: function(options){
+ this.options = Object.extend({
+ canvasHeight: 100,
+ canvasWidth: 100,
+ pixelWidth: 2,
+ pixelHeight: 2,
+ renderDiffuse: false,
+ renderShadows: false,
+ renderHighlights: false,
+ renderReflections: false,
+ rayDepth: 2
+ }, options || {});
+
+ this.options.canvasHeight /= this.options.pixelHeight;
+ this.options.canvasWidth /= this.options.pixelWidth;
+
+ /* TODO: dynamically include other scripts */
+ },
+
+ setPixel: function(x, y, color){
+ var pxW, pxH;
+ pxW = this.options.pixelWidth;
+ pxH = this.options.pixelHeight;
+
+ if (this.canvas) {
+ this.canvas.fillStyle = color.toString();
+ this.canvas.fillRect (x * pxW, y * pxH, pxW, pxH);
+ } else {
+ if (x === y) {
+ checkNumber += color.brightness();
+ }
+ // print(x * pxW, y * pxH, pxW, pxH);
+ }
+ },
+
+ renderScene: function(scene, canvas){
+ checkNumber = 0;
+ /* Get canvas */
+ if (canvas) {
+ this.canvas = canvas.getContext("2d");
+ } else {
+ this.canvas = null;
+ }
+
+ var canvasHeight = this.options.canvasHeight;
+ var canvasWidth = this.options.canvasWidth;
+
+ for(var y=0; y < canvasHeight; y++){
+ for(var x=0; x < canvasWidth; x++){
+ var yp = y * 1.0 / canvasHeight * 2 - 1;
+ var xp = x * 1.0 / canvasWidth * 2 - 1;
+
+ var ray = scene.camera.getRay(xp, yp);
+
+ var color = this.getPixelColor(ray, scene);
+
+ this.setPixel(x, y, color);
+ }
+ }
+ if (checkNumber !== 2321) {
+ throw new Error("Scene rendered incorrectly");
+ }
+ },
+
+ getPixelColor: function(ray, scene){
+ var info = this.testIntersection(ray, scene, null);
+ if(info.isHit){
+ var color = this.rayTrace(info, ray, scene, 0);
+ return color;
+ }
+ return scene.background.color;
+ },
+
+ testIntersection: function(ray, scene, exclude){
+ var hits = 0;
+ var best = new Flog.RayTracer.IntersectionInfo();
+ best.distance = 2000;
+
+ for(var i=0; i<scene.shapes.length; i++){
+ var shape = scene.shapes[i];
+
+ if(shape != exclude){
+ var info = shape.intersect(ray);
+ if(info.isHit && info.distance >= 0 && info.distance < best.distance){
+ best = info;
+ hits++;
+ }
+ }
+ }
+ best.hitCount = hits;
+ return best;
+ },
+
+ getReflectionRay: function(P,N,V){
+ var c1 = -N.dot(V);
+ var R1 = Flog.RayTracer.Vector.prototype.add(
+ Flog.RayTracer.Vector.prototype.multiplyScalar(N, 2*c1),
+ V
+ );
+ return new Flog.RayTracer.Ray(P, R1);
+ },
+
+ rayTrace: function(info, ray, scene, depth){
+ // Calc ambient
+ var color = Flog.RayTracer.Color.prototype.multiplyScalar(info.color, scene.background.ambience);
+ var oldColor = color;
+ var shininess = Math.pow(10, info.shape.material.gloss + 1);
+
+ for(var i=0; i<scene.lights.length; i++){
+ var light = scene.lights[i];
+
+ // Calc diffuse lighting
+ var v = Flog.RayTracer.Vector.prototype.subtract(
+ light.position,
+ info.position
+ ).normalize();
+
+ if(this.options.renderDiffuse){
+ var L = v.dot(info.normal);
+ if(L > 0.0){
+ color = Flog.RayTracer.Color.prototype.add(
+ color,
+ Flog.RayTracer.Color.prototype.multiply(
+ info.color,
+ Flog.RayTracer.Color.prototype.multiplyScalar(
+ light.color,
+ L
+ )
+ )
+ );
+ }
+ }
+
+ // The greater the depth the more accurate the colours, but
+ // this is exponentially (!) expensive
+ if(depth <= this.options.rayDepth){
+ // calculate reflection ray
+ if(this.options.renderReflections && info.shape.material.reflection > 0)
+ {
+ var reflectionRay = this.getReflectionRay(info.position, info.normal, ray.direction);
+ var refl = this.testIntersection(reflectionRay, scene, info.shape);
+
+ if (refl.isHit && refl.distance > 0){
+ refl.color = this.rayTrace(refl, reflectionRay, scene, depth + 1);
+ } else {
+ refl.color = scene.background.color;
+ }
+
+ color = Flog.RayTracer.Color.prototype.blend(
+ color,
+ refl.color,
+ info.shape.material.reflection
+ );
+ }
+
+ // Refraction
+ /* TODO */
+ }
+
+ /* Render shadows and highlights */
+
+ var shadowInfo = new Flog.RayTracer.IntersectionInfo();
+
+ if(this.options.renderShadows){
+ var shadowRay = new Flog.RayTracer.Ray(info.position, v);
+
+ shadowInfo = this.testIntersection(shadowRay, scene, info.shape);
+ if(shadowInfo.isHit && shadowInfo.shape != info.shape /*&& shadowInfo.shape.type != 'PLANE'*/){
+ var vA = Flog.RayTracer.Color.prototype.multiplyScalar(color, 0.5);
+ var dB = (0.5 * Math.pow(shadowInfo.shape.material.transparency, 0.5));
+ color = Flog.RayTracer.Color.prototype.addScalar(vA,dB);
+ }
+ }
+
+ // Phong specular highlights
+ if(this.options.renderHighlights && !shadowInfo.isHit && info.shape.material.gloss > 0){
+ var Lv = Flog.RayTracer.Vector.prototype.subtract(
+ info.shape.position,
+ light.position
+ ).normalize();
+
+ var E = Flog.RayTracer.Vector.prototype.subtract(
+ scene.camera.position,
+ info.shape.position
+ ).normalize();
+
+ var H = Flog.RayTracer.Vector.prototype.subtract(
+ E,
+ Lv
+ ).normalize();
+
+ var glossWeight = Math.pow(Math.max(info.normal.dot(H), 0), shininess);
+ color = Flog.RayTracer.Color.prototype.add(
+ Flog.RayTracer.Color.prototype.multiplyScalar(light.color, glossWeight),
+ color
+ );
+ }
+ }
+ color.limit();
+ return color;
+ }
+};
+
+
+function renderScene(){
+ var scene = new Flog.RayTracer.Scene();
+
+ scene.camera = new Flog.RayTracer.Camera(
+ new Flog.RayTracer.Vector(0, 0, -15),
+ new Flog.RayTracer.Vector(-0.2, 0, 5),
+ new Flog.RayTracer.Vector(0, 1, 0)
+ );
+
+ scene.background = new Flog.RayTracer.Background(
+ new Flog.RayTracer.Color(0.5, 0.5, 0.5),
+ 0.4
+ );
+
+ var sphere = new Flog.RayTracer.Shape.Sphere(
+ new Flog.RayTracer.Vector(-1.5, 1.5, 2),
+ 1.5,
+ new Flog.RayTracer.Material.Solid(
+ new Flog.RayTracer.Color(0,0.5,0.5),
+ 0.3,
+ 0.0,
+ 0.0,
+ 2.0
+ )
+ );
+
+ var sphere1 = new Flog.RayTracer.Shape.Sphere(
+ new Flog.RayTracer.Vector(1, 0.25, 1),
+ 0.5,
+ new Flog.RayTracer.Material.Solid(
+ new Flog.RayTracer.Color(0.9,0.9,0.9),
+ 0.1,
+ 0.0,
+ 0.0,
+ 1.5
+ )
+ );
+
+ var plane = new Flog.RayTracer.Shape.Plane(
+ new Flog.RayTracer.Vector(0.1, 0.9, -0.5).normalize(),
+ 1.2,
+ new Flog.RayTracer.Material.Chessboard(
+ new Flog.RayTracer.Color(1,1,1),
+ new Flog.RayTracer.Color(0,0,0),
+ 0.2,
+ 0.0,
+ 1.0,
+ 0.7
+ )
+ );
+
+ scene.shapes.push(plane);
+ scene.shapes.push(sphere);
+ scene.shapes.push(sphere1);
+
+ var light = new Flog.RayTracer.Light(
+ new Flog.RayTracer.Vector(5, 10, -1),
+ new Flog.RayTracer.Color(0.8, 0.8, 0.8)
+ );
+
+ var light1 = new Flog.RayTracer.Light(
+ new Flog.RayTracer.Vector(-3, 5, -15),
+ new Flog.RayTracer.Color(0.8, 0.8, 0.8),
+ 100
+ );
+
+ scene.lights.push(light);
+ scene.lights.push(light1);
+
+ var imageWidth = 100; // $F('imageWidth');
+ var imageHeight = 100; // $F('imageHeight');
+ var pixelSize = "5,5".split(','); // $F('pixelSize').split(',');
+ var renderDiffuse = true; // $F('renderDiffuse');
+ var renderShadows = true; // $F('renderShadows');
+ var renderHighlights = true; // $F('renderHighlights');
+ var renderReflections = true; // $F('renderReflections');
+ var rayDepth = 2;//$F('rayDepth');
+
+ var raytracer = new Flog.RayTracer.Engine(
+ {
+ canvasWidth: imageWidth,
+ canvasHeight: imageHeight,
+ pixelWidth: pixelSize[0],
+ pixelHeight: pixelSize[1],
+ "renderDiffuse": renderDiffuse,
+ "renderHighlights": renderHighlights,
+ "renderShadows": renderShadows,
+ "renderReflections": renderReflections,
+ "rayDepth": rayDepth
+ }
+ );
+
+ raytracer.renderScene(scene, null, 0);
+}
+
+window.onload = function(){
+startTest("v8-raytrace", '39e09d10');
+
+test("RayTrace", renderScene);
+
+endTest();
+};
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-richards.html b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-richards.html
new file mode 100644
index 000000000..9d1a5a847
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/tests/v8-richards.html
@@ -0,0 +1,549 @@
+<html>
+<head>
+<script src="../htmlrunner.js"></script>
+<script>
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+// This is a JavaScript implementation of the Richards
+// benchmark from:
+//
+// http://www.cl.cam.ac.uk/~mr10/Bench.html
+//
+// The benchmark was originally implemented in BCPL by
+// Martin Richards.
+
+
+window.onload = function(){ startTest("v8-richards", 'ca0410e0');
+
+test("Richards", runRichards);
+
+endTest(); };
+
+
+/**
+ * The Richards benchmark simulates the task dispatcher of an
+ * operating system.
+ **/
+function runRichards() {
+ var scheduler = new Scheduler();
+ scheduler.addIdleTask(ID_IDLE, 0, null, COUNT);
+
+ var queue = new Packet(null, ID_WORKER, KIND_WORK);
+ queue = new Packet(queue, ID_WORKER, KIND_WORK);
+ scheduler.addWorkerTask(ID_WORKER, 1000, queue);
+
+ queue = new Packet(null, ID_DEVICE_A, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE);
+ scheduler.addHandlerTask(ID_HANDLER_A, 2000, queue);
+
+ queue = new Packet(null, ID_DEVICE_B, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE);
+ scheduler.addHandlerTask(ID_HANDLER_B, 3000, queue);
+
+ scheduler.addDeviceTask(ID_DEVICE_A, 4000, null);
+
+ scheduler.addDeviceTask(ID_DEVICE_B, 5000, null);
+
+ scheduler.schedule();
+
+ if (scheduler.queueCount != EXPECTED_QUEUE_COUNT ||
+ scheduler.holdCount != EXPECTED_HOLD_COUNT) {
+ var msg =
+ "Error during execution: queueCount = " + scheduler.queueCount +
+ ", holdCount = " + scheduler.holdCount + ".";
+ throw new Error(msg);
+ }
+}
+
+var COUNT = 1000;
+
+/**
+ * These two constants specify how many times a packet is queued and
+ * how many times a task is put on hold in a correct run of richards.
+ * They don't have any meaning a such but are characteristic of a
+ * correct run so if the actual queue or hold count is different from
+ * the expected there must be a bug in the implementation.
+ **/
+var EXPECTED_QUEUE_COUNT = 2322;
+var EXPECTED_HOLD_COUNT = 928;
+
+
+/**
+ * A scheduler can be used to schedule a set of tasks based on their relative
+ * priorities. Scheduling is done by maintaining a list of task control blocks
+ * which holds tasks and the data queue they are processing.
+ * @constructor
+ */
+function Scheduler() {
+ this.queueCount = 0;
+ this.holdCount = 0;
+ this.blocks = new Array(NUMBER_OF_IDS);
+ this.list = null;
+ this.currentTcb = null;
+ this.currentId = null;
+}
+
+var ID_IDLE = 0;
+var ID_WORKER = 1;
+var ID_HANDLER_A = 2;
+var ID_HANDLER_B = 3;
+var ID_DEVICE_A = 4;
+var ID_DEVICE_B = 5;
+var NUMBER_OF_IDS = 6;
+
+var KIND_DEVICE = 0;
+var KIND_WORK = 1;
+
+/**
+ * Add an idle task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {int} count the number of times to schedule the task
+ */
+Scheduler.prototype.addIdleTask = function (id, priority, queue, count) {
+ this.addRunningTask(id, priority, queue, new IdleTask(this, 1, count));
+};
+
+/**
+ * Add a work task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addWorkerTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new WorkerTask(this, ID_HANDLER_A, 0));
+};
+
+/**
+ * Add a handler task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addHandlerTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new HandlerTask(this));
+};
+
+/**
+ * Add a handler task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addDeviceTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new DeviceTask(this))
+};
+
+/**
+ * Add the specified task and mark it as running.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {Task} task the task to add
+ */
+Scheduler.prototype.addRunningTask = function (id, priority, queue, task) {
+ this.addTask(id, priority, queue, task);
+ this.currentTcb.setRunning();
+};
+
+/**
+ * Add the specified task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {Task} task the task to add
+ */
+Scheduler.prototype.addTask = function (id, priority, queue, task) {
+ this.currentTcb = new TaskControlBlock(this.list, id, priority, queue, task);
+ this.list = this.currentTcb;
+ this.blocks[id] = this.currentTcb;
+};
+
+/**
+ * Execute the tasks managed by this scheduler.
+ */
+Scheduler.prototype.schedule = function () {
+ this.currentTcb = this.list;
+ while (this.currentTcb != null) {
+ if (this.currentTcb.isHeldOrSuspended()) {
+ this.currentTcb = this.currentTcb.link;
+ } else {
+ this.currentId = this.currentTcb.id;
+ this.currentTcb = this.currentTcb.run();
+ }
+ }
+};
+
+/**
+ * Release a task that is currently blocked and return the next block to run.
+ * @param {int} id the id of the task to suspend
+ */
+Scheduler.prototype.release = function (id) {
+ var tcb = this.blocks[id];
+ if (tcb == null) return tcb;
+ tcb.markAsNotHeld();
+ if (tcb.priority > this.currentTcb.priority) {
+ return tcb;
+ } else {
+ return this.currentTcb;
+ }
+};
+
+/**
+ * Block the currently executing task and return the next task control block
+ * to run. The blocked task will not be made runnable until it is explicitly
+ * released, even if new work is added to it.
+ */
+Scheduler.prototype.holdCurrent = function () {
+ this.holdCount++;
+ this.currentTcb.markAsHeld();
+ return this.currentTcb.link;
+};
+
+/**
+ * Suspend the currently executing task and return the next task control block
+ * to run. If new work is added to the suspended task it will be made runnable.
+ */
+Scheduler.prototype.suspendCurrent = function () {
+ this.currentTcb.markAsSuspended();
+ return this.currentTcb;
+};
+
+/**
+ * Add the specified packet to the end of the worklist used by the task
+ * associated with the packet and make the task runnable if it is currently
+ * suspended.
+ * @param {Packet} packet the packet to add
+ */
+Scheduler.prototype.queue = function (packet) {
+ var t = this.blocks[packet.id];
+ if (t == null) return t;
+ this.queueCount++;
+ packet.link = null;
+ packet.id = this.currentId;
+ return t.checkPriorityAdd(this.currentTcb, packet);
+};
+
+/**
+ * A task control block manages a task and the queue of work packages associated
+ * with it.
+ * @param {TaskControlBlock} link the preceding block in the linked block list
+ * @param {int} id the id of this block
+ * @param {int} priority the priority of this block
+ * @param {Packet} queue the queue of packages to be processed by the task
+ * @param {Task} task the task
+ * @constructor
+ */
+function TaskControlBlock(link, id, priority, queue, task) {
+ this.link = link;
+ this.id = id;
+ this.priority = priority;
+ this.queue = queue;
+ this.task = task;
+ if (queue == null) {
+ this.state = STATE_SUSPENDED;
+ } else {
+ this.state = STATE_SUSPENDED_RUNNABLE;
+ }
+}
+
+/**
+ * The task is running and is currently scheduled.
+ */
+var STATE_RUNNING = 0;
+
+/**
+ * The task has packets left to process.
+ */
+var STATE_RUNNABLE = 1;
+
+/**
+ * The task is not currently running. The task is not blocked as such and may
+* be started by the scheduler.
+ */
+var STATE_SUSPENDED = 2;
+
+/**
+ * The task is blocked and cannot be run until it is explicitly released.
+ */
+var STATE_HELD = 4;
+
+var STATE_SUSPENDED_RUNNABLE = STATE_SUSPENDED | STATE_RUNNABLE;
+var STATE_NOT_HELD = ~STATE_HELD;
+
+TaskControlBlock.prototype.setRunning = function () {
+ this.state = STATE_RUNNING;
+};
+
+TaskControlBlock.prototype.markAsNotHeld = function () {
+ this.state = this.state & STATE_NOT_HELD;
+};
+
+TaskControlBlock.prototype.markAsHeld = function () {
+ this.state = this.state | STATE_HELD;
+};
+
+TaskControlBlock.prototype.isHeldOrSuspended = function () {
+ return (this.state & STATE_HELD) != 0 || (this.state == STATE_SUSPENDED);
+};
+
+TaskControlBlock.prototype.markAsSuspended = function () {
+ this.state = this.state | STATE_SUSPENDED;
+};
+
+TaskControlBlock.prototype.markAsRunnable = function () {
+ this.state = this.state | STATE_RUNNABLE;
+};
+
+/**
+ * Runs this task, if it is ready to be run, and returns the next task to run.
+ */
+TaskControlBlock.prototype.run = function () {
+ var packet;
+ if (this.state == STATE_SUSPENDED_RUNNABLE) {
+ packet = this.queue;
+ this.queue = packet.link;
+ if (this.queue == null) {
+ this.state = STATE_RUNNING;
+ } else {
+ this.state = STATE_RUNNABLE;
+ }
+ } else {
+ packet = null;
+ }
+ return this.task.run(packet);
+};
+
+/**
+ * Adds a packet to the worklist of this block's task, marks this as runnable if
+ * necessary, and returns the next runnable object to run (the one
+ * with the highest priority).
+ */
+TaskControlBlock.prototype.checkPriorityAdd = function (task, packet) {
+ if (this.queue == null) {
+ this.queue = packet;
+ this.markAsRunnable();
+ if (this.priority > task.priority) return this;
+ } else {
+ this.queue = packet.addTo(this.queue);
+ }
+ return task;
+};
+
+TaskControlBlock.prototype.toString = function () {
+ return "tcb { " + this.task + "@" + this.state + " }";
+};
+
+/**
+ * An idle task doesn't do any work itself but cycles control between the two
+ * device tasks.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @param {int} v1 a seed value that controls how the device tasks are scheduled
+ * @param {int} count the number of times this task should be scheduled
+ * @constructor
+ */
+function IdleTask(scheduler, v1, count) {
+ this.scheduler = scheduler;
+ this.v1 = v1;
+ this.count = count;
+}
+
+IdleTask.prototype.run = function (packet) {
+ this.count--;
+ if (this.count == 0) return this.scheduler.holdCurrent();
+ if ((this.v1 & 1) == 0) {
+ this.v1 = this.v1 >> 1;
+ return this.scheduler.release(ID_DEVICE_A);
+ } else {
+ this.v1 = (this.v1 >> 1) ^ 0xD008;
+ return this.scheduler.release(ID_DEVICE_B);
+ }
+};
+
+IdleTask.prototype.toString = function () {
+ return "IdleTask"
+};
+
+/**
+ * A task that suspends itself after each time it has been run to simulate
+ * waiting for data from an external device.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @constructor
+ */
+function DeviceTask(scheduler) {
+ this.scheduler = scheduler;
+ this.v1 = null;
+}
+
+DeviceTask.prototype.run = function (packet) {
+ if (packet == null) {
+ if (this.v1 == null) return this.scheduler.suspendCurrent();
+ var v = this.v1;
+ this.v1 = null;
+ return this.scheduler.queue(v);
+ } else {
+ this.v1 = packet;
+ return this.scheduler.holdCurrent();
+ }
+};
+
+DeviceTask.prototype.toString = function () {
+ return "DeviceTask";
+};
+
+/**
+ * A task that manipulates work packets.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @param {int} v1 a seed used to specify how work packets are manipulated
+ * @param {int} v2 another seed used to specify how work packets are manipulated
+ * @constructor
+ */
+function WorkerTask(scheduler, v1, v2) {
+ this.scheduler = scheduler;
+ this.v1 = v1;
+ this.v2 = v2;
+}
+
+WorkerTask.prototype.run = function (packet) {
+ if (packet == null) {
+ return this.scheduler.suspendCurrent();
+ } else {
+ if (this.v1 == ID_HANDLER_A) {
+ this.v1 = ID_HANDLER_B;
+ } else {
+ this.v1 = ID_HANDLER_A;
+ }
+ packet.id = this.v1;
+ packet.a1 = 0;
+ for (var i = 0; i < DATA_SIZE; i++) {
+ this.v2++;
+ if (this.v2 > 26) this.v2 = 1;
+ packet.a2[i] = this.v2;
+ }
+ return this.scheduler.queue(packet);
+ }
+};
+
+WorkerTask.prototype.toString = function () {
+ return "WorkerTask";
+};
+
+/**
+ * A task that manipulates work packets and then suspends itself.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @constructor
+ */
+function HandlerTask(scheduler) {
+ this.scheduler = scheduler;
+ this.v1 = null;
+ this.v2 = null;
+}
+
+HandlerTask.prototype.run = function (packet) {
+ if (packet != null) {
+ if (packet.kind == KIND_WORK) {
+ this.v1 = packet.addTo(this.v1);
+ } else {
+ this.v2 = packet.addTo(this.v2);
+ }
+ }
+ if (this.v1 != null) {
+ var count = this.v1.a1;
+ var v;
+ if (count < DATA_SIZE) {
+ if (this.v2 != null) {
+ v = this.v2;
+ this.v2 = this.v2.link;
+ v.a1 = this.v1.a2[count];
+ this.v1.a1 = count + 1;
+ return this.scheduler.queue(v);
+ }
+ } else {
+ v = this.v1;
+ this.v1 = this.v1.link;
+ return this.scheduler.queue(v);
+ }
+ }
+ return this.scheduler.suspendCurrent();
+};
+
+HandlerTask.prototype.toString = function () {
+ return "HandlerTask";
+};
+
+/* --- *
+ * P a c k e t
+ * --- */
+
+var DATA_SIZE = 4;
+
+/**
+ * A simple package of data that is manipulated by the tasks. The exact layout
+ * of the payload data carried by a packet is not importaint, and neither is the
+ * nature of the work performed on packets by the tasks.
+ *
+ * Besides carrying data, packets form linked lists and are hence used both as
+ * data and worklists.
+ * @param {Packet} link the tail of the linked list of packets
+ * @param {int} id an ID for this packet
+ * @param {int} kind the type of this packet
+ * @constructor
+ */
+function Packet(link, id, kind) {
+ this.link = link;
+ this.id = id;
+ this.kind = kind;
+ this.a1 = 0;
+ this.a2 = new Array(DATA_SIZE);
+}
+
+/**
+ * Add this packet to the end of a worklist, and return the worklist.
+ * @param {Packet} queue the worklist to add this packet to
+ */
+Packet.prototype.addTo = function (queue) {
+ this.link = null;
+ if (queue == null) return this;
+ var peek, next = queue;
+ while ((peek = next.link) != null)
+ next = peek;
+ next.link = this;
+ return queue;
+};
+
+Packet.prototype.toString = function () {
+ return "Packet";
+};
+</script>
+</head>
+<body></body>
+</html>
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/web-style.css b/PerformanceTests/Dromaeo/resources/dromaeo/web/web-style.css
new file mode 100644
index 000000000..c439dc0ec
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/web-style.css
@@ -0,0 +1,24 @@
+
+a { color: orange; }
+div.test { overflow: hidden; margin: 4px; }
+div.test b { display: block; float: left; width: 150px; text-align: right; margin-right: 10px; }
+div.bar { float: left; width: 400px; border: 1px inset; text-align: left; }
+div.bar div { height: 1em; background: url(orange-stripe.png); }
+div.bar span { padding-left: 5px; padding-right: 5px; }
+body { font-family: Arial; font-size: 12px; background: url(gray-stripe.png); text-align: center; }
+
+/*#main { margin: 0 auto; width: 600px; padding: 10px; background: #FFF; }*/
+
+ol.results { text-align: left; display: none; font-size: 10px; margin-left: 120px; list-style: none; }
+ol.results li { clear: both; overflow: auto; }
+ol.results b { display: block; width: 200px; float: left; text-align: right; padding-right: 15px; }
+#info, div.results { clear:both;width:420px;margin:10 auto;text-align:left; padding: 10px 10px 10px 110px; }
+#info span { background: #FFF; color: #000; padding: 8px 4px 4px 4px; }
+h1 { text-align: left; }
+h1 img { float:left;margin-right: 15px;margin-top: -10px; border: 0; }
+h1 small { font-weight:normal; }
+iframe { display: none; }
+div.resultwrap { text-align: center; }
+table.results { font-size: 12px; margin: 0 auto; }
+table.results td, table.results th.name { text-align: right; }
+table.results .winner { background-color: #c7331d; }
diff --git a/PerformanceTests/Dromaeo/resources/dromaeo/web/webrunner.js b/PerformanceTests/Dromaeo/resources/dromaeo/web/webrunner.js
new file mode 100644
index 000000000..324446164
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeo/web/webrunner.js
@@ -0,0 +1,805 @@
+(function(){
+
+ // Populated from: http://www.medcalc.be/manual/t-distribution.php
+ // 95% confidence for N - 1 = 4
+ var tDistribution = 2.776;
+
+ // The number of individual test iterations to do
+ var numTests = 5;
+
+ // The type of run that we're doing (options are "runs/s" or "ms")
+ var runStyle = "runs/s";
+
+ // A rough estimate, in seconds, of how long it'll take each test
+ // iteration to run
+ var timePerTest = runStyle === "runs/s" ? 1 : 0.5;
+
+ // Initialize a batch of tests
+ // name = The name of the test collection
+ this.startTest = function(name, version){
+ numloaded++;
+ if ( numloaded == totalTests )
+ setTimeout( init, 100 );
+
+ testName = name;
+ if ( !queues[testName] ) return;
+ testID = testName;
+ testNames[testID] = testName;
+ testVersions[testID] = version || 0;
+ testSummary[testID] = testSummaryNum[testID] = testDone[testID] = testNum[testID] = 0;
+
+ queues[testID].push(function(){
+ summary = 0;
+ dequeue();
+ });
+ };
+
+ // Anything that you want to have run in order, but not actually test
+ this.prep = function(fn){
+ if ( !queues[testName] ) return;
+ queues[testID].push(function(){
+ fn();
+ dequeue();
+ });
+ };
+
+ // End the tests and finalize the report
+ this.endTest = function(){
+ if ( !queues[testName] ) return;
+ // Save the summary output until all the test are complete
+ queues[testID].push(function(){
+ dequeue();
+ });
+ };
+
+ // Run a new test
+ // name = The unique name of the test
+ // num = The 'length' of the test (length of string, # of tests, etc.)
+ // fn = A function holding the test to run
+ this.test = function(name, num, fn){
+ if ( !queues[testName] ) return;
+ // Save the summary output until all the test are complete
+ var curTest = testName, curID = testID;
+
+ if ( arguments.length === 3 ) {
+ if ( !nameDone[name] )
+ nameDone[name] = 0;
+ nameDone[name]++;
+
+ if ( nameDone[name] != 3 )
+ return;
+ } else {
+ fn = num;
+ num = 1;
+ }
+
+ time += timePerTest * numTests;
+
+ testNum[curID]++;
+
+ // Don't execute the test immediately
+ queues[testID].push(function(){
+ title = name;
+ var times = [], start, pos = 0, cur;
+
+ setTimeout(function(){
+ // run tests
+ try {
+ if ( doShark(name) ) {
+ connectShark();
+ startShark();
+ }
+
+ start = (new Date()).getTime();
+
+ if ( runStyle === "runs/s" ) {
+ var runs = 0;
+
+ cur = (new Date()).getTime();
+
+ while ( (cur - start) < 1000 ) {
+ fn();
+ cur = (new Date()).getTime();
+ runs++;
+ }
+ } else {
+ fn();
+ cur = (new Date()).getTime();
+ }
+
+ if ( doShark(name) ) {
+ stopShark();
+ disconnectShark();
+ }
+
+ // For making Median and Variance
+ if ( runStyle === "runs/s" ) {
+ times.push( (runs * 1000) / (cur - start) );
+ } else {
+ times.push( cur - start );
+ }
+ } catch( e ) {
+ alert("FAIL " + name + " " + num + e);
+ return;
+ }
+
+ if ( pos < numTests ) {
+ updateTime();
+ updateTestPos({curID: curID, collection: testNames[curID], version: testVersions[curID]});
+ }
+
+ if ( ++pos < numTests ) {
+ setTimeout( arguments.callee, 1 );
+
+ } else {
+ var data = compute( times, numTests );
+
+ data.curID = curID;
+ data.collection = testNames[curID];
+ data.version = testVersions[curID];
+ data.name = title;
+ data.scale = num;
+
+ logTest(data);
+
+ dequeue();
+ }
+ }, 1);
+ });
+
+ function compute(times, runs){
+ var results = {runs: runs}, num = times.length;
+
+ times = times.sort(function(a,b){
+ return a - b;
+ });
+
+ // Make Sum
+ results.sum = 0;
+
+ for ( var i = 0; i < num; i++ )
+ results.sum += times[i];
+
+ // Make Min
+ results.min = times[0];
+
+ // Make Max
+ results.max = times[ num - 1 ];
+
+ // Make Mean
+ results.mean = results.sum / num;
+
+ // Make Median
+ results.median = num % 2 == 0 ?
+ (times[Math.floor(num/2)] + times[Math.ceil(num/2)]) / 2 :
+ times[Math.round(num/2)];
+
+ // Make Variance
+ results.variance = 0;
+
+ for ( var i = 0; i < num; i++ )
+ results.variance += Math.pow(times[i] - results.mean, 2);
+
+ results.variance /= num - 1;
+
+ // Make Standard Deviation
+ results.deviation = Math.sqrt( results.variance );
+
+ // Compute Standard Errors Mean
+ results.sem = (results.deviation / Math.sqrt(results.runs)) * tDistribution;
+
+ // Error
+ results.error = ((results.sem / results.mean) * 100) || 0;
+
+ return results;
+ }
+ };
+
+ // All the test data
+ var tests;
+
+ // The number of test files to load
+ var totalTests = 0;
+ var totalTestItems = 0;
+
+ // The number of test files loaded
+ var numloaded = 0;
+
+ // Queue of functions to run
+ var queue = [];
+ var queues = {};
+
+ var catnames = {
+ dromaeo: "Dromaeo JavaScript Tests",
+ sunspider: "SunSpider JavaScript Tests",
+ "v8": "V8 JavaScript Tests",
+ dom: "DOM Core Tests",
+ jslib: "JavaScript Library Tests",
+ cssquery: "CSS Selector Tests"
+ };
+
+
+ var testElems = {};
+ var testNum = {};
+ var testDone = {};
+ var testNames = {};
+ var testVersions = {};
+ var dataStore = [];
+ var names = [];
+ var interval;
+ var totalTime = 0;
+ var time = 0;
+ var title, testName, testID, testSummary = {} , testSummaryNum = {}, maxTotal = 0, maxTotalNum = 0;
+ var nameDone = {};
+
+ // Query String Parsing
+ var search = window.limitSearch || (window.location.search || "?").substr(1);
+
+ search = search.replace(/&runStyle=([^&]+)/, function(all, type){
+ runStyle = type;
+ return "";
+ });
+
+ var parts = search.split("&");
+
+ if ( parts[0] === "recommended" ) {
+ parts[0] = "dromaeo|sunspider|v8|dom|jslib";
+ }
+
+ var none = !parts[0] || parts[0].match(/=/);
+ var filter = parts.length && !parts[0].match(/=/) && parts[0] !== "all" ?
+ new RegExp(parts.shift(), "i") :
+ /./;
+
+ // To enable shark debugging add &shark to the end of the URL
+ var doShark = function(name) { return false; };
+ for ( var i = 0; i < parts.length; i++ ) {
+ var m = /^shark(?:=(.*))?$/.exec(parts[i]);
+ if (m) {
+ if (m[1] === undefined) {
+ doShark = function(name) { return true; };
+ }
+ else {
+ var sharkMatch = new RegExp(m[1]);
+ doShark = function(name) {
+ return sharkMatch.test(name);
+ };
+ }
+ }
+
+ m = /^numTests=(\d+)$/.exec(parts[i]);
+ if (m)
+ numTests = Number(m[1]);
+ }
+
+ jQuery(function(){
+ var id = search.match(/id=([\d,]+)/);
+
+ if ( none && !id ) {
+ $("#overview").hide();
+ return;
+ }
+
+ var cat = filter.toString().slice(1,-2);
+
+ if ( catnames[cat] ) {
+ $("#overview span:first").html( catnames[cat] );
+
+ if ( catnames[cat].length > 22 ) {
+ $("#overview span:first").css("font-size", 22);
+ }
+ }
+
+ $("#tests").hide();
+
+ jQuery.getJSON("tests/MANIFEST.json", function(json){
+ tests = json;
+
+ names = [];
+
+ for ( var name in tests )
+ // Don't load tests that we aren't looking for
+ if ( filter.test( name ) )
+ names.push( name );
+
+ names = names.sort(function(a, b){
+ return tests[a].name < tests[b].name ? -1 :
+ tests[a].name == tests[b].name ? 0 : 1;
+ });
+
+ // Check if we're loading a specific result set
+ // ?id=NUM
+ if ( id ) {
+ jQuery.ajax({
+ url: "store.php?id=" + id[1],
+ dataType: "json",
+ success: function(data){
+ resultsLoaded(id[1], data);
+ }
+ });
+
+ // Otherwise we're loading a normal set of tests
+ } else {
+ $("#wrapper").append("<br style='clear:both;'/><center><a href='?" + names.join("|") + "'>Re-run tests</a></center>");
+
+ for ( var i = 0; i < names.length; i++ ) (function(name){
+ var test = tests[name];
+
+ queues[name] = [];
+ makeElem(name);
+ initTest(name);
+
+ totalTests++;
+
+ // Check if we're loading an HTML file
+ if ( test.file.match(/html$/) ) {
+ var iframe = document.createElement("iframe");
+ iframe.style.height = "1px";
+ iframe.style.width = "1px";
+ iframe.src = "tests/" + test.file;
+ document.body.appendChild( iframe );
+
+ // Otherwise we're loading a pure-JS test
+ } else {
+ jQuery.getScript("tests/" + test.file);
+ }
+ })(names[i]);
+ }
+ });
+ });
+
+ // Remove the next test from the queue and execute it
+ function dequeue(){
+ if ( interval && queue.length ) {
+ if (window.parent) {
+ window.parent.postMessage({ name: "dromaeo:progress",
+ status: { current: totalTestItems - queue.length,
+ score: dataStore[dataStore.length - 1],
+ total: totalTestItems } }, "*");
+ }
+ queue.shift()();
+ } else if ( queue.length == 0 ) {
+ interval = false;
+ time = 0;
+
+ $("#overview input").remove();
+ updateTimebar();
+
+ if ( window.limitSearch ) {
+ var summary = (runStyle === "runs/s" ? Math.pow(Math.E, maxTotal / maxTotalNum) : maxTotal).toFixed(2);
+
+ if ( typeof tpRecordTime !== "undefined" ) {
+ tpRecordTime( summary );
+
+ } else {
+ var pre = document.createElement("pre");
+ pre.style.display = "none";
+ pre.innerHTML = "__start_report" + summary + "__end_report";
+ document.body.appendChild( pre );
+ }
+
+ if ( typeof goQuitApplication !== "undefined" ) {
+ goQuitApplication();
+ }
+
+ } else if ( dataStore && dataStore.length ) {
+ $("body").addClass("alldone");
+ var div = jQuery("<div class='results'>Saving...</div>").insertBefore("#overview");
+ jQuery.ajax({
+ type: "POST",
+ url: "store.php",
+ data: "data=" + encodeURIComponent(JSON.stringify(dataStore)) + "&style=" + runStyle,
+ success: function(id){
+ var url = window.location.href.replace(/\?.*$/, "") + "?id=" + id;
+ div.html("Results saved. You can access them at a later time at the following URL:<br/><strong><a href='" + url + "'>" + url + "</a></strong></div>");
+ }
+ });
+
+ if (window.parent)
+ window.parent.postMessage({ name: "dromaeo:alldone", result: dataStore }, "*");
+ }
+ }
+ }
+
+ function updateTimebar(){
+ $("#timebar").html("<span><strong>" + (runStyle === "runs/s" ? Math.pow(Math.E, maxTotal / maxTotalNum) : maxTotal).toFixed(2) + "</strong>" + runStyle + " (Total)</span>");
+ }
+
+ // Run once all the test files are fully loaded
+ function init(){
+ for ( var n = 0; n < names.length; n++ ) {
+ queue = queue.concat( queues[ names[n] ] );
+ }
+
+ totalTestItems = queue.length;
+ totalTime = time;
+ time += timePerTest;
+ updateTime();
+
+ $("#pause")
+ .val("Run")
+ .click(function(){
+ if ( interval ) {
+ interval = null;
+ this.value = "Run";
+ } else {
+ if ( !interval ) {
+ interval = true;
+ dequeue();
+ }
+ this.value = "Pause";
+ }
+ });
+
+ if ( window.limitSearch ) {
+ $("#pause").click();
+ }
+
+ if (window.parent)
+ window.parent.postMessage({ name: "dromaeo:ready" }, "*");
+ }
+
+ function initTest(curID){
+ $("<div class='result-item'></div>")
+ .append( testElems[ curID ] )
+ .append( "<p>" + (tests[curID] ? tests[ curID ].desc : "") + "<br/><a href='" +
+ (tests[curID] && tests[curID].origin ? tests[ curID ].origin[1] : "") + "'>Origin</a>, <a href='tests/" +
+ (tests[curID] ? tests[ curID ].file : "") + "'>Source</a>, <b>Tests:</b> " +
+ (tests[curID] && tests[curID].tags ? tests[ curID ].tags.join(", ") : "") + "</p>" )
+ .append( "<ol class='results'></ol>" )
+ .appendTo("#main");
+ }
+
+ function resultsLoaded(id, datas){
+ var results = {};
+ var runs = {};
+ var output = "";
+ var excluded = [];
+ var overview = document.getElementById("overview");
+
+ for ( var d = 0; d < datas.length; d++ ) {
+ var data = datas[d];
+
+ runStyle = data.style;
+
+ if ( datas.length == 1 ) {
+ $("#overview").before("<div class='results'>Viewing test run #" + id +
+ ", run on: " + data.created_at + " by:<br>" + data.useragent + "</div>");
+ }
+
+ runs[data.id] = data;
+ runs[data.id].mean = 0;
+ runs[data.id].error = 0;
+ runs[data.id].num = 0;
+ runs[data.id].name = (data.useragent.match(/(MSIE [\d.]+)/) ||
+ data.useragent.match(/((?:WebKit|Firefox|Shiretoko|Opera)\/[\w.]+)/) || [0,data.id])[1];
+
+ for ( var i = 0; i < data.results.length; i++ ) {
+ var result = data.results[i];
+ var curID = result.collection;
+ var run = result.run_id;
+
+ result.version += data.style;
+
+ if ( !results[curID] )
+ results[curID] = {tests:{}, total:{}, version: result.version};
+
+ if ( results[curID].version == result.version ) {
+ if ( !results[curID].total[run] ) {
+ results[curID].total[run] = {max:0, mean:0, median:0, min:0, deviation:0, error:0, num:0};
+ results[curID].tests[run] = [];
+ }
+
+ result.error = ((((result.deviation / Math.sqrt(result.runs)) * tDistribution) / result.mean) * 100) || 0;
+ results[curID].tests[run].push( result );
+
+ var error = (parseFloat(result.error) / 100) * parseFloat(result.mean);
+ error = (runStyle === "ms" ? error : error == 0 ? 0 : Math.log(error));
+ var total = results[curID].total[run];
+ total.num++;
+
+ for ( var type in total ) {
+ if ( type == "error" ) {
+ total.error += error;
+ } else if ( type == "mean" ) {
+ total.mean += (runStyle === "ms" ? parseFloat(result.mean) : Math.log(parseFloat(result.mean)));
+ } else if ( type !== "num" ) {
+ total[type] += parseFloat(result[type]);
+ }
+ }
+
+ runs[run].num++;
+ runs[run].mean += runStyle === "ms" ? parseFloat(result.mean) : Math.log(parseFloat(result.mean));
+ runs[run].error += error;
+ }
+ }
+ }
+
+ var runTests = [];
+
+ if ( datas.length == 1 ) {
+ $("body").addClass("alldone");
+
+ for ( var i = 0; i < data.results.length; i++ ) {
+ var item = data.results[i];
+ var result = item.curID = item.collection;
+
+ if ( !filter.test(result) )
+ continue;
+
+ if ( !testElems[result] ) {
+ runTests.push(result);
+ makeElem( result );
+ initTest( result );
+ }
+
+ // Compute Standard Errors Mean
+ item.sem = (item.deviation / Math.sqrt(item.runs)) * tDistribution;
+
+ // Error
+ item.error = ((item.sem / item.mean) * 100) || 0;
+
+ logTest( item );
+
+ // testDone, testNum, testSummary
+ testDone[ result ] = numTests - 1;
+ testNum[ result ] = 1;
+
+ updateTestPos( item );
+ }
+
+ $("div.result-item").addClass("done");
+
+ totalTime = time = timePerTest;
+ updateTime();
+
+ $("#overview input").remove();
+ updateTimebar();
+ } else {
+ // Remove results where there is only one comparison set
+ for ( var id in results ) {
+ var num = 0;
+
+ for ( var ntest in results[id].tests ) {
+ num++;
+ if ( num > 1 )
+ break;
+ }
+
+ if ( num <= 1 ) {
+ excluded.push( id );
+ delete results[id];
+ }
+ }
+
+ var preoutput = "<tr><td></td>";
+ for ( var run in runs )
+ preoutput += "<th><a href='?id=" + run + "'>" + runs[run].name + "</a></th>";
+ //preoutput += "<th>Winning %</th></tr>";
+ preoutput += "</tr>";
+
+ for ( var result in results ) {
+ // Skip results that we're filtering out
+ if ( !filter.test(result) )
+ continue;
+
+ runTests.push(result);
+
+ if ( runStyle === "runs/s" ) {
+ for ( var run in runs ) {
+ var mean = results[result].total[run].mean - 0;
+ var error = results[result].total[run].error - 0;
+
+ mean = Math.pow(Math.E, mean / results[result].total[run].num);
+ error = Math.pow(Math.E, error / results[result].total[run].num);
+ results[result].total[run].mean = mean;
+ results[result].total[run].error = error;
+ }
+ }
+
+ var name = tests[result] ? tests[result].name : result;
+ var tmp = processWinner(results[result].total);
+
+ output += "<tr><th class='name'><span onclick='toggleResults(this.nextSibling);'>&#9654; </span>" +
+ "<a href='' onclick='return toggleResults(this);'>" + name + "</a></th>";
+
+ for ( var run in runs ) {
+ var mean = results[result].total[run].mean - 0;
+ var error = results[result].total[run].error - 0;
+
+ output += "<td class='" + (tmp[run] || '') + "'>" + mean.toFixed(2) + "<small>" + runStyle + " &#177;" + ((error / mean) * 100).toFixed(2) + "%</small></td>";
+ }
+
+ //showWinner(tmp);
+ output += "</tr>";
+
+ var _tests = results[result].tests, _data = _tests[run], _num = _data.length;
+ for ( var i = 0; i < _num; i++ ) {
+ output += "<tr class='onetest hidden'><td><small>" + _data[i].name + "</small></td>";
+ for ( var run in runs ) {
+ output += "<td>" + (_tests[run][i].mean - 0).toFixed(2) + "<small>" + runStyle + " &#177;" + (_tests[run][i].error - 0).toFixed(2) + "%</small></td>";
+ }
+ output += "<td></td></tr>";
+ }
+ }
+
+ if ( runStyle === "runs/s" ) {
+ for ( var run in runs ) {
+ runs[run].mean = Math.pow(Math.E, runs[run].mean / runs[run].num);
+ runs[run].error = Math.pow(Math.E, runs[run].error / runs[run].num);
+ }
+ }
+
+ var tmp = processWinner(runs);
+ var totaloutput = "";
+
+ if ( runStyle === "ms" ) {
+ totaloutput += "<tr><th class='name'>Total:</th>";
+ } else {
+ totaloutput += "<tr><th class='name'>Total Score:</th>";
+ }
+
+ for ( var run in runs ) {
+ totaloutput += "<th class='name " + (tmp[run] || '') + "' title='" + (tmp[run + "title"] || '') + "'>" + runs[run].mean.toFixed(2) + "<small>" + runStyle + " &#177;" + ((runs[run].error / runs[run].mean) * 100).toFixed(2) + "%</small></th>";
+ }
+
+ //showWinner(tmp);
+ totaloutput += "</tr>";
+
+ overview.className = "";
+ overview.innerHTML = "<div class='resultwrap'><table class='results'>" + preoutput + totaloutput + output + totaloutput + "</table>" + (excluded.length ? "<div style='text-align:left;'><small><b>Excluded Tests:</b> " + excluded.sort().join(", ") + "</small></div>" : "") + "</div>";
+ }
+
+ $("#wrapper").append("<center><a href='?" + runTests.join("|") + "'>Re-run tests</a></center>");
+
+ function showWinner(tmp){
+ if ( datas.length > 1 ) {
+ if ( tmp.tie )
+ output += "<th>Tie</th>";
+ else
+ output += "<th>" + tmp.diff + "%</th>";
+ }
+ }
+ }
+
+ this.toggleResults = function(elem){
+ var span = elem.previousSibling;
+
+ elem.blur();
+ elem = elem.parentNode.parentNode.nextSibling;
+
+ span.innerHTML = elem.className.indexOf("hidden") < 0 ? "&#9654; " : "&#9660; ";
+
+ while ( elem && elem.className.indexOf("onetest") >= 0 ) {
+ elem.className = "onetest" + (elem.className.indexOf("hidden") >= 0 ? " " : " hidden");
+ elem = elem.nextSibling;
+ }
+
+ return false;
+ };
+
+ function updateTime(){
+ time -= timePerTest;
+ $("#left").html(Math.floor(time / 60) + ":" + (time % 60 < 10 ? "0" : "" ) + Math.floor(time % 60));
+
+ var w = ((totalTime - time) / totalTime) * 100;
+
+ $("#timebar").width((w < 1 ? 1 : w) + "%");
+ }
+
+ function logTest(data){
+ // Keep a running summary going
+ data.mean = parseFloat(data.mean);
+ var mean = (runStyle === "runs/s" ? Math.log(data.mean) : data.mean);
+ testSummary[data.curID] = (testSummary[data.curID] || 0) + mean;
+ testSummaryNum[data.curID] = (testSummaryNum[data.curID] || 0) + 1;
+
+ maxTotal += mean;
+ maxTotalNum++;
+
+ testDone[data.curID]--;
+ updateTestPos(data);
+
+ testElems[data.curID].next().next().append("<li><b>" + data.name +
+ ":</b> " + data.mean.toFixed(2) + "<small>" + runStyle + " &#177;" + data.error.toFixed(2) + "%</small></li>");
+
+ dataStore.push(data);
+ }
+
+ function updateTestPos(data, update){
+ if ( !update )
+ testDone[data.curID]++;
+
+ var per = (testDone[data.curID] / (testNum[data.curID] * numTests)) * 100;
+
+ if ( update )
+ per = 1;
+
+ var mean = (runStyle === "runs/s" ?
+ Math.pow(Math.E, testSummary[data.curID] / testSummaryNum[data.curID]) :
+ testSummary[data.curID]);
+
+ testElems[data.curID].html("<b>" + (tests[data.curID] ? tests[data.curID].name : data.curID) +
+ ":</b> <div class='bar'><div style='width:" +
+ per + "%;'>" + (per >= 100 ? "<span>" + mean.toFixed(2) + runStyle + "</span>" : "") + "</div></div>");
+
+ if ( per >= 100 && testSummary[data.curID] > 0 ) {
+ testElems[data.curID].parent().addClass("done");
+ }
+ }
+
+ function processWinner(data){
+ var minVal = -1, min2Val = -1, min, min2;
+
+ for ( var i in data ) {
+ var total = data[i].mean;
+ if ( minVal == -1 || (runStyle === "ms" && total <= minVal || runStyle === "runs/s" && total >= minVal) ) {
+ min2Val = minVal;
+ min2 = min;
+ minVal = total;
+ min = i;
+ } else if ( min2Val == -1 || (runStyle === "ms" && total <= minVal || runStyle === "runs/s" && total >= min2Val) ) {
+ min2Val = total;
+ min2 = i;
+ }
+ }
+
+ var tieVal = (runStyle === "ms" ? minVal : min2Val) + data[min].error + data[min2].error;
+
+ var ret = {
+ winner: min,
+ diff: runStyle === "ms" ?
+ -1 * Math.round((1 - (min2Val / minVal)) * 100) :
+ Math.round(((minVal / min2Val) - 1) * 100),
+ tie: minVal == min2Val || (runStyle === "ms" ? tieVal >= min2Val : tieVal >= minVal)
+ };
+
+ ret.tie = ret.tie || ret.diff == 0;
+
+ if ( ret.tie ) {
+ ret[ min ] = 'tie';
+ ret[ min2 ] = 'tie';
+ ret[ min + 'title' ] = "Tied with another run.";
+ ret[ min2 + 'title' ] = "Tied with another run.";
+ } else {
+ ret[ min ] = 'winner';
+ if ( min2Val > -1 ) {
+ ret[ min + 'title' ] = "Won by " + ret.diff + "%.";
+ }
+ }
+
+ return ret;
+ }
+
+ function makeElem(testID){
+/*
+ if ( tests[testID] ) {
+ var cat = tests[testID].category, catsm = cat.replace(/[^\w]/g, "-");
+ if ( !$("#" + catsm).length ) {
+ $("#main").append("<h2 id='" + catsm + "' class='test'><a href='?cat=" + cat +"'>" + cat + '</a><div class="bar"><div id="timebar" style="width:25%;"><span class="left">Est.&nbsp;Time:&nbsp;<strong id="left">0:00</strong></span></div></div>');
+ }
+ }
+*/
+
+ testElems[testID] = $("<div class='test'></div>")
+ .click(function(){
+ var next = jQuery(this).next().next();
+ if ( next.children().length == 0 ) return;
+ var display = next.css("display");
+ next.css("display", display == 'none' ? 'block' : 'none');
+ });
+
+ updateTestPos({curID: testID, collection: tests[testID] ? tests[testID].name : testID, version: testVersions[testID]}, true);
+ }
+
+ window.addEventListener("message", function(event) {
+ switch (event.data.name) {
+ case "dromaeo:start":
+ $("#pause").click();
+ break;
+ default:
+ console.log("Unknwon message:" + JSON.stringify(event.data));
+ break;
+ }
+});
+})();
diff --git a/PerformanceTests/Dromaeo/resources/dromaeorunner.js b/PerformanceTests/Dromaeo/resources/dromaeorunner.js
new file mode 100644
index 000000000..a7e0bfb30
--- /dev/null
+++ b/PerformanceTests/Dromaeo/resources/dromaeorunner.js
@@ -0,0 +1,91 @@
+(function(){
+ var DRT = {
+ baseURL: "./resources/dromaeo/web/index.html",
+
+ computeScores: function (results) {
+ var mean = 0, min = 0, max = 0, stdev = 0, varsum = 0;
+
+ for (var i = 0; i < results.length; ++i) {
+ var item = results[i];
+ mean += item.mean;
+ min += item.min;
+ max += item.max;
+ varsum += item.deviation * item.deviation;
+ }
+
+ return {
+ median: 0,
+ mean: mean,
+ min: min,
+ max: max,
+ stdev: Math.sqrt(varsum),
+ unit: "runs/s"
+ };
+ },
+
+ setup: function(testName) {
+ var iframe = document.createElement("iframe");
+ var url = DRT.baseURL + "?" + testName;
+ iframe.setAttribute("src", url);
+ document.body.appendChild(iframe);
+ iframe.addEventListener(
+ "load", function() {
+ DRT.targetDocument = iframe.contentDocument;
+ DRT.targetWindow = iframe.contentDocument.defaultView;
+ });
+
+ window.addEventListener(
+ "message",
+ function(event) {
+ switch(event.data.name) {
+ case "dromaeo:ready":
+ DRT.start();
+ break;
+ case "dromaeo:progress":
+ DRT.progress(event.data);
+ break;
+ case "dromaeo:alldone":
+ DRT.teardown(event.data);
+ break;
+ }
+ });
+ },
+
+ start: function() {
+ DRT.targetWindow.postMessage({ name: "dromaeo:start" } , "*");
+ },
+
+ progress: function(message) {
+ if (message.status.score)
+ DRT.log(message.status.score.mean);
+ },
+
+ teardown: function(data) {
+ var scores = DRT.computeScores(data.result);
+ PerfTestRunner.printStatistics(scores, "Time:");
+ PerfTestRunner.getAndPrintMemoryStatistics();
+ window.setTimeout(function() {
+ if (window.testRunner)
+ testRunner.notifyDone();
+ }, 0);
+ },
+
+ targetDelegateOf: function(functionName) {
+ return function() {
+ DRT.targetWindow[functionName].apply(null, arguments);
+ };
+ },
+
+ log: function(text) {
+ PerfTestRunner.log(text);
+ }
+ };
+
+ // These functions are referred from htmlrunner.js
+ this.startTest = DRT.targetDelegateOf("startTest");
+ this.test = DRT.targetDelegateOf("test");
+ this.endTest = DRT.targetDelegateOf("endTest");
+ this.prep = DRT.targetDelegateOf("prep");
+
+ window.DRT = DRT;
+ })();
diff --git a/PerformanceTests/Dromaeo/sunspider-3d-morph.html b/PerformanceTests/Dromaeo/sunspider-3d-morph.html
new file mode 100644
index 000000000..dea109e45
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-3d-morph.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-3d-morph");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-3d-raytrace.html b/PerformanceTests/Dromaeo/sunspider-3d-raytrace.html
new file mode 100644
index 000000000..e61cdc4ae
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-3d-raytrace.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-3d-raytrace");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-access-binary-trees.html b/PerformanceTests/Dromaeo/sunspider-access-binary-trees.html
new file mode 100644
index 000000000..d9f855690
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-access-binary-trees.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-access-binary-trees");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-access-fannkuch.html b/PerformanceTests/Dromaeo/sunspider-access-fannkuch.html
new file mode 100644
index 000000000..1d0b7df8b
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-access-fannkuch.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-access-fannkuch");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-access-nbody.html b/PerformanceTests/Dromaeo/sunspider-access-nbody.html
new file mode 100644
index 000000000..6c6bfcde0
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-access-nbody.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-access-nbody");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-access-nsieve.html b/PerformanceTests/Dromaeo/sunspider-access-nsieve.html
new file mode 100644
index 000000000..a4c95285b
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-access-nsieve.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-access-nsieve");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-bitops-3bit-bits-in-byte.html b/PerformanceTests/Dromaeo/sunspider-bitops-3bit-bits-in-byte.html
new file mode 100644
index 000000000..6fe28c881
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-bitops-3bit-bits-in-byte.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-bitops-3bit-bits-in-byte");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-bitops-bits-in-byte.html b/PerformanceTests/Dromaeo/sunspider-bitops-bits-in-byte.html
new file mode 100644
index 000000000..841228b42
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-bitops-bits-in-byte.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-bitops-bits-in-byte");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-bitops-bitwise-and.html b/PerformanceTests/Dromaeo/sunspider-bitops-bitwise-and.html
new file mode 100644
index 000000000..f57e48a50
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-bitops-bitwise-and.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-bitops-bitwise-and");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-bitops-nsieve-bits.html b/PerformanceTests/Dromaeo/sunspider-bitops-nsieve-bits.html
new file mode 100644
index 000000000..2e00431a4
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-bitops-nsieve-bits.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-bitops-nsieve-bits");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-controlflow-recursive.html b/PerformanceTests/Dromaeo/sunspider-controlflow-recursive.html
new file mode 100644
index 000000000..7089d1e65
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-controlflow-recursive.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-controlflow-recursive");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-crypto-aes.html b/PerformanceTests/Dromaeo/sunspider-crypto-aes.html
new file mode 100644
index 000000000..46acdfc40
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-crypto-aes.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-crypto-aes");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-crypto-md5.html b/PerformanceTests/Dromaeo/sunspider-crypto-md5.html
new file mode 100644
index 000000000..8fcd0c908
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-crypto-md5.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-crypto-md5");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-crypto-sha1.html b/PerformanceTests/Dromaeo/sunspider-crypto-sha1.html
new file mode 100644
index 000000000..d7f51c256
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-crypto-sha1.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-crypto-sha1");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-date-format-tofte.html b/PerformanceTests/Dromaeo/sunspider-date-format-tofte.html
new file mode 100644
index 000000000..a1b48d4af
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-date-format-tofte.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-date-format-tofte");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-date-format-xparb.html b/PerformanceTests/Dromaeo/sunspider-date-format-xparb.html
new file mode 100644
index 000000000..ff93a5fc9
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-date-format-xparb.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-date-format-xparb");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-math-cordic.html b/PerformanceTests/Dromaeo/sunspider-math-cordic.html
new file mode 100644
index 000000000..14ce6b5c7
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-math-cordic.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-math-cordic");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-math-partial-sums.html b/PerformanceTests/Dromaeo/sunspider-math-partial-sums.html
new file mode 100644
index 000000000..147110ba0
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-math-partial-sums.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-math-partial-sums");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-math-spectral-norm.html b/PerformanceTests/Dromaeo/sunspider-math-spectral-norm.html
new file mode 100644
index 000000000..61ac0f468
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-math-spectral-norm.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-math-spectral-norm");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-regexp-dna.html b/PerformanceTests/Dromaeo/sunspider-regexp-dna.html
new file mode 100644
index 000000000..ffc7800df
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-regexp-dna.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-regexp-dna");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-string-fasta.html b/PerformanceTests/Dromaeo/sunspider-string-fasta.html
new file mode 100644
index 000000000..c5db5adcb
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-string-fasta.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-string-fasta");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-string-tagcloud.html b/PerformanceTests/Dromaeo/sunspider-string-tagcloud.html
new file mode 100644
index 000000000..abf2c2845
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-string-tagcloud.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-string-tagcloud");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-string-unpack-code.html b/PerformanceTests/Dromaeo/sunspider-string-unpack-code.html
new file mode 100644
index 000000000..743310702
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-string-unpack-code.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-string-unpack-code");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/sunspider-string-validate-input.html b/PerformanceTests/Dromaeo/sunspider-string-validate-input.html
new file mode 100644
index 000000000..bcd2c60f5
--- /dev/null
+++ b/PerformanceTests/Dromaeo/sunspider-string-validate-input.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("sunspider-string-validate-input");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/v8-crypto.html b/PerformanceTests/Dromaeo/v8-crypto.html
new file mode 100644
index 000000000..459267ecd
--- /dev/null
+++ b/PerformanceTests/Dromaeo/v8-crypto.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("v8-crypto");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/v8-deltablue.html b/PerformanceTests/Dromaeo/v8-deltablue.html
new file mode 100644
index 000000000..67e9067e8
--- /dev/null
+++ b/PerformanceTests/Dromaeo/v8-deltablue.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("v8-deltablue");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/v8-earley-boyer.html b/PerformanceTests/Dromaeo/v8-earley-boyer.html
new file mode 100644
index 000000000..5817b0603
--- /dev/null
+++ b/PerformanceTests/Dromaeo/v8-earley-boyer.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("v8-earley-boyer");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/v8-raytrace.html b/PerformanceTests/Dromaeo/v8-raytrace.html
new file mode 100644
index 000000000..d519bd9ad
--- /dev/null
+++ b/PerformanceTests/Dromaeo/v8-raytrace.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("v8-raytrace");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Dromaeo/v8-richards.html b/PerformanceTests/Dromaeo/v8-richards.html
new file mode 100644
index 000000000..503ef2ef7
--- /dev/null
+++ b/PerformanceTests/Dromaeo/v8-richards.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+<script src="resources/dromaeo/web/jquery.js"></script>
+<script src="resources/dromaeorunner.js"></script>
+<script>
+$(document).ready(function() {
+ DRT.setup("v8-richards");
+});
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/PerformanceTests/Interactive/resources/window-resize.js b/PerformanceTests/Interactive/resources/window-resize.js
new file mode 100644
index 000000000..99fdc1e3e
--- /dev/null
+++ b/PerformanceTests/Interactive/resources/window-resize.js
@@ -0,0 +1,31 @@
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+(function() {
+ var portrait = { width: window.innerWidth, height: window.innerHeight };
+ var landscape = { width: window.innerHeight, height: window.innerWidth };
+
+ var run = function() {
+ window.resizeTo(portrait.width, portrait.height);
+ document.body.offsetTop;
+ window.resizeTo(landscape.width, landscape.height);
+ document.body.offsetTop;
+ };
+
+ function onTestDone() {
+ var logNode = document.getElementById("log");
+ logNode.parentNode.removeChild(logNode);
+ document.body.innerHTML = "";
+ document.body.appendChild(logNode);
+ };
+
+ function startTest() {
+ PerfTestRunner.runPerSecond({
+ description: "Exercising window resize and following relayout",
+ run: run,
+ done: onTestDone
+ });
+ }
+
+ document.addEventListener("DOMContentLoaded", startTest);
+})();
diff --git a/PerformanceTests/Interactive/window-resize.html b/PerformanceTests/Interactive/window-resize.html
new file mode 100644
index 000000000..d080baa5d
--- /dev/null
+++ b/PerformanceTests/Interactive/window-resize.html
@@ -0,0 +1,5 @@
+<script>
+if (window.testRunner)
+ testRunner.waitUntilDone();
+window.location = "../Parser/resources/html5.html?test=../../Interactive/resources/window-resize.js";
+</script>
diff --git a/PerformanceTests/Layout/flexbox-column-nowrap.html b/PerformanceTests/Layout/flexbox-column-nowrap.html
new file mode 100644
index 000000000..bc03ff143
--- /dev/null
+++ b/PerformanceTests/Layout/flexbox-column-nowrap.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+</head>
+<body style="overflow-y: scroll">
+
+<div id="flexbox" style="height: 400px; -webkit-flex-direction: column; -webkit-flex-pack: center; -webkit-flex-align: center;">
+ <div style="-webkit-flex: 1 auto">1</div>
+ <div style="-webkit-flex: 2 auto">2 2</div>
+ <div style="-webkit-flex: 3 auto">3 3 3</div>
+ <div style="-webkit-flex: 4 auto">4 4 4 4</div>
+ <div style="-webkit-flex: 5 auto">5 5 5 5 5</div>
+ <div style="-webkit-flex: 6 auto">6 6 6 6 6 6</div>
+ <div style="-webkit-flex: 7 auto">7 7 7 7 7 7 7</div>
+ <div style="-webkit-flex: 8 auto">8 8 8 8 8 8 8 8</div>
+ <div style="-webkit-flex: 9 auto">9 9 9 9 9 9 9 9 9</div>
+ <div style="-webkit-flex: 10 auto">10 10 10 10 10 10 10 10 10</div>
+</div>
+
+</body>
+<script>
+function runTest()
+{
+ document.getElementById("flexbox").style.display = '-webkit-flexbox';
+ document.body.clientHeight;
+ document.getElementById("flexbox").style.display = '';
+ document.body.clientHeight;
+}
+
+PerfTestRunner.runPerSecond({run: runTest, done: function() {
+ document.getElementById("flexbox").style.display = 'none';
+}});
+</script>
+</html>
diff --git a/PerformanceTests/Layout/flexbox-column-wrap.html b/PerformanceTests/Layout/flexbox-column-wrap.html
new file mode 100644
index 000000000..b1287aaee
--- /dev/null
+++ b/PerformanceTests/Layout/flexbox-column-wrap.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+</head>
+<body style="overflow-y: scroll">
+
+<div id="flexbox" style="height: 400px; -webkit-flex-flow: column wrap; -webkit-flex-pack: center; -webkit-flex-align: center;">
+ <div style="-webkit-flex: 1 180px">1</div>
+ <div style="-webkit-flex: 2 auto">2 2</div>
+ <div style="-webkit-flex: 3 180px">3 3 3</div>
+ <div style="-webkit-flex: 4 auto">4 4 4 4</div>
+ <div style="-webkit-flex: 5 180px">5 5 5 5 5</div>
+ <div style="-webkit-flex: 6 auto">6 6 6 6 6 6</div>
+ <div style="-webkit-flex: 7 180px">7 7 7 7 7 7 7</div>
+ <div style="-webkit-flex: 8 auto">8 8 8 8 8 8 8 8</div>
+ <div style="-webkit-flex: 9 180px">9 9 9 9 9 9 9 9 9</div>
+ <div style="-webkit-flex: 10 auto">10 10 10 10 10 10 10 10 10</div>
+</div>
+
+</body>
+<script>
+function runTest()
+{
+ document.getElementById("flexbox").style.display = '-webkit-flexbox';
+ document.body.clientHeight;
+ document.getElementById("flexbox").style.display = '';
+ document.body.clientHeight;
+}
+
+PerfTestRunner.runPerSecond({run: runTest, done:function() {
+ document.getElementById("flexbox").style.display = 'none';
+}});
+</script>
+</html>
diff --git a/PerformanceTests/Layout/flexbox-row-nowrap.html b/PerformanceTests/Layout/flexbox-row-nowrap.html
new file mode 100644
index 000000000..ddb151683
--- /dev/null
+++ b/PerformanceTests/Layout/flexbox-row-nowrap.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+</head>
+<body style="overflow-y: scroll">
+
+<div id="flexbox" style="-webkit-flex-pack: center; -webkit-flex-align: center">
+ <div style="-webkit-flex: 1">1</div>
+ <div style="-webkit-flex: 2">2<br>2</div>
+ <div style="-webkit-flex: 3">3<br>3<br>3</div>
+ <div style="-webkit-flex: 4">4<br>4<br>4<br>4</div>
+ <div style="-webkit-flex: 5">5<br>5<br>5<br>5<br>5</div>
+ <div style="-webkit-flex: 6">6<br>6<br>6<br>6<br>6<br>6</div>
+ <div style="-webkit-flex: 7">7<br>7<br>7<br>7<br>7<br>7<br>7</div>
+ <div style="-webkit-flex: 8">8<br>8<br>8<br>8<br>8<br>8<br>8<br>8</div>
+ <div style="-webkit-flex: 9">9<br>9<br>9<br>9<br>9<br>9<br>9<br>9<br>9</div>
+ <div style="-webkit-flex: 10">10<br>10<br>10<br>10<br>10<br>10<br>10<br>10<br>10</div>
+</div>
+
+</body>
+<script>
+function runTest()
+{
+ document.getElementById("flexbox").style.display = '-webkit-flexbox';
+ document.body.clientHeight;
+ document.getElementById("flexbox").style.display = '';
+ document.body.clientHeight;
+}
+
+PerfTestRunner.runPerSecond({run:runTest, done:function() {
+ document.getElementById("flexbox").style.display = 'none';
+}});
+</script>
+</html>
diff --git a/PerformanceTests/Layout/flexbox-row-wrap.html b/PerformanceTests/Layout/flexbox-row-wrap.html
new file mode 100644
index 000000000..f57e7edc6
--- /dev/null
+++ b/PerformanceTests/Layout/flexbox-row-wrap.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/runner.js"></script>
+</head>
+<body style="overflow-y: scroll">
+
+<div id="flexbox" style="width: 300px; -webkit-flex-wrap: wrap; -webkit-flex-pack: center; -webkit-flex-align: center">
+ <div style="-webkit-flex: 1 120px">1</div>
+ <div style="-webkit-flex: 2 auto">2<br>2</div>
+ <div style="-webkit-flex: 3 120px">3<br>3<br>3</div>
+ <div style="-webkit-flex: 4 auto">4<br>4<br>4<br>4</div>
+ <div style="-webkit-flex: 5 120px">5<br>5<br>5<br>5<br>5</div>
+ <div style="-webkit-flex: 6 auto">6<br>6<br>6<br>6<br>6<br>6</div>
+ <div style="-webkit-flex: 7 120px">7<br>7<br>7<br>7<br>7<br>7<br>7</div>
+ <div style="-webkit-flex: 8 auto">8<br>8<br>8<br>8<br>8<br>8<br>8<br>8</div>
+ <div style="-webkit-flex: 9 120px">9<br>9<br>9<br>9<br>9<br>9<br>9<br>9<br>9</div>
+ <div style="-webkit-flex: 10 auto">10<br>10<br>10<br>10<br>10<br>10<br>10<br>10<br>10</div>
+</div>
+
+</body>
+<script>
+function runTest()
+{
+ document.getElementById("flexbox").style.display = '-webkit-flexbox';
+ document.body.clientHeight;
+ document.getElementById("flexbox").style.display = '';
+ document.body.clientHeight;
+}
+
+PerfTestRunner.runPerSecond({run: runTest, done:function() {
+ document.getElementById("flexbox").style.display = 'none';
+}});
+</script>
+</html>
diff --git a/PerformanceTests/Layout/floats_100_100.html b/PerformanceTests/Layout/floats_100_100.html
new file mode 100644
index 000000000..a0f597079
--- /dev/null
+++ b/PerformanceTests/Layout/floats_100_100.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Floats layout performance tester with 2 columns and 100 rows</title>
+ <link rel="stylesheet" href="resources/floats.css" TYPE="text/css"></link>
+ <script src="../resources/runner.js"></script>
+ <script src="resources/floats.js"></script>
+ </head>
+ <body>
+ <pre id="log"></pre>
+ <script>
+ PerfTestRunner.run(createFloatsLayoutTestFunction(100, 100, 0, 3), 1, 2);
+ </script>
+ </body>
+</html>
diff --git a/PerformanceTests/Layout/floats_100_100_nested.html b/PerformanceTests/Layout/floats_100_100_nested.html
new file mode 100644
index 000000000..09afd0e53
--- /dev/null
+++ b/PerformanceTests/Layout/floats_100_100_nested.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Floats layout performance tester with 2 columns and 100 rows</title>
+ <link rel="stylesheet" href="resources/floats.css" TYPE="text/css"></link>
+ <script src="../resources/runner.js"></script>
+ <script src="resources/floats.js"></script>
+ </head>
+ <body>
+ <pre id="log"></pre>
+ <script>
+ PerfTestRunner.run(createFloatsLayoutTestFunction(100, 100, 100, 3), 1, 2);
+ </script>
+ </body>
+</html>
diff --git a/PerformanceTests/Layout/floats_20_100.html b/PerformanceTests/Layout/floats_20_100.html
new file mode 100644
index 000000000..a286be504
--- /dev/null
+++ b/PerformanceTests/Layout/floats_20_100.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Floats layout performance tester with 2 columns and 100 rows</title>
+ <link rel="stylesheet" href="resources/floats.css" TYPE="text/css"></link>
+ <script src="../resources/runner.js"></script>
+ <script src="resources/floats.js"></script>
+ </head>
+ <body>
+ <pre id="log"></pre>
+ <script>
+ PerfTestRunner.run(createFloatsLayoutTestFunction(20, 100, 0, 100), 1, 7);
+ </script>
+ </body>
+</html>
diff --git a/PerformanceTests/Layout/floats_20_100_nested.html b/PerformanceTests/Layout/floats_20_100_nested.html
new file mode 100644
index 000000000..eb9aefecf
--- /dev/null
+++ b/PerformanceTests/Layout/floats_20_100_nested.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Floats layout performance tester with 2 columns and 100 rows</title>
+ <link rel="stylesheet" href="resources/floats.css" TYPE="text/css"></link>
+ <script src="../resources/runner.js"></script>
+ <script src="resources/floats.js"></script>
+ </head>
+ <body>
+ <pre id="log"></pre>
+ <script>
+ PerfTestRunner.run(createFloatsLayoutTestFunction(20, 100, 100, 100), 1, 6);
+ </script>
+ </body>
+</html>
diff --git a/PerformanceTests/Layout/floats_2_100.html b/PerformanceTests/Layout/floats_2_100.html
new file mode 100644
index 000000000..5a69b6086
--- /dev/null
+++ b/PerformanceTests/Layout/floats_2_100.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Floats layout performance tester with 2 columns and 100 rows</title>
+ <link rel="stylesheet" href="resources/floats.css" TYPE="text/css"></link>
+ <script src="../resources/runner.js"></script>
+ <script src="resources/floats.js"></script>
+ </head>
+ <body>
+ <pre id="log"></pre>
+ <script>
+ PerfTestRunner.run(createFloatsLayoutTestFunction(2, 100, 0, 500), 1, 10);
+ </script>
+ </body>
+</html>
diff --git a/PerformanceTests/Layout/floats_2_100_nested.html b/PerformanceTests/Layout/floats_2_100_nested.html
new file mode 100644
index 000000000..abcd65e34
--- /dev/null
+++ b/PerformanceTests/Layout/floats_2_100_nested.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Floats layout performance tester with 2 columns and 100 rows</title>
+ <link rel="stylesheet" href="resources/floats.css" TYPE="text/css"></link>
+ <script src="../resources/runner.js"></script>
+ <script src="resources/floats.js"></script>
+ </head>
+ <body>
+ <pre id="log"></pre>
+ <script>
+ PerfTestRunner.run(createFloatsLayoutTestFunction(2, 100, 100, 250), 1, 10);
+ </script>
+ </body>
+</html>
diff --git a/PerformanceTests/Layout/floats_50_100.html b/PerformanceTests/Layout/floats_50_100.html
new file mode 100644
index 000000000..6a50fb6a3
--- /dev/null
+++ b/PerformanceTests/Layout/floats_50_100.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Floats layout performance tester with 2 columns and 100 rows</title>
+ <link rel="stylesheet" href="resources/floats.css" TYPE="text/css"></link>
+ <script src="../resources/runner.js"></script>
+ <script src="resources/floats.js"></script>
+ </head>
+ <body>
+ <pre id="log"></pre>
+ <script>
+ PerfTestRunner.run(createFloatsLayoutTestFunction(50, 100, 0, 20), 1, 5);
+ </script>
+ </body>
+</html>
diff --git a/PerformanceTests/Layout/floats_50_100_nested.html b/PerformanceTests/Layout/floats_50_100_nested.html
new file mode 100644
index 000000000..10956cf59
--- /dev/null
+++ b/PerformanceTests/Layout/floats_50_100_nested.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Floats layout performance tester with 2 columns and 100 rows</title>
+ <link rel="stylesheet" href="resources/floats.css" TYPE="text/css"></link>
+ <script src="../resources/runner.js"></script>
+ <script src="resources/floats.js"></script>
+ </head>
+ <body>
+ <pre id="log"></pre>
+ <script>
+ PerfTestRunner.run(createFloatsLayoutTestFunction(50, 100, 100, 20), 1, 5);
+ </script>
+ </body>
+</html>
diff --git a/PerformanceTests/Layout/line-layout.html b/PerformanceTests/Layout/line-layout.html
new file mode 100644
index 000000000..7f23ed0bd
--- /dev/null
+++ b/PerformanceTests/Layout/line-layout.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Line breaking performance test</title>
+ <script src="../resources/runner.js"></script>
+</head>
+<body>
+ <pre id="log"></pre>
+ <div id="target" style="width: 300px; display: none;">
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris ut elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ ipsum dolor sit amet, consectetur adipiscing elit. Mauris ut elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ dolor sit amet, consectetur adipiscing elit. Mauris ut elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ sit amet, consectetur adipiscing elit. Mauris ut elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ amet, consectetur adipiscing elit. Mauris ut elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ consectetur adipiscing elit. Mauris ut elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ adipiscing elit. Mauris ut elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ elit. Mauris ut elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ Mauris ut elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ ut elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ elit lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ lacus, non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ non convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ convallis odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ odio. Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ Integer facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ facilisis, dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ dolor quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ quis porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ porttitor auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ <p>
+ auctor, nisi tellus aliquet urna, a dignissim orci nisl in nunc. Vivamus elit risus, sagittis et lacinia quis, blandit ac elit. Suspendisse non turpis vitae lorem molestie imperdiet sit amet in justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In at quam sapien. Nam nunc eros, interdum ut commodo nec, sollicitudin ultrices magna. Mauris eu fringilla massa. Phasellus facilisis augue in lectus luctus scelerisque. Proin quis facilisis lacus. Morbi tempor, mauris vitae posuere scelerisque, turpis massa pulvinar tortor, quis congue dolor eros iaculis elit. Quisque blandit blandit elit, sed suscipit justo scelerisque ut. Aenean sed diam at ligula bibendum rhoncus quis in nunc. Suspendisse semper auctor dui vitae gravida. Fusce et risus in velit ullamcorper placerat. Pellentesque sollicitudin commodo porta. Nam eu enim orci, at euismod ipsum.
+ </p>
+ </div>
+ <script>
+ var target = document.getElementById("target");
+ var style = target.style;
+
+ function test() {
+ style.display = "block";
+ style.width = "280px";
+ target.offsetLeft;
+ style.width = "300px";
+ target.offsetLeft;
+ style.width = "290px";
+ target.offsetLeft;
+ style.display = "none";
+ }
+
+ PerfTestRunner.runPerSecond({ run: test });
+ </script>
+</body>
+</html>
diff --git a/PerformanceTests/Layout/resources/floats.css b/PerformanceTests/Layout/resources/floats.css
new file mode 100644
index 000000000..a0934266a
--- /dev/null
+++ b/PerformanceTests/Layout/resources/floats.css
@@ -0,0 +1,18 @@
+.container {
+ display: none;
+}
+
+.float {
+ float: left;
+ width: 5px;
+ height: 5px;
+ border: 1px solid green;
+}
+
+.big {
+ width: 10px;
+}
+
+.float-end {
+ clear:left;
+} \ No newline at end of file
diff --git a/PerformanceTests/Layout/resources/floats.js b/PerformanceTests/Layout/resources/floats.js
new file mode 100644
index 000000000..459c2f456
--- /dev/null
+++ b/PerformanceTests/Layout/resources/floats.js
@@ -0,0 +1,57 @@
+(function() {
+ function createElement(tag, parent, className, id) {
+ var el = document.createElement(tag);
+ el.className = className;
+ if (id)
+ el.id = id;
+ parent.appendChild(el);
+ return el;
+ }
+
+ function createSet(width, height, nested) {
+ var container = createElement("div", document.body, "container");
+ for (var y = 0; y < height; ++y) {
+ for (var x = 0; x < width; ++x)
+ createElement("div", container, "float", "float" + x + "_" + y);
+
+ var nestedContainer = container;
+ for ( ; nested > 0; --nested)
+ nestedContainer = createElement("div", nestedContainer, "nested", "nested" + x + "_" + nested);
+
+ createElement("div", container, "float-end", "end" + x)
+ }
+ return container;
+ }
+
+ function toggle(str, str1, str2) {
+ return str == str1 ? str2 : str1;
+ }
+
+ function resetTest() {
+ PerfTestRunner.resetRandomSeed();
+ var list = document.querySelectorAll(".float.big");
+ for (var i = 0; i < list.length; ++i)
+ list[i].className = "float";
+ }
+
+ function createTestFunction(width, height, nested, runs) {
+ var container = createSet(width, height, nested);
+ nested = nested || 0;
+ runs = runs || 10;
+ return function() {
+ container.style.display = "block";
+ for (var i = 0; i < runs; ++i) {
+ var x = Math.floor(Math.random() * width);
+ var y = Math.floor(Math.random() * height);
+ var el = document.getElementById("float" + x + "_" + y);
+ el.className = toggle(el.className, "float", "float big");
+ // Force a layout.
+ container.clientHeight;
+ }
+ resetTest();
+ container.style.display = "none";
+ }
+ }
+
+ window.createFloatsLayoutTestFunction = createTestFunction;
+})();
diff --git a/PerformanceTests/Mutation/append-child-deep.html b/PerformanceTests/Mutation/append-child-deep.html
new file mode 100644
index 000000000..783d6f871
--- /dev/null
+++ b/PerformanceTests/Mutation/append-child-deep.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<body>
+<pre id="log"></pre>
+<script src="../resources/runner.js"></script>
+<div id="sandbox" style="display:none"></div>
+<script>
+var sandbox = document.getElementById('sandbox');
+var node = sandbox;
+for (var i = 0; i < 200; ++i)
+ node = node.appendChild(document.createElement('div'));
+var elems = [];
+for (var i = 0; i < 50000; ++i)
+ elems[i] = document.createElement('div');
+var observing = false;
+
+var observer = new WebKitMutationObserver(listener);
+var tickledSpan = document.createElement('span');
+observer.observe(tickledSpan, {attributes: true});
+
+function resetState() {
+ window.start = null;
+ window.numRuns = 25;
+ window.times = [];
+}
+
+function runAgain() {
+ tickledSpan.setAttribute('data-foo', numRuns);
+}
+
+function listener(mutations) {
+ if (start) {
+ var time = Date.now() - start;
+ times.push(time);
+ PerfTestRunner.log(time);
+ }
+ if (numRuns-- >= 0) {
+ runAgain();
+ if (observing)
+ observer.disconnect()
+ node.innerHTML = '';
+ if (observing)
+ observer.observe(sandbox, {childList: true, subtree: true});
+ start = Date.now();
+ for (var i = 0; i < elems.length; ++i)
+ node.appendChild(elems[i]);
+ } else {
+ PerfTestRunner.logStatistics(times);
+ if (!observing) {
+ observing = true;
+ resetState();
+ PerfTestRunner.log('\n------------\n');
+ PerfTestRunner.log('Running ' + numRuns + ' times with observation');
+ setTimeout(runAgain, 0);
+ }
+ }
+}
+
+resetState();
+PerfTestRunner.log('Running ' + numRuns + ' times without observation');
+window.addEventListener('load', runAgain);
+</script>
+</body>
diff --git a/PerformanceTests/Mutation/append-child.html b/PerformanceTests/Mutation/append-child.html
new file mode 100644
index 000000000..3a128b190
--- /dev/null
+++ b/PerformanceTests/Mutation/append-child.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<body>
+<pre id="log"></pre>
+<script src="../resources/runner.js"></script>
+<div id="sandbox" style="display:none"></div>
+<script>
+var sandbox = document.getElementById('sandbox');
+var observing = false;
+
+var elems = [];
+for (var i = 0; i < 50000; ++i)
+ elems[i] = document.createElement('div');
+var observer = new WebKitMutationObserver(listener);
+var tickledSpan = document.createElement('span');
+observer.observe(tickledSpan, {attributes: true});
+
+function resetState() {
+ window.start = null;
+ window.numRuns = 25;
+ window.times = [];
+}
+
+function runAgain() {
+ tickledSpan.setAttribute('data-foo', numRuns);
+}
+
+function listener(mutations) {
+ if (start) {
+ var time = Date.now() - start;
+ times.push(time);
+ PerfTestRunner.log(time);
+ }
+ if (numRuns-- >= 0) {
+ runAgain();
+ if (observing)
+ observer.disconnect()
+ sandbox.innerHTML = '';
+ if (observing)
+ observer.observe(sandbox, {childList: true});
+ start = Date.now();
+ for (var i = 0; i < elems.length; ++i)
+ sandbox.appendChild(elems[i]);
+ } else {
+ PerfTestRunner.logStatistics(times);
+ if (!observing) {
+ observing = true;
+ resetState();
+ PerfTestRunner.log('\n------------\n');
+ PerfTestRunner.log('Running ' + numRuns + ' times with observation');
+ setTimeout(runAgain, 0);
+ }
+ }
+}
+
+resetState();
+PerfTestRunner.log('Running ' + numRuns + ' times without observation');
+window.addEventListener('load', runAgain);
+</script>
+</body>
diff --git a/PerformanceTests/Mutation/inner-html.html b/PerformanceTests/Mutation/inner-html.html
new file mode 100644
index 000000000..3fa45a3f3
--- /dev/null
+++ b/PerformanceTests/Mutation/inner-html.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<body>
+<pre id="log"></pre>
+<script src="../resources/runner.js"></script>
+<div id="sandbox" style="display:none"></div>
+<script>
+var sandbox = document.getElementById('sandbox');
+var observing = false;
+for (var i = 0; i < 1000; ++i)
+ sandbox.appendChild(document.createElement('div'));
+var html = sandbox.innerHTML;
+
+var observer = new WebKitMutationObserver(listener);
+var tickledSpan = document.createElement('span');
+observer.observe(tickledSpan, {attributes: true});
+
+function resetState() {
+ window.start = null;
+ window.numRuns = 25;
+ window.times = [];
+}
+
+function runAgain() {
+ tickledSpan.setAttribute('data-foo', numRuns);
+}
+
+function listener(mutations) {
+ if (start) {
+ var time = Date.now() - start;
+ times.push(time);
+ PerfTestRunner.log(time);
+ }
+ if (numRuns-- >= 0) {
+ runAgain();
+ start = Date.now();
+ for (var i = 0; i < 100; ++i)
+ sandbox.innerHTML = html;
+ } else {
+ PerfTestRunner.logStatistics(times);
+ if (!observing) {
+ observer.observe(sandbox, {childList: true});
+ observing = true;
+ resetState();
+ PerfTestRunner.log('\n------------\n');
+ PerfTestRunner.log('Running ' + numRuns + ' times with observation');
+ setTimeout(runAgain, 0);
+ }
+ }
+}
+
+resetState();
+PerfTestRunner.log('Running ' + numRuns + ' times without observation');
+window.addEventListener('load', runAgain);
+</script>
+</body>
diff --git a/PerformanceTests/Mutation/remove-child-deep.html b/PerformanceTests/Mutation/remove-child-deep.html
new file mode 100644
index 000000000..ffba0756b
--- /dev/null
+++ b/PerformanceTests/Mutation/remove-child-deep.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<body>
+<pre id="log"></pre>
+<script src="../resources/runner.js"></script>
+<div id="sandbox" style="display:none"></div>
+<script>
+var sandbox = document.getElementById('sandbox');
+var node = sandbox;
+for (var i = 0; i < 200; ++i)
+ node = node.appendChild(document.createElement('div'));
+var observing = false;
+
+var observer = new WebKitMutationObserver(listener);
+var tickledSpan = document.createElement('span');
+observer.observe(tickledSpan, {attributes: true});
+
+function resetState() {
+ window.start = null;
+ window.numRuns = 25;
+ window.times = [];
+}
+
+function runAgain() {
+ tickledSpan.setAttribute('data-foo', numRuns);
+}
+
+function hideFromObservation(func) {
+ if (observing)
+ observer.disconnect();
+ func();
+ if (observing)
+ observer.observe(sandbox, {childList: true, subtree: true});
+}
+
+function listener(mutations) {
+ if (start) {
+ var time = Date.now() - start;
+ times.push(time);
+ PerfTestRunner.log(time);
+ }
+ if (numRuns-- >= 0) {
+ runAgain();
+ hideFromObservation(function() {
+ for (var i = 0; i < 50000; ++i)
+ node.appendChild(document.createElement('div'));
+ });
+ start = Date.now();
+ while (node.firstChild)
+ node.removeChild(node.firstChild);
+ } else {
+ PerfTestRunner.logStatistics(times);
+ if (!observing) {
+ observing = true;
+ resetState();
+ PerfTestRunner.log('\n------------\n');
+ PerfTestRunner.log('Running ' + numRuns + ' times with observation');
+ setTimeout(runAgain, 0);
+ }
+ }
+}
+
+resetState();
+PerfTestRunner.log('Running ' + numRuns + ' times without observation');
+window.addEventListener('load', runAgain);
+</script>
+</body>
diff --git a/PerformanceTests/Mutation/remove-child.html b/PerformanceTests/Mutation/remove-child.html
new file mode 100644
index 000000000..182f28b3e
--- /dev/null
+++ b/PerformanceTests/Mutation/remove-child.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<body>
+<pre id="log"></pre>
+<script src="../resources/runner.js"></script>
+<div id="sandbox" style="display:none"></div>
+<script>
+var sandbox = document.getElementById('sandbox');
+var observing = false;
+
+var observer = new WebKitMutationObserver(listener);
+var tickledSpan = document.createElement('span');
+observer.observe(tickledSpan, {attributes: true});
+
+function resetState() {
+ window.start = null;
+ window.numRuns = 25;
+ window.times = [];
+}
+
+function runAgain() {
+ tickledSpan.setAttribute('data-foo', numRuns);
+}
+
+function hideFromObservation(func) {
+ if (observing)
+ observer.disconnect()
+ func();
+ if (observing)
+ observer.observe(sandbox, {childList: true});
+}
+
+function listener(mutations) {
+ if (start) {
+ var time = Date.now() - start;
+ times.push(time);
+ PerfTestRunner.log(time);
+ }
+ if (numRuns-- >= 0) {
+ runAgain();
+ hideFromObservation(function() {
+ for (var i = 0; i < 50000; ++i)
+ sandbox.appendChild(document.createElement('div'));
+ });
+ start = Date.now();
+ while (sandbox.firstChild)
+ sandbox.removeChild(sandbox.firstChild);
+ } else {
+ PerfTestRunner.logStatistics(times);
+ if (!observing) {
+ observer.observe(sandbox, {childList: true});
+ observing = true;
+ resetState();
+ PerfTestRunner.log('\n------------\n');
+ PerfTestRunner.log('Running ' + numRuns + ' times with observation');
+ setTimeout(runAgain, 0);
+ }
+ }
+}
+
+resetState();
+PerfTestRunner.log('Running ' + numRuns + ' times without observation');
+window.addEventListener('load', runAgain);
+</script>
+</body>
diff --git a/PerformanceTests/PageLoad/svg/LICENSES b/PerformanceTests/PageLoad/svg/LICENSES
new file mode 100644
index 000000000..5488c32bd
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/LICENSES
@@ -0,0 +1,37 @@
+Licenses:
+
+All files in this directory are (to the best of our knowledge) licensed for redistribution as part of the WebKit SVN repository. We have outlined the licenses of the various files (and where we found them on the net) below:
+
+
+Public domain or Creative Commons (as implied by inclusion in OpenClipart):
+http://openclipart.org/clipart//plants/bamboo_01.svg
+http://openclipart.org/clipart//plants/cacuts_01.svg
+http://openclipart.org/clipart//food/crawfish2_ganson.svg
+http://openclipart.org/clipart//food/food_leif_lodahl_01.svg
+http://openclipart.org/clipart//logos/francobollo_gnome_ezechi_02.svg
+http://openclipart.org/clipart//animals/az-lizard_benji_park_01.svg
+
+Other (freely distributable):
+http://svg-whiz.com/svg/map/world-iso.svgz
+
+LGPL or compatible (as implied by inclusion in KDE SVN)
+http://websvn.kde.org/trunk/tests/ksvgtests/custom/worldcup.svg
+http://websvn.kde.org/trunk/tests/ksvgtests/custom/cowboy.svg
+http://websvn.kde.org/trunk/tests/ksvgtests/custom/mtsthelens.svg
+http://websvn.kde.org/trunk/tests/ksvgtests/custom/france.svg
+
+LGPL:
+http://www.kde-look.org/content/show.php?content=19524
+
+GPL:
+http://www.kde-look.org/content/show.php?content=19064
+http://www.kde-look.org/content/show.php?content=31481
+http://www.kde-look.org/content/files/42450-under%20the%20see.svg
+http://www.kde-look.org/content/files/42470-flower_from_my_garden_v2.svg
+http://www.kde-look.org/content/files/44057-drops%20on%20a%20blade.svg
+http://www.kde-look.org/content/files/33041-Samurai.svgz
+
+
+CC Attribution-NoDerivs 2.5 (as implied by submission to the SVG Logo contest)
+http://www.svglogo.com/Harvey_Rayner.svg
+
diff --git a/PerformanceTests/PageLoad/svg/files/33041-Samurai.svg b/PerformanceTests/PageLoad/svg/files/33041-Samurai.svg
new file mode 100644
index 000000000..1fd617dae
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/33041-Samurai.svg
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024px"
+ height="768px"
+ id="svg2512"
+ sodipodi:version="0.32"
+ inkscape:version="0.43"
+ sodipodi:docbase="/home/ser"
+ sodipodi:docname="Samurai.svg">
+ <defs
+ id="defs2514">
+ <linearGradient
+ id="linearGradient2764">
+ <stop
+ id="stop2766"
+ offset="0"
+ style="stop-color:#d4702e;stop-opacity:1;" />
+ <stop
+ id="stop2768"
+ offset="1"
+ style="stop-color:none" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2537">
+ <stop
+ style="stop-color:#d4702e;stop-opacity:1;"
+ offset="0"
+ id="stop2539" />
+ <stop
+ style="stop-color:#e5a54e;stop-opacity:1;"
+ offset="1"
+ id="stop2541" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2537"
+ id="linearGradient2845"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.802294,0,0,0.749655,-268.5628,653.6548)"
+ x1="855.15088"
+ y1="-870.05157"
+ x2="852.43152"
+ y2="-256.40958" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2537"
+ id="linearGradient2847"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1619.885,-231.1279)"
+ x1="-643.96783"
+ y1="800.63885"
+ x2="-643.49554"
+ y2="930.6546" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2537"
+ id="linearGradient2849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1625.236,-235.0033)"
+ x1="-1017.7118"
+ y1="806.34546"
+ x2="-1016.8927"
+ y2="937.67603" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2537"
+ id="linearGradient2851"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2344.278,193.0314)"
+ x1="-1545.5962"
+ y1="336.17212"
+ x2="-1545.3373"
+ y2="393.71863" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2537"
+ id="linearGradient2853"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2341.952,192.282)"
+ x1="-1281.3289"
+ y1="338.10291"
+ x2="-1280.2834"
+ y2="448.77362" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.0690104"
+ inkscape:cx="511.99999"
+ inkscape:cy="383.99999"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:window-width="1672"
+ inkscape:window-height="987"
+ inkscape:window-x="0"
+ inkscape:window-y="30" />
+ <metadata
+ id="metadata2517">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Samurai</dc:title>
+ <dc:date>Wed Dec 28 14:31:06 EST 2005</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Sean E. Russell</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title></dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>samurai</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://artlibre.org/licence.php/lalgb.html" />
+ <dc:description>This is patterned after a bitmap from http://6t-web-ftp2.dyndns.org/galerie/displayimage.php?pid=359&amp;fullsize=1</dc:description>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://artlibre.org/licence.php/lalgb.html">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ id="path1483"
+ d="M 0.85999016,385.23978 L 0.85999016,1.4161624 L 514.32808,1.4161624 L 1027.7961,1.4161624 L 1027.7961,385.23978 L 1027.7961,769.06336 L 514.32808,769.06336 L 0.85999016,769.06336 L 0.85999016,385.23978 z "
+ style="fill:url(#linearGradient2845);fill-opacity:1" />
+ <g
+ id="g2797"
+ transform="matrix(0.794591,0,0,0.71756,58.3023,85.23695)">
+ <path
+ sodipodi:nodetypes="ccscscscccscsccscscccccczcsccscsscccccsccscccccc"
+ id="path2780"
+ d="M 856.04456,700.62629 C 856.04456,700.62629 856.04457,671.82535 856.04457,671.82535 C 851.30494,671.43704 846.60715,669.19996 847.71251,667.61151 C 847.71251,667.61151 849.94908,668.72099 855.22169,667.91666 C 855.22169,667.91666 855.58264,661.38955 855.58264,661.38955 C 851.23116,661.20595 848.85401,659.58969 848.86328,657.78681 C 852.4174,656.94961 858.69816,659.10523 865.72894,650.54463 C 865.72894,650.54463 866.12491,643.23012 866.12491,643.23012 C 863.95831,641.85915 860.24253,642.75625 859.13039,638.70426 C 865.47845,636.58507 870.71845,635.34176 871.67938,631.09258 C 871.67938,631.09258 873.20667,626.16843 873.20667,626.16843 C 873.20667,626.16843 874.11919,630.58058 874.11919,630.58058 C 874.11919,630.58058 890.25399,627.40713 890.25399,627.40713 C 890.25399,627.40713 890.96695,624.15673 890.96695,624.15673 C 893.15043,629.90763 895.61501,639.76159 905.11259,639.26442 C 903.80103,641.06776 901.0893,642.37211 897.65652,642.91487 C 897.65652,642.91487 897.80595,648.99031 897.80595,648.99031 C 897.80595,648.99031 922.72244,646.18649 922.72244,646.18649 C 922.72244,646.18649 923.15812,641.7369 923.15812,641.7369 C 918.76259,640.63945 917.22062,641.67334 916.75506,636.43849 C 926.58358,639.18706 929.87194,631.54219 930.9578,626.50691 C 934.08245,633.61633 948.61906,631.23759 952.32204,620.6008 C 954.34492,619.92728 954.9751,621.43228 954.041,617.8668 C 948.92465,617.66866 945.20233,618.11538 942.21818,612.81142 C 948.25697,611.89056 952.18817,615.05945 962.92278,607.6316 C 962.92278,607.6316 962.93729,597.29624 962.93729,597.29624 C 960.33768,596.70019 955.03279,597.59839 953.42568,592.46485 C 952.65693,590.00925 957.49773,592.8266 962.82781,591.03629 C 967.35368,587.53903 974.81711,575.46647 974.81711,575.46647 C 974.81711,575.46647 975.26132,568.41179 975.26132,568.41179 C 975.26132,568.41179 977.14119,574.2503 977.14119,574.2503 C 977.14119,574.2503 1001.6954,580.69091 1001.6954,580.69091 C 1001.6954,580.69091 1002.224,575.01067 1002.224,575.01067 C 1002.224,575.01067 1002.3126,579.86803 1002.3126,579.86803 C 1005.7803,589.90046 1019.5383,592.10242 1024.4432,593.49758 C 1024.0561,596.24983 1020.5312,597.61129 1015.8902,598.38293 C 1015.8902,598.38293 1015.8902,608.8747 1015.8902,608.8747 C 1026.3204,613.25582 1029.3177,616.46801 1036.867,614.49199 C 1036.0236,617.20863 1033.9269,618.01038 1029.9787,618.62427 C 1029.9787,618.62427 1029.8792,622.65801 1029.8792,622.65801 C 1037.6376,633.94779 1039.0728,633.16628 1046.5445,632.13435 C 1046.2654,636.87933 1038.2122,636.9563 1035.0615,637.8078 C 1035.0615,637.8078 1035.0959,642.98536 1035.0959,642.98536 C 1042.1359,646.6406 1045.6633,650.48683 1057.0344,650.63608 C 1055.5895,654.61442 1048.7783,652.60816 1045.4435,658.13246 C 1045.4435,658.13246 1046.6818,699.33285 1046.6818,699.33285 L 856.04457,700.62631 L 856.04456,700.62629 z "
+ style="fill:url(#linearGradient2847);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.08426968" />
+ <g
+ id="g2770">
+ <path
+ style="fill:url(#linearGradient2849);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12359553"
+ d="M 590.75813,692.66901 C 592.13683,700.99627 589.15903,702.04779 594.93123,701.99705 C 600.56063,706.72368 604.67453,706.34383 609.34353,705.56537 C 614.46253,704.82967 619.65073,705.23731 624.74723,704.2879 C 624.74723,704.2879 625.53625,690.38381 625.53625,690.38381 C 630.18343,690.1744 631.61771,690.21282 637.99217,688.84605 C 641.70073,688.22347 646.26639,687.02893 650.05717,683.57859 C 639.63209,681.20086 629.29022,682.07252 629.67825,677.10098 C 622.70893,676.66029 622.16113,678.51178 622.78743,671.77715 C 628.6972,670.74625 631.31406,670.68938 635.79332,669.26892 C 638.85009,669.67035 644.91716,667.62719 645.68981,664.5925 C 640.45454,664.98394 636.39492,662.71823 628.48071,662.13169 C 628.58568,657.34613 628.57434,657.87316 622.52983,658.5538 C 621.54673,652.67897 620.46573,655.57496 629.52305,653.77657 C 633.72797,652.82834 636.91991,652.03231 643.2504,647.1624 C 639.64277,646.92954 634.38304,646.86895 630.33631,645.75391 C 625.94675,646.13723 626.12136,645.40059 626.25416,641.34703 C 622.69643,642.83598 619.14563,642.35164 621.69463,639.57796 C 626.4317,638.85162 628.61906,638.55005 633.77408,636.42617 C 637.80053,635.14638 640.01818,632.96786 641.6879,629.96689 C 635.22528,631.18076 630.13633,630.84578 624.09773,628.38227 C 622.95513,622.83091 622.55043,628.69241 632.5944,621.00024 C 636.76768,619.77194 638.10283,616.55935 639.40603,614.52601 C 628.28692,615.42901 625.641,611.76383 619.00193,610.04082 C 613.27013,608.08532 608.73223,604.93365 607.96453,598.10071 C 607.96453,598.10071 607.16613,572.76837 607.16613,572.76837 C 607.16613,572.76837 607.09703,597.62529 605.52783,602.65373 C 602.76323,606.8113 598.26683,608.288 593.56373,605.6449 C 591.47173,611.5578 590.46823,615.18954 585.73403,618.57382 C 584.57583,621.99354 580.57903,622.81237 580.57903,622.81237 C 585.97833,627.98919 590.96703,626.81953 590.93413,622.30859 C 593.50253,618.88585 597.16003,625.34988 597.90563,625.57196 C 594.47183,626.48559 592.08673,619.75381 591.91533,626.00641 C 589.69633,630.1775 584.29883,635.76301 578.64753,636.46123 C 583.31103,639.1541 589.28773,640.81689 594.76543,640.65953 C 596.85103,645.83646 589.75773,638.42786 589.16143,646.16445 C 587.35763,650.60114 580.36753,649.20756 576.34613,649.90677 C 579.61403,654.22226 587.63013,654.92971 592.64393,655.07565 C 594.74623,658.70732 593.22373,661.27759 589.24063,659.40251 C 588.80733,664.64513 580.33563,664.9293 575.98843,664.12759 C 575.37143,668.61215 580.07453,671.26464 584.60543,670.198 C 584.60543,670.198 591.75603,672.11121 591.75603,672.11121 C 593.73943,679.37875 588.05213,673.00492 587.84403,678.58088 C 584.52003,680.08224 576.21333,680.79722 572.79493,678.09892 C 576.59523,684.43593 581.07713,686.69926 585.96793,689.27599 C 590.80383,689.0481 591.20363,689.28139 590.75813,692.66901 z "
+ id="path2745"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccc" />
+ <g
+ id="g2672"
+ transform="translate(-58.15992,138.915)">
+ <path
+ sodipodi:nodetypes="csssccc"
+ id="path2643"
+ d="M 683.61508,575.35481 C 753.69684,519.69729 808.96573,513.20621 913.75779,564.07941 C 1003.9609,607.87016 1180.013,598.76651 1243.4014,570.08298 C 1243.4014,570.08298 1268.209,557.64363 1277.9127,552.63902 C 1277.9127,552.63902 1276.8969,811.76896 1276.8969,811.76896 L 532.65854,770.64455 C 535.85199,639.7132 616.55268,634.43359 683.61508,575.35481 z "
+ style="fill:url(#linearGradient2851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccssssc"
+ id="path2609"
+ d="M 1277.2659,604.85371 C 1022.5474,464.37795 929.19286,569.35246 894.98279,588.58365 C 768.24479,647.29284 696.65059,599.05744 653.59109,573.89876 C 578.07609,529.77711 505.87479,546.51419 472.98189,570.33236 C 472.46769,570.70473 471.46969,814.02554 471.46969,814.02554 C 471.46969,814.02554 1276.664,813.15168 1276.664,813.15168 C 1276.664,813.15168 1278.6691,603.76235 1277.2659,604.85371 z "
+ style="fill:url(#linearGradient2853);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <g
+ transform="translate(-518.9352,-325.7317)"
+ id="g2657">
+ <path
+ id="path1473"
+ d="M 508.9565,992.05516 C 508.98401,852.43555 509.08548,843.94748 510.80045,837.80516 C 514.94287,822.96873 541.65824,759.37531 555.04471,732.48588 C 569.25653,703.93857 574.96419,695.50981 590.43911,680.2174 C 620.87377,650.14169 653.7018,634.51125 694.0243,630.89729 C 707.85415,629.65777 713.80208,627.89193 715.58056,624.49757 C 716.41509,622.90482 718.25142,621.51925 720.19547,621.0155 C 722.19489,620.4974 723.56414,619.44134 723.79153,618.24199 C 724.31081,615.50311 725.7363,614.88997 729.24507,615.89627 C 730.92249,616.37735 732.50947,616.5564 732.77171,616.29417 C 733.03394,616.03193 731.65593,612.32713 729.70946,608.06127 C 727.76298,603.79541 725.15843,597.70525 723.92156,594.52758 C 721.61693,588.6067 719.20687,585.992 714.1069,583.87952 C 711.53565,582.81447 710.77357,582.96981 707.42642,585.24125 C 704.23247,587.40872 702.52964,587.80516 696.41356,587.80516 C 692.41687,587.80516 687.2204,588.50039 684.80311,589.35852 C 681.55061,590.51314 678.50216,590.74761 672.92738,590.27196 C 661.51309,589.29806 658.18348,588.12486 652.95565,583.23484 C 648.62183,579.18105 647.78271,578.80516 643.06706,578.80516 C 638.81695,578.80516 637.53331,578.36716 635.74043,576.30516 C 633.02573,573.18298 631.93303,573.18298 627.33224,576.30516 C 625.30607,577.68016 622.47358,578.87058 621.03783,578.95053 C 608.48017,579.64982 603.20344,575.79293 602.04203,565.06606 L 601.42738,559.38903 L 596.99256,558.10707 C 590.43873,556.21258 589.49033,554.1513 593.38192,550.25971 C 596.40444,547.23719 601.15805,547.03866 605.60353,549.74929 L 608.77969,551.68595 L 616.73097,547.8408 L 624.68226,543.99564 L 625.29094,537.6504 C 625.62571,534.16052 626.01836,530.00898 626.1635,528.42476 L 626.42738,525.54436 L 617.42738,525.71836 C 609.6899,525.86794 607.18941,525.46166 599.60235,522.82211 C 594.74859,521.13348 588.57935,519.28049 585.89293,518.70435 C 579.81744,517.40139 575.70846,514.34611 576.12295,511.43977 C 576.45637,509.10189 579.7152,508.70096 585.40004,510.29842 L 588.3727,511.13374 L 586.66132,508.52185 C 582.97158,502.8906 589.02978,500.3195 593.08002,505.79775 C 595.27967,508.77294 595.30333,508.77875 597.14891,506.79775 C 598.16992,505.70182 599.24234,504.80516 599.53208,504.80516 C 600.81053,504.80516 603.74144,506.91998 607.71949,510.71285 C 610.08015,512.96362 612.78015,514.79687 613.71949,514.78673 C 616.75083,514.75403 631.38323,511.96255 634.26352,510.86746 C 639.11217,509.02401 643.89244,509.63839 649.45268,512.81964 C 654.63809,515.78642 654.82984,515.81595 661.57441,514.6858 C 672.4132,512.86962 680.54496,516.22163 684.59282,524.17428 C 685.4693,525.89626 688.60314,529.57241 691.5569,532.34348 C 695.9493,536.46422 696.92738,537.98316 696.92738,540.68371 C 696.92738,543.1651 697.71467,544.64657 700.09556,546.64539 C 703.19816,549.25011 703.87038,549.93357 709.84237,556.55516 C 712.41408,559.4066 713.39342,559.80516 717.8283,559.80516 C 721.26664,559.80516 724.60587,560.6501 728.27047,562.44739 C 734.42103,565.4639 737.09013,565.22199 741.85031,561.21656 C 746.14957,557.59897 745.73781,555.9755 739.89492,553.50695 C 731.53696,549.97581 735.12279,545.93017 744.42738,548.39329 C 752.93807,550.64625 754.58045,550.31499 757.4519,545.76632 C 760.12774,541.52751 763.14959,539.80516 767.91069,539.80516 C 771.26796,539.80516 773.92738,538.91591 773.92738,537.79333 C 773.92738,537.35451 772.19225,537.2282 770.07154,537.51265 C 765.55839,538.11799 761.92738,536.50394 761.92738,533.89242 C 761.92738,531.55794 763.41179,530.39129 768.42738,528.78386 C 776.29007,526.26397 777.19333,525.15858 776.72137,518.63386 C 776.40762,514.29631 775.70706,512.19954 773.94483,510.32374 C 769.13931,505.20849 760.83211,500.51404 749.29101,496.3917 C 742.76601,494.06105 735.45725,490.90861 733.04932,489.38628 L 728.67127,486.61839 L 725.83982,488.71178 C 720.71923,492.49759 715.92738,490.9958 715.92738,485.60516 C 715.92738,482.95357 715.68901,482.80516 711.43026,482.80516 C 707.70603,482.80516 706.27558,482.21109 703.10705,479.34852 C 699.33514,475.94083 699.18289,475.90006 692.35417,476.4694 C 683.72163,477.18913 672.5835,474.1859 669.37666,470.27385 L 667.32593,467.77216 L 663.21769,471.28866 C 658.81269,475.05917 654.55214,475.87563 653.5061,473.1497 C 652.71623,471.09133 655.78503,467.69765 662.19974,463.53571 C 664.82455,461.83271 666.81211,459.95934 666.61655,459.37267 C 666.42099,458.786 664.04843,457.47805 661.34419,456.46611 C 655.36237,454.2277 643.90131,454.90433 636.19872,457.95062 C 633.32493,459.08718 632.66545,459.00032 630.19872,457.16036 C 626.57193,454.45512 626.23113,452.17519 629.01119,449.21595 C 631.4956,446.57141 634.86844,446.12689 637.93216,448.04022 C 639.6204,449.09454 640.13048,448.96021 641.41784,447.12224 C 643.6657,443.91298 648.51731,441.24528 657.34921,438.36226 C 663.57698,436.32931 666.34332,434.75699 670.34432,430.97617 C 673.14,428.33433 676.70592,425.33646 678.26858,424.31423 C 683.46344,420.91596 683.5759,418.33521 678.91694,409.436 C 676.14495,404.14114 674.9658,400.78821 675.34475,399.27835 C 675.65632,398.03698 678.10247,395.6179 680.79013,393.89323 C 685.04937,391.16008 685.74004,390.23858 686.22191,386.64596 C 686.52554,384.38218 687.43703,381.86694 688.24743,381.05654 C 689.69763,379.60634 696.10818,376.7145 706.92738,372.6299 C 713.69671,370.07426 716.6365,367.5016 717.44065,363.42958 C 718.49339,358.09874 723.94998,345.15802 726.13315,342.81467 C 728.69737,340.0623 733.02807,338.20422 738.93109,337.32372 C 742.84919,336.73929 743.70907,336.95447 745.54402,338.97855 C 748.24915,341.96249 750.2118,352.18036 749.34089,358.74562 C 748.7448,363.23913 748.96688,364.16816 751.39943,367.3574 C 754.12313,370.92836 757.93125,373.15406 763.24328,374.27966 C 766.27071,374.92117 768.92738,379.56478 768.92738,384.21496 C 768.92738,385.57568 770.50238,391.88507 772.42738,398.23582 C 774.35238,404.58657 775.92738,410.74396 775.92738,411.9189 C 775.92738,413.76337 776.34079,413.97248 778.95401,413.44983 C 781.19628,413.00138 782.39577,413.32933 783.58248,414.71531 C 785.13655,416.53034 785.27738,416.53177 788.30585,414.76342 C 791.87646,412.67849 797.22371,413.27574 806.68721,416.81649 C 809.61057,417.91026 814.34802,418.80314 817.21489,418.80068 C 821.09637,418.79734 824.21484,419.65949 829.42738,422.17701 C 845.49227,429.93594 847.57757,430.80516 850.12663,430.80516 C 854.17102,430.80516 857.21215,432.26492 861.404,436.21834 C 864.85557,439.47359 865.73639,439.80516 870.9324,439.80516 C 880.81715,439.80516 884.80339,445.08299 879.17196,450.71443 C 875.56442,454.32197 863.71251,457.43437 859.57414,455.86096 C 855.64805,454.36826 851.86557,454.55112 849.9015,456.32858 C 848.97565,457.16646 844.89022,458.76153 840.82276,459.87316 C 836.7553,460.9848 831.17738,463.42582 828.42738,465.29765 C 822.38767,469.40868 816.87553,471.80516 813.4595,471.80516 C 812.06683,471.80516 810.92738,472.25516 810.92738,472.80516 C 810.92738,473.35516 811.63368,473.80516 812.49693,473.80516 C 813.55263,473.80516 813.96186,474.54178 813.74693,476.05516 C 813.3869,478.59017 812.6182,478.63563 793.27242,477.26591 C 782.73835,476.52008 775.44197,477.21073 776.45964,478.85736 C 776.78296,479.3805 779.38296,479.56201 782.23743,479.26073 C 785.0919,478.95945 788.77738,479.10734 790.42738,479.58939 C 792.86082,480.30031 793.43462,481.01722 793.46569,483.3855 C 793.48676,484.99131 794.04926,487.57195 794.71569,489.12026 C 795.38212,490.66856 795.92738,492.32345 795.92738,492.79778 C 795.92738,493.27211 797.27524,494.71506 798.92263,496.00434 C 802.4033,498.72837 805.14224,507.4346 804.77153,514.59613 C 804.59113,518.08132 804.95186,519.23458 806.4852,520.07477 C 810.62377,522.34248 815.92738,528.5738 815.92738,531.16857 C 815.92738,534.32218 833.21011,560.44273 835.85137,561.28103 C 836.83821,561.59425 838.40993,561.55722 839.34408,561.19875 C 840.82005,560.63237 840.74026,560.39421 838.73495,559.38058 C 836.47395,558.2377 836.43457,557.95275 836.78382,545.25966 C 837.16366,531.45508 837.61286,529.71257 841.43777,527.20639 C 843.55115,525.82166 844.54122,525.77766 848.83354,526.87775 C 853.59393,528.0978 853.92624,528.04341 857.26333,525.49808 C 862.42231,521.56314 868.85313,520.10303 874.44173,521.59776 C 880.97844,523.34606 881.36543,523.24496 886.87831,518.34874 C 889.63804,515.89771 892.91556,513.34967 894.16169,512.68643 C 895.40782,512.02319 898.01119,510.21159 899.94695,508.66066 C 901.97319,507.03724 905.60734,505.43479 908.51215,504.88391 C 911.28724,504.35762 915.61817,503.40821 918.13644,502.7741 C 923.43023,501.44111 924.43608,501.82022 932.479,508.1798 C 937.5453,512.18576 946.6191,518.29866 953.34701,522.23832 C 956.63875,524.16586 956.66358,524.16493 961.88818,521.91737 C 967.27642,519.59941 971.08636,519.60128 978.59547,521.92558 C 981.95592,522.96574 984.94,526.55564 984.90827,529.51998 C 984.89776,530.50183 982.53526,535.08271 979.65827,539.69971 C 974.74004,547.59249 973.91931,548.38619 965.92738,552.97837 C 956.90838,558.1607 957.47409,558.07105 945.68418,556.18632 C 942.57009,555.6885 941.08143,556.13952 936.82652,558.86988 C 932.37501,561.72641 930.52699,562.24573 922.56972,562.87629 C 913.28423,563.6121 909.92738,564.38979 909.92738,565.80516 C 909.92738,566.23747 910.60238,566.8502 911.42738,567.16679 C 912.48128,567.57121 912.92738,569.2151 912.92738,572.69432 C 912.92738,577.42017 912.78568,577.67737 909.82358,578.32796 C 908.11649,578.7029 904.17899,578.65469 901.07358,578.22082 C 893.6784,577.18761 863.9962,577.59777 851.92738,578.89994 C 843.59393,579.79908 841.79053,580.35694 837.24109,583.44295 C 831.35313,587.43692 827.6188,587.65401 827.10482,584.03222 C 826.86136,582.31665 825.1594,581.02343 820.1644,578.75859 C 816.52457,577.10821 811.26972,574.05258 808.48695,571.96829 C 801.17795,566.49387 801.40184,566.56487 795.3859,567.81377 C 791.65286,568.58875 789.42348,569.65986 788.4801,571.13168 C 786.99128,573.4545 781.92738,588.41752 781.92738,590.49396 C 781.92738,591.17831 784.0596,594.67829 786.66565,598.2717 C 790.56169,603.64385 791.90371,604.80516 794.21573,604.80516 C 796.93765,604.80516 797.01795,604.65666 796.72746,600.16023 C 796.3521,594.35012 797.95405,593.5517 801.77657,597.64372 C 804.27897,600.32254 805.05948,600.59713 808.7606,600.1007 C 812.25968,599.63138 812.92738,599.81912 812.92738,601.27228 C 812.92738,602.22403 811.5921,604.25008 809.96009,605.7746 C 807.38613,608.17905 807.10667,608.94352 807.85188,611.54189 C 808.9414,615.34083 807.84035,617.2297 805.05223,616.34478 C 803.53041,615.86178 802.92738,616.09608 802.92738,617.17038 C 802.92738,617.99538 803.82738,618.95603 804.92738,619.30516 C 808.02053,620.28689 807.5238,623.80516 804.29205,623.80516 C 800.494,623.80516 796.73566,628.18792 797.1223,632.16612 C 797.4679,635.72204 795.96255,635.19685 817.42738,639.25026 C 851.91383,645.76267 880.94592,657.68666 903.46476,674.58732 C 919.2564,686.43914 940.22763,709.11474 966.55512,742.80516 C 971.49781,749.13016 992.45181,776.80516 1013.1196,804.30516 C 1033.7873,831.80516 1053.1116,857.3017 1056.0623,860.96414 C 1096.0436,910.58808 1116.8594,929.94948 1165.4274,962.68788 C 1224.1345,1002.2608 1276.7803,1024.9753 1320.9274,1029.7796 C 1337.4058,1031.5729 1375.7317,1032.6571 1391.4274,1031.7739 C 1422.1201,1030.0469 1434.8093,1025.6561 1484.4336,999.59096 C 1509.4726,986.43925 1524.2413,979.5964 1537.9274,974.80536 C 1543.1524,972.97627 1547.8272,971.13066 1548.3159,970.70399 C 1548.8045,970.27733 1547.792,968.51593 1546.0659,966.78978 C 1542.0671,962.79104 1542.04,961.37768 1545.9771,962.1651 C 1549.3389,962.83746 1549.301,962.5631 1545.2799,957.12188 C 1541.1662,951.55537 1542.5352,951.33055 1549.9913,956.34817 C 1555.2525,959.8887 1556.8686,959.79567 1556.9121,955.94977 C 1556.9205,955.20431 1558.0454,950.92931 1559.4119,946.44977 C 1561.1941,940.6075 1563.0706,936.89175 1566.0503,933.30516 C 1568.335,930.55516 1571.4408,925.56469 1572.9522,922.21523 C 1574.8334,918.04613 1577.1553,914.93288 1580.3138,912.34477 C 1585.0957,908.42629 1586.0017,905.94163 1583.4274,903.80516 C 1582.6024,903.12047 1581.9274,901.94037 1581.9274,901.18272 C 1581.9274,900.42506 1581.2845,899.80516 1580.4988,899.80516 C 1579.7131,899.80516 1578.4756,899.21269 1577.7488,898.48856 C 1577.022,897.76444 1575.1684,896.34862 1573.6297,895.34231 C 1572.091,894.33599 1570.1664,892.11596 1569.353,890.4089 C 1568.5395,888.70184 1567.2304,886.18928 1566.4439,884.82543 C 1565.6574,883.46158 1564.7278,880.05544 1564.378,877.25623 C 1563.8097,872.70744 1564.0707,871.64868 1566.8348,867.29018 C 1569.5915,862.94328 1569.9274,861.58937 1569.9274,854.82522 L 1569.9274,847.23684 L 1575.1774,842.20661 C 1578.0649,839.43998 1582.1149,835.94495 1584.1774,834.43988 C 1590.9484,829.49884 1589.4299,828.057 1573.8613,824.64476 C 1564.5333,822.60032 1560.7246,822.35513 1537.9274,822.33154 C 1515.8011,822.30865 1512.4677,822.10671 1512.7324,820.80516 C 1513.3213,817.90807 1516.1525,816.98228 1526.6008,816.27012 C 1542.6377,815.17705 1561.8565,816.24685 1573.9274,818.90453 C 1579.7024,820.17602 1586.6774,821.23632 1589.4274,821.26075 C 1592.1774,821.28518 1594.8774,821.58044 1595.4274,821.9169 C 1595.9774,822.25336 1597.6524,822.82131 1599.1497,823.17901 C 1600.647,823.53671 1602.672,824.68044 1603.6497,825.72063 C 1605.9557,828.17392 1620.7435,835.95209 1623.7358,836.28565 C 1627.3715,836.69091 1631.6129,841.492 1632.8936,846.65184 C 1633.5288,849.21117 1635.2131,853.0008 1636.6365,855.07324 C 1638.2071,857.35996 1639.4051,860.72086 1639.6838,863.62224 C 1640.1197,868.15789 1639.9581,868.54434 1636.5353,871.15505 C 1633.6947,873.32172 1632.9274,874.5988 1632.9274,877.16027 C 1632.9274,878.97773 1631.7053,882.37575 1630.1584,884.85938 C 1628.6354,887.30456 1626.8194,890.59894 1626.1228,892.18023 C 1625.0029,894.72252 1624.4689,894.99244 1621.5094,894.51218 C 1618.2997,893.99132 1618.1376,894.11945 1617.556,897.63711 C 1617.2224,899.65454 1616.9445,903.7174 1616.9384,906.66569 C 1616.9269,912.24615 1616.7725,911.85047 1628.7497,936.9184 C 1631.5387,942.75568 1634.1195,948.72243 1634.4848,950.17784 C 1635.4451,954.00404 1636.5521,954.24148 1639.6654,951.28902 C 1642.8319,948.28611 1649.8574,944.4018 1650.6638,945.20818 C 1650.9622,945.50658 1650.0185,947.30795 1648.5668,949.21122 C 1647.1152,951.11449 1645.9274,952.84137 1645.9274,953.04872 C 1645.9274,953.25607 1652.4442,953.22966 1660.4093,952.99003 C 1702.7324,951.71675 1757.4597,961.71069 1782.9432,975.36637 L 1796.7134,983.75315 L 1788.6833,1059.0552 L 1788.9392,1139.8052 L 1148.9333,1139.8052 L 508.92738,1139.8052 L 508.9565,992.05516 z M 1625.9274,854.19391 C 1625.9274,851.61668 1625.2894,850.54137 1622.9353,849.15078 C 1621.2897,848.17868 1619.4803,845.98041 1618.9144,844.26573 C 1618.1603,841.98085 1616.2278,840.16745 1611.6792,837.47664 C 1605.9727,834.10084 1600.9284,832.73027 1600.9267,834.55516 C 1600.9264,834.96766 1602.4801,838.45516 1604.3795,842.30516 C 1606.279,846.15516 1608.0836,850.52591 1608.3899,852.01793 C 1608.8322,854.17214 1609.8199,854.98538 1613.1871,855.96767 C 1615.5193,856.648 1617.7639,857.74795 1618.1751,858.412 C 1618.7379,859.32084 1619.7888,859.3536 1622.4251,858.54448 C 1625.4966,857.60181 1625.9274,857.06669 1625.9274,854.19391 z M 1587.9129,851.51162 C 1589.9461,852.04331 1591.4848,849.97742 1590.7338,847.72428 C 1590.2731,846.34221 1583.9129,851.42941 1583.9578,853.14405 C 1583.9745,853.78266 1584.4235,853.55951 1584.9555,852.64816 C 1585.5506,851.6286 1586.6883,851.19138 1587.9129,851.51162 z M 799.17738,614.41311 C 802.58714,611.82474 799.82822,609.31241 796.14351,611.65042 C 795.43575,612.09951 795.14721,613.21446 795.5005,614.13511 C 796.26461,616.12635 796.86106,616.17145 799.17738,614.41311 z M 894.39615,567.85569 C 895.02395,566.83989 892.00537,566.21642 882.42738,565.3836 C 879.12738,565.09666 874.40238,564.6172 871.92738,564.31812 L 867.42738,563.77434 L 871.42738,565.32919 C 878.75578,568.17782 893.21415,569.7682 894.39615,567.85569 z M 754.45331,462.55516 C 754.28746,457.7136 753.49518,452.75587 752.53562,450.55516 C 751.05532,447.16014 750.54683,446.81098 747.16396,446.86661 C 745.10884,446.90041 740.30559,447.46851 736.49007,448.12906 C 729.68456,449.30724 729.49951,449.4207 726.74981,454.10076 L 723.94686,458.87146 L 728.71248,458.23928 C 734.46269,457.47649 741.04999,459.0578 746.26729,462.45339 C 749.41847,464.50429 750.00098,465.37578 749.51497,467.3122 C 749.01444,469.30647 749.34893,469.73641 751.67506,470.08868 C 753.18883,470.31793 754.4968,470.57292 754.58165,470.65533 C 754.66649,470.73774 754.60874,467.09266 754.45331,462.55516 z M 742.0666,466.77189 C 740.76816,465.69019 738.96816,464.82013 738.0666,464.83843 C 736.78157,464.86451 736.93748,465.29665 738.78816,466.83843 C 740.0866,467.92013 741.8866,468.79019 742.78816,468.77189 C 744.07319,468.74581 743.91728,468.31367 742.0666,466.77189 z M 776.61786,419.06706 C 775.07922,417.52842 774.92738,417.52308 774.92738,419.00754 C 774.92738,419.90456 775.48988,420.83939 776.17738,421.08492 C 778.22058,421.81464 778.42571,420.87492 776.61786,419.06706 z "
+ style="fill:#b06e32"
+ sodipodi:nodetypes="cssssssssssssssssssssscccsccccccccssscccssssssssssssssssssssssssssscccsssscccssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssscccssssssssssssssssssssssssssssccccccccsssssssssccsssccssccscccccssscccssssccsssccssc" />
+ <path
+ id="path1471"
+ d="M 508.92738,991.98891 L 508.92738,844.17267 L 517.30897,822.73891 C 539.72615,765.41274 558.58886,724.48144 572.44917,703.08692 C 579.25107,692.58763 599.06344,672.46566 612.33037,662.58251 C 635.09877,645.62129 660.68941,635.70455 689.01929,632.86444 C 699.32339,631.83145 703.77294,631.15865 712.12573,629.3706 C 713.73843,629.02538 715.35251,627.689 716.13746,626.04907 C 716.93937,624.37372 718.78009,622.87405 720.86415,622.19814 C 722.82484,621.56223 724.62468,620.15246 725.09336,618.8855 C 725.82605,616.90486 726.36917,616.74886 730.41832,617.35607 C 735.76351,618.15763 736.03935,617.38023 732.53416,611.39302 C 731.21789,609.1447 728.70253,603.48016 726.94448,598.80516 C 722.40561,586.73542 713.91669,579.09659 709.0226,582.67801 C 705.21867,585.46166 700.56905,586.80589 694.7095,586.81598 C 691.25433,586.82194 686.30512,587.47083 683.71124,588.25796 C 674.01644,591.19994 657.0125,587.54271 652.25291,581.49187 C 649.47229,577.95689 646.17272,576.53655 642.3899,577.24621 C 639.58405,577.77259 638.57715,577.3954 635.96072,574.83775 C 634.25446,573.16983 632.45847,571.80516 631.96963,571.80516 C 631.48079,571.80516 629.63051,573.02552 627.8579,574.51708 C 625.27591,576.68968 623.42111,577.29443 618.53118,577.55805 C 608.61538,578.09261 604.14004,574.22533 603.05564,564.18518 L 602.42738,558.36827 L 597.67738,557.02859 C 592.3053,555.51346 591.3589,553.01717 595.14989,550.36186 C 598.12495,548.27805 600.43477,548.40033 604.83736,550.87472 L 608.51965,552.94429 L 617.08832,548.85339 L 625.65698,544.76249 L 626.38289,538.03382 C 626.78213,534.33306 627.18047,529.73016 627.26808,527.80516 L 627.42738,524.30516 L 618.65235,524.66775 C 610.74145,524.99464 608.77193,524.67289 598.65235,521.40049 C 592.47862,519.40407 585.52253,517.31312 583.19439,516.75393 C 580.66175,516.14563 578.51566,514.90437 577.85175,513.66384 C 575.97708,510.16098 578.05923,509.4293 584.30204,511.39717 C 590.70615,513.41589 592.22196,512.81208 589.09799,509.48677 C 586.63662,506.86676 586.22736,503.80516 588.33849,503.80516 C 589.11459,503.80516 590.88554,505.15516 592.27393,506.80516 C 595.06238,510.11905 596.6924,510.58109 597.56575,508.30516 C 598.6194,505.55941 602.30702,506.75428 606.97784,511.35487 C 609.51838,513.8572 612.45884,515.93721 613.51219,515.97709 C 616.28436,516.08206 631.97457,513.11792 635.26123,511.86833 C 639.79962,510.14284 642.85611,510.6176 648.68715,513.95378 C 654.08355,517.04129 654.31146,517.08009 660.42922,515.95285 C 670.85471,514.03188 678.80951,516.88318 683.04608,524.05959 C 685.47619,528.17601 687.6853,530.66797 692.22683,534.41585 C 693.79298,535.70831 695.04435,538.03428 695.45482,540.41585 C 695.95018,543.28998 697.46968,545.63675 701.27626,549.40671 C 704.10938,552.21256 707.61305,555.92506 709.06221,557.65671 C 711.42801,560.4837 712.25598,560.80516 717.17144,560.80516 C 721.3724,560.80516 723.99149,561.52324 728.43063,563.89209 L 734.21541,566.97903 L 738.13408,565.21195 C 742.33025,563.31974 747.23003,558.2776 746.66878,556.42927 C 746.48105,555.81101 744.32493,554.28514 741.87741,553.03845 C 733.56616,548.80496 735.78704,547.94453 748.66458,550.4089 C 753.72955,551.37818 756.66082,550.16916 758.46529,546.36652 C 760.21143,542.68679 763.91186,540.80516 769.40229,540.80516 C 771.43347,540.80516 773.366,539.96717 774.76221,538.48097 C 777.59103,535.46983 776.78013,534.80137 771.82446,536.05925 C 765.51274,537.66134 760.15933,534.23797 764.9869,531.68682 C 765.77916,531.26814 769.01488,529.79839 772.17738,528.4207 L 777.92738,525.91581 L 777.92738,520.31082 C 777.92738,517.22808 777.2527,513.40115 776.42809,511.80653 C 773.79377,506.71232 763.00544,500.01272 749.91072,495.33912 C 743.30411,492.98118 736.1148,489.87142 733.93448,488.42856 C 729.17485,485.27878 728.47548,485.22887 725.20025,487.80516 C 722.1382,490.21377 719.63014,490.35686 717.85999,488.22396 C 716.83085,486.98393 716.80444,486.23167 717.73754,484.73753 C 719.51116,481.89752 719.37732,481.80516 713.4882,481.80516 C 708.59453,481.80516 707.5931,481.41056 703.5031,477.87069 C 699.36032,474.28514 698.66823,474.0191 695.69888,474.87069 C 690.70456,476.30304 686.38685,476.00229 678.78172,473.6923 C 674.04658,472.25405 671.32619,470.81726 670.26147,469.1923 C 668.19672,466.04109 667.38091,466.1627 662.7957,470.30516 C 658.90357,473.82147 654.92738,474.93128 654.92738,472.50133 C 654.92738,470.75952 660.631,465.43035 664.67738,463.39143 C 668.32156,461.55518 668.76339,459.84536 666.17738,457.58657 C 662.68456,454.53573 657.0013,453.51269 647.5148,454.22715 C 642.51672,454.60357 637.99988,455.33761 637.47738,455.85836 C 636.13771,457.19352 631.55798,457.03576 630.12738,455.60516 C 628.01391,453.49169 628.7153,449.85891 631.48003,448.59922 C 633.5531,447.65466 634.55747,447.74615 636.82597,449.08618 C 639.55779,450.69991 639.68315,450.669 642.52332,447.68141 C 646.1561,443.86006 648.78223,442.48524 658.52181,439.30592 C 664.72577,437.28074 667.40336,435.72499 671.88888,431.53931 C 674.97388,428.66053 678.70766,425.306 680.18618,424.08481 C 684.62142,420.42149 684.5772,417.94877 679.91676,409.0181 C 675.11126,399.80948 675.30966,398.40437 681.94173,394.67694 C 685.12648,392.88701 686.16139,391.58567 686.96244,388.36371 C 688.78363,381.03857 687.90467,381.73923 703.42738,375.23858 C 709.47738,372.70495 714.96686,370.18494 715.62623,369.63857 C 716.28559,369.09221 717.33697,366.99367 717.96261,364.97517 C 720.36428,357.22669 724.38802,347.19461 726.10718,344.6689 C 729.24377,340.06078 742.10331,336.58109 745.06208,339.53986 C 746.88539,341.36317 748.77184,353.42895 748.20719,359.65604 L 747.6942,365.31336 L 752.76795,370.05926 C 756.06793,373.146 758.73067,374.80516 760.38454,374.80516 C 763.85778,374.80516 766.70151,377.93033 767.38584,382.49938 C 767.69934,384.59256 769.40321,391.25516 771.1722,397.30516 C 773.6244,405.69171 774.33162,409.89218 774.1489,414.98489 C 773.93667,420.90044 774.13807,421.73725 775.90937,422.29944 C 779.17417,423.33565 780.24579,421.94006 778.37624,419.08677 C 777.00489,416.99383 776.952,416.4043 778.0719,415.69468 C 780.19131,414.35172 782.93306,414.65639 783.56575,416.30516 C 784.30305,418.22654 786.33278,418.22654 787.92738,416.30516 C 789.77411,414.07998 796.4141,414.48914 804.42738,417.32189 C 808.50301,418.76266 813.65022,419.79826 816.74815,419.8008 C 820.68828,419.80403 823.54256,420.57194 827.74815,422.76023 C 838.45661,428.33216 846.43147,431.55886 851.18945,432.2448 C 854.70769,432.75201 857.13962,433.95962 860.50027,436.86824 C 864.60325,440.41935 865.5865,440.80516 870.53365,440.80516 C 875.02321,440.80516 876.46353,441.2504 878.47233,443.25921 C 880.60308,445.38995 880.77511,446.04524 879.77817,448.23329 C 877.9089,452.3359 871.11615,454.3438 859.96899,454.08876 C 852.89478,453.92691 850.10903,454.23578 848.91753,455.31407 C 848.04134,456.10701 843.74762,457.79878 839.37592,459.07355 C 834.26451,460.56402 829.72564,462.69838 826.65978,465.05321 C 823.03971,467.8337 819.97085,469.12797 813.90978,470.43043 C 809.51946,471.37386 805.92738,472.45403 805.92738,472.8308 C 805.92738,473.20757 807.31128,473.91844 809.00271,474.4105 C 810.69414,474.90256 811.93164,475.75516 811.75271,476.30516 C 811.41218,477.35187 810.91441,477.3498 793.83051,476.23064 C 788.00224,475.84884 780.58438,475.86745 777.34639,476.27201 L 771.45913,477.00758 L 773.93997,479.01644 C 775.94593,480.64077 777.34398,480.91597 781.24354,480.45412 C 783.89605,480.13997 787.4252,480.15472 789.0861,480.4869 C 791.61589,480.99286 792.03206,481.47724 791.65076,483.47188 C 791.40042,484.78144 791.55242,486.07342 791.98853,486.34296 C 792.42465,486.61249 793.30984,488.51425 793.95562,490.56909 C 794.60141,492.62393 796.43521,495.43016 798.03074,496.80516 C 801.37285,499.68534 804.10084,508.49905 803.68622,515.07712 C 803.44094,518.96853 803.70123,519.38975 808.65534,523.11848 C 812.76643,526.2127 814.02295,527.82795 814.53697,530.67924 C 814.89648,532.6735 815.64363,535.20516 816.19731,536.30516 C 817.75763,539.4051 833.14258,561.2138 834.35185,562.03985 C 835.74121,562.98891 846.84531,562.89261 849.35427,561.90974 C 851.77069,560.96312 850.27334,560.2795 843.58745,559.27689 C 841.05986,558.89786 838.55917,558.06642 838.03037,557.42925 C 837.4599,556.74189 837.30505,551.47595 837.64959,544.48029 C 838.12861,534.75402 838.58203,532.24263 840.23946,530.13554 C 842.04708,527.83753 842.70909,527.64769 846.83802,528.24337 C 853.81536,529.24999 854.63939,529.12256 858.161,526.49231 C 863.31172,522.6453 868.2978,521.4092 873.44095,522.70426 C 880.78156,524.55265 882.65072,524.13532 887.72022,519.5161 C 890.30916,517.15712 894.22738,514.01241 896.42738,512.52786 C 898.62738,511.0433 901.32738,509.17379 902.42738,508.37337 C 904.60054,506.79208 917.62843,503.8073 922.36302,503.80598 C 924.32497,503.80543 926.85158,505.11459 929.98061,507.75303 C 932.55568,509.92436 936.88781,513.01296 939.60756,514.61659 C 942.32731,516.22021 946.69637,519.16867 949.31657,521.16871 C 954.43795,525.07795 957.82301,525.65143 961.92738,523.30516 C 967.23004,520.27389 979.77036,522.10968 982.52984,526.32119 C 984.01645,528.59004 983.94683,529.06692 981.39262,534.11131 C 976.07473,544.61379 972.85557,547.97595 963.57886,552.71637 L 954.94639,557.12757 L 949.04238,555.33998 L 943.13836,553.55239 L 937.12525,557.26389 C 931.75816,560.57664 930.09541,561.0625 921.64845,561.78622 C 909.31687,562.84276 904.89648,565.1127 909.92738,567.80516 C 911.39349,568.5898 911.92738,569.89898 911.92738,572.7095 C 911.92738,576.26192 911.68871,576.58158 908.67738,577.06229 C 906.88988,577.34763 903.17738,577.22584 900.42738,576.79163 C 894.56072,575.86532 849.03582,577.33057 843.92738,578.61012 C 842.00238,579.09229 838.32523,580.97013 835.75593,582.78311 C 830.73716,586.32451 828.2806,586.29075 827.75494,582.67316 C 827.50612,580.96075 825.98511,579.84543 821.42738,578.03333 C 818.12738,576.72129 812.50238,573.3999 808.92738,570.65246 C 802.6184,565.80392 802.28044,565.67594 797.42738,566.29768 C 788.77889,567.40566 787.78138,568.31444 784.24242,578.30971 C 782.49069,583.25721 781.02819,588.43435 780.99242,589.81447 C 780.91942,592.63081 789.51827,605.36793 791.96468,606.06724 C 792.81019,606.30893 794.53231,606.12553 795.79162,605.65968 C 797.70247,604.95281 798.0289,604.20488 797.76474,601.13878 C 797.37231,596.58383 799.17474,595.72685 801.54355,599.34211 C 803.08033,601.68754 803.74038,601.93077 807.10728,601.39238 C 811.73727,600.65202 812.40307,602.79215 808.36574,605.43751 C 806.111,606.91487 805.88191,607.57657 806.45363,610.96056 C 807.23493,615.58499 805.13795,616.30166 802.51934,612.30516 C 800.7289,609.57261 797.35555,609.04037 794.59956,611.0556 C 793.01713,612.2127 793.01013,612.47829 794.50581,614.61367 C 795.79801,616.45854 796.7042,616.79345 799.02476,616.28377 C 801.19184,615.8078 801.92738,616.01546 801.92738,617.10326 C 801.92738,617.90462 802.60238,619.12047 803.42738,619.80516 C 805.64981,621.64961 805.25254,622.80516 802.396,622.80516 C 801.00373,622.80516 799.60559,623.48016 799.28901,624.30516 C 798.97242,625.13016 798.08655,625.80516 797.32039,625.80516 C 795.71504,625.80516 795.28372,635.28932 796.84519,636.25436 C 797.34998,636.56634 803.08748,637.73762 809.59519,638.85721 C 856.39162,646.90805 891.50369,663.08725 918.61166,689.09062 C 937.44461,707.15617 955.57025,729.58173 1012.9471,805.80516 C 1089.4248,907.40345 1103.9828,922.58241 1163.4274,962.70453 C 1224.8523,1004.1632 1278.3788,1026.8262 1325.4274,1031.2947 C 1341.2099,1032.7937 1377.7171,1033.6234 1391.5271,1032.797 C 1421.5893,1030.998 1430.4635,1027.9984 1480.4274,1002.747 C 1516.4177,984.55774 1537.4393,975.08766 1545.745,973.32188 C 1549.6965,972.48178 1550.779,970.40363 1548.5487,967.93917 C 1546.504,965.67978 1546.4307,963.40057 1548.4274,964.16679 C 1550.213,964.85197 1550.4222,962.59822 1548.8464,959.65377 C 1547.1501,956.48422 1548.5593,956.28699 1552.3335,959.16571 C 1554.2367,960.61741 1556.0132,961.80516 1556.2812,961.80516 C 1556.5492,961.80516 1557.0698,960.34266 1557.4381,958.55516 C 1559.5377,948.36504 1563.2711,938.58304 1566.5656,934.6398 C 1568.5117,932.31042 1571.6296,927.37521 1573.4941,923.67267 C 1575.641,919.4096 1578.5286,915.56628 1581.3679,913.19287 C 1586.5935,908.82486 1587.4748,907.11814 1585.6449,904.91054 C 1584.913,904.02758 1583.7868,902.06766 1583.1422,900.55516 C 1582.4976,899.04266 1581.2592,897.80516 1580.3902,897.80516 C 1578.1763,897.80516 1570.9274,891.7895 1570.9274,889.95225 C 1570.9274,889.11725 1570.0296,887.47835 1568.9322,886.31026 C 1567.8348,885.14217 1566.4273,881.64851 1565.8043,878.54657 C 1564.7,873.04776 1564.7499,872.78856 1567.7995,868.18448 C 1570.6507,863.88007 1570.9274,862.75286 1570.9274,855.44413 L 1570.9274,847.42598 L 1576.1774,842.55994 C 1579.0649,839.88362 1583.3391,836.48143 1585.6756,834.99953 C 1588.0121,833.51763 1589.9246,831.82867 1589.9256,831.24629 C 1589.9324,827.23617 1584.2189,825.08138 1565.9274,822.19563 C 1557.6107,820.88355 1551.1128,820.64824 1534.6774,821.06396 C 1522.388,821.37481 1513.9274,821.21509 1513.9274,820.67224 C 1513.9274,818.64488 1520.2169,817.62148 1535.9274,817.0925 C 1553.1698,816.51193 1564.1404,817.62463 1581.1652,821.68079 C 1586.4284,822.93473 1589.2807,823.18696 1590.4974,822.50603 C 1591.6812,821.84353 1592.8419,821.8952 1594.075,822.66527 C 1595.0789,823.29221 1596.7407,823.80516 1597.7678,823.80516 C 1598.795,823.80516 1600.776,824.86224 1602.17,826.15423 C 1605.6291,829.35996 1621.426,837.80516 1623.9634,837.80516 C 1626.9649,837.80516 1630.62,841.94992 1631.9394,846.8498 C 1632.5725,849.20079 1634.4038,853.45141 1636.0089,856.29561 C 1639.8917,863.17554 1639.8415,866.94478 1635.8253,870.08793 C 1633.6028,871.82732 1632.4883,873.76172 1631.8947,876.91041 C 1631.439,879.32752 1629.3882,884.1246 1627.3375,887.57059 C 1623.7444,893.60817 1623.4896,893.81366 1620.332,893.22129 C 1617.1774,892.62948 1617.0269,892.75005 1616.2949,896.45586 C 1615.8767,898.57298 1615.518,902.82013 1615.4977,905.89398 C 1615.4589,911.75697 1616.5797,914.66441 1627.992,938.30516 C 1630.6471,943.80516 1633.1266,949.579 1633.5021,951.13592 C 1634.4861,955.21641 1636.3608,955.41779 1640.6269,951.90129 C 1645.2545,948.08686 1646.0312,948.036 1645.3196,951.59401 L 1644.7619,954.38286 L 1668.0946,954.42062 C 1692.1019,954.45947 1703.9798,955.40796 1723.9274,958.87903 C 1746.3263,962.77666 1765.0496,968.23263 1781.1774,975.56163 L 1797.4724,984.8182 L 1788.9274,1059.4443 L 1788.9274,1139.8052 L 1148.9274,1139.8052 L 508.92738,1139.8052 L 508.92738,991.98891 z M 1622.3003,859.75837 C 1626.4954,857.90267 1626.9274,857.39391 1626.9274,854.30926 C 1626.9274,851.59606 1626.2185,850.36624 1623.4274,848.23736 C 1621.5024,846.76909 1619.9274,844.72401 1619.9274,843.69274 C 1619.9274,841.52371 1613.415,836.4473 1607.1049,833.69762 L 1602.7823,831.81404 L 1599.3704,834.41645 C 1597.4938,835.84777 1595.0228,838.53275 1593.8792,840.38307 C 1592.7357,842.23339 1589.8037,845.50454 1587.3637,847.65229 C 1584.9237,849.80005 1582.9274,851.99393 1582.9274,852.52759 C 1582.9274,854.07474 1585.9983,859.80516 1586.8274,859.80516 C 1587.2419,859.80516 1587.3891,858.49769 1587.1546,856.89967 C 1586.8117,854.56334 1587.0844,854.02463 1588.5469,854.14967 C 1589.8378,854.26003 1590.7533,853.14425 1591.7013,850.30516 C 1592.4359,848.10516 1594.1373,845.15554 1595.4821,843.75044 C 1596.827,842.34535 1597.9274,840.43285 1597.9274,839.50044 C 1597.9274,836.35889 1600.7385,837.7732 1603.1813,842.1437 C 1604.5149,844.52989 1606.2171,849.23636 1606.9639,852.60253 C 1608.0521,857.50747 1608.5863,858.50322 1609.6542,857.61697 C 1611.3809,856.1839 1615.9274,858.11662 1615.9274,860.28372 C 1615.9274,862.27603 1616.7647,862.207 1622.3003,859.75837 z M 896.52512,568.768 C 900.15847,567.3866 898.71922,566.31376 891.42738,564.96804 C 884.47953,563.6858 861.92738,562.24004 861.92738,563.07687 C 861.92738,563.82729 873.40699,567.62044 878.99607,568.71679 C 885.30931,569.95519 893.34087,569.97865 896.52512,568.768 z M 756.85693,469.67352 C 756.22948,468.50112 755.75401,464.84963 755.80033,461.55911 C 755.85758,457.49173 755.19327,453.96943 753.72533,450.55711 L 751.56611,445.53787 L 743.40239,446.16539 C 730.03675,447.19275 729.30243,447.47443 726.0006,452.84059 C 723.93519,456.1973 721.98771,458.01549 719.49049,458.9185 C 717.53078,459.62714 715.92738,460.49154 715.92738,460.83938 C 715.92738,462.50176 717.59823,462.46121 724.02352,460.6429 C 729.9114,458.97668 731.78626,458.84167 736.22899,459.76397 C 742.37532,461.03995 747.92738,464.13742 747.92738,466.29046 C 747.92738,468.42231 746.57456,468.18408 742.33224,465.30516 C 740.30607,463.93016 738.06264,462.80516 737.34685,462.80516 C 734.95091,462.80516 734.66363,464.98585 736.78068,467.1029 C 738.77475,469.09697 748.27142,471.47032 755.21256,471.70928 C 757.75359,471.79675 757.89774,471.61829 756.85693,469.67352 z M 770.92738,435.80516 C 770.92738,435.25516 770.47738,434.80516 769.92738,434.80516 C 769.37738,434.80516 768.92738,435.25516 768.92738,435.80516 C 768.92738,436.35516 769.37738,436.80516 769.92738,436.80516 C 770.47738,436.80516 770.92738,436.35516 770.92738,435.80516 z "
+ style="fill:#4e3116"
+ sodipodi:nodetypes="cccssssssssssssssssssscccsccccccccssssssssssssssssssscccsssssssscccsssssssssssssssssssssssssssssssscccsssssssssssssssssssssssssscccssssssssssssssssssssssssssssscccccsssssssssssssssssssssssssssssssssssssssssssssssssssssscccssssssssssssssssssssssscccsccccccccssscccsssssssssssssccsssccscccssssssssssccsssc" />
+ <path
+ id="path1469"
+ d="M 508.92738,991.87659 C 508.92738,871.71964 509.17183,843.69994 510.22949,842.62659 C 510.94565,841.8998 514.8332,832.75516 518.86848,822.30516 C 538.05676,772.61415 561.07325,722.8854 573.71784,703.79927 C 578.92205,695.94386 583.9386,690.14129 593.60223,680.79927 C 624.33208,651.09212 652.88107,637.63063 693.42738,633.72948 C 700.02738,633.09447 706.1853,632.17671 707.11164,631.69003 C 708.03798,631.20335 710.19066,630.80516 711.89536,630.80516 C 714.35,630.80516 715.40527,630.10952 716.96765,627.46149 C 718.341,625.13382 720.15391,623.75426 722.93392,622.92135 C 725.4126,622.17872 726.92738,621.12265 726.92738,620.13721 C 726.92738,618.85295 727.66948,618.66821 730.81062,619.1705 C 737.01266,620.16224 737.85255,618.10618 734.01967,611.31469 C 732.30341,608.27365 729.55451,602.10099 727.911,597.59767 C 724.69648,588.78968 721.57901,584.72874 715.71722,581.71358 C 710.94959,579.26123 710.31261,579.30323 706.74501,582.30516 C 704.21881,584.43081 702.76443,584.80516 697.03216,584.80516 C 693.32418,584.80516 687.88243,585.52024 684.93938,586.39424 C 680.87645,587.6008 677.64327,587.81316 671.50788,587.27643 C 661.36151,586.38883 657.24521,584.76096 652.50922,579.76307 C 649.05897,576.12201 648.33437,575.80516 643.45806,575.80516 C 638.90751,575.80516 637.92559,575.45138 636.51934,573.30516 C 634.42624,570.11069 631.26256,570.10676 626.94349,573.29327 C 622.6433,576.46585 617.76769,577.3735 612.88457,575.91048 C 607.55938,574.31501 604.92738,570.6707 604.92738,564.89281 C 604.92738,558.82864 603.01983,556.23547 597.96434,555.42706 C 595.74401,555.07202 593.92738,554.42684 593.92738,553.99334 C 593.92738,550.85264 601.06968,549.68919 604.48625,552.27336 C 607.3088,554.40823 608.85383,554.18061 617.12492,550.41135 C 626.76942,546.01621 627.92603,544.79329 627.93296,538.98373 C 627.93602,536.41052 628.40537,532.62422 628.97594,530.56973 C 629.72031,527.88943 629.69211,526.23406 628.87608,524.70931 C 627.80744,522.71254 627.2393,522.62592 619.46055,523.27389 C 611.69415,523.92083 610.50971,523.74158 600.30483,520.37496 C 594.32223,518.40129 587.62738,516.34079 585.42738,515.79607 C 583.22738,515.25136 580.76541,514.38004 579.95634,513.8598 C 577.09243,512.01828 579.80121,511.69021 585.03552,513.24463 C 589.73067,514.63894 590.51197,514.64914 591.82783,513.33328 C 593.1437,512.01741 593.04277,511.55689 590.95045,509.32971 C 589.65009,507.94555 588.83884,506.56036 589.14768,506.25153 C 589.45651,505.94269 590.68893,507.06592 591.88638,508.74758 C 594.46528,512.36931 597.11177,512.66217 599.18429,509.55516 L 600.68514,507.30516 L 606.37325,512.67513 C 611.68597,517.6907 612.30443,518.00176 615.74437,517.38836 C 617.77003,517.02715 622.12738,516.27035 625.42738,515.7066 C 628.72738,515.14284 633.5848,513.97607 636.22164,513.11379 C 641.00896,511.54827 641.02478,511.55066 647.1603,514.76681 C 653.15686,517.91012 653.51598,517.9709 662.08593,517.29261 C 673.64697,516.37759 677.92241,518.22601 682.68893,526.20001 C 684.48278,529.20098 687.47563,532.59891 689.3397,533.75097 C 693.02697,536.02983 693.92738,537.57006 693.92738,541.59862 C 693.92738,543.47748 695.44654,545.66732 699.24705,549.26684 C 702.17287,552.03791 705.56727,555.75186 706.79015,557.52006 C 709.15695,560.94225 713.75695,562.78976 719.93534,562.79958 C 721.86471,562.80265 725.5566,563.93016 728.13953,565.30516 C 730.72246,566.68016 733.54931,567.80516 734.42141,567.80516 C 737.07618,567.80516 743.6127,564.02066 745.83285,561.1982 C 748.64418,557.62418 748.4704,555.39949 745.17738,552.80693 C 743.66488,551.61615 743.18292,550.87723 744.10637,551.16488 C 752.19073,553.68317 756.96726,552.57779 759.51902,547.59812 C 761.65145,543.43675 762.09327,543.17294 768.30543,542.35187 C 773.81439,541.62375 777.92738,538.73888 777.92738,535.603 C 777.92738,533.92009 777.32903,533.81076 771.42738,534.41541 C 766.75311,534.8943 764.92738,534.75287 764.92738,533.91187 C 764.92738,533.26866 765.71488,532.49621 766.67738,532.19532 C 771.69543,530.62663 778.18815,527.18642 779.00251,525.66477 C 780.08703,523.63833 780.19243,519.38043 779.272,514.77826 C 777.88981,507.86732 766.5511,499.67566 750.91769,494.29366 C 745.14802,492.30737 737.88455,489.13489 734.77665,487.2437 C 728.17428,483.22607 727.81189,483.17031 725.42738,485.80516 C 723.43321,488.0087 718.90885,488.5333 718.95918,486.55516 C 718.97668,485.86766 719.63726,484.45137 720.42715,483.40784 C 722.66449,480.45208 721.2476,479.66962 714.94845,480.38229 C 709.15866,481.03733 709.12018,481.02407 704.52983,476.79283 L 699.92247,472.54592 L 693.92196,473.72644 C 688.82278,474.72965 686.98308,474.65076 681.67441,473.20126 C 673.46468,470.95965 672.01116,470.15572 670.90426,467.24436 C 669.60921,463.8381 666.90898,464.19719 662.92738,468.30516 C 661.0616,470.23016 658.86988,471.80516 658.0569,471.80516 C 655.83134,471.80516 660.64031,467.01411 665.2261,464.66266 C 670.40708,462.00602 670.92244,460.08344 667.31712,456.86208 C 663.09133,453.08634 654.22349,451.13769 647.59246,452.52772 C 644.69511,453.13507 642.02836,453.23222 641.51856,452.74898 C 640.98718,452.24529 642.24646,450.25079 644.55067,447.94658 C 647.68112,444.81613 650.33151,443.43199 657.43798,441.2163 C 666.67178,438.33735 666.48125,438.46854 682.17738,424.18242 C 686.05795,420.65045 685.82952,416.24331 681.35079,408.23459 C 679.38367,404.71705 677.92168,401.07329 678.10192,400.13735 C 678.28217,399.20142 680.45362,397.25193 682.92737,395.80516 C 687.2626,393.26972 688.12624,391.9042 689.40921,385.55665 C 689.85985,383.32705 691.20754,382.24462 696.54736,379.82343 C 700.16781,378.18184 705.75125,375.88296 708.95501,374.71481 C 712.15878,373.54666 715.64931,371.62661 716.71175,370.44803 C 717.77419,369.26945 719.88591,364.48016 721.40445,359.80516 C 726.50654,344.09779 728.48781,341.85852 738.73286,340.22027 C 742.33194,339.64476 742.91527,339.85705 744.53737,342.33269 C 745.96153,344.50622 746.3542,347.21414 746.40488,355.21127 C 746.46626,364.89517 746.59923,365.50171 749.44822,369.09285 C 752.41461,372.83198 759.01724,376.80516 762.26454,376.80516 C 764.29485,376.80516 765.30792,379.17623 766.84885,387.53461 C 767.4805,390.9608 769.14929,397.2608 770.55727,401.53461 C 772.55332,407.5934 772.99517,410.51827 772.56306,414.81206 C 771.95107,420.89326 772.32354,421.92398 775.79404,423.75308 C 777.76333,424.79097 778.42276,424.73835 779.72139,423.43972 C 780.98144,422.17967 781.06255,421.39723 780.14244,419.37781 C 778.66323,416.13131 780.30878,415.05982 782.62298,417.76261 C 784.84373,420.35626 787.01049,420.35689 789.23013,417.76454 C 791.3109,415.33438 794.48363,415.64759 805.70643,419.3911 C 809.70991,420.72651 814.90648,421.74645 817.25437,421.65765 C 821.24199,421.50682 828.56805,424.33524 840.34944,430.57412 C 841.95658,431.42519 846.22914,432.74148 849.84404,433.49923 C 855.04856,434.59019 857.19815,435.64014 860.1716,438.54364 C 863.56407,441.8563 864.55164,442.25012 870.39981,442.62251 C 877.28765,443.06109 879.49671,444.43601 878.47674,447.64963 C 877.35308,451.18998 864.92348,454.69665 859.81295,452.91511 C 855.15535,451.29147 851.51756,451.55308 848.77704,453.70878 C 847.44601,454.75576 844.34783,456.12867 841.89218,456.75968 C 834.61139,458.63056 829.9583,460.68901 826.08066,463.7544 C 822.5348,466.55752 813.69638,469.78997 809.49588,469.8199 C 806.61031,469.84047 802.37523,472.22747 802.6847,473.65887 C 802.87602,474.54382 800.4395,474.71099 793.1847,474.31067 C 783.23692,473.76176 767.92738,475.33329 767.92738,476.90336 C 767.92738,477.38082 770.06488,478.84005 772.67738,480.1461 C 776.6241,482.11916 778.48433,482.4399 783.67738,482.04276 C 789.8416,481.57134 789.92738,481.59993 789.92738,484.12595 C 789.92738,485.5346 790.36515,486.95768 790.90021,487.28837 C 791.43526,487.61905 792.34651,489.64797 792.92521,491.79709 C 793.56263,494.16429 795.10453,496.50718 796.8368,497.74066 C 799.99759,499.99135 800.85642,502.75815 801.60385,513.09829 C 802.09394,519.87847 802.10424,519.89841 806.99976,523.55326 C 811.00953,526.54683 812.17504,528.14526 813.38638,532.31212 C 814.26611,535.33829 817.9688,541.85721 822.49983,548.35716 C 833.97718,564.8219 831.88728,563.4934 847.24473,564.08685 C 858.00937,564.50282 861.89477,565.09074 868.42738,567.29208 C 882.4435,572.01518 901.42738,571.72785 901.42738,566.79259 C 901.42738,564.61353 888.3276,562.58942 863.92738,560.99831 C 857.60238,560.58586 851.81935,559.86898 851.0762,559.40523 C 850.33305,558.94149 847.40805,558.27463 844.5762,557.92332 L 839.42738,557.28459 L 839.54751,544.95252 C 839.65427,533.99288 839.89317,532.39493 841.69418,530.59391 C 843.57143,528.71667 844.08909,528.66178 848.72084,529.84886 C 853.61282,531.10264 853.82364,531.06235 858.46792,527.9861 C 864.36205,524.08199 868.92958,523.17133 874.91848,524.70624 C 880.61578,526.16642 883.94483,525.11971 888.92738,520.30159 C 896.29489,513.17723 905.29191,508.2511 914.44407,506.33046 L 923.06318,504.52169 L 927.24528,507.65924 C 930.92807,510.42219 943.33326,519.04821 950.81687,524.0499 C 954.05439,526.2137 958.53774,526.28374 963.4131,524.24668 C 970.68794,521.20706 982.04436,524.47406 981.86593,529.55516 C 981.83212,530.51766 979.68233,534.67183 977.0886,538.78665 C 972.78878,545.60808 971.67238,546.65406 964.43459,550.64242 C 956.09102,555.24011 955.94519,555.2595 945.18912,553.20127 C 942.59848,552.70553 940.9367,553.23239 936.8799,555.83563 C 932.58137,558.59399 930.45613,559.21448 922.92755,559.90917 C 911.69172,560.94595 906.92738,562.80055 906.92738,566.1375 C 906.92738,567.75969 907.61921,568.75281 909.00098,569.11416 C 910.58256,569.52775 910.9978,570.31239 910.75098,572.42099 L 910.42738,575.18557 L 881.42738,575.35036 C 848.92819,575.53504 842.54555,576.30404 836.30307,580.78705 C 831.2832,584.39205 830.69554,584.46147 829.41451,581.6008 C 828.79775,580.22351 826.17619,578.5056 822.42738,577.02212 C 819.12738,575.71624 813.52595,572.43321 809.97975,569.72648 C 803.01773,564.41254 799.53886,563.67445 791.70686,565.8496 C 786.8527,567.19773 785.47337,569.32313 781.79038,581.12986 L 778.72566,590.95456 L 784.50772,599.37986 C 789.7051,606.95321 790.60969,607.80516 793.45359,607.80516 C 797.70511,607.80516 800.39701,604.81246 799.46951,601.11701 L 798.7746,598.34827 L 801.32658,601.10189 C 803.32388,603.25702 804.48157,603.73178 806.65297,603.2862 L 809.42738,602.71688 L 807.17738,604.38299 C 805.58724,605.56048 804.92738,607.07933 804.92738,609.56199 L 804.92738,613.07488 L 802.8122,610.38586 C 801.03307,608.12406 800.19898,607.80323 797.5622,608.36648 C 791.85484,609.58563 790.37072,612.42759 793.58604,615.98048 C 794.86324,617.39177 795.01103,618.32981 794.22863,620.05922 C 792.94883,622.88807 794.38819,635.7473 796.1627,637.33817 C 796.85827,637.96177 802.44809,639.2423 808.58451,640.18381 C 831.86307,643.75542 854.68186,650.6452 873.92738,659.91308 C 911.54771,678.02954 929.76818,697.13964 1004.4467,796.80516 C 1070.6888,885.21147 1091.5667,909.95966 1117.2579,930.52886 C 1180.1742,980.9017 1246.4866,1016.6752 1298.4274,1028.2642 C 1314.3959,1031.8271 1322.2469,1032.6462 1353.135,1033.9715 C 1393.5368,1035.7051 1413.2567,1033.713 1435.5584,1025.6449 C 1440.4363,1023.8803 1462.8774,1013.1572 1485.4274,1001.816 C 1513.6601,987.61677 1530.1642,979.92646 1538.4274,977.11989 L 1550.4274,973.04416 L 1550.3133,969.42466 C 1550.2506,967.43393 1550.5881,965.80516 1551.0633,965.80516 C 1551.5386,965.80516 1551.9274,964.61042 1551.9274,963.15017 C 1551.9274,960.64141 1552.0281,960.58633 1553.7561,962.15017 C 1556.5662,964.69321 1557.7806,964.1507 1558.446,960.05516 C 1558.7811,957.99266 1559.6741,954.50516 1560.4305,952.30516 C 1561.1869,950.10516 1562.2918,946.42485 1562.8858,944.12669 C 1563.4799,941.82854 1565.5306,938.07546 1567.443,935.78652 C 1569.3553,933.49758 1572.7507,928.10598 1574.9882,923.80518 C 1577.9281,918.15426 1580.1427,915.26666 1582.9733,913.39346 C 1587.3278,910.5118 1588.9051,906.68819 1586.7905,904.14021 C 1586.0424,903.23876 1584.9777,901.10711 1584.4246,899.40319 C 1583.7451,897.30997 1582.7716,896.30516 1581.4231,896.30516 C 1578.8096,896.30516 1571.9274,891.0113 1571.9274,889.00092 C 1571.9274,888.13915 1571.0431,886.49278 1569.9623,885.34232 C 1568.7434,884.04484 1567.7462,881.11502 1567.3362,877.62646 C 1566.7291,872.46073 1566.9096,871.69416 1569.5513,868.22101 C 1572.2325,864.69598 1572.4104,863.89828 1572.1761,856.4522 L 1571.9249,848.46472 L 1576.3529,844.22193 C 1578.7883,841.88839 1583.5139,838.12322 1586.8542,835.85489 C 1590.1944,833.58655 1592.9274,831.39741 1592.9274,830.99014 C 1592.9274,830.58287 1592.0274,829.47904 1590.9274,828.53719 C 1589.8274,827.59534 1588.9274,826.40066 1588.9274,825.88234 C 1588.9274,824.38903 1592.8907,823.52984 1594.3174,824.71387 C 1595.0291,825.30453 1595.8657,825.53353 1596.1765,825.22275 C 1596.4873,824.91196 1598.0788,825.34923 1599.7133,826.19444 C 1602.965,827.87597 1604.7305,830.80516 1602.4923,830.80516 C 1601.7376,830.80516 1599.1642,832.86325 1596.7737,835.37869 C 1594.3832,837.89413 1590.0649,842.40339 1587.1774,845.39926 C 1584.2899,848.39514 1581.9274,851.68209 1581.9274,852.70361 C 1581.9274,855.19204 1584.6107,861.4914 1586.0495,862.3806 C 1587.7515,863.43254 1590.575,859.1218 1592.3669,852.73538 C 1593.2368,849.63509 1595.0465,846.10241 1596.4312,844.80155 C 1597.8041,843.51179 1598.9274,841.85997 1598.9274,841.13085 C 1598.9274,840.40172 1599.3774,839.80516 1599.9274,839.80516 C 1600.4774,839.80516 1600.9274,840.29819 1600.9274,840.90079 C 1600.9274,841.50339 1601.7671,843.19089 1602.7935,844.65079 C 1605.3368,848.26854 1606.831,855.85147 1605.5825,858.80516 C 1605.2337,859.63016 1605.4028,860.98016 1605.9582,861.80516 C 1606.8235,863.0905 1607.2385,862.98317 1608.858,861.05516 C 1609.8975,859.81766 1611.2071,858.80516 1611.7681,858.80516 C 1612.3292,858.80516 1612.9321,859.81766 1613.1078,861.05516 C 1613.558,864.2249 1616.442,864.21354 1622.9274,861.01646 C 1628.2365,858.39927 1628.423,858.17053 1628.3019,854.42666 C 1628.2018,851.3307 1627.4452,849.87821 1624.5519,847.22764 C 1622.5584,845.40136 1620.9274,843.35069 1620.9274,842.67059 C 1620.9274,841.9905 1619.9216,840.28006 1618.6924,838.86961 C 1617.4631,837.45916 1617.1031,836.86766 1617.8924,837.55516 C 1618.6816,838.24266 1620.734,838.80516 1622.4531,838.80516 C 1626.4019,838.80516 1629.5322,842.04206 1630.4641,847.08895 C 1630.8483,849.17004 1632.2149,852.42329 1633.501,854.31841 C 1634.787,856.21353 1636.348,859.65325 1636.9697,861.96224 C 1638.0819,866.09252 1638.042,866.21006 1634.5034,869.23277 C 1631.7436,871.59022 1630.7058,873.41365 1630.0436,877.06878 C 1629.5689,879.68878 1627.9986,883.53796 1626.554,885.62253 C 1625.1094,887.7071 1623.9274,889.99053 1623.9274,890.69681 C 1623.9274,891.63531 1622.8784,891.80372 1620.03,891.3225 C 1617.8865,890.96035 1615.8836,891.06704 1615.5792,891.5596 C 1615.2748,892.05215 1614.7126,896.60217 1614.33,901.67074 L 1613.6343,910.88633 L 1617.8785,920.09574 C 1620.2128,925.16092 1624.1648,933.51365 1626.6607,938.65736 C 1629.1566,943.80108 1631.7474,949.87608 1632.4181,952.15736 C 1633.8336,956.97261 1636.5251,958.01215 1639.3876,954.84918 C 1641.5752,952.43191 1642.9274,952.22409 1642.9274,954.30516 C 1642.9274,955.5941 1646.0972,955.80516 1665.4558,955.80516 C 1690.3877,955.80516 1710.3673,957.5209 1729.9072,961.3399 C 1746.337,964.55103 1765.2386,970.09973 1776.4274,974.99623 C 1781.3774,977.16248 1786.1838,978.79065 1786.9274,979.21529 C 1793.6705,983.06587 1793.9238,983.51538 1797.3746,986.45199 C 1797.3746,986.45199 1796.9693,1059.0769 1796.9693,1059.0769 L 1796.7075,1139.5185 L 1148.9333,1139.8052 L 508.92738,1139.8052 L 508.92738,991.87659 z M 759.92738,472.91947 C 759.92738,472.43234 759.25534,470.74484 758.43395,469.16947 C 757.57429,467.52069 756.99103,463.96149 757.05953,460.78245 C 757.20225,454.1589 753.76262,445.20503 750.70234,444.23373 C 749.00226,443.69415 737.64653,444.87344 730.304,446.35209 C 729.13614,446.58728 726.80953,448.88747 725.13376,451.46363 C 723.13062,454.54306 720.60374,456.85965 717.75715,458.22636 C 709.52518,462.17868 714.33651,465.55743 723.6686,462.37767 C 726.20688,461.51279 729.78231,460.80516 731.61399,460.80516 C 734.66206,460.80516 734.84143,460.96993 733.73024,462.74922 C 732.72249,464.36288 732.84662,465.05844 734.46058,466.84184 C 737.3493,470.03385 739.34955,470.84943 747.77474,472.27054 C 757.42136,473.89768 759.92738,474.0315 759.92738,472.91947 z M 771.96903,437.25497 C 773.03181,435.9744 772.96615,435.41536 771.59148,434.04069 C 770.03935,432.48856 769.81541,432.48856 768.26328,434.04069 C 766.88861,435.41536 766.82295,435.9744 767.88573,437.25497 C 768.59333,438.10758 769.51207,438.80516 769.92738,438.80516 C 770.34269,438.80516 771.26143,438.10758 771.96903,437.25497 z M 797.53025,621.21265 C 796.75484,619.19196 798.91983,617.39761 800.37616,618.85394 C 800.99683,619.47461 800.78079,620.38032 799.77127,621.38984 C 798.34407,622.81704 798.13972,622.80088 797.53025,621.21265 z M 630.92738,454.30516 C 629.39891,452.46347 631.17111,449.80516 633.92738,449.80516 C 636.68365,449.80516 638.45585,452.46347 636.92738,454.30516 C 636.24269,455.13016 634.89269,455.80516 633.92738,455.80516 C 632.96207,455.80516 631.61207,455.13016 630.92738,454.30516 z "
+ style="fill:#000000"
+ sodipodi:nodetypes="csssssssssssssssssssssssssssssssssssssssscccsssssssssssssssssssssssssssssscccsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssscccssssscccsssssssssscccssssscccscccccccccsssssssssssscccsssssssssssssssscccssssssssssssssssssssssssssssssssssssssscccsssssssssccccccsssssssssssccssssccssccsssc" />
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/42450-under the see.svg b/PerformanceTests/PageLoad/svg/files/42450-under the see.svg
new file mode 100644
index 000000000..2ca69d675
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/42450-under the see.svg
@@ -0,0 +1,3946 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1280"
+ height="800"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44+devel"
+ version="1.0"
+ sodipodi:docbase="/home/it-s/Media/Pictures/Vector"
+ sodipodi:docname="under the see.svg"
+ inkscape:export-filename="/home/it-s/Media/Pictures/Vector/under the see.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient9539">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop9541" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop9543" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8471">
+ <stop
+ id="stop8473"
+ offset="0"
+ style="stop-color:white;stop-opacity:0;" />
+ <stop
+ style="stop-color:white;stop-opacity:0.34117648;"
+ offset="0.285"
+ id="stop8475" />
+ <stop
+ id="stop8477"
+ offset="0.57999998"
+ style="stop-color:white;stop-opacity:0.4627451;" />
+ <stop
+ style="stop-color:white;stop-opacity:0.19607843;"
+ offset="0.8488"
+ id="stop8479" />
+ <stop
+ id="stop8481"
+ offset="1"
+ style="stop-color:white;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7357">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop7359" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop7361" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7337">
+ <stop
+ style="stop-color:#2e4a4d;stop-opacity:1;"
+ offset="0"
+ id="stop7339" />
+ <stop
+ style="stop-color:#7babb1;stop-opacity:1;"
+ offset="1"
+ id="stop7341" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6134">
+ <stop
+ style="stop-color:white;stop-opacity:0.18556701;"
+ offset="0"
+ id="stop6136" />
+ <stop
+ id="stop6288"
+ offset="0.40060797"
+ style="stop-color:white;stop-opacity:0.13402061;" />
+ <stop
+ id="stop6142"
+ offset="0.66767997"
+ style="stop-color:white;stop-opacity:0.25773194;" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="0.8471328"
+ id="stop6290" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop6138" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3886">
+ <stop
+ style="stop-color:#8cecc8;stop-opacity:1;"
+ offset="0"
+ id="stop3888" />
+ <stop
+ style="stop-color:#8cecc8;stop-opacity:0;"
+ offset="1"
+ id="stop3890" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2806">
+ <stop
+ style="stop-color:#0378a3;stop-opacity:1;"
+ offset="0"
+ id="stop2808" />
+ <stop
+ style="stop-color:#0378a3;stop-opacity:0;"
+ offset="1"
+ id="stop2810" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2790">
+ <stop
+ style="stop-color:#76dbbc;stop-opacity:0;"
+ offset="0"
+ id="stop2792" />
+ <stop
+ id="stop2798"
+ offset="0.285"
+ style="stop-color:#76dbbc;stop-opacity:0.34020618;" />
+ <stop
+ style="stop-color:#76dbbc;stop-opacity:0.46391752;"
+ offset="0.57999998"
+ id="stop2800" />
+ <stop
+ id="stop2802"
+ offset="0.8488"
+ style="stop-color:#76dbbc;stop-opacity:0.19587629;" />
+ <stop
+ style="stop-color:#76dbbc;stop-opacity:0;"
+ offset="1"
+ id="stop2794" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2780">
+ <stop
+ style="stop-color:#64d0b6;stop-opacity:1;"
+ offset="0"
+ id="stop2782" />
+ <stop
+ style="stop-color:#04639d;stop-opacity:1"
+ offset="1"
+ id="stop2784" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2780"
+ id="linearGradient2786"
+ x1="31.428572"
+ y1="61.428562"
+ x2="328.57153"
+ y2="847.14288"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="radialGradient2812"
+ cx="58.571445"
+ cy="921.59631"
+ fx="58.571445"
+ fy="921.59631"
+ r="655.71429"
+ gradientTransform="matrix(1,0,0,0.62963,0,149.7355)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2790"
+ id="linearGradient2820"
+ x1="51.42857"
+ y1="398.57144"
+ x2="351.42856"
+ y2="278.57144"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2790"
+ id="linearGradient2824"
+ gradientUnits="userSpaceOnUse"
+ x1="51.42857"
+ y1="398.57144"
+ x2="351.42856"
+ y2="278.57144"
+ gradientTransform="translate(180,5.714286)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2790"
+ id="linearGradient2828"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(34.28571,20)"
+ x1="-14.285711"
+ y1="387.14285"
+ x2="114.28571"
+ y2="361.42856" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2790"
+ id="linearGradient2840"
+ x1="882.35712"
+ y1="385.71429"
+ x2="1063.3572"
+ y2="97.142883"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2790"
+ id="linearGradient2848"
+ x1="625.71429"
+ y1="748.57141"
+ x2="851.42853"
+ y2="548.57141"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2790"
+ id="linearGradient2852"
+ gradientUnits="userSpaceOnUse"
+ x1="625.71429"
+ y1="748.57141"
+ x2="851.42853"
+ y2="548.57141"
+ gradientTransform="translate(191.4286,-11.42857)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="radialGradient2856"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.62963,0,149.7355)"
+ cx="818.57147"
+ cy="930.67194"
+ fx="818.57147"
+ fy="930.67194"
+ r="655.71429" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="radialGradient2860"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.62963,0,149.7355)"
+ cx="1267.1429"
+ cy="377.05881"
+ fx="1267.1429"
+ fy="377.05881"
+ r="655.71429" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3886"
+ id="radialGradient3892"
+ cx="704.72589"
+ cy="292.62759"
+ fx="704.72589"
+ fy="292.62759"
+ r="273.724"
+ gradientTransform="matrix(1,0,0,0.28453,0,209.3661)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3886"
+ id="radialGradient3896"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.28453,0,209.3661)"
+ cx="704.72589"
+ cy="292.62759"
+ fx="704.72589"
+ fy="292.62759"
+ r="273.724" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3886"
+ id="radialGradient3900"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.28453,0,209.3661)"
+ cx="704.72589"
+ cy="292.62759"
+ fx="704.72589"
+ fy="292.62759"
+ r="273.724" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3886"
+ id="radialGradient3904"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.28453,0,209.3661)"
+ cx="704.72589"
+ cy="292.62759"
+ fx="704.72589"
+ fy="292.62759"
+ r="273.724" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2790"
+ id="linearGradient3928"
+ x1="43.596298"
+ y1="368.40231"
+ x2="1177.4886"
+ y2="368.40231"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="linearGradient3936"
+ x1="55.698612"
+ y1="239.78107"
+ x2="1123.2231"
+ y2="239.78107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-78.63894,-7.561437)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2790"
+ id="linearGradient3944"
+ x1="29.395649"
+ y1="185.90901"
+ x2="967.62439"
+ y2="185.90901"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8471"
+ id="linearGradient3952"
+ x1="314.18854"
+ y1="175.35481"
+ x2="1168.2363"
+ y2="175.35481"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2790"
+ id="linearGradient3960"
+ x1="464.27377"
+ y1="110.63812"
+ x2="1075.2878"
+ y2="110.63812"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2790"
+ id="linearGradient3968"
+ x1="715.1944"
+ y1="140.54684"
+ x2="1210.8529"
+ y2="140.54684"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8471"
+ id="linearGradient3976"
+ x1="812.52185"
+ y1="31.37809"
+ x2="1047.408"
+ y2="31.37809"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(33.27032,16.63516)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3886"
+ id="linearGradient3984"
+ x1="1075.8986"
+ y1="38.363842"
+ x2="1292.7272"
+ y2="38.363842"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.512287,-6.049149)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6150"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6152"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6154"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6156"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6158"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6160"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6162"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6164"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6166"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6168"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6170"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6172"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6174"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6176"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6178"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6180"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6182"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6184"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6186"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6188"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6190"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6192"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6194"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6196"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6198"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6200"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6202"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6204"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6206"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6208"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6210"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6212"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6214"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6216"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6218"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6220"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6222"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6224"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6226"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6228"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6230"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6232"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6234"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6236"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6238"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6240"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6242"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6244"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6246"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6248"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6250"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6252"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6254"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6256"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6258"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6260"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6262"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6264"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6266"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6268"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6270"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6272"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6274"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6276"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6278"
+ cx="514.93384"
+ cy="765.21741"
+ fx="514.93384"
+ fy="765.21741"
+ r="9.8298674"
+ gradientTransform="matrix(1,0,0,0.923077,0,58.86287)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6280"
+ cx="484.68808"
+ cy="779.58411"
+ fx="484.68808"
+ fy="779.58411"
+ r="6.8052931"
+ gradientTransform="matrix(1,0,0,1.222222,0,-173.2409)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6282"
+ cx="480.15121"
+ cy="733.45935"
+ fx="480.15121"
+ fy="733.45935"
+ r="6.8052931"
+ gradientTransform="matrix(1,0,0,1.333333,0,-244.4864)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6284"
+ cx="489.22495"
+ cy="751.60681"
+ fx="489.22495"
+ fy="751.60681"
+ r="9.8298674"
+ gradientTransform="matrix(1,0,0,0.923077,0,57.8159)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6286"
+ cx="472.58978"
+ cy="741.02081"
+ fx="472.58978"
+ fy="741.02081"
+ r="5.2930055"
+ gradientTransform="matrix(1,0,0,0.571429,0,317.5803)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6294"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6298"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6306"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6310"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6314"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6318"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6322"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6326"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6330"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6334"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6338"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6342"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6346"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.857143,0,80.58331)"
+ cx="336.48392"
+ cy="564.08319"
+ fx="336.48392"
+ fy="564.08319"
+ r="5.2930055" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6382"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6390"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6394"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6398"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6402"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6406"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6410"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6414"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6418"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6422"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6134"
+ id="radialGradient6446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8,0,153.0435)"
+ cx="493.76181"
+ cy="765.21741"
+ fx="493.76181"
+ fy="765.21741"
+ r="11.342155" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8403"
+ gradientUnits="userSpaceOnUse"
+ x1="-569.71979"
+ y1="329.35635"
+ x2="-562.20435"
+ y2="358.02646" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8405"
+ gradientUnits="userSpaceOnUse"
+ x1="-573.33948"
+ y1="310.92227"
+ x2="-582.91736"
+ y2="264.49591" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8407"
+ gradientUnits="userSpaceOnUse"
+ x1="-564.42023"
+ y1="304.25351"
+ x2="-599.84094"
+ y2="280.64008" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="radialGradient8409"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.484735,1.59224e-2,-5.029442e-3,0.153114,-293.1255,247.5181)"
+ cx="-570.72424"
+ cy="188.52875"
+ fx="-570.72424"
+ fy="188.52875"
+ r="149.3989" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8455"
+ gradientUnits="userSpaceOnUse"
+ x1="-466.77103"
+ y1="373.58478"
+ x2="-468.20392"
+ y2="338.46484" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8457"
+ gradientUnits="userSpaceOnUse"
+ x1="-496.10175"
+ y1="363.76495"
+ x2="-491.88474"
+ y2="378.70709" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="radialGradient8459"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.499567,-2.259573e-2,9.432005e-3,0.208532,-238.4118,266.645)"
+ cx="-544.82623"
+ cy="296.77731"
+ fx="-544.82623"
+ fy="296.77731"
+ r="104.51332" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath8540">
+ <path
+ style="fill:url(#radialGradient8543);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 602.6198,279.1202 C 622.64374,272.64187 620.87691,275.58656 625.58844,269.69717 C 630.29994,263.80778 635.60041,256.15158 653.2686,246.13961 C 670.93677,236.12764 673.88146,233.18293 703.91738,221.99309 C 733.95329,210.80323 746.90996,207.26959 781.65737,199.02445 C 816.40481,190.77929 809.33753,190.77929 819.93845,181.35626 C 830.53936,171.93323 838.19556,160.15443 852.91905,152.49823 C 867.64253,144.84202 862.34208,151.32035 861.1642,157.79868 C 859.98633,164.27701 858.80845,180.76732 865.87572,187.24565 C 872.943,193.72399 878.83239,192.54612 906.51255,196.07974 C 934.19269,199.61338 964.81755,205.50278 988.37513,210.21429 C 1011.9327,214.92581 1030.1898,220.22626 1037.846,228.47142 C 1045.5022,236.71656 1058.4589,243.1949 1061.4036,242.01703 C 1064.3483,240.83914 1067.293,235.5387 1077.305,229.64929 C 1087.3169,223.7599 1098.5068,220.22626 1102.6294,220.8152 C 1106.7519,221.40414 1106.163,221.40414 1102.0404,226.11565 C 1097.9179,230.82717 1092.6174,233.18293 1096.74,238.48339 C 1100.8626,243.78384 1110.2856,250.85111 1107.3409,252.61793 C 1104.3962,254.38475 1109.6966,253.79581 1112.0524,260.27414 C 1114.4082,266.75248 1121.4754,276.17551 1130.8985,283.24278 C 1140.3215,290.31006 1152.6892,291.48794 1150.9224,294.43264 C 1149.1556,297.37733 1130.3095,299.73308 1109.6966,290.31006 C 1089.0838,280.88703 1077.8939,266.16353 1072.0045,264.98567 C 1066.1151,263.80778 1057.281,267.34142 1049.0359,267.93036 C 1040.7907,268.5193 1006.0433,257.91839 994.26452,257.91839 C 982.48573,257.91839 961.28391,263.21884 950.09405,265.57459 C 938.90421,267.93036 911.813,269.10823 897.67844,272.05293 C 883.54389,274.99764 814.63798,292.66581 786.3689,294.43264 C 758.09981,296.19945 718.64085,298.5552 704.50632,297.96627 C 690.37177,297.37733 652.67964,291.48794 639.13404,290.31006 C 625.58844,289.13217 599.6751,290.899 592.60783,290.899 C 585.54055,290.899 585.54055,286.18748 589.66313,283.24278 C 593.7857,280.29809 603.79767,279.70914 602.6198,279.1202 z "
+ id="path8538"
+ sodipodi:nodetypes="csssssssssssssssssssssssssssssssc" />
+ </clipPath>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="radialGradient8543"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.589974,0,0,0.419966,1466.005,128.2767)"
+ cx="-519.21252"
+ cy="151.11502"
+ fx="-519.21252"
+ fy="151.11502"
+ r="177.43268" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8471"
+ id="linearGradient8607"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect"
+ x1="547.3725"
+ y1="275.42459"
+ x2="593.26471"
+ y2="377.59872"
+ gradientTransform="translate(7.561437,-3.024575)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8618"
+ gradientUnits="userSpaceOnUse"
+ x1="507.5433"
+ y1="52.739708"
+ x2="1413.5743"
+ y2="52.739708" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8627"
+ gradientUnits="userSpaceOnUse"
+ x1="507.5433"
+ y1="52.739708"
+ x2="1413.5743"
+ y2="52.739708" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8639"
+ gradientUnits="userSpaceOnUse"
+ x1="507.5433"
+ y1="52.739708"
+ x2="1413.5743"
+ y2="52.739708" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8648"
+ gradientUnits="userSpaceOnUse"
+ x1="507.5433"
+ y1="52.739708"
+ x2="1413.5743"
+ y2="52.739708" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8650"
+ gradientUnits="userSpaceOnUse"
+ x1="507.5433"
+ y1="52.739708"
+ x2="1413.5743"
+ y2="52.739708" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9539"
+ id="linearGradient9545"
+ x1="880.15125"
+ y1="-107.37241"
+ x2="911.90936"
+ y2="-266.91873"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9539"
+ id="linearGradient9579"
+ gradientUnits="userSpaceOnUse"
+ x1="993.57281"
+ y1="-204.1588"
+ x2="1049.5275"
+ y2="-359.16827"
+ gradientTransform="translate(-1894.896,494.518)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient9589"
+ gradientUnits="userSpaceOnUse"
+ x1="507.5433"
+ y1="52.739708"
+ x2="1413.5743"
+ y2="52.739708" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient9591"
+ gradientUnits="userSpaceOnUse"
+ x1="507.5433"
+ y1="52.739708"
+ x2="1413.5743"
+ y2="52.739708" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient9593"
+ gradientUnits="userSpaceOnUse"
+ x1="507.5433"
+ y1="52.739708"
+ x2="1413.5743"
+ y2="52.739708" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient9595"
+ gradientUnits="userSpaceOnUse"
+ x1="507.5433"
+ y1="52.739708"
+ x2="1413.5743"
+ y2="52.739708" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient9597"
+ gradientUnits="userSpaceOnUse"
+ x1="507.5433"
+ y1="52.739708"
+ x2="1413.5743"
+ y2="52.739708" />
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask9581">
+ <g
+ id="g8609"
+ transform="matrix(-1,0,0,-1,-15.12287,294.896)">
+ <path
+ style="opacity:0.2;fill:url(#linearGradient9589);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 749.40625,-72.34375 C 737.38062,-70.675704 725.65083,-66.21066 713.3125,-66.625 C 717.06052,-63.568604 722.87803,-62.275044 725.09375,-57.71875 C 723.21896,-53.551015 717.47864,-57.651713 714.30132,-58.003728 C 710.7486,-58.862414 705.03882,-61.733002 702.59375,-61.875 C 708.65115,-55.185721 716.87996,-50.927289 725.53125,-49 C 735.63746,-44.76009 731.03085,-28.810946 742,-25.78125 C 750.77582,-22.600809 757.6866,-30.053012 763.65625,-35.375 C 770.83269,-40.673052 781.26403,-39.061866 787.96875,-44.65625 C 791.23691,-48.163707 795.4491,-50.759794 799.25,-53.71875 C 791.43515,-51.123078 783.04974,-50.19253 775,-49.21875 C 764.48105,-46.76227 756.57696,-38.359697 746.59375,-35 C 741.42587,-34.113032 741.62866,-40.77547 743.09375,-43.9375 C 745.45687,-55.721072 759.08525,-58.155578 767.96875,-63.3125 C 769.42976,-64.514997 773.54918,-65.87702 773.34375,-67.75 C 766.49003,-70.047014 758.8497,-70.378832 752.03125,-72.375 C 751.15709,-72.407406 750.27774,-72.45137 749.40625,-72.34375 z M 1372.4688,-34.59375 C 1378.2197,-29.068373 1386.252,-25.449098 1393.8125,-24.3125 C 1391.1634,-26.142448 1392.3416,-30.488562 1388.375,-30.9375 C 1382.9656,-33.214186 1377.2709,-34.315141 1371.5312,-35.4375 L 1372.2745,-34.768535 L 1372.4688,-34.59375 z M 630.6875,-25.8125 C 623.87834,-23.076552 616.72108,-21.324389 609.4375,-20.75 C 606.65715,-20.007473 601.84731,-18.766071 601.15625,-15.65625 C 604.05719,-16.217068 605.51684,-12.628304 602.3125,-11.75 C 597.05761,-8.9370973 589.73339,-7.8170944 586.0625,-3 C 587.14167,0.78366255 592.76402,-2.147085 595.5625,-2.0625 C 605.70667,-5.0564358 615.51817,-10.503476 626.52918,-8.6856177 C 634.02645,-8.825843 642.68435,-5.5622736 649.625,-9.03125 C 650.63025,-11.747981 647.24917,-14.360938 645.84375,-16.1875 C 639.20244,-14.0116 635.44319,-21.3457 632.375,-25.5625 C 631.86786,-25.851687 631.31124,-25.969465 630.6875,-25.8125 z M 530,-19.0625 C 537.21993,-14.917395 547.17832,-15.618674 552.21875,-8.21875 C 555.13895,-5.5385624 557.02009,1.5528012 551.5,2.28125 C 537.82312,2.47432 524.54522,-1.7347238 510.96875,-2.65625 C 515.9009,0.2046194 522.23124,-0.96529947 527.03125,1.6875 C 528.07576,6.0717732 520.92794,5.1013333 518.21875,5.90625 C 514.98368,6.5348466 508.48919,4.489806 509.0625,9.8125 C 509.04274,14.970803 510.66003,19.804467 512.3125,24.625 C 525.13788,20.902121 538.22199,16.89113 548.96875,8.875 C 553.12622,6.4009572 559.3603,8.5986009 561.46875,3.0625 C 566.82328,-2.2426532 574.64545,3.8082738 580.15625,5.71875 C 581.54542,6.4189072 588.01951,8.4692583 584.3125,5.625 C 581.45371,2.8266536 579.28188,0.014650432 575.1875,-0.65625 C 569.1435,-3.6659153 561.79996,-6.9285434 559.15625,-13.40625 C 558.50961,-15.865289 561.80384,-17.599807 562.1875,-19.03125 C 551.03493,-20.493075 539.4344,-19.0792 528.125,-19.9375 C 528.75,-19.645833 529.375,-19.354167 530,-19.0625 z M 709.96875,-19.25 C 707.26078,-17.562812 702.66883,-15.808536 701.59375,-12.9375 C 706.22779,-11.763575 712.52826,-10.700718 716.53125,-13.9375 C 717.10858,-17.238991 712.30747,-18.702099 709.96875,-19.25 z M 774.625,-16.8125 C 772.14178,-12.653368 768.24278,-8.8392871 763.03125,-8.59375 C 758.43287,-7.8182078 752.32105,-6.4834888 749.0625,-4.4375 C 765.90955,-0.66681333 782.96851,2.6565729 799.65625,6.875 C 806.53826,8.3821107 811.28566,14.971912 817.375,17.125 C 822.34073,15.264378 824.25187,7.1478352 818.8125,4.75 C 806.18327,-0.016823739 791.66947,4.2784694 779.0625,-0.34375 C 776.004,-3.357418 781.76471,-5.298068 784.125,-5.4375 C 789.92213,-6.6419656 795.82668,-7.2357379 801.75,-7.6875 C 792.60524,-10.364643 783.47907,-13.526823 774.6875,-16.84375 L 774.65625,-16.84375 L 774.625,-16.8125 z M 827.46875,-5.6875 C 824.06355,-5.2465779 816.77655,-4.753902 817,-0.0625 C 821.21703,2.823011 827.52449,-0.3432878 832.30775,-0.034861325 C 836.47685,-0.69239898 842.4161,-0.56188348 845.5,-0.90625 C 840.40269,-5.0512538 833.88723,-6.1083572 827.46875,-5.6875 z M 1006,10.71875 C 1004.7183,11.934937 1000.2396,15.949822 1004.5312,16.28125 C 1009.3479,16.884847 1015.8345,15.647745 1019.4062,14.40625 C 1015.0883,13.179646 1010.3967,9.8027781 1006,10.71875 z M 634.65625,15.28125 C 623.12034,15.748841 611.67696,16.520789 600.71875,20.34375 C 595.01013,22.743124 586.87188,22.870255 583.1875,28.34375 C 586.74699,32.918042 594.32474,30.734533 598.34375,27.625 C 603.55128,23.517036 608.61112,18.714257 615.6875,18.28125 C 622.31592,17.030229 628.94481,16.258043 635.5625,15.21875 L 634.65625,15.28125 z M 898,19.96875 C 891.55795,21.518285 884.8782,23.252263 878.1875,24.40625 C 888.11723,26.528096 898.51274,26.092155 908.625,25.25 C 905.43405,22.888512 902.36433,19.203142 898,19.96875 z M 1042,27.84375 C 1038.3683,27.709194 1041.2155,31.162091 1043.1875,31.5 C 1048.4065,34.040861 1054.6755,33.540584 1059.8438,31.5625 C 1054.0143,29.829045 1048.156,27.788221 1042,27.84375 z M 1080.4375,30.90625 C 1077.6775,31.882717 1074.6889,34.630215 1078.4375,36.53125 C 1092.1859,34.082115 1106.5242,37.83703 1120.1875,40.1875 C 1128.4971,42.37711 1136.5998,45.633519 1145.437,44.279731 C 1151.8132,43.461299 1157.8865,45.667783 1162.7812,49.46875 C 1170.9383,54.321879 1180.1972,55.02784 1189.2898,56.711433 C 1197.1386,58.646217 1207.6126,61.17333 1214.4688,59.59375 C 1205.5725,52.912961 1194.1191,54.838363 1183.6562,54.59375 C 1176.1871,55.174345 1169.1443,51.794548 1165.1562,45.5 C 1158.7636,39.104737 1148.8083,43.092167 1140.8506,40.976909 C 1124.4778,39.197924 1108.2768,35.578066 1091.9375,33.65625 C 1087.8423,35.116638 1084.1489,32.597243 1080.7188,30.875 L 1080.5625,30.875 L 1080.4375,30.90625 z M 830.03125,34.75 C 828.43387,34.779633 823.36803,34.656229 827.15625,36.71875 C 830.99332,39.5582 835.54218,41.245982 839.3125,44.21875 C 836.36622,44.991592 830.11156,42.259381 834.59375,46.4375 C 839.86533,52.165942 843.25404,61.151142 851.9375,62.1875 C 862.72337,65.388693 874.37074,63.191378 885.25,65.21875 C 890.24269,65.876401 890.91608,72.931502 896.09375,72.4375 C 903.6389,74.195797 913.17892,76.600043 919.15625,69.9375 C 927.01327,62.7304 939.00898,67.715761 947.84375,64.84375 C 941.67234,60.760031 931.88871,65.254684 927.78125,57.875 C 924.67556,52.454909 917.29689,55.474905 912.32863,53.571115 C 904.67411,51.75533 896.64189,50.375984 889.4375,47.5625 C 887.07792,44.334242 893.34942,42.90044 892.8125,40.09375 C 884.6946,39.824524 876.37447,40.216994 868.46875,38.28125 C 863.94413,37.160275 862.04278,41.813894 858.84375,43.5625 C 854.68811,43.011168 851.95864,38.49676 847.59375,37.78125 C 842.05241,35.719764 836.03371,34.621404 830.03125,34.75 z M 601.65625,41.40625 C 593.33728,44.217563 587.22809,52.906032 577.59375,51.5625 C 563.32039,52.100762 549.36079,56.70339 535.5625,60.03125 C 548.41062,59.758477 560.49826,55.411765 572.90625,52.84375 C 577.58941,51.897036 581.46028,54.835431 583.78125,58.5 C 591.29281,57.024613 599.05258,52.072393 602.40625,45.03125 C 602.60442,44.182271 603.35307,41.093962 601.65625,41.40625 z M 990.84375,43.5625 C 983.67309,42.672541 980.54901,51.771714 973.28125,50.625 C 970.94229,50.742974 967.05927,50.819063 966.25,53.5625 C 976.79249,53.403986 987.74353,51.057156 997.71875,55.65625 C 1001.9814,58.113777 1005.6678,54.980822 1008,51.65625 C 1011.0532,48.87423 1015.6688,47.450924 1019.0625,46.21875 C 1009.6872,45.11499 1000.3106,43.477297 990.84375,43.5625 z M 1136.8125,55.46875 C 1144.7904,58.644871 1153.2399,59.470032 1161.6875,60.3125 C 1169.4407,62.218149 1177.4331,65.294467 1184.125,69.25 C 1184.8563,72.823845 1178.8906,70.990047 1177,73.3125 C 1172.9142,74.981395 1179.0305,76.929058 1180.5312,77.4375 C 1188.7432,79.6227 1198.4628,81.603093 1206.5,79.375 C 1204.4278,76.940301 1202.3807,73.933452 1200.625,71.59375 C 1194.6245,69.485262 1185.7855,72.477094 1182.2188,65.625 C 1180.2894,57.965187 1170.7326,59.705167 1164.7501,59.462293 C 1155.064,60.193973 1145.7283,57.836923 1136.4375,55.34375 L 1136.8125,55.46875 z M 1203.5312,63.59375 C 1209.6854,66.769269 1214.4547,74.301086 1221.75,74.46875 C 1224.3088,72.658888 1219.219,69.63492 1217.8438,68.59375 C 1213.2236,65.710988 1207.9692,63.890088 1202.625,62.9375 L 1203.4349,63.52401 L 1203.5312,63.59375 z M 1241.25,65.71875 C 1250.3026,71.284033 1260.3224,76.551236 1271.0312,77.25 C 1275.694,77.263804 1269.5865,75.462027 1268.2039,74.704533 C 1263.631,72.236142 1256.7564,71.45823 1253.4062,68.03125 C 1250.4691,65.343977 1244.8437,66.334068 1240.9688,65.5 L 1241.25,65.71875 z M 1092.2812,67.46875 C 1093.7644,68.939915 1099.2294,70.424808 1102.3311,71.480502 C 1106.4572,72.653561 1112.0289,74.548708 1115.8438,72.0625 C 1108.6418,68.592558 1100.2755,67.186194 1092.2812,67.46875 z M 751.1875,67.9375 C 748.83085,67.951139 743.454,69.977134 744.71875,72.90625 C 747.08294,73.262922 752.29032,74.666673 749.59375,77.9375 C 742.42543,84.741227 732.13433,80.67455 725.15625,75.90625 C 720.89395,70.351657 712.89416,73.219278 707.125,74.1875 C 704.71841,75.008997 700.44947,75.657356 699.21875,77.21875 C 707.85951,82.581617 718.5294,83.217453 727.78125,86.71875 C 731.45104,89.271388 724.45823,91.745914 726.75,94.25 C 733.02775,90.990136 740.34202,82.863739 747.96875,87.59375 C 756.88249,93.173129 760.64326,104.5183 769.5,109.84375 C 783.61989,111.90781 798.1094,112.69134 811.96875,115.6875 C 814.49302,118.56377 809.70554,119.03237 807.71875,118.875 C 814.79389,125.01788 823.80328,129.67132 832.75,132.1875 C 831.56211,126.55645 825.01803,123.21093 824.40625,117.59375 C 827.25905,114.0438 832.09335,119.49426 835.22899,120.18388 C 843.15406,123.49012 850.17072,129.33234 858.53125,131.125 C 863.89415,128.70714 869.74257,130.51457 875.14853,131.37597 C 884.62583,129.11813 896.39754,131.28789 903.8125,123.96875 C 905.88254,122.47464 905.84153,118.01467 902.34375,119.53125 C 893.3443,121.17749 885.05286,127.26829 875.71875,127.59375 C 872.56638,124.11946 879.43242,122.26994 881.60951,120.73303 C 894.87691,114.66548 907.73782,107.07 921.8125,103.15625 C 920.2431,105.03811 925.72239,101.3846 926.8125,101.53125 C 928.89679,100.71533 931.72565,100.19614 933.5,99.875 C 927.89212,96.943003 920.58149,91.542389 914.625,96.75 C 911.2136,99.092599 909.26308,103.13946 904.59375,102.71875 C 897.81322,103.50308 887.06071,105.44407 883.96875,97.40625 C 881.81151,92.717056 887.72754,86.928734 884.53125,82.84375 C 881.07881,81.737332 875.14023,83.482258 873.28125,83.96875 C 880.26824,87.127243 883.06085,96.00772 882.9375,103.15625 C 880.17329,110.44633 870.37313,109.23732 864.00008,109.82532 C 845.58401,110.57136 830.12657,98.794479 814.70221,90.333948 C 808.32255,85.316512 800.15915,84.011789 792.34375,85.5 C 788.20432,85.42124 787.06119,80.222255 783.15625,79.15625 C 773.39284,73.815061 762.4843,67.994829 751.1875,67.9375 z M 1203.5312,68.90625 C 1206.1577,70.552353 1205.1584,68.756881 1203.5312,68.90625 z M 951.75,71.375 C 948.17106,71.249876 949.05883,71.93768 952.0625,72.125 C 954.45635,71.723583 960.3523,72.671738 956.84375,75.6875 C 953.72393,77.133796 949.28317,77.770845 946.84375,78.75 C 950.09368,78.898272 952.28829,82.362582 951.1875,85.09375 C 962.1308,86.805547 973.76202,84.433701 984.09375,80.59375 C 985.53173,79.979502 989.60914,78.29914 986.3125,77.03125 C 980.31047,73.149171 972.75137,74.364725 966.0625,72.5625 C 961.32568,71.878643 956.54517,71.277346 951.75,71.375 z M 840.40625,74.375 C 844.51805,76.326489 848.79792,77.574699 853.3125,78.125 C 849.39148,76.569621 844.13769,74.149641 840.40625,74.375 z M 638.4375,78 C 625.64497,78.551894 612.93053,80.3735 600.15625,81.28125 C 619.312,82.260922 638.55281,80.176665 657.65625,81.8125 C 663.20033,82.152249 667.91918,85.218925 671.25,89.40625 C 678.77611,91.815932 687.43783,87.801172 694.875,91.5 C 701.43483,95.285946 708.61113,97.693684 716.3125,97.125 C 723.27566,96.892549 727.52089,102.82016 731.375,107.59375 C 739.91873,115.70527 753.17514,115.98748 761.3125,124.78125 C 770.10087,129.39373 780.8337,128.93412 789.0625,135.03125 C 799.27191,140.64257 805.60961,150.8718 813.90625,158.4375 C 818.28824,160.8437 825.2068,162.10979 829.21875,158.625 C 829.62514,154.99059 823.91892,154.02387 822.04248,151.51823 C 808.86852,140.44544 795.39256,125.3431 776.71875,125.09375 C 773.51946,125.6232 766.62235,127.67058 767.125,122.03125 C 768.92558,116.65806 765.20975,111.64778 759.95192,110.45913 C 735.12097,100.67817 708.58811,95.119042 684.5,83.71875 C 669.73658,79.017082 653.92913,78.021036 638.4375,78 z M 862.25,82.75 C 863.27267,85.087871 867.72149,85.102122 868.25,84.03125 C 865.74317,83.561955 863.44736,82.464233 861.125,81.5625 L 861.81274,82.288453 L 862.25,82.75 z M 980.9375,105.46875 C 976.38944,106.52287 971.0274,109.53586 968.59375,113.46875 C 966.74843,117.04798 971.34119,118.17596 974,116.96875 C 981.64119,115.27487 990.1336,112.43815 996.5625,108.8125 C 991.18072,108.57869 986.2878,105.41673 980.9375,105.46875 z M 951.03125,107.125 C 951.06056,107.18066 951.25078,107.23567 951.03125,107.125 z M 951.0625,107.15625 C 951.15785,107.21439 951.14953,107.33476 951.0625,107.15625 z M 950.65625,105.84375 L 950.90625,105.8125 L 950.65625,105.84375 z M 949.53125,105.875 C 950.08197,105.93067 951.72279,105.74868 949.53125,105.875 z M 947.875,105.90625 C 949.85018,105.86827 949.51087,105.87479 947.875,105.90625 z M 946.21875,105.96875 C 948.19331,105.89281 947.85499,105.90582 946.21875,105.96875 z M 944.5625,106.0625 C 946.53602,105.94864 946.19937,105.96807 944.5625,106.0625 z M 942.90625,106.1875 C 944.87832,106.0358 944.54399,106.06152 942.90625,106.1875 z M 939.78125,106.5 C 941.70379,106.30382 941.28878,106.34617 939.78125,106.5 z M 938.34375,106.6875 C 939.81787,106.47072 939.62995,106.49835 938.34375,106.6875 z M 936.96875,106.84375 C 938.80972,106.62968 938.22885,106.69723 936.96875,106.84375 z M 917.84375,107.65625 C 915.1208,110.30507 911.22501,113.16772 910.09375,116.65625 C 919.20234,118.65821 929.07883,117.20871 938.15625,115.84375 C 942.26141,114.75204 935.89844,112.33226 934.6875,111.9375 C 931.75817,110.69227 921.59048,109.16831 929.75128,108.16912 C 935.8468,107.16464 933.39593,107.0688 928.625,107.21875 C 925.45032,106.32337 920.87699,110.02483 918.75,106.90625 L 917.97961,107.54382 L 917.84375,107.65625 z M 1069.9062,108.90625 C 1063.024,110.09775 1055.3251,112.90849 1049.4062,115.21875 C 1061.7225,117.19792 1073.3579,110.4299 1085.4688,108.875 C 1080.283,108.90152 1075.0866,108.82565 1069.9062,108.90625 z M 1030.5625,109.8125 C 1021.6957,109.71878 1012.8203,110.66514 1004.4062,113.46875 C 1012.0987,117.15642 1021.6515,117.31127 1028.3692,111.50548 C 1028.8278,111.0582 1033.4651,109.13368 1030.5625,109.8125 z M 1207.0312,140.90625 C 1206.1266,143.33678 1204.9521,148.51287 1207.75,150.03125 C 1210.4912,149.51108 1214.7768,146.17638 1213.375,143.34375 C 1211.2749,142.56001 1209.074,141.54324 1207.0312,140.90625 z M 1165.2812,141.1875 C 1161.2949,141.43118 1157.0477,141.1241 1153.25,142.3125 C 1161.8935,148.10719 1173.0489,144.28132 1182.0312,148.59375 C 1185.8491,151.59455 1193.2377,154.70454 1196.7188,149.96875 C 1197.5384,146.2173 1194.2726,140.33953 1189.8753,141.69603 C 1181.6777,141.52062 1173.4844,140.95039 1165.2812,141.1875 z M 1293.2812,148.375 C 1290.6782,148.1918 1295.0145,151.06073 1294.9062,152.625 C 1297.1302,155.28275 1293.9943,158.73401 1291.4688,156.21875 C 1286.4688,153.03941 1280.239,145.81192 1274.0312,151.03125 C 1271.0428,152.21894 1268.3361,157.53501 1272.7812,158.625 C 1283.7309,160.49846 1292.4616,167.881 1299.7812,175.9375 C 1328.9479,176.57292 1358.1146,177.20833 1387.2812,177.84375 C 1385.2667,175.0953 1383.4399,170.35285 1380.125,169.5625 C 1374.273,174.78765 1365.4671,170.61946 1358.5625,173.1875 C 1342.9153,171.92837 1328.7015,161.71281 1312.6562,163.09375 C 1308.3467,162.94328 1308.6854,157.51702 1311.625,155.625 C 1313.6521,153.46575 1316.3817,151.45941 1318.4688,149.75 C 1310.3193,147.96351 1301.6358,148.50179 1293.2812,148.375 z M 993.8125,162 C 1004.9896,170.08818 1021.5257,176.85294 1034.2188,168 C 1038.556,165.73267 1041.0464,163.71165 1034.4485,165.0687 C 1022.2282,166.54863 1009.6977,166.58318 997.99303,162.43721 C 997.06085,162.38127 993.80983,161.38174 993.8125,162 z "
+ id="path8611" />
+ <path
+ style="opacity:0.2;fill:url(#linearGradient9591);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 749.3125,-73.09375 C 737.33223,-71.487858 725.75999,-66.943255 713.46875,-67.40625 C 709.90266,-67.44244 713.87747,-65.306509 714.99282,-64.655473 C 718.08928,-62.439153 722.36879,-61.122082 724.28125,-57.71875 C 722.83418,-55.045574 718.84827,-57.938985 716.59378,-58.058104 C 711.32705,-59.333013 705.93163,-62.388098 700.875,-63.15625 C 706.46373,-55.432926 715.49602,-50.482183 724.65625,-48.5625 C 733.15224,-45.264694 731.63801,-34.196287 736.65625,-28.09375 C 742.9752,-21.86605 753.39575,-24.138747 758.94649,-30.145231 C 763.64087,-36.061159 770.85748,-38.369091 778.03125,-39.59375 C 782.22524,-41.025567 787.15512,-41.540755 789.71875,-45.40625 C 793.75828,-48.949842 798.27436,-51.938111 802.5,-55.25 C 794.1975,-53.312148 785.90665,-50.589272 777.25,-50.4375 C 765.99158,-48.63267 757.30829,-40.066782 747.0625,-35.84375 C 743.43203,-34.441471 742.04681,-39.005065 743.28125,-41.625 C 744.12318,-48.521434 749.03866,-53.888527 755.34375,-56.40625 C 761.56969,-60.011346 769.77376,-61.679001 774.40625,-67.375 C 773.72543,-69.703439 769.64963,-69.372349 767.66613,-70.027581 C 761.95434,-70.306311 756.78607,-72.496882 751.28173,-73.151769 C 750.62407,-73.179862 749.96745,-73.155424 749.3125,-73.09375 z M 1370,-35.875 C 1376.7737,-28.688996 1385.9979,-24.611738 1395.6562,-23 C 1400.5917,-21.543069 1395.0297,-23.688664 1393.9062,-25.21875 C 1391.8898,-26.742173 1393.028,-30.057576 1390.25,-30.875 C 1383.7125,-34.084316 1376.3621,-35.22628 1369.25,-36.625 L 1369.7803,-36.09467 L 1370,-35.875 z M 630.59375,-26.5625 C 624.21199,-24.312569 617.70325,-21.948993 610.76078,-21.748277 C 607.24156,-20.963989 600.52803,-19.697149 600.5,-15.1875 C 601.68101,-14.756092 604.88097,-14.705339 602.84375,-12.875 C 597.13146,-9.6771712 589.43016,-8.6508961 585.28125,-3.3125 C 585.94786,-2.131692 585.52046,0.24463058 587.625,-0.5 C 600.25354,0.083817594 610.79271,-9.5365706 623.59375,-8.09375 C 632.21855,-8.3015532 641.51746,-4.873446 649.75,-8.09375 C 652.43711,-10.804137 648.16535,-14.544544 646.53125,-16.65625 C 644.15504,-16.597985 640.60872,-16.304624 638.625,-18.59375 C 635.31395,-20.490375 635.03707,-27.071551 630.59375,-26.5625 z M 524.53125,-20.90625 C 531.30338,-16.98691 538.96571,-14.994095 546.1875,-12.53125 C 550.12132,-9.8693095 555.08535,-5.5568168 554.125,-0.3125 C 551.70002,3.387442 546.02427,0.93946314 542.41191,1.0642534 C 531.1087,0.05925644 519.87213,-3.4439981 508.5625,-3.21875 C 513.74243,0.52469124 520.50735,0.1291684 526.28125,1.96875 C 527.49253,4.4935728 522.65662,4.3151586 521.25,4.78125 C 517.4179,6.020781 512.6375,4.2311508 509.25,6.375 C 506.66023,12.00455 509.88734,18.639053 511.34375,24.1875 C 512.34712,27.431302 517.34798,22.929917 519.8125,23.15625 C 529.90498,19.965369 540.14415,16.409306 548.59375,9.9375 C 552.68375,6.9244911 559.42128,9.5624306 561.71875,3.9375 C 565.54286,-0.80318504 572.126,3.1102573 576.46875,4.90625 C 579.75715,6.2415343 583.60193,8.5302078 587.03125,7.6875 C 585.47336,4.702579 581.80436,3.3086578 580.375,0.3125 C 572.72518,-2.0097 564.70946,-5.9679817 560.125,-12.65625 C 558.55787,-15.621094 563.40516,-17.513089 563.28125,-19.46875 C 550.45184,-21.826047 536.95657,-19.181066 523.96875,-21.1875 L 524.53125,-20.90625 z M 587.0625,7.75 L 587.0625,7.71875 L 587.0625,7.75 z M 709.625,-19.9375 C 706.64236,-17.947723 701.68303,-16.396601 700.75,-12.71875 C 704.92526,-10.460563 710.69468,-10.780192 715.21875,-12.09375 C 719.74137,-13.319008 716.05309,-19.054899 712.81949,-19.103038 C 711.81892,-19.152836 710.55989,-20.467802 709.625,-19.9375 z M 774.53125,-17.5625 C 771.92274,-15.71591 771.09285,-11.531228 767.5,-10.625 C 760.67027,-8.2831751 752.3906,-8.2121194 746.65625,-3.9375 C 762.04912,-1.4626426 777.17147,2.9912957 792.46875,5.71875 C 800.53982,6.9820066 807.59553,10.993545 813.6875,16.25 C 815.4285,17.251745 817.25639,19.257647 818.65625,17.09375 C 824.0636,14.623842 824.50342,5.461875 818.28125,3.6875 C 805.85761,-0.40529927 791.96189,3.2271051 779.53125,-0.90625 C 777.40208,-3.0571599 781.71609,-4.2792392 783.34375,-4.46875 C 790.22466,-6.2071159 797.51415,-6.3571314 804.53125,-7.3125 C 794.96963,-11.104359 784.78899,-13.207 775.5,-17.5625 C 775.18077,-17.571778 774.84858,-17.635913 774.53125,-17.5625 z M 827.40625,-6.4375 C 823.40343,-5.9994495 817.22243,-5.4156314 816.09375,-0.75 C 816.74895,3.0937321 822.29537,1.4734117 825,1.53125 C 832.76662,0.58305626 840.56925,-0.22934005 848.40625,0.03125 C 842.20719,-4.7780175 835.35937,-7.229041 827.40625,-6.4375 z M 1006.0938,9.5 C 1004.9637,11.300535 1000.3453,13.946192 1002.5,16.3125 C 1009.0327,18.594949 1016.7647,15.971952 1022.75,14.3125 C 1016.9546,13.643449 1011.9513,9.6403004 1006.0938,9.5 z M 642.125,14.03125 C 630.0048,15.275791 617.60259,14.430082 605.8934,18.132731 C 598.23884,20.732329 589.46577,21.57446 583.125,26.8125 C 580.65483,30.030082 586.44269,31.67657 588.8125,31.65625 C 599.33892,32.084575 604.3781,19.99092 614.5625,19.25 C 624.13385,17.061074 634.29118,17.082634 643.5625,14 C 643.08313,14.002008 642.60335,13.986348 642.125,14.03125 z M 897.96875,19.21875 C 890.50485,21.145769 882.71676,22.609451 875.34375,24.40625 C 886.70861,27.657885 898.91576,26.754598 910.625,25.875 C 906.72226,23.252726 903.2524,18.37852 897.96875,19.21875 z M 1041.9062,27.09375 C 1039.3446,26.598455 1038.3405,29.93687 1040.8125,30.90625 C 1047.2775,35.61105 1055.654,34.021122 1062.7188,31.65625 C 1055.832,29.679601 1049.0904,27.014268 1041.9062,27.09375 z M 1080.375,30.15625 C 1078.2853,30.605446 1076.9825,32.757924 1075.125,33.65625 C 1076.3266,36.08154 1078.4622,38.496687 1081.4062,36.90625 C 1091.3829,35.32222 1101.6771,38.024504 1111.625,39.25 C 1119.1308,40.244618 1126.3989,42.848517 1133.5938,44.71875 C 1142.6932,46.235499 1153.3826,42.419891 1160.9062,49.28125 C 1168.6948,53.953461 1177.6937,55.963781 1186.5771,56.875897 C 1196.5219,59.049164 1206.9563,62.442012 1217.125,59.96875 C 1211.1011,56.911915 1205.1875,53.325898 1198.1875,53.84375 C 1188.9602,53.060049 1177.9693,56.188892 1170.1875,49.9375 C 1166.479,45.827147 1162.7156,40.694231 1156.375,41.09375 C 1134.8729,40.949145 1113.8017,35.678774 1092.5938,32.875 C 1088.7122,33.901477 1084.8965,32.904712 1081.875,30.375 C 1081.4106,30.179997 1080.8781,30.064424 1080.375,30.15625 z M 1070.5625,32.65625 C 1073.3111,33.283688 1069.2098,32.163941 1070.5625,32.65625 z M 830.03125,34 C 828.55863,34.370503 825.07573,33.522766 824.75,35.34375 C 827.71977,39.124815 832.94925,40.563508 836.8125,43.46875 C 834.95695,44.257649 832.48751,42.44097 831.21875,42.6875 C 834.81384,48.447527 839.44037,53.816941 843.6875,59.1875 C 853.32293,65.788503 865.87347,64.639126 877.0625,65.15625 C 882.80539,64.5051 888.95691,66.456335 891.8125,71.78125 C 894.17876,74.15283 898.21183,72.748387 901.03125,74.1875 C 907.63329,76.173931 915.67807,75.346124 920.4375,69.84375 C 927.88534,64.036912 937.92611,68.141512 946.45812,65.9054 C 949.57576,65.936263 950.52457,64.872511 947.28125,63.71875 C 942.0021,60.55458 934.99388,63.46374 930.15625,59.65625 C 928.04493,56.754241 925.69484,53.16253 921.4375,53.8125 C 910.76771,53.483131 900.31092,49.859281 890.21875,47.21875 C 887.95486,44.236995 895.22486,42.703437 893.40625,39.5625 C 886.17224,38.408859 878.3227,40.135376 871.09375,37.84375 C 866.79598,36.599641 862.05829,38.221844 859.78125,42.21875 C 856.80989,44.386551 854.62673,39.309057 851.8125,38.84375 C 845.0823,35.465312 837.56218,33.881244 830.03125,34 z M 601.65625,40.65625 C 593.42461,43.05222 587.74151,51.693509 578.53125,50.78125 C 564.50518,51.081499 550.99928,55.527085 537.40625,58.71875 C 536.19975,59.210525 530.36788,60.416154 531.625,60.8125 C 545.16297,61.002029 558.27599,57.311752 571.15625,53.8125 C 575.81094,52.550609 580.76831,54.400172 582.875,58.75 C 585.47954,60.448811 588.81823,57.474492 591.34375,56.59375 C 596.69359,53.410566 604.45784,48.652071 603.21875,41.40625 C 602.95598,40.724272 602.39026,40.523509 601.65625,40.65625 z M 990.8125,42.8125 C 985.56759,42.058068 982.48325,46.587334 978.5,48.875 C 974.5847,50.999243 967.17611,48.24464 965.5,53.59375 C 966.62137,55.586596 970.53747,53.518239 972.4375,54.15625 C 980.86831,53.131889 989.53582,52.987543 997.46875,56.375 C 1001.3455,58.481457 1005.7393,56.561526 1007.8125,52.875 C 1011.7699,48.904811 1018.0048,47.467564 1022.8125,45.90625 C 1012.1671,44.752078 1001.5518,42.738956 990.8125,42.8125 z M 1127.9062,52.90625 C 1137.8703,56.990318 1148.2875,60.436167 1159.1562,60.625 C 1167.6569,62.017642 1175.8877,65.761844 1183.4375,69.5625 C 1183.4061,71.823859 1179.2669,70.452689 1177.75,72.03125 C 1176.1628,72.523064 1173.2148,74.688956 1175.7188,76 C 1184.2295,80.562803 1194.4351,81.285393 1204,80.875 C 1205.8159,80.911341 1208.8331,80.074577 1206.5312,78.0625 C 1204.7195,75.865762 1202.5659,73.805065 1201.6875,71.03125 C 1196.5463,69.142115 1190.4855,70.786786 1185.5938,68.25 C 1181.8848,66.04903 1182.2024,59.940139 1177.125,59.5 C 1166.536,57.538503 1155.3995,60.197155 1145.0216,56.696106 C 1139.1094,55.250761 1133.2417,53.620283 1127.2812,52.625 L 1127.9062,52.90625 z M 1200.2812,62 C 1206.4743,66.115455 1211.7962,71.704075 1218.6562,74.84375 C 1220.6428,76.276715 1224.6297,74.816235 1222.875,72.1875 C 1217.4946,65.555114 1208.258,62.997246 1200.0625,61.8125 L 1200.2812,62 z M 1239.5938,64.6875 C 1238.5133,65.186359 1241.9732,66.9611 1242.6562,67.59375 C 1251.4235,72.401377 1260.8898,77.502996 1271.0625,78 C 1272.4363,77.827976 1276.892,77.592606 1273.4375,76.25 C 1267.3268,72.962474 1259.8126,71.249516 1254.1562,67.96875 C 1253.0608,65.009442 1248.2363,66.063167 1245.7565,65.183046 C 1243.714,64.959441 1241.6446,64.66355 1239.5938,64.6875 z M 1092.2188,66.71875 C 1089.0563,66.438709 1090.5053,68.028229 1092.5312,68.6875 C 1099.8386,71.286857 1107.9292,75.754643 1115.8125,73.125 C 1118.4027,71.604052 1113.9944,70.301646 1112.8438,69.9375 C 1106.2653,67.577384 1099.2393,66.415122 1092.2188,66.71875 z M 751.0625,67.1875 C 748.12271,67.343014 742.74627,69.521965 743.875,73.125 C 745.26657,74.874981 750.23893,73.605542 749.4375,76.9375 C 745.6216,80.923294 739.52638,81.944026 734.5,79.71875 C 729.7641,78.435057 725.73157,75.41304 722.125,72.5 C 714.01368,70.924854 705.45727,73.304583 698.09375,76.65625 C 698.69251,78.933719 702.74575,79.68326 704.80301,80.74381 C 711.93291,83.805008 720.08439,84.652996 727.3125,87.28125 C 730.05076,89.778559 722.82965,92.407697 726.375,94.96875 C 732.45316,93.026322 737.1639,86.109047 744.34375,86.9375 C 753.04482,89.666602 757.33572,99.278669 763.2397,105.50556 C 765.81067,109.12906 769.60075,111.60015 774.21354,111.21325 C 786.64968,113.00308 799.49187,113.63047 811.65625,116.4375 C 813.01883,119.42918 806.68369,116.74255 806.875,118.90625 C 813.04615,125.33251 821.76131,128.8378 829.90433,132.28306 C 831.31228,133.15439 834.70429,133.51172 833.1875,130.96875 C 831.37418,126.11058 826.67022,122.84736 825.0625,118.03125 C 826.42293,115.56899 829.7829,118.65108 831.54295,119.15358 C 840.30886,123.13695 848.49979,128.81814 857.53125,131.8125 C 861.0714,131.82189 864.48182,129.59286 868.21875,130.875 C 872.61403,132.1601 877.09643,132.4429 881.70823,131.30781 C 889.90588,129.67838 900.7732,130.83575 905.65625,122.5625 C 907.02656,120.18562 904.87622,117.55702 902.25,118.8125 C 893.22841,120.38448 885.24088,126.276 876.03125,126.84375 C 874.25407,124.55048 879.02255,123.39313 880.31467,122.26586 C 893.10027,115.87916 906.03847,109.46266 919.37797,104.39762 C 919.65155,105.85408 915.13695,108.64501 913.4375,110.71875 C 912.28277,112.49047 908.57269,114.92925 909.53125,117.1875 C 916.98265,119.72876 925.44948,117.65539 933.25,117.46875 C 935.22501,116.90197 940.52124,117.40531 940.34375,114.46875 C 937.3808,111.10618 932.47374,110.77422 928.5,109.25 C 933.21137,107.95329 938.08857,107.42674 942.9375,106.9375 C 935.33798,106.20715 927.44962,106.24394 920.0625,107.34375 C 918.23573,105.31673 922.90662,104.18734 924.1875,103.375 C 927.6492,101.65465 932.17987,100.79043 935.5625,100.46875 C 931.03979,97.464313 925.6996,94.255167 920.125,93.75 C 914.95171,93.89585 911.74486,98.895183 907.875,101.375 C 901.09411,102.2719 893.00521,104.4576 886.875,100.4375 C 882.50802,96.926511 885.01243,91.348093 886.03125,86.9375 C 887.13844,84.155531 885.408,81.066508 882.28125,81.71875 C 876.00974,81.918833 869.41225,85.275788 863.46875,81.6875 C 855.25845,78.982486 847.48138,72.905842 838.59375,73.78125 C 839.14475,75.206317 842.66178,76.064946 844.40625,76.84375 C 848.77447,78.820707 853.70849,78.232673 858.0625,79.875 C 861.25368,82.166238 864.03428,87.589745 868.75,84.8125 C 875.51803,82.598845 879.8758,90.508345 881.28125,96.0625 C 883.03037,99.966649 883.00651,105.88061 878,107.21875 C 870.19031,109.58367 861.46135,109.67049 853.42864,108.2556 C 836.44747,104.07278 822.37553,92.980002 806.90625,85.375 C 801.70236,82.817119 795.85519,85.418211 790.5,84.375 C 784.88124,77.935411 776.46959,74.556501 768.65625,71.21875 C 762.93859,69.282336 757.15646,66.624723 751.0625,67.1875 z M 1203.125,67.96875 C 1201.4514,70.48422 1206.5547,70.432292 1208.0938,71 C 1211.9328,72.123894 1205.4129,68.568548 1204.0312,68.09375 C 1203.7564,67.968117 1203.4442,67.886717 1203.125,67.96875 z M 951.71875,70.625 C 950.18309,70.750086 947.92268,70.634656 946.78125,71.40625 C 949.74895,73.621124 954.1088,72.163427 957.125,73.65625 C 957.11476,76.325228 952.28172,75.895356 950.375,76.9375 C 948.28213,77.731796 938.72761,79.139332 945.1875,79.21875 C 948.28618,79.06139 952.14444,81.797301 950.1875,85.1875 C 953.22982,87.496421 958.35927,86.200363 962.15317,86.213348 C 971.0672,84.984419 980.97869,84.377873 988.34375,78.75 C 988.56671,76.066744 984.01406,75.468947 982.25,74.25 C 977.86682,73.119343 972.8195,73.3413 968.25,72.125 C 962.78027,71.301192 957.26405,70.51742 951.71875,70.625 z M 638.4375,77.25 C 620.95325,78.257283 603.5436,80.497077 586.0625,81.6875 C 608.1084,82.594417 630.17362,81.941591 652.21875,82.03125 C 658.66702,82.380715 666.08801,83.381674 669.875,89.25 C 675.25758,93.210797 682.52669,89.354892 688.65625,90.71875 C 696.82915,91.48971 703.1501,98.436143 711.6875,97.71875 C 717.84411,97.247744 724.50454,98.921942 727.73786,104.53248 C 735.4009,116.12268 751.46074,115.386 760.5,125.15625 C 768.24305,129.92878 778.07123,129.06012 785.84375,134.09375 C 797.02882,139.43395 804.18637,149.90867 812.6875,158.46875 C 817.08355,161.78468 823.78934,162.25905 828.65625,160.1875 C 832.30907,158.0554 828.15998,154.43829 825.78125,153.4375 C 811.89252,142.69839 799.36076,127.4402 781.15625,124.5625 C 777.00891,123.34043 772.76514,125.91 768.84375,124.78125 C 766.28998,121.96405 769.84118,117.05613 766.8125,114.09375 C 761.41948,108.48249 752.91106,107.50307 745.97432,104.5804 C 725.73742,97.766065 704.78283,92.461758 685.5625,83.28125 C 670.48412,78.317386 654.27134,77.254577 638.4375,77.25 z M 1042.875,102.46875 C 1038.3305,105.58381 1033.9182,110.18253 1027.8125,109.09375 C 1019.3703,109.32265 1010.2221,110.06666 1002.7188,113.5625 C 1010.4372,117.29973 1020.4266,118.79581 1027.5135,112.86768 C 1033.0195,109.1063 1040.4949,107.0339 1044.4688,101.71875 C 1044.541,100.81082 1043.192,102.51219 1042.875,102.46875 z M 980.84375,104.71875 C 976.04114,105.67876 971.54673,108.81022 968.25,112.3125 C 966.50685,114.83619 967.81579,118.83771 971.40625,118.03125 C 980.99107,116.4961 990.80046,113.37894 998.90625,108.1875 C 992.59785,108.49347 987.00794,104.71454 980.84375,104.71875 z M 946.78125,106.6875 C 950.65684,106.10589 952.84339,107.66808 947.3996,106.75868 L 946.78125,106.6875 z M 951.0625,107.15625 C 951.15785,107.21439 951.14953,107.33476 951.0625,107.15625 z M 944.59375,106.8125 C 946.76614,106.69178 946.79945,106.68603 944.59375,106.8125 z M 1069.8125,108.15625 C 1062.4027,109.53585 1054.873,112.19173 1047.9688,115 C 1047.2929,116.01766 1050.6262,116.085 1051.3125,116.28125 C 1063.5362,116.97847 1074.8225,111.04112 1086.8084,109.36391 C 1093.7292,108.13388 1092.181,107.94237 1085.875,108.125 C 1080.5218,108.14921 1075.1623,108.07876 1069.8125,108.15625 z M 1206.5938,140.125 C 1205.2395,143.14422 1204.1514,148.57654 1207.25,150.75 C 1210.7811,150.65696 1215.1526,146.89476 1214.3438,143.25 C 1212.4348,141.53468 1208.6583,140.72534 1206.5938,140.125 z M 1165.2812,140.4375 C 1161.1038,140.98785 1155.6146,139.81778 1152.1562,142.28125 C 1158.7953,147.29853 1167.9712,146.70621 1175.9688,147.40625 C 1182.3343,147.99536 1186.7146,154.5949 1193.5312,152.90625 C 1198.2347,152.66876 1198.8086,146.62506 1195.8125,143.75 C 1194.5465,141.07126 1192.2497,140.42089 1189.5,140.9375 C 1181.4277,140.74654 1173.3593,140.21216 1165.2812,140.4375 z M 1293.2812,147.625 C 1289.4546,146.92954 1291.3678,148.81836 1292.8438,150.46875 C 1293.8566,151.82322 1296.4695,156.24573 1293.3125,156.28125 C 1287.7706,154.04018 1282.9966,146.34403 1276.25,149 C 1273.0042,150.23316 1267.4301,154.40702 1270.5625,158.1875 C 1275.4228,161.01508 1281.5886,161.11234 1286.1791,164.72165 C 1291.5063,167.81734 1295.1609,173.71544 1300.2498,176.70381 C 1329.5287,177.19635 1359.8259,178.28764 1388.4688,178.40625 C 1386.0151,175.08744 1384.3513,169.79994 1380.0312,168.6875 C 1374.5584,174.05911 1365.77,169.85274 1359.0625,172.375 C 1348.7828,172.1369 1339.3625,166.72644 1329.4351,164.38771 C 1323.8712,162.35073 1317.9188,162.45362 1312.1562,162.21875 C 1308.4666,161.48187 1310.5146,157.06537 1312.625,155.6875 C 1314.4106,153.30607 1318.2571,151.69207 1319.6875,149.5 C 1311.4812,146.79588 1301.8988,147.96083 1293.2812,147.625 z M 992.53125,161.0625 C 991.40954,161.741 994.69427,163.37595 995.28125,164.03125 C 1004.8153,169.97324 1016.7326,175.41113 1028.0312,171.8125 C 1033.0644,169.74714 1037.8487,166.96138 1042.125,163.59375 C 1027.898,164.91537 1013.0464,167.08656 999.32604,161.9487 C 997.10765,161.51189 994.85057,160.89693 992.53125,161.0625 z "
+ id="path8620" />
+ <path
+ style="opacity:0.2;fill:url(#linearGradient9593);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1389.8339,179.39504 C 1389.8339,179.39504 1382.2394,164.61658 1379.0019,168.56442 C 1375.7645,172.51227 1366.0578,169.51631 1359.583,171.49023 C 1353.1081,173.46415 1328.2942,160.64793 1316.4236,161.63489 C 1304.553,162.62185 1314.2831,154.75211 1319.6788,150.80427 C 1325.0745,146.85643 1304.5842,146.85187 1294.872,146.85187 C 1285.1597,146.85187 1291.5912,147.80831 1293.7495,153.73008 C 1295.9078,159.65185 1287.3157,149.80107 1280.841,147.82714 C 1274.3661,145.85322 1261.3808,157.69874 1274.3306,160.65962 C 1287.2803,163.6205 1291.6395,170.53577 1299.1935,177.4445 L 1389.8339,179.39504 z M 1022.3336,173.74875 C 1024.4559,173.63742 1026.4616,173.25705 1028.2827,172.51683 C 1037.995,168.56898 1044.5027,162.61015 1044.5027,162.61015 C 1023.9988,164.58408 1014.2546,165.57104 1004.5423,162.61015 C 994.8299,159.64927 986.19973,158.69025 994.83278,164.61202 C 1001.8473,169.42346 1013.1375,174.23114 1022.3336,173.74875 z M 823.1494,162.09685 C 824.4856,162.05252 825.9644,161.88163 827.58311,161.63489 C 827.58311,161.63489 835.13713,158.66488 827.58311,153.73008 C 820.02908,148.79527 817.85865,144.86428 804.90904,134.99466 C 791.95934,125.12505 781.15854,122.19012 772.52554,124.16405 C 763.89234,126.13797 773.63794,117.25333 765.00494,111.33157 C 756.37164,105.40979 705.63624,92.535715 690.52824,84.640025 C 675.42034,76.744325 641.98364,75.799585 632.27144,76.786545 C 622.55914,77.773505 580.44624,81.714215 572.89214,81.714215 C 565.33814,81.714215 605.29004,83.676445 641.98094,82.689485 C 678.67174,81.702525 660.32784,93.543485 679.75234,91.569555 C 699.17684,89.595635 695.93604,98.499095 713.20234,98.499095 C 730.46854,98.499095 721.81434,108.36355 743.39704,116.25924 C 764.97994,124.15493 753.10084,126.11915 772.52554,130.06699 C 791.95004,134.01483 802.78134,148.79527 807.09794,153.73008 C 810.87484,158.04804 813.79544,162.40721 823.1494,162.09685 z M 1191.716,153.83274 C 1199.1535,153.85804 1201.4933,147.32454 1193.3997,139.92233 C 1191.2414,140.90929 1176.1497,138.93537 1158.8834,139.92233 C 1141.6171,140.90929 1157.832,147.82714 1170.7817,147.82714 C 1183.7314,147.82714 1181.5675,152.74311 1190.2006,153.73008 C 1190.7402,153.79176 1191.2201,153.83105 1191.716,153.83274 z M 1207.3746,151.52289 C 1211.3168,151.92698 1218.3251,144.32992 1213.9411,141.9242 L 1206.3643,138.94706 C 1206.3643,138.94706 1203.1397,143.85592 1205.298,149.77768 C 1205.7026,150.88801 1206.4648,151.42964 1207.3746,151.52289 z M 832.35374,133.66008 C 837.03062,134.0379 832.30435,127.23205 827.58311,121.18691 C 822.18747,114.27819 829.74348,119.21755 841.61412,125.13932 C 853.48476,131.06108 856.71661,133.99145 861.03304,132.01753 C 865.34965,130.0436 873.99779,133.04413 873.99779,133.04412 C 873.99779,133.04412 890.15361,131.05395 895.54942,130.06699 C 900.94505,129.08003 908.53949,124.11985 906.38127,119.18505 C 904.22306,114.25023 885.88603,125.12762 877.25298,126.11459 C 868.61975,127.10155 918.22354,105.3773 918.22354,105.3773 C 918.22354,105.3773 909.59318,112.31139 908.51399,116.25924 C 907.43479,120.20709 921.45036,119.19673 933.32082,118.20978 C 945.19146,117.22282 943.05874,112.29058 931.1881,109.3297 C 931.1881,109.3297 940.90753,107.37917 949.54076,107.37917 C 958.1738,107.37917 930.09903,104.37864 922.545,106.35257 C 914.99097,108.3265 927.96847,101.4249 934.4433,101.4249 C 940.91813,101.4249 931.16529,96.480965 923.61145,93.520095 C 916.05742,90.559205 908.51399,100.44963 908.51399,100.44963 C 908.51399,100.44963 891.27896,104.40916 886.96235,99.474365 C 882.64574,94.539565 886.96235,91.548745 886.96235,84.640025 C 886.96235,77.731295 875.07195,82.689485 869.67614,82.689485 C 864.28051,82.689485 847.03543,71.847175 839.4814,72.834145 C 831.92738,73.821085 848.10385,79.712345 854.57886,79.712345 C 861.05369,79.712345 861.05585,88.627505 868.60988,85.666615 C 876.1639,82.705725 880.43921,93.540905 881.51841,100.44963 C 882.59743,107.35836 873.99563,108.35444 859.96677,108.35444 C 845.93792,108.35444 823.29002,93.550615 811.41934,86.641885 C 799.54894,79.733155 791.96994,86.637335 789.81174,82.689485 C 787.65334,78.741645 770.37774,69.840765 757.42804,66.879875 C 744.47844,63.918995 739.11114,73.797715 745.58594,74.784675 C 752.06084,75.771645 747.71364,77.738425 743.39704,79.712345 C 739.08044,81.686255 727.21554,76.781975 723.97814,72.834145 C 720.74074,68.886285 703.50064,72.799075 698.10504,75.759945 C 692.70924,78.720835 713.19964,84.667965 722.91184,86.641885 C 732.62414,88.615815 722.88614,89.611875 725.04454,94.546695 C 727.20284,99.481495 734.76404,87.617155 743.39704,87.617155 C 752.03024,87.617155 762.85154,110.34461 769.32634,111.33157 C 775.80124,112.31852 821.10109,117.23451 809.23064,117.23451 C 797.36004,117.23451 821.13881,130.08325 829.77203,133.04412 C 830.85105,133.41423 831.68546,133.60611 832.35374,133.66008 z M 971.37292,118.77441 C 972.46469,118.76092 973.79515,118.5799 975.41385,118.20978 C 988.36351,115.24889 1005.642,107.37917 998.08797,107.37917 C 990.53394,107.37917 984.06486,102.42812 978.66905,104.40203 C 973.27342,106.37596 967.89323,111.33157 967.89323,111.33157 C 967.89323,111.33157 963.73035,118.86885 971.37292,118.77441 z M 1015.7109,117.64515 C 1018.9421,117.72033 1022.251,117.0832 1025.0837,115.23264 C 1032.6376,110.29784 1048.8191,103.41052 1044.5027,100.44963 C 1032.632,108.34532 1035.8622,108.35444 1026.15,108.35444 C 1016.4378,108.35444 998.093,112.28345 1002.4096,114.25738 C 1005.1073,115.49108 1010.3257,117.51986 1015.7109,117.64515 z M 1054.8294,117.13185 C 1058.0726,117.03666 1062.0074,116.46635 1066.0542,115.23264 C 1079.0039,111.28481 1100.6266,107.37917 1100.6266,107.37917 C 1100.6266,107.37917 1088.7212,107.37917 1070.3758,107.37917 C 1067.1383,107.37917 1058.5236,110.32123 1049.8905,113.28211 C 1043.9552,115.31771 1047.6943,117.34124 1054.8294,117.13185 z M 956.61239,87.257845 C 964.52669,87.248205 976.92049,85.156885 982.99069,82.689485 C 992.70294,78.741645 990.51401,76.781975 980.80176,72.834145 C 978.64355,73.821085 964.61038,69.857005 952.73974,69.857005 C 940.86928,69.857005 946.29544,73.809405 954.92867,73.809405 C 963.56171,73.809405 933.36913,79.712345 938.76494,79.712345 C 944.16057,79.712345 951.69897,79.705215 949.54076,84.640025 C 948.73131,86.490575 951.86366,87.263625 956.61239,87.257845 z M 1200.8081,81.816875 C 1201.6245,81.800005 1202.3672,81.775895 1203.1091,81.714215 C 1214.0812,80.801975 1203.8793,76.520765 1202.2673,70.421635 C 1198.7488,69.630925 1194.8095,68.881735 1191.267,68.881735 C 1189.1087,68.881735 1184.7821,68.849245 1182.6239,62.927465 C 1180.4656,57.005705 1170.7411,57.999815 1159.9497,57.999795 C 1149.1583,57.999795 1143.7966,55.057765 1128.6886,52.096855 C 1113.5806,49.135985 1144.8623,60.976935 1153.4955,60.976935 C 1162.1286,60.976935 1169.6692,63.958635 1178.3023,67.906465 C 1186.9354,71.854325 1181.522,67.899325 1175.0471,72.834145 C 1168.977,77.460515 1188.561,82.069895 1200.8081,81.816875 z M 1202.2673,70.421635 C 1207.9753,71.704405 1212.4135,73.057545 1211.4716,71.602225 C 1206.5375,68.338805 1202.0428,65.131055 1202.0428,68.881735 C 1202.0428,69.404675 1202.1353,69.922165 1202.2673,70.421635 z M 1211.4716,71.602225 C 1215.6262,74.350005 1220.0616,77.113395 1222.5281,75.759945 C 1227.9238,72.799075 1218.2477,64.913085 1205.298,61.952195 C 1192.3483,58.991305 1202.0655,63.935245 1209.6195,69.857005 C 1210.6709,70.681175 1211.2255,71.221885 1211.4716,71.602225 z M 1270.1213,78.788415 C 1270.467,78.791185 1270.828,78.767925 1271.1315,78.737085 C 1280.8438,77.750115 1275.4154,75.802155 1254.9116,67.906465 C 1254.9116,65.932545 1252.7512,64.941025 1240.8806,63.954065 C 1229.381,62.997945 1259.4036,78.702505 1270.1213,78.788415 z M 909.07523,75.913935 C 912.52133,75.798285 916.05239,74.768435 919.2898,71.807545 C 927.92303,63.911855 932.26155,69.852435 950.60702,65.904605 C 951.68622,64.917655 946.28826,60.976935 936.57601,60.976935 C 926.86377,60.976935 931.19098,53.072125 921.47873,53.072125 C 911.76631,53.072125 897.74607,48.156145 892.35026,47.169185 C 886.95463,46.182225 894.48297,44.187485 894.48297,40.239645 C 894.48297,36.291795 884.75852,40.223415 871.80886,37.262515 C 858.8592,34.301636 861.02801,45.162755 856.71158,41.214915 C 852.39496,37.267065 840.53277,32.374456 827.58311,33.361436 C 814.63344,34.348406 840.52504,45.202365 832.97101,42.241515 C 825.41699,39.280625 836.21849,50.104125 841.61412,57.999795 C 847.00993,65.895485 867.51505,65.904585 879.38569,65.904605 C 891.25616,65.904605 889.08734,73.809405 894.48297,73.809405 C 897.85527,73.809405 903.33172,76.106685 909.07523,75.913935 z M 1111.9076,74.733345 C 1117.6742,74.502025 1119.5138,71.337455 1114.6576,69.857005 C 1114.6576,69.857005 1105.9868,65.904585 1094.1162,65.904605 C 1082.2457,65.904605 1094.1567,70.848535 1104.9482,73.809405 C 1107.646,74.549625 1109.9853,74.810445 1111.9076,74.733345 z M 1209.3389,61.592885 C 1212.9136,61.639145 1216.3613,61.235375 1219.329,60.001665 C 1208.5376,56.053805 1210.6965,53.072125 1195.5885,53.072125 C 1180.4805,53.072125 1173.9886,54.077915 1168.5928,47.169185 C 1163.1971,40.260455 1159.9526,40.239645 1150.2403,40.239645 C 1140.528,40.239645 1100.6344,33.321806 1095.2387,32.334836 C 1089.843,31.347876 1088.7361,34.332156 1083.3404,30.384306 C 1079.0812,27.267946 1077.5125,32.139076 1073.8555,33.361436 C 1074.1628,33.650166 1074.4501,33.959836 1074.6973,34.336706 C 1077.9348,39.271505 1077.9447,38.249475 1083.3404,37.262515 C 1088.7361,36.275565 1118.9764,40.244215 1128.6886,44.192045 C 1138.4009,48.139905 1151.3422,43.209635 1157.817,48.144455 C 1164.2919,53.079235 1177.2282,57.024525 1182.6239,57.024525 C 1186.6706,57.024525 1198.6149,61.454105 1209.3389,61.592885 z M 1073.8555,33.361436 C 1071.9933,31.611836 1069.0934,31.411426 1065.7736,31.872866 C 1067.4649,32.425216 1069.3308,33.042876 1070.3758,33.361436 C 1071.7395,33.777166 1072.8797,33.687566 1073.8555,33.361436 z M 1065.7736,31.872866 C 1056.9849,29.002636 1041.8297,24.096446 1039.1147,27.407166 C 1035.8773,31.355026 1047.7244,36.310615 1055.2784,34.336706 C 1058.7597,33.427026 1062.4677,32.332376 1065.7736,31.872866 z M 533.60534,61.592885 C 540.32894,61.506145 553.90574,59.750355 565.37154,56.049255 C 583.71704,50.127475 579.39484,60.988605 584.79044,60.001665 C 590.18634,59.014695 604.20944,51.112485 604.20944,43.216785 C 604.20944,35.321085 595.55644,43.209615 586.92324,48.144455 C 584.76494,50.118365 578.33124,50.094985 574.01464,50.094985 C 569.69804,50.094985 538.35314,57.040775 530.79914,60.001665 C 527.96634,61.111995 529.57124,61.644945 533.60534,61.592885 z M 1002.2412,57.948465 C 1004.056,57.734485 1005.774,56.638165 1007.7975,54.047395 C 1013.1932,47.138645 1031.528,46.154285 1022.8948,45.167315 C 1014.2618,44.180355 995.93245,41.254545 988.3786,42.241515 C 980.82457,43.228445 981.91437,49.119725 973.28114,49.119725 C 964.64809,49.119725 963.54609,54.087025 965.70448,55.073995 C 979.73334,55.073995 981.87809,53.100065 990.51131,55.073995 C 995.90695,56.307695 999.21656,58.305085 1002.2412,57.948465 z M 589.44884,32.437496 C 596.40434,32.477266 602.40624,26.180626 607.46464,22.479496 C 612.86044,18.531656 638.71784,17.535576 644.11374,14.574686 C 649.50934,11.613796 632.24374,14.574686 620.37314,14.574686 C 616.05654,14.574686 599.90354,18.531676 589.11214,22.479496 C 578.32064,26.427346 580.49164,31.347876 588.04564,32.334836 C 588.51784,32.396516 588.98514,32.434856 589.44884,32.437496 z M 913.9019,27.407166 C 914.53444,26.828706 913.96386,26.635316 912.77941,26.585886 C 913.16429,26.875356 913.48613,27.102996 913.9019,27.407166 z M 912.77941,26.585886 C 903.17385,19.361336 902.75485,16.655546 893.41671,19.502366 C 883.70446,22.463236 868.57647,23.482706 876.1305,25.456636 C 883.68453,27.430556 890.18414,27.407166 897.73817,27.407166 C 903.07848,27.407166 909.92239,26.466676 912.77941,26.585886 z M 511.38024,26.431896 C 511.38024,26.431896 537.31964,19.532876 545.95264,12.624156 C 554.58584,5.7154256 557.79974,11.628076 562.11634,4.7193456 C 566.43294,-2.1893844 578.30294,8.6717456 585.85694,8.6717456 C 592.70264,8.6717456 579.14644,0.57693561 581.36704,-0.20832439 C 577.14984,-1.0724244 570.37224,-4.1113444 565.37154,-8.1131344 C 556.73854,-15.021864 562.09084,-15.047224 564.24904,-18.995074 C 566.40744,-22.942914 534.05724,-19.946954 524.34494,-21.920884 C 514.63254,-23.894804 536.22264,-14.027784 542.69744,-13.040804 C 549.17224,-12.053844 557.81534,-0.22002439 551.34054,0.76694561 C 544.86574,1.7539056 517.86784,-4.1607344 510.31394,-4.1607344 C 502.75994,-4.1607344 512.49984,0.75523561 522.21224,1.7422156 C 531.92454,2.7291756 520.01344,4.7193456 511.38024,4.7193456 C 502.74714,4.7193456 511.38024,26.431896 511.38024,26.431896 z M 817.87373,19.502366 C 816.79454,17.528456 825.41986,16.579116 823.26164,7.6964856 C 821.10325,-1.1861744 800.59814,1.7656056 785.49004,-0.20832439 C 770.38224,-2.1822544 787.68114,-5.1756344 801.71004,-6.1625944 C 815.73887,-7.1495644 788.74814,-12.058394 779.03594,-16.993214 C 769.32344,-21.928014 775.76564,-12.037584 762.81594,-10.063674 C 749.86634,-8.0897444 742.33564,-3.1854444 746.65224,-3.1854644 C 750.96884,-3.1854644 768.24164,1.7467756 788.74524,5.6946156 C 809.24894,9.6424656 806.00314,13.580586 817.87373,19.502366 z M 1006.5066,17.962466 C 1014.6802,18.151356 1029.6829,13.599406 1024.0173,13.599426 C 1017.5425,13.599426 1015.3771,9.6587156 1005.6648,8.6717456 C 1005.6648,9.6587156 997.00105,15.577896 1003.4759,17.551826 C 1004.2853,17.798566 1005.339,17.935476 1006.5066,17.962466 z M 821.85845,2.5121556 C 827.09604,2.3193856 834.97891,0.76694561 843.74683,0.76694561 C 840.50942,0.76694561 863.21191,0.76694561 854.57886,0.76694561 C 845.94564,0.76694561 845.92067,-6.1509244 832.97101,-7.1378644 C 820.02136,-8.1248344 813.58264,-3.1809144 815.74102,0.76694561 C 816.55028,2.2473756 818.71586,2.6278156 821.85845,2.5121556 z M 589.84164,0.25364561 C 594.04654,0.060875612 598.92294,-1.0764744 606.34214,-4.1607344 C 618.21274,-9.0955344 624.69694,-7.1495644 638.72574,-6.1625944 C 652.75464,-5.1756344 654.93564,-9.0858044 646.30244,-17.968474 C 644.14424,-16.981514 639.84324,-16.027044 635.52664,-23.922744 C 631.21004,-31.818444 627.94784,-23.883114 613.91894,-22.896154 C 599.89014,-21.909184 596.62484,-14.016074 602.02064,-14.016074 C 607.41624,-14.016074 581.55304,-7.1449944 584.79044,-2.2101944 C 585.68814,-0.84207439 585.22244,-0.18318439 583.94874,-0.054334388 C 585.89124,0.19924561 587.78724,0.34782561 589.84164,0.25364561 z M 583.94874,-0.054334388 C 583.50564,-0.11215439 583.05254,-0.13960439 582.60174,-0.20832439 C 582.07244,-0.28899439 581.71774,-0.26138439 581.47924,-0.20832439 C 582.47544,-0.011024388 583.31294,0.0099656125 583.94874,-0.054334388 z M 709.27364,-10.371654 C 716.15324,-10.464174 721.80984,-13.073314 715.33504,-18.995074 L 709.94714,-20.945614 C 709.94714,-20.945614 693.79344,-13.064184 702.42654,-11.090274 C 704.58484,-10.596794 706.98054,-10.340804 709.27364,-10.371654 z M 1413.5743,-17.968474 C 1413.151,-18.162074 1412.0602,-18.459164 1410.712,-18.789754 C 1411.6583,-18.522184 1412.6043,-18.234624 1413.5743,-17.968474 z M 1410.712,-18.789754 C 1401.1307,-21.498994 1393.0329,-24.359194 1393.0329,-28.850424 C 1393.033,-33.785234 1367.1597,-37.730494 1367.1597,-37.730494 C 1367.1598,-37.730494 1375.8,-27.858894 1385.5123,-24.898014 C 1393.3195,-22.517914 1405.1872,-20.144554 1410.712,-18.789754 z M 746.48394,-23.563444 C 750.95594,-23.641514 755.82714,-25.804464 760.68324,-30.800954 C 769.31644,-39.683614 773.63724,-35.749424 788.74524,-42.658164 C 787.66604,-43.645114 796.30144,-49.580574 802.77634,-54.515374 C 809.25114,-59.450175 789.80164,-51.538244 781.16864,-51.538244 C 772.53544,-51.538244 763.89784,-46.589764 753.10664,-39.681034 C 742.31514,-32.772304 742.34854,-37.727914 745.58594,-46.610574 C 748.82344,-55.493225 762.81314,-57.461975 772.52554,-64.370725 C 782.23774,-71.279445 762.84934,-70.289925 755.29534,-73.250795 C 747.74134,-76.211674 731.55284,-68.323145 717.52394,-68.323125 C 703.49514,-68.323125 715.37054,-64.377885 721.84544,-59.443055 C 728.32024,-54.508244 714.28424,-59.447595 703.49294,-63.395455 C 692.70154,-67.343295 709.97494,-50.535034 721.84544,-48.561104 C 733.71604,-46.587184 730.46784,-31.783374 736.94284,-26.848554 C 739.77544,-24.689574 743.00574,-23.502714 746.48394,-23.563444 z "
+ id="path8629" />
+ <path
+ style="opacity:0.2;fill:url(#linearGradient9595);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 749.1875,-74.59375 C 737.16451,-72.963086 725.59729,-68.441677 713.28125,-68.90625 C 710.78242,-69.343338 708.97041,-66.395563 711.5625,-65.09375 C 714.88697,-62.688136 719.01575,-60.929289 722.1875,-58.15625 C 714.83798,-59.311967 707.88814,-63.619127 700.5625,-64.71875 C 697.40431,-63.341009 701.46916,-59.736711 702.84375,-58.40625 C 708.82986,-52.689101 716.45975,-48.660259 724.53125,-47 C 733.54886,-42.496221 729.58304,-28.196122 739.40625,-24.4375 C 747.79777,-20.003081 757.19329,-25.293163 762.75,-31.75 C 769.92623,-38.491327 780.82349,-37.12826 789.0625,-41.96875 C 789.46593,-42.766594 790.6268,-44.700975 792.40625,-45.75 C 796.26347,-49.300649 801.591,-51.669129 804.8125,-55.71875 C 803.9798,-58.458564 799.76048,-55.691707 797.8275,-55.692902 C 790.77552,-53.377566 783.4546,-52.424764 776.15625,-51.75 C 765.14498,-49.719848 756.67383,-41.535256 746.6875,-37.3125 C 743.04461,-36.249193 744.76425,-41.577536 745.25,-43.28125 C 747.0889,-53.202952 758.34738,-55.761251 766,-59.75 C 769.39482,-61.92397 775.05144,-63.376506 775.9375,-67.78125 C 774.37616,-71.712792 768.63357,-70.877984 765.26718,-71.945134 C 759.65035,-72.021096 754.81976,-75.234819 749.1875,-74.59375 z M 1366.625,-37.1875 C 1373.6917,-29.147202 1383.2678,-23.528009 1393.9686,-21.878945 C 1401.0148,-20.553567 1408.0563,-18.013615 1415.0938,-17.46875 C 1410.7785,-20.695085 1404.6227,-20.631847 1399.8438,-23.25 C 1396.6699,-24.386537 1393.7014,-26.681258 1393.375,-30.15625 C 1388.637,-34.978206 1380.9701,-35.299736 1374.7646,-37.115837 C 1371.5362,-37.764796 1368.304,-38.391495 1365.0312,-38.78125 C 1365.5625,-38.25 1366.0937,-37.71875 1366.625,-37.1875 z M 630.40625,-28.0625 C 623.95578,-25.843528 617.52859,-23.432391 610.54092,-23.254947 C 606.13552,-22.36349 599.43187,-20.733922 598.8125,-15.40625 C 598.53992,-13.913433 602.0565,-13.419313 599.46875,-12.96875 C 594.25924,-10.286562 587.12875,-9.1076813 583.875,-3.84375 C 583.02765,-2.7174527 585.78053,-0.409898 583.34375,-0.875 C 575.18759,-1.7804248 567.30996,-6.520263 561.90625,-12.5625 C 559.46294,-15.755365 567.26628,-17.575675 564.375,-20.59375 C 556.09919,-23.156237 546.94273,-21.383081 538.34375,-21.90625 C 532.76406,-21.544981 527.06113,-22.640056 521.625,-22.75 C 520.01565,-20.538447 524.62212,-19.47441 526.05058,-18.424276 C 532.19622,-15.177083 538.98115,-13.379973 545.4375,-11.21875 C 548.87188,-8.8936432 553.23706,-5.2728061 552.6875,-0.75 C 549.45993,1.4632584 544.75111,-0.7141188 541.11074,-0.61973989 C 530.20824,-1.7030219 519.40303,-5.0045045 508.4375,-4.75 C 505.55858,-4.4053789 507.4647,-1.1432483 509.4375,-0.9375 C 513.96436,1.2969717 519.00251,2.1757076 524,2.75 C 519.13539,4.3694767 513.65496,2.9845041 508.9375,4.65625 C 504.73967,8.7447005 507.5618,15.57609 508.59385,20.498608 C 509.84923,22.944428 509.58515,28.861463 513.43989,26.637709 C 526.20961,22.886283 539.24357,18.930149 549.96875,10.875 C 554.4323,8.8215822 560.86681,10.268745 563.125,4.59375 C 566.9501,0.94150039 572.59013,5.2848962 576.52652,6.5916022 C 580.09179,7.8136032 584.76518,10.998715 588.375,8.53125 C 588.94824,4.9929715 584.11679,3.2322019 582.34375,0.6875 C 591.90521,2.2389337 601.14389,-1.0077294 609.8125,-4.65625 C 622.47103,-9.6801205 636.32621,-3.0973508 649.25,-6.15625 C 653.20664,-7.2024256 652.56025,-12.258447 650.15625,-14.59375 C 648.4538,-16.733224 646.93334,-19.766641 643.96875,-18.09375 C 636.81956,-17.453824 637.15309,-28.878776 630.40625,-28.0625 z M 709.59375,-21.59375 C 705.86163,-19.265742 700.37224,-17.556202 699.15625,-12.90625 C 700.2335,-9.291107 705.40371,-10.100109 708.40625,-9.625 C 712.12228,-9.6424651 718.88874,-9.8974731 718.90625,-14.90625 C 718.06908,-19.265501 713.42763,-21.076014 709.59375,-21.59375 z M 774.28125,-19.0625 C 770.7655,-17.776043 770.39607,-12.34497 766.15625,-11.6875 C 759.08532,-9.6630781 750.66371,-9.499831 744.875,-4.34375 C 744.01571,-1.4398713 748.81466,-2.7547823 750.25,-2 C 766.09169,1.7512639 782.07097,4.8573584 797.8125,8.65625 C 806.10066,10.582072 811.40358,17.9002 819.1875,21.03125 C 816.93514,17.877231 822.39877,17.389637 823.125,14.8125 C 825.33621,11.196033 824.65697,5.4810129 820.78125,3.28125 C 832.03193,2.3503631 843.26601,0.94495461 854.59375,1.53125 C 858.20312,-0.13473263 851.63728,0.14176869 850.25,-0.78125 C 844.7017,-4.1414903 839.15381,-8.1139317 832.28358,-7.9340269 C 826.26809,-8.0849521 818.13222,-8.0241071 814.8125,-2.125 C 813.70605,-0.77208948 816.37576,2.1729046 813.73055,0.93000195 C 802.79924,-0.82539657 791.29732,0.84694065 780.625,-2.03125 C 788.58711,-5.1509984 797.73003,-4.2296999 805.875,-6.25 C 807.75893,-8.8314071 802.50722,-9.5726322 800.97599,-10.330921 C 792.30857,-12.870442 783.85551,-15.617652 775.625,-19.0625 C 775.18028,-19.072238 774.72344,-19.141695 774.28125,-19.0625 z M 579.28125,-0.25 C 578.21796,1.0403823 578.00101,-1.642355 579.28125,-0.25 z M 1004.9375,8.46875 C 1003.1831,10.686344 998.41185,14.105933 1001.25,17.25 C 1007.1348,20.507401 1014.4811,17.745605 1020.6562,16.5625 C 1021.907,15.984764 1027.4235,15.349053 1025.4375,13.0625 C 1018.2905,12.957907 1012.3154,7.9696071 1005.0938,7.8125 L 1004.9375,8.46875 z M 642.0625,12.53125 C 630.59789,13.788096 618.83943,12.870189 607.69862,16.135246 C 599.17774,18.839917 589.51696,19.947681 582.34375,25.4375 C 579.27781,27.89911 581.89129,32.099059 585.25,32.5 C 594.50276,35.648887 601.94276,27.369805 608.71875,22.59375 C 620.21765,18.042302 633.50324,19.602439 644.9375,14.96875 C 647.76476,12.936557 643.7175,12.088745 642.0625,12.53125 z M 897.78125,17.71875 C 889.97001,19.876293 881.87317,20.988937 874.1875,23.28125 C 871.63921,24.948214 875.91277,26.619739 877.375,26.5625 C 888.92569,29.134534 900.84887,28.024458 912.53125,27.34375 C 914.78626,30.129678 915.94815,25.317814 913.0625,25.875 C 908.31212,22.742088 904.14848,16.759887 897.78125,17.71875 z M 1041.8125,25.59375 C 1038.2917,25.14694 1036.29,29.781922 1039.4375,31.75 C 1045.8707,36.792516 1054.806,36.063393 1062.0938,33.34375 C 1066.0618,31.431864 1069.9433,35.054556 1073.7812,34.34375 C 1075.2238,37.347345 1078.1858,40.196267 1081.7188,38.34375 C 1092.6747,36.919952 1104.0077,39.869105 1114.8438,41.34375 C 1123.8481,42.486663 1131.9522,47.572422 1141.2187,46.613283 C 1147.4903,46.480121 1154.5184,45.682331 1159.4375,50.15625 C 1167.6737,55.277346 1177.3633,57.466734 1186.8438,58.4375 C 1190.4331,59.568765 1195.4124,59.985333 1198.2188,61.40625 C 1198.5105,63.80739 1203.2412,65.325949 1203.25,66.4375 C 1200.4458,66.050846 1202.3912,70.883642 1199.6875,69.09375 C 1194.5333,67.223728 1186.7376,70.208314 1183.9375,64.0625 C 1181.8462,56.495575 1172.4456,57.232712 1166.2501,57.199795 C 1152.051,58.714001 1138.8604,52.563637 1125.0625,50.875 C 1122.1305,51.690388 1125.8182,54.112761 1127.3438,54.28125 C 1137.4187,58.447942 1147.9623,61.902644 1158.9375,62.125 C 1166.4013,63.203789 1173.3836,66.510577 1180.25,69.59375 C 1177.5228,70.343797 1172.1565,72.07912 1173.4688,75.78125 C 1178.0302,80.684458 1185.7392,80.858922 1192,82.09375 C 1197.3266,82.227596 1203.7123,83.843341 1208.4375,80.875 C 1210.0624,77.471063 1204.9063,75.107812 1203.875,72.25 C 1203.3993,70.577879 1208.2193,73.011688 1209.875,72.90625 C 1214.3182,72.458243 1217.8426,78.320512 1222.625,76.53125 C 1226.3146,75.155638 1224.5523,70.371883 1221.9062,68.8125 C 1218.3382,65.773321 1213.9995,63.82453 1209.5625,62.34375 C 1213.6841,62.461825 1217.7113,61.691041 1221.4375,60 C 1213.9584,57.642581 1207.6462,51.843302 1199.4375,52.40625 C 1190.2442,51.469245 1179.8352,54.554444 1171.6562,49.28125 C 1167.7178,45.028035 1163.6578,39.373329 1157.0348,39.645925 C 1135.2996,39.494049 1114.0101,34.123218 1092.5625,31.375 C 1088.8993,32.330768 1085.3522,31.430242 1082.5312,29.03125 C 1079.1253,27.271776 1076.6132,31.308636 1073.9375,32.46875 C 1069.9854,29.53637 1064.6586,32.152006 1060.5,29.40625 C 1054.3341,27.643712 1048.2678,25.43202 1041.8125,25.59375 z M 829.96875,32.5 C 827.70182,32.463649 821.99726,32.493589 823.46875,36.15625 C 824.85101,38.600062 828.53121,39.826081 829.875,41.5 C 829.12418,45.015247 833.33745,47.548033 834.8701,50.39359 C 839.07071,55.323011 842.09985,62.13642 849,63.6875 C 860.19627,67.48352 872.26341,65.849868 883.8125,67.15625 C 889.15609,67.758973 889.96684,75.558935 895.78125,74.65625 C 903.5123,76.466291 913.31537,78.807615 919.78125,72.375 C 926.46772,65.411881 936.78819,69.441599 945.18146,67.623776 C 946.88238,66.945477 952.69804,67.735728 951.125,64.625 C 946.36343,59.74262 938.75975,60.89482 932.6875,59.5625 C 929.26491,57.527121 928.05576,52.302537 923.21875,52.40625 C 912.26406,52.366001 901.54879,48.561657 891.21875,46.03125 C 893.40721,44.5353 897.37921,40.089298 893.75,38.03125 C 886.18177,36.986781 878.2341,38.569719 870.75,36.28125 C 865.95578,35.001035 861.13823,37.176168 858.5625,41.28125 C 855.81436,40.107863 853.33322,37.308013 850.125,36.40625 C 843.77845,33.69082 836.88529,32.344139 829.96875,32.5 z M 601.4375,39.15625 C 593.21704,41.218279 587.56494,50.127767 578.46875,49.28125 C 564.83013,49.467276 551.71147,53.905946 538.48893,56.889402 C 535.43379,58.289356 530.4824,57.948393 528.625,60.9375 C 530.09163,63.630265 534.67684,61.805145 537.2175,62.175553 C 548.92784,61.61071 560.22451,58.238972 571.40625,55.3125 C 575.36187,54.168084 579.82351,55.65613 581.5,59.46875 C 584.3851,62.679979 588.95096,59.196014 592.03125,57.90625 C 597.88802,54.500554 605.65464,49.46277 604.84375,41.71875 C 604.61249,40.02995 603.20706,38.7755 601.4375,39.15625 z M 990.75,41.3125 C 985.59946,40.753682 981.98757,44.470112 978.28125,47.3125 C 973.8616,49.403794 966.49897,47.03889 964.15625,52.5625 C 963.1088,55.524962 966.66214,56.591392 968.96846,55.791675 C 978.12416,55.370319 987.65514,53.69515 996.27699,57.57178 C 1000.5034,59.751842 1005.9029,58.791052 1008.4062,54.5 C 1012.7533,49.256107 1020.3649,49.165451 1025.9062,46.125 C 1025.4152,43.239935 1020.632,44.83509 1018.6,43.872432 C 1009.3499,42.765877 1000.0922,41.207857 990.75,41.3125 z M 1239.4688,63.1875 C 1236.2873,63.190942 1237.9487,66.892009 1239.9688,67.5625 C 1249.1008,73.308851 1259.3131,78.337613 1270.125,79.53125 C 1272.0321,79.309904 1277.4533,79.581193 1276.25,76.46875 C 1270.2591,71.798528 1261.7842,70.709438 1255.4688,66.9375 C 1252.945,63.309799 1247.3261,64.349315 1243.476,63.415668 C 1242.141,63.374575 1240.804,63.073353 1239.4688,63.1875 z M 1092.0938,65.21875 C 1090.2049,64.734349 1086.9228,66.699782 1089.2812,68.46875 C 1096.0972,72.36934 1104.031,75.189219 1111.9375,75.46875 C 1114.4768,75.685274 1119.7633,73.997791 1117.625,70.6875 C 1110.4318,66.29382 1101.3977,65.249127 1093,65.15625 L 1092.2518,65.207852 L 1092.0938,65.21875 z M 750.90625,65.6875 C 746.15071,64.939271 738.17872,72.318762 744.5625,75.3125 C 745.75283,75.627095 749.96493,75.925993 746.71875,77.28125 C 740.51002,81.740563 732.71261,77.936779 727,74.46875 C 724.5576,71.959503 721.47771,69.839129 717.625,70.40625 C 710.51131,70.945975 702.79479,72.007532 696.78125,75.875 C 695.53283,79.3706 700.99104,80.531652 703.2261,81.751033 C 710.57428,84.960011 719.02559,86.022878 726.53125,88.59375 C 723.67028,90.206491 722.67478,96.349 726.9375,96.5 C 733.19368,94.488346 738.28875,86.533401 745.59375,88.875 C 755.33954,94.15767 758.97582,106.46996 768.5,111.90625 C 781.07824,113.80278 794.0337,114.86768 806.5,116.875 C 803.12294,118.75307 807.68646,122.15817 809.4375,123.34375 C 816.76264,127.88427 824.29143,132.75819 832.8125,134.4375 C 836.71397,134.12486 834.42392,129.30541 833.03125,127.46875 C 831.43485,124.52182 828.01549,121.15269 826.96875,118.71875 C 837.127,122.93446 846.54318,129.49604 856.90625,133.25 C 860.68032,133.84937 864.11404,130.94842 868,132.375 C 872.02998,133.38122 876.12616,134.27434 880.40766,132.99665 C 889.41589,131.26876 901.32292,132.44505 906.84375,123.5625 C 908.80169,120.62024 906.53304,116.13588 902.78125,117.1875 C 894.28167,118.6134 886.43368,123.52291 878.25,125.1875 C 889.7732,118.706 902.01167,113.55125 914.03125,108.03125 C 911.87604,110.80418 906.93459,113.74846 908.03125,117.75 C 911.90447,121.11019 918.09613,119.40505 922.87378,119.70721 C 929.01039,118.73946 936.4048,120.31144 941.5625,116.28125 C 943.28696,112.77166 937.97518,110.74618 935.4375,109.8125 C 934.46137,108.91453 941.07764,108.83343 943.09375,108.4375 C 945.92351,107.73352 949.3754,108.937 951.90625,107.5625 C 951.02592,104.85808 946.23616,106.35065 943.9084,105.5057 C 937.41555,104.90672 929.03208,104.73259 923.5625,105.28125 C 927.70558,102.97397 932.40629,102.55471 936.84375,101.6875 C 938.55414,99.209201 933.79774,97.702524 932.40625,96.65625 C 927.00815,93.955761 920.29538,89.843761 914.5,94.125 C 910.5437,96.153235 908.5632,101.11183 903.50785,100.57698 C 898.1426,100.93651 890.82182,102.82535 886.84375,98.125 C 883.29267,92.961986 890.78962,86.166224 886.3125,81.3125 C 879.7939,77.654934 871.6504,84.513557 864.90625,80.65625 C 856.26127,77.807977 848.04314,71.48844 838.65625,72.21875 C 835.91386,72.325283 836.67687,75.60936 838.84375,76.09375 C 844.3998,79.09087 850.7918,80.111593 856.90625,80.96875 C 860.33249,83.244553 863.18048,88.751445 868.1875,86.625 C 874.09347,83.631123 878.38174,90.922462 879.625,95.78125 C 880.97628,99.1247 882.10975,104.57065 877.4375,105.84375 C 866.48487,108.85217 854.10823,108.34244 843.74768,103.43711 C 830.99456,98.283022 819.78274,89.888504 807.40625,83.9375 C 802.22223,81.579653 796.47641,83.415345 791.125,83 C 784.58866,75.476731 774.35173,72.02346 765.28125,68.375 C 760.56254,66.930956 755.90755,65.116942 750.90625,65.6875 z M 951.65625,69.125 C 949.75458,69.270329 944.29998,68.971065 945.4375,72.125 C 947.51774,74.154947 950.73024,74.238768 953.5,74.53125 C 948.21257,76.281418 942.40123,76.875156 937.375,79.09375 C 937.61236,81.974836 942.08701,79.744633 944.03125,80.625 C 946.43398,80.469877 950.70136,81.773922 948.65625,84.96875 C 949.25971,88.646691 954.57889,87.770409 957.37484,87.984697 C 968.16388,87.252508 979.8465,86.346059 989.03125,80.25 C 992.11177,77.196665 986.82783,74.383084 984.375,73.53125 C 979.92589,71.271326 974.65475,72.317243 969.79176,70.843606 C 963.79795,69.886796 957.74091,69.018003 951.65625,69.125 z M 638.40625,75.75 C 616.23013,77.06771 594.15318,80.146688 571.9375,81 C 567.35819,82.574603 576.21871,82.931168 578.15625,82.875 C 602.79749,84.118112 627.47595,83.510348 652.125,83.53125 C 658.26084,83.872946 665.25503,84.712072 668.84375,90.34375 C 674.66516,95.090883 682.84969,90.582261 689.5625,92.375 C 696.95552,93.625273 703.0135,99.67398 710.90557,99.188136 C 716.81849,98.879518 723.5549,99.835152 726.55036,105.46998 C 733.27812,115.74627 746.57527,116.61415 756,123.21875 C 763.28403,131.60936 775.47976,129.56051 784.41783,135.02883 C 795.6459,140.26153 802.95179,150.5724 811.28125,159.25 C 816.03044,163.27898 823.40839,163.82786 829.09375,161.71875 C 832.39368,160.26841 832.38801,155.77264 829.28125,154.03125 C 814.64001,143.71639 802.52278,127.97821 784.28125,123.5625 C 779.487,122.14372 774.39321,123.24846 769.71875,123.5625 C 768.84588,120.68693 770.67764,116.38103 768.28125,113.53125 C 763.33169,107.51857 754.5246,106.48363 747.58421,103.50724 C 726.97649,96.55272 705.71073,91.23947 686.09375,81.875 C 670.82191,76.817125 654.43051,75.750439 638.40625,75.75 z M 1044.0625,99.8125 C 1038.7844,102.81831 1034.5574,108.74775 1027.8125,107.59375 C 1018.9665,107.87417 1009.6158,108.5166 1001.625,112.4375 C 999.46305,115.01564 1004.5599,115.81999 1006.1562,116.5625 C 1013.5479,119.39559 1022.304,119.14999 1028.625,113.96875 C 1034.2703,110.10553 1041.8995,108.1151 1045.8438,102.34375 C 1046.4147,101.19612 1045.1419,99.238384 1044.0625,99.8125 z M 980.71875,103.21875 C 975.46025,104.14348 970.65887,107.62743 967.03125,111.375 C 965.08718,114.27158 965.82544,119.40599 970.03125,119.46875 C 979.59911,119.11433 988.7418,115.07019 997.3125,111.0625 C 999.09629,110.69583 1002.4203,107.52543 999.3125,106.71875 C 992.81997,107.03643 987.14615,103.13418 980.71875,103.21875 z M 1069.6562,106.65625 C 1061.9772,108.18461 1054.1297,110.63923 1047.0312,113.84375 C 1044.4362,116.15096 1048.8735,117.94649 1050.8692,117.74928 C 1063.372,118.68447 1074.9003,112.5211 1087.1209,110.80141 C 1092.132,109.43363 1097.7386,109.38525 1102.5,107.1875 C 1091.8298,105.88839 1080.8073,106.98988 1070,106.625 L 1069.6562,106.65625 z M 1205.75,138.5 C 1203.5526,142.37674 1202.363,149.2367 1206.5,152.09375 C 1211.118,152.85852 1216.1288,148.11849 1216.0312,143.5625 C 1214.8296,139.55371 1209.0608,140.12111 1206.0938,138.03125 L 1205.75,138.5 z M 1165.25,138.9375 C 1160.6379,139.63395 1154.337,138.04211 1150.7812,141.5 C 1150.3597,145.12067 1155.7438,145.79983 1158.2875,146.81692 C 1166.6914,149.95678 1176.844,146.35882 1184.125,152.59375 C 1188.5943,155.26321 1197.3802,156.10307 1199.125,149.8125 C 1199.7128,145.58474 1196.4409,140.80726 1193,139.25 C 1183.8061,139.80064 1174.4836,138.47119 1165.25,138.9375 z M 1293.25,146.125 C 1291.506,145.56491 1287.2934,146.70974 1289.625,148.96875 C 1291.0074,150.45688 1293.1767,153.0273 1293,154.53125 C 1287.7491,151.34225 1281.7887,144.27526 1274.9688,147.90625 C 1271.045,149.55633 1265.7325,154.64452 1269.25,159 C 1273.6421,162.53286 1280.2081,161.98522 1284.75,165.625 C 1290.2273,168.81306 1294.2428,174.3596 1299.1562,178.1875 C 1329.8125,178.85508 1360.4689,179.51535 1391.125,180.1875 C 1388.2087,175.55938 1386.0141,169.24001 1380.5938,167.15625 C 1378.0231,167.33967 1376.5973,170.51919 1373.6562,169.90625 C 1368.1794,169.94689 1362.6748,169.93164 1357.3125,170.9375 C 1342.389,168.64957 1328.508,159.68703 1313,160.875 C 1309.8806,160.65297 1312.9529,157.1676 1314.1562,156.28125 C 1315.8316,153.57227 1320.8375,152.6393 1321.2812,149.3125 C 1319.2033,146.06529 1314.1028,147.16508 1310.7812,146.4375 C 1304.945,146.08134 1299.0941,146.09242 1293.25,146.125 z M 992.34375,159.5625 C 989.13604,159.82298 991.08547,163.48339 992.96875,164.21875 C 1002.8442,170.89657 1015.6252,176.86192 1027.8438,173.5 C 1034.7859,170.75022 1041.2332,166.73511 1046.7188,161.65625 C 1031.1128,162.8948 1014.8009,166.08163 999.69943,160.51767 C 997.29468,159.98615 994.85619,159.36419 992.34375,159.5625 z "
+ id="path8632" />
+ <path
+ style="opacity:0.2;fill:url(#linearGradient9597);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 749.125,-75.34375 C 737.05943,-73.708932 725.43517,-69.220053 713.125,-69.625 C 709.98737,-70.07787 708.014,-66.049511 711.15625,-64.5 C 713.54401,-62.702974 716.28528,-61.414274 718.78125,-59.75 C 712.40718,-60.918845 706.46214,-65.345977 700.03125,-65.375 C 696.01327,-62.586112 702.03295,-58.281325 704.0625,-56.28125 C 709.88915,-51.177556 717.08299,-47.886723 724.5,-46.15625 C 732.84355,-41.280953 729.24679,-27.361202 739.0625,-23.78125 C 748.05329,-18.944302 758.11514,-25.052554 764,-31.84375 C 771.56397,-37.824228 782.07121,-36.778711 790.28338,-41.699394 C 790.20351,-43.306421 793.67997,-45.982367 796.125,-47.65625 C 798.86765,-50.839161 805.0582,-52.065069 805.5625,-56.59375 C 801.68818,-59.524127 796.39015,-55.090204 792.15738,-54.966328 C 783.05938,-52.374771 772.96353,-53.692218 764.63997,-48.265293 C 757.95562,-45.510257 752.31048,-39.257898 745.34375,-38.03125 C 744.74001,-45.097241 749.57067,-52.070854 756.34375,-54.40625 C 762.96936,-58.301675 772.13729,-59.86923 776.53125,-66.65625 C 777.3654,-71.632734 770.04478,-71.716738 766.84375,-72.4375 C 760.65376,-72.55236 755.23324,-75.944558 749.125,-75.34375 z M 1366.0938,-36.65625 C 1373.969,-27.376743 1385.1938,-22.194398 1397.0732,-20.360241 C 1403.6216,-19.477926 1410.0321,-16.154621 1416.625,-16.96875 C 1411.1979,-22.365248 1402.1059,-21.213969 1396.1875,-26.21875 C 1393.9442,-27.928171 1394.7012,-31.887995 1391.3438,-32.84375 C 1382.4843,-37.009055 1372.5413,-38.396058 1362.9375,-39.8125 C 1363.9896,-38.760417 1365.0417,-37.708333 1366.0938,-36.65625 z M 630.3125,-28.8125 C 623.61707,-26.539707 617.12225,-24.17977 609.96875,-23.90625 C 605.28948,-23.012024 597.46026,-20.633711 598.28125,-14.59375 C 599.97171,-12.217851 594.06923,-12.382447 592.68052,-10.936308 C 589.18554,-8.9397324 581.88665,-6.9769004 583.34375,-1.6875 C 575.45489,-2.5191216 566.98052,-7.3884289 562.15625,-13.625 C 562.91237,-16.041833 568.61504,-19.412462 564.03125,-21.625 C 550.17879,-24.188692 535.61139,-21.365284 521.75,-23.65625 C 517.86996,-21.274832 523.78766,-18.561196 525.93202,-17.659451 C 532.24569,-14.005721 539.71908,-12.935309 546.1875,-9.84375 C 548.65198,-7.8490418 552.98234,-4.0559788 551.75,-0.90625 C 537.23926,-0.025311844 522.98395,-5.8214836 508.4375,-5.53125 C 504.77556,-5.233105 506.23866,-0.67811704 509.09375,-0.28125 C 512.13056,1.2786508 515.53359,2.149155 518.90625,2.78125 C 514.5989,3.4462553 507.1025,1.6619853 506.28125,7.75 C 505.35911,14.830018 508.14415,21.689144 510.4375,28.25 C 524.55355,24.292909 538.90904,20.011157 550.84375,11.3125 C 555.756,10.061627 561.70389,10.057931 564.15625,4.625 C 570.1028,2.1701533 575.90268,8.3214128 581.65625,9.4375 C 584.33438,11.115723 591.4433,10.31647 588.625,5.90625 C 587.497,3.8023863 582.03035,0.80380944 586.78125,1.71875 C 600.69673,2.7823782 612.2436,-8.2981311 626.37279,-5.683481 C 634.57125,-5.8519065 644.23399,-2.0722636 651.65625,-6.78125 C 655.36235,-11.296587 649.6115,-16.567707 646.6875,-19.75 C 641.30132,-16.368527 637.59142,-23.02467 635.4375,-26.78125 C 634.22969,-28.321997 632.25876,-29.177967 630.3125,-28.8125 z M 709.25,-22.28125 C 705.41981,-19.736485 698.41582,-17.678221 698.5,-12.15625 C 701.39297,-7.8269749 708.07671,-9.0318019 712.625,-9.125 C 716.698,-9.0717507 721.83197,-13.031515 718.78125,-17.3125 C 716.86546,-20.698508 712.71667,-22.03123 709.25,-22.28125 z M 774.34375,-19.8125 C 770.18197,-18.722392 769.76232,-12.474909 765.03125,-12.0625 C 757.96879,-10.396668 749.57201,-9.9624382 744.15625,-4.59375 C 743.09964,-0.29337404 749.55744,-2.1564867 751.84375,-0.875 C 768.02922,3.3535439 784.86869,5.5943645 800.75,10.46875 C 807.90517,13.553906 813.09602,19.741556 820.46875,22.5625 C 817.20069,18.265165 824.12394,17.37674 824.625,13.4375 C 825.76121,10.313137 824.81688,6.1283672 823,3.96875 C 833.75773,2.3247532 844.80035,2.4333824 855.50224,1.8633444 C 860.4652,0.24501046 853.04385,-0.8503821 850.9375,-1.3125 C 845.00854,-4.763216 839.10925,-9.0571724 831.8125,-8.71875 C 825.49305,-8.8474287 815.82197,-8.4806193 813.84375,-1.125 C 814.1576,1.8034792 808.95907,-1.2676216 806.90728,-0.51415766 C 798.9937,-0.99234468 790.82376,-0.7422345 783.09375,-2.125 C 790.63999,-4.4638847 799.03373,-3.352393 806.4375,-5.71875 C 809.06791,-9.5824892 802.0522,-10.498644 799.71875,-11.53125 C 791.45833,-13.73812 783.46679,-16.758246 775.625,-19.8125 C 775.20424,-19.821903 774.75995,-19.894925 774.34375,-19.8125 z M 577.0625,-0.28125 C 574.63542,1.5297037 574.67992,-2.360329 577.0625,-0.28125 z M 1004.2188,8.21875 C 1001.5441,10.334576 996.95133,15.960099 1001.75,18.46875 C 1009.5002,20.954215 1018.2446,18.254347 1025.5938,15.59375 C 1028.6739,13.61215 1024.8312,11.284334 1022.5,12 C 1016.6078,10.733627 1010.9403,7.0360157 1004.5312,7 L 1004.2829,7.9686639 L 1004.2188,8.21875 z M 642.03125,11.78125 C 628.32111,12.861969 614.34829,12.454022 601.22549,17.085504 C 594.31278,19.826198 584.70202,20.117849 580.4375,26.96875 C 579.11987,32.809114 587.27092,34.568757 591.59375,33.75 C 601.30416,32.475967 606.26857,21.597104 616.25,21.21875 C 626.00548,18.718501 636.92986,19.789962 645.9375,15.15625 C 648.38371,12.357747 644.11671,11.304893 642.03125,11.78125 z M 897.6875,16.96875 C 889.78642,19.280633 881.20843,20.04341 873.4375,22.875 C 870.41816,26.320391 877.27615,27.515574 879.57346,27.762896 C 890.30652,29.691698 901.4019,28.835299 912.25,28.0625 C 915.10538,31.869408 917.35626,24.659313 913.3125,25.125 C 908.51346,21.864976 904.18042,15.941891 897.6875,16.96875 z M 1041.7812,24.84375 C 1037.1772,24.35115 1035.3051,30.693201 1039.4688,32.71875 C 1046.9505,38.29501 1056.6866,36.011245 1064.8125,33.53125 C 1067.6285,33.745009 1070.6639,35.452663 1073.4688,35.21875 C 1075.0497,38.942912 1078.9477,40.753105 1082.7188,38.90625 C 1097.3596,38.328149 1112.0378,41.244292 1126.1875,44.875 C 1135.6361,49.883865 1146.9546,44.855317 1156.4062,49 C 1161.182,52.534492 1166.6773,54.811614 1172.3125,56.5625 C 1160.9892,56.783641 1149.6251,56.514633 1138.7812,52.8125 C 1133.8368,52.288869 1128.3232,48.993448 1123.5,50.71875 C 1122.2082,54.876976 1129.1211,55.195242 1131.6875,56.84375 C 1140.9277,60.497943 1150.6969,62.668918 1160.5439,63.160762 C 1166.5507,64.346638 1172.787,66.892585 1177.9375,69.5 C 1174.4059,70.176781 1170.0417,74.795187 1174.125,77.625 C 1183.3122,82.900491 1194.7254,83.752469 1205.1875,82.96875 C 1208.7552,83.264709 1211.2235,79.207114 1208.2812,76.65625 C 1207.0451,75.025867 1202.6468,71.100636 1207.6562,73.21875 C 1212.4337,72.95955 1215.6175,76.792553 1220.1875,77.5625 C 1224.5456,78.57542 1227.4829,72.806768 1224,69.875 C 1221.2668,66.648525 1216.9829,64.517532 1213.4375,62.9375 C 1217.0014,62.678495 1220.2633,61.329861 1223.5625,59.96875 C 1214.8262,57.467917 1207.7612,50.68477 1198.2188,51.59375 C 1188.8156,50.628572 1176.5273,54.646712 1169.75,46.21875 C 1165.5188,39.138346 1156.8023,38.131374 1149.2812,38.71875 C 1130.1998,37.317249 1111.4592,33.159437 1092.5312,30.625 C 1088.6593,31.868444 1085.3959,30.237511 1082.2812,28.125 C 1078.879,26.682295 1076.3727,30.580275 1073.875,31.46875 C 1069.4658,29.065909 1064.1987,31.161324 1059.7643,28.389225 C 1053.8898,26.729192 1047.9689,24.652579 1041.7812,24.84375 z M 829.96875,31.75 C 826.96152,31.272838 820.40159,32.639775 823.0625,36.875 C 824.58174,39.857813 829.55471,39.909939 829.15625,43.625 C 833.17428,49.794794 837.71034,55.811753 842.65625,61.25 C 854.79083,69.347166 870.53824,66.046749 884.1875,68.03125 C 888.98638,69.238372 889.9148,76.308207 895.71875,75.40625 C 904.06088,77.619517 914.55098,79.385916 921.09375,72.21875 C 928.51189,65.955401 938.92252,70.598285 947.5625,68 C 951.22941,68.805196 954.06697,64.839076 950.375,62.90625 C 945.13511,58.834796 937.94056,60.60054 932.25,58.4375 C 929.5566,55.054799 926.56006,50.895053 921.46875,51.5625 C 911.60465,51.38855 902.1994,47.819396 892.65625,45.6875 C 896.17017,43.917235 897.72565,37.138417 892.40625,36.9375 C 884.19293,37.225449 876.07199,36.777055 868.0625,35.25 C 863.92859,34.738721 860.39634,37.630973 858.15625,40.46875 C 850.61877,34.113405 839.81292,31.675458 829.96875,31.75 z M 601.40625,38.40625 C 592.55178,40.583933 586.48861,50.366261 576.50015,48.580041 C 561.39522,49.567474 546.49796,54.078198 531.96875,58 C 529.20046,57.728286 525.83915,61.869792 529.75,62.84375 C 544.53911,64.052098 558.93848,58.983039 573.15625,55.84375 C 577.53887,54.607475 579.70176,58.522533 582.1875,61.0625 C 587.64667,62.698236 592.96291,57.989688 597.40625,55.40625 C 602.21829,52.141362 608.73184,44.806065 604.15625,39 C 603.35641,38.431654 602.36803,38.282798 601.40625,38.40625 z M 990.71875,40.5625 C 985.0447,39.852206 981.40353,44.357094 977.1875,47 C 972.5753,48.137745 964.72568,46.896868 963.28125,53.0625 C 963.11528,58.770909 970.8658,56.005943 974.375,56.28125 C 983.11572,54.63584 991.52913,56.448508 999.6875,59.28125 C 1006.8361,61.13592 1009.0108,52.21475 1015.125,50.875 C 1018.3893,48.534449 1024.9112,49.597005 1026.6562,45.71875 C 1024.8121,41.893066 1018.552,44.117339 1015.0938,42.65625 C 1007.0027,41.676374 998.89063,40.43625 990.71875,40.5625 z M 1180.6875,58.40625 C 1186.3493,58.777419 1192.8477,60.24108 1197.625,62.25 C 1198.359,64.629339 1203.5705,65.225443 1200.6875,67.625 C 1199.5142,69.52864 1195.1618,66.834315 1192.6875,67.40625 C 1188.199,68.312815 1184.4391,65.316739 1183.375,61.0625 C 1182.8341,59.93417 1181.1599,58.777538 1180.6875,58.40625 z M 1239.4062,62.4375 C 1235.5049,62.462333 1236.8422,67.205926 1239.5625,68.21875 C 1249.1573,74.050868 1259.8282,79.745658 1271.2812,80.25 C 1273.9658,80.705573 1279.7435,78.284621 1276.0938,75.28125 C 1269.9314,71.099372 1261.7131,70.02334 1255.8125,65.96875 C 1251.7246,62.299869 1244.5248,63.08324 1239.4062,62.4375 z M 1092.0625,64.46875 C 1088.9475,63.647801 1085.7883,67.590113 1089.2812,69.40625 C 1097.2103,73.22555 1106.4316,77.537283 1115.4688,75.6875 C 1119.3415,75.234515 1120.1876,69.733124 1116.0938,68.78125 C 1108.5288,65.676186 1100.2665,64.091246 1092.0625,64.46875 z M 750.8125,64.9375 C 746.25715,64.899329 738.92591,69.634625 742.25,74.6875 C 742.75827,76.567336 748.6055,75.901182 745.09375,77.25 C 738.59599,80.808833 731.07603,76.331179 725.71875,72.5 C 720.88037,67.371228 712.52446,70.265986 706.4375,71.28125 C 703.05371,72.840762 696.27853,72.600603 695.75,77.28125 C 698.62629,82.632427 706.23054,83.081428 711.375,85.28125 C 715.82055,86.801779 721.18338,87.484498 725.28125,88.90625 C 723.64065,90.45851 722.60734,92.87833 723.625,95.0625 C 710.22589,91.164873 697.12447,86.055245 684.53125,80.5625 C 660.44555,73.413681 634.81793,74.255045 610.09772,77.370299 C 597.07447,78.689968 583.90965,79.448523 570.92014,80.547067 C 564.11337,81.330723 572.51832,83.878512 575.28125,83.5 C 601.24012,84.980343 627.25497,84.106436 653.21875,84.375 C 659.13284,84.498027 665.4085,86.123898 668.8125,91.3125 C 676.24316,96.155568 685.98597,90.234428 693.78125,94.3125 C 700.56611,98.251426 708.05966,100.65667 716.03125,100.125 C 724.85749,99.812706 727.28681,110.60235 734.53125,113.78125 C 743.03835,118.43124 753.18852,120.47819 760.15625,127.625 C 769.30253,132.28758 780.39814,131.82952 788.8125,138.40625 C 798.26211,143.87667 804.04421,154.03191 812.25,160.9375 C 817.6195,164.06248 825.67578,165.18187 830.875,161.28125 C 835.19474,157.24105 829.4049,152.4849 825.84375,150.6875 C 811.48951,139.07701 797.51396,122.74916 777.625,122.09375 C 775.42269,121.24259 770.98563,124.29255 770.125,122.125 C 770.82169,119.03876 770.30151,114.98973 768.71875,112.75 C 780.57724,114.48033 793.37422,115.48548 804.71875,117.46875 C 803.99749,122.51366 810.80338,124.62872 814.10328,127.1777 C 820.37108,130.14188 826.73007,135.1309 833.9375,135.03125 C 838.48112,132.25345 833.14882,126.63685 831.40625,123.75 C 826.15176,118.03024 832.90501,122.46486 836.51615,124.25448 C 844.24873,127.08832 850.82146,133.73662 859.25,134.09375 C 864.38881,131.58817 869.98234,133.84981 875.18032,134.41163 C 885.62809,132.0815 898.78338,134.24686 906.5,125.4375 C 908.25338,123.79303 908.52676,120.41334 907.96875,118.8125 C 915.55872,122.54225 924.78346,119.72901 932.92588,119.75783 C 937.31736,120.60161 946.74679,116.39433 940.6875,111.625 C 937.43293,109.88473 937.70007,109.49653 941.625,109.34375 C 945.15246,108.25538 949.66576,110.16215 952.65625,107.875 C 952.08046,103.60963 945.4395,105.63028 942.21875,104.625 C 937.84967,104.22953 932.13228,104.19939 928.5,104.15625 C 931.11595,102.02458 937.02636,104.66641 938.0625,100.6875 C 935.70658,95.582751 928.65682,94.622137 924.09375,92.09375 C 917.66147,89.649419 911.42802,94.833403 907.375,99.1875 C 901.20549,99.776167 893.09031,102.55048 887.8125,98.15625 C 883.75612,92.99978 892.24278,85.151685 886.40625,80.4375 C 879.00522,77.078247 870.49645,84.208355 863.38193,79.227626 C 854.97839,76.507473 846.61313,69.784826 837.40625,71.8125 C 833.66332,74.138966 838.75898,77.525535 841.25,78.0625 C 846.24821,80.565803 852.02887,80.415351 857.1875,82 C 860.2569,85.711319 864.94458,89.718847 869.96875,86.8125 C 876.42375,86.090379 878.61813,94.637497 879.8125,99.4375 C 881.89834,105.68113 873.41012,106.36773 869.28125,106.59375 C 849.5468,109.4521 832.53971,96.987477 816.26658,87.768295 C 809.47668,82.597399 800.78833,80.791259 792.4375,82.5 C 789.78801,81.713963 788.55964,78.071811 785.625,77.15625 C 775.21546,71.208176 763.91161,65.404168 751.78125,64.84375 L 750.8125,64.9375 z M 951.65625,68.375 C 949.07845,68.086415 942.42296,69.021426 945.09375,72.90625 C 945.99718,74.511999 952.10638,74.635941 947.6875,75.28125 C 944.31467,76.925339 938.18357,76.179315 936.625,79.625 C 938.26518,83.164532 944.08811,80.029502 947.21875,81.96875 C 950.02197,82.719153 946.12347,86.741101 949.53125,87.65625 C 959.2559,90.453353 969.80239,87.48363 979.40625,85.46875 C 983.34096,83.817633 990.36283,82.945409 990.71875,77.71875 C 988.65377,73.514616 982.97168,71.567136 978.625,71.4375 C 969.69091,70.302747 960.77893,68.16222 951.65625,68.375 z M 743.125,89.125 C 751.08176,90.697717 754.74304,99.869368 760.03684,105.11986 C 761.32054,106.90848 764.5053,109.72 760.5,107.40625 C 750.67882,103.13028 737.46364,100.13551 729.3125,96.40625 C 733.80114,93.805276 737.73794,89.444405 743.125,89.125 z M 1043.6562,99.1875 C 1038.1631,102.66631 1033.3509,108.54599 1026.0938,106.84375 C 1017.5658,107.48978 1008.2495,107.76321 1000.8438,112.1875 C 998.64846,116.093 1005.2153,116.73687 1007.6562,117.8125 C 1015.1943,120.54265 1023.6946,119.05487 1029.8654,114.12396 C 1035.3557,110.12963 1043.4615,108.48792 1046.6562,102.15625 C 1047.1796,100.74109 1044.9114,97.559998 1043.6562,99.1875 z M 980.65625,102.46875 C 975.05134,103.55033 969.65394,107.09066 966.15625,111.46875 C 963.60899,115.42785 966.43886,121.18148 971.46875,120.28125 C 981.66848,118.67735 992.13289,115.49859 1000.7188,109.59375 C 1003.3628,106.11503 997.81409,105.43614 995.5,105.65625 C 990.49608,105.07686 985.81501,102.18925 980.65625,102.46875 z M 1069.5938,105.90625 C 1061.6628,107.60258 1053.4159,109.75917 1046.25,113.53125 C 1043.3864,117.18431 1049.5694,118.93212 1052.2812,118.625 C 1065.7713,118.70625 1078.1516,112.41047 1091.4388,110.67842 C 1094.8897,109.99899 1108.9717,108.01934 1100.625,105.875 C 1090.2819,105.89884 1079.9344,105.82927 1069.5938,105.90625 z M 910.125,111 C 908.53148,112.54509 906.64336,115.67947 906.9375,117.4375 C 901.24246,114.29523 894.68233,119.44466 889.125,120.78125 C 880.19598,124.43313 892.43356,118.79863 895.125,117.46875 C 900.28145,115.06539 905.46186,112.71481 910.6875,110.34375 L 910.125,111 z M 1205.1562,138.0625 C 1202.6561,142.24808 1201.3456,150.46825 1206.75,152.9375 C 1212.0123,153.40327 1218.5854,147.24725 1216.1562,141.9375 C 1213.6583,139.05391 1209.098,138.92897 1205.8438,137.125 L 1205.2524,137.9314 L 1205.1562,138.0625 z M 1165.2188,138.1875 C 1160.3512,138.94656 1153.535,137.09463 1150.0312,141.3125 C 1149.5571,146.04339 1156.2744,146.77479 1159.5938,147.9375 C 1167.9037,150.43219 1177.6602,147.45499 1184.6562,153.75 C 1189.7605,156.55744 1199.7235,156.15513 1199.9688,148.65625 C 1199.5498,144.02179 1195.9184,137.49134 1190.8125,138.71875 C 1182.2816,138.54774 1173.7548,137.94485 1165.2188,138.1875 z M 1293.2188,145.375 C 1290.7139,144.59365 1286.2784,146.75057 1289.0625,149.4375 C 1292.2363,152.77758 1291.5553,153.02378 1288,150.03125 C 1283.6974,146.22267 1277.0908,144.47237 1272.3125,148.5625 C 1267.9505,150.65274 1264.8886,157.90098 1270.2188,160.6875 C 1277.2843,163.24919 1285.1686,165.07046 1290.4062,171 C 1294.6299,174.53534 1297.7206,180.75878 1304.1551,179.04606 C 1333.5721,179.689 1362.9895,180.31553 1392.4062,180.96875 C 1389.0395,175.89223 1386.71,167.96046 1380.2188,166.40625 C 1377.4065,167.23057 1375.3167,170.18184 1371.8125,169.25 C 1366.3066,168.40497 1360.8585,170.36248 1355.5312,169.96875 C 1341.2647,166.85035 1327.6248,159.11293 1312.6562,160.03125 C 1312.664,157.34784 1317.3785,154.78459 1319.5312,152.78125 C 1322.6688,151.77816 1322.8113,147.34371 1319.3438,146.875 C 1310.8965,144.90399 1301.8735,145.5293 1293.2188,145.375 z M 992.28125,158.8125 C 988.37867,159.05853 989.90798,163.78538 992.53125,164.8125 C 1003.7043,172.47752 1019.4274,179.35461 1032.4688,172.28125 C 1038.5727,169.31258 1044.0349,165.36364 1048.9375,160.6875 C 1032.2389,162.05314 1014.8461,165.48521 998.64748,159.50791 C 996.51763,159.07928 994.47926,158.633 992.28125,158.8125 z "
+ id="path8641" />
+ </g>
+ </mask>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="linearGradient9601"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-78.63894,-7.561437)"
+ x1="55.698612"
+ y1="239.78107"
+ x2="1123.2231"
+ y2="239.78107" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="linearGradient9605"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-78.63894,-7.561437)"
+ x1="55.698612"
+ y1="239.78107"
+ x2="1123.2231"
+ y2="239.78107" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="linearGradient9609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-78.63894,-7.561437)"
+ x1="55.698612"
+ y1="239.78107"
+ x2="1123.2231"
+ y2="239.78107" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="linearGradient9613"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-78.63894,-7.561437)"
+ x1="55.698612"
+ y1="239.78107"
+ x2="1123.2231"
+ y2="239.78107" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="linearGradient9617"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-78.63894,-7.561437)"
+ x1="55.698612"
+ y1="239.78107"
+ x2="1123.2231"
+ y2="239.78107" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="linearGradient9621"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-78.63894,-7.561437)"
+ x1="55.698612"
+ y1="239.78107"
+ x2="1123.2231"
+ y2="239.78107" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8471"
+ id="linearGradient10513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-78.63894,-7.561437)"
+ x1="55.698612"
+ y1="239.78107"
+ x2="1123.2231"
+ y2="239.78107"
+ spreadMethod="pad" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8471"
+ id="linearGradient10517"
+ gradientUnits="userSpaceOnUse"
+ x1="314.18854"
+ y1="175.35481"
+ x2="1168.2363"
+ y2="175.35481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8471"
+ id="linearGradient10521"
+ gradientUnits="userSpaceOnUse"
+ x1="314.18854"
+ y1="175.35481"
+ x2="1168.2363"
+ y2="175.35481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8471"
+ id="linearGradient10525"
+ gradientUnits="userSpaceOnUse"
+ x1="314.18854"
+ y1="175.35481"
+ x2="1168.2363"
+ y2="175.35481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8471"
+ id="linearGradient10529"
+ gradientUnits="userSpaceOnUse"
+ x1="314.18854"
+ y1="175.35481"
+ x2="1168.2363"
+ y2="175.35481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8471"
+ id="linearGradient13274"
+ x1="628.28564"
+ y1="263.29993"
+ x2="649.10132"
+ y2="263.29993"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9539"
+ id="linearGradient13284"
+ x1="644.54321"
+ y1="256.33026"
+ x2="645.57104"
+ y2="263.29993"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient3161"
+ x1="590.13617"
+ y1="267.92664"
+ x2="603.40271"
+ y2="289.09866"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.243856,-0.487712)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient3187"
+ x1="792.13141"
+ y1="207.68985"
+ x2="793.76184"
+ y2="223.81853"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9539"
+ id="linearGradient4085"
+ x1="863.04791"
+ y1="176.90616"
+ x2="862.34943"
+ y2="157.49515"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient4095"
+ x1="831.34637"
+ y1="171.21814"
+ x2="862.84943"
+ y2="171.21815"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9539"
+ id="linearGradient4990"
+ x1="1029.5085"
+ y1="358.57944"
+ x2="1031.0149"
+ y2="252.69026"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient7665"
+ x1="968.42743"
+ y1="182.61887"
+ x2="963.95831"
+ y2="226.01494"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient8560"
+ x1="1097.2233"
+ y1="217.7581"
+ x2="1097.769"
+ y2="241.75745"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="linearGradient8563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.589974,0,0,1.589974,1466.005,-137.13)"
+ spreadMethod="pad"
+ x1="-459.7771"
+ y1="276.24548"
+ x2="-459.31543"
+ y2="262.13843" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient8565"
+ gradientUnits="userSpaceOnUse"
+ x1="750.95972"
+ y1="289.73868"
+ x2="751.52802"
+ y2="285.71246" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient8568"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.589974,0,0,1.589974,1466.005,-137.13)"
+ spreadMethod="pad"
+ x1="-455.49695"
+ y1="265.54517"
+ x2="-455.51086"
+ y2="262.13843" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8471"
+ id="linearGradient8571"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(7.561441,1.51229)"
+ spreadMethod="reflect"
+ x1="762.3017"
+ y1="219.84377"
+ x2="776.42749"
+ y2="250.08951" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8574"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.589974,0,0,1.589974,1466.005,-137.13)"
+ spreadMethod="reflect"
+ x1="-478.7999"
+ y1="256.11609"
+ x2="-475.24701"
+ y2="268.1608" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient8577"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.589974,0,0,1.589974,1466.005,-137.13)"
+ x1="-358.83292"
+ y1="177.57761"
+ x2="-354.37372"
+ y2="202.39496" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="radialGradient8580"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.589974,0,0,0.419966,1466.005,128.2767)"
+ cx="-519.21252"
+ cy="151.11502"
+ fx="-519.21252"
+ fy="151.11502"
+ r="177.43268" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8586"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.589974,0,0,1.589974,1466.005,-137.13)"
+ x1="-386.74313"
+ y1="259.43784"
+ x2="-393.50739"
+ y2="188.68987" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient8589"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.589974,0,0,1.589974,1466.005,-137.13)"
+ x1="-433.51227"
+ y1="295.22482"
+ x2="-424.02896"
+ y2="284.48297" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient8600"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,60)"
+ x1="685.4342"
+ y1="347.68539"
+ x2="687.271"
+ y2="241.82527" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient8609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,60)"
+ x1="685.4342"
+ y1="347.68539"
+ x2="687.271"
+ y2="241.82527" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient8623"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,60)"
+ x1="685.4342"
+ y1="347.68539"
+ x2="687.271"
+ y2="241.82527" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient8632"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,60)"
+ x1="685.4342"
+ y1="347.68539"
+ x2="687.271"
+ y2="241.82527" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient8634"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,60)"
+ x1="685.4342"
+ y1="347.68539"
+ x2="687.271"
+ y2="241.82527" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="radialGradient9531"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.374105,0,0,0.419966,1763.467,128.2767)"
+ cx="-375.49411"
+ cy="404.27512"
+ fx="-375.49411"
+ fy="404.27512"
+ r="177.43268" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7337"
+ id="linearGradient9598"
+ gradientUnits="userSpaceOnUse"
+ x1="-569.71979"
+ y1="329.35635"
+ x2="-562.20435"
+ y2="358.02646"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1568.471,-203.2776)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="radialGradient9600"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.484735,1.59224e-2,-5.029442e-3,0.153114,-293.1255,247.5181)"
+ cx="-546.82202"
+ cy="153.11432"
+ fx="-546.82202"
+ fy="153.11432"
+ r="149.3989" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9614"
+ x1="472.37576"
+ y1="267.77805"
+ x2="470.50107"
+ y2="274.74612"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9539"
+ id="linearGradient9622"
+ x1="481.55374"
+ y1="265.73688"
+ x2="478.49924"
+ y2="274.74612"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9632"
+ x1="457.77423"
+ y1="265.94275"
+ x2="457.7601"
+ y2="276.41019"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.149224,-0.766149)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9640"
+ gradientUnits="userSpaceOnUse"
+ x1="-571.92474"
+ y1="317.76691"
+ x2="-569.61517"
+ y2="304.25351" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9648"
+ x1="-577.0437"
+ y1="311.49066"
+ x2="-569.61517"
+ y2="304.25351"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9658"
+ x1="-591.83447"
+ y1="333.22284"
+ x2="-564.88745"
+ y2="284.69131"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-120.253)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9665"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-120.253)"
+ x1="-591.83447"
+ y1="333.22284"
+ x2="-564.88745"
+ y2="284.69131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9669"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-120.253)"
+ x1="-591.83447"
+ y1="333.22284"
+ x2="-564.88745"
+ y2="284.69131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9674"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-120.253)"
+ x1="-591.83447"
+ y1="333.22284"
+ x2="-564.88745"
+ y2="284.69131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9678"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-120.253)"
+ x1="-591.83447"
+ y1="333.22284"
+ x2="-564.88745"
+ y2="284.69131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9686"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-120.253)"
+ x1="-591.83447"
+ y1="333.22284"
+ x2="-564.88745"
+ y2="284.69131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9690"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-120.253)"
+ x1="-591.83447"
+ y1="333.22284"
+ x2="-564.88745"
+ y2="284.69131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9695"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-120.253)"
+ x1="-591.83447"
+ y1="333.22284"
+ x2="-564.88745"
+ y2="284.69131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9699"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-120.253)"
+ x1="-591.83447"
+ y1="333.22284"
+ x2="-564.88745"
+ y2="284.69131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9701"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-120.253)"
+ x1="-591.83447"
+ y1="333.22284"
+ x2="-564.88745"
+ y2="284.69131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9539"
+ id="linearGradient9711"
+ x1="909.14966"
+ y1="404.39041"
+ x2="893.00256"
+ y2="355.76645"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,0.766149)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9721"
+ x1="884.91919"
+ y1="335.78848"
+ x2="881.38293"
+ y2="378.33539"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="radialGradient9725"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.484735,1.59224e-2,-5.029442e-3,0.153114,-293.1255,247.5181)"
+ cx="-546.82202"
+ cy="153.11432"
+ fx="-546.82202"
+ fy="153.11432"
+ r="149.3989" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2806"
+ id="linearGradient9731"
+ x1="710.30615"
+ y1="431.81848"
+ x2="727.7901"
+ y2="322.25912"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9735"
+ gradientUnits="userSpaceOnUse"
+ x1="-571.92474"
+ y1="317.76691"
+ x2="-569.61517"
+ y2="304.25351" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9737"
+ gradientUnits="userSpaceOnUse"
+ x1="-577.0437"
+ y1="311.49066"
+ x2="-569.61517"
+ y2="304.25351" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9741"
+ gradientUnits="userSpaceOnUse"
+ x1="-571.92474"
+ y1="317.76691"
+ x2="-569.61517"
+ y2="304.25351"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-200.253)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7357"
+ id="linearGradient9743"
+ gradientUnits="userSpaceOnUse"
+ x1="-577.0437"
+ y1="311.49066"
+ x2="-569.61517"
+ y2="304.25351"
+ gradientTransform="matrix(1.799676,0,0,1.799676,1569.983,-200.253)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.66125"
+ inkscape:cx="640"
+ inkscape:cy="417.58303"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="1280px"
+ height="800px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1270"
+ inkscape:window-height="694"
+ inkscape:window-x="0"
+ inkscape:window-y="24" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Under the See</dc:title>
+ <dc:date>2006-07-11</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>it-s</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="See"
+ inkscape:groupmode="layer"
+ id="layer1"
+ style="opacity:1;display:inline">
+ <rect
+ style="opacity:1;fill:url(#linearGradient2786);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="rect1892"
+ width="1311.4286"
+ height="825.71429"
+ x="-14.285714"
+ y="-8.5714283"
+ rx="1.4040213"
+ ry="1.1700177" />
+ <g
+ id="g8450"
+ transform="matrix(1.557545,0,0,1.557545,1446.991,-120.1468)">
+ <path
+ sodipodi:nodetypes="csssssssssssssssssssssssss"
+ id="path8432"
+ d="M -485.69581,344.48133 C -469.56665,344.22118 -468.26591,346.04222 -463.3231,340.31897 C -458.38029,334.59572 -453.43749,327.05143 -448.75483,327.31158 C -444.07217,327.57173 -445.63306,335.89646 -446.15335,341.09941 C -446.67365,346.30236 -441.21055,353.0662 -437.04819,354.62709 C -432.88582,356.18797 -419.87843,363.47211 -414.15518,363.73226 C -408.43193,363.99241 -396.46514,365.29315 -394.38395,367.11418 C -392.30277,368.93522 -383.97804,376.73965 -375.65332,376.9998 C -367.32859,377.25994 -347.81751,377.25994 -349.11825,379.08098 C -350.41899,380.90201 -369.40977,380.12157 -370.45036,382.72305 C -371.49095,385.32452 -370.97066,389.48689 -373.83228,389.22674 C -376.69391,388.96659 -379.81568,383.24334 -382.41716,382.72305 C -385.01864,382.20275 -398.02602,379.08098 -404.78986,380.90201 C -411.5537,382.72305 -423.5205,379.86142 -431.84523,380.64186 C -440.16995,381.42231 -473.98916,383.24334 -482.31389,381.42231 C -490.63861,379.60127 -496.10171,375.95921 -495.32127,378.30053 C -494.54083,380.64186 -495.58142,384.28393 -490.37846,388.96659 C -485.17551,393.64925 -485.69581,396.77102 -488.03714,395.73043 C -490.37846,394.68984 -501.30467,390.78763 -505.72718,383.76364 C -510.14969,376.73965 -508.58881,374.13817 -511.19028,373.61788 C -513.79176,373.09758 -524.19767,369.45551 -530.18107,366.85403 C -536.16446,364.25256 -543.18845,362.43152 -549.69215,361.91123 C -556.19584,361.39093 -559.83791,359.83005 -557.23643,357.74886 C -554.63495,355.66768 -543.18845,358.78946 -540.58698,356.18798 C -537.9855,353.5865 -531.74195,350.72488 -526.539,349.42414 C -513.66692,345.26604 -499.42476,344.86328 -485.69581,344.48133 z "
+ style="fill:url(#linearGradient8455);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path8434"
+ d="M -505.98733,368.15477 C -496.62201,375.43891 -484.13492,381.68246 -478.93196,381.9426 C -473.72901,382.20275 -471.90798,380.90201 -478.15152,378.30053 C -484.39507,375.69906 -493.24009,368.67507 -493.24009,368.67507"
+ style="fill:url(#linearGradient8457);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:url(#radialGradient8459);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -485.69581,344.48133 C -469.56665,344.22118 -468.26591,346.04222 -463.3231,340.31897 C -458.38029,334.59572 -453.43749,327.05143 -448.75483,327.31158 C -444.07217,327.57173 -445.63306,335.89646 -446.15335,341.09941 C -446.67365,346.30236 -441.21055,353.0662 -437.04819,354.62709 C -432.88582,356.18797 -419.87843,363.47211 -414.15518,363.73226 C -408.43193,363.99241 -396.46514,365.29315 -394.38395,367.11418 C -392.30277,368.93522 -383.97804,376.73965 -375.65332,376.9998 C -367.32859,377.25994 -347.81751,377.25994 -349.11825,379.08098 C -350.41899,380.90201 -369.40977,380.12157 -370.45036,382.72305 C -371.49095,385.32452 -370.97066,389.48689 -373.83228,389.22674 C -376.69391,388.96659 -379.81568,383.24334 -382.41716,382.72305 C -385.01864,382.20275 -398.02602,379.08098 -404.78986,380.90201 C -411.5537,382.72305 -423.5205,379.86142 -431.84523,380.64186 C -440.16995,381.42231 -473.98916,383.24334 -482.31389,381.42231 C -490.63861,379.60127 -496.10171,375.95921 -495.32127,378.30053 C -494.54083,380.64186 -495.58142,384.28393 -490.37846,388.96659 C -485.17551,393.64925 -485.69581,396.77102 -488.03714,395.73043 C -490.37846,394.68984 -501.30467,390.78763 -505.72718,383.76364 C -510.14969,376.73965 -508.58881,374.13817 -511.19028,373.61788 C -513.79176,373.09758 -524.19767,369.45551 -530.18107,366.85403 C -536.16446,364.25256 -543.18845,362.43152 -549.69215,361.91123 C -556.19584,361.39093 -559.83791,359.83005 -557.23643,357.74886 C -554.63495,355.66768 -543.18845,358.78946 -540.58698,356.18798 C -537.9855,353.5865 -531.74195,350.72488 -526.539,349.42414 C -513.66692,345.26604 -499.42476,344.86328 -485.69581,344.48133 z "
+ id="path8446"
+ sodipodi:nodetypes="csssssssssssssssssssssssss" />
+ </g>
+ <rect
+ style="opacity:1;fill:url(#linearGradient9579);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="rect8652"
+ width="984.49908"
+ height="313.04349"
+ x="-1439.6975"
+ y="90.737244"
+ rx="1.4040213"
+ ry="1.1700177"
+ transform="matrix(-1,0,0,-1,-110.397,341.7769)"
+ mask="url(#mask9581)" />
+ <path
+ style="fill:url(#linearGradient3984);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3920"
+ d="M 1075.2326,-14.161479 C 1085.674,-11.622762 1090.2359,-1.4758864 1096.2187,6.5614937 C 1116.9822,17.166374 1146.1688,13.710664 1169.59,17.38969 C 1214.3492,27.345566 1252.2452,55.751087 1291.2149,78.663513 L 1291.1334,78.790866 C 1252.1786,55.887174 1214.2969,27.49093 1169.5556,17.536958 C 1145.0921,14.917769 1112.4999,22.959061 1091.6988,10.01098 C 1086.906,3.2539226 1082.9121,-5.2681789 1074.3862,-7.0105441 L 1075.2326,-14.161479 z " />
+ <path
+ style="fill:url(#linearGradient3968);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3910"
+ d="M 717.23836,19.384644 C 728.34749,26.025143 731.93678,38.179401 735.2397,50.014626 C 736.62128,60.647135 738.60115,69.993565 744.34606,76.881332 C 762.88097,78.542407 780.73875,81.986452 798.2881,88.242788 C 813.67503,96.286207 817.35443,88.0915 829.7017,78.963647 C 848.29036,66.91373 866.09598,69.382858 883.48317,81.39634 C 891.09697,87.020162 885.63335,81.968863 895.42013,72.929229 C 913.60017,67.843434 926.30852,83.513391 937.25762,95.63191 C 944.81939,105.47933 946.0291,96.986222 956.74694,91.861982 C 984.48528,82.74884 1007.8569,97.70616 1027.3736,116.14046 C 1037.8586,129.33552 1043.9523,138.92429 1060.9566,140.64707 C 1083.4821,140.33228 1103.3619,145.88026 1120.1163,161.04524 C 1125.6416,167.17194 1129.7232,174.58608 1135.7024,179.57766 C 1152.4739,183.27316 1163.7142,195.01849 1174.0176,207.97277 C 1180.2131,218.03774 1186.1041,227.82059 1194.819,235.8 C 1202.0757,242.11026 1206.2466,250.83549 1210.8529,259.07688 L 1206.464,261.70903 C 1202.3127,253.81044 1198.0963,245.88622 1190.8499,240.33994 C 1181.258,232.42898 1177.1861,221.06754 1170.6667,210.7025 C 1160.8626,198.04615 1149.6683,187.09281 1132.9203,185.61717 C 1125.2148,180.25527 1122.8668,172.00865 1116.9342,164.37776 C 1101.2966,148.8322 1082.0447,143.58337 1060.1229,145.40768 C 1040.6145,144.75124 1035.8338,133.51045 1025.0361,118.52935 C 1007.0237,100.39501 984.24457,85.794776 958.15976,96.349565 C 947.87723,102.70547 941.25661,113.4744 933.37469,99.010081 C 924.88026,88.328959 913.54329,73.868942 898.1666,78.068711 C 892.97175,84.580241 888.82952,95.468799 880.24467,85.564213 C 864.90117,73.27682 848.48748,71.111562 831.64829,82.948645 C 818.76239,94.034737 813.07924,102.84413 796.4652,92.258379 C 778.76084,85.110542 760.81905,82.749561 741.80722,82.479997 C 729.76911,77.092411 734.29089,62.904038 730.75244,51.691404 C 727.74216,41.700429 724.76211,31.647242 715.19441,26.345767 L 717.23836,19.384644 z " />
+ <path
+ style="fill:url(#linearGradient3976);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3918"
+ d="M 847.4776,-15.384703 C 866.66283,-14.011857 884.85084,-11.047169 903.05444,-4.6519073 C 938.08958,9.3213646 955.7063,39.896985 974.54917,70.280611 C 999.32779,102.96753 1043.5016,103.88314 1080.6782,111.26605 L 1080.6357,111.4112 C 1043.5945,104.05522 997.05405,104.59104 972.8039,71.413665 C 955.08603,40.65243 937.22448,10.76769 902.06894,-2.2438233 C 883.48921,-7.9609613 865.21322,-10.172832 845.79218,-8.4501033 L 847.4776,-15.384703 z " />
+ <path
+ style="fill:url(#linearGradient3960);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3916"
+ d="M 467.96534,-66.572663 C 472.20874,-59.426399 471.04523,-49.757409 471.69764,-41.467771 C 473.18706,-24.80449 488.62291,-22.292951 502.31842,-18.383175 C 543.69207,-9.3086117 576.1828,18.417798 610.44459,41.397541 C 636.03915,55.599007 664.3681,62.234458 690.211,76.151111 C 715.53684,89.515651 729.90998,114.18478 749.10738,133.99664 C 775.19655,146.17581 804.61123,149.19497 831.87776,159.18674 C 855.74406,167.64517 873.9944,185.15952 894.6896,198.74911 C 921.63247,205.87023 949.75693,206.60933 977.15019,212.72776 C 1015.2054,222.62687 1044.0023,245.82719 1067.8831,276.00038 C 1070.3514,279.24978 1072.8196,282.49919 1075.2879,285.74859 L 1072.4801,287.8489 C 1070.2405,284.46146 1068.001,281.07401 1065.7615,277.68657 C 1043.0088,246.69348 1015.4645,222.51021 977.01511,213.17947 C 948.47526,207.78797 919.28369,209.90337 891.47746,203.0184 C 871.95517,187.95029 855.77077,168.40593 831.41713,160.24004 C 803.09088,150.17048 772.41296,149.73045 745.6153,137.17135 C 728.05952,115.94246 715.19909,90.789272 689.33279,77.660315 C 663.0982,64.376871 633.5322,59.835495 609.30122,42.893959 C 576.83966,17.322341 543.63589,-9.3749824 501.37859,-15.391792 C 484.89358,-18.11488 467.91385,-20.788718 466.10114,-40.407973 C 465.63448,-45.909066 463.95468,-56.803192 464.32724,-60.097681 L 467.96534,-66.572663 z " />
+ <path
+ style="fill:url(#linearGradient10529);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 366.3125,-3.5 C 348.29055,-3.734694 329.06663,-2.8280362 313.75,7.65625 C 319.3297,10.753067 325.64491,8.337631 330.71875,5.59375 C 359.83458,-4.6118404 394.70279,-3.8813092 420.1875,14.9375 C 443.17685,30.452936 459.81971,55.183591 464.9375,82.65625 C 468.60243,96.371494 476.81938,111.18961 491.72842,114.73627 C 521.20342,125.80278 550.44443,138.62917 576.0625,156.84375 C 587.13753,164.1711 595.64921,175.08672 607.59375,181.125 C 616.27271,185.35841 626.62837,184.95516 635.15625,180.625 C 675.279,168.15136 718.31073,169.32583 759.77353,173.37403 C 786.0473,176.81635 813.62379,185.16842 832,205.0625 C 846.01821,217.03524 865.34584,216.52501 882.375,220.4375 C 916.72615,229.5506 945.26221,253.41909 966.03125,281.625 C 973.56447,290.07567 985.31292,294.32799 996.59375,292.15625 C 1011.1291,291.70199 1025.5132,295.61726 1037.8438,303.03125 C 1060.7917,311.506 1086.6749,311.38215 1108.3125,323.65625 C 1128.0623,332.40691 1146.8391,343.14726 1165.4688,354.0625 C 1167.575,352.06651 1169.7069,347.03379 1164.7631,346.95732 C 1128.4806,332.57538 1093.6707,313.76435 1055.625,304.375 C 1044.0509,301.09139 1033.7342,294.88979 1023.1875,289.4375 C 1006.6472,284.9728 986.64731,292.11717 972.25,280.34375 C 955.39801,264.55274 939.56793,247.48641 919.80417,235.47658 C 899.38757,222.34887 876.22277,214.5138 852.53125,210.125 C 835.68493,204.82439 824.31848,189.61493 807.3539,184.37581 C 768.44816,168.97323 725.7684,170.6129 684.59447,170.1317 C 662.97315,170.51388 641.58714,174.17859 620.71875,179.28125 C 600.85782,179.05726 588.44215,160.92914 572.21875,152.1875 C 543.83207,133.99931 512.66781,121.17467 483,105.375 C 464.90147,89.123808 466.56985,61.285408 450.875,43.34375 C 431.97367,15.884669 400.22496,-4.1039588 366.3125,-3.5 z "
+ id="path3908" />
+ <path
+ style="fill:url(#linearGradient3928);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3912"
+ d="M 43.5963,253.72059 C 52.387537,250.26724 61.982495,253.24003 70.899518,255.06964 C 101.2484,263.35469 124.88141,284.21065 145.97413,306.57863 C 158.31647,320.03331 166.08184,337.74565 181.49756,347.28103 C 199.66134,347.26097 217.61981,343.21232 235.64385,341.12779 C 249.09412,341.13498 259.97508,337.52007 271.69682,331.63096 C 302.24516,316.1706 336.04764,310.2445 369.99072,310.24023 C 392.75702,310.61464 411.0428,321.77329 429.85372,332.82075 C 457.42037,333.98422 484.37737,336.62118 511.41789,343.02661 C 541.24626,350.72614 567.15284,367.93071 595.49781,379.24554 C 626.47726,386.24952 658.52202,382.5642 689.5768,378.21815 C 740.96952,367.78535 792.62002,358.45882 845.20543,359.6023 C 867.67787,360.91143 886.72786,369.54764 900.99237,386.76256 C 908.45581,392.38587 917.57335,395.00756 925.49492,400.79073 C 938.5446,412.55985 944.87539,429.46905 962.49262,434.67781 C 990.98739,436.4841 1017.787,441.33496 1043.731,453.52678 C 1066.0177,468.50772 1091.0817,469.88892 1117.0703,470.96592 C 1137.7287,470.61323 1157.7947,474.40096 1177.4886,480.21661 L 1175.6349,484.67572 C 1156.7052,477.47387 1137.2254,472.6844 1116.7784,473.00417 C 1089.9646,472.57175 1064.5912,473.4644 1042.3409,456.0443 C 1016.3999,442.838 989.71209,438.96992 960.75692,439.28862 C 942.27925,433.91787 936.80923,416.47932 922.6944,404.64929 C 913.93009,399.07756 902.83018,398.21819 896.22732,390.41361 C 883.68886,372.68555 867.39485,362.57075 845.15462,359.96179 C 792.58542,358.30977 740.9618,368.09362 689.57959,378.36935 C 658.12975,384.13766 625.07552,389.22973 593.27122,383.51129 C 566.18565,369.62185 541.6282,350.3659 511.31871,343.34124 C 482.82192,337.30629 454.93474,338.20562 426.58714,337.50731 C 409.12937,324.97824 392.45528,312.78094 369.80051,311.73358 C 335.82404,311.01597 302.15535,317.4287 273.24835,336.26891 C 261.01411,344.08283 250.1426,345.84357 235.52833,345.41885 C 216.56139,347.29508 197.88008,352.22019 178.8962,352.51838 C 161.65277,344.12973 158.35614,320.52373 144.41153,308.0468 C 123.94502,285.6946 100.37266,265.48212 69.801048,259.34779 C 62.54992,258.54515 54.173284,256.83116 47.502732,260.09531 L 43.5963,253.72059 z " />
+ <path
+ style="fill:url(#linearGradient10513);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -22.9375,85.5 C -21.735159,87.825674 -25.152692,92.358837 -21.15625,93.0625 C -9.1314446,88.720997 7.7065177,92.5092 12.3125,105.71875 C 16.888397,114.153 18.409071,124.25608 22.71875,132.53125 C 48.181946,138.49585 74.164598,127.22717 99.75,131.46875 C 122.97186,143.83206 150.60196,139.35291 174.82927,132.76795 C 206.33829,127.17669 242.84853,130.86261 266.37433,154.5372 C 281.28651,167.90917 299.17985,179.12749 319.5,180.71875 C 338.75522,186.90929 348.83069,207.41365 368.38707,213.11458 C 407.80779,229.70612 452.71066,225.30148 492.57279,240.38904 C 503.62583,246.32338 515.6348,250.92954 528.40625,249.78125 C 546.45529,249.89866 564.5181,254.41304 582.46875,252.78125 C 612.0823,247.7172 639.01315,228.98907 669.99687,231.26662 C 682.71909,232.39992 696.8128,236.67861 704.5,247.5 C 708.65944,256.25207 708.12643,266.48084 712.34425,275.33717 C 715.98789,288.097 722.25663,302.47276 736.21875,306.46875 C 760.49235,316.21528 787.87743,313.90987 813.375,314.03125 C 785.51816,312.67479 755.15919,314.21668 730.71875,298.71875 C 718.34125,288.25076 717.1873,270.76091 713.59375,256.0625 C 712.7022,247.49665 708.86369,238.95519 700.46875,235.5625 C 676.78021,223.16382 648.62978,228.51745 624.54618,236.61287 C 602.80231,243.72733 580.26623,251.12901 557.03623,248.13971 C 537.03707,246.39353 516.64067,245.08559 498.03125,237 C 475.87284,228.58469 451.75223,229.18386 428.65625,225.375 C 402.2107,221.50441 374.22983,216.42958 352.9375,199.25 C 343.37812,191.72674 336.64295,180.36231 324.125,177.3125 C 314.4075,173.95733 303.37664,174.95044 294.3125,169.34375 C 273.5138,158.67781 258.29949,137.80732 234.375,133.1875 C 205.31912,125.36895 174.73776,129.41615 145.6875,134.90625 C 127.71566,137.05455 110.11638,131.91796 92.875,127.9375 C 70.942382,127.15378 49.066901,132.00035 27.15625,129.4375 C 20.082209,115.53452 17.945716,97.501355 3.96875,88.28125 C -4.7395865,85.671488 -13.877008,85.384203 -22.9375,85.5 z M 840,315.21875 C 872.24438,316.82881 905.81906,319.65158 934.6875,335.25 C 948.83904,344.3643 951.09668,365.60948 967.90625,371.3125 C 980.85972,375.5844 995.04704,374.91792 1008.5312,377.5 C 1020.495,378.63225 1033.4213,380.06811 1044.9375,378.125 C 1045.4848,374.17375 1040.8478,372.8932 1037.8754,374.15766 C 1015.1936,373.25485 992.59498,370.218 970.3125,366.34375 C 958.89307,362.40727 955.01199,350.18638 948.41101,341.34058 C 936.42496,326.22791 917.26684,318.61478 898.47647,317.46972 C 877.18622,314.6777 855.66177,315.50048 834.25,314.96875 C 836.16667,315.05208 838.08333,315.13542 840,315.21875 z "
+ id="path3906" />
+ <path
+ transform="translate(-411.3422,-288.31)"
+ d="M 978.44989 292.62759 A 273.724 77.882797 0 1 1 431.00189,292.62759 A 273.724 77.882797 0 1 1 978.44989 292.62759 z"
+ sodipodi:ry="77.882797"
+ sodipodi:rx="273.724"
+ sodipodi:cy="292.62759"
+ sodipodi:cx="704.72589"
+ id="path3902"
+ style="opacity:1;fill:url(#radialGradient3904);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient3900);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path3898"
+ sodipodi:cx="704.72589"
+ sodipodi:cy="292.62759"
+ sodipodi:rx="273.724"
+ sodipodi:ry="77.882797"
+ d="M 978.44989 292.62759 A 273.724 77.882797 0 1 1 431.00189,292.62759 A 273.724 77.882797 0 1 1 978.44989 292.62759 z"
+ transform="translate(-130.0568,-266.1626)" />
+ <path
+ style="fill:url(#linearGradient2820);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 51.428571,-22.857143 L 268.57143,822.85714 L 548.57143,828.57143 L 97.142857,-31.428571 L 51.428571,-22.857143 z "
+ id="path2788" />
+ <path
+ id="path2822"
+ d="M 85.714284,-20 L 448.57143,828.57143 L 642.85714,837.14286 L 131.42857,-28.571428 L 85.714284,-20 z "
+ style="fill:url(#linearGradient2824);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc" />
+ <g
+ style="display:inline"
+ id="g10637">
+ <path
+ style="opacity:1;fill:url(#linearGradient9598);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 519.74388,344.75731 C 526.2264,368.52653 529.82779,375.00904 538.47115,383.6524 C 547.1145,392.29575 565.84177,413.18386 566.56204,405.26078 C 567.28232,397.33771 553.59701,374.28877 549.99562,359.16289 C 546.39422,344.03703 519.0236,344.03703 519.74388,344.75731 z "
+ id="path8354" />
+ <path
+ transform="matrix(1.799676,0,0,1.799676,1569.983,-200.253)"
+ style="opacity:1;fill:url(#linearGradient8405);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M -637.16182,256.09114 C -623.55409,261.29409 -622.35341,261.29409 -615.54954,258.89273 C -608.74568,256.49136 -580.32954,260.49364 -562.71954,263.69546 C -545.10954,266.89727 -521.49614,277.30318 -514.29204,276.90296 C -507.08795,276.50273 -490.67864,262.895 -488.27727,261.29409 C -485.87591,259.69318 -472.26818,258.09227 -475.06977,262.49477 C -477.87136,266.89727 -482.27386,272.90068 -482.67409,279.30432 C -483.07432,285.70796 -477.47114,291.31114 -467.46545,294.51296 C -457.45977,297.71477 -451.45636,301.71705 -434.64682,306.11955 C -417.83727,310.52205 -406.63091,310.92227 -397.42568,314.92455 C -388.22045,318.92682 -385.01864,320.92796 -376.61386,317.32591 C -368.20909,313.72386 -352.2,304.51864 -350.99932,302.91773 C -349.79864,301.31682 -345.39614,298.91546 -347.39727,302.5175 C -349.39841,306.11955 -365.80773,313.72386 -365.4075,317.72614 C -365.00727,321.72841 -361.40523,325.33046 -364.20682,326.53114 C -367.00841,327.73182 -372.61159,331.73409 -377.01409,330.53341 C -381.41659,329.33273 -381.41659,330.13318 -386.61954,331.33386 C -391.8225,332.53455 -399.82704,331.73409 -413.03454,332.93477 C -426.24204,334.13546 -441.85091,338.53796 -452.25682,338.53796 C -462.66273,338.53796 -496.68204,335.33614 -516.29318,330.53341 C -535.90432,325.73068 -579.12886,307.32023 -587.93386,300.11614 C -596.73886,292.91205 -614.74909,278.10364 -623.15386,272.90068 C -631.55864,267.69773 -647.1675,260.09341 -645.56659,258.09227 C -643.96568,256.09114 -643.16523,256.09114 -640.76386,256.09114 C -638.3625,256.09114 -637.16182,256.49136 -637.16182,256.09114 z "
+ id="path8352" />
+ <g
+ transform="translate(0,-80)"
+ id="g9660">
+ <path
+ id="path9662"
+ d="M 420.4375,351.96875 C 440.18809,364.03345 460.17532,375.63023 477.94839,390.54718 C 495.88575,403.57979 511.33993,420.56794 531.66947,429.89692 C 566.70864,447.15761 602.85475,462.40135 640.50564,472.97486 C 675.96946,481.09647 712.2364,485.0288 748.53125,487.28125 C 705.43554,477.05173 660.4053,473.72623 619.16659,456.74109 C 574.4705,439.00707 531.4139,417.02949 490.86382,391.14252 C 467.5075,377.22428 443.98507,363.55303 419.625,351.40625 L 420.4375,351.96875 z "
+ style="opacity:0.2;fill:url(#linearGradient9669);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00018001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline" />
+ <path
+ id="path9671"
+ d="M 416.09375,349.78125 C 433.10957,361.63233 452.21905,370.84151 468.38124,384.09578 C 484.98873,396.43755 500.61035,410.32069 517.09375,422.625 C 544.33265,438.56731 574.09981,450.50399 603.53125,461.78125 C 625.28469,470.17795 647.7524,476.41517 670.82773,479.68732 C 698.52132,483.93794 726.42438,487.21798 754.4375,488.25 C 734.43131,482.48722 713.5416,479.8406 693.09534,475.59091 C 668.31433,471.10781 643.39779,465.92889 620.11713,456.29019 C 578.80957,439.81567 538.73872,420.19838 501.07988,396.48962 C 474.45961,380.31572 447.50359,364.51317 419.65625,350.59375 C 418.55536,350.20327 416.79637,349.68725 416.09375,349.78125 z "
+ style="opacity:0.2;fill:url(#linearGradient9678);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00018001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline" />
+ <path
+ id="path9680"
+ d="M 543.47947,420.20223 C 581.56946,439.89128 619.7538,457.01226 649.22312,465.41977 C 676.9932,473.3425 762.36636,485.89098 756.06726,489.00564 C 737.33999,489.00564 676.11625,483.2434 640.82255,474.60005 C 605.52886,465.95669 527.73869,432.82384 511.89254,419.85881 C 496.0464,406.89379 463.63382,380.24345 448.50795,370.8798 C 433.38207,361.51618 410.46181,348.587 415.06765,348.82636 C 419.48107,349.05573 423.72264,351.62991 427.54175,353.65262 C 491.04117,387.28369 512.27449,404.07213 543.47947,420.20223 z "
+ style="opacity:0.2;fill:url(#linearGradient9701);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00018001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline" />
+ <path
+ id="path9683"
+ d="M 414.5625,348.09375 C 412.00693,350.19289 417.31077,352.09088 418.55097,353.40879 C 436.54271,364.80652 455.34162,374.9279 471.74517,388.5789 C 486.88858,399.95296 501.06911,412.68623 516.28125,423.875 C 544.76883,440.54876 575.75506,452.81904 606.5575,464.4947 C 631.98694,474.43705 658.74717,479.97994 685.75929,483.43858 C 709.23499,486.3585 732.89146,489.47587 756.53125,489.59375 C 758.56842,487.22463 753.65515,486.48171 752.125,485.90625 C 717.26551,477.30949 681.28585,473.39423 646.65625,463.875 C 608.1974,451.95901 571.70922,434.07712 536.0967,415.40541 C 504.30967,397.41378 473.75257,377.30084 441.4281,360.23287 C 432.93528,356.3418 425.25233,350.04235 416,348.15625 C 415.53131,348.12614 415.03447,347.99408 414.5625,348.09375 z "
+ style="opacity:0.2;fill:url(#linearGradient9690);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00018001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline" />
+ <path
+ id="path9692"
+ d="M 414.59375,347.34375 C 410.14671,349.68374 416.88401,353.10233 418.8125,354.46875 C 438.42176,366.52727 458.4402,378.00341 476.07339,392.92218 C 490.97221,403.78362 504.12352,417.04797 519.78125,426.90625 C 555.87608,446.35956 594.14634,461.89087 633.28125,474.15625 C 671.31065,483.88257 710.56293,487.91762 749.6875,490.34375 C 752.20254,490.51525 760.03434,491.62331 757.125,487.125 C 743.06189,481.47475 727.48897,480.36159 712.73979,477.00482 C 680.18449,470.84745 647.1948,465.74308 616.65625,452.5 C 573.43201,435.10239 531.72256,413.66323 492.42632,388.58002 C 468.50116,374.49541 444.58273,360.15939 419.53125,348.1875 C 417.92784,347.76214 416.2643,347.25767 414.59375,347.34375 z "
+ style="opacity:0.2;fill:url(#linearGradient9699);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00018001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline" />
+ </g>
+ <path
+ id="path9624"
+ d="M 412.9545,263.31238 C 416.40218,261.39701 420.616,261.01393 425.59597,263.31238 C 430.57594,265.61083 445.13278,270.20772 451.64505,269.82465 C 458.15731,269.44158 470.03263,264.4616 486.88792,266.76005 C 503.7432,269.0585 509.10625,269.0585 507.19087,272.50617 C 505.2755,275.95384 482.67409,274.42155 479.6095,279.01844 C 476.5449,283.61534 450.11275,275.1877 444.7497,272.50617 C 439.38666,269.82465 413.72065,262.92931 412.9545,263.31238 z "
+ style="fill:url(#linearGradient9632);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ transform="matrix(1.799676,0,0,1.799676,1569.983,-200.253)"
+ style="opacity:1;fill:url(#linearGradient8407);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M -585.13227,286.90864 C -584.33182,299.71591 -582.33068,306.51977 -574.72636,312.92341 C -567.12204,319.32705 -558.71727,323.72955 -558.71727,320.52773 C -558.71727,317.32591 -564.32045,312.52318 -565.12091,307.72046 C -565.92136,302.91773 -565.92136,300.91659 -565.92136,300.91659"
+ id="path8356" />
+ <path
+ transform="matrix(1.799676,0,0,1.799676,1569.983,-200.253)"
+ id="path8385"
+ d="M -637.16182,256.09114 C -623.55409,261.29409 -622.35341,261.29409 -615.54954,258.89273 C -608.74568,256.49136 -580.32954,260.49364 -562.71954,263.69546 C -545.10954,266.89727 -521.49614,277.30318 -514.29204,276.90296 C -507.08795,276.50273 -490.67864,262.895 -488.27727,261.29409 C -485.87591,259.69318 -472.26818,258.09227 -475.06977,262.49477 C -477.87136,266.89727 -482.27386,272.90068 -482.67409,279.30432 C -483.07432,285.70796 -477.47114,291.31114 -467.46545,294.51296 C -457.45977,297.71477 -451.45636,301.71705 -434.64682,306.11955 C -417.83727,310.52205 -406.63091,310.92227 -397.42568,314.92455 C -388.22045,318.92682 -385.01864,320.92796 -376.61386,317.32591 C -368.20909,313.72386 -352.2,304.51864 -350.99932,302.91773 C -349.79864,301.31682 -345.39614,298.91546 -347.39727,302.5175 C -349.39841,306.11955 -365.80773,313.72386 -365.4075,317.72614 C -365.00727,321.72841 -361.40523,325.33046 -364.20682,326.53114 C -367.00841,327.73182 -372.61159,331.73409 -377.01409,330.53341 C -381.41659,329.33273 -381.41659,330.13318 -386.61954,331.33386 C -391.8225,332.53455 -399.82704,331.73409 -413.03454,332.93477 C -426.24204,334.13546 -441.85091,338.53796 -452.25682,338.53796 C -462.66273,338.53796 -496.68204,335.33614 -516.29318,330.53341 C -535.90432,325.73068 -579.12886,307.32023 -587.93386,300.11614 C -596.73886,292.91205 -614.74909,278.10364 -623.15386,272.90068 C -631.55864,267.69773 -647.1675,260.09341 -645.56659,258.09227 C -643.96568,256.09114 -643.16523,256.09114 -640.76386,256.09114 C -638.3625,256.09114 -637.16182,256.49136 -637.16182,256.09114 z "
+ style="opacity:1;fill:url(#radialGradient9600);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ id="path8411"
+ d="M 481.34269,264.53793 C 478.97853,265.12534 477.33749,267.18716 479.65519,269.10043 C 486.83303,276.51652 499.19492,269.62824 506.96769,276.41293 C 514.58511,282.38933 516.15112,293.46466 520.49894,301.06918 C 522.2166,300.64479 523.8471,299.45705 521.87394,297.85043 C 517.4358,288.036 514.33575,273.48365 501.81144,271.41293 C 495.37911,269.89973 486.18441,272.55665 481.84269,266.47543 C 481.5737,265.90326 481.55734,265.00233 481.34269,264.53793 z M 537.96769,266.31918 C 535.36306,270.42197 541.02156,268.43095 542.68644,270.85043 C 546.23893,273.36285 545.85824,278.35877 543.09269,281.25668 C 541.27239,284.24027 539.52099,290.83603 545.37394,290.31918 C 565.01982,294.49353 586.89105,286.51748 605.49894,296.00668 C 610.38216,302.1081 605.83465,310.02635 605.24894,316.75668 C 602.07232,332.46835 601.58807,349.36849 606.21769,364.75668 C 608.22516,370.07316 614.60614,374.35552 619.90519,372.31918 C 621.12018,368.96277 615.63988,371.37245 613.99894,369.31918 C 604.82785,364.16397 605.43663,351.9444 604.87394,342.81918 C 604.63634,327.64898 609.38974,312.76282 609.37394,297.75668 C 607.8669,290.78372 599.29224,292.07598 594.03731,291.01253 C 578.64376,289.13274 562.62946,291.94008 547.56144,288.35043 C 543.33014,285.78445 545.91805,280.65808 547.74894,277.44418 C 549.27597,272.42106 545.81292,266.27719 540.12394,266.72543 C 539.51611,266.67554 538.32583,265.80637 537.96769,266.31918 z M 640.12394,298.28793 C 638.32904,300.2577 637.19847,302.55002 639.71769,304.50668 C 644.82941,311.81264 651.71945,318.81257 651.74894,328.28793 C 654.13851,335.15596 660.85461,339.46396 665.06144,344.85043 C 668.84097,343.75471 665.90247,340.37199 663.81144,339.19418 C 658.08545,334.25129 652.58913,327.9611 652.56144,319.94418 C 650.09296,311.80862 643.38524,305.77936 640.24894,298.00668 L 640.12394,298.28793 z "
+ style="opacity:1;fill:url(#linearGradient8607);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ id="path9602"
+ d="M 408.23182,264.19574 C 416.39645,264.19574 431.70515,268.95844 440.89036,274.74173 C 450.07558,280.52501 458.24021,282.90636 461.64215,284.60733 C 465.04408,286.3083 466.06466,290.05042 466.06466,290.05042"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.33714285" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.33714288"
+ d="M 408.23182,265.21631 C 416.39645,265.21631 431.70515,269.97901 440.89036,275.7623 C 450.07558,281.54558 458.24021,283.92693 461.64215,285.6279 C 465.04408,287.32887 466.06466,291.07099 466.06466,291.07099"
+ id="path9604" />
+ <path
+ id="path9606"
+ d="M 458.24021,268.27806 C 471.50775,269.63883 483.41451,269.97902 482.73412,272.70057 C 482.05374,275.42211 476.95084,273.72115 476.95084,273.72115 L 476.95084,273.72115"
+ style="fill:url(#linearGradient9622);fill-opacity:1.0;fill-rule:evenodd;stroke:url(#linearGradient9614);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ transform="matrix(1.799676,0,0,1.799676,1569.983,-200.253)"
+ id="path9638"
+ d="M -585.13227,286.90864 C -584.33182,299.71591 -582.33068,306.51977 -574.72636,312.92341 C -567.12204,319.32705 -558.71727,323.72955 -558.71727,320.52773 C -558.71727,317.32591 -564.32045,312.52318 -565.12091,307.72046 C -565.92136,302.91773 -565.92136,300.91659 -565.92136,300.91659"
+ style="opacity:1;fill:url(#linearGradient9640);fill-opacity:1.0;fill-rule:evenodd;stroke:url(#linearGradient9648);stroke-width:1.11131115;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;stroke-miterlimit:4;stroke-dasharray:none" />
+ <path
+ id="path9703"
+ d="M 764.61705,404.66694 C 756.95556,386.27935 793.73073,395.47314 811.35216,390.1101 C 828.9736,384.74705 877.241,387.0455 887.20095,380.15016 C 897.16089,373.25481 921.67767,354.86723 914.78232,364.06102 C 907.88698,373.25481 910.18543,376.31941 910.95158,380.15016 C 911.71772,383.9809 907.88698,390.1101 898.69319,390.87625 C 889.49939,391.6424 875.70871,393.1747 869.57951,393.94085 C 863.45032,394.707 812.88446,396.23929 801.39222,401.60234 C 789.89998,406.96538 766.14935,404.66694 764.61705,404.66694 z "
+ style="fill:url(#linearGradient9711);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path9713"
+ d="M 787.60153,350.27033 C 816.71521,356.39953 814.41676,356.39953 829.73974,359.46412 C 845.06273,362.52872 862.68417,370.95636 870.34566,372.48866 C 878.00715,374.02096 878.7733,377.08556 903.29008,364.82717 C 927.80686,352.56878 948.49289,334.94735 941.59755,342.60884 C 934.70221,350.27033 900.99163,372.48866 892.56399,375.55326 C 884.13635,378.61786 873.41026,380.91631 855.02267,372.48866 C 836.63509,364.06102 819.01365,366.35947 803.69067,365.59332 C 788.36768,364.82717 765.3832,347.20573 771.51239,347.20573 C 777.64159,347.20573 786.83538,350.27033 787.60153,350.27033 z "
+ style="fill:url(#linearGradient9721);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path9723"
+ d="M 416.6875 256.65625 C 409.89758 256.81115 401.68959 261.33188 405.65625 268.28125 C 423.24213 283.66164 446.85294 291.15204 464.59375 306.625 C 483.50253 320.40685 500.71428 337.37747 520.6875 349.8125 C 524.72812 357.88672 530.59372 364.91821 538.65625 369.90625 C 546.61771 374.67414 555.52239 384.17896 565.59375 381.28125 C 568.50249 378.36481 568.38598 375.13672 567.03125 371.90625 C 606.08865 388.78967 646.54696 402.74131 689.1875 406.75 C 723.71371 410.89274 759.32533 416.60766 793.6875 407.6875 C 819.73059 401.31549 846.55493 401.99373 873.0625 399.9375 C 880.35722 397.51114 887.17407 396.36562 894.53125 398.59375 C 903.5176 397.87806 912.64766 393.59814 919.34375 387.84375 C 923.2503 380.97757 910.87626 372.77231 919.0625 367.8125 C 928.03745 358.45734 944.16296 355.27365 949.21875 342.625 C 949.12554 332.93401 937.45982 338.85148 934.1875 343.6875 C 916.91762 353.78982 899.75416 366.28632 879.96875 370.53125 C 864.04506 369.94939 850.90193 358.39271 834.96875 356.84375 C 800.356 351.33925 766.73706 342.25163 734.6875 328.03125 C 721.54805 324.3032 701.57848 315.93282 705.46875 298.875 C 706.84893 287.82879 716.78518 280.10649 719.3125 269.84375 C 716.77314 260.59101 703.76469 263.55078 696.6875 264.5 C 683.00013 267.48945 674.23219 280.74177 661.875 286.625 C 652.9164 293.23238 641.4342 297.00894 630.78125 292.0625 C 595.24627 280.39483 559.86135 268.64364 522.375 265.09375 C 499.33116 262.71865 474.6468 256.72425 452.21875 264.75 C 441.40824 265.93711 430.0184 257.10702 421 257.25 C 419.75361 256.795 418.2544 256.6205 416.6875 256.65625 z "
+ style="opacity:0.5;fill:url(#linearGradient9731);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ </g>
+ <path
+ sodipodi:nodetypes="ccccc"
+ style="fill:url(#linearGradient2828);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -11.428573,-14.285714 L 62.85714,834.28571 L 194.28571,837.14286 L 14.285713,-22.857143 L -11.428573,-14.285714 z "
+ id="path2826" />
+ <path
+ style="fill:url(#linearGradient2848);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 180,-20 L 748.57143,831.42857 L 1148.5714,822.85714 L 245.71429,-20 L 180,-20 z "
+ id="path2830" />
+ <path
+ id="path2850"
+ d="M 248.57143,-22.857142 L 940,820 L 1340,811.42857 L 314.28572,-22.857142 L 248.57143,-22.857142 z "
+ style="fill:url(#linearGradient2852);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc" />
+ <g
+ id="g8397"
+ transform="matrix(1.799676,0,0,1.799676,1569.983,-200.253)" />
+ <rect
+ ry="1.1700177"
+ rx="1.4040213"
+ y="-8.5714283"
+ x="-14.285714"
+ height="825.71429"
+ width="1311.4286"
+ id="rect2804"
+ style="opacity:1;fill:url(#radialGradient2812);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145" />
+ <rect
+ style="opacity:1;fill:url(#radialGradient2856);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="rect2854"
+ width="1311.4286"
+ height="825.71429"
+ x="-14.285714"
+ y="-8.5714283"
+ rx="1.4040213"
+ ry="1.1700177" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient3892);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path3874"
+ sodipodi:cx="704.72589"
+ sodipodi:cy="292.62759"
+ sodipodi:rx="273.724"
+ sodipodi:ry="77.882797"
+ d="M 978.44989 292.62759 A 273.724 77.882797 0 1 1 431.00189,292.62759 A 273.724 77.882797 0 1 1 978.44989 292.62759 z"
+ transform="translate(223.8185,-196.5974)" />
+ <path
+ transform="matrix(1,0,0,1.76699,468.809,-355.2554)"
+ d="M 978.44989 292.62759 A 273.724 77.882797 0 1 1 431.00189,292.62759 A 273.724 77.882797 0 1 1 978.44989 292.62759 z"
+ sodipodi:ry="77.882797"
+ sodipodi:rx="273.724"
+ sodipodi:cy="292.62759"
+ sodipodi:cx="704.72589"
+ id="path3894"
+ style="opacity:1;fill:url(#radialGradient3896);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc" />
+ <rect
+ ry="1.1700177"
+ rx="1.4040213"
+ y="-8.5714283"
+ x="-14.285714"
+ height="825.71429"
+ width="1311.4286"
+ id="rect2858"
+ style="opacity:1;fill:url(#radialGradient2860);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145" />
+ <path
+ style="fill:#8cecc8;fill-opacity:0.29142857;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 420.53125,-10.03125 C 423.80723,-3.3493256 427.20801,5.2438211 435.53125,6.59375 C 444.09262,1.8969104 454.65597,3.1315538 463.96875,4.1875 C 474.19929,6.9652836 484.06065,11.190787 494.375,13.34375 C 497.36558,15.774111 491.20971,16.07709 491.3125,18.8125 C 489.81533,23.32721 494.19144,27.259785 498.5625,26.59375 C 509.17075,28.455582 520.1259,27.841788 530.59375,26.15625 C 537.74222,28.060633 546.69472,25.666829 549.4375,18.25 C 551.99875,12.817756 547.85571,6.616997 542.03125,6.03125 C 534.72809,4.3896029 528.23366,0.74712491 523.82414,-5.3008568 C 518.80464,-10.78988 511.14089,-12.486548 504.00022,-11.254783 C 475.68322,-11.598648 447.37737,-12.53364 419.0625,-13 C 419.55208,-12.010417 420.04167,-11.020833 420.53125,-10.03125 z M 792.375,-7.03125 C 778.78227,-5.8288141 768.54788,4.5496802 758.8125,13.125 C 779.94936,10.536091 802.02655,7.8320844 822.59375,14.53125 C 827.3808,14.397799 830.08215,6.7265138 824.9375,4.6875 C 816.08753,-3.1678837 804.19983,-7.3348278 792.375,-7.03125 z M 989,4.15625 C 981.8962,4.2997501 977.02471,15.085244 984.0625,19 C 998.26279,29.417938 1010.3182,43.772234 1027.4688,49.71875 C 1030.0195,50.709879 1029.2873,52.924905 1026.5625,52.34375 C 1019.5958,53.462105 1012.3525,50.754555 1008.25,45.073342 C 1000.0544,39.674361 990.9375,33.231739 980.9375,33.25 C 976.83439,33.855215 978.11256,39.65938 975.125,40.875 C 969.49058,41.021593 966.10114,34.187663 960.15625,34.6875 C 952.06527,34.397339 943.92407,34.175251 935.94215,34.033824 C 925.28561,35.100786 911.65539,35.643525 905.3125,45.65625 C 904.76028,48.009107 903.42617,49.028951 901.09608,47.838033 C 891.10288,47.321467 879.38196,46.193684 871.0625,52.46875 C 869.66204,54.404643 870.17386,57.353636 870.40625,59.15625 C 866.31459,57.228938 858.24083,60.112606 861.125,65.40625 C 864.86322,70.70951 873.51678,64.852761 875.94686,71.860159 C 880.26856,78.243045 888.47087,80.943685 895.8125,81.4375 C 903.37669,80.77821 908.18662,72.83581 915.90625,72.46875 C 919.81231,71.620141 927.40009,72.593382 925.8125,78.25 C 924.07499,82.976499 922.56082,92.134321 929.375,93.375 C 935.14227,94.198715 940.80402,91.761194 946.53125,92.125 C 952.35802,93.716642 958.67654,95.790495 963.125,99.78125 C 962.95332,103.74002 958.0415,101.36205 955.78125,101.1875 C 946.58486,99.955521 935.50015,103.29012 927.84375,97 C 926.59212,91.348172 919.77355,92.836981 915.59375,91.375 C 906.54973,89.54011 896.5688,91.286426 889.875,97.875 C 884.14354,100.38671 877.56166,99.449422 871.875,97.5 C 875.85298,96.44845 882.48799,94.24995 881.9453,89.5117 C 879.27948,84.204692 871.13485,89.611015 869.1875,83.5625 C 865.37922,76.679967 856.5381,80.014465 850.28512,79.900394 C 841.15664,81.030521 830.50185,81.905342 823.78125,88.84375 C 820.22809,93.061739 824.15973,98.461465 828.71875,99.5625 C 838.90648,104.36848 851.64805,101.05071 861.21875,106.8125 C 865.46907,115.24909 876.80528,110.72502 882.96875,115.96875 C 888.72254,124.18091 899.76322,120.80985 908.07694,123.46384 C 912.1597,123.90351 918.22736,125.67677 916.8125,131.0625 C 917.10953,135.24181 922.3288,135.62009 924,138.46875 C 919.3135,140.48649 913.68546,138.43862 908.71875,139.65625 C 904.81313,139.37851 897.16701,136.94324 897.34375,143.1875 C 897.77947,148.25744 903.61457,149.48544 906.59375,152.6875 C 912.86928,157.09062 921.13243,156.68008 927.71875,153.34375 C 933.45655,152.23959 942.75312,152.87419 944.9375,146.21875 C 944.77816,141.09399 938.145,141.38255 935.96875,138.1875 C 940.97689,134.62879 948.15542,139.81847 953.65625,136.53125 C 955.55135,135.09925 957.41977,133.07792 959.84375,135.1875 C 969.92659,140.24341 982.46194,143.85421 993.28125,139.34375 C 997.63806,135.59986 993.22464,129.66328 989.625,127.3125 C 983.34074,118.91843 977.86712,109.12102 968.75,103.53125 C 967.49771,99.666464 973.23807,102.24993 975.375,101.625 C 979.97344,102.04288 983.7468,96.416827 979.6875,93.125 C 973.25783,85.84939 960.94519,90.180262 955.25,82.0625 C 950.47445,78.535603 942.09734,83.40457 939.5,76.625 C 936.68345,72.621491 938.38148,65.561892 944.15625,66.34375 C 964.94608,63.458452 983.05495,76.081039 999.875,86.34375 C 1006.1628,90.258578 1013.7135,91.639372 1020.9062,91.25 C 1028.12,93.285248 1032.8964,100.15532 1040.3509,101.73626 C 1050.3419,106.46449 1063.7146,111.74914 1073.6562,104.28125 C 1076.915,101.70115 1076.3884,96.209003 1076.125,93.5 C 1084.8455,97.130928 1093.0496,106.41212 1103.3125,102.625 C 1109.9678,101.79385 1118.1403,101.06061 1121.7812,94.5 C 1120.2259,91.490075 1124.6451,88.228223 1126.9062,90.90625 C 1161.6766,103.79306 1199.2088,95.51006 1235,93 C 1239.8641,93.563395 1246.6881,93.960269 1248.7188,88.3125 C 1246.9913,82.32695 1239.9859,85.74604 1235.6926,84.232506 C 1208.3918,82.14202 1180.6558,86.069602 1153.5938,81.84375 C 1148.232,77.738094 1142.0535,72.411824 1134.8125,75.0625 C 1127.136,76.136251 1119.6572,73.333804 1113.25,69.59375 C 1104.9627,67.847137 1093.5489,69.002907 1089,60.34375 C 1080.5981,50.47683 1066.1926,50.062147 1056.7812,41.5625 C 1045.9122,35.372937 1032.2977,35.400177 1022.6562,26.75 C 1013.7519,18.803455 1007.3744,4.5890561 993.69288,4.3651439 C 992.13737,4.1835025 990.56696,4.0499639 989,4.15625 z M 621,12.59375 C 617.19629,13.717248 613.09188,19.084357 609.25,15.375 C 601.01781,13.159209 591.90975,24.621538 598.46875,31.28125 C 602.43304,34.343439 609.26781,37.819444 613.21875,32.8125 C 612.41716,30.004465 616.17198,28.78703 617.1875,31.59375 C 623.9292,37.655482 633.50564,32.793153 641.4375,34.71875 C 650.19585,35.034719 660.16633,36.269963 667.53125,30.5 C 668.61797,22.811957 659.82532,19.927553 653.75631,19.70031 C 643.96767,19.346741 634.27798,16.806547 625.53575,12.780191 C 624.03129,12.620967 622.51338,12.496652 621,12.59375 z M 844,47.625 C 834.73792,48.661201 825.71332,52.554844 817.3125,55.53125 C 808.38757,45.94788 792.40623,47.977326 782.46875,54.8125 C 777.25579,58.373559 770.9163,60.892849 766.8125,65.625 C 766.53431,67.706311 763.85044,63.37135 762.40625,66.28125 C 759.45444,69.389747 765.64429,70.659233 766.09375,68.9375 C 766.0593,73.832519 772.34231,75.171812 775.46875,72 C 779.37918,68.444022 783.74825,65.059527 789.375,65.90625 C 796.72196,66.678531 803.6671,63.994701 810.84375,63.75 C 813.35861,65.230948 815.53863,67.800247 819,67.6875 C 825.54918,67.640954 831.49131,72.207891 838.15625,69.75 C 845.81123,68.000357 854.40864,60.304029 851.75,51.9375 C 850.29221,49.149571 847.14065,47.419103 844,47.625 z M 763.78125,49.3125 C 745.85397,50.173586 728.85532,57.207904 711.25,60.15625 C 707.51323,61.789934 708.9836,67.283914 713.03125,66.5625 C 722.61489,67.614521 732.3711,66.962665 742,67.25 C 750.46458,66.870619 758.7002,63.122209 766.78125,62.25 C 771.83111,63.660354 773.40034,55.816567 771.21875,52.53125 C 769.65452,50.094202 766.59494,49.018673 763.78125,49.3125 z M 1061.125,68.5625 C 1066.3342,70.400582 1072.4355,71.11584 1077.0625,73.9375 C 1079.8038,78.578016 1071.6098,79.90497 1069,77.5 C 1065.6567,75.301941 1063.0345,71.619258 1060.8438,68.65625 C 1060.9642,68.720964 1061.0208,68.543563 1061.125,68.5625 z M 609.84375,84.8125 C 605.53453,84.973321 603.23096,89.609823 601.53125,92.34375 C 596.76272,88.637415 586.78128,90.375898 587.28125,97.65625 C 587.43457,101.78515 592.02224,104.63875 593.84375,106.84375 C 591.7893,108.84571 582.23388,109.34263 586.13588,110.99856 C 599.3694,116.10565 612.96896,124.79665 627.75,121.125 C 635.38566,120.36111 643.24535,123.42051 647.34375,130.03125 C 658.47946,137.66974 672.80193,132.69302 685.03741,136.53452 C 699.71434,139.21497 714.89722,140.65906 729.34375,143.53125 C 733.27452,146.47265 738.33553,144.50334 741.875,142.4375 C 754.31133,141.17888 766.39065,152.33165 778.71875,146.1875 C 783.74181,140.09871 776.31681,132.33257 769.875,132.21875 C 760.19238,129.6995 748.71613,138.40892 740.625,130.3125 C 735.63843,126.1793 729.45531,130.43127 723.78125,129.25 C 713.26013,128.41066 701.88456,126.70472 692.3125,123.15625 C 695.81027,120.44365 694.55822,114.5581 690.15625,113.53125 C 676.27284,106.174 659.58947,106.86551 645.15625,101.6875 C 643.83611,98.128139 646.92238,92.765777 642.09375,90.71875 C 632.68351,84.397518 620.68916,85.031038 609.84375,84.8125 z M 541.53125,87.78125 C 535.53132,87.314496 533.33424,97.596134 539.84375,98.40625 C 551.28955,102.82847 562.21357,110.78852 574.875,110.59375 C 579.86863,110.67183 582.52476,104.76027 578.65625,101.375 C 573.42443,96.580085 566.23833,94.807173 560.125,91.40625 C 554.23131,89.058383 547.93941,87.491796 541.53125,87.78125 z M 700.40625,91.65625 C 693.59062,91.710862 691.77772,103.8999 699.3125,104.34375 C 708.90857,107.70298 720.55307,111.71138 729.84375,105.375 C 730.56053,97.499377 721.35726,96.052244 715.8125,94.09375 C 710.85317,92.463382 705.66133,91.394949 700.40625,91.65625 z M 1281.7188,104.84375 C 1267.0931,104.41465 1252.9529,111.1194 1238.9062,111.78125 C 1235.6341,106.19546 1227.6868,104.96694 1222.8125,109.125 C 1214.6889,112.7552 1204.8479,120.96513 1207.9062,130.9375 C 1210.4953,136.17734 1218.84,136.54751 1221.5312,131.34375 C 1229.5731,123.41455 1241.2616,124.14142 1251.6435,122.65362 C 1264.3429,120.32162 1277.8554,118.13786 1289.0312,111.9375 C 1291.6627,107.02712 1287.0922,104.30118 1281.7188,104.84375 z M 812.5625,108.625 C 804.72283,110.52513 800.49471,120.2956 791.8125,119.375 C 787.7765,119.76298 783.44454,126.26031 788.71875,128.09375 C 798.98931,131.97796 810.32902,130.37765 820.90625,132.71875 C 827.66759,132.99843 834.17775,130.04226 839.40625,126.1875 C 845.12104,125.81737 854.91072,123.97493 854.21875,116.4375 C 852.87858,109.33274 843.90662,111.47073 838.875,112.1875 C 829.86576,112.74047 821.22842,110.59502 812.5625,108.625 z M 1221.5625,134.15625 C 1214.3694,135.66293 1210.4429,143.01142 1203.5938,145.4375 C 1192.3064,150.71377 1177.662,146.31275 1167.4375,154.34375 C 1164.5725,157.66627 1168.4133,162.01265 1172.25,161.375 C 1193.41,160.28101 1215.6711,159.01809 1234.4062,148.1875 C 1239.6729,144.30473 1237.0122,135.00169 1230.4062,134.71875 C 1227.5397,133.92482 1224.5086,134.06641 1221.5625,134.15625 z M 1304.6875,139.6875 C 1288.3126,143.00236 1273.6823,151.42616 1258.4375,157.78125 C 1254.3977,158.63063 1250.8452,161.37951 1248.2812,164.21875 C 1240.6369,162.44028 1232.4171,154.21229 1224.5,159.90625 C 1222.7347,161.61911 1223.8143,164.47868 1224.125,166.15625 C 1209.8395,168.81518 1195.8334,177.39383 1181.0061,173.01457 C 1173.8559,171.89287 1163.0109,170.9944 1160.0625,179.4375 C 1159.7245,185.61359 1165.1703,193.47587 1171.7188,192.125 C 1177.1838,193.37049 1177.0071,201.65954 1183.25,201.5625 C 1190.6669,201.98724 1196.9775,196.8582 1204.4245,197.08932 C 1211.1108,196.32179 1218.7813,192.82353 1220.0312,185.59375 C 1224.0458,182.13855 1230.6161,182.36627 1233.4062,177.1875 C 1237.9363,173.7945 1242.7875,178.87549 1246.5625,181.0625 C 1248.5857,182.55313 1250.304,184.0468 1248,186.03125 C 1245.5375,190.31718 1248.9752,196.20658 1254.0914,195.03734 C 1268.3158,195.97847 1282.6153,196.44125 1296.8438,195.3125 C 1298.6675,188.6976 1291.5884,185.31327 1286.4375,184.15625 C 1278.9575,181.36285 1269.4891,178.5754 1264.0312,173.65625 C 1279.6365,173.03612 1294.9375,180.9723 1310.5625,177.21875 C 1312.9894,174.0864 1310.1695,170.58361 1308.5938,168.25 C 1315.56,159.63343 1309.1434,148.28981 1306.5,139.25 L 1305.5279,139.48464 L 1304.6875,139.6875 z M 991.34375,147.4375 C 994.05026,152.06176 986.43068,154.74794 987.71875,159.6875 C 987.70636,162.08254 989.00371,165.74456 985.1875,165.0625 C 975.02213,166.32524 963.95127,163.6332 954.5625,169 C 958.88822,174.62803 966.338,175.3635 971.94506,179.12489 C 982.75672,183.91831 997.26583,182.96699 1005.2188,173.59375 C 1003.8084,180.97504 1011.8851,184.58604 1017.825,185.13025 C 1026.416,186.81449 1034.8915,194.21847 1043.7812,191.46875 C 1047.5501,188.19848 1050.7997,182.66682 1056.5805,183.65029 C 1063.3461,182.80022 1072.0653,180.85312 1073.7812,173.0625 C 1069.4424,167.05636 1061.1929,169.62531 1055.1782,166.76032 C 1035.8268,162.77417 1014.7482,160.50858 999.13289,147.25188 C 996.14471,145.24542 992.74502,144.22455 989.28125,143.28125 C 989.96875,144.66667 990.65625,146.05208 991.34375,147.4375 z M 807.25,148.59375 C 799.80005,149.79086 789.56073,148.88251 785.5625,156.9375 C 789.31276,162.85374 797.19914,161.2901 802.5,164.4375 C 806.83374,166.4947 813.88976,167.09495 815.59375,161.375 C 819.26392,157.48074 818.56955,149.44261 812.3125,148.9375 C 810.65954,148.5485 808.94431,148.43179 807.25,148.59375 z M 1101.375,176.90625 C 1093.4394,177.20468 1090.0969,189.65558 1097.9062,192.9375 C 1105.8208,198.41244 1119.9554,191.82546 1118.7188,181.78125 C 1116.1285,175.22246 1106.7117,177.28862 1101.375,176.90625 z M 397.34375,184.78125 C 392.96705,185.7485 396.61808,191.01799 399.59375,191.46875 C 406.9428,194.89874 417.15258,195.55542 420.90625,203.96875 C 429.08763,210.64437 440.53051,209.95495 450.34375,212.78125 C 454.0325,214.1291 456.38723,209.38069 453.125,207.28125 C 442.44826,194.99379 426.75983,188.62239 410.875,186.53125 C 406.45913,185.37284 401.93138,184.61047 397.34375,184.78125 z M 1067.6875,190 C 1055.3766,190.84713 1049.111,205.18427 1036.625,205.46875 C 1030.3357,207.51513 1021.9328,208.37411 1019.0938,215.1875 C 1015.1073,218.48385 1006.7849,220.933 1007.7188,227.4375 C 1010.3635,232.61799 1017.3144,229.33533 1021.5938,228.71875 C 1028.8606,225.76261 1036.4572,225.89368 1044.0312,224.6875 C 1052.5404,222.51742 1058.5305,215.05909 1067.4062,213.65625 C 1063.436,221.39445 1054.7511,224.56454 1047.1875,226.96875 C 1042.7042,229.83442 1035.1325,233.65963 1036.8438,240.0625 C 1042.3012,247.58481 1052.7266,244.84806 1060.4062,247.65625 C 1075.1361,250.05176 1088.954,240.95924 1103.6562,242.53125 C 1106.4043,242.16272 1107.9645,238.94982 1109.0938,237.4375 C 1113.1808,240.65091 1121.392,236.72241 1118.3125,231.34375 C 1112.7265,220.70917 1100.0194,217.97873 1090.2812,212.875 C 1085.2021,206.71871 1086.5064,195.97434 1078.125,192.34375 C 1074.9749,190.52172 1071.3187,189.75285 1067.6875,190 z "
+ id="path2908" />
+ <g
+ id="g3846"
+ transform="translate(3.024571,16.9754)">
+ <path
+ style="opacity:0.2;fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 419.5,-6.375 C 421.22882,-3.9963323 423.2283,0.49181013 426.03125,0.96875 C 431.84272,-4.269848 440.69271,-0.13561456 447.5,-2.65625 C 463.23801,-1.5143351 477.37752,8.7935381 493.4375,7.40625 C 497.34809,7.3874556 497.78174,12.325237 495.03125,14.3125 C 493.02434,16.793469 489.79359,18.871979 487.78125,20.78125 C 496.21754,22.448185 505.77473,22.249489 513.96875,21.96875 C 512.20038,19.954942 508.46023,14.99889 512.3125,13.375 C 518.47423,14.770196 523.29891,24.04183 530.375,20.53125 C 534.89372,19.57653 538.65501,12.08641 532.03125,11.4375 C 521.54325,9.6525564 513.47936,2.0888735 506.40625,-5.4375 C 477.25,-6.0625 448.09375,-6.6875 418.9375,-7.3125 L 419.452,-6.4550071 L 419.5,-6.375 z M 783.96875,-1.75 C 777.55832,-1.3801577 771.88585,2.516958 766.6875,5.90625 C 780.52943,4.3711849 794.92886,3.1961208 808.19447,8.0627883 C 810.23236,8.5888873 814.69344,9.3732659 810.5,7.15625 C 802.6866,2.0026768 793.47115,-1.9186629 783.96875,-1.75 z M 982.125,9.96875 C 979.47963,9.1983977 974.38184,12.276077 978.21875,14.65625 C 993.63921,25.333727 1006.3552,42.801575 1026.0625,45.3125 C 1030.1584,46.789378 1036.1371,42.059015 1038.8438,46.5 C 1038.9848,50.764698 1037.8666,56.423764 1042.875,58.46875 C 1068.1331,69.584404 1095.9887,74.441529 1120.875,86.5 C 1144.3384,93.989645 1169.7461,93.362399 1194.0595,90.291575 C 1198.8028,89.799403 1211.5547,89.020062 1200.1567,89.126593 C 1182.6568,88.221243 1164.9999,90.5658 1147.5938,88.53125 C 1142.1098,88.252779 1138.134,84.596557 1134.6562,80.9375 C 1126.5773,78.91302 1117.3571,82.88001 1109.7188,78.28125 C 1103.1201,73.617592 1095.05,73.594673 1087.375,73.03125 C 1078.5298,71.764997 1076.3583,61.077642 1068.125,58.21875 C 1059.9669,54.499044 1050.8014,52.000493 1044.375,45.34375 C 1034.9969,41.262502 1024.1714,41.086221 1015.7812,34.625 C 1006.0275,29.004216 1000.2607,18.928128 991.90625,11.84375 C 989.03094,10.025391 985.44,9.7422145 982.125,9.96875 z M 613.28125,18.25 C 608.37154,18.153638 608.37379,24.430715 611.4375,27 C 613.8348,30.946482 619.42917,27.667483 623.15338,29.037511 C 633.03199,29.170913 643.26313,30.208247 652.9375,28.1875 C 644.63527,22.712307 634.04181,25.83468 625.1875,22.40625 C 621.41217,20.183862 617.89625,17.583036 613.28125,18.25 z M 598.15625,20.5 C 595.20775,20.732721 589.07598,27.185875 594.86472,28.004306 C 598.05671,30.498685 600.29352,29.509932 600.09375,25.78125 C 599.95304,24.311781 600.40456,20.314493 598.15625,20.5 z M 973.4375,38.40625 C 974.69623,43.999002 981.19506,47.340446 981.78125,52.90625 C 979.33491,56.317721 974.69234,51.537296 971.84375,50.8125 C 963.69001,47.310626 956.28781,41.353728 947.65625,39.375 C 942.6284,41.343029 937.04146,40.734591 932.03125,39 C 922.31425,41.320959 910.45645,39.184506 902.59375,46.25 C 900.3529,47.661699 900.20061,52.543756 903.875,50.96875 C 912.89381,49.425611 921.1866,42.955697 930.5,43.09375 C 933.52129,46.046833 927.38506,47.990341 925.46875,49.3125 C 912.38369,55.573818 899.42279,62.592882 885.65372,67.096848 C 885.14783,66.033785 883.25581,67.562167 880.90625,68.375 C 878.46036,69.550152 874.71567,70.183424 872.75,70.6875 C 878.50732,73.628909 885.45899,78.897402 891.5625,73.78125 C 894.90179,71.385092 896.98146,67.473916 901.59375,67.78125 C 908.39297,67.00538 919.24011,65.039192 922.25,73.21875 C 924.10435,77.952134 918.93878,83.132599 921.375,87.5 C 924.75287,88.968654 930.98961,87.010816 932.90625,86.53125 C 925.92824,83.37791 923.11173,74.528829 923.25,67.40625 C 925.76956,60.368306 935.08211,61.228709 941.1875,60.71875 C 959.98186,59.479845 975.80692,71.571203 991.48342,80.169205 C 997.88097,85.22765 1005.9998,86.515872 1013.8438,85 C 1017.9946,85.126354 1019.0813,90.256616 1023,91.34375 C 1032.9353,96.756904 1043.6368,102.47092 1055.125,102.59375 C 1057.4135,102.45766 1062.7785,100.51163 1061.4688,97.59375 C 1059.1436,97.184282 1053.8799,95.90454 1056.5938,92.5625 C 1062.3204,86.93273 1070.8519,88.804708 1077.1562,92.25 C 1081.4206,93.669992 1083.4411,98.965347 1088.5625,97.84375 C 1094.6948,97.447404 1102.424,96.277832 1106.9688,93.28125 C 1098.2467,87.88756 1087.5723,87.315165 1078.2812,83.71875 C 1074.8799,81.067266 1081.8107,78.664928 1079.375,76.28125 C 1073.1252,79.601588 1065.9152,87.533985 1058.2812,82.96875 C 1049.3324,77.383982 1045.5402,65.971936 1036.625,60.65625 C 1022.5829,58.51103 1007.9097,57.925158 994.125,54.71875 C 991.2964,51.393404 997.3084,51.933073 998.3125,51.46875 C 991.35298,45.661841 982.15147,40.572929 973.4375,38.40625 z M 886.28125,52.9375 C 879.8126,53.776494 872.06501,52.502607 866.5,55.59375 C 869.95385,59.317571 875.75258,59.276941 880.15625,61.40625 C 876.3571,62.609092 868.06293,63.601004 876.3125,63.3125 C 880.0181,64.288834 884.32113,60.814108 887.4375,63.28125 C 889.87111,61.491745 895.28623,57.415398 895.9375,53.75 C 892.91719,52.64639 889.46398,52.978642 886.28125,52.9375 z M 834.09375,53.28125 C 825.70777,54.644986 816.59492,57.874654 809.625,61.6875 C 816.99308,62.143757 824.90054,68.336592 831.625,62.34375 C 834.35817,60.775828 840.13428,57.182671 837,53.5625 C 836.08767,53.258281 835.07846,53.143001 834.09375,53.28125 z M 789.34375,54.375 C 783.7047,54.188723 779.27572,58.567152 774.65625,60.78125 C 783.8185,60.705486 793.1471,60.008706 801.75,57.03125 C 797.82696,55.364513 793.60322,54.281371 789.34375,54.375 z M 750.21875,54.9375 C 740.1819,55.840215 730.76667,60.09808 720.71875,61.625 C 730.52865,62.020058 740.31724,62.098095 749.4375,57.96875 C 751.4804,57.390411 756.48571,55.647219 756.5,55.25 C 754.45572,54.772088 752.30375,54.841949 750.21875,54.9375 z M 850.4375,84.75 C 850.36133,82.967874 850.48578,83.175168 850.4375,84.75 z M 851.21875,84.78125 C 851.21641,83.005251 851.33288,83.201609 851.21875,84.78125 z M 853.34375,84.96875 C 853.34444,83.143656 853.63143,82.791988 853.34375,84.96875 z M 853.8125,85.0625 C 854.12923,83.248092 854.11511,83.577632 853.8125,85.0625 z M 854.375,85.1875 C 854.30854,84.622066 855.19352,82.007709 854.375,85.1875 z M 854.75,85.3125 C 855.19102,83.565345 855.25946,83.829755 854.75,85.3125 z M 855.125,85.4375 C 854.73929,85.307637 856.67928,82.078822 855.125,85.4375 z M 855.5625,85.125 C 857.01248,83.804691 857.35751,85.94796 856.65625,85.875 C 853.91316,86.878947 856.41703,82.799466 855.5625,85.125 z M 848.09375,84.78125 C 838.06659,85.765434 826.74933,86.183046 818.4375,92.28125 C 824.28599,97.624671 832.97598,95.964637 840.125,97.9375 C 845.60913,98.708439 851.90593,99.578422 857.03125,98.90625 C 854.48311,97.3742 847.48166,100.008 848.5,95.5 C 854.09429,92.133117 861.37268,92.085213 867.3125,89.6875 C 869.54838,93.267955 860.1566,87.487643 858.47638,87.987171 C 855.0155,86.918531 851.55463,85.84989 848.09375,84.78125 z M 868.03125,90.90625 L 868,90.875 L 868.03125,90.90625 z M 939.65625,85.8125 C 935.43078,86.419418 940.5381,86.879858 942.09375,87.75 C 946.32608,90.221246 944.27397,87.634527 942.03125,86.15625 C 941.34451,85.702064 940.44905,85.680805 939.65625,85.8125 z M 857.875,91.3125 C 858.4595,89.58188 858.40125,89.884022 857.875,91.3125 z M 604.28125,90.21875 C 602.98872,90.428026 597.92912,90.079287 600.53125,92.28125 C 603.58437,94.92615 604.2977,100.15884 609.26359,99.624612 C 614.50003,100.14956 621.82201,99.414563 624.25,105.4375 C 626.45328,112.8654 636.37199,110.59154 642.25,111.03125 C 651.75388,110.39883 661.00367,112.81884 670.09375,115.28125 C 661.93162,111.94455 653.18682,111.07092 644.5,110.1875 C 636.69205,108.2956 628.79852,105.22898 622.0625,101.25 C 621.36828,97.733951 627.25966,99.514077 629.1875,97.1875 C 633.19804,95.517107 627.20455,93.564874 625.65625,93.09375 C 618.86114,90.986437 611.5296,90.050125 604.28125,90.21875 z M 953.59375,92.6875 C 957.24652,94.190641 962.59657,96.435175 965.71875,96.09375 C 961.60039,94.183216 957.3816,92.913396 952.84375,92.375 L 953.59375,92.6875 z M 535.25,93.28125 C 530.27287,93.174394 536.50768,95.003906 537.98365,95.795467 C 542.55651,98.263858 549.43109,99.04177 552.78125,102.46875 C 555.32901,105.10331 560.83449,104.09076 564.3403,104.95805 C 565.55585,104.43543 560.01767,101.8672 558.3125,100.875 C 551.05093,97.444354 543.37277,93.440231 535.25,93.28125 z M 584.84375,95.9375 C 581.37613,97.196797 586.76824,100.92563 588.28125,101.875 C 592.86182,104.80043 598.21519,106.53593 603.59375,107.625 C 597.18221,104.22527 592.33268,96.869471 584.84375,95.9375 z M 896.625,96.125 C 888.74005,96.121426 884.74031,105.46009 876.5625,104.59375 C 871.04527,104.68525 862.24641,104.18831 858.75,105.875 C 864.56094,109.61394 873.61636,105.51714 877.875,111.90625 C 880.74788,118.13929 888.58166,115.06219 893.82809,116.9263 C 901.48452,118.7388 909.45699,120.14738 916.6875,122.9375 C 919.18733,126.14651 912.80865,127.62539 913.375,130.40625 C 921.53645,130.67341 929.80524,130.30187 937.8125,132.25 C 942.31621,133.28842 944.11845,128.68601 947.3125,126.9375 C 951.46143,127.49766 954.27947,131.95012 958.59375,132.75 C 965.45228,135.12667 973.60935,136.78083 980.53125,135.15625 C 977.94784,131.71034 972.23,131.22582 970.3125,127.75 C 969.65469,123.72589 976.06776,128.92482 971.5625,124.0625 C 966.37015,118.39722 962.94794,109.35145 954.25,108.3125 C 943.45222,105.14378 931.86546,107.29228 920.9375,105.28125 C 915.73108,104.53128 915.09565,96.994946 909.40625,98 C 905.16241,97.144479 900.98378,95.855775 896.625,96.125 z M 694.375,97.28125 C 692.86535,97.052296 688.14998,98.458872 692.0625,99.25 C 698.56631,101.99691 708.12085,103.71389 713.9375,102.8125 C 707.79461,100.18894 701.14138,97.407625 694.375,97.28125 z M 600.59375,100.875 C 600.7267,100.88949 600.38145,100.79678 600.59375,100.875 z M 600.625,100.875 C 602.17867,102.26367 604.35628,101.46874 600.625,100.875 z M 594.3125,110.46875 C 590.37772,110.36305 592.23019,111.36762 594.84375,112.5625 C 607.00433,120.18419 623.17221,111.65801 635.375,119.0625 C 639.76875,122.88232 643.05766,129.22686 649.875,128.65625 C 671.60166,128.65865 692.84161,134.49519 714.25,136.84375 C 718.37858,135.36367 722.05082,137.91874 725.46875,139.65625 C 728.45722,138.96291 731.51054,135.5925 727.5625,133.9375 C 714.34787,136.52094 700.69914,132.71413 687.59375,130.65625 C 678.94789,128.85814 670.84958,124.80481 661.75,126.21875 C 655.46008,126.85828 649.01349,125.57464 644.21875,121.46875 C 635.83085,116.30676 626.28827,115.51683 616.89771,113.78857 C 609.45915,112.03716 602.00361,110.07063 594.3125,110.46875 z M 1269.875,110.53125 C 1257.1237,110.79687 1245.1638,115.4072 1232.8438,117.71875 C 1228.2818,118.49612 1224.599,115.42874 1222.375,111.96875 C 1214.8945,113.63069 1206.773,118.46993 1203.6875,125.8125 C 1202.8881,127.70413 1203.7054,130.55126 1206.1875,128.53125 C 1213.4182,125.1256 1219.6365,117.80039 1228.5938,118.9375 C 1242.8564,118.36571 1256.8642,113.8371 1270.6562,110.46875 L 1269.875,110.53125 z M 804.0625,114.0625 C 799.57918,115.35964 797.96215,120.94677 793.125,122 C 790.18276,123.42688 783.62017,124.65966 791.0914,124.79861 C 800.89244,125.44481 811.37808,128.78084 820.9375,125.75 C 824.66911,122.35538 828.90657,119.08565 834.375,119.84375 C 836.29098,119.56633 839.44955,119.22755 839.90625,116.9375 C 829.12753,117.25311 817.8776,119.38323 807.75,114.59375 C 806.5137,114.23944 805.34697,113.9104 804.0625,114.0625 z M 753.96875,137.25 C 752.15246,137.43449 743.32293,138.72046 748.34375,139.5625 C 753.98173,140.72244 760.41132,144.12357 766,142 C 765.08743,138.39676 759.2375,137.83651 756.09375,137.28125 C 755.38542,137.26713 754.67708,137.1679 753.96875,137.25 z M 1216.1562,139.59375 C 1206.3528,140.40903 1201.6922,151.29692 1191.7812,151.96875 C 1184.8149,153.42043 1177.7667,154.13697 1170.7812,155.28125 C 1182.0949,154.69612 1193.3826,154.25596 1204.152,150.54826 C 1210.3538,148.10605 1218.6658,147.74985 1222.9688,142.34375 C 1222.4609,139.82949 1218.1883,139.70663 1216.1562,139.59375 z M 907.46875,144.625 C 904.15829,144.68303 900.8644,145.04109 897.5625,145.25 C 901.39547,149.33064 906.97548,152.3132 912.375,149.5625 C 917.45666,147.99501 922.751,147.26702 927.9375,146.09375 C 921.28755,144.53521 914.31218,144.5541 907.46875,144.625 z M 1291.0625,146.6875 C 1279.161,150.24397 1267.2009,154.16462 1257.2188,161.625 C 1253.118,164.09358 1246.8961,161.92833 1244.7812,167.375 C 1239.4068,172.80776 1231.5957,166.70477 1226.0312,164.8125 C 1224.5335,164.08416 1218.0057,161.98146 1221.875,164.875 C 1224.693,167.66174 1226.953,170.50857 1231,171.15625 C 1236.9751,174.14575 1244.368,177.41131 1247.0312,183.90625 C 1247.9442,186.41498 1243.6282,188.36311 1244.3438,189.625 C 1255.447,190.91876 1266.923,189.64502 1278.0625,190.4375 C 1272.0116,186.96914 1264.9538,186.16118 1258.8438,183.21875 C 1254.9593,180.33324 1249.1962,174.99871 1251.8438,169.71875 C 1256.5598,166.03135 1263.5339,169.39787 1268.9062,169.40625 C 1277.2083,170.51629 1287.8525,172.77826 1294.7188,172.96875 C 1289.9254,170.24703 1283.7638,171.44209 1279.1562,168.8125 C 1277.8967,164.94995 1284.0261,165.37524 1286.3438,164.78125 C 1289.4384,163.40033 1294.8144,166.14269 1296.75,162.9375 C 1297.9803,157.14276 1295.5793,151.35398 1293.875,145.875 C 1292.9375,146.14583 1292,146.41667 1291.0625,146.6875 z M 988.90625,153.3125 C 984.25621,155.16619 981.91162,162.45143 986.6875,165.375 C 999.33212,170.85595 1014.3161,166.05861 1027.125,170.84375 C 1030.1178,173.88089 1024.4769,175.82366 1022.0938,175.9375 C 1016.2673,177.14013 1010.3333,177.75754 1004.375,178.1875 C 1013.488,180.89325 1022.6449,183.92243 1031.3438,187.34375 C 1033.8311,184.84908 1035.5936,180.68007 1039.7188,179.90625 C 1045.6841,178.40982 1051.9146,177.8118 1057.4062,175 C 1040.8716,171.44718 1024.1409,167.84925 1007.6562,164 C 1000.263,162.51964 995.3142,156.04824 988.90625,153.3125 z M 798.1875,154.0625 C 794.55205,154.27791 789.29626,155.02084 786.875,156.09375 C 791.11368,157.38012 795.88322,160.71496 800.21875,159.75 C 801.45889,158.52878 805.92044,154.65364 801.65625,154.21875 C 800.50717,154.07144 799.34589,153.96971 798.1875,154.0625 z M 984.40625,169.5 C 976.59718,170.12756 967.79467,171.35823 960.625,171.375 C 968.27847,177.25253 980.21463,178.16517 988.34375,173.15625 C 991.45972,170.11442 986.80365,169.07551 984.40625,169.5 z M 1216.4688,171.75 C 1204.1488,172.49702 1193.447,181.39748 1180.625,179.28125 C 1172.7955,179.43241 1163.8013,176.0031 1156.5312,179.53125 C 1155.6432,182.27867 1158.8364,184.89356 1160.3438,186.6875 C 1167.0321,184.55152 1170.6567,191.81971 1173.8125,196.0625 C 1178.3143,197.00682 1182.5926,192.75387 1187.2188,192.59375 C 1193.1584,191.32014 1201.7,192.24991 1205.125,186.21875 C 1202.2072,186.73576 1200.6936,183.12618 1203.875,182.25 C 1209.1544,179.40696 1216.3105,178.38067 1220.1562,173.5625 C 1219.4994,171.46065 1218.8206,171.51379 1216.4688,171.75 z M 1096.3438,182.40625 C 1094.1136,182.41455 1087.6137,183.03196 1090.2188,186.59375 C 1092.5363,189.98005 1097.238,190.52275 1100.125,187.5625 C 1101.6099,186.67283 1107.3881,183.09475 1102.6562,182.90625 C 1100.6047,182.51442 1098.4787,182.29745 1096.3438,182.40625 z M 412.34375,194.78125 C 415.08195,196.6208 413.68637,201.00181 417.78125,201.4375 C 423.19203,203.71242 428.9326,204.80878 434.6875,205.96875 C 428.62814,199.94923 420.36927,195.99245 412.34375,194.78125 z M 1058.9688,195.625 C 1048.7335,196.19225 1044.4085,208.32401 1034.25,209.4375 C 1027.9604,211.26835 1020.3093,211.67326 1016.1562,217.21875 C 1013.1901,219.67712 1009.9919,221.92942 1006.9062,224.28125 C 1015.0571,221.33618 1023.617,220.88253 1031.9688,219.5 C 1042.2153,216.97269 1050.049,208.38497 1060.0625,205.4375 C 1065.7224,205.37435 1063.9686,212.76666 1062.5625,216 C 1059.1494,227.52421 1045.0622,228.99064 1036.2812,234.9375 C 1034.8612,235.78823 1030.215,238.50048 1034.5312,238.9375 C 1041.3681,240.12363 1048.3778,241.64032 1055.0312,242.9375 C 1067.6613,241.83566 1079.9119,236.61253 1092.8438,237.125 C 1089.3245,233.93505 1082.5795,232.83559 1081.1875,227.90625 C 1083.3154,224.24466 1088.7282,228.19387 1091.8565,228.49905 C 1095.4094,229.46014 1101.1259,232.2244 1103.5938,232.375 C 1097.4443,225.52875 1089.0406,221.45456 1080.3438,219.375 C 1070.6364,214.87946 1075.033,199.33104 1064.1875,196.28125 C 1062.4887,195.69528 1060.76,195.43057 1058.9688,195.625 z "
+ id="path3848" />
+ <path
+ style="opacity:0.2;fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 417.71875,-7.9375 C 420.10161,-4.5654354 421.8367,0.51767772 426.03125,1.84375 C 431.56903,-3.5117235 440.40073,0.63122462 447.1875,-1.875 C 457.72785,-1.5347597 467.36478,3.9810692 477.5625,6.34375 C 482.89035,8.281612 488.58562,7.9597649 494.09375,8.3125 C 497.41218,8.9389897 495.94397,12.946302 494.03125,14.34375 C 492.0774,16.898933 488.10694,18.743791 486.5,21 C 495.24919,23.751223 505.05178,22.59213 514.21875,22.84375 C 517.30468,23.099543 513.02723,20.503834 512.75,19.15625 C 511.43702,17.868375 510.28428,13.107495 513.5,14.4375 C 518.69932,17.202117 524.06479,24.52297 530.625,21.25 C 533.70889,19.974538 538.93004,15.45199 535.375,12.125 C 530.17581,9.5197204 523.77233,9.0438329 519.09375,5.15625 C 514.15518,2.1060086 510.7837,-3.4389022 505.93767,-6.203549 C 476.56294,-6.7297028 446.9371,-7.6716605 417.71875,-7.9375 z M 783.90625,-2.5 C 776.42217,-1.8882023 769.89534,2.7036271 764.0625,6.9375 C 778.27555,5.5671816 793.11507,3.4489804 806.83182,8.5448323 C 808.96313,8.7898793 812.28352,10.11762 814.03125,9.15625 C 805.94084,2.0910908 794.73784,-2.5244814 783.90625,-2.5 z M 982.0625,9.21875 C 979.47079,8.7482798 974.23304,11.041525 976.6875,14.15625 C 983.31483,19.131193 989.76677,24.948004 996.0809,30.411901 C 1006.5806,39.115561 1019.9186,48.796548 1034.3125,45.4375 C 1037.176,44.348773 1039.3084,47.200907 1038.1562,49.875 C 1036.7027,55.521515 1041.6324,59.684433 1046.5625,61 C 1070.8547,70.528077 1097.0366,75.987418 1120.5938,87.1875 C 1137.889,92.732689 1156.487,93.891853 1174.5901,92.894581 C 1189.616,91.40167 1205.8325,89.965308 1220.1562,88.8125 C 1198.1002,87.925777 1176.0227,88.550987 1153.9688,88.46875 C 1147.2617,88.222693 1139.8278,86.901566 1135.9062,80.875 C 1130.0386,77.509843 1122.7587,81.29172 1116.375,79.625 C 1108.7595,78.37231 1102.6121,72.123486 1094.5,72.78125 C 1088.3363,73.277873 1081.6786,71.582052 1078.4517,65.965926 C 1070.8484,54.475444 1054.7817,55.097257 1045.6875,45.375 C 1038.029,40.591322 1028.0645,41.395839 1020.3125,36.4375 C 1009.3632,31.038573 1002.0998,21.002165 993.90625,12.375 C 990.69906,9.5288746 986.21044,8.8933478 982.0625,9.21875 z M 613.25,17.5 C 609.07814,17.30481 607.04298,22.328402 609.5625,25.5625 C 610.94483,27.978773 612.84745,30.601042 616.03125,29.5625 C 628.42908,29.584529 641.24993,31.394478 653.40625,28.8125 C 655.32349,27.630416 650.98721,26.416587 650.09375,25.96875 C 642.50314,22.513618 633.7661,24.616845 626,21.96875 C 621.94563,19.745399 618.20442,16.763246 613.25,17.5 z M 598.15625,19.75 C 594.97388,20.517044 590.7305,23.953734 591.96875,27.4375 C 594.07481,28.861921 597.48104,29.968247 599.625,30.34375 C 600.92916,27.320865 602.01831,22.044668 599,19.78125 C 598.71965,19.757177 598.43665,19.671494 598.15625,19.75 z M 972.96875,37.65625 C 972.04354,40.265743 975.5243,43.1974 976.59375,45.46875 C 977.68615,47.954512 981.77888,50.177753 980.84375,53.15625 C 976.85182,53.971421 973.23078,49.949619 969.52695,48.73883 C 962.21166,45.612871 955.68394,40.353742 947.9375,38.625 C 944.10493,39.647646 939.94302,40.5931 935.875,39.25 C 929.04626,37.044198 921.85989,40.202216 914.8916,40.535011 C 909.29148,41.071322 901.5129,43.206647 900.1875,49.53125 C 900.1502,53.447226 905.31766,51.412637 907.46875,50.84375 C 915.07118,48.797557 922.17268,43.979124 930.125,43.75 C 931.96693,45.874246 927.15458,47.161461 925.84158,48.234139 C 913.1115,54.672488 900.11902,60.9931 886.80953,66.102385 C 886.68498,64.465505 891.47482,61.544005 893.27023,59.24101 C 894.3905,57.610076 897.49552,55.461625 896.65625,53.34375 C 889.20656,50.748518 880.73476,52.866978 872.9375,53.0625 C 870.78904,53.601053 866.03962,53.057052 865.78125,55.90625 C 868.65075,59.401274 873.61783,59.694012 877.59375,61.28125 C 872.91543,62.550401 868.06715,63.106885 863.25,63.5625 C 870.85389,64.26016 878.73979,64.308326 886.125,63.15625 C 888.00319,65.176773 883.22128,66.318202 882,67.125 C 878.41427,68.784784 874.31816,69.770859 870.5625,70 C 875.11564,73.008773 880.46846,76.318539 886.09375,76.78125 C 890.76732,76.373345 894.43063,72.512067 897.5,69.34375 C 904.50025,68.2467 912.92757,65.984061 919.3125,70.0625 C 924.26328,74.098342 920.30393,80.275938 919.96875,85.3125 C 919.46429,89.999783 925.65008,88.849148 928.53125,88.28125 C 933.73396,86.776247 939.29254,86.543427 944.10204,89.39259 C 951.75787,92.02949 959.29306,97.717907 967.65625,96.71875 C 965.3582,94.286103 960.34892,93.294116 956.75,92.25 C 952.43683,91.5431 947.3611,91.879395 944.72741,87.527588 C 942.72208,84.354721 938.92297,84.823994 935.9375,86.03125 C 929.03346,86.516952 925.90932,78.508298 924.5,72.96875 C 922.68835,69.01708 924.31349,63.964443 928.875,63 C 940.18126,60.228447 952.61551,60.66193 963.21875,65.78125 C 975.86633,70.887886 987.11626,79.265262 999.25,85.125 C 1004.3401,87.54732 1009.974,85.434887 1015.2812,85.96875 C 1017.8719,87.672756 1019.5106,90.713946 1022.5938,91.96875 C 1032.295,97.388103 1042.8218,102.68064 1054.0308,103.41165 C 1057.3538,103.39108 1063.0158,101.56108 1062.4375,97.53125 C 1061.0652,95.512497 1055.6666,96.9447 1056.8438,93.40625 C 1060.7315,89.627617 1066.6795,88.550916 1071.6875,90.78125 C 1076.3921,92.121704 1080.4056,95.005031 1084.0625,98 C 1092.1402,99.560301 1100.7141,97.228435 1108,93.90625 C 1108.3031,91.991492 1104.3188,91.351321 1103.0625,90.375 C 1095.383,87.085409 1086.8338,85.874696 1078.9375,83.28125 C 1076.0724,80.797296 1082.8599,78.6058 1080.1562,75.78125 C 1077.2585,75.029126 1074.7439,78.916417 1072.2188,80.03125 C 1067.9045,83.377689 1061.1844,85.436628 1056.8438,81.03125 C 1049.3019,75.129487 1045.4541,65.46704 1037.5,60.15625 C 1023.3076,57.708106 1008.5842,57.192197 994.5625,54.125 C 993.23701,51.187829 998.78394,53.625079 999.40625,51.75 C 993.59106,45.408732 984.85744,41.969483 977,38.5 C 975.71594,38.059141 974.35986,37.379595 972.96875,37.65625 z M 834,52.53125 C 824.79433,54.250219 815.13011,57.216215 807.28125,62.3125 C 815.01327,61.637229 822.86454,68.877748 830.125,64.0625 C 833.74529,61.778181 840.42397,58.862247 838.1875,53.53125 C 837.21566,52.401375 835.36569,52.439448 834,52.53125 z M 789.28125,53.625 C 781.59866,53.854392 775.89468,60.180535 769.03125,63.03125 C 766.64294,64.834331 762.53051,66.120558 761.78125,69.09375 C 766.97837,65.905756 771.53886,60.284306 778.34375,61.40625 C 786.79406,61.195668 795.99854,60.437949 803.46875,56.9375 C 799.00676,54.921581 794.21847,53.533368 789.28125,53.625 z M 750.15625,54.1875 C 739.0783,55.455306 728.44787,59.785176 717.4214,61.58747 C 709.05605,62.893213 720.37269,62.211077 723.3125,62.375 C 731.24841,62.532013 739.22401,62.920618 746.65625,59.6875 C 750.29724,58.033092 755.58289,57.537883 758.40625,55.15625 C 755.99801,53.814671 752.8248,54.167132 750.15625,54.1875 z M 850.4375,84 L 850.40625,84 L 850.43747,83.25065 L 850.4375,83.25 L 850.4375,84 z M 851.25,84.03125 C 850.70541,84.073025 851.85474,82.032819 851.25,84.03125 z M 853.40625,84.21875 C 852.75897,84.343284 854.13831,82.228272 853.40625,84.21875 z M 854.53125,84.4375 L 854.46875,84.4375 L 854.68712,83.719995 L 854.6875,83.71875 L 854.53125,84.4375 z M 854.96875,84.59375 C 854.42317,84.637089 856.06129,82.684662 854.96875,84.59375 z M 848.0625,84.03125 C 837.88764,84.895051 826.96531,85.659147 818.21875,91.34375 C 816.3904,93.539899 821.19719,94.7532 822.4375,95.59375 C 826.77494,97.735903 831.97517,96.696588 836.64574,98.156394 C 844.11506,99.074391 852.03158,101.02846 859.4375,99.125 C 856.44215,96.879391 852.02803,98.383496 849.0625,96.84375 C 849.06391,94.161738 853.92695,94.653145 855.8125,93.59375 C 859.69436,92.827381 864.22165,91.030212 867.78125,90.65625 C 866.49343,90.751743 861.32509,88.424837 858.81678,87.750648 C 855.23202,86.510849 851.64726,85.271049 848.0625,84.03125 z M 868.03125,90.90625 L 868,90.875 L 868.03125,90.90625 z M 855.375,84.75 C 854.76807,84.524213 856.54539,83.134725 855.375,84.75 z M 855.65625,84.875 C 855.08189,84.691562 857.05495,83.367776 855.65625,84.875 z M 855.78125,84.96875 C 856.68562,84.335158 855.47051,84.937726 855.78125,84.96875 z M 856.03125,85.21875 C 856.62019,84.830619 858.775,86.042004 856.03125,85.21875 z M 856.71875,85.6875 C 855.52509,86.317082 855.95443,84.515809 856.71875,85.6875 z M 856.65625,85.875 L 855.94788,85.62861 L 855.9375,85.625 L 855.96875,85.59375 L 856.65625,85.875 z M 604.21875,89.46875 C 602.70032,89.71652 597.18365,89.359686 599.40625,92.09375 C 601.23652,94.452406 603.56111,96.555776 604.5,99.46875 C 609.64123,101.35789 615.702,99.713214 620.59375,102.25 C 624.2667,104.4777 624.04604,110.54359 629.0625,111.03125 C 639.9179,112.90731 651.29042,110.29543 661.8912,113.9948 C 667.54076,115.48215 673.20598,116.85223 678.90625,117.90625 C 668.81525,113.60884 658.13644,110.11322 647.03125,109.875 C 638.52714,108.49339 630.28688,104.76408 622.75,100.9375 C 622.81283,98.764406 626.90511,100.02295 628.4375,98.46875 C 630.10143,97.980085 632.99383,95.784017 630.40625,94.4375 C 622.52804,90.230302 613.03828,89.483102 604.21875,89.46875 z M 858.125,90.59375 C 857.5769,90.632345 859.29188,88.772861 858.125,90.59375 z M 535.15625,92.53125 C 533.69138,92.621429 529.38848,92.948517 532.75,94.25 C 538.86012,97.541061 546.3776,99.248673 552.03125,102.53125 C 552.87931,105.3265 557.43815,104.44065 559.6875,105.25 C 561.8515,105.28047 565.5303,106.34554 566.90625,105.5625 C 558.81367,99.119073 548.72534,95.162399 538.75,92.75 C 537.56938,92.593179 536.34568,92.355012 535.15625,92.53125 z M 584.75,95.1875 C 581.15823,95.726254 583.75307,100.1208 585.875,101.0625 C 591.70015,105.48325 598.96179,107.82985 606.125,108.6875 C 600.09929,104.59961 594.79052,99.31383 588.25,95.96875 C 587.11525,95.537312 585.99548,95.023441 584.75,95.1875 z M 896.53125,95.375 C 888.86683,95.192991 885.05821,104.09879 877.3125,103.8125 C 870.64198,103.98621 862.2345,103.37061 856.65625,105.40625 C 861.52642,109.40112 868.41563,107.96879 874.125,109.59375 C 877.96167,111.33658 878.77749,117.23135 883.90625,116.65625 C 894.88059,116.84336 905.60934,120.59655 915.96875,123.28125 C 918.1416,126.25675 911.25499,127.70419 912.65625,130.84375 C 918.70384,132.27368 925.447,130.447 931.67832,131.96072 C 936.45178,133.31264 943.05483,134.11177 945.875,128.8125 C 948.66676,125.46084 951.56733,131.06038 954.375,131.65625 C 962.57274,135.60715 972.42846,137.79959 981.375,135.75 C 981.37736,133.51416 977.73658,132.26325 976.0625,131 C 974.55186,129.42938 970.54641,129.51835 971.0625,126.71875 C 972.36511,126.99218 976.26262,129.21066 974.28125,126.53125 C 970.14007,121.28663 966.39923,115.5009 961.8125,110.78125 C 950.42802,104.02512 936.40159,106.06029 923.6875,105.15625 C 918.92329,104.97713 916.23896,100.93362 913.34375,97.84375 C 907.76291,97.104342 902.28511,95.161362 896.53125,95.375 z M 694.3125,96.53125 C 693.02014,96.662304 688.99842,96.842068 689.71875,98.875 C 697.63441,102.87045 707.20349,104.57029 716.125,103.4375 C 710.53308,99.748537 703.26719,97.704023 696.53125,96.59375 C 695.79399,96.537303 695.05225,96.45321 694.3125,96.53125 z M 596.9375,99.5 C 598.71706,100.18699 601.52421,103.29213 603.3125,102.25 C 603.66333,99.246488 598.49171,100.16556 596.46875,99.1875 L 596.9375,99.5 z M 594.25,109.71875 C 592.75939,109.89594 587.00194,110.18055 590.65625,111.25 C 596.29379,114.71958 602.47217,117.1537 609.25,116.6875 C 618.45487,117.32551 629.96174,114.24627 637.125,121.625 C 640.26642,126.2711 645.19239,130.03218 651.125,129.46875 C 672.18547,129.68047 692.80345,134.98081 713.59375,137.625 C 717.59386,136.54409 721.41968,137.72656 724.5625,140.21875 C 727.2326,141.09104 728.92278,137.7919 731.0625,136.84375 C 729.87546,134.42195 727.70964,132.01953 724.78125,133.59375 C 714.80562,135.19858 704.50868,132.48319 694.5625,131.25 C 686.79807,130.2879 679.36559,127.37524 671.85078,125.67877 C 663.27904,124.41289 653.03507,127.88152 646,121.65625 C 638.04159,116.70337 628.73991,114.56518 619.6104,113.6241 C 611.25606,111.7473 602.91396,109.29261 594.25,109.71875 z M 1271.2812,109.6875 C 1258.8689,110.15105 1246.9463,113.44437 1235.0625,116.6875 C 1230.4606,117.89091 1225.4043,116.22639 1223.3438,111.78125 C 1220.7586,110.01559 1217.3658,113.01607 1214.8438,113.90625 C 1209.5484,117.08796 1202.0458,121.6392 1202.875,128.84375 C 1203.9379,131.55857 1207.9662,128.244 1209.625,127.53125 C 1215.304,124.13219 1220.5537,119.03217 1227.6562,119.71875 C 1241.1791,119.48988 1254.1953,115.17993 1267.3225,112.20041 C 1269.6785,111.55161 1273.5408,110.50022 1275.0312,109.75 C 1273.7926,109.61919 1272.5272,109.65872 1271.2812,109.6875 z M 804.0625,113.3125 C 799.39479,114.31486 797.64959,120.18043 792.8125,121.3125 C 789.84082,122.71916 786.11576,123.70269 783.375,124.59375 C 795.33869,125.60355 807.58645,128.89088 819.53125,127.15625 C 823.98053,125.61973 826.69688,120.17393 832.09375,120.65625 C 835.03368,120.6377 840.51504,120.44108 840.59375,116.5625 C 832.63982,115.25471 823.66822,118.55439 815.53125,116.15625 C 811.64642,115.50775 808.04808,113.21174 804.0625,113.3125 z M 753.9375,136.5 C 750.37007,136.66267 747.00288,138.18969 743.46875,138.84375 C 750.82881,140.66618 758.39467,144.51978 766.0625,142.96875 C 768.59164,140.85499 763.91649,138.36949 762.09375,137.84375 C 759.48958,136.89971 756.71248,136.37112 753.9375,136.5 z M 735.03125,137.78125 C 736.8587,138.22364 735.06306,137.62269 735.03125,137.78125 z M 1216.125,138.84375 C 1206.2734,139.48356 1201.4709,150.55237 1191.625,151.21875 C 1182.3757,153.46012 1171.1649,153.48402 1162.8125,156.5 C 1172.3981,155.65871 1182.1013,155.78309 1191.6119,154.36025 C 1201.7993,151.88891 1212.6997,149.91156 1221.9375,144.75 C 1224.6632,143.48704 1223.8584,139.98487 1221,139.625 C 1219.4573,139.10046 1217.7712,138.73788 1216.125,138.84375 z M 907.46875,143.875 C 903.49009,143.94765 899.53418,144.42512 895.5625,144.625 C 899.82566,148.17066 904.89617,153.30686 910.9375,150.75 C 917.46011,148.59882 924.40659,147.92423 930.875,146.09375 C 923.36475,143.80633 915.30579,143.78515 907.46875,143.875 z M 1293.9062,145.09375 C 1281.3182,148.88319 1268.1386,152.5291 1257.5938,160.59375 C 1253.5299,163.49928 1246.7037,161.04181 1244.4688,166.5625 C 1240.7456,171.27254 1233.9969,167.44583 1229.7188,165.59375 C 1226.5479,164.34763 1222.3866,161.8825 1219.1875,162.875 C 1220.7338,165.80839 1224.388,167.22811 1225.8125,170.1875 C 1233.4729,172.53123 1241.4605,176.46136 1246.0625,183.15625 C 1247.5652,186.1401 1242.9967,187.91422 1242.875,189.96875 C 1255.8195,192.37304 1269.2292,189.65916 1282.25,191.71875 C 1275.5275,187.98791 1267.9898,185.4599 1260.6562,183.375 C 1256.4105,180.85624 1251.4198,176.491 1251.9688,171.0625 C 1253.9677,167.14564 1259.6457,169.50274 1263.0312,169.34375 C 1274.5913,170.42473 1286.0089,173.85958 1297.625,173.75 C 1292.4985,169.96179 1285.6608,170.4016 1279.9062,168.53125 C 1278.6687,165.9861 1283.5569,166.19005 1284.9375,165.71875 C 1288.7907,164.58875 1293.4309,166.12391 1296.9062,164.1875 C 1299.473,158.49536 1296.3803,151.95337 1294.8125,146.34375 C 1294.4037,146.17359 1294.7273,144.44879 1293.9062,145.09375 z M 988.90625,152.1875 C 985.83856,154.49541 982.2502,157.54606 983.46875,161.875 C 984.88654,168.29914 993.26507,168.02235 998.40625,168.71875 C 1007.7916,169.72432 1017.8944,168.21038 1026.8125,171.53125 C 1028.5565,174.17993 1023.5717,174.81488 1021.9375,175.1875 C 1015.3187,176.73698 1008.3711,176.90553 1001.625,177.8125 C 1010.9546,181.65201 1021.1723,183.51414 1030.2812,187.96875 C 1033.9146,188.83536 1033.9147,183.1537 1036.9062,182.09375 C 1043.3281,178.5697 1051.2299,179.36196 1057.6562,175.71875 C 1059.9149,174.70717 1059.9515,174.1113 1057.1875,174.21875 C 1041.2045,170.76323 1025.1337,167.13021 1009.1875,163.6875 C 1001.0697,162.16698 995.87581,155.8008 988.90625,152.1875 z M 798.125,153.3125 C 793.1554,153.62275 787.83546,154.62746 783.4375,156.1875 C 789.30003,156.71453 794.57252,161.40374 800.3125,160.75 C 801.51568,159.05332 805.8344,156.40329 803.65625,154.15625 C 801.97072,153.27687 799.99272,153.22295 798.125,153.3125 z M 984.34375,168.75 C 975.49849,169.44948 966.68778,170.89031 957.78125,170.5 C 963.50534,174.9168 970.32606,177.67592 977.71875,177 C 982.06184,176.59702 988.77555,176.27042 990.09375,171.25 C 989.96859,168.41155 986.33923,168.76534 984.34375,168.75 z M 1216.4062,171 C 1204.6668,171.55026 1194.6712,179.91295 1182.5938,178.625 C 1174.0998,178.67968 1165.1432,175.70323 1156.9062,178.3125 C 1153.523,180.27235 1157.3669,184.50865 1158.9688,186.40625 C 1160.5114,188.44562 1163.793,186.02796 1165.9062,187.9375 C 1170.0589,189.63902 1170.4868,195.34258 1174.375,197.09375 C 1180.1624,196.48812 1185.5226,192.6041 1191.6527,192.70843 C 1196.6188,192.14304 1203.6837,191.48981 1205.875,186.25 C 1205.7172,184.49926 1201.4453,186.05017 1203.0312,183.65625 C 1208.6553,180.09915 1216.6396,179.32269 1220.9062,173.90625 C 1220.4112,172.24705 1220.2427,170.19366 1217.8125,170.96875 C 1217.3437,170.97915 1216.8741,170.94792 1216.4062,171 z M 1096.3125,181.65625 C 1093.7586,181.81897 1088.0476,182.06687 1088.9375,185.875 C 1090.5854,189.55627 1096.0735,192.03964 1099.3438,188.90625 C 1101.3,187.38397 1105.5713,185.88358 1105.3125,183.0625 C 1102.7711,181.6338 1099.2642,181.68628 1096.3125,181.65625 z M 408.25,193 C 411.36119,194.23818 413.80927,196.80579 414.21875,200.0625 C 420.6617,204.81354 429.35961,205.38022 436.9375,207.125 C 430.15777,199.73065 420.94626,195.26684 411.11625,193.6347 C 410.26356,193.43872 408.60466,193.02977 408.25,193 z M 1058.9062,194.875 C 1049.0384,195.20167 1044.8238,206.42737 1035.5625,208.3125 C 1029.7016,209.92309 1023.0146,210.73023 1018.0625,214.125 C 1014.1169,218.84494 1008.2788,221.81189 1003.7188,225.78125 C 1012,223.7568 1020.3018,221.14985 1028.9375,220.9375 C 1040.251,219.12904 1048.8402,210.58331 1059.125,206.34375 C 1062.7439,204.99914 1064.1434,209.49599 1062.9062,212.125 C 1062.0991,219.34459 1056.7004,224.68505 1050.1729,227.27291 C 1044.0849,230.64341 1036.3448,232.36639 1031.8125,237.8125 C 1032.3201,240.23103 1036.5095,239.82956 1038.4904,240.52567 C 1044.2101,240.82459 1049.5283,243.04162 1055.0625,243.6875 C 1067.7076,242.67276 1079.7301,237.33129 1092.6228,237.91123 C 1096.6653,237.9488 1091.6723,235.5326 1090.625,234.8125 C 1087.8783,232.6315 1083.1828,231.52077 1081.9375,228.03125 C 1083.812,225.62126 1087.8539,228.60489 1090.3054,228.79545 C 1095.3486,230.10299 1100.3772,232.83424 1105.3125,233.71875 C 1100.3688,226.76316 1092.4378,221.90532 1084.2188,219.78125 C 1076.6943,219.04445 1074.0012,210.72107 1072.5,204.40625 C 1071.2561,198.08468 1065.0896,194.37703 1058.9062,194.875 z "
+ id="path3853" />
+ <path
+ style="opacity:0.2;fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 416.34996,-8.8872663 C 416.34996,-8.8872663 423.94445,5.891194 427.1819,1.9433455 C 430.41931,-2.0044998 440.12599,0.99146385 446.60082,-0.98245959 C 453.07567,-2.956383 477.88961,9.8598423 489.76022,8.8728838 C 501.63079,7.8859221 491.90069,15.755655 486.50502,19.703496 C 481.1093,23.651341 501.59961,23.655896 511.31185,23.655899 C 521.02413,23.655899 514.59262,22.699461 512.43433,16.777691 C 510.27604,10.855923 518.86807,20.706704 525.34286,22.680631 C 531.81773,24.654554 544.80299,12.809032 531.85325,9.8481522 C 518.90354,6.8872686 514.54427,-0.028004077 506.9903,-6.9367296 L 416.34996,-8.8872663 z M 783.85026,-3.2409758 C 781.72796,-3.1296531 779.72222,-2.7492796 777.90111,-2.0090579 C 768.18887,1.9387874 761.68117,7.8976154 761.68117,7.8976154 C 782.18504,5.9236887 791.92925,4.9367319 801.64149,7.8976154 C 811.35392,10.858496 819.98409,11.817516 811.35104,5.8957488 C 804.33653,1.0843078 793.04634,-3.7233735 783.85026,-3.2409758 z M 983.03442,8.4109146 C 981.69822,8.4552505 980.21942,8.6261438 978.60071,8.8728838 C 978.60071,8.8728838 971.04669,11.842887 978.60071,16.777691 C 986.15474,21.712497 988.32517,25.643488 1001.2748,35.513109 C 1014.2245,45.382721 1025.0253,48.317646 1033.6583,46.343721 C 1042.2915,44.369797 1032.5459,53.254435 1041.1789,59.176199 C 1049.8122,65.097979 1100.5476,77.972064 1115.6556,85.867754 C 1130.7635,93.763445 1164.2002,94.708194 1173.9124,93.721231 C 1183.6247,92.734268 1225.7376,88.793559 1233.2917,88.793559 C 1240.8457,88.793559 1200.8938,86.831328 1164.2029,87.818291 C 1127.5121,88.805254 1145.856,76.964289 1126.4315,78.938216 C 1107.007,80.912143 1110.2478,72.008678 1092.9815,72.008678 C 1075.7153,72.008678 1084.3695,62.144218 1062.7868,54.248527 C 1041.2039,46.352839 1053.083,44.388623 1033.6583,40.440781 C 1014.2338,36.492935 1003.4025,21.712501 999.0859,16.777691 C 995.30898,12.459734 992.38837,8.10056 983.03442,8.4109146 z M 614.46786,16.675031 C 607.03032,16.64973 604.69054,23.183228 612.78414,30.585437 C 614.94242,29.598476 630.03415,31.572401 647.30043,30.585437 C 664.5667,29.598476 648.35184,22.680626 635.40213,22.680631 C 622.45243,22.680631 624.61632,17.764656 615.98321,16.777691 C 615.44364,16.716006 614.96369,16.676718 614.46786,16.675031 z M 598.80925,18.984877 C 594.86706,18.580791 587.8587,26.177852 592.24273,28.583571 L 599.81948,31.560706 C 599.81948,31.560706 603.04411,26.651854 600.88584,20.730094 C 600.48117,19.619763 599.71898,19.078128 598.80925,18.984877 z M 973.83008,36.847687 C 969.1532,36.469867 973.87947,43.275723 978.60071,49.320856 C 983.99635,56.229583 976.44034,51.290221 964.5697,45.368452 C 952.69906,39.446685 949.46721,36.516317 945.15078,38.490244 C 940.83417,40.464166 932.18603,37.463641 932.18603,37.463646 C 932.18603,37.463646 916.03021,39.453817 910.6344,40.440781 C 905.23877,41.427742 897.64433,46.387924 899.80255,51.322722 C 901.96076,56.257539 920.29779,45.380146 928.93084,44.393184 C 937.56407,43.406224 887.96028,65.130469 887.96028,65.130469 C 887.96028,65.130469 896.59064,58.196381 897.66983,54.248527 C 898.74903,50.300684 884.73346,51.311036 872.863,52.297991 C 860.99236,53.284954 863.12508,58.217192 874.99572,61.178066 C 874.99572,61.178066 865.27629,63.128603 856.64306,63.128603 C 848.01002,63.128603 876.08479,66.129128 883.63882,64.155201 C 891.19285,62.181274 878.21535,69.082872 871.74052,69.082872 C 865.26569,69.082872 875.01853,74.026806 882.57237,76.987679 C 890.1264,79.948569 897.66983,70.058141 897.66983,70.058141 C 897.66983,70.058141 914.90486,66.098609 919.22147,71.033409 C 923.53808,75.96821 919.22147,78.959027 919.22147,85.867754 C 919.22147,92.776481 931.11187,87.818291 936.50768,87.818291 C 941.90331,87.818291 959.14839,98.660598 966.70242,97.673634 C 974.25644,96.686687 958.07997,90.795426 951.60496,90.795426 C 945.13013,90.795426 945.12797,81.880266 937.57394,84.841156 C 930.01992,87.802046 925.74461,76.966868 924.66541,70.058141 C 923.58639,63.149414 932.18819,62.153334 946.21705,62.153334 C 960.2459,62.153334 982.8938,76.95716 994.76444,83.865888 C 1006.6349,90.774615 1014.2139,83.870437 1016.3721,87.818291 C 1018.5305,91.766128 1035.8061,100.66701 1048.7558,103.6279 C 1061.7054,106.58878 1067.0727,96.710061 1060.5979,95.723098 C 1054.123,94.736134 1058.4702,92.769353 1062.7868,90.795426 C 1067.1034,88.821516 1078.9683,93.725797 1082.2057,97.673634 C 1085.4431,101.62149 1102.6832,97.708703 1108.0788,94.747829 C 1113.4746,91.786939 1092.9842,85.839814 1083.272,83.865888 C 1073.5597,81.891961 1083.2977,80.895898 1081.1393,75.961081 C 1078.981,71.026281 1071.4198,82.890619 1062.7868,82.890619 C 1054.1536,82.890619 1043.3323,60.163163 1036.8575,59.176199 C 1030.3826,58.189252 985.08273,53.273259 996.95319,53.273259 C 1008.8238,53.273259 985.04501,40.424524 976.41179,37.463646 C 975.33277,37.093535 974.49836,36.901661 973.83008,36.847687 z M 834.8109,51.733362 C 833.71913,51.746847 832.38867,51.927873 830.76997,52.297991 C 817.82031,55.258881 800.54182,63.128603 808.09585,63.128603 C 815.64988,63.128603 822.11896,68.079648 827.51477,66.105737 C 832.9104,64.131811 838.29059,59.176199 838.29059,59.176199 C 838.29059,59.176199 842.45347,51.638915 834.8109,51.733362 z M 790.4729,52.86262 C 787.24177,52.78744 783.93287,53.424571 781.10009,55.275126 C 773.54624,60.209926 757.36468,67.097251 761.68117,70.058141 C 773.55181,62.16245 770.32158,62.153334 780.03382,62.153334 C 789.74607,62.153334 808.09082,58.224321 803.77421,56.250394 C 801.07648,55.016686 795.85811,52.987914 790.4729,52.86262 z M 751.35442,53.375919 C 748.1112,53.471105 744.17639,54.041417 740.12961,55.275126 C 727.17989,59.222963 705.55721,63.128603 705.55719,63.128603 C 705.55719,63.128603 717.46264,63.128603 735.80805,63.128603 C 739.04549,63.128603 747.6602,60.186536 756.29333,57.225662 C 762.22858,55.190058 758.4895,53.166526 751.35442,53.375919 z M 849.57143,83.249929 C 841.65713,83.25957 829.26333,85.350891 823.19313,87.818291 C 813.48088,91.766128 815.66981,93.725797 825.38206,97.673634 C 827.54027,96.686687 841.57344,100.65077 853.44408,100.65077 C 865.31454,100.65077 859.88838,96.698366 851.25515,96.698366 C 842.62211,96.698366 872.81469,90.795426 867.41888,90.795426 C 862.02325,90.795426 854.48485,90.802555 856.64306,85.867754 C 857.45251,84.0172 854.32016,83.244147 849.57143,83.249929 z M 605.37576,88.690899 C 604.55929,88.707769 603.81659,88.731881 603.07467,88.793559 C 592.10261,89.705803 602.30453,93.987013 603.91654,100.08614 C 607.435,100.87685 611.37435,101.62604 614.91685,101.62604 C 617.07512,101.62604 621.40168,101.65853 623.55995,107.58031 C 625.71822,113.50207 635.4427,112.50796 646.23407,112.50798 C 657.02549,112.50798 662.3872,115.45001 677.49517,118.41092 C 692.60317,121.37179 661.32149,109.53084 652.68833,109.53084 C 644.0552,109.53084 636.5146,106.54914 627.8815,102.60131 C 619.24837,98.653453 624.6618,102.60845 631.1367,97.673634 C 637.20686,93.047257 617.62282,88.43788 605.37576,88.690899 z M 603.91654,100.08614 C 598.20853,98.803369 593.77033,97.45023 594.71219,98.905552 C 599.64635,102.16897 604.14103,105.37672 604.14103,101.62604 C 604.14103,101.1031 604.04854,100.58561 603.91654,100.08614 z M 594.71219,98.905552 C 590.55765,96.157768 586.12218,93.394379 583.65575,94.747829 C 578.26005,97.708703 587.93612,105.59469 600.88584,108.55558 C 613.83555,111.51647 604.11831,106.57253 596.56428,100.65077 C 595.51296,99.8266 594.95833,99.285886 594.71219,98.905552 z M 536.06256,91.719364 C 535.71683,91.716588 535.35583,91.739847 535.05233,91.770694 C 525.34004,92.757658 530.76845,94.705616 551.27218,102.60131 C 551.27218,104.57523 553.43262,105.56675 565.30319,106.55371 C 576.80278,107.50983 546.78017,91.80527 536.06256,91.719364 z M 897.10859,94.59384 C 893.66249,94.709492 890.13143,95.739343 886.89402,98.700233 C 878.26079,106.59592 873.92227,100.65534 855.5768,104.60317 C 854.4976,105.59012 859.89556,109.53084 869.60781,109.53084 C 879.32005,109.53084 874.99284,117.43565 884.70509,117.43565 C 894.41751,117.43565 908.43775,122.35163 913.83356,123.33859 C 919.22919,124.32555 911.70085,126.32029 911.70085,130.26813 C 911.70085,134.21598 921.4253,130.28436 934.37496,133.24526 C 947.32462,136.20614 945.15581,125.34502 949.47224,129.29286 C 953.78886,133.24071 965.65105,138.13332 978.60071,137.14634 C 991.55037,136.15937 965.65878,125.30541 973.21281,128.26626 C 980.76683,131.22715 969.96533,120.40365 964.5697,112.50798 C 959.17389,104.61229 938.66877,104.60319 926.79813,104.60317 C 914.92766,104.60317 917.09648,96.698366 911.70085,96.698366 C 908.32855,96.698366 902.8521,94.401085 897.10859,94.59384 z M 694.27626,95.774428 C 688.5096,96.005749 686.67004,99.170316 691.52618,100.65077 C 691.52618,100.65077 700.19703,104.60319 712.06758,104.60317 C 723.93815,104.60317 712.02708,99.65924 701.23564,96.698366 C 698.53779,95.958148 696.19848,95.697326 694.27626,95.774428 z M 596.8449,108.91489 C 593.27024,108.86863 589.82247,109.2724 586.85482,110.50611 C 597.64619,114.45397 595.48731,117.43565 610.5953,117.43565 C 625.70333,117.43565 632.19526,116.42986 637.59097,123.33859 C 642.9867,130.24732 646.23125,130.26813 655.94353,130.26813 C 665.65583,130.26813 705.5494,137.18597 710.9451,138.17294 C 716.3408,139.1599 717.44769,136.17562 722.8434,140.12347 C 727.10267,143.23983 728.67128,138.3687 732.32836,137.14634 C 732.02107,136.85761 731.73375,136.54794 731.4865,136.17107 C 728.24907,131.23627 728.2391,132.2583 722.8434,133.24526 C 717.44768,134.23221 687.20745,130.26356 677.49517,126.31573 C 667.7829,122.36787 654.84163,127.29814 648.36678,122.36332 C 641.8919,117.42854 628.95566,113.48325 623.55995,113.48325 C 619.51318,113.48325 607.56889,109.05367 596.8449,108.91489 z M 732.32836,137.14634 C 734.1905,138.89594 737.09047,139.09635 740.41023,138.63491 C 738.71894,138.08256 736.85298,137.4649 735.80805,137.14634 C 734.44434,136.73061 733.30411,136.82021 732.32836,137.14634 z M 740.41023,138.63491 C 749.19888,141.50514 764.35411,146.41133 767.06908,143.10061 C 770.30649,139.15275 758.45942,134.19716 750.90542,136.17107 C 747.42417,137.08075 743.71612,138.1754 740.41023,138.63491 z M 1272.5785,108.91489 C 1265.8549,109.00163 1252.2781,110.75742 1240.8123,114.45852 C 1222.4668,120.3803 1226.789,109.51917 1221.3934,110.50611 C 1215.9975,111.49308 1201.9744,119.39529 1201.9744,127.29099 C 1201.9744,135.18669 1210.6274,127.29816 1219.2606,122.36332 C 1221.4189,120.38941 1227.8526,120.41279 1232.1692,120.41279 C 1236.4858,120.41279 1267.8307,113.467 1275.3847,110.50611 C 1278.2175,109.39578 1276.6126,108.86283 1272.5785,108.91489 z M 803.94267,112.55931 C 802.12784,112.77329 800.40982,113.86961 798.3863,116.46038 C 792.99067,123.36913 774.65579,124.35349 783.28902,125.34046 C 791.92206,126.32742 810.25137,129.25323 817.80522,128.26626 C 825.35925,127.27933 824.26945,121.38805 832.90268,121.38805 C 841.53573,121.38805 842.63773,116.42075 840.47934,115.43378 C 826.45048,115.43378 824.30573,117.40771 815.67251,115.43378 C 810.27687,114.20008 806.96726,112.20269 803.94267,112.55931 z M 1216.735,138.07028 C 1209.7795,138.03051 1203.7776,144.32715 1198.7192,148.02828 C 1193.3234,151.97612 1167.466,152.9722 1162.0701,155.93309 C 1156.6745,158.89398 1173.9401,155.93309 1185.8107,155.93309 C 1190.1273,155.93309 1206.2803,151.9761 1217.0717,148.02828 C 1227.8632,144.08043 1225.6922,139.1599 1218.1382,138.17294 C 1217.666,138.11126 1217.1987,138.07292 1216.735,138.07028 z M 892.28192,143.10061 C 891.64938,143.67907 892.21996,143.87246 893.40441,143.92189 C 893.01953,143.63242 892.69769,143.40478 892.28192,143.10061 z M 893.40441,143.92189 C 903.00997,151.14644 903.42897,153.85223 912.76711,151.00541 C 922.47936,148.04454 937.60735,147.02507 930.05332,145.05114 C 922.49929,143.07722 915.99968,143.10061 908.44565,143.10061 C 903.10534,143.10061 896.26143,144.0411 893.40441,143.92189 z M 1294.8036,144.07588 C 1294.8036,144.07588 1268.8642,150.9749 1260.2312,157.88362 C 1251.598,164.79235 1248.3841,158.8797 1244.0675,165.78843 C 1239.7509,172.69716 1227.8809,161.83603 1220.3269,161.83603 C 1213.4812,161.83603 1227.0374,169.93084 1224.8168,170.7161 C 1229.034,171.5802 1235.8116,174.61912 1240.8123,178.62091 C 1249.4453,185.52964 1244.093,185.555 1241.9348,189.50285 C 1239.7764,193.45069 1272.1266,190.45473 1281.8389,192.42866 C 1291.5513,194.40258 1269.9612,184.53556 1263.4864,183.54858 C 1257.0116,182.56162 1248.3685,170.7278 1254.8433,169.74083 C 1261.3181,168.75387 1288.316,174.66851 1295.8699,174.66851 C 1303.4239,174.66851 1293.684,169.75254 1283.9716,168.76556 C 1274.2593,167.7786 1286.1704,165.78843 1294.8036,165.78843 C 1303.4367,165.78843 1294.8036,144.07588 1294.8036,144.07588 z M 988.31009,151.00541 C 989.38928,152.97932 980.76396,153.92866 982.92218,162.81129 C 985.08057,171.69395 1005.5857,168.74217 1020.6938,170.7161 C 1035.8016,172.69003 1018.5027,175.68341 1004.4738,176.67037 C 990.44495,177.65734 1017.4357,182.56617 1027.1479,187.50099 C 1036.8604,192.43579 1030.4182,182.54536 1043.3679,180.57145 C 1056.3175,178.59752 1063.8482,173.69322 1059.5316,173.69324 C 1055.215,173.69324 1037.9422,168.761 1017.4386,164.81316 C 996.93487,160.86531 1000.1807,156.92719 988.31009,151.00541 z M 799.67724,152.54531 C 791.5036,152.35642 776.50097,156.90837 782.16654,156.90835 C 788.64137,156.90835 790.80677,160.84906 800.51901,161.83603 C 800.51901,160.84906 809.18277,154.92988 802.70794,152.95595 C 801.8985,152.70921 800.8448,152.5723 799.67724,152.54531 z M 984.32537,167.99562 C 979.08778,168.18839 971.20491,169.74083 962.43699,169.74083 C 965.6744,169.74083 942.97191,169.74083 951.60496,169.74083 C 960.23818,169.74083 960.26315,176.6587 973.21281,177.64564 C 986.16246,178.63261 992.6012,173.68869 990.4428,169.74083 C 989.63354,168.2604 987.46796,167.87996 984.32537,167.99562 z M 1216.3422,170.25413 C 1212.1373,170.4469 1207.2609,171.58425 1199.8417,174.66851 C 1187.9711,179.60331 1181.4869,177.65734 1167.4581,176.67037 C 1153.4292,175.68341 1151.2482,179.59358 1159.8814,188.47625 C 1162.0396,187.48929 1166.3406,186.53482 1170.6572,194.43052 C 1174.9738,202.32622 1178.236,194.39089 1192.2649,193.40393 C 1206.2937,192.41696 1209.559,184.52385 1204.1632,184.52385 C 1198.7676,184.52385 1224.6308,177.65277 1221.3934,172.71797 C 1220.4957,171.34985 1220.9614,170.69096 1222.2351,170.56211 C 1220.2926,170.30853 1218.3966,170.15995 1216.3422,170.25413 z M 1222.2351,170.56211 C 1222.6782,170.61993 1223.1313,170.64738 1223.5821,170.7161 C 1224.1114,170.79677 1224.4661,170.76916 1224.7046,170.7161 C 1223.7084,170.5188 1222.8709,170.49781 1222.2351,170.56211 z M 1096.9102,180.87943 C 1090.0306,180.97195 1084.374,183.58109 1090.8488,189.50285 L 1096.2367,191.45339 C 1096.2367,191.45339 1112.3904,183.57196 1103.7573,181.59805 C 1101.599,181.10457 1099.2033,180.84858 1096.9102,180.87943 z M 392.60948,188.47625 C 393.03285,188.66985 394.12365,188.96694 395.47181,189.29753 C 394.52552,189.02996 393.57949,188.7424 392.60948,188.47625 z M 395.47181,189.29753 C 405.05315,192.00677 413.15089,194.86697 413.15089,199.3582 C 413.15085,204.29301 439.02407,208.23827 439.02407,208.23827 C 439.02406,208.23827 430.38377,198.36667 420.67151,195.40579 C 412.86434,193.02569 400.99665,190.65233 395.47181,189.29753 z M 1059.6999,194.07122 C 1055.2279,194.14929 1050.3567,196.31224 1045.5006,201.30873 C 1036.8674,210.19139 1032.5466,206.2572 1017.4386,213.16594 C 1018.5178,214.15289 1009.8824,220.08835 1003.4075,225.02315 C 996.93271,229.95795 1016.3822,222.04602 1025.0152,222.04602 C 1033.6484,222.04602 1042.286,217.09754 1053.0772,210.18881 C 1063.8687,203.28008 1063.8353,208.23569 1060.5979,217.11835 C 1057.3604,226.001 1043.3707,227.96975 1033.6583,234.8785 C 1023.9461,241.78722 1043.3345,240.7977 1050.8885,243.75857 C 1058.4425,246.71945 1074.631,238.83092 1088.6599,238.8309 C 1102.6887,238.8309 1090.8133,234.88566 1084.3384,229.95083 C 1077.8636,225.01602 1091.8996,229.95537 1102.6909,233.90323 C 1113.4823,237.85107 1096.2089,221.04281 1084.3384,219.06888 C 1072.4678,217.09496 1075.716,202.29115 1069.241,197.35633 C 1066.4084,195.19735 1063.1781,194.01049 1059.6999,194.07122 z "
+ id="path3858" />
+ <path
+ style="opacity:0.2;fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 415.6875,-8.5 C 418.51081,-4.3497813 420.65519,2.1580065 426.03125,3.375 C 428.38259,2.4561175 430.11771,0.041202301 433.0625,0.5625 C 438.35161,0.70072038 443.6432,0.45170179 448.8125,-0.40625 C 463.76953,1.7954079 477.66164,10.805343 493.1875,9.65625 C 496.62009,9.9268891 492.61296,13.836129 491.53125,14.6875 C 489.9103,17.288881 484.95594,18.034386 484.9375,21.40625 C 488.05254,24.689902 493.63571,23.441685 497.75,24.1875 C 504.0163,24.066138 510.68727,25.208854 516.75,23.84375 C 518.45837,21.54095 514.02445,19.77503 513.53125,17.5 C 511.55318,13.93622 515.95427,18.193 517.03728,18.699931 C 521.12504,21.992126 526.83288,25.708583 531.96875,22.21875 C 535.77219,20.537027 540.5236,15.09798 536.65625,11.25 C 531.99975,8.0414614 525.33733,8.2054865 520.6875,4.4375 C 515.52554,1.1639866 511.72804,-4.0324264 507.03125,-7.6875 C 476.37502,-8.344813 445.71861,-8.9936084 415.0625,-9.65625 L 415.41914,-8.9964701 L 415.6875,-8.5 z M 783.8125,-4 C 774.74123,-3.071093 766.77037,2.5608908 760.09559,8.4356602 C 762.16912,9.1182834 768.49655,7.7638742 772.21875,7.65625 C 783.68427,6.4318642 795.49782,6.0014136 806.45834,9.9760808 C 809.16163,10.1779 813.58812,12.462478 815.59375,9.78125 C 815.10805,5.9890487 810.01352,4.643717 807.34375,2.5625 C 800.17732,-1.2671551 792.08591,-4.2877318 783.8125,-4 z M 981.96875,7.71875 C 978.25013,7.0801786 972.56832,10.629937 975.1875,14.6875 C 980.01897,19.274551 985.8378,22.650948 990.47302,27.616198 C 1001.9206,37.371331 1015.2212,48.849018 1031.3125,47.53125 C 1033.0238,47.501544 1037.6083,45.271899 1036.75,48.78125 C 1035.1796,54.515615 1038.8249,60.0872 1044.3438,61.6875 C 1069.1396,71.806812 1095.9781,77.0626 1120.0938,88.625 C 1138.0923,94.302734 1157.4174,95.579325 1176.2077,94.246244 C 1195.6265,92.404666 1215.133,90.49347 1234.5625,89.40625 C 1239.5424,87.476206 1230.3494,87.98601 1228.6272,87.651194 C 1203.7884,86.387627 1178.9085,86.990946 1154.0625,86.96875 C 1147.6514,86.71879 1140.5873,85.538443 1136.9062,79.75 C 1130.6337,75.605952 1122.4188,80.068102 1115.5625,77.96875 C 1108.4154,76.035192 1102.3529,70.701799 1094.5312,71.28125 C 1088.7751,71.664552 1082.5582,70.391911 1079.6371,65.030018 C 1072.9053,54.768867 1059.5268,53.875999 1050.1875,47.28125 C 1043.0849,39.092267 1031.235,40.897466 1022.4375,35.8125 C 1010.8651,30.649366 1003.3751,20.114172 994.90625,11.25 C 991.44007,8.1577335 986.51632,7.3425508 981.96875,7.71875 z M 613.0625,16 C 608.24295,15.9509 605.19572,21.625274 607.9375,25.625 C 609.56262,28.450258 611.65675,32.292529 615.3125,31.0625 C 628.07353,31.039899 641.19775,32.924406 653.75,30.3125 C 656.72974,29.555741 655.35134,26.1015 653,25.5625 C 645.34357,21.601 636.4704,22.487887 628.28125,21.1875 C 623.12716,19.26344 619.07085,15.005657 613.0625,16 z M 597.96875,18.25 C 593.85385,19.10946 588.50088,23.862005 590.75,28.3125 C 593.20339,30.620302 597.14953,30.856597 600.09375,32.46875 C 602.66326,28.592644 603.73778,21.990843 600.0625,18.59375 C 599.41836,18.240078 598.70015,18.163179 597.96875,18.25 z M 972.84375,36.125 C 969.14012,37.387318 972.57797,42.115443 973.84375,44.125 C 975.30117,46.673271 978.3887,49.655559 979.21875,51.78125 C 969.03473,47.625737 959.71008,40.975734 949.34375,37.3125 C 945.50713,36.551148 942.15874,39.568595 938.1875,38.15625 C 933.82214,36.785376 929.50279,36.460092 925.00783,37.623005 C 916.22647,39.21139 904.68668,38.279954 899.375,46.90625 C 897.35752,49.81594 899.61365,54.366315 903.375,53.3125 C 911.8765,51.943691 919.73942,46.972169 927.9375,45.3125 C 916.4362,51.829581 904.17887,56.946525 892.15625,62.4375 C 894.37791,59.709818 899.13127,56.810115 898.1875,52.8125 C 894.36762,49.343877 888.10001,51.120826 883.31319,50.813363 C 877.19004,51.767165 869.84418,50.232744 864.6875,54.15625 C 862.76276,57.708217 868.27275,59.734937 870.75,60.71875 C 871.49074,61.559521 865.176,61.738831 863.09375,62.0625 C 860.01741,62.721771 856.58569,61.613388 853.71875,63.03125 C 856.96348,65.900124 862.26032,64.330428 866.24442,65.283429 C 871.48315,65.598366 878.08856,65.747992 882.625,65.1875 C 878.48672,67.530117 873.82087,67.956231 869.3125,68.8125 C 867.73989,71.603995 872.80507,72.96322 874.44878,74.185657 C 879.62947,76.880334 886.15697,80.490025 891.6875,76.375 C 895.51755,74.642185 897.23174,69.617841 901.9375,70.03125 C 907.42178,69.619563 914.59789,67.692542 919,71.96875 C 923.33342,77.008889 915.20468,84.356308 919.9375,89.25 C 926.64107,92.770361 934.47608,86.030959 941.28125,89.84375 C 949.88749,92.741562 958.09194,98.941241 967.46875,98.3125 C 970.21512,98.230305 969.56909,94.850147 967.28125,94.40625 C 961.77709,91.330109 955.31655,90.458768 949.28125,89.53125 C 945.77767,87.224203 943.02141,81.766274 938,83.875 C 932.43943,86.800308 928.06562,80.127419 926.78125,75.46875 C 925.44776,71.877735 923.72238,66.154408 928.75,64.65625 C 939.48587,61.767534 951.55234,62.067738 961.72668,66.780847 C 974.75103,71.920135 986.19909,80.506169 998.75,86.5625 C 1003.9181,88.937995 1009.6734,87.102513 1015,87.5 C 1021.2093,94.66264 1030.9522,98.084966 1039.5938,101.65625 C 1046.8112,104.23209 1056.7722,107.69719 1062.9375,101.1875 C 1065.5326,98.775048 1063.4478,94.679984 1060.1562,94.875 C 1058.6444,94.816538 1057.161,93.989537 1059.4688,93.25 C 1066.017,88.510377 1074.418,92.958039 1080.1875,96.75 C 1084.4444,102.23575 1092.5096,99.7082 1098.2639,98.808477 C 1102.0056,97.459799 1107.1407,97.355554 1109.6562,94.0625 C 1109.5232,90.391264 1104.2921,89.635097 1101.5938,88.25 C 1094.6392,85.274885 1086.5952,84.419726 1079.6875,81.875 C 1082.3535,80.290981 1083.5374,74.558576 1079.5625,74 C 1073.1157,75.65318 1068.3582,83.706377 1060.9375,81.78125 C 1051.0822,76.739567 1047.3077,64.385612 1038.0312,58.75 C 1025.4739,56.560759 1012.0731,55.727544 999.78125,53.625 C 1002.9623,51.539283 998.49781,48.446002 996.75,47.1875 C 989.49659,42.647291 981.88072,37.732956 973.40625,36.09375 C 973.22937,36.169636 973.01725,36.028341 972.84375,36.125 z M 833.875,51.03125 C 824.22893,52.87359 814.27628,55.809758 806.0625,61.34375 C 804.01567,63.854923 808.55979,64.298383 810.125,64 C 816.90759,64.719436 824.42096,70.001314 830.875,65.375 C 835.0847,62.870059 841.44106,59.681876 839.96875,53.75 C 839.21469,51.214917 836.14086,50.799908 833.875,51.03125 z M 789.21875,52.125 C 781.24927,52.280748 775.34093,58.741137 768.28125,61.71875 C 765.57002,63.89562 760.03748,65.447927 760.34375,69.5625 C 761.91049,72.838916 765.26602,67.777466 767.375,67 C 770.91016,63.42633 775.81234,62.269593 780.78125,62.90625 C 788.85445,62.22886 797.5423,61.841567 804.71875,57.90625 C 806.4156,55.279002 801.57481,54.773312 800.03125,53.9375 C 796.53533,52.816822 792.91846,51.981558 789.21875,52.125 z M 750.0625,52.6875 C 738.39454,53.984942 727.24888,58.691851 715.63908,60.38686 C 711.70761,61.500013 707.37056,61.408845 703.71875,63.28125 C 713.64918,64.65178 723.97725,63.490295 734.0625,63.875 C 742.5078,63.667982 750.54445,59.817559 758.40625,57.125 C 761.06626,56.304563 759.79778,53.073317 757.40625,53.15625 C 755.03135,52.494062 752.51189,52.593469 750.0625,52.6875 z M 604.15625,87.96875 C 601.82321,88.079995 596.41244,88.196461 597.53125,91.8125 C 598.87446,94.453414 601.50544,96.284833 602.75,99.0625 C 599.79665,98.023849 596.29904,97.868684 593.5625,97.25 C 590.36842,95.25898 584.73546,91.353463 581.75,95.53125 C 580.16344,99.890157 585.76342,102.87908 588.8125,104.8125 C 591.29804,106.16643 593.90921,107.29429 596.625,108.15625 C 592.47424,108.05427 588.51101,108.81285 584.75,110.5 C 592.21566,112.84512 598.51972,118.67311 606.75,118.09375 C 615.76394,119.01758 625.81371,116.11827 634,120.84375 C 638.20089,124.74289 641.86154,130.82177 648.40625,130.8125 C 670.40063,130.91274 691.92163,136.3882 713.625,139.125 C 717.29442,138.13906 720.88979,139.10266 723.71875,141.53125 C 727.1859,143.23452 729.52507,139.0222 732.28125,138.09375 C 736.26309,140.91757 741.54535,138.35266 745.6875,141.125 C 752.50411,142.64555 759.82578,146.41138 766.8125,144.25 C 770.07189,142.43983 767.43212,138.13479 764.625,137.34375 C 757.81357,133.49866 749.83958,135.14004 742.84375,137.46875 C 739.38572,138.4217 735.57932,135.70243 732.28125,136 C 730.90624,133.00184 727.88344,130.38458 724.46875,132.15625 C 714.09256,133.59631 703.39342,130.83454 693.0625,129.4375 C 685.39232,128.69334 678.35584,125.07179 670.8125,124.0625 C 662.76878,123.10819 653.24701,126.15911 646.75,120.34375 C 638.49833,115.24063 628.82373,113.05445 619.34375,112.0625 C 615.79862,110.84353 610.61089,110.66062 607.96875,109 C 607.35013,106.62632 603.55458,105.3934 602.71875,104.0625 C 604.66672,104.49989 604.90332,101.78943 605.09375,101.125 C 609.9751,103.07895 615.98412,100.96379 620.3125,103.9375 C 623.09933,106.61372 623.4403,111.58474 628,112.28125 C 638.74524,114.70758 650.20291,111.68153 660.78935,115.2474 C 667.74346,116.64608 674.66716,119.48228 681.75,119.5 C 683.56156,117.08436 678.21737,116.31399 676.75,115.34375 C 667.37706,111.66711 657.46891,108.57324 647.25,108.375 C 639.79102,107.29827 632.84794,104.03181 626,100.9375 C 628.68561,100.07931 634.10615,98.426633 632.6875,94.6875 C 628.22688,89.963874 620.82959,89.652749 614.75552,88.502959 C 611.24449,88.040926 607.69653,87.839717 604.15625,87.96875 z M 534.96875,91.03125 C 533.30514,91.179424 528.55252,91.375302 529.96875,94.09375 C 535.98194,98.584518 544.26598,99.902113 550.625,103.4375 C 553.05269,107.23233 558.83528,106.17825 562.71155,107.08433 C 564.38983,107.38442 569.75638,108.18423 568.3125,104.90625 C 561.43954,98.583635 552.01077,95.307799 543.21577,92.264782 C 540.52358,91.541388 537.79458,90.772312 534.96875,91.03125 z M 694.25,95.03125 C 691.66297,94.721703 686.08706,96.784379 688.75,100.03125 C 696.88575,104.35597 706.90865,106.01297 716.1875,105 C 719.21098,104.39317 716.9436,101.11545 714.9375,100.8125 C 708.42864,97.988597 701.44999,95.070156 694.25,95.03125 z M 803.90625,111.8125 C 798.62488,112.63043 796.85751,119.09387 791.53339,120.2421 C 788.0711,122.1343 783.44912,122.10297 780.34375,124.40625 C 780.40669,127.02771 785.10936,125.72969 786.84375,126.53125 C 797.78504,127.54408 809.03784,130.42265 819.96875,128.59375 C 824.68265,127.17892 827.3618,121.29388 832.9375,122.125 C 836.65901,122.39683 843.2749,120.58064 841.875,115.75 C 839.63837,113.17858 835.17432,115.42383 832.1598,114.94695 C 823.85992,116.2743 815.52352,115.38336 807.78125,112.28125 C 806.54046,111.8833 805.21804,111.6857 803.90625,111.8125 z M 891.71875,142.59375 C 890.00338,144.87312 894.62472,144.604 895.21766,146.27212 C 899.55165,150.19089 905.11129,154.77433 911.3125,152.1875 C 918.20457,149.63742 925.90238,149.80124 932.53125,146.84375 C 933.77846,144.20949 928.84244,144.27488 927.4375,143.65625 C 916.29136,141.46136 904.86459,142.49299 893.625,143.1875 C 893.0081,143.14892 892.15086,141.15349 891.71875,142.59375 z M 987.59375,151.25 C 984.99163,153.50407 981.23716,156.32082 981.84375,160.53125 C 981.8433,163.15596 982.9972,165.88339 985.375,167.21875 C 974.39019,168.08582 963.43383,169.58538 952.375,169 C 948.5965,170.48593 955.0936,170.46745 956.5,171.53125 C 962.1397,175.44333 968.37295,178.9451 975.53125,178.5 C 981.12449,178.41647 988.96868,178.12286 991.46875,172.1875 C 992.19472,170.6803 989.80735,168.22333 992.9375,169.65625 C 1003.5808,171.3255 1015.5666,169.66532 1025.5,172.59375 C 1017.5956,175.59493 1008.5483,174.77463 1000.375,176.71875 C 998.32279,178.95493 1003.046,179.99837 1004.5,180.625 C 1013.3221,183.22036 1022.1249,186.054 1030.5625,189.5625 C 1035.1323,190.13905 1035.1355,183.35597 1039.3125,182.46875 C 1046.5595,180.08411 1055.3652,180.18071 1061.3125,174.875 C 1062.1832,171.95672 1057.3785,173.26441 1055.9375,172.46875 C 1040.1567,168.85872 1024.0998,165.59671 1008.375,161.875 C 1000.088,159.89327 994.77747,152.62061 987,149.46875 C 987.19792,150.0625 987.39583,150.65625 987.59375,151.25 z M 798.03125,151.8125 C 792.07241,152.48489 785.38483,152.96517 780.3125,156.15625 C 779.85177,158.81494 784.62774,157.04859 786.21875,158.25 C 791.09392,160.21904 795.93782,162.42001 801.28125,162.6875 C 802.02959,159.81983 807.82949,157.03909 805.125,153.46875 C 803.29298,151.73134 800.41287,151.7417 798.03125,151.8125 z M 1096.25,180.15625 C 1092.6632,180.08605 1086.0301,181.44899 1087.5,186.34375 C 1088.8588,190.06018 1093.057,191.61474 1096.5938,192.125 C 1100.2606,189.68204 1106.231,188.03237 1107.0312,183.125 C 1105.2757,179.56337 1099.5578,180.47604 1096.25,180.15625 z M 391.03125,187.9375 C 395.1152,191.18078 401.07393,190.97067 405.69183,193.4771 C 409.08803,194.63534 412.51751,196.94152 412.8125,200.71875 C 418.24391,205.85964 426.72759,206.14338 433.64472,208.06852 C 436.54372,208.38683 443.83619,210.87277 438.6875,206.78125 C 431.76365,199.12502 422.44895,194.02845 412.21891,192.37895 C 405.15922,191.04941 398.07335,188.54811 391.03125,187.9375 z M 1058.7812,193.375 C 1050.7779,193.62068 1045.9161,200.80026 1039.9062,204.875 C 1032.491,208.56292 1023.7449,208.69131 1016.4062,212.78125 C 1016.6968,215.34082 1012.4693,216.56348 1011.0052,218.41262 C 1008.1432,221.28986 1003.1834,222.84924 1001.375,226.46875 C 1002.8159,228.75353 1006.5401,226.2164 1008.7188,226.09375 C 1015.6747,223.83046 1022.7939,222.90053 1030.0312,222.28125 C 1041.0135,220.1984 1049.4748,212.08248 1059.5,207.8125 C 1063.1805,206.79822 1061.375,212.15673 1060.9375,213.8125 C 1059.0967,223.66433 1047.8188,226.30736 1040.1562,230.28125 C 1036.755,232.47275 1031.0148,233.92162 1030.25,238.34375 C 1032.0682,242.3878 1038.0938,241.41688 1041.6617,242.55833 C 1047.9736,243.06185 1053.8191,246.56624 1060.2812,244.6875 C 1071.2811,242.26923 1082.2549,239.23231 1093.625,239.28125 C 1096.3492,239.45383 1096.6012,236.12816 1094.1875,235.3125 C 1090.8635,232.97831 1087.071,231.32748 1083.9688,228.6875 C 1091.3931,229.77635 1098.2892,234.20457 1105.6562,235.21875 C 1108.7706,233.74232 1104.6285,230.23425 1103.3125,228.875 C 1097.2749,223.15607 1089.6733,219.1506 1081.6562,217.5 C 1072.6367,213.01085 1076.5878,198.72808 1066.8125,194.96875 C 1064.3765,193.69502 1061.5392,193.10844 1058.7812,193.375 z "
+ id="path3861" />
+ <path
+ style="opacity:0.2;fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.71755147px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 415.03125,-8.15625 C 417.98436,-3.798719 420.30688,3.2741739 426.21875,4.09375 C 428.86124,2.929972 431.07275,0.50698247 434.40625,1.25 C 439.99526,2.1033449 445.23861,0.15353015 450.65625,0.53125 C 465.01646,3.7340002 478.67465,11.336166 493.65625,10.53125 C 492.61247,14.63045 486.56388,16.506867 484.21875,20.15625 C 484.03171,24.91997 490.93377,24.11509 494.15371,24.727497 C 501.75293,24.710515 509.8341,26.242394 517.21875,24.4375 C 519.8985,22.173589 514.86836,19.380889 514.78125,18 C 519.77258,22.073916 526.88419,27.197828 533.1875,22.4375 C 537.52213,20.429276 541.5316,13.508796 536.4375,10.125 C 529.94987,7.1517001 522.1781,6.2160396 517.03125,0.6875 C 512.23369,-2.9449172 509.0756,-10.29826 502.03239,-8.5443353 C 472.6154,-9.1777268 443.19798,-9.7923422 413.78125,-10.4375 C 414.19792,-9.6770833 414.61458,-8.9166667 415.03125,-8.15625 z M 783.78125,-4.75 C 773.64191,-3.5811758 764.75749,2.7617175 757.6875,9.78125 C 773.91706,8.5770049 790.87421,4.9848049 806.5625,10.78125 C 809.38672,11.166114 816.06085,13.65642 816.375,9 C 812.4841,2.8226938 804.45884,0.35234789 798,-2.375 C 793.46503,-3.9437624 788.61571,-4.9658997 783.78125,-4.75 z M 981.90625,6.96875 C 977.38168,6.1197301 971.12489,11.163473 974.9375,15.59375 C 989.24012,26.132543 1001.2241,40.967767 1018.6562,46.8125 C 1024.1375,48.931801 1030.5195,48.442918 1036.0312,47.71875 C 1035.5497,51.044532 1035.6296,55.199703 1037.4375,57.78125 C 1025.6397,55.973937 1012.7977,55.03767 1001.4688,53.03125 C 1002.2275,47.918509 995.09786,45.788652 991.78125,43.125 C 985.54346,40.266162 979.30558,35.253766 972.21875,35.53125 C 967.79078,38.132037 972.84304,43.658926 974.5704,46.44637 C 979.74318,52.036564 974.37205,48.802924 970.5582,46.73883 C 962.72419,43.592659 955.87526,37.382243 947.40625,36.375 C 942.41532,38.276459 936.96688,37.653171 932,35.96875 C 921.239,38.459506 907.61716,36.04003 899.625,45.125 C 897.84677,46.740465 897.72881,50.439749 898.21875,51.71875 C 890.96022,48.022768 882.0793,50.711672 874.26036,50.686636 C 870.61897,51.084575 862.97913,51.072876 863.59375,56.4375 C 863.92543,59.360177 871.35076,60.885141 866.0625,61 C 861.61199,62.205628 856.5151,60.352736 852.46875,62.84375 C 856.60595,67.381881 863.98925,65.012309 869.4375,66.1875 C 871.10449,66.609097 878.6113,65.831667 876.9375,66.625 C 874.41471,68.370631 868.29992,65.965112 868.125,70.25 C 871.64079,75.107372 878.40513,76.716408 883.71875,78.875 C 889.83013,79.920566 894.89001,75.380064 898.71875,71.375 C 904.90257,70.663091 913.2792,67.960601 918.40625,72.4375 C 922.37982,77.593526 913.98471,85.398304 919.75,90.03125 C 927.22395,93.518354 935.61131,86.201987 942.79492,91.267098 C 951.14803,94.059301 959.6142,100.73599 968.78125,98.6875 C 972.53996,96.318718 967.37464,92.97445 964.9375,92.46875 C 959.94974,89.878232 954.1224,90.159053 948.9375,88.46875 C 945.90251,84.70833 941.19331,80.845599 936.1875,83.6875 C 929.74447,84.398925 927.57017,75.901336 926.375,71.0625 C 924.23329,64.829771 932.7565,64.163704 936.90625,63.90625 C 956.63069,61.022768 973.6815,73.574574 989.92092,82.731705 C 996.84049,88.0491 1005.5936,89.668283 1014.0938,88.03125 C 1016.5854,89.574031 1018.3799,92.774714 1021.4375,93.90625 C 1031.5936,99.508325 1042.5575,105.14034 1054.3438,105.65625 C 1059.0832,105.86535 1066.9152,101.70852 1064.1875,96.125 C 1063.389,94.481723 1060.6639,94.351145 1059.8438,93.90625 C 1066.446,89.194943 1074.828,93.932588 1080.4375,98 C 1085.327,103.17771 1093.7182,100.21897 1099.75,99.21875 C 1103.1958,97.734499 1109.4518,97.886202 1110.4688,93.5 C 1108.4326,88.159518 1100.9467,87.780102 1096.2953,85.671181 C 1091.3884,83.916762 1085.4274,83.124838 1080.9062,81.5625 C 1082.5546,80.042377 1083.6008,77.588386 1082.5312,75.4375 C 1095.9038,79.338759 1108.9348,84.355522 1121.625,89.9375 C 1145.7289,97.100684 1171.3707,96.255939 1196.0898,93.129701 C 1208.9876,91.941499 1222.0094,90.89523 1234.875,90.09375 C 1242.7632,87.584627 1234.8825,87.215616 1230.9375,87 C 1204.9582,85.522049 1178.9203,86.406212 1152.9375,86.125 C 1147.0186,86.027179 1140.7631,84.349876 1137.375,79.1875 C 1129.9871,74.338087 1120.1967,80.240128 1112.4688,76.25 C 1105.4184,71.804498 1097.2037,69.970591 1088.9688,70.28125 C 1080.8202,69.673986 1078.7349,59.74589 1071.6875,56.78125 C 1063.2288,51.981108 1052.9865,50.171823 1046.0312,42.84375 C 1036.5569,38.207597 1025.1173,38.536828 1016.5396,31.544133 C 1007.1265,25.896971 1001.8872,15.824357 993.46875,9.28125 C 990.05521,7.160114 985.87918,6.6609925 981.90625,6.96875 z M 612.96875,15.25 C 606.8028,15.270451 604.16125,22.976172 608.0625,27.4375 C 610.07131,30.963974 612.68488,32.684719 616.65625,31.8125 C 629.17428,31.790443 642.20482,33.86418 654.4375,30.8125 C 658.50999,28.962203 654.73383,24.547927 651.71875,24.15625 C 643.83838,20.475056 634.87963,22.183322 626.8125,19.875 C 622.56691,17.189282 618.243,14.581529 612.96875,15.25 z M 597.90625,17.5 C 593.08965,18.324384 586.80866,24.577161 590.65625,29.34375 C 593.62056,31.171363 597.15987,31.960212 600.34375,33.375 C 603.51775,29.156936 604.87258,21.159934 600.03125,17.75 C 599.37537,17.449851 598.6134,17.440786 597.90625,17.5 z M 920.90625,48.28125 C 912.56363,52.429227 904.06702,56.274957 895.5625,60.09375 C 897.49059,58.516429 899.45345,54.594787 899.3125,53.125 C 905.0679,56.08172 911.4873,51.124065 917.0625,49.71875 C 918.22251,49.257338 920.17486,48.499887 920.90625,48.28125 z M 833.84375,50.28125 C 823.91865,52.23025 813.49445,55.071443 805.3125,61.09375 C 803.05134,64.967153 809.10428,64.867068 811.375,64.9375 C 818.07019,66.520766 825.91506,70.582547 832.25,65.46875 C 836.83077,63.02645 843.03416,58.510768 840.25,52.5625 C 838.95219,50.408652 836.11652,50.082247 833.84375,50.28125 z M 789.1875,51.375 C 780.48394,51.676417 773.87541,58.737017 766.15625,62.125 C 763.48309,63.794586 757.07792,67.276771 760.5625,71.0625 C 763.62885,72.570519 766.97561,67.199291 770.09375,65.96875 C 775.51601,61.503659 783.2437,64.801994 789.647,62.864281 C 794.89819,61.493301 801.76519,61.858612 805.75,57.71875 C 806.25551,53.386773 799.40016,53.625316 796.625,52.1875 C 794.17886,51.65969 791.70397,51.253787 789.1875,51.375 z M 750.03125,51.9375 C 736.42491,53.68406 723.5082,58.865129 709.83861,60.802607 C 700.90697,61.27267 701.88213,65.906986 710.5625,64.625 C 723.51441,64.063657 737.00011,66.687959 749.24307,61.217172 C 752.78042,59.139987 759.24132,59.720352 760.78125,55.21875 C 759.66851,50.966984 753.27863,52.11689 750.03125,51.9375 z M 1044.0312,62.375 C 1054.3133,67.085462 1068.2541,70.222743 1076.875,74.09375 C 1071.6941,77.19408 1064.7895,84.650253 1058.625,79.5625 C 1052.5142,74.609969 1048.5445,67.682865 1043.3125,62.0625 L 1044.0312,62.375 z M 848,81.78125 C 837.20609,82.788436 825.104,83.368597 816.25,90.15625 C 813.21288,94.500693 820.05646,97.106824 823.0625,98.34375 C 832.0287,99.771131 841.7322,101.54064 851.15625,102.09375 C 854.45268,101.78879 860.79066,103.33377 861.78125,99.03125 C 861.35863,96.718912 858.491,96.159656 856.53125,95.71875 C 860.70654,94.101126 865.93769,94.373015 869.5625,91.5625 C 869.04209,86.9445 862.24299,90.55148 859.21875,88.625 C 855.93426,88.064713 860.11456,84.016041 856.75,82.90625 C 854.06403,81.600479 850.92685,81.744338 848,81.78125 z M 604.15625,87.21875 C 601.16925,86.988135 594.87402,88.204025 597.03125,92.5 C 598.1347,94.512876 599.97959,95.975267 601.21875,97.90625 C 597.20176,96.808223 593.23742,97.144973 589.9375,94.28125 C 586.7847,91.603322 579.91295,92.865408 580.6875,97.71875 C 582.28658,102.94981 588.65524,105.5325 592.6875,107.5625 C 589.17081,107.88987 585.87405,109.17366 582.625,110.53125 C 591.26105,113.00349 598.44344,119.81078 607.9375,118.90625 C 617.51578,119.91726 630.41143,115.67391 636.9375,124.9375 C 641.51501,132.04045 650.46485,132.13451 658,131.84375 C 676.70328,133.35757 695.08676,137.44396 713.65625,139.875 C 717.51275,138.67703 720.81819,140.21681 723.84375,142.375 C 727.25172,143.84483 729.75023,139.9983 732.28125,139 C 736.61474,141.49948 742.00333,139.25287 746.4274,142.12835 C 753.20013,143.50424 760.97005,147.76897 767.71875,144.53125 C 771.75382,140.80459 765.91606,136.1745 762.15625,135.5 C 755.01278,132.41884 747.67202,135.73264 740.59375,137.09375 C 738.07799,136.17856 735.29682,135.26339 732.71875,135.28125 C 731.13417,131.56793 727.20815,129.77227 723.46875,131.59375 C 709.19922,132.28114 694.94336,129.22024 681.09375,126 C 671.6419,120.99166 660.65136,124.93464 650.875,122.09375 C 645.60196,118.59548 639.95113,115.61126 633.8125,113.9375 C 645.49072,113.62498 657.20489,114.18643 668.378,117.95475 C 673.02083,118.37016 678.18356,121.53967 682.6875,119.78125 C 683.94642,115.66468 677.1352,115.23451 674.5,113.6875 C 665.2929,109.98674 655.48937,107.84588 645.64361,107.33924 C 639.58428,106.12806 633.44253,103.66235 628.25,101 C 631.71983,100.34536 636.18186,95.783699 632.0625,92.90625 C 623.9483,87.96634 613.52689,87.280206 604.15625,87.21875 z M 534.90625,90.28125 C 532.19361,89.682615 526.4683,92.316183 530.0625,95.1875 C 536.20973,99.490328 544.69952,100.3691 550.46875,104.71875 C 555.24357,108.1519 561.99707,107.75164 567.65625,107.96875 C 571.79301,106.10583 567.11328,102.07931 564.75,101.03125 C 555.61177,96.038026 545.59934,90.535902 534.90625,90.28125 z M 896.40625,93.125 C 887.90536,92.748444 883.55755,103.02499 874.875,101.625 C 868.05666,101.70961 860.18728,101.08 854.1875,103.96875 C 853.37826,108.30665 859.81223,109.46324 862.90625,110.375 C 867.71909,111.53235 874.5862,109.62032 876.75,115.53125 C 881.50427,121.24844 890.17075,117.89619 896.46875,120.5 C 902.22632,121.77494 907.78203,123.56007 913.53125,124.8125 C 910.40333,126.49942 908.29538,132.62331 913.125,133.4375 C 921.32404,133.64302 929.59648,133.37199 937.625,135.25 C 941.8202,135.75659 945.71145,133.3837 947.875,129.96875 C 957.06697,137.24811 970.2098,140.25503 981.875,138 C 986.36881,135.86622 981.5429,131.07793 978.75,129.96875 C 976.23746,129.22705 977.73108,125.76477 975.40625,124.1875 C 969.51141,117.69285 965.75704,107.66623 956.21875,105.75 C 945.00403,102.09673 932.76079,104.32144 921.34375,102.21875 C 917.11422,100.67132 915.96957,94.242069 910.53125,95.09375 C 905.81494,94.332819 901.22752,92.76967 896.40625,93.125 z M 694.21875,94.28125 C 689.53597,93.005955 683.96541,99.527399 690.09375,101.71875 C 698.67285,104.92098 708.63515,107.64021 717.65625,105.15625 C 720.58007,101.53735 713.84428,99.432404 711.4375,98.4375 C 705.86644,96.531675 700.20579,94.121978 694.21875,94.28125 z M 606.3125,102.125 C 611.48491,104.02462 619.73243,100.90222 621.96875,107.625 C 622.24069,109.51672 624.72016,111.53375 625.40625,112.09375 C 619.77868,111.7465 613.60728,110.15899 608.625,108.4375 C 607.95552,105.85724 602.79717,105.3835 605.5,102.875 C 605.71411,102.46515 605.3293,101.4325 606.3125,102.125 z M 1271.2188,107.4375 C 1258.1072,107.70328 1245.5786,111.87806 1233,114.65625 C 1229.0049,115.629 1226.4363,112.62923 1224.4688,109.75 C 1219.7244,107.25961 1214.4643,111.96125 1210.4062,113.96875 C 1205.1812,117.37865 1197.9775,123.92714 1201.4062,130.84375 C 1205.4917,134.58776 1210.8991,128.8441 1214.5624,127.02562 C 1219.6672,122.41401 1226.1522,121.36168 1232.8125,121.90625 C 1247.852,119.23573 1263.261,116.58372 1277.5,111.09375 C 1280.8579,107.03217 1273.1968,107.28238 1271.2188,107.4375 z M 803.84375,111.0625 C 798.00941,111.94036 796.14974,119.07021 790.1875,120 C 786.86133,122.04601 781.4027,121.15213 779.3125,124.75 C 781.80953,128.76457 788.14747,126.39985 792.05395,127.9742 C 801.86307,128.57614 812.43346,131.92359 821.96875,128.5625 C 825.88977,126.01495 829.23904,121.72546 834.625,122.84375 C 838.68547,123.15949 845.40654,119.01061 841.90625,114.59375 C 833.03,112.50454 823.02558,116.76234 814.125,113.5 C 810.78087,112.63625 807.41525,110.78975 803.84375,111.0625 z M 1216.0312,136.59375 C 1205.5007,137.00223 1200.3036,148.87092 1189.875,149.3125 C 1180.1673,151.75616 1169.3046,150.74822 1160.25,155.3125 C 1157.6566,158.74524 1163.5603,159.29909 1165.75,158.65625 C 1178.9273,157.61007 1192.3318,157.8824 1204.9341,153.42659 C 1211.8763,150.70951 1221.4696,150.37831 1225.75,143.53125 C 1227.2496,138.13894 1219.8699,136.43494 1216.0312,136.59375 z M 891.15625,142.125 C 888.70867,145.25446 894.60412,145.52523 895.71875,147.59375 C 899.96148,152.01463 906.23197,155.38028 912.3125,152.6875 C 919.01038,149.88901 927.27477,150.9393 933.375,147.0625 C 934.20806,142.73635 927.4787,143.36821 924.78125,142.40625 C 914.54176,140.95365 904.16995,141.71608 893.90625,142.4375 C 892.71603,141.89724 892.05532,139.96747 891.15625,142.125 z M 1294.4062,142.625 C 1280.7286,146.43304 1266.8887,150.83685 1255.3438,159.1875 C 1250.8594,160.69101 1244.7123,160.01914 1242.4688,165.46875 C 1238.035,168.82789 1232.3534,163.49504 1227.9862,162.38939 C 1224.8781,161.27109 1218.824,158.21705 1216.875,162.40625 C 1216.9425,165.34374 1220.0972,167.02045 1221.9062,169 C 1207.0297,166.45732 1194.7623,178.88131 1179.8158,176.19956 C 1171.6193,176.35416 1161.9582,172.5808 1154.5312,177.28125 C 1150.8198,181.73218 1156.5544,187.08346 1159.5,190.25 C 1164.8648,186.87371 1168.5573,193.48894 1170.75,197.28125 C 1175.2097,202.44044 1181.779,196.27836 1186.8125,195.75 C 1194.0329,194.29806 1204.6111,195.00787 1208.0312,187 C 1208.4952,184.91598 1205.9401,183.32986 1209.5793,183.08413 C 1214.1625,180.53649 1221.962,179.39373 1223.1875,173.4375 C 1222.0995,170.61295 1227.5014,173.25034 1228.8438,173.53125 C 1234.435,176.05854 1241.1858,179.09485 1244.0312,184.53125 C 1242.2664,186.51197 1237.95,190.68549 1242.4688,192.21875 C 1256.2635,194.58686 1270.6223,191.97141 1284.4688,194.125 C 1288.3657,191.87527 1282.2672,188.89234 1280.2587,188.1841 C 1274.0502,184.70589 1266.9887,183.32779 1260.5,180.71875 C 1257.8477,178.68263 1253.2943,174.83148 1254.4062,171.4375 C 1268.7629,170.57911 1282.959,176.1443 1297.375,176.09375 C 1301.3664,176.11306 1300.1495,171.1735 1297.0312,170.75 C 1293.9641,169.20112 1290.662,168.39677 1287.3125,167.71875 C 1291.6198,167.0641 1299.194,168.85411 1299.9062,162.625 C 1300.7877,155.5912 1298.0056,148.79156 1295.75,142.25 L 1294.7868,142.5188 L 1294.4062,142.625 z M 986.78125,151.1875 C 981.27075,153.88141 978.98342,161.81506 983.34375,166.5625 C 972.7758,167.99494 961.98004,168.19314 951.4527,168.63649 C 946.22847,170.69628 954.98269,171.06344 957.09375,172.6875 C 966.00288,180.01445 979.8367,181.74943 989.8125,175.84375 C 992.08358,174.88112 992.01343,171.04973 992.84375,170.40625 C 1002.8385,171.80578 1013.3098,170.87042 1023.0938,172.625 C 1015.62,175.01172 1007.1542,173.84505 999.78125,176.21875 C 997.06495,179.98715 1004.1233,181.11435 1006.4688,182.03125 C 1014.9171,184.14177 1022.9392,187.64261 1031.0625,190.375 C 1035.9754,190.23839 1036.1677,182.63548 1041.5312,182.5 C 1048.5234,180.82034 1057.004,180.39241 1062.0938,174.96875 C 1062.7802,170.76538 1056.5483,172.6622 1054.3125,171.40625 C 1038.1495,167.13785 1021.3518,164.94573 1005.4375,160.03125 C 998.32354,157.00257 993.08059,150.73039 985.71875,147.9375 C 986.07292,149.02083 986.42708,150.10417 986.78125,151.1875 z M 798,151.0625 C 791.83715,151.92244 784.45586,151.99041 779.5625,155.96875 C 778.87296,159.76344 784.72888,157.74723 786.875,159.25 C 791.62684,161.47758 796.691,163.27119 802.03125,163.5 C 802.49959,160.18792 809.0215,156.92027 805.65625,152.9375 C 803.69134,151.03181 800.58744,150.97475 798,151.0625 z M 1230.7188,171.375 C 1225.7154,173.56186 1232.3398,167.96054 1230.7188,171.375 z M 1096.2188,179.40625 C 1092.1623,179.20139 1084.9596,181.21187 1086.8438,186.6875 C 1088.9811,191.71723 1096.2193,194.83004 1100.5,190.84375 C 1103.459,189.03439 1110.1801,185.37762 1106.7188,181.28125 C 1103.6804,179.3455 1099.7122,179.45313 1096.2188,179.40625 z M 389.46875,187.4375 C 395.00454,193.05664 404.56294,191.63729 410.40625,197.09375 C 412.07177,198.95536 411.76102,202.44216 414.8125,203.3125 C 423.62607,207.58456 433.56155,208.72107 443.125,210.4375 C 435.09701,200.63679 424.37717,193.28515 411.64605,191.45318 C 404.27333,190.37352 396.86854,186.78509 389.46875,187.4375 z M 1058.7188,192.625 C 1047.6634,192.8671 1043.1151,205.69964 1032.56,206.73787 C 1026.6011,207.94116 1020.8667,209.8519 1015.375,212.40625 C 1016.2902,215.29452 1010.7209,216.66235 1009.2564,218.77931 C 1006.6886,221.60577 1000.9406,222.83106 1000.625,227.09375 C 1004.4591,230.01526 1009.7892,225.57733 1014.0301,225.46633 C 1023.1108,222.88663 1033.2406,224.1677 1041.5442,218.7589 C 1048.2281,216.02995 1053.8076,209.81198 1060.8438,208.53125 C 1061.4852,216.14339 1055.9949,222.97406 1048.9062,225.40625 C 1042.5622,229.03114 1033.6961,230.64988 1029.6562,237.1875 C 1028.9238,242.1704 1036.0439,242.1948 1039.3438,242.9375 C 1046.8814,243.5078 1054.0112,247.60482 1061.5938,245.1875 C 1072.4064,242.53164 1083.218,240.15452 1094.3438,239.90625 C 1097.8515,239.47293 1096.8223,235.20108 1094.125,234.375 C 1092.7966,233.21274 1085.1823,229.50485 1089.2004,230.81104 C 1094.963,231.83467 1100.4402,236.29622 1106.375,235.78125 C 1109.8962,232.75838 1104.1537,228.87338 1102.125,226.8125 C 1096.2388,221.44364 1088.764,218.47008 1081.2812,216.46875 C 1073.4652,211.26858 1076.7677,197.88492 1067.125,194.28125 C 1064.5705,192.96718 1061.5975,192.36132 1058.7188,192.625 z "
+ id="path3866" />
+ </g>
+ <path
+ style="fill:url(#linearGradient3944);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3914"
+ d="M 30.242017,32.719429 C 47.037534,33.321247 63.359279,35.59167 79.576397,39.999525 C 105.8377,50.812809 126.26005,70.808312 148.59614,87.634559 C 171.09052,97.783169 197.93113,94.769652 222.19841,97.33382 C 253.94138,101.38352 280.7769,118.08575 307.54777,134.23732 C 327.45126,141.73255 350.09613,132.80071 371.15962,132.62624 C 405.70455,133.27138 436.74765,147.16174 467.20201,161.89599 C 492.37512,167.13944 518.60062,162.99608 544.31012,164.7338 C 575.52105,167.81615 598.54412,181.9555 615.76055,207.52704 C 635.11274,235.16785 671.15429,236.90051 701.91171,240.27848 C 756.51984,243.07963 809.52849,254.43245 860.98933,272.45612 C 900.66514,287.10887 934.02772,312.88367 967.62437,337.76172 L 966.54587,339.09859 C 934.1146,312.72698 900.4573,287.43053 860.92986,272.59516 C 809.47845,254.57552 756.47947,243.22747 701.88173,240.42671 C 670.31483,237.80319 632.40981,238.69795 612.64839,209.68762 C 596.69426,184.10298 574.61186,169.62456 544.01678,166.4692 C 517.66067,165.17026 490.39473,172.37905 465.03999,165.46825 C 436.22566,147.67194 405.84577,133.32236 371.05973,133.99186 C 349.66951,136.08477 324.98022,148.71795 305.15207,137.6146 C 280.00946,119.20907 253.62144,102.59818 221.90681,98.806423 C 197.00855,96.874161 168.06392,103.03625 145.62713,91.110965 C 125.18601,72.449403 105.54808,52.009774 78.541604,43.038454 C 62.287832,39.246998 46.036218,37.511156 29.395649,39.870363 L 30.242017,32.719429 z " />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6286);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4871"
+ sodipodi:cx="472.58978"
+ sodipodi:cy="741.02081"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="3.0245748"
+ d="M 477.88279 741.02081 A 5.2930055 3.0245748 0 1 1 467.29678,741.02081 A 5.2930055 3.0245748 0 1 1 477.88279 741.02081 z" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6284);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4873"
+ sodipodi:cx="489.22495"
+ sodipodi:cy="751.60681"
+ sodipodi:rx="9.8298674"
+ sodipodi:ry="9.0737238"
+ d="M 499.05481 751.60681 A 9.8298674 9.0737238 0 1 1 479.39508,751.60681 A 9.8298674 9.0737238 0 1 1 499.05481 751.60681 z" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6282);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4875"
+ sodipodi:cx="480.15121"
+ sodipodi:cy="733.45935"
+ sodipodi:rx="6.8052931"
+ sodipodi:ry="9.0737238"
+ d="M 486.95651 733.45935 A 6.8052931 9.0737238 0 1 1 473.34592,733.45935 A 6.8052931 9.0737238 0 1 1 486.95651 733.45935 z" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6280);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4877"
+ sodipodi:cx="484.68808"
+ sodipodi:cy="779.58411"
+ sodipodi:rx="6.8052931"
+ sodipodi:ry="8.3175802"
+ d="M 491.49337 779.58411 A 6.8052931 8.3175802 0 1 1 477.88279,779.58411 A 6.8052931 8.3175802 0 1 1 491.49337 779.58411 z" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6278);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4879"
+ sodipodi:cx="514.93384"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="9.8298674"
+ sodipodi:ry="9.0737238"
+ d="M 524.76371 765.21741 A 9.8298674 9.0737238 0 1 1 505.10397,765.21741 A 9.8298674 9.0737238 0 1 1 524.76371 765.21741 z" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4883"
+ style="opacity:1;fill:url(#radialGradient6276);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(-7.561437,6.049149)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4885"
+ style="opacity:1;fill:url(#radialGradient6274);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(3.024575,-6.049149)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4887"
+ style="opacity:1;fill:url(#radialGradient6272);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(13.61059,19.65974)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4889"
+ style="opacity:1;fill:url(#radialGradient6270);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(6.049149,37.80718)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4891"
+ style="opacity:1;fill:url(#radialGradient6268);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(7.561437,77.12665)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4893"
+ style="opacity:1;fill:url(#radialGradient6266);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(-13.61059,42.34405)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4895"
+ style="opacity:1;fill:url(#radialGradient6264);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(-16.63516,33.27032)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4897"
+ style="opacity:1;fill:url(#radialGradient6262);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(3.024575,13.61059)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4899"
+ style="opacity:1;fill:url(#radialGradient6260);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(4.536862,10.58601)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4901"
+ style="opacity:1;fill:url(#radialGradient6258);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(10.58601,-16.63516)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4903"
+ style="opacity:1;fill:url(#radialGradient6256);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(33.27032,62.00378)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4905"
+ style="opacity:1;fill:url(#radialGradient6254);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(27.22117,58.97921)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4907"
+ style="opacity:1;fill:url(#radialGradient6252);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(25.70888,25.70888)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4909"
+ style="opacity:1;fill:url(#radialGradient6250);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(18.14745,10.58601)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4911"
+ style="opacity:1;fill:url(#radialGradient6248);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(30.24575,21.17202)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4913"
+ style="opacity:1;fill:url(#radialGradient6246);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(21.17202,-15.12287)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4915"
+ style="opacity:1;fill:url(#radialGradient6244);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(-1.512287,-28.73346)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4917"
+ style="opacity:1;fill:url(#radialGradient6242);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(3.024575,-57.46692)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4919"
+ style="opacity:1;fill:url(#radialGradient6240);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(10.58601,-63.51607)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4921"
+ style="opacity:1;fill:url(#radialGradient6238);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(13.61059,-72.58979)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4923"
+ style="opacity:1;fill:url(#radialGradient6236);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(13.61059,-74.10208)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4925"
+ style="opacity:1;fill:url(#radialGradient6234);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(9.073724,-84.68809)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4927"
+ style="opacity:1;fill:url(#radialGradient6232);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(-1.512287,-116.4461)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4929"
+ style="opacity:1;fill:url(#radialGradient6230);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(-3.024575,-137.6181)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4931"
+ style="opacity:1;fill:url(#radialGradient6228);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(7.561437,-51.41777)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4933"
+ style="opacity:1;fill:url(#radialGradient6226);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(18.14745,-25.70888)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4935"
+ style="opacity:1;fill:url(#radialGradient6224);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(28.73346,18.14745)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4937"
+ style="opacity:1;fill:url(#radialGradient6222);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(27.22117,-42.34405)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4939"
+ style="opacity:1;fill:url(#radialGradient6220);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(19.65974,-66.54064)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4941"
+ style="opacity:1;fill:url(#radialGradient6218);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(1.512287,-80.15123)" />
+ <path
+ transform="translate(-214.7448,-238.9414)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6382);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6380"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(-189.0359,-210.2079)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6386);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6384"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(-193.5728,-119.4707)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6390);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6388"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(1.512288,-364.4612)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6394);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6392"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(27.22117,-418.9036)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6398);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6396"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(482.4197,55.95463)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6402);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6400"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(473.3459,-7.561437)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6406);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6404"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(349.3384,-99.81096)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6410);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6408"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(403.7807,-155.7656)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6414);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6412"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(381.0964,-124.0076)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6418);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6416"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(387.1456,-45.36862)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6422);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6420"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(-417.3913,-13.61059)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6426);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6424"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(-408.3176,-51.41777)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6430);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6428"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(-347.8261,-107.3724)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6434);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6432"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(772.7788,-496.0302)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6438);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6436"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(314.5558,-488.4688)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6442);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6440"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ transform="translate(326.6541,-344.8015)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6446);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6444"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4943"
+ style="opacity:1;fill:url(#radialGradient6216);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(-1.512287,-40.83176)" />
+ <path
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="11.342155"
+ sodipodi:cy="765.21741"
+ sodipodi:cx="493.76181"
+ id="path4945"
+ style="opacity:1;fill:url(#radialGradient6214);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(13.61059,-111.9093)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6212);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4881"
+ sodipodi:cx="493.76181"
+ sodipodi:cy="765.21741"
+ sodipodi:rx="11.342155"
+ sodipodi:ry="9.0737238"
+ d="M 505.10397 765.21741 A 11.342155 9.0737238 0 1 1 482.41965,765.21741 A 11.342155 9.0737238 0 1 1 505.10397 765.21741 z"
+ transform="translate(12.0983,-96.78639)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4949"
+ style="opacity:1;fill:url(#radialGradient6210);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(170.8885,60.49149)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4951"
+ style="opacity:1;fill:url(#radialGradient6208);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(160.3025,0)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4953"
+ style="opacity:1;fill:url(#radialGradient6206);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(181.4745,25.70888)" />
+ <path
+ transform="translate(-30.2457,-13.61058)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6294);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6292"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(-202.6465,-101.3232)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6298);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6296"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(-182.9867,92.24953)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6302);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6300"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(432.5142,-154.2533)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6306);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6304"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(446.1248,81.66352)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6310);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6308"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(314.5558,-122.4953)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6314);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6312"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(139.1305,-258.6011)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6318);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6316"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(157.2779,-187.5236)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6322);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6320"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(175.4254,-179.9622)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6326);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6324"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(175.4254,-210.2079)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6330);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6328"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(140.6428,-237.4291)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6334);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6332"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(154.2534,-308.5066)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6338);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6336"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(-108.8846,-326.6541)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6342);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6340"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(576.1815,207.1834)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6346);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6344"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(747.07,190.5482)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6350);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6348"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(812.0983,-37.80718)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6354);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6352"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(960.3025,-148.2042)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6358);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6356"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(837.8072,136.1059)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6362);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6360"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(698.6768,25.70889)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6366);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6364"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(452.174,-65.02835)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6370);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6368"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(-84.68804,137.6182)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6374);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6372"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ transform="translate(-237.4291,-27.22117)"
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6378);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path6376"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4955"
+ style="opacity:1;fill:url(#radialGradient6204);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(-6.049102,68.05293)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4957"
+ style="opacity:1;fill:url(#radialGradient6202);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(179.9622,95.2741)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4959"
+ style="opacity:1;fill:url(#radialGradient6200);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(184.4991,108.8847)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4961"
+ style="opacity:1;fill:url(#radialGradient6198);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(190.5482,226.8431)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4963"
+ style="opacity:1;fill:url(#radialGradient6196);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(190.5482,226.8431)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4965"
+ style="opacity:1;fill:url(#radialGradient6194);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(128.5444,130.0567)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4967"
+ style="opacity:1;fill:url(#radialGradient6192);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(136.1059,113.4216)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4969"
+ style="opacity:1;fill:url(#radialGradient6190);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(139.1304,107.3724)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4971"
+ style="opacity:1;fill:url(#radialGradient6188);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(140.6427,208.6957)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4973"
+ style="opacity:1;fill:url(#radialGradient6186);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(140.6427,225.3308)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4975"
+ style="opacity:1;fill:url(#radialGradient6184);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(139.1304,223.8185)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4977"
+ style="opacity:1;fill:url(#radialGradient6182);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(137.6181,152.741)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4979"
+ style="opacity:1;fill:url(#radialGradient6180);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(145.1796,139.1304)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4981"
+ style="opacity:1;fill:url(#radialGradient6178);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(133.0813,219.2817)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4983"
+ style="opacity:1;fill:url(#radialGradient6176);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(151.2287,255.5766)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4985"
+ style="opacity:1;fill:url(#radialGradient6174);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(167.8639,257.0888)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4987"
+ style="opacity:1;fill:url(#radialGradient6172);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(176.9376,241.966)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4989"
+ style="opacity:1;fill:url(#radialGradient6170);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(182.9868,229.8677)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4991"
+ style="opacity:1;fill:url(#radialGradient6168);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(190.5482,175.4253)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4993"
+ style="opacity:1;fill:url(#radialGradient6166);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(176.9376,139.1304)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4995"
+ style="opacity:1;fill:url(#radialGradient6164);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(167.8639,140.6427)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4997"
+ style="opacity:1;fill:url(#radialGradient6162);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(164.8393,173.913)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path4999"
+ style="opacity:1;fill:url(#radialGradient6160);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(157.2779,143.6673)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path5001"
+ style="opacity:1;fill:url(#radialGradient6158);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(154.2533,104.3478)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path5003"
+ style="opacity:1;fill:url(#radialGradient6156);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(154.2533,93.76181)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path5005"
+ style="opacity:1;fill:url(#radialGradient6154);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(154.2533,137.6181)" />
+ <path
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ sodipodi:ry="4.5368619"
+ sodipodi:rx="5.2930055"
+ sodipodi:cy="564.08319"
+ sodipodi:cx="336.48392"
+ id="path5007"
+ style="opacity:1;fill:url(#radialGradient6152);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc"
+ transform="translate(160.3025,217.7694)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient6150);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4947"
+ sodipodi:cx="336.48392"
+ sodipodi:cy="564.08319"
+ sodipodi:rx="5.2930055"
+ sodipodi:ry="4.5368619"
+ d="M 341.77692 564.08319 A 5.2930055 4.5368619 0 1 1 331.19091,564.08319 A 5.2930055 4.5368619 0 1 1 341.77692 564.08319 z"
+ transform="translate(161.8147,229.8677)" />
+ <path
+ style="fill:url(#linearGradient8560);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1067.1488,240.12493 C 1077.1361,228.72021 1100.8588,220.40676 1102.6547,222.37199 C 1104.7305,224.64343 1090.1619,231.24846 1092.4632,234.53604 C 1094.7645,237.82362 1094.4358,246.70009 1089.1756,243.74127 C 1083.9155,240.78244 1077.9979,237.16611 1073.724,239.79617 C 1069.4502,242.42623 1067.4776,239.79617 1067.1488,240.12493 z "
+ id="path7667"
+ sodipodi:nodetypes="cssssc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Dolphins"
+ style="display:inline">
+ <g
+ id="g9563">
+ <path
+ id="path6450"
+ d="M 711.57359,297.96627 C 722.17449,313.27869 725.70813,315.0455 733.36435,320.93491 C 741.02056,326.8243 764.57814,333.30264 778.71268,335.06945 C 792.84723,336.83627 792.25829,330.94688 789.31359,329.18006 C 786.3689,327.41324 766.9339,319.16808 763.40026,313.27869 C 759.86662,307.3893 751.03254,299.73308 746.90996,296.19945 C 742.78738,292.66581 710.98465,297.96627 711.57359,297.96627 z "
+ style="opacity:1;fill:url(#linearGradient8589);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ sodipodi:nodetypes="csssssssssssssssssssssssssssssssc"
+ id="path6448"
+ d="M 602.6198,279.1202 C 622.64374,272.64187 620.87691,275.58656 625.58844,269.69717 C 630.29994,263.80778 635.60041,256.15158 653.2686,246.13961 C 670.93677,236.12764 673.88146,233.18293 703.91738,221.99309 C 733.95329,210.80323 746.90996,207.26959 781.65737,199.02445 C 816.40481,190.77929 809.33753,190.77929 819.93845,181.35626 C 830.53936,171.93323 838.19556,160.15443 852.91905,152.49823 C 867.64253,144.84202 862.34208,151.32035 861.1642,157.79868 C 859.98633,164.27701 858.80845,180.76732 865.87572,187.24565 C 872.943,193.72399 878.83239,192.54612 906.51255,196.07974 C 934.19269,199.61338 964.81755,205.50278 988.37513,210.21429 C 1011.9327,214.92581 1030.1898,220.22626 1037.846,228.47142 C 1045.5022,236.71656 1058.4589,243.1949 1061.4036,242.01703 C 1064.3483,240.83914 1067.293,235.5387 1077.305,229.64929 C 1087.3169,223.7599 1098.5068,220.22626 1102.6294,220.8152 C 1106.7519,221.40414 1106.163,221.40414 1102.0404,226.11565 C 1097.9179,230.82717 1092.6174,233.18293 1096.74,238.48339 C 1100.8626,243.78384 1110.2856,250.85111 1107.3409,252.61793 C 1104.3962,254.38475 1109.6966,253.79581 1112.0524,260.27414 C 1114.4082,266.75248 1121.4754,276.17551 1130.8985,283.24278 C 1140.3215,290.31006 1152.6892,291.48794 1150.9224,294.43264 C 1149.1556,297.37733 1130.3095,299.73308 1109.6966,290.31006 C 1089.0838,280.88703 1077.8939,266.16353 1072.0045,264.98567 C 1066.1151,263.80778 1057.281,267.34142 1049.0359,267.93036 C 1040.7907,268.5193 1006.0433,257.91839 994.26452,257.91839 C 982.48573,257.91839 961.28391,263.21884 950.09405,265.57459 C 938.90421,267.93036 911.813,269.10823 897.67844,272.05293 C 883.54389,274.99764 814.63798,292.66581 786.3689,294.43264 C 758.09981,296.19945 718.64085,298.5552 704.50632,297.96627 C 690.37177,297.37733 652.67964,291.48794 639.13404,290.31006 C 625.58844,289.13217 599.6751,290.899 592.60783,290.899 C 585.54055,290.899 585.54055,286.18748 589.66313,283.24278 C 593.7857,280.29809 603.79767,279.70914 602.6198,279.1202 z "
+ style="opacity:1;fill:url(#linearGradient8586);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ sodipodi:nodetypes="csssc"
+ id="path7377"
+ d="M 693.87089,272.98255 C 701.83104,284.56093 706.81363,285.02953 717.02768,286.73188 C 730.05338,288.90283 764.78855,291.07378 759.723,286.73188 C 754.65745,282.38998 732.94796,283.11364 728.60608,276.60079 C 724.26418,270.08794 720.64592,270.08794 720.64592,270.08794"
+ style="opacity:1;fill:url(#linearGradient8574);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <g
+ transform="translate(0,-60)"
+ id="g8591"
+ style="opacity:1;display:inline">
+ <path
+ id="path8593"
+ d="M 985.03125,316.6875 C 948.40646,319.44004 912.32813,327.23651 875.93534,331.94798 C 819.459,340.17383 762.35486,343.04288 705.3752,345.17635 C 677.02454,345.70413 648.62372,345.5625 620.375,348.375 C 641.21694,347.04597 661.61111,352.95227 682.30597,354.42661 C 715.14415,359.08008 748.29537,354.5662 781.2072,353.25284 C 816.98877,350.70238 851.78513,340.73969 886.7295,333.00115 C 912.84283,326.02384 940.37126,327.84573 966.4338,320.54519 C 973.18246,319.11945 981.20433,317.62597 987.25,316.65625 C 986.51003,316.63872 985.77071,316.66741 985.03125,316.6875 z M 987.5,316.6875 C 987.84162,316.71211 987.45794,316.5646 987.5,316.6875 z "
+ style="opacity:0.2;fill:url(#linearGradient8600);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path8602"
+ d="M 985.03125,315.9375 C 956.29395,317.8132 928.00517,323.76118 899.51454,327.73094 C 856.53054,334.62517 813.19391,339.10714 769.72165,341.37445 C 734.42422,343.79547 699.06148,344.80701 663.6878,345.11505 C 641.87105,345.46162 620.159,347.78008 598.40625,349.28125 C 613.93608,350.816 629.71378,346.94871 645.15784,350.41529 C 672.30516,353.85285 699.55699,358.8279 727.02922,356.88965 C 750.89134,355.63856 774.84705,355.07507 798.59375,352.34375 C 833.66528,347.14482 867.8794,337.63951 902.58433,330.41276 C 923.44712,327.39545 944.69705,327.07153 965.12222,321.6042 C 974.31205,319.76635 983.58535,317.50238 993,316.90625 C 990.61533,315.7049 987.64622,315.94464 985.03125,315.9375 z "
+ style="opacity:0.2;fill:url(#linearGradient8609);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path8612"
+ d="M 994.26452,317.68626 C 988.27476,317.07143 961.28391,323.21884 950.09405,325.57459 C 938.90421,327.93036 911.813,329.10823 897.67844,332.05293 C 883.54389,334.99764 814.63798,352.66581 786.3689,354.43264 C 758.09981,356.19945 718.64085,358.5552 704.50632,357.96627 C 690.37177,357.37733 652.57657,352.35189 639.13404,350.31006 C 623.64484,347.95736 601.33547,352.92036 594.69695,348.80987 C 632.02247,345.94256 631.07947,346.04596 638.61228,345.46656 C 663.45514,343.55573 698.13324,344.52268 731.32324,342.75649 C 773.32374,340.52145 817.74322,338.18905 857.65381,332.93279 C 934.03381,322.87348 994.5178,309.52193 994.26452,317.68626 z "
+ style="opacity:0.2;fill:url(#linearGradient8634);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path8615"
+ d="M 984.96875,314.4375 C 956.16735,316.29245 927.81588,322.24966 899.26454,326.23094 C 856.34405,333.12986 813.06878,337.60273 769.65915,339.87445 C 734.37207,342.29327 699.01986,343.30918 663.65655,343.61493 C 639.74117,344.03465 615.94334,346.64338 592.09375,348.25 C 600.36792,353.55716 610.86158,350.44229 620.0625,350.625 C 638.12092,349.25555 655.81079,354.14787 673.70182,355.71301 C 692.08947,358.19922 710.63797,359.65198 729.1875,358.3125 C 752.648,357.00287 776.21544,356.54932 799.55415,353.73217 C 834.12518,348.54294 867.90023,339.14911 902.09375,332.03125 C 922.69869,328.86246 943.76213,328.78946 963.9669,323.35072 C 974.20455,321.57433 984.49284,318.46185 995,318.46875 C 995.57513,313.59236 987.76944,314.62763 984.96875,314.4375 z "
+ style="opacity:0.2;fill:url(#linearGradient8623);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path8625"
+ d="M 984.96875,313.6875 C 949.81793,316.17103 915.19467,323.82594 880.30025,328.26961 C 822.05083,337.0149 763.11795,340.05922 704.3129,342.19644 C 671.07856,342.42267 637.85088,343.30919 604.75436,346.53369 C 601.46767,347.50601 588.4373,346.36144 591.2842,348.65039 C 601.08211,354.9633 613.5144,350.69407 624.37423,351.21081 C 643.74327,350.92139 662.71997,356.01676 681.99347,357.42661 C 715.33201,362.10249 748.98297,357.53434 782.39277,356.19081 C 817.99369,353.45467 852.64041,343.67322 887.417,335.93865 C 913.16502,329.02588 940.34724,330.86471 966.08025,323.6887 C 975.98202,321.97587 985.72795,318.91647 995.75,319.28125 C 996.90867,313.09728 988.85041,313.70488 984.96875,313.6875 z "
+ style="opacity:0.2;fill:url(#linearGradient8632);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <path
+ style="opacity:1;fill:url(#radialGradient8580);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 602.6198,279.1202 C 622.64374,272.64187 620.87691,275.58656 625.58844,269.69717 C 630.29994,263.80778 635.60041,256.15158 653.2686,246.13961 C 670.93677,236.12764 673.88146,233.18293 703.91738,221.99309 C 733.95329,210.80323 746.90996,207.26959 781.65737,199.02445 C 816.40481,190.77929 809.33753,190.77929 819.93845,181.35626 C 830.53936,171.93323 838.19556,160.15443 852.91905,152.49823 C 867.64253,144.84202 862.34208,151.32035 861.1642,157.79868 C 859.98633,164.27701 858.80845,180.76732 865.87572,187.24565 C 872.943,193.72399 878.83239,192.54612 906.51255,196.07974 C 934.19269,199.61338 964.81755,205.50278 988.37513,210.21429 C 1011.9327,214.92581 1030.1898,220.22626 1037.846,228.47142 C 1045.5022,236.71656 1058.4589,243.1949 1061.4036,242.01703 C 1064.3483,240.83914 1067.293,235.5387 1077.305,229.64929 C 1087.3169,223.7599 1098.5068,220.22626 1102.6294,220.8152 C 1106.7519,221.40414 1106.163,221.40414 1102.0404,226.11565 C 1097.9179,230.82717 1092.6174,233.18293 1096.74,238.48339 C 1100.8626,243.78384 1110.2856,250.85111 1107.3409,252.61793 C 1104.3962,254.38475 1109.6966,253.79581 1112.0524,260.27414 C 1114.4082,266.75248 1121.4754,276.17551 1130.8985,283.24278 C 1140.3215,290.31006 1152.6892,291.48794 1150.9224,294.43264 C 1149.1556,297.37733 1130.3095,299.73308 1109.6966,290.31006 C 1089.0838,280.88703 1077.8939,266.16353 1072.0045,264.98567 C 1066.1151,263.80778 1057.281,267.34142 1049.0359,267.93036 C 1040.7907,268.5193 1006.0433,257.91839 994.26452,257.91839 C 982.48573,257.91839 961.28391,263.21884 950.09405,265.57459 C 938.90421,267.93036 911.813,269.10823 897.67844,272.05293 C 883.54389,274.99764 814.63798,292.66581 786.3689,294.43264 C 758.09981,296.19945 718.64085,298.5552 704.50632,297.96627 C 690.37177,297.37733 652.67964,291.48794 639.13404,290.31006 C 625.58844,289.13217 599.6751,290.899 592.60783,290.899 C 585.54055,290.899 585.54055,286.18748 589.66313,283.24278 C 593.7857,280.29809 603.79767,279.70914 602.6198,279.1202 z "
+ id="path7345"
+ sodipodi:nodetypes="csssssssssssssssssssssssssssssssc" />
+ <path
+ clip-path="none"
+ id="path8323"
+ d="M 855.9821,189.21101 C 853.94164,190.15187 853.83003,194.40837 857.01335,193.27351 C 862.00773,194.46728 861.19992,200.53214 859.9196,204.21101 C 859.77319,210.85359 868.6935,212.52153 873.76335,212.86726 C 885.61016,213.99481 897.01771,218.80172 909.13835,217.21101 C 920.85073,215.93171 933.18081,208.77336 944.8571,214.36726 C 946.94461,216.51984 945.80236,221.32161 948.38835,223.99226 C 949.24518,226.14255 954.79811,229.92417 954.0446,225.46101 C 953.93326,222.28525 948.91199,224.16665 950.26335,220.27351 C 950.08097,215.05329 946.21389,208.16629 939.92037,210.21895 C 921.73954,211.29198 903.06927,219.21335 885.02147,212.8026 C 877.31543,211.8176 869.67779,210.27812 862.5446,207.11726 C 864.25546,201.15215 865.4047,188.65651 855.9821,189.21101 z M 808.2321,200.36726 C 806.51281,200.84129 804.19349,204.39013 808.07585,203.05476 C 815.44576,202.48528 824.92164,204.4782 827.13835,212.58601 C 831.22674,221.85655 829.81029,233.74357 837.82585,240.99226 C 851.43008,246.39935 865.6183,238.50266 879.53748,238.40436 C 886.40456,237.51373 894.01761,238.03804 900.45085,237.36726 C 900.76306,233.33747 896.12768,236.7768 893.83134,236.19069 C 875.62637,237.80508 856.72989,242.03752 838.70085,238.67976 C 830.50676,230.76295 832.41545,218.00075 826.6071,208.67976 C 823.82954,202.80609 817.49338,200.41157 811.3571,200.61726 C 810.31659,200.42119 809.30877,200.28594 808.2321,200.36726 z M 774.9196,201.86726 C 774.15016,204.05771 774.26868,205.76098 777.1071,205.55476 C 789.07136,210.70698 790.68718,225.46997 795.45085,236.08601 C 797.20642,240.84381 798.74095,245.706 800.32585,250.55476 C 795.29203,234.74619 793.05075,216.62542 781.13835,204.17976 C 779.70077,203.48941 775.94797,199.97706 774.9196,201.86726 z M 723.82585,220.21101 C 721.67295,224.70032 728.29867,221.6406 730.6696,222.46101 C 744.06944,222.80351 758.99643,226.72226 767.5446,237.58601 C 769.58587,241.29271 765.90288,246.94159 761.57585,245.11726 C 767.11677,246.97473 771.86009,251.57973 771.30736,257.83317 C 770.19794,262.56792 774.69993,258.74119 772.95085,256.71101 C 775.14231,243.57746 767.62196,227.6511 753.4257,225.75276 C 743.69771,223.39209 734.11779,219.33366 723.82585,220.21101 z M 682.70085,233.30476 C 680.31807,238.25499 687.27181,235.94156 690.20025,236.32916 C 713.67558,235.71129 739.10751,234.57004 760.5446,244.61726 C 736.43115,233.02908 708.51712,236.32379 682.70085,233.30476 z M 804.1071,261.86726 C 805.35919,264.57832 806.61911,269.91951 808.1696,271.21101 C 808.50274,267.4287 804.31033,264.91564 803.8571,261.05476 C 802.95812,258.56658 803.84578,261.09651 804.1071,261.86726 z "
+ style="opacity:1;fill:url(#linearGradient8571);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ sodipodi:nodetypes="cssssss"
+ id="path7365"
+ d="M 781.65737,199.02445 C 816.40481,190.77929 809.33753,190.77929 819.93845,181.35626 C 830.53936,171.93323 838.19556,160.15443 852.91905,152.49823 C 867.64253,144.84202 862.34208,151.32035 861.1642,157.79868 C 859.98633,164.27701 858.80845,180.76732 865.87572,187.24565 C 872.943,193.72399 878.83239,192.54612 906.51255,196.07974 C 1493.5139,261.03846 315.68722,394.56532 781.65737,199.02445 z "
+ style="opacity:1;fill:url(#linearGradient8577);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ transform="matrix(0.954811,-0.297213,0.297213,0.954811,-90.76609,246.7864)"
+ d="M 865.40646 223.81853 A 71.644615 10.207939 0 1 1 722.11723,223.81853 A 71.644615 10.207939 0 1 1 865.40646 223.81853 z"
+ sodipodi:ry="10.207939"
+ sodipodi:rx="71.644615"
+ sodipodi:cy="223.81853"
+ sodipodi:cx="793.76184"
+ id="path3179"
+ style="opacity:1;fill:url(#linearGradient3187);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.25142858;display:inline"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="csssssc"
+ id="path6772"
+ d="M 909.2792,206.98611 C 919.79946,213.23251 934.65932,227.63212 967.53514,224.34454 C 1000.4109,221.05696 1032.6292,247.68636 1034.6018,239.46741 C 1036.5743,231.24846 1032.958,227.63212 1024.4103,223.35826 C 1015.8626,219.08441 999.42467,212.18049 964.24755,207.24912 C 929.07044,202.31774 887.25241,196.59735 886.26613,201.85748 C 885.27986,207.11761 910.26547,207.31487 909.2792,206.98611 z "
+ style="opacity:1;fill:url(#linearGradient7665);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ id="path3153"
+ d="M 649.03969,249.41776 C 658.49149,249.03969 669.83364,250.55198 662.65028,257.73534 C 655.46692,264.91871 638.07561,261.13799 636.9414,265.29678 C 635.80718,269.45557 631.27032,277.01701 623.33081,278.52929 C 615.3913,280.04158 587.79206,287.60302 588.92627,284.95651 C 590.06049,282.31001 610.85444,278.90737 618.79395,275.88279 C 626.73346,272.85822 630.51417,265.29678 636.18525,260.00377 C 641.85633,254.71077 649.41777,249.79583 649.03969,249.41776 z "
+ style="opacity:1;fill:url(#linearGradient3161);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path4087"
+ d="M 800.84334,193.82149 C 808.73879,191.48842 805.77714,195.45267 823.85926,177.73807 C 839.96713,161.95759 845.28152,155.71205 854.9169,151.39454 C 861.73066,148.34137 861.84941,148.62154 861.84941,148.62154"
+ style="opacity:1;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4095);stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path3192"
+ d="M 862.40401,152.50374 C 860.4629,159.43625 858.89947,174.38962 863.51321,184.67058 C 867.51278,193.58297 880.70583,194.37609 891.52054,194.65339 C 902.33525,194.93069 910.93156,195.76259 910.93156,195.76259"
+ style="opacity:1;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4085);stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ <path
+ style="opacity:1;fill:url(#linearGradient13284);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 628.78563,267.57766 C 637.87651,261.8201 643.33103,258.48678 647.27041,259.09284 C 651.20979,259.6989 645.14921,262.72919 645.14921,262.72919"
+ id="path13276" />
+ <path
+ id="path13266"
+ d="M 628.78563,267.57766 C 637.87651,261.8201 643.33103,258.48678 647.27041,259.09284 C 651.20979,259.6989 645.14921,262.72919 645.14921,262.72919"
+ style="opacity:1;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13274);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ id="path12377"
+ d="M 587.27063,289.09273 C 589.39183,286.97153 599.99786,285.75941 607.57359,284.85033 C 615.14932,283.94124 632.42198,280.60792 636.05833,280.91095 C 639.69468,281.21398 641.20983,281.82003 641.20983,281.82003"
+ style="opacity:1;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.25142858;display:inline" />
+ <path
+ style="opacity:1;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.25142858;display:inline"
+ d="M 589.27063,289.58045 C 591.39183,287.45925 601.99786,286.24713 609.57359,285.33805 C 617.14932,284.42896 634.42198,281.09564 638.05833,281.39867 C 641.69468,281.7017 643.20983,282.30775 643.20983,282.30775"
+ id="path2264" />
+ <path
+ sodipodi:nodetypes="csssc"
+ id="path3167"
+ d="M 693.87089,272.98255 C 701.83104,284.56093 706.81363,285.02953 717.02768,286.73188 C 730.05338,288.90283 764.78855,291.07378 759.723,286.73188 C 754.65745,282.38998 732.94796,283.11364 728.60608,276.60079 C 724.26418,270.08794 720.64592,270.08794 720.64592,270.08794"
+ style="opacity:1;fill:url(#linearGradient8563);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8565);stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ <path
+ style="opacity:1;fill:url(#linearGradient8568);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 693.87089,272.98255 C 701.83104,284.56093 706.81363,285.02953 717.02768,286.73188 C 730.05338,288.90283 764.78855,291.07378 759.723,286.73188 C 754.65745,282.38998 732.94796,283.11364 728.60608,276.60079 C 724.26418,270.08794 720.64592,270.08794 720.64592,270.08794"
+ id="path3163"
+ sodipodi:nodetypes="csssc" />
+ <path
+ id="path4097"
+ d="M 924.71517,267.05666 C 910.09682,262.87999 906.75548,256.61498 932.23318,251.18531 C 957.71088,245.75563 966.89956,237.81996 1000.3129,243.6673 C 1033.7263,249.51464 1050.433,263.29765 1065.469,254.94431 C 1080.505,246.59097 1090.9467,239.07296 1097.2117,244.9203 C 1103.4767,250.76764 1098.0471,253.27364 1103.8944,259.12098 C 1109.7417,264.96832 1124.7778,285.85168 1136.8901,290.86369 C 1149.0025,295.8757 1130.6251,296.29336 1118.9304,290.02836 C 1107.2357,283.76335 1090.9467,274.157 1082.5934,267.05666 C 1074.24,259.95632 1065.0513,263.29765 1058.7863,265.38599 C 1052.5213,267.47433 1032.891,265.38599 1010.3369,257.86798 C 987.78292,250.34997 971.49389,261.20932 955.20487,263.29765 C 938.91585,265.38599 924.2975,267.47433 924.71517,267.05666 z "
+ style="opacity:1;fill:url(#linearGradient4990);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ id="path8636"
+ d="M 864.05582,145.03125 C 841.60333,150.95865 828.68463,172.4152 811.71207,186.46875 C 801.19472,192.51965 788.35245,193.18436 776.79716,196.74218 C 730.85799,207.94088 684.54796,222.11618 644.92409,248.57346 C 636.37248,254.07817 629.58458,261.64138 623.33707,269.4375 C 617.60725,272.70883 610.50323,272.3095 604.61832,275.34375 C 597.54698,276.82911 586.88897,278.53139 585.89957,287.3125 C 585.99005,294.91546 595.58859,295.80675 601.30428,294.72578 C 625.99496,292.89248 650.76211,294.19121 675.09028,298.50293 C 698.22526,302.15446 721.81134,303.0659 745.18082,300.90625 C 776.38352,299.85632 807.63507,297.84039 838.05582,290.53125 C 870.0773,283.88578 901.54782,273.84807 934.4244,272.04316 C 952.31462,270.83013 969.59913,265.57784 987.18082,262.78125 C 1010.5942,258.75812 1032.3208,272.77097 1055.5558,271.65625 C 1063.4386,270.94521 1073.0818,265.10097 1079.4282,272.62674 C 1094.7341,285.30044 1111.6482,297.52692 1131.9621,300.21875 C 1140.2213,301.4292 1150.2027,302.32757 1157.0871,296.9375 C 1160.5113,291.918 1154.0353,287.21581 1149.4934,286.6875 C 1134.2418,281.82576 1122.6875,269.01056 1116.5246,254.59375 C 1113.5093,252.76141 1115.4899,249.1489 1112.8996,246.71875 C 1110.0919,242.24274 1104.18,239.68996 1102.5246,234.625 C 1105.6793,229.80593 1112.7884,226.99746 1112.3684,220.25 C 1107.0822,213.55176 1097.7303,217.99904 1091.1808,219.9375 C 1080.6438,223.83001 1071.2353,230.33222 1063.1184,237.96875 C 1049.0908,234.70326 1041.8352,220.11805 1028.1002,216.11851 C 1006.0477,207.20681 982.04322,204.97282 958.9945,199.86002 C 932.0301,194.7235 904.6516,191.61321 877.58707,187.9375 C 870.06769,185.75589 866.98414,177.67849 867.27457,170.5 C 866.45783,163.02039 869.77876,155.79627 869.83707,148.53125 C 869.06172,146.16753 866.49321,144.67322 864.05582,145.03125 z "
+ style="opacity:0.6;fill:url(#radialGradient9531);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ </g>
+ <path
+ style="fill:url(#linearGradient2840);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;opacity:1;display:inline"
+ d="M 311.42857,-17.142857 L 1337.1429,717.14286 L 1328.5714,391.42857 L 331.42857,-20 L 311.42857,-17.142857 z "
+ id="path2832" />
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/42470-flower_from_my_garden_v2.svg b/PerformanceTests/PageLoad/svg/files/42470-flower_from_my_garden_v2.svg
new file mode 100644
index 000000000..0066fc1da
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/42470-flower_from_my_garden_v2.svg
@@ -0,0 +1,1914 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1280"
+ height="800"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44+devel"
+ version="1.0"
+ sodipodi:docbase="/home/it-s/Media/Pictures/Vector"
+ sodipodi:docname="flower_from_my_garden_v2.svg"
+ inkscape:export-filename="/home/it-s/Media/Pictures/Vector/flower_from_my_garden.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient4368">
+ <stop
+ id="stop4370"
+ offset="0"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ id="stop4372"
+ offset="1"
+ style="stop-color:#fed7dd;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4241">
+ <stop
+ id="stop4243"
+ offset="0"
+ style="stop-color:#ae0015;stop-opacity:1;" />
+ <stop
+ id="stop4245"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2340">
+ <stop
+ style="stop-color:#ae0015;stop-opacity:1;"
+ offset="0"
+ id="stop2342" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="1"
+ id="stop2344" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5686">
+ <stop
+ style="stop-color:#da4330;stop-opacity:1;"
+ offset="0"
+ id="stop5688" />
+ <stop
+ style="stop-color:#da4330;stop-opacity:0;"
+ offset="1"
+ id="stop5690" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4267">
+ <stop
+ style="stop-color:#f6753b;stop-opacity:1;"
+ offset="0"
+ id="stop4269" />
+ <stop
+ style="stop-color:#bc2b12;stop-opacity:1;"
+ offset="1"
+ id="stop4271" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3969">
+ <stop
+ style="stop-color:#fed7dd;stop-opacity:1;"
+ offset="0"
+ id="stop3971" />
+ <stop
+ style="stop-color:#fed7dd;stop-opacity:0;"
+ offset="1"
+ id="stop3973" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3859">
+ <stop
+ style="stop-color:#bc0f0e;stop-opacity:1;"
+ offset="0"
+ id="stop3861" />
+ <stop
+ style="stop-color:#bc0f0e;stop-opacity:0;"
+ offset="1"
+ id="stop3863" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3827">
+ <stop
+ style="stop-color:#b71010;stop-opacity:1;"
+ offset="0"
+ id="stop3829" />
+ <stop
+ id="stop3835"
+ offset="0.23999999"
+ style="stop-color:#b71010;stop-opacity:1;" />
+ <stop
+ style="stop-color:#fe6b53;stop-opacity:1;"
+ offset="1"
+ id="stop3831" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3811">
+ <stop
+ style="stop-color:#f97580;stop-opacity:1;"
+ offset="0"
+ id="stop3813" />
+ <stop
+ style="stop-color:#f97580;stop-opacity:0;"
+ offset="1"
+ id="stop3815" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3777">
+ <stop
+ style="stop-color:white;stop-opacity:0.25773194;"
+ offset="0"
+ id="stop3779" />
+ <stop
+ id="stop3785"
+ offset="0.31999999"
+ style="stop-color:white;stop-opacity:0.10309278;" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop3781" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3767">
+ <stop
+ style="stop-color:#9e060e;stop-opacity:1;"
+ offset="0"
+ id="stop3769" />
+ <stop
+ style="stop-color:#9e060e;stop-opacity:0;"
+ offset="1"
+ id="stop3771" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#fc5c43;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#fc5c43;stop-opacity:0;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2846">
+ <stop
+ style="stop-color:#9d1311;stop-opacity:1;"
+ offset="0"
+ id="stop2848" />
+ <stop
+ style="stop-color:#eb3b24;stop-opacity:1;"
+ offset="1"
+ id="stop2850" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3827"
+ id="linearGradient4131"
+ x1="696.71863"
+ y1="545.61816"
+ x2="671.7771"
+ y2="628.79401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-402.5547,260.1)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2846"
+ id="radialGradient4153"
+ cx="802.04156"
+ cy="421.22208"
+ fx="802.04156"
+ fy="421.22208"
+ r="207.93948"
+ gradientTransform="matrix(0.751391,0,0,0.320511,-407.0999,509.9099)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3811"
+ id="radialGradient4157"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.320511,-407.0999,509.9099)"
+ cx="969.90546"
+ cy="566.58087"
+ fx="969.90546"
+ fy="566.58087"
+ r="207.93948" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4267"
+ id="linearGradient4281"
+ x1="419.58414"
+ y1="391.88739"
+ x2="351.53119"
+ y2="461.45261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-48.02741,262.776)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4267"
+ id="linearGradient4289"
+ x1="847.60211"
+ y1="322.51132"
+ x2="817.35638"
+ y2="458.61719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-417.0774,264.4144)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4267"
+ id="linearGradient4313"
+ x1="804.35632"
+ y1="444.0394"
+ x2="824.36792"
+ y2="456.1377"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-420.7358,260.1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4267"
+ id="linearGradient4323"
+ x1="703.81458"
+ y1="445.42795"
+ x2="771.97827"
+ y2="445.42798"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-417.0958,249.91)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4267"
+ id="linearGradient4333"
+ x1="654.56091"
+ y1="363.61755"
+ x2="733.36243"
+ y2="363.61755"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-417.0591,281.173)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859"
+ id="radialGradient4357"
+ cx="914.81305"
+ cy="199.97054"
+ fx="914.81305"
+ fy="199.97054"
+ r="40.598881"
+ gradientTransform="matrix(0.751391,0,0,0.618543,-420.7358,291.2111)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="radialGradient4365"
+ cx="948.59186"
+ cy="323.32593"
+ fx="948.59186"
+ fy="323.32593"
+ r="16.547247"
+ gradientTransform="matrix(0.751391,0,0,2.109932,-407.0999,-173.4699)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="radialGradient4381"
+ cx="699.88611"
+ cy="360.21091"
+ fx="699.88611"
+ fy="360.21091"
+ r="18.46102"
+ gradientTransform="matrix(0.751391,0,0,1.213128,-410.9524,94.4886)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3811"
+ id="radialGradient4397"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.32398,-403.691,420.0957)"
+ cx="816.91919"
+ cy="363.16226"
+ fx="816.91919"
+ fy="363.16226"
+ r="44.84116" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3811"
+ id="radialGradient4401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,3.897332,-419.7751,-509.2689)"
+ cx="660.75488"
+ cy="249.24316"
+ fx="660.75488"
+ fy="249.24316"
+ r="9.4333601" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="radialGradient4430"
+ cx="226.27574"
+ cy="31.985846"
+ fx="226.27574"
+ fy="31.985846"
+ r="57.199699"
+ gradientTransform="matrix(0.788619,-9.116447e-2,3.046252e-2,0.263516,-28.44291,419.6587)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3777"
+ id="radialGradient4763"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.809367e-2,0.199388,-0.459252,6.470764e-2,616.2233,388.4857)"
+ cx="970.51172"
+ cy="520.72949"
+ fx="970.51172"
+ fy="520.72949"
+ r="212.78856" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2846"
+ id="linearGradient4766"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-416.1379,263.631)"
+ x1="1266.2382"
+ y1="499.76886"
+ x2="1264.726"
+ y2="490.92142" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="radialGradient4769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.505744,4.272105e-2,-1.983019e-2,0.234755,-114.3407,454.2965)"
+ cx="1185.6301"
+ cy="471.7283"
+ fx="1185.6301"
+ fy="471.7283"
+ r="212.78856" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="linearGradient4772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-414.9405,261.2363)"
+ x1="1334.1628"
+ y1="354.99237"
+ x2="1278.1698"
+ y2="510.758" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5686"
+ id="linearGradient5692"
+ x1="340.21539"
+ y1="705.12885"
+ x2="322.27826"
+ y2="662.78479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,-3.473113,253.5985)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2340"
+ id="radialGradient2346"
+ cx="326.65402"
+ cy="741.09021"
+ fx="326.65402"
+ fy="741.09021"
+ r="644.23438"
+ gradientTransform="matrix(1,0,0,0.627934,0,89.3889)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient2052"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.255081,0,0,1.255081,-977.1432,-48.42536)"
+ x1="580.672"
+ y1="591.04443"
+ x2="761.63422"
+ y2="591.04443" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient2061"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.255081,0,0,1.255081,-977.1432,-48.42536)"
+ x1="580.672"
+ y1="591.04443"
+ x2="761.63422"
+ y2="591.04443" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient2073"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.255081,0,0,1.255081,-977.1432,-48.42536)"
+ x1="580.672"
+ y1="591.04443"
+ x2="761.63422"
+ y2="591.04443" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient2082"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.255081,0,0,1.255081,-977.1432,-48.42536)"
+ x1="580.672"
+ y1="591.04443"
+ x2="761.63422"
+ y2="591.04443" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient2084"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.255081,0,0,1.255081,-977.1432,-48.42536)"
+ x1="580.672"
+ y1="591.04443"
+ x2="761.63422"
+ y2="591.04443" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient2944"
+ cx="759.35681"
+ cy="362.44785"
+ fx="759.35681"
+ fy="362.44785"
+ r="195.17541"
+ gradientTransform="matrix(0.186456,7.717332e-2,-0.413041,0.99794,391.5892,55.2728)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3833"
+ cx="369.86444"
+ cy="311.41803"
+ fx="369.86444"
+ fy="311.41803"
+ r="59.406929"
+ gradientTransform="matrix(9.765594e-2,3.706165e-2,-0.315477,0.831266,303.5137,202.3137)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3839"
+ cx="192.61562"
+ cy="504.74197"
+ fx="192.61562"
+ fy="504.74197"
+ r="93.567398"
+ gradientTransform="matrix(4.175922e-2,5.772373e-2,-0.353835,0.255975,420.4142,414.4079)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3845"
+ cx="368.57275"
+ cy="529.10217"
+ fx="368.57275"
+ fy="529.10217"
+ r="64.073608"
+ gradientTransform="matrix(7.61915e-2,-5.102768e-2,0.360745,0.538642,-68.47411,299.4879)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3849"
+ cx="291.11115"
+ cy="534.49036"
+ fx="291.11115"
+ fy="534.49036"
+ r="26.921818"
+ gradientTransform="matrix(0.199375,4.418424e-2,-0.185743,0.838139,235.7199,108.6901)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3853"
+ cx="332.76935"
+ cy="475.12479"
+ fx="332.76935"
+ fy="475.12479"
+ r="84.163399"
+ gradientTransform="matrix(8.476938e-2,-5.479195e-2,0.522323,0.80809,-154.3416,163.8993)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3868"
+ cx="298.27332"
+ cy="358.77466"
+ fx="298.27332"
+ fy="358.77466"
+ r="44.090073"
+ gradientTransform="matrix(0.194912,-8.433114e-2,0.400825,0.926414,-63.17271,137.674)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3872"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.187956,-9.886827e-2,0.457499,0.86974,-84.53691,163.9551)"
+ cx="228.76398"
+ cy="405.04355"
+ fx="228.76398"
+ fy="405.04355"
+ r="44.090073" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3882"
+ cx="451.5976"
+ cy="218.5388"
+ fx="451.5976"
+ fy="218.5388"
+ r="31.758034"
+ gradientTransform="matrix(0.891646,-0.166009,5.229625e-2,0.280887,37.41461,254.3366)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3892"
+ cx="522.27118"
+ cy="418.771"
+ fx="522.27118"
+ fy="418.771"
+ r="12.329867"
+ gradientTransform="matrix(0.799499,-0.600667,1.343713,1.788507,-465.3282,-25.80265)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3902"
+ cx="341.60867"
+ cy="436.60693"
+ fx="341.60867"
+ fy="436.60693"
+ r="32.514179"
+ gradientTransform="matrix(1,0,0,0.27907,0,335.7981)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3914"
+ cx="172.93881"
+ cy="450.12869"
+ fx="172.93881"
+ fy="450.12869"
+ r="10.586011"
+ gradientTransform="matrix(1,0,0,3.071429,0,-944.4775)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient3939"
+ cx="139.88658"
+ cy="347.06995"
+ fx="139.88658"
+ fy="347.06995"
+ r="12.854443"
+ gradientTransform="matrix(1,0,0,2.470588,0,-529.3005)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="radialGradient3943"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.233902,-2.299452e-2,0.329615,3.352877,-32.37591,-1066.413)"
+ cx="222.87907"
+ cy="488.0502"
+ fx="222.87907"
+ fy="488.0502"
+ r="44.090073" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="radialGradient3947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.573617e-2,2.746984e-2,-0.186926,0.447317,296.8658,310.2991)"
+ cx="605.14734"
+ cy="644.73328"
+ fx="605.14734"
+ fy="644.73328"
+ r="93.567398" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="radialGradient3951"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.386725,3.555252e-2,-0.280696,3.053256,227.0215,-1225.225)"
+ cx="362.08401"
+ cy="603.65143"
+ fx="362.08401"
+ fy="603.65143"
+ r="26.921818" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="radialGradient3955"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.151843,-8.014518e-2,0.465661,0.882232,-143.9152,94.5017)"
+ cx="151.97751"
+ cy="609.48169"
+ fx="151.97751"
+ fy="609.48169"
+ r="64.073608" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="radialGradient3960"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.688511e-2,-5.137117e-2,0.477789,0.80809,-130.3501,164.0477)"
+ cx="118.27176"
+ cy="564.25787"
+ fx="118.27176"
+ fy="564.25787"
+ r="84.163399" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3998"
+ x1="374.70029"
+ y1="585.48682"
+ x2="988.35663"
+ y2="585.48682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5686"
+ id="linearGradient4006"
+ x1="0.80943799"
+ y1="796.03638"
+ x2="201.0632"
+ y2="675.05341"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,3.711087,253.5985)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient4014"
+ x1="488.52472"
+ y1="832.16095"
+ x2="360.08545"
+ y2="680.93225"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,-3.473113,253.5985)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient4029"
+ x1="815.12286"
+ y1="525.36475"
+ x2="983.48676"
+ y2="539.1748"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,258.388)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient4037"
+ x1="775.80341"
+ y1="591.38043"
+ x2="1003.1465"
+ y2="605.95911"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,258.388)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient4051"
+ x1="797.73157"
+ y1="571.72906"
+ x2="1005.1588"
+ y2="580.8028"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient4059"
+ x1="769.25421"
+ y1="495.32132"
+ x2="910.89697"
+ y2="506.00565"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient4067"
+ x1="763.70508"
+ y1="626.46503"
+ x2="922.9953"
+ y2="626.46503"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="linearGradient4081"
+ x1="845.36865"
+ y1="482.41965"
+ x2="1008.6834"
+ y2="527.78827"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="linearGradient4091"
+ x1="846.88092"
+ y1="642.98157"
+ x2="1022.294"
+ y2="642.98157"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="linearGradient4103"
+ x1="-18.13516"
+ y1="617.01324"
+ x2="234.39224"
+ y2="617.01324"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="linearGradient4111"
+ x1="92.885887"
+ y1="224.57468"
+ x2="104.916"
+ y2="309.26276"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="linearGradient4121"
+ x1="186.14201"
+ y1="117.95841"
+ x2="173.81854"
+ y2="170.13934"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,-1.691813,253.5692)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="linearGradient4159"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-427.341,280.7111)"
+ x1="695.14056"
+ y1="556.10138"
+ x2="688.13336"
+ y2="606.70856" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5686"
+ id="radialGradient4174"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,1.066633,-422.7589,217.7963)"
+ cx="990.23682"
+ cy="249.30748"
+ fx="990.23682"
+ fy="249.30748"
+ r="154.25752" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient4177"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.206969,0.135938,-0.17937,0.273093,154.6778,240.2868)"
+ cx="1267.9092"
+ cy="72.953186"
+ fx="1267.9092"
+ fy="72.953186"
+ r="183.06946" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="radialGradient4180"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.316406,0.254173,-0.537141,0.668651,235.1039,69.6458)"
+ cx="745.1485"
+ cy="448.15134"
+ fx="745.1485"
+ fy="448.15134"
+ r="183.06946" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3777"
+ id="radialGradient4183"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.316406,0.254173,-0.537141,0.668651,235.1039,69.6458)"
+ cx="645.0929"
+ cy="363.827"
+ fx="645.0929"
+ fy="363.827"
+ r="183.06946" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3777"
+ id="radialGradient4186"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.188416,0.168792,-0.566082,0.631894,328.1987,138.0977)"
+ cx="948.93121"
+ cy="320.42905"
+ fx="948.93121"
+ fy="320.42905"
+ r="183.06946" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3811"
+ id="radialGradient4189"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.226516,0.112614,-0.218488,0.439476,180.665,253.0638)"
+ cx="1042.062"
+ cy="156.94098"
+ fx="1042.062"
+ fy="156.94098"
+ r="183.06946" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3811"
+ id="radialGradient4192"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.158089,0.197483,-0.510218,0.408441,297.7552,169.4957)"
+ cx="705.28467"
+ cy="208.4906"
+ fx="705.28467"
+ fy="208.4906"
+ r="183.06946" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3827"
+ id="linearGradient4196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-402.3053,277.0712)"
+ x1="839.31946"
+ y1="214.7448"
+ x2="976.93762"
+ y2="314.55576" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5686"
+ id="radialGradient4199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,1.42753,-407.0998,70.5481)"
+ cx="696"
+ cy="288.74759"
+ fx="696"
+ fy="288.74759"
+ r="101.9294" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3777"
+ id="radialGradient4202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.252862,-3.148202e-2,3.920372e-2,0.314883,-76.34941,375.4441)"
+ cx="724.36414"
+ cy="133.38408"
+ fx="724.36414"
+ fy="133.38408"
+ r="106.6873" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859"
+ id="radialGradient4205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.359885,-8.901233e-3,2.369767e-2,0.958073,-150.5614,191.3846)"
+ cx="690.28992"
+ cy="332.42395"
+ fx="690.28992"
+ fy="332.42395"
+ r="106.6873" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="radialGradient4208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.187646,5.901388e-3,-1.795409e-2,0.570888,-30.54391,290.4567)"
+ cx="510.08331"
+ cy="145.3734"
+ fx="510.08331"
+ fy="145.3734"
+ r="106.6873" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3777"
+ id="radialGradient4211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121482,-0.143136,0.535894,0.454821,-73.07031,375.8185)"
+ cx="773.05878"
+ cy="214.71573"
+ fx="773.05878"
+ fy="214.71573"
+ r="106.6873" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3811"
+ id="radialGradient4214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.696963,-0.280767,0.543198,1.348407,-495.1557,283.8)"
+ cx="702.90228"
+ cy="220.13289"
+ fx="702.90228"
+ fy="220.13289"
+ r="106.6873" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2846"
+ id="linearGradient4217"
+ gradientUnits="userSpaceOnUse"
+ x1="753.59998"
+ y1="383.21359"
+ x2="670.56628"
+ y2="153.34592"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-407.0999,265.7816)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient4220"
+ gradientUnits="userSpaceOnUse"
+ x1="377.625"
+ y1="384.75104"
+ x2="790.65625"
+ y2="384.75104"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-407.0998,265.7815)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="radialGradient4223"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,2.18671e-7,-1.121783e-7,0.385464,-407.0999,395.1579)"
+ cx="719.03125"
+ cy="568.75623"
+ fx="719.03125"
+ fy="568.75623"
+ r="138.87579" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3827"
+ id="linearGradient4226"
+ gradientUnits="userSpaceOnUse"
+ x1="544.08331"
+ y1="537.71722"
+ x2="540.84308"
+ y2="440.93085"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-407.0999,265.7816)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2846"
+ id="linearGradient4229"
+ gradientUnits="userSpaceOnUse"
+ x1="568.05713"
+ y1="404.97525"
+ x2="532.7652"
+ y2="512.34766"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-407.0999,265.7816)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="linearGradient4233"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751391,0,0,0.751391,-407.0999,265.7816)"
+ x1="605.53485"
+ y1="494.33966"
+ x2="607.11432"
+ y2="484.78717" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4368"
+ id="linearGradient4255"
+ x1="710.77502"
+ y1="520.22681"
+ x2="697.16449"
+ y2="604.91492"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4368"
+ id="linearGradient4260"
+ gradientUnits="userSpaceOnUse"
+ x1="836.29486"
+ y1="691.1153"
+ x2="775.80341"
+ y2="595.84119" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="linearGradient4268"
+ x1="837.27032"
+ y1="609.45178"
+ x2="769.24194"
+ y2="515.68988"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="linearGradient4276"
+ x1="799.99994"
+ y1="580.71832"
+ x2="790.92627"
+ y2="613.98865"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4368"
+ id="radialGradient4294"
+ cx="884.28723"
+ cy="587.86847"
+ fx="884.28723"
+ fy="587.86847"
+ r="41.632473"
+ gradientTransform="matrix(1.587323,-0.407161,0.118108,0.460443,-1516.761,700.6145)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="radialGradient4307"
+ cx="873.53351"
+ cy="592.32623"
+ fx="873.53351"
+ fy="592.32623"
+ r="41.632473"
+ gradientTransform="matrix(1.055363,-3.991255e-6,5.970585e-7,0.157873,-983.682,526.4434)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="linearGradient4317"
+ x1="934.29242"
+ y1="510.27988"
+ x2="914.95422"
+ y2="555.64856"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="radialGradient4327"
+ cx="977.49097"
+ cy="637.65143"
+ fx="977.49097"
+ fy="637.65143"
+ r="56.161709"
+ gradientTransform="matrix(0.910678,0.467504,-0.219391,0.427365,-165.1677,-95.42922)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3969"
+ id="linearGradient4366"
+ gradientUnits="userSpaceOnUse"
+ x1="844.97888"
+ y1="584.32306"
+ x2="896.95441"
+ y2="584.32306"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4368"
+ id="linearGradient4526"
+ gradientUnits="userSpaceOnUse"
+ x1="736.21875"
+ y1="592.62573"
+ x2="702.20862"
+ y2="592.62573"
+ gradientTransform="matrix(0.598679,0,0,0.598679,-581.1318,266.2444)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4368"
+ id="radialGradient4528"
+ cx="726.58026"
+ cy="576.63086"
+ fx="726.58026"
+ fy="576.63086"
+ r="61.840981"
+ gradientTransform="matrix(0.598679,0,0,0.111683,-581.1318,547.0615)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4368"
+ id="radialGradient4530"
+ cx="760.83997"
+ cy="608.42151"
+ fx="760.83997"
+ fy="608.42151"
+ r="58.503807"
+ gradientTransform="matrix(0.598679,0,0,0.172564,-581.1318,525.5018)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4241"
+ id="linearGradient4552"
+ x1="228.35538"
+ y1="624.81775"
+ x2="230.08371"
+ y2="680.5293"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4241"
+ id="linearGradient4562"
+ x1="270.41333"
+ y1="662.2981"
+ x2="235.63072"
+ y2="615.88373"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,-3.473113,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4241"
+ id="linearGradient4573"
+ x1="328.90399"
+ y1="647.4649"
+ x2="370.51041"
+ y2="547.65393"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4241"
+ id="linearGradient4583"
+ x1="328.16635"
+ y1="656.3327"
+ x2="280.94595"
+ y2="476.32199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.598679,0,0,0.598679,0.118987,257.1906)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859"
+ id="radialGradient4598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.634966,-0.185558,0.249397,0.975626,-186.4643,174.8607)"
+ cx="807.0766"
+ cy="593.44818"
+ fx="797.3847"
+ fy="592.30658"
+ r="43.011196" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="black"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.66125"
+ inkscape:cx="640"
+ inkscape:cy="400"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="1280px"
+ height="800px"
+ borderlayer="true"
+ inkscape:window-width="1270"
+ inkscape:window-height="694"
+ inkscape:window-x="0"
+ inkscape:window-y="24" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Chrisontemme</dc:title>
+ <dc:date>2006-07-09</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>it-s</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>it-s</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:language>English</dc:language>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>SVG</rdf:li>
+ <rdf:li>wallpaper</rdf:li>
+ <rdf:li>flower</rdf:li>
+ <rdf:li>red</rdf:li>
+ <rdf:li>my garden</rdf:li>
+ <rdf:li>chrisontemme</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <dc:identifier>Chrisontemme</dc:identifier>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>it-s</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:description>SVG Wallpaper. Use of this image is limited to the Linux powered systemes on`</dc:description>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="opacity:1;fill:url(#radialGradient2346);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="rect1465"
+ width="1288.4688"
+ height="809.07373"
+ x="-3.0245748"
+ y="-63.024574"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true"
+ ry="5.343348" />
+ <path
+ sodipodi:nodetypes="ccsccsc"
+ d="M 1336.8621,490.47259 C 1376.8683,470.98241 1376.8683,250.98241 1336.8621,270.47259 C 1296.8559,289.96277 1049.2326,179.61852 750.09452,78.4121 C 206.19164,-105.60483 157.09025,53.5011 54.442344,143.44046 C -48.205565,233.37982 -47.299975,463.94498 54.442344,363.44046 C 156.18466,262.93594 196.35164,-0.404863 750.09452,298.4121 C 1028.0068,448.38227 1296.8559,509.96277 1336.8621,490.47259 z "
+ style="fill:#53000a;fill-opacity:0.41142859;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4780" />
+ <path
+ sodipodi:nodetypes="ccsccsc"
+ d="M 1282.4197,603.89414 C 1322.4259,584.40396 1322.4259,364.40396 1282.4197,383.89414 C 1242.4135,403.38432 994.79021,293.04007 695.65217,191.83365 C 151.74929,7.816717 102.64791,166.92265 0,256.86201 C -102.64791,346.80137 -101.74232,577.36653 0,476.86201 C 101.74232,376.35749 141.90929,113.01669 695.65217,411.83365 C 973.56448,561.80382 1242.4135,623.38432 1282.4197,603.89414 z "
+ style="fill:#53000a;fill-opacity:0.41142859;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4782" />
+ <path
+ sodipodi:nodetypes="ccsccsc"
+ d="M 1315.69,808.05293 C 1355.6962,788.56275 1355.6962,568.56275 1315.69,588.05293 C 1275.6838,607.54311 1028.0605,497.19886 728.92249,395.99244 C 185.01961,211.97551 135.91823,371.08144 33.270321,461.0208 C -69.377589,550.96016 -68.471999,781.52532 33.270321,681.0208 C 135.01264,580.51628 175.17961,317.17548 728.92249,615.99244 C 1006.8348,765.96261 1275.6838,827.54311 1315.69,808.05293 z "
+ style="fill:#53000a;fill-opacity:0.41142859;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4784" />
+ <path
+ sodipodi:nodetypes="ccsccsc"
+ d="M 1240.0757,972.8922 C 1280.0819,953.4021 1280.0819,733.40207 1240.0757,752.89225 C 1200.0695,772.38243 952.44616,662.03818 653.30812,560.83176 C 109.40524,376.81483 60.303865,535.92076 -42.344045,625.86012 C -144.99196,715.79948 -144.08637,946.3646 -42.344045,845.86012 C 59.398275,745.3556 99.565245,482.0148 653.30812,780.83176 C 931.22043,930.80193 1200.0695,992.3824 1240.0757,972.8922 z "
+ style="fill:#53000a;fill-opacity:0.41142859;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4786" />
+ <path
+ id="path3000"
+ style="fill:#53000a;fill-opacity:0.41142859;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1321.7392,848.88469 C 1361.7454,829.39451 1361.7454,609.39451 1321.7392,628.88469 C 1281.733,648.37487 1034.1097,538.03062 734.97164,436.8242 C 191.06876,252.80727 141.96738,411.9132 39.319471,501.85256 C -63.328439,591.79192 -62.422849,822.35708 39.319471,721.85256 C 141.06179,621.34804 181.22876,358.00724 734.97164,656.8242 C 1012.884,806.79437 1281.733,868.37487 1321.7392,848.88469 z "
+ sodipodi:nodetypes="ccsccsc" />
+ <path
+ style="fill:url(#linearGradient4131);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 191.42204,628.59693 C 168.69566,650.18699 183.46781,659.27755 160.74143,653.59595 C 138.01504,647.91435 102.78915,636.55116 77.79013,643.36908 C 52.791117,650.18699 -4.0248434,668.3681 -2.8885234,675.18601 C -1.7521934,682.00392 -2.8885234,745.63779 -2.8885234,745.63779 L 207.33051,745.63779 L 191.42204,628.59693 z "
+ id="path4123" />
+ <path
+ style="fill:url(#linearGradient4217);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 210.88707,599.85934 C 222.25026,497.59065 213.15971,456.68316 200.6602,421.45728 C 188.1607,386.2314 174.52487,368.0503 148.38954,343.05128 C 122.2542,318.05226 96.118872,310.09803 87.028324,319.18859 C 77.93777,328.27914 79.074093,348.73288 74.528813,340.77864 C 69.983539,332.82441 58.620345,316.91595 59.756666,324.87018 C 60.892986,332.82441 62.029309,366.91397 58.620345,386.2314 C 55.211391,405.54882 52.938756,430.54783 63.16562,448.72893 C 73.392496,466.91003 108.61838,533.95284 130.20843,566.90609 C 151.79849,599.85934 182.4791,632.81258 182.4791,632.81258 L 210.88707,599.85934 z "
+ id="path3918" />
+ <path
+ id="path3938"
+ d="M 210.88707,599.85934 C 222.25026,497.59065 213.15971,456.68316 200.6602,421.45728 C 188.1607,386.2314 174.52487,368.0503 148.38954,343.05128 C 122.2542,318.05226 96.118872,310.09803 87.028324,319.18859 C 77.93777,328.27914 79.074093,348.73288 74.528813,340.77864 C 69.983539,332.82441 58.620345,316.91595 59.756666,324.87018 C 60.892986,332.82441 62.029309,366.91397 58.620345,386.2314 C 55.211391,405.54882 52.938756,430.54783 63.16562,448.72893 C 73.392496,466.91003 108.61838,533.95284 130.20843,566.90609 C 151.79849,599.85934 182.4791,632.81258 182.4791,632.81258 L 210.88707,599.85934 z "
+ style="fill:url(#radialGradient4214);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:url(#radialGradient4211);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 210.88707,599.85934 C 222.25026,497.59065 213.15971,456.68316 200.6602,421.45728 C 188.1607,386.2314 174.52487,368.0503 148.38954,343.05128 C 122.2542,318.05226 96.118872,310.09803 87.028324,319.18859 C 77.93777,328.27914 79.074093,348.73288 74.528813,340.77864 C 69.983539,332.82441 58.620345,316.91595 59.756666,324.87018 C 60.892986,332.82441 62.029309,366.91397 58.620345,386.2314 C 55.211391,405.54882 52.938756,430.54783 63.16562,448.72893 C 73.392496,466.91003 108.61838,533.95284 130.20843,566.90609 C 151.79849,599.85934 182.4791,632.81258 182.4791,632.81258 L 210.88707,599.85934 z "
+ id="path3942" />
+ <path
+ id="path3946"
+ d="M 210.88707,599.85934 C 222.25026,497.59065 213.15971,456.68316 200.6602,421.45728 C 188.1607,386.2314 174.52487,368.0503 148.38954,343.05128 C 122.2542,318.05226 96.118872,310.09803 87.028324,319.18859 C 77.93777,328.27914 79.074093,348.73288 74.528813,340.77864 C 69.983539,332.82441 58.620345,316.91595 59.756666,324.87018 C 60.892986,332.82441 62.029309,366.91397 58.620345,386.2314 C 55.211391,405.54882 52.938756,430.54783 63.16562,448.72893 C 73.392496,466.91003 108.61838,533.95284 130.20843,566.90609 C 151.79849,599.85934 182.4791,632.81258 182.4791,632.81258 L 210.88707,599.85934 z "
+ style="fill:url(#radialGradient4208);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:url(#radialGradient4205);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 210.88707,599.85934 C 222.25026,497.59065 213.15971,456.68316 200.6602,421.45728 C 188.1607,386.2314 174.52487,368.0503 148.38954,343.05128 C 122.2542,318.05226 96.118872,310.09803 87.028324,319.18859 C 77.93777,328.27914 79.074093,348.73288 74.528813,340.77864 C 69.983539,332.82441 58.620345,316.91595 59.756666,324.87018 C 60.892986,332.82441 62.029309,366.91397 58.620345,386.2314 C 55.211391,405.54882 52.938756,430.54783 63.16562,448.72893 C 73.392496,466.91003 108.61838,533.95284 130.20843,566.90609 C 151.79849,599.85934 182.4791,632.81258 182.4791,632.81258 L 210.88707,599.85934 z "
+ id="path3950" />
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccc"
+ style="fill:#da4330;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient4199);stroke-width:2.99339581;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 78.697728,338.73695 C 78.481078,338.75308 76.796909,345.52201 74.78166,341.54973 C 77.417668,348.55182 77.681805,347.08341 79.519558,350.28959 C 91.402166,362.32752 100.4841,376.69956 109.26994,391.05254 C 119.35787,408.61011 127.0795,427.15646 133.33793,446.23281 C 127.19413,427.07145 119.91212,408.27942 110.96057,390.04286 C 103.29417,374.1523 94.14632,360.83011 85.445021,345.49851 C 83.208033,343.64318 80.214266,338.62408 78.697728,338.73695 z M 60.882072,370.45846 L 60.694224,370.59935 C 94.060014,418.80272 101.78379,447.8781 126.48149,501.01389 C 129.01429,506.59786 131.64298,512.19789 134.27717,517.80278 C 131.76165,512.1648 129.24212,506.54026 126.69282,500.91997 C 101.99029,447.77359 94.254621,418.67122 60.882072,370.45846 z M 134.27717,517.80278 C 138.96253,528.30402 143.60963,538.83459 148.34226,549.31423 C 144.03965,538.662 139.16423,528.20126 134.27717,517.80278 z M 148.34226,549.31423 C 155.28133,566.49371 160.68739,584.13842 161.9847,602.78039 L 171.54145,598.03723 C 163.3437,582.02386 155.75118,565.72008 148.34226,549.31423 z M 132.89179,398.42556 L 132.68046,398.51948 C 154.73753,445.52055 167.07884,495.97143 170.76658,547.81145 C 172.23509,574.17601 174.24168,600.91627 167.31488,626.75445 L 178.42138,625.43951 C 172.01977,600.10163 172.44612,573.69056 171.00139,547.76449 C 167.31102,495.8995 154.96004,445.44873 132.89179,398.42556 z M 152.33403,441.3018 L 152.14618,441.39572 C 154.63454,448.50143 157.10129,455.61073 159.58964,462.71644 C 162.16954,471.03372 164.67726,479.41032 167.00963,487.84107 C 164.80556,479.41196 162.4029,471.01024 159.80097,462.62252 C 157.31174,455.51466 154.82327,448.40966 152.33403,441.3018 z M 133.57274,447.00768 C 136.53216,456.28874 139.21337,465.65909 141.69715,475.09091 C 139.25719,465.64335 136.58866,456.26496 133.57274,447.00768 z M 141.69715,475.09091 C 145.67736,490.5024 149.04025,506.08714 152.21662,521.63018 L 152.45143,521.55974 C 149.26135,505.95189 145.74088,490.44641 141.69715,475.09091 z M 167.10355,488.21677 C 172.97051,510.7142 177.46601,533.39849 180.81644,556.33504 C 178.30998,533.3295 173.27912,510.5894 167.10355,488.21677 z M 180.81644,556.33504 C 182.45974,571.41823 183.02961,586.61792 182.10789,601.88811 C 181.45727,609.84135 180.99318,617.85351 179.75979,625.74477 L 190.96021,624.42983 C 188.97242,616.77357 187.40796,609.05977 185.95877,601.27761 C 184.68612,586.16426 182.98667,571.19211 180.81644,556.33504 z "
+ id="path3977" />
+ <path
+ style="fill:#ed5952;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 208.10308,632.81258 C 259.23743,620.31308 269.4643,602.13198 281.96381,591.9051 C 294.46331,581.67823 319.46231,568.04241 331.96185,560.08818 C 344.46131,552.13395 392.18672,537.3618 422.86737,537.3618 C 453.54793,537.3618 510.3639,548.72499 538.77188,561.2245 C 567.17979,573.724 592.17886,580.54192 600.13309,599.85934 C 608.08732,619.17675 603.54197,640.76681 600.13309,648.72104 C 596.7241,656.67527 597.86043,639.6305 563.77088,638.49418 C 529.68133,637.35786 491.04646,650.99369 479.68326,650.99369 C 468.32005,650.99369 430.82159,660.08423 391.05039,663.49319 C 351.27928,666.90215 236.51106,653.26632 226.28418,649.85737 C 216.05731,646.44841 206.96676,635.08522 208.10308,632.81258 z "
+ id="path1954" />
+ <path
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:2.99339581;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ d="M 170.33091,474.47376 C 168.8316,474.47376 167.61814,476.72028 167.61814,479.46899 C 167.61814,482.21771 168.8316,484.44552 170.33091,484.44551 C 171.83021,484.44551 173.04367,482.21771 173.04367,479.46899 C 173.04367,476.72028 171.83021,474.47376 170.33091,474.47376 z M 142.26782,517.03611 C 140.76852,517.03611 139.55506,518.64783 139.55506,520.64689 C 139.55506,522.64596 140.76852,524.27638 142.26782,524.27639 C 143.76712,524.27639 144.98059,522.64596 144.98059,520.64689 C 144.98059,518.64783 143.76712,517.03612 142.26782,517.03611 z M 181.20067,530.61864 C 179.70137,530.61864 178.4692,532.64732 178.4692,535.14615 C 178.4692,537.64499 179.70137,539.67367 181.20067,539.67367 C 182.69998,539.67367 183.91344,537.64499 183.91344,535.14615 C 183.91344,532.64732 182.69998,530.61864 181.20067,530.61864 z M 156.29936,543.28445 C 154.05041,543.28445 152.22086,545.51225 152.22086,548.26097 C 152.22086,551.00969 154.05041,553.25621 156.29936,553.2562 C 158.54831,553.2562 160.37786,551.00969 160.37786,548.26097 C 160.37786,545.51225 158.54831,543.28444 156.29936,543.28445 z M 178.02019,556.86698 C 176.77077,556.86698 175.75644,557.68219 175.75644,558.68173 C 175.75644,559.68127 176.77077,560.49648 178.02019,560.49648 C 179.26961,560.49648 180.28394,559.68127 180.28395,558.68173 C 180.28395,557.68219 179.26961,556.86698 178.02019,556.86698 z M 190.2557,571.34753 C 188.25663,571.34753 186.62621,572.36187 186.6262,573.61129 C 186.6262,574.86071 188.25663,575.87506 190.2557,575.87505 C 192.25476,575.87505 193.86647,574.86071 193.86648,573.61129 C 193.86648,572.36187 192.25476,571.34752 190.2557,571.34753 z M 185.72818,588.55956 C 184.22888,588.55956 182.99671,589.5739 182.99671,590.82332 C 182.99671,592.07274 184.22888,593.08708 185.72818,593.08707 C 187.22749,593.08707 188.44095,592.07274 188.44095,590.82332 C 188.44095,589.5739 187.22749,588.55955 185.72818,588.55956 z M 201.55577,593.98509 C 200.30635,593.98509 199.31072,595.19855 199.31072,596.69786 C 199.31072,598.19716 200.30635,599.42933 201.55577,599.42933 C 202.80518,599.42933 203.81951,598.19716 203.81952,596.69786 C 203.81952,595.19855 202.80518,593.98509 201.55577,593.98509 z "
+ id="path4506" />
+ <path
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:2.99339581;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ d="M 138.18932,650.12997 C 135.94037,650.12997 134.11082,651.94081 134.11082,654.18976 C 134.11082,656.43871 135.94037,658.26826 138.18932,658.26826 C 140.43827,658.26826 142.26782,656.43871 142.26782,654.18976 C 142.26782,651.94081 140.43827,650.12997 138.18932,650.12997 z M 108.7605,652.84273 C 106.76143,652.84273 105.14971,654.25532 105.14971,656.00451 C 105.14971,657.75369 106.76143,659.18498 108.7605,659.18499 C 110.75956,659.18499 112.38999,657.75369 112.38999,656.00451 C 112.38999,654.25532 110.75956,652.84275 108.7605,652.84273 z M 61.689349,657.37025 C 59.690281,657.37025 58.059856,658.58371 58.059856,660.08301 C 58.059856,661.58231 59.690281,662.79578 61.689349,662.79578 C 63.688416,662.79578 65.300132,661.58231 65.300132,660.08301 C 65.300132,658.58371 63.688416,657.37025 61.689349,657.37025 z M 136.37457,660.98103 C 134.12562,660.98103 132.29607,662.61145 132.29607,664.61052 C 132.29607,666.60959 134.12562,668.24003 136.37457,668.24001 C 138.62352,668.24001 140.45307,666.60959 140.45307,664.61052 C 140.45307,662.61145 138.62352,660.98102 136.37457,660.98103 z M 85.224923,661.89776 C 83.725621,661.89776 82.512158,662.91209 82.512158,664.16151 C 82.512158,665.41093 83.725621,666.42528 85.224923,666.42527 C 86.724225,666.42527 87.937688,665.41093 87.937688,664.16151 C 87.937688,662.91209 86.724225,661.89774 85.224923,661.89776 z M 124.15778,671.8508 C 122.15871,671.8508 120.52828,673.48122 120.52828,675.48029 C 120.52828,677.47936 122.15871,679.09109 124.15778,679.09107 C 126.15684,679.09107 127.76856,677.47936 127.76856,675.48029 C 127.76856,673.48122 126.15684,671.85079 124.15778,671.8508 z M 53.532345,679.09107 C 52.532812,679.09107 51.717599,680.7215 51.717599,682.72057 C 51.717599,684.71963 52.532812,686.33136 53.532345,686.33135 C 54.531879,686.33135 55.347091,684.71963 55.347091,682.72057 C 55.347091,680.7215 54.531879,679.09106 53.532345,679.09107 z M 94.279945,680.0078 C 92.280878,680.0078 90.650453,681.02214 90.650453,682.27156 C 90.650453,683.52098 92.280878,684.53532 94.279945,684.53531 C 96.279013,684.53531 97.890729,683.52098 97.890729,682.27156 C 97.890729,681.02214 96.279013,680.00779 94.279945,680.0078 z M 112.38999,686.33135 C 109.89116,686.33135 107.86248,688.1609 107.86248,690.40985 C 107.86248,692.6588 109.89116,694.48835 112.38999,694.48835 C 114.88882,694.48835 116.9175,692.6588 116.9175,690.40985 C 116.9175,688.1609 114.88882,686.33135 112.38999,686.33135 z M 127.76856,695.38637 C 126.76902,695.38637 125.97253,696.00246 125.97252,696.75211 C 125.97252,697.50176 126.76902,698.09914 127.76856,698.09914 C 128.7681,698.09914 129.5833,697.50176 129.58331,696.75211 C 129.58331,696.00246 128.7681,695.38637 127.76856,695.38637 z M 78.882666,696.3031 C 76.883598,696.3031 75.271882,697.31744 75.271882,698.56685 C 75.271882,699.81627 76.883598,700.83062 78.882666,700.83061 C 80.881733,700.83061 82.512158,699.81627 82.512158,698.56685 C 82.512158,697.31744 80.881733,696.30309 78.882666,696.3031 z M 106.04773,703.54338 C 103.5489,703.54338 101.52022,704.14076 101.52022,704.8904 C 101.52022,705.64005 103.5489,706.25614 106.04773,706.25614 C 108.54656,706.25614 110.57524,705.64005 110.57524,704.8904 C 110.57524,704.14076 108.54656,703.54338 106.04773,703.54338 z M 135.47655,718.02393 C 132.72784,718.02393 130.50003,719.45523 130.50003,721.20441 C 130.50003,722.95359 132.72784,724.36617 135.47655,724.36618 C 138.22527,724.36618 140.45307,722.95359 140.45307,721.20441 C 140.45307,719.45523 138.22527,718.02394 135.47655,718.02393 z M 73.906145,724.36618 C 71.657195,724.36618 69.827643,725.57965 69.827643,727.07895 C 69.827643,728.57825 71.657195,729.79171 73.906145,729.79171 C 76.155095,729.79171 77.984647,728.57825 77.984647,727.07895 C 77.984647,725.57965 76.155095,724.36618 73.906145,724.36618 z "
+ id="path4564" />
+ <path
+ style="fill:#da4330;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4006);stroke-width:2.99339581;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 160.95455,643.49357 C 153.62501,643.55363 146.30382,643.91109 138.97637,644.33888 C 102.81996,644.57368 74.75415,657.46083 47.259705,680.00647 C 31.443592,694.55557 17.817357,711.15361 4.1956066,727.69632 L 4.4069366,727.79024 C 17.999697,711.28525 31.580969,694.71931 47.353626,680.19432 C 74.608019,657.82902 102.51907,644.97771 138.60067,647.67318 C 147.66358,648.1307 156.96424,648.51495 165.90904,650.37349 C 147.28108,656.56863 130.07737,666.25263 112.95945,675.75642 C 77.715259,695.34674 54.480829,726.43178 35.683586,761.15669 C 26.050957,782.81448 30.487725,772.13179 22.322917,793.18474 L 22.698607,793.27866 C 30.627138,772.18421 26.271175,782.85786 35.894915,761.22714 C 54.661786,726.56907 77.85556,695.52898 113.02989,675.96775 C 131.06492,667.05389 150.32769,657.28263 171.05137,659.78936 L 170.65219,651.52406 C 173.42799,652.29313 176.16273,653.21964 178.82356,654.38873 L 182.93274,644.40933 C 175.61423,643.66007 168.28409,643.4335 160.95455,643.49357 z M 135.21941,703.76921 C 129.27174,725.4822 125.47835,747.55468 120.98994,769.60985 C 118.08534,785.29632 115.82514,801.0846 113.42907,816.85355 L 115.58932,816.78311 C 116.35658,800.92644 117.77704,785.15834 121.22475,769.60985 C 125.86198,746.83025 132.72572,724.74639 145.55104,705.10763 L 135.21941,703.76921 z "
+ id="path4169" />
+ <path
+ style="fill:url(#linearGradient4552);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25.469437,664.60935 C 54.441434,664.60935 45.387685,660.08248 60.779057,661.89323 C 76.170434,663.70398 88.845681,660.08248 107.85855,658.27173 C 126.87143,656.46098 139.54667,670.0416 144.97892,660.98785 C 150.41117,651.93411 133.20905,640.16423 122.34455,641.97498 C 111.48005,643.78573 90.656433,637.44811 77.981187,641.97498 C 65.305934,646.50185 25.469437,656.46098 25.469437,664.60935 z "
+ id="path4544"
+ sodipodi:nodetypes="csssssc" />
+ <path
+ style="fill:url(#radialGradient4769);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 284.23643,616.90412 C 363.77874,579.40559 383.09618,563.49713 445.5937,565.76977 C 508.09124,568.04241 553.544,580.54192 571.7251,600.99565 C 589.90621,621.4494 600.13309,630.53994 581.95198,632.81258 C 563.77088,635.08522 512.63648,636.22154 493.31912,643.03945 C 474.00169,649.85737 405.82251,666.90215 387.64141,665.76583 C 369.46038,664.62951 270.60062,653.26632 271.73694,639.6305 C 272.87325,625.99467 283.10013,618.04044 284.23643,616.90412 z "
+ id="path3747" />
+ <path
+ style="fill:url(#radialGradient4327);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 552.88176,632.01586 C 501.78358,604.98266 529.04765,603.89542 544.07515,601.23311 C 558.77316,598.62918 602.31019,604.16293 602.63964,615.71911 C 603.07847,631.11048 608.80328,643.78573 599.99665,644.69111 C 591.19005,645.59648 553.86028,632.01586 552.88176,632.01586 z "
+ id="path4319"
+ sodipodi:nodetypes="csssc" />
+ <path
+ style="fill:url(#linearGradient4766);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 397.80728,667.39069 C 444.39636,653.75486 468.25903,652.61854 502.34858,641.25535 C 536.43821,629.89216 563.70986,621.93793 580.75464,625.34689 C 597.79941,628.75585 613.70784,641.25535 613.70784,641.25535 C 613.70784,641.25535 601.20832,646.93694 600.07208,651.48222 C 598.93573,656.02749 601.20832,656.02749 592.11778,651.48222 C 583.02722,646.93694 553.48299,636.71008 536.43821,642.39168 C 519.39343,648.07326 490.98545,649.20958 456.8959,654.89118 C 422.80628,660.57277 397.80728,666.25437 397.80728,667.39069 z "
+ id="path2844" />
+ <path
+ id="path3775"
+ d="M 284.23643,616.90412 C 363.77874,579.40559 383.09618,563.49713 445.5937,565.76977 C 508.09124,568.04241 553.544,580.54192 571.7251,600.99565 C 589.90621,621.4494 600.13309,630.53994 581.95198,632.81258 C 563.77088,635.08522 512.63648,636.22154 493.31912,643.03945 C 474.00169,649.85737 405.82251,666.90215 387.64141,665.76583 C 369.46038,664.62951 270.60062,653.26632 271.73694,639.6305 C 272.87325,625.99467 283.10013,618.04044 284.23643,616.90412 z "
+ style="fill:url(#radialGradient4763);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <g
+ id="g4628"
+ transform="matrix(1.255081,0,0,1.255081,-780.602,-45.65016)" />
+ <path
+ style="fill:#da4330;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3998);stroke-width:2.99339581;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 464.30231,573.59363 C 421.0285,573.7557 377.91932,578.7199 335.5796,589.88942 C 331.10532,591.35907 326.66067,592.85156 322.21893,594.39777 C 326.71973,592.96874 331.21268,591.55074 335.62657,590.10075 C 403.34204,572.23342 473.02348,570.25891 542.18864,578.38375 C 547.28187,578.93455 552.32483,579.66136 557.31038,580.54399 C 552.30853,579.65796 547.28405,578.83401 542.23561,578.17242 C 516.28834,575.12353 490.26655,573.49639 464.30231,573.59363 z M 558.1557,580.68488 C 569.30244,582.70326 580.20707,585.58222 590.9821,589.37284 L 591.82743,586.86038 C 580.54437,585.05072 569.38847,582.69325 558.1557,580.68488 z M 321.63191,594.58561 C 302.36362,600.7018 282.56672,606.94379 264.22095,615.64804 C 283.34946,608.65025 302.3682,601.30561 321.63191,594.58561 z M 264.22095,615.64804 C 251.06052,620.46253 237.84572,625.13451 224.44419,629.33745 L 228.20114,638.65939 C 239.0032,629.18489 251.2458,621.80417 264.22095,615.64804 z M 521.7602,613.1121 C 491.21796,613.28706 506.96554,613.16356 474.51649,613.53475 C 416.31661,614.67111 357.95126,616.28836 300.26423,624.73518 C 281.00357,628.06901 253.71161,626.60952 237.64049,637.83756 L 248.37129,640.89009 C 248.53585,639.97666 257.61935,636.82052 268.33011,633.54054 L 267.34391,641.82932 C 274.58446,640.74054 293.62155,638.82045 303.64549,637.86104 C 321.29489,637.41983 338.94165,636.95101 356.57163,636.33478 C 339.00226,636.7136 321.43587,636.61123 303.8803,635.8182 C 293.75095,634.94484 283.2829,634.5924 273.37852,632.03776 C 283.95672,628.90487 295.00279,625.93908 300.26423,624.96999 C 357.94089,616.52241 416.3033,614.90624 474.49298,613.76957 C 506.94014,613.39815 491.1961,613.52205 521.73668,613.34691 L 521.7602,613.1121 z M 356.57163,636.33478 C 374.33399,635.95179 392.09356,635.05397 409.82646,633.86927 C 392.08131,634.9165 374.33354,635.71393 356.57163,636.33478 z M 409.82646,633.86927 C 423.06319,633.08811 436.3039,632.16775 449.53274,631.02808 C 486.07792,626.67681 468.27551,629.20984 502.92846,623.51417 L 502.92846,623.30284 C 468.28611,628.99865 486.06868,626.44186 449.53274,630.79327 C 436.31893,631.93201 423.07815,632.98395 409.82646,633.86927 z "
+ id="path4403" />
+ <path
+ style="fill:url(#linearGradient4583);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 129.58755,552.34287 C 141.35742,532.42462 194.77454,524.27624 202.01754,533.33 C 209.26054,542.38374 206.54441,637.44811 206.54441,637.44811 L 169.42404,638.35348 L 129.58755,552.34287 z "
+ id="path4575" />
+ <path
+ sodipodi:nodetypes="csssssssssscc"
+ style="fill:url(#linearGradient4196);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 215.93737,656.60172 C 237.52743,617.96687 227.30056,627.05743 248.89062,614.55792 C 270.48068,602.05841 298.88865,580.46835 314.79711,563.42357 C 330.70556,546.37879 377.29465,488.42652 396.61208,452.06432 C 415.92951,415.70212 442.06483,356.61354 452.29172,339.56876 C 462.51859,322.52397 467.06383,313.43342 459.10961,314.56974 C 451.15539,315.70606 456.83695,321.38766 442.06483,313.43342 C 427.29272,305.47919 421.61107,296.38864 385.24887,314.56974 C 348.88666,332.75084 336.3872,332.75084 303.43393,352.06826 C 270.48068,371.38569 244.34534,399.79366 220.48264,440.70114 C 196.61995,481.60861 182.98412,508.88027 189.80203,570.24148 C 196.61995,631.6027 184.65593,662.97614 184.65593,662.97614 L 215.93737,656.60172 z "
+ id="path3807" />
+ <path
+ style="fill:#b62919;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 462.51859,319.11502 C 451.15539,316.84238 447.7464,314.56974 447.7464,325.93293 C 447.7464,337.29612 430.70163,374.79465 429.5653,380.47624 C 428.42897,386.15784 440.9285,361.15881 450.01906,348.65931 C 459.10961,336.1598 462.51859,316.84238 462.51859,319.11502 z "
+ id="path3896"
+ sodipodi:nodetypes="csssc" />
+ <path
+ id="path4005"
+ d="M 215.93737,656.60172 C 237.52743,617.96687 227.30056,627.05743 248.89062,614.55792 C 270.48068,602.05841 298.88865,580.46835 314.79711,563.42357 C 330.70556,546.37879 377.29465,488.42652 396.61208,452.06432 C 415.92951,415.70212 442.06483,356.61354 452.29172,339.56876 C 462.51859,322.52397 467.06383,313.43342 459.10961,314.56974 C 451.15539,315.70606 456.83695,321.38766 442.06483,313.43342 C 427.29272,305.47919 421.61107,296.38864 385.24887,314.56974 C 348.88666,332.75084 336.3872,332.75084 303.43393,352.06826 C 270.48068,371.38569 244.34534,399.79366 220.48264,440.70114 C 196.61995,481.60861 182.98412,508.88027 189.80203,570.24148 C 196.61995,631.6027 204.57418,665.69227 204.57418,665.69227 L 215.93737,656.60172 z "
+ style="fill:url(#radialGradient4192);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:url(#radialGradient4189);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 215.93737,656.60172 C 237.52743,617.96687 227.30056,627.05743 248.89062,614.55792 C 270.48068,602.05841 298.88865,580.46835 314.79711,563.42357 C 330.70556,546.37879 377.29465,488.42652 396.61208,452.06432 C 415.92951,415.70212 442.06483,356.61354 452.29172,339.56876 C 462.51859,322.52397 467.06383,313.43342 459.10961,314.56974 C 451.15539,315.70606 456.83695,321.38766 442.06483,313.43342 C 427.29272,305.47919 421.61107,296.38864 385.24887,314.56974 C 348.88666,332.75084 336.3872,332.75084 303.43393,352.06826 C 270.48068,371.38569 244.34534,399.79366 220.48264,440.70114 C 196.61995,481.60861 182.98412,508.88027 189.80203,570.24148 C 196.61995,631.6027 204.57418,665.69227 204.57418,665.69227 L 215.93737,656.60172 z "
+ id="path4009" />
+ <path
+ id="path4013"
+ d="M 215.93737,656.60172 C 237.52743,617.96687 227.30056,627.05743 248.89062,614.55792 C 270.48068,602.05841 298.88865,580.46835 314.79711,563.42357 C 330.70556,546.37879 377.29465,488.42652 396.61208,452.06432 C 415.92951,415.70212 442.06483,356.61354 452.29172,339.56876 C 462.51859,322.52397 467.06383,313.43342 459.10961,314.56974 C 451.15539,315.70606 456.83695,321.38766 442.06483,313.43342 C 427.29272,305.47919 421.61107,296.38864 385.24887,314.56974 C 348.88666,332.75084 336.3872,332.75084 303.43393,352.06826 C 270.48068,371.38569 244.34534,399.79366 220.48264,440.70114 C 196.61995,481.60861 182.98412,508.88027 189.80203,570.24148 C 196.61995,631.6027 204.57418,665.69227 204.57418,665.69227 L 215.93737,656.60172 z "
+ style="fill:url(#radialGradient4186);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:url(#radialGradient4183);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 215.93737,656.60172 C 237.52743,617.96687 227.30056,627.05743 248.89062,614.55792 C 270.48068,602.05841 298.88865,580.46835 314.79711,563.42357 C 330.70556,546.37879 377.29465,488.42652 396.61208,452.06432 C 415.92951,415.70212 442.06483,356.61354 452.29172,339.56876 C 462.51859,322.52397 467.06383,313.43342 459.10961,314.56974 C 451.15539,315.70606 456.83695,321.38766 442.06483,313.43342 C 427.29272,305.47919 421.61107,296.38864 385.24887,314.56974 C 348.88666,332.75084 336.3872,332.75084 303.43393,352.06826 C 270.48068,371.38569 244.34534,399.79366 220.48264,440.70114 C 196.61995,481.60861 182.98412,508.88027 189.80203,570.24148 C 196.61995,631.6027 204.57418,665.69227 204.57418,665.69227 L 215.93737,656.60172 z "
+ id="path4017" />
+ <path
+ id="path4021"
+ d="M 215.93737,656.60172 C 237.52743,617.96687 227.30056,627.05743 248.89062,614.55792 C 270.48068,602.05841 298.88865,580.46835 314.79711,563.42357 C 330.70556,546.37879 377.29465,488.42652 396.61208,452.06432 C 415.92951,415.70212 442.06483,356.61354 452.29172,339.56876 C 462.51859,322.52397 467.06383,313.43342 459.10961,314.56974 C 451.15539,315.70606 456.83695,321.38766 442.06483,313.43342 C 427.29272,305.47919 421.61107,296.38864 385.24887,314.56974 C 348.88666,332.75084 336.3872,332.75084 303.43393,352.06826 C 270.48068,371.38569 244.34534,399.79366 220.48264,440.70114 C 196.61995,481.60861 182.98412,508.88027 189.80203,570.24148 C 196.61995,631.6027 204.57418,665.69227 204.57418,665.69227 L 215.93737,656.60172 z "
+ style="fill:url(#radialGradient4180);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ style="fill:#da4330;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient4174);stroke-width:2.99339581;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 363.90525,331.66314 C 356.17412,338.26066 352.40212,340.39183 345.04683,347.34974 C 352.44998,340.59462 362.03623,331.81636 368.06683,326.84939 C 371.04193,324.3604 374.95359,320.01203 378.70756,318.769 C 376.6539,322.0509 367.76087,328.24529 363.90525,331.66314 z M 345.04683,347.34974 C 334.62631,356.8581 324.83627,367.01304 315.62516,377.68715 C 324.94717,367.14637 334.78801,357.05432 345.04683,347.34974 z M 390.95215,350.16746 C 380.57041,362.45288 369.80478,374.34944 359.01804,386.23422 C 369.82852,375.27073 381.42677,365.16367 394.49774,356.62473 L 390.95215,350.16746 z M 359.01804,386.23422 C 350.72321,394.64643 342.91716,403.57201 335.25523,412.69727 C 343.09907,403.788 351.05412,395.00871 359.01804,386.23422 z M 335.25523,412.69727 C 333.14878,415.08986 331.04691,417.48988 328.96233,419.90593 C 288.72105,470.64279 252.1285,524.42321 227.78287,584.81273 C 226.26148,588.89136 224.68702,592.94987 223.11016,597.02283 C 222.17752,592.2057 220.89948,587.35588 220.80902,586.36247 C 220.87333,571.80538 222.88965,557.51269 226.28009,543.50971 C 222.28937,557.56392 219.17123,571.93781 217.19296,586.69121 C 215.99134,594.89903 211.4286,607.61549 216.34764,614.8214 C 212.54097,625.27783 209.13788,635.85619 206.88481,646.75551 L 217.99131,645.44058 C 217.21925,642.44125 216.74029,639.45882 216.48853,636.47085 L 225.99832,635.34376 C 225.84958,632.97435 225.88389,630.63741 226.04528,628.32296 L 235.03849,627.26631 C 242.51558,607.75517 259.72251,587.5439 273.61772,570.63023 C 324.794,510.19452 378.67886,451.83801 425.35172,387.76048 C 428.79948,382.06173 432.25911,376.36509 435.70679,370.66634 L 435.4955,370.57242 C 432.04977,376.26607 428.58609,381.9729 425.14043,387.66656 C 378.46576,451.73816 324.57908,510.10225 273.40638,570.53631 C 258.24606,588.99036 240.21004,606.0384 226.32705,625.19999 C 228.74318,605.99185 240.71182,588.6297 250.23068,572.22693 C 288.46733,510.33863 333.99402,453.47463 379.61081,396.96503 C 398.1386,374.23511 389.42059,384.79882 405.74508,365.17179 L 405.53379,365.07787 C 389.2084,384.70695 397.92806,374.11637 379.39952,396.84762 C 333.77709,453.36504 288.25741,510.2577 250.01935,572.15649 C 238.52282,591.97168 224.91625,611.5593 216.30068,632.85478 C 216.17848,627.39469 216.78572,621.95865 217.8739,616.58247 C 218.38528,617.0535 218.94665,617.48216 219.58802,617.87393 L 220.92643,606.69699 C 224.81847,609.90357 224.40823,604.05444 223.25105,597.7977 C 224.78149,593.42013 226.43153,589.10999 228.01769,584.85969 C 252.36109,524.49065 288.9177,470.71865 329.15018,419.99985 C 331.16857,417.55235 333.21926,415.12214 335.25523,412.69727 z M 226.28009,543.50971 C 233.98779,516.36533 244.99456,490.37965 257.69762,465.03634 C 244.69989,490.10344 232.87532,516.2705 226.28009,543.50971 z M 314.92073,378.48551 C 298.76345,396.84795 284.19765,416.59868 271.88012,438.15063 C 267.14299,446.7905 262.52997,455.46943 258.12028,464.23799 C 262.70219,455.42621 267.41118,446.732 272.09145,438.1976 C 284.79021,417.17864 298.98402,397.05766 314.92073,378.48551 z "
+ id="path4029" />
+ <path
+ style="fill:url(#linearGradient4573);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 224.65192,633.82661 C 239.13792,621.15136 242.75942,617.52986 250.00241,613.00298 C 257.24541,608.47611 275.35291,597.61161 275.35291,593.08474 C 275.35291,588.55786 249.09704,565.92349 227.36804,565.01811 C 205.63904,564.11274 187.53154,565.01811 191.15304,576.78799 C 194.77454,588.55786 192.05841,632.01586 201.11217,632.01586 C 210.16591,632.01586 222.84116,635.63736 224.65192,633.82661 z "
+ id="path4565" />
+ <path
+ style="fill:url(#linearGradient4229);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 185.88806,620.31308 C 147.25322,539.63444 121.11789,481.68217 84.755678,455.54684 C 48.39348,429.41151 -14.104063,415.77569 -19.785653,405.54882 C -25.467243,395.32195 -19.785653,604.40462 -19.785653,604.40462 C -19.785653,604.40462 -9.558783,616.90412 24.530781,624.85835 C 58.620345,632.81258 89.300958,632.81258 110.89102,635.08522 C 132.48107,637.35786 140.43531,638.49418 144.98058,646.44841 C 149.52585,654.40264 164.298,662.35687 173.38855,654.40264 C 182.4791,646.44841 188.1607,618.04044 185.88806,620.31308 z "
+ id="path4080" />
+ <path
+ style="fill:url(#linearGradient4226);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -20.078253,603.26829 C 25.374502,620.31308 12.874997,621.4494 39.01033,623.72203 C 65.145655,625.99467 102.64418,629.40363 118.55264,628.26731 C 134.4611,627.13099 162.86908,647.58473 164.00539,653.26632 C 165.14172,658.94792 144.68798,658.94792 133.32479,646.44841 C 121.9616,633.94891 117.41633,640.76681 85.599403,639.6305 C 53.78247,638.49418 -14.396663,627.13099 -18.941933,619.17675 C -23.487213,611.22252 -18.941933,602.13198 -20.078253,603.26829 z "
+ id="path4090" />
+ <path
+ id="path4231"
+ d="M -20.078253,603.26829 C 25.374502,620.31308 12.874997,621.4494 39.01033,623.72203 C 65.145655,625.99467 102.64418,629.40363 118.55264,628.26731 C 134.4611,627.13099 162.86908,647.58473 164.00539,653.26632 C 165.14172,658.94792 144.68798,658.94792 133.32479,646.44841 C 121.9616,633.94891 117.41633,640.76681 85.599403,639.6305 C 53.78247,638.49418 -14.396663,627.13099 -18.941933,619.17675 C -23.487213,611.22252 -18.941933,602.13198 -20.078253,603.26829 z "
+ style="fill:url(#linearGradient4233);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path4100"
+ d="M 185.88806,620.31308 C 147.25322,539.63444 121.11789,481.68217 84.755678,455.54684 C 48.39348,429.41151 -14.104063,415.77569 -19.785653,405.54882 C -25.467243,395.32195 -19.785653,604.40462 -19.785653,604.40462 C -19.785653,604.40462 -9.558783,616.90412 24.530781,624.85835 C 58.620345,632.81258 89.300958,632.81258 110.89102,635.08522 C 132.48107,637.35786 140.43531,638.49418 144.98058,646.44841 C 149.52585,654.40264 164.298,662.35687 173.38855,654.40264 C 182.4791,646.44841 188.1607,618.04044 185.88806,620.31308 z "
+ style="fill:url(#radialGradient4223);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccc"
+ style="fill:#da4330;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4220);stroke-width:2.99339581;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.13714282"
+ d="M -26.097813,465.722 L -26.215223,465.90985 C -17.218633,470.14202 -8.208693,474.38089 0.7878866,478.61305 C 48.413175,502.85085 94.492991,529.61857 132.91527,567.39458 C 137.03166,571.36512 141.20377,575.36264 145.28974,579.46379 C 154.02778,591.41752 163.4526,603.55625 168.6533,617.52643 C 161.54764,611.8907 147.92131,602.81021 142.84772,599.42261 C 141.59603,598.4919 140.33216,597.577 139.06728,596.67534 C 128.02769,586.94065 116.52721,577.72319 104.94944,568.73299 C 87.77186,555.4621 69.258204,544.54146 50.097913,534.82648 C 69.146933,544.74261 87.412101,556.19458 104.80856,568.89736 C 115.35516,577.0865 126.19934,585.37653 136.06172,594.56205 C 91.965793,564.15639 40.257188,550.62869 -11.797903,540.48539 C -48.612863,534.36921 -85.831933,531.61199 -122.9333,527.92307 L -122.98027,528.15789 C -85.884843,531.84644 -48.677703,534.58332 -11.868353,540.69672 C 41.57131,551.10733 95.347216,564.79734 139.60734,597.99027 C 150.96792,609.12242 160.75054,621.60893 166.84526,636.75734 C 167.41111,639.02131 168.56362,641.26649 167.97235,643.56682 L 179.14929,642.25188 C 178.63799,638.39442 176.59558,635.53749 174.40613,632.38988 C 173.61763,631.44765 172.81234,630.52631 172.01107,629.59565 L 172.95031,621.54167 C 172.67931,621.09478 172.05437,620.44104 171.18924,619.6632 L 175.20448,617.40903 C 176.04262,618.97277 176.84246,620.56152 177.59954,622.17566 L 186.61624,616.54023 C 173.4064,604.55083 160.11949,592.65316 147.07429,580.49695 C 146.04539,579.43471 145.02804,578.36503 143.99828,577.30354 C 107.40567,535.60272 63.278117,501.1074 16.050517,472.29667 L 15.909627,472.48452 C 63.082703,501.2597 107.15439,535.71097 143.71652,577.3505 C 140.14644,574.00022 136.60564,570.63132 133.07964,567.23021 C 94.643661,529.44099 48.523734,502.64892 0.8818166,478.40172 C -8.116513,474.16859 -17.099483,469.95513 -26.097813,465.722 z M 50.097913,534.82648 C 42.675735,530.96279 35.144326,527.33005 27.485745,523.95479 C 35.101181,527.43738 42.641546,531.04583 50.097913,534.82648 z M 27.485745,523.95479 C 17.579277,519.4245 7.5691666,515.09365 -2.4524834,510.80545 L -3.0395034,512.09691 C 7.3260566,515.59416 17.505737,519.55645 27.485745,523.95479 z M -20.814593,581.74144 L -21.002443,582.61024 C 10.400477,584.94353 41.870822,588.2891 72.498752,595.87698 C 99.20224,603.67786 125.39225,613.70607 146.39334,632.62469 L 169.56897,644.03801 C 175.9987,634.54303 158.22443,631.07842 150.87821,626.82489 C 126.70977,612.03691 99.59656,603.55637 72.592673,595.66565 C 42.002661,587.80481 10.455067,585.36096 -20.814593,581.74144 z "
+ id="path4106" />
+ <path
+ style="fill:url(#linearGradient4562);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 129.25414,640.25152 C 127.37334,634.32607 125.0901,630.20511 132.3331,630.20511 C 139.5761,630.20511 128.7116,615.71911 135.04922,616.62448 C 141.38685,617.52986 147.72447,600.32774 151.34597,610.28686 C 154.96747,620.24598 160.39972,624.77286 157.6836,633.82661 C 154.96747,642.88035 150.74291,652.15825 145.2839,654.1094 C 141.86068,655.33293 131.13494,646.17697 129.25414,640.25152 z "
+ id="path4554"
+ sodipodi:nodetypes="csssssz" />
+ <path
+ style="fill:url(#radialGradient4153);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 160.88914,625.99476 C 140.4354,664.62961 133.61749,660.08434 133.61749,682.81071 C 133.61749,705.5371 143.84436,750.98985 149.52595,756.67146 C 155.20755,762.35305 446.1052,749.85354 446.1052,749.85354 C 446.1052,749.85354 392.6982,686.21967 356.33607,652.1301 C 319.97382,618.04053 291.56584,630.54003 252.93099,627.13108 C 214.29614,623.72212 163.16179,624.85845 160.88914,625.99476 z "
+ id="path4145" />
+ <path
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:2.99339581;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ d="M 273.54694,467.23349 C 271.54787,467.23349 269.91745,468.66479 269.91744,470.41397 C 269.91744,472.16316 271.54787,473.57575 273.54694,473.57575 C 275.546,473.57575 277.15771,472.16316 277.15772,470.41397 C 277.15772,468.66479 275.546,467.23348 273.54694,467.23349 z M 228.27183,498.92607 C 226.77252,498.92607 225.55906,500.55649 225.55906,502.55556 C 225.55906,504.55463 226.77252,506.16634 228.27183,506.16634 C 229.77113,506.16634 230.98459,504.55463 230.98459,502.55556 C 230.98459,500.55649 229.77113,498.92607 228.27183,498.92607 z M 284.86571,498.92607 C 283.61629,498.92607 282.60196,500.13953 282.60196,501.63883 C 282.60196,503.13813 283.61629,504.3516 284.86571,504.3516 C 286.11513,504.3516 287.12946,503.13813 287.12947,501.63883 C 287.12947,500.13953 286.11513,498.92607 284.86571,498.92607 z M 269.46843,511.59187 C 267.71925,511.59187 266.30665,513.02317 266.30666,514.77235 C 266.30666,516.52154 267.71925,517.93414 269.46843,517.93413 C 271.21762,517.93413 272.63022,516.52154 272.63021,514.77235 C 272.63021,513.02317 271.21762,511.59187 269.46843,511.59187 z M 205.18526,524.27639 C 203.43607,524.27639 202.02348,526.50419 202.02348,529.25291 C 202.02348,532.00162 203.43607,534.22943 205.18526,534.22943 C 206.93444,534.22943 208.34704,532.00162 208.34703,529.25291 C 208.34703,526.50419 206.93444,524.27638 205.18526,524.27639 z M 249.54364,529.70192 C 247.29469,529.70192 245.48385,531.33234 245.48385,533.33141 C 245.48385,535.33048 247.29469,536.94219 249.54364,536.94219 C 251.79259,536.94219 253.62215,535.33048 253.62215,533.33141 C 253.62215,531.33234 251.79259,529.70192 249.54364,529.70192 z M 261.77915,536.04417 C 260.27985,536.04417 259.04768,537.25764 259.04768,538.75694 C 259.04768,540.25624 260.27985,541.4697 261.77915,541.4697 C 263.27845,541.4697 264.49191,540.25624 264.49191,538.75694 C 264.49191,537.25764 263.27845,536.04417 261.77915,536.04417 z M 233.69736,544.20118 C 231.69829,544.20118 230.08658,545.81289 230.08657,547.81196 C 230.08657,549.81103 231.69829,551.44145 233.69736,551.44145 C 235.69642,551.44145 237.32684,549.81103 237.32685,547.81196 C 237.32685,545.81289 235.69642,544.20118 233.69736,544.20118 z M 242.75238,550.52473 C 241.25308,550.52473 240.03961,552.15515 240.03961,554.15422 C 240.03961,556.15329 241.25308,557.7837 242.75238,557.78371 C 244.25168,557.78371 245.48385,556.15329 245.48385,554.15422 C 245.48385,552.15515 244.25168,550.52473 242.75238,550.52473 z M 273.26631,553.2562 C 271.89723,553.41857 270.83417,554.77811 270.83417,556.41797 C 270.83417,558.16716 272.04763,559.57975 273.54694,559.57975 C 275.04624,559.57975 276.2597,558.16716 276.2597,556.41797 C 276.2597,554.66879 275.04624,553.25619 273.54694,553.2562 C 273.45323,553.2562 273.35757,553.24538 273.26631,553.2562 z M 247.74761,573.16228 C 246.49819,573.16228 245.48386,574.37574 245.48385,575.87505 C 245.48385,577.37435 246.49819,578.60652 247.74761,578.60652 C 248.99703,578.60652 250.01136,577.37435 250.01136,575.87505 C 250.01136,574.37574 248.99703,573.16228 247.74761,573.16228 z "
+ id="path4481" />
+ <path
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:2.99339581;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ d="M 72.545856,507.07426 C 70.047017,507.07426 68.018345,509.10294 68.018345,511.60177 C 68.018345,514.10061 70.047023,516.12929 72.545856,516.12929 C 75.044689,516.12929 77.073367,514.10061 77.073367,511.60177 C 77.073367,509.10294 75.044695,507.07426 72.545856,507.07426 z M 123.69551,526.99905 C 121.94632,526.99905 120.53374,529.62511 120.53373,532.87359 C 120.53373,536.12208 121.94632,538.76685 123.69551,538.76684 C 125.44469,538.76684 126.87599,536.12208 126.87599,532.87359 C 126.87599,529.62511 125.44469,526.99905 123.69551,526.99905 z M 58.963321,527.89707 C 57.963788,527.89707 57.148577,529.30967 57.148575,531.05885 C 57.148575,532.80803 57.963789,534.23934 58.963321,534.23933 C 59.962855,534.23933 60.778063,532.80803 60.778069,531.05885 C 60.778069,529.30966 59.962857,527.89707 58.963321,527.89707 z M 103.78942,528.79509 C 102.54,528.79509 101.52566,530.62464 101.52567,532.87359 C 101.52567,535.12254 102.54,536.95209 103.78942,536.95209 C 105.03884,536.95209 106.05318,535.12255 106.05318,532.87359 C 106.05318,530.62464 105.03884,528.7951 103.78942,528.79509 z M 39.057239,540.58159 C 36.558405,540.58159 34.529728,542.39243 34.529728,544.64138 C 34.529728,546.89033 36.558405,548.71986 39.057239,548.71988 C 41.556074,548.71988 43.584751,546.89034 43.584751,544.64138 C 43.584751,542.39243 41.556074,540.58159 39.057239,540.58159 z M 96.998158,546.90514 C 94.499325,546.90514 92.470653,548.73469 92.470647,550.98364 C 92.470647,553.23259 94.499319,555.06214 96.998158,555.06214 C 99.49699,555.06214 101.52567,553.23259 101.52567,550.98364 C 101.52567,548.73469 99.49699,546.90514 96.998158,546.90514 z M 16.419687,550.53463 C 14.420617,550.53463 12.790187,551.54895 12.790187,552.79838 C 12.790187,554.0478 14.420617,555.06213 16.419687,555.06214 C 18.418757,555.06214 20.030467,554.04778 20.030467,552.79838 C 20.030467,551.54896 18.418757,550.53464 16.419687,550.53463 z M 123.2465,567.72794 C 121.24743,567.72794 119.63571,569.35838 119.63571,571.35744 C 119.63571,573.3565 121.24743,574.96823 123.2465,574.96822 C 125.24556,574.96822 126.87599,573.35651 126.87599,571.35744 C 126.87599,569.35837 125.24556,567.72794 123.2465,567.72794 z M 63.490834,575.88495 C 61.491767,575.88495 59.880051,577.7145 59.880049,579.96345 C 59.880049,582.2124 61.491767,584.02324 63.490834,584.02324 C 65.489902,584.02324 67.120321,582.21241 67.120327,579.96345 C 67.120327,577.7145 65.489902,575.88495 63.490834,575.88495 z M 86.577399,579.49573 C 85.32798,579.49573 84.313643,580.92704 84.313643,582.67621 C 84.313643,584.4254 85.327985,585.83798 86.577399,585.83799 C 87.826818,585.83799 88.841154,584.4254 88.841154,582.67621 C 88.841154,580.92703 87.826818,579.49575 86.577399,579.49573 z M 37.691503,586.75472 C 34.443018,586.75472 31.798255,587.76906 31.798255,589.01847 C 31.798255,590.26789 34.443018,591.28224 37.691503,591.28223 C 40.939988,591.28223 43.58475,590.26789 43.584751,589.01847 C 43.584751,587.76905 40.939988,586.75471 37.691503,586.75472 z M 108.76594,590.3655 C 107.26664,590.3655 106.05318,591.37984 106.05318,592.62926 C 106.05318,593.87868 107.26664,594.89302 108.76594,594.89301 C 110.26525,594.89301 111.4787,593.87868 111.47871,592.62926 C 111.47871,591.37984 110.26524,590.36549 108.76594,590.3655 z M 147.24979,592.18025 C 146.00037,592.18025 144.98603,593.39371 144.98603,594.89301 C 144.98603,596.39231 146.00037,597.60578 147.24979,597.60578 C 148.49921,597.60578 149.51354,596.39231 149.51354,594.89301 C 149.51354,593.39371 148.4992,592.18025 147.24979,592.18025 z M 134.11626,596.70776 C 132.1172,596.70776 130.48677,597.7221 130.48677,598.97151 C 130.48677,600.22093 132.1172,601.23528 134.11626,601.23527 C 136.11533,601.23527 137.72705,600.22093 137.72705,598.97151 C 137.72705,597.72209 136.11533,596.70775 134.11626,596.70776 z M 83.415625,612.10504 C 79.917255,612.10504 77.073367,612.90154 77.073367,613.90107 C 77.073367,614.90061 79.917261,615.71581 83.415625,615.71582 C 86.913994,615.71582 89.757882,614.90061 89.757882,613.90107 C 89.757882,612.90154 86.913994,612.10505 83.415625,612.10504 z M 112.37673,613.00306 C 110.37766,613.00306 108.76594,614.0174 108.76594,615.26681 C 108.76594,616.51623 110.37766,617.53058 112.37673,617.53057 C 114.3758,617.53057 116.00622,616.51623 116.00622,615.26681 C 116.00622,614.01739 114.3758,613.00305 112.37673,613.00306 z M 135.01428,614.8178 C 133.51498,614.8178 132.30152,616.42952 132.30152,618.42859 C 132.30152,620.42765 133.51498,622.05809 135.01428,622.05808 C 136.51359,622.05808 137.72704,620.42766 137.72705,618.42859 C 137.72705,616.42952 136.51358,614.8178 135.01428,614.8178 z M 154.93907,615.71582 C 153.93954,615.71582 153.12433,617.54537 153.12433,619.79432 C 153.12433,622.04327 153.93954,623.87282 154.93907,623.87282 C 155.93861,623.87282 156.75382,622.04328 156.75382,619.79432 C 156.75382,617.54537 155.9386,615.71583 154.93907,615.71582 z M 112.37673,622.9561 C 109.37812,622.9561 106.9512,624.3874 106.9512,626.13658 C 106.9512,627.88576 109.37812,629.29834 112.37673,629.29835 C 115.37533,629.29835 117.82097,627.88576 117.82097,626.13658 C 117.82097,624.38739 115.37533,622.95611 112.37673,622.9561 z M 149.51354,634.72388 C 148.01424,634.72388 146.78207,635.33997 146.78207,636.08962 C 146.78207,636.83927 148.01424,637.45536 149.51354,637.45536 C 151.01285,637.45536 152.2263,636.83927 152.22631,636.08962 C 152.22631,635.33997 151.01284,634.72389 149.51354,634.72388 z "
+ id="path4523" />
+ <path
+ style="fill:url(#linearGradient4333);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 175.54586,643.52716 C 164.18267,592.39281 150.93002,580.0249 131.6126,549.34429 C 112.29517,518.66367 73.660333,461.84772 74.796644,473.21091 C 75.932967,484.5741 115.70413,536.84478 122.52205,547.07165 C 129.33996,557.29852 153.43361,610.47458 156.84256,625.24673 C 160.25152,640.01887 171.24994,648.51592 175.54586,643.52716 z "
+ id="path4325"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true"
+ sodipodi:nodetypes="cssssc" />
+ <path
+ sodipodi:nodetypes="cssssc"
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ id="path3851"
+ d="M 175.54586,643.52716 C 164.18267,592.39281 150.93002,580.0249 131.6126,549.34429 C 112.29517,518.66367 73.660333,461.84772 74.796644,473.21091 C 75.932967,484.5741 115.70413,536.84478 122.52205,547.07165 C 129.33996,557.29852 153.43361,610.47458 156.84256,625.24673 C 160.25152,640.01887 171.24994,648.51592 175.54586,643.52716 z "
+ style="fill:url(#radialGradient3853);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <g
+ id="g4603"
+ transform="matrix(0.598679,0,0,0.598679,7.361887,259.0014)">
+ <path
+ style="opacity:0.2;fill:#ad0916;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 477.09375,616.84375 C 459.53146,617.53326 441.69817,616.21171 424.74273,621.65425 C 387.61614,631.61588 350.77348,643.39075 313.3125,651.625 C 309.69641,652.97259 309.90123,648.93163 307.5625,650.90625 C 285.54554,653.20438 263.18758,655.08709 241.8125,660.46875 C 236.61142,661.48153 231.95032,665.62726 233.0817,671.34368 C 234.07173,682.39704 227.75369,691.5969 223.53142,701.18912 C 213.5466,728.20837 220.67237,759.62534 236.875,782.6875 C 240.72495,787.28739 245.32642,780.90184 246.96875,777.4375 C 260.69615,750.54902 264.45467,719.31443 280.1875,693.40625 C 285.20313,687.14603 292.06426,678.24427 301.15625,680.375 C 303.15256,680.91717 304.54202,683.36059 305.1875,680.40625 C 310.1317,676.78674 316.97949,680.39834 322.3125,681.375 C 358.30393,693.55915 391.8936,712.66248 421.81613,735.83839 C 429.91955,743.13064 440.65048,750.02245 442.96875,761.34375 C 443.92412,768.42161 435.41542,771.80105 434.65625,778 C 446.21129,775.99284 455.86847,768.17773 465.70417,762.22226 C 476.33918,754.40928 488.54683,747.4167 495.90625,736.21875 C 496.24283,734.07523 491.60995,736.40535 490.37131,736.61911 C 479.79519,740.33408 471.04713,747.18016 462,753.40625 C 453.11565,755.20631 446.39009,746.85599 440.53125,741.625 C 424.19838,725.23087 412.15125,704.63624 394.34375,689.875 C 382.64124,681.23104 367.66406,679.20636 355.3125,671.9375 C 351.07844,668.99996 354.96141,664.13129 358.53125,663 C 370.79972,657.33218 385.19196,660.2223 398.25,661.21875 C 429.77948,665.63727 461.40108,672.12786 491,683.9375 C 505.10545,690.20956 515.58072,704.03766 530.90625,707.625 C 544.22003,705.49226 556.03262,696.77457 566.26822,688.39107 C 573.6484,681.80879 582.28805,672.20039 578.96875,661.625 C 570.20062,669.50432 565.78656,682.22914 555.34375,688.25 C 541.73532,693.305 526.95114,687.42171 513.87205,683.28508 C 496.76504,676.89566 480.50413,668.57188 462.59387,664.48626 C 447.11712,659.98648 431.47034,656.2826 416,652.03125 C 446.31603,644.20784 477.49702,638.04356 506.21875,625.53125 C 508.19026,624.62848 513.97074,621.73482 509.59375,619.78125 C 499.43475,615.90568 487.82035,617.05775 477.09375,616.84375 z M 318.1875,648.8125 C 322.32245,650.98111 320.67898,644.41443 318.1875,648.8125 z "
+ id="path4605" />
+ <path
+ style="opacity:0.2;fill:#ad0916;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 477.09375,616.09375 C 461.71556,616.94762 445.96606,615.40862 430.97511,619.36506 C 392.77247,629.12669 355.21386,641.34747 316.75845,650.18203 C 314.7196,650.97896 311.10882,651.34468 312.125,650 C 290.88864,651.18947 269.64548,654.25924 248.76895,657.91753 C 243.0848,659.5705 234.39199,660.20873 232.65625,667 C 232.417,675.73055 231.80764,684.77521 226.875,692.3125 C 212.79701,717.36239 217.16211,749.29797 230.34801,773.75812 C 233.15433,777.70109 234.75782,784.54926 240.34375,785.125 C 246.75908,782.86941 248.67361,775.16151 251.54996,769.6251 C 261.76459,745.15888 266.73223,718.3999 279.875,695.21875 C 284.48938,688.93664 290.3254,681.13488 298.78125,680.6875 C 301.27819,680.67916 303.49668,682.39728 305.15625,683.78125 C 304.31485,679.15134 310.15054,679.25454 313.15625,679.9375 C 335.75268,684.88533 356.49817,695.89802 376.74979,706.76973 C 397.88978,719.02088 418.99431,732.20914 435.99259,749.87806 C 440.46568,754.54238 445.02138,762.35686 439.96875,768.28125 C 437.94755,771.36303 433.04585,774.70605 434.15625,778.625 C 440.71067,778.85495 446.64431,774.22881 452.39783,771.4346 C 467.52646,762.21595 482.68976,752.66182 494.6875,739.5625 C 495.70154,738.52028 498.65304,734.12663 495.21875,734.625 C 482.97589,737.1769 472.24932,745.05489 462.5,752.34375 C 455.81262,754.91916 449.66627,748.80137 444.97773,744.86892 C 426.97785,728.12039 414.47133,706.339 396.01421,690.1802 C 384.33728,681.0678 369.0298,678.63443 356.21875,671.6875 C 352.78507,669.97449 354.27945,665.62298 357.375,664.53125 C 367.7948,658.40974 380.7483,660.72886 392.33743,661.32508 C 423.733,664.86878 454.62178,671.6988 484.5,682.0625 C 500.66124,687.20067 511.87662,701.59656 527.53125,707.625 C 534.66961,709.98679 541.56063,705.03053 547.78125,702.21875 C 559.99165,695.05514 572.71439,686.49059 579.09375,673.34375 C 580.58697,669.55854 581.2729,664.38495 579.25,660.78125 C 574.2834,663.54145 571.90257,669.6745 568.15625,673.84375 C 563.02854,680.41163 557.84343,689.00253 548.50545,689.27775 C 530.07316,690.20828 512.77677,682.09423 496.06365,675.34816 C 475.05746,665.74435 452.21921,661.1587 430.0625,654.96875 C 427.56946,653.9261 418.13603,652.85817 420.3584,651.68665 C 448.55619,644.69836 477.18887,638.34809 504.125,627.375 C 506.66849,625.7403 511.61654,624.68053 512.03125,621.28125 C 509.65744,617.14963 503.67263,617.55424 499.53125,616.6875 C 492.07582,616.0005 484.5741,615.94002 477.09375,616.09375 z M 316.46875,649.375 C 318.81662,650.36274 317.59,647.17518 316.46875,649.375 z "
+ id="path4610" />
+ <path
+ style="opacity:0.2;fill:#ad0916;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 313.54413,650.19444 C 385.66979,633.11205 429.32477,616.02966 448.30522,616.02966 C 467.28565,616.02966 512.8387,612.23357 512.8387,621.72379 C 512.8387,631.214 421.7326,652.09248 421.7326,652.09248 C 421.7326,652.09248 474.87782,665.37879 488.16412,671.07292 C 501.45043,676.76705 545.10543,697.64552 558.39173,684.35922 C 571.678,671.07292 581.16829,648.2964 581.16829,667.27683 C 581.16829,686.25727 539.4113,710.93183 529.92108,709.03378 C 520.43087,707.13575 512.8387,699.54357 495.7563,688.1553 C 478.67392,676.76705 381.87369,653.99052 360.99521,663.48074 C 340.11674,672.97097 378.07761,674.869 397.05804,690.05335 C 416.03847,705.2377 450.20325,762.179 463.48957,750.79075 C 476.77587,739.40248 505.24652,726.11618 495.7563,739.40248 C 486.26608,752.68878 431.22282,788.75161 433.12087,777.36335 C 435.01891,765.97508 459.69347,765.97508 414.14044,731.8103 C 368.58739,697.64552 305.95196,672.97097 305.95196,682.46117 C 305.95196,691.9514 302.15586,669.17487 283.17543,691.9514 C 264.195,714.72792 250.90869,807.73205 233.8263,781.15943 C 216.74391,754.58683 211.04978,718.524 226.23413,691.9514 C 241.41848,665.37879 212.94783,661.5827 267.99108,653.99052 C 323.03434,646.39835 315.44217,650.19444 313.54413,650.19444 z "
+ id="path4615" />
+ <path
+ style="opacity:0.2;fill:#ad0916;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 477.0625,614.59375 C 464.03652,615.30013 450.8619,614.34531 437.9493,616.3825 C 406.15567,623.27124 375.23715,634.02261 343.64169,641.90743 C 334.10095,644.1619 324.45021,647.3357 314.90625,648.75 C 301.71717,648.09032 288.41803,650.90064 275.27027,652.23882 C 262.06854,654.43293 248.18823,654.923 235.90625,660.53125 C 228.75486,663.98623 231.65379,672.87272 230.25,679.09375 C 228.39382,689.7061 220.46785,698.17288 218.78125,708.96875 C 212.86116,734.66381 220.04455,762.43269 234.84375,783.8125 C 237.27316,787.44697 242.66999,787.41461 245.15625,783.90625 C 253.73652,773.01918 256.92801,758.70172 261.70223,745.78727 C 267.96196,728.08425 272.44236,709.21182 282.875,693.5 C 287.25967,688.61264 292.87751,680.93742 300.4375,682.53125 C 302.63151,682.49691 304.72266,687.41031 306.53125,684.78125 C 306.23291,682.61433 306.94752,680.69472 309.5,681.15625 C 324.1602,682.60884 337.56264,689.36105 350.90625,695.1875 C 379.78493,708.98403 407.80682,725.49667 431.34375,747.15625 C 435.68487,751.89497 442.4168,757.75763 440.1875,764.9375 C 438.1427,769.81927 431.47898,773.18422 432.5625,779.03125 C 435.23462,782.15207 439.98449,778.87152 443.0625,777.96875 C 461.28117,768.9514 478.41506,757.32 493.28125,743.4375 C 495.29481,740.8737 499.74471,737.38762 497.8125,733.8125 C 493.37206,731.67294 488.40878,735.32327 484.19886,736.76205 C 475.90208,740.48746 468.43766,746.1521 461.1875,751.28125 C 453.86164,752.40326 448.23842,745.45127 443.28125,741.1875 C 426.91354,724.91757 414.697,704.79241 397.53125,689.46875 C 385.75288,679.95602 370.23057,677.43164 357.125,670.5 C 354.16224,669.11854 356.58467,666.08649 358.8125,665.4375 C 369.25518,659.96564 381.75795,662.29008 393.09375,662.90625 C 424.6136,666.67439 455.70844,673.34306 485.625,684.125 C 501.64628,689.68571 512.60977,704.65037 528.875,709.5625 C 536.57858,710.6872 543.62817,705.81127 550.24493,702.5654 C 562.31558,695.18856 575.00948,686.40725 580.84375,673 C 582.09423,668.83566 582.91213,663.35826 580.28125,659.65625 C 576.781,658.22426 574.59479,663.30543 572.59375,665.3125 C 566.98303,672.28686 562.52968,680.61747 555.1875,685.8125 C 544.62806,690.51124 532.61624,686.56036 522.07196,683.66599 C 503.68132,678.18397 486.88102,668.21139 468.08911,663.73025 C 453.74833,659.59783 439.31654,655.77352 424.84375,652.125 C 451.98335,645.34022 479.57285,639.21502 505.42746,628.42821 C 508.27643,626.67191 514.31789,624.96517 513.40625,620.59375 C 510.4649,615.54357 503.30069,615.92825 498.19298,615.0594 C 491.16693,614.49908 484.10597,614.44673 477.0625,614.59375 z "
+ id="path4618" />
+ <path
+ style="opacity:0.2;fill:#ad0916;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 477.03125,613.84375 C 459.59625,614.57183 441.86158,613.1595 424.99804,618.49027 C 388.35879,628.19131 352.00074,640.11812 315.0625,648 C 297.61094,647.51366 280.11944,651.19494 262.84375,653.21875 C 252.68589,655.42628 240.83333,655.22535 232.5625,662.1875 C 227.70303,668.58452 231.78533,677.60072 228.03125,684.59375 C 223.00157,694.92806 217.5334,705.32336 216.52691,716.9916 C 213.8885,740.87961 220.82844,765.59349 234.78125,784.84375 C 238.54693,789.645 245.33857,786.68924 247.65625,782 C 258.98424,762.84418 263.22047,740.42093 271.28125,719.75 C 276.48232,706.08506 281.95281,689.7635 296.1875,683.28125 C 300.09341,681.40236 302.518,685.57535 305.71875,686.40625 C 308.66856,685.88996 305.9106,681.03195 309.5625,681.90625 C 327.17325,683.99298 343.28323,692.61764 359.21875,700.03125 C 385.85197,713.75338 412.64721,729.59454 433.8125,750.8125 C 438.05006,755.06699 442.84237,762.49685 437.5625,767.71875 C 434.94319,770.92594 429.40323,775.93206 432.625,780.28125 C 438.15658,782.79032 444.07934,777.78853 449.09375,775.84375 C 466.06557,766.07907 483.17173,755.44867 496.46875,740.9375 C 498.87572,738.83387 500.97744,732.71767 496.0625,732.375 C 484.51818,733.69485 474.54611,741.12664 465.21875,747.4375 C 462.24034,751.63141 456.65641,751.50767 452.9375,748.3125 C 433.54757,733.74423 420.86966,711.58782 403.84375,694.3125 C 391.94378,680.7152 373.04661,677.70602 357.5625,669.875 C 354.13147,667.45608 360.80906,665.38033 362.5,664.5 C 378.83974,660.38431 396.24694,664.20964 412.69154,666.3288 C 439.6989,671.30258 466.95075,676.82875 492.1875,687.8125 C 505.22266,694.77642 515.58236,707.29522 530.28125,710.59375 C 542.15661,709.77224 552.54747,702.15011 562.1875,695.625 C 572.24103,687.64474 585.06118,676.65681 582.3125,662.15625 C 582.30749,658.40207 577.69798,657.4687 575.75,660.34375 C 568.09779,668.24678 563.49912,679.54821 554.09375,685.53125 C 540.46937,690.10003 526.13634,684.00033 513.21875,679.875 C 496.746,673.45051 480.82551,665.59791 463.43597,661.61701 C 451.70529,658.29941 439.86048,655.19522 428.09375,652.15625 C 454.82785,645.24171 482.31419,639.42227 507.5625,628.1875 C 511.07007,626.87313 516.84048,622.69793 513.09375,618.6875 C 505.474,612.95986 494.77421,614.56347 485.7189,613.78841 C 482.82302,613.78137 479.92611,613.74733 477.03125,613.84375 z "
+ id="path4623" />
+ </g>
+ <g
+ id="g4776"
+ transform="matrix(0.598679,0,0,0.598679,-269.6828,392.9969)">
+ <path
+ style="opacity:0.2;fill:#ae0917;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1126.5,246 C 1091.8139,254.85214 1055.1134,257.80682 1022.9439,274.28002 C 989.57719,290.6833 958.42974,311.54946 927.9375,332.71875 C 906.13573,350.56439 886.40722,372.16936 859.78125,382.65625 C 840.9995,392.45626 820.26361,402.52035 809.6875,421.75 C 808.15977,425.69228 805.06352,430.55541 805.96875,434.71875 C 813.62569,437.79207 822.57786,434.58716 830.50924,433.51011 C 871.94847,423.97404 912.2525,409.78385 951.6875,393.875 C 992.56905,375.04911 1021.4344,335.84813 1065.375,322.84375 C 1090.1435,314.41465 1101.1466,289.06177 1113.0852,267.87912 C 1117.0425,260.39519 1122.554,252.65854 1126.5,246 z "
+ id="path4778" />
+ <path
+ style="opacity:0.2;fill:#ae0917;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1114.0648,245.83886 C 1082.38,252.86284 1049.5183,256.9852 1020.4688,272.15625 C 987.6581,288.35842 957.12322,308.94222 927.02618,329.61782 C 904.89026,347.41017 885.41162,369.36634 858.46875,379.96875 C 838.87531,390.11676 817.13519,400.89065 806.5625,421.21875 C 805.13073,425.95529 800.7617,431.70248 803.5625,436.59375 C 809.75663,441.21469 818.5794,438.12572 825.59375,437.5 C 867.47507,428.94483 907.82415,414.18429 947.66336,398.86192 C 991.59771,381.21242 1021.2427,338.74708 1067.283,325.31306 C 1090.9149,316.98996 1102.6531,293.13593 1113.9574,272.50249 C 1126.579,242.33112 1150.3444,236.53635 1114.0648,245.83886 z M 1127.75,247.25 C 1124.8254,245.86364 1130.8392,244.13982 1127.8089,247.12412 L 1127.75,247.25 z "
+ id="path4796"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ style="opacity:0.2;fill:#ae0917;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1128.8438,244.53125 C 1100.3356,252.24507 1070.5323,255.30478 1042.5983,265.09649 C 1002.3065,280.58518 966.67795,305.75915 930.875,329.53125 C 907.9397,347.13304 888.37364,370.31965 860.88573,381.29198 C 842.39472,390.7327 822.56793,400.4747 810.75,418.25 C 808.0134,423.27626 804.99723,428.92985 805,434.65625 C 808.49876,438.20542 814.65935,436.26963 819.15625,436.21875 C 849.86956,431.36373 879.47409,420.91234 908.88324,410.93827 C 933.1218,402.11971 958.28371,394.3784 979.125,378.59375 C 1007.2635,358.50796 1033.1536,332.84091 1067.2188,322.9375 C 1089.5081,314.66437 1100.4986,292.23788 1111.328,272.59245 C 1116.5236,262.92788 1122.5938,253.14345 1128.8438,244.53125 z "
+ id="path4783" />
+ <path
+ style="opacity:0.2;fill:#ae0917;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1132.5165,241.28313 C 1105.944,273.54986 1100.2499,313.40877 1064.187,324.79703 C 1019.375,338.94819 990.16335,379.84027 948.40639,396.92267 C 906.64959,414.00505 800.35929,450.06787 804.15541,432.98549 C 807.95153,415.90309 818.36673,399.88577 867.97872,377.13998 C 891.446,366.38086 916.86131,337.74873 933.69996,326.6336 C 968.15828,303.88782 1018.3226,268.89689 1059.6194,259.10629 C 1104.4009,248.48955 1132.5165,245.07921 1132.5165,241.28313 z "
+ id="path4788" />
+ <path
+ style="opacity:0.2;fill:#ae0917;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1131.9375,240.8125 C 1128.2925,244.6618 1121.9801,244.27957 1117.1875,245.96875 C 1092.6438,251.45014 1067.4866,255.18315 1043.5,263.15625 C 1002.5283,278.56086 966.3115,304.26113 929.96875,328.3125 C 907.01426,345.95559 887.676,368.95944 860.26276,379.9212 C 841.39691,389.57664 820.77526,399.69208 809.09396,418.11839 C 806.34768,423.20573 803.58918,428.82342 803.40625,434.65625 C 805.45036,439.42562 812.25499,438.03233 816.43453,437.9958 C 843.68636,434.56975 869.84137,425.33529 895.9375,417.03125 C 917.56368,409.31874 939.59951,402.37325 960.1875,392.1875 C 996.888,372.52965 1024.5009,337.78471 1065.1477,325.29006 C 1084.6236,319.25462 1097.0469,301.85153 1106.3648,284.68845 C 1114.5735,269.89079 1122.5048,254.51715 1133.25,241.59375 C 1133.4713,239.4521 1134.4928,237.05171 1131.9375,240.8125 z M 1129.625,244.875 C 1128.1282,244.06223 1131.2517,243.44693 1129.625,244.875 z "
+ id="path4791" />
+ </g>
+ <path
+ style="fill:url(#linearGradient5692);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4014);stroke-width:2.99339581;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 194.37053,624.92577 C 190.80545,625.00697 187.46741,625.82172 184.64941,627.76697 L 190.49617,631.33608 C 190.16048,632.02937 189.86256,632.80111 189.60389,633.61373 L 193.45477,633.1676 L 194.22964,633.63721 C 187.00602,635.92422 216.94246,634.14394 220.62225,634.52949 C 236.11021,637.65466 251.02983,642.59146 265.4709,648.73548 C 251.18799,642.253 236.54889,636.47352 221.51452,631.50045 C 214.09527,629.24686 203.48127,624.7183 194.37053,624.92577 z M 265.4709,648.73548 C 281.74235,656.12048 297.5444,664.43605 312.94942,673.55486 C 297.65954,664.26877 281.8786,655.71621 265.4709,648.73548 z M 312.94942,673.55486 C 321.34417,678.6533 329.60602,683.95949 337.72184,689.35755 C 365.40699,708.73771 390.51449,731.25536 412.3678,756.98274 L 413.09574,756.3018 C 390.0191,731.71588 365.8313,708.23954 337.83928,689.16971 C 329.66002,683.72947 321.3602,678.53352 312.94942,673.55486 z M 189.60389,633.61373 L 189.39256,633.63721 C 189.4413,633.72193 189.48487,633.79088 189.53344,633.87203 C 189.55998,633.78493 189.57649,633.69981 189.60389,633.61373 z M 189.53344,633.87203 C 188.71011,636.57426 188.27607,639.73534 188.28896,642.44258 C 189.06104,666.95536 195.96098,690.63058 202.58886,714.05953 C 212.92728,746.25426 228.60679,776.27747 245.67645,805.33006 L 245.86429,805.21265 C 228.80352,776.17453 213.13278,746.16782 202.80019,713.98909 C 197.09807,692.56192 193.51867,670.7332 195.92027,648.64156 C 210.33583,653.66237 223.50591,661.22342 236.56583,669.16392 C 267.55324,691.75727 293.38746,720.37119 316.68289,750.6194 C 319.21659,754.6425 321.75701,758.6655 324.29072,762.68862 L 325.81698,761.53805 C 322.83289,757.85155 319.85485,754.165 316.87074,750.47852 C 293.50137,720.13558 267.36955,692.08885 237.15285,668.38905 C 225.21353,658.71527 211.81999,648.72478 200.21729,639.50746 L 196.64818,643.07657 C 196.69674,642.76358 196.73796,642.45042 196.78906,642.13733 C 199.53074,629.20795 195.10852,643.1847 189.53344,633.87203 z M 181.6908,629.59849 C 177.17621,634.22558 175.93464,640.90677 173.89512,646.88048 C 166.58568,669.83774 165.31776,693.98133 164.97236,717.88693 C 163.94939,749.68278 173.48826,779.18706 185.65909,808.05385 L 185.87041,807.95992 C 173.72408,779.14961 163.94055,749.60944 165.5359,717.83996 C 167.37289,694.18371 170.38997,670.15167 181.24466,648.68852 C 181.4977,648.24375 185.85423,641.48983 187.4906,639.06132 L 181.6908,629.59849 z M 187.4906,639.06132 L 187.56105,639.17873 C 188.5294,637.57303 188.20351,638.0033 187.4906,639.06132 z "
+ id="path4159" />
+ <path
+ id="path4155"
+ d="M 160.88914,625.99476 C 140.4354,664.62961 133.61749,660.08434 133.61749,682.81071 C 133.61749,705.5371 143.84436,750.98985 149.52595,756.67146 C 155.20755,762.35305 446.1052,749.85354 446.1052,749.85354 C 446.1052,749.85354 392.6982,686.21967 356.33607,652.1301 C 319.97382,618.04053 291.56584,630.54003 252.93099,627.13108 C 214.29614,623.72212 163.16179,624.85845 160.88914,625.99476 z "
+ style="fill:url(#radialGradient4157);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:#b6160a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 179.36704,631.88002 C 160.24768,525.54523 155.46031,513.77731 150.7682,486.06068 C 146.07608,458.34407 141.63962,442.04444 139.38129,427.0532 C 137.12296,412.06196 141.65468,412.41287 144.35916,406.92369 C 147.06365,401.43451 149.32951,401.60996 160.48334,404.75308 C 171.63716,407.89622 166.66681,413.20995 166.92247,424.62695 C 167.17813,436.04395 170.97791,504.72142 176.2766,539.32334 C 181.57527,573.92526 194.0149,619.33761 191.13495,627.09265 C 188.25501,634.84769 179.19158,634.14588 179.36704,631.88002 z "
+ id="path4211"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ style="fill:url(#linearGradient4289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 197.75638,614.40063 C 223.89172,513.26824 209.11957,554.17572 226.16436,512.13192 C 243.20914,470.08812 256.84497,439.4075 260.25392,426.90799 C 263.66288,414.40848 268.20816,399.63633 268.20816,412.13584 C 268.20816,424.63535 254.57233,466.67916 247.75441,483.72394 C 240.93651,500.76873 220.48276,566.67523 214.80116,588.26529 C 209.11957,609.85536 203.43798,635.99069 200.02901,630.3091 C 196.62006,624.62751 196.62006,613.26431 197.75638,614.40063 z "
+ id="path4243"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ style="fill:url(#linearGradient4281);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 193.84544,642.96265 C 218.84446,591.82829 220.6552,576.40011 233.15471,567.30957 C 245.65422,558.21902 263.83533,553.67374 284.28907,526.40207 C 304.74281,499.13043 305.87914,500.26674 305.87914,505.94834 C 305.87914,511.62994 279.74379,542.31054 271.78956,547.99214 C 263.83533,553.67374 237.69999,567.30957 229.74576,585.49067 C 221.79152,603.67177 216.0749,632.58167 209.73549,638.47258 C 202.68664,645.02275 197.25439,645.23529 193.84544,642.96265 z "
+ id="path4257"
+ sodipodi:nodetypes="cssssssc" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ id="path3941"
+ d="M 179.36704,631.88002 C 160.24768,525.54523 155.46031,513.77731 150.7682,486.06068 C 146.07608,458.34407 141.63962,442.04444 139.38129,427.0532 C 137.12296,412.06196 141.65468,412.41287 144.35916,406.92369 C 147.06365,401.43451 149.32951,401.60996 160.48334,404.75308 C 171.63716,407.89622 166.66681,413.20995 166.92247,424.62695 C 167.17813,436.04395 170.97791,504.72142 176.2766,539.32334 C 181.57527,573.92526 194.0149,619.33761 191.13495,627.09265 C 188.25501,634.84769 179.19158,634.14588 179.36704,631.88002 z "
+ style="fill:url(#radialGradient3943);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:url(#linearGradient4313);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 199.77967,645.31219 C 203.18863,597.58679 199.77967,578.26936 210.00653,556.6793 C 220.23341,535.08923 206.59758,528.27132 202.0523,545.3161 C 197.50702,562.36089 181.59856,614.63157 183.8712,630.54003 C 186.14384,646.4485 178.87524,635.91146 182.54074,643.75077 C 186.87347,653.01707 199.77967,645.31219 199.77967,645.31219 z "
+ id="path4297"
+ sodipodi:nodetypes="cssssc" />
+ <path
+ style="fill:url(#linearGradient4323);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 187.64982,635.83792 C 183.10455,621.06576 176.22177,613.53206 173.94913,602.16887 C 171.67649,590.80568 150.08643,570.35194 137.58692,548.76187 C 125.08741,527.17181 109.17895,518.08126 112.58791,527.17181 C 115.99686,536.26237 129.63269,553.30715 137.58692,562.39771 C 145.54115,571.48826 163.72226,601.03256 163.72226,614.66838 C 163.72226,628.3042 169.82893,644.00014 180.03741,646.25437 C 186.01272,647.57383 191.27132,640.59573 187.64982,635.83792 z "
+ id="path4315"
+ sodipodi:nodetypes="cssssssc" />
+ <path
+ style="fill:url(#radialGradient4357);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4337"
+ d="M 236.14088,395.84857 C 243.72939,382.61405 257.60027,394.23875 266.72765,400.71939 C 279.33343,410.34174 289.19492,422.61923 297.15214,436.21714 L 290.30776,440.01349 C 284.75103,426.08637 275.99978,414.01743 263.47988,405.48202 C 255.14678,400.84486 240.04689,403.28414 247.33562,394.52358 L 236.14088,395.84857 z " />
+ <path
+ style="fill:url(#radialGradient4365);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4339"
+ d="M 294.80734,473.81223 C 301.44492,475.85179 302.74606,481.95752 305.07171,487.94549 C 309.4774,500.77619 313.63905,513.71924 316.70996,526.94077 C 318.05143,532.24063 318.01065,537.65866 318.09687,543.06927 L 308.81271,543.63936 C 309.31384,538.77417 309.83265,533.94115 309.18539,529.03938 C 307.46101,516.1242 304.65989,503.2632 298.19194,491.79482 C 297.44238,490.60804 292.00796,482.46259 293.48235,485.00697 L 294.80734,473.81223 z " />
+ <path
+ style="fill:url(#radialGradient4397);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 243.51997,519.66823 C 221.69637,528.85463 198.33107,534.08518 175.04946,538.47648 C 174.25676,544.77142 173.50699,551.07151 172.81877,557.37866 C 194.37799,546.57144 217.58358,537.74042 241.75889,535.14219 C 246.71256,535.42521 247.636,529.54692 246.33768,525.89068 C 245.40917,523.81747 246.98132,519.63325 243.51997,519.66823 z "
+ id="path4343" />
+ <path
+ style="fill:url(#radialGradient4381);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4347"
+ d="M 128.80717,513.61538 C 121.62378,520.48149 116.83295,529.08816 113.11301,538.20694 C 111.01209,542.83923 110.55294,547.5383 110.63543,552.39185 L 101.06428,553.86607 C 101.35547,547.76463 103.79839,542.2922 106.13213,536.6872 C 110.03701,527.29507 114.93552,518.40927 118.8851,509.07491 L 128.80717,513.61538 z " />
+ <path
+ style="fill:url(#radialGradient4401);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 72.738122,423.86907 C 66.121095,422.91558 68.5529,428.86087 68.822258,433.18056 C 71.606666,455.80296 69.762519,478.71681 72.855529,501.30931 C 77.14819,498.88306 81.444905,496.46391 85.746582,494.05369 C 79.686883,480.84659 77.656655,466.20131 75.673248,451.92883 C 74.69824,442.51544 74.646663,433.04034 74.475717,423.5873 C 73.896524,423.68123 73.31732,423.77515 72.738122,423.86907 z "
+ id="path4349"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ id="path4414"
+ d="M 196.27236,628.65569 C 169.00071,524.11433 163.31911,512.75114 156.5012,485.47948 C 149.68328,458.20783 144.00168,442.29936 140.59273,427.52721 C 137.18377,412.75506 141.72905,412.75506 144.00168,407.07347 C 146.27432,401.39187 148.54696,401.39187 159.91016,403.66451 C 171.27335,405.93715 166.72807,411.61875 167.86439,422.98194 C 169.00071,434.34513 178.09125,502.52427 186.0455,536.61384 C 193.99973,570.70341 209.9082,615.01986 207.63555,622.97409 C 205.36292,630.92832 196.27236,630.92832 196.27236,628.65569 z "
+ style="fill:url(#radialGradient4430);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:2.99339581;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ d="M 259.87086,643.82513 C 256.12192,645.42331 256.07543,652.33692 260.02053,653.60979 C 263.81095,652.30623 263.54691,646.02538 260.63792,643.93738 C 260.38313,643.89327 260.13271,643.73325 259.87086,643.82513 z M 290.38479,650.12997 C 286.52154,650.53187 286.2496,656.98161 290.25383,657.37025 C 293.70979,658.62413 298.57971,653.78666 294.74392,651.08411 C 293.47365,650.18417 291.90237,650.02609 290.38479,650.12997 z M 229.80594,657.40766 C 226.87133,657.96522 228.63351,664.68833 231.32135,662.06614 C 232.38547,660.68631 232.03754,657.23612 229.80594,657.40766 z M 262.752,661.89776 C 259.9741,661.48748 259.01932,666.26658 262.17203,666.40656 C 264.13153,667.16127 268.25446,665.45967 266.71825,663.03899 C 265.73969,661.99155 264.11597,661.86625 262.752,661.89776 z M 272.70504,672.76752 C 268.98124,673.04271 269.41989,679.65713 273.37856,679.25945 C 276.84743,679.44997 278.87216,673.71938 274.74429,672.9359 C 274.08026,672.74917 273.3836,672.72943 272.70504,672.76752 z M 249.46881,674.56356 C 244.87365,674.53093 246.03587,683.46108 250.59133,681.65417 C 253.66747,680.47193 253.21909,674.2659 249.46881,674.56356 z M 197.08438,677.35116 C 193.39438,678.4351 194.19911,686.04047 198.37528,685.19012 C 201.16598,683.71198 200.86348,677.12046 197.08438,677.35116 z M 221.12509,682.72057 C 217.99443,682.64071 217.4595,687.98109 220.76962,688.18351 C 223.3817,689.25507 227.44503,685.37429 224.34299,683.39408 C 223.40905,682.76469 222.2321,682.67738 221.12509,682.72057 z M 173.17463,683.656 C 169.58026,684.29543 171.50931,691.92597 174.87713,689.28733 C 176.45406,687.79841 175.88753,683.3394 173.17463,683.656 z M 297.86828,684.53531 C 293.68799,684.51129 295.32265,692.84585 299.21531,690.54081 C 301.49571,689.18904 300.96365,684.25827 297.86828,684.53531 z M 227.76669,700.83061 C 225.34479,700.90358 223.32278,704.70702 226.40095,705.62004 C 228.98266,706.9696 233.94623,706.63783 234.53925,703.22533 C 233.72494,700.65693 230.00797,700.82958 227.76669,700.83061 z M 281.46073,702.64536 C 277.97871,702.87879 278.78908,709.06714 282.35875,708.23926 C 285.24055,708.04295 286.54732,703.18064 283.10709,702.75761 C 282.56248,702.63563 282.03233,702.59374 281.46073,702.64536 z M 202.65958,705.39554 C 198.65916,705.92975 200.00142,714.11631 204.10015,712.24293 C 206.52935,710.80859 205.98417,705.11423 202.65958,705.39554 z M 161.72489,710.78365 C 158.47157,710.35622 159.41979,716.88726 162.56679,715.23633 C 164.56891,714.43653 164.23445,710.42563 161.72489,710.78365 z M 251.43323,711.79392 C 249.2002,713.65227 249.29693,718.25108 251.56419,719.61417 C 253.53247,717.8069 253.09953,713.91382 251.69515,711.85005 C 251.6282,711.87051 251.50378,711.70084 251.43323,711.79392 z M 186.86942,726.19964 C 184.51402,726.76052 184.28442,730.52029 187.0378,730.68973 C 189.11776,731.65799 193.66196,729.21088 191.19113,726.98541 C 189.96056,726.08209 188.3216,726.14852 186.86942,726.19964 z "
+ id="path4432" />
+ <path
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:2.99339581;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ d="M 336.48308,576.77306 C 334.14268,576.84931 331.88421,580.4842 334.93026,581.50637 C 337.45061,582.97018 342.80765,582.67516 343.12468,579.03682 C 342.15487,576.60751 338.6345,576.82031 336.48308,576.77306 z M 312.0682,588.57827 C 309.08121,588.27585 307.66093,593.24158 311.09534,593.68575 C 313.46911,594.86042 318.6734,593.53282 317.56856,590.24335 C 316.34851,588.57977 313.94618,588.50739 312.0682,588.57827 z M 345.1078,602.1608 C 343.0658,602.20726 341.13765,605.33818 343.89174,606.10834 C 346.15605,607.31311 351.15556,607.08758 351.20685,603.78846 C 349.94413,601.87011 347.07605,602.23925 345.1078,602.1608 z M 272.70504,608.48435 C 268.98124,608.75953 269.41989,615.37396 273.37856,614.97628 C 276.84743,615.1668 278.87216,609.4362 274.74429,608.65273 C 274.08026,608.466 273.3836,608.44626 272.70504,608.48435 z M 292.42404,613.90988 C 289.58768,614.28504 289.08807,618.90995 292.21824,619.24187 C 294.52886,620.27592 299.40674,618.03674 297.36314,615.20078 C 296.13735,613.85333 294.11058,613.86194 292.42404,613.90988 z M 330.29049,620.25214 C 329.5295,620.34059 328.14423,621.5734 329.84149,621.59917 C 331.81718,622.2471 335.46018,622.87928 336.59533,620.83211 C 334.81532,619.75343 332.29739,620.55061 330.29049,620.25214 z M 357.34331,636.56614 C 354.58652,636.23966 352.8918,640.86369 356.0337,641.54267 C 358.44081,642.91587 363.94515,641.65843 362.84367,638.23122 C 361.62363,636.56764 359.22129,636.49527 357.34331,636.56614 z "
+ id="path4467" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4593"
+ sodipodi:cx="348.58224"
+ sodipodi:cy="465.78448"
+ sodipodi:rx="32.514179"
+ sodipodi:ry="9.0737238"
+ d="M 381.09642 465.78448 A 32.514179 9.0737238 0 1 1 316.06807,465.78448 A 32.514179 9.0737238 0 1 1 381.09642 465.78448 z"
+ transform="matrix(0.588541,-0.109708,0.109708,0.588541,-47.44741,300.1549)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4595"
+ sodipodi:cx="511.90927"
+ sodipodi:cy="422.6843"
+ sodipodi:rx="9.8298674"
+ sodipodi:ry="26.465029"
+ d="M 521.73914 422.6843 A 9.8298674 26.465029 0 1 1 502.0794,422.6843 A 9.8298674 26.465029 0 1 1 521.73914 422.6843 z"
+ transform="matrix(0.583594,-0.133545,0.133545,0.583594,-47.70101,327.4028)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4597"
+ sodipodi:cx="464.27222"
+ sodipodi:cy="246.50284"
+ sodipodi:rx="31.758034"
+ sodipodi:ry="9.0737238"
+ d="M 496.03025 246.50284 A 31.758034 9.0737238 0 1 1 432.51418,246.50284 A 31.758034 9.0737238 0 1 1 496.03025 246.50284 z"
+ transform="matrix(0.464067,0.378231,-0.378231,0.464067,145.8911,116.5818)"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4599"
+ sodipodi:cx="139.88658"
+ sodipodi:cy="359.92438"
+ sodipodi:rx="12.854443"
+ sodipodi:ry="31.758034"
+ d="M 152.74102 359.92438 A 12.854443 31.758034 0 1 1 127.03214,359.92438 A 12.854443 31.758034 0 1 1 152.74102 359.92438 z"
+ transform="matrix(0.598679,0,0,0.598679,-10.74551,256.2853)"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.6;fill:#04000f;fill-opacity:1;stroke:black;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ id="path4601"
+ sodipodi:cx="181.47449"
+ sodipodi:cy="455.95462"
+ sodipodi:rx="10.586011"
+ sodipodi:ry="32.514179"
+ d="M 192.0605 455.95462 A 10.586011 32.514179 0 1 1 170.88848,455.95462 A 10.586011 32.514179 0 1 1 192.0605 455.95462 z"
+ transform="matrix(0.54035,0.257757,-0.257757,0.54035,132.7562,234.2937)" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:white;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="1246.1248"
+ y="729.414"
+ id="text5704"><tspan
+ sodipodi:role="line"
+ id="tspan5706"
+ x="1246.1248"
+ y="729.414">it-s</tspan></text>
+ <g
+ id="g2043"
+ transform="matrix(0.598679,0,0,0.598679,151.3166,300.6486)">
+ <path
+ style="opacity:0.2;fill:url(#linearGradient2052);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -161.53125,662.3125 C -174.87241,663.69073 -187.75321,668.80103 -200.40625,673.28125 C -215.68063,681.00887 -224.7625,696.6722 -236.18845,708.91913 C -238.14992,712.65305 -249.66788,720.69853 -239.56408,719.00073 C -168.3448,720.79215 -97.125527,722.58358 -25.90625,724.375 C -53.972831,701.33755 -88.793902,688.64675 -122.50902,675.84059 C -135.43381,671.50791 -147.73025,662.75133 -161.53125,662.3125 z "
+ id="path2045" />
+ <path
+ style="opacity:0.2;fill:url(#linearGradient2061);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -161.5625,661.5625 C -174.24305,662.66278 -186.25651,667.78468 -198.34375,671.59375 C -213.46531,677.54652 -222.32136,692.40479 -232.97831,703.90548 C -237.37822,709.11836 -241.7643,714.34291 -246.15625,719.5625 C -172.05208,721.42708 -97.947917,723.29167 -23.84375,725.15625 C -50.602914,702.65834 -83.770261,689.52305 -116.25,677.53125 C -129.77821,672.80356 -142.47014,665.25348 -156.375,661.9375 C -158.08081,661.62071 -159.82843,661.48929 -161.5625,661.5625 z "
+ id="path2054" />
+ <path
+ style="opacity:0.2;fill:url(#linearGradient2084);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -247.72516,720.28219 C -205.96821,670.93306 -211.66234,674.72914 -181.29364,665.23893 C -150.92495,655.74871 -158.51711,661.44284 -101.5758,682.32132 C -44.634503,703.19979 -21.857973,725.97632 -21.857973,725.97632 L -247.72516,720.28219 z "
+ id="path2063" />
+ <path
+ style="opacity:0.2;fill:url(#linearGradient2073);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -161.625,660.0625 C -174.13775,661.07495 -185.96912,666.14119 -197.88816,669.83003 C -213.59371,675.38733 -222.84278,690.57563 -233.60562,702.3754 C -238.83714,708.57829 -244.05527,714.79245 -249.28125,721 C -172.79143,722.916 -96.301553,724.83548 -19.8125,726.78125 C -46.012597,703.30629 -79.37768,689.54619 -111.97829,677.62941 C -126.61035,672.49878 -140.36179,664.67644 -155.28125,660.59375 C -157.36104,660.1557 -159.50107,659.98099 -161.625,660.0625 z "
+ id="path2066" />
+ <path
+ style="opacity:0.2;fill:url(#linearGradient2082);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -161.65625,659.3125 C -175.43999,660.69274 -188.71893,665.89664 -201.65625,670.5625 C -217.47282,678.39487 -226.76468,694.41391 -238.50095,706.98163 C -242.62744,711.88206 -246.74802,716.78748 -250.875,721.6875 C -173.17784,723.67287 -95.479475,725.61775 -17.78125,727.5625 C -46.920576,700.71728 -84.963221,686.85148 -121.38402,673.09059 C -134.69825,668.60423 -147.29612,659.53319 -161.65625,659.3125 z "
+ id="path2075" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#radialGradient2944);stroke-width:1.79603744;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 230.98954,624.77286 C 256.34004,611.19224 299.53255,580.332 321.18302,555.90104 C 343.03867,531.23856 387.21206,470.64177 401.69806,443.48052 C 416.18406,416.31928 438.81843,356.43788 443.06463,342.29589 C 447.61162,327.15209 448.62352,312.63588 457.33326,316.94539 C 466.40583,321.43443 462.76552,315.13464 462.76552,315.13464"
+ id="path2047"
+ sodipodi:nodetypes="cssssc" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ id="path2946"
+ d="M 197.75638,614.40063 C 223.89172,513.26824 209.11957,554.17572 226.16436,512.13192 C 243.20914,470.08812 256.84497,439.4075 260.25392,426.90799 C 263.66288,414.40848 268.20816,399.63633 268.20816,412.13584 C 268.20816,424.63535 254.57233,466.67916 247.75441,483.72394 C 240.93651,500.76873 220.48276,566.67523 214.80116,588.26529 C 209.11957,609.85536 203.43798,635.99069 200.02901,630.3091 C 196.62006,624.62751 196.62006,613.26431 197.75638,614.40063 z "
+ style="fill:url(#radialGradient3833);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cssssssc"
+ id="path3835"
+ d="M 193.84544,642.96265 C 218.84446,591.82829 220.6552,576.40011 233.15471,567.30957 C 245.65422,558.21902 263.83533,553.67374 284.28907,526.40207 C 304.74281,499.13043 305.87914,500.26674 305.87914,505.94834 C 305.87914,511.62994 279.74379,542.31054 271.78956,547.99214 C 263.83533,553.67374 237.69999,567.30957 229.74576,585.49067 C 221.79152,603.67177 216.0749,632.58167 209.73549,638.47258 C 202.68664,645.02275 197.25439,645.23529 193.84544,642.96265 z "
+ style="fill:url(#radialGradient3839);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cssssssc"
+ id="path3841"
+ d="M 187.64982,635.83792 C 183.10455,621.06576 176.22177,613.53206 173.94913,602.16887 C 171.67649,590.80568 150.08643,570.35194 137.58692,548.76187 C 125.08741,527.17181 109.17895,518.08126 112.58791,527.17181 C 115.99686,536.26237 129.63269,553.30715 137.58692,562.39771 C 145.54115,571.48826 163.72226,601.03256 163.72226,614.66838 C 163.72226,628.3042 169.82893,644.00014 180.03741,646.25437 C 186.01272,647.57383 191.27132,640.59573 187.64982,635.83792 z "
+ style="fill:url(#radialGradient3845);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cssssc"
+ id="path3847"
+ d="M 199.77967,645.31219 C 203.18863,597.58679 199.77967,578.26936 210.00653,556.6793 C 220.23341,535.08923 206.59758,528.27132 202.0523,545.3161 C 197.50702,562.36089 181.59856,614.63157 183.8712,630.54003 C 186.14384,646.4485 178.87524,635.91146 182.54074,643.75077 C 186.87347,653.01707 199.77967,645.31219 199.77967,645.31219 z "
+ style="fill:url(#radialGradient3849);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ id="path3859"
+ d="M 179.36704,631.88002 C 160.24768,525.54523 155.46031,513.77731 150.7682,486.06068 C 146.07608,458.34407 141.63962,442.04444 139.38129,427.0532 C 137.12296,412.06196 141.65468,412.41287 144.35916,406.92369 C 147.06365,401.43451 149.32951,401.60996 160.48334,404.75308 C 171.63716,407.89622 166.66681,413.20995 166.92247,424.62695 C 167.17813,436.04395 170.97791,504.72142 176.2766,539.32334 C 181.57527,573.92526 194.0149,619.33761 191.13495,627.09265 C 188.25501,634.84769 179.19158,634.14588 179.36704,631.88002 z "
+ style="fill:url(#radialGradient3868);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:url(#radialGradient3872);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 179.36704,631.88002 C 160.24768,525.54523 155.46031,513.77731 150.7682,486.06068 C 146.07608,458.34407 141.63962,442.04444 139.38129,427.0532 C 137.12296,412.06196 141.65468,412.41287 144.35916,406.92369 C 147.06365,401.43451 149.32951,401.60996 160.48334,404.75308 C 171.63716,407.89622 166.66681,413.20995 166.92247,424.62695 C 167.17813,436.04395 170.97791,504.72142 176.2766,539.32334 C 181.57527,573.92526 194.0149,619.33761 191.13495,627.09265 C 188.25501,634.84769 179.19158,634.14588 179.36704,631.88002 z "
+ id="path3870"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(0.464067,0.378231,-0.378231,0.464067,145.8911,116.5818)"
+ d="M 496.03025 246.50284 A 31.758034 9.0737238 0 1 1 432.51418,246.50284 A 31.758034 9.0737238 0 1 1 496.03025 246.50284 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="31.758034"
+ sodipodi:cy="246.50284"
+ sodipodi:cx="464.27222"
+ id="path3874"
+ style="opacity:0.6;fill:url(#radialGradient3882);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.583594,-0.133545,0.133545,0.583594,-47.70101,327.4028)"
+ d="M 521.73914 422.6843 A 9.8298674 26.465029 0 1 1 502.0794,422.6843 A 9.8298674 26.465029 0 1 1 521.73914 422.6843 z"
+ sodipodi:ry="26.465029"
+ sodipodi:rx="9.8298674"
+ sodipodi:cy="422.6843"
+ sodipodi:cx="511.90927"
+ id="path3884"
+ style="opacity:0.6;fill:url(#radialGradient3892);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.588541,-0.109708,0.109708,0.588541,-47.44741,300.1549)"
+ d="M 381.09642 465.78448 A 32.514179 9.0737238 0 1 1 316.06807,465.78448 A 32.514179 9.0737238 0 1 1 381.09642 465.78448 z"
+ sodipodi:ry="9.0737238"
+ sodipodi:rx="32.514179"
+ sodipodi:cy="465.78448"
+ sodipodi:cx="348.58224"
+ id="path3894"
+ style="opacity:0.6;fill:url(#radialGradient3902);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54035,0.257757,-0.257757,0.54035,132.7562,234.2937)"
+ d="M 192.0605 455.95462 A 10.586011 32.514179 0 1 1 170.88848,455.95462 A 10.586011 32.514179 0 1 1 192.0605 455.95462 z"
+ sodipodi:ry="32.514179"
+ sodipodi:rx="10.586011"
+ sodipodi:cy="455.95462"
+ sodipodi:cx="181.47449"
+ id="path3906"
+ style="opacity:0.6;fill:url(#radialGradient3914);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(0.598679,0,0,0.598679,-10.74551,256.2853)"
+ d="M 152.74102 359.92438 A 12.854443 31.758034 0 1 1 127.03214,359.92438 A 12.854443 31.758034 0 1 1 152.74102 359.92438 z"
+ sodipodi:ry="31.758034"
+ sodipodi:rx="12.854443"
+ sodipodi:cy="359.92438"
+ sodipodi:cx="139.88658"
+ id="path3916"
+ style="opacity:0.6;fill:url(#radialGradient3939);fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.22857145"
+ sodipodi:type="arc" />
+ <path
+ style="fill:url(#radialGradient3947);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 193.84544,642.96265 C 218.84446,591.82829 220.6552,576.40011 233.15471,567.30957 C 245.65422,558.21902 263.83533,553.67374 284.28907,526.40207 C 304.74281,499.13043 305.87914,500.26674 305.87914,505.94834 C 305.87914,511.62994 279.74379,542.31054 271.78956,547.99214 C 263.83533,553.67374 237.69999,567.30957 229.74576,585.49067 C 221.79152,603.67177 216.0749,632.58167 209.73549,638.47258 C 202.68664,645.02275 197.25439,645.23529 193.84544,642.96265 z "
+ id="path3945"
+ sodipodi:nodetypes="cssssssc" />
+ <path
+ style="fill:url(#radialGradient3951);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 199.77967,645.31219 C 203.18863,597.58679 199.77967,578.26936 210.00653,556.6793 C 220.23341,535.08923 206.59758,528.27132 202.0523,545.3161 C 197.50702,562.36089 181.59856,614.63157 183.8712,630.54003 C 186.14384,646.4485 178.87524,635.91146 182.54074,643.75077 C 186.87347,653.01707 199.77967,645.31219 199.77967,645.31219 z "
+ id="path3949"
+ sodipodi:nodetypes="cssssc" />
+ <path
+ style="fill:url(#radialGradient3955);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 187.64982,635.83792 C 183.10455,621.06576 176.22177,613.53206 173.94913,602.16887 C 171.67649,590.80568 150.08643,570.35194 137.58692,548.76187 C 125.08741,527.17181 109.17895,518.08126 112.58791,527.17181 C 115.99686,536.26237 129.63269,553.30715 137.58692,562.39771 C 145.54115,571.48826 163.72226,601.03256 163.72226,614.66838 C 163.72226,628.3042 169.82893,644.00014 180.03741,646.25437 C 186.01272,647.57383 191.27132,640.59573 187.64982,635.83792 z "
+ id="path3953"
+ sodipodi:nodetypes="cssssssc" />
+ <path
+ style="fill:url(#radialGradient3960);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 175.54586,643.52716 C 164.18267,592.39281 150.93002,580.0249 131.6126,549.34429 C 112.29517,518.66367 73.660333,461.84772 74.796644,473.21091 C 75.932967,484.5741 115.70413,536.84478 122.52205,547.07165 C 129.33996,557.29852 153.43361,610.47458 156.84256,625.24673 C 160.25152,640.01887 171.24994,648.51592 175.54586,643.52716 z "
+ id="path3958"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true"
+ sodipodi:nodetypes="cssssc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4037);stroke-width:1.19735825;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 328.77003,622.34872 C 397.57852,614.20034 478.15689,609.67347 527.95251,615.10572 C 577.74813,620.53797 600.3825,629.59172 600.3825,629.59172"
+ id="path4016" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4029);stroke-width:1.19735825;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 387.6194,579.79609 C 473.63002,571.64772 487.21064,572.5531 517.99339,576.1746 C 548.77613,579.79609 588.61263,588.84985 588.61263,588.84985"
+ id="path4018" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4051);stroke-width:1.19735825;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 354.12053,601.23311 C 406.63227,591.27399 510.75039,582.22024 551.49226,598.51699 C 592.23413,614.81374 601.28788,620.24598 601.28788,620.24598"
+ id="path4039" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4059);stroke-width:1.19735825;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 399.38927,563.20737 C 466.38702,557.77512 491.73751,549.62674 516.18263,557.77512 C 540.62776,565.92349 545.15463,565.92349 545.15463,565.92349"
+ id="path4041" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4067);stroke-width:1.19735825;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 362.2689,641.06961 C 445.56339,636.54273 482.68376,629.29973 500.79126,625.67824 C 518.89876,622.05674 552.39763,623.86748 552.39763,623.86748"
+ id="path4043" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4081);stroke-width:1.79603744;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 409.3484,536.9515 C 470.00852,538.76224 485.39989,544.1945 506.22351,549.62674 C 527.04713,555.05899 582.275,577.69337 590.42338,585.84174 C 598.57175,593.99011 603.09865,609.38148 603.09865,609.38148"
+ id="path4073" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4091);stroke-width:1.79603744;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 403.01077,660.98785 C 452.80639,653.74485 486.30526,649.21798 515.27726,636.54273 C 544.24926,623.86748 575.032,622.05674 582.275,623.86748 C 589.518,625.67824 611.24703,640.16423 611.24703,640.16423"
+ id="path4083" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4111);stroke-width:1.19735825;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 60.779057,326.90451 C 60.779057,359.49801 61.684434,369.45714 59.873683,386.65926 C 58.062933,403.86138 51.725309,427.40113 60.779057,441.88713 C 69.832804,456.37313 69.832804,456.37313 69.832804,456.37313"
+ id="path4093" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient4103);stroke-width:1.79603744;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M -9.840183,608.47611 C 24.564062,622.05674 38.144685,625.67824 85.224181,632.01586 C 132.30367,638.35348 139.54667,644.69111 139.54667,644.69111"
+ id="path4095" />
+ <path
+ style="fill:url(#linearGradient4121);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 92.467181,347.72814 C 80.576664,329.62064 83.413434,324.18839 101.52093,324.18839 C 119.62843,324.18839 129.58755,330.52601 145.8843,345.91739 C 162.18105,361.30876 170.32942,360.40339 163.08642,367.64638 C 155.84343,374.88938 115.10156,362.21414 115.10156,373.98401 C 115.10156,385.75388 106.95318,365.83564 100.61556,357.68726 C 94.277933,349.53889 94.277933,347.72814 92.467181,347.72814 z "
+ id="path4113"
+ sodipodi:nodetypes="csssssc" />
+ <path
+ style="opacity:1;fill:url(#linearGradient4159);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 60.874008,704.41905 C 52.621971,705.24537 44.672148,708.36083 36.926844,711.15419 C 27.457793,715.84326 21.894947,725.43353 14.868687,732.95756 C 12.398247,735.89134 9.931337,738.82812 7.4606066,741.76166 C 53.976273,742.95026 100.49266,744.11462 147.00897,745.2789 C 129.56386,729.20722 106.78853,720.90606 84.984152,712.6677 C 77.0132,709.98181 69.471118,704.55117 60.874008,704.41905 z "
+ id="path4146" />
+ <path
+ style="fill:url(#radialGradient4177);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 215.93737,656.60172 C 237.52743,617.96687 227.30056,627.05743 248.89062,614.55792 C 270.48068,602.05841 298.88865,580.46835 314.79711,563.42357 C 330.70556,546.37879 377.29465,488.42652 396.61208,452.06432 C 415.92951,415.70212 442.06483,356.61354 452.29172,339.56876 C 462.51859,322.52397 467.06383,313.43342 459.10961,314.56974 C 451.15539,315.70606 456.83695,321.38766 442.06483,313.43342 C 427.29272,305.47919 421.61107,296.38864 385.24887,314.56974 C 348.88666,332.75084 336.3872,332.75084 303.43393,352.06826 C 270.48068,371.38569 244.34534,399.79366 220.48264,440.70114 C 196.61995,481.60861 182.98412,508.88027 189.80203,570.24148 C 196.61995,631.6027 204.57418,665.69227 204.57418,665.69227 L 215.93737,656.60172 z "
+ id="path4025" />
+ <path
+ id="path3765"
+ d="M 208.10308,632.81258 C 259.23743,620.31308 269.4643,602.13198 281.96381,591.9051 C 294.46331,581.67823 319.46231,568.04241 331.96185,560.08818 C 344.46131,552.13395 392.18672,537.3618 422.86737,537.3618 C 453.54793,537.3618 510.3639,548.72499 538.77188,561.2245 C 567.17979,573.724 592.17886,580.54192 600.13309,599.85934 C 608.08732,619.17675 603.54197,640.76681 600.13309,648.72104 C 596.7241,656.67527 597.86043,639.6305 563.77088,638.49418 C 529.68133,637.35786 491.04646,650.99369 479.68326,650.99369 C 468.32005,650.99369 430.82159,660.08423 391.05039,663.49319 C 351.27928,666.90215 236.51106,653.26632 226.28418,649.85737 C 216.05731,646.44841 206.96676,635.08522 208.10308,632.81258 z "
+ style="fill:url(#linearGradient4772);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path3957"
+ d="M 210.88707,599.85934 C 222.25026,497.59065 213.15971,456.68316 200.6602,421.45728 C 188.1607,386.2314 174.52487,368.0503 148.38954,343.05128 C 122.2542,318.05226 96.118872,310.09803 87.028324,319.18859 C 77.93777,328.27914 79.074093,348.73288 74.528813,340.77864 C 69.983539,332.82441 58.620345,316.91595 59.756666,324.87018 C 60.892986,332.82441 62.029309,366.91397 58.620345,386.2314 C 55.211391,405.54882 52.938756,430.54783 63.16562,448.72893 C 73.392496,466.91003 108.61838,533.95284 130.20843,566.90609 C 151.79849,599.85934 182.4791,632.81258 182.4791,632.81258 L 210.88707,599.85934 z "
+ style="fill:url(#radialGradient4202);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient4255);fill-opacity:1;stroke:url(#linearGradient4276);stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.13714282"
+ id="path4247"
+ sodipodi:cx="734.97162"
+ sodipodi:cy="595.84119"
+ sodipodi:rx="122.49528"
+ sodipodi:ry="24.196598"
+ d="M 857.4669 595.84119 A 122.49528 24.196598 0 1 1 612.47634,595.84119 A 122.49528 24.196598 0 1 1 857.4669 595.84119 z"
+ transform="matrix(0.499735,0.32967,-0.32967,0.499735,155.1943,158.0479)" />
+ <path
+ transform="matrix(0.445517,0.399914,-0.399914,0.445517,160.8453,137.82)"
+ d="M 857.4669 595.84119 A 122.49528 24.196598 0 1 1 612.47634,595.84119 A 122.49528 24.196598 0 1 1 857.4669 595.84119 z"
+ sodipodi:ry="24.196598"
+ sodipodi:rx="122.49528"
+ sodipodi:cy="595.84119"
+ sodipodi:cx="734.97162"
+ id="path4258"
+ style="opacity:1;fill:url(#linearGradient4260);fill-opacity:1;stroke:url(#linearGradient4268);stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.13714282"
+ sodipodi:type="arc" />
+ <path
+ style="opacity:0.5;fill:url(#radialGradient4294);fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient4307);stroke-width:4.789433;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M -70.500303,631.11048 C -85.891673,616.62448 -75.932553,621.15135 -70.500303,613.90835 C -65.068053,606.66536 -109.43142,600.32773 -113.05292,609.38148 C -116.67442,618.43523 -116.67442,637.4481 -103.0938,634.73198 C -89.513173,632.01585 -71.405673,630.20511 -70.500303,631.11048 z "
+ id="path4278" />
+ <path
+ style="fill:url(#linearGradient4317);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 423.83439,539.66762 C 416.59139,558.68049 446.46877,546.00524 487.21064,561.39661 C 527.95251,576.78799 579.55888,622.96211 588.61263,615.71911 C 597.66638,608.47611 600.3825,597.61161 584.08575,585.84174 C 567.789,574.07187 535.82939,562.29068 501.69664,551.43749 C 470.76101,541.60089 424.73977,540.573 423.83439,539.66762 z "
+ id="path4309"
+ sodipodi:nodetypes="cssssc" />
+ <path
+ style="fill:url(#linearGradient4366);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 507.38727,582.87211 C 510.44591,587.97501 517.43326,586.91692 522.26071,589.30791 C 524.74976,590.25825 529.98088,591.48856 528.58426,595.16374 C 526.69044,600.69871 519.84207,602.13996 516.47971,606.03351 C 517.24573,609.06253 514.85605,612.16286 511.9522,612.54414 C 515.96,613.52968 520.90691,611.71421 525.2541,612.69381 C 521.37096,616.31367 524.36951,614.97412 527.21852,613.42345 C 529.23879,612.33627 532.44908,610.41228 532.08279,607.88567 C 530.15538,605.98393 526.80277,604.97282 526.3205,601.82405 C 528.85266,597.93062 534.71633,596.66204 535.67486,591.75875 C 531.77155,585.58633 523.38777,585.90208 517.20935,583.82625 C 513.97208,583.1414 510.70782,582.79187 507.38727,582.87211 z M 519.49182,620.25214 C 517.52316,623.46064 516.84468,627.88099 518.70605,631.06578 C 523.10008,631.29321 528.85712,630.69541 531.42798,627.00599 C 528.65076,624.82474 524.49575,625.24699 521.98008,622.45977 C 521.11125,621.87785 520.23722,620.44265 519.49182,620.25214 z M 516.01199,630.82257 C 516.1091,630.8404 516.00367,630.76317 516.01199,630.82257 z "
+ id="path4329" />
+ <path
+ style="fill:url(#radialGradient4528);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.13714282"
+ d="M -130.08313,604.62908 C -147.74314,605.33065 -165.91927,603.64901 -183.14107,607.71602 C -183.55959,611.63224 -178.6497,612.33917 -175.75112,612.97317 C -157.58636,617.15756 -138.45361,613.82117 -120.18621,617.23876 C -116.7818,618.03232 -110.97601,619.96663 -109.20419,615.68593 C -108.46144,612.17059 -112.83474,610.4712 -115.2284,608.89467 C -119.92218,606.64591 -124.6895,604.08314 -130.08313,604.62908 z "
+ id="path4374" />
+ <path
+ style="fill:url(#radialGradient4530);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.13714282"
+ d="M -132.88944,620.53149 C -131.65862,623.48891 -131.46932,628.84667 -135.808,629.10009 C -143.35665,629.74584 -151.51068,628.82637 -158.37072,632.59862 C -160.28711,633.2124 -161.61037,635.41709 -159.79258,636.93904 C -155.88258,640.02847 -150.39192,639.67644 -145.6862,640.45628 C -130.67515,640.94675 -115.41509,640.1722 -100.84139,636.60229 C -97.450103,635.6021 -93.399953,634.61708 -90.607723,632.69216 C -91.959143,628.71805 -96.991133,629.45205 -100.29884,629.41814 C -110.34645,628.79116 -119.41131,624.17474 -128.75481,620.90567 C -129.98859,620.70199 -131.92287,620.14445 -132.88944,620.53149 z "
+ id="path4376" />
+ <path
+ style="fill:url(#linearGradient4526);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.13714282"
+ d="M -145.81716,617.83744 C -153.94751,618.56751 -162.92298,616.79116 -170.19463,621.05534 C -167.13051,625.54936 -160.72912,623.90344 -156.10762,624.09554 C -150.7813,623.72006 -145.05394,622.99569 -140.37293,620.81212 C -140.43026,618.18901 -143.88131,617.94555 -145.81716,617.83744 z "
+ id="path4378" />
+ <path
+ style="opacity:0.5;fill:url(#radialGradient4598);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 441.89602,565.08056 C 472.88475,558.38762 488.37911,563.74197 500.29786,573.11209 C 512.21661,582.4822 499.10599,594.52949 502.68161,607.91538 C 506.25723,621.30127 509.83285,636.02574 497.91411,644.05727 C 485.99537,652.0888 445.56339,635.59252 450.99564,605.23821 C 456.18345,576.24981 443.08789,565.08056 441.89602,565.08056 z "
+ id="path4532"
+ sodipodi:nodetypes="cssssc" />
+ <rect
+ style="opacity:1;fill:black;fill-opacity:1;stroke:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.13714282"
+ id="rect2149"
+ width="1309.6409"
+ height="66.540642"
+ x="-17.659735"
+ y="741.02081" />
+ <rect
+ y="-4.979187"
+ x="-13.659735"
+ height="66.540642"
+ width="1309.6409"
+ id="rect3038"
+ style="opacity:1;fill:black;fill-opacity:1;stroke:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.13714282" />
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/44057-drops on a blade.svg b/PerformanceTests/PageLoad/svg/files/44057-drops on a blade.svg
new file mode 100644
index 000000000..dbf1ced8e
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/44057-drops on a blade.svg
@@ -0,0 +1,1770 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1280"
+ height="800"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44"
+ version="1.0"
+ sodipodi:docbase="/home/it-s/Temp"
+ sodipodi:docname="drops on a blade.svg"
+ inkscape:export-filename="/home/it-s/Media/Pictures/Vector/drops on a blade.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1672"
+ id="linearGradient2031"
+ x1="287.26564"
+ y1="634.56693"
+ x2="277.92758"
+ y2="637.56403"
+ gradientTransform="scale(1.022295,0.978192)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1672"
+ id="linearGradient2025"
+ x1="383.57573"
+ y1="449.35114"
+ x2="367.46562"
+ y2="446.07977"
+ gradientTransform="scale(0.758938,1.317631)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1672">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1673" />
+ <stop
+ style="stop-color:#f9e7c3;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1675" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1672"
+ id="linearGradient2023"
+ x1="245.99368"
+ y1="666.62737"
+ x2="231.22082"
+ y2="684.18827"
+ gradientTransform="scale(1.116047,0.89602)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1568"
+ id="linearGradient2033"
+ x1="332.34864"
+ y1="467.28819"
+ x2="325.20044"
+ y2="478.33967"
+ gradientTransform="scale(0.785341,1.273333)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1568"
+ id="linearGradient2034"
+ x1="423.20885"
+ y1="386.13656"
+ x2="439.13077"
+ y2="386.51066"
+ gradientTransform="scale(0.659567,1.516146)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1568">
+ <stop
+ style="stop-color:#c20832;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1569" />
+ <stop
+ style="stop-color:#7c0b25;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop1570" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1568"
+ id="linearGradient2037"
+ x1="309.8927"
+ y1="513.67827"
+ x2="307.09785"
+ y2="529.28076"
+ gradientTransform="scale(0.854278,1.170579)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2052"
+ id="linearGradient2051"
+ x1="251.58384"
+ y1="574.97426"
+ x2="287.68634"
+ y2="569.16836"
+ gradientTransform="scale(0.950781,1.051767)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient2052">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2053" />
+ <stop
+ style="stop-color:#87a2cf;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2054" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2052"
+ id="linearGradient2056"
+ x1="338.23488"
+ y1="440.12357"
+ x2="371.61501"
+ y2="447.10417"
+ gradientTransform="scale(0.762727,1.311085)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient7055">
+ <stop
+ id="stop7057"
+ offset="0"
+ style="stop-color:white;stop-opacity:0;" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="0.27000001"
+ id="stop7063" />
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0.5"
+ id="stop7061" />
+ <stop
+ id="stop7059"
+ offset="1"
+ style="stop-color:white;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3208">
+ <stop
+ style="stop-color:#fcfcce;stop-opacity:1;"
+ offset="0"
+ id="stop3210" />
+ <stop
+ id="stop3216"
+ offset="0.57999998"
+ style="stop-color:#f4ff1d;stop-opacity:0.45490196;" />
+ <stop
+ style="stop-color:#f3f298;stop-opacity:0;"
+ offset="0.93279999"
+ id="stop3226" />
+ <stop
+ style="stop-color:#f6ef8b;stop-opacity:0;"
+ offset="1"
+ id="stop3212" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5105">
+ <stop
+ id="stop5107"
+ offset="0"
+ style="stop-color:#96efff;stop-opacity:1;" />
+ <stop
+ id="stop5109"
+ offset="1"
+ style="stop-color:white;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient16792">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop16794" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop16796" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6709">
+ <stop
+ style="stop-color:#496118;stop-opacity:1;"
+ offset="0"
+ id="stop6711" />
+ <stop
+ style="stop-color:#87b22c;stop-opacity:0;"
+ offset="1"
+ id="stop6713" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4036">
+ <stop
+ style="stop-color:#366700;stop-opacity:1;"
+ offset="0"
+ id="stop4038" />
+ <stop
+ style="stop-color:#366700;stop-opacity:0;"
+ offset="1"
+ id="stop4040" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4026">
+ <stop
+ style="stop-color:#94b829;stop-opacity:1;"
+ offset="0"
+ id="stop4028" />
+ <stop
+ style="stop-color:#769220;stop-opacity:0;"
+ offset="1"
+ id="stop4030" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4012">
+ <stop
+ style="stop-color:#477901;stop-opacity:1;"
+ offset="0"
+ id="stop4014" />
+ <stop
+ style="stop-color:#477901;stop-opacity:0;"
+ offset="1"
+ id="stop4016" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4002">
+ <stop
+ style="stop-color:#396100;stop-opacity:1;"
+ offset="0"
+ id="stop4004" />
+ <stop
+ style="stop-color:#396100;stop-opacity:0;"
+ offset="1"
+ id="stop4006" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3992">
+ <stop
+ style="stop-color:#749c3b;stop-opacity:1;"
+ offset="0"
+ id="stop3994" />
+ <stop
+ style="stop-color:#749c3b;stop-opacity:0;"
+ offset="1"
+ id="stop3996" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3982">
+ <stop
+ style="stop-color:#274800;stop-opacity:1;"
+ offset="0"
+ id="stop3984" />
+ <stop
+ style="stop-color:#274800;stop-opacity:0;"
+ offset="1"
+ id="stop3986" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3972">
+ <stop
+ style="stop-color:#1c4001;stop-opacity:1;"
+ offset="0"
+ id="stop3974" />
+ <stop
+ style="stop-color:#1c4001;stop-opacity:0;"
+ offset="1"
+ id="stop3976" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3960">
+ <stop
+ style="stop-color:#709e00;stop-opacity:1;"
+ offset="0"
+ id="stop3962" />
+ <stop
+ style="stop-color:#709e00;stop-opacity:0;"
+ offset="1"
+ id="stop3964" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3948">
+ <stop
+ style="stop-color:#568a00;stop-opacity:1;"
+ offset="0"
+ id="stop3950" />
+ <stop
+ style="stop-color:#568a00;stop-opacity:0;"
+ offset="1"
+ id="stop3952" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3930">
+ <stop
+ style="stop-color:#8eba3f;stop-opacity:1;"
+ offset="0"
+ id="stop3932" />
+ <stop
+ style="stop-color:#275600;stop-opacity:1"
+ offset="1"
+ id="stop3934" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3009">
+ <stop
+ id="stop3011"
+ offset="0"
+ style="stop-color:#336800;stop-opacity:1" />
+ <stop
+ id="stop3013"
+ offset="1"
+ style="stop-color:#235f09;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2997">
+ <stop
+ style="stop-color:#336800;stop-opacity:1"
+ offset="0"
+ id="stop2999" />
+ <stop
+ style="stop-color:#0f2804;stop-opacity:1"
+ offset="1"
+ id="stop3001" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2997"
+ id="radialGradient3005"
+ cx="445.5285"
+ cy="230.95311"
+ fx="445.5285"
+ fy="230.95311"
+ r="643.90247"
+ gradientTransform="matrix(1.227463,-0.577147,0.138491,0.294538,-133.3265,483.4198)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3009"
+ id="radialGradient3015"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.465538,-0.428473,0.137806,0.149726,232.2444,462.7987)"
+ cx="403.61441"
+ cy="-665.33221"
+ fx="403.61441"
+ fy="-665.33221"
+ r="643.90247" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3009"
+ id="radialGradient3019"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.18776,-0.453726,7.261682e-2,0.190093,24.9416,442.1549)"
+ cx="419.33807"
+ cy="992.98602"
+ fx="419.33807"
+ fy="992.98602"
+ r="643.90247" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3009"
+ id="radialGradient3023"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.348257,-0.660108,0.17536,9.251516e-2,274.9542,625.592)"
+ cx="212.83806"
+ cy="1347.4509"
+ fx="212.83806"
+ fy="1347.4509"
+ r="643.90247" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3009"
+ id="radialGradient3027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.97957,-0.200512,3.976045e-2,0.19424,323.3005,390.7029)"
+ cx="433.87219"
+ cy="972.89795"
+ fx="433.87219"
+ fy="972.89795"
+ r="643.90247" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3009"
+ id="radialGradient3031"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.404268,-0.770201,0.175554,-9.214653e-2,791.5965,916.4998)"
+ cx="606.0517"
+ cy="3592.323"
+ fx="606.0517"
+ fy="3592.323"
+ r="643.90247" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3009"
+ id="radialGradient3035"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.565884,-0.482322,0.128612,-0.150895,1058.175,953.0722)"
+ cx="326.38562"
+ cy="2007.813"
+ fx="326.38562"
+ fy="2007.813"
+ r="643.90247" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3009"
+ id="radialGradient3039"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.795628,-0.60559,1.03976,1.365957,-569.7899,-573.5062)"
+ cx="336.3403"
+ cy="862.99683"
+ fx="336.3403"
+ fy="862.99683"
+ r="643.90247" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3930"
+ id="linearGradient3936"
+ x1="246.6776"
+ y1="510.34659"
+ x2="1158.6586"
+ y2="641.01605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="radialGradient3954"
+ cx="124.53778"
+ cy="142.53221"
+ fx="124.53778"
+ fy="142.53221"
+ r="175.25381"
+ gradientTransform="matrix(0.858275,-0.51319,6.427598e-2,0.107497,-23.89447,722.5342)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="radialGradient3958"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.141089,-0.885991,7.681248e-2,9.892851e-2,-85.00793,798.2113)"
+ cx="179.338"
+ cy="668.82544"
+ fx="179.338"
+ fy="668.82544"
+ r="175.25381" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3960"
+ id="linearGradient3966"
+ x1="173.73393"
+ y1="719.00287"
+ x2="193.06203"
+ y2="737.02625"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3972"
+ id="radialGradient3978"
+ cx="2157.062"
+ cy="734.73633"
+ fx="2157.062"
+ fy="734.73633"
+ r="680.15625"
+ gradientTransform="matrix(0.296228,2.52868e-2,-1.053719e-2,0.12344,331.6399,543.086)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3982"
+ id="radialGradient3988"
+ cx="851.04102"
+ cy="-170.75581"
+ fx="851.04102"
+ fy="-170.75581"
+ r="680.15625"
+ gradientTransform="matrix(0.287843,1.324943e-2,-7.559575e-3,0.164231,538.6429,498.651)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="radialGradient3998"
+ cx="2116.2625"
+ cy="-141.69266"
+ fx="2116.2625"
+ fy="-141.69266"
+ r="680.15625"
+ gradientTransform="matrix(0.430549,3.876521e-2,-8.183389e-3,9.088919e-2,163.214,434.4286)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4002"
+ id="radialGradient4008"
+ cx="886.28125"
+ cy="593.70575"
+ fx="886.28125"
+ fy="593.70575"
+ r="680.15625"
+ gradientTransform="matrix(1,0,0,0.164405,0,496.0965)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4012"
+ id="radialGradient4018"
+ cx="2254.3816"
+ cy="3298.385"
+ fx="2254.3816"
+ fy="3298.385"
+ r="680.15625"
+ gradientTransform="matrix(0.356277,-6.099088e-2,1.678417e-2,9.804436e-2,388.205,519.6347)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3982"
+ id="radialGradient4022"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.307663,-6.212331e-2,2.396924e-2,0.118707,651.3896,542.1368)"
+ cx="1686.0607"
+ cy="1316.7859"
+ fx="1686.0607"
+ fy="1316.7859"
+ r="680.15625" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4026"
+ id="radialGradient4032"
+ cx="-922.07446"
+ cy="-44.482601"
+ fx="-922.07446"
+ fy="-44.482601"
+ r="680.15625"
+ gradientTransform="matrix(0.267524,-9.662336e-2,4.74159e-2,0.131281,754.3236,485.6678)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4036"
+ id="radialGradient4042"
+ cx="1031.1646"
+ cy="518.72522"
+ fx="1031.1646"
+ fy="518.72522"
+ r="401.02014"
+ gradientTransform="matrix(1.067906,-9.553074e-3,3.25893e-4,3.643048e-2,-59.74524,488.3695)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4036"
+ id="radialGradient4046"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.067906,-9.553006e-3,3.258912e-4,3.643014e-2,-41.78628,503.9358)"
+ cx="1031.1646"
+ cy="518.72522"
+ fx="1031.1646"
+ fy="518.72522"
+ r="401.02014" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4036"
+ id="radialGradient4050"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.067906,-9.553133e-3,3.258945e-4,3.643077e-2,-43.675,434.1067)"
+ cx="1031.1646"
+ cy="518.72522"
+ fx="1031.1646"
+ fy="518.72522"
+ r="401.02014" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6709"
+ id="linearGradient6715"
+ x1="-41.052597"
+ y1="665.9007"
+ x2="1343.2415"
+ y2="665.9007"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient8497"
+ x1="37.799675"
+ y1="649.42035"
+ x2="1340.9886"
+ y2="649.42035"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient8507"
+ x1="28.787987"
+ y1="659.19421"
+ x2="1354.6237"
+ y2="659.19421"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient9402"
+ x1="93.808945"
+ y1="626.97327"
+ x2="1359.8496"
+ y2="626.97327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,4.878049)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient10297"
+ x1="144.21545"
+ y1="618.51123"
+ x2="1374.4836"
+ y2="618.51123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4.878049,3.252033)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient11192"
+ x1="232.02032"
+ y1="598.7215"
+ x2="1380.9878"
+ y2="598.7215"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient11196"
+ gradientUnits="userSpaceOnUse"
+ x1="232.02032"
+ y1="598.7215"
+ x2="1380.9878"
+ y2="598.7215"
+ gradientTransform="translate(-4,4)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient11200"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4,8.87805)"
+ x1="93.808945"
+ y1="626.97327"
+ x2="1359.8496"
+ y2="626.97327" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient11204"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-12.87805,7.252033)"
+ x1="144.21545"
+ y1="618.51123"
+ x2="1374.4836"
+ y2="618.51123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient11208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4,6)"
+ x1="37.799675"
+ y1="649.42035"
+ x2="1340.9886"
+ y2="649.42035" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient11212"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-6,14.87805)"
+ x1="93.808945"
+ y1="626.97327"
+ x2="1359.8496"
+ y2="626.97327" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4036"
+ id="linearGradient12107"
+ x1="280.80081"
+ y1="568.91602"
+ x2="1366.3538"
+ y2="568.91602"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient12111"
+ gradientUnits="userSpaceOnUse"
+ x1="280.80081"
+ y1="568.91602"
+ x2="1366.3538"
+ y2="568.91602"
+ gradientTransform="translate(-4,6)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient13006"
+ x1="353.97153"
+ y1="545.08313"
+ x2="1369.6057"
+ y2="545.08313"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient13016"
+ x1="487.30246"
+ y1="528.66895"
+ x2="1372.8577"
+ y2="528.66895"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3982"
+ id="linearGradient13026"
+ x1="566.97968"
+ y1="512.51489"
+ x2="1358.2236"
+ y2="512.51489"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3982"
+ id="linearGradient13036"
+ x1="651.53253"
+ y1="502.2196"
+ x2="1343.5894"
+ y2="502.2196"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6709"
+ id="linearGradient13135"
+ gradientUnits="userSpaceOnUse"
+ x1="-41.052597"
+ y1="665.9007"
+ x2="1343.2415"
+ y2="665.9007" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient13137"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4,0)"
+ x1="37.799675"
+ y1="649.42035"
+ x2="1340.9886"
+ y2="649.42035" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient13139"
+ gradientUnits="userSpaceOnUse"
+ x1="28.787987"
+ y1="659.19421"
+ x2="1354.6237"
+ y2="659.19421" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient13141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,4.878049)"
+ x1="93.808945"
+ y1="626.97327"
+ x2="1359.8496"
+ y2="626.97327" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient13143"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4.878049,3.252033)"
+ x1="144.21545"
+ y1="618.51123"
+ x2="1374.4836"
+ y2="618.51123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient13145"
+ gradientUnits="userSpaceOnUse"
+ x1="232.02032"
+ y1="598.7215"
+ x2="1380.9878"
+ y2="598.7215" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient13147"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4,4)"
+ x1="232.02032"
+ y1="598.7215"
+ x2="1380.9878"
+ y2="598.7215" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient13149"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4,8.87805)"
+ x1="93.808945"
+ y1="626.97327"
+ x2="1359.8496"
+ y2="626.97327" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient13151"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-12.87805,7.252033)"
+ x1="144.21545"
+ y1="618.51123"
+ x2="1374.4836"
+ y2="618.51123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient13153"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4,6)"
+ x1="37.799675"
+ y1="649.42035"
+ x2="1340.9886"
+ y2="649.42035" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient13155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-6,14.87805)"
+ x1="93.808945"
+ y1="626.97327"
+ x2="1359.8496"
+ y2="626.97327" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4036"
+ id="linearGradient13157"
+ gradientUnits="userSpaceOnUse"
+ x1="280.80081"
+ y1="568.91602"
+ x2="1366.3538"
+ y2="568.91602" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3992"
+ id="linearGradient13159"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4,6)"
+ x1="280.80081"
+ y1="568.91602"
+ x2="1366.3538"
+ y2="568.91602" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient13161"
+ gradientUnits="userSpaceOnUse"
+ x1="353.97153"
+ y1="545.08313"
+ x2="1369.6057"
+ y2="545.08313" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="linearGradient13163"
+ gradientUnits="userSpaceOnUse"
+ x1="487.30246"
+ y1="528.66895"
+ x2="1372.8577"
+ y2="528.66895" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3982"
+ id="linearGradient13165"
+ gradientUnits="userSpaceOnUse"
+ x1="566.97968"
+ y1="512.51489"
+ x2="1358.2236"
+ y2="512.51489" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3982"
+ id="linearGradient13167"
+ gradientUnits="userSpaceOnUse"
+ x1="651.53253"
+ y1="502.2196"
+ x2="1343.5894"
+ y2="502.2196" />
+ <pattern
+ patternUnits="userSpaceOnUse"
+ width="32"
+ height="32"
+ patternTransform="translate(1401.622,230.2796)"
+ id="pattern11400">
+ <image
+ xlink:href="noise.jpg"
+ sodipodi:absref="/home/it-s/Temp/noise.jpg"
+ width="32"
+ height="32"
+ id="image11397"
+ x="0"
+ y="0" />
+ </pattern>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4026"
+ id="radialGradient5197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.373494,0,326.4962)"
+ cx="823.57721"
+ cy="521.13818"
+ fx="823.57721"
+ fy="521.13818"
+ r="67.479675" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="radialGradient5199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.237402,-1.317014e-2,8.439643e-3,1.433765,-1007.98,-206.0401)"
+ cx="772.74121"
+ cy="493.96072"
+ fx="772.74121"
+ fy="493.96072"
+ r="72.907143" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="linearGradient5203"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.771614,0,118.7093)"
+ x1="797.67694"
+ y1="519.77423"
+ x2="778.93915"
+ y2="484.04028" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="linearGradient5205"
+ gradientUnits="userSpaceOnUse"
+ x1="836.08325"
+ y1="458.7067"
+ x2="825.89862"
+ y2="464.69907" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="linearGradient5207"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-11.31892,9.987277)"
+ x1="707.09943"
+ y1="453.10846"
+ x2="767.02313"
+ y2="470.41974" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="radialGradient5209"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.735024,3.994912,129.3689)"
+ cx="797.22906"
+ cy="511.11151"
+ fx="797.22906"
+ fy="511.11151"
+ r="67.036728" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4036"
+ id="radialGradient5211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.417866,-0.242556,0.368996,0.635691,292.474,366.7711)"
+ cx="840.45148"
+ cy="462.2327"
+ fx="863.2157"
+ fy="426.83759"
+ r="67.036728" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="radialGradient5213"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.183819,1.219512,419.297)"
+ cx="769.9187"
+ cy="512.73425"
+ fx="769.9187"
+ fy="512.73425"
+ r="67.573174" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5105"
+ id="linearGradient5215"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,-3.252033)"
+ x1="760.84991"
+ y1="372.68829"
+ x2="786.87445"
+ y2="466.99722" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4026"
+ id="radialGradient5239"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.373494,0,326.4962)"
+ cx="823.57721"
+ cy="521.13818"
+ fx="823.57721"
+ fy="521.13818"
+ r="67.479675" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3948"
+ id="radialGradient5241"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.237402,-1.317014e-2,8.439643e-3,1.433765,-1007.98,-206.0401)"
+ cx="772.74121"
+ cy="493.96072"
+ fx="772.74121"
+ fy="493.96072"
+ r="72.907143" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="linearGradient5245"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.771614,0,118.7093)"
+ x1="797.67694"
+ y1="519.77423"
+ x2="778.93915"
+ y2="484.04028" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="linearGradient5247"
+ gradientUnits="userSpaceOnUse"
+ x1="836.08325"
+ y1="458.7067"
+ x2="825.89862"
+ y2="464.69907" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="linearGradient5249"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-11.31892,9.987277)"
+ x1="707.09943"
+ y1="453.10846"
+ x2="767.02313"
+ y2="470.41974" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="radialGradient5251"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.735024,3.994912,129.3689)"
+ cx="797.22906"
+ cy="511.11151"
+ fx="797.22906"
+ fy="511.11151"
+ r="67.036728" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4036"
+ id="radialGradient5253"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.417866,-0.242556,0.368996,0.635691,292.474,366.7711)"
+ cx="840.45148"
+ cy="462.2327"
+ fx="863.2157"
+ fy="426.83759"
+ r="67.036728" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="radialGradient5255"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.183819,1.219512,419.297)"
+ cx="769.9187"
+ cy="512.73425"
+ fx="769.9187"
+ fy="512.73425"
+ r="67.573174" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5105"
+ id="linearGradient5257"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,-3.252033)"
+ x1="760.84991"
+ y1="372.68829"
+ x2="786.87445"
+ y2="466.99722" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="linearGradient3213"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.552846,3.252033)"
+ x1="716.85999"
+ y1="443.33051"
+ x2="706.63245"
+ y2="450.76407" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16792"
+ id="linearGradient3233"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.552846,3.252033)"
+ x1="715.17023"
+ y1="443.33051"
+ x2="696.39545"
+ y2="456.0386" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3208"
+ id="radialGradient3214"
+ cx="794.30896"
+ cy="517.07318"
+ fx="807.31708"
+ fy="526.34149"
+ r="46.341465"
+ gradientTransform="matrix(1,0,0,0.701754,0,154.2148)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3208"
+ id="radialGradient3220"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.701754,0,154.2148)"
+ cx="794.30896"
+ cy="517.07318"
+ fx="807.31708"
+ fy="526.34149"
+ r="46.341465" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3208"
+ id="radialGradient4121"
+ cx="727.64227"
+ cy="471.54471"
+ fx="737.39838"
+ fy="480.31665"
+ r="33.333332"
+ gradientTransform="matrix(1,0,0,0.926829,0,34.50327)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2052"
+ id="linearGradient7435"
+ x1="258.06475"
+ y1="559.36318"
+ x2="293.88015"
+ y2="566.85304"
+ gradientTransform="scale(0.965613,1.035611)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2052"
+ id="linearGradient7437"
+ x1="166.39863"
+ y1="839.30499"
+ x2="199.97323"
+ y2="833.90562"
+ gradientTransform="scale(1.374071,0.727765)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7055"
+ id="radialGradient8342"
+ cx="974.52991"
+ cy="360.39035"
+ fx="974.52991"
+ fy="360.39035"
+ r="135.84689"
+ gradientTransform="matrix(1,0,0,0.42986,0.380065,205.8531)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7055"
+ id="radialGradient9231"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.411517,0.380065,205.993)"
+ cx="974.52991"
+ cy="360.39035"
+ fx="974.52991"
+ fy="360.39035"
+ r="135.84689" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7055"
+ id="radialGradient9235"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.725821,1.678646e-2,-8.209908e-3,0.354984,270.5341,202.4067)"
+ cx="996.5108"
+ cy="359.35107"
+ fx="996.5108"
+ fy="359.35107"
+ r="135.84689" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7055"
+ id="radialGradient9239"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.538372,2.237816e-2,-1.414883e-2,0.295511,462.6954,210.0799)"
+ cx="1013.7815"
+ cy="358.53445"
+ fx="1013.7815"
+ fy="358.53445"
+ r="135.84689" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#e5e5e5"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.615"
+ inkscape:cx="640"
+ inkscape:cy="405.16399"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ width="1280px"
+ height="800px"
+ inkscape:window-width="1270"
+ inkscape:window-height="696"
+ inkscape:window-x="0"
+ inkscape:window-y="24" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Drops on a Blade</dc:title>
+ <dc:date>11 August, 2006</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>it-s</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>GPL</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>Water</rdf:li>
+ <rdf:li>drops</rdf:li>
+ <rdf:li>garss</rdf:li>
+ <rdf:li>blade</rdf:li>
+ <rdf:li>green</rdf:li>
+ <rdf:li>nature</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="bg"
+ inkscape:groupmode="layer"
+ id="layer1"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <rect
+ style="opacity:1;fill:url(#radialGradient3005);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2110"
+ width="1287.8049"
+ height="809.7561"
+ x="-3.2520325"
+ y="-3.2520325" />
+ <rect
+ y="-3.2520325"
+ x="-3.2520325"
+ height="809.7561"
+ width="1287.8049"
+ id="rect3029"
+ style="opacity:1;fill:url(#radialGradient3031);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="-3.2520325"
+ x="-3.2520325"
+ height="809.7561"
+ width="1287.8049"
+ id="rect3007"
+ style="opacity:1;fill:url(#radialGradient3015);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="-3.2520325"
+ x="-3.2520325"
+ height="809.7561"
+ width="1287.8049"
+ id="rect3021"
+ style="opacity:1;fill:url(#radialGradient3023);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:url(#radialGradient3019);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3017"
+ width="1287.8049"
+ height="809.7561"
+ x="-3.2520325"
+ y="-3.2520325" />
+ <rect
+ style="opacity:1;fill:url(#radialGradient3035);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3033"
+ width="1287.8049"
+ height="809.7561"
+ x="-3.2520325"
+ y="-3.2520325" />
+ <rect
+ style="opacity:1;fill:url(#radialGradient3027);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3025"
+ width="1287.8049"
+ height="809.7561"
+ x="-3.2520325"
+ y="-3.2520325" />
+ <rect
+ y="-3.2520325"
+ x="-3.2520325"
+ height="809.7561"
+ width="1287.8049"
+ id="rect3037"
+ style="opacity:0.4;fill:url(#radialGradient3039);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="fg"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ style="fill:url(#linearGradient3966);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 332.73492,621.87991 C 274.72124,656.97071 277.13847,654.55065 205.82999,723.52222 C 134.52149,792.49379 111.55773,816.69434 111.55773,816.69434 L -17.764444,816.69434 C -17.764444,816.69434 -11.721354,695.69159 -8.0954902,687.22139 C -4.4696418,678.7512 83.759506,654.55065 142.98182,643.66041 C 202.20412,632.77015 333.94354,618.24982 332.73492,621.87991 z "
+ id="path3043" />
+ <path
+ id="path3938"
+ d="M 332.73492,621.87991 C 274.72124,656.97071 277.13847,654.55065 205.82999,723.52222 C 134.52149,792.49379 111.55773,816.69434 111.55773,816.69434 L -17.764444,816.69434 C -17.764444,816.69434 -11.721354,695.69159 -8.0954902,687.22139 C -4.4696418,678.7512 83.759506,654.55065 142.98182,643.66041 C 202.20412,632.77015 333.94354,618.24982 332.73492,621.87991 z "
+ style="fill:url(#radialGradient3954);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:url(#radialGradient3958);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 325.97615,630.8916 C 267.96247,665.9824 270.3797,663.56234 199.07122,732.53391 C 127.76272,801.50548 104.79896,825.70603 104.79896,825.70603 L -24.52321,825.70603 C -24.52321,825.70603 -18.48012,704.70328 -14.854256,696.23308 C -11.228408,687.76289 77.00074,663.56234 136.22305,652.6721 C 195.44535,641.78184 327.18477,627.26151 325.97615,630.8916 z "
+ id="path3956" />
+ <path
+ style="fill:url(#linearGradient3936);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 0.36484285,683.59132 C 77.716415,655.76068 274.72123,640.03032 384.70551,637.61027 C 494.68979,635.19021 779.92377,683.59132 905.62008,692.0615 C 1031.3164,700.53169 1259.7453,706.58183 1297.2125,705.37181 C 1334.6797,704.16178 1372.4029,503.09029 1310.5073,500.87715 C 1276.666,499.66712 1221.0695,499.66712 1221.0695,499.66712 C 1221.0695,499.66712 1154.3689,505.48419 1085.7042,497.24707 C 960.86965,482.27171 753.97121,480.37077 643.34988,482.72674 C 480.27767,486.17405 428.96466,531.42766 339.98663,558.95848 C 290.62206,574.23245 238.46268,600.09941 185.28347,614.61973 C 130.97844,629.44746 35.414781,666.65092 -0.84377832,677.54118 C -37.102337,688.43142 -0.84377832,681.17126 0.36484285,683.59132 z "
+ id="path3041"
+ sodipodi:nodetypes="csssscssszsc" />
+ <path
+ sodipodi:nodetypes="csssscssszsc"
+ id="path4024"
+ d="M 0.36484285,683.59132 C 77.716415,655.76068 274.72123,640.03032 384.70551,637.61027 C 494.68979,635.19021 779.92377,683.59132 905.62008,692.0615 C 1031.3164,700.53169 1259.7453,706.58183 1297.2125,705.37181 C 1334.6797,704.16178 1372.4029,503.09029 1310.5073,500.87715 C 1276.666,499.66712 1221.0695,499.66712 1221.0695,499.66712 C 1221.0695,499.66712 1154.3689,505.48419 1085.7042,497.24707 C 960.86965,482.27171 753.97121,480.37077 643.34988,482.72674 C 480.27767,486.17405 428.96466,531.42766 339.98663,558.95848 C 290.62206,574.23245 238.46268,600.09941 185.28347,614.61973 C 130.97844,629.44746 35.414781,666.65092 -0.84377832,677.54118 C -37.102337,688.43142 -0.84377832,681.17126 0.36484285,683.59132 z "
+ style="fill:url(#radialGradient4032);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cssss"
+ id="path3968"
+ d="M 564.93928,651.1278 C 674.47585,661.3326 779.92377,683.59132 905.62008,692.0615 C 1031.3164,700.53169 1259.7453,706.58183 1297.2125,705.37181 C 1334.6797,704.16178 1066.0055,566.17211 1004.1099,563.95897 C 756.55609,566.03024 762.23113,483.44675 564.93928,651.1278 z "
+ style="fill:url(#radialGradient3978);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:url(#radialGradient4008);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 0.36484285,683.59132 C 77.716415,655.76068 274.72123,640.03032 384.70551,637.61027 C 494.68979,635.19021 779.92377,683.59132 905.62008,692.0615 C 1031.3164,700.53169 1259.7453,706.58183 1297.2125,705.37181 C 1334.6797,704.16178 1372.4029,503.09029 1310.5073,500.87715 C 1276.666,499.66712 1221.0695,499.66712 1221.0695,499.66712 C 1221.0695,499.66712 1154.3689,505.48419 1085.7042,497.24707 C 960.86965,482.27171 753.97121,480.37077 643.34988,482.72674 C 480.27767,486.17405 428.96466,531.42766 339.98663,558.95848 C 290.62206,574.23245 238.46268,600.09941 185.28347,614.61973 C 130.97844,629.44746 35.414781,666.65092 -0.84377832,677.54118 C -37.102337,688.43142 -0.84377832,681.17126 0.36484285,683.59132 z "
+ id="path4000"
+ sodipodi:nodetypes="csssscssszsc" />
+ <g
+ id="g13038"
+ style="opacity:0.4"
+ name="texture group">
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6715);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -40.552597,689.60682 C 130.66948,653.56007 283.86818,635.53669 410.03181,633.28377 C 536.19545,631.03085 702.91168,667.0776 840.33993,682.84805 C 977.76817,698.61851 1342.7415,698.61851 1342.7415,698.61851"
+ id="path4052" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient8497);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 42.299675,662.57175 C 233.79805,624.27208 281.10941,608.50162 423.0435,615.26039 C 564.97759,622.01916 655.09448,651.30714 851.0987,667.0776 C 1047.1029,682.84805 1344.4886,685.10097 1344.4886,685.10097"
+ id="path7604" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient8507);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 29.287987,667.0776 C 325.67439,621.93439 336.16597,616.10684 497.89578,635.53669 C 813.70074,673.47677 915.62707,684.17589 1052.1146,685.10097 C 1242.5349,686.3916 1354.1237,693.36825 1354.1237,693.36825"
+ id="path8499"
+ sodipodi:nodetypes="cssc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient9402);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 94.308943,647.15447 C 330.0813,600 317.07317,575.60976 559.34959,609.7561 C 801.62602,643.90244 866.66667,652.03252 1029.2683,660.1626 C 1191.8699,668.29268 1359.3496,669.9187 1359.3496,669.9187"
+ id="path8509" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient10297);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 139.8374,629.26829 C 378.86179,575.60975 360.97561,565.85366 554.47154,593.49593 C 747.96748,621.13821 962.60162,648.78049 1123.5773,656.91057 C 1284.5529,665.04065 1369.1057,665.04065 1369.1057,665.04065"
+ id="path9404" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient11192);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 232.52033,600 C 430.89431,554.47154 365.11529,551.76104 572.35772,572.35772 C 772.88737,592.44886 901.95238,623.40089 1027.6423,626.01626 C 1154.9582,628.63162 1380.4878,637.39837 1380.4878,637.39837"
+ id="path10299"
+ sodipodi:nodetypes="cszc" />
+ <path
+ sodipodi:nodetypes="cszc"
+ id="path11194"
+ d="M 228.52033,604 C 426.89431,558.47154 361.11529,555.76104 568.35772,576.35772 C 768.88737,596.44886 897.95238,627.40089 1023.6423,630.01626 C 1150.9582,632.63162 1376.4878,641.39837 1376.4878,641.39837"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient11196);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path11198"
+ d="M 90.308943,651.15447 C 326.0813,604 313.07317,579.60976 555.34959,613.7561 C 797.62602,647.90244 862.66667,656.03252 1025.2683,664.1626 C 1187.8699,672.29268 1355.3496,673.9187 1355.3496,673.9187"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient11200);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path11202"
+ d="M 131.8374,633.26829 C 370.86179,579.60975 352.97561,569.85366 546.47154,597.49593 C 739.96748,625.13821 954.60162,652.78049 1115.5773,660.91057 C 1276.5529,669.04065 1361.1057,669.04065 1361.1057,669.04065"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient11204);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path11206"
+ d="M 42.299675,668.57175 C 233.79805,630.27208 281.10941,614.50162 423.0435,621.26039 C 564.97759,628.01916 655.09448,657.30714 851.0987,673.0776 C 1047.1029,688.84805 1344.4886,691.10097 1344.4886,691.10097"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient11208);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient11212);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 88.308943,657.15447 C 324.0813,610 311.07317,585.60976 553.34959,619.7561 C 795.62602,653.90244 860.66667,662.03252 1023.2683,670.1626 C 1185.8699,678.29268 1353.3496,679.9187 1353.3496,679.9187"
+ id="path11210" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient12107);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 281.30081,578.86179 C 430.89431,541.46341 411.38211,528.45528 585.36585,544.71545 C 759.34959,560.97561 918.69919,600 1105.6911,600 C 1292.6829,600 1365.8537,600 1365.8537,600"
+ id="path11214" />
+ <path
+ id="path12109"
+ d="M 277.30081,584.86179 C 426.89431,547.46341 407.38211,534.45528 581.36585,550.71545 C 755.34959,566.97561 914.69919,606 1101.6911,606 C 1288.6829,606 1361.8537,606 1361.8537,606"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient12111);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csscssc"
+ id="path12998"
+ d="M 1369.1057,578.86179 C 1369.1057,578.86179 1253.6585,572.35772 1056.9106,572.35772 C 860.1626,572.35772 806.50407,541.46341 632.52033,520.3252 C 458.53659,499.18699 495.93496,517.07317 354.47154,554.47154 C 513.92493,527.27902 471.20665,525.12277 617.88618,531.70732 C 784.25635,539.1758 835.77236,580.4878 1082.9268,590.2439 C 1330.0813,600 1380.4878,591.86992 1380.4878,591.86992"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13006);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path13008"
+ d="M 1372.3577,554.47154 C 1372.3577,554.47154 1216.2602,573.98374 960.97561,546.34146 C 705.69106,518.69919 648.78049,489.43089 567.47967,497.56098 C 486.17886,505.69106 487.80488,505.69106 487.80488,505.69106"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13016);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path13018"
+ d="M 1357.7236,533.33333 C 1357.7236,533.33333 1156.0976,543.08943 1021.1382,531.70732 C 886.17886,520.3252 741.46341,491.05691 661.78862,489.43089 C 582.11382,487.80488 570.38213,487.64363 570.38213,487.64363"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13026);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="cssc" />
+ <path
+ id="path13028"
+ d="M 1343.0894,515.44715 C 1343.0894,515.44715 1151.2195,523.57724 1024.3902,512.19512 C 897.56098,500.81301 795.12195,489.43089 723.57724,487.80488 C 652.03252,486.17886 616.39675,484.24389 616.39675,484.24389"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13036);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="cssc" />
+ </g>
+ <g
+ name="texture group"
+ style="opacity:0.4"
+ id="g13099"
+ transform="translate(0,-2)">
+ <path
+ id="path13101"
+ d="M -40.552597,689.60682 C 130.66948,653.56007 283.86818,635.53669 410.03181,633.28377 C 536.19545,631.03085 702.91168,667.0776 840.33993,682.84805 C 977.76817,698.61851 1342.7415,698.61851 1342.7415,698.61851"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient13135);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path13103"
+ d="M 42.299675,662.57175 C 233.79805,624.27208 281.10941,608.50162 423.0435,615.26039 C 564.97759,622.01916 655.09448,651.30714 851.0987,667.0776 C 1047.1029,682.84805 1344.4886,685.10097 1344.4886,685.10097"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13137);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path13105"
+ d="M 29.287987,667.0776 C 325.67439,621.93439 336.16597,616.10684 497.89578,635.53669 C 813.70074,673.47677 915.62707,684.17589 1052.1146,685.10097 C 1242.5349,686.3916 1354.1237,693.36825 1354.1237,693.36825"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13139);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path13107"
+ d="M 94.308943,647.15447 C 330.0813,600 317.07317,575.60976 559.34959,609.7561 C 801.62602,643.90244 866.66667,652.03252 1029.2683,660.1626 C 1191.8699,668.29268 1359.3496,669.9187 1359.3496,669.9187"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13141);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path13109"
+ d="M 139.8374,629.26829 C 378.86179,575.60975 360.97561,565.85366 554.47154,593.49593 C 747.96748,621.13821 962.60162,648.78049 1123.5773,656.91057 C 1284.5529,665.04065 1369.1057,665.04065 1369.1057,665.04065"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13143);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cszc"
+ id="path13111"
+ d="M 232.52033,600 C 430.89431,554.47154 365.11529,551.76104 572.35772,572.35772 C 772.88737,592.44886 901.95238,623.40089 1027.6423,626.01626 C 1154.9582,628.63162 1380.4878,637.39837 1380.4878,637.39837"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13145);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13147);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 228.52033,604 C 426.89431,558.47154 361.11529,555.76104 568.35772,576.35772 C 768.88737,596.44886 897.95238,627.40089 1023.6423,630.01626 C 1150.9582,632.63162 1376.4878,641.39837 1376.4878,641.39837"
+ id="path13113"
+ sodipodi:nodetypes="cszc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13149);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 90.308943,651.15447 C 326.0813,604 313.07317,579.60976 555.34959,613.7561 C 797.62602,647.90244 862.66667,656.03252 1025.2683,664.1626 C 1187.8699,672.29268 1355.3496,673.9187 1355.3496,673.9187"
+ id="path13115" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13151);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 131.8374,633.26829 C 370.86179,579.60975 352.97561,569.85366 546.47154,597.49593 C 739.96748,625.13821 954.60162,652.78049 1115.5773,660.91057 C 1276.5529,669.04065 1361.1057,669.04065 1361.1057,669.04065"
+ id="path13117" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13153);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 42.299675,668.57175 C 233.79805,630.27208 281.10941,614.50162 423.0435,621.26039 C 564.97759,628.01916 655.09448,657.30714 851.0987,673.0776 C 1047.1029,688.84805 1344.4886,691.10097 1344.4886,691.10097"
+ id="path13119" />
+ <path
+ id="path13121"
+ d="M 88.308943,657.15447 C 324.0813,610 311.07317,585.60976 553.34959,619.7561 C 795.62602,653.90244 860.66667,662.03252 1023.2683,670.1626 C 1185.8699,678.29268 1353.3496,679.9187 1353.3496,679.9187"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13155);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path13123"
+ d="M 281.30081,578.86179 C 430.89431,541.46341 411.38211,528.45528 585.36585,544.71545 C 759.34959,560.97561 918.69919,600 1105.6911,600 C 1292.6829,600 1365.8537,600 1365.8537,600"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13157);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13159);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 277.30081,584.86179 C 426.89431,547.46341 407.38211,534.45528 581.36585,550.71545 C 755.34959,566.97561 914.69919,606 1101.6911,606 C 1288.6829,606 1361.8537,606 1361.8537,606"
+ id="path13125" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13161);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1369.1057,578.86179 C 1369.1057,578.86179 1253.6585,572.35772 1056.9106,572.35772 C 860.1626,572.35772 806.50407,541.46341 632.52033,520.3252 C 458.53659,499.18699 495.93496,517.07317 354.47154,554.47154 C 513.92493,527.27902 471.20665,525.12277 617.88618,531.70732 C 784.25635,539.1758 835.77236,580.4878 1082.9268,590.2439 C 1330.0813,600 1380.4878,591.86992 1380.4878,591.86992"
+ id="path13127"
+ sodipodi:nodetypes="csscssc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13163);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1372.3577,554.47154 C 1372.3577,554.47154 1216.2602,573.98374 960.97561,546.34146 C 705.69106,518.69919 648.78049,489.43089 567.47967,497.56098 C 486.17886,505.69106 487.80488,505.69106 487.80488,505.69106"
+ id="path13129" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13165);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1357.7236,533.33333 C 1357.7236,533.33333 1156.0976,543.08943 1021.1382,531.70732 C 886.17886,520.3252 741.46341,491.05691 661.78862,489.43089 C 582.11382,487.80488 584.73319,488.28862 584.73319,488.28862"
+ id="path13131"
+ sodipodi:nodetypes="cssc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient13167);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1343.0894,515.44715 C 1343.0894,515.44715 1151.2195,523.57724 1024.3902,512.19512 C 897.56098,500.81301 795.12195,489.43089 723.57724,487.80488 C 652.03252,486.17886 639.13269,485.37262 639.13269,485.37262"
+ id="path13133"
+ sodipodi:nodetypes="cssc" />
+ </g>
+ <path
+ sodipodi:nodetypes="cscsss"
+ id="path3990"
+ d="M 1297.2125,705.37181 C 1334.6797,704.16178 1372.4029,503.09029 1310.5073,500.87715 C 1276.666,499.66712 1221.0695,499.66712 1221.0695,499.66712 C 1221.0695,499.66712 1154.3689,505.48419 1085.7042,497.24707 C 960.86965,482.27171 753.4154,471.4037 643.34988,482.72674 C 557.52497,491.55601 869.76805,701.83373 1297.2125,705.37181 z "
+ style="fill:url(#radialGradient3998);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cscss"
+ id="path4020"
+ d="M 1297.2125,705.37181 C 1334.6797,704.16178 1372.4029,503.09029 1310.5073,500.87715 C 1276.666,499.66712 1221.0695,499.66712 1221.0695,499.66712 C 1221.0695,499.66712 1154.7858,494.01939 1085.7042,497.24707 C 933.05642,504.48444 957.61477,751.59813 1297.2125,705.37181 z "
+ style="fill:url(#radialGradient4022);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:url(#radialGradient3988);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 851.54995,610.95631 C 1094.363,629.0617 1284.9282,626.27066 1296.0362,574.35889 C 1302.6523,543.43969 1243.0332,510.53016 1085.7042,497.24707 C 960.86965,482.27171 753.50403,472.30118 643.34988,482.72674 C 425.33569,503.36074 480.86835,583.14838 851.54995,610.95631 z "
+ id="path3980"
+ sodipodi:nodetypes="cssss" />
+ <path
+ sodipodi:nodetypes="csss"
+ id="path4010"
+ d="M 905.62008,692.0615 C 1030.1747,710.96799 1259.7453,706.58183 1297.2125,705.37181 C 1334.6797,704.16178 1372.4029,503.09029 1310.5073,500.87715 C 782.13787,509.06232 786.55811,673.98875 905.62008,692.0615 z "
+ style="fill:url(#radialGradient4018);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <rect
+ style="opacity:0.5;fill:url(#radialGradient4050);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4048"
+ width="802.04523"
+ height="83.358635"
+ x="656.66571"
+ y="401.47336"
+ transform="matrix(0.997341,7.287645e-2,-7.287645e-2,0.997341,0,0)" />
+ <rect
+ transform="matrix(0.995935,9.00739e-2,-9.00739e-2,0.995935,0,0)"
+ y="471.3035"
+ x="658.54437"
+ height="83.35743"
+ width="802.03369"
+ id="rect4044"
+ style="opacity:0.5;fill:url(#radialGradient4046);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:0.5;fill:url(#radialGradient4042);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4034"
+ width="802.03992"
+ height="83.358078"
+ x="640.59064"
+ y="455.73672"
+ transform="matrix(0.998136,6.10355e-2,-6.10355e-2,0.998136,0,0)" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:white;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="1252.1626"
+ y="794.74799"
+ id="text2114"><tspan
+ sodipodi:role="line"
+ id="tspan2116"
+ x="1252.1626"
+ y="794.74799">it-s</tspan></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="water drop"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <g
+ id="g5185"
+ transform="matrix(0.77288,0,0,0.671067,169.5595,174.2755)">
+ <path
+ transform="matrix(1.313253,0,0,1.193548,-266.1182,-102.4915)"
+ d="M 891.05688 521.13818 A 67.479675 25.203253 0 1 1 756.09753,521.13818 A 67.479675 25.203253 0 1 1 891.05688 521.13818 z"
+ sodipodi:ry="25.203253"
+ sodipodi:rx="67.479675"
+ sodipodi:cy="521.13818"
+ sodipodi:cx="823.57721"
+ id="path5159"
+ style="opacity:0.5;fill:url(#radialGradient5197);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="csssc"
+ id="path4198"
+ d="M 852.91373,465.0932 C 852.91373,502.21392 821.58297,508.37142 781.33823,508.37142 C 741.09349,508.37142 707.09945,502.21392 707.09945,465.0932 C 707.09945,427.97248 739.76185,397.84551 780.00659,397.84551 C 820.25133,397.84551 852.91373,427.97248 852.91373,465.0932 z "
+ style="opacity:1;fill:url(#radialGradient5199);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ transform="translate(-10.6531,13.31637)" />
+ <path
+ style="opacity:0.5;fill:url(#linearGradient3213);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 743.53125,427.0625 C 731.46751,429.28538 720.03014,435.95019 714.0625,447.09375 C 713.3183,449.03127 708.7103,454.36602 712.96875,451.84375 C 719.27014,450.92164 719.10495,459.07532 717.9375,463.03125 C 719.34059,467.3091 725.86889,466.91944 727.5625,463.09375 C 732.53216,458.84817 739.93962,458.01358 745.375,455.96875 C 737.95986,456.31904 729.9692,458.79181 722.6875,456.59375 C 719.0192,452.71784 725.78068,449.9806 728.21875,447.96875 C 733.39078,444.123 740.97258,441.23869 745.46875,438.5 C 742.33372,439.01496 735.48831,438.69014 737.90625,433.8125 C 739.15982,431.40516 742.71353,427.9556 743.53125,427.0625 z "
+ id="path5087" />
+ <path
+ sodipodi:nodetypes="cssssssssc"
+ id="path5105"
+ d="M 783.66857,519.70953 C 767.0231,515.08573 761.69655,509.94819 765.02565,507.89316 C 768.35474,505.83815 774.34711,514.05823 774.34711,507.89316 C 774.34711,501.72811 743.71945,496.59056 755.70418,493.50803 C 767.68892,490.4255 766.35728,491.96676 776.34456,491.45301 C 786.33184,490.93926 771.01801,491.45301 777.01038,488.88423 C 783.00275,486.31546 786.84355,481.87005 812.14465,481.35629 C 837.44576,480.84254 843.59225,485.80171 842.26061,488.88423 C 840.92897,491.96676 842.26061,508.40692 827.6126,513.03072 C 812.96459,517.65451 804.30895,520.22328 783.66857,519.70953 z "
+ style="fill:url(#linearGradient5203);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path5117"
+ d="M 788.3293,412.49354 C 818.95696,426.47573 822.95187,431.13646 831.60751,442.45538 C 840.26315,453.77429 843.59225,475.08049 842.26061,485.73359 C 840.92897,496.38669 842.26061,467.09067 836.26824,460.43248 C 830.27587,453.77429 817.62532,450.4452 806.97222,447.78193 C 796.31912,445.11865 796.31912,441.12374 798.9824,438.46047 C 801.64567,435.79719 808.30386,423.81245 798.31658,419.81754 C 788.3293,415.82263 787.66348,410.49608 788.3293,412.49354 z "
+ style="fill:url(#linearGradient5205);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ id="path5135"
+ d="M 766.95918,413.85841 C 734.97777,413.41932 702.89833,439.6745 701.70918,472.57716 C 700.36887,486.67385 708.26439,502.06211 722.49043,505.92091 C 745.81022,514.75895 771.73027,512.41627 796.27168,510.98341 C 810.84353,509.6319 828.7936,504.07641 833.49043,488.38966 C 841.92031,461.53486 824.4424,431.95767 799.64668,420.82716 C 789.5048,415.90452 778.33781,413.52744 766.95918,413.85841 z "
+ style="opacity:1;fill:url(#linearGradient5207);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:url(#radialGradient5209);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 770.95409,420.5166 C 738.97268,420.07751 706.89324,446.33269 705.70409,479.23535 C 704.36378,493.33204 712.2593,508.7203 726.48534,512.5791 C 749.80513,521.41714 775.72518,519.07446 800.26659,517.6416 C 814.83844,516.29009 832.78851,510.7346 837.48534,495.04785 C 845.91522,468.19305 828.43731,438.61586 803.64159,427.48535 C 793.49971,422.56271 782.33272,420.18563 770.95409,420.5166 z "
+ id="path5151" />
+ <path
+ id="path5155"
+ d="M 770.95409,420.5166 C 738.97268,420.07751 706.89324,446.33269 705.70409,479.23535 C 704.36378,493.33204 712.2593,508.7203 726.48534,512.5791 C 749.80513,521.41714 775.72518,519.07446 800.26659,517.6416 C 814.83844,516.29009 832.78851,510.7346 837.48534,495.04785 C 845.91522,468.19305 828.43731,438.61586 803.64159,427.48535 C 793.49971,422.56271 782.33272,420.18563 770.95409,420.5166 z "
+ style="opacity:1;fill:url(#radialGradient5211);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ id="path5169"
+ d="M 704.06504,504.47155 C 711.11401,501.3073 710.58428,508.03903 709.7561,513.00813 C 709.31001,515.68463 715.17276,513.41464 717.88618,513.41464 C 720.70843,513.41464 725.60975,513.67335 725.60975,517.47968 C 725.60975,517.96633 732.13924,517.38441 734.14634,517.88618 C 740.55687,519.48881 747.70152,520.3252 755.69106,520.3252 C 761.77362,520.3252 760.50468,526.84538 767.07317,525.20325 C 770.95228,524.23348 773.28724,522.66473 776.82927,523.17073 C 782.11745,523.92619 786.71354,521.95122 791.86992,521.95122 C 795.48749,521.95122 797.77537,522.64005 801.21951,521.95122 C 805.10267,521.17459 809.69745,520.13662 813.82114,519.10569 C 818.34463,517.97482 822.20592,514.63415 825.60975,514.63415 C 827.65467,514.63415 828.01501,511.11071 828.45528,509.3496 C 829.68514,504.43015 830.26802,504.03837 835.77236,503.25203 C 838.3245,502.88744 837.22239,502.28535 838.21138,501.62602"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#radialGradient5213);stroke-width:6.94274759;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccczc"
+ style="opacity:1;fill:url(#linearGradient5215);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 770.95409,417.26457 C 738.97268,416.82548 706.89324,443.08066 705.70409,475.98332 C 704.36378,490.08001 712.2593,505.46827 726.48534,509.32707 C 749.80513,518.16511 744.11559,459.30604 782.38041,459.10502 C 820.6883,458.90377 837.83671,418.49571 770.95409,417.26457 z "
+ id="path5179" />
+ </g>
+ <g
+ transform="matrix(0.373461,0,0,0.334302,324.1562,382.1236)"
+ id="g5217">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.5;fill:url(#radialGradient5239);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5219"
+ sodipodi:cx="823.57721"
+ sodipodi:cy="521.13818"
+ sodipodi:rx="67.479675"
+ sodipodi:ry="25.203253"
+ d="M 891.05688 521.13818 A 67.479675 25.203253 0 1 1 756.09753,521.13818 A 67.479675 25.203253 0 1 1 891.05688 521.13818 z"
+ transform="matrix(1.313253,0,0,1.193548,-266.1182,-102.4915)" />
+ <path
+ transform="translate(-10.6531,13.31637)"
+ style="opacity:1;fill:url(#radialGradient5241);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 852.91373,465.0932 C 852.91373,502.21392 821.58297,508.37142 781.33823,508.37142 C 741.09349,508.37142 707.09945,502.21392 707.09945,465.0932 C 707.09945,427.97248 739.76185,397.84551 780.00659,397.84551 C 820.25133,397.84551 852.91373,427.97248 852.91373,465.0932 z "
+ id="path5221"
+ sodipodi:nodetypes="csssc" />
+ <path
+ style="opacity:0.5;fill:url(#linearGradient3233);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 743.53125,427.0625 C 731.46751,429.28538 720.03014,435.95019 714.0625,447.09375 C 713.3183,449.03127 708.7103,454.36602 712.96875,451.84375 C 719.27014,450.92164 719.10495,459.07532 717.9375,463.03125 C 719.34059,467.3091 725.86889,466.91944 727.5625,463.09375 C 732.53216,458.84817 739.93962,458.01358 745.375,455.96875 C 737.95986,456.31904 729.9692,458.79181 722.6875,456.59375 C 719.0192,452.71784 725.78068,449.9806 728.21875,447.96875 C 733.39078,444.123 740.97258,441.23869 745.46875,438.5 C 742.33372,439.01496 735.48831,438.69014 737.90625,433.8125 C 739.15982,431.40516 742.71353,427.9556 743.53125,427.0625 z "
+ id="path5223" />
+ <path
+ style="fill:url(#linearGradient5245);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 783.66857,519.70953 C 767.0231,515.08573 761.69655,509.94819 765.02565,507.89316 C 768.35474,505.83815 774.34711,514.05823 774.34711,507.89316 C 774.34711,501.72811 743.71945,496.59056 755.70418,493.50803 C 767.68892,490.4255 766.35728,491.96676 776.34456,491.45301 C 786.33184,490.93926 771.01801,491.45301 777.01038,488.88423 C 783.00275,486.31546 786.84355,481.87005 812.14465,481.35629 C 837.44576,480.84254 843.59225,485.80171 842.26061,488.88423 C 840.92897,491.96676 842.26061,508.40692 827.6126,513.03072 C 812.96459,517.65451 804.30895,520.22328 783.66857,519.70953 z "
+ id="path5225"
+ sodipodi:nodetypes="cssssssssc" />
+ <path
+ style="fill:url(#linearGradient5247);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 788.3293,412.49354 C 818.95696,426.47573 822.95187,431.13646 831.60751,442.45538 C 840.26315,453.77429 843.59225,475.08049 842.26061,485.73359 C 840.92897,496.38669 842.26061,467.09067 836.26824,460.43248 C 830.27587,453.77429 817.62532,450.4452 806.97222,447.78193 C 796.31912,445.11865 796.31912,441.12374 798.9824,438.46047 C 801.64567,435.79719 808.30386,423.81245 798.31658,419.81754 C 788.3293,415.82263 787.66348,410.49608 788.3293,412.49354 z "
+ id="path5227" />
+ <path
+ style="opacity:1;fill:url(#linearGradient5249);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 766.95918,413.85841 C 734.97777,413.41932 702.89833,439.6745 701.70918,472.57716 C 700.36887,486.67385 708.26439,502.06211 722.49043,505.92091 C 745.81022,514.75895 771.73027,512.41627 796.27168,510.98341 C 810.84353,509.6319 828.7936,504.07641 833.49043,488.38966 C 841.92031,461.53486 824.4424,431.95767 799.64668,420.82716 C 789.5048,415.90452 778.33781,413.52744 766.95918,413.85841 z "
+ id="path5229" />
+ <path
+ id="path5231"
+ d="M 770.95409,420.5166 C 738.97268,420.07751 706.89324,446.33269 705.70409,479.23535 C 704.36378,493.33204 712.2593,508.7203 726.48534,512.5791 C 749.80513,521.41714 775.72518,519.07446 800.26659,517.6416 C 814.83844,516.29009 832.78851,510.7346 837.48534,495.04785 C 845.91522,468.19305 828.43731,438.61586 803.64159,427.48535 C 793.49971,422.56271 782.33272,420.18563 770.95409,420.5166 z "
+ style="opacity:1;fill:url(#radialGradient5251);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:url(#radialGradient5253);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 770.95409,420.5166 C 738.97268,420.07751 706.89324,446.33269 705.70409,479.23535 C 704.36378,493.33204 712.2593,508.7203 726.48534,512.5791 C 749.80513,521.41714 775.72518,519.07446 800.26659,517.6416 C 814.83844,516.29009 832.78851,510.7346 837.48534,495.04785 C 845.91522,468.19305 828.43731,438.61586 803.64159,427.48535 C 793.49971,422.56271 782.33272,420.18563 770.95409,420.5166 z "
+ id="path5233" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#radialGradient5255);stroke-width:14.15071869;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 704.06504,504.47155 C 711.11401,501.3073 710.58428,508.03903 709.7561,513.00813 C 709.31001,515.68463 715.17276,513.41464 717.88618,513.41464 C 720.70843,513.41464 725.60975,513.67335 725.60975,517.47968 C 725.60975,517.96633 732.13924,517.38441 734.14634,517.88618 C 740.55687,519.48881 747.70152,520.3252 755.69106,520.3252 C 761.77362,520.3252 760.50468,526.84538 767.07317,525.20325 C 770.95228,524.23348 773.28724,522.66473 776.82927,523.17073 C 782.11745,523.92619 786.71354,521.95122 791.86992,521.95122 C 795.48749,521.95122 797.77537,522.64005 801.21951,521.95122 C 805.10267,521.17459 809.69745,520.13662 813.82114,519.10569 C 818.34463,517.97482 822.20592,514.63415 825.60975,514.63415 C 827.65467,514.63415 828.01501,511.11071 828.45528,509.3496 C 829.68514,504.43015 830.26802,504.03837 835.77236,503.25203 C 838.3245,502.88744 837.22239,502.28535 838.21138,501.62602"
+ id="path5235" />
+ <path
+ id="path5237"
+ d="M 770.95409,417.26457 C 738.97268,416.82548 706.89324,443.08066 705.70409,475.98332 C 704.36378,490.08001 712.2593,505.46827 726.48534,509.32707 C 749.80513,518.16511 744.11559,459.30604 782.38041,459.10502 C 820.6883,458.90377 837.83671,418.49571 770.95409,417.26457 z "
+ style="opacity:1;fill:url(#linearGradient5257);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="ccczc" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="effects"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.6;fill:url(#radialGradient3214);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2321"
+ sodipodi:cx="794.30896"
+ sodipodi:cy="517.07318"
+ sodipodi:rx="46.341465"
+ sodipodi:ry="32.520325"
+ d="M 840.65042 517.07318 A 46.341465 32.520325 0 1 1 747.96749,517.07318 A 46.341465 32.520325 0 1 1 840.65042 517.07318 z"
+ transform="matrix(0.85,0,0,0.85,119.5122,72.68293)" />
+ <path
+ transform="matrix(0.4,0,0,0.4,311.3415,345.2033)"
+ d="M 840.65042 517.07318 A 46.341465 32.520325 0 1 1 747.96749,517.07318 A 46.341465 32.520325 0 1 1 840.65042 517.07318 z"
+ sodipodi:ry="32.520325"
+ sodipodi:rx="46.341465"
+ sodipodi:cy="517.07318"
+ sodipodi:cx="794.30896"
+ id="path3218"
+ style="opacity:0.6;fill:url(#radialGradient3220);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.6;fill:url(#radialGradient4121);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3228"
+ sodipodi:cx="727.64227"
+ sodipodi:cy="471.54471"
+ sodipodi:rx="33.333332"
+ sodipodi:ry="30.894308"
+ d="M 760.97561 471.54471 A 33.333332 30.894308 0 1 1 694.30894,471.54471 A 33.333332 30.894308 0 1 1 760.97561 471.54471 z"
+ transform="matrix(0.383864,0.361524,-0.500114,0.480416,671.9576,-8.095317)" />
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/Harvey_Rayner.svg b/PerformanceTests/PageLoad/svg/files/Harvey_Rayner.svg
new file mode 100644
index 000000000..4cf375037
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/Harvey_Rayner.svg
@@ -0,0 +1,679 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: CorelDRAW -->
+<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="700" height="590" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+viewBox="0 0 2985.61 2516.75"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <style type="text/css">
+ <![CDATA[
+ .str3 {stroke:black;stroke-width:0.503546}
+ .str2 {stroke:black;stroke-width:0.503546}
+ .str4 {stroke:white;stroke-width:0.503546}
+ .str1 {stroke:white;stroke-width:1.00709}
+ .str0 {stroke:#7F7F7F;stroke-width:3.83702}
+ .fil13 {fill:none}
+ .fil10 {fill:#DE8500}
+ .fil2 {fill:#FF9900}
+ .fil8 {fill:#FFB13B}
+ .fil4 {fill:black}
+ .fil9 {fill:#1F1F1F}
+ .fil3 {fill:#3F3F3F}
+ .fil0 {fill:#7F7F7F}
+ .fil11 {fill:#BFBFBF}
+ .fil12 {fill:#DFDFDF}
+ .fil5 {fill:#F0F0F0}
+ .fil1 {fill:white}
+ .fil6 {fill:black;fill-rule:nonzero}
+ .fil7 {fill:white;fill-rule:nonzero}
+ ]]>
+ </style>
+ </defs>
+ <g id="Layer_x0020_1">
+ <metadata id="CorelCorpID_0Corel-Layer"/>
+ <rect class="fil0" x="-0.0123888" y="1770.66" width="2984.36" height="746.084"/>
+ <rect class="fil1 str0" x="1423.3" y="1.9185" width="1560.38" height="1768.74"/>
+ <rect class="fil2" x="-0.00111618" y="1.91821" width="1423.3" height="1637.89"/>
+ <rect class="fil3" x="-0.00111618" y="997.379" width="1423.3" height="773.282"/>
+ <image transform="matrix(0.239849 0 0 0.239849 1400.23 1628.27)" x="350" y="-6726.19" width="6079.1" height="7145.6" xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVYAAAGSCAIAAAA3tH52AAAACXBIWXMAADX6AAA1+gFoxIhiAAAgAElEQVR4nOyd55Md13Xt/Y/64/tgf7DLQeVQtiWHKperbCtSEikSJAEikgRACIySJduiAgNIIoeZwQTMDDCYwQwykwS8Vf17vd7qffoOCRAgSBHnw62+fTuee/baa4ezzx/cfti+AO1W3zb59XN+pHve2nf0tjd++9vfPoAn+2q3P3jQD/CwTWyTBObL3goWbA5/D9v9bg8h4AvRbn3q9qCf9C7b6JO3O7+8L/jlbQ8h4IvVfs8k3y11/u9+97t8Nb4+2Mf7KreHEPCFaJvbySkzD+gB72Xzi+RL6fO3XXvQT/eVaw8h4D62u6P3yLya5OELJfOfkZ6kwtfnxx9/zOeHH36oT1720/TPw3Zv20MIuI9tdDT/bqxpvyTh6tWrly5dOn/+/Llz5+bn5/V54cKFjY2NGzdufPTRR4Uwf/6CcXfCyStLwvWC77///s2bN69du6bX1KsdP378jTfe+NnPfvbzn//8rbfempub++CDD3Sku4XthxBwX9tDCLi/zWKf8n+7i36hBtUkGJLzhYWFM2fOHDt27NChQ7/pmqTi3Xff1R7tX1xcXFtbu3LlikTIatMSUgQy4WZ026o4Mah97PZrC2ctqOmpBFgfdE1Pq2fWkwvX9IIzMzOnTp3SG7333nt6zV/84hc/+clPnnvuuW3btj3zzDP79u07ffq0AMLPoyv4OdvH+Hz+wd/79hAC7mOzeFgTftw1NvSpIS59OD09fbhrEnVJiGTj9ddfl/y/8847ggA+jx49qp90wNmzZwUHFy9eXF9fl3Rdv35dFylEOvn2KPW4NXQ0tL9OUvj6VfeShFul86mmJ9HzXL58WQIvDb+0tASXkdhLsE+ePHnkyBG9iD6l/EEBwdwvf/nLgwcPCgIee+yx7373u7t37wYFQDdcA9mHD0nBPW8PIeD+NmswBrSbREgyLPGQ5EvIJfaSitnZWcm5uLHUo2T+eNe0oWP0qQO888SJExIqEAF7QYIn8ZMQypq41jXJJMIpKRVM6I4fdU0b+qqdsi90mI7XiXqYta5dGrayU9AjfW7xlmLXhj61LRp/tmtCND3Y6Win+qZtftLD63XefvvtN99886c//emePXu2bNnyzW9+85FHHnnxxReFFHojbB+TncS1B/2v/l61hxBwfxsQYC2N/pf4SWB+/etfS9Ql/O91TXAgccI8/tWvfiUJQc71qW00pyBAXyVLU1NTkiX9CiIAB7qCxE9CqIsjnG4iDsvLy5IrCfBy3yzJlls1XVnbXGoq2nTfuDVNh+lcDuasbBxsILDw817aFvbhCzhw4ID0v4jA448/vq9rMhB0ZaGVeo9PgMC9+hAI7lV7CAH3pZUxah4r9SshlOr7+c9/Lg78Rtfe7RpCK4UvE0C4IDlBtovy1FekCEGydrVkaqPIoYVztmvo6rmu6et819jWJ199WLbZvuVXNjjdMq/HKHjBBj+xrecX8On1//d///e1116TObBz584dO3a81rVdu3bt3btXPYDH5PYwoHD7IRe4d+0hBNz7VoxnNL8oumRVkv/888+//PLL0vMSezFhSbt0u0BBIiQI0LYEQ0dKtCwtKGFLV9HVRfdaOPMrQp50Hbl1sxi7sX++b3kMrIFb+0gggJ3QEDVjhG+K1aBtqIGEXO+r3hAgyiIQEKiL/vu//1soIAgQEGi/rA9Bp2G0dHLxVjxsd9oeQsBdtlHXdOswl0ErM1sD/ZVXXpGW2759u+T/9ddfR/hR+MICaUKJvcRDsi3dLhESWVhZWSFAiIwh8Kl4EVGoPiKHfe5Pt/zKiZAOGQg+d/QYDjOClIONGskRgB6DC2fZcYBJoldbW1vj7nploYA64Te/+Y1QQHaBekNAoI4SCmzdulWf6hwiBQLT230e0a2xMMfDdqftKwoBn3HQpJAXG5VBqZ03btzQQJdWf+GFF5588smnn35a+v/VV1+Vivv1r38t4X87mvZIDHDvSVpWV1evXr16/fp1fHX44WTJL/ZNZrwECYnSNp9qEjNLtX9CAosAWyDVEGZjB5iy1DfdiJ90pCCJU/D522pII6JADzKvE3WK3gLn4nrXeCkdJjogC0gQ8D//8z+/+MUvpPnVSz/pmuRfvbdt2zbhpo5Pr0obE30IBHfRvqIQcHetDLJbw5ifmb/0ldSgxvFzzz33ox/96JFHHpEq279/v4iAxrQGt3jvG8MmRJAtcOTIEel5CQzx/+tdw2/veBtig0QhjbjokVU2kGqJH7KnT47MA/QrWprt9O3nV8OENnAo4kqEoRiJjBrL0Sz2QjRLvoML2t7Y2DAEkCagJjRU/0AEsAgOHDiwZ88eEgfURR9++OGtLq1QbTRk8LDdUXsIAXffjAiMQm2I9kuoNHDF+R977LHvf//73/ve9x5//HFhgWitKO7/dE0K7Vddk96T5BMb01d9Hjt2TLJEzF9Nwk863dWubXRN4iQJJD4nSQMU7PDXT6ho9iCrDgEYKUwNCv/HU+g4go680DXLM1+1sdI1ifdK3xD1bJZ2bSPzjj5qQ8frUrqRbB9JvsReaKg+0bYAVL2kvlKniToJBcShhAKPPvroSy+9pBOL5D/U/3fdHkLA3bRbfXiPkSfJl5RKliTGzz777FNPPSWxf7RrW7Zskf0vW0A67dddk6LT4P5l10gBxCkAEdCn5AHp1UCX/BC01wbyI1xAeLRHn+QIAQfIPzuTclsaLZlIMkCwFA3Nrw0knItA2q23kWoeho3LXWMDtsKvPpGL8MAgCL4AHlV3lG4HE8mMpKP0FQgQpP70pz8VhopJySIQsRIciGeR3UD60K1bD2cc3mV7CAH/r93p6EH/aAhK8KS6NUZJdJX8Y/lLZemrGKzk/+DBgzoA/q/BDfknC1hir22cgsTJZRVLKpJyW2ys1SWl1u0IEsRbDfm3TrbEXo5mSU69ndgBTAA0yDMExEzeQp5i72M4HRDhsbkat3N+kVgGyVHqB704bAgoNBdQAwtkRokO7N69W9zqu13TV701mU4PucBdt680BHx6N1Lx82vYadBrEEt9kdy2u2sS+x07duiruIA0lUBh7969IrEarLBcjW8+3TTumQugJmEQFmjPiRMniJ9JLcPAYe/scTwfV7xpvHU40JCCV+hAqujVvpnbAwfgjjHCyYK+oPk81/Hpphg8CVBlikFoQ0yH8KekHU4k+NPr693JlaSjhALCAh1AGoW6et++fepbcatvfetb//Zv/ya2pf26qbDYpOzWMEZz/8fRl7t9RSHAwpyCncNlNFtee65fv64hfubMGQ3Nn/zkJ9LwknNJ+/6ukdmmDe3/cd9efPFFewEReCRfA92zAEgQJBeYGIE2SBAkF5C4Ool6zv8paT927NuG16NabkndN0dgw4a9DX41DrZ5n2yiGPnmC74aMq8HcHSQBz5+/Lje6N1oiDpqn7kDauoEHcYkIqOAucB//dd/qW8FAcJZmQMiAv/5n/8pLJCppb9DN71x44b9Mv7L2v/9cx9uX+j2FYUAmgfE7/rJ+Q7yuXGkNMzVq1dR+1JKUkcS7INdk5Dr8+W+vfTSS2yIuLIhCoAjUONYI/5Q3zTu34umoa+LCwX0iXgwLyAlR9CA+WBCwQZQghTpLOlYUEOIYH8e0/WKrnbKMBqb6AA+BRsgmVOcrn6sEgwTmpW8YEtPYmGmJfzR9PDqEGZDkv5M45WNAhJ+6IAgQL0N7MrIeuKJJx599NEf/OAH3/nOdx555BHhgv4avcJHH33k2GHOL7r9mYPBv5ftKwoBm8yNy1D/rW4mr6RFEiUx0wh77bXXXumbZFtfpeGFCBqdP432k75xgCGAdOCUeTfmAnkWnQSASXXMEUBD2nGYGlJPJSuDcDrSgmghZjpLV5AexmrI/BzIgr4S1SeZD71NArLvi9KGuSRaHesbj81ONR3v50TP8zBv9g1XiGdDn+yaLuKuAAWMGkRMiBGq52VbCQV27dolIJBRgPNVpOB73/vek08+qd4Wc/H/aFJAHPGh/Jf2FYUAtxwQaUxq6Ejtk7QvGZOEU9mCprEokf7vrkn2JIE/69rPo7EHRNBXHQMEFIXPBoPeEwFBAYIF7OdgpBEQQUIs6m9GMzvgCok4mA/QBDKOPeMAUdROZvUi8+mzgLlYznlsX9mvwOwGK3PQyuFPUAyHnw5gghMTHzAWOJGe4dV0EWZP0vP6L0S19u7dK4tgz549O7omW0DCTxRGvOCpp57SH4SzkJCN2kMKMNq+0hCQVgB5Jjj5RW4lJxqpGnAINlkrSD7KlvQV7dQGEWy+apuD9RWY0On8ShQQmbQgsYEjwBqViXQIkg6AJBsCkDpEFKGCLZNogJmAvIEFmAmche/AIkpzPEK3YGI/V7b2fqdrHMYpuho7fZFU4AYFcMo630YB7g8jkec+0QnGR1tMJA6SO6j+FP+S8bVv3769XRMj2L17986dO/UpOBAWyEYQNXjmmWd0sHBc/+ntSOUiy/hho311IeBWF9u3rSgtceXKFQm/ZE9DFulFbnFZO17tDbCAr7+KluT8f7sGKJARJOGUAHj+v4EAzk/DBagnwRdgebPjMI0CKICfgScECIAtHp77Sv7n5+cFBLBuPgEIbeu+TOB7e9iw5IGVggLsORTNnk5Qw6E+lD/0xOYJzkIgACJgvHMlBZIFXu8aEICp9fLLL9vnur9vQgTmYmAjCAu0R3ccnWv0sN3+KkDArckNnXDjxo0LFy5INqhjg9x6Ji+yZF5dEnstbN5GFHX6L6K93jdQQ1KBbk8UAAJcXYPZ+IgHQECMII0ClLDdBAibn0dNtwOAyK7RJ1UJdB3UvkFNZEePBy1HdZsIpD0PBiXzJ2xhjW2OY3egwQKcwhuC/GdxEb2mjSCbGJyoW9O36jq9ix4VzwuuFjWRApkGYIHYwQsvvEB0RqRAWPD0008LDvST7isgwDT49O1Bj9/73n6vIKCIt/8/O/woeoXyl064fPnywsKCBhysHhFFJODStoGLNzu13JvDVlJcHdBySzeYvX3eZvI/n55vDwrYcehqIi4okmwiWQM2gp5Kb0ecUvKv5//Wt771ne98Z+vWrf/6r//6H//xH7t27fr617/+jW98Q8+mDsloJRtOW7Azwr/ySNwIqq/nQarz2egZgp3Iv+uUAHn2IKRzBJ8IcAaCMHfArhbgAEQAC1555ZUXuyYsOHDgAOEDvaCMArEDIYUuKK6H3ZdC7q8ZVvwqFDX/vYKAdtJeTia73ZN/Cf/q6qqGHWlnlnx0VHq/LOptsyQkQJjrpnXgdFe76y0MFuaEgFIFxH47TGW7Eo0X8GcXEUGWkD3bEbo18UtJuF72b/7mb/7yL//y3//937/2ta/94z/+o4znf/qnfxIc6MFEiOAIbagy/ZHuBB7JcxygCZgYCLb28OLUQXHtA9McP7BNAFtJ6fKA1NjnYlcLDVwQFogavNo3wYFkXi8uUvD888/v2bNHpEBwoD16SL3p+++/L1LgFOP0GhoIHuSA/lza7xUE3A7JTyBnD2pfykeDCceeHXhE7LF1U8hT6ZVmmzyBACwABX7dNxsI3rZ7XKdrrCMqVuynhs1lQpB2fIdImiQn9S1S5yNxK3KKngfxkOzprf/u7/7ub//2b3/wgx/89V//9b/8y7+IMP/DP/zDP//zP0vklpeXdSJJR75OxiwMB8gq0gsLIJDpjCb9RERAL8uj+kVIbaIsimOBvjixCe2HyOBWxB1gSmWShYMAn4v+0yQIRGTEDl5++WWogUAQZ8GOHTuEC/oL1tbWXI4Z+c84ovY86BF939uXGAI2MduS1OkPvnnzpiBfY0tDRGIgYUjnHGOUpJ30t6XFW9p7TTPxNgSkH8GeArDAHgRQwJJssTcWoNUBAjfr9owjWn8i+Uim6YBuJNSTYtTVJCR/+qd/+n/+z/+R5v/DP/zDP/7jP96yZYt4wV/91V/p2Uh/sj2S5sbhqGKaXeHwJLhm0wBrSB2CSGPaOF8QtEpPh1EAENEGQAwXcH86X5CexEGQ4RiwAI6ApaBP2AG5W2IBxBQFBGIHOkv2kQbJrUgYTTrZDrzPb5Tf//YlhgC31gWQan9+fl4DSONA2oAUHWfRoI0JO1m3Z7pO2tgljScFIDNeTQQAgnQQ2KeV7gb8Z64RmIKHhLhGoAvvWe3jzEdI8jktRXb76xYU4TjSTWqQ8v/zP//zb37zm3/2Z38m/S868PWvf/3v//7v1T+zs7NHu4LlCUkIZL5+RgFsNJn+ECjVVyx/pD1NAC5uE8A+DtdHJr+IfwRbgO4q9IqO5Xa2uQAI4MCRHW3YTIAUHDhwgAiCDASxA50u+Lt69arTQ29PSCh+CAFf3GYguH79+vnz5yU5JJbrXydL30xSA8UzUghrMbJT7DP77eiwpcfbhrEjWIkCxU2YLMDmgP0CiD302xDgkuHFKOCnI102Ma9wdJiuR2aBDsBjjwxoj6Dwa1/72h/90R994xvf+JM/+ZO/+Iu/+Pa3vy27QCxAvSQpNSQVCLCu5hYoZySQd7EHhAwonQXnLwWIbV+U5Aj4i+UfcMSUgGXk9EpTrTLnMh0xAAGgYN8BjIBQAr7DF154QVxApEDsQKcLBKU5MAF+z6R9tH05IGDzsE3qf0G4rDtGPC7iFH6PHtv8qNAjfX6ujVtrJH9NLMixyzA9NGwmxsVHaMUFENgMIYEHX7oLb7csoNTkty5FZogRZojRjkM9pF5fJsC7XZ3Cp59++oknnhAN1udTTz0l23jr1q3btm3TU+maycZtCNAVviA3he0T+ISZk/N/tJun4FrjWT7YiwhkQlE6OOH/drgmsDqtIHmW+VQBBbtgTROI1Np9WIIIAgKyjLShc5lrcOtWLU84On/sS40UX1AIuBVTO8pOtjOfz56bS5cuaXixTBUWILQfvdRO0fMQtBcq83NoiQKb2AXFHEjvYBmv6R30kEV48A5iMzMvMNNm3Cz/bbzgSJ8vgBfNT649Gvca6zpGwiCB/+EPf/j973//B117/PHH9bllyxahAy56GwL2KXBfw+LRfqqvxczeTcz+pP2t/UKPOdkRuAGz0ttaOtMJiznbuqVaIIJtLvM+gMDJGqAA8zs0YMgsEAqIEehT27rvxsaGEwqzNkmOzIcQcL+ae5bUPSCZnzKrT9uk9GpcapTj+LXwe1Kdw3s2nm1/JnkuENCygIxdpV8gLYJ21BYfoVlA6zXEKJCweW2PZP5eh8NPiLL1JGIfiaTxMKTlMOL1nJJzkV6S5yhw8swzz2zfvl1Dn1WMMv9vNDR4pE9Gcr4gHgdgIp8nA/4FoYAMlL+DHfCpzCx0Xka2nLlQnC9O6Ej3oRsogOMAT0GxDpjiScFC9RJ5BFItjhrkyDQufKnbFw4CElCTZZmGeTIPdTtYlkdiv3//fpE6/aMuzplO/sPDaXk2m09MbpPkP1HAfsFRCrAJBKT8QwdMDXCqO3+OSgFM73EiTaJACR96iQHn3vOr8w6O9ROQne1XZh/BINpOS9yBdNiAPxXrnaTwH4u5hu4f/yMIv+MCwEp6VTM1K42s9tekA2/1tdjSzrIHER+BMzgFiNgFQgGmdWIaCAsOdI11H/RsMjBJIjARKAThS9q+uBAwyeZH7a+urmrw6W+T5ab/SWitbcJCxc9/uJnZmoT/5KdoiQiZxJpEwCygHaY5Ou3WTr9Atjf6+f9O2gcFXCAkFawfLxMKDARePsg1Rc6dO0fBf1cTd6VQ1wLnXrmIkKuSuEJJolKuL2ZvpWmIYweZTQSaGDKYIDhq/7dBh3S4trmb7c5DkTedEYRf9o3ZHHABcqhJMRIcUPoBFHjuuecOHjyoq4lveh1XMk1v3fpyly38wkFA22zwq9+p0ql/QmhNypf+GP1hTNolsb+o/ZbkO2cmnd4pQqWlsKX8Z4xg1BZo4wIw55xrUBKH3ugn+XGFw/10WkqA5JJeWNftM7PHfnif4iU9LP8ggvdTYiQXDmLDSwYZU3INIqOGE/7t7Te/sOfFUQ+erZB/XtlMIeOsh8ZasQ7c55b83DAxdNjSKUb2DjDpW8MJUkBJCJyFGmy7d++WaUBglVJlOT5LuvGXqD1ICBhV8v7JG3Ct9fV1DR39YVL7VOb78Y9/LJxG/vXn4VHDNGXwHRlOv0v/9qk7aYUL2C9YLIIc8YXNllbcV4xIOwgdsHCoDzrgQkBW4GdjOdBUxVawnGWhtTB7lTEkPNcU85Jh+ZXahIlBeaQh4PSw+oB76XgsfJr4ZY5ggXektjCC4hpooSE1f9lu/QXG3PQR/m/fcBBQvBwHAZ5CYofPdU0/qW9lhzqPMMMED0ie7rJ94SAgMRXhv3LlikRLSAwME7YRQ9N/A3Mj9vtml6BOQ/hpKcap8IvabMU+7d5J3oHjw4n3JYV+VFPZXmVcOu/VVsBbUZ/DjnFH2lDsrv+fCwFaGnEEOKyQpkSh+qnM81K5GGHeJY9JmmDEcVKDTRLE3guTsZqg0wrKhIt3htOTElKzDxMCknYVD2JCQKEDb0eigTMIMCTtI3QxKGcQMA3R1UoEEHovr2jyEAI+bcueKvmYt/q5WcT8rl+/rr9q165dTz/99M6dO4XBFOTW/+FSPJ57dygK7DisfWoYTp8UXdvkmNYjYOXvPBmjQMkafjdaCwcekdgCZbzaLe+kA8L+RA0tvbm8X9HkydLbdUfLYXPDVsBltl8vbC5WJbV3oF1B2J4IrAxKEqbwF19jybNMd4Bhotj/rUWwiXVQ+hxX0dvDdCOnFdpB0M4+okKBjAJmH6oJC3QY5YkYw/YLWJ95utEXEyAeMAu43XUZOKpt+lFf19bWNCwOHDiwbds2pnmi/IXEln+M/99ERSoPrGPNxLsi2965CRHYxBBId+CxJme+QECZR5D2Qg7rVgGW2Hha1Gb41Av2ml9uluRc3q+VZ7sD3RJQCkwkoGCDTDXNJMUrkWGzCBdO9jOO7J3l/9ok2zo5QhH1RIf8WgT+ULhm3x7GF0cjtbYOMsUYFPCMI88+FBEgpUq4oJdixpHH80cfffT++++XVKIHKG6T2oOEAGt++utWH+fT+BbiSvKt/NXj6nftZOVZnH/Yz7acrTZNAUrMrJX5Ufn/NPr/WDOtNRMEcijnpAMO4CKH+1n9Hr7v9dU13h1WFi64YNw5GWWCvYCnq/cnIpQlA712aK4gWNhEQZDi/JuNVcb91WKfqwboJzR/m09xNGYBlK4rqPduP1Og9Qim2I96CltE4BQ7ZUbjtb8Zln7xrGTnFBI1pHjZs33Tfr3sjRs3HCnEh41i+8IGDh5wRMCQqa754IMPNJIEtzt27GAdLhn/6uKXukYdXhfzsv889X/J7Xd2fcv5W/6fwt9mB5QcQW8c7Wvdjcq/hTZjByf62TuZU5jE+HDTMkXH9z0eJUYg3gghCw25eSlBrzLs9QL56qWKc6Fxw0ouW57QYDRhuVEvGQL66Bi8g6e6fIR87BYuW/kvFCBxIf2shyKOUJh/ehlamyI9C7Q3hxOQsjlkkPOOnEdASQLxUw1UkQJxVQGHegD974LFaR08WIlr2wM2BDwrS8pfI0Pk6sknnxS5Yh0u1uFQF6ujWXbeFTtzpt07kRvvZglx5LzlApM8gi0FKO7ATBM+GlWuCvlvIeBY1NvOs3yp48PiebxX4kJiXCIdpgHufUTXi/nkiqCGhlw7pKwUABygz3NPLl6cqw+w7eQChB/O73Bs+XcS7EbdAekjTCdrinT2cwsc+asPSMMhPQXplCmtpBgz4yhrE0ANNETJLxYd0Ibusr6+njmFt4cZ7l+c9iDdgbe6xH51ysrKConrUv64/YUFYlmSfwEtFXhJ6vREcev/d/pskyJmFvsTzTSbTVIANnEKGgLKOM7st6LVi9PrWEzgPzqcaOC0Bd/oaMyfa0EnAxN57qlIDbJLHxvBSw97LRCvKeL1RcoqQ6XlAiQsHISpD0FwXsCpviL40Zh5caxpLSi4x1oG5K8JnUdislbriCmkrMh/60RsQ7b+an0DTORkZGMBcCB1deDAARaVEijoT5FuuzWcVrBJLPyBtM8JAjLmBy7CkViNWwIv+ZflL7OfVD80PzY/5X08z9f+v2Ihp/CXFIDTfdZaFqschYDW/9fqf8vhJ0LA4WGCbQpDUebpp3RebSEyfgDezpJfHt4vm1N0ceClb89egPQCeqGRYjUUZyFXSHegOzbbyeFcBucLZIdkbxzp52u3sp0uXveD4e9Yk69d/IujFCC9A+k1LO3tqIBcggie4uUZBwIClzbGNBBBUI/JLrjVTDr8ykGAzSFQ4MMPP7xx44aGzs6dOyX8sv+l/EX+MfsJyWYN75xmjx2YbjPrxrT/adaKSfg9LlN+TkbiQOrkEzHRZXSopbIyOqQ6ShPg6HBW//G+gmhhAXkA2xahNtPRb+SXchLxqaj/c6ovTGzHfpmDYLyYblomApcpwLRE2NN9jmDKqv8Xb7fUoPRMtjTlTg6ztn1Wa1y0vtWMOBxq0grMCDKbsw0xlGjir/vS8pgJAgISitSEAsICnbK6umq/oE1gbz9AOLj3EDDpNVi/AfmX8ld36M9jvhr1m8jBkvJnnq8L4GfanP+Vd4ZZwKkTTpyoRfhOR7ZcioSZc35Nzs/GiWFSYGvNpgvAGsxjMRV+ynZCjI9JST4VdXXKe6VtYmGweBSrpxgIrttRWpHtUcXuA0wxPFvBfTvJjZJfTzbZ2SfC8+oDymtO8tH4FokCtAIBbsV3kL7G3Bj1NRbbIXM9M4jAqkc4C6XeSCi8du2ai1m6Pdio4efHAly9mzCJ/jAp/x/96Ecy/vfu3YtnVd3khF/1IzE/6FZmzrzTl6ktwl/GkFlAocqt2G8yHFP9FgM+W8sLDg+nJ1nIi81SrPrWImitG/OUZAcn+xIdftMEPvMCH5PixItbtluFfzpqE4zmI1vzp4WSGJcMK6KeY5EAACAASURBVJE3/448srzLyaZl5+T/fmwYemidC4aGdDqmE7G0d5qWPKJkGWQo0VEDJxFoQ8eIDrCoSS5g+5WAgNt9CFD8X132zDPPPPXUU9L/kn/Z/xRvoLCva/sh+Z7+mf9BCliOgGLkezC1XoAWAnJnKpZPhIDWOkiD1sKf2yfCW1FUX8GjQkOO99W18msrNq1uT0m2jdDShNTz7bl5/XzOlNVWk5+IGiSlnR5z05zpZkmXQoPlaRMEE0BPNOlbrb2WQYTCAjYR+IIRxa1gx2HOR8QoYPlZlkIVHZC200uJDuALJynmAc4y+vwgAINH+l//qDoC+cdxSval3X6O+WUuhz1//jtb8pwC71FVRnM7mFoK0Arn8cm+QI+tIvx5SjoCRrnu8X4dwfSu5QN7xJdny4uM6v+U+dN9MZ9cxqfgRanzVyqRFITlp2QTp7vSQCd6l4TvMsogJt2r7J+EOynwydqK1yZRoPUIfCIEtL7eFgUOdTMUi1+AVSogBQQLCHKJEezatUts99y5c7nGWSYOfZ5wcB8hoHg4bnXJP/Pz8zKN1AVS/trAfapPwn6Wf6v9jO6kaW2CXWSpjOmiG1uVUhChWNdlYG3O//PZjozVI5pkqpyMzIWUkCJvqWlTzFLsnaJ/ZuioKwKGL8Bfs388p6itUHAyDP7EC4v9qbFpQnYcTPW1TLi+dxbXQ0LAaLjhVNgFo/9U+YNGLbX3mikJRe1ncGcTA6HNU8wUgze7dZygtxRxBwLECMgj0gGXLl0yHfg9gYCU/Cyuoq96W3XBzp076QUSfm35O+E/Hf6HDw8qTBban8y/FRjr0laKWn1ysvFIpXo5NozMj0p+kk/vPB5usCSxo+KdT5uPbYzw8xsyUpJdLKidQUzWUJJtC3zC4umgCW3Mr+1eo8nphuSX472dFywQkAiVraBhgqDbsQi1HB1Wczg8DM36H3xvmItd2H4mF7To8E4TXHyrqWIGL8CkZd4R6yCyLDJ2gWRBX9UP169fz8WLPk84uF8soAABFEAd9/jjj+vNRYqY6oPnn9m+b8Qyfu+Ew9+y1FLoHGQ5HEf12+g4Hh2+xQpIfV64wOGYLHgkIlIZAhi184sBnzrTr5MS64OLJZ87z5wZWOxnGvdeXu30kB1kp1lvtwZ5kf9J5np55jP9wiEp7adj0cT8qYBC6YH8mlzAeH1sQtJR20rS0eGYvJxA8G7M1GyVfyv/3n4zqqp7BXovcJQrnckufqtb+zhd5reGE+dvN8nF98qDeF9YgDeSBayvr4v8P/bYY+L/6gXMfpx/eP5d7+Wd4fK1R2Lyv31+ORbRk6fDsVQU1KiQ5PAqVKIwzEnjKUU93f4mBclWWs7fglE+oePzKRKWSV45hTl1eKtIi7imDJ8ZtrzdqDYu4FWQ9GRkJeQflLdrH3IUAspfc3LYrP+LFdBCwNEmgpuaPylAawI4gph7iiFQIKDECLIqTM4ycNliph5TfUBvevXqVQqT3W7WyLxPXOA+QkDWURC86d969NFHt27dKuOfCr8u0qAOct+9G2vjmNEl5Us/k9XmKCsuEJC6pejYov89sEo8r2h7c5Pi7S/6v5j9FqECAafCETDVpfe29fmKeOTxp/rFiFOqrczL9F7/hOFQOqcV/lbbJ2DlKxiJsvPzXyh/x1TQjTYTKcEx2dPJYchmUtuEBZSggCcdjKJAaxq0KNC2t6JyaVunjLLFLklEKuHu3bulGqlcnkTgvtoC99EdmHnRH374oST/29/+9o4dO4R2pP159oWrfTrV79gwMS5lKSmlFUvLUa21RiHAwzf1zOkwsz3IWpeetcqxiBe23ooCW0X42S4MJd/L6wgUSUvhScFO7uBLZSJg4RQp3r6O8SLdgSmWrawWFCh0xhBQTB5jROILrXVDJGQXFDjehABazV/cN6Ou3E3c/iWnKKlEcQq0qUS4Bg0BbUkSL3bo9U6ffPJJgYIos7Tmx31zMZL7Uar4PkKAKYDeYXl5+fHHH//ud7+7a9cuvTZ5VF7V81DM9isQ0NrSKTaM8qJbcqSeGTL/Iv9Fp52OtPZ0ByQGnWiq4qUXOv1/eal0BBTcsRD6mXkwCwZwkDV/rLqLwjzTJ/+m5qe8T6r0th+mgpn7xDYucDqcheWChQsUmmYxTkOg0JM8vn3IqaB1m6NAgYAjMd2gAEHrFyghQ0PA4WEC6OGx/IJDw+IFdgpkgMCzCdwoT4aD0IUJWeJJ70vpgVsxv/B+TDS8vyyAdICbN2/qbb///e8LBUR1RH6AACL/OP8Ox5TyY5E54zaqaiweHlU5aDxiWhRo5X+qj3udGOa0pF8wmWeSlKQqrao/OXRbZit61XV4UYYJAaX+l39KibIAGyzSmsjTU7Gf7hf89R1TOJM+pDb2X5A63L3aii5g7VvnRr5OIk75y/z/pj+iYMHxJnw76g4oIu1tRwpazZ/QUH61UeCN4hf0jCMYAcFv1yymJBGlisUFBASyCKQpRQd0rujArb6a3u2xWYafXU7v4xwBNvT0Fy9eFLb98Ic/fPrpp/Vuek+9uat9vdun+h2PVLyTQ/958smTw5hzys/UpqnvBR18wdPDhJliF5wcBguTmKT+GXX7t68w1RvtOayLBk5eUOCgKEmflfN8ZiY03+tsNIOFi4JZaBMFpodtami55M72fylvNzNMN2gJSGuznBmmeJ1u3DeFDozS/tJaCX+vTzlvvQbpO2gh4L1hQNHZAekabGMEOd3Yxctf7poERPayjIJnnnlGx1+7ds3adHSu4WcU2HsPAX5KXBoyafTHMB1g27ZtTAeU/aN3o7+O9smz1vZFbDwI0rQ+M3QylZE0qXnYzTRuNstbQZDWk5etcISTwySlSdDTjn6P8iLJ+VI+q4hfyxFm+lrdre0wNaT6qecLWGwCH6X3pockwn/BKLPIaxY4KLiW/2b77qd7q62EA4pRkGLf7imRgtZr2JoJoz6FFiDenbDSbClVCBAU18CLL75I6REBwfbt2/VqXrykZBDdk3bvIQAXgMObV65cEfOXCUAtMNEBVv4S/qlfbPZb7IsycTvVLVBzPJavMkaU4dXOfm01WBlYtJY1nB6Gu1vdXuCgUBhfLe9SnqTYBRYbH1MePr+mJBcgKCbAqOZP5e8ObNEkQYGzSteltLevyf5ywYI+eWLBTa6Q/8jmBK0EBdIjmAJfQCF3jrKAIvmt3yF9hGy8M2EOcq5oUBYyoOIA3sF9+/aROyR5WVhYyHkEX3QWQAOuBARzc3PUAty6dausAL0YM4L1quoC/qeTXXl8hHCmT2Kb6m1gfjrRrZANWbAEWgW1g7tAwKTh2465qaFlm0CQAt+a+qf6uW6nhuGJhIDUcu3Qnw5K32rjhICU6izvW8TeZ830i4iUsp9tXeAinKMtO2d6enrzgxNZ2v3lmLO9L/PM0ONwpgkKprMmWxsjGFXpo57CUZpQDh7lEUkHimmQcUebA6PeAUMADkJSiSUse/bskbwwreh24w747KJ6XyDAC61dv35d9EYUgFrgVAT0KiBiQUf69TOpRTPV55zjo8oBqsPwGljkpnoa7MNaOEh152NKK8LpryYak8z7pAajEHBqGJIs6nGSpqX5xQv3nhrazK3otodNj/GFlj60iNDC5XRDXqaGvoC0C9q+PTN0FiQozDRUZSq8uXlTg3UBZXOxo8Mc7UkevpYajEr44eHsjxZZUv7z4LQRMnzoFFh7BzJloCQOySLQp4wC7U9b4B6aA/cFAm71U4PPnTu3e/duQYBMAFEAyoEj/yQIql+OdVXxz/ZlrTzazvarZbBfx2BrnehKZU31Qe8ycFPaaWVdjekxXloQIVlAevhHzQQzhUlejKL5J0nj9FDJl0LdZ8f4+cyQwCcKtChzNoKFLeiUByvHFPyaCru97cOZ0PlnhgVFCnczyox21NTQO1B4QcJ0EoQTw5IBKa6jJn22Vv6PNotHtlxgdOfhriTB4WGxQ1pOScxZxp5iLEZAsJBJtJIXMQKJj8ZDKTFyT6T1vkQEiGG8//77ej2ZAE8++aRsAVEAERu9DLODgAC9/JEuFqD/kurUHkOljr0OAE05eBQCWkSYmWDcjgp/aq3W+EypLuPP+jBPL9cssjo7bGcbKj66kkfL+d0JeXyr4WeGhkP5ddJDtgek3E6FM7J08tkhj2hNLYPF9NCsaDvcB5+JmRF5cAsB6Rc4EjO7J3n7Wg/fJNkexYKjw6pwiQKjlCGTDg5F/eJkBKAAVbNlGhzsmhBhY2PDEGBx+4wCe18g4KNuXRA97oEDB5544gmZAOICXgg0IUDvrH7ByaehSQl6hqkXvU4IUJdhOEz3JsDoAlg5Rluq2Y7RqaGPsCifMi5PhTMyR2S5XXvfs0NifzYYihfqSkFNkR6FgEQTI2ZZXywP9pG+zly31mi+cj6wsSnfpfCCNBAK2RklCJNg162wqtPDqFBi7unw0RR3QJu4PaqrEyBa4S+5xu1P3k4UcGtTFQ5HSpKjBrYIci0DUMAZ9CQOSIJEHD744INb/dS7dBDetcDeL18AjsBt27Y99dRTLAS8b98+kEzc5r+6RkEF9QX9pcFB+VpGM/XqXbJW/zRdpj5lMM3Finpe7o5Ra5Euo9BfbRTkQExEKO1M00YPK0M/taKfLcWyrNuVgjrbr/ybO/PXFhdyCaBCIiahAJ3mF59ubIeEy6LwC8fJ7VEgKJyiRQ1r++RZRexbX0xJ3yrRwU+DApvL/yiaHBsWKbHM58Oke6KAyJFhKDFnHOZKp1QfofSIzAGR6Jdffll/LtGB27drSY67a/drmpCwSi/w+OOPiwLs3buXFUEt/0wTUtMx7/SFAE934QCXr6b0vT4NAdhOQIAGE0vZGAJSDFLNlmFX+O2kkd22SUo+hb+IaKrQmd68Lwv1lhW70vxhQa6ZoV+glfnZCW0SvrRnubtGHztv2l7TkDo7XGi09G128qjkZ3/ayzA9lqzlVjK4j0fhsBTUlrQfi7Iim3D7TPoczQQrMp9R4XR/ZOZSSV6w16BUHPHyx2pCAXKHZERLjiQ1V65cuR3r8X2BIIBHIRxw7do1Sf6WLVu8IiixQC8KSFKU3pM3Vy+QTqNxz6IXXsQGSQAC1EFAwGxUws81sLyo5iiVTV1k1VT0ZAGCwoSnJ9CETYDApwNJPCo/pcBb7E1tyjJerRAWgUw5L6TA8JF7LLcW4/ZqRf+PHuM7GlXbvm1pUZ5ecNadeXY4fSCtg9PD1IBMx0hboHgHR9OHjm3arM9LenibSJ5Y0KLAybHZjUf7GqcluZjEWUwGfXX1MWYTqStu3rzpBJwvHAQQsZDosuiqrAA9tABMHObVrkAwNQKpFCD7B8HWOx/rQwOS/7W1tYsXL7KaFSKdEDDTWQFe3MJeg7l+LS1DQOGxOexSfbWaykCQMjyJ8LfntnTAzSzgbG8IlOX6fECu6lc4wigotCwg/amz3TLExpfyYNyurCNatH2+VN7anTw9TFX0dqvq838pqDoTk6DMGs40YUV7B0pSVsnUavOFNtf5o+1ETB5NIU9KklFhDm6xwPuPxzz0I5G85ISid/sp89pD9SE1yYs0qKRJn5cuXULoPnuA8J5BQJolH3/8sWSbSUEsECT9L/mXFcCi4EDA66+/DgRg/6gLMOAFH6urq0IBYQFEwBAgpFC3IkheGDPJAkQghaQMdI/mVF9lZ47OFgIs/+XKc8Po46jAWNIs0kV6c49hzko7qcGoNJZWRDoZk08sv+bx+ah+/nJ9ICCpxGzPLBICvGcm5nQVJwvdezbiozMxG3o6HLdn+tIDrc5v04SK0T7qC2iN/zzrRL+m02gO6KkIDGeq2MmmPEySlPIkNk+cucRXYYHrDkheIAJ79uzRdcgU+sJBwO/6GmF60CeffFImgCEA+adYkCdLSvIl1SRI6W2neyN/ZWVlY2PDKDDXRQTASGIH87GCPevk4TVAbMpQng2OOj10ViUEjOqumaallmvJbRGblM92kW8fnFJXVvtO0u4jE3fO9ok9Pnd+cuMueXoR+Dy95RSJbrnH3ZhQODdXIzX+L1L/p/xnhxfjq0DG6WHKZqrfAgrHm6zhwghM7BMCEkpONRliSTcyT4FfecJEB+9pkxfKIx3pV44/3S3K/k6/CDIQIAtaorRv3z5xalYrfMCGQHFF2AoQh9+5c6cMAUGAHldWAF5AQ4CjHUAAJEdQR3aAmkT6ypUrQgEgQONGneKg4GwXMiRkgONADbKQQphaqzDSFNocwa1Ul68tU/BhZ4cefsuz1+cudn7qZLf2yCJCo0LlR/JN54fGRV4tu6VQEh/JkyTcJKlJCtCSnXzUSRHKRIqzvS/AhkAr/yVGcGaYu2n5P90vZ36s988XmlBUfTHsC2QUFlAikVPDclUlZpwGi20c40LGCI7GIrHsOdGFvdX01SEDL1UkOYII6Pow7s/oEbwHLACxT0TQO3iZQCoF2wVImXBeRp94AcQCyBFQhzL4JM+ydiACknONEv3kiMBsl0HglbNFGUCKJMxzjUdwpjFZU3elICVAFPkv43g2iHGrbA0BhZikvi0yWWS1ZRMLsbBnkbREnPzqZULL8/CTj2/JCL+2AJHg1QJEC0Yp6ptHT1oWZggYzdE60+RonmzWMikEoTUNWv6f0HC8Wc7wZDdRdXpY5sSiniBVEkb8Iif7lZcx+NNs0cZUnyYPBDiJiACh5IiUYW3cuHEj5e6BQcBv++LHdgRI4Lds2SKgIh3otddeAwKk6lkmgOQHz5cg8qmd6gUNHS9lL/kXF9DGbB8RUEeo++a7rAFWyGbR6xYCLPlWMtY80zGzoEh+2Z4dmrV5ymxjfhf5b3fOhjmdspEyls6/FmJaamDEpNPsFkn5zyXAzZ4y7NqaTr5s/lRMmAJSyY8SnubCEHNkZLbPSmpbQrbb1Fgl2KlI3ErvoKUdXlAccq2p3wb80xxo5R8ImIo00Jnwd6Sr4nRfyqlQmzNdcRq8fU6NAwj0EyP2RDcvznOQcZkxuVjSxGIcur59AQ+YBSD/pC5Kde/du5eMIFYKlxWQEOD8J8+XAtv0eup6jQANUIg95oDMCo08dQ2+AG1oLEIBLkTTHgtP2qip0mkzMSUmD0jTIBlEGdYpnEXvpVTMNc6z2VD1iGWKPdJVMh1a3VtYhn9Ft9tFalBIJe8jc+Hw1jbRtqXUAs9Zo7ZMcpnWXmhVfWs7tDJfyNdMhAlyO9mB7XBT7oQAjjk5XPKwcIH0C5g7GAVKJMIS3jo78xmmhhUcPSb1q25EOsCxLhZ2opv8wjH6eqRfENEoIEnx4sWvvPKKbG1J1uXLlx8kBKQL0J4JvfP27dtJCpb8kwvgxQJhAV4j3IbAz3/+c8Gb/gO9v4aaFLtEWmNLRGB1dVV71NF0ijbgCEDA+b6RSmjZsMiNKvwWAooWaodpGdZFtmlpCyw0Nn+KK8Jpvm19a2H2r+eipRLehPYj/PaS+nTLsFEgVXor0nNhy/ghS0tgKpSn7a4i8KM8ovXXeL+/pjo9NVyhwI5DGwhprp+MPIK2pebPdqqZ8Xl6OGEkw5wFAs7Eau4eVBymGwEBuulUX8FNvaFPgcJ7/bL0zCwigxAiIAgQsxYRkIjpag/eEKAugFFA8vzkk09iBTAvGC+g64XnfGneTbhAvoDeXN2kIYVU6/U0iMUC2MZfqgPIF8ALYAhwBkGBgElk1Uo+ITw5/1x4y0bbfNOKpW07HH7uVvRw2uQWNjenSxYQSSPf0pun+76FIBQISOhJe6FcsHVqLoQHoRzZdlrbn+3fYYU/06QSpPycHVZDTyEs+1tPwalmfnGG7k8OE43sULRvv5V87lieLa2S02NT2jhL14TqH+9SXdToSZ3iSOHhboGTLDokCZKksBLfjh07JETMGniQLOBWX+FUn9euXZPMb9myZf/+/QcPHtRTigKg/2leL9iFQ/V6Aja9kpgChoDNVFQToq7ewZcz18ULCAQIHUwEgADzZ5PS+WHganZo3p8NF0Ci9dk+k68Q3dkwcUtrJWSS/hw9kpYwAdkxmecuKc8JEK1yPtdnTCQk5YMVwGqBxjiSB+ctEvvygIUIcxgmOGwuXAMFC/J/yRiB04QM2d6ZOUVW/qNu+USEtO0zyH+6K053bJgUnK6E9PNlCsPZ3v2JDk9LxETAGDHXOUFw+CHhuiO+KtBcZzFxRudiCGSCgCCA0sMSrueee07iJtP7AbMANRY/0UNIFKX8n376aSYFAQFYAUx7YOaDqyZAcvQTiUN6VSBgIZL8tM0o5C+Z77IG8AIKAtjGEMCInZ4elLjz0JlE71Pt+MSpvtJOMoKU9pYCFGEoIrEQhL+IYspqtoQALn6uc4LQOD63z4Xzz3d0njXXKYzALOBcuAkXFqpnYaHxL+bTlnfPI88FKM8NrQP/U+7bs+ERmJ6Qi5nQ0ELAdOQOGAtKNCEhoLUO/NPx4fyfk1GoxoYAj3Qmqjx7gGkPPv8T3fy3An8mC+T/2guu7tJPurhwAdcgRMBZg9gCgoCfdVUGWZtPV2Z6PmL4uzssNP5ZIcC+ACqFqqd27twpfiJD5cUXX8QRgCFgLwDzH4jw8W7CBVZcFATM9REBbPvUxvS7pB3lDwQg/zmhKNVFoZfFyVTQodCBuYiNF/4/SeGXNmo/L441C2oKmGXJz2DNzPFQIeDPWRJ0RfmaUr0ULR8vEac8XvvwCWStZZQ4OBfO0dZBMN9kMbQGWvv32Tpo7YXEiBI4oLWsPnHh5DDtN30BJSQxFROZpqJ0Cg8Mz4dEwHdsnPKCCQGSczpfXaH9OoWdp7p6mRABVyWW+pRBTenxF7omsPDSQ0DAHTGCexYR0EPcvHlT+nzbtm179uxxRqBjASwcCgXQ+6D/gQDt12FCASDAY1djyN0622UHqWcl+aurq1gBhgCrylQyZ3svfXqhUtuPkgIP04U+KjYf0bti8Husm5YXSU6BsbQjaW3L4xf6/JxUrWb+Kcl5o5TqtAUWewehjabFxhlhfmEsyMvmvQqoFeNiEj9Kyac/y0/z/eRI/1+mYOXfKcie7sOZYUJBCwfFpC/pBsnezwxXqUpbIHkHR07HZFATSUcQz8aUsNko0yCaQKoL/4teH/ogGZHw68QTXR00xMQlhiRlrFAqCiAioK8sTGx5/FwhIIMCskn0TIIAPdaPf/xjSoMIrpgOAARQHYW1Q6i1qm3tAdVaFpDeIEMAk4hsBXi8zo9NiSv+J0bJ6Hgqqj5Zbo7RVtu32nUUC/KnRIGWBfjWxVxPefORBVY2h4BkB4Csf22BKR/bhCIRrfCIxbAaWtLU/hcG1kTY9n+ZbQIKhbLNNNmErY/ArUh+axcUsS+HldBA8VZYyHmwDPXN9hncaQdJ2kl4pYfnu6pZsADCBKQPZFkB0gSlUyUvr732GraAZAEIsDB+rhCgT8oE6e/XA1Ep3BlBjgWW5cPfi8XbtfO/unqJelssf4aXttPcUleqH63/V/rm2UR6AMywmb6gSCqTHDE5jDzCirT77yzkdlT+W2kpbWnonC/CNgoBLY8wJCUE6Fz3Qyvk7FkcOvaWuswL+i2dCy1mjb5F/tSeZQDyo54LWyaZ/8zQT17+hdnebPYx/tdSMYyiQGsatADRWgFlOoDJwlRTufBMJP/5LoYAP2TaAgkBs70HirR3fZ7rQ7Znu6QASYRkAWuihQBRaeYOS8XKENi3b5/OAgLuYsrAvWEBt7piYdLhO3bs2LVrF7ODXRrAEEAUEAjwCuK4OoE0XWEhct3okZmufDBzJ9RT6QtUk1GgbQuYepnep8exyszZ2pFhs39u6LsuQ7YI/yT1XgTmfLQiLUt9agM/WTjTrMjrtObDcvj58jrlFiZKzp5Inb8Yedb5U95rOVIwyv58hiQOBQtaf0ESgUK+ygFJFpJBtG2maZxbAOLMMHs/QeFkM//XJH+6KXNqM8HDKQ2B6T5nAQgwOhj+OJ64oIZ3qhztlJxLNLiLruASQ0AAbnVKjL788ssSN/2EGr6LHIHPCgG/+93/WwVZ1ogU/lNPPbV7925mMlEdiNnBQIC9gAkBasIFIEDbcxH3Mgugp/CaSOaRfJqMAiDA8pnqRZ9nYuVMW4ypOgoXSPN7fhg2T9o8SfgtrpaWst9C69RmK2RLvmWyCFueaM2/HP6/xUg64FJJDXxxy22iw3LvBciv3JF7TUKiTXBqsQ9PpFNgto+fzzaRgvmxrIFiNbSmhDlC8QskffBP6RGcioQC2ulhKtGpPsWwZf5nuiTf0/2C7oaA+T66AW893i2TM9enWpzrvTwzfRYgeQH5LoYAHkO/khSH+iQuKCJATUFJzfPPPy8pu3r1qm2BOxLhu4eAkhoosRQnsSNAT8bUQNL+mBFAIhDCb/nH2yGYAALm+wn/9JQBmGQJDSkcAYX6JvO0YT8zLIyZdCCHxUyU9DJOz0ds3M/jYW1RWW4CcsW6LtJL1qNlxlwm+UIGO+zpcDs/bOkKMQgmO+BqPGoyhaVg8in2vmYr24VrFDfEqIPAjCDPKj1cMCK5QHIx2wU2zYpTYHZySzSZ6dMKUqUnUyh5BKeHtaGT/zs0MN1HNxOndMHT3YRfIMDm27lhSRvG/3TvotZP+AK0EzwiKJC1hj3LRkpXRGD//v1SuuphBwXuiAh8VghgQ0RAL+ZK4ekIEF0RBBAI9OJKOAKZAoUtQHaQhPxcnzyLYe9/ArDQT5cuXUp3YIEAo4bJ2CTPjcfE3LAVP79V2bk+CJ/0uOj21PmtGseLYdGl8TW1espt25ab5qulxbEU06gs0inAPn2x8QX6yCLzBdGW+qik/4WkSIYA36V4CmejilFBgbJ/bujKnSTtSRDScVBOnJkQOJyKzIIUeP+aFoS5w1QsA1XMGYgABuxc72Be7JzWabwAAbrIbO8ZBQIkFGf6pTSLO4By4xIZCZekhmpiegY7LBd2IgAAIABJREFUAj4nQ8B3EvB8+OGHkt6tW7dSJvTgwYOvvvoq6QCuDuQ8Z9dF8mrt2hCkCc+0zcBiJM11lULgY/pJfaGfDAF8mgmf66e18q+YApgW5r/ruEAhn3PDuTRW+2mcL4V5bMEruOASBkkZUrf7XC5Y9oy2RIEihBf7ZmksfMEHL4W5USAgAcVvkUzH9209GstDp8DiMEyQXzeX9oV+6lTbJgn8qIuhGHrpHeCnPLL1F07HxN5W/081+cj2QOdLATdkHM32FS4Wu6oWCWSGAL/+qW5SLCwgIcAalFJiQIDdATrF2QGfKwu41S8cpufYuXOnHuXAgQNAALGAwgISArJkml5JrEGvkURa3eEpHHhHNCgFAeQFpMDA1fl36biZSAFoDUWPjDQB5obOv9bmL0O/AEFKqQUvj0nISAFb7que5K+mBnmuaULLAgqPGG15bnIK/2rDZBSMjLalH5KFpbnUOlALQUjCdS7inQUgWuyYG2uTfiq2gPl2kovi8CuWQv5aeIE3sC5z8ABb5B3O9hUulvocVj8w3j5dxM5snULKjHMTdEwmCOIOkNZkoZFXXnlF1rfE5/3337+LWYP3AAK0rRd74oknXCmYVcMSAoRbTHi0L5DUACCAHCkdrzekX4BMdZxndKsL1HES/ktdK6wYq8EeHSCgAH+GAIrT2C6AhfD8l7G+1KfNFXp/fjhhMXV1CueFYWNnhjZTk5evo8Qhn6EwhfI8viOe1AIWiRrlRslrCoLk7ZYinLEQ+UtL0ZIFWLzPDVtrFKT8F+/AqPBPohUFDoql4FYEm2av4dTUSOqxj4F4+pkX+xoN6PCZbo0M/riFYdIX1j4YMd/lBeirDQFuB0wYAmABnizAEgMSuitXrnzehoCXNNEzPfbYY/v27TvQNSCAMuG4Az3VAQiwO8BrKmiPDjYELHYVAWEBTpNWNwEB6+vrhVTr+Nl+Apb/D5O66WbCSfEFTIKAlDTG8ajUXZjQUpgtyenLTK2bUx6Kzm/BJe2OwiASKYpgt/kU5/vZloUatHxhtC2PRQfy6/mgaRaMufCN2Uyw5Kes5l/Tin0LIqMYkSq3JQgZa5iJhF+zxdFwgIeZh9yprjTAbNR95qWQcEOAGauPQckztOgcnULiDFjDFXLpITsFJVmkCYoICAV0WevmzwkCqBFy8+ZNWQHbt2+X5Ev+cQeyXhhLIOhBWRdcn7wDiGAIAOH0MvqJ/4b+mu0mCLvQsr7iAhAKpArVODvXpRJP9RWX0mGbbSqmbaYvMJlngYDlSJjlfyoE5PyQh1vsUblFtxemnSo6JTN3tshyPsyH5As5aSqfKjuqVenev9zbI5vIvG/dUqHzkfvgTlse+giW+wkLKf8FAlLbW6vPR472XJjcmzCIhIAkevmrucBsxPOnhvHjdghN9dVKrGkQ1EIEeBiM+bNdFQy6fXFYwQ0IyFfW8aL6GvCbGAJOEBIRkJZ96aWXdu3apQNcxe9zggBQQDIpE2D37t0CAljAiy++iC8QCNBTOvhnQ8DuAEu4KA0Q4CGCNwWOoOPVO8iVWEB6v+xi4R8i6us/LN22M31qsF1HqU/moypx8v9W8xf12IoorNsC3BLv0XZ+GBqYhAh53wIBRoHW0Fjp45Hnw0jh0xlW5V5t+0TNvxSTl9xRixNa6zJo7QLLhm341mVQcGGuSTRobQorfzuGDAoZILSSPx0ThIpT0B4oUGC2n+rKo053Cb/TXZ0bOgejFaqrPZxofqQmtcdam8YaHYCx7PJBGAIUEaKssARQSpTK4rfvhAvcAwjQ+4sCUCYUIiBM+lm3KCpxS23AAuzVxBeQKz3rU4fp3Wb7egGLXaUgHIHwIiBAbWNjw2YtytlWgCHAXzN+awgY5ZMtsVwMp7cF4/zQ8zdJjSerXwmSP0nh55EcXAR41DXwiRDgS0E9ygGW/8y2KM9Z+EWaIaUt9bHDwiZMo0axYxJAFCDw/5UYkfsXIoljbhiin+vXmDHj8FlzUWa2jSwaJjZnlDp+qqsCJFnVTp6ER53pEtuAADrnXDcjGAjQNpiyFFPCmSYkeZnuq6SRGkdYjeQ6ZwfAAgQBe/bskQBev379TnME74E7UA+0bdu2n3RN+p8yAaQGE7cUEEiMqYUEjLFhRwB0gJriM92ygvQUEKC+4GDtQfJlCDAuoQDzfZmAM/1UgjN9DcaSy1H+6fmmnRsGsSBvbWsluSjwFPsiSM5rLBLuw/wrGxZIs54i+bY4WnApl20vngBRMMv784FHzYRkMWllFNuhNR+WIudilAK0LU0A9uQpCQ3W/3NDNyE/leCiQwMOFthT6J+SV2ak+WyfhwbnP90VwvfbzXa5LTj8Acelzs8936fAARBmAYQJmSycLIAJtV5rDHeAPYKeOKz/6E6XG/6s7sAPPvjgtdde27lzJ7mKhAOAgP/pGiyAYumuguakIOSfuACsRq8NWEKiyI5kQeGlLjs4BQMIWOimEpTMDXiB535MD9NRc/Sknjk3zP9ZbGLmo5p/lAisBGlP2c7Wym0KJ3UT2wteiESAIswW3ZRh6/mVCAqY/BdRTzQZvUsLNy30XIi05fQLtJaUzQR3+CYtoeFcBBqXhiGJckxyOh/moMCo2rfYW8jPDiugzwyXOUK1eLzp61JfAheCAASc752vJiYadUSvFvqK7NpmETENeLu0yCMGAjI1AHcAdFtCJyKgg1l3+PODAL0nsUCxEUn7wa7paZgjXCAASu9pQvgF7RQUz9GR6sGFLrY83wdIXFZBw4WIAGP3fBQLA4MzTmMnjS20+fAtzzYzAhb6Ar5lmF5oImHLjUO+aG/Lg09E9ghnFixo2X5Of2g1fGr+FjWK0K5F860nEf5Jz9MCQeEFo42/JiGgcAdDwNJYS/HOYzZ3JRQjYhKhSC9jCRPMNm1muOSUfQQOOeUBU91sf41DXXa5L2MDgzAELHUJLyYCZ6NuErfDXibEcLafdAwEIDJqpAaYCFBNcPfu3Tog5wvddwi41a0asmPHDpkirHPy0ksvJQRgCOhTQk79ZqYG49gwBHjWsGwBlwyAXOFB0KtSVkHDbn193RDAYWf7Ii30moM0yD/9OB/1udMR0FLQxajbd6FP6V0OX7cH7nLk/LUindQaAUMUW3adQp5yayCY9PVib96XY3x97/StV4fkPyXfewrNGZV/P3Dh/GkULC9PTJqgpagnRiw3CUiLwykJ6UTI/67ARIsL6UT0f23jIv2LSQcK8y/RQbuZOREiQBRwsU9aNQu40EcEUEKouvRKAAGSBQxYbk2+IL4ALzcMBPzqV79yaFDKWLImYn5/WYCvq9sIb/QQ27dvl5zrgQQBkn/ZAjYEyFvQtiQZnQzJgc9Y/j0XUjhCCtC5fioFjgBDAMN9pZ8ht9BNJZyKitG4bVwQ+lS3VHFB/dbzn0SUgbI4YcZeuu5aB96oMh/l0lbyllj2o65JgrYY89XK3D+t9vZC0fYFCJI45E9cR5BqmEhykW/XQk/pBNs7K2EWXbgwiGKkMjc02NoqV0srbCkyiwwBBoX849q/dbH35vgsi+XCsHx7oQxGgZnhEgbOHXD5AH61F3CmqwJAwi/PBhGwL4BxCwR4ez4mUOIsR4dh2JIvCARgNVN6PyFA0scM3StXrtxR1YA7gIDiaWTVEN14586d0vkyS/QcuAMpGQg/EQRQGphXAsAc3sDDaQeh3kfvZtMIQwAIYKbwSrjW1d12AeQ0bzyIagRj7DqaG0YBF4ZeqDKkcrCmiisW76iqTIVcICAF1S1FKzVtUf7kROUsKaOGr7neNVCgNQoSSnzxPLg880p4It1Swi32JkT2VpRmCFiMkIHthXP92jCWW/6gQruKpWBcTl5Q9hRq4NPnI42vdQmlq9j83IEDWGd6ms/0FUS5FDpJ517onH/odl38Qh+RwYG90FXHZtu8QJdCOzrKSHYgEIBf3CuOkyBAHTFJ4oEDB2SS6473CwJaRFD36ZbPPvusHkJP00IALEAAAQs41a2RkvUCkH9PHKSsAKbUbDfhRyeympo2dDt34vk+HQiZ94oxpFJ5bTZCjC0EpGM5VUcZQPZaba7wNxHd1cY0KEcmEKwOrfdypGRbmGsJXx1S+rxaYsQmD2YSkZfKw4wC6YP019T8CQGj7XzkFBWPgHU1AsM/4j+oEIGlPr8ojYJ0LrYGxXKTnrTU5eGlT9FEYH4sy+BsLGQyO5xubMMTOoBHGc/UdL/mDV/100qfLcI1daReGYN3ts9V03hmgoDrkcACJClkDbMSIYvxEhpE0MS1JXrPP/+8HuM+QgAXxRGo20jedu/eLezBUSEIIC9AbIRYIBFL6oKCZ9qg7AHvkxDAZCF8h3CwqW6upXpEuKCd56JIliEAmc/FYXUL6q7Z41K8gK1F0BJUS36LBUWfp8Ck1K00UYD2FAuttXeq8fTSFbxIOmB8sZ73fYswpzJPxn4xogOrfQp2soNEB39NXDMcXBw6CA2UF4YhwyQLeW6ShYLOC30pxOVhDmKaab5+osByE4xcHk7uXopiBwvDDMU00YtHIHOHHI0ixciaSRtQG07UNh3IUFzsVs3CUzDb5ynC+fGdAQFTXTkjIEAyQm1yQ4DdgZI1VhbQuV5u+N5DABnBuoE2bt68qeeQFfDSSy8Rq9SjFAgQOL366qtUBKOntMFsZzVPHHSyECulCBFwk+Jf1TFiBzpxvsumsCPAEJBrM5NueLqrMjjq4CnpAOfCa70U8epUa8vDEECK5SYt5dAKPBV1yv8ooFiwfUHLoZGiWAG+SwGdAgHF52cI4HZc2cQkic/FcFvmT+f7/OKVya3lBYVM0dXFcEjav9y0pSZG0FoHxXDIA9IreW6YEmLauBB1PnLWWXENZjQa8x5QQGkRMmT0YgjgCAACprsq44xPdB5ajWA2sS2iAPp0jMwsgLigDAHJmliAvt64ceN+QYDnBd3q6gXrxmIBujHWiwRVcEDtYD0Q4UrJv+BAD83L6AVIcuZ9vGoqG7AavR5dScaVvuqtXFPM42Ohq7iM5w/hx7gAfe3UcTpQQoAjQ4vDujeLMUE41VpqsIu9+Z3CbA1cLHwawrnWlznI/SnMq2P+//y1EP62cbVJRKBo8uQpxZooSFTsIL+Fr2PetAkEJAqc76cnXGzWg1qeEEdIa8J+hLTzRz2CSxE4KJw/QWGxaYaA9CXnBNOEADsImSOAoUF8igGGKWEai/o537m3fRfGJyEwuC3OLGKKxMVaXwAKVaInFiBB27dvnz7113z6OsJ3AwE0vae0/a5du3RLYvt6Du2hWIAgQMLM+odqOoCOw6ohO8CS7+wA7WfFAXUfb86UCSAAfL0QawdRXxUKQOkRfdVZzvdy5DbzAjMClBCA5ZnjLGlw4cNJ2otMer9FN6m7xTKRIt3y5Tp5qdaft9a4DCbtSSFPnW/C3wJQ6nn1hs/1Q/oY04rCGor8F2ZuPdyaXYUyrAynM6YFUTh/6yBYGjYbhukLSIxIpFho5hrP9MVpz05Y2owZQboR2ltnne8WCLDxr8bdGWBpbqgxjF1xDMUJBKA1MXUTApgs8LOf/YwcwRdffFEvfl8gIGcHyxbQY+EL1L2d3sdMIWqHUi+A9Q/x88928/+JcJLqRHTQpUS1wdKDrLKGIaAjmW5st+qFPriKf5HlRkk3tBfgbCw+6fytubHUcauLc/1EwDT7iz3fAsHa0GnvVuTQKJA0IYXKYNGq9IIaBQgKEUgbpDx5eZ2EoXJWeg3yBVd7D2LeqOCj78KGZdhCm1iQSh6kaIX8QiwemWeNMoU8K78adxz0TRZwbri2mptTCXP8ODTgyalmBNgCpACYCPDMcFiwjHvxePYgYmggCEQBXPaCvAAJi8Y5AS/7ArysABWECAroUnbblc/PBAG+ym9/+9v3339fD7F//37ZHsT89Fh6Gul/GQKvvPKKIYB8If3ESwIBuDFK7QCCAnYHIL26MlmDOlJfCbSc73yBc93ManUKcxAxk8gFSlPNvtzMwbLXNznhYpTcbalvttXJvr1C7FthaxviZDrQWgd5nfanwhdSw08iC8YauyGK2BsI8k2Na4l9k/on2UG6CdKyKKJrep/QcH4Yi036UCDgwljIttCEwgiWmxqwRf6toj1g7B20R8DeAaOABhiwgicPs59zzQJ0wMU+QMiR2tAnlbLhvyU1qEAAdYQRJelIZI2ggK5AjmBWE70HEMBVIAJXrlxx6VIWBWdug3aKh8ACWFBcHEFf9aAEQp3qiDswq4kyWYDIgn7l/fEdyM4R1FGJdalffQ0IcGahPnGilmhtYQH8E44JZXDI/D+JawJBKsMUyxT+VoZTVxewSNXdqvRJeDHqCCwo4P3FQdg+cMt0yjEtEhWm4K8XeiffxYgmGltX+pBY0eGtri5MPt0HiG5rC1yYELI936ytUiyRfMjiTTg3TC5O17KDArNRa8TJvHj+FrvUVXTSUp8gtNQlQUET6FUHv4gImsl6wivTjZkXQLYLQuFFOg0BUsZStyLm+ioJde2AzV2Dd5MdiCNA2p4CIfB2HksCLwjQc+AL0KOwCjIQoE7RuzEdICHA5QNwdeBEwKvHHCEWJsvqK9AzHeP8IqceECBwNfgzUea56H+3dA4tR1Xc88P8X4voamMRZNB+VG4t1QjeRtdaab/UtHQHXAq/Qyv/PMB6BBe5S7EmyomWHF/Z1KDASur2CxcGMyPK/rT8Ldv+qaXuKeQppYaA9AUsj+VoFgqQjKMofwcU80ZIeIkspIVop0BGB7D8Z/uKtd5mlNKo+THf17bmynid6HYSjTCTUWnof6e3FwhghCcEYAhQnoOggARQnXDr09UU/7QQYApA04PK5KBACPqZ5F8J6otdEwRI/slbEgToGN4fdwATnpkvlOYAycI6WMBB+USyIAgraAP/Cp3LpYgsCgJYtoXoAIs6e33ISRDg/yn/9TLCUstdjNj76mqN0qW2bCl0Ec718COmrI7Kf55SaMLowe1dJrGJ9WEEsb14ufXqcPJyywhKd/nrynCacwpwQkZL2u2XbY18n56MYBQR2nY+HJPm/ItNhmh6B+0/Xuwnp07FCvT2OjPY5qNkOHwWC3SpX/xysQ8QAiVwAUj+yWhcVsMYDzo+QnIHft0v0unUAEGAxEQiKW6uJzQEbN7uJkH4ww8/1P2YF6wmHCIioqfXQxAXlN6W/AsFtOeVV17RJ8uB0SO4A4wCb8USY5gJghIxBZs9zETW1XATYthrA9coJx6Nliwg3QGzzQKBi8NK2Kl2zCpzyF4cpvHndgr/JJW7HikAha4bBazAR8W7KPZC3d1a+S9Y0MJEMXbyMCNCi26twLf9sxazni9GPqIFdVRczw9DMz7d2y0EtBdcjuBCXuHC0LIo0l7iAuWrswZdUGC+X+nEHmj8/0t9dqAhwBc530UE9Tz2Kcx0NbKYI8wMd08W1DBGTGAB+hUWQIodOcKwAImJFLCIgA77lAlCdwAB6H9dV2YGcq5P3Q+7nTCGHkUCLxzSo0BOWCZIIs0UwIWuCgCJgGotEYDwsPoAeX7aw4xDWRmuqWg3qXrBcw3ZAAIgBaeH6z2V0GBxBxYgsPAnBKwOffgpzCk2hcMXgRyl9+X0lHZvX758uYWAcoVRUtDeZW1I+y9GCVPLuX9dHZYtyP2tLbAydEYWjuADtL+YA3mLi8N8BG+sRmAiucPKsPktJrGAld65uBhJRy0o2C/Y+ggxRVEwDCrk37VqSE4/31UHACYIaUEQeEI9w0yUtLc/Gw5LuuFsV3SEnFrorcY2yTKGACYLSdZkCEgABQGSmps3b34aIvCpIAAs+e1vf/tx1/QCYhrS/8wI0HOgbPVkkmoKh+hRJP88FgWFJJ9weOb/OS6I8HuyEKXRJPPUGiKPgBqEwhFtn+kXeMjEaecXUZ5I3cfqA57INR0lg2aHk4XSKMiA08rQC1g0fCtXqTCLNOaRLUUf1c8bY82AYldC0dibiPqk51kbi1wkSJnJX+i9fZPEu7SCC6mEL/bTnAsuXIwg4iiNz1OKzl/pvQyW/5Y4JJtbadwECQHpFzA1OBeTF/AIZNWQVDboG08EstfQ1sRKnxYFXgAE6C3GtinAXLegDpLC2LYv4I1uqW4HBWABEj2Jp7YpIvaJSwzdAQRgAnz00UeStP3797/UNaGABJhnxWIhCqjnkBhjC0h69VVnzfWFADBmRiGAoAAJj3o9ag1RIE1NP53pl4XEU8i5zjUmpuLJwo4R0MstC3ADDpaG63am/Kfxf2nTVnhBEarLXUvOP2oI6BixrXJk4gjXaclF8TJeahjH6NO2BkX+muR5pS891HZO6TSTC1OqIsClY9tWUGClaa1ivzCslT4JkswRLPYp7ekkKq6BDA1A/q2TsrgQ2pvgf6YVQgeW+8xIbeD5YyqRcwHwYTniwBJjGudQA4oLSrgMAb/pCopLamSAo4PFBTQ8UnjvAQsAAgQtUum6watd04ZE1/m8FAJ+pWusIKAHZbLQ2111YHwheg3KIba+ALKjhGrUGsG2x60oKCFx0DVFbUfQEaRPUZIYWwA48OKw07F4Y8sCFofzWBlD7QBdHQvgpZi1kp/ifblpxez3Wf4pz/JdEj745AABR/EsJnwknSkAkVhwsXF5rMY8ojQBWomFSSUEFD7l7VbmR62GIsn5a8b8Lgw9OH7aBCae/EI4F8xuMnco5X8+5pLZEHCOmWl/knb8UDgFl/uSwbYRSA3mTXVZGCtuf/v/0HN2EyLzGttcVsdrtEsvMuaxqakaIKlhsoCUtK6f8ntvIEB2xVKXF8xtIAISXZ51qlv/1wYJ5cMpcqzDxFuIi9oWIDsQGTYKwOqlzwUcGP/UVIYX6JNcQN7cHlGwRntIomadAqID5gIu7TAT64i1vgDkv2Sb5BhqhVytdelbJlN6W6qPBFr2LjVWQDoCEgLyUoVNFBZQtlPPp2GyNgxztC+1FsnOa2GQl/5JlDSsWCATgIqE55GF/I/ylE2sjIIpecBKRCWXh1ObLsRC7Ev95LG0E60wnC+00Jck9+gipM+Q01dHEIgakr1+oVsXTw+j/agokoi4CG5s7cehoLM0mDXOmUGMxU0U4K2+iCgi4Ln5as8//7wu7nTe258xO9DhQLEASZduI75BIqAaeXtkTenhWCPYEMASyIIAPZ9ewEERhzrN5NnGq4f9r7voDRF4XUpfdU0Ch7w5QVEdybJl5BpQpNQxAmZcnelXhiuuwbm+fJip4Gi2SdH/o3q+kHYz+VaBXxrz1RXKkByh9R3k8ZcmGwItXyjmxiSasBaZDsUM8bbl2R3FMxg1jDIFAlbC7G8hoOX8m1CGBLjVsWqo+ZAXhqlEy33xgmJKlJQB04GMItkiWOiXOZmOZYgwDZjkA3ZgzzP2CgSkrTrdVweA6nKwxipTA8l8YcY9/j+C67/qmr5K8qnQI2HZt2+fRr7rCN4DCKDpoZmZjIeP7CCn7sLw9UxwBFIDoCjwE8p+kI8JZUDy8eRhzJMgRAUhbAGWIYMFCAVgCtg/JEXAF+BFMIs3uxJLmBV4UDJrMOd7OVKYCQIlNNiarGkLFOmyjKX0WqRzIxVsEbai2BMOEmuKkGvnla4VMEoGsT4MEFjVF7hJmlD8AinYhTikdVC6rlDxi01EMDl8K8ArE5r/iPx3ytX8AMsxB+niWEF0w8RylBizm9Bfl/s1kTx3yOYAWpoNZBi5ILDnOew8le610C03BAWAQWAX2EHAlHl4MVmD+kkD+5ddwwSm0A7GMpP0teeFF16Q3H3wwQeby/+dQcDHH3+sh5McwjfMAnAHok71zuTz6gAggJlMRPX06Of68m84BYnqlSJiTPvTV9IB2Emusb5iMuRSKkCDMMIp04QbzQWwBTLQUqID7ezRNkFgcwhIIPB2as6U4XLMRkT7UiCx6r3H4m0hL4DiYxIg1ocMpUjyeuNZSEvBLTV/IshaP184zewLffQuNbZ70udOkmoTirQjWgpQVH1i1sowSdH/3fl+UZO8lynA+eHMosVh8bLlYbVCQgOz0bAFXL3ydL/KIKNrrl9rhMRBQwDpgzgCcKhT/MYIMtvVHUBBsrIAswY18qmy91ZXR9TqUFImQdAePIJAgOMCdwYBBg9MANcIIVwnqXv55ZeFNGL4kmFDwExX/5RcAD0NM3/J9kN6mTt5oZvqh1Pwrb6OoIEAudVXybwuotN5Z+wLvACgIFVJ9AzwHzwCgCKFjAgxeEKxp17YN+spA4tNMwq0SskoMMq0y1cLJ3J49erVVNS+ggXY7WrXkjsUyyIP9gU5uHCEPL0AwerQu9nq/4ILrdrP/RbIYiMkpfcVVobeOz9Jq/bTOsj+X28cmeVvKhcxrDv6WyjDyrBIDEBg6pqzBrIUhecRu3DIdF/DHv8X4UOK2S5FCUxmuzqNXcdnYhtcVT+hJrUfiEHENMIJq/26b67ZLwFhfSFZ7jm15w4goLUfdAl1NEsDSMxYzJTJyXoIZ0SqIyRyiKuaZBKPHTmC2k+aMCjrKQCZ24NTkJUFJMwUID7UlQ8U7nAR9D/+D/1KGgJly0lGIGRqcAEIEgLafOFzTamJ85sWCBo1y4uGb/VzEV2jQMJE60RcbxwEiQIFU1qrpFwqpRqGvDpW0SBf08K8OvSGlB5wM3sf1bElkpes/lKfp1gcMcUcAJeTm7TUwFQ/b9dCQP5U0pOR+dFEsoVhNXrPIJ7uV7XFq0cBSyYFEPYjQZA7LnelRLwMGUFBZ7XpIhANXYekoKl+WQGNZw1yhjcWMQ1jGXQQFuzYsUP984mFAz4tBIgF6GkkaZj3hPpZQVRfp/tCveQ564l1ABVEiVtIJskU0LstdZOl1NFEOwgB4OTDC+BZQ2QZ6EQAj+xjVivEBYhXcv/+/aIkOAtZztSGAFczBDg6UNaEm28KSPCQjKeVoYdpdPSPGgKFro/1BIGIAAAgAElEQVQiwkbvvWtPSdO99QukYm9dA4WeFAs/Of/FvlgY97Xlkle41Dv/ioEzKv8pk60xf76fO3SxcbIkmyisoVgEhTX4vZKJXBw6/404LTswVGWOYJsskCkkRf7TtUQ4gNQV9DaQQTBvpqsgyE0NAXj+SYcnnwXsYCYCeXScC8RILnAEGAL4hAVgfWt7+/btuizF/u4YAowChpD3339fMil5g2MjmbCAhAA8n+90K4XDSThexyCieh+IkH0hxPA8WZjJ/yQLExcAd7SHqkRCASYO8gx6gOeee06fr/VN0OD0aRpexoQAO2AzLmCXL16fC/0EtaSgk9RgMblHtXFBh/TAJYnYGHrvPpEFXA7n4ianbESkIMElLZpkAQaLxJeNxhlZbpc9k1f2zhTgctNEBJOOtsMTDgqItCZbMpHElJb/Gy9ydqO9AIt9/VJbAekF8MRhlDaZqczq1VdOIZinwzyuFvuFc9FGTmZjoMKsyabXANaIxd2g47H8iaYzWZhPlKJ+0piXyOzcuVMCdfdBQUMA2/qPcTa82TWyfaR+RcKZBWi8pOwBBQxwTkIEeD49NKkRdDHgZwpAGI8pwzS9mM7SpbB5mAhFuIF6RPq6e/duvBI5TxmPAMWV7BTAFjBOGwXmoi1EpdoLkdmWQ60MwVStRYyT/29EpKBl6ab0ad7nr5v/dHno8Fsb+ilSRa9FIMDAUQR1tBX60HKTZDTrY6XQ8i6tVbU69BGUA9rTW2pgIPD2WucdHE0BaEMSaOacNbA0XHHA7oC54dJjLiJC5F9jDDFGnzOoyPnTwXY3JAQ4oQhzgEIjAAdp76TeMI8AtY8rHS8ADjLsYn7STqlGScHdZwfmOR999JGehlpAOOSpWCwIkAQKb1wmEXrPfCEWF+b5mNUgodWn3taWNkQAsUf+vcooX9/uKohI5vEsatsVitUk8HoGod2+fftYWZV5ypQqwDX4Vr9yUQJNpgzO9GvCOTrYhgZbW6AdoEXt23tvW32TZudfQYEWFxJQEkRS/le79dfzMOtqi+joY/jgUXpf0MRfzRRarGmJgLcLpW+VeRKHwgUKO/DD5HV8zMVmonH7t/phsk5BmS+QCcKpM5IIwNUpZuX8VPQ5cUGdfrGvlawLznQlsG0+wE/xWMEdoP26mhfL0xim4pYhAD0HBEgw3+pqjQsIJA6SERkCt29vliD4yRCgjWvXrumxDh48KOlCo+pO+rq/a+LqFEWgmxa60kB6IB0DJyfgj4tCO9Uv9oiQNUUUEOG0/NODzCkk2gn/EQTg/zME7NixY+/evUIBfTJPmeLFVC4Dg5yA7P/GTpfMGsb9m3HBnEF8MdJREgXWels6pdGfLW9HsNWrRgcf+YmS30p1a1yoGU0uj7kJy3Pms43ihRHt8tByyWZkWY9ZjOvhH7FkcvDFfpH4QtHdn6YSyQtKt0+CmISh9X4RyowUFl8grXgQCSKeH9YUKvLv2iFODSKMx0jDvCcQADTMdQuK+JoOB57oGyOTEBu2g2QHfwG3eLsrsWuZSl8AEgdkCAio6O+44B1HBBxIlC1w/fp1XV3SpXuTzKMNSLia5I1KHvTXua4Q2jtdIVCmCXgyD0E+KWSHBgFCiqI6mc9LgxDJU2/iWSAWILEXvOnuYiVsiwUIBWQOiPnotUkowmWY0YFDfZ1ScoexCOwX8DRvE4HMFy4e7KKsLjVWAMKQQpgoYDErUr0RuT0pjSnSKdt5bsLH5cY6KGCRSrvsH2UNth3SBGj9Anm1lkG00FmOXAs3RPbqWr8sOodd7FcuMSK3DgJfzbf2ASsxQ8nOgpV+3p4xYjmKlOXEwWQB1v9T/cpCzgggwxVWCxHgJ1vBoMlUt14WQOAxj+cPCLAjAAhgJp6knfC5pwlinhOGd4KsBPb555+/3E0WMhFogeCTU4NkBeiJSfvXzbg3dQFIDYIFMDWSPuLRydsBAjiL7ADch/jbyBHC/snpPRjqeFa0R+8JEZAk6wrS/FQo1KcgQPK/bdu27du3P/vsszgLxVaoqcwDmAjYIrA5kGVFMlMwDcJJ+cIJAUUArDlbCPC49wEpz63mt3jndVKxt+eWO6ZIj+JFgYNNyEIr7amBi0IudL1V0Wb+yfCTwxsCysV92FrT/L9c7HOW1sM/4mY5d7JwWn+lJQtYGNYUtSMAFXK6X94SIcSrpfHsuQM6mAsyUwbnn4e6s9dwQED7cQSgn5gyqJZripELq0/UJL4D7ZE63LNnj/ph8yKiE1mAPz/++GNJiy5Hxj6lvg0BYgGSTMgMEIAbkzRmKn/ATDiL7CUdb1tgsV+Mlfk/To2gX8jq07lMftB7UiydJcypXCL9v3XrVqGAWABuAmYxklOg2zGt0jOR7BTIGUSemJm+n9FMwdZkHVWAKULJtIveLlo9nQLsL8JsCTdrSJMhicaoGG8M/ZTJU5L2J0yU0wtfSEKR+rzIbevVU7MTbjU8gsnwuX5q8hZoCmswT1kLM6HFo9UuOc+TdlHLOTtoKSqOLkbtkFFHwEy/3DCz/ZjJ7pmvuPedBWwX41RXINtrhwIB1qY2KCAFuBvxBWKM418j/k10UKIhbUdmnSBA0rFr1y49vBn9nbEARwR0PisW4gskb0+CjSEghSzJxMih11zVj0ClJJDEBlwU5POrg6imgAOGtzXztyHg8kk6HW8HzIJSJS93TRuS/Ke7JtpjdiCEIkmZWRPEJsHLkiyEo8WFxsvcQU8fLvw/h1RLAdaH/rYrk719tGvXrlmA7SYYVe+FAnBuuhVSdC83XsPcQ/MjTTIZkuq3JkOBgFYtpxWQOHIpwviJHbnhIwuZz+vnRdbDJXEp6qkYtY0vl3o3BPuxSTMvKKcMt8LvXCDLP0reUQDEBH3D9B4ggIlDKBsc4Z5TwMjHpnYQkQqa8FPmC2kYMxEWCCBl5lBXSpDAGbqN6XyCAJ3ovIA7hgAogP4GCoSQpaenJF0XFqCftJ/IB9KCRxBPJm45SS+MCPc+bMIFlbEFQFCXADUKYAWxrCIxD8kz8UjcAZL2ffv2beva3r17cYEQNWBGI8lClFtNvyD/jZ2CJU1oMZa1LnHBdhQW7eRROKrbU7Dz1wIBgELbWh6REGDd7nuNCm3hEVwzNflG04qeX7+TlpK8PvQv0G/en4K9Fvm/5af8C9p/ZL33ShodSvjWoDDqHTRRz6mBdgTODpshAEPdy9t5ChyUE38e8T9PLkDsyfZxXhAZQbqddsJVHbdm0eG3utUEmDsosX+rq5pFspCkQxtcRyNciLBz505d524MgWQBup/ULLUASVTW7fHSExRgyUBE+nw/p4o0Rj0WCYJoXbADj70ED9cItgABVS8QbgepnQI6XdRDj8EkYgk5hUmwBXZ2TVgAMaGuGSgABECZNs8aNhHw9GGnkX+i/Beiuz4s+1N49ZXI/7fYt3jRyn+xEdgwBJSdnl+w3pj3BVPMtwsETOICqdLLO2bLnUWG0b1F86eeT3YwakQk5hYI5qnWxyogGFNKOoATBy40MwU9kXxSOoDdgbm8JcWvMJyZ+UbkC56PawC1z4mcy7wArGk0OVYAXmpW68HLSETQVgCMgDV4uKw2NPKfeeYZPYmnDN+ZL8BWgMRMEoWZAQOh4I8kH28cFYHwdtp+5h2YKQwE4PYnd5g0QXWi+vpiVz4J/yd2lCso20FiFwvEXm/rgiWo/R07djg7QBAgOkCOAHMHgABsAYcG8AviFGwhwEXEivwX91Whu0X1FTucrxLO69ev37hxI8m/N1qAKPLfAoQF3i1JweVhZCFJh/Ho8rAYUUv+C+dPKDHX8MFFSlPPj/662sRZkwWsD1OM/ADGjmQQ+cC+RfHarA4zvi/1SQp295gILDYri8xFsSDs84wC4MZCQPAF4LpHLKH9FAgmyY/h59mBsFEcAXB+ZwRhOHBBQgzQAU+KBwI0znE96AACcFu3btVPTBb6VIZAJgWTWqwekYEtMYNLY9LjeyAs7xxhEhj19M6pIoBBWO6drs4/6EXxDz29pA4ION8twAaVMgTgqwcI7BFg+UQCfnYHiKTAAiT5z3cNf6GwiaxkYoQkC7VpAq4yikfQhoATBEdjgYUOFOGxnKRsWw5Tbi+Hzz9ZfUp7tlSzKcyFERTDITV2IksCzUYzW+HyWDhgbWilt+hQ9hSlzf4imQVM87KGjIICl/qYf2tcrA8dBzS/2lpEB1e6Uqg2CjIp2GGCLBmctoDrhaczj6wWxhWaEtcdhi36huNR1PwEO8Dnv9Avk4XWBGtmu5JcVAdwyhwjmWEMBGiEgzK41USBn332WVED6ZtPawgkBDBHWNfavn27RB0WzcJhh7vlgCRd2i8NzK+eBbXSl2dWH+klX++ajudVKYGEGFNEyNQLWyAhwMaVuYDeFv8C5clw/kn5iwXs2rVLwq93FiIATBgC6RR0mgBOlHf7lUi9eNOngYBNHAHJAlKBJzHeaGIBm7dC/gsEjB7Z3nGjCQReHhomhoDWakimYDkfPX69aQUIcntjrGKij0lrwlygmAyjXxMUzDLyJ+9xMMJOgXaaECzAE4TSEZi5AHYEYqW/EytiSFYZY/Z2czCq1OXtCPvP9UuMkg6DTOGAZPYdVQMQQDsCcLQT/HZOna6skS+J0ODXu+ea4J8KAjABPvjgA8mbpEuyxP2cwK9t5guzoIgQSCI62y2W4klXs93EYSoZCCNc21sPjVPwva6CiD0xRBPJ1XHSTpoDOAv0JGRBERrAJamH3LNnjyGAzGX9BBCIsGAOUMvQKdY2BAwBGRQo1QRbCChjtzVHU95S8RbSnnq7tdiLYLfC2bYUnlTsk0An8cKPkWJcdH6iRuE+rUjzqylA8oVW8jea2GTR80kKJjn8y87yT62u1jlFK/1ksFETwECQLGAmlhXHmM/pLWSgwNuJiCdHkHwSt4cagwiGANx+eBMoOr7YFd0mBACavNvV11Vj/htTaQi9OStZOzXspQsFBHqFTVYW28wQUN9JkCRX+AJJdbC3UxIoPcyCQiwreLZbNdBdqecmq4f5xayUREcw4Uc7dYqhl2QJaNKZvrngl9kBoQFhG1EJVjcWBZDkYwgIBfRJyrA9AgIsuINtgWII4A6YBAFmAa1TcBQIkgUU3t7689Iybw++Mozet/JfMGUUAjjr6ljU4OrQE5mQtDEMJRaCMIo4xRbwFayHL4f3sZD/ZA0+NwHo0pjlf6lxIqRibx03CH9mHK8MVzQ3/3chmVIpZLZfOMixwAIB9jdBNhF7JJ9QlEvjOP/FyWn6CtEmm2CuK7qNFQAFwBHA1AD75sjB0R3BGqwMHPYa/HOx1vidGQK6sawAFg415CDGuisQQH4OfgicmRf7OfbqOBb8oXAQmHeiXyMMe157smKXS6yVvF2bTyAcREDCLCDQ4+3evVsUgDkCEn5tgwIECGABNgScIOA0oawvuokhUOS/9QXkiGSwFumdZA608T8ThBTajT7vuCj/JBTpMkgVOslq0CkyFAsKXBkaKaNmyEafknD9+vXi1CjC7+31CNqnbBfDoRCQwgJGt1ujLHlBaYYApyTZBHA1UbgAOn80F8he/QwEGgKcippk0340hBkrAAhwpWByARiTBKq5KaoU6SMcCL843JfYYBEBXxB3oIv967J3zALUZAXoulu3bpUgSdgO9bV9eWHy9nHLS8aIRjBf8GK/aBzuACKIVDhA30IEmD6sl8GDQJ7WbL9IK8zcXjozAkBO98K+IEdgd9eAAHEBQYA+TQHIEUoWgCFgj6Dri7qaWJkjkPJfxlliQUGB9bEKH5cjUF9UfavPJ0FAkdJySkkTGrUXco9kuICUT0nlnyde7oJ8Zha+XSuf60O/XW63fMFtvYkvFKSwPb82jPCPmgajKLAaJQNWolKAQX+5X716k0AghipqyaUuNDhdq4Kq9of7ya8E8AnjZXl7J//YBMC5PtcvwEfyjwc/UwMAEStUSSsqlgnI+hVHmIRU19xkstA4BMgKUL/LlhYESK50A0gIljMyrFtiCJA1pBejOoJn1GEL6LHe6JY91Dtgb2P86E2IMuj9MR90ildooX8NAV6GgdkERhBqikr+ZQhI5rECBAEUMsARAEjZKeh8Yb1RugO9FISTAloISIWfKNBmChcTN4VqEw5/rW+FpRcqcaWxICZxgcLVczvJ/OWhieELFtVdIOBS4wtMBuSrpaLOriv83y2fx1cudGCtDyWmwLeqPlGg7Flrqoxa8p0j3E4KMgRkVr8hACFH+TNvB+6c5rML2ODe8lxV9BwEnnwhXIM4AnH7kURPRsCb3VKaXJlpe7qpFyOhQr9YwE9/+lOpQB0grvfJEJDJA4IAveqOHTueeeYZCZLEBl+g0/Xw8xEU0AEY9uoLcgRX+gKp6sTT3XJoTBkmIkL3OXFI3UGOkM6CfRFxSaegF13zxKFDXR0xnAJEBCX2Uv6YAI4XAgHUFzURyMqC2GnOER6FgDKYJrEAD2trKg/ZlhUXYWslv9XwKcm5J68wKaDYsoCWg5SdBUHajfIuRYy5wuV+7nBSpJRtQ4xxs5X/ghHu3lFELn5B/3eZCHRxrBjh6KSgLBCS/L/kszsdwBBAsxMd/xxRPQcIcuDhAkCkCQTMduXGCavpRA6GBTB6jSxWsfYsnOiWG5JoUNpHY17/xe0J7Q8s/yh/2kcffaQr/uhHPxIKUAVUj07dAh6XG+MOoGgXEEC2D+FWcn54Byxwgh8Iszrl7a4eMRMHXa6PGIyTBXE9sNYavIs9h7viotQm39M1/IKUDEDyKSJEEqHQytkBri8MC7AhYF9AGgLnh6vWTsoLSERY67NQy3AvMpNs/OqYR7A9vhXRsmdU4A0Q5dxCGfIZTCjSzm/fwgZCXmTUlDAObsQSaVbs5fp+qcSa9SYokDLfKvzV4TIHKfAXIzXYMWnXj7fzL9cOzBmBDl3Di+0FkMhg51PGiyK3CI4OAB1IsXfymykAB2DMe/VRSm8QvXZBIbsYXFCDpUTwBXpmnTCCgrqU2FJXZFwwucAfFBcA7Uq3fPijjz7KEqWoTe5BF5CrSGxPAiY51AvrmRICsAW0h4PxZ9jsIVmKpYf10Of6RdcNAV6YCbh14qCpl2cc4AXQJ+FAxP7FrvFsLGQyWl/4U0JAephH/QLJbxML0sU1Ks9FhFoguDx0tudZl8Mt17KAvAt+u3KvsjNRI69W5LAA0yToaZ/fEODt4hRYj/jFJAhIzX+pT+xz8x9RoOFiUy80yb8hoJ0RbAjI6YCeEczIRMljk8Pz3+hW+MELDgtAwvE9eQqcywSRCOR0YEwAAmR4+9CdiMxb3SJiXEcnknoj0MFPZx0JBLDWsDSi3msiBNxqmliAxE8UYMuWLeQFYjzjOYMIQO9Z6lMCptto+1C3pgjZQcjASlcajKwGrnCyXzgRiwUzRq+ht0XwML1scdHdvK373f4ISomRoYQvgBCAhJ+8AMIBni9U4oKH+rKixuN2mlAaAptQgFY7rfQrZyTd/UQIaFtLs1PHtiwgJdAHa7+kvej2nIxUWMakeUqtIeODjReJQRtjLaFhI0x9i3Rxr5YDCgSk/d/GblP+29IvLQso84JzNNoFeKKv7QP/t8Mfng8E/LJvONGO9DVyYQSZ7QalRbi89Ahk5ES3APd73VKClBWxFWCrXAcwHx8Z4Zo44CiWwYQanZ6rjI9AQHoEPvjgA4nKt7/97e3bt0uESDkgw4FJNVCXd/pl/1CzFC0DArIqC+4AZjIQ1YAIgAJHu1WDcWby5o6+ZpqQ52CaCEDD3u5WWZeE6yVdO1DPTL6QvpK5hM8Sj6AnDr7RrzVydxCwNmzsbAlqcRO2Yrw5h2/BIrfbViQ/WQA6n9aK9+Whg7DsSVDI55n0FklDig2/MXSLbGyMhP0ST5MyFEOg+P/s3ivCP4oC/roSZbxKFoApQM4FyigAAXw7/JkXRMl86C0musOBQIALVZjhvtfN8Ee5MiOIiXPYDif6qmE6ElWq/fYmkBoMg3BaPan01O/WgJcs6CE//PBDOP6IIZDuQEGF/j/x6kceeUQGNgU/mfnscAD+Oaxx1gswBGg/CX8WEm0TGrRXE2+n50u+3dVC06vOduuxmwsAe2h+4q7OCzAG64KiQEAAJYzw/1NQAF8AFoE2ZBQxZcB1jYGAnClUKghmRKAYAumIyqDAWqyx1QKBfYQbfUStcPgigS1kjKJD0f8pzKn5jQLXhuUJkm4U4cxbT4KAAjejD1kMgUL+WyupfXefOMkRMKr/00EwagW0s4OzKBAD1fzfDQ3kVB8a+p8QOI4AZ+9gBRgvPCneqQRoVrCGB8Dsf6+rF2ArgHSADMxRUBPlassCBwGeCAGBdKE29PfZ0q8swO5Amjrr6aef/uEPfyheTaEeMIzZTs7eI12BxcUQLb22PYKWB3Wx+vFotxwCdAVvh/kVwQU15hp6YpZTL5hWDeOiB+2GITsaqkMU0P4/VjRzaBRbwJMFSnFx3K2jEDDJHVggYDUi0ivDpezSRnXIgMFdiHSiQPLkUVeiJeTK0LFnplCEP8l/3qh1H0xi7JOYSBH+0a8JAVbvqfkNW0XgW+xIFtAa/GXP2jBw41Ps/3c6YEkBzkQAUwADARluQMC7fYPqIpMu9c8A40gbAkf7Fe4Y0kwZ9o3Qf84gnu7XJmO0H+rWF3WuPcoMEoGVzaKDPMNb3YICEg3J6Xq3slBBAX3+QWYE0nTLRx999PHHH9eZVP6zrUL+DA+KVAtpBBNIF1MJqYuSAKwu1sNBkziAjAuiLHqfN7vFT3QLO0JZho3iypAlQ6n7FE8JwQ8SASgiQnHhn/bN21gB1DIr5UOA1dG4YNafTyXTmgPeUzTSWlcAy2JQ9Jt1dVGbRfg3UZJXGmdeYebFUC+UvrCPcjWDy+Xe9ZiM42oEC/Jd8oAWWTY2Bu79tUij2oi8gIIR6QuYJNgtCxilAxf7tcYzF8DVQUchwCiApNkRAAS80zdDACyApADG6uFu+hACj/K3HwH5t0QwUxAnAiYAxQUIN0AZgCHmCzocSLiNyp16DCIUVNyVXAjvEP7bXU3g/w8B+V1WwMcff6zXEAXYtm0b0X5eA/SyuUJ1QCwTEnVZxgSH31y3gvpKJGDq4UhpeK+f/+QFyLApyN718qT8it+RTnfqla4DQB7uKijqDfV6zz77LI5ADAFjQaEAnjhsjCwJgiYCDgqUJShyVI2OwtYuuBTxsJY2t/ZzKv9JENBeYXMIaNmBG3ZBCRnm8ZgP2pMQ4CsnbNHa5zE6JLoVR+nG0NhpIcB4sdbMCBgF5YLIm7RRX0DOCMpAgKMA1u0IPwE/QwBNXzk4mQJ5QZixR/uaYhZ+3RGFT/jMjrPDXckwPAsMVIL/VBA42ZfApBLBoW4NTjScHoPpfLoItUNs+P9/X4ApgDZ0kERFFGDPnj0SGCDAdjiqEnTEFUGiEiUAJFp4L/TrhViQV9tnu6XRwDD1owsN4m4hvqD7MjsKG4yAIgDMBAH6nbjrW916CQQURAGeeeYZ6ggdPHjwx32zO0CIYGpAwRKHOXKawKg7wB6BnCzQmgZF85eNwmmLAGdwPiXqEyEAaUkJHxXyVqvbL3Djxg1DQHuKL2giUOTfEwTysYu0GxcSETb6ZOeNCeHSyw1raFnAKB2YxAJs/+e/thL1wh0LKOlApS4IFMDynzqJ/H98AQ48e2KPpw+iclBpuACm+kbyG15AiojhINDdD3U1gk3GSSUgwwUnPV42FCoFhQhPSLNq5O/bt08PcPPmTQv/gAXYEahP9fLevXuZGiDajPvxaF/en3l1oACK3et2MY0fqq+HTn8YRYFIWuTdznZLLNPv892S5Losk5GorAQEkCBAF9gFeKhbXBBXB5aIHvWpp55iXqR9gaAAs4ldO4AEASCAdQfNzTJHOCEgEwTON8sK5JBiox1/q1Ees4j0JB1+pU+5L1ZDK/9FyW8OASn/V6/+X/a+hEuO4sr6+/9zZsYzHmMbbBZJaN+FdgmQMZvByIBXbCNAUqv3WrtaQkB/V3nJy433IlMNtrppnYqj06eUlZWVlRHvvvvWqKQkZgYRuH2GAEcBJ/8ZFPIPzBAQ3h2mwIFzgS4IWC0Tt/W6hwJUm4XKCpALQBAgFkBxpb5lGp/cgcwRoO6kxUoZlhPxz22vGpXDsUaAfjceZ+EcK4Wp9rhWiRQMB/613Z6c2TRMUuL4oGnbDUGGUENB4gGS7CsoUEAA7QTcLkyAgwcPMiNAGc7iMzQHCF0MClCcKJb45fhWvKU04ZW2apBeCpY3qUeiiABkj1FGukBpjXuOkAjYB00ZNjuREAWh58ECwAW42QG7iYkFCALUU5gbnKh9EH22DL04BMgxuWBDlWQBBTIL8PUn0ht8AZKZrAODGuxhAV0gEoR80hQFSu3rYP6UPuhn6niAAL9g+Pi49AhUMcJdHjzorgp/N6NAlxUQfLQ+Izki4OEAtwVCuYo3s/OIoCCA8kZdTb3IpcV1y1afzBTkpyhHHmhgFSB1kvg/awRUXKDadtwDI+K4lBCEhjNjE7Q7WFaM1U6CzKphjwsWvgBaAdCQ0KjsF8pwoIJwpC4fN2X/hCi6A9i0jFFQ3BO+9ZNm10DaApwDZgozNEh3gFIgFBrAb1N7MgIwN1dWY0axL7oAiAJsYXb48GFAAH4nWYDbAjIH6BRhjpBKBpUjyBxkWmWeIxhYQDAKNIIKki+gBwJchn8YBPTzCNf5EldKLL/R9e0ocQdBQB6BBQRMqcJHhoBh6RQYlH7N/G5mAV0QoHeDv8YdgT6hAQKcAsgR4JmpAQKYFPheu0sFF6da+rDhHUGBNSl/sC4VhAAqOWpvxvy5DikadAQyQEgrgN5Bsn186u82GCZQIbwgAGseUoCTRQEEBN9CAAceLnfphLTgM9yWQCWNDITQ8CDwsOCPsUcG25gOhd/DBKGlJpBkvWsAACAASURBVFMYl8VrZgoTGv/Sbj3CroH0heCakGdcCnfP0AOrNT9pt2r1QAC+FD+MEX4odvAcpga7/FP/OwqICKinsCq39DND45A7aWcx7yMkze/+7bAQ9XqtbM49tC0DAvsNEOBHMruuyliPPPeofQ0HEQl5MP75waotkAEo0IeAAtksGia36HqZGhQgIHtnJfNhBBagoKB8AYpYk+oGX6AnBcrDp9Rg/lebfFGfM+yt/v9KkHP+/3G77wBVEQPn3HGTkiwTgN4BZgQocYj3SZeZpyFRPNlQBFKAF7PZTBDwrTvQtxnApSH/LA2EhKgaiQ0MmIqQIeD3zf5i6s+JT+E4i/+W254teOg4wgxHmTqECdoCBAJcn146OhTkkpUhID8KHYGM8DH/iV0MIfZME2S+YPALEgJYMsTaJ07bR7azECFAOYKBBXiMwNm+R/6rdFSKzoU8KMmqnpfAdwl/FwT4f50CSBp5zazSdU6W//BudiUEepLlXxDguOa+Un6FXy1bAZkLVCGgCgrBlRNahoe8YCUFh6IAh4Cbtr0f43asiKHNS/VOgKALQOEnOQLo4aL+ZxRQTnFW/t9sKogp/0ycpRuOzvW/tV22GDhT+gzNCpIFdtbAysdDkMqn+v9/2nsYVgBuet++fZAo6mq1OiT5J/j9sd3zj+lKN9vqSAVCCH4s/pMhsNQUAnMHUULU35rtkylRQl88EQIKHhm7JqiVQmjMQuOKaZjccZx5AfIC8AWOMztYQQFmB+EjdCh6XoDcM7l3SBge8pTABxbgELBm3QSDkLjodon9qDaCRnVEyOcIAkIIoEvbZ6keNc1FMiIEujEqE4d0MNyYS34I/vkN6MxhyhSomgM9PsIeCHB3oBqEBV+AV6x5RPAPViBMJzzLeOilos9fxjkVqtcI0c/NhAIPAdAhxQg/42hEh0/bPUXYjAAXFJX4W9uMh0BDYbnZ9hdhWS1QABf3MgGI/7cQwB4hEP6DBw9ytx+m8fGh/L3dLEm5TfRk8AgFUgWSJDxsBEJDgLFZPGgKM4Hzz80GRBQwzoGqI3nHH5ZlhcrHkg/mg6YlGd0Q1P/0BcrypxWgliHKDqYvUBuz00ILEFDdWcw9gl0QUEUBTw0I4YAfDAFVbe8il234aRpZ2/vHx20HQd7wpPQO6CPhaj23GkDKXST5tztYDJNdUE0Tqsp/1RBwWhe6A3qz4OAOlBcgQIA0Pz0CVLwM1/2x7fn/QducQp0CJP/M+eUR+cIZRxcFYMyP9jJzBPAWvXKUETUdu9k2wvlT26eUdgrT+fGuOggVZULgA/jN0JnHjh1jOgAxiXl+bAf8iW17QsIs5cxUBLIApivhBBYLLLebxiy0ewfSRMGn1G4Up8kSu9X0HaYpRRhSk0a3wai9uW0hIAASruoAMX9PCgiVgpwhLxn+uG0l7BBAfhi2GM7dxFbM4eeWqlbkWmqeKwgImraKCH4kS5cOBggQBZDEkgJwyC84KT2FQckHv0Bm9Y4gPUBQxaOqURN+mgBoOxDQo/w1gjvQm4UKAtwKCL7AbAgoHUApp8yXoWL/Q9NKUP58FbwRUPhZZQFRrCgLTPVX0opEnf04ybVV4c7YIW1kJbxTZBSGxD0wL2652WtYtsAjCHj48OHm5iauyyacjGdQJTLhn0+KzjlG6eR+oIHE3ykU4I9n/g9EhXNGd8Df280S6SxllyFv0oTxt2Y/Qjoj5TX1rGxGX1gjxG7i7JTINgGUf0UBfTcRbSVAqPIOgh+29RveOCAQgWosMEBANYMluLXXbUORHwYBPUxhXPMLUMhns1kwB0ZmBWRLoWrGB3th2Do1q+6Grg/y5CqLcSNlOKwkCOlJBghYTUPHBQRL1iZQnp2uHsGqC3BHoOf2KvxO8s/IP+Wf/6WWYrEAWcAf2z1FRGbpL5DrkcVy+HbKs2esEJgYDmR+jcLY3JubJF31+MwgpPOOZAQqEJKCTzFNsIAAPBpIy5EjR6A22dtDKTrcOInPiJF8N91VyUerg/Y5tx4jnuHKa20dOHsE815Zesimw+rWQheIHJ6/a/qik4OJAggCaIDxVzEjgIaAu/2C8PPvmzaURKUcIfpjlad8x0YGgmwOBPvWl6yvYDcEBikxJgjzOI0usHBkcXAZt657UYDAArKBELjAuM0smLVD0u60oucKLtu8WpDwUYqPBjoQ3IEhNFB9/mupmkhRAA0vEAgmQBcEUIAVCxQEqGvgu+3WdeyUTQj4uN1xjMqfR+QUkAsAMkK1qsI8iBKljz246KfncVIDusxlL+BXsO6ezJ2M4/2myyjkAi8wI0VewIMHD/BNZ86cAQRAZnhnLAe4ZRsn8ftUQr/UtAMh/OiHvdvuasIMH4b9ND0L7d6BJAL8GbjdhXb/JsIwq4OYcaCopCqrKf/q0AR6Ty/gJRty+5P5+7jRDIKC+ogxhMtoDVOSyQKIAs4F1Fl8qawa9KHVud4xBAFdBnAXMa6OqtoPn6X4iQVIqgUQPRaBa/IAAeFMH3rX2ce0jCbw20OItPrr1lN2UNb5wSMj5hVODuaAwgGeERBKA3JGkLyATgQYY6YvgN5BDAjU9evX2dVHtgM/8od2HwH1quDiZ2zvo6ZPn8xS2shMsaVQ8C0K6a229Tb/y4wbtuogLjA9iQ0+8Be/nRGAbysF8dzBVY4dO3by5EmIDd2YzAImKDLriAYG74b0nn5+gg3LHmgO8FmocHi1LZWDtOC26BGgK5EJAswjUud22hpMPWROJX0Q9HDK9cLvwiNmOiDrglkgzHIAbjpEmccL/FfdDXgOOQKjg5746HFBh4BQNSBDoGchBsnv8gX2QECQ5yzePRCQ2bg0c5DtTBCq1IDvSqTxAiYk/ga17zZF/q+G7lwPRHflv2XUuiSFAtXUgO1DgKcGMCLgXcM8Nfjv1incWYBXB3CoX4gcAaydYd8qLjC1Ffqg3URAznxVClGZU25d/tlEhPEF0VUm1/DmCVue0oIfwkgh8w7ImrHysebx0yD/3xkCeHyQoqNHj8KEhrSoFMmzdCm0zOpj3oL31WN5v0KgTITAXTK9B6dpVugUpCvxw7ZSmucwQUB9WukRYIAwBDnesgGR5ubC9Pmpi9HldrBY0GsHGDLEEZzM5KLft32dVW7ltgAfqFBAmQLbh4CQ4ROW+9hy9XzpZ1M8HOznBVUQCVgQhDZAgETX1f6sHE4EnCwEma9SBj0QfzhV4PMz+UirXsD88AUBOifkBS22ZUKqFPJwYJcVEAxSDgUC5BTE2jt16hSWn0CBET5lo6oKzsvhPmqbiCpXnW44yhejVyzJVzML3Dk5i7ux8FndPwEIg0Fx3Mlas9Hgt3kBOJV7cjMpWDfHBkYs4/mk3faId8Ov4V9HU+58wmfBLEBWDVI2MB90CjK+ILS71WxGSErm1doiAnpwXozFBGGyAEIA1TslX+3DmR2EE043g5kCTJOg/Kv64s/t5oIEAk5AsAXcKVCFgH75l4gG8X4sBciaPAhJhoB8nSoLGJlHMFj1G2lkzt9zh1Uq4cq/6gQJFxdHcAj4V1jASpsdIC6gYuFcHfTXdnvrHA4MNYKM7YufUuFjHWLtgX4SGhh+4rJXKhrHJ+3epH9se/O5HcobY7tNRsqxGhfb9nyqwaHxzlg76blSD+l6YE4tIACLH+c/fPjwUV4A+AC+FbLBNoFsVMD8BDn/qPn5OOixozwQGsg9SOZp7f+12SaA1jU+gjPpMx82W1BQ1IkCfLjuEeCt0yJgI1TC582m+6LSMAABNOmBagwEUP8rL4Bir2RBDqYPASZYJkB8UfYln77SNkirBATuDqAt4KmBVfl3+prddVrczoQdI7YJBxkFwsXD+dnOn5QB/4lZ8jpZ0NDDTRxfsiT7yXyRaVG4sv+oYUc2Ub/ZNbQ9jtyP4N7B0DUoWAGBCNAK+CANhd+9WAD6iQ31uHqJIN7kT6nH6ov7SbO5mBLSvCyF+pjakTJIRxsGg4j8LDU3fxS777H6gBqUTnGIwNtvv42n+sgXACTAJ6kV1ZOAbgZm791pu/qSF1EeKAPq6qOuW5QZ8ijCJwkFzl9tU2WYaECiwsIGOuFkDnAy1E2E4MocCbEA5gVD/rmpGRQ77h+vqe0h7SebARrG/6qzmMu/cjmIVozZEKEJbSoZyu6AxbYhwmO9AIEF+Pruh4AugQ+jygJ6jgcFXlXXXRAQGL5jipsS/pZDQMAF9wX23LZDQNUp0CP/o9KPIBwRIwgtQ4IvILsDAwS4L0DRAWr795ttMlj8qhweWf5y4/EgJY4KXAl1/FEUGUIARYZnchGS1DCn7u9tA2I5CORc+KDd14yBMNbL4srfugPxUCAMpCtKCuLl7rStlPRc+JgIUbQRlOosFaq2IrwV3g1Bl7NFbc8UKBIB5iBoDggBpB7MEfDny/RBhgNVF0D+r97B3GKUOwvS/mewUDVCbBxEI02VVV4H5RQg2AIkLD3yv1buh6flGMR7OxAwSaNH+P3jTqQD+uTjLskhfaAq7eFg1V5wXPD/OihItsMTCHaTKEOQ5H7a5V+hEeyIHB3ggqdkCgJyOECGgBrncCExFkBDgB5oHJebyZ3NWk58oTw6sZXltuUEc+fUQYcfVz0+IYDhgGCrynwQK2eJMT0CeEowAv4fHYP4vt+1+3yy1I+an3emZCka7URNoQClXcYMwUadgnEOfbBrTYacEwFyfuUaaTd1+TaJYR81nYKUYsVHTFKAQZ8//a4sFg6Ng7xAUL0DmR1AFFCCkLKDFIxRsUAIDWQIWEupQb4ofTm66AYfWBDgIPCBV/tFXFSyhLv+D/DhKODSHrz3+tJJGxekJE9Kz5/DhG41sAyd3AVG4Rv1VpUF6EWOuQQvw7BMNCYKeLIQ+TbX5C3b0u6vae/AP5QtQ90EUKa8OvbQ38QkX+UFUlxpQXv6iQebeGOeOEd7XOFD5t3JF0CWofXJH+Ildh+1+5oyrR6rfaPZaPC7fgF4Lrh7SAtzj3mLtAJoY9ALwC8WahIpGLSk74E0iQ72vzftUBkXxIxKA+C7FJthLFBNGsWOxJGIYUrAUD+Gj9sNFYEC3CaA0QHvHU7PH6uDlCDM7ibqdyRzQGWRnCQBk367sobpie1i/lkvBRVX1dtZ1LtG13UyBITj2Zh3dMgQEL7XZdhjAeGaVZPBDYqpdTHPKFa9prDAxVuvhQLbhwBOk1iAQ4D3qlEzj2pqsMcFxU+VdYpBZUNPFjnmn9pNcZTzI6NbqXeLbUG6EEp35bRUELDYNOmmxpVulhWgTGEm1LIeHwKFT92/f/+RO5Atw9gvBF/Dsl9W7BMCiCWftRut4zvcj+Ipg7wPEgEPXRIj8JFhUwq62QwsDs2Npxh4YFPdRJj/TJcmYwG05CHPEGwIP51/gADtI6YEYcb/lSPg3U0cAugv+bjc8tlRQHEQh4AeFOhKBHBSuh3hDyJRhYAg/KNE/vlBZ/iTbkODECAdrttg/N+BwC2CACUbFj7EdAdAGZcFSOEn5LvKj85HgICq/AfIkEcghAllCygpjk7rP7Z7B3teQCYCpABcTtS3NAroDqRQkFMo7V+a1cNM3t1owVobBirKk+mDJwUQXqjd1h/bVuXMaKbNgvMh/w8fPnzEArx3KA7hubDJAdU4ld6nNujeV4qFuuup6SJjmyTVDG/w/vAuPoj5wOLA12/a2GjSxTErq82+A5wG7+FN3yZrIQljFGZIMnc0O9sMZmIw5q8GQS78HEwTVHawmj1ohhQXVOWmhliAQjJuCGSO2mMIuOoL0u4KM0fjAgRU5b8qXX5xCca4NEB6vj3web/auMOKIXBkCODIUDgq7Zcgw8NUMhBMgwCvVdj1IS4QMoUUBRMEeK06B1GAnJeGqkoDuKiosaRdZGZqzw+HAPcxOTFZsP1O77SldOFMBdEkifLHs9BAobQPm559+LFsHMINhP8f9f837c7CePHgwQNMz72mgS8Vsh6H9ghQ9QUdFWq9RAchDfg/2DZpvD98EA9dXFGJZVQICvPyZ3sqPrOjledIzU9Wz6DAsWPH8ALvsl8y+4izcTj7hToQyBfgEKBaTm3MpmYsgj/ZYF4dUPVF5aVZhQAdn3RH0R/LAnogwEXL5XPcbvuNkeV/at67kP8jK8AJRUCowOEDIjiIjM1g8fsM/60q8PzYs/z3QIAu6xDg0QGu5J7sIBEBeQRVJsB15emAijfJEODqcjPzi3YbO96JOylVyyAIUFKQqmzJDmhWU1/SeckqOLb2x+/FY+deAXQCPkoN8vahhACeQWjAtEFumZlEOGSET1kxvEu3WJSWpLJi1d7yg3joo6b/BNnmsN2CHm8pWEhKQwJCx4yKn0GumAtALkD7/+TJk7hDfBzSThcgvQPKGmbioKqGfJfxKgRonmSwEQL4lEOB0FpbC5w1VYaAHvkPolI1yDME5NGjXcetU1D3GQh8GBtlhv9GmxTModcBFAJyiYOEd4kC/hwcMqoQ4CigUEuP/GcIEOgMLUAoCBDxVkxKOcJczzk7yANVoQ8FcUH9gj4q21JwXTE0wDWvOjTKl6cwOiPQOaTht23QlFb7IGb64nw8T8o8q4OKrkFqHEYsUBMhIgI/A16A5c4On4QTvwm8NWxyfijDXmv1Sbv7mNQpg/946D7rnA9aAaQxJA6sQXJ/JvOuodK1ZTiw4Pjx4yACvAdY+AwTetWAbytEpyA3F/UOom4IKDvIo7iMxNxtdxlbtI0SVpu+YGGN9kCAThu1G3U8CQhwte8QMC0NgUkZ1dNXSyBDCIDc3tmBewT4KZ0joucHdSZeBwjw36iFMbCQqh6d5L+q4R8LAX6dAAFKTlEgLJQJKEdYFIDuZKarsPMd04EYciIEcIEpIqAdiuQLlCefa4zS5JWpXuOsg4QAr7VV3i1uftCE/bxNkGRcWwl8t61oGN+Ug6QAj49CfqfdPpiuQT5NeTLdyU/hUS80D4Qst403KQyDJkwgVFPJIJ+74hms9oNsM9X/7Nmzhw8fxlPmasMJMAG0xThbhjAKypotbS5MO8LdgTeb1k5yBxC55LlVMNarA7xGNUMAl+nIGmOH5Sj1m4W/X6Nm8u9j0JGG4FKqm/FvrLJ9f1euxMzqc4xgbBE+fWRiJoawRm+NaibAY0U9Hxkl/+K4cTZpRgILcA+cIEBBrr/aJmIq9fe8AIUDKfNsFowTsMbwWo4A6hiaA1xg/2g31wvxJlklvBmFCXPjU6XtUF6YYofT8HvZHUiy3CXp3wMCyAgAIbg0voBqn4YTXpPSu39CP0y+9C+sJUtozqPfuWC9HJVEzAxHViLjsUKYAQGQ8NOnTx85cuTQoUP4IG4PbAWPngmCvqe4NL+3DyAEeOMQsYCQv6leDkyXDAVCkn9fVevtVjlk2g4BvmQzA5fs0UsaROixECAMciKgkSFglGgIX+Db6bINUYBQGjg2R2YgC+Nay0AZHZN2k7JJ6TKo0pk8HOOykg/fpZ+vDzq/cAhQEI4Q4AmC1d6hLv/cRJCBKroGWZ/PXTkZSuBQOEC9qj07gIIgmVcDXndY5GAB/XE4h5Iv/u50/ntDgHiC7ALfepSkAFNO1U1GQHxl8p+ylEhObtkWPYxwMhyqZOzgfpdnkRzso3bzdu5cAj7PpGCYAM899xykmgUPGDj/RDPOnDnD6CBsBLIAbxyi1AAVb9BxqhlSvZD3bAkQQI+UVtW4DXQJAobDwsrNOqpf5wf9H+TflWegu1VlOEmOOt2Df3t2+AWtLhTYKDN8skGR1bsk39HHQSQAZdXV18MC/Pi4dCuMzSfq/x02rqgQGqQf6rOyibATAXIBTw18ux3so8/lyro11t0wjiCOKetSC558XvZ1V09k3qfIMkOD603bVXH+rMJ7xHy7EBBeq/cYpA66F4/SvWIkCKQxdK6q7InODC/M8iZtipeodpK+gI9s7wCWBoDenzx58uDBg7AC8LAY3sCN4aEAF3Dw1KlTShAgEdCuR2of6iaACjkcAsgABQF84pyklbZZWNZIvnC1ELMyHPdm0eS3fDUHwyEr9oAU4cwgt9NkCDhpD/cTWgaFEa4W7ll2BB9UgIBpmTI4qhkCo9r4d0FAqB3MVYOBCCgcyCgAlxZ9AXjNxUOAULIcF5V8zDkcsLQUd6YUSVks9z7CX7yL5wkBpP9egulqO4vzD2cB+pp8JiWQ3p1BE94Ts1ose7NkD4einfRkKCtTDhi2GFJJNhuhMgsYj/uzZo+kb9o9EfFQ8NbLL78MIMAJIAvsI6DuIMoI+p1tLk5eFyICtAjov1UJhzsCHQKqKDCy0tfMAial28/Jdh5Vo8A/PjHunYXT2UQXOrjMb9QGGGZ2+weQmrbJhe72G7fJxRmwJI1jK46sSnj1rQAB4QkHFPDz/VPyCAY1q+4VvqGQRwQ+aHcQo0Yhx2RcECsTUoonhmWgRB0GtkJSgJz5akjl3aiYbK6IGwcO4jHi4hC6r9rhgulWgPP3fwkCxC6o+Wld6LWfSU/BoKzTFsrqEdPIYZ62sICkiD4YhWHYX4jPmqmBLGrGpxjnAAoq4IHFhwkACzh27BiIADuLKyigrcRUI6QywZttm/c/lUP1m6QwggCvCwhMVfLv9LsHAoKmJdOmvCnk1qV1q+rdtWsVAjIGBUNAjgCP+dE9Ee4w2AWCAB0MPsUNS0wMpvskbXA+Ts7OfkMgyL+o1qTDvhi01cRUWitti1H3tEl6uSa9TEDNgsgoyQKgaWgL4CJMv6PUSC6+aDuUei3M7bSBJWVe4SeyffwWamKXbVfDAQvchO8S821BwNZWp1Oxes43TVuyadMlWvVYFBtV0ZB9qWpIOMeH7ukAH7XtFtkpBFKKJ4IVxu/CF+mn8kFgqugOIAQwWVDdROkapGuApEA9Xj5ot2EiFshzqxpMmWruCAxMNZgAWe8Na+lAwRBwSQsQ4MIs8Xa666pvYiQ8IMXEfHg5zh8kn8NlXhgRPi4/f8gX4Ef4KaHA0HoE+R0Gve1wMLSIYBUCMoLwalUIGHYEBQgBoVggQ4DqVugCIM3kaywqluJuNTpZWPBNm5OHhzBs3Oe0i2VxqDgN6w23gXsj1Q+y3SWDLon9LoBtQcAPGIE4MHwwbfL/Qub8ettXV7jARCN5EH2fAvpRcASPDGtIDs/qDeDxsVMAPYKeLKwEQWIBHYTqAC8IoL9HEKBwgFo1deUCZF2UF3SGgEkyuYNo9VCAfiDw6ztdH5sbomp3uAGyYYEAKXahgE5wCffL8r8BRzZaV6KL/dRihBnReObIKgsyU/D/ji3XKDx8Jx3DNkcwQICybm+1fe5ICb1eWM3CtMkt9QpZKq7cI4cSECbqSUwIbRL7YMxvU6q/13iyEKDXRD6PM43bOK3ygkUElJjFUDyrEiZtepMHJrLPE+9i/k6fPs1mIXIHcB8hxgJktmnXA+9NpiRwugbZOIApXEqLdN9ndbgj0Be026hB7DUkPAECwvmB/PvXBbGX0AYICIwjUACxD8mwhNw1vKPDLKUSh1HFl42yZino/Kp4Z8KfGYEesj+ccRsaDOfLIyhD4K41s3XPtHcNcAiQFcDcU5wwbRp196jo6sjL+98roXk8WQjwn/GNmSV0InzZDNFLrgZH62kToJadX31GwduB15hmbouk0KDigkoKJhDIW6t+IT4Yv6HbRmHbwAKyCaAAwaQ0yKs6rUdgXFQC7dc50za03kMNAq2YpWyfqvAHA4Sn3bfhAOHCr8vmn5OPZKMm6+0umR8nh2KQ6nEbg9A1HQIGZYIQWYB3E1NuCxPbQkTgQ9tWXBDAvFXSTJzsIbqqpISlW5X8HQCCJwUBYchxKD+iY0Fwb1Rx0UlRyHwIEIDVCbE/cODAkSNHYBGwaoglw8wFok+hCgEk/wz/kvipmbrKovt9AeL5YX0HLb2dIXGaJJO+KjxV+Q9AMzXWPbW+4FUAcvmZtvlCGQWCyfBYs0Ij2yzTsqdAYATB2q+S/2AXZBR2mjBuUzkYxlY0jilq3k2YQQHPVVeBMOUfK4qtK0gEgB39fviqvGSB/2Yb/rx/cTxxCOgHwvxu9QcLJh82Q1hQ5RpYnbD8X3jhBYYGQQToDmTLMEKAkgJYyMUsbvH/wAJUI8wOSKFAUIlAvvIm1ngnQEBV2ntwQSoxsP1+mc8aOHyXUwmdJnOdI+j2fEL2IOZQQoaGcHsOdl3Y5+q9KvbhEY1Lj0CGgFHrJhQKKIytXl3eR5D1QvQFfNS239F2nQxUMeUURAD/BY+gA69LIsK6lSJ0xbZVIwv/9vFkIUA6PKh3vtuPbc4C6FDt/159C1YhJPzFF18EETh69CgggGnCIAKYHrptlBcYIIA23oftLqNMUvqs3QF5semG7sJfTVyRWnOtm3V4FRE2ktkfIMBHEOYufS5RlDBsmH+uS7yDng/Gv7sGdDC0gZAVM03GyKwNEwRE6IIA19gKuFbdBM75AwRMaoYAByFAeZ/OAhTAYzscqgc6Atg4nCYAvYDcsQbQgGtuHwL6xfuxJ/yL498PAY+9V50QCE//4/DjXU/267auEZO0f//+ffv2HTx4ELYA3QGsLOQkySmgHk/MC1BF18fNZm/MC5Qv0DdHC0lBw7IHpmtmLT4X8qzAsyQESuwr24HGTfFMKFz3Oj2WJIsmuKLO7sDt0Hv/bMAd/a7ZLOYR9MDipPShjM2ZV80CyBDgD2raJggE4kZ3ICFA7boEAV75ykTVj6yJMCGAoaXX2gH+qA28tyMO35S+gP7z/+3j3wwBuzsIAaAMmLDDhw+DCAAIjh07pr2GXm0Gt1WjO0DFwqwRYIHXR2UTUU8K8LzAnJ0SaKfLtus313JVDu9iP03eMolxwItwtYwpfktB2kUHss6flaFB1/A6HnhH+Ow0VR9XJT/ToknNEAhuly67oEqaCAEMRckdMGh7kDAWwBCVUgO+sL2GPS9A2cH0ArCBC5dFvwAAIABJREFUFSEAhgMW4W5Lw3bHUwUBwlHM36lTp1566SWwAMYF2ESIeQHgAvhLCKBTkBsKcmppEfyx2dRZ4YDAAqqlAVnhTLbB87MATJLx7ys4mACSMf+6LkXt6BBOyDrfz5m25GI268wdmiUjX+iTGYp/S3gU4YbH5XYDIfMis4AeINADVFqKIoIc1P+CAFW4KG9HCcI0BJgXRC8AU4O4tPDxqpG7K0r+seNpgwAaYJhX2P9gAYcOHTp69ChtAYA0qzi40SghgE6BPzQ7l7LloRcLKS/QG4erOtCZZHYBTBOBDy9c/vMyHaW0ti5wCRo42POeruPw4eKdESFAyYY57bK2zxHEDHB+vhMKXXnWZovo9gRtI9t6rEf+x2VosB8C3JpzCHBDwOOCTA2gIaCIIJMCCAFqY4EVhZsPJTo/5vE0QIAbUURfLB0I/K9+9at9+/YRBWALXL16VcXC+MukQLKAj5qOTqz9Yst3bSimjk40FEM6wMjc1JNJ9LQHva1lmrW6RsYON2id1btezSgQpDdIwtTSAarAEQwBPzkbBcH43zBfoxiEfyTc28TKisalmeOcqF+8e1jApBwEFM/vlCHAdF1143AIUL1wKBCQIUAf06VLl3CC0vh3y7z/XmNvQ0CXExHrDLr9ueeeAwq8/PLLhw8fBhEAL2Ca8G9+8xtmBLPMkzsIKPeTjgDGAoIV4Cwg5wJkCNAidomt0tfJpAgZZAgYpVyjrG+dFzidFgS49nbRhcw/ePCAws+aK0/ZmpVBAb3mRzIXmJkRsVFzgmSI9F89qrnxq3C5zVGFAFavOQRohxvv0qW97dREUFRRLYOUFwitc/nyZSyYaibbLopJ/9jbEKARUIB7pT7//PNAARKBU6dOXbx4kXEBoADDASQC2lmY8R7vHViFABEBocDAugBqiQcpdZ2W1ZrT+0lZQhMMDa1sXXaSDGzJpOQwsPGswDfL2F4O72VjgcN/oIu3xqxJKwycfyPtUxC0fRZdP207I0CtHi+frbZ+UMUKXQC5kt1tgU8++eRPTRtbtQxiXTAh4Pr16zAEcLUQuppDwM4N2QIYmLMDBw48++yzAIKDBw8KAhgaoFNAlYLMDgyNw4IvkAWbOSLosYBp6fDb2Ki4632B6kV4a5x8ATnc6JCRISAIJK/sECDOn5XzRrLzA4Gv+v/y9zpf8PPDmUGqRymqOm3qZx6r3qtIwUfnJ/NS6+3Ootr9kWUC3s/C44LKEcTyIAVQajAzTegIABBsNjWsP2aZD+OpggAOegQhtCdOnPjFL34BIsA0QVYNs16AHkHWdfl+Lx83/QLCZi9hE7Hcu35U8wW68HcpKIl39d0qZHQJQJUIBBYwqzkL/bQgz1Ug2EzZgeG7Mkbkr9BlAx2YpvJBjhD/68ICNyjGFkoclYHDYAs4BFDyWaWv/jxqb4UBbkifEVODVXKG5XTp0iWQAlWv77YcbHc8hRBA6wszCs7/y1/+EhDAegGlCaqcK/QRVzjQOwU5C1DLg5AaOCqbcPZDgNZl8CaOzeJ1F0N10WcUcC9AllICUxDgQPhdRAP516cyL3DIk86n2t+w7sBdWDAtfSXTmv+vS/6rPH9qDpee9KFRkyCkQvUuCFDDW7IAbpPjEMAdrrGQYF1Cu+At5fnsthxsdzxtEPBN2zsE6wyQ/OKLL7JYQBAAXAgbCoX2oX9qtxX10gCXfw8jDcruQL6OuwyBKgT4OtZK9ar4LABa9EH+XQ7v10r6qlzgflmvmT1/IvNB57tilysRg+fnj+SxUfoOx7UthvJvH9es/YAg/mwzfLgtoO3GGQ4MhgAhgP08oBtYI6CuwUw24Q5XeFfrcFfl4HuMpw0C5IDFaoB4Q/6BAgcPHgQEsIkYUwMJAYwIqndYzgjQTq++5YEnkwgCsubv8QV0GQLO/ydlo5ug7vJXuO29WSbw6y0/Tf7/DAEUZtf5OrPqQRSsbFqZwP2msx2xwOEjMwtPXqC1Mi2LoIPal9iH/2awcCIQWBU9gurSR/lXgZDiAqHPLbva/bHZ1UIbBxACGBHACf1p7D/C8bRBwDdtZRXWE8QbVsDzzz/P1ADuL0RHgCiAdhBQOMA3DnEK4LEAtwKqFMBJ6aTbFzA2f9WwbDo6bX14rs2qzD9TgGwCBBKu06SrA1hIbt3+d7zIUYOMCAE4MgT4ybrVmTkvHP70HLZvIvmn3GrjUJuQAAFsdRuIAFkAEwQAAexnLQjgzjR4gfNDzv9uC8Tjx1MFAQrAsB+T4oIwBAABzAvgbkIqFmSNoEqDlQ6grVDVIySHA0elFzDo/HzEl7WPgTWx095KY/ONd61y1/+BAgRDfWYNP4JXb6McOt91exBy/284IbgJA7IEuNEPqT6rsRX2Tm33gVHp23OZD96EQAccOKZNlIFEwFta4r9U+wwDa9uLAAHc2IZxZZJKOphxka29I/wcTxUEqDCZLzCR0P+AANgCx48fJwSwUiCEAzGpbAsFE0BeQG0irB1dPKXU1fWkwxfob03KMJVrs6F1HAoZB1X+77gj1Ro87ZK0aUrOc62OIbohyZ/Wqgw2k1XfYwg413DNH4Zk1eEsQAAfRdVHkClV5lzOIJx5EQLUO1zdK7mlndrDaKM+tgyQIRAiAhj0LuNbuA53WxS+x3iqICDkY2F2T58+/cILL+zbt+/EiROAABZyqXEgZlHyz85Q3ilQWzv4lgEuqG63ZxQIxycpUiUhz7wgYISv7+o3OhPJvvfgLJiZsQAI2GjDclOrO65SgOxBpMD761lHcDGwFR10shO4kmiR2rQGcAxGftU0qD5tnjls2lurGSRZHv6yWYj6eTsE4C837WRqACFA0SUsKlx5a0/5AreeMgjgEBAwLsjGIdxoVAVC9AViFiX/TPxQs2Bu0sbq4NAjzL0AGoGTV50C1UVZRQEdCSt7UroYAiPoMst7OMKsjOrp5gUE7qvLoMATHrTDv9e/MZgqOn8j1ThOzReQabzL8DZdA9XT9FfVgTL01MaaEKBiQUIAIwIsFoItQF+AKABWFG57aw4BP4ZBdwCmHJwftgArBTFYI6Bdn4Dlf2n3L6O/13OBtNMpWUDoFDQq9+2a1jJktwkBGlnLufBXNb94fhZyyV6VIGykmLyuTzTZMK/hzAoKJf8Ci1nNvS/iMCsjEX5mAKBJh/N/WG6UqlFN0OqhAIE78C9lnjtEesswrQFtLkglIQjgPtdYSNqlFqQSv2LL+tztshhsbzxtECBD4OHDhxBXCDwg4Pjx45B/NhRnXgAhAFZA2OP5lm1/6laAhlKDxx0Z+z8MAmRf5NTjKhYEpR0EWEZ4vofwqYAOQew3kj2fBThwe3cEKuIwS+3DZmU6gPCoqsMD+erBzSoEVM0uXZC2gNoEeL8gpoQFCNBW19xHiM2CmBoEUokfsjWHgF0c37SdGLcalwxm9PLly4CAgwcPwhA40wyYA9evX+cOIjdv3vQsACaBcO69O8C6Ddc5VZ0ciHo/BLhzwdPUFCPwOFZY3y7wLtKzsiynCwJmtZF5frDt+33+YVRPdmPhfplivFHWNWdT3y35TPKrEBBOyBCgZkG0+HwzCy4DhwDtefnxxx+zaxCUP6gl+9CAVOJX7K2I4NZTBgEcar2KuYTmP3z48P79+7m/EC0CoAAMBFhxmEXmAjoEhIqAtXI4CozLsvYwxrVI1feCgMBvddmMAq5jv69bvqrMq+Id9LyzhnBkVhoOs5prwMXecTP8QB3s4vP5QXU952HNlTBoewfTF+AQwJCQ9helFcBtxT5qNrnDoPBzfypAAH7OXmkToPG0QYDk/5tmo3HI/IEDB1gmdOzYMaYJv/LKK2AHsAUwhewUwB6BTAKjN5jhQIaLuFZC0L7LMg+0PLu1qvy2BwIGtTKEoG/9q2ezGH6flSb9xNry9FgE07LFqE4gvvhHZuY1DNw+S/g0mUvhhPy7JmVWdVbsw3KDoMD8q0TAIUD7CGlbUe4pisXA3X6ZF8DUABoCrBcEC8AqYpgZQABeOZ37AnZ9CAJgDmDOIPmgADAE8ALyD6Pg9OnTLBmELQAIYFGAYoFiAYIALyn/FyGgi4sO27ygbG64fgsugC5B2jCnXWbyfk6P/q9+0aTdUGRmbQKmpYWfmYVLMp/DNPkj8mOcWF5AiMWE4eeMaqMHOAQBSgDNEEAWIAggEcCA8mCzAG1d/957723MfQG7PvT0Hz58iAk7evQoIQDyj7+gA9xf6MKFCyBvDAqyWfCtdoSkAEEAs8cCBPiSrXrXfekPzbMd/FtVCAjWb1ChVeHvF8vgMuRFHM7Cp/RF4gKz0oDfTJuIZvNBtyplPklbGPlzy9a+JDzocA/QhIaObhE4n/JzdNCLBbTJtYICuYMgVgv3vGZeEPQ/UAAvAAr3297hW3MI2K2hriFgAaD3kHxAwOFmQP5hFIAOcIsxWHE3b97k3mGgdgECiAJYCqoOZoLgIGUESdsHOKiygAABWo5uDuTlnklHUOkbpWnt8uxGgSvhmbnfAgS4N0Fhf6YSb1ohUHgd/IhVCAhPqYpl/mDHtfbBGu43lb0WADpDQBVKKPwchACmCTMo4BBAXwD3F2T7YFCAK1euAAJwBA9qbzkCtp5KCGCCMCAA9B72P4OCwAI6Bbi/EOeMEECPINM/ZQgQBUAEFBQkBAytXMeFZ5JG8Et1OaiGZs1WISA4xrI5IN0r2QtIMSujg9lZIDncKB0Hs6ZeCHxK/xU06OOOBbMU6gvy7+A1Lssrw3DpzdRJml/52m6jBedL1Rzwa2pje7UPVr8Q6gNVCiovgK2l3n//fUAAy4RhCOAtPK4ff7PAMJ42CNhqUQALF1NCL+CpU6fAAgABgAP8FxAA8gYWx2bBjAuqOkjRYLIAhwD8xaIJQt4DAZNa94seCBik1IBRRyww8P/A3rO9MG4T46XYAwpk7iCZ//LLL2ft/l+K84fwnr8OMMThNx9IwaTmRgnPLfhQJboyBHp8AeNaLkYwwTC5vpWQeoeKFSpBkH2EOWBIMhbAjaqwivC4uvYR+9GOpwoC9NwBAVi4UO8nTpwACgACIPygAJB/+gJgBfzud79jmyAWCDNHGFOu+hBPDRAEuBWwTQjwJThoN8PK/HY7EJDlPzCCoM+zQG60hn3V5hdAZG0vK2DW1hFtpDErIwgu1S6QQgHnOA5n07bJpx4R/6uSgeAO1IMdlbEAf3oZBcaWOIBrBhYgCKBWEAQwNQA2JiAAKgQUgOWnIAI4gt8+h4DdHA4BWKzQ8MwFABAcaQZenD59+vz58+BvKhOkO1A5gqoPyWXCpACZsk5SWlt15bm+6hphBY/MeVbVnC7qQS3n/26WJT0SV15wVrr6gkhPkjNyZu5Avxk3T3Q8g+ZGu8dhcHbwRdD5k7ZwKIh9eHT+elSWA2gWAinjX3oEta0ogQArQe4hdwcSArBmsH7oDoT8Awiw3qB4vGXI7onC9xhPFQRoAAKwOiHe4PwQewCB6MDZs2cxYe+8887vf/97NgsiBKhfKA0BdY/y3cQHZYFwWNbVEShAV6JhlRcEFhCuLAwKtr2kN4hrdWza7iB+ZsALF+wALv0QIEryWLj0HzWxRACxgKzh5QUI1MCfWzbBhqV3IEOARoAAtg8kYSQLAAS8+eab9AUQAugO5CKcQ8BuDjx9LFPwfHB+sACmBp9qBo7AeOOe4jQE6A5kjuBjIWDY0YuuCwUyBHjFkRZrMAeqi3WcUgOC4AVWn2W7ytuzxp5ZW7HQgHDTcn51Hbcy+iGAQ88kIIKjgATY9fmodKa4m9YnKEDnKPkCAxwM26AAZ5zyz65hKhsRBGCR0BbAsoEKeeutt9g4FBDw8ccfzyFg94eeOyEAnB9i/0ozyAXw4je/+c27777LrqFiAawXlCGg1aDs8SD/XWo/y38Q78eygEBuJQaTdk9eF2O3R1wUg7XSBQpeTRDQJDCLqllR5Rr5i/weZm14wo2CaZk1ENBTB3Wa5N8Tt5XBkR+sj2A18CA9gtw+RPPOcCDrRwkEtAUYGoTAAwLefvttGALsSam8gK29I/9bTzEEYKlhhiDwYAEXL168cOECDAG8BmBzKyEaAmoZGiDAd5WhR3DYxgKqXoAqBASDdju+gGDrDs2t5UZ1Fu9pzSWp4RIeWP3MOgvJ8g9SraGLOAQEaJiV/sWNFKTU3Y4s5UmPy5+nY+jYIiwOAeF5BngNhlWQ/H4IUI2QAsZkAb6zGBYSIICbUwACNpt9RLbmELCLQxOAdQYlT3fg1atXgdOAgNOnT4O2wQrgJmIfNQMQwK4hhAAaAhwKCmCJuIJyCJikjbEcAsLq9KYDWoU9qcGCgPClgXvPLLCXMcJlL9jw/tlg5weY0EGZCS7/7jvYLHcf3bCIY0DPkUUExpZA4T923MYCspzLCqhiQRBydwoM2riMoFkQIDcwgwJYA+oaCAhgjQAhAOSROcIQfiwwWJeEAF+He2I8bRCw1eYFYAG9//77R48eBQpA7DFJwAJaAXQEsDqAjYOZF+Atg9Q3Rr3lRrUQfVisYYzKtD9FFuUF6IGA7AWYWFDd5dNj+wEXgn7uousu54Hkz1JJr6KGwWQI7cNmpVcykBR/hi78PU/VzaVhm1JJ0XUTQPLfEwUYli2bB232dxUCKPm0BZgXQF8AG4e88847MAGuXLkyh4AfxVB2MP5iAQGhDx8+fP78+bfeegtUjc0C3njjDVoBhACiAIsF6Q5kWqjXCyopsEv+w3AG6xLuEDAoI1s6IROBEIx0MZbshVB8tsZnyfk/S2MzdQf0d/06Lu35fja7ewqEh6NbnaQNlyfJkzKyBKEAoDIKMiMI/F8jkAI+f0q+IED9QtgyjNEB9pjkgC0AdQIIAMdksbDXCOyV8VRBAAfnALMLaQcLwAxB5i9cuAAIwOs333wTVgAggI1DORgOIAtg72Dlh7NrQIaA4ALI+r8q4QEC8kKs2q6jJrFvI/kCpZaVsZMpd5fmz1jg0uuBgCD/LuGbZYpRZhOCDOcpemLTbkdGAAvJ/6D0p+rByiOY5T94ZIdp6DqMCzoEsEyQ/YLYPpRWACEA+gNME4YAVAuWFgzPOQTs8lDjUAzMK/g/jX+IPV6cPXv2xo0b3D6AO4hpE1Eme8jxy6EaAerhKgS4zAe2GfR89gUMLKc9U1ZnvON2U2D9dbuAIhfEPlsBs1kM6VeJQD6nenBW+vz8YPUGZqWpMjWnhkPAtNxHyOF11Ebv9AxDRMChwUXdn2eeFB9qGUI3MN2BzAukC0C9wwgBWDlYSFhgYJqwBaBXAAG7LQTfezxtELDVNA4DBGBZgJuBobG7KygAXmsHIcg/dxD6U7uDICaYTI8byBICVCnYAwGZBQRXU4CALpM1E9ShhQM2Sk+ea0sp0gABQVdvNN0+cj1PdVQtjkwfMjHJELBROgWDYPdzKHkHx6Vh5c8zxAWrKBAmIsCBhhKEONREkBsK02GkJqJkATdv3nz99dcBAbA0sa7mELBrw9nXV80Ak2fxBqw1QMC5c+doBZACMC8wQACFn3wPEAANQEfAIJWgBSsgrGwX6UHp7ctrlEIebFTXYPyuIGku8K6Tu4gAxc8VdRDy6ggnBPlXQLF6tWBEBAgYl/7/8F8RfudBY3OvBgjw/m7+ePtHtgjW2wQhOgV9NzE2C1KzeVIALB6sIlBLQAAUzBwCdm2ECm3IP0xZWPiw/zE9oGegA6+88gqtALAA30dMhgAjAnT8EALoCKhWoVYlP7OALP8hKKjLVlnrsMxECq6+fjs/oIDAYsNCdJnDawTmX7UOPDTouBNiCgFEpubnH1l1gPOacVkjFMylQekC8OzAKgUYlE6BQfK5OKYAAlQkpiaiQAEIvwxGwgE7TXz00UdQMIQAGQJ7KzXg6YQArCQof5YDYWJgp2GGuIMYd4N87733nAiQ4zEoQAjArGMRsL288/MAAS722RcQlH92B+pSzvnHZT6My3/V2x+Uc1DgWXo3Ul/AKgTIiAiZwuGgmxXhu8IX6cx+CMi2gJ5MwNYg/2vWPiDr+XyFQCg4WDXMeLAgAH+xMNgmgImkhACmBrzxxhs0BAgB865Buzb03L/++msQeAi/xJ4OW5oAv2+GNhRnjQArBVUBwtCgQ4DrouoINnx1hbFTfYgIiAW4PPgFuwz+Ls4f5Nn1dhZy9gKalW68jcZr4K0B8JrbhLtbMUf+cu3ApN3O0EFBuJaf4bB04GeDaGg7u6+mkeMCPi+jthxjvZZoJLBmajAHKQAoIeuC2F2CRECGAFcaIACra7PNC9hD46mCADZsAQuAJmchNxT+22+/jRmCFUCxZ1KwbyjOeWU3KGI8uwm7I8D1c8/IxDLbq5nfZrF3rRX0ZBcKBLW/URr8HG5NSIw3rQuAGxEUeJ5/v2kcErYbl+RnAJoli6MKYe4UnKa4YHjgDhOBAgRDwE2tPGtOEwYpBWOt2VaAFMD3EWEUgLmkgQUw6wRMUxCwV/Q/x1MFAezWQEfA1atXmQuMGcJrQDW9gPwLIoDJY1IA3QH0C6qDEODfrYCqwq9CQFAv2Vh10zTIv3982FbIBrsjw0FV4VeJQJfFLqH1z3oUYLPWJtDNDRd4twgcmGZlXMDV/sQSAdzw0ZFsw683YXzWcaqnQ/VRhzkKEOBDewpS/zM9jBSAIQAGkij/VB6EgEvNwKKaQ8BuDrEArDNMFdu5scEjXnMTURoC7733HhgBWYBDALkAWQDmvscK2A4FyBCQAwES5nwd9w5kkXBRCXKeDfsNs/aFES6lLqviBXmbUL+CDupS1dvwr5tZ8tK4de8P2x1ZprVdhh0ZZUbxydB150O7A3flCIbHO0wuW04WWIC2EmETUUEALUeqCuoP/BdLCyxgDgG7P/TcMc2YDO4dCEMAQMDqQDkCmB1IFkDJFwRoczE1Dl23qv6eMeqNAuQV6eRWS79qFIytzWYXBHTx8DCCQLqIBl+An0wTYFb6C6pjo2PMzAvocCaBl49gZE0ERrVEADevsi/AhT98yr0MAa81TYM2KKAm4sQClgawOpAQoKAgtAiYJhYb3YH4pVtzCNitIXcgZhGSD83/5ptvspwbr9kmDH+h/xkRpAtAg6YdphbzjemnI4ArKbimM7fMS6pnBEMgQEA4UjUEMgXIGrgKAVVq4L4ACeekrR0mHQAKVCsC/Is22l4ADiVCjYnVAvu3BGI1tDioP16ZA+sWWAlBwZwdsG5lF5kCaMp0sugGZp9dg8kCmBdMFyD9xx4XZI4wU4PmELDT45s0cJDhAAAzIYCFnKwOfLcZ3ESIOp/C78UCmG9gf7AC8gLyIwEFJOpVOhBQYFR2DRqZ3ysIg3MEKU/n8LPSONdwkZtYJ0Ixf9fwendm9oJYQ5XtV22NgERjs/xd2qXqpZydEAVMHLRtArZDBBQdcJ/fKNlrAQ7W2obijAUIApgXjKXCdBL3CGJdsXcYXuD37q2I4NZehwCOAAGYuTfeeIMuwLfeegtzA4sAWEDXIC0COv8IAZJ/Ng64deuWeof3Q0D+r4t98AXITA3XDDqwx+IIHoFJqh2uav7qR2Y1Rx2HDHs3E9xrECyIYETMkqOBI8tzeKp6Gv5Y/Mn4gx20ZcL+YPvNgaz8Byk0wPPJArSJALMDmRRMCKAtIAhgmQCW2c2bN2e2s/Bui8V2x9MAARr0CGK2bty4AWLG6gDMDbEAf7mnOGaRU0gTQHEBDEwzptx3E8xKuwoBmVWGoRWZ5dyN/3753ygrajLDr77rp1VVdxDpEOGXseAVB04QBD2bKWVwUhsBmLYznCzoOVP+3QXYAwFZ7QujNcU8gakB3EGIf9kygArjww8/5PYTMgSwnLjFON6aQ8AuDzx3WK2YKkLA9WZwE2HI/41mgAsQxZ3/ywrwWEBQEVWtFV5nX0DX+nNp3w4EjEsT2sW+apnrhFnH2CiHpFrFwl0QoK9T1wBnEDrHrf0Qzgw45Z6OcWnsjGv+0aF5BBQO8PzLYAuESdFEZCKgI1gA0P/ab16pQRiQc1aas2sImCMgAJpm3jjsRzEIAZgbqHpws1dffZUQgBl6/fXXcQQv3nvvPXp08JdxQbYPAwRgmpkRxALhLLSZro/KMUx5wTlfZT3Fq8c1QyB/hYtQEF1v8uGmfiDnVSvdnQKS8yzw4QpdvCAYDsFOyV9dRYEqIPZAwKrlBWYi0OOj9bc8dgMIYEaAhiAAS0UQwHxBvIaOmXcN+rEMLEqwAFC1d999F+QfMk86wB2gYQgAAhjdZZoggYDtQ0QBVtsC4WHboErCOWx7eGT5r0JAVjLBLnU2MaiVJAoasiVP+QnSSzGrcoFgn0/LeqFQAuASHuAjQ4DOCYaJviUfGZehUP3ebF5JYwfCJRSQwHe5A3wWAjr7dTSwBtg1kC0kMLh3CCMCjCgxlxQoAC3C2DNW0RwCdnrkiACWFx17nCrA89WrVyH/AAKwAJgDZAFMECQEMOULs4uZZl2AHAEyDtfblgHZKB2UBmpeiEH+XbzzWh+b28+1n/z/LmyTlBfQbwjc72jmtZHc+EG8s7RvWowgXDBQFVfy+l3hMQaGNSrdgcMyziJJXitHcA3mEIwziOxZ4HFdAWSQLcPUOFgtQ5lj+qe29zzbh3Gj6lkTFNyaQ8COjQwBmDwV/0C2wQXYOxQQABYAXsBKARULY9AcwFzCCmAsQMTSJTxo++rI6zJ7BKrkdlAmCzgxlkg4BZD8Bz+fvxUIvBvqQWgzQcg638U++ALDR6q3FGi///b8QIJHYJhCLY4CQYHnlAG5YEfmrxnWHDeOI9AEWA/sJaegoIx/LCHGj3gEEAAWgKW12WYHziFgh0ZOCrh9+zabgjGRC7OCubnWDOD022+//V4z2D6U80cHL+aYBcLaR3Q9JQVlCBgkD3OwAjIEdF1qOCxC4hkCqq7+QAQkb4EyZCHP3oRZGSnM5L8KCn5ZQUD29rnnq4bHAAAgAElEQVTlEpwdHiwYl+kD/vyzJSWJXW5H0P8O5dmyyP4ani80wVpi72DtJkjjH6uLKkSVQoQA/J21qUFzCNihESDg66+/xiRBzinhGHgByacjkJlC7zQDx5kRTESnFaAeAXnpVFHAV6SrlKxe8vIN8u8qMYTQXE6qpH0jhfqyGqfQOo/QBSXPwWuQUaALFCTewdT3O89egGHTFnmchui6E3gddxmW/tembytpBKegLhhomsOBLnX37l02j6AhoJahoI3kkowlM0GQBSn4gVt7ygrYesog4MGDB9DwmAwa/Bh4AQjAkTfeeIN5QZgn9g4kfhPOGQtgs0CPM/egwLDDEdATiOqBAB2sRsv8YFDgs1pCXhUj3ByYWR+hqifPscY9Au4C8DHtGOH+g6rPTEco4OLq0OBoG4ICyhSqQoDPBRlEOJ4hAPpAO4ipUkjLhhDA0jK8ZnN6/JytOQTs5AgQgIWCmeDGwfTZ4AX0Pw7+9re/BQsACrBfEP2FwAL8F68B86AA3DWgCwJcbrP0DixZRR/cviGg5e6OtCz/Qa6C1S3hdH5ePUHyf9/6hbswuzkg+VelwKwMSWzU/JFONwIjcB9n8IlI4INl5H7BQQq75uxAYUFV1Ae1GKF4gZgFIIBdAx0CGAVk1xkqElYQYoEBAnCfuy0T33s8VRCAmWM7V3r+MSVMCqLwkwWQwhHI2UQQQK5+oWABKkFfS9mBQWMHRiC9pDUXSEH+eL5mEJUuF0BmBD56QnSTNktnVgslBtQI3sRg+Wc+4h93CPDfNU0RwSDe2eYKWDkowwFOB9RBAH+5QbDMOj3/DMo+BChsJcyugYQAbSjMxaM9qZgswOb0uP7eogBbTxkEQI3D7D979iyAAPpfScFMEMYR7SmOv3QK4DWmlo4AsgD3LTl17BJXt1195OyUfJGude+6cVIbXVgwtY5ArpA32sofeuOmTTKvM4VsyU/beuHA/P3kWbl/QZUUOJaJxfRAQOAF/t9MuDhHVN3yCIgFCBEcAgTrAd9HbTcRcQFWCvj2AcoIVNUpd6PDX9qYDgF7BQv2PARsNTuI4cXDhw8xVdeuXTt16tT169d/2wzIPwwBQgDrhen/w39BDXCESYFMCuLeIUQB5/N5DMsg03qZmrreJpyEoECwGgZWwarLBif5uIwIZFkNAum2fbDVcXLW+U7pM/XIBsi0NO+l6t1CydTDr+DiHQ7yOUjmM0D4dKyXMRfMl+v8YCBkj6BmpMsoIBGgR5CDtoCCAmo8Q17AztT4LPez20Pj6YEALG7M0OXLl48fP37x4kXQgRs3bggCGA5kFhAoAEEBR1j7DYxnlxgSgUAgHwsBAQWcBfjCkrZx458jQADH1Fzrkq5gYwePQKbr09J3IDn3q03aYv6RbWHsUu231MU+dLfuzggYFDR8hoZhm38VKMCwFn9xOKDEatZysCCguUPAWhr8ONsH0QpQg2naAlhFWDxQIfQrMUEQEICrzSFgR8c3bUkGBpYR4BnCf+TIEdgCV65cYSyQsQBRAJoArBdiySBjv5J/+QK2CQGBnUoLZQjQB4NHQOIXaL8LoUOArPou+q3hYpkvWNXVQW+7iI7TjiZVCAgkwk+bJNdg1TrwB5JR0iFg3TyCIRaQ3QGu5LsgwLGDfUSh/727NLsGAAJYew4iwJ6ijDThPvcK/9d4eiAA04mJuXDhAiDg9OnTly5dgjlAIsBNxNg+GFPFqiEGDmHIcdcARgS5iWiVPfazAIcA9wJkFhAcCkHjTdNwGXadX5XGWRmlD8o8iCtfjC3vUKw+C7CfGYQ/AIETGX2LM5fgTNFPG7eNw0bJUTqshWCdeXmCEAemklsDcnt499EGUiBQCNfh/oLQDWwfzH1ExALobFb4mToGN7+38oK2ngII4Pjqq68weZDz8+fPEwKABWwiDM7P6aEXF/999dVX2VOcvhzuG82NA7hcnAVkFAgEfr0WmsryLwgYlE6BgAjj3jEp6216tLHL/Ebq2OFmdhVcJm3WUDAo/FucgAQEySCSIWDY5gVUR1D+YXgswBW4NL/Lvzw7Pk1rtfSNwALwce4vzNRgtpZW+zCsJe5P94dmkFTiN27tHUcgx56HAPkCMVUw+M+dOwcIOHXqFDd7hbRrN3HMFhgB9D9LBtlB9C/NtuKsBgkRAUcBJ/NBhsPCCq99+GeDR8CPu8HsSnLSERp0UQzipzEudyuZmpFfRQ2X7a5rVmnIRnIQTpO5MU65QD0jWP5V610CLB1OCCCt2yYEDEqHDiGADcXZKZCtpbmtEJQHFhV3qRUEqFh4DgE7N8QCvvzyS2hyMPyzZ88KAsgCaLBhwqj/SQGYRMye8IQA2gKMCMiGDGUnWm1VWzQssjD02UAi3AEWBH5UBgKcZksg+9FB7Jq3OrKKQyl2/2qnG4KDiVnpfntd7MO/Wh/J7CO4UdxXMirbq2eLwNV1fvL05BECiOlVdK5CgHMBXgFLgtnBDB4TAmALYFHRzcyqc+aYzfcU3OlBFgArAOiLGQIqv/LKK4cPHz5+/DhesGsg/TT4C8mn/DNxiJWC2koseARDdkDVHeB6w9ef25PZs+jrr9874KqyhzOHMbXtQyWKwyYM5kRAYqnv1UG+JrGftPsd6q0qMDlMhIOBnvjPGZUB0VHZSTXIvDsCHGcD7OqByxbIELBaJnG6LaA5lSEAxQANAZln8gjdgUABmJbsUs/9KbCisJYePHjwTbulzRwCdmJ8Y9uHQJ9zE/FDhw6BCJw5c+bixYucJHpuIP/Xrl2DIUDvgCCAGwqzXSyzA92Z7HomuJTdFl1NyepdRkQXBASZD2w5CHkQPw2ePDUzXsI2qqXZODQMrWeJX02CPTETXaIe6H3gEeMUjKhSHt6JfyqYRXrmVVMreAE4cWIBmscAzZqg1dQvxC+FVYG1wa0EuaEAIQDKH6uLHBMQgL9YSGCjW2mf2x/52PMQwAeNtQJLDOINQ+DgwYNAgRMnTnBz8bebAeP/+vXrMA1wDr047BREAy+4A7kIghqvmverZQwpf8RHgA+HgCz/eTgEBAYe4CBIpgun5N+PiA6st51RAgYFiBmbY1LfOOn2OA7Lvf38VwuhBrWOSfpUMLs4MnV3LyA5vKNAFdnXLafA/Qg8jRAAIsBmk6oUYjcKppzT04Tx2WefPXz4cGsOATs5mIaBv5hFzAH0PCDgUDMAAbAFGBFg71C2EiRyM5YTIEBlQr5Wgt4InD+4oIMi8terKd24Svir8haAwDX/uCQI4bQgmcMyDbFHPwf5H1us3mlI4BcOBxqj0tkpCAhWlR8cWoOm9XYvgFEKwWYXAFGAD5zOfDl3QsjQ84WqRpy8CdxKgLVArAtkLhAgAAST7gAmnuNMmgC7LRbfbzwlEICZxjRA4GEIHG4GIYCpAa+3Q40DCAHsGkKCR0uPtsBiOxwIXLcHVqlFs5xG9gW4MGR967KUQSGLepeWHreK2mU7+yOHZdG+XyfIvyRzmpIFMkiF1847/IjUuGR+UEb+3QvrxyW6AY59UjB93CBYRCAA9ErqOxyghDwCV8DCYENKmgBsE8DUALmW8C4+8nUzdlssvt/YqxCgHiEMBwCnAcaYD7oDxQIYF8SA/HNbASYLArPZYpBEgAmCmGlyAQaTqAQUWMqCXSULWdU81vivcoEgVF18OzN/BQ5cCct/ObCSJBn/j+UgPEdflBMQXedPzJgfmxOhen2hg9+PlL+769z56sdlBQSez3geiYDDusayZRNr6CIKB7CPKPQEC0z/1G5CqU4hgAAWC+BS9AVu7Z1wwNbTAQEPHjyAAEOwAQHnz5+H/B88eJBBAbYMZCBAXQO0mwink+EAGHLcT1oeAemBYExy6WS/kauaHtoZqG+PL8DFxmXbVfRG2a5zWvYUxJB09QBNZvWS53AkoE9wQEzb9CG8kDwHgfcb0C8a1rKk3GoQBZBXxUODTt2VDtgDAZwjAbTLP7nDvXYIAsATmV1KCkAKif9iXXGvKqwo3C1W5hwCdmHcv38f8kyfP8T+yJEjQAFAAIMCIALcZZiFgyzqZI0wW0HhBfeNYeMg2AL0CHAZZZeyBF6EU+tPHqkqCqyl1ACx6+oIzDlIUZBkN+mzQa7TPCQhj4Db2CPr5CEt7UI4sgBhuGEBwTi5FcJp4Wc6yxi3jkmPvDKpQfcp4Q8O15zeKwgQCgimlS/k3lzhiOSfWwwDAiDzahNCFgAgwKrDooIRincnbcugXXEHPvZ7qTI5/OS9DQH8tZubm5gA+vwBAUePHgUE4C8ThEAEgAK02QgBmDDQNuZ7M/GbjgChAInAcpsf5j5keZ4l5IFbuv8vRKFc9hwCuqTaIUDCkzVq+HiQvZG53/iNq5Ybx7c8cjlMwbnAXPhu/joxkXHaJdXPzBaQnymcyiEYhwM3/h8LAY4CjgUyBLJbZ7mtEWI4AKsCi4QZgWofzqAAPYIsOd1FCPimHH6w6xy9u+chgEkBmBgIOSAAMg/9DwigR/DcuXOXLl1ijhAhgFWDmDwGeDw18E47tK0oyWEIIIVwgBijPAgimT48R8CdXm6lBzdhVrMZBYZlRo0LmytwifFaWfXgECA2rosMyzaebtv767HFCN1UcSN/XHYEDDcWyL9wKrgDdf+ZBayUQ+hMMSYKUKvrtaapCwL0cawNZgQxBYjpJOodxBWFI/jtu5IXKHnOGl5yLqs5Y9OehwD8xaNn/S8MATD/kydPMigALDh79iyOcE8xhwBYcdwfyiGAKEDjnxDgqma9zULXupH8EwL4QSWl+op0neZpQnlkfR5UeqYAbrcH7JAE6vrVfASJd/hqRwp910bbC2xiqQHyR05SMNIvnv2RQ3NJ+rcPSx+huwNDUpYHBUKwRjJMgO6BABl38gH7zOIKzBFmIjCEn6lBWEj4L1fUP/7xj9lsxnDADgNBVb1nCHg6WQAHFgpkm7uGQuGfPn0aVsCRI0cAAXgN0wBEAG+xj6B6h3A3KKYG0hCgR9CDyRJsEXvpeXmbKPN6rRdLqVjtsUAQlKFLwjiZ5cMUZvNPjcvwm/S8IKAKKLqsYGVocYSxZfuOS3egRwrz/QTBDvc2sA3aAjUYWS2mIHi1lqMVooNdEECWxzlabFvFek6RvACcd6UGsEYQ9j97B7P3LJuIsiElFs+DBw92BQI4siEQ7qELBfY8BOA3YPoh+Qz7Xb16VRBw7NgxMAISAWYEcSsB+gLoC2SjeEAAd48MEOD+JLcweUTS7jan40L2JjoQrD+ug4DLTJAQl2QZCH6OOxH8aiHY5treDQGZG35BzwgW//dR9QUErAk3liFgUPZcW7MSLNplVQjIBpozec0XuR5eeKtY0X4Bh3sN8FluK8T2wRR7WgTAAnapxUFcVnlBP87UgKz/OZ4GCMA8XbhwgZsFZAigO4CRmzebwexgln9S/j9vBuMC0g8rVjS+aBmj+q8CSM4wqWQ8myCYqR7Wqmr+KgQEteluBZ3gYbwADXx3aFueiRcMS4ef5D/weR1xm98jDvqU34ZMgOzUcIoxtHTAcZnF6D92vWzHFpR/cAT0QAAT/vDfpaZDjBsCygggTPAv1gYhwPm/IIA70+AraGxv7amI4NZehwA6OTBD58+fZ+YPIABqHyYAUAAQcOrUKYcAJguztFsQQOXPzeS9WEjSrgQhhgkVZ3ZXk9ij3pX8a0V6aJCyF2h5JgXZPze01mPBiSCBzLqX57v+15fKRyBACb49XSokArg8ZywIJn3XEKMJwOcQwHPCTw6u2SoQOI8jTNO3Rye/or8Eek8WWG42EeAHFRQkbWTXQFoB7ENDFoAP/jiV/2PH3oYAjC+//BJGGuSc4s24IJQ/UODEiRNnzpxh4wAqf+4mgPkDo2MrKEHA5+0I3iOnAKtNCaqOU6vItvSiFNcqHhd0EyDweacD2efXJYrjWrWvsCOAS7Ad+JaTbQUsgxUQ7q1HpLMN4mSninEhRBJe6Bw9JUcBNxa6QraSfwoz475qD+FsTkCvWaYVgBWiPQU/bnapoy3A6iAmCwz34A4CHHseAh48eACVDvJP8X7ttdcAAVD+gAAAASAANsKrr77KjCDuJoDJY1yHlcLsFKCgQFAaEunlNu1Uqt5ZQDURzemALIJAZYOLPqNA5ggj49VBwgdWb+cSG+QwfMrvxIXZdXj4bNbY+fq8jfzTwme7xNvhYK1MFhZnyRCw3BQIyRBbbCsFKPb0+FCqZfSJKbgfV4YATvOdhaE8yP8l/8wUmM1mcwjY6UGvxsOHDyHYkHZuGcrdhCD5dAQwQfDGjRuQf24uQl8gJpKdQhgOID9kdpAsQCIC14RQwB2E7jcWCjgQ5PqCkC8gs9wpfZbSoDA9Vu9CzuOjVMwnXhCEVl80NIIQpD3nCGVoyJaFPqs0gQwBQcMPS7M/yLyEXMerccEuCMgowJIQQrwbC5puzS8+xQRhQgAGC4TebwYDzCAIYKNzCNjpQQjAo4cVAPufQg6bHxCA/x49ehREAHSAEED55/YhbBaCaSMEcDXQFyAIEArI5y/FLlGX50/rzH0BXjXgELBeFsC5VHuk0CU/UF99fFDLL6aAZRQIYBEMEFe5g3Y/D7fqB+VwPhKoSkCEYWL7QduvtTWUHvzLQYFgSTkoBENAyX/uzeUcCQW0hdxjIYC+Q7UM4/ZhWGwkAvwLjuCdArQ+d1U+tjv2MARwgIDt378fco7JoMMPrwEKggAlBbBMiI5csgDmBeEvN5Bm1wDlCHqykCxDQYP+Ki9ATgR3Ii6WSelKMVpLraydAEuKXN4CDdaZ0qvuZg9aN4BIuIJ/VwCgLOpVLpDthSqEhYNDM15Glr+wbmEL1/MCBXn+AgR4RMBzN2W1UZg/bYZ2kQwGnaK8PMhlgJOVUc5dA7iQaAvgmt4viCtzDgFPduhZY9388pe/vHLlCiO0EHLIPIuFmBqk7GBWCpO5wXjjFjEUfocAeYy1v5Ak3w2E4DjQfmS+5pw+eF2K1mtXcK4qh+GcfkkL2BFos491S0+oKuphSjQalq7BapBPUu0YlK2AAAEDo/2ZEQjFVlNGcIgFKOfHDQGG9yj/zARhqyilDPl8BbgXBDBBiHFB7l7NpIA5C9jRoQf99ddfY86eeeaZa9eucZtHaHtAAGyBY8eOsUaA+wuyfTj+srTb2wRwqH0gJ16uY9n24v8qKBRZcEYg+b+bWtasppEhIBsCw1L/D0oCX1W8ekt2eL/+D18tEFm3vIMc3pc8y1ngF6+C2sgCCkMrQKhCwKq1WhNjyue45udrhW8YwRGl59zdageJgLI53OjTJArraQiwrhTmABvS0hcIuxKznLNuchLOj3PsbQgA9EKMf/7zn7/22mtM+8XEXL16FSgA+T958iSwgE0dQAFwDiGAxd6CAC0IRQQ92qcFIYWvZeHGgmcK+vmL5Q5l2RcYjN5qjEAQUH3X1bIbAq66/QrBDaGPZPfEmoUJx21n4VzkH7IP/H6GpVUS+EK480HrGnS8CxDAsVZzFq5YaYAHZbJVT18AZ9/nMaR13mtSg0kJ8SnGBQEEf/nLX5gOQEcAVh2AZivJ/BwCnuBwCIA8P/vss7D2gcd4jVmB2r98+fLJZrCDKCkAIAAcgXvCazdRhwAmCIgBOgQoyUwQcKccchDqddin+LEo4Oy3yuoDRgQ1nqXORU6S456zcKnsY8uIM7bqwKHl9mZ24P/1m8nBhaDb889ca1p6u86XbyXnAim9T/EaD9bQqqdI0wB07498gbIFAgTQfwQgYL0QiSfMAbKArWQIzCHgSQ092a+++gpg/OKLL0LOMSs00ggBZAEXL16E8LN9IOMC3ApWNYKqEeDgguCsu3rn6hFp9OMSfiYXKL+A5y+mqkEHgioL0H8DY6/S7GHp1XfUGCYvfb5mVaOuWGsD/+CgO4dvmAJ+/f8NPyrAUHgIAkdBmOdcesjWsUD+lxAXZOgHfzn7Xie+0NZ6uvuQQQQsEu4piiEIIAvAisL5XiDkq3QOAU9kOAsAwz906BD0PEs4CQGwBSD/7CPOHcRoBWgHETI67hhNR6BsAco/hVkqwiFA0ODqJTACjzCFpCDXZi5pPSiQTfeq5veT+SKYEtWLiw5UzYFAy8O3C0H0bnYKOucP95PvM/yQ9eQX8COrHaX+npe1VHYBolVPWwDzThpIXtDlC2AeUYCAD5udhdk4GCtqDgE7PfRw79+/D4E/duwYrH3qdgg5pP3atWvMEQYE4L84ByigNo++iRDNAa4JZwGCAAk8lwhdSpkFyGuoEVTTahnQ5tpdLXNdJJAcVfKfpT3ThEzgs/DoshmG9DqDTvbnB8YxSrnM43Y7Q2cBfoX1sqlxuIdsm0jPZ3q10ib8B3eA1DuDAiQCrgC8c6yIAOcabyk1SANLCPKv0KAMgepC3XkB+V5jD0MAcBcQwIqAt956C1YA/TTgBZD5c+fOqYkwNxF6++236S/gnhBiAVIFHhFQyYDzf3cEeqhJEYGAAtJCiggEHrtc7nXllkKQz/VuthygYS35FNZLPp9JfhVrnHeMytIAfdfAnPkjC1KMU0XwsCNMmOFs1Rqu+41l/p8zr1fThiIeEXAIIAvw2VcA2GM6tAWcBfyjGVhp3KiSfShxD3tC2qtjz0MArABAAGaCe7wAAt588012EGPvwEuXLsEu4LZCighiCjmdf2+GOohLngUBIgLKIA6GgENDWEM9cLBszYjX2mZEIY94rRxdOt915mqZRRcsagcIXSRgUPZQDGquB+fwgzSGZYSCwyMUgUr4z3RXpd9JgMjVWmpAFQI8rVuKXeY9UYBEICSDyhYQBJA88gWTgrDwoFRwe3MI2NEhCMCS+tnPfgZtz/6N7Ov8zjvvgPzDBGCzEEAAWACLhWUIiAhwRpUUJF+g8oWVICAfQU4idmpwr2wW4vqqCwKCogsyECIIAQXWzFUmPblie2YGSVttU5IyZXCR83vwMWy2HglVA8KXKoMQdjCgOLL9QoLx798eoDBbMVUIkCHgs7BcVnYQBYKTnzrASZ9zAdoCbBkgCACjxErDwoNGwY+aQ8CODkEAJuk//uM/wAIg29zjiR0dIPBMEwYQAAKYHcS8QCYFsAksXTuEALmFKf+CAI8O3LZqU/EFPxg8AouLlZ0t3Wv9WAhYt6r4te7h8pP5gkRONAF/HRTWzfM3KI2CbDuMykrEQTIiRmUZgiScHxzUWphWOX/VJnJHYGAEAtlAwfyIG3SCAJaKyEcglif/LpcE3QFkDWCRWGxUKlhLbBw6h4CdG4IAiPF///d/nz59muq92eX5A4g6BP7y5cvnmwEsIAQAsGkFCALYPpD7xrsjUE7jYA74ax9ea+yewoWyiJiMgEtWBq3oq+OCQ4MjgoTWDw5TXHBovn2eKWHWB3Vyfte/znW1y3mXD39g3gG3/9fb9uSODn61bN1ktb9aulFWLLzq+n+hHJ61RV9AyPbhvpLB7hNScD3IF0APIlYOVhFZAJbQ5ubmHAJ2dCgiAK3+zDPPQNsz2scSbkzMm2++eeXKlQvNAAtgOIBlwrQX6A7A+POf/8zGIdThxHuHAGcEqjbPEEBnkgv/wkKlldCitSSTXeBHlqzX6Hry7blvXwddJ7tM9jCFdYvDybbP4BKs+lGtp3CI8w9SBIEuANEHP8dvxiEgmDkBJbu8gF0QoLQfjNvWHsohIBiDggD5AplNKPche4ozKICPP3jwYA4BOzr0uCH5zz77LFQ9e4GRBXDL56tXr0L+QQGuXbvGSkG2DITMczcYzj23EsCCcPfvrXJQb3DRKGogA8F9gWG4I3CpbT3oCS1eQRBSXILFG0TFhbyL8DuZX0tegAAfzs+rAjmyVkIe/Bum4ZrcrQx/d1B6EFzzB+GX2K+k3MpgWC1bdqBHBO+2JV5KDVLDaOhz9gISEQh+H0UEGT4QC6AtAH2DlYaDbBYwh4AnO3KiBQwB8P/nn38eLIBJWvxLFgDJpy+QeYFkAX9odoPC5LFrGAu/VB1AZe6aX+Qw+AVlIvoJt5uMYJFPTzVz71RXpCBHubS43SR2CFhPfrgqMx9a11BZATroprukPYvoIG3v7aZHPigI4M0PStfg0MKK+jn6dr3rzD/Q/uwFDI7ApbYjmEiZgNttAZb9cEkwOiiPgFsBFHsOMgJ8io0DbjdlgnMI2IUB6IW0HzhwAKKOF+ziQkMARADkn1uJsacgjjCLQ5vDCgUwnWom5RRAC0Wi7k7j4B283aYDL5Z7WldRwIeHBp2oB3t4rW0QEmzsYVmf5+Lkx9daN/tiuaMuLxsshaylXTjDPQxqI3glA01wPe92fkAcPYEVS6NarWUEhpiLaJdDgNz7Ym2KC/6tHZBzzxSUb4i2AJOIuEJYLMQ9hdbbiOAcAnZu8HEDAkDDDh06BDnHC8ZpGarFf6H8YQuAC4ARsGUg2zyGiACzA1gg5Iaf9hTIKJC5osKEiiTJ/g8K3yOFClm5fguOgBXbvEQ0ftiRFxxQw01lXdyDlCtNCyOXdncfumTmEUDHx3pq9e18ROzDL+4+CHlD/a2VNplaWOby73ZWlxWwUPYOE8NXqbgSBDibHj4QF+BcEwIEHNPpdGtrbyQCVseehADunfbgwQPINiAA2h5iDw1PFgDCTwhgXqAg4IMPPmBSAPeHVoIgy8WUFOhVgyH47+ZAsA48KBi80E74feG6YGuhOymQ3r7XtiHFkR4/XODeLmOUQFeh8k0GbSwJdAae0UQkwtEn3MmgLfJTgMNxymnCurkqwxflb/cbC6C2ZG2CBAE6QpHmFAePj6i+2J+SCEQZNNyJgI8wHKBNBPbc2MMQABm4fv06IACGAIRcXZy4zRshAOYAvYNKCqD8iwVw1kX8HAIUIr6dxh3rFODVQQ4Bd8o+YqGUbbk3L0CysZb2NQyuuEFZ2FOVLo1VS7lRPEIvJGAOBwFNqkIbeIGASV5GZwTCDm+fV80AACAASURBVL/nqqiH4WEUEailcixaf+dAvhwFRN8IBJJ/5gh5qrhIhGZcvQYYVOY+YnMI2J2B6WSDsAsXLkDVc4MH9Q7itiIsEGaDF1oBhAB6gJgUQBYgvkdy6O7A4Be8bWmCDgqeArBQ7jIiNZ49WKtmDGcIWE998oKyrbL0IHUS5rU2E9nhRmC0VkYEMp9fs2hiNkDCGKTyAd1w1UIJwx0lgfZLnkMwxfm/G1zyArhHINj59Pariww5oEo/PE0IH2GOEE/GWwoHzCHgyY7wlAG6ENdz584BAgAEEHIWb7KEmxAAjsBmgazoYpmwfIHMC2JSAEVafQQVIv6ibTLjyYK3y0zhO9Zf4LYlCC5YcxEFCHxpeiDAD4oaBPFwFMj0e90CaX4RSR3/y3dXLNK+Vtr/66ls0aFkvez576+DA8+/PTCUteRlyArffSWZp/BBVa0DZ1iODsEjqxwBEgFqdXaRcAjwGecQC2BOIWb2/v372rd7V0XkB449BgH678OHDzFb0P+HDx++fPkydwpRCwf2CwYLABC82wxCgFsB3CKOu4mot7yiPs4SCQoeHfy8rBdSZaFrDDmTcu3AolWwykBYtqwB6WRZAc7Jq7R/3ZznVchYazMI1kr3m1iJswCnCU7yne178k/OFA4yX7UI1s006CEFq6Vrc9n2/1pqewf5mZlByEewaLlDsghk26uvPOc3JAt6spCazeA6m5ubeX3uobFXIQAGGKT34sWLgIBLly4xVZMQ8MEHH8gQwF8ZAuwXxARhZwFKDs0QoA5zgoAQHXRD0VOD5R3IsQBPXFu0/a190dNXLwhwnemi4grcWcBqLRyw2tYFrJtDftXSb1Yt9LhuRYfrya0wSOHJQPUDCjinCAGITAryzbsts1Lu7x60vTsIhachLiOjwCGAtgDjfAoSu9NH0E9TkY5kvJhDwM6N8Ihns9mHH34IQ+Dll18GFwALoC+A7kD81yFAPd4+bgb3FJUvwHPFCAE6omjw56k0wFmAF5/II5iVfwgZLpSdBV2PSVRcP69bAC9o0SxykiXXhFmufEi2ldUv499J/nrp8+NwB8FqzVpZS0XKXWPZHKX+8/WU3LGqkfItirigOwidAigHnFjv7qGQICSTgfJPvoAXuM4cAnZo+CPGC5BP6PZjx45xH5Hf/va3jPzT8se4ceMGq4O82TN9AfhLd6DygojurB6XO1BxI/cFenawE8UvrHGgfAGZ/OdMAfcFONWXOK2azbye/H+rFsZzdeqyLc3pXsnAJtbL7GOX2Oz8C8G/9eSP6IIAERYnIAGYZPUEdBO7cf6vg/e60zE0EZ61udA2BXMLX8nCgfrxXS4G6gm6A3EyToA22ppDwA6Mb8qBNfH6668faAZ7hDL/jxDAemGVBtBBQAjgzpAOAbfartIqBVU3QdULady2MjIFCPy/X7TNZ8JylCGQ5V/KTc45acvAkF1iJUsOAfp4ZtGeiZAlMHMHSZoTgcA4JPzDVJvUxUr4rlsrAY8yBDguLKcsYD8YfH7Z+RIgQKFBxfm4MLTZpAOE5wizvggn4y1uKDqHgCc+AgRg1i9fvgwKQENAtYAa3EGIbkJCAPMCVCZEw48e4FvWHE75Qp4p7FmD1VhgQIE77X4EYqGCAC3KHPGSxK6Z685FSHK+XkYNRePXzcGWHeZBc2YHhF77Da9YEuGq+Qgl50MrNFwxt2LgLPkeMqnBcKjS/eiJLZbtABbbysvsGlDgcMl6hyku4zkg8vATAlhCppxROYYVBdD5ZAHz1KAdGi7/eNyYy/Pnzx9sxiuvvEIIUGiQEPBOMwQBzA7cJgQ4EaCu4HIRKVA1cQgauTngwh9sfndiaR071c8QUOUCgzbnzyV/OSUgSE5c4P1+5D+TUl1pd0DNLD3YHZT25ZRfED7uZrx/PFj1QkndklOY/C4vslRGWBetUiPkBQhEvmirQmTkCwK4MMgCPrOm4woeMY8Ip2Gi79+/P4eAJz74cL/66itVB2Aazp49CxZw/PhxGAKvvfYadT5DAywWpCOQnZ7JAtQyhLYAwwHKD3P5/7Qd/lpHfAMCLyt0OBBNCMb/omW2BLUsMRMcZGUu4XEK3aXSu6Bn2WLsjgL+2RVzTAQyH0awVoKzoMvokHkfbsNf6HiXt69KqQJZWEzFQpwU1/CcSgq2hwY9KVil4retm+DcHbijQ63aAQGYrRMnTuzbt08QwI2Dafy/9dZbsgKACPQFqkBAZQKMAKkbBGsHtcWIqsR9o4Eu4ecJt8uyAloEUllBR3lEYLmt4Vtp3V1dYqwXriR12exf0EdcDl3GAnCs1Kz09bLoeNU8lC7/PiTbS+UI4h1+Vz7fHZn5J/tl/bE4NPiTWWz2gMa83Gs6CHmcj7PMBAGyAGUKiwuoSFyhAbze2NjYmkPADgw9YgABIAA6/PDhw2ABx44dAwTAEGBTAEIAhJ8vGA4kBDA72A0BhX/oC1RDCAm8l4hKFXTFCKtpJHfa3ccl9gtWssr6YhmrpN/LrWtQa3e5TOBfLaN9zguCMK+U/ELKfKXcezN/NiCCQ0BmASvJn9cFLpmJrJgZz1uSIyCDXUCNzAL4lj9q8S9hBx2BHhFwsw4v6Odj2ijdATrzjvUUl10wGo3m2YE7MfSIYQ48ePAArP7ll18+cOAAIODChQtsDUQIYFBAmQIfNNs/ywr4sw1Os+eHsnDon7WhNEFRgFA+oBzBkFUiRAh4Ia+hnFWCANEBQYBry9U0XPfm01bMfJBnTpImje3CuVjGDqu2QNfNVNEh3B4HjwT+4irdESR/SyYLem4LttFTjsiog5BqQxT0xbTSz0ePoKrIPHyg0CDfxa+Qibq7MvLDxp6BAAEtXsxmM0g4rICDBw8CAs6fP8+KINYFOwSom5AqhUkBtJUA55LAr4NyCqjDrHOEsA2hAodfpJ4CX5Qj5BQpfTBos8xgA/VdthDgSrKcg3BmUaQk6xzXzzo5UA+nAx7tk1WfTYCABX4kQECQcwcs1/+rpbkRru94sZQyAj0iEDI4ZQ4o+ZfrQR1l2FfudtlBSD4j/MXXzXsHPvEhjyv/TqdTGP8vvPDCoUOHCAFXrlx5/fXXAQGsC84QoEphOgIw5AvklCszTFvHabshbTjhXOCzNKRJ5Bp04Q81xapCVWRLAu/RrGDba4m7wAQ5kRRlLAgoECRw2Zh/F4iE1CDPGtToF3u3550UrNSSIDMTCRAQeMGy+USk/BdsXyChs7DgTru/kFgAvUK5wfTnqWyEYQLmCM8h4MkOhwD8dzweX758+bnnnhMLAARw73BGBAABfAHlz3CgpwbSIsAEK8ZLCNB2UUIEbR0h+XcKoKVwq+0zcdua0gTC7yVDIaHYIUB/taCXawXFrjadpbseXm59Cg4W7jynNOpq7qsL3yghdKmuavvqva1+l5v06F/z+ruvW05uS/+Zuo5nGYZ71ldL/oO2l3gLqR0Cbts+UZ83ew1yARAFVDKgTEG39fBfAM0cAp7sEP+n/GNAS5w7d+5nP/vZ/v37uXEgDAEGBaj8GQtkXQD7iMgQYI2AIgLU+XjBtqLaOlYtRtVczBlg4AIOAZ41FNKHFtpGNL46Q+JQ0PCBIS+bAy9IYJa34DAXlVgqi2d1QvUG8nfpTAcauRXWOqP9y2A2CwuLDIPgmxe+23kZCIiP44IwDVayqLvn0u9z0cou3JXgHT5E7z+3jR7cKJB3NtQLcBnkPSYk//Im4Bvv37+/qyLyL409AAFbZbMA/MVSOHny5E9/+tMXX3zx+PHjYAFyB3KDF7USJQVQREBBQWWA0OpT1jBtP7WL1oZTihiRJsgj4BkBIVPQDX5PE7qb9qvKBYXLpTvQXQOuPDWcJ690xNXc15iv7PYzXgd7W0TdgUkyGXyWwUnRft0jCGAyBE404MB18JGVRvhXtZuJo5VTlXzbov164aa++1/u2p4u96x3yB3bQkpU3xMEnAU4uHP2cVdzCHjiwyEAXABTePTo0Z/85Ce//vWvYQiABWizAFUNKxaopCB5AbSPCOeYOp8sQBsNBl+Ap4XKU+hFhG7wh+yg21ZQyKS0O2ljYs9dkxLminf4CKs/KG2NjBHOBfyID89fChaHZN5ZgNBB/3Xi4HYB3+c/XMbZQQtej+6a//xTAhc3ZDIOLlr/hYxr7nYRxgWw+MKaxxMC1BpMlaOhKoyOALyFq9EQ2G0p+YFjb0DAVusOoEcA83fo0KH/+q//evbZZw8fPgyjgO5AsgC3Aj5sh+SfLUMk7Ur2Vh8RtY6QCSBHgFeJhl3Jqx7BcJxwcKvcj0TpA6GaQDIQkltdAIL5rSG97Uaya34NXNMFyTElW/hZ6zoxkZQKYpYLLrPc/FuSePq3tJ/Fe/eWS4NF4LJsBUKOQfqKYNestLkDXh20uPidASJ4dRTQrKlBqG88LSD4vO0ugdnEdVgptNsi8gPHXoWAAwcO/Od//ucvfvGLgwcPnj59mruGvfHGG2+99RaLhQkBHzVD6YAcKhCgMDMiqG6CcgFIzqXwZQgoTOC95aUrHAi6ggWBL4RIVViybiwEphBsZmFEIAuS23upkM4FSYQ/W/XL5i/0y+p+BAGemWunPbIFnLng/EWzepqvwDkLLsBOXpztix0EeArgEmiUbsZvnuOu7S+glEHqBm8f4Pmg9BrgxZwF7NCQUxB/MWf79u0DBDzzzDP79+8/efIkPYIkAiwN+P3vf+9JwUH+peo9Aqwh5S+BlztQ0WAPE1TzhbSYHAIUfMohQ48UhnwBz29b6h2LZSFdGFUWrQ+63GYWsFI2Hcwmxmpb+RdQwElBcDH4Z7NboWq/rJSe0QABmfvI5tcDXGzTMWU73LP+4k4ElDPulaMBBTB9uOYcAnZuEAgwYS+99BIMgZ/97Gd4ceLECdgCly9fBhH4zW9+Q1uAEOAtQzXk+RcEeDqARwGDtKutWBieIKQl4irFh0PA7bLdmAcOXFkFwZDCz/p2qSyM1QgsIGhXXSrIrZsbzu3zux63WzF/pN6t0pYs1fpUDis4Q+G7gQFlvPCncc8Kh++VtcNVCLjVtJCRbahaEsd6RQTmhsAODUUECAE/+clP/vd///f5558/fvz4mTNnLl68CCLAqmF2EPJ0AIV5OcTkFfvxFCAfnh3sFcRyHd0qWwx/Yc2F5QvMJoBnCoXEtQwBSykKsFQz7P1MZ7ldrkSHAGcci23sIIBFULMBBcJxCb9e+GuJdBVrVixNyNMcVspWQlVrJT8lfwgS/mBt3WvLhzVTdAcwYEynoMrJ/2GbDn3RVBxNp9N5sfBODEUEMHmAgP/5n//56U9/+qtf/ero0aN0B4AIXLt2jURAqYHcRFAQoH0EZdIH579LvqcDuRK4VW49rjoTjxh5XPC21ZncTcNjhK6oM7/N8u80HmM5kWo/rfrxcB0ZHUtlmm02IpbMFxC+QnCgIIXaha2Y22I52vCPPuEfDBmHqylDuUf+/ZfqVwRy5NCA4Uzt83bHwQABvgkliQOuM5lMWCaw2yLyQ8begwA8a4jN/v37YQX8/Oc///Wvfw0IAAuA/HMTwRs3brBSIFQHBT+fEwG9UJmQpwAKCLyzYPD5qUzAM88DBIQ0oaDzs7BVWXF2/nVx3SzAgR53sQOBjoNLYBNVJ2WGLYOAVQqyk3MHnebjywoZrpYZgeIgHvt0TKzSJR3Ut+iHOOR5doBDwK22jwhpo1uCn7XNoz5vtqUfj8dzCNi5QQg4ePDgs88++9xzz7344ouEAO4geP36deUIqVMAiYDaAbjCd/6fIcBzwuULDMXCwecnIb+dagS9RsBtUVfLQW593VM2XPUtlW48rfK75XaGGQJc8PKRIMwZICQ5Hsi4az059LskpU3Af8kNlMXC2cFz8dPWVyzT0a2Ae+ak0M9fSgZRhoD8A/2H+DMPvptbbbMw5Qj5wnAWMIeAHR141pitI0eOPP/885B/tgwgC4D8v/7664AA2ALsF6DsAIcACXOoBc7GP/HesSBE/oQC7tsPtn0uEHK9KmHLKKA1nc1sV4OBw7uo67JdDJmSt1gm1TtDWSzdkOGy4iCB0QhEzEWwxH9AgSb+7+r6W+FfWxusrw+CkhcVciUvV0UXhQkQEH5yADi6BqppgloYKhIVEfi8LR+cGwI7PfCsMW0Q+5deeunAgQOgA8ePHz979iw3EYX8s30QdxMmEaAtoFwAz/ZxUz+0BpDAy+z3xhJSBW75f9FWoUkhL6TC9YUyYpdXcJCx5eQzlxgE78BSazV4fq5ESJ62leRCXyo95/eajjqEs0VzDUrmwz27El5KHof2iEMArqAeHiuMJ0L+Gwj4biMjR4gVS1sIMORiv5TMger9ZAij/C+0bYVl4nGiXWcEd4AgYO4OfLLDHy6eNWbuxIkTgICXX34ZdODUqVPKEWbXEO4m7AkCDgFdPQIF86FHiA8ujgwBzvmDkZwJuZS2VqRLbBDvlXJkfR4+6PITUKPHcx5EWtzeaUK2UMKlHAt0cksNIPOLksUmTwjSv/Lo37dVA/QFxkyk6g/PGOo/NtOQ5VrgQx8XkeEPF61TaMCNQUaRGRTgoC9gDgFPdoQyIUzVyZMnAQEsFj59+vS5c+fYNYQQ4PJPp6BvHyKnoBJ+QuQvx/xlFIT8X0FA1c9f9T+7CsoqPUNAUIYZEVx0XbEvp4L8LgqwaH4EMRdCAGnIonn+s8hpSKNWIx3fMprGJ7C6vLK2sop/eIF/y3Y/RDFebbG15PVFQds7uunH9kBAZi76+URthwClbyj66xAg9xBOUO+w3RaUHzL2BgRslSiASYXx/8ILL4AFHD16FCwAhsDly5dff/115gjLBGCZkLOAkAUYooBB5v9Z9hG8VRYFeagv2P89ENAl/1Wxr6LAajmCkEtIlo0UhLeyGryXAmbBtncK43ceEER+0AABi7JTVr4V/iZE8C0K+G/0oGYXw/fnEJqIOFg45C1W3BPFA1loS7lvl52dnA582uw4pAABQ4Y4OBwO5xDwxIdDACYbEPDrX/96//79hw8fBiOgL4AQwOxArxTMhkBGgeAF+NSaBX+aGgcrySdDQJb5YAXcKx1mWXr75T+jQDjSw6JdB4a7cmBaKs37fNBJhEa4bBgOSdT84AJiAf7LBQFLbQ8CtTzNj2K1bIIU0DAEDrosiyWzy+42/YVDrpe7BnzTsb83O5HiL25gDgE7N9gvADJPFnDkyBG6A9U1RKmBHGocSBTwQkBBQJD2HC/wZEEPC+ck/yD//t+qOs2ylHEhKK4g8/n8cM2l0hMWhpvHutUq5Q4UIAhbCNQLDlzw6Pej/icK8J8j1EqbULxk3k3fmMSFf61sXpjfXUmGD0dGN97qgm0x4gnd8gGxdkg9ppg1gK+bRwR2bnzTbCj4yiuvvPTSS6AAx44dAwugL4A1AoAA7R1CCsBiIfkCPBcoU4CQGiwI8A6CbhEEj+DdlPAbDOOqgg1yu9I9HvtuGC7nVbiReNyzTXgzQHDk28sosJIidn7Oo7jf2qNEoUf8f3GJ//y7HAKWy8Zh3sss9Erzt9xAWC0bDeknV0kQIeB22VPYJ5q1Q1hF2nSMr/HZL7/8cg4BT3YoOxgDptf58+eZFHTixAkYBWwcRENALECdQrR9kFjAP2ojWAHh4D+tZZD8Aoonh8yfu1bzV4WA79xjRlmXSwO4ixdUJTCfuZxM6OWSBkvyF9viuSD/wqZ7ZcKPQ5WLq3+vVCs/qBMglKAA0PyPIoML9779ZxbEihGctXZLpeXS4df1NLrcn363PBh4zZI5BQUBcgF4aeA/ymaz7EaJT3Fbsd2Wkh8y9hIEaAACLl269PzzzyscwLwgzwtkLFD9ArxNgHIEvVLAj4SUIXkEQ4GwO42C/GenoOQ/6+Qgk9JUWX3lpVxd636RIMwuHnydvRWLllG3VI5MYVZWVsK3CMvcFPqODiwvMzmA+QH8t7z03V1lZb5qPZH9HvSRAEDhQS2XhKILHJesQYtyupUaIET4tN2DnCYAFhVWF85UvfCeA4K9BAFqHwoIuHLlygsvvHD8+HHI/4ULF+QIYEaAFwioWagqhVUsEFhANvv/WXYNDlkD7jHKLOBu2f9jIeUCL5Z+tfBWNhkyqXbu7VKdecRimYZQVdTu1ZcA+80EIMg+P/3A4AQJ3hBqfkj+wp27+Hfv7sLive9+WrVTsENA8KcudY+Agxltq0PP4U67d5hniCkooH5zWGBYD5PJZA4BT3YIAvBiPB5D5wMC2DgQjED9QhgR9IiAswANpQn+s+wIWh1U/qFqyKMD/RBwp+wCkrWuQ4DeWihTcQJquKJbTiOLQcYU/6IQCwyB/QWrCMqiEsAiQ5j/nOb/30HAnS9u89/dJqQSAC5bRo6S4fX2UaD6uHgdn4UAAYwIftbuPUcVAgiAdoGmwYoaDAZzCHiCQw+XQDCdTiHwL7744pEjR86fPw8rgNnBYAHqIMpAgBOBsJWY7x0miyBHB93+/2dKGQzVgVVbQFggMciyzQVaFaGwphMz6BQDx5fl0i+YJT+wgLtW+eMQ0C/k1WgoZcmvD7X/SPPjz+07+Hf78y9uf3FbEFNFvXD/4Tf6DxQyZqdJ1wgPljegBAGvF5A96BAAZYM1hq+QitplafmeY69CAMx+sAD2DmWnAPkClBekiIDbArLiWPv1aZkaHLKGPy0rCP5h/QLEDxURzHHBgAIFGS6X+GJNl2bFlSGgSxlK+Vdl5l6ZCBhiluHmdaZLSCYRXU6QjCbi//gLCAALAATcaZv8Oo74zecfvtTRTyVIfvYjhjPDsw0Q4B1EOPuqK8daAsEEBGCN4eNfffXV1hwCntzwBGFCAIOCZ86cuXDhAlgAywQDEVBEUB0EPTXABd5TAENGoP7SHFC6qFAgxwXlUnJ/YZC0wAWcLftbWasvld4vSUKGgIKBl1+atX24jezL6BoZFO6WfRCKe8DLhgLAECALaCCgUmfZxZWWbCPm8NXh+WSMqKJGhhhe30MDDgG0DRUOoL2Jj3z55Zdbcwh4ckNPFi8mkwkgYN++fYCA06dPq2UYy4SFAoRn3z5AEOAZQcHt53WBt9p94xwLbtU2FMwJAh4pDB6B7yhxO0QEwkJcTJW/1eXrkq8zszr1I9LPujfdFeXQISCARWAKLrFVaCgYRIKARyhQ9lm6W6svWDSLQKwqEJB7rbfCBT4jaQaFKoqFwmEpDLJFLCFuSzOHgJ0Yvo8I/gICoPMBAdxQEBBw7dq11157jfLPYmFvIuqGgJqFqgU4tb3be5r7L2wz+eACqA5PFgpcQHBQFRJpoYU2Mu8ENUt4Vefr/KDnv2Pg9r2uUX3pcyyWzYIWSj7fI+3Vqznu8AlQ6nImVfiKxbKqMmhpv2xxV4tNmHH1UQkiXod7WKqVD+jrFtrC4dvt9pAKB/yzqRTmyiGRxHLC0gIE4C9u++HDh1u2Bfbuisz2x96AAA0+3/F4zLyAQ4cOvfLKKzAEgAhMDQwQ4HEBtQ+jCaAuYFL+8vqqaRQF/p/WL6gHAkIyqRwEt8vh69Uprq/sRTPyJeTb8WkFnbbQMVwxLpb+PN1YRbRq0h4OLnb4GsUy7pZ9E/I1q/TeH1f/T3v0zPEHZGNpEX9vf0d0vrN3lkoXqX/XHduDjOvBzUCHAO5DiXXFOlRc/MGDB1vmt9plUdn22JMQMBgMIPm/+MUv9u/fD0OAzQIwaAuwawhtgWoHQUFADvLfsqYgjgseBczDo4NOBKRPQlmhr8ggS/mtqv6vGgKL5ciqMrvr7pUWwV1LEA6699421P69RD0klm5BCAsC8DncdD0l/5bqL3rkxrt7R/8+v/1dO0C3d/yJ+Q3caUu/HAJCChnbCjMcAAjg0sL8bm5ubu0p4efYkxCwvr5+5syZZ555BrYAIIDZwVevXiUXwFDV8LvvvuvtA30Hcbn33RD4tC0BCmmhUv6hfVD+bygc8FKinETkclgVsMXSH36vdJIvmSNwsXQiVtV4l9BmPezf4lcL8pYBInsH/CP3rAzhriUgZZjIrpMqBbh7B4IeHRbfehjvPPoHCPjs829tNAeUcDV9u0O2yGBIHlVncfoCmIGKr5jNZltzCHiiQwnCq6urJ06c+L//+z+wABYIQP6vtINYoJ2F/n97V/4dRbV1//9f3g+utz5HRCUJGZiniAjIQ8bHoKKoCJl6SqJRxGgQEL6d2qnNrnNut7zvJR80q8/q1au6uru6uurufcZ7LlMDmin4Q7VEnKp9pPDnbEZwMO8XrHFg2C76AlL+PskkRAQCVILa7JXs4UAK/fR/poCgfgPOl/uEx1bqeMSKFeSFIxTPMPCLR0A6dTeBwCaZv4ps6P8Rlr5yih5/fT63t7X1CNGZcHrdZmakVTcOU4MAWQEaJB4LYFIAOgb719fXhysKQBlKCsC4nJ6efuONN0gBLA04ceLE7OwsNtREkBEBNhFlagD3jOUA5HXVe4UCAa8LEObzW/PN5aVCmWB2CtSLIpcS+nTjTikJF5AwwP4vassXOWAOoXu2PDsjYpkM++daOqUVvIxC234yDstOM4TZ+IMVBWwVF27mFBqXd3ObdJAubPEkO815Ad4jxG+3AkMsEOQSdRhX8DSxkxSgMvZhkaGkAIyAyclJWAEMB5ICYAuABVgsrOzAhQsXrl696ssKhYyA1/x4aMBLA6QKPEDoLLBYry3lUcCs+Vv1IsJZOs3yYUdp14L5RZVYJIVecsuFtKz5i2EFP1Q2PZZTiC4jysUvQrgUngvs1Mt7BvwXDPhEAa7q/QT8MrqvEU5YLBDah4Y8seKCoACmmWgFBAoYInNgOCjAL+iTJ09goE5MTLz11ltTU1OAPcAP5NMEIP7hBYAC2EdQqUFaAb6aWJgLXCwQDrWDCh+4/5+rg5ZsUQoPCoTh7iZolqJpXdT2/fRw2J/LYLKSlxfgHKFy/eKPZhOjYwv1etSj39fxvQAAIABJREFU00yRdM01EDiD1dDXMup0t4qLF5cW5xfm7t5bmJtnobEbXJ1UcRgw325mbRdtSQjPCCzU/YJlBXCaIFiAnWmwn7EA1ggOkQwHBbg8fvwYo3N8fPydd96ZmZkB8qn8scEFheAFaNbgxXpZIacAXzhckL5XdYb0FuMuxZ4CXiPosYB+UQA3E4paKOwvQi5TwABDIGA7JMOLdsRyKegYnA4Hv4PK0du2fspF/Ae7QH8/HEQvwxWriBYqewnPmxG/uXk8+9VW0CFcOp1wtlC6dThQVkCI8nCmoMIBpAC4mRhjGDmkgJEjsOPCpUTGxsbef//9/fv3kwL0LBY4d+4cu4n7UgK5OlAG/71q6SitNeLgv5cahxXnC4W8YNEKWLLlhnxM54FetPb7UUBQ2qvNSljB3rsM5FBCPwrIJkNQ/hmuGb2BF+QOSF1nzyjvicep8E8igCGAB1jAo4NdWzhYF2q5rkrK0qvjl84CbhfINaAhwGYBV65cwUjDuBpRwA6Ku1W4xLhJXESEiwjNViKPgAUCygvSCnAK8H4B7gWoZCB4Af36iHgs0CN/GituF2Tt5+ZuHo796KCfZi6aAKvNmTB5/lxuMeCBgGLdUaCAosUejILMFGFnQ7env9+panUjTVSVxd3qIUOAtsDmW4k1upZnCeej+6I9ISucU8KsFAQFYFxdvnwZIw2ja319/dnIEdgh8YorUADuBChgenr6yJEjzAXQETh27BieT1ciQ2AABUjhq94jWwH3mm1CPFiouqBsBXjDqWydZgoIROAjUqZsgHp27N3QdS9AEroMB+TnoGAmguwIOHRDpKP4H4MFFP5+KxVNiAJCtKXb7ixXj16rzbggwE9DoMM99XHcZ/FLlH0T/QunAEUEvBJkrsorYzhhXGGAYZjBHPjtt9+ejShgh8QnCGAbt2F8fBxewNGjR4F5ThM4XgkdAVYHMCLApKBXB6qVuMoE1VY8xwI8HagcgRcFuC+w2Gw16fh3M8EHXBEhHZsGE2JvRZ2fWaBXivx7uyFH/kozBaDtcJxwfEGrnyGT7ZpsEQTstZqLsjgnhgxrV/ivMgJiATgFnIbkIZVeM8ky+LRbzdSgor+6m9wpCoCneenSpREF7KwECsANmJycZL8goF2xAE4ZhiPAVYZpBXDKYF5iXCuLEf/MFOSMQND8/SoCsrbPgYDgMiw1i4WDeuz2mZ9fjBEM4AVp8qI7EGoB9Isr1kjPLZFwAr0+6YAirjL+O8kvCMj0AEqrWV7ZqZoObHoBVVIA+K9s9E0rYKsZgaUSdVb5HML1bzcDlptUPr8wDxfDekOQ3zFUOEfg+rXrGGPZERglBbdTmBRkq3Y8A6tTU1OggJOV0ARQFADP2Mm5g2woDEeA04QCC2h98bymgBOBb7v+z/jPOsRZgHvcCsgqMdBBEf9FiyBwQaaAbOQX/XzKqs04HBCJWE6utZAW4N2xpkMCpwDpOAwgHGAuyXJYaopDPX+xa90QYnzBjJHnjIN7uLBI+0LRx4W5+bt3fvj2m9tff3Xry5tfXL185daXX/3+2zo7XL9suPxnMhwU8MxKAx49egT2hRdAE4CxAFoEMAEA+yIFsHHIYArIgYCcApR/6CAP+b8wIuOQModZ4HE15UAKFkHRLgj7M1yl/PMen32YowD9TAwX2dXdUmjQ/0U2HwIFBLvAYRnsI/5opxmDaFlyIZ+JU4BHAcKvdFJExilAD1LAd7e/vf31N1998eW/r1z94sbNB/d/HcYFRYaDArw0aGNj48aNG6AAuv00BE5UwqUEQASiAK4sQkfAKcDbgd9rrhQSMJ8pIGcBxAJBdwXwK1+wVK9BFvBTVFkdm+K6kgJywS3vWuzQ0R7CAf3aDenggn34uhONrIB+4sh3wnIvo9usLCi6A+1mmDAgvxhtLZsMJVWvd52a2+531LCn/mfQERRw74e733/73Te3vr55/caVS5evXf33zz+tPalaBgyXDBMF0MR6+PDhxYsXp6enWQVAW4B5QcIeFOB9xC5duhQogNo+FAhnCigW/yzUPSQCBWTY+xjNdkGggE7yih0emQKKMsBoX02yYguEdFMZQj8SCXbBcprPs5yChT2LwzsFuFnuBNGz5HwGtgAcaDcr826fqMRgCmg18wKbZF23OfYaBFDA/L25O999DxMA4L904eLli5d+XFl9PKKAHRVaWX/88QeU//j4+LFKjh49ytkB1PxnzpwB+JkOUDdRxQK8d6AWFFE3yBwLmLc1JJQQCpF/oToM0HbyaX1/u5mvChSQwSPkrKwUCgH62fB5Z1HnOzgd6plBwnGcAoqRCz/zQDH6p4Eg5BoE9gzg9PhLMO+zSR+kk+qXg6HhNLE1GXHp+Qb9AhCBKAD4hyHw0+qPsAJGjsAOCq2A+/fvA/ZjY2OHDx8+cuQIZwpyQRGyAIXTBDRNiHOE1DvMq4OcArIVEBR+CPIFzRNMSn/3+ZCyoen4yVrRkZY3sq3ucA3g7+ftByJYrquJ/MMDAgeBAop0wCPoVFdK1kevWWvovroiLw7XgFj/rnMHr3bRR3BGHmAjkALkCOgBCqAVcOvLr25cuw78X718Ze3Hn/6yWMCwcMFwUAADrXQH1tbW9u/fDwo4ePCgKAAbrAtSvwD2DqIXwMXFRQGhRvhuWjI0VP70C/63+/icDnX36gV7jWON3eVmSU8/Cgi4pWQj34EaAgHa73o+/GJgAf967rod0NtJcTshf9WmG+VIQdeiibKD2vWEq1adU+yleiS/+HyrZcmXYA50LADZSrXJwV6TI+DhAD44Mem729+CAr64cRP4ZyzAMwIjCthO0TRh+AIYTB9WAgoA/g8dOgT8yxAI/QJCH2FVB/rKgj5x0ClgQPI/RJ7bzQh2qxS7CrAvesLuQnetg2CvbsJbVONBLfvH8lcEXeEzHH81hQzDD60284j5tH272+zVF7gjfNERLtH1zIZGFh6tXTdrCFfb/YVOvUxAy4qRirGAbALgJUwAhgPhCIACGA78cWUV+NdqAiMK2E4RBeASA8P//Oc/d+3aNTMzAwo4UAnpgK1E1S9ACwrcvHmT3Z18fWEVAsoRCHVBoex3Mc388xHT7Z8YD8rKdabUYKfkGEsz550DiMNpJVOMjqOfc8u8V08TzivwuOkx4BcDF7j9X2SNQBy9phG0bImDbjNmGU4gsE/Q+f5znWbIRvZFIIKtm9tqceoRlz/ZWvWgogAmBT0WgP2PHj0aVQfulMgXgJP/j3/849133927dy+Qv2/fvplKuMo4KUBzhEgBtAIYDsjLijoFeGlwtgKcAkIiIGM+4N+R70zRbXbUKw5xbQczWwcMRBN+SJLpIEBaL7O7kVFXtGK0J3zX8R++VYRxPoIzVC+1JOylZISfj/+FTora+uUK7kBraYsCtOoJHwtz83e++/72198A/xc/v3D+3L/wgFHA9YWHRf9ThoMC3BEA1N944w1YAWNjY8T/1NQU6GB6ehqMwD6CmiN0qVpoPFsB6hrAWZ9KB4RJwZ4CDIHAHKmOoycZC51mqDm7Et3UI8DfypAOvJOtjCAZaUX8v8jXM2KL5KLj58BBr2mShAP6GQrz3dqt6DUNDVFM+PVe09hZtmUCAgVkBtddVmmQP+AFsCgI+v+zM2c//eQUHjev3+A0gREFbL+IAu7fv//RRx8R/5OTk4A9KWBiYoITB0+ePHm2EjgC7CCsliG+pohHBIl/rxcUBczPP28lXswFBr8gvBW4Q5/P9JF1mpAwGIHdZhCuqF17TdXtv+LHCYZ3P8bpdzLOKd0+yrzXx1sZ8Kd6zZRBwHa+Vs4LvXrZAucRD824F9BupnK2btPiouYgcjKyKgK+ufU1KODq5SvQ/8D/ydmPz539DD/hw/Vl4+aFZGgogI4AkPnBBx8A/PD/Dx06JC8Ae2AdsEAQ+t8pgDMFub4oJwuFiICqg9078NrBMC+gCP6M/8wCClOHI7RLYW2HkCu9fkQQNPlykp6tWbRsgUYpwE7yIAI9tUsZED+BjPN8Yr6z+Bd0Du3UUrEI+H6soX/XbbJbO4VpO037P9w/pwCAn4HA725/y0QAvIAL5z8/e/rM7PETx48e++H7O0pdjShgO4UUAC8A+hwmABuHz87OwvKnIcD1Rbm4oHoH0gvggkK+yrgWGlde4I5JqB0ODYJCgiBECrO/oJiTb4dwlFvyOY7lqC7qdkHCP9xrWsiBApwjus1Wf616MlywdKJ5nMgrMFcR2OEzA2yK4qUIx9Fbzi9+wEBVgvqm/d9ij+FWmysasvi3eiwubE43XKqWPNd+fGdxYXFhfnNZMQyXr2/dwtD617lzZz49ferkJx8fP3Hk4KH9M/vAC6wRHlHA9sjTpvz555+A93vvvQeDn7ODQQF0ASDKCKo0mBnB65UwHOAFQjIEtESMnhUUdHPA64UXkhTrBYPb305VQ44lV0GOroCr4Pl3Sh5++OJys4Cn32Fb/aXgITcpIEciggyOVgRUd1IyJTBLkXfyF9sWRtGexar/n7qMPV/duO4+Bm3Pd5/PC6o5nHOEoTmgVOBgQs2AAqD8D+8/sG9yanrv5MXznz9+9GhkBWyPPE2ysbEB5a91BOkI7NmzByyAbRYFcTURMAWLAq5WwvaBWmj8di3yBeQFaEO8kDuL96MATxlkT6Foc/q2Vx/LZXD4tetquVChJDwEoBaNiwFK248TUJpxFbSrS/hAu3a5i1+n5NMIV6lIAU557WbZr1+BoP/Z8wf2PHDObF+vbkZMVz/gv13fRnyXnUIwcjCcMKgwxuACwAQ4MD0zNT4xOTZ+4tjxh39sDAv4KcNBAXy5trZGa584hy0AK+DDDz8cHx/nyqKcJgxbABTAroG4T4wF0BfwxQW/rYRlQr7tPUU0lWjATMFizK8Y+fPB7WbCkvWlFPKXSrMPW1YwG951gsjae4CWDnAVYgOGA5EVj6CvB2JqpSq9QAQhWOCHatWNwDNVyQXoNOkvHL9rVYaL9Rph8Ofn7t4D2r3jkLoPxnLg6osL9aozGBhcUBA65vSpT0EBB2f2gQL27hmbGBt/8OuDEQVsg2QT4K+//sKlhwkA8H9eCQAP5GPPgQMHmAXk3GF8gIEAWQF0BJgUCBFBwT5QgFIDGfzBt+8X9ltKXaj9W4v10mNOAfPVuuZSVvnnBHL/XXdD+kUc+0kIRvRDkVsWWYcHCYzT6TQicEVu6pVSkv34IhNHt24NksGfKYBXjIG9zaUH6lnArPmldZApwDvEzVUdhDFOoGBOzn4MRwAUMD2x96P3d7/79jsryysjCtgGceRTGAuE2Q8rgMuE4BlohwsALgDgSQqsC+I6YqAAJgW5rKAHBRkX9FmDLj5fqKj8hdsA+CALthhZSC6GQzmY9cXsaCwmZ8E/6T9dDF46cbg/PwBsf+sR5G8Vj9MeKN3SCj+BlQJz6VtOHO2mDdI2H6RlIYzNK1An+bb6jlv30RAg2HQQmsIbisGDcQX8H6oCAbACPnhv11v/8yaOPlyNg15pChD+sb2+vg5Vv2vXLrUMhLXPrsGcDgzYs2sQNoB27CHyb9ZCE4CiZUXYNVAb8ggUFyyywKI1ls02gmv1uXpRytCMRAdZrOfAteq+lDrOXFMGtDNVObN8Xe90LqbIP9qxOXOyujvNEJpUbggcDmaNTtODCJZFAHZmk/CBYG0tpJWCQ1BAB1lKfQe32HZuHjqfvoDw7xQg12DzY3a1tYIAxtiFCxcOHzwECjgwPbN/anrP7g92vfsevjIKB26buC2AGzwzM/P222/D/2fjYLAAN2jwwwqgO4BtKHkAniuI+ARBCFs+ggK40LhnAbhEjCggLDcS9OqCrTk5+F1NRnTokjLm6760HPFLdd9hjnseM/QvC6lKvQwEEX5rMTU7C3o4A7Vtrrhih4ODfzk+389MKBogxZ16yx0r/oVgp3SbGUGxaqsZWNkiaFyb2uwn/ukX8CXBzxKAH76/c/eHrZCwlg/B0KLVOXv8xGZG8MBBsMD4hx+N7xm79dVXPrH11SeCoaEADOWxsbE333xzamoKxj/bhHApkYsXL0Lzs3EoKQA6X2Y/ywF9KUEuGeArCxMq9+rl4rw0YKFUCJD9/OK78gJIAW4OyEaYT93Hgz3vRCOE3zUJLU/85ANJhdhk11LrQY07hr3KYNlKejt17qDXlDChqF/QcYCFn/Hfbi7v0c+Lcbpp1SGVJRO3AhT/V9kPY4TcxgZe3sUV/f7OveqW3bN1xDC6MOTgcn525uzZT09/fOz4oX37J8fGJ8bGP//X+YcPH/rofZkQegEZDgp4/PgxrvuePXtgBeCZ0wE4Uxi2ACgAlMxcgAIB7BQCClAIUGqfICEkpH4X6+Xi3FCncLQJ88X4X7/gnJjFZc4Wq6WEpKOseo1+tyxILgR/sAvcK5lP4vHCTikIJ++a5bSytIPXXbQRwhGCLdBKIUahNFxAR6zecl/AkdxqJlbbzYRFu668WGpKRa4LejjmSQEqBNxihOZ9wXWGCsGgunbt2uWLl86ePnPy+AlQAHyB8Y/2HDl8+Ndff302ooBtEZkAv//+Oxz7vXv37t69GxSAjX379oEFQAFA/vnz56H8uaDQ2bNn4aFxmqDqglQapMYhjPkLig5UKX8Ol06zvZcbukGJCfN4lkaiIpLOl3IOml8jjDCWlsOvEI30C3Ri7tUXJYQShZxWPfd+2XqN5KrBnpUhFS186edOChmG2N7fUkABn4lew3V2dghORPAO9FaklWbZvxsFKgrgxmbJQDLNRAEXzn9+8sTs0YOHDs7sAwXsfm8XDIFffvnl2YgCtkV0Ee/fvw89D9jDFxgfH5+YmIA7wGkCnBdw+vRpxQiBf6YMLlfCaQJaXJSzhn2CAP2C0FAIXECwYTz5jHeuxpPX512xrlgr1QKeXLEH291maYoPRw3ZJSsTcBQp6dVq5vyFzGDJF51qHdBBHqbu+38MNv9yU0KVTjYl3Cnw0GDRvPezbfXJZQbrwM0x/5tFlulY8VLDXqjbAXtrcNUC+dTgTQqohaYihsetqkAYaubMp6ePHjoME+DA9My+yald77w7tmcMw1XL3owo4L8SUQBGGHAOzHNSMGcHgxGOHDmiumCuIEQKuFCtKQyP4GIlfMneAYwR4BYy5scsIJCPPQwTKnag9qFtC491rSJdrjI16s+VrK2tQQk8ePAA1qD2iDICd0gPL1crf4M11irhhr4r0aKA/Jh+DmMOzz/XwiOIrfxbvqagWIBnorfCL4YOQtl2KLYVCXwxmBfcKHD+EoBbzZKEQG06oHPZsjU+0FTi5ySFr9YtQAh4PdQaSA8ZVsQ/VxOFXoGaOXXyE1IAHqCAD97fPTU5hbs/ooDtEY8FsiJ4ZmYG9j+eYQvgmQlCyKlTp9g19MyZM1w74OrVq1dqAf5pGtA6YDch3EUvCgTyaSCoagA7aQtIA9BE13h1XYQ9Uq0AjGBP4Kl5nmMM27+YgDIemPxmsr6+/nsl65X8UQk2+JbehfAt3+DHeMzwkjwF+vg1yf1KtE1+Iem4kIkCB4lonFPyHucUvQzGhfDcLTUgC9SjK4xzwLPoST/qnLW56GBVFOhVQGwNJApQdwD5aL6OIEbRZ5999snHJ48fOXr4wMHDVWpwYs/YgX37cZFHGYFtEF1BLh8E/DMdCC7AM9sEaU0x6n/OEVZdIOuCGRG8fv06V4DFB86dO8fyYbyrMCEjvfgh1g7SIsBOBdLdr6aTzyyxu+5UVhyOtN5lo8ry1wb9fNneASfS8xmNjlLCT/QhSItEyBGC/W9NIaE4v7g4Wfi2S/hpEsF9ExKcNpwvxBrcwL/W1aDFJJuI7ED0ulWVu6HKcglGin9G3tlWaAA8zttaJxE4KbDK6Gw+lA7AUNlcRPD6dS4ovrmAxYnZE8c3M1PHjhw9sP8AXFQoJFxSDmARwcsG0yB5RSlAdUFPnjx5/PgxAEPkw/IHzqHzgX/WBbJYmOuIwQTgBEHOC9C8IE4QZEaX+UIiXA3FWRpEj4BCowD7cfvlgrrzyfgcRkZwSjG2qHkwzjx2paCgovchsOeBbrm+HrqTcdEvEuG9PfXSnQt/S4zj+tz1vF4GDPtbEr2ll/y8H8StBm0zYqLOwnIHaFW5AudbnbrgV2aXY1t7ZFCEWGZwQ5YsiaOosDeMUraFGoL4py7hojVcz252dhYsMDY2Bp308OFDdRAcCkPg1aUAeQEQXFYAErA/fvz4mUrYL0DNwiWgA3YKoQmgikC69xAcBzu9iaBqAVUXBGFoUHHBgFJu0DlUMU/RfPW4dKADryMKCQKPirXrKvoV6+qpgc6XOY5AsvCQHpN8HuEXNkJgzyOFCm3mRQRWm4sU6wMKOrj740dws99LCaiWeWWUDVF6cil1E/f0BHc69ylCKV7Qj3asJtLjixgDvPs07mjlcSdUgmxJBphgTnJJO7AAG1iDF/DH//zzz79MRhSwDcJLCVMTVx+MqxlBbBbO7kCXKmHkj51CqOqpzGkLENIK/nu9oDZEDd5lNGTyFAIISG7Xc1o15lzzePQrR7kd7Z5Ok2WhEIM721LFrqWxQbMc2446MkKI1ZFcgvvtPjkpwA1vwUlQDysLrNZLmPInaLrLeg863wN4dJ08tqJjugPFYwrkygW4XRD+go7TLaVypfA5BVDUz9FCkxDG47VKoF0wwDDquG4dl7SFNgI74JpvbGxgrMJufVLJq4//Z68sBTw10TWFOwok4zaQAhgCdOOfU4MYCGC/QFr7dO/J7ky8e5kgYM8ooHcTcZpQveB8s4MYx40b7UGtOdI08rqldSxCmrCbym+cAkJALuxRsAAbygh4oM4D5kx5Oi+s1Iv/iBGEWFenRQoIXjcvRfDe3cro2ITfXlX7QP0v1tMnGY6Vg6CvkDVaNqG42yxtdFPCi5F02WnKqc5Sc0Y0MKA/2B1Ac8+hZjDq2J8KRAA6gJLA4KT9j+GKDT2/bCT9vbzqFOAzBR9WAi2H+4o7hzuEe6MZgXiWLUBHADePmpxRAOb8fboObzy53+cRQNRWxJchDsU2HD0KEHabiwJ10ix3Djv3SPUB5brcChB3CA/OAp5N8Kg+rQAINtwv4Ib0s7RiQKxv90qdyEQEbvxL9/r2cp2W44/6v/YL4shUyaZ8fqVjeJ3JKcvNXsC6RGIu52KZDPlHeQeJfAnvvuxH6H9OOSMFYJjB2eQC1tjAd3EvgvFPjfV4SNYXfEUpwOVp3TiQFMtnXF9cd4ayQcCAAe4xhgiwyrDtjUoY0mOcn3iWe8/Yj5I9svwpUgVhiTE+cxg5BXjiulf36mo3i9WkFXPQToBxU9axJ63rUTf3AhTtJ/gVn/cYHp6JxhWrUHCdHCpqes2Ue2YHP8mehRIcdTp/jy/4twTm4Iws19FBJlkIcnpAy7b4io7fz1vxC67fxXeZ06Gr742kNJdM80rJAlAqLAcC8vES9x1XG+OQDj+fn9WL3w5FFIAyBBQwWILLQPaFsQBqABhoDON+L9azdznfS7NuqNVlEahfMIvwyRdy+OXJd6yzrRvtSvWFYRdC0z5kV+slN93BlvPsL4V2Bds9HODveoRfxr+DZKWZTutaOb08agbnKPpT4imnqoyuwAhZgtPRrZcJIUXK9dAVW6mzfaG0yfe7P+LmiQcs5RHQiFMLIFGAlD8FviRTSCwzwbu4UKBXqB+Bf1ig3k+GngKePYsthnynnAg4ZrhtoIb19XWAhLGxnBzyYn4WC4SJA8ohtUur3Ln+XLXEW66ECQm5EOTTnp+bpX4B2G7ke4BwrSn+bojerVggoGsFdtL//qdcdWdfxvHvmtzpz6WXwvWEvYcM3EpaaToszibaWG0mKdz0oNCsYGaB1b7KBAUrgPEjbGAY4JM4Pi4sBg/N+wD7EQW8ZCmC302DHFxktGZjY4PGAoNnq5aadhXBocAYoZoOs16g3Zwt27WpNVJQwmGok1PpiwfMA0f81KwmDGQhce2XA4ROCn5AfsUtBSGKKBU1tJviVboeq1eY0y9Ltzl/QdTZs3U+/Ic8niLjwi2LohviFpZbZ6E6S8bgYnOut5IyzncYEsA81AZhryTfsyHHfJDXgQIk0vmMFzxN4rcwC40F3HKW39KpBjA4fDFWPFbEyILchKVm2w9ltqWaiira0bhi4YDlerqulCGxTVOfhXT5u8vN8jh3E9wXCEykyrwQzJfaD+lMn5nTrttyKIbXak6Caqc1lz0Dqg3BtWVTD0NmRPnLjk0ZaFtG0DV8u92YLCRG0/WR04S7zApr3HTYiRgASukJ8yHP79sve8hvg7xWFFC8PYECsv+W9/udJi/QjyA1sHKWs4CkVwWebp3czhIiXqtWvuJjXfUqrebs16zipF290KBVz7prV9kHsUlQuaKDtVRvCwlnJbwt1X2NvKhmvtn1RN0Kwnw+JeFVcufrOKkWg5GahaZ44xMxrE5suS6v/rmqTXZUUzYqYd0eER5Kd9xCZG4vq4o8nF7GGN9+ea0owEU3VRaBv8ud4StFdv+rOeXraTNPqQ0OHTIFRhsL7+lfrNXThNzv/dEmHYekgLDnFCANvNRcs0iVLd7vQFWu4pFMELkSqWcLCgv5npBbbHYxmrOGSMUlmDzDJy+pZc1X5ur12rzmB9dESJZoxgHhTUgL3gzOFa0/3WUfD67kne4DvHWL/cg7OWZfjrxWFPCC9Bw+EG5teNeRX/xAPkL+mA+joknJd8kjjyvhSw1Bp5iHtXCbYKBtorygTwpyy0VTekI1geYj5slCPhcoTzT63YSaNpjT+mthDzWt53qD7u13R54lRg7mW78Pv6C8iJH/OtkCrxUFDIU8Lcl/83XXYDv609su/+n5FD/wivyX4ZURBfx/y7bjcHgxsC0U8OyFrb+RFGVEAa+bDADDi0Puv+GpnYPi357wDv3u6y0jCnjd5FWggB1IaNeBAAAAIUlEQVQC5AjnOyEjChgyeRFMvlyc/B9Y4z868vYecyT/C/Qk544c6GTRAAAAAElFTkSuQmCC'/>
+ <path class="fil4" d="M1995.59 617.046c0,37.8969 30.7919,68.8247 68.6334,69.0614 -26.5923,26.9246 -26.4966,70.567 0.302128,97.3607 26.8138,26.8138 70.4965,26.8944 97.4161,0.251773 0.176241,37.8617 31.1041,68.6837 69.006,68.6837 37.9271,0 68.87,-30.8674 69.006,-68.7593 26.8944,26.698 70.6022,26.6426 97.4161,-0.176241 26.8038,-26.7987 26.8743,-70.4713 0.22156,-97.3657 37.8818,-0.191348 68.7139,-31.1343 68.7139,-69.0564 0,-37.9019 -30.7969,-68.8298 -68.6485,-69.0564 26.6074,-26.9196 26.5117,-70.567 -0.287021,-97.3657 -26.7937,-26.7937 -70.431,-26.8944 -97.3557,-0.302128 -0.236667,-37.8415 -31.1695,-68.6334 -69.0664,-68.6334 -37.8919,0 -68.8197,30.7818 -69.0664,68.6132 -26.9297,-26.5772 -70.562,-26.4714 -97.3557,0.32227 -26.7937,26.7937 -26.8994,70.431 -0.312199,97.3607 -37.8365,0.241702 -68.6233,31.1695 -68.6233,69.0614zm171.881 -26.2297c0.0100709,-0.0251773 0.0201419,-0.0503546 0.0302128,-0.0805674l-0.0302128 0.0352482 0 0.0453192zm-0.0201419 -0.065461l-54.1715 -54.1715c-9.48681,-0.0201419 -18.9686,-3.63561 -26.1794,-10.8464 -14.4669,-14.4719 -14.4669,-38.0681 0,-52.535 14.4669,-14.4669 38.0681,-14.4669 52.535,0 7.23093,7.22589 10.8464,16.7379 10.8514,26.2499l54.1514 54.1514c0.0151064,-0.00503546 0.0251773,-0.0100709 0.0352482,-0.0151064l-0.0100709 0 0 -76.6196c-6.70724,-6.72234 -10.8615,-15.9926 -10.8615,-26.2046 0,-20.4591 16.6875,-37.1466 37.1466,-37.1466 20.4591,0 37.1466,16.6875 37.1466,37.1466 0,10.2119 -4.15426,19.4822 -10.8665,26.2096l0 76.6096 54.1866 -54.1866c0.0151064,-9.49185 3.63057,-18.9787 10.8514,-26.1945 14.4669,-14.4669 38.0631,-14.4669 52.53,0 14.4719,14.4669 14.4719,38.0631 0,52.535 -7.21582,7.21582 -16.7026,10.8313 -26.1945,10.8464l-54.1766 54.1766 76.6045 0c6.72738,-6.7022 15.9977,-10.8565 26.2046,-10.8565 20.4591,0 37.1466,16.6875 37.1466,37.1466 0,20.4591 -16.6875,37.1466 -37.1466,37.1466 -10.2019,0 -19.4621,-4.14922 -26.1894,-10.8464l-76.6297 0 0 -0.0453192c-0.00503546,0.0151064 -0.0151064,0.0352482 -0.0201419,0.0553901l54.1514 54.1514c9.51199,0.00503546 19.024,3.6205 26.2499,10.8514 14.4719,14.4669 14.4719,38.0681 0,52.535 -14.4669,14.4669 -38.0631,14.4669 -52.53,0 -7.21582,-7.21078 -10.8313,-16.6976 -10.8514,-26.1844l-54.1866 -54.1866 0 76.5944c6.71227,6.72738 10.8665,16.0027 10.8665,26.2146 0,20.4591 -16.6875,37.1466 -37.1466,37.1466 -20.4591,0 -37.1466,-16.6875 -37.1466,-37.1466 0,-10.2119 4.15929,-19.4872 10.8665,-26.2146l0 -76.6146c-0.0352482,-0.0151064 -0.075532,-0.0302128 -0.115816,-0.0503546l0.0906384 0.0906384 -54.1564 54.1564c-0.0201419,9.49185 -3.63561,18.9787 -10.8514,26.1945 -14.4669,14.4669 -38.0681,14.4669 -52.535,0 -14.4669,-14.4669 -14.4669,-38.0681 0,-52.535 7.21582,-7.21582 16.6976,-10.8313 26.1894,-10.8514l54.1615 -54.1564 0.0856029 0.0906384c-0.0201419,-0.0553901 -0.0453192,-0.11078 -0.065461,-0.16617l0 0.0704965 -76.6196 0c-6.72234,6.69717 -15.9876,10.8464 -26.1894,10.8464 -20.4591,0 -37.1466,-16.6875 -37.1466,-37.1466 0,-20.4591 16.6875,-37.1466 37.1466,-37.1466 10.2069,0 19.4721,4.14922 26.1995,10.8514l76.5894 0zm126.964 0.0151064l-0.00503546 0.0100709c0,0.00503546 0.00503546,0.0100709 0.00503546,0.0151064l0 -0.0251773z"/>
+ <rect class="fil4" x="2230.95" y="734.83" width="235.358" height="117.573"/>
+ <path class="fil4" d="M2466.31 859.498l-235.358 0 0 62.475 0.0151064 0c15.056,-15.051 35.8575,-24.3666 58.8243,-24.3666 22.9718,0 43.7683,9.31561 58.8293,24.3666l0.0100709 0c15.0611,15.0611 35.8626,24.3817 58.8394,24.3817 22.9768,0 43.7834,-9.32064 58.8394,-24.3817l0 -62.475z"/>
+ <g id="_150695480">
+ <g>
+ <path id="_21802200" class="fil1 str1" d="M2448.41 869.509c1.59121,0 3.00617,0.765391 3.89745,1.94872l-1.32433 0c-0.684823,-0.604256 -1.58617,-0.971845 -2.57312,-0.971845 -2.15014,0 -3.90248,1.75234 -3.90248,3.89745 0,2.15014 1.75234,3.90248 3.90248,3.90248 0.986951,0 1.8883,-0.367589 2.57312,-0.97688l1.32433 0c-0.891277,1.18333 -2.30624,1.95376 -3.89745,1.95376 -2.6839,0 -4.87433,-2.19043 -4.87433,-4.87936 0,-2.6839 2.19043,-4.87433 4.87433,-4.87433z"/>
+ <path id="_21801400" class="fil1 str1" d="M2408.43 879.263c-2.6839,0 -4.87433,-2.19043 -4.87433,-4.87936 0,-2.6839 2.19043,-4.87433 4.87433,-4.87433 1.59624,0 3.01121,0.770426 3.90248,1.95376l0 -0.97688 0.97688 0 0 3.89745 0 4.87936 -0.97688 0 0 -1.9588c-0.891277,1.18837 -2.30624,1.9588 -3.90248,1.9588zm0 -0.97688c-2.14511,0 -3.89745,-1.75234 -3.89745,-3.90248 0,-2.14511 1.75234,-3.89745 3.89745,-3.89745 2.15014,0 3.90248,1.75234 3.90248,3.89745 0,2.15014 -1.75234,3.90248 -3.90248,3.90248z"/>
+ <path id="_21801016" class="fil1 str1" d="M2395.75 878.286c0,2.6839 -2.19043,4.87433 -4.87936,4.87433 -1.58617,0 -3.00617,-0.765391 -3.89241,-1.94872l1.31929 0c0.689859,0.604256 1.59121,0.97688 2.57312,0.97688 2.15014,0 3.90248,-1.75234 3.90248,-3.90248l0.00503546 0 0 -0.981915c-0.891277,1.18837 -2.31128,1.9588 -3.90248,1.9588 -2.6839,0 -4.87433,-2.19043 -4.87433,-4.87936 0,-2.6839 2.19043,-4.87433 4.87433,-4.87433 1.59121,0 3.01121,0.770426 3.90248,1.95376l0 -1.95376 0.97688 0 0 4.87433 0 3.90248 -0.00503546 0zm-4.87433 0c-2.14511,0 -3.89745,-1.75234 -3.89745,-3.90248 0,-2.14511 1.75234,-3.89745 3.89745,-3.89745 2.15014,0 3.90248,1.75234 3.90248,3.89745 0,2.15014 -1.75234,3.90248 -3.90248,3.90248z"/>
+ <path id="_21800312" class="fil1 str1" d="M2437.69 874.383l0 4.87936 -0.97688 0 0 -4.87936c0,-2.14511 -1.75234,-3.89745 -3.90248,-3.89745 -2.14511,0 -3.89745,1.75234 -3.89745,3.89745l0 4.87936 -0.97688 0 0 -4.87936 0 -8.77681 0.97688 0 0 5.85624c0.886242,-1.18333 2.30624,-1.95376 3.89745,-1.95376 2.68894,0 4.87936,2.19043 4.87936,4.87433z"/>
+ <path id="_21799568" class="fil1 str1" d="M2440.61 869.509l0.971845 0 0 9.75369 -0.971845 0 0 -9.75369zm0 -2.9256l0.971845 0 0 0.97688 -0.971845 0 0 -0.97688z"/>
+ <path id="_21798768" class="fil1 str1" d="M2421.11 879.263c2.68894,0 4.87936,-2.19043 4.87936,-4.87936 0,-2.6839 -2.19043,-4.87433 -4.87936,-4.87433 -1.59121,0 -3.01121,0.770426 -3.90248,1.95376l0 -1.95376 -0.971845 0 0 4.87433 0 8.77681 0.971845 0 0 -5.85624c0.891277,1.18837 2.31128,1.9588 3.90248,1.9588zm0 -0.97688c-2.15014,0 -3.90248,-1.75234 -3.90248,-3.90248 0,-2.14511 1.75234,-3.89745 3.90248,-3.89745 2.15014,0 3.90248,1.75234 3.90248,3.89745 0,2.15014 -1.75234,3.90248 -3.90248,3.90248z"/>
+ <path id="_21798128" class="fil1 str1" d="M2399.65 870.833c0.715036,-0.81071 1.76241,-1.32433 2.9256,-1.32433l0 0.97688c-1.61135,0 -2.9256,1.31426 -2.9256,2.9256l0 5.85121 -0.971845 0 0 -5.85121 0 -3.90248 0.971845 0 0 1.32433z"/>
+ <path id="_21797264" class="fil1 str1" d="M2457.19 879.263c1.61135,0 2.9256,-1.31426 2.9256,-2.9256 0,-1.61135 -1.31426,-2.9256 -2.9256,-2.9256 -0.805674,0 -1.46028,-0.659646 -1.46028,-1.46532 0,-0.805674 0.65461,-1.46028 1.46028,-1.46028 0.805674,0 1.46532,0.65461 1.46532,1.46028l0.971845 0c0,-1.34447 -1.0927,-2.43716 -2.43716,-2.43716 -1.34447,0 -2.43716,1.0927 -2.43716,2.43716 0,1.34447 1.0927,2.43716 2.43716,2.43716 1.07255,0 1.94872,0.876171 1.94872,1.95376 0,1.07255 -0.876171,1.94872 -1.94872,1.94872 -1.07255,0 -1.94872,-0.876171 -1.94872,-1.94872l-0.97688 0c0,1.61135 1.31426,2.9256 2.9256,2.9256z"/>
+ </g>
+ <g>
+ <path id="_21796112" class="fil1 str1" d="M2249.46 869.509c1.59121,0 3.00617,0.765391 3.89745,1.94872l-1.31929 0c-0.689859,-0.604256 -1.59121,-0.971845 -2.57816,-0.971845 -2.14511,0 -3.89745,1.75234 -3.89745,3.89745 0,2.15014 1.75234,3.90248 3.89745,3.90248 0.986951,0 1.8883,-0.367589 2.57816,-0.97688l1.31929 0c-0.891277,1.18333 -2.30624,1.95376 -3.89745,1.95376 -2.6839,0 -4.87433,-2.19043 -4.87433,-4.87936 0,-2.6839 2.19043,-4.87433 4.87433,-4.87433z"/>
+ <path id="_21795312" class="fil1 str1" d="M2276.77 879.263c-2.6839,0 -4.87433,-2.19043 -4.87433,-4.87936 0,-2.6839 2.19043,-4.87433 4.87433,-4.87433 1.59121,0 3.01121,0.770426 3.90248,1.95376l0 -0.97688 0.97688 0 0 3.89745 0 4.87936 -0.97688 0 0 -1.9588c-0.891277,1.18837 -2.31128,1.9588 -3.90248,1.9588zm0 -0.97688c-2.14511,0 -3.90248,-1.75234 -3.90248,-3.90248 0,-2.14511 1.75738,-3.89745 3.90248,-3.89745 2.15014,0 3.90248,1.75234 3.90248,3.89745 0,2.15014 -1.75234,3.90248 -3.90248,3.90248z"/>
+ <path id="_21794512" class="fil1 str1" d="M2259.22 879.263c-2.6839,0 -4.87433,-2.19043 -4.87433,-4.87936 0,-2.6839 2.19043,-4.87433 4.87433,-4.87433 1.59121,0 3.01121,0.770426 3.90248,1.95376l0 -0.97688 0.971845 0 0 3.89745 0 4.87936 -0.971845 0 0 -1.9588c-0.891277,1.18837 -2.31128,1.9588 -3.90248,1.9588zm0 -0.97688c-2.15014,0 -3.90248,-1.75234 -3.90248,-3.90248 0,-2.14511 1.75234,-3.89745 3.90248,-3.89745 2.15014,0 3.90248,1.75234 3.90248,3.89745 0,2.15014 -1.75234,3.90248 -3.90248,3.90248z"/>
+ <path id="_21793712" class="fil1 str1" d="M2289.45 869.509c2.6839,0 4.87433,2.19043 4.87433,4.87433 0,2.68894 -2.19043,4.87936 -4.87433,4.87936 -1.59121,0 -3.01121,-0.770426 -3.90248,-1.9588l0 1.9588 -0.971845 0 0 -4.87936 0 -8.77681 0.971845 0 0 5.85624c0.891277,-1.18333 2.31128,-1.95376 3.90248,-1.95376zm0 8.77681c-2.15014,0 -3.90248,-1.75234 -3.90248,-3.90248 0,-2.14511 1.75234,-3.89745 3.90248,-3.89745 2.15014,0 3.90248,1.75234 3.90248,3.89745 0,2.15014 -1.75234,3.90248 -3.90248,3.90248z"/>
+ <path id="_21792928" class="fil1 str1" d="M2304.08 874.383l6.82809 0c0,-2.14511 -1.75234,-3.89745 -3.90248,-3.89745 -2.15014,0 -3.90248,1.75234 -3.90248,3.89745 0,2.15014 1.75234,3.90248 3.90248,3.90248 0.986951,0 1.8883,-0.367589 2.57816,-0.97688l1.31929 0c-0.891277,1.18333 -2.30624,1.95376 -3.89745,1.95376 -2.6839,0 -4.87433,-2.19043 -4.87433,-4.87936 0,-2.6839 2.19043,-4.87433 4.87433,-4.87433 2.6839,0 4.87936,2.19043 4.87936,4.87433l0 0.97688 -7.80497 0 0 -0.97688z"/>
+ <path id="_21792312" class="fil1 str1" d="M2297.25 876.337c0,1.61135 1.31426,2.9256 2.9256,2.9256l0 -0.97688c-1.07255,0 -1.94872,-0.876171 -1.94872,-1.94872l0 -10.7306 -0.97688 0 0 10.7306z"/>
+ <path id="_21791792" class="fil1 str1" d="M2267.02 876.337c0,1.61135 1.31426,2.9256 2.9256,2.9256l0 -0.97688c-1.07255,0 -1.94872,-0.876171 -1.94872,-1.94872l0 -10.7306 -0.97688 0 0 10.7306z"/>
+ <path id="_21791408" class="fil1 str1" d="M2239.71 879.263c1.61135,0 2.9256,-1.31426 2.9256,-2.9256 0,-1.61135 -1.31426,-2.9256 -2.9256,-2.9256 -0.805674,0 -1.46532,-0.659646 -1.46532,-1.46532 0,-0.805674 0.659646,-1.46028 1.46532,-1.46028 0.805674,0 1.46028,0.65461 1.46028,1.46028l0.97688 0c0,-1.34447 -1.09773,-2.43716 -2.43716,-2.43716 -1.34447,0 -2.4422,1.0927 -2.4422,2.43716 0,1.34447 1.09773,2.43716 2.4422,2.43716 1.07255,0 1.94872,0.876171 1.94872,1.95376 0,1.07255 -0.876171,1.94872 -1.94872,1.94872 -1.07759,0 -1.95376,-0.876171 -1.95376,-1.94872l-0.971845 0c0,1.61135 1.31426,2.9256 2.9256,2.9256z"/>
+ </g>
+ <g>
+ <path id="_21790264" class="fil1 str1" d="M2365.62 869.453c-2.68894,0 -4.87936,2.19043 -4.87936,4.87433 0,2.68894 2.19043,4.87936 4.87936,4.87936 2.6839,0 4.87433,-2.19043 4.87433,-4.87936 0,-2.6839 -2.19043,-4.87433 -4.87433,-4.87433zm0 0.971845c2.14511,0 3.89745,1.75234 3.89745,3.90248 0,2.15014 -1.75234,3.90248 -3.89745,3.90248 -2.15014,0 -3.90248,-1.75234 -3.90248,-3.90248 0,-2.15014 1.75234,-3.90248 3.90248,-3.90248z"/>
+ <path id="_21789144" class="fil1 str1" d="M2349.04 869.453c1.59121,0 3.00617,0.765391 3.89745,1.94872l-1.32433 0c-0.684823,-0.604256 -1.58617,-0.97688 -2.57312,-0.97688 -2.15014,0 -3.90248,1.75234 -3.90248,3.90248 0,2.15014 1.75234,3.90248 3.90248,3.90248 0.986951,0 1.8883,-0.367589 2.57312,-0.97688l1.32433 0c-0.891277,1.18333 -2.30624,1.95376 -3.89745,1.95376 -2.6839,0 -4.87433,-2.19043 -4.87433,-4.87936 0,-2.6839 2.19043,-4.87433 4.87433,-4.87433z"/>
+ <path id="_21788360" class="fil1 str1" d="M2334.75 874.328l6.82809 0c0,-2.15014 -1.75234,-3.90248 -3.90248,-3.90248 -2.15014,0 -3.90248,1.75234 -3.90248,3.90248 0,2.15014 1.75234,3.90248 3.90248,3.90248 0.986951,0 1.8883,-0.367589 2.57312,-0.97688l1.32433 0c-0.891277,1.18333 -2.30624,1.95376 -3.89745,1.95376 -2.6839,0 -4.87936,-2.19043 -4.87936,-4.87936 0,-2.6839 2.19546,-4.87433 4.87936,-4.87433 2.6839,0 4.87433,2.19043 4.87433,4.87433l0 0.97688 -7.79993 0 0 -0.97688z"/>
+ <path id="_21787728" class="fil1 str1" d="M2373.42 870.778c0.715036,-0.81071 1.76241,-1.32433 2.9256,-1.32433l0 0.971845c-1.61135,0 -2.9256,1.31426 -2.9256,2.9256l0 5.85624 -0.97688 0 0 -5.85624 0 -3.89745 0.97688 0 0 1.32433z"/>
+ <path id="_21787344" class="fil1 str1" d="M2358.7 869.317l-2.9256 0 0 -2.9256 -0.97688 0 0 8.77681c0,2.14511 1.75234,3.89745 3.90248,3.89745l0 -0.971845c-1.61135,0 -2.9256,-1.31426 -2.9256,-2.9256l0 -4.87936 2.9256 0 0 -0.971845z"/>
+ <path id="_21786656" class="fil1 str1" d="M2323.09 871.402l0 -1.94872 -0.971845 0 0 1.94872c0,3.3939 1.74731,6.39 4.38589,8.13731 2.64362,-1.74731 4.39092,-4.74341 4.39092,-8.13731l0 -1.94872 -0.97688 0 0 1.94872c0,2.81986 -1.33943,5.33256 -3.41404,6.93887 -2.07461,-1.60631 -3.41404,-4.11901 -3.41404,-6.93887z"/>
+ </g>
+ </g>
+ <g id="_150690840">
+ <path id="_150695216" class="fil5" d="M2335.53 775.915l18.3341 0 0 18.3341 0.00503546 0c0,10.1263 -8.21284,18.3392 -18.3392,18.3392 -10.1263,0 -18.3341,-8.21284 -18.3341,-18.3392l0 0 0 -25.9276 -0.00503546 0c0,-10.1263 8.21284,-18.3341 18.3392,-18.3341 10.1213,0 18.3341,8.20781 18.3341,18.3341l-10.7406 0c0,-4.18951 -3.40397,-7.59348 -7.59348,-7.59348 -4.19454,0 -7.59348,3.40397 -7.59348,7.59348l0 25.9276 0 0c0,4.19454 3.39894,7.59348 7.59348,7.59348 4.18951,0 7.58844,-3.39894 7.59348,-7.58844l0 -0.00503546 0 -7.58844 -7.59348 0 0 -10.7457z"/>
+ <path id="_150694168" class="fil5" d="M2249.22 781.282c-3.31837,-3.31837 -5.37284,-7.90064 -5.37284,-12.9613 0,-10.1263 8.21284,-18.3341 18.3341,-18.3341 10.1263,0 18.3392,8.20781 18.3392,18.3341l-10.7406 0c0,-4.19454 -3.40397,-7.59348 -7.59852,-7.59348 -4.19454,0 -7.59348,3.39894 -7.59348,7.59348 0,2.09475 0.850993,3.99312 2.22064,5.36277l0.00503546 0c1.37468,1.37972 3.27305,2.23071 5.3678,2.23071l0 0c5.06568,0 9.64795,2.05447 12.9663,5.37284l0 0c3.31837,3.31837 5.37284,7.90064 5.37284,12.9613 0,10.1263 -8.21284,18.3392 -18.3392,18.3392 -10.1213,0 -18.3341,-8.21284 -18.3341,-18.3392l10.7406 0c0,4.19454 3.39894,7.59852 7.59348,7.59852 4.19454,0 7.59852,-3.40397 7.59852,-7.59852 0,-2.09475 -0.850993,-3.98809 -2.22064,-5.36277l-0.00503546 0c-1.37468,-1.37468 -3.27305,-2.22568 -5.37284,-2.22568l0 -0.00503546c-5.06064,0 -9.64291,-2.05447 -12.9613,-5.37284l0 0z"/>
+ <polygon id="_150693424" class="fil5" points="2317.19,749.987 2304.22,812.588 2293.48,812.588 2280.52,749.987 2291.26,749.987 2298.86,786.65 2306.45,749.987 "/>
+ <path id="_150692808" class="fil5" d="M2375.99 759.152l0 9.16958 9.16958 0 0 44.2668 10.7406 0 0 -62.6009 -10.7406 0c0,5.06064 -4.1039,9.16454 -9.16958,9.16454z"/>
+ <rect id="_150692096" class="fil5" x="2401.27" y="801.845" width="10.7407" height="10.7407"/>
+ <path id="_150691232" class="fil5" d="M2428.14 801.847l25.9326 0 0 10.7406 -36.6733 0 0 -10.7406 0 -4.90958c0,-10.1263 8.21284,-18.3392 18.3341,-18.3392l0 0c4.19454,0 7.59852,-3.39894 7.59852,-7.59348l0 0 0 -2.6839c0,-4.19454 -3.40397,-7.59348 -7.59852,-7.59348 -4.19454,0 -7.59348,3.39894 -7.59348,7.59348l-10.7406 0c0,-10.1263 8.21284,-18.3341 18.3341,-18.3341 10.1263,0 18.3392,8.20781 18.3392,18.3341l0 2.6839 0 0c0,10.1263 -8.21284,18.3341 -18.3392,18.3341l0 0c-4.19454,0 -7.59348,3.40397 -7.59348,7.59852l0 4.90958z"/>
+ </g>
+ <g id="_151174504">
+ <path id="_150688912" class="fil1" d="M0.00503546 120.03l0 0c11.9441,0 21.6324,-9.6832 21.6324,-21.6273 0,-5.97206 -2.42206,-11.3801 -6.33461,-15.2977l0 -44.2466 31.2853 31.2904c0.00503546,5.53397 2.11489,11.0679 6.33461,15.2927 4.22475,4.21972 9.75873,6.33461 15.2977,6.33461l0 0c5.53397,0 11.073,-2.11489 15.2927,-6.33461 4.22475,-4.22475 6.33461,-9.75873 6.33461,-15.2927l31.2904 -31.2904 0 44.2466c-3.91256,3.91759 -6.33461,9.32568 -6.33461,15.2977 0,11.9441 9.6832,21.6273 21.6273,21.6273 11.9441,0 21.6324,-9.6832 21.6324,-21.6273 0,-5.97206 -2.42206,-11.3801 -6.33461,-15.2977l0 -44.2466 31.2853 31.2904c0,5.53397 2.11489,11.0679 6.33461,15.2927 8.44951,8.44447 22.146,8.44447 30.5904,0 8.44447,-8.44447 8.44447,-22.146 0,-30.5904 -4.21972,-4.22475 -9.75873,-6.33461 -15.2927,-6.33461l-31.2904 -31.2904 44.2517 0c3.91256,3.91256 9.32064,6.33461 15.2927,6.33461 11.9441,0 21.6273,-9.6832 21.6273,-21.6273l0 0 -254.523 0 0 118.097zm68.2154 -71.5137l-31.2904 -31.2904 31.2904 0 0 0 31.2853 0 -31.2853 31.2904z"/>
+ <path id="_151174664" class="fil4" d="M0.00503546 138.359l0 0c22.0654,0 39.9614,-17.891 39.9614,-39.9564 7.79993,7.79993 18.027,11.6974 28.254,11.6974l0 0c10.227,0 20.4541,-3.89745 28.254,-11.6974 0,22.0654 17.891,39.9564 39.9564,39.9564 22.0654,0 39.9564,-17.896 39.9564,-39.9564 15.6049,15.5999 40.9081,15.5999 56.513,0 15.5999,-15.6049 15.5999,-40.9081 0,-56.513 22.0654,0 39.9564,-17.891 39.9564,-39.9564l-18.3291 0 0 0c0,11.9441 -9.6832,21.6273 -21.6273,21.6273 -5.97206,0 -11.3801,-2.42206 -15.2927,-6.33461l-44.2517 0 31.2904 31.2904c5.53397,0 11.073,2.10986 15.2927,6.33461 8.44447,8.44447 8.44447,22.146 0,30.5904 -8.44447,8.44447 -22.1409,8.44447 -30.5904,0 -4.21972,-4.22475 -6.33461,-9.75873 -6.33461,-15.2927l-31.2853 -31.2904 0 44.2466c3.91256,3.91759 6.33461,9.32568 6.33461,15.2977 0,11.9441 -9.68823,21.6273 -21.6324,21.6273 -11.9441,0 -21.6273,-9.6832 -21.6273,-21.6273 0,-5.97206 2.42206,-11.3801 6.33461,-15.2977l0 -44.2466 -31.2904 31.2904c0,5.53397 -2.10986,11.0679 -6.33461,15.2927 -4.21972,4.21972 -9.75873,6.33461 -15.2927,6.33461l0 0c-5.53901,0 -11.073,-2.11489 -15.2977,-6.33461 -4.21972,-4.22475 -6.32958,-9.75873 -6.33461,-15.2927l-31.2853 -31.2904 0 44.2466c3.91256,3.91759 6.33461,9.32568 6.33461,15.2977 0,11.9441 -9.68823,21.6273 -21.6324,21.6273l0 0 0 18.3291zm68.2154 -89.8427l-31.2904 -31.2904 31.2904 0 0 0 31.2853 0 -31.2853 31.2904z"/>
+ </g>
+ <g id="_150685336">
+ <path id="_151170312" class="fil6" d="M53.9449 260.147l4.68298 -0.624398c0.54383,2.65873 1.45525,4.56717 2.74433,5.74043 1.29915,1.17326 2.87021,1.75738 4.72327,1.75738 2.20553,0 4.06865,-0.765391 5.58937,-2.29114 1.51064,-1.52575 2.27099,-3.41908 2.27099,-5.67497 0,-2.15014 -0.69993,-3.92766 -2.10482,-5.32249 -1.40993,-1.39482 -3.19752,-2.09475 -5.36277,-2.09475 -0.886242,0 -1.98901,0.176241 -3.30326,0.523688l0.523688 -4.11397c0.312199,0.0402837 0.558937,0.0553901 0.75532,0.0553901 1.98901,0 3.78163,-0.523688 5.38291,-1.56099 1.59624,-1.04234 2.39688,-2.64865 2.39688,-4.8139 0,-1.71709 -0.584114,-3.14717 -1.74731,-4.26504 -1.16823,-1.12794 -2.6688,-1.69695 -4.50674,-1.69695 -1.8178,0 -3.33851,0.579078 -4.54702,1.71709 -1.21355,1.14305 -1.99908,2.86518 -2.34149,5.15632l-4.68298 -0.835887c0.569007,-3.14213 1.87319,-5.57426 3.89745,-7.29639 2.03433,-1.72716 4.55709,-2.59326 7.57837,-2.59326 2.07965,0 3.99816,0.453192 5.74546,1.33943 1.75234,0.896313 3.09177,2.11489 4.02334,3.66078 0.92149,1.54589 1.39482,3.17738 1.39482,4.91965 0,1.64156 -0.443121,3.14213 -1.3344,4.5017 -0.886242,1.3495 -2.19043,2.42709 -3.92263,3.2227 2.25589,0.518653 4.00319,1.60128 5.25702,3.24284 1.24376,1.63653 1.86312,3.68596 1.86312,6.1483 0,3.32844 -1.20348,6.15334 -3.64064,8.46965 -2.42206,2.32135 -5.49873,3.47447 -9.20986,3.47447 -3.34858,0 -6.12816,-0.991986 -8.33873,-2.99107 -2.21057,-1.98901 -3.47447,-4.57724 -3.78667,-7.75461zm54.237 5.56922l0 4.5017 -25.2176 0c-0.0352482,-1.12794 0.140993,-2.21057 0.54383,-3.25291 0.639504,-1.72213 1.66674,-3.40901 3.0817,-5.07575 1.42,-1.6617 3.4644,-3.59029 6.12816,-5.77568 4.14419,-3.40397 6.95398,-6.09291 8.40922,-8.08192 1.45525,-1.97894 2.18539,-3.8622 2.18539,-5.62965 0,-1.85809 -0.664681,-3.41908 -1.98901,-4.69809 -1.3344,-1.27397 -3.0666,-1.91348 -5.1966,-1.91348 -2.25589,0 -4.05858,0.674752 -5.40809,2.03433 -1.35958,1.3495 -2.0444,3.22773 -2.0595,5.61454l-4.8139 -0.48844c0.327305,-3.59532 1.57106,-6.33461 3.72121,-8.21788 2.15014,-1.87823 5.04553,-2.81986 8.66603,-2.81986 3.66078,0 6.55617,1.01716 8.68618,3.04646 2.14007,2.02929 3.20759,4.54702 3.20759,7.54816 0,1.52575 -0.312199,3.02631 -0.941632,4.5017 -0.619362,1.47539 -1.6617,3.03135 -3.10688,4.65277 -1.45021,1.63653 -3.85717,3.87227 -7.22086,6.71731 -2.80979,2.36163 -4.61249,3.95787 -5.41312,4.80383 -0.795603,0.835887 -1.45525,1.67681 -1.97894,2.53284l18.7168 0zm18.0018 4.5017l10.0961 -14.3611 -9.34079 -13.2684 5.85121 0 4.2449 6.47561c0.790568,1.23369 1.44014,2.26092 1.91851,3.09681 0.765391,-1.14305 1.46532,-2.15518 2.11489,-3.04646l4.65277 -6.52596 5.5944 0 -9.54724 13.0116 10.2774 14.618 -5.74546 0 -5.67497 -8.5905 -1.51064 -2.31631 -7.2561 10.9068 -5.67497 0zm43.2949 -10.0709l4.68298 -0.624398c0.54383,2.65873 1.45525,4.56717 2.74433,5.74043 1.29915,1.17326 2.87021,1.75738 4.72327,1.75738 2.20553,0 4.06865,-0.765391 5.58937,-2.29114 1.51064,-1.52575 2.27099,-3.41908 2.27099,-5.67497 0,-2.15014 -0.69993,-3.92766 -2.10482,-5.32249 -1.40993,-1.39482 -3.19752,-2.09475 -5.36277,-2.09475 -0.886242,0 -1.98901,0.176241 -3.30326,0.523688l0.523688 -4.11397c0.312199,0.0402837 0.558937,0.0553901 0.75532,0.0553901 1.98901,0 3.78163,-0.523688 5.38291,-1.56099 1.59624,-1.04234 2.39688,-2.64865 2.39688,-4.8139 0,-1.71709 -0.584114,-3.14717 -1.74731,-4.26504 -1.16823,-1.12794 -2.6688,-1.69695 -4.50674,-1.69695 -1.8178,0 -3.33851,0.579078 -4.54702,1.71709 -1.21355,1.14305 -1.99908,2.86518 -2.34149,5.15632l-4.68298 -0.835887c0.569007,-3.14213 1.87319,-5.57426 3.89745,-7.29639 2.03433,-1.72716 4.55709,-2.59326 7.57837,-2.59326 2.07965,0 3.99816,0.453192 5.74546,1.33943 1.75234,0.896313 3.09177,2.11489 4.02334,3.66078 0.92149,1.54589 1.39482,3.17738 1.39482,4.91965 0,1.64156 -0.443121,3.14213 -1.3344,4.5017 -0.886242,1.3495 -2.19043,2.42709 -3.92263,3.2227 2.25589,0.518653 4.00319,1.60128 5.25702,3.24284 1.24376,1.63653 1.86312,3.68596 1.86312,6.1483 0,3.32844 -1.20348,6.15334 -3.64064,8.46965 -2.42206,2.32135 -5.49873,3.47447 -9.20986,3.47447 -3.34858,0 -6.12816,-0.991986 -8.33873,-2.99107 -2.21057,-1.98901 -3.47447,-4.57724 -3.78667,-7.75461zm54.237 5.56922l0 4.5017 -25.2176 0c-0.0352482,-1.12794 0.140993,-2.21057 0.54383,-3.25291 0.639504,-1.72213 1.66674,-3.40901 3.0817,-5.07575 1.42,-1.6617 3.4644,-3.59029 6.12816,-5.77568 4.14419,-3.40397 6.95398,-6.09291 8.40922,-8.08192 1.45525,-1.97894 2.18539,-3.8622 2.18539,-5.62965 0,-1.85809 -0.664681,-3.41908 -1.98901,-4.69809 -1.3344,-1.27397 -3.0666,-1.91348 -5.1966,-1.91348 -2.25589,0 -4.05858,0.674752 -5.40809,2.03433 -1.35958,1.3495 -2.0444,3.22773 -2.0595,5.61454l-4.8139 -0.48844c0.327305,-3.59532 1.57106,-6.33461 3.72121,-8.21788 2.15014,-1.87823 5.04553,-2.81986 8.66603,-2.81986 3.66078,0 6.55617,1.01716 8.68618,3.04646 2.14007,2.02929 3.20759,4.54702 3.20759,7.54816 0,1.52575 -0.312199,3.02631 -0.941632,4.5017 -0.619362,1.47539 -1.6617,3.03135 -3.10688,4.65277 -1.45021,1.63653 -3.85717,3.87227 -7.22086,6.71731 -2.80979,2.36163 -4.61249,3.95787 -5.41312,4.80383 -0.795603,0.835887 -1.45525,1.67681 -1.97894,2.53284l18.7168 0z"/>
+ <path id="_150867384" class="fil7" d="M53.9449 1105.41l4.68298 -0.624398c0.54383,2.65873 1.45525,4.56717 2.74433,5.74043 1.29915,1.17326 2.87021,1.75738 4.72327,1.75738 2.20553,0 4.06865,-0.765391 5.58937,-2.29114 1.51064,-1.52575 2.27099,-3.41908 2.27099,-5.67497 0,-2.15014 -0.69993,-3.92766 -2.10482,-5.32249 -1.40993,-1.39482 -3.19752,-2.09475 -5.36277,-2.09475 -0.886242,0 -1.98901,0.176241 -3.30326,0.523688l0.523688 -4.11397c0.312199,0.0402837 0.558937,0.0553901 0.75532,0.0553901 1.98901,0 3.78163,-0.523688 5.38291,-1.56099 1.59624,-1.04234 2.39688,-2.64865 2.39688,-4.8139 0,-1.71709 -0.584114,-3.14717 -1.74731,-4.26504 -1.16823,-1.12794 -2.6688,-1.69695 -4.50674,-1.69695 -1.8178,0 -3.33851,0.579078 -4.54702,1.71709 -1.21355,1.14305 -1.99908,2.86518 -2.34149,5.15632l-4.68298 -0.835887c0.569007,-3.14213 1.87319,-5.57426 3.89745,-7.29639 2.03433,-1.72716 4.55709,-2.59326 7.57837,-2.59326 2.07965,0 3.99816,0.453192 5.74546,1.33943 1.75234,0.896313 3.09177,2.11489 4.02334,3.66078 0.92149,1.54589 1.39482,3.17738 1.39482,4.91965 0,1.64156 -0.443121,3.14213 -1.3344,4.5017 -0.886242,1.3495 -2.19043,2.42709 -3.92263,3.2227 2.25589,0.518653 4.00319,1.60128 5.25702,3.24284 1.24376,1.63653 1.86312,3.68596 1.86312,6.1483 0,3.32844 -1.20348,6.15334 -3.64064,8.46965 -2.42206,2.32135 -5.49873,3.47447 -9.20986,3.47447 -3.34858,0 -6.12816,-0.991986 -8.33873,-2.99107 -2.21057,-1.98901 -3.47447,-4.57724 -3.78667,-7.75461zm54.237 5.56922l0 4.5017 -25.2176 0c-0.0352482,-1.12794 0.140993,-2.21057 0.54383,-3.25291 0.639504,-1.72213 1.66674,-3.40901 3.0817,-5.07575 1.42,-1.6617 3.4644,-3.59029 6.12816,-5.77568 4.14419,-3.40397 6.95398,-6.09291 8.40922,-8.08192 1.45525,-1.97894 2.18539,-3.8622 2.18539,-5.62965 0,-1.85809 -0.664681,-3.41908 -1.98901,-4.69809 -1.3344,-1.27397 -3.0666,-1.91348 -5.1966,-1.91348 -2.25589,0 -4.05858,0.674752 -5.40809,2.03433 -1.35958,1.3495 -2.0444,3.22773 -2.0595,5.61454l-4.8139 -0.48844c0.327305,-3.59532 1.57106,-6.33461 3.72121,-8.21788 2.15014,-1.87823 5.04553,-2.81986 8.66603,-2.81986 3.66078,0 6.55617,1.01716 8.68618,3.04646 2.14007,2.02929 3.20759,4.54702 3.20759,7.54816 0,1.52575 -0.312199,3.02631 -0.941632,4.5017 -0.619362,1.47539 -1.6617,3.03135 -3.10688,4.65277 -1.45021,1.63653 -3.85717,3.87227 -7.22086,6.71731 -2.80979,2.36163 -4.61249,3.95787 -5.41312,4.80383 -0.795603,0.835887 -1.45525,1.67681 -1.97894,2.53284l18.7168 0zm18.0018 4.5017l10.0961 -14.3611 -9.34079 -13.2684 5.85121 0 4.2449 6.47561c0.790568,1.23369 1.44014,2.26092 1.91851,3.09681 0.765391,-1.14305 1.46532,-2.15518 2.11489,-3.04646l4.65277 -6.52596 5.5944 0 -9.54724 13.0116 10.2774 14.618 -5.74546 0 -5.67497 -8.5905 -1.51064 -2.31631 -7.2561 10.9068 -5.67497 0zm43.2949 -10.0709l4.68298 -0.624398c0.54383,2.65873 1.45525,4.56717 2.74433,5.74043 1.29915,1.17326 2.87021,1.75738 4.72327,1.75738 2.20553,0 4.06865,-0.765391 5.58937,-2.29114 1.51064,-1.52575 2.27099,-3.41908 2.27099,-5.67497 0,-2.15014 -0.69993,-3.92766 -2.10482,-5.32249 -1.40993,-1.39482 -3.19752,-2.09475 -5.36277,-2.09475 -0.886242,0 -1.98901,0.176241 -3.30326,0.523688l0.523688 -4.11397c0.312199,0.0402837 0.558937,0.0553901 0.75532,0.0553901 1.98901,0 3.78163,-0.523688 5.38291,-1.56099 1.59624,-1.04234 2.39688,-2.64865 2.39688,-4.8139 0,-1.71709 -0.584114,-3.14717 -1.74731,-4.26504 -1.16823,-1.12794 -2.6688,-1.69695 -4.50674,-1.69695 -1.8178,0 -3.33851,0.579078 -4.54702,1.71709 -1.21355,1.14305 -1.99908,2.86518 -2.34149,5.15632l-4.68298 -0.835887c0.569007,-3.14213 1.87319,-5.57426 3.89745,-7.29639 2.03433,-1.72716 4.55709,-2.59326 7.57837,-2.59326 2.07965,0 3.99816,0.453192 5.74546,1.33943 1.75234,0.896313 3.09177,2.11489 4.02334,3.66078 0.92149,1.54589 1.39482,3.17738 1.39482,4.91965 0,1.64156 -0.443121,3.14213 -1.3344,4.5017 -0.886242,1.3495 -2.19043,2.42709 -3.92263,3.2227 2.25589,0.518653 4.00319,1.60128 5.25702,3.24284 1.24376,1.63653 1.86312,3.68596 1.86312,6.1483 0,3.32844 -1.20348,6.15334 -3.64064,8.46965 -2.42206,2.32135 -5.49873,3.47447 -9.20986,3.47447 -3.34858,0 -6.12816,-0.991986 -8.33873,-2.99107 -2.21057,-1.98901 -3.47447,-4.57724 -3.78667,-7.75461zm54.237 5.56922l0 4.5017 -25.2176 0c-0.0352482,-1.12794 0.140993,-2.21057 0.54383,-3.25291 0.639504,-1.72213 1.66674,-3.40901 3.0817,-5.07575 1.42,-1.6617 3.4644,-3.59029 6.12816,-5.77568 4.14419,-3.40397 6.95398,-6.09291 8.40922,-8.08192 1.45525,-1.97894 2.18539,-3.8622 2.18539,-5.62965 0,-1.85809 -0.664681,-3.41908 -1.98901,-4.69809 -1.3344,-1.27397 -3.0666,-1.91348 -5.1966,-1.91348 -2.25589,0 -4.05858,0.674752 -5.40809,2.03433 -1.35958,1.3495 -2.0444,3.22773 -2.0595,5.61454l-4.8139 -0.48844c0.327305,-3.59532 1.57106,-6.33461 3.72121,-8.21788 2.15014,-1.87823 5.04553,-2.81986 8.66603,-2.81986 3.66078,0 6.55617,1.01716 8.68618,3.04646 2.14007,2.02929 3.20759,4.54702 3.20759,7.54816 0,1.52575 -0.312199,3.02631 -0.941632,4.5017 -0.619362,1.47539 -1.6617,3.03135 -3.10688,4.65277 -1.45021,1.63653 -3.85717,3.87227 -7.22086,6.71731 -2.80979,2.36163 -4.61249,3.95787 -5.41312,4.80383 -0.795603,0.835887 -1.45525,1.67681 -1.97894,2.53284l18.7168 0z"/>
+ <path id="_150498288" class="fil7" d="M78.5432 1540.13l0 4.5017 -25.2176 0c-0.0352482,-1.12794 0.140993,-2.21057 0.54383,-3.25291 0.639504,-1.72213 1.66674,-3.40901 3.0817,-5.07575 1.42,-1.6617 3.4644,-3.59029 6.12816,-5.77568 4.14419,-3.40397 6.95398,-6.09291 8.40922,-8.08192 1.45525,-1.97894 2.18539,-3.8622 2.18539,-5.62965 0,-1.85809 -0.664681,-3.41908 -1.98901,-4.69809 -1.3344,-1.27397 -3.0666,-1.91348 -5.1966,-1.91348 -2.25589,0 -4.05858,0.674752 -5.40809,2.03433 -1.35958,1.3495 -2.0444,3.22773 -2.0595,5.61454l-4.8139 -0.48844c0.327305,-3.59532 1.57106,-6.33461 3.72121,-8.21788 2.15014,-1.87823 5.04553,-2.81986 8.66603,-2.81986 3.66078,0 6.55617,1.01716 8.68618,3.04646 2.14007,2.02929 3.20759,4.54702 3.20759,7.54816 0,1.52575 -0.312199,3.02631 -0.941632,4.5017 -0.619362,1.47539 -1.6617,3.03135 -3.10688,4.65277 -1.45021,1.63653 -3.85717,3.87227 -7.22086,6.71731 -2.80979,2.36163 -4.61249,3.95787 -5.41312,4.80383 -0.795603,0.835887 -1.45525,1.67681 -1.97894,2.53284l18.7168 0zm5.01532 -14.3108c0,-4.51178 0.463263,-8.14235 1.39482,-10.8867 0.926525,-2.7544 2.31128,-4.87936 4.13915,-6.36986 1.82787,-1.4905 4.12908,-2.23575 6.90362,-2.23575 2.04943,0 3.84206,0.412908 5.38795,1.24376 1.54589,0.815745 2.81482,2.00411 3.82695,3.56007 1.00709,1.55092 1.79766,3.44426 2.36667,5.67497 0.574043,2.23071 0.861064,5.23185 0.861064,9.01348 0,4.47653 -0.463263,8.08192 -1.37972,10.8363 -0.92149,2.7544 -2.30121,4.87433 -4.12908,6.37993 -1.82787,1.50057 -4.13915,2.24582 -6.93383,2.24582 -3.68092,0 -6.56625,-1.31426 -8.661,-3.95284 -2.5127,-3.17234 -3.7766,-8.3488 -3.7766,-15.5092zm4.8139 0c0,6.26412 0.740213,10.4284 2.20553,12.5081 1.46532,2.06958 3.26802,3.10688 5.41816,3.10688 2.15518,0 3.95787,-1.04738 5.42319,-3.12702 1.46532,-2.07965 2.20553,-6.24398 2.20553,-12.488 0,-6.27922 -0.740213,-10.4536 -2.20553,-12.5131 -1.46532,-2.06958 -3.28312,-3.10185 -5.46851,-3.10185 -2.16021,0 -3.87227,0.916454 -5.16135,2.73929 -1.60631,2.31631 -2.41702,6.6166 -2.41702,12.8757zm37.8113 18.8125l10.0961 -14.3611 -9.34079 -13.2684 5.85121 0 4.2449 6.47561c0.790568,1.23369 1.44014,2.26092 1.91851,3.09681 0.765391,-1.14305 1.46532,-2.15518 2.11489,-3.04646l4.65277 -6.52596 5.5944 0 -9.54724 13.0116 10.2774 14.618 -5.74546 0 -5.67497 -8.5905 -1.51064 -2.31631 -7.2561 10.9068 -5.67497 0zm67.8932 -4.5017l0 4.5017 -25.2176 0c-0.0352482,-1.12794 0.140993,-2.21057 0.54383,-3.25291 0.639504,-1.72213 1.66674,-3.40901 3.0817,-5.07575 1.42,-1.6617 3.4644,-3.59029 6.12816,-5.77568 4.14419,-3.40397 6.95398,-6.09291 8.40922,-8.08192 1.45525,-1.97894 2.18539,-3.8622 2.18539,-5.62965 0,-1.85809 -0.664681,-3.41908 -1.98901,-4.69809 -1.3344,-1.27397 -3.0666,-1.91348 -5.1966,-1.91348 -2.25589,0 -4.05858,0.674752 -5.40809,2.03433 -1.35958,1.3495 -2.0444,3.22773 -2.0595,5.61454l-4.8139 -0.48844c0.327305,-3.59532 1.57106,-6.33461 3.72121,-8.21788 2.15014,-1.87823 5.04553,-2.81986 8.66603,-2.81986 3.66078,0 6.55617,1.01716 8.68618,3.04646 2.14007,2.02929 3.20759,4.54702 3.20759,7.54816 0,1.52575 -0.312199,3.02631 -0.941632,4.5017 -0.619362,1.47539 -1.6617,3.03135 -3.10688,4.65277 -1.45021,1.63653 -3.85717,3.87227 -7.22086,6.71731 -2.80979,2.36163 -4.61249,3.95787 -5.41312,4.80383 -0.795603,0.835887 -1.45525,1.67681 -1.97894,2.53284l18.7168 0zm5.01532 -14.3108c0,-4.51178 0.463263,-8.14235 1.39482,-10.8867 0.926525,-2.7544 2.31128,-4.87936 4.13915,-6.36986 1.82787,-1.4905 4.12908,-2.23575 6.90362,-2.23575 2.04943,0 3.84206,0.412908 5.38795,1.24376 1.54589,0.815745 2.81482,2.00411 3.82695,3.56007 1.00709,1.55092 1.79766,3.44426 2.36667,5.67497 0.574043,2.23071 0.861064,5.23185 0.861064,9.01348 0,4.47653 -0.463263,8.08192 -1.37972,10.8363 -0.92149,2.7544 -2.30121,4.87433 -4.12908,6.37993 -1.82787,1.50057 -4.13915,2.24582 -6.93383,2.24582 -3.68092,0 -6.56625,-1.31426 -8.661,-3.95284 -2.5127,-3.17234 -3.7766,-8.3488 -3.7766,-15.5092zm4.8139 0c0,6.26412 0.740213,10.4284 2.20553,12.5081 1.46532,2.06958 3.26802,3.10688 5.41816,3.10688 2.15518,0 3.95787,-1.04738 5.42319,-3.12702 1.46532,-2.07965 2.20553,-6.24398 2.20553,-12.488 0,-6.27922 -0.740213,-10.4536 -2.20553,-12.5131 -1.46532,-2.06958 -3.28312,-3.10185 -5.46851,-3.10185 -2.16021,0 -3.87227,0.916454 -5.16135,2.73929 -1.60631,2.31631 -2.41702,6.6166 -2.41702,12.8757z"/>
+ <path id="_150497104" class="fil7" d="M71.559 1688.67l-4.67795 0 0 -29.8402c-1.12794,1.07255 -2.60333,2.14511 -4.43624,3.2227 -1.83794,1.07255 -3.47951,1.88326 -4.93475,2.41702l0 -4.52185c2.61844,-1.23369 4.90958,-2.72922 6.87341,-4.47653 1.95376,-1.75738 3.34858,-3.45433 4.16433,-5.10596l3.01121 0 0 38.3048zm12.3117 -33.1485l0 -4.5017 24.6889 0 0 3.64064c-2.42206,2.58823 -4.82901,6.02242 -7.22086,10.3026 -2.37674,4.28014 -4.22475,8.69625 -5.5239,13.2181 -0.941632,3.19752 -1.53582,6.6871 -1.79263,10.4889l-4.8139 0c0.0553901,-3.00114 0.639504,-6.62667 1.76745,-10.8816 1.12794,-4.2449 2.74433,-8.3488 4.84915,-12.2916 2.11489,-3.94277 4.35064,-7.27121 6.73242,-9.97525l-18.6866 0zm42.313 33.1485l10.0961 -14.3611 -9.34079 -13.2684 5.85121 0 4.2449 6.47561c0.790568,1.23369 1.44014,2.26092 1.91851,3.09681 0.765391,-1.14305 1.46532,-2.15518 2.11489,-3.04646l4.65277 -6.52596 5.5944 0 -9.54724 13.0116 10.2774 14.618 -5.74546 0 -5.67497 -8.5905 -1.51064 -2.31631 -7.2561 10.9068 -5.67497 0zm60.909 0l-4.67795 0 0 -29.8402c-1.12794,1.07255 -2.60333,2.14511 -4.43624,3.2227 -1.83794,1.07255 -3.47951,1.88326 -4.93475,2.41702l0 -4.52185c2.61844,-1.23369 4.90958,-2.72922 6.87341,-4.47653 1.95376,-1.75738 3.34858,-3.45433 4.16433,-5.10596l3.01121 0 0 38.3048zm12.3117 -33.1485l0 -4.5017 24.6889 0 0 3.64064c-2.42206,2.58823 -4.82901,6.02242 -7.22086,10.3026 -2.37674,4.28014 -4.22475,8.69625 -5.5239,13.2181 -0.941632,3.19752 -1.53582,6.6871 -1.79263,10.4889l-4.8139 0c0.0553901,-3.00114 0.639504,-6.62667 1.76745,-10.8816 1.12794,-4.2449 2.74433,-8.3488 4.84915,-12.2916 2.11489,-3.94277 4.35064,-7.27121 6.73242,-9.97525l-18.6866 0z"/>
+ <path id="_151159024" class="fil6" d="M61.1305 412.203c-1.94369,-0.71 -3.38383,-1.72213 -4.32546,-3.04646 -0.931561,-1.31426 -1.39986,-2.89539 -1.39986,-4.73334 0,-2.77958 0.991986,-5.10596 2.99107,-6.9993 1.99908,-1.89333 4.64773,-2.84 7.96107,-2.84 3.32844,0 6.01234,0.966809 8.04667,2.90043 2.02426,1.93865 3.03638,4.29022 3.03638,7.06979 0,1.76745 -0.463263,3.3083 -1.38475,4.62256 -0.936596,1.30419 -2.33646,2.31631 -4.22979,3.02631 2.33646,0.765391 4.12405,1.98901 5.34766,3.69603 1.21858,1.69695 1.82787,3.73128 1.82787,6.08284 0,3.26802 -1.15312,6.00227 -3.45433,8.22291 -2.30624,2.22064 -5.34766,3.33348 -9.11419,3.33348 -3.76149,0 -6.79284,-1.11284 -9.09908,-3.33851 -2.31128,-2.23071 -3.4644,-5.01029 -3.4644,-8.34376 0,-2.47745 0.629433,-4.55709 1.8883,-6.2339 1.25383,-1.66674 3.04646,-2.81482 5.37284,-3.41908zm-0.941632 -7.94093c0,1.8027 0.589149,3.27809 1.74227,4.42617 1.16319,1.14305 2.67383,1.72213 4.53192,1.72213 1.8027,0 3.28312,-0.569007 4.44128,-1.70702 1.15312,-1.13801 1.72213,-2.53284 1.72213,-4.1744 0,-1.72213 -0.589149,-3.16227 -1.77752,-4.33553 -1.18837,-1.16823 -2.66376,-1.75738 -4.44128,-1.75738 -1.78255,0 -3.26802,0.579078 -4.45135,1.71709 -1.1783,1.14305 -1.76745,2.51773 -1.76745,4.10894zm-1.5056 17.6241c0,1.32936 0.317234,2.62851 0.946667,3.87227 0.634468,1.2488 1.5761,2.22064 2.8249,2.90043 1.25383,0.684823 2.59326,1.03227 4.03341,1.03227 2.24078,0 4.08376,-0.720071 5.54405,-2.16525 1.45525,-1.44014 2.18539,-3.26802 2.18539,-5.48866 0,-2.25589 -0.750284,-4.12405 -2.25085,-5.59944 -1.50057,-1.47036 -3.38383,-2.21057 -5.63972,-2.21057 -2.2005,0 -4.02334,0.730142 -5.46851,2.18539 -1.45021,1.46532 -2.17532,3.28816 -2.17532,5.47355zm24.8752 -7.81c0,-4.51178 0.463263,-8.14235 1.39482,-10.8867 0.926525,-2.7544 2.31128,-4.87936 4.13915,-6.36986 1.82787,-1.4905 4.12908,-2.23575 6.90362,-2.23575 2.04943,0 3.84206,0.412908 5.38795,1.24376 1.54589,0.815745 2.81482,2.00411 3.82695,3.56007 1.00709,1.55092 1.79766,3.44426 2.36667,5.67497 0.574043,2.23071 0.861064,5.23185 0.861064,9.01348 0,4.47653 -0.463263,8.08192 -1.37972,10.8363 -0.92149,2.7544 -2.30121,4.87433 -4.12908,6.37993 -1.82787,1.50057 -4.13915,2.24582 -6.93383,2.24582 -3.68092,0 -6.56625,-1.31426 -8.661,-3.95284 -2.5127,-3.17234 -3.7766,-8.3488 -3.7766,-15.5092zm4.8139 0c0,6.26412 0.740213,10.4284 2.20553,12.5081 1.46532,2.06958 3.26802,3.10688 5.41816,3.10688 2.15518,0 3.95787,-1.04738 5.42319,-3.12702 1.46532,-2.07965 2.20553,-6.24398 2.20553,-12.488 0,-6.27922 -0.740213,-10.4536 -2.20553,-12.5131 -1.46532,-2.06958 -3.28312,-3.10185 -5.46851,-3.10185 -2.16021,0 -3.87227,0.916454 -5.16135,2.73929 -1.60631,2.31631 -2.41702,6.6166 -2.41702,12.8757zm37.8113 18.8125l10.0961 -14.3611 -9.34079 -13.2684 5.85121 0 4.2449 6.47561c0.790568,1.23369 1.44014,2.26092 1.91851,3.09681 0.765391,-1.14305 1.46532,-2.15518 2.11489,-3.04646l4.65277 -6.52596 5.5944 0 -9.54724 13.0116 10.2774 14.618 -5.74546 0 -5.67497 -8.5905 -1.51064 -2.31631 -7.2561 10.9068 -5.67497 0zm60.909 0l-4.67795 0 0 -29.8402c-1.12794,1.07255 -2.60333,2.14511 -4.43624,3.2227 -1.83794,1.07255 -3.47951,1.88326 -4.93475,2.41702l0 -4.52185c2.61844,-1.23369 4.90958,-2.72922 6.87341,-4.47653 1.95376,-1.75738 3.34858,-3.45433 4.16433,-5.10596l3.01121 0 0 38.3048zm11.9995 -9.99036l4.91965 -0.417944c0.367589,2.39688 1.20851,4.18951 2.53284,5.39802 1.3344,1.20851 2.93064,1.81277 4.80383,1.81277 2.25589,0 4.16936,-0.850993 5.72029,-2.54794 1.56603,-1.70702 2.34653,-3.96291 2.34653,-6.76766 0,-2.67383 -0.745249,-4.77866 -2.24582,-6.32454 -1.50057,-1.54589 -3.4644,-2.31631 -5.90156,-2.31631 -1.5056,0 -2.86518,0.342412 -4.08376,1.02723 -1.21858,0.684823 -2.16525,1.57106 -2.86014,2.66376l-4.39596 -0.569007 3.69603 -19.593 18.9686 0 0 4.47653 -15.2222 0 -2.0595 10.2522c2.29114,-1.60128 4.69809,-2.39688 7.21078,-2.39688 3.33348,0 6.13823,1.15312 8.42937,3.45936 2.29114,2.31128 3.43922,5.27717 3.43922,8.9027 0,3.45433 -1.01213,6.44036 -3.02128,8.95306 -2.45227,3.0817 -5.79078,4.62759 -10.0206,4.62759 -3.46943,0 -6.3044,-0.966809 -8.49986,-2.91553 -2.19043,-1.94369 -3.44426,-4.52185 -3.75646,-7.7244z"/>
+ <path id="_151156344" class="fil6" d="M61.1305 540.064c-1.94369,-0.71 -3.38383,-1.72213 -4.32546,-3.04646 -0.931561,-1.31426 -1.39986,-2.89539 -1.39986,-4.73334 0,-2.77958 0.991986,-5.10596 2.99107,-6.9993 1.99908,-1.89333 4.64773,-2.84 7.96107,-2.84 3.32844,0 6.01234,0.966809 8.04667,2.90043 2.02426,1.93865 3.03638,4.29022 3.03638,7.06979 0,1.76745 -0.463263,3.3083 -1.38475,4.62256 -0.936596,1.30419 -2.33646,2.31631 -4.22979,3.02631 2.33646,0.765391 4.12405,1.98901 5.34766,3.69603 1.21858,1.69695 1.82787,3.73128 1.82787,6.08284 0,3.26802 -1.15312,6.00227 -3.45433,8.22291 -2.30624,2.22064 -5.34766,3.33348 -9.11419,3.33348 -3.76149,0 -6.79284,-1.11284 -9.09908,-3.33851 -2.31128,-2.23071 -3.4644,-5.01029 -3.4644,-8.34376 0,-2.47745 0.629433,-4.55709 1.8883,-6.2339 1.25383,-1.66674 3.04646,-2.81482 5.37284,-3.41908zm-0.941632 -7.94093c0,1.8027 0.589149,3.27809 1.74227,4.42617 1.16319,1.14305 2.67383,1.72213 4.53192,1.72213 1.8027,0 3.28312,-0.569007 4.44128,-1.70702 1.15312,-1.13801 1.72213,-2.53284 1.72213,-4.1744 0,-1.72213 -0.589149,-3.16227 -1.77752,-4.33553 -1.18837,-1.16823 -2.66376,-1.75738 -4.44128,-1.75738 -1.78255,0 -3.26802,0.579078 -4.45135,1.71709 -1.1783,1.14305 -1.76745,2.51773 -1.76745,4.10894zm-1.5056 17.6241c0,1.32936 0.317234,2.62851 0.946667,3.87227 0.634468,1.2488 1.5761,2.22064 2.8249,2.90043 1.25383,0.684823 2.59326,1.03227 4.03341,1.03227 2.24078,0 4.08376,-0.720071 5.54405,-2.16525 1.45525,-1.44014 2.18539,-3.26802 2.18539,-5.48866 0,-2.25589 -0.750284,-4.12405 -2.25085,-5.59944 -1.50057,-1.47036 -3.38383,-2.21057 -5.63972,-2.21057 -2.2005,0 -4.02334,0.730142 -5.46851,2.18539 -1.45021,1.46532 -2.17532,3.28816 -2.17532,5.47355zm24.8752 -7.81c0,-4.51178 0.463263,-8.14235 1.39482,-10.8867 0.926525,-2.7544 2.31128,-4.87936 4.13915,-6.36986 1.82787,-1.4905 4.12908,-2.23575 6.90362,-2.23575 2.04943,0 3.84206,0.412908 5.38795,1.24376 1.54589,0.815745 2.81482,2.00411 3.82695,3.56007 1.00709,1.55092 1.79766,3.44426 2.36667,5.67497 0.574043,2.23071 0.861064,5.23185 0.861064,9.01348 0,4.47653 -0.463263,8.08192 -1.37972,10.8363 -0.92149,2.7544 -2.30121,4.87433 -4.12908,6.37993 -1.82787,1.50057 -4.13915,2.24582 -6.93383,2.24582 -3.68092,0 -6.56625,-1.31426 -8.661,-3.95284 -2.5127,-3.17234 -3.7766,-8.3488 -3.7766,-15.5092zm4.8139 0c0,6.26412 0.740213,10.4284 2.20553,12.5081 1.46532,2.06958 3.26802,3.10688 5.41816,3.10688 2.15518,0 3.95787,-1.04738 5.42319,-3.12702 1.46532,-2.07965 2.20553,-6.24398 2.20553,-12.488 0,-6.27922 -0.740213,-10.4536 -2.20553,-12.5131 -1.46532,-2.06958 -3.28312,-3.10185 -5.46851,-3.10185 -2.16021,0 -3.87227,0.916454 -5.16135,2.73929 -1.60631,2.31631 -2.41702,6.6166 -2.41702,12.8757zm37.8113 18.8125l10.0961 -14.3611 -9.34079 -13.2684 5.85121 0 4.2449 6.47561c0.790568,1.23369 1.44014,2.26092 1.91851,3.09681 0.765391,-1.14305 1.46532,-2.15518 2.11489,-3.04646l4.65277 -6.52596 5.5944 0 -9.54724 13.0116 10.2774 14.618 -5.74546 0 -5.67497 -8.5905 -1.51064 -2.31631 -7.2561 10.9068 -5.67497 0zm60.909 0l-4.67795 0 0 -29.8402c-1.12794,1.07255 -2.60333,2.14511 -4.43624,3.2227 -1.83794,1.07255 -3.47951,1.88326 -4.93475,2.41702l0 -4.52185c2.61844,-1.23369 4.90958,-2.72922 6.87341,-4.47653 1.95376,-1.75738 3.34858,-3.45433 4.16433,-5.10596l3.01121 0 0 38.3048zm11.9995 -9.99036l4.91965 -0.417944c0.367589,2.39688 1.20851,4.18951 2.53284,5.39802 1.3344,1.20851 2.93064,1.81277 4.80383,1.81277 2.25589,0 4.16936,-0.850993 5.72029,-2.54794 1.56603,-1.70702 2.34653,-3.96291 2.34653,-6.76766 0,-2.67383 -0.745249,-4.77866 -2.24582,-6.32454 -1.50057,-1.54589 -3.4644,-2.31631 -5.90156,-2.31631 -1.5056,0 -2.86518,0.342412 -4.08376,1.02723 -1.21858,0.684823 -2.16525,1.57106 -2.86014,2.66376l-4.39596 -0.569007 3.69603 -19.593 18.9686 0 0 4.47653 -15.2222 0 -2.0595 10.2522c2.29114,-1.60128 4.69809,-2.39688 7.21078,-2.39688 3.33348,0 6.13823,1.15312 8.42937,3.45936 2.29114,2.31128 3.43922,5.27717 3.43922,8.9027 0,3.45433 -1.01213,6.44036 -3.02128,8.95306 -2.45227,3.0817 -5.79078,4.62759 -10.0206,4.62759 -3.46943,0 -6.3044,-0.966809 -8.49986,-2.91553 -2.19043,-1.94369 -3.44426,-4.52185 -3.75646,-7.7244z"/>
+ <path id="_150832104" class="fil7" d="M61.1305 1259.09c-1.94369,-0.71 -3.38383,-1.72213 -4.32546,-3.04646 -0.931561,-1.31426 -1.39986,-2.89539 -1.39986,-4.73334 0,-2.77958 0.991986,-5.10596 2.99107,-6.9993 1.99908,-1.89333 4.64773,-2.84 7.96107,-2.84 3.32844,0 6.01234,0.966809 8.04667,2.90043 2.02426,1.93865 3.03638,4.29022 3.03638,7.06979 0,1.76745 -0.463263,3.3083 -1.38475,4.62256 -0.936596,1.30419 -2.33646,2.31631 -4.22979,3.02631 2.33646,0.765391 4.12405,1.98901 5.34766,3.69603 1.21858,1.69695 1.82787,3.73128 1.82787,6.08284 0,3.26802 -1.15312,6.00227 -3.45433,8.22291 -2.30624,2.22064 -5.34766,3.33348 -9.11419,3.33348 -3.76149,0 -6.79284,-1.11284 -9.09908,-3.33851 -2.31128,-2.23071 -3.4644,-5.01029 -3.4644,-8.34376 0,-2.47745 0.629433,-4.55709 1.8883,-6.2339 1.25383,-1.66674 3.04646,-2.81482 5.37284,-3.41908zm-0.941632 -7.94093c0,1.8027 0.589149,3.27809 1.74227,4.42617 1.16319,1.14305 2.67383,1.72213 4.53192,1.72213 1.8027,0 3.28312,-0.569007 4.44128,-1.70702 1.15312,-1.13801 1.72213,-2.53284 1.72213,-4.1744 0,-1.72213 -0.589149,-3.16227 -1.77752,-4.33553 -1.18837,-1.16823 -2.66376,-1.75738 -4.44128,-1.75738 -1.78255,0 -3.26802,0.579078 -4.45135,1.71709 -1.1783,1.14305 -1.76745,2.51773 -1.76745,4.10894zm-1.5056 17.6241c0,1.32936 0.317234,2.62851 0.946667,3.87227 0.634468,1.2488 1.5761,2.22064 2.8249,2.90043 1.25383,0.684823 2.59326,1.03227 4.03341,1.03227 2.24078,0 4.08376,-0.720071 5.54405,-2.16525 1.45525,-1.44014 2.18539,-3.26802 2.18539,-5.48866 0,-2.25589 -0.750284,-4.12405 -2.25085,-5.59944 -1.50057,-1.47036 -3.38383,-2.21057 -5.63972,-2.21057 -2.2005,0 -4.02334,0.730142 -5.46851,2.18539 -1.45021,1.46532 -2.17532,3.28816 -2.17532,5.47355zm24.8752 -7.81c0,-4.51178 0.463263,-8.14235 1.39482,-10.8867 0.926525,-2.7544 2.31128,-4.87936 4.13915,-6.36986 1.82787,-1.4905 4.12908,-2.23575 6.90362,-2.23575 2.04943,0 3.84206,0.412908 5.38795,1.24376 1.54589,0.815745 2.81482,2.00411 3.82695,3.56007 1.00709,1.55092 1.79766,3.44426 2.36667,5.67497 0.574043,2.23071 0.861064,5.23185 0.861064,9.01348 0,4.47653 -0.463263,8.08192 -1.37972,10.8363 -0.92149,2.7544 -2.30121,4.87433 -4.12908,6.37993 -1.82787,1.50057 -4.13915,2.24582 -6.93383,2.24582 -3.68092,0 -6.56625,-1.31426 -8.661,-3.95284 -2.5127,-3.17234 -3.7766,-8.3488 -3.7766,-15.5092zm4.8139 0c0,6.26412 0.740213,10.4284 2.20553,12.5081 1.46532,2.06958 3.26802,3.10688 5.41816,3.10688 2.15518,0 3.95787,-1.04738 5.42319,-3.12702 1.46532,-2.07965 2.20553,-6.24398 2.20553,-12.488 0,-6.27922 -0.740213,-10.4536 -2.20553,-12.5131 -1.46532,-2.06958 -3.28312,-3.10185 -5.46851,-3.10185 -2.16021,0 -3.87227,0.916454 -5.16135,2.73929 -1.60631,2.31631 -2.41702,6.6166 -2.41702,12.8757zm37.8113 18.8125l10.0961 -14.3611 -9.34079 -13.2684 5.85121 0 4.2449 6.47561c0.790568,1.23369 1.44014,2.26092 1.91851,3.09681 0.765391,-1.14305 1.46532,-2.15518 2.11489,-3.04646l4.65277 -6.52596 5.5944 0 -9.54724 13.0116 10.2774 14.618 -5.74546 0 -5.67497 -8.5905 -1.51064 -2.31631 -7.2561 10.9068 -5.67497 0zm60.909 0l-4.67795 0 0 -29.8402c-1.12794,1.07255 -2.60333,2.14511 -4.43624,3.2227 -1.83794,1.07255 -3.47951,1.88326 -4.93475,2.41702l0 -4.52185c2.61844,-1.23369 4.90958,-2.72922 6.87341,-4.47653 1.95376,-1.75738 3.34858,-3.45433 4.16433,-5.10596l3.01121 0 0 38.3048zm11.9995 -9.99036l4.91965 -0.417944c0.367589,2.39688 1.20851,4.18951 2.53284,5.39802 1.3344,1.20851 2.93064,1.81277 4.80383,1.81277 2.25589,0 4.16936,-0.850993 5.72029,-2.54794 1.56603,-1.70702 2.34653,-3.96291 2.34653,-6.76766 0,-2.67383 -0.745249,-4.77866 -2.24582,-6.32454 -1.50057,-1.54589 -3.4644,-2.31631 -5.90156,-2.31631 -1.5056,0 -2.86518,0.342412 -4.08376,1.02723 -1.21858,0.684823 -2.16525,1.57106 -2.86014,2.66376l-4.39596 -0.569007 3.69603 -19.593 18.9686 0 0 4.47653 -15.2222 0 -2.0595 10.2522c2.29114,-1.60128 4.69809,-2.39688 7.21078,-2.39688 3.33348,0 6.13823,1.15312 8.42937,3.45936 2.29114,2.31128 3.43922,5.27717 3.43922,8.9027 0,3.45433 -1.01213,6.44036 -3.02128,8.95306 -2.45227,3.0817 -5.79078,4.62759 -10.0206,4.62759 -3.46943,0 -6.3044,-0.966809 -8.49986,-2.91553 -2.19043,-1.94369 -3.44426,-4.52185 -3.75646,-7.7244z"/>
+ <path id="_150831632" class="fil7" d="M61.1305 1384.43c-1.94369,-0.71 -3.38383,-1.72213 -4.32546,-3.04646 -0.931561,-1.31426 -1.39986,-2.89539 -1.39986,-4.73334 0,-2.77958 0.991986,-5.10596 2.99107,-6.9993 1.99908,-1.89333 4.64773,-2.84 7.96107,-2.84 3.32844,0 6.01234,0.966809 8.04667,2.90043 2.02426,1.93865 3.03638,4.29022 3.03638,7.06979 0,1.76745 -0.463263,3.3083 -1.38475,4.62256 -0.936596,1.30419 -2.33646,2.31631 -4.22979,3.02631 2.33646,0.765391 4.12405,1.98901 5.34766,3.69603 1.21858,1.69695 1.82787,3.73128 1.82787,6.08284 0,3.26802 -1.15312,6.00227 -3.45433,8.22291 -2.30624,2.22064 -5.34766,3.33348 -9.11419,3.33348 -3.76149,0 -6.79284,-1.11284 -9.09908,-3.33851 -2.31128,-2.23071 -3.4644,-5.01029 -3.4644,-8.34376 0,-2.47745 0.629433,-4.55709 1.8883,-6.2339 1.25383,-1.66674 3.04646,-2.81482 5.37284,-3.41908zm-0.941632 -7.94093c0,1.8027 0.589149,3.27809 1.74227,4.42617 1.16319,1.14305 2.67383,1.72213 4.53192,1.72213 1.8027,0 3.28312,-0.569007 4.44128,-1.70702 1.15312,-1.13801 1.72213,-2.53284 1.72213,-4.1744 0,-1.72213 -0.589149,-3.16227 -1.77752,-4.33553 -1.18837,-1.16823 -2.66376,-1.75738 -4.44128,-1.75738 -1.78255,0 -3.26802,0.579078 -4.45135,1.71709 -1.1783,1.14305 -1.76745,2.51773 -1.76745,4.10894zm-1.5056 17.6241c0,1.32936 0.317234,2.62851 0.946667,3.87227 0.634468,1.2488 1.5761,2.22064 2.8249,2.90043 1.25383,0.684823 2.59326,1.03227 4.03341,1.03227 2.24078,0 4.08376,-0.720071 5.54405,-2.16525 1.45525,-1.44014 2.18539,-3.26802 2.18539,-5.48866 0,-2.25589 -0.750284,-4.12405 -2.25085,-5.59944 -1.50057,-1.47036 -3.38383,-2.21057 -5.63972,-2.21057 -2.2005,0 -4.02334,0.730142 -5.46851,2.18539 -1.45021,1.46532 -2.17532,3.28816 -2.17532,5.47355zm24.8752 -7.81c0,-4.51178 0.463263,-8.14235 1.39482,-10.8867 0.926525,-2.7544 2.31128,-4.87936 4.13915,-6.36986 1.82787,-1.4905 4.12908,-2.23575 6.90362,-2.23575 2.04943,0 3.84206,0.412908 5.38795,1.24376 1.54589,0.815745 2.81482,2.00411 3.82695,3.56007 1.00709,1.55092 1.79766,3.44426 2.36667,5.67497 0.574043,2.23071 0.861064,5.23185 0.861064,9.01348 0,4.47653 -0.463263,8.08192 -1.37972,10.8363 -0.92149,2.7544 -2.30121,4.87433 -4.12908,6.37993 -1.82787,1.50057 -4.13915,2.24582 -6.93383,2.24582 -3.68092,0 -6.56625,-1.31426 -8.661,-3.95284 -2.5127,-3.17234 -3.7766,-8.3488 -3.7766,-15.5092zm4.8139 0c0,6.26412 0.740213,10.4284 2.20553,12.5081 1.46532,2.06958 3.26802,3.10688 5.41816,3.10688 2.15518,0 3.95787,-1.04738 5.42319,-3.12702 1.46532,-2.07965 2.20553,-6.24398 2.20553,-12.488 0,-6.27922 -0.740213,-10.4536 -2.20553,-12.5131 -1.46532,-2.06958 -3.28312,-3.10185 -5.46851,-3.10185 -2.16021,0 -3.87227,0.916454 -5.16135,2.73929 -1.60631,2.31631 -2.41702,6.6166 -2.41702,12.8757zm37.8113 18.8125l10.0961 -14.3611 -9.34079 -13.2684 5.85121 0 4.2449 6.47561c0.790568,1.23369 1.44014,2.26092 1.91851,3.09681 0.765391,-1.14305 1.46532,-2.15518 2.11489,-3.04646l4.65277 -6.52596 5.5944 0 -9.54724 13.0116 10.2774 14.618 -5.74546 0 -5.67497 -8.5905 -1.51064 -2.31631 -7.2561 10.9068 -5.67497 0zm60.909 0l-4.67795 0 0 -29.8402c-1.12794,1.07255 -2.60333,2.14511 -4.43624,3.2227 -1.83794,1.07255 -3.47951,1.88326 -4.93475,2.41702l0 -4.52185c2.61844,-1.23369 4.90958,-2.72922 6.87341,-4.47653 1.95376,-1.75738 3.34858,-3.45433 4.16433,-5.10596l3.01121 0 0 38.3048zm11.9995 -9.99036l4.91965 -0.417944c0.367589,2.39688 1.20851,4.18951 2.53284,5.39802 1.3344,1.20851 2.93064,1.81277 4.80383,1.81277 2.25589,0 4.16936,-0.850993 5.72029,-2.54794 1.56603,-1.70702 2.34653,-3.96291 2.34653,-6.76766 0,-2.67383 -0.745249,-4.77866 -2.24582,-6.32454 -1.50057,-1.54589 -3.4644,-2.31631 -5.90156,-2.31631 -1.5056,0 -2.86518,0.342412 -4.08376,1.02723 -1.21858,0.684823 -2.16525,1.57106 -2.86014,2.66376l-4.39596 -0.569007 3.69603 -19.593 18.9686 0 0 4.47653 -15.2222 0 -2.0595 10.2522c2.29114,-1.60128 4.69809,-2.39688 7.21078,-2.39688 3.33348,0 6.13823,1.15312 8.42937,3.45936 2.29114,2.31128 3.43922,5.27717 3.43922,8.9027 0,3.45433 -1.01213,6.44036 -3.02128,8.95306 -2.45227,3.0817 -5.79078,4.62759 -10.0206,4.62759 -3.46943,0 -6.3044,-0.966809 -8.49986,-2.91553 -2.19043,-1.94369 -3.44426,-4.52185 -3.75646,-7.7244z"/>
+ <path id="_150830744" class="fil6" d="M61.1305 698.736c-1.94369,-0.71 -3.38383,-1.72213 -4.32546,-3.04646 -0.931561,-1.31426 -1.39986,-2.89539 -1.39986,-4.73334 0,-2.77958 0.991986,-5.10596 2.99107,-6.9993 1.99908,-1.89333 4.64773,-2.84 7.96107,-2.84 3.32844,0 6.01234,0.966809 8.04667,2.90043 2.02426,1.93865 3.03638,4.29022 3.03638,7.06979 0,1.76745 -0.463263,3.3083 -1.38475,4.62256 -0.936596,1.30419 -2.33646,2.31631 -4.22979,3.02631 2.33646,0.765391 4.12405,1.98901 5.34766,3.69603 1.21858,1.69695 1.82787,3.73128 1.82787,6.08284 0,3.26802 -1.15312,6.00227 -3.45433,8.22291 -2.30624,2.22064 -5.34766,3.33348 -9.11419,3.33348 -3.76149,0 -6.79284,-1.11284 -9.09908,-3.33851 -2.31128,-2.23071 -3.4644,-5.01029 -3.4644,-8.34376 0,-2.47745 0.629433,-4.55709 1.8883,-6.2339 1.25383,-1.66674 3.04646,-2.81482 5.37284,-3.41908zm-0.941632 -7.94093c0,1.8027 0.589149,3.27809 1.74227,4.42617 1.16319,1.14305 2.67383,1.72213 4.53192,1.72213 1.8027,0 3.28312,-0.569007 4.44128,-1.70702 1.15312,-1.13801 1.72213,-2.53284 1.72213,-4.1744 0,-1.72213 -0.589149,-3.16227 -1.77752,-4.33553 -1.18837,-1.16823 -2.66376,-1.75738 -4.44128,-1.75738 -1.78255,0 -3.26802,0.579078 -4.45135,1.71709 -1.1783,1.14305 -1.76745,2.51773 -1.76745,4.10894zm-1.5056 17.6241c0,1.32936 0.317234,2.62851 0.946667,3.87227 0.634468,1.2488 1.5761,2.22064 2.8249,2.90043 1.25383,0.684823 2.59326,1.03227 4.03341,1.03227 2.24078,0 4.08376,-0.720071 5.54405,-2.16525 1.45525,-1.44014 2.18539,-3.26802 2.18539,-5.48866 0,-2.25589 -0.750284,-4.12405 -2.25085,-5.59944 -1.50057,-1.47036 -3.38383,-2.21057 -5.63972,-2.21057 -2.2005,0 -4.02334,0.730142 -5.46851,2.18539 -1.45021,1.46532 -2.17532,3.28816 -2.17532,5.47355zm32.086 -9.6832c-1.94369,-0.71 -3.38383,-1.72213 -4.32546,-3.04646 -0.931561,-1.31426 -1.39986,-2.89539 -1.39986,-4.73334 0,-2.77958 0.991986,-5.10596 2.99107,-6.9993 1.99908,-1.89333 4.64773,-2.84 7.96107,-2.84 3.32844,0 6.01234,0.966809 8.04667,2.90043 2.02426,1.93865 3.03638,4.29022 3.03638,7.06979 0,1.76745 -0.463263,3.3083 -1.38475,4.62256 -0.936596,1.30419 -2.33646,2.31631 -4.22979,3.02631 2.33646,0.765391 4.12405,1.98901 5.34766,3.69603 1.21858,1.69695 1.82787,3.73128 1.82787,6.08284 0,3.26802 -1.15312,6.00227 -3.45433,8.22291 -2.30624,2.22064 -5.34766,3.33348 -9.11419,3.33348 -3.76149,0 -6.79284,-1.11284 -9.09908,-3.33851 -2.31128,-2.23071 -3.4644,-5.01029 -3.4644,-8.34376 0,-2.47745 0.629433,-4.55709 1.8883,-6.2339 1.25383,-1.66674 3.04646,-2.81482 5.37284,-3.41908zm-0.941632 -7.94093c0,1.8027 0.589149,3.27809 1.74227,4.42617 1.16319,1.14305 2.67383,1.72213 4.53192,1.72213 1.8027,0 3.28312,-0.569007 4.44128,-1.70702 1.15312,-1.13801 1.72213,-2.53284 1.72213,-4.1744 0,-1.72213 -0.589149,-3.16227 -1.77752,-4.33553 -1.18837,-1.16823 -2.66376,-1.75738 -4.44128,-1.75738 -1.78255,0 -3.26802,0.579078 -4.45135,1.71709 -1.1783,1.14305 -1.76745,2.51773 -1.76745,4.10894zm-1.5056 17.6241c0,1.32936 0.317234,2.62851 0.946667,3.87227 0.634468,1.2488 1.5761,2.22064 2.8249,2.90043 1.25383,0.684823 2.59326,1.03227 4.03341,1.03227 2.24078,0 4.08376,-0.720071 5.54405,-2.16525 1.45525,-1.44014 2.18539,-3.26802 2.18539,-5.48866 0,-2.25589 -0.750284,-4.12405 -2.25085,-5.59944 -1.50057,-1.47036 -3.38383,-2.21057 -5.63972,-2.21057 -2.2005,0 -4.02334,0.730142 -5.46851,2.18539 -1.45021,1.46532 -2.17532,3.28816 -2.17532,5.47355zm37.8617 11.0025l10.0961 -14.3611 -9.34079 -13.2684 5.85121 0 4.2449 6.47561c0.790568,1.23369 1.44014,2.26092 1.91851,3.09681 0.765391,-1.14305 1.46532,-2.15518 2.11489,-3.04646l4.65277 -6.52596 5.5944 0 -9.54724 13.0116 10.2774 14.618 -5.74546 0 -5.67497 -8.5905 -1.51064 -2.31631 -7.2561 10.9068 -5.67497 0zm43.2949 -10.0709l4.68298 -0.624398c0.54383,2.65873 1.45525,4.56717 2.74433,5.74043 1.29915,1.17326 2.87021,1.75738 4.72327,1.75738 2.20553,0 4.06865,-0.765391 5.58937,-2.29114 1.51064,-1.52575 2.27099,-3.41908 2.27099,-5.67497 0,-2.15014 -0.69993,-3.92766 -2.10482,-5.32249 -1.40993,-1.39482 -3.19752,-2.09475 -5.36277,-2.09475 -0.886242,0 -1.98901,0.176241 -3.30326,0.523688l0.523688 -4.11397c0.312199,0.0402837 0.558937,0.0553901 0.75532,0.0553901 1.98901,0 3.78163,-0.523688 5.38291,-1.56099 1.59624,-1.04234 2.39688,-2.64865 2.39688,-4.8139 0,-1.71709 -0.584114,-3.14717 -1.74731,-4.26504 -1.16823,-1.12794 -2.6688,-1.69695 -4.50674,-1.69695 -1.8178,0 -3.33851,0.579078 -4.54702,1.71709 -1.21355,1.14305 -1.99908,2.86518 -2.34149,5.15632l-4.68298 -0.835887c0.569007,-3.14213 1.87319,-5.57426 3.89745,-7.29639 2.03433,-1.72716 4.55709,-2.59326 7.57837,-2.59326 2.07965,0 3.99816,0.453192 5.74546,1.33943 1.75234,0.896313 3.09177,2.11489 4.02334,3.66078 0.92149,1.54589 1.39482,3.17738 1.39482,4.91965 0,1.64156 -0.443121,3.14213 -1.3344,4.5017 -0.886242,1.3495 -2.19043,2.42709 -3.92263,3.2227 2.25589,0.518653 4.00319,1.60128 5.25702,3.24284 1.24376,1.63653 1.86312,3.68596 1.86312,6.1483 0,3.32844 -1.20348,6.15334 -3.64064,8.46965 -2.42206,2.32135 -5.49873,3.47447 -9.20986,3.47447 -3.34858,0 -6.12816,-0.991986 -8.33873,-2.99107 -2.21057,-1.98901 -3.47447,-4.57724 -3.78667,-7.75461zm47.2528 10.0709l-4.67795 0 0 -29.8402c-1.12794,1.07255 -2.60333,2.14511 -4.43624,3.2227 -1.83794,1.07255 -3.47951,1.88326 -4.93475,2.41702l0 -4.52185c2.61844,-1.23369 4.90958,-2.72922 6.87341,-4.47653 1.95376,-1.75738 3.34858,-3.45433 4.16433,-5.10596l3.01121 0 0 38.3048z"/>
+ <path id="_150944552" class="fil6" d="M61.1305 898.83c-1.94369,-0.71 -3.38383,-1.72213 -4.32546,-3.04646 -0.931561,-1.31426 -1.39986,-2.89539 -1.39986,-4.73334 0,-2.77958 0.991986,-5.10596 2.99107,-6.9993 1.99908,-1.89333 4.64773,-2.84 7.96107,-2.84 3.32844,0 6.01234,0.966809 8.04667,2.90043 2.02426,1.93865 3.03638,4.29022 3.03638,7.06979 0,1.76745 -0.463263,3.3083 -1.38475,4.62256 -0.936596,1.30419 -2.33646,2.31631 -4.22979,3.02631 2.33646,0.765391 4.12405,1.98901 5.34766,3.69603 1.21858,1.69695 1.82787,3.73128 1.82787,6.08284 0,3.26802 -1.15312,6.00227 -3.45433,8.22291 -2.30624,2.22064 -5.34766,3.33348 -9.11419,3.33348 -3.76149,0 -6.79284,-1.11284 -9.09908,-3.33851 -2.31128,-2.23071 -3.4644,-5.01029 -3.4644,-8.34376 0,-2.47745 0.629433,-4.55709 1.8883,-6.2339 1.25383,-1.66674 3.04646,-2.81482 5.37284,-3.41908zm-0.941632 -7.94093c0,1.8027 0.589149,3.27809 1.74227,4.42617 1.16319,1.14305 2.67383,1.72213 4.53192,1.72213 1.8027,0 3.28312,-0.569007 4.44128,-1.70702 1.15312,-1.13801 1.72213,-2.53284 1.72213,-4.1744 0,-1.72213 -0.589149,-3.16227 -1.77752,-4.33553 -1.18837,-1.16823 -2.66376,-1.75738 -4.44128,-1.75738 -1.78255,0 -3.26802,0.579078 -4.45135,1.71709 -1.1783,1.14305 -1.76745,2.51773 -1.76745,4.10894zm-1.5056 17.6241c0,1.32936 0.317234,2.62851 0.946667,3.87227 0.634468,1.2488 1.5761,2.22064 2.8249,2.90043 1.25383,0.684823 2.59326,1.03227 4.03341,1.03227 2.24078,0 4.08376,-0.720071 5.54405,-2.16525 1.45525,-1.44014 2.18539,-3.26802 2.18539,-5.48866 0,-2.25589 -0.750284,-4.12405 -2.25085,-5.59944 -1.50057,-1.47036 -3.38383,-2.21057 -5.63972,-2.21057 -2.2005,0 -4.02334,0.730142 -5.46851,2.18539 -1.45021,1.46532 -2.17532,3.28816 -2.17532,5.47355zm32.086 -9.6832c-1.94369,-0.71 -3.38383,-1.72213 -4.32546,-3.04646 -0.931561,-1.31426 -1.39986,-2.89539 -1.39986,-4.73334 0,-2.77958 0.991986,-5.10596 2.99107,-6.9993 1.99908,-1.89333 4.64773,-2.84 7.96107,-2.84 3.32844,0 6.01234,0.966809 8.04667,2.90043 2.02426,1.93865 3.03638,4.29022 3.03638,7.06979 0,1.76745 -0.463263,3.3083 -1.38475,4.62256 -0.936596,1.30419 -2.33646,2.31631 -4.22979,3.02631 2.33646,0.765391 4.12405,1.98901 5.34766,3.69603 1.21858,1.69695 1.82787,3.73128 1.82787,6.08284 0,3.26802 -1.15312,6.00227 -3.45433,8.22291 -2.30624,2.22064 -5.34766,3.33348 -9.11419,3.33348 -3.76149,0 -6.79284,-1.11284 -9.09908,-3.33851 -2.31128,-2.23071 -3.4644,-5.01029 -3.4644,-8.34376 0,-2.47745 0.629433,-4.55709 1.8883,-6.2339 1.25383,-1.66674 3.04646,-2.81482 5.37284,-3.41908zm-0.941632 -7.94093c0,1.8027 0.589149,3.27809 1.74227,4.42617 1.16319,1.14305 2.67383,1.72213 4.53192,1.72213 1.8027,0 3.28312,-0.569007 4.44128,-1.70702 1.15312,-1.13801 1.72213,-2.53284 1.72213,-4.1744 0,-1.72213 -0.589149,-3.16227 -1.77752,-4.33553 -1.18837,-1.16823 -2.66376,-1.75738 -4.44128,-1.75738 -1.78255,0 -3.26802,0.579078 -4.45135,1.71709 -1.1783,1.14305 -1.76745,2.51773 -1.76745,4.10894zm-1.5056 17.6241c0,1.32936 0.317234,2.62851 0.946667,3.87227 0.634468,1.2488 1.5761,2.22064 2.8249,2.90043 1.25383,0.684823 2.59326,1.03227 4.03341,1.03227 2.24078,0 4.08376,-0.720071 5.54405,-2.16525 1.45525,-1.44014 2.18539,-3.26802 2.18539,-5.48866 0,-2.25589 -0.750284,-4.12405 -2.25085,-5.59944 -1.50057,-1.47036 -3.38383,-2.21057 -5.63972,-2.21057 -2.2005,0 -4.02334,0.730142 -5.46851,2.18539 -1.45021,1.46532 -2.17532,3.28816 -2.17532,5.47355zm37.8617 11.0025l10.0961 -14.3611 -9.34079 -13.2684 5.85121 0 4.2449 6.47561c0.790568,1.23369 1.44014,2.26092 1.91851,3.09681 0.765391,-1.14305 1.46532,-2.15518 2.11489,-3.04646l4.65277 -6.52596 5.5944 0 -9.54724 13.0116 10.2774 14.618 -5.74546 0 -5.67497 -8.5905 -1.51064 -2.31631 -7.2561 10.9068 -5.67497 0zm43.2949 -10.0709l4.68298 -0.624398c0.54383,2.65873 1.45525,4.56717 2.74433,5.74043 1.29915,1.17326 2.87021,1.75738 4.72327,1.75738 2.20553,0 4.06865,-0.765391 5.58937,-2.29114 1.51064,-1.52575 2.27099,-3.41908 2.27099,-5.67497 0,-2.15014 -0.69993,-3.92766 -2.10482,-5.32249 -1.40993,-1.39482 -3.19752,-2.09475 -5.36277,-2.09475 -0.886242,0 -1.98901,0.176241 -3.30326,0.523688l0.523688 -4.11397c0.312199,0.0402837 0.558937,0.0553901 0.75532,0.0553901 1.98901,0 3.78163,-0.523688 5.38291,-1.56099 1.59624,-1.04234 2.39688,-2.64865 2.39688,-4.8139 0,-1.71709 -0.584114,-3.14717 -1.74731,-4.26504 -1.16823,-1.12794 -2.6688,-1.69695 -4.50674,-1.69695 -1.8178,0 -3.33851,0.579078 -4.54702,1.71709 -1.21355,1.14305 -1.99908,2.86518 -2.34149,5.15632l-4.68298 -0.835887c0.569007,-3.14213 1.87319,-5.57426 3.89745,-7.29639 2.03433,-1.72716 4.55709,-2.59326 7.57837,-2.59326 2.07965,0 3.99816,0.453192 5.74546,1.33943 1.75234,0.896313 3.09177,2.11489 4.02334,3.66078 0.92149,1.54589 1.39482,3.17738 1.39482,4.91965 0,1.64156 -0.443121,3.14213 -1.3344,4.5017 -0.886242,1.3495 -2.19043,2.42709 -3.92263,3.2227 2.25589,0.518653 4.00319,1.60128 5.25702,3.24284 1.24376,1.63653 1.86312,3.68596 1.86312,6.1483 0,3.32844 -1.20348,6.15334 -3.64064,8.46965 -2.42206,2.32135 -5.49873,3.47447 -9.20986,3.47447 -3.34858,0 -6.12816,-0.991986 -8.33873,-2.99107 -2.21057,-1.98901 -3.47447,-4.57724 -3.78667,-7.75461zm47.2528 10.0709l-4.67795 0 0 -29.8402c-1.12794,1.07255 -2.60333,2.14511 -4.43624,3.2227 -1.83794,1.07255 -3.47951,1.88326 -4.93475,2.41702l0 -4.52185c2.61844,-1.23369 4.90958,-2.72922 6.87341,-4.47653 1.95376,-1.75738 3.34858,-3.45433 4.16433,-5.10596l3.01121 0 0 38.3048z"/>
+ </g>
+ <rect class="fil1" x="272.147" y="138.359" width="558.987" height="1600.33"/>
+ <g id="_189075632">
+ <rect id="_150566312" class="fil8" x="315.489" y="381.404" width="341.067" height="63.9051"/>
+ <path id="_150565616" class="fil8" d="M427.878 381.361l-31.9752 0 0 0.00503546c4.09383,4.0888 6.62164,9.74362 6.62164,15.9876 0,6.2339 -2.5278,11.8887 -6.62164,15.9775l0 0.00503546c-4.0888,4.09383 -6.62667,9.74362 -6.62667,15.9826 0,6.24398 2.53787,11.8988 6.62667,15.9926l18.7269 0 5.93178 0 7.31653 0 228.676 0 0 -63.9101 -228.676 0 0 -0.0402837z"/>
+ <path id="_150564928" class="fil9" d="M399.297 385.661c2.0595,3.40397 3.22773,7.42227 3.22773,11.6923 0,6.2339 -2.5278,11.8887 -6.62164,15.9775l0 0.00503546c-4.0888,4.09383 -6.62667,9.74362 -6.62667,15.9826 0,4.29525 1.20851,8.30348 3.29319,11.7226l259.759 0 0 -55.38 -253.032 0z"/>
+ <path id="_150564088" class="fil10" d="M431.348 408.336c-16.9443,-4.79376 -34.8404,-7.38199 -53.3205,-7.38199 -21.8791,0 -42.8971,3.61043 -62.5354,10.2371l0 34.1203 115.856 0 70.6677 0 154.538 0 0 -36.2755c-35.2281,10.4184 -71.982,16.043 -111.128,16.043 -39.1457,0 -77.9842,-5.76057 -114.078,-16.7429l0 0z"/>
+ <path id="_150563304" class="fil10" d="M431.348 408.336c-9.51703,-2.69397 -19.3311,-4.68298 -29.3819,-5.91667 -0.961774,4.20965 -3.11192,7.96107 -6.0627,10.9119l0 0.00503546c-4.0888,4.09383 -6.62667,9.74362 -6.62667,15.9826 0,6.24398 2.53787,11.8988 6.62667,15.9926l18.7269 0 5.93178 0 7.31653 0 3.46943 0 70.6677 0 154.538 0 -0.387731 -47.2981c-35.2331,10.4184 -71.5942,20.3886 -110.74,20.3886 -39.1457,0 -77.9842,0.916454 -114.078,-10.0659l0 0z"/>
+ <rect id="_150562752" class="fil11" x="315.489" y="381.404" width="4.25994" height="63.9051"/>
+ <rect id="_150562200" class="fil12" x="315.49" y="381.444" width="44.0571" height="63.8548"/>
+ <path id="_150561160" class="fil9" d="M366.154 445.306c0,-4.78873 -1.82787,-9.57745 -5.47858,-13.2382 10.3328,0 18.7168,-8.37398 18.7168,-18.7118 0,-10.3378 -8.38405,-18.7118 -18.7168,-18.7118 3.65071,-3.66078 5.47858,-8.44951 5.47858,-13.2433l-8.58547 0 0 0.0402837c-0.0100709,2.58823 -0.997022,5.16135 -2.96085,7.12518 -1.97894,1.97894 -4.57724,2.97092 -7.1705,2.97092l-14.6532 14.6532 20.731 0c1.82787,-1.83291 4.36071,-2.96589 7.16043,-2.96589 5.5944,0 10.1314,4.53695 10.1314,10.1314 0,5.5944 -4.53695,10.1314 -10.1314,10.1314 -2.79972,0 -5.33256,-1.13298 -7.16043,-2.96589l-20.731 0 14.6532 14.6532c2.59326,0 5.19156,0.991986 7.1705,2.97092 1.96383,1.96383 2.95078,4.54199 2.96085,7.12518l0 0.0352482 8.58547 0zm-28.8431 -63.9051l-14.6582 0 0 0.0201419 0.0453192 0.0201419 -0.0453192 0.251773 0 14.3662 14.6582 -14.6582zm-14.6582 63.6181l0.0453192 0.251773 -0.0453192 0.0302128 0 0.00503546 14.6582 0 -14.6582 -14.6532 0 14.3662z"/>
+ <polygon id="_150860520" class="fil1" points="359.522,391.563 359.522,436.655 356.652,436.655 356.652,441.041 332.97,441.041 333.025,440.991 327.98,438 322.617,440.991 322.647,441.041 319.747,441.041 319.747,385.661 322.637,385.661 322.617,385.681 328.287,388.365 333.025,385.681 333.02,385.661 356.652,385.661 356.652,391.563 "/>
+ <path id="_150859864" class="fil1" d="M360.846 426.7c7.40213,0 13.4044,-5.95695 13.4044,-13.3389 0,-7.38703 -6.00227,-13.349 -13.4044,-13.349 -7.34674,0 -13.349,5.96199 -13.349,13.349 0,7.38199 6.00227,13.3389 13.349,13.3389z"/>
+ <path id="_150859480" class="fil4" d="M365.696 441.041c-0.765391,-3.28312 -2.4422,-6.41518 -5.02036,-8.95306 10.3328,0 18.7067,-8.38405 18.7067,-18.7269 0,-10.3731 -8.37398,-18.7017 -18.7067,-18.7017 2.58823,-2.57312 4.26504,-5.69511 5.03043,-8.99837l-9.05376 0c-0.48844,1.05241 -1.17326,2.03936 -2.0444,2.9105 -1.97894,1.9739 -4.55709,2.98603 -7.1705,2.98603l-14.6482 14.628 20.7109 0c1.83291,-1.84802 4.37582,-2.97092 7.17554,-2.97092 5.57426,0 10.1011,4.55709 10.1011,10.1465 0,5.57426 -4.52688,10.1213 -10.1011,10.1213 -2.79972,0 -5.34263,-1.1078 -7.17554,-2.96589l-20.7109 0 14.6482 14.6683c2.61341,0 5.19156,0.97688 7.1705,2.98099 0.861064,0.850993 1.54085,1.83794 2.02929,2.87525l9.0588 0zm-43.0633 -55.38l10.4133 0 -10.4133 10.4184 0 -10.4184zm10.4033 55.38l-10.4033 0 0 -10.4083 10.4033 10.4083z"/>
+ <path id="_150859096" class="fil4" d="M431.348 408.336c-9.51703,-2.69397 -19.3311,-4.68298 -29.3819,-5.91667 -0.961774,4.20965 -3.11192,7.96107 -6.0627,10.9119l0 0.00503546c-4.0888,4.09383 -6.62667,9.74362 -6.62667,15.9826 0,4.29525 1.20851,8.30348 3.29319,11.7226l259.759 0 0 -42.2375c-33.9491,9.63284 -72.133,18.4701 -110.498,18.4701 -38.3652,0 -74.3889,2.0444 -110.483,-8.93795l0 0z"/>
+ <g>
+ <path id="_150858336" class="fil1" d="M627.686 404.836c4.61249,0 8.72646,2.23071 11.3097,5.6649l-3.83199 0c-1.99908,-1.76241 -4.61752,-2.82993 -7.47766,-2.82993 -6.23894,0 -11.3298,5.08582 -11.3298,11.3248 0,6.23894 5.09085,11.3248 11.3298,11.3248 2.86014,0 5.47858,-1.06752 7.47766,-2.82993l3.83199 0c-2.58319,3.43419 -6.69717,5.6649 -11.3097,5.6649 -7.79993,0 -14.1597,-6.35979 -14.1597,-14.1597 0,-7.79993 6.35979,-14.1597 14.1597,-14.1597z"/>
+ <path id="_150857400" class="fil1" d="M562.552 433.156c-7.79993,0 -14.1597,-6.35979 -14.1597,-14.1597 0,-7.79993 6.35979,-14.1597 14.1597,-14.1597 4.62256,0 8.74157,2.23575 11.3298,5.68l0 -2.84504 2.82993 0 0 11.3248 0 14.1597 -2.82993 0 0 -5.68c-2.58823,3.44426 -6.70724,5.68 -11.3298,5.68zm0 -2.83497c-6.23894,0 -11.3248,-5.08582 -11.3248,-11.3248 0,-6.23894 5.08582,-11.3248 11.3248,-11.3248 6.23894,0 11.3298,5.08582 11.3298,11.3248 0,6.23894 -5.09085,11.3248 -11.3298,11.3248z"/>
+ <path id="_150856600" class="fil1" d="M531.403 404.836c7.79993,0 14.1597,6.35979 14.1597,14.1597 0,7.79993 -6.35979,14.1597 -14.1597,14.1597 -4.62256,0 -8.74157,-2.23575 -11.3248,-5.68l0 5.68 -2.83497 0 0 -14.1597 0 -25.4845 2.83497 0 0 17.0048c2.58319,-3.44426 6.7022,-5.68 11.3248,-5.68zm0 25.4845c-6.23894,0 -11.3248,-5.08582 -11.3248,-11.3248 0,-6.23894 5.08582,-11.3248 11.3248,-11.3248 6.23894,0 11.3298,5.08582 11.3298,11.3248 0,6.23894 -5.09085,11.3248 -11.3298,11.3248z"/>
+ <path id="_150855992" class="fil1" d="M605.031 404.836l2.82993 0 0 28.3194 -2.82993 0 0 -28.3194zm0 -8.49483l2.82993 0 0 2.83497 -2.82993 0 0 -2.83497z"/>
+ <path id="_150855128" class="fil1" d="M590.871 433.156c4.67795,0 8.49483,-3.81688 8.49483,-8.49483 0,-4.68298 -3.81688,-8.49483 -8.49483,-8.49483 -2.34149,0 -4.24993,-1.90844 -4.24993,-4.24993 0,-2.33646 1.90844,-4.2449 4.24993,-4.2449 2.33646,0 4.2449,1.90844 4.2449,4.2449l2.83497 0c0,-3.89745 -3.18241,-7.07986 -7.07986,-7.07986 -3.90248,0 -7.07986,3.18241 -7.07986,7.07986 0,3.89745 3.17738,7.07986 7.07986,7.07986 3.11695,0 5.6649,2.54291 5.6649,5.6649 0,3.11695 -2.54794,5.65986 -5.6649,5.65986 -3.12199,0 -5.6649,-2.54291 -5.6649,-5.65986l-2.82993 0c0,4.67795 3.81688,8.49483 8.49483,8.49483z"/>
+ </g>
+ <g>
+ <path id="_151143656" class="fil1 str2" d="M486.038 409.494l13.0167 0 0 13.0167 0.00503546 0c0,7.19064 -5.83107,13.0217 -13.0217,13.0217 -7.19064,0 -13.0167,-5.83107 -13.0217,-13.0167l0 -0.00503546 0 -18.4046 0 0c0,-7.19064 5.83107,-13.0217 13.0217,-13.0217 7.18561,0 13.0167,5.83107 13.0167,13.0217l-7.62873 0c0,-2.97596 -2.41199,-5.39298 -5.38795,-5.39298 -2.97596,0 -5.39298,2.41702 -5.39298,5.39298l0 18.4097 0 0c0,2.97596 2.41702,5.38795 5.39298,5.38795 2.97596,0 5.38795,-2.41199 5.38795,-5.38795l0 -0.00503546 0 -5.38795 -5.38795 0 0 -7.62873z"/>
+ <path id="_151142608" class="fil1 str2" d="M424.756 413.306c-2.3566,-2.35156 -3.81185,-5.60951 -3.81185,-9.20483 0,-7.18561 5.82603,-13.0167 13.0167,-13.0167 7.19064,0 13.0167,5.83107 13.0167,13.0167l-7.62369 0c0,-2.97596 -2.41702,-5.38795 -5.39298,-5.38795 -2.97596,0 -5.39298,2.41199 -5.39298,5.38795 0,1.4905 0.604256,2.83497 1.5761,3.81185l0.00503546 0c0.971845,0.97688 2.32135,1.58114 3.81185,1.58114l0 0c3.59532,0 6.84823,1.46028 9.20483,3.81688l0 0c2.3566,2.35156 3.81185,5.60951 3.81185,9.20483 0,7.18561 -5.82603,13.0167 -13.0167,13.0167 -7.19064,0 -13.0167,-5.83107 -13.0167,-13.0167l7.62369 0c0,2.97596 2.41702,5.38795 5.39298,5.38795 2.97596,0 5.39298,-2.41199 5.39298,-5.38795 0,-1.4905 -0.604256,-2.83497 -1.5761,-3.81185l-0.00503546 0c-0.97688,-0.97688 -2.32135,-1.58114 -3.81185,-1.58114l0 0c-3.59532,0 -6.84823,-1.46028 -9.20483,-3.81688l0 0z"/>
+ <polygon id="_151142000" class="fil1 str2" points="473.016,391.084 463.812,435.532 456.183,435.532 446.978,391.084 454.607,391.084 460,417.118 465.388,391.084 "/>
+ </g>
+ </g>
+ <g id="_189263792">
+ <rect id="_151141056" class="fil2" x="315.486" y="180.991" width="136.426" height="136.426"/>
+ <rect id="_151140504" class="fil10" x="383.697" y="249.205" width="68.2154" height="68.0039"/>
+ <rect id="_151140120" class="fil8" x="315.487" y="180.99" width="68.2154" height="68.2154"/>
+ <g>
+ <circle id="_151139416" class="fil2" cx="340.757" cy="249.099" r="25.0634"/>
+ <circle id="_151137016" class="fil2" transform="matrix(0.0106858 0.0106858 -0.0106858 0.0106858 353.365 218.661)" r="1658.51"/>
+ <circle id="_151136448" class="fil2" transform="matrix(4.00234E-016 0.015112 -0.015112 4.00234E-016 383.803 206.053)" r="1658.51"/>
+ <circle id="_151135880" class="fil2" transform="matrix(-0.0106858 0.0106858 -0.0106858 -0.0106858 414.241 218.661)" r="1658.51"/>
+ <circle id="_151135312" class="fil2" cx="426.849" cy="249.099" r="25.0634"/>
+ <circle id="_151134744" class="fil2" transform="matrix(-0.0106858 -0.0106858 0.0106858 -0.0106858 414.241 279.538)" r="1658.51"/>
+ <circle id="_151134176" class="fil2" transform="matrix(-1.21077E-015 -0.015112 0.015112 -1.21077E-015 383.803 292.146)" r="1658.51"/>
+ <circle id="_151038344" class="fil2" transform="matrix(0.0106858 -0.0106858 0.0106858 0.0106858 353.365 279.538)" r="1658.51"/>
+ </g>
+ <path id="_151038768" class="fil4" d="M401.634 206.051c0,-9.84433 -7.98625,-17.8306 -17.8306,-17.8306 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 0,9.84433 7.98625,17.8306 17.8306,17.8306 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 6.96405,6.95901 18.2536,6.95901 25.2176,0 0,9.84433 7.98625,17.8306 17.8306,17.8306 9.84433,0 17.8306,-7.98625 17.8306,-17.8306 6.96405,6.95901 18.2536,6.95901 25.2176,0 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 9.84433,0 17.8255,-7.98625 17.8255,-17.8306 0,-9.84433 -7.98121,-17.8306 -17.8255,-17.8306 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0z"/>
+ <path id="_151037224" class="fil1" d="M390.626 212.879l0 19.7441 13.9633 -13.9633c0,-2.46738 0.941632,-4.93979 2.8249,-6.82305 3.77156,-3.77156 9.88462,-3.77156 13.6511,0 3.77156,3.76653 3.77156,9.87958 0,13.6511 -1.88326,1.88326 -4.35568,2.8249 -6.82305,2.8249l-13.9633 13.9633 19.7441 0c1.74731,-1.74731 4.15929,-2.82993 6.82809,-2.82993 5.32752,0 9.64795,4.32546 9.64795,9.65298 0,5.32752 -4.32043,9.65298 -9.64795,9.65298 -2.6688,0 -5.08078,-1.08262 -6.82809,-2.82993l-19.7441 0 13.9633 13.9633c2.46738,0 4.93979,0.941632 6.82305,2.8249 3.77156,3.77156 3.77156,9.88462 0,13.6511 -3.76653,3.77156 -9.87958,3.77156 -13.6511,0 -1.88326,-1.88326 -2.8249,-4.35568 -2.8249,-6.82305l-13.9633 -13.9633 0 19.7441c1.74731,1.74731 2.82993,4.15929 2.82993,6.82809 0,5.32752 -4.32546,9.64795 -9.65298,9.64795 -5.32752,0 -9.65298,-4.32043 -9.65298,-9.64795 0,-2.6688 1.08262,-5.08078 2.82993,-6.82809l0 -19.7441 -13.9633 13.9633c0,2.46738 -0.941632,4.93979 -2.8249,6.82305 -3.77156,3.77156 -9.88462,3.77156 -13.6511,0 -3.77156,-3.76653 -3.77156,-9.87958 0,-13.6511 1.88326,-1.88326 4.35568,-2.8249 6.82305,-2.8249l13.9633 -13.9633 -19.7441 0c-1.74731,1.74731 -4.15929,2.82993 -6.82809,2.82993 -5.32752,0 -9.64795,-4.32546 -9.64795,-9.65298 0,-5.32752 4.32043,-9.65298 9.64795,-9.65298 2.6688,0 5.08078,1.08262 6.82809,2.82993l19.7441 0 -13.9633 -13.9633c-2.46738,0 -4.93979,-0.941632 -6.82305,-2.8249 -3.77156,-3.77156 -3.77156,-9.88462 0,-13.6511 3.76653,-3.77156 9.87958,-3.77156 13.6511,0 1.88326,1.88326 2.8249,4.35568 2.8249,6.82305l13.9633 13.9633 0 -19.7441c-1.74731,-1.74731 -2.82993,-4.15929 -2.82993,-6.82809 0,-5.32752 4.32546,-9.64795 9.65298,-9.64795 5.32752,0 9.65298,4.32043 9.65298,9.64795 0,2.6688 -1.08262,5.08078 -2.82993,6.82809z"/>
+ <rect id="_151036536" class="fil4" x="322.929" y="249.203" width="121.742" height="60.7704"/>
+ <rect id="_151035984" class="fil4" x="322.929" y="283.305" width="121.742" height="26.6689"/>
+ <path id="_151164400" class="fil3" d="M335.689 254.84l97.2147 0c3.98305,0 7.23596,3.25291 7.23596,7.23596l0 24.4069c-37.5696,-4.64773 -74.8169,-11.073 -111.687,-10.4788l0 -13.9281c0,-3.98305 3.25291,-7.23596 7.23596,-7.23596z"/>
+ <polygon id="_151164136" class="fil1 str3" points="399.594,253.198 388.355,307.481 379.04,307.481 367.795,253.198 377.111,253.198 383.697,284.992 390.279,253.198 "/>
+ <path id="_151163752" class="fil1 str3" d="M415.496 275.682l15.902 0 0 15.897 0 0c0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l0 0 0 -22.4833 -0.00503546 0c0,-8.77681 7.12015,-15.897 15.902,-15.897 8.78185,0 15.902,7.12015 15.902,15.897l-9.31561 0c0,-3.63561 -2.95078,-6.58135 -6.58639,-6.58135 -3.63561,0 -6.58135,2.94575 -6.58135,6.58135l0 22.4833 0 0c0,3.63561 2.94575,6.58639 6.58135,6.58639 3.63561,0 6.58639,-2.95078 6.58639,-6.58135l0 -0.00503546 0 -6.58135 -6.58639 0 0 -9.31561z"/>
+ <path id="_151162704" class="fil1 str3" d="M340.654 280.339c-2.87525,-2.88029 -4.6578,-6.85327 -4.6578,-11.2442 0,-8.78185 7.12015,-15.897 15.902,-15.897 8.77681,0 15.897,7.11511 15.897,15.897l-9.31057 0c0,-3.63561 -2.95078,-6.58639 -6.58639,-6.58639 -3.63561,0 -6.58639,2.95078 -6.58639,6.58639 0,1.8178 0.735178,3.45936 1.92355,4.65277l0.00503546 0c1.1934,1.1934 2.84,1.92858 4.6578,1.92858l0 0.00503546c4.39092,0 8.36391,1.77752 11.2392,4.6578l0 0c2.88029,2.87525 4.6578,6.85327 4.6578,11.2392 0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l9.31561 0c0,3.64064 2.95078,6.58639 6.58639,6.58639 3.63561,0 6.58639,-2.94575 6.58639,-6.58639 0,-1.81277 -0.735178,-3.45936 -1.92858,-4.65277l0 0c-1.1934,-1.18837 -2.84,-1.92858 -4.6578,-1.92858l0 0c-4.39092,0 -8.36391,-1.78255 -11.2442,-4.6578l0 0z"/>
+ </g>
+ <g id="_21781808">
+ <rect id="_151162152" class="fil8" x="315.487" y="637.144" width="375.172" height="132.161"/>
+ <path id="_151161528" class="fil10" d="M390.717 667.451c67.9989,-8.15242 112.205,35.5353 173.356,44.6696 44.4329,6.63674 85.8949,-0.140993 126.587,-10.791l0 67.9737 -375.172 0 0 -92.6223 75.2298 -9.23001z"/>
+ <path id="_151160904" class="fil2" d="M447.628 769.303l-132.141 0 0 -52.0868 34.9612 -2.53284c57.1626,8.84731 97.2298,29.4222 97.2298,53.391 0,0.412908 -0.0251773,0.815745 -0.0503546,1.22865z"/>
+ <path id="_151160520" class="fil10" d="M447.628 769.303l-132.141 0 0 -52.0919 4.24993 -0.307163 0 48.0383 127.714 0c0.156099,1.03731 0.226596,2.06958 0.226596,3.12199 0,0.422979 -0.0251773,0.825816 -0.0503546,1.23872z"/>
+ <path id="_151131352" class="fil1" d="M369.437 637.142l0 20.2224 20.1922 -20.2224 27.9368 0c0,3.58021 -1.35454,7.15539 -4.08376,9.87958 -2.7544,2.72922 -6.31951,4.09887 -9.87455,4.09887l-20.2224 20.1922 28.5662 0c2.53787,-2.52277 6.03752,-4.0888 9.90476,-4.0888 7.70426,0 13.9583,6.25908 13.9583,13.9734 0,7.7244 -6.25405,13.9835 -13.9583,13.9835 -3.86724,0 -7.36688,-1.56603 -9.90476,-4.0888l-28.5662 0 20.2224 20.1922c3.55504,0 7.12015,1.36965 9.87455,4.09887 5.44334,5.44334 5.44334,14.2906 0,19.7541 -5.46348,5.44334 -14.3108,5.44334 -19.7541,0 -2.72922,-2.7544 -4.09887,-6.31951 -4.09887,-9.87455l-20.1922 -20.2224 0 28.5662c2.52277,2.53787 4.0888,6.03752 4.0888,9.90476 0,7.70426 -6.25908,13.9583 -13.9684,13.9583 -7.72944,0 -13.9885,-6.25405 -13.9885,-13.9583 0,-3.86724 1.56603,-7.36688 4.0888,-9.90476l0 -28.5662 -20.1922 20.2224c0,3.55504 -1.36965,7.12015 -4.09887,9.87455 -2.72419,2.72922 -6.29937,4.0888 -9.87958,4.08376l0 -27.9368 20.2224 -20.1922 -20.2224 0 0 -19.7793 20.2224 0 -20.2224 -20.1922 0 -13.9784 13.9784 0 20.1922 20.2224 0 -20.2224 19.7793 0z"/>
+ <path id="_151130664" class="fil9" d="M465.498 764.942c-6.16844,-7.92582 -9.86447,-17.8658 -9.86447,-28.682 0,-12.9009 5.23185,-24.5831 13.6864,-33.0377l0 -0.00503546c8.45454,-8.45958 13.6864,-20.1368 13.6864,-33.0377 0,-10.8464 -3.68596,-20.8468 -9.89469,-28.7777l213.282 0 0 123.54 -220.896 0z"/>
+ <path id="_151129960" class="fil4" d="M465.498 764.942c-6.16844,-7.92582 -9.86447,-17.8658 -9.86447,-28.682 0,-12.9009 5.23185,-24.5831 13.6864,-33.0377l0 -0.00503546c5.3678,-5.37284 9.42135,-12.0247 11.6772,-19.4772 26.8239,10.9572 52.3789,29.0697 82.5564,33.5765 42.877,6.40007 83.5182,-4.85419 122.84,-14.8546l0 62.48 -220.896 0z"/>
+ <g>
+ <path id="_151129200" class="fil1" d="M599.19 728.395c4.35568,0 8.22795,2.09979 10.6701,5.33759l-3.61546 0c-1.88326,-1.65667 -4.35568,-2.6688 -7.05469,-2.6688 -5.88142,0 -10.6802,4.7988 -10.6802,10.6802 0,5.88142 4.7988,10.6802 10.6802,10.6802 2.69901,0 5.17142,-1.00709 7.05469,-2.6688l3.61546 0c-2.4422,3.2378 -6.31447,5.33759 -10.6701,5.33759 -7.35178,0 -13.349,-5.99724 -13.349,-13.349 0,-7.35178 5.99724,-13.349 13.349,-13.349z"/>
+ <path id="_151128400" class="fil1" d="M537.783 755.093c-7.35681,0 -13.349,-5.99724 -13.349,-13.349 0,-7.35178 5.9922,-13.349 13.349,-13.349 4.35568,0 8.23802,2.10986 10.6802,5.35773l0 -2.68894 2.6688 0 0 10.6802 0 13.349 -2.6688 0 0 -5.3527c-2.4422,3.24787 -6.32454,5.3527 -10.6802,5.3527zm0 -2.6688c-5.88142,0 -10.6802,-4.7988 -10.6802,-10.6802 0,-5.88142 4.7988,-10.6802 10.6802,-10.6802 5.88142,0 10.6802,4.7988 10.6802,10.6802 0,5.88142 -4.7988,10.6802 -10.6802,10.6802z"/>
+ <path id="_151184208" class="fil1" d="M508.411 728.395c7.35178,0 13.349,5.99724 13.349,13.349 0,7.35178 -5.99724,13.349 -13.349,13.349 -4.36071,0 -8.24305,-2.10482 -10.6802,-5.3527l0 5.3527 -2.6688 0 0 -13.349 0 -24.0292 2.6688 0 0 16.038c2.43716,-3.25291 6.31951,-5.35773 10.6802,-5.35773zm0 24.0292c-5.88142,0 -10.6802,-4.7988 -10.6802,-10.6802 0,-5.88142 4.7988,-10.6802 10.6802,-10.6802 5.88142,0 10.6802,4.7988 10.6802,10.6802 0,5.88142 -4.7988,10.6802 -10.6802,10.6802z"/>
+ <path id="_151183944" class="fil1" d="M577.83 728.395l2.67383 0 0 26.698 -2.67383 0 0 -26.698zm0 -8.01142l2.67383 0 0 2.6688 -2.67383 0 0 -2.6688z"/>
+ <path id="_151183560" class="fil1" d="M564.481 755.093c4.41107,0 8.01142,-3.59532 8.01142,-8.00639 0,-4.41107 -3.60036,-8.01142 -8.01142,-8.01142 -2.20553,0 -4.00319,-1.79766 -4.00319,-4.00319 0,-2.21057 1.79766,-4.00823 4.00319,-4.00823 2.20553,0 4.00823,1.79766 4.00823,4.00823l2.6688 0c0,-3.68092 -3.00114,-6.67703 -6.67703,-6.67703 -3.67589,0 -6.67199,2.9961 -6.67199,6.67703 0,3.67589 2.9961,6.67199 6.67199,6.67199 2.94071,0 5.34263,2.40192 5.34263,5.34263 0,2.94071 -2.40192,5.33759 -5.34263,5.33759 -2.94071,0 -5.33759,-2.39688 -5.33759,-5.33759l-2.67383 0c0,4.41107 3.60036,8.00639 8.01142,8.00639z"/>
+ </g>
+ <g>
+ <path id="_151182272" class="fil1 str3" d="M574.783 674.274l16.5264 0 0 16.5214 0 0c0,9.12426 -7.40213,16.5264 -16.5264,16.5264 -9.12426,0 -16.5214,-7.3971 -16.5214,-16.5264l0 0 0 -23.3646 -0.00503546 0c0,-9.12426 7.40213,-16.5264 16.5264,-16.5264 9.12426,0 16.5264,7.40213 16.5264,16.5264l-9.6832 0c0,-3.7766 -3.0666,-6.8432 -6.8432,-6.8432 -3.7766,0 -6.8432,3.0666 -6.8432,6.8432l0 23.3646 0 0c0,3.78163 3.0666,6.8432 6.8432,6.8432 3.7766,0 6.8432,-3.06156 6.8432,-6.83816l0 -0.00503546 0 -6.83816 -6.8432 0 0 -9.6832z"/>
+ <path id="_151181224" class="fil1 str3" d="M497 679.113c-2.99107,-2.99107 -4.83908,-7.12015 -4.83908,-11.6823 0,-9.12426 7.3971,-16.5264 16.5214,-16.5264 9.1293,0 16.5264,7.40213 16.5264,16.5264l-9.67816 0c0,-3.78163 -3.0666,-6.84823 -6.84823,-6.84823 -3.7766,0 -6.8432,3.0666 -6.8432,6.84823 0,1.8883 0.765391,3.59532 2.00411,4.83405l0 0c1.23872,1.23872 2.95078,2.00411 4.83908,2.00411l0 0.00503546c4.56717,0 8.69625,1.84802 11.6873,4.83908l0 0c2.99107,2.99107 4.83908,7.12015 4.83908,11.6823 0,9.12426 -7.3971,16.5264 -16.5264,16.5264 -9.12426,0 -16.5214,-7.40213 -16.5214,-16.5264l9.67816 0c0,3.78163 3.0666,6.84823 6.8432,6.84823 3.78163,0 6.84823,-3.0666 6.84823,-6.84823 0,-1.88326 -0.765391,-3.59532 -2.00411,-4.83405l0 0c-1.23872,-1.23872 -2.95078,-2.00411 -4.84412,-2.00411l0 -0.00503546c-4.56213,0 -8.69121,-1.84802 -11.6823,-4.83908l0 0z"/>
+ <polygon id="_151180480" class="fil1 str3" points="558.257,650.904 546.574,707.322 536.891,707.322 525.209,650.904 534.892,650.904 541.735,683.947 548.574,650.904 "/>
+ <path id="_151022360" class="fil1 str3" d="M611.255 659.167l0 8.2632 8.2632 0 0 39.8909 9.67816 0 0 -56.4173 -9.67816 0c0,4.56213 -3.70107,8.2632 -8.2632,8.2632z"/>
+ <rect id="_151022096" class="fil1 str3" x="634.035" y="697.642" width="9.6796" height="9.6796"/>
+ <path id="_151021208" class="fil1 str3" d="M643.93 690.795c0,9.12426 7.3971,16.5264 16.5214,16.5264 9.12426,0 16.5264,-7.40213 16.5264,-16.5264l0 -23.3646c0,-9.12426 -7.40213,-16.5264 -16.5264,-16.5264 -9.12426,0 -16.5214,7.40213 -16.5214,16.5264l0.0151064 0 0 0 -0.0151064 0 0 0.00503546 -0.0151064 0.0100709 0.0151064 0 0 23.3494zm9.62781 -23.3646l0.0503546 0c0,-3.78163 3.06156,-6.84823 6.8432,-6.84823 3.78163,0 6.8432,3.0666 6.8432,6.84823l0 23.3646c0,3.78163 -3.06156,6.84823 -6.8432,6.84823 -3.78163,0 -6.8432,-3.0666 -6.8432,-6.84823l0 -23.3646 -0.0503546 0 0 0z"/>
+ </g>
+ <path id="_151018824" class="fil12" d="M369.437 637.142l0 4.26 -19.7793 0 0 -4.26 19.7793 0zm15.9372 4.26l4.25497 -4.26 27.9368 0c0,1.44518 -0.236667,2.87021 -0.679788,4.26l-31.5119 0zm-65.6373 97.1542c-1.37468,0.43305 -2.81986,0.664681 -4.24993,0.664681l0 -27.9368 4.24993 -4.2449 0 31.517zm0 -47.4643l-4.24993 0 0 -19.7793 4.24993 0 0 19.7793zm0 -35.7266l-4.24993 -4.2449 0 -13.9784 13.9784 0 4.25497 4.26 -13.9835 0 0 13.9633z"/>
+ <path id="_151018664" class="fil4" d="M315.487 751.05c6.60149,0.00503546 13.203,-2.50766 18.2536,-7.53809 0,14.2403 11.5614,25.7916 25.8168,25.7916 14.2403,0 25.7967,-11.5514 25.7967,-25.7916 10.0911,10.0508 26.4261,10.0508 36.5021,0 10.0508,-10.076 10.0508,-26.411 0,-36.5021 14.2403,0 25.7916,-11.5564 25.7916,-25.8118 0,-14.2403 -11.5514,-25.8017 -25.7916,-25.8017 5.02036,-5.0405 7.53809,-11.6521 7.53809,-18.2536l-11.8283 0c0,3.58021 -1.35454,7.15539 -4.08376,9.87958 -2.7544,2.72922 -6.31951,4.09887 -9.87455,4.09887l-20.2224 20.1922 28.5662 0c2.53787,-2.52277 6.03752,-4.0888 9.90476,-4.0888 7.70426,0 13.9583,6.25908 13.9583,13.9734 0,7.7244 -6.25405,13.9835 -13.9583,13.9835 -3.86724,0 -7.36688,-1.56603 -9.90476,-4.0888l-28.5662 0 20.2224 20.1922c3.55504,0 7.12015,1.36965 9.87455,4.09887 5.44334,5.44334 5.44334,14.2906 0,19.7541 -5.46348,5.44334 -14.3108,5.44334 -19.7541,0 -2.72922,-2.7544 -4.09887,-6.31951 -4.09887,-9.87455l-20.1922 -20.2224 0 28.5662c2.52277,2.53787 4.0888,6.03752 4.0888,9.90476 0,7.70426 -6.25908,13.9583 -13.9684,13.9583 -7.72944,0 -13.9885,-6.25405 -13.9885,-13.9583 0,-3.86724 1.56603,-7.36688 4.0888,-9.90476l0 -28.5662 -20.1922 20.2224c0,3.55504 -1.36965,7.12015 -4.09887,9.87455 -2.72419,2.72922 -6.29937,4.0888 -9.87958,4.08376l0 11.8283zm74.1422 -113.907l-20.1922 0 0 20.2224 20.1922 -20.2224zm-39.9715 0l-20.1922 0 20.1922 20.2224 0 -20.2224zm-34.1707 13.9784l0 20.1922 20.2224 0 -20.2224 -20.1922zm0 39.9715l0 20.1922 20.2224 -20.1922 -20.2224 0z"/>
+ <path id="_151018280" class="fil9" d="M315.487 751.05c1.42504,0 2.84,-0.11078 4.24993,-0.342412l0 -12.1304c-1.38475,0.443121 -2.80979,0.644539 -4.24993,0.644539l0 11.8283zm4.24993 -44.01l0 -15.9473 -4.24993 0 0 20.1922 4.24993 -4.2449zm0 -35.7266l0 -15.9473 -4.24993 -4.2449 0 20.1922 4.24993 0zm13.9835 -29.9107l15.9372 0 0 -4.26 -20.1922 0 4.25497 4.26zm35.7165 0l15.9372 0 4.25497 -4.26 -20.1922 0 0 4.26zm47.4542 0l12.1405 0c0.231631,-1.40489 0.362553,-2.84 0.362553,-4.26l-11.8283 0c0,1.43511 -0.236667,2.88029 -0.674752,4.26zm-71.6899 123.54c4.09887,2.74936 9.04873,4.36071 14.3561,4.36071 5.30234,0 10.227,-1.61135 14.3259,-4.36071l-28.682 0z"/>
+ </g>
+ <g id="_151048176">
+ <rect id="_151052536" class="fil8" x="315.487" y="509.252" width="341.072" height="63.9101"/>
+ <rect id="_151051984" class="fil8" x="315.487" y="509.25" width="341.075" height="63.9452"/>
+ <path id="_151051072" class="fil10" d="M656.559 528.26l0 44.9365 -341.072 0 0 -30.6912c30.0315,-7.38199 64.4791,-15.2575 68.2406,-16.4358 20.6253,-12.4074 70.8188,-1.78759 90.6686,7.50788 29.5682,13.8475 132.352,3.16731 182.163,-5.31745z"/>
+ <g>
+ <path id="_151050304" class="fil2" d="M443.408 573.197l-127.921 0 0 -30.6912c26.7383,-6.57128 56.9964,-13.5253 65.9595,-15.8063 36.2805,6.1332 62.3088,22.866 62.3088,42.5698 0,1.32433 -0.115816,2.62851 -0.347447,3.92766z"/>
+ <path id="_151049920" class="fil1" d="M315.487 564.606l0 0c5.69511,0 10.3177,-4.54199 10.3177,-10.1414 0,-2.79972 -1.15312,-5.33256 -3.02128,-7.16547l0 -20.7411 14.9251 14.6633c0,2.5983 1.00709,5.19156 3.02128,7.1705 2.01419,1.97894 4.65277,2.96589 7.29639,2.96589l0 0c2.63858,0 5.2822,-0.986951 7.29639,-2.96589 2.01419,-1.97894 3.02128,-4.5722 3.02128,-7.1705l14.9251 -14.6633 0 20.7411c-1.86816,1.83291 -3.02128,4.36575 -3.02128,7.16547 0,5.59944 4.61752,10.1414 10.3177,10.1414 5.69511,0 10.3177,-4.54199 10.3126,-10.1414 0,-2.79972 -1.15312,-5.33256 -3.02128,-7.16547l0 -20.7411 14.9251 14.6633c0,2.5983 1.00709,5.19156 3.02128,7.1705 4.02837,3.95787 10.5644,3.95787 14.5928,0 4.02837,-3.95787 4.02837,-10.3781 0,-14.336 -2.01419,-1.98397 -4.65277,-2.97092 -7.29639,-2.97092l-14.9251 -14.6683 21.1087 0c1.86816,1.83794 4.44631,2.97092 7.29639,2.97092 5.69511,0 10.3177,-4.54199 10.3177,-10.1364l0 0 -121.41 0 0 55.3549zm32.5392 -33.5211l-14.9251 -14.6683 14.9251 0 0 0 14.9251 0 -14.9251 14.6683z"/>
+ <path id="_21819072" class="fil4" d="M315.487 573.197l0 0c10.5241,0 19.0592,-8.38908 19.0592,-18.7319 3.72121,3.65575 8.60057,5.48362 13.4799,5.48362l0 0c4.87936,0 9.75369,-1.82787 13.4749,-5.48362 0,10.3428 8.53511,18.7319 19.0592,18.7319 10.5292,0 19.0643,-8.38908 19.0643,-18.7319 7.44242,7.31653 19.5124,7.31149 26.9548,0 7.44242,-7.31149 7.44242,-19.175 0,-26.4865 10.5241,0 19.0592,-8.38405 19.0592,-18.7269l-8.74157 0 0 0c0,5.5944 -4.62256,10.1364 -10.3177,10.1364 -2.85007,0 -5.42823,-1.13298 -7.29639,-2.97092l-21.1087 0 14.9251 14.6683c2.64362,0 5.2822,0.986951 7.29639,2.97092 4.02837,3.95787 4.02837,10.3781 0,14.336 -4.02837,3.95787 -10.5644,3.95787 -14.5928,0 -2.01419,-1.97894 -3.02128,-4.5722 -3.02128,-7.1705l-14.9251 -14.6633 0 20.7411c1.86816,1.83291 3.02128,4.36575 3.02128,7.16547 0.00503546,5.59944 -4.61752,10.1414 -10.3126,10.1414 -5.70015,0 -10.3177,-4.54199 -10.3177,-10.1414 0,-2.79972 1.15312,-5.33256 3.02128,-7.16547l0 -20.7411 -14.9251 14.6633c0,2.5983 -1.00709,5.19156 -3.02128,7.1705 -2.01419,1.97894 -4.6578,2.96589 -7.29639,2.96589l0 0c-2.64362,0 -5.2822,-0.986951 -7.29639,-2.96589 -2.01419,-1.97894 -3.02128,-4.5722 -3.02128,-7.1705l-14.9251 -14.6633 0 20.7411c1.86816,1.83291 3.02128,4.36575 3.02128,7.16547 0,5.59944 -4.62256,10.1414 -10.3177,10.1414l0 0 0 8.5905zm32.5392 -42.1116l-14.9251 -14.6683 14.9251 0 0 0 14.9251 0 -14.9251 14.6683z"/>
+ </g>
+ <path id="_21818072" class="fil9" d="M459.139 513.512c2.06958,3.40901 3.24787,7.43738 3.24787,11.7276 0,6.22887 -2.52277,11.8787 -6.60149,15.9675l0 0c-4.10894,4.08376 -6.62164,9.73355 -6.62164,15.9725 0,4.29022 1.20851,8.29844 3.28816,11.7175l199.878 0 0 -55.3851 -193.191 0z"/>
+ <path id="_21817368" class="fil4" d="M462.079 528.88c-0.775461,4.76858 -3.03135,9.05376 -6.29433,12.3268l0 0c-4.10894,4.08376 -6.62164,9.73355 -6.62164,15.9725 0,4.29022 1.20851,8.29844 3.28816,11.7175l199.878 0 0 -39.3219c-51.1805,7.89561 -137.302,20.6001 -166.054,7.13525 -3.33348,-1.55596 -19.4268,-6.3044 -24.1954,-7.83015z"/>
+ <g>
+ <path id="_21816472" class="fil1 str3" d="M553.03 537.113l13.3389 0 0 13.3389 0.00503546 0c0,7.36688 -5.9771,13.344 -13.344,13.344 -7.36688,0 -13.3389,-5.97206 -13.3389,-13.3389l0 -0.00503546 0 -18.8628 -0.00503546 0c0,-7.36688 5.9771,-13.344 13.344,-13.344 7.36688,0 13.3389,5.9771 13.3389,13.344l-7.81504 0c0,-3.05149 -2.47241,-5.5239 -5.5239,-5.5239 -3.05149,0 -5.5239,2.47241 -5.5239,5.5239l0 18.8679 0 0c0,3.04646 2.47241,5.51887 5.5239,5.51887 3.05149,0 5.5239,-2.47241 5.5239,-5.51887l0 -0.00503546 0 -5.51887 -5.5239 0 0 -7.82008z"/>
+ <path id="_21815424" class="fil1 str3" d="M490.233 541.02c-2.41702,-2.41199 -3.90752,-5.7505 -3.90752,-9.43142 0,-7.36688 5.97206,-13.344 13.3389,-13.344 7.36688,0 13.3389,5.9771 13.3389,13.344l-7.81 0c0,-3.05149 -2.47745,-5.52894 -5.52894,-5.52894 -3.05149,0 -5.5239,2.47745 -5.5239,5.52894 0,1.52071 0.614327,2.90546 1.61638,3.90248l0 0c1.00206,1.00206 2.38177,1.62142 3.90752,1.62142l0 0c3.68596,0 7.01944,1.49553 9.43142,3.90752l0 0c2.41702,2.41702 3.90752,5.7505 3.90752,9.43646 0,7.36688 -5.97206,13.3389 -13.3389,13.3389 -7.36688,0 -13.3389,-5.97206 -13.3389,-13.3389l7.81504 0c0,3.05149 2.47241,5.5239 5.5239,5.5239 3.05149,0 5.52894,-2.47241 5.52894,-5.5239 0,-1.52575 -0.619362,-2.90546 -1.61638,-3.90752l-0.00503546 0c-0.997022,-1.00206 -2.38177,-1.61638 -3.90752,-1.61638l0 -0.00503546c-3.68092,0 -7.01944,-1.49553 -9.43142,-3.90752l0 0z"/>
+ <polygon id="_151117592" class="fil1 str3" points="539.686,518.245 530.255,563.796 522.439,563.796 513.003,518.245 520.823,518.245 526.347,544.923 531.871,518.245 "/>
+ <path id="_151116968" class="fil1 str3" d="M582.472 524.917l0 6.67199 6.67199 0 0 32.2068 7.81504 0 0 -45.5508 -7.81504 0c0,3.68596 -2.98603,6.67199 -6.67199,6.67199z"/>
+ <rect id="_151116416" class="fil1 str3" x="600.867" y="555.98" width="7.81492" height="7.81492"/>
+ <path id="_151115392" class="fil1 str3" d="M608.853 550.457c0,7.36688 5.9771,13.3389 13.344,13.3389 7.36688,0 13.3389,-5.97206 13.3389,-13.3389l0 -18.8679c0,-7.36688 -5.97206,-13.344 -13.3389,-13.344 -7.36688,0 -13.344,5.9771 -13.344,13.344l0.0151064 0 0 0 -0.0151064 0 0 0.00503546 -0.0100709 0.00503546 0.0100709 0.00503546 0 18.8528zm7.77476 -18.8679l0.0402837 0c0,-3.05149 2.47745,-5.52894 5.52894,-5.52894 3.05149,0 5.5239,2.47745 5.5239,5.52894l0 18.8679c0,3.05149 -2.47241,5.5239 -5.5239,5.5239 -3.05149,0 -5.52894,-2.47241 -5.52894,-5.5239l0 -18.8679 -0.0402837 0 0 0z"/>
+ </g>
+ <path id="_150871880" class="fil10" d="M443.408 573.197l-127.921 0 0 -30.6912 4.26 -1.02723 0 27.4181 123.998 0 0.0100709 0.372624c0,1.32433 -0.115816,2.62851 -0.347447,3.92766z"/>
+ <path id="_150871616" class="fil12" d="M315.487 564.601l0 0c1.52575,0 2.95582,-0.317234 4.26,-0.896313l0 -50.1935 116.188 0c0.609291,-1.28908 0.956738,-2.74433 0.956738,-4.26l0 0 -121.405 0 0 55.3498z"/>
+ <path id="_150870808" class="fil9" d="M315.487 573.192l0 0c4.61752,0 8.84227,-1.60631 12.1455,-4.29525l-7.88554 0 0 -5.19156c-1.30419,0.579078 -2.73426,0.896313 -4.26,0.896313l0 0 0 8.5905zm52.9127 -4.29525c3.29823,2.68894 7.54816,4.29525 12.1657,4.29525 4.61752,0 8.84227,-1.60631 12.1455,-4.29525l-24.3112 0zm76.7354 -55.3851c0.32227,-1.36461 0.503546,-2.79972 0.503546,-4.26l-8.7466 0 0 0c0,1.51567 -0.347447,2.97092 -0.956738,4.26l9.19979 0z"/>
+ </g>
+ <g id="_150719584">
+ <rect id="_150870256" class="fil1" x="483.671" y="1029.15" width="136.426" height="136.426"/>
+ <path id="_151151624" class="fil4" d="M569.818 1054.21c0,-9.84433 -7.98625,-17.8306 -17.8306,-17.8306 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 0,9.84433 7.98625,17.8306 17.8306,17.8306 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 6.96405,6.95901 18.2536,6.95901 25.2176,0 0,9.84433 7.98625,17.8306 17.8306,17.8306 9.84433,0 17.8306,-7.98625 17.8306,-17.8306 6.96405,6.95901 18.2536,6.95901 25.2176,0 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 9.84433,0 17.8255,-7.98625 17.8255,-17.8306 0,-9.84433 -7.98121,-17.8306 -17.8255,-17.8306 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0z"/>
+ <path id="_151151240" class="fil1" d="M558.811 1061.04l0 19.7441 13.9633 -13.9633c0,-2.46738 0.941632,-4.93979 2.8249,-6.82305 3.77156,-3.77156 9.88462,-3.77156 13.6511,0 3.77156,3.76653 3.77156,9.87958 0,13.6511 -1.88326,1.88326 -4.35568,2.8249 -6.82305,2.8249l-13.9633 13.9633 19.7441 0c1.74731,-1.74731 4.15929,-2.82993 6.82809,-2.82993 5.32752,0 9.64795,4.32546 9.64795,9.65298 0,5.32752 -4.32043,9.65298 -9.64795,9.65298 -2.6688,0 -5.08078,-1.08262 -6.82809,-2.82993l-19.7441 0 13.9633 13.9633c2.46738,0 4.93979,0.941632 6.82305,2.8249 3.77156,3.77156 3.77156,9.88462 0,13.6511 -3.76653,3.77156 -9.87958,3.77156 -13.6511,0 -1.88326,-1.88326 -2.8249,-4.35568 -2.8249,-6.82305l-13.9633 -13.9633 0 19.7441c1.74731,1.74731 2.82993,4.15929 2.82993,6.82809 0,5.32752 -4.32546,9.64795 -9.65298,9.64795 -5.32752,0 -9.65298,-4.32043 -9.65298,-9.64795 0,-2.6688 1.08262,-5.08078 2.82993,-6.82809l0 -19.7441 -13.9633 13.9633c0,2.46738 -0.941632,4.93979 -2.8249,6.82305 -3.77156,3.77156 -9.88462,3.77156 -13.6511,0 -3.77156,-3.76653 -3.77156,-9.87958 0,-13.6511 1.88326,-1.88326 4.35568,-2.8249 6.82305,-2.8249l13.9633 -13.9633 -19.7441 0c-1.74731,1.74731 -4.15929,2.82993 -6.82809,2.82993 -5.32752,0 -9.64795,-4.32546 -9.64795,-9.65298 0,-5.32752 4.32043,-9.65298 9.64795,-9.65298 2.6688,0 5.08078,1.08262 6.82809,2.82993l19.7441 0 -13.9633 -13.9633c-2.46738,0 -4.93979,-0.941632 -6.82305,-2.8249 -3.77156,-3.77156 -3.77156,-9.88462 0,-13.6511 3.76653,-3.77156 9.87958,-3.77156 13.6511,0 1.88326,1.88326 2.8249,4.35568 2.8249,6.82305l13.9633 13.9633 0 -19.7441c-1.74731,-1.74731 -2.82993,-4.15929 -2.82993,-6.82809 0,-5.32752 4.32546,-9.64795 9.65298,-9.64795 5.32752,0 9.65298,4.32043 9.65298,9.64795 0,2.6688 -1.08262,5.08078 -2.82993,6.82809z"/>
+ <rect id="_151152680" class="fil4" x="491.113" y="1097.36" width="121.742" height="60.7704"/>
+ <rect id="_151152416" class="fil4" x="491.113" y="1131.46" width="121.742" height="26.6689"/>
+ <path id="_151150376" class="fil3" d="M503.874 1103l97.2147 0c3.98305,0 7.23596,3.25291 7.23596,7.23596l0 24.4069c-37.5696,-4.64773 -74.8169,-11.073 -111.687,-10.4788l0 -13.9281c0,-3.98305 3.25291,-7.23596 7.23596,-7.23596z"/>
+ <polygon id="_151842616" class="fil1 str3" points="567.779,1101.36 556.54,1155.64 547.224,1155.64 535.98,1101.36 545.295,1101.36 551.882,1133.15 558.463,1101.36 "/>
+ <path id="_151842232" class="fil1 str3" d="M583.681 1123.84l15.902 0 0 15.897 0 0c0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l0 0 0 -22.4833 -0.00503546 0c0,-8.77681 7.12015,-15.897 15.902,-15.897 8.78185,0 15.902,7.12015 15.902,15.897l-9.31561 0c0,-3.63561 -2.95078,-6.58135 -6.58639,-6.58135 -3.63561,0 -6.58135,2.94575 -6.58135,6.58135l0 22.4833 0 0c0,3.63561 2.94575,6.58639 6.58135,6.58639 3.63561,0 6.58639,-2.95078 6.58639,-6.58135l0 -0.00503546 0 -6.58135 -6.58639 0 0 -9.31561z"/>
+ <path id="_150719776" class="fil1 str3" d="M508.839 1128.5c-2.87525,-2.88029 -4.6578,-6.85327 -4.6578,-11.2442 0,-8.78185 7.12015,-15.897 15.902,-15.897 8.77681,0 15.897,7.11511 15.897,15.897l-9.31057 0c0,-3.63561 -2.95078,-6.58639 -6.58639,-6.58639 -3.63561,0 -6.58639,2.95078 -6.58639,6.58639 0,1.8178 0.735178,3.45936 1.92355,4.65277l0.00503546 0c1.1934,1.1934 2.84,1.92858 4.6578,1.92858l0 0.00503546c4.39092,0 8.36391,1.77752 11.2392,4.6578l0 0c2.88029,2.87525 4.6578,6.85327 4.6578,11.2392 0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l9.31561 0c0,3.64064 2.95078,6.58639 6.58639,6.58639 3.63561,0 6.58639,-2.94575 6.58639,-6.58639 0,-1.81277 -0.735178,-3.45936 -1.92858,-4.65277l0 0c-1.1934,-1.18837 -2.84,-1.92858 -4.6578,-1.92858l0 0c-4.39092,0 -8.36391,-1.78255 -11.2442,-4.6578l0 0z"/>
+ </g>
+ <g id="_151045680">
+ <path id="_150719200" class="fil11" d="M403.547 1049.31c0,-11.0176 -8.93291,-19.9455 -19.9505,-19.9455 -11.0126,0 -19.9455,8.92788 -19.9455,19.9455 -7.78986,-7.78986 -20.4238,-7.78986 -28.2137,0 -7.78986,7.78986 -7.78986,20.4238 0,28.2087 -11.0126,0 -19.9455,8.93291 -19.9455,19.9505 0,11.0126 8.93291,19.9455 19.9455,19.9505 -7.78986,7.78483 -7.78986,20.4188 0,28.2087 7.78986,7.78986 20.4238,7.78986 28.2137,0 0,11.0176 8.93291,19.9455 19.9455,19.9455 11.0176,0 19.9505,-8.93291 19.9505,-19.9455 7.78483,7.78986 20.4188,7.78986 28.2087,0 7.78986,-7.78986 7.78986,-20.4238 0,-28.2087 11.0176,0 19.9505,-8.93795 19.9505,-19.9505 0,-11.0126 -8.93291,-19.9455 -19.9505,-19.9505 7.78986,-7.78483 7.78986,-20.4188 0,-28.2087 -7.78986,-7.78986 -20.4238,-7.78986 -28.2087,0z"/>
+ <path id="_150718816" class="fil9" d="M391.23 1056.94l0 22.0906 15.625 -15.62c0,-2.76447 1.05241,-5.5239 3.16227,-7.63376 4.21468,-4.21468 11.0528,-4.21468 15.2675,0 4.21972,4.21468 4.21972,11.0528 0,15.2726 -2.10482,2.10482 -4.86929,3.16227 -7.63376,3.16227l-15.62 15.62 22.0906 0c1.95376,-1.95376 4.65277,-3.16227 7.63376,-3.16227 5.96199,0 10.8011,4.83405 10.8011,10.796 0,5.96199 -4.83908,10.796 -10.8011,10.796 -2.98099,0 -5.68,-1.20851 -7.63376,-3.16227l-22.0906 0 15.62 15.62c2.76447,0 5.52894,1.05745 7.63376,3.16227 4.21972,4.21972 4.21972,11.0579 0,15.2726 -4.21468,4.21468 -11.0528,4.21468 -15.2675,0 -2.10986,-2.10986 -3.16227,-4.86929 -3.16227,-7.63376l-15.625 -15.62 0 22.0906c1.95376,1.95376 3.16731,4.65277 3.16731,7.63376 0,5.96199 -4.83908,10.796 -10.8011,10.796 -5.96199,0 -10.796,-4.83405 -10.796,-10.796 0,-2.98099 1.20851,-5.68 3.16227,-7.63376l0 -22.0906 -15.62 15.62c0,2.76447 -1.05745,5.5239 -3.16227,7.63376 -4.21972,4.21468 -11.0579,4.21468 -15.2726,0 -4.21468,-4.21468 -4.21468,-11.0528 0,-15.2726 2.10986,-2.10482 4.86929,-3.16227 7.63376,-3.16227l15.62 -15.62 -22.0906 0c-1.95376,1.95376 -4.65277,3.16227 -7.63376,3.16227 -5.96199,0 -10.796,-4.83405 -10.796,-10.796 0,-5.96199 4.83405,-10.796 10.796,-10.796 2.98099,0 5.68,1.20851 7.63376,3.16227l22.0906 0 -15.62 -15.62c-2.76447,0 -5.5239,-1.05745 -7.63376,-3.16227 -4.21468,-4.21972 -4.21468,-11.0579 0,-15.2726 4.21468,-4.21468 11.0528,-4.21468 15.2726,0 2.10482,2.10986 3.16227,4.86929 3.16227,7.63376l15.62 15.62 0 -22.0906c-1.95376,-1.95376 -3.16227,-4.65277 -3.16227,-7.63376 0,-5.96199 4.83405,-10.796 10.796,-10.796 5.96199,0 10.8011,4.83405 10.8011,10.796 0,2.98099 -1.21355,5.68 -3.16731,7.63376z"/>
+ <rect id="_150718264" class="fil4" x="335.438" y="1097.58" width="96.3105" height="62.1524"/>
+ <path id="_150717608" class="fil3" d="M345.267 1100.93l76.7103 0c3.14213,0 5.71022,2.57312 5.71022,5.71022l-0.00503546 36.1848c-29.6438,-3.66582 -59.5141,-14.4417 -88.6091,-13.9734l0.483405 -22.2114c0.0704965,-3.14213 2.56809,-5.71022 5.71022,-5.71022z"/>
+ <g>
+ <polygon id="_151248392" class="fil1 str3" points="396.518,1105.97 387.101,1151.43 379.301,1151.43 369.89,1105.97 377.69,1105.97 383.204,1132.6 388.718,1105.97 "/>
+ <path id="_151248128" class="fil1 str3" d="M409.831 1124.81l13.3138 0 0 13.3087 0 0c0,7.35178 -5.96199,13.3138 -13.3138,13.3138 -7.35178,0 -13.3138,-5.96199 -13.3138,-13.3138l0 0 0 -18.8276 0 0c0,-7.35178 5.96199,-13.3138 13.3138,-13.3138 7.35178,0 13.3138,5.96199 13.3138,13.3138l-7.79993 0c0,-3.04142 -2.46738,-5.5088 -5.51383,-5.5088 -3.04646,0 -5.51383,2.46738 -5.51383,5.5088l0 18.8276 0 0c0,3.04646 2.47241,5.51383 5.51383,5.51383 3.04142,0 5.51383,-2.46738 5.51383,-5.51383l0 0 0 -5.5088 -5.51383 0 0 -7.79993z"/>
+ <path id="_151247080" class="fil1 str3" d="M347.165 1128.7c-2.41199,-2.41199 -3.90248,-5.74043 -3.90248,-9.41632 0,-7.35178 5.96199,-13.3138 13.3138,-13.3138 7.35178,0 13.3138,5.96199 13.3138,13.3138l-7.79993 0c0,-3.04142 -2.46738,-5.51383 -5.51383,-5.51383 -3.04646,0 -5.51383,2.47241 -5.51383,5.51383 0,1.52071 0.614327,2.90043 1.61135,3.89745l0.00503546 0c0.997022,0.997022 2.37674,1.61638 3.89745,1.61638l0 0c3.67589,0 7.00433,1.4905 9.41128,3.90248l0.00503546 0c2.40695,2.40695 3.89745,5.73539 3.89745,9.41128 0,7.35178 -5.96199,13.3138 -13.3138,13.3138 -7.35178,0 -13.3138,-5.96199 -13.3138,-13.3138l7.79993 0c0,3.04646 2.46738,5.51383 5.51383,5.51383 3.04646,0 5.51383,-2.46738 5.51383,-5.51383 0,-1.52071 -0.614327,-2.89539 -1.61135,-3.89745l0 0c-1.00206,-0.997022 -2.37674,-1.61638 -3.90248,-1.61638l0 0c-3.67589,0 -7.00433,-1.4905 -9.41128,-3.89745l0 0z"/>
+ </g>
+ </g>
+ <g id="_151082544">
+ <path id="_150827656" class="fil4" d="M602.035 1497.17c0,-6.89355 -5.5944,-12.4829 -12.488,-12.4829 -6.89355,0 -12.488,5.58937 -12.488,12.4829 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0 -4.87433,4.87936 -4.87433,12.785 0,17.6594 -6.89355,0 -12.488,5.5944 -12.488,12.488 0,6.89355 5.5944,12.488 12.488,12.488 -4.87433,4.87433 -4.87433,12.78 0,17.6594 4.87433,4.87433 12.785,4.87433 17.6594,0 0,6.89355 5.5944,12.4829 12.488,12.4829 6.89355,0 12.488,-5.58937 12.488,-12.4829 4.87433,4.87433 12.785,4.87433 17.6594,0 4.87433,-4.87936 4.87433,-12.785 0,-17.6594 6.89355,0 12.488,-5.5944 12.488,-12.488 0,-6.89355 -5.5944,-12.488 -12.488,-12.488 4.87433,-4.87433 4.87433,-12.78 0,-17.6594 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0z"/>
+ <path id="_150824944" class="fil1" d="M594.326 1501.95l0 13.8274 9.77887 -9.77887c0,-1.7322 0.659646,-3.45936 1.97894,-4.77866 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 2.63858,2.63858 2.63858,6.91873 0,9.55731 -1.31929,1.31929 -3.05149,1.97894 -4.77866,1.97894l-9.77887 9.77887 13.8274 0c1.22362,-1.22362 2.9105,-1.97894 4.77866,-1.97894 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -1.86816,0 -3.55504,-0.75532 -4.77866,-1.97894l-13.8274 0 9.77887 9.77887c1.72716,0 3.45936,0.659646 4.77866,1.97894 2.63858,2.63858 2.63858,6.91873 0,9.55731 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -1.31929,-1.31929 -1.97894,-3.04646 -1.97894,-4.77866l-9.77887 -9.77887 0 13.8274c1.22362,1.22362 1.97894,2.91553 1.97894,4.78369 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-1.86816 0.75532,-3.56007 1.97894,-4.78369l0 -13.8274 -9.77887 9.77887c0,1.7322 -0.659646,3.45936 -1.97894,4.77866 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 1.31929,-1.31929 3.05149,-1.97894 4.77866,-1.97894l9.77887 -9.77887 -13.8274 0c-1.22362,1.22362 -2.9105,1.97894 -4.77866,1.97894 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 1.86816,0 3.55504,0.75532 4.77866,1.97894l13.8274 0 -9.77887 -9.77887c-1.72716,0 -3.45936,-0.659646 -4.77866,-1.97894 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 1.31929,1.31929 1.97894,3.04646 1.97894,4.77866l9.77887 9.77887 0 -13.8274c-1.22362,-1.22362 -1.97894,-2.91553 -1.97894,-4.78369 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,1.86816 -0.75532,3.56007 -1.97894,4.78369z"/>
+ <rect id="_151854096" class="fil4" x="546.914" y="1527.39" width="85.2619" height="42.5571"/>
+ <g>
+ <polygon id="_151853488" class="fil1 str3" points="600.61,1530.19 592.735,1568.2 586.214,1568.2 578.338,1530.19 584.864,1530.19 589.472,1552.45 594.084,1530.19 "/>
+ <path id="_151852592" class="fil1 str3" d="M611.743 1545.93l11.1384 0 0 11.1334 0 0c0,6.1483 -4.98511,11.1334 -11.1384,11.1334 -6.1483,0 -11.1334,-4.98511 -11.1334,-11.1334l0 0 0 -15.7459 0 0c0,-6.1483 4.98511,-11.1334 11.1334,-11.1334 6.1483,0 11.1384,4.98511 11.1384,11.1334l-6.52596 0c0,-2.54794 -2.06454,-4.61249 -4.61249,-4.61249 -2.54291,0 -4.60745,2.06454 -4.60745,4.61249l0 15.7459 0 0c0,2.54291 2.06454,4.60745 4.60745,4.60745 2.54794,0 4.61249,-2.0595 4.61249,-4.60745l0 0 0 -4.60745 -4.61249 0 0 -6.52596z"/>
+ <path id="_151851544" class="fil1 str3" d="M559.329 1549.19c-2.01419,-2.01419 -3.26298,-4.7988 -3.26298,-7.87043 0,-6.1483 4.98511,-11.1334 11.1384,-11.1334 6.1483,0 11.1334,4.98511 11.1334,11.1334l-6.52596 0c0,-2.54794 -2.06454,-4.61249 -4.60745,-4.61249 -2.54794,0 -4.61249,2.06454 -4.61249,4.61249 0,1.27397 0.513617,2.42206 1.34447,3.25795l0.00503546 0c0.835887,0.835887 1.98901,1.3495 3.26298,1.3495l0 0.00503546c3.07163,0 5.85624,1.24376 7.87043,3.26298l0 0c2.01419,2.01419 3.26298,4.79376 3.26298,7.87043 0,6.1483 -4.98511,11.1334 -11.1334,11.1334 -6.15334,0 -11.1384,-4.98511 -11.1384,-11.1334l6.52596 0c0,2.54794 2.06454,4.61249 4.61249,4.61249 2.54291,0 4.60745,-2.06454 4.60745,-4.61249 0,-1.27397 -0.513617,-2.42206 -1.34447,-3.25795l-0.00503546 0c-0.835887,-0.835887 -1.98901,-1.35454 -3.25795,-1.35454l0 0c-3.07667,0 -5.86128,-1.2488 -7.87547,-3.26298l0 0z"/>
+ </g>
+ </g>
+ <g id="_150679312">
+ <path id="_151084040" class="fil11" d="M484.794 1497.17c0,-6.89355 -5.5944,-12.4829 -12.488,-12.4829 -6.89355,0 -12.488,5.58937 -12.488,12.4829 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0 -4.87433,4.87936 -4.87433,12.785 0,17.6594 -6.89355,0 -12.488,5.5944 -12.488,12.488 0,6.89355 5.5944,12.488 12.488,12.488 -4.87433,4.87433 -4.87433,12.78 0,17.6594 4.87433,4.87433 12.785,4.87433 17.6594,0 0,6.89355 5.5944,12.4829 12.488,12.4829 6.89355,0 12.488,-5.58937 12.488,-12.4829 4.87433,4.87433 12.785,4.87433 17.6594,0 4.87433,-4.87936 4.87433,-12.785 0,-17.6594 6.89355,0 12.488,-5.5944 12.488,-12.488 0,-6.89355 -5.5944,-12.488 -12.488,-12.488 4.87433,-4.87433 4.87433,-12.78 0,-17.6594 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0z"/>
+ <path id="_151081464" class="fil3" d="M477.085 1501.95l0 13.8274 9.77887 -9.77887c0,-1.7322 0.659646,-3.45936 1.97894,-4.77866 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 2.63858,2.63858 2.63858,6.91873 0,9.55731 -1.31929,1.31929 -3.05149,1.97894 -4.77866,1.97894l-9.77887 9.77887 13.8274 0c1.22362,-1.22362 2.9105,-1.97894 4.77866,-1.97894 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -1.86816,0 -3.55504,-0.75532 -4.77866,-1.97894l-13.8274 0 9.77887 9.77887c1.72716,0 3.45936,0.659646 4.77866,1.97894 2.63858,2.63858 2.63858,6.91873 0,9.55731 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -1.31929,-1.31929 -1.97894,-3.04646 -1.97894,-4.77866l-9.77887 -9.77887 0 13.8274c1.22362,1.22362 1.97894,2.91553 1.97894,4.78369 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-1.86816 0.75532,-3.56007 1.97894,-4.78369l0 -13.8274 -9.77887 9.77887c0,1.7322 -0.659646,3.45936 -1.97894,4.77866 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 1.31929,-1.31929 3.05149,-1.97894 4.77866,-1.97894l9.77887 -9.77887 -13.8274 0c-1.22362,1.22362 -2.9105,1.97894 -4.77866,1.97894 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 1.86816,0 3.55504,0.75532 4.77866,1.97894l13.8274 0 -9.77887 -9.77887c-1.72716,0 -3.45936,-0.659646 -4.77866,-1.97894 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 1.31929,1.31929 1.97894,3.04646 1.97894,4.77866l9.77887 9.77887 0 -13.8274c-1.22362,-1.22362 -1.97894,-2.91553 -1.97894,-4.78369 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,1.86816 -0.75532,3.56007 -1.97894,4.78369z"/>
+ <rect id="_150911816" class="fil1" x="429.673" y="1527.39" width="85.2619" height="42.5571"/>
+ <g>
+ <polygon id="_150911208" class="fil4 str4" points="483.319,1531.7 475.398,1569.94 468.837,1569.94 460.916,1531.7 467.482,1531.7 472.12,1554.1 476.758,1531.7 "/>
+ <path id="_150910312" class="fil4 str4" d="M494.523 1547.54l11.1989 0 0 11.1989 0.00503546 0c0,6.18355 -5.01532,11.1989 -11.2039,11.1989 -6.18355,0 -11.1989,-5.01532 -11.2039,-11.1989l0 0 0 -15.8416 0 0c0,-6.18355 5.01532,-11.1989 11.2039,-11.1989 6.18355,0 11.1989,5.01532 11.1989,11.1989l-6.56121 0c0,-2.55802 -2.07461,-4.63766 -4.63766,-4.63766 -2.56305,0 -4.63766,2.07965 -4.63766,4.63766l0 15.8416 0 0c0,2.55802 2.07461,4.63766 4.63766,4.63766 2.55802,0 4.63766,-2.07965 4.63766,-4.63766l0 0 0 -4.63766 -4.63766 0 0 -6.56121z"/>
+ <path id="_150909264" class="fil4 str4" d="M441.797 1550.82c-2.02929,-2.02929 -3.28312,-4.82901 -3.28312,-7.92078 0,-6.18355 5.01532,-11.1989 11.2039,-11.1989 6.18355,0 11.1989,5.01532 11.1989,11.1989l-6.56121 0c0,-2.56305 -2.07965,-4.63766 -4.63766,-4.63766 -2.56305,0 -4.6427,2.07461 -4.6427,4.63766 0,1.27901 0.518653,2.43716 1.35958,3.27809l0 0c0.840922,0.840922 1.99908,1.35958 3.28312,1.35958l0 0c3.09177,0 5.89149,1.25887 7.91575,3.28312l0.00503546 0c2.02426,2.02929 3.27809,4.82901 3.27809,7.92078 0,6.18355 -5.01532,11.1989 -11.1989,11.1989 -6.18859,0 -11.2039,-5.01532 -11.2039,-11.1989l6.56121 0c0,2.56305 2.07965,4.63766 4.6427,4.63766 2.55802,0 4.63766,-2.07461 4.63766,-4.63766 0,-1.27901 -0.518653,-2.43716 -1.35454,-3.27809l-0.00503546 0c-0.840922,-0.840922 -1.99908,-1.35958 -3.27809,-1.35958l0 -0.00503546c-3.09681,0 -5.89653,-1.25383 -7.92078,-3.27809l0 0z"/>
+ </g>
+ </g>
+ <g id="_150477136">
+ <path id="_150678928" class="fil0" d="M356.415 1645.77l0 13.8072 9.60263 -9.76376c0,-1.72716 0.649575,-3.45433 1.94369,-4.77866 2.58823,-2.63858 6.79788,-2.63858 9.3861,0 2.59326,2.63858 2.59326,6.91873 0,9.55228 -1.29915,1.32433 -3.00114,1.97894 -4.69305,1.97894l-9.59759 9.7688 13.5756 0c1.1934,-1.22362 2.85511,-1.97894 4.69305,-1.97894 3.66078,0 6.63674,3.02631 6.63674,6.75256l-0.00503546 0.075532 -72.4654 0 -0.00503546 -0.075532c0,-3.72624 2.97596,-6.75256 6.63674,-6.75256 1.83794,0 3.49965,0.75532 4.69305,1.97894l13.5756 0 -9.60263 -9.7688c-1.68688,0 -3.38887,-0.65461 -4.68802,-1.97894 -2.59326,-2.63355 -2.59326,-6.91369 0,-9.55228 2.58823,-2.63858 6.79788,-2.63858 9.3861,0 1.29411,1.32433 1.94369,3.05149 1.94369,4.77866l9.60263 9.76376 0 -13.8072c-1.20348,-1.22362 -1.94872,-2.91553 -1.94872,-4.77866 0,-3.73128 2.97596,-6.75256 6.63674,-6.75256 3.66582,0 6.64178,3.02128 6.64178,6.75256 0,1.86312 -0.745249,3.55504 -1.94872,4.77866z"/>
+ <g>
+ <polygon id="_150678320" class="fil0 str4" points="360.982,1673.97 354.32,1706.72 348.802,1706.72 342.135,1673.97 347.659,1673.97 351.561,1693.15 355.463,1673.97 "/>
+ <path id="_150677440" class="fil0 str4" d="M370.409 1687.54l9.42135 0 0 9.58752 0 0c0,5.29731 -4.21972,9.59256 -9.42135,9.59256 -5.20667,0 -9.42639,-4.29525 -9.42639,-9.59256l0 0 0 -13.5555 0 0c0,-5.29731 4.21972,-9.59256 9.42639,-9.59256 5.20163,0 9.42135,4.29525 9.42135,9.59256l-5.51887 0c0,-2.19546 -1.74731,-3.97298 -3.90248,-3.97298 -2.15518,0 -3.90248,1.77752 -3.90248,3.97298l0 13.5555 0 0c0,2.19546 1.74731,3.97298 3.90248,3.97298 2.15518,0 3.89745,-1.77752 3.90248,-3.96795l0 -0.00503546 0 -3.96795 -3.90248 0 0 -5.61958z"/>
+ <path id="_150477696" class="fil0 str4" d="M326.051 1690.34c-1.70702,-1.73724 -2.76447,-4.13412 -2.76447,-6.78277 0,-5.29227 4.21972,-9.58752 9.42639,-9.58752 5.20163,0 9.42135,4.29525 9.42135,9.58752l-5.51887 0c0,-2.19043 -1.74731,-3.96795 -3.90248,-3.96795 -2.15518,0 -3.90248,1.77752 -3.90248,3.96795 0,1.09773 0.43305,2.08972 1.13801,2.80979l0.00503546 0c0.704965,0.720071 1.68184,1.16319 2.75943,1.16319l0 0c2.60333,0 4.9549,1.07255 6.66192,2.80979l0 0c1.70702,1.73724 2.75943,4.13412 2.75943,6.77773 0,5.29731 -4.21972,9.59256 -9.42135,9.59256 -5.20667,0 -9.42639,-4.29525 -9.42639,-9.59256l5.5239 0c0,2.19546 1.74731,3.97298 3.90248,3.97298 2.15518,0 3.90248,-1.77752 3.90248,-3.97298 0,-1.0927 -0.438085,-2.08468 -1.14305,-2.80475l0 0c-0.704965,-0.720071 -1.68184,-1.16319 -2.75943,-1.16319l0 0c-2.60333,0 -4.95993,-1.07759 -6.66192,-2.80979l0 0z"/>
+ </g>
+ </g>
+ <rect class="fil4" x="315.51" y="1229.52" width="341.068" height="63.9453"/>
+ <rect class="fil1" x="315.51" y="1356.8" width="341.068" height="63.9453"/>
+ <path class="fil9" d="M652.354 1265.16c-46.7039,6.80795 -92.2296,5.43327 -141.401,1.6617 -51.1704,-3.9327 -134.351,-17.2867 -191.192,-10.2069l0 -22.8409 332.592 0 0 31.386z"/>
+ <path class="fil1" d="M652.354 1392.44c-46.7039,6.80795 -92.2296,5.43327 -141.401,1.6617 -51.1704,-3.9327 -134.351,-17.2867 -191.192,-10.2069l0 -22.8409 332.592 0 0 31.386z"/>
+ <g id="_150652312">
+ <polygon id="_150654520" class="fil1 str2" points="448.695,1235.46 438.075,1286.73 429.278,1286.73 418.659,1235.46 427.461,1235.46 433.679,1265.49 439.893,1235.46 "/>
+ <path id="_150653624" class="fil1 str2" d="M463.711 1256.7l15.0208 0 0 15.0107 0 0c0,8.29341 -6.72234,15.0158 -15.0158,15.0158 -8.29341,0 -15.0208,-6.72234 -15.0208,-15.0158l0 0 0 -21.2346 0 0c0,-8.28837 6.72234,-15.0158 15.0158,-15.0158 8.29341,0 15.0208,6.72738 15.0208,15.0158l-8.80199 0c0,-3.42915 -2.78461,-6.21376 -6.2188,-6.21376 -3.42915,0 -6.21376,2.78461 -6.21376,6.21376l0 21.2346 0 0c0,3.43419 2.78461,6.2188 6.21376,6.2188 3.43419,0 6.2188,-2.78461 6.2188,-6.21376l0 -0.00503546 0 -6.21376 -6.2188 0 0 -8.79696z"/>
+ <path id="_150652576" class="fil1 str2" d="M393.023 1261.1c-2.71412,-2.71915 -4.39596,-6.47057 -4.39596,-10.6198 0,-8.28837 6.72234,-15.0158 15.0158,-15.0158 8.29341,0 15.0158,6.72738 15.0158,15.0158l-8.79696 0c0,-3.43419 -2.78461,-6.2188 -6.2188,-6.2188 -3.43419,0 -6.2188,2.78461 -6.2188,6.2188 0,1.71709 0.694894,3.26802 1.8178,4.39596l0.00503546 0c1.12291,1.12794 2.67887,1.82284 4.39596,1.82284l0 0c4.14419,0 7.90064,1.68184 10.6198,4.401l0 0c2.71412,2.71915 4.39596,6.47057 4.39596,10.6148 0,8.29341 -6.72234,15.0158 -15.0158,15.0158 -8.29341,0 -15.0158,-6.72234 -15.0158,-15.0158l8.79696 0c0,3.43419 2.78461,6.22383 6.2188,6.22383 3.43419,0 6.2188,-2.78965 6.2188,-6.22383 0,-1.71206 -0.694894,-3.26802 -1.8178,-4.39092l0 0c-1.12794,-1.12794 -2.6839,-1.82284 -4.401,-1.82284l0 -0.00503546c-4.14419,0 -7.90064,-1.68184 -10.6148,-4.39596l-0.00503546 0z"/>
+ </g>
+ <g id="_151104976">
+ <polygon id="_150575752" class="fil4" points="448.695,1362.75 438.075,1414.01 429.278,1414.01 418.659,1362.75 427.461,1362.75 433.679,1392.77 439.893,1362.75 "/>
+ <path id="_150989640" class="fil4" d="M463.711 1383.99l15.0208 0 0 15.0107 0 0c0,8.29341 -6.72234,15.0158 -15.0158,15.0158 -8.29341,0 -15.0208,-6.72234 -15.0208,-15.0158l0 0 0 -21.2346 0 0c0,-8.28837 6.72234,-15.0158 15.0158,-15.0158 8.29341,0 15.0208,6.72738 15.0208,15.0158l-8.80199 0c0,-3.42915 -2.78461,-6.21376 -6.2188,-6.21376 -3.42915,0 -6.21376,2.78461 -6.21376,6.21376l0 21.2346 0 0c0,3.43419 2.78461,6.2188 6.21376,6.2188 3.43419,0 6.2188,-2.78461 6.2188,-6.21376l0 -0.00503546 0 -6.21376 -6.2188 0 0 -8.79696z"/>
+ <path id="_151105256" class="fil4" d="M393.023 1388.38c-2.71412,-2.71915 -4.39596,-6.47057 -4.39596,-10.6198 0,-8.28837 6.72234,-15.0158 15.0158,-15.0158 8.29341,0 15.0158,6.72738 15.0158,15.0158l-8.79696 0c0,-3.43419 -2.78461,-6.2188 -6.2188,-6.2188 -3.43419,0 -6.2188,2.78461 -6.2188,6.2188 0,1.71709 0.694894,3.26802 1.8178,4.39596l0.00503546 0c1.12291,1.12794 2.67887,1.82284 4.39596,1.82284l0 0c4.14419,0 7.90064,1.68184 10.6198,4.401l0 0c2.71412,2.71915 4.39596,6.47057 4.39596,10.6148 0,8.29341 -6.72234,15.0158 -15.0158,15.0158 -8.29341,0 -15.0158,-6.72234 -15.0158,-15.0158l8.79696 0c0,3.43419 2.78461,6.22383 6.2188,6.22383 3.43419,0 6.2188,-2.78965 6.2188,-6.22383 0,-1.71206 -0.694894,-3.26802 -1.8178,-4.39092l0 0c-1.12794,-1.12794 -2.6839,-1.82284 -4.401,-1.82284l0 -0.00503546c-4.14419,0 -7.90064,-1.68184 -10.6148,-4.39596l-0.00503546 0z"/>
+ </g>
+ <path class="fil1" d="M347.482 1293.46c5.14624,0 9.35086,-4.18447 9.38107,-9.32568 3.65575,3.61546 9.58752,3.60036 13.2282,-0.0402837 3.64064,-3.64064 3.65071,-9.57745 0.0352482,-13.2332 5.14121,-0.0251773 9.32568,-4.22475 9.32568,-9.371 0,-5.15128 -4.18951,-9.35589 -9.34079,-9.37603 3.63057,-3.65071 3.6205,-9.58752 -0.0201419,-13.2332 -3.64064,-3.64064 -9.57242,-3.65071 -13.2282,-0.0302128 -0.0251773,-5.14624 -4.22979,-9.33071 -9.38107,-9.33071 -5.14624,0 -9.35086,4.17944 -9.38107,9.32064 -3.65575,-3.61043 -9.58752,-3.60036 -13.2282,0.0402837 -3.64064,3.64064 -3.65071,9.56738 -0.0402837,13.2282 -5.14121,0.0302128 -9.32568,4.22979 -9.32568,9.38107 0,5.14624 4.18447,9.34582 9.32568,9.38107 -3.61043,3.65575 -3.60036,9.58249 0.0402837,13.2231 3.64064,3.64064 9.56738,3.65575 13.2282,0.0453192 0.0302128,5.13617 4.23483,9.32064 9.38107,9.32064zm-3.56511 -23.3494c0,0 -0.00503546,-0.00503546 -0.0100709,-0.00503546l0.00503546 0.00503546 0.00503546 0zm-0.00503546 0.00503546l-7.36185 7.35681c0,1.28908 -0.493475,2.57816 -1.47539,3.55504 -1.96383,1.96383 -5.17142,1.96383 -7.13525,0 -1.96383,-1.96383 -1.96383,-5.17142 0,-7.13525 0.981915,-0.981915 2.27603,-1.47539 3.56511,-1.47539l7.35681 -7.35681c0,0 0,0 0,-0.00503546l0 0.00503546 -10.4083 0c-0.916454,0.911419 -2.17532,1.47539 -3.56007,1.47539 -2.77958,0 -5.04553,-2.26596 -5.04553,-5.04553 0,-2.77958 2.26596,-5.04553 5.04553,-5.04553 1.38475,0 2.64865,0.563972 3.56007,1.47539l10.4083 0 -7.36185 -7.36185c-1.28908,0 -2.57816,-0.493475 -3.56007,-1.47539 -1.96383,-1.96383 -1.96383,-5.17142 0,-7.13525 1.96383,-1.96383 5.17142,-1.96383 7.13525,0 0.981915,0.981915 1.47539,2.27099 1.47539,3.56007l7.36185 7.35681 0 -10.4033c-0.911419,-0.916454 -1.47539,-2.17532 -1.47539,-3.56007 0,-2.77958 2.26596,-5.04553 5.04553,-5.04553 2.77958,0 5.04553,2.26596 5.04553,5.04553 0,1.38475 -0.563972,2.64362 -1.47036,3.55504l0 10.4133 -0.0100709 0c0.00503546,0 0.00503546,0 0.0100709,0l7.35681 -7.35681c0,-1.28908 0.48844,-2.58319 1.47036,-3.56511 1.96887,-1.96383 5.17142,-1.96383 7.14029,0 1.96383,1.96383 1.96383,5.17142 0,7.13525 -0.981915,0.981915 -2.27099,1.47539 -3.56007,1.47539l-7.36185 7.36185 10.4083 0c0.911419,-0.911419 2.17532,-1.47539 3.56007,-1.47539 2.77958,0 5.04553,2.26596 5.04553,5.04553 0,2.77958 -2.26596,5.04553 -5.04553,5.04553 -1.38475,0 -2.64865,-0.563972 -3.56007,-1.47539l-10.4083 0c0,0.00503546 -0.00503546,0.0100709 -0.00503546,0.0151064l0.0100709 -0.0151064 7.35681 7.35681c1.28908,0.00503546 2.57816,0.493475 3.56007,1.47539 1.96383,1.96383 1.96383,5.17142 0,7.13525 -1.96887,1.96383 -5.17142,1.96383 -7.14029,0 -0.97688,-0.97688 -1.47036,-2.26596 -1.47036,-3.55504l-7.35681 -7.35681 0.0100709 -0.0151064c-0.00503546,0.00503546 -0.0151064,0.00503546 -0.0201419,0.0100709l0.0100709 0 0 10.4083c0.906384,0.911419 1.47036,2.17029 1.47036,3.55504 0,2.77958 -2.26596,5.05057 -5.04553,5.05057 -2.77958,0 -5.04553,-2.27099 -5.04553,-5.05057 0,-1.38475 0.563972,-2.64362 1.47539,-3.55504l0 -10.4033zm0 -17.2465l0 0c0,0 0.00503546,0 0.00503546,0l-0.00503546 0z"/>
+ <path class="fil4" d="M347.482 1420.75c5.14624,0 9.35086,-4.18447 9.38107,-9.32568 3.65575,3.61546 9.58752,3.60036 13.2282,-0.0402837 3.64064,-3.64064 3.65071,-9.57745 0.0352482,-13.2332 5.14121,-0.0251773 9.32568,-4.22475 9.32568,-9.371 0,-5.15128 -4.18951,-9.35589 -9.34079,-9.37603 3.63057,-3.65071 3.6205,-9.58752 -0.0201419,-13.2332 -3.64064,-3.64064 -9.57242,-3.65071 -13.2282,-0.0302128 -0.0251773,-5.14624 -4.22979,-9.33071 -9.38107,-9.33071 -5.14624,0 -9.35086,4.17944 -9.38107,9.32064 -3.65575,-3.61043 -9.58752,-3.60036 -13.2282,0.0402837 -3.64064,3.64064 -3.65071,9.56738 -0.0402837,13.2282 -5.14121,0.0302128 -9.32568,4.22979 -9.32568,9.38107 0,5.14624 4.18447,9.34582 9.32568,9.38107 -3.61043,3.65575 -3.60036,9.58249 0.0402837,13.2231 3.64064,3.64064 9.56738,3.65575 13.2282,0.0453192 0.0302128,5.13617 4.23483,9.32064 9.38107,9.32064zm-3.56511 -23.3494c0,0 -0.00503546,-0.00503546 -0.0100709,-0.00503546l0.00503546 0.00503546 0.00503546 0zm-0.00503546 0.00503546l-7.36185 7.35681c0,1.28908 -0.493475,2.57816 -1.47539,3.55504 -1.96383,1.96383 -5.17142,1.96383 -7.13525,0 -1.96383,-1.96383 -1.96383,-5.17142 0,-7.13525 0.981915,-0.981915 2.27603,-1.47539 3.56511,-1.47539l7.35681 -7.35681c0,0 0,0 0,-0.00503546l0 0.00503546 -10.4083 0c-0.916454,0.911419 -2.17532,1.47539 -3.56007,1.47539 -2.77958,0 -5.04553,-2.26596 -5.04553,-5.04553 0,-2.77958 2.26596,-5.04553 5.04553,-5.04553 1.38475,0 2.64865,0.563972 3.56007,1.47539l10.4083 0 -7.36185 -7.36185c-1.28908,0 -2.57816,-0.493475 -3.56007,-1.47539 -1.96383,-1.96383 -1.96383,-5.17142 0,-7.13525 1.96383,-1.96383 5.17142,-1.96383 7.13525,0 0.981915,0.981915 1.47539,2.27099 1.47539,3.56007l7.36185 7.35681 0 -10.4033c-0.911419,-0.916454 -1.47539,-2.17532 -1.47539,-3.56007 0,-2.77958 2.26596,-5.04553 5.04553,-5.04553 2.77958,0 5.04553,2.26596 5.04553,5.04553 0,1.38475 -0.563972,2.64362 -1.47036,3.55504l0 10.4133 -0.0100709 0c0.00503546,0 0.00503546,0 0.0100709,0l7.35681 -7.35681c0,-1.28908 0.48844,-2.58319 1.47036,-3.56511 1.96887,-1.96383 5.17142,-1.96383 7.14029,0 1.96383,1.96383 1.96383,5.17142 0,7.13525 -0.981915,0.981915 -2.27099,1.47539 -3.56007,1.47539l-7.36185 7.36185 10.4083 0c0.911419,-0.911419 2.17532,-1.47539 3.56007,-1.47539 2.77958,0 5.04553,2.26596 5.04553,5.04553 0,2.77958 -2.26596,5.04553 -5.04553,5.04553 -1.38475,0 -2.64865,-0.563972 -3.56007,-1.47539l-10.4083 0c0,0.00503546 -0.00503546,0.0100709 -0.00503546,0.0151064l0.0100709 -0.0151064 7.35681 7.35681c1.28908,0.00503546 2.57816,0.493475 3.56007,1.47539 1.96383,1.96383 1.96383,5.17142 0,7.13525 -1.96887,1.96383 -5.17142,1.96383 -7.14029,0 -0.97688,-0.97688 -1.47036,-2.26596 -1.47036,-3.55504l-7.35681 -7.35681 0.0100709 -0.0151064c-0.00503546,0.00503546 -0.0151064,0.00503546 -0.0201419,0.0100709l0.0100709 0 0 10.4083c0.906384,0.911419 1.47036,2.17029 1.47036,3.55504 0,2.77958 -2.26596,5.05057 -5.04553,5.05057 -2.77958,0 -5.04553,-2.27099 -5.04553,-5.05057 0,-1.38475 0.563972,-2.64362 1.47539,-3.55504l0 -10.4033zm0 -17.2465l0 0c0,0 0.00503546,0 0.00503546,0l-0.00503546 0z"/>
+ <g id="_150854688">
+ <path id="_151103312" class="fil1" d="M631.951 1250.63c5.84114,0 11.0428,2.81986 14.3158,7.16547l-4.85419 0c-2.5278,-2.23071 -5.84114,-3.58525 -9.46164,-3.58525 -7.89057,0 -14.3309,6.44036 -14.3309,14.3309 0,7.89057 6.44036,14.3309 14.3309,14.3309 3.6205,0 6.93383,-1.35454 9.46164,-3.58525l4.85419 0c-3.27305,4.34561 -8.47469,7.16547 -14.3158,7.16547 -9.86447,0 -17.9111,-8.04667 -17.9111,-17.9111 0,-9.86447 8.04667,-17.9111 17.9111,-17.9111z"/>
+ <path id="_151068328" class="fil1" d="M549.55 1286.46c-9.86447,0 -17.9111,-8.04667 -17.9111,-17.9111 0,-9.86447 8.04667,-17.9111 17.9111,-17.9111 5.85121,0 11.0579,2.8249 14.3309,7.18561l0 -3.60539 3.58525 0 0 14.3309 0 17.9111 -3.58525 0 0 -7.18561c-3.27305,4.35568 -8.47972,7.18561 -14.3309,7.18561zm0 -3.58021c-7.89057,0 -14.3259,-6.44036 -14.3259,-14.3309 0,-7.89057 6.43532,-14.3309 14.3259,-14.3309 7.89561,0 14.3309,6.44036 14.3309,14.3309 0,7.89057 -6.43532,14.3309 -14.3309,14.3309z"/>
+ <path id="_151067944" class="fil1" d="M510.143 1250.63c9.86951,0 17.9162,8.04667 17.9162,17.9111 0,9.86447 -8.04667,17.9111 -17.9162,17.9111 -5.84617,0 -11.0579,-2.82993 -14.3309,-7.18561l0 7.18561 -3.58021 0 0 -17.9111 0 -32.2421 3.58021 0 0 21.5165c3.27305,-4.36071 8.48476,-7.18561 14.3309,-7.18561zm0 32.2421c-7.89057,0 -14.3309,-6.44036 -14.3309,-14.3309 0,-7.89057 6.44036,-14.3309 14.3309,-14.3309 7.89561,0 14.3309,6.44036 14.3309,14.3309 0,7.89057 -6.43532,14.3309 -14.3309,14.3309z"/>
+ <path id="_151067336" class="fil1" d="M603.289 1250.63l3.58525 0 0 35.8223 -3.58525 0 0 -35.8223zm0 -10.7457l3.58525 0 0 3.58021 -3.58525 0 0 -3.58021z"/>
+ <path id="_151066472" class="fil1" d="M585.378 1286.46c5.92171,0 10.7457,-4.82901 10.7457,-10.7457 0,-5.92171 -4.82397,-10.7457 -10.7457,-10.7457 -2.96085,0 -5.37284,-2.41702 -5.37284,-5.37788 0,-2.95582 2.41199,-5.37284 5.37284,-5.37284 2.96085,0 5.37284,2.41702 5.37284,5.37284l3.58525 0c0,-4.92972 -4.02334,-8.95306 -8.95809,-8.95306 -4.93475,0 -8.95809,4.02334 -8.95809,8.95306 0,4.93475 4.02334,8.95809 8.95809,8.95809 3.9478,0 7.16547,3.21766 7.16547,7.16547 0,3.94277 -3.21766,7.16547 -7.16547,7.16547 -3.9478,0 -7.16547,-3.2227 -7.16547,-7.16547l-3.58021 0c0,5.91667 4.82397,10.7457 10.7457,10.7457z"/>
+ </g>
+ <g id="_151251240">
+ <path id="_150854424" class="fil4" d="M631.951 1377.92c5.84114,0 11.0428,2.81986 14.3158,7.16547l-4.85419 0c-2.5278,-2.23071 -5.84114,-3.58525 -9.46164,-3.58525 -7.89057,0 -14.3309,6.44036 -14.3309,14.3309 0,7.89057 6.44036,14.3309 14.3309,14.3309 3.6205,0 6.93383,-1.35454 9.46164,-3.58525l4.85419 0c-3.27305,4.34561 -8.47469,7.16547 -14.3158,7.16547 -9.86447,0 -17.9111,-8.04667 -17.9111,-17.9111 0,-9.86447 8.04667,-17.9111 17.9111,-17.9111z"/>
+ <path id="_150853624" class="fil4" d="M549.55 1413.74c-9.86447,0 -17.9111,-8.04667 -17.9111,-17.9111 0,-9.86447 8.04667,-17.9111 17.9111,-17.9111 5.85121,0 11.0579,2.8249 14.3309,7.18561l0 -3.60539 3.58525 0 0 14.3309 0 17.9111 -3.58525 0 0 -7.18561c-3.27305,4.35568 -8.47972,7.18561 -14.3309,7.18561zm0 -3.58021c-7.89057,0 -14.3259,-6.44036 -14.3259,-14.3309 0,-7.89057 6.43532,-14.3309 14.3259,-14.3309 7.89561,0 14.3309,6.44036 14.3309,14.3309 0,7.89057 -6.43532,14.3309 -14.3309,14.3309z"/>
+ <path id="_150852824" class="fil4" d="M510.143 1377.92c9.86951,0 17.9162,8.04667 17.9162,17.9111 0,9.86447 -8.04667,17.9111 -17.9162,17.9111 -5.84617,0 -11.0579,-2.82993 -14.3309,-7.18561l0 7.18561 -3.58021 0 0 -17.9111 0 -32.2421 3.58021 0 0 21.5165c3.27305,-4.36071 8.48476,-7.18561 14.3309,-7.18561zm0 32.2421c-7.89057,0 -14.3309,-6.44036 -14.3309,-14.3309 0,-7.89057 6.44036,-14.3309 14.3309,-14.3309 7.89561,0 14.3309,6.44036 14.3309,14.3309 0,7.89057 -6.43532,14.3309 -14.3309,14.3309z"/>
+ <path id="_150852232" class="fil4" d="M603.289 1377.92l3.58525 0 0 35.8223 -3.58525 0 0 -35.8223zm0 -10.7457l3.58525 0 0 3.58021 -3.58525 0 0 -3.58021z"/>
+ <path id="_151196008" class="fil4" d="M585.378 1413.74c5.92171,0 10.7457,-4.82901 10.7457,-10.7457 0,-5.92171 -4.82397,-10.7457 -10.7457,-10.7457 -2.96085,0 -5.37284,-2.41702 -5.37284,-5.37788 0,-2.95582 2.41199,-5.37284 5.37284,-5.37284 2.96085,0 5.37284,2.41702 5.37284,5.37284l3.58525 0c0,-4.92972 -4.02334,-8.95306 -8.95809,-8.95306 -4.93475,0 -8.95809,4.02334 -8.95809,8.95306 0,4.93475 4.02334,8.95809 8.95809,8.95809 3.9478,0 7.16547,3.21766 7.16547,7.16547 0,3.94277 -3.21766,7.16547 -7.16547,7.16547 -3.9478,0 -7.16547,-3.2227 -7.16547,-7.16547l-3.58021 0c0,5.91667 4.82397,10.7457 10.7457,10.7457z"/>
+ </g>
+ <path class="fil1" d="M367.564 1497.52c0,-6.89355 -5.5944,-12.4829 -12.488,-12.4829 -6.89355,0 -12.488,5.58937 -12.488,12.4829 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0 -4.87433,4.87936 -4.87433,12.785 0,17.6594 -6.89355,0 -12.488,5.5944 -12.488,12.488 0,6.89355 5.5944,12.488 12.488,12.488 -4.87433,4.87433 -4.87433,12.78 0,17.6594 4.87433,4.87433 12.785,4.87433 17.6594,0 0,6.89355 5.5944,12.4829 12.488,12.4829 6.89355,0 12.488,-5.58937 12.488,-12.4829 4.87433,4.87433 12.785,4.87433 17.6594,0 4.87433,-4.87936 4.87433,-12.785 0,-17.6594 6.89355,0 12.488,-5.5944 12.488,-12.488 0,-6.89355 -5.5944,-12.488 -12.488,-12.488 4.87433,-4.87433 4.87433,-12.78 0,-17.6594 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0z"/>
+ <path class="fil4" d="M359.854 1502.31l0 13.8274 9.77887 -9.77887c0,-1.7322 0.659646,-3.45936 1.97894,-4.77866 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 2.63858,2.63858 2.63858,6.91873 0,9.55731 -1.31929,1.31929 -3.05149,1.97894 -4.77866,1.97894l-9.77887 9.77887 13.8274 0c1.22362,-1.22362 2.9105,-1.97894 4.77866,-1.97894 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -1.86816,0 -3.55504,-0.75532 -4.77866,-1.97894l-13.8274 0 9.77887 9.77887c1.72716,0 3.45936,0.659646 4.77866,1.97894 2.63858,2.63858 2.63858,6.91873 0,9.55731 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -1.31929,-1.31929 -1.97894,-3.04646 -1.97894,-4.77866l-9.77887 -9.77887 0 13.8274c1.22362,1.22362 1.97894,2.91553 1.97894,4.78369 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-1.86816 0.75532,-3.56007 1.97894,-4.78369l0 -13.8274 -9.77887 9.77887c0,1.7322 -0.659646,3.45936 -1.97894,4.77866 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 1.31929,-1.31929 3.05149,-1.97894 4.77866,-1.97894l9.77887 -9.77887 -13.8274 0c-1.22362,1.22362 -2.9105,1.97894 -4.77866,1.97894 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 1.86816,0 3.55504,0.75532 4.77866,1.97894l13.8274 0 -9.77887 -9.77887c-1.72716,0 -3.45936,-0.659646 -4.77866,-1.97894 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 1.31929,1.31929 1.97894,3.04646 1.97894,4.77866l9.77887 9.77887 0 -13.8274c-1.22362,-1.22362 -1.97894,-2.91553 -1.97894,-4.78369 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,1.86816 -0.75532,3.56007 -1.97894,4.78369z"/>
+ <path class="fil4" d="M359.854 1502.31l0 13.8274 9.77887 -9.77887c0,-1.7322 0.659646,-3.45936 1.97894,-4.77866 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 2.63858,2.63858 2.63858,6.91873 0,9.55731 -1.31929,1.31929 -3.05149,1.97894 -4.77866,1.97894l-9.77887 9.77887 13.8274 0c1.22362,-1.22362 2.9105,-1.97894 4.77866,-1.97894 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -1.86816,0 -3.55504,-0.75532 -4.77866,-1.97894l-13.8274 0 9.77887 9.77887c1.72716,0 3.45936,0.659646 4.77866,1.97894 2.63858,2.63858 2.63858,6.91873 0,9.55731 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -1.31929,-1.31929 -1.97894,-3.04646 -1.97894,-4.77866l-9.77887 -9.77887 0 13.8274c1.22362,1.22362 1.97894,2.91553 1.97894,4.78369 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-1.86816 0.75532,-3.56007 1.97894,-4.78369l0 -13.8274 -9.77887 9.77887c0,1.7322 -0.659646,3.45936 -1.97894,4.77866 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 1.31929,-1.31929 3.05149,-1.97894 4.77866,-1.97894l9.77887 -9.77887 -13.8274 0c-1.22362,1.22362 -2.9105,1.97894 -4.77866,1.97894 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 1.86816,0 3.55504,0.75532 4.77866,1.97894l13.8274 0 -9.77887 -9.77887c-1.72716,0 -3.45936,-0.659646 -4.77866,-1.97894 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 1.31929,1.31929 1.97894,3.04646 1.97894,4.77866l9.77887 9.77887 0 -13.8274c-1.22362,-1.22362 -1.97894,-2.91553 -1.97894,-4.78369 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,1.86816 -0.75532,3.56007 -1.97894,4.78369z"/>
+ <rect class="fil1" x="312.443" y="1527.74" width="85.2619" height="42.5571"/>
+ <g id="_151074408">
+ <polygon id="_151683184" class="fil4 str4" points="366.139,1530.54 358.263,1568.55 351.742,1568.55 343.867,1530.54 350.393,1530.54 355,1552.8 359.613,1530.54 "/>
+ <path id="_151682288" class="fil4 str4" d="M377.272 1546.29l11.1384 0 0 11.1334 0 0c0,6.1483 -4.98511,11.1334 -11.1384,11.1334 -6.1483,0 -11.1334,-4.98511 -11.1334,-11.1334l0 0 0 -15.7459 0 0c0,-6.1483 4.98511,-11.1334 11.1334,-11.1334 6.1483,0 11.1384,4.98511 11.1384,11.1334l-6.52596 0c0,-2.54794 -2.06454,-4.61249 -4.61249,-4.61249 -2.54291,0 -4.60745,2.06454 -4.60745,4.61249l0 15.7459 0 0c0,2.54291 2.06454,4.60745 4.60745,4.60745 2.54794,0 4.61249,-2.0595 4.61249,-4.60745l0 0 0 -4.60745 -4.61249 0 0 -6.52596z"/>
+ <path id="_151681240" class="fil4 str4" d="M324.858 1549.54c-2.01419,-2.01419 -3.26298,-4.7988 -3.26298,-7.87043 0,-6.1483 4.98511,-11.1334 11.1384,-11.1334 6.1483,0 11.1334,4.98511 11.1334,11.1334l-6.52596 0c0,-2.54794 -2.06454,-4.61249 -4.60745,-4.61249 -2.54794,0 -4.61249,2.06454 -4.61249,4.61249 0,1.27397 0.513617,2.42206 1.34447,3.25795l0.00503546 0c0.835887,0.835887 1.98901,1.3495 3.26298,1.3495l0 0.00503546c3.07163,0 5.85624,1.24376 7.87043,3.26298l0 0c2.01419,2.01419 3.26298,4.79376 3.26298,7.87043 0,6.1483 -4.98511,11.1334 -11.1334,11.1334 -6.15334,0 -11.1384,-4.98511 -11.1384,-11.1334l6.52596 0c0,2.54794 2.06454,4.61249 4.61249,4.61249 2.54291,0 4.60745,-2.06454 4.60745,-4.61249 0,-1.27397 -0.513617,-2.42206 -1.34447,-3.25795l-0.00503546 0c-0.835887,-0.835887 -1.98901,-1.35454 -3.25795,-1.35454l0 0c-3.07667,0 -5.86128,-1.2488 -7.87547,-3.26298l0 0z"/>
+ </g>
+ <g id="_150729856">
+ <rect id="_150808160" class="fil8" x="315.485" y="833.248" width="375.173" height="132.161"/>
+ <path id="_150807656" class="fil10" d="M390.717 863.557c67.9989,-8.15242 112.205,35.5353 173.356,44.6696 44.4329,6.63674 85.8949,-0.140993 126.587,-10.791l0 67.9737 -375.172 0 0 -92.6223 75.2298 -9.23001z"/>
+ <path id="_150807032" class="fil2" d="M457.633 965.409l-142.146 0 0 -59.5746c57.4899,-4.16433 142.196,16.4106 142.196,58.2502 0,0.443121 -0.0251773,0.881206 -0.0503546,1.32433z"/>
+ <path id="_150806648" class="fil10" d="M463.227 965.409l-147.741 0 0 -61.4528 4.24993 -0.307163 0 57.3993 139.276 0c0.156099,1.03731 4.23986,3.9478 4.21468,4.36071z"/>
+ <path id="_150812520" class="fil9" d="M465.498 961.049c-6.16844,-7.92582 -9.86447,-17.8658 -9.86447,-28.682 0,-12.9009 5.23185,-24.5831 13.6864,-33.0377l0 -0.00503546c8.45454,-8.45958 13.6864,-20.1368 13.6864,-33.0377 0,-10.8464 -3.68596,-20.8468 -9.89469,-28.7777l213.282 0 0 123.54 -220.896 0z"/>
+ <path id="_150812256" class="fil4" d="M465.498 961.049c-6.16844,-7.92582 -9.86447,-17.8658 -9.86447,-28.682 0,-12.9009 5.23185,-24.5831 13.6864,-33.0377l0 -0.00503546c5.3678,-5.37284 9.42135,-12.0247 11.6772,-19.4772 26.8239,10.9572 52.3789,29.0697 82.5564,33.5765 42.877,6.40007 83.5182,-4.85419 122.84,-14.8546l0 62.48 -220.896 0z"/>
+ <g>
+ <path id="_150811872" class="fil1" d="M315.487 897.415l0 0c6.48568,0 11.7477,-5.2671 11.7477,-11.7528 0,-3.24787 -1.31426,-6.18355 -3.43922,-8.30852l0 -24.0443 16.9997 16.9997c0,3.00617 1.14809,6.01738 3.43922,8.30852 2.29617,2.29617 5.30234,3.44426 8.31355,3.44426l0 0c3.00617,0 6.01234,-1.14809 8.30852,-3.44426 2.29114,-2.29114 3.43922,-5.30234 3.43922,-8.30852l16.9997 -16.9997 0 24.0443c-2.12497,2.12497 -3.43922,5.06064 -3.43922,8.30852 0,6.48568 5.26206,11.7528 11.7528,11.7528 6.48568,0 11.7528,-5.2671 11.7528,-11.7528 0,-3.24787 -1.31929,-6.18355 -3.44426,-8.30852l0 -24.0443 16.9997 16.9997c0,3.00617 1.14809,6.01738 3.44426,8.30852 4.58731,4.59234 12.0297,4.59234 16.617,0 4.58731,-4.58731 4.58731,-12.0297 0,-16.617 -2.29617,-2.29617 -5.30234,-3.44426 -8.30852,-3.44426l-16.9997 -16.9997 24.0393 0c2.13,2.13 5.06568,3.44426 8.30852,3.44426 6.49071,0 11.7528,-5.26206 11.7528,-11.7528l0 0 -138.284 0 0 64.1669zm37.061 -38.8587l-16.9997 -16.9997 16.9997 0 0 0 16.9997 0 -16.9997 16.9997z"/>
+ <path id="_150810488" class="fil4" d="M315.487 907.37l0 0c11.9844,0 21.7079,-9.72348 21.7079,-21.7079 4.23986,4.23483 9.79398,6.35476 15.3531,6.35476l0 0c5.55412,0 11.1082,-2.11993 15.3481,-6.35476 0,11.9844 9.72348,21.7079 21.7129,21.7079 11.9844,0 21.7079,-9.72348 21.7079,-21.7079 8.47972,8.47469 22.2265,8.47469 30.7012,0 8.47972,-8.47972 8.47972,-22.2265 0,-30.7063 11.9894,0 21.7129,-9.71845 21.7129,-21.7079l-9.96015 0 0 0c0,6.49071 -5.26206,11.7528 -11.7528,11.7528 -3.24284,0 -6.17851,-1.31426 -8.30852,-3.44426l-24.0393 0 16.9997 16.9997c3.00617,0 6.01234,1.14809 8.30852,3.44426 4.58731,4.58731 4.58731,12.0297 0,16.617 -4.58731,4.59234 -12.0297,4.59234 -16.617,0 -2.29617,-2.29114 -3.44426,-5.30234 -3.44426,-8.30852l-16.9997 -16.9997 0 24.0443c2.12497,2.12497 3.44426,5.06064 3.44426,8.30852 0,6.48568 -5.2671,11.7528 -11.7528,11.7528 -6.49071,0 -11.7528,-5.2671 -11.7528,-11.7528 0,-3.24787 1.31426,-6.18355 3.43922,-8.30852l0 -24.0443 -16.9997 16.9997c0,3.00617 -1.14809,6.01738 -3.43922,8.30852 -2.29617,2.29617 -5.30234,3.44426 -8.30852,3.44426l0 0c-3.01121,0 -6.01738,-1.14809 -8.31355,-3.44426 -2.29114,-2.29114 -3.43922,-5.30234 -3.43922,-8.30852l-16.9997 -16.9997 0 24.0443c2.12497,2.12497 3.43922,5.06064 3.43922,8.30852 0,6.48568 -5.26206,11.7528 -11.7477,11.7528l0 0 0 9.95511zm37.061 -48.8138l-16.9997 -16.9997 16.9997 0 0 0 16.9997 0 -16.9997 16.9997z"/>
+ </g>
+ <g>
+ <path id="_151165912" class="fil4" d="M378.294 936.672l10.5745 0 0 10.5745 0.00503546 0c0,5.84114 -4.73837,10.5745 -10.5795,10.5745 -5.8361,0 -10.5745,-4.73334 -10.5745,-10.5745l0 0 0 -14.9503 0 0c0,-5.84114 4.73334,-10.5795 10.5745,-10.5795 5.84114,0 10.5745,4.73837 10.5745,10.5795l-6.19362 0c0,-2.42206 -1.96383,-4.38085 -4.38085,-4.38085 -2.41702,0 -4.37582,1.9588 -4.37582,4.38085l0 14.9503 0 0c0,2.41702 1.9588,4.37582 4.37582,4.37582 2.41702,0 4.38085,-1.9588 4.38085,-4.37582l0 0 0 -4.37582 -4.38085 0 0 -6.19866z"/>
+ <path id="_151048128" class="fil4" d="M328.524 939.769c-1.91851,-1.91348 -3.10185,-4.55709 -3.10185,-7.47766 0,-5.8361 4.73837,-10.5745 10.5745,-10.5745 5.84114,0 10.5745,4.73837 10.5745,10.5745l-6.19362 0c0,-2.41702 -1.9588,-4.37582 -4.38085,-4.37582 -2.41702,0 -4.38085,1.9588 -4.38085,4.37582 0,1.20851 0.493475,2.30624 1.28404,3.09681l0 0c0.795603,0.790568 1.8883,1.28404 3.09681,1.28404l0 0c2.92057,0 5.56419,1.18333 7.47766,3.09681l0 0c1.91348,1.91348 3.09681,4.55709 3.09681,7.47766 0,5.84114 -4.73334,10.5745 -10.5745,10.5745 -5.8361,0 -10.5745,-4.73334 -10.5745,-10.5745l6.19362 0c0,2.41702 1.96383,4.38085 4.38085,4.38085 2.42206,0 4.38085,-1.96383 4.38085,-4.38085 0,-1.20851 -0.48844,-2.30121 -1.27901,-3.09177l-0.00503546 0c-0.790568,-0.795603 -1.8883,-1.28404 -3.09681,-1.28404l0 -0.00503546c-2.91553,0 -5.55915,-1.18333 -7.47263,-3.09681l0 0z"/>
+ <polygon id="_151047728" class="fil4" points="367.72,921.717 360.242,957.821 354.049,957.821 346.571,921.717 352.77,921.717 357.145,942.865 361.526,921.717 "/>
+ <path id="_151047344" class="fil4" d="M401.634 927.004l0 5.28724 5.28724 0 0 25.5298 6.19362 0 0 -36.1043 -6.19362 0c0,2.92057 -2.36667,5.28724 -5.28724,5.28724z"/>
+ <rect id="_151046632" class="fil4" x="416.212" y="951.627" width="6.19418" height="6.19417"/>
+ <path id="_151149088" class="fil4" d="M431.705 951.627l14.9503 0 0 6.19362 -21.1489 0 0 -6.19362 0 -2.82993c0,-5.84114 4.73837,-10.5745 10.5745,-10.5745l0 0c2.42206,0 4.38085,-1.96383 4.38085,-4.38085l0 0 0 -1.55092c0,-2.41702 -1.9588,-4.37582 -4.38085,-4.37582 -2.41702,0 -4.37582,1.9588 -4.37582,4.37582l-6.19866 0c0,-5.8361 4.73837,-10.5745 10.5745,-10.5745 5.84114,0 10.5745,4.73837 10.5745,10.5745l0 1.55092 0 0c0,5.8361 -4.73334,10.5745 -10.5745,10.5745l0 0c-2.41702,0 -4.37582,1.9588 -4.37582,4.38085l0 2.82993z"/>
+ </g>
+ <path id="_151148120" class="fil12" d="M315.487 897.415l0 0c1.49553,0 2.93064,-0.281986 4.24993,-0.795603l0 -59.1113 133.238 0c0.513617,-1.32433 0.795603,-2.75943 0.795603,-4.26l0 0 -138.284 0 0 64.1669z"/>
+ <path id="_151147408" class="fil9" d="M315.487 907.37l0 0c1.45021,0 2.87525,-0.146028 4.24993,-0.417944l0 -10.3328c-1.31929,0.513617 -2.7544,0.795603 -4.24993,0.795603l0 0 0 9.95511zm147.826 -69.862c0.271915,-1.37972 0.417944,-2.80475 0.417944,-4.26l-9.96015 0 0 0c0,1.50057 -0.281986,2.93568 -0.795603,4.26l10.3378 0z"/>
+ <g>
+ <g>
+ <path id="_150824016" class="fil1" d="M643.779 870.697c-5.54908,0 -10.0709,4.52688 -10.0709,10.076 0,5.54908 4.52185,10.0709 10.0709,10.0709 5.54908,0 10.0709,-4.52185 10.0709,-10.0709 0,-5.54908 -4.52185,-10.076 -10.0709,-10.076zm0 2.01419c4.43624,0 8.05674,3.6205 8.05674,8.06178 0,4.43624 -3.6205,8.05674 -8.05674,8.05674 -4.43624,0 -8.05674,-3.6205 -8.05674,-8.05674 0,-4.44128 3.6205,-8.06178 8.05674,-8.06178z"/>
+ <path id="_150823216" class="fil1" d="M597.342 890.577c-5.54908,0 -10.076,-4.52688 -10.076,-10.076 0,-5.54908 4.52688,-10.0709 10.076,-10.0709 3.28816,0 6.21376,1.59121 8.05674,4.03844l0 -2.02426 2.01419 0 0 8.05674 0 10.076 -2.01419 0 0 -4.04348c-1.84298,2.45227 -4.76858,4.04348 -8.05674,4.04348zm0 -2.01419c-4.44128,0 -8.06178,-3.6205 -8.06178,-8.06178 0,-4.43624 3.6205,-8.05674 8.06178,-8.05674 4.43624,0 8.05674,3.6205 8.05674,8.05674 0,4.44128 -3.6205,8.06178 -8.05674,8.06178z"/>
+ <path id="_150822432" class="fil1" d="M502.665 890.411c-5.54405,0 -10.0709,-4.52185 -10.0709,-10.0709 0,-5.54908 4.52688,-10.0709 10.0709,-10.0709 3.28816,0 6.2188,1.58617 8.06178,4.03844l0 -2.02426 2.01419 0 0 8.05674 0 10.0709 -2.01419 0 0 -4.03844c-1.84298,2.45227 -4.77362,4.03844 -8.06178,4.03844zm0 -2.01419c-4.43624,0 -8.05674,-3.6205 -8.05674,-8.05674 0,-4.43624 3.6205,-8.05674 8.05674,-8.05674 4.44128,0 8.06178,3.6205 8.06178,8.05674 0,4.43624 -3.6205,8.05674 -8.06178,8.05674z"/>
+ <path id="_151121616" class="fil1" d="M627.56 870.43l2.01419 0 0 20.1469 -2.01419 0 0 -20.1469zm0 -6.04256l2.01419 0 0 2.01419 -2.01419 0 0 -2.01419z"/>
+ <path id="_151120872" class="fil1" d="M544.963 870.43l2.01419 0 0 20.1469 -2.01419 0 0 -20.1469zm0 -6.04256l2.01419 0 0 2.01419 -2.01419 0 0 -2.01419z"/>
+ <path id="_151120488" class="fil1" d="M581.223 878.487l0 12.0901 2.01419 0 0 -12.0901c0,-4.43624 -3.6205,-8.05674 -8.05674,-8.05674 -3.02631,0 -5.67497,1.68688 -7.04965,4.16433 -1.37972,-2.47745 -4.02334,-4.16433 -7.05469,-4.16433 -2.40192,0 -4.56213,1.06248 -6.04256,2.73929l0 -2.73929 -2.01419 0 0 8.05674 0 12.0901 2.01419 0 0 -12.0901c0,-3.32844 2.71412,-6.04256 6.04256,-6.04256 3.33348,0 6.04759,2.71412 6.04759,6.04256l0 12.0901 2.01419 0 0 -12.0901c0,-3.32844 2.71412,-6.04256 6.04256,-6.04256 3.32844,0 6.04256,2.71412 6.04256,6.04256z"/>
+ <path id="_150664056" class="fil1" d="M677.919 880.501l0 10.076 -2.01419 0 0 -10.076c0,-4.43624 -3.6205,-8.05674 -8.05674,-8.05674 -4.43624,0 -8.05674,3.6205 -8.05674,8.05674l0 10.076 -2.01419 0 0 -10.076 0 -10.0709 2.01419 0 0 4.03844c1.83794,-2.44724 4.76858,-4.03844 8.05674,-4.03844 5.54908,0 10.0709,4.52185 10.0709,10.0709z"/>
+ <path id="_150663672" class="fil1" d="M538.921 880.501l0 10.076 -2.01419 0 0 -10.076c0,-4.43624 -3.6205,-8.05674 -8.06178,-8.05674 -4.43624,0 -8.05674,3.6205 -8.05674,8.05674l0 10.076 -2.01419 0 0 -10.076 0 -10.0709 2.01419 0 0 4.03844c1.84298,-2.44724 4.76858,-4.03844 8.05674,-4.03844 5.54908,0 10.076,4.52185 10.076,10.0709z"/>
+ <path id="_150663032" class="fil1" d="M621.512 870.43l-6.04256 0 0 -6.04256 -2.01419 0 0 18.1277c0,4.44128 3.6205,8.06178 8.05674,8.06178l0 -2.01419c-3.32844,0 -6.04256,-2.71915 -6.04256,-6.04759l0 -10.0709 6.04256 0 0 -2.01419z"/>
+ </g>
+ <g>
+ <path id="_151178608" class="fil1" d="M591.229 914.758c-5.54908,0 -10.0709,4.52688 -10.0709,10.0709 0,5.54908 4.52185,10.076 10.0709,10.076 5.54908,0 10.0709,-4.52688 10.0709,-10.076 0,-5.54405 -4.52185,-10.0709 -10.0709,-10.0709zm0 2.01419c4.43624,0 8.05674,3.6205 8.05674,8.05674 0,4.44128 -3.6205,8.06178 -8.05674,8.06178 -4.43624,0 -8.05674,-3.6205 -8.05674,-8.06178 0,-4.43624 3.6205,-8.05674 8.05674,-8.05674z"/>
+ <path id="_151177808" class="fil1" d="M664.611 914.758c-5.54405,0 -10.0709,4.52688 -10.0709,10.0709 0,5.54908 4.52688,10.076 10.0709,10.076 3.28816,0 6.2188,-1.59121 8.06178,-4.04348l0 4.04348 2.01419 0 0 -10.076 0 -18.1277 -2.01419 0 0 12.0952c-1.84298,-2.44724 -4.77362,-4.03844 -8.06178,-4.03844zm0 18.1327c-4.43624,0 -8.05674,-3.6205 -8.05674,-8.06178 0,-4.43624 3.6205,-8.05674 8.05674,-8.05674 4.44128,0 8.06178,3.6205 8.06178,8.05674 0,4.44128 -3.6205,8.06178 -8.06178,8.06178z"/>
+ <path id="_151007176" class="fil1" d="M635.546 924.828l14.1043 0c0,-4.43624 -3.6205,-8.05674 -8.05674,-8.05674 -4.44128,0 -8.06178,3.6205 -8.06178,8.05674 0,4.44128 3.6205,8.06178 8.06178,8.06178 2.03433,0 3.89745,-0.765391 5.31745,-2.01419l2.72922 0c-1.83794,2.4422 -4.76355,4.02837 -8.04667,4.02837 -5.54908,0 -10.076,-4.52688 -10.076,-10.076 0,-5.54405 4.52688,-10.0709 10.076,-10.0709 5.54405,0 10.0709,4.52688 10.0709,10.0709l0 2.01419 -16.1185 0 0 -2.01419z"/>
+ <path id="_151006912" class="fil1" d="M544.893 934.904c5.54908,0 10.076,-4.52688 10.076,-10.076 0,-5.54405 -4.52688,-10.0709 -10.076,-10.0709 -3.28816,0 -6.21376,1.59121 -8.05674,4.03844l0 -4.03844 -2.01419 0 0 10.0709 0 18.1327 2.01419 0 0 -12.1002c1.84298,2.45227 4.76858,4.04348 8.05674,4.04348zm0 -2.01419c-4.43624,0 -8.05674,-3.6205 -8.05674,-8.06178 0,-4.43624 3.6205,-8.05674 8.05674,-8.05674 4.44128,0 8.06178,3.6205 8.06178,8.05674 0,4.44128 -3.6205,8.06178 -8.06178,8.06178z"/>
+ <path id="_151006112" class="fil1" d="M569.068 934.904c5.54908,0 10.076,-4.52688 10.076,-10.076 0,-5.54405 -4.52688,-10.0709 -10.076,-10.0709 -3.28816,0 -6.2188,1.59121 -8.05674,4.03844l0 -4.03844 -2.01419 0 0 10.0709 0 18.1327 2.01419 0 0 -12.1002c1.83794,2.45227 4.76858,4.04348 8.05674,4.04348zm0 -2.01419c-4.43624,0 -8.05674,-3.6205 -8.05674,-8.06178 0,-4.43624 3.6205,-8.05674 8.05674,-8.05674 4.44128,0 8.05674,3.6205 8.05674,8.05674 0,4.44128 -3.61546,8.06178 -8.05674,8.06178z"/>
+ <path id="_21752896" class="fil1" d="M607.342 917.497c1.48043,-1.67681 3.64568,-2.73929 6.04759,-2.73929l0 2.01419c-3.32844,0 -6.04759,2.71412 -6.04759,6.04256l0 12.0901 -2.01419 0 0 -12.0901 0 -8.05674 2.01419 0 0 2.73929z"/>
+ <path id="_21752512" class="fil1" d="M501.875 934.985c3.32844,0 6.04256,-2.71915 6.04256,-6.04759 0,-3.32844 -2.71412,-6.04256 -6.04256,-6.04256 -1.66674,0 -3.02128,-1.35454 -3.02128,-3.02128 0,-1.66674 1.35454,-3.02128 3.02128,-3.02128 1.66674,0 3.02128,1.35454 3.02128,3.02128l2.01419 0c0,-2.77454 -2.26092,-5.03546 -5.03546,-5.03546 -2.77454,0 -5.03546,2.26092 -5.03546,5.03546 0,2.77454 2.26092,5.03546 5.03546,5.03546 2.22064,0 4.02837,1.81277 4.02837,4.02837 0,2.22064 -1.80773,4.02837 -4.02837,4.02837 -2.22064,0 -4.02837,-1.80773 -4.02837,-4.02837l-2.01419 0c0,3.32844 2.71412,6.04759 6.04256,6.04759z"/>
+ <path id="_21752128" class="fil1" d="M627.489 914.758l-6.04256 0 0 -6.04256 -2.01419 0 0 18.1277c0,4.44128 3.6205,8.06178 8.05674,8.06178l0 -2.01419c-3.32844,0 -6.04256,-2.71915 -6.04256,-6.04759l0 -10.0709 6.04256 0 0 -2.01419z"/>
+ <path id="_21751440" class="fil1" d="M528.779 934.904l-2.01419 0 0 -2.73929c-1.48043,1.67681 -3.64064,2.73929 -6.04256,2.73929 -4.44128,0 -8.06178,-3.6205 -8.06178,-8.06178l0 -12.0851 2.01419 0 0 12.0851c0,3.32844 2.71412,6.04759 6.04759,6.04759 3.32844,0 6.04256,-2.71915 6.04256,-6.04759l0 -12.0851 2.01419 0 0 12.0851 0 8.06178z"/>
+ </g>
+ </g>
+ </g>
+ <rect class="fil4" x="830.645" y="138.359" width="558.987" height="1600.33"/>
+ <rect class="fil8" x="873.988" y="381.404" width="341.067" height="63.9051"/>
+ <path class="fil8" d="M986.377 381.361l-31.9752 0 0 0.00503546c4.09383,4.0888 6.62164,9.74362 6.62164,15.9876 0,6.2339 -2.5278,11.8887 -6.62164,15.9775l0 0.00503546c-4.0888,4.09383 -6.62667,9.74362 -6.62667,15.9826 0,6.24398 2.53787,11.8988 6.62667,15.9926l18.7269 0 5.93178 0 7.31653 0 228.676 0 0 -63.9101 -228.676 0 0 -0.0402837z"/>
+ <path class="fil9" d="M957.796 385.661c2.0595,3.40397 3.22773,7.42227 3.22773,11.6923 0,6.2339 -2.5278,11.8887 -6.62164,15.9775l0 0.00503546c-4.0888,4.09383 -6.62667,9.74362 -6.62667,15.9826 0,4.29525 1.20851,8.30348 3.29319,11.7226l259.759 0 0 -55.38 -253.032 0z"/>
+ <path class="fil10" d="M989.846 408.336c-16.9443,-4.79376 -34.8404,-7.38199 -53.3205,-7.38199 -21.8791,0 -42.8971,3.61043 -62.5354,10.2371l0 34.1203 115.856 0 70.6677 0 154.538 0 0 -36.2755c-35.2281,10.4184 -71.982,16.043 -111.128,16.043 -39.1457,0 -77.9842,-5.76057 -114.078,-16.7429l0 0z"/>
+ <path class="fil10" d="M989.846 408.336c-9.51703,-2.69397 -19.3311,-4.68298 -29.3819,-5.91667 -0.961774,4.20965 -3.11192,7.96107 -6.0627,10.9119l0 0.00503546c-4.0888,4.09383 -6.62667,9.74362 -6.62667,15.9826 0,6.24398 2.53787,11.8988 6.62667,15.9926l18.7269 0 5.93178 0 7.31653 0 3.46943 0 70.6677 0 154.538 0 -0.387731 -47.2981c-35.2331,10.4184 -71.5942,20.3886 -110.74,20.3886 -39.1457,0 -77.9842,0.916454 -114.078,-10.0659l0 0z"/>
+ <rect class="fil11" x="873.988" y="381.404" width="4.25994" height="63.9051"/>
+ <rect class="fil12" x="873.988" y="381.444" width="44.0571" height="63.8548"/>
+ <path class="fil9" d="M924.652 445.306c0,-4.78873 -1.82787,-9.57745 -5.47858,-13.2382 10.3328,0 18.7168,-8.37398 18.7168,-18.7118 0,-10.3378 -8.38405,-18.7118 -18.7168,-18.7118 3.65071,-3.66078 5.47858,-8.44951 5.47858,-13.2433l-8.58547 0 0 0.0402837c-0.0100709,2.58823 -0.997022,5.16135 -2.96085,7.12518 -1.97894,1.97894 -4.57724,2.97092 -7.1705,2.97092l-14.6532 14.6532 20.731 0c1.82787,-1.83291 4.36071,-2.96589 7.16043,-2.96589 5.5944,0 10.1314,4.53695 10.1314,10.1314 0,5.5944 -4.53695,10.1314 -10.1314,10.1314 -2.79972,0 -5.33256,-1.13298 -7.16043,-2.96589l-20.731 0 14.6532 14.6532c2.59326,0 5.19156,0.991986 7.1705,2.97092 1.96383,1.96383 2.95078,4.54199 2.96085,7.12518l0 0.0352482 8.58547 0zm-28.8431 -63.9051l-14.6582 0 0 0.0201419 0.0453192 0.0201419 -0.0453192 0.251773 0 14.3662 14.6582 -14.6582zm-14.6582 63.6181l0.0453192 0.251773 -0.0453192 0.0302128 0 0.00503546 14.6582 0 -14.6582 -14.6532 0 14.3662z"/>
+ <polygon class="fil1" points="918.02,391.563 918.02,436.655 915.15,436.655 915.15,441.041 891.468,441.041 891.524,440.991 886.478,438 881.116,440.991 881.146,441.041 878.245,441.041 878.245,385.661 881.136,385.661 881.116,385.681 886.786,388.365 891.524,385.681 891.519,385.661 915.15,385.661 915.15,391.563 "/>
+ <path class="fil1" d="M919.345 426.7c7.40213,0 13.4044,-5.95695 13.4044,-13.3389 0,-7.38703 -6.00227,-13.349 -13.4044,-13.349 -7.34674,0 -13.349,5.96199 -13.349,13.349 0,7.38199 6.00227,13.3389 13.349,13.3389z"/>
+ <path class="fil4" d="M924.194 441.041c-0.765391,-3.28312 -2.4422,-6.41518 -5.02036,-8.95306 10.3328,0 18.7067,-8.38405 18.7067,-18.7269 0,-10.3731 -8.37398,-18.7017 -18.7067,-18.7017 2.58823,-2.57312 4.26504,-5.69511 5.03043,-8.99837l-9.05376 0c-0.48844,1.05241 -1.17326,2.03936 -2.0444,2.9105 -1.97894,1.9739 -4.55709,2.98603 -7.1705,2.98603l-14.6482 14.628 20.7109 0c1.83291,-1.84802 4.37582,-2.97092 7.17554,-2.97092 5.57426,0 10.1011,4.55709 10.1011,10.1465 0,5.57426 -4.52688,10.1213 -10.1011,10.1213 -2.79972,0 -5.34263,-1.1078 -7.17554,-2.96589l-20.7109 0 14.6482 14.6683c2.61341,0 5.19156,0.97688 7.1705,2.98099 0.861064,0.850993 1.54085,1.83794 2.02929,2.87525l9.0588 0zm-43.0633 -55.38l10.4133 0 -10.4133 10.4184 0 -10.4184zm10.4033 55.38l-10.4033 0 0 -10.4083 10.4033 10.4083z"/>
+ <path class="fil4" d="M989.846 408.336c-9.51703,-2.69397 -19.3311,-4.68298 -29.3819,-5.91667 -0.961774,4.20965 -3.11192,7.96107 -6.0627,10.9119l0 0.00503546c-4.0888,4.09383 -6.62667,9.74362 -6.62667,15.9826 0,4.29525 1.20851,8.30348 3.29319,11.7226l259.759 0 0 -42.2375c-33.9491,9.63284 -72.133,18.4701 -110.498,18.4701 -38.3652,0 -74.3889,2.0444 -110.483,-8.93795l0 0z"/>
+ <g id="_150687464">
+ <path id="_151041168" class="fil1" d="M1186.18 404.836c4.61249,0 8.72646,2.23071 11.3097,5.6649l-3.83199 0c-1.99908,-1.76241 -4.61752,-2.82993 -7.47766,-2.82993 -6.23894,0 -11.3298,5.08582 -11.3298,11.3248 0,6.23894 5.09085,11.3248 11.3298,11.3248 2.86014,0 5.47858,-1.06752 7.47766,-2.82993l3.83199 0c-2.58319,3.43419 -6.69717,5.6649 -11.3097,5.6649 -7.79993,0 -14.1597,-6.35979 -14.1597,-14.1597 0,-7.79993 6.35979,-14.1597 14.1597,-14.1597z"/>
+ <path id="_151040368" class="fil1" d="M1121.05 433.156c-7.79993,0 -14.1597,-6.35979 -14.1597,-14.1597 0,-7.79993 6.35979,-14.1597 14.1597,-14.1597 4.62256,0 8.74157,2.23575 11.3298,5.68l0 -2.84504 2.82993 0 0 11.3248 0 14.1597 -2.82993 0 0 -5.68c-2.58823,3.44426 -6.70724,5.68 -11.3298,5.68zm0 -2.83497c-6.23894,0 -11.3248,-5.08582 -11.3248,-11.3248 0,-6.23894 5.08582,-11.3248 11.3248,-11.3248 6.23894,0 11.3298,5.08582 11.3298,11.3248 0,6.23894 -5.09085,11.3248 -11.3298,11.3248z"/>
+ <path id="_150878120" class="fil1" d="M1089.9 404.836c7.79993,0 14.1597,6.35979 14.1597,14.1597 0,7.79993 -6.35979,14.1597 -14.1597,14.1597 -4.62256,0 -8.74157,-2.23575 -11.3248,-5.68l0 5.68 -2.83497 0 0 -14.1597 0 -25.4845 2.83497 0 0 17.0048c2.58319,-3.44426 6.7022,-5.68 11.3248,-5.68zm0 25.4845c-6.23894,0 -11.3248,-5.08582 -11.3248,-11.3248 0,-6.23894 5.08582,-11.3248 11.3248,-11.3248 6.23894,0 11.3298,5.08582 11.3298,11.3248 0,6.23894 -5.09085,11.3248 -11.3298,11.3248z"/>
+ <path id="_150877376" class="fil1" d="M1163.53 404.836l2.82993 0 0 28.3194 -2.82993 0 0 -28.3194zm0 -8.49483l2.82993 0 0 2.83497 -2.82993 0 0 -2.83497z"/>
+ <path id="_150876512" class="fil1" d="M1149.37 433.156c4.67795,0 8.49483,-3.81688 8.49483,-8.49483 0,-4.68298 -3.81688,-8.49483 -8.49483,-8.49483 -2.34149,0 -4.24993,-1.90844 -4.24993,-4.24993 0,-2.33646 1.90844,-4.2449 4.24993,-4.2449 2.33646,0 4.2449,1.90844 4.2449,4.2449l2.83497 0c0,-3.89745 -3.18241,-7.07986 -7.07986,-7.07986 -3.90248,0 -7.07986,3.18241 -7.07986,7.07986 0,3.89745 3.17738,7.07986 7.07986,7.07986 3.11695,0 5.6649,2.54291 5.6649,5.6649 0,3.11695 -2.54794,5.65986 -5.6649,5.65986 -3.12199,0 -5.6649,-2.54291 -5.6649,-5.65986l-2.82993 0c0,4.67795 3.81688,8.49483 8.49483,8.49483z"/>
+ </g>
+ <g id="_150900448">
+ <path id="_150686688" class="fil1 str2" d="M1044.54 409.494l13.0167 0 0 13.0167 0.00503546 0c0,7.19064 -5.83107,13.0217 -13.0217,13.0217 -7.19064,0 -13.0167,-5.83107 -13.0217,-13.0167l0 -0.00503546 0 -18.4046 0 0c0,-7.19064 5.83107,-13.0217 13.0217,-13.0217 7.18561,0 13.0167,5.83107 13.0167,13.0217l-7.62873 0c0,-2.97596 -2.41199,-5.39298 -5.38795,-5.39298 -2.97596,0 -5.39298,2.41702 -5.39298,5.39298l0 18.4097 0 0c0,2.97596 2.41702,5.38795 5.39298,5.38795 2.97596,0 5.38795,-2.41199 5.38795,-5.38795l0 -0.00503546 0 -5.38795 -5.38795 0 0 -7.62873z"/>
+ <path id="_150901248" class="fil1 str2" d="M983.255 413.306c-2.3566,-2.35156 -3.81185,-5.60951 -3.81185,-9.20483 0,-7.18561 5.82603,-13.0167 13.0167,-13.0167 7.19064,0 13.0167,5.83107 13.0167,13.0167l-7.62369 0c0,-2.97596 -2.41702,-5.38795 -5.39298,-5.38795 -2.97596,0 -5.39298,2.41199 -5.39298,5.38795 0,1.4905 0.604256,2.83497 1.5761,3.81185l0.00503546 0c0.971845,0.97688 2.32135,1.58114 3.81185,1.58114l0 0c3.59532,0 6.84823,1.46028 9.20483,3.81688l0 0c2.3566,2.35156 3.81185,5.60951 3.81185,9.20483 0,7.18561 -5.82603,13.0167 -13.0167,13.0167 -7.19064,0 -13.0167,-5.83107 -13.0167,-13.0167l7.62369 0c0,2.97596 2.41702,5.38795 5.39298,5.38795 2.97596,0 5.39298,-2.41199 5.39298,-5.38795 0,-1.4905 -0.604256,-2.83497 -1.5761,-3.81185l-0.00503546 0c-0.97688,-0.97688 -2.32135,-1.58114 -3.81185,-1.58114l0 0c-3.59532,0 -6.84823,-1.46028 -9.20483,-3.81688l0 0z"/>
+ <polygon id="_150900760" class="fil1 str2" points="1031.51,391.084 1022.31,435.532 1014.68,435.532 1005.48,391.084 1013.11,391.084 1018.5,417.118 1023.89,391.084 "/>
+ </g>
+ <rect class="fil2" x="873.985" y="180.991" width="136.426" height="136.426"/>
+ <rect class="fil10" x="942.195" y="249.205" width="68.2154" height="68.0039"/>
+ <rect class="fil8" x="873.985" y="180.99" width="68.2154" height="68.2154"/>
+ <g id="_150799496">
+ <circle id="_150994000" class="fil2" cx="899.255" cy="249.099" r="25.0634"/>
+ <circle id="_150993448" class="fil2" transform="matrix(0.0106858 0.0106858 -0.0106858 0.0106858 911.863 218.661)" r="1658.51"/>
+ <circle id="_150879984" class="fil2" transform="matrix(4.00234E-016 0.015112 -0.015112 4.00234E-016 942.301 206.053)" r="1658.51"/>
+ <circle id="_150879416" class="fil2" transform="matrix(-0.0106858 0.0106858 -0.0106858 -0.0106858 972.74 218.661)" r="1658.51"/>
+ <circle id="_150878848" class="fil2" cx="985.348" cy="249.099" r="25.0634"/>
+ <circle id="_150650144" class="fil2" transform="matrix(-0.0106858 -0.0106858 0.0106858 -0.0106858 972.74 279.538)" r="1658.51"/>
+ <circle id="_150649576" class="fil2" transform="matrix(-1.21077E-015 -0.015112 0.015112 -1.21077E-015 942.301 292.146)" r="1658.51"/>
+ <circle id="_150649040" class="fil2" transform="matrix(0.0106858 -0.0106858 0.0106858 0.0106858 911.863 279.538)" r="1658.51"/>
+ </g>
+ <path class="fil4" d="M960.132 206.051c0,-9.84433 -7.98625,-17.8306 -17.8306,-17.8306 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 0,9.84433 7.98625,17.8306 17.8306,17.8306 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 6.96405,6.95901 18.2536,6.95901 25.2176,0 0,9.84433 7.98625,17.8306 17.8306,17.8306 9.84433,0 17.8306,-7.98625 17.8306,-17.8306 6.96405,6.95901 18.2536,6.95901 25.2176,0 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 9.84433,0 17.8255,-7.98625 17.8255,-17.8306 0,-9.84433 -7.98121,-17.8306 -17.8255,-17.8306 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0z"/>
+ <path class="fil1" d="M949.125 212.879l0 19.7441 13.9633 -13.9633c0,-2.46738 0.941632,-4.93979 2.8249,-6.82305 3.77156,-3.77156 9.88462,-3.77156 13.6511,0 3.77156,3.76653 3.77156,9.87958 0,13.6511 -1.88326,1.88326 -4.35568,2.8249 -6.82305,2.8249l-13.9633 13.9633 19.7441 0c1.74731,-1.74731 4.15929,-2.82993 6.82809,-2.82993 5.32752,0 9.64795,4.32546 9.64795,9.65298 0,5.32752 -4.32043,9.65298 -9.64795,9.65298 -2.6688,0 -5.08078,-1.08262 -6.82809,-2.82993l-19.7441 0 13.9633 13.9633c2.46738,0 4.93979,0.941632 6.82305,2.8249 3.77156,3.77156 3.77156,9.88462 0,13.6511 -3.76653,3.77156 -9.87958,3.77156 -13.6511,0 -1.88326,-1.88326 -2.8249,-4.35568 -2.8249,-6.82305l-13.9633 -13.9633 0 19.7441c1.74731,1.74731 2.82993,4.15929 2.82993,6.82809 0,5.32752 -4.32546,9.64795 -9.65298,9.64795 -5.32752,0 -9.65298,-4.32043 -9.65298,-9.64795 0,-2.6688 1.08262,-5.08078 2.82993,-6.82809l0 -19.7441 -13.9633 13.9633c0,2.46738 -0.941632,4.93979 -2.8249,6.82305 -3.77156,3.77156 -9.88462,3.77156 -13.6511,0 -3.77156,-3.76653 -3.77156,-9.87958 0,-13.6511 1.88326,-1.88326 4.35568,-2.8249 6.82305,-2.8249l13.9633 -13.9633 -19.7441 0c-1.74731,1.74731 -4.15929,2.82993 -6.82809,2.82993 -5.32752,0 -9.64795,-4.32546 -9.64795,-9.65298 0,-5.32752 4.32043,-9.65298 9.64795,-9.65298 2.6688,0 5.08078,1.08262 6.82809,2.82993l19.7441 0 -13.9633 -13.9633c-2.46738,0 -4.93979,-0.941632 -6.82305,-2.8249 -3.77156,-3.77156 -3.77156,-9.88462 0,-13.6511 3.76653,-3.77156 9.87958,-3.77156 13.6511,0 1.88326,1.88326 2.8249,4.35568 2.8249,6.82305l13.9633 13.9633 0 -19.7441c-1.74731,-1.74731 -2.82993,-4.15929 -2.82993,-6.82809 0,-5.32752 4.32546,-9.64795 9.65298,-9.64795 5.32752,0 9.65298,4.32043 9.65298,9.64795 0,2.6688 -1.08262,5.08078 -2.82993,6.82809z"/>
+ <rect class="fil4" x="881.427" y="249.203" width="121.742" height="60.7704"/>
+ <rect class="fil4" x="881.427" y="283.305" width="121.742" height="26.6689"/>
+ <path class="fil3" d="M894.188 254.84l97.2147 0c3.98305,0 7.23596,3.25291 7.23596,7.23596l0 24.4069c-37.5696,-4.64773 -74.8169,-11.073 -111.687,-10.4788l0 -13.9281c0,-3.98305 3.25291,-7.23596 7.23596,-7.23596z"/>
+ <polygon class="fil1 str3" points="958.093,253.198 946.854,307.481 937.538,307.481 926.294,253.198 935.609,253.198 942.196,284.992 948.777,253.198 "/>
+ <path class="fil1 str3" d="M973.995 275.682l15.902 0 0 15.897 0 0c0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l0 0 0 -22.4833 -0.00503546 0c0,-8.77681 7.12015,-15.897 15.902,-15.897 8.78185,0 15.902,7.12015 15.902,15.897l-9.31561 0c0,-3.63561 -2.95078,-6.58135 -6.58639,-6.58135 -3.63561,0 -6.58135,2.94575 -6.58135,6.58135l0 22.4833 0 0c0,3.63561 2.94575,6.58639 6.58135,6.58639 3.63561,0 6.58639,-2.95078 6.58639,-6.58135l0 -0.00503546 0 -6.58135 -6.58639 0 0 -9.31561z"/>
+ <path class="fil1 str3" d="M899.153 280.339c-2.87525,-2.88029 -4.6578,-6.85327 -4.6578,-11.2442 0,-8.78185 7.12015,-15.897 15.902,-15.897 8.77681,0 15.897,7.11511 15.897,15.897l-9.31057 0c0,-3.63561 -2.95078,-6.58639 -6.58639,-6.58639 -3.63561,0 -6.58639,2.95078 -6.58639,6.58639 0,1.8178 0.735178,3.45936 1.92355,4.65277l0.00503546 0c1.1934,1.1934 2.84,1.92858 4.6578,1.92858l0 0.00503546c4.39092,0 8.36391,1.77752 11.2392,4.6578l0 0c2.88029,2.87525 4.6578,6.85327 4.6578,11.2392 0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l9.31561 0c0,3.64064 2.95078,6.58639 6.58639,6.58639 3.63561,0 6.58639,-2.94575 6.58639,-6.58639 0,-1.81277 -0.735178,-3.45936 -1.92858,-4.65277l0 0c-1.1934,-1.18837 -2.84,-1.92858 -4.6578,-1.92858l0 0c-4.39092,0 -8.36391,-1.78255 -11.2442,-4.6578l0 0z"/>
+ <rect class="fil8" x="873.985" y="637.144" width="375.172" height="132.161"/>
+ <path class="fil10" d="M949.215 667.451c67.9989,-8.15242 112.205,35.5353 173.356,44.6696 44.4329,6.63674 85.8949,-0.140993 126.587,-10.791l0 67.9737 -375.172 0 0 -92.6223 75.2298 -9.23001z"/>
+ <path class="fil2" d="M1006.13 769.303l-132.141 0 0 -52.0868 34.9612 -2.53284c57.1626,8.84731 97.2298,29.4222 97.2298,53.391 0,0.412908 -0.0251773,0.815745 -0.0503546,1.22865z"/>
+ <path class="fil10" d="M1006.13 769.303l-132.141 0 0 -52.0919 4.24993 -0.307163 0 48.0383 127.714 0c0.156099,1.03731 0.226596,2.06958 0.226596,3.12199 0,0.422979 -0.0251773,0.825816 -0.0503546,1.23872z"/>
+ <path class="fil1" d="M927.935 637.142l0 20.2224 20.1922 -20.2224 27.9368 0c0,3.58021 -1.35454,7.15539 -4.08376,9.87958 -2.7544,2.72922 -6.31951,4.09887 -9.87455,4.09887l-20.2224 20.1922 28.5662 0c2.53787,-2.52277 6.03752,-4.0888 9.90476,-4.0888 7.70426,0 13.9583,6.25908 13.9583,13.9734 0,7.7244 -6.25405,13.9835 -13.9583,13.9835 -3.86724,0 -7.36688,-1.56603 -9.90476,-4.0888l-28.5662 0 20.2224 20.1922c3.55504,0 7.12015,1.36965 9.87455,4.09887 5.44334,5.44334 5.44334,14.2906 0,19.7541 -5.46348,5.44334 -14.3108,5.44334 -19.7541,0 -2.72922,-2.7544 -4.09887,-6.31951 -4.09887,-9.87455l-20.1922 -20.2224 0 28.5662c2.52277,2.53787 4.0888,6.03752 4.0888,9.90476 0,7.70426 -6.25908,13.9583 -13.9684,13.9583 -7.72944,0 -13.9885,-6.25405 -13.9885,-13.9583 0,-3.86724 1.56603,-7.36688 4.0888,-9.90476l0 -28.5662 -20.1922 20.2224c0,3.55504 -1.36965,7.12015 -4.09887,9.87455 -2.72419,2.72922 -6.29937,4.0888 -9.87958,4.08376l0 -27.9368 20.2224 -20.1922 -20.2224 0 0 -19.7793 20.2224 0 -20.2224 -20.1922 0 -13.9784 13.9784 0 20.1922 20.2224 0 -20.2224 19.7793 0z"/>
+ <path class="fil9" d="M1024 764.942c-6.16844,-7.92582 -9.86447,-17.8658 -9.86447,-28.682 0,-12.9009 5.23185,-24.5831 13.6864,-33.0377l0 -0.00503546c8.45454,-8.45958 13.6864,-20.1368 13.6864,-33.0377 0,-10.8464 -3.68596,-20.8468 -9.89469,-28.7777l213.282 0 0 123.54 -220.896 0z"/>
+ <path class="fil4" d="M1024 764.942c-6.16844,-7.92582 -9.86447,-17.8658 -9.86447,-28.682 0,-12.9009 5.23185,-24.5831 13.6864,-33.0377l0 -0.00503546c5.3678,-5.37284 9.42135,-12.0247 11.6772,-19.4772 26.8239,10.9572 52.3789,29.0697 82.5564,33.5765 42.877,6.40007 83.5182,-4.85419 122.84,-14.8546l0 62.48 -220.896 0z"/>
+ <g id="_151085464">
+ <path id="_150484792" class="fil1" d="M1157.69 728.395c4.35568,0 8.22795,2.09979 10.6701,5.33759l-3.61546 0c-1.88326,-1.65667 -4.35568,-2.6688 -7.05469,-2.6688 -5.88142,0 -10.6802,4.7988 -10.6802,10.6802 0,5.88142 4.7988,10.6802 10.6802,10.6802 2.69901,0 5.17142,-1.00709 7.05469,-2.6688l3.61546 0c-2.4422,3.2378 -6.31447,5.33759 -10.6701,5.33759 -7.35178,0 -13.349,-5.99724 -13.349,-13.349 0,-7.35178 5.99724,-13.349 13.349,-13.349z"/>
+ <path id="_151113464" class="fil1" d="M1096.28 755.093c-7.35681,0 -13.349,-5.99724 -13.349,-13.349 0,-7.35178 5.9922,-13.349 13.349,-13.349 4.35568,0 8.23802,2.10986 10.6802,5.35773l0 -2.68894 2.6688 0 0 10.6802 0 13.349 -2.6688 0 0 -5.3527c-2.4422,3.24787 -6.32454,5.3527 -10.6802,5.3527zm0 -2.6688c-5.88142,0 -10.6802,-4.7988 -10.6802,-10.6802 0,-5.88142 4.7988,-10.6802 10.6802,-10.6802 5.88142,0 10.6802,4.7988 10.6802,10.6802 0,5.88142 -4.7988,10.6802 -10.6802,10.6802z"/>
+ <path id="_151112784" class="fil1" d="M1066.91 728.395c7.35178,0 13.349,5.99724 13.349,13.349 0,7.35178 -5.99724,13.349 -13.349,13.349 -4.36071,0 -8.24305,-2.10482 -10.6802,-5.3527l0 5.3527 -2.6688 0 0 -13.349 0 -24.0292 2.6688 0 0 16.038c2.43716,-3.25291 6.31951,-5.35773 10.6802,-5.35773zm0 24.0292c-5.88142,0 -10.6802,-4.7988 -10.6802,-10.6802 0,-5.88142 4.7988,-10.6802 10.6802,-10.6802 5.88142,0 10.6802,4.7988 10.6802,10.6802 0,5.88142 -4.7988,10.6802 -10.6802,10.6802z"/>
+ <path id="_151086160" class="fil1" d="M1136.33 728.395l2.67383 0 0 26.698 -2.67383 0 0 -26.698zm0 -8.01142l2.67383 0 0 2.6688 -2.67383 0 0 -2.6688z"/>
+ <path id="_151085776" class="fil1" d="M1122.98 755.093c4.41107,0 8.01142,-3.59532 8.01142,-8.00639 0,-4.41107 -3.60036,-8.01142 -8.01142,-8.01142 -2.20553,0 -4.00319,-1.79766 -4.00319,-4.00319 0,-2.21057 1.79766,-4.00823 4.00319,-4.00823 2.20553,0 4.00823,1.79766 4.00823,4.00823l2.6688 0c0,-3.68092 -3.00114,-6.67703 -6.67703,-6.67703 -3.67589,0 -6.67199,2.9961 -6.67199,6.67703 0,3.67589 2.9961,6.67199 6.67199,6.67199 2.94071,0 5.34263,2.40192 5.34263,5.34263 0,2.94071 -2.40192,5.33759 -5.34263,5.33759 -2.94071,0 -5.33759,-2.39688 -5.33759,-5.33759l-2.67383 0c0,4.41107 3.60036,8.00639 8.01142,8.00639z"/>
+ </g>
+ <g id="_150851376">
+ <path id="_150660608" class="fil1 str3" d="M1133.28 674.274l16.5264 0 0 16.5214 0 0c0,9.12426 -7.40213,16.5264 -16.5264,16.5264 -9.12426,0 -16.5214,-7.3971 -16.5214,-16.5264l0 0 0 -23.3646 -0.00503546 0c0,-9.12426 7.40213,-16.5264 16.5264,-16.5264 9.12426,0 16.5264,7.40213 16.5264,16.5264l-9.6832 0c0,-3.7766 -3.0666,-6.8432 -6.8432,-6.8432 -3.7766,0 -6.8432,3.0666 -6.8432,6.8432l0 23.3646 0 0c0,3.78163 3.0666,6.8432 6.8432,6.8432 3.7766,0 6.8432,-3.06156 6.8432,-6.83816l0 -0.00503546 0 -6.83816 -6.8432 0 0 -9.6832z"/>
+ <path id="_150659560" class="fil1 str3" d="M1055.5 679.113c-2.99107,-2.99107 -4.83908,-7.12015 -4.83908,-11.6823 0,-9.12426 7.3971,-16.5264 16.5214,-16.5264 9.1293,0 16.5264,7.40213 16.5264,16.5264l-9.67816 0c0,-3.78163 -3.0666,-6.84823 -6.84823,-6.84823 -3.7766,0 -6.8432,3.0666 -6.8432,6.84823 0,1.8883 0.765391,3.59532 2.00411,4.83405l0 0c1.23872,1.23872 2.95078,2.00411 4.83908,2.00411l0 0.00503546c4.56717,0 8.69625,1.84802 11.6873,4.83908l0 0c2.99107,2.99107 4.83908,7.12015 4.83908,11.6823 0,9.12426 -7.3971,16.5264 -16.5264,16.5264 -9.12426,0 -16.5214,-7.40213 -16.5214,-16.5264l9.67816 0c0,3.78163 3.0666,6.84823 6.8432,6.84823 3.78163,0 6.84823,-3.0666 6.84823,-6.84823 0,-1.88326 -0.765391,-3.59532 -2.00411,-4.83405l0 0c-1.23872,-1.23872 -2.95078,-2.00411 -4.84412,-2.00411l0 -0.00503546c-4.56213,0 -8.69121,-1.84802 -11.6823,-4.83908l0 0z"/>
+ <polygon id="_151106944" class="fil1 str3" points="1116.76,650.904 1105.07,707.322 1095.39,707.322 1083.71,650.904 1093.39,650.904 1100.23,683.947 1107.07,650.904 "/>
+ <path id="_151106320" class="fil1 str3" d="M1169.75 659.167l0 8.2632 8.2632 0 0 39.8909 9.67816 0 0 -56.4173 -9.67816 0c0,4.56213 -3.70107,8.2632 -8.2632,8.2632z"/>
+ <rect id="_151105632" class="fil1 str3" x="1192.53" y="697.642" width="9.6796" height="9.6796"/>
+ <path id="_151176200" class="fil1 str3" d="M1202.43 690.795c0,9.12426 7.3971,16.5264 16.5214,16.5264 9.12426,0 16.5264,-7.40213 16.5264,-16.5264l0 -23.3646c0,-9.12426 -7.40213,-16.5264 -16.5264,-16.5264 -9.12426,0 -16.5214,7.40213 -16.5214,16.5264l0.0151064 0 0 0 -0.0151064 0 0 0.00503546 -0.0151064 0.0100709 0.0151064 0 0 23.3494zm9.62781 -23.3646l0.0503546 0c0,-3.78163 3.06156,-6.84823 6.8432,-6.84823 3.78163,0 6.8432,3.0666 6.8432,6.84823l0 23.3646c0,3.78163 -3.06156,6.84823 -6.8432,6.84823 -3.78163,0 -6.8432,-3.0666 -6.8432,-6.84823l0 -23.3646 -0.0503546 0 0 0z"/>
+ </g>
+ <path class="fil12" d="M927.935 637.142l0 4.26 -19.7793 0 0 -4.26 19.7793 0zm15.9372 4.26l4.25497 -4.26 27.9368 0c0,1.44518 -0.236667,2.87021 -0.679788,4.26l-31.5119 0zm-65.6373 97.1542c-1.37468,0.43305 -2.81986,0.664681 -4.24993,0.664681l0 -27.9368 4.24993 -4.2449 0 31.517zm0 -47.4643l-4.24993 0 0 -19.7793 4.24993 0 0 19.7793zm0 -35.7266l-4.24993 -4.2449 0 -13.9784 13.9784 0 4.25497 4.26 -13.9835 0 0 13.9633z"/>
+ <path class="fil4" d="M873.985 751.05c6.60149,0.00503546 13.203,-2.50766 18.2536,-7.53809 0,14.2403 11.5614,25.7916 25.8168,25.7916 14.2403,0 25.7967,-11.5514 25.7967,-25.7916 10.0911,10.0508 26.4261,10.0508 36.5021,0 10.0508,-10.076 10.0508,-26.411 0,-36.5021 14.2403,0 25.7916,-11.5564 25.7916,-25.8118 0,-14.2403 -11.5514,-25.8017 -25.7916,-25.8017 5.02036,-5.0405 7.53809,-11.6521 7.53809,-18.2536l-11.8283 0c0,3.58021 -1.35454,7.15539 -4.08376,9.87958 -2.7544,2.72922 -6.31951,4.09887 -9.87455,4.09887l-20.2224 20.1922 28.5662 0c2.53787,-2.52277 6.03752,-4.0888 9.90476,-4.0888 7.70426,0 13.9583,6.25908 13.9583,13.9734 0,7.7244 -6.25405,13.9835 -13.9583,13.9835 -3.86724,0 -7.36688,-1.56603 -9.90476,-4.0888l-28.5662 0 20.2224 20.1922c3.55504,0 7.12015,1.36965 9.87455,4.09887 5.44334,5.44334 5.44334,14.2906 0,19.7541 -5.46348,5.44334 -14.3108,5.44334 -19.7541,0 -2.72922,-2.7544 -4.09887,-6.31951 -4.09887,-9.87455l-20.1922 -20.2224 0 28.5662c2.52277,2.53787 4.0888,6.03752 4.0888,9.90476 0,7.70426 -6.25908,13.9583 -13.9684,13.9583 -7.72944,0 -13.9885,-6.25405 -13.9885,-13.9583 0,-3.86724 1.56603,-7.36688 4.0888,-9.90476l0 -28.5662 -20.1922 20.2224c0,3.55504 -1.36965,7.12015 -4.09887,9.87455 -2.72419,2.72922 -6.29937,4.0888 -9.87958,4.08376l0 11.8283zm74.1422 -113.907l-20.1922 0 0 20.2224 20.1922 -20.2224zm-39.9715 0l-20.1922 0 20.1922 20.2224 0 -20.2224zm-34.1707 13.9784l0 20.1922 20.2224 0 -20.2224 -20.1922zm0 39.9715l0 20.1922 20.2224 -20.1922 -20.2224 0z"/>
+ <path class="fil9" d="M873.985 751.05c1.42504,0 2.84,-0.11078 4.24993,-0.342412l0 -12.1304c-1.38475,0.443121 -2.80979,0.644539 -4.24993,0.644539l0 11.8283zm4.24993 -44.01l0 -15.9473 -4.24993 0 0 20.1922 4.24993 -4.2449zm0 -35.7266l0 -15.9473 -4.24993 -4.2449 0 20.1922 4.24993 0zm13.9835 -29.9107l15.9372 0 0 -4.26 -20.1922 0 4.25497 4.26zm35.7165 0l15.9372 0 4.25497 -4.26 -20.1922 0 0 4.26zm47.4542 0l12.1405 0c0.231631,-1.40489 0.362553,-2.84 0.362553,-4.26l-11.8283 0c0,1.43511 -0.236667,2.88029 -0.674752,4.26zm-71.6899 123.54c4.09887,2.74936 9.04873,4.36071 14.3561,4.36071 5.30234,0 10.227,-1.61135 14.3259,-4.36071l-28.682 0z"/>
+ <rect class="fil8" x="873.985" y="509.252" width="341.072" height="63.9101"/>
+ <rect class="fil8" x="873.985" y="509.25" width="341.075" height="63.9452"/>
+ <path class="fil10" d="M1215.06 528.26l0 44.9365 -341.072 0 0 -30.6912c30.0315,-7.38199 64.4791,-15.2575 68.2406,-16.4358 20.6253,-12.4074 70.8188,-1.78759 90.6686,7.50788 29.5682,13.8475 132.352,3.16731 182.163,-5.31745z"/>
+ <g id="_150938024">
+ <path id="_150815096" class="fil2" d="M1001.91 573.197l-127.921 0 0 -30.6912c26.7383,-6.57128 56.9964,-13.5253 65.9595,-15.8063 36.2805,6.1332 62.3088,22.866 62.3088,42.5698 0,1.32433 -0.115816,2.62851 -0.347447,3.92766z"/>
+ <path id="_150814728" class="fil1" d="M873.985 564.606l0 0c5.69511,0 10.3177,-4.54199 10.3177,-10.1414 0,-2.79972 -1.15312,-5.33256 -3.02128,-7.16547l0 -20.7411 14.9251 14.6633c0,2.5983 1.00709,5.19156 3.02128,7.1705 2.01419,1.97894 4.65277,2.96589 7.29639,2.96589l0 0c2.63858,0 5.2822,-0.986951 7.29639,-2.96589 2.01419,-1.97894 3.02128,-4.5722 3.02128,-7.1705l14.9251 -14.6633 0 20.7411c-1.86816,1.83291 -3.02128,4.36575 -3.02128,7.16547 0,5.59944 4.61752,10.1414 10.3177,10.1414 5.69511,0 10.3177,-4.54199 10.3126,-10.1414 0,-2.79972 -1.15312,-5.33256 -3.02128,-7.16547l0 -20.7411 14.9251 14.6633c0,2.5983 1.00709,5.19156 3.02128,7.1705 4.02837,3.95787 10.5644,3.95787 14.5928,0 4.02837,-3.95787 4.02837,-10.3781 0,-14.336 -2.01419,-1.98397 -4.65277,-2.97092 -7.29639,-2.97092l-14.9251 -14.6683 21.1087 0c1.86816,1.83794 4.44631,2.97092 7.29639,2.97092 5.69511,0 10.3177,-4.54199 10.3177,-10.1364l0 0 -121.41 0 0 55.3549zm32.5392 -33.5211l-14.9251 -14.6683 14.9251 0 0 0 14.9251 0 -14.9251 14.6683z"/>
+ <path id="_150938336" class="fil4" d="M873.985 573.197l0 0c10.5241,0 19.0592,-8.38908 19.0592,-18.7319 3.72121,3.65575 8.60057,5.48362 13.4799,5.48362l0 0c4.87936,0 9.75369,-1.82787 13.4749,-5.48362 0,10.3428 8.53511,18.7319 19.0592,18.7319 10.5292,0 19.0643,-8.38908 19.0643,-18.7319 7.44242,7.31653 19.5124,7.31149 26.9548,0 7.44242,-7.31149 7.44242,-19.175 0,-26.4865 10.5241,0 19.0592,-8.38405 19.0592,-18.7269l-8.74157 0 0 0c0,5.5944 -4.62256,10.1364 -10.3177,10.1364 -2.85007,0 -5.42823,-1.13298 -7.29639,-2.97092l-21.1087 0 14.9251 14.6683c2.64362,0 5.2822,0.986951 7.29639,2.97092 4.02837,3.95787 4.02837,10.3781 0,14.336 -4.02837,3.95787 -10.5644,3.95787 -14.5928,0 -2.01419,-1.97894 -3.02128,-4.5722 -3.02128,-7.1705l-14.9251 -14.6633 0 20.7411c1.86816,1.83291 3.02128,4.36575 3.02128,7.16547 0.00503546,5.59944 -4.61752,10.1414 -10.3126,10.1414 -5.70015,0 -10.3177,-4.54199 -10.3177,-10.1414 0,-2.79972 1.15312,-5.33256 3.02128,-7.16547l0 -20.7411 -14.9251 14.6633c0,2.5983 -1.00709,5.19156 -3.02128,7.1705 -2.01419,1.97894 -4.6578,2.96589 -7.29639,2.96589l0 0c-2.64362,0 -5.2822,-0.986951 -7.29639,-2.96589 -2.01419,-1.97894 -3.02128,-4.5722 -3.02128,-7.1705l-14.9251 -14.6633 0 20.7411c1.86816,1.83291 3.02128,4.36575 3.02128,7.16547 0,5.59944 -4.62256,10.1414 -10.3177,10.1414l0 0 0 8.5905zm32.5392 -42.1116l-14.9251 -14.6683 14.9251 0 0 0 14.9251 0 -14.9251 14.6683z"/>
+ </g>
+ <path class="fil9" d="M1017.64 513.512c2.06958,3.40901 3.24787,7.43738 3.24787,11.7276 0,6.22887 -2.52277,11.8787 -6.60149,15.9675l0 0c-4.10894,4.08376 -6.62164,9.73355 -6.62164,15.9725 0,4.29022 1.20851,8.29844 3.28816,11.7175l199.878 0 0 -55.3851 -193.191 0z"/>
+ <path class="fil4" d="M1020.58 528.88c-0.775461,4.76858 -3.03135,9.05376 -6.29433,12.3268l0 0c-4.10894,4.08376 -6.62164,9.73355 -6.62164,15.9725 0,4.29022 1.20851,8.29844 3.28816,11.7175l199.878 0 0 -39.3219c-51.1805,7.89561 -137.302,20.6001 -166.054,7.13525 -3.33348,-1.55596 -19.4268,-6.3044 -24.1954,-7.83015z"/>
+ <g id="_151267008">
+ <path id="_150624112" class="fil1 str3" d="M1111.53 537.113l13.3389 0 0 13.3389 0.00503546 0c0,7.36688 -5.9771,13.344 -13.344,13.344 -7.36688,0 -13.3389,-5.97206 -13.3389,-13.3389l0 -0.00503546 0 -18.8628 -0.00503546 0c0,-7.36688 5.9771,-13.344 13.344,-13.344 7.36688,0 13.3389,5.9771 13.3389,13.344l-7.81504 0c0,-3.05149 -2.47241,-5.5239 -5.5239,-5.5239 -3.05149,0 -5.5239,2.47241 -5.5239,5.5239l0 18.8679 0 0c0,3.04646 2.47241,5.51887 5.5239,5.51887 3.05149,0 5.5239,-2.47241 5.5239,-5.51887l0 -0.00503546 0 -5.51887 -5.5239 0 0 -7.82008z"/>
+ <path id="_150800864" class="fil1 str3" d="M1048.73 541.02c-2.41702,-2.41199 -3.90752,-5.7505 -3.90752,-9.43142 0,-7.36688 5.97206,-13.344 13.3389,-13.344 7.36688,0 13.3389,5.9771 13.3389,13.344l-7.81 0c0,-3.05149 -2.47745,-5.52894 -5.52894,-5.52894 -3.05149,0 -5.5239,2.47745 -5.5239,5.52894 0,1.52071 0.614327,2.90546 1.61638,3.90248l0 0c1.00206,1.00206 2.38177,1.62142 3.90752,1.62142l0 0c3.68596,0 7.01944,1.49553 9.43142,3.90752l0 0c2.41702,2.41702 3.90752,5.7505 3.90752,9.43646 0,7.36688 -5.97206,13.3389 -13.3389,13.3389 -7.36688,0 -13.3389,-5.97206 -13.3389,-13.3389l7.81504 0c0,3.05149 2.47241,5.5239 5.5239,5.5239 3.05149,0 5.52894,-2.47241 5.52894,-5.5239 0,-1.52575 -0.619362,-2.90546 -1.61638,-3.90752l-0.00503546 0c-0.997022,-1.00206 -2.38177,-1.61638 -3.90752,-1.61638l0 -0.00503546c-3.68092,0 -7.01944,-1.49553 -9.43142,-3.90752l0 0z"/>
+ <polygon id="_150800600" class="fil1 str3" points="1098.18,518.245 1088.75,563.796 1080.94,563.796 1071.5,518.245 1079.32,518.245 1084.85,544.923 1090.37,518.245 "/>
+ <path id="_151199832" class="fil1 str3" d="M1140.97 524.917l0 6.67199 6.67199 0 0 32.2068 7.81504 0 0 -45.5508 -7.81504 0c0,3.68596 -2.98603,6.67199 -6.67199,6.67199z"/>
+ <rect id="_151199416" class="fil1 str3" x="1159.37" y="555.98" width="7.81492" height="7.81492"/>
+ <path id="_151267112" class="fil1 str3" d="M1167.35 550.457c0,7.36688 5.9771,13.3389 13.344,13.3389 7.36688,0 13.3389,-5.97206 13.3389,-13.3389l0 -18.8679c0,-7.36688 -5.97206,-13.344 -13.3389,-13.344 -7.36688,0 -13.344,5.9771 -13.344,13.344l0.0151064 0 0 0 -0.0151064 0 0 0.00503546 -0.0100709 0.00503546 0.0100709 0.00503546 0 18.8528zm7.77476 -18.8679l0.0402837 0c0,-3.05149 2.47745,-5.52894 5.52894,-5.52894 3.05149,0 5.5239,2.47745 5.5239,5.52894l0 18.8679c0,3.05149 -2.47241,5.5239 -5.5239,5.5239 -3.05149,0 -5.52894,-2.47241 -5.52894,-5.5239l0 -18.8679 -0.0402837 0 0 0z"/>
+ </g>
+ <path class="fil10" d="M1001.91 573.197l-127.921 0 0 -30.6912 4.26 -1.02723 0 27.4181 123.998 0 0.0100709 0.372624c0,1.32433 -0.115816,2.62851 -0.347447,3.92766z"/>
+ <path class="fil12" d="M873.985 564.601l0 0c1.52575,0 2.95582,-0.317234 4.26,-0.896313l0 -50.1935 116.188 0c0.609291,-1.28908 0.956738,-2.74433 0.956738,-4.26l0 0 -121.405 0 0 55.3498z"/>
+ <path class="fil9" d="M873.985 573.192l0 0c4.61752,0 8.84227,-1.60631 12.1455,-4.29525l-7.88554 0 0 -5.19156c-1.30419,0.579078 -2.73426,0.896313 -4.26,0.896313l0 0 0 8.5905zm52.9127 -4.29525c3.29823,2.68894 7.54816,4.29525 12.1657,4.29525 4.61752,0 8.84227,-1.60631 12.1455,-4.29525l-24.3112 0zm76.7354 -55.3851c0.32227,-1.36461 0.503546,-2.79972 0.503546,-4.26l-8.7466 0 0 0c0,1.51567 -0.347447,2.97092 -0.956738,4.26l9.19979 0z"/>
+ <g id="_151233224">
+ <rect id="_151238240" class="fil1" x="1042.17" y="1029.15" width="136.426" height="136.426"/>
+ <path id="_150557968" class="fil4" d="M1128.32 1054.21c0,-9.84433 -7.98625,-17.8306 -17.8306,-17.8306 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 0,9.84433 7.98625,17.8306 17.8306,17.8306 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 6.96405,6.95901 18.2536,6.95901 25.2176,0 0,9.84433 7.98625,17.8306 17.8306,17.8306 9.84433,0 17.8306,-7.98625 17.8306,-17.8306 6.96405,6.95901 18.2536,6.95901 25.2176,0 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 9.84433,0 17.8255,-7.98625 17.8255,-17.8306 0,-9.84433 -7.98121,-17.8306 -17.8255,-17.8306 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0z"/>
+ <path id="_151232400" class="fil1" d="M1117.31 1061.04l0 19.7441 13.9633 -13.9633c0,-2.46738 0.941632,-4.93979 2.8249,-6.82305 3.77156,-3.77156 9.88462,-3.77156 13.6511,0 3.77156,3.76653 3.77156,9.87958 0,13.6511 -1.88326,1.88326 -4.35568,2.8249 -6.82305,2.8249l-13.9633 13.9633 19.7441 0c1.74731,-1.74731 4.15929,-2.82993 6.82809,-2.82993 5.32752,0 9.64795,4.32546 9.64795,9.65298 0,5.32752 -4.32043,9.65298 -9.64795,9.65298 -2.6688,0 -5.08078,-1.08262 -6.82809,-2.82993l-19.7441 0 13.9633 13.9633c2.46738,0 4.93979,0.941632 6.82305,2.8249 3.77156,3.77156 3.77156,9.88462 0,13.6511 -3.76653,3.77156 -9.87958,3.77156 -13.6511,0 -1.88326,-1.88326 -2.8249,-4.35568 -2.8249,-6.82305l-13.9633 -13.9633 0 19.7441c1.74731,1.74731 2.82993,4.15929 2.82993,6.82809 0,5.32752 -4.32546,9.64795 -9.65298,9.64795 -5.32752,0 -9.65298,-4.32043 -9.65298,-9.64795 0,-2.6688 1.08262,-5.08078 2.82993,-6.82809l0 -19.7441 -13.9633 13.9633c0,2.46738 -0.941632,4.93979 -2.8249,6.82305 -3.77156,3.77156 -9.88462,3.77156 -13.6511,0 -3.77156,-3.76653 -3.77156,-9.87958 0,-13.6511 1.88326,-1.88326 4.35568,-2.8249 6.82305,-2.8249l13.9633 -13.9633 -19.7441 0c-1.74731,1.74731 -4.15929,2.82993 -6.82809,2.82993 -5.32752,0 -9.64795,-4.32546 -9.64795,-9.65298 0,-5.32752 4.32043,-9.65298 9.64795,-9.65298 2.6688,0 5.08078,1.08262 6.82809,2.82993l19.7441 0 -13.9633 -13.9633c-2.46738,0 -4.93979,-0.941632 -6.82305,-2.8249 -3.77156,-3.77156 -3.77156,-9.88462 0,-13.6511 3.76653,-3.77156 9.87958,-3.77156 13.6511,0 1.88326,1.88326 2.8249,4.35568 2.8249,6.82305l13.9633 13.9633 0 -19.7441c-1.74731,-1.74731 -2.82993,-4.15929 -2.82993,-6.82809 0,-5.32752 4.32546,-9.64795 9.65298,-9.64795 5.32752,0 9.65298,4.32043 9.65298,9.64795 0,2.6688 -1.08262,5.08078 -2.82993,6.82809z"/>
+ <rect id="_151231864" class="fil4" x="1049.61" y="1097.36" width="121.742" height="60.7704"/>
+ <rect id="_151229280" class="fil4" x="1049.61" y="1131.46" width="121.742" height="26.6689"/>
+ <path id="_151218432" class="fil3" d="M1062.37 1103l97.2147 0c3.98305,0 7.23596,3.25291 7.23596,7.23596l0 24.4069c-37.5696,-4.64773 -74.8169,-11.073 -111.687,-10.4788l0 -13.9281c0,-3.98305 3.25291,-7.23596 7.23596,-7.23596z"/>
+ <polygon id="_150632792" class="fil1 str3" points="1126.28,1101.36 1115.04,1155.64 1105.72,1155.64 1094.48,1101.36 1103.79,1101.36 1110.38,1133.15 1116.96,1101.36 "/>
+ <path id="_151198648" class="fil1 str3" d="M1142.18 1123.84l15.902 0 0 15.897 0 0c0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l0 0 0 -22.4833 -0.00503546 0c0,-8.77681 7.12015,-15.897 15.902,-15.897 8.78185,0 15.902,7.12015 15.902,15.897l-9.31561 0c0,-3.63561 -2.95078,-6.58135 -6.58639,-6.58135 -3.63561,0 -6.58135,2.94575 -6.58135,6.58135l0 22.4833 0 0c0,3.63561 2.94575,6.58639 6.58135,6.58639 3.63561,0 6.58639,-2.95078 6.58639,-6.58135l0 -0.00503546 0 -6.58135 -6.58639 0 0 -9.31561z"/>
+ <path id="_151233416" class="fil1 str3" d="M1067.34 1128.5c-2.87525,-2.88029 -4.6578,-6.85327 -4.6578,-11.2442 0,-8.78185 7.12015,-15.897 15.902,-15.897 8.77681,0 15.897,7.11511 15.897,15.897l-9.31057 0c0,-3.63561 -2.95078,-6.58639 -6.58639,-6.58639 -3.63561,0 -6.58639,2.95078 -6.58639,6.58639 0,1.8178 0.735178,3.45936 1.92355,4.65277l0.00503546 0c1.1934,1.1934 2.84,1.92858 4.6578,1.92858l0 0.00503546c4.39092,0 8.36391,1.77752 11.2392,4.6578l0 0c2.88029,2.87525 4.6578,6.85327 4.6578,11.2392 0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l9.31561 0c0,3.64064 2.95078,6.58639 6.58639,6.58639 3.63561,0 6.58639,-2.94575 6.58639,-6.58639 0,-1.81277 -0.735178,-3.45936 -1.92858,-4.65277l0 0c-1.1934,-1.18837 -2.84,-1.92858 -4.6578,-1.92858l0 0c-4.39092,0 -8.36391,-1.78255 -11.2442,-4.6578l0 0z"/>
+ </g>
+ <g id="_150651136">
+ <rect id="_151232672" class="fil0" x="1210.58" y="1029.36" width="136.426" height="136.426"/>
+ <g>
+ <path id="_151095184" class="fil4" d="M1296.94 1054.42c0,-9.84433 -7.98625,-17.8306 -17.8306,-17.8306 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 0,9.84433 7.98625,17.8306 17.8306,17.8306 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 6.96405,6.95901 18.2536,6.95901 25.2176,0 0,9.84433 7.98625,17.8306 17.8306,17.8306 9.84433,0 17.8306,-7.98625 17.8306,-17.8306 6.96405,6.95901 18.2536,6.95901 25.2176,0 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 9.84433,0 17.8255,-7.98625 17.8255,-17.8306 0,-9.84433 -7.98121,-17.8306 -17.8255,-17.8306 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0z"/>
+ <path id="_21729184" class="fil1" d="M1285.93 1061.24l0 19.7441 13.9633 -13.9633c0,-2.46738 0.941632,-4.93979 2.8249,-6.82305 3.77156,-3.77156 9.88462,-3.77156 13.6511,0 3.77156,3.76653 3.77156,9.87958 0,13.6511 -1.88326,1.88326 -4.35568,2.8249 -6.82305,2.8249l-13.9633 13.9633 19.7441 0c1.74731,-1.74731 4.15929,-2.82993 6.82809,-2.82993 5.32752,0 9.64795,4.32546 9.64795,9.65298 0,5.32752 -4.32043,9.65298 -9.64795,9.65298 -2.6688,0 -5.08078,-1.08262 -6.82809,-2.82993l-19.7441 0 13.9633 13.9633c2.46738,0 4.93979,0.941632 6.82305,2.8249 3.77156,3.77156 3.77156,9.88462 0,13.6511 -3.76653,3.77156 -9.87958,3.77156 -13.6511,0 -1.88326,-1.88326 -2.8249,-4.35568 -2.8249,-6.82305l-13.9633 -13.9633 0 19.7441c1.74731,1.74731 2.82993,4.15929 2.82993,6.82809 0,5.32752 -4.32546,9.64795 -9.65298,9.64795 -5.32752,0 -9.65298,-4.32043 -9.65298,-9.64795 0,-2.6688 1.08262,-5.08078 2.82993,-6.82809l0 -19.7441 -13.9633 13.9633c0,2.46738 -0.941632,4.93979 -2.8249,6.82305 -3.77156,3.77156 -9.88462,3.77156 -13.6511,0 -3.77156,-3.76653 -3.77156,-9.87958 0,-13.6511 1.88326,-1.88326 4.35568,-2.8249 6.82305,-2.8249l13.9633 -13.9633 -19.7441 0c-1.74731,1.74731 -4.15929,2.82993 -6.82809,2.82993 -5.32752,0 -9.64795,-4.32546 -9.64795,-9.65298 0,-5.32752 4.32043,-9.65298 9.64795,-9.65298 2.6688,0 5.08078,1.08262 6.82809,2.82993l19.7441 0 -13.9633 -13.9633c-2.46738,0 -4.93979,-0.941632 -6.82305,-2.8249 -3.77156,-3.77156 -3.77156,-9.88462 0,-13.6511 3.76653,-3.77156 9.87958,-3.77156 13.6511,0 1.88326,1.88326 2.8249,4.35568 2.8249,6.82305l13.9633 13.9633 0 -19.7441c-1.74731,-1.74731 -2.82993,-4.15929 -2.82993,-6.82809 0,-5.32752 4.32546,-9.64795 9.65298,-9.64795 5.32752,0 9.65298,4.32043 9.65298,9.64795 0,2.6688 -1.08262,5.08078 -2.82993,6.82809z"/>
+ <rect id="_151269408" class="fil4" x="1218.23" y="1097.57" width="121.742" height="60.7704"/>
+ <rect id="_151269144" class="fil4" x="1218.23" y="1131.67" width="121.742" height="26.6689"/>
+ <path id="_151023512" class="fil3" d="M1230.99 1103.2l97.2147 0c3.98305,0 7.23596,3.25291 7.23596,7.23596l0 24.4069c-37.5696,-4.64773 -74.8169,-11.073 -111.687,-10.4788l0 -13.9281c0,-3.98305 3.25291,-7.23596 7.23596,-7.23596z"/>
+ <polygon id="_151179344" class="fil1 str3" points="1294.9,1101.56 1283.66,1155.85 1274.35,1155.85 1263.1,1101.56 1272.42,1101.56 1279,1133.36 1285.58,1101.56 "/>
+ <path id="_150845512" class="fil1 str3" d="M1310.8 1124.05l15.902 0 0 15.897 0 0c0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l0 0 0 -22.4833 -0.00503546 0c0,-8.77681 7.12015,-15.897 15.902,-15.897 8.78185,0 15.902,7.12015 15.902,15.897l-9.31561 0c0,-3.63561 -2.95078,-6.58135 -6.58639,-6.58135 -3.63561,0 -6.58135,2.94575 -6.58135,6.58135l0 22.4833 0 0c0,3.63561 2.94575,6.58639 6.58135,6.58639 3.63561,0 6.58639,-2.95078 6.58639,-6.58135l0 -0.00503546 0 -6.58135 -6.58639 0 0 -9.31561z"/>
+ <path id="_151257128" class="fil1 str3" d="M1235.96 1128.7c-2.87525,-2.88029 -4.6578,-6.85327 -4.6578,-11.2442 0,-8.78185 7.12015,-15.897 15.902,-15.897 8.77681,0 15.897,7.11511 15.897,15.897l-9.31057 0c0,-3.63561 -2.95078,-6.58639 -6.58639,-6.58639 -3.63561,0 -6.58639,2.95078 -6.58639,6.58639 0,1.8178 0.735178,3.45936 1.92355,4.65277l0.00503546 0c1.1934,1.1934 2.84,1.92858 4.6578,1.92858l0 0.00503546c4.39092,0 8.36391,1.77752 11.2392,4.6578l0 0c2.88029,2.87525 4.6578,6.85327 4.6578,11.2392 0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l9.31561 0c0,3.64064 2.95078,6.58639 6.58639,6.58639 3.63561,0 6.58639,-2.94575 6.58639,-6.58639 0,-1.81277 -0.735178,-3.45936 -1.92858,-4.65277l0 0c-1.1934,-1.18837 -2.84,-1.92858 -4.6578,-1.92858l0 0c-4.39092,0 -8.36391,-1.78255 -11.2442,-4.6578l0 0z"/>
+ </g>
+ </g>
+ <g id="_151253112">
+ <rect id="_150787136" class="fil0" x="652.077" y="1029.36" width="136.426" height="136.426"/>
+ <g>
+ <path id="_151138696" class="fil4" d="M738.441 1054.42c0,-9.84433 -7.98625,-17.8306 -17.8306,-17.8306 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 -9.84433,0 -17.8306,7.98625 -17.8306,17.8306 0,9.84433 7.98625,17.8306 17.8306,17.8306 -6.95901,6.96405 -6.95901,18.2536 0,25.2176 6.96405,6.95901 18.2536,6.95901 25.2176,0 0,9.84433 7.98625,17.8306 17.8306,17.8306 9.84433,0 17.8306,-7.98625 17.8306,-17.8306 6.96405,6.95901 18.2536,6.95901 25.2176,0 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 9.84433,0 17.8255,-7.98625 17.8255,-17.8306 0,-9.84433 -7.98121,-17.8306 -17.8255,-17.8306 6.95901,-6.96405 6.95901,-18.2536 0,-25.2176 -6.96405,-6.95901 -18.2536,-6.95901 -25.2176,0z"/>
+ <path id="_150650480" class="fil1" d="M727.433 1061.24l0 19.7441 13.9633 -13.9633c0,-2.46738 0.941632,-4.93979 2.8249,-6.82305 3.77156,-3.77156 9.88462,-3.77156 13.6511,0 3.77156,3.76653 3.77156,9.87958 0,13.6511 -1.88326,1.88326 -4.35568,2.8249 -6.82305,2.8249l-13.9633 13.9633 19.7441 0c1.74731,-1.74731 4.15929,-2.82993 6.82809,-2.82993 5.32752,0 9.64795,4.32546 9.64795,9.65298 0,5.32752 -4.32043,9.65298 -9.64795,9.65298 -2.6688,0 -5.08078,-1.08262 -6.82809,-2.82993l-19.7441 0 13.9633 13.9633c2.46738,0 4.93979,0.941632 6.82305,2.8249 3.77156,3.77156 3.77156,9.88462 0,13.6511 -3.76653,3.77156 -9.87958,3.77156 -13.6511,0 -1.88326,-1.88326 -2.8249,-4.35568 -2.8249,-6.82305l-13.9633 -13.9633 0 19.7441c1.74731,1.74731 2.82993,4.15929 2.82993,6.82809 0,5.32752 -4.32546,9.64795 -9.65298,9.64795 -5.32752,0 -9.65298,-4.32043 -9.65298,-9.64795 0,-2.6688 1.08262,-5.08078 2.82993,-6.82809l0 -19.7441 -13.9633 13.9633c0,2.46738 -0.941632,4.93979 -2.8249,6.82305 -3.77156,3.77156 -9.88462,3.77156 -13.6511,0 -3.77156,-3.76653 -3.77156,-9.87958 0,-13.6511 1.88326,-1.88326 4.35568,-2.8249 6.82305,-2.8249l13.9633 -13.9633 -19.7441 0c-1.74731,1.74731 -4.15929,2.82993 -6.82809,2.82993 -5.32752,0 -9.64795,-4.32546 -9.64795,-9.65298 0,-5.32752 4.32043,-9.65298 9.64795,-9.65298 2.6688,0 5.08078,1.08262 6.82809,2.82993l19.7441 0 -13.9633 -13.9633c-2.46738,0 -4.93979,-0.941632 -6.82305,-2.8249 -3.77156,-3.77156 -3.77156,-9.88462 0,-13.6511 3.76653,-3.77156 9.87958,-3.77156 13.6511,0 1.88326,1.88326 2.8249,4.35568 2.8249,6.82305l13.9633 13.9633 0 -19.7441c-1.74731,-1.74731 -2.82993,-4.15929 -2.82993,-6.82809 0,-5.32752 4.32546,-9.64795 9.65298,-9.64795 5.32752,0 9.65298,4.32043 9.65298,9.64795 0,2.6688 -1.08262,5.08078 -2.82993,6.82809z"/>
+ <rect id="_151211168" class="fil4" x="659.736" y="1097.57" width="121.742" height="60.7704"/>
+ <rect id="_150915976" class="fil4" x="659.736" y="1131.67" width="121.742" height="26.6689"/>
+ <path id="_151209512" class="fil3" d="M672.496 1103.2l97.2147 0c3.98305,0 7.23596,3.25291 7.23596,7.23596l0 24.4069c-37.5696,-4.64773 -74.8169,-11.073 -111.687,-10.4788l0 -13.9281c0,-3.98305 3.25291,-7.23596 7.23596,-7.23596z"/>
+ <polygon id="_150759968" class="fil1 str3" points="736.401,1101.56 725.162,1155.85 715.847,1155.85 704.602,1101.56 713.918,1101.56 720.504,1133.36 727.086,1101.56 "/>
+ <path id="_150625952" class="fil1 str3" d="M752.303 1124.05l15.902 0 0 15.897 0 0c0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l0 0 0 -22.4833 -0.00503546 0c0,-8.77681 7.12015,-15.897 15.902,-15.897 8.78185,0 15.902,7.12015 15.902,15.897l-9.31561 0c0,-3.63561 -2.95078,-6.58135 -6.58639,-6.58135 -3.63561,0 -6.58135,2.94575 -6.58135,6.58135l0 22.4833 0 0c0,3.63561 2.94575,6.58639 6.58135,6.58639 3.63561,0 6.58639,-2.95078 6.58639,-6.58135l0 -0.00503546 0 -6.58135 -6.58639 0 0 -9.31561z"/>
+ <path id="_151267784" class="fil1 str3" d="M677.461 1128.7c-2.87525,-2.88029 -4.6578,-6.85327 -4.6578,-11.2442 0,-8.78185 7.12015,-15.897 15.902,-15.897 8.77681,0 15.897,7.11511 15.897,15.897l-9.31057 0c0,-3.63561 -2.95078,-6.58639 -6.58639,-6.58639 -3.63561,0 -6.58639,2.95078 -6.58639,6.58639 0,1.8178 0.735178,3.45936 1.92355,4.65277l0.00503546 0c1.1934,1.1934 2.84,1.92858 4.6578,1.92858l0 0.00503546c4.39092,0 8.36391,1.77752 11.2392,4.6578l0 0c2.88029,2.87525 4.6578,6.85327 4.6578,11.2392 0,8.78185 -7.12015,15.902 -15.897,15.902 -8.78185,0 -15.902,-7.12015 -15.902,-15.902l9.31561 0c0,3.64064 2.95078,6.58639 6.58639,6.58639 3.63561,0 6.58639,-2.94575 6.58639,-6.58639 0,-1.81277 -0.735178,-3.45936 -1.92858,-4.65277l0 0c-1.1934,-1.18837 -2.84,-1.92858 -4.6578,-1.92858l0 0c-4.39092,0 -8.36391,-1.78255 -11.2442,-4.6578l0 0z"/>
+ </g>
+ </g>
+ <g id="_150839848">
+ <path id="_151258616" class="fil11" d="M962.046 1049.31c0,-11.0176 -8.93291,-19.9455 -19.9505,-19.9455 -11.0126,0 -19.9455,8.92788 -19.9455,19.9455 -7.78986,-7.78986 -20.4238,-7.78986 -28.2137,0 -7.78986,7.78986 -7.78986,20.4238 0,28.2087 -11.0126,0 -19.9455,8.93291 -19.9455,19.9505 0,11.0126 8.93291,19.9455 19.9455,19.9505 -7.78986,7.78483 -7.78986,20.4188 0,28.2087 7.78986,7.78986 20.4238,7.78986 28.2137,0 0,11.0176 8.93291,19.9455 19.9455,19.9455 11.0176,0 19.9505,-8.93291 19.9505,-19.9455 7.78483,7.78986 20.4188,7.78986 28.2087,0 7.78986,-7.78986 7.78986,-20.4238 0,-28.2087 11.0176,0 19.9505,-8.93795 19.9505,-19.9505 0,-11.0126 -8.93291,-19.9455 -19.9505,-19.9505 7.78986,-7.78483 7.78986,-20.4188 0,-28.2087 -7.78986,-7.78986 -20.4238,-7.78986 -28.2087,0z"/>
+ <path id="_151239296" class="fil9" d="M949.729 1056.94l0 22.0906 15.625 -15.62c0,-2.76447 1.05241,-5.5239 3.16227,-7.63376 4.21468,-4.21468 11.0528,-4.21468 15.2675,0 4.21972,4.21468 4.21972,11.0528 0,15.2726 -2.10482,2.10482 -4.86929,3.16227 -7.63376,3.16227l-15.62 15.62 22.0906 0c1.95376,-1.95376 4.65277,-3.16227 7.63376,-3.16227 5.96199,0 10.8011,4.83405 10.8011,10.796 0,5.96199 -4.83908,10.796 -10.8011,10.796 -2.98099,0 -5.68,-1.20851 -7.63376,-3.16227l-22.0906 0 15.62 15.62c2.76447,0 5.52894,1.05745 7.63376,3.16227 4.21972,4.21972 4.21972,11.0579 0,15.2726 -4.21468,4.21468 -11.0528,4.21468 -15.2675,0 -2.10986,-2.10986 -3.16227,-4.86929 -3.16227,-7.63376l-15.625 -15.62 0 22.0906c1.95376,1.95376 3.16731,4.65277 3.16731,7.63376 0,5.96199 -4.83908,10.796 -10.8011,10.796 -5.96199,0 -10.796,-4.83405 -10.796,-10.796 0,-2.98099 1.20851,-5.68 3.16227,-7.63376l0 -22.0906 -15.62 15.62c0,2.76447 -1.05745,5.5239 -3.16227,7.63376 -4.21972,4.21468 -11.0579,4.21468 -15.2726,0 -4.21468,-4.21468 -4.21468,-11.0528 0,-15.2726 2.10986,-2.10482 4.86929,-3.16227 7.63376,-3.16227l15.62 -15.62 -22.0906 0c-1.95376,1.95376 -4.65277,3.16227 -7.63376,3.16227 -5.96199,0 -10.796,-4.83405 -10.796,-10.796 0,-5.96199 4.83405,-10.796 10.796,-10.796 2.98099,0 5.68,1.20851 7.63376,3.16227l22.0906 0 -15.62 -15.62c-2.76447,0 -5.5239,-1.05745 -7.63376,-3.16227 -4.21468,-4.21972 -4.21468,-11.0579 0,-15.2726 4.21468,-4.21468 11.0528,-4.21468 15.2726,0 2.10482,2.10986 3.16227,4.86929 3.16227,7.63376l15.62 15.62 0 -22.0906c-1.95376,-1.95376 -3.16227,-4.65277 -3.16227,-7.63376 0,-5.96199 4.83405,-10.796 10.796,-10.796 5.96199,0 10.8011,4.83405 10.8011,10.796 0,2.98099 -1.21355,5.68 -3.16731,7.63376z"/>
+ <rect id="_151236288" class="fil4" x="893.936" y="1097.58" width="96.3105" height="62.1524"/>
+ <path id="_151219256" class="fil3" d="M903.765 1100.93l76.7103 0c3.14213,0 5.71022,2.57312 5.71022,5.71022l-0.00503546 36.1848c-29.6438,-3.66582 -59.5141,-14.4417 -88.6091,-13.9734l0.483405 -22.2114c0.0704965,-3.14213 2.56809,-5.71022 5.71022,-5.71022z"/>
+ <g>
+ <polygon id="_151230240" class="fil1 str3" points="955.016,1105.97 945.6,1151.43 937.8,1151.43 928.389,1105.97 936.188,1105.97 941.702,1132.6 947.216,1105.97 "/>
+ <path id="_150790784" class="fil1 str3" d="M968.33 1124.81l13.3138 0 0 13.3087 0 0c0,7.35178 -5.96199,13.3138 -13.3138,13.3138 -7.35178,0 -13.3138,-5.96199 -13.3138,-13.3138l0 0 0 -18.8276 0 0c0,-7.35178 5.96199,-13.3138 13.3138,-13.3138 7.35178,0 13.3138,5.96199 13.3138,13.3138l-7.79993 0c0,-3.04142 -2.46738,-5.5088 -5.51383,-5.5088 -3.04646,0 -5.51383,2.46738 -5.51383,5.5088l0 18.8276 0 0c0,3.04646 2.47241,5.51383 5.51383,5.51383 3.04142,0 5.51383,-2.46738 5.51383,-5.51383l0 0 0 -5.5088 -5.51383 0 0 -7.79993z"/>
+ <path id="_150486776" class="fil1 str3" d="M905.663 1128.7c-2.41199,-2.41199 -3.90248,-5.74043 -3.90248,-9.41632 0,-7.35178 5.96199,-13.3138 13.3138,-13.3138 7.35178,0 13.3138,5.96199 13.3138,13.3138l-7.79993 0c0,-3.04142 -2.46738,-5.51383 -5.51383,-5.51383 -3.04646,0 -5.51383,2.47241 -5.51383,5.51383 0,1.52071 0.614327,2.90043 1.61135,3.89745l0.00503546 0c0.997022,0.997022 2.37674,1.61638 3.89745,1.61638l0 0c3.67589,0 7.00433,1.4905 9.41128,3.90248l0.00503546 0c2.40695,2.40695 3.89745,5.73539 3.89745,9.41128 0,7.35178 -5.96199,13.3138 -13.3138,13.3138 -7.35178,0 -13.3138,-5.96199 -13.3138,-13.3138l7.79993 0c0,3.04646 2.46738,5.51383 5.51383,5.51383 3.04646,0 5.51383,-2.46738 5.51383,-5.51383 0,-1.52071 -0.614327,-2.89539 -1.61135,-3.89745l0 0c-1.00206,-0.997022 -2.37674,-1.61638 -3.90248,-1.61638l0 0c-3.67589,0 -7.00433,-1.4905 -9.41128,-3.89745l0 0z"/>
+ </g>
+ </g>
+ <path class="fil4" d="M1148.93 1497.42c0,-6.89355 -5.5944,-12.4829 -12.488,-12.4829 -6.89355,0 -12.488,5.58937 -12.488,12.4829 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0 -4.87433,4.87936 -4.87433,12.785 0,17.6594 -6.89355,0 -12.488,5.5944 -12.488,12.488 0,6.89355 5.5944,12.488 12.488,12.488 -4.87433,4.87433 -4.87433,12.78 0,17.6594 4.87433,4.87433 12.785,4.87433 17.6594,0 0,6.89355 5.5944,12.4829 12.488,12.4829 6.89355,0 12.488,-5.58937 12.488,-12.4829 4.87433,4.87433 12.785,4.87433 17.6594,0 4.87433,-4.87936 4.87433,-12.785 0,-17.6594 6.89355,0 12.488,-5.5944 12.488,-12.488 0,-6.89355 -5.5944,-12.488 -12.488,-12.488 4.87433,-4.87433 4.87433,-12.78 0,-17.6594 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0z"/>
+ <path class="fil11" d="M1036.14 1497.42c0,-6.89355 -5.5944,-12.4829 -12.488,-12.4829 -6.89355,0 -12.488,5.58937 -12.488,12.4829 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0 -4.87433,4.87936 -4.87433,12.785 0,17.6594 -6.89355,0 -12.488,5.5944 -12.488,12.488 0,6.89355 5.5944,12.488 12.488,12.488 -4.87433,4.87433 -4.87433,12.78 0,17.6594 4.87433,4.87433 12.785,4.87433 17.6594,0 0,6.89355 5.5944,12.4829 12.488,12.4829 6.89355,0 12.488,-5.58937 12.488,-12.4829 4.87433,4.87433 12.785,4.87433 17.6594,0 4.87433,-4.87936 4.87433,-12.785 0,-17.6594 6.89355,0 12.488,-5.5944 12.488,-12.488 0,-6.89355 -5.5944,-12.488 -12.488,-12.488 4.87433,-4.87433 4.87433,-12.78 0,-17.6594 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0z"/>
+ <path class="fil1" d="M1141.22 1502.2l0 13.8274 9.77887 -9.77887c0,-1.7322 0.659646,-3.45936 1.97894,-4.77866 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 2.63858,2.63858 2.63858,6.91873 0,9.55731 -1.31929,1.31929 -3.05149,1.97894 -4.77866,1.97894l-9.77887 9.77887 13.8274 0c1.22362,-1.22362 2.9105,-1.97894 4.77866,-1.97894 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -1.86816,0 -3.55504,-0.75532 -4.77866,-1.97894l-13.8274 0 9.77887 9.77887c1.72716,0 3.45936,0.659646 4.77866,1.97894 2.63858,2.63858 2.63858,6.91873 0,9.55731 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -1.31929,-1.31929 -1.97894,-3.04646 -1.97894,-4.77866l-9.77887 -9.77887 0 13.8274c1.22362,1.22362 1.97894,2.91553 1.97894,4.78369 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-1.86816 0.75532,-3.56007 1.97894,-4.78369l0 -13.8274 -9.77887 9.77887c0,1.7322 -0.659646,3.45936 -1.97894,4.77866 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 1.31929,-1.31929 3.05149,-1.97894 4.77866,-1.97894l9.77887 -9.77887 -13.8274 0c-1.22362,1.22362 -2.9105,1.97894 -4.77866,1.97894 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 1.86816,0 3.55504,0.75532 4.77866,1.97894l13.8274 0 -9.77887 -9.77887c-1.72716,0 -3.45936,-0.659646 -4.77866,-1.97894 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 1.31929,1.31929 1.97894,3.04646 1.97894,4.77866l9.77887 9.77887 0 -13.8274c-1.22362,-1.22362 -1.97894,-2.91553 -1.97894,-4.78369 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,1.86816 -0.75532,3.56007 -1.97894,4.78369z"/>
+ <path class="fil3" d="M1028.43 1502.2l0 13.8274 9.77887 -9.77887c0,-1.7322 0.659646,-3.45936 1.97894,-4.77866 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 2.63858,2.63858 2.63858,6.91873 0,9.55731 -1.31929,1.31929 -3.05149,1.97894 -4.77866,1.97894l-9.77887 9.77887 13.8274 0c1.22362,-1.22362 2.9105,-1.97894 4.77866,-1.97894 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -1.86816,0 -3.55504,-0.75532 -4.77866,-1.97894l-13.8274 0 9.77887 9.77887c1.72716,0 3.45936,0.659646 4.77866,1.97894 2.63858,2.63858 2.63858,6.91873 0,9.55731 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -1.31929,-1.31929 -1.97894,-3.04646 -1.97894,-4.77866l-9.77887 -9.77887 0 13.8274c1.22362,1.22362 1.97894,2.91553 1.97894,4.78369 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-1.86816 0.75532,-3.56007 1.97894,-4.78369l0 -13.8274 -9.77887 9.77887c0,1.7322 -0.659646,3.45936 -1.97894,4.77866 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 1.31929,-1.31929 3.05149,-1.97894 4.77866,-1.97894l9.77887 -9.77887 -13.8274 0c-1.22362,1.22362 -2.9105,1.97894 -4.77866,1.97894 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 1.86816,0 3.55504,0.75532 4.77866,1.97894l13.8274 0 -9.77887 -9.77887c-1.72716,0 -3.45936,-0.659646 -4.77866,-1.97894 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 1.31929,1.31929 1.97894,3.04646 1.97894,4.77866l9.77887 9.77887 0 -13.8274c-1.22362,-1.22362 -1.97894,-2.91553 -1.97894,-4.78369 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,1.86816 -0.75532,3.56007 -1.97894,4.78369z"/>
+ <rect class="fil4" x="1093.81" y="1527.64" width="85.2619" height="42.5571"/>
+ <rect class="fil1" x="981.021" y="1527.64" width="85.2619" height="42.5571"/>
+ <g id="_150668624">
+ <polygon id="_150670392" class="fil1 str3" points="1147.51,1530.44 1139.63,1568.45 1133.11,1568.45 1125.23,1530.44 1131.76,1530.44 1136.37,1552.7 1140.98,1530.44 "/>
+ <path id="_150680944" class="fil1 str3" d="M1158.64 1546.18l11.1384 0 0 11.1334 0 0c0,6.1483 -4.98511,11.1334 -11.1384,11.1334 -6.1483,0 -11.1334,-4.98511 -11.1334,-11.1334l0 0 0 -15.7459 0 0c0,-6.1483 4.98511,-11.1334 11.1334,-11.1334 6.1483,0 11.1384,4.98511 11.1384,11.1334l-6.52596 0c0,-2.54794 -2.06454,-4.61249 -4.61249,-4.61249 -2.54291,0 -4.60745,2.06454 -4.60745,4.61249l0 15.7459 0 0c0,2.54291 2.06454,4.60745 4.60745,4.60745 2.54794,0 4.61249,-2.0595 4.61249,-4.60745l0 0 0 -4.60745 -4.61249 0 0 -6.52596z"/>
+ <path id="_150668816" class="fil1 str3" d="M1106.23 1549.44c-2.01419,-2.01419 -3.26298,-4.7988 -3.26298,-7.87043 0,-6.1483 4.98511,-11.1334 11.1384,-11.1334 6.1483,0 11.1334,4.98511 11.1334,11.1334l-6.52596 0c0,-2.54794 -2.06454,-4.61249 -4.60745,-4.61249 -2.54794,0 -4.61249,2.06454 -4.61249,4.61249 0,1.27397 0.513617,2.42206 1.34447,3.25795l0.00503546 0c0.835887,0.835887 1.98901,1.3495 3.26298,1.3495l0 0.00503546c3.07163,0 5.85624,1.24376 7.87043,3.26298l0 0c2.01419,2.01419 3.26298,4.79376 3.26298,7.87043 0,6.1483 -4.98511,11.1334 -11.1334,11.1334 -6.15334,0 -11.1384,-4.98511 -11.1384,-11.1334l6.52596 0c0,2.54794 2.06454,4.61249 4.61249,4.61249 2.54291,0 4.60745,-2.06454 4.60745,-4.61249 0,-1.27397 -0.513617,-2.42206 -1.34447,-3.25795l-0.00503546 0c-0.835887,-0.835887 -1.98901,-1.35454 -3.25795,-1.35454l0 0c-3.07667,0 -5.86128,-1.2488 -7.87547,-3.26298l0 0z"/>
+ </g>
+ <g id="_150667792">
+ <polygon id="_151224656" class="fil4 str4" points="1034.67,1531.95 1026.75,1570.19 1020.19,1570.19 1012.26,1531.95 1018.83,1531.95 1023.47,1554.35 1028.11,1531.95 "/>
+ <path id="_151119088" class="fil4 str4" d="M1045.87 1547.79l11.1989 0 0 11.1989 0.00503546 0c0,6.18355 -5.01532,11.1989 -11.2039,11.1989 -6.18355,0 -11.1989,-5.01532 -11.2039,-11.1989l0 0 0 -15.8416 0 0c0,-6.18355 5.01532,-11.1989 11.2039,-11.1989 6.18355,0 11.1989,5.01532 11.1989,11.1989l-6.56121 0c0,-2.55802 -2.07461,-4.63766 -4.63766,-4.63766 -2.56305,0 -4.63766,2.07965 -4.63766,4.63766l0 15.8416 0 0c0,2.55802 2.07461,4.63766 4.63766,4.63766 2.55802,0 4.63766,-2.07965 4.63766,-4.63766l0 0 0 -4.63766 -4.63766 0 0 -6.56121z"/>
+ <path id="_150667984" class="fil4 str4" d="M993.145 1551.07c-2.02929,-2.02929 -3.28312,-4.82901 -3.28312,-7.92078 0,-6.18355 5.01532,-11.1989 11.2039,-11.1989 6.18355,0 11.1989,5.01532 11.1989,11.1989l-6.56121 0c0,-2.56305 -2.07965,-4.63766 -4.63766,-4.63766 -2.56305,0 -4.6427,2.07461 -4.6427,4.63766 0,1.27901 0.518653,2.43716 1.35958,3.27809l0 0c0.840922,0.840922 1.99908,1.35958 3.28312,1.35958l0 0c3.09177,0 5.89149,1.25887 7.91575,3.28312l0.00503546 0c2.02426,2.02929 3.27809,4.82901 3.27809,7.92078 0,6.18355 -5.01532,11.1989 -11.1989,11.1989 -6.18859,0 -11.2039,-5.01532 -11.2039,-11.1989l6.56121 0c0,2.56305 2.07965,4.63766 4.6427,4.63766 2.55802,0 4.63766,-2.07461 4.63766,-4.63766 0,-1.27901 -0.518653,-2.43716 -1.35454,-3.27809l-0.00503546 0c-0.840922,-0.840922 -1.99908,-1.35958 -3.27809,-1.35958l0 -0.00503546c-3.09681,0 -5.89653,-1.25383 -7.92078,-3.27809l0 0z"/>
+ </g>
+ <rect class="fil4" x="874.008" y="1229.52" width="341.068" height="63.9453"/>
+ <rect class="fil1" x="874.008" y="1356.8" width="341.068" height="63.9453"/>
+ <path class="fil9" d="M1210.85 1265.16c-46.7039,6.80795 -92.2296,5.43327 -141.401,1.6617 -51.1704,-3.9327 -134.351,-17.2867 -191.192,-10.2069l0 -22.8409 332.592 0 0 31.386z"/>
+ <path class="fil1" d="M1210.85 1392.44c-46.7039,6.80795 -92.2296,5.43327 -141.401,1.6617 -51.1704,-3.9327 -134.351,-17.2867 -191.192,-10.2069l0 -22.8409 332.592 0 0 31.386z"/>
+ <g id="_151197736">
+ <polygon id="_151212528" class="fil1 str2" points="1007.19,1235.46 996.574,1286.73 987.777,1286.73 977.157,1235.46 985.959,1235.46 992.178,1265.49 998.392,1235.46 "/>
+ <path id="_151216784" class="fil1 str2" d="M1022.21 1256.7l15.0208 0 0 15.0107 0 0c0,8.29341 -6.72234,15.0158 -15.0158,15.0158 -8.29341,0 -15.0208,-6.72234 -15.0208,-15.0158l0 0 0 -21.2346 0 0c0,-8.28837 6.72234,-15.0158 15.0158,-15.0158 8.29341,0 15.0208,6.72738 15.0208,15.0158l-8.80199 0c0,-3.42915 -2.78461,-6.21376 -6.2188,-6.21376 -3.42915,0 -6.21376,2.78461 -6.21376,6.21376l0 21.2346 0 0c0,3.43419 2.78461,6.2188 6.21376,6.2188 3.43419,0 6.2188,-2.78461 6.2188,-6.21376l0 -0.00503546 0 -6.21376 -6.2188 0 0 -8.79696z"/>
+ <path id="_151216520" class="fil1 str2" d="M951.521 1261.1c-2.71412,-2.71915 -4.39596,-6.47057 -4.39596,-10.6198 0,-8.28837 6.72234,-15.0158 15.0158,-15.0158 8.29341,0 15.0158,6.72738 15.0158,15.0158l-8.79696 0c0,-3.43419 -2.78461,-6.2188 -6.2188,-6.2188 -3.43419,0 -6.2188,2.78461 -6.2188,6.2188 0,1.71709 0.694894,3.26802 1.8178,4.39596l0.00503546 0c1.12291,1.12794 2.67887,1.82284 4.39596,1.82284l0 0c4.14419,0 7.90064,1.68184 10.6198,4.401l0 0c2.71412,2.71915 4.39596,6.47057 4.39596,10.6148 0,8.29341 -6.72234,15.0158 -15.0158,15.0158 -8.29341,0 -15.0158,-6.72234 -15.0158,-15.0158l8.79696 0c0,3.43419 2.78461,6.22383 6.2188,6.22383 3.43419,0 6.2188,-2.78965 6.2188,-6.22383 0,-1.71206 -0.694894,-3.26802 -1.8178,-4.39092l0 0c-1.12794,-1.12794 -2.6839,-1.82284 -4.401,-1.82284l0 -0.00503546c-4.14419,0 -7.90064,-1.68184 -10.6148,-4.39596l-0.00503546 0z"/>
+ </g>
+ <g id="_151203528">
+ <polygon id="_150673112" class="fil4" points="1007.19,1362.75 996.574,1414.01 987.777,1414.01 977.157,1362.75 985.959,1362.75 992.178,1392.77 998.392,1362.75 "/>
+ <path id="_150595272" class="fil4" d="M1022.21 1383.99l15.0208 0 0 15.0107 0 0c0,8.29341 -6.72234,15.0158 -15.0158,15.0158 -8.29341,0 -15.0208,-6.72234 -15.0208,-15.0158l0 0 0 -21.2346 0 0c0,-8.28837 6.72234,-15.0158 15.0158,-15.0158 8.29341,0 15.0208,6.72738 15.0208,15.0158l-8.80199 0c0,-3.42915 -2.78461,-6.21376 -6.2188,-6.21376 -3.42915,0 -6.21376,2.78461 -6.21376,6.21376l0 21.2346 0 0c0,3.43419 2.78461,6.2188 6.21376,6.2188 3.43419,0 6.2188,-2.78461 6.2188,-6.21376l0 -0.00503546 0 -6.21376 -6.2188 0 0 -8.79696z"/>
+ <path id="_150589008" class="fil4" d="M951.521 1388.38c-2.71412,-2.71915 -4.39596,-6.47057 -4.39596,-10.6198 0,-8.28837 6.72234,-15.0158 15.0158,-15.0158 8.29341,0 15.0158,6.72738 15.0158,15.0158l-8.79696 0c0,-3.43419 -2.78461,-6.2188 -6.2188,-6.2188 -3.43419,0 -6.2188,2.78461 -6.2188,6.2188 0,1.71709 0.694894,3.26802 1.8178,4.39596l0.00503546 0c1.12291,1.12794 2.67887,1.82284 4.39596,1.82284l0 0c4.14419,0 7.90064,1.68184 10.6198,4.401l0 0c2.71412,2.71915 4.39596,6.47057 4.39596,10.6148 0,8.29341 -6.72234,15.0158 -15.0158,15.0158 -8.29341,0 -15.0158,-6.72234 -15.0158,-15.0158l8.79696 0c0,3.43419 2.78461,6.22383 6.2188,6.22383 3.43419,0 6.2188,-2.78965 6.2188,-6.22383 0,-1.71206 -0.694894,-3.26802 -1.8178,-4.39092l0 0c-1.12794,-1.12794 -2.6839,-1.82284 -4.401,-1.82284l0 -0.00503546c-4.14419,0 -7.90064,-1.68184 -10.6148,-4.39596l-0.00503546 0z"/>
+ </g>
+ <path class="fil1" d="M905.981 1293.46c5.14624,0 9.35086,-4.18447 9.38107,-9.32568 3.65575,3.61546 9.58752,3.60036 13.2282,-0.0402837 3.64064,-3.64064 3.65071,-9.57745 0.0352482,-13.2332 5.14121,-0.0251773 9.32568,-4.22475 9.32568,-9.371 0,-5.15128 -4.18951,-9.35589 -9.34079,-9.37603 3.63057,-3.65071 3.6205,-9.58752 -0.0201419,-13.2332 -3.64064,-3.64064 -9.57242,-3.65071 -13.2282,-0.0302128 -0.0251773,-5.14624 -4.22979,-9.33071 -9.38107,-9.33071 -5.14624,0 -9.35086,4.17944 -9.38107,9.32064 -3.65575,-3.61043 -9.58752,-3.60036 -13.2282,0.0402837 -3.64064,3.64064 -3.65071,9.56738 -0.0402837,13.2282 -5.14121,0.0302128 -9.32568,4.22979 -9.32568,9.38107 0,5.14624 4.18447,9.34582 9.32568,9.38107 -3.61043,3.65575 -3.60036,9.58249 0.0402837,13.2231 3.64064,3.64064 9.56738,3.65575 13.2282,0.0453192 0.0302128,5.13617 4.23483,9.32064 9.38107,9.32064zm-3.56511 -23.3494c0,0 -0.00503546,-0.00503546 -0.0100709,-0.00503546l0.00503546 0.00503546 0.00503546 0zm-0.00503546 0.00503546l-7.36185 7.35681c0,1.28908 -0.493475,2.57816 -1.47539,3.55504 -1.96383,1.96383 -5.17142,1.96383 -7.13525,0 -1.96383,-1.96383 -1.96383,-5.17142 0,-7.13525 0.981915,-0.981915 2.27603,-1.47539 3.56511,-1.47539l7.35681 -7.35681c0,0 0,0 0,-0.00503546l0 0.00503546 -10.4083 0c-0.916454,0.911419 -2.17532,1.47539 -3.56007,1.47539 -2.77958,0 -5.04553,-2.26596 -5.04553,-5.04553 0,-2.77958 2.26596,-5.04553 5.04553,-5.04553 1.38475,0 2.64865,0.563972 3.56007,1.47539l10.4083 0 -7.36185 -7.36185c-1.28908,0 -2.57816,-0.493475 -3.56007,-1.47539 -1.96383,-1.96383 -1.96383,-5.17142 0,-7.13525 1.96383,-1.96383 5.17142,-1.96383 7.13525,0 0.981915,0.981915 1.47539,2.27099 1.47539,3.56007l7.36185 7.35681 0 -10.4033c-0.911419,-0.916454 -1.47539,-2.17532 -1.47539,-3.56007 0,-2.77958 2.26596,-5.04553 5.04553,-5.04553 2.77958,0 5.04553,2.26596 5.04553,5.04553 0,1.38475 -0.563972,2.64362 -1.47036,3.55504l0 10.4133 -0.0100709 0c0.00503546,0 0.00503546,0 0.0100709,0l7.35681 -7.35681c0,-1.28908 0.48844,-2.58319 1.47036,-3.56511 1.96887,-1.96383 5.17142,-1.96383 7.14029,0 1.96383,1.96383 1.96383,5.17142 0,7.13525 -0.981915,0.981915 -2.27099,1.47539 -3.56007,1.47539l-7.36185 7.36185 10.4083 0c0.911419,-0.911419 2.17532,-1.47539 3.56007,-1.47539 2.77958,0 5.04553,2.26596 5.04553,5.04553 0,2.77958 -2.26596,5.04553 -5.04553,5.04553 -1.38475,0 -2.64865,-0.563972 -3.56007,-1.47539l-10.4083 0c0,0.00503546 -0.00503546,0.0100709 -0.00503546,0.0151064l0.0100709 -0.0151064 7.35681 7.35681c1.28908,0.00503546 2.57816,0.493475 3.56007,1.47539 1.96383,1.96383 1.96383,5.17142 0,7.13525 -1.96887,1.96383 -5.17142,1.96383 -7.14029,0 -0.97688,-0.97688 -1.47036,-2.26596 -1.47036,-3.55504l-7.35681 -7.35681 0.0100709 -0.0151064c-0.00503546,0.00503546 -0.0151064,0.00503546 -0.0201419,0.0100709l0.0100709 0 0 10.4083c0.906384,0.911419 1.47036,2.17029 1.47036,3.55504 0,2.77958 -2.26596,5.05057 -5.04553,5.05057 -2.77958,0 -5.04553,-2.27099 -5.04553,-5.05057 0,-1.38475 0.563972,-2.64362 1.47539,-3.55504l0 -10.4033zm0 -17.2465l0 0c0,0 0.00503546,0 0.00503546,0l-0.00503546 0z"/>
+ <path class="fil4" d="M905.981 1420.75c5.14624,0 9.35086,-4.18447 9.38107,-9.32568 3.65575,3.61546 9.58752,3.60036 13.2282,-0.0402837 3.64064,-3.64064 3.65071,-9.57745 0.0352482,-13.2332 5.14121,-0.0251773 9.32568,-4.22475 9.32568,-9.371 0,-5.15128 -4.18951,-9.35589 -9.34079,-9.37603 3.63057,-3.65071 3.6205,-9.58752 -0.0201419,-13.2332 -3.64064,-3.64064 -9.57242,-3.65071 -13.2282,-0.0302128 -0.0251773,-5.14624 -4.22979,-9.33071 -9.38107,-9.33071 -5.14624,0 -9.35086,4.17944 -9.38107,9.32064 -3.65575,-3.61043 -9.58752,-3.60036 -13.2282,0.0402837 -3.64064,3.64064 -3.65071,9.56738 -0.0402837,13.2282 -5.14121,0.0302128 -9.32568,4.22979 -9.32568,9.38107 0,5.14624 4.18447,9.34582 9.32568,9.38107 -3.61043,3.65575 -3.60036,9.58249 0.0402837,13.2231 3.64064,3.64064 9.56738,3.65575 13.2282,0.0453192 0.0302128,5.13617 4.23483,9.32064 9.38107,9.32064zm-3.56511 -23.3494c0,0 -0.00503546,-0.00503546 -0.0100709,-0.00503546l0.00503546 0.00503546 0.00503546 0zm-0.00503546 0.00503546l-7.36185 7.35681c0,1.28908 -0.493475,2.57816 -1.47539,3.55504 -1.96383,1.96383 -5.17142,1.96383 -7.13525,0 -1.96383,-1.96383 -1.96383,-5.17142 0,-7.13525 0.981915,-0.981915 2.27603,-1.47539 3.56511,-1.47539l7.35681 -7.35681c0,0 0,0 0,-0.00503546l0 0.00503546 -10.4083 0c-0.916454,0.911419 -2.17532,1.47539 -3.56007,1.47539 -2.77958,0 -5.04553,-2.26596 -5.04553,-5.04553 0,-2.77958 2.26596,-5.04553 5.04553,-5.04553 1.38475,0 2.64865,0.563972 3.56007,1.47539l10.4083 0 -7.36185 -7.36185c-1.28908,0 -2.57816,-0.493475 -3.56007,-1.47539 -1.96383,-1.96383 -1.96383,-5.17142 0,-7.13525 1.96383,-1.96383 5.17142,-1.96383 7.13525,0 0.981915,0.981915 1.47539,2.27099 1.47539,3.56007l7.36185 7.35681 0 -10.4033c-0.911419,-0.916454 -1.47539,-2.17532 -1.47539,-3.56007 0,-2.77958 2.26596,-5.04553 5.04553,-5.04553 2.77958,0 5.04553,2.26596 5.04553,5.04553 0,1.38475 -0.563972,2.64362 -1.47036,3.55504l0 10.4133 -0.0100709 0c0.00503546,0 0.00503546,0 0.0100709,0l7.35681 -7.35681c0,-1.28908 0.48844,-2.58319 1.47036,-3.56511 1.96887,-1.96383 5.17142,-1.96383 7.14029,0 1.96383,1.96383 1.96383,5.17142 0,7.13525 -0.981915,0.981915 -2.27099,1.47539 -3.56007,1.47539l-7.36185 7.36185 10.4083 0c0.911419,-0.911419 2.17532,-1.47539 3.56007,-1.47539 2.77958,0 5.04553,2.26596 5.04553,5.04553 0,2.77958 -2.26596,5.04553 -5.04553,5.04553 -1.38475,0 -2.64865,-0.563972 -3.56007,-1.47539l-10.4083 0c0,0.00503546 -0.00503546,0.0100709 -0.00503546,0.0151064l0.0100709 -0.0151064 7.35681 7.35681c1.28908,0.00503546 2.57816,0.493475 3.56007,1.47539 1.96383,1.96383 1.96383,5.17142 0,7.13525 -1.96887,1.96383 -5.17142,1.96383 -7.14029,0 -0.97688,-0.97688 -1.47036,-2.26596 -1.47036,-3.55504l-7.35681 -7.35681 0.0100709 -0.0151064c-0.00503546,0.00503546 -0.0151064,0.00503546 -0.0201419,0.0100709l0.0100709 0 0 10.4083c0.906384,0.911419 1.47036,2.17029 1.47036,3.55504 0,2.77958 -2.26596,5.05057 -5.04553,5.05057 -2.77958,0 -5.04553,-2.27099 -5.04553,-5.05057 0,-1.38475 0.563972,-2.64362 1.47539,-3.55504l0 -10.4033zm0 -17.2465l0 0c0,0 0.00503546,0 0.00503546,0l-0.00503546 0z"/>
+ <g id="_151281704">
+ <path id="_151223056" class="fil1" d="M1190.45 1250.63c5.84114,0 11.0428,2.81986 14.3158,7.16547l-4.85419 0c-2.5278,-2.23071 -5.84114,-3.58525 -9.46164,-3.58525 -7.89057,0 -14.3309,6.44036 -14.3309,14.3309 0,7.89057 6.44036,14.3309 14.3309,14.3309 3.6205,0 6.93383,-1.35454 9.46164,-3.58525l4.85419 0c-3.27305,4.34561 -8.47469,7.16547 -14.3158,7.16547 -9.86447,0 -17.9111,-8.04667 -17.9111,-17.9111 0,-9.86447 8.04667,-17.9111 17.9111,-17.9111z"/>
+ <path id="_150788280" class="fil1" d="M1108.05 1286.46c-9.86447,0 -17.9111,-8.04667 -17.9111,-17.9111 0,-9.86447 8.04667,-17.9111 17.9111,-17.9111 5.85121,0 11.0579,2.8249 14.3309,7.18561l0 -3.60539 3.58525 0 0 14.3309 0 17.9111 -3.58525 0 0 -7.18561c-3.27305,4.35568 -8.47972,7.18561 -14.3309,7.18561zm0 -3.58021c-7.89057,0 -14.3259,-6.44036 -14.3259,-14.3309 0,-7.89057 6.43532,-14.3309 14.3259,-14.3309 7.89561,0 14.3309,6.44036 14.3309,14.3309 0,7.89057 -6.43532,14.3309 -14.3309,14.3309z"/>
+ <path id="_150594624" class="fil1" d="M1068.64 1250.63c9.86951,0 17.9162,8.04667 17.9162,17.9111 0,9.86447 -8.04667,17.9111 -17.9162,17.9111 -5.84617,0 -11.0579,-2.82993 -14.3309,-7.18561l0 7.18561 -3.58021 0 0 -17.9111 0 -32.2421 3.58021 0 0 21.5165c3.27305,-4.36071 8.48476,-7.18561 14.3309,-7.18561zm0 32.2421c-7.89057,0 -14.3309,-6.44036 -14.3309,-14.3309 0,-7.89057 6.44036,-14.3309 14.3309,-14.3309 7.89561,0 14.3309,6.44036 14.3309,14.3309 0,7.89057 -6.43532,14.3309 -14.3309,14.3309z"/>
+ <path id="_150594376" class="fil1" d="M1161.79 1250.63l3.58525 0 0 35.8223 -3.58525 0 0 -35.8223zm0 -10.7457l3.58525 0 0 3.58021 -3.58525 0 0 -3.58021z"/>
+ <path id="_151273456" class="fil1" d="M1143.88 1286.46c5.92171,0 10.7457,-4.82901 10.7457,-10.7457 0,-5.92171 -4.82397,-10.7457 -10.7457,-10.7457 -2.96085,0 -5.37284,-2.41702 -5.37284,-5.37788 0,-2.95582 2.41199,-5.37284 5.37284,-5.37284 2.96085,0 5.37284,2.41702 5.37284,5.37284l3.58525 0c0,-4.92972 -4.02334,-8.95306 -8.95809,-8.95306 -4.93475,0 -8.95809,4.02334 -8.95809,8.95306 0,4.93475 4.02334,8.95809 8.95809,8.95809 3.9478,0 7.16547,3.21766 7.16547,7.16547 0,3.94277 -3.21766,7.16547 -7.16547,7.16547 -3.9478,0 -7.16547,-3.2227 -7.16547,-7.16547l-3.58021 0c0,5.91667 4.82397,10.7457 10.7457,10.7457z"/>
+ </g>
+ <g id="_150847416">
+ <path id="_151253920" class="fil4" d="M1190.45 1377.92c5.84114,0 11.0428,2.81986 14.3158,7.16547l-4.85419 0c-2.5278,-2.23071 -5.84114,-3.58525 -9.46164,-3.58525 -7.89057,0 -14.3309,6.44036 -14.3309,14.3309 0,7.89057 6.44036,14.3309 14.3309,14.3309 3.6205,0 6.93383,-1.35454 9.46164,-3.58525l4.85419 0c-3.27305,4.34561 -8.47469,7.16547 -14.3158,7.16547 -9.86447,0 -17.9111,-8.04667 -17.9111,-17.9111 0,-9.86447 8.04667,-17.9111 17.9111,-17.9111z"/>
+ <path id="_150577136" class="fil4" d="M1108.05 1413.74c-9.86447,0 -17.9111,-8.04667 -17.9111,-17.9111 0,-9.86447 8.04667,-17.9111 17.9111,-17.9111 5.85121,0 11.0579,2.8249 14.3309,7.18561l0 -3.60539 3.58525 0 0 14.3309 0 17.9111 -3.58525 0 0 -7.18561c-3.27305,4.35568 -8.47972,7.18561 -14.3309,7.18561zm0 -3.58021c-7.89057,0 -14.3259,-6.44036 -14.3259,-14.3309 0,-7.89057 6.43532,-14.3309 14.3259,-14.3309 7.89561,0 14.3309,6.44036 14.3309,14.3309 0,7.89057 -6.43532,14.3309 -14.3309,14.3309z"/>
+ <path id="_150619840" class="fil4" d="M1068.64 1377.92c9.86951,0 17.9162,8.04667 17.9162,17.9111 0,9.86447 -8.04667,17.9111 -17.9162,17.9111 -5.84617,0 -11.0579,-2.82993 -14.3309,-7.18561l0 7.18561 -3.58021 0 0 -17.9111 0 -32.2421 3.58021 0 0 21.5165c3.27305,-4.36071 8.48476,-7.18561 14.3309,-7.18561zm0 32.2421c-7.89057,0 -14.3309,-6.44036 -14.3309,-14.3309 0,-7.89057 6.44036,-14.3309 14.3309,-14.3309 7.89561,0 14.3309,6.44036 14.3309,14.3309 0,7.89057 -6.43532,14.3309 -14.3309,14.3309z"/>
+ <path id="_150619576" class="fil4" d="M1161.79 1377.92l3.58525 0 0 35.8223 -3.58525 0 0 -35.8223zm0 -10.7457l3.58525 0 0 3.58021 -3.58525 0 0 -3.58021z"/>
+ <path id="_150847488" class="fil4" d="M1143.88 1413.74c5.92171,0 10.7457,-4.82901 10.7457,-10.7457 0,-5.92171 -4.82397,-10.7457 -10.7457,-10.7457 -2.96085,0 -5.37284,-2.41702 -5.37284,-5.37788 0,-2.95582 2.41199,-5.37284 5.37284,-5.37284 2.96085,0 5.37284,2.41702 5.37284,5.37284l3.58525 0c0,-4.92972 -4.02334,-8.95306 -8.95809,-8.95306 -4.93475,0 -8.95809,4.02334 -8.95809,8.95306 0,4.93475 4.02334,8.95809 8.95809,8.95809 3.9478,0 7.16547,3.21766 7.16547,7.16547 0,3.94277 -3.21766,7.16547 -7.16547,7.16547 -3.9478,0 -7.16547,-3.2227 -7.16547,-7.16547l-3.58021 0c0,5.91667 4.82397,10.7457 10.7457,10.7457z"/>
+ </g>
+ <path class="fil1" d="M926.062 1497.52c0,-6.89355 -5.5944,-12.4829 -12.488,-12.4829 -6.89355,0 -12.488,5.58937 -12.488,12.4829 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0 -4.87433,4.87936 -4.87433,12.785 0,17.6594 -6.89355,0 -12.488,5.5944 -12.488,12.488 0,6.89355 5.5944,12.488 12.488,12.488 -4.87433,4.87433 -4.87433,12.78 0,17.6594 4.87433,4.87433 12.785,4.87433 17.6594,0 0,6.89355 5.5944,12.4829 12.488,12.4829 6.89355,0 12.488,-5.58937 12.488,-12.4829 4.87433,4.87433 12.785,4.87433 17.6594,0 4.87433,-4.87936 4.87433,-12.785 0,-17.6594 6.89355,0 12.488,-5.5944 12.488,-12.488 0,-6.89355 -5.5944,-12.488 -12.488,-12.488 4.87433,-4.87433 4.87433,-12.78 0,-17.6594 -4.87433,-4.87433 -12.785,-4.87433 -17.6594,0z"/>
+ <path class="fil4" d="M918.353 1502.31l0 13.8274 9.77887 -9.77887c0,-1.7322 0.659646,-3.45936 1.97894,-4.77866 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 2.63858,2.63858 2.63858,6.91873 0,9.55731 -1.31929,1.31929 -3.05149,1.97894 -4.77866,1.97894l-9.77887 9.77887 13.8274 0c1.22362,-1.22362 2.9105,-1.97894 4.77866,-1.97894 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -1.86816,0 -3.55504,-0.75532 -4.77866,-1.97894l-13.8274 0 9.77887 9.77887c1.72716,0 3.45936,0.659646 4.77866,1.97894 2.63858,2.63858 2.63858,6.91873 0,9.55731 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -1.31929,-1.31929 -1.97894,-3.04646 -1.97894,-4.77866l-9.77887 -9.77887 0 13.8274c1.22362,1.22362 1.97894,2.91553 1.97894,4.78369 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-1.86816 0.75532,-3.56007 1.97894,-4.78369l0 -13.8274 -9.77887 9.77887c0,1.7322 -0.659646,3.45936 -1.97894,4.77866 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 1.31929,-1.31929 3.05149,-1.97894 4.77866,-1.97894l9.77887 -9.77887 -13.8274 0c-1.22362,1.22362 -2.9105,1.97894 -4.77866,1.97894 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 1.86816,0 3.55504,0.75532 4.77866,1.97894l13.8274 0 -9.77887 -9.77887c-1.72716,0 -3.45936,-0.659646 -4.77866,-1.97894 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 1.31929,1.31929 1.97894,3.04646 1.97894,4.77866l9.77887 9.77887 0 -13.8274c-1.22362,-1.22362 -1.97894,-2.91553 -1.97894,-4.78369 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,1.86816 -0.75532,3.56007 -1.97894,4.78369z"/>
+ <path class="fil4" d="M918.353 1502.31l0 13.8274 9.77887 -9.77887c0,-1.7322 0.659646,-3.45936 1.97894,-4.77866 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 2.63858,2.63858 2.63858,6.91873 0,9.55731 -1.31929,1.31929 -3.05149,1.97894 -4.77866,1.97894l-9.77887 9.77887 13.8274 0c1.22362,-1.22362 2.9105,-1.97894 4.77866,-1.97894 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -1.86816,0 -3.55504,-0.75532 -4.77866,-1.97894l-13.8274 0 9.77887 9.77887c1.72716,0 3.45936,0.659646 4.77866,1.97894 2.63858,2.63858 2.63858,6.91873 0,9.55731 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -1.31929,-1.31929 -1.97894,-3.04646 -1.97894,-4.77866l-9.77887 -9.77887 0 13.8274c1.22362,1.22362 1.97894,2.91553 1.97894,4.78369 0,3.73128 -3.02631,6.75759 -6.75759,6.75759 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-1.86816 0.75532,-3.56007 1.97894,-4.78369l0 -13.8274 -9.77887 9.77887c0,1.7322 -0.659646,3.45936 -1.97894,4.77866 -2.63858,2.63858 -6.92376,2.63858 -9.56235,0 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 1.31929,-1.31929 3.05149,-1.97894 4.77866,-1.97894l9.77887 -9.77887 -13.8274 0c-1.22362,1.22362 -2.9105,1.97894 -4.77866,1.97894 -3.73128,0 -6.75759,-3.02631 -6.75759,-6.75759 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 1.86816,0 3.55504,0.75532 4.77866,1.97894l13.8274 0 -9.77887 -9.77887c-1.72716,0 -3.45936,-0.659646 -4.77866,-1.97894 -2.63858,-2.63858 -2.63858,-6.91873 0,-9.55731 2.63858,-2.63858 6.92376,-2.63858 9.56235,0 1.31929,1.31929 1.97894,3.04646 1.97894,4.77866l9.77887 9.77887 0 -13.8274c-1.22362,-1.22362 -1.97894,-2.91553 -1.97894,-4.78369 0,-3.73128 3.02631,-6.75759 6.75759,-6.75759 3.73128,0 6.75759,3.02631 6.75759,6.75759 0,1.86816 -0.75532,3.56007 -1.97894,4.78369z"/>
+ <rect class="fil1" x="870.941" y="1527.74" width="85.2619" height="42.5571"/>
+ <g id="_21780824">
+ <polygon id="_151223792" class="fil4 str4" points="924.637,1530.54 916.762,1568.55 910.241,1568.55 902.365,1530.54 908.891,1530.54 913.499,1552.8 918.111,1530.54 "/>
+ <path id="_150990344" class="fil4 str4" d="M935.77 1546.29l11.1384 0 0 11.1334 0 0c0,6.1483 -4.98511,11.1334 -11.1384,11.1334 -6.1483,0 -11.1334,-4.98511 -11.1334,-11.1334l0 0 0 -15.7459 0 0c0,-6.1483 4.98511,-11.1334 11.1334,-11.1334 6.1483,0 11.1384,4.98511 11.1384,11.1334l-6.52596 0c0,-2.54794 -2.06454,-4.61249 -4.61249,-4.61249 -2.54291,0 -4.60745,2.06454 -4.60745,4.61249l0 15.7459 0 0c0,2.54291 2.06454,4.60745 4.60745,4.60745 2.54794,0 4.61249,-2.0595 4.61249,-4.60745l0 0 0 -4.60745 -4.61249 0 0 -6.52596z"/>
+ <path id="_21780968" class="fil4 str4" d="M883.356 1549.54c-2.01419,-2.01419 -3.26298,-4.7988 -3.26298,-7.87043 0,-6.1483 4.98511,-11.1334 11.1384,-11.1334 6.1483,0 11.1334,4.98511 11.1334,11.1334l-6.52596 0c0,-2.54794 -2.06454,-4.61249 -4.60745,-4.61249 -2.54794,0 -4.61249,2.06454 -4.61249,4.61249 0,1.27397 0.513617,2.42206 1.34447,3.25795l0.00503546 0c0.835887,0.835887 1.98901,1.3495 3.26298,1.3495l0 0.00503546c3.07163,0 5.85624,1.24376 7.87043,3.26298l0 0c2.01419,2.01419 3.26298,4.79376 3.26298,7.87043 0,6.1483 -4.98511,11.1334 -11.1334,11.1334 -6.15334,0 -11.1384,-4.98511 -11.1384,-11.1334l6.52596 0c0,2.54794 2.06454,4.61249 4.61249,4.61249 2.54291,0 4.60745,-2.06454 4.60745,-4.61249 0,-1.27397 -0.513617,-2.42206 -1.34447,-3.25795l-0.00503546 0c-0.835887,-0.835887 -1.98901,-1.35454 -3.25795,-1.35454l0 0c-3.07667,0 -5.86128,-1.2488 -7.87547,-3.26298l0 0z"/>
+ </g>
+ <g id="_151277456">
+ <rect id="_150491528" class="fil8" x="873.983" y="833.248" width="375.173" height="132.161"/>
+ <path id="_150491144" class="fil10" d="M949.215 863.557c67.9989,-8.15242 112.205,35.5353 173.356,44.6696 44.4329,6.63674 85.8949,-0.140993 126.587,-10.791l0 67.9737 -375.172 0 0 -92.6223 75.2298 -9.23001z"/>
+ <path id="_151281000" class="fil2" d="M1016.13 965.409l-142.146 0 0 -59.5746c57.4899,-4.16433 142.196,16.4106 142.196,58.2502 0,0.443121 -0.0251773,0.881206 -0.0503546,1.32433z"/>
+ <path id="_151280736" class="fil10" d="M1021.73 965.409l-147.741 0 0 -61.4528 4.24993 -0.307163 0 57.3993 139.276 0c0.156099,1.03731 4.23986,3.9478 4.21468,4.36071z"/>
+ <path id="_151280232" class="fil9" d="M1024 961.049c-6.16844,-7.92582 -9.86447,-17.8658 -9.86447,-28.682 0,-12.9009 5.23185,-24.5831 13.6864,-33.0377l0 -0.00503546c8.45454,-8.45958 13.6864,-20.1368 13.6864,-33.0377 0,-10.8464 -3.68596,-20.8468 -9.89469,-28.7777l213.282 0 0 123.54 -220.896 0z"/>
+ <path id="_151261896" class="fil4" d="M1024 961.049c-6.16844,-7.92582 -9.86447,-17.8658 -9.86447,-28.682 0,-12.9009 5.23185,-24.5831 13.6864,-33.0377l0 -0.00503546c5.3678,-5.37284 9.42135,-12.0247 11.6772,-19.4772 26.8239,10.9572 52.3789,29.0697 82.5564,33.5765 42.877,6.40007 83.5182,-4.85419 122.84,-14.8546l0 62.48 -220.896 0z"/>
+ <g>
+ <path id="_151261632" class="fil1" d="M873.985 897.415l0 0c6.48568,0 11.7477,-5.2671 11.7477,-11.7528 0,-3.24787 -1.31426,-6.18355 -3.43922,-8.30852l0 -24.0443 16.9997 16.9997c0,3.00617 1.14809,6.01738 3.43922,8.30852 2.29617,2.29617 5.30234,3.44426 8.31355,3.44426l0 0c3.00617,0 6.01234,-1.14809 8.30852,-3.44426 2.29114,-2.29114 3.43922,-5.30234 3.43922,-8.30852l16.9997 -16.9997 0 24.0443c-2.12497,2.12497 -3.43922,5.06064 -3.43922,8.30852 0,6.48568 5.26206,11.7528 11.7528,11.7528 6.48568,0 11.7528,-5.2671 11.7528,-11.7528 0,-3.24787 -1.31929,-6.18355 -3.44426,-8.30852l0 -24.0443 16.9997 16.9997c0,3.00617 1.14809,6.01738 3.44426,8.30852 4.58731,4.59234 12.0297,4.59234 16.617,0 4.58731,-4.58731 4.58731,-12.0297 0,-16.617 -2.29617,-2.29617 -5.30234,-3.44426 -8.30852,-3.44426l-16.9997 -16.9997 24.0393 0c2.13,2.13 5.06568,3.44426 8.30852,3.44426 6.49071,0 11.7528,-5.26206 11.7528,-11.7528l0 0 -138.284 0 0 64.1669zm37.061 -38.8587l-16.9997 -16.9997 16.9997 0 0 0 16.9997 0 -16.9997 16.9997z"/>
+ <path id="_151204800" class="fil4" d="M873.985 907.37l0 0c11.9844,0 21.7079,-9.72348 21.7079,-21.7079 4.23986,4.23483 9.79398,6.35476 15.3531,6.35476l0 0c5.55412,0 11.1082,-2.11993 15.3481,-6.35476 0,11.9844 9.72348,21.7079 21.7129,21.7079 11.9844,0 21.7079,-9.72348 21.7079,-21.7079 8.47972,8.47469 22.2265,8.47469 30.7012,0 8.47972,-8.47972 8.47972,-22.2265 0,-30.7063 11.9894,0 21.7129,-9.71845 21.7129,-21.7079l-9.96015 0 0 0c0,6.49071 -5.26206,11.7528 -11.7528,11.7528 -3.24284,0 -6.17851,-1.31426 -8.30852,-3.44426l-24.0393 0 16.9997 16.9997c3.00617,0 6.01234,1.14809 8.30852,3.44426 4.58731,4.58731 4.58731,12.0297 0,16.617 -4.58731,4.59234 -12.0297,4.59234 -16.617,0 -2.29617,-2.29114 -3.44426,-5.30234 -3.44426,-8.30852l-16.9997 -16.9997 0 24.0443c2.12497,2.12497 3.44426,5.06064 3.44426,8.30852 0,6.48568 -5.2671,11.7528 -11.7528,11.7528 -6.49071,0 -11.7528,-5.2671 -11.7528,-11.7528 0,-3.24787 1.31426,-6.18355 3.43922,-8.30852l0 -24.0443 -16.9997 16.9997c0,3.00617 -1.14809,6.01738 -3.43922,8.30852 -2.29617,2.29617 -5.30234,3.44426 -8.30852,3.44426l0 0c-3.01121,0 -6.01738,-1.14809 -8.31355,-3.44426 -2.29114,-2.29114 -3.43922,-5.30234 -3.43922,-8.30852l-16.9997 -16.9997 0 24.0443c2.12497,2.12497 3.43922,5.06064 3.43922,8.30852 0,6.48568 -5.26206,11.7528 -11.7477,11.7528l0 0 0 9.95511zm37.061 -48.8138l-16.9997 -16.9997 16.9997 0 0 0 16.9997 0 -16.9997 16.9997z"/>
+ </g>
+ <g>
+ <path id="_150596688" class="fil4" d="M936.793 936.672l10.5745 0 0 10.5745 0.00503546 0c0,5.84114 -4.73837,10.5745 -10.5795,10.5745 -5.8361,0 -10.5745,-4.73334 -10.5745,-10.5745l0 0 0 -14.9503 0 0c0,-5.84114 4.73334,-10.5795 10.5745,-10.5795 5.84114,0 10.5745,4.73837 10.5745,10.5795l-6.19362 0c0,-2.42206 -1.96383,-4.38085 -4.38085,-4.38085 -2.41702,0 -4.37582,1.9588 -4.37582,4.38085l0 14.9503 0 0c0,2.41702 1.9588,4.37582 4.37582,4.37582 2.41702,0 4.38085,-1.9588 4.38085,-4.37582l0 0 0 -4.37582 -4.38085 0 0 -6.19866z"/>
+ <path id="_150821792" class="fil4" d="M887.022 939.769c-1.91851,-1.91348 -3.10185,-4.55709 -3.10185,-7.47766 0,-5.8361 4.73837,-10.5745 10.5745,-10.5745 5.84114,0 10.5745,4.73837 10.5745,10.5745l-6.19362 0c0,-2.41702 -1.9588,-4.37582 -4.38085,-4.37582 -2.41702,0 -4.38085,1.9588 -4.38085,4.37582 0,1.20851 0.493475,2.30624 1.28404,3.09681l0 0c0.795603,0.790568 1.8883,1.28404 3.09681,1.28404l0 0c2.92057,0 5.56419,1.18333 7.47766,3.09681l0 0c1.91348,1.91348 3.09681,4.55709 3.09681,7.47766 0,5.84114 -4.73334,10.5745 -10.5745,10.5745 -5.8361,0 -10.5745,-4.73334 -10.5745,-10.5745l6.19362 0c0,2.41702 1.96383,4.38085 4.38085,4.38085 2.42206,0 4.38085,-1.96383 4.38085,-4.38085 0,-1.20851 -0.48844,-2.30121 -1.27901,-3.09177l-0.00503546 0c-0.790568,-0.795603 -1.8883,-1.28404 -3.09681,-1.28404l0 -0.00503546c-2.91553,0 -5.55915,-1.18333 -7.47263,-3.09681l0 0z"/>
+ <polygon id="_150621704" class="fil4" points="926.218,921.717 918.741,957.821 912.547,957.821 905.069,921.717 911.268,921.717 915.644,942.865 920.025,921.717 "/>
+ <path id="_150596136" class="fil4" d="M960.132 927.004l0 5.28724 5.28724 0 0 25.5298 6.19362 0 0 -36.1043 -6.19362 0c0,2.92057 -2.36667,5.28724 -5.28724,5.28724z"/>
+ <rect id="_151289040" class="fil4" x="974.711" y="951.627" width="6.19418" height="6.19417"/>
+ <path id="_150818368" class="fil4" d="M990.204 951.627l14.9503 0 0 6.19362 -21.1489 0 0 -6.19362 0 -2.82993c0,-5.84114 4.73837,-10.5745 10.5745,-10.5745l0 0c2.42206,0 4.38085,-1.96383 4.38085,-4.38085l0 0 0 -1.55092c0,-2.41702 -1.9588,-4.37582 -4.38085,-4.37582 -2.41702,0 -4.37582,1.9588 -4.37582,4.37582l-6.19866 0c0,-5.8361 4.73837,-10.5745 10.5745,-10.5745 5.84114,0 10.5745,4.73837 10.5745,10.5745l0 1.55092 0 0c0,5.8361 -4.73334,10.5745 -10.5745,10.5745l0 0c-2.41702,0 -4.37582,1.9588 -4.37582,4.38085l0 2.82993z"/>
+ </g>
+ <path id="_150789248" class="fil12" d="M873.985 897.415l0 0c1.49553,0 2.93064,-0.281986 4.24993,-0.795603l0 -59.1113 133.238 0c0.513617,-1.32433 0.795603,-2.75943 0.795603,-4.26l0 0 -138.284 0 0 64.1669z"/>
+ <path id="_150612456" class="fil9" d="M873.985 907.37l0 0c1.45021,0 2.87525,-0.146028 4.24993,-0.417944l0 -10.3328c-1.31929,0.513617 -2.7544,0.795603 -4.24993,0.795603l0 0 0 9.95511zm147.826 -69.862c0.271915,-1.37972 0.417944,-2.80475 0.417944,-4.26l-9.96015 0 0 0c0,1.50057 -0.281986,2.93568 -0.795603,4.26l10.3378 0z"/>
+ <g>
+ <g>
+ <path id="_151033720" class="fil1" d="M1202.28 870.697c-5.54908,0 -10.0709,4.52688 -10.0709,10.076 0,5.54908 4.52185,10.0709 10.0709,10.0709 5.54908,0 10.0709,-4.52185 10.0709,-10.0709 0,-5.54908 -4.52185,-10.076 -10.0709,-10.076zm0 2.01419c4.43624,0 8.05674,3.6205 8.05674,8.06178 0,4.43624 -3.6205,8.05674 -8.05674,8.05674 -4.43624,0 -8.05674,-3.6205 -8.05674,-8.05674 0,-4.44128 3.6205,-8.06178 8.05674,-8.06178z"/>
+ <path id="_20061832" class="fil1" d="M1155.84 890.577c-5.54908,0 -10.076,-4.52688 -10.076,-10.076 0,-5.54908 4.52688,-10.0709 10.076,-10.0709 3.28816,0 6.21376,1.59121 8.05674,4.03844l0 -2.02426 2.01419 0 0 8.05674 0 10.076 -2.01419 0 0 -4.04348c-1.84298,2.45227 -4.76858,4.04348 -8.05674,4.04348zm0 -2.01419c-4.44128,0 -8.06178,-3.6205 -8.06178,-8.06178 0,-4.43624 3.6205,-8.05674 8.06178,-8.05674 4.43624,0 8.05674,3.6205 8.05674,8.05674 0,4.44128 -3.6205,8.06178 -8.05674,8.06178z"/>
+ <path id="_150837632" class="fil1" d="M1061.16 890.411c-5.54405,0 -10.0709,-4.52185 -10.0709,-10.0709 0,-5.54908 4.52688,-10.0709 10.0709,-10.0709 3.28816,0 6.2188,1.58617 8.06178,4.03844l0 -2.02426 2.01419 0 0 8.05674 0 10.0709 -2.01419 0 0 -4.03844c-1.84298,2.45227 -4.77362,4.03844 -8.06178,4.03844zm0 -2.01419c-4.43624,0 -8.05674,-3.6205 -8.05674,-8.05674 0,-4.43624 3.6205,-8.05674 8.05674,-8.05674 4.44128,0 8.06178,3.6205 8.06178,8.05674 0,4.43624 -3.6205,8.05674 -8.06178,8.05674z"/>
+ <path id="_150834664" class="fil1" d="M1186.06 870.43l2.01419 0 0 20.1469 -2.01419 0 0 -20.1469zm0 -6.04256l2.01419 0 0 2.01419 -2.01419 0 0 -2.01419z"/>
+ <path id="_150834400" class="fil1" d="M1103.46 870.43l2.01419 0 0 20.1469 -2.01419 0 0 -20.1469zm0 -6.04256l2.01419 0 0 2.01419 -2.01419 0 0 -2.01419z"/>
+ <path id="_150679936" class="fil1" d="M1139.72 878.487l0 12.0901 2.01419 0 0 -12.0901c0,-4.43624 -3.6205,-8.05674 -8.05674,-8.05674 -3.02631,0 -5.67497,1.68688 -7.04965,4.16433 -1.37972,-2.47745 -4.02334,-4.16433 -7.05469,-4.16433 -2.40192,0 -4.56213,1.06248 -6.04256,2.73929l0 -2.73929 -2.01419 0 0 8.05674 0 12.0901 2.01419 0 0 -12.0901c0,-3.32844 2.71412,-6.04256 6.04256,-6.04256 3.33348,0 6.04759,2.71412 6.04759,6.04256l0 12.0901 2.01419 0 0 -12.0901c0,-3.32844 2.71412,-6.04256 6.04256,-6.04256 3.32844,0 6.04256,2.71412 6.04256,6.04256z"/>
+ <path id="_150615720" class="fil1" d="M1236.42 880.501l0 10.076 -2.01419 0 0 -10.076c0,-4.43624 -3.6205,-8.05674 -8.05674,-8.05674 -4.43624,0 -8.05674,3.6205 -8.05674,8.05674l0 10.076 -2.01419 0 0 -10.076 0 -10.0709 2.01419 0 0 4.03844c1.83794,-2.44724 4.76858,-4.03844 8.05674,-4.03844 5.54908,0 10.0709,4.52185 10.0709,10.0709z"/>
+ <path id="_151269872" class="fil1" d="M1097.42 880.501l0 10.076 -2.01419 0 0 -10.076c0,-4.43624 -3.6205,-8.05674 -8.06178,-8.05674 -4.43624,0 -8.05674,3.6205 -8.05674,8.05674l0 10.076 -2.01419 0 0 -10.076 0 -10.0709 2.01419 0 0 4.03844c1.84298,-2.44724 4.76858,-4.03844 8.05674,-4.03844 5.54908,0 10.076,4.52185 10.076,10.0709z"/>
+ <path id="_151236976" class="fil1" d="M1180.01 870.43l-6.04256 0 0 -6.04256 -2.01419 0 0 18.1277c0,4.44128 3.6205,8.06178 8.05674,8.06178l0 -2.01419c-3.32844,0 -6.04256,-2.71915 -6.04256,-6.04759l0 -10.0709 6.04256 0 0 -2.01419z"/>
+ </g>
+ <g>
+ <path id="_151230952" class="fil1" d="M1149.73 914.758c-5.54908,0 -10.0709,4.52688 -10.0709,10.0709 0,5.54908 4.52185,10.076 10.0709,10.076 5.54908,0 10.0709,-4.52688 10.0709,-10.076 0,-5.54405 -4.52185,-10.0709 -10.0709,-10.0709zm0 2.01419c4.43624,0 8.05674,3.6205 8.05674,8.05674 0,4.44128 -3.6205,8.06178 -8.05674,8.06178 -4.43624,0 -8.05674,-3.6205 -8.05674,-8.06178 0,-4.43624 3.6205,-8.05674 8.05674,-8.05674z"/>
+ <path id="_151217352" class="fil1" d="M1223.11 914.758c-5.54405,0 -10.0709,4.52688 -10.0709,10.0709 0,5.54908 4.52688,10.076 10.0709,10.076 3.28816,0 6.2188,-1.59121 8.06178,-4.04348l0 4.04348 2.01419 0 0 -10.076 0 -18.1277 -2.01419 0 0 12.0952c-1.84298,-2.44724 -4.77362,-4.03844 -8.06178,-4.03844zm0 18.1327c-4.43624,0 -8.05674,-3.6205 -8.05674,-8.06178 0,-4.43624 3.6205,-8.05674 8.05674,-8.05674 4.44128,0 8.06178,3.6205 8.06178,8.05674 0,4.44128 -3.6205,8.06178 -8.06178,8.06178z"/>
+ <path id="_151221144" class="fil1" d="M1194.04 924.828l14.1043 0c0,-4.43624 -3.6205,-8.05674 -8.05674,-8.05674 -4.44128,0 -8.06178,3.6205 -8.06178,8.05674 0,4.44128 3.6205,8.06178 8.06178,8.06178 2.03433,0 3.89745,-0.765391 5.31745,-2.01419l2.72922 0c-1.83794,2.4422 -4.76355,4.02837 -8.04667,4.02837 -5.54908,0 -10.076,-4.52688 -10.076,-10.076 0,-5.54405 4.52688,-10.0709 10.076,-10.0709 5.54405,0 10.0709,4.52688 10.0709,10.0709l0 2.01419 -16.1185 0 0 -2.01419z"/>
+ <path id="_150675376" class="fil1" d="M1103.39 934.904c5.54908,0 10.076,-4.52688 10.076,-10.076 0,-5.54405 -4.52688,-10.0709 -10.076,-10.0709 -3.28816,0 -6.21376,1.59121 -8.05674,4.03844l0 -4.03844 -2.01419 0 0 10.0709 0 18.1327 2.01419 0 0 -12.1002c1.84298,2.45227 4.76858,4.04348 8.05674,4.04348zm0 -2.01419c-4.43624,0 -8.05674,-3.6205 -8.05674,-8.06178 0,-4.43624 3.6205,-8.05674 8.05674,-8.05674 4.44128,0 8.06178,3.6205 8.06178,8.05674 0,4.44128 -3.6205,8.06178 -8.06178,8.06178z"/>
+ <path id="_21663096" class="fil1" d="M1127.57 934.904c5.54908,0 10.076,-4.52688 10.076,-10.076 0,-5.54405 -4.52688,-10.0709 -10.076,-10.0709 -3.28816,0 -6.2188,1.59121 -8.05674,4.03844l0 -4.03844 -2.01419 0 0 10.0709 0 18.1327 2.01419 0 0 -12.1002c1.83794,2.45227 4.76858,4.04348 8.05674,4.04348zm0 -2.01419c-4.43624,0 -8.05674,-3.6205 -8.05674,-8.06178 0,-4.43624 3.6205,-8.05674 8.05674,-8.05674 4.44128,0 8.05674,3.6205 8.05674,8.05674 0,4.44128 -3.61546,8.06178 -8.05674,8.06178z"/>
+ <path id="_21662712" class="fil1" d="M1165.84 917.497c1.48043,-1.67681 3.64568,-2.73929 6.04759,-2.73929l0 2.01419c-3.32844,0 -6.04759,2.71412 -6.04759,6.04256l0 12.0901 -2.01419 0 0 -12.0901 0 -8.05674 2.01419 0 0 2.73929z"/>
+ <path id="_150702896" class="fil1" d="M1060.37 934.985c3.32844,0 6.04256,-2.71915 6.04256,-6.04759 0,-3.32844 -2.71412,-6.04256 -6.04256,-6.04256 -1.66674,0 -3.02128,-1.35454 -3.02128,-3.02128 0,-1.66674 1.35454,-3.02128 3.02128,-3.02128 1.66674,0 3.02128,1.35454 3.02128,3.02128l2.01419 0c0,-2.77454 -2.26092,-5.03546 -5.03546,-5.03546 -2.77454,0 -5.03546,2.26092 -5.03546,5.03546 0,2.77454 2.26092,5.03546 5.03546,5.03546 2.22064,0 4.02837,1.81277 4.02837,4.02837 0,2.22064 -1.80773,4.02837 -4.02837,4.02837 -2.22064,0 -4.02837,-1.80773 -4.02837,-4.02837l-2.01419 0c0,3.32844 2.71412,6.04759 6.04256,6.04759z"/>
+ <path id="_151282784" class="fil1" d="M1185.99 914.758l-6.04256 0 0 -6.04256 -2.01419 0 0 18.1277c0,4.44128 3.6205,8.06178 8.05674,8.06178l0 -2.01419c-3.32844,0 -6.04256,-2.71915 -6.04256,-6.04759l0 -10.0709 6.04256 0 0 -2.01419z"/>
+ <path id="_151282160" class="fil1" d="M1087.28 934.904l-2.01419 0 0 -2.73929c-1.48043,1.67681 -3.64064,2.73929 -6.04256,2.73929 -4.44128,0 -8.06178,-3.6205 -8.06178,-8.06178l0 -12.0851 2.01419 0 0 12.0851c0,3.32844 2.71412,6.04759 6.04759,6.04759 3.32844,0 6.04256,-2.71915 6.04256,-6.04759l0 -12.0851 2.01419 0 0 12.0851 0 8.06178z"/>
+ </g>
+ </g>
+ </g>
+ <path class="fil4" d="M326.676 10.4436l1062.68 0 0 119.381 -1044.03 0 -18.6564 0 -6.21376 0 -35.1677 0c-7.68412,-7.6388 -12.4426,-18.1881 -12.4426,-29.8402 0,-11.6571 4.75851,-22.2064 12.4426,-29.8452l0 -0.00503546c7.67908,-7.6388 12.4275,-18.1881 12.4275,-29.8351 0,-11.6521 -4.74844,-22.2014 -12.4275,-29.8402l0 -0.00503546 41.3814 0 0 -0.0100709z"/>
+ <line class="fil13 str0" x1="0.720071" y1="348.666" x2="1423.3" y2= "348.666" />
+ <line class="fil13 str0" x1="0" y1="477.281" x2="1423.07" y2= "477.281" />
+ <line class="fil13 str0" x1="0" y1="605.167" x2="1423.07" y2= "605.167" />
+ <line class="fil13 str0" x1="0" y1="801.273" x2="1421.04" y2= "801.273" />
+ <line class="fil13 str0" x1="0" y1="997.379" x2="1423.07" y2= "997.379" />
+ <line class="fil13 str0" x1="0" y1="1197.54" x2="1423.31" y2= "1197.54" />
+ <line class="fil13 str0" x1="0" y1="1325.42" x2="1421.04" y2= "1325.42" />
+ <line class="fil13 str0" x1="0" y1="1452.72" x2="1421.04" y2= "1452.72" />
+ <line class="fil13 str0" x1="0" y1="1602.09" x2="1423.3" y2= "1602.09" />
+ <path class="fil0" d="M914.914 1645.77l0 13.8072 9.60263 -9.76376c0,-1.72716 0.649575,-3.45433 1.94369,-4.77866 2.58823,-2.63858 6.79788,-2.63858 9.3861,0 2.59326,2.63858 2.59326,6.91873 0,9.55228 -1.29915,1.32433 -3.00114,1.97894 -4.69305,1.97894l-9.59759 9.7688 13.5756 0c1.1934,-1.22362 2.85511,-1.97894 4.69305,-1.97894 3.66078,0 6.63674,3.02631 6.63674,6.75256l-0.00503546 0.075532 -72.4654 0 -0.00503546 -0.075532c0,-3.72624 2.97596,-6.75256 6.63674,-6.75256 1.83794,0 3.49965,0.75532 4.69305,1.97894l13.5756 0 -9.60263 -9.7688c-1.68688,0 -3.38887,-0.65461 -4.68802,-1.97894 -2.59326,-2.63355 -2.59326,-6.91369 0,-9.55228 2.58823,-2.63858 6.79788,-2.63858 9.3861,0 1.29411,1.32433 1.94369,3.05149 1.94369,4.77866l9.60263 9.76376 0 -13.8072c-1.20348,-1.22362 -1.94872,-2.91553 -1.94872,-4.77866 0,-3.73128 2.97596,-6.75256 6.63674,-6.75256 3.66582,0 6.64178,3.02128 6.64178,6.75256 0,1.86312 -0.745249,3.55504 -1.94872,4.77866z"/>
+ <g id="_150773488">
+ <polygon id="_150774704" class="fil0 str2" points="919.481,1673.97 912.819,1706.72 907.3,1706.72 900.633,1673.97 906.157,1673.97 910.059,1693.15 913.962,1673.97 "/>
+ <path id="_150774208" class="fil0 str2" d="M928.907 1687.54l9.42135 0 0 9.58752 0 0c0,5.29731 -4.21972,9.59256 -9.42135,9.59256 -5.20667,0 -9.42639,-4.29525 -9.42639,-9.59256l0 0 0 -13.5555 0 0c0,-5.29731 4.21972,-9.59256 9.42639,-9.59256 5.20163,0 9.42135,4.29525 9.42135,9.59256l-5.51887 0c0,-2.19546 -1.74731,-3.97298 -3.90248,-3.97298 -2.15518,0 -3.90248,1.77752 -3.90248,3.97298l0 13.5555 0 0c0,2.19546 1.74731,3.97298 3.90248,3.97298 2.15518,0 3.89745,-1.77752 3.90248,-3.96795l0 -0.00503546 0 -3.96795 -3.90248 0 0 -5.61958z"/>
+ <path id="_150774016" class="fil0 str2" d="M884.55 1690.34c-1.70702,-1.73724 -2.76447,-4.13412 -2.76447,-6.78277 0,-5.29227 4.21972,-9.58752 9.42639,-9.58752 5.20163,0 9.42135,4.29525 9.42135,9.58752l-5.51887 0c0,-2.19043 -1.74731,-3.96795 -3.90248,-3.96795 -2.15518,0 -3.90248,1.77752 -3.90248,3.96795 0,1.09773 0.43305,2.08972 1.13801,2.80979l0.00503546 0c0.704965,0.720071 1.68184,1.16319 2.75943,1.16319l0 0c2.60333,0 4.9549,1.07255 6.66192,2.80979l0 0c1.70702,1.73724 2.75943,4.13412 2.75943,6.77773 0,5.29731 -4.21972,9.59256 -9.42135,9.59256 -5.20667,0 -9.42639,-4.29525 -9.42639,-9.59256l5.5239 0c0,2.19546 1.74731,3.97298 3.90248,3.97298 2.15518,0 3.90248,-1.77752 3.90248,-3.97298 0,-1.0927 -0.438085,-2.08468 -1.14305,-2.80475l0 0c-0.704965,-0.720071 -1.68184,-1.16319 -2.75943,-1.16319l0 0c-2.60333,0 -4.95993,-1.07759 -6.66192,-2.80979l0 0z"/>
+ </g>
+ <g id="_150825696">
+ <rect id="_151044992" class="fil8" x="194.804" y="2158.5" width="157.958" height="157.957"/>
+ <rect id="_151044440" class="fil10" x="36.8451" y="2316.45" width="157.959" height="157.958"/>
+ <rect id="_151124856" class="fil2" x="57.025" y="2178.67" width="275.56" height="275.558"/>
+ <g>
+ <path id="_151124472" class="fil1" d="M63.5677 2269.55l15.8013 15.8013 -31.6026 0 0 -31.6026 15.8013 15.8013zm-26.7232 42.167l0 -153.224 153.229 0c0,4.26 -1.72716,8.1222 -4.52185,10.9169l0 31.6026 22.3424 -22.3424c0,-3.95284 1.51064,-7.91071 4.52185,-10.9219 6.03249,-6.03249 15.8164,-6.03249 21.8489,0 6.02745,6.02745 6.02745,15.8114 0,21.8438 -3.01624,3.01624 -6.96908,4.52185 -10.9219,4.52185l-22.3474 22.3474 31.6026 0c2.79468,-2.79972 6.65688,-4.52688 10.9219,-4.52688 8.53008,0 15.4438,6.91873 15.4438,15.4488 0,8.53008 -6.91369,15.4438 -15.4438,15.4438 -4.26504,0 -8.12724,-1.72716 -10.9219,-4.52185l-31.6026 0 22.3474 22.3424c3.95284,0 7.90568,1.51064 10.9219,4.52688 6.02745,6.02745 6.02745,15.8114 0,21.8438 -6.03249,6.02745 -15.8164,6.02745 -21.8489,0 -3.01121,-3.01624 -4.52185,-6.96908 -4.52185,-10.9219l-22.3424 -22.3474 0 31.6026c2.79468,2.79468 4.52185,6.65688 4.52185,10.9219 0,4.26504 -1.72716,8.12724 -4.52688,10.9219l0 0c-2.79468,2.79468 -6.65688,4.52185 -10.9219,4.52185 -4.26,0 -8.1222,-1.72716 -10.9169,-4.52185l-31.6026 0 22.3424 22.3424c3.95787,0 7.91071,1.51064 10.9219,4.52688 6.03249,6.02745 6.03249,15.8114 0,21.8438 -6.02745,6.03249 -15.8114,6.03249 -21.8438,0 -3.01624,-3.01624 -4.52185,-6.96908 -4.52185,-10.9219l-22.3474 -22.3474 0 31.6026c2.79468,2.79468 4.52688,6.65688 4.52688,10.9219 0,8.53008 -6.91873,15.4438 -15.4488,15.4438 -8.53008,0 -15.4438,-6.91369 -15.4438,-15.4438 0,-4.26504 1.72716,-8.12724 4.52185,-10.9219l0 -31.6026 -22.3424 22.3474c0,3.95284 -1.51064,7.90568 -4.52688,10.9219 -6.02745,6.03249 -15.8114,6.03249 -21.8438,0 -6.03249,-6.03249 -6.03249,-15.8164 0,-21.8438 3.01624,-3.01624 6.96908,-4.52688 10.9219,-4.52688l22.3474 -22.3424 -31.6026 0c-2.79468,2.79468 -6.65688,4.52185 -10.9219,4.52185zm126.858 -142.302l0 31.5975 -15.7963 -15.8013 -15.8013 -15.7963 31.5975 0zm-31.2451 31.2451l15.8013 15.8013 -31.6026 0 0 -31.6026 15.8013 15.8013zm-37.6451 37.6451l0 31.5975 -15.8013 -15.8013 -15.7963 -15.7963 31.5975 0zm-47.0463 -68.8902l0 31.5975 15.8013 -15.8013 0 0 15.8013 -15.7963 -31.6026 0zm31.2451 31.2451l0 0 -15.7963 15.8013 31.5975 0 0 -31.6026 -15.8013 15.8013zm84.6915 84.6915l-31.5975 0 15.8013 -15.8013 0 0 15.7963 -15.8013 0 31.6026zm-31.2451 -31.2501l0 0 -15.8013 15.8013 0 -31.5975 31.6026 0 -15.8013 15.7963z"/>
+ <path id="_151124088" class="fil4" d="M36.8445 2324.81l0 0 0 0 0 40.3542 0 0c11.1435,11.1384 29.2158,11.1384 40.3542,0 0,15.756 12.78,28.536 28.536,28.536 15.756,0 28.536,-12.78 28.536,-28.536 11.1435,11.1384 29.2158,11.1384 40.3542,0 11.1435,-11.1435 11.1435,-29.2158 0.00503546,-40.3542 7.87547,-0.00503546 15.0107,-3.19752 20.1721,-8.35887l0 0c5.16639,-5.16639 8.35887,-12.3016 8.35887,-20.1771 11.1435,11.1384 29.2158,11.1384 40.3542,0 11.1435,-11.1435 11.1435,-29.2158 0.00503546,-40.3542 15.756,0 28.5309,-12.78 28.5309,-28.536 0,-15.756 -12.775,-28.536 -28.5309,-28.536 11.1384,-11.1435 11.1384,-29.2158 0,-40.3542l-0.00503546 0 -40.3542 0 -13.0872 0c0,4.26 -1.72716,8.1222 -4.52185,10.9169l0 31.6026 22.3424 -22.3424c0,-3.95284 1.51064,-7.91071 4.52185,-10.9219 6.03249,-6.03249 15.8164,-6.03249 21.8489,0 6.02745,6.02745 6.02745,15.8114 0,21.8438 -3.01624,3.01624 -6.96908,4.52185 -10.9219,4.52185l-22.3474 22.3474 31.6026 0c2.79468,-2.79972 6.65688,-4.52688 10.9219,-4.52688 8.53008,0 15.4438,6.91873 15.4438,15.4488 0,8.53008 -6.91369,15.4438 -15.4438,15.4438 -4.26504,0 -8.12724,-1.72716 -10.9219,-4.52185l-31.6026 0 22.3474 22.3424c3.95284,0 7.90568,1.51064 10.9219,4.52688 6.02745,6.02745 6.02745,15.8114 0,21.8438 -6.03249,6.02745 -15.8164,6.02745 -21.8489,0 -3.01121,-3.01624 -4.52185,-6.96908 -4.52185,-10.9219l-22.3424 -22.3474 0 31.6026c2.79468,2.79468 4.52185,6.65688 4.52185,10.9219 0,4.26504 -1.72716,8.12724 -4.52688,10.9219l0 0c-2.79468,2.79468 -6.65688,4.52185 -10.9219,4.52185 -4.26,0 -8.1222,-1.72716 -10.9169,-4.52185l-31.6026 0 22.3424 22.3424c3.95787,0 7.91071,1.51064 10.9219,4.52688 6.03249,6.02745 6.03249,15.8114 0,21.8438 -6.02745,6.03249 -15.8114,6.03249 -21.8438,0 -3.01624,-3.01624 -4.52185,-6.96908 -4.52185,-10.9219l-22.3474 -22.3474 0 31.6026c2.79468,2.79468 4.52688,6.65688 4.52688,10.9219 0,8.53008 -6.91873,15.4438 -15.4488,15.4438 -8.53008,0 -15.4438,-6.91369 -15.4438,-15.4438 0,-4.26504 1.72716,-8.12724 4.52185,-10.9219l0 -31.6026 -22.3424 22.3474c0,3.95284 -1.51064,7.90568 -4.52688,10.9219 -6.02745,6.03249 -15.8114,6.03249 -21.8438,0 -6.03249,-6.03249 -6.03249,-15.8164 0,-21.8438 3.01624,-3.01624 6.96908,-4.52688 10.9219,-4.52688l22.3474 -22.3424 -31.6026 0c-2.79468,2.79468 -6.65688,4.52185 -10.9219,4.52185l0 13.0922zm26.7232 -55.2592l15.8013 15.8013 -31.6026 0 0 -31.6026 15.8013 15.8013zm100.135 -100.135l0 31.5975 -15.7963 -15.8013 -15.8013 -15.7963 31.5975 0zm-31.2451 31.2451l15.8013 15.8013 -31.6026 0 0 -31.6026 15.8013 15.8013zm-37.6451 37.6451l0 31.5975 -15.8013 -15.8013 -15.7963 -15.7963 31.5975 0zm-47.0463 -68.8902l0 31.5975 15.8013 -15.8013 0 0 15.8013 -15.7963 -31.6026 0zm31.2451 31.2451l0 0 -15.7963 15.8013 31.5975 0 0 -31.6026 -15.8013 15.8013zm84.6915 84.6915l-31.5975 0 15.8013 -15.8013 0 0 15.7963 -15.8013 0 31.6026zm-31.2451 -31.2501l0 0 -15.8013 15.8013 0 -31.5975 31.6026 0 -15.8013 15.7963z"/>
+ </g>
+ <rect id="_151123256" class="fil4" x="194.804" y="2316.45" width="157.958" height="157.96"/>
+ <g>
+ <polygon id="_151122648" class="fil1 str2" points="297.762,2324.95 281.019,2405.8 267.146,2405.8 250.399,2324.95 264.276,2324.95 274.08,2372.31 283.884,2324.95 "/>
+ <path id="_150904640" class="fil1 str2" d="M321.444 2358.44l23.6818 0 0 23.6768 0.00503546 0c0,13.0771 -10.6047,23.6818 -23.6818,23.6818 -13.0771,0 -23.6818,-10.5997 -23.6818,-23.6768l0 -0.00503546 0 -33.4858 -0.00503546 0c0,-13.0771 10.6047,-23.6818 23.6818,-23.6818 13.0771,0 23.6818,10.6047 23.6818,23.6818l-13.8727 0c0,-5.41312 -4.39092,-9.80405 -9.80908,-9.80405 -5.41312,0 -9.80405,4.39092 -9.80405,9.80405l0 33.4909 0 0c0,5.41312 4.39092,9.80405 9.80405,9.80405 5.41312,0 9.80405,-4.39092 9.80908,-9.80405l0 -0.00503546 0 -9.79901 -9.80908 0 0 -13.8777z"/>
+ <path id="_150903592" class="fil1 str2" d="M209.979 2365.37c-4.29022,-4.28518 -6.93887,-10.2019 -6.93887,-16.7429 0,-13.0771 10.6047,-23.6818 23.6818,-23.6818 13.0721,0 23.6768,10.6047 23.6768,23.6818l-13.8677 0c0,-5.41816 -4.39596,-9.80908 -9.80908,-9.80908 -5.41816,0 -9.80908,4.39092 -9.80908,9.80908 0,2.70404 1.0927,5.15632 2.86518,6.9288l0.00503546 0c1.77752,1.77752 4.22979,2.87525 6.93887,2.87525l0 0.00503546c6.53603,0 12.4577,2.65369 16.7429,6.93887l0 0c4.28518,4.28518 6.93383,10.2019 6.93383,16.7429 0,13.0771 -10.6047,23.6768 -23.6768,23.6768 -13.0771,0 -23.6818,-10.5997 -23.6818,-23.6768l13.8727 0c0,5.41312 4.39092,9.80908 9.80908,9.80908 5.41312,0 9.80908,-4.39596 9.80908,-9.80908 0,-2.70908 -1.09773,-5.15632 -2.87021,-6.93383l-0.00503546 0c-1.77248,-1.77248 -4.22475,-2.87021 -6.93383,-2.87021l0 -0.00503546c-6.54107,0 -12.4577,-2.65369 -16.7429,-6.93887l0 0z"/>
+ </g>
+ <g>
+ <path id="_150902688" class="fil1" d="M287.998 2425.45l0 7.12518 7.12015 0 0 34.3922 8.3488 0 0 -48.6426 -8.3488 0c0,3.93773 -3.18745,7.12518 -7.12015,7.12518z"/>
+ <rect id="_150902000" class="fil1" x="307.639" y="2458.62" width="8.34558" height="8.34558"/>
+ <path id="_150826120" class="fil1" d="M316.167 2452.72c0,7.86539 6.37993,14.2453 14.2504,14.2453 7.86539,0 14.2453,-6.37993 14.2453,-14.2453l0 -20.1469c0,-7.87043 -6.37993,-14.2504 -14.2453,-14.2504 -7.87043,0 -14.2504,6.37993 -14.2504,14.2504l0.0151064 0 0 0 -0.0151064 0 0 0.00503546 -0.0100709 0.00503546 0.0100709 0.00503546 0 20.1318zm8.30348 -20.1469l0.0453192 0c0,-3.25795 2.63858,-5.90156 5.90156,-5.90156 3.25795,0 5.90156,2.64362 5.90156,5.90156l0 20.1469c0,3.25795 -2.64362,5.90156 -5.90156,5.90156 -3.26298,0 -5.90156,-2.64362 -5.90156,-5.90156l0 -20.1469 -0.0453192 0 0 0z"/>
+ </g>
+ </g>
+ <g id="_150635456">
+ <path id="_150724592" class="fil9" d="M501.739 2356.49l15.0057 15.0057 -30.0114 0 0 -30.0114 15.0057 15.0057zm-35.7468 35.7518c2.65369,2.65369 6.31951,4.29525 10.3731,4.29525 4.04851,0 7.71433,-1.64156 10.368,-4.29525l30.0114 0 -21.2194 21.2194c-3.75646,0 -7.50788,1.43511 -10.3731,4.29525 -5.72532,5.73036 -5.72532,15.0208 0,20.7461 5.72532,5.73036 15.0158,5.73036 20.7461,0 2.86518,-2.86014 4.29525,-6.6166 4.29525,-10.3731l21.2194 -21.2194 0 30.0114c-2.65369,2.65369 -4.29525,6.32454 -4.29525,10.3731 0,8.10206 6.56625,14.6683 14.6683,14.6683 8.10206,0 14.6683,-6.56625 14.6683,-14.6683 0,-4.04851 -1.64156,-7.71937 -4.29525,-10.3731l0 -30.0114 21.2194 21.2194c0,3.75646 1.43511,7.51291 4.29525,10.3731 5.73036,5.73036 15.0208,5.73036 20.7461,0 5.73036,-5.72532 5.73036,-15.0158 0,-20.7461 -2.86518,-2.86014 -6.6166,-4.29525 -10.3731,-4.29525l-21.2194 -21.2194 30.0114 0c2.65369,2.65369 6.31951,4.29525 10.3731,4.29525 4.04851,0 7.71433,-1.64156 10.368,-4.29525l0.00503546 0c2.65369,-2.65369 4.29525,-6.32454 4.29525,-10.3731 0,-4.04851 -1.64156,-7.71937 -4.29525,-10.3731l0 -30.0114 21.2194 21.2194c0,3.75646 1.43007,7.51291 4.29525,10.3731 5.72532,5.73036 15.0158,5.73036 20.7461,0 5.72532,-5.72532 5.72532,-15.0158 0,-20.7461 -2.86518,-2.86014 -6.62164,-4.29525 -10.3731,-4.29525l-21.2194 -21.2194 30.0063 0c2.65873,2.65369 6.32454,4.29525 10.3731,4.29525 8.10206,0 14.6683,-6.56625 14.6683,-14.6683 0,-8.10206 -6.56625,-14.6683 -14.6683,-14.6683 -4.04851,0 -7.71433,1.64156 -10.3731,4.29525l-30.0063 0 21.2194 -21.2194c3.75142,-0.00503546 7.50788,-1.43511 10.3731,-4.30029 5.72532,-5.72532 5.72532,-15.0158 0,-20.7461 -5.73036,-5.72532 -15.0208,-5.72532 -20.7461,0 -2.86518,2.86518 -4.29525,6.62164 -4.29525,10.3731l-21.2194 21.2245 0 -30.0114c2.65369,-2.65873 4.29525,-6.32454 4.29525,-10.3731 0,-4.05355 -1.64156,-7.71937 -4.30029,-10.3731 -2.65369,-2.65369 -6.31951,-4.30029 -10.368,-4.30029 -4.05355,0 -7.71937,1.6466 -10.3731,4.30029l-30.0114 0 21.2194 -21.2245c3.75646,0 7.50788,-1.43007 10.3731,-4.29525 5.73036,-5.72532 5.73036,-15.0158 0,-20.7461 -5.72532,-5.72532 -15.0158,-5.72532 -20.7461,0 -2.86014,2.86518 -4.29525,6.62164 -4.29525,10.3731l-21.2194 21.2194 0 -30.0063c2.65369,-2.65873 4.29525,-6.32454 4.29525,-10.3731 0,-8.10206 -6.56625,-14.6733 -14.6683,-14.6733 -8.10206,0 -14.6683,6.57128 -14.6683,14.6733 0,4.04851 1.64156,7.71433 4.29525,10.3731l0 30.0063 -21.2194 -21.2194c0,-3.75142 -1.43007,-7.50788 -4.29525,-10.3731 -5.73036,-5.72532 -15.0208,-5.72532 -20.7461,0 -5.72532,5.73036 -5.72532,15.0208 0,20.7461 2.86518,2.86518 6.6166,4.29525 10.3731,4.29525l21.2194 21.2245 -30.0114 0c-2.65369,-2.65369 -6.31951,-4.30029 -10.368,-4.30029 -4.05355,0 -7.71937,1.6466 -10.3731,4.30029l0 0c-2.65873,2.65369 -4.30029,6.31951 -4.30029,10.3731 0,4.04851 1.64156,7.71433 4.30029,10.3731l0 30.0114 -21.2245 -21.2245c0,-3.75142 -1.43007,-7.50788 -4.29525,-10.3731 -5.72532,-5.72532 -15.0158,-5.72532 -20.7461,0 -5.72532,5.73036 -5.72532,15.0208 0,20.7461 2.86518,2.86518 6.62164,4.29525 10.3731,4.29525l21.2194 21.2245 -30.0063 0c-2.65873,-2.65369 -6.32454,-4.29525 -10.3731,-4.29525 -8.10206,0 -14.6683,6.56625 -14.6683,14.6683 0,8.10206 6.56625,14.6683 14.6683,14.6683 4.04851,0 7.71433,-1.64156 10.3731,-4.29525l30.0063 0 -21.2194 21.2194c-3.75142,0 -7.50788,1.43511 -10.3731,4.29525 -5.72532,5.73036 -5.72532,15.0208 0,20.7461 5.73036,5.73036 15.0208,5.73036 20.7461,0 2.86518,-2.86014 4.29525,-6.6166 4.29525,-10.3731l21.2245 -21.2194 0 30.0114c-2.65873,2.65369 -4.30029,6.32454 -4.30029,10.3731 0,4.04851 1.64156,7.71937 4.30029,10.3731zm130.847 -130.852l0 30.0114 -15.0057 -15.0057 -15.0057 -15.0057 30.0114 0zm-29.674 29.674l15.0057 15.0057 -30.0114 0 0 -30.0114 15.0057 15.0057zm-35.7518 35.7518l0 30.0114 -15.0057 -15.0057 -15.0006 -15.0057 30.0063 0zm-44.6797 -65.4258l0 30.0114 15.0057 -15.0057 0 0 15.0057 -15.0057 -30.0114 0zm29.674 29.674l0 0 -15.0006 15.0057 30.0063 0 0 -30.0114 -15.0057 15.0057zm80.4315 80.4315l-30.0114 0 15.0057 -15.0057 0 0 15.0057 -15.0057 0 30.0114zm-29.674 -29.674l0 0 -15.0057 15.0057 0 -30.0114 30.0114 0 -15.0057 15.0057z"/>
+ <path id="_151455776" class="fil11" d="M457.2 2401.03c4.90454,4.90454 11.6823,7.94093 19.165,7.94093 -10.5845,10.5795 -10.5845,27.7404 0,38.3249 10.5795,10.5795 27.7404,10.5795 38.3199,0 0,14.9654 12.1355,27.1009 27.1009,27.1009 14.9654,0 27.1009,-12.1355 27.1009,-27.1009 10.5795,10.5795 27.7404,10.5795 38.3249,0 10.5795,-10.5845 10.5795,-27.7454 0,-38.3249 7.4827,0 14.2554,-3.03638 19.1599,-7.94093l0 0c4.90454,-4.90454 7.93589,-11.6772 7.93589,-19.1599 10.5845,10.5795 27.7454,10.5795 38.3249,0 10.5795,-10.5795 10.5795,-27.7454 0,-38.3249 14.9654,0 27.1009,-12.1355 27.1009,-27.1009 0,-14.9654 -12.1355,-27.1009 -27.1009,-27.1009 10.5845,-10.5795 10.5795,-27.7454 0,-38.3249 -10.5795,-10.5845 -27.7404,-10.5845 -38.3249,0 0,-7.4827 -3.03135,-14.2604 -7.93589,-19.165 -4.90454,-4.90454 -11.6823,-7.93589 -19.1599,-7.93589 10.5795,-10.5845 10.5795,-27.7454 0,-38.3249 -10.5845,-10.5845 -27.7454,-10.5845 -38.3249,0 0,-14.9654 -12.1355,-27.1009 -27.1009,-27.1009 -14.9654,0 -27.1009,12.1355 -27.1009,27.1009 -10.5795,-10.5845 -27.7404,-10.5845 -38.3249,0 -10.5795,10.5795 -10.5795,27.7404 0,38.3249 -7.47766,0 -14.2554,3.03135 -19.1599,7.93589l0 0c-4.90454,4.90454 -7.93589,11.6823 -7.93589,19.165 -10.5845,-10.5845 -27.7454,-10.5845 -38.3249,0 -10.5795,10.5795 -10.5795,27.7404 0,38.3249 -14.9654,0 -27.1009,12.1355 -27.1009,27.1009 0,14.9654 12.1355,27.1009 27.1009,27.1009 -10.5795,10.5795 -10.5795,27.7404 0,38.3249 10.5795,10.5795 27.7404,10.5795 38.3249,0 0,7.4827 3.03135,14.2554 7.93589,19.1599zm44.5387 -44.5387l15.0057 15.0057 -30.0114 0 0 -30.0114 15.0057 15.0057zm-35.7468 35.7518c2.65369,2.65369 6.31951,4.29525 10.3731,4.29525 4.04851,0 7.71433,-1.64156 10.368,-4.29525l30.0114 0 -21.2194 21.2194c-3.75646,0 -7.50788,1.43511 -10.3731,4.29525 -5.72532,5.73036 -5.72532,15.0208 0,20.7461 5.72532,5.73036 15.0158,5.73036 20.7461,0 2.86518,-2.86014 4.29525,-6.6166 4.29525,-10.3731l21.2194 -21.2194 0 30.0114c-2.65369,2.65369 -4.29525,6.32454 -4.29525,10.3731 0,8.10206 6.56625,14.6683 14.6683,14.6683 8.10206,0 14.6683,-6.56625 14.6683,-14.6683 0,-4.04851 -1.64156,-7.71937 -4.29525,-10.3731l0 -30.0114 21.2194 21.2194c0,3.75646 1.43511,7.51291 4.29525,10.3731 5.73036,5.73036 15.0208,5.73036 20.7461,0 5.73036,-5.72532 5.73036,-15.0158 0,-20.7461 -2.86518,-2.86014 -6.6166,-4.29525 -10.3731,-4.29525l-21.2194 -21.2194 30.0114 0c2.65369,2.65369 6.31951,4.29525 10.3731,4.29525 4.04851,0 7.71433,-1.64156 10.368,-4.29525l0.00503546 0c2.65369,-2.65369 4.29525,-6.32454 4.29525,-10.3731 0,-4.04851 -1.64156,-7.71937 -4.29525,-10.3731l0 -30.0114 21.2194 21.2194c0,3.75646 1.43007,7.51291 4.29525,10.3731 5.72532,5.73036 15.0158,5.73036 20.7461,0 5.72532,-5.72532 5.72532,-15.0158 0,-20.7461 -2.86518,-2.86014 -6.62164,-4.29525 -10.3731,-4.29525l-21.2194 -21.2194 30.0063 0c2.65873,2.65369 6.32454,4.29525 10.3731,4.29525 8.10206,0 14.6683,-6.56625 14.6683,-14.6683 0,-8.10206 -6.56625,-14.6683 -14.6683,-14.6683 -4.04851,0 -7.71433,1.64156 -10.3731,4.29525l-30.0063 0 21.2194 -21.2194c3.75142,-0.00503546 7.50788,-1.43511 10.3731,-4.30029 5.72532,-5.72532 5.72532,-15.0158 0,-20.7461 -5.73036,-5.72532 -15.0208,-5.72532 -20.7461,0 -2.86518,2.86518 -4.29525,6.62164 -4.29525,10.3731l-21.2194 21.2245 0 -30.0114c2.65369,-2.65873 4.29525,-6.32454 4.29525,-10.3731 0,-4.05355 -1.64156,-7.71937 -4.30029,-10.3731 -2.65369,-2.65369 -6.31951,-4.30029 -10.368,-4.30029 -4.05355,0 -7.71937,1.6466 -10.3731,4.30029l-30.0114 0 21.2194 -21.2245c3.75646,0 7.50788,-1.43007 10.3731,-4.29525 5.73036,-5.72532 5.73036,-15.0158 0,-20.7461 -5.72532,-5.72532 -15.0158,-5.72532 -20.7461,0 -2.86014,2.86518 -4.29525,6.62164 -4.29525,10.3731l-21.2194 21.2194 0 -30.0063c2.65369,-2.65873 4.29525,-6.32454 4.29525,-10.3731 0,-8.10206 -6.56625,-14.6733 -14.6683,-14.6733 -8.10206,0 -14.6683,6.57128 -14.6683,14.6733 0,4.04851 1.64156,7.71433 4.29525,10.3731l0 30.0063 -21.2194 -21.2194c0,-3.75142 -1.43007,-7.50788 -4.29525,-10.3731 -5.73036,-5.72532 -15.0208,-5.72532 -20.7461,0 -5.72532,5.73036 -5.72532,15.0208 0,20.7461 2.86518,2.86518 6.6166,4.29525 10.3731,4.29525l21.2194 21.2245 -30.0114 0c-2.65369,-2.65369 -6.31951,-4.30029 -10.368,-4.30029 -4.05355,0 -7.71937,1.6466 -10.3731,4.30029l0 0c-2.65873,2.65369 -4.30029,6.31951 -4.30029,10.3731 0,4.04851 1.64156,7.71433 4.30029,10.3731l0 30.0114 -21.2245 -21.2245c0,-3.75142 -1.43007,-7.50788 -4.29525,-10.3731 -5.72532,-5.72532 -15.0158,-5.72532 -20.7461,0 -5.72532,5.73036 -5.72532,15.0208 0,20.7461 2.86518,2.86518 6.62164,4.29525 10.3731,4.29525l21.2194 21.2245 -30.0063 0c-2.65873,-2.65369 -6.32454,-4.29525 -10.3731,-4.29525 -8.10206,0 -14.6683,6.56625 -14.6683,14.6683 0,8.10206 6.56625,14.6683 14.6683,14.6683 4.04851,0 7.71433,-1.64156 10.3731,-4.29525l30.0063 0 -21.2194 21.2194c-3.75142,0 -7.50788,1.43511 -10.3731,4.29525 -5.72532,5.73036 -5.72532,15.0208 0,20.7461 5.73036,5.73036 15.0208,5.73036 20.7461,0 2.86518,-2.86014 4.29525,-6.6166 4.29525,-10.3731l21.2245 -21.2194 0 30.0114c-2.65873,2.65369 -4.30029,6.32454 -4.30029,10.3731 0,4.04851 1.64156,7.71937 4.30029,10.3731zm130.847 -130.852l0 30.0114 -15.0057 -15.0057 -15.0057 -15.0057 30.0114 0zm-29.674 29.674l15.0057 15.0057 -30.0114 0 0 -30.0114 15.0057 15.0057zm-35.7518 35.7518l0 30.0114 -15.0057 -15.0057 -15.0006 -15.0057 30.0063 0zm-44.6797 -65.4258l0 30.0114 15.0057 -15.0057 0 0 15.0057 -15.0057 -30.0114 0zm29.674 29.674l0 0 -15.0006 15.0057 30.0063 0 0 -30.0114 -15.0057 15.0057zm80.4315 80.4315l-30.0114 0 15.0057 -15.0057 0 0 15.0057 -15.0057 0 30.0114zm-29.674 -29.674l0 0 -15.0057 15.0057 0 -30.0114 30.0114 0 -15.0057 15.0057z"/>
+ <g>
+ <rect id="_151455224" class="fil4" x="476.363" y="2251.02" width="130.847" height="130.852"/>
+ <path id="_151454432" class="fil3" d="M492.871 2260.81l98.3124 0c4.02837,0 7.32156,3.29823 7.32156,7.32156l0 60.4507c-37.9976,-4.70312 -75.6679,-23.1883 -112.956,-22.5891l0 -37.8617c0,-4.02837 3.29319,-7.32156 7.32156,-7.32156z"/>
+ <g>
+ <polygon id="_151453824" class="fil1 str3" points="557.793,2289.83 546.474,2344.49 537.098,2344.49 525.778,2289.83 535.154,2289.83 541.786,2321.85 548.412,2289.83 "/>
+ <path id="_151108928" class="fil1 str3" d="M573.801 2312.47l16.0077 0 0 16.0077 0 0c0,8.84227 -7.16547,16.0077 -16.0077,16.0077 -8.83724,0 -16.0077,-7.16547 -16.0077,-16.0077l0 0 0 -22.6344 0 0c0,-8.84227 7.16547,-16.0128 16.0077,-16.0128 8.83724,0 16.0077,7.1705 16.0077,16.0128l-9.38107 0c0,-3.66078 -2.96589,-6.63171 -6.62667,-6.63171 -3.66078,0 -6.62667,2.97092 -6.62667,6.63171l0 22.6344 0 0c0,3.66078 2.96589,6.62667 6.62667,6.62667 3.66078,0 6.62667,-2.96589 6.62667,-6.62164l0 -0.00503546 0 -6.62667 -6.62667 0 0 -9.38107z"/>
+ <path id="_151107880" class="fil1 str3" d="M498.451 2317.16c-2.89539,-2.89539 -4.68802,-6.89859 -4.68802,-11.3197 0,-8.83724 7.16547,-16.0077 16.0077,-16.0077 8.83724,0 16.0077,7.1705 16.0077,16.0077l-9.37603 0c0,-3.66078 -2.97092,-6.62667 -6.63171,-6.62667 -3.66078,0 -6.63171,2.96589 -6.63171,6.62667 0,1.83291 0.740213,3.48958 1.93865,4.68802l0.00503546 0c1.19844,1.19844 2.85511,1.94369 4.68802,1.94369l0 0c4.4161,0 8.4193,1.79263 11.3147,4.69305l0 -0.00503546c2.90043,2.90043 4.69305,6.90362 4.69305,11.3197 0,8.84227 -7.1705,16.0077 -16.0077,16.0077 -8.84227,0 -16.0077,-7.16547 -16.0077,-16.0077l9.37603 0c0,3.66078 2.97092,6.63171 6.63171,6.63171 3.66078,0 6.63171,-2.97092 6.63171,-6.63171 0,-1.82787 -0.745249,-3.48454 -1.94369,-4.68298l0 0c-1.19844,-1.20348 -2.86014,-1.94369 -4.68802,-1.94369l0 -0.00503546c-4.42114,0 -8.42433,-1.78759 -11.3197,-4.68802l0 0z"/>
+ </g>
+ </g>
+ </g>
+ <rect class="fil2" x="36.8445" y="1811.52" width="315.917" height="315.917"/>
+ <path class="fil1" d="M170.526 1998.39l13.2483 13.2533 -26.5016 0 0 -26.5016 13.2533 13.2483zm-31.5724 31.5724c2.34653,2.34149 5.58433,3.7917 9.15951,3.7917 3.58021,0 6.81802,-1.45021 9.15951,-3.7917l26.5016 0 -18.737 18.737c-3.31837,0 -6.63171,1.2639 -9.15951,3.79674 -5.06064,5.05561 -5.06064,13.2584 0,18.319 5.05561,5.05561 13.2584,5.05561 18.319,0 2.5278,-2.5278 3.7917,-5.84617 3.7917,-9.15951l18.737 -18.742 0 26.5016c-2.34149,2.34653 -3.7917,5.58433 -3.7917,9.15951 0,7.15539 5.80085,12.9562 12.9512,12.9562 7.15539,0 12.9562,-5.80085 12.9562,-12.9562 0,-3.57518 -1.45021,-6.81298 -3.79674,-9.15951l0 -26.5016 18.742 18.742c0,3.31334 1.2639,6.63171 3.7917,9.15951 5.06064,5.05561 13.2634,5.05561 18.319,0 5.06064,-5.06064 5.06064,-13.2634 0,-18.319 -2.5278,-2.53284 -5.84114,-3.79674 -9.15951,-3.79674l-18.737 -18.737 26.5016 0c2.34149,2.34149 5.57929,3.7917 9.15951,3.7917 3.57518,0 6.81298,-1.45021 9.15447,-3.7917l0 0c2.34653,-2.34653 3.79674,-5.58433 3.79674,-9.15951 0,-3.57518 -1.45021,-6.81802 -3.7917,-9.15951l0 -26.5016 18.737 18.737c0,3.31837 1.2639,6.63171 3.7917,9.15951 5.06064,5.06064 13.2634,5.06064 18.319,0 5.06064,-5.05561 5.06064,-13.2584 0,-18.319 -2.5278,-2.5278 -5.84114,-3.7917 -9.15951,-3.7917l-18.737 -18.742 26.5016 0c2.34149,2.34653 5.57929,3.79674 9.15951,3.79674 7.15036,0 12.9512,-5.80085 12.9512,-12.9562 0,-7.15036 -5.80085,-12.9512 -12.9512,-12.9512 -3.58021,0 -6.81802,1.45021 -9.15951,3.7917l-26.5016 0 18.737 -18.737c3.31837,0 6.63171,-1.2639 9.15951,-3.79674 5.06064,-5.05561 5.06064,-13.2584 0,-18.319 -5.05561,-5.05561 -13.2584,-5.05561 -18.319,0 -2.5278,2.5278 -3.7917,5.84617 -3.7917,9.15951l-18.737 18.742 0 -26.5016c2.34149,-2.34653 3.7917,-5.58433 3.7917,-9.15951 0,-3.58021 -1.45021,-6.81802 -3.79674,-9.15951 -2.34149,-2.34653 -5.57929,-3.79674 -9.15951,-3.79674 -3.57518,0 -6.81298,1.45021 -9.15447,3.79674l-26.5016 0 18.737 -18.742c3.31837,0 6.63171,-1.2639 9.15951,-3.7917 5.06064,-5.06064 5.06064,-13.2634 0,-18.319 -5.05561,-5.06064 -13.2584,-5.06064 -18.319,0 -2.5278,2.5278 -3.7917,5.84114 -3.7917,9.15951l-18.742 18.737 0 -26.5016c2.34653,-2.34149 3.79674,-5.58433 3.79674,-9.15951 0,-7.15036 -5.80085,-12.9512 -12.9562,-12.9512 -7.15036,0 -12.9512,5.80085 -12.9512,12.9512 0,3.57518 1.45021,6.81802 3.7917,9.15951l0 26.5016 -18.737 -18.737c0,-3.31837 -1.2639,-6.63171 -3.7917,-9.15951 -5.06064,-5.06064 -13.2634,-5.06064 -18.319,0 -5.06064,5.05561 -5.06064,13.2584 0,18.319 2.5278,2.5278 5.84114,3.7917 9.15951,3.7917l18.737 18.742 -26.5016 0c-2.34149,-2.34653 -5.57929,-3.79674 -9.15951,-3.79674 -3.57518,0 -6.81298,1.45021 -9.15951,3.79674l0 0c-2.34149,2.34149 -3.7917,5.57929 -3.7917,9.15951 0,3.57518 1.45021,6.81298 3.7917,9.15951l0 26.5016 -18.737 -18.742c0,-3.31334 -1.2639,-6.63171 -3.7917,-9.15951 -5.06064,-5.05561 -13.2634,-5.05561 -18.319,0 -5.06064,5.06064 -5.06064,13.2634 0,18.319 2.5278,2.53284 5.84114,3.79674 9.15951,3.79674l18.737 18.737 -26.5016 0c-2.34149,-2.34149 -5.58433,-3.7917 -9.15951,-3.7917 -7.15036,0 -12.9512,5.80085 -12.9512,12.9512 0,7.15539 5.80085,12.9562 12.9512,12.9562 3.57518,0 6.81802,-1.45021 9.15951,-3.79674l26.5016 0 -18.737 18.742c-3.31837,0 -6.63171,1.2639 -9.15951,3.7917 -5.06064,5.06064 -5.06064,13.2634 0,18.319 5.05561,5.06064 13.2584,5.06064 18.319,0 2.5278,-2.5278 3.7917,-5.84114 3.7917,-9.15951l18.737 -18.737 0 26.5016c-2.34149,2.34149 -3.7917,5.57929 -3.7917,9.15951 0,3.57518 1.45021,6.81298 3.7917,9.15951zm115.544 -115.549l0 26.5016 -13.2483 -13.2533 -13.2483 -13.2483 26.4966 0zm-26.1995 26.2046l13.2483 13.2483 -26.5016 0 0 -26.5016 13.2533 13.2533zm-31.5724 31.5673l0 26.5016 -13.2483 -13.2483 -13.2483 -13.2533 26.4966 0zm-39.4529 -57.7719l0 26.5016 13.2533 -13.2533 0 0 13.2483 -13.2483 -26.5016 0zm26.2046 26.2046l0 0 -13.2483 13.2483 26.4966 0 0 -26.5016 -13.2483 13.2533zm71.0252 71.0252l-26.5016 0 13.2483 -13.2533 0 0 13.2483 -13.2483 0.00503546 26.5016zm-26.2046 -26.2046l0 0 -13.2533 13.2483 0 -26.5016 26.5016 0 -13.2483 13.2533z"/>
+ <path class="fil4" d="M131.194 2037.72c4.3305,4.3305 10.3126,7.00937 16.9192,7.00937 -9.34079,9.34582 -9.34079,24.5026 0,33.8434 9.34582,9.34582 24.5026,9.34582 33.8434,0 0,13.2131 10.7155,23.9336 23.9285,23.9336 13.2181,0 23.9336,-10.7205 23.9336,-23.9336 9.34079,9.34582 24.4975,9.34582 33.8434,0 9.34079,-9.34079 9.34079,-24.4975 0,-33.8434 6.60653,0 12.5887,-2.67887 16.9192,-7.00937l0 0c4.3305,-4.3305 7.00937,-10.3126 7.00937,-16.9192 9.34079,9.34079 24.4975,9.34079 33.8383,0 9.34582,-9.34582 9.34582,-24.5026 0.00503546,-33.8434 13.2131,0 23.9285,-10.7155 23.9285,-23.9336 0,-13.2131 -10.7155,-23.9285 -23.9285,-23.9285 9.34079,-9.34582 9.34079,-24.5026 0,-33.8434 -9.34582,-9.34582 -24.5026,-9.34582 -33.8434,0 0,-6.60653 -2.67887,-12.5937 -7.00937,-16.9242 -4.3305,-4.3305 -10.3126,-7.00937 -16.9242,-7.00937 9.34582,-9.34079 9.34582,-24.4975 0,-33.8434 -9.34079,-9.34079 -24.4975,-9.34079 -33.8383,0 0,-13.2131 -10.7155,-23.9285 -23.9336,-23.9285 -13.2131,0 -23.9285,10.7155 -23.9285,23.9285 -9.34582,-9.34079 -24.4975,-9.34079 -33.8434,0 -9.34079,9.34582 -9.34079,24.5026 0,33.8434 -6.60653,0 -12.5887,2.67887 -16.9192,7.00937l0 0c-4.3305,4.3305 -7.00937,10.3177 -7.00937,16.9242 -9.34582,-9.34582 -24.4975,-9.34582 -33.8434,0 -9.34079,9.34079 -9.34079,24.4975 0,33.8434 -13.2131,0 -23.9285,10.7155 -23.9285,23.9285 0,13.2131 10.7155,23.9336 23.9285,23.9336 -9.34079,9.34079 -9.34079,24.4975 0,33.8434 9.34582,9.34079 24.4975,9.34079 33.8434,0 0,6.60653 2.67887,12.5887 7.00937,16.9192zm39.332 -39.332l13.2483 13.2533 -26.5016 0 0 -26.5016 13.2533 13.2483zm-31.5724 31.5724c2.34653,2.34149 5.58433,3.7917 9.15951,3.7917 3.58021,0 6.81802,-1.45021 9.15951,-3.7917l26.5016 0 -18.737 18.737c-3.31837,0 -6.63171,1.2639 -9.15951,3.79674 -5.06064,5.05561 -5.06064,13.2584 0,18.319 5.05561,5.05561 13.2584,5.05561 18.319,0 2.5278,-2.5278 3.7917,-5.84617 3.7917,-9.15951l18.737 -18.742 0 26.5016c-2.34149,2.34653 -3.7917,5.58433 -3.7917,9.15951 0,7.15539 5.80085,12.9562 12.9512,12.9562 7.15539,0 12.9562,-5.80085 12.9562,-12.9562 0,-3.57518 -1.45021,-6.81298 -3.79674,-9.15951l0 -26.5016 18.742 18.742c0,3.31334 1.2639,6.63171 3.7917,9.15951 5.06064,5.05561 13.2634,5.05561 18.319,0 5.06064,-5.06064 5.06064,-13.2634 0,-18.319 -2.5278,-2.53284 -5.84114,-3.79674 -9.15951,-3.79674l-18.737 -18.737 26.5016 0c2.34149,2.34149 5.57929,3.7917 9.15951,3.7917 3.57518,0 6.81298,-1.45021 9.15447,-3.7917l0 0c2.34653,-2.34653 3.79674,-5.58433 3.79674,-9.15951 0,-3.57518 -1.45021,-6.81802 -3.7917,-9.15951l0 -26.5016 18.737 18.737c0,3.31837 1.2639,6.63171 3.7917,9.15951 5.06064,5.06064 13.2634,5.06064 18.319,0 5.06064,-5.05561 5.06064,-13.2584 0,-18.319 -2.5278,-2.5278 -5.84114,-3.7917 -9.15951,-3.7917l-18.737 -18.742 26.5016 0c2.34149,2.34653 5.57929,3.79674 9.15951,3.79674 7.15036,0 12.9512,-5.80085 12.9512,-12.9562 0,-7.15036 -5.80085,-12.9512 -12.9512,-12.9512 -3.58021,0 -6.81802,1.45021 -9.15951,3.7917l-26.5016 0 18.737 -18.737c3.31837,0 6.63171,-1.2639 9.15951,-3.79674 5.06064,-5.05561 5.06064,-13.2584 0,-18.319 -5.05561,-5.05561 -13.2584,-5.05561 -18.319,0 -2.5278,2.5278 -3.7917,5.84617 -3.7917,9.15951l-18.737 18.742 0 -26.5016c2.34149,-2.34653 3.7917,-5.58433 3.7917,-9.15951 0,-3.58021 -1.45021,-6.81802 -3.79674,-9.15951 -2.34149,-2.34653 -5.57929,-3.79674 -9.15951,-3.79674 -3.57518,0 -6.81298,1.45021 -9.15447,3.79674l-26.5016 0 18.737 -18.742c3.31837,0 6.63171,-1.2639 9.15951,-3.7917 5.06064,-5.06064 5.06064,-13.2634 0,-18.319 -5.05561,-5.06064 -13.2584,-5.06064 -18.319,0 -2.5278,2.5278 -3.7917,5.84114 -3.7917,9.15951l-18.742 18.737 0 -26.5016c2.34653,-2.34149 3.79674,-5.58433 3.79674,-9.15951 0,-7.15036 -5.80085,-12.9512 -12.9562,-12.9512 -7.15036,0 -12.9512,5.80085 -12.9512,12.9512 0,3.57518 1.45021,6.81802 3.7917,9.15951l0 26.5016 -18.737 -18.737c0,-3.31837 -1.2639,-6.63171 -3.7917,-9.15951 -5.06064,-5.06064 -13.2634,-5.06064 -18.319,0 -5.06064,5.05561 -5.06064,13.2584 0,18.319 2.5278,2.5278 5.84114,3.7917 9.15951,3.7917l18.737 18.742 -26.5016 0c-2.34149,-2.34653 -5.57929,-3.79674 -9.15951,-3.79674 -3.57518,0 -6.81298,1.45021 -9.15951,3.79674l0 0c-2.34149,2.34149 -3.7917,5.57929 -3.7917,9.15951 0,3.57518 1.45021,6.81298 3.7917,9.15951l0 26.5016 -18.737 -18.742c0,-3.31334 -1.2639,-6.63171 -3.7917,-9.15951 -5.06064,-5.05561 -13.2634,-5.05561 -18.319,0 -5.06064,5.06064 -5.06064,13.2634 0,18.319 2.5278,2.53284 5.84114,3.79674 9.15951,3.79674l18.737 18.737 -26.5016 0c-2.34149,-2.34149 -5.58433,-3.7917 -9.15951,-3.7917 -7.15036,0 -12.9512,5.80085 -12.9512,12.9512 0,7.15539 5.80085,12.9562 12.9512,12.9562 3.57518,0 6.81802,-1.45021 9.15951,-3.79674l26.5016 0 -18.737 18.742c-3.31837,0 -6.63171,1.2639 -9.15951,3.7917 -5.06064,5.06064 -5.06064,13.2634 0,18.319 5.05561,5.06064 13.2584,5.06064 18.319,0 2.5278,-2.5278 3.7917,-5.84114 3.7917,-9.15951l18.737 -18.737 0 26.5016c-2.34149,2.34149 -3.7917,5.57929 -3.7917,9.15951 0,3.57518 1.45021,6.81298 3.7917,9.15951zm115.544 -115.549l0 26.5016 -13.2483 -13.2533 -13.2483 -13.2483 26.4966 0zm-26.1995 26.2046l13.2483 13.2483 -26.5016 0 0 -26.5016 13.2533 13.2533zm-31.5724 31.5673l0 26.5016 -13.2483 -13.2483 -13.2483 -13.2533 26.4966 0zm-39.4529 -57.7719l0 26.5016 13.2533 -13.2533 0 0 13.2483 -13.2483 -26.5016 0zm26.2046 26.2046l0 0 -13.2483 13.2483 26.4966 0 0 -26.5016 -13.2483 13.2533zm71.0252 71.0252l-26.5016 0 13.2483 -13.2533 0 0 13.2483 -13.2483 0.00503546 26.5016zm-26.2046 -26.2046l0 0 -13.2533 13.2483 0 -26.5016 26.5016 0 -13.2483 13.2533z"/>
+ <rect class="fil10" x="148.115" y="1905.25" width="115.545" height="115.549"/>
+ <path class="fil8" d="M159.624 1909.82l92.9547 0c3.80681,0 6.91873,3.11695 6.91873,6.92376l0 57.1525c-35.923,-4.44631 -71.5388,-21.9244 -106.792,-21.3554l0 -35.7971c0,-3.81185 3.10688,-6.92376 6.91873,-6.92376z"/>
+ <g id="_151071504">
+ <polygon id="_150992896" class="fil4" points="221.359,1937.24 210.417,1990.08 201.353,1990.08 190.411,1937.24 199.48,1937.24 205.885,1968.19 212.295,1937.24 "/>
+ <path id="_150992632" class="fil4" d="M236.838 1959.13l15.474 0 0 15.474 0.00503546 0c0,8.54518 -6.9288,15.479 -15.479,15.479 -8.54518,0 -15.474,-6.9288 -15.474,-15.479l0 0 0 -21.8841 -0.00503546 0c0,-8.54518 6.93383,-15.474 15.479,-15.474 8.54518,0 15.474,6.9288 15.474,15.474l-9.06384 0c0,-3.53993 -2.87021,-6.40511 -6.41015,-6.40511 -3.53993,0 -6.40511,2.86518 -6.40511,6.40511l0 21.8841 0 0c0,3.53993 2.87021,6.41015 6.40511,6.41015 3.53993,0 6.40511,-2.87021 6.41015,-6.40511l0 -0.00503546 0 -6.40511 -6.41015 0 0 -9.06887z"/>
+ <path id="_150992248" class="fil4" d="M163.995 1963.66c-2.80475,-2.79972 -4.53695,-6.66695 -4.53695,-10.9421 0,-8.54518 6.9288,-15.474 15.479,-15.474 8.54518,0 15.474,6.9288 15.474,15.474l-9.06384 0c0,-3.53993 -2.87525,-6.41015 -6.41015,-6.41015 -3.53993,0 -6.41015,2.87021 -6.41015,6.41015 0,1.76745 0.715036,3.36873 1.87319,4.52688l0 0c1.16319,1.16319 2.76447,1.88326 4.53695,1.88326l0 0c4.27007,0 8.13731,1.7322 10.9421,4.53192l0 0c2.79972,2.80475 4.53192,6.67199 4.53192,10.9421 0,8.55022 -6.9288,15.479 -15.474,15.479 -8.55022,0 -15.479,-6.9288 -15.479,-15.479l9.06887 0c0,3.53993 2.87021,6.41015 6.41015,6.41015 3.5349,0 6.41015,-2.87021 6.41015,-6.41015 0,-1.76745 -0.720071,-3.36873 -1.87823,-4.52688l0 0c-1.16319,-1.16319 -2.76447,-1.87823 -4.53192,-1.87823l0 -0.00503546c-4.27511,0 -8.14235,-1.7322 -10.9421,-4.53192l0 0z"/>
+ </g>
+ <g id="_151029032">
+ <rect id="_151071440" class="fil2" x="383.827" y="1811.52" width="315.917" height="315.917" rx="18.2989" ry="18.2989"/>
+ <path id="_150991368" class="fil10" d="M506.432 2004.83l13.2483 13.2533 -26.4966 0 0 -26.5016 13.2483 13.2483zm-31.5673 31.5724c2.34149,2.34149 5.57929,3.7917 9.15951,3.7917 3.57518,0 6.81298,-1.45021 9.15447,-3.7917l26.5016 0 -18.737 18.737c-3.31334,0 -6.63171,1.2639 -9.15951,3.79674 -5.05561,5.05561 -5.05561,13.2584 0,18.319 5.05561,5.05561 13.2634,5.05561 18.319,0 2.5278,-2.5278 3.7917,-5.84617 3.7917,-9.15951l18.742 -18.742 0 26.5016c-2.34653,2.34653 -3.79674,5.58433 -3.79674,9.15951 0,7.15539 5.80085,12.9562 12.9562,12.9562 7.15036,0 12.9512,-5.80085 12.9512,-12.9562 0,-3.57518 -1.45021,-6.81298 -3.7917,-9.15951l0 -26.5016 18.737 18.742c0,3.31334 1.2639,6.63171 3.7917,9.15951 5.06064,5.05561 13.2634,5.05561 18.3241,0 5.05561,-5.06064 5.05561,-13.2634 -0.00503546,-18.319 -2.5278,-2.53284 -5.84114,-3.79674 -9.15447,-3.79674l-18.742 -18.737 26.5016 0c2.34653,2.34149 5.58433,3.7917 9.15951,3.7917 3.57518,0 6.81298,-1.45021 9.15951,-3.7917l0 0c2.34149,-2.34653 3.7917,-5.58433 3.7917,-9.15951 0,-3.58021 -1.45021,-6.81802 -3.7917,-9.15951l0 -26.5016 18.737 18.737c0,3.31837 1.2639,6.63171 3.79674,9.15951 5.05561,5.06064 13.2584,5.06064 18.319,0 5.05561,-5.05561 5.05561,-13.2584 0,-18.319 -2.53284,-2.5278 -5.84617,-3.7917 -9.15951,-3.7917l-18.742 -18.742 26.5016 0c2.34653,2.34653 5.58433,3.79674 9.15951,3.79674 7.15036,0 12.9512,-5.80085 12.9512,-12.9562 0,-7.15036 -5.80085,-12.9512 -12.9512,-12.9512 -3.57518,0 -6.81298,1.45021 -9.15951,3.7917l-26.5016 0 18.742 -18.737c3.31334,0 6.62667,-1.2639 9.15951,-3.79674 5.05561,-5.05561 5.05561,-13.2584 0,-18.319 -5.06064,-5.05561 -13.2634,-5.05561 -18.319,0 -2.53284,2.5278 -3.79674,5.84617 -3.79674,9.15951l-18.737 18.742 0 -26.5016c2.34149,-2.34653 3.7917,-5.58433 3.7917,-9.15951 0,-3.58021 -1.45021,-6.81802 -3.7917,-9.15951 -2.34653,-2.34653 -5.58433,-3.79674 -9.15951,-3.79674 -3.57518,0 -6.81298,1.45021 -9.15951,3.79674l-26.5016 0 18.742 -18.742c3.31334,0 6.62667,-1.2639 9.15447,-3.7917 5.06064,-5.06064 5.06064,-13.2634 0,-18.319 -5.05561,-5.06064 -13.2584,-5.06064 -18.319,0 -2.5278,2.5278 -3.7917,5.84114 -3.7917,9.15951l-18.737 18.737 0 -26.5016c2.34149,-2.34149 3.7917,-5.58433 3.7917,-9.15951 0,-7.15036 -5.80085,-12.9512 -12.9512,-12.9512 -7.15539,0 -12.9562,5.80085 -12.9562,12.9512 0,3.57518 1.45021,6.81802 3.79674,9.15951l0 26.5016 -18.742 -18.737c0,-3.31837 -1.2639,-6.63171 -3.7917,-9.15951 -5.05561,-5.06064 -13.2634,-5.06064 -18.319,0 -5.05561,5.05561 -5.05561,13.2584 0,18.319 2.5278,2.5278 5.84617,3.7917 9.15951,3.7917l18.737 18.742 -26.4966 0c-2.34653,-2.34653 -5.58433,-3.79674 -9.15951,-3.79674 -3.58021,0 -6.81802,1.45021 -9.15951,3.79674l0 0c-2.34653,2.34149 -3.79674,5.57929 -3.79674,9.15951 0,3.57518 1.45021,6.81298 3.79674,9.15951l0 26.5016 -18.742 -18.742c0,-3.31334 -1.2639,-6.63171 -3.7917,-9.15951 -5.05561,-5.05561 -13.2634,-5.05561 -18.319,0 -5.06064,5.06064 -5.06064,13.2634 0,18.319 2.5278,2.5278 5.84114,3.79674 9.15951,3.79674l18.737 18.737 -26.5016 0c-2.34149,-2.34149 -5.57929,-3.7917 -9.15447,-3.7917 -7.15539,0 -12.9562,5.80085 -12.9562,12.9512 0,7.15539 5.80085,12.9562 12.9562,12.9562 3.57518,0 6.81298,-1.45021 9.15447,-3.79674l26.5016 0 -18.737 18.742c-3.31837,0 -6.63171,1.2639 -9.15951,3.7917 -5.06064,5.06064 -5.06064,13.2634 0,18.319 5.05561,5.06064 13.2634,5.06064 18.319,0 2.5278,-2.5278 3.7917,-5.84114 3.7917,-9.15951l18.742 -18.737 0 26.5016c-2.34653,2.34149 -3.79674,5.57929 -3.79674,9.15951 0,3.57518 1.45021,6.81298 3.79674,9.15951zm115.544 -115.549l0 26.5016 -13.2483 -13.2533 -13.2533 -13.2483 26.5016 0zm-26.2046 26.2046l13.2483 13.2483 -26.4966 0 0 -26.5016 13.2483 13.2533zm-31.5673 31.5673l0 26.5016 -13.2533 -13.2483 -13.2483 -13.2533 26.5016 0zm-39.4529 -57.7719l0 26.5016 13.2483 -13.2533 0 0 13.2483 -13.2483 -26.4966 0zm26.1995 26.2046l0 0 -13.2483 13.2483 26.5016 0 0 -26.5016 -13.2533 13.2533zm71.0252 71.0252l-26.5016 0 13.2533 -13.2533 0 0 13.2483 -13.2483 0 26.5016zm-26.2046 -26.2046l0 0 -13.2483 13.2483 0 -26.5016 26.4966 0 -13.2483 13.2533z"/>
+ <path id="_150991016" class="fil8" d="M467.1 2044.17c4.33553,4.3305 10.3177,7.00937 16.9242,7.00937 -9.34582,9.34582 -9.34582,24.5026 0,33.8434 9.34079,9.34582 24.4975,9.34582 33.8383,0 0.00503546,13.2131 10.7205,23.9336 23.9336,23.9336 13.2131,0 23.9285,-10.7205 23.9285,-23.9336 9.34582,9.34582 24.4975,9.34582 33.8434,0 9.34079,-9.34079 9.34079,-24.4975 0,-33.8434 6.60653,0 12.5887,-2.67887 16.9192,-7.00937l0 0c4.3305,-4.3305 7.00937,-10.3126 7.00937,-16.9192 9.34582,9.34079 24.4975,9.34079 33.8434,0 9.34079,-9.34582 9.34079,-24.5026 0,-33.8434 13.2131,0 23.9285,-10.7205 23.9285,-23.9336 0,-13.2131 -10.7155,-23.9285 -23.9285,-23.9285 9.34079,-9.34582 9.34079,-24.5026 0,-33.8434 -9.34582,-9.34582 -24.4975,-9.34582 -33.8434,0 0,-6.60653 -2.67887,-12.5937 -7.00937,-16.9242 -4.3305,-4.3305 -10.3126,-7.00937 -16.9192,-7.00937 9.34079,-9.34079 9.34079,-24.4975 0,-33.8434 -9.34582,-9.34079 -24.4975,-9.34079 -33.8434,0 0,-13.2131 -10.7155,-23.9285 -23.9285,-23.9285 -13.2131,0 -23.9336,10.7155 -23.9336,23.9285 -9.34079,-9.34079 -24.4975,-9.34079 -33.8383,0 -9.34582,9.34582 -9.34582,24.5026 0,33.8434 -6.60653,0 -12.5887,2.67887 -16.9242,7.00937l0 0c-4.3305,4.3305 -7.00937,10.3126 -7.00937,16.9242 -9.34079,-9.34582 -24.4975,-9.34582 -33.8383,0 -9.34582,9.34079 -9.34582,24.4975 0,33.8434 -13.2181,0 -23.9336,10.7155 -23.9336,23.9285 0,13.2131 10.7155,23.9336 23.9336,23.9336 -9.34582,9.34079 -9.34582,24.4975 0,33.8434 9.34079,9.34079 24.4975,9.34079 33.8383,0 0,6.60653 2.67887,12.5887 7.00937,16.9192zm39.332 -39.332l13.2483 13.2533 -26.4966 0 0 -26.5016 13.2483 13.2483zm-31.5673 31.5724c2.34149,2.34149 5.57929,3.7917 9.15951,3.7917 3.57518,0 6.81298,-1.45021 9.15447,-3.7917l26.5016 0 -18.737 18.737c-3.31334,0 -6.63171,1.2639 -9.15951,3.79674 -5.05561,5.05561 -5.05561,13.2584 0,18.319 5.05561,5.05561 13.2634,5.05561 18.319,0 2.5278,-2.5278 3.7917,-5.84617 3.7917,-9.15951l18.742 -18.742 0 26.5016c-2.34653,2.34653 -3.79674,5.58433 -3.79674,9.15951 0,7.15539 5.80085,12.9562 12.9562,12.9562 7.15036,0 12.9512,-5.80085 12.9512,-12.9562 0,-3.57518 -1.45021,-6.81298 -3.7917,-9.15951l0 -26.5016 18.737 18.742c0,3.31334 1.2639,6.63171 3.7917,9.15951 5.06064,5.05561 13.2634,5.05561 18.3241,0 5.05561,-5.06064 5.05561,-13.2634 -0.00503546,-18.319 -2.5278,-2.53284 -5.84114,-3.79674 -9.15447,-3.79674l-18.742 -18.737 26.5016 0c2.34653,2.34149 5.58433,3.7917 9.15951,3.7917 3.57518,0 6.81298,-1.45021 9.15951,-3.7917l0 0c2.34149,-2.34653 3.7917,-5.58433 3.7917,-9.15951 0,-3.58021 -1.45021,-6.81802 -3.7917,-9.15951l0 -26.5016 18.737 18.737c0,3.31837 1.2639,6.63171 3.79674,9.15951 5.05561,5.06064 13.2584,5.06064 18.319,0 5.05561,-5.05561 5.05561,-13.2584 0,-18.319 -2.53284,-2.5278 -5.84617,-3.7917 -9.15951,-3.7917l-18.742 -18.742 26.5016 0c2.34653,2.34653 5.58433,3.79674 9.15951,3.79674 7.15036,0 12.9512,-5.80085 12.9512,-12.9562 0,-7.15036 -5.80085,-12.9512 -12.9512,-12.9512 -3.57518,0 -6.81298,1.45021 -9.15951,3.7917l-26.5016 0 18.742 -18.737c3.31334,0 6.62667,-1.2639 9.15951,-3.79674 5.05561,-5.05561 5.05561,-13.2584 0,-18.319 -5.06064,-5.05561 -13.2634,-5.05561 -18.319,0 -2.53284,2.5278 -3.79674,5.84617 -3.79674,9.15951l-18.737 18.742 0 -26.5016c2.34149,-2.34653 3.7917,-5.58433 3.7917,-9.15951 0,-3.58021 -1.45021,-6.81802 -3.7917,-9.15951 -2.34653,-2.34653 -5.58433,-3.79674 -9.15951,-3.79674 -3.57518,0 -6.81298,1.45021 -9.15951,3.79674l-26.5016 0 18.742 -18.742c3.31334,0 6.62667,-1.2639 9.15447,-3.7917 5.06064,-5.06064 5.06064,-13.2634 0,-18.319 -5.05561,-5.06064 -13.2584,-5.06064 -18.319,0 -2.5278,2.5278 -3.7917,5.84114 -3.7917,9.15951l-18.737 18.737 0 -26.5016c2.34149,-2.34149 3.7917,-5.58433 3.7917,-9.15951 0,-7.15036 -5.80085,-12.9512 -12.9512,-12.9512 -7.15539,0 -12.9562,5.80085 -12.9562,12.9512 0,3.57518 1.45021,6.81802 3.79674,9.15951l0 26.5016 -18.742 -18.737c0,-3.31837 -1.2639,-6.63171 -3.7917,-9.15951 -5.05561,-5.06064 -13.2634,-5.06064 -18.319,0 -5.05561,5.05561 -5.05561,13.2584 0,18.319 2.5278,2.5278 5.84617,3.7917 9.15951,3.7917l18.737 18.742 -26.4966 0c-2.34653,-2.34653 -5.58433,-3.79674 -9.15951,-3.79674 -3.58021,0 -6.81802,1.45021 -9.15951,3.79674l0 0c-2.34653,2.34149 -3.79674,5.57929 -3.79674,9.15951 0,3.57518 1.45021,6.81298 3.79674,9.15951l0 26.5016 -18.742 -18.742c0,-3.31334 -1.2639,-6.63171 -3.7917,-9.15951 -5.05561,-5.05561 -13.2634,-5.05561 -18.319,0 -5.06064,5.06064 -5.06064,13.2634 0,18.319 2.5278,2.5278 5.84114,3.79674 9.15951,3.79674l18.737 18.737 -26.5016 0c-2.34149,-2.34149 -5.57929,-3.7917 -9.15447,-3.7917 -7.15539,0 -12.9562,5.80085 -12.9562,12.9512 0,7.15539 5.80085,12.9562 12.9562,12.9562 3.57518,0 6.81298,-1.45021 9.15447,-3.79674l26.5016 0 -18.737 18.742c-3.31837,0 -6.63171,1.2639 -9.15951,3.7917 -5.06064,5.06064 -5.06064,13.2634 0,18.319 5.05561,5.06064 13.2634,5.06064 18.319,0 2.5278,-2.5278 3.7917,-5.84114 3.7917,-9.15951l18.742 -18.737 0 26.5016c-2.34653,2.34149 -3.79674,5.57929 -3.79674,9.15951 0,3.57518 1.45021,6.81298 3.79674,9.15951zm115.544 -115.549l0 26.5016 -13.2483 -13.2533 -13.2533 -13.2483 26.5016 0zm-26.2046 26.2046l13.2483 13.2483 -26.4966 0 0 -26.5016 13.2483 13.2533zm-31.5673 31.5673l0 26.5016 -13.2533 -13.2483 -13.2483 -13.2533 26.5016 0zm-39.4529 -57.7719l0 26.5016 13.2483 -13.2533 0 0 13.2483 -13.2483 -26.4966 0zm26.1995 26.2046l0 0 -13.2483 13.2483 26.5016 0 0 -26.5016 -13.2533 13.2533zm71.0252 71.0252l-26.5016 0 13.2533 -13.2533 0 0 13.2483 -13.2483 0 26.5016zm-26.2046 -26.2046l0 0 -13.2483 13.2483 0 -26.5016 26.4966 0 -13.2483 13.2533z"/>
+ <rect id="_151062456" class="fil4" x="484.022" y="1911.7" width="115.545" height="115.549"/>
+ <path id="_151061544" class="fil3" d="M495.53 1916.26l92.9547 0c3.81185,0 6.91873,3.11695 6.91873,6.92376l0 57.1525c-35.923,-4.44631 -71.5388,-21.9244 -106.792,-21.3554l0 -35.7971c0,-3.81185 3.11192,-6.92376 6.91873,-6.92376z"/>
+ <polygon id="_151060936" class="fil12" points="554.802,1947.89 545.603,1992.32 537.979,1992.32 528.779,1947.89 536.403,1947.89 541.791,1973.91 547.179,1947.89 "/>
+ <path id="_151030392" class="fil12" d="M567.814 1966.29l13.0116 0 0 13.0116 0 0c0,7.18561 -5.82603,13.0116 -13.0116,13.0116 -7.18057,0 -13.0116,-5.82603 -13.0116,-13.0116l0 0 0 -18.3996 0 0c0,-7.18561 5.82603,-13.0116 13.0116,-13.0116 7.18561,0 13.0116,5.82603 13.0116,13.0116l-7.62369 0c0,-2.97596 -2.41199,-5.38795 -5.38795,-5.38795 -2.97596,0 -5.38795,2.41199 -5.38795,5.38795l0 18.3996 0 0c0,2.97596 2.41199,5.38795 5.38795,5.38795 2.97596,0 5.38795,-2.41199 5.38795,-5.38795l0 0 0 -5.38795 -5.38795 0 0 -7.62369z"/>
+ <path id="_151029344" class="fil12" d="M506.573 1970.11c-2.3566,-2.3566 -3.81185,-5.60951 -3.81185,-9.19979 0,-7.18561 5.82603,-13.0116 13.0116,-13.0116 7.18057,0 13.0066,5.82603 13.0066,13.0116l-7.61866 0c0,-2.97596 -2.41199,-5.38795 -5.38795,-5.38795 -2.97596,0 -5.39298,2.41199 -5.39298,5.38795 0,1.48546 0.604256,2.83497 1.5761,3.80681l0.00503546 0c0.97688,0.97688 2.32135,1.58114 3.81185,1.58114l0 0c3.59029,0 6.8432,1.46028 9.19979,3.81185l0 0c2.35156,2.3566 3.80681,5.60951 3.80681,9.19979 0,7.18561 -5.82603,13.0116 -13.0066,13.0116 -7.18561,0 -13.0116,-5.82603 -13.0116,-13.0116l7.61866 0c0,2.97596 2.41702,5.38795 5.39298,5.38795 2.97596,0 5.38795,-2.41199 5.38795,-5.38795 0,-1.48546 -0.604256,-2.82993 -1.5761,-3.80681l-0.00503546 0c-0.971845,-0.97688 -2.32135,-1.58114 -3.80681,-1.58114l0 0c-3.59532,0 -6.84823,-1.45525 -9.19979,-3.81185l0 0z"/>
+ </g>
+ <g id="_150795560">
+ <rect id="_150772568" class="fil2" x="730.805" y="1811.52" width="662.895" height="662.895"/>
+ <polygon id="_150772488" class="fil8" points="730.807,1811.52 1393.7,1811.52 1393.7,1811.52 1227.98,1977.24 896.529,1977.24 "/>
+ <polygon id="_151033128" class="fil10" points="1393.7,2474.41 730.807,2474.41 730.807,2474.41 896.529,2308.69 1227.98,2308.69 "/>
+ <path id="_151137304" class="fil4" d="M1062.25 1908.6c-8.78185,0 -17.5687,3.34858 -24.2709,10.0508 0,-18.9535 -15.3682,-34.3217 -34.3217,-34.3217 -18.9485,0 -34.3217,15.3682 -34.3217,34.3217 -13.3994,-13.3994 -35.1375,-13.3994 -48.5368,0 -13.4044,13.4044 -13.4044,35.1375 -0.00503546,48.5419 -9.47171,0 -18.0572,3.84206 -24.2659,10.0508 -6.21376,6.21376 -10.0558,14.7942 -10.0558,24.2709 -13.3994,-13.4044 -35.1375,-13.3994 -48.5368,0 -13.4044,13.3994 -13.4044,35.1375 0,48.5368 -18.9535,0.00503546 -34.3217,15.3733 -34.3217,34.3268 0,18.9485 15.3682,34.3217 34.3217,34.3217 -6.7022,6.7022 -10.0508,15.4841 -10.0508,24.2709l234.366 0 0 -234.371zm-234.366 234.371c0,8.78185 3.34858,17.5687 10.0508,24.2659 -18.9535,0 -34.3217,15.3733 -34.3217,34.3268 0,18.9485 15.3682,34.3217 34.3217,34.3217 -13.4044,13.3994 -13.4044,35.1375 0,48.5368 13.3994,13.4044 35.1375,13.4044 48.5368,0.00503546 0,9.47171 3.84206,18.0521 10.0558,24.2659 6.21376,6.21376 14.7942,10.0558 24.2659,10.0558 -13.3994,13.3994 -13.3994,35.1375 0.00503546,48.5368 13.3994,13.4044 35.1375,13.4044 48.5368,0 0,18.9535 15.3733,34.3217 34.3217,34.3217 18.9535,0 34.3217,-15.3682 34.3268,-34.3217 6.69717,6.7022 15.4841,10.0508 24.2659,10.0508l0 0c8.78688,0 17.5687,-3.34858 24.2709,-10.0508 0,18.9535 15.3682,34.3217 34.3217,34.3217 18.9535,0 34.3217,-15.3682 34.3217,-34.3217 13.4044,13.4044 35.1425,13.4044 48.5419,0 13.3994,-13.3994 13.3994,-35.1375 0,-48.5368 9.47674,0 18.0572,-3.84206 24.2709,-10.0558 6.20873,-6.21376 10.0508,-14.7942 10.0508,-24.2709 13.4044,13.4044 35.1375,13.4044 48.5419,0 13.3994,-13.3994 13.3994,-35.1375 0,-48.5368 18.9535,0 34.3217,-15.3733 34.3217,-34.3217 0,-18.9535 -15.3682,-34.3268 -34.3217,-34.3268 6.69717,-6.69717 10.0508,-15.4841 10.0508,-24.2659l-234.371 0 -234.366 0zm468.736 0c0,-8.78688 -3.35362,-17.5687 -10.0508,-24.2709 18.9535,0 34.3217,-15.3733 34.3217,-34.3217 0,-18.9535 -15.3682,-34.3268 -34.3217,-34.3268 13.3994,-13.3994 13.3994,-35.1375 0,-48.5368 -13.4044,-13.3994 -35.1375,-13.4044 -48.5419,0 0,-9.47674 -3.84206,-18.0572 -10.0508,-24.2709 -6.21376,-6.20873 -14.7942,-10.0508 -24.2709,-10.0508 13.3994,-13.4044 13.3994,-35.1375 0,-48.5419 -13.3994,-13.3994 -35.1375,-13.3994 -48.5419,0 0,-18.9535 -15.3682,-34.3217 -34.3217,-34.3217 -18.9535,0 -34.3217,15.3682 -34.3217,34.3217 -6.7022,-6.7022 -15.4841,-10.0508 -24.2709,-10.0508l0 234.371 234.371 0z"/>
+ <path id="_150771472" class="fil1" d="M1054.38 2135.09l7.87043 -7.87043 0 -85.6986 -7.87043 -7.87043 0 0 -19.0038 -19.0038 26.8743 0 0 -26.2751 0 26.2751 26.8793 0 -19.0038 19.0038 0 0 -7.87547 7.87043 0 85.6986 7.87547 7.87043 7.87043 7.87547 85.6986 0 7.87043 -7.87547 0 0 19.0038 -19.0038 0 26.8793 26.2751 0 0 -26.8793 26.8743 26.8793 37.1617 0c0,-4.75851 -1.8178,-9.51199 -5.44334,-13.1375 -3.62553,-3.63057 -8.37901,-5.44334 -13.1375,-5.44334l-26.8743 -26.8743 38.0077 0c3.36369,3.35865 8.00639,5.4383 13.1375,5.4383 10.2572,0 18.5809,-8.31859 18.5809,-18.5758 0,-10.2623 -8.32362,-18.5809 -18.5809,-18.5809 -5.13114,0 -9.77384,2.07965 -13.1375,5.44334l-38.0077 0 26.8743 -26.8793c4.75851,0 9.51199,-1.81277 13.1375,-5.4383 7.2561,-7.2561 7.2561,-19.024 0,-26.2751 -7.2561,-7.2561 -19.0189,-7.2561 -26.2751,0 -3.62553,3.62553 -5.4383,8.37901 -5.44334,13.1375l-26.8743 26.8743 0 -38.0077c3.36369,-3.36369 5.44334,-8.01142 5.44334,-13.1375 0,-5.13114 -2.07965,-9.77384 -5.44334,-13.1375 -3.36369,-3.36369 -8.00639,-5.44334 -13.1375,-5.44334 -5.13114,0 -9.77384,2.07965 -13.1375,5.44334l-38.0077 0 26.8743 -26.8793c4.75851,0 9.51199,-1.81277 13.1375,-5.4383 7.2561,-7.2561 7.2561,-19.024 0,-26.2751 -7.25107,-7.2561 -19.0189,-7.2561 -26.2751,0 -3.62553,3.62553 -5.4383,8.37901 -5.4383,13.1375l-26.8793 26.8743 0 -38.0077c3.36369,-3.36369 5.44334,-8.00639 5.44334,-13.1375 0,-10.2572 -8.31859,-18.5809 -18.5809,-18.5809 -10.2572,0 -18.5758,8.32362 -18.5758,18.5809 0,5.13114 2.07965,9.77384 5.4383,13.1375l0 38.0077 -26.8743 -26.8743c0,-4.75851 -1.81277,-9.51199 -5.44334,-13.1375 -3.62553,-3.63057 -8.37901,-5.44334 -13.1375,-5.44334l0 37.1617 26.8793 26.8743 -26.8793 0 -26.8743 0 26.8743 -26.8793 0 -37.1567c-4.75348,0 -9.50696,1.81277 -13.1375,5.44334 -3.62553,3.62553 -5.4383,8.37901 -5.4383,13.1375l-26.8793 26.8743 0 -38.0077c3.36369,-3.36369 5.44334,-8.00639 5.44334,-13.1375 0,-10.2572 -8.31859,-18.5809 -18.5809,-18.5809 -10.2572,0 -18.5758,8.32362 -18.5758,18.5809 0,5.13114 2.07965,9.77384 5.4383,13.1375l0 38.0077 -26.8743 -26.8743c0,-4.75851 -1.81277,-9.51199 -5.44334,-13.1375 -7.25107,-7.2561 -19.0189,-7.2561 -26.2751,0 -7.2561,7.25107 -7.2561,19.0189 0,26.2751 3.63057,3.62553 8.38405,5.4383 13.1375,5.4383l26.8793 26.8793 -38.0127 0c-3.36369,-3.36369 -8.00639,-5.44334 -13.1375,-5.44334 -5.1261,0 -9.77384,2.07965 -13.1325,5.44334 -3.36369,3.36369 -5.44334,8.00639 -5.44334,13.1375 0,5.1261 2.07965,9.77384 5.4383,13.1375l0 38.0077 -26.8743 -26.8743c0,-4.75851 -1.81277,-9.51199 -5.44334,-13.1375 -7.25107,-7.2561 -19.0189,-7.2561 -26.2751,0 -7.25107,7.25107 -7.25107,19.0189 0,26.2751 3.63057,3.62553 8.38405,5.4383 13.1375,5.4383l26.8793 26.8793 -38.0127 0c-3.35865,-3.36369 -8.00639,-5.44334 -13.1325,-5.44334 -10.2623,0 -18.5809,8.31859 -18.5809,18.5809 0,10.2572 8.31859,18.5758 18.5809,18.5758 5.1261,0 9.77384,-2.07965 13.1325,-5.4383l38.0127 0 -26.8793 26.8743c-4.75348,0 -9.50696,1.81277 -13.1375,5.44334 -3.62553,3.62553 -5.4383,8.37901 -5.4383,13.1375l37.1567 0 26.8743 -26.8793 0 26.8793 26.2751 0 0 -26.8793 19.0038 19.0038 0 0 7.87547 7.87547 85.6986 0 7.87043 -7.87547zm0 15.7459l-7.87043 -7.87043 -85.6986 0 -7.87043 7.87043 0 0 -19.0089 19.0038 0 -26.8743 -26.2751 0 0 26.8743 -26.8743 -26.8743 -37.1567 0c0,4.75348 1.81277,9.50696 5.4383,13.1375 3.63057,3.62553 8.38405,5.4383 13.1375,5.4383l26.8793 26.8793 -38.0127 0c-3.35865,-3.36369 -8.00639,-5.44334 -13.1325,-5.44334 -10.2623,0 -18.5809,8.31859 -18.5809,18.5809 0,10.2572 8.31859,18.5758 18.5809,18.5758 5.1261,0 9.77384,-2.07965 13.1325,-5.4383l38.0127 0 -26.8793 26.8743c-4.75348,0 -9.50696,1.81277 -13.1375,5.44334 -7.25107,7.25107 -7.25107,19.0189 0,26.2751 7.2561,7.25107 19.024,7.25107 26.2751,0 3.63057,-3.63057 5.44334,-8.38405 5.44334,-13.1375l26.8743 -26.8793 0 38.0127c-3.35865,3.36369 -5.4383,8.00639 -5.4383,13.1375 0,5.1261 2.07965,9.77384 5.44334,13.1325 3.35865,3.36369 8.00639,5.44334 13.1325,5.44334 5.13114,0 9.77384,-2.07965 13.1375,-5.4383l38.0127 0 -26.8793 26.8743c-4.75348,0 -9.50696,1.81277 -13.1375,5.44334 -7.25107,7.25107 -7.25107,19.0189 0,26.2751 7.2561,7.25107 19.024,7.25107 26.2751,0 3.63057,-3.63057 5.44334,-8.38405 5.44334,-13.1375l26.8743 -26.8793 0 38.0127c-3.35865,3.35865 -5.4383,8.00639 -5.4383,13.1325 0,10.2623 8.31859,18.5809 18.5758,18.5809 10.2623,0 18.5809,-8.31859 18.5809,-18.5809 0,-5.1261 -2.07965,-9.77384 -5.44334,-13.1325l0 -38.0127 26.8793 26.8793c0,4.75348 1.81277,9.50696 5.4383,13.1375 3.63057,3.62553 8.38405,5.4383 13.1375,5.4383l0 0c4.75851,0 9.51199,-1.81277 13.1375,-5.4383 3.63057,-3.63057 5.44334,-8.38405 5.44334,-13.1375l26.8743 -26.8793 0 38.0127c-3.35865,3.35865 -5.4383,8.00639 -5.4383,13.1325 0,10.2623 8.31859,18.5809 18.5758,18.5809 10.2623,0 18.5809,-8.31859 18.5809,-18.5809 0,-5.1261 -2.07965,-9.77384 -5.44334,-13.1325l0 -38.0127 26.8793 26.8793c0,4.75348 1.81277,9.50696 5.4383,13.1375 7.2561,7.25107 19.024,7.25107 26.2751,0 7.2561,-7.2561 7.2561,-19.024 0,-26.2751 -3.62553,-3.63057 -8.37901,-5.44334 -13.1375,-5.44334l-26.8743 -26.8743 38.0077 0c3.36369,3.35865 8.00639,5.4383 13.1375,5.4383 5.13114,0 9.77384,-2.07965 13.1375,-5.44334 3.36369,-3.35865 5.44334,-8.00639 5.44334,-13.1375 0,-5.1261 -2.07965,-9.77384 -5.44334,-13.1325l0 -38.0127 26.8793 26.8793c0,4.75348 1.81277,9.50696 5.4383,13.1375 7.2561,7.25107 19.0189,7.25107 26.2751,0 7.2561,-7.2561 7.2561,-19.024 0,-26.2751 -3.62553,-3.63057 -8.37901,-5.44334 -13.1375,-5.44334l-26.8743 -26.8743 38.0077 0c3.36369,3.35865 8.00639,5.4383 13.1375,5.4383 10.2572,0 18.5809,-8.31859 18.5809,-18.5758 0,-10.2623 -8.32362,-18.5809 -18.5809,-18.5809 -5.13114,0 -9.77384,2.07965 -13.1375,5.44334l-38.0077 0 26.8743 -26.8793c4.75851,0 9.51199,-1.81277 13.1375,-5.4383 3.62553,-3.63057 5.44334,-8.38405 5.44334,-13.1375l-37.1617 0 -26.8743 26.8743 0 -26.8743 -26.2751 0 0 26.8743 -19.0038 -19.0038 0 0 -7.87043 -7.87043 -85.6986 0 -7.87043 7.87043 -7.87547 7.87043 -7.87043 -7.87043zm7.87043 173.598l-26.8743 -26.8743 26.8743 0 0 0 26.8793 0 -26.8793 26.8743zm0 -53.1493l-26.8743 0 19.0038 -19.0089 0 0 7.87043 -7.87043 0 0 7.87547 7.87043 0 0 19.0038 19.0038 -26.8793 0.00503546zm128.319 -0.00503546l-38.0077 0 19.0038 -19.0038 19.0038 -19.0038 0 38.0077zm-37.5847 -37.5797l-19.0038 19.0038 0 -38.0077 38.0077 0 -19.0038 19.0038zm-45.2789 -45.2789l-38.0077 0 19.0038 -19.0038 19.0038 -19.0038 0 38.0077zm45.2789 -19.0038l0 0 -19.0038 -19.0038 0 38.0077 38.0077 0 -19.0038 -19.0038zm-64.2827 64.2827l0 0 -19.0038 -19.0038 38.0077 0 0 38.0077 -19.0038 -19.0038zm101.867 -219.053l0 38.0077 -19.0038 -19.0038 -19.0038 -19.0038 38.0077 0zm-37.5847 37.5847l19.0038 19.0038 -38.0077 0 0 -38.0077 19.0038 19.0038zm-45.2789 45.2789l0 38.0077 -19.0038 -19.0038 -19.0038 -19.0038 38.0077 0zm-19.0038 -45.2789l0 0 -19.0038 19.0038 38.0077 0 0 -38.0127 -19.0038 19.0089zm64.2827 64.2827l0 0 -19.0038 19.0038 0 -38.0077 38.0077 0 -19.0038 19.0038zm-219.053 -101.867l38.0127 0 -19.0038 19.0038 -19.0089 19.0038 0 -38.0077zm37.5847 37.5847l19.0038 -19.0038 0 38.0077 -38.0077 0 19.0038 -19.0038zm45.2789 45.2789l38.0077 0 -19.0038 19.0038 -19.0038 19.0038 0 -38.0077zm-45.2789 19.0038l0 0 19.0038 19.0038 0 -38.0077 -38.0077 0 19.0038 19.0038zm64.2827 -64.2827l0 0 19.0038 19.0038 -38.0077 0 0 -38.0077 19.0038 19.0038zm-101.867 219.053l0 -38.0127 19.0089 19.0038 19.0038 19.0089 -38.0127 0zm37.5847 -37.5847l-19.0038 -19.0038 38.0077 0 0 38.0077 -19.0038 -19.0038zm45.2789 -45.2789l0 -38.0077 19.0038 19.0038 19.0038 19.0038 -38.0077 0zm19.0038 45.2789l0 0 19.0038 -19.0038 -38.0077 0 0 38.0077 19.0038 -19.0038zm-64.2827 -64.2827l0 0 19.0038 -19.0038 0 38.0077 -38.0077 0 19.0038 -19.0038z"/>
+ <g>
+ <rect id="_150771024" class="fil4" x="1227.98" y="2308.69" width="156.864" height="156.87"/>
+ <path id="_150770296" class="fil3" d="M1247.77 2320.44l117.865 0c4.82901,0 8.77178,3.9478 8.77178,8.77178l0 72.4704c-45.5508,-5.63468 -90.7088,-27.7958 -135.409,-27.0757l0 -45.3947c0,-4.82901 3.94277,-8.77178 8.77178,-8.77178z"/>
+ <g>
+ <polygon id="_150769936" class="fil1 str3" points="1325.6,2355.23 1312.03,2420.75 1300.79,2420.75 1287.22,2355.23 1298.46,2355.23 1306.41,2393.6 1314.35,2355.23 "/>
+ <path id="_150769744" class="fil1 str3" d="M1344.79 2382.37l19.1902 0 0 19.1851 0 0c0,10.5997 -8.5905,19.1952 -19.1902,19.1952 -10.5946,0 -19.1902,-8.59554 -19.1902,-19.1902l0 -0.00503546 0 -27.1361 -0.00503546 0c0,-10.5946 8.59554,-19.1902 19.1952,-19.1902 10.5946,0 19.1902,8.59554 19.1902,19.1902l-11.2442 0c0,-4.38589 -3.56007,-7.94596 -7.94596,-7.94596 -4.39092,0 -7.94596,3.56007 -7.94596,7.94596l0 27.1412 0 0c0,4.38589 3.56007,7.94093 7.94596,7.94093 4.38589,0 7.94596,-3.55504 7.94596,-7.94093l0 -0.00503546 0 -7.94093 -7.94596 0 0 -11.2442z"/>
+ <path id="_150768992" class="fil1 str3" d="M1254.46 2387.99c-3.47447,-3.47447 -5.62461,-8.27327 -5.62461,-13.5706 0,-10.5997 8.59554,-19.1902 19.1902,-19.1902 10.5997,0 19.1902,8.5905 19.1902,19.1902l-11.2392 0c0,-4.39092 -3.56007,-7.951 -7.951,-7.951 -4.38589,0 -7.94596,3.56007 -7.94596,7.951 0,2.19043 0.886242,4.17944 2.32135,5.61454l0.00503546 0c1.44014,1.44014 3.42412,2.33142 5.61958,2.33142l0 0.00503546c5.29731,0 10.0961,2.14511 13.5706,5.61958l0 0c3.47447,3.47447 5.61958,8.26823 5.61958,13.5706 0,10.5946 -8.5905,19.1902 -19.1902,19.1902 -10.5946,0 -19.1902,-8.59554 -19.1902,-19.1902l11.2442 0c0,4.38589 3.56007,7.94596 7.94596,7.94596 4.39092,0 7.951,-3.56007 7.951,-7.94596 0,-2.19546 -0.891277,-4.17944 -2.32638,-5.61958l-0.00503546 0c-1.43511,-1.44014 -3.42412,-2.32638 -5.61958,-2.32638l0 -0.00503546c-5.29731,0 -10.0961,-2.15014 -13.5655,-5.61958l0 0z"/>
+ </g>
+ </g>
+ <rect id="_150768096" class="fil4" x="1227.97" y="1820.37" width="156.864" height="156.87"/>
+ <path id="_150767728" class="fil3" d="M1247.76 1832.12l117.865 0c4.82901,0 8.77178,3.9478 8.77178,8.77178l0 72.4704c-45.5508,-5.63468 -90.7088,-27.7958 -135.414,-27.0757l0 -45.3947c0,-4.82901 3.9478,-8.77178 8.77681,-8.77178z"/>
+ <g>
+ <polygon id="_150767368" class="fil1 str3" points="1325.59,1932.43 1312.02,1866.91 1300.78,1866.91 1287.21,1932.43 1298.45,1932.43 1306.4,1894.05 1314.35,1932.43 "/>
+ <path id="_150767176" class="fil1 str3" d="M1344.79 1905.29l19.1902 0 0 -19.1902 0 0c0,-10.5997 -8.59554,-19.1902 -19.1902,-19.1902 -10.5997,0 -19.1902,8.5905 -19.1902,19.1902l0 0 0 27.1361 -0.00503546 0c0,10.5997 8.59554,19.1952 19.1902,19.1952 10.5997,0 19.1952,-8.59554 19.1952,-19.1952l-11.2442 0c0,4.39092 -3.56007,7.94596 -7.94596,7.94596 -4.39092,0 -7.94596,-3.55504 -7.94596,-7.94596l0 -27.1361 0 0c0,-4.39092 3.55504,-7.94596 7.94596,-7.94596 4.38589,0 7.94093,3.55504 7.94596,7.94093l0 0.00503546 0 7.94596 -7.94596 0 0 11.2442z"/>
+ <path id="_150979832" class="fil1 str3" d="M1254.45 1899.67c-3.46943,3.46943 -5.61958,8.26823 -5.61958,13.5706 0,10.5946 8.59554,19.1902 19.1902,19.1902 10.5946,0 19.1902,-8.59554 19.1902,-19.1902l-11.2392 0c0,4.38589 -3.56007,7.94596 -7.951,7.94596 -4.39092,0 -7.951,-3.56007 -7.951,-7.94596 0,-2.19546 0.891277,-4.17944 2.32638,-5.61958l0.00503546 0c1.43511,-1.44014 3.42412,-2.33142 5.61958,-2.33142l0 0c5.29731,0 10.0961,-2.15014 13.5706,-5.62461l0 0c3.46943,-3.46943 5.61958,-8.26823 5.61958,-13.5655 0,-10.5997 -8.59554,-19.1902 -19.1902,-19.1902 -10.5946,0 -19.1902,8.5905 -19.1902,19.1902l11.2392 0c0,-4.39092 3.56007,-7.951 7.951,-7.951 4.39092,0 7.951,3.56007 7.951,7.951 0,2.19043 -0.891277,4.17944 -2.32638,5.61454l-0.00503546 0c-1.43511,1.44014 -3.42412,2.33142 -5.61958,2.33142l0 0c-5.29731,0 -10.0961,2.15014 -13.5706,5.62461l0 0z"/>
+ </g>
+ <rect id="_150979584" class="fil4" x="739.653" y="1820.38" width="156.864" height="156.87"/>
+ <path id="_150582664" class="fil3" d="M759.444 1832.12l117.865 0c4.82901,0 8.77178,3.9478 8.77178,8.77178l0 72.4704c-45.5508,-5.63468 -90.7088,-27.7958 -135.414,-27.0757l0 -45.3947c0,-4.82901 3.9478,-8.77178 8.77681,-8.77178z"/>
+ <g>
+ <polygon id="_21782944" class="fil1 str3" points="798.897,1932.43 812.467,1866.91 823.706,1866.91 837.277,1932.43 826.033,1932.43 818.087,1894.06 810.141,1932.43 "/>
+ <path id="_21782784" class="fil1 str3" d="M779.706 1905.29l-19.1902 0 0 -19.1902 -0.00503546 0c0,-10.5997 8.59554,-19.1902 19.1902,-19.1902 10.5997,0 19.1902,8.5905 19.1952,19.1902l0 0 0 27.1361 0 0c0,10.5997 -8.59554,19.1952 -19.1902,19.1952 -10.5997,0 -19.1902,-8.59554 -19.1902,-19.1952l11.2442 0c0,4.39092 3.55504,7.94596 7.94596,7.94596 4.38589,0 7.94596,-3.55504 7.94596,-7.94596l0 -27.1361 0 0c-0.00503546,-4.38589 -3.56007,-7.94596 -7.94596,-7.94596 -4.39092,0 -7.94596,3.55504 -7.94596,7.94596l0 0 0 7.94596 7.94596 0 0 11.2442z"/>
+ <path id="_150832472" class="fil1 str3" d="M870.038 1899.67c3.47447,3.47447 5.61958,8.26823 5.61958,13.5706 0,10.5946 -8.5905,19.1902 -19.1902,19.1902 -10.5946,0 -19.1902,-8.59554 -19.1902,-19.1902l11.2442 0c0,4.38589 3.56007,7.94596 7.94596,7.94596 4.39092,0 7.951,-3.56007 7.951,-7.94596 0,-2.19546 -0.891277,-4.17944 -2.32638,-5.61958l-0.00503546 0c-1.43511,-1.44014 -3.42412,-2.32638 -5.61958,-2.33142l0 0c-5.29731,0 -10.0961,-2.15014 -13.5655,-5.62461l0 0.00503546c-3.47447,-3.47447 -5.62461,-8.27327 -5.62461,-13.5706 0,-10.5997 8.59554,-19.1902 19.1902,-19.1902 10.5997,0 19.1902,8.5905 19.1902,19.1902l-11.2392 0c0,-4.39092 -3.56007,-7.951 -7.951,-7.951 -4.38589,0 -7.94596,3.56007 -7.94596,7.951 0,2.19043 0.886242,4.17944 2.32135,5.61454l0.00503546 0c1.44014,1.44014 3.42412,2.33142 5.61958,2.33142l0 0c5.29731,0 10.0961,2.15014 13.5706,5.62461l0 0z"/>
+ </g>
+ <rect id="_150820904" class="fil4" x="739.665" y="2308.69" width="156.864" height="156.87"/>
+ <path id="_150819512" class="fil3" d="M759.454 2320.44l117.865 0c4.82901,0 8.77178,3.9478 8.77178,8.77178l0 72.4704c-45.5508,-5.63468 -90.7088,-27.7958 -135.409,-27.0757l0 -45.3947c0,-4.82901 3.94277,-8.77178 8.77178,-8.77178z"/>
+ <g>
+ <polygon id="_150797192" class="fil1 str3" points="798.912,2355.23 812.477,2420.75 823.721,2420.75 837.292,2355.23 826.048,2355.23 818.102,2393.6 810.151,2355.23 "/>
+ <path id="_150797032" class="fil1 str3" d="M779.716 2382.37l-19.1902 0 0 19.1851 -0.00503546 0c0,10.5997 8.59554,19.1952 19.1952,19.1952 10.5946,0 19.1902,-8.59554 19.1902,-19.1952l0 0 0 -27.1361 0.00503546 0c0,-10.5997 -8.59554,-19.1902 -19.1952,-19.1902 -10.5946,0 -19.1902,8.5905 -19.1902,19.1902l11.2442 0c0,-4.38589 3.56007,-7.94596 7.94596,-7.94596 4.38589,0 7.94596,3.56007 7.94596,7.94596l0 27.1361 0 0c0,4.39092 -3.56007,7.94596 -7.94596,7.94596 -4.38589,0 -7.94596,-3.55504 -7.94596,-7.94093l0 -0.00503546 0 -7.94093 7.94596 0 0 -11.2442z"/>
+ <path id="_150795784" class="fil1 str3" d="M870.048 2387.98c3.47447,-3.46943 5.62461,-8.26823 5.62461,-13.5655 0,-10.5997 -8.59554,-19.1902 -19.1902,-19.1902 -10.5997,0 -19.1902,8.5905 -19.1902,19.1902l11.2392 0c0,-4.39092 3.56007,-7.951 7.951,-7.951 4.38589,0 7.94596,3.56007 7.94596,7.951 0,2.19043 -0.886242,4.1744 -2.32135,5.61454l-0.00503546 0c-1.44014,1.44014 -3.42915,2.33142 -5.61958,2.33142l0 0c-5.30234,0 -10.0961,2.15014 -13.5706,5.62461l0 0c-3.47447,3.46943 -5.61958,8.26823 -5.61958,13.5655 0,10.5997 8.5905,19.1952 19.1902,19.1952 10.5946,0 19.1902,-8.59554 19.1902,-19.1952l-11.2442 0c0,4.39092 -3.56007,7.951 -7.94596,7.951 -4.39092,0 -7.951,-3.56007 -7.951,-7.951 0,-2.19043 0.886242,-4.1744 2.32638,-5.61454l0 0c1.44014,-1.44014 3.42915,-2.33142 5.62461,-2.33142l0 0c5.29731,0 10.0911,-2.15014 13.5655,-5.62461l0 0z"/>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/Sierpinski_carpet_6.svg b/PerformanceTests/PageLoad/svg/files/Sierpinski_carpet_6.svg
new file mode 100644
index 000000000..af583a1fb
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/Sierpinski_carpet_6.svg
@@ -0,0 +1,62 @@
+<?xml version="1.0" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="900" height="900">
+ <defs>
+ <symbol id="s" viewBox="0 0 3 3">
+ <rect fill="#000" width="1" height="1" x="1" y="1"/>
+ </symbol>
+ <symbol id="s1" viewBox="0 0 900 900">
+ <use xlink:href="#s" x="0" y="0" width="900" height="900"/>
+ <use xlink:href="#s" x="0" y="0" width="300" height="300"/>
+ <use xlink:href="#s" x="300" y="0" width="300" height="300"/>
+ <use xlink:href="#s" x="600" y="0" width="300" height="300"/>
+ <use xlink:href="#s" x="0" y="300" width="300" height="300"/>
+ <use xlink:href="#s" x="600" y="300" width="300" height="300"/>
+ <use xlink:href="#s" x="0" y="600" width="300" height="300"/>
+ <use xlink:href="#s" x="300" y="600" width="300" height="300"/>
+ <use xlink:href="#s" x="600" y="600" width="300" height="300"/>
+ </symbol>
+ <symbol id="s2" viewBox="0 0 900 900">
+ <use xlink:href="#s" x="0" y="0" width="900" height="900"/>
+ <use xlink:href="#s1" x="0" y="0" width="300" height="300"/>
+ <use xlink:href="#s1" x="300" y="0" width="300" height="300"/>
+ <use xlink:href="#s1" x="600" y="0" width="300" height="300"/>
+ <use xlink:href="#s1" x="0" y="300" width="300" height="300"/>
+ <use xlink:href="#s1" x="600" y="300" width="300" height="300"/>
+ <use xlink:href="#s1" x="0" y="600" width="300" height="300"/>
+ <use xlink:href="#s1" x="300" y="600" width="300" height="300"/>
+ <use xlink:href="#s1" x="600" y="600" width="300" height="300"/>
+ </symbol>
+ <symbol id="s3" viewBox="0 0 900 900">
+ <use xlink:href="#s" x="0" y="0" width="900" height="900"/>
+ <use xlink:href="#s2" x="0" y="0" width="300" height="300"/>
+ <use xlink:href="#s2" x="300" y="0" width="300" height="300"/>
+ <use xlink:href="#s2" x="600" y="0" width="300" height="300"/>
+ <use xlink:href="#s2" x="0" y="300" width="300" height="300"/>
+ <use xlink:href="#s2" x="600" y="300" width="300" height="300"/>
+ <use xlink:href="#s2" x="0" y="600" width="300" height="300"/>
+ <use xlink:href="#s2" x="300" y="600" width="300" height="300"/>
+ <use xlink:href="#s2" x="600" y="600" width="300" height="300"/>
+ </symbol>
+ <symbol id="s4" viewBox="0 0 900 900">
+ <use xlink:href="#s" x="0" y="0" width="900" height="900"/>
+ <use xlink:href="#s3" x="0" y="0" width="300" height="300"/>
+ <use xlink:href="#s3" x="300" y="0" width="300" height="300"/>
+ <use xlink:href="#s3" x="600" y="0" width="300" height="300"/>
+ <use xlink:href="#s3" x="0" y="300" width="300" height="300"/>
+ <use xlink:href="#s3" x="600" y="300" width="300" height="300"/>
+ <use xlink:href="#s3" x="0" y="600" width="300" height="300"/>
+ <use xlink:href="#s3" x="300" y="600" width="300" height="300"/>
+ <use xlink:href="#s3" x="600" y="600" width="300" height="300"/>
+ </symbol>
+ </defs>
+ <rect width="900" height="900" fill="#fff"/>
+ <use xlink:href="#s" x="0" y="0" width="900" height="900"/>
+ <use xlink:href="#s4" x="0" y="0" width="300" height="300"/>
+ <use xlink:href="#s4" x="300" y="0" width="300" height="300"/>
+ <use xlink:href="#s4" x="600" y="0" width="300" height="300"/>
+ <use xlink:href="#s4" x="0" y="300" width="300" height="300"/>
+ <use xlink:href="#s4" x="600" y="300" width="300" height="300"/>
+ <use xlink:href="#s4" x="0" y="600" width="300" height="300"/>
+ <use xlink:href="#s4" x="300" y="600" width="300" height="300"/>
+ <use xlink:href="#s4" x="600" y="600" width="300" height="300"/>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/az-lizard_benji_park_01.svg b/PerformanceTests/PageLoad/svg/files/az-lizard_benji_park_01.svg
new file mode 100644
index 000000000..1255e9ace
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/az-lizard_benji_park_01.svg
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Created with Inkscape (http://www.inkscape.org/) --><svg height="502.00000pt" id="svg11018" inkscape:version="0.40" sodipodi:docbase="/home/bpcomp/Inkscape" sodipodi:docname="lizard2.svg" sodipodi:version="0.32" width="559.28000pt" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+ <rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <cc:Work rdf:about="">
+ <dc:title>AZ-lizard</dc:title>
+ <dc:description></dc:description>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li></rdf:li>
+ <rdf:li>lizard</rdf:li>
+ <rdf:li>reptile</rdf:li>
+ <rdf:li>animal</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <dc:publisher>
+ <cc:Agent rdf:about="http://www.openclipart.org">
+ <dc:title>Benji Park</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Benji Park</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>Benji Park</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:date></dc:date>
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+ <dc:language>en</dc:language>
+ </cc:Work>
+ <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+ <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+ <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+ <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <defs id="defs3">
+ <radialGradient cx="98.649132" cy="778.59222" fx="98.649132" fy="778.59222" gradientTransform="matrix(0.760566,0.000000,0.000000,0.685902,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient7463" inkscape:collect="always" r="74.114555" spreadMethod="reflect" xlink:href="#linearGradient7460"/>
+ <radialGradient cx="737.01276" cy="994.70789" fx="737.01276" fy="994.70789" gradientTransform="matrix(0.825387,0.000000,0.000000,0.632035,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9625" inkscape:collect="always" r="58.924759" xlink:href="#linearGradient8189"/>
+ <linearGradient id="linearGradient7460" inkscape:collect="always">
+ <stop id="stop7461" offset="0" style="stop-color:#bfbfa8;stop-opacity:1;"/>
+ <stop id="stop7462" offset="1" style="stop-color:#bfbfa8;stop-opacity:0;"/>
+ </linearGradient>
+ <linearGradient gradientTransform="scale(1.554818,0.643162)" gradientUnits="userSpaceOnUse" id="linearGradient10946" inkscape:collect="always" x1="116.06332" x2="150.24559" xlink:href="#linearGradient7460" y1="871.92633" y2="905.98358"/>
+ <radialGradient cx="240.50974" cy="279.98764" fx="240.50974" fy="279.98764" gradientTransform="matrix(0.720802,0.000000,0.000000,0.723740,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8883" inkscape:collect="always" r="13.612052" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="204.58498" cy="364.59113" fx="204.78387" fy="364.72552" gradientTransform="matrix(0.839503,0.000000,0.000000,0.621408,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8888" inkscape:collect="always" r="13.243665" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="274.04587" cy="316.40024" fx="274.04587" fy="316.40024" gradientTransform="matrix(0.723943,0.000000,0.000000,0.720601,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8893" inkscape:collect="always" r="12.975245" xlink:href="#linearGradient8189"/>
+ <linearGradient gradientTransform="matrix(1.442200,0.000000,0.000000,0.361721,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient10270" inkscape:collect="always" x1="134.92531" x2="147.37489" xlink:href="#linearGradient8189" y1="921.55902" y2="993.16809"/>
+ <linearGradient id="linearGradient10282">
+ <stop id="stop10283" offset="0.0000000" style="stop-color:#68996a;stop-opacity:1.0000000;"/>
+ <stop id="stop10284" offset="1.0000000" style="stop-color:#a1be97;stop-opacity:0.0000000;"/>
+ </linearGradient>
+ <radialGradient cx="230.07584" cy="433.78378" fx="230.07584" fy="433.78378" gradientTransform="matrix(0.864275,0.000000,0.000000,0.603597,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient10281" inkscape:collect="always" r="86.748650" xlink:href="#linearGradient10282"/>
+ <radialGradient cx="249.73630" cy="370.87375" fx="249.73630" fy="370.87375" gradientTransform="matrix(0.683506,0.000000,0.000000,0.763233,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient10276" inkscape:collect="always" r="28.168682" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="97.149384" cy="145.65353" fx="97.149384" fy="145.81316" gradientTransform="matrix(0.673180,0.000000,0.000000,0.774939,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8188" inkscape:collect="always" r="16.346317" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="114.30267" cy="154.00302" fx="114.21590" fy="153.91556" gradientTransform="matrix(0.723213,0.000000,0.000000,0.721328,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8196" inkscape:collect="always" r="11.108851" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="151.85503" cy="173.48666" fx="152.07190" fy="173.20454" gradientTransform="matrix(0.669436,0.000000,0.000000,0.779274,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8201" inkscape:collect="always" r="11.721261" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="112.29945" cy="236.24049" fx="112.29945" fy="236.24049" gradientTransform="matrix(0.845654,0.000000,0.000000,0.616888,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8206" inkscape:collect="always" r="10.315782" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="109.60774" cy="180.80469" fx="109.78211" fy="180.89937" gradientTransform="matrix(0.747611,0.000000,0.000000,0.697788,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8211" inkscape:collect="always" r="9.8540220" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="178.22905" cy="221.73311" fx="178.56042" fy="221.58943" gradientTransform="matrix(0.667286,0.000000,0.000000,0.781785,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8863" inkscape:collect="always" r="14.763375" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="150.65839" cy="256.11533" fx="150.65839" fy="256.11533" gradientTransform="matrix(0.844589,0.000000,0.000000,0.617666,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8868" inkscape:collect="always" r="10.923086" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="191.88486" cy="270.94382" fx="191.88486" fy="270.94382" gradientTransform="matrix(0.786872,0.000000,0.000000,0.662972,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8873" inkscape:collect="always" r="11.963755" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="202.23952" cy="278.05008" fx="202.52200" fy="278.19244" gradientTransform="matrix(0.724072,0.000000,0.000000,0.720473,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8878" inkscape:collect="always" r="14.131208" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="328.73151" cy="399.07733" fx="328.73151" fy="399.07733" gradientTransform="matrix(0.715427,0.000000,0.000000,0.729178,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9534" inkscape:collect="always" r="16.043007" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="425.43576" cy="330.05527" fx="425.43576" fy="330.05527" gradientTransform="matrix(0.600546,0.000000,0.000000,0.868667,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9557" inkscape:collect="always" r="13.431180" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="199.79327" cy="709.83331" fx="199.79327" fy="709.83331" gradientTransform="matrix(0.928482,0.000000,0.000000,0.561857,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient10255" inkscape:collect="always" r="26.338278" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="219.75931" cy="531.98633" fx="219.75931" fy="531.98633" gradientTransform="matrix(0.748401,0.000000,0.000000,0.697051,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient10260" inkscape:collect="always" r="46.570679" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="189.58533" cy="513.01935" fx="189.58533" fy="513.01935" gradientTransform="matrix(0.747980,0.000000,0.000000,0.697444,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient10265" inkscape:collect="always" r="31.132721" xlink:href="#linearGradient8189"/>
+ <linearGradient gradientTransform="matrix(0.922098,0.000000,0.000000,0.565746,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient10289" inkscape:collect="always" x1="310.00717" x2="314.40579" xlink:href="#linearGradient8189" y1="428.68369" y2="453.62173"/>
+ <linearGradient gradientTransform="matrix(0.700233,0.000000,0.000000,0.745000,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient10294" inkscape:collect="always" x1="396.75473" x2="401.84399" xlink:href="#linearGradient8189" y1="289.19772" y2="308.44156"/>
+ <linearGradient gradientTransform="matrix(0.875909,0.000000,0.000000,0.595580,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient10299" inkscape:collect="always" x1="336.36844" x2="345.45892" xlink:href="#linearGradient8189" y1="456.41464" y2="482.36508"/>
+ <linearGradient gradientTransform="matrix(0.601953,-0.111331,0.154983,0.837971,15.29703,209.2121)" gradientUnits="userSpaceOnUse" id="linearGradient10305" inkscape:collect="always" x1="538.22241" x2="547.95148" xlink:href="#linearGradient8189" y1="316.04315" y2="322.38690"/>
+ <linearGradient gradientTransform="matrix(0.627866,-7.701130e-2,0.100400,0.818553,31.87153,189.2094)" gradientUnits="userSpaceOnUse" id="linearGradient10310" inkscape:collect="always" x1="533.37048" x2="538.64050" xlink:href="#linearGradient8189" y1="303.23849" y2="313.92682"/>
+ <linearGradient id="linearGradient10317">
+ <stop id="stop10318" offset="0.0000000" style="stop-color:#e1e5ab;stop-opacity:0.62886596;"/>
+ <stop id="stop10319" offset="1" style="stop-color:#000000;stop-opacity:0;"/>
+ </linearGradient>
+ <linearGradient gradientTransform="matrix(0.613973,0.000000,0.000000,0.849668,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient10316" inkscape:collect="always" x1="491.50375" x2="558.04773" xlink:href="#linearGradient10317" y1="289.42950" y2="328.58487"/>
+ <linearGradient gradientTransform="matrix(0.962370,0.000000,0.000000,0.542071,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient11003" inkscape:collect="always" x1="56.993549" x2="61.134335" xlink:href="#linearGradient8189" y1="487.82050" y2="509.78027"/>
+ <linearGradient gradientTransform="matrix(0.902080,0.000000,0.000000,0.578301,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient11008" inkscape:collect="always" x1="60.883965" x2="59.455124" xlink:href="#linearGradient8189" y1="437.04468" y2="465.35019"/>
+ <radialGradient cx="85.752022" cy="324.92114" fx="85.752022" fy="324.92114" gradientTransform="matrix(0.695840,0.000000,0.000000,0.749704,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient11017" inkscape:collect="always" r="31.198971" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="282.66940" cy="348.74207" fx="282.66940" fy="348.74207" gradientTransform="matrix(0.715497,0.000000,0.000000,0.729107,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient8898" inkscape:collect="always" r="15.233325" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="302.74521" cy="367.49094" fx="302.98102" fy="367.23489" gradientTransform="matrix(0.747414,0.000000,0.000000,0.697972,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9524" inkscape:collect="always" r="12.081663" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="483.88947" cy="332.88141" fx="483.88947" fy="332.88141" gradientTransform="matrix(0.515584,0.000000,0.000000,1.011811,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9564" inkscape:collect="always" r="30.979073" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="346.49158" cy="461.87784" fx="346.49158" fy="461.87784" gradientTransform="matrix(0.741318,0.000000,0.000000,0.703711,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9569" inkscape:collect="always" r="33.505066" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="470.82874" cy="351.34262" fx="470.82874" fy="351.34262" gradientTransform="matrix(0.588826,0.000000,0.000000,0.885956,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9575" inkscape:collect="always" r="30.971931" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="336.77710" cy="547.36145" fx="336.77710" fy="547.36145" gradientTransform="matrix(0.793294,0.000000,0.000000,0.657604,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9580" inkscape:collect="always" r="54.772186" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="552.72986" cy="365.32309" fx="552.72986" fy="365.32309" gradientTransform="matrix(0.546732,0.000000,0.000000,0.954166,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9585" inkscape:collect="always" r="27.489485" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="368.89963" cy="619.97791" fx="368.89963" fy="619.97791" gradientTransform="matrix(0.835914,0.000000,0.000000,0.624076,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9590" inkscape:collect="always" r="46.958698" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="393.84204" cy="659.33624" fx="393.84204" fy="659.33624" gradientTransform="matrix(0.817864,0.000000,0.000000,0.637849,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9595" inkscape:collect="always" r="46.241875" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="427.57837" cy="702.82318" fx="427.57837" fy="702.82318" gradientTransform="matrix(0.794256,0.000000,0.000000,0.656808,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9600" inkscape:collect="always" r="44.215576" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="484.08411" cy="730.95013" fx="483.73654" fy="731.51349" gradientTransform="matrix(0.744050,0.000000,0.000000,0.701128,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9605" inkscape:collect="always" r="45.477543" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="507.51727" cy="843.87622" fx="507.51727" fy="843.87622" gradientTransform="matrix(0.771370,0.000000,0.000000,0.676295,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9610" inkscape:collect="always" r="60.087421" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="485.81693" cy="1091.1769" fx="486.26938" fy="1090.4523" gradientTransform="matrix(0.913947,0.000000,0.000000,0.570792,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9615" inkscape:collect="always" r="53.143215" xlink:href="#linearGradient8189"/>
+ <linearGradient id="linearGradient8189">
+ <stop id="stop8190" offset="0.0000000" style="stop-color:#411414;stop-opacity:0.0000000;"/>
+ <stop id="stop8191" offset="1.0000000" style="stop-color:#000000;stop-opacity:0.96907216;"/>
+ </linearGradient>
+ <radialGradient cx="451.16931" cy="1434.4132" fx="451.16931" fy="1434.4132" gradientTransform="matrix(1.163038,0.000000,0.000000,0.448544,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient9620" inkscape:collect="always" r="39.929932" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="451.16931" cy="1434.4132" fx="451.16931" fy="1434.4132" gradientTransform="matrix(1.163038,0.000000,0.000000,0.448544,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12001" inkscape:collect="always" r="39.929932" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="485.81693" cy="1091.1769" fx="486.26938" fy="1090.4523" gradientTransform="matrix(0.913947,0.000000,0.000000,0.570792,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12002" inkscape:collect="always" r="53.143215" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="507.51727" cy="843.87622" fx="507.51727" fy="843.87622" gradientTransform="matrix(0.771370,0.000000,0.000000,0.676295,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12003" inkscape:collect="always" r="60.087421" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="484.08411" cy="730.95013" fx="483.73654" fy="731.51349" gradientTransform="matrix(0.744050,0.000000,0.000000,0.701128,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12004" inkscape:collect="always" r="45.477543" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="427.57837" cy="702.82318" fx="427.57837" fy="702.82318" gradientTransform="matrix(0.794256,0.000000,0.000000,0.656808,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12005" inkscape:collect="always" r="44.215576" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="393.84204" cy="659.33624" fx="393.84204" fy="659.33624" gradientTransform="matrix(0.817864,0.000000,0.000000,0.637849,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12006" inkscape:collect="always" r="46.241875" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="368.89963" cy="619.97791" fx="368.89963" fy="619.97791" gradientTransform="matrix(0.835914,0.000000,0.000000,0.624076,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12007" inkscape:collect="always" r="46.958698" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="552.72986" cy="365.32309" fx="552.72986" fy="365.32309" gradientTransform="matrix(0.546732,0.000000,0.000000,0.954166,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12008" inkscape:collect="always" r="27.489485" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="336.77710" cy="547.36145" fx="336.77710" fy="547.36145" gradientTransform="matrix(0.793294,0.000000,0.000000,0.657604,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12009" inkscape:collect="always" r="54.772186" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="470.82874" cy="351.34262" fx="470.82874" fy="351.34262" gradientTransform="matrix(0.588826,0.000000,0.000000,0.885956,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12010" inkscape:collect="always" r="30.971931" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="346.49158" cy="461.87784" fx="346.49158" fy="461.87784" gradientTransform="matrix(0.741318,0.000000,0.000000,0.703711,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12011" inkscape:collect="always" r="33.505066" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="483.88947" cy="332.88141" fx="483.88947" fy="332.88141" gradientTransform="matrix(0.515584,0.000000,0.000000,1.011811,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12012" inkscape:collect="always" r="30.979073" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="302.74521" cy="367.49094" fx="302.98102" fy="367.23489" gradientTransform="matrix(0.747414,0.000000,0.000000,0.697972,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12013" inkscape:collect="always" r="12.081663" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="282.66940" cy="348.74207" fx="282.66940" fy="348.74207" gradientTransform="matrix(0.715497,0.000000,0.000000,0.729107,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12014" inkscape:collect="always" r="15.233325" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="85.752022" cy="324.92114" fx="85.752022" fy="324.92114" gradientTransform="matrix(0.695840,0.000000,0.000000,0.749704,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12015" inkscape:collect="always" r="31.198971" xlink:href="#linearGradient8189"/>
+ <linearGradient gradientTransform="matrix(0.902080,0.000000,0.000000,0.578301,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient12016" inkscape:collect="always" x1="60.883965" x2="59.455124" xlink:href="#linearGradient8189" y1="437.04468" y2="465.35019"/>
+ <linearGradient gradientTransform="matrix(0.962370,0.000000,0.000000,0.542071,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient12017" inkscape:collect="always" x1="56.993549" x2="61.134335" xlink:href="#linearGradient8189" y1="487.82050" y2="509.78027"/>
+ <linearGradient gradientTransform="matrix(0.613973,0.000000,0.000000,0.849668,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient12018" inkscape:collect="always" x1="491.50375" x2="558.04773" xlink:href="#linearGradient10317" y1="289.42950" y2="328.58487"/>
+ <linearGradient gradientTransform="matrix(0.627866,-7.701130e-2,0.100400,0.818553,31.87153,189.2094)" gradientUnits="userSpaceOnUse" id="linearGradient12019" inkscape:collect="always" x1="533.37048" x2="538.64050" xlink:href="#linearGradient8189" y1="303.23849" y2="313.92682"/>
+ <linearGradient gradientTransform="matrix(0.601953,-0.111331,0.154983,0.837971,15.29703,209.2121)" gradientUnits="userSpaceOnUse" id="linearGradient12020" inkscape:collect="always" x1="538.22241" x2="547.95148" xlink:href="#linearGradient8189" y1="316.04315" y2="322.38690"/>
+ <linearGradient gradientTransform="matrix(0.875909,0.000000,0.000000,0.595580,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient12021" inkscape:collect="always" x1="336.36844" x2="345.45892" xlink:href="#linearGradient8189" y1="456.41464" y2="482.36508"/>
+ <linearGradient gradientTransform="matrix(0.700233,0.000000,0.000000,0.745000,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient12022" inkscape:collect="always" x1="396.75473" x2="401.84399" xlink:href="#linearGradient8189" y1="289.19772" y2="308.44156"/>
+ <linearGradient gradientTransform="matrix(0.922098,0.000000,0.000000,0.565746,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient12023" inkscape:collect="always" x1="310.00717" x2="314.40579" xlink:href="#linearGradient8189" y1="428.68369" y2="453.62173"/>
+ <radialGradient cx="189.58533" cy="513.01935" fx="189.58533" fy="513.01935" gradientTransform="matrix(0.747980,0.000000,0.000000,0.697444,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12024" inkscape:collect="always" r="31.132721" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="219.75931" cy="531.98633" fx="219.75931" fy="531.98633" gradientTransform="matrix(0.748401,0.000000,0.000000,0.697051,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12025" inkscape:collect="always" r="46.570679" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="199.79327" cy="709.83331" fx="199.79327" fy="709.83331" gradientTransform="matrix(0.928482,0.000000,0.000000,0.561857,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12026" inkscape:collect="always" r="26.338278" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="425.43576" cy="330.05527" fx="425.43576" fy="330.05527" gradientTransform="matrix(0.600546,0.000000,0.000000,0.868667,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12027" inkscape:collect="always" r="13.431180" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="328.73151" cy="399.07733" fx="328.73151" fy="399.07733" gradientTransform="matrix(0.715427,0.000000,0.000000,0.729178,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12028" inkscape:collect="always" r="16.043007" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="202.23952" cy="278.05008" fx="202.52200" fy="278.19244" gradientTransform="matrix(0.724072,0.000000,0.000000,0.720473,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12029" inkscape:collect="always" r="14.131208" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="191.88486" cy="270.94382" fx="191.88486" fy="270.94382" gradientTransform="matrix(0.786872,0.000000,0.000000,0.662972,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12030" inkscape:collect="always" r="11.963755" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="150.65839" cy="256.11533" fx="150.65839" fy="256.11533" gradientTransform="matrix(0.844589,0.000000,0.000000,0.617666,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12031" inkscape:collect="always" r="10.923086" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="178.22905" cy="221.73311" fx="178.56042" fy="221.58943" gradientTransform="matrix(0.667286,0.000000,0.000000,0.781785,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12032" inkscape:collect="always" r="14.763375" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="109.60774" cy="180.80469" fx="109.78211" fy="180.89937" gradientTransform="matrix(0.747611,0.000000,0.000000,0.697788,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12033" inkscape:collect="always" r="9.8540220" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="112.29945" cy="236.24049" fx="112.29945" fy="236.24049" gradientTransform="matrix(0.845654,0.000000,0.000000,0.616888,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12034" inkscape:collect="always" r="10.315782" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="151.85503" cy="173.48666" fx="152.07190" fy="173.20454" gradientTransform="matrix(0.669436,0.000000,0.000000,0.779274,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12035" inkscape:collect="always" r="11.721261" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="114.30267" cy="154.00302" fx="114.21590" fy="153.91556" gradientTransform="matrix(0.723213,0.000000,0.000000,0.721328,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12036" inkscape:collect="always" r="11.108851" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="97.149384" cy="145.65353" fx="97.149384" fy="145.81316" gradientTransform="matrix(0.673180,0.000000,0.000000,0.774939,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12037" inkscape:collect="always" r="16.346317" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="249.73630" cy="370.87375" fx="249.73630" fy="370.87375" gradientTransform="matrix(0.683506,0.000000,0.000000,0.763233,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12038" inkscape:collect="always" r="28.168682" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="98.649132" cy="778.59222" fx="98.649132" fy="778.59222" gradientTransform="matrix(0.760566,0.000000,0.000000,0.685902,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12039" inkscape:collect="always" r="74.114555" spreadMethod="reflect" xlink:href="#linearGradient7460"/>
+ <radialGradient cx="230.07584" cy="433.78378" fx="230.07584" fy="433.78378" gradientTransform="matrix(0.864275,0.000000,0.000000,0.603597,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12040" inkscape:collect="always" r="86.748650" xlink:href="#linearGradient10282"/>
+ <linearGradient gradientTransform="matrix(1.442200,0.000000,0.000000,0.361721,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="linearGradient12041" inkscape:collect="always" x1="134.92531" x2="147.37489" xlink:href="#linearGradient8189" y1="921.55902" y2="993.16809"/>
+ <radialGradient cx="274.04587" cy="316.40024" fx="274.04587" fy="316.40024" gradientTransform="matrix(0.723943,0.000000,0.000000,0.720601,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12042" inkscape:collect="always" r="12.975245" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="204.58498" cy="364.59113" fx="204.78387" fy="364.72552" gradientTransform="matrix(0.839503,0.000000,0.000000,0.621408,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12043" inkscape:collect="always" r="13.243665" xlink:href="#linearGradient8189"/>
+ <radialGradient cx="240.50974" cy="279.98764" fx="240.50974" fy="279.98764" gradientTransform="matrix(0.720802,0.000000,0.000000,0.723740,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12044" inkscape:collect="always" r="13.612052" xlink:href="#linearGradient8189"/>
+ <linearGradient gradientTransform="scale(1.554818,0.643162)" gradientUnits="userSpaceOnUse" id="linearGradient12045" inkscape:collect="always" x1="116.06332" x2="150.24559" xlink:href="#linearGradient7460" y1="871.92633" y2="905.98358"/>
+ <radialGradient cx="737.01276" cy="994.70789" fx="737.01276" fy="994.70789" gradientTransform="matrix(0.825387,0.000000,0.000000,0.632035,59.34643,144.7066)" gradientUnits="userSpaceOnUse" id="radialGradient12046" inkscape:collect="always" r="58.924759" xlink:href="#linearGradient8189"/>
+ </defs>
+ <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="layer1" inkscape:cx="287.00257" inkscape:cy="254.64714" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="914" inkscape:window-width="1276" inkscape:window-x="0" inkscape:window-y="46" inkscape:zoom="1.2279853" pagecolor="#ffffff"/>
+ <g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1">
+ <g id="g11878" transform="translate(-9.161348,-172.0297)">
+ <path d="M 16.219967,196.93159 C 13.880517,198.75116 12.060947,199.01110 12.580827,202.39031 C 13.100707,205.76951 12.840767,211.22823 15.700097,213.30774 C 18.559427,215.38725 25.577767,222.40561 26.617527,223.96525 C 27.657287,225.52488 28.697037,227.08451 31.816307,228.90409 C 34.935577,230.72366 39.874417,234.62274 41.174117,236.18238 C 42.473807,237.74201 44.553317,241.38116 46.632827,242.16097 C 48.712347,242.94079 50.791857,245.80012 51.831607,247.35976 C 52.871357,248.91939 54.430997,252.29859 56.250577,253.33835 C 58.070147,254.37810 64.568617,257.75731 65.868307,258.53713 C 67.168007,259.31694 67.947817,260.61664 69.767397,261.13652 C 71.586967,261.65639 72.106847,264.51572 75.486047,265.55548 C 78.865257,266.59523 81.204707,266.33530 81.204707,266.33530 C 81.204707,266.33530 78.085437,271.53408 81.204707,274.39340 C 84.323977,277.25273 89.782697,277.25273 89.782697,277.25273 C 89.782697,277.25273 89.262817,278.55243 90.042637,279.85212 C 90.822447,281.15182 87.443237,285.31084 87.443237,285.31084 C 87.443237,285.31084 85.103797,288.69005 86.403487,289.98974 C 87.703177,291.28944 88.482997,294.14877 90.042637,293.62888 C 91.602267,293.10901 92.901957,293.10901 92.901957,293.10901 C 92.901957,293.10901 88.755167,305.22548 89.306577,308.35016 C 89.857987,311.47484 89.674187,320.84887 90.409407,322.50312 C 91.144617,324.15735 92.063647,334.26661 92.798867,335.55324 C 93.534087,336.83987 95.923537,345.66249 96.658767,347.13293 C 97.393987,348.60337 99.783437,354.30131 99.967237,355.03653 C 100.15106,355.77175 103.64334,363.85915 103.64334,364.59437 C 103.64334,365.32958 104.56236,372.68177 104.92998,373.96840 C 105.29758,375.25504 106.21661,379.66634 106.76802,382.05580 C 107.31943,384.44526 106.76802,385.91570 107.13563,388.30516 C 107.50324,390.69462 107.13563,393.81929 107.31943,395.47354 C 107.50324,397.12778 107.50324,401.17148 107.50324,402.09050 C 107.50324,403.00953 107.13563,408.33986 107.31943,409.99410 C 107.50324,411.64835 108.23846,415.14063 107.13563,415.32443 C 106.03280,415.50824 103.27573,416.61107 103.27573,416.61107 C 103.27573,416.61107 101.07008,418.26531 100.33486,418.81672 C 99.599637,419.36814 97.393987,421.02238 96.658767,420.83857 C 95.923537,420.65477 92.615057,420.47097 91.696037,420.28716 C 90.777017,420.10335 86.549507,418.26531 86.549507,418.26531 C 86.549507,418.26531 83.792447,416.79487 82.689617,415.69205 C 81.586787,414.58922 80.667767,414.03780 79.013517,412.19976 C 77.359277,410.36171 73.683187,404.84758 72.212747,403.92855 C 70.742317,403.00953 68.720467,402.09050 67.801447,402.09050 C 66.882417,402.09050 65.738817,402.10357 65.922617,404.12542 C 66.106417,406.14727 66.882417,409.62650 67.801447,409.81030 C 68.720467,409.99410 68.904267,408.70747 70.374707,409.62650 C 71.845147,410.54552 71.661337,410.91313 72.580367,412.01595 C 73.499377,413.11878 74.969817,415.32443 75.888847,415.69205 C 76.807867,416.05965 78.829717,417.16248 79.748747,418.44912 C 80.667767,419.73575 81.770597,419.55194 82.505817,420.47097 C 83.241027,421.38999 84.527657,422.30901 86.181897,423.22804 C 87.836137,424.14705 90.960817,424.69847 90.960817,424.69847 L 79.932547,425.06608 L 66.882417,424.33086 L 62.471107,424.33086 C 55.322787,430.30946 53.312417,434.56626 52.761007,435.48528 C 52.209587,436.40430 52.263417,441.07938 52.913267,440.68947 L 56.858537,441.89997 C 57.638357,442.93973 56.956977,439.95425 58.243607,438.11621 C 59.530237,436.27816 63.206327,431.13163 64.860567,430.58022 C 66.514807,430.02880 74.969817,430.21261 75.888847,430.76402 C 76.807867,431.31544 89.122767,431.86685 90.593207,431.49924 C 92.063647,431.13163 98.496807,428.74217 99.415837,428.55837 C 100.33486,428.37456 103.27573,428.92597 100.51866,431.31544 C 97.761587,433.70489 89.674187,439.40284 88.019947,440.13806 C 86.365707,440.87328 83.057227,442.52751 83.057227,443.81415 C 83.057227,445.10078 81.219177,450.24731 82.505817,450.61491 C 83.792447,450.98253 87.284727,452.26916 88.019947,451.16633 C 88.755167,450.06350 87.284727,449.69590 89.306577,447.85785 C 91.328437,446.01980 92.982667,445.10078 95.372137,443.63034 C 97.761587,442.15991 106.21661,436.82957 108.23846,433.52109 C 110.26031,430.21261 113.01738,427.82315 115.22303,425.43369 C 117.42868,423.04423 118.16390,422.30901 120.00195,419.36814 C 121.84000,416.42727 122.75902,414.58922 123.86185,412.19976 C 124.96467,409.81030 126.43511,406.50181 126.98652,403.37713 C 127.53794,400.25246 128.08935,399.70104 128.45696,394.73832 C 128.82457,389.77559 128.64077,389.59179 128.45696,385.73189 C 128.27315,381.87200 128.64077,379.66634 126.98652,375.80645 C 125.33228,371.94655 124.59707,366.06480 124.59707,364.59437 C 124.59707,363.12393 124.41326,359.81545 123.49424,357.24218 C 122.57522,354.66892 121.10478,348.05196 120.55337,346.21391 C 120.00195,344.37586 118.53151,340.69977 123.31043,345.11108 C 128.08935,349.52239 132.86827,354.48511 135.25773,356.87458 C 137.64719,359.26403 144.26416,364.04295 146.83742,365.88100 C 149.41068,367.71905 150.51351,370.29231 152.53536,372.68177 C 154.55721,375.07123 156.94667,376.35786 159.51993,379.66634 C 162.09320,382.97482 162.46081,384.44526 166.32071,387.93755 C 170.18060,391.42984 179.18703,402.45811 182.31171,405.21518 C 185.43639,407.97225 199.77314,421.20618 201.61119,423.41184 C 203.44923,425.61749 213.55849,432.96967 217.23458,435.72674 C 220.91067,438.48381 226.24101,441.60849 228.99807,444.36556 C 231.75514,447.12263 236.35026,449.87970 236.90167,450.79872 C 237.45309,451.71775 236.16646,452.26916 233.59319,452.63677 C 231.01992,453.00438 225.13817,454.47481 222.93252,455.21003 C 220.72687,455.94525 205.10348,462.01080 202.89782,462.92982 C 200.69216,463.84885 193.89139,467.34114 192.42096,468.26016 C 190.95052,469.17918 188.19346,468.07635 185.80399,471.75244 C 183.41454,475.42854 182.49551,477.63419 181.39269,480.57507 C 180.28986,483.51594 178.26800,485.90540 177.71659,488.47866 C 177.16518,491.05193 175.14333,494.36041 179.00322,496.56606 C 182.86312,498.77172 190.95052,506.49152 193.52379,508.69717 C 196.09705,510.90282 201.61119,516.78457 204.36826,520.09305 C 207.12533,523.40154 212.08805,530.38611 214.66132,532.22416 C 217.23458,534.06220 224.77057,541.04678 226.42481,541.96580 C 228.07905,542.88483 237.82069,550.60462 239.84254,552.25886 C 241.86439,553.91310 244.80527,555.01593 246.27571,557.03778 C 247.74614,559.05963 248.29756,560.53007 245.72429,561.81670 C 243.15103,563.10333 240.57776,564.57377 238.00450,564.75757 C 235.43124,564.94137 231.01992,566.22801 229.18188,566.41181 C 227.34384,566.59562 225.68959,567.51464 223.48394,567.69844 C 221.27828,567.88225 219.99165,568.24986 216.31555,567.33084 C 212.63947,566.41181 206.02250,564.94137 204.91967,566.22801 C 203.81685,567.51464 202.71401,570.63932 204.73587,571.19073 C 206.75772,571.74214 210.61762,571.92595 213.37468,572.47736 C 216.13175,573.02878 224.03535,573.02878 222.19730,574.86682 C 220.35926,576.70487 217.60219,577.44009 215.58034,578.17531 C 213.55849,578.91053 212.45566,580.93238 208.77957,582.03520 C 205.10348,583.13803 205.10348,583.13803 200.69216,583.32183 C 196.28086,583.50564 197.38368,584.79227 193.52379,585.52749 C 189.66389,586.26271 186.72302,588.83597 182.49551,586.26271 C 178.26800,583.68944 178.45181,581.29998 177.34899,582.40281 C 176.24615,583.50564 178.45181,585.15988 176.61377,586.44651 C 174.77572,587.73315 172.01865,588.46836 173.67289,589.93880 C 175.32713,591.40923 178.45181,592.14445 180.10605,591.59304 C 181.76029,591.04163 182.67932,590.12260 185.06877,590.30641 C 187.45824,590.49021 189.84769,590.67402 192.05335,590.85782 C 194.25901,591.04163 197.75129,591.04163 199.03793,590.30641 C 200.32456,589.57119 200.32456,588.10075 202.71401,588.10075 C 205.10348,588.10075 207.86055,586.44651 208.04435,587.18173 C 208.22815,587.91695 206.57391,589.38738 205.47108,592.51206 C 204.36826,595.63674 201.97880,601.33468 200.87597,602.62132 C 199.77314,603.90795 194.81042,608.13545 194.07520,610.15731 C 193.33998,612.17916 191.68574,614.20101 191.68574,616.22286 C 191.68574,618.24471 189.11248,619.53134 187.64204,622.10461 C 186.17161,624.67787 185.06877,624.67787 184.70117,625.41309 C 184.33356,626.14831 184.70117,625.96450 183.04692,628.35396 C 181.39269,630.74342 176.06235,634.60331 175.14333,634.78712 C 174.22430,634.97093 170.36441,637.72800 170.91582,639.19843 C 171.46724,640.66887 174.04050,643.24213 177.90040,640.48506 C 181.76029,637.72800 181.20888,634.97093 184.70117,634.05190 C 188.19346,633.13288 191.31813,630.74342 191.13433,628.90538 C 190.95052,627.06733 194.99423,623.20743 196.46466,620.63417 C 197.93510,618.06091 199.22173,616.22286 200.32456,613.64959 C 201.42738,611.07632 203.26543,607.95165 204.36826,606.84882 C 205.47108,605.74599 206.75772,602.43751 207.30913,603.72414 C 207.86055,605.01077 206.39011,613.83340 205.10348,616.59047 C 203.81685,619.34754 202.16260,623.02363 201.61119,624.67787 C 201.05978,626.33211 198.85412,630.00820 198.85412,631.47864 C 198.85412,632.94908 198.48651,643.42593 197.93510,644.89637 C 197.38368,646.36681 196.64846,650.77812 197.01608,652.79997 C 197.38368,654.82182 197.01608,656.65987 196.09705,658.68172 C 195.17803,660.70357 194.81042,661.99020 195.36183,663.82824 C 195.91325,665.66628 192.60476,668.97478 191.68574,670.07761 C 190.76672,671.18045 189.66389,676.32698 190.76672,676.51073 C 191.86954,676.69454 197.38368,677.42981 197.01608,675.77553 C 196.64846,674.12131 197.01608,672.28328 197.56749,670.99663 C 198.11890,669.70998 201.24358,666.95293 201.79500,665.29871 C 202.34641,663.64443 201.61119,661.25498 201.97880,659.41694 C 202.34641,657.57889 205.10348,656.29226 204.91967,653.90280 C 204.73587,651.51334 204.55206,646.73442 204.73587,645.44779 C 204.91967,644.16115 205.47108,642.32311 206.39011,640.66887 C 207.30913,639.01463 210.06620,637.17658 209.33098,635.52234 C 208.59576,633.86810 208.77957,630.37581 209.14718,628.72157 C 209.51478,627.06733 209.88240,624.31026 210.43381,621.55319 C 210.98522,618.79612 213.55849,615.85525 213.55849,613.64959 C 213.55849,611.44394 214.29370,605.56219 215.21273,604.27555 C 216.13175,602.98892 219.07262,600.04805 219.99165,599.31283 C 220.91067,598.57762 222.19730,598.76142 224.58676,597.10718 C 226.97622,595.45293 231.20373,593.24728 232.30656,592.32826 C 233.40939,591.40923 237.08548,589.38738 239.10733,589.01978 C 241.12918,588.65217 245.54049,587.36553 247.19473,587.18173 C 248.84897,586.99793 253.07648,584.24086 254.54691,584.79227 C 256.01735,585.34368 255.09833,588.83597 254.54691,589.75500 C 253.99550,590.67402 252.34126,593.79870 251.78985,594.53392 C 251.23843,595.26913 248.66516,598.39381 248.84897,600.23185 C 249.03278,602.06990 248.84897,604.82697 248.66516,606.11360 C 248.48136,607.40024 246.27571,609.60589 245.54049,611.07632 C 244.80527,612.54677 243.51864,613.46579 242.59961,615.67144 C 241.68059,617.87710 240.94538,620.63417 242.04820,620.81797 C 243.15103,621.00178 242.23201,622.83982 241.86439,623.57504 C 241.49679,624.31026 240.39396,627.06733 241.31298,628.35396 C 242.23201,629.64059 242.96723,629.82440 244.25386,628.90538 C 245.54049,627.98635 247.19473,627.80255 247.01093,625.78069 C 246.82712,623.75884 245.72429,621.36939 246.64331,620.45036 C 247.56234,619.53134 248.29756,619.53134 248.66516,617.50949 C 249.03278,615.48764 249.58419,614.56862 250.31941,611.99535 C 251.05463,609.42209 250.87082,608.87067 252.15745,607.58404 C 253.44408,606.29741 256.01735,605.56219 256.01735,603.54034 C 256.01735,601.51849 255.28213,598.57762 255.64974,597.47479 C 256.01735,596.37196 256.75257,595.82055 258.22300,594.16630 C 259.69344,592.51206 261.16388,593.24728 261.53149,590.49021 C 261.89910,587.73315 261.53149,584.42466 262.81812,583.50564 C 264.10475,582.58661 269.43509,580.74857 271.45694,577.80769 C 273.47879,574.86682 275.31683,571.92595 274.58161,568.98507 C 273.84639,566.04420 273.66259,561.63289 273.47879,559.79485 C 273.29498,557.95680 274.76542,554.46452 272.19215,550.97223 C 269.61889,547.47994 263.92095,539.94395 262.81812,538.10590 C 261.71529,536.26786 261.34768,534.61361 259.69344,532.04035 C 258.03920,529.46709 257.67159,528.54806 255.83355,525.60719 C 253.99550,522.66632 253.44408,522.11491 251.78985,519.35784 C 250.13560,516.60077 250.68701,516.96837 247.19473,514.39511 C 243.70244,511.82185 242.41581,508.51337 239.47494,507.22673 C 236.53406,505.94010 234.69602,503.73445 232.12276,502.63162 C 229.54949,501.52879 227.34384,500.24216 226.42481,499.50694 C 225.50579,498.77172 230.83612,498.22031 232.85797,498.77172 C 234.87982,499.32313 256.01735,499.50694 265.39139,496.38227 C 274.76542,493.25758 281.01477,491.60334 282.48521,490.13291 C 283.95564,488.66247 285.60989,487.00823 289.10218,490.13291 C 292.59446,493.25758 294.80012,493.62519 297.37338,498.40411 C 299.94665,503.18303 300.68187,507.41054 308.58547,513.29229 C 316.48906,519.17403 337.25898,532.59176 344.79497,541.41438 C 352.33095,550.23701 362.99162,563.47094 365.19727,566.41181 C 367.40294,569.35269 378.61501,594.53392 380.82067,598.94522 C 383.02633,603.35654 388.35666,613.28199 389.82710,617.87710 C 391.29753,622.47221 398.83352,639.38223 400.67157,642.50692 C 402.50961,645.63159 408.39136,674.30513 420.15485,691.03131 C 431.91835,707.75756 443.31423,724.66756 454.89392,736.79866 C 466.47361,748.92976 483.75126,765.83984 496.80138,771.90539 C 509.85149,777.97094 522.90161,785.50688 540.73070,790.10204 C 558.55971,794.69712 582.63809,800.21129 607.26793,795.61613 C 631.89777,791.02105 652.66765,788.08019 662.59308,783.85267 C 672.51859,779.62515 684.28205,775.39763 687.22292,773.19197 C 690.16378,770.98637 693.28847,766.75885 694.94275,765.10457 C 696.59697,763.45035 698.80264,762.34752 699.35402,760.32567 C 699.90547,758.30382 702.84634,754.99531 701.00830,754.44393 C 699.17020,753.89248 696.96460,755.73059 695.67795,756.83342 C 694.39130,757.93618 688.14193,763.26653 683.17922,765.28838 C 678.21650,767.31023 674.90800,772.08913 658.73320,775.03007 C 642.55840,777.97094 626.56741,782.38220 613.88486,782.93365 C 601.20238,783.48503 590.17411,784.40405 582.08671,783.11747 C 573.99931,781.83082 550.83995,776.13290 545.32578,774.47862 C 539.81161,772.82440 520.87976,762.71515 511.87334,757.20098 C 502.86693,751.68689 484.30264,736.98248 480.07512,731.83595 C 475.84768,726.68941 464.81937,712.72028 459.85664,707.02237 C 454.89392,701.32438 445.51989,683.67911 444.78467,681.65726 C 444.04945,679.63541 432.65356,651.14573 431.55073,647.65344 C 430.44791,644.16115 425.66899,631.11103 423.83094,624.86168 C 421.99290,618.61232 421.25768,613.83340 417.94919,607.58404 C 414.64071,601.33468 407.47234,583.87325 406.00190,578.91053 C 404.53146,573.94780 395.52503,543.06863 385.59959,523.21773 C 375.67414,503.36683 368.13815,481.86170 360.23455,473.22289 C 352.33095,464.58407 338.72941,447.30643 336.70756,442.52751 C 334.68571,437.74859 331.56104,439.21903 332.84767,434.07251 C 334.13430,428.92597 335.78854,427.63934 336.70756,425.61749 C 337.62659,423.59564 338.17800,420.28716 338.17800,419.00053 C 338.17800,417.71390 339.64844,417.16248 340.19985,418.63292 C 340.75127,420.10335 348.47106,436.46196 352.14715,441.24088 C 355.82324,446.01980 359.68314,451.71775 364.64587,452.08535 C 369.60859,452.45296 373.65229,452.45296 377.14458,452.26916 C 380.63686,452.08535 386.70241,453.18818 387.25383,450.61491 C 387.80525,448.04165 389.82710,433.52109 390.37851,430.21261 C 390.92992,426.90412 393.31938,411.64835 395.52503,408.15606 C 397.73069,404.66377 405.81809,398.23061 411.51604,399.88485 C 417.21398,401.53909 419.23583,404.29616 421.44148,404.29616 C 423.64714,404.29616 429.34508,404.47996 431.18313,404.84758 C 433.02118,405.21518 435.77825,407.78845 437.98390,408.15606 C 440.18955,408.52366 442.02760,407.42083 443.49803,408.70747 C 444.96847,409.99410 447.35793,412.75117 449.56359,412.19976 C 451.76924,411.64835 453.60729,416.61107 455.26153,415.50824 C 456.91577,414.40542 459.12142,412.01595 457.65099,409.81030 C 456.18055,407.60465 456.54816,406.50181 454.15870,406.68562 C 451.76924,406.86943 447.17413,405.03138 444.60087,404.11235 C 442.02760,403.19333 437.06488,400.62006 434.85922,400.43626 C 432.65356,400.25246 425.30138,397.49539 423.09573,395.28973 C 420.89007,393.08408 416.66256,393.45169 414.82452,393.63549 C 412.98647,393.81929 406.55331,393.63549 408.94277,393.08408 C 411.33223,392.53266 413.17027,394.00310 413.53789,391.61364 C 413.90549,389.22418 415.55974,388.67277 414.08930,387.01853 C 412.61886,385.36429 410.22940,385.54809 408.57516,386.65092 C 406.92092,387.75374 402.87722,388.85657 400.85537,389.77559 C 398.83352,390.69462 400.85537,391.98125 397.36308,391.42984 C 393.87080,390.87842 391.29753,390.32701 390.01090,389.95940 C 388.72427,389.59179 387.80525,391.06223 386.70241,389.59179 C 385.59959,388.12136 386.70241,385.54809 384.49676,385.18048 C 382.29111,384.81287 378.98263,384.99667 378.61501,386.83472 C 378.24741,388.67277 380.63686,392.34886 381.00448,393.26788 C 381.37208,394.18691 380.26926,395.47354 380.08545,397.49539 C 379.90165,399.51724 381.00448,402.64191 378.98263,403.92855 C 376.96077,405.21518 377.51219,406.31801 374.93892,406.50181 C 372.36566,406.68562 371.81424,406.50181 370.34381,404.47996 C 368.87337,402.45811 367.77054,400.62006 366.85152,398.96583 C 365.93249,397.31158 365.38109,396.02495 364.27826,393.81929 C 363.17542,391.61364 361.70499,389.77559 361.15357,391.06223 C 360.60216,392.34886 359.31553,393.26788 358.76412,391.24603 C 358.21270,389.22418 353.61759,377.64449 350.86052,373.96840 C 348.10345,370.29231 349.02247,369.55709 345.53018,365.32958 C 342.03790,361.10208 342.77312,359.44784 340.01605,356.50696 C 337.25898,353.56609 340.01605,353.56609 335.42093,349.70619 C 330.82582,345.84630 325.67929,343.27304 320.16515,343.45684 C 314.65102,343.64064 308.95307,347.13293 308.21785,348.41956 C 307.48264,349.70619 303.43893,358.89643 302.70372,361.46969 C 301.96850,364.04295 298.47621,375.62264 298.10860,376.90927 C 297.74100,378.19591 297.37338,390.87842 296.27055,391.61364 C 295.16773,392.34886 285.24228,381.68819 283.40423,380.40156 C 281.56619,379.11493 263.36953,359.99925 259.32583,355.95555 C 255.28213,351.91185 233.40939,329.67149 230.46851,327.28203 C 227.52764,324.89257 228.63046,324.52497 228.63046,324.52497 C 228.63046,324.52497 232.49036,324.70877 232.49036,322.50312 C 232.49036,320.35174 232.30656,316.62137 231.38754,315.70235 C 230.46851,314.78332 215.39653,305.59309 206.75772,301.91700 C 198.11890,298.24091 199.58934,297.13808 196.83227,295.48384 C 194.42129,294.03725 188.92867,291.80775 187.09063,291.25634 C 185.25258,290.70492 171.28343,276.91958 167.42353,273.79490 C 163.56363,270.67022 156.02765,265.33988 153.27058,264.05325 C 150.51351,262.76662 149.59449,261.29618 145.55079,256.33346 C 141.50709,251.37074 128.64077,233.35789 125.51609,230.04940 C 122.39141,226.74092 117.98010,217.91830 114.67162,216.63166 C 111.36313,215.34503 112.83357,212.22035 112.46596,210.93372 C 112.09835,209.64708 109.34128,203.39773 106.76802,201.74349 C 104.19476,200.08925 92.063647,191.26663 88.387557,188.50956 C 84.711467,185.75249 83.608637,185.38488 82.689617,183.36303 C 81.770597,181.34118 78.645917,176.92987 75.521237,176.56227 C 72.396557,176.19465 61.000677,175.45943 58.059797,176.19465 C 55.118927,176.92987 49.237177,180.42216 47.766737,181.89259 C 46.296307,183.36303 41.149777,184.64966 39.863147,186.30390 C 38.576517,187.95814 34.900417,188.69336 33.429987,188.87717 C 31.959547,189.06097 28.467257,188.87717 26.813017,190.89902 C 25.158777,192.92087 22.769317,194.02369 21.115077,194.75891 C 19.460837,195.49413 16.152357,196.96457 16.152357,196.96457 L 16.703767,196.96457 L 16.336157,197.05647" id="path3076" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" style="fill:#575757;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 164.11505,312.76147 C 164.45188,312.76147 164.68024,310.86835 164.85027,310.18821 C 165.10219,309.18054 165.42583,308.44674 165.21788,307.61494 C 165.04042,306.90508 163.33272,307.30506 162.82842,307.43114 C 161.78408,307.69222 161.05993,308.21105 160.62276,309.08538 C 160.11104,310.10883 161.19781,310.94705 161.54178,311.29103 C 162.08778,311.83703 162.29394,312.42773 162.64462,313.12908 C 163.03202,313.90390 163.44041,313.30118 164.11505,312.76147 z " id="path10998" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 166.68832,330.95812 C 167.79115,330.95812 166.68832,328.75247 166.68832,327.64964 C 166.68832,327.09964 165.54651,326.52732 165.21788,326.36301 C 164.19441,325.85127 163.28748,326.31729 162.46081,326.73062 C 161.53811,327.19197 161.72560,328.05645 161.72560,329.12008 C 161.72560,329.88221 162.61998,330.67010 163.19603,330.95812 C 164.00481,331.36252 164.17142,332.06095 165.40168,332.06095 C 166.22692,332.06095 166.37208,331.74871 166.68832,330.95812 z " id="path10997" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 152.35156,325.62779 C 152.54477,325.24139 152.53536,323.82450 152.53536,322.87072 C 152.53536,322.09433 151.70505,321.74412 151.06493,321.58409 C 149.71394,321.24634 149.72717,321.24204 148.67546,321.76790 C 147.95302,322.12912 147.94025,323.14904 147.94025,323.97355 C 147.94025,324.97864 148.12405,325.48163 148.12405,326.54681 C 148.12405,327.46997 149.19468,327.46583 150.14590,327.46583 C 151.51708,327.46583 151.91276,326.72479 152.35156,325.62779 z " id="path10996" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 159.15233,323.97355 C 159.68442,323.44146 159.08994,321.92051 158.41711,321.58409 C 157.68001,321.21554 156.93548,320.65947 156.21145,320.29746 C 155.44062,319.91204 154.31704,321.16685 154.00580,321.40028 C 153.21128,321.99617 153.08678,322.86333 153.08678,323.78975 C 153.08678,324.04773 154.61486,325.50163 154.74101,325.62779 C 155.31391,326.20068 155.92461,326.36301 156.94667,326.36301 C 157.93963,326.36301 158.22289,325.83243 158.60091,325.07638 C 159.10713,324.06394 158.63697,326.55034 159.15233,323.97355 z " id="path10995" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 156.21145,312.39386 C 156.60088,313.17271 154.96846,311.12904 154.18960,310.73962 C 153.38806,310.33885 152.45822,310.77819 151.80014,311.10723 C 150.75211,311.63125 150.69731,312.85855 150.69731,313.86430 C 150.69731,314.65312 151.28336,315.29744 152.16775,315.51854 C 153.16248,315.76722 153.24108,316.04046 153.82200,316.62136 C 154.68359,317.48297 155.48856,316.57205 155.66004,315.88615 C 155.91270,314.87549 155.73698,313.97116 156.39526,313.31288 C 156.61616,313.09198 156.27272,312.70020 156.21145,312.39386 z " id="path10994" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 104.19475,276.55196 C 103.31113,276.55196 105.04037,278.13280 105.66519,278.75762 C 106.25018,279.34262 106.38841,279.58174 107.50324,279.86045 C 108.84722,280.19644 108.91087,279.37643 109.15747,278.39001 C 109.39488,277.44039 109.67231,277.10245 109.89269,276.00055 C 109.98167,275.55569 109.28388,274.30053 109.15747,273.79490 C 108.86809,272.63735 108.85136,272.20215 108.23846,271.58924 C 107.64434,270.99513 107.39751,269.90735 107.13562,269.38358 C 106.74126,268.59486 104.59800,270.09207 104.56236,270.11880 C 103.88921,270.62366 103.82714,272.08381 103.82714,272.87588 C 103.82714,274.01682 104.03013,274.38468 104.37856,275.08153 C 104.53262,275.38966 104.24334,276.35761 104.19475,276.55196 z " id="path10993" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 132.31686,275.63294 C 132.31686,275.64111 131.06977,277.68041 130.84642,278.57381 C 130.55434,279.74211 130.69903,280.46042 131.21403,281.14708 C 131.89749,282.05836 132.47346,282.06610 133.60349,282.06610 C 134.80143,282.06610 135.38953,281.81640 136.36056,281.33088 C 137.41124,280.80555 137.73347,279.87169 138.19861,278.94143 C 138.72722,277.88420 138.92041,277.45757 138.19861,276.73577 C 137.62215,276.15931 137.26470,275.61806 136.72817,275.08153 C 136.15003,274.50339 135.80747,274.16251 134.70632,274.16251 C 133.80110,274.16251 132.99579,275.22558 132.31686,275.63294 z " id="path10992" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 109.34128,288.13165 C 109.34128,288.75816 110.10292,289.81232 110.62791,290.33731 C 111.23415,290.94355 112.03260,290.88872 113.01737,290.88872 C 114.08030,290.88872 114.25318,289.80540 114.48781,288.86687 C 114.72453,287.92001 114.99133,287.03660 115.22303,286.10980 C 115.44081,285.23868 115.20066,284.17741 115.40683,283.35273 C 115.67620,282.27526 115.08870,281.61364 114.67161,280.77947 C 114.40660,280.24944 114.58815,278.60760 114.48781,278.20621 C 114.36475,277.71398 112.38303,277.90528 111.91454,278.02240 C 110.97800,278.25654 110.59825,279.36836 110.26031,280.04425 C 109.76955,281.02577 109.52509,281.59484 109.52509,282.80132 C 109.52509,283.72035 109.52509,284.63937 109.52509,285.55839 C 109.52509,286.45595 109.51929,287.24158 109.34128,288.13165 z " id="path10991" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 118.34771,281.69850 C 118.23058,282.16699 119.29095,283.74456 119.63434,284.08795 C 120.24058,284.69420 121.03903,284.63937 122.02380,284.63937 C 123.08676,284.63937 123.47757,283.78700 123.67804,282.98513 C 123.91787,282.02578 124.00616,281.12124 124.22945,280.22806 C 124.48304,279.21371 123.16634,278.86938 122.57521,278.57381 C 122.03374,278.30308 122.67087,276.44127 122.75902,276.00055 C 122.97921,274.89960 121.99036,274.42149 121.47238,274.16251 C 120.58212,273.71737 119.37768,275.23993 119.08293,275.63294 C 118.45312,276.47268 118.53151,277.12115 118.53151,278.20621 C 118.53151,279.38928 118.58035,280.53528 118.34771,281.69850 z " id="path10990" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 120.55336,293.64579 C 120.83255,294.76254 118.45828,294.60143 117.42868,295.11623 C 116.02911,295.81601 115.95824,295.39954 115.95824,294.01340 C 115.95824,293.06317 115.98497,292.09847 115.77444,291.25633 C 115.56068,290.40131 115.76904,289.07230 115.95824,288.31546 C 116.16608,287.48412 118.14478,286.72151 118.71531,286.29361 C 120.12085,285.23945 119.89213,286.40573 120.18575,287.58024 C 120.39850,288.43124 120.94669,289.33734 121.10478,289.96970 C 121.30841,290.78425 121.10027,292.00957 120.92097,292.72677 C 120.84095,293.04686 120.67590,293.33945 120.55336,293.64579 z " id="path10989" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 124.41326,293.64579 C 124.22393,294.59243 126.07345,294.93391 126.80272,295.11623 C 127.86876,295.38274 128.36689,295.48017 128.82457,294.56482 C 129.20913,293.79569 129.74359,293.83251 129.74359,292.35916 C 129.74359,291.30448 129.66393,290.54559 129.37598,289.96970 C 129.08784,289.39343 127.32064,289.12584 126.80272,288.86687 C 125.90553,288.41828 124.85284,289.50216 124.22945,289.96970 C 123.56855,290.46538 124.28799,292.04191 124.41326,292.54297 C 124.50241,292.89959 124.41326,293.27818 124.41326,293.64579 z " id="path10988" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 118.53151,303.38744 C 119.11548,303.26312 120.50575,302.67602 121.28858,302.28461 C 122.28339,301.78720 123.06220,301.24621 123.67804,300.63037 C 124.25559,300.05281 124.22945,298.47474 124.22945,297.68949 C 124.22945,296.63025 123.99079,296.34801 123.31043,295.66764 C 122.53905,294.89627 121.98086,294.66745 120.92097,294.93242 C 119.67179,295.24472 119.35480,296.05060 119.08293,297.13808 C 118.87225,297.98079 118.51100,299.05814 118.34771,299.71134 C 118.12572,300.59928 118.16275,301.55513 117.98010,302.46841 C 117.91003,302.81873 118.34771,303.08109 118.53151,303.38744 z " id="path10987" style="fill:#64715f;fill-opacity:0.43315509;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 582.64949,796.96873 C 581.93006,797.14857 585.36672,797.17479 586.13366,797.17479 C 586.94715,797.17479 588.66646,797.11311 589.48404,797.11311 C 590.23706,797.11311 593.54957,796.89123 594.37693,796.89123 C 595.13167,796.89123 596.45721,796.96512 597.16800,796.82297 C 597.95340,796.66588 600.94774,796.44097 601.78519,796.44097 C 602.75626,796.44097 603.90206,796.06986 604.82832,795.88164 C 605.84289,795.67550 606.51539,795.62170 607.42771,795.62170 C 608.40660,795.62170 609.34581,795.36175 610.28704,795.36175 C 611.08414,795.36175 611.61894,794.99144 612.36655,794.84186 C 613.35984,794.64324 614.49337,794.40626 615.40968,794.03978 C 616.45180,793.62296 618.00194,793.71014 619.06459,793.49757 C 619.74463,793.36157 622.40470,792.88956 623.20785,792.48806 C 623.80787,792.18802 623.81510,790.27047 624.06380,789.77311 C 624.33789,789.22491 624.45371,788.72640 624.45371,787.95350 C 624.45371,787.09920 624.06380,786.71358 624.06380,785.87401 C 624.06380,785.03640 623.98015,784.62961 623.80387,783.92446 C 623.65061,783.31147 623.36105,782.81412 623.02405,782.36479 C 622.52631,781.70117 617.57164,782.12370 616.78551,782.32023 C 616.00520,782.51531 613.18382,782.95431 612.41250,782.95431 C 611.54463,782.95431 608.30883,783.05615 607.55768,783.20638 C 606.62845,783.39222 602.59508,783.29515 601.54890,783.50439 C 600.80716,783.65267 599.77709,783.53451 598.97970,783.53451 C 598.11811,783.53451 597.29836,783.79445 596.38030,783.79445 C 595.67665,783.79445 594.69762,784.02024 594.04085,784.18441 C 593.89817,784.22009 593.58006,785.76762 593.52098,786.00395 C 593.29266,786.91726 591.94801,787.96015 591.18153,788.34338 C 590.33970,788.76432 589.46325,789.16287 588.58214,789.38316 C 587.70043,789.60360 587.01779,790.24194 586.11272,790.42294 C 585.40449,790.56458 584.73643,791.14940 584.29315,791.59266 C 583.85405,792.03172 583.77326,792.94113 583.77326,793.54221 C 583.77326,794.33887 583.47930,794.61601 583.12342,794.97187 C 582.61089,795.48439 582.47373,796.08987 582.64949,796.96873 z " id="path9616" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccc" style="fill:url(#radialGradient12001);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 500.32498,772.67092 C 500.32498,773.01674 500.83781,773.91474 501.37126,774.04814 C 502.07457,774.22394 506.12458,776.23330 506.73155,776.52409 C 507.34899,776.81985 507.72159,776.91678 508.13103,777.32617 C 508.61478,777.80994 514.52352,780.49809 515.02729,780.75001 C 515.60171,781.03719 520.35286,783.18515 521.13586,783.38095 C 521.77857,783.54159 524.59530,784.79357 525.18068,785.08631 C 525.83349,785.41270 527.88682,786.23154 528.53624,786.39390 C 529.42665,786.61651 530.47342,786.90758 531.26559,787.30367 C 531.98364,787.66271 532.83799,787.69998 533.60505,788.08351 C 534.25243,788.40716 534.93086,788.42146 535.55459,788.73334 C 536.07830,788.99516 536.76884,788.97190 537.37416,789.12322 C 538.04585,789.29114 538.60346,789.25322 539.32371,789.25322 C 540.11040,789.25322 540.26617,789.09057 540.75337,788.60333 C 541.12414,788.23259 540.31769,787.08215 540.23349,786.91372 C 539.98531,786.41738 539.49920,785.96502 539.19373,785.35412 C 538.82764,784.62196 539.02550,784.39090 539.32371,783.79445 C 539.60684,783.22819 539.31435,782.34609 539.06377,781.84498 C 539.00862,781.73468 540.71030,781.71497 540.88334,781.71497 C 541.76997,781.71497 541.93554,781.57253 542.57294,780.93513 C 542.94885,780.55926 542.83288,779.85881 542.83288,779.24553 C 542.83288,778.38350 542.78329,777.97664 542.44297,777.29597 C 542.19893,776.80794 542.01173,776.17357 541.79313,775.73638 C 541.52881,775.20775 541.03305,774.71639 540.75337,774.43665 C 540.28752,773.97086 540.22983,772.81819 539.80551,772.39386 C 539.38802,771.97639 535.20275,770.13055 534.69864,769.87848 C 534.23831,769.64836 529.20608,766.74224 528.47587,766.55965 C 527.79816,766.39028 520.95766,762.71869 520.62387,762.38486 C 520.26251,762.02351 518.96496,761.37902 518.30942,761.21514 C 517.48778,761.00973 515.56875,762.84733 515.01941,763.25931 C 514.50317,763.64652 514.32999,763.99393 513.71972,764.29909 C 512.99969,764.65907 512.40310,764.57594 511.90015,765.07885 C 511.45657,765.52247 511.34005,765.93915 511.12033,766.37858 C 510.83191,766.95545 510.65918,767.21005 510.21054,767.80824 C 509.84581,768.29454 509.14705,768.32813 508.52094,768.32813 C 507.84573,768.32813 507.49946,769.08969 506.96131,769.62778 C 506.55109,770.03803 506.07318,770.35886 505.66161,770.66756 C 505.29271,770.94426 504.21640,771.05744 503.71207,771.05744 C 503.04080,771.05744 502.39243,771.41988 501.76252,771.57733 C 501.27525,771.69918 500.77073,772.22521 500.32498,772.67092 z " id="path9611" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccc" style="fill:url(#radialGradient12002);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 444.83590,724.91834 C 445.42027,725.50265 446.73129,727.90095 447.30532,728.29755 C 447.93019,728.72925 454.22740,736.26635 454.84355,736.87551 C 455.37671,737.40255 460.59468,742.73247 461.28165,743.07598 C 461.96941,743.41986 462.17208,743.70407 462.77168,744.15383 C 463.44267,744.65703 464.03297,744.97938 464.72122,745.32354 C 465.36254,745.64416 465.96843,745.66778 466.67077,745.84336 C 467.33355,746.00912 467.84973,745.54651 467.97046,745.06360 C 468.09563,744.56292 467.03832,743.82072 466.80074,743.50393 C 466.31041,742.85020 466.12871,742.41980 465.76098,741.68439 C 465.46353,741.08945 465.37107,740.04021 465.37107,739.34495 C 465.37107,738.52474 465.06673,737.83295 465.24111,737.13546 C 465.37014,736.61925 467.37404,736.73214 467.84049,736.61557 C 468.54477,736.43948 469.78038,736.58068 470.43988,736.74551 C 471.20966,736.93799 471.69568,737.17851 472.38943,737.52534 C 473.28479,737.97300 473.24541,738.50235 474.20900,738.69506 C 474.95351,738.84399 475.69646,738.53623 476.15854,738.30517 C 476.66802,738.05043 476.78804,737.49710 476.93835,736.74551 C 477.06789,736.09785 477.50812,735.65589 477.84814,735.31584 C 478.20460,734.95940 478.36776,734.40665 478.62796,733.88618 C 478.88815,733.36579 478.52006,732.24071 478.36802,731.93663 C 478.10837,731.41732 478.44308,730.33413 478.26170,729.97134 C 477.85538,729.15871 477.34910,728.00423 476.71784,727.53079 C 475.93881,726.94647 472.65419,722.77594 472.15584,722.11145 C 471.64968,721.43656 470.91834,720.44597 470.30473,719.83240 C 469.73882,719.26650 467.69009,720.11965 466.93071,720.49934 C 466.22870,720.85037 465.53612,721.32663 464.85120,721.66906 C 464.20864,721.99033 463.47844,722.14222 462.77168,722.31889 C 462.12976,722.47937 461.46420,722.47945 460.82214,722.31889 C 460.15749,722.15276 459.43924,721.57415 458.87260,721.14917 C 458.25393,720.68518 457.64934,719.92593 457.18299,719.45956 C 456.09006,718.36663 453.72657,717.06863 452.24416,716.08035 C 451.34831,715.48318 450.53831,714.76445 449.90470,714.13087 C 448.74232,712.96845 444.64242,712.96109 443.01632,712.96109 C 442.34904,712.96109 442.49645,713.91253 442.49645,714.52076 C 442.49645,715.41095 441.79800,716.14478 441.58666,716.99020 C 441.39847,717.74295 440.65323,718.35485 440.65323,719.21544 C 440.65323,720.08180 444.19421,724.27660 444.83590,724.91834 z " id="path9606" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccc" style="fill:url(#radialGradient12003);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 407.14475,659.02379 C 406.67975,659.64378 406.61801,660.81096 406.80597,661.56281 C 406.97477,662.23797 408.70430,666.98334 408.85530,667.58737 C 409.05844,668.39992 413.83869,680.29715 414.19193,680.76815 C 414.55480,681.25192 416.49320,684.54851 416.64693,685.16345 C 416.71615,685.44029 417.14034,686.01081 417.31908,686.24909 C 417.76564,686.84453 419.09627,686.45299 419.49185,686.05747 C 419.87671,685.67257 419.87368,684.38397 420.14169,683.84798 C 420.48358,683.16420 420.53086,682.72254 421.05148,682.02836 C 421.50454,681.42433 421.75300,680.89779 422.35118,680.59870 C 423.04216,680.25324 423.93649,680.13739 424.69063,679.94887 C 425.47392,679.75307 426.10765,679.32758 426.90011,679.16904 C 427.25873,679.09732 428.39409,680.53305 428.71968,680.85865 C 429.28276,681.42173 429.76728,681.84953 430.53925,682.15837 C 431.09665,682.38133 432.27985,682.15837 432.87871,682.15837 C 433.74443,682.15837 433.92467,681.63017 434.30837,681.11859 C 434.73574,680.54879 435.07257,680.53767 435.86800,680.33876 C 436.87650,680.08668 437.80798,678.83521 438.33742,678.12933 C 438.84656,677.45047 438.98727,676.94539 438.98727,676.04977 C 438.98727,675.33545 439.12306,674.72679 439.24721,674.23023 C 439.39706,673.63082 440.62574,672.35471 440.62574,671.73717 C 440.62574,670.98659 440.56432,670.74261 440.32774,670.26945 C 439.98642,669.58676 438.31391,665.13758 438.07366,664.65705 C 437.80422,664.11816 435.90612,658.47626 435.44408,658.01422 C 434.94276,657.51290 434.85102,656.13858 434.38203,655.51326 C 434.03825,655.05488 430.25654,656.04019 429.75944,656.16446 C 428.84501,656.39307 428.02549,656.59795 427.16005,656.81431 C 426.30763,657.02742 425.40155,657.04371 424.56066,657.46416 C 423.87178,657.80859 422.88899,657.72410 422.09124,657.72410 C 421.38287,657.72410 420.64211,658.21634 420.01173,658.37394 C 419.22936,658.56953 418.76961,659.02379 417.93221,659.02379 C 417.24406,659.02379 416.64550,659.02703 416.11264,658.89382 C 415.34338,658.70151 414.76624,658.50391 413.90316,658.50391 C 413.20999,658.50391 412.51682,658.50391 411.82365,658.50391 C 411.11092,658.50391 410.37810,658.47539 409.74414,658.63388 C 409.02911,658.81264 408.61394,659.15376 407.79459,659.15376 C 407.57369,659.15376 407.36137,659.06711 407.14475,659.02379 z " id="path9601" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc" style="fill:url(#radialGradient12004);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 386.47960,610.41521 C 386.59163,610.86331 388.23825,614.00210 388.68120,614.88800 C 389.16719,615.86000 392.31017,624.04539 392.47261,624.85758 C 392.62105,625.59980 394.11523,628.18814 394.27777,629.00084 C 394.42572,629.74057 395.11410,630.41356 395.44750,631.08035 C 395.85168,631.88872 396.30648,632.96216 396.74719,633.54977 C 397.31667,634.30907 397.38393,634.74572 397.91692,633.67975 C 398.26430,632.98498 398.40664,632.37071 398.56676,631.73020 C 398.74530,631.01604 398.82670,630.28163 398.82670,629.52072 C 398.82670,628.76343 398.82951,628.08543 399.08664,627.57118 C 399.25192,627.24063 400.80093,627.44121 401.16616,627.44121 C 402.08360,627.44121 402.67598,627.79516 403.50560,627.96109 C 404.25267,628.11050 404.40020,628.85568 404.80530,629.26078 C 405.21997,629.67545 405.48560,629.88575 406.10499,630.04060 C 406.91860,630.24400 407.77545,630.40068 408.57441,630.56047 C 409.30489,630.70657 410.37898,630.59672 411.04383,630.43051 C 411.85784,630.22701 412.19900,629.66525 412.73344,629.13081 C 413.33612,628.52813 413.73874,627.90471 414.55301,627.70115 C 415.29994,627.51441 415.86831,628.10666 416.24261,628.48096 C 416.72719,628.96553 416.84926,629.15241 417.67228,628.74090 C 418.38970,628.38219 418.77256,627.97000 419.10194,627.31124 C 419.42664,626.66183 419.49185,626.15521 419.49185,625.36170 C 419.49185,624.62229 419.88990,624.45028 420.53161,624.32194 C 421.33306,624.16165 421.59281,623.94676 422.09124,623.28219 C 422.51770,622.71357 423.11253,621.36530 422.79627,621.04905 C 422.29883,620.55161 422.15002,617.97886 421.80383,617.28647 C 421.46615,616.61112 420.52243,613.11910 420.33744,612.37916 C 420.15123,611.63430 417.82861,607.88277 417.67633,607.27364 C 417.46647,606.43418 416.91568,604.87900 415.83176,604.87900 C 414.97756,604.87900 412.32907,605.20920 411.56371,604.82652 C 410.70350,604.39641 409.83781,605.23820 409.22426,605.60634 C 407.54753,606.61238 406.54631,608.37498 404.80530,609.24548 C 403.66451,609.81588 402.15947,608.57440 401.42609,607.94578 C 400.67545,607.30237 399.66547,606.72166 398.82670,606.38615 C 397.79942,605.97524 396.82656,606.52878 395.83741,606.77606 C 394.96438,606.99432 394.38020,607.37943 393.49795,607.55588 C 392.78205,607.69906 392.05752,606.89796 391.54841,606.51612 C 390.99326,606.09976 390.67303,605.99625 390.11875,605.99625 C 389.49017,605.99625 388.67555,607.17951 388.29918,607.55588 C 387.83436,608.02069 387.68057,608.55399 387.25942,609.11551 C 386.93885,609.54295 386.78792,609.90134 386.47960,610.41521 z " id="path9596" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccc" style="fill:url(#radialGradient12005);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 375.38489,587.28853 C 375.54890,587.94454 377.06171,588.33019 377.38174,588.97024 C 377.64791,589.50259 378.11749,590.09590 378.55147,590.52988 C 379.08799,591.06640 379.75883,591.47731 380.24107,591.95954 C 380.78772,592.50619 381.61848,592.29852 381.80070,591.56964 C 381.97865,590.85784 382.14332,590.19916 382.32058,589.49012 C 382.53034,588.65107 383.04477,587.94865 383.23037,587.02070 C 383.41857,586.07968 384.38561,586.60190 385.17991,586.76076 C 385.92488,586.90976 386.79335,587.13163 387.38939,587.28064 C 387.96034,587.42338 388.81190,588.35418 389.07899,588.71031 C 389.54543,589.33222 390.42123,590.04190 390.89856,590.39991 C 391.27779,590.68433 391.99345,591.03105 392.58817,591.17973 C 393.18764,591.32960 394.08606,591.30969 394.66768,591.30969 C 395.36537,591.30969 395.80687,591.52951 396.48726,591.69960 C 397.13887,591.86251 397.99593,591.75055 398.43679,591.30969 C 399.00270,590.74379 398.82670,589.88738 398.82670,589.10021 C 398.82670,588.35598 398.33047,587.76211 399.21661,587.54058 C 399.90656,587.36809 400.93036,587.64409 401.55606,587.80052 C 402.19460,587.96015 402.49386,588.17642 403.24566,587.80052 C 403.87231,587.48719 404.25921,586.47568 404.41539,585.85098 C 404.56709,585.24419 404.76416,584.59295 405.13483,583.98546 C 405.64030,583.15706 406.51337,581.77725 406.51337,581.04075 C 406.51337,580.27535 404.45485,573.74141 404.28813,573.07454 C 404.13700,572.47004 402.60698,567.42607 402.29264,566.69816 C 401.95336,565.91255 401.86887,565.03371 401.34613,564.51098 C 400.76364,563.92850 398.41070,564.86743 397.65698,565.05586 C 397.24770,565.15818 396.30030,566.65824 395.83741,567.00540 C 395.09133,567.56496 394.78507,567.85335 394.01783,568.04516 C 392.68401,568.37861 391.35951,567.91519 389.98878,567.91519 C 387.44349,567.91519 384.15298,567.10609 381.67073,566.48552 C 380.74247,566.25346 379.59004,566.25135 378.81140,566.09562 C 378.11297,565.95593 377.65700,565.46109 377.12180,564.92589 C 376.41804,564.22213 375.52246,563.92134 374.78235,563.36625 C 374.20142,562.93056 373.43403,562.97635 372.70284,562.97635 C 372.10028,562.97635 371.21042,563.08952 370.62333,563.23629 C 370.05863,563.37746 369.07164,563.10632 368.41385,563.10632 C 367.23667,563.10632 365.36800,564.36232 365.36800,565.55479 C 365.36800,566.42424 365.87958,567.45889 366.24626,568.19224 C 366.58176,568.86325 368.10459,571.33659 368.27982,572.03750 C 368.51378,572.97335 371.91701,580.01254 372.24062,580.82159 C 372.48803,581.44011 375.22121,586.63379 375.38489,587.28853 z " id="path9591" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccc" style="fill:url(#radialGradient12006);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 353.59732,546.21029 C 353.39916,546.60663 353.92430,547.72934 354.24717,548.15983 C 354.58374,548.60859 354.88770,549.08394 355.36306,549.55931 C 355.79417,549.99041 356.84412,552.06868 356.71659,552.57879 C 356.51800,553.37316 356.30293,553.72475 356.84656,554.26839 C 357.29841,554.72024 357.67610,554.83799 358.01629,555.17818 C 358.42519,555.58708 358.52651,555.94834 358.92607,556.34791 C 359.29077,556.71260 359.88897,556.75109 360.35574,556.86778 C 361.15810,557.06837 361.67477,557.10838 362.30528,556.47787 C 362.91323,555.86992 363.09774,555.28286 363.47501,554.52834 C 363.82713,553.82409 364.11123,552.90686 364.25482,552.18888 C 364.40929,551.41655 364.83264,550.77331 365.16461,550.10937 C 365.57750,549.28359 366.11815,549.15583 366.72424,548.54974 C 367.49655,547.77742 367.88091,548.31572 368.54381,549.19959 C 369.22034,550.10162 370.17043,550.82620 370.88326,551.53903 C 371.41789,552.07366 372.13744,552.14501 372.83281,552.31885 C 373.84755,552.57254 374.78643,552.86635 375.69214,553.22864 C 376.40791,553.51495 377.17368,553.48858 377.90162,553.48858 C 378.89223,553.48858 379.87274,553.35861 380.89091,553.35861 C 381.78735,553.35861 382.06206,552.96586 382.45055,552.18888 C 382.83825,551.41347 383.02794,550.78910 383.23037,549.97940 C 383.40012,549.30039 384.55389,550.44621 385.17991,550.75922 C 385.84771,551.09312 386.20311,551.27910 386.99948,551.27910 C 387.52575,551.27910 388.53061,549.71414 388.81905,549.32955 C 389.21726,548.79860 391.19534,546.71305 391.32925,546.17740 C 391.50053,545.49228 392.46225,544.48030 392.46225,543.72239 C 392.46225,543.00040 392.62376,540.34374 392.62376,539.41898 C 392.62376,538.92827 391.17769,535.94232 390.91051,535.27438 C 390.59320,534.48110 390.45065,533.72779 390.01649,533.14892 C 389.69812,532.72442 386.32438,534.26664 385.95972,533.99316 C 385.66642,533.77318 384.35941,534.55570 384.01018,534.64300 C 383.30033,534.82047 382.55321,534.77297 381.80070,534.77297 C 380.84090,534.77297 380.56289,534.09630 380.11110,533.34331 C 379.56302,532.42985 378.77700,531.74928 378.16156,531.13383 C 377.59457,530.56684 376.89269,530.14968 376.47195,529.83413 C 375.80067,529.33067 374.57041,530.39500 374.13250,530.61395 C 373.47466,530.94287 372.83276,531.21183 372.05299,531.52374 C 371.19692,531.86616 370.66635,532.20286 370.10345,532.95340 C 369.62997,533.58470 369.60407,534.23260 369.06369,534.77297 C 368.56146,535.27521 367.52017,535.64624 366.85421,535.81273 C 366.17005,535.98377 365.65272,536.07266 364.90467,536.07266 C 364.30614,536.07266 363.54970,534.97763 363.21506,534.64300 C 362.60471,534.03265 361.40220,534.89959 360.87562,535.16288 C 360.30213,535.44963 359.71577,536.23278 359.44595,536.59255 C 359.03168,537.14491 358.69092,537.53313 358.53616,538.15218 C 358.43855,538.54264 356.95081,538.17824 356.84656,538.15218 C 356.20562,537.99195 355.92264,537.76933 355.15696,538.15218 C 354.32050,538.57041 354.24717,539.13267 354.24717,539.97175 C 354.24717,540.51882 354.50711,541.07668 354.50711,541.79132 C 354.50711,542.43100 354.11720,542.98326 354.11720,543.74087 C 354.11720,544.50841 353.99083,545.55444 353.59732,546.21029 z " id="path9586" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccc" style="fill:url(#radialGradient12007);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 360.22577,499.94115 C 360.31422,500.02960 359.96583,501.60244 359.96583,502.15063 C 359.96583,503.04111 360.30255,503.60389 360.61568,504.23015 C 360.97365,504.94609 361.33755,505.42805 361.52546,506.17969 C 361.70511,506.89828 361.86557,507.54013 362.04534,508.25920 C 362.28870,509.23265 362.69864,509.82229 363.34504,510.46868 C 363.87212,510.99576 364.16376,511.32321 364.90467,511.50844 C 365.90790,511.75925 366.73650,512.90867 367.89397,513.19804 C 368.53652,513.35868 368.94105,512.60951 369.32363,512.41823 C 370.27100,511.94454 370.39715,512.06995 371.01324,511.24849 C 371.42316,510.70192 371.27318,509.84420 371.27318,509.16899 C 371.27318,508.45782 371.31084,507.76002 371.14320,507.08948 C 370.98479,506.45580 371.01324,505.81309 371.01324,505.13993 C 371.01324,504.54366 370.88326,503.83559 370.88326,503.19039 C 370.88326,502.30798 370.55605,501.88152 370.36339,501.11088 C 370.22067,500.54001 370.23342,499.99143 370.23342,499.29130 C 370.23342,498.51948 371.12288,498.16931 371.53311,497.86164 C 372.09757,497.43830 371.31172,496.39672 371.14320,496.17204 C 370.80278,495.71813 370.55909,495.08996 370.10345,494.48244 C 369.62837,493.84900 369.37135,493.53812 369.06369,492.92280 C 368.63961,492.07464 368.13202,492.07253 367.89397,492.01302 C 367.51496,491.91826 367.50406,493.70522 367.50406,493.96255 C 367.50406,494.65116 366.95956,495.41684 366.59427,495.78213 C 366.29018,496.08622 364.88368,495.65216 364.51476,495.65216 C 363.57020,495.65216 363.32840,495.79045 362.56522,496.17204 C 362.08516,496.41207 361.72206,497.01519 361.26553,497.47173 C 360.92881,497.80845 360.78543,498.43193 360.61568,498.77143 C 360.43223,499.13833 360.43521,499.41756 360.22577,499.94115 z " id="path9581" style="fill:url(#radialGradient12008);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 328.64319,519.17663 C 329.17744,519.34357 329.83613,520.39627 330.46276,520.86624 C 330.82663,521.13914 331.25213,521.65561 331.76246,522.16594 C 332.25191,522.65539 332.78298,523.42717 333.06214,523.98551 C 333.38995,524.64110 333.68920,525.00247 334.10190,525.41517 C 334.61248,525.92575 334.89737,526.21063 335.53157,526.84484 C 335.94605,527.25931 336.10497,527.80814 336.44136,528.14453 C 336.91218,528.61535 337.12884,528.83202 337.48111,529.18428 C 337.95597,529.65915 338.29371,530.02967 338.65084,530.74392 C 338.95690,531.35605 339.31026,531.66329 339.69059,532.04361 C 340.04867,532.40169 340.53809,532.72730 340.99028,532.95340 C 341.57944,533.24798 342.02395,533.34026 342.54992,533.60325 C 343.18791,533.92224 343.34065,534.19522 343.97959,533.34331 C 344.39996,532.78280 343.97392,531.89098 343.84961,531.39376 C 343.67328,530.68842 343.50739,530.02489 343.32974,529.31426 C 343.11698,528.46321 342.62883,527.68035 342.41995,526.84484 C 342.22573,526.06798 342.04388,525.36826 341.90007,524.50538 C 341.74667,523.58494 341.25259,522.69054 340.86032,521.90599 C 340.54755,521.28045 340.22070,520.75674 339.95053,520.21639 C 339.63068,519.57669 339.64680,518.87431 339.95053,518.26685 C 340.16120,517.84551 341.49883,517.26809 341.90007,516.96715 C 342.32305,516.64992 343.22592,516.70722 343.71965,516.70722 C 344.74164,516.70722 345.66778,516.94172 346.57897,516.57724 C 347.33519,516.27476 348.02220,516.25571 348.78845,516.44728 C 349.67765,516.66958 350.21567,517.35584 350.99793,517.74697 C 351.17123,517.83362 351.34452,517.92026 351.51782,518.00691 C 352.27009,518.38305 353.18592,518.71637 353.98723,518.91670 C 354.69760,519.09429 355.41687,519.17663 356.19672,519.17663 C 357.02278,519.17663 357.74072,519.24552 358.53616,519.04667 C 359.27479,518.86201 359.76978,518.20295 360.35574,517.61700 C 361.02005,516.95269 360.87562,516.07357 360.87562,515.14758 C 360.87562,514.43048 360.36832,513.72735 359.83586,513.32801 C 359.18486,512.83976 358.56232,512.06319 358.14626,511.50844 C 357.57462,510.74625 357.31826,509.62609 357.10650,508.77908 C 356.88034,507.87446 356.25604,507.19682 356.06674,506.43963 C 355.91994,505.85240 355.00024,504.84433 354.63708,504.36011 C 354.06347,503.59531 354.00323,502.68651 353.33739,502.02067 C 352.91422,501.59750 351.73783,502.44455 351.25788,502.54054 C 350.49769,502.69258 350.00254,503.27677 349.30833,503.45033 C 348.62344,503.62155 347.95919,503.79998 347.35879,504.10018 C 346.30832,504.62541 345.84272,505.22596 345.40925,506.30966 C 345.06243,507.17671 344.85045,507.89502 344.62943,508.77908 C 344.42016,509.61615 343.92080,510.31392 343.71965,511.11853 C 343.55228,511.78800 343.46176,512.66994 343.32974,513.19804 C 343.23113,513.59247 341.24277,512.54074 341.12026,512.41823 C 340.40665,511.70462 339.42076,511.10863 338.52087,510.20874 C 338.03616,509.72404 337.27423,509.25281 336.70129,508.90905 C 336.11307,508.55611 335.35616,508.66046 334.88172,508.77908 C 334.28454,508.92838 333.36449,509.66766 332.80221,509.94881 C 331.96252,510.36865 331.31744,510.51495 330.46276,510.72862 C 329.68472,510.92313 329.05947,511.24849 328.25328,511.24849 C 327.36662,511.24849 327.03243,511.32735 326.43371,510.72862 C 325.86017,510.15509 325.40590,509.88681 324.61413,509.68886 C 324.02667,509.54199 323.46609,509.08777 323.05450,508.77908 C 322.39264,508.28268 322.27468,510.13424 322.27468,510.59865 C 322.27468,511.45200 322.31388,512.10672 322.66459,512.80813 C 322.96713,513.41322 323.12882,513.79224 323.57438,514.23780 C 323.96138,514.62480 324.56595,514.85151 325.13401,515.27755 C 325.69090,515.69522 325.91980,516.45324 326.43371,516.96715 C 326.79135,517.32481 327.05357,517.58703 327.47346,518.00691 C 327.89675,518.43020 328.12076,518.52360 328.64319,519.17663 z " id="path9576" style="fill:url(#radialGradient12009);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 338.52087,470.30811 C 338.70353,470.67344 338.92816,471.23529 339.30069,471.60781 C 339.73923,472.04636 340.25459,472.30178 340.60037,472.64756 C 340.88820,472.93539 341.70537,473.31384 342.03004,473.55735 C 342.43662,473.86228 343.35107,473.71758 343.84961,473.81729 C 344.33366,473.91410 345.00853,473.94726 345.66918,473.94726 C 346.34475,473.94726 347.10767,473.32770 347.74870,473.16744 C 348.30453,473.02849 348.52851,471.70167 348.52851,471.21790 C 348.52851,470.60066 348.67883,470.12954 348.52851,469.52829 C 348.40973,469.05314 347.85247,468.56612 347.61873,468.09863 C 347.31713,467.49543 346.75414,467.01929 346.44901,466.40903 C 346.17901,465.86903 345.99099,465.48677 345.79916,464.71943 C 345.62690,464.03040 345.29028,463.20380 345.14931,462.63991 C 344.99060,462.00510 344.88937,461.38055 344.88937,460.69037 C 344.88937,460.05565 344.76212,459.27158 344.62943,458.74083 C 344.55224,458.43208 342.96911,458.26076 342.80986,458.22095 C 342.43350,458.12686 342.07360,457.13835 341.90007,456.79129 C 341.66998,456.33109 340.82441,455.58565 340.47041,455.23166 C 340.00332,454.76456 339.55217,454.44973 339.04074,454.32187 C 338.23625,454.12074 337.77878,454.96474 337.48111,455.36162 C 337.00410,455.99764 336.83126,456.47707 336.83126,457.31116 C 336.83126,458.08503 337.02175,458.43161 337.35114,458.87080 C 337.86208,459.55204 336.77807,460.04792 336.44136,460.30047 C 335.85692,460.73879 335.97671,461.37922 335.79151,462.12004 C 335.61273,462.83514 335.53157,463.40850 335.53157,464.19955 C 335.53157,464.95153 336.03221,465.34362 336.44136,465.88915 C 336.79432,466.35977 337.08778,466.79209 337.35114,467.31881 C 337.62182,467.86017 337.73819,468.21718 337.87102,468.74848 C 338.05141,469.47005 337.84502,469.63226 338.52087,470.30811 z " id="path9571" style="fill:url(#radialGradient12010);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 326.82361,485.90445 C 326.82514,485.91057 328.98047,486.44367 329.42300,486.55430 C 330.33748,486.78292 331.21649,486.84021 332.15236,487.07417 C 332.90915,487.26337 333.34216,485.82416 333.45205,485.38457 C 333.61471,484.73397 334.05288,484.28097 334.23188,483.56500 C 334.40785,482.86109 334.73371,482.35552 334.88172,481.61546 C 335.00168,481.01563 335.01169,480.34161 335.01169,479.66592 C 335.01169,478.83802 334.69864,478.38997 334.36184,477.71637 C 334.03163,477.05594 333.75036,476.75334 333.45205,476.15674 C 333.17465,475.60192 332.91626,475.09576 332.54227,474.59710 C 332.03999,473.92739 331.21303,473.26787 330.59273,472.64756 C 329.85457,471.90941 329.06511,471.50985 328.38324,470.82799 C 327.76148,470.20622 326.60333,469.81797 326.04380,469.39833 C 325.39527,468.91194 324.11162,468.87845 323.31443,468.87845 C 321.75671,468.87845 320.29398,467.97645 318.76551,468.35857 C 318.04248,468.53933 317.18602,469.28027 316.55602,469.65827 C 315.68560,470.18052 315.44917,470.90352 315.25633,471.86775 C 314.98866,473.20607 315.47365,474.42663 315.77620,475.63686 C 315.86285,475.98344 315.94950,476.33003 316.03615,476.67661 C 316.23575,477.47502 316.47114,478.32641 316.81596,479.01607 C 317.17091,479.72597 317.75055,480.47053 318.37560,481.09558 C 318.95725,481.67723 319.45626,482.09081 320.06520,482.39527 C 320.77501,482.75018 321.10134,482.65160 321.75480,483.30506 C 322.41798,483.96824 322.79599,484.60618 323.31443,485.12464 C 323.89486,485.70506 324.27762,485.80118 325.00404,486.16439 C 325.48178,486.40326 326.37468,485.90445 326.82361,485.90445 z " id="path9565" style="fill:url(#radialGradient12011);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 312.00709,497.21179 C 312.29733,497.42953 313.54606,497.85648 314.08661,497.99161 C 314.77909,498.16473 315.49677,498.21418 316.16611,498.38152 C 317.13224,498.62305 316.94593,497.56231 316.94593,496.95186 C 316.94593,496.35558 317.07590,495.64752 317.07590,495.00231 C 317.07590,494.29597 316.70148,493.63459 316.55602,493.05277 C 316.35910,492.26505 316.50626,491.69220 316.68600,490.97326 C 316.86569,490.25448 317.01210,489.53887 317.20587,488.76378 C 317.36526,488.12624 317.19439,487.31115 316.94593,486.81423 C 316.62640,486.17516 316.27068,485.52399 315.77620,484.86469 C 315.31776,484.25343 314.93093,483.56404 314.60648,482.91515 C 314.23779,482.17776 312.81572,481.77424 312.26703,481.22555 C 311.72059,480.67911 311.07702,480.50057 310.44746,480.18579 C 309.49519,479.70966 309.11253,479.96109 308.62788,480.44573 C 308.11529,480.95833 308.23797,481.71836 308.23797,482.52524 C 308.23797,483.15126 309.37330,484.02658 309.79762,484.34482 C 310.37542,484.77818 309.92384,485.78197 309.79762,486.03442 C 309.40081,486.82801 308.69615,487.55338 308.36795,488.37387 C 308.07407,489.10855 307.97804,489.47479 307.97804,490.32341 C 307.97804,490.93769 307.84807,491.59381 307.84807,492.27296 C 307.84807,492.96209 308.83213,493.77689 309.27773,494.22250 C 309.82729,494.77205 309.95664,495.20453 310.70740,495.39222 C 311.07819,495.48492 311.27379,496.35808 311.35725,496.69192 C 311.42453,496.96104 311.79048,497.03850 312.00709,497.21179 z " id="path9558" style="fill:url(#radialGradient12012);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 287.05295,407.01298 C 287.96274,406.49310 289.00250,406.36313 290.17222,406.23316 C 291.34194,406.10319 291.99179,407.27291 291.86183,405.19341 C 291.73185,403.11390 291.60188,401.81420 290.82207,401.03438 C 290.04225,400.25457 288.48261,398.69493 287.05295,398.43500 C 285.62329,398.17505 285.49332,399.21481 284.45356,398.30502 C 283.41381,397.39524 282.37405,395.57567 281.72421,395.57567 C 281.07436,395.57567 278.86488,395.70563 279.90463,397.00533 C 280.94439,398.30502 282.63399,399.21481 282.11412,399.73468 C 281.59423,400.25457 280.55448,401.16435 280.68445,401.81420 C 280.81442,402.46405 281.59423,402.85396 282.37405,403.63377 C 283.15387,404.41359 283.28384,406.10319 284.06365,406.36313 C 284.84347,406.62307 287.05295,407.01298 287.05295,407.01298 z " id="path8899" style="fill:url(#radialGradient12013);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 255.99025,396.74539 C 255.86028,398.56496 255.73031,398.56496 255.47037,400.38453 C 255.21043,402.20411 255.60034,402.46405 257.28995,403.37383 C 258.97954,404.28362 258.97954,405.19341 261.31900,405.32338 C 263.65844,405.45334 265.86793,406.36313 265.99790,404.41359 C 266.12787,402.46405 265.60799,400.77444 266.38781,400.64448 C 267.16762,400.51450 268.72726,399.73468 267.81747,398.82490 C 266.90768,397.91511 266.64775,396.87536 265.86793,396.22551 C 265.08811,395.57567 263.65844,395.96557 262.09881,394.66588 C 260.53918,393.36619 258.97954,392.32643 258.19973,392.84630 C 257.41991,393.36619 255.99025,396.74539 255.99025,396.74539 z " id="path8894" style="fill:url(#radialGradient12014);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 125.37093,392.97628 C 125.30892,393.28630 122.93340,394.63398 122.25165,395.31573 C 121.23801,396.32937 119.77949,395.63928 119.13239,395.31573 C 118.09531,394.79719 117.87101,393.83066 116.53300,393.49615 C 115.97870,393.35758 114.73255,391.69571 114.45349,391.41664 C 113.65930,390.62246 113.56326,389.74659 112.89385,389.07719 C 112.36423,388.54757 112.11404,386.94392 112.11404,385.95792 C 112.11404,384.15578 112.13867,383.59384 113.15379,382.57872 C 114.20058,381.53193 114.19355,381.14031 114.19355,379.45945 C 114.19355,378.42742 111.41194,378.59522 111.07428,378.67964 C 110.01145,378.94534 110.03452,380.41473 110.03452,381.53896 C 110.03452,382.94469 109.98269,384.24202 109.51465,385.17811 C 109.00826,386.19089 109.25471,387.87099 109.25471,389.07719 C 109.25471,389.97394 110.15859,391.14489 110.55440,391.93652 C 111.03891,392.90552 112.10924,393.75250 113.15379,394.53591 C 114.42377,395.48839 114.44327,396.09554 116.27306,396.09554 C 117.47718,396.09554 118.32859,397.12331 119.39233,397.65518 C 120.47081,398.19441 122.08626,397.91511 123.29141,397.91511 C 124.38395,397.91511 125.70811,397.31800 126.41068,396.61542 C 128.01547,395.01063 126.81493,393.84268 125.37093,392.97628 z " id="path11009" style="fill:url(#radialGradient12015);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 107.69508,401.81420 C 106.52728,401.52225 109.96318,402.78261 110.81434,403.63377 C 111.63185,404.45129 112.65386,404.81348 113.41373,405.19341 C 114.53632,405.75470 115.11844,406.37824 115.75318,407.01298 C 116.85768,408.11747 117.58632,408.32624 118.35257,409.09249 C 118.67506,409.41498 121.54619,409.35243 121.99172,409.35243 C 123.54101,409.35243 124.59111,410.06467 124.59111,408.05273 C 124.59111,406.44123 125.56492,405.71712 125.89080,404.41359 C 126.20141,403.17117 123.20545,404.37010 123.03147,404.41359 C 121.98684,404.67475 120.64523,404.72681 119.39233,404.41359 C 118.08660,404.08715 117.66832,403.56497 117.05288,402.33408 C 116.70141,401.63115 115.37890,400.84724 114.71342,400.51450 C 113.66475,399.99017 112.65785,399.74665 111.59416,399.21481 C 110.32734,398.58140 109.70677,398.14115 108.73483,397.65518 C 108.01257,397.29405 107.14597,398.84105 106.91526,399.99463 C 106.76149,400.76346 107.27440,401.11308 107.69508,401.81420 z " id="path11004" style="fill:url(#linearGradient12016);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 107.43513,409.87231 C 107.93221,410.86646 109.28136,411.97847 110.03452,412.73163 C 110.82871,413.52582 111.18469,414.14174 111.85410,414.81114 C 112.91744,415.87448 113.79877,416.27209 115.23331,416.63072 C 116.48529,416.94372 116.95982,417.67047 118.35257,417.67047 C 120.01541,417.67047 120.25998,418.10252 121.47184,416.89066 C 122.74848,415.61402 123.19539,414.93530 123.55135,413.51146 C 123.95268,411.90615 123.78126,411.31699 121.99172,412.21176 C 120.70237,412.85643 120.01647,413.25151 118.61251,413.25151 C 117.31282,413.25151 116.01312,413.25151 114.71342,413.25151 C 113.17449,413.25151 112.18552,411.96048 111.59416,411.17200 C 110.66327,409.93082 110.55143,409.22171 108.99477,408.83255 C 107.76725,408.52567 108.12838,408.13920 107.43513,409.87231 z " id="path10999" style="fill:url(#linearGradient12017);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 150.88112,295.48384 C 150.63576,295.97458 148.75325,295.82494 148.12405,295.66764 C 147.44355,295.49752 146.97207,294.90784 146.28601,294.56482 C 145.67743,294.26053 145.33345,292.77643 145.18318,292.17535 C 144.87033,290.92396 145.50242,290.33731 146.65361,290.33731 C 147.79000,290.33731 148.56896,290.37595 149.22688,290.70492 C 149.84292,291.01294 150.80230,292.46414 151.24873,292.91057 C 151.81954,293.48138 151.61634,294.88598 151.61634,295.66764 C 151.61634,295.92026 151.12619,295.54510 150.88112,295.48384 z " id="path10986" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 150.69731,305.77689 C 150.54479,306.08196 148.86616,304.99745 148.30786,304.85787 C 147.87213,304.74894 147.27766,303.64387 147.02123,303.38744 C 146.50827,302.87449 146.45587,301.66349 146.28601,300.81417 C 146.08230,299.79565 147.10492,298.72955 147.75644,298.24091 C 148.61773,297.59494 149.55373,297.67930 150.32971,297.87330 C 151.16566,298.08228 151.66417,298.90814 152.53536,299.34374 C 153.42309,299.78760 153.27058,300.44762 153.27058,301.54939 C 153.27058,302.46466 152.81115,303.84687 152.16775,304.49026 C 151.61871,305.03931 151.61338,305.31887 150.69731,305.77689 z " id="path10984" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 141.69089,309.82059 C 141.94741,310.84667 141.98579,307.72199 142.24231,306.69592 C 142.48491,305.72549 143.40973,304.58794 143.89654,303.93885 C 144.52326,303.10323 145.58647,303.40528 146.28601,303.75504 C 147.35621,304.29014 147.47952,304.76475 148.12405,305.40929 C 148.41231,305.69754 148.39722,307.42100 148.49166,307.79874 C 148.78678,308.97921 148.02282,309.55421 147.57264,310.00440 C 146.99380,310.58324 145.65558,309.15753 145.36698,309.08538 C 144.43019,308.85118 143.95393,308.65747 142.97752,308.90157 C 141.86682,309.17925 143.26301,310.21362 141.69089,309.82059 z " id="path10982" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 138.93382,306.69592 C 139.78486,306.90868 137.14518,306.53681 136.36056,306.14451 C 135.35533,305.64189 135.44154,304.32577 135.44154,303.38744 C 135.44154,302.03775 136.16355,301.82179 137.27958,302.10080 C 138.31881,302.36061 139.03515,302.93734 139.48524,303.38744 C 139.83877,303.74097 139.72434,305.26290 139.85284,305.77689 C 139.95792,306.19719 139.24016,306.38958 138.93382,306.69592 z " id="path10981" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 137.27958,309.45299 C 137.27958,310.19329 136.69163,308.09328 136.36056,307.43114 C 136.24554,307.20109 133.95046,307.61494 133.60349,307.61494 C 132.73940,307.61494 132.47974,309.16906 132.31686,309.82059 C 131.99003,311.12791 133.06750,311.24894 133.97110,311.47484 C 134.96054,311.72220 135.24564,312.16108 136.17675,312.39386 C 136.89122,312.57248 137.06714,309.98411 137.27958,309.45299 z " id="path10980" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 123.67804,310.55581 C 123.30104,311.43547 125.20697,311.71713 125.88370,312.39386 C 126.28608,312.79624 127.41965,312.94528 128.27315,312.94528 C 129.15696,312.94528 129.89503,312.98313 130.47881,313.12908 C 131.31941,313.33922 131.05656,311.39641 130.84642,310.55581 C 130.64431,309.74741 129.85801,309.43564 129.19218,309.26918 C 127.92114,308.95142 127.63991,309.37116 126.80272,308.53396 C 126.12975,307.86099 125.93064,307.43509 125.69989,306.51211 C 125.44227,305.48162 123.73715,306.45300 123.31043,306.87972 C 122.43073,307.75942 122.39141,308.14343 122.39141,309.45299 C 122.39141,310.01785 123.23695,310.20295 123.67804,310.55581 z " id="path10979" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 113.75259,314.41571 C 114.31738,314.69811 115.12625,315.63220 116.14205,315.88615 C 117.06105,316.11590 117.85904,316.73799 118.16390,315.51854 C 118.39016,314.61350 118.16390,313.33132 118.16390,312.39386 C 118.16390,311.26123 117.63990,311.21687 117.42868,310.37201 C 117.21909,309.53364 116.82901,309.06125 116.14205,308.71777 C 115.03825,308.16587 114.13499,309.39383 113.93639,310.18821 C 113.62913,311.41724 113.35408,312.64976 112.83357,313.86430 C 112.45559,314.74623 113.22837,314.52055 113.75259,314.41571 z " id="path10978" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 114.48781,321.58409 C 115.22385,320.84805 113.66834,320.29746 112.83357,320.29746 C 111.60864,320.29746 110.94874,320.75863 110.44411,321.76790 C 109.86996,322.91619 111.11198,322.83705 111.91454,323.23833 C 112.75929,323.66071 112.75394,324.11754 113.56879,324.52496 C 113.67351,324.57733 114.35401,321.80709 114.48781,321.58409 z " id="path10977" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 108.97367,320.48126 C 109.73930,321.05549 107.44475,319.31994 106.76802,318.64321 C 105.97248,317.84768 105.70612,317.68326 104.74617,318.64321 C 104.08820,319.30119 103.82714,320.31361 103.82714,321.21648 C 103.82714,322.17653 104.77995,322.72070 105.29757,323.23833 C 105.80061,323.74136 106.76014,324.16523 107.50324,323.42213 C 108.15944,322.76593 108.46495,321.32914 108.97367,320.48126 z " id="path10976" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 99.415827,323.97355 C 100.05463,324.13325 101.31856,323.54126 101.98910,322.87072 C 102.51706,322.34276 102.57874,320.47391 102.72432,319.74605 C 102.97544,318.49042 102.37728,318.29618 101.80529,317.72419 C 101.05714,316.97603 99.750117,316.95135 98.864417,317.17278 C 98.269427,317.32152 97.382227,320.63120 97.210167,321.03268 C 96.721427,322.17308 97.549057,322.80323 98.129197,323.23833 C 98.546357,323.55120 98.833157,323.62394 99.415827,323.97355 z " id="path10975" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 103.09192,314.96713 C 102.87252,315.84473 103.97400,313.38678 104.37856,312.57766 C 104.66820,311.99837 104.37856,310.48533 104.37856,309.82059 C 104.37856,308.90157 104.37856,307.98255 104.37856,307.06353 C 104.37856,306.12581 104.17348,305.14037 104.01095,304.49026 C 103.76912,303.52296 103.43600,302.81250 102.90812,302.28461 C 102.25435,301.63084 101.57519,300.76787 101.07007,300.26276 C 100.36410,299.55679 99.662747,300.16947 99.048217,300.63037 C 98.341087,301.16071 98.220617,301.91796 97.761587,302.83602 C 97.312717,303.73376 97.046307,304.59433 96.842567,305.40929 C 96.602667,306.36887 96.362637,307.10435 95.923537,307.98255 C 95.484037,308.86156 93.933937,309.56666 93.350277,310.00440 C 92.761137,310.44625 94.403607,312.32786 94.453097,312.39386 C 94.997927,313.12030 96.141867,313.88156 96.842567,314.23191 C 97.703277,314.66226 99.006297,314.91070 99.967237,315.15093 C 101.12204,315.43963 101.98942,315.18762 103.09192,314.96713 z " id="path10974" style="fill:#7d8474;fill-opacity:0.39037433;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 43.355427,223.06483 C 43.355427,224.11892 41.988787,224.69528 41.517377,225.63809 C 41.417397,225.83806 43.101167,227.03807 43.171627,227.10853 C 44.088407,228.02531 44.554667,226.18049 44.825867,225.63809 C 45.363357,224.56310 44.348007,224.46171 45.193477,223.61624 C 45.502257,223.30745 47.215017,223.15688 47.399127,223.06483 C 47.861377,222.83371 46.673007,221.06117 46.663917,221.04298 C 46.128657,219.97248 46.703677,219.90414 45.377277,219.57254 C 44.120977,219.25847 43.786047,220.05572 43.539227,221.04298 C 43.295997,222.01591 45.574047,222.17738 43.355427,223.06483 z " id="path10966" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 29.937697,220.67537 C 29.568237,221.41428 28.878027,222.51341 27.915837,222.51341 C 27.483807,222.51341 26.721337,221.04344 26.629207,220.85917 C 26.202157,220.00506 26.563917,219.15172 26.996817,218.28591 C 27.486677,217.30620 27.732037,216.46624 27.732037,215.34503 C 27.732037,214.38967 29.505777,215.46681 29.753887,215.52884 C 30.412737,215.69355 30.906177,216.64574 31.040527,217.18308 C 31.262767,218.07207 31.233027,218.82573 30.672907,219.57254 C 30.599387,219.67057 30.672907,219.81761 30.672907,219.94015 C 30.672907,220.28673 30.182767,220.43029 29.937697,220.67537 z " id="path10965" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 35.268027,224.35146 C 35.131007,224.89950 33.157087,223.93931 32.878567,223.80004 C 32.078467,223.40000 31.857287,222.77877 31.408127,222.32961 C 30.999597,221.92108 33.240757,221.13759 33.429977,221.04298 C 34.080477,220.71773 34.319227,219.86314 35.268027,219.38874 C 36.068467,218.98852 37.020977,218.78797 37.657487,218.46971 C 38.374597,218.11116 39.636397,218.29664 40.414557,218.10211 C 41.354097,217.86722 42.293677,218.21454 42.804017,218.46971 C 43.452457,218.79393 41.896117,219.47508 41.333577,219.75634 C 40.610977,220.11764 39.328677,220.34947 38.760317,220.49156 C 37.453207,220.81834 37.168537,220.36663 36.554657,221.59439 C 35.884397,222.93491 36.227687,223.07191 35.268027,224.35146 z " id="path10964" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 36.187047,231.70365 C 37.117417,231.93623 35.329297,229.98813 34.900417,229.13038 C 34.489467,228.30847 34.036407,227.53114 33.613787,227.10853 C 32.871257,226.36601 35.458187,226.00570 35.819447,226.00570 C 36.945977,226.00570 37.398187,226.43895 37.657487,227.47614 C 37.894947,228.42597 37.891067,229.48270 37.657487,230.41701 C 37.338677,231.69223 37.962487,232.76891 36.187047,231.70365 z " id="path10963" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 81.219177,192.73706 C 80.333857,192.29441 79.422367,194.07996 78.462107,193.83989 C 77.198267,193.52393 76.935417,194.23939 78.278297,194.57511 C 78.881407,194.72588 79.374557,195.67137 79.748737,196.04555 C 80.221407,196.51821 81.385707,196.45479 81.954397,196.59696 C 82.820927,196.81360 82.993717,197.14838 84.160047,197.14838 C 85.734417,197.14838 84.742657,196.44436 84.160047,195.86175 C 83.551127,195.25282 82.969837,195.03915 82.505807,194.57511 C 81.614917,193.68423 83.964787,192.65089 84.160047,192.55326 C 84.916867,192.17486 86.144357,193.06713 86.365697,193.28848 C 87.349527,194.27231 87.558967,192.91795 87.284727,192.36946 C 87.188277,192.17657 85.605377,191.43788 85.262877,191.26663 C 84.244637,190.75751 85.403557,189.26634 83.976247,189.97999 C 82.876837,190.52970 82.591027,190.57402 81.770587,190.16380 C 80.882897,189.71995 80.550777,189.27822 79.748737,190.34761 C 79.238317,191.02817 79.452587,192.15757 80.300147,192.36946 C 80.620237,192.44948 80.912827,192.61453 81.219177,192.73706 z " id="path10962" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 72.212747,182.07640 C 71.798467,182.90496 71.206167,183.52947 70.926117,184.64966 C 70.657427,185.72441 69.858947,185.73466 69.088077,186.12010 C 68.382837,186.47272 68.087547,184.32363 67.985237,183.91444 C 67.908027,183.60556 66.895597,182.64099 66.698607,182.44401 C 65.829347,181.57474 66.563117,180.58181 67.250027,180.23836 C 68.169247,179.77875 68.937027,179.68694 70.007087,179.68694 C 71.018517,179.68694 71.681837,180.05455 72.580357,180.05455 C 73.499377,180.05455 74.418407,180.05455 75.337427,180.05455 C 76.405957,180.05455 76.882227,180.68033 77.359277,181.15738 C 78.130667,181.92876 77.672357,182.36574 76.624057,182.62781 C 75.586457,182.88722 74.884807,182.76911 74.234597,182.44401 C 73.744017,182.19872 72.782007,182.19026 72.212747,182.07640 z " id="path10961" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 60.081647,186.30391 C 59.937007,186.88245 62.276897,186.40101 62.471107,186.30391 C 63.548227,185.76534 63.989437,186.11231 64.309157,184.83347 C 64.566027,183.80595 63.716107,183.43412 63.206317,183.17923 C 62.398267,182.77520 61.965567,182.39814 61.184467,183.17923 C 60.557357,183.80635 60.385037,184.96190 60.081647,185.56869 C 59.972047,185.78789 60.081647,186.05883 60.081647,186.30391 z " id="path10960" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 52.361847,200.27305 C 52.399767,200.31097 54.469637,200.45686 55.118917,200.45686 C 56.413567,200.45686 56.221747,198.97163 56.221747,198.06740 C 56.221747,197.18173 55.787537,196.49579 56.037947,195.49413 C 56.202317,194.83666 58.187427,195.61795 58.427407,195.67794 C 59.364817,195.91229 59.193537,194.45146 59.346427,193.83989 C 59.362897,193.77400 57.013027,193.13271 56.956967,193.10468 C 56.283217,192.76780 56.615437,191.34613 56.773167,190.71521 C 57.059367,189.57042 56.658647,188.94645 56.221747,188.50956 C 55.846707,188.13451 55.146037,190.23912 55.118917,190.34761 C 54.808867,191.58780 54.536207,191.74179 53.648487,192.18565 C 52.704847,192.65747 52.545657,192.95780 52.545657,194.20750 C 52.545657,195.04542 52.910107,195.84911 53.097067,196.59696 C 53.360977,197.65257 52.969767,198.02522 52.729467,198.98642 C 52.621427,199.41857 52.476247,199.81546 52.361847,200.27305 z " id="path10959" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 73.383137,203.74072 C 71.810867,202.16845 71.472917,202.52867 73.903007,201.92114 C 75.243747,201.58596 76.376397,201.40127 77.802097,201.40127 C 79.920067,201.40127 78.390897,200.37729 78.062037,199.06182 C 77.757047,197.84189 77.306637,196.98231 75.982527,196.98231 C 74.562467,196.98231 74.422887,198.52410 74.422887,199.84164 C 74.422887,201.02015 72.097777,200.35434 71.043677,200.88139 C 69.509027,201.64872 69.681157,202.11826 70.523807,202.96090 C 71.152217,203.58932 72.365617,203.74072 73.383137,203.74072 z " id="path10958" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 62.465697,205.04041 C 63.499657,205.55739 60.120447,205.30325 59.086487,205.82022 C 58.456707,206.13512 61.246937,207.27012 61.685877,207.37986 C 63.083947,207.72938 63.774007,207.89974 65.325027,207.89974 C 67.074317,207.89974 64.872277,205.62741 64.805147,205.56029 C 64.308837,205.06398 63.033857,205.04041 62.465697,205.04041 z " id="path10957" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 52.068137,208.67955 C 52.556957,207.70191 51.038117,207.11992 54.147647,207.11992 C 55.547687,207.11992 55.542667,208.07086 57.266917,207.63980 C 58.482807,207.33583 57.399247,205.04513 57.266917,204.78047 C 56.797167,203.84097 56.490977,202.96187 55.447347,202.70096 C 54.548867,202.47635 53.678817,204.31282 52.847957,204.52054 C 51.714447,204.80391 50.124167,204.52054 48.948877,204.52054 C 47.025367,204.52054 46.594067,205.28500 47.909117,206.60004 C 48.586007,207.27694 49.457527,207.63419 50.508507,208.15968 C 52.034767,208.92281 47.208907,207.70771 52.068137,208.67955 z " id="path10956" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 93.918307,221.15663 C 92.878557,220.89669 94.958067,219.07712 94.698127,218.03736 C 94.432767,216.97594 92.675047,217.25755 91.578857,217.25755 C 90.683247,217.25755 90.675187,220.21630 90.539097,220.89669 C 90.383557,221.67439 91.587687,222.49161 91.838797,223.49608 C 92.269047,225.21706 92.902677,224.95921 93.398427,222.97620 C 93.445417,222.78824 93.571727,222.62962 93.658367,222.45632 C 93.855947,222.06116 93.831657,221.58986 93.918307,221.15663 z " id="path10955" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 85.080387,226.09547 C 84.772697,224.86475 82.631627,224.49817 81.441237,224.79578 C 79.407857,225.30412 80.930467,226.87756 81.961117,227.13522 C 83.499137,227.51973 83.887797,227.61689 85.080387,227.91504 C 86.249707,228.20737 86.640687,228.95747 86.899957,229.99455 C 87.138177,230.94743 88.325577,231.28617 88.719527,232.07406 C 89.027627,232.69027 89.623337,229.89445 89.759287,229.21473 C 89.819447,228.91394 87.436037,227.98408 87.159897,227.91504 C 86.224147,227.68110 85.993367,227.23670 85.080387,226.09547 z " id="path10954" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 90.019227,288.48082 C 91.089227,289.55082 91.162067,285.67526 91.838797,284.32179 C 92.432517,283.13435 92.301027,281.95298 92.618617,280.68265 C 92.984977,279.21722 94.108837,278.17580 94.958067,277.04350 C 95.549497,276.25493 95.217997,274.42450 95.217997,273.40436 C 95.217997,271.82946 96.123117,270.80497 93.918307,270.80497 C 92.426767,270.80497 91.353537,270.69231 90.539097,270.28509 C 89.610017,269.82055 90.019227,267.25586 90.019227,266.38601 C 90.019227,265.48529 87.808077,265.24836 87.159897,265.08631 C 85.726947,264.72808 84.284247,266.67860 83.780687,267.68570 C 83.241447,268.76419 83.520757,270.37963 83.520757,271.58479 C 83.520757,273.32253 82.469507,273.66142 81.441237,273.40436 C 80.436317,273.15313 80.661427,271.35594 80.661427,270.28509 C 80.661427,268.68160 81.341067,268.08640 81.701177,266.64594 C 82.083807,265.11543 81.960687,264.30671 83.520757,263.52668 C 84.866107,262.85400 86.013047,262.57868 87.419837,262.22698 C 88.795117,261.88316 89.024877,259.70590 89.239407,258.84778 C 89.667027,257.13730 88.656217,257.38646 90.539097,258.32790 C 91.782367,258.94954 91.838797,259.59737 91.838797,261.18723 C 91.838797,262.64848 90.539097,263.68960 90.539097,265.34625 C 90.539097,266.33479 92.420667,266.72643 93.138487,266.90588 C 93.931557,267.10415 95.130317,267.72876 95.997817,267.94564 C 97.206167,268.24773 97.215397,269.41976 98.597207,269.76521 C 99.551557,270.00380 99.117087,272.75594 99.117087,273.66430 C 99.117087,275.10221 99.179747,276.53289 98.857147,277.82332 C 98.459607,279.41345 97.685577,280.69003 97.297517,282.24229 C 96.973417,283.53867 97.040137,284.82887 96.777637,286.14137 C 96.525717,287.40095 96.086287,288.30388 95.477947,289.52057 C 94.841577,290.79329 93.717697,291.52027 92.358667,291.86002 C 90.577277,292.30537 90.137867,292.33461 89.759287,290.82027 C 89.598247,290.17612 89.918047,288.98669 90.019227,288.48082 z " id="path10953" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 126.15074,234.41352 C 125.80970,234.32825 123.35751,235.45327 121.99172,235.45327 C 120.60429,235.45327 119.58350,234.89900 118.61251,234.41352 C 117.72740,233.97096 116.78965,233.37048 116.01312,232.59395 C 115.05538,231.63620 114.58118,230.93740 113.15379,231.29425 C 111.77347,231.63933 111.13330,231.65465 109.77459,232.33401 C 109.05099,232.69580 108.82579,235.27135 108.47489,235.97315 C 107.76132,237.40028 107.34202,238.44742 106.13544,239.35235 C 104.90593,240.27449 103.71840,239.92267 103.27611,241.69181 C 102.99531,242.81502 103.91196,244.00326 104.31587,244.81108 C 104.79755,245.77442 105.17126,246.44629 105.87550,247.15052 C 106.37547,247.65049 106.21366,249.80283 106.39538,250.52973 C 106.67994,251.66799 107.65041,252.86918 105.61556,252.86918 C 104.15788,252.86918 104.05180,251.82531 103.27611,251.04961 C 102.92363,250.69712 102.85344,247.79929 102.75623,247.41047 C 102.45782,246.21681 102.23636,245.13223 102.23636,243.77132 C 102.23636,242.47842 101.45654,242.10007 101.45654,240.65205 C 101.45654,239.01846 101.88574,238.15544 102.23636,236.75296 C 102.58547,235.35649 104.33568,235.78315 105.09569,235.97315 C 106.66751,236.36611 107.17519,235.72133 107.17519,233.89364 C 107.17519,232.98426 105.59946,232.57784 105.09569,232.07406 C 103.71837,230.69674 105.65441,229.99455 106.65532,229.99455 C 108.49909,229.99455 108.65217,229.89993 109.51465,228.17498 C 110.27172,226.66084 109.52627,226.29333 111.85410,226.87529 C 112.94165,227.14717 113.70079,228.05857 114.45349,228.43492 C 115.57067,228.99351 115.31695,229.47468 117.31282,229.47468 C 119.19195,229.47468 118.95844,229.50268 119.91221,230.77437 C 120.45652,231.50012 122.77989,230.64649 123.29141,230.77437 C 124.18200,230.99701 124.98761,231.95068 125.63087,232.59395 C 126.07690,233.03998 125.91647,233.82783 126.15074,234.41352 z " id="path10952" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 46.349477,237.79272 C 45.472257,236.91550 48.619067,238.79755 49.728687,239.35235 C 51.123687,240.04986 51.114907,239.69845 51.548257,241.43187 C 51.946247,243.02383 51.999747,243.20015 53.107887,244.03125 C 53.646527,244.43523 56.280137,244.29119 57.006977,244.29119 C 58.022057,244.29119 58.868777,245.22209 59.606367,245.59089 C 60.986737,246.28107 61.316397,246.22031 62.205757,245.33095 C 62.898927,244.63778 60.819417,243.94461 60.126247,243.25144 C 59.658187,242.78337 57.817157,242.48681 57.266917,242.21168 C 55.820537,241.48850 55.050387,242.07467 54.147647,241.17193 C 53.353457,240.37774 53.257417,239.50189 52.588017,238.83248 C 51.717227,237.96168 51.133907,238.26371 50.508507,237.01291 C 50.016127,236.02816 49.232367,235.71910 48.169047,235.45327 C 45.952947,234.89924 46.349477,235.65394 46.349477,237.79272 z " id="path10951" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 74.942767,235.97315 C 73.587187,236.31205 72.646717,235.75661 71.823497,234.93339 C 70.285907,233.39581 70.783737,236.05470 70.783737,236.75296 C 70.783737,237.05807 73.546557,238.02853 73.643067,238.05266 C 74.845277,238.35322 76.079997,238.35322 77.282217,238.05266 C 78.747197,237.68642 79.008687,238.12641 79.621667,239.35235 C 80.129167,240.36735 81.056467,240.52722 81.701177,241.17193 C 82.866957,242.33771 83.240047,242.35729 84.300567,243.77132 C 85.009547,244.71662 86.016217,244.96709 86.640017,245.59089 C 87.787027,246.73790 86.795127,243.45826 86.640017,243.25144 C 85.983437,242.37599 85.268957,241.88038 84.560507,241.17193 C 83.947437,240.55886 83.614587,239.18625 83.000867,238.57254 C 82.006597,237.57827 81.143157,238.67991 80.661427,236.75296 C 80.215927,234.97099 80.304317,234.83622 79.361727,233.89364 C 78.797567,233.32948 75.746967,235.97315 74.942767,235.97315 z " id="path10950" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 48.169047,231.55419 C 46.843617,231.55419 50.782277,231.09583 52.068137,230.77437 C 53.591107,230.39363 54.086137,230.45292 54.927467,231.29425 C 55.938217,232.30500 55.736307,232.47123 57.266917,232.85388 C 58.747297,233.22397 59.273317,233.67026 60.386177,233.11382 C 60.890747,232.86154 58.827917,230.51579 58.826547,230.51443 C 57.996497,229.68439 57.443057,229.43277 56.487097,228.95480 C 55.171667,228.29708 55.365317,227.48066 53.627777,227.91504 C 52.305387,228.24564 51.034457,228.62836 49.728687,228.95480 C 47.932837,229.40376 47.044957,229.68070 48.169047,231.55419 z " id="path10949" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 45.569657,214.39821 C 44.380887,214.10102 48.020037,214.62089 49.208807,214.91809 C 50.358687,215.20556 50.875857,216.17267 51.288317,216.99760 C 51.858877,218.13872 53.039147,218.28012 54.147647,218.55724 C 55.300837,218.84554 56.983827,218.49804 57.786797,218.29730 C 58.999297,217.99418 60.017667,218.03736 61.425937,218.03736 C 62.734807,218.03736 64.121907,218.32144 65.065087,218.55724 C 66.474067,218.90949 66.891607,219.34401 67.664477,220.11687 C 68.755817,221.20821 68.152367,221.79049 69.484047,222.45632 C 70.142267,222.78543 70.760647,224.13437 71.563557,224.53583 C 73.306307,225.40721 73.079627,223.58174 72.863257,222.71626 C 72.566197,221.52805 72.018687,221.02713 71.563557,220.11687 C 71.074337,219.13844 70.768487,218.28204 70.003927,217.51749 C 69.543557,217.05711 67.785097,216.27809 67.144597,215.95785 C 66.221617,215.49636 64.697017,215.69791 63.505447,215.69791 C 62.227917,215.69791 60.764757,215.66258 59.866307,215.43797 C 58.732797,215.15459 57.142527,215.43797 55.967217,215.43797 C 54.818047,215.43797 53.552197,215.10246 52.847957,214.39821 C 52.091017,213.64128 51.211297,213.31994 50.248567,212.83858 C 49.096017,212.26230 49.192737,211.53888 47.389237,211.53888 C 46.584637,211.53888 45.716287,213.66509 45.569657,214.39821 z " id="path10948" style="fill:#000000;fill-opacity:0.48128340;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 359.96583,395.05578 C 359.70589,392.58636 361.52546,389.59706 362.43525,391.02673 C 364.12485,392.97628 365.42455,396.61542 366.98418,399.34477 C 368.30726,401.66017 370.88326,405.97323 372.70284,406.49310 C 374.52241,407.01298 376.60192,406.88301 378.16155,404.67353 C 379.72118,402.46405 380.11110,402.85396 380.37104,401.29432 C 380.63098,399.73468 380.37104,397.52520 380.37104,396.35548 C 380.37104,395.18576 382.97043,388.16740 385.17991,391.28667 C 387.38939,394.40594 386.86951,398.95487 385.82975,401.42429 C 384.79000,403.89371 380.50100,415.07109 379.20131,417.41054 C 377.90162,419.74999 379.59122,424.16895 376.99183,425.59861 C 374.39244,427.02828 372.57287,428.32797 371.27318,426.37843 C 369.97348,424.42889 367.63403,422.60932 367.63403,421.30962 C 367.63403,420.00993 366.72424,416.50075 366.46430,414.29127 C 366.20436,412.08179 365.55452,410.13224 364.51476,407.53286 C 363.47501,404.93347 359.96583,395.05578 359.96583,395.05578 z " id="path10312" sodipodi:nodetypes="cccccccccccccccc" style="opacity:0.69999993;fill:url(#linearGradient12018);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 398.76667,404.37562 C 400.06686,403.94597 402.06519,401.78990 402.82339,401.56596 C 403.58158,401.34202 403.47566,398.34331 402.20630,396.53486 C 400.93693,394.72640 397.32485,395.16944 396.59830,395.65139 C 395.87176,396.13332 395.75131,399.42169 395.97526,400.17988 C 396.19920,400.93807 397.80569,403.35990 397.80569,403.35990 L 398.76667,404.37562 z " id="path10306" sodipodi:nodetypes="ccccccc" style="fill:url(#linearGradient12019);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 392.04588,421.75133 C 392.05550,421.08869 393.55748,414.20221 393.43930,413.56320 C 393.32111,412.92418 390.99264,411.76876 390.24946,412.03838 C 389.50629,412.30800 387.45184,413.34884 387.08246,414.21020 C 386.71307,415.07157 386.94423,418.46533 387.31802,419.05706 C 387.69181,419.64880 390.38446,422.05862 390.38446,422.05862 L 392.04588,421.75133 z " id="path10301" style="fill:url(#linearGradient12020);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 347.09885,432.61697 C 346.97586,432.78095 352.30441,431.90044 353.07745,431.70718 C 354.59292,431.32831 355.28446,431.19717 355.67683,429.62766 C 356.04788,428.14349 356.80032,428.06803 358.27622,428.06803 C 359.98920,428.06803 361.04581,427.98293 362.43525,427.28822 C 363.72390,426.64389 364.10509,426.06339 365.29458,425.46865 C 366.80117,424.71535 367.78093,424.13509 368.41385,422.86926 C 368.62039,422.45617 366.93872,417.74856 366.59427,416.37078 C 366.14381,414.56893 365.21426,415.24121 363.99488,415.85090 C 362.90746,416.39461 363.00563,417.00800 361.39549,417.41054 C 360.10202,417.73390 358.66861,417.67047 357.23647,417.67047 C 355.77153,417.67047 354.52342,417.18717 353.33739,416.89066 C 352.00733,416.55814 351.09574,416.46022 349.69824,416.11084 C 348.64122,415.84659 347.88096,417.92813 347.09885,418.71023 C 346.31372,419.49537 344.88317,419.59217 343.97959,420.26986 C 343.01661,420.99209 342.93983,422.78083 342.93983,423.90901 C 342.93983,425.03178 343.73986,426.28890 344.10955,427.02828 C 344.50450,427.81818 346.83545,431.29997 347.09885,432.61697 z " id="path10295" sodipodi:nodetypes="cccccccccccccccccc" style="fill:url(#linearGradient12021);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 331.50251,366.46250 C 330.26193,366.46250 331.98144,368.89810 332.28233,370.10165 C 332.59328,371.34545 332.80221,372.68635 332.80221,374.00073 C 332.80221,375.45599 333.47959,375.84591 334.62178,375.56036 C 335.68614,375.29428 335.02888,371.98998 334.88172,371.40134 C 334.54218,370.04317 335.57858,368.96788 335.92147,368.28208 C 336.34628,367.43248 338.22963,367.49444 339.30069,367.76219 C 340.58101,368.08228 341.89564,369.25352 342.67989,369.84171 C 343.43191,370.40572 344.78390,370.36159 346.05909,370.36159 C 347.13085,370.36159 345.75858,368.20092 345.27928,367.24232 C 344.69211,366.06799 344.02700,364.99770 343.45970,363.86311 C 342.95432,362.85234 341.56159,362.13423 340.86032,361.78360 C 340.16261,361.43475 339.04030,360.02869 338.26093,359.44415 C 336.96025,358.46865 335.69424,361.71820 335.40160,362.30348 C 334.90235,363.30198 334.47799,364.05483 333.84196,364.90287 C 333.50006,365.35875 332.07622,366.11827 331.50251,366.46250 z " id="path10290" style="fill:url(#linearGradient12022);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 335.40160,391.41664 C 335.48407,392.11233 335.92497,393.77006 336.18142,394.79585 C 336.47124,395.95513 336.85207,397.17691 337.22117,397.91511 C 337.85267,399.17812 337.36767,399.83629 339.04074,400.25457 C 340.42515,400.60066 341.15287,399.58841 341.90007,399.21481 C 342.71931,398.80519 344.85908,399.21481 345.79916,399.21481 C 347.21881,399.21481 348.69131,399.15803 349.95818,399.47475 C 351.09168,399.75812 352.68196,399.47475 353.85726,399.47475 C 355.19993,399.47475 356.42517,399.22268 357.49641,398.95487 C 359.16010,398.53895 360.49445,396.52045 360.22576,395.44569 C 360.03855,394.69683 356.84999,387.14139 356.58662,386.08789 C 356.44707,385.52968 352.57113,385.95792 352.03769,385.95792 C 350.73800,385.95792 349.43830,385.95792 348.13860,385.95792 C 346.85723,385.95792 345.69966,386.39757 344.49946,386.99768 C 343.26149,387.61666 342.53354,387.88598 341.64013,389.07719 C 340.97634,389.96225 340.21371,390.37688 338.78080,390.37688 C 337.91709,390.37688 336.45452,390.99547 335.40160,391.41664 z " id="path10285" sodipodi:nodetypes="ccccccccccccccccc" style="fill:url(#linearGradient12023);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 195.03457,509.68886 C 195.03222,509.69004 197.66426,512.93518 198.15383,513.58795 C 198.93964,514.63569 199.65126,515.54304 200.23334,516.70722 C 200.91731,518.07515 201.20571,518.69688 202.05292,519.82648 C 202.86240,520.90578 204.28119,520.19759 204.91224,519.56654 C 205.93696,518.54182 206.85372,517.02393 207.51163,515.92739 C 208.32081,514.57878 208.74961,514.51316 210.37096,514.10782 C 212.25454,513.63693 212.76346,514.26168 213.75017,512.28825 C 214.29473,511.19913 214.61178,509.78522 215.04986,508.90905 C 215.70308,507.60262 216.32787,506.85122 217.12938,506.04972 C 218.13528,505.04382 218.64740,505.09320 219.20889,503.97021 C 219.75201,502.88397 218.33324,501.53493 217.90919,501.11088 C 216.88009,500.08178 216.38133,499.51009 215.04986,498.51149 C 213.90946,497.65619 212.92700,497.73167 211.41072,497.73167 C 210.36882,497.73167 208.87011,498.75674 207.77157,499.03136 C 206.12780,499.44231 205.32693,499.99375 204.13243,500.59100 C 202.97334,501.17054 202.35772,501.58590 201.53304,502.41058 C 200.63570,503.30792 200.32693,504.62524 199.45353,505.78978 C 198.71206,506.77840 197.98082,507.30595 196.85414,507.86929 C 196.18420,508.20426 195.44109,509.18072 195.03457,509.68886 z " id="path10261" style="fill:url(#radialGradient12024);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 214.78993,531.52374 C 215.21650,531.52374 217.77838,534.25226 218.68901,535.16288 C 219.60572,536.07959 220.59510,537.37227 221.80828,538.28215 C 222.96999,539.15343 223.99585,539.73883 225.44742,540.10172 C 226.96116,540.48016 227.59615,540.03251 228.56669,539.06197 C 229.61365,538.01500 230.52303,537.62550 231.68596,536.46257 C 232.39329,535.75524 234.02776,535.16229 235.06516,534.90294 C 236.43281,534.56103 237.39036,533.86675 238.44437,533.60325 C 239.07051,533.44671 240.34760,531.70001 241.04376,531.00385 C 242.15154,529.89608 243.05384,528.80326 243.64315,527.62465 C 244.18174,526.54748 244.32306,525.74496 244.94284,524.50538 C 245.41458,523.56192 246.01156,522.62789 246.50248,521.64605 C 246.99207,520.66686 246.76241,519.17000 246.76241,518.00691 C 246.76241,516.98624 246.46608,515.35899 245.72266,514.36776 C 244.94146,513.32617 243.84884,512.57249 243.12327,512.02831 C 242.10921,511.26776 242.41020,510.46868 240.78382,510.46868 C 240.05358,510.46868 238.39164,513.43348 238.18443,513.84789 C 237.52083,515.17509 236.27491,515.75741 235.06516,516.96715 C 234.10262,517.92970 232.65334,519.40310 231.94589,520.34636 C 231.10599,521.46624 230.04439,522.01523 229.34651,522.94575 C 228.33392,524.29587 227.14655,525.14571 225.96730,526.32495 C 224.54094,527.75131 224.26782,528.14453 222.32815,528.14453 C 221.02846,528.14453 219.72876,528.14453 218.42907,528.14453 C 217.49750,528.14453 216.26798,529.35505 215.56975,529.70417 C 214.97953,529.99927 215.12943,530.95790 214.78993,531.52374 z " id="path10256" style="fill:url(#radialGradient12025);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 242.60339,552.57879 C 243.18665,552.57879 245.39002,552.57879 246.76241,552.57879 C 248.14943,552.57879 249.24085,552.31885 250.66150,552.31885 C 251.96120,552.31885 253.26089,552.31885 254.56058,552.31885 C 255.79649,552.31885 257.60009,551.44895 258.45967,551.01916 C 259.77308,550.36245 260.87687,549.12184 262.09881,547.89989 C 262.96535,547.03336 263.47013,546.52858 264.17833,545.82038 C 265.10460,544.89411 264.95814,544.01199 264.95814,542.44117 C 264.95814,540.83191 264.94403,540.08760 264.17833,539.32190 C 263.44522,538.58880 263.01096,537.76698 262.61869,536.98245 C 262.23612,536.21732 260.67016,535.91046 259.75936,535.68276 C 258.31376,535.32136 257.68649,535.16122 256.64010,535.42282 C 256.38871,535.48567 255.88281,538.71190 255.86028,538.80203 C 255.57650,539.93714 254.65114,540.27110 253.52083,541.40141 C 252.33274,542.58950 251.94875,543.75331 250.92144,544.78062 C 250.04242,545.65964 249.06092,545.81014 248.06211,545.56044 C 246.74084,545.23012 245.78396,545.82038 244.42297,545.82038 C 243.22871,545.82038 242.23708,546.30186 241.04376,546.60020 C 239.69130,546.93831 238.54849,547.45792 237.66455,547.89989 C 236.39166,548.53633 236.15714,548.62863 236.62480,550.49928 C 236.90828,551.63321 238.26547,551.53903 239.48412,551.53903 C 240.46947,551.53903 241.56772,552.37165 242.60339,552.57879 z " id="path9626" style="fill:url(#radialGradient12026);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 310.31749,425.07874 C 309.79762,425.33867 309.40771,427.67812 309.01779,429.23775 C 308.62788,430.79740 308.49792,432.61697 309.14777,433.78669 C 309.79762,434.95641 310.18752,436.90596 312.39700,437.94571 C 314.60648,438.98547 313.83145,438.44055 315.25633,438.72553 C 316.55602,438.98547 317.33584,439.50535 318.63553,438.20565 C 319.93523,436.90596 318.50557,427.54816 318.50557,427.54816 C 318.50557,427.54816 318.11566,426.50840 316.16611,425.20870 C 314.98403,423.71030 312.39700,423.77904 312.39700,423.77904 L 310.31749,425.07874 z " id="path9553" sodipodi:nodetypes="cccccccccc" style="fill:url(#radialGradient12027);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 289.78231,439.63531 C 289.78231,439.63531 291.34194,441.84479 293.03155,442.49464 C 294.72116,443.14449 296.15082,443.79434 297.45051,443.66437 C 298.75021,443.53440 299.53002,444.44419 300.82972,442.10474 C 302.12941,439.76529 302.51932,440.02522 301.99944,438.59556 C 301.47957,437.16589 300.69975,435.60626 299.40006,434.56651 C 298.10036,433.52675 297.32054,433.26681 296.02084,432.09708 C 294.72116,430.92736 294.33125,430.66742 293.16152,429.62766 C 291.99179,428.58791 290.82207,427.80809 289.91228,427.93807 C 289.00250,428.06803 287.44286,428.45794 287.05295,429.62766 C 286.66304,430.79740 286.66304,432.09708 286.79302,433.13684 C 286.92298,434.17660 289.78231,439.63531 289.78231,439.63531 z " id="path9530" style="fill:url(#radialGradient12028);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 201.14313,339.68879 C 199.32356,340.72854 199.71347,345.01754 200.36331,346.70714 C 201.01316,348.39675 202.83273,346.83711 203.61255,348.65668 C 204.39237,350.47625 202.83274,351.38604 203.87249,352.16586 C 206.60185,352.81571 207.77157,352.16586 207.64161,350.73619 C 207.51163,349.30653 208.68136,349.04659 209.72111,349.04659 C 210.76087,349.04659 212.71041,345.79735 210.76087,344.88757 C 208.81133,343.97778 209.72111,344.23772 208.81133,342.41815 C 207.90154,340.59858 206.34191,339.16891 204.78228,339.29888 C 203.22264,339.42885 202.44282,339.29888 201.14313,339.68879 z " id="path8874" sodipodi:nodetypes="cccccccccc" style="fill:url(#radialGradient12029);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 204.13243,322.27288 C 203.48258,320.45331 204.13243,319.15361 205.30215,319.41355 C 206.47188,319.67349 207.12172,319.93343 208.03152,320.84322 C 208.94130,321.75300 210.89084,321.49307 212.45047,322.40285 C 214.01011,323.31264 217.12938,325.26218 215.69971,326.95178 C 214.27005,328.64139 215.95965,330.85087 212.06057,328.77135 C 208.16148,326.69184 205.69206,325.26218 205.17219,324.35239 C 204.65230,323.44260 204.13243,322.27288 204.13243,322.27288 z " id="path8869" style="fill:url(#radialGradient12030);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 181.25780,302.51752 C 180.47798,300.56798 179.43823,299.00834 181.77768,299.00834 C 184.11713,299.00834 182.29756,297.31874 185.41683,299.26828 C 188.53609,301.21782 187.35724,300.41030 188.92600,301.73771 C 190.61560,303.16737 192.56515,304.98694 191.39542,305.89673 C 188.92600,307.71630 189.18594,307.97624 186.97646,306.80651 C 184.76698,305.63679 183.46728,305.11691 182.42753,304.07715 C 181.38777,303.03740 181.25780,302.51752 181.25780,302.51752 z " id="path8864" sodipodi:nodetypes="cccccccc" style="fill:url(#radialGradient12031);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 177.48869,312.78511 C 176.57890,312.13526 176.44893,311.09551 173.97951,311.35545 C 171.51009,311.61538 171.12018,312.52517 171.38012,313.82486 C 171.64006,315.12456 172.41988,317.98389 173.06972,319.41355 C 173.71957,320.84322 173.84954,322.53282 175.79908,323.70255 C 177.74863,324.87227 178.52845,325.91203 179.56820,325.65208 C 180.60795,325.39215 182.68746,324.74230 183.07737,322.40285 C 183.46728,320.06340 183.98716,319.54352 183.07737,317.98389 C 182.16759,316.42426 181.51774,314.60468 180.34802,314.21477 C 179.17829,313.82486 177.48869,312.78511 177.48869,312.78511 z " id="path8238" style="fill:url(#radialGradient12032);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 141.22720,268.20558 C 139.66757,269.76521 137.06818,269.76521 137.84800,272.36460 C 138.62782,274.96399 140.70733,276.00374 141.74708,274.96399 C 142.78683,273.92424 143.30672,271.58479 144.60641,271.58479 C 145.90610,271.58479 147.46573,270.28509 146.42598,269.76521 C 145.38623,269.24534 145.12629,266.90588 143.56665,266.90588 C 142.00702,266.90588 141.22720,268.20558 141.22720,268.20558 z " id="path8207" style="fill:url(#radialGradient12033);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 150.32506,286.66125 C 150.32506,286.66125 148.50549,287.44106 149.02537,289.00069 C 149.54525,290.56033 150.06513,291.86002 151.36482,293.15972 C 152.66452,294.45942 152.92446,294.45942 154.74403,294.19948 C 156.56360,293.93953 159.68287,293.93953 159.42293,291.86002 C 159.16299,289.78051 160.72262,289.78051 158.38318,288.48082 C 156.04372,287.18112 155.00396,286.92119 153.44433,286.66125 C 151.88470,286.40130 150.32506,286.66125 150.32506,286.66125 z " id="path8202" sodipodi:nodetypes="cccccccc" style="fill:url(#radialGradient12034);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 157.08348,278.08326 C 157.60336,279.12302 157.86329,279.64289 159.16299,280.94259 C 160.46268,282.24229 163.06208,286.14137 164.10183,284.84167 C 165.14159,283.54197 165.14159,283.28204 165.14159,281.46246 C 165.14159,279.64289 163.06208,277.30344 161.24250,276.26369 C 159.42293,275.22393 157.86329,276.00374 157.86329,276.00374 L 157.08348,278.08326 z " id="path8197" style="fill:url(#radialGradient12035);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 138.10793,256.50833 C 139.14769,258.32790 139.14769,260.14747 142.00702,259.62760 C 144.86635,259.10771 145.12629,259.36765 145.12629,258.06796 C 145.12629,256.76827 147.20580,258.06796 144.86635,255.98845 C 142.52690,253.90894 142.78683,251.04961 140.96726,252.08937 C 139.14769,253.12912 138.10793,254.42881 138.10793,254.42881 L 138.10793,256.50833 z " id="path8192" style="fill:url(#radialGradient12036);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 120.43208,254.16888 C 119.39233,254.42881 117.31282,257.02821 118.35257,257.80802 C 119.39233,258.58784 119.91221,259.36765 119.39233,260.66735 C 118.87245,261.96704 120.69202,264.30650 120.69202,264.30650 C 120.69202,264.30650 124.85105,267.42576 125.89080,264.04656 C 126.93056,260.66735 127.19050,259.88753 129.01007,258.32790 C 130.82964,256.76827 132.90916,259.10771 131.08958,255.46857 C 129.27001,251.82942 129.52995,251.30955 127.19050,250.78967 C 124.85105,250.26979 124.07123,248.97010 123.29141,250.52973 C 122.51160,252.08937 120.43208,254.16888 120.43208,254.16888 z " id="path8177" style="fill:url(#radialGradient12037);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 270.41686,383.35854 C 272.75631,383.87841 281.85417,388.29737 285.75326,389.59707 C 289.65235,390.89677 292.25173,391.15670 292.25173,391.15670 L 284.97345,382.83865 C 284.97345,382.83865 278.99485,381.01908 276.65540,379.71939 C 274.31594,378.41969 272.23643,378.67964 269.37710,377.89982 C 266.51777,377.12000 264.43827,376.08024 265.73796,378.67964 C 267.03766,381.27902 270.41686,383.35854 270.41686,383.35854 z " id="path7493" style="fill:#be8e4c;fill-opacity:0.70053476;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 230.38626,445.22401 C 231.16608,446.52370 234.80522,451.72248 236.62480,451.72248 C 238.44437,451.72248 242.86333,451.20260 242.86333,451.20260 C 242.86333,451.20260 242.86333,446.26376 241.04376,444.96406 C 239.22419,443.66437 235.58504,441.58486 234.28535,441.58486 C 232.98565,441.58486 229.86638,443.66437 229.86638,443.66437 L 230.38626,445.22401 z " id="path7492" style="fill:#4cbeb1;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 201.79297,423.64907 C 203.09267,424.42889 215.30980,435.08639 215.30980,435.08639 C 215.30980,435.08639 220.24865,434.56651 220.24865,433.26681 C 220.24865,431.96712 221.54834,432.22706 219.20889,431.18730 C 216.86943,430.14755 214.01011,428.58791 212.19053,427.28822 C 210.37096,425.98852 211.15078,424.16895 209.59115,423.38913 C 208.03152,422.60932 202.05292,422.08944 202.05292,422.08944 L 201.79297,423.64907 z " id="path7491" style="fill:#4cbeb1;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 261.05906,436.64602 C 261.05906,435.08639 261.83887,432.74693 262.61869,430.40749 C 263.39851,428.06803 265.21808,424.94876 266.77771,424.42889 C 268.33735,423.90901 268.33735,423.38913 271.71656,425.98852 C 275.09576,428.58791 277.95509,427.28822 275.87558,430.66742 C 273.79607,434.04663 271.45662,433.26681 271.45662,433.26681 C 271.45662,433.26681 269.89699,431.18730 271.71656,434.56651 C 273.53613,437.94571 273.01625,435.86620 271.97649,440.02522 C 270.93674,444.18425 269.63704,444.96406 267.29759,446.00382 C 264.95814,447.04358 264.43827,449.64297 262.09881,447.82339 C 259.75936,446.00382 258.45967,444.44419 260.01930,442.62462 C 261.57894,440.80504 261.05906,436.64602 261.05906,436.64602 z " id="path7490" style="fill:#be924c;fill-opacity:0.73262030;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 233.76547,433.00688 C 237.66455,432.48699 236.62480,434.04663 238.70431,432.22706 C 240.78382,430.40749 241.82358,427.28822 241.82358,424.68883 C 241.82358,422.08944 242.34345,420.78974 242.86333,415.59096 C 243.38321,410.39219 242.60339,406.23316 244.42297,404.93347 C 246.24254,403.63377 248.84193,402.33408 245.98260,400.77444 C 243.12327,399.21481 241.04376,394.53591 245.98260,395.57567 C 250.92144,396.61542 253.52083,396.61542 253.26089,399.73468 C 253.00095,402.85396 250.14162,401.03438 250.14162,402.85396 C 250.14162,404.67353 252.48107,406.23316 252.48107,407.53286 C 252.48107,408.83255 249.10187,410.39219 249.88168,412.21176 C 250.66150,414.03133 254.82053,421.04968 253.26089,422.34937 C 251.70126,423.64907 250.14162,425.46865 249.88168,427.54816 C 249.62174,429.62766 250.92144,431.70718 249.62174,433.26681 C 248.32205,434.82645 247.54223,435.86620 244.94284,436.12614 C 242.34345,436.38608 244.16303,440.28516 240.78382,440.80504 C 237.40461,441.32492 235.32510,443.14449 233.76547,440.80504 C 232.20584,438.46559 230.64620,435.08639 231.16608,434.04663 C 231.68596,433.00688 233.76547,433.00688 233.76547,433.00688 z " id="path7489" style="fill:#be924c;fill-opacity:0.73262030;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 234.02541,388.55731 C 231.16608,388.03744 227.26699,388.03744 227.78688,385.69798 C 228.30675,383.35854 228.30675,380.49921 231.68596,379.97932 C 235.06516,379.45945 232.98565,379.71939 237.40461,378.93957 C 241.82358,378.15975 243.90309,377.63988 245.72266,379.71939 C 247.54223,381.79890 250.40156,383.87841 247.28230,385.17811 C 244.16303,386.47780 242.34345,386.99768 240.52388,386.73774 C 238.70431,386.47780 235.58504,388.81725 235.58504,388.81725 L 234.02541,388.55731 z " id="path7488" style="fill:#be924c;fill-opacity:0.73262030;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 247.80217,352.94567 C 244.68291,352.68574 242.86333,348.78666 240.52388,351.38604 C 238.18443,353.98543 241.04376,354.76525 243.12327,357.10470 C 245.20278,359.44415 249.62174,361.26372 252.74101,361.78360 C 255.86028,362.30348 256.64010,361.00379 256.64010,361.00379 L 260.01930,358.92427 C 260.01930,358.92427 258.19973,354.76525 255.86028,354.50531 C 253.52083,354.24537 249.36181,353.98543 249.36181,353.98543 L 247.80217,352.94567 z " id="path7487" style="fill:#be924c;fill-opacity:0.73262030;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 222.58809,330.85087 C 220.24865,330.59093 219.72876,329.03130 217.90919,329.81111 C 216.08962,330.59093 214.52999,333.45026 215.56975,333.97013 C 216.60950,334.49001 222.32815,337.08940 222.32815,337.08940 L 229.34651,338.64903 C 229.34651,338.64903 234.28535,341.76830 236.88474,342.80806 C 239.48412,343.84781 244.16303,344.62763 244.16303,344.62763 C 244.16303,344.62763 244.94284,343.32794 244.42297,342.02824 C 243.90309,340.72854 243.12327,339.16891 241.56364,338.64903 C 240.00401,338.12916 236.88474,337.60928 234.54528,336.56953 C 232.20584,335.52977 231.16608,334.49001 229.34651,333.71020 C 227.52693,332.93038 222.58809,330.85087 222.58809,330.85087 z " id="path7486" style="fill:#be924c;fill-opacity:0.73262030;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 193.99481,307.71630 C 195.55444,307.71630 197.63396,307.97624 200.75322,309.79581 C 203.87249,311.61538 207.25170,311.87532 208.29145,311.87532 C 209.33120,311.87532 211.15078,309.53587 213.23029,312.91508 C 215.30980,316.29428 216.34956,319.93343 214.01011,319.67349 C 211.67066,319.41355 209.59115,317.85392 206.73182,317.59398 C 203.87249,317.33404 202.05292,317.85392 199.97340,316.55422 C 197.89389,315.25453 193.47493,311.35545 193.47493,311.35545 L 193.99481,307.71630 z " id="path7485" style="fill:#be924c;fill-opacity:0.73262030;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 171.64006,292.11996 C 170.08042,291.08020 166.96116,289.26063 166.96116,287.44106 C 166.96116,285.62149 166.70122,284.84167 169.04067,285.10161 C 171.38012,285.36155 173.19969,284.84167 173.97951,286.40130 C 174.75933,287.96094 175.79908,290.56033 176.83884,290.56033 C 177.87860,290.56033 179.95811,292.89978 177.87860,293.15972 C 175.79908,293.41966 171.64006,292.11996 171.64006,292.11996 z " id="path7484" style="fill:#be784c;fill-opacity:0.73262030;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 154.48409,299.13832 C 155.26391,297.31874 155.26391,296.53892 158.38318,296.27899 C 161.50244,296.01905 161.50244,294.19948 163.84189,296.27899 C 166.18134,298.35850 169.30061,301.21782 168.52079,303.03740 C 167.74098,304.85697 165.14159,305.11691 163.32201,305.89672 C 161.50244,306.67655 158.90305,308.23618 157.60336,308.75605 C 156.30366,309.27594 154.48409,310.05575 153.96421,307.71630 C 153.44433,305.37685 153.70428,305.37685 154.48409,303.81722 C 155.26391,302.25758 154.48409,299.13832 154.48409,299.13832 z " id="path7483" style="fill:#be784c;fill-opacity:0.73262030;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 133.16910,295.23923 C 133.16910,295.23923 131.08958,293.41966 133.68897,291.08020 C 136.28836,288.74076 136.54830,288.22088 138.62782,288.74076 C 140.70733,289.26063 143.82659,287.18112 144.08653,290.82027 C 144.34647,294.45942 144.60641,294.71935 144.60641,297.05880 C 144.60641,299.39825 144.34647,301.99764 142.00702,301.21782 C 139.66757,300.43801 137.84800,300.69795 136.80824,298.87838 C 135.76849,297.05880 133.16910,295.23923 133.16910,295.23923 z " id="path7482" style="fill:#be784c;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 130.04983,307.71630 C 129.01007,307.45636 127.45044,308.23618 125.37093,305.63679 C 123.29141,303.03740 123.55135,301.21782 124.07123,299.65819 C 124.59111,298.09856 124.59111,295.75911 128.23025,296.53892 C 131.86940,297.31874 135.76849,296.79886 135.24860,299.91813 C 134.72873,303.03740 134.46879,305.37685 133.42903,305.89672 C 132.38928,306.41661 130.04983,307.71630 130.04983,307.71630 z " id="path7481" style="fill:#be784c;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 131.34952,325.13221 C 128.75013,326.17197 125.11098,326.43190 124.85105,324.09245 C 124.59111,321.75300 123.29141,318.63374 124.85105,317.07410 C 126.41068,315.51447 127.45044,313.95484 129.27001,314.99459 C 131.08958,316.03435 132.90916,318.11385 133.16910,320.45331 C 133.42903,322.79276 131.34952,325.13221 131.34952,325.13221 z " id="path7480" style="fill:#b1744e;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 142.26696,320.19337 C 140.96726,319.15361 139.92750,316.29428 140.44739,313.69489 C 140.96726,311.09551 142.78683,309.01599 145.64616,309.53587 C 148.50549,310.05575 150.06513,310.31569 150.06513,312.39520 C 150.06513,314.47471 151.36482,317.07410 150.06513,318.37380 C 148.76543,319.67349 146.94586,320.97318 146.94586,320.97318 L 142.26696,320.19337 z " id="path7479" style="fill:#be7f44;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 146.42598,331.11081 C 144.08653,332.15056 140.70733,332.93038 139.92750,331.89063 C 139.14769,330.85087 138.36787,330.85087 138.88775,327.73160 C 139.40763,324.61233 138.10793,324.35240 140.18745,323.05270 C 142.26696,321.75300 144.08653,319.41355 145.12629,321.49307 C 146.16605,323.57258 146.68592,324.87227 146.68592,325.91203 C 146.68592,326.95178 146.42598,331.11081 146.42598,331.11081 z " id="path7478" style="fill:#be8142;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 162.28226,321.75300 C 162.28226,321.75300 159.68287,316.29428 162.02232,315.25453 C 164.36177,314.21477 165.92141,312.91508 168.26085,314.21477 C 170.60031,315.51447 171.64006,316.81417 171.64006,318.89368 C 171.64006,320.97318 173.45963,324.09245 171.12018,324.61233 C 168.78073,325.13221 165.92141,325.39215 164.62171,324.35240 C 163.32201,323.31264 162.28226,321.75300 162.28226,321.75300 z " id="path7477" style="fill:#be8541;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 155.00396,332.67044 C 156.04372,333.45026 157.60336,335.52977 158.90305,334.23007 C 160.20275,332.93038 160.72262,332.15056 160.72262,330.59093 C 160.72262,329.03130 160.98256,327.73160 158.38318,327.73160 C 155.78378,327.73160 154.48409,325.91203 154.22415,327.73160 C 153.96421,329.55117 155.00396,332.67044 155.00396,332.67044 z " id="path7476" style="fill:#be8148;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 173.19969,341.24843 C 173.19969,341.24843 173.19969,337.60928 171.64006,335.78971 C 170.08042,333.97013 169.04067,332.67044 166.44128,333.19031 C 163.84189,333.71020 161.50244,333.19031 162.02232,335.52977 C 162.54219,337.86921 161.50244,340.72854 164.10183,341.24843 C 166.70122,341.76830 169.04067,343.06800 170.34037,342.80806 C 171.64006,342.54812 173.19969,341.24843 173.19969,341.24843 z " id="path7475" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 169.04067,370.88146 C 167.74098,370.88146 166.44128,371.14141 166.44128,371.14141 C 166.44128,371.14141 166.70122,374.26067 167.74098,375.04049 C 168.78073,375.82031 170.86024,376.60012 171.38012,375.30042 C 171.90000,374.00073 170.60031,372.18116 170.60031,372.18116 L 169.04067,370.88146 z " id="path7474" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 182.29755,376.60012 C 182.29755,376.60012 183.59725,371.92122 181.51774,371.40134 C 179.43823,370.88146 180.73792,370.10165 180.73792,370.10165 C 180.73792,370.10165 183.07737,368.28208 181.25780,367.50226 C 179.43823,366.72244 177.35871,365.42275 175.79908,366.20256 C 174.23945,366.98238 173.45963,370.10165 174.49939,370.36159 C 175.53914,370.62152 173.71957,369.84171 173.71957,371.66128 C 173.71957,373.48085 175.27921,375.82031 176.31896,376.34018 C 177.35871,376.86006 182.29755,376.60012 182.29755,376.60012 z " id="path7473" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 174.23945,350.86616 C 172.15994,350.60623 168.52079,351.12610 169.56055,353.20562 C 170.60031,355.28513 173.19969,357.62458 174.75933,357.36464 C 176.31896,357.10470 178.91835,359.44415 179.17829,355.80500 C 179.43823,352.16586 179.69817,351.38604 178.13854,351.12610 C 176.57890,350.86616 174.23945,350.86616 174.23945,350.86616 z " id="path7472" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 144.86635,339.42886 C 143.04677,340.20867 142.26696,340.20867 142.26696,341.76830 C 142.26696,343.32794 142.26696,345.92733 144.34647,346.44720 C 146.42598,346.96708 150.32506,347.74690 150.32506,347.74690 C 150.32506,347.74690 152.40458,346.70714 151.88470,344.62763 C 151.36482,342.54812 151.10488,341.24843 149.80519,340.72854 C 148.50549,340.20867 144.86635,339.42886 144.86635,339.42886 z " id="path7471" style="fill:#be8046;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 157.08348,356.06495 C 157.08348,356.06495 153.18439,355.28513 152.92446,356.58482 C 152.66452,357.88452 154.22415,360.74385 154.22415,360.74385 C 154.22415,360.74385 156.56360,363.34323 157.86329,362.56342 C 159.16299,361.78360 159.68287,359.18421 159.68287,359.18421 C 159.68287,359.18421 161.24250,358.92427 162.54219,358.92427 C 163.84189,358.92427 165.66146,357.62458 165.40152,355.54506 C 165.14159,353.46556 166.18134,350.86616 163.32201,350.86616 C 160.46268,350.86616 159.68287,351.38604 158.64311,352.42580 C 157.60336,353.46556 158.64311,356.32489 158.64311,356.32489 L 157.08348,356.06495 z " id="path7470" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 143.82659,362.04354 L 148.50549,368.02213 C 148.50549,368.02213 151.10488,366.72244 150.84495,365.68269 C 150.58500,364.64293 150.58500,361.52366 149.54525,360.48390 C 148.50549,359.44415 145.90610,359.44415 145.90610,359.44415 L 143.82659,362.04354 z " id="path7469" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18056747pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 155.00396,375.30042 L 160.98256,382.05884 C 160.98256,382.05884 162.54219,380.49921 162.54219,378.93957 C 162.54219,377.37994 163.32201,376.08024 162.80214,374.52061 C 162.28226,372.96098 162.54219,371.66128 161.76238,370.36159 C 160.98256,369.06189 160.46268,366.20256 158.38318,366.46250 C 156.30366,366.72244 156.30366,368.28208 156.30366,368.28208 L 155.78378,372.70104 L 155.00396,375.30042 z " id="path7468" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 168.26085,388.81725 L 172.41988,393.23621 C 172.41988,393.23621 172.67981,391.41664 174.23945,388.81725 C 175.79908,386.21787 175.27921,388.03744 175.27921,385.17811 C 175.27921,382.31878 177.35871,382.31878 175.01927,380.75915 C 172.67981,379.19951 171.38012,376.34018 170.60031,379.19951 C 169.82049,382.05884 170.60031,383.35854 169.30061,385.17811 C 168.00091,386.99768 168.26085,388.81725 168.26085,388.81725 z " id="path7467" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 187.75627,400.77444 C 188.27615,399.73468 189.31591,397.39524 191.65536,396.87536 C 193.99481,396.35548 196.07432,396.09554 196.59420,395.05578 C 197.11407,394.01603 195.81438,393.49615 196.85414,392.19645 C 197.89389,390.89677 199.19359,389.85701 199.19359,388.03744 C 199.19359,386.21787 198.93365,376.08024 198.93365,374.00073 C 198.93365,371.92122 198.41377,371.92122 197.89389,369.06189 C 197.37401,366.20256 196.85414,365.94262 197.11407,363.08329 C 197.37401,360.22397 198.15383,359.18421 197.37401,357.36464 C 196.59420,355.54506 197.11407,352.68574 195.81438,352.68574 C 194.51469,352.68574 194.51469,350.86616 196.33426,350.08635 C 198.15383,349.30653 199.71347,351.90592 198.67371,349.04659 C 197.63396,346.18726 196.59420,344.88757 196.07432,343.84781 C 195.55444,342.80806 193.47493,338.38910 193.47493,338.38910 C 193.47493,338.38910 194.51469,337.08940 194.51469,335.00989 C 194.51469,332.93038 192.69511,332.15056 192.43517,330.85087 C 192.17524,329.55117 190.35567,325.65208 189.31591,324.87227 C 188.27615,324.09245 186.97646,320.97318 184.89694,322.79276 C 182.81744,324.61233 181.77768,328.77135 183.07737,330.33098 C 184.37707,331.89063 186.71652,334.74995 185.41683,335.26983 C 184.11713,335.78971 181.51774,337.08940 183.33731,338.38910 C 185.15688,339.68879 187.75627,339.68879 187.75627,340.98849 C 187.75627,342.28818 187.49634,347.48696 187.49634,347.48696 L 189.83578,351.64598 C 189.83578,351.64598 188.53609,354.24537 188.53609,356.84476 C 188.53609,359.44415 188.01621,362.82336 188.53609,364.38299 C 189.05597,365.94262 188.01621,370.36159 188.79603,372.70104 C 189.57584,375.04049 190.35567,376.08024 190.61560,377.37994 C 190.87554,378.67964 190.61560,381.01908 190.35567,383.61847 C 190.09573,386.21787 187.75627,386.99768 188.53609,388.55731 C 189.31591,390.11695 190.09573,391.67658 187.49634,392.19645 C 184.89694,392.71634 183.07737,393.23621 182.29755,394.27597 C 181.51774,395.31573 176.57890,397.65518 177.87860,398.69493 C 179.17829,399.73468 184.11713,404.93347 184.11713,404.93347 L 187.75627,400.77444 z " id="path7466" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 196.59420,415.85090 C 196.59420,415.85090 200.75322,416.89066 202.05292,416.37078 C 203.35261,415.85090 210.37096,411.69188 210.37096,411.69188 C 210.37096,411.69188 216.86943,406.49310 217.38932,404.41359 C 217.90919,402.33408 217.90919,400.77444 217.64925,397.39524 C 217.38932,394.01603 217.64925,392.45640 217.90919,389.59707 C 218.16913,386.73774 216.60950,382.83865 216.86943,380.49921 C 217.12938,378.15975 216.08962,376.08024 216.08962,376.08024 C 216.08962,376.08024 216.86943,373.48085 217.38932,370.88146 C 217.90919,368.28208 215.82968,366.20256 218.42907,365.42275 C 221.02846,364.64293 222.06822,363.08329 222.06822,361.78360 C 222.06822,360.48390 216.86943,352.16586 214.27005,351.90592 C 211.67066,351.64598 209.33120,352.16586 209.07127,355.54506 C 208.81133,358.92427 210.37096,361.26372 210.37096,362.82336 C 210.37096,364.38299 208.03152,362.04354 208.29145,366.20256 C 208.55139,370.36159 211.15078,373.22092 211.15078,373.22092 C 211.15078,373.22092 209.59115,375.82031 209.33120,378.15975 C 209.07127,380.49921 209.07127,383.09859 209.07127,386.73774 C 209.07127,390.37688 207.25170,394.01603 207.25170,396.09554 C 207.25170,398.17505 207.77157,401.55426 206.73182,402.59401 C 205.69206,403.63377 205.95200,406.23316 202.83273,406.23316 C 199.71347,406.23316 198.67371,404.41359 196.85414,406.23316 C 195.03457,408.05273 192.69511,410.65213 192.69511,410.65213 L 192.43517,412.73163 L 196.59420,415.85090 z " id="path7465" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 225.44742,401.29433 C 225.44742,404.15365 225.44742,409.61237 221.28840,413.51146 C 217.12938,417.41054 211.67066,421.56956 210.37096,422.60932 C 209.07127,423.64907 209.85109,424.94876 210.89084,426.24846 C 211.93060,427.54816 217.90919,430.66742 219.20889,431.44724 C 220.50858,432.22706 225.44742,429.62766 226.74712,428.84785 C 228.04681,428.06803 229.86638,422.86926 230.64620,420.78974 C 231.42602,418.71023 233.24559,414.29127 233.76547,412.99157 C 234.28535,411.69188 236.10492,408.83255 236.88474,407.01298 C 237.66455,405.19341 237.66455,405.97323 237.40461,402.85396 C 237.14468,399.73468 238.70431,394.79585 236.36486,394.27597 C 234.02541,393.75610 233.24559,392.45640 231.16608,391.93652 C 229.08657,391.41664 225.96730,394.27597 225.96730,394.27597 L 225.44742,401.29433 z " id="path7464" style="fill:#be8b3b;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 216.08962,435.34632 C 216.91857,435.64194 218.35462,436.73876 219.20889,437.16589 C 220.00583,437.56436 226.65084,442.88455 228.04681,442.88455 C 229.23763,442.88455 230.04099,443.14449 231.42602,443.14449 C 232.77767,443.14449 232.98565,441.24488 232.98565,440.28516 C 232.98565,439.56932 232.17994,438.36200 231.94589,437.42583 C 231.66107,436.28655 231.42602,435.03921 231.42602,433.78669 C 231.42602,432.84442 232.62161,433.00688 234.02541,433.00688 C 235.38177,433.00688 236.70956,433.05067 237.92449,432.74693 C 239.20389,432.42708 239.47814,431.47119 239.74407,430.40749 C 240.03133,429.25843 240.98413,428.04659 241.30370,426.76834 C 241.56570,425.72032 241.82358,424.56588 241.82358,423.12919 C 241.82358,421.85863 242.01949,420.78590 242.34345,419.49005 C 242.64319,418.29109 241.54373,417.39063 241.04376,416.89066 C 240.15026,415.99715 239.10918,415.53346 238.18443,415.07109 C 236.76970,414.36372 236.82923,413.77139 235.06516,413.77139 C 233.79056,413.77139 233.65789,414.20171 233.24559,415.85090 C 232.96723,416.96435 231.83240,418.41734 231.42602,419.23011 C 230.84488,420.39239 230.61624,421.68941 230.38626,422.60932 C 230.02169,424.06762 229.92854,425.08441 229.34651,426.24846 C 228.87551,427.19045 228.00798,428.10687 227.00706,429.10779 C 225.94666,430.16818 224.96907,430.33212 223.62785,430.66742 C 222.66559,430.90799 221.81324,431.70221 221.28840,432.22706 C 220.45015,433.06530 219.86648,433.77120 219.46883,434.56651 C 218.97572,435.55273 217.03926,435.34632 216.08962,435.34632 z " id="path10272" sodipodi:nodetypes="ccccccccccccccccccccccccc" style="fill:url(#radialGradient12038);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 16.219967,196.93159 C 13.880517,198.75116 12.060947,199.01110 12.580827,202.39031 C 13.100707,205.76951 12.840767,211.22823 15.700097,213.30774 C 18.559427,215.38725 25.577767,222.40561 26.617527,223.96525 C 27.657287,225.52488 28.697037,227.08451 31.816307,228.90409 C 34.935577,230.72366 39.874417,234.62274 41.174117,236.18238 C 42.473807,237.74201 44.553317,241.38116 46.632827,242.16097 C 48.712347,242.94079 50.791857,245.80012 51.831607,247.35976 C 52.871357,248.91939 54.430997,252.29859 56.250577,253.33835 C 58.070147,254.37810 64.568617,257.75731 65.868307,258.53713 C 67.168007,259.31694 67.947817,260.61664 69.767397,261.13652 C 71.586967,261.65639 72.106847,264.51572 75.486047,265.55548 C 78.865257,266.59523 81.204707,266.33530 81.204707,266.33530 C 81.204707,266.33530 78.085437,271.53408 81.204707,274.39340 C 84.323977,277.25273 89.782697,277.25273 89.782697,277.25273 C 89.782697,277.25273 89.262817,278.55243 90.042637,279.85212 C 90.822447,281.15182 87.443237,285.31084 87.443237,285.31084 C 87.443237,285.31084 85.103797,288.69005 86.403487,289.98974 C 87.703177,291.28944 88.482997,294.14877 90.042637,293.62888 C 91.602267,293.10901 92.901957,293.10901 92.901957,293.10901 C 92.901957,293.10901 88.755167,305.22548 89.306577,308.35016 C 89.857987,311.47484 89.674187,320.84887 90.409407,322.50312 C 91.144617,324.15735 92.063647,334.26661 92.798867,335.55324 C 93.534087,336.83987 95.923537,345.66249 96.658767,347.13293 C 97.393987,348.60337 99.783437,354.30131 99.967237,355.03653 C 100.15106,355.77175 103.64334,363.85915 103.64334,364.59437 C 103.64334,365.32958 104.56236,372.68177 104.92998,373.96840 C 105.29758,375.25504 106.21661,379.66634 106.76802,382.05580 C 107.31943,384.44526 106.76802,385.91570 107.13563,388.30516 C 107.50324,390.69462 107.13563,393.81929 107.31943,395.47354 C 107.50324,397.12778 107.50324,401.17148 107.50324,402.09050 C 107.50324,403.00953 107.13563,408.33986 107.31943,409.99410 C 107.50324,411.64835 108.23846,415.14063 107.13563,415.32443 C 106.03280,415.50824 103.27573,416.61107 103.27573,416.61107 C 103.27573,416.61107 101.07008,418.26531 100.33486,418.81672 C 99.599637,419.36814 97.393987,421.02238 96.658767,420.83857 C 95.923537,420.65477 92.615057,420.47097 91.696037,420.28716 C 90.777017,420.10335 86.549507,418.26531 86.549507,418.26531 C 86.549507,418.26531 83.792447,416.79487 82.689617,415.69205 C 81.586787,414.58922 80.667767,414.03780 79.013517,412.19976 C 77.359277,410.36171 73.683187,404.84758 72.212747,403.92855 C 70.742317,403.00953 68.720467,402.09050 67.801447,402.09050 C 66.882417,402.09050 65.738817,402.10357 65.922617,404.12542 C 66.106417,406.14727 66.882417,409.62650 67.801447,409.81030 C 68.720467,409.99410 68.904267,408.70747 70.374707,409.62650 C 71.845147,410.54552 71.661337,410.91313 72.580367,412.01595 C 73.499377,413.11878 74.969817,415.32443 75.888847,415.69205 C 76.807867,416.05965 78.829717,417.16248 79.748747,418.44912 C 80.667767,419.73575 81.770597,419.55194 82.505817,420.47097 C 83.241027,421.38999 84.527657,422.30901 86.181897,423.22804 C 87.836137,424.14705 90.960817,424.69847 90.960817,424.69847 L 79.932547,425.06608 L 66.882417,424.33086 L 62.471107,424.33086 C 55.322787,430.30946 53.312417,434.56626 52.761007,435.48528 C 52.209587,436.40430 52.263417,441.07938 52.913267,440.68947 L 56.858537,441.89997 C 57.638357,442.93973 56.956977,439.95425 58.243607,438.11621 C 59.530237,436.27816 63.206327,431.13163 64.860567,430.58022 C 66.514807,430.02880 74.969817,430.21261 75.888847,430.76402 C 76.807867,431.31544 89.122767,431.86685 90.593207,431.49924 C 92.063647,431.13163 98.496807,428.74217 99.415837,428.55837 C 100.33486,428.37456 103.27573,428.92597 100.51866,431.31544 C 97.761587,433.70489 89.674187,439.40284 88.019947,440.13806 C 86.365707,440.87328 83.057227,442.52751 83.057227,443.81415 C 83.057227,445.10078 81.219177,450.24731 82.505817,450.61491 C 83.792447,450.98253 87.284727,452.26916 88.019947,451.16633 C 88.755167,450.06350 87.284727,449.69590 89.306577,447.85785 C 91.328437,446.01980 92.982667,445.10078 95.372137,443.63034 C 97.761587,442.15991 106.21661,436.82957 108.23846,433.52109 C 110.26031,430.21261 113.01738,427.82315 115.22303,425.43369 C 117.42868,423.04423 118.16390,422.30901 120.00195,419.36814 C 121.84000,416.42727 122.75902,414.58922 123.86185,412.19976 C 124.96467,409.81030 126.43511,406.50181 126.98652,403.37713 C 127.53794,400.25246 128.08935,399.70104 128.45696,394.73832 C 128.82457,389.77559 128.64077,389.59179 128.45696,385.73189 C 128.27315,381.87200 128.64077,379.66634 126.98652,375.80645 C 125.33228,371.94655 124.59707,366.06480 124.59707,364.59437 C 124.59707,363.12393 124.41326,359.81545 123.49424,357.24218 C 122.57522,354.66892 121.10478,348.05196 120.55337,346.21391 C 120.00195,344.37586 118.53151,340.69977 123.31043,345.11108 C 128.08935,349.52239 132.86827,354.48511 135.25773,356.87458 C 137.64719,359.26403 144.26416,364.04295 146.83742,365.88100 C 149.41068,367.71905 150.51351,370.29231 152.53536,372.68177 C 154.55721,375.07123 156.94667,376.35786 159.51993,379.66634 C 162.09320,382.97482 162.46081,384.44526 166.32071,387.93755 C 170.18060,391.42984 179.18703,402.45811 182.31171,405.21518 C 185.43639,407.97225 199.77314,421.20618 201.61119,423.41184 C 203.44923,425.61749 213.55849,432.96967 217.23458,435.72674 C 220.91067,438.48381 226.24101,441.60849 228.99807,444.36556 C 231.75514,447.12263 236.35026,449.87970 236.90167,450.79872 C 237.45309,451.71775 236.16646,452.26916 233.59319,452.63677 C 231.01992,453.00438 225.13817,454.47481 222.93252,455.21003 C 220.72687,455.94525 205.10348,462.01080 202.89782,462.92982 C 200.69216,463.84885 193.89139,467.34114 192.42096,468.26016 C 190.95052,469.17918 188.19346,468.07635 185.80399,471.75244 C 183.41454,475.42854 182.49551,477.63419 181.39269,480.57507 C 180.28986,483.51594 178.26800,485.90540 177.71659,488.47866 C 177.16518,491.05193 175.14333,494.36041 179.00322,496.56606 C 182.86312,498.77172 190.95052,506.49152 193.52379,508.69717 C 196.09705,510.90282 201.61119,516.78457 204.36826,520.09305 C 207.12533,523.40154 212.08805,530.38611 214.66132,532.22416 C 217.23458,534.06220 224.77057,541.04678 226.42481,541.96580 C 228.07905,542.88483 237.82069,550.60462 239.84254,552.25886 C 241.86439,553.91310 244.80527,555.01593 246.27571,557.03778 C 247.74614,559.05963 248.29756,560.53007 245.72429,561.81670 C 243.15103,563.10333 240.57776,564.57377 238.00450,564.75757 C 235.43124,564.94137 231.01992,566.22801 229.18188,566.41181 C 227.34384,566.59562 225.68959,567.51464 223.48394,567.69844 C 221.27828,567.88225 219.99165,568.24986 216.31555,567.33084 C 212.63947,566.41181 206.02250,564.94137 204.91967,566.22801 C 203.81685,567.51464 202.71401,570.63932 204.73587,571.19073 C 206.75772,571.74214 210.61762,571.92595 213.37468,572.47736 C 216.13175,573.02878 224.03535,573.02878 222.19730,574.86682 C 220.35926,576.70487 217.60219,577.44009 215.58034,578.17531 C 213.55849,578.91053 212.45566,580.93238 208.77957,582.03520 C 205.10348,583.13803 205.10348,583.13803 200.69216,583.32183 C 196.28086,583.50564 197.38368,584.79227 193.52379,585.52749 C 189.66389,586.26271 186.72302,588.83597 182.49551,586.26271 C 178.26800,583.68944 178.45181,581.29998 177.34899,582.40281 C 176.24615,583.50564 178.45181,585.15988 176.61377,586.44651 C 174.77572,587.73315 172.01865,588.46836 173.67289,589.93880 C 175.32713,591.40923 178.45181,592.14445 180.10605,591.59304 C 181.76029,591.04163 182.67932,590.12260 185.06877,590.30641 C 187.45824,590.49021 189.84769,590.67402 192.05335,590.85782 C 194.25901,591.04163 197.75129,591.04163 199.03793,590.30641 C 200.32456,589.57119 200.32456,588.10075 202.71401,588.10075 C 205.10348,588.10075 207.86055,586.44651 208.04435,587.18173 C 208.22815,587.91695 206.57391,589.38738 205.47108,592.51206 C 204.36826,595.63674 201.97880,601.33468 200.87597,602.62132 C 199.77314,603.90795 194.81042,608.13545 194.07520,610.15731 C 193.33998,612.17916 191.68574,614.20101 191.68574,616.22286 C 191.68574,618.24471 189.11248,619.53134 187.64204,622.10461 C 186.17161,624.67787 185.06877,624.67787 184.70117,625.41309 C 184.33356,626.14831 184.70117,625.96450 183.04692,628.35396 C 181.39269,630.74342 176.06235,634.60331 175.14333,634.78712 C 174.22430,634.97093 170.36441,637.72800 170.91582,639.19843 C 171.46724,640.66887 174.04050,643.24213 177.90040,640.48506 C 181.76029,637.72800 181.20888,634.97093 184.70117,634.05190 C 188.19346,633.13288 191.31813,630.74342 191.13433,628.90538 C 190.95052,627.06733 194.99423,623.20743 196.46466,620.63417 C 197.93510,618.06091 199.22173,616.22286 200.32456,613.64959 C 201.42738,611.07632 203.26543,607.95165 204.36826,606.84882 C 205.47108,605.74599 206.75772,602.43751 207.30913,603.72414 C 207.86055,605.01077 206.39011,613.83340 205.10348,616.59047 C 203.81685,619.34754 202.16260,623.02363 201.61119,624.67787 C 201.05978,626.33211 198.85412,630.00820 198.85412,631.47864 C 198.85412,632.94908 198.48651,643.42593 197.93510,644.89637 C 197.38368,646.36681 196.64846,650.77812 197.01608,652.79997 C 197.38368,654.82182 197.01608,656.65987 196.09705,658.68172 C 195.17803,660.70357 194.81042,661.99020 195.36183,663.82824 C 195.91325,665.66628 192.60476,668.97478 191.68574,670.07761 C 190.76672,671.18045 189.66389,676.32698 190.76672,676.51073 C 191.86954,676.69454 197.38368,677.42981 197.01608,675.77553 C 196.64846,674.12131 197.01608,672.28328 197.56749,670.99663 C 198.11890,669.70998 201.24358,666.95293 201.79500,665.29871 C 202.34641,663.64443 201.61119,661.25498 201.97880,659.41694 C 202.34641,657.57889 205.10348,656.29226 204.91967,653.90280 C 204.73587,651.51334 204.55206,646.73442 204.73587,645.44779 C 204.91967,644.16115 205.47108,642.32311 206.39011,640.66887 C 207.30913,639.01463 210.06620,637.17658 209.33098,635.52234 C 208.59576,633.86810 208.77957,630.37581 209.14718,628.72157 C 209.51478,627.06733 209.88240,624.31026 210.43381,621.55319 C 210.98522,618.79612 213.55849,615.85525 213.55849,613.64959 C 213.55849,611.44394 214.29370,605.56219 215.21273,604.27555 C 216.13175,602.98892 219.07262,600.04805 219.99165,599.31283 C 220.91067,598.57762 222.19730,598.76142 224.58676,597.10718 C 226.97622,595.45293 231.20373,593.24728 232.30656,592.32826 C 233.40939,591.40923 237.08548,589.38738 239.10733,589.01978 C 241.12918,588.65217 245.54049,587.36553 247.19473,587.18173 C 248.84897,586.99793 253.07648,584.24086 254.54691,584.79227 C 256.01735,585.34368 255.09833,588.83597 254.54691,589.75500 C 253.99550,590.67402 252.34126,593.79870 251.78985,594.53392 C 251.23843,595.26913 248.66516,598.39381 248.84897,600.23185 C 249.03278,602.06990 248.84897,604.82697 248.66516,606.11360 C 248.48136,607.40024 246.27571,609.60589 245.54049,611.07632 C 244.80527,612.54677 243.51864,613.46579 242.59961,615.67144 C 241.68059,617.87710 240.94538,620.63417 242.04820,620.81797 C 243.15103,621.00178 242.23201,622.83982 241.86439,623.57504 C 241.49679,624.31026 240.39396,627.06733 241.31298,628.35396 C 242.23201,629.64059 242.96723,629.82440 244.25386,628.90538 C 245.54049,627.98635 247.19473,627.80255 247.01093,625.78069 C 246.82712,623.75884 245.72429,621.36939 246.64331,620.45036 C 247.56234,619.53134 248.29756,619.53134 248.66516,617.50949 C 249.03278,615.48764 249.58419,614.56862 250.31941,611.99535 C 251.05463,609.42209 250.87082,608.87067 252.15745,607.58404 C 253.44408,606.29741 256.01735,605.56219 256.01735,603.54034 C 256.01735,601.51849 255.28213,598.57762 255.64974,597.47479 C 256.01735,596.37196 256.75257,595.82055 258.22300,594.16630 C 259.69344,592.51206 261.16388,593.24728 261.53149,590.49021 C 261.89910,587.73315 261.53149,584.42466 262.81812,583.50564 C 264.10475,582.58661 269.43509,580.74857 271.45694,577.80769 C 273.47879,574.86682 275.31683,571.92595 274.58161,568.98507 C 273.84639,566.04420 273.66259,561.63289 273.47879,559.79485 C 273.29498,557.95680 274.76542,554.46452 272.19215,550.97223 C 269.61889,547.47994 263.92095,539.94395 262.81812,538.10590 C 261.71529,536.26786 261.34768,534.61361 259.69344,532.04035 C 258.03920,529.46709 257.67159,528.54806 255.83355,525.60719 C 253.99550,522.66632 253.44408,522.11491 251.78985,519.35784 C 250.13560,516.60077 250.68701,516.96837 247.19473,514.39511 C 243.70244,511.82185 242.41581,508.51337 239.47494,507.22673 C 236.53406,505.94010 234.69602,503.73445 232.12276,502.63162 C 229.54949,501.52879 227.34384,500.24216 226.42481,499.50694 C 225.50579,498.77172 230.83612,498.22031 232.85797,498.77172 C 234.87982,499.32313 255.09833,499.32313 264.47236,496.19846 C 273.84639,493.07377 281.01477,491.60334 282.48521,490.13291 C 283.95564,488.66247 285.60989,487.00823 289.10218,490.13291 C 292.59446,493.25758 294.80012,493.62519 297.37338,498.40411 C 299.94665,503.18303 300.68187,507.41054 308.58547,513.29229 C 316.48906,519.17403 337.25898,532.59176 344.79497,541.41438 C 352.33095,550.23701 362.99162,563.47094 365.19727,566.41181 C 367.40294,569.35269 378.61501,594.53392 380.82067,598.94522 C 383.02633,603.35654 388.35666,613.28199 389.82710,617.87710 C 391.29753,622.47221 398.83352,639.38223 400.67157,642.50692 C 402.50961,645.63159 408.39136,674.30513 420.15485,691.03131 C 431.91835,707.75756 443.31423,724.66756 454.89392,736.79866 C 466.47361,748.92976 483.75126,765.83984 496.80138,771.90539 C 509.85149,777.97094 522.90161,785.50688 540.73070,790.10204 C 558.55971,794.69712 582.63809,800.21129 607.26793,795.61613 C 631.89777,791.02105 652.66765,788.08019 662.59308,783.85267 C 672.51859,779.62515 684.28205,775.39763 687.22292,773.19197 C 690.16378,770.98637 693.28847,766.75885 694.94275,765.10457 C 696.59697,763.45035 698.80264,762.34752 699.35402,760.32567 C 699.90547,758.30382 702.84634,754.99531 701.00830,754.44393 C 699.17020,753.89248 696.96460,755.73059 695.67795,756.83342 C 694.39130,757.93618 688.14193,763.26653 683.17922,765.28838 C 678.21650,767.31023 674.90800,772.08913 658.73320,775.03007 C 642.55840,777.97094 626.56741,782.38220 613.88486,782.93365 C 601.20238,783.48503 590.17411,784.40405 582.08671,783.11747 C 573.99931,781.83082 550.83995,776.13290 545.32578,774.47862 C 539.81161,772.82440 520.87976,762.71515 511.87334,757.20098 C 502.86693,751.68689 484.30264,736.98248 480.07512,731.83595 C 475.84768,726.68941 464.81937,712.72028 459.85664,707.02237 C 454.89392,701.32438 445.51989,683.67911 444.78467,681.65726 C 444.04945,679.63541 432.65356,651.14573 431.55073,647.65344 C 430.44791,644.16115 425.66899,631.11103 423.83094,624.86168 C 421.99290,618.61232 421.25768,613.83340 417.94919,607.58404 C 414.64071,601.33468 407.47234,583.87325 406.00190,578.91053 C 404.53146,573.94780 395.52503,543.06863 385.59959,523.21773 C 375.67414,503.36683 368.13815,481.86170 360.23455,473.22289 C 352.33095,464.58407 338.72941,447.30643 336.70756,442.52751 C 334.68571,437.74859 331.56104,439.21903 332.84767,434.07251 C 334.13430,428.92597 335.78854,427.63934 336.70756,425.61749 C 337.62659,423.59564 338.17800,420.28716 338.17800,419.00053 C 338.17800,417.71390 339.64844,417.16248 340.19985,418.63292 C 340.75127,420.10335 348.47106,436.46196 352.14715,441.24088 C 355.82324,446.01980 359.68314,451.71775 364.64587,452.08535 C 369.60859,452.45296 373.65229,452.45296 377.14458,452.26916 C 380.63686,452.08535 386.70241,453.18818 387.25383,450.61491 C 387.80525,448.04165 389.82710,433.52109 390.37851,430.21261 C 390.92992,426.90412 393.31938,411.64835 395.52503,408.15606 C 397.73069,404.66377 405.81809,398.23061 411.51604,399.88485 C 417.21398,401.53909 419.23583,404.29616 421.44148,404.29616 C 423.64714,404.29616 429.34508,404.47996 431.18313,404.84758 C 433.02118,405.21518 435.77825,407.78845 437.98390,408.15606 C 440.18955,408.52366 442.02760,407.42083 443.49803,408.70747 C 444.96847,409.99410 447.35793,412.75117 449.56359,412.19976 C 451.76924,411.64835 453.60729,416.61107 455.26153,415.50824 C 456.91577,414.40542 459.12142,412.01595 457.65099,409.81030 C 456.18055,407.60465 456.54816,406.50181 454.15870,406.68562 C 451.76924,406.86943 447.17413,405.03138 444.60087,404.11235 C 442.02760,403.19333 437.06488,400.62006 434.85922,400.43626 C 432.65356,400.25246 425.30138,397.49539 423.09573,395.28973 C 420.89007,393.08408 416.66256,393.45169 414.82452,393.63549 C 412.98647,393.81929 406.55331,393.63549 408.94277,393.08408 C 411.33223,392.53266 413.17027,394.00310 413.53789,391.61364 C 413.90549,389.22418 415.55974,388.67277 414.08930,387.01853 C 412.61886,385.36429 410.22940,385.54809 408.57516,386.65092 C 406.92092,387.75374 402.87722,388.85657 400.85537,389.77559 C 398.83352,390.69462 400.85537,391.98125 397.36308,391.42984 C 393.87080,390.87842 391.29753,390.32701 390.01090,389.95940 C 388.72427,389.59179 387.80525,391.06223 386.70241,389.59179 C 385.59959,388.12136 386.70241,385.54809 384.49676,385.18048 C 382.29111,384.81287 378.98263,384.99667 378.61501,386.83472 C 378.24741,388.67277 380.63686,392.34886 381.00448,393.26788 C 381.37208,394.18691 380.26926,395.47354 380.08545,397.49539 C 379.90165,399.51724 381.00448,402.64191 378.98263,403.92855 C 376.96077,405.21518 377.51219,406.31801 374.93892,406.50181 C 372.36566,406.68562 371.81424,406.50181 370.34381,404.47996 C 368.87337,402.45811 367.77054,400.62006 366.85152,398.96583 C 365.93249,397.31158 365.38109,396.02495 364.27826,393.81929 C 363.17542,391.61364 361.44505,390.94532 360.89364,392.23195 C 360.34223,393.51858 359.31553,393.26788 358.76412,391.24603 C 358.21270,389.22418 353.61759,377.64449 350.86052,373.96840 C 348.10345,370.29231 349.02247,369.55709 345.53018,365.32958 C 342.03790,361.10208 342.77312,359.44784 340.01605,356.50696 C 337.25898,353.56609 340.01605,353.56609 335.42093,349.70619 C 330.82582,345.84630 325.67929,343.27304 320.16515,343.45684 C 314.65102,343.64064 308.95307,347.13293 308.21785,348.41956 C 307.48264,349.70619 303.43893,358.89643 302.70372,361.46969 C 301.96850,364.04295 298.47621,375.62264 298.10860,376.90927 C 297.74100,378.19591 297.37338,390.87842 296.27055,391.61364 C 295.16773,392.34886 285.24228,381.68819 283.40423,380.40156 C 281.56619,379.11493 263.36953,359.99925 259.32583,355.95555 C 255.28213,351.91185 233.40939,329.67149 230.46851,327.28203 C 227.52764,324.89257 228.63046,324.52497 228.63046,324.52497 C 228.63046,324.52497 232.49036,324.70877 232.49036,322.50312 C 232.49036,320.35174 232.30656,316.62137 231.38754,315.70235 C 230.46851,314.78332 215.39653,305.59309 206.75772,301.91700 C 198.11890,298.24091 199.58934,297.13808 196.83227,295.48384 C 194.42129,294.03725 188.92867,291.80775 187.09063,291.25634 C 185.25258,290.70492 171.28343,276.91958 167.42353,273.79490 C 163.56363,270.67022 156.02765,265.33988 153.27058,264.05325 C 150.51351,262.76662 149.59449,261.29618 145.55079,256.33346 C 141.50709,251.37074 128.64077,233.35789 125.51609,230.04940 C 122.39141,226.74092 117.98010,217.91830 114.67162,216.63166 C 111.36313,215.34503 112.83357,212.22035 112.46596,210.93372 C 112.09835,209.64708 109.34128,203.39773 106.76802,201.74349 C 104.19476,200.08925 92.063647,191.26663 88.387557,188.50956 C 84.711467,185.75249 83.608637,185.38488 82.689617,183.36303 C 81.770597,181.34118 78.645917,176.92987 75.521237,176.56227 C 72.396557,176.19465 61.000677,175.45943 58.059797,176.19465 C 55.118927,176.92987 49.237177,180.42216 47.766737,181.89259 C 46.296307,183.36303 41.149777,184.64966 39.863147,186.30390 C 38.576517,187.95814 34.900417,188.69336 33.429987,188.87717 C 31.959547,189.06097 28.467257,188.87717 26.813017,190.89902 C 25.158777,192.92087 22.769317,194.02369 21.115077,194.75891 C 19.460837,195.49413 16.152357,196.96457 16.152357,196.96457 L 16.703767,196.96457 L 16.336157,197.05647" id="path4966" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" style="opacity:0.19999988;fill:url(#radialGradient12039);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 185.93670,405.97323 C 189.31591,409.09249 234.54528,451.72248 240.26394,451.46254 C 245.98260,451.20260 270.93674,453.28211 275.35570,456.66132 C 279.77466,460.04052 288.35265,459.78058 292.25173,454.58181 C 296.15082,449.38302 301.34959,449.38303 307.32819,446.52370 C 313.30679,443.66437 321.88477,440.28516 324.22422,439.24541 C 326.56367,438.20565 335.40160,445.22401 331.76246,433.78669 C 328.12331,422.34937 298.49026,394.53591 296.67069,392.71634 C 294.85112,390.89677 268.07741,365.68269 265.47802,363.60317 C 262.87863,361.52366 253.00095,356.58482 245.20278,355.54506 C 237.40461,354.50531 229.60645,352.42580 223.88779,357.10470 C 218.16913,361.78360 214.01011,363.60318 210.11102,368.28208 C 206.21194,372.96098 184.11713,393.23621 183.33731,396.61542 C 182.55750,399.99463 185.93670,405.97323 185.93670,405.97323 z " id="path10277" sodipodi:nodetypes="cccccccccccccc" style="opacity:0.29999992;fill:url(#radialGradient12040);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 356.37466,554.28071 C 356.37466,554.28071 349.39009,544.72287 345.89780,541.59820 C 342.40551,538.47351 332.48006,530.01850 329.72299,528.18046 C 326.96593,526.34241 310.79112,514.76272 308.40166,512.74087 C 306.01220,510.71902 302.15230,507.77815 301.23328,505.20489 C 300.31426,502.63162 297.37338,497.30128 296.27055,495.46324 C 295.16773,493.62520 287.08033,487.74345 286.34511,487.92725 C 285.60989,488.11106 277.33868,491.60334 275.86825,492.52236 C 274.39781,493.44139 262.63273,497.83546 254.54691,498.58791 C 246.77386,499.31127 233.40939,499.13933 230.28471,498.77172 C 227.16003,498.40412 224.59167,498.77213 224.77058,496.56607 C 224.89144,495.07562 229.54949,496.38227 230.65232,496.56607 C 231.75514,496.74987 239.29113,497.48509 242.04820,497.30129 C 244.80527,497.11748 256.20115,496.38227 257.67159,496.38227 C 259.14203,496.38227 270.53791,493.07378 270.53791,493.07378 L 279.36053,487.92725 C 280.27956,488.11106 288.36696,483.14833 290.20500,483.51594 C 292.04305,483.88355 294.80012,484.43496 295.90295,485.90540 C 297.00578,487.37584 302.88752,493.62520 304.90937,497.11748 C 306.93122,500.60977 307.48264,503.36684 308.76927,504.28586 C 310.05590,505.20488 315.38624,507.96195 317.40809,510.90282 C 319.42994,513.84370 320.71657,514.57892 323.28983,516.04935 C 325.86310,517.51979 326.59831,518.80642 329.35538,521.37969 C 332.11245,523.95295 332.84767,524.87197 335.42093,527.26143 C 337.99420,529.65089 338.91322,532.59176 342.40551,534.98123 C 345.89780,537.37068 351.59574,543.62005 352.33096,545.09048 C 353.06617,546.56092 356.37466,550.78842 356.55846,551.89125 C 356.74227,552.99408 356.37466,554.28071 356.37466,554.28071 z " id="path6838" sodipodi:nodetypes="cccccccccccccccccccccccccccc" style="fill:#bfbfa8;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0625000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:none;marker-mid:none;marker-end:none"/>
+ <path d="M 219.46883,494.87235 C 218.30376,495.45487 222.10422,494.92833 223.36791,494.61240 C 224.46350,494.33850 226.26908,495.14274 227.26699,495.39222 C 228.17155,495.61836 229.38941,495.92282 230.38626,496.17204 C 231.60149,496.47584 233.01901,496.43198 234.28535,496.43198 C 235.67421,496.43198 236.61772,496.95186 237.92449,496.95186 C 239.22419,496.95186 240.52388,496.95186 241.82358,496.95186 C 243.22408,496.95186 244.53298,497.24927 245.72266,496.95186 C 246.81117,496.67973 247.56257,495.91210 249.10187,495.91210 C 250.43756,495.91210 252.05053,495.62983 253.00095,495.39222 C 254.13446,495.10885 255.72473,495.39222 256.90004,495.39222 C 258.31711,495.39222 259.45072,495.13228 260.79912,495.13228 C 262.15610,495.13228 263.48881,494.39488 264.69820,494.09253 C 265.90286,493.79136 266.74751,493.64519 268.07741,493.31271 C 269.15409,493.04354 269.70634,492.32061 270.93674,492.01302 C 272.13341,491.71385 273.35327,490.93472 274.31594,490.45338 C 275.37455,489.92408 276.00900,489.18532 277.17527,488.89375 C 278.32359,488.60667 279.30356,488.36168 280.29454,488.11393 C 281.42386,487.83160 282.34827,487.21704 283.15387,486.81423 C 283.97429,486.40403 285.12351,485.43950 286.01320,484.99466 C 287.23697,484.38277 287.76690,483.51648 289.13246,483.17509 C 290.44658,482.84656 291.51575,483.44599 292.51167,483.69497 C 293.93838,484.05165 294.59686,483.69355 295.63094,483.43503 C 296.92305,483.11200 294.52442,480.68898 294.07131,480.57570 C 292.84804,480.26988 291.70637,480.03034 290.69210,479.01607 C 289.28287,477.60684 288.90100,477.25436 287.05295,477.71637 C 285.81407,478.02610 284.40147,479.43202 283.67375,479.79589 C 282.43723,480.41414 281.45751,480.41830 280.55448,481.09558 C 279.42642,481.94162 278.32151,482.80867 277.69515,483.43503 C 276.81773,484.31246 276.54986,485.20573 276.13552,486.03442 C 275.43854,487.42838 275.09668,487.85354 274.05600,488.37387 C 273.04092,488.88141 272.12330,489.15369 270.93674,489.15369 C 269.92781,489.15369 268.48298,489.41363 267.29759,489.41363 C 265.53023,489.41363 265.09659,489.22291 263.91839,488.63381 C 262.98726,488.16825 262.05748,486.77291 261.57894,486.29436 C 260.77459,485.49002 260.14998,485.18997 259.23949,484.73473 C 258.63081,484.43039 256.91416,486.02029 256.64010,486.29436 C 255.61895,487.31551 255.19489,488.40495 254.56058,489.67356 C 253.89410,491.00653 253.46448,491.54949 252.74101,492.27296 C 252.02726,492.98670 250.23843,493.05277 249.10187,493.05277 C 247.71553,493.05277 246.32918,493.05277 244.94284,493.05277 C 243.69025,493.05277 242.17585,492.55598 241.04376,492.27296 C 239.85595,491.97600 239.35102,491.42658 238.44437,490.97326 C 237.08692,490.29454 236.34973,489.87230 235.06516,490.19344 C 233.74832,490.52266 232.80245,490.62915 231.42602,490.97326 C 230.54049,491.19464 229.24696,491.77796 228.30675,492.01302 C 227.21116,492.28691 226.06345,492.53289 224.66761,492.53289 C 223.25463,492.53289 222.18059,492.79283 220.76852,492.79283 C 217.33164,492.79283 219.98045,495.07699 218.16913,494.35246 C 217.84734,494.22375 218.16913,495.04563 218.16913,495.39222 C 218.16913,495.85882 219.03559,495.04563 219.46883,494.87235 z " id="path10266" style="fill:url(#linearGradient12041);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 253.00095,373.61083 C 254.56058,375.30042 255.34040,375.69033 256.77006,376.60012 C 258.19973,377.50991 259.23949,378.93957 260.66915,377.76984 C 262.09881,376.60012 263.52848,376.73009 262.74866,374.65058 C 261.96885,372.57107 262.61869,371.79125 260.79912,370.49156 C 258.97954,369.19186 256.51013,367.37228 255.47037,367.37228 C 254.43062,367.37228 252.22114,368.41204 252.09116,369.19186 C 251.96120,369.97168 253.00095,373.61083 253.00095,373.61083 z " id="path8889" style="fill:url(#radialGradient12042);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 226.61714,366.98238 C 226.22724,367.63223 225.83733,369.58177 225.57739,370.62152 C 225.31746,371.66128 225.18748,371.92122 224.53764,372.44110 C 223.88779,372.96098 223.23794,374.13070 224.79757,374.91051 C 226.35721,375.69033 229.08657,376.08024 230.77617,376.34018 C 232.46578,376.60012 235.97495,377.76984 236.88474,375.43040 C 237.79452,373.09094 238.83427,372.44110 237.92449,371.01143 C 237.01470,369.58177 236.36486,368.93193 234.67526,368.15211 C 232.98565,367.37228 231.81593,365.94262 230.90614,366.20256 C 229.99636,366.46250 226.61714,366.98238 226.61714,366.98238 z " id="path8884" style="fill:url(#radialGradient12043);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 228.95660,348.78666 C 229.73641,350.08635 230.77617,351.51601 232.33580,351.64598 C 233.89544,351.77595 235.32510,352.55577 235.97495,352.42580 C 236.62480,352.29583 238.18443,350.73619 238.05446,349.43650 C 237.92449,348.13681 236.36486,345.14751 234.67526,344.75760 C 232.98565,344.36769 231.03611,343.19796 230.38626,343.06800 C 229.73641,342.93802 228.56669,341.37839 228.04681,342.93802 C 227.52693,344.49766 228.69666,345.53742 228.69666,346.31724 C 228.69666,347.09705 228.95660,348.78666 228.95660,348.78666 z " id="path8879" style="fill:url(#radialGradient12044);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 238.18831,564.75757 C 236.71787,564.75757 228.63046,566.77942 226.05720,567.33083 C 223.48394,567.88225 218.52121,568.43366 216.13175,567.51464 C 213.74229,566.59562 208.04435,565.49279 206.57391,565.67659 C 205.10348,565.86040 203.44923,567.51464 203.44923,568.80127 C 203.44923,570.08790 205.65489,571.37454 206.57391,571.55834 C 207.49293,571.74214 221.27828,573.76399 221.27828,573.76399 C 221.27828,573.76399 223.11632,573.02877 222.38111,574.49921 C 221.64589,575.96965 218.70502,577.07247 217.23458,577.62389 C 215.76414,578.17531 212.45566,580.19716 211.16903,580.93237 C 209.88240,581.66759 204.18445,583.50564 201.24358,583.50564 C 198.30271,583.50564 198.67031,582.77042 197.38368,583.68944 C 196.09705,584.60846 191.31813,585.71129 189.66389,586.44651 C 188.32019,587.04371 185.43639,587.54934 184.51736,586.99793 C 183.59834,586.44651 179.55464,584.05705 179.55464,584.05705 C 179.55464,584.05705 177.90040,581.66759 177.34899,582.40281 C 176.79757,583.13803 178.45181,584.97608 176.98137,585.89509 C 175.51094,586.81412 172.75387,587.73314 173.30528,588.83597 C 173.85670,589.93880 176.42996,592.14445 177.53279,591.96065 C 178.63562,591.77684 181.94410,590.67401 183.41454,590.49021 C 184.88497,590.30641 186.17161,590.49021 187.82584,590.49021 C 189.48009,590.49021 192.78857,590.67401 194.44281,590.67401 C 196.09705,590.67401 197.56749,591.04163 198.67031,590.49021 C 199.77314,589.93880 199.95695,588.46836 201.05978,588.28456 C 202.16260,588.10075 202.89782,587.73314 204.73587,587.73314 C 206.57391,587.73314 207.49293,587.54934 208.59576,587.18173 C 209.69859,586.81412 214.66132,585.15988 217.60219,584.60846 C 220.54306,584.05705 228.63046,580.56476 231.01992,579.27813 C 233.40939,577.99150 238.37211,571.00692 240.02635,569.90410 C 241.68059,568.80127 243.33483,567.51464 244.98908,566.41181 C 246.64331,565.30898 248.48136,563.65474 248.29756,562.73572 C 248.11375,561.81670 246.27571,560.16245 244.62146,561.63289 C 242.96723,563.10333 238.18831,564.75757 238.18831,564.75757 z " id="path10320" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccc" style="opacity:0.49999967;fill:url(#linearGradient12045);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 666.42597,773.34306 C 665.98735,773.78170 669.23817,772.38728 669.88131,772.06566 C 670.47564,771.76852 670.98812,771.73811 671.61687,771.42370 C 672.22308,771.12064 674.54098,770.19036 675.08797,769.78011 C 675.59889,769.39687 678.33891,768.22665 678.63521,767.93030 C 679.05511,767.51045 681.03151,766.49912 681.64028,766.19476 C 682.26686,765.88151 684.34876,764.69417 684.88952,764.55903 C 685.44096,764.42115 687.91873,762.83945 688.39869,762.47948 C 688.96909,762.05167 689.20340,761.75222 689.82835,761.43977 C 690.36548,761.17116 691.63451,759.90451 692.06938,759.68704 C 692.59051,759.42651 694.55203,757.59375 695.11115,757.17440 C 695.68175,756.74646 698.09755,754.87433 698.62822,754.74173 C 699.35863,754.55906 699.72160,754.57994 700.35588,754.42140 C 701.33903,754.17561 701.45293,754.42292 701.62540,755.28523 C 701.78738,756.09512 701.16977,756.49460 701.00573,757.15071 C 700.86217,757.72499 700.68779,758.37850 700.22591,758.84032 C 699.84216,759.22413 699.52403,759.98418 699.31613,760.39999 C 699.01656,760.99911 698.37554,762.23463 698.07027,762.53986 C 697.41290,763.19719 696.89028,763.64905 696.19686,764.16908 C 695.74216,764.51014 694.02200,765.82409 693.59747,766.24857 C 693.12864,766.71747 692.61665,767.30048 692.42775,767.67830 C 692.13411,768.26558 691.68396,768.68197 691.25802,769.10796 C 690.83207,769.53389 690.53554,769.83045 690.08830,770.27768 C 689.65434,770.71162 689.57595,771.57358 689.04854,771.83728 C 688.63337,772.04486 686.76561,773.53938 686.34283,773.85645 C 685.97000,774.13604 681.93859,775.78217 681.51030,775.99632 C 680.77058,776.36620 675.40699,778.82184 674.75189,778.98558 C 674.03672,779.16441 673.54700,779.48178 672.93232,779.63548 C 672.18175,779.82313 671.75721,779.96310 671.11275,780.28531 C 670.50384,780.58974 669.97482,780.79725 669.42315,780.93513 C 668.75791,781.10147 668.43640,781.24087 667.73355,781.06514 C 667.17356,780.92509 666.82245,780.54265 666.56382,780.02536 C 666.24976,779.39727 666.56382,778.64156 666.56382,777.94587 C 666.56382,777.19991 666.37849,776.60765 666.56382,775.86631 C 666.73096,775.19778 666.42597,774.02915 666.42597,773.34306 z " id="path9621" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccc" style="fill:url(#radialGradient12046);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 38.760317,205.60338 C 41.149777,206.52241 44.642067,207.62523 45.009667,210.38230 C 45.377287,213.13937 45.561087,216.44785 43.539237,217.91830 C 41.517387,219.38874 37.473687,221.22678 35.635637,220.67537 C 33.797597,220.12396 31.959547,218.65352 30.856717,217.55069 C 29.753897,216.44785 29.386287,215.34503 30.305307,214.24220 C 31.224337,213.13937 31.408127,210.38230 29.937697,210.19850 C 28.467257,210.01470 29.202477,207.44144 30.672907,206.70622 C 32.143347,205.97100 33.936137,205.23578 35.451837,205.23578 C 36.738467,205.23578 38.760317,205.60338 38.760317,205.60338 z " id="path1817" sodipodi:nodetypes="cccccccccc" style="fill:#d4d4d4;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ <path d="M 37.657487,209.73899 L 41.517387,209.83090 C 42.436407,210.56612 41.517387,210.74991 41.884997,211.85275 C 42.252607,212.95557 43.723037,213.87460 42.436407,214.24220 C 41.149777,214.60981 37.657487,215.16123 36.922267,215.89645 C 36.187047,216.63166 34.349007,216.08025 33.429987,214.97742 C 32.510967,213.87460 32.694767,211.66893 32.327157,210.93372 C 31.959547,210.19850 31.775747,207.99285 33.429987,208.17665 C 35.084227,208.36045 36.278957,209.46328 37.657487,209.73899 z " id="path2451" sodipodi:nodetypes="ccccccccc" style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
+ </g>
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/bamboo_01.svg b/PerformanceTests/PageLoad/svg/files/bamboo_01.svg
new file mode 100644
index 000000000..657d1c6f9
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/bamboo_01.svg
@@ -0,0 +1,6383 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") --><svg height="297mm" id="svg602" inkscape:version="0.39cvs" sodipodi:docbase="C:\Dokumente und Einstellungen\Manfred Glückselig\Eigene Dateien" sodipodi:docname="bamboo.svg" sodipodi:version="0.32" viewBox="0 0 645.0 1024.0" width="210mm" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xml="http://www.w3.org/XML/1998/namespace">
+ <metadata>
+ <rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <cc:Work rdf:about="">
+ <dc:title></dc:title>
+ <dc:description></dc:description>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li></rdf:li>
+ <rdf:li>plant</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <dc:publisher>
+ <cc:Agent rdf:about="http://www.openclipart.org">
+ <dc:title></dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title></dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title></dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:date></dc:date>
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <cc:license rdf:resource=""/>
+ <dc:language>en</dc:language>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs id="defs6946"/>
+ <sodipodi:namedview id="base" inkscape:current-layer="svg602" inkscape:cx="297.63775" inkscape:cy="123.14200" inkscape:window-height="968" inkscape:window-width="1280" inkscape:window-x="-4" inkscape:window-y="-4" inkscape:zoom="0.85997009" showborder="false"/>
+ <rect fill="#FFFFFF" height="865.797119" id="rect603" style="fill:#ffffff;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)" width="984.17961" x="-213.198728" y="158.284015"/>
+ <path d="M 207.9386 999.5614 L 217.0939 1003.789 C 218.6776 991.6568 217.2464 979.5881 215.7434 967.4323 C 215.1788 962.8691 216.3766 957.3378 212.3193 953.1559 C 207.6761 948.3703 192.9226 940.8834 183.5249 939.3192 C 179.5348 938.6546 175.3813 939.3285 171.318 939.2676 C 162.2147 939.1307 152.9375 938.6665 143.8525 938.2589 C 134.3998 937.8345 127.2237 941.2402 119.4387 943.6668 C 110.3125 946.5111 100.3625 948.5065 90.44743 950.3336 C 73.69495 953.4214 55.89887 954.2804 38.56816 956.0078 C 18.95781 957.9634 -0.139847 960.4053 -19.41452 963.2047 C 4.427042 952.1667 36.86377 944.0718 66.03358 938.439 C 76.55141 936.4073 87.60928 935.3986 98.07669 933.3034 C 104.0124 932.1164 109.0003 929.9434 114.8612 928.7115 C 124.5763 926.6696 136.3925 927.4728 145.3783 924.3115 L 100.4693 904.9148 L 87.3957 895.5643 L 71.06745 891.8052 L 87.3957 889.6686 L 130.1198 893.0278 C 126.9628 888.3183 111.9528 888.9347 104.1802 888.8223 C 76.98015 888.4291 50.39659 884.2844 23.30956 883.7273 L 23.30956 882.0362 L 67.55952 878.0691 L 119.4387 879.4997 L 84.34397 866.0714 L 43.14574 848.216 C 71.90663 853.5461 102.8602 857.2367 127.0681 868.0727 C 133.2997 870.8621 139.0689 873.9735 145.3555 876.7222 C 147.156 877.5094 150.4488 879.0516 152.9543 878.2763 C 155.1408 877.599 155.4781 875.6172 155.8289 874.414 C 156.9764 870.4706 158.2963 866.5432 159.3248 862.5896 C 161.7767 853.1648 165.9286 843.6038 171.9832 834.688 C 175.4698 829.5524 180.8805 824.7533 183.5249 819.4689 L 166.7404 825.3874 C 174.2538 817.7982 184.2237 810.1827 193.9266 803.4043 C 198.7637 800.0248 205.2851 796.3756 201.5041 791.7532 C 197.8283 787.2602 181.7564 792.0931 175.8955 793.396 C 151.5947 798.8014 124.8693 803.8981 99.6025 807.6318 C 104.3815 803.9268 111.3028 801.6541 117.9129 799.0575 C 130.843 793.9786 144.7726 789.2252 159.111 785.472 C 167.3232 783.3227 181.0835 781.5032 186.8955 777.4481 C 191.4334 774.2809 183.3874 770.3045 178.9305 768.8138 C 166.7557 764.741 151.758 768.0275 139.2749 769.5841 C 146.4296 765.1384 154.6495 762.5267 165.2145 763.6655 L 162.1628 759.438 L 175.8955 764.5111 C 175.8833 752.0322 160.4676 746.2448 147.5313 737.3577 C 141.0831 732.9272 140.9961 728.3403 131.6456 724.7723 L 131.6456 734.0729 C 122.9681 727.1812 119.6386 716.2479 104.1802 712.9352 L 105.616 730.6909 L 98.07669 770.4296 C 92.00069 767.0222 93.00927 761.337 91.17518 756.9015 C 85.87588 744.087 78.86611 730.3687 78.28176 717.1628 C 78.14433 714.0623 78.02693 710.8798 79.49636 707.8622 C 80.65138 705.4906 83.80075 702.1728 80.81163 699.8418 C 77.53703 697.2883 71.57246 700.6703 69.08386 701.9826 C 61.1662 706.1585 51.67075 711.3136 47.86828 717.1628 C 44.81503 721.857 53.49409 726.8311 57.19279 730.6909 C 64.02412 737.8168 67.53046 744.5817 67.55952 752.674 L 40.28017 733.2282 L 30.16678 727.6766 L 27.88714 735.7639 L 26.80989 753.5195 L 23.71087 760.4315 L 20.25784 752.674 L 14.1544 721.3903 L 3.720569 729.8453 L -14.32731 744.2189 L -60.10615 774.6571 L -92.65575 795.7947 L -75.52297 774.6571 L -50.40474 748.4465 L -11.78521 725.6178 L -75.87134 750.1375 L -36.19897 722.2358 L -114.0178 729.8453 C -108.3264 726.3069 -99.91761 723.9961 -92.65575 721.5679 C -76.4655 716.1532 -59.36916 710.9568 -40.77656 708.6257 C -31.27655 707.4344 -22.541 709.7477 -13.31107 708.969 C -3.177839 708.1142 9.260963 701.0542 15.68025 696.8707 L -10.25936 700.087 L -95.70749 712.0897 L -75.87134 704.9258 L -45.35413 694.4643 L -25.51796 688.4156 L -81.97477 682.9215 L -123.1729 678.2695 L -97.23342 674.7243 L -27.04381 674.8875 L -63.65942 660.0658 L -106.3885 639.3763 C -83.70443 640.9769 -59.5309 648.3454 -39.25069 653.9647 C -32.99161 655.6996 -21.17689 661.6664 -13.97025 660.3347 C -11.44952 659.868 -9.262972 658.8288 -7.117614 657.9943 C -3.885848 656.7362 1.228843 655.3919 2.914922 653.2874 C 6.27944 649.0878 -11.41443 644.0841 -16.36279 642.5241 C -17.72386 642.0955 -31.75719 638.0945 -28.8367 637.5526 C -24.90761 636.8237 -18.50663 638.568 -14.83693 639.2664 C -3.746982 641.3768 7.52149 644.0993 18.73199 645.8698 C 23.57048 646.6341 28.04277 645.6043 32.46473 644.5694 C 41.94794 642.3508 55.44718 640.7748 62.98185 636.8398 L -17.88865 633.4578 C -10.33564 629.6175 4.446882 630.4799 14.1544 629.385 C 37.05756 626.802 59.30465 623.1172 82.81804 626.517 C 97.78989 628.6824 108.2907 634.7928 124.0163 635.9943 C 120.8029 627.486 110.9015 622.2675 104.1954 614.8567 C 101.5846 611.9701 102.9564 608.5492 100.3334 605.6297 C 97.95916 602.9858 93.13291 601.8663 89.5487 599.8557 C 85.40906 597.5331 87.59707 592.7645 82.18938 591.3626 C 71.55416 588.6046 57.52694 588.3196 46.19746 586.3065 C 27.56671 582.9972 9.935406 578.1119 -8.733496 574.8854 C -16.9655 573.4624 -25.02357 571.7604 -33.14726 570.1582 C -35.94721 569.6052 -41.50896 568.9855 -43.16453 567.4492 C -44.79566 565.9357 -37.28233 565.863 -36.18677 565.8436 C -27.9578 565.7007 -19.93178 565.918 -11.78521 566.547 C 18.77775 568.9069 44.69449 576.5528 72.13704 583.573 L 45.50777 563.2809 L 21.78371 537.9157 L 72.13704 574.2724 C 72.13704 558.3693 76.9511 545.0729 87.70545 530.3062 C 93.18172 522.7871 100.4815 514.5071 111.8094 509.1685 C 109.3955 515.1522 105.4328 520.8796 103.3882 526.9241 C 100.2862 536.1004 98.95248 544.9884 93.8974 553.9803 C 89.567 561.682 77.98116 571.8881 80.24546 580.1411 C 81.1763 583.5282 86.24824 586.1543 90.07666 588.646 C 97.18871 593.2735 104.2137 596.9886 107.2319 603.0196 C 112.5922 596.1321 102.8618 586.7047 99.6025 580.191 L 107.2319 584.4185 L 115.8545 583.0615 L 114.086 587.1021 L 113.5107 596.2556 L 127.3976 625.8482 L 137.7491 636.8398 C 136.7405 628.0339 146.1336 626.8299 159.111 624.1682 C 165.7913 622.7976 172.0398 620.9316 178.9473 619.8823 C 182.6689 619.3167 196.8518 616.7286 199.6456 619.0884 C 200.9243 620.1673 196.7464 621.4102 195.6036 621.7839 C 190.3011 623.5163 184.4526 624.6992 179.1655 626.4384 C 177.5313 626.9761 174.5025 628.0753 176.0939 629.3275 C 178.3949 631.1402 184.6556 631.8403 188.1024 632.7645 C 191.4029 633.6506 200.9486 637.6853 204.658 636.4247 C 207.899 635.323 206.7714 629.434 207.3694 627.5392 C 210.1419 618.7671 211.9546 608.5458 210.8576 599.6376 C 210.5463 597.0968 208.4314 594.5857 209.0112 592.028 C 210.2458 586.5703 213.9046 581.619 214.0269 575.9634 C 214.2205 566.8937 212.7253 557.9263 212.5315 548.9073 C 212.3698 541.3535 213.5294 533.6011 212.2155 526.0786 C 211.1719 520.1068 208.1583 514.294 206.8782 508.323 C 205.1309 500.169 205.3721 491.8247 201.8123 483.8034 C 199.4229 478.4184 191.1159 474.6677 188.1024 469.4298 L 194.2059 472.3891 L 200.3094 474.5028 L 198.7834 456.7472 L 184.6325 470.2753 L 168.2662 496.486 L 165.2145 496.486 C 165.2145 479.9648 169.786 464.3974 181.5702 449.1377 C 184.2862 445.6204 187.933 441.9695 189.0331 438.1596 C 189.3155 437.1772 189.9487 434.9822 187.869 434.3912 C 185.9708 433.851 183.3036 435.1031 181.9349 435.6612 C 177.2337 437.5788 172.9233 439.7805 168.2662 441.7336 C 148.7536 449.9164 134.824 461.8321 114.8612 469.4298 C 122.3212 456.6661 132.9289 445.3219 149.9987 435.6096 C 156.8086 431.7347 164.1754 428.2267 171.1363 424.4523 C 174.0111 422.8932 178.4101 420.5799 178.8405 418.2116 C 179.2403 416.01 173.5381 416.6407 171.295 416.869 C 163.7176 417.6376 149.0878 418.3706 143.1537 421.1041 C 138.7255 423.1452 137.3615 426.8434 135.3764 429.6911 C 129.958 437.468 125.7955 446.0753 122.4904 454.2107 C 119.3792 450.7568 119.1488 446.98 118.038 443.2192 C 114.1516 430.0665 118.1143 417.3831 120.9646 404.3259 L 99.6025 413.4624 L 54.52708 435.7254 L 24.83542 452.5197 C 42.08832 429.1525 72.37052 407.9405 111.8094 395.0254 L 100.8598 392.3899 L 105.7503 390.1815 L 126.6988 391.0312 L 130.8781 387.5528 L 108.7577 388.6908 L 75.18878 389.3258 L 44.6716 393.3344 L 68.67647 383.6533 L 66.58755 374.7332 L 55.35259 351.0591 L 16.33943 383.1883 L -5.681778 396.7164 L 5.409698 380.6518 L 24.83542 357.8231 C -0.387039 361.529 -22.92247 370.3197 -45.35413 377.2698 C -39.81679 370.6249 -30.58076 364.5584 -20.93579 359.6198 C -10.4272 354.2391 -0.564036 350.6719 3.473389 342.6041 L -20.94037 349.1246 L -46.88 355.9943 L -77.39719 367.9692 C -63.14871 354.0184 -38.11851 341.8727 -13.31107 334.0247 C -3.035934 330.7746 6.786026 327.385 18.73199 326.5395 L -5.681778 325.694 L -34.67311 324.0029 C -30.49378 321.6558 -24.88931 320.7486 -19.41452 319.6215 C -6.122756 316.8829 10.47861 313.1805 24.83542 314.0328 C 31.72011 314.442 39.12205 317.9787 45.55659 317.7859 C 49.24608 317.676 52.26889 315.2807 55.45938 314.4014 C 60.51009 313.0088 66.65308 312.7924 72.13704 313.3699 C 81.65691 314.3726 90.61975 316.9751 99.6025 318.8969 C 102.6467 319.548 107.3859 321.1333 110.7612 320.588 C 113.59 320.1305 114.3667 317.6972 115.1235 316.3807 C 117.5452 312.1659 119.3243 307.8961 121.961 303.7108 C 127.7547 294.5083 134.3083 284.6946 144.8886 276.8204 C 153.0565 270.7429 165.1901 265.6783 171.318 258.8991 L 99.6025 265.6631 C 109.2185 258.4822 126.1693 254.7054 140.8008 251.6582 C 146.239 250.5252 156.7079 250.1109 160.7224 247.7173 C 162.9395 246.3957 161.284 244.2625 160.3974 242.8249 C 158.3421 239.4892 152.0997 230.8119 143.6618 231.763 C 137.1326 232.4988 130.7377 236.2493 125.5421 238.3957 C 113.8357 243.2319 98.34519 249.7778 84.34397 252.135 C 91.97628 245.989 104.206 241.9275 114.8612 237.5411 C 117.8869 236.2955 126.4043 233.7923 126.4043 231.3353 C 126.4043 228.9173 111.9422 227.7589 108.7577 227.2558 C 95.02801 225.0869 71.06599 222.9631 70.61125 213.2418 L 107.2319 218.0463 L 131.6456 220.8514 L 113.3354 208.1688 C 122.9223 209.2619 116.3656 202.8399 115.8026 200.3418 C 115.4485 198.7753 116.2497 197.0572 116.3869 195.4862 L 127.0681 211.5508 L 129.6681 198.8754 L 131.107 195.5169 L 137.7491 198.0228 C 137.952 192.8327 161.5204 194.2918 168.2662 194.5689 C 170.9395 194.6788 175.3905 194.4631 177.249 195.8118 C 178.8206 196.9516 175.1845 198.4133 175.7124 199.7771 C 176.7393 202.4211 182.942 203.1301 184.2313 205.6323 C 185.0568 207.2337 182.176 208.6264 181.6847 210.1344 C 181.0988 211.9321 181.857 213.9668 182.0372 215.7784 C 182.176 217.1835 184.9881 223.0516 181.535 223.6997 C 177.5709 224.4438 177.4489 216.8057 177.368 215.7796 C 177.2063 213.7722 176.5593 211.8304 175.8955 209.8598 C 173.9119 211.4474 171.6109 224.067 166.7404 218.3149 L 158.8501 218.8137 L 158.4794 223.3921 L 166.9205 232.9327 L 173.0101 246.2647 L 188.8517 250.2656 L 188.1024 255.517 C 202.2974 255.501 210.6562 252.0479 223.1971 249.0024 C 233.5944 246.4786 247.3714 247.609 256.6761 243.9691 C 266.7636 240.0225 274.0571 233.3201 282.7209 228.4609 C 310.8747 212.6726 337.9159 199.1021 378.812 196.1898 C 394.5284 195.0706 381.0749 208.006 391.3729 209.3135 C 398.726 210.2473 407.6051 207.8796 415.4556 208.3437 C 436.752 209.6028 458.9639 213.6068 478.0159 218.957 C 484.1743 220.6862 490.5629 222.4981 496.198 224.7176 C 497.6613 225.2936 501.4667 226.7221 500.24 228.0063 C 497.965 230.3894 481.858 227.3214 478.0159 227.0078 C 454.098 225.0546 430.0642 223.301 406.3003 220.8514 C 426.6035 238.2214 450.6938 255.0757 462.7572 274.9637 L 422.9506 250.444 L 406.8557 242.6252 L 399.376 248.753 L 384.9384 269.8906 L 395.6194 269.0451 C 391.231 272.3747 384.3189 274.2221 379.9427 277.5534 C 374.7837 281.4791 373.1755 286.6282 369.7393 291.0283 C 367.2857 294.1676 361.7407 299.0301 367.304 302.0257 C 379.9624 308.8439 406.685 300.9224 421.5591 300.3559 C 423.4602 300.284 439.674 298.7875 438.5464 301.0373 C 437.2983 303.5248 423.8737 305.0298 420.0331 305.9514 C 410.1257 308.329 400.8226 311.3694 391.0419 313.8814 C 384.148 315.6519 376.5812 316.6428 371.2056 319.7754 C 383.7161 319.7788 406.0502 319.6824 415.4556 324.8485 C 407.1045 324.8485 399.2295 325.0666 391.0419 326.0592 C 382.4404 327.1026 373.6088 326.8126 365.1251 327.8601 C 362.5799 328.1738 358.3579 328.7251 357.3706 330.2994 C 355.5671 333.175 366.5869 334.9734 369.6797 335.8375 C 384.9429 340.0988 397.9326 349.3284 413.9298 352.1946 C 425.7277 354.3084 442.3305 350.7953 452.0762 356.1321 L 426.0344 357.5839 L 428.0149 361.2407 L 442.9623 368.4469 L 462.7572 360.5803 L 500.9038 351.0591 L 476.4899 364.5872 C 487.7462 369.4074 499.7638 366.3788 513.1106 366.3788 C 531.5414 366.3788 552.2672 368.1096 569.5674 371.6226 C 575.3641 372.8004 581.6828 373.197 586.3518 375.5788 C 549.7617 375.5788 512.4483 377.6655 476.4899 381.4973 L 513.1106 387.6982 L 571.0933 409.4767 L 610.7655 428.0001 L 539.0502 409.6949 L 500.9937 396.4686 L 488.6068 396.1939 L 474.9641 394.1799 C 478.3256 397.9246 484.2489 400.73 488.1001 404.3259 C 504.3307 419.4816 522.0597 439.6367 522.2657 457.5927 L 487.1175 427.1546 L 460.3616 408.5805 L 450.2848 396.7164 L 447.0653 389.6074 L 435.2901 386.5348 L 415.4556 383.1883 L 461.2313 418.6995 L 435.2917 407.1203 L 392.679 388.8439 L 379.9244 379.9331 L 357.4729 377.2698 L 371.2056 401.7894 L 345.266 384.0338 L 340.2734 402.4658 L 354.4059 410.3417 L 372.7314 423.7725 L 348.3192 414.7502 L 337.8656 413.1335 L 335.2289 420.3905 L 331.2341 440.6826 L 331.7163 448.6625 L 342.3302 443.5481 L 352.9579 443.7239 L 381.8866 438.1461 L 340.2154 451.073 L 329.4322 455.3809 L 336.2588 463.5113 L 357.4729 477.8849 L 326.9558 468.5843 L 323.9193 485.4944 L 322.8069 504.0955 L 308.4379 529.4607 L 308.215 538.4712 L 332.7524 545.193 L 345.266 551.4438 L 352.0606 521.8511 L 357.4729 510.8596 L 363.4802 542.9887 L 358.9988 553.9803 L 370.4428 551.4793 L 386.4642 552.2893 L 386.4642 553.9803 L 362.0505 557.3623 C 373.0611 560.9938 384.7675 564.1991 393.9028 569.2992 C 400.763 573.1293 405.1681 578.6217 414.0213 581.2512 C 425.4881 584.6561 439.6969 585.1651 452.0762 587.0582 C 467.2432 589.3774 481.684 593.2515 494.8003 598.0303 C 502.6828 600.9016 510.7715 604.32 515.5138 608.9381 C 519.2858 612.6102 519.6062 618.9574 528.392 620.3237 C 534.1446 621.2182 540.6172 617.6029 545.1537 616.1046 C 556.1826 612.4613 567.7973 610.4778 580.2483 608.9381 L 566.5157 616.5477 L 604.6623 616.7142 L 633.6535 619.0842 L 615.3432 621.9758 L 572.6192 626.6937 L 593.9811 635.4887 L 621.9073 649.5224 L 632.1795 656.2475 L 633.3315 659.2533 L 616.869 655.7148 L 568.0416 642.7583 L 578.7119 657.9766 L 583.7931 663.1629 L 596.8986 656.7117 L 592.4553 663.0505 L 609.2397 659.6684 C 607.575 661.9614 605.1351 664.0946 601.2137 665.4018 C 597.2373 666.7267 587.9524 667.6196 588.8359 671.2104 C 589.7743 675.0169 604.2058 671.4844 607.714 670.9872 C 630.7162 667.7312 653.7201 669.199 676.3776 672.351 C 664.6102 675.6062 648.0699 676.2911 635.1795 678.1782 C 632.5243 678.5672 622.1103 679.5234 622.1103 681.6702 C 622.1103 683.1836 627.5486 682.9173 629.1004 682.8226 C 635.7409 682.4201 642.3479 681.3353 648.9121 680.6454 C 670.3351 678.3938 693.1819 678.2678 714.524 680.828 C 722.425 681.7758 731.6183 682.5326 737.4119 685.8791 L 700.7913 686.5724 L 636.7053 694.3341 C 643.8219 696.9265 653.1327 697.7534 661.1191 699.2753 C 674.3177 701.7898 691.1785 706.3902 700.7913 712.0897 L 633.6535 705.373 L 600.0846 699.4072 L 612.8134 714.0792 L 650.4379 724.7723 L 615.3432 719.6993 C 617.3268 728.5965 629.877 728.036 641.2828 732.7125 C 655.5908 738.5794 668.6246 747.1427 676.3776 756.056 C 663.9936 752.887 652.7619 747.9087 641.2828 743.8385 C 637.3583 742.4476 632.8661 739.9381 628.1787 739.4461 C 621.1476 738.7079 628.2138 747.5401 622.5681 746.8679 C 616.0008 746.0858 612.2685 738.6242 609.4579 735.8028 C 608.5333 734.8744 605.8356 732.0986 603.1668 732.857 C 599.2103 733.9807 600.173 739.6904 599.9992 741.6824 C 599.2438 750.2939 596.7979 758.8952 591.7122 767.0476 C 590.7418 768.605 586.9561 777.1497 582.4579 776.4606 C 579.9494 776.0767 580.311 773.1513 580.2286 772.1164 C 579.9112 768.0537 579.7403 763.9877 571.0933 763.6655 C 571.4305 760.8957 567.8905 759.9893 563.4639 759.438 L 563.4639 762.82 L 560.4122 761.129 C 554.8306 763.2445 553.3689 765.9095 552.9188 769.5841 C 552.7676 770.8084 553.5383 774.5049 550.5628 774.9691 C 547.2837 775.4798 546.3073 771.4425 545.796 770.4287 C 543.0404 764.9719 539.7506 760.4898 529.8935 765.4496 C 527.8122 766.4971 525.8149 767.6048 523.8817 768.7352 C 521.2084 770.2977 519.1042 771.8078 517.6883 773.8116 L 531.4209 772.1206 L 525.3175 776.3481 L 535.9985 777.1936 L 535.9985 778.8846 L 511.6824 778.9624 L 504.4437 781.4186 L 525.3175 785.3654 L 564.9899 791.6864 L 586.3518 796.6402 C 559.3808 796.6335 532.5058 794.1037 505.4813 794.1037 C 497.5362 794.1037 480.8799 792.909 482.1097 800.0028 C 482.8527 804.2921 493.9152 807.3291 499.3778 809.6889 C 512.1112 815.1889 526.4313 821.7407 534.4727 829.6149 L 479.5417 813.5503 C 487.4196 827.2999 486.0785 840.2539 481.0676 854.1346 C 480.274 856.3346 474.7977 865.8118 479.7706 867.1875 C 483.5745 868.2401 492.1025 862.6902 494.8003 861.553 C 509.9841 855.1517 525.4228 848.3141 542.102 843.143 L 505.4813 870.1992 L 551.2571 865.2234 L 601.6105 865.2919 L 635.1795 867.6627 C 627.2357 871.7016 613.1399 870.8232 603.1363 872.1016 C 574.7064 875.7347 543.9238 880.0704 514.6365 880.3452 L 529.895 884.1407 L 549.7312 889.6458 L 503.9554 889.6458 C 514.5541 892.8029 525.5249 895.3606 535.9954 898.7502 C 537.2878 899.1687 546.3819 901.6198 544.4898 902.9549 C 543.2539 903.8283 539.1098 903.2677 537.5107 903.1612 C 529.8905 902.6556 522.2901 901.9115 514.6365 901.5708 C 501.0547 900.9663 484.7051 900.3769 471.9124 897.6764 C 465.9524 896.4183 457.0627 891.8703 450.5549 892.7395 C 442.1275 893.8666 431.0072 902.363 427.6625 906.5559 L 445.9728 903.1739 L 432.4384 908.4828 L 439.8922 911.1926 L 465.8089 911.6289 C 451.3193 919.5631 426.7378 907.3642 412.0147 913.7824 C 408.635 915.2553 410.9679 918.1199 410.8719 920.0848 C 410.7803 921.9407 409.3247 923.5734 407.7103 925.157 C 388.4524 944.0371 384.981 969.0827 380.3607 990.2609 L 387.9901 988.5699 C 373.5799 998.8436 368.4621 1011.585 362.0505 1024.081 L 665.6966 1024.081 L 741.9896 1024.081 L 769.2263 1023.109 L 770.9809 1009.708 L 770.9809 973.3508 L 770.9809 827.0784 L 770.9809 341.7586 L 770.9809 209.8598 L 770.9809 174.3486 L 769.8868 159.736 L 757.2481 158.2841 L 723.6793 158.284 L 583.3001 158.284 L -2.630048 158.284 L -161.3195 158.284 L -199.4658 158.2841 L -212.1042 159.736 L -213.1987 176.8851 L -213.1987 220.0059 L -213.1987 378.1153 L -213.1987 962.3592 L -213.1987 1007.171 L -211.4444 1023.109 L -184.2074 1024.081 L -109.4403 1024.081 L 117.9129 1024.081 L 186.5765 1024.081 L 217.991 1023.734 L 220.919 1017.317 L 207.9386 999.5614 z " fill="#fefffc" id="path604" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 219.1604 C 138.9331 216.2464 140.6161 213.4311 142.8332 210.7053 C 144.2264 208.991 145.7324 207.2953 147.3315 205.6365 C 150.2702 202.5857 161.7662 197.1216 165.3457 203.2756 C 168.2052 208.191 163.4506 214.7057 167.7704 219.5717 C 171.1624 223.3904 173.3503 215.1195 173.5428 214.2647 C 173.8738 212.797 174.1714 211.335 174.3697 209.8598 C 177.2277 213.5088 176.7943 216.9876 177.9494 220.8153 C 178.2332 221.7562 178.7733 223.804 180.8469 224.1238 C 184.8707 224.7442 182.4429 217.4651 182.295 216.6239 C 181.9273 214.5432 181.5184 212.2119 182.5223 210.1681 C 183.2457 208.6969 185.6122 207.2343 184.9561 205.6323 C 183.9415 203.1609 178.305 202.2617 177.0186 199.8523 C 176.2771 198.4656 179.5805 197.1088 178.1889 195.8953 C 176.4357 194.3665 171.0296 194.6345 168.2647 194.4784 C 161.4227 194.0922 137.8803 192.5423 137.7491 198.0228 C 136.4353 197.4322 132.8067 194.9829 130.7469 195.3615 C 127.4098 195.9752 129.9535 200.62 129.8786 201.9422 C 129.4957 208.7471 125.8016 214.394 137.7491 219.1604 z " fill="#fffdff" id="path605" stroke="none" style="fill:#fffdff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 195.4862 L 119.4387 198.0228 L 116.3869 195.4862 z " fill="#53575a" id="path606" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 256.3625 C 185.1972 255.4579 191.0444 254.0585 189.7305 251.4789 C 188.0368 248.1535 177.7037 248.7082 173.6327 246.5522 C 166.9067 242.9926 165.2328 235.8494 165.2145 230.9974 L 159.578 226.7699 L 157.5852 214.0873 L 163.6887 217.4694 C 163.7176 214.8951 164.2059 212.4125 164.7491 209.8597 C 165.5929 205.9003 162.1811 196.8011 151.3948 202.0343 C 145.772 204.7624 143.976 209.5344 141.4142 213.2347 C 140.3843 214.7214 138.5929 217.8493 134.6333 217.1018 C 124.413 215.1725 125.4064 203.9455 119.4387 199.7138 C 120.3862 203.983 125.4628 210.7567 113.3354 208.1688 L 133.1715 221.6969 L 70.61125 213.2418 C 76.97259 221.4751 95.95116 224.9165 110.2836 227.2492 C 113.317 227.7428 126.6117 228.7989 126.6117 231.1481 C 126.6117 233.4719 117.7343 236.0388 114.8612 237.2326 C 105.3886 241.1698 91.33396 245.2729 85.86977 251.2895 C 99.88637 249.9113 115.7735 242.7107 127.0681 238.0714 C 131.7906 236.1318 137.7627 232.577 143.761 232.0356 C 151.4283 231.3435 158.9096 239.6216 161 242.8309 C 161.9995 244.364 163.2279 246.5234 160.8765 247.8804 C 156.9871 250.1261 147.5405 250.6148 142.3266 251.5389 C 128.8975 253.9207 108.5364 257.608 101.1284 264.8176 C 117.9983 263.628 134.5035 260.7051 151.4818 259.3793 C 154.9653 259.1071 165.3885 257.3146 168.074 259.0758 C 169.8563 260.2451 166.6443 262.2828 165.4616 263.1393 C 161.3586 266.107 156.5354 268.7433 152.1563 271.5816 C 136.9038 281.469 129.2744 292.3777 121.9807 304.5563 C 119.7988 308.1996 117.6733 311.8598 115.74 315.5462 C 114.971 317.0115 114.5026 319.5023 111.8857 320.3766 C 108.5913 321.4774 102.6237 319.285 99.6025 318.5993 C 89.8355 316.3824 79.78926 313.9372 69.08531 313.867 C 64.04084 313.8341 58.57823 313.7444 53.95945 315.044 C 51.21905 315.8142 48.63428 317.8037 45.433 317.9052 C 39.98416 318.0785 33.67015 315.2274 27.88714 314.8783 C 15.42849 314.1249 4.590312 315.8066 -7.207637 317.7192 C -13.29582 318.7059 -19.43435 319.6503 -25.44776 320.7714 C -26.97667 321.0564 -30.95764 321.6609 -30.95764 322.8717 C -30.95764 324.8552 -20.07521 324.796 -17.88865 324.8256 C -3.15496 325.026 11.623 324.8485 26.36128 324.8485 C 18.8159 327.2074 9.81333 327.2311 1.947518 329.2535 C -22.79277 335.6151 -44.00528 344.4194 -61.19775 356.1321 C -66.29946 359.608 -72.59012 362.9926 -75.87134 367.1237 L 4.999236 341.7586 C 1.759833 345.2784 -1.046218 348.936 -5.915231 351.8818 C -19.33974 360.0029 -38.24821 366.4355 -45.35413 377.2698 L 26.36128 356.9776 C 17.04133 369.6002 0.136324 381.0788 -2.630048 395.0254 L 15.51394 384.0338 L 38.07378 367.1237 L 58.40432 349.3681 L 67.18264 373.8877 L 68.95876 383.4428 L 46.19746 392.4889 L 78.24051 388.4533 L 108.7577 388.0948 L 130.4829 386.5982 L 125.1988 391.574 L 98.07669 390.7978 L 98.07669 392.4889 L 113.3354 394.1799 C 87.74048 402.6222 69.186 413.6248 50.38904 426.3091 C 40.75472 432.811 29.30772 442.2181 27.88714 450.8287 L 59.93025 433.0959 L 122.4904 402.6349 C 116.6068 420.1639 118.6727 436.6555 120.9646 454.2107 C 128.4824 446.9106 129.9824 437.5526 135.1826 429.6911 C 137.0883 426.8113 138.7377 423.0598 143.0742 420.9739 C 149.0298 418.111 162.1872 417.5437 169.7845 416.7548 C 172.1725 416.5071 178.1614 415.9753 178.0898 418.2057 C 178.0318 420.0083 174.7755 421.7146 172.7248 422.9186 C 166.5999 426.5154 159.334 429.4298 153.3082 433.0815 C 136.0966 443.5151 122.0098 454.6428 116.3869 468.5843 L 154.5336 448.315 L 191.1541 431.3821 L 171.1532 466.8933 L 166.7404 494.795 C 180.9324 482.8319 180.6105 465.4069 200.3094 455.0562 L 203.3611 476.1938 L 200.3094 471.9663 L 188.1024 470.2753 L 202.3584 483.8034 L 208.8694 514.2416 L 213.7369 528.6152 L 214.0832 549.7528 L 215.5268 573.4269 L 209.7619 593.719 L 212.0004 601.3286 L 209.0037 625.8482 L 205.3187 636.2987 L 182.0433 631.2569 L 176.5593 628.0034 L 185.0537 624.9275 L 201.8352 619.0842 C 182.1379 619.0842 164.9155 622.3766 146.9271 626.6447 C 141.4935 627.9332 138.7973 630.1595 138.0558 633.3377 C 137.9215 633.9084 137.8085 635.5267 136.0218 635.2612 C 129.9596 634.3608 126.8574 625.2978 125.0935 622.4662 C 122.8567 618.8745 122.0586 615.1255 120.0338 611.5245 C 118.6544 609.07 115.3113 607.1465 114.1089 604.6607 C 110.897 598.0218 110.3385 588.3036 117.9129 582.7275 L 108.7577 584.4185 L 101.1284 581.0365 L 107.2899 591.1825 L 110.2836 605.5561 L 100.5165 594.7303 L 79.25519 579.3455 L 82.35428 571.7359 L 92.46764 555.6713 L 102.1691 528.6152 L 110.2836 510.014 L 90.2978 526.9241 L 74.0047 556.5168 L 73.66298 575.1179 L 23.30956 538.7612 C 24.58061 543.0352 28.7462 546.7098 31.97035 550.5983 C 42.55523 563.362 60.44893 574.554 76.71471 585.264 C 49.6658 577.0423 22.33607 569.5097 -8.733496 567.0374 C -21.17994 566.0474 -34.32827 566.6629 -46.88 566.6629 L 0.42167 576.7641 L 47.72332 586.3479 L 72.13704 589.6894 L 83.54897 591.306 L 90.011 600.0781 L 101.1528 606.4337 L 105.6984 616.5477 L 125.5421 636.8398 L 75.18878 626.0148 L -16.36279 631.7668 L 21.78371 633.5575 L 67.55952 636.8398 L 40.09401 642.5816 L 21.78371 646.1302 L 4.999236 642.9469 L -31.6214 637.6853 L -4.184898 647.297 L 1.749157 653.4387 L -11.78521 660.5139 C 6.650223 657.8548 19.50101 654.5836 33.99058 663.896 C 25.17416 662.6691 15.64975 661.3282 6.525107 661.3916 C -0.570148 661.4406 -7.932424 662.8644 -14.83693 661.422 C -22.866 659.7445 -30.19319 656.4225 -37.72483 654.1321 C -56.35863 648.4663 -81.94059 641.1553 -103.3368 640.2218 L -66.71617 659.0825 L -23.99209 675.733 L -120.1213 676.5785 L -94.18168 680.6995 L -23.99209 687.5701 L -45.35413 694.187 L -71.29376 703.0268 L -94.18168 711.2442 L -8.733496 699.3869 L 18.73199 696.0251 C 9.544784 700.0827 -1.859492 707.3532 -13.31107 709.1525 C -21.85284 710.4943 -31.80907 708.2097 -40.77656 709.0163 C -59.99781 710.7437 -77.91431 716.3181 -94.18168 721.9669 C -100.465 724.1483 -107.4991 725.8977 -112.492 728.9998 L -36.19897 722.2358 L -75.87134 750.1375 L -46.88 737.9876 L -7.207637 723.9268 L -55.4538 751.8285 L -74.15535 772.9661 L -91.12994 794.9492 L -59.46071 774.6571 L -7.883594 739.9914 L 15.68025 718.8538 L 21.78371 761.9745 L 26.3567 748.4465 L 24.83542 722.2358 L 35.9864 730.668 L 55.31147 743.3734 L 67.55952 752.674 L 62.06494 735.7639 L 47.21826 718.8538 L 57.96178 708.8734 L 71.94483 701.1658 L 78.9851 698.9295 L 81.89954 702.7968 L 79.77095 716.3173 L 95.02496 769.5841 L 101.2978 751.8285 L 104.1802 727.3088 L 103.2737 717.2017 L 106.298 714.1485 L 114.9191 718.0218 L 130.1198 731.5364 C 130.1243 730.3983 129.2119 725.8689 132.7244 725.8706 C 140.4956 725.874 143.8692 733.547 146.361 736.4403 C 148.3339 738.7324 152.1945 740.2467 155.5086 741.9048 C 163.469 745.888 170.0011 751.5951 174.7405 756.9015 C 175.7857 758.0708 179.057 762.3178 174.797 762.837 C 171.5254 763.236 166.5939 760.9599 163.6887 760.2835 L 166.7404 764.5111 C 156.8116 762.7769 148.073 764.5237 140.8008 768.7386 C 153.9231 767.2598 166.3956 764.3792 178.9045 768.7902 C 182.7802 770.1573 191.618 774.3164 187.0359 777.1784 C 182.4109 780.0658 172.8835 781.6241 166.7404 783.3218 C 149.8811 787.9814 133.3454 792.7754 117.9129 798.8115 C 111.9772 801.1333 104.5509 803.0889 101.1284 806.7863 C 109.6137 806.0338 117.356 803.7129 125.5421 802.3322 C 143.3673 799.3239 161.3494 796.3477 178.9473 792.9614 C 185.9861 791.6078 202.7995 786.123 203.2511 794.1105 C 203.4496 797.6278 196.931 800.8416 193.3452 803.4043 C 185.1575 809.2543 173.8249 816.5967 169.7921 823.6964 L 185.0508 818.6234 C 178.8359 826.8205 171.6766 834.5552 167.0959 843.143 C 163.7315 849.4522 162.5671 856.1427 160.341 862.5896 C 158.986 866.5136 158.3253 870.4875 157.0726 874.4132 C 156.656 875.7144 156.0074 877.6193 153.5447 878.2323 C 150.4701 878.9975 146.8782 877.2735 144.7177 876.2809 C 138.248 873.3089 132.1553 870.1028 125.5421 867.2196 C 108.1032 859.6151 88.50656 856.1427 67.55952 853.0219 C 60.82289 852.0183 54.75299 850.2571 47.72332 849.9071 L 120.9646 880.3452 C 98.61992 876.8558 70.28014 877.7487 47.72332 880.4374 C 40.65707 881.2804 32.1275 881.0529 26.36128 883.7273 C 50.82228 884.708 74.98581 887.8863 99.6025 887.9522 C 112.0382 887.9852 125.0524 886.7212 131.6456 893.8733 L 88.9215 890.4913 L 69.08531 892.1823 C 83.17979 895.7055 98.89915 896.4453 113.3354 899.4274 C 115.6241 899.9001 128.5955 901.7881 125.15 904.306 C 122.9055 905.9463 117.2003 904.1386 114.8597 903.5002 C 105.9638 901.0694 97.33661 898.1372 87.3957 897.2553 L 124.0163 917.0402 L 148.4301 926.0025 C 137.3279 926.1065 123.7524 927.0898 113.3354 929.2645 C 107.4867 930.4854 102.5155 932.6769 96.55089 933.7583 C 64.84035 939.5094 33.46874 944.016 4.999236 954.2009 C -2.141788 956.7552 -10.65456 958.8123 -16.36279 962.3592 C -2.565965 961.3023 11.0447 958.4039 24.83542 956.9624 C 47.68823 954.5747 71.15752 953.3893 93.49916 949.7333 C 102.7886 948.2122 112.4641 946.0469 120.9646 943.4757 C 127.0421 941.6367 132.6481 938.8643 139.2749 937.6578 C 146.448 936.3523 154.9134 937.7702 162.1628 938.3164 C 168.5165 938.7958 175.9534 937.7584 181.999 938.8804 C 193.2004 940.9578 206.518 948.6747 213.1219 953.9042 C 218.3755 958.0632 217.0908 963.4677 217.0939 968.2778 C 217.1 976.0657 217.8338 984.1732 218.7951 991.9519 C 219.0683 994.1604 222.9011 1002.015 218.4334 1003.425 C 215.8396 1004.246 211.1414 1001.173 209.4645 1000.407 C 210.9568 1005.379 217.0389 1009.234 219.9274 1013.935 C 221.5676 1016.607 221.183 1020.285 224.1172 1022.627 C 226.5007 1024.538 235.1248 1024.732 237.3663 1022.627 C 239.1867 1020.927 238.7672 1018.374 239.5376 1016.472 C 240.3402 1014.493 241.8203 1012.574 242.2507 1010.553 C 243.1692 1006.241 237.3039 1002.066 235.9503 997.8704 C 233.2236 989.4306 232.3584 980.2222 232.3523 971.6598 C 239.292 979.0816 241.2344 987.6009 246.8862 995.3339 C 250.7252 1000.585 253.484 1006.089 257.0453 1011.399 C 259.1724 1014.578 259.9262 1020.784 264.5281 1023.109 C 268.2146 1024.969 291.2322 1025.358 292.2927 1022.043 C 293.5974 1017.96 291.3376 1012.954 290.6341 1008.862 C 288.9709 999.1776 285.4172 988.1006 287.7701 978.4238 C 288.9908 973.4007 292.5048 969.9662 289.3371 964.9203 C 288.8031 964.0688 287.3459 961.8933 289.9658 961.5687 C 292.9595 961.1983 297.0381 962.9232 299.4918 963.6596 C 307.0508 965.9289 314.7793 968.0038 322.3781 970.2283 C 333.1828 973.3905 344.1201 976.5197 354.4196 980.1706 C 358.1976 981.5108 363.9777 983.2423 364.1089 986.0866 C 364.5299 995.2544 356.2659 1005.176 352.1232 1013.935 C 351.2443 1015.795 345.8351 1022.128 349.5459 1023.472 C 354.83 1025.4 361.5515 1023.388 363.796 1020.615 C 369.434 1013.656 370.3557 1005.793 375.3864 998.7159 C 377.9073 995.1699 382.6557 992.5192 386.4642 989.4154 L 378.8349 990.2609 C 388.4386 968.5534 387.7245 946.2828 407.1244 926.0025 C 408.902 924.1432 410.3728 922.2273 410.321 920.0848 C 410.2708 918.0378 408.046 915.2147 411.6973 913.7376 C 419.9584 910.3962 430.8529 912.4042 439.8693 913.0536 C 447.3979 913.5947 455.1798 913.3199 462.7572 913.3199 L 438.3876 911.0455 L 432.9022 908.3653 L 442.921 904.0194 L 426.1365 907.4014 L 442.8464 896.4259 L 451.0158 892.8621 L 461.2328 895.0579 L 476.4899 897.9833 L 548.2055 903.1739 C 543.5819 900.4776 537.1337 898.9692 531.4209 897.0845 C 512.2362 890.7576 488.2726 887.1888 465.8089 887.1093 C 472.4632 883.6757 481.0463 887.0399 488.6968 887.6715 C 507.8601 889.2535 527.3637 888.8003 546.6794 888.8003 C 531.6986 881.6828 503.0446 880.5228 484.1193 880.3452 L 499.3778 879.3137 L 523.7915 879.2419 L 589.4036 873.3504 L 633.6535 869.3537 C 623.4074 865.625 605.8982 865.9826 593.9811 865.9725 C 562.7072 865.9446 534.2651 866.2777 503.9554 871.0447 L 540.576 843.9885 L 507.0071 856.3033 L 476.4899 870.1992 C 476.522 861.6038 481.6443 853.3373 483.6386 844.834 C 485.9061 835.1598 484.8456 822.8754 479.5417 813.5503 L 534.4727 829.6149 C 528.0045 821.1853 512.1752 814.8034 499.3778 809.4353 C 494.3151 807.3114 483.9179 804.4662 482.3629 800.768 C 479.1007 793.0088 497.2004 793.2582 505.4813 793.2582 C 532.0846 793.2582 558.2792 795.7947 584.826 795.7947 L 558.8864 790.9508 L 499.3778 783.1122 C 509.9398 776.4927 521.9255 778.8686 535.9985 778.8846 L 535.9985 777.1936 L 522.2657 776.3481 L 529.895 772.9661 L 516.1623 774.6571 C 521.9025 769.4801 541.9188 762.826 529.895 756.9015 C 527.7405 764.0756 516.2783 770.4042 506.8484 775.0866 C 505.4981 775.7571 494.9697 781.4465 494.6171 778.5219 C 493.6208 770.2385 506.2 759.6426 517.6896 755.2409 C 521.0772 753.9431 527.5772 750.687 532.068 752.006 C 536.3235 753.2557 537.1215 757.1543 538.2995 759.438 C 541.165 764.9972 547.0457 769.8876 549.7312 775.5026 L 551.3471 766.2021 L 553.3689 743.4732 L 571.0917 732.567 L 580.5048 730.5336 L 580.2483 743.3734 L 583.3001 776.3481 C 595.9343 768.0334 595.3316 756.0459 597.4983 745.9099 C 598.6992 740.2907 601.2306 734.6478 601.6105 728.9998 C 606.8488 733.3052 611.1242 738.0011 615.752 742.5152 C 616.7242 743.4639 619.5195 747.0734 622.3286 746.6455 C 626.6941 745.981 619.4737 737.6417 627.8796 739.2634 C 644.9113 742.5499 657.2296 752.2436 674.8517 755.2105 C 669.2289 746.6362 654.6998 737.4557 641.2828 732.337 C 629.2254 727.7358 618.8803 728.3048 613.8173 719.6993 L 648.9121 723.9268 L 614.2506 714.5612 L 603.0967 703.6474 L 605.0498 699.0842 L 616.869 701.6833 L 635.1795 705.4145 L 699.2654 711.2442 C 689.5518 705.4855 672.9262 701.4516 659.5932 699.0191 C 651.3275 697.5115 641.5452 697.0643 635.1795 693.4886 L 699.2654 686.5699 L 737.4119 685.0336 C 730.1199 682.3804 719.9058 681.9069 711.4724 681.0369 C 685.6379 678.3702 655.7739 679.0956 630.6018 683.258 C 622.1395 684.6573 614.0737 686.93 606.1881 689.1055 C 602.6389 690.0846 598.3527 691.7968 594.1779 691.5144 C 589.9437 691.2278 583.5749 686.4862 588.8283 684.7943 C 594.0041 683.1261 603.2918 683.2893 609.2397 682.2206 C 630.1943 678.4547 652.7619 674.0834 674.8517 673.1965 C 668.6125 671.0007 660.6552 670.8908 653.4897 670.5721 C 638.5867 669.9083 622.4353 669.4949 607.714 671.437 C 604.0869 671.9147 587.5069 675.6535 588.4361 670.7555 C 589.251 666.4528 604.1937 664.8886 607.714 660.5139 L 589.4036 664.7415 L 595.6261 656.8757 L 582.9812 662.6827 L 577.186 656.2864 L 564.9899 641.0673 L 615.3432 655.5483 L 632.976 658.6369 L 621.4054 648.6769 L 572.6192 626.6937 L 632.1277 620.7752 L 632.1277 619.0842 C 608.2631 618.5921 582.7279 615.0063 558.8864 618.2387 L 580.2483 609.7836 C 568.8793 610.2791 556.4877 612.1604 546.6794 615.3758 C 542.3598 616.792 534.3796 621.2986 529.0345 620.4395 C 518.4495 618.7384 518.5305 611.5668 514.0978 607.2699 C 509.888 603.1887 501.7765 600.2066 494.8003 597.709 C 482.8299 593.424 468.9339 589.6395 455.128 587.6153 C 442.2771 585.7316 427.2795 585.2936 415.4571 581.6943 C 405.8411 578.7663 400.9247 572.9171 393.3915 568.7428 C 383.9695 563.5227 371.8449 560.2506 360.5247 556.5168 L 378.8349 553.9803 L 371.2056 550.5983 L 357.4729 554.8258 C 363.056 545.1287 362.1359 536.0869 360.6833 526.0786 C 360.0379 521.6296 359.9462 516.0848 354.4212 512.5506 L 348.3177 553.9803 L 331.2677 544.7626 L 306.9882 537.7838 L 307.8687 528.6152 L 321.2811 505.7865 L 322.4194 485.4944 L 324.792 473.6641 L 327.1677 469.6074 L 336.1169 471.1369 L 357.4729 477.8849 L 337.6673 463.677 L 328.9485 456.0286 L 339.924 450.9276 L 380.3607 438.1461 C 370.9996 438.8961 363.3033 442.1166 354.4273 443.7527 C 349.105 444.7343 344.7137 445.1055 343.7402 441.5281 L 331.0099 449.0506 L 329.7129 442.3736 L 334.1197 422.0815 L 338.4316 412.8841 L 348.3192 415.003 L 371.2056 422.927 L 352.8038 409.0836 L 338.2715 399.252 L 342.8019 388.2858 L 346.8591 385.2471 L 369.6797 400.9439 L 355.947 377.2698 L 378.2734 379.0901 L 397.1498 390.7471 L 438.3435 408.7378 L 461.2313 418.6995 C 451.8214 403.8355 428.0957 394.0057 412.4038 381.4973 L 446.7037 388.9225 L 451.3971 396.7164 L 458.3216 406.0169 L 495.7875 434.7641 L 522.2657 457.5927 C 521.0177 439.1726 504.1752 417.9411 486.4538 402.6349 C 482.2135 398.9722 476.3404 396.0636 471.9124 392.4889 L 493.2743 395.8709 L 476.4899 388.2613 L 522.2657 404.271 L 577.1966 419.485 L 609.2397 427.1546 C 599.7917 419.5349 584.2828 414.6487 571.0933 409.2544 C 551.0343 401.0496 532.5668 391.4954 508.533 386.8671 C 502.5973 385.724 496.5337 384.4219 490.2226 384.1395 C 479.5081 383.6601 469.3886 384.6899 459.7054 381.4973 L 505.4813 378.4898 L 583.3001 374.7332 C 573.0189 371.0764 558.5736 369.8572 546.6794 368.9314 C 517.8513 366.6857 492.8212 367.5583 464.2831 370.5057 L 499.3778 351.9046 C 485.9961 353.331 473.7648 355.8303 462.7572 360.4197 C 457.8592 362.4616 449.8042 368.5619 443.388 368.5619 C 437.8628 368.5611 432.3423 363.3807 429.0159 361.3836 C 427.7859 360.6446 424.1025 358.9832 425.273 357.7555 C 426.3777 356.5972 430.2473 356.4374 432.2539 356.2598 C 438.8669 355.6756 445.3777 355.2942 452.0762 355.2866 L 413.9298 351.9672 L 378.8349 338.5541 L 360.7427 332.9738 L 357.6712 329.5232 L 366.6295 327.1288 L 392.5677 325.2137 L 415.4556 324.0029 C 402.4109 320.3157 383.9557 320.6209 369.6797 320.6209 L 439.8693 300.3288 C 419.7921 300.3288 401.5093 304.1682 381.8866 305.0586 C 375.6412 305.3427 366.4129 303.1672 364.8704 299.43 C 363.5473 296.2239 368.839 291.4037 371.0118 288.4917 C 373.1282 285.6534 375.2217 282.7702 377.7653 280.0392 C 381.7768 275.7339 389.0017 273.632 394.0936 269.8906 L 383.4125 270.7361 L 398.961 249.5985 L 406.7383 243.0873 L 423.9516 251.2895 L 461.2313 274.1182 C 457.0703 263.1215 444.5399 253.0059 433.862 243.68 C 424.5833 235.5769 416.2215 227.2735 404.7745 220.0059 L 455.128 224.5055 L 502.4296 227.6154 C 494.6492 222.343 480.1505 218.9202 468.8606 216.5777 C 452.5141 213.1864 436.102 209.7827 418.5073 209.1115 C 410.2372 208.796 402.2721 209.6841 394.1058 209.6691 C 378.188 209.6397 391.7208 199.9148 383.8443 196.5851 C 379.407 194.7099 373.821 197.035 369.6797 197.9818 C 362.4762 199.6288 354.2227 198.707 346.7918 200.2245 C 320.7516 205.5417 296.9145 219.0708 278.5782 230.205 C 270.923 234.854 264.1787 241.076 254.9397 244.7876 C 247.344 247.8399 235.1325 247.2404 226.2489 248.5763 C 217.5591 249.8834 211.2482 253.4709 203.0192 255.0672 C 196.8044 256.2729 188.5633 256.229 181.999 256.3625 z " fill="#000200" id="path607" stroke="none" style="fill:#000200;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 195.4862 L 384.9384 196.3317 L 383.4125 195.4862 z " fill="#6a7676" id="path608" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 197.1772 L 384.9384 204.7868 C 388.9361 203.0314 388.4142 199.548 386.4642 197.1772 z " fill="#3c3837" id="path609" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 198.0228 L 119.4387 204.7868 L 116.3869 198.0228 z " fill="#dcd5e1" id="path610" stroke="none" style="fill:#dcd5e1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 118.421 198.5864 L 118.9306 199.1501 L 118.421 198.5864 z " fill="#1f1717" id="path611" stroke="none" style="fill:#1f1717;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 355.947 198.0228 L 365.1022 198.8683 L 355.947 198.0228 z " fill="#83888b" id="path612" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 198.0228 L 371.2056 198.8683 L 365.1022 198.0228 z " fill="#c8c5ca" id="path613" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 198.8683 L 120.9646 199.7138 L 119.4387 198.8683 z " fill="#777c7e" id="path614" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 350.8613 199.1501 L 351.8775 199.432 L 350.8613 199.1501 z " fill="#63686a" id="path615" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 118.421 200.2775 L 118.9306 200.8411 L 118.421 200.2775 z " fill="#807b7a" id="path616" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 153.0076 199.7138 L 157.5852 200.5593 L 153.0076 199.7138 z " fill="#b8bec0" id="path617" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 200.5593 L 165.2145 201.4048 L 157.5852 200.5593 z " fill="#82928c" id="path618" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 201.4048 L 151.4818 202.2503 L 149.956 201.4048 z " fill="#8f9099" id="path619" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 201.4048 L 165.2145 205.6323 L 165.2145 201.4048 z " fill="#5c5a5d" id="path620" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.9986 202.814 L 123.5081 203.3776 L 122.9986 202.814 z " fill="#857f8a" id="path621" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 202.2503 L 339.1625 203.0958 L 337.6368 202.2503 z " fill="#63686a" id="path622" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 203.0958 L 149.956 203.9413 L 148.4301 203.0958 z " fill="#777c7e" id="path623" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 203.0958 L 336.1108 203.9413 L 334.5851 203.0958 z " fill="#8f9099" id="path624" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 204.7868 L 386.4642 209.0143 L 384.9384 204.7868 z " fill="#686c6f" id="path625" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.5244 206.196 L 125.0341 206.7596 L 124.5244 206.196 z " fill="#5c5a5d" id="path626" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 205.6323 L 328.4816 206.4778 L 326.9558 205.6323 z " fill="#989d9f" id="path627" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 206.4778 L 117.9129 209.8598 L 119.4387 206.4778 z " fill="#d2d8da" id="path628" stroke="none" style="fill:#d2d8da;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 206.4778 L 119.4387 210.7053 L 120.9646 206.4778 z " fill="#5c5a5d" id="path629" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 207.3233 L 323.904 208.1688 L 322.3781 207.3233 z " fill="#96a3a3" id="path630" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 126.0504 208.7325 L 126.5599 209.2961 L 126.0504 208.7325 z " fill="#857f8a" id="path631" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 208.1688 L 322.3781 209.0143 L 320.8523 208.1688 z " fill="#686c6f" id="path632" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 213.2418 L 351.3695 208.1688 L 336.1108 213.2418 z " fill="#373b3d" id="path633" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 208.1688 L 416.9814 209.0143 L 400.1969 208.1688 z " fill="#5c5a5d" id="path634" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 417.9992 208.4506 L 419.0153 208.7325 L 417.9992 208.4506 z " fill="#aeb3b5" id="path635" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 209.0143 L 148.4301 213.2418 L 151.4818 209.0143 z " fill="#484c4e" id="path636" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 387.9901 209.0143 L 389.5159 209.8598 L 387.9901 209.0143 z " fill="#857f8a" id="path637" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 396.6371 209.2961 L 397.6534 209.578 L 396.6371 209.2961 z " fill="#45453d" id="path638" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.1025 209.2961 L 425.1188 209.578 L 424.1025 209.2961 z " fill="#686c6f" id="path639" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 209.8598 L 119.4387 213.2418 L 113.3354 209.8598 z " fill="#a6b2b3" id="path640" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.8348 210.4235 L 143.3443 210.9871 L 142.8348 210.4235 z " fill="#373b3d" id="path641" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 209.8598 L 317.8005 210.7053 L 316.2746 209.8598 z " fill="#a0a5a8" id="path642" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 392.0595 210.1416 L 393.0757 210.4235 L 392.0595 210.1416 z " fill="#626657" id="path643" stroke="none" style="fill:#626657;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 433.2578 210.1416 L 434.274 210.4235 L 433.2578 210.1416 z " fill="#807b7a" id="path644" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 163.6887 210.7053 L 163.6887 217.4694 L 163.6887 210.7053 z " fill="#413b45" id="path645" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 210.7053 L 316.2746 211.5508 L 314.7488 210.7053 z " fill="#686c6f" id="path646" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 440.8871 210.9871 L 441.9032 211.269 L 440.8871 210.9871 z " fill="#989d9f" id="path647" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.5761 212.1145 L 128.0858 212.6781 L 127.5761 212.1145 z " fill="#5d5e66" id="path648" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 141.3089 212.1145 L 141.8185 212.6781 L 141.3089 212.1145 z " fill="#63686a" id="path649" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 211.5508 L 165.2145 214.9329 L 165.2145 211.5508 z " fill="#8f9099" id="path650" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 212.3963 L 311.6971 213.2418 L 310.1711 212.3963 z " fill="#91988e" id="path651" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 212.3963 L 450.5503 213.2418 L 449.0245 212.3963 z " fill="#596465" id="path652" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 213.2418 L 120.9646 214.0873 L 119.4387 213.2418 z " fill="#807b7a" id="path653" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 224.2334 C 316.2762 222.5635 329.1804 218.0597 336.1108 213.2418 L 305.5937 224.2334 z " fill="#6a7676" id="path654" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 454.6198 213.5236 L 455.636 213.8055 L 454.6198 213.5236 z " fill="#b5babd" id="path655" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 76.71471 214.0873 L 78.24051 214.9329 L 76.71471 214.0873 z " fill="#8a9697" id="path656" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 214.0873 L 130.1198 214.9329 L 128.5939 214.0873 z " fill="#888d90" id="path657" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.7831 214.651 L 140.2926 215.2147 L 139.7831 214.651 z " fill="#74787b" id="path658" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 214.0873 L 165.2145 218.3149 L 157.5852 214.0873 z " fill="#857f8a" id="path659" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 214.0873 L 308.6453 214.9329 L 307.1196 214.0873 z " fill="#73837d" id="path660" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 214.0873 L 354.4212 223.3879 L 362.0505 214.0873 z " fill="#434749" id="path661" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 214.0873 L 459.7054 214.9329 L 458.1796 214.0873 z " fill="#83888b" id="path662" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 70.61125 214.9329 C 70.97287 218.0564 72.78096 219.8147 78.24051 220.8514 L 70.61125 214.9329 z " fill="#c7cdcf" id="path663" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 80.78417 215.2147 L 81.80031 215.4965 L 80.78417 215.2147 z " fill="#97a4a4" id="path664" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.4904 214.9329 L 124.0163 215.7784 L 122.4904 214.9329 z " fill="#857f8a" id="path665" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 214.9329 L 165.2145 218.3149 L 165.2145 214.9329 z " fill="#cacfd1" id="path666" stroke="none" style="fill:#cacfd1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 214.9329 L 307.1196 215.7784 L 305.5937 214.9329 z " fill="#989d9f" id="path667" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.13704 215.7784 L 76.71471 219.1604 L 72.13704 215.7784 z " fill="#716667" id="path668" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 86.8875 216.0602 L 87.90377 216.3421 L 86.8875 216.0602 z " fill="#92a39c" id="path669" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 215.7784 L 125.5421 216.6239 L 124.0163 215.7784 z " fill="#8f9099" id="path670" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 215.7784 L 131.6456 216.6239 L 130.1198 215.7784 z " fill="#596465" id="path671" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 215.7784 L 305.5937 216.6239 L 304.0679 215.7784 z " fill="#92a39c" id="path672" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 215.7784 L 349.8435 217.4694 L 345.266 215.7784 z " fill="#8f9099" id="path673" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 466.8267 216.0602 L 467.843 216.3421 L 466.8267 216.0602 z " fill="#9aaba5" id="path674" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 216.6239 L 96.55089 217.4694 L 91.97323 216.6239 z " fill="#596465" id="path675" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 216.6239 L 127.0681 217.4694 L 125.5421 216.6239 z " fill="#90878d" id="path676" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 216.6239 L 133.1715 217.4694 L 131.6456 216.6239 z " fill="#807b7a" id="path677" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 138.2571 217.1876 L 138.7668 217.7512 L 138.2571 217.1876 z " fill="#82928c" id="path678" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 218.3149 L 165.2145 219.1604 C 162.4925 217.7996 158.9601 216.4796 156.0593 218.3149 z " fill="#c3c5c2" id="path679" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 216.6239 L 304.0679 217.4694 L 302.5419 216.6239 z " fill="#82928c" id="path680" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 343.232 216.9057 L 344.2483 217.1876 L 343.232 216.9057 z " fill="#a0a5a8" id="path681" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 247.062 L 308.6453 254.1786 L 322.3781 258.0536 L 249.1368 257.2081 L 287.2833 282.5732 L 223.1971 263.1266 L 230.7839 279.1912 L 234.101 285.6652 L 243.0395 286.3915 L 256.7188 288.7429 L 269.4887 295.0901 L 305.5937 291.5085 L 334.5851 294.5963 L 346.8636 295.1036 L 352.7702 280.0367 L 355.889 263.1266 L 354.0321 254.6715 L 358.5517 247.062 L 357.4729 229.3064 L 328.4816 246.2165 L 338.9718 228.4609 L 348.3177 216.6239 C 332.8302 218.8988 319.2653 224.1748 305.5937 228.6153 C 289.7979 233.7459 271.9943 238.4693 261.3437 247.062 z " fill="#fefffc" id="path682" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 216.6239 L 392.5677 220.8514 L 386.4642 216.6239 z " fill="#373b3d" id="path683" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 470.3865 216.6239 L 471.9124 217.4694 L 470.3865 216.6239 z " fill="#6a7676" id="path684" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 217.4694 L 104.1802 218.3149 L 99.6025 217.4694 z " fill="#42514b" id="path685" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.1979 217.7512 L 106.2142 218.0331 L 105.1979 217.7512 z " fill="#b5babd" id="path686" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 217.4694 L 128.5939 218.3149 L 127.0681 217.4694 z " fill="#857f8a" id="path687" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 133.1715 217.4694 L 134.6973 218.3149 L 133.1715 217.4694 z " fill="#7a8686" id="path688" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 155.0416 218.0331 L 155.5512 218.5967 L 155.0416 218.0331 z " fill="#394444" id="path689" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 217.4694 L 302.5419 218.3149 L 301.0161 217.4694 z " fill="#74787b" id="path690" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 340.1803 217.7512 L 341.1966 218.0331 L 340.1803 217.7512 z " fill="#a4a9ac" id="path691" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 218.3149 L 113.3354 219.1604 L 108.7577 218.3149 z " fill="#575f5b" id="path692" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 218.3149 L 130.1198 219.1604 L 128.5939 218.3149 z " fill="#857f8a" id="path693" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 218.3149 L 136.2231 219.1604 L 134.6973 218.3149 z " fill="#7a8686" id="path694" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 218.3149 L 301.0161 219.1604 L 299.4902 218.3149 z " fill="#6a7676" id="path695" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 218.3149 L 337.6368 219.1604 L 336.1108 218.3149 z " fill="#716667" id="path696" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 218.3149 L 374.2573 220.0059 L 371.2056 218.3149 z " fill="#7a8686" id="path697" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 76.71471 219.1604 L 81.29224 220.8514 L 76.71471 219.1604 z " fill="#575f5b" id="path698" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.4048 219.4422 L 118.421 219.7241 L 117.4048 219.4422 z " fill="#92a39c" id="path699" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 219.1604 L 131.6456 220.0059 L 130.1198 219.1604 z " fill="#736c77" id="path700" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 219.1604 L 299.4902 220.0059 L 297.9644 219.1604 z " fill="#63686a" id="path701" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 219.1604 L 334.5851 220.0059 L 333.0591 219.1604 z " fill="#716667" id="path702" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 243.68 L 371.3291 225.9252 L 370.1176 220.3734 L 363.0393 225.9252 L 365.1022 243.68 z " fill="#fefffc" id="path703" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.29224 220.0059 L 87.3957 222.5424 L 81.29224 220.0059 z " fill="#2b332f" id="path704" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 123.5081 220.2877 L 124.5244 220.5696 L 123.5081 220.2877 z " fill="#97a4a4" id="path705" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.5675 220.5696 L 157.0771 221.1332 L 156.5675 220.5696 z " fill="#595a63" id="path706" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 220.0059 L 297.9644 220.8514 L 296.4385 220.0059 z " fill="#63686a" id="path707" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 220.0059 L 331.5333 220.8514 L 330.0074 220.0059 z " fill="#5c5a5d" id="path708" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 220.0059 L 346.7918 220.8514 L 345.266 220.0059 z " fill="#8a9697" id="path709" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 220.0059 L 368.1539 220.8514 L 366.6279 220.0059 z " fill="#595a63" id="path710" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 373.2397 220.5696 L 373.7492 221.1332 L 373.2397 220.5696 z " fill="#45453d" id="path711" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 392.5677 220.0059 L 401.7228 227.6154 L 392.5677 220.0059 z " fill="#777c7e" id="path712" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 405.7923 220.2877 L 406.8086 220.5696 L 405.7923 220.2877 z " fill="#686c6f" id="path713" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 220.0059 L 484.1193 220.8514 L 482.5934 220.0059 z " fill="#74787b" id="path714" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 220.8514 L 84.34397 222.5424 L 78.24051 220.8514 z " fill="#a6bab9" id="path715" stroke="none" style="fill:#a6bab9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 220.8514 L 133.1715 221.6969 L 127.0681 220.8514 z " fill="#b8bec0" id="path716" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 220.8514 L 296.4385 221.6969 L 294.9126 220.8514 z " fill="#596465" id="path717" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 220.8514 L 366.6279 221.6969 L 365.1022 220.8514 z " fill="#5c5a5d" id="path718" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.3699 221.1332 L 411.386 221.4151 L 410.3699 221.1332 z " fill="#adaeb8" id="path719" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 412.4038 220.8514 L 416.9814 221.6969 L 412.4038 220.8514 z " fill="#74787b" id="path720" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 220.8514 L 487.1709 221.6969 L 485.6452 220.8514 z " fill="#888d90" id="path721" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 221.6969 L 151.4818 222.5424 L 149.956 221.6969 z " fill="#686c6f" id="path722" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 221.6969 C 146.2251 225.7529 149.8049 228.8861 156.0593 231.843 L 151.4818 221.6969 z " fill="#fdfbff" id="path723" stroke="none" style="fill:#fdfbff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 221.6969 L 294.9126 222.5424 L 293.3867 221.6969 z " fill="#596465" id="path724" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 221.6969 L 326.9558 222.5424 L 325.4298 221.6969 z " fill="#a19ea2" id="path725" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 343.7402 221.6969 L 345.266 222.5424 L 343.7402 221.6969 z " fill="#596465" id="path726" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 379.8527 221.9787 L 380.8689 222.2606 L 379.8527 221.9787 z " fill="#4d4b4f" id="path727" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 422.5767 221.9787 L 423.593 222.2606 L 422.5767 221.9787 z " fill="#888d90" id="path728" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.6108 221.6969 L 429.1882 222.5424 L 424.6108 221.6969 z " fill="#434749" id="path729" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 84.34397 222.5424 L 88.9215 223.3879 L 84.34397 222.5424 z " fill="#a1b2ab" id="path730" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 153.5158 223.1061 L 154.0254 223.6697 L 153.5158 223.1061 z " fill="#a0a5a8" id="path731" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 222.5424 L 157.5852 225.0789 L 157.5852 222.5424 z " fill="#888d90" id="path732" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 222.5424 L 293.3867 223.3879 L 291.8609 222.5424 z " fill="#575f5b" id="path733" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 222.5424 L 323.904 223.3879 L 322.3781 222.5424 z " fill="#90878d" id="path734" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.8953 222.5424 L 343.7402 231.843 C 348.0782 229.7122 354.1282 225.9996 352.8953 222.5424 z " fill="#63686a" id="path735" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 289.3372 L 372.405 274.9637 L 384.3142 240.298 L 386.4932 227.6286 L 381.0169 223.7554 L 377.3152 227.6286 L 372.9954 239.4525 L 371.6527 248.753 L 374.065 255.517 L 368.6818 263.1266 L 362.0505 289.3372 z " fill="#fefffc" id="path736" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 428.6802 222.8242 L 429.6964 223.1061 L 428.6802 222.8242 z " fill="#c8c5ca" id="path737" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 431.7319 222.8242 L 432.7481 223.1061 L 431.7319 222.8242 z " fill="#8f9099" id="path738" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 89.93923 223.6697 L 90.9555 223.9516 L 89.93923 223.6697 z " fill="#82928c" id="path739" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 223.3879 L 122.4904 225.9244 L 113.3354 223.3879 z " fill="#4c5450" id="path740" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 223.3879 L 320.8523 224.2334 L 319.3263 223.3879 z " fill="#716667" id="path741" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 223.3879 L 371.2056 225.9244 L 371.2056 223.3879 z " fill="#7a8686" id="path742" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 377.3091 223.3879 L 377.3091 225.9244 L 377.3091 223.3879 z " fill="#5d5e66" id="path743" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 223.3879 L 410.878 224.2334 L 409.3521 223.3879 z " fill="#686c6f" id="path744" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 223.3879 L 442.921 224.2334 L 438.3435 223.3879 z " fill="#b8bec0" id="path745" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 443.9387 223.6697 L 444.955 223.9516 L 443.9387 223.6697 z " fill="#686c6f" id="path746" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 223.3879 L 494.8003 224.2334 L 493.2743 223.3879 z " fill="#63686a" id="path747" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 92.99096 224.5152 L 94.00724 224.7971 L 92.99096 224.5152 z " fill="#a8aeb0" id="path748" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.0427 224.5152 L 97.05897 224.7971 L 96.0427 224.5152 z " fill="#434749" id="path749" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 224.2334 L 290.3351 225.0789 L 288.8092 224.2334 z " fill="#53575a" id="path750" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.878 224.2334 L 412.4038 225.0789 L 410.878 224.2334 z " fill="#7a8686" id="path751" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 224.2334 L 453.602 225.0789 L 449.0245 224.2334 z " fill="#a8aeb0" id="path752" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 224.2334 L 458.1796 225.0789 L 453.602 224.2334 z " fill="#484c4e" id="path753" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 224.2334 L 497.852 225.0789 L 496.3261 224.2334 z " fill="#a0a5a8" id="path754" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.55089 225.0789 L 101.1284 225.9244 L 96.55089 225.0789 z " fill="#a4b5ae" id="path755" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.4904 225.0789 L 133.1715 227.6154 L 122.4904 225.0789 z " fill="#6a7676" id="path756" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 155.0416 225.6426 L 155.5512 226.2062 L 155.0416 225.6426 z " fill="#7a8686" id="path757" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 225.0789 L 316.2746 225.9244 L 314.7488 225.0789 z " fill="#8f9099" id="path758" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 456.6537 225.0789 L 461.2313 225.9244 L 456.6537 225.0789 z " fill="#c2ccc7" id="path759" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.2491 225.3607 L 463.2653 225.6426 L 462.2491 225.3607 z " fill="#63736d" id="path760" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 103.6721 226.2062 L 104.6882 226.4881 L 103.6721 226.2062 z " fill="#6a7676" id="path761" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.6193 226.4881 L 160.1288 227.0517 L 159.6193 226.4881 z " fill="#90878d" id="path762" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 225.9244 L 287.2833 226.7699 L 285.7574 225.9244 z " fill="#53575a" id="path763" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 225.9244 L 313.2229 226.7699 L 311.6971 225.9244 z " fill="#716667" id="path764" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 225.9244 L 362.0505 230.1519 L 362.0505 225.9244 z " fill="#c8c5ca" id="path765" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 375.7832 225.9244 L 375.7832 228.4609 L 375.7832 225.9244 z " fill="#413b45" id="path766" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 469.8784 226.2062 L 470.8946 226.4881 L 469.8784 226.2062 z " fill="#96a3a3" id="path767" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 225.9244 L 478.0159 226.7699 L 471.9124 225.9244 z " fill="#434749" id="path768" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.2496 227.0517 L 109.2659 227.3336 L 108.2496 227.0517 z " fill="#a19ea2" id="path769" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 226.7699 L 387.9901 227.6154 L 386.4642 226.7699 z " fill="#97a4a4" id="path770" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.7228 226.7699 L 416.9814 237.7615 L 401.7228 226.7699 z " fill="#9facad" id="path771" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 226.7699 L 415.4556 227.6154 L 413.9298 226.7699 z " fill="#6a7676" id="path772" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 226.7699 L 487.1709 227.6154 L 479.5417 226.7699 z " fill="#63686a" id="path773" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 502.4296 226.7699 L 493.2743 228.4609 C 495.8989 229.4376 504.7795 229.5201 502.4296 226.7699 z " fill="#91988e" id="path774" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.3531 227.8972 L 115.3692 228.1791 L 114.3531 227.8972 z " fill="#686c6f" id="path775" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.5675 228.1791 L 157.0771 228.7427 L 156.5675 228.1791 z " fill="#4f5058" id="path776" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 227.6154 L 308.6453 228.4609 L 307.1196 227.6154 z " fill="#a19ea2" id="path777" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 388.4982 228.1791 L 389.0078 228.7427 L 388.4982 228.1791 z " fill="#484c4e" id="path778" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 488.6968 227.6154 L 493.2743 228.4609 L 488.6968 227.6154 z " fill="#83888b" id="path779" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 227.6154 L 500.9038 228.4609 L 493.2743 227.6154 z " fill="#394444" id="path780" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 118.9306 228.7427 L 119.9469 229.0246 L 118.9306 228.7427 z " fill="#90878d" id="path781" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 228.4609 L 151.4818 229.3064 L 149.956 228.4609 z " fill="#596465" id="path782" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 228.4609 L 305.5937 229.3064 L 304.0679 228.4609 z " fill="#736c77" id="path783" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 228.4609 L 339.1625 229.3064 L 337.6368 228.4609 z " fill="#83888b" id="path784" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 356.9647 228.7427 L 357.981 229.0246 L 356.9647 228.7427 z " fill="#5c5a5d" id="path785" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 370.1879 229.0246 L 370.6975 229.5882 L 370.1879 229.0246 z " fill="#959a9c" id="path786" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 376.2913 229.0246 L 376.8009 229.5882 L 376.2913 229.0246 z " fill="#b0b5b7" id="path787" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.0341 229.5882 L 126.0504 229.8701 L 125.0341 229.5882 z " fill="#434749" id="path788" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 229.3064 L 153.0076 230.1519 L 151.4818 229.3064 z " fill="#8a9697" id="path789" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 229.3064 L 156.0593 233.534 L 156.0593 229.3064 z " fill="#a8aeb0" id="path790" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 229.3064 L 163.6887 231.843 L 160.6369 229.3064 z " fill="#63736d" id="path791" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 230.9974 L 293.3867 229.3064 L 287.2833 230.9974 z " fill="#262e2a" id="path792" stroke="none" style="fill:#262e2a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 229.3064 L 355.947 230.1519 L 354.4212 229.3064 z " fill="#686c6f" id="path793" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 357.981 229.8701 L 358.4906 230.4337 L 357.981 229.8701 z " fill="#a0a5a8" id="path794" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.9723 229.8701 L 387.4819 230.4337 L 386.9723 229.8701 z " fill="#c8c5ca" id="path795" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 129.1019 230.7156 L 129.6116 231.2793 L 129.1019 230.7156 z " fill="#575f5b" id="path796" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 144.8703 230.4337 L 145.8864 230.7156 L 144.8703 230.4337 z " fill="#a0a5a8" id="path797" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 163.6887 230.1519 L 165.2145 236.0705 L 163.6887 230.1519 z " fill="#231c21" id="path798" stroke="none" style="fill:#231c21;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 230.1519 L 301.0161 230.9974 L 299.4902 230.1519 z " fill="#807b7a" id="path799" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.8953 230.1519 L 354.4212 230.9974 L 352.8953 230.1519 z " fill="#716667" id="path800" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 230.1519 L 362.0505 232.6885 L 362.0505 230.1519 z " fill="#857f8a" id="path801" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 369.6797 230.1519 L 369.6797 232.6885 L 369.6797 230.1519 z " fill="#595a63" id="path802" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 418.5073 230.1519 L 420.0331 230.9974 L 418.5073 230.1519 z " fill="#91988e" id="path803" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 230.9974 L 166.7404 235.225 L 166.7404 230.9974 z " fill="#c8c5ca" id="path804" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.3695 230.9974 L 352.8953 231.843 L 351.3695 230.9974 z " fill="#716667" id="path805" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.2573 230.9974 L 374.2573 233.534 L 374.2573 230.9974 z " fill="#63686a" id="path806" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.9723 231.5611 L 387.4819 232.1248 L 386.9723 231.5611 z " fill="#807b7a" id="path807" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 231.843 L 149.956 232.6885 L 148.4301 231.843 z " fill="#888d90" id="path808" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 231.843 L 157.5852 234.3795 L 157.5852 231.843 z " fill="#686c6f" id="path809" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 231.843 L 276.6022 232.6885 L 275.0765 231.843 z " fill="#63686a" id="path810" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 231.843 L 294.9126 232.6885 L 293.3867 231.843 z " fill="#736c77" id="path811" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 342.2142 231.843 L 340.6884 234.3795 L 342.2142 231.843 z " fill="#434749" id="path812" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 231.843 L 351.3695 232.6885 L 349.8435 231.843 z " fill="#5c5a5d" id="path813" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.0419 234.3795 L 394.0936 231.843 L 391.0419 234.3795 z " fill="#a19ea2" id="path814" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.0331 231.843 L 421.5591 232.6885 L 420.0331 231.843 z " fill="#575f5b" id="path815" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 232.6885 L 125.5421 233.534 L 124.0163 232.6885 z " fill="#73837d" id="path816" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 232.6885 L 139.2749 233.534 L 137.7491 232.6885 z " fill="#686c6f" id="path817" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 232.6885 L 275.0765 233.534 L 273.5507 232.6885 z " fill="#7a8686" id="path818" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 335.0931 233.2522 L 335.6027 233.8158 L 335.0931 233.2522 z " fill="#53575a" id="path819" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 232.6885 L 362.0505 236.916 L 362.0505 232.6885 z " fill="#3c3837" id="path820" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 241.1435 C 389.8654 247.0924 386.4703 250.7518 386.4642 258.0536 C 393.6067 253.8565 397.9218 245.847 400.2809 240.2981 C 401.1843 238.1744 400.3357 233.9015 394.8243 233.9015 C 389.7432 233.9015 388.8523 241.725 397.1453 241.1435 z " fill="#fefffc" id="path821" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 232.6885 L 397.1453 233.534 L 395.6194 232.6885 z " fill="#63686a" id="path822" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 232.6885 L 423.0849 233.534 L 421.5591 232.6885 z " fill="#74787b" id="path823" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.4904 233.534 L 124.0163 234.3795 L 122.4904 233.534 z " fill="#63686a" id="path824" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 233.534 L 137.7491 234.3795 L 136.2231 233.534 z " fill="#7a8686" id="path825" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 233.534 L 290.3351 234.3795 L 288.8092 233.534 z " fill="#857f8a" id="path826" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.1539 233.534 L 368.1539 236.0705 L 368.1539 233.534 z " fill="#90878d" id="path827" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 233.534 L 398.671 234.3795 L 397.1453 233.534 z " fill="#5d5e66" id="path828" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 423.0849 233.534 L 424.6108 234.3795 L 423.0849 233.534 z " fill="#989d9f" id="path829" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 234.3795 L 153.0076 235.225 L 151.4818 234.3795 z " fill="#857f8a" id="path830" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 346.7918 234.3795 L 348.3177 235.225 L 346.7918 234.3795 z " fill="#90878d" id="path831" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 234.3795 L 358.9988 238.607 L 358.9988 234.3795 z " fill="#807b7a" id="path832" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.671 234.3795 L 400.1969 235.225 L 398.671 234.3795 z " fill="#5c5a5d" id="path833" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 235.225 L 133.1715 236.0705 L 131.6456 235.225 z " fill="#857f8a" id="path834" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 153.0076 235.225 L 154.5336 236.0705 L 153.0076 235.225 z " fill="#5c5a5d" id="path835" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.5673 235.7887 L 334.0768 236.3523 L 333.5673 235.7887 z " fill="#6a7676" id="path836" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 235.225 L 346.7918 236.0705 L 345.266 235.225 z " fill="#5c5a5d" id="path837" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 372.7314 235.225 L 372.7314 237.7615 L 372.7314 235.225 z " fill="#4d4b4f" id="path838" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 235.225 L 384.9384 237.7615 L 384.9384 235.225 z " fill="#b3aba4" id="path839" stroke="none" style="fill:#b3aba4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 236.0705 L 117.9129 236.916 L 116.3869 236.0705 z " fill="#82928c" id="path840" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 236.0705 L 165.2145 238.607 L 165.2145 236.0705 z " fill="#857f8a" id="path841" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 236.0705 L 282.7057 236.916 L 281.1799 236.0705 z " fill="#736c77" id="path842" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 343.7402 236.0705 L 345.266 236.916 L 343.7402 236.0705 z " fill="#5c5a5d" id="path843" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.6108 236.0705 L 426.1365 236.916 L 424.6108 236.0705 z " fill="#63686a" id="path844" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 236.916 L 281.1799 237.7615 L 279.6539 236.916 z " fill="#a0a5a8" id="path845" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.5763 236.916 L 363.5763 242.8345 L 363.5763 236.916 z " fill="#cacfd1" id="path846" stroke="none" style="fill:#cacfd1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.5159 236.916 L 389.5159 239.4525 L 389.5159 236.916 z " fill="#857f8a" id="path847" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 402.2309 237.4797 L 402.7406 238.0433 L 402.2309 237.4797 z " fill="#53575a" id="path848" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 237.7615 L 113.3354 238.607 L 111.8094 237.7615 z " fill="#92a39c" id="path849" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 237.7615 L 127.0681 238.607 L 125.5421 237.7615 z " fill="#5c5a5d" id="path850" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 237.7615 L 267.4472 238.607 L 265.9213 237.7615 z " fill="#63686a" id="path851" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 237.7615 L 278.1281 238.607 L 276.6022 237.7615 z " fill="#857f8a" id="path852" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 332.0413 238.3252 L 332.551 238.8888 L 332.0413 238.3252 z " fill="#7a8686" id="path853" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 237.7615 L 384.9384 240.298 L 384.9384 237.7615 z " fill="#45453d" id="path854" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 237.7615 L 420.0331 240.298 L 415.4556 237.7615 z " fill="#6a7676" id="path855" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 110.2836 238.607 L 111.8094 239.4525 L 110.2836 238.607 z " fill="#63736d" id="path856" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 238.607 L 125.5421 239.4525 L 124.0163 238.607 z " fill="#90878d" id="path857" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 238.607 L 159.111 239.4525 L 157.5852 238.607 z " fill="#716667" id="path858" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 238.607 L 265.9213 239.4525 L 264.3955 238.607 z " fill="#73837d" id="path859" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 238.607 L 358.9988 246.2165 L 358.9988 238.607 z " fill="#b8bec0" id="path860" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 238.607 L 366.6279 241.1435 L 366.6279 238.607 z " fill="#aebbbc" id="path861" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 427.6625 238.607 L 429.1882 239.4525 L 427.6625 238.607 z " fill="#73837d" id="path862" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 239.4525 L 264.3955 240.298 L 262.8695 239.4525 z " fill="#92a39c" id="path863" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 239.4525 L 371.2056 241.989 L 371.2056 239.4525 z " fill="#413b45" id="path864" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.5159 239.4525 L 392.5677 242.8345 L 389.5159 239.4525 z " fill="#d2dbd6" id="path865" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.7051 240.0162 L 401.2148 240.5798 L 400.7051 240.0162 z " fill="#3c3837" id="path866" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 240.298 L 120.9646 241.1435 L 119.4387 240.298 z " fill="#777c7e" id="path867" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 240.298 L 159.111 242.8345 L 159.111 240.298 z " fill="#b0b5b7" id="path868" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 240.298 L 339.1625 241.1435 L 337.6368 240.298 z " fill="#857f8a" id="path869" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.9206 240.8617 L 384.4304 241.4253 L 383.9206 240.8617 z " fill="#aeb3b5" id="path870" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.0331 240.298 L 435.2917 252.9805 L 420.0331 240.298 z " fill="#63736d" id="path871" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 241.1435 L 105.706 241.989 L 104.1802 241.1435 z " fill="#82928c" id="path872" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.5155 241.7072 L 331.0252 242.2708 L 330.5155 241.7072 z " fill="#575f5b" id="path873" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 367.1362 241.7072 L 367.6458 242.2708 L 367.1362 241.7072 z " fill="#4c5450" id="path874" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.0936 241.1435 L 397.1453 242.8345 L 394.0936 241.1435 z " fill="#b5babd" id="path875" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 399.1792 241.7072 L 399.6888 242.2708 L 399.1792 241.7072 z " fill="#7a8686" id="path876" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 241.1435 L 407.8263 241.989 L 406.3003 241.1435 z " fill="#716667" id="path877" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 430.7142 241.1435 L 432.24 241.989 L 430.7142 241.1435 z " fill="#888d90" id="path878" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 241.989 L 169.7921 245.371 L 169.7921 241.989 z " fill="#d5ceda" id="path879" stroke="none" style="fill:#d5ceda;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 241.989 L 268.973 242.8345 L 267.4472 241.989 z " fill="#5d5e66" id="path880" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 241.989 L 371.2056 244.5255 L 371.2056 241.989 z " fill="#a19ea2" id="path881" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.9206 242.5527 L 384.4304 243.116 L 383.9206 242.5527 z " fill="#6a7676" id="path882" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 407.8263 241.989 L 409.3521 242.8345 L 407.8263 241.989 z " fill="#777c7e" id="path883" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 242.8345 L 101.1284 243.68 L 99.6025 242.8345 z " fill="#8a9697" id="path884" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 242.8345 L 113.3354 243.68 L 111.8094 242.8345 z " fill="#74787b" id="path885" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 161.1451 243.3984 L 161.6547 243.9615 L 161.1451 243.3984 z " fill="#abbcb6" id="path886" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 242.8345 L 267.4472 243.68 L 265.9213 242.8345 z " fill="#63686a" id="path887" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 242.8345 L 336.1108 243.68 L 334.5851 242.8345 z " fill="#8f9099" id="path888" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.5763 242.8345 L 366.6279 245.371 L 363.5763 242.8345 z " fill="#4c5450" id="path889" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.0936 242.8345 L 395.6194 243.68 L 394.0936 242.8345 z " fill="#716667" id="path890" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 242.8345 L 410.878 243.68 L 409.3521 242.8345 z " fill="#989d9f" id="path891" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 432.24 242.8345 L 433.7658 243.68 L 432.24 242.8345 z " fill="#63736d" id="path892" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 243.68 L 99.6025 244.5255 L 98.07669 243.68 z " fill="#575f5b" id="path893" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 243.68 L 258.292 244.5255 L 256.7661 243.68 z " fill="#63686a" id="path894" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 243.68 L 265.9213 244.5255 L 264.3955 243.68 z " fill="#686c6f" id="path895" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.9896 244.2439 L 329.4992 244.807 L 328.9896 244.2439 z " fill="#888d90" id="path896" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 243.68 L 334.5851 244.5255 L 333.0591 243.68 z " fill="#5d5e66" id="path897" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 402.2309 244.2439 L 402.7406 244.807 L 402.2309 244.2439 z " fill="#a9b1b9" id="path898" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 244.5255 L 256.7661 245.371 L 255.2402 244.5255 z " fill="#74787b" id="path899" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 244.5255 L 264.3955 245.371 L 262.8695 244.5255 z " fill="#5d5e66" id="path900" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.0419 244.5255 L 392.5677 245.371 L 391.0419 244.5255 z " fill="#5c5a5d" id="path901" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 245.371 L 95.02496 246.2165 L 93.49916 245.371 z " fill="#92a39c" id="path902" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 245.371 L 105.706 246.2165 L 104.1802 245.371 z " fill="#575f5b" id="path903" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.6709 245.9349 L 163.1805 246.498 L 162.6709 245.9349 z " fill="#a8aeb0" id="path904" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 245.371 L 255.2402 246.2165 L 249.1368 245.371 z " fill="#aeb3b5" id="path905" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 245.371 L 262.8695 246.2165 L 261.3437 245.371 z " fill="#596465" id="path906" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 329.4992 245.6525 L 330.5155 245.9349 L 329.4992 245.6525 z " fill="#484c4e" id="path907" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 369.6797 245.371 L 369.6797 249.5985 L 369.6797 245.371 z " fill="#373b3d" id="path908" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.5159 245.371 L 391.0419 246.2165 L 389.5159 245.371 z " fill="#736c77" id="path909" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 435.2917 245.371 L 436.8175 246.2165 L 435.2917 245.371 z " fill="#777c7e" id="path910" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 246.2165 L 93.49916 247.062 L 91.97323 246.2165 z " fill="#807b7a" id="path911" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.4735 246.498 L 240.4898 246.7804 L 239.4735 246.498 z " fill="#a4a9ac" id="path912" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 246.2165 L 247.6109 247.062 L 241.5076 246.2165 z " fill="#596465" id="path913" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 359.5068 246.7804 L 360.0164 247.3435 L 359.5068 246.7804 z " fill="#373b3d" id="path914" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 381.8866 246.2165 L 381.8866 248.753 L 381.8866 246.2165 z " fill="#b5babd" id="path915" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 387.9901 246.2165 L 389.5159 247.062 L 387.9901 246.2165 z " fill="#5c5a5d" id="path916" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 246.2165 L 397.1453 247.062 L 395.6194 246.2165 z " fill="#9d9c94" id="path917" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 246.2165 L 416.9814 247.062 L 415.4556 246.2165 z " fill="#a4a9ac" id="path918" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 247.062 L 91.97323 247.9075 L 90.44743 247.062 z " fill="#63686a" id="path919" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 247.062 L 101.1284 247.9075 L 99.6025 247.062 z " fill="#74787b" id="path920" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 173.8617 247.3435 L 174.8778 247.6259 L 173.8617 247.3435 z " fill="#b7c3c4" id="path921" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 231.8443 247.3435 L 232.8605 247.6259 L 231.8443 247.3435 z " fill="#7a8686" id="path922" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 416.9814 247.062 L 418.5073 247.9075 L 416.9814 247.062 z " fill="#97a4a4" id="path923" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 247.9075 L 90.44743 248.753 L 88.9215 247.9075 z " fill="#575f5b" id="path924" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 161.6547 248.189 L 162.6709 248.4714 L 161.6547 248.189 z " fill="#74787b" id="path925" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 247.9075 L 181.999 248.753 L 177.4215 247.9075 z " fill="#6a7676" id="path926" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 247.9075 L 229.3006 248.753 L 224.7231 247.9075 z " fill="#4c5450" id="path927" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 247.9075 L 272.0248 248.753 L 267.4472 247.9075 z " fill="#42514b" id="path928" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.0424 248.189 L 274.0587 248.4714 L 273.0424 248.189 z " fill="#b7c3c4" id="path929" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 247.9075 L 386.4642 250.444 L 386.4642 247.9075 z " fill="#53575a" id="path930" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 418.5073 247.9075 L 420.0331 248.753 L 418.5073 247.9075 z " fill="#959a9c" id="path931" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 248.753 L 96.55089 249.5985 L 95.02496 248.753 z " fill="#74787b" id="path932" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 155.5512 249.0346 L 156.5675 249.317 L 155.5512 249.0346 z " fill="#888d90" id="path933" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 248.753 L 188.1024 249.5985 L 186.5765 248.753 z " fill="#74787b" id="path934" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 248.753 L 221.6713 249.5985 L 220.1455 248.753 z " fill="#8a9697" id="path935" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 248.753 L 281.1799 249.5985 L 276.6022 248.753 z " fill="#596465" id="path936" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 381.8866 248.753 L 381.8866 252.135 L 381.8866 248.753 z " fill="#222628" id="path937" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.0331 248.753 L 421.5591 249.5985 L 420.0331 248.753 z " fill="#7a8686" id="path938" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.4478 249.8801 L 150.4641 250.1625 L 149.4478 249.8801 z " fill="#83888b" id="path939" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 249.5985 L 191.1541 250.444 L 189.6282 249.5985 z " fill="#7a8686" id="path940" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.2494 249.8801 L 286.2655 250.1625 L 285.2494 249.8801 z " fill="#8a9697" id="path941" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 249.5985 L 423.0849 250.444 L 421.5591 249.5985 z " fill="#63686a" id="path942" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 84.34397 250.444 L 88.9215 252.135 L 84.34397 250.444 z " fill="#82928c" id="path943" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 250.444 L 91.97323 251.2895 L 90.44743 250.444 z " fill="#7a8686" id="path944" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 144.8703 250.7256 L 145.8864 251.008 L 144.8703 250.7256 z " fill="#33413c" id="path945" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 250.444 L 191.1541 253.826 L 191.1541 250.444 z " fill="#413b45" id="path946" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 250.444 L 293.3867 251.2895 L 288.8092 250.444 z " fill="#63736d" id="path947" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 250.444 L 372.7314 251.2895 L 371.2056 250.444 z " fill="#9d9c94" id="path948" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 393.0757 251.008 L 393.5853 251.5711 L 393.0757 251.008 z " fill="#484c4e" id="path949" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.6534 251.008 L 398.163 251.5711 L 397.6534 251.008 z " fill="#9d9c94" id="path950" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 423.0849 250.444 L 424.6108 251.2895 L 423.0849 250.444 z " fill="#596465" id="path951" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 441.3952 250.444 L 442.921 251.2895 L 441.3952 250.444 z " fill="#a19ea2" id="path952" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.2926 251.5711 L 141.3089 251.8535 L 140.2926 251.5711 z " fill="#33413c" id="path953" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 213.5339 251.5711 L 214.5502 251.8535 L 213.5339 251.5711 z " fill="#989d9f" id="path954" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.4562 251.5711 L 298.4724 251.8535 L 297.4562 251.5711 z " fill="#9facad" id="path955" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 252.9805 L 175.8955 252.135 L 169.7921 252.9805 z " fill="#333739" id="path956" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 252.135 L 302.5419 252.9805 L 301.0161 252.135 z " fill="#82928c" id="path957" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.8953 252.135 L 352.8953 256.3625 L 352.8953 252.135 z " fill="#90878d" id="path958" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 252.135 L 366.6279 252.9805 L 362.0505 252.135 z " fill="#5d5e66" id="path959" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 372.7314 252.135 L 374.2573 252.9805 L 372.7314 252.135 z " fill="#73837d" id="path960" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 132.6633 253.2621 L 133.6796 253.5445 L 132.6633 253.2621 z " fill="#3c3837" id="path961" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 252.9805 L 171.318 253.826 L 159.111 252.9805 z " fill="#575f5b" id="path962" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 252.9805 L 209.4645 253.826 L 207.9386 252.9805 z " fill="#63686a" id="path963" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.0855 253.2621 L 306.1017 253.5445 L 305.0855 253.2621 z " fill="#b7c3c4" id="path964" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 252.9805 L 368.1539 253.826 L 362.0505 252.9805 z " fill="#f2f7f9" id="path965" stroke="none" style="fill:#f2f7f9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 252.9805 L 380.3607 255.517 L 380.3607 252.9805 z " fill="#a9b1b9" id="path966" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 252.9805 L 397.1453 253.826 L 395.6194 252.9805 z " fill="#596465" id="path967" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 435.2917 252.9805 L 439.8693 256.3625 L 435.2917 252.9805 z " fill="#53575a" id="path968" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 253.826 L 162.1628 254.6715 L 151.4818 253.826 z " fill="#777c7e" id="path969" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.5763 253.826 L 368.1539 254.6715 L 363.5763 253.826 z " fill="#74787b" id="path970" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.7655 254.39 L 375.2751 254.9531 L 374.7655 254.39 z " fill="#4d4b4f" id="path971" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 427.6625 253.826 L 429.1882 254.6715 L 427.6625 253.826 z " fill="#a0a5a8" id="path972" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 254.6715 L 125.5421 255.517 L 124.0163 254.6715 z " fill="#8a9697" id="path973" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 254.6715 L 149.956 256.3625 L 142.3266 254.6715 z " fill="#575f5b" id="path974" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 254.6715 L 153.0076 255.517 L 148.4301 254.6715 z " fill="#aeb3b5" id="path975" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 255.517 L 191.1541 256.3625 L 181.999 255.517 z " fill="#6a7676" id="path976" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 254.6715 L 206.4127 255.517 L 200.3094 254.6715 z " fill="#434749" id="path977" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.5159 254.6715 L 391.0419 255.517 L 389.5159 254.6715 z " fill="#959a9c" id="path978" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 429.1882 254.6715 L 430.7142 255.517 L 429.1882 254.6715 z " fill="#8f9099" id="path979" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 255.517 L 122.4904 256.3625 L 120.9646 255.517 z " fill="#92a39c" id="path980" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 258.0536 L 139.2749 255.517 L 128.5939 258.0536 z " fill="#434749" id="path981" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 255.517 L 145.3783 256.3625 L 139.2749 255.517 z " fill="#91988e" id="path982" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 196.7495 255.7986 L 197.7658 256.081 L 196.7495 255.7986 z " fill="#596465" id="path983" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 255.517 L 368.1539 257.2081 L 362.0505 255.517 z " fill="#a8aeb0" id="path984" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.7655 256.081 L 375.2751 256.6441 L 374.7655 256.081 z " fill="#a4a9ac" id="path985" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 255.517 L 380.3607 258.0536 L 380.3607 255.517 z " fill="#6a7676" id="path986" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 430.7142 255.517 L 432.24 256.3625 L 430.7142 255.517 z " fill="#a19ea2" id="path987" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 256.3625 L 249.1368 264.8176 L 226.2489 256.3625 z " fill="#63736d" id="path988" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 258.0536 L 256.7661 257.2081 L 247.6109 258.0536 z " fill="#342c31" id="path989" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 256.3625 L 273.5507 257.2081 L 256.7661 256.3625 z " fill="#a19ea2" id="path990" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 256.3625 L 291.8609 257.2081 L 273.5507 256.3625 z " fill="#777c7e" id="path991" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 256.3625 L 307.1196 257.2081 L 291.8609 256.3625 z " fill="#a19ea2" id="path992" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 256.3625 L 314.7488 257.2081 L 307.1196 256.3625 z " fill="#342c31" id="path993" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 257.2081 L 322.3781 256.3625 L 316.2746 257.2081 z " fill="#adaeb8" id="path994" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 432.24 256.3625 L 433.7658 257.2081 L 432.24 256.3625 z " fill="#a19ea2" id="path995" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 256.3625 L 449.0245 257.2081 L 447.4987 256.3625 z " fill="#97a4a4" id="path996" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 257.2081 L 117.9129 258.0536 L 116.3869 257.2081 z " fill="#63736d" id="path997" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.9292 257.772 L 355.4389 258.3351 L 354.9292 257.772 z " fill="#a19ea2" id="path998" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 392.5677 257.2081 L 394.0936 258.0536 L 392.5677 257.2081 z " fill="#857f8a" id="path999" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 258.0536 L 114.8612 258.8991 L 113.3354 258.0536 z " fill="#8a9697" id="path1000" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 163.1805 258.3351 L 164.1968 258.6175 L 163.1805 258.3351 z " fill="#394444" id="path1001" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 258.0536 L 171.318 258.8991 L 165.2145 258.0536 z " fill="#9d9c94" id="path1002" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 435.2917 258.0536 L 436.8175 258.8991 L 435.2917 258.0536 z " fill="#a19ea2" id="path1003" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 258.0536 L 450.5503 258.8991 L 449.0245 258.0536 z " fill="#888d90" id="path1004" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 258.8991 L 162.1628 259.7446 L 151.4818 258.8991 z " fill="#83888b" id="path1005" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 258.8991 L 253.7144 259.7446 L 252.1885 258.8991 z " fill="#82928c" id="path1006" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.0419 258.8991 L 392.5677 259.7446 L 391.0419 258.8991 z " fill="#63686a" id="path1007" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 258.8991 L 438.3435 259.7446 L 436.8175 258.8991 z " fill="#90878d" id="path1008" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 259.7446 L 110.2836 260.5901 L 108.7577 259.7446 z " fill="#92a39c" id="path1009" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 259.7446 L 143.8525 260.5901 L 139.2749 259.7446 z " fill="#63686a" id="path1010" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 259.7446 L 171.318 260.5901 L 169.7921 259.7446 z " fill="#73837d" id="path1011" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 259.7446 L 172.8438 268.1996 C 177.5587 266.4046 185.5862 263.3194 185.0508 259.7446 z " fill="#82928c" id="path1012" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 259.7446 L 255.2402 260.5901 L 253.7144 259.7446 z " fill="#73837d" id="path1013" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 259.7446 L 439.8693 260.5901 L 438.3435 259.7446 z " fill="#74787b" id="path1014" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 450.5503 259.7446 L 452.0762 260.5901 L 450.5503 259.7446 z " fill="#82928c" id="path1015" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 260.5901 L 108.7577 261.4356 L 107.2319 260.5901 z " fill="#575f5b" id="path1016" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 260.5901 L 134.6973 261.4356 L 130.1198 260.5901 z " fill="#434749" id="path1017" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 135.7151 260.8716 L 136.7313 261.154 L 135.7151 260.8716 z " fill="#adaeb8" id="path1018" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 260.5901 L 256.7661 261.4356 L 255.2402 260.5901 z " fill="#575f5b" id="path1019" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.662 261.154 L 369.1716 261.7171 L 368.662 261.154 z " fill="#a8aeb0" id="path1020" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 378.8349 260.5901 L 378.8349 263.1266 L 378.8349 260.5901 z " fill="#9facad" id="path1021" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 261.4356 L 125.5421 262.2811 L 120.9646 261.4356 z " fill="#4d4b4f" id="path1022" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 261.4356 L 130.1198 262.2811 L 125.5421 261.4356 z " fill="#a9b1b9" id="path1023" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 263.1266 L 223.1971 261.4356 L 220.1455 263.1266 z " fill="#434749" id="path1024" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 261.4356 L 453.602 262.2811 L 452.0762 261.4356 z " fill="#959a9c" id="path1025" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 262.2811 L 104.1802 263.1266 L 102.6542 262.2811 z " fill="#7a8686" id="path1026" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 262.2811 L 203.3611 269.8906 C 206.1808 267.4065 206.5027 264.7077 203.3611 262.2811 z " fill="#63686a" id="path1027" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 264.8176 L 224.7231 262.2811 L 221.6713 264.8176 z " fill="#c7d4d5" id="path1028" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 441.3952 262.2811 L 442.921 263.1266 L 441.3952 262.2811 z " fill="#8f9099" id="path1029" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 112.8272 263.4081 L 113.8434 263.6905 L 112.8272 263.4081 z " fill="#a4a9ac" id="path1030" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 263.1266 C 182.7466 271.0819 190.9161 278.2654 197.5018 285.9552 C 198.6354 287.2793 198.2097 292.8672 201.8352 292.8672 C 206.6523 292.8672 203.4968 287.1575 202.9948 285.9552 C 199.9431 278.6441 199.6227 269.6919 192.6799 263.1266 z " fill="#f8feff" id="path1031" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 263.1266 L 227.7748 263.9721 L 226.2489 263.1266 z " fill="#777c7e" id="path1032" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 442.921 263.1266 L 444.4469 263.9721 L 442.921 263.1266 z " fill="#888d90" id="path1033" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 263.9721 L 102.6542 265.6631 L 99.6025 263.9721 z " fill="#413b45" id="path1034" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 263.9721 L 110.2836 264.8176 L 105.706 263.9721 z " fill="#857f8a" id="path1035" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.4469 263.9721 L 445.9728 264.8176 L 444.4469 263.9721 z " fill="#686c6f" id="path1036" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 264.8176 L 163.6887 265.6631 L 162.1628 264.8176 z " fill="#596465" id="path1037" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 264.8176 L 191.1541 265.6631 L 189.6282 264.8176 z " fill="#959a9c" id="path1038" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.714 265.3815 L 195.2237 265.9447 L 194.714 265.3815 z " fill="#bfcccd" id="path1039" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 264.8176 L 259.8178 269.8906 L 247.6109 264.8176 z " fill="#888d90" id="path1040" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 264.8176 L 387.9901 265.6631 L 386.4642 264.8176 z " fill="#83888b" id="path1041" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 265.6631 L 162.1628 266.5086 L 160.6369 265.6631 z " fill="#63686a" id="path1042" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 265.6631 L 189.6282 266.5086 L 188.1024 265.6631 z " fill="#53575a" id="path1043" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 265.6631 L 223.1971 268.1996 L 223.1971 265.6631 z " fill="#b5babd" id="path1044" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 265.6631 L 235.4041 266.5086 L 233.8783 265.6631 z " fill="#857f8a" id="path1045" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 265.6631 L 456.6537 266.5086 L 455.128 265.6631 z " fill="#6a7676" id="path1046" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 266.5086 L 160.6369 267.3541 L 159.111 266.5086 z " fill="#74787b" id="path1047" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 196.2399 267.0726 L 196.7495 267.6357 L 196.2399 267.0726 z " fill="#6a7676" id="path1048" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 236.93 266.5086 L 238.4558 267.3541 L 236.93 266.5086 z " fill="#686c6f" id="path1049" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.4464 267.0726 L 385.9561 267.6357 L 385.4464 267.0726 z " fill="#aeb3b5" id="path1050" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 266.5086 L 449.0245 267.3541 L 447.4987 266.5086 z " fill="#989d9f" id="path1051" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 267.3541 L 159.111 268.1996 L 157.5852 267.3541 z " fill="#63736d" id="path1052" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 267.3541 L 166.7404 271.5816 L 171.318 267.3541 z " fill="#9facad" id="path1053" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 267.3541 L 204.8869 270.7361 L 204.8869 267.3541 z " fill="#a0a5a8" id="path1054" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 267.3541 L 268.973 268.1996 L 267.4472 267.3541 z " fill="#63736d" id="path1055" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 376.2913 267.9181 L 376.8009 268.4812 L 376.2913 267.9181 z " fill="#92a39c" id="path1056" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 268.1996 L 157.5852 269.0451 L 156.0593 268.1996 z " fill="#74787b" id="path1057" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 268.1996 L 243.0334 269.0451 L 241.5076 268.1996 z " fill="#63686a" id="path1058" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 268.1996 L 270.4989 269.0451 L 268.973 268.1996 z " fill="#8a9697" id="path1059" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 268.1996 L 354.4212 270.7361 L 354.4212 268.1996 z " fill="#a0a5a8" id="path1060" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 450.5503 268.1996 L 452.0762 269.0451 L 450.5503 268.1996 z " fill="#596465" id="path1061" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 269.0451 L 156.0593 269.8906 L 154.5336 269.0451 z " fill="#92a39c" id="path1062" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 269.0451 L 204.8869 272.4271 L 206.4127 269.0451 z " fill="#74787b" id="path1063" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.2312 269.6091 L 225.7408 270.1722 L 225.2312 269.6091 z " fill="#575f5b" id="path1064" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 269.0451 L 244.5593 269.8906 L 243.0334 269.0451 z " fill="#a0a5a8" id="path1065" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 269.0451 L 265.9213 272.4271 L 259.8178 269.0451 z " fill="#63686a" id="path1066" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 269.0451 L 365.1022 271.5816 L 365.1022 269.0451 z " fill="#484c4e" id="path1067" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 376.2913 269.6091 L 376.8009 270.1722 L 376.2913 269.6091 z " fill="#333739" id="path1068" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 269.0451 L 387.9901 270.7361 L 383.4125 269.0451 z " fill="#74787b" id="path1069" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 269.8906 L 197.2576 272.4271 L 197.2576 269.8906 z " fill="#6a7676" id="path1070" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 269.8906 L 247.6109 270.7361 L 246.085 269.8906 z " fill="#716667" id="path1071" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 270.7361 L 166.7404 271.5816 L 165.2145 270.7361 z " fill="#595a63" id="path1072" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 270.7361 L 186.5765 273.2726 L 186.5765 270.7361 z " fill="#777c7e" id="path1073" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 270.7361 L 249.1368 271.5816 L 247.6109 270.7361 z " fill="#a19ea2" id="path1074" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 272.0248 270.7361 L 273.5507 271.5816 L 272.0248 270.7361 z " fill="#63736d" id="path1075" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 270.7361 L 354.4212 273.2726 L 354.4212 270.7361 z " fill="#686c6f" id="path1076" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.7655 271.3001 L 375.2751 271.8632 L 374.7655 271.3001 z " fill="#97a4a4" id="path1077" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 270.7361 L 455.128 271.5816 L 453.602 270.7361 z " fill="#989d9f" id="path1078" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 460.2137 271.3001 L 460.7232 271.8632 L 460.2137 271.3001 z " fill="#53575a" id="path1079" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 271.5816 L 166.7404 272.4271 L 165.2145 271.5816 z " fill="#a6bab9" id="path1080" stroke="none" style="fill:#a6bab9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 271.5816 L 206.4127 274.9637 L 206.4127 271.5816 z " fill="#aebbbc" id="path1081" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.7571 272.1456 L 227.2666 272.7087 L 226.7571 272.1456 z " fill="#63686a" id="path1082" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.0419 271.5816 L 392.5677 272.4271 L 391.0419 271.5816 z " fill="#a19ea2" id="path1083" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 271.5816 L 456.6537 272.4271 L 455.128 271.5816 z " fill="#74787b" id="path1084" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 272.4271 L 151.4818 273.2726 L 149.956 272.4271 z " fill="#73837d" id="path1085" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 275.8092 L 166.7404 272.4271 L 160.6369 275.8092 z " fill="#777c7e" id="path1086" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 272.4271 L 253.7144 273.2726 L 252.1885 272.4271 z " fill="#686c6f" id="path1087" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 272.4271 L 272.0248 274.9637 L 265.9213 272.4271 z " fill="#333739" id="path1088" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 456.6537 272.4271 L 458.1796 273.2726 L 456.6537 272.4271 z " fill="#5d5e66" id="path1089" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 273.2726 L 149.956 274.1182 L 148.4301 273.2726 z " fill="#92a39c" id="path1090" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.4391 273.5542 L 179.4554 273.8366 L 178.4391 273.5542 z " fill="#b0b5b7" id="path1091" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 199.2915 273.8366 L 199.8012 274.3997 L 199.2915 273.8366 z " fill="#4d4b4f" id="path1092" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 273.2726 C 206.3045 278.541 209.3196 286.0364 215.5678 290.1827 L 207.9386 273.2726 z " fill="#83888b" id="path1093" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 364.0845 273.8366 L 364.5941 274.3997 L 364.0845 273.8366 z " fill="#434749" id="path1094" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 273.2726 L 387.9901 274.1182 L 386.4642 273.2726 z " fill="#857f8a" id="path1095" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 273.2726 L 459.7054 274.1182 L 458.1796 273.2726 z " fill="#595a63" id="path1096" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 274.9637 L 462.7572 273.2726 L 459.7054 274.9637 z " fill="#4d4b4f" id="path1097" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 274.1182 L 177.4215 274.9637 L 175.8955 274.1182 z " fill="#595a63" id="path1098" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 340.913 L 99.6025 331.3157 L 70.61125 327.385 L 115.8805 346.4612 L 145.3783 366.2782 L 136.2231 352.7501 C 145.5721 356.3088 152.7804 360.6395 153.0076 367.1237 L 159.111 363.7417 C 157.892 369.0531 151.9152 378.1009 160.756 382.4967 C 164.1159 384.1665 168.6706 381.9843 171.3225 380.8209 C 176.5974 378.5059 181.2941 375.8197 186.5751 373.5132 C 190.3958 371.8442 195.7104 370.3924 197.6894 367.7798 C 199.5571 365.3118 198.8018 362.1285 198.779 359.5142 C 198.724 353.1982 198.1289 346.3403 196.7921 340.0675 C 196.2429 337.4879 196.4169 334.1236 193.9786 331.8374 C 190.1517 328.2499 181.0057 327.0324 175.8955 324.0029 L 192.4099 325.5418 L 193.4827 322.2764 L 190.0602 311.1344 L 175.8955 312.4153 L 136.2231 320.6209 L 168.2662 303.5713 L 184.8005 297.4118 L 182.7299 288.4917 L 181.8861 279.2047 L 178.1569 275.3315 L 160.8827 285.1097 L 127.0193 311.3204 L 119.4387 322.9655 L 131.6456 328.8325 L 156.0593 340.913 z " fill="#fefffc" id="path1099" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.9812 274.6821 L 181.4909 275.2452 L 180.9812 274.6821 z " fill="#7a8686" id="path1100" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.6105 274.6821 L 189.1202 275.2452 L 188.6105 274.6821 z " fill="#6a7676" id="path1101" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 274.1182 L 227.7748 276.6547 L 227.7748 274.1182 z " fill="#83888b" id="path1102" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 274.1182 L 278.1281 274.9637 L 276.6022 274.1182 z " fill="#7a8686" id="path1103" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 274.1182 L 371.2056 278.3457 L 371.2056 274.1182 z " fill="#a4b5ae" id="path1104" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 274.1182 L 384.9384 274.9637 L 383.4125 274.1182 z " fill="#5d5e66" id="path1105" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 274.9637 L 146.9043 275.8092 L 145.3783 274.9637 z " fill="#97a4a4" id="path1106" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 274.9637 L 156.0593 278.3457 L 159.111 274.9637 z " fill="#aeb3b5" id="path1107" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.3697 274.9637 L 175.8955 275.8092 L 174.3697 274.9637 z " fill="#575f5b" id="path1108" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 274.9637 L 198.7834 278.3457 L 198.7834 274.9637 z " fill="#bfcccd" id="path1109" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 274.9637 L 261.3437 275.8092 L 259.8178 274.9637 z " fill="#97a4a4" id="path1110" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.5763 274.9637 L 363.5763 277.5002 L 363.5763 274.9637 z " fill="#888d90" id="path1111" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 381.8866 274.9637 L 383.4125 275.8092 L 381.8866 274.9637 z " fill="#91988e" id="path1112" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 275.8092 L 174.3697 276.6547 L 172.8438 275.8092 z " fill="#63686a" id="path1113" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 275.8092 L 264.3955 276.6547 L 262.8695 275.8092 z " fill="#8f9099" id="path1114" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 276.6547 L 267.4472 277.5002 L 265.9213 276.6547 z " fill="#74787b" id="path1115" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 353.4034 277.2186 L 353.9129 277.7817 L 353.4034 277.2186 z " fill="#888d90" id="path1116" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 277.5002 L 156.0593 278.3457 L 154.5336 277.5002 z " fill="#63686a" id="path1117" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 182.507 278.0641 L 183.0167 278.6272 L 182.507 278.0641 z " fill="#373b3d" id="path1118" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 190.1365 278.0641 L 190.6461 278.6272 L 190.1365 278.0641 z " fill="#63736d" id="path1119" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 277.5002 L 200.3094 280.0367 L 200.3094 277.5002 z " fill="#373b3d" id="path1120" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.8089 278.0641 L 230.3184 278.6272 L 229.8089 278.0641 z " fill="#4c5450" id="path1121" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 277.5002 L 282.7057 278.3457 L 281.1799 277.5002 z " fill="#7a8686" id="path1122" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.9862 278.7684 L 138.512 279.6139 L 136.9862 278.7684 z " fill="#716667" id="path1123" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 278.3457 L 145.3783 285.9552 L 154.5336 278.3457 z " fill="#93aca4" id="path1124" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 270.4989 278.3457 L 272.0248 279.1912 L 270.4989 278.3457 z " fill="#a19ea2" id="path1125" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 278.3457 L 362.0505 281.7277 L 362.0505 278.3457 z " fill="#222628" id="path1126" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 279.1912 L 181.999 285.9552 L 181.999 279.1912 z " fill="#a0a5a8" id="path1127" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 279.1912 L 275.0765 280.0367 L 273.5507 279.1912 z " fill="#989d9f" id="path1128" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 280.0367 L 140.8008 280.8822 L 139.2749 280.0367 z " fill="#777c7e" id="path1129" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 280.0367 L 168.2662 280.8822 L 166.7404 280.0367 z " fill="#989d9f" id="path1130" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 280.0367 L 230.8265 286.8007 L 230.8265 280.0367 z " fill="#8a9697" id="path1131" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 280.0367 L 278.1281 280.8822 L 276.6022 280.0367 z " fill="#a19ea2" id="path1132" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 280.0367 L 285.7574 280.8822 L 284.2316 280.0367 z " fill="#73837d" id="path1133" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 370.1879 280.6006 L 370.6975 281.1637 L 370.1879 280.6006 z " fill="#434749" id="path1134" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 280.8822 L 166.7404 281.7277 L 165.2145 280.8822 z " fill="#777c7e" id="path1135" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 280.8822 L 192.6799 281.7277 L 191.1541 280.8822 z " fill="#9aaba5" id="path1136" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 281.7277 L 139.2749 282.5732 L 137.7491 281.7277 z " fill="#53575a" id="path1137" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 202.3432 282.2916 L 202.8529 282.8548 L 202.3432 282.2916 z " fill="#63686a" id="path1138" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 281.7277 L 284.2316 282.5732 L 282.7057 281.7277 z " fill="#90878d" id="path1139" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.8775 282.2916 L 352.3872 282.8548 L 351.8775 282.2916 z " fill="#a8aeb0" id="path1140" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 281.7277 L 362.0505 285.1097 L 362.0505 281.7277 z " fill="#b8bec0" id="path1141" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.662 282.2916 L 369.1716 282.8548 L 368.662 282.2916 z " fill="#575f5b" id="path1142" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 282.5732 L 194.2059 283.4187 L 192.6799 282.5732 z " fill="#6a7676" id="path1143" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.7655 283.1372 L 375.2751 283.7003 L 374.7655 283.1372 z " fill="#a9b1b9" id="path1144" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 283.4187 L 163.6887 284.2642 L 162.1628 283.4187 z " fill="#8f9099" id="path1145" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 283.4187 L 195.7317 284.2642 L 194.2059 283.4187 z " fill="#575f5b" id="path1146" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 283.4187 L 201.8352 285.9552 L 201.8352 283.4187 z " fill="#a8aeb0" id="path1147" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.3695 283.4187 L 351.3695 285.9552 L 351.3695 283.4187 z " fill="#6a7676" id="path1148" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 284.2642 L 162.1628 285.1097 L 160.6369 284.2642 z " fill="#716667" id="path1149" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 285.1097 L 360.5247 287.6462 L 360.5247 285.1097 z " fill="#5c5a5d" id="path1150" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 294.4103 L 146.9043 285.9552 L 136.2231 294.4103 z " fill="#63736d" id="path1151" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 285.9552 L 181.999 290.1827 L 181.999 285.9552 z " fill="#63686a" id="path1152" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 285.9552 L 194.2059 286.8007 L 189.6282 285.9552 z " fill="#d2d8da" id="path1153" stroke="none" style="fill:#d2d8da;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 285.9552 L 198.7834 288.4917 L 198.7834 285.9552 z " fill="#8a9697" id="path1154" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 285.9552 L 244.5593 286.8007 L 235.4041 285.9552 z " fill="#93aca4" id="path1155" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.6103 286.5192 L 366.1199 287.0823 L 365.6103 286.5192 z " fill="#434749" id="path1156" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 286.8007 L 159.111 287.6462 L 157.5852 286.8007 z " fill="#857f8a" id="path1157" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 286.8007 L 194.2059 287.6462 L 189.6282 286.8007 z " fill="#63686a" id="path1158" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.8691 287.3647 L 204.3789 287.9278 L 203.8691 287.3647 z " fill="#807b7a" id="path1159" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.37 287.0823 L 234.3863 287.3647 L 233.37 287.0823 z " fill="#434749" id="path1160" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.1545 287.0823 L 251.1708 287.3647 L 250.1545 287.0823 z " fill="#a4b5ae" id="path1161" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.7138 287.3647 L 372.2234 287.9278 L 371.7138 287.3647 z " fill="#aeb3b5" id="path1162" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 254.7322 287.9278 L 255.7484 288.2102 L 254.7322 287.9278 z " fill="#bdd2d1" id="path1163" stroke="none" style="fill:#bdd2d1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 287.6462 L 360.5247 292.7193 L 360.5247 287.6462 z " fill="#bbc8c9" id="path1164" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.3841 289.032 L 194.5019 289.6425 L 192.3841 289.032 z " fill="#857f8a" id="path1165" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 288.4917 L 349.8435 291.0283 L 349.8435 288.4917 z " fill="#6a7676" id="path1166" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 369.6797 288.4917 L 369.6797 291.0283 L 369.6797 288.4917 z " fill="#857f8a" id="path1167" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 289.3372 L 156.0593 290.1827 L 154.5336 289.3372 z " fill="#686c6f" id="path1168" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 289.3372 L 197.2576 294.4103 L 197.2576 289.3372 z " fill="#434749" id="path1169" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 289.3372 L 261.3437 290.1827 L 259.8178 289.3372 z " fill="#74787b" id="path1170" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 290.1827 L 204.8869 293.5648 L 204.8869 290.1827 z " fill="#575f5b" id="path1171" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 290.1827 L 262.8695 291.0283 L 261.3437 290.1827 z " fill="#63736d" id="path1172" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 291.0283 L 185.0508 291.8738 L 183.5249 291.0283 z " fill="#83888b" id="path1173" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 291.0283 L 264.3955 291.8738 L 262.8695 291.0283 z " fill="#888d90" id="path1174" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 291.0283 L 307.1196 291.8738 L 299.4902 291.0283 z " fill="#9facad" id="path1175" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 291.0283 L 360.5247 294.4103 L 358.9988 291.0283 z " fill="#575f5b" id="path1176" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.662 291.5922 L 369.1716 292.1553 L 368.662 291.5922 z " fill="#9facad" id="path1177" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 291.8738 L 153.0076 292.7193 L 151.4818 291.8738 z " fill="#83888b" id="path1178" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 291.8738 L 316.2746 292.7193 L 311.6971 291.8738 z " fill="#575f5b" id="path1179" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 292.7193 L 151.4818 293.5648 L 149.956 292.7193 z " fill="#686c6f" id="path1180" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.3529 293.0008 L 292.3689 293.2832 L 291.3529 293.0008 z " fill="#575f5b" id="path1181" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 318.8183 293.0008 L 319.8346 293.2832 L 318.8183 293.0008 z " fill="#42514b" id="path1182" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 321.8701 293.0008 L 322.8861 293.2832 L 321.8701 293.0008 z " fill="#a4b5ae" id="path1183" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 293.5648 L 149.956 294.4103 L 148.4301 293.5648 z " fill="#5d5e66" id="path1184" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 293.5648 L 203.3611 294.4103 L 198.7834 293.5648 z " fill="#b5babd" id="path1185" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 293.5648 L 252.1885 295.2558 L 247.6109 293.5648 z " fill="#4c5450" id="path1186" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 293.5648 L 282.7057 294.4103 L 275.0765 293.5648 z " fill="#50564d" id="path1187" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.4475 293.8463 L 327.4638 294.1287 L 326.4475 293.8463 z " fill="#63686a" id="path1188" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 329.4992 293.8463 L 330.5155 294.1287 L 329.4992 293.8463 z " fill="#a4a9ac" id="path1189" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.8257 294.1287 L 349.3355 294.6918 L 348.8257 294.1287 z " fill="#959a9c" id="path1190" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.5761 294.9742 L 128.0858 295.5373 L 127.5761 294.9742 z " fill="#4c5450" id="path1191" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 300.3288 L 137.7491 294.4103 L 131.6456 300.3288 z " fill="#2b332f" id="path1192" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 294.4103 L 186.5765 297.7923 L 186.5765 294.4103 z " fill="#63686a" id="path1193" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 296.9468 L 250.6627 295.2558 L 232.3523 296.9468 z " fill="#7a8686" id="path1194" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 294.4103 L 275.0765 295.2558 L 273.5507 294.4103 z " fill="#575f5b" id="path1195" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 335.6027 294.6918 L 336.619 294.9742 L 335.6027 294.6918 z " fill="#83888b" id="path1196" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 295.2558 L 267.4472 296.1013 L 265.9213 295.2558 z " fill="#63686a" id="path1197" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 270.4989 295.2558 L 272.0248 296.1013 L 270.4989 295.2558 z " fill="#74787b" id="path1198" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 295.2558 L 323.904 298.6378 L 296.4385 295.2558 z " fill="#63686a" id="path1199" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.8257 295.8197 L 349.3355 296.3828 L 348.8257 295.8197 z " fill="#53575a" id="path1200" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.6103 295.8197 L 366.1199 296.3828 L 365.6103 295.8197 z " fill="#a6b2b3" id="path1201" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 296.1013 L 233.8783 297.7923 L 227.7748 296.1013 z " fill="#575f5b" id="path1202" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 343.7402 296.1013 L 348.3177 296.9468 L 343.7402 296.1013 z " fill="#9aaba5" id="path1203" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 296.9468 L 145.3783 297.7923 L 143.8525 296.9468 z " fill="#a0a5a8" id="path1204" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 299.4833 L 230.8265 297.7923 C 225.6538 296.5562 219.6969 297.5006 215.5678 299.4833 z " fill="#a1b2ab" id="path1205" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 364.0845 297.5107 L 364.5941 298.0738 L 364.0845 297.5107 z " fill="#a0a5a8" id="path1206" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 297.7923 L 143.8525 298.6378 L 142.3266 297.7923 z " fill="#686c6f" id="path1207" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.5244 299.2017 L 125.0341 299.7649 L 124.5244 299.2017 z " fill="#596465" id="path1208" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 298.6378 L 215.5678 300.3288 L 210.9904 298.6378 z " fill="#73837d" id="path1209" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 298.6378 L 349.8435 302.0198 L 323.904 298.6378 z " fill="#333739" id="path1210" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.5585 299.2017 L 363.0682 299.7649 L 362.5585 299.2017 z " fill="#63686a" id="path1211" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 303.7108 L 214.0421 299.4833 L 192.6799 303.7108 z " fill="#9aaba5" id="path1212" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 299.4833 L 255.2402 300.3288 L 249.1368 299.4833 z " fill="#2c2b2e" id="path1213" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 299.4833 L 259.8178 302.0198 L 255.2402 299.4833 z " fill="#a0a5a8" id="path1214" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 429.1882 299.4833 L 439.8693 300.3288 L 436.8175 302.0198 C 438.6502 301.9386 443.3178 300.7051 439.3612 299.7649 C 436.4881 299.0834 432.2552 299.4833 429.1882 299.4833 z " fill="#a1b2ab" id="path1215" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 300.3288 L 140.8008 301.1743 L 139.2749 300.3288 z " fill="#8f9099" id="path1216" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 300.3288 L 247.6109 301.1743 L 243.0334 300.3288 z " fill="#434749" id="path1217" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 324.8485 C 248.4762 320.0578 250.6353 313.5221 254.7947 307.9384 C 256.0261 306.2862 259.1617 302.9583 256.441 301.3037 C 252.5288 298.9236 239.1929 301.1396 237.5587 304.0084 C 234.0811 310.1164 238.143 318.9671 241.5076 324.8485 z " fill="#f8feff" id="path1218" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 300.3288 L 418.5073 301.1743 L 413.9298 300.3288 z " fill="#b3c4bd" id="path1219" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 418.5073 300.3288 L 423.0849 301.1743 L 418.5073 300.3288 z " fill="#73837d" id="path1220" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.9986 301.7383 L 123.5081 302.3014 L 122.9986 301.7383 z " fill="#33413c" id="path1221" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.4735 301.4559 L 240.4898 301.7383 L 239.4735 301.4559 z " fill="#90878d" id="path1222" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 301.1743 L 268.973 303.7108 L 268.973 301.1743 z " fill="#82928c" id="path1223" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 286.2655 301.7383 L 286.7752 302.3014 L 286.2655 301.7383 z " fill="#7a8686" id="path1224" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 301.1743 L 366.6279 302.0198 L 365.1022 301.1743 z " fill="#96a3a3" id="path1225" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 407.3181 301.4559 L 408.3344 301.7383 L 407.3181 301.4559 z " fill="#92a39c" id="path1226" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 301.1743 L 413.9298 302.0198 L 409.3521 301.1743 z " fill="#45453d" id="path1227" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 302.0198 L 235.4041 310.4749 L 235.4041 302.0198 z " fill="#b5babd" id="path1228" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.9552 302.5838 L 268.4649 303.1469 L 267.9552 302.5838 z " fill="#4d4b4f" id="path1229" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 302.0198 L 305.5937 302.8653 L 301.0161 302.0198 z " fill="#8f9099" id="path1230" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 302.0198 L 368.1539 302.8653 L 366.6279 302.0198 z " fill="#7a8686" id="path1231" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.2148 302.3014 L 402.2309 302.5838 L 401.2148 302.3014 z " fill="#82928c" id="path1232" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 434.7837 302.3014 L 435.7999 302.5838 L 434.7837 302.3014 z " fill="#a19ea2" id="path1233" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 302.8653 L 137.7491 303.7108 L 136.2231 302.8653 z " fill="#777c7e" id="path1234" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.9473 307.0928 L 192.6799 302.8653 L 178.9473 307.0928 z " fill="#74787b" id="path1235" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 302.8653 L 285.7574 305.4018 L 285.7574 302.8653 z " fill="#394444" id="path1236" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 302.8653 C 305.2428 308.2926 309.7058 313.7241 313.6426 318.9172 C 314.8205 320.4696 316.206 323.2124 319.8177 323.472 C 322.813 323.6867 325.4451 322.3305 327.4225 321.2838 C 332.0169 318.8513 348.5786 312.9344 344.149 308.542 C 342.2234 306.632 336.3062 307.1207 333.0576 307.07 C 322.2438 306.9009 313.0262 303.7954 302.5419 302.8653 z " fill="#fefffc" id="path1237" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.1113 303.1469 L 396.1275 303.4293 L 395.1113 303.1469 z " fill="#807b7a" id="path1238" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 431.7319 303.1469 L 432.7481 303.4293 L 431.7319 303.1469 z " fill="#b7c3c4" id="path1239" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 121.4727 304.2748 L 121.9823 304.8379 L 121.4727 304.2748 z " fill="#45453d" id="path1240" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 303.7108 L 166.7404 304.5563 L 165.2145 303.7108 z " fill="#73837d" id="path1241" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 303.7108 L 223.1971 307.0928 L 221.6713 303.7108 z " fill="#394444" id="path1242" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 257.2743 304.2748 L 257.7839 304.8379 L 257.2743 304.2748 z " fill="#333739" id="path1243" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 303.7108 L 267.4472 307.0928 L 267.4472 303.7108 z " fill="#83888b" id="path1244" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 303.7108 L 268.973 306.2473 L 268.973 303.7108 z " fill="#373b3d" id="path1245" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.189 303.9924 L 312.2052 304.2748 L 311.189 303.9924 z " fill="#5d5e66" id="path1246" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 303.7108 L 372.7314 304.5563 L 371.2056 303.7108 z " fill="#7a8686" id="path1247" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.0078 303.9924 L 390.0241 304.2748 L 389.0078 303.9924 z " fill="#82928c" id="path1248" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 304.5563 L 136.2231 305.4018 L 134.6973 304.5563 z " fill="#959a9c" id="path1249" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 315.7666 304.8379 L 316.7829 305.1203 L 315.7666 304.8379 z " fill="#5d5e66" id="path1250" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.2573 304.5563 L 380.3607 305.4018 L 374.2573 304.5563 z " fill="#bbd5cc" id="path1251" stroke="none" style="fill:#bbd5cc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 304.5563 L 384.9384 305.4018 L 380.3607 304.5563 z " fill="#7a8686" id="path1252" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.1025 304.8379 L 425.1188 305.1203 L 424.1025 304.8379 z " fill="#a8aeb0" id="path1253" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 133.1715 305.4018 L 134.6973 306.2473 L 133.1715 305.4018 z " fill="#5d5e66" id="path1254" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 305.4018 L 215.5678 307.0928 L 210.9904 305.4018 z " fill="#97a4a4" id="path1255" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 305.4018 L 268.973 308.7839 L 265.9213 305.4018 z " fill="#53575a" id="path1256" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 305.4018 L 323.904 306.2473 L 319.3263 305.4018 z " fill="#74787b" id="path1257" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.9469 306.8113 L 120.4565 307.3744 L 119.9469 306.8113 z " fill="#4c5450" id="path1258" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 311.3204 L 178.9473 306.2473 L 160.6369 311.3204 z " fill="#92a39c" id="path1259" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.4305 306.5289 L 208.4467 306.8113 L 207.4305 306.5289 z " fill="#b5babd" id="path1260" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 330.767 L 215.7526 328.4013 L 217.994 334.149 L 223.1971 349.3681 C 245.6519 340.8006 230.4053 329.7067 221.8561 318.9299 C 219.5413 316.0121 217.3471 306.2947 209.4797 306.9779 C 202.8682 307.552 203.3732 311.9198 203.3626 314.7024 C 203.3396 320.6531 199.2335 329.3558 212.5162 330.767 z " fill="#fefffc" id="path1261" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 306.2473 L 223.1971 308.7839 L 223.1971 306.2473 z " fill="#7a8686" id="path1262" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 306.2473 L 337.6368 307.0928 L 323.904 306.2473 z " fill="#a19ea2" id="path1263" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 306.2473 L 343.7402 307.0928 L 337.6368 306.2473 z " fill="#373b3d" id="path1264" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 416.9814 306.2473 L 418.5073 307.0928 L 416.9814 306.2473 z " fill="#6a7676" id="path1265" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 307.0928 L 201.8352 315.5479 L 204.8869 307.0928 L 201.8352 307.0928 z " fill="#83888b" id="path1266" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 307.0928 L 299.4902 313.0114 L 293.3867 307.0928 z " fill="#63686a" id="path1267" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 307.0928 L 345.266 313.0114 L 345.266 307.0928 z " fill="#82928c" id="path1268" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 310.4749 L 363.5763 307.9384 C 359.4718 306.7775 356.3391 308.9995 360.5247 310.4749 z " fill="#74787b" id="path1269" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 307.9384 L 117.9129 310.4749 L 117.9129 307.9384 z " fill="#b3c4bd" id="path1270" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 307.9384 L 131.6456 308.7839 L 130.1198 307.9384 z " fill="#a0a5a8" id="path1271" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 216.076 308.5023 L 216.5856 309.0654 L 216.076 308.5023 z " fill="#6a7676" id="path1272" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 307.9384 L 226.2489 313.8569 L 224.7231 307.9384 z " fill="#484c4e" id="path1273" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 307.9384 L 258.292 324.0029 C 262.8512 320.6429 268.854 312.0111 265.9213 307.9384 z " fill="#7a8686" id="path1274" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 306.1017 308.5023 L 306.6114 309.0654 L 306.1017 308.5023 z " fill="#4f5058" id="path1275" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 309.6294 L 365.1022 307.9384 L 358.9988 309.6294 z " fill="#e6ecee" id="path1276" stroke="none" style="fill:#e6ecee;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 307.9384 L 366.6279 308.7839 L 365.1022 307.9384 z " fill="#8a9697" id="path1277" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 310.4749 L 392.5677 307.9384 L 383.4125 310.4749 z " fill="#596465" id="path1278" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.3699 308.2199 L 411.386 308.5023 L 410.3699 308.2199 z " fill="#807b7a" id="path1279" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.5763 308.7839 L 365.1022 309.6294 L 363.5763 308.7839 z " fill="#63686a" id="path1280" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 309.6294 L 192.6799 310.4749 L 188.1024 309.6294 z " fill="#aeb3b5" id="path1281" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.6966 310.1933 L 253.2063 310.7564 L 252.6966 310.1933 z " fill="#333739" id="path1282" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 377.3091 312.1659 L 383.4125 309.6294 L 377.3091 312.1659 z " fill="#33322b" id="path1283" stroke="none" style="fill:#33322b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 310.4749 L 153.0076 313.8569 L 159.111 310.4749 z " fill="#42514b" id="path1284" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.0167 310.7564 L 184.033 311.0388 L 183.0167 310.7564 z " fill="#63686a" id="path1285" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 310.4749 L 192.6799 317.2389 L 192.6799 310.4749 z " fill="#7a8686" id="path1286" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 310.4749 L 235.4041 313.0114 L 235.4041 310.4749 z " fill="#857f8a" id="path1287" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.2148 310.7564 L 402.2309 311.0388 L 401.2148 310.7564 z " fill="#a4a9ac" id="path1288" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 311.3204 L 127.0681 312.1659 L 125.5421 311.3204 z " fill="#686c6f" id="path1289" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.4391 311.6019 L 179.4554 311.8843 L 178.4391 311.6019 z " fill="#a19ea2" id="path1290" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.6019 311.8843 L 218.1115 312.4474 L 217.6019 311.8843 z " fill="#63686a" id="path1291" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 313.8569 L 377.3091 311.3204 L 365.1022 313.8569 z " fill="#53575a" id="path1292" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 311.3204 L 398.671 312.1659 L 397.1453 311.3204 z " fill="#5d5e66" id="path1293" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.8951 312.7298 L 117.4048 313.2929 L 116.8951 312.7298 z " fill="#4c5450" id="path1294" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 173.8617 312.4474 L 174.8778 312.7298 L 173.8617 312.4474 z " fill="#a4a9ac" id="path1295" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 312.1659 C 279.767 320.363 272.2673 328.7868 266.1259 336.6855 C 261.0934 343.1579 254.1142 349.2379 247.608 355.2866 C 245.8288 356.9396 240.9933 360.117 242.484 362.2079 C 244.2571 364.6929 255.785 365.7464 259.8178 366.8557 C 263.4296 367.8491 275.5801 373.2096 279.4205 371.8213 C 282.5119 370.7036 280.3039 366.9233 279.6373 365.4327 C 277.0189 359.57 275.9369 353.7233 276.7397 347.6771 C 277.5559 341.5193 285.8871 336.4733 293.8537 332.5899 C 296.9497 331.0798 305.6089 329.5647 306.1612 327.062 C 306.9563 323.4559 297.8377 319.6393 294.0552 317.2516 C 291.0202 315.3357 288.0066 313.6269 284.2316 312.1659 z " fill="#fefffc" id="path1296" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 309.1535 312.7298 L 309.6631 313.2929 L 309.1535 312.7298 z " fill="#575f5b" id="path1297" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.1113 312.4474 L 396.1275 312.7298 L 395.1113 312.4474 z " fill="#b5b4ac" id="path1298" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.42206 313.2929 L 60.43832 313.5753 L 59.42206 313.2929 z " fill="#97a4a4" id="path1299" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 61.45605 313.0114 L 72.13704 313.8569 L 61.45605 313.0114 z " fill="#53575a" id="path1300" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 73.15478 313.2929 L 74.17105 313.5753 L 73.15478 313.2929 z " fill="#bfcccd" id="path1301" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 313.0114 L 125.5421 313.8569 L 124.0163 313.0114 z " fill="#575f5b" id="path1302" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.6019 313.5753 L 218.1115 314.1384 L 217.6019 313.5753 z " fill="#b7c3c4" id="path1303" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 313.0114 L 227.7748 318.9299 L 226.2489 313.0114 z " fill="#686c6f" id="path1304" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 283.2139 313.5753 L 283.7235 314.1384 L 283.2139 313.5753 z " fill="#83888b" id="path1305" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 313.5753 L 300.5079 314.1384 L 299.9983 313.5753 z " fill="#53575a" id="path1306" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 392.0595 313.2929 L 393.0757 313.5753 L 392.0595 313.2929 z " fill="#b5b4ac" id="path1307" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 12.12043 314.1384 L 13.13664 314.4208 L 12.12043 314.1384 z " fill="#b5babd" id="path1308" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 14.1544 313.8569 L 26.36128 314.7024 L 14.1544 313.8569 z " fill="#53575a" id="path1309" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 27.37903 314.1384 L 28.39525 314.4208 L 27.37903 314.1384 z " fill="#9facad" id="path1310" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 54.84452 314.1384 L 55.86079 314.4208 L 54.84452 314.1384 z " fill="#4c5450" id="path1311" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 313.8569 L 146.9043 314.7024 L 145.3783 313.8569 z " fill="#92a39c" id="path1312" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.2323 314.1384 L 167.2486 314.4208 L 166.2323 314.1384 z " fill="#b5b4ac" id="path1313" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 364.5941 314.1384 L 365.6103 314.4208 L 364.5941 314.1384 z " fill="#82928c" id="path1314" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 387.9901 313.8569 L 389.5159 314.7024 L 387.9901 313.8569 z " fill="#6a7676" id="path1315" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 7.542844 314.9839 L 8.559078 315.2663 L 7.542844 314.9839 z " fill="#63686a" id="path1316" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 30.93886 314.7024 L 35.51644 315.5479 L 30.93886 314.7024 z " fill="#596465" id="path1317" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 314.7024 L 52.30086 315.5479 L 50.77506 314.7024 z " fill="#959a9c" id="path1318" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.30997 314.9839 L 83.32624 315.2663 L 82.30997 314.9839 z " fill="#74787b" id="path1319" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 314.7024 L 145.3783 315.5479 L 143.8525 314.7024 z " fill="#8a9697" id="path1320" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 237.438 315.2663 L 237.9477 315.8294 L 237.438 315.2663 z " fill="#b8bec0" id="path1321" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 314.7024 L 307.1196 320.6209 L 301.0161 314.7024 z " fill="#53575a" id="path1322" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.6794 315.2663 L 311.189 315.8294 L 310.6794 315.2663 z " fill="#4c5450" id="path1323" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 314.7024 L 339.1625 315.5479 L 337.6368 314.7024 z " fill="#92a39c" id="path1324" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.0682 314.9839 L 364.0845 315.2663 L 363.0682 314.9839 z " fill="#53575a" id="path1325" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.9561 314.9839 L 386.9723 315.2663 L 385.9561 314.9839 z " fill="#bfcccd" id="path1326" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 1.439407 315.8294 L 2.455629 316.1118 L 1.439407 315.8294 z " fill="#575f5b" id="path1327" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 37.0423 315.5479 L 38.56816 316.3934 L 37.0423 315.5479 z " fill="#6a7676" id="path1328" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 315.5479 L 50.77506 316.3934 L 49.24913 315.5479 z " fill="#8a9697" id="path1329" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 315.5479 L 143.8525 316.3934 L 142.3266 315.5479 z " fill="#92a39c" id="path1330" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.0771 315.8294 L 158.0933 316.1118 L 157.0771 315.8294 z " fill="#a4a9ac" id="path1331" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 315.5479 L 201.8352 329.9215 L 201.8352 315.5479 z " fill="#333739" id="path1332" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 315.5479 L 282.7057 316.3934 L 281.1799 315.5479 z " fill="#736c77" id="path1333" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 315.5479 L 337.6368 316.3934 L 336.1108 315.5479 z " fill="#777c7e" id="path1334" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -3.138171 316.675 L -2.121948 316.9574 L -3.138171 316.675 z " fill="#4c5450" id="path1335" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 40.09401 316.3934 L 41.61988 317.2389 L 40.09401 316.3934 z " fill="#a0a5a8" id="path1336" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 316.3934 L 142.3266 317.2389 L 140.8008 316.3934 z " fill="#9aaba5" id="path1337" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 152.4995 316.675 L 153.5158 316.9574 L 152.4995 316.675 z " fill="#b5b4ac" id="path1338" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 237.438 316.9574 L 237.9477 317.5205 L 237.438 316.9574 z " fill="#7a8686" id="path1339" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 316.3934 L 336.1108 317.2389 L 334.5851 316.3934 z " fill="#575f5b" id="path1340" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -7.715748 317.5205 L -6.699526 317.8029 L -7.715748 317.5205 z " fill="#45453d" id="path1341" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 41.61988 317.2389 L 43.14574 318.0844 L 41.61988 317.2389 z " fill="#7a8686" id="path1342" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 317.2389 L 113.3354 319.7754 L 113.3354 317.2389 z " fill="#777c7e" id="path1343" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 121.4727 317.8029 L 121.9823 318.366 L 121.4727 317.8029 z " fill="#a4a9ac" id="path1344" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 317.2389 L 192.6799 322.3119 L 192.6799 317.2389 z " fill="#b3c4bd" id="path1345" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.6536 317.8029 L 221.1633 318.366 L 220.6536 317.8029 z " fill="#b5b4ac" id="path1346" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 248.1191 317.8029 L 248.6287 318.366 L 248.1191 317.8029 z " fill="#333739" id="path1347" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 317.2389 L 294.9126 318.0844 L 293.3867 317.2389 z " fill="#83888b" id="path1348" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -13.8192 318.366 L -12.80296 318.6484 L -13.8192 318.366 z " fill="#74787b" id="path1349" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 43.14574 318.0844 L 44.6716 318.9299 L 43.14574 318.0844 z " fill="#91988e" id="path1350" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 61.45605 318.0844 L 88.9215 322.8091 L 128.5939 331.6125 C 123.6151 329.005 116.4587 327.5346 110.2836 325.9679 C 95.38048 322.1876 78.02534 318.2408 61.45605 318.0844 z " fill="#53575a" id="path1351" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 318.0844 L 139.2749 318.9299 L 137.7491 318.0844 z " fill="#9aaba5" id="path1352" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 318.0844 L 233.8783 327.385 L 229.3006 318.0844 z " fill="#3c3837" id="path1353" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 318.0844 L 296.4385 318.9299 L 294.9126 318.0844 z " fill="#777c7e" id="path1354" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -18.39676 319.2115 L -17.38055 319.4939 L -18.39676 319.2115 z " fill="#63686a" id="path1355" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 45.68936 319.2115 L 46.70557 319.4939 L 45.68936 319.2115 z " fill="#4c5450" id="path1356" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 318.9299 L 139.2749 320.6209 L 136.2231 318.9299 z " fill="#888d90" id="path1357" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 313.7311 319.4939 L 314.2408 320.057 L 313.7311 319.4939 z " fill="#5d5e66" id="path1358" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 318.9299 L 331.5333 319.7754 L 330.0074 318.9299 z " fill="#575f5b" id="path1359" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 369.6797 318.9299 L 381.8866 320.6209 L 369.6797 318.9299 z " fill="#53575a" id="path1360" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -22.46624 319.7754 L -20.94037 320.6209 L -22.46624 319.7754 z " fill="#74787b" id="path1361" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -14.83693 322.3119 L 9.576826 321.4664 C 2.777593 319.3628 -8.538197 319.7737 -14.83693 322.3119 z " fill="#53575a" id="path1362" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 3.473389 319.7754 L 27.88714 320.6209 L 3.473389 319.7754 z " fill="#a8aeb0" id="path1363" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 9.576826 320.6209 C 14.87613 321.9594 26.97315 322.5487 30.93886 319.7754 L 9.576826 320.6209 z " fill="#33413c" id="path1364" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 319.7754 L 107.2319 320.6209 L 105.706 319.7754 z " fill="#92a39c" id="path1365" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 277.1105 320.3394 L 277.6201 320.9025 L 277.1105 320.3394 z " fill="#a0a5a8" id="path1366" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 319.7754 L 330.0074 320.6209 L 328.4816 319.7754 z " fill="#63686a" id="path1367" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 381.8866 319.7754 L 386.4642 320.6209 L 381.8866 319.7754 z " fill="#93aca4" id="path1368" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.9639 321.1849 L 239.4735 321.748 L 238.9639 321.1849 z " fill="#74787b" id="path1369" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 245.0673 321.1849 L 245.577 321.748 L 245.0673 321.1849 z " fill="#53575a" id="path1370" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 320.6209 L 310.1711 323.1574 L 307.1196 320.6209 z " fill="#2c2b2e" id="path1371" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 320.6209 L 314.7488 323.1574 L 314.7488 320.6209 z " fill="#b5babd" id="path1372" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 320.6209 L 328.4816 321.4664 L 326.9558 320.6209 z " fill="#73837d" id="path1373" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 323.1574 L 354.4212 322.3119 L 354.4212 320.6209 L 331.5333 323.1574 z " fill="#434749" id="path1374" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.5159 320.6209 L 394.0936 321.4664 L 389.5159 320.6209 z " fill="#33413c" id="path1375" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.1113 320.9025 L 396.1275 321.1849 L 395.1113 320.9025 z " fill="#a1b2ab" id="path1376" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.3013 321.748 L 112.3175 322.0304 L 111.3013 321.748 z " fill="#53575a" id="path1377" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 321.4664 L 326.9558 322.3119 L 325.4298 321.4664 z " fill="#9aaba5" id="path1378" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 321.4664 L 404.7745 322.3119 L 400.1969 321.4664 z " fill="#63736d" id="path1379" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -34.165 322.8759 L -33.65537 323.439 L -34.165 322.8759 z " fill="#807b7a" id="path1380" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.8951 322.8759 L 117.4048 323.439 L 116.8951 322.8759 z " fill="#373b3d" id="path1381" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.5845 322.8759 L 276.0942 323.439 L 275.5845 322.8759 z " fill="#c3c5c2" id="path1382" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 407.8263 322.3119 L 412.4038 323.1574 L 407.8263 322.3119 z " fill="#63736d" id="path1383" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 323.1574 L 194.2059 326.5395 L 194.2059 323.1574 z " fill="#373b3d" id="path1384" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.2312 323.7214 L 225.7408 324.2845 L 225.2312 323.7214 z " fill="#b8c5c5" id="path1385" stroke="none" style="fill:#b8c5c5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 323.1574 L 243.0334 325.694 L 239.9816 323.1574 z " fill="#bfcccd" id="path1386" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.5415 323.7214 L 244.0512 324.2845 L 243.5415 323.7214 z " fill="#53575a" id="path1387" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 323.1574 L 250.6627 339.222 C 254.3614 335.6303 261.4276 326.8608 256.7661 323.1574 z " fill="#4c5450" id="path1388" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -30.09554 324.0029 L -25.51796 324.8485 L -30.09554 324.0029 z " fill="#8f9099" id="path1389" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 325.694 L 178.9473 324.0029 L 175.8955 325.694 z " fill="#83888b" id="path1390" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 324.0029 L 275.0765 324.8485 L 273.5507 324.0029 z " fill="#53575a" id="path1391" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 324.0029 L 322.3781 324.8485 L 316.2746 324.0029 z " fill="#575f5b" id="path1392" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 324.0029 L 415.4556 324.8485 L 400.1969 324.0029 z " fill="#6a7676" id="path1393" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -22.46624 324.8485 L -17.88865 325.694 L -22.46624 324.8485 z " fill="#c8c5ca" id="path1394" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -17.88865 324.8485 L 12.62854 325.7903 L 26.36128 324.8485 L -17.88865 324.8485 z " fill="#53575a" id="path1395" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 334.149 L 47.72332 324.8485 L 24.83542 334.149 z " fill="#6a7676" id="path1396" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 324.8485 L 122.4904 325.694 L 120.9646 324.8485 z " fill="#63736d" id="path1397" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.7571 325.4124 L 227.2666 325.9755 L 226.7571 325.4124 z " fill="#a0a5a8" id="path1398" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 392.0595 325.13 L 393.0757 325.4124 L 392.0595 325.13 z " fill="#434749" id="path1399" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.0936 324.8485 L 398.671 325.694 L 394.0936 324.8485 z " fill="#777c7e" id="path1400" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.9473 325.694 L 180.4732 326.5395 L 178.9473 325.694 z " fill="#736c77" id="path1401" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 327.385 L 243.0334 325.694 L 239.9816 327.385 z " fill="#888d90" id="path1402" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 325.694 L 307.1196 328.2305 L 307.1196 325.694 z " fill="#a0a5a8" id="path1403" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.4304 325.9755 L 385.4464 326.2579 L 384.4304 325.9755 z " fill="#575f5b" id="path1404" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 325.694 L 391.0419 326.5395 L 386.4642 325.694 z " fill="#a19ea2" id="path1405" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 13.64629 326.821 L 14.66251 327.1034 L 13.64629 326.821 z " fill="#53575a" id="path1406" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 69.08531 328.2305 L 75.18878 327.385 L 69.08531 328.2305 z " fill="#b5babd" id="path1407" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 75.18878 326.5395 L 79.76644 327.385 L 75.18878 326.5395 z " fill="#53575a" id="path1408" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 326.5395 L 183.5249 327.385 L 181.999 326.5395 z " fill="#777c7e" id="path1409" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 326.5395 L 194.2059 327.385 L 189.6282 326.5395 z " fill="#83888b" id="path1410" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 326.5395 L 215.5678 333.3035 L 215.5678 326.5395 z " fill="#434749" id="path1411" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 228.2828 327.1034 L 228.7926 327.6665 L 228.2828 327.1034 z " fill="#7a8686" id="path1412" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 272.5328 327.1034 L 273.0424 327.6665 L 272.5328 327.1034 z " fill="#b8bec0" id="path1413" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 328.2305 L 333.0591 326.5395 L 330.0074 328.2305 z " fill="#5d5e66" id="path1414" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 326.5395 L 372.7314 327.385 L 366.6279 326.5395 z " fill="#342c31" id="path1415" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 373.7492 326.821 L 374.7655 327.1034 L 373.7492 326.821 z " fill="#74787b" id="path1416" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 375.7832 326.5395 L 384.9384 327.385 L 375.7832 326.5395 z " fill="#d2dbd6" id="path1417" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 7.542844 327.6665 L 8.559078 327.9489 L 7.542844 327.6665 z " fill="#7a8686" id="path1418" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 80.78417 327.6665 L 81.80031 327.9489 L 80.78417 327.6665 z " fill="#4f5058" id="path1419" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 327.385 L 130.1198 328.2305 L 128.5939 327.385 z " fill="#92a39c" id="path1420" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 327.385 L 185.0508 328.2305 L 183.5249 327.385 z " fill="#8a9697" id="path1421" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 327.385 L 212.5162 329.9215 L 212.5162 327.385 z " fill="#aeb3b5" id="path1422" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 327.385 L 340.6884 329.076 L 331.5333 327.385 z " fill="#b5b4ac" id="path1423" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 327.385 L 365.1022 328.2305 L 360.5247 327.385 z " fill="#857f8a" id="path1424" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.81804 328.2305 L 87.3957 329.076 L 82.81804 328.2305 z " fill="#adaeb8" id="path1425" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 328.2305 L 188.1024 329.076 L 186.5765 328.2305 z " fill="#888d90" id="path1426" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 271.007 328.7944 L 271.5166 329.3575 L 271.007 328.7944 z " fill="#83888b" id="path1427" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.0768 328.512 L 335.0931 328.7944 L 334.0768 328.512 z " fill="#6a7676" id="path1428" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 329.9215 L 345.266 329.9215 L 339.1625 329.9215 z " fill="#74787b" id="path1429" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 355.947 328.2305 L 360.5247 329.076 L 355.947 328.2305 z " fill="#adaeb8" id="path1430" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 0.42167 329.076 L 1.947518 329.9215 L 0.42167 329.076 z " fill="#73837d" id="path1431" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 73.66298 329.076 L 75.18878 329.9215 L 73.66298 329.076 z " fill="#63736d" id="path1432" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 89.93923 329.3575 L 90.9555 329.6399 L 89.93923 329.3575 z " fill="#74787b" id="path1433" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 133.1715 329.076 L 134.6973 329.9215 L 133.1715 329.076 z " fill="#82928c" id="path1434" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.8089 329.6399 L 230.3184 330.203 L 229.8089 329.6399 z " fill="#a8aeb0" id="path1435" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 329.076 L 305.5937 329.9215 L 301.0161 329.076 z " fill="#a0a5a8" id="path1436" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 329.076 L 354.4212 331.6125 L 354.4212 329.076 z " fill="#a4a9ac" id="path1437" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -2.630048 329.9215 L -1.1042 330.767 L -2.630048 329.9215 z " fill="#8a9697" id="path1438" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 329.9215 L 50.77506 335.84 L 49.24913 329.9215 z " fill="#2b332f" id="path1439" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 58.40432 329.9215 L 64.50778 338.3765 L 58.40432 329.9215 z " fill="#63686a" id="path1440" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 76.71471 329.9215 L 78.24051 330.767 L 76.71471 329.9215 z " fill="#8a9697" id="path1441" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 329.9215 L 98.07669 330.767 L 93.49916 329.9215 z " fill="#74787b" id="path1442" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 329.9215 L 204.8869 330.767 L 203.3611 329.9215 z " fill="#686c6f" id="path1443" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 329.9215 L 207.9386 330.767 L 206.4127 329.9215 z " fill="#9d9c94" id="path1444" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 329.9215 L 210.9904 330.767 L 209.4645 329.9215 z " fill="#7a8686" id="path1445" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -5.681778 330.767 L -4.155919 331.6125 L -5.681778 330.767 z " fill="#9d9c94" id="path1446" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.72332 330.767 L 49.24913 331.6125 L 47.72332 330.767 z " fill="#575f5b" id="path1447" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 331.6125 L 49.24913 335.84 L 50.77506 330.767 L 46.19746 331.6125 z " fill="#d6dee7" id="path1448" stroke="none" style="fill:#d6dee7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 69.08531 332.458 L 72.13704 330.767 L 69.08531 332.458 z " fill="#596465" id="path1449" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 330.767 L 102.6542 331.6125 L 98.07669 330.767 z " fill="#888d90" id="path1450" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 330.767 L 139.2749 331.6125 L 137.7491 330.767 z " fill="#989d9f" id="path1451" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 330.767 L 195.7317 331.6125 L 194.2059 330.767 z " fill="#63686a" id="path1452" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 269.481 331.3309 L 269.9907 331.894 L 269.481 331.3309 z " fill="#b5b4ac" id="path1453" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 4.999236 334.149 L 14.1544 331.6125 L 4.999236 334.149 z " fill="#989d9f" id="path1454" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 70.61125 331.6125 L 76.52846 337.9724 L 85.5372 339.5509 L 110.2836 349.3681 C 103.3882 342.3369 84.09524 334.3274 70.61125 331.6125 z " fill="#f8feff" id="path1455" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.29224 331.6125 L 82.81804 332.458 L 81.29224 331.6125 z " fill="#989d9f" id="path1456" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 331.6125 L 107.2319 332.458 L 102.6542 331.6125 z " fill="#a0a5a8" id="path1457" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 331.6125 L 140.8008 332.458 L 139.2749 331.6125 z " fill="#7a8686" id="path1458" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 333.3035 L 328.4816 331.6125 L 323.904 333.3035 z " fill="#2b332f" id="path1459" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -10.25936 332.458 L -8.733496 333.3035 L -10.25936 332.458 z " fill="#596465" id="path1460" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 43.14574 332.458 L 44.6716 333.3035 L 43.14574 332.458 z " fill="#6a7676" id="path1461" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 11.10268 348.5226 C 18.75182 347.853 28.32659 348.0956 35.51644 346.9965 C 41.97998 346.0089 49.69777 342.2447 50.26394 338.3774 C 50.49118 336.8284 50.05182 333.8505 46.7193 333.3069 C 43.01451 332.7032 38.29656 334.8271 35.51644 335.9 C 26.55048 339.3599 17.32209 343.5071 11.10268 348.5226 z " fill="#fefffc" id="path1462" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 75.18878 332.458 L 76.71471 333.3035 L 75.18878 332.458 z " fill="#7a8686" id="path1463" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 109.7754 332.7395 L 110.7917 333.0219 L 109.7754 332.7395 z " fill="#686c6f" id="path1464" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 332.458 L 142.3266 333.3035 L 140.8008 332.458 z " fill="#6a7676" id="path1465" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 332.458 L 233.8783 333.3035 L 232.3523 332.458 z " fill="#595a63" id="path1466" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 332.458 L 293.3867 333.3035 L 291.8609 332.458 z " fill="#63686a" id="path1467" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 332.458 L 351.3695 338.2852 L 380.3607 345.1406 C 367.5985 339.0605 342.3028 332.8241 325.4298 332.458 z " fill="#686c6f" id="path1468" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -13.31107 333.3035 L -11.78521 334.149 L -13.31107 333.3035 z " fill="#7a8686" id="path1469" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -2.630048 336.6855 L 4.999236 333.3035 L -2.630048 336.6855 z " fill="#686c6f" id="path1470" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.3531 333.5851 L 115.3692 333.8675 L 114.3531 333.5851 z " fill="#595a63" id="path1471" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 333.3035 L 143.8525 334.149 L 142.3266 333.3035 z " fill="#63686a" id="path1472" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 195.7317 333.3035 L 195.7317 335.84 L 195.7317 333.3035 z " fill="#686c6f" id="path1473" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.0939 333.3035 L 217.0939 335.84 L 217.0939 333.3035 z " fill="#bbc8c9" id="path1474" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.9552 333.8675 L 268.4649 334.4306 L 267.9552 333.8675 z " fill="#bfcccd" id="path1475" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -16.36279 334.149 L -14.83693 334.9945 L -16.36279 334.149 z " fill="#a0a5a8" id="path1476" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 11.10268 342.6041 L 26.36128 334.149 L 11.10268 342.6041 z " fill="#484c4e" id="path1477" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 334.149 L 40.09401 334.9945 L 38.56816 334.149 z " fill="#74787b" id="path1478" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 71.11932 334.713 L 71.62898 335.2761 L 71.11932 334.713 z " fill="#484c4e" id="path1479" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 334.149 L 81.29224 334.9945 L 79.76644 334.149 z " fill="#6a7676" id="path1480" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.3957 334.149 L 88.9215 334.9945 L 87.3957 334.149 z " fill="#74787b" id="path1481" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 118.9306 334.4306 L 119.9469 334.713 L 118.9306 334.4306 z " fill="#686c6f" id="path1482" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 334.149 L 145.3783 334.9945 L 143.8525 334.149 z " fill="#63686a" id="path1483" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 334.149 L 204.8869 339.222 L 207.9386 334.149 L 204.8869 334.149 z " fill="#c6ced6" id="path1484" stroke="none" style="fill:#c6ced6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 334.149 L 212.5162 334.9945 L 207.9386 334.149 z " fill="#686c6f" id="path1485" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 334.149 L 235.4041 334.9945 L 233.8783 334.149 z " fill="#63686a" id="path1486" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.0341 335.2761 L 126.0504 335.5585 L 125.0341 335.2761 z " fill="#484c4e" id="path1487" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 334.9945 L 146.9043 335.84 L 145.3783 334.9945 z " fill="#63736d" id="path1488" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 362.0507 C 217.991 356.757 218.8759 350.4808 215.7082 343.4496 C 215.1284 342.1635 212.9831 334.7332 208.7092 335.7834 C 205.2729 336.628 206.3852 341.0077 206.454 342.6041 C 206.7362 349.1001 207.9386 355.5191 207.9386 362.0507 z " fill="#fefffc" id="path1489" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 334.9945 L 212.5162 337.531 L 212.5162 334.9945 z " fill="#595a63" id="path1490" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 334.9945 L 267.4472 335.84 L 265.9213 334.9945 z " fill="#53575a" id="path1491" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 334.9945 L 288.8092 335.84 L 287.2833 334.9945 z " fill="#91988e" id="path1492" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.1539 334.9945 L 369.6797 335.84 L 368.1539 334.9945 z " fill="#8a9697" id="path1493" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -20.94037 335.84 L -19.41452 336.6855 L -20.94037 335.84 z " fill="#63686a" id="path1494" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -11.78521 338.3765 L -2.630048 335.84 L -11.78521 338.3765 z " fill="#959a9c" id="path1495" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 33.99058 335.84 L 35.51644 336.6855 L 33.99058 335.84 z " fill="#6a7676" id="path1496" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 335.84 L 50.77506 338.3765 L 50.77506 335.84 z " fill="#63686a" id="path1497" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 84.34397 335.84 L 85.86977 336.6855 L 84.34397 335.84 z " fill="#686c6f" id="path1498" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 335.84 L 93.49916 336.6855 L 91.97323 335.84 z " fill="#9aaba5" id="path1499" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 129.6116 336.1216 L 130.6279 336.404 L 129.6116 336.1216 z " fill="#595a63" id="path1500" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 195.7317 335.84 L 195.7317 339.222 L 195.7317 335.84 z " fill="#cacfd1" id="path1501" stroke="none" style="fill:#cacfd1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 335.84 L 287.2833 336.6855 L 285.7574 335.84 z " fill="#53575a" id="path1502" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 335.84 L 372.7314 336.6855 L 371.2056 335.84 z " fill="#959a9c" id="path1503" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -23.99209 336.6855 L -22.46624 337.531 L -23.99209 336.6855 z " fill="#92a39c" id="path1504" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.13704 336.6855 L 73.66298 337.531 L 72.13704 336.6855 z " fill="#96a3a3" id="path1505" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 336.6855 L 78.24051 340.0675 L 79.76644 336.6855 z " fill="#a19ea2" id="path1506" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 336.6855 L 95.02496 337.531 L 93.49916 336.6855 z " fill="#807b7a" id="path1507" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.1893 336.9671 L 135.2054 337.2495 L 134.1893 336.9671 z " fill="#484c4e" id="path1508" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 236.93 336.6855 L 236.93 339.222 L 236.93 336.6855 z " fill="#4c5450" id="path1509" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 336.6855 L 285.7574 337.531 L 284.2316 336.6855 z " fill="#575f5b" id="path1510" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 336.6855 L 313.2229 345.1406 L 302.5419 336.6855 z " fill="#7a8686" id="path1511" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -27.04381 337.531 L -25.51796 338.3765 L -27.04381 337.531 z " fill="#9aaba5" id="path1512" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 73.66298 337.531 L 75.18878 338.3765 L 73.66298 337.531 z " fill="#6a7676" id="path1513" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 138.7668 337.8126 L 139.7831 338.095 L 138.7668 337.8126 z " fill="#373b3d" id="path1514" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 213.0243 338.095 L 213.5339 338.6581 L 213.0243 338.095 z " fill="#b7c3c4" id="path1515" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 337.531 L 284.2316 338.3765 L 282.7057 337.531 z " fill="#74787b" id="path1516" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 375.7832 337.531 L 377.3091 338.3765 L 375.7832 337.531 z " fill="#63736d" id="path1517" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -34.67311 345.9861 L -10.25936 338.3765 L -34.67311 345.9861 z " fill="#686c6f" id="path1518" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 51.28312 338.9405 L 51.79279 339.5036 L 51.28312 338.9405 z " fill="#b5babd" id="path1519" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 62.98185 338.3765 L 66.03358 342.6041 L 62.98185 338.3765 z " fill="#8a9697" id="path1520" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 338.3765 L 91.97323 339.222 L 90.44743 338.3765 z " fill="#53575a" id="path1521" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.3443 338.6581 L 144.3606 338.9405 L 143.3443 338.6581 z " fill="#595a63" id="path1522" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 219.1277 338.9405 L 219.6374 339.5036 L 219.1277 338.9405 z " fill="#7a8686" id="path1523" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 338.3765 L 244.5593 346.8316 L 249.1368 338.3765 z " fill="#6a7676" id="path1524" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 378.8349 338.3765 L 380.3607 339.222 L 378.8349 338.3765 z " fill="#8a9697" id="path1525" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.36128 339.222 L 27.88714 340.0675 L 26.36128 339.222 z " fill="#63686a" id="path1526" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 339.222 L 93.49916 340.0675 L 91.97323 339.222 z " fill="#686c6f" id="path1527" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 147.9219 339.5036 L 148.9381 339.786 L 147.9219 339.5036 z " fill="#596465" id="path1528" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 155.0416 339.786 L 155.5512 340.3491 L 155.0416 339.786 z " fill="#5d5e66" id="path1529" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 339.222 L 197.2576 349.3681 L 197.2576 339.222 z " fill="#74787b" id="path1530" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 339.222 L 204.8869 343.4496 L 204.8869 339.222 z " fill="#6a7676" id="path1531" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 263.3777 339.786 L 263.8872 340.3491 L 263.3777 339.786 z " fill="#c3c5c2" id="path1532" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.9379 339.786 L 326.4475 340.3491 L 325.9379 339.786 z " fill="#97a4a4" id="path1533" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -33.14726 340.0675 L -31.6214 340.913 L -33.14726 340.0675 z " fill="#63736d" id="path1534" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 340.0675 L 26.36128 340.913 L 24.83542 340.0675 z " fill="#959a9c" id="path1535" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.13704 341.7586 L 75.18878 340.0675 L 72.13704 341.7586 z " fill="#6a7676" id="path1536" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 340.0675 L 95.02496 340.913 L 93.49916 340.0675 z " fill="#74787b" id="path1537" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 340.0675 L 153.0076 340.913 L 151.4818 340.0675 z " fill="#959a9c" id="path1538" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.5502 340.6315 L 215.0598 341.1946 L 214.5502 340.6315 z " fill="#97a4a4" id="path1539" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 340.0675 L 235.4041 342.6041 L 235.4041 340.0675 z " fill="#7a8686" id="path1540" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 340.0675 L 329.0827 344.3314 L 336.184 350.3261 L 338.8437 343.9383 L 326.9558 340.0675 z " fill="#f6fbfe" id="path1541" stroke="none" style="fill:#f6fbfe;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 340.0675 L 384.9384 340.913 L 383.4125 340.0675 z " fill="#74787b" id="path1542" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 73.66298 340.913 C 74.88208 344.3551 78.39465 345.0535 84.34397 345.1406 L 73.66298 340.913 z " fill="#fefffc" id="path1543" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 340.913 L 96.55089 341.7586 L 95.02496 340.913 z " fill="#7a8686" id="path1544" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 340.913 L 262.8695 341.7586 L 261.3437 340.913 z " fill="#596465" id="path1545" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 1.947518 341.7586 L 4.999236 343.4496 L 1.947518 341.7586 z " fill="#959a9c" id="path1546" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 341.7586 L 79.76644 342.6041 L 78.24051 341.7586 z " fill="#888d90" id="path1547" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.55089 341.7586 L 98.07669 342.6041 L 96.55089 341.7586 z " fill="#83888b" id="path1548" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 341.7586 L 105.706 342.6041 L 104.1802 341.7586 z " fill="#96a3a3" id="path1549" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 341.7586 L 220.1455 344.2951 L 220.1455 341.7586 z " fill="#989d9f" id="path1550" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -39.25069 342.6041 L -37.72483 343.4496 L -39.25069 342.6041 z " fill="#82928c" id="path1551" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 18.73199 342.6041 L 20.25784 343.4496 L 18.73199 342.6041 z " fill="#53575a" id="path1552" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 63.49005 343.168 L 63.99971 343.7311 L 63.49005 343.168 z " fill="#413b45" id="path1553" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 64.50778 342.6041 L 64.50778 345.9861 L 64.50778 342.6041 z " fill="#b5babd" id="path1554" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.29224 342.6041 L 82.81804 343.4496 L 81.29224 342.6041 z " fill="#6a7676" id="path1555" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 342.6041 L 107.2319 343.4496 L 105.706 342.6041 z " fill="#82928c" id="path1556" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 342.6041 L 261.3437 343.4496 L 259.8178 342.6041 z " fill="#6a7676" id="path1557" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 342.6041 L 290.3351 351.0591 L 288.8092 342.6041 z " fill="#595a63" id="path1558" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 342.6041 L 339.1625 343.4496 L 337.6368 342.6041 z " fill="#83888b" id="path1559" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -40.77656 343.4496 L -39.25069 344.2951 L -40.77656 343.4496 z " fill="#575f5b" id="path1560" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 17.20612 343.4496 L 18.73199 344.2951 L 17.20612 343.4496 z " fill="#5d5e66" id="path1561" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 74.17105 344.0135 L 74.68071 344.5766 L 74.17105 344.0135 z " fill="#3c3837" id="path1562" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 343.4496 L 95.02496 344.2951 L 93.49916 343.4496 z " fill="#9aaba5" id="path1563" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 343.4496 L 108.7577 344.2951 L 107.2319 343.4496 z " fill="#63686a" id="path1564" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 216.076 344.0135 L 216.5856 344.5766 L 216.076 344.0135 z " fill="#83888b" id="path1565" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 343.4496 L 235.4041 344.2951 L 233.8783 343.4496 z " fill="#63686a" id="path1566" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 343.4496 L 276.6022 360.3597 C 279.8753 356.3824 279.8753 347.4268 276.6022 343.4496 z " fill="#96a3a3" id="path1567" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 15.68025 344.2951 L 17.20612 345.1406 L 15.68025 344.2951 z " fill="#807b7a" id="path1568" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 41.61988 344.2951 L 43.14574 345.1406 L 41.61988 344.2951 z " fill="#91988e" id="path1569" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 66.03358 344.2951 L 69.08531 362.0507 C 72.49866 357.8756 69.42107 348.3856 66.03358 344.2951 z " fill="#8a9697" id="path1570" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 345.1406 L 85.86977 344.2951 L 79.76644 345.1406 z " fill="#cbddd6" id="path1571" stroke="none" style="fill:#cbddd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 344.2951 L 96.55089 345.1406 L 95.02496 344.2951 z " fill="#63736d" id="path1572" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 344.2951 L 233.8783 345.1406 L 232.3523 344.2951 z " fill="#575f5b" id="path1573" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 344.2951 L 259.8178 345.1406 L 258.292 344.2951 z " fill="#777c7e" id="path1574" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 344.2951 L 330.0074 345.1406 L 328.4816 344.2951 z " fill="#596465" id="path1575" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.0936 344.2951 L 395.6194 345.1406 L 394.0936 344.2951 z " fill="#82928c" id="path1576" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -10.25936 345.1406 L -8.733496 345.9861 L -10.25936 345.1406 z " fill="#857f8a" id="path1577" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 14.1544 345.1406 L 15.68025 345.9861 L 14.1544 345.1406 z " fill="#989d9f" id="path1578" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 40.09401 345.1406 L 41.61988 345.9861 L 40.09401 345.1406 z " fill="#63736d" id="path1579" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 75.18878 345.1406 L 79.76644 345.9861 L 75.18878 345.1406 z " fill="#575f5b" id="path1580" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.81804 346.8316 L 87.3957 345.1406 L 82.81804 346.8316 z " fill="#596465" id="path1581" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 345.1406 L 105.706 345.9861 L 104.1802 345.1406 z " fill="#6a7676" id="path1582" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.8612 345.1406 L 116.3869 345.9861 L 114.8612 345.1406 z " fill="#7a8686" id="path1583" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 345.1406 L 221.6713 347.6771 L 221.6713 345.1406 z " fill="#b7c3c4" id="path1584" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 345.1406 L 232.3523 345.9861 L 230.8265 345.1406 z " fill="#575f5b" id="path1585" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 313.2229 345.1406 L 326.9558 357.8231 L 313.2229 345.1406 z " fill="#686c6f" id="path1586" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 378.8349 345.1406 L 387.9901 348.5226 L 378.8349 345.1406 z " fill="#91988e" id="path1587" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -40.77656 348.5226 L -33.14726 345.9861 L -40.77656 348.5226 z " fill="#33413c" id="path1588" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 12.62854 345.9861 L 14.1544 346.8316 L 12.62854 345.9861 z " fill="#90878d" id="path1589" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 345.9861 L 101.1284 346.8316 L 99.6025 345.9861 z " fill="#92a39c" id="path1590" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 345.9861 L 107.2319 346.8316 L 105.706 345.9861 z " fill="#8f9099" id="path1591" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 345.9861 L 117.9129 346.8316 L 116.3869 345.9861 z " fill="#97a4a4" id="path1592" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 345.9861 L 230.8265 346.8316 L 229.3006 345.9861 z " fill="#73837d" id="path1593" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 345.9861 L 239.9816 353.5956 C 243.543 351.4996 246.2606 348.6105 243.0334 345.9861 z " fill="#434749" id="path1594" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 348.5226 L 354.4212 345.9861 L 349.8435 348.5226 z " fill="#c6ced6" id="path1595" stroke="none" style="fill:#c6ced6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -46.88 346.8316 L -45.35413 347.6771 L -46.88 346.8316 z " fill="#575f5b" id="path1596" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -14.83693 346.8316 L -13.31107 347.6771 L -14.83693 346.8316 z " fill="#90878d" id="path1597" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 11.10268 346.8316 L 12.62854 347.6771 L 11.10268 346.8316 z " fill="#777c7e" id="path1598" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 18.73199 346.8316 L 27.88714 347.6771 L 18.73199 346.8316 z " fill="#394444" id="path1599" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.1284 346.8316 L 102.6542 347.6771 L 101.1284 346.8316 z " fill="#82928c" id="path1600" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 346.8316 L 108.7577 347.6771 L 107.2319 346.8316 z " fill="#a19ea2" id="path1601" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 346.8316 L 206.4127 350.2136 L 206.4127 346.8316 z " fill="#c6ced6" id="path1602" stroke="none" style="fill:#c6ced6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 346.8316 L 229.3006 347.6771 L 227.7748 346.8316 z " fill="#9aaba5" id="path1603" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 346.8316 L 235.4041 349.3681 L 232.3523 346.8316 z " fill="#595a63" id="path1604" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 346.8316 L 339.1625 349.3681 L 339.1625 346.8316 z " fill="#a8aeb0" id="path1605" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 355.2866 L 360.5414 348.2224 L 350.6614 348.8971 L 345.8367 359.4778 L 347.892 362.8928 L 358.9988 360.6328 L 384.9384 355.2866 z " fill="#f8feff" id="path1606" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -48.40585 347.6771 L -46.88 348.5226 L -48.40585 347.6771 z " fill="#575f5b" id="path1607" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -1.1042 347.6771 L 0.42167 348.5226 L -1.1042 347.6771 z " fill="#7a8686" id="path1608" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 8.050966 349.3681 L 12.62854 349.3681 L 8.050966 349.3681 z " fill="#a4a9ac" id="path1609" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 32.46473 347.6771 L 37.0423 348.5226 L 32.46473 347.6771 z " fill="#4c5450" id="path1610" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.72332 347.6771 L 29.41301 364.5872 C 35.7148 361.7319 48.90741 352.3688 47.72332 347.6771 z " fill="#9d9c94" id="path1611" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 76.71471 350.2136 L 81.29224 347.6771 L 76.71471 350.2136 z " fill="#a9b1b9" id="path1612" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.29224 347.6771 L 85.86977 348.5226 L 81.29224 347.6771 z " fill="#777c7e" id="path1613" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.6019 348.241 L 218.1115 348.8041 L 217.6019 348.241 z " fill="#b0b5b7" id="path1614" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 347.6771 L 227.7748 348.5226 L 226.2489 347.6771 z " fill="#96a3a3" id="path1615" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 347.6771 L 232.3523 348.5226 L 230.8265 347.6771 z " fill="#777c7e" id="path1616" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 347.6771 L 227.7748 351.0591 C 231.1134 350.6448 233.8904 349.7249 232.3523 347.6771 z " fill="#f9fbf8" id="path1617" stroke="none" style="fill:#f9fbf8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.3177 347.6771 L 348.3177 350.2136 L 348.3177 347.6771 z " fill="#63686a" id="path1618" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 347.6771 L 360.5247 348.5226 L 358.9988 347.6771 z " fill="#a0a5a8" id="path1619" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 387.9901 347.6771 L 391.0419 349.3681 L 387.9901 347.6771 z " fill="#45453d" id="path1620" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.7228 347.6771 L 403.2486 348.5226 L 401.7228 347.6771 z " fill="#7a8686" id="path1621" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -20.94037 348.5226 L -19.41452 349.3681 L -20.94037 348.5226 z " fill="#736c77" id="path1622" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 377.2698 L 88.9215 362.8962 L 137.7491 367.1237 C 129.5658 357.3471 113.1721 350.8909 93.63182 350.3269 C 89.96059 350.2212 81.80641 347.3727 79.41995 349.9786 C 77.41964 352.1642 80.20738 355.5758 80.78563 357.8231 C 82.06283 362.7939 81.2876 368.0318 81.29224 373.0422 C 81.2937 374.7569 80.09754 378.9785 83.91218 379.7784 C 88.53096 380.7465 96.48218 378.9675 101.1284 378.4535 C 111.3638 377.3213 121.2484 377.2698 131.6456 377.2698 z " fill="#fefffc" id="path1623" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.3957 348.5226 L 91.97323 351.0591 L 87.3957 348.5226 z " fill="#a19ea2" id="path1624" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 348.5226 L 107.2319 349.3681 L 105.706 348.5226 z " fill="#73837d" id="path1625" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 350.2136 L 113.3354 350.2136 L 108.7577 350.2136 z " fill="#91988e" id="path1626" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 348.5226 L 120.9646 349.3681 L 119.4387 348.5226 z " fill="#63736d" id="path1627" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 348.5226 L 230.8265 349.3681 L 229.3006 348.5226 z " fill="#807b7a" id="path1628" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 403.2486 348.5226 L 404.7745 349.3681 L 403.2486 348.5226 z " fill="#575f5b" id="path1629" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -23.99209 349.3681 L -22.46624 350.2136 L -23.99209 349.3681 z " fill="#777c7e" id="path1630" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -2.630048 349.3681 L -1.1042 350.2136 L -2.630048 349.3681 z " fill="#686c6f" id="path1631" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.11549 349.7908 L 57.64142 350.6364 L 56.11549 349.7908 z " fill="#575f5b" id="path1632" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 349.3681 L 99.6025 350.2136 L 93.49916 349.3681 z " fill="#d3cecd" id="path1633" stroke="none" style="fill:#d3cecd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 349.3681 L 122.4904 350.2136 L 120.9646 349.3681 z " fill="#82928c" id="path1634" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 349.3681 L 197.2576 353.5956 L 197.2576 349.3681 z " fill="#a4a9ac" id="path1635" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 349.3681 L 229.3006 350.2136 L 227.7748 349.3681 z " fill="#63686a" id="path1636" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 351.0591 L 304.0679 349.3681 L 301.0161 351.0591 z " fill="#434749" id="path1637" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 349.3681 L 334.5851 350.2136 L 333.0591 349.3681 z " fill="#807b7a" id="path1638" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.6706 349.932 L 340.1803 350.4952 L 339.6706 349.932 z " fill="#434749" id="path1639" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 367.6458 349.6496 L 368.662 349.932 L 367.6458 349.6496 z " fill="#595a63" id="path1640" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -27.04381 350.2136 L -25.51796 351.0591 L -27.04381 350.2136 z " fill="#686c6f" id="path1641" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 14.1544 353.5956 L 26.36128 350.2136 L 14.1544 353.5956 z " fill="#9d9c94" id="path1642" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 77.22278 350.7776 L 77.73244 351.3407 L 77.22278 350.7776 z " fill="#484c4e" id="path1643" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 350.2136 L 206.4127 353.5956 L 206.4127 350.2136 z " fill="#989d9f" id="path1644" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 219.1277 350.7776 L 219.6374 351.3407 L 219.1277 350.7776 z " fill="#53575a" id="path1645" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 350.2136 L 233.8783 351.0591 L 232.3523 350.2136 z " fill="#63736d" id="path1646" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 350.2136 L 253.7144 351.0591 L 252.1885 350.2136 z " fill="#857f8a" id="path1647" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 350.2136 L 287.2833 362.8962 L 287.2833 350.2136 z " fill="#a0a5a8" id="path1648" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 350.2136 C 300.276 355.8438 299.0737 361.4605 297.2182 367.1237 C 296.1303 370.4415 293.4997 373.8573 293.8552 377.2698 C 294.2108 380.6839 299.9633 385.6808 306.8373 385.7815 C 312.7698 385.8677 314.4863 380.4294 316.8774 378.2624 C 319.2622 376.1013 324.403 374.691 325.4512 372.1232 C 326.4017 369.7955 323.5713 367.3799 321.661 365.4327 C 316.6027 360.2793 310.3162 354.2374 302.5419 350.2136 z " fill="#f8feff" id="path1649" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 407.8263 350.2136 L 409.3521 351.0591 L 407.8263 350.2136 z " fill="#63736d" id="path1650" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -54.5093 351.0591 L -52.98344 351.9046 L -54.5093 351.0591 z " fill="#575f5b" id="path1651" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.87852 351.0591 L 56.87852 353.5956 L 56.87852 351.0591 z " fill="#aeb3b5" id="path1652" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.5242 351.6231 L 302.0338 352.1862 L 301.5242 351.6231 z " fill="#96a3a3" id="path1653" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 351.0591 L 336.1108 351.9046 L 334.5851 351.0591 z " fill="#73837d" id="path1654" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 352.7501 L 339.1625 351.0591 L 336.1108 352.7501 z " fill="#aebbbc" id="path1655" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 347.3001 351.6231 L 347.8097 352.1862 L 347.3001 351.6231 z " fill="#63686a" id="path1656" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 351.0591 L 500.9038 352.7501 L 497.852 351.0591 z " fill="#73837d" id="path1657" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -56.03515 351.9046 L -54.5093 352.7501 L -56.03515 351.9046 z " fill="#7a8686" id="path1658" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -34.67311 351.9046 L -33.14726 352.7501 L -34.67311 351.9046 z " fill="#736c77" id="path1659" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.2496 352.1862 L 109.2659 352.4686 L 108.2496 352.1862 z " fill="#5c5a5d" id="path1660" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.2921 352.1862 L 495.3084 352.4686 L 494.2921 352.1862 z " fill="#4c5450" id="path1661" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -37.72483 352.7501 L -36.19897 353.5956 L -37.72483 352.7501 z " fill="#90878d" id="path1662" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.525107 356.1321 L 14.1544 352.7501 L 6.525107 356.1321 z " fill="#6a7676" id="path1663" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 52.30086 352.7501 L 53.82679 353.5956 L 52.30086 352.7501 z " fill="#74787b" id="path1664" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 352.7501 L 78.24051 355.2866 L 78.24051 352.7501 z " fill="#7a8686" id="path1665" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 352.7501 L 116.3869 353.5956 L 111.8094 352.7501 z " fill="#b8bec0" id="path1666" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 352.7501 L 127.0681 353.5956 L 125.5421 352.7501 z " fill="#63736d" id="path1667" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.7313 353.3141 L 137.241 353.8772 L 136.7313 353.3141 z " fill="#484c4e" id="path1668" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 352.7501 L 139.2749 353.5956 L 137.7491 352.7501 z " fill="#93aca4" id="path1669" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 352.7501 L 233.8783 355.2866 C 233.5014 352.6791 230.3169 352.7501 226.2489 352.7501 z " fill="#686c6f" id="path1670" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.1285 353.0317 L 338.1448 353.3141 L 337.1285 353.0317 z " fill="#6a7676" id="path1671" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 346.7918 352.7501 L 346.7918 355.2866 L 346.7918 352.7501 z " fill="#9facad" id="path1672" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 427.6625 352.7501 L 432.24 353.5956 L 427.6625 352.7501 z " fill="#63686a" id="path1673" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 432.24 352.7501 L 436.8175 353.5956 L 432.24 352.7501 z " fill="#a1b2ab" id="path1674" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 352.7501 L 499.3778 353.5956 L 497.852 352.7501 z " fill="#5c5a5d" id="path1675" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 58.40432 353.5956 L 58.40432 356.1321 L 58.40432 353.5956 z " fill="#595a63" id="path1676" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 353.5956 L 119.4387 354.4411 L 117.9129 353.5956 z " fill="#83888b" id="path1677" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 353.5956 L 128.5939 354.4411 L 127.0681 353.5956 z " fill="#97a4a4" id="path1678" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 353.5956 L 140.8008 354.4411 L 139.2749 353.5956 z " fill="#63686a" id="path1679" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 353.5956 L 206.4127 362.0507 L 206.4127 353.5956 z " fill="#686c6f" id="path1680" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.0939 353.5956 L 218.6196 354.4411 L 217.0939 353.5956 z " fill="#6a7676" id="path1681" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.0038 354.6035 C 216.1005 357.3158 212.7222 367.2564 226.8562 363.1355 C 232.1036 361.6042 234.1315 351.8218 225.0038 354.6035 z " fill="#f8feff" id="path1682" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 354.1596 L 300.5079 354.7227 L 299.9983 354.1596 z " fill="#5d5e66" id="path1683" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 353.5956 L 308.6453 354.4411 L 307.1196 353.5956 z " fill="#7a8686" id="path1684" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.4464 354.1596 L 385.9561 354.7227 L 385.4464 354.1596 z " fill="#82928c" id="path1685" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.9723 354.1596 L 387.4819 354.7227 L 386.9723 354.1596 z " fill="#33413c" id="path1686" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 353.5956 L 444.4469 354.4411 L 438.3435 353.5956 z " fill="#3c3837" id="path1687" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.4469 353.5956 L 449.0245 354.4411 L 444.4469 353.5956 z " fill="#a0a5a8" id="path1688" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 353.5956 L 497.852 354.4411 L 496.3261 353.5956 z " fill="#83888b" id="path1689" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -43.82828 354.4411 L -42.30241 355.2866 L -43.82828 354.4411 z " fill="#a19ea2" id="path1690" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 354.4411 L 142.3266 355.2866 L 140.8008 354.4411 z " fill="#575f5b" id="path1691" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 354.4411 L 198.7834 358.6687 L 198.7834 354.4411 z " fill="#333739" id="path1692" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 354.4411 L 217.0939 355.2866 L 215.5678 354.4411 z " fill="#9aaba5" id="path1693" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 354.4411 L 249.1368 355.2866 L 247.6109 354.4411 z " fill="#63686a" id="path1694" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 354.4411 L 285.7574 368.8147 L 285.7574 354.4411 z " fill="#373b3d" id="path1695" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.8003 354.4411 L 496.3261 355.2866 L 494.8003 354.4411 z " fill="#a0a5a8" id="path1696" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -46.88 355.2866 L -45.35413 356.1321 L -46.88 355.2866 z " fill="#74787b" id="path1697" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -13.31107 355.2866 L -11.78521 356.1321 L -13.31107 355.2866 z " fill="#8a9697" id="path1698" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -5.681778 358.6687 L 6.525107 355.2866 L -5.681778 358.6687 z " fill="#a19ea2" id="path1699" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 355.2866 L 139.2749 356.1321 L 137.7491 355.2866 z " fill="#63686a" id="path1700" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 355.2866 L 143.8525 356.1321 L 142.3266 355.2866 z " fill="#6a7676" id="path1701" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 355.2866 L 345.266 358.6687 L 345.266 355.2866 z " fill="#63686a" id="path1702" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 381.3786 355.5682 L 382.3947 355.8506 L 381.3786 355.5682 z " fill="#45453d" id="path1703" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 355.2866 L 452.0762 356.1321 L 438.3435 355.2866 z " fill="#222628" id="path1704" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 355.2866 L 478.0159 356.1321 L 476.4899 355.2866 z " fill="#82928c" id="path1705" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -62.13859 356.1321 L -60.61273 356.9776 L -62.13859 356.1321 z " fill="#6a7676" id="path1706" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 356.1321 L 50.77506 356.9776 L 49.24913 356.1321 z " fill="#8a9697" id="path1707" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 356.1321 L 79.76644 359.5142 L 79.76644 356.1321 z " fill="#aeb3b5" id="path1708" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 356.1321 L 131.6456 356.9776 L 130.1198 356.1321 z " fill="#63686a" id="path1709" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 356.1321 L 145.3783 356.9776 L 143.8525 356.1321 z " fill="#73837d" id="path1710" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 356.1321 L 215.5678 356.9776 L 214.0421 356.1321 z " fill="#7a8686" id="path1711" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 356.1321 L 221.6713 356.9776 L 220.1455 356.1321 z " fill="#857f8a" id="path1712" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 231.3346 356.6961 L 231.8443 357.2592 L 231.3346 356.6961 z " fill="#b0b5b7" id="path1713" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 356.1321 L 311.6971 356.9776 L 310.1711 356.1321 z " fill="#6a7676" id="path1714" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 427.6625 356.1321 L 438.3435 356.9776 L 427.6625 356.1321 z " fill="#716667" id="path1715" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 356.1321 L 474.9641 356.9776 L 473.4382 356.1321 z " fill="#6a7676" id="path1716" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 490.2226 356.1321 L 491.7485 356.9776 L 490.2226 356.1321 z " fill="#5d5e66" id="path1717" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -63.66445 356.9776 L -62.13859 357.8231 L -63.66445 356.9776 z " fill="#959a9c" id="path1718" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -51.45758 356.9776 L -49.93172 357.8231 L -51.45758 356.9776 z " fill="#90878d" id="path1719" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -17.88865 356.9776 L -16.36279 357.8231 L -17.88865 356.9776 z " fill="#8a9697" id="path1720" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 23.30956 356.9776 L 26.36128 358.6687 L 23.30956 356.9776 z " fill="#aebbbc" id="path1721" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.72332 356.9776 L 49.24913 357.8231 L 47.72332 356.9776 z " fill="#686c6f" id="path1722" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 356.9776 L 133.1715 357.8231 L 131.6456 356.9776 z " fill="#82928c" id="path1723" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 356.9776 L 140.8008 357.8231 L 139.2749 356.9776 z " fill="#8f9099" id="path1724" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 356.9776 L 146.9043 357.8231 L 145.3783 356.9776 z " fill="#7a8686" id="path1725" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 356.9776 L 246.085 357.8231 L 244.5593 356.9776 z " fill="#5c5a5d" id="path1726" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 356.9776 L 313.2229 357.8231 L 311.6971 356.9776 z " fill="#595a63" id="path1727" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 422.0671 357.5416 L 422.5767 358.1047 L 422.0671 357.5416 z " fill="#7a8686" id="path1728" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 470.3865 356.9776 L 471.9124 357.8231 L 470.3865 356.9776 z " fill="#73837d" id="path1729" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 488.6968 356.9776 L 490.2226 357.8231 L 488.6968 356.9776 z " fill="#90878d" id="path1730" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -19.41452 357.8231 L -17.88865 358.6687 L -19.41452 357.8231 z " fill="#777c7e" id="path1731" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 19.74973 358.1047 L 20.76595 358.3871 L 19.74973 358.1047 z " fill="#888d90" id="path1732" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.93025 357.8231 L 59.93025 360.3597 L 59.93025 357.8231 z " fill="#4d4b4f" id="path1733" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 357.8231 L 127.0681 358.6687 L 125.5421 357.8231 z " fill="#959a9c" id="path1734" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 357.8231 L 142.3266 358.6687 L 140.8008 357.8231 z " fill="#5d5e66" id="path1735" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 357.8231 L 148.4301 358.6687 L 146.9043 357.8231 z " fill="#63736d" id="path1736" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 357.8231 L 214.0421 358.6687 L 212.5162 357.8231 z " fill="#74787b" id="path1737" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 231.3346 358.3871 L 231.8443 358.9502 L 231.3346 358.3871 z " fill="#63686a" id="path1738" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 298.4724 358.3871 L 298.9821 358.9502 L 298.4724 358.3871 z " fill="#595a63" id="path1739" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 357.8231 L 331.5333 362.0507 L 326.9558 357.8231 z " fill="#53575a" id="path1740" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 367.6458 358.1047 L 368.662 358.3871 L 367.6458 358.1047 z " fill="#3c3837" id="path1741" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 467.3348 357.8231 L 468.8606 358.6687 L 467.3348 357.8231 z " fill="#92a39c" id="path1742" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 357.8231 L 488.6968 358.6687 L 487.1709 357.8231 z " fill="#959a9c" id="path1743" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -56.03515 358.6687 L -54.5093 359.5142 L -56.03515 358.6687 z " fill="#83888b" id="path1744" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -20.94037 358.6687 L -19.41452 359.5142 L -20.94037 358.6687 z " fill="#63736d" id="path1745" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -7.715748 358.9502 L -6.699526 359.2326 L -7.715748 358.9502 z " fill="#9aaba5" id="path1746" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 16.69801 358.9502 L 17.71423 359.2326 L 16.69801 358.9502 z " fill="#a8aeb0" id="path1747" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 358.6687 L 128.5939 359.5142 L 127.0681 358.6687 z " fill="#686c6f" id="path1748" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 358.6687 L 149.956 359.5142 L 148.4301 358.6687 z " fill="#63686a" id="path1749" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 358.6687 L 198.7834 367.9692 L 198.7834 358.6687 z " fill="#74787b" id="path1750" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.0939 358.6687 L 218.6196 359.5142 L 217.0939 358.6687 z " fill="#777c7e" id="path1751" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 358.6687 L 244.5593 359.5142 L 243.0334 358.6687 z " fill="#83888b" id="path1752" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 366.2782 L 384.9384 358.6687 C 375.1484 359.4279 361.0358 362.0769 354.4212 366.2782 z " fill="#575f5b" id="path1753" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 423.0849 358.6687 L 424.6108 359.5142 L 423.0849 358.6687 z " fill="#6a7676" id="path1754" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 464.2831 363.7417 L 476.4899 358.6687 L 464.2831 363.7417 z " fill="#2b332f" id="path1755" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -22.46624 359.5142 L -20.94037 360.3597 L -22.46624 359.5142 z " fill="#6a7676" id="path1756" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -13.31107 361.2052 L -7.207637 359.5142 L -13.31107 361.2052 z " fill="#575f5b" id="path1757" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 23.30956 359.5142 L 24.83542 360.3597 L 23.30956 359.5142 z " fill="#7a8686" id="path1758" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 359.5142 L 79.76644 364.5872 L 79.76644 359.5142 z " fill="#83888b" id="path1759" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 359.5142 L 136.2231 360.3597 L 134.6973 359.5142 z " fill="#53575a" id="path1760" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 359.5142 L 151.4818 360.3597 L 149.956 359.5142 z " fill="#959a9c" id="path1761" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 359.5142 L 243.0334 360.3597 L 241.5076 359.5142 z " fill="#595a63" id="path1762" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 298.4724 360.0781 L 298.9821 360.6412 L 298.4724 360.0781 z " fill="#a4a9ac" id="path1763" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 359.5142 L 316.2746 360.3597 L 314.7488 359.5142 z " fill="#857f8a" id="path1764" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.2148 359.7957 L 402.2309 360.0781 L 401.2148 359.7957 z " fill="#63686a" id="path1765" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.7572 359.5142 L 464.2831 360.3597 L 462.7572 359.5142 z " fill="#9d9c94" id="path1766" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -68.24204 360.3597 L -66.71617 361.2052 L -68.24204 360.3597 z " fill="#575f5b" id="path1767" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -60.61273 360.3597 L -59.08687 361.2052 L -60.61273 360.3597 z " fill="#857f8a" id="path1768" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -23.99209 360.3597 L -22.46624 361.2052 L -23.99209 360.3597 z " fill="#83888b" id="path1769" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 9.576826 360.3597 L 11.10268 361.2052 L 9.576826 360.3597 z " fill="#736c77" id="path1770" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 70.61125 360.3597 L 70.61125 368.8147 L 70.61125 360.3597 z " fill="#5d5e66" id="path1771" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 360.3597 L 137.7491 361.2052 L 136.2231 360.3597 z " fill="#92a39c" id="path1772" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 144.3606 360.9236 L 144.8703 361.4867 L 144.3606 360.9236 z " fill="#97a4a4" id="path1773" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 360.3597 L 217.0939 361.2052 L 215.5678 360.3597 z " fill="#989d9f" id="path1774" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 343.7402 360.3597 L 343.7402 362.8962 L 343.7402 360.3597 z " fill="#394444" id="path1775" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 365.4327 L 432.24 373.0422 C 423.4236 362.0008 397.4153 357.0115 380.3607 365.4327 z " fill="#e9eef0" id="path1776" stroke="none" style="fill:#e9eef0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 405.7923 360.6412 L 406.8086 360.9236 L 405.7923 360.6412 z " fill="#413b45" id="path1777" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 360.3597 L 462.7572 361.2052 L 461.2313 360.3597 z " fill="#73837d" id="path1778" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 360.3597 L 482.5934 361.2052 L 481.0676 360.3597 z " fill="#5d5e66" id="path1779" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -69.76789 361.2052 L -68.24204 362.0507 L -69.76789 361.2052 z " fill="#596465" id="path1780" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -25.51796 361.2052 L -23.99209 362.0507 L -25.51796 361.2052 z " fill="#9facad" id="path1781" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -20.94037 363.7417 L -13.31107 361.2052 L -20.94037 363.7417 z " fill="#42514b" id="path1782" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 7.542844 361.4867 L 8.559078 361.7691 L 7.542844 361.4867 z " fill="#b5babd" id="path1783" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 21.78371 361.2052 L 23.30956 362.0507 L 21.78371 361.2052 z " fill="#7a8686" id="path1784" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 43.14574 361.2052 L 44.6716 362.0507 L 43.14574 361.2052 z " fill="#686c6f" id="path1785" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 361.2052 L 151.4818 364.5872 L 151.4818 361.2052 z " fill="#83888b" id="path1786" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 361.2052 L 229.3006 363.7417 L 229.3006 361.2052 z " fill="#91988e" id="path1787" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 361.2052 L 241.5076 362.0507 L 239.9816 361.2052 z " fill="#74787b" id="path1788" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 361.2052 L 355.947 362.0507 L 354.4212 361.2052 z " fill="#6a7676" id="path1789" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 393.5853 361.4867 L 394.6016 361.7691 L 393.5853 361.4867 z " fill="#8a9697" id="path1790" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 361.2052 L 461.2313 362.0507 L 459.7054 361.2052 z " fill="#53575a" id="path1791" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 361.2052 L 481.0676 362.0507 L 479.5417 361.2052 z " fill="#716667" id="path1792" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -71.29376 362.0507 L -69.76789 362.8962 L -71.29376 362.0507 z " fill="#73837d" id="path1793" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -27.04381 362.0507 L -25.51796 362.8962 L -27.04381 362.0507 z " fill="#959a9c" id="path1794" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 3.473389 362.0507 L 4.999236 362.8962 L 3.473389 362.0507 z " fill="#686c6f" id="path1795" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 61.45605 362.0507 L 61.45605 364.5872 L 61.45605 362.0507 z " fill="#596465" id="path1796" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 362.0507 L 209.4645 362.8962 L 207.9386 362.0507 z " fill="#7a8686" id="path1797" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.9639 362.6146 L 239.4735 363.1777 L 238.9639 362.6146 z " fill="#434749" id="path1798" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 362.0507 L 278.1281 364.5872 L 278.1281 362.0507 z " fill="#394444" id="path1799" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 362.0507 L 319.3263 362.8962 L 317.8005 362.0507 z " fill="#686c6f" id="path1800" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 362.0507 L 339.1625 369.6602 L 331.5333 362.0507 z " fill="#3c3837" id="path1801" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 362.0507 L 479.5417 362.8962 L 478.0159 362.0507 z " fill="#6a7676" id="path1802" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -72.81962 362.8962 L -71.29376 363.7417 L -72.81962 362.8962 z " fill="#83888b" id="path1803" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -28.56968 362.8962 L -27.04381 363.7417 L -28.56968 362.8962 z " fill="#82928c" id="path1804" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 20.25784 362.8962 L 21.78371 363.7417 L 20.25784 362.8962 z " fill="#8a9697" id="path1805" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 363.7417 L 95.02496 362.8962 L 88.9215 363.7417 z " fill="#262e2a" id="path1806" stroke="none" style="fill:#262e2a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 362.8962 L 101.1284 363.7417 L 95.02496 362.8962 z " fill="#4c5450" id="path1807" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.1284 362.8962 L 105.706 363.7417 L 101.1284 362.8962 z " fill="#a4b5ae" id="path1808" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 133.1715 362.8962 L 134.6973 363.7417 L 133.1715 362.8962 z " fill="#83888b" id="path1809" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 362.8962 L 140.8008 363.7417 L 139.2749 362.8962 z " fill="#82928c" id="path1810" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 362.8962 L 143.8525 367.1237 L 145.3783 362.8962 z " fill="#53575a" id="path1811" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.9994 363.1777 L 242.0156 363.4601 L 240.9994 363.1777 z " fill="#abbcb6" id="path1812" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 362.8962 L 287.2833 371.3512 L 287.2833 362.8962 z " fill="#6a7676" id="path1813" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.9466 363.4601 L 297.4562 364.0232 L 296.9466 363.4601 z " fill="#686c6f" id="path1814" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 362.8962 L 351.3695 363.7417 L 349.8435 362.8962 z " fill="#83888b" id="path1815" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.9561 363.1777 L 386.9723 363.4601 L 385.9561 363.1777 z " fill="#a8aeb0" id="path1816" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 362.8962 L 415.4556 363.7417 L 413.9298 362.8962 z " fill="#686c6f" id="path1817" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 362.8962 L 456.6537 363.7417 L 455.128 362.8962 z " fill="#82928c" id="path1818" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 362.8962 L 478.0159 363.7417 L 476.4899 362.8962 z " fill="#8f9099" id="path1819" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -74.34548 363.7417 L -72.81962 364.5872 L -74.34548 363.7417 z " fill="#96a3a3" id="path1820" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -69.76789 363.7417 L -68.24204 364.5872 L -69.76789 363.7417 z " fill="#5d5e66" id="path1821" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -30.09554 363.7417 L -28.56968 364.5872 L -30.09554 363.7417 z " fill="#92a39c" id="path1822" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -3.138171 364.0232 L -2.121948 364.3056 L -3.138171 364.0232 z " fill="#a8aeb0" id="path1823" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 40.09401 363.7417 L 41.61988 364.5872 L 40.09401 363.7417 z " fill="#5d5e66" id="path1824" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 363.7417 L 90.44743 364.5872 L 88.9215 363.7417 z " fill="#888d90" id="path1825" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 363.7417 L 111.8094 364.5872 L 107.2319 363.7417 z " fill="#63736d" id="path1826" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 363.7417 L 136.2231 364.5872 L 134.6973 363.7417 z " fill="#686c6f" id="path1827" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 363.7417 L 142.3266 364.5872 L 140.8008 363.7417 z " fill="#92a39c" id="path1828" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 363.7417 L 157.5852 367.1237 L 157.5852 363.7417 z " fill="#5d5e66" id="path1829" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 363.7417 L 226.2489 364.5872 L 214.0421 363.7417 z " fill="#2c2b2e" id="path1830" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.2666 364.0232 L 228.2828 364.3056 L 227.2666 364.0232 z " fill="#b3c4bd" id="path1831" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 363.7417 L 249.1368 364.5872 L 244.5593 363.7417 z " fill="#63736d" id="path1832" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 432.24 363.7417 L 433.7658 364.5872 L 432.24 363.7417 z " fill="#575f5b" id="path1833" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 363.7417 L 455.128 364.5872 L 453.602 363.7417 z " fill="#63686a" id="path1834" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 365.4327 L 464.2831 363.7417 L 461.2313 365.4327 z " fill="#4c5450" id="path1835" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 368.8147 C 481.7068 367.5845 480.7928 366.1852 478.6277 365.4471 C 472.9623 363.5159 463.7643 370.154 476.403 369.2806 L 482.5934 368.8147 z " fill="#e1e6e9" id="path1836" stroke="none" style="fill:#e1e6e9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -71.29376 364.5872 L -69.76789 365.4327 L -71.29376 364.5872 z " fill="#857f8a" id="path1837" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -31.6214 364.5872 L -30.09554 365.4327 L -31.6214 364.5872 z " fill="#9aaba5" id="path1838" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 19.24009 365.1511 L 19.74973 365.7142 L 19.24009 365.1511 z " fill="#4c5450" id="path1839" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 23.30956 371.3512 L 30.93886 364.5872 L 23.30956 371.3512 z " fill="#596465" id="path1840" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 364.5872 L 79.76644 370.5057 L 79.76644 364.5872 z " fill="#434749" id="path1841" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 364.5872 L 93.49916 365.4327 L 91.97323 364.5872 z " fill="#777c7e" id="path1842" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 118.9306 364.8687 L 119.9469 365.1511 L 118.9306 364.8687 z " fill="#a1b2ab" id="path1843" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 364.5872 L 153.0076 368.8147 L 151.4818 364.5872 z " fill="#c6ced6" id="path1844" stroke="none" style="fill:#c6ced6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 364.5872 L 296.4385 367.9692 L 296.4385 364.5872 z " fill="#c8c5ca" id="path1845" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 375.7832 366.2782 L 380.3607 364.5872 L 375.7832 366.2782 z " fill="#82928c" id="path1846" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 418.5073 364.5872 L 420.0331 365.4327 L 418.5073 364.5872 z " fill="#63686a" id="path1847" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 433.7658 364.5872 L 435.2917 365.4327 L 433.7658 364.5872 z " fill="#7a8686" id="path1848" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 364.5872 L 453.602 365.4327 L 452.0762 364.5872 z " fill="#63686a" id="path1849" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -72.81962 365.4327 L -71.29376 366.2782 L -72.81962 365.4327 z " fill="#686c6f" id="path1850" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -9.241608 365.7142 L -8.225374 365.9966 L -9.241608 365.7142 z " fill="#b5babd" id="path1851" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 365.4327 L 40.09401 366.2782 L 38.56816 365.4327 z " fill="#575f5b" id="path1852" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 62.98185 365.4327 L 62.98185 367.9692 L 62.98185 365.4327 z " fill="#595a63" id="path1853" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 123.5081 365.7142 L 124.5244 365.9966 L 123.5081 365.7142 z " fill="#a3bcb3" id="path1854" stroke="none" style="fill:#a3bcb3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 365.4327 L 137.7491 366.2782 L 136.2231 365.4327 z " fill="#857f8a" id="path1855" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.258 365.7142 L 257.2743 365.9966 L 256.258 365.7142 z " fill="#bbd5cc" id="path1856" stroke="none" style="fill:#bbd5cc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 280.1622 365.9966 L 280.6717 366.5597 L 280.1622 365.9966 z " fill="#4f5058" id="path1857" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 365.4327 L 322.3781 366.2782 L 320.8523 365.4327 z " fill="#6a7676" id="path1858" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 378.8349 365.4327 L 387.9901 366.2782 L 378.8349 365.4327 z " fill="#b3c4bd" id="path1859" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 450.5503 365.4327 L 452.0762 366.2782 L 450.5503 365.4327 z " fill="#73837d" id="path1860" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -77.39719 366.2782 L -74.34548 367.9692 L -77.39719 366.2782 z " fill="#736c77" id="path1861" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -74.34548 366.2782 L -72.81962 367.1237 L -74.34548 366.2782 z " fill="#857f8a" id="path1862" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.0858 366.5597 L 129.1019 366.8421 L 128.0858 366.5597 z " fill="#abbcb6" id="path1863" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 138.2571 366.8421 L 138.7668 367.4053 L 138.2571 366.8421 z " fill="#4c5450" id="path1864" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.5159 366.2782 L 394.0936 367.1237 L 389.5159 366.2782 z " fill="#63736d" id="path1865" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 366.2782 L 450.5503 367.1237 L 449.0245 366.2782 z " fill="#6a7676" id="path1866" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 366.2782 L 479.5417 367.1237 L 478.0159 366.2782 z " fill="#3c3837" id="path1867" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 505.4813 366.2782 L 520.7398 367.1237 L 505.4813 366.2782 z " fill="#9aaba5" id="path1868" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -34.67311 367.1237 L -33.14726 367.9692 L -34.67311 367.1237 z " fill="#575f5b" id="path1869" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 37.0423 367.1237 L 38.56816 367.9692 L 37.0423 367.1237 z " fill="#989d9f" id="path1870" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 367.1237 L 137.7491 367.9692 L 131.6456 367.1237 z " fill="#91988e" id="path1871" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.163 367.4053 L 399.1792 367.6877 L 398.163 367.4053 z " fill="#9aaba5" id="path1872" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 367.1237 L 449.0245 367.9692 L 447.4987 367.1237 z " fill="#73837d" id="path1873" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 367.1237 L 491.7485 367.9692 L 487.1709 367.1237 z " fill="#b3c4bd" id="path1874" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 528.3692 367.1237 L 534.4727 367.9692 L 528.3692 367.1237 z " fill="#73837d" id="path1875" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 367.1237 L 539.0502 367.9692 L 534.4727 367.1237 z " fill="#a3bcb3" id="path1876" stroke="none" style="fill:#a3bcb3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -36.19897 367.9692 L -34.67311 368.8147 L -36.19897 367.9692 z " fill="#63736d" id="path1877" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 15.68025 367.9692 L 17.20612 368.8147 L 15.68025 367.9692 z " fill="#82928c" id="path1878" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.13704 367.9692 L 72.13704 375.5788 L 72.13704 367.9692 z " fill="#394444" id="path1879" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.8612 367.9692 L 125.5421 370.5057 L 114.8612 367.9692 z " fill="#596465" id="path1880" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 367.9692 L 156.0593 370.5057 L 156.0593 367.9692 z " fill="#888d90" id="path1881" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 376.4243 L 218.6196 367.9692 L 194.2059 376.4243 z " fill="#6a7676" id="path1882" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 295.4207 368.5332 L 295.9303 369.0963 L 295.4207 368.5332 z " fill="#686c6f" id="path1883" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 402.7406 368.2508 L 403.7569 368.5332 L 402.7406 368.2508 z " fill="#a6bab9" id="path1884" stroke="none" style="fill:#a6bab9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 445.9728 367.9692 L 447.4987 368.8147 L 445.9728 367.9692 z " fill="#83888b" id="path1885" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 367.9692 L 449.0245 373.0422 L 455.128 367.9692 z " fill="#53575a" id="path1886" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 483.6111 368.2508 L 484.6274 368.5332 L 483.6111 368.2508 z " fill="#63736d" id="path1887" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.0502 367.9692 L 543.6278 368.8147 L 539.0502 367.9692 z " fill="#33413c" id="path1888" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 544.6455 368.2508 L 545.6617 368.5332 L 544.6455 368.2508 z " fill="#7a8686" id="path1889" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -37.72483 368.8147 L -36.19897 369.6602 L -37.72483 368.8147 z " fill="#96a3a3" id="path1890" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -21.44848 369.0963 L -20.43226 369.3787 L -21.44848 369.0963 z " fill="#a4a9ac" id="path1891" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 368.8147 L 107.2319 369.6602 L 105.706 368.8147 z " fill="#a0a5a8" id="path1892" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 368.8147 L 247.6109 373.0422 L 244.5593 368.8147 z " fill="#53575a" id="path1893" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.8481 369.2375 L 248.3739 370.083 L 246.8481 369.2375 z " fill="#c7d4d5" id="path1894" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 368.8147 L 268.973 369.6602 L 267.4472 368.8147 z " fill="#73837d" id="path1895" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 368.8147 L 358.9988 369.6602 L 354.4212 368.8147 z " fill="#4c5450" id="path1896" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 368.8147 L 362.0505 370.5057 L 358.9988 368.8147 z " fill="#83888b" id="path1897" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 427.6625 368.8147 L 438.3435 374.7332 L 427.6625 368.8147 z " fill="#d1d7d9" id="path1898" stroke="none" style="fill:#d1d7d9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.4469 368.8147 L 445.9728 369.6602 L 444.4469 368.8147 z " fill="#73837d" id="path1899" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 464.2831 370.5057 L 468.8606 370.5057 L 464.2831 370.5057 z " fill="#6a7676" id="path1900" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 477.5076 369.0963 L 478.5239 369.3787 L 477.5076 369.0963 z " fill="#434749" id="path1901" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 549.7312 368.8147 L 554.3088 369.6602 L 549.7312 368.8147 z " fill="#50564d" id="path1902" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 14.1544 369.6602 L 15.68025 370.5057 L 14.1544 369.6602 z " fill="#73837d" id="path1903" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 65.01586 370.2242 L 65.52552 370.7873 L 65.01586 370.2242 z " fill="#888d90" id="path1904" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 369.6602 L 110.2836 370.5057 L 108.7577 369.6602 z " fill="#8f9099" id="path1905" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 369.6602 L 195.7317 370.5057 L 194.2059 369.6602 z " fill="#6a7676" id="path1906" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 369.6602 L 252.1885 372.1967 L 249.1368 369.6602 z " fill="#91988e" id="path1907" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 270.4989 369.6602 L 272.0248 370.5057 L 270.4989 369.6602 z " fill="#9d9c94" id="path1908" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 295.4207 370.2242 L 295.9303 370.7873 L 295.4207 370.2242 z " fill="#b7c3c4" id="path1909" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 369.6602 L 343.7402 374.7332 L 339.1625 369.6602 z " fill="#222628" id="path1910" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 350.3517 370.2242 L 350.8613 370.7873 L 350.3517 370.2242 z " fill="#434749" id="path1911" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.3695 369.6602 L 355.947 370.5057 L 351.3695 369.6602 z " fill="#a19ea2" id="path1912" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.3695 370.5057 L 360.5247 369.6602 L 351.3695 370.5057 z " fill="#d9e3de" id="path1913" stroke="none" style="fill:#d9e3de;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 377.3091 369.6602 L 404.7745 373.8877 L 377.3091 369.6602 z " fill="#63736d" id="path1914" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 442.413 369.9418 L 443.4292 370.2242 L 442.413 369.9418 z " fill="#333739" id="path1915" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 558.8864 369.6602 L 563.4639 370.5057 L 558.8864 369.6602 z " fill="#8a9697" id="path1916" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 32.46473 370.5057 L 33.99058 371.3512 L 32.46473 370.5057 z " fill="#74787b" id="path1917" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 370.5057 L 79.76644 380.6518 L 79.76644 370.5057 z " fill="#96a3a3" id="path1918" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 370.5057 L 113.3354 371.3512 L 111.8094 370.5057 z " fill="#8f9099" id="path1919" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 370.5057 L 143.8525 374.7332 L 125.5421 370.5057 z " fill="#73837d" id="path1920" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 370.5057 L 154.5336 374.7332 L 154.5336 370.5057 z " fill="#888d90" id="path1921" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 370.5057 L 233.8783 380.6518 L 235.4041 370.5057 z " fill="#8a9697" id="path1922" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 272.0248 370.5057 L 273.5507 371.3512 L 272.0248 370.5057 z " fill="#575f5b" id="path1923" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.8949 371.0697 L 294.4046 371.6328 L 293.8949 371.0697 z " fill="#373b3d" id="path1924" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.4906 370.7873 L 359.5068 371.0697 L 358.4906 370.7873 z " fill="#596465" id="path1925" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 416.4732 370.7873 L 417.4895 371.0697 L 416.4732 370.7873 z " fill="#9facad" id="path1926" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.0075 370.7873 L 567.0238 371.0697 L 566.0075 370.7873 z " fill="#bfcccd" id="path1927" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -40.77656 371.3512 L -39.25069 372.1967 L -40.77656 371.3512 z " fill="#8a9697" id="path1928" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -30.09554 371.3512 L -28.56968 372.1967 L -30.09554 371.3512 z " fill="#959a9c" id="path1929" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 21.78371 371.3512 L 18.73199 375.5788 L 21.78371 371.3512 z " fill="#596465" id="path1930" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 115.8789 371.6328 L 116.8951 371.9152 L 115.8789 371.6328 z " fill="#434749" id="path1931" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 371.3512 L 191.1541 372.1967 L 189.6282 371.3512 z " fill="#63686a" id="path1932" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 371.3512 L 233.8783 374.7332 L 233.8783 371.3512 z " fill="#596465" id="path1933" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 371.3512 L 256.7661 374.7332 L 252.1885 371.3512 z " fill="#63686a" id="path1934" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 371.3512 L 279.6539 373.8877 L 281.1799 371.3512 z " fill="#a0a5a8" id="path1935" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 353.9129 371.6328 L 354.9292 371.9152 L 353.9129 371.6328 z " fill="#42514b" id="path1936" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.0508 371.6328 L 422.0671 371.9152 L 421.0508 371.6328 z " fill="#82928c" id="path1937" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 374.7332 L 534.4727 372.1967 C 522.9585 369.2882 502.457 371.9524 490.2226 372.7869 C 485.3171 373.1226 480.6159 373.0718 476.4899 374.7332 z " fill="#596465" id="path1938" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -33.14726 372.1967 L -31.6214 373.0422 L -33.14726 372.1967 z " fill="#777c7e" id="path1939" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 66.54178 372.7607 L 67.05144 373.3238 L 66.54178 372.7607 z " fill="#53575a" id="path1940" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 118.9306 372.4783 L 119.9469 372.7607 L 118.9306 372.4783 z " fill="#595a63" id="path1941" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 222.6891 372.4783 L 223.7054 372.7607 L 222.6891 372.4783 z " fill="#484c4e" id="path1942" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 372.1967 L 278.1281 373.0422 L 276.6022 372.1967 z " fill="#6a7676" id="path1943" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 372.1967 L 293.3867 374.7332 L 293.3867 372.1967 z " fill="#83888b" id="path1944" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 361.5424 372.4783 L 362.5585 372.7607 L 361.5424 372.4783 z " fill="#686c6f" id="path1945" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 374.7332 L 375.7832 375.5788 C 371.1858 373.1429 363.4756 371.2092 358.9988 374.7332 z " fill="#d7e4e5" id="path1946" stroke="none" style="fill:#d7e4e5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 425.6285 372.4783 L 426.6448 372.7607 L 425.6285 372.4783 z " fill="#74787b" id="path1947" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 573.6368 372.4783 L 574.6531 372.7607 L 573.6368 372.4783 z " fill="#777c7e" id="path1948" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 29.41301 373.0422 L 30.93886 373.8877 L 29.41301 373.0422 z " fill="#888d90" id="path1949" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 373.0422 L 186.5765 373.8877 L 185.0508 373.0422 z " fill="#6a7676" id="path1950" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 219.9929 373.9993 C 205.3477 376.2594 210.7477 391.4438 212.0508 397.5619 C 212.4003 399.2005 211.3733 406.4946 216.3293 406.4946 C 219.8038 406.4946 218.6105 400.3867 218.6348 399.2529 C 218.7738 392.8668 221.2274 386.1154 223.0706 379.8071 C 223.5374 378.21 225.901 373.087 219.9929 373.9993 z " fill="#eef3f6" id="path1951" stroke="none" style="fill:#eef3f6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 373.0422 L 326.9558 373.8877 L 325.4298 373.0422 z " fill="#596465" id="path1952" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 357.981 373.6062 L 358.4906 374.1693 L 357.981 373.6062 z " fill="#63686a" id="path1953" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 403.2486 373.8877 L 418.5073 376.4243 L 403.2486 373.8877 z " fill="#33413c" id="path1954" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 579.7403 373.3238 L 580.7566 373.6062 L 579.7403 373.3238 z " fill="#a4a9ac" id="path1955" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -43.82828 373.8877 L -42.30241 374.7332 L -43.82828 373.8877 z " fill="#807b7a" id="path1956" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -37.72483 373.8877 L -36.19897 374.7332 L -37.72483 373.8877 z " fill="#686c6f" id="path1957" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 66.03358 373.8877 L 66.03358 376.4243 L 66.03358 373.8877 z " fill="#b5babd" id="path1958" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 373.8877 L 125.5421 374.7332 L 124.0163 373.8877 z " fill="#959a9c" id="path1959" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 375.5788 L 145.3783 373.8877 L 142.3266 375.5788 z " fill="#33413c" id="path1960" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 373.8877 L 185.0508 374.7332 L 183.5249 373.8877 z " fill="#575f5b" id="path1961" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 373.8877 L 325.4298 374.7332 L 323.904 373.8877 z " fill="#63736d" id="path1962" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 373.8877 L 331.5333 376.4243 L 328.4816 373.8877 z " fill="#333739" id="path1963" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 373.7492 374.1693 L 374.7655 374.4517 L 373.7492 374.1693 z " fill="#53575a" id="path1964" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 375.5788 L 439.8693 373.8877 L 436.8175 375.5788 z " fill="#4c5450" id="path1965" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 376.4243 L 476.4899 373.8877 L 459.7054 376.4243 z " fill="#1f1717" id="path1966" stroke="none" style="fill:#1f1717;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 555.8346 374.7332 C 562.0541 376.3042 581.7682 377.0922 586.3518 373.8877 L 555.8346 374.7332 z " fill="#484c4e" id="path1967" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -39.25069 374.7332 L -37.72483 375.5788 L -39.25069 374.7332 z " fill="#96a3a3" id="path1968" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 155.0416 375.2972 L 155.5512 375.8603 L 155.0416 375.2972 z " fill="#434749" id="path1969" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 374.7332 L 261.3437 378.9608 L 256.7661 374.7332 z " fill="#4c5450" id="path1970" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 374.7332 L 272.0248 377.2698 L 264.3955 374.7332 z " fill="#857f8a" id="path1971" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 374.7332 L 323.904 375.5788 L 322.3781 374.7332 z " fill="#74787b" id="path1972" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 374.7332 L 323.904 378.9608 L 328.4816 374.7332 z " fill="#aebbbc" id="path1973" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 364.5941 375.0148 L 365.6103 375.2972 L 364.5941 375.0148 z " fill="#97a4a4" id="path1974" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.1539 375.5788 L 378.8349 375.5788 L 368.1539 375.5788 z " fill="#82928c" id="path1975" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -42.30241 375.5788 L -40.77656 376.4243 L -42.30241 375.5788 z " fill="#575f5b" id="path1976" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 12.62854 380.6518 L 20.25784 375.5788 L 12.62854 380.6518 z " fill="#373b3d" id="path1977" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.36128 375.5788 L 27.88714 376.4243 L 26.36128 375.5788 z " fill="#989d9f" id="path1978" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 213.5339 375.8603 L 214.5502 376.1427 L 213.5339 375.8603 z " fill="#abbcb6" id="path1979" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 375.5788 L 235.4041 378.9608 L 235.4041 375.5788 z " fill="#333739" id="path1980" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 375.5788 L 291.8609 379.8063 L 291.8609 375.5788 z " fill="#989d9f" id="path1981" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.1537 375.5788 L 554.3088 376.4243 L 545.1537 375.5788 z " fill="#a4a9ac" id="path1982" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -43.82828 376.4243 L -42.30241 377.2698 L -43.82828 376.4243 z " fill="#7a8686" id="path1983" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 376.4243 L 26.36128 377.2698 L 24.83542 376.4243 z " fill="#596465" id="path1984" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 68.06759 376.9882 L 68.57725 377.5513 L 68.06759 376.9882 z " fill="#82928c" id="path1985" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 377.2698 L 134.6973 377.2698 L 113.3354 377.2698 z " fill="#262e2a" id="path1986" stroke="none" style="fill:#262e2a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 379.8063 L 194.2059 376.4243 L 185.0508 379.8063 z " fill="#4c5450" id="path1987" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 376.4243 L 316.2746 378.9608 L 316.2746 376.4243 z " fill="#8a9697" id="path1988" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 376.4243 L 539.0502 377.2698 L 534.4727 376.4243 z " fill="#4c5450" id="path1989" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 377.2698 L 113.3354 378.1153 L 107.2319 377.2698 z " fill="#83888b" id="path1990" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 377.2698 L 156.0593 379.8063 L 156.0593 377.2698 z " fill="#a4a9ac" id="path1991" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 377.2698 L 209.4645 394.1799 C 212.7374 390.2026 212.7374 381.247 209.4645 377.2698 z " fill="#53575a" id="path1992" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 272.0248 377.2698 L 281.1799 380.6518 L 272.0248 377.2698 z " fill="#888d90" id="path1993" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 377.2698 L 325.4298 378.1153 L 323.904 377.2698 z " fill="#596465" id="path1994" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 356.455 377.8337 L 356.9647 378.3968 L 356.455 377.8337 z " fill="#333739" id="path1995" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 519.214 377.2698 L 529.895 378.1153 L 519.214 377.2698 z " fill="#888d90" id="path1996" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 100.6204 378.3968 L 101.6365 378.6792 L 100.6204 378.3968 z " fill="#97a4a4" id="path1997" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 103.6721 378.3968 L 104.6882 378.6792 L 103.6721 378.3968 z " fill="#4c5450" id="path1998" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 378.1153 L 151.4818 378.9608 L 146.9043 378.1153 z " fill="#595a63" id="path1999" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 378.1153 L 270.4989 398.4074 C 268.8479 391.7922 262.842 382.6353 253.7144 378.1153 z " fill="#4c5450" id="path2000" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 378.1153 L 264.3955 380.6518 L 261.3437 378.1153 z " fill="#74787b" id="path2001" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 378.1153 L 320.8523 380.6518 C 323.7727 380.2223 325.2177 379.2635 322.3781 378.1153 z " fill="#888d90" id="path2002" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 379.8063 L 371.2056 378.1153 L 366.6279 379.8063 z " fill="#b5babd" id="path2003" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 378.1153 L 380.3607 378.9608 L 371.2056 378.1153 z " fill="#83888b" id="path2004" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 392.5677 378.1153 L 406.3003 384.8793 L 392.5677 378.1153 z " fill="#4c5450" id="path2005" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 378.1153 L 511.5848 378.9608 L 503.9554 378.1153 z " fill="#484c4e" id="path2006" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 512.6025 378.3968 L 513.6187 378.6792 L 512.6025 378.3968 z " fill="#82928c" id="path2007" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 378.9608 L 96.55089 379.8063 L 91.97323 378.9608 z " fill="#a0a5a8" id="path2008" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.8864 379.5247 L 146.396 380.0878 L 145.8864 379.5247 z " fill="#5c5a5d" id="path2009" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 394.1799 C 159.1385 391.0354 156.9642 386.7048 154.5518 383.2247 C 154.1536 382.648 150.8348 378.6648 148.7733 380.1157 C 147.3497 381.1168 149.9178 383.1959 150.7204 384.0465 C 153.882 387.3989 154.5197 390.4537 154.5336 394.1799 z " fill="#d6dee7" id="path2010" stroke="none" style="fill:#d6dee7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 378.9608 L 223.1971 381.4973 L 223.1971 378.9608 z " fill="#484c4e" id="path2011" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 378.9608 L 230.8265 402.6349 L 234.1772 388.2613 L 232.3523 378.9608 z " fill="#394444" id="path2012" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 378.9608 L 322.3781 379.8063 L 320.8523 378.9608 z " fill="#53575a" id="path2013" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 364.5941 379.2423 L 365.6103 379.5247 L 364.5941 379.2423 z " fill="#413b45" id="path2014" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.8003 378.9608 L 499.3778 379.8063 L 494.8003 378.9608 z " fill="#4c5450" id="path2015" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 20.25784 379.8063 L 21.78371 380.6518 L 20.25784 379.8063 z " fill="#82928c" id="path2016" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 69.59351 380.3702 L 70.10305 380.9333 L 69.59351 380.3702 z " fill="#a0a5a8" id="path2017" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 84.34397 379.8063 L 88.9215 380.6518 L 84.34397 379.8063 z " fill="#959a9c" id="path2018" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 379.8063 L 153.0076 380.6518 L 151.4818 379.8063 z " fill="#6a7676" id="path2019" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 379.8063 L 172.8438 380.6518 L 171.318 379.8063 z " fill="#9aaba5" id="path2020" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 385.7248 L 185.0508 379.8063 L 171.318 385.7248 z " fill="#53575a" id="path2021" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 379.8063 L 294.9126 380.6518 L 293.3867 379.8063 z " fill="#888d90" id="path2022" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 379.8063 L 488.6968 380.6518 L 481.0676 379.8063 z " fill="#74787b" id="path2023" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 18.73199 380.6518 L 20.25784 381.4973 L 18.73199 380.6518 z " fill="#596465" id="path2024" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 80.78417 380.9333 L 81.80031 381.2157 L 80.78417 380.9333 z " fill="#45453d" id="path2025" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 380.6518 L 171.318 381.4973 L 169.7921 380.6518 z " fill="#8a9697" id="path2026" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 380.6518 L 200.3094 391.6433 C 202.6454 388.805 203.6235 382.7774 198.7834 380.6518 z " fill="#74787b" id="path2027" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 380.6518 L 287.2833 383.1883 L 281.1799 380.6518 z " fill="#7a8686" id="path2028" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 380.6518 L 296.4385 381.4973 L 294.9126 380.6518 z " fill="#92a39c" id="path2029" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 313.7311 381.2157 L 314.2408 381.7788 L 313.7311 381.2157 z " fill="#4c5450" id="path2030" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.3441 380.9333 L 321.3603 381.2157 L 320.3441 380.9333 z " fill="#373b3d" id="path2031" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 380.6518 L 481.0676 381.4973 L 471.9124 380.6518 z " fill="#82928c" id="path2032" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 17.20612 381.4973 L 18.73199 382.3428 L 17.20612 381.4973 z " fill="#5c5a5d" id="path2033" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 384.0338 C 101.0155 386.3184 125.1927 384.7127 133.1715 381.4973 L 91.97323 384.0338 z " fill="#4c5450" id="path2034" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 381.4973 L 169.7921 382.3428 L 168.2662 381.4973 z " fill="#7a8686" id="path2035" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 395.0254 C 199.7936 393.3606 200.3261 390.4842 200.3094 386.5703 C 200.3048 385.3342 200.9685 382.5119 198.0556 382.0333 C 193.803 381.3358 188.0612 384.5834 185.0508 385.8347 C 181.4146 387.3456 171.701 389.9659 171.1197 392.7239 C 170.7961 394.2619 172.4715 396.0899 173.1475 397.5619 C 173.8127 399.0094 174.4552 401.0648 176.7287 402.0481 C 181.9609 404.309 188.5251 389.1753 192.6799 395.0254 z " fill="#f8feff" id="path2036" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 381.4973 L 221.6713 384.0338 L 221.6713 381.4973 z " fill="#a9b1b9" id="path2037" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 412.4038 383.1883 L 415.4556 381.4973 L 412.4038 383.1883 z " fill="#33413c" id="path2038" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 381.4973 L 470.3865 382.3428 L 459.7054 381.4973 z " fill="#83888b" id="path2039" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 382.3428 L 484.1193 383.1883 L 465.8089 382.3428 z " fill="#c2ccc7" id="path2040" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 71.11932 382.9067 L 71.62898 383.4698 L 71.11932 382.9067 z " fill="#575f5b" id="path2041" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.1028 382.6243 L 248.1191 382.9067 L 247.1028 382.6243 z " fill="#4d4b4f" id="path2042" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 384.0338 L 337.6368 382.3428 L 333.0591 384.0338 z " fill="#434749" id="path2043" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 382.3428 L 418.5073 383.1883 L 413.9298 382.3428 z " fill="#8f9099" id="path2044" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 2.455629 383.7522 L 2.965277 384.3154 L 2.455629 383.7522 z " fill="#777c7e" id="path2045" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 155.0416 383.7522 L 155.5512 384.3154 L 155.0416 383.7522 z " fill="#b5b4ac" id="path2046" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 383.1883 L 191.1541 384.0338 L 189.6282 383.1883 z " fill="#6a7676" id="path2047" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 383.1883 C 246.085 386.5695 246.0287 389.9532 246.1003 393.3344 C 246.1644 396.2843 245.841 401.1181 248.6897 403.7163 C 250.98 405.8056 261.4613 405.2331 262.9046 402.897 C 263.924 401.2483 261.7938 399.066 260.7516 397.5703 C 257.6298 393.0815 253.5831 385.9311 246.085 383.1883 z " fill="#f5fafd" id="path2048" stroke="none" style="fill:#f5fafd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 383.1883 L 294.9126 386.5703 L 287.2833 383.1883 z " fill="#63686a" id="path2049" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 312.2052 383.7522 L 312.7148 384.3154 L 312.2052 383.7522 z " fill="#53575a" id="path2050" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 383.1883 L 323.904 387.4158 L 322.3781 383.1883 z " fill="#97a4a4" id="path2051" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 335.6027 383.4698 L 336.619 383.7522 L 335.6027 383.4698 z " fill="#c7cdcf" id="path2052" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 384.8793 L 339.1625 383.1883 L 336.1108 384.8793 z " fill="#33413c" id="path2053" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 343.7402 383.1883 L 343.7402 387.4158 L 346.7918 383.1883 L 343.7402 383.1883 z " fill="#b7c3c4" id="path2054" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 383.1883 L 360.5247 385.7248 L 360.5247 383.1883 z " fill="#807b7a" id="path2055" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.4464 383.7522 L 385.9561 384.3154 L 385.4464 383.7522 z " fill="#b5b4ac" id="path2056" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.0331 383.1883 L 424.6108 384.0338 L 420.0331 383.1883 z " fill="#686c6f" id="path2057" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 467.3348 383.1883 L 488.6968 384.0338 L 467.3348 383.1883 z " fill="#222628" id="path2058" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 489.7146 383.4698 L 490.7309 383.7522 L 489.7146 383.4698 z " fill="#82928c" id="path2059" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 14.1544 384.0338 L 15.68025 384.8793 L 14.1544 384.0338 z " fill="#888d90" id="path2060" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 161.6547 384.3154 L 162.6709 384.5978 L 161.6547 384.3154 z " fill="#6a7676" id="path2061" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 384.0338 L 189.6282 384.8793 L 188.1024 384.0338 z " fill="#888d90" id="path2062" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 384.0338 L 221.6713 388.2613 L 221.6713 384.0338 z " fill="#484c4e" id="path2063" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.645 384.5978 L 250.1545 385.1609 L 249.645 384.5978 z " fill="#8a9697" id="path2064" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 384.0338 L 416.9814 384.8793 L 415.4556 384.0338 z " fill="#63686a" id="path2065" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 425.6285 384.3154 L 426.6448 384.5978 L 425.6285 384.3154 z " fill="#394444" id="path2066" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 495.8181 384.3154 L 496.8343 384.5978 L 495.8181 384.3154 z " fill="#a4b5ae" id="path2067" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 12.62854 384.8793 L 14.1544 385.7248 L 12.62854 384.8793 z " fill="#6a7676" id="path2068" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 384.8793 L 156.0593 387.4158 L 156.0593 384.8793 z " fill="#7a8686" id="path2069" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 384.8793 L 244.5593 395.0254 L 244.5593 384.8793 z " fill="#686c6f" id="path2070" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 384.8793 L 320.8523 385.7248 L 319.3263 384.8793 z " fill="#595a63" id="path2071" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 395.0254 C 325.4283 393.6066 325.468 392.1819 325.3321 390.7649 C 325.2071 389.4476 325.1491 386.8603 322.5139 386.2 C 318.1103 385.0966 317.1397 389.4028 318.1621 390.7674 C 319.5706 392.6461 322.5383 393.8958 325.4298 395.0254 z " fill="#f5f3f7" id="path2072" stroke="none" style="fill:#f5f3f7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 384.8793 L 397.1453 390.7978 L 386.4642 384.8793 z " fill="#c6ced6" id="path2073" stroke="none" style="fill:#c6ced6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 384.8793 L 413.9298 389.1068 L 406.3003 384.8793 z " fill="#45453d" id="path2074" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 416.9814 384.8793 L 418.5073 385.7248 L 416.9814 384.8793 z " fill="#777c7e" id="path2075" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 428.6802 385.1609 L 429.6964 385.4433 L 428.6802 385.1609 z " fill="#63686a" id="path2076" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 500.3956 385.1609 L 501.4118 385.4433 L 500.3956 385.1609 z " fill="#82928c" id="path2077" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 0.92977 386.2888 L 1.439407 386.8519 L 0.92977 386.2888 z " fill="#7a8686" id="path2078" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 385.7248 L 134.6973 387.4158 L 128.5939 385.7248 z " fill="#807b7a" id="path2079" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 385.7248 L 302.5419 389.9523 L 294.9126 385.7248 z " fill="#333739" id="path2080" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 385.7248 L 305.5937 386.5703 L 304.0679 385.7248 z " fill="#7a8686" id="path2081" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 385.7248 L 339.1625 387.4158 L 333.0591 385.7248 z " fill="#777c7e" id="path2082" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 418.5073 385.7248 L 420.0331 386.5703 L 418.5073 385.7248 z " fill="#7a8686" id="path2083" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 431.7319 386.0064 L 432.7481 386.2888 L 431.7319 386.0064 z " fill="#96a3a3" id="path2084" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 434.7837 386.0064 L 435.7999 386.2888 L 434.7837 386.0064 z " fill="#434749" id="path2085" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 504.9733 386.0064 L 505.9893 386.2888 L 504.9733 386.0064 z " fill="#9aaba5" id="path2086" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 386.5703 L 125.5421 387.4158 L 120.9646 386.5703 z " fill="#857f8a" id="path2087" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 153.0076 386.5703 L 153.0076 394.1799 L 153.0076 386.5703 z " fill="#4c5450" id="path2088" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 386.5703 L 183.5249 387.4158 L 181.999 386.5703 z " fill="#857f8a" id="path2089" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.1373 386.8519 L 309.1535 387.1343 L 308.1373 386.8519 z " fill="#9aaba5" id="path2090" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.5585 387.1343 L 363.0682 387.6974 L 362.5585 387.1343 z " fill="#686c6f" id="path2091" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.3612 386.8519 L 440.3775 387.1343 L 439.3612 386.8519 z " fill="#434749" id="path2092" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 509.5507 386.8519 L 510.567 387.1343 L 509.5507 386.8519 z " fill="#9facad" id="path2093" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 9.576826 387.4158 L 11.10268 388.2613 L 9.576826 387.4158 z " fill="#989d9f" id="path2094" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.87852 387.4158 L 58.40432 388.2613 L 56.87852 387.4158 z " fill="#63736d" id="path2095" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 387.4158 L 116.3869 388.2613 L 111.8094 387.4158 z " fill="#63686a" id="path2096" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 158.0933 387.9798 L 158.603 388.5429 L 158.0933 387.9798 z " fill="#6a7676" id="path2097" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.6966 387.9798 L 253.2063 388.5429 L 252.6966 387.9798 z " fill="#989d9f" id="path2098" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 443.9387 387.6974 L 444.955 387.9798 L 443.9387 387.6974 z " fill="#484c4e" id="path2099" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 513.1106 387.4158 L 514.6365 388.2613 L 513.1106 387.4158 z " fill="#74787b" id="path2100" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 8.050966 388.2613 L 9.576826 389.1068 L 8.050966 388.2613 z " fill="#83888b" id="path2101" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 73.66298 388.2613 L 88.9215 389.1068 L 73.66298 388.2613 z " fill="#4d4b4f" id="path2102" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 388.2613 L 110.2836 389.1068 L 88.9215 388.2613 z " fill="#a19ea2" id="path2103" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 388.2613 L 146.9043 390.7978 L 143.8525 388.2613 z " fill="#6a7676" id="path2104" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 388.2613 L 178.9473 389.1068 L 177.4215 388.2613 z " fill="#5d5e66" id="path2105" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 315.2569 388.8253 L 315.7666 389.3884 L 315.2569 388.8253 z " fill="#989d9f" id="path2106" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 448.0067 388.8253 L 448.5163 389.3884 L 448.0067 388.8253 z " fill="#7a8686" id="path2107" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 477.5076 388.5429 L 478.5239 388.8253 L 477.5076 388.5429 z " fill="#484c4e" id="path2108" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 388.2613 L 511.5848 393.3344 L 493.2743 388.2613 z " fill="#63686a" id="path2109" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 516.1623 388.2613 L 517.6883 389.1068 L 516.1623 388.2613 z " fill="#575f5b" id="path2110" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -0.596089 389.6708 L -0.086441 390.2339 L -0.596089 389.6708 z " fill="#394444" id="path2111" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.525107 389.1068 L 8.050966 389.9523 L 6.525107 389.1068 z " fill="#686c6f" id="path2112" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 389.1068 L 131.6456 389.9523 L 130.1198 389.1068 z " fill="#63686a" id="path2113" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 389.1068 L 157.5852 392.4889 L 157.5852 389.1068 z " fill="#adaeb8" id="path2114" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 389.1068 L 177.4215 389.9523 L 175.8955 389.1068 z " fill="#90878d" id="path2115" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 389.1068 L 220.1455 393.3344 L 220.1455 389.1068 z " fill="#4c5450" id="path2116" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 389.1068 L 273.5507 392.4889 L 276.6022 389.1068 L 273.5507 389.1068 z " fill="#989d9f" id="path2117" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 389.1068 L 429.1882 397.5619 L 413.9298 389.1068 z " fill="#24231d" id="path2118" stroke="none" style="fill:#24231d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 389.1068 C 481.2643 392.2563 484.9097 389.3951 478.0159 389.1068 z " fill="#a19ea2" id="path2119" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 389.9523 L 50.77506 390.7978 L 49.24913 389.9523 z " fill="#7a8686" id="path2120" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 67.05144 390.2339 L 68.06759 390.5163 L 67.05144 390.2339 z " fill="#b3c4bd" id="path2121" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 100.6204 390.2339 L 101.6365 390.5163 L 100.6204 390.2339 z " fill="#888d90" id="path2122" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 389.9523 L 111.8094 390.7978 L 102.6542 389.9523 z " fill="#484c4e" id="path2123" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 389.9523 L 143.8525 392.4889 L 143.8525 389.9523 z " fill="#aebbbc" id="path2124" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 389.9523 L 174.3697 390.7978 L 172.8438 389.9523 z " fill="#5c5a5d" id="path2125" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.8312 391.2223 C 271.4312 392.986 275.4854 403.9894 285.0495 400.8052 C 292.0669 398.4683 289.7217 394.9231 284.1842 392.6791 C 282.5318 392.0086 279.062 390.4935 276.8312 391.2223 z " fill="#eef3f6" id="path2126" stroke="none" style="fill:#eef3f6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 389.9523 L 279.6539 390.7978 L 278.1281 389.9523 z " fill="#686c6f" id="path2127" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 341.1966 390.5163 L 341.7062 391.0794 L 341.1966 390.5163 z " fill="#91988e" id="path2128" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.9292 390.5163 L 355.4389 391.0794 L 354.9292 390.5163 z " fill="#b5b4ac" id="path2129" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 364.0845 390.5163 L 364.5941 391.0794 L 364.0845 390.5163 z " fill="#394444" id="path2130" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 389.9523 L 449.0245 394.1799 L 449.0245 389.9523 z " fill="#484c4e" id="path2131" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 522.2657 389.9523 L 523.7915 390.7978 L 522.2657 389.9523 z " fill="#596465" id="path2132" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 57.89625 391.0794 L 58.91239 391.3618 L 57.89625 391.0794 z " fill="#807b7a" id="path2133" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.93025 390.7978 L 64.50778 391.6433 L 59.93025 390.7978 z " fill="#c3c5c2" id="path2134" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 97.05897 391.3618 L 97.56863 391.9249 L 97.05897 391.3618 z " fill="#6a7676" id="path2135" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.8348 391.3618 L 143.3443 391.9249 L 142.8348 391.3618 z " fill="#63686a" id="path2136" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 390.7978 L 172.8438 391.6433 L 171.318 390.7978 z " fill="#7a8686" id="path2137" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.7484 391.3618 L 256.258 391.9249 L 255.7484 391.3618 z " fill="#a8aeb0" id="path2138" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 390.7978 L 281.1799 391.6433 L 279.6539 390.7978 z " fill="#8a9697" id="path2139" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.1365 390.7978 L 427.6625 391.6433 L 426.1365 390.7978 z " fill="#63686a" id="path2140" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 390.7978 L 493.2743 396.7164 C 496.9487 393.3132 487.1984 391.3525 482.5934 390.7978 z " fill="#b7c3c4" id="path2141" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 391.6433 L 50.77506 393.3344 L 44.6716 391.6433 z " fill="#a0a5a8" id="path2142" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.31859 391.9249 L 54.33487 392.2073 L 53.31859 391.9249 z " fill="#a8aeb0" id="path2143" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.4904 391.6433 L 128.5939 392.4889 L 122.4904 391.6433 z " fill="#c7d4d5" id="path2144" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 391.6433 L 319.3263 392.4889 L 317.8005 391.6433 z " fill="#7a8686" id="path2145" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 427.6625 391.6433 L 429.1882 392.4889 L 427.6625 391.6433 z " fill="#6a7676" id="path2146" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 1.947518 392.4889 L 3.473389 393.3344 L 1.947518 392.4889 z " fill="#888d90" id="path2147" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 392.4889 L 104.1802 393.3344 L 99.6025 392.4889 z " fill="#b7c3c4" id="path2148" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 392.4889 L 108.7577 393.3344 L 104.1802 392.4889 z " fill="#686c6f" id="path2149" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 392.4889 L 142.3266 395.0254 L 142.3266 392.4889 z " fill="#9d9c94" id="path2150" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 144.3606 393.0528 L 144.8703 393.6159 L 144.3606 393.0528 z " fill="#333739" id="path2151" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 392.4889 L 189.6282 393.3344 L 188.1024 392.4889 z " fill="#9aaba5" id="path2152" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 392.4889 L 192.6799 396.7164 L 189.6282 392.4889 z " fill="#333739" id="path2153" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 392.4889 L 191.1541 395.8709 L 191.1541 392.4889 z " fill="#c7cdcf" id="path2154" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 392.4889 L 273.5507 399.2529 L 273.5507 392.4889 z " fill="#595a63" id="path2155" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 392.4889 L 285.7574 393.3344 L 284.2316 392.4889 z " fill="#63686a" id="path2156" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 392.4889 L 320.8523 393.3344 L 319.3263 392.4889 z " fill="#83888b" id="path2157" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.6706 393.0528 L 340.1803 393.6159 L 339.6706 393.0528 z " fill="#686c6f" id="path2158" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.6103 393.0528 L 366.1199 393.6159 L 365.6103 393.0528 z " fill="#484c4e" id="path2159" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 429.1882 392.4889 L 430.7142 393.3344 L 429.1882 392.4889 z " fill="#91988e" id="path2160" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 394.1799 L 474.9641 392.4889 L 471.9124 394.1799 z " fill="#42514b" id="path2161" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.895 392.4889 L 531.4209 393.3344 L 529.895 392.4889 z " fill="#82928c" id="path2162" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 0.42167 393.3344 L 1.947518 394.1799 L 0.42167 393.3344 z " fill="#74787b" id="path2163" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 109.7754 393.6159 L 110.7917 393.8983 L 109.7754 393.6159 z " fill="#777c7e" id="path2164" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 218.6196 393.3344 L 217.0939 408.5534 C 222.6463 406.115 221.325 396.6217 218.6196 393.3344 z " fill="#c7cdcf" id="path2165" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 393.3344 L 218.6196 409.399 C 224.2897 406.9089 222.9165 396.702 220.1455 393.3344 z " fill="#1f1717" id="path2166" stroke="none" style="fill:#1f1717;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 393.3344 L 287.2833 394.1799 L 285.7574 393.3344 z " fill="#959a9c" id="path2167" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 393.3344 L 322.3781 394.1799 L 320.8523 393.3344 z " fill="#63686a" id="path2168" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 395.0254 L 476.4899 393.3344 L 473.4382 395.0254 z " fill="#83888b" id="path2169" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 511.5848 393.3344 L 549.7312 406.0169 C 541.5083 400.3098 524.1883 395.2714 511.5848 393.3344 z " fill="#888d90" id="path2170" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -4.155919 394.1799 L -4.155919 396.7164 L -4.155919 394.1799 z " fill="#373b3d" id="path2171" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 394.1799 L 113.3354 395.0254 L 111.8094 394.1799 z " fill="#97a4a4" id="path2172" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 394.1799 L 133.1715 414.472 L 141.4233 400.1018 L 140.8008 394.1799 z " fill="#6a7676" id="path2173" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 163.1805 394.4614 L 164.1968 394.7438 L 163.1805 394.4614 z " fill="#686c6f" id="path2174" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 394.1799 L 171.318 396.7164 L 171.318 394.1799 z " fill="#b8bec0" id="path2175" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 394.1799 L 188.1024 395.0254 L 186.5765 394.1799 z " fill="#6a7676" id="path2176" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 394.1799 L 195.7317 395.0254 L 194.2059 394.1799 z " fill="#7a8686" id="path2177" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.8 394.7438 L 259.3098 395.3069 L 258.8 394.7438 z " fill="#a6b2b3" id="path2178" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 394.1799 L 290.3351 395.0254 L 288.8092 394.1799 z " fill="#63686a" id="path2179" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 394.1799 L 339.1625 397.5619 L 339.1625 394.1799 z " fill="#cfdcdc" id="path2180" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 359.5068 394.7438 L 360.0164 395.3069 L 359.5068 394.7438 z " fill="#b7c3c4" id="path2181" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.7745 394.1799 L 406.3003 395.0254 L 404.7745 394.1799 z " fill="#74787b" id="path2182" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 394.1799 L 449.0245 396.7164 L 449.0245 394.1799 z " fill="#7a8686" id="path2183" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 480.5593 394.4614 L 481.5756 394.7438 L 480.5593 394.4614 z " fill="#394444" id="path2184" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 394.1799 L 535.9985 395.0254 L 534.4727 394.1799 z " fill="#83888b" id="path2185" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -5.173655 395.5893 L -4.66403 396.1524 L -5.173655 395.5893 z " fill="#888d90" id="path2186" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 161.6516 396.3232 C 153.6134 397.6067 152.0403 403.1811 149.7042 406.8591 C 148.9976 407.9726 145.8345 412.0242 150.606 411.6886 C 155.3391 411.3546 169.4854 408.6989 170.4681 405.7684 C 171.1807 403.6419 167.1615 395.443 161.6516 396.3232 z " fill="#f8feff" id="path2187" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 395.0254 L 201.8352 401.7894 L 200.3094 395.0254 z " fill="#4c5450" id="path2188" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 395.0254 L 244.5593 406.0169 L 244.5593 395.0254 z " fill="#1d2022" id="path2189" stroke="none" style="fill:#1d2022;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 395.0254 L 291.8609 395.8709 L 290.3351 395.0254 z " fill="#888d90" id="path2190" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 367.1362 395.5893 L 367.6458 396.1524 L 367.1362 395.5893 z " fill="#4c5450" id="path2191" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 395.0254 L 407.8263 395.8709 L 406.3003 395.0254 z " fill="#83888b" id="path2192" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 483.6111 395.3069 L 484.6274 395.5893 L 483.6111 395.3069 z " fill="#74787b" id="path2193" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.7226 396.4348 L 166.2323 396.9979 L 165.7226 396.4348 z " fill="#a8aeb0" id="path2194" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 404.3259 L 200.7411 404.5145 L 199.2381 397.0605 L 186.5765 404.3259 z " fill="#f8feff" id="path2195" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 395.8709 L 210.9904 401.7894 L 210.9904 395.8709 z " fill="#aeb3b5" id="path2196" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 260.3259 396.4348 L 260.8357 396.9979 L 260.3259 396.4348 z " fill="#82928c" id="path2197" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 395.8709 L 293.3867 396.7164 L 291.8609 395.8709 z " fill="#686c6f" id="path2198" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 464.2831 395.8709 L 478.0159 407.7079 L 464.2831 395.8709 z " fill="#575f5b" id="path2199" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 395.8709 L 478.0159 396.7164 L 476.4899 395.8709 z " fill="#74787b" id="path2200" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 395.8709 L 493.2743 396.7164 L 485.6452 395.8709 z " fill="#777c7e" id="path2201" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.0502 395.8709 L 540.576 396.7164 L 539.0502 395.8709 z " fill="#8a9697" id="path2202" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 184.033 397.2803 L 184.5426 397.8434 L 184.033 397.2803 z " fill="#b5babd" id="path2203" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 338.1448 397.2803 L 338.6545 397.8434 L 338.1448 397.2803 z " fill="#686c6f" id="path2204" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.878 396.7164 L 412.4038 397.5619 L 410.878 396.7164 z " fill="#63736d" id="path2205" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 450.5503 396.7164 L 450.5503 399.2529 L 450.5503 396.7164 z " fill="#575f5b" id="path2206" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 396.7164 L 479.5417 397.5619 L 478.0159 396.7164 z " fill="#888d90" id="path2207" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 502.4296 396.7164 L 503.9554 397.5619 L 502.4296 396.7164 z " fill="#83888b" id="path2208" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.1284 397.5619 L 102.6542 398.4074 L 101.1284 397.5619 z " fill="#63686a" id="path2209" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 118.421 398.1258 L 118.9306 398.6889 L 118.421 398.1258 z " fill="#45453d" id="path2210" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 397.5619 L 157.5852 398.4074 L 156.0593 397.5619 z " fill="#63686a" id="path2211" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 397.5619 L 365.1022 400.0984 L 362.0505 397.5619 z " fill="#d1d7d9" id="path2212" stroke="none" style="fill:#d1d7d9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 412.4038 397.5619 L 413.9298 398.4074 L 412.4038 397.5619 z " fill="#7a8686" id="path2213" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 397.5619 L 438.3435 398.4074 L 436.8175 397.5619 z " fill="#777c7e" id="path2214" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 543.6278 397.5619 L 545.1537 398.4074 L 543.6278 397.5619 z " fill="#6a7676" id="path2215" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 398.4074 L 99.6025 399.2529 L 98.07669 398.4074 z " fill="#92a39c" id="path2216" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 110.2836 402.6349 L 117.9129 398.4074 L 110.2836 402.6349 z " fill="#63736d" id="path2217" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 398.4074 L 156.0593 399.2529 L 154.5336 398.4074 z " fill="#7a8686" id="path2218" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 167.2486 398.9713 L 167.7582 399.5344 L 167.2486 398.9713 z " fill="#b8bec0" id="path2219" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 398.4074 L 174.3697 399.2529 L 172.8438 398.4074 z " fill="#857f8a" id="path2220" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 398.4074 L 185.0508 399.2529 L 183.5249 398.4074 z " fill="#596465" id="path2221" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 398.4074 L 194.2059 399.2529 L 192.6799 398.4074 z " fill="#6a7676" id="path2222" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 398.4074 L 275.0765 400.9439 L 275.0765 398.4074 z " fill="#b8bec0" id="path2223" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 398.4074 L 297.9644 400.9439 L 297.9644 398.4074 z " fill="#686c6f" id="path2224" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 398.4074 L 337.6368 402.6349 L 337.6368 398.4074 z " fill="#aeb3b5" id="path2225" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 398.4074 L 415.4556 399.2529 L 413.9298 398.4074 z " fill="#92a39c" id="path2226" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 507.0071 398.4074 L 508.533 399.2529 L 507.0071 398.4074 z " fill="#989d9f" id="path2227" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.55089 399.2529 L 98.07669 400.0984 L 96.55089 399.2529 z " fill="#596465" id="path2228" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 399.2529 C 300.4164 401.9171 304.8078 403.0526 305.908 405.3321 C 306.5777 406.7179 303.0393 408.6397 303.166 410.3265 C 303.6909 417.3306 308.1068 421.3603 316.2746 426.3091 L 310.2262 427.7608 L 311.398 433.9186 L 313.2229 447.4467 L 317.181 438.1461 L 322.0791 416.163 L 320.6234 405.666 L 299.4902 399.2529 z " fill="#fefffc" id="path2229" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.0338 399.5344 L 303.0501 399.8168 L 302.0338 399.5344 z " fill="#373b3d" id="path2230" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 399.2529 L 366.6279 400.0984 L 365.1022 399.2529 z " fill="#596465" id="path2231" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 369.6797 399.2529 L 368.1539 401.7894 L 369.6797 399.2529 z " fill="#5c5a5d" id="path2232" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.5843 399.8168 L 453.0939 400.3799 L 452.5843 399.8168 z " fill="#63736d" id="path2233" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 510.0589 399.2529 L 511.5848 400.0984 L 510.0589 399.2529 z " fill="#857f8a" id="path2234" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.2055 399.2529 L 549.7312 400.0984 L 548.2055 399.2529 z " fill="#74787b" id="path2235" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 400.0984 L 151.4818 402.6349 L 151.4818 400.0984 z " fill="#777c7e" id="path2236" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.7743 400.6623 L 169.284 401.2255 L 168.7743 400.6623 z " fill="#807b7a" id="path2237" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 400.0984 L 191.1541 400.9439 L 189.6282 400.0984 z " fill="#6a7676" id="path2238" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 263.3777 400.6623 L 263.8872 401.2255 L 263.3777 400.6623 z " fill="#b8bec0" id="path2239" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 400.0984 L 287.2833 400.9439 L 285.7574 400.0984 z " fill="#83888b" id="path2240" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 400.0984 L 305.5937 400.9439 L 304.0679 400.0984 z " fill="#8a9697" id="path2241" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 418.5073 400.0984 L 420.0331 400.9439 L 418.5073 400.0984 z " fill="#7a8686" id="path2242" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 511.5848 400.0984 L 513.1106 400.9439 L 511.5848 400.0984 z " fill="#989d9f" id="path2243" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 400.9439 L 93.49916 401.7894 L 91.97323 400.9439 z " fill="#8a9697" id="path2244" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 400.9439 L 181.999 401.7894 L 180.4732 400.9439 z " fill="#7a8686" id="path2245" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.1373 401.2255 L 309.1535 401.5079 L 308.1373 401.2255 z " fill="#484c4e" id="path2246" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 441.3952 400.9439 L 442.921 401.7894 L 441.3952 400.9439 z " fill="#686c6f" id="path2247" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 400.9439 L 485.6452 401.7894 L 484.1193 400.9439 z " fill="#596465" id="path2248" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 552.7829 400.9439 L 554.3088 401.7894 L 552.7829 400.9439 z " fill="#777c7e" id="path2249" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 401.7894 L 91.97323 402.6349 L 90.44743 401.7894 z " fill="#63736d" id="path2250" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 401.7894 L 110.2836 402.6349 L 108.7577 401.7894 z " fill="#97a4a4" id="path2251" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.714 402.3534 L 195.2237 402.9165 L 194.714 402.3534 z " fill="#8f9099" id="path2252" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 401.7894 L 201.8352 405.1714 L 201.8352 401.7894 z " fill="#777c7e" id="path2253" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 401.7894 L 210.9904 406.0169 L 210.9904 401.7894 z " fill="#53575a" id="path2254" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 401.7894 L 264.3955 404.3259 L 264.3955 401.7894 z " fill="#aeb3b5" id="path2255" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 401.7894 L 284.2316 402.6349 L 276.6022 401.7894 z " fill="#8a9697" id="path2256" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 292.3689 402.3534 L 292.8787 402.9165 L 292.3689 402.3534 z " fill="#373b3d" id="path2257" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.8949 402.3534 L 294.4046 402.9165 L 293.8949 402.3534 z " fill="#9d9c94" id="path2258" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 402.3534 L 300.5079 402.9165 L 299.9983 402.3534 z " fill="#6a7676" id="path2259" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 442.921 401.7894 L 444.4469 402.6349 L 442.921 401.7894 z " fill="#74787b" id="path2260" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 454.1102 402.3534 L 454.6198 402.9165 L 454.1102 402.3534 z " fill="#9d9c94" id="path2261" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 401.7894 L 487.1709 402.6349 L 485.6452 401.7894 z " fill="#a0a5a8" id="path2262" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 516.1623 401.7894 L 517.6883 402.6349 L 516.1623 401.7894 z " fill="#959a9c" id="path2263" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 402.6349 L 90.44743 403.4804 L 88.9215 402.6349 z " fill="#6a7676" id="path2264" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 402.6349 L 108.7577 403.4804 L 107.2319 402.6349 z " fill="#9facad" id="path2265" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 402.6349 L 122.4904 405.1714 L 120.9646 402.6349 z " fill="#82928c" id="path2266" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.9473 402.6349 L 180.4732 403.4804 L 178.9473 402.6349 z " fill="#807b7a" id="path2267" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 402.6349 L 230.8265 412.781 L 230.8265 402.6349 z " fill="#83888b" id="path2268" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.6108 402.6349 L 426.1365 403.4804 L 424.6108 402.6349 z " fill="#74787b" id="path2269" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.3957 403.4804 L 88.9215 404.3259 L 87.3957 403.4804 z " fill="#575f5b" id="path2270" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 407.7079 L 107.2319 403.4804 L 98.07669 407.7079 z " fill="#73837d" id="path2271" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 403.4804 L 178.9473 404.3259 L 177.4215 403.4804 z " fill="#a0a5a8" id="path2272" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 403.4804 L 192.6799 404.3259 L 186.5765 403.4804 z " fill="#9d9c94" id="path2273" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.0338 403.762 L 303.0501 404.0444 L 302.0338 403.762 z " fill="#a4b5ae" id="path2274" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.1365 403.4804 L 427.6625 404.3259 L 426.1365 403.4804 z " fill="#82928c" id="path2275" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.636 404.0444 L 456.1456 404.6075 L 455.636 404.0444 z " fill="#b5b4ac" id="path2276" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 403.4804 L 488.6968 404.3259 L 487.1709 403.4804 z " fill="#8a9697" id="path2277" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 520.7398 403.4804 L 522.2657 404.3259 L 520.7398 403.4804 z " fill="#686c6f" id="path2278" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 150.4641 404.8899 L 150.9737 405.453 L 150.4641 404.8899 z " fill="#a9b1b9" id="path2279" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 404.3259 L 197.2576 406.0169 L 185.0508 404.3259 z " fill="#959a9c" id="path2280" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 404.3259 L 261.3437 405.1714 L 256.7661 404.3259 z " fill="#83888b" id="path2281" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 306.6114 404.6075 L 307.6276 404.8899 L 306.6114 404.6075 z " fill="#9facad" id="path2282" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 404.3259 L 320.8523 405.1714 L 319.3263 404.3259 z " fill="#777c7e" id="path2283" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 342.2142 404.3259 L 343.7402 405.1714 L 342.2142 404.3259 z " fill="#9facad" id="path2284" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 445.9728 404.3259 L 447.4987 405.1714 L 445.9728 404.3259 z " fill="#777c7e" id="path2285" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.826 405.7354 L 172.3358 406.2985 L 171.826 405.7354 z " fill="#a0a5a8" id="path2286" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 405.1714 L 255.2402 406.0169 L 250.6627 405.1714 z " fill="#4c5450" id="path2287" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 430.7142 405.1714 L 432.24 406.0169 L 430.7142 405.1714 z " fill="#74787b" id="path2288" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 488.6968 405.1714 L 490.2226 406.0169 L 488.6968 405.1714 z " fill="#686c6f" id="path2289" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 405.1714 L 526.8433 406.0169 L 525.3175 405.1714 z " fill="#83888b" id="path2290" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 549.7312 405.1714 L 568.0416 412.781 L 549.7312 405.1714 z " fill="#63686a" id="path2291" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 561.9381 405.1714 L 563.4639 406.0169 L 561.9381 405.1714 z " fill="#8a9697" id="path2292" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 406.0169 L 114.8612 406.8624 L 113.3354 406.0169 z " fill="#5d5e66" id="path2293" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 406.0169 L 214.0421 406.8624 L 212.5162 406.0169 z " fill="#63736d" id="path2294" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 306.6114 406.2985 L 307.6276 406.5809 L 306.6114 406.2985 z " fill="#b5babd" id="path2295" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 406.0169 L 322.3781 410.2445 L 322.3781 406.0169 z " fill="#c3c5c2" id="path2296" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 406.0169 L 459.7054 406.8624 L 458.1796 406.0169 z " fill="#6a7676" id="path2297" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 528.3692 406.0169 L 529.895 406.8624 L 528.3692 406.0169 z " fill="#63686a" id="path2298" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 563.4639 406.0169 L 564.9899 406.8624 L 563.4639 406.0169 z " fill="#6a7676" id="path2299" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 406.8624 L 113.3354 407.7079 L 111.8094 406.8624 z " fill="#686c6f" id="path2300" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 406.8624 L 119.4387 409.399 L 119.4387 406.8624 z " fill="#a19ea2" id="path2301" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.9381 407.4264 L 149.4478 407.9895 L 148.9381 407.4264 z " fill="#c3c5c2" id="path2302" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 406.8624 L 215.5678 407.7079 L 214.0421 406.8624 z " fill="#575f5b" id="path2303" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.5242 407.4264 L 302.0338 407.9895 L 301.5242 407.4264 z " fill="#959a9c" id="path2304" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 406.8624 L 450.5503 407.7079 L 449.0245 406.8624 z " fill="#8a9697" id="path2305" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 406.8624 L 462.7572 410.2445 L 458.1796 406.8624 z " fill="#d2dbd6" id="path2306" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.895 406.8624 L 531.4209 407.7079 L 529.895 406.8624 z " fill="#989d9f" id="path2307" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 564.9899 406.8624 L 566.5157 407.7079 L 564.9899 406.8624 z " fill="#596465" id="path2308" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 411.09 L 99.6025 407.7079 L 93.49916 411.09 z " fill="#394444" id="path2309" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 110.2836 407.7079 L 111.8094 408.5534 L 110.2836 407.7079 z " fill="#716667" id="path2310" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 407.7079 L 169.7921 408.5534 L 168.2662 407.7079 z " fill="#93aca4" id="path2311" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 407.7079 L 229.3006 432.2276 L 231.0172 421.236 L 229.3006 407.7079 z " fill="#575f5b" id="path2312" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 289.8269 407.9895 L 290.8431 408.2719 L 289.8269 407.9895 z " fill="#4d4b4f" id="path2313" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 407.7079 L 296.4385 408.5534 L 291.8609 407.7079 z " fill="#90878d" id="path2314" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 407.7079 L 351.3695 408.5534 L 349.8435 407.7079 z " fill="#7a8686" id="path2315" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 407.7079 L 438.3435 408.5534 L 436.8175 407.7079 z " fill="#857f8a" id="path2316" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 407.7079 L 496.3261 424.618 C 493.3217 418.6158 486.4645 411.8577 478.0159 407.7079 z " fill="#394444" id="path2317" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 532.9468 407.7079 L 534.4727 408.5534 L 532.9468 407.7079 z " fill="#777c7e" id="path2318" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 408.5534 L 110.2836 409.399 L 108.7577 408.5534 z " fill="#90878d" id="path2319" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 408.5534 L 166.7404 409.399 L 162.1628 408.5534 z " fill="#7a8686" id="path2320" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 286.7752 408.835 L 287.7915 409.1174 L 286.7752 408.835 z " fill="#b3aba4" id="path2321" stroke="none" style="fill:#b3aba4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 289.1891 409.3026 C 277.2798 412.1282 290.3763 420.9519 297.7354 418.3013 C 303.3186 416.289 297.0778 407.4315 289.1891 409.3026 z " fill="#fefffc" id="path2322" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 408.5534 L 296.4385 411.09 L 296.4385 408.5534 z " fill="#c3c5c2" id="path2323" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.3695 408.5534 L 352.8953 409.399 L 351.3695 408.5534 z " fill="#596465" id="path2324" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 408.5534 L 439.8693 409.399 L 438.3435 408.5534 z " fill="#989d9f" id="path2325" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 491.7485 408.5534 L 493.2743 409.399 L 491.7485 408.5534 z " fill="#777c7e" id="path2326" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 569.5674 408.5534 L 571.0933 409.399 L 569.5674 408.5534 z " fill="#9facad" id="path2327" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 409.399 L 108.7577 410.2445 L 107.2319 409.399 z " fill="#888d90" id="path2328" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 409.399 L 119.4387 411.9355 L 119.4387 409.399 z " fill="#434749" id="path2329" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 158.603 409.6805 L 159.6193 409.9629 L 158.603 409.6805 z " fill="#42514b" id="path2330" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 409.399 L 441.3952 410.2445 L 439.8693 409.399 z " fill="#a0a5a8" id="path2331" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 409.399 L 453.602 410.2445 L 452.0762 409.399 z " fill="#888d90" id="path2332" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 571.0933 409.399 L 572.6192 410.2445 L 571.0933 409.399 z " fill="#6a7676" id="path2333" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.29224 416.163 L 93.49916 410.2445 L 81.29224 416.163 z " fill="#686c6f" id="path2334" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 410.2445 L 107.2319 411.09 L 105.706 410.2445 z " fill="#888d90" id="path2335" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 410.2445 L 195.7317 411.09 L 181.999 410.2445 z " fill="#342c31" id="path2336" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 411.9355 L 212.5162 411.09 L 201.8352 411.9355 z " fill="#50564d" id="path2337" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 274.5684 410.526 L 275.5845 410.8084 L 274.5684 410.526 z " fill="#686c6f" id="path2338" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 410.2445 L 285.7574 411.09 L 284.2316 410.2445 z " fill="#90878d" id="path2339" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 410.2445 L 322.3781 412.781 L 322.3781 410.2445 z " fill="#7a8686" id="path2340" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.7572 410.2445 L 465.8089 412.781 L 462.7572 410.2445 z " fill="#d0d5d8" id="path2341" stroke="none" style="fill:#d0d5d8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 541.5938 410.526 L 542.61 410.8084 L 541.5938 410.526 z " fill="#595a63" id="path2342" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.8864 411.6539 L 146.396 412.217 L 145.8864 411.6539 z " fill="#7a8686" id="path2343" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 411.09 L 153.0076 411.9355 L 151.4818 411.09 z " fill="#73837d" id="path2344" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 414.472 L 178.9473 412.781 L 178.9473 411.09 L 157.5852 414.472 z " fill="#33413c" id="path2345" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.9473 411.09 L 189.6282 411.9355 L 178.9473 411.09 z " fill="#73837d" id="path2346" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 411.09 L 195.7317 412.781 L 194.2059 413.6265 C 200.9349 412.4445 192.4389 411.09 189.6282 411.09 z " fill="#4c5450" id="path2347" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 412.781 L 201.8352 411.09 L 197.2576 412.781 z " fill="#959a9c" id="path2348" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 411.09 L 268.973 411.9355 L 264.3955 411.09 z " fill="#373b3d" id="path2349" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 411.09 L 273.5507 411.9355 L 268.973 411.09 z " fill="#9facad" id="path2350" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 412.781 C 265.7947 414.6394 273.8297 415.2262 276.6022 411.09 L 259.8178 412.781 z " fill="#fefffc" id="path2351" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 298.4724 411.6539 L 298.9821 412.217 L 298.4724 411.6539 z " fill="#8a9697" id="path2352" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 303.0501 411.6539 L 303.5596 412.217 L 303.0501 411.6539 z " fill="#888d90" id="path2353" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.1285 411.3715 L 338.1448 411.6539 L 337.1285 411.3715 z " fill="#434749" id="path2354" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.4469 411.09 L 445.9728 411.9355 L 444.4469 411.09 z " fill="#595a63" id="path2355" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 575.6709 411.09 L 577.1966 411.9355 L 575.6709 411.09 z " fill="#6a7676" id="path2356" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 413.6265 L 267.4472 412.781 L 256.7661 413.6265 z " fill="#9d9c94" id="path2357" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 283.2139 412.4994 L 283.7235 413.0625 L 283.2139 412.4994 z " fill="#c8c5ca" id="path2358" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 411.9355 L 340.6884 412.781 L 339.1625 411.9355 z " fill="#74787b" id="path2359" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 445.9728 411.9355 L 447.4987 412.781 L 445.9728 411.9355 z " fill="#63686a" id="path2360" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 411.9355 L 456.6537 412.781 L 455.128 411.9355 z " fill="#97a4a4" id="path2361" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 411.9355 L 467.3348 412.781 L 465.8089 411.9355 z " fill="#595a63" id="path2362" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.8003 411.9355 L 496.3261 412.781 L 494.8003 411.9355 z " fill="#777c7e" id="path2363" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 412.781 L 101.1284 413.6265 L 99.6025 412.781 z " fill="#5d5e66" id="path2364" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 412.781 L 117.9129 416.163 L 117.9129 412.781 z " fill="#a6b2b3" id="path2365" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 412.781 L 247.6109 414.472 L 243.0334 412.781 z " fill="#42514b" id="path2366" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 412.781 L 256.7661 413.6265 L 244.5593 412.781 z " fill="#74787b" id="path2367" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 412.781 L 322.3781 415.3175 L 322.3781 412.781 z " fill="#45453d" id="path2368" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 412.781 L 334.5851 416.163 L 334.5851 412.781 z " fill="#373b3d" id="path2369" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 412.781 L 360.5247 413.6265 L 358.9988 412.781 z " fill="#575f5b" id="path2370" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 412.781 L 449.0245 413.6265 L 447.4987 412.781 z " fill="#686c6f" id="path2371" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 568.0416 412.781 L 577.1966 416.163 L 568.0416 412.781 z " fill="#3c3837" id="path2372" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 580.2483 412.781 L 581.7743 413.6265 L 580.2483 412.781 z " fill="#8a9697" id="path2373" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 69.08531 413.6265 L 70.61125 414.472 L 69.08531 413.6265 z " fill="#53575a" id="path2374" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 413.6265 L 99.6025 414.472 L 98.07669 413.6265 z " fill="#74787b" id="path2375" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 413.6265 L 127.0681 431.3821 C 131.3771 427.6585 136.5528 417.4769 131.6456 413.6265 z " fill="#394444" id="path2376" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 260.8357 413.908 L 261.8518 414.1904 L 260.8357 413.908 z " fill="#42514b" id="path2377" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 263.8872 413.908 L 264.9035 414.1904 L 263.8872 413.908 z " fill="#7a8686" id="path2378" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.688 414.1904 L 282.1976 414.7535 L 281.688 414.1904 z " fill="#53575a" id="path2379" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 414.1904 L 300.5079 414.7535 L 299.9983 414.1904 z " fill="#434749" id="path2380" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 413.6265 L 346.7918 414.472 L 345.266 413.6265 z " fill="#686c6f" id="path2381" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 413.6265 L 362.0505 414.472 L 360.5247 413.6265 z " fill="#82928c" id="path2382" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 413.6265 L 450.5503 414.472 L 449.0245 413.6265 z " fill="#74787b" id="path2383" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 456.6537 413.6265 L 458.1796 414.472 L 456.6537 413.6265 z " fill="#888d90" id="path2384" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 413.6265 L 497.852 414.472 L 496.3261 413.6265 z " fill="#807b7a" id="path2385" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 67.55952 414.472 L 69.08531 415.3175 L 67.55952 414.472 z " fill="#63736d" id="path2386" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 271.5166 414.7535 L 272.5328 415.0359 L 271.5166 414.7535 z " fill="#394444" id="path2387" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 414.472 L 363.5763 415.3175 L 362.0505 414.472 z " fill="#9facad" id="path2388" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 450.5503 414.472 L 452.0762 415.3175 L 450.5503 414.472 z " fill="#73837d" id="path2389" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 558.3783 414.7535 L 559.3944 415.0359 L 558.3783 414.7535 z " fill="#33413c" id="path2390" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 66.03358 415.3175 L 67.55952 416.163 L 66.03358 415.3175 z " fill="#83888b" id="path2391" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 418.6995 L 214.0421 415.3175 L 206.4127 418.6995 z " fill="#575f5b" id="path2392" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 415.3175 L 230.8265 424.618 L 230.8265 415.3175 z " fill="#7a8686" id="path2393" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 415.3175 L 284.2316 416.163 L 282.7057 415.3175 z " fill="#9facad" id="path2394" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 415.8814 L 300.5079 416.4445 L 299.9983 415.8814 z " fill="#83888b" id="path2395" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 415.3175 L 453.602 416.163 L 452.0762 415.3175 z " fill="#7a8686" id="path2396" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 415.3175 L 459.7054 416.163 L 458.1796 415.3175 z " fill="#83888b" id="path2397" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 470.3865 415.3175 L 471.9124 416.163 L 470.3865 415.3175 z " fill="#6a7676" id="path2398" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 415.3175 L 499.3778 416.163 L 497.852 415.3175 z " fill="#596465" id="path2399" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 561.4301 415.599 L 562.4462 415.8814 L 561.4301 415.599 z " fill="#53575a" id="path2400" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 586.3518 415.3175 L 587.8778 416.163 L 586.3518 415.3175 z " fill="#a0a5a8" id="path2401" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 64.50778 416.163 L 66.03358 417.0085 L 64.50778 416.163 z " fill="#97a4a4" id="path2402" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 417.854 L 82.81804 416.163 L 79.76644 417.854 z " fill="#333739" id="path2403" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 416.163 L 117.9129 419.545 L 117.9129 416.163 z " fill="#575f5b" id="path2404" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 416.163 L 174.3697 417.0085 L 169.7921 416.163 z " fill="#484c4e" id="path2405" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 416.163 L 250.6627 417.854 L 259.8178 416.163 L 250.6627 416.163 z " fill="#222628" id="path2406" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 416.163 L 285.7574 417.0085 L 284.2316 416.163 z " fill="#92a39c" id="path2407" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 416.163 L 304.0679 418.6995 L 304.0679 416.163 z " fill="#888d90" id="path2408" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 416.163 L 334.5851 420.3905 L 334.5851 416.163 z " fill="#959a9c" id="path2409" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.8953 416.163 L 354.4212 417.0085 L 352.8953 416.163 z " fill="#989d9f" id="path2410" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 416.163 L 455.128 417.0085 L 453.602 416.163 z " fill="#83888b" id="path2411" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 564.4816 416.4445 L 565.4979 416.7269 L 564.4816 416.4445 z " fill="#596465" id="path2412" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 587.8778 416.163 L 589.4036 417.0085 L 587.8778 416.163 z " fill="#777c7e" id="path2413" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 66.03358 423.7725 L 79.76644 417.0085 L 66.03358 423.7725 z " fill="#73837d" id="path2414" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 417.0085 L 91.97323 417.854 L 90.44743 417.0085 z " fill="#63686a" id="path2415" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 164.7065 417.29 L 165.7226 417.5724 L 164.7065 417.29 z " fill="#9d9c94" id="path2416" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 417.0085 L 264.3955 418.6995 L 258.292 417.0085 z " fill="#777c7e" id="path2417" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.3011 417.29 L 289.3172 417.5724 L 288.3011 417.29 z " fill="#b7c3c4" id="path2418" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 417.0085 L 299.4902 420.3905 L 299.4902 417.0085 z " fill="#c2ccc7" id="path2419" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 355.947 417.0085 L 357.4729 417.854 L 355.947 417.0085 z " fill="#7a8686" id="path2420" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 417.0085 L 366.6279 417.854 L 365.1022 417.0085 z " fill="#74787b" id="path2421" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.3778 417.0085 L 500.9038 417.854 L 499.3778 417.0085 z " fill="#595a63" id="path2422" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 417.854 L 90.44743 418.6995 L 88.9215 417.854 z " fill="#82928c" id="path2423" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 417.854 L 162.1628 418.6995 L 157.5852 417.854 z " fill="#8a9697" id="path2424" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 429.6911 L 206.4127 417.854 C 195.2297 419.6025 182.8001 424.5352 175.8955 429.6911 z " fill="#73837d" id="path2425" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 417.854 L 270.4989 418.6995 L 264.3955 417.854 z " fill="#aeb3b5" id="path2426" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 419.545 L 279.6539 418.6995 L 267.4472 419.545 z " fill="#6a7676" id="path2427" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 292.8787 418.1356 L 293.8949 418.418 L 292.8787 418.1356 z " fill="#c2ccc7" id="path2428" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 417.854 L 320.8523 425.4635 L 320.8523 417.854 z " fill="#63686a" id="path2429" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 417.854 L 368.1539 418.6995 L 366.6279 417.854 z " fill="#97a4a4" id="path2430" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 570.5851 418.1356 L 571.6014 418.418 L 570.5851 418.1356 z " fill="#6a7676" id="path2431" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 592.4553 417.854 L 593.9811 418.6995 L 592.4553 417.854 z " fill="#a0a5a8" id="path2432" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 150.9737 418.9811 L 151.9899 419.2635 L 150.9737 418.9811 z " fill="#74787b" id="path2433" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.0254 418.9811 L 155.0416 419.2635 L 154.0254 418.9811 z " fill="#b8c5c5" id="path2434" stroke="none" style="fill:#b8c5c5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 242.5252 418.9811 L 243.5415 419.2635 L 242.5252 418.9811 z " fill="#333739" id="path2435" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 418.6995 L 362.0505 419.545 L 360.5247 418.6995 z " fill="#82928c" id="path2436" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 575.1628 418.9811 L 576.1789 419.2635 L 575.1628 418.9811 z " fill="#373b3d" id="path2437" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 593.9811 418.6995 L 595.507 419.545 L 593.9811 418.6995 z " fill="#63686a" id="path2438" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 419.545 L 116.3869 422.927 L 116.3869 419.545 z " fill="#c3c5c2" id="path2439" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.3443 419.8266 L 144.3606 420.109 L 143.3443 419.8266 z " fill="#a4b5ae" id="path2440" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 419.545 L 178.9473 420.3905 L 177.4215 419.545 z " fill="#7a8686" id="path2441" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 422.0815 L 244.5593 419.545 L 241.5076 422.0815 z " fill="#c9d6d7" id="path2442" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 245.577 419.8266 L 246.5933 420.109 L 245.577 419.8266 z " fill="#434749" id="path2443" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 419.545 L 284.2316 420.3905 L 278.1281 419.545 z " fill="#97a4a4" id="path2444" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 421.236 L 290.3351 421.236 L 281.1799 421.236 z " fill="#74787b" id="path2445" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 419.545 L 305.5937 422.0815 L 305.5937 419.545 z " fill="#c8c5ca" id="path2446" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.1539 419.545 L 369.6797 420.3905 L 368.1539 419.545 z " fill="#596465" id="path2447" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 578.2145 419.8266 L 579.2307 420.109 L 578.2145 419.8266 z " fill="#33413c" id="path2448" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.81804 420.3905 L 84.34397 421.236 L 82.81804 420.3905 z " fill="#596465" id="path2449" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 420.3905 L 142.3266 421.236 L 140.8008 420.3905 z " fill="#6a7676" id="path2450" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 420.3905 L 177.4215 421.236 L 175.8955 420.3905 z " fill="#a19ea2" id="path2451" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 420.3905 L 239.9816 426.3091 L 239.9816 420.3905 z " fill="#394444" id="path2452" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.3288 421.4093 C 241.9088 422.3952 241.393 424.7677 244.1458 425.7147 C 247.7757 426.9643 258.1715 428.3772 261.9434 426.9998 C 272.8807 423.0048 249.8616 419.1552 244.3288 421.4093 z " fill="#fefffc" id="path2453" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 420.3905 L 253.7144 421.236 L 249.1368 420.3905 z " fill="#53575a" id="path2454" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 369.6797 420.3905 L 371.2056 421.236 L 369.6797 420.3905 z " fill="#a4a9ac" id="path2455" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 420.3905 L 479.5417 421.236 L 478.0159 420.3905 z " fill="#73837d" id="path2456" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 581.2661 420.6721 L 582.2824 420.9545 L 581.2661 420.6721 z " fill="#4c5450" id="path2457" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.87852 421.236 L 58.40432 422.0815 L 56.87852 421.236 z " fill="#777c7e" id="path2458" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.29224 421.236 L 82.81804 422.0815 L 81.29224 421.236 z " fill="#83888b" id="path2459" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 421.236 L 262.8695 422.0815 L 258.292 421.236 z " fill="#7a8686" id="path2460" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 421.236 L 481.0676 422.0815 L 479.5417 421.236 z " fill="#53575a" id="path2461" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 422.0815 L 81.29224 422.927 L 79.76644 422.0815 z " fill="#6a7676" id="path2462" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.7831 422.6455 L 140.2926 423.2086 L 139.7831 422.6455 z " fill="#a0a5a8" id="path2463" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 266.4294 422.6455 L 266.9389 423.2086 L 266.4294 422.6455 z " fill="#9d9c94" id="path2464" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 422.0815 L 308.6453 422.927 L 307.1196 422.0815 z " fill="#97a4a4" id="path2465" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 369.6797 423.7725 L 372.7314 422.0815 L 369.6797 423.7725 z " fill="#4c5450" id="path2466" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 504.4635 422.6455 L 504.9733 423.2086 L 504.4635 422.6455 z " fill="#595a63" id="path2467" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 422.927 L 79.76644 423.7725 L 78.24051 422.927 z " fill="#989d9f" id="path2468" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 422.927 L 116.3869 433.9186 L 116.3869 422.927 z " fill="#595a63" id="path2469" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 422.927 L 207.9386 425.4635 L 204.8869 422.927 z " fill="#3c3837" id="path2470" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 422.927 L 281.1799 423.7725 L 275.0765 422.927 z " fill="#74787b" id="path2471" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 422.927 L 310.1711 423.7725 L 308.6453 422.927 z " fill="#6a7676" id="path2472" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.5673 423.491 L 334.0768 424.0541 L 333.5673 423.491 z " fill="#4c5450" id="path2473" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 422.927 L 482.5934 423.7725 L 481.0676 422.927 z " fill="#82928c" id="path2474" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 433.0731 L 67.55952 423.7725 L 50.77506 433.0731 z " fill="#4c5450" id="path2475" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 76.71471 423.7725 L 78.24051 424.618 L 76.71471 423.7725 z " fill="#8a9697" id="path2476" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 423.7725 L 206.4127 426.3091 L 204.8869 423.7725 z " fill="#bdd2d1" id="path2477" stroke="none" style="fill:#bdd2d1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 423.7725 C 269.7161 431.3804 277.5406 433.1238 287.2833 437.6058 C 291.7556 439.663 295.6405 441.9027 301.0161 443.2192 L 273.5507 426.3091 L 278.1281 427.1546 L 273.5507 423.7725 z " fill="#e2f0f0" id="path2478" stroke="none" style="fill:#e2f0f0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 427.1546 L 273.5507 426.3091 C 277.9405 430.7107 287.9547 432.3248 296.4385 432.2276 L 296.4385 429.6911 L 305.5937 439.8371 C 305.5937 435.7652 307.3423 428.2588 300.2363 425.5904 C 295.9792 423.9915 273.5002 421.9065 278.1281 427.1546 z " fill="#f8feff" id="path2479" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 423.7725 L 290.3351 424.618 L 285.7574 423.7725 z " fill="#b7c3c4" id="path2480" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 423.7725 L 299.4902 424.618 L 290.3351 423.7725 z " fill="#596465" id="path2481" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 423.7725 L 313.2229 424.618 L 311.6971 423.7725 z " fill="#8a9697" id="path2482" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 423.7725 L 484.1193 424.618 L 482.5934 423.7725 z " fill="#596465" id="path2483" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 75.18878 424.618 L 76.71471 425.4635 L 75.18878 424.618 z " fill="#97a4a4" id="path2484" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.9035 425.182 L 265.4131 425.7451 L 264.9035 425.182 z " fill="#4c5450" id="path2485" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 424.618 L 302.5419 425.4635 L 301.0161 424.618 z " fill="#9d9c94" id="path2486" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 315.2569 425.182 L 315.7666 425.7451 L 315.2569 425.182 z " fill="#b5babd" id="path2487" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.5673 425.182 L 334.0768 425.7451 L 333.5673 425.182 z " fill="#83888b" id="path2488" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 424.618 L 510.0589 438.9916 L 496.3261 424.618 z " fill="#262e2a" id="path2489" stroke="none" style="fill:#262e2a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 505.4813 424.618 L 507.0071 425.4635 L 505.4813 424.618 z " fill="#91988e" id="path2490" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 425.4635 L 52.30086 426.3091 L 50.77506 425.4635 z " fill="#575f5b" id="path2491" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 425.4635 L 201.8352 426.3091 L 200.3094 425.4635 z " fill="#777c7e" id="path2492" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 429.6911 L 204.8869 425.4635 L 198.7834 429.6911 z " fill="#f5fafd" id="path2493" stroke="none" style="fill:#f5fafd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 303.0501 426.0275 L 303.5596 426.5906 L 303.0501 426.0275 z " fill="#888d90" id="path2494" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 425.4635 L 314.7488 426.3091 L 308.6453 425.4635 z " fill="#686c6f" id="path2495" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 601.6105 425.4635 L 603.1363 426.3091 L 601.6105 425.4635 z " fill="#959a9c" id="path2496" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 607.714 425.4635 L 609.2397 426.3091 L 607.714 425.4635 z " fill="#989d9f" id="path2497" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 426.3091 L 50.77506 427.1546 L 49.24913 426.3091 z " fill="#807b7a" id="path2498" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.7313 426.873 L 137.241 427.4361 L 136.7313 426.873 z " fill="#b0b5b7" id="path2499" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 426.3091 L 166.7404 427.1546 L 165.2145 426.3091 z " fill="#92a39c" id="path2500" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 426.3091 L 200.3094 427.1546 L 198.7834 426.3091 z " fill="#74787b" id="path2501" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 426.3091 L 253.7144 427.1546 L 241.5076 426.3091 z " fill="#63736d" id="path2502" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 426.3091 L 319.3263 428.8456 L 319.3263 426.3091 z " fill="#a6b2b3" id="path2503" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 426.3091 L 487.1709 427.1546 L 485.6452 426.3091 z " fill="#74787b" id="path2504" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 604.6623 426.3091 L 606.1881 427.1546 L 604.6623 426.3091 z " fill="#8a9697" id="path2505" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 607.714 428.0001 L 610.7655 426.3091 L 607.714 428.0001 z " fill="#a4a9ac" id="path2506" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.72332 427.1546 L 49.24913 428.0001 L 47.72332 427.1546 z " fill="#74787b" id="path2507" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 163.6887 427.1546 L 165.2145 428.0001 L 163.6887 427.1546 z " fill="#6a7676" id="path2508" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 427.1546 L 198.7834 428.0001 L 197.2576 427.1546 z " fill="#575f5b" id="path2509" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 427.1546 L 204.8869 428.0001 L 203.3611 427.1546 z " fill="#8a9697" id="path2510" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.0939 427.1546 L 220.1455 428.8456 L 217.0939 427.1546 z " fill="#4c5450" id="path2511" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 427.1546 L 264.3955 428.0001 L 262.8695 427.1546 z " fill="#63686a" id="path2512" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 271.007 427.7185 L 271.5166 428.2816 L 271.007 427.7185 z " fill="#aeb3b5" id="path2513" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 428.0001 L 47.72332 428.8456 L 46.19746 428.0001 z " fill="#96a3a3" id="path2514" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 428.0001 L 200.3094 430.5366 L 197.2576 428.0001 z " fill="#97a4a4" id="path2515" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.0939 428.0001 L 207.9386 435.6096 L 217.0939 428.0001 z " fill="#aebbbc" id="path2516" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 428.0001 L 262.8695 428.8456 L 258.292 428.0001 z " fill="#83888b" id="path2517" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 428.0001 L 304.0679 430.5366 L 304.0679 428.0001 z " fill="#575f5b" id="path2518" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 428.0001 L 308.6453 430.5366 L 308.6453 428.0001 z " fill="#777c7e" id="path2519" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 66.03358 428.8456 L 67.55952 429.6911 L 66.03358 428.8456 z " fill="#53575a" id="path2520" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 135.2054 429.4095 L 135.7151 429.9726 L 135.2054 429.4095 z " fill="#b7c3c4" id="path2521" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 430.5366 L 279.6539 428.8456 L 275.0765 430.5366 z " fill="#cad4cf" id="path2522" stroke="none" style="fill:#cad4cf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.8346 429.4095 L 320.3441 429.9726 L 319.8346 429.4095 z " fill="#74787b" id="path2523" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 488.6968 428.8456 L 490.2226 429.6911 L 488.6968 428.8456 z " fill="#777c7e" id="path2524" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 64.50778 429.6911 L 66.03358 430.5366 L 64.50778 429.6911 z " fill="#686c6f" id="path2525" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 435.6096 L 175.8955 429.6911 L 162.1628 435.6096 z " fill="#7a8686" id="path2526" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 432.2276 L 299.4902 429.6911 L 296.4385 432.2276 z " fill="#73837d" id="path2527" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 429.6911 L 331.5333 432.2276 L 331.5333 429.6911 z " fill="#5c5a5d" id="path2528" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 43.14574 430.5366 L 44.6716 431.3821 L 43.14574 430.5366 z " fill="#888d90" id="path2529" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 62.98185 430.5366 L 64.50778 431.3821 L 62.98185 430.5366 z " fill="#74787b" id="path2530" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 430.5366 L 214.0421 431.3821 L 212.5162 430.5366 z " fill="#736c77" id="path2531" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 430.5366 L 229.3006 436.4551 L 232.3523 436.4551 L 230.8265 430.5366 z " fill="#373b3d" id="path2532" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 510.0589 430.5366 L 511.5848 431.3821 L 510.0589 430.5366 z " fill="#8a9697" id="path2533" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 61.45605 431.3821 L 62.98185 432.2276 L 61.45605 431.3821 z " fill="#857f8a" id="path2534" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.1202 431.6636 L 190.1365 431.946 L 189.1202 431.6636 z " fill="#434749" id="path2535" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 431.3821 L 212.5162 432.2276 L 210.9904 431.3821 z " fill="#53575a" id="path2536" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 431.3821 L 270.4989 439.0745 L 294.9126 447.4467 C 285.4995 440.8188 265.317 433.6726 250.6627 431.3821 z " fill="#9aaba5" id="path2537" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 431.3821 L 281.1799 432.2276 L 279.6539 431.3821 z " fill="#74787b" id="path2538" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 433.0731 L 294.9126 431.3821 L 291.8609 433.0731 z " fill="#959a9c" id="path2539" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 431.3821 L 310.1711 433.9186 L 310.1711 431.3821 z " fill="#bbc8c9" id="path2540" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 491.7485 431.3821 L 493.2743 432.2276 L 491.7485 431.3821 z " fill="#83888b" id="path2541" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.93025 432.2276 L 61.45605 433.0731 L 59.93025 432.2276 z " fill="#91988e" id="path2542" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 432.2276 L 191.1541 433.9186 L 188.1024 432.2276 z " fill="#888d90" id="path2543" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 432.2276 L 276.6022 433.0731 L 275.0765 432.2276 z " fill="#82928c" id="path2544" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 432.2276 L 290.3351 433.0731 L 288.8092 432.2276 z " fill="#575f5b" id="path2545" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 432.2276 L 297.9644 433.9186 L 294.9126 432.2276 z " fill="#aeb3b5" id="path2546" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 432.2276 L 305.5937 436.4551 L 305.5937 432.2276 z " fill="#6a7676" id="path2547" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 332.0413 432.7915 L 332.551 433.3546 L 332.0413 432.7915 z " fill="#9d9c94" id="path2548" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 58.40432 433.0731 L 59.93025 433.9186 L 58.40432 433.0731 z " fill="#a4a9ac" id="path2549" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 132.1537 433.637 L 132.6633 434.2001 L 132.1537 433.637 z " fill="#82928c" id="path2550" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 433.0731 L 278.1281 433.9186 L 276.6022 433.0731 z " fill="#53575a" id="path2551" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 433.0731 L 285.7574 433.9186 L 284.2316 433.0731 z " fill="#857f8a" id="path2552" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.3529 433.3546 L 292.3689 433.637 L 291.3529 433.3546 z " fill="#4c5450" id="path2553" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 318.3086 433.637 L 318.8183 434.2001 L 318.3086 433.637 z " fill="#b8bec0" id="path2554" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 433.9186 L 116.3869 440.6826 L 116.3869 433.9186 z " fill="#857f8a" id="path2555" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 433.9186 L 220.1455 443.2192 L 223.1971 433.9186 L 220.1455 433.9186 z " fill="#b3c7c6" id="path2556" stroke="none" style="fill:#b3c7c6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 433.9186 L 238.4558 437.3006 L 238.4558 433.9186 z " fill="#373b3d" id="path2557" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 433.9186 L 232.9917 449.1309 L 227.7169 452.9974 L 226.0811 448.2905 L 223.1971 437.3006 L 223.0218 458.4382 L 223.1971 495.6405 L 226.6349 485.4944 L 236.7362 466.8933 L 247.1547 450.8287 L 251.5293 442.4235 L 239.9816 433.9186 z " fill="#fefffc" id="path2558" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 433.9186 L 310.1711 438.9916 L 310.1711 433.9186 z " fill="#63686a" id="path2559" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.8003 433.9186 L 496.3261 434.7641 L 494.8003 433.9186 z " fill="#74787b" id="path2560" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 434.7641 L 40.09401 435.6096 L 38.56816 434.7641 z " fill="#888d90" id="path2561" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 434.7641 L 210.9904 435.6096 L 209.4645 434.7641 z " fill="#575f5b" id="path2562" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 434.7641 L 290.3351 435.6096 L 288.8092 434.7641 z " fill="#888d90" id="path2563" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 434.7641 L 301.0161 437.3006 L 301.0161 434.7641 z " fill="#7a8686" id="path2564" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 318.3086 435.3281 L 318.8183 435.8912 L 318.3086 435.3281 z " fill="#74787b" id="path2565" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 513.6187 435.3281 L 514.1283 435.8912 L 513.6187 435.3281 z " fill="#484c4e" id="path2566" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 435.6096 L 149.956 436.4551 L 148.4301 435.6096 z " fill="#575f5b" id="path2567" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 440.6826 L 163.6887 435.6096 L 154.5336 440.6826 z " fill="#4c5450" id="path2568" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 435.6096 L 181.999 436.4551 L 180.4732 435.6096 z " fill="#686c6f" id="path2569" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 190.1365 436.1736 L 190.6461 436.7367 L 190.1365 436.1736 z " fill="#74787b" id="path2570" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 451.6742 L 209.4645 435.6096 C 200.3474 438.207 193.7954 446.4042 191.1541 451.6742 z " fill="#82928c" id="path2571" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.5155 436.1736 L 331.0252 436.7367 L 330.5155 436.1736 z " fill="#394444" id="path2572" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 37.0423 436.4551 L 38.56816 437.3006 L 37.0423 436.4551 z " fill="#7a8686" id="path2573" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 52.30086 436.4551 L 53.82679 437.3006 L 52.30086 436.4551 z " fill="#a0a5a8" id="path2574" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.6279 437.0191 L 131.1375 437.5822 L 130.6279 437.0191 z " fill="#82928c" id="path2575" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 436.4551 L 148.4301 437.3006 L 146.9043 436.4551 z " fill="#63686a" id="path2576" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.9473 436.4551 L 180.4732 437.3006 L 178.9473 436.4551 z " fill="#a0a5a8" id="path2577" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 436.4551 L 287.2833 437.3006 L 285.7574 436.4551 z " fill="#91988e" id="path2578" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 436.4551 L 304.0679 441.5281 L 305.5937 436.4551 z " fill="#a0a5a8" id="path2579" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 436.4551 L 499.3778 437.3006 L 497.852 436.4551 z " fill="#63686a" id="path2580" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 437.3006 L 52.30086 438.1461 L 50.77506 437.3006 z " fill="#7a8686" id="path2581" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 437.3006 L 223.1971 439.8371 L 223.1971 437.3006 z " fill="#575f5b" id="path2582" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 437.3006 L 288.8092 438.1461 L 287.2833 437.3006 z " fill="#83888b" id="path2583" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 437.3006 L 330.0074 439.8371 L 330.0074 437.3006 z " fill="#807b7a" id="path2584" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 515.1446 437.8646 L 515.6542 438.4277 L 515.1446 437.8646 z " fill="#4c5450" id="path2585" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 35.51644 438.1461 L 37.0423 438.9916 L 35.51644 438.1461 z " fill="#777c7e" id="path2586" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 438.1461 L 50.77506 438.9916 L 49.24913 438.1461 z " fill="#a19ea2" id="path2587" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 438.1461 L 145.3783 438.9916 L 143.8525 438.1461 z " fill="#6a7676" id="path2588" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 438.1461 L 249.1368 438.9916 L 247.6109 438.1461 z " fill="#82928c" id="path2589" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 438.1461 L 290.3351 438.9916 L 288.8092 438.1461 z " fill="#73837d" id="path2590" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.7829 438.7101 L 317.2924 439.2732 L 316.7829 438.7101 z " fill="#97a4a4" id="path2591" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 438.1461 L 381.8866 438.9916 L 380.3607 438.1461 z " fill="#6a7676" id="path2592" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 438.9916 L 143.8525 439.8371 L 142.3266 438.9916 z " fill="#91988e" id="path2593" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 438.9916 L 174.3697 439.8371 L 172.8438 438.9916 z " fill="#74787b" id="path2594" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.6105 439.5556 L 189.1202 440.1187 L 188.6105 439.5556 z " fill="#484c4e" id="path2595" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 438.9916 L 291.8609 439.8371 L 290.3351 438.9916 z " fill="#63736d" id="path2596" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 438.9916 L 297.9644 439.8371 L 296.4385 438.9916 z " fill="#686c6f" id="path2597" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 438.9916 L 304.0679 439.8371 L 302.5419 438.9916 z " fill="#82928c" id="path2598" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 438.9916 L 311.6971 442.3736 L 311.6971 438.9916 z " fill="#c7cdcf" id="path2599" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 439.8371 L 47.72332 440.6826 L 46.19746 439.8371 z " fill="#96a3a3" id="path2600" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 129.1019 440.4011 L 129.6116 440.9642 L 129.1019 440.4011 z " fill="#8f9099" id="path2601" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 439.8371 L 172.8438 440.6826 L 171.318 439.8371 z " fill="#888d90" id="path2602" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 237.438 440.4011 L 237.9477 440.9642 L 237.438 440.4011 z " fill="#777c7e" id="path2603" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 439.8371 L 293.3867 440.6826 L 291.8609 439.8371 z " fill="#63686a" id="path2604" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 439.8371 L 316.2746 442.3736 L 316.2746 439.8371 z " fill="#63736d" id="path2605" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 439.8371 L 330.0074 443.2192 L 330.0074 439.8371 z " fill="#c8c5ca" id="path2606" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.1539 439.8371 L 369.6797 440.6826 L 368.1539 439.8371 z " fill="#8a9697" id="path2607" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 377.3091 439.8371 L 378.8349 440.6826 L 377.3091 439.8371 z " fill="#7a8686" id="path2608" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 516.6704 440.4011 L 517.18 440.9642 L 516.6704 440.4011 z " fill="#959a9c" id="path2609" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 440.6826 L 46.19746 441.5281 L 44.6716 440.6826 z " fill="#83888b" id="path2610" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 440.6826 L 142.3266 441.5281 L 140.8008 440.6826 z " fill="#53575a" id="path2611" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 440.6826 L 171.318 441.5281 L 169.7921 440.6826 z " fill="#8a9697" id="path2612" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.6966 441.2466 L 253.2063 441.8097 L 252.6966 441.2466 z " fill="#a4b5ae" id="path2613" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 440.6826 L 294.9126 441.5281 L 293.3867 440.6826 z " fill="#63686a" id="path2614" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 440.6826 L 366.6279 441.5281 L 365.1022 440.6826 z " fill="#9facad" id="path2615" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.2573 440.6826 L 375.7832 441.5281 L 374.2573 440.6826 z " fill="#53575a" id="path2616" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 32.46473 441.5281 L 33.99058 442.3736 L 32.46473 441.5281 z " fill="#8f9099" id="path2617" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 43.14574 441.5281 L 44.6716 442.3736 L 43.14574 441.5281 z " fill="#91988e" id="path2618" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 441.5281 L 140.8008 442.3736 L 139.2749 441.5281 z " fill="#74787b" id="path2619" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 441.5281 L 168.2662 442.3736 L 166.7404 441.5281 z " fill="#595a63" id="path2620" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 441.5281 L 188.1024 442.3736 L 186.5765 441.5281 z " fill="#83888b" id="path2621" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.2312 442.0921 L 225.7408 442.6552 L 225.2312 442.0921 z " fill="#484c4e" id="path2622" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 441.5281 L 301.0161 442.3736 L 299.4902 441.5281 z " fill="#63686a" id="path2623" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 344.2483 442.0921 L 344.7579 442.6552 L 344.2483 442.0921 z " fill="#777c7e" id="path2624" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 372.7314 441.5281 L 374.2573 442.3736 L 372.7314 441.5281 z " fill="#959a9c" id="path2625" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 41.61988 442.3736 L 43.14574 443.2192 L 41.61988 442.3736 z " fill="#7a8686" id="path2626" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 442.3736 L 166.7404 443.2192 L 165.2145 442.3736 z " fill="#82928c" id="path2627" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 312.2052 442.9376 L 312.7148 443.5007 L 312.2052 442.9376 z " fill="#777c7e" id="path2628" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.4906 442.6552 L 359.5068 442.9376 L 358.4906 442.6552 z " fill="#595a63" id="path2629" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 442.3736 L 505.4813 443.2192 L 503.9554 442.3736 z " fill="#82928c" id="path2630" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 30.93886 443.2192 L 32.46473 444.0647 L 30.93886 443.2192 z " fill="#959a9c" id="path2631" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 40.09401 443.2192 L 41.61988 444.0647 L 40.09401 443.2192 z " fill="#6a7676" id="path2632" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 443.2192 L 186.5765 444.0647 L 185.0508 443.2192 z " fill="#989d9f" id="path2633" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 443.2192 L 210.9904 447.4467 L 209.4645 443.2192 z " fill="#4c5450" id="path2634" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 443.2192 L 220.1455 448.2922 L 220.1455 443.2192 z " fill="#8f9099" id="path2635" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 443.2192 L 224.7231 445.7557 L 224.7231 443.2192 z " fill="#8a9697" id="path2636" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.9121 443.7831 L 236.4218 444.3462 L 235.9121 443.7831 z " fill="#b0b5b7" id="path2637" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 444.9102 L 261.3437 443.2192 L 258.292 444.9102 z " fill="#333739" id="path2638" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 300.5079 443.5007 L 301.5242 443.7831 L 300.5079 443.5007 z " fill="#8a9697" id="path2639" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 344.2483 443.7831 L 344.7579 444.3462 L 344.2483 443.7831 z " fill="#b5babd" id="path2640" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 353.9129 443.5007 L 354.9292 443.7831 L 353.9129 443.5007 z " fill="#63736d" id="path2641" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 518.1963 443.7831 L 518.7059 444.3462 L 518.1963 443.7831 z " fill="#a0a5a8" id="path2642" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 444.0647 L 40.09401 444.9102 L 38.56816 444.0647 z " fill="#5c5a5d" id="path2643" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 118.421 444.6286 L 118.9306 445.1917 L 118.421 444.6286 z " fill="#7a8686" id="path2644" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 444.0647 L 137.7491 444.9102 L 136.2231 444.0647 z " fill="#6a7676" id="path2645" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 444.0647 L 162.1628 444.9102 L 160.6369 444.0647 z " fill="#686c6f" id="path2646" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 444.0647 L 207.7693 459.2837 L 211.4405 482.9579 L 215.5678 494.795 L 212.5208 466.0478 L 209.4645 444.0647 z " fill="#fefffc" id="path2647" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 251.1708 444.6286 L 251.6805 445.1917 L 251.1708 444.6286 z " fill="#333739" id="path2648" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 468.5843 C 254.3004 465.2911 256.7219 457.9369 260.6357 452.5197 C 261.5649 451.2337 266.0083 446.3171 261.2766 445.6432 C 258.0327 445.1816 255.8781 449.7329 255.1197 450.8295 C 251.1815 456.5291 246.3063 462.5356 244.5593 468.5843 z " fill="#f8feff" id="path2649" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 444.0647 L 290.3351 444.9102 L 288.8092 444.0647 z " fill="#53575a" id="path2650" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.0338 444.3462 L 303.0501 444.6286 L 302.0338 444.3462 z " fill="#484c4e" id="path2651" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 444.0647 L 328.4816 446.6012 L 328.4816 444.0647 z " fill="#4f5058" id="path2652" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.3355 444.3462 L 350.3517 444.6286 L 349.3355 444.3462 z " fill="#807b7a" id="path2653" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 444.9102 L 136.2231 445.7557 L 134.6973 444.9102 z " fill="#a4a9ac" id="path2654" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 444.9102 L 160.6369 445.7557 L 159.111 444.9102 z " fill="#7a8686" id="path2655" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 444.9102 L 185.0508 445.7557 L 183.5249 444.9102 z " fill="#a0a5a8" id="path2656" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 444.9102 L 313.2229 449.1377 L 314.7488 444.9102 z " fill="#6a7676" id="path2657" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 344.7579 445.1917 L 345.7741 445.4741 L 344.7579 445.1917 z " fill="#596465" id="path2658" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.4906 445.1917 L 359.5068 445.4741 L 358.4906 445.1917 z " fill="#97a4a4" id="path2659" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 507.0071 444.9102 L 508.533 445.7557 L 507.0071 444.9102 z " fill="#596465" id="path2660" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 518.1963 445.4741 L 518.7059 446.0372 L 518.1963 445.4741 z " fill="#434749" id="path2661" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 126.0504 446.3196 L 126.5599 446.8827 L 126.0504 446.3196 z " fill="#b8bec0" id="path2662" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 445.7557 L 159.111 446.6012 L 157.5852 445.7557 z " fill="#91988e" id="path2663" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 234.3863 446.3196 L 234.8961 446.8827 L 234.3863 446.3196 z " fill="#a8aeb0" id="path2664" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 445.7557 L 256.7661 448.2922 L 256.7661 445.7557 z " fill="#8a9697" id="path2665" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 445.7557 L 339.1625 446.6012 L 337.6368 445.7557 z " fill="#63686a" id="path2666" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 355.4389 446.0372 L 356.455 446.3196 L 355.4389 446.0372 z " fill="#bbd5cc" id="path2667" stroke="none" style="fill:#bbd5cc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.9035 447.1651 L 265.4131 447.7282 L 264.9035 447.1651 z " fill="#82928c" id="path2668" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 446.6012 L 328.4816 449.9832 L 328.4816 446.6012 z " fill="#a4a9ac" id="path2669" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.3355 446.8827 L 350.3517 447.1651 L 349.3355 446.8827 z " fill="#7a8686" id="path2670" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 33.99058 447.4467 L 35.51644 448.2922 L 33.99058 447.4467 z " fill="#a19ea2" id="path2671" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 447.4467 L 133.1715 448.2922 L 131.6456 447.4467 z " fill="#6a7676" id="path2672" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 447.4467 L 210.9904 450.8287 L 210.9904 447.4467 z " fill="#aeb3b5" id="path2673" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.8605 448.0106 L 233.37 448.5737 L 232.8605 448.0106 z " fill="#686c6f" id="path2674" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 447.4467 L 301.0161 449.9832 L 294.9126 447.4467 z " fill="#575f5b" id="path2675" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 344.7579 447.7282 L 345.7741 448.0106 L 344.7579 447.7282 z " fill="#8a9697" id="path2676" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 510.0589 447.4467 L 511.5848 448.2922 L 510.0589 447.4467 z " fill="#686c6f" id="path2677" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 519.214 447.4467 L 519.214 449.9832 L 519.214 447.4467 z " fill="#7a8686" id="path2678" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 32.46473 448.2922 L 33.99058 449.1377 L 32.46473 448.2922 z " fill="#807b7a" id="path2679" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.5244 448.8561 L 125.0341 449.4192 L 124.5244 448.8561 z " fill="#a0a5a8" id="path2680" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 448.2922 L 131.6456 449.1377 L 130.1198 448.2922 z " fill="#92a39c" id="path2681" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 448.2922 L 204.8869 453.3652 L 204.8869 448.2922 z " fill="#a19ea2" id="path2682" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 448.2922 L 220.1455 455.9017 L 220.1455 448.2922 z " fill="#4c5450" id="path2683" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 448.2922 L 226.2489 455.0562 L 226.2489 448.2922 z " fill="#a4b5ae" id="path2684" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 248.1191 448.8561 L 248.6287 449.4192 L 248.1191 448.8561 z " fill="#73837d" id="path2685" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.7484 448.8561 L 256.258 449.4192 L 255.7484 448.8561 z " fill="#777c7e" id="path2686" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 269.9907 448.5737 L 271.007 448.8561 L 269.9907 448.5737 z " fill="#807b7a" id="path2687" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 448.2922 L 336.1108 449.1377 L 334.5851 448.2922 z " fill="#82928c" id="path2688" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 342.2142 448.2922 L 342.2142 450.8287 L 342.2142 448.2922 z " fill="#6a7676" id="path2689" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.36128 449.1377 L 27.88714 452.5197 L 26.36128 449.1377 z " fill="#342c31" id="path2690" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 30.93886 449.1377 L 32.46473 449.9832 L 30.93886 449.1377 z " fill="#596465" id="path2691" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.9812 449.7016 L 181.4909 450.2647 L 180.9812 449.7016 z " fill="#3c3837" id="path2692" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 269.8992 450.2766 C 266.1838 451.3512 267.2961 454.4398 271.7012 452.9433 C 274.8873 451.8611 273.7245 449.1698 269.8992 450.2766 z " fill="#f8feff" id="path2693" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 511.5848 449.1377 L 513.1106 449.9832 L 511.5848 449.1377 z " fill="#82928c" id="path2694" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 449.9832 L 119.4387 452.5197 L 119.4387 449.9832 z " fill="#6a7676" id="path2695" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 231.3346 450.5471 L 231.8443 451.1102 L 231.3346 450.5471 z " fill="#857f8a" id="path2696" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 449.9832 L 262.8695 450.8287 L 261.3437 449.9832 z " fill="#96a3a3" id="path2697" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 449.9832 L 268.973 450.8287 L 267.4472 449.9832 z " fill="#8f9099" id="path2698" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 449.9832 L 308.6453 453.3652 L 301.0161 449.9832 z " fill="#575f5b" id="path2699" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 329.4992 450.2647 L 330.5155 450.5471 L 329.4992 450.2647 z " fill="#6a7676" id="path2700" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 25.34353 451.3926 L 25.85317 451.9558 L 25.34353 451.3926 z " fill="#97a4a4" id="path2701" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.9986 451.3926 L 123.5081 451.9558 L 122.9986 451.3926 z " fill="#7a8686" id="path2702" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 450.8287 L 128.5939 451.6742 L 127.0681 450.8287 z " fill="#97a4a4" id="path2703" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 179.4554 451.3926 L 179.9649 451.9558 L 179.4554 451.3926 z " fill="#4c5450" id="path2704" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 450.8287 L 212.5162 460.9748 L 212.5162 450.8287 z " fill="#2b332f" id="path2705" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.5933 451.3926 L 247.1028 451.9558 L 246.5933 451.3926 z " fill="#63736d" id="path2706" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 450.8287 L 267.4472 451.6742 L 265.9213 450.8287 z " fill="#686c6f" id="path2707" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 340.6884 450.8287 L 342.2142 451.6742 L 340.6884 450.8287 z " fill="#83888b" id="path2708" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 520.7398 450.8287 L 520.7398 453.3652 L 520.7398 450.8287 z " fill="#a4a9ac" id="path2709" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 190.1365 452.2382 L 190.6461 452.8013 L 190.1365 452.2382 z " fill="#83888b" id="path2710" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 260.3259 452.2382 L 260.8357 452.8013 L 260.3259 452.2382 z " fill="#42514b" id="path2711" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.1285 451.9558 L 338.1448 452.2382 L 337.1285 451.9558 z " fill="#a0a5a8" id="path2712" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 452.5197 L 127.0681 453.3652 L 125.5421 452.5197 z " fill="#6a7676" id="path2713" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.8089 453.0837 L 230.3184 453.6468 L 229.8089 453.0837 z " fill="#686c6f" id="path2714" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 452.5197 L 267.4472 455.0562 L 264.3955 452.5197 z " fill="#bbc8c9" id="path2715" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 272.0248 452.5197 L 273.5507 453.3652 L 272.0248 452.5197 z " fill="#82928c" id="path2716" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 280.6717 452.8013 L 281.688 453.0837 L 280.6717 452.8013 z " fill="#4f5058" id="path2717" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 332.551 452.8013 L 333.5673 453.0837 L 332.551 452.8013 z " fill="#9d9c94" id="path2718" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.9295 453.9292 L 178.4391 454.4923 L 177.9295 453.9292 z " fill="#33413c" id="path2719" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 453.3652 L 186.5765 455.9017 L 188.1024 453.3652 z " fill="#434749" id="path2720" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 453.3652 L 204.8869 456.7472 L 204.8869 453.3652 z " fill="#777c7e" id="path2721" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 245.0673 453.9292 L 245.577 454.4923 L 245.0673 453.9292 z " fill="#434749" id="path2722" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.6966 453.9292 L 253.2063 454.4923 L 252.6966 453.9292 z " fill="#9facad" id="path2723" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 453.3652 L 279.6539 454.2107 L 278.1281 453.3652 z " fill="#857f8a" id="path2724" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 472.8118 L 285.7574 464.3568 L 240.7599 480.6006 L 232.8177 496.486 L 229.8652 514.2416 L 226.0735 536.2247 L 227.343 543.6093 L 247.6109 553.9803 L 259.8178 545.5253 C 259.6195 547.0911 258.1409 549.9861 260.2207 551.3187 C 263.2083 553.2329 283.1527 554.5214 285.3043 551.8902 C 288.6275 547.8242 288.5299 542.2878 290.039 537.9157 C 293.2114 528.7327 297.206 518.4885 297.8682 509.1685 C 298.3304 502.6531 295.7351 496.2974 296.4934 489.7219 C 297.5326 480.7072 305.3602 471.7245 305.2488 462.692 C 305.1832 457.5099 287.8479 453.1073 279.6539 454.1431 C 266.0296 455.8654 253.0033 465.4864 250.6627 472.8118 z " fill="#fefffc" id="path2725" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 453.3652 L 317.8005 457.5927 L 308.6453 453.3652 z " fill="#3c3837" id="path2726" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.8 454.7747 L 259.3098 455.3378 L 258.8 454.7747 z " fill="#434749" id="path2727" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 454.2107 L 326.9558 456.7472 L 326.9558 454.2107 z " fill="#53575a" id="path2728" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 455.0562 L 200.3094 458.4382 L 197.2576 455.0562 z " fill="#888d90" id="path2729" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 455.0562 L 221.6713 471.9663 C 224.9444 467.9891 224.9444 459.0335 221.6713 455.0562 z " fill="#b5babd" id="path2730" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 455.0562 L 275.0765 455.9017 L 273.5507 455.0562 z " fill="#83888b" id="path2731" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.9986 456.4657 L 123.5081 457.0288 L 122.9986 456.4657 z " fill="#434749" id="path2732" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 455.9017 L 177.4215 469.4298 C 182.1058 466.4021 188.4336 459.9804 186.5765 455.9017 z " fill="#777c7e" id="path2733" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 455.9017 L 206.4127 460.9748 L 206.4127 455.9017 z " fill="#c7cdcf" id="path2734" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 455.9017 L 252.1885 456.7472 L 250.6627 455.9017 z " fill="#7a8686" id="path2735" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 455.9017 L 294.9126 456.7472 L 293.3867 455.9017 z " fill="#989d9f" id="path2736" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 195.7317 456.7472 L 197.2576 457.5927 L 195.7317 456.7472 z " fill="#575f5b" id="path2737" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 456.7472 L 328.4816 459.2837 L 328.4816 456.7472 z " fill="#bbc8c9" id="path2738" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 457.5927 L 137.7491 458.4382 L 136.2231 457.5927 z " fill="#97a4a4" id="path2739" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.3697 457.5927 L 174.3697 460.1293 L 174.3697 457.5927 z " fill="#596465" id="path2740" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 242.0156 458.1567 L 242.5252 458.7198 L 242.0156 458.1567 z " fill="#53575a" id="path2741" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 457.5927 L 267.4472 458.4382 L 265.9213 457.5927 z " fill="#686c6f" id="path2742" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 458.4382 L 136.2231 459.2837 L 134.6973 458.4382 z " fill="#a19ea2" id="path2743" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 458.4382 L 265.9213 459.2837 L 264.3955 458.4382 z " fill="#857f8a" id="path2744" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 458.4382 L 305.5937 459.2837 L 304.0679 458.4382 z " fill="#83888b" id="path2745" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 133.1715 459.2837 L 134.6973 460.1293 L 133.1715 459.2837 z " fill="#777c7e" id="path2746" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 459.2837 L 264.3955 460.1293 L 262.8695 459.2837 z " fill="#686c6f" id="path2747" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 459.2837 L 305.5937 463.5113 L 305.5937 459.2837 z " fill="#333739" id="path2748" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 460.1293 L 133.1715 460.9748 L 131.6456 460.1293 z " fill="#736c77" id="path2749" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 460.1293 L 200.3094 465.2023 L 200.3094 460.1293 z " fill="#74787b" id="path2750" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.4898 460.6932 L 240.9994 461.2563 L 240.4898 460.6932 z " fill="#394444" id="path2751" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 248.1191 460.6932 L 248.6287 461.2563 L 248.1191 460.6932 z " fill="#97a4a4" id="path2752" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 460.1293 L 331.5333 460.9748 L 330.0074 460.1293 z " fill="#53575a" id="path2753" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 460.9748 L 131.6456 461.8203 L 130.1198 460.9748 z " fill="#74787b" id="path2754" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 173.3519 461.5387 L 173.8617 462.1018 L 173.3519 461.5387 z " fill="#4d4b4f" id="path2755" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 460.9748 L 192.6799 461.8203 L 191.1541 460.9748 z " fill="#5d5e66" id="path2756" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 460.9748 L 206.4127 465.2023 L 206.4127 460.9748 z " fill="#736c77" id="path2757" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 460.9748 L 212.5162 466.0478 L 212.5162 460.9748 z " fill="#959a9c" id="path2758" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 460.9748 L 333.0591 461.8203 L 331.5333 460.9748 z " fill="#575f5b" id="path2759" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 461.8203 L 130.1198 462.6658 L 128.5939 461.8203 z " fill="#83888b" id="path2760" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 461.8203 L 261.3437 462.6658 L 259.8178 461.8203 z " fill="#8f9099" id="path2761" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 118.421 463.2297 L 118.9306 463.7928 L 118.421 463.2297 z " fill="#4c5450" id="path2762" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 462.6658 L 128.5939 463.5113 L 127.0681 462.6658 z " fill="#7a8686" id="path2763" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 462.6658 L 191.1541 463.5113 L 189.6282 462.6658 z " fill="#807b7a" id="path2764" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.5933 463.2297 L 247.1028 463.7928 L 246.5933 463.2297 z " fill="#a8aeb0" id="path2765" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 462.6658 L 253.7144 463.5113 L 252.1885 462.6658 z " fill="#63736d" id="path2766" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 463.5113 L 127.0681 464.3568 L 125.5421 463.5113 z " fill="#83888b" id="path2767" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.826 464.0752 L 172.3358 464.6383 L 171.826 464.0752 z " fill="#53575a" id="path2768" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 463.5113 L 252.1885 464.3568 L 250.6627 463.5113 z " fill="#9facad" id="path2769" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 245.0673 464.9207 L 245.577 465.4838 L 245.0673 464.9207 z " fill="#7a8686" id="path2770" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 283.7235 464.6383 L 284.7398 464.9207 L 283.7235 464.6383 z " fill="#63736d" id="path2771" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.8951 465.7662 L 117.4048 466.3293 L 116.8951 465.7662 z " fill="#596465" id="path2772" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.4904 465.2023 L 124.0163 466.0478 L 122.4904 465.2023 z " fill="#777c7e" id="path2773" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 465.2023 L 200.3094 470.2753 L 200.3094 465.2023 z " fill="#c7d4d5" id="path2774" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 465.2023 L 207.9386 471.1208 L 207.9386 465.2023 z " fill="#c9d6d7" id="path2775" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 465.2023 L 250.6627 466.0478 L 249.1368 465.2023 z " fill="#73837d" id="path2776" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 465.2023 L 281.1799 466.0478 L 279.6539 465.2023 z " fill="#7a8686" id="path2777" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.5759 465.7662 L 305.0855 466.3293 L 304.5759 465.7662 z " fill="#596465" id="path2778" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 466.0478 L 122.4904 466.8933 L 120.9646 466.0478 z " fill="#74787b" id="path2779" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 466.0478 L 169.7921 468.5843 L 169.7921 466.0478 z " fill="#575f5b" id="path2780" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 466.0478 L 212.5162 472.8118 L 212.5162 466.0478 z " fill="#cad4cf" id="path2781" stroke="none" style="fill:#cad4cf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 466.0478 L 278.1281 466.8933 L 276.6022 466.0478 z " fill="#73837d" id="path2782" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 466.0478 L 285.7574 466.8933 L 284.2316 466.0478 z " fill="#9d9c94" id="path2783" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 466.8933 L 120.9646 467.7388 L 119.4387 466.8933 z " fill="#7a8686" id="path2784" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.9121 467.4572 L 236.4218 468.0203 L 235.9121 467.4572 z " fill="#807b7a" id="path2785" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 466.8933 L 255.2402 467.7388 L 253.7144 466.8933 z " fill="#7a8686" id="path2786" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.8612 467.7388 L 117.9129 469.4298 L 114.8612 467.7388 z " fill="#575f5b" id="path2787" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 467.7388 L 119.4387 468.5843 L 117.9129 467.7388 z " fill="#6a7676" id="path2788" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.5588 468.3027 L 186.0684 468.8659 L 185.5588 468.3027 z " fill="#bdd2d1" id="path2789" stroke="none" style="fill:#bdd2d1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 467.7388 L 241.5076 471.9663 L 243.0334 467.7388 z " fill="#c2ccc7" id="path2790" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 467.7388 L 281.1799 468.5843 L 279.6539 467.7388 z " fill="#74787b" id="path2791" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 467.7388 L 302.5419 470.2753 L 302.5419 467.7388 z " fill="#b8bec0" id="path2792" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.4475 468.0203 L 327.4638 468.3027 L 326.4475 468.0203 z " fill="#373b3d" id="path2793" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.4649 468.8659 L 269.481 469.1483 L 268.4649 468.8659 z " fill="#50564d" id="path2794" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 468.5843 L 278.1281 469.4298 L 276.6022 468.5843 z " fill="#63736d" id="path2795" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 468.5843 L 325.4298 473.6573 L 325.4298 468.5843 z " fill="#c7cdcf" id="path2796" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 329.4992 468.8659 L 330.5155 469.1483 L 329.4992 468.8659 z " fill="#484c4e" id="path2797" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 469.4298 L 168.2662 471.9663 L 168.2662 469.4298 z " fill="#74787b" id="path2798" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 476.1938 L 178.9473 469.4298 L 172.8438 476.1938 z " fill="#484c4e" id="path2799" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 184.033 469.9938 L 184.5426 470.5569 L 184.033 469.9938 z " fill="#a0a5a8" id="path2800" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.1202 469.7114 L 190.1365 469.9938 L 189.1202 469.7114 z " fill="#434749" id="path2801" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 469.4298 L 246.085 470.2753 L 244.5593 469.4298 z " fill="#6a7676" id="path2802" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 346.7918 469.4298 L 348.3177 470.2753 L 346.7918 469.4298 z " fill="#97a4a4" id="path2803" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 234.3863 470.8393 L 234.8961 471.4024 L 234.3863 470.8393 z " fill="#575f5b" id="path2804" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 470.2753 L 261.3437 471.1208 L 259.8178 470.2753 z " fill="#92a39c" id="path2805" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 470.2753 L 302.5419 472.8118 L 302.5419 470.2753 z " fill="#596465" id="path2806" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 470.2753 L 336.1108 471.1208 L 334.5851 470.2753 z " fill="#83888b" id="path2807" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 471.1208 L 189.6282 471.9663 L 188.1024 471.1208 z " fill="#686c6f" id="path2808" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 471.1208 L 201.8352 476.1938 L 201.8352 471.1208 z " fill="#959a9c" id="path2809" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 471.1208 L 207.9386 474.5028 L 207.9386 471.1208 z " fill="#434749" id="path2810" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 471.1208 L 214.0421 476.1938 L 214.0421 471.1208 z " fill="#484c4e" id="path2811" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 471.1208 L 259.8178 471.9663 L 253.7144 471.1208 z " fill="#434749" id="path2812" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 471.1208 L 268.973 471.9663 L 267.4472 471.1208 z " fill="#989d9f" id="path2813" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.3177 471.1208 L 349.8435 471.9663 L 348.3177 471.1208 z " fill="#53575a" id="path2814" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 182.507 472.5303 L 183.0167 473.0934 L 182.507 472.5303 z " fill="#a9b1b9" id="path2815" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 471.9663 L 221.6713 488.8764 L 224.7231 498.177 L 223.1971 482.1124 L 221.6713 471.9663 z " fill="#333739" id="path2816" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 471.9663 L 252.1885 473.6573 L 249.1368 471.9663 z " fill="#a4b5ae" id="path2817" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 471.9663 L 253.7144 472.8118 L 252.1885 471.9663 z " fill="#73837d" id="path2818" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 471.9663 L 265.9213 472.8118 L 264.3955 471.9663 z " fill="#5d5e66" id="path2819" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 471.9663 L 340.6884 472.8118 L 339.1625 471.9663 z " fill="#8f9099" id="path2820" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 471.9663 L 351.3695 472.8118 L 349.8435 471.9663 z " fill="#7a8686" id="path2821" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 472.8118 L 191.1541 473.6573 L 189.6282 472.8118 z " fill="#959a9c" id="path2822" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.8605 473.3758 L 233.37 473.9389 L 232.8605 473.3758 z " fill="#73837d" id="path2823" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 473.6573 L 192.6799 474.5028 L 191.1541 473.6573 z " fill="#8f9099" id="path2824" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.3098 473.9389 L 260.3259 474.2213 L 259.3098 473.9389 z " fill="#c7bccf" id="path2825" stroke="none" style="fill:#c7bccf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.5242 474.2213 L 302.0338 474.7844 L 301.5242 474.2213 z " fill="#a6b2b3" id="path2826" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 473.6573 L 323.904 476.1938 L 323.904 473.6573 z " fill="#686c6f" id="path2827" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 343.7402 473.6573 L 345.266 474.5028 L 343.7402 473.6573 z " fill="#a19ea2" id="path2828" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 474.5028 L 166.7404 478.7304 L 166.7404 474.5028 z " fill="#63686a" id="path2829" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 474.5028 L 194.2059 475.3483 L 192.6799 474.5028 z " fill="#888d90" id="path2830" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 346.7918 474.5028 L 348.3177 475.3483 L 346.7918 474.5028 z " fill="#8f9099" id="path2831" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 475.3483 L 195.7317 476.1938 L 194.2059 475.3483 z " fill="#a19ea2" id="path2832" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 475.3483 L 256.7661 476.1938 L 255.2402 475.3483 z " fill="#857f8a" id="path2833" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 475.3483 L 301.0161 477.8849 L 301.0161 475.3483 z " fill="#53575a" id="path2834" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 195.7317 476.1938 L 195.7317 478.7304 L 195.7317 476.1938 z " fill="#8a9697" id="path2835" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 476.1938 L 214.0421 482.9579 L 214.0421 476.1938 z " fill="#82928c" id="path2836" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 231.3346 476.7578 L 231.8443 477.3209 L 231.3346 476.7578 z " fill="#4c5450" id="path2837" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 476.1938 L 253.7144 477.0394 L 252.1885 476.1938 z " fill="#5c5a5d" id="path2838" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 476.1938 L 323.904 480.4214 L 323.904 476.1938 z " fill="#aebbbc" id="path2839" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.3695 476.1938 L 352.8953 477.0394 L 351.3695 476.1938 z " fill="#959a9c" id="path2840" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 477.0394 L 209.4645 481.2669 L 209.4645 477.0394 z " fill="#595a63" id="path2841" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 477.0394 L 252.1885 477.8849 L 247.6109 477.0394 z " fill="#b0b5b7" id="path2842" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.9295 478.4488 L 178.4391 479.0119 L 177.9295 478.4488 z " fill="#7a8686" id="path2843" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 478.7304 L 166.7404 484.6489 L 166.7404 478.7304 z " fill="#2c2b2e" id="path2844" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 478.7304 L 198.7834 479.5759 L 197.2576 478.7304 z " fill="#5d5e66" id="path2845" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.8089 479.2943 L 230.3184 479.8574 L 229.8089 479.2943 z " fill="#4c5450" id="path2846" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 479.2943 L 300.5079 479.8574 L 299.9983 479.2943 z " fill="#6a7676" id="path2847" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 479.5759 L 200.3094 480.4214 L 198.7834 479.5759 z " fill="#857f8a" id="path2848" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 479.5759 L 241.5076 480.4214 L 239.9816 479.5759 z " fill="#5c5a5d" id="path2849" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 480.4214 L 177.4215 481.2669 L 175.8955 480.4214 z " fill="#63686a" id="path2850" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 480.4214 L 239.9816 481.2669 L 238.4558 480.4214 z " fill="#595a63" id="path2851" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 480.4214 L 322.3781 484.6489 L 322.3781 480.4214 z " fill="#373b3d" id="path2852" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 228.2828 481.8308 L 228.7926 482.3939 L 228.2828 481.8308 z " fill="#6a7676" id="path2853" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 298.4724 481.8308 L 298.9821 482.3939 L 298.4724 481.8308 z " fill="#a6b2b3" id="path2854" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 202.3432 483.5218 L 202.8529 484.0849 L 202.3432 483.5218 z " fill="#4c5450" id="path2855" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 482.9579 L 214.0421 488.0309 L 214.0421 482.9579 z " fill="#b7c3c4" id="path2856" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 211.4984 484.3673 L 212.0081 484.9304 L 211.4984 484.3673 z " fill="#a0a5a8" id="path2857" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.7571 484.3673 L 227.2666 484.9304 L 226.7571 484.3673 z " fill="#8a9697" id="path2858" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 173.3519 485.2128 L 173.8617 485.776 L 173.3519 485.2128 z " fill="#96a3a3" id="path2859" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 202.3432 485.2128 L 202.8529 485.776 L 202.3432 485.2128 z " fill="#91988e" id="path2860" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.9121 485.2128 L 236.4218 485.776 L 235.9121 485.2128 z " fill="#c3c5c2" id="path2861" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 484.6489 L 322.3781 491.4129 L 322.3781 484.6489 z " fill="#a1b2ab" id="path2862" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 485.4944 L 210.9904 489.7219 L 210.9904 485.4944 z " fill="#373b3d" id="path2863" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 485.4944 L 296.4385 493.9495 L 296.4385 485.4944 z " fill="#595a63" id="path2864" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 486.3399 L 165.2145 490.5674 L 165.2145 486.3399 z " fill="#989d9f" id="path2865" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 234.3863 486.9039 L 234.8961 487.467 L 234.3863 486.9039 z " fill="#82928c" id="path2866" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.826 487.7494 L 172.3358 488.3125 L 171.826 487.7494 z " fill="#a8aeb0" id="path2867" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.8691 487.7494 L 204.3789 488.3125 L 203.8691 487.7494 z " fill="#373b3d" id="path2868" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 487.1854 L 215.5678 497.3315 L 215.5678 487.1854 z " fill="#2c2b2e" id="path2869" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 488.0309 L 224.7231 493.9495 L 224.7231 488.0309 z " fill="#74787b" id="path2870" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 488.8764 L 203.3611 491.4129 L 203.3611 488.8764 z " fill="#888d90" id="path2871" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 170.3002 490.2859 L 170.81 490.849 L 170.3002 490.2859 z " fill="#9d9c94" id="path2872" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 489.7219 L 232.3523 495.6405 L 232.3523 489.7219 z " fill="#b5babd" id="path2873" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 490.5674 L 168.2662 495.6405 L 165.2145 490.5674 z " fill="#686c6f" id="path2874" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 491.4129 L 322.3781 499.868 L 322.3781 491.4129 z " fill="#c7cdcf" id="path2875" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 492.2584 L 169.7921 493.1039 L 168.2662 492.2584 z " fill="#596465" id="path2876" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 493.9495 L 204.8869 497.3315 L 204.8869 493.9495 z " fill="#83888b" id="path2877" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 493.9495 L 212.5162 496.486 L 212.5162 493.9495 z " fill="#7a8686" id="path2878" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 493.9495 L 294.9126 496.486 L 294.9126 493.9495 z " fill="#8a9697" id="path2879" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 494.795 L 214.0421 501.559 L 214.0421 494.795 z " fill="#bdd2d1" id="path2880" stroke="none" style="fill:#bdd2d1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.2323 495.922 L 167.2486 496.2044 L 166.2323 495.922 z " fill="#b8bec0" id="path2881" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 497.3315 L 204.8869 500.7135 L 204.8869 497.3315 z " fill="#c9d6d7" id="path2882" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 497.3315 L 215.5678 501.559 L 215.5678 497.3315 z " fill="#63686a" id="path2883" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.9466 497.8954 L 297.4562 498.4585 L 296.9466 497.8954 z " fill="#8a9697" id="path2884" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 498.177 L 230.8265 506.632 L 230.8265 498.177 z " fill="#bbc8c9" id="path2885" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 499.868 L 311.6971 500.7135 L 307.1196 499.868 z " fill="#dfe4e6" id="path2886" stroke="none" style="fill:#dfe4e6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 501.559 L 314.7488 499.868 L 308.6453 501.559 z " fill="#83888b" id="path2887" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 499.868 L 322.3781 504.941 L 322.3781 499.868 z " fill="#595a63" id="path2888" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 500.7135 L 206.4127 504.0955 L 206.4127 500.7135 z " fill="#63686a" id="path2889" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 504.0955 L 206.4127 510.014 L 206.4127 504.0955 z " fill="#a6b2b3" id="path2890" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 504.0955 L 297.9644 510.8596 L 297.9644 504.0955 z " fill="#394444" id="path2891" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 505.7865 L 322.3781 506.632 L 320.8523 505.7865 z " fill="#6a7676" id="path2892" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 507.4775 L 229.3006 514.2416 L 229.3006 507.4775 z " fill="#7a8686" id="path2893" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 507.4775 L 320.8523 508.323 L 319.3263 507.4775 z " fill="#959a9c" id="path2894" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 509.1685 L 111.8094 511.7051 L 108.7577 509.1685 z " fill="#d3cecd" id="path2895" stroke="none" style="fill:#d3cecd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 510.014 L 207.9386 513.3961 L 207.9386 510.014 z " fill="#3c3837" id="path2896" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 510.014 L 317.8005 510.8596 L 316.2746 510.014 z " fill="#595a63" id="path2897" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 355.4389 511.1411 L 356.455 511.4235 L 355.4389 511.1411 z " fill="#a0a5a8" id="path2898" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 315.2569 512.269 L 315.7666 512.8321 L 315.2569 512.269 z " fill="#97a4a4" id="path2899" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 511.7051 L 357.4729 513.3961 L 354.4212 511.7051 z " fill="#575f5b" id="path2900" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 512.5506 L 105.706 513.3961 L 104.1802 512.5506 z " fill="#53575a" id="path2901" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 109.2659 513.1145 L 109.7754 513.6776 L 109.2659 513.1145 z " fill="#b7c3c4" id="path2902" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.0939 512.5506 L 223.1971 514.2416 L 217.0939 512.5506 z " fill="#b5babd" id="path2903" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.9466 513.1145 L 297.4562 513.6776 L 296.9466 513.1145 z " fill="#83888b" id="path2904" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.8953 512.5506 L 352.8953 516.7781 L 352.8953 512.5506 z " fill="#959a9c" id="path2905" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 513.3961 L 104.1802 514.2416 L 102.6542 513.3961 z " fill="#7a8686" id="path2906" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.9466 514.8055 L 297.4562 515.3686 L 296.9466 514.8055 z " fill="#373b3d" id="path2907" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 313.2229 514.2416 L 313.2229 516.7781 L 313.2229 514.2416 z " fill="#bfcccd" id="path2908" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 357.4729 514.2416 L 357.4729 516.7781 L 357.4729 514.2416 z " fill="#63686a" id="path2909" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 208.4467 515.651 L 208.9563 516.2141 L 208.4467 515.651 z " fill="#a0a5a8" id="path2910" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 228.2828 515.651 L 228.7926 516.2141 L 228.2828 515.651 z " fill="#333739" id="path2911" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 515.9326 L 101.1284 516.7781 L 99.6025 515.9326 z " fill="#959a9c" id="path2912" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 228.2828 517.342 L 228.7926 517.9051 L 228.2828 517.342 z " fill="#a6b2b3" id="path2913" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 295.4207 517.342 L 295.9303 517.9051 L 295.4207 517.342 z " fill="#82928c" id="path2914" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 516.7781 L 311.6971 520.1601 L 311.6971 516.7781 z " fill="#bfcccd" id="path2915" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.8953 516.7781 L 352.8953 519.3146 L 352.8953 516.7781 z " fill="#484c4e" id="path2916" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 517.6236 L 99.6025 518.4691 L 98.07669 517.6236 z " fill="#6a7676" id="path2917" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 106.2142 518.1875 L 106.7237 518.7506 L 106.2142 518.1875 z " fill="#63686a" id="path2918" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.9726 518.1875 L 210.4821 518.7506 L 209.9726 518.1875 z " fill="#83888b" id="path2919" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 518.4691 L 294.9126 521.0056 L 294.9126 518.4691 z " fill="#434749" id="path2920" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.7571 519.8786 L 227.2666 520.4417 L 226.7571 519.8786 z " fill="#989d9f" id="path2921" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 359.5068 519.8786 L 360.0164 520.4417 L 359.5068 519.8786 z " fill="#5d5e66" id="path2922" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 520.1601 L 96.55089 521.0056 L 95.02496 520.1601 z " fill="#73837d" id="path2923" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 520.1601 L 310.1711 522.6966 L 310.1711 520.1601 z " fill="#a8aeb0" id="path2924" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 521.0056 L 98.07669 523.5421 L 99.6025 521.0056 z " fill="#575f5b" id="path2925" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 521.0056 L 104.1802 523.5421 L 104.1802 521.0056 z " fill="#5c5a5d" id="path2926" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.8949 521.5696 L 294.4046 522.1327 L 293.8949 521.5696 z " fill="#a8aeb0" id="path2927" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 521.8511 L 210.9904 524.3876 L 210.9904 521.8511 z " fill="#596465" id="path2928" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.2312 522.4151 L 225.7408 522.9782 L 225.2312 522.4151 z " fill="#6a7676" id="path2929" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.8775 522.4151 L 352.3872 522.9782 L 351.8775 522.4151 z " fill="#575f5b" id="path2930" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 521.8511 L 360.5247 526.9241 L 360.5247 521.8511 z " fill="#959a9c" id="path2931" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.8949 523.2606 L 294.4046 523.8237 L 293.8949 523.2606 z " fill="#74787b" id="path2932" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 523.5421 L 93.49916 524.3876 L 91.97323 523.5421 z " fill="#7a8686" id="path2933" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 523.5421 L 84.34397 549.7528 L 95.91614 531.1517 L 98.07669 523.5421 z " fill="#a0a5a8" id="path2934" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 524.3876 L 293.3867 526.9241 L 293.3867 524.3876 z " fill="#373b3d" id="path2935" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 525.2331 L 91.97323 526.0786 L 90.44743 525.2331 z " fill="#989d9f" id="path2936" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 103.1624 525.7971 L 103.6721 526.3602 L 103.1624 525.7971 z " fill="#8f9099" id="path2937" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 525.2331 L 223.1971 532.8427 L 223.1971 525.2331 z " fill="#1d2022" id="path2938" stroke="none" style="fill:#1d2022;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 526.0786 L 212.5162 540.4522 L 212.5162 526.0786 z " fill="#484c4e" id="path2939" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 89.42971 527.4881 L 89.93923 528.0512 L 89.42971 527.4881 z " fill="#45453d" id="path2940" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 355.947 526.9241 C 354.1831 530.92 352.8464 536.0793 357.4729 539.6067 L 355.947 526.9241 z " fill="#33413c" id="path2941" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 526.9241 L 360.5247 529.4607 L 360.5247 526.9241 z " fill="#394444" id="path2942" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 97.05897 528.3336 L 97.56863 528.8967 L 97.05897 528.3336 z " fill="#333739" id="path2943" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 527.7697 L 307.1196 531.9972 L 307.1196 527.7697 z " fill="#807b7a" id="path2944" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.6365 529.1791 L 102.1462 529.7422 L 101.6365 529.1791 z " fill="#4c5450" id="path2945" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 528.6152 L 291.8609 531.1517 L 291.8609 528.6152 z " fill="#8a9697" id="path2946" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.8257 530.0246 L 349.3355 530.5877 L 348.8257 530.0246 z " fill="#a6b2b3" id="path2947" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.1284 530.3062 L 101.1284 532.8427 L 101.1284 530.3062 z " fill="#8a9697" id="path2948" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 530.3062 L 362.0505 532.8427 L 362.0505 530.3062 z " fill="#96a3a3" id="path2949" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 85.86977 531.1517 L 87.3957 531.9972 L 85.86977 531.1517 z " fill="#8a9697" id="path2950" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 531.1517 L 291.8609 533.6882 L 291.8609 531.1517 z " fill="#434749" id="path2951" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.8257 531.7156 L 349.3355 532.2787 L 348.8257 531.7156 z " fill="#6a7676" id="path2952" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 532.8427 L 224.7231 544.6798 L 224.7231 532.8427 z " fill="#a8aeb0" id="path2953" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 532.8427 L 362.0505 541.2977 L 362.0505 532.8427 z " fill="#6a7676" id="path2954" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 534.5337 L 290.3351 537.0702 L 290.3351 534.5337 z " fill="#97a4a4" id="path2955" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 535.3792 L 99.6025 537.9157 L 99.6025 535.3792 z " fill="#373b3d" id="path2956" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 535.3792 L 305.5937 539.6067 L 305.5937 535.3792 z " fill="#63686a" id="path2957" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 346.7918 535.3792 L 346.7918 544.6798 L 346.7918 535.3792 z " fill="#a8aeb0" id="path2958" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 21.78371 539.6067 L 24.83542 537.9157 L 21.78371 539.6067 z " fill="#4c5450" id="path2959" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 537.9157 L 99.6025 540.4522 L 99.6025 537.9157 z " fill="#888d90" id="path2960" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 537.9157 L 352.8953 552.2893 C 357.389 549.2243 358.5684 541.1895 354.4212 537.9157 z " fill="#6a7676" id="path2961" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 538.7612 L 26.36128 539.6067 L 24.83542 538.7612 z " fill="#92a39c" id="path2962" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 538.7612 L 288.8092 541.2977 L 288.8092 538.7612 z " fill="#bfcccd" id="path2963" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 80.27451 540.1707 L 80.78417 540.7338 L 80.27451 540.1707 z " fill="#434749" id="path2964" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 539.6067 L 308.6453 540.4522 L 307.1196 539.6067 z " fill="#596465" id="path2965" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 540.4522 L 212.5162 554.8258 L 212.5162 540.4522 z " fill="#a9b1b9" id="path2966" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.189 540.7338 L 312.2052 541.0162 L 311.189 540.7338 z " fill="#82928c" id="path2967" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 89.42971 541.8617 L 89.93923 542.4248 L 89.42971 541.8617 z " fill="#333739" id="path2968" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 289.3172 541.8617 L 289.8269 542.4248 L 289.3172 541.8617 z " fill="#575f5b" id="path2969" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 541.2977 L 362.0505 547.2163 L 362.0505 541.2977 z " fill="#aeb3b5" id="path2970" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.74858 542.7072 L 79.25824 543.2703 L 78.74858 542.7072 z " fill="#63686a" id="path2971" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 542.1432 L 98.07669 544.6798 L 98.07669 542.1432 z " fill="#596465" id="path2972" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.3441 542.4248 L 321.3603 542.7072 L 320.3441 542.4248 z " fill="#7a8686" id="path2973" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 542.9887 L 26.36128 543.8342 L 24.83542 542.9887 z " fill="#686c6f" id="path2974" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.0855 543.2703 L 306.1017 543.5527 L 305.0855 543.2703 z " fill="#4d4b4f" id="path2975" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 32.46473 543.8342 L 33.99058 544.6798 L 32.46473 543.8342 z " fill="#63736d" id="path2976" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.7915 544.3982 L 288.3011 544.9613 L 287.7915 544.3982 z " fill="#c3c5c2" id="path2977" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 543.8342 L 304.0679 546.3708 L 304.0679 543.8342 z " fill="#a6b2b3" id="path2978" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 585.264 C 315.6689 582.1754 320.8339 576.6145 320.7026 570.8904 C 320.6645 569.207 315.6201 563.7738 317.8433 562.6061 C 319.6819 561.6397 322.0486 564.5973 322.3781 564.9719 L 337.6368 558.2078 C 328.0315 555.733 325.8738 550.7555 317.7379 547.5257 C 315.2386 546.5339 311.3599 544.7305 308.0336 544.941 C 300.8894 545.395 302.4398 555.0169 302.6121 557.5619 C 302.8379 560.8974 297.3906 563.8406 297.3249 567.3266 C 297.2762 569.9899 302.7526 569.8716 304.0403 572.0809 C 306.3429 576.0319 305.1267 581.0441 307.1196 585.264 z " fill="#fefffc" id="path2979" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 543.8342 L 330.0074 544.6798 L 328.4816 543.8342 z " fill="#596465" id="path2980" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.36128 544.6798 L 27.88714 545.5253 L 26.36128 544.6798 z " fill="#686c6f" id="path2981" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 33.99058 544.6798 L 35.51644 545.5253 L 33.99058 544.6798 z " fill="#73837d" id="path2982" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 77.22278 545.2437 L 77.73244 545.8068 L 77.22278 545.2437 z " fill="#a8aeb0" id="path2983" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 544.6798 L 227.7748 545.5253 L 226.2489 544.6798 z " fill="#63686a" id="path2984" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 544.6798 L 311.6971 545.5253 L 310.1711 544.6798 z " fill="#7a8686" id="path2985" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 544.6798 L 334.5851 545.5253 L 333.0591 544.6798 z " fill="#83888b" id="path2986" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 35.51644 545.5253 L 37.0423 546.3708 L 35.51644 545.5253 z " fill="#9facad" id="path2987" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 545.5253 L 230.8265 546.3708 L 229.3006 545.5253 z " fill="#8a9697" id="path2988" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 545.5253 L 253.7144 550.5983 C 258.3012 549.8466 260.2192 548.0432 258.292 545.5253 z " fill="#231c21" id="path2989" stroke="none" style="fill:#231c21;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.7915 546.0892 L 288.3011 546.6523 L 287.7915 546.0892 z " fill="#6a7676" id="path2990" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 545.5253 L 328.4816 548.0618 L 323.904 545.5253 z " fill="#373b3d" id="path2991" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 545.5253 L 336.1108 548.0618 L 336.1108 545.5253 z " fill="#63686a" id="path2992" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 27.88714 546.3708 L 29.41301 547.2163 L 27.88714 546.3708 z " fill="#777c7e" id="path2993" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 76.71471 546.3708 L 76.71471 548.9073 L 76.71471 546.3708 z " fill="#4c5450" id="path2994" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 97.05897 546.9347 L 97.56863 547.4978 L 97.05897 546.9347 z " fill="#a8aeb0" id="path2995" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 546.3708 L 233.8783 547.2163 L 232.3523 546.3708 z " fill="#74787b" id="path2996" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 546.3708 L 316.2746 547.2163 L 314.7488 546.3708 z " fill="#83888b" id="path2997" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 547.2163 L 236.93 548.0618 L 235.4041 547.2163 z " fill="#7a8686" id="path2998" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 547.2163 L 302.5419 549.7528 L 302.5419 547.2163 z " fill="#686c6f" id="path2999" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 547.2163 L 343.7402 552.2893 L 345.266 547.2163 z " fill="#b8bec0" id="path3000" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 547.2163 L 360.5247 549.7528 L 360.5247 547.2163 z " fill="#63686a" id="path3001" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 29.41301 548.0618 L 30.93886 548.9073 L 29.41301 548.0618 z " fill="#686c6f" id="path3002" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 548.0618 L 250.6627 551.4438 L 253.7144 548.0618 L 250.6627 548.0618 z " fill="#2b332f" id="path3003" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 40.09401 548.9073 L 41.61988 549.7528 L 40.09401 548.9073 z " fill="#74787b" id="path3004" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 75.69685 549.4712 L 76.20651 550.0343 L 75.69685 549.4712 z " fill="#a0a5a8" id="path3005" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.81804 548.9073 L 85.86977 551.4438 L 82.81804 548.9073 z " fill="#6a7676" id="path3006" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.53303 549.4712 L 96.0427 550.0343 L 95.53303 549.4712 z " fill="#73837d" id="path3007" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 548.9073 L 239.9816 553.9803 L 229.3006 548.9073 z " fill="#53575a" id="path3008" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 254.7322 549.1888 L 255.7484 549.4712 L 254.7322 549.1888 z " fill="#7a8686" id="path3009" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 548.9073 L 285.7574 551.4438 L 285.7574 548.9073 z " fill="#aeb3b5" id="path3010" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 548.9073 L 340.6884 549.7528 L 339.1625 548.9073 z " fill="#83888b" id="path3011" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 30.93886 549.7528 L 32.46473 550.5983 L 30.93886 549.7528 z " fill="#6a7676" id="path3012" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 41.61988 549.7528 L 43.14574 550.5983 L 41.61988 549.7528 z " fill="#9facad" id="path3013" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 549.7528 L 243.0334 550.5983 L 241.5076 549.7528 z " fill="#63686a" id="path3014" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 549.7528 L 325.4298 550.5983 L 323.904 549.7528 z " fill="#82928c" id="path3015" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 340.6884 549.7528 L 342.2142 550.5983 L 340.6884 549.7528 z " fill="#53575a" id="path3016" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 369.6797 549.7528 L 372.7314 552.2893 L 369.6797 549.7528 z " fill="#c9d6d7" id="path3017" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 75.69685 551.1622 L 76.20651 551.7253 L 75.69685 551.1622 z " fill="#484c4e" id="path3018" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.81804 550.5983 L 79.76644 560.7443 L 82.81804 550.5983 z " fill="#92a39c" id="path3019" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 550.5983 L 244.5593 551.4438 L 243.0334 550.5983 z " fill="#575f5b" id="path3020" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 257.2743 551.1622 L 257.7839 551.7253 L 257.2743 551.1622 z " fill="#8a9697" id="path3021" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 550.5983 L 325.4298 553.1348 L 325.4298 550.5983 z " fill="#b8bec0" id="path3022" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 359.5068 551.1622 L 360.0164 551.7253 L 359.5068 551.1622 z " fill="#807b7a" id="path3023" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.1539 550.5983 L 369.6797 551.4438 L 368.1539 550.5983 z " fill="#82928c" id="path3024" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 32.46473 551.4438 L 33.99058 552.2893 L 32.46473 551.4438 z " fill="#63686a" id="path3025" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 551.4438 L 246.085 552.2893 L 244.5593 551.4438 z " fill="#6a7676" id="path3026" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 551.4438 L 301.0161 553.9803 L 301.0161 551.4438 z " fill="#63686a" id="path3027" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 346.7918 551.4438 L 348.3177 553.9803 L 346.7918 551.4438 z " fill="#595a63" id="path3028" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 551.4438 L 368.1539 552.2893 L 366.6279 551.4438 z " fill="#6a7676" id="path3029" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 552.2893 L 46.19746 553.1348 L 44.6716 552.2893 z " fill="#53575a" id="path3030" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 94.00724 552.8532 L 94.5169 553.4164 L 94.00724 552.8532 z " fill="#a6b2b3" id="path3031" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 552.2893 L 227.7748 564.9719 C 233.6235 563.5083 233.8309 567.8035 233.8783 570.0449 C 237.9126 567.9058 244.0482 562.7457 241.0619 559.5243 C 238.4345 556.6901 230.7242 554.2627 226.2489 552.2893 z " fill="#fefffc" id="path3032" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 552.2893 L 247.6109 553.1348 L 246.085 552.2893 z " fill="#83888b" id="path3033" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.645 552.8532 L 250.1545 553.4164 L 249.645 552.8532 z " fill="#4c5450" id="path3034" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 552.2893 L 268.973 553.1348 L 256.7661 552.2893 z " fill="#434749" id="path3035" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 269.9907 552.5708 L 271.007 552.8532 L 269.9907 552.5708 z " fill="#a4b5ae" id="path3036" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 552.2893 L 381.8866 553.1348 L 371.2056 552.2893 z " fill="#222628" id="path3037" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 553.9803 L 384.9384 552.2893 L 380.3607 553.9803 z " fill="#5c5a5d" id="path3038" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.4464 552.8532 L 385.9561 553.4164 L 385.4464 552.8532 z " fill="#9d9c94" id="path3039" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 553.1348 L 47.72332 553.9803 L 46.19746 553.1348 z " fill="#97a4a4" id="path3040" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 74.17105 553.6988 L 74.68071 554.2619 L 74.17105 553.6988 z " fill="#8a9697" id="path3041" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.0942 553.4164 L 277.1105 553.6988 L 276.0942 553.4164 z " fill="#82928c" id="path3042" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 553.1348 L 282.7057 553.9803 L 278.1281 553.1348 z " fill="#bbcdc6" id="path3043" stroke="none" style="fill:#bbcdc6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.9379 553.6988 L 326.4475 554.2619 L 325.9379 553.6988 z " fill="#595a63" id="path3044" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 357.4729 553.1348 L 362.0505 554.8258 L 357.4729 553.1348 z " fill="#63686a" id="path3045" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 553.9803 L 214.0421 564.9719 L 214.0421 553.9803 z " fill="#333739" id="path3046" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 553.9803 L 230.8265 554.8258 L 229.3006 553.9803 z " fill="#97a4a4" id="path3047" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 372.7314 553.9803 L 377.3091 554.8258 L 372.7314 553.9803 z " fill="#716667" id="path3048" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 80.27451 555.3898 L 80.78417 555.9529 L 80.27451 555.3898 z " fill="#575f5b" id="path3049" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 92.4813 555.3898 L 92.99096 555.9529 L 92.4813 555.3898 z " fill="#a9b1b9" id="path3050" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 554.8258 L 226.2489 558.2078 L 226.2489 554.8258 z " fill="#c7d4d5" id="path3051" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 554.8258 L 232.3523 555.6713 L 230.8265 554.8258 z " fill="#a0a5a8" id="path3052" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 369.1716 555.1074 L 370.1879 555.3898 L 369.1716 555.1074 z " fill="#aeb3b5" id="path3053" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 555.6713 L 267.4472 556.5168 L 259.8178 555.6713 z " fill="#74787b" id="path3054" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 556.5168 L 281.1799 557.3623 L 261.3437 556.5168 z " fill="#484c4e" id="path3055" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.0682 555.9529 L 364.0845 556.2353 L 363.0682 555.9529 z " fill="#857f8a" id="path3056" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 556.5168 L 52.30086 557.3623 L 50.77506 556.5168 z " fill="#73837d" id="path3057" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 556.5168 L 236.93 557.3623 L 235.4041 556.5168 z " fill="#888d90" id="path3058" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 556.5168 L 302.5419 557.3623 L 301.0161 556.5168 z " fill="#82928c" id="path3059" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 556.5168 L 333.0591 557.3623 L 331.5333 556.5168 z " fill="#989d9f" id="path3060" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 556.5168 L 362.0505 557.3623 L 360.5247 556.5168 z " fill="#91988e" id="path3061" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.13704 557.3623 L 72.13704 562.4354 L 72.13704 557.3623 z " fill="#807b7a" id="path3062" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.80031 557.9263 L 82.30997 558.4894 L 81.80031 557.9263 z " fill="#33413c" id="path3063" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.9555 557.9263 L 91.46517 558.4894 L 90.9555 557.9263 z " fill="#b0b5b7" id="path3064" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 559.0533 L 305.5937 557.3623 L 301.0161 559.0533 z " fill="#4c5450" id="path3065" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 335.6027 557.6439 L 336.619 557.9263 L 335.6027 557.6439 z " fill="#413b45" id="path3066" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 558.2078 L 40.09401 559.0533 L 38.56816 558.2078 z " fill="#777c7e" id="path3067" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 558.2078 L 226.2489 563.2809 L 226.2489 558.2078 z " fill="#63686a" id="path3068" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 251.6805 558.4894 L 252.6966 558.7718 L 251.6805 558.4894 z " fill="#4f5058" id="path3069" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.82679 559.0533 L 55.35259 559.8988 L 53.82679 559.0533 z " fill="#596465" id="path3070" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.5415 559.6173 L 244.0512 560.1804 L 243.5415 559.6173 z " fill="#82928c" id="path3071" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.645 559.6173 L 250.1545 560.1804 L 249.645 559.6173 z " fill="#b5babd" id="path3072" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 575.1179 L 229.4365 583.5755 L 228.6537 595.4101 L 223.1561 620.7752 L 222.7654 635.3137 L 239.9816 633.9913 L 257.1979 632.2639 L 259.8163 625.8474 L 258.292 610.6291 C 267.1206 613.3753 268.9074 602.952 270.1784 599.6376 C 272.7571 592.9158 274.2021 585.992 277.173 579.3455 C 278.6409 576.0615 281.804 571.1195 280.0004 567.7527 C 278.2854 564.5508 269.6765 561.7201 264.3955 560.6294 C 252.718 558.218 248 561.0327 242.7053 566.6629 C 240.1648 569.3643 234.2338 574.5971 243.0334 575.1179 z " fill="#fefffc" id="path3073" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.258 559.3349 L 257.2743 559.6173 L 256.258 559.3349 z " fill="#74787b" id="path3074" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 560.7443 L 302.5419 559.0533 L 299.4902 560.7443 z " fill="#a9b1b9" id="path3075" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.0768 559.3349 L 335.0931 559.6173 L 334.0768 559.3349 z " fill="#73837d" id="path3076" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 559.8988 L 267.4472 560.7443 L 262.8695 559.8988 z " fill="#736c77" id="path3077" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.0252 560.1804 L 332.0413 560.4628 L 331.0252 560.1804 z " fill="#33413c" id="path3078" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 347.8097 560.1804 L 348.8257 560.4628 L 347.8097 560.1804 z " fill="#716667" id="path3079" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 559.8988 L 372.7314 560.7443 L 371.2056 559.8988 z " fill="#73837d" id="path3080" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 41.61988 560.7443 L 43.14574 561.5899 L 41.61988 560.7443 z " fill="#959a9c" id="path3081" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 560.7443 L 249.1368 561.5899 L 247.6109 560.7443 z " fill="#5d5e66" id="path3082" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 560.7443 L 268.973 561.5899 L 267.4472 560.7443 z " fill="#5c5a5d" id="path3083" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 562.4354 L 284.2316 563.2809 C 283.8274 560.4772 276.6771 559.6384 275.0765 562.4354 z " fill="#7a8686" id="path3084" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 560.7443 L 316.2746 564.9719 L 316.2746 560.7443 z " fill="#bfcccd" id="path3085" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 342.2142 560.7443 L 346.7918 561.5899 L 342.2142 560.7443 z " fill="#adaeb8" id="path3086" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 642.7583 C 316.9293 642.7583 303.3186 642.1631 290.3366 643.1244 C 286.7905 643.3874 280.0447 643.2242 278.8209 645.6347 C 276.2162 650.7653 290.1702 653.5588 296.4385 655.0756 C 321.6976 661.187 342.5713 669.1668 362.0505 679.9606 C 335.6867 676.609 312.4692 665.7544 285.8215 663.5113 C 278.6684 662.9093 278.1724 665.7434 278.1343 668.9724 C 278.0717 674.3667 280.1561 677.4612 286.3983 681.6516 C 292.5231 685.7641 299.0202 689.7794 304.0679 694.3341 L 276.6022 684.1881 L 277.6964 700.9325 L 290.2938 708.7103 L 305.5556 719.6993 L 316.4792 729.798 L 321.7799 732.4943 L 325.8037 726.4633 L 326.9558 706.1712 C 336.0223 712.198 339.2861 720.511 340.9463 728.1543 C 341.4529 730.4837 341.2255 737.4236 345.4032 738.7308 C 349.1904 739.9145 359.8883 736.0835 363.5763 735.2507 C 376.4851 732.3362 389.5404 729.3626 403.2486 727.7713 C 405.5649 727.5025 417.7245 725.9011 418.7103 727.746 C 419.705 729.6078 409.9152 732.0251 407.8263 732.7201 L 398.671 735.7478 C 393.0895 737.5547 387.3675 739.2009 381.8881 741.1066 C 373.8438 743.9036 364.974 746.8172 358.9988 750.983 C 389.6487 751.0176 416.9402 758.36 444.4469 764.8831 C 451.1286 766.4675 457.9263 768.2355 464.1975 770.2749 C 465.7861 770.7915 469.6892 771.9608 469.0636 773.3051 C 468.4715 774.5759 464.335 774.2225 462.7283 774.1422 C 456.6232 773.8353 450.5748 773.8116 444.4469 773.8116 C 418.4234 773.8116 392.2748 773.0786 366.6279 770.4296 L 385.2374 779.9593 L 400.1969 778.051 L 416.9814 776.6145 L 464.2831 779.0233 L 483.367 780.6458 L 491.631 771.2878 L 490.6117 767.1989 L 473.4382 772.1206 C 477.8922 767.6073 482.3432 762.8505 487.5432 758.5925 C 493.7734 753.4907 499.9821 749.8804 499.2009 743.3734 C 499.0102 741.7746 498.9247 732.7497 495.232 732.7497 C 491.1626 732.7497 486.7285 736.0268 484.1346 737.4354 C 475.3059 742.2311 467.8063 748.476 458.1796 752.674 C 462.307 740.7845 471.18 729.0184 482.9886 718.8538 C 489.5544 713.2033 499.1948 708.1488 503.9554 701.9437 L 441.3952 722.2358 L 472.6142 702.79 L 487.1709 693.4886 C 446.1405 698.1034 405.4917 708.7779 366.6279 717.1628 C 371.6191 713.1441 378.6183 710.3015 384.9384 706.9694 C 409.755 693.886 441.4454 684.0257 473.4382 677.424 L 450.5503 673.8788 L 397.1453 670.66 C 409.9777 663.1823 431.4222 666.5449 447.0332 662.4941 C 458.4009 659.5441 465.7524 651.1931 473.7801 646.1404 C 483.3776 640.0992 496.9303 635.6163 505.4813 629.2303 L 416.9814 622.101 L 395.6637 621.3789 L 389.9721 619.5382 L 394.2217 618.1093 L 410.878 616.5477 L 482.5934 612.3202 L 459.7054 603.1946 L 407.8263 585.1549 L 384.9384 579.3455 L 392.5677 579.3455 C 385.1062 574.9218 373.8484 572.3996 365.1067 568.7783 C 360.1279 566.7145 355.442 563.1912 349.6682 561.8824 C 344.9746 560.8188 335.1282 561.9306 331.7042 564.0782 C 328.3625 566.1742 327.717 569.984 326.2812 572.5814 C 323.5195 577.575 318.3544 581.4043 314.6146 586.0588 C 313.4594 587.4978 314.3201 589.4839 312.7667 590.7547 C 310.3192 592.7577 304.765 593.3166 301.898 595.4954 C 291.8838 603.1058 288.8749 611.1204 284.4956 619.9297 C 282.6889 623.5662 278.2609 627.6213 280.2995 631.5182 C 281.9689 634.7083 290.0986 634.896 294.9126 635.5631 C 305.8836 637.0833 321.7983 638.1478 330.0074 642.7583 z " fill="#fefffc" id="path3087" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 560.7443 L 351.3695 561.5899 L 349.8435 560.7443 z " fill="#736c77" id="path3088" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.87852 561.5899 L 58.40432 562.4354 L 56.87852 561.5899 z " fill="#73837d" id="path3089" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.90377 562.1538 L 88.41343 562.7169 L 87.90377 562.1538 z " fill="#aeb3b5" id="path3090" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 561.5899 L 243.0334 562.4354 L 241.5076 561.5899 z " fill="#8a9697" id="path3091" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 561.5899 L 270.4989 562.4354 L 268.973 561.5899 z " fill="#686c6f" id="path3092" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 561.5899 L 282.7057 564.1264 L 276.6022 561.5899 z " fill="#f9fbf8" id="path3093" stroke="none" style="fill:#f9fbf8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 561.5899 L 328.4816 562.4354 L 326.9558 561.5899 z " fill="#93aca4" id="path3094" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 561.5899 L 340.6884 562.4354 L 336.1108 561.5899 z " fill="#857f8a" id="path3095" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.3695 561.5899 L 352.8953 562.4354 L 351.3695 561.5899 z " fill="#5d5e66" id="path3096" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 561.5899 L 374.2573 566.6629 L 358.9988 561.5899 z " fill="#42514b" id="path3097" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.13704 562.4354 L 72.13704 572.5814 L 72.13704 562.4354 z " fill="#373b3d" id="path3098" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 562.4354 L 247.6109 563.2809 L 246.085 562.4354 z " fill="#686c6f" id="path3099" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 270.4989 562.4354 L 272.0248 563.2809 L 270.4989 562.4354 z " fill="#a19ea2" id="path3100" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 298.4724 562.9993 L 298.9821 563.5624 L 298.4724 562.9993 z " fill="#c8c5ca" id="path3101" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 332.551 562.7169 L 333.5673 562.9993 L 332.551 562.7169 z " fill="#83888b" id="path3102" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 378.8349 562.4354 L 380.3607 563.2809 L 378.8349 562.4354 z " fill="#596465" id="path3103" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 563.2809 L 46.19746 564.1264 L 44.6716 563.2809 z " fill="#888d90" id="path3104" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 563.2809 L 227.7748 570.0449 L 229.3006 563.2809 z " fill="#c7d4d5" id="path3105" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 563.2809 L 232.3523 564.1264 L 230.8265 563.2809 z " fill="#82928c" id="path3106" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.4898 563.8448 L 240.9994 564.4079 L 240.4898 563.8448 z " fill="#42514b" id="path3107" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 563.2809 L 275.0765 564.1264 L 273.5507 563.2809 z " fill="#63686a" id="path3108" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 563.2809 L 322.3781 564.1264 L 320.8523 563.2809 z " fill="#8a9697" id="path3109" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 564.1264 L 47.72332 564.9719 L 46.19746 564.1264 z " fill="#5d5e66" id="path3110" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.93025 564.1264 L 61.45605 564.9719 L 59.93025 564.1264 z " fill="#8a9697" id="path3111" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 86.37798 564.6903 L 86.8875 565.2534 L 86.37798 564.6903 z " fill="#aebbbc" id="path3112" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 564.1264 L 276.6022 564.9719 L 275.0765 564.1264 z " fill="#7a8686" id="path3113" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 565.8174 L 325.4298 564.1264 L 322.3781 565.8174 z " fill="#92a39c" id="path3114" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 564.1264 L 328.4816 566.6629 L 328.4816 564.1264 z " fill="#53575a" id="path3115" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 564.1264 L 355.947 564.9719 L 354.4212 564.1264 z " fill="#989d9f" id="path3116" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 564.1264 L 384.9384 564.9719 L 383.4125 564.1264 z " fill="#7a8686" id="path3117" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 564.9719 L 214.0421 578.5 L 214.0421 564.9719 z " fill="#777c7e" id="path3118" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 564.9719 L 232.3523 568.3539 L 232.3523 564.9719 z " fill="#394444" id="path3119" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 564.9719 L 278.1281 565.8174 L 276.6022 564.9719 z " fill="#6a7676" id="path3120" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.9466 565.5358 L 297.4562 566.0989 L 296.9466 565.5358 z " fill="#a0a5a8" id="path3121" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 355.947 564.9719 L 357.4729 565.8174 L 355.947 564.9719 z " fill="#959a9c" id="path3122" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -45.35413 565.8174 L -39.25069 566.6629 L -45.35413 565.8174 z " fill="#8a9697" id="path3123" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -39.25069 565.8174 L -25.51796 566.6629 L -39.25069 565.8174 z " fill="#575f5b" id="path3124" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -25.51796 565.8174 L -14.83693 566.6629 L -25.51796 565.8174 z " fill="#8a9697" id="path3125" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 61.45605 565.8174 L 62.98185 566.6629 L 61.45605 565.8174 z " fill="#575f5b" id="path3126" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 565.8174 L 279.6539 566.6629 L 278.1281 565.8174 z " fill="#7a8686" id="path3127" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -8.733496 566.6629 L -4.155919 567.5084 L -8.733496 566.6629 z " fill="#736c77" id="path3128" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 62.98185 566.6629 L 64.50778 567.5084 L 62.98185 566.6629 z " fill="#989d9f" id="path3129" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 84.34397 566.6629 L 85.86977 567.5084 L 84.34397 566.6629 z " fill="#6a7676" id="path3130" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 566.6629 L 281.1799 569.1994 L 281.1799 566.6629 z " fill="#434749" id="path3131" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.9896 567.2268 L 329.4992 567.7899 L 328.9896 567.2268 z " fill="#b5babd" id="path3132" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 372.7314 566.6629 L 383.4125 570.8904 L 372.7314 566.6629 z " fill="#82928c" id="path3133" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.5159 566.6629 L 391.0419 567.5084 L 389.5159 566.6629 z " fill="#83888b" id="path3134" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -44.33639 567.7899 L -43.32017 568.0723 L -44.33639 567.7899 z " fill="#484c4e" id="path3135" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 1.439407 567.7899 L 2.455629 568.0723 L 1.439407 567.7899 z " fill="#c3c5c2" id="path3136" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 295.4207 568.0723 L 295.9303 568.6354 L 295.4207 568.0723 z " fill="#777c7e" id="path3137" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 567.5084 L 363.5763 568.3539 L 362.0505 567.5084 z " fill="#596465" id="path3138" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.0419 567.5084 L 392.5677 568.3539 L 391.0419 567.5084 z " fill="#595a63" id="path3139" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -39.7588 568.6354 L -38.74258 568.9178 L -39.7588 568.6354 z " fill="#74787b" id="path3140" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -25.51796 568.3539 L -17.88865 569.1994 L -25.51796 568.3539 z " fill="#2c2b2e" id="path3141" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.016996 568.6354 L 7.033207 568.9178 L 6.016996 568.6354 z " fill="#b5b4ac" id="path3142" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 83.32624 568.9178 L 83.83591 569.4809 L 83.32624 568.9178 z " fill="#4c5450" id="path3143" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 568.3539 L 229.3006 579.3455 L 226.2489 568.3539 z " fill="#63736d" id="path3144" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 568.3539 L 229.3006 574.2724 L 229.3006 568.3539 z " fill="#959a9c" id="path3145" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 568.3539 L 241.5076 569.1994 L 239.9816 568.3539 z " fill="#53575a" id="path3146" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.5763 568.3539 L 365.1022 569.1994 L 363.5763 568.3539 z " fill="#82928c" id="path3147" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -36.19897 569.1994 L -34.67311 570.0449 L -36.19897 569.1994 z " fill="#96a3a3" id="path3148" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -19.41452 569.1994 L 0.42167 572.5814 L -19.41452 569.1994 z " fill="#575f5b" id="path3149" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 10.59457 569.4809 L 11.6108 569.7633 L 10.59457 569.4809 z " fill="#8f9099" id="path3150" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.82679 569.1994 L 55.35259 570.0449 L 53.82679 569.1994 z " fill="#959a9c" id="path3151" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 66.03358 569.1994 L 67.55952 570.0449 L 66.03358 569.1994 z " fill="#989d9f" id="path3152" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 280.1622 569.7633 L 280.6717 570.3265 L 280.1622 569.7633 z " fill="#97a4a4" id="path3153" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 569.1994 L 320.8523 573.4269 L 320.8523 569.1994 z " fill="#aebbbc" id="path3154" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.0936 569.1994 L 395.6194 570.0449 L 394.0936 569.1994 z " fill="#575f5b" id="path3155" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -32.12951 570.3265 L -31.11328 570.6089 L -32.12951 570.3265 z " fill="#6a7676" id="path3156" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 16.69801 570.3265 L 17.71423 570.6089 L 16.69801 570.3265 z " fill="#7a8686" id="path3157" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 55.35259 570.0449 L 56.87852 570.8904 L 55.35259 570.0449 z " fill="#807b7a" id="path3158" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 83.32624 570.6089 L 83.83591 571.172 L 83.32624 570.6089 z " fill="#bbc8c9" id="path3159" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 570.0449 L 227.7748 575.9634 L 227.7748 570.0449 z " fill="#f2ffff" id="path3160" stroke="none" style="fill:#f2ffff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 570.0449 L 305.5937 570.8904 L 301.0161 570.0449 z " fill="#a3a797" id="path3161" stroke="none" style="fill:#a3a797;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.1539 570.0449 L 369.6797 570.8904 L 368.1539 570.0449 z " fill="#7a8686" id="path3162" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 570.0449 L 386.4642 571.7359 L 383.4125 570.0449 z " fill="#4c5450" id="path3163" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 570.0449 L 397.1453 570.8904 L 395.6194 570.0449 z " fill="#74787b" id="path3164" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 22.80145 571.172 L 23.81767 571.4544 L 22.80145 571.172 z " fill="#b5b4ac" id="path3165" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.87852 570.8904 L 58.40432 571.7359 L 56.87852 570.8904 z " fill="#777c7e" id="path3166" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 67.55952 570.8904 L 69.08531 571.7359 L 67.55952 570.8904 z " fill="#63736d" id="path3167" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 570.8904 L 279.6539 574.2724 L 279.6539 570.8904 z " fill="#222628" id="path3168" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 295.9303 571.172 L 296.9466 571.4544 L 295.9303 571.172 z " fill="#596465" id="path3169" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 570.8904 L 398.671 571.7359 L 397.1453 570.8904 z " fill="#989d9f" id="path3170" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -22.97435 572.0175 L -21.95813 572.2999 L -22.97435 572.0175 z " fill="#434749" id="path3171" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 0.42167 571.7359 L 6.525107 573.4269 L 0.42167 571.7359 z " fill="#83888b" id="path3172" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 58.40432 571.7359 L 59.93025 572.5814 L 58.40432 571.7359 z " fill="#74787b" id="path3173" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 602.1741 C 299.7785 596.5126 303.0867 588.5741 301.2739 580.191 C 300.9412 578.6462 301.106 573.2646 297.5387 572.6913 C 294.7341 572.2398 293.4097 578.4222 293.0114 579.3455 C 289.7827 586.8307 287.2894 594.4656 287.2833 602.1741 z " fill="#fefffc" id="path3174" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.5759 572.2999 L 305.0855 572.863 L 304.5759 572.2999 z " fill="#aeb3b5" id="path3175" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 372.7314 571.7359 L 374.2573 572.5814 L 372.7314 571.7359 z " fill="#7a8686" id="path3176" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 571.7359 L 392.5677 574.2724 L 386.4642 571.7359 z " fill="#394444" id="path3177" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.525107 572.5814 L 12.62854 575.1179 L 6.525107 572.5814 z " fill="#42514b" id="path3178" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.13704 572.5814 L 70.61125 575.1179 L 72.13704 572.5814 z " fill="#63686a" id="path3179" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 236.93 572.5814 L 238.4558 573.4269 L 236.93 572.5814 z " fill="#777c7e" id="path3180" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 572.5814 L 293.3867 575.1179 L 293.3867 572.5814 z " fill="#484c4e" id="path3181" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 572.5814 L 299.4902 575.9634 L 299.4902 572.5814 z " fill="#7a8686" id="path3182" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.9379 573.1454 L 326.4475 573.7085 L 325.9379 573.1454 z " fill="#c3c5c2" id="path3183" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -15.34504 573.7085 L -14.32883 573.9909 L -15.34504 573.7085 z " fill="#74787b" id="path3184" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 33.99058 573.4269 L 35.51644 574.2724 L 33.99058 573.4269 z " fill="#596465" id="path3185" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 573.4269 L 401.7228 574.2724 L 400.1969 573.4269 z " fill="#97a4a4" id="path3186" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 12.62854 574.2724 L 30.93886 579.0073 L 61.45605 585.264 L 46.19746 580.7904 L 12.62854 574.2724 z " fill="#74787b" id="path3187" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 39.58591 574.554 L 40.60214 574.8364 L 39.58591 574.554 z " fill="#b7c3c4" id="path3188" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 61.45605 574.2724 L 62.98185 575.1179 L 61.45605 574.2724 z " fill="#8a9697" id="path3189" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 80.27451 574.8364 L 80.78417 575.3995 L 80.27451 574.8364 z " fill="#b8bec0" id="path3190" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 574.2724 L 243.0334 576.8089 L 235.4041 574.2724 z " fill="#4c5450" id="path3191" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.8346 574.8364 L 320.3441 575.3995 L 319.8346 574.8364 z " fill="#596465" id="path3192" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 574.2724 L 381.8866 575.1179 L 380.3607 574.2724 z " fill="#74787b" id="path3193" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 62.98185 575.1179 L 64.50778 575.9634 L 62.98185 575.1179 z " fill="#7a8686" id="path3194" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.6363 575.6819 L 279.1459 576.245 L 278.6363 575.6819 z " fill="#686c6f" id="path3195" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 575.1179 L 293.3867 577.6544 L 293.3867 575.1179 z " fill="#b8bec0" id="path3196" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 575.9634 L 47.72332 576.8089 L 46.19746 575.9634 z " fill="#53575a" id="path3197" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 64.50778 575.9634 L 66.03358 576.8089 L 64.50778 575.9634 z " fill="#5d5e66" id="path3198" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.74858 576.5274 L 79.25824 577.0905 L 78.74858 576.5274 z " fill="#575f5b" id="path3199" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 228.2828 576.5274 L 228.7926 577.0905 L 228.2828 576.5274 z " fill="#97a4a4" id="path3200" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 575.9634 L 317.8005 579.3455 L 317.8005 575.9634 z " fill="#c9d6d7" id="path3201" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 575.9634 L 386.4642 576.8089 L 384.9384 575.9634 z " fill="#989d9f" id="path3202" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 403.2486 575.9634 L 404.7745 576.8089 L 403.2486 575.9634 z " fill="#63736d" id="path3203" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 2.965277 577.0905 L 3.981489 577.3729 L 2.965277 577.0905 z " fill="#4d4b4f" id="path3204" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 576.8089 L 52.30086 577.6544 L 50.77506 576.8089 z " fill="#7a8686" id="path3205" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 576.8089 L 323.904 577.6544 L 322.3781 576.8089 z " fill="#5d5e66" id="path3206" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 387.9901 576.8089 L 389.5159 577.6544 L 387.9901 576.8089 z " fill="#83888b" id="path3207" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.7745 576.8089 L 406.3003 577.6544 L 404.7745 576.8089 z " fill="#91988e" id="path3208" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.82679 577.6544 L 55.35259 578.5 L 53.82679 577.6544 z " fill="#73837d" id="path3209" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 577.6544 L 78.24051 581.0365 L 78.24051 577.6544 z " fill="#a8aeb0" id="path3210" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 577.6544 L 291.8609 580.191 L 291.8609 577.6544 z " fill="#63686a" id="path3211" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.0419 577.6544 L 392.5677 578.5 L 391.0419 577.6544 z " fill="#777c7e" id="path3212" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 577.6544 L 407.8263 578.5 L 406.3003 577.6544 z " fill="#9aaba5" id="path3213" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 10.59457 578.7815 L 11.6108 579.0639 L 10.59457 578.7815 z " fill="#434749" id="path3214" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.87852 578.5 L 58.40432 579.3455 L 56.87852 578.5 z " fill="#73837d" id="path3215" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 67.55952 578.5 L 69.08531 579.3455 L 67.55952 578.5 z " fill="#90878d" id="path3216" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 578.5 L 235.4041 579.3455 L 233.8783 578.5 z " fill="#857f8a" id="path3217" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 578.5 L 276.6022 581.0365 L 276.6022 578.5 z " fill="#959a9c" id="path3218" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.5242 579.0639 L 302.0338 579.627 L 301.5242 579.0639 z " fill="#4c5450" id="path3219" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.5159 580.191 L 397.1453 580.191 L 389.5159 580.191 z " fill="#cbddd6" id="path3220" stroke="none" style="fill:#cbddd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.93025 579.3455 L 61.45605 580.191 L 59.93025 579.3455 z " fill="#82928c" id="path3221" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 69.08531 579.3455 L 70.61125 580.191 L 69.08531 579.3455 z " fill="#5d5e66" id="path3222" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.5759 579.9094 L 305.0855 580.4725 L 304.5759 579.9094 z " fill="#6a7676" id="path3223" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 321.3603 579.9094 L 321.8701 580.4725 L 321.3603 579.9094 z " fill="#bdd2d1" id="path3224" stroke="none" style="fill:#bdd2d1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 581.0365 L 389.5159 579.3455 L 384.9384 581.0365 z " fill="#73837d" id="path3225" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 581.0365 L 400.1969 581.0365 L 395.6194 581.0365 z " fill="#575f5b" id="path3226" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 582.7275 L 102.6542 580.191 L 99.6025 582.7275 z " fill="#4f5058" id="path3227" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 580.191 L 301.0161 582.7275 L 301.0161 580.191 z " fill="#83888b" id="path3228" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 580.191 L 317.8005 581.0365 L 316.2746 580.191 z " fill="#6a7676" id="path3229" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.878 580.191 L 412.4038 581.0365 L 410.878 580.191 z " fill="#73837d" id="path3230" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 64.50778 581.0365 L 66.03358 581.882 L 64.50778 581.0365 z " fill="#74787b" id="path3231" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 581.0365 L 104.1802 581.882 L 102.6542 581.0365 z " fill="#63736d" id="path3232" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.3531 581.318 L 115.3692 581.6004 L 114.3531 581.318 z " fill="#575f5b" id="path3233" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 581.0365 L 212.5162 583.573 L 212.5162 581.0365 z " fill="#b8bec0" id="path3234" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 581.0365 L 316.2746 581.882 L 314.7488 581.0365 z " fill="#63686a" id="path3235" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 581.0365 L 320.8523 581.882 L 319.3263 581.0365 z " fill="#74787b" id="path3236" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 412.4038 581.0365 L 413.9298 581.882 L 412.4038 581.0365 z " fill="#73837d" id="path3237" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 25.85317 582.1635 L 26.8694 582.4459 L 25.85317 582.1635 z " fill="#716667" id="path3238" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 581.882 L 81.29224 582.7275 L 79.76644 581.882 z " fill="#7a8686" id="path3239" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 581.882 L 105.706 582.7275 L 104.1802 581.882 z " fill="#82928c" id="path3240" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 581.882 L 117.9129 582.7275 L 116.3869 581.882 z " fill="#575f5b" id="path3241" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 581.882 L 275.0765 584.4185 L 275.0765 581.882 z " fill="#bfcccd" id="path3242" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.8431 582.4459 L 291.3529 583.009 L 290.8431 582.4459 z " fill="#686c6f" id="path3243" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 313.2229 581.882 L 314.7488 582.7275 L 313.2229 581.882 z " fill="#6a7676" id="path3244" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.0419 581.882 L 395.6194 582.7275 L 391.0419 581.882 z " fill="#8f9099" id="path3245" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 416.4732 582.1635 L 417.4895 582.4459 L 416.4732 582.1635 z " fill="#93aca4" id="path3246" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 30.43075 583.009 L 31.44697 583.2914 L 30.43075 583.009 z " fill="#5c5a5d" id="path3247" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 69.08531 582.7275 L 70.61125 583.573 L 69.08531 582.7275 z " fill="#82928c" id="path3248" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.64524 583.2914 L 73.15478 583.8545 L 72.64524 583.2914 z " fill="#a4b5ae" id="path3249" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.8612 584.4185 L 119.4387 582.7275 L 114.8612 584.4185 z " fill="#8f9099" id="path3250" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 582.7275 L 313.2229 583.573 L 311.6971 582.7275 z " fill="#7a8686" id="path3251" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.163 583.009 L 399.1792 583.2914 L 398.163 583.009 z " fill="#857f8a" id="path3252" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 422.5767 583.009 L 423.593 583.2914 L 422.5767 583.009 z " fill="#a1b2ab" id="path3253" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 35.00833 583.8545 L 36.02455 584.1369 L 35.00833 583.8545 z " fill="#434749" id="path3254" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 73.66298 583.573 L 76.71471 585.264 L 73.66298 583.573 z " fill="#575f5b" id="path3255" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.81804 583.573 L 84.34397 584.4185 L 82.81804 583.573 z " fill="#93aca4" id="path3256" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.1284 583.573 L 102.6542 584.4185 L 101.1284 583.573 z " fill="#5c5a5d" id="path3257" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 213.0243 584.1369 L 213.5339 584.7 L 213.0243 584.1369 z " fill="#53575a" id="path3258" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.8431 584.1369 L 291.3529 584.7 L 290.8431 584.1369 z " fill="#a8aeb0" id="path3259" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 306.1017 584.1369 L 306.6114 584.7 L 306.1017 584.1369 z " fill="#63686a" id="path3260" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 583.573 L 311.6971 584.4185 L 310.1711 583.573 z " fill="#83888b" id="path3261" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 427.1543 583.8545 L 428.1706 584.1369 L 427.1543 583.8545 z " fill="#7a8686" id="path3262" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.8434 584.9824 L 114.3531 585.5455 L 113.8434 584.9824 z " fill="#a6b2b3" id="path3263" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.5845 584.9824 L 276.0942 585.5455 L 275.5845 584.9824 z " fill="#596465" id="path3264" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 584.4185 L 302.5419 588.646 L 302.5419 584.4185 z " fill="#8a9697" id="path3265" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 584.4185 L 310.1711 585.264 L 308.6453 584.4185 z " fill="#9aaba5" id="path3266" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 584.4185 L 407.8263 585.264 L 406.3003 584.4185 z " fill="#777c7e" id="path3267" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 433.2578 584.7 L 434.274 584.9824 L 433.2578 584.7 z " fill="#92a39c" id="path3268" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 585.264 L 104.1802 586.1095 L 102.6542 585.264 z " fill="#595a63" id="path3269" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 585.264 L 288.8092 588.646 L 288.8092 585.264 z " fill="#434749" id="path3270" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 585.264 L 308.6453 586.1095 L 307.1196 585.264 z " fill="#92a39c" id="path3271" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.3612 585.5455 L 440.3775 585.8279 L 439.3612 585.5455 z " fill="#8a9697" id="path3272" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.21521 586.391 L 48.23139 586.6734 L 47.21521 586.391 z " fill="#6a7676" id="path3273" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 586.1095 L 226.2489 590.337 L 226.2489 586.1095 z " fill="#807b7a" id="path3274" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.4469 586.1095 L 449.0245 586.955 L 444.4469 586.1095 z " fill="#596465" id="path3275" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.31859 587.2366 L 54.33487 587.519 L 53.31859 587.2366 z " fill="#595a63" id="path3276" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.3957 586.955 L 88.9215 587.8005 L 87.3957 586.955 z " fill="#575f5b" id="path3277" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 586.955 L 105.706 587.8005 L 104.1802 586.955 z " fill="#736c77" id="path3278" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 586.955 L 111.8094 593.719 L 111.8094 586.955 z " fill="#4c5450" id="path3279" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 211.4984 587.519 L 212.0081 588.0821 L 211.4984 587.519 z " fill="#6a7676" id="path3280" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 586.955 L 313.2229 587.8005 L 311.6971 586.955 z " fill="#959a9c" id="path3281" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 586.955 L 415.4556 587.8005 L 413.9298 586.955 z " fill="#6a7676" id="path3282" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 454.6198 587.2366 L 455.636 587.519 L 454.6198 587.2366 z " fill="#c2ccc7" id="path3283" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.42206 588.0821 L 60.43832 588.3645 L 59.42206 588.0821 z " fill="#434749" id="path3284" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 587.8005 L 90.44743 588.646 L 88.9215 587.8005 z " fill="#7a8686" id="path3285" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 587.8005 L 416.9814 588.646 L 415.4556 587.8005 z " fill="#9facad" id="path3286" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 61.45605 588.646 L 66.03358 589.4915 L 61.45605 588.646 z " fill="#b7c3c4" id="path3287" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 67.05144 588.9276 L 68.06759 589.21 L 67.05144 588.9276 z " fill="#575f5b" id="path3288" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 588.646 L 91.97323 589.4915 L 90.44743 588.646 z " fill="#989d9f" id="path3289" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 588.646 L 105.706 592.028 L 105.706 588.646 z " fill="#c9d6d7" id="path3290" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 274.0587 589.21 L 274.5684 589.7731 L 274.0587 589.21 z " fill="#83888b" id="path3291" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 588.646 L 313.2229 589.4915 L 311.6971 588.646 z " fill="#8a9697" id="path3292" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 418.5073 588.646 L 420.0331 589.4915 L 418.5073 588.646 z " fill="#777c7e" id="path3293" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 71.62898 589.7731 L 72.64524 590.0555 L 71.62898 589.7731 z " fill="#aeb3b5" id="path3294" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 589.4915 L 210.9904 590.337 L 209.4645 589.4915 z " fill="#6a7676" id="path3295" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 315.2569 590.0555 L 315.7666 590.6186 L 315.2569 590.0555 z " fill="#8a9697" id="path3296" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 432.24 589.4915 L 436.8175 591.1825 L 432.24 589.4915 z " fill="#394444" id="path3297" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 590.337 L 82.81804 591.1825 L 78.24051 590.337 z " fill="#b5babd" id="path3298" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 83.83591 590.6186 L 84.85204 590.901 L 83.83591 590.6186 z " fill="#394444" id="path3299" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 208.4467 590.901 L 208.9563 591.4641 L 208.4467 590.901 z " fill="#82928c" id="path3300" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 590.337 L 273.5507 592.8735 L 273.5507 590.337 z " fill="#373b3d" id="path3301" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 590.337 L 287.2833 592.8735 L 287.2833 590.337 z " fill="#595a63" id="path3302" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 590.337 L 442.921 592.028 L 436.8175 590.337 z " fill="#686c6f" id="path3303" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.4044 590.6186 L 472.4204 590.901 L 471.4044 590.6186 z " fill="#bbcdc6" id="path3304" stroke="none" style="fill:#bbcdc6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 591.1825 L 227.7748 597.1011 L 227.7748 591.1825 z " fill="#82928c" id="path3305" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 591.1825 L 314.7488 592.028 L 307.1196 591.1825 z " fill="#4c5450" id="path3306" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.6108 591.1825 L 426.1365 592.028 L 424.6108 591.1825 z " fill="#6a7676" id="path3307" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 591.1825 L 474.9641 592.028 L 473.4382 591.1825 z " fill="#777c7e" id="path3308" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 85.86977 592.028 L 85.86977 594.5645 L 85.86977 592.028 z " fill="#7a8686" id="path3309" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 592.028 L 96.55089 592.8735 L 95.02496 592.028 z " fill="#575f5b" id="path3310" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 592.028 L 107.2319 594.5645 L 107.2319 592.028 z " fill="#484c4e" id="path3311" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 592.028 L 207.9386 595.4101 L 207.9386 592.028 z " fill="#aeb3b5" id="path3312" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 592.028 L 301.0161 592.8735 L 299.4902 592.028 z " fill="#575f5b" id="path3313" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.1365 592.028 L 427.6625 592.8735 L 426.1365 592.028 z " fill="#a0a5a8" id="path3314" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 442.921 592.028 L 467.3348 599.6401 L 502.4296 610.6291 L 481.0676 602.1741 L 442.921 592.028 z " fill="#7a8686" id="path3315" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 592.028 L 478.0159 592.8735 L 476.4899 592.028 z " fill="#63686a" id="path3316" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 272.0248 592.8735 L 272.0248 595.4101 L 272.0248 592.8735 z " fill="#7a8686" id="path3317" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.7915 593.4375 L 288.3011 594.0006 L 287.7915 593.4375 z " fill="#b5babd" id="path3318" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 592.8735 L 299.4902 593.719 L 297.9644 592.8735 z " fill="#8a9697" id="path3319" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 429.1882 592.8735 L 430.7142 593.719 L 429.1882 592.8735 z " fill="#686c6f" id="path3320" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 592.8735 L 481.0676 593.719 L 479.5417 592.8735 z " fill="#73837d" id="path3321" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 593.719 L 101.1284 594.5645 L 99.6025 593.719 z " fill="#97a4a4" id="path3322" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 593.719 L 484.1193 594.5645 L 482.5934 593.719 z " fill="#83888b" id="path3323" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 85.86977 594.5645 L 85.86977 599.6376 L 85.86977 594.5645 z " fill="#c7d4d5" id="path3324" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 594.5645 L 107.2319 598.7921 L 107.2319 594.5645 z " fill="#bbc8c9" id="path3325" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 594.5645 L 297.9644 595.4101 L 296.4385 594.5645 z " fill="#6a7676" id="path3326" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 594.5645 L 487.1709 595.4101 L 485.6452 594.5645 z " fill="#82928c" id="path3327" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 94.26207 595.8328 L 95.78786 596.6783 L 94.26207 595.8328 z " fill="#b5b4ac" id="path3328" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 595.4101 L 285.7574 597.9466 L 285.7574 595.4101 z " fill="#596465" id="path3329" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 595.4101 L 438.3435 596.2556 L 436.8175 595.4101 z " fill="#83888b" id="path3330" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 596.2556 L 93.49916 597.1011 L 91.97323 596.2556 z " fill="#63686a" id="path3331" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 271.007 596.8195 L 271.5166 597.3826 L 271.007 596.8195 z " fill="#83888b" id="path3332" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 596.2556 L 441.3952 597.1011 L 439.8693 596.2556 z " fill="#6a7676" id="path3333" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 597.1011 L 294.9126 597.9466 L 293.3867 597.1011 z " fill="#8a9697" id="path3334" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 597.1011 L 494.8003 597.9466 L 493.2743 597.1011 z " fill="#6a7676" id="path3335" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 599.6376 L 99.6025 597.9466 L 95.02496 599.6376 z " fill="#9aaba5" id="path3336" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.7571 598.5105 L 227.2666 599.0736 L 226.7571 598.5105 z " fill="#a0a5a8" id="path3337" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 597.9466 L 288.8092 603.0196 L 285.7574 597.9466 z " fill="#aebbbc" id="path3338" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 597.9466 L 299.4902 598.7921 L 297.9644 597.9466 z " fill="#91988e" id="path3339" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.4469 597.9466 L 445.9728 598.7921 L 444.4469 597.9466 z " fill="#959a9c" id="path3340" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 598.7921 L 113.3354 603.0196 L 113.3354 598.7921 z " fill="#c7cdcf" id="path3341" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 598.7921 L 210.9904 604.7106 L 210.9904 598.7921 z " fill="#45453d" id="path3342" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 598.7921 L 293.3867 599.6376 L 291.8609 598.7921 z " fill="#63686a" id="path3343" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 598.7921 L 297.9644 599.6376 L 296.4385 598.7921 z " fill="#595a63" id="path3344" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 598.7921 L 449.0245 599.6376 L 447.4987 598.7921 z " fill="#63686a" id="path3345" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 598.7921 L 499.3778 599.6376 L 497.852 598.7921 z " fill="#73837d" id="path3346" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 599.6376 L 450.5503 600.4831 L 449.0245 599.6376 z " fill="#a0a5a8" id="path3347" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 106.2142 601.047 L 106.7237 601.6101 L 106.2142 601.047 z " fill="#6a7676" id="path3348" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 600.4831 L 108.7577 603.0196 L 108.7577 600.4831 z " fill="#484c4e" id="path3349" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 269.481 601.047 L 269.9907 601.6101 L 269.481 601.047 z " fill="#73837d" id="path3350" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 600.4831 L 453.602 601.3286 L 452.0762 600.4831 z " fill="#857f8a" id="path3351" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 601.3286 L 93.49916 602.1741 L 91.97323 601.3286 z " fill="#888d90" id="path3352" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 601.3286 L 290.3351 602.1741 L 288.8092 601.3286 z " fill="#575f5b" id="path3353" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 601.3286 L 294.9126 602.1741 L 293.3867 601.3286 z " fill="#686c6f" id="path3354" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 601.3286 L 505.4813 602.1741 L 503.9554 601.3286 z " fill="#959a9c" id="path3355" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.55089 602.1741 L 98.07669 603.0196 L 96.55089 602.1741 z " fill="#5d5e66" id="path3356" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 602.1741 L 224.7231 604.7106 L 224.7231 602.1741 z " fill="#596465" id="path3357" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 456.6537 602.1741 L 458.1796 603.0196 L 456.6537 602.1741 z " fill="#8f9099" id="path3358" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 505.4813 602.1741 L 507.0071 603.0196 L 505.4813 602.1741 z " fill="#73837d" id="path3359" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 603.0196 L 99.6025 603.8651 L 98.07669 603.0196 z " fill="#63686a" id="path3360" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 603.0196 L 110.2836 605.5561 L 107.2319 603.0196 z " fill="#8a9697" id="path3361" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 603.0196 L 113.3354 606.4016 L 113.3354 603.0196 z " fill="#92a39c" id="path3362" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 603.0196 L 461.2313 603.8651 L 459.7054 603.0196 z " fill="#63686a" id="path3363" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.9552 604.4291 L 268.4649 604.9922 L 267.9552 604.4291 z " fill="#6a7676" id="path3364" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.2312 605.2746 L 225.7408 605.8377 L 225.2312 605.2746 z " fill="#abbcb6" id="path3365" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 464.2831 604.7106 L 465.8089 605.5561 L 464.2831 604.7106 z " fill="#888d90" id="path3366" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.6365 606.9656 L 102.1462 607.5287 L 101.6365 606.9656 z " fill="#abbcb6" id="path3367" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 266.4294 606.9656 L 266.9389 607.5287 L 266.4294 606.9656 z " fill="#a9b1b9" id="path3368" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 606.4016 L 294.9126 607.2471 L 293.3867 606.4016 z " fill="#686c6f" id="path3369" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 468.8606 606.4016 L 470.3865 607.2471 L 468.8606 606.4016 z " fill="#888d90" id="path3370" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 513.1106 606.4016 L 514.6365 607.2471 L 513.1106 606.4016 z " fill="#8a9697" id="path3371" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.8612 607.2471 L 116.3869 608.0926 L 114.8612 607.2471 z " fill="#596465" id="path3372" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 607.2471 L 223.1971 609.7836 L 223.1971 607.2471 z " fill="#74787b" id="path3373" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 607.2471 L 293.3867 608.0926 L 291.8609 607.2471 z " fill="#807b7a" id="path3374" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 608.0926 L 209.4645 614.0112 L 209.4645 608.0926 z " fill="#8a9697" id="path3375" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 266.4294 608.6566 L 266.9389 609.2197 L 266.4294 608.6566 z " fill="#434749" id="path3376" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 608.9381 L 102.6542 612.3202 L 102.6542 608.9381 z " fill="#aeb3b5" id="path3377" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 608.9381 L 478.0159 609.7836 L 476.4899 608.9381 z " fill="#888d90" id="path3378" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 575.6709 608.9381 L 580.2483 609.7836 L 575.6709 608.9381 z " fill="#b5babd" id="path3379" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 609.7836 L 264.3955 612.3202 L 264.3955 609.7836 z " fill="#9aaba5" id="path3380" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 516.6704 610.3476 L 517.18 610.9107 L 516.6704 610.3476 z " fill="#434749" id="path3381" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 572.111 610.0652 L 573.1272 610.3476 L 572.111 610.0652 z " fill="#6a7676" id="path3382" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 610.6291 L 221.6713 622.4662 L 221.6713 610.6291 z " fill="#7a8686" id="path3383" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 610.6291 L 258.292 614.0112 L 258.292 610.6291 z " fill="#4c5450" id="path3384" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 286.2655 611.1931 L 286.7752 611.7562 L 286.2655 611.1931 z " fill="#b8bec0" id="path3385" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 564.4816 610.9107 L 565.4979 611.1931 L 564.4816 610.9107 z " fill="#abbcb6" id="path3386" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 567.5333 610.9107 L 568.5496 611.1931 L 567.5333 610.9107 z " fill="#4c5450" id="path3387" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 612.3202 L 487.1709 613.1657 L 465.8089 612.3202 z " fill="#aeb3b5" id="path3388" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 517.6883 611.4746 L 517.6883 615.7022 L 517.6883 611.4746 z " fill="#83888b" id="path3389" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 559.9042 611.7562 L 560.9203 612.0386 L 559.9042 611.7562 z " fill="#73837d" id="path3390" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 612.3202 L 120.9646 616.5477 L 120.9646 612.3202 z " fill="#83888b" id="path3391" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 612.3202 L 264.3955 613.1657 L 262.8695 612.3202 z " fill="#92a39c" id="path3392" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.7398 612.8841 L 285.2494 613.4472 L 284.7398 612.8841 z " fill="#686c6f" id="path3393" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 614.0112 L 490.2226 612.3202 L 485.6452 614.0112 z " fill="#333739" id="path3394" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.6365 613.7296 L 102.1462 614.2927 L 101.6365 613.7296 z " fill="#a8aeb0" id="path3395" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 613.1657 L 456.6537 614.0112 L 449.0245 613.1657 z " fill="#d2dbd6" id="path3396" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 456.6537 613.1657 L 461.2313 614.0112 L 456.6537 613.1657 z " fill="#96a3a3" id="path3397" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 613.1657 L 467.3348 614.0112 L 461.2313 613.1657 z " fill="#45453d" id="path3398" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 614.0112 L 209.4645 619.9297 L 209.4645 614.0112 z " fill="#4c5450" id="path3399" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.8 614.5751 L 259.3098 615.1382 L 258.8 614.5751 z " fill="#aeb3b5" id="path3400" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 270.4989 614.0112 L 275.0765 614.8567 L 270.4989 614.0112 z " fill="#d2dbd6" id="path3401" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 615.7022 L 276.6022 614.0112 L 273.5507 615.7022 z " fill="#92a39c" id="path3402" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 277.1105 614.5751 L 277.6201 615.1382 L 277.1105 614.5751 z " fill="#575f5b" id="path3403" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 614.0112 L 284.2316 616.5477 L 284.2316 614.0112 z " fill="#aeb3b5" id="path3404" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 614.0112 L 449.0245 614.8567 L 438.3435 614.0112 z " fill="#6a7676" id="path3405" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 614.8567 L 104.1802 615.7022 L 102.6542 614.8567 z " fill="#74787b" id="path3406" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 271.5166 615.1382 L 272.5328 615.4206 L 271.5166 615.1382 z " fill="#596465" id="path3407" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 546.6794 614.8567 L 548.2055 615.7022 L 546.6794 614.8567 z " fill="#63686a" id="path3408" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 561.9381 617.3932 L 569.5674 617.3932 L 566.5157 615.7022 L 568.0416 614.8567 L 561.9381 617.3932 z " fill="#d2dbd6" id="path3409" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 615.7022 L 105.706 616.5477 L 104.1802 615.7022 z " fill="#595a63" id="path3410" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 414.9475 615.9837 L 415.9636 616.2661 L 414.9475 615.9837 z " fill="#b5babd" id="path3411" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 416.9814 615.7022 L 423.0849 616.5477 L 416.9814 615.7022 z " fill="#45453d" id="path3412" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 543.6278 615.7022 L 545.1537 616.5477 L 543.6278 615.7022 z " fill="#888d90" id="path3413" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 616.5477 L 259.8178 620.7752 L 259.8178 616.5477 z " fill="#a0a5a8" id="path3414" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 618.2387 L 275.0765 617.3932 L 268.973 618.2387 z " fill="#6a7676" id="path3415" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 407.3181 616.8292 L 408.3344 617.1116 L 407.3181 616.8292 z " fill="#9facad" id="path3416" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 616.5477 L 413.9298 617.3932 L 409.3521 616.5477 z " fill="#575f5b" id="path3417" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 519.214 616.5477 L 520.7398 617.3932 L 519.214 616.5477 z " fill="#53575a" id="path3418" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 558.8864 618.2387 L 561.9381 616.5477 L 558.8864 618.2387 z " fill="#777c7e" id="path3419" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 569.5674 616.5477 L 601.6105 617.3932 L 569.5674 616.5477 z " fill="#1d2022" id="path3420" stroke="none" style="fill:#1d2022;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 601.6105 616.5477 L 606.1881 617.3932 L 601.6105 616.5477 z " fill="#596465" id="path3421" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 607.2058 616.8292 L 608.222 617.1116 L 607.2058 616.8292 z " fill="#92a39c" id="path3422" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 270.4989 617.3932 L 276.6022 618.2387 L 270.4989 617.3932 z " fill="#def4f3" id="path3423" stroke="none" style="fill:#def4f3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 277.1105 617.9571 L 277.6201 618.5202 L 277.1105 617.9571 z " fill="#33413c" id="path3424" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 396.6371 617.6747 L 397.6534 617.9571 L 396.6371 617.6747 z " fill="#c2ccc7" id="path3425" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 399.6888 617.6747 L 400.7051 617.9571 L 399.6888 617.6747 z " fill="#83888b" id="path3426" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.6108 617.3932 C 430.1863 619.638 438.8714 619.638 444.4469 617.3932 L 424.6108 617.3932 z " fill="#333739" id="path3427" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.0502 617.3932 L 540.576 618.2387 L 539.0502 617.3932 z " fill="#63736d" id="path3428" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 615.3432 617.3932 L 619.9207 618.2387 L 615.3432 617.3932 z " fill="#7a8686" id="path3429" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.9986 618.8026 L 123.5081 619.3657 L 122.9986 618.8026 z " fill="#4c5450" id="path3430" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 618.2387 L 203.3611 619.9297 L 188.1024 618.2387 z " fill="#92a39c" id="path3431" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 272.0248 618.2387 L 276.6022 619.0842 L 272.0248 618.2387 z " fill="#6a7676" id="path3432" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 387.9901 618.2387 L 392.5677 619.0842 L 387.9901 618.2387 z " fill="#8a8b76" id="path3433" stroke="none" style="fill:#8a8b76;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 393.5853 618.5202 L 394.6016 618.8026 L 393.5853 618.5202 z " fill="#33413c" id="path3434" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 441.3952 618.2387 L 456.6537 619.0842 L 441.3952 618.2387 z " fill="#73837d" id="path3435" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 619.9297 L 465.8089 619.9297 L 453.602 619.9297 z " fill="#333739" id="path3436" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 622.9725 618.2387 L 627.55 619.0842 L 622.9725 618.2387 z " fill="#63686a" id="path3437" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 619.0842 L 185.0508 619.9297 L 180.4732 619.0842 z " fill="#a1b2ab" id="path3438" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 619.0842 L 285.7574 619.9297 L 284.2316 619.0842 z " fill="#857f8a" id="path3439" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 619.0842 L 481.0676 620.7752 L 481.0676 619.0842 L 465.8089 619.0842 z " fill="#5d5e66" id="path3440" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 619.0842 L 535.9985 619.9297 L 534.4727 619.0842 z " fill="#82928c" id="path3441" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 632.6357 619.6481 L 633.1454 620.2112 L 632.6357 619.6481 z " fill="#b8bec0" id="path3442" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 619.9297 L 124.0163 622.4662 L 124.0163 619.9297 z " fill="#a0a5a8" id="path3443" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.3874 620.2112 L 176.4037 620.4936 L 175.3874 620.2112 z " fill="#82928c" id="path3444" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 619.9297 L 201.8352 620.7752 L 200.3094 619.9297 z " fill="#686c6f" id="path3445" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 387.9901 619.9297 L 394.0936 620.7752 L 387.9901 619.9297 z " fill="#2b332f" id="path3446" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 619.9297 L 488.6968 620.7752 L 481.0676 619.9297 z " fill="#857f8a" id="path3447" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 620.7752 L 497.852 619.9297 L 484.1193 620.7752 z " fill="#42514b" id="path3448" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 532.9468 619.9297 L 534.4727 620.7752 L 532.9468 619.9297 z " fill="#737667" id="path3449" stroke="none" style="fill:#737667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 557.3605 621.6207 C 563.6181 624.0718 577.4668 622.3081 583.3001 619.9297 L 557.3605 621.6207 z " fill="#2b332f" id="path3450" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 620.7752 L 113.3354 621.6207 L 111.8094 620.7752 z " fill="#595a63" id="path3451" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.3358 621.0568 L 173.3519 621.3392 L 172.3358 621.0568 z " fill="#33413c" id="path3452" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 620.7752 L 198.7834 621.6207 L 197.2576 620.7752 z " fill="#686c6f" id="path3453" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 620.7752 C 259.8178 624.5267 261.9693 630.3962 255.2402 632.6123 C 264.2338 634.611 261.8365 623.228 259.8178 620.7752 z " fill="#d7dcdf" id="path3454" stroke="none" style="fill:#d7dcdf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 620.7752 L 261.3437 631.7668 L 261.3437 620.7752 z " fill="#373b3d" id="path3455" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 283.2139 621.3392 L 283.7235 621.9023 L 283.2139 621.3392 z " fill="#b8bec0" id="path3456" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.0419 620.7752 L 398.671 621.6207 L 391.0419 620.7752 z " fill="#c7cdcf" id="path3457" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.671 620.7752 L 413.9298 621.6207 L 398.671 620.7752 z " fill="#736c77" id="path3458" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.8003 620.7752 L 507.0071 621.6207 L 494.8003 620.7752 z " fill="#6a7676" id="path3459" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 502.4296 621.6207 L 510.0589 620.7752 L 502.4296 621.6207 z " fill="#45453d" id="path3460" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 531.4209 620.7752 L 532.9468 621.6207 L 531.4209 620.7752 z " fill="#63736d" id="path3461" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 616.869 620.7752 L 630.6018 621.6207 L 616.869 620.7752 z " fill="#736c77" id="path3462" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 167.7582 621.9023 L 168.7743 622.1847 L 167.7582 621.9023 z " fill="#4c5450" id="path3463" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 621.6207 L 195.7317 622.4662 L 194.2059 621.6207 z " fill="#5d5e66" id="path3464" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 621.6207 L 421.5591 622.4662 L 415.4556 621.6207 z " fill="#d5ceda" id="path3465" stroke="none" style="fill:#d5ceda;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 621.6207 L 426.1365 622.4662 L 421.5591 621.6207 z " fill="#857f8a" id="path3466" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.387 621.9023 L 530.4033 622.1847 L 529.387 621.9023 z " fill="#626657" id="path3467" stroke="none" style="fill:#626657;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 611.7834 621.9023 L 612.7996 622.1847 L 611.7834 621.9023 z " fill="#5d5e66" id="path3468" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 622.4662 L 114.8612 623.3117 L 113.3354 622.4662 z " fill="#888d90" id="path3469" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 622.4662 L 221.6713 625.8482 L 221.6713 622.4662 z " fill="#b8bec0" id="path3470" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.688 623.0302 L 282.1976 623.5933 L 281.688 623.0302 z " fill="#a8aeb0" id="path3471" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 429.1882 622.4662 L 436.8175 623.3117 L 429.1882 622.4662 z " fill="#807b7a" id="path3472" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.2055 625.0027 L 558.8864 622.4662 L 548.2055 625.0027 z " fill="#575f5b" id="path3473" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 604.6623 622.4662 L 610.7655 623.3117 L 604.6623 622.4662 z " fill="#adaeb8" id="path3474" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 126.0504 623.8757 L 126.5599 624.4388 L 126.0504 623.8757 z " fill="#7a8686" id="path3475" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 623.3117 L 189.6282 624.1572 L 188.1024 623.3117 z " fill="#5d5e66" id="path3476" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 623.3117 L 207.9386 627.5392 L 207.9386 623.3117 z " fill="#595a63" id="path3477" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 623.3117 L 444.4469 624.1572 L 439.8693 623.3117 z " fill="#989d9f" id="path3478" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 445.4647 623.5933 L 446.4808 623.8757 L 445.4647 623.5933 z " fill="#413b45" id="path3479" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 593.9811 623.3117 L 598.5588 624.1572 L 593.9811 623.3117 z " fill="#5d5e66" id="path3480" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 599.5765 623.5933 L 600.5927 623.8757 L 599.5765 623.5933 z " fill="#b3aba4" id="path3481" stroke="none" style="fill:#b3aba4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 624.1572 L 452.0762 625.0027 L 447.4987 624.1572 z " fill="#aeb3b5" id="path3482" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 587.3696 624.4388 L 588.3859 624.7212 L 587.3696 624.4388 z " fill="#4f5058" id="path3483" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 52.30086 625.0027 L 72.13704 625.8482 L 52.30086 625.0027 z " fill="#73837d" id="path3484" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 625.0027 L 117.9129 625.8482 L 116.3869 625.0027 z " fill="#63686a" id="path3485" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 625.0027 L 156.0593 625.8482 L 149.956 625.0027 z " fill="#959a9c" id="path3486" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 625.0027 L 183.5249 625.8482 L 181.999 625.0027 z " fill="#5d5e66" id="path3487" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 280.1622 625.5667 L 280.6717 626.1298 L 280.1622 625.5667 z " fill="#959a9c" id="path3488" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 625.0027 L 464.2831 625.8482 L 453.602 625.0027 z " fill="#9facad" id="path3489" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 581.7743 625.0027 L 586.3518 625.8482 L 581.7743 625.0027 z " fill="#4f5058" id="path3490" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 36.53419 626.1298 L 37.55042 626.4122 L 36.53419 626.1298 z " fill="#92a39c" id="path3491" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 625.8482 L 46.19746 626.6937 L 38.56816 625.8482 z " fill="#575f5b" id="path3492" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 625.8482 L 82.81804 626.6937 L 78.24051 625.8482 z " fill="#4c5450" id="path3493" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.396 626.1298 L 147.4123 626.4122 L 146.396 626.1298 z " fill="#3c3837" id="path3494" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.9473 625.8482 L 180.4732 626.6937 L 178.9473 625.8482 z " fill="#595a63" id="path3495" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 625.8482 L 220.1455 630.0758 L 220.1455 625.8482 z " fill="#3c3837" id="path3496" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 468.3526 626.1298 L 469.3687 626.4122 L 468.3526 626.1298 z " fill="#aeb3b5" id="path3497" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.4044 626.1298 L 472.4204 626.4122 L 471.4044 626.1298 z " fill="#74787b" id="path3498" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 576.6886 626.1298 L 577.7049 626.4122 L 576.6886 626.1298 z " fill="#53575a" id="path3499" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 27.88714 626.6937 L 32.46473 627.5392 L 27.88714 626.6937 z " fill="#a4b5ae" id="path3500" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 626.6937 L 119.4387 627.5392 L 117.9129 626.6937 z " fill="#63686a" id="path3501" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 626.6937 L 143.8525 627.5392 L 142.3266 626.6937 z " fill="#9aaba5" id="path3502" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 626.6937 L 278.1281 629.2303 L 278.1281 626.6937 z " fill="#4c5450" id="path3503" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.0335 626.9753 L 480.0497 627.2577 L 479.0335 626.9753 z " fill="#a19ea2" id="path3504" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 626.6937 L 488.6968 627.5392 L 481.0676 626.6937 z " fill="#342c31" id="path3505" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.32731 627.8208 L 25.34353 628.1032 L 24.32731 627.8208 z " fill="#6a7676" id="path3506" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 627.5392 L 142.3266 628.3847 L 140.8008 627.5392 z " fill="#83888b" id="path3507" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 627.5392 L 174.3697 628.3847 L 172.8438 627.5392 z " fill="#63686a" id="path3508" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 627.5392 L 206.4127 635.1488 L 206.4127 627.5392 z " fill="#c9d6d7" id="path3509" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 488.6968 627.5392 L 496.3261 628.3847 L 488.6968 627.5392 z " fill="#857f8a" id="path3510" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 627.5392 L 505.4813 628.3847 L 496.3261 627.5392 z " fill="#333739" id="path3511" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 19.74973 628.6663 L 20.76595 628.9487 L 19.74973 628.6663 z " fill="#434749" id="path3512" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.9469 628.9487 L 120.4565 629.5118 L 119.9469 628.9487 z " fill="#a8aeb0" id="path3513" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 129.1019 628.9487 L 129.6116 629.5118 L 129.1019 628.9487 z " fill="#83888b" id="path3514" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 628.3847 L 140.8008 629.2303 L 139.2749 628.3847 z " fill="#73837d" id="path3515" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 628.3847 L 508.533 629.2303 L 497.852 628.3847 z " fill="#cacfd1" id="path3516" stroke="none" style="fill:#cacfd1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 12.12043 629.5118 L 13.13664 629.7942 L 12.12043 629.5118 z " fill="#7a8686" id="path3517" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 629.2303 L 139.2749 630.0758 L 137.7491 629.2303 z " fill="#73837d" id="path3518" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 629.2303 L 278.1281 633.4578 L 278.1281 629.2303 z " fill="#c7cdcf" id="path3519" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 1.947518 630.0758 L 8.050966 630.9213 L 1.947518 630.0758 z " fill="#434749" id="path3520" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 30.93886 630.0758 L 30.93886 631.7668 L 37.0423 631.7668 L 37.0423 630.0758 L 30.93886 630.0758 z " fill="#2c2b2e" id="path3521" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 37.0423 630.0758 L 37.0423 631.7668 L 55.35259 630.9213 L 37.0423 630.0758 z " fill="#575f5b" id="path3522" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 630.0758 L 101.1284 630.9213 L 99.6025 630.0758 z " fill="#8a9697" id="path3523" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.7313 630.6397 L 137.241 631.2028 L 136.7313 630.6397 z " fill="#575f5b" id="path3524" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.4391 630.3573 L 179.4554 630.6397 L 178.4391 630.3573 z " fill="#a3bcb3" id="path3525" stroke="none" style="fill:#a3bcb3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 630.0758 L 220.1455 635.1488 L 220.1455 630.0758 z " fill="#63686a" id="path3526" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 630.0758 L 505.4813 630.9213 L 503.9554 630.0758 z " fill="#83888b" id="path3527" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -13.31107 630.9213 L -4.155919 631.7668 L -13.31107 630.9213 z " fill="#cbddd6" id="path3528" stroke="none" style="fill:#cbddd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -3.138171 631.2028 L -2.121948 631.4852 L -3.138171 631.2028 z " fill="#6a7676" id="path3529" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.72332 630.9213 L 58.40432 631.7668 L 47.72332 630.9213 z " fill="#a0a5a8" id="path3530" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.87852 632.6123 L 81.29224 633.4578 C 75.22234 631.3313 62.81404 629.9709 56.87852 632.6123 z " fill="#4c5450" id="path3531" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 502.4296 630.9213 L 503.9554 631.7668 L 502.4296 630.9213 z " fill="#575f5b" id="path3532" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 637.6853 L 525.3175 630.9213 L 503.9554 637.6853 z " fill="#42514b" id="path3533" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 581.7743 630.9213 L 583.3001 631.7668 L 581.7743 630.9213 z " fill="#63686a" id="path3534" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -17.88865 631.7668 L -7.207637 633.4578 L -17.88865 631.7668 z " fill="#888d90" id="path3535" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.7313 632.3307 L 137.241 632.8938 L 136.7313 632.3307 z " fill="#8f9099" id="path3536" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 153.0076 631.7668 L 165.2161 635.1234 L 191.1541 639.3763 C 181.9288 634.9932 164.8406 632.8059 153.0076 631.7668 z " fill="#7a8686" id="path3537" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.0684 632.0483 L 187.0847 632.3307 L 186.0684 632.0483 z " fill="#bbc8c9" id="path3538" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -7.207637 632.6123 L 1.947518 633.4578 L -7.207637 632.6123 z " fill="#413b45" id="path3539" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.9986 633.1762 L 123.5081 633.7393 L 122.9986 633.1762 z " fill="#a8aeb0" id="path3540" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 632.6123 L 189.6282 633.4578 L 188.1024 632.6123 z " fill="#596465" id="path3541" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 632.6123 L 499.3778 633.4578 L 497.852 632.6123 z " fill="#7a8686" id="path3542" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 587.8778 632.6123 L 589.4036 633.4578 L 587.8778 632.6123 z " fill="#91988e" id="path3543" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 8.050966 633.4578 L 21.78371 634.3033 L 8.050966 633.4578 z " fill="#a4a9ac" id="path3544" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 21.78371 633.4578 L 27.88714 634.3033 L 21.78371 633.4578 z " fill="#333739" id="path3545" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 633.4578 L 133.1715 634.3033 L 131.6456 633.4578 z " fill="#83888b" id="path3546" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 633.4578 L 246.085 634.3033 L 239.9816 633.4578 z " fill="#92a39c" id="path3547" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 633.4578 L 256.7661 634.3033 L 246.085 633.4578 z " fill="#63686a" id="path3548" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 633.4578 L 282.7057 634.3033 L 278.1281 633.4578 z " fill="#82928c" id="path3549" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 633.4578 L 520.7398 637.6853 L 525.3175 633.4578 z " fill="#373b3d" id="path3550" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 564.9899 633.4578 L 583.3001 639.3763 L 564.9899 633.4578 z " fill="#4c5450" id="path3551" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 589.4036 633.4578 L 590.9295 634.3033 L 589.4036 633.4578 z " fill="#53575a" id="path3552" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 27.88714 634.3033 L 33.99058 635.1488 L 27.88714 634.3033 z " fill="#857f8a" id="path3553" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 110.2836 634.3033 L 114.8612 635.1488 L 110.2836 634.3033 z " fill="#a1b2ab" id="path3554" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 634.3033 L 137.7491 636.8398 L 137.7491 634.3033 z " fill="#53575a" id="path3555" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 634.3033 L 238.4558 635.1488 L 232.3523 634.3033 z " fill="#2b332f" id="path3556" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 286.7752 634.5848 L 287.7915 634.8672 L 286.7752 634.5848 z " fill="#63736d" id="path3557" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 37.0423 635.1488 L 43.14574 635.9943 L 37.0423 635.1488 z " fill="#a19ea2" id="path3558" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 43.14574 635.1488 L 49.24913 635.9943 L 43.14574 635.1488 z " fill="#2c2b2e" id="path3559" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.4048 635.4303 L 118.421 635.7127 L 117.4048 635.4303 z " fill="#96a3a3" id="path3560" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.4904 636.8398 L 125.5421 635.1488 L 122.4904 636.8398 z " fill="#8a9697" id="path3561" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 635.1488 L 206.4127 637.6853 L 206.4127 635.1488 z " fill="#83888b" id="path3562" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 635.1488 L 223.1971 637.6853 L 220.1455 635.1488 z " fill="#b5babd" id="path3563" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 228.7926 635.4303 L 229.8089 635.7127 L 228.7926 635.4303 z " fill="#42514b" id="path3564" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 635.1488 L 296.4385 635.9943 L 291.8609 635.1488 z " fill="#4c5450" id="path3565" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 491.7485 635.1488 L 493.2743 635.9943 L 491.7485 635.1488 z " fill="#83888b" id="path3566" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.0502 635.1488 L 542.102 641.9128 L 539.0502 635.1488 z " fill="#b5babd" id="path3567" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 593.9811 635.1488 L 595.507 635.9943 L 593.9811 635.1488 z " fill="#6a7676" id="path3568" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 635.9943 L 58.40432 636.8398 L 50.77506 635.9943 z " fill="#83888b" id="path3569" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 635.9943 L 201.8352 636.8398 L 200.3094 635.9943 z " fill="#63686a" id="path3570" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 490.2226 635.9943 L 491.7485 636.8398 L 490.2226 635.9943 z " fill="#6a7676" id="path3571" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 531.4209 635.9943 L 523.7915 645.2948 L 531.4209 635.9943 z " fill="#373b3d" id="path3572" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -33.14726 638.5308 L -28.56968 636.8398 L -33.14726 638.5308 z " fill="#63686a" id="path3573" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -27.55193 637.1213 L -26.5357 637.4037 L -27.55193 637.1213 z " fill="#c2ccc7" id="path3574" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 62.98185 636.8398 L 67.55952 637.6853 L 62.98185 636.8398 z " fill="#74787b" id="path3575" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.0855 637.1213 L 306.1017 637.4037 L 305.0855 637.1213 z " fill="#82928c" id="path3576" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 542.61 637.4037 L 543.1196 637.9669 L 542.61 637.4037 z " fill="#4d4b4f" id="path3577" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.7135 637.4037 L 549.2231 637.9669 L 548.7135 637.4037 z " fill="#413b45" id="path3578" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -22.97435 637.9669 L -21.95813 638.2493 L -22.97435 637.9669 z " fill="#9aaba5" id="path3579" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 637.6853 L 313.2229 638.5308 L 308.6453 637.6853 z " fill="#73837d" id="path3580" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 488.6968 643.6038 L 503.9554 637.6853 L 488.6968 643.6038 z " fill="#575f5b" id="path3581" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 537.5244 637.6853 L 537.5244 643.6038 L 537.5244 637.6853 z " fill="#595a63" id="path3582" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 550.2393 638.2493 L 550.7489 638.8124 L 550.2393 638.2493 z " fill="#74787b" id="path3583" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 600.0846 637.6853 L 601.6105 638.5308 L 600.0846 637.6853 z " fill="#63736d" id="path3584" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -30.60365 638.8124 L -29.58741 639.0948 L -30.60365 638.8124 z " fill="#807b7a" id="path3585" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -19.41452 638.5308 L -14.83693 639.3763 L -19.41452 638.5308 z " fill="#63736d" id="path3586" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 57.89625 638.8124 L 58.91239 639.0948 L 57.89625 638.8124 z " fill="#42514b" id="path3587" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 638.5308 L 154.5336 639.3763 L 149.956 638.5308 z " fill="#74787b" id="path3588" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 638.5308 L 203.3611 641.9128 L 191.1541 638.5308 z " fill="#45453d" id="path3589" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 639.3763 L 267.4472 639.3763 L 244.5593 639.3763 z " fill="#63736d" id="path3590" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 638.5308 L 281.1799 639.3763 L 273.5507 638.5308 z " fill="#333739" id="path3591" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 315.7666 638.8124 L 316.7829 639.0948 L 315.7666 638.8124 z " fill="#a4b5ae" id="path3592" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -106.3885 639.3763 L -104.8627 640.2218 L -106.3885 639.3763 z " fill="#807b7a" id="path3593" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -104.8627 641.0673 L -100.285 639.3763 L -104.8627 641.0673 z " fill="#33413c" id="path3594" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 641.9128 L 116.3869 641.0673 L 116.3869 639.3763 L 98.07669 641.9128 z " fill="#6a7676" id="path3595" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.8019 640.434 C 146.9073 641.7395 144.8168 644.9626 143.8235 646.8878 C 142.8012 648.8688 144.89 649.8809 147.9739 648.501 C 151.1506 647.0789 152.8429 644.2836 153.2441 642.0963 C 153.4593 640.9236 152.2203 639.3433 149.8019 640.434 z " fill="#dfeced" id="path3596" stroke="none" style="fill:#dfeced;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 641.0673 L 239.9816 639.3763 L 235.4041 641.0673 z " fill="#413b45" id="path3597" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 639.3763 L 244.5593 640.2218 L 239.9816 639.3763 z " fill="#9facad" id="path3598" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.3441 639.6579 L 321.3603 639.9403 L 320.3441 639.6579 z " fill="#a4b5ae" id="path3599" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.0502 639.3763 C 539.0792 640.2844 539.0945 641.1772 539.247 642.0802 C 540.5715 649.8986 548.7165 642.9249 539.0502 639.3763 z " fill="#e8e5ea" id="path3600" stroke="none" style="fill:#e8e5ea;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 551.2571 639.3763 L 554.3088 641.9128 L 551.2571 639.3763 z " fill="#63686a" id="path3601" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -96.2161 640.5034 L -95.19889 640.7858 L -96.2161 640.5034 z " fill="#a0a5a8" id="path3602" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 48.74105 640.5034 L 49.75733 640.7858 L 48.74105 640.5034 z " fill="#73837d" id="path3603" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 640.2218 L 99.6025 641.0673 L 93.49916 640.2218 z " fill="#342c31" id="path3604" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 324.9218 640.5034 L 325.9379 640.7858 L 324.9218 640.5034 z " fill="#b7c3c4" id="path3605" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 606.1881 640.2218 L 607.714 641.0673 L 606.1881 640.2218 z " fill="#959a9c" id="path3606" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -101.811 641.0673 L -100.285 641.9128 L -101.811 641.0673 z " fill="#857f8a" id="path3607" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -91.63854 641.3489 L -90.62133 641.6313 L -91.63854 641.3489 z " fill="#8a9697" id="path3608" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -20.94037 641.0673 L -19.41452 641.9128 L -20.94037 641.0673 z " fill="#959a9c" id="path3609" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -3.138171 641.3489 L -2.121948 641.6313 L -3.138171 641.3489 z " fill="#82928c" id="path3610" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 84.34397 642.7583 L 98.07669 641.9128 L 84.34397 642.7583 z " fill="#aeb3b5" id="path3611" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 147.4123 641.6313 L 147.9219 642.1944 L 147.4123 641.6313 z " fill="#a9b1b9" id="path3612" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 641.9128 C 309.8508 643.3739 325.7044 644.0756 330.0074 641.0673 L 304.0679 641.9128 z " fill="#b0b5b7" id="path3613" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 513.1106 641.0673 L 516.1623 643.6038 L 513.1106 641.0673 z " fill="#aebbbc" id="path3614" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 544.1359 641.6313 L 544.6455 642.1944 L 544.1359 641.6313 z " fill="#7a8686" id="path3615" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 564.9899 642.7583 L 568.0416 641.0673 L 564.9899 642.7583 z " fill="#434749" id="path3616" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 589.4036 641.0673 L 610.7655 647.8314 L 589.4036 641.0673 z " fill="#4c5450" id="path3617" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 607.714 641.0673 L 609.2397 641.9128 L 607.714 641.0673 z " fill="#777c7e" id="path3618" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 647.8314 L 85.86977 643.6038 C 78.24661 640.2768 62.19614 643.6977 53.84961 645.0556 C 50.28835 645.6356 46.93598 646.137 44.6716 647.8314 z " fill="#73837d" id="path3619" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.46517 642.1944 L 92.4813 642.4768 L 91.46517 642.1944 z " fill="#596465" id="path3620" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 641.9128 L 304.0679 642.7583 L 296.4385 641.9128 z " fill="#83888b" id="path3621" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 641.9128 L 481.0676 642.7583 L 479.5417 641.9128 z " fill="#575f5b" id="path3622" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 662.2049 L 496.8465 662.0781 L 507.3748 652.9044 L 512.665 643.0086 L 497.852 646.1471 L 458.1796 662.2049 z " fill="#fefffc" id="path3623" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 554.3088 641.9128 L 558.8864 646.1404 L 554.3088 641.9128 z " fill="#4c5450" id="path3624" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.5157 643.6038 L 569.5674 641.9128 L 566.5157 643.6038 z " fill="#888d90" id="path3625" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 609.2397 641.9128 L 610.7655 642.7583 L 609.2397 641.9128 z " fill="#7a8686" id="path3626" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -97.23342 642.7583 L -95.70749 643.6038 L -97.23342 642.7583 z " fill="#a19ea2" id="path3627" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -14.83693 642.7583 L -13.31107 643.6038 L -14.83693 642.7583 z " fill="#8f9099" id="path3628" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.016996 643.0399 L 7.033207 643.3223 L 6.016996 643.0399 z " fill="#92a39c" id="path3629" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 37.0423 642.7583 L 38.56816 643.6038 L 37.0423 642.7583 z " fill="#82928c" id="path3630" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 138.2571 643.3223 L 138.7668 643.8854 L 138.2571 643.3223 z " fill="#63686a" id="path3631" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.8864 643.3223 L 146.396 643.8854 L 145.8864 643.3223 z " fill="#888d90" id="path3632" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 642.7583 L 290.3351 643.6038 L 278.1281 642.7583 z " fill="#595a63" id="path3633" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 642.7583 L 479.5417 643.6038 L 478.0159 642.7583 z " fill="#63736d" id="path3634" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 642.7583 L 484.1193 645.2948 L 487.1709 642.7583 z " fill="#33322b" id="path3635" stroke="none" style="fill:#33322b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 610.7655 642.7583 L 612.2915 643.6038 L 610.7655 642.7583 z " fill="#7a8686" id="path3636" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -80.44891 643.6038 L -78.92305 644.4493 L -80.44891 643.6038 z " fill="#575f5b" id="path3637" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 10.59457 643.8854 L 11.6108 644.1678 L 10.59457 643.8854 z " fill="#abbcb6" id="path3638" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 33.99058 643.6038 L 35.51644 644.4493 L 33.99058 643.6038 z " fill="#73837d" id="path3639" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 643.6038 L 120.9646 656.2864 C 126.6148 653.8226 137.299 647.9328 136.2231 643.6038 z " fill="#82928c" id="path3640" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 643.6038 L 151.4818 647.8314 L 151.4818 643.6038 z " fill="#53575a" id="path3641" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 643.6038 L 189.6282 645.2948 L 185.0508 643.6038 z " fill="#2c2b2e" id="path3642" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 643.6038 L 238.4558 644.4493 L 227.7748 643.6038 z " fill="#83888b" id="path3643" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 643.6038 L 259.8178 645.2948 L 253.7144 643.6038 z " fill="#b8bec0" id="path3644" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 643.6038 L 276.6022 649.5224 L 276.6022 643.6038 z " fill="#7a8686" id="path3645" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 643.6038 L 478.0159 644.4493 L 476.4899 643.6038 z " fill="#73837d" id="path3646" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.6617 644.1678 L 546.1714 644.7309 L 545.6617 644.1678 z " fill="#9d9c94" id="path3647" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 573.6368 643.8854 L 574.6531 644.1678 L 573.6368 643.8854 z " fill="#413b45" id="path3648" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 612.2915 643.6038 L 613.8173 644.4493 L 612.2915 643.6038 z " fill="#7a8686" id="path3649" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -10.25936 644.4493 L -8.733496 645.2948 L -10.25936 644.4493 z " fill="#8f9099" id="path3650" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 644.4493 L 120.9646 646.1404 L 117.9129 644.4493 z " fill="#4f5058" id="path3651" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 644.4493 L 194.2059 646.1404 L 189.6282 644.4493 z " fill="#686c6f" id="path3652" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 474.9641 644.4493 L 476.4899 645.2948 L 474.9641 644.4493 z " fill="#596465" id="path3653" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.5583 645.0133 L 540.0679 645.5764 L 539.5583 645.0133 z " fill="#50564d" id="path3654" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 576.6886 644.7309 L 577.7049 645.0133 L 576.6886 644.7309 z " fill="#3c3837" id="path3655" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 613.8173 644.4493 L 615.3432 645.2948 L 613.8173 644.4493 z " fill="#82928c" id="path3656" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -71.80232 645.5764 L -70.78518 645.8588 L -71.80232 645.5764 z " fill="#abbcb6" id="path3657" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 17.20612 645.2948 L 18.73199 646.1404 L 17.20612 645.2948 z " fill="#93aca4" id="path3658" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.36128 645.2948 L 27.88714 646.1404 L 26.36128 645.2948 z " fill="#82928c" id="path3659" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.3531 645.5764 L 115.3692 645.8588 L 114.3531 645.5764 z " fill="#90878d" id="path3660" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 653.7499 L 69.08531 667.2644 L 79.57568 671.1377 L 89.93777 665.5861 L 104.6624 654.7611 L 119.4387 645.2948 L 46.19746 653.7499 z " fill="#fefffc" id="path3661" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 645.2948 L 145.3783 646.1404 L 143.8525 645.2948 z " fill="#686c6f" id="path3662" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 645.2948 L 201.8352 647.8314 L 194.2059 645.2948 z " fill="#96a3a3" id="path3663" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 257.7839 645.5764 L 258.8 645.8588 L 257.7839 645.5764 z " fill="#53575a" id="path3664" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 648.6769 L 484.1193 645.2948 L 476.4899 648.6769 z " fill="#33413c" id="path3665" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 522.2657 645.2948 L 514.6365 653.7499 C 518.9303 651.7934 523.5399 648.5636 522.2657 645.2948 z " fill="#42514b" id="path3666" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 615.3432 645.2948 L 616.869 646.1404 L 615.3432 645.2948 z " fill="#7a8686" id="path3667" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -5.681778 646.1404 L -4.155919 646.9859 L -5.681778 646.1404 z " fill="#807b7a" id="path3668" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 18.73199 646.1404 L 20.25784 646.9859 L 18.73199 646.1404 z " fill="#63686a" id="path3669" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 23.30956 646.1404 L 24.83542 646.9859 L 23.30956 646.1404 z " fill="#7a8686" id="path3670" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.2496 646.4219 L 109.2659 646.7043 L 108.2496 646.4219 z " fill="#857f8a" id="path3671" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 646.1404 L 473.4382 646.9859 L 471.9124 646.1404 z " fill="#63736d" id="path3672" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 646.1404 L 497.852 646.9859 L 496.3261 646.1404 z " fill="#686c6f" id="path3673" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 512.0928 646.7043 L 512.6025 647.2674 L 512.0928 646.7043 z " fill="#45453d" id="path3674" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 558.8864 646.1404 L 563.4639 650.3679 L 558.8864 646.1404 z " fill="#394444" id="path3675" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 581.2661 646.4219 L 582.2824 646.7043 L 581.2661 646.4219 z " fill="#686c6f" id="path3676" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 616.869 646.1404 L 618.3949 646.9859 L 616.869 646.1404 z " fill="#888d90" id="path3677" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -65.19032 646.9859 L -63.66445 647.8314 L -65.19032 646.9859 z " fill="#73837d" id="path3678" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -4.155919 646.9859 L -2.630048 647.8314 L -4.155919 646.9859 z " fill="#989d9f" id="path3679" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 42.63762 647.2674 L 43.65385 647.5498 L 42.63762 647.2674 z " fill="#9facad" id="path3680" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 103.6721 647.2674 L 104.6882 647.5498 L 103.6721 647.2674 z " fill="#8a9697" id="path3681" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.3697 646.9859 L 177.4215 648.6769 L 174.3697 646.9859 z " fill="#96a3a3" id="path3682" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 646.9859 L 220.1455 652.0589 L 201.8352 646.9859 z " fill="#bbcdc6" id="path3683" stroke="none" style="fill:#bbcdc6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 470.3865 646.9859 L 471.9124 647.8314 L 470.3865 646.9859 z " fill="#9aaba5" id="path3684" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 532.9468 648.6769 L 535.9985 646.9859 L 532.9468 648.6769 z " fill="#857f8a" id="path3685" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.2055 646.9859 C 546.5498 650.8684 547.1387 665.8584 557.3605 664.7415 C 556.9485 665.9302 552.5983 675.3399 559.4769 673.3495 C 563.702 672.1278 561.7825 666.8586 561.4803 664.815 C 561.1645 662.6835 562.8826 660.7515 562.5744 658.6758 C 561.906 654.1794 554.2906 649.6264 548.2055 646.9859 z " fill="#f0f6f8" id="path3686" stroke="none" style="fill:#f0f6f8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 585.8438 647.2674 L 586.86 647.5498 L 585.8438 647.2674 z " fill="#333739" id="path3687" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 618.3949 646.9859 L 619.9207 647.8314 L 618.3949 646.9859 z " fill="#91988e" id="path3688" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -2.630048 647.8314 L -1.1042 648.6769 L -2.630048 647.8314 z " fill="#a19ea2" id="path3689" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 15.68025 652.9044 L 41.61988 648.6769 C 34.20726 647.0383 21.16573 650.0398 15.68025 652.9044 z " fill="#63736d" id="path3690" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.0427 648.1129 L 97.05897 648.3953 L 96.0427 648.1129 z " fill="#595a63" id="path3691" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 647.8314 L 102.6542 648.6769 L 98.07669 647.8314 z " fill="#a8aeb0" id="path3692" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 647.8314 L 117.9129 648.6769 L 116.3869 647.8314 z " fill="#575f5b" id="path3693" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 647.8314 L 149.956 648.6769 L 148.4301 647.8314 z " fill="#83888b" id="path3694" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 647.8314 L 200.3094 652.0589 L 186.5765 647.8314 z " fill="#63736d" id="path3695" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 647.8314 L 233.8783 649.5224 L 227.7748 647.8314 z " fill="#959a9c" id="path3696" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 491.7485 647.8314 L 493.2743 648.6769 L 491.7485 647.8314 z " fill="#5d5e66" id="path3697" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 540.576 666.4325 C 531.0272 667.8123 520.9505 657.7424 534.0285 660.7938 C 535.4141 661.1168 536.6851 661.5564 537.9241 662.024 C 540.3427 662.9363 542.6634 663.8858 545.1537 664.7415 C 544.8622 660.6205 542.7138 656.7379 539.9795 652.9205 C 539.1708 651.7917 538.0279 649.7042 535.4949 649.4099 C 532.3943 649.0497 530.1041 651.8002 528.8682 652.9205 C 525.325 656.1308 513.7301 662.2819 514.818 666.2076 C 515.7993 669.746 530.5358 672.9302 535.9924 673.6294 C 538.3253 673.9287 544.1725 674.458 545.0147 672.5911 C 545.8723 670.6887 542.1034 667.9907 540.576 666.4325 z " fill="#f2fcf7" id="path3698" stroke="none" style="fill:#f2fcf7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -59.08687 648.6769 L -57.56101 649.5224 L -59.08687 648.6769 z " fill="#6a7676" id="path3699" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 85.86977 648.6769 L 90.44743 649.5224 L 85.86977 648.6769 z " fill="#413b45" id="path3700" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 648.6769 L 95.02496 649.5224 L 90.44743 648.6769 z " fill="#a8aeb0" id="path3701" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 648.6769 L 148.4301 649.5224 L 146.9043 648.6769 z " fill="#596465" id="path3702" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.8778 649.2408 L 175.3874 649.8039 L 174.8778 649.2408 z " fill="#575f5b" id="path3703" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 648.6769 L 178.9473 661.3594 C 181.8739 657.8354 180.7433 654.7569 189.6282 656.2864 L 175.8955 648.6769 z " fill="#e5eaed" id="path3704" stroke="none" style="fill:#e5eaed;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 648.6769 L 178.9473 649.5224 L 177.4215 648.6769 z " fill="#63686a" id="path3705" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 648.6769 C 253.96 652.5916 268.506 654.7231 276.6022 655.4409 L 249.1368 648.6769 z " fill="#4c5450" id="path3706" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 468.8606 648.6769 L 470.3865 649.5224 L 468.8606 648.6769 z " fill="#63686a" id="path3707" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 571.0933 648.6769 L 572.6192 649.5224 L 571.0933 648.6769 z " fill="#83888b" id="path3708" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 590.4213 648.9584 L 591.4375 649.2408 L 590.4213 648.9584 z " fill="#7a8686" id="path3709" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 649.5224 L 84.34397 650.3679 L 78.24051 649.5224 z " fill="#90878d" id="path3710" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 649.5224 L 169.7921 657.9774 L 162.1628 649.5224 z " fill="#4c5450" id="path3711" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 649.5224 L 249.1368 654.5954 L 232.3523 649.5224 z " fill="#bfcccd" id="path3712" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 649.5224 L 279.6539 650.3679 L 278.1281 649.5224 z " fill="#575f5b" id="path3713" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 467.3348 649.5224 L 468.8606 650.3679 L 467.3348 649.5224 z " fill="#8a9697" id="path3714" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 649.5224 L 488.6968 650.3679 L 487.1709 649.5224 z " fill="#74787b" id="path3715" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.1537 649.5224 L 545.1537 652.0589 L 545.1537 649.5224 z " fill="#5d5e66" id="path3716" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 552.7829 649.5224 L 554.3088 650.3679 L 552.7829 649.5224 z " fill="#716667" id="path3717" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 594.999 649.8039 L 596.0151 650.0863 L 594.999 649.8039 z " fill="#434749" id="path3718" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 70.10305 650.6494 L 71.11932 650.9318 L 70.10305 650.6494 z " fill="#5d5e66" id="path3719" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 73.15478 650.6494 L 74.17105 650.9318 L 73.15478 650.6494 z " fill="#959a9c" id="path3720" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.3443 650.6494 L 144.3606 650.9318 L 143.3443 650.6494 z " fill="#53575a" id="path3721" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 650.3679 L 282.7057 651.2134 L 281.1799 650.3679 z " fill="#93aca4" id="path3722" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 563.4639 650.3679 L 569.5674 655.4409 L 563.4639 650.3679 z " fill="#2b332f" id="path3723" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 572.6192 650.3679 L 574.145 651.2134 L 572.6192 650.3679 z " fill="#8a9697" id="path3724" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 596.5247 650.6494 L 597.541 650.9318 L 596.5247 650.6494 z " fill="#888d90" id="path3725" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -69.76789 651.2134 L -49.93172 657.9774 L -69.76789 651.2134 z " fill="#4f5058" id="path3726" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -48.40585 651.2134 L -46.88 652.0589 L -48.40585 651.2134 z " fill="#63736d" id="path3727" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.93025 651.2134 L 64.50778 652.0589 L 59.93025 651.2134 z " fill="#413b45" id="path3728" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 65.52552 651.4949 L 66.54178 651.7773 L 65.52552 651.4949 z " fill="#adaeb8" id="path3729" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 651.2134 L 175.8955 657.1319 L 175.8955 651.2134 z " fill="#63736d" id="path3730" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 651.2134 L 284.2316 652.0589 L 282.7057 651.2134 z " fill="#575f5b" id="path3731" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 651.2134 L 484.1193 652.0589 L 482.5934 651.2134 z " fill="#83888b" id="path3732" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.895 651.2134 L 531.4209 652.0589 L 529.895 651.2134 z " fill="#74787b" id="path3733" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 601.1023 651.4949 L 602.1186 651.7773 L 601.1023 651.4949 z " fill="#4c5450" id="path3734" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 54.84452 652.3404 L 55.86079 652.6228 L 54.84452 652.3404 z " fill="#736c77" id="path3735" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 652.0589 L 217.0939 657.1319 L 200.3094 652.0589 z " fill="#74787b" id="path3736" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 218.1115 652.3404 L 219.1277 652.6228 L 218.1115 652.3404 z " fill="#53575a" id="path3737" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 652.0589 L 287.2833 652.9044 L 285.7574 652.0589 z " fill="#74787b" id="path3738" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 507.0071 652.0589 L 508.533 652.9044 L 507.0071 652.0589 z " fill="#63686a" id="path3739" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.5583 652.6228 L 540.0679 653.1859 L 539.5583 652.6228 z " fill="#b5babd" id="path3740" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 574.145 652.0589 L 575.6709 652.9044 L 574.145 652.0589 z " fill="#888d90" id="path3741" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 604.154 652.3404 L 605.1703 652.6228 L 604.154 652.3404 z " fill="#53575a" id="path3742" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.21521 653.1859 L 48.23139 653.4683 L 47.21521 653.1859 z " fill="#63686a" id="path3743" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 652.9044 L 53.82679 653.7499 L 49.24913 652.9044 z " fill="#a4a9ac" id="path3744" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 652.9044 L 107.2319 653.7499 L 105.706 652.9044 z " fill="#92a39c" id="path3745" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 652.9044 L 186.5765 653.7499 L 185.0508 652.9044 z " fill="#595a63" id="path3746" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 652.9044 L 290.3351 653.7499 L 288.8092 652.9044 z " fill="#6a7676" id="path3747" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 607.2058 653.1859 L 608.222 653.4683 L 607.2058 653.1859 z " fill="#63736d" id="path3748" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 1.947518 653.7499 L 3.473389 654.5954 L 1.947518 653.7499 z " fill="#82928c" id="path3749" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 653.7499 L 105.706 654.5954 L 104.1802 653.7499 z " fill="#8a9697" id="path3750" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 653.7499 L 157.5852 659.6684 L 154.5336 653.7499 z " fill="#7a8686" id="path3751" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 653.7499 L 188.1024 654.5954 L 186.5765 653.7499 z " fill="#6a7676" id="path3752" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 653.7499 L 293.3867 654.5954 L 291.8609 653.7499 z " fill="#63736d" id="path3753" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 653.7499 L 462.7572 654.5954 L 461.2313 653.7499 z " fill="#73837d" id="path3754" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 526.8433 653.7499 L 528.3692 654.5954 L 526.8433 653.7499 z " fill="#5d5e66" id="path3755" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.2055 653.7499 L 548.2055 659.6684 L 548.2055 653.7499 z " fill="#c8c5ca" id="path3756" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 558.8864 653.7499 L 560.4122 654.5954 L 558.8864 653.7499 z " fill="#777c7e" id="path3757" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 576.1789 654.3138 L 576.6886 654.877 L 576.1789 654.3138 z " fill="#6a7676" id="path3758" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 610.2575 654.0314 L 611.2738 654.3138 L 610.2575 654.0314 z " fill="#686c6f" id="path3759" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 629.076 653.7499 L 630.6018 654.5954 L 629.076 653.7499 z " fill="#63686a" id="path3760" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -36.19897 654.5954 L -34.67311 655.4409 L -36.19897 654.5954 z " fill="#63736d" id="path3761" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 654.5954 L 47.72332 655.4409 L 46.19746 654.5954 z " fill="#6a7676" id="path3762" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 654.5954 L 104.1802 655.4409 L 102.6542 654.5954 z " fill="#92a39c" id="path3763" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 654.5954 L 126.8438 663.896 L 115.3067 675.613 L 128.3818 679.8608 L 131.4945 674.042 L 136.2231 654.5954 z " fill="#f0f6f8" id="path3764" stroke="none" style="fill:#f0f6f8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 654.5954 L 180.4732 658.8229 L 180.4732 654.5954 z " fill="#596465" id="path3765" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 654.5954 L 246.085 655.4409 L 244.5593 654.5954 z " fill="#6a7676" id="path3766" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 654.5954 L 256.7661 661.3594 L 236.93 655.4409 L 252.1672 663.7057 L 259.8896 665.1625 L 261.1102 658.5684 L 246.085 654.5954 z " fill="#f8feff" id="path3767" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 654.5954 L 252.1885 655.4409 L 250.6627 654.5954 z " fill="#74787b" id="path3768" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 654.5954 L 461.2313 655.4409 L 459.7054 654.5954 z " fill="#9aaba5" id="path3769" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 630.6018 654.5954 L 632.1277 655.4409 L 630.6018 654.5954 z " fill="#97a4a4" id="path3770" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -74.34548 655.4409 L -72.81962 656.2864 L -74.34548 655.4409 z " fill="#a19ea2" id="path3771" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -33.14726 655.4409 L -31.6214 656.2864 L -33.14726 655.4409 z " fill="#73837d" id="path3772" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -2.630048 655.4409 L -1.1042 656.2864 L -2.630048 655.4409 z " fill="#82928c" id="path3773" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.72332 655.4409 L 49.24913 656.2864 L 47.72332 655.4409 z " fill="#596465" id="path3774" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 655.4409 L 137.7491 657.9774 L 137.7491 655.4409 z " fill="#45453d" id="path3775" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 655.4409 L 149.956 659.6684 L 149.956 655.4409 z " fill="#53575a" id="path3776" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 655.4409 L 200.3094 661.3594 L 189.6282 655.4409 z " fill="#82928c" id="path3777" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 655.4409 L 301.0161 656.2864 L 299.4902 655.4409 z " fill="#7a8686" id="path3778" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 655.4409 L 505.4813 656.2864 L 503.9554 655.4409 z " fill="#6a7676" id="path3779" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 655.4409 L 526.8433 656.2864 L 525.3175 655.4409 z " fill="#7a8686" id="path3780" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 596.5247 655.7225 L 597.541 656.0049 L 596.5247 655.7225 z " fill="#74787b" id="path3781" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 598.5588 655.4409 L 597.0329 658.8229 L 598.5588 655.4409 z " fill="#c7d4d5" id="path3782" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -30.09554 656.2864 L -28.56968 657.1319 L -30.09554 656.2864 z " fill="#9aaba5" id="path3783" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 11.10268 656.2864 L 17.20612 657.1319 L 11.10268 656.2864 z " fill="#7a8686" id="path3784" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 33.99058 656.2864 L 41.61988 659.6684 L 33.99058 656.2864 z " fill="#686c6f" id="path3785" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 656.2864 L 95.02496 674.8875 L 81.29224 687.5701 L 109.9251 665.587 L 119.4387 656.2864 z " fill="#6a7676" id="path3786" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 656.2864 L 223.1971 663.0505 L 226.2489 663.0505 L 223.1971 656.2864 z " fill="#83888b" id="path3787" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 656.2864 L 243.0334 657.1319 L 241.5076 656.2864 z " fill="#595a63" id="path3788" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 656.2864 L 250.6627 657.1319 L 249.1368 656.2864 z " fill="#82928c" id="path3789" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 656.2864 L 304.0679 657.1319 L 302.5419 656.2864 z " fill="#83888b" id="path3790" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 542.61 656.8504 L 543.1196 657.4135 L 542.61 656.8504 z " fill="#aeb3b5" id="path3791" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 561.9381 656.2864 L 561.9381 662.2049 C 565.6825 660.5554 564.6754 658.155 561.9381 656.2864 z " fill="#c7cdcf" id="path3792" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 577.7049 656.8504 L 578.2145 657.4135 L 577.7049 656.8504 z " fill="#716667" id="path3793" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -7.207637 657.1319 L -5.681778 657.9774 L -7.207637 657.1319 z " fill="#82928c" id="path3794" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.016996 657.4135 L 7.033207 657.6959 L 6.016996 657.4135 z " fill="#777c7e" id="path3795" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -8.733496 659.6684 L -8.733496 661.3594 L 9.576826 660.6568 L 29.41301 662.2049 C 18.55803 654.2513 5.612635 659.0419 -8.733496 659.6684 z " fill="#f8feff" id="path3796" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 18.73199 657.1319 L 20.25784 657.9774 L 18.73199 657.1319 z " fill="#888d90" id="path3797" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 657.1319 L 146.9043 664.7415 C 150.902 662.9862 150.3801 659.5027 148.4301 657.1319 z " fill="#8a9697" id="path3798" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 657.1319 L 244.5593 657.9774 L 243.0334 657.1319 z " fill="#888d90" id="path3799" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 657.1319 L 252.1885 657.9774 L 250.6627 657.1319 z " fill="#63686a" id="path3800" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 260.8357 657.4135 L 261.8518 657.6959 L 260.8357 657.4135 z " fill="#434749" id="path3801" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 657.1319 L 307.1196 657.9774 L 305.5937 657.1319 z " fill="#8a9697" id="path3802" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 657.1319 L 467.3348 657.9774 L 465.8089 657.1319 z " fill="#5d5e66" id="path3803" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 633.6535 657.1319 L 635.1795 657.9774 L 633.6535 657.1319 z " fill="#888d90" id="path3804" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -49.93172 657.9774 L -33.14726 663.896 L -49.93172 657.9774 z " fill="#857f8a" id="path3805" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -25.51796 657.9774 L -23.99209 658.8229 L -25.51796 657.9774 z " fill="#73837d" id="path3806" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 1.439407 658.259 L 2.455629 658.5414 L 1.439407 658.259 z " fill="#8f9099" id="path3807" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 21.78371 657.9774 L 23.30956 658.8229 L 21.78371 657.9774 z " fill="#959a9c" id="path3808" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 657.9774 L 99.6025 658.8229 L 98.07669 657.9774 z " fill="#73837d" id="path3809" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.9295 658.5414 L 178.4391 659.1045 L 177.9295 658.5414 z " fill="#888d90" id="path3810" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 657.9774 L 241.5076 658.8229 L 239.9816 657.9774 z " fill="#596465" id="path3811" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 657.9774 L 253.7144 658.8229 L 252.1885 657.9774 z " fill="#6a7676" id="path3812" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 657.9774 L 310.1711 658.8229 L 308.6453 657.9774 z " fill="#82928c" id="path3813" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 543.6278 657.9774 L 543.6278 660.5139 L 543.6278 657.9774 z " fill="#484c4e" id="path3814" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 564.9899 657.9774 L 564.9899 662.2049 L 564.9899 657.9774 z " fill="#373b3d" id="path3815" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 589.9116 658.5414 L 590.4213 659.1045 L 589.9116 658.5414 z " fill="#888d90" id="path3816" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -66.71617 658.8229 L -65.19032 659.6684 L -66.71617 658.8229 z " fill="#777c7e" id="path3817" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -5.681778 658.8229 L -1.1042 659.6684 L -5.681778 658.8229 z " fill="#736c77" id="path3818" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.55089 658.8229 L 98.07669 659.6684 L 96.55089 658.8229 z " fill="#9aaba5" id="path3819" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.7313 659.3869 L 137.241 659.95 L 136.7313 659.3869 z " fill="#888d90" id="path3820" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 658.8229 L 180.4732 663.0505 L 180.4732 658.8229 z " fill="#82928c" id="path3821" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 658.8229 L 240.1479 673.1965 L 247.6109 685.0336 C 246.5841 677.3826 242.0721 664.5352 232.3523 658.8229 z " fill="#6a7676" id="path3822" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 658.8229 L 243.0334 659.6684 L 241.5076 658.8229 z " fill="#73837d" id="path3823" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 658.8229 L 255.2402 659.6684 L 253.7144 658.8229 z " fill="#91988e" id="path3824" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 658.8229 L 262.8695 663.896 L 262.8695 658.8229 z " fill="#484c4e" id="path3825" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 658.8229 L 313.2229 659.6684 L 311.6971 658.8229 z " fill="#63736d" id="path3826" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 658.8229 L 455.128 659.6684 L 453.602 658.8229 z " fill="#6a7676" id="path3827" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 658.8229 L 525.3175 661.3594 L 525.3175 658.8229 z " fill="#9aaba5" id="path3828" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 579.2307 659.3869 L 579.7403 659.95 L 579.2307 659.3869 z " fill="#595a63" id="path3829" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 633.6535 660.5139 L 636.7053 658.8229 L 633.6535 660.5139 z " fill="#373b3d" id="path3830" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -65.19032 659.6684 L -63.66445 660.5139 L -65.19032 659.6684 z " fill="#a0a5a8" id="path3831" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -20.94037 659.6684 L -19.41452 660.5139 L -20.94037 659.6684 z " fill="#73837d" id="path3832" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -13.31107 659.6684 L -11.78521 660.5139 L -13.31107 659.6684 z " fill="#777c7e" id="path3833" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.36128 659.6684 L 27.88714 660.5139 L 26.36128 659.6684 z " fill="#888d90" id="path3834" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 41.61988 659.6684 L 59.93025 668.1235 L 41.61988 659.6684 z " fill="#74787b" id="path3835" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 659.6684 L 174.3697 672.351 L 169.7921 659.6684 z " fill="#53575a" id="path3836" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 659.6684 L 244.5593 660.5139 L 243.0334 659.6684 z " fill="#6a7676" id="path3837" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 659.6684 L 252.1885 660.5139 L 250.6627 659.6684 z " fill="#888d90" id="path3838" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 661.3594 L 256.7661 659.6684 L 253.7144 661.3594 z " fill="#989d9f" id="path3839" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 659.6684 L 316.2746 660.5139 L 314.7488 659.6684 z " fill="#63736d" id="path3840" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 659.6684 L 453.602 660.5139 L 452.0762 659.6684 z " fill="#83888b" id="path3841" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.3778 659.6684 L 500.9038 660.5139 L 499.3778 659.6684 z " fill="#9d9c94" id="path3842" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.2055 659.6684 L 548.2055 662.2049 L 548.2055 659.6684 z " fill="#53575a" id="path3843" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 593.9811 659.6684 L 595.507 660.5139 L 593.9811 659.6684 z " fill="#74787b" id="path3844" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 606.1881 659.6684 L 609.2397 662.2049 L 606.1881 659.6684 z " fill="#73837d" id="path3845" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 631.6196 659.95 L 632.6357 660.2324 L 631.6196 659.95 z " fill="#7a8686" id="path3846" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -13.31107 660.5139 L -4.155919 662.2049 L -13.31107 660.5139 z " fill="#d1e3dc" id="path3847" stroke="none" style="fill:#d1e3dc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 0.42167 660.5139 L 11.10268 661.3594 L 0.42167 660.5139 z " fill="#6a7676" id="path3848" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 11.10268 660.5139 L 15.68025 661.3594 L 11.10268 660.5139 z " fill="#bbcdc6" id="path3849" stroke="none" style="fill:#bbcdc6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 27.88714 660.5139 L 29.41301 661.3594 L 27.88714 660.5139 z " fill="#959a9c" id="path3850" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 660.5139 L 136.2231 663.0505 L 136.2231 660.5139 z " fill="#3c3837" id="path3851" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 660.5139 L 206.4127 664.7415 L 200.3094 660.5139 z " fill="#edf2f5" id="path3852" stroke="none" style="fill:#edf2f5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 660.5139 L 246.085 661.3594 L 244.5593 660.5139 z " fill="#6a7676" id="path3853" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 660.5139 L 319.3263 661.3594 L 317.8005 660.5139 z " fill="#73837d" id="path3854" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 450.5503 660.5139 L 452.0762 661.3594 L 450.5503 660.5139 z " fill="#92a39c" id="path3855" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 530.9128 660.7955 L 531.929 661.0779 L 530.9128 660.7955 z " fill="#74787b" id="path3856" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 587.8778 660.5139 L 589.4036 661.3594 L 587.8778 660.5139 z " fill="#82928c" id="path3857" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 592.4553 660.5139 L 593.9811 661.3594 L 592.4553 660.5139 z " fill="#5d5e66" id="path3858" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 602.6282 660.7955 L 603.6444 661.0779 L 602.6282 660.7955 z " fill="#73837d" id="path3859" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -60.61273 661.3594 L -59.08687 662.2049 L -60.61273 661.3594 z " fill="#a19ea2" id="path3860" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -16.36279 661.3594 L -11.78521 662.2049 L -16.36279 661.3594 z " fill="#7a8686" id="path3861" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -3.138171 661.641 L -2.121948 661.9234 L -3.138171 661.641 z " fill="#53575a" id="path3862" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 16.69801 661.641 L 17.71423 661.9234 L 16.69801 661.641 z " fill="#83888b" id="path3863" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.36128 663.0505 L 32.46473 662.2049 L 26.36128 663.0505 z " fill="#cad4cf" id="path3864" stroke="none" style="fill:#cad4cf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 661.3594 L 95.02496 662.2049 L 93.49916 661.3594 z " fill="#7a8686" id="path3865" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 661.3594 L 130.1198 662.2049 L 128.5939 661.3594 z " fill="#53575a" id="path3866" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 205.9046 661.641 L 206.9209 661.9234 L 205.9046 661.641 z " fill="#394444" id="path3867" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 661.3594 L 331.5333 669.8145 C 324.5768 665.6901 312.576 662.276 302.5419 661.3594 z " fill="#373b3d" id="path3868" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 661.3594 L 322.3781 662.2049 L 320.8523 661.3594 z " fill="#92a39c" id="path3869" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 661.3594 L 450.5503 662.2049 L 449.0245 661.3594 z " fill="#9aaba5" id="path3870" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 661.3594 L 499.3778 662.2049 L 497.852 661.3594 z " fill="#8a9697" id="path3871" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 517.6883 661.3594 L 519.214 662.2049 L 517.6883 661.3594 z " fill="#736c77" id="path3872" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 535.9985 661.3594 L 540.576 663.0505 L 535.9985 661.3594 z " fill="#53575a" id="path3873" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 559.3944 661.9234 L 559.9042 662.4865 L 559.3944 661.9234 z " fill="#b0b5b7" id="path3874" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 569.0593 661.641 L 570.0754 661.9234 L 569.0593 661.641 z " fill="#484c4e" id="path3875" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 580.7566 661.9234 L 581.2661 662.4865 L 580.7566 661.9234 z " fill="#434749" id="path3876" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 21.78371 662.2049 L 26.36128 663.0505 L 21.78371 662.2049 z " fill="#63736d" id="path3877" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 30.93886 663.896 L 33.99058 662.2049 L 30.93886 663.896 z " fill="#596465" id="path3878" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 662.2049 L 204.8869 665.587 L 206.4127 662.2049 z " fill="#807b7a" id="path3879" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 662.2049 L 250.6627 663.0505 L 249.1368 662.2049 z " fill="#96a3a3" id="path3880" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 666.4325 L 285.7574 663.0505 C 280.0583 661.6325 276.9884 663.2432 276.6022 666.4325 z " fill="#74787b" id="path3881" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 662.2049 L 467.3348 663.0505 L 458.1796 662.2049 z " fill="#83888b" id="path3882" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 467.3348 662.2049 L 478.0159 663.0505 L 467.3348 662.2049 z " fill="#aeb3b5" id="path3883" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.6617 662.7689 L 546.1714 663.332 L 545.6617 662.7689 z " fill="#4c5450" id="path3884" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 568.0416 662.2049 L 568.0416 665.587 L 571.0933 662.2049 L 568.0416 662.2049 z " fill="#888d90" id="path3885" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 590.9295 662.2049 L 593.9811 663.896 L 590.9295 662.2049 z " fill="#a4b5ae" id="path3886" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 596.5247 662.4865 L 597.541 662.7689 L 596.5247 662.4865 z " fill="#45453d" id="path3887" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -56.03515 663.0505 L -54.5093 663.896 L -56.03515 663.0505 z " fill="#a19ea2" id="path3888" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 663.0505 L 134.6973 665.587 L 134.6973 663.0505 z " fill="#807b7a" id="path3889" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.6105 663.6144 L 189.1202 664.1775 L 188.6105 663.6144 z " fill="#434749" id="path3890" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 663.0505 L 203.3611 663.896 L 201.8352 663.0505 z " fill="#6a7676" id="path3891" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 286.7752 663.332 L 287.7915 663.6144 L 286.7752 663.332 z " fill="#63686a" id="path3892" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 663.0505 L 326.9558 663.896 L 325.4298 663.0505 z " fill="#575f5b" id="path3893" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 663.0505 L 447.4987 663.896 L 439.8693 663.0505 z " fill="#b3c4bd" id="path3894" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 663.0505 L 488.6968 663.896 L 479.5417 663.0505 z " fill="#575f5b" id="path3895" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 488.6968 663.0505 L 497.852 663.896 L 488.6968 663.0505 z " fill="#8a9697" id="path3896" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 540.576 663.0505 L 542.102 663.896 L 540.576 663.0505 z " fill="#63686a" id="path3897" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.5157 675.733 L 574.9003 668.1362 L 570.8461 664.339 L 570.2068 668.5479 L 566.5157 675.733 z " fill="#d0d5d8" id="path3898" stroke="none" style="fill:#d0d5d8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 589.4036 663.0505 L 592.4553 664.7415 L 589.4036 663.0505 z " fill="#434749" id="path3899" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 603.1363 665.587 L 606.1881 663.0505 L 603.1363 665.587 z " fill="#9d9c94" id="path3900" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -33.14726 663.896 L -22.46624 668.1235 L -33.14726 663.896 z " fill="#83888b" id="path3901" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 3.473389 663.896 L 14.1544 665.587 L 3.473389 663.896 z " fill="#33413c" id="path3902" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 663.896 L 91.97323 664.7415 L 90.44743 663.896 z " fill="#596465" id="path3903" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 190.1365 664.4599 L 190.6461 665.023 L 190.1365 664.4599 z " fill="#807b7a" id="path3904" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 663.896 L 204.8869 664.7415 L 203.3611 663.896 z " fill="#63686a" id="path3905" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 663.896 L 259.8178 667.278 L 261.3437 663.896 z " fill="#a6bab9" id="path3906" stroke="none" style="fill:#a6bab9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 663.896 L 330.0074 664.7415 L 328.4816 663.896 z " fill="#73837d" id="path3907" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 433.2578 664.1775 L 434.274 664.4599 L 433.2578 664.1775 z " fill="#82928c" id="path3908" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 435.2917 663.896 L 441.3952 664.7415 L 435.2917 663.896 z " fill="#262e2a" id="path3909" stroke="none" style="fill:#262e2a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.895 663.896 L 534.4727 664.7415 L 529.895 663.896 z " fill="#8f9099" id="path3910" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 542.102 663.896 L 543.6278 664.7415 L 542.102 663.896 z " fill="#82928c" id="path3911" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.1537 663.896 L 546.6794 667.278 L 545.1537 663.896 z " fill="#989d9f" id="path3912" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 550.2393 664.4599 L 550.7489 665.023 L 550.2393 664.4599 z " fill="#484c4e" id="path3913" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -51.45758 664.7415 L -49.93172 665.587 L -51.45758 664.7415 z " fill="#857f8a" id="path3914" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 664.7415 L 146.9043 668.969 L 146.9043 664.7415 z " fill="#b7c3c4" id="path3915" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 664.7415 L 148.4301 667.278 L 148.4301 664.7415 z " fill="#434749" id="path3916" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.1288 665.023 L 161.1451 665.3054 L 160.1288 665.023 z " fill="#333739" id="path3917" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 664.7415 L 256.7661 665.587 L 255.2402 664.7415 z " fill="#575f5b" id="path3918" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.1025 665.023 L 425.1188 665.3054 L 424.1025 665.023 z " fill="#82928c" id="path3919" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 555.8346 664.7415 L 557.3605 665.587 L 555.8346 664.7415 z " fill="#7a8686" id="path3920" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 561.9381 664.7415 L 561.9381 673.1965 L 561.9381 664.7415 z " fill="#a4b5ae" id="path3921" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -48.40585 665.587 L -46.88 666.4325 L -48.40585 665.587 z " fill="#5d5e66" id="path3922" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -4.155919 665.587 C 1.61489 674.3971 17.64099 678.4167 33.99058 678.8978 C 39.11747 679.0491 44.10398 678.3499 49.24913 678.6585 C 55.14206 679.0127 70.91795 682.6822 73.42035 678.3549 C 75.52294 674.721 61.70318 675.7389 58.40432 675.7305 C 35.25705 675.6679 17.48229 668.3425 -4.155919 665.587 z " fill="#f6fbfe" id="path3923" stroke="none" style="fill:#f6fbfe;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -1.1042 665.587 L 3.473389 666.4325 L -1.1042 665.587 z " fill="#736c77" id="path3924" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 12.62854 665.587 L 41.61988 670.66 L 12.62854 665.587 z " fill="#82928c" id="path3925" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 665.587 L 125.5421 666.4325 L 124.0163 665.587 z " fill="#63686a" id="path3926" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 665.587 C 156.5415 671.9705 153.8774 681.1358 162.1628 686.7246 C 162.1628 680.6826 166.3817 670.4469 159.111 665.587 z " fill="#f2f7f9" id="path3927" stroke="none" style="fill:#f2f7f9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 161.1451 666.1509 L 161.6547 666.714 L 161.1451 666.1509 z " fill="#b8bec0" id="path3928" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 665.587 L 195.7317 669.8145 L 191.1541 665.587 z " fill="#575f5b" id="path3929" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 665.587 L 246.085 669.8145 L 246.085 665.587 z " fill="#373b3d" id="path3930" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 298.9821 665.8685 L 299.9983 666.1509 L 298.9821 665.8685 z " fill="#53575a" id="path3931" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 665.587 L 334.5851 666.4325 L 333.0591 665.587 z " fill="#6a7676" id="path3932" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.4216 665.8685 L 414.4378 666.1509 L 413.4216 665.8685 z " fill="#a1b2ab" id="path3933" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 665.587 L 420.0331 666.4325 L 415.4556 665.587 z " fill="#63686a" id="path3934" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 512.0928 666.1509 L 512.6025 666.714 L 512.0928 666.1509 z " fill="#82928c" id="path3935" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.9807 666.1509 L 535.4905 666.714 L 534.9807 666.1509 z " fill="#a8aeb0" id="path3936" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 552.2749 665.8685 L 553.291 666.1509 L 552.2749 665.8685 z " fill="#7a8686" id="path3937" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.5157 665.587 L 569.5674 668.1235 L 566.5157 665.587 z " fill="#333739" id="path3938" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 595.507 665.587 L 601.6105 666.4325 L 595.507 665.587 z " fill="#342c31" id="path3939" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -46.88 666.4325 L -45.35413 667.278 L -46.88 666.4325 z " fill="#736c77" id="path3940" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 3.473389 666.4325 L 4.999236 667.278 L 3.473389 666.4325 z " fill="#90878d" id="path3941" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.3957 666.4325 L 88.9215 667.278 L 87.3957 666.4325 z " fill="#7a8686" id="path3942" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 158.0933 666.9964 L 158.603 667.5595 L 158.0933 666.9964 z " fill="#888d90" id="path3943" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 666.4325 L 276.6022 675.733 L 276.6022 666.4325 z " fill="#b5b4ac" id="path3944" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 666.4325 L 336.1108 667.278 L 334.5851 666.4325 z " fill="#596465" id="path3945" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 666.4325 L 410.878 667.278 L 406.3003 666.4325 z " fill="#8a9697" id="path3946" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 537.0162 666.714 L 538.0325 666.9964 L 537.0162 666.714 z " fill="#3c3837" id="path3947" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 575.6709 666.4325 L 575.6709 668.969 L 575.6709 666.4325 z " fill="#9d9c94" id="path3948" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -45.35413 667.278 L -43.82828 668.1235 L -45.35413 667.278 z " fill="#989d9f" id="path3949" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.525107 667.278 L 8.050966 668.1235 L 6.525107 667.278 z " fill="#959a9c" id="path3950" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 667.278 L 143.8525 677.424 C 147.0735 674.6017 148.6955 670.2372 145.3783 667.278 z " fill="#888d90" id="path3951" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.6709 667.8419 L 163.1805 668.405 L 162.6709 667.8419 z " fill="#9d9c94" id="path3952" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.1633 667.5595 L 222.1795 667.8419 L 221.1633 667.5595 z " fill="#857f8a" id="path3953" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 306.6114 667.5595 L 307.6276 667.8419 L 306.6114 667.5595 z " fill="#413b45" id="path3954" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.2664 667.5595 L 405.2827 667.8419 L 404.2664 667.5595 z " fill="#4c5450" id="path3955" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 537.0162 667.5595 L 538.0325 667.8419 L 537.0162 667.5595 z " fill="#a9b1b9" id="path3956" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 571.0933 667.278 L 571.0933 669.8145 L 571.0933 667.278 z " fill="#716667" id="path3957" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 590.9295 667.278 L 592.4553 668.1235 L 590.9295 667.278 z " fill="#5c5a5d" id="path3958" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -22.46624 668.1235 L -17.88865 669.8145 L -22.46624 668.1235 z " fill="#736c77" id="path3959" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -2.630048 668.1235 L -1.1042 668.969 L -2.630048 668.1235 z " fill="#73837d" id="path3960" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 9.576826 668.1235 L 11.10268 668.969 L 9.576826 668.1235 z " fill="#989d9f" id="path3961" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 70.61125 668.1235 L 72.13704 668.969 L 70.61125 668.1235 z " fill="#596465" id="path3962" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 133.1715 668.1235 L 133.1715 670.66 L 133.1715 668.1235 z " fill="#686c6f" id="path3963" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 713.7808 C 259.8178 704.7254 261.3452 695.7833 261.3437 686.7246 C 261.3437 682.0337 261.9555 677.7961 252.1885 676.5785 L 253.7144 697.7162 C 244.0161 692.2415 241.2482 683.4931 236.225 676.5794 C 234.0444 673.5787 231.5772 669.6302 225.0054 668.9233 C 216.5154 668.0093 220.8336 678.7591 222.5532 680.8061 C 228.6614 688.0766 236.8231 695.0663 244.2556 701.9437 C 248.7432 706.0976 252.8843 710.7183 259.8178 713.7808 z " fill="#f8feff" id="path3964" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 668.1235 L 247.6109 670.66 L 247.6109 668.1235 z " fill="#6a7676" id="path3965" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 668.1235 L 340.6884 668.969 L 339.1625 668.1235 z " fill="#93aca4" id="path3966" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 668.1235 L 401.7228 668.969 L 400.1969 668.1235 z " fill="#6a7676" id="path3967" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 668.1235 C 444.7124 669.4924 450.6388 670.0825 455.128 668.1235 L 439.8693 668.1235 z " fill="#413b45" id="path3968" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 542.61 668.6874 L 543.1196 669.2505 L 542.61 668.6874 z " fill="#989d9f" id="path3969" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -40.77656 668.969 L -39.25069 669.8145 L -40.77656 668.969 z " fill="#90878d" id="path3970" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 12.62854 668.969 L 14.1544 669.8145 L 12.62854 668.969 z " fill="#a19ea2" id="path3971" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.13704 668.969 L 73.66298 669.8145 L 72.13704 668.969 z " fill="#6a7676" id="path3972" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 84.34397 668.969 L 85.86977 669.8145 L 84.34397 668.969 z " fill="#82928c" id="path3973" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.5675 669.5329 L 157.0771 670.096 L 156.5675 669.5329 z " fill="#6a7676" id="path3974" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 313.2229 668.969 L 314.7488 669.8145 L 313.2229 668.969 z " fill="#8f9099" id="path3975" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 340.6884 668.969 L 342.2142 669.8145 L 340.6884 668.969 z " fill="#596465" id="path3976" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 668.969 L 413.9298 670.66 L 397.1453 668.969 z " fill="#413b45" id="path3977" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 668.969 L 464.2831 669.8145 L 453.602 668.969 z " fill="#777c7e" id="path3978" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 670.66 L 474.9641 668.969 L 461.2313 670.66 z " fill="#434749" id="path3979" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 554.3088 668.969 L 554.3088 671.5055 L 554.3088 668.969 z " fill="#b8bec0" id="path3980" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 586.3518 668.969 L 586.3518 671.5055 L 586.3518 668.969 z " fill="#53575a" id="path3981" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 630.6018 668.969 L 653.4897 669.8145 L 630.6018 668.969 z " fill="#d9e3de" id="path3982" stroke="none" style="fill:#d9e3de;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -17.88865 669.8145 L -7.207637 674.8875 L -17.88865 669.8145 z " fill="#777c7e" id="path3983" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 16.69801 670.096 L 17.71423 670.3784 L 16.69801 670.096 z " fill="#736c77" id="path3984" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 671.5055 L 47.72332 671.5055 L 38.56816 671.5055 z " fill="#4d4b4f" id="path3985" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 73.66298 669.8145 L 75.18878 670.66 L 73.66298 669.8145 z " fill="#82928c" id="path3986" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 669.8145 L 120.9646 670.66 L 119.4387 669.8145 z " fill="#686c6f" id="path3987" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 195.7317 669.8145 L 198.7834 673.1965 L 195.7317 669.8145 z " fill="#33322b" id="path3988" stroke="none" style="fill:#33322b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 669.8145 L 490.2226 671.5055 L 473.4382 669.8145 z " fill="#777c7e" id="path3989" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 522.2657 669.8145 L 523.7915 670.66 L 522.2657 669.8145 z " fill="#63736d" id="path3990" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 569.5674 669.8145 L 571.0933 670.66 L 569.5674 669.8145 z " fill="#736c77" id="path3991" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 574.145 669.8145 L 575.6709 670.66 L 574.145 669.8145 z " fill="#63686a" id="path3992" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 612.2915 669.8145 L 618.3949 670.66 L 612.2915 669.8145 z " fill="#a4b5ae" id="path3993" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 618.3949 669.8145 L 630.6018 670.66 L 618.3949 669.8145 z " fill="#6a7676" id="path3994" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 647.3862 669.8145 L 655.0156 670.66 L 647.3862 669.8145 z " fill="#394444" id="path3995" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 655.0156 669.8145 L 659.5932 670.66 L 655.0156 669.8145 z " fill="#92a39c" id="path3996" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 0.42167 670.66 L 1.947518 671.5055 L 0.42167 670.66 z " fill="#63686a" id="path3997" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 21.27558 670.9415 L 22.29182 671.2239 L 21.27558 670.9415 z " fill="#5c5a5d" id="path3998" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 75.18878 670.66 L 76.71471 671.5055 L 75.18878 670.66 z " fill="#82928c" id="path3999" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 218.6196 670.66 L 218.6196 678.2695 L 218.6196 670.66 z " fill="#333739" id="path4000" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 670.66 L 346.7918 671.5055 L 345.266 670.66 z " fill="#9facad" id="path4001" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 419.525 670.9415 L 420.5413 671.2239 L 419.525 670.9415 z " fill="#a19ea2" id="path4002" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 670.66 L 426.1365 671.5055 L 421.5591 670.66 z " fill="#5d5e66" id="path4003" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.0335 670.9415 L 480.0497 671.2239 L 479.0335 670.9415 z " fill="#33413c" id="path4004" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 672.351 L 493.2743 670.66 L 487.1709 672.351 z " fill="#53575a" id="path4005" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 552.7829 670.66 L 552.7829 674.042 L 552.7829 670.66 z " fill="#595a63" id="path4006" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 572.6192 670.66 L 574.145 671.5055 L 572.6192 670.66 z " fill="#6a7676" id="path4007" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 606.1881 670.66 L 610.7655 671.5055 L 606.1881 670.66 z " fill="#9aaba5" id="path4008" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 663.6626 670.9415 L 664.6789 671.2239 L 663.6626 670.9415 z " fill="#7a8686" id="path4009" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 23.30956 671.5055 L 27.88714 672.351 L 23.30956 671.5055 z " fill="#a0a5a8" id="path4010" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 76.71471 671.5055 L 78.24051 672.351 L 76.71471 671.5055 z " fill="#92a39c" id="path4011" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 671.5055 L 131.6456 674.042 L 131.6456 671.5055 z " fill="#7a8686" id="path4012" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 671.5055 L 154.5336 676.5785 L 154.5336 671.5055 z " fill="#413b45" id="path4013" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 671.5055 L 162.1628 679.9606 L 162.1628 671.5055 z " fill="#888d90" id="path4014" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 671.5055 L 233.8783 672.351 L 232.3523 671.5055 z " fill="#686c6f" id="path4015" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 346.7918 671.5055 L 348.3177 672.351 L 346.7918 671.5055 z " fill="#82928c" id="path4016" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 428.6802 671.7871 L 429.6964 672.0695 L 428.6802 671.7871 z " fill="#a9b1b9" id="path4017" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 528.3692 671.5055 L 529.895 672.351 L 528.3692 671.5055 z " fill="#777c7e" id="path4018" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 578.2145 671.7871 L 579.2307 672.0695 L 578.2145 671.7871 z " fill="#333739" id="path4019" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 600.0846 671.5055 L 604.6623 672.351 L 600.0846 671.5055 z " fill="#92a39c" id="path4020" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 670.2741 671.5055 L 674.8517 672.351 L 670.2741 671.5055 z " fill="#6a7676" id="path4021" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -31.6214 672.351 L -30.09554 673.1965 L -31.6214 672.351 z " fill="#736c77" id="path4022" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 30.43075 672.6326 L 31.44697 672.915 L 30.43075 672.6326 z " fill="#777c7e" id="path4023" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 672.351 L 203.3611 676.5785 L 198.7834 672.351 z " fill="#53575a" id="path4024" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.3177 672.351 L 349.8435 673.1965 L 348.3177 672.351 z " fill="#6a7676" id="path4025" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 672.351 L 442.921 673.1965 L 438.3435 672.351 z " fill="#a4a9ac" id="path4026" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 443.9387 672.6326 L 444.955 672.915 L 443.9387 672.6326 z " fill="#595a63" id="path4027" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 576.3468 673.5051 C 572.906 674.4791 572.0318 678.7532 577.0213 677.3183 C 580.4147 676.3426 581.1944 672.1312 576.3468 673.5051 z " fill="#e8e5ea" id="path4028" stroke="none" style="fill:#e8e5ea;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 598.0505 672.6326 L 599.0668 672.915 L 598.0505 672.6326 z " fill="#45453d" id="path4029" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 674.8517 672.351 L 676.3776 673.1965 L 674.8517 672.351 z " fill="#9ca3b8" id="path4030" stroke="none" style="fill:#9ca3b8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 35.00833 673.4781 L 36.02455 673.7605 L 35.00833 673.4781 z " fill="#6a7676" id="path4031" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 673.1965 L 183.5249 679.115 L 186.5765 673.1965 L 183.5249 673.1965 z " fill="#807b7a" id="path4032" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 234.3863 673.7605 L 234.8961 674.3236 L 234.3863 673.7605 z " fill="#9facad" id="path4033" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 673.1965 L 351.3695 674.042 L 349.8435 673.1965 z " fill="#53575a" id="path4034" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 673.1965 L 452.0762 674.042 L 447.4987 673.1965 z " fill="#a8aeb0" id="path4035" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 574.145 673.1965 L 575.6709 674.042 L 574.145 673.1965 z " fill="#595a63" id="path4036" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 587.8778 673.1965 L 593.9811 674.042 L 587.8778 673.1965 z " fill="#50564d" id="path4037" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 603.1363 677.424 L 639.7569 674.042 C 631.4807 671.9646 609.9951 674.2432 603.1363 677.424 z " fill="#333739" id="path4038" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 668.2401 673.4781 L 669.2564 673.7605 L 668.2401 673.4781 z " fill="#686c6f" id="path4039" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 671.2919 673.4781 L 672.3082 673.7605 L 671.2919 673.4781 z " fill="#a8aeb0" id="path4040" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -94.18168 674.042 L -75.87134 674.8875 L -37.72483 674.8875 L -56.03515 674.042 L -94.18168 674.042 z " fill="#97a4a4" id="path4041" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -30.09554 675.733 L -23.99209 674.8875 L -30.09554 675.733 z " fill="#6a7676" id="path4042" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 39.58591 674.3236 L 40.60214 674.606 L 39.58591 674.3236 z " fill="#888d90" id="path4043" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 42.63762 674.3236 L 43.65385 674.606 L 42.63762 674.3236 z " fill="#434749" id="path4044" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.8612 674.042 L 116.3869 674.8875 L 114.8612 674.042 z " fill="#888d90" id="path4045" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 674.042 L 169.7921 676.5785 L 166.7404 674.042 z " fill="#7a8686" id="path4046" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 674.042 L 184.8539 690.9479 L 182.3728 695.2921 L 178.3355 690.1058 L 168.2662 677.424 C 168.2662 686.996 166.3712 699.8223 173.4755 708.7077 C 178.668 715.202 189.0392 720.4087 195.7317 726.4633 L 178.9473 721.3903 C 180.3526 727.8305 184.3075 733.7051 186.8421 739.9914 C 188.6319 744.4328 189.497 749.8889 193.0049 754.0133 C 195.1656 756.5548 202.119 755.9317 205.3187 754.3354 C 208.195 752.9006 207.9081 750.3953 207.9326 748.4456 C 207.9981 743.1206 208.4209 737.6959 207.7631 732.3819 C 206.5196 722.322 204.9205 712.0001 204.5756 701.9437 C 204.4765 699.0385 207.9797 696.3955 206.8874 693.4886 C 205.8406 690.7027 202.0931 688.2651 199.496 685.8791 C 195.1138 681.8536 191.3174 677.2854 185.0508 674.042 z " fill="#fefffc" id="path4047" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.0768 674.3236 L 335.0931 674.606 L 334.0768 674.3236 z " fill="#4d4b4f" id="path4048" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 674.042 L 459.7054 674.8875 L 455.128 674.042 z " fill="#a6b2b3" id="path4049" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 535.9985 674.042 L 542.102 674.8875 L 535.9985 674.042 z " fill="#737667" id="path4050" stroke="none" style="fill:#737667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 555.8346 674.042 L 561.9381 674.8875 L 555.8346 674.042 z " fill="#6a7676" id="path4051" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 582.2824 674.606 L 582.792 675.1691 L 582.2824 674.606 z " fill="#434749" id="path4052" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 659.085 674.3236 L 660.1012 674.606 L 659.085 674.3236 z " fill="#83888b" id="path4053" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -109.4403 674.8875 L -98.75924 675.733 L -109.4403 674.8875 z " fill="#53575a" id="path4054" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 5.762178 675.3103 L 7.288025 676.1558 L 5.762178 675.3103 z " fill="#74787b" id="path4055" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 674.8875 L 50.77506 675.733 L 46.19746 674.8875 z " fill="#a19ea2" id="path4056" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 674.8875 L 59.93025 675.733 L 50.77506 674.8875 z " fill="#595a63" id="path4057" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.93025 674.8875 L 72.13704 675.733 L 59.93025 674.8875 z " fill="#c3c5c2" id="path4058" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.6279 675.4515 L 131.1375 676.0146 L 130.6279 675.4515 z " fill="#a19ea2" id="path4059" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.7572 674.8875 L 467.3348 675.733 L 462.7572 674.8875 z " fill="#959a9c" id="path4060" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -118.5954 675.733 L -110.9661 676.5785 L -118.5954 675.733 z " fill="#3c3837" id="path4061" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.9121 676.297 L 236.4218 676.8601 L 235.9121 676.297 z " fill="#b3c4bd" id="path4062" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 341.7062 676.0146 L 342.7224 676.297 L 341.7062 676.0146 z " fill="#53575a" id="path4063" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 469.8784 676.0146 L 470.8946 676.297 L 469.8784 676.0146 z " fill="#6a7676" id="path4064" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.3778 675.733 L 523.7915 676.5785 L 499.3778 675.733 z " fill="#53575a" id="path4065" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 645.8604 675.733 L 650.4379 676.5785 L 645.8604 675.733 z " fill="#807b7a" id="path4066" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -123.1729 676.5785 L -118.5954 678.2695 L -123.1729 676.5785 z " fill="#484c4e" id="path4067" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.525107 676.5785 C 8.325613 680.336 12.21199 680.7739 18.73199 680.8061 L 6.525107 676.5785 z " fill="#f2f7f9" id="path4068" stroke="none" style="fill:#f2f7f9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 17.20612 676.5785 L 18.73199 677.424 L 17.20612 676.5785 z " fill="#97a4a4" id="path4069" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 676.5785 L 130.1198 679.9606 L 130.1198 676.5785 z " fill="#2c2b2e" id="path4070" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 676.5785 L 137.7491 691.7976 L 140.8008 691.7976 L 142.3266 676.5785 z " fill="#484c4e" id="path4071" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.5675 677.1425 L 157.0771 677.7056 L 156.5675 677.1425 z " fill="#97a4a4" id="path4072" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 676.5785 L 166.7404 688.4156 L 169.7921 676.5785 L 166.7404 676.5785 z " fill="#b5babd" id="path4073" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 676.5785 L 212.5162 684.1881 L 203.3611 676.5785 z " fill="#83888b" id="path4074" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 676.5785 L 279.6539 677.424 L 278.1281 676.5785 z " fill="#6a7676" id="path4075" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 676.5785 L 346.7918 677.424 L 345.266 676.5785 z " fill="#83888b" id="path4076" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 676.5785 L 474.9641 677.424 L 473.4382 676.5785 z " fill="#6a7676" id="path4077" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 639.7569 676.5785 L 644.3344 677.424 L 639.7569 676.5785 z " fill="#596465" id="path4078" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -78.92305 677.424 C -75.11328 680.0882 -63.86724 680.051 -59.08687 678.2695 L -78.92305 677.424 z " fill="#53575a" id="path4079" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 12.62854 677.424 L 14.1544 678.2695 L 12.62854 677.424 z " fill="#7a8686" id="path4080" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 19.74973 677.7056 L 20.76595 677.988 L 19.74973 677.7056 z " fill="#a8aeb0" id="path4081" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 170.3002 677.988 L 170.81 678.5511 L 170.3002 677.988 z " fill="#aeb3b5" id="path4082" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 677.424 L 191.1541 678.2695 L 189.6282 677.424 z " fill="#596465" id="path4083" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 677.424 L 250.6627 697.7162 L 253.7083 691.7942 L 252.1885 677.424 z " fill="#83888b" id="path4084" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 677.424 L 259.8178 678.2695 L 258.292 677.424 z " fill="#63686a" id="path4085" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 677.424 L 281.1799 678.2695 L 279.6539 677.424 z " fill="#63736d" id="path4086" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.4044 677.7056 L 472.4204 677.988 L 471.4044 677.7056 z " fill="#53575a" id="path4087" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 571.0933 677.424 L 572.6192 678.2695 L 571.0933 677.424 z " fill="#686c6f" id="path4088" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 593.9811 679.115 L 598.5588 677.424 L 593.9811 679.115 z " fill="#4c5450" id="path4089" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 636.1971 677.7056 L 637.2134 677.988 L 636.1971 677.7056 z " fill="#8f9099" id="path4090" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -110.9661 678.2695 L -106.3885 679.115 L -110.9661 678.2695 z " fill="#736c77" id="path4091" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.525107 678.2695 L 6.525107 680.8061 L 6.525107 678.2695 z " fill="#a0a5a8" id="path4092" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 14.1544 678.2695 L 15.68025 679.115 L 14.1544 678.2695 z " fill="#959a9c" id="path4093" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 23.30956 678.2695 L 30.93886 679.115 L 23.30956 678.2695 z " fill="#63686a" id="path4094" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 40.09401 678.2695 L 50.77506 679.115 L 40.09401 678.2695 z " fill="#b3c4bd" id="path4095" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 678.2695 L 122.4904 679.115 L 120.9646 678.2695 z " fill="#83888b" id="path4096" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.5675 678.8335 L 157.0771 679.3966 L 156.5675 678.8335 z " fill="#63686a" id="path4097" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 678.2695 L 282.7057 679.115 L 281.1799 678.2695 z " fill="#6a7676" id="path4098" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 353.9129 678.5511 L 354.9292 678.8335 L 353.9129 678.5511 z " fill="#434749" id="path4099" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 572.6192 678.2695 L 574.145 679.115 L 572.6192 678.2695 z " fill="#6a7676" id="path4100" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 575.6709 678.2695 L 577.1966 679.115 L 575.6709 678.2695 z " fill="#807b7a" id="path4101" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 586.3518 679.9606 L 593.9811 678.2695 L 586.3518 679.9606 z " fill="#73837d" id="path4102" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 630.0936 678.5511 L 631.1099 678.8335 L 630.0936 678.5511 z " fill="#686c6f" id="path4103" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -103.8454 679.3966 L -102.8282 679.679 L -103.8454 679.3966 z " fill="#857f8a" id="path4104" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -62.13859 679.115 L -52.98344 679.9606 L -62.13859 679.115 z " fill="#807b7a" id="path4105" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -54.5093 680.8061 L -46.88 679.115 L -54.5093 680.8061 z " fill="#434749" id="path4106" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.82679 679.115 L 58.40432 679.9606 L 53.82679 679.115 z " fill="#394444" id="path4107" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 58.40432 679.115 L 62.98185 679.9606 L 58.40432 679.115 z " fill="#83888b" id="path4108" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.13704 679.115 L 73.66298 679.9606 L 72.13704 679.115 z " fill="#888d90" id="path4109" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.4904 679.115 L 124.0163 679.9606 L 122.4904 679.115 z " fill="#596465" id="path4110" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.826 679.679 L 172.3358 680.2421 L 171.826 679.679 z " fill="#807b7a" id="path4111" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 679.115 L 181.999 686.7246 L 181.999 679.115 z " fill="#484c4e" id="path4112" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 679.115 L 261.3437 686.7246 L 261.3437 679.115 z " fill="#b8bec0" id="path4113" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 679.115 L 284.2316 679.9606 L 282.7057 679.115 z " fill="#73837d" id="path4114" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 679.115 L 362.0505 679.9606 L 360.5247 679.115 z " fill="#74787b" id="path4115" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.2491 679.3966 L 463.2653 679.679 L 462.2491 679.3966 z " fill="#63686a" id="path4116" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 528.3692 680.8061 L 534.4727 679.115 L 528.3692 680.8061 z " fill="#6a7676" id="path4117" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 549.7312 679.115 L 551.2571 679.9606 L 549.7312 679.115 z " fill="#5c5a5d" id="path4118" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.2055 682.4971 L 554.3088 679.115 L 548.2055 682.4971 z " fill="#989d9f" id="path4119" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 625.5162 679.3966 L 626.5323 679.679 L 625.5162 679.3966 z " fill="#74787b" id="path4120" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 661.1191 679.115 L 667.2223 679.9606 L 661.1191 679.115 z " fill="#63686a" id="path4121" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 667.2223 679.115 L 693.1621 679.9606 L 667.2223 679.115 z " fill="#171e1b" id="path4122" stroke="none" style="fill:#171e1b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 693.1621 679.115 L 697.7395 679.9606 L 693.1621 679.115 z " fill="#4c5450" id="path4123" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 697.7395 679.115 L 702.3172 679.9606 L 697.7395 679.115 z " fill="#9facad" id="path4124" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -97.74191 680.2421 L -96.72482 680.5245 L -97.74191 680.2421 z " fill="#83888b" id="path4125" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -49.93172 679.9606 L -40.77656 680.8061 L -49.93172 679.9606 z " fill="#888d90" id="path4126" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -43.82828 681.6516 L -37.72483 679.9606 L -43.82828 681.6516 z " fill="#50564d" id="path4127" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 65.52552 680.2421 L 66.54178 680.5245 L 65.52552 680.2421 z " fill="#b5b4ac" id="path4128" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 679.9606 L 125.5421 680.8061 L 124.0163 679.9606 z " fill="#53575a" id="path4129" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 679.9606 L 162.1628 686.7246 L 162.1628 679.9606 z " fill="#484c4e" id="path4130" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 679.9606 L 194.2059 680.8061 L 192.6799 679.9606 z " fill="#595a63" id="path4131" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.9639 680.5245 L 239.4735 681.0876 L 238.9639 680.5245 z " fill="#989d9f" id="path4132" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 679.9606 L 285.7574 680.8061 L 284.2316 679.9606 z " fill="#96a3a3" id="path4133" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 679.9606 L 459.7054 680.8061 L 458.1796 679.9606 z " fill="#7a8686" id="path4134" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 620.9385 680.2421 L 621.9547 680.5245 L 620.9385 680.2421 z " fill="#83888b" id="path4135" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 650.4379 679.9606 L 655.0156 680.8061 L 650.4379 679.9606 z " fill="#7a8686" id="path4136" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 704.8608 680.2421 L 705.8771 680.5245 L 704.8608 680.2421 z " fill="#394444" id="path4137" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 706.8947 679.9606 L 711.4724 680.8061 L 706.8947 679.9606 z " fill="#959a9c" id="path4138" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -91.63854 681.0876 L -90.62133 681.37 L -91.63854 681.0876 z " fill="#686c6f" id="path4139" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -39.25069 680.8061 L -31.6214 681.6516 L -39.25069 680.8061 z " fill="#9facad" id="path4140" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -34.67311 682.4971 L -28.56968 680.8061 L -34.67311 682.4971 z " fill="#4c5450" id="path4141" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 8.050966 680.8061 L 15.68025 681.6516 L 8.050966 680.8061 z " fill="#63686a" id="path4142" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 680.8061 L 127.0681 681.6516 L 125.5421 680.8061 z " fill="#596465" id="path4143" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 682.4971 L 130.1198 680.8061 L 127.0681 682.4971 z " fill="#63686a" id="path4144" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 680.8061 L 157.5852 683.3426 L 157.5852 680.8061 z " fill="#aeb3b5" id="path4145" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 502.4296 680.8061 L 507.0071 682.4971 L 502.4296 680.8061 z " fill="#4f5058" id="path4146" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 505.4813 680.8061 L 511.5848 681.6516 L 505.4813 680.8061 z " fill="#83888b" id="path4147" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 682.4971 L 529.895 680.8061 L 525.3175 682.4971 z " fill="#45453d" id="path4148" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 614.835 681.0876 L 615.8513 681.37 L 614.835 681.0876 z " fill="#63686a" id="path4149" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 584.826 685.0336 L 591.6772 691.5482 L 601.6119 690.6959 L 626.0242 682.4971 L 615.1264 681.6372 L 584.826 685.0336 z " fill="#e4e6e3" id="path4150" stroke="none" style="fill:#e4e6e3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 643.8264 681.0876 L 644.8427 681.37 L 643.8264 681.0876 z " fill="#7a8686" id="path4151" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 714.016 681.0876 L 715.0322 681.37 L 714.016 681.0876 z " fill="#6a7676" id="path4152" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 717.0676 681.0876 L 718.0839 681.37 L 717.0676 681.0876 z " fill="#bfcccd" id="path4153" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -88.0782 681.6516 L -83.50064 682.4971 L -88.0782 681.6516 z " fill="#777c7e" id="path4154" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -30.09554 681.6516 L -23.99209 682.4971 L -30.09554 681.6516 z " fill="#a4a9ac" id="path4155" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -27.04381 683.3426 L -17.88865 682.4971 L -27.04381 683.3426 z " fill="#4c5450" id="path4156" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 681.6516 L 104.1802 682.4971 L 102.6542 681.6516 z " fill="#53575a" id="path4157" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 681.6516 L 107.2319 687.5701 L 104.1802 681.6516 z " fill="#eaeff2" id="path4158" stroke="none" style="fill:#eaeff2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 173.3519 682.2155 L 173.8617 682.7786 L 173.3519 682.2155 z " fill="#a8aeb0" id="path4159" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.7054 682.2155 L 224.215 682.7786 L 223.7054 682.2155 z " fill="#394444" id="path4160" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 683.3426 L 503.9554 681.6516 L 493.2743 683.3426 z " fill="#807b7a" id="path4161" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 517.6883 684.1881 L 525.3175 681.6516 L 517.6883 684.1881 z " fill="#7a8686" id="path4162" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 693.4886 L 537.5244 681.6516 C 526.0332 683.4483 511.867 688.5416 503.9554 693.4886 z " fill="#4c5450" id="path4163" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 610.2575 681.9331 L 611.2738 682.2155 L 610.2575 681.9331 z " fill="#7a8686" id="path4164" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 636.1971 681.9331 L 637.2134 682.2155 L 636.1971 681.9331 z " fill="#83888b" id="path4165" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 639.2489 681.9331 L 640.265 682.2155 L 639.2489 681.9331 z " fill="#3c3837" id="path4166" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 719.1017 681.6516 L 723.6793 682.4971 L 719.1017 681.6516 z " fill="#4c5450" id="path4167" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -82.48334 682.7786 L -81.4662 683.061 L -82.48334 682.7786 z " fill="#b5babd" id="path4168" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -79.43162 682.7786 L -78.41448 683.061 L -79.43162 682.7786 z " fill="#736c77" id="path4169" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -22.46624 682.4971 L -11.78521 684.1881 L -22.46624 682.4971 z " fill="#959a9c" id="path4170" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -11.27711 683.061 L -10.76747 683.6241 L -11.27711 683.061 z " fill="#394444" id="path4171" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 682.4971 L 105.706 685.0336 L 105.706 682.4971 z " fill="#686c6f" id="path4172" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.4898 683.061 L 240.9994 683.6241 L 240.4898 683.061 z " fill="#91988e" id="path4173" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 682.4971 L 449.0245 683.3426 L 447.4987 682.4971 z " fill="#a3a797" id="path4174" stroke="none" style="fill:#a3a797;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 605.6799 682.7786 L 606.6961 683.061 L 605.6799 682.7786 z " fill="#807b7a" id="path4175" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 630.0936 682.7786 L 631.1099 683.061 L 630.0936 682.7786 z " fill="#959a9c" id="path4176" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 684.0069 684.1881 L 690.1103 682.4971 L 684.0069 684.1881 z " fill="#33322b" id="path4177" stroke="none" style="fill:#33322b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 729.2746 682.7786 L 730.2908 683.061 L 729.2746 682.7786 z " fill="#a6bab9" id="path4178" stroke="none" style="fill:#a6bab9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -74.85404 683.6241 L -73.83691 683.9065 L -74.85404 683.6241 z " fill="#a4a9ac" id="path4179" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -71.80232 683.6241 L -70.78518 683.9065 L -71.80232 683.6241 z " fill="#53575a" id="path4180" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -17.88865 683.3426 L -13.31107 684.1881 L -17.88865 683.3426 z " fill="#4c5450" id="path4181" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.6365 683.9065 L 102.1462 684.4696 L 101.6365 683.9065 z " fill="#959a9c" id="path4182" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 683.3426 C 148.1508 688.1231 142.5906 693.3001 153.0076 696.0251 L 149.956 683.3426 z " fill="#eaf8f8" id="path4183" stroke="none" style="fill:#eaf8f8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.9899 683.9065 L 152.4995 684.4696 L 151.9899 683.9065 z " fill="#6a7676" id="path4184" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 683.3426 L 226.2489 684.1881 L 224.7231 683.3426 z " fill="#82928c" id="path4185" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 683.3426 L 249.1368 687.5701 L 247.6109 683.3426 z " fill="#434749" id="path4186" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 683.3426 L 275.0765 686.7246 L 278.1281 683.3426 L 275.0765 683.3426 z " fill="#2b332f" id="path4187" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.4469 683.3426 L 445.9728 684.1881 L 444.4469 683.3426 z " fill="#96a3a3" id="path4188" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 686.7246 L 494.8003 683.3426 L 481.0676 686.7246 z " fill="#a6b2b3" id="path4189" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.5157 683.3426 L 574.145 688.4156 L 566.5157 683.3426 z " fill="#575f5b" id="path4190" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 601.1023 683.6241 L 602.1186 683.9065 L 601.1023 683.6241 z " fill="#888d90" id="path4191" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 627.0419 683.6241 L 628.0582 683.9065 L 627.0419 683.6241 z " fill="#45453d" id="path4192" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 670.2741 683.3426 L 670.2741 685.0336 L 684.0069 684.1881 L 670.2741 683.3426 z " fill="#5d5e66" id="path4193" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 732.8344 683.3426 L 734.3602 684.1881 L 732.8344 683.3426 z " fill="#63736d" id="path4194" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -67.22474 684.4696 L -66.20761 684.752 L -67.22474 684.4696 z " fill="#83888b" id="path4195" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.8612 684.1881 L 130.1198 692.6431 L 114.8612 684.1881 z " fill="#4f5058" id="path4196" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.9381 684.752 L 149.4478 685.3151 L 148.9381 684.752 z " fill="#989d9f" id="path4197" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.8778 684.752 L 175.3874 685.3151 L 174.8778 684.752 z " fill="#adaeb8" id="path4198" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 684.1881 L 223.1971 692.6431 L 212.5162 684.1881 z " fill="#9d9c94" id="path4199" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 684.1881 L 279.6539 685.0336 L 278.1281 684.1881 z " fill="#777c7e" id="path4200" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 684.1881 L 291.8609 685.0336 L 290.3351 684.1881 z " fill="#575f5b" id="path4201" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 514.6365 685.8791 L 519.214 684.1881 L 514.6365 685.8791 z " fill="#42514b" id="path4202" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 552.7829 684.1881 L 558.8864 696.0251 L 552.7829 684.1881 z " fill="#596465" id="path4203" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 584.826 684.1881 L 593.9811 685.0336 L 584.826 684.1881 z " fill="#74787b" id="path4204" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 659.5932 684.1881 L 664.1707 685.0336 L 659.5932 684.1881 z " fill="#484c4e" id="path4205" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 658.0673 685.0336 L 670.2741 684.1881 L 658.0673 685.0336 z " fill="#a6b2b3" id="path4206" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -60.61273 685.0336 L -56.03515 685.8791 L -60.61273 685.0336 z " fill="#959a9c" id="path4207" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 242.0156 685.5975 L 242.5252 686.1606 L 242.0156 685.5975 z " fill="#989d9f" id="path4208" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 685.0336 L 293.3867 685.8791 L 291.8609 685.0336 z " fill="#8a9697" id="path4209" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 685.0336 L 441.3952 685.8791 L 439.8693 685.0336 z " fill="#82928c" id="path4210" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 635.1795 687.5701 L 659.5932 686.7246 L 635.1795 687.5701 z " fill="#83888b" id="path4211" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 709.9465 685.0336 L 719.1017 685.8791 L 709.9465 685.0336 z " fill="#413b45" id="path4212" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 719.1017 685.0336 L 737.4119 685.8791 L 719.1017 685.0336 z " fill="#736c77" id="path4213" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -54.5093 685.8791 L -46.88 686.7246 L -54.5093 685.8791 z " fill="#63686a" id="path4214" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 687.5701 L 37.0423 686.7246 L 24.83542 687.5701 z " fill="#9d9c94" id="path4215" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.72332 688.4156 L 59.93025 686.7246 L 47.72332 688.4156 z " fill="#959a9c" id="path4216" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.82679 686.7246 L 62.98185 685.8791 L 53.82679 686.7246 z " fill="#45453d" id="path4217" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 685.8791 L 162.1628 687.5701 L 159.111 685.8791 z " fill="#434749" id="path4218" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 685.8791 L 200.3094 686.7246 L 198.7834 685.8791 z " fill="#6a7676" id="path4219" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.6108 698.5617 L 465.8089 690.4431 L 481.0676 685.8791 L 449.0245 692.441 L 424.6108 698.5617 z " fill="#7a8686" id="path4220" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 701.8092 686.1606 L 702.8253 686.443 L 701.8092 686.1606 z " fill="#74787b" id="path4221" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -45.35413 686.7246 L -37.72483 687.5701 L -45.35413 686.7246 z " fill="#6a7676" id="path4222" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 4.999236 690.1066 L 26.36128 687.5701 L 4.999236 690.1066 z " fill="#73837d" id="path4223" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 686.7246 L 112.5373 692.3337 L 107.2319 686.7246 z " fill="#bfcccd" id="path4224" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 686.7246 L 145.3783 690.1066 L 146.9043 686.7246 z " fill="#959a9c" id="path4225" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 686.7246 L 261.3437 699.4072 L 261.3437 686.7246 z " fill="#575f5b" id="path4226" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 686.7246 L 285.7574 687.5701 L 284.2316 686.7246 z " fill="#83888b" id="path4227" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 435.2917 686.7246 L 436.8175 687.5701 L 435.2917 686.7246 z " fill="#6a7676" id="path4228" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 613.3092 687.0061 L 614.3255 687.2885 L 613.3092 687.0061 z " fill="#42514b" id="path4229" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 694.1797 687.0061 L 695.196 687.2885 L 694.1797 687.0061 z " fill="#53575a" id="path4230" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -34.67311 687.5701 L -30.09554 688.4156 L -34.67311 687.5701 z " fill="#a4a9ac" id="path4231" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 690.1066 L 82.81804 687.5701 L 78.24051 690.1066 z " fill="#4c5450" id="path4232" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 687.5701 L 183.5249 696.8707 L 183.5249 687.5701 z " fill="#cad4cf" id="path4233" stroke="none" style="fill:#cad4cf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 432.24 687.5701 L 433.7658 688.4156 L 432.24 687.5701 z " fill="#82928c" id="path4234" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 586.86 688.134 L 587.3696 688.6972 L 586.86 688.134 z " fill="#3c3837" id="path4235" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 609.2397 687.5701 L 610.7655 688.4156 L 609.2397 687.5701 z " fill="#92a39c" id="path4236" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 689.6022 687.8516 L 690.6185 688.134 L 689.6022 687.8516 z " fill="#90878d" id="path4237" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 35.51644 688.4156 L 47.72332 690.1066 L 35.51644 688.4156 z " fill="#262e2a" id="path4238" stroke="none" style="fill:#262e2a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 688.4156 L 47.72332 689.2611 L 38.56816 688.4156 z " fill="#83888b" id="path4239" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 167.2486 688.9796 L 167.7582 689.5427 L 167.2486 688.9796 z " fill="#333739" id="path4240" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.9295 688.9796 L 178.4391 689.5427 L 177.9295 688.9796 z " fill="#74787b" id="path4241" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 688.4156 L 203.3611 689.2611 L 201.8352 688.4156 z " fill="#857f8a" id="path4242" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 688.4156 L 290.3351 689.2611 L 288.8092 688.4156 z " fill="#716667" id="path4243" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 688.4156 L 297.9644 689.2611 L 296.4385 688.4156 z " fill="#63686a" id="path4244" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 692.6431 L 537.5244 688.4156 L 525.3175 692.6431 z " fill="#33413c" id="path4245" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.1537 688.4156 L 543.6278 690.9521 L 545.1537 688.4156 z " fill="#63686a" id="path4246" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 572.6192 688.4156 L 577.1966 690.9521 L 572.6192 688.4156 z " fill="#2b332f" id="path4247" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 609.2397 693.4886 L 633.6535 688.4156 L 609.2397 693.4886 z " fill="#7a8686" id="path4248" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 633.6535 688.4156 L 638.2312 689.2611 L 633.6535 688.4156 z " fill="#b5b4ac" id="path4249" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 681.973 688.6972 L 682.9891 688.9796 L 681.973 688.6972 z " fill="#373b3d" id="path4250" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 685.0245 688.6972 L 686.0408 688.9796 L 685.0245 688.6972 z " fill="#807b7a" id="path4251" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 0.42167 689.2611 L 4.999236 690.9521 L 0.42167 689.2611 z " fill="#373b3d" id="path4252" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 689.2611 L 232.3523 690.1066 L 230.8265 689.2611 z " fill="#74787b" id="path4253" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 245.0673 689.8251 L 245.577 690.3882 L 245.0673 689.8251 z " fill="#a4b5ae" id="path4254" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 689.2611 L 275.0765 701.0982 L 275.0765 689.2611 z " fill="#cfdcdc" id="path4255" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 689.2611 L 291.8609 690.1066 L 290.3351 689.2611 z " fill="#8f9099" id="path4256" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 689.2611 L 299.4902 690.1066 L 297.9644 689.2611 z " fill="#8a9697" id="path4257" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 674.3436 689.5427 L 675.3599 689.8251 L 674.3436 689.5427 z " fill="#484c4e" id="path4258" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 677.3953 689.5427 L 678.4116 689.8251 L 677.3953 689.5427 z " fill="#857f8a" id="path4259" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -33.14726 690.1066 L -31.6214 690.9521 L -33.14726 690.1066 z " fill="#9aaba5" id="path4260" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -16.36279 693.4886 L 1.947518 690.9521 C -4.029266 689.623 -11.6723 691.3182 -16.36279 693.4886 z " fill="#7a8686" id="path4261" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 89.6844 690.5294 L 91.21034 691.3749 L 89.6844 690.5294 z " fill="#74787b" id="path4262" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.874 690.5294 L 161.3999 691.3749 L 159.874 690.5294 z " fill="#93aca4" id="path4263" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.6709 690.6706 L 163.1805 691.2337 L 162.6709 690.6706 z " fill="#596465" id="path4264" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 690.1066 L 168.2662 692.6431 L 168.2662 690.1066 z " fill="#989d9f" id="path4265" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.1537 690.1066 L 542.102 698.5617 C 545.9197 696.2568 547.5219 693.0447 545.1537 690.1066 z " fill="#bfcccd" id="path4266" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 667.2223 690.1066 L 674.8517 690.9521 L 667.2223 690.1066 z " fill="#adaeb8" id="path4267" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 690.9521 L 143.8525 693.4886 L 143.8525 690.9521 z " fill="#a4a9ac" id="path4268" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 690.9521 L 151.4818 693.4886 L 151.4818 690.9521 z " fill="#6a7676" id="path4269" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 690.9521 L 206.4127 691.7976 L 204.8869 690.9521 z " fill="#777c7e" id="path4270" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.5933 691.5161 L 247.1028 692.0792 L 246.5933 691.5161 z " fill="#b0b5b7" id="path4271" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 690.9521 L 296.4385 691.7976 L 294.9126 690.9521 z " fill="#74787b" id="path4272" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 690.9521 L 423.0849 691.7976 L 421.5591 690.9521 z " fill="#93aca4" id="path4273" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 546.6794 690.9521 L 546.6794 694.3341 L 546.6794 690.9521 z " fill="#83888b" id="path4274" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 598.5588 690.9521 L 600.0846 691.7976 L 598.5588 690.9521 z " fill="#6a7676" id="path4275" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 662.1368 691.2337 L 663.1529 691.5161 L 662.1368 691.2337 z " fill="#807b7a" id="path4276" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -38.23296 692.0792 L -37.21672 692.3616 L -38.23296 692.0792 z " fill="#45453d" id="path4277" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 691.7976 L 85.86977 699.4072 L 88.9215 691.7976 z " fill="#d7e4e5" id="path4278" stroke="none" style="fill:#d7e4e5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.8612 691.7976 L 116.3869 692.6431 L 114.8612 691.7976 z " fill="#5c5a5d" id="path4279" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 179.4554 692.3616 L 179.9649 692.9247 L 179.4554 692.3616 z " fill="#a8aeb0" id="path4280" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 691.7976 L 235.4041 692.6431 L 233.8783 691.7976 z " fill="#959a9c" id="path4281" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 691.7976 L 297.9644 692.6431 L 296.4385 691.7976 z " fill="#a0a5a8" id="path4282" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 691.7976 L 302.5419 692.6431 L 301.0161 691.7976 z " fill="#6a7676" id="path4283" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 542.102 691.7976 L 542.102 694.3341 L 542.102 691.7976 z " fill="#333739" id="path4284" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 653.4897 691.7976 L 658.0673 692.6431 L 653.4897 691.7976 z " fill="#373b3d" id="path4285" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 659.085 692.0792 L 660.1012 692.3616 L 659.085 692.0792 z " fill="#a8aeb0" id="path4286" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -42.30241 692.6431 L -40.77656 693.4886 L -42.30241 692.6431 z " fill="#97a4a4" id="path4287" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -33.14726 696.8707 L -16.36279 692.6431 L -33.14726 696.8707 z " fill="#42514b" id="path4288" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 698.5617 L 52.30086 692.6431 L 38.56816 698.5617 z " fill="#91988e" id="path4289" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 692.6431 C 105.9089 699.4943 112.3939 711.1969 120.9646 716.3173 L 104.1802 692.6431 z " fill="#686c6f" id="path4290" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 692.6431 L 122.4904 704.4802 C 129.1127 699.43 122.2433 694.647 113.3354 692.6431 z " fill="#eefbfc" id="path4291" stroke="none" style="fill:#eefbfc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 692.6431 L 117.9129 693.4886 L 116.3869 692.6431 z " fill="#716667" id="path4292" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 694.3341 L 165.2145 694.3341 C 163.4018 692.753 160.9238 692.753 159.111 694.3341 z " fill="#4f5058" id="path4293" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 692.6431 L 168.2662 695.1796 L 168.2662 692.6431 z " fill="#595a63" id="path4294" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 692.6431 L 235.4041 702.7892 L 223.1971 692.6431 z " fill="#74787b" id="path4295" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 248.1191 693.2071 L 248.6287 693.7702 L 248.1191 693.2071 z " fill="#9d9c94" id="path4296" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 694.3341 L 304.0679 692.6431 L 301.0161 694.3341 z " fill="#b5b4ac" id="path4297" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 416.9814 692.6431 L 418.5073 693.4886 L 416.9814 692.6431 z " fill="#63736d" id="path4298" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.137 692.9247 L 486.1532 693.2071 L 485.137 692.9247 z " fill="#4f5058" id="path4299" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 694.3341 L 490.2226 692.6431 L 487.1709 694.3341 z " fill="#83888b" id="path4300" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 605.8921 693.1834 L 608.0099 693.7939 L 605.8921 693.1834 z " fill="#53575a" id="path4301" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 645.8604 692.6431 L 650.4379 693.4886 L 645.8604 692.6431 z " fill="#333739" id="path4302" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 651.4557 692.9247 L 652.4719 693.2071 L 651.4557 692.9247 z " fill="#91988e" id="path4303" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 693.4886 L 119.4387 694.3341 L 117.9129 693.4886 z " fill="#857f8a" id="path4304" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 693.4886 L 146.9043 694.3341 L 145.3783 693.4886 z " fill="#91988e" id="path4305" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 161.6547 693.7702 L 162.6709 694.0526 L 161.6547 693.7702 z " fill="#a4b5ae" id="path4306" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 693.4886 L 207.9386 696.0251 L 207.9386 693.4886 z " fill="#777c7e" id="path4307" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 693.4886 L 236.93 694.3341 L 235.4041 693.4886 z " fill="#9aaba5" id="path4308" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 693.4886 L 415.4556 694.3341 L 413.9298 693.4886 z " fill="#959a9c" id="path4309" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 693.4886 L 484.1193 694.3341 L 479.5417 693.4886 z " fill="#7a8686" id="path4310" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 490.2226 698.5617 L 503.9554 693.4886 L 490.2226 698.5617 z " fill="#3c3837" id="path4311" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 635.1795 695.1796 L 639.7569 693.4886 L 635.1795 695.1796 z " fill="#333739" id="path4312" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 639.7569 693.4886 L 647.3862 694.3341 L 639.7569 693.4886 z " fill="#a19ea2" id="path4313" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 694.3341 L 46.19746 695.1796 L 44.6716 694.3341 z " fill="#53575a" id="path4314" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 58.40432 694.3341 L 61.45605 696.0251 L 58.40432 694.3341 z " fill="#686c6f" id="path4315" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 89.42971 694.8981 L 89.93923 695.4612 L 89.42971 694.8981 z " fill="#434749" id="path4316" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 694.3341 L 120.9646 695.1796 L 119.4387 694.3341 z " fill="#989d9f" id="path4317" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 694.3341 L 148.4301 695.1796 L 146.9043 694.3341 z " fill="#596465" id="path4318" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 694.3341 L 180.4732 696.8707 L 180.4732 694.3341 z " fill="#96a3a3" id="path4319" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 475.9818 694.6157 L 476.9981 694.8981 L 475.9818 694.6157 z " fill="#686c6f" id="path4320" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.0075 694.6157 L 567.0238 694.8981 L 566.0075 694.6157 z " fill="#596465" id="path4321" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 52.30086 698.5617 L 59.93025 695.1796 L 52.30086 698.5617 z " fill="#f1f3f0" id="path4322" stroke="none" style="fill:#f1f3f0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 83.32624 695.7436 L 83.83591 696.3067 L 83.32624 695.7436 z " fill="#97a4a4" id="path4323" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 695.1796 L 98.07669 696.8707 L 95.02496 695.1796 z " fill="#3c3837" id="path4324" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 695.1796 L 114.8612 696.0251 L 113.3354 695.1796 z " fill="#807b7a" id="path4325" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 695.1796 L 168.2662 698.5617 L 168.2662 695.1796 z " fill="#b7c3c4" id="path4326" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 236.93 695.1796 L 238.4558 696.0251 L 236.93 695.1796 z " fill="#8a9697" id="path4327" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 558.8864 695.1796 C 557.5803 698.9853 558.9321 704.8057 563.4639 707.8622 L 558.8864 695.1796 z " fill="#373b3d" id="path4328" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.5157 695.1796 L 566.5157 701.0982 L 566.5157 695.1796 z " fill="#9d9c94" id="path4329" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 639.2489 695.4612 L 640.265 695.7436 L 639.2489 695.4612 z " fill="#92a39c" id="path4330" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -52.98344 696.0251 L -51.45758 696.8707 L -52.98344 696.0251 z " fill="#83888b" id="path4331" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -39.25069 697.7162 L -33.14726 696.0251 L -39.25069 697.7162 z " fill="#777c7e" id="path4332" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 11.10268 696.0251 L 18.73199 696.8707 L 11.10268 696.0251 z " fill="#82928c" id="path4333" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.82679 696.0251 L 55.35259 696.8707 L 53.82679 696.0251 z " fill="#53575a" id="path4334" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 696.0251 L 95.02496 699.4072 L 95.02496 696.0251 z " fill="#a6b2b3" id="path4335" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 696.0251 L 157.5852 698.5617 L 151.4818 696.0251 z " fill="#b5babd" id="path4336" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 696.0251 L 407.8263 696.8707 L 406.3003 696.0251 z " fill="#82928c" id="path4337" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 696.0251 L 470.3865 696.8707 L 465.8089 696.0251 z " fill="#4c5450" id="path4338" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 696.0251 L 484.1193 696.8707 L 482.5934 696.0251 z " fill="#888d90" id="path4339" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 540.576 696.0251 L 540.576 698.5617 L 540.576 696.0251 z " fill="#4f5058" id="path4340" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 643.8264 696.3067 L 644.8427 696.5891 L 643.8264 696.3067 z " fill="#92a39c" id="path4341" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -51.45758 700.2527 L -39.25069 696.8707 L -51.45758 700.2527 z " fill="#434749" id="path4342" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.016996 697.1522 L 7.033207 697.4346 L 6.016996 697.1522 z " fill="#63686a" id="path4343" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 52.30086 696.8707 L 53.82679 697.7162 L 52.30086 696.8707 z " fill="#7a8686" id="path4344" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 77.73244 697.1522 L 78.74858 697.4346 L 77.73244 697.1522 z " fill="#83888b" id="path4345" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.90377 697.4346 L 88.41343 697.9977 L 87.90377 697.4346 z " fill="#484c4e" id="path4346" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 696.8707 L 207.9386 697.7162 L 206.4127 696.8707 z " fill="#53575a" id="path4347" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 696.8707 L 239.9816 697.7162 L 238.4558 696.8707 z " fill="#807b7a" id="path4348" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 463.7749 697.1522 L 464.7912 697.4346 L 463.7749 697.1522 z " fill="#a19ea2" id="path4349" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 696.8707 L 482.5934 697.7162 L 481.0676 696.8707 z " fill="#7a8686" id="path4350" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 648.4041 697.1522 L 649.4201 697.4346 L 648.4041 697.1522 z " fill="#777c7e" id="path4351" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -57.56101 697.7162 L -56.03515 698.5617 L -57.56101 697.7162 z " fill="#888d90" id="path4352" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -1.1042 697.7162 L 3.473389 698.5617 L -1.1042 697.7162 z " fill="#74787b" id="path4353" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 33.99058 699.4072 L 38.56816 697.7162 L 33.99058 699.4072 z " fill="#aebbbc" id="path4354" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 697.7162 L 53.82679 699.4072 L 49.24913 697.7162 z " fill="#596465" id="path4355" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.55089 697.7162 L 102.0896 708.3399 L 102.4116 705.2868 L 96.55089 697.7162 z " fill="#dfe4e6" id="path4356" stroke="none" style="fill:#dfe4e6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.58477 698.2801 L 99.09443 698.8432 L 98.58477 698.2801 z " fill="#595a63" id="path4357" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 697.7162 L 125.5421 701.0982 L 125.5421 697.7162 z " fill="#b0b5b7" id="path4358" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 697.7162 L 160.6369 707.8622 L 139.2749 697.7162 z " fill="#595a63" id="path4359" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 697.7162 L 206.4127 698.5617 L 204.8869 697.7162 z " fill="#9d9c94" id="path4360" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.7228 697.7162 L 403.2486 698.5617 L 401.7228 697.7162 z " fill="#7a8686" id="path4361" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 701.0982 L 424.6108 697.7162 L 413.9298 701.0982 z " fill="#4c5450" id="path4362" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.1974 697.9977 L 460.2137 698.2801 L 459.1974 697.9977 z " fill="#686c6f" id="path4363" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 697.7162 L 481.0676 698.5617 L 479.5417 697.7162 z " fill="#7a8686" id="path4364" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 531.4209 697.7162 L 531.4209 704.4802 L 531.4209 697.7162 z " fill="#888d90" id="path4365" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 532.9468 697.7162 L 531.4209 712.0897 C 534.5962 708.3078 536.1266 701.581 532.9468 697.7162 z " fill="#5d5e66" id="path4366" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 549.7312 697.7162 C 541.9813 704.1513 544.2976 710.0064 547.206 717.1628 C 547.9764 719.0601 548.2786 723.1777 552.2611 723.9742 C 558.7522 725.272 573.6277 720.0054 580.1829 718.8419 C 582.7127 718.393 586.4815 717.8096 586.4969 715.9926 C 586.541 710.2026 573.6002 703.6956 569.5674 698.5617 L 568.8854 712.088 L 566.5752 716.795 L 560.5832 712.9276 L 549.7312 697.7162 z " fill="#f8feff" id="path4367" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 654.5073 697.9977 L 655.5236 698.2801 L 654.5073 697.9977 z " fill="#82928c" id="path4368" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -4.66403 698.8432 L -3.647807 699.1256 L -4.66403 698.8432 z " fill="#959a9c" id="path4369" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 11.10268 698.5617 L 12.62854 699.4072 L 11.10268 698.5617 z " fill="#888d90" id="path4370" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.0771 698.8432 L 158.0933 699.1256 L 157.0771 698.8432 z " fill="#74787b" id="path4371" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 698.5617 L 168.2662 701.9437 L 168.2662 698.5617 z " fill="#2c2b2e" id="path4372" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 698.5617 L 203.3611 701.9437 L 203.3611 698.5617 z " fill="#96a3a3" id="path4373" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 698.5617 L 401.7228 699.4072 L 400.1969 698.5617 z " fill="#575f5b" id="path4374" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 698.5617 L 479.5417 699.4072 L 478.0159 698.5617 z " fill="#91988e" id="path4375" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 701.9437 L 490.2226 698.5617 L 481.0676 701.9437 z " fill="#394444" id="path4376" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 551.7652 699.1256 L 552.2749 699.6887 L 551.7652 699.1256 z " fill="#74787b" id="path4377" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 569.5674 698.5617 L 572.6192 701.9437 L 569.5674 698.5617 z " fill="#82928c" id="path4378" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 600.0846 698.5617 L 610.7655 699.4072 L 600.0846 698.5617 z " fill="#959a9c" id="path4379" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 627.55 698.5617 L 661.1191 703.6347 L 627.55 698.5617 z " fill="#6a7676" id="path4380" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -62.13859 699.4072 L -60.61273 700.2527 L -62.13859 699.4072 z " fill="#91988e" id="path4381" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -12.29333 699.6887 L -11.27711 699.9711 L -12.29333 699.6887 z " fill="#686c6f" id="path4382" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -10.25936 699.4072 L -5.681778 700.2527 L -10.25936 699.4072 z " fill="#aeb3b5" id="path4383" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 9.576826 699.4072 L 11.10268 700.2527 L 9.576826 699.4072 z " fill="#63686a" id="path4384" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 27.88714 701.9437 L 35.51644 699.4072 L 27.88714 701.9437 z " fill="#91988e" id="path4385" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 118.421 699.9711 L 118.9306 700.5342 L 118.421 699.9711 z " fill="#53575a" id="path4386" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 699.4072 L 218.6196 701.0982 L 212.5162 699.4072 z " fill="#c7d4d5" id="path4387" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 699.4072 L 243.0334 700.2527 L 241.5076 699.4072 z " fill="#97a4a4" id="path4388" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 699.4072 L 259.8178 716.3173 C 265.6009 713.7774 264.1787 702.8534 261.3437 699.4072 z " fill="#222628" id="path4389" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 450.0422 699.6887 L 451.0585 699.9711 L 450.0422 699.6887 z " fill="#686c6f" id="path4390" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 699.4072 L 478.0159 700.2527 L 476.4899 699.4072 z " fill="#92a39c" id="path4391" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 663.6626 699.6887 L 664.6789 699.9711 L 663.6626 699.6887 z " fill="#73837d" id="path4392" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -20.94037 700.2527 L -16.36279 701.0982 L -20.94037 700.2527 z " fill="#434749" id="path4393" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 700.2527 L 55.35259 701.9437 L 44.6716 700.2527 z " fill="#33322b" id="path4394" stroke="none" style="fill:#33322b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 700.2527 L 214.0421 701.0982 L 212.5162 700.2527 z " fill="#575f5b" id="path4395" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.0939 701.9437 L 220.1455 700.2527 L 217.0939 701.9437 z " fill="#4c5450" id="path4396" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 700.2527 L 259.8178 715.4718 L 259.8178 700.2527 z " fill="#c9d6d7" id="path4397" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 474.9641 700.2527 L 476.4899 701.0982 L 474.9641 700.2527 z " fill="#7a8686" id="path4398" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 514.6365 700.2527 L 517.6883 709.5532 L 517.6883 700.2527 L 514.6365 700.2527 z " fill="#4c5450" id="path4399" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.6617 700.8166 L 546.1714 701.3797 L 545.6617 700.8166 z " fill="#8a9697" id="path4400" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 600.5927 700.8166 L 601.1023 701.3797 L 600.5927 700.8166 z " fill="#434749" id="path4401" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 667.2223 700.2527 L 668.7484 701.0982 L 667.2223 700.2527 z " fill="#575f5b" id="path4402" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -66.71617 701.0982 L -65.19032 701.9437 L -66.71617 701.0982 z " fill="#807b7a" id="path4403" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -27.04381 701.0982 L -22.46624 701.9437 L -27.04381 701.0982 z " fill="#4f5058" id="path4404" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 43.14574 701.0982 L 44.6716 701.9437 L 43.14574 701.0982 z " fill="#7a8686" id="path4405" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.82679 701.0982 C 46.22035 701.2072 28.21977 705.5506 29.61137 711.0185 C 30.25985 713.5694 37.20252 714.7844 40.87221 713.5947 C 44.76163 712.3332 46.23408 709.133 48.15671 707.0404 C 49.9969 705.0382 52.22154 703.1629 53.82679 701.0982 z " fill="#f8feff" id="path4406" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 83.32624 701.6621 L 83.83591 702.2252 L 83.32624 701.6621 z " fill="#4c5450" id="path4407" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 100.1107 701.6621 L 100.6204 702.2252 L 100.1107 701.6621 z " fill="#8a9697" id="path4408" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 701.0982 L 244.5593 701.9437 L 243.0334 701.0982 z " fill="#63736d" id="path4409" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.0936 701.0982 L 395.6194 701.9437 L 394.0936 701.0982 z " fill="#8a9697" id="path4410" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 702.7892 L 413.9298 701.0982 L 409.3521 702.7892 z " fill="#45453d" id="path4411" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 440.8871 701.3797 L 441.9032 701.6621 L 440.8871 701.3797 z " fill="#9d9c94" id="path4412" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 701.0982 L 474.9641 701.9437 L 473.4382 701.0982 z " fill="#83888b" id="path4413" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 553.291 701.6621 L 553.8007 702.2252 L 553.291 701.6621 z " fill="#7a8686" id="path4414" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.5157 701.0982 L 566.5157 704.4802 L 566.5157 701.0982 z " fill="#63686a" id="path4415" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 615.3432 701.0982 L 616.869 701.9437 L 615.3432 701.0982 z " fill="#7a8686" id="path4416" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 670.2741 701.0982 L 671.8 701.9437 L 670.2741 701.0982 z " fill="#575f5b" id="path4417" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -69.76789 701.9437 L -68.24204 702.7892 L -69.76789 701.9437 z " fill="#97a4a4" id="path4418" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -30.60365 702.2252 L -29.58741 702.5076 L -30.60365 702.2252 z " fill="#8a9697" id="path4419" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 3.473389 701.9437 L 4.999236 702.7892 L 3.473389 701.9437 z " fill="#91988e" id="path4420" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 23.30956 703.6347 L 27.88714 701.9437 L 23.30956 703.6347 z " fill="#63686a" id="path4421" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 41.61988 701.9437 L 43.14574 702.7892 L 41.61988 701.9437 z " fill="#596465" id="path4422" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.9469 702.5076 L 120.4565 703.0707 L 119.9469 702.5076 z " fill="#4c5450" id="path4423" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 392.5677 701.9437 L 394.0936 702.7892 L 392.5677 701.9437 z " fill="#74787b" id="path4424" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.3095 702.2252 L 437.3258 702.5076 L 436.3095 702.2252 z " fill="#8a9697" id="path4425" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 701.9437 L 473.4382 702.7892 L 471.9124 701.9437 z " fill="#92a39c" id="path4426" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 543.6278 701.9437 L 545.1537 702.7892 L 543.6278 701.9437 z " fill="#74787b" id="path4427" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -40.77656 702.7892 L -36.19897 703.6347 L -40.77656 702.7892 z " fill="#63686a" id="path4428" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -36.19897 702.7892 L -31.6214 703.6347 L -36.19897 702.7892 z " fill="#b8bec0" id="path4429" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 1.947518 702.7892 L 3.473389 703.6347 L 1.947518 702.7892 z " fill="#74787b" id="path4430" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 40.09401 702.7892 L 41.61988 703.6347 L 40.09401 702.7892 z " fill="#686c6f" id="path4431" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 702.7892 L 52.30086 703.6347 L 50.77506 702.7892 z " fill="#92a39c" id="path4432" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.5244 703.3531 L 125.0341 703.9162 L 124.5244 703.3531 z " fill="#4c5450" id="path4433" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 702.7892 L 169.7921 705.3257 L 169.7921 702.7892 z " fill="#83888b" id="path4434" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 702.7892 L 204.8869 705.3257 L 204.8869 702.7892 z " fill="#434749" id="path4435" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 702.7892 L 218.6196 704.4802 L 212.5162 702.7892 z " fill="#cfdcdc" id="path4436" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 702.7892 L 281.1799 703.6347 L 279.6539 702.7892 z " fill="#8a9697" id="path4437" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 432.24 702.7892 L 433.7658 703.6347 L 432.24 702.7892 z " fill="#575f5b" id="path4438" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 542.102 702.7892 L 542.102 706.1712 L 542.102 702.7892 z " fill="#8f9099" id="path4439" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 590.9295 702.7892 L 597.0329 708.7077 L 590.9295 702.7892 z " fill="#222628" id="path4440" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 622.4645 703.0707 L 623.4805 703.3531 L 622.4645 703.0707 z " fill="#484c4e" id="path4441" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 661.1191 702.7892 L 671.8 706.1712 L 661.1191 702.7892 z " fill="#33413c" id="path4442" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 676.3776 702.7892 L 677.9035 703.6347 L 676.3776 702.7892 z " fill="#596465" id="path4443" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -46.88 703.6347 L -42.30241 704.4802 L -46.88 703.6347 z " fill="#83888b" id="path4444" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -1.1042 712.9352 L 23.30956 703.6347 L -1.1042 712.9352 z " fill="#73837d" id="path4445" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 703.6347 L 40.09401 704.4802 L 38.56816 703.6347 z " fill="#888d90" id="path4446" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.6365 704.1986 L 102.1462 704.7617 L 101.6365 704.1986 z " fill="#989d9f" id="path4447" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 703.6347 L 124.0163 705.3257 L 120.9646 703.6347 z " fill="#a0a5a8" id="path4448" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 703.6347 L 282.7057 704.4802 L 281.1799 703.6347 z " fill="#6a7676" id="path4449" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 554.817 704.1986 L 555.3266 704.7617 L 554.817 704.1986 z " fill="#888d90" id="path4450" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 627.0419 703.9162 L 628.0582 704.1986 L 627.0419 703.9162 z " fill="#333739" id="path4451" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 679.4293 703.6347 L 680.9551 704.4802 L 679.4293 703.6347 z " fill="#74787b" id="path4452" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -52.98344 704.4802 L -48.40585 705.3257 L -52.98344 704.4802 z " fill="#63686a" id="path4453" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -1.1042 704.4802 L 0.42167 705.3257 L -1.1042 704.4802 z " fill="#596465" id="path4454" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 37.0423 704.4802 L 38.56816 705.3257 L 37.0423 704.4802 z " fill="#82928c" id="path4455" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 704.4802 L 50.77506 705.3257 L 49.24913 704.4802 z " fill="#8a9697" id="path4456" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 706.1712 L 139.2749 704.4802 L 136.2231 706.1712 z " fill="#73837d" id="path4457" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 704.4802 L 223.1971 738.3004 L 224.952 750.8561 L 249.0728 751.793 L 255.4813 750.3767 L 255.2525 741.6824 L 259.0976 723.9268 L 249.1307 716.3173 L 224.7231 704.4802 z " fill="#fefffc" id="path4458" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 704.4802 L 227.7748 705.3257 L 226.2489 704.4802 z " fill="#63686a" id="path4459" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 704.4802 L 284.2316 705.3257 L 282.7057 704.4802 z " fill="#8a9697" id="path4460" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 603.1363 704.4802 L 604.6623 705.3257 L 603.1363 704.4802 z " fill="#959a9c" id="path4461" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 630.0936 704.7617 L 631.1099 705.0441 L 630.0936 704.7617 z " fill="#74787b" id="path4462" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -56.54325 705.6073 L -55.52704 705.8897 L -56.54325 705.6073 z " fill="#a8aeb0" id="path4463" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 705.3257 L 79.76644 707.8622 L 79.76644 705.3257 z " fill="#4c5450" id="path4464" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 756.056 C 184.718 746.3386 177.1147 736.6187 172.6775 727.3088 C 170.6877 723.1346 169.313 717.6058 164.2151 714.1993 C 159.8694 711.295 152.8353 708.9648 146.9271 707.1588 C 145.2471 706.6455 141.553 705.4365 139.7251 706.4274 C 138.2938 707.2019 139.3481 708.7382 139.8746 709.5896 C 141.7941 712.6934 144.0065 715.7381 145.888 718.8538 C 147.693 721.8435 149.219 725.3337 152.8245 727.8407 C 156.1983 730.1869 160.9559 731.3165 163.5406 734.1075 C 170.0529 741.1388 173.5351 750.9585 185.0508 756.056 z " fill="#fefffc" id="path4465" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 205.3949 705.8897 L 205.9046 706.4528 L 205.3949 705.8897 z " fill="#b5babd" id="path4466" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.7054 705.8897 L 224.215 706.4528 L 223.7054 705.8897 z " fill="#888d90" id="path4467" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 705.3257 L 285.7574 706.1712 L 284.2316 705.3257 z " fill="#7a8686" id="path4468" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.0508 705.6073 L 422.0671 705.8897 L 421.0508 705.6073 z " fill="#857f8a" id="path4469" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 467.3348 705.3257 L 468.8606 706.1712 L 467.3348 705.3257 z " fill="#6a7676" id="path4470" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.3778 705.3257 L 500.9038 706.1712 L 499.3778 705.3257 z " fill="#626657" id="path4471" stroke="none" style="fill:#626657;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 636.1971 705.6073 L 637.2134 705.8897 L 636.1971 705.6073 z " fill="#5d5e66" id="path4472" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 684.0069 705.3257 L 685.5328 706.1712 L 684.0069 705.3257 z " fill="#73837d" id="path4473" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -63.66445 706.1712 L -59.08687 707.0167 L -63.66445 706.1712 z " fill="#a19ea2" id="path4474" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 706.1712 L 130.1198 708.7077 L 131.6456 706.1712 z " fill="#c9d6d7" id="path4475" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 706.1712 L 287.2833 707.0167 L 285.7574 706.1712 z " fill="#807b7a" id="path4476" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 706.1712 L 326.9558 710.3987 L 326.9558 706.1712 z " fill="#686c6f" id="path4477" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 706.1712 L 418.5073 707.0167 L 413.9298 706.1712 z " fill="#63686a" id="path4478" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 706.1712 L 467.3348 707.0167 L 465.8089 706.1712 z " fill="#82928c" id="path4479" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 706.1712 L 499.3778 707.0167 L 497.852 706.1712 z " fill="#888d90" id="path4480" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 532.9468 706.1712 L 532.9468 714.6263 L 532.9468 706.1712 z " fill="#96a3a3" id="path4481" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 542.61 706.7352 L 543.1196 707.2983 L 542.61 706.7352 z " fill="#595a63" id="path4482" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 556.3428 706.7352 L 556.8524 707.2983 L 556.3428 706.7352 z " fill="#8a9697" id="path4483" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 568.0416 706.1712 L 568.0416 712.9352 L 568.0416 706.1712 z " fill="#b8bec0" id="path4484" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 604.6623 706.1712 L 606.1881 707.0167 L 604.6623 706.1712 z " fill="#a0a5a8" id="path4485" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -71.29376 707.0167 L -66.71617 707.8622 L -71.29376 707.0167 z " fill="#5c5a5d" id="path4486" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -7.207637 707.0167 L -5.681778 707.8622 L -7.207637 707.0167 z " fill="#959a9c" id="path4487" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 58.40432 707.0167 L 59.93025 707.8622 L 58.40432 707.0167 z " fill="#53575a" id="path4488" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 707.0167 L 148.4301 707.8622 L 146.9043 707.0167 z " fill="#9d9c94" id="path4489" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.826 707.5807 L 172.3358 708.1438 L 171.826 707.5807 z " fill="#4c5450" id="path4490" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 707.0167 L 223.1971 710.3987 L 223.1971 707.0167 z " fill="#c9d6d7" id="path4491" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 707.0167 L 288.8092 707.8622 L 287.2833 707.0167 z " fill="#63686a" id="path4492" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.3699 707.2983 L 411.386 707.5807 L 410.3699 707.2983 z " fill="#74787b" id="path4493" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 579.2307 707.5807 L 579.7403 708.1438 L 579.2307 707.5807 z " fill="#888d90" id="path4494" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -74.85404 708.1438 L -73.83691 708.4262 L -74.85404 708.1438 z " fill="#a19ea2" id="path4495" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -39.25069 707.8622 L -25.51796 708.7077 L -39.25069 707.8622 z " fill="#b3ccc4" id="path4496" stroke="none" style="fill:#b3ccc4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 707.8622 L 78.24051 722.2358 L 78.24051 707.8622 z " fill="#a8aeb0" id="path4497" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 707.8622 L 104.1802 710.3987 L 104.1802 707.8622 z " fill="#7a8686" id="path4498" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 727.3088 C 143.4084 722.4607 140.3446 717.6219 137.3035 712.9479 C 136.4993 711.711 135.2725 709.1558 132.407 708.909 C 126.6622 708.4143 126.1754 713.5973 127.2894 715.4726 C 129.9901 720.018 138.4556 724.6286 145.3783 727.3088 z " fill="#f8feff" id="path4499" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 707.8622 L 151.4818 708.7077 L 149.956 707.8622 z " fill="#63686a" id="path4500" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 707.8622 L 206.4127 711.2442 L 206.4127 707.8622 z " fill="#888d90" id="path4501" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 707.8622 L 252.1885 708.7077 L 250.6627 707.8622 z " fill="#7a8686" id="path4502" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.5845 708.4262 L 276.0942 708.9893 L 275.5845 708.4262 z " fill="#63686a" id="path4503" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 707.8622 L 331.5333 708.7077 L 330.0074 707.8622 z " fill="#63736d" id="path4504" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 405.7923 708.1438 L 406.8086 708.4262 L 405.7923 708.1438 z " fill="#90878d" id="path4505" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 658.0673 707.8622 L 662.6449 708.7077 L 658.0673 707.8622 z " fill="#777c7e" id="path4506" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -91.12994 708.7077 L -89.60413 709.5532 L -91.12994 708.7077 z " fill="#73837d" id="path4507" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -79.43162 708.9893 L -78.41448 709.2717 L -79.43162 708.9893 z " fill="#adaeb8" id="path4508" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -44.33639 708.9893 L -43.32017 709.2717 L -44.33639 708.9893 z " fill="#777c7e" id="path4509" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -23.99209 708.7077 L -19.41452 709.5532 L -23.99209 708.7077 z " fill="#33413c" id="path4510" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -18.39676 708.9893 L -17.38055 709.2717 L -18.39676 708.9893 z " fill="#9aaba5" id="path4511" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -11.78521 708.7077 L -10.25936 709.5532 L -11.78521 708.7077 z " fill="#8a9697" id="path4512" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 708.7077 L 153.0076 709.5532 L 151.4818 708.7077 z " fill="#8f9099" id="path4513" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 708.7077 L 174.3697 709.5532 L 172.8438 708.7077 z " fill="#7a8686" id="path4514" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 708.7077 L 291.8609 709.5532 L 290.3351 708.7077 z " fill="#63736d" id="path4515" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.2148 708.9893 L 402.2309 709.2717 L 401.2148 708.9893 z " fill="#888d90" id="path4516" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.7572 708.7077 L 464.2831 709.5532 L 462.7572 708.7077 z " fill="#63686a" id="path4517" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 708.7077 L 534.4727 713.7808 L 534.4727 708.7077 z " fill="#333739" id="path4518" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 580.7566 709.2717 L 581.2661 709.8348 L 580.7566 709.2717 z " fill="#a0a5a8" id="path4519" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 595.507 708.7077 L 610.7655 727.3088 L 595.507 708.7077 z " fill="#53575a" id="path4520" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 606.1881 708.7077 L 607.714 709.5532 L 606.1881 708.7077 z " fill="#6a7676" id="path4521" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 665.1885 708.9893 L 666.2047 709.2717 L 665.1885 708.9893 z " fill="#989d9f" id="path4522" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 667.2223 708.7077 L 673.3258 709.5532 L 667.2223 708.7077 z " fill="#2e272b" id="path4523" stroke="none" style="fill:#2e272b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -94.18168 709.5532 L -92.65575 710.3987 L -94.18168 709.5532 z " fill="#97a4a4" id="path4524" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -85.53506 709.8348 L -84.51797 710.1172 L -85.53506 709.8348 z " fill="#90878d" id="path4525" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -51.45758 709.5532 L -46.88 710.3987 L -51.45758 709.5532 z " fill="#7a8686" id="path4526" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -13.8192 709.8348 L -12.80296 710.1172 L -13.8192 709.8348 z " fill="#3c3837" id="path4527" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 709.5532 L 46.19746 710.3987 L 44.6716 709.5532 z " fill="#96a3a3" id="path4528" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 135.2054 710.1172 L 135.7151 710.6803 L 135.2054 710.1172 z " fill="#bbc8c9" id="path4529" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 709.5532 L 275.0765 715.4718 L 278.1281 709.5532 L 275.0765 709.5532 z " fill="#a9b1b9" id="path4530" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 709.5532 L 293.3867 710.3987 L 291.8609 709.5532 z " fill="#73837d" id="path4531" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.163 709.8348 L 399.1792 710.1172 L 398.163 709.8348 z " fill="#b8bec0" id="path4532" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 709.5532 L 462.7572 710.3987 L 461.2313 709.5532 z " fill="#8a9697" id="path4533" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 709.5532 L 494.8003 710.3987 L 493.2743 709.5532 z " fill="#91988e" id="path4534" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 507.0071 709.5532 L 500.9038 715.4718 L 507.0071 709.5532 z " fill="#63736d" id="path4535" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 674.8517 709.5532 L 679.4293 710.3987 L 674.8517 709.5532 z " fill="#857f8a" id="path4536" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 680.4471 709.8348 L 681.4633 710.1172 L 680.4471 709.8348 z " fill="#3c3837" id="path4537" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -95.70749 710.3987 L -91.12994 712.0897 L -95.70749 710.3987 z " fill="#c8c5ca" id="path4538" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -90.11262 710.6803 L -89.09552 710.9627 L -90.11262 710.6803 z " fill="#a19ea2" id="path4539" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.8694 710.9627 L 27.37903 711.5258 L 26.8694 710.9627 z " fill="#4c5450" id="path4540" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.82679 710.3987 L 55.35259 711.2442 L 53.82679 710.3987 z " fill="#53575a" id="path4541" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 710.3987 L 157.5852 711.2442 L 156.0593 710.3987 z " fill="#74787b" id="path4542" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 710.3987 L 221.6713 720.5448 L 221.6713 710.3987 z " fill="#83888b" id="path4543" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 710.3987 L 255.2402 711.2442 L 253.7144 710.3987 z " fill="#8a9697" id="path4544" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 710.3987 L 294.9126 719.6993 L 284.2316 710.3987 z " fill="#575f5b" id="path4545" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 710.3987 L 294.9126 711.2442 L 293.3867 710.3987 z " fill="#82928c" id="path4546" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 710.3987 L 326.9558 718.8538 L 326.9558 710.3987 z " fill="#b7c3c4" id="path4547" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 375.7832 710.3987 L 377.3091 711.2442 L 375.7832 710.3987 z " fill="#83888b" id="path4548" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 393.5853 710.6803 L 394.6016 710.9627 L 393.5853 710.6803 z " fill="#adaeb8" id="path4549" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 559.3944 710.9627 L 559.9042 711.5258 L 559.3944 710.9627 z " fill="#888d90" id="path4550" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 581.7743 710.3987 L 583.3001 711.2442 L 581.7743 710.3987 z " fill="#5c5a5d" id="path4551" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 682.481 710.3987 L 687.0586 711.2442 L 682.481 710.3987 z " fill="#b5babd" id="path4552" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 688.0763 710.6803 L 689.0926 710.9627 L 688.0763 710.6803 z " fill="#716667" id="path4553" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 694.688 711.2442 L 700.7913 710.3987 L 694.688 711.2442 z " fill="#8f9099" id="path4554" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -58.06913 711.5258 L -57.0529 711.8082 L -58.06913 711.5258 z " fill="#434749" id="path4555" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 141.3089 711.8082 L 141.8185 712.3713 L 141.3089 711.8082 z " fill="#63736d" id="path4556" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 711.2442 L 206.4127 721.3903 L 206.4127 711.2442 z " fill="#b0b5b7" id="path4557" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 711.2442 C 276.6022 718.9054 273.0074 732.2635 285.8704 737.2241 C 288.4492 738.2184 297.3449 741.9614 300.6559 740.4843 C 303.8862 739.0436 298.2589 733.848 297.058 732.3819 C 291.2536 725.294 286.6531 716.9024 276.6022 711.2442 z " fill="#f8feff" id="path4558" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.6363 711.8082 L 279.1459 712.3713 L 278.6363 711.8082 z " fill="#a4b5ae" id="path4559" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 711.2442 L 296.4385 712.0897 L 294.9126 711.2442 z " fill="#8a9697" id="path4560" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.5673 711.8082 L 334.0768 712.3713 L 333.5673 711.8082 z " fill="#777c7e" id="path4561" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.2573 711.2442 L 375.7832 712.0897 L 374.2573 711.2442 z " fill="#63736d" id="path4562" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 543.6278 711.2442 L 543.6278 713.7808 L 543.6278 711.2442 z " fill="#4c5450" id="path4563" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 52.30086 712.0897 L 53.82679 712.9352 L 52.30086 712.0897 z " fill="#7a8686" id="path4564" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 712.0897 L 90.44743 715.4718 L 90.44743 712.0897 z " fill="#2c2b2e" id="path4565" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 712.0897 L 256.7661 712.9352 L 255.2402 712.0897 z " fill="#575f5b" id="path4566" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 712.0897 L 297.9644 712.9352 L 296.4385 712.0897 z " fill="#92a39c" id="path4567" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 372.7314 712.0897 L 374.2573 712.9352 L 372.7314 712.0897 z " fill="#575f5b" id="path4568" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.9561 712.3713 L 386.9723 712.6537 L 385.9561 712.3713 z " fill="#b5babd" id="path4569" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 712.0897 L 459.7054 712.9352 L 458.1796 712.0897 z " fill="#74787b" id="path4570" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 490.2226 712.0897 L 491.7485 712.9352 L 490.2226 712.0897 z " fill="#83888b" id="path4571" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 583.3001 712.0897 L 584.826 712.9352 L 583.3001 712.0897 z " fill="#807b7a" id="path4572" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -66.71617 712.9352 L -65.19032 713.7808 L -66.71617 712.9352 z " fill="#989d9f" id="path4573" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -11.78521 717.1628 L -1.1042 712.9352 L -11.78521 717.1628 z " fill="#63686a" id="path4574" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 712.9352 L 102.6542 715.4718 L 102.6542 712.9352 z " fill="#a8aeb0" id="path4575" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 106.7237 713.2168 L 107.74 713.4992 L 106.7237 713.2168 z " fill="#5d5e66" id="path4576" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 712.9352 L 163.6887 713.7808 L 162.1628 712.9352 z " fill="#83888b" id="path4577" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 712.9352 L 258.292 713.7808 L 256.7661 712.9352 z " fill="#82928c" id="path4578" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 712.9352 L 281.1799 713.7808 L 279.6539 712.9352 z " fill="#5d5e66" id="path4579" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 456.6537 712.9352 L 458.1796 713.7808 L 456.6537 712.9352 z " fill="#82928c" id="path4580" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 560.9203 713.4992 L 561.4301 714.0623 L 560.9203 713.4992 z " fill="#a4a9ac" id="path4581" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.5157 712.9352 L 566.5157 718.0083 L 566.5157 712.9352 z " fill="#394444" id="path4582" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -69.76789 713.7808 L -68.24204 714.6263 L -69.76789 713.7808 z " fill="#8a9697" id="path4583" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 41.61988 713.7808 L 43.14574 714.6263 L 41.61988 713.7808 z " fill="#63686a" id="path4584" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 713.7808 L 125.5421 716.3173 L 125.5421 713.7808 z " fill="#97a4a4" id="path4585" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 138.2571 714.3447 L 138.7668 714.9078 L 138.2571 714.3447 z " fill="#b5babd" id="path4586" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.8348 714.3447 L 143.3443 714.9078 L 142.8348 714.3447 z " fill="#596465" id="path4587" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.9473 713.7808 L 180.4732 714.6263 L 178.9473 713.7808 z " fill="#63686a" id="path4588" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 335.0931 714.3447 L 335.6027 714.9078 L 335.0931 714.3447 z " fill="#888d90" id="path4589" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 713.7808 L 456.6537 714.6263 L 455.128 713.7808 z " fill="#92a39c" id="path4590" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 713.7808 L 467.3348 714.6263 L 465.8089 713.7808 z " fill="#857f8a" id="path4591" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 713.7808 L 532.9468 719.6993 L 534.4727 713.7808 z " fill="#686c6f" id="path4592" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.6617 714.3447 L 546.1714 714.9078 L 545.6617 714.3447 z " fill="#8a9697" id="path4593" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 610.7655 713.7808 L 612.2915 714.6263 L 610.7655 713.7808 z " fill="#83888b" id="path4594" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -72.81962 714.6263 L -71.29376 715.4718 L -72.81962 714.6263 z " fill="#97a4a4" id="path4595" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -42.30241 715.4718 C -38.1063 716.9159 -31.78619 716.8981 -28.56968 714.6263 L -42.30241 715.4718 z " fill="#6a7676" id="path4596" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 39.58591 714.9078 L 40.60214 715.1902 L 39.58591 714.9078 z " fill="#9facad" id="path4597" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 714.6263 L 50.77506 715.4718 L 49.24913 714.6263 z " fill="#91988e" id="path4598" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 714.6263 L 166.7404 718.0083 L 166.7404 714.6263 z " fill="#d1d7d9" id="path4599" stroke="none" style="fill:#d1d7d9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 714.6263 L 282.7057 715.4718 L 281.1799 714.6263 z " fill="#6a7676" id="path4600" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 714.6263 L 301.0161 715.4718 L 299.4902 714.6263 z " fill="#63686a" id="path4601" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 375.2751 714.9078 L 376.2913 715.1902 L 375.2751 714.9078 z " fill="#c3c5c2" id="path4602" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 714.6263 L 455.128 715.4718 L 453.602 714.6263 z " fill="#959a9c" id="path4603" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -75.87134 715.4718 L -74.34548 716.3173 L -75.87134 715.4718 z " fill="#9aaba5" id="path4604" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.72332 715.4718 L 49.24913 716.3173 L 47.72332 715.4718 z " fill="#63686a" id="path4605" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 715.4718 L 102.6542 718.8538 L 102.6542 715.4718 z " fill="#4c5450" id="path4606" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 715.4718 L 183.5249 716.3173 L 181.999 715.4718 z " fill="#9aaba5" id="path4607" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 715.4718 L 275.0765 724.7723 L 275.0765 715.4718 z " fill="#4c5450" id="path4608" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 715.4718 L 302.5419 716.3173 L 301.0161 715.4718 z " fill="#9aaba5" id="path4609" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 715.4718 L 369.6797 717.1628 L 366.6279 715.4718 z " fill="#4f5058" id="path4610" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 715.4718 L 372.7314 716.3173 L 371.2056 715.4718 z " fill="#686c6f" id="path4611" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 715.4718 L 453.602 716.3173 L 452.0762 715.4718 z " fill="#8a9697" id="path4612" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 715.4718 L 462.7572 716.3173 L 461.2313 715.4718 z " fill="#74787b" id="path4613" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 715.4718 L 487.1709 716.3173 L 485.6452 715.4718 z " fill="#6a7676" id="path4614" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.3778 715.4718 L 500.9038 716.3173 L 499.3778 715.4718 z " fill="#8f9099" id="path4615" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.6617 716.0357 L 546.1714 716.5988 L 545.6617 716.0357 z " fill="#333739" id="path4616" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 617.8868 715.7533 L 618.9031 716.0357 L 617.8868 715.7533 z " fill="#92a39c" id="path4617" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -51.45758 716.3173 L -46.88 717.1628 L -51.45758 716.3173 z " fill="#413b45" id="path4618" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -63.66445 718.0083 L -39.25069 717.1628 L -63.66445 718.0083 z " fill="#aeb3b5" id="path4619" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 29.41301 716.3173 L 37.0423 721.3903 L 29.41301 716.3173 z " fill="#33413c" id="path4620" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 716.3173 L 124.0163 719.6993 L 119.4387 716.3173 z " fill="#333739" id="path4621" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.7831 716.8812 L 140.2926 717.4443 L 139.7831 716.8812 z " fill="#96a3a3" id="path4622" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 144.3606 716.8812 L 144.8703 717.4443 L 144.3606 716.8812 z " fill="#575f5b" id="path4623" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 450.5503 716.3173 L 452.0762 717.1628 L 450.5503 716.3173 z " fill="#91988e" id="path4624" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 716.3173 L 485.6452 717.1628 L 484.1193 716.3173 z " fill="#a3a797" id="path4625" stroke="none" style="fill:#a3a797;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 725.6178 L 500.9038 716.3173 L 487.1709 725.6178 z " fill="#63686a" id="path4626" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 563.9721 716.8812 L 564.4816 717.4443 L 563.9721 716.8812 z " fill="#7a8686" id="path4627" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 588.3859 716.8812 L 588.8955 717.4443 L 588.3859 716.8812 z " fill="#737667" id="path4628" stroke="none" style="fill:#737667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -27.04381 723.9268 L -11.78521 717.1628 L -27.04381 723.9268 z " fill="#63686a" id="path4629" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 717.1628 L 304.0679 718.0083 L 302.5419 717.1628 z " fill="#6a7676" id="path4630" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.619 717.7267 L 337.1285 718.2898 L 336.619 717.7267 z " fill="#484c4e" id="path4631" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 717.1628 L 450.5503 718.0083 L 449.0245 717.1628 z " fill="#97a4a4" id="path4632" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 456.6537 717.1628 L 458.1796 718.0083 L 456.6537 717.1628 z " fill="#686c6f" id="path4633" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 505.4813 742.5279 L 513.3013 734.9184 L 517.6883 717.1628 C 499.4252 722.6729 505.4797 733.1986 505.4813 742.5279 z " fill="#f5fafd" id="path4634" stroke="none" style="fill:#f5fafd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 717.1628 L 535.9985 728.1543 L 534.4727 717.1628 z " fill="#97a4a4" id="path4635" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 546.6794 717.1628 L 546.6794 719.6993 L 546.6794 717.1628 z " fill="#83888b" id="path4636" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 626.0242 717.1628 L 627.55 718.0083 L 626.0242 717.1628 z " fill="#777c7e" id="path4637" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -80.44891 721.3903 L -62.13859 719.6993 C -67.57905 717.5771 -75.64718 719.3112 -80.44891 721.3903 z " fill="#6a7676" id="path4638" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -53.49154 718.2898 L -52.47532 718.5722 L -53.49154 718.2898 z " fill="#63686a" id="path4639" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 718.0083 L 95.02496 724.7723 L 93.49916 718.0083 z " fill="#575f5b" id="path4640" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 718.0083 L 104.1802 723.0813 L 104.1802 718.0083 z " fill="#bfcccd" id="path4641" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 718.0083 L 130.1198 718.8538 L 128.5939 718.0083 z " fill="#82928c" id="path4642" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 718.0083 L 168.2662 720.5448 L 168.2662 718.0083 z " fill="#7a8686" id="path4643" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 718.0083 L 186.5765 718.8538 L 185.0508 718.0083 z " fill="#74787b" id="path4644" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 718.0083 L 449.0245 718.8538 L 447.4987 718.0083 z " fill="#a0a5a8" id="path4645" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 718.0083 L 484.1193 718.8538 L 482.5934 718.0083 z " fill="#63736d" id="path4646" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 513.1106 718.0083 L 514.6365 718.8538 L 513.1106 718.0083 z " fill="#5d5e66" id="path4647" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.0075 718.2898 L 567.0238 718.5722 L 566.0075 718.2898 z " fill="#989d9f" id="path4648" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 581.7743 718.0083 L 586.3518 718.8538 L 581.7743 718.0083 z " fill="#82928c" id="path4649" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 629.076 718.0083 L 630.6018 718.8538 L 629.076 718.0083 z " fill="#73837d" id="path4650" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -86.55238 718.8538 L -85.02646 719.6993 L -86.55238 718.8538 z " fill="#7a8686" id="path4651" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 14.1544 718.8538 L 14.1544 726.4633 L 14.1544 718.8538 z " fill="#c2ccc7" id="path4652" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 45.17971 719.4177 L 45.68936 719.9808 L 45.17971 719.4177 z " fill="#63736d" id="path4653" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 718.8538 L 117.9129 719.6993 L 116.3869 718.8538 z " fill="#63686a" id="path4654" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 718.8538 L 131.6456 719.6993 L 130.1198 718.8538 z " fill="#82928c" id="path4655" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 141.3089 719.4177 L 141.8185 719.9808 L 141.3089 719.4177 z " fill="#7a8686" id="path4656" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.8864 719.4177 L 146.396 719.9808 L 145.8864 719.4177 z " fill="#434749" id="path4657" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 286.2655 719.4177 L 286.7752 719.9808 L 286.2655 719.4177 z " fill="#aeb3b5" id="path4658" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 718.8538 L 326.9558 722.2358 L 326.9558 718.8538 z " fill="#686c6f" id="path4659" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 445.9728 718.8538 L 447.4987 719.6993 L 445.9728 718.8538 z " fill="#92a39c" id="path4660" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 718.8538 L 453.602 719.6993 L 452.0762 718.8538 z " fill="#686c6f" id="path4661" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 518.1963 719.4177 L 518.7059 719.9808 L 518.1963 719.4177 z " fill="#74787b" id="path4662" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 578.2145 719.1353 L 579.2307 719.4177 L 578.2145 719.1353 z " fill="#4c5450" id="path4663" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 632.1277 718.8538 L 633.6535 719.6993 L 632.1277 718.8538 z " fill="#63686a" id="path4664" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -89.60413 719.6993 L -88.0782 720.5448 L -89.60413 719.6993 z " fill="#8a9697" id="path4665" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 719.6993 L 133.1715 720.5448 L 131.6456 719.6993 z " fill="#82928c" id="path4666" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 719.6993 L 310.1711 736.6094 C 308.7186 731.0451 302.2993 723.5895 294.9126 719.6993 z " fill="#434749" id="path4667" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 719.6993 L 307.1196 720.5448 L 305.5937 719.6993 z " fill="#7a8686" id="path4668" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 719.6993 L 333.0591 726.4633 L 331.5333 719.6993 z " fill="#2b332f" id="path4669" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 719.6993 L 337.6368 722.2358 L 337.6368 719.6993 z " fill="#777c7e" id="path4670" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.4469 719.6993 L 445.9728 720.5448 L 444.4469 719.6993 z " fill="#73837d" id="path4671" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 572.111 719.9808 L 573.1272 720.2632 L 572.111 719.9808 z " fill="#33413c" id="path4672" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 614.3255 720.2632 L 614.835 720.8263 L 614.3255 720.2632 z " fill="#434749" id="path4673" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -85.02646 722.2358 L -80.44891 720.5448 L -85.02646 722.2358 z " fill="#484c4e" id="path4674" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 720.5448 L 47.72332 721.3903 L 46.19746 720.5448 z " fill="#a3a797" id="path4675" stroke="none" style="fill:#a3a797;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 720.5448 L 119.4387 721.3903 L 117.9129 720.5448 z " fill="#686c6f" id="path4676" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 133.1715 720.5448 L 134.6973 721.3903 L 133.1715 720.5448 z " fill="#83888b" id="path4677" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 723.0813 L 180.4732 720.5448 L 177.4215 723.0813 z " fill="#9aaba5" id="path4678" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 720.5448 L 207.9386 729.8453 L 207.9386 720.5448 z " fill="#2c2b2e" id="path4679" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 720.5448 L 221.6713 729.8453 L 221.6713 720.5448 z " fill="#aebbbc" id="path4680" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 720.5448 L 449.0245 721.3903 L 447.4987 720.5448 z " fill="#857f8a" id="path4681" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 720.5448 L 481.0676 721.3903 L 479.5417 720.5448 z " fill="#9d9c94" id="path4682" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 567.5333 720.8263 L 568.5496 721.1087 L 567.5333 720.8263 z " fill="#575f5b" id="path4683" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 622.4645 720.8263 L 623.4805 721.1087 L 622.4645 720.8263 z " fill="#434749" id="path4684" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 640.7747 720.8263 L 641.791 721.1087 L 640.7747 720.8263 z " fill="#a0a5a8" id="path4685" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -94.18168 721.3903 L -92.65575 722.2358 L -94.18168 721.3903 z " fill="#63686a" id="path4686" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 37.0423 721.3903 L 41.61988 725.6178 L 37.0423 721.3903 z " fill="#2c2b2e" id="path4687" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 721.3903 L 136.2231 722.2358 L 134.6973 721.3903 z " fill="#92a39c" id="path4688" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 170.3002 721.9542 L 170.81 722.5174 L 170.3002 721.9542 z " fill="#91988e" id="path4689" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 721.3903 L 181.999 722.2358 L 180.4732 721.3903 z " fill="#83888b" id="path4690" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 721.3903 L 191.1541 722.2358 L 189.6282 721.3903 z " fill="#73837d" id="path4691" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 721.3903 L 206.4127 729.8453 L 206.4127 721.3903 z " fill="#d7e4e5" id="path4692" stroke="none" style="fill:#d7e4e5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 519.214 721.3903 L 519.214 724.7723 L 519.214 721.3903 z " fill="#53575a" id="path4693" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 627.0419 721.6718 L 628.0582 721.9542 L 627.0419 721.6718 z " fill="#686c6f" id="path4694" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -97.23342 722.2358 L -95.70749 723.0813 L -97.23342 722.2358 z " fill="#9facad" id="path4695" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -43.82828 722.2358 L -39.25069 723.0813 L -43.82828 722.2358 z " fill="#53575a" id="path4696" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 722.2358 L 24.83542 726.4633 L 27.88714 722.2358 L 24.83542 722.2358 z " fill="#575f5b" id="path4697" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.72332 722.2358 L 49.24913 723.0813 L 47.72332 722.2358 z " fill="#63686a" id="path4698" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 722.2358 L 79.76644 726.4633 L 79.76644 722.2358 z " fill="#74787b" id="path4699" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 722.2358 L 259.8178 726.4633 L 259.8178 722.2358 z " fill="#2b332f" id="path4700" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 722.2358 L 479.5417 723.0813 L 478.0159 722.2358 z " fill="#7a8686" id="path4701" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 535.9985 722.2358 L 535.9985 724.7723 L 535.9985 722.2358 z " fill="#53575a" id="path4702" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 615.8513 722.7998 L 616.361 723.3629 L 615.8513 722.7998 z " fill="#4f5058" id="path4703" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 633.1454 722.5174 L 634.1617 722.7998 L 633.1454 722.5174 z " fill="#857f8a" id="path4704" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -98.75924 723.0813 L -97.23342 723.9268 L -98.75924 723.0813 z " fill="#807b7a" id="path4705" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -51.45758 723.0813 L -46.88 723.9268 L -51.45758 723.0813 z " fill="#53575a" id="path4706" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 723.0813 L 104.1802 734.9184 L 104.1802 723.0813 z " fill="#888d90" id="path4707" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.6706 723.6453 L 340.1803 724.2084 L 339.6706 723.6453 z " fill="#a0a5a8" id="path4708" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 505.4813 723.0813 L 507.0071 723.9268 L 505.4813 723.0813 z " fill="#807b7a" id="path4709" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.7135 723.6453 L 549.2231 724.2084 L 548.7135 723.6453 z " fill="#333739" id="path4710" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 636.7053 723.0813 L 641.2828 723.9268 L 636.7053 723.0813 z " fill="#7a8686" id="path4711" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -101.811 723.9268 L -100.285 724.7723 L -101.811 723.9268 z " fill="#888d90" id="path4712" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -59.08687 723.9268 L -54.5093 724.7723 L -59.08687 723.9268 z " fill="#777c7e" id="path4713" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -39.25069 723.9268 L -37.72483 724.7723 L -39.25069 723.9268 z " fill="#596465" id="path4714" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -9.241608 724.2084 L -8.225374 724.4908 L -9.241608 724.2084 z " fill="#575f5b" id="path4715" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -1.1042 726.4633 L 1.947518 723.9268 L -1.1042 726.4633 z " fill="#595a63" id="path4716" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.36128 723.9268 L 26.36128 734.0729 L 26.36128 723.9268 z " fill="#d7e4e5" id="path4717" stroke="none" style="fill:#d7e4e5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 723.9268 L 122.4904 724.7723 L 120.9646 723.9268 z " fill="#8a9697" id="path4718" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 723.9268 L 130.1198 728.9998 L 133.1715 723.9268 L 130.1198 723.9268 z " fill="#9aaba5" id="path4719" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 144.3606 724.4908 L 144.8703 725.0539 L 144.3606 724.4908 z " fill="#b5babd" id="path4720" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.9473 723.9268 L 178.9473 726.4633 L 178.9473 723.9268 z " fill="#b7c3c4" id="path4721" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 723.9268 L 188.1024 724.7723 L 186.5765 723.9268 z " fill="#74787b" id="path4722" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 723.9268 L 194.2059 724.7723 L 192.6799 723.9268 z " fill="#82928c" id="path4723" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 723.9268 L 331.5333 745.9099 C 336.0559 740.5232 337.3925 729.0649 331.5333 723.9268 z " fill="#575f5b" id="path4724" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 723.9268 L 478.0159 724.7723 L 476.4899 723.9268 z " fill="#686c6f" id="path4725" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 723.9268 L 505.4813 724.7723 L 503.9554 723.9268 z " fill="#6a7676" id="path4726" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 555.3266 724.2084 L 556.3428 724.4908 L 555.3266 724.2084 z " fill="#42514b" id="path4727" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 641.2828 723.9268 L 645.8604 724.7723 L 641.2828 723.9268 z " fill="#a9b1b9" id="path4728" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 646.8782 724.2084 L 647.8945 724.4908 L 646.8782 724.2084 z " fill="#4d4b4f" id="path4729" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -77.39719 724.7723 L -66.71617 725.6178 L -77.39719 724.7723 z " fill="#777c7e" id="path4730" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -40.77656 724.7723 L -39.25069 725.6178 L -40.77656 724.7723 z " fill="#7a8686" id="path4731" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -11.78521 726.4633 L -8.733496 724.7723 L -11.78521 726.4633 z " fill="#9aaba5" id="path4732" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 41.61988 724.7723 L 44.6716 727.3088 L 41.61988 724.7723 z " fill="#596465" id="path4733" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 724.7723 L 52.30086 725.6178 L 50.77506 724.7723 z " fill="#6a7676" id="path4734" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 724.7723 L 93.49916 734.0729 L 93.49916 724.7723 z " fill="#777c7e" id="path4735" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 133.1715 724.7723 L 134.6973 725.6178 L 133.1715 724.7723 z " fill="#736c77" id="path4736" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 724.7723 L 140.8008 725.6178 L 139.2749 724.7723 z " fill="#575f5b" id="path4737" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.826 725.3363 L 172.3358 725.8994 L 171.826 725.3363 z " fill="#989d9f" id="path4738" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 724.7723 L 191.1541 725.6178 L 189.6282 724.7723 z " fill="#686c6f" id="path4739" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 726.4633 L 195.7317 724.7723 L 192.6799 726.4633 z " fill="#989d9f" id="path4740" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 724.7723 L 291.8609 725.6178 L 290.3351 724.7723 z " fill="#83888b" id="path4741" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.9379 725.3363 L 326.4475 725.8994 L 325.9379 725.3363 z " fill="#c8c5ca" id="path4742" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.6706 725.3363 L 340.1803 725.8994 L 339.6706 725.3363 z " fill="#63686a" id="path4743" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 474.9641 724.7723 L 476.4899 725.6178 L 474.9641 724.7723 z " fill="#92a39c" id="path4744" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 502.4296 724.7723 L 502.4296 733.2274 L 502.4296 724.7723 z " fill="#63686a" id="path4745" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 550.7489 725.0539 L 551.7652 725.3363 L 550.7489 725.0539 z " fill="#74787b" id="path4746" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -89.60413 725.6178 L -85.02646 726.4633 L -89.60413 725.6178 z " fill="#434749" id="path4747" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -85.02646 725.6178 L -77.39719 726.4633 L -85.02646 725.6178 z " fill="#c7cdcf" id="path4748" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -42.30241 725.6178 L -40.77656 726.4633 L -42.30241 725.6178 z " fill="#91988e" id="path4749" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -2.630048 725.6178 L -8.733496 730.6909 L -2.630048 725.6178 z " fill="#959a9c" id="path4750" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 29.41301 725.6178 L 30.93886 726.4633 L 29.41301 725.6178 z " fill="#575f5b" id="path4751" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 725.6178 L 136.2231 726.4633 L 134.6973 725.6178 z " fill="#7a8686" id="path4752" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 725.6178 L 142.3266 726.4633 L 140.8008 725.6178 z " fill="#63736d" id="path4753" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 150.4641 726.1818 L 150.9737 726.7449 L 150.4641 726.1818 z " fill="#4c5450" id="path4754" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 725.6178 L 276.6022 728.9998 L 276.6022 725.6178 z " fill="#b3c7c6" id="path4755" stroke="none" style="fill:#b3c7c6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 725.6178 L 313.2229 726.4633 L 311.6971 725.6178 z " fill="#73837d" id="path4756" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 486.1532 726.1818 L 486.6628 726.7449 L 486.1532 726.1818 z " fill="#4c5450" id="path4757" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 518.1963 726.1818 L 518.7059 726.7449 L 518.1963 726.1818 z " fill="#434749" id="path4758" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -109.4403 726.4633 L -107.9143 727.3088 L -109.4403 726.4633 z " fill="#6a7676" id="path4759" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -97.23342 726.4633 L -92.65575 727.3088 L -97.23342 726.4633 z " fill="#5c5a5d" id="path4760" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.525107 726.4633 L 8.050966 727.3088 L 6.525107 726.4633 z " fill="#82928c" id="path4761" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 726.4633 L 24.83542 734.0729 L 24.83542 726.4633 z " fill="#2b332f" id="path4762" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 726.4633 L 137.7491 727.3088 L 136.2231 726.4633 z " fill="#777c7e" id="path4763" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 726.4633 L 143.8525 727.3088 L 142.3266 726.4633 z " fill="#7a8686" id="path4764" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 728.1543 L 146.9043 726.4633 L 143.8525 728.1543 z " fill="#9aaba5" id="path4765" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 726.4633 L 325.4298 728.9998 L 325.4298 726.4633 z " fill="#63686a" id="path4766" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 726.4633 L 421.5591 727.3088 L 413.9298 726.4633 z " fill="#9aaba5" id="path4767" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 726.4633 L 474.9641 727.3088 L 473.4382 726.4633 z " fill="#777c7e" id="path4768" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 726.4633 L 479.5417 731.5364 L 484.1193 726.4633 z " fill="#6a7676" id="path4769" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 537.5244 726.4633 L 539.0502 739.9914 L 537.5244 726.4633 z " fill="#777c7e" id="path4770" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -104.8627 727.3088 L -100.285 728.1543 L -104.8627 727.3088 z " fill="#5d5e66" id="path4771" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -14.83693 727.3088 L -13.31107 728.1543 L -14.83693 727.3088 z " fill="#807b7a" id="path4772" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 727.3088 L 47.72332 729.8453 L 44.6716 727.3088 z " fill="#63686a" id="path4773" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.82679 727.3088 L 55.35259 728.1543 L 53.82679 727.3088 z " fill="#83888b" id="path4774" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 727.3088 L 139.2749 728.1543 L 137.7491 727.3088 z " fill="#6a7676" id="path4775" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 727.3088 L 172.8438 729.8453 L 172.8438 727.3088 z " fill="#777c7e" id="path4776" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 727.3088 L 258.292 732.3819 L 258.292 727.3088 z " fill="#7a8686" id="path4777" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 402.7406 727.5904 L 403.7569 727.8728 L 402.7406 727.5904 z " fill="#97a4a4" id="path4778" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 516.6704 727.8728 L 517.18 728.4359 L 516.6704 727.8728 z " fill="#83888b" id="path4779" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 619.9207 727.3088 L 624.4984 728.1543 L 619.9207 727.3088 z " fill="#7a8686" id="path4780" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -114.0178 728.1543 L -110.9661 729.8453 L -114.0178 728.1543 z " fill="#aebbbc" id="path4781" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -108.4229 728.4359 L -107.4059 728.7183 L -108.4229 728.4359 z " fill="#b5b4ac" id="path4782" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -23.99209 728.1543 L -22.46624 728.9998 L -23.99209 728.1543 z " fill="#5d5e66" id="path4783" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 32.46473 728.1543 L 33.99058 728.9998 L 32.46473 728.1543 z " fill="#686c6f" id="path4784" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.29224 728.1543 L 81.29224 730.6909 L 81.29224 728.1543 z " fill="#484c4e" id="path4785" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 728.1543 L 140.8008 728.9998 L 139.2749 728.1543 z " fill="#5d5e66" id="path4786" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 728.1543 L 153.0076 728.9998 L 151.4818 728.1543 z " fill="#596465" id="path4787" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 728.1543 L 294.9126 728.9998 L 293.3867 728.1543 z " fill="#777c7e" id="path4788" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 728.1543 L 316.2746 728.9998 L 314.7488 728.1543 z " fill="#97a4a4" id="path4789" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.163 728.4359 L 399.1792 728.7183 L 398.163 728.4359 z " fill="#53575a" id="path4790" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.0331 728.1543 L 421.5591 728.9998 L 420.0331 728.1543 z " fill="#686c6f" id="path4791" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 728.1543 L 473.4382 728.9998 L 471.9124 728.1543 z " fill="#7a8686" id="path4792" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 578.7225 728.1543 L 581.7743 729.8453 L 578.7225 728.1543 z " fill="#a1b2ab" id="path4793" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 627.0419 728.4359 L 628.0582 728.7183 L 627.0419 728.4359 z " fill="#82928c" id="path4794" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -46.88 728.9998 L -45.35413 729.8453 L -46.88 728.9998 z " fill="#63736d" id="path4795" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 3.473389 728.9998 L 4.999236 729.8453 L 3.473389 728.9998 z " fill="#686c6f" id="path4796" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 728.9998 L 130.1198 731.5364 L 130.1198 728.9998 z " fill="#63686a" id="path4797" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 728.9998 L 276.6022 733.2274 L 276.6022 728.9998 z " fill="#6a7676" id="path4798" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 392.0595 729.2814 L 393.0757 729.5638 L 392.0595 729.2814 z " fill="#73837d" id="path4799" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 416.9814 728.9998 L 418.5073 729.8453 L 416.9814 728.9998 z " fill="#595a63" id="path4800" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 558.8864 761.129 L 563.4639 762.82 L 563.4639 759.438 L 571.0933 763.6655 C 576.0095 764.057 578.0161 765.1689 578.7225 767.8931 L 579.0613 758.5925 L 578.7225 738.3004 L 578.2145 729.5638 L 564.9899 734.9184 L 555.4104 740.8369 L 554.3088 753.5195 L 554.817 761.693 L 558.8864 761.129 z " fill="#f8feff" id="path4801" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 589.4036 728.9998 L 589.4036 754.365 L 592.4537 735.7647 L 589.4036 728.9998 z " fill="#777c7e" id="path4802" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 601.6105 728.9998 L 604.6623 731.5364 L 601.6105 728.9998 z " fill="#91988e" id="path4803" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -48.40585 729.8453 L -46.88 730.6909 L -48.40585 729.8453 z " fill="#8a9697" id="path4804" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -28.56968 729.8453 L -27.04381 730.6909 L -28.56968 729.8453 z " fill="#83888b" id="path4805" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 15.68025 729.8453 L 15.68025 733.2274 L 15.68025 729.8453 z " fill="#959a9c" id="path4806" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.72332 729.8453 L 55.35259 736.6094 L 47.72332 729.8453 z " fill="#63686a" id="path4807" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 729.8453 L 160.6369 730.6909 L 159.111 729.8453 z " fill="#9facad" id="path4808" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 729.8453 L 207.9386 748.4465 C 211.4145 744.2215 211.4145 734.0703 207.9386 729.8453 z " fill="#83888b" id="path4809" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 729.8453 L 221.6713 747.601 C 225.0465 743.4994 225.0465 733.9469 221.6713 729.8453 z " fill="#575f5b" id="path4810" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 295.4207 730.4093 L 295.9303 730.9724 L 295.4207 730.4093 z " fill="#b0b5b7" id="path4811" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 729.8453 L 317.8005 730.6909 L 316.2746 729.8453 z " fill="#92a39c" id="path4812" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 324.412 730.4093 L 324.9218 730.9724 L 324.412 730.4093 z " fill="#a8aeb0" id="path4813" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 340.6884 729.8453 L 340.6884 734.9184 L 340.6884 729.8453 z " fill="#53575a" id="path4814" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 470.8946 730.4093 L 471.4044 730.9724 L 470.8946 730.4093 z " fill="#4c5450" id="path4815" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 729.8453 L 499.3778 732.3819 L 496.3261 729.8453 z " fill="#888d90" id="path4816" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 515.1446 730.4093 L 515.6542 730.9724 L 515.1446 730.4093 z " fill="#959a9c" id="path4817" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 521.248 730.4093 L 521.7577 730.9724 L 521.248 730.4093 z " fill="#aebbbc" id="path4818" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 522.7739 730.4093 L 523.2835 730.9724 L 522.7739 730.4093 z " fill="#4c5450" id="path4819" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 580.2483 729.8453 L 580.2483 733.2274 L 580.2483 729.8453 z " fill="#33322b" id="path4820" stroke="none" style="fill:#33322b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -49.93172 730.6909 L -48.40585 731.5364 L -49.93172 730.6909 z " fill="#91988e" id="path4821" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -22.46624 730.6909 L -20.94037 731.5364 L -22.46624 730.6909 z " fill="#82928c" id="path4822" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -14.83693 734.9184 L -7.207637 730.6909 L -14.83693 734.9184 z " fill="#777c7e" id="path4823" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 1.947518 730.6909 L 3.473389 731.5364 L 1.947518 730.6909 z " fill="#7a8686" id="path4824" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 35.51644 730.6909 L 37.0423 731.5364 L 35.51644 730.6909 z " fill="#a0a5a8" id="path4825" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.87852 730.6909 L 58.40432 731.5364 L 56.87852 730.6909 z " fill="#63736d" id="path4826" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.29224 730.6909 L 81.29224 733.2274 L 81.29224 730.6909 z " fill="#97a4a4" id="path4827" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 730.6909 L 128.5939 731.5364 L 127.0681 730.6909 z " fill="#8a9697" id="path4828" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.8778 731.2548 L 175.3874 731.8179 L 174.8778 731.2548 z " fill="#b0b5b7" id="path4829" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 730.6909 L 181.999 733.2274 L 181.999 730.6909 z " fill="#9facad" id="path4830" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 412.4038 730.6909 L 413.9298 731.5364 L 412.4038 730.6909 z " fill="#8f9099" id="path4831" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 519.7221 731.2548 L 520.2318 731.8179 L 519.7221 731.2548 z " fill="#575f5b" id="path4832" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 589.4036 730.6909 L 589.4036 740.8369 L 589.4036 730.6909 z " fill="#1d2022" id="path4833" stroke="none" style="fill:#1d2022;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 636.7053 730.6909 L 638.2312 731.5364 L 636.7053 730.6909 z " fill="#575f5b" id="path4834" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -51.45758 731.5364 L -49.93172 732.3819 L -51.45758 731.5364 z " fill="#959a9c" id="path4835" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -33.14726 731.5364 L -31.6214 732.3819 L -33.14726 731.5364 z " fill="#857f8a" id="path4836" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -23.99209 731.5364 L -22.46624 732.3819 L -23.99209 731.5364 z " fill="#74787b" id="path4837" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 37.0423 731.5364 L 38.56816 732.3819 L 37.0423 731.5364 z " fill="#83888b" id="path4838" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 731.5364 L 93.49916 744.2189 C 96.99185 740.7701 98.02482 735.183 95.02496 731.5364 z " fill="#373b3d" id="path4839" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 731.5364 L 131.6456 734.0729 L 128.5939 731.5364 z " fill="#2b332f" id="path4840" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 731.5364 L 162.1628 732.3819 L 160.6369 731.5364 z " fill="#73837d" id="path4841" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.9466 732.1003 L 297.4562 732.6634 L 296.9466 732.1003 z " fill="#a8aeb0" id="path4842" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 731.5364 L 319.3263 732.3819 L 317.8005 731.5364 z " fill="#83888b" id="path4843" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 731.5364 L 323.904 734.0729 L 323.904 731.5364 z " fill="#63686a" id="path4844" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 378.3269 731.8179 L 379.3429 732.1003 L 378.3269 731.8179 z " fill="#53575a" id="path4845" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.5159 733.2274 L 395.6194 731.5364 L 389.5159 733.2274 z " fill="#394444" id="path4846" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 731.5364 L 410.878 732.3819 L 409.3521 731.5364 z " fill="#857f8a" id="path4847" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 736.6094 L 481.0676 731.5364 L 473.4382 736.6094 z " fill="#4c5450" id="path4848" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 515.1446 732.1003 L 515.6542 732.6634 L 515.1446 732.1003 z " fill="#45453d" id="path4849" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 520.7398 731.5364 L 514.6365 740.8369 C 521.1779 739.0926 525.4228 735.1695 520.7398 731.5364 z " fill="#e2ece7" id="path4850" stroke="none" style="fill:#e2ece7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 522.7739 732.1003 L 523.2835 732.6634 L 522.7739 732.1003 z " fill="#b0b5b7" id="path4851" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 551.2571 731.5364 L 552.7829 736.6094 L 551.2571 731.5364 z " fill="#7a8686" id="path4852" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 624.4984 731.5364 L 635.1795 735.7639 L 624.4984 731.5364 z " fill="#4f5058" id="path4853" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 639.7569 731.5364 L 641.2828 732.3819 L 639.7569 731.5364 z " fill="#6a7676" id="path4854" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -52.98344 732.3819 L -51.45758 733.2274 L -52.98344 732.3819 z " fill="#a0a5a8" id="path4855" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -25.51796 732.3819 L -23.99209 733.2274 L -25.51796 732.3819 z " fill="#63686a" id="path4856" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 38.56816 732.3819 L 40.09401 733.2274 L 38.56816 732.3819 z " fill="#74787b" id="path4857" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.81804 732.3819 L 82.81804 735.7639 L 82.81804 732.3819 z " fill="#63686a" id="path4858" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 732.3819 L 130.1198 733.2274 L 128.5939 732.3819 z " fill="#888d90" id="path4859" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 732.3819 L 143.8525 736.6094 L 143.8525 732.3819 z " fill="#c9d6d7" id="path4860" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 732.3819 L 163.6887 733.2274 L 162.1628 732.3819 z " fill="#7a8686" id="path4861" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 732.3819 L 258.292 734.9184 L 258.292 732.3819 z " fill="#394444" id="path4862" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 373.7492 732.6634 L 374.7655 732.9458 L 373.7492 732.6634 z " fill="#53575a" id="path4863" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 732.3819 L 407.8263 733.2274 L 406.3003 732.3819 z " fill="#5c5a5d" id="path4864" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 732.3819 L 497.852 740.8369 L 497.852 732.3819 z " fill="#cad4cf" id="path4865" stroke="none" style="fill:#cad4cf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 519.7221 732.9458 L 520.2318 733.5089 L 519.7221 732.9458 z " fill="#b0b5b7" id="path4866" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -37.72483 733.2274 L -36.19897 734.0729 L -37.72483 733.2274 z " fill="#74787b" id="path4867" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -1.1042 733.2274 L 0.42167 734.0729 L -1.1042 733.2274 z " fill="#83888b" id="path4868" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 40.09401 733.2274 L 41.61988 734.0729 L 40.09401 733.2274 z " fill="#686c6f" id="path4869" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 733.2274 L 175.8955 735.7639 L 175.8955 733.2274 z " fill="#a0a5a8" id="path4870" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 733.2274 L 279.6539 734.0729 L 278.1281 733.2274 z " fill="#83888b" id="path4871" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 733.2274 L 320.8523 734.0729 L 319.3263 733.2274 z " fill="#7a8686" id="path4872" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 733.2274 L 323.904 736.6094 L 322.3781 733.2274 z " fill="#a6b2b3" id="path4873" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 740.8369 L 389.5159 733.2274 C 381.6395 734.4381 369.5379 736.8191 365.1022 740.8369 z " fill="#50564d" id="path4874" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.7745 733.2274 L 406.3003 734.0729 L 404.7745 733.2274 z " fill="#a19ea2" id="path4875" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 733.2274 L 503.9554 740.8369 L 503.9554 733.2274 z " fill="#b0b5b7" id="path4876" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 523.7915 733.2274 L 523.7915 735.7639 L 523.7915 733.2274 z " fill="#575f5b" id="path4877" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.5583 733.7913 L 540.0679 734.3544 L 539.5583 733.7913 z " fill="#394444" id="path4878" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 578.7225 733.2274 L 578.7225 735.7639 L 578.7225 733.2274 z " fill="#a6b2b3" id="path4879" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 600.0846 733.2274 L 600.0846 735.7639 L 600.0846 733.2274 z " fill="#686c6f" id="path4880" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 17.20612 734.0729 L 17.20612 736.6094 L 17.20612 734.0729 z " fill="#4d4b4f" id="path4881" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.36128 734.0729 L 26.36128 752.674 C 29.83719 748.449 29.83719 738.2979 26.36128 734.0729 z " fill="#97a4a4" id="path4882" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.7228 734.0729 L 403.2486 734.9184 L 401.7228 734.0729 z " fill="#63686a" id="path4883" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 513.6187 734.6368 L 514.1283 735.1999 L 513.6187 734.6368 z " fill="#596465" id="path4884" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 518.1963 734.6368 L 518.7059 735.1999 L 518.1963 734.6368 z " fill="#888d90" id="path4885" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -42.30241 734.9184 L -40.77656 735.7639 L -42.30241 734.9184 z " fill="#5d5e66" id="path4886" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -17.88865 734.9184 L -16.36279 735.7639 L -17.88865 734.9184 z " fill="#53575a" id="path4887" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -16.36279 734.9184 L -14.83693 735.7639 L -16.36279 734.9184 z " fill="#abbcb6" id="path4888" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 43.14574 734.9184 L 44.6716 735.7639 L 43.14574 734.9184 z " fill="#595a63" id="path4889" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 734.9184 L 160.6369 736.6094 L 157.5852 734.9184 z " fill="#857f8a" id="path4890" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 184.033 735.4823 L 184.5426 736.0454 L 184.033 735.4823 z " fill="#434749" id="path4891" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 734.9184 L 363.5763 735.7639 L 362.0505 734.9184 z " fill="#92a39c" id="path4892" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 467.843 735.4823 L 468.3526 736.0454 L 467.843 735.4823 z " fill="#33413c" id="path4893" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 563.4639 734.9184 L 564.9899 735.7639 L 563.4639 734.9184 z " fill="#5c5a5d" id="path4894" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -43.82828 735.7639 L -42.30241 736.6094 L -43.82828 735.7639 z " fill="#959a9c" id="path4895" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -17.88865 735.7639 L -16.36279 736.6094 L -17.88865 735.7639 z " fill="#b3c4bd" id="path4896" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -4.155919 735.7639 L -2.630048 736.6094 L -4.155919 735.7639 z " fill="#74787b" id="path4897" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 735.7639 L 46.19746 736.6094 L 44.6716 735.7639 z " fill="#63686a" id="path4898" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.81804 735.7639 L 82.81804 738.3004 L 82.81804 735.7639 z " fill="#a8aeb0" id="path4899" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 735.7639 L 159.111 737.4549 L 154.5336 735.7639 z " fill="#92a39c" id="path4900" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.0771 736.0454 L 158.0933 736.3278 L 157.0771 736.0454 z " fill="#e6f3f4" id="path4901" stroke="none" style="fill:#e6f3f4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 735.7639 L 177.4215 738.3004 L 177.4215 735.7639 z " fill="#7a8686" id="path4902" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 736.3278 L 300.5079 736.8909 L 299.9983 736.3278 z " fill="#aeb3b5" id="path4903" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 735.7639 L 313.2229 738.3004 L 310.1711 735.7639 z " fill="#7a8686" id="path4904" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 342.2142 735.7639 L 342.2142 739.9914 L 342.2142 735.7639 z " fill="#b8bec0" id="path4905" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 735.7639 L 360.5247 736.6094 L 358.9988 735.7639 z " fill="#6a7676" id="path4906" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 735.7639 L 398.671 736.6094 L 397.1453 735.7639 z " fill="#888d90" id="path4907" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.3778 735.7639 L 499.3778 743.3734 L 499.3778 735.7639 z " fill="#2c2b2e" id="path4908" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 512.0928 736.3278 L 512.6025 736.8909 L 512.0928 736.3278 z " fill="#96a3a3" id="path4909" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 561.9381 735.7639 L 563.4639 736.6094 L 561.9381 735.7639 z " fill="#686c6f" id="path4910" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 578.7225 735.7639 L 578.7225 744.2189 L 578.7225 735.7639 z " fill="#373b3d" id="path4911" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 635.1795 735.7639 L 645.8604 739.9914 L 635.1795 735.7639 z " fill="#5c5a5d" id="path4912" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 648.9121 735.7639 L 650.4379 736.6094 L 648.9121 735.7639 z " fill="#a0a5a8" id="path4913" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -59.08687 736.6094 L -57.56101 737.4549 L -59.08687 736.6094 z " fill="#7a8686" id="path4914" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -45.35413 736.6094 L -43.82828 737.4549 L -45.35413 736.6094 z " fill="#959a9c" id="path4915" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -25.51796 741.6824 L -16.36279 736.6094 L -25.51796 741.6824 z " fill="#8a9697" id="path4916" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 17.20612 736.6094 L 17.20612 739.1459 L 17.20612 736.6094 z " fill="#adaeb8" id="path4917" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 736.6094 L 185.0508 739.1459 L 185.0508 736.6094 z " fill="#b8bec0" id="path4918" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 257.2743 737.1733 L 257.7839 737.7364 L 257.2743 737.1733 z " fill="#4f5058" id="path4919" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 736.6094 L 285.7574 737.4549 L 284.2316 736.6094 z " fill="#6a7676" id="path4920" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 736.6094 L 355.947 737.4549 L 354.4212 736.6094 z " fill="#9aaba5" id="path4921" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 560.4122 736.6094 L 561.9381 737.4549 L 560.4122 736.6094 z " fill="#5d5e66" id="path4922" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 650.4379 736.6094 L 651.9639 737.4549 L 650.4379 736.6094 z " fill="#97a4a4" id="path4923" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -60.61273 737.4549 L -59.08687 738.3004 L -60.61273 737.4549 z " fill="#9facad" id="path4924" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 63.49005 738.0188 L 63.99971 738.5819 L 63.49005 738.0188 z " fill="#42514b" id="path4925" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 737.4549 L 166.7404 738.3004 L 165.2145 737.4549 z " fill="#63686a" id="path4926" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 737.4549 L 288.8092 738.3004 L 287.2833 737.4549 z " fill="#83888b" id="path4927" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.3872 737.7364 L 353.4034 738.0188 L 352.3872 737.7364 z " fill="#3c3837" id="path4928" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 520.7398 737.4549 L 522.2657 738.3004 L 520.7398 737.4549 z " fill="#73837d" id="path4929" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 598.5588 737.4549 L 598.5588 741.6824 L 598.5588 737.4549 z " fill="#4d4b4f" id="path4930" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 622.9725 739.9914 L 626.0242 737.4549 L 622.9725 739.9914 z " fill="#b8c5c5" id="path4931" stroke="none" style="fill:#b8c5c5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 651.9639 737.4549 L 653.4897 738.3004 L 651.9639 737.4549 z " fill="#97a4a4" id="path4932" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -49.93172 738.3004 L -48.40585 739.1459 L -49.93172 738.3004 z " fill="#575f5b" id="path4933" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 738.3004 L 149.956 739.1459 L 148.4301 738.3004 z " fill="#595a63" id="path4934" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 738.3004 L 255.2402 740.8369 L 255.2402 738.3004 z " fill="#c8c5ca" id="path4935" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 312.7148 738.5819 L 313.7311 738.8643 L 312.7148 738.5819 z " fill="#484c4e" id="path4936" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.3177 738.3004 L 349.8435 739.1459 L 348.3177 738.3004 z " fill="#6a7676" id="path4937" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 540.576 738.3004 L 540.576 746.7554 L 543.6278 746.7554 L 540.576 738.3004 z " fill="#434749" id="path4938" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 557.3605 738.3004 L 558.8864 739.1459 L 557.3605 738.3004 z " fill="#5c5a5d" id="path4939" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 627.55 738.3004 L 629.076 739.1459 L 627.55 738.3004 z " fill="#5d5e66" id="path4940" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 653.4897 738.3004 L 655.0156 739.1459 L 653.4897 738.3004 z " fill="#91a4b0" id="path4941" stroke="none" style="fill:#91a4b0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -51.45758 739.1459 L -49.93172 739.9914 L -51.45758 739.1459 z " fill="#82928c" id="path4942" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -37.72483 739.1459 L -36.19897 739.9914 L -37.72483 739.1459 z " fill="#596465" id="path4943" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 18.73199 739.1459 L 18.73199 741.6824 L 18.73199 739.1459 z " fill="#686c6f" id="path4944" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 84.34397 739.1459 L 84.34397 741.6824 L 84.34397 739.1459 z " fill="#595a63" id="path4945" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 739.1459 L 151.4818 739.9914 L 149.956 739.1459 z " fill="#857f8a" id="path4946" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 179.4554 739.7099 L 179.9649 740.273 L 179.4554 739.7099 z " fill="#8a9697" id="path4947" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 739.1459 L 279.6539 741.6824 L 284.2316 740.8369 L 279.6539 739.1459 z " fill="#b8bec0" id="path4948" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 313.2229 739.1459 L 316.2746 742.5279 L 313.2229 739.1459 z " fill="#7a8686" id="path4949" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 464.7912 739.7099 L 465.3009 740.273 L 464.7912 739.7099 z " fill="#53575a" id="path4950" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 739.1459 L 481.0676 739.9914 L 479.5417 739.1459 z " fill="#857f8a" id="path4951" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 612.7996 739.7099 L 613.3092 740.273 L 612.7996 739.7099 z " fill="#b7c3c4" id="path4952" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 629.076 739.1459 L 630.6018 739.9914 L 629.076 739.1459 z " fill="#888d90" id="path4953" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 655.0156 739.1459 L 656.5414 739.9914 L 655.0156 739.1459 z " fill="#a0a5a8" id="path4954" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -63.66445 739.9914 L -62.13859 740.8369 L -63.66445 739.9914 z " fill="#6a7676" id="path4955" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -39.25069 739.9914 L -37.72483 740.8369 L -39.25069 739.9914 z " fill="#83888b" id="path4956" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 739.9914 L 52.30086 740.8369 L 50.77506 739.9914 z " fill="#959a9c" id="path4957" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 64.50778 739.9914 L 64.50778 742.5279 L 64.50778 739.9914 z " fill="#6a7676" id="path4958" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.7743 740.5554 L 169.284 741.1185 L 168.7743 740.5554 z " fill="#484c4e" id="path4959" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 739.9914 L 301.0161 742.5279 L 302.5419 739.9914 z " fill="#b3c4bd" id="path4960" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 343.232 740.273 L 344.2483 740.5554 L 343.232 740.273 z " fill="#50564d" id="path4961" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 745.9099 L 365.1022 739.9914 L 349.8435 745.9099 z " fill="#82928c" id="path4962" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 739.9914 L 384.9384 740.8369 L 383.4125 739.9914 z " fill="#74787b" id="path4963" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 739.9914 L 479.5417 740.8369 L 478.0159 739.9914 z " fill="#91988e" id="path4964" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 622.9725 739.9914 L 622.9725 744.2189 L 622.9725 739.9914 z " fill="#63686a" id="path4965" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -40.77656 740.8369 L -39.25069 741.6824 L -40.77656 740.8369 z " fill="#83888b" id="path4966" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 52.30086 740.8369 L 53.82679 741.6824 L 52.30086 740.8369 z " fill="#5c5a5d" id="path4967" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 740.8369 L 95.02496 750.983 L 95.02496 740.8369 z " fill="#686c6f" id="path4968" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 740.8369 L 186.5765 743.3734 L 186.5765 740.8369 z " fill="#8a9697" id="path4969" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.7484 741.4009 L 256.258 741.964 L 255.7484 741.4009 z " fill="#434749" id="path4970" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.9744 741.9682 C 280.3804 743.08 281.8405 746.8704 281.6666 748.4465 C 280.6473 757.6599 293.3822 761.709 308.6439 759.7999 C 311.7185 759.4152 315.7803 759.1489 318.0768 757.8155 C 320.5639 756.3714 318.2018 754.7632 315.9222 753.8408 C 307.7192 750.5171 299.8655 747.2129 291.867 743.7175 C 289.9886 742.8966 285.5667 740.858 282.9744 741.9682 z " fill="#f8feff" id="path4971" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 740.8369 L 287.2833 741.6824 L 285.7574 740.8369 z " fill="#63686a" id="path4972" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 740.8369 L 381.8866 741.6824 L 380.3607 740.8369 z " fill="#5d5e66" id="path4973" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 463.2653 741.4009 L 463.7749 741.964 L 463.2653 741.4009 z " fill="#82928c" id="path4974" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 740.8369 L 478.0159 741.6824 L 476.4899 740.8369 z " fill="#8f9099" id="path4975" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 514.1283 741.1185 L 515.1446 741.4009 L 514.1283 741.1185 z " fill="#4c5450" id="path4976" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 528.3692 740.8369 L 528.3692 743.3734 L 528.3692 740.8369 z " fill="#7a8686" id="path4977" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 552.7829 740.8369 L 552.7829 756.9015 C 555.9522 753.0511 555.9522 744.6873 552.7829 740.8369 z " fill="#888d90" id="path4978" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 614.3255 741.4009 L 614.835 741.964 L 614.3255 741.4009 z " fill="#b7c3c4" id="path4979" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 633.6535 740.8369 L 635.1795 741.6824 L 633.6535 740.8369 z " fill="#63686a" id="path4980" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -34.67311 748.4465 L -23.99209 741.6824 L -34.67311 748.4465 z " fill="#434749" id="path4981" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -11.78521 741.6824 L -10.25936 742.5279 L -11.78521 741.6824 z " fill="#63686a" id="path4982" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 741.6824 L 102.6542 745.9099 L 102.6542 741.6824 z " fill="#777c7e" id="path4983" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 741.6824 L 157.5852 742.5279 L 156.0593 741.6824 z " fill="#595a63" id="path4984" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 741.6824 L 180.4732 744.2189 L 180.4732 741.6824 z " fill="#7a8686" id="path4985" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 280.1622 742.2464 L 280.6717 742.8095 L 280.1622 742.2464 z " fill="#6a7676" id="path4986" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 741.6824 L 288.8092 742.5279 L 287.2833 741.6824 z " fill="#83888b" id="path4987" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 378.8349 741.6824 L 380.3607 742.5279 L 378.8349 741.6824 z " fill="#857f8a" id="path4988" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 598.5588 741.6824 L 598.5588 745.9099 L 598.5588 741.6824 z " fill="#a8aeb0" id="path4989" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 635.1795 741.6824 L 636.7053 742.5279 L 635.1795 741.6824 z " fill="#74787b" id="path4990" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -66.71617 742.5279 L -65.19032 743.3734 L -66.71617 742.5279 z " fill="#686c6f" id="path4991" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 53.82679 742.5279 L 55.35259 743.3734 L 53.82679 742.5279 z " fill="#7a8686" id="path4992" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 742.5279 L 171.318 743.3734 L 169.7921 742.5279 z " fill="#82928c" id="path4993" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 375.7832 742.5279 L 377.3091 743.3734 L 375.7832 742.5279 z " fill="#595a63" id="path4994" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 742.5279 L 474.9641 743.3734 L 473.4382 742.5279 z " fill="#8f9099" id="path4995" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 505.4813 744.2189 L 508.533 742.5279 L 505.4813 744.2189 z " fill="#6a7676" id="path4996" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.895 742.5279 L 513.1106 750.983 L 531.4209 746.7554 L 529.895 742.5279 z " fill="#53575a" id="path4997" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 615.3432 742.5279 L 616.869 743.3734 L 615.3432 742.5279 z " fill="#7a8686" id="path4998" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 659.5932 742.5279 L 661.1191 743.3734 L 659.5932 742.5279 z " fill="#596465" id="path4999" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -68.24204 743.3734 L -66.71617 744.2189 L -68.24204 743.3734 z " fill="#8a9697" id="path5000" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 55.35259 743.3734 L 56.87852 744.2189 L 55.35259 743.3734 z " fill="#595a63" id="path5001" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 85.86977 743.3734 L 85.86977 745.9099 L 85.86977 743.3734 z " fill="#74787b" id="path5002" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 743.3734 L 160.6369 744.2189 L 159.111 743.3734 z " fill="#53575a" id="path5003" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 743.3734 L 461.2313 745.9099 L 461.2313 743.3734 z " fill="#9aaba5" id="path5004" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 743.3734 L 473.4382 744.2189 L 471.9124 743.3734 z " fill="#74787b" id="path5005" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.3778 743.3734 L 499.3778 749.292 L 499.3778 743.3734 z " fill="#c7d4d5" id="path5006" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 527.861 743.655 L 528.8772 743.9374 L 527.861 743.655 z " fill="#aebbbc" id="path5007" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 639.7569 743.3734 L 641.2828 744.2189 L 639.7569 743.3734 z " fill="#a19ea2" id="path5008" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 661.1191 743.3734 L 662.6449 744.2189 L 661.1191 743.3734 z " fill="#7a8686" id="path5009" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -62.13859 744.2189 L -60.61273 745.0644 L -62.13859 744.2189 z " fill="#53575a" id="path5010" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 744.2189 L 172.8438 745.0644 L 171.318 744.2189 z " fill="#8a9697" id="path5011" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 744.2189 L 181.999 746.7554 L 181.999 744.2189 z " fill="#484c4e" id="path5012" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 744.2189 L 273.5507 745.9099 L 264.3955 744.2189 z " fill="#bbcdc6" id="path5013" stroke="none" style="fill:#bbcdc6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 470.3865 744.2189 L 471.9124 745.0644 L 470.3865 744.2189 z " fill="#5d5e66" id="path5014" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 578.7225 744.2189 L 578.7225 760.2835 C 581.8917 756.4323 581.8917 748.0702 578.7225 744.2189 z " fill="#575f5b" id="path5015" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 597.0329 744.2189 L 597.0329 747.601 L 597.0329 744.2189 z " fill="#222628" id="path5016" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 624.4984 744.2189 L 624.4984 748.4465 L 624.4984 744.2189 z " fill="#9d9c94" id="path5017" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 662.6449 744.2189 L 664.1707 745.0644 L 662.6449 744.2189 z " fill="#9facad" id="path5018" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -63.66445 745.0644 L -62.13859 745.9099 L -63.66445 745.0644 z " fill="#686c6f" id="path5019" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -46.88 745.0644 L -45.35413 745.9099 L -46.88 745.0644 z " fill="#7a8686" id="path5020" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -16.36279 745.0644 L -14.83693 745.9099 L -16.36279 745.0644 z " fill="#82928c" id="path5021" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 20.25784 745.0644 L 20.25784 748.4465 L 20.25784 745.0644 z " fill="#7a8686" id="path5022" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 66.03358 745.0644 L 66.03358 747.601 L 66.03358 745.0644 z " fill="#a1b2ab" id="path5023" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.6105 745.6284 L 189.1202 746.1915 L 188.6105 745.6284 z " fill="#6a7676" id="path5024" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 745.0644 L 281.1799 748.4465 L 281.1799 745.0644 z " fill="#53575a" id="path5025" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 618.9031 745.6284 L 619.4127 746.1915 L 618.9031 745.6284 z " fill="#a4b5ae" id="path5026" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -71.29376 745.9099 L -69.76789 746.7554 L -71.29376 745.9099 z " fill="#575f5b" id="path5027" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -65.19032 745.9099 L -63.66445 746.7554 L -65.19032 745.9099 z " fill="#686c6f" id="path5028" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -48.40585 745.9099 L -46.88 746.7554 L -48.40585 745.9099 z " fill="#97a4a4" id="path5029" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -17.88865 745.9099 L -16.36279 746.7554 L -17.88865 745.9099 z " fill="#74787b" id="path5030" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 58.40432 745.9099 L 59.93025 746.7554 L 58.40432 745.9099 z " fill="#a19ea2" id="path5031" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 745.9099 L 163.6887 746.7554 L 162.1628 745.9099 z " fill="#a0a5a8" id="path5032" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 745.9099 L 174.3697 746.7554 L 172.8438 745.9099 z " fill="#92a39c" id="path5033" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 745.9099 L 255.2402 748.4465 L 255.2402 745.9099 z " fill="#53575a" id="path5034" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 309.6631 746.1915 L 310.6794 746.4739 L 309.6631 746.1915 z " fill="#484c4e" id="path5035" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 750.1375 C 340.4931 752.006 345.8733 749.2083 349.8435 745.9099 L 333.0591 750.1375 z " fill="#82928c" id="path5036" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.1539 745.9099 L 369.6797 746.7554 L 368.1539 745.9099 z " fill="#989d9f" id="path5037" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 745.9099 L 459.7054 748.4465 L 459.7054 745.9099 z " fill="#b5babd" id="path5038" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 647.3862 745.9099 L 648.9121 746.7554 L 647.3862 745.9099 z " fill="#888d90" id="path5039" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -72.81962 746.7554 L -71.29376 747.601 L -72.81962 746.7554 z " fill="#8a9697" id="path5040" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -66.71617 746.7554 L -65.19032 747.601 L -66.71617 746.7554 z " fill="#90878d" id="path5041" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -49.93172 746.7554 L -48.40585 747.601 L -49.93172 746.7554 z " fill="#96a3a3" id="path5042" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -19.41452 746.7554 L -17.88865 747.601 L -19.41452 746.7554 z " fill="#575f5b" id="path5043" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.93025 746.7554 L 61.45605 747.601 L 59.93025 746.7554 z " fill="#63686a" id="path5044" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.3957 746.7554 L 87.3957 749.292 L 87.3957 746.7554 z " fill="#484c4e" id="path5045" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 163.6887 746.7554 L 165.2145 747.601 L 163.6887 746.7554 z " fill="#63686a" id="path5046" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 746.7554 L 181.999 749.292 L 181.999 746.7554 z " fill="#b7c3c4" id="path5047" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 746.7554 L 299.4902 747.601 L 297.9644 746.7554 z " fill="#63686a" id="path5048" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 746.7554 L 314.7488 748.4465 L 310.1711 746.7554 z " fill="#8a9697" id="path5049" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 501.4118 747.3194 L 501.9215 747.8825 L 501.4118 747.3194 z " fill="#50564d" id="path5050" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 590.9295 746.7554 L 590.9295 750.1375 L 590.9295 746.7554 z " fill="#33322b" id="path5051" stroke="none" style="fill:#33322b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 665.6966 746.7554 L 667.2223 747.601 L 665.6966 746.7554 z " fill="#74787b" id="path5052" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 66.03358 747.601 L 66.03358 750.1375 L 66.03358 747.601 z " fill="#63736d" id="path5053" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.8778 748.1649 L 175.3874 748.728 L 174.8778 748.1649 z " fill="#394444" id="path5054" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 190.1365 748.1649 L 190.6461 748.728 L 190.1365 748.1649 z " fill="#959a9c" id="path5055" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 747.601 L 221.6713 751.8285 L 221.6713 747.601 z " fill="#2b332f" id="path5056" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 747.601 L 272.0248 747.601 L 264.3955 747.601 z " fill="#90878d" id="path5057" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 747.601 L 301.0161 748.4465 L 299.4902 747.601 z " fill="#6a7676" id="path5058" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.5763 747.601 L 365.1022 748.4465 L 363.5763 747.601 z " fill="#777c7e" id="path5059" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 747.601 L 467.3348 748.4465 L 465.8089 747.601 z " fill="#857f8a" id="path5060" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 597.0329 747.601 L 597.0329 750.983 L 597.0329 747.601 z " fill="#53575a" id="path5061" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 622.4645 747.8825 L 623.4805 748.1649 L 622.4645 747.8825 z " fill="#4d4b4f" id="path5062" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 651.9639 747.601 L 653.4897 748.4465 L 651.9639 747.601 z " fill="#9d9c94" id="path5063" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 667.2223 747.601 L 668.7484 748.4465 L 667.2223 747.601 z " fill="#9facad" id="path5064" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -36.19897 748.4465 L -39.25069 751.8285 L -36.19897 748.4465 z " fill="#4c5450" id="path5065" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 20.25784 748.4465 L 20.25784 762.82 L 20.25784 748.4465 z " fill="#c6ced6" id="path5066" stroke="none" style="fill:#c6ced6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 61.45605 748.4465 L 62.98185 749.292 L 61.45605 748.4465 z " fill="#90878d" id="path5067" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.55089 748.4465 L 95.02496 759.438 L 98.07669 759.438 L 96.55089 748.4465 z " fill="#333739" id="path5068" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.1284 748.4465 L 101.1284 752.674 L 101.1284 748.4465 z " fill="#373b3d" id="path5069" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 748.4465 L 207.9386 754.365 L 207.9386 748.4465 z " fill="#a8aeb0" id="path5070" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 748.4465 L 273.5507 749.292 L 268.973 748.4465 z " fill="#c8cfc4" id="path5071" stroke="none" style="fill:#c8cfc4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 748.4465 L 302.5419 749.292 L 301.0161 748.4465 z " fill="#83888b" id="path5072" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -22.46624 749.292 L -20.94037 750.1375 L -22.46624 749.292 z " fill="#a19ea2" id="path5073" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.90377 749.8559 L 88.41343 750.419 L 87.90377 749.8559 z " fill="#c3c5c2" id="path5074" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 184.033 749.8559 L 184.5426 750.419 L 184.033 749.8559 z " fill="#857f8a" id="path5075" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 190.1365 749.8559 L 190.6461 750.419 L 190.1365 749.8559 z " fill="#484c4e" id="path5076" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 257.2743 749.8559 L 257.7839 750.419 L 257.2743 749.8559 z " fill="#83888b" id="path5077" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 280.1622 749.8559 L 280.6717 750.419 L 280.1622 749.8559 z " fill="#686c6f" id="path5078" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 656.5414 749.292 L 658.0673 750.1375 L 656.5414 749.292 z " fill="#90878d" id="path5079" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 668.7484 749.292 L 670.2741 750.1375 L 668.7484 749.292 z " fill="#686c6f" id="path5080" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -54.5093 750.1375 L -52.98344 750.983 L -54.5093 750.1375 z " fill="#7a8686" id="path5081" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -23.99209 750.1375 L -22.46624 750.983 L -23.99209 750.1375 z " fill="#959a9c" id="path5082" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 62.98185 750.1375 L 64.50778 750.983 L 62.98185 750.1375 z " fill="#a0a5a8" id="path5083" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 751.8285 L 345.266 751.8285 L 328.4816 751.8285 z " fill="#42514b" id="path5084" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 357.981 750.7014 L 358.4906 751.2645 L 357.981 750.7014 z " fill="#33413c" id="path5085" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 750.1375 L 461.2313 752.674 L 458.1796 750.1375 z " fill="#959a9c" id="path5086" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 502.4296 755.2105 L 513.1106 750.1375 L 502.4296 755.2105 z " fill="#989d9f" id="path5087" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 530.9128 750.419 L 531.929 750.7014 L 530.9128 750.419 z " fill="#736c77" id="path5088" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -25.51796 750.983 L -23.99209 751.8285 L -25.51796 750.983 z " fill="#807b7a" id="path5089" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 89.42971 751.5469 L 89.93923 752.11 L 89.42971 751.5469 z " fill="#434749" id="path5090" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 750.983 L 169.7921 751.8285 L 168.2662 750.983 z " fill="#857f8a" id="path5091" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 751.8285 L 258.292 750.983 L 250.6627 751.8285 z " fill="#bdd2d1" id="path5092" stroke="none" style="fill:#bdd2d1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 750.983 L 279.6539 754.365 L 279.6539 750.983 z " fill="#aebbbc" id="path5093" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 750.983 L 308.6453 751.8285 L 307.1196 750.983 z " fill="#90878d" id="path5094" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 750.983 L 366.6279 751.8285 L 358.9988 750.983 z " fill="#73837d" id="path5095" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 750.983 L 372.7314 751.8285 L 366.6279 750.983 z " fill="#b3c4bd" id="path5096" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 750.983 L 462.7572 751.8285 L 461.2313 750.983 z " fill="#857f8a" id="path5097" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 750.983 L 497.852 751.8285 L 496.3261 750.983 z " fill="#73837d" id="path5098" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 526.8433 750.983 L 528.3692 751.8285 L 526.8433 750.983 z " fill="#736c77" id="path5099" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.8003 780.5756 C 505.7209 776.5223 515.6176 771.248 523.3476 765.3566 C 527.5132 762.1808 527.5513 757.736 535.9985 758.5925 C 535.5392 756.5988 535.1684 753.2743 531.6986 752.0787 C 526.1506 750.1654 515.5596 755.5174 511.8228 757.3674 C 502.0252 762.2147 495.8089 773.4726 494.8003 780.5756 z " fill="#f2f7f9" id="path5100" stroke="none" style="fill:#f2f7f9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 533.4548 751.5469 L 533.9644 752.11 L 533.4548 751.5469 z " fill="#7a8686" id="path5101" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 597.0329 750.983 L 597.0329 754.365 L 597.0329 750.983 z " fill="#959a9c" id="path5102" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 661.1191 750.983 L 662.6449 751.8285 L 661.1191 750.983 z " fill="#90878d" id="path5103" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -40.77656 751.8285 L -48.40585 758.5925 L -40.77656 751.8285 z " fill="#53575a" id="path5104" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -27.04381 751.8285 L -25.51796 752.674 L -27.04381 751.8285 z " fill="#5c5a5d" id="path5105" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.6623 752.3924 L 192.1719 752.9555 L 191.6623 752.3924 z " fill="#9facad" id="path5106" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 751.8285 L 232.3523 752.674 L 224.7231 751.8285 z " fill="#c3dcd4" id="path5107" stroke="none" style="fill:#c3dcd4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 751.8285 L 236.93 752.674 L 232.3523 751.8285 z " fill="#92a39c" id="path5108" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 236.93 751.8285 L 246.085 752.674 L 236.93 751.8285 z " fill="#42514b" id="path5109" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 751.8285 L 250.6627 752.674 L 246.085 751.8285 z " fill="#82928c" id="path5110" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.2573 751.8285 L 378.8349 752.674 L 374.2573 751.8285 z " fill="#4c5450" id="path5111" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.8003 751.8285 L 496.3261 752.674 L 494.8003 751.8285 z " fill="#93aca4" id="path5112" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 671.8 751.8285 L 673.3258 752.674 L 671.8 751.8285 z " fill="#63686a" id="path5113" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -57.56101 752.674 L -56.03515 753.5195 L -57.56101 752.674 z " fill="#74787b" id="path5114" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 89.42971 753.2379 L 89.93923 753.801 L 89.42971 753.2379 z " fill="#b5babd" id="path5115" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.1284 752.674 L 101.1284 755.2105 L 101.1284 752.674 z " fill="#989d9f" id="path5116" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.9473 752.674 L 180.4732 753.5195 L 178.9473 752.674 z " fill="#93aca4" id="path5117" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 752.674 L 183.5249 756.9015 L 185.0508 752.674 z " fill="#6a7676" id="path5118" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 382.9044 752.9555 L 383.9206 753.2379 L 382.9044 752.9555 z " fill="#575f5b" id="path5119" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 752.674 L 389.5159 753.5195 L 384.9384 752.674 z " fill="#b3c4bd" id="path5120" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 665.6966 752.674 L 667.2223 753.5195 L 665.6966 752.674 z " fill="#9d9c94" id="path5121" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 673.3258 752.674 L 674.8517 753.5195 L 673.3258 752.674 z " fill="#91a4b0" id="path5122" stroke="none" style="fill:#91a4b0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -28.56968 753.5195 L -27.04381 754.365 L -28.56968 753.5195 z " fill="#989d9f" id="path5123" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 753.5195 L 172.8438 754.365 L 171.318 753.5195 z " fill="#5d5e66" id="path5124" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.6623 754.0834 L 192.1719 754.6465 L 191.6623 754.0834 z " fill="#45453d" id="path5125" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 390.5336 753.801 L 391.5499 754.0834 L 390.5336 753.801 z " fill="#575f5b" id="path5126" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 393.5853 753.801 L 394.6016 754.0834 L 393.5853 753.801 z " fill="#a3bcb3" id="path5127" stroke="none" style="fill:#a3bcb3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 753.5195 L 534.4727 756.056 L 534.4727 753.5195 z " fill="#8a9697" id="path5128" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -30.09554 754.365 L -28.56968 755.2105 L -30.09554 754.365 z " fill="#857f8a" id="path5129" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 754.365 L 24.83542 756.9015 L 24.83542 754.365 z " fill="#4f5058" id="path5130" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 754.365 L 90.44743 756.9015 L 90.44743 754.365 z " fill="#373b3d" id="path5131" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.163 754.6465 L 399.1792 754.9289 L 398.163 754.6465 z " fill="#82928c" id="path5132" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 491.7485 754.365 L 493.2743 755.2105 L 491.7485 754.365 z " fill="#575f5b" id="path5133" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 500.9038 754.365 L 496.3261 757.747 L 500.9038 754.365 z " fill="#53575a" id="path5134" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 517.6883 754.365 L 519.214 755.2105 L 517.6883 754.365 z " fill="#736c77" id="path5135" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 587.8778 754.365 L 587.8778 761.129 L 590.9295 754.365 L 587.8778 754.365 z " fill="#434749" id="path5136" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 595.507 754.365 L 595.507 756.9015 L 595.507 754.365 z " fill="#413b45" id="path5137" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 670.2741 754.365 L 671.8 755.2105 L 670.2741 754.365 z " fill="#857f8a" id="path5138" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 673.3258 756.056 L 676.3776 754.365 L 673.3258 756.056 z " fill="#4d4b4f" id="path5139" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 755.2105 L 174.3697 756.056 L 172.8438 755.2105 z " fill="#888d90" id="path5140" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.3271 755.492 L 202.3432 755.7744 L 201.3271 755.492 z " fill="#6a7676" id="path5141" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 321.3603 755.7744 L 321.8701 756.3376 L 321.3603 755.7744 z " fill="#74787b" id="path5142" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.2664 755.492 L 405.2827 755.7744 L 404.2664 755.492 z " fill="#92a39c" id="path5143" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 490.2226 755.2105 L 491.7485 756.056 L 490.2226 755.2105 z " fill="#73837d" id="path5144" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 536.5065 755.7744 L 537.0162 756.3376 L 536.5065 755.7744 z " fill="#4c5450" id="path5145" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 756.056 L 198.7834 756.9015 L 194.2059 756.056 z " fill="#394444" id="path5146" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.3699 756.3376 L 411.386 756.62 L 410.3699 756.3376 z " fill="#bdd2d1" id="path5147" stroke="none" style="fill:#bdd2d1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 513.1106 756.056 L 514.6365 756.9015 L 513.1106 756.056 z " fill="#74787b" id="path5148" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -33.14726 756.9015 L -31.6214 757.747 L -33.14726 756.9015 z " fill="#96a3a3" id="path5149" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 756.9015 L 24.83542 759.438 L 24.83542 756.9015 z " fill="#b7c3c4" id="path5150" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 756.9015 L 210.9904 758.5925 L 244.5593 758.5925 L 210.9904 756.9015 z " fill="#4c5450" id="path5151" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 756.9015 L 249.1368 757.747 L 235.4041 756.9015 z " fill="#231c21" id="path5152" stroke="none" style="fill:#231c21;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 346.7918 756.9015 L 363.5763 757.747 L 346.7918 756.9015 z " fill="#7a8686" id="path5153" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 528.3692 756.9015 L 528.3692 760.2835 L 528.3692 756.9015 z " fill="#333739" id="path5154" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 536.5065 757.4655 L 537.0162 758.0286 L 536.5065 757.4655 z " fill="#91988e" id="path5155" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 552.7829 756.9015 L 552.7829 767.0476 L 552.7829 756.9015 z " fill="#cfdcdc" id="path5156" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 596.0151 757.4655 L 596.5247 758.0286 L 596.0151 757.4655 z " fill="#a0a5a8" id="path5157" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -34.67311 757.747 L -33.14726 758.5925 L -34.67311 757.747 z " fill="#97a4a4" id="path5158" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 757.747 L 99.6025 760.2835 L 99.6025 757.747 z " fill="#888d90" id="path5159" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 757.747 L 175.8955 761.9745 L 175.8955 757.747 z " fill="#a0a5a8" id="path5160" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 757.747 L 261.3437 758.5925 L 244.5593 757.747 z " fill="#83888b" id="path5161" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 758.5925 L 267.4472 758.5925 L 256.7661 758.5925 z " fill="#45453d" id="path5162" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 757.747 L 288.8092 758.5925 L 287.2833 757.747 z " fill="#575f5b" id="path5163" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 757.747 L 352.8953 764.5111 L 333.0591 757.747 z " fill="#686c6f" id="path5164" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 355.947 757.747 L 369.6797 758.5925 L 355.947 757.747 z " fill="#abbcb6" id="path5165" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 758.5925 L 375.7832 758.5925 L 365.1022 758.5925 z " fill="#50564d" id="path5166" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 757.747 L 488.6968 758.5925 L 487.1709 757.747 z " fill="#63686a" id="path5167" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 531.4209 757.747 L 532.9468 758.5925 L 531.4209 757.747 z " fill="#6a7676" id="path5168" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -63.66445 758.5925 L -62.13859 759.438 L -63.66445 758.5925 z " fill="#a19ea2" id="path5169" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -36.19897 758.5925 L -34.67311 759.438 L -36.19897 758.5925 z " fill="#807b7a" id="path5170" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 758.5925 L 270.4989 759.438 L 262.8695 758.5925 z " fill="#a8aeb0" id="path5171" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 760.2835 L 272.0248 758.5925 L 267.4472 760.2835 z " fill="#373b3d" id="path5172" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 758.5925 L 291.8609 759.438 L 290.3351 758.5925 z " fill="#97a4a4" id="path5173" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 758.5925 L 409.3521 762.82 C 399.1761 759.2393 382.9807 758.606 371.2056 758.5925 z " fill="#73837d" id="path5174" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.0331 758.5925 L 421.5591 759.438 L 420.0331 758.5925 z " fill="#6a7676" id="path5175" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 758.5925 L 487.1709 759.438 L 485.6452 758.5925 z " fill="#97a4a4" id="path5176" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 758.5925 L 487.1709 763.6655 L 493.2743 758.5925 z " fill="#333739" id="path5177" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 507.0071 758.5925 L 508.533 759.438 L 507.0071 758.5925 z " fill="#807b7a" id="path5178" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 758.5925 L 537.5244 762.82 L 534.4727 758.5925 z " fill="#b7c3c4" id="path5179" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -51.45758 759.438 L -59.08687 767.0476 L -51.45758 759.438 z " fill="#686c6f" id="path5180" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 759.438 L 91.97323 761.9745 L 91.97323 759.438 z " fill="#63686a" id="path5181" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 761.129 L 165.2145 759.438 L 162.1628 761.129 z " fill="#b8bec0" id="path5182" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 759.438 L 313.2229 760.2835 L 307.1196 759.438 z " fill="#c2ccc7" id="path5183" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 505.9893 760.002 L 506.499 760.5651 L 505.9893 760.002 z " fill="#a0a5a8" id="path5184" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 594.4893 760.002 L 594.999 760.5651 L 594.4893 760.002 z " fill="#434749" id="path5185" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -65.19032 760.2835 L -63.66445 761.129 L -65.19032 760.2835 z " fill="#a0a5a8" id="path5186" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 195.7317 763.6655 L 200.3094 760.2835 L 195.7317 763.6655 z " fill="#9facad" id="path5187" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 760.2835 L 305.5937 761.129 L 301.0161 760.2835 z " fill="#a4b5ae" id="path5188" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.1365 760.2835 L 427.6625 761.129 L 426.1365 760.2835 z " fill="#63736d" id="path5189" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 760.2835 L 485.6452 761.129 L 484.1193 760.2835 z " fill="#6a7676" id="path5190" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -39.25069 761.129 L -37.72483 761.9745 L -39.25069 761.129 z " fill="#97a4a4" id="path5191" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 763.6655 L 189.6282 761.129 L 181.999 763.6655 z " fill="#c2ccc7" id="path5192" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7103 762.1022 C 192.9653 764.7748 196.423 776.7024 205.8422 772.748 C 213.0671 769.7151 209.2616 757.1932 198.7103 762.1022 z " fill="#f8feff" id="path5193" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 761.129 L 209.4645 772.1206 L 209.4645 761.129 z " fill="#6a7676" id="path5194" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 594.4893 761.693 L 594.999 762.2561 L 594.4893 761.693 z " fill="#83888b" id="path5195" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -66.71617 761.9745 L -65.19032 762.82 L -66.71617 761.9745 z " fill="#a0a5a8" id="path5196" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -40.77656 761.9745 L -39.25069 762.82 L -40.77656 761.9745 z " fill="#74787b" id="path5197" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 21.78371 761.9745 L 23.30956 762.82 L 21.78371 761.9745 z " fill="#63686a" id="path5198" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 761.9745 L 98.07669 764.5111 L 98.07669 761.9745 z " fill="#53575a" id="path5199" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 153.0076 764.5111 L 156.0593 761.9745 L 153.0076 764.5111 z " fill="#8a9697" id="path5200" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 761.9745 L 171.318 762.82 L 169.7921 761.9745 z " fill="#97a4a4" id="path5201" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 761.9745 L 175.8955 764.5111 L 175.8955 761.9745 z " fill="#53575a" id="path5202" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 770.4296 L 227.7748 761.9745 C 220.9343 762.2781 223.1971 767.6267 223.1971 770.4296 z " fill="#373b3d" id="path5203" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 764.5111 L 284.2316 761.9745 L 275.0765 764.5111 z " fill="#484c4e" id="path5204" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 763.6655 L 325.4298 761.9745 L 322.3781 763.6655 z " fill="#333739" id="path5205" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 763.6655 L 442.921 767.8931 C 436.5719 764.845 413.6689 760.9312 406.3003 763.6655 z " fill="#42514b" id="path5206" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 761.9745 L 502.4296 765.3566 L 503.9554 761.9745 z " fill="#a8aeb0" id="path5207" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 551.2571 761.9745 L 551.2571 770.4296 L 551.2571 761.9745 z " fill="#434749" id="path5208" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 580.2483 761.9745 L 580.2483 766.2021 L 580.2483 761.9745 z " fill="#596465" id="path5209" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -42.30241 762.82 L -40.77656 763.6655 L -42.30241 762.82 z " fill="#575f5b" id="path5210" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.1288 763.1016 L 161.1451 763.384 L 160.1288 763.1016 z " fill="#9aaba5" id="path5211" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 163.6887 764.5111 L 166.7404 762.82 L 163.6887 764.5111 z " fill="#82928c" id="path5212" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 762.82 L 172.8438 763.6655 L 171.318 762.82 z " fill="#74787b" id="path5213" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.4779 763.8423 C 223.4506 765.3726 224.4927 769.3304 228.4035 770.0897 C 236.3471 771.6327 249.3947 771.8872 255.5165 768.1383 C 258.881 766.0778 253.3344 765.3143 250.5971 764.9296 C 245.5801 764.2227 230.8357 761.6389 226.4779 763.8423 z " fill="#f8feff" id="path5214" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 762.82 L 235.4041 763.6655 L 230.8265 762.82 z " fill="#8a9697" id="path5215" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 762.82 L 241.5076 763.6655 L 235.4041 762.82 z " fill="#484c4e" id="path5216" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.1373 763.1016 L 309.1535 763.384 L 308.1373 763.1016 z " fill="#333739" id="path5217" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 762.82 L 334.5851 767.0476 L 323.904 762.82 z " fill="#a19ea2" id="path5218" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 762.82 L 438.3435 763.6655 L 436.8175 762.82 z " fill="#63686a" id="path5219" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 762.82 L 526.8433 763.6655 L 525.3175 762.82 z " fill="#83888b" id="path5220" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 763.6655 L 93.49916 766.2021 L 93.49916 763.6655 z " fill="#394444" id="path5221" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 763.6655 L 194.2059 768.7386 L 194.2059 763.6655 z " fill="#4c5450" id="path5222" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 765.3566 L 275.0765 763.6655 L 268.973 765.3566 z " fill="#6a7676" id="path5223" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 763.6655 L 310.1711 764.5111 L 305.5937 763.6655 z " fill="#b5b4ac" id="path5224" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 540.576 763.6655 L 542.102 764.5111 L 540.576 763.6655 z " fill="#63686a" id="path5225" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 764.5111 L 98.07669 767.0476 L 98.07669 764.5111 z " fill="#bbc8c9" id="path5226" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 150.9737 764.7926 L 151.9899 765.075 L 150.9737 764.7926 z " fill="#74787b" id="path5227" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 764.5111 L 189.6282 766.2021 L 186.5765 764.5111 z " fill="#6a7676" id="path5228" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 764.5111 L 253.7144 765.3566 L 249.1368 764.5111 z " fill="#9facad" id="path5229" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 764.5111 L 258.292 765.3566 L 253.7144 764.5111 z " fill="#394444" id="path5230" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 788.1852 L 307.1196 770.4296 L 314.7488 774.6571 C 314.6832 772.7277 311.3461 760.9447 304.2798 765.9755 C 301.9438 767.6377 302.9554 770.2216 303.4148 772.1206 C 304.7026 777.4422 304.9971 783.945 311.6971 788.1852 z " fill="#e6f3f4" id="path5231" stroke="none" style="fill:#e6f3f4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.4469 764.5111 L 445.9728 765.3566 L 444.4469 764.5111 z " fill="#63736d" id="path5232" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 764.5111 L 496.3261 767.0476 L 493.2743 764.5111 z " fill="#2c2b2e" id="path5233" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.895 764.5111 L 531.4209 765.3566 L 529.895 764.5111 z " fill="#5d5e66" id="path5234" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 765.3566 L 148.4301 766.2021 L 146.9043 765.3566 z " fill="#7a8686" id="path5235" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 765.3566 L 188.1024 766.2021 L 183.5249 765.3566 z " fill="#aec3c2" id="path5236" stroke="none" style="fill:#aec3c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 491.7485 765.3566 L 493.2743 768.7386 L 491.7485 765.3566 z " fill="#9facad" id="path5237" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 522.2657 765.3566 L 523.7915 766.2021 L 522.2657 765.3566 z " fill="#7a8686" id="path5238" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 528.3692 765.3566 L 529.895 766.2021 L 528.3692 765.3566 z " fill="#63686a" id="path5239" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -46.88 766.2021 L -45.35413 767.0476 L -46.88 766.2021 z " fill="#9d9c94" id="path5240" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 93.49916 766.2021 L 93.49916 768.7386 L 93.49916 766.2021 z " fill="#b0b5b7" id="path5241" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.55089 766.2021 L 96.55089 768.7386 L 96.55089 766.2021 z " fill="#333739" id="path5242" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 766.2021 L 145.3783 767.0476 L 143.8525 766.2021 z " fill="#8a9697" id="path5243" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 766.2021 L 159.111 767.0476 L 154.5336 766.2021 z " fill="#91988e" id="path5244" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 766.2021 L 171.318 767.0476 L 159.111 766.2021 z " fill="#d2dbd6" id="path5245" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 766.2021 L 301.0161 770.4296 L 301.0161 766.2021 z " fill="#575f5b" id="path5246" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 312.2052 766.766 L 312.7148 767.3291 L 312.2052 766.766 z " fill="#a0a5a8" id="path5247" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 520.7398 766.2021 L 522.2657 767.0476 L 520.7398 766.2021 z " fill="#9d9c94" id="path5248" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 526.8433 766.2021 L 528.3692 767.0476 L 526.8433 766.2021 z " fill="#736c77" id="path5249" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 580.2483 766.2021 C 580.2483 769.3321 577.2226 777.7018 584.826 778.0391 L 580.2483 766.2021 z " fill="#a4a9ac" id="path5250" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -60.61273 767.0476 L -62.13859 769.5841 L -60.61273 767.0476 z " fill="#575f5b" id="path5251" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -48.40585 767.0476 L -46.88 767.8931 L -48.40585 767.0476 z " fill="#7a8686" id="path5252" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 150.9737 767.3291 L 151.9899 767.6115 L 150.9737 767.3291 z " fill="#adaeb8" id="path5253" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.3697 767.0476 L 175.8955 767.8931 L 174.3697 767.0476 z " fill="#989d9f" id="path5254" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 767.0476 L 284.2316 768.7386 L 281.1799 767.0476 z " fill="#434749" id="path5255" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 767.0476 L 363.5763 778.8846 C 356.8534 773.8556 345.2034 769.1858 334.5851 767.0476 z " fill="#6a7676" id="path5256" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 519.214 767.0476 L 520.7398 767.8931 L 519.214 767.0476 z " fill="#9aaba5" id="path5257" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 767.0476 L 526.8433 767.8931 L 525.3175 767.0476 z " fill="#63686a" id="path5258" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 544.1359 767.6115 L 544.6455 768.1746 L 544.1359 767.6115 z " fill="#a1b2ab" id="path5259" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -71.29376 767.8931 L -69.76789 768.7386 L -71.29376 767.8931 z " fill="#74787b" id="path5260" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -49.93172 767.8931 L -48.40585 768.7386 L -49.93172 767.8931 z " fill="#92a39c" id="path5261" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 767.8931 L 143.8525 769.5841 L 139.2749 767.8931 z " fill="#adaeb8" id="path5262" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 767.8931 L 148.4301 768.7386 L 143.8525 767.8931 z " fill="#74787b" id="path5263" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 767.8931 L 178.9473 768.7386 L 177.4215 767.8931 z " fill="#959a9c" id="path5264" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 771.2751 L 282.7057 767.8931 L 273.5507 771.2751 z " fill="#6a7676" id="path5265" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 313.7311 768.457 L 314.2408 769.0201 L 313.7311 768.457 z " fill="#596465" id="path5266" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 767.8931 L 478.0159 768.7386 L 476.4899 767.8931 z " fill="#9aaba5" id="path5267" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.8859 768.457 L 500.3956 769.0201 L 499.8859 768.457 z " fill="#a8aeb0" id="path5268" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 523.7915 767.8931 L 525.3175 768.7386 L 523.7915 767.8931 z " fill="#63686a" id="path5269" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -51.45758 768.7386 L -49.93172 769.5841 L -51.45758 768.7386 z " fill="#96a3a3" id="path5270" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 770.4296 L 98.07669 768.7386 L 95.02496 770.4296 z " fill="#8a9697" id="path5271" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 768.7386 L 181.999 769.5841 L 180.4732 768.7386 z " fill="#6a7676" id="path5272" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.2063 769.0201 L 254.2226 769.3025 L 253.2063 769.0201 z " fill="#45453d" id="path5273" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 768.7386 L 461.2313 769.5841 L 459.7054 768.7386 z " fill="#575f5b" id="path5274" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 768.7386 L 482.5934 769.5841 L 481.0676 768.7386 z " fill="#5d5e66" id="path5275" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 522.2657 768.7386 L 523.7915 769.5841 L 522.2657 768.7386 z " fill="#5c5a5d" id="path5276" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.6617 769.3025 L 546.1714 769.8656 L 545.6617 769.3025 z " fill="#8a9697" id="path5277" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 589.9116 769.3025 L 590.4213 769.8656 L 589.9116 769.3025 z " fill="#b8bec0" id="path5278" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -72.31105 770.148 L -71.80232 770.7111 L -72.31105 770.148 z " fill="#4f5058" id="path5279" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -63.66445 769.5841 L -65.19032 772.1206 L -63.66445 769.5841 z " fill="#4c5450" id="path5280" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -52.98344 769.5841 L -51.45758 770.4296 L -52.98344 769.5841 z " fill="#8a9697" id="path5281" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 769.5841 L 183.5249 770.4296 L 181.999 769.5841 z " fill="#888d90" id="path5282" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 196.2399 770.148 L 196.7495 770.7111 L 196.2399 770.148 z " fill="#575f5b" id="path5283" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.1199 769.8656 L 367.1362 770.148 L 366.1199 769.8656 z " fill="#686c6f" id="path5284" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.7572 769.5841 L 464.2831 770.4296 L 462.7572 769.5841 z " fill="#6a7676" id="path5285" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 474.9641 769.5841 L 476.4899 770.4296 L 474.9641 769.5841 z " fill="#777c7e" id="path5286" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.5417 769.5841 L 481.0676 770.4296 L 479.5417 769.5841 z " fill="#74787b" id="path5287" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 492.2567 770.148 L 492.7663 770.7111 L 492.2567 770.148 z " fill="#777c7e" id="path5288" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 498.3602 770.148 L 498.8698 770.7111 L 498.3602 770.148 z " fill="#686c6f" id="path5289" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 520.7398 769.5841 L 522.2657 770.4296 L 520.7398 769.5841 z " fill="#53575a" id="path5290" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -54.5093 770.4296 L -52.98344 771.2751 L -54.5093 770.4296 z " fill="#777c7e" id="path5291" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 770.4296 L 185.0508 771.2751 L 183.5249 770.4296 z " fill="#83888b" id="path5292" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 770.4296 L 232.3523 771.2751 L 224.7231 770.4296 z " fill="#73837d" id="path5293" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 770.4296 L 238.4558 771.2751 L 232.3523 770.4296 z " fill="#c3dcd4" id="path5294" stroke="none" style="fill:#c3dcd4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 770.4296 L 249.1368 771.2751 L 247.6109 770.4296 z " fill="#63686a" id="path5295" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 770.4296 L 310.1711 772.1206 L 307.1196 770.4296 z " fill="#4c5450" id="path5296" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 369.6797 770.4296 L 375.7832 771.2751 L 369.6797 770.4296 z " fill="#83888b" id="path5297" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 375.7832 770.4296 L 380.3607 771.2751 L 375.7832 770.4296 z " fill="#4f5058" id="path5298" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 770.4296 L 467.3348 771.2751 L 465.8089 770.4296 z " fill="#73837d" id="path5299" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 770.4296 L 478.0159 772.1206 L 473.4382 770.4296 z " fill="#b5babd" id="path5300" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 770.4296 L 479.5417 771.2751 L 478.0159 770.4296 z " fill="#8f9099" id="path5301" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 551.2571 770.4296 L 551.2571 775.5026 L 551.2571 770.4296 z " fill="#7a8686" id="path5302" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 588.3859 770.9935 L 588.8955 771.5566 L 588.3859 770.9935 z " fill="#a4a9ac" id="path5303" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -56.03515 771.2751 L -54.5093 772.1206 L -56.03515 771.2751 z " fill="#63686a" id="path5304" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 771.2751 L 186.5765 772.1206 L 185.0508 771.2751 z " fill="#595a63" id="path5305" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 771.2751 L 246.085 772.1206 L 238.4558 771.2751 z " fill="#b3c4bd" id="path5306" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 776.3481 L 273.5507 771.2751 L 259.8178 776.3481 z " fill="#82928c" id="path5307" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 771.2751 L 302.5419 774.6571 L 302.5419 771.2751 z " fill="#b5babd" id="path5308" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 771.2751 L 314.7488 774.6571 L 314.7488 771.2751 z " fill="#aebbbc" id="path5309" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 771.2751 L 384.9384 772.1206 L 380.3607 771.2751 z " fill="#adaeb8" id="path5310" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 771.2751 L 395.6194 772.1206 L 384.9384 771.2751 z " fill="#413b45" id="path5311" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 468.8606 771.2751 L 470.3865 772.1206 L 468.8606 771.2751 z " fill="#959a9c" id="path5312" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 547.1877 771.839 L 547.6972 772.4021 L 547.1877 771.839 z " fill="#888d90" id="path5313" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -74.34548 772.1206 L -72.81962 772.9661 L -74.34548 772.1206 z " fill="#6a7676" id="path5314" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -57.56101 772.1206 L -56.03515 772.9661 L -57.56101 772.1206 z " fill="#5c5a5d" id="path5315" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 772.1206 L 198.7834 772.9661 L 197.2576 772.1206 z " fill="#73837d" id="path5316" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 772.1206 L 209.4645 772.9661 L 207.9386 772.1206 z " fill="#92a39c" id="path5317" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.6276 772.6845 L 308.1373 773.2477 L 307.6276 772.6845 z " fill="#97a4a4" id="path5318" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 772.1206 L 403.2486 772.9661 L 397.1453 772.1206 z " fill="#a19ea2" id="path5319" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 403.2486 772.1206 L 407.8263 772.9661 L 403.2486 772.1206 z " fill="#716667" id="path5320" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 407.8263 772.1206 L 420.0331 772.9661 L 407.8263 772.1206 z " fill="#342c31" id="path5321" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 490.7309 772.6845 L 491.2405 773.2477 L 490.7309 772.6845 z " fill="#686c6f" id="path5322" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 772.1206 L 496.3261 774.6571 L 496.3261 772.1206 z " fill="#857f8a" id="path5323" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 772.1206 L 529.895 772.9661 L 525.3175 772.1206 z " fill="#63686a" id="path5324" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 530.4033 772.6845 L 530.9128 773.2477 L 530.4033 772.6845 z " fill="#a8aeb0" id="path5325" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.3789 773.2477 L 205.3949 773.5301 L 204.3789 773.2477 z " fill="#63736d" id="path5326" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 772.9661 L 424.6108 773.8116 L 409.3521 772.9661 z " fill="#d3cecd" id="path5327" stroke="none" style="fill:#d3cecd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.6108 772.9661 L 435.2917 773.8116 L 424.6108 772.9661 z " fill="#a0a5a8" id="path5328" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 435.2917 772.9661 L 462.7572 773.8116 L 435.2917 772.9661 z " fill="#5d5e66" id="path5329" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 516.1623 772.9661 L 519.214 774.6571 L 516.1623 772.9661 z " fill="#6a7676" id="path5330" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 521.7577 773.2477 L 522.7739 773.5301 L 521.7577 773.2477 z " fill="#42514b" id="path5331" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 546.6794 772.9661 L 552.7829 776.3481 L 546.6794 772.9661 z " fill="#cacfd1" id="path5332" stroke="none" style="fill:#cacfd1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.7135 773.5301 L 549.2231 774.0932 L 548.7135 773.5301 z " fill="#63686a" id="path5333" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 581.7743 772.9661 L 584.826 777.1936 L 581.7743 772.9661 z " fill="#2c2b2e" id="path5334" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 586.86 773.5301 L 587.3696 774.0932 L 586.86 773.5301 z " fill="#b8c5c5" id="path5335" stroke="none" style="fill:#b8c5c5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -75.87134 773.8116 L -74.34548 774.6571 L -75.87134 773.8116 z " fill="#686c6f" id="path5336" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 773.8116 L 189.6282 774.6571 L 188.1024 773.8116 z " fill="#857f8a" id="path5337" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 773.8116 L 287.2833 775.5026 L 284.2316 773.8116 z " fill="#7a8686" id="path5338" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.7572 773.8116 L 471.9124 774.6571 L 462.7572 773.8116 z " fill="#b5babd" id="path5339" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 508.533 773.8116 L 510.0589 774.6571 L 508.533 773.8116 z " fill="#9d9c94" id="path5340" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 526.8433 773.8116 L 528.3692 774.6571 L 526.8433 773.8116 z " fill="#595a63" id="path5341" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 774.6571 C 275.1696 776.9721 276.5459 785.3807 276.6084 790.7209 C 276.6313 792.6393 276.2606 796.7028 280.8808 797.2685 C 285.5683 797.8425 284.2316 791.1724 284.2316 789.8762 L 284.2362 783.9577 C 284.2636 780.8056 285.0769 777.7762 285.7574 774.6571 z " fill="#f6fbfe" id="path5342" stroke="none" style="fill:#f6fbfe;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 774.6571 L 302.5419 777.1936 L 302.5419 774.6571 z " fill="#4c5450" id="path5343" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 309.1535 775.2211 L 309.6631 775.7842 L 309.1535 775.2211 z " fill="#a0a5a8" id="path5344" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.2408 774.9387 L 315.2569 775.2211 L 314.2408 774.9387 z " fill="#7a8686" id="path5345" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 489.2049 775.2211 L 489.7146 775.7842 L 489.2049 775.2211 z " fill="#4c5450" id="path5346" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.8003 774.6571 L 494.8003 777.1936 L 494.8003 774.6571 z " fill="#596465" id="path5347" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 507.0071 774.6571 L 508.533 775.5026 L 507.0071 774.6571 z " fill="#83888b" id="path5348" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 585.3342 775.2211 L 585.8438 775.7842 L 585.3342 775.2211 z " fill="#a8aeb0" id="path5349" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 190.1365 776.0666 L 190.6461 776.6297 L 190.1365 776.0666 z " fill="#8a9697" id="path5350" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 784.8032 L 214.0421 780.0979 L 230.8265 775.5026 C 218.0276 776.6381 198.0893 780.1444 188.1024 784.8032 z " fill="#a0a5a8" id="path5351" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 775.5026 L 293.3867 783.1122 L 293.3867 775.5026 z " fill="#6a7676" id="path5352" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 775.5026 L 294.9126 778.8846 L 294.9126 775.5026 z " fill="#373b3d" id="path5353" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 523.2835 775.7842 L 524.2998 776.0666 L 523.2835 775.7842 z " fill="#9facad" id="path5354" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -63.66445 776.3481 L -62.13859 777.1936 L -63.66445 776.3481 z " fill="#888d90" id="path5355" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 779.7301 L 261.3437 776.3481 L 253.7144 779.7301 z " fill="#63736d" id="path5356" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 776.3481 L 325.4298 782.2667 L 325.4298 776.3481 z " fill="#b3c4bd" id="path5357" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 776.3481 L 427.6625 777.1936 L 413.9298 776.3481 z " fill="#92a39c" id="path5358" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 502.4296 776.3481 L 503.9554 777.1936 L 502.4296 776.3481 z " fill="#989d9f" id="path5359" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 776.3481 L 529.895 777.1936 L 525.3175 776.3481 z " fill="#42514b" id="path5360" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -78.92305 777.1936 L -77.39719 778.0391 L -78.92305 777.1936 z " fill="#9d9c94" id="path5361" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -65.19032 777.1936 L -63.66445 778.0391 L -65.19032 777.1936 z " fill="#63686a" id="path5362" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 777.1936 L 276.6022 783.1122 L 276.6022 777.1936 z " fill="#a9b1b9" id="path5363" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 777.1936 L 282.7057 799.1768 L 285.7513 793.2548 L 284.2316 777.1936 z " fill="#aebbbc" id="path5364" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 777.1936 L 330.0074 778.0391 L 328.4816 777.1936 z " fill="#5d5e66" id="path5365" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.2148 777.4752 L 402.2309 777.7576 L 401.2148 777.4752 z " fill="#a3a797" id="path5366" stroke="none" style="fill:#a3a797;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 403.2486 777.1936 L 410.878 778.0391 L 403.2486 777.1936 z " fill="#4c5450" id="path5367" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 433.7658 777.1936 L 442.921 778.0391 L 433.7658 777.1936 z " fill="#596465" id="path5368" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.6791 777.7576 L 488.1888 778.3207 L 487.6791 777.7576 z " fill="#63686a" id="path5369" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 500.9038 777.1936 L 502.4296 778.0391 L 500.9038 777.1936 z " fill="#63736d" id="path5370" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 778.0391 L 304.0679 780.5756 L 304.0679 778.0391 z " fill="#63686a" id="path5371" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 796.6402 C 324.6486 794.0344 334.1058 789.8728 337.7389 785.6495 C 339.9423 783.0868 335.0763 778.6403 329.5313 779.0859 C 326.7192 779.3125 325.8816 781.9657 324.9614 783.1248 C 321.2916 787.7498 317.9622 791.481 317.8005 796.6402 z " fill="#f8feff" id="path5372" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 778.0391 L 331.5333 778.8846 L 330.0074 778.0391 z " fill="#857f8a" id="path5373" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 778.0391 L 381.8866 778.8846 L 380.3607 778.0391 z " fill="#96a3a3" id="path5374" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.163 778.3207 L 399.1792 778.6031 L 398.163 778.3207 z " fill="#45453d" id="path5375" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 778.0391 L 452.0762 778.8846 L 447.4987 778.0391 z " fill="#50564d" id="path5376" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 778.0391 L 458.1796 778.8846 L 452.0762 778.0391 z " fill="#b3c4bd" id="path5377" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 778.0391 L 496.3261 781.4212 L 493.2743 778.0391 z " fill="#777c7e" id="path5378" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 508.533 778.0391 L 523.7915 778.8846 L 508.533 778.0391 z " fill="#4f5058" id="path5379" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 778.8846 L 253.7144 779.7301 L 252.1885 778.8846 z " fill="#a8aeb0" id="path5380" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.5763 778.8846 L 368.1539 780.5756 L 363.5763 778.8846 z " fill="#595a63" id="path5381" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 778.8846 L 464.2831 779.7301 L 459.7054 778.8846 z " fill="#434749" id="path5382" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 464.2831 778.8846 L 468.8606 779.7301 L 464.2831 778.8846 z " fill="#b3c4bd" id="path5383" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 523.7915 778.8846 L 529.895 779.7301 L 523.7915 778.8846 z " fill="#c3c5c2" id="path5384" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -68.24204 779.7301 L -66.71617 780.5756 L -68.24204 779.7301 z " fill="#91988e" id="path5385" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 806.7863 L 229.3006 790.9382 L 252.1885 779.7301 L 210.9904 797.0199 L 194.2059 806.7863 z " fill="#63686a" id="path5386" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 779.7301 L 310.1711 789.0307 C 314.6329 787.0717 313.8546 782.3521 311.6971 779.7301 z " fill="#2b332f" id="path5387" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.0419 779.7301 L 392.5677 780.5756 L 391.0419 779.7301 z " fill="#807b7a" id="path5388" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 468.8606 779.7301 L 473.4382 780.5756 L 468.8606 779.7301 z " fill="#596465" id="path5389" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 486.1532 780.2941 L 486.6628 780.8572 L 486.1532 780.2941 z " fill="#96a3a3" id="path5390" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 779.7301 L 497.852 780.5756 L 496.3261 779.7301 z " fill="#575f5b" id="path5391" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -69.76789 780.5756 L -68.24204 781.4212 L -69.76789 780.5756 z " fill="#53575a" id="path5392" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 782.2667 L 229.3006 780.5756 L 226.2489 782.2667 z " fill="#63686a" id="path5393" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 780.5756 L 294.9126 787.3397 L 294.9126 780.5756 z " fill="#aeb3b5" id="path5394" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 780.5756 L 372.7314 783.1122 L 366.6279 780.5756 z " fill="#83888b" id="path5395" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.9561 780.8572 L 386.9723 781.1396 L 385.9561 780.8572 z " fill="#9aaba5" id="path5396" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 475.9818 780.8572 L 476.9981 781.1396 L 475.9818 780.8572 z " fill="#33413c" id="path5397" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 479.0335 780.8572 L 480.0497 781.1396 L 479.0335 780.8572 z " fill="#abbcb6" id="path5398" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.9602 781.8439 L 225.486 782.6894 L 223.9602 781.8439 z " fill="#aebbbc" id="path5399" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 781.4212 L 487.1709 782.2667 L 482.5934 781.4212 z " fill="#596465" id="path5400" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.3778 781.4212 L 503.9554 783.1122 L 499.3778 781.4212 z " fill="#7a8686" id="path5401" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -83.50064 782.2667 L -81.97477 783.1122 L -83.50064 782.2667 z " fill="#857f8a" id="path5402" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 782.2667 L 296.4385 785.6487 L 296.4385 782.2667 z " fill="#394444" id="path5403" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 306.1017 782.8306 L 306.6114 783.3937 L 306.1017 782.8306 z " fill="#3c3837" id="path5404" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 782.2667 L 340.6884 783.1122 L 339.1625 782.2667 z " fill="#686c6f" id="path5405" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.7745 782.2667 L 420.0331 783.1122 L 404.7745 782.2667 z " fill="#888d90" id="path5406" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 783.1122 L 426.1365 783.9577 L 426.1365 782.2667 L 409.3521 783.1122 z " fill="#4c5450" id="path5407" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -72.81962 783.1122 L -71.29376 783.9577 L -72.81962 783.1122 z " fill="#9d9c94" id="path5408" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 783.1122 L 275.0765 789.0307 L 275.0765 783.1122 z " fill="#a9b1b9" id="path5409" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 324.412 783.6761 L 324.9218 784.2392 L 324.412 783.6761 z " fill="#b5b4ac" id="path5410" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 372.7314 784.8032 L 375.7832 783.1122 L 372.7314 784.8032 z " fill="#394444" id="path5411" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.1365 783.1122 L 433.7658 783.9577 L 426.1365 783.1122 z " fill="#888d90" id="path5412" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 430.7142 784.8032 L 442.921 783.1122 L 430.7142 784.8032 z " fill="#575f5b" id="path5413" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 508.0249 783.3937 L 509.0411 783.6761 L 508.0249 783.3937 z " fill="#596465" id="path5414" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 511.0765 783.3937 L 512.0928 783.6761 L 511.0765 783.3937 z " fill="#93aca4" id="path5415" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -74.34548 783.9577 L -72.81962 784.8032 L -74.34548 783.9577 z " fill="#83888b" id="path5416" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 783.9577 L 163.6887 784.8032 L 162.1628 783.9577 z " fill="#9facad" id="path5417" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 783.9577 L 307.1196 786.4942 L 307.1196 783.9577 z " fill="#7a8686" id="path5418" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.2573 783.9577 L 375.7832 784.8032 L 374.2573 783.9577 z " fill="#989d9f" id="path5419" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 783.9577 L 449.0245 784.8032 L 439.8693 783.9577 z " fill="#8a9697" id="path5420" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 785.6487 L 491.7485 787.3397 L 461.2313 784.4413 L 447.4987 785.6487 z " fill="#575f5b" id="path5421" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 515.6542 784.2392 L 516.6704 784.5216 L 515.6542 784.2392 z " fill="#74787b" id="path5422" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -75.87134 784.8032 L -74.34548 785.6487 L -75.87134 784.8032 z " fill="#6a7676" id="path5423" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 784.8032 L 160.6369 785.6487 L 159.111 784.8032 z " fill="#97a4a4" id="path5424" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 784.8032 L 273.5507 794.9492 L 273.5507 784.8032 z " fill="#2c2b2e" id="path5425" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 784.8032 L 323.904 785.6487 L 322.3781 784.8032 z " fill="#7a8686" id="path5426" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 344.7579 785.0847 L 345.7741 785.3671 L 344.7579 785.0847 z " fill="#595a63" id="path5427" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 375.7832 784.8032 C 382.2621 790.0309 392.6516 796.5811 403.2486 799.1768 C 398.0868 793.8788 385.7059 787.234 375.7832 784.8032 z " fill="#63686a" id="path5428" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 784.8032 L 478.0159 785.6487 L 471.9124 784.8032 z " fill="#2b332f" id="path5429" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 523.2835 785.0847 L 524.2998 785.3671 L 523.2835 785.0847 z " fill="#97a4a4" id="path5430" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -86.55238 785.6487 L -85.02646 786.4942 L -86.55238 785.6487 z " fill="#83888b" id="path5431" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -77.39719 785.6487 L -75.87134 786.4942 L -77.39719 785.6487 z " fill="#5c5a5d" id="path5432" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 785.6487 L 157.5852 786.4942 L 156.0593 785.6487 z " fill="#92a39c" id="path5433" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 788.1852 L 210.9904 785.6487 L 207.9386 788.1852 z " fill="#83888b" id="path5434" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 785.6487 L 259.8178 794.1037 C 261.8762 791.6019 262.5339 787.5113 258.292 785.6487 z " fill="#1d2022" id="path5435" stroke="none" style="fill:#1d2022;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 785.6487 L 296.4385 796.6402 L 296.4385 785.6487 z " fill="#8a9697" id="path5436" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 799.1768 L 360.5247 805.9408 C 360.5247 801.8097 363.3535 795.5174 360.8649 791.6898 C 358.9851 788.7982 349.7322 785.4796 344.2055 786.7774 C 336.1322 788.673 325.7899 795.2181 320.8523 799.1768 z " fill="#f8feff" id="path5437" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.387 785.9302 L 530.4033 786.2126 L 529.387 785.9302 z " fill="#a1b2ab" id="path5438" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 209.4645 786.4942 L 209.4645 789.0307 L 209.4645 786.4942 z " fill="#b3c7c6" id="path5439" stroke="none" style="fill:#b3c7c6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 786.4942 L 258.292 795.7947 C 261.7558 793.7275 261.4429 786.769 255.2402 786.4942 z " fill="#bdd2d1" id="path5440" stroke="none" style="fill:#bdd2d1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 786.4942 L 337.6368 787.3397 L 336.1108 786.4942 z " fill="#74787b" id="path5441" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 488.6968 788.1852 L 496.3261 786.4942 L 488.6968 788.1852 z " fill="#373b3d" id="path5442" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 533.9644 786.7757 L 534.9807 787.0581 L 533.9644 786.7757 z " fill="#82928c" id="path5443" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 787.3397 L 151.4818 788.1852 L 149.956 787.3397 z " fill="#7a8686" id="path5444" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.2063 787.6212 L 254.2226 787.9036 L 253.2063 787.6212 z " fill="#a8aeb0" id="path5445" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 254.6116 788.1767 C 247.1487 788.0601 239.3118 792.1193 233.9485 794.5087 C 232.035 795.3618 224.7322 798.5773 231.2201 798.9053 C 237.6975 799.2334 250.5513 797.7741 255.672 795.4701 C 258.6414 794.1333 260.1733 788.2638 254.6116 788.1767 z " fill="#f2fcf7" id="path5446" stroke="none" style="fill:#f2fcf7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.8346 787.9036 L 320.3441 788.4667 L 319.8346 787.9036 z " fill="#6a7676" id="path5447" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 787.3397 L 336.1108 788.1852 L 334.5851 787.3397 z " fill="#73837d" id="path5448" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 340.6884 787.3397 L 342.2142 788.1852 L 340.6884 787.3397 z " fill="#82928c" id="path5449" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.3439 787.6212 L 498.3602 787.9036 L 497.3439 787.6212 z " fill="#83888b" id="path5450" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 788.1852 L 528.3692 790.7217 L 497.852 788.1852 z " fill="#33413c" id="path5451" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 540.0679 787.6212 L 541.0842 787.9036 L 540.0679 787.6212 z " fill="#96a3a3" id="path5452" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 788.1852 L 148.4301 789.0307 L 146.9043 788.1852 z " fill="#92a39c" id="path5453" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 794.1037 L 171.318 788.1852 L 148.4301 794.1037 z " fill="#a6b2b3" id="path5454" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.2754 788.4667 L 199.2915 788.7491 L 198.2754 788.4667 z " fill="#959a9c" id="path5455" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 788.1852 L 250.6627 789.0307 L 249.1368 788.1852 z " fill="#53575a" id="path5456" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 788.1852 L 340.6884 789.0307 L 339.1625 788.1852 z " fill="#74787b" id="path5457" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 544.6455 788.4667 L 545.6617 788.7491 L 544.6455 788.4667 z " fill="#82928c" id="path5458" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 789.0307 L 145.3783 789.8762 L 143.8525 789.0307 z " fill="#9facad" id="path5459" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.8174 789.5946 L 201.3271 790.1578 L 200.8174 789.5946 z " fill="#91988e" id="path5460" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 789.0307 L 275.0765 795.7947 L 275.0765 789.0307 z " fill="#cfdcdc" id="path5461" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 789.0307 L 333.0591 789.8762 L 331.5333 789.0307 z " fill="#6a7676" id="path5462" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 789.0307 L 339.1625 789.8762 L 337.6368 789.0307 z " fill="#596465" id="path5463" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 790.7217 L 403.2486 789.0307 L 400.1969 790.7217 z " fill="#857f8a" id="path5464" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 550.7489 789.3122 L 551.7652 789.5946 L 550.7489 789.3122 z " fill="#bbcdc6" id="path5465" stroke="none" style="fill:#bbcdc6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -89.60413 789.8762 L -88.0782 790.7217 L -89.60413 789.8762 z " fill="#888d90" id="path5466" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.1719 790.1578 L 193.1882 790.4402 L 192.1719 790.1578 z " fill="#b5babd" id="path5467" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 318.3086 790.4402 L 318.8183 791.0033 L 318.3086 790.4402 z " fill="#5c5a5d" id="path5468" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 789.8762 L 331.5333 790.7217 L 330.0074 789.8762 z " fill="#6a7676" id="path5469" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 789.8762 L 337.6368 790.7217 L 336.1108 789.8762 z " fill="#686c6f" id="path5470" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 789.8762 L 362.0505 790.7217 L 360.5247 789.8762 z " fill="#90878d" id="path5471" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 799.1768 L 394.7741 816.0632 L 402.0906 820.5748 L 404.7745 816.0869 C 402.91 819.3446 411.1847 815.4493 412.4038 814.3958 L 406.3003 811.8593 C 411.3265 813.4785 417.2255 816.086 422.7523 817.0152 C 425.961 817.5538 428.9473 816.201 432.0248 816.7277 C 438.4334 817.8261 436.9733 821.9952 435.2917 824.5419 C 441.296 822.3013 439.8693 817.963 439.8693 814.3958 L 442.921 818.6234 L 452.0762 812.7048 L 447.4987 829.6149 L 460.1876 816.0877 L 460.0412 809.809 L 430.7142 799.8143 L 412.1109 791.437 L 404.6296 790.545 L 407.8538 795.7981 L 423.2559 809.3211 L 425.4164 814.0374 L 415.454 811.0578 L 384.9384 799.1768 z " fill="#f8feff" id="path5472" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 555.3266 790.1578 L 556.3428 790.4402 L 555.3266 790.1578 z " fill="#92a39c" id="path5473" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -85.02646 790.7217 L -83.50064 791.5672 L -85.02646 790.7217 z " fill="#7a8686" id="path5474" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 790.7217 L 140.8008 791.5672 L 139.2749 790.7217 z " fill="#83888b" id="path5475" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 790.7217 L 157.5852 791.5672 L 156.0593 790.7217 z " fill="#595a63" id="path5476" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 187.5944 791.0033 L 188.6105 791.2857 L 187.5944 791.0033 z " fill="#adaeb8" id="path5477" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 790.7217 L 336.1108 791.5672 L 334.5851 790.7217 z " fill="#6a7676" id="path5478" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.5585 791.2857 L 363.0682 791.8488 L 362.5585 791.2857 z " fill="#53575a" id="path5479" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 559.9042 791.0033 L 560.9203 791.2857 L 559.9042 791.0033 z " fill="#63736d" id="path5480" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -91.12994 791.5672 L -89.60413 792.4127 L -91.12994 791.5672 z " fill="#a19ea2" id="path5481" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -86.55238 791.5672 L -85.02646 792.4127 L -86.55238 791.5672 z " fill="#716667" id="path5482" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 202.3432 792.1312 L 202.8529 792.6943 L 202.3432 792.1312 z " fill="#b5babd" id="path5483" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 791.5672 L 334.5851 792.4127 L 333.0591 791.5672 z " fill="#857f8a" id="path5484" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 429.1882 793.2582 L 432.24 791.5672 L 429.1882 793.2582 z " fill="#394444" id="path5485" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 793.2582 L 471.9124 792.4127 C 466.9792 791.1664 457.2946 790.676 453.602 793.2582 z " fill="#4d4b4f" id="path5486" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 566.0075 791.8488 L 567.0238 792.1312 L 566.0075 791.8488 z " fill="#8a9697" id="path5487" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 792.4127 L 136.2231 793.2582 L 134.6973 792.4127 z " fill="#74787b" id="path5488" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 792.4127 L 333.0591 793.2582 L 331.5333 792.4127 z " fill="#a19ea2" id="path5489" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 403.2486 792.4127 L 404.7745 793.2582 L 403.2486 792.4127 z " fill="#596465" id="path5490" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 430.7142 792.4127 L 455.128 799.1768 L 430.7142 792.4127 z " fill="#63736d" id="path5491" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 792.4127 L 469.9258 797.4325 L 472.2313 793.4958 L 464.2967 792.4389 L 455.128 792.4127 z " fill="#edf2f5" id="path5492" stroke="none" style="fill:#edf2f5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 792.4127 L 476.4899 794.9492 L 471.9124 792.4127 z " fill="#736c77" id="path5493" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 570.5851 792.6943 L 571.6014 792.9767 L 570.5851 792.6943 z " fill="#73837d" id="path5494" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 793.2582 L 133.1715 794.1037 L 131.6456 793.2582 z " fill="#92a39c" id="path5495" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 797.4857 L 149.956 794.1037 L 134.6973 797.4857 z " fill="#74787b" id="path5496" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 793.2582 L 203.3611 796.6402 L 203.3611 793.2582 z " fill="#91988e" id="path5497" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 793.2582 L 236.93 794.1037 L 235.4041 793.2582 z " fill="#736c77" id="path5498" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 793.2582 L 299.4902 813.5503 L 299.5802 801.7133 L 297.9644 793.2582 z " fill="#74787b" id="path5499" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 793.2582 L 416.9814 794.1037 L 415.4556 793.2582 z " fill="#63686a" id="path5500" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 793.2582 L 497.852 794.1037 L 485.6452 793.2582 z " fill="#adaeb8" id="path5501" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 497.852 793.2582 L 508.533 794.1037 L 497.852 793.2582 z " fill="#5d5e66" id="path5502" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 508.533 793.2582 L 532.9468 794.1037 L 508.533 793.2582 z " fill="#3c3837" id="path5503" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 576.6886 793.5398 L 577.7049 793.8222 L 576.6886 793.5398 z " fill="#92a39c" id="path5504" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -92.14726 794.6677 L -91.63854 795.2308 L -92.14726 794.6677 z " fill="#5c5a5d" id="path5505" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 170.81 794.3853 L 171.826 794.6677 L 170.81 794.3853 z " fill="#aebbbc" id="path5506" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 794.1037 L 235.4041 794.9492 L 233.8783 794.1037 z " fill="#8f9099" id="path5507" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 794.1037 L 539.0502 794.9492 L 525.3175 794.1037 z " fill="#d0d5d8" id="path5508" stroke="none" style="fill:#d0d5d8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.0502 794.1037 L 545.1537 794.9492 L 539.0502 794.1037 z " fill="#777c7e" id="path5509" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.1537 794.1037 L 551.2571 794.9492 L 545.1537 794.1037 z " fill="#342c31" id="path5510" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 581.7743 794.1037 L 583.3001 794.9492 L 581.7743 794.1037 z " fill="#7a8686" id="path5511" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.2323 795.2308 L 167.2486 795.5132 L 166.2323 795.2308 z " fill="#adaeb8" id="path5512" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 794.9492 L 316.2746 797.4857 L 316.2746 794.9492 z " fill="#a9b1b9" id="path5513" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 794.9492 L 360.5247 803.4043 L 360.5247 794.9492 z " fill="#484c4e" id="path5514" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 794.9492 L 461.2313 795.7947 L 459.7054 794.9492 z " fill="#7a8686" id="path5515" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 552.7829 794.9492 L 558.8864 795.7947 L 552.7829 794.9492 z " fill="#a8aeb0" id="path5516" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 558.8864 794.9492 L 564.9899 795.7947 L 558.8864 794.9492 z " fill="#736c77" id="path5517" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 585.3342 795.5132 L 585.8438 796.0763 L 585.3342 795.5132 z " fill="#a0a5a8" id="path5518" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 795.7947 L 125.5421 796.6402 L 124.0163 795.7947 z " fill="#92a39c" id="path5519" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.1288 796.0763 L 161.1451 796.3587 L 160.1288 796.0763 z " fill="#807b7a" id="path5520" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 795.7947 L 230.8265 796.6402 L 229.3006 795.7947 z " fill="#5d5e66" id="path5521" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 795.7947 L 258.292 796.6402 L 253.7144 795.7947 z " fill="#b7c3c4" id="path5522" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 795.7947 L 276.6022 796.6402 L 275.0765 795.7947 z " fill="#53575a" id="path5523" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 323.904 795.7947 L 325.4298 796.6402 L 323.904 795.7947 z " fill="#595a63" id="path5524" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 407.8263 795.7947 L 409.3521 796.6402 L 407.8263 795.7947 z " fill="#53575a" id="path5525" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 571.0933 795.7947 L 578.7225 796.6402 L 571.0933 795.7947 z " fill="#a19ea2" id="path5526" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 578.7225 795.7947 L 584.826 796.6402 L 578.7225 795.7947 z " fill="#63686a" id="path5527" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 799.1768 L 134.6973 796.6402 L 128.5939 799.1768 z " fill="#42514b" id="path5528" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 153.0076 796.6402 L 157.5852 797.4857 L 153.0076 796.6402 z " fill="#4d4b4f" id="path5529" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 796.6402 L 252.1885 797.4857 L 247.6109 796.6402 z " fill="#82928c" id="path5530" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 796.6402 L 319.3263 797.4857 L 317.8005 796.6402 z " fill="#575f5b" id="path5531" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 796.6402 L 323.904 797.4857 L 322.3781 796.6402 z " fill="#716667" id="path5532" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 796.6402 L 410.878 797.4857 L 409.3521 796.6402 z " fill="#74787b" id="path5533" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 464.2831 796.6402 L 465.8089 797.4857 L 464.2831 796.6402 z " fill="#82928c" id="path5534" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 797.4857 L 120.9646 798.3313 L 119.4387 797.4857 z " fill="#8a9697" id="path5535" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 150.9737 797.7673 L 151.9899 798.0497 L 150.9737 797.7673 z " fill="#8f9099" id="path5536" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.2312 798.0497 L 225.7408 798.6128 L 225.2312 798.0497 z " fill="#53575a" id="path5537" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 797.4857 L 281.1799 798.3313 L 279.6539 797.4857 z " fill="#63686a" id="path5538" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.8523 797.4857 L 322.3781 798.3313 L 320.8523 797.4857 z " fill="#5c5a5d" id="path5539" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 797.4857 L 380.3607 812.7048 L 371.2056 797.4857 z " fill="#959a9c" id="path5540" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 798.3313 L 119.4387 799.1768 L 117.9129 798.3313 z " fill="#73837d" id="path5541" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.396 798.6128 L 147.4123 798.8952 L 146.396 798.6128 z " fill="#90878d" id="path5542" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 798.3313 L 239.9816 799.1768 L 235.4041 798.3313 z " fill="#63736d" id="path5543" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 798.3313 L 320.8523 799.1768 L 319.3263 798.3313 z " fill="#5d5e66" id="path5544" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 800.8678 L 386.4642 798.3313 L 383.4125 800.8678 z " fill="#394444" id="path5545" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.1365 798.3313 L 427.6625 799.1768 L 426.1365 798.3313 z " fill="#857f8a" id="path5546" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 469.8784 798.6128 L 470.8946 798.8952 L 469.8784 798.6128 z " fill="#92a39c" id="path5547" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 141.8185 799.4583 L 142.8348 799.7407 L 141.8185 799.4583 z " fill="#adaeb8" id="path5548" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 799.1768 L 320.8523 800.8678 L 317.8005 799.1768 z " fill="#4c5450" id="path5549" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 799.1768 L 323.904 800.0223 L 319.3263 799.1768 z " fill="#b3ccc4" id="path5550" stroke="none" style="fill:#b3ccc4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 373.2397 799.7407 L 373.7492 800.3038 L 373.2397 799.7407 z " fill="#394444" id="path5551" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 403.2486 799.1768 L 410.878 803.4043 L 403.2486 799.1768 z " fill="#33322b" id="path5552" stroke="none" style="fill:#33322b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 799.1768 L 465.8089 802.5588 L 455.128 799.1768 z " fill="#595a63" id="path5553" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 800.0223 L 114.8612 800.8678 L 113.3354 800.0223 z " fill="#63736d" id="path5554" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.241 800.3038 L 138.2571 800.5862 L 137.241 800.3038 z " fill="#adaeb8" id="path5555" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 800.0223 L 198.7834 800.8678 L 197.2576 800.0223 z " fill="#6a7676" id="path5556" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 324.9218 800.3038 L 325.9379 800.5862 L 324.9218 800.3038 z " fill="#575f5b" id="path5557" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 800.0223 L 331.5333 800.8678 L 326.9558 800.0223 z " fill="#959a9c" id="path5558" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 480.0497 800.5862 L 480.5593 801.1493 L 480.0497 800.5862 z " fill="#83888b" id="path5559" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 132.6633 801.1493 L 133.6796 801.4317 L 132.6633 801.1493 z " fill="#b0b5b7" id="path5560" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 195.7317 800.8678 L 197.2576 801.7133 L 195.7317 800.8678 z " fill="#82928c" id="path5561" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 804.2498 L 243.0334 801.7665 L 270.4989 802.5588 L 270.4989 800.8678 C 256.0291 800.8678 231.9419 798.5866 220.1455 804.2498 z " fill="#434749" id="path5562" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.0768 801.1493 L 335.0931 801.4317 L 334.0768 801.1493 z " fill="#82928c" id="path5563" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 433.7658 800.8678 L 435.2917 801.7133 L 433.7658 800.8678 z " fill="#959a9c" id="path5564" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 801.7133 L 110.2836 802.5588 L 108.7577 801.7133 z " fill="#63736d" id="path5565" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 126.5599 801.9948 L 127.5761 802.2772 L 126.5599 801.9948 z " fill="#888d90" id="path5566" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 801.7133 L 259.8178 802.5588 L 235.4041 801.7133 z " fill="#7a8686" id="path5567" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 801.7133 L 343.7402 802.5588 L 339.1625 801.7133 z " fill="#82928c" id="path5568" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.4464 802.2772 L 385.9561 802.8403 L 385.4464 802.2772 z " fill="#4d4b4f" id="path5569" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 392.5677 801.7133 L 394.0936 802.5588 L 392.5677 801.7133 z " fill="#74787b" id="path5570" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 801.7133 L 438.3435 802.5588 L 436.8175 801.7133 z " fill="#8a9697" id="path5571" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 801.7133 L 471.9124 804.2498 L 465.8089 801.7133 z " fill="#2b332f" id="path5572" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 801.7133 L 482.5934 802.5588 L 481.0676 801.7133 z " fill="#8a9697" id="path5573" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 121.9823 802.8403 L 122.9986 803.1227 L 121.9823 802.8403 z " fill="#9facad" id="path5574" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 344.7579 802.8403 L 345.7741 803.1227 L 344.7579 802.8403 z " fill="#4c5450" id="path5575" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.0936 802.5588 L 395.6194 803.4043 L 394.0936 802.5588 z " fill="#8f9099" id="path5576" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 802.5588 L 484.1193 803.4043 L 482.5934 802.5588 z " fill="#6a7676" id="path5577" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 803.4043 L 105.706 804.2498 L 104.1802 803.4043 z " fill="#73837d" id="path5578" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.4048 803.6858 L 118.421 803.9682 L 117.4048 803.6858 z " fill="#c5bcb5" id="path5579" stroke="none" style="fill:#c5bcb5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 807.6318 L 279.6539 803.4043 L 267.4472 807.6318 z " fill="#575f5b" id="path5580" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 803.4043 L 358.9988 806.7863 L 360.5247 803.4043 z " fill="#82928c" id="path5581" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 416.9814 803.4043 L 418.5073 804.2498 L 416.9814 803.4043 z " fill="#6a7676" id="path5582" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 804.2498 L 192.6799 805.0953 L 191.1541 804.2498 z " fill="#53575a" id="path5583" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.671 804.2498 L 400.1969 805.0953 L 398.671 804.2498 z " fill="#777c7e" id="path5584" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 804.2498 L 479.5417 806.7863 L 471.9124 804.2498 z " fill="#2c2b2e" id="path5585" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 804.2498 L 488.6968 805.0953 L 487.1709 804.2498 z " fill="#82928c" id="path5586" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 109.7754 805.3768 L 110.7917 805.6592 L 109.7754 805.3768 z " fill="#b0b5b7" id="path5587" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 805.0953 L 191.1541 805.9408 L 189.6282 805.0953 z " fill="#7a8686" id="path5588" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 356.9647 805.3768 L 357.981 805.6592 L 356.9647 805.3768 z " fill="#b3c4bd" id="path5589" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 805.0953 L 401.7228 805.9408 L 400.1969 805.0953 z " fill="#888d90" id="path5590" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 488.6968 805.0953 L 490.2226 805.9408 L 488.6968 805.0953 z " fill="#596465" id="path5591" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 805.9408 L 104.1802 807.6318 L 99.6025 805.9408 z " fill="#63686a" id="path5592" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 805.9408 L 107.2319 806.7863 L 105.706 805.9408 z " fill="#686c6f" id="path5593" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 805.9408 L 249.1368 806.7863 L 224.7231 805.9408 z " fill="#231c21" id="path5594" stroke="none" style="fill:#231c21;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.0331 805.9408 L 421.5591 806.7863 L 420.0331 805.9408 z " fill="#92a39c" id="path5595" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 450.5503 805.9408 L 452.0762 806.7863 L 450.5503 805.9408 z " fill="#989d9f" id="path5596" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 809.3228 L 195.7317 806.7863 L 189.6282 809.3228 z " fill="#262e2a" id="path5597" stroke="none" style="fill:#262e2a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 806.7863 L 217.0939 807.6318 L 212.5162 806.7863 z " fill="#394444" id="path5598" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 809.3228 C 233.4892 806.5529 255.8963 805.2526 256.7661 812.7048 C 258.6827 811.5609 259.5493 807.8711 256.258 807.0679 C 254.169 806.5589 251.3539 806.7863 249.1368 806.7863 C 243.2531 806.7863 225.3501 804.9795 224.7231 809.3228 z " fill="#c7d4d5" id="path5599" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 806.7863 L 326.9558 811.0138 L 319.3263 806.7863 z " fill="#4c5450" id="path5600" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.7745 806.7863 L 406.3003 807.6318 L 404.7745 806.7863 z " fill="#63686a" id="path5601" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 806.7863 L 455.128 807.6318 L 453.602 806.7863 z " fill="#777c7e" id="path5602" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 806.7863 L 494.8003 807.6318 L 493.2743 806.7863 z " fill="#9d9c94" id="path5603" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 807.6318 L 188.1024 808.4773 L 186.5765 807.6318 z " fill="#82928c" id="path5604" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 807.6318 L 217.0939 808.4773 L 212.5162 807.6318 z " fill="#cfdcdc" id="path5605" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.8281 808.6041 C 221.6057 811.6387 226.9738 818.5371 228.8933 821.9919 C 230.1139 824.1893 232.3676 827.2636 236.9773 824.9528 C 242.7174 822.0764 256.992 815.0114 256.2824 810.3281 C 255.6659 806.2604 232.09 806.5259 227.8281 808.6041 z " fill="#f8feff" id="path5606" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 807.6318 L 279.6539 811.0138 L 282.7057 807.6318 z " fill="#394444" id="path5607" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 807.6318 L 407.8263 808.4773 L 406.3003 807.6318 z " fill="#8a9697" id="path5608" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 807.6318 L 423.0849 808.4773 L 421.5591 807.6318 z " fill="#888d90" id="path5609" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.8003 807.6318 L 496.3261 808.4773 L 494.8003 807.6318 z " fill="#63686a" id="path5610" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 213.5339 808.7589 L 214.5502 809.0413 L 213.5339 808.7589 z " fill="#74787b" id="path5611" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 390.0241 809.0413 L 390.5336 809.6044 L 390.0241 809.0413 z " fill="#3c3837" id="path5612" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 809.3228 L 204.8869 811.0138 L 201.8352 809.3228 z " fill="#8a9697" id="path5613" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.2312 809.8868 L 225.7408 810.4499 L 225.2312 809.8868 z " fill="#888d90" id="path5614" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 809.3228 L 302.5419 818.6234 L 301.0161 809.3228 z " fill="#4c5450" id="path5615" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.878 809.3228 L 412.4038 810.1683 L 410.878 809.3228 z " fill="#97a4a4" id="path5616" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 423.0849 809.3228 L 424.6108 810.1683 L 423.0849 809.3228 z " fill="#8a9697" id="path5617" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 809.3228 L 494.8003 811.8593 L 487.1709 809.3228 z " fill="#2b332f" id="path5618" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.3778 809.3228 L 500.9038 810.1683 L 499.3778 809.3228 z " fill="#8a9697" id="path5619" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 874.4267 L 195.6341 859.2076 L 206.8416 847.3705 L 207.9386 827.9239 L 206.4738 815.2549 L 201.5362 811.3816 L 196.3436 814.4347 L 192.8188 826.2329 L 183.9948 855.8256 L 183.5249 874.4267 z " fill="#fefffc" id="path5620" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 811.8593 L 218.6196 811.0138 L 212.5162 811.8593 z " fill="#434749" id="path5621" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 812.7048 L 279.6539 810.1683 L 273.5507 812.7048 z " fill="#6a7676" id="path5622" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 342.2142 810.1683 L 365.1022 815.2414 L 342.2142 810.1683 z " fill="#63736d" id="path5623" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 810.1683 L 415.4556 811.0138 L 413.9298 810.1683 z " fill="#63686a" id="path5624" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 463.2653 810.7323 L 463.7749 811.2954 L 463.2653 810.7323 z " fill="#4c5450" id="path5625" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 500.9038 810.1683 L 502.4296 811.0138 L 500.9038 810.1683 z " fill="#6a7676" id="path5626" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 811.0138 L 218.6196 811.8593 L 214.0421 811.0138 z " fill="#cfdcdc" id="path5627" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 811.0138 L 416.9814 811.8593 L 415.4556 811.0138 z " fill="#888d90" id="path5628" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 811.8593 L 183.5249 812.7048 L 181.999 811.8593 z " fill="#73837d" id="path5629" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 195.7317 811.8593 L 197.2576 812.7048 L 195.7317 811.8593 z " fill="#74787b" id="path5630" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 811.8593 L 218.6196 812.7048 L 214.0421 811.8593 z " fill="#575f5b" id="path5631" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 811.8593 L 223.1971 814.3958 L 223.1971 811.8593 z " fill="#63686a" id="path5632" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 811.8593 C 378.8028 816.7836 383.3805 825.1016 389.5159 828.7694 L 380.3607 811.8593 z " fill="#686c6f" id="path5633" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 393.0757 812.4233 L 393.5853 812.9864 L 393.0757 812.4233 z " fill="#91988e" id="path5634" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 811.8593 L 412.4038 814.3958 L 403.2486 816.9324 L 404.7745 816.0869 L 404.7745 822.741 L 424.6108 836.379 L 398.671 828.7694 L 424.0095 846.5242 L 432.7939 851.4881 L 437.791 845.6795 L 437.6874 824.7076 L 434.1855 816.7717 L 422.3524 816.5121 L 406.3003 811.8593 z " fill="#fefffc" id="path5635" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.714 813.2688 L 195.2237 813.8319 L 194.714 813.2688 z " fill="#596465" id="path5636" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 270.4989 815.2414 L 275.0765 812.7048 L 270.4989 815.2414 z " fill="#33413c" id="path5637" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 812.7048 L 316.2746 815.2414 L 316.2746 812.7048 z " fill="#83888b" id="path5638" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.6448 813.2688 L 427.1543 813.8319 L 426.6448 813.2688 z " fill="#777c7e" id="path5639" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 812.7048 L 450.5503 816.0869 L 449.0245 812.7048 z " fill="#a8aeb0" id="path5640" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.7395 813.2688 L 462.2491 813.8319 L 461.7395 813.2688 z " fill="#53575a" id="path5641" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 507.0071 812.7048 L 508.533 813.5503 L 507.0071 812.7048 z " fill="#96a3a3" id="path5642" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 813.5503 L 287.2833 847.3705 L 288.8092 838.07 L 288.8092 822.0054 L 285.7574 813.5503 z " fill="#1d2022" id="path5643" stroke="none" style="fill:#1d2022;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 813.5503 L 423.0849 814.3958 L 421.5591 813.5503 z " fill="#74787b" id="path5644" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 813.5503 L 449.0245 816.0869 L 449.0245 813.5503 z " fill="#020501" id="path5645" stroke="none" style="fill:#020501;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 508.533 813.5503 L 510.0589 814.3958 L 508.533 813.5503 z " fill="#596465" id="path5646" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 814.3958 L 194.2059 820.3144 L 194.2059 814.3958 z " fill="#cacfd1" id="path5647" stroke="none" style="fill:#cacfd1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 814.3958 L 206.4127 817.7779 L 206.4127 814.3958 z " fill="#d0d5d8" id="path5648" stroke="none" style="fill:#d0d5d8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 814.3958 L 253.7144 815.2414 L 252.1885 814.3958 z " fill="#9aaba5" id="path5649" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 835.5335 L 249.178 827.0784 L 270.4989 814.3958 C 257.0927 817.6798 239.6124 828.0601 233.8783 835.5335 z " fill="#91988e" id="path5650" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 814.3958 L 285.7574 830.4604 C 288.9267 826.61 288.9267 818.2463 285.7574 814.3958 z " fill="#c7d4d5" id="path5651" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 814.3958 L 336.1108 834.688 C 334.2295 828.3611 326.2248 818.8322 317.8005 814.3958 z " fill="#a8aeb0" id="path5652" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 335.6027 814.6774 L 336.619 814.9598 L 335.6027 814.6774 z " fill="#4d4b4f" id="path5653" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 423.0849 814.3958 L 424.6108 815.2414 L 423.0849 814.3958 z " fill="#6a7676" id="path5654" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 814.3958 L 436.8175 826.2329 C 442.3153 823.4529 443.7512 817.9368 439.8693 814.3958 z " fill="#33322b" id="path5655" stroke="none" style="fill:#33322b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 448.0067 814.9598 L 448.5163 815.5229 L 448.0067 814.9598 z " fill="#333739" id="path5656" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 468.8606 814.3958 L 470.3865 821.1599 L 468.8606 814.3958 z " fill="#7a8686" id="path5657" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 814.3958 L 485.6452 815.2414 L 484.1193 814.3958 z " fill="#857f8a" id="path5658" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 815.2414 L 178.9473 816.0869 L 177.4215 815.2414 z " fill="#596465" id="path5659" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.2312 815.8053 L 225.7408 816.3684 L 225.2312 815.8053 z " fill="#63686a" id="path5660" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 815.2414 L 252.1885 816.0869 L 250.6627 815.2414 z " fill="#93aca4" id="path5661" stroke="none" style="fill:#93aca4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 815.2414 L 284.2316 816.0869 L 282.7057 815.2414 z " fill="#596465" id="path5662" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.1285 815.5229 L 338.1448 815.8053 L 337.1285 815.5229 z " fill="#8f9099" id="path5663" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.1539 815.2414 L 372.7314 818.6234 L 368.1539 815.2414 z " fill="#8a9697" id="path5664" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 441.9032 815.8053 L 442.413 816.3684 L 441.9032 815.8053 z " fill="#74787b" id="path5665" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 460.2137 815.8053 L 460.7232 816.3684 L 460.2137 815.8053 z " fill="#42514b" id="path5666" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 468.8606 815.2414 L 460.2395 829.6149 L 456.5653 838.07 L 438.8577 862.5896 L 440.5284 875.2722 L 447.4987 889.6458 C 450.0025 886.7533 453.7073 883.5666 454.4321 880.3452 C 455.5552 875.3449 453.3823 870.2524 454.7037 865.1261 C 457.351 854.8592 463.0913 844.8957 466.3781 834.688 C 468.2259 828.9495 473.4656 820.8377 468.8606 815.2414 z " fill="#fefffc" id="path5667" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 487.1709 815.2414 L 488.6968 816.0869 L 487.1709 815.2414 z " fill="#857f8a" id="path5668" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 816.0869 L 177.4215 816.9324 L 175.8955 816.0869 z " fill="#8a9697" id="path5669" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 816.0869 L 250.6627 816.9324 L 249.1368 816.0869 z " fill="#92a39c" id="path5670" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 926.0025 L 284.3903 903.1739 L 285.5774 876.9632 L 282.5731 866.8172 L 285.4524 857.5166 L 285.7727 843.143 L 285.7574 822.8517 L 282.3639 817.0423 L 276.5001 822.8517 L 275.0765 842.2975 L 275.3937 863.4351 L 279.9958 876.1177 L 279.6539 926.0025 z " fill="#f8feff" id="path5671" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 337.6368 816.0869 L 352.0697 835.5335 L 363.5763 871.0447 C 350.9712 864.4252 340.8655 852.704 333.7487 843.9885 C 331.6417 841.408 328.2771 834.4766 322.2758 833.9524 C 318.298 833.604 314.8388 836.5751 312.9544 838.0827 C 307.3284 842.585 302.6761 848.0732 299.6825 853.2891 C 297.9353 856.332 297.1206 860.1503 298.5655 863.288 C 299.5999 865.5337 302.5831 866.9491 301.9835 869.4272 C 300.6849 874.7827 297.7156 880.0273 296.7436 885.4183 C 295.5274 892.1578 295.8511 898.9675 294.2535 905.7104 C 293.1412 910.4029 290.4342 919.4727 294.4809 923.8118 C 297.2884 926.821 308.1022 927.8161 313.2229 929.2442 C 326.0844 932.8308 343.8668 938.3274 352.8953 944.6036 C 338.1357 943.031 323.3287 941.3992 308.6453 939.6253 C 304.2676 939.0968 295.9426 937.629 292.6621 940.1368 C 285.9894 945.2377 299.7283 948.3889 305.5937 950.3708 C 315.1179 953.5888 324.9523 957.2405 332.8837 961.6135 C 344.0683 967.7789 353.3852 975.1889 366.6279 980.1148 L 382.0163 943.7581 L 389.7982 920.1068 L 395.5966 909.9354 L 384.9384 886.2638 L 395.6194 894.7188 L 395.7857 884.6827 L 401.7228 891.3368 L 409.3521 887.9548 L 403.2486 902.3284 L 418.141 879.4997 L 421.2004 869.3537 L 411.1953 851.5981 L 398.671 836.379 L 400.1969 843.9885 L 383.6399 828.8929 L 366.6279 823.0276 L 337.6368 816.0869 z " fill="#fefffc" id="path5672" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.0936 816.0869 L 394.0936 818.6234 L 394.0936 816.0869 z " fill="#777c7e" id="path5673" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 446.4808 816.6508 L 446.9904 817.2139 L 446.4808 816.6508 z " fill="#83888b" id="path5674" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.5325 816.6508 L 450.0422 817.2139 L 449.5325 816.6508 z " fill="#434749" id="path5675" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 816.9324 L 207.9386 820.3144 L 207.9386 816.9324 z " fill="#6a7676" id="path5676" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 816.9324 L 291.8609 832.997 C 295.0302 829.1465 295.0302 820.7828 291.8609 816.9324 z " fill="#222628" id="path5677" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.8949 817.4963 L 294.4046 818.0594 L 293.8949 817.4963 z " fill="#777c7e" id="path5678" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 816.9324 L 481.0676 821.1599 L 481.0676 816.9324 z " fill="#3c3837" id="path5679" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.3697 817.7779 L 175.8955 818.6234 L 174.3697 817.7779 z " fill="#575f5b" id="path5680" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 347.8097 818.0594 L 348.8257 818.3418 L 347.8097 818.0594 z " fill="#4f5058" id="path5681" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 817.7779 L 449.0245 820.3144 L 449.0245 817.7779 z " fill="#b0b5b7" id="path5682" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.6877 818.3418 L 459.1974 818.9049 L 458.6877 818.3418 z " fill="#4c5450" id="path5683" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 494.8003 817.7779 L 496.3261 818.6234 L 494.8003 817.7779 z " fill="#777c7e" id="path5684" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 818.6234 L 174.3697 819.4689 L 172.8438 818.6234 z " fill="#91988e" id="path5685" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 818.6234 L 185.0508 820.3144 L 181.999 818.6234 z " fill="#a8aeb0" id="path5686" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.7571 819.1873 L 227.2666 819.7504 L 226.7571 819.1873 z " fill="#4c5450" id="path5687" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 277.1105 819.1873 L 277.6201 819.7504 L 277.1105 819.1873 z " fill="#a9b1b9" id="path5688" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 818.6234 L 293.3867 824.5419 L 294.9126 822.0054 L 296.4385 825.3874 C 298.3473 822.9321 297.4135 820.1884 293.3867 818.6234 z " fill="#aeb3b5" id="path5689" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.189 818.9049 L 312.2052 819.1873 L 311.189 818.9049 z " fill="#45453d" id="path5690" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 350.8613 818.9049 L 351.8775 819.1873 L 350.8613 818.9049 z " fill="#736c77" id="path5691" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 818.6234 L 374.2573 821.1599 L 371.2056 818.6234 z " fill="#333739" id="path5692" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 443.9387 818.9049 L 444.955 819.1873 L 443.9387 818.9049 z " fill="#a6b2b3" id="path5693" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 466.317 819.1873 L 466.8267 819.7504 L 466.317 819.1873 z " fill="#a0a5a8" id="path5694" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.189 819.7504 L 312.2052 820.0328 L 311.189 819.7504 z " fill="#7a8686" id="path5695" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 819.4689 L 340.6884 820.3144 L 339.1625 819.4689 z " fill="#777c7e" id="path5696" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 443.9387 819.7504 L 444.955 820.0328 L 443.9387 819.7504 z " fill="#394444" id="path5697" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 500.9038 819.4689 L 502.4296 820.3144 L 500.9038 819.4689 z " fill="#63686a" id="path5698" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 820.3144 L 207.9386 828.7694 L 207.9386 820.3144 z " fill="#b5babd" id="path5699" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 820.3144 L 227.7748 822.8509 L 227.7748 820.3144 z " fill="#b8bec0" id="path5700" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 820.3144 L 275.0765 825.3874 L 275.0765 820.3144 z " fill="#989d9f" id="path5701" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 835.5335 L 302.5419 831.3059 L 296.4385 848.216 L 309.0192 837.2245 L 316.7798 829.6149 L 311.4378 821.6351 L 308.5264 826.2363 L 302.5419 835.5335 z " fill="#f0f6f8" id="path5702" stroke="none" style="fill:#f0f6f8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 357.4729 820.3144 L 358.9988 821.1599 L 357.4729 820.3144 z " fill="#83888b" id="path5703" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.671 820.3144 L 400.1969 821.1599 L 398.671 820.3144 z " fill="#7a8686" id="path5704" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 448.0067 820.8783 L 448.5163 821.4414 L 448.0067 820.8783 z " fill="#a8aeb0" id="path5705" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.4473 820.5959 L 504.4635 820.8783 L 503.4473 820.5959 z " fill="#53575a" id="path5706" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 821.1599 L 171.318 822.0054 L 169.7921 821.1599 z " fill="#96a3a3" id="path5707" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 821.1599 L 183.5249 822.0054 L 181.999 821.1599 z " fill="#83888b" id="path5708" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 821.1599 L 192.6799 823.6964 L 192.6799 821.1599 z " fill="#888d90" id="path5709" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 821.1599 L 308.6453 823.6964 L 308.6453 821.1599 z " fill="#a0a5a8" id="path5710" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 341.1966 821.7238 L 341.7062 822.2869 L 341.1966 821.7238 z " fill="#3c3837" id="path5711" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 821.1599 L 401.7228 822.0054 L 400.1969 821.1599 z " fill="#6a7676" id="path5712" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 464.7912 821.7238 L 465.3009 822.2869 L 464.7912 821.7238 z " fill="#96a3a3" id="path5713" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 821.1599 L 482.5934 824.5419 L 482.5934 821.1599 z " fill="#b7c3c4" id="path5714" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.3697 822.0054 L 175.8955 822.8509 L 174.3697 822.0054 z " fill="#686c6f" id="path5715" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 822.0054 L 241.5076 822.8509 L 239.9816 822.0054 z " fill="#6a7676" id="path5716" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 822.0054 L 293.3867 832.1515 L 294.9126 822.0054 z " fill="#c6ced6" id="path5717" stroke="none" style="fill:#c6ced6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 364.5941 822.2869 L 365.6103 822.5693 L 364.5941 822.2869 z " fill="#333739" id="path5718" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.636 822.5693 L 456.1456 823.1324 L 455.636 822.5693 z " fill="#575f5b" id="path5719" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 822.8509 L 171.318 824.5419 L 168.2662 822.8509 z " fill="#333739" id="path5720" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 822.8509 L 174.3697 823.6964 L 172.8438 822.8509 z " fill="#8f9099" id="path5721" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 822.8509 L 181.999 823.6964 L 180.4732 822.8509 z " fill="#6a7676" id="path5722" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 822.8509 L 183.5249 825.3874 L 185.0508 822.8509 z " fill="#484c4e" id="path5723" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 822.8509 L 239.9816 823.6964 L 238.4558 822.8509 z " fill="#96a3a3" id="path5724" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 315.2569 823.4148 L 315.7666 823.978 L 315.2569 823.4148 z " fill="#a8aeb0" id="path5725" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 342.2142 822.8509 L 343.7402 823.6964 L 342.2142 822.8509 z " fill="#959a9c" id="path5726" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 367.6458 823.1324 L 368.662 823.4148 L 367.6458 823.1324 z " fill="#434749" id="path5727" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 445.9728 822.8509 L 445.9728 825.3874 L 445.9728 822.8509 z " fill="#857f8a" id="path5728" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.7572 822.8509 L 462.7572 825.3874 L 462.7572 822.8509 z " fill="#484c4e" id="path5729" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 823.6964 L 171.318 825.3874 L 166.7404 823.6964 z " fill="#bfcccd" id="path5730" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 823.6964 L 223.1971 836.379 L 223.1971 823.6964 L 220.1455 823.6964 z " fill="#1d2022" id="path5731" stroke="none" style="fill:#1d2022;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 370.6975 823.978 L 371.7138 824.2604 L 370.6975 823.978 z " fill="#63686a" id="path5732" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 514.6365 823.6964 L 516.1623 824.5419 L 514.6365 823.6964 z " fill="#a19ea2" id="path5733" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.6623 825.1059 L 192.1719 825.669 L 191.6623 825.1059 z " fill="#53575a" id="path5734" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.8089 825.1059 L 230.3184 825.669 L 229.8089 825.1059 z " fill="#394444" id="path5735" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.7829 825.1059 L 317.2924 825.669 L 316.7829 825.1059 z " fill="#888d90" id="path5736" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.2573 824.5419 L 375.7832 825.3874 L 374.2573 824.5419 z " fill="#83888b" id="path5737" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 407.8263 824.5419 L 409.3521 825.3874 L 407.8263 824.5419 z " fill="#96a3a3" id="path5738" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 824.5419 L 482.5934 827.0784 L 482.5934 824.5419 z " fill="#74787b" id="path5739" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 517.6883 824.5419 L 519.214 825.3874 L 517.6883 824.5419 z " fill="#807b7a" id="path5740" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 528.3692 824.5419 L 529.895 825.3874 L 528.3692 824.5419 z " fill="#596465" id="path5741" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 825.3874 L 180.4732 830.4604 L 183.5249 825.3874 z " fill="#777c7e" id="path5742" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 825.3874 L 221.6713 835.5335 C 226.9493 832.7695 225.7348 828.4473 221.6713 825.3874 z " fill="#dadfe2" id="path5743" stroke="none" style="fill:#dadfe2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 825.3874 L 236.93 826.2329 L 235.4041 825.3874 z " fill="#6a7676" id="path5744" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 825.3874 L 307.1196 828.7694 L 307.1196 825.3874 z " fill="#b7c3c4" id="path5745" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 378.3269 825.669 L 379.3429 825.9514 L 378.3269 825.669 z " fill="#434749" id="path5746" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 825.3874 L 410.878 826.2329 L 409.3521 825.3874 z " fill="#97a4a4" id="path5747" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 445.9728 825.3874 L 445.9728 829.6149 L 445.9728 825.3874 z " fill="#c8c5ca" id="path5748" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 468.8606 825.3874 L 468.8606 827.9239 L 468.8606 825.3874 z " fill="#777c7e" id="path5749" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 520.7398 825.3874 L 522.2657 826.2329 L 520.7398 825.3874 z " fill="#686c6f" id="path5750" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.895 825.3874 L 531.4209 826.2329 L 529.895 825.3874 z " fill="#82928c" id="path5751" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 826.2329 L 178.9473 827.0784 L 177.4215 826.2329 z " fill="#6a7676" id="path5752" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 826.2329 L 191.1541 831.3059 L 191.1541 826.2329 z " fill="#cacfd1" id="path5753" stroke="none" style="fill:#cacfd1;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 826.2329 L 233.8783 827.9239 L 230.8265 826.2329 z " fill="#7a8686" id="path5754" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 826.2329 L 346.7918 827.0784 L 345.266 826.2329 z " fill="#83888b" id="path5755" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 826.2329 L 381.8866 827.0784 L 380.3607 826.2329 z " fill="#63736d" id="path5756" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.878 826.2329 L 412.4038 827.0784 L 410.878 826.2329 z " fill="#83888b" id="path5757" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 826.2329 L 453.602 827.0784 L 452.0762 826.2329 z " fill="#63686a" id="path5758" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 827.0784 L 317.8005 829.6149 L 317.8005 827.0784 z " fill="#aeb3b5" id="path5759" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 381.8866 827.0784 L 383.4125 827.9239 L 381.8866 827.0784 z " fill="#595a63" id="path5760" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 412.4038 827.0784 L 413.9298 827.9239 L 412.4038 827.0784 z " fill="#82928c" id="path5761" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 467.3348 827.0784 L 467.3348 830.4604 L 467.3348 827.0784 z " fill="#bfcccd" id="path5762" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 827.0784 L 526.8433 827.9239 L 525.3175 827.0784 z " fill="#959a9c" id="path5763" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 827.9239 L 177.4215 828.7694 L 175.8955 827.9239 z " fill="#807b7a" id="path5764" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 827.9239 L 273.5507 833.8425 L 273.5507 827.9239 z " fill="#777c7e" id="path5765" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 347.3001 828.4879 L 347.8097 829.051 L 347.3001 828.4879 z " fill="#484c4e" id="path5766" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 413.9298 827.9239 L 415.4556 828.7694 L 413.9298 827.9239 z " fill="#97a4a4" id="path5767" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 827.9239 L 484.1193 832.1515 L 484.1193 827.9239 z " fill="#d1d7d9" id="path5768" stroke="none" style="fill:#d1d7d9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 828.7694 L 207.9386 846.525 C 211.3138 842.4235 211.3138 832.871 207.9386 828.7694 z " fill="#686c6f" id="path5769" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 828.7694 L 259.8178 838.9155 C 262.067 836.182 262.9519 830.8156 258.292 828.7694 z " fill="#434749" id="path5770" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 306.1017 829.3334 L 306.6114 829.8965 L 306.1017 829.3334 z " fill="#596465" id="path5771" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 828.7694 L 384.9384 829.6149 L 383.4125 828.7694 z " fill="#7a8686" id="path5772" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 828.7694 L 397.1453 832.1515 L 397.1453 828.7694 z " fill="#686c6f" id="path5773" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 828.7694 L 439.8693 832.997 L 439.8693 828.7694 z " fill="#aeb3b5" id="path5774" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 828.7694 L 450.5503 829.6149 L 449.0245 828.7694 z " fill="#74787b" id="path5775" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 460.2137 829.3334 L 460.7232 829.8965 L 460.2137 829.3334 z " fill="#a0a5a8" id="path5776" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.895 828.7694 L 531.4209 829.6149 L 529.895 828.7694 z " fill="#9aaba5" id="path5777" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.8778 830.1789 L 175.3874 830.742 L 174.8778 830.1789 z " fill="#4c5450" id="path5778" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.2312 830.1789 L 225.7408 830.742 L 225.2312 830.1789 z " fill="#6a7676" id="path5779" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 829.6149 L 294.9126 832.1515 L 294.9126 829.6149 z " fill="#63686a" id="path5780" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.5242 830.1789 L 302.0338 830.742 L 301.5242 830.1789 z " fill="#8a9697" id="path5781" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 446.9904 829.8965 L 448.0067 830.1789 L 446.9904 829.8965 z " fill="#7a8686" id="path5782" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 830.4604 L 177.4215 838.9155 L 180.4732 830.4604 z " fill="#a9b1b9" id="path5783" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 830.4604 L 189.6282 832.997 L 189.6282 830.4604 z " fill="#3c3837" id="path5784" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 873.5812 L 250.6627 873.5812 L 259.8178 830.4604 L 238.201 840.0781 L 241.1703 853.1098 L 247.7239 857.8531 L 246.4421 864.2806 L 247.6109 873.5812 z " fill="#f5fafd" id="path5785" stroke="none" style="fill:#f5fafd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 831.0244 L 300.5079 831.5875 L 299.9983 831.0244 z " fill="#4c5450" id="path5786" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 830.4604 L 305.5937 833.8425 L 305.5937 830.4604 z " fill="#c7cdcf" id="path5787" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.8257 831.0244 L 349.3355 831.5875 L 348.8257 831.0244 z " fill="#394444" id="path5788" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 830.4604 L 407.8263 831.3059 L 406.3003 830.4604 z " fill="#a19ea2" id="path5789" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 467.3348 830.4604 L 467.3348 832.997 L 467.3348 830.4604 z " fill="#74787b" id="path5790" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 831.3059 L 256.7661 832.1515 L 255.2402 831.3059 z " fill="#888d90" id="path5791" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 314.7488 831.3059 L 316.2746 832.1515 L 314.7488 831.3059 z " fill="#82928c" id="path5792" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.3699 831.5875 L 411.386 831.8699 L 410.3699 831.5875 z " fill="#394444" id="path5793" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 832.1515 L 255.2402 832.997 L 253.7144 832.1515 z " fill="#8a9697" id="path5794" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.8949 832.7154 L 294.4046 833.2785 L 293.8949 832.7154 z " fill="#777c7e" id="path5795" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 832.7154 L 300.5079 833.2785 L 299.9983 832.7154 z " fill="#96a3a3" id="path5796" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 832.1515 L 305.5937 835.5335 L 302.5419 832.1515 z " fill="#63686a" id="path5797" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 321.8701 832.433 L 322.8861 832.7154 L 321.8701 832.433 z " fill="#83888b" id="path5798" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.671 832.1515 L 400.1969 832.997 L 398.671 832.1515 z " fill="#6a7676" id="path5799" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 412.4038 832.1515 L 413.9298 832.997 L 412.4038 832.1515 z " fill="#97a4a4" id="path5800" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 473.4382 832.1515 L 474.9641 835.5335 L 473.4382 832.1515 z " fill="#3c3837" id="path5801" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 832.1515 L 484.1193 842.2975 L 484.1193 832.1515 z " fill="#74787b" id="path5802" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 832.997 L 189.6282 835.5335 L 189.6282 832.997 z " fill="#91988e" id="path5803" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 832.997 L 423.0849 833.8425 L 421.5591 832.997 z " fill="#83888b" id="path5804" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 445.9728 834.688 L 450.5503 832.997 L 445.9728 834.688 z " fill="#2e272b" id="path5805" stroke="none" style="fill:#2e272b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.826 834.4064 L 172.3358 834.9695 L 171.826 834.4064 z " fill="#394444" id="path5806" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 833.8425 L 273.5507 842.2975 L 273.5507 833.8425 z " fill="#9facad" id="path5807" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.8949 834.4064 L 294.4046 834.9695 L 293.8949 834.4064 z " fill="#394444" id="path5808" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 298.4724 834.4064 L 298.9821 834.9695 L 298.4724 834.4064 z " fill="#434749" id="path5809" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 833.8425 L 313.2229 834.688 L 311.6971 833.8425 z " fill="#63686a" id="path5810" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 833.8425 L 319.3263 834.688 L 317.8005 833.8425 z " fill="#686c6f" id="path5811" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 387.9901 833.8425 L 389.5159 834.688 L 387.9901 833.8425 z " fill="#8a9697" id="path5812" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 447.4987 833.8425 L 452.0762 835.5335 L 447.4987 833.8425 z " fill="#d0d5d8" id="path5813" stroke="none" style="fill:#d0d5d8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 456.6537 833.8425 L 456.6537 838.9155 L 456.6537 833.8425 z " fill="#686c6f" id="path5814" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 466.317 834.4064 L 466.8267 834.9695 L 466.317 834.4064 z " fill="#97a4a4" id="path5815" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 834.688 L 224.7231 835.5335 L 223.1971 834.688 z " fill="#596465" id="path5816" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 834.688 L 249.1368 835.5335 L 247.6109 834.688 z " fill="#736c77" id="path5817" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 834.688 L 311.6971 835.5335 L 310.1711 834.688 z " fill="#82928c" id="path5818" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 834.688 L 317.8005 835.5335 L 316.2746 834.688 z " fill="#857f8a" id="path5819" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 834.688 L 351.3695 853.2891 C 349.7963 847.9886 343.1329 837.5872 334.5851 834.688 z " fill="#777c7e" id="path5820" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.8775 835.2519 L 352.3872 835.815 L 351.8775 835.2519 z " fill="#a0a5a8" id="path5821" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.7745 834.688 L 406.3003 835.5335 L 404.7745 834.688 z " fill="#63736d" id="path5822" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.0331 834.688 L 421.5591 835.5335 L 420.0331 834.688 z " fill="#7a8686" id="path5823" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.9124 834.688 L 467.3348 854.1346 C 471.6224 849.4826 475.9575 839.6105 471.9124 834.688 z " fill="#596465" id="path5824" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 840.6065 L 235.4041 835.5335 L 226.2489 840.6065 z " fill="#53575a" id="path5825" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 835.5335 L 247.6109 836.379 L 246.085 835.5335 z " fill="#777c7e" id="path5826" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 835.5335 L 297.9644 838.07 L 297.9644 835.5335 z " fill="#92a39c" id="path5827" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 835.5335 L 397.1453 839.761 L 400.1969 835.5335 L 397.1453 835.5335 z " fill="#6a7676" id="path5828" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 835.5335 L 407.8263 836.379 L 406.3003 835.5335 z " fill="#575f5b" id="path5829" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 835.5335 L 423.0849 836.379 L 421.5591 835.5335 z " fill="#a0a5a8" id="path5830" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 835.5335 L 439.8693 841.452 L 439.8693 835.5335 z " fill="#c9d6d7" id="path5831" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 466.317 836.0974 L 466.8267 836.6605 L 466.317 836.0974 z " fill="#53575a" id="path5832" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 170.3002 836.9429 L 170.81 837.506 L 170.3002 836.9429 z " fill="#434749" id="path5833" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 836.379 L 188.1024 839.761 L 188.1024 836.379 z " fill="#394444" id="path5834" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 836.379 L 244.5593 837.2245 L 243.0334 836.379 z " fill="#63686a" id="path5835" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 836.379 L 310.1711 837.2245 L 308.6453 836.379 z " fill="#63736d" id="path5836" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 837.2245 L 241.5076 838.07 L 239.9816 837.2245 z " fill="#595a63" id="path5837" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 837.2245 L 285.7574 850.7526 L 285.7574 837.2245 z " fill="#cfdcdc" id="path5838" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.0419 837.2245 L 392.5677 838.07 L 391.0419 837.2245 z " fill="#857f8a" id="path5839" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 838.07 L 165.2145 874.4267 L 170.0027 865.9717 L 175.9108 846.525 L 175.8955 838.07 z " fill="#4c5450" id="path5840" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 838.07 L 239.9816 838.9155 L 238.4558 838.07 z " fill="#777c7e" id="path5841" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 838.07 L 296.4385 840.6065 L 296.4385 838.07 z " fill="#6a7676" id="path5842" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 838.07 L 308.6453 838.9155 L 307.1196 838.07 z " fill="#53575a" id="path5843" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 838.07 L 313.2229 838.9155 L 311.6971 838.07 z " fill="#575f5b" id="path5844" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 353.4034 838.6339 L 353.9129 839.197 L 353.4034 838.6339 z " fill="#a8aeb0" id="path5845" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 464.2831 838.07 L 464.2831 840.6065 L 464.2831 838.07 z " fill="#83888b" id="path5846" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.7743 839.4794 L 169.284 840.0425 L 168.7743 839.4794 z " fill="#686c6f" id="path5847" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 838.9155 L 307.1196 839.761 L 305.5937 838.9155 z " fill="#8a9697" id="path5848" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 838.9155 L 456.6537 839.761 L 455.128 838.9155 z " fill="#736c77" id="path5849" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.6105 840.3249 L 189.1202 840.8881 L 188.6105 840.3249 z " fill="#a8aeb0" id="path5850" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.8953 839.761 L 352.8953 842.2975 L 352.8953 839.761 z " fill="#63686a" id="path5851" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 403.7569 840.3249 L 404.2664 840.8881 L 403.7569 840.3249 z " fill="#a19ea2" id="path5852" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 839.761 L 455.128 840.6065 L 453.602 839.761 z " fill="#5c5a5d" id="path5853" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 840.6065 L 310.1711 841.452 L 308.6453 840.6065 z " fill="#6a7676" id="path5854" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 841.452 L 258.292 845.6795 L 258.292 841.452 z " fill="#959a9c" id="path5855" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.7572 841.452 L 462.7572 843.9885 L 462.7572 841.452 z " fill="#97a4a4" id="path5856" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 842.2975 L 186.5765 844.834 L 186.5765 842.2975 z " fill="#575f5b" id="path5857" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 236.93 842.2975 L 236.93 844.834 L 236.93 842.2975 z " fill="#97a4a4" id="path5858" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 273.5507 842.2975 L 273.5507 862.5896 C 277.2264 858.1228 277.2264 846.7643 273.5507 842.2975 z " fill="#6a7676" id="path5859" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.9292 842.8615 L 355.4389 843.4246 L 354.9292 842.8615 z " fill="#b7c3c4" id="path5860" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 842.2975 L 397.1453 843.143 L 395.6194 842.2975 z " fill="#82928c" id="path5861" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 399.1792 842.8615 L 399.6888 843.4246 L 399.1792 842.8615 z " fill="#888d90" id="path5862" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 405.2827 842.8615 L 405.7923 843.4246 L 405.2827 842.8615 z " fill="#a8aeb0" id="path5863" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 418.5073 842.2975 L 420.0331 843.143 L 418.5073 842.2975 z " fill="#575f5b" id="path5864" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 451.0585 842.8615 L 451.5681 843.4246 L 451.0585 842.8615 z " fill="#9facad" id="path5865" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 842.2975 L 484.1193 845.6795 L 484.1193 842.2975 z " fill="#b8bec0" id="path5866" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 843.143 L 297.9644 849.9071 L 294.9126 843.143 z " fill="#33413c" id="path5867" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.0331 843.143 L 421.5591 843.9885 L 420.0331 843.143 z " fill="#6a7676" id="path5868" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.8515 843.707 L 439.3612 844.2701 L 438.8515 843.707 z " fill="#63686a" id="path5869" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.0502 843.143 L 542.102 844.834 L 539.0502 843.143 z " fill="#7a8686" id="path5870" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.7226 844.5525 L 166.2323 845.1156 L 165.7226 844.5525 z " fill="#959a9c" id="path5871" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 843.9885 L 302.5419 844.834 L 301.0161 843.9885 z " fill="#63736d" id="path5872" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 305.5937 843.9885 L 307.1196 844.834 L 305.5937 843.9885 z " fill="#777c7e" id="path5873" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 843.9885 L 334.5851 844.834 L 333.0591 843.9885 z " fill="#857f8a" id="path5874" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.9292 844.5525 L 355.4389 845.1156 L 354.9292 844.5525 z " fill="#63686a" id="path5875" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 843.9885 L 423.0849 844.834 L 421.5591 843.9885 z " fill="#9aaba5" id="path5876" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 844.834 L 229.3006 845.6795 L 227.7748 844.834 z " fill="#6a7676" id="path5877" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.8086 845.398 L 407.3181 845.9611 L 406.8086 845.398 z " fill="#bbc8c9" id="path5878" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.5325 845.398 L 450.0422 845.9611 L 449.5325 845.398 z " fill="#b7c3c4" id="path5879" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 844.834 L 535.9985 845.6795 L 534.4727 844.834 z " fill="#a0a5a8" id="path5880" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 539.0502 844.834 L 540.576 845.6795 L 539.0502 844.834 z " fill="#888d90" id="path5881" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 845.6795 L 185.0508 849.9071 L 185.0508 845.6795 z " fill="#7a8686" id="path5882" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2902 847.0002 C 223.1256 847.8364 223.2735 850.8557 223.2201 852.4444 C 223.0568 857.2325 223.1971 862.0282 223.1971 866.8172 C 223.1971 882.5715 225.286 897.4971 231.5131 912.7323 C 233.1535 916.7459 227.6267 922.4277 231.9206 926.1885 C 234.4962 928.4435 245.3177 925.8757 248.5082 924.998 C 255.956 922.9494 250.6337 913.3639 249.3032 909.9379 C 245.5022 900.1495 242.6092 890.2047 239.408 880.3452 C 237.6028 874.7894 236.8948 869.5253 232.8512 864.2806 C 229.319 859.6988 231.4872 855.5212 230.503 850.7661 C 230.3061 849.8149 229.4838 846.1564 226.2902 847.0002 z " fill="#fefffc" id="path5883" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.8089 846.2435 L 230.3184 846.8066 L 229.8089 846.2435 z " fill="#45453d" id="path5884" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 845.6795 L 258.292 849.0616 L 258.292 845.6795 z " fill="#595a63" id="path5885" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 845.6795 L 305.5937 846.525 L 304.0679 845.6795 z " fill="#596465" id="path5886" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 845.6795 L 336.1108 846.525 L 334.5851 845.6795 z " fill="#888d90" id="path5887" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 414.4378 846.2435 L 414.9475 846.8066 L 414.4378 846.2435 z " fill="#575f5b" id="path5888" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 423.0849 845.6795 L 424.6108 846.525 L 423.0849 845.6795 z " fill="#74787b" id="path5889" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 437.3258 846.2435 L 437.8354 846.8066 L 437.3258 846.2435 z " fill="#53575a" id="path5890" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 845.6795 L 461.2313 848.216 L 461.2313 845.6795 z " fill="#91988e" id="path5891" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 482.5934 845.6795 L 482.5934 848.216 L 482.5934 845.6795 z " fill="#74787b" id="path5892" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 532.9468 845.6795 L 534.4727 846.525 L 532.9468 845.6795 z " fill="#575f5b" id="path5893" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 537.5244 845.6795 L 539.0502 846.525 L 537.5244 845.6795 z " fill="#596465" id="path5894" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 846.525 L 238.4558 849.0616 L 238.4558 846.525 z " fill="#a4b5ae" id="path5895" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 355.947 846.525 L 355.947 849.0616 L 355.947 846.525 z " fill="#a8aeb0" id="path5896" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 448.0067 847.089 L 448.5163 847.6521 L 448.0067 847.089 z " fill="#807b7a" id="path5897" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 535.9985 846.525 L 537.5244 847.3705 L 535.9985 846.525 z " fill="#575f5b" id="path5898" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 847.3705 L 207.9386 848.216 L 206.4127 847.3705 z " fill="#73837d" id="path5899" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 847.3705 L 221.6713 852.4436 L 221.6713 847.3705 z " fill="#686c6f" id="path5900" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.8089 847.9345 L 230.3184 848.4976 L 229.8089 847.9345 z " fill="#7a8686" id="path5901" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 847.3705 L 337.6368 848.216 L 336.1108 847.3705 z " fill="#989d9f" id="path5902" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 847.3705 L 425.4515 863.4351 L 433.7658 874.4267 C 431.7136 866.2067 425.3218 853.7304 415.4556 847.3705 z " fill="#7a8686" id="path5903" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.6108 847.3705 L 426.1365 848.216 L 424.6108 847.3705 z " fill="#74787b" id="path5904" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 528.3692 847.3705 L 529.895 848.216 L 528.3692 847.3705 z " fill="#63686a" id="path5905" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.16349 848.4976 L 45.17971 848.78 L 44.16349 848.4976 z " fill="#74787b" id="path5906" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 163.6887 848.216 L 163.6887 850.7526 L 163.6887 848.216 z " fill="#8f9099" id="path5907" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 45.68936 849.3431 L 46.70557 849.6255 L 45.68936 849.3431 z " fill="#0a0301" id="path5908" stroke="none" style="fill:#0a0301;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 48.74105 849.3431 L 49.75733 849.6255 L 48.74105 849.3431 z " fill="#92a39c" id="path5909" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 849.0616 L 206.4127 849.9071 L 204.8869 849.0616 z " fill="#857f8a" id="path5910" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.9639 849.6255 L 239.4735 850.1886 L 238.9639 849.6255 z " fill="#394444" id="path5911" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.8601 849.6255 L 410.3699 850.1886 L 409.8601 849.6255 z " fill="#a4a9ac" id="path5912" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.1365 849.0616 L 427.6625 849.9071 L 426.1365 849.0616 z " fill="#777c7e" id="path5913" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 459.7054 849.0616 L 459.7054 851.5981 L 459.7054 849.0616 z " fill="#9facad" id="path5914" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 523.7915 849.0616 L 525.3175 849.9071 L 523.7915 849.0616 z " fill="#63686a" id="path5915" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 849.9071 L 47.72332 850.7526 L 46.19746 849.9071 z " fill="#596465" id="path5916" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 849.9071 L 230.8265 852.4436 L 230.8265 849.9071 z " fill="#394444" id="path5917" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 849.9071 L 256.7661 852.4436 L 256.7661 849.9071 z " fill="#a6b2b3" id="path5918" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 849.9071 L 302.5419 850.7526 L 301.0161 849.9071 z " fill="#83888b" id="path5919" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 445.9728 849.9071 L 445.9728 852.4436 L 445.9728 849.9071 z " fill="#aebbbc" id="path5920" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 481.0676 849.9071 L 481.0676 852.4436 L 481.0676 849.9071 z " fill="#394444" id="path5921" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 520.7398 849.9071 L 522.2657 850.7526 L 520.7398 849.9071 z " fill="#a4a9ac" id="path5922" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 531.4209 849.9071 L 532.9468 850.7526 L 531.4209 849.9071 z " fill="#888d90" id="path5923" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.87852 850.7526 L 58.40432 851.5981 L 56.87852 850.7526 z " fill="#736c77" id="path5924" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 850.7526 L 285.7574 856.6711 L 285.7574 850.7526 z " fill="#63686a" id="path5925" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 357.981 851.3165 L 358.4906 851.8796 L 357.981 851.3165 z " fill="#959a9c" id="path5926" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 411.386 851.3165 L 411.8958 851.8796 L 411.386 851.3165 z " fill="#83888b" id="path5927" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 427.6625 850.7526 L 429.1882 851.5981 L 427.6625 850.7526 z " fill="#736c77" id="path5928" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.895 850.7526 L 531.4209 851.5981 L 529.895 850.7526 z " fill="#686c6f" id="path5929" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.77506 851.5981 L 52.30086 852.4436 L 50.77506 851.5981 z " fill="#6a7676" id="path5930" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 851.5981 L 162.1628 854.1346 L 162.1628 851.5981 z " fill="#9facad" id="path5931" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 851.5981 L 203.3611 852.4436 L 201.8352 851.5981 z " fill="#96a3a3" id="path5932" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 851.5981 L 301.0161 852.4436 L 299.4902 851.5981 z " fill="#63686a" id="path5933" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 340.6884 851.5981 L 342.2142 852.4436 L 340.6884 851.5981 z " fill="#596465" id="path5934" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 516.1623 851.5981 L 517.6883 852.4436 L 516.1623 851.5981 z " fill="#97a4a4" id="path5935" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 52.30086 852.4436 L 53.82679 853.2891 L 52.30086 852.4436 z " fill="#989d9f" id="path5936" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 65.52552 852.7251 L 66.54178 853.0075 L 65.52552 852.7251 z " fill="#737667" id="path5937" stroke="none" style="fill:#737667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 68.57725 852.7251 L 69.59351 853.0075 L 68.57725 852.7251 z " fill="#b3c4bd" id="path5938" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 852.4436 L 183.5249 854.9801 L 183.5249 852.4436 z " fill="#63686a" id="path5939" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 852.4436 L 221.6713 871.8902 C 225.2479 867.5434 225.2479 856.7903 221.6713 852.4436 z " fill="#c7cdcf" id="path5940" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.8265 852.4436 L 230.8265 856.6711 L 230.8265 852.4436 z " fill="#74787b" id="path5941" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.4898 853.0075 L 240.9994 853.5706 L 240.4898 853.0075 z " fill="#4d4b4f" id="path5942" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 257.2743 853.0075 L 257.7839 853.5706 L 257.2743 853.0075 z " fill="#45453d" id="path5943" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 429.1882 852.4436 L 430.7142 853.2891 L 429.1882 852.4436 z " fill="#686c6f" id="path5944" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 514.6365 852.4436 L 516.1623 853.2891 L 514.6365 852.4436 z " fill="#737667" id="path5945" stroke="none" style="fill:#737667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 72.13704 853.2891 L 76.71471 854.1346 L 72.13704 853.2891 z " fill="#575f5b" id="path5946" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 853.2891 L 201.8352 854.1346 L 200.3094 853.2891 z " fill="#6a7676" id="path5947" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 298.4724 853.853 L 298.9821 854.4161 L 298.4724 853.853 z " fill="#959a9c" id="path5948" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 342.2142 853.2891 L 343.7402 854.1346 L 342.2142 853.2891 z " fill="#63686a" id="path5949" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 412.9119 853.853 L 413.4216 854.4161 L 412.9119 853.853 z " fill="#7a8686" id="path5950" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 430.7142 853.2891 L 432.24 854.1346 L 430.7142 853.2891 z " fill="#83888b" id="path5951" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 853.2891 L 458.1796 855.8256 L 458.1796 853.2891 z " fill="#74787b" id="path5952" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 853.2891 L 465.8089 856.6711 L 465.8089 853.2891 z " fill="#333739" id="path5953" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 526.8433 853.2891 L 528.3692 854.1346 L 526.8433 853.2891 z " fill="#a0a5a8" id="path5954" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 854.1346 L 255.2402 856.6711 L 255.2402 854.1346 z " fill="#a8aeb0" id="path5955" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 443.4292 854.6985 L 443.9387 855.2616 L 443.4292 854.6985 z " fill="#aeb3b5" id="path5956" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 854.1346 L 526.8433 854.9801 L 525.3175 854.1346 z " fill="#5c5a5d" id="path5957" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 84.34397 854.9801 L 85.86977 855.8256 L 84.34397 854.9801 z " fill="#63736d" id="path5958" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 343.7402 854.9801 L 345.266 855.8256 L 343.7402 854.9801 z " fill="#74787b" id="path5959" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 514.6365 856.6711 L 519.214 854.9801 L 514.6365 856.6711 z " fill="#53575a" id="path5960" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 59.93025 855.8256 L 61.45605 856.6711 L 59.93025 855.8256 z " fill="#5d5e66" id="path5961" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 161.1451 856.3895 L 161.6547 856.9526 L 161.1451 856.3895 z " fill="#b5babd" id="path5962" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 855.8256 L 198.7834 856.6711 L 197.2576 855.8256 z " fill="#83888b" id="path5963" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 855.8256 L 207.9386 873.5812 C 211.3138 869.4797 211.3138 859.9271 207.9386 855.8256 z " fill="#4c5450" id="path5964" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 855.8256 L 249.1368 856.6711 L 243.0334 855.8256 z " fill="#91988e" id="path5965" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 855.8256 L 296.4385 862.5896 L 296.4385 855.8256 z " fill="#aeb3b5" id="path5966" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 359.5068 856.3895 L 360.0164 856.9526 L 359.5068 856.3895 z " fill="#777c7e" id="path5967" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 441.3952 855.8256 L 442.921 856.6711 L 441.3952 855.8256 z " fill="#686c6f" id="path5968" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 507.0071 855.8256 L 508.533 856.6711 L 507.0071 855.8256 z " fill="#63686a" id="path5969" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 61.45605 856.6711 L 62.98185 857.5166 L 61.45605 856.6711 z " fill="#8f9099" id="path5970" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 856.6711 L 181.999 860.8986 L 181.999 856.6711 z " fill="#4c5450" id="path5971" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.7484 857.235 L 256.258 857.7982 L 255.7484 857.235 z " fill="#33413c" id="path5972" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 414.4378 857.235 L 414.9475 857.7982 L 414.4378 857.235 z " fill="#c5bcb5" id="path5973" stroke="none" style="fill:#c5bcb5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 456.6537 856.6711 L 456.6537 859.2076 L 456.6537 856.6711 z " fill="#91988e" id="path5974" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 856.6711 L 462.7572 866.8172 C 467.4081 864.7981 468.1008 859.5137 465.8089 856.6711 z " fill="#74787b" id="path5975" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 883.7273 L 479.5417 876.598 L 516.1623 856.6711 L 488.6968 870.1019 L 461.2313 883.7273 z " fill="#82928c" id="path5976" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 522.2657 856.6711 L 523.7915 857.5166 L 522.2657 856.6711 z " fill="#807b7a" id="path5977" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 857.5166 L 160.6369 860.0531 L 160.6369 857.5166 z " fill="#63686a" id="path5978" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 857.5166 C 204.8853 869.2099 200.3582 880.2412 194.0243 891.3368 C 190.0494 898.2987 180.763 901.6942 186.5765 909.0924 L 191.7477 907.7768 L 194.5873 915.8564 L 204.2934 928.539 L 210.9904 935.3031 L 210.557 921.775 L 205.4362 912.4744 L 207.9218 901.4829 L 207.9386 857.5166 L 204.8869 857.5166 z " fill="#fefffc" id="path5979" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.8089 858.0806 L 230.3184 858.6437 L 229.8089 858.0806 z " fill="#82928c" id="path5980" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 346.7918 857.5166 L 348.3177 858.3621 L 346.7918 857.5166 z " fill="#736c77" id="path5981" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 502.4296 857.5166 L 503.9554 858.3621 L 502.4296 857.5166 z " fill="#7a8686" id="path5982" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 248.1191 858.9261 L 248.6287 859.4892 L 248.1191 858.9261 z " fill="#888d90" id="path5983" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 254.2226 858.9261 L 254.7322 859.4892 L 254.2226 858.9261 z " fill="#96a3a3" id="path5984" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 478.0159 858.3621 L 478.0159 860.8986 L 478.0159 858.3621 z " fill="#373b3d" id="path5985" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 500.9038 858.3621 L 502.4296 859.2076 L 500.9038 858.3621 z " fill="#575f5b" id="path5986" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 67.55952 859.2076 L 69.08531 860.0531 L 67.55952 859.2076 z " fill="#5d5e66" id="path5987" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 859.2076 L 88.9215 861.7441 L 79.76644 859.2076 z " fill="#4f5058" id="path5988" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 859.2076 L 203.3611 861.7441 L 203.3611 859.2076 z " fill="#333739" id="path5989" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 236.93 859.2076 L 241.5076 860.8986 L 236.93 859.2076 z " fill="#42514b" id="path5990" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.7398 859.7716 L 285.2494 860.3347 L 284.7398 859.7716 z " fill="#a6b2b3" id="path5991" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.3177 859.2076 L 349.8435 860.0531 L 348.3177 859.2076 z " fill="#857f8a" id="path5992" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 859.2076 L 360.5247 861.7441 L 360.5247 859.2076 z " fill="#bbc8c9" id="path5993" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 69.08531 860.0531 L 70.61125 860.8986 L 69.08531 860.0531 z " fill="#8f9099" id="path5994" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.6193 860.6171 L 160.1288 861.1802 L 159.6193 860.6171 z " fill="#b8bec0" id="path5995" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 860.0531 L 195.7317 863.4351 L 192.6799 860.0531 z " fill="#7a8686" id="path5996" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 254.2226 860.6171 L 254.7322 861.1802 L 254.2226 860.6171 z " fill="#434749" id="path5997" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.8515 860.6171 L 439.3612 861.1802 L 438.8515 860.6171 z " fill="#a4a9ac" id="path5998" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 860.0531 L 455.128 862.5896 L 455.128 860.0531 z " fill="#b8bec0" id="path5999" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 860.8986 L 181.999 864.2806 L 181.999 860.8986 z " fill="#83888b" id="path6000" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.5933 861.4626 L 247.1028 862.0257 L 246.5933 861.4626 z " fill="#63686a" id="path6001" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 860.8986 L 284.2316 863.4351 L 284.2316 860.8986 z " fill="#596465" id="path6002" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 417.4895 861.4626 L 417.9992 862.0257 L 417.4895 861.4626 z " fill="#959a9c" id="path6003" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.3957 861.7441 L 91.97323 863.4351 L 87.3957 861.7441 z " fill="#777c7e" id="path6004" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 110.2836 861.7441 L 111.8094 862.5896 L 110.2836 861.7441 z " fill="#63736d" id="path6005" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 861.7441 L 159.111 864.2806 L 159.111 861.7441 z " fill="#53575a" id="path6006" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 861.7441 L 203.3611 866.8172 L 203.3611 861.7441 z " fill="#a0a5a8" id="path6007" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 231.3346 862.3081 L 231.8443 862.8712 L 231.3346 862.3081 z " fill="#a8aeb0" id="path6008" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.6966 862.3081 L 253.2063 862.8712 L 252.6966 862.3081 z " fill="#989d9f" id="path6009" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.3695 861.7441 L 352.8953 862.5896 L 351.3695 861.7441 z " fill="#686c6f" id="path6010" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 861.7441 L 360.5247 864.2806 L 360.5247 861.7441 z " fill="#7a8686" id="path6011" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 491.7485 861.7441 L 493.2743 862.5896 L 491.7485 861.7441 z " fill="#9d9c94" id="path6012" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 75.18878 862.5896 L 76.71471 863.4351 L 75.18878 862.5896 z " fill="#888d90" id="path6013" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 862.5896 L 98.07669 865.1261 L 91.97323 862.5896 z " fill="#53575a" id="path6014" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 862.5896 L 114.8612 863.4351 L 113.3354 862.5896 z " fill="#83888b" id="path6015" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.9994 862.8712 L 242.0156 863.1536 L 240.9994 862.8712 z " fill="#6a7676" id="path6016" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.9466 863.1536 L 297.4562 863.7167 L 296.9466 863.1536 z " fill="#575f5b" id="path6017" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 862.5896 L 436.8175 866.8172 L 436.8175 862.5896 z " fill="#a8aeb0" id="path6018" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 862.5896 L 455.128 865.1261 L 455.128 862.5896 z " fill="#6a7676" id="path6019" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.9981 863.1536 L 477.5076 863.7167 L 476.9981 863.1536 z " fill="#595a63" id="path6020" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 490.2226 862.5896 L 491.7485 863.4351 L 490.2226 862.5896 z " fill="#7a8686" id="path6021" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 863.4351 L 117.9129 864.2806 L 116.3869 863.4351 z " fill="#82928c" id="path6022" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.8605 863.9991 L 233.37 864.5622 L 232.8605 863.9991 z " fill="#aeb3b5" id="path6023" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 863.4351 L 252.1885 866.8172 L 252.1885 863.4351 z " fill="#333739" id="path6024" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 283.2139 863.9991 L 283.7235 864.5622 L 283.2139 863.9991 z " fill="#6a7676" id="path6025" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.8953 863.4351 L 354.4212 864.2806 L 352.8953 863.4351 z " fill="#a4a9ac" id="path6026" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 488.6968 863.4351 L 490.2226 864.2806 L 488.6968 863.4351 z " fill="#63686a" id="path6027" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 864.2806 L 81.29224 865.1261 L 79.76644 864.2806 z " fill="#5c5a5d" id="path6028" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 864.2806 L 178.9473 882.0362 C 185.6153 878.0488 185.98 869.1195 181.999 864.2806 z " fill="#e4eee9" id="path6029" stroke="none" style="fill:#e4eee9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 864.2806 L 244.5593 869.3537 L 244.5593 864.2806 z " fill="#394444" id="path6030" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.4212 864.2806 L 355.947 865.1261 L 354.4212 864.2806 z " fill="#63686a" id="path6031" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 864.2806 L 360.5247 866.8172 L 360.5247 864.2806 z " fill="#484c4e" id="path6032" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 864.2806 L 478.0159 870.1992 L 476.4899 864.2806 z " fill="#cad4cf" id="path6033" stroke="none" style="fill:#cad4cf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.29224 865.1261 L 82.81804 865.9717 L 81.29224 865.1261 z " fill="#90878d" id="path6034" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 98.07669 865.1261 L 125.5421 874.4267 L 98.07669 865.1261 z " fill="#6a7676" id="path6035" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 865.1261 L 122.4904 865.9717 L 120.9646 865.1261 z " fill="#989d9f" id="path6036" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 865.1261 L 192.6799 865.9717 L 191.1541 865.1261 z " fill="#888d90" id="path6037" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 234.3863 865.6901 L 234.8961 866.2532 L 234.3863 865.6901 z " fill="#aeb3b5" id="path6038" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.5845 865.6901 L 276.0942 866.2532 L 275.5845 865.6901 z " fill="#686c6f" id="path6039" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 865.1261 L 281.1799 867.6627 L 281.1799 865.1261 z " fill="#96a3a3" id="path6040" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 511.5848 865.1261 L 513.1106 865.9717 L 511.5848 865.1261 z " fill="#74787b" id="path6041" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 545.1537 865.1261 L 554.3088 865.9717 L 545.1537 865.1261 z " fill="#d2dbd6" id="path6042" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 554.3088 865.1261 L 568.0416 865.9717 L 554.3088 865.1261 z " fill="#82928c" id="path6043" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 568.0416 865.1261 L 590.9295 865.9717 L 568.0416 865.1261 z " fill="#3c3837" id="path6044" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 590.9295 865.1261 L 597.0329 865.9717 L 590.9295 865.1261 z " fill="#73837d" id="path6045" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 597.0329 865.1261 L 606.1881 865.9717 L 597.0329 865.1261 z " fill="#a6b2b3" id="path6046" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 122.4904 865.9717 L 124.0163 866.8172 L 122.4904 865.9717 z " fill="#575f5b" id="path6047" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 865.9717 L 157.5852 869.3537 L 157.5852 865.9717 z " fill="#2b332f" id="path6048" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.0338 866.2532 L 303.0501 866.5356 L 302.0338 866.2532 z " fill="#6a7676" id="path6049" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.5413 866.5356 L 421.0508 867.0987 L 420.5413 866.5356 z " fill="#b0b5b7" id="path6050" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 453.602 865.9717 L 453.602 877.8087 L 453.602 865.9717 z " fill="#989d9f" id="path6051" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 510.0589 865.9717 L 511.5848 866.8172 L 510.0589 865.9717 z " fill="#5d5e66" id="path6052" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 535.9985 865.9717 L 542.102 866.8172 L 535.9985 865.9717 z " fill="#73837d" id="path6053" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 606.1881 865.9717 L 613.8173 866.8172 L 606.1881 865.9717 z " fill="#575f5b" id="path6054" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 613.8173 865.9717 L 619.9207 866.8172 L 613.8173 865.9717 z " fill="#959a9c" id="path6055" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 866.8172 L 191.1541 867.6627 L 189.6282 866.8172 z " fill="#a19ea2" id="path6056" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.9121 867.3811 L 236.4218 867.9442 L 235.9121 867.3811 z " fill="#63686a" id="path6057" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.5649 867.3574 L 293.6828 867.9679 L 291.5649 867.3574 z " fill="#a4a9ac" id="path6058" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 866.8172 L 360.5247 871.0447 L 362.0505 866.8172 z " fill="#d0d5d8" id="path6059" stroke="none" style="fill:#d0d5d8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 462.7572 866.8172 L 462.7572 871.8902 L 462.7572 866.8172 z " fill="#a0a5a8" id="path6060" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 530.9128 867.0987 L 531.929 867.3811 L 530.9128 867.0987 z " fill="#83888b" id="path6061" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 625.5162 867.0987 L 626.5323 867.3811 L 625.5162 867.0987 z " fill="#96a3a3" id="path6062" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 867.6627 L 90.44743 868.5082 L 88.9215 867.6627 z " fill="#959a9c" id="path6063" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 867.6627 L 128.5939 868.5082 L 127.0681 867.6627 z " fill="#92a39c" id="path6064" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.4732 867.6627 L 180.4732 874.4267 L 180.4732 867.6627 z " fill="#53575a" id="path6065" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 867.6627 L 185.0508 884.5728 C 190.8901 882.1698 196.9188 871.4311 194.2059 867.6627 z " fill="#63686a" id="path6066" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 302.5419 867.6627 L 304.0679 868.5082 L 302.5419 867.6627 z " fill="#686c6f" id="path6067" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 520.2318 867.9442 L 521.248 868.2266 L 520.2318 867.9442 z " fill="#959a9c" id="path6068" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 523.2835 867.9442 L 524.2998 868.2266 L 523.2835 867.9442 z " fill="#53575a" id="path6069" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 629.076 867.6627 L 635.1795 869.3537 L 629.076 867.6627 z " fill="#6a7676" id="path6070" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 868.5082 L 93.49916 869.3537 L 91.97323 868.5082 z " fill="#83888b" id="path6071" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 868.5082 L 130.1198 869.3537 L 128.5939 868.5082 z " fill="#73837d" id="path6072" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 868.5082 L 282.7057 871.0447 L 282.7057 868.5082 z " fill="#53575a" id="path6073" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 868.5082 L 421.5591 871.8902 L 421.5591 868.5082 z " fill="#a8aeb0" id="path6074" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 515.6542 868.7897 L 516.6704 869.0721 L 515.6542 868.7897 z " fill="#4c5450" id="path6075" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 561.9381 871.0447 L 593.9811 869.3537 C 587.011 867.5925 567.0605 867.4504 561.9381 871.0447 z " fill="#394444" id="path6076" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 869.3537 L 131.6456 870.1992 L 130.1198 869.3537 z " fill="#63736d" id="path6077" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 202.3432 869.9176 L 202.8529 870.4807 L 202.3432 869.9176 z " fill="#777c7e" id="path6078" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 869.3537 L 246.085 871.8902 L 246.085 869.3537 z " fill="#8a9697" id="path6079" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 301.0161 869.3537 L 302.5419 870.1992 L 301.0161 869.3537 z " fill="#5c5a5d" id="path6080" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 869.3537 L 438.3435 871.8902 L 438.3435 869.3537 z " fill="#b7c3c4" id="path6081" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 869.3537 L 464.2831 872.7357 L 461.2313 869.3537 z " fill="#434749" id="path6082" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 869.3537 L 507.0071 871.0447 L 503.9554 869.3537 z " fill="#4d4b4f" id="path6083" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 511.0765 869.6352 L 512.0928 869.9176 L 511.0765 869.6352 z " fill="#3c3837" id="path6084" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 624.4984 869.3537 L 630.6018 870.1992 L 624.4984 869.3537 z " fill="#4f5058" id="path6085" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.55089 870.1992 L 98.07669 871.0447 L 96.55089 870.1992 z " fill="#989d9f" id="path6086" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 131.6456 870.1992 L 133.1715 871.0447 L 131.6456 870.1992 z " fill="#596465" id="path6087" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.5675 870.7631 L 157.0771 871.3262 L 156.5675 870.7631 z " fill="#a0a5a8" id="path6088" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 237.438 870.7631 L 237.9477 871.3262 L 237.438 870.7631 z " fill="#63686a" id="path6089" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 870.1992 L 278.1281 874.4267 L 278.1281 870.1992 z " fill="#97a4a4" id="path6090" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 870.1992 L 291.8609 871.0447 L 290.3351 870.1992 z " fill="#63686a" id="path6091" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 870.1992 L 296.4385 871.0447 L 291.8609 870.1992 z " fill="#eaf8f8" id="path6092" stroke="none" style="fill:#eaf8f8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 543.6278 871.0447 L 561.9381 871.0447 L 543.6278 871.0447 z " fill="#807b7a" id="path6093" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 613.3092 870.4807 L 614.3255 870.7631 L 613.3092 870.4807 z " fill="#4d4b4f" id="path6094" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 615.3432 870.1992 L 621.4467 871.0447 L 615.3432 870.1992 z " fill="#aebbbc" id="path6095" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.6025 871.0447 L 101.1284 871.8902 L 99.6025 871.0447 z " fill="#74787b" id="path6096" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 187.0847 871.6086 L 187.5944 872.1717 L 187.0847 871.6086 z " fill="#595a63" id="path6097" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 871.0447 L 201.8352 873.5812 L 201.8352 871.0447 z " fill="#a6b2b3" id="path6098" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 871.0447 L 268.973 871.8902 L 259.8178 871.0447 z " fill="#63686a" id="path6099" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 292.8787 871.3262 L 293.8949 871.6086 L 292.8787 871.3262 z " fill="#96a3a3" id="path6100" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 871.6086 L 300.5079 872.1717 L 299.9983 871.6086 z " fill="#63686a" id="path6101" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 537.5244 871.0447 L 543.6278 871.8902 L 537.5244 871.0447 z " fill="#5c5a5d" id="path6102" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 604.6623 871.0447 L 609.2397 871.8902 L 604.6623 871.0447 z " fill="#736c77" id="path6103" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.1284 871.8902 L 102.6542 872.7357 L 101.1284 871.8902 z " fill="#a0a5a8" id="path6104" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 871.8902 L 156.0593 876.1177 L 156.0593 871.8902 z " fill="#333739" id="path6105" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 871.8902 L 221.6713 879.4997 L 221.6713 871.8902 z " fill="#63686a" id="path6106" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 236.93 871.8902 L 236.93 874.4267 L 236.93 871.8902 z " fill="#989d9f" id="path6107" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 871.8902 L 270.4989 872.7357 L 259.8178 871.8902 z " fill="#e2f0f0" id="path6108" stroke="none" style="fill:#e2f0f0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 871.8902 L 284.2316 874.4267 L 284.2316 871.8902 z " fill="#777c7e" id="path6109" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 871.8902 L 438.3435 874.4267 L 438.3435 871.8902 z " fill="#575f5b" id="path6110" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 508.533 876.1177 L 543.6278 872.7357 C 535.9314 870.7919 513.9254 872.3036 508.533 876.1177 z " fill="#8a9697" id="path6111" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 597.0329 871.8902 L 601.6105 872.7357 L 597.0329 871.8902 z " fill="#484c4e" id="path6112" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 872.7357 L 105.706 873.5812 L 104.1802 872.7357 z " fill="#63686a" id="path6113" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 872.7357 L 139.2749 873.5812 L 137.7491 872.7357 z " fill="#97a4a4" id="path6114" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 872.7357 L 270.4989 873.5812 L 261.3437 872.7357 z " fill="#575f5b" id="path6115" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.9983 873.2996 L 300.5079 873.8627 L 299.9983 873.2996 z " fill="#b7c3c4" id="path6116" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 591.9473 873.0172 L 592.9633 873.2996 L 591.9473 873.0172 z " fill="#595a63" id="path6117" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 594.999 873.0172 L 596.0151 873.2996 L 594.999 873.0172 z " fill="#b5b4ac" id="path6118" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 873.5812 L 107.2319 874.4267 L 105.706 873.5812 z " fill="#686c6f" id="path6119" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 873.5812 L 140.8008 874.4267 L 139.2749 873.5812 z " fill="#96a3a3" id="path6120" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.5588 874.1451 L 186.0684 874.7083 L 185.5588 874.1451 z " fill="#575f5b" id="path6121" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 873.5812 L 200.3094 876.1177 L 200.3094 873.5812 z " fill="#394444" id="path6122" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 873.5812 L 207.9386 904.0194 L 209.4645 882.0362 L 207.9386 873.5812 z " fill="#686c6f" id="path6123" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 248.5861 874.2627 L 249.6877 875.4362 L 248.5861 874.2627 z " fill="#807b7a" id="path6124" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.5413 874.1451 L 421.0508 874.7083 L 420.5413 874.1451 z " fill="#74787b" id="path6125" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 873.5812 L 485.6452 874.4267 L 484.1193 873.5812 z " fill="#53575a" id="path6126" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 515.6542 873.8627 L 516.6704 874.1451 L 515.6542 873.8627 z " fill="#595a63" id="path6127" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 526.8433 873.5812 L 531.4209 874.4267 L 526.8433 873.5812 z " fill="#333739" id="path6128" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 581.7743 873.5812 L 586.3518 874.4267 L 581.7743 873.5812 z " fill="#3c3837" id="path6129" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 587.3696 873.8627 L 588.3859 874.1451 L 587.3696 873.8627 z " fill="#888d90" id="path6130" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 874.4267 L 108.7577 875.2722 L 107.2319 874.4267 z " fill="#a19ea2" id="path6131" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 874.4267 L 134.6973 877.8087 L 125.5421 874.4267 z " fill="#857f8a" id="path6132" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 874.4267 L 142.3266 875.2722 L 140.8008 874.4267 z " fill="#73837d" id="path6133" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.2145 874.4267 L 165.2145 884.5728 L 165.2145 874.4267 z " fill="#888d90" id="path6134" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 874.4267 L 238.4558 877.8087 L 238.4558 874.4267 z " fill="#63686a" id="path6135" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 874.4267 L 267.4472 875.2722 L 261.3437 874.4267 z " fill="#2b332f" id="path6136" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 286.2655 874.9907 L 286.7752 875.5538 L 286.2655 874.9907 z " fill="#434749" id="path6137" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 573.6368 874.7083 L 574.6531 874.9907 L 573.6368 874.7083 z " fill="#413b45" id="path6138" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 576.6886 874.7083 L 577.7049 874.9907 L 576.6886 874.7083 z " fill="#777c7e" id="path6139" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 875.2722 L 143.8525 876.1177 L 142.3266 875.2722 z " fill="#63736d" id="path6140" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 875.2722 L 267.4472 876.1177 L 261.3437 875.2722 z " fill="#dfe4e6" id="path6141" stroke="none" style="fill:#dfe4e6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.3437 876.1177 L 268.973 875.2722 L 261.3437 876.1177 z " fill="#abbcb6" id="path6142" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 269.481 875.8362 L 269.9907 876.3993 L 269.481 875.8362 z " fill="#4c5450" id="path6143" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 279.6539 875.2722 L 279.6539 877.8087 L 279.6539 875.2722 z " fill="#484c4e" id="path6144" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 298.4724 875.8362 L 298.9821 876.3993 L 298.4724 875.8362 z " fill="#777c7e" id="path6145" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 875.2722 L 439.8693 877.8087 L 439.8693 875.2722 z " fill="#8a9697" id="path6146" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 564.9899 875.2722 L 569.5674 876.1177 L 564.9899 875.2722 z " fill="#4d4b4f" id="path6147" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 569.5674 875.2722 L 574.145 876.1177 L 569.5674 875.2722 z " fill="#b5babd" id="path6148" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 876.1177 L 113.3354 876.9632 L 111.8094 876.1177 z " fill="#96a3a3" id="path6149" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 876.1177 L 154.5336 879.4997 L 154.5336 876.1177 z " fill="#b7c3c4" id="path6150" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 179.4554 876.6817 L 179.9649 877.2448 L 179.4554 876.6817 z " fill="#4c5450" id="path6151" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 184.033 876.6817 L 184.5426 877.2448 L 184.033 876.6817 z " fill="#484c4e" id="path6152" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 876.1177 L 200.3094 878.6542 L 200.3094 876.1177 z " fill="#96a3a3" id="path6153" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 876.1177 L 249.1368 880.3452 L 249.1368 876.1177 z " fill="#b3c7c6" id="path6154" stroke="none" style="fill:#b3c7c6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 285.7574 876.1177 L 285.7574 896.4098 C 289.4334 891.943 289.4334 880.5845 285.7574 876.1177 z " fill="#686c6f" id="path6155" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 419.0153 876.6817 L 419.525 877.2448 L 419.0153 876.6817 z " fill="#7a8686" id="path6156" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 558.8864 876.1177 L 564.9899 876.9632 L 558.8864 876.1177 z " fill="#b5b4ac" id="path6157" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 876.9632 L 139.2749 879.4997 L 134.6973 876.9632 z " fill="#575f5b" id="path6158" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 876.9632 L 146.9043 877.8087 L 145.3783 876.9632 z " fill="#63686a" id="path6159" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 876.9632 L 297.9644 879.4997 L 297.9644 876.9632 z " fill="#b7c3c4" id="path6160" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.2055 876.9632 L 552.7829 877.8087 L 548.2055 876.9632 z " fill="#434749" id="path6161" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 553.8007 877.2448 L 554.817 877.5272 L 553.8007 877.2448 z " fill="#90878d" id="path6162" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 556.8524 877.2448 L 557.8687 877.5272 L 556.8524 877.2448 z " fill="#c2ccc7" id="path6163" stroke="none" style="fill:#c2ccc7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 64.50778 877.8087 L 82.81804 878.6542 L 64.50778 877.8087 z " fill="#b3ccc4" id="path6164" stroke="none" style="fill:#b3ccc4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.81804 877.8087 L 104.1802 878.6542 L 82.81804 877.8087 z " fill="#73837d" id="path6165" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 877.8087 L 110.2836 878.6542 L 104.1802 877.8087 z " fill="#cbddd6" id="path6166" stroke="none" style="fill:#cbddd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 877.8087 L 238.4558 880.3452 L 238.4558 877.8087 z " fill="#989d9f" id="path6167" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 427.6625 877.8087 L 427.6625 880.3452 L 427.6625 877.8087 z " fill="#5c5a5d" id="path6168" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 429.1882 877.8087 L 432.24 880.3452 L 429.1882 877.8087 z " fill="#b8bec0" id="path6169" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 455.128 877.8087 L 455.128 881.1907 L 455.128 877.8087 z " fill="#63686a" id="path6170" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 878.6542 L 500.9038 880.3452 L 485.6452 878.6542 z " fill="#bfcccd" id="path6171" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 537.5244 877.8087 L 543.6278 878.6542 L 537.5244 877.8087 z " fill="#5d5e66" id="path6172" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 56.37032 878.9358 L 57.3866 879.2182 L 56.37032 878.9358 z " fill="#b3ccc4" id="path6173" stroke="none" style="fill:#b3ccc4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 878.6542 L 116.3869 879.4997 L 111.8094 878.6542 z " fill="#82928c" id="path6174" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 880.3452 L 120.9646 878.6542 L 117.9129 880.3452 z " fill="#575f5b" id="path6175" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 878.6542 L 151.4818 879.4997 L 149.956 878.6542 z " fill="#73837d" id="path6176" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 878.6542 L 490.2226 880.3452 L 484.1193 878.6542 z " fill="#596465" id="path6177" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 878.6542 L 531.4209 879.4997 L 525.3175 878.6542 z " fill="#4d4b4f" id="path6178" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 531.4209 878.6542 L 535.9985 879.4997 L 531.4209 878.6542 z " fill="#90878d" id="path6179" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 47.21521 879.7813 L 48.23139 880.0637 L 47.21521 879.7813 z " fill="#a3bcb3" id="path6180" stroke="none" style="fill:#a3bcb3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 50.26699 879.7813 L 51.28312 880.0637 L 50.26699 879.7813 z " fill="#575f5b" id="path6181" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 879.4997 L 145.3783 882.0362 L 139.2749 879.4997 z " fill="#736c77" id="path6182" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 199.2915 880.0637 L 199.8012 880.6268 L 199.2915 880.0637 z " fill="#83888b" id="path6183" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 879.4997 L 221.6713 886.2638 L 221.6713 879.4997 z " fill="#434749" id="path6184" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 879.4997 L 255.2402 899.7919 C 259.3998 894.7366 257.233 883.7027 250.6627 879.4997 z " fill="#f2f7f9" id="path6185" stroke="none" style="fill:#f2f7f9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.6363 880.0637 L 279.1459 880.6268 L 278.6363 880.0637 z " fill="#a8aeb0" id="path6186" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.9466 880.0637 L 297.4562 880.6268 L 296.9466 880.0637 z " fill="#575f5b" id="path6187" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 429.7895 880.9126 C 426.6523 881.6135 425.8711 884.7216 425.0257 886.2646 C 422.0443 891.6987 418.2738 896.9653 414.9276 902.3275 C 414.2639 903.3912 410.971 908.558 416.0094 908.0296 C 419.6212 907.6508 422.5675 905.3967 424.8686 903.9923 C 431.062 900.2146 438.8515 896.0251 437.9529 890.4913 C 437.6889 888.8637 434.8065 879.7906 429.7895 880.9126 z " fill="#fefffc" id="path6188" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 499.3778 881.1907 L 505.4813 881.1907 L 499.3778 881.1907 z " fill="#686c6f" id="path6189" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 879.4997 L 517.6883 880.3452 L 503.9554 879.4997 z " fill="#2e272b" id="path6190" stroke="none" style="fill:#2e272b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 517.6883 879.4997 L 525.3175 880.3452 L 517.6883 879.4997 z " fill="#adaeb8" id="path6191" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 39.58591 880.6268 L 40.60214 880.9092 L 39.58591 880.6268 z " fill="#92a39c" id="path6192" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 41.61988 880.3452 L 46.19746 881.1907 L 41.61988 880.3452 z " fill="#4c5450" id="path6193" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.9295 880.9092 L 178.4391 881.4723 L 177.9295 880.9092 z " fill="#888d90" id="path6194" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 880.3452 L 249.1368 882.8818 L 249.1368 880.3452 z " fill="#7a8686" id="path6195" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 416.9814 880.3452 L 416.9814 882.8818 L 416.9814 880.3452 z " fill="#5d5e66" id="path6196" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 441.9032 880.9092 L 442.413 881.4723 L 441.9032 880.9092 z " fill="#686c6f" id="path6197" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 880.3452 L 499.3778 881.1907 L 493.2743 880.3452 z " fill="#33322b" id="path6198" stroke="none" style="fill:#33322b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 505.4813 880.3452 L 514.6365 882.0362 L 505.4813 880.3452 z " fill="#bfcccd" id="path6199" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 30.93886 881.1907 L 35.51644 882.0362 L 30.93886 881.1907 z " fill="#96a3a3" id="path6200" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.4898 881.7547 L 240.9994 882.3178 L 240.4898 881.7547 z " fill="#434749" id="path6201" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 881.1907 L 296.4385 883.7273 L 296.4385 881.1907 z " fill="#9facad" id="path6202" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.6448 881.7547 L 427.1543 882.3178 L 426.6448 881.7547 z " fill="#6a7676" id="path6203" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 509.5507 881.4723 L 510.567 881.7547 L 509.5507 881.4723 z " fill="#596465" id="path6204" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 23.81767 882.6002 L 24.32731 883.1633 L 23.81767 882.6002 z " fill="#959a9c" id="path6205" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 883.7273 L 27.88714 882.0362 L 24.83542 883.7273 z " fill="#575f5b" id="path6206" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 64.50778 882.0362 L 81.29224 882.9046 L 104.1802 883.7273 L 64.50778 882.0362 z " fill="#777c7e" id="path6207" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 882.0362 L 174.3697 887.1093 L 177.4215 882.0362 z " fill="#c9d6d7" id="path6208" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 179.4554 882.6002 L 179.9649 883.1633 L 179.4554 882.6002 z " fill="#434749" id="path6209" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 254.2226 882.6002 L 254.7322 883.1633 L 254.2226 882.6002 z " fill="#91988e" id="path6210" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 882.0362 L 276.6022 885.4183 L 276.6022 882.0362 z " fill="#a19ea2" id="path6211" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 434.274 882.6002 L 434.7837 883.1633 L 434.274 882.6002 z " fill="#a4a9ac" id="path6212" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 517.18 882.3178 L 518.1963 882.6002 L 517.18 882.3178 z " fill="#74787b" id="path6213" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 81.29224 882.8818 L 90.44743 883.7273 L 81.29224 882.8818 z " fill="#222628" id="path6214" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 882.8818 L 128.5939 885.4183 C 123.7874 882.0193 111.1655 882.8818 104.1802 882.8818 z " fill="#50564d" id="path6215" stroke="none" style="fill:#50564d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.7658 883.4457 L 198.2754 884.0088 L 197.7658 883.4457 z " fill="#959a9c" id="path6216" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.4898 883.4457 L 240.9994 884.0088 L 240.4898 883.4457 z " fill="#83888b" id="path6217" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 882.8818 L 249.1368 885.4183 L 249.1368 882.8818 z " fill="#413b45" id="path6218" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.0936 882.8818 L 394.0936 887.1093 L 394.0936 882.8818 z " fill="#c6ced6" id="path6219" stroke="none" style="fill:#c6ced6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 882.8818 L 398.671 883.7273 L 397.1453 882.8818 z " fill="#82928c" id="path6220" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 882.8818 L 415.4556 885.4183 L 415.4556 882.8818 z " fill="#a4b5ae" id="path6221" stroke="none" style="fill:#a4b5ae;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 882.8818 L 453.602 883.7273 L 452.0762 882.8818 z " fill="#959a9c" id="path6222" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 485.6452 882.8818 L 494.8003 882.8818 L 485.6452 882.8818 z " fill="#53575a" id="path6223" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 523.2835 883.1633 L 524.2998 883.4457 L 523.2835 883.1633 z " fill="#73837d" id="path6224" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 31.9566 884.0088 L 32.97283 884.2912 L 31.9566 884.0088 z " fill="#5c5a5d" id="path6225" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 424.6108 883.7273 L 424.6108 886.2638 L 424.6108 883.7273 z " fill="#74787b" id="path6226" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 493.2743 883.7273 L 510.0589 885.4183 L 493.2743 883.7273 z " fill="#82928c" id="path6227" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.387 884.0088 L 530.4033 884.2912 L 529.387 884.0088 z " fill="#9aaba5" id="path6228" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 40.09401 884.5728 L 44.6716 885.4183 L 40.09401 884.5728 z " fill="#736c77" id="path6229" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 44.6716 884.5728 L 52.30086 885.4183 L 44.6716 884.5728 z " fill="#342c31" id="path6230" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 884.5728 L 186.5765 887.1093 L 183.5249 884.5728 z " fill="#4c5450" id="path6231" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.5588 885.1367 L 186.0684 885.6998 L 185.5588 885.1367 z " fill="#857f8a" id="path6232" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 884.5728 L 255.2402 888.8003 L 255.2402 884.5728 z " fill="#a8aeb0" id="path6233" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.671 884.5728 L 398.671 887.1093 L 398.671 884.5728 z " fill="#8a9697" id="path6234" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 435.7999 885.1367 L 436.3095 885.6998 L 435.7999 885.1367 z " fill="#a8aeb0" id="path6235" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 450.5503 884.5728 L 452.0762 885.4183 L 450.5503 884.5728 z " fill="#83888b" id="path6236" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 468.8606 884.5728 L 478.0159 887.1093 L 468.8606 884.5728 z " fill="#d3cecd" id="path6237" stroke="none" style="fill:#d3cecd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 510.0589 884.5728 L 517.6883 886.2638 L 510.0589 884.5728 z " fill="#4c5450" id="path6238" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 533.9644 884.8543 L 534.9807 885.1367 L 533.9644 884.8543 z " fill="#a6bab9" id="path6239" stroke="none" style="fill:#a6bab9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 885.4183 L 276.6022 914.1654 L 278.1281 893.8733 L 276.6022 885.4183 z " fill="#d7e4e5" id="path6240" stroke="none" style="fill:#d7e4e5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 885.4183 L 294.9126 888.8003 L 294.9126 885.4183 z " fill="#4c5450" id="path6241" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 443.4292 885.9822 L 443.9387 886.5453 L 443.4292 885.9822 z " fill="#53575a" id="path6242" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 885.4183 L 470.3865 887.1093 L 465.8089 885.4183 z " fill="#97a4a4" id="path6243" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 475.9818 885.6998 L 476.9981 885.9822 L 475.9818 885.6998 z " fill="#373b3d" id="path6244" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 62.98185 886.2638 L 70.61125 887.1093 L 62.98185 886.2638 z " fill="#a19ea2" id="path6245" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 196.2399 886.8277 L 196.7495 887.3908 L 196.2399 886.8277 z " fill="#91988e" id="path6246" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 886.2638 L 223.1971 890.4913 L 223.1971 886.2638 z " fill="#b3c7c6" id="path6247" stroke="none" style="fill:#b3c7c6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 242.0156 886.8277 L 242.5252 887.3908 L 242.0156 886.8277 z " fill="#5d5e66" id="path6248" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 251.1708 886.8277 L 251.6805 887.3908 L 251.1708 886.8277 z " fill="#83888b" id="path6249" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.9561 886.5453 L 386.9723 886.8277 L 385.9561 886.5453 z " fill="#b0b5b7" id="path6250" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 886.2638 L 395.6194 889.6458 L 395.6194 886.2638 z " fill="#4c5450" id="path6251" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 414.4378 886.8277 L 414.9475 887.3908 L 414.4378 886.8277 z " fill="#888d90" id="path6252" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 423.0849 886.2638 L 423.0849 888.8003 L 423.0849 886.2638 z " fill="#575f5b" id="path6253" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.5325 886.8277 L 450.0422 887.3908 L 449.5325 886.8277 z " fill="#434749" id="path6254" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 476.4899 887.9548 L 502.4296 888.8003 C 496.6511 887.3401 481.8 885.8833 476.4899 887.9548 z " fill="#63686a" id="path6255" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 541.5938 886.5453 L 542.61 886.8277 L 541.5938 886.5453 z " fill="#b7c3c4" id="path6256" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 77.73244 887.3908 L 78.74858 887.6732 L 77.73244 887.3908 z " fill="#c8c5ca" id="path6257" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 887.1093 L 88.9215 887.9548 L 79.76644 887.1093 z " fill="#595a63" id="path6258" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 887.1093 L 148.4301 887.9548 L 143.8525 887.1093 z " fill="#686c6f" id="path6259" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 887.1093 L 154.5336 887.9548 L 148.4301 887.1093 z " fill="#a4a9ac" id="path6260" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 887.1093 L 174.3697 894.7188 L 175.8955 887.1093 L 172.8438 887.1093 z " fill="#edf2f5" id="path6261" stroke="none" style="fill:#edf2f5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 887.1093 L 175.8955 889.6458 L 175.8955 887.1093 z " fill="#8f9099" id="path6262" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 437.3258 887.6732 L 437.8354 888.2363 L 437.3258 887.6732 z " fill="#959a9c" id="path6263" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 543.6278 887.1093 L 545.1537 887.9548 L 543.6278 887.1093 z " fill="#63686a" id="path6264" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 887.9548 L 104.1802 888.8003 L 90.44743 887.9548 z " fill="#a19ea2" id="path6265" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 887.9548 L 124.0163 888.8003 L 104.1802 887.9548 z " fill="#2c2b2e" id="path6266" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 141.8185 888.2363 L 142.8348 888.5187 L 141.8185 888.2363 z " fill="#a8aeb0" id="path6267" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 887.9548 C 149.8338 887.9894 148.2484 888.0199 146.6174 888.1332 C 137.511 888.7665 139.487 892.912 146.6495 890.4296 C 148.5795 889.7599 149.9971 888.8984 151.4818 887.9548 z " fill="#f1f3f0" id="path6268" stroke="none" style="fill:#f1f3f0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 242.0156 888.5187 L 242.5252 889.0818 L 242.0156 888.5187 z " fill="#a8aeb0" id="path6269" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 887.9548 L 256.7661 896.4098 L 256.7661 887.9548 z " fill="#6a7676" id="path6270" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 387.9901 887.9548 L 389.5159 888.8003 L 387.9901 887.9548 z " fill="#63686a" id="path6271" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 887.9548 L 403.2486 892.1823 L 400.1969 887.9548 z " fill="#bbc8c9" id="path6272" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.3003 887.9548 L 409.3521 889.6458 L 406.3003 887.9548 z " fill="#4c5450" id="path6273" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.955 888.5187 L 445.4647 889.0818 L 444.955 888.5187 z " fill="#74787b" id="path6274" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 537.5244 888.8003 L 548.2055 887.9548 L 537.5244 888.8003 z " fill="#373b3d" id="path6275" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 888.8003 L 124.0163 889.6458 L 111.8094 888.8003 z " fill="#bbc8c9" id="path6276" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.0341 889.0818 L 126.0504 889.3642 L 125.0341 889.0818 z " fill="#777c7e" id="path6277" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 888.8003 L 172.8438 889.6458 L 171.318 888.8003 z " fill="#63686a" id="path6278" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 888.8003 L 185.0508 891.3368 L 181.999 888.8003 z " fill="#6a7676" id="path6279" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 888.8003 L 294.9126 892.1823 L 294.9126 888.8003 z " fill="#7a8686" id="path6280" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 390.0241 889.3642 L 390.5336 889.9273 L 390.0241 889.3642 z " fill="#575f5b" id="path6281" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.7745 888.8003 L 406.3003 889.6458 L 404.7745 888.8003 z " fill="#7a8686" id="path6282" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 888.8003 L 508.533 889.6458 L 496.3261 888.8003 z " fill="#bfcccd" id="path6283" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 508.533 888.8003 L 525.3175 889.6458 L 508.533 888.8003 z " fill="#595a63" id="path6284" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 525.3175 888.8003 L 537.5244 889.6458 L 525.3175 888.8003 z " fill="#989d9f" id="path6285" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 548.2055 888.8003 L 549.7312 889.6458 L 548.2055 888.8003 z " fill="#74787b" id="path6286" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 78.24051 889.6458 L 84.34397 890.4913 L 78.24051 889.6458 z " fill="#575f5b" id="path6287" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 84.34397 889.6458 L 99.6025 890.4913 L 84.34397 889.6458 z " fill="#2b332f" id="path6288" stroke="none" style="fill:#2b332f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 100.6204 889.9273 L 101.6365 890.2097 L 100.6204 889.9273 z " fill="#959a9c" id="path6289" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 889.6458 L 148.4301 890.4913 L 146.9043 889.6458 z " fill="#7a8686" id="path6290" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.6966 890.2097 L 253.2063 890.7728 L 252.6966 890.2097 z " fill="#abbcb6" id="path6291" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 889.6458 L 394.0936 895.5643 L 395.6194 889.6458 z " fill="#a0a5a8" id="path6292" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 412.9119 890.2097 L 413.4216 890.7728 L 412.9119 890.2097 z " fill="#53575a" id="path6293" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 422.0671 890.2097 L 422.5767 890.7728 L 422.0671 890.2097 z " fill="#a19ea2" id="path6294" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 889.6458 L 438.3435 892.1823 L 438.3435 889.6458 z " fill="#63686a" id="path6295" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 69.08531 890.4913 L 73.66298 891.3368 L 69.08531 890.4913 z " fill="#8a9697" id="path6296" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 890.4913 L 111.8094 891.3368 L 107.2319 890.4913 z " fill="#63686a" id="path6297" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 890.4913 L 130.1198 891.3368 L 128.5939 890.4913 z " fill="#5c5a5d" id="path6298" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 890.4913 L 139.2749 891.3368 L 137.7491 890.4913 z " fill="#82928c" id="path6299" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 170.3002 891.0552 L 170.81 891.6184 L 170.3002 891.0552 z " fill="#33413c" id="path6300" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.1971 890.4913 L 223.1971 893.8733 L 223.1971 890.4913 z " fill="#8a9697" id="path6301" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 890.4913 L 243.0334 893.0278 L 243.0334 890.4913 z " fill="#3c3837" id="path6302" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 275.0765 890.4913 L 275.0765 908.2469 C 278.4516 904.1454 278.4516 894.5928 275.0765 890.4913 z " fill="#2c2b2e" id="path6303" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 465.8089 890.4913 L 465.8089 892.1823 L 485.6452 893.0278 L 465.8089 890.4913 z " fill="#63736d" id="path6304" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 507.0071 890.4913 L 511.5848 891.3368 L 507.0071 890.4913 z " fill="#a3a797" id="path6305" stroke="none" style="fill:#a3a797;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 67.55952 891.3368 L 69.08531 892.1823 L 67.55952 891.3368 z " fill="#686c6f" id="path6306" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 115.8789 891.6184 L 116.8951 891.9008 L 115.8789 891.6184 z " fill="#434749" id="path6307" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 891.3368 L 122.4904 892.1823 L 117.9129 891.3368 z " fill="#82928c" id="path6308" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 900.6374 L 165.2145 891.3368 C 153.531 894.9699 162.3261 899.2524 171.318 900.6374 z " fill="#f8feff" id="path6309" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.3697 891.3368 L 174.3697 893.8733 L 174.3697 891.3368 z " fill="#b0b5b7" id="path6310" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 891.3368 L 181.999 894.7188 L 181.999 891.3368 z " fill="#959a9c" id="path6311" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 891.3368 L 183.5249 893.8733 L 183.5249 891.3368 z " fill="#373b3d" id="path6312" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 193.1882 891.9008 L 193.6977 892.4639 L 193.1882 891.9008 z " fill="#a19ea2" id="path6313" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.6966 891.9008 L 253.2063 892.4639 L 252.6966 891.9008 z " fill="#74787b" id="path6314" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 391.5499 891.9008 L 392.0595 892.4639 L 391.5499 891.9008 z " fill="#434749" id="path6315" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.8086 891.9008 L 407.3181 892.4639 L 406.8086 891.9008 z " fill="#b5babd" id="path6316" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 449.0245 891.3368 L 450.5503 892.1823 L 449.0245 891.3368 z " fill="#63686a" id="path6317" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 452.0762 891.3368 L 453.602 892.1823 L 452.0762 891.3368 z " fill="#91988e" id="path6318" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 69.08531 892.1823 L 70.61125 893.0278 L 69.08531 892.1823 z " fill="#8f9099" id="path6319" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 892.1823 C 97.97137 894.3138 111.5562 897.1987 117.9129 894.7188 L 91.97323 892.1823 z " fill="#434749" id="path6320" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 123.5081 892.4639 L 124.5244 892.7463 L 123.5081 892.4639 z " fill="#9aaba5" id="path6321" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 893.8733 L 131.6456 892.1823 L 127.0681 893.8733 z " fill="#6a7676" id="path6322" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 892.1823 L 142.3266 893.0278 L 140.8008 892.1823 z " fill="#7a8686" id="path6323" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 893.8733 L 153.0076 892.1823 L 149.956 893.8733 z " fill="#484c4e" id="path6324" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 892.1823 L 162.1628 893.0278 L 160.6369 892.1823 z " fill="#83888b" id="path6325" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 165.7226 892.7463 L 166.2323 893.3094 L 165.7226 892.7463 z " fill="#a8aeb0" id="path6326" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 294.9126 892.1823 L 294.9126 897.2553 L 294.9126 892.1823 z " fill="#b5babd" id="path6327" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 388.4982 892.7463 L 389.0078 893.3094 L 388.4982 892.7463 z " fill="#7a8686" id="path6328" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 893.8733 L 403.2486 892.1823 L 400.1969 893.8733 z " fill="#53575a" id="path6329" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 411.386 892.7463 L 411.8958 893.3094 L 411.386 892.7463 z " fill="#63686a" id="path6330" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 420.5413 892.7463 L 421.0508 893.3094 L 420.5413 892.7463 z " fill="#a8aeb0" id="path6331" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 892.1823 L 438.3435 894.7188 L 438.3435 892.1823 z " fill="#a6b2b3" id="path6332" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 893.8733 L 519.214 898.1008 C 512.5093 895.3073 491.5791 890.9631 484.1193 893.8733 z " fill="#33413c" id="path6333" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 73.15478 893.3094 L 74.17105 893.5918 L 73.15478 893.3094 z " fill="#686c6f" id="path6334" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 893.0278 L 160.6369 893.8733 L 159.111 893.0278 z " fill="#777c7e" id="path6335" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.5415 893.5918 L 244.0512 894.1549 L 243.5415 893.5918 z " fill="#8a9697" id="path6336" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.7745 893.0278 L 406.3003 893.8733 L 404.7745 893.0278 z " fill="#596465" id="path6337" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 519.214 893.0278 L 520.7398 893.8733 L 519.214 893.0278 z " fill="#82928c" id="path6338" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 77.73244 894.1549 L 78.74858 894.4373 L 77.73244 894.1549 z " fill="#74787b" id="path6339" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 893.8733 L 149.956 894.7188 L 148.4301 893.8733 z " fill="#7a8686" id="path6340" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 893.8733 L 159.111 894.7188 L 157.5852 893.8733 z " fill="#575f5b" id="path6341" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 893.8733 L 168.2662 894.7188 L 166.7404 893.8733 z " fill="#686c6f" id="path6342" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 174.3697 893.8733 L 172.8438 896.4098 L 174.3697 893.8733 z " fill="#4c5450" id="path6343" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.6623 894.4373 L 192.1719 895.0004 L 191.6623 894.4373 z " fill="#7a8686" id="path6344" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 458.1796 893.8733 L 459.7054 894.7188 L 458.1796 893.8733 z " fill="#74787b" id="path6345" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 522.2657 893.8733 L 523.7915 894.7188 L 522.2657 893.8733 z " fill="#97a4a4" id="path6346" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 83.83591 895.0004 L 84.85204 895.2828 L 83.83591 895.0004 z " fill="#5d5e66" id="path6347" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 894.7188 L 143.8525 898.1008 L 146.9043 894.7188 z " fill="#6a7676" id="path6348" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 894.7188 L 224.7231 898.1008 L 224.7231 894.7188 z " fill="#c7d4d5" id="path6349" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 389.5159 894.7188 L 391.0419 895.5643 L 389.5159 894.7188 z " fill="#5c5a5d" id="path6350" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 403.2486 894.7188 L 404.7745 895.5643 L 403.2486 894.7188 z " fill="#596465" id="path6351" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 894.7188 L 410.878 895.5643 L 409.3521 894.7188 z " fill="#83888b" id="path6352" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 419.0153 895.2828 L 419.525 895.8459 L 419.0153 895.2828 z " fill="#a6b2b3" id="path6353" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 894.7188 L 438.3435 895.5643 L 436.8175 894.7188 z " fill="#959a9c" id="path6354" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.3957 897.2553 L 91.97323 895.5643 L 87.3957 897.2553 z " fill="#a1b2ab" id="path6355" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 895.5643 L 131.6456 898.1008 L 116.3869 895.5643 z " fill="#73837d" id="path6356" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.5675 896.1283 L 157.0771 896.6914 L 156.5675 896.1283 z " fill="#9aaba5" id="path6357" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 895.5643 L 169.7921 896.4098 L 168.2662 895.5643 z " fill="#5d5e66" id="path6358" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 895.5643 L 244.5593 898.1008 L 244.5593 895.5643 z " fill="#5c5a5d" id="path6359" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.1113 895.8459 L 396.1275 896.1283 L 395.1113 895.8459 z " fill="#63686a" id="path6360" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 526.8433 895.5643 L 528.3692 896.4098 L 526.8433 895.5643 z " fill="#6a7676" id="path6361" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 86.37798 896.9738 L 86.8875 897.5369 L 86.37798 896.9738 z " fill="#716667" id="path6362" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 896.4098 L 116.3855 904.0439 L 126.2105 903.9424 L 117.9068 900.6932 L 88.9215 896.4098 z " fill="#f8feff" id="path6363" stroke="none" style="fill:#f8feff;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 96.0427 896.6914 L 97.05897 896.9738 L 96.0427 896.6914 z " fill="#5c5a5d" id="path6364" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 896.4098 L 191.1541 897.2553 L 189.6282 896.4098 z " fill="#736c77" id="path6365" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 896.4098 L 253.7144 899.7919 L 253.7144 896.4098 z " fill="#575f5b" id="path6366" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 896.4098 L 256.7661 904.8649 L 256.7661 896.4098 z " fill="#d2d8da" id="path6367" stroke="none" style="fill:#d2d8da;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.7228 896.4098 L 401.7228 904.8649 L 401.7228 896.4098 z " fill="#c7cdcf" id="path6368" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 408.3344 896.9738 L 408.8441 897.5369 L 408.3344 896.9738 z " fill="#484c4e" id="path6369" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 417.4895 896.9738 L 417.9992 897.5369 L 417.4895 896.9738 z " fill="#63686a" id="path6370" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 468.3526 896.6914 L 469.3687 896.9738 L 468.3526 896.6914 z " fill="#413b45" id="path6371" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 529.895 896.4098 L 531.4209 897.2553 L 529.895 896.4098 z " fill="#96a3a3" id="path6372" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 103.6721 897.5369 L 104.6882 897.8193 L 103.6721 897.5369 z " fill="#5c5a5d" id="path6373" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 898.9463 L 133.1715 897.2553 L 130.1198 898.9463 z " fill="#434749" id="path6374" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 897.2553 L 139.2749 900.6374 L 142.3266 897.2553 z " fill="#959a9c" id="path6375" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 897.2553 L 159.111 898.1008 L 157.5852 897.2553 z " fill="#596465" id="path6376" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 433.7658 897.2553 L 435.2917 898.1008 L 433.7658 897.2553 z " fill="#63686a" id="path6377" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 471.4044 897.5369 L 472.4204 897.8193 L 471.4044 897.5369 z " fill="#807b7a" id="path6378" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 87.3957 898.1008 L 88.9215 898.9463 L 87.3957 898.1008 z " fill="#83888b" id="path6379" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.2496 898.3824 L 109.2659 898.6648 L 108.2496 898.3824 z " fill="#777c7e" id="path6380" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 898.1008 L 162.1628 898.9463 L 160.6369 898.1008 z " fill="#575f5b" id="path6381" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 898.1008 L 189.6282 898.9463 L 188.1024 898.1008 z " fill="#8a9697" id="path6382" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 225.2312 898.6648 L 225.7408 899.2279 L 225.2312 898.6648 z " fill="#82928c" id="path6383" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 406.8086 898.6648 L 407.3181 899.2279 L 406.8086 898.6648 z " fill="#6a7676" id="path6384" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 432.24 898.1008 L 433.7658 898.9463 L 432.24 898.1008 z " fill="#888d90" id="path6385" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 438.3435 898.1008 L 439.8693 898.9463 L 438.3435 898.1008 z " fill="#91988e" id="path6386" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 474.9641 898.1008 L 479.5417 898.9463 L 474.9641 898.1008 z " fill="#b5babd" id="path6387" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 480.5593 898.3824 L 481.5756 898.6648 L 480.5593 898.3824 z " fill="#434749" id="path6388" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 534.4727 898.1008 L 535.9985 898.9463 L 534.4727 898.1008 z " fill="#63686a" id="path6389" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 88.9215 898.9463 L 90.44743 899.7919 L 88.9215 898.9463 z " fill="#9d9c94" id="path6390" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 898.9463 L 113.3354 899.7919 L 111.8094 898.9463 z " fill="#888d90" id="path6391" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 898.9463 L 188.1024 899.7919 L 186.5765 898.9463 z " fill="#686c6f" id="path6392" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 898.9463 L 293.3867 902.3284 L 293.3867 898.9463 z " fill="#63686a" id="path6393" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 898.9463 L 438.3435 899.7919 L 436.8175 898.9463 z " fill="#857f8a" id="path6394" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 484.1193 898.9463 L 488.6968 899.7919 L 484.1193 898.9463 z " fill="#959a9c" id="path6395" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 537.5244 898.9463 L 539.0502 899.7919 L 537.5244 898.9463 z " fill="#83888b" id="path6396" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 899.7919 L 91.97323 900.6374 L 90.44743 899.7919 z " fill="#a19ea2" id="path6397" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 115.8789 900.0734 L 116.8951 900.3558 L 115.8789 900.0734 z " fill="#5c5a5d" id="path6398" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 899.7919 L 163.6887 903.1739 L 149.956 899.7919 z " fill="#63736d" id="path6399" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 899.7919 L 168.2662 900.6374 L 166.7404 899.7919 z " fill="#6a7676" id="path6400" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 901.4829 L 172.8438 899.7919 L 169.7921 901.4829 z " fill="#b7c3c4" id="path6401" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 899.7919 L 186.5765 900.6374 L 185.0508 899.7919 z " fill="#53575a" id="path6402" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 224.7231 899.7919 L 224.7231 902.3284 L 224.7231 899.7919 z " fill="#484c4e" id="path6403" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.085 899.7919 L 246.085 902.3284 L 246.085 899.7919 z " fill="#a0a5a8" id="path6404" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 899.7919 L 258.292 906.5559 L 258.292 899.7919 z " fill="#575f5b" id="path6405" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.7398 900.3558 L 285.2494 900.9189 L 284.7398 900.3558 z " fill="#a8aeb0" id="path6406" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.0936 899.7919 L 394.0936 902.3284 L 394.0936 899.7919 z " fill="#4f5058" id="path6407" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.9636 900.3558 L 416.4732 900.9189 L 415.9636 900.3558 z " fill="#b7c3c4" id="path6408" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 435.2917 899.7919 L 436.8175 900.6374 L 435.2917 899.7919 z " fill="#686c6f" id="path6409" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 496.3261 899.7919 L 503.9554 900.6374 L 496.3261 899.7919 z " fill="#6a7676" id="path6410" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.97323 900.6374 L 93.49916 901.4829 L 91.97323 900.6374 z " fill="#989d9f" id="path6411" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 900.6374 L 107.2319 901.4829 L 105.706 900.6374 z " fill="#7a8686" id="path6412" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 900.6374 L 122.4904 901.4829 L 117.9129 900.6374 z " fill="#989d9f" id="path6413" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 903.1739 L 140.8008 900.6374 L 134.6973 903.1739 z " fill="#4c5450" id="path6414" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 405.2827 901.2013 L 405.7923 901.7644 L 405.2827 901.2013 z " fill="#63686a" id="path6415" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 433.7658 900.6374 L 435.2917 901.4829 L 433.7658 900.6374 z " fill="#686c6f" id="path6416" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 503.9554 900.6374 L 513.1106 901.4829 L 503.9554 900.6374 z " fill="#b7c3c4" id="path6417" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 513.1106 900.6374 L 517.6883 901.4829 L 513.1106 900.6374 z " fill="#6a7676" id="path6418" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 543.6278 900.6374 L 545.1537 901.4829 L 543.6278 900.6374 z " fill="#96a3a3" id="path6419" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.0341 901.7644 L 126.0504 902.0468 L 125.0341 901.7644 z " fill="#90878d" id="path6420" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 284.2316 901.4829 L 284.2316 905.7104 L 284.2316 901.4829 z " fill="#5d5e66" id="path6421" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 519.214 901.4829 L 528.3692 902.3284 L 519.214 901.4829 z " fill="#a4a9ac" id="path6422" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.7571 902.8923 L 227.2666 903.4554 L 226.7571 902.8923 z " fill="#c8c5ca" id="path6423" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.7484 902.8923 L 256.258 903.4554 L 255.7484 902.8923 z " fill="#394444" id="path6424" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 902.3284 L 293.3867 906.5559 L 293.3867 902.3284 z " fill="#d2dbd6" id="path6425" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 531.4209 902.3284 L 535.9985 903.1739 L 531.4209 902.3284 z " fill="#aeb3b5" id="path6426" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 535.9985 902.3284 L 543.6278 903.1739 L 535.9985 902.3284 z " fill="#2c2b2e" id="path6427" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.3531 903.4554 L 115.3692 903.7378 L 114.3531 903.4554 z " fill="#9aaba5" id="path6428" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.8693 903.1739 L 444.4469 904.8649 L 439.8693 903.1739 z " fill="#3c3837" id="path6429" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 444.955 903.7378 L 445.4647 904.3009 L 444.955 903.7378 z " fill="#b8bec0" id="path6430" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 542.102 903.1739 L 548.2055 904.0194 L 542.102 903.1739 z " fill="#aeb3b5" id="path6431" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 150.4641 904.5833 L 150.9737 905.1464 L 150.4641 904.5833 z " fill="#413b45" id="path6432" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 208.4467 904.5833 L 208.9563 905.1464 L 208.4467 904.5833 z " fill="#3c3837" id="path6433" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 904.0194 L 226.2489 906.5559 L 226.2489 904.0194 z " fill="#82928c" id="path6434" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 904.0194 L 395.6194 908.2469 L 395.6194 904.0194 z " fill="#74787b" id="path6435" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 412.9119 904.5833 L 413.4216 905.1464 L 412.9119 904.5833 z " fill="#888d90" id="path6436" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 423.0849 904.0194 L 424.6108 904.8649 L 423.0849 904.0194 z " fill="#53575a" id="path6437" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 436.8175 904.0194 L 438.3435 904.8649 L 436.8175 904.0194 z " fill="#6a7676" id="path6438" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 904.8649 L 127.0681 905.7104 L 125.5421 904.8649 z " fill="#96a3a3" id="path6439" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 904.8649 L 139.2749 905.7104 L 137.7491 904.8649 z " fill="#5d5e66" id="path6440" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 930.23 C 165.0512 923.5827 155.835 917.4435 147.9692 910.7876 C 146.3137 909.3866 142.5326 905.3054 138.4265 906.6421 C 133.1715 908.3534 141.7941 912.2351 143.8296 913.3698 C 153.8575 918.9645 158.6595 927.3232 172.8438 930.23 z " fill="#edf2f5" id="path6441" stroke="none" style="fill:#edf2f5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 904.8649 L 142.3266 905.7104 L 140.8008 904.8649 z " fill="#857f8a" id="path6442" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.3874 905.1464 L 176.4037 905.4288 L 175.3874 905.1464 z " fill="#373b3d" id="path6443" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 247.6109 904.8649 L 247.6109 908.2469 L 247.6109 904.8649 z " fill="#c7d4d5" id="path6444" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 904.8649 L 423.0849 905.7104 L 421.5591 904.8649 z " fill="#7a8686" id="path6445" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 441.3952 904.8649 L 442.921 905.7104 L 441.3952 904.8649 z " fill="#777c7e" id="path6446" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 101.1284 905.7104 L 102.6542 906.5559 L 101.1284 905.7104 z " fill="#a0a5a8" id="path6447" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 123.5081 905.9919 L 124.5244 906.2743 L 123.5081 905.9919 z " fill="#82928c" id="path6448" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 905.7104 L 137.7491 906.5559 L 136.2231 905.7104 z " fill="#63686a" id="path6449" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 905.7104 L 156.0593 909.9379 L 151.4818 905.7104 z " fill="#333739" id="path6450" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 170.81 905.9919 L 171.826 906.2743 L 170.81 905.9919 z " fill="#989d9f" id="path6451" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 947.1401 C 209.3806 941.1218 204.0889 938.4585 195.7317 934.4576 L 203.3611 935.3031 C 198.962 927.2268 190.3165 918.8876 182.6079 911.6323 C 180.7905 909.9218 175.7978 904.2595 171.0509 907.305 C 166.8365 910.0098 175.569 917.4029 177.6458 920.084 C 180.9857 924.3977 181.2559 930.3315 185.2735 934.1836 C 188.2611 937.0482 193.7908 937.2731 197.9015 939.2617 C 203.2771 941.8616 205.7368 945.4111 212.5162 947.1401 z " fill="#fefffc" id="path6452" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 183.5249 905.7104 L 185.0508 906.5559 L 183.5249 905.7104 z " fill="#8a9697" id="path6453" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 905.7104 L 291.8609 909.0924 L 291.8609 905.7104 z " fill="#4f5058" id="path6454" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.6448 906.2743 L 427.1543 906.8374 L 426.6448 906.2743 z " fill="#6a7676" id="path6455" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 439.3612 905.9919 L 440.3775 906.2743 L 439.3612 905.9919 z " fill="#b5babd" id="path6456" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 906.5559 L 104.1802 907.4014 L 102.6542 906.5559 z " fill="#8f9099" id="path6457" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 906.5559 L 127.0681 911.6289 L 113.3354 906.5559 z " fill="#63686a" id="path6458" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 906.5559 L 136.2231 907.4014 L 134.6973 906.5559 z " fill="#74787b" id="path6459" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 908.2469 L 169.7921 906.5559 L 166.7404 908.2469 z " fill="#bbc8c9" id="path6460" stroke="none" style="fill:#bbc8c9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 906.5559 L 186.5765 909.9379 L 188.1024 906.5559 z " fill="#83888b" id="path6461" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 906.5559 L 191.1541 909.0924 L 191.1541 906.5559 z " fill="#4c5450" id="path6462" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.9209 907.1198 L 207.4305 907.6829 L 206.9209 907.1198 z " fill="#63686a" id="path6463" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.2489 906.5559 L 226.2489 909.0924 L 226.2489 906.5559 z " fill="#3c3837" id="path6464" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.878 906.5559 L 413.9298 909.9379 L 410.878 906.5559 z " fill="#4c5450" id="path6465" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 434.7837 906.8374 L 435.7999 907.1198 L 434.7837 906.8374 z " fill="#a19ea2" id="path6466" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 104.1802 907.4014 L 105.706 908.2469 L 104.1802 907.4014 z " fill="#959a9c" id="path6467" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 133.6796 907.9653 L 134.1893 908.5285 L 133.6796 907.9653 z " fill="#333739" id="path6468" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 907.4014 L 145.3783 908.2469 L 143.8525 907.4014 z " fill="#595a63" id="path6469" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.4215 907.4014 L 178.9473 908.2469 L 177.4215 907.4014 z " fill="#7a8686" id="path6470" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 185.0508 907.4014 L 186.5765 908.2469 L 185.0508 907.4014 z " fill="#96a3a3" id="path6471" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 105.706 908.2469 L 107.2319 909.0924 L 105.706 908.2469 z " fill="#90878d" id="path6472" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 908.2469 L 282.7057 912.4744 L 282.7057 908.2469 z " fill="#888d90" id="path6473" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 908.2469 L 395.6194 911.6289 L 395.6194 908.2469 z " fill="#434749" id="path6474" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 415.4556 908.2469 L 416.9814 909.0924 L 415.4556 908.2469 z " fill="#807b7a" id="path6475" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 429.6964 908.8109 L 430.206 909.374 L 429.6964 908.8109 z " fill="#74787b" id="path6476" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 909.0924 L 108.7577 909.9379 L 107.2319 909.0924 z " fill="#8f9099" id="path6477" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 909.0924 L 146.9043 909.9379 L 145.3783 909.0924 z " fill="#6a7676" id="path6478" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 909.0924 C 158.8639 914.2339 165.0543 920.2091 172.8438 923.466 L 156.0593 909.0924 z " fill="#686c6f" id="path6479" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 909.0924 L 169.7921 909.9379 L 168.2662 909.0924 z " fill="#82928c" id="path6480" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 192.6799 909.0924 L 192.6799 913.3199 L 192.6799 909.0924 z " fill="#7a8686" id="path6481" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 909.0924 L 204.8869 913.3199 L 204.8869 909.0924 z " fill="#686c6f" id="path6482" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 909.0924 L 249.1368 911.6289 L 249.1368 909.0924 z " fill="#807b7a" id="path6483" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 909.0924 L 291.8609 920.9295 L 291.8609 909.0924 z " fill="#888d90" id="path6484" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 909.9379 L 110.2836 910.7834 L 108.7577 909.9379 z " fill="#74787b" id="path6485" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 909.9379 L 139.2749 910.7834 L 137.7491 909.9379 z " fill="#82928c" id="path6486" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 187.5944 910.2195 L 188.6105 910.5019 L 187.5944 910.2195 z " fill="#4c5450" id="path6487" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 434.7837 910.2195 L 435.7999 910.5019 L 434.7837 910.2195 z " fill="#abbcb6" id="path6488" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 110.2836 910.7834 L 111.8094 911.6289 L 110.2836 910.7834 z " fill="#5c5a5d" id="path6489" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 139.2749 910.7834 L 140.8008 911.6289 L 139.2749 910.7834 z " fill="#82928c" id="path6490" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 910.7834 L 171.318 911.6289 L 169.7921 910.7834 z " fill="#8a9697" id="path6491" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 111.8094 911.6289 L 113.3354 912.4744 L 111.8094 911.6289 z " fill="#53575a" id="path6492" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 125.5421 911.6289 L 145.3783 919.2385 L 125.5421 911.6289 z " fill="#83888b" id="path6493" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 140.8008 911.6289 L 142.3266 912.4744 L 140.8008 911.6289 z " fill="#73837d" id="path6494" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 911.6289 L 149.956 912.4744 L 148.4301 911.6289 z " fill="#74787b" id="path6495" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 911.6289 L 183.5249 912.4744 L 181.999 911.6289 z " fill="#736c77" id="path6496" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 911.6289 L 215.5678 912.4744 L 214.0421 911.6289 z " fill="#63686a" id="path6497" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 911.6289 L 215.5678 913.3199 L 223.1971 913.3199 L 223.1971 911.6289 L 215.5678 911.6289 z " fill="#c9d6d7" id="path6498" stroke="none" style="fill:#c9d6d7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 223.7054 912.1929 L 224.215 912.756 L 223.7054 912.1929 z " fill="#63736d" id="path6499" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 395.6194 911.6289 L 395.6194 914.1654 L 395.6194 911.6289 z " fill="#959a9c" id="path6500" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 421.5591 911.6289 L 426.1365 912.4744 L 421.5591 911.6289 z " fill="#aebbbc" id="path6501" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 426.1365 911.6289 L 430.7142 912.4744 L 426.1365 911.6289 z " fill="#4d4b4f" id="path6502" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 443.9387 911.9105 L 444.955 912.1929 L 443.9387 911.9105 z " fill="#394444" id="path6503" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 445.9728 911.6289 L 461.2313 912.4744 L 445.9728 911.6289 z " fill="#9aaba5" id="path6504" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 461.2313 911.6289 L 465.8089 913.3199 L 461.2313 911.6289 z " fill="#394444" id="path6505" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 113.3354 912.4744 L 114.8612 913.3199 L 113.3354 912.4744 z " fill="#6a7676" id="path6506" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 142.3266 912.4744 L 143.8525 913.3199 L 142.3266 912.4744 z " fill="#63686a" id="path6507" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 912.4744 L 172.8438 913.3199 L 171.318 912.4744 z " fill="#6a7676" id="path6508" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 251.1708 913.0384 L 251.6805 913.6015 L 251.1708 913.0384 z " fill="#373b3d" id="path6509" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 282.7057 912.4744 L 282.7057 919.2385 L 282.7057 912.4744 z " fill="#222628" id="path6510" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 430.7142 912.4744 L 438.3435 913.3199 L 430.7142 912.4744 z " fill="#a9b1b9" id="path6511" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 913.3199 L 145.3783 914.1654 L 143.8525 913.3199 z " fill="#53575a" id="path6512" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 205.3949 913.8839 L 205.9046 914.447 L 205.3949 913.8839 z " fill="#b7c3c4" id="path6513" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 913.3199 L 233.8783 914.1654 L 232.3523 913.3199 z " fill="#8a9697" id="path6514" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 407.8263 913.3199 L 407.8263 915.8564 L 407.8263 913.3199 z " fill="#45453d" id="path6515" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 441.3952 913.3199 L 459.7054 914.1654 L 441.3952 913.3199 z " fill="#333739" id="path6516" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 460.7232 913.6015 L 461.7395 913.8839 L 460.7232 913.6015 z " fill="#a8aeb0" id="path6517" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 117.9129 914.1654 L 119.4387 915.0109 L 117.9129 914.1654 z " fill="#53575a" id="path6518" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 914.1654 L 153.0076 915.0109 L 151.4818 914.1654 z " fill="#63686a" id="path6519" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 914.1654 L 250.6627 917.5475 L 250.6627 914.1654 z " fill="#a0a5a8" id="path6520" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 914.1654 L 276.6022 917.5475 L 276.6022 914.1654 z " fill="#83888b" id="path6521" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 119.4387 915.0109 L 120.9646 915.8564 L 119.4387 915.0109 z " fill="#74787b" id="path6522" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 915.0109 L 224.7231 916.702 L 215.5678 915.0109 z " fill="#aebbbc" id="path6523" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.9209 916.4204 L 207.4305 916.9835 L 206.9209 916.4204 z " fill="#a8aeb0" id="path6524" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 149.956 916.702 L 151.4818 917.5475 L 149.956 916.702 z " fill="#92a39c" id="path6525" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 916.702 L 156.0593 917.5475 L 154.5336 916.702 z " fill="#63686a" id="path6526" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 916.702 L 229.3006 927.6935 L 229.3006 916.702 z " fill="#b0b5b7" id="path6527" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.8601 917.2659 L 410.3699 917.829 L 409.8601 917.2659 z " fill="#53575a" id="path6528" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 276.6022 917.5475 L 276.6022 923.466 L 276.6022 917.5475 z " fill="#434749" id="path6529" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 919.2385 L 400.1969 917.5475 L 397.1453 919.2385 z " fill="#857f8a" id="path6530" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 128.5939 918.393 L 130.1198 919.2385 L 128.5939 918.393 z " fill="#8f9099" id="path6531" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 151.4818 918.393 L 153.0076 919.2385 L 151.4818 918.393 z " fill="#63736d" id="path6532" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 175.8955 918.393 L 177.4215 919.2385 L 175.8955 918.393 z " fill="#73837d" id="path6533" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 195.7317 918.393 L 197.2576 919.2385 L 195.7317 918.393 z " fill="#63686a" id="path6534" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.6966 918.9569 L 253.2063 919.52 L 252.6966 918.9569 z " fill="#373b3d" id="path6535" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 398.671 918.393 L 404.7745 920.084 L 398.671 918.393 z " fill="#d7e4e5" id="path6536" stroke="none" style="fill:#d7e4e5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 157.5852 919.2385 L 159.111 920.084 L 157.5852 919.2385 z " fill="#736c77" id="path6537" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.1799 919.2385 L 281.1799 923.466 L 281.1799 919.2385 z " fill="#97a4a4" id="path6538" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 410.878 919.2385 L 410.878 921.775 L 410.878 919.2385 z " fill="#7a8686" id="path6539" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 133.1715 920.084 L 134.6973 920.9295 L 133.1715 920.084 z " fill="#a19ea2" id="path6540" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 177.9295 920.6479 L 178.4391 921.211 L 177.9295 920.6479 z " fill="#4c5450" id="path6541" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.7658 920.6479 L 198.2754 921.211 L 197.7658 920.6479 z " fill="#3c3837" id="path6542" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 920.084 L 252.1885 925.157 L 252.1885 920.084 z " fill="#82928c" id="path6543" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 136.2231 920.9295 L 137.7491 921.775 L 136.2231 920.9295 z " fill="#716667" id="path6544" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 920.9295 L 156.0593 921.775 L 154.5336 920.9295 z " fill="#92a39c" id="path6545" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 920.9295 L 291.8609 925.157 L 291.8609 920.9295 z " fill="#c7d4d5" id="path6546" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 921.775 L 162.1628 922.6205 L 160.6369 921.775 z " fill="#807b7a" id="path6547" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 211.4984 922.3389 L 212.0081 922.902 L 211.4984 922.3389 z " fill="#45453d" id="path6548" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 156.0593 922.6205 L 157.5852 923.466 L 156.0593 922.6205 z " fill="#74787b" id="path6549" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 409.3521 922.6205 L 410.878 923.466 L 409.3521 922.6205 z " fill="#736c77" id="path6550" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 923.466 L 145.3783 924.3115 L 143.8525 923.466 z " fill="#716667" id="path6551" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 923.466 L 210.9904 932.7665 L 210.9904 923.466 z " fill="#7a8686" id="path6552" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 923.466 L 281.1799 928.539 L 278.1281 923.466 z " fill="#a0a5a8" id="path6553" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 281.688 924.0299 L 282.1976 924.593 L 281.688 924.0299 z " fill="#53575a" id="path6554" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 926.0025 L 148.4301 924.3115 L 143.8525 926.0025 z " fill="#33413c" id="path6555" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 180.9812 924.8754 L 181.4909 925.4386 L 180.9812 924.8754 z " fill="#434749" id="path6556" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.8174 924.8754 L 201.3271 925.4386 L 200.8174 924.8754 z " fill="#3c3837" id="path6557" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 387.9901 924.3115 L 387.9901 926.848 L 387.9901 924.3115 z " fill="#96a3a3" id="path6558" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 407.8263 924.3115 L 409.3521 925.157 L 407.8263 924.3115 z " fill="#807b7a" id="path6559" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 141.8185 925.4386 L 142.8348 925.721 L 141.8185 925.4386 z " fill="#91988e" id="path6560" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 159.111 925.157 L 160.6369 926.0025 L 159.111 925.157 z " fill="#83888b" id="path6561" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 245.577 925.4386 L 246.5933 925.721 L 245.577 925.4386 z " fill="#a1b2ab" id="path6562" stroke="none" style="fill:#a1b2ab;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 248.6287 925.4386 L 249.645 925.721 L 248.6287 925.4386 z " fill="#4c5450" id="path6563" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 925.157 L 297.9644 926.0025 L 293.3867 925.157 z " fill="#92a39c" id="path6564" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.1893 926.2841 L 135.2054 926.5665 L 134.1893 926.2841 z " fill="#82928c" id="path6565" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.241 926.2841 L 138.2571 926.5665 L 137.241 926.2841 z " fill="#434749" id="path6566" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 926.0025 L 162.1628 926.848 L 160.6369 926.0025 z " fill="#92a39c" id="path6567" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 926.0025 L 168.2662 926.848 L 166.7404 926.0025 z " fill="#83888b" id="path6568" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.999 926.0025 L 181.999 929.3845 L 181.999 926.0025 z " fill="#73837d" id="path6569" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 201.8352 926.0025 L 203.3611 926.848 L 201.8352 926.0025 z " fill="#a0a5a8" id="path6570" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.9994 926.2841 L 242.0156 926.5665 L 240.9994 926.2841 z " fill="#6a7676" id="path6571" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 297.9644 926.0025 L 302.5419 926.848 L 297.9644 926.0025 z " fill="#4c5450" id="path6572" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 127.0681 926.848 L 131.6456 927.6935 L 127.0681 926.848 z " fill="#575f5b" id="path6573" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 926.848 L 163.6887 927.6935 L 162.1628 926.848 z " fill="#82928c" id="path6574" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 168.2662 926.848 L 169.7921 927.6935 L 168.2662 926.848 z " fill="#74787b" id="path6575" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 236.4218 927.1296 L 237.438 927.412 L 236.4218 927.1296 z " fill="#575f5b" id="path6576" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 278.1281 926.848 L 281.1799 931.0755 L 278.1281 926.848 z " fill="#6a7676" id="path6577" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 404.7745 926.848 L 406.3003 927.6935 L 404.7745 926.848 z " fill="#686c6f" id="path6578" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 116.3869 927.6935 L 120.9646 928.539 L 116.3869 927.6935 z " fill="#73837d" id="path6579" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 927.6935 L 171.318 928.539 L 169.7921 927.6935 z " fill="#686c6f" id="path6580" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.8691 928.2575 L 204.3789 928.8206 L 203.8691 928.2575 z " fill="#596465" id="path6581" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 230.3184 927.9751 L 231.3346 928.2575 L 230.3184 927.9751 z " fill="#63686a" id="path6582" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 308.6453 927.6935 L 310.1711 928.539 L 308.6453 927.6935 z " fill="#63736d" id="path6583" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 112.8272 928.8206 L 113.8434 929.103 L 112.8272 928.8206 z " fill="#596465" id="path6584" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 146.9043 934.4576 C 155.4719 935.3428 166.4779 937.2181 174.3697 934.4576 C 164.2487 930.9952 154.6525 926.8835 146.9043 934.4576 z " fill="#fefffc" id="path6585" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 928.539 L 168.2662 929.3845 L 166.7404 928.539 z " fill="#92a39c" id="path6586" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 928.539 L 172.8438 929.3845 L 171.318 928.539 z " fill="#686c6f" id="path6587" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 928.539 L 198.7834 929.3845 L 197.2576 928.539 z " fill="#959a9c" id="path6588" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 928.539 L 386.4642 931.0755 L 386.4642 928.539 z " fill="#b0b5b7" id="path6589" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.7577 929.3845 L 110.2836 930.23 L 108.7577 929.3845 z " fill="#9d9c94" id="path6590" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 134.6973 930.23 L 146.9043 929.3845 L 134.6973 930.23 z " fill="#63686a" id="path6591" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 929.3845 L 156.0593 930.23 L 154.5336 929.3845 z " fill="#97a4a4" id="path6592" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.6369 929.3845 L 162.1628 930.23 L 160.6369 929.3845 z " fill="#686c6f" id="path6593" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 171.318 931.0755 L 174.3697 929.3845 L 171.318 931.0755 z " fill="#777c7e" id="path6594" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.7484 929.9485 L 256.258 930.5116 L 255.7484 929.9485 z " fill="#c7d4d5" id="path6595" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 930.23 L 108.7577 931.0755 L 107.2319 930.23 z " fill="#73837d" id="path6596" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 153.0076 930.23 L 154.5336 931.0755 L 153.0076 930.23 z " fill="#989d9f" id="path6597" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 162.1628 930.23 L 163.6887 931.0755 L 162.1628 930.23 z " fill="#857f8a" id="path6598" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 930.23 L 200.3094 931.0755 L 198.7834 930.23 z " fill="#888d90" id="path6599" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 930.23 L 206.4127 931.0755 L 204.8869 930.23 z " fill="#8a9697" id="path6600" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 931.921 L 258.292 930.23 L 235.4041 931.921 z " fill="#42514b" id="path6601" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 930.23 L 255.2402 931.0755 L 241.5076 930.23 z " fill="#83888b" id="path6602" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 930.23 L 317.8005 935.3031 L 291.8609 930.23 z " fill="#596465" id="path6603" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 317.8005 930.23 L 319.3263 931.0755 L 317.8005 930.23 z " fill="#82928c" id="path6604" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 401.7228 930.23 L 403.2486 931.0755 L 401.7228 930.23 z " fill="#63686a" id="path6605" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 124.0163 934.4576 L 130.1198 934.4576 L 137.7491 931.921 C 132.5581 930.6891 126.9322 931.8416 124.0163 934.4576 z " fill="#83888b" id="path6606" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.9723 931.6395 L 387.4819 932.2026 L 386.9723 931.6395 z " fill="#434749" id="path6607" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 931.921 L 104.1802 932.7665 L 102.6542 931.921 z " fill="#92a39c" id="path6608" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 148.4301 931.921 L 149.956 932.7665 L 148.4301 931.921 z " fill="#5d5e66" id="path6609" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 931.921 L 168.2662 932.7665 L 166.7404 931.921 z " fill="#a19ea2" id="path6610" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 931.921 L 207.9386 932.7665 L 206.4127 931.921 z " fill="#96a3a3" id="path6611" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 931.921 L 261.3437 934.4576 L 258.292 931.921 z " fill="#373b3d" id="path6612" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 931.921 L 323.904 932.7665 L 322.3781 931.921 z " fill="#73837d" id="path6613" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 99.09443 933.0481 L 100.1107 933.3305 L 99.09443 933.0481 z " fill="#7a8686" id="path6614" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.8612 932.7665 L 124.0163 934.4576 L 114.8612 932.7665 z " fill="#4d4b4f" id="path6615" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 932.7665 L 146.9043 933.6121 L 145.3783 932.7665 z " fill="#6a7676" id="path6616" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 932.7665 L 171.318 933.6121 L 169.7921 932.7665 z " fill="#959a9c" id="path6617" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 210.9904 932.7665 L 210.9904 936.9941 L 210.9904 932.7665 z " fill="#b8bec0" id="path6618" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 400.1969 932.7665 L 401.7228 933.6121 L 400.1969 932.7665 z " fill="#7a8686" id="path6619" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 94.5169 933.8936 L 95.53303 934.176 L 94.5169 933.8936 z " fill="#63686a" id="path6620" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 144.3606 934.176 L 144.8703 934.7391 L 144.3606 934.176 z " fill="#575f5b" id="path6621" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 145.3783 933.6121 L 151.4818 935.3031 L 145.3783 933.6121 z " fill="#cbddd6" id="path6622" stroke="none" style="fill:#cbddd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 172.8438 933.6121 L 174.3697 934.4576 L 172.8438 933.6121 z " fill="#7a8686" id="path6623" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 326.9558 933.6121 L 328.4816 934.4576 L 326.9558 933.6121 z " fill="#777c7e" id="path6624" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.4464 934.176 L 385.9561 934.7391 L 385.4464 934.176 z " fill="#7a8686" id="path6625" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 169.7921 935.3031 L 177.4215 935.3031 L 169.7921 935.3031 z " fill="#b3c4bd" id="path6626" stroke="none" style="fill:#b3c4bd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 196.7495 934.7391 L 197.7658 935.0215 L 196.7495 934.7391 z " fill="#63686a" id="path6627" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 399.1792 935.0215 L 399.6888 935.5846 L 399.1792 935.0215 z " fill="#888d90" id="path6628" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 82.30997 935.5846 L 83.32624 935.867 L 82.30997 935.5846 z " fill="#9aaba5" id="path6629" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 154.5336 935.3031 L 162.1628 936.1486 L 154.5336 935.3031 z " fill="#92a39c" id="path6630" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 186.5765 935.3031 L 188.1024 936.1486 L 186.5765 935.3031 z " fill="#9facad" id="path6631" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 936.9941 L 253.7144 935.3031 L 249.1368 936.9941 z " fill="#5d5e66" id="path6632" stroke="none" style="fill:#5d5e66;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 935.3031 L 333.0591 936.1486 L 331.5333 935.3031 z " fill="#8a9697" id="path6633" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 77.73244 936.4301 L 78.74858 936.7125 L 77.73244 936.4301 z " fill="#6a7676" id="path6634" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 936.1486 L 189.6282 936.9941 L 188.1024 936.1486 z " fill="#82928c" id="path6635" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 936.1486 L 200.3094 936.9941 L 198.7834 936.1486 z " fill="#5c5a5d" id="path6636" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 936.1486 L 259.8178 939.5306 C 258.4004 936.8732 255.405 936.3168 250.6627 936.1486 z " fill="#edf2f5" id="path6637" stroke="none" style="fill:#edf2f5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.3098 936.4301 L 260.3259 936.7125 L 259.3098 936.4301 z " fill="#3c3837" id="path6638" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 70.61125 936.9941 L 75.18878 937.8396 L 70.61125 936.9941 z " fill="#7a8686" id="path6639" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 137.7491 936.9941 L 151.4818 937.8396 L 137.7491 936.9941 z " fill="#373b3d" id="path6640" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 936.9941 L 191.1541 937.8396 L 189.6282 936.9941 z " fill="#73837d" id="path6641" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 194.2059 938.6851 L 197.2576 936.9941 L 194.2059 938.6851 z " fill="#b5babd" id="path6642" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 259.8178 936.9941 L 259.8178 939.5306 L 259.8178 936.9941 z " fill="#74787b" id="path6643" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 936.9941 L 337.6368 937.8396 L 336.1108 936.9941 z " fill="#82928c" id="path6644" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 936.9941 L 383.4125 939.5306 L 383.4125 936.9941 z " fill="#888d90" id="path6645" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 397.1453 936.9941 L 397.1453 939.5306 L 397.1453 936.9941 z " fill="#8a9697" id="path6646" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 67.05144 938.1211 L 68.06759 938.4035 L 67.05144 938.1211 z " fill="#686c6f" id="path6647" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 107.2319 940.3761 L 122.4904 937.8396 L 107.2319 940.3761 z " fill="#a6bab9" id="path6648" stroke="none" style="fill:#a6bab9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 135.7151 938.1211 L 136.7313 938.4035 L 135.7151 938.1211 z " fill="#b5babd" id="path6649" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 143.8525 937.8396 L 159.111 938.6851 L 143.8525 937.8396 z " fill="#d7e4e5" id="path6650" stroke="none" style="fill:#d7e4e5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 160.1288 938.1211 L 161.1451 938.4035 L 160.1288 938.1211 z " fill="#736c77" id="path6651" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 178.4391 938.1211 L 179.4554 938.4035 L 178.4391 938.1211 z " fill="#807b7a" id="path6652" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 181.4909 938.1211 L 182.507 938.4035 L 181.4909 938.1211 z " fill="#b5babd" id="path6653" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 191.1541 937.8396 L 192.6799 938.6851 L 191.1541 937.8396 z " fill="#575f5b" id="path6654" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.3789 938.1211 L 205.3949 938.4035 L 204.3789 938.1211 z " fill="#434749" id="path6655" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 236.93 939.5306 L 239.9816 937.8396 L 236.93 939.5306 z " fill="#45453d" id="path6656" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 937.8396 L 255.2402 938.6851 L 253.7144 937.8396 z " fill="#82928c" id="path6657" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 942.0671 L 299.4902 938.6851 C 293.7912 937.2672 290.7211 938.8779 290.3351 942.0671 z " fill="#959a9c" id="path6658" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 62.47379 938.9666 L 63.49005 939.249 L 62.47379 938.9666 z " fill="#63686a" id="path6659" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 166.7404 938.6851 L 177.4215 939.5306 L 166.7404 938.6851 z " fill="#c7cdcf" id="path6660" stroke="none" style="fill:#c7cdcf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.4735 938.9666 L 240.4898 939.249 L 239.4735 938.9666 z " fill="#74787b" id="path6661" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 340.6884 938.6851 L 342.2142 939.5306 L 340.6884 938.6851 z " fill="#83888b" id="path6662" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 102.6542 939.5306 L 107.2319 941.2216 L 102.6542 939.5306 z " fill="#63686a" id="path6663" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 130.1198 939.5306 L 131.6456 940.3761 L 130.1198 939.5306 z " fill="#989d9f" id="path6664" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 939.5306 L 200.3094 940.3761 L 198.7834 939.5306 z " fill="#53575a" id="path6665" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 939.5306 L 249.1368 942.0671 L 241.5076 939.5306 z " fill="#686c6f" id="path6666" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 939.5306 L 314.7488 940.3761 L 310.1711 939.5306 z " fill="#b5babd" id="path6667" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 315.7666 939.8121 L 316.7829 940.0945 L 315.7666 939.8121 z " fill="#595a63" id="path6668" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 396.1275 940.0945 L 396.6371 940.6576 L 396.1275 940.0945 z " fill="#807b7a" id="path6669" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 54.84452 940.6576 L 55.86079 940.94 L 54.84452 940.6576 z " fill="#333739" id="path6670" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 95.02496 942.0671 L 104.1802 941.2216 L 95.02496 942.0671 z " fill="#9aaba5" id="path6671" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 188.1024 940.3761 L 189.6282 941.2216 L 188.1024 940.3761 z " fill="#736c77" id="path6672" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 940.3761 L 201.8352 941.2216 L 200.3094 940.3761 z " fill="#8a9697" id="path6673" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 320.3441 940.6576 L 321.3603 940.94 L 320.3441 940.6576 z " fill="#857f8a" id="path6674" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 940.3761 L 346.7918 941.2216 L 345.266 940.3761 z " fill="#63736d" id="path6675" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 49.24913 941.2216 L 50.77506 942.0671 L 49.24913 941.2216 z " fill="#9aaba5" id="path6676" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 90.44743 941.2216 L 95.02496 942.9126 L 90.44743 941.2216 z " fill="#6a7676" id="path6677" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 189.6282 941.2216 L 191.1541 942.0671 L 189.6282 941.2216 z " fill="#857f8a" id="path6678" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 941.2216 L 330.0074 942.0671 L 325.4298 941.2216 z " fill="#adaeb8" id="path6679" stroke="none" style="fill:#adaeb8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 46.19746 942.0671 L 47.72332 942.9126 L 46.19746 942.0671 z " fill="#73837d" id="path6680" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 79.76644 944.6036 L 93.49916 942.0671 L 79.76644 944.6036 z " fill="#9aaba5" id="path6681" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 942.0671 L 256.7661 943.7581 L 249.1368 942.0671 z " fill="#595a63" id="path6682" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 942.0671 L 339.1625 942.9126 L 334.5851 942.0671 z " fill="#4f5058" id="path6683" stroke="none" style="fill:#4f5058;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 942.0671 L 351.3695 942.9126 L 349.8435 942.0671 z " fill="#63736d" id="path6684" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 382.3947 942.6311 L 382.9044 943.1942 L 382.3947 942.6311 z " fill="#6a7676" id="path6685" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.6016 942.6311 L 395.1113 943.1942 L 394.6016 942.6311 z " fill="#596465" id="path6686" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 120.9646 942.9126 L 122.4904 943.7581 L 120.9646 942.9126 z " fill="#a19ea2" id="path6687" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 203.3611 942.9126 L 204.8869 943.7581 L 203.3611 942.9126 z " fill="#74787b" id="path6688" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.3006 942.9126 L 229.3006 953.9042 L 232.3523 942.9126 L 229.3006 942.9126 z " fill="#686c6f" id="path6689" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 942.9126 L 288.8092 945.4491 L 288.8092 942.9126 z " fill="#596465" id="path6690" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 341.7062 943.1942 L 342.7224 943.4766 L 341.7062 943.1942 z " fill="#857f8a" id="path6691" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 344.7579 943.1942 L 345.7741 943.4766 L 344.7579 943.1942 z " fill="#413b45" id="path6692" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.8775 943.4766 L 352.3872 944.0397 L 351.8775 943.4766 z " fill="#484c4e" id="path6693" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 14.1544 956.4407 L 59.93025 947.8165 L 79.76644 943.7581 L 32.46473 951.7042 L 14.1544 956.4407 z " fill="#53575a" id="path6694" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 195.7317 943.7581 L 197.2576 944.6036 L 195.7317 943.7581 z " fill="#5c5a5d" id="path6695" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 1011.399 L 262.4881 980.9603 L 256.3464 969.9688 L 257.6633 953.2481 L 240.0046 946.0452 L 232.5813 945.0188 L 230.8539 948.8447 L 236.2707 960.6682 L 247.4034 976.7328 L 257.4986 986.0334 L 268.973 1011.399 z " fill="#fefffc" id="path6696" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 253.7144 943.7581 L 256.7661 945.4491 L 253.7144 943.7581 z " fill="#abbcb6" id="path6697" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 943.7581 L 255.2402 947.9856 L 256.7661 943.7581 z " fill="#222628" id="path6698" stroke="none" style="fill:#222628;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.3355 944.0397 L 350.3517 944.3221 L 349.3355 944.0397 z " fill="#857f8a" id="path6699" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 394.6016 944.3221 L 395.1113 944.8852 L 394.6016 944.3221 z " fill="#c8c5ca" id="path6700" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 114.8612 944.6036 L 116.3869 945.4491 L 114.8612 944.6036 z " fill="#7a8686" id="path6701" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 197.2576 944.6036 L 198.7834 945.4491 L 197.2576 944.6036 z " fill="#736c77" id="path6702" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 211.4984 945.1676 L 212.0081 945.7307 L 211.4984 945.1676 z " fill="#b8bec0" id="path6703" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 944.6036 L 236.93 945.4491 L 235.4041 944.6036 z " fill="#857f8a" id="path6704" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 198.7834 945.4491 L 200.3094 946.2946 L 198.7834 945.4491 z " fill="#888d90" id="path6705" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.4735 945.7307 L 240.4898 946.0131 L 239.4735 945.7307 z " fill="#373b3d" id="path6706" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.7484 946.0131 L 256.258 946.5762 L 255.7484 946.0131 z " fill="#596465" id="path6707" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 945.4491 L 291.8609 946.2946 L 290.3351 945.4491 z " fill="#6a7676" id="path6708" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 393.0757 946.0131 L 393.5853 946.5762 L 393.0757 946.0131 z " fill="#63686a" id="path6709" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 108.2496 946.5762 L 109.2659 946.8586 L 108.2496 946.5762 z " fill="#b5b4ac" id="path6710" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 200.3094 946.2946 L 201.8352 947.1401 L 200.3094 946.2946 z " fill="#a0a5a8" id="path6711" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 946.2946 L 214.0421 947.1401 L 212.5162 946.2946 z " fill="#5c5a5d" id="path6712" stroke="none" style="fill:#5c5a5d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 242.5252 946.5762 L 243.5415 946.8586 L 242.5252 946.5762 z " fill="#53575a" id="path6713" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 26.36128 947.1401 L 27.88714 947.9856 L 26.36128 947.1401 z " fill="#9facad" id="path6714" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 103.6721 947.4217 L 104.6882 947.7041 L 103.6721 947.4217 z " fill="#b0b5b7" id="path6715" stroke="none" style="fill:#b0b5b7;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.0081 947.4217 L 213.0243 947.7041 L 212.0081 947.4217 z " fill="#a9b1b9" id="path6716" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 245.577 947.4217 L 246.5933 947.7041 L 245.577 947.4217 z " fill="#4d4b4f" id="path6717" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 296.4385 947.1401 L 297.9644 947.9856 L 296.4385 947.1401 z " fill="#73837d" id="path6718" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 23.30956 947.9856 L 24.83542 948.8311 L 23.30956 947.9856 z " fill="#9aaba5" id="path6719" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 947.9856 L 301.0161 948.8311 L 299.4902 947.9856 z " fill="#7a8686" id="path6720" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 379.3429 948.5496 L 379.8527 949.1127 L 379.3429 948.5496 z " fill="#8f9099" id="path6721" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 20.25784 948.8311 L 21.78371 949.6766 L 20.25784 948.8311 z " fill="#9facad" id="path6722" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 204.8869 948.8311 L 206.4127 949.6766 L 204.8869 948.8311 z " fill="#a19ea2" id="path6723" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 17.20612 949.6766 L 18.73199 950.5222 L 17.20612 949.6766 z " fill="#92a39c" id="path6724" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 91.46517 949.9582 L 92.4813 950.2406 L 91.46517 949.9582 z " fill="#a4a9ac" id="path6725" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 206.4127 949.6766 L 207.9386 950.5222 L 206.4127 949.6766 z " fill="#97a4a4" id="path6726" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 14.1544 950.5222 L 15.68025 951.3677 L 14.1544 950.5222 z " fill="#7a8686" id="path6727" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 85.3617 950.8037 L 86.37798 951.0861 L 85.3617 950.8037 z " fill="#83888b" id="path6728" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.2402 950.5222 L 256.7661 951.3677 L 255.2402 950.5222 z " fill="#8a9697" id="path6729" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 950.5222 L 308.6453 951.3677 L 307.1196 950.5222 z " fill="#83888b" id="path6730" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 11.10268 951.3677 L 12.62854 952.2132 L 11.10268 951.3677 z " fill="#9aaba5" id="path6731" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 80.78417 951.6492 L 81.80031 951.9316 L 80.78417 951.6492 z " fill="#a8aeb0" id="path6732" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.292 951.3677 L 258.292 960.6682 L 258.292 951.3677 z " fill="#4c5450" id="path6733" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 377.3091 951.3677 L 377.3091 953.9042 L 377.3091 951.3677 z " fill="#a8aeb0" id="path6734" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 71.62898 952.4947 L 72.64524 952.7771 L 71.62898 952.4947 z " fill="#686c6f" id="path6735" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 73.66298 952.2132 L 78.24051 953.0587 L 73.66298 952.2132 z " fill="#a9b1b9" id="path6736" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 311.6971 952.2132 L 313.2229 953.0587 L 311.6971 952.2132 z " fill="#63736d" id="path6737" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 6.525107 953.0587 L 8.050966 953.9042 L 6.525107 953.0587 z " fill="#74787b" id="path6738" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 58.40432 953.0587 L 64.50778 953.9042 L 58.40432 953.0587 z " fill="#42514b" id="path6739" stroke="none" style="fill:#42514b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 390.0241 953.6226 L 390.5336 954.1857 L 390.0241 953.6226 z " fill="#a19ea2" id="path6740" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 52.30086 953.9042 L 56.87852 954.7497 L 52.30086 953.9042 z " fill="#7a8686" id="path6741" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 953.9042 L 214.0421 958.9772 L 214.0421 953.9042 z " fill="#cfdcdc" id="path6742" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 953.9042 L 308.6453 958.1317 L 291.8609 953.9042 z " fill="#807b7a" id="path6743" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 953.9042 L 317.8005 954.7497 L 316.2746 953.9042 z " fill="#74787b" id="path6744" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 45.68936 955.0312 L 46.70557 955.3136 L 45.68936 955.0312 z " fill="#777c7e" id="path6745" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 48.74105 955.0312 L 49.75733 955.3136 L 48.74105 955.0312 z " fill="#c3c5c2" id="path6746" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 376.2913 955.3136 L 376.8009 955.8767 L 376.2913 955.3136 z " fill="#97a4a4" id="path6747" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 33.99058 955.5952 L 38.56816 956.4407 L 33.99058 955.5952 z " fill="#575f5b" id="path6748" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 388.4982 956.1591 L 389.0078 956.7222 L 388.4982 956.1591 z " fill="#53575a" id="path6749" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -2.630048 956.4407 L -1.1042 957.2862 L -2.630048 956.4407 z " fill="#7a8686" id="path6750" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 24.83542 956.4407 L 29.41301 957.2862 L 24.83542 956.4407 z " fill="#595a63" id="path6751" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 30.43075 956.7222 L 31.44697 957.0046 L 30.43075 956.7222 z " fill="#a8aeb0" id="path6752" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 956.4407 L 215.5678 963.2047 L 215.5678 956.4407 z " fill="#333739" id="path6753" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 956.4407 L 323.904 957.2862 L 322.3781 956.4407 z " fill="#83888b" id="path6754" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 376.2913 957.0046 L 376.8009 957.5677 L 376.2913 957.0046 z " fill="#434749" id="path6755" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -5.681778 957.2862 L -4.155919 958.1317 L -5.681778 957.2862 z " fill="#989d9f" id="path6756" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 17.20612 957.2862 L 21.78371 958.1317 L 17.20612 957.2862 z " fill="#53575a" id="path6757" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 388.4982 957.8501 L 389.0078 958.4132 L 388.4982 957.8501 z " fill="#989d9f" id="path6758" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 12.12043 958.4132 L 13.13664 958.6956 L 12.12043 958.4132 z " fill="#a6b2b3" id="path6759" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 958.1317 L 330.0074 965.7412 C 325.7717 961.6507 315.266 958.8833 307.1196 958.1317 z " fill="#aeb3b5" id="path6760" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 1.947518 958.9772 L 6.525107 959.8227 L 1.947518 958.9772 z " fill="#6a7676" id="path6761" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 328.4816 958.9772 L 330.0074 959.8227 L 328.4816 958.9772 z " fill="#83888b" id="path6762" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.2573 958.9772 L 374.2573 961.5137 L 374.2573 958.9772 z " fill="#7a8686" id="path6763" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -13.31107 959.8227 L -11.78521 960.6682 L -13.31107 959.8227 z " fill="#888d90" id="path6764" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -2.630048 959.8227 L 1.947518 960.6682 L -2.630048 959.8227 z " fill="#aeb3b5" id="path6765" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.9121 960.3867 L 236.4218 960.9498 L 235.9121 960.3867 z " fill="#394444" id="path6766" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.3011 960.1043 L 289.3172 960.3867 L 288.3011 960.1043 z " fill="#333739" id="path6767" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 959.8227 L 331.5333 960.6682 L 330.0074 959.8227 z " fill="#6a7676" id="path6768" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 959.8227 L 386.4642 962.3592 L 386.4642 959.8227 z " fill="#484c4e" id="path6769" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -16.36279 960.6682 L -14.83693 961.5137 L -16.36279 960.6682 z " fill="#9facad" id="path6770" stroke="none" style="fill:#9facad;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -6.189889 960.9498 L -5.173655 961.2322 L -6.189889 960.9498 z " fill="#c3c5c2" id="path6771" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 960.6682 L 287.2833 963.2047 L 287.2833 960.6682 z " fill="#96a3a3" id="path6772" stroke="none" style="fill:#96a3a3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 960.6682 L 291.7907 968.375 L 288.8139 980.1148 L 291.8349 1006.325 L 293.3883 1018.163 L 295.1414 1023.109 L 319.3263 1024.081 L 345.3789 1023.109 L 351.2031 1014.781 L 360.6574 992.7974 L 363.6999 984.5613 L 345.266 977.0008 L 288.8092 960.6682 z " fill="#fefffc" id="path6773" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 960.6682 L 291.8609 961.5137 L 290.3351 960.6682 z " fill="#83888b" id="path6774" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.5333 960.6682 L 333.0591 961.5137 L 331.5333 960.6682 z " fill="#575f5b" id="path6775" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -19.41452 963.2047 L -16.36279 961.5137 L -19.41452 963.2047 z " fill="#716667" id="path6776" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M -10.76747 961.7953 L -9.751244 962.0777 L -10.76747 961.7953 z " fill="#a9b1b9" id="path6777" stroke="none" style="fill:#a9b1b9;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 293.3867 961.5137 L 294.9126 962.3592 L 293.3867 961.5137 z " fill="#83888b" id="path6778" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 333.0591 961.5137 L 334.5851 962.3592 L 333.0591 961.5137 z " fill="#596465" id="path6779" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 334.5851 962.3592 L 336.1108 963.2047 L 334.5851 962.3592 z " fill="#6a7676" id="path6780" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 373.2397 962.9232 L 373.7492 963.4863 L 373.2397 962.9232 z " fill="#91988e" id="path6781" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 386.4642 962.3592 L 386.4642 965.7412 L 386.4642 962.3592 z " fill="#c6ced6" id="path6782" stroke="none" style="fill:#c6ced6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 963.2047 L 215.5678 967.4323 L 215.5678 963.2047 z " fill="#63686a" id="path6783" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 963.2047 L 256.7661 965.7412 L 256.7661 963.2047 z " fill="#807b7a" id="path6784" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.7915 963.7687 L 288.3011 964.3318 L 287.7915 963.7687 z " fill="#63686a" id="path6785" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 299.4902 963.2047 L 301.0161 964.0502 L 299.4902 963.2047 z " fill="#716667" id="path6786" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 963.2047 L 337.6368 964.0502 L 336.1108 963.2047 z " fill="#8a9697" id="path6787" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.9639 964.6142 L 239.4735 965.1773 L 238.9639 964.6142 z " fill="#434749" id="path6788" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 304.0679 964.8957 L 305.5937 965.7412 L 304.0679 964.8957 z " fill="#989d9f" id="path6789" stroke="none" style="fill:#989d9f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 330.0074 964.8957 L 333.0591 966.5867 L 330.0074 964.8957 z " fill="#434749" id="path6790" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.4898 966.3052 L 240.9994 966.8683 L 240.4898 966.3052 z " fill="#8a9697" id="path6791" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 965.7412 L 291.8609 966.5867 L 290.3351 965.7412 z " fill="#736c77" id="path6792" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 307.1196 965.7412 L 308.6453 966.5867 L 307.1196 965.7412 z " fill="#91988e" id="path6793" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.7138 966.3052 L 372.2234 966.8683 L 371.7138 966.3052 z " fill="#857f8a" id="path6794" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 965.7412 L 384.9384 968.2778 L 384.9384 965.7412 z " fill="#484c4e" id="path6795" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 255.7484 967.1507 L 256.258 967.7138 L 255.7484 967.1507 z " fill="#83888b" id="path6796" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 966.5867 L 291.8609 969.9688 L 291.8609 966.5867 z " fill="#686c6f" id="path6797" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 310.1711 966.5867 L 311.6971 967.4323 L 310.1711 966.5867 z " fill="#8a9697" id="path6798" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 215.5678 967.4323 L 215.5678 970.8143 L 215.5678 967.4323 z " fill="#959a9c" id="path6799" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 313.2229 967.4323 L 314.7488 968.2778 L 313.2229 967.4323 z " fill="#83888b" id="path6800" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 342.2142 967.4323 L 343.7402 968.2778 L 342.2142 967.4323 z " fill="#686c6f" id="path6801" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 968.2778 L 279.6539 969.9688 L 267.4472 968.2778 z " fill="#83888b" id="path6802" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 968.2778 L 279.6539 969.1233 L 268.973 968.2778 z " fill="#cfdcdc" id="path6803" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 316.2746 968.2778 L 317.8005 969.1233 L 316.2746 968.2778 z " fill="#7a8686" id="path6804" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 343.7402 968.2778 L 345.266 969.1233 L 343.7402 968.2778 z " fill="#888d90" id="path6805" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.4464 968.8417 L 385.9561 969.4048 L 385.4464 968.8417 z " fill="#a19ea2" id="path6806" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 242.0156 969.6872 L 242.5252 970.2503 L 242.0156 969.6872 z " fill="#63686a" id="path6807" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 319.3263 969.1233 L 320.8523 969.9688 L 319.3263 969.1233 z " fill="#74787b" id="path6808" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 969.1233 L 346.7918 969.9688 L 345.266 969.1233 z " fill="#6a7676" id="path6809" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 370.1879 969.6872 L 370.6975 970.2503 L 370.1879 969.6872 z " fill="#83888b" id="path6810" stroke="none" style="fill:#83888b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 322.3781 969.9688 L 323.904 970.8143 L 322.3781 969.9688 z " fill="#7a8686" id="path6811" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 346.7918 969.9688 L 348.3177 970.8143 L 346.7918 969.9688 z " fill="#6a7676" id="path6812" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 325.4298 970.8143 L 326.9558 971.6598 L 325.4298 970.8143 z " fill="#736c77" id="path6813" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.3177 970.8143 L 349.8435 971.6598 L 348.3177 970.8143 z " fill="#82928c" id="path6814" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 970.8143 L 383.4125 973.3508 L 383.4125 970.8143 z " fill="#413b45" id="path6815" stroke="none" style="fill:#413b45;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 971.6598 L 235.4041 975.8873 L 232.3523 971.6598 z " fill="#a0a5a8" id="path6816" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.5415 972.2237 L 244.0512 972.7868 L 243.5415 972.2237 z " fill="#394444" id="path6817" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 269.9907 971.9413 L 271.007 972.2237 L 269.9907 971.9413 z " fill="#74787b" id="path6818" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 973.3508 L 279.6539 971.6598 L 268.973 973.3508 z " fill="#cfdcdc" id="path6819" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 971.6598 L 351.3695 972.5053 L 349.8435 971.6598 z " fill="#959a9c" id="path6820" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 972.5053 L 258.292 973.3508 L 256.7661 972.5053 z " fill="#777c7e" id="path6821" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 277.6201 972.7868 L 278.6363 973.0692 L 277.6201 972.7868 z " fill="#596465" id="path6822" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 289.3172 973.0692 L 289.8269 973.6323 L 289.3172 973.0692 z " fill="#888d90" id="path6823" stroke="none" style="fill:#888d90;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 331.0252 972.7868 L 332.0413 973.0692 L 331.0252 972.7868 z " fill="#434749" id="path6824" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.3695 972.5053 L 352.8953 973.3508 L 351.3695 972.5053 z " fill="#959a9c" id="path6825" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.662 973.0692 L 369.1716 973.6323 L 368.662 973.0692 z " fill="#a6b2b3" id="path6826" stroke="none" style="fill:#a6b2b3;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.8953 973.3508 L 354.4212 974.1963 L 352.8953 973.3508 z " fill="#92a39c" id="path6827" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 973.3508 L 383.4125 975.8873 L 383.4125 973.3508 z " fill="#a8aeb0" id="path6828" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 336.1108 974.1963 L 337.6368 975.0418 L 336.1108 974.1963 z " fill="#959a9c" id="path6829" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.1539 974.1963 L 368.1539 978.4238 L 368.1539 974.1963 z " fill="#333739" id="path6830" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 339.1625 975.0418 L 340.6884 975.8873 L 339.1625 975.0418 z " fill="#8f9099" id="path6831" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.0939 975.8873 L 217.0939 986.0334 L 217.0939 975.8873 z " fill="#3c3837" id="path6832" stroke="none" style="fill:#3c3837;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.3523 975.8873 L 232.3523 980.1148 L 232.3523 975.8873 z " fill="#2c2b2e" id="path6833" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 975.8873 L 238.4558 980.1148 L 233.8783 975.8873 z " fill="#d7dcdf" id="path6834" stroke="none" style="fill:#d7dcdf;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 260.3259 976.4513 L 260.8357 977.0144 L 260.3259 976.4513 z " fill="#a4a9ac" id="path6835" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 342.2142 975.8873 L 343.7402 976.7328 L 342.2142 975.8873 z " fill="#857f8a" id="path6836" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 357.4729 975.8873 L 358.9988 976.7328 L 357.4729 975.8873 z " fill="#97a4a4" id="path6837" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 287.2833 976.7328 L 287.2833 991.1064 L 287.2833 976.7328 z " fill="#4c5450" id="path6838" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 345.266 976.7328 L 346.7918 977.5783 L 345.266 976.7328 z " fill="#74787b" id="path6839" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 358.9988 976.7328 L 360.5247 977.5783 L 358.9988 976.7328 z " fill="#7a8686" id="path6840" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 976.7328 L 366.6279 980.1148 L 366.6279 976.7328 z " fill="#c7d4d5" id="path6841" stroke="none" style="fill:#c7d4d5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 382.3947 977.2968 L 382.9044 977.8599 L 382.3947 977.2968 z " fill="#595a63" id="path6842" stroke="none" style="fill:#595a63;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 977.5783 L 362.0505 978.4238 L 360.5247 977.5783 z " fill="#63686a" id="path6843" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 978.4238 L 233.8783 986.8789 L 233.8783 978.4238 z " fill="#97a4a4" id="path6844" stroke="none" style="fill:#97a4a4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 261.8518 978.9878 L 262.3615 979.5509 L 261.8518 978.9878 z " fill="#b5b4ac" id="path6845" stroke="none" style="fill:#b5b4ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 978.4238 L 351.3695 979.2693 L 349.8435 978.4238 z " fill="#8f9099" id="path6846" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 381.8866 978.4238 L 381.8866 980.9603 L 381.8866 978.4238 z " fill="#aeb3b5" id="path6847" stroke="none" style="fill:#aeb3b5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 979.2693 C 235.4041 986.2625 235.3736 993.4856 237.3419 1000.407 C 238.2666 1003.654 243.0455 1006.385 242.8473 1009.708 C 242.658 1012.844 235.9487 1021.325 242.6015 1023.472 C 246.0805 1024.597 261.0324 1025.138 261.6824 1022.043 C 262.3126 1019.042 258.971 1015.06 257.3353 1012.244 C 252.7653 1004.381 247.9146 995.9934 241.3595 988.5699 C 238.7107 985.5709 239.2081 981.8642 235.4041 979.2693 z " fill="#fefffc" id="path6848" stroke="none" style="fill:#fefffc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.1368 979.2693 L 250.6627 980.1148 L 249.1368 979.2693 z " fill="#63686a" id="path6849" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 352.8953 979.2693 L 354.4212 980.1148 L 352.8953 979.2693 z " fill="#716667" id="path6850" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 250.6627 980.1148 L 252.1885 980.9603 L 250.6627 980.1148 z " fill="#91988e" id="path6851" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 262.8695 980.1148 L 262.8695 982.6513 L 262.8695 980.1148 z " fill="#4d4b4f" id="path6852" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.1199 980.3964 L 367.1362 980.6788 L 366.1199 980.3964 z " fill="#484c4e" id="path6853" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.1885 980.9603 L 253.7144 981.8058 L 252.1885 980.9603 z " fill="#7a8686" id="path6854" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 357.4729 980.9603 L 358.9988 981.8058 L 357.4729 980.9603 z " fill="#807b7a" id="path6855" stroke="none" style="fill:#807b7a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.8689 982.3698 L 381.3786 982.9329 L 380.8689 982.3698 z " fill="#596465" id="path6856" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 263.3777 983.2153 L 263.8872 983.7784 L 263.3777 983.2153 z " fill="#8a9697" id="path6857" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 983.4968 L 250.6627 984.3424 L 244.5593 983.4968 z " fill="#4d4b4f" id="path6858" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 380.3607 983.4968 L 380.3607 987.7244 L 380.3607 983.4968 z " fill="#b8bec0" id="path6859" stroke="none" style="fill:#b8bec0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 244.5593 984.3424 L 250.6627 985.1879 L 244.5593 984.3424 z " fill="#d2dbd6" id="path6860" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 256.7661 984.3424 L 256.7661 992.7974 L 256.7661 984.3424 z " fill="#a0a5a8" id="path6861" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 365.1022 984.3424 L 365.1022 986.8789 L 365.1022 984.3424 z " fill="#a8aeb0" id="path6862" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.9035 985.7518 L 265.4131 986.3149 L 264.9035 985.7518 z " fill="#4d4b4f" id="path6863" stroke="none" style="fill:#4d4b4f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.0939 986.0334 L 217.0939 990.2609 L 217.0939 986.0334 z " fill="#7a8686" id="path6864" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 233.8783 986.8789 L 233.8783 992.7974 L 233.8783 986.8789 z " fill="#53575a" id="path6865" stroke="none" style="fill:#53575a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 248.1191 987.4428 L 248.6287 988.0059 L 248.1191 987.4428 z " fill="#63686a" id="path6866" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.8997 987.3016 L 251.4256 988.1471 L 249.8997 987.3016 z " fill="#9aaba5" id="path6867" stroke="none" style="fill:#9aaba5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.9035 987.4428 L 265.4131 988.0059 L 264.9035 987.4428 z " fill="#82928c" id="path6868" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 363.5763 986.8789 L 365.1022 987.7244 L 363.5763 986.8789 z " fill="#92a39c" id="path6869" stroke="none" style="fill:#92a39c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 987.7244 L 241.5076 988.5699 L 239.9816 987.7244 z " fill="#716667" id="path6870" stroke="none" style="fill:#716667;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.0505 987.7244 L 363.5763 988.5699 L 362.0505 987.7244 z " fill="#82928c" id="path6871" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 360.5247 988.5699 L 360.5247 995.3339 L 360.5247 988.5699 z " fill="#8f9099" id="path6872" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 379.3429 989.1338 L 379.8527 989.6969 L 379.3429 989.1338 z " fill="#373b3d" id="path6873" stroke="none" style="fill:#373b3d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 385.9561 988.8514 L 386.9723 989.1338 L 385.9561 988.8514 z " fill="#7a8686" id="path6874" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 989.4154 L 265.9213 991.9519 L 265.9213 989.4154 z " fill="#394444" id="path6875" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 370.6975 990.5424 L 371.7138 990.8248 L 370.6975 990.5424 z " fill="#aebbbc" id="path6876" stroke="none" style="fill:#aebbbc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 991.9519 L 374.2573 990.2609 L 371.2056 991.9519 z " fill="#6a7676" id="path6877" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 384.9384 990.2609 L 386.4642 991.1064 L 384.9384 990.2609 z " fill="#857f8a" id="path6878" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 383.4125 991.1064 L 384.9384 991.9519 L 383.4125 991.1064 z " fill="#736c77" id="path6879" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 991.9519 L 235.4041 997.0249 L 235.4041 991.9519 z " fill="#bfcccd" id="path6880" stroke="none" style="fill:#bfcccd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 265.9213 991.9519 L 265.9213 994.4884 L 265.9213 991.9519 z " fill="#a8aeb0" id="path6881" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 381.8866 991.9519 L 383.4125 992.7974 L 381.8866 991.9519 z " fill="#90878d" id="path6882" stroke="none" style="fill:#90878d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 245.0673 993.3614 L 245.577 993.9245 L 245.0673 993.3614 z " fill="#c3c5c2" id="path6883" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 218.6196 994.4884 L 218.6196 1005.48 L 218.6196 994.4884 z " fill="#2c2b2e" id="path6884" stroke="none" style="fill:#2c2b2e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 246.5933 995.0524 L 247.1028 995.6155 L 246.5933 995.0524 z " fill="#a4a9ac" id="path6885" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 994.4884 L 267.4472 997.8704 L 267.4472 994.4884 z " fill="#6a7676" id="path6886" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 288.8092 994.4884 L 288.8092 998.7159 L 288.8092 994.4884 z " fill="#596465" id="path6887" stroke="none" style="fill:#596465;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 377.3091 994.4884 L 378.8349 995.3339 L 377.3091 994.4884 z " fill="#736c77" id="path6888" stroke="none" style="fill:#736c77;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 361.0327 995.8979 L 361.5424 996.461 L 361.0327 995.8979 z " fill="#434749" id="path6889" stroke="none" style="fill:#434749;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.8 996.7434 L 259.3098 997.3065 L 258.8 996.7434 z " fill="#484c4e" id="path6890" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 376.2913 996.7434 L 376.8009 997.3065 L 376.2913 996.7434 z " fill="#b7c3c4" id="path6891" stroke="none" style="fill:#b7c3c4;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 235.4041 997.0249 L 235.4041 999.5614 L 235.4041 997.0249 z " fill="#6a7676" id="path6892" stroke="none" style="fill:#6a7676;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 248.1191 997.5889 L 248.6287 998.152 L 248.1191 997.5889 z " fill="#a0a5a8" id="path6893" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 267.4472 997.8704 L 267.4472 1005.48 L 267.4472 997.8704 z " fill="#c6ced6" id="path6894" stroke="none" style="fill:#c6ced6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 359.5068 998.4344 L 360.0164 998.9975 L 359.5068 998.4344 z " fill="#9d9c94" id="path6895" stroke="none" style="fill:#9d9c94;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 260.3259 999.2799 L 260.8357 999.843 L 260.3259 999.2799 z " fill="#4c5450" id="path6896" stroke="none" style="fill:#4c5450;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 374.7655 999.2799 L 375.2751 999.843 L 374.7655 999.2799 z " fill="#b5babd" id="path6897" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 207.9386 1001.252 L 210.9904 999.5614 L 207.9386 1001.252 z " fill="#c3c5c2" id="path6898" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 217.0939 999.5614 L 217.0939 1005.48 L 217.0939 999.5614 z " fill="#d7e4e5" id="path6899" stroke="none" style="fill:#d7e4e5;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 249.645 1000.125 L 250.1545 1000.688 L 249.645 1000.125 z " fill="#a8aeb0" id="path6900" stroke="none" style="fill:#a8aeb0;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 1001.252 L 290.3351 1008.016 L 290.3351 1001.252 z " fill="#91988e" id="path6901" stroke="none" style="fill:#91988e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 357.981 1001.816 L 358.4906 1002.38 L 357.981 1001.816 z " fill="#7a8686" id="path6902" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 372.7314 1001.252 L 372.7314 1003.789 L 372.7314 1001.252 z " fill="#a0a5a8" id="path6903" stroke="none" style="fill:#a0a5a8;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 212.5162 1002.098 L 214.0421 1002.943 L 212.5162 1002.098 z " fill="#959a9c" id="path6904" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 251.1708 1002.662 L 251.6805 1003.225 L 251.1708 1002.662 z " fill="#abbcb6" id="path6905" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 1002.098 L 268.973 1008.016 L 268.973 1002.098 z " fill="#333739" id="path6906" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 263.3777 1003.507 L 263.8872 1004.068 L 263.3777 1003.507 z " fill="#686c6f" id="path6907" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 1003.789 L 239.9816 1004.634 L 238.4558 1003.789 z " fill="#82928c" id="path6908" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 371.2056 1003.789 L 371.2056 1006.325 L 371.2056 1003.789 z " fill="#777c7e" id="path6909" stroke="none" style="fill:#777c7e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 252.6966 1005.201 L 253.2063 1005.759 L 252.6966 1005.201 z " fill="#b5babd" id="path6910" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 239.9816 1005.48 L 241.5076 1006.325 L 239.9816 1005.48 z " fill="#63736d" id="path6911" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 226.7571 1006.892 L 227.2666 1007.45 L 226.7571 1006.892 z " fill="#73837d" id="path6912" stroke="none" style="fill:#73837d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 229.0046 1006.867 L 231.1225 1007.475 L 229.0046 1006.867 z " fill="#cfdcdc" id="path6913" stroke="none" style="fill:#cfdcdc;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 232.8605 1006.892 L 233.37 1007.45 L 232.8605 1006.892 z " fill="#8a9697" id="path6914" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 241.5076 1006.325 L 243.0334 1007.171 L 241.5076 1006.325 z " fill="#82928c" id="path6915" stroke="none" style="fill:#82928c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 264.3955 1006.325 L 264.3955 1008.862 L 264.3955 1006.325 z " fill="#63686a" id="path6916" stroke="none" style="fill:#63686a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 214.0421 1007.171 L 215.5678 1008.016 L 214.0421 1007.171 z " fill="#8f9099" id="path6917" stroke="none" style="fill:#8f9099;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 243.0334 1007.171 L 243.0334 1010.553 L 243.0334 1007.171 z " fill="#d2dbd6" id="path6918" stroke="none" style="fill:#d2dbd6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 254.2226 1007.737 L 254.7322 1008.296 L 254.2226 1007.737 z " fill="#c3c5c2" id="path6919" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 354.9292 1007.737 L 355.4389 1008.296 L 354.9292 1007.737 z " fill="#45453d" id="path6920" stroke="none" style="fill:#45453d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 268.973 1008.016 L 267.4472 1013.935 L 268.973 1008.016 z " fill="#575f5b" id="path6921" stroke="none" style="fill:#575f5b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 290.3351 1008.016 L 290.3351 1011.399 L 290.3351 1008.016 z " fill="#484c4e" id="path6922" stroke="none" style="fill:#484c4e;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 370.1879 1008.583 L 370.6975 1009.141 L 370.1879 1008.583 z " fill="#a4a9ac" id="path6923" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 227.7748 1009.708 L 227.7748 1011.399 L 233.8783 1011.399 L 233.8783 1009.708 L 227.7748 1009.708 z " fill="#7a8686" id="path6924" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 234.3863 1010.274 L 234.8961 1010.832 L 234.3863 1010.274 z " fill="#33413c" id="path6925" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 266.4294 1010.274 L 266.9389 1010.832 L 266.4294 1010.274 z " fill="#394444" id="path6926" stroke="none" style="fill:#394444;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 353.4034 1010.274 L 353.9129 1010.832 L 353.4034 1010.274 z " fill="#686c6f" id="path6927" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 257.2743 1011.965 L 257.7839 1012.523 L 257.2743 1011.965 z " fill="#959a9c" id="path6928" stroke="none" style="fill:#959a9c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 1011.399 L 291.8609 1017.317 L 291.8609 1011.399 z " fill="#b5babd" id="path6929" stroke="none" style="fill:#b5babd;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 368.662 1011.965 L 369.1716 1012.523 L 368.662 1011.965 z " fill="#c8c5ca" id="path6930" stroke="none" style="fill:#c8c5ca;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 219.1277 1012.811 L 219.6374 1013.369 L 219.1277 1012.811 z " fill="#a19ea2" id="path6931" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 351.8775 1012.811 L 352.3872 1013.369 L 351.8775 1012.811 z " fill="#8a9697" id="path6932" stroke="none" style="fill:#8a9697;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.4898 1013.656 L 240.9994 1014.214 L 240.4898 1013.656 z " fill="#686c6f" id="path6933" stroke="none" style="fill:#686c6f;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 258.8 1014.502 L 259.3098 1015.06 L 258.8 1014.502 z " fill="#7a8686" id="path6934" stroke="none" style="fill:#7a8686;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 366.6279 1013.935 L 366.6279 1016.472 L 366.6279 1013.935 z " fill="#a19ea2" id="path6935" stroke="none" style="fill:#a19ea2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 220.1455 1014.781 L 220.1455 1017.317 L 220.1455 1014.781 z " fill="#74787b" id="path6936" stroke="none" style="fill:#74787b;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 240.4898 1015.347 L 240.9994 1015.905 L 240.4898 1015.347 z " fill="#c3c5c2" id="path6937" stroke="none" style="fill:#c3c5c2;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 349.8435 1015.626 L 349.8435 1018.163 L 349.8435 1015.626 z " fill="#63736d" id="path6938" stroke="none" style="fill:#63736d;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 238.4558 1016.472 L 238.4558 1024.081 L 238.4558 1016.472 z " fill="#a4a9ac" id="path6939" stroke="none" style="fill:#a4a9ac;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 260.3259 1017.884 L 260.8357 1018.442 L 260.3259 1017.884 z " fill="#abbcb6" id="path6940" stroke="none" style="fill:#abbcb6;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 291.8609 1017.317 L 291.8609 1021.545 L 291.8609 1017.317 z " fill="#333739" id="path6941" stroke="none" style="fill:#333739;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 348.8257 1019.575 L 349.3355 1020.133 L 348.8257 1019.575 z " fill="#33413c" id="path6942" stroke="none" style="fill:#33413c;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 221.6713 1019.854 L 221.6713 1024.081 L 221.6713 1019.854 z " fill="#342c31" id="path6943" stroke="none" style="fill:#342c31;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+ <path d="M 362.5585 1022.111 L 363.0682 1022.669 L 362.5585 1022.111 z " fill="#857f8a" id="path6944" stroke="none" style="fill:#857f8a;stroke:none;" transform="matrix(0.793800,0.000000,0.000000,0.793800,57.50731,131.7872)"/>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/cacuts_01.svg b/PerformanceTests/PageLoad/svg/files/cacuts_01.svg
new file mode 100644
index 000000000..83f2f85be
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/cacuts_01.svg
@@ -0,0 +1,1706 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
+"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") --><svg height="297mm" id="svg602" sodipodi:docbase="D:\Joshua's artwork\Sodipodi work\free clipart images" sodipodi:docname="D:\Joshua's artwork\Sodipodi work\free clipart images\cactus.svg" sodipodi:version="0.34" space="preserve" width="210mm" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+ <rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <cc:Work rdf:about="">
+ <dc:title>Cacuts</dc:title>
+ <dc:description></dc:description>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>desert</rdf:li>
+ <rdf:li></rdf:li>
+ <rdf:li>plant</rdf:li>
+ <rdf:li>weather</rdf:li>
+ <rdf:li>dry</rdf:li>
+ <rdf:li>sunset</rdf:li>
+ <rdf:li>cactus</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <dc:publisher>
+ <cc:Agent rdf:about="http://www.openclipart.org">
+ <dc:title>Joshua Warren</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Joshua Warren</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>Joshua Warren</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:date></dc:date>
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+ <dc:language>en</dc:language>
+ </cc:Work>
+ <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+ <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+ <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+ <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <defs id="defs604">
+ <linearGradient id="linearGradient666">
+ <stop id="stop667" offset="0" style="stop-color:#b6ec61;stop-opacity:1;"/>
+ <stop id="stop668" offset="1" style="stop-color:#6da829;stop-opacity:1;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient662">
+ <stop id="stop663" offset="0" style="stop-color:#6da829;stop-opacity:1;"/>
+ <stop id="stop664" offset="1" style="stop-color:#3d5b49;stop-opacity:1;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient657">
+ <stop id="stop658" offset="0" style="stop-color:#8a3f6f;stop-opacity:1;"/>
+ <stop id="stop659" offset="1" style="stop-color:#f6cc23;stop-opacity:1;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient612">
+ <stop id="stop613" offset="0" style="stop-color:#000;stop-opacity:1;"/>
+ <stop id="stop614" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
+ </linearGradient>
+ <radialGradient cx="0.6119507" cy="0.19930376" fx="0.6119507" fy="0.19930376" gradientTransform="matrix(1,-9.006801e-6,-1.612523e-8,1,2.0588e-7,1.058708e-8)" id="radialGradient615" r="0.76744807" spreadMethod="pad" xlink:href="#linearGradient657"/>
+ <linearGradient id="linearGradient656" x1="0.71875012" x2="0.37500012" xlink:href="#linearGradient657" y1="0.1171875" y2="0.953125"/>
+ <linearGradient id="linearGradient661" x1="1.29870987e-2" x2="0.59090918" xlink:href="#linearGradient662" y1="7.81274401e-3" y2="0.95312512"/>
+ <linearGradient id="linearGradient665" x1="0.29166648" x2="0.60416663" xlink:href="#linearGradient666" y1="0.10156244" y2="0.91406202"/>
+ <linearGradient id="linearGradient669" x1="9.09079164e-2" x2="0.40259734" xlink:href="#linearGradient666" y1="1.56212747e-2" y2="0.81249988"/>
+ <linearGradient id="linearGradient672" x1="1.08888936" x2="0.31111124" xlink:href="#linearGradient657" y1="5.46874963e-2" y2="0.80468726"/>
+ </defs>
+ <sodipodi:namedview id="base"/>
+ <path d="M 92.47861 983.4811 C 134.7889 985.3882 173.8434 978.2825 213.5231 963.6467 C 230.1834 957.5016 262.3758 941.4752 226.7852 933.7814 C 207.7668 929.67 275.5958 905.7188 277.345 904.9143 C 332.0743 879.7407 401.19 873.3859 448.8553 836.8973 C 474.0602 817.6024 405.1945 800.5452 437.0946 778.5715 C 455.822 765.6715 514.4518 749.8425 537.8186 743.3202 C 555.035 738.5145 619.6378 725.051 621.3149 704.7956 C 622.1698 694.4709 571.9722 695.8993 565.9041 695.4307 C 519.5159 691.8483 633.5741 663.2022 590.0346 658.2551 C 574.8117 656.5254 514.732 655.9414 565.5225 636.8289 C 595.1332 625.6865 673.0989 595.0064 671.796 557.6451 C 670.8805 531.392 606.6667 549.7538 628.9909 504.5458 C 646.7731 468.5354 674.162 439.3423 696.4051 406.4385 C 717.4079 375.3699 696.7788 367.6392 670.4457 362.4631 C 637.5558 355.9981 678.6593 286.3703 684.9987 272.2561 C 703.2427 231.6378 677.7383 230.8813 647.7036 238.5273 C 624.9923 244.309 571.8718 256.2299 597.9183 215.2816 C 616.1001 186.6976 642.9759 161.323 664.8004 135.4709 C 677.5921 120.3186 726.6228 73.45987 721.2863 53.95197 C 718.4177 43.46587 694.0515 68.00847 680.0448 79.60787 C 633.8744 117.8409 586.2537 153.9471 536.6084 187.6637 C 510.7175 205.2475 539.7221 155.2961 542.2901 149.0908 C 546.3106 139.3756 555.6227 110.9887 535.0634 127.7657 C 511.2137 147.228 481.6415 182.4684 451.5793 189.8821 C 439.8252 192.7808 455.9061 167.4296 465.7148 155.0552 C 474.5417 143.9194 514.1964 105.0621 500.0009 91.19467 C 493.6987 85.03827 459.8532 122.371 455.6233 126.928 C 422.8861 162.1963 390.5668 198.0334 351.012 225.9236 C 346.8945 228.8268 350.3233 208.9667 350.5055 208.4913 C 359.2613 185.6499 400.7551 164.0788 400.245 142.7201 C 400.0126 132.9853 365.028 154.7981 357.4056 160.0102 C 280.7702 212.4121 217.1307 284.6417 154.3693 352.3637 C 141.5693 366.1754 99.31763 409.4397 137.9743 414.2083 C 168.3584 417.9565 173.4805 419.2005 154.4378 451.1918 C 129.3767 493.2942 70.24131 557.4076 76.32791 608.7361 C 79.09661 632.0862 135.6993 594.7636 142.9329 591.0692 C 156.5352 584.1219 210.587 551.5075 220.6264 570.8711 C 226.0232 581.2801 188.3494 621.3252 181.3602 628.832 C 175.428 635.2036 148.2586 675.1344 144.3386 652.3547 C 143.0364 644.7867 140.0151 638.7189 137.7559 631.6071 C 134.779 622.2364 144.7778 608.8062 125.3313 618.5718 C 102.1817 630.1968 46.32952 676.8512 52.11692 706.2249 C 53.73382 714.4314 98.09763 699.2481 106.0311 700.3838 C 120.5986 702.4692 86.06211 734.1482 84.56081 735.7058 C 72.09231 748.6415 25.47733 800.1124 72.25391 792.7489 C 95.03331 789.1629 170.6192 762.3846 171.7557 804.0481 C 172.1283 817.7086 121.164 849.738 111.0937 857.7476 C 90.90651 873.8038 62.96542 905.6636 44.63952 925.184 C 14.79273 956.9759 22.30983 972.2802 61.89962 954.9162 C 75.10201 949.1257 120.9725 928.2473 131.5635 936.6828 C 140.522 943.8181 105.1009 958.0443 100.4059 967.1072 C 97.33663 973.0322 98.25263 976.5874 92.47861 983.4811 z " id="path671" style="fill:url(#linearGradient656);fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 423.9675 981.2895 C 423.9675 981.2895 395.3055 808.7325 384.2101 776.7135 C 373.1146 744.6935 298.155 886.4735 111.2644 641.2355 C -18.20133 434.2812 34.89976 402.23 113.9995 415.3355 C 224.9658 431.482 443.9569 859.3515 271.8219 463.7325 C 99.68696 68.11363 305.7788 64.84063 305.7788 64.84063 C 336.8841 67.23323 551.6731 60.85223 548.7561 575.1178 C 545.839 1089.384 621.8738 726.2695 621.8738 726.2695 C 629.5417 675.6455 668.4174 667.6105 668.7835 781.6665 C 669.1495 895.7215 598.5896 931.5105 598.5896 931.5105 C 598.5896 931.5105 555.304 941.7815 545.6409 902.5445 C 535.9777 940.3095 532.0746 953.1515 530.896 980.7125 " id="path605" sodipodi:nodetypes="cccccccccccc" style="font-size:12;fill:#6da829;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:0;"/>
+ <path d="M 314.2557 70.70988 C 314.2557 70.70988 249.8778 81.69354 348.341 206.3801 C 446.8043 331.0669 535.4222 661.7913 528.2122 769.6469 C 521.0023 877.5026 631.0656 111.634 314.2557 70.70988 z " id="path607" style="fill:url(#linearGradient665);fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 77.51476 489.8238 C 132.7058 537.254 170.7031 484.9522 267.8727 602.0671 C 222.6304 515.7811 117.2931 379.9255 63.06925 442.6594 L 63.06925 442.6594 L 63.06925 442.6594 L 63.06925 442.6594 C 51.75061 462.467 63.84616 474.7925 77.51476 489.8238 L 77.51476 489.8238 z " id="path608" sodipodi:nodetypes="ccccccc" style="font-size:12;fill:url(#linearGradient669);fill-rule:evenodd;stroke:none;stroke-width:5;fill-opacity:1;"/>
+ <path d="M 680.2968 161.3067 A 85.37054 85.37056 0 1 0 509.5557 161.3067 A 85.37054 85.37056 0 1 0 680.2968 161.3067 z" id="path616" sodipodi:cx="594.926208" sodipodi:cy="161.306732" sodipodi:rx="85.3705444" sodipodi:ry="85.3705597" sodipodi:type="arc" style="fill:#ffe40f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:2.8396;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:5.679195,2.839597;stroke-dashoffset:0;" transform="matrix(0.856049,0.359071,-0.580396,0.662009,-251.1592,540.8679)"/>
+ <path d="M 291.8235 773.4587 C 275.691 768.9426 129.2896 730.6572 55.07642 485.8648 C 189.8688 635.9021 139.6555 674.7869 377.9925 758.9541 L 321.1576 777.1254 L 291.8235 773.4587 L 291.8235 773.4587 z " id="path660" sodipodi:nodetypes="ccccc" style="font-size:12;fill:url(#linearGradient661);fill-rule:evenodd;stroke:none;stroke-width:5;fill-opacity:1;"/>
+ <g id="g1862" transform="matrix(-0.319544,0.421892,0.421892,0.319545,122.3747,283.4244)">
+ <g id="g1863" transform="matrix(0.97201,0.234938,-0.234938,0.97201,78.0731,-33.11635)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path1864" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.99999;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path1865" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path1866" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path1867" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999988;"/>
+ </g>
+ <path d="M 354.318 105.7091 C 387.7605 50.1823 387.3061 55.96209 388.2021 51.9617 " id="path1868" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path1869" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path1870" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 459.3614 222.3596 C 510.7349 182.8325 508.2061 188.0495 510.4979 184.6505 " id="path1871" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path1872" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path1873" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path1874" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path1875" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999997;"/>
+ <g id="g1876" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path1877" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.99999;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path1878" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path1879" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path1880" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999988;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path1881" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path1882" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path1883" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path1884" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033156;"/>
+ <path d="M 256.9524 423.0245 C 218.9723 451.3258 224.4619 451.6601 220.9575 452.0591 " id="path1885" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999987;"/>
+ <path d="M 283.7704 481.985 C 250.1142 514.6896 255.2769 514.6665 252.0226 515.3321 " id="path1886" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999985;"/>
+ <path d="M 256.9535 389.7257 C 214.4753 410.6793 219.8135 412.0024 216.2948 411.76 " id="path1887" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999986;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path1888" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;" transform="matrix(0.918935,-0.394407,0.394407,0.918935,33.60582,314.4687)"/>
+ <path d="M 312.6333 493.5005 C 283.2116 532.0441 287.8601 531.6663 284.9475 532.626 " id="path1889" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999985;"/>
+ <path d="M 338.0605 559.9982 C 316.1721 606.8302 320.3489 605.5716 317.8228 607.1375 " id="path1890" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999984;"/>
+ <path d="M 317.1688 538.8559 C 287.7471 577.3995 292.3956 577.0217 289.483 577.9814 " id="path1891" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999985;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path1892" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path1893" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path1894" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path1895" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path1896" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path1897" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path1898" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path1899" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 288.6406 388.4888 C 295.4648 384.508 300.833 381.1367 306.8893 376.3581 " id="path1900" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0904 422.1635 C 314.6907 419.2833 318.291 416.4031 321.8913 413.5229 " id="path1901" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.1438 471.8739 C 342.6313 460.6426 339.5349 465.0799 344.245 458.4325 " id="path1902" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 352.783 502.3415 L 359.1972 487.9094 " id="path1903" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 414.1457 C 268.3407 429.4008 258.1687 444.9663 248.3967 460.7514 " id="path1904" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 351.6069 C 252.3833 361.2722 243.0274 369.0727 233.3264 382.5513 " id="path1905" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path1906" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path1907" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path1908" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path1909" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path1910" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 293.4513 90.22679 C 295.8195 77.20128 296.8339 64.46912 298.7369 51.41537 " id="path1911" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path1912" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path1913" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path1914" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path1915" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path1916" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 484.2748 239.3578 C 497.4339 235.41 507.5489 229.3035 519.1464 221.9381 " id="path1917" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 258.6005 C 510.7534 256.9933 519.887 255.5658 528.6389 253.4735 " id="path1918" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 290.6717 C 516.8765 286.183 534.8914 284.5723 548.5603 277.1862 " id="path1919" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 506.7246 311.518 C 518.9159 308.1931 530.1498 305.159 542.7402 303.9896 " id="path1920" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 516.346 341.9856 C 526.1293 343.9422 534.6453 343.8982 544.6292 343.7545 " id="path1921" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path1922" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path1923" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path1924" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path1925" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path1926" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path1927" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path1928" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path1929" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path1930" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path1931" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 468.2392 290.6717 C 478.4579 291.6936 488.6682 292.6891 498.8863 293.7304 " id="path1932" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 311.518 C 469.1344 316.234 484.7432 318.0874 500.5717 320.4532 " id="path1933" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 493.8961 345.1927 C 508.3195 348.7985 520.2991 353.3377 533.4485 360.4014 " id="path1934" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 378.8675 C 513.5459 384.236 525.5319 388.0027 537.2107 393.2151 " id="path1935" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 519.5531 418.9564 C 527.7314 425.0901 536.5035 430.3855 544.45 436.7762 " id="path1936" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path1937" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path1938" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path1939" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path1940" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path1941" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path1942" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path1943" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6001 369.2461 C 457.286 368.0304 463.9055 366.6512 470.6392 365.7809 " id="path1944" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 460.2214 409.3351 C 466.085 409.8681 471.7992 410.3568 477.6556 410.6318 " id="path1945" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4107 455.8382 C 462.2055 456.456 470.1028 456.3363 476.811 458.0008 " id="path1946" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 487.9094 C 486.7974 491.0715 482.8309 490.1457 487.9987 491.2925 " id="path1947" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 481.0677 532.8091 C 484.3954 533.4746 487.723 534.1402 491.0507 534.8057 " id="path1948" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 515.17 C 368.8186 527.604 369.26 522.6802 368.3911 529.9945 " id="path1949" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0613 542.4304 C 386.9426 546.5321 385.824 550.6337 384.7054 554.7353 " id="path1950" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 415.3218 568.0874 L 431.3573 566.4838 " id="path1951" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 532.3816 447.8205 C 542.5761 451.2186 551.4635 454.2225 560.9528 459.217 " id="path1952" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 533.9851 407.7315 C 543.8807 410.7002 552.397 413.6434 561.5076 418.5785 " id="path1953" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 535.5887 377.2638 C 547.6982 380.5665 553.2518 382.7993 563.4183 389.4043 " id="path1954" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2926 436.5955 C 500.5131 439.0617 509.6925 442.7425 518.1572 444.3084 " id="path1955" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 388.4888 C 489.0938 392.7677 500.2559 397.7014 512.5335 403.1534 " id="path1956" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 466.6356 345.1927 C 480.473 353.4951 494.0524 361.8943 508.397 369.3097 " id="path1957" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 475.081 C 520.371 477.9738 526.8079 480.664 534.5566 481.1236 " id="path1958" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 517.9495 513.5664 C 525.1414 515.5278 530.3445 516.7595 536.6519 520.089 " id="path1959" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 552.0518 C 518.9735 555.7648 524.357 559.151 529.7018 563.4069 " id="path1960" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 500.3104 576.1052 C 511.39 583.1559 507.8374 579.925 512.2528 584.1619 " id="path1961" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 606.5728 L 492.2926 608.1764 " id="path1962" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.736 604.9693 L 432.9609 596.9515 " id="path1963" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path1964" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path1965" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path1966" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path1967" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path1968" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 333.5404 374.0565 C 326.9256 382.1412 323.5521 386.6726 319.2012 395.111 " id="path1969" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 296.6585 404.5241 C 289.6358 419.7398 284.9433 433.8324 279.3809 449.4974 " id="path1970" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 275.8122 367.6423 C 268.5082 381.033 262.2771 394.4766 256.6767 408.6848 " id="path1971" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0906 439.8024 C 302.5136 455.5268 296.945 472.5001 289.1007 488.5791 " id="path1972" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3333 492.7199 C 325.5204 503.308 320.3487 513.6807 315.544 524.27 " id="path1973" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 338.3511 527.9982 C 333.1558 539.4278 327.4735 550.6734 322.7422 562.2989 " id="path1974" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.008 566.4836 C 356.3116 575.8904 349.7702 583.7253 345.0481 594.9904 " id="path1975" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 375.2329 600.1584 C 371.7217 607.1808 367.8754 614.0809 365.0365 621.4143 " id="path1976" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.6828 640.2474 C 395.248 653.6385 396.5269 648.508 394.5726 655.802 " id="path1977" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path1978" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7653 415.749 C 338.1788 424.8054 333.5497 434.865 327.3536 444.2034 " id="path1979" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path1980" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path1981" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path1982" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path1983" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path1984" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path1985" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path1986" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path1987" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path1988" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 358.0209 C 359.6831 364.8243 357.5511 370.2507 354.2509 376.4651 " id="path1989" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 373.6294 386.885 C 371.4637 392.2992 369.518 398.2229 367.0111 403.5408 " id="path1990" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 372.0258 434.9917 C 365.5062 445.8577 363.0615 451.3253 360.6382 463.1964 " id="path1991" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 354.3867 422.1633 C 351.1657 436.121 349.7306 451.8093 344.4227 465.2386 " id="path1992" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 462.2522 C 384.6415 471.6571 381.3257 477.3489 377.3463 485.7157 " id="path1993" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 408.9077 492.7199 C 407.2789 495.2795 405.65 497.8391 404.0212 500.3986 " id="path1994" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path1995" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path1996" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path1997" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 402.4934 393.2992 C 410.575 394.5425 418.1163 395.1826 426.1258 396.0621 " id="path1998" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0792 415.749 C 405.1828 420.3008 407.163 420.4481 413.2478 426.3158 " id="path1999" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 370.8493 C 392.403 373.0005 388.3109 372.4746 393.8177 373.102 " id="path2000" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 424.9433 436.5953 C 422.4601 442.0584 420.477 447.2819 417.1263 452.1656 " id="path2001" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 434.5646 475.0807 C 432.9982 479.3885 431.4923 483.0885 430.5442 487.4384 " id="path2002" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 426.974 C 386.19 428.6259 390.584 430.0129 394.8503 432.197 " id="path2003" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 426.5469 505.5484 C 424.5707 510.9829 423.0361 516.5611 420.9488 521.9487 " id="path2004" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4109 529.6018 C 455.4109 535.7175 455.4109 541.8332 455.4109 547.9489 " id="path2005" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 440.9789 417.3526 C 447.1425 419.5939 453.3165 421.7199 459.4989 423.8956 " id="path2006" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path2007" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 437.7718 391.6956 C 448.0694 394.5041 444.3132 392.9919 449.4035 395.198 " id="path2008" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path2009" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path2010" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 448.9967 487.9092 C 454.2185 491.5645 459.5171 495.1142 464.6415 498.9051 " id="path2011" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 423.3397 540.8267 C 420.4781 544.0062 417.6166 547.1858 414.755 550.3653 " id="path2012" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 391.2685 577.7086 C 389.8154 580.9055 388.3622 584.1024 386.9091 587.2994 " id="path2013" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 471.4465 569.6908 C 476.9238 577.5153 474.57 574.6588 478.0034 578.6522 " id="path2014" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6002 625.8153 C 462.3311 631.6807 458.4903 628.913 463.1655 632.4353 " id="path2015" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.7362 665.9043 C 424.9371 667.0683 428.1381 668.2323 431.339 669.3963 " id="path2016" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2928 653.0758 C 491.1649 654.4544 490.037 655.8329 488.9091 657.2115 " id="path2017" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path2018" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path2019" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path2020" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path2021" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path2022" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path2023" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999997;"/>
+ <g id="g2024" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path2025" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.99999;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2026" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path2027" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path2028" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999988;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path2029" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path2030" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path2031" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path2032" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033156;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path2033" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path2034" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path2035" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path2036" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path2037" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path2038" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path2039" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path2040" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path2041" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path2042" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path2043" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path2044" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path2045" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path2046" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path2047" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path2048" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path2049" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path2050" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path2051" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path2052" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path2053" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path2054" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path2055" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path2056" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path2057" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path2058" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path2059" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path2060" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path2061" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path2062" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path2063" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path2064" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path2065" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path2066" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path2067" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path2068" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path2069" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path2070" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path2071" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path2072" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path2073" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path2074" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path2075" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path2076" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path2077" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path2078" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path2079" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path2080" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path2081" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path2082" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path2083" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path2084" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path2085" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path2086" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path2087" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path2088" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ </g>
+ <g id="g2089" transform="matrix(-0.210452,5.396925e-2,3.416208e-2,0.332468,710.4256,652.429)">
+ <g id="g2090" transform="matrix(0.97201,0.234938,-0.234938,0.97201,78.0731,-33.11635)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path2091" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.99999;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2092" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path2093" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path2094" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999988;"/>
+ </g>
+ <path d="M 354.318 105.7091 C 387.7605 50.1823 387.3061 55.96209 388.2021 51.9617 " id="path2095" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path2096" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path2097" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 459.3614 222.3596 C 510.7349 182.8325 508.2061 188.0495 510.4979 184.6505 " id="path2098" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path2099" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path2100" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path2101" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path2102" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999997;"/>
+ <g id="g2103" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path2104" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.99999;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2105" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path2106" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path2107" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999988;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path2108" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path2109" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path2110" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path2111" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033156;"/>
+ <path d="M 256.9524 423.0245 C 218.9723 451.3258 224.4619 451.6601 220.9575 452.0591 " id="path2112" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999987;"/>
+ <path d="M 283.7704 481.985 C 250.1142 514.6896 255.2769 514.6665 252.0226 515.3321 " id="path2113" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999985;"/>
+ <path d="M 256.9535 389.7257 C 214.4753 410.6793 219.8135 412.0024 216.2948 411.76 " id="path2114" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999986;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2115" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;" transform="matrix(0.918935,-0.394407,0.394407,0.918935,33.60582,314.4687)"/>
+ <path d="M 312.6333 493.5005 C 283.2116 532.0441 287.8601 531.6663 284.9475 532.626 " id="path2116" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999985;"/>
+ <path d="M 338.0605 559.9982 C 316.1721 606.8302 320.3489 605.5716 317.8228 607.1375 " id="path2117" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999984;"/>
+ <path d="M 317.1688 538.8559 C 287.7471 577.3995 292.3956 577.0217 289.483 577.9814 " id="path2118" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999985;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path2119" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path2120" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path2121" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path2122" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path2123" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path2124" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path2125" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path2126" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 288.6406 388.4888 C 295.4648 384.508 300.833 381.1367 306.8893 376.3581 " id="path2127" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0904 422.1635 C 314.6907 419.2833 318.291 416.4031 321.8913 413.5229 " id="path2128" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.1438 471.8739 C 342.6313 460.6426 339.5349 465.0799 344.245 458.4325 " id="path2129" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 352.783 502.3415 L 359.1972 487.9094 " id="path2130" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 414.1457 C 268.3407 429.4008 258.1687 444.9663 248.3967 460.7514 " id="path2131" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 351.6069 C 252.3833 361.2722 243.0274 369.0727 233.3264 382.5513 " id="path2132" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path2133" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path2134" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path2135" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path2136" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path2137" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 293.4513 90.22679 C 295.8195 77.20128 296.8339 64.46912 298.7369 51.41537 " id="path2138" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path2139" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path2140" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path2141" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path2142" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path2143" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 484.2748 239.3578 C 497.4339 235.41 507.5489 229.3035 519.1464 221.9381 " id="path2144" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 258.6005 C 510.7534 256.9933 519.887 255.5658 528.6389 253.4735 " id="path2145" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 290.6717 C 516.8765 286.183 534.8914 284.5723 548.5603 277.1862 " id="path2146" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 506.7246 311.518 C 518.9159 308.1931 530.1498 305.159 542.7402 303.9896 " id="path2147" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 516.346 341.9856 C 526.1293 343.9422 534.6453 343.8982 544.6292 343.7545 " id="path2148" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path2149" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path2150" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path2151" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path2152" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path2153" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path2154" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path2155" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path2156" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path2157" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path2158" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 468.2392 290.6717 C 478.4579 291.6936 488.6682 292.6891 498.8863 293.7304 " id="path2159" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 311.518 C 469.1344 316.234 484.7432 318.0874 500.5717 320.4532 " id="path2160" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 493.8961 345.1927 C 508.3195 348.7985 520.2991 353.3377 533.4485 360.4014 " id="path2161" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 378.8675 C 513.5459 384.236 525.5319 388.0027 537.2107 393.2151 " id="path2162" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 519.5531 418.9564 C 527.7314 425.0901 536.5035 430.3855 544.45 436.7762 " id="path2163" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path2164" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path2165" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path2166" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path2167" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path2168" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path2169" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path2170" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6001 369.2461 C 457.286 368.0304 463.9055 366.6512 470.6392 365.7809 " id="path2171" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 460.2214 409.3351 C 466.085 409.8681 471.7992 410.3568 477.6556 410.6318 " id="path2172" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4107 455.8382 C 462.2055 456.456 470.1028 456.3363 476.811 458.0008 " id="path2173" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 487.9094 C 486.7974 491.0715 482.8309 490.1457 487.9987 491.2925 " id="path2174" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 481.0677 532.8091 C 484.3954 533.4746 487.723 534.1402 491.0507 534.8057 " id="path2175" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 515.17 C 368.8186 527.604 369.26 522.6802 368.3911 529.9945 " id="path2176" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0613 542.4304 C 386.9426 546.5321 385.824 550.6337 384.7054 554.7353 " id="path2177" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 415.3218 568.0874 L 431.3573 566.4838 " id="path2178" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 532.3816 447.8205 C 542.5761 451.2186 551.4635 454.2225 560.9528 459.217 " id="path2179" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 533.9851 407.7315 C 543.8807 410.7002 552.397 413.6434 561.5076 418.5785 " id="path2180" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 535.5887 377.2638 C 547.6982 380.5665 553.2518 382.7993 563.4183 389.4043 " id="path2181" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2926 436.5955 C 500.5131 439.0617 509.6925 442.7425 518.1572 444.3084 " id="path2182" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 388.4888 C 489.0938 392.7677 500.2559 397.7014 512.5335 403.1534 " id="path2183" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 466.6356 345.1927 C 480.473 353.4951 494.0524 361.8943 508.397 369.3097 " id="path2184" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 475.081 C 520.371 477.9738 526.8079 480.664 534.5566 481.1236 " id="path2185" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 517.9495 513.5664 C 525.1414 515.5278 530.3445 516.7595 536.6519 520.089 " id="path2186" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 552.0518 C 518.9735 555.7648 524.357 559.151 529.7018 563.4069 " id="path2187" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 500.3104 576.1052 C 511.39 583.1559 507.8374 579.925 512.2528 584.1619 " id="path2188" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 606.5728 L 492.2926 608.1764 " id="path2189" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.736 604.9693 L 432.9609 596.9515 " id="path2190" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path2191" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path2192" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path2193" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path2194" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path2195" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 333.5404 374.0565 C 326.9256 382.1412 323.5521 386.6726 319.2012 395.111 " id="path2196" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 296.6585 404.5241 C 289.6358 419.7398 284.9433 433.8324 279.3809 449.4974 " id="path2197" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 275.8122 367.6423 C 268.5082 381.033 262.2771 394.4766 256.6767 408.6848 " id="path2198" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0906 439.8024 C 302.5136 455.5268 296.945 472.5001 289.1007 488.5791 " id="path2199" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3333 492.7199 C 325.5204 503.308 320.3487 513.6807 315.544 524.27 " id="path2200" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 338.3511 527.9982 C 333.1558 539.4278 327.4735 550.6734 322.7422 562.2989 " id="path2201" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.008 566.4836 C 356.3116 575.8904 349.7702 583.7253 345.0481 594.9904 " id="path2202" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 375.2329 600.1584 C 371.7217 607.1808 367.8754 614.0809 365.0365 621.4143 " id="path2203" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.6828 640.2474 C 395.248 653.6385 396.5269 648.508 394.5726 655.802 " id="path2204" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path2205" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7653 415.749 C 338.1788 424.8054 333.5497 434.865 327.3536 444.2034 " id="path2206" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path2207" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path2208" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path2209" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path2210" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path2211" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path2212" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path2213" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path2214" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path2215" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 358.0209 C 359.6831 364.8243 357.5511 370.2507 354.2509 376.4651 " id="path2216" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 373.6294 386.885 C 371.4637 392.2992 369.518 398.2229 367.0111 403.5408 " id="path2217" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 372.0258 434.9917 C 365.5062 445.8577 363.0615 451.3253 360.6382 463.1964 " id="path2218" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 354.3867 422.1633 C 351.1657 436.121 349.7306 451.8093 344.4227 465.2386 " id="path2219" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 462.2522 C 384.6415 471.6571 381.3257 477.3489 377.3463 485.7157 " id="path2220" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 408.9077 492.7199 C 407.2789 495.2795 405.65 497.8391 404.0212 500.3986 " id="path2221" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path2222" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path2223" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path2224" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 402.4934 393.2992 C 410.575 394.5425 418.1163 395.1826 426.1258 396.0621 " id="path2225" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0792 415.749 C 405.1828 420.3008 407.163 420.4481 413.2478 426.3158 " id="path2226" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 370.8493 C 392.403 373.0005 388.3109 372.4746 393.8177 373.102 " id="path2227" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 424.9433 436.5953 C 422.4601 442.0584 420.477 447.2819 417.1263 452.1656 " id="path2228" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 434.5646 475.0807 C 432.9982 479.3885 431.4923 483.0885 430.5442 487.4384 " id="path2229" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 426.974 C 386.19 428.6259 390.584 430.0129 394.8503 432.197 " id="path2230" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 426.5469 505.5484 C 424.5707 510.9829 423.0361 516.5611 420.9488 521.9487 " id="path2231" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4109 529.6018 C 455.4109 535.7175 455.4109 541.8332 455.4109 547.9489 " id="path2232" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 440.9789 417.3526 C 447.1425 419.5939 453.3165 421.7199 459.4989 423.8956 " id="path2233" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path2234" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 437.7718 391.6956 C 448.0694 394.5041 444.3132 392.9919 449.4035 395.198 " id="path2235" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path2236" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path2237" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 448.9967 487.9092 C 454.2185 491.5645 459.5171 495.1142 464.6415 498.9051 " id="path2238" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 423.3397 540.8267 C 420.4781 544.0062 417.6166 547.1858 414.755 550.3653 " id="path2239" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 391.2685 577.7086 C 389.8154 580.9055 388.3622 584.1024 386.9091 587.2994 " id="path2240" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 471.4465 569.6908 C 476.9238 577.5153 474.57 574.6588 478.0034 578.6522 " id="path2241" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6002 625.8153 C 462.3311 631.6807 458.4903 628.913 463.1655 632.4353 " id="path2242" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.7362 665.9043 C 424.9371 667.0683 428.1381 668.2323 431.339 669.3963 " id="path2243" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2928 653.0758 C 491.1649 654.4544 490.037 655.8329 488.9091 657.2115 " id="path2244" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path2245" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path2246" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path2247" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path2248" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path2249" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path2250" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999997;"/>
+ <g id="g2251" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path2252" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.99999;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2253" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path2254" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path2255" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999988;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path2256" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path2257" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path2258" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path2259" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033156;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path2260" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path2261" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path2262" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path2263" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path2264" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path2265" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path2266" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path2267" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path2268" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path2269" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path2270" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path2271" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path2272" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path2273" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path2274" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path2275" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path2276" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path2277" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path2278" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path2279" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path2280" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path2281" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path2282" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path2283" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path2284" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path2285" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path2286" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path2287" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path2288" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path2289" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path2290" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path2291" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path2292" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path2293" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path2294" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path2295" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path2296" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path2297" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path2298" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path2299" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path2300" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path2301" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path2302" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path2303" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path2304" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path2305" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path2306" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path2307" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path2308" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path2309" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path2310" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path2311" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path2312" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path2313" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path2314" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path2315" style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ </g>
+ <g id="g2316" style="fill:none;fill-opacity:1;stroke:#8c6500;stroke-opacity:1;" transform="matrix(-0.319544,0.421892,0.421892,0.319545,117.0733,278.1229)">
+ <g id="g2317" style="fill:none;fill-opacity:1;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,78.0731,-33.11635)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path2318" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2319" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path2320" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path2321" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;fill-opacity:1;stroke-opacity:1;"/>
+ </g>
+ <path d="M 354.318 105.7091 C 387.7605 50.1823 387.3061 55.96209 388.2021 51.9617 " id="path2322" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:5;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path2323" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path2324" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 459.3614 222.3596 C 510.7349 182.8325 508.2061 188.0495 510.4979 184.6505 " id="path2325" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path2326" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path2327" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path2328" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path2329" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999997;fill-opacity:1;stroke-opacity:1;"/>
+ <g id="g2330" style="fill:none;fill-opacity:1;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path2331" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2332" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path2333" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path2334" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;fill-opacity:1;stroke-opacity:1;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path2335" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path2336" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path2337" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path2338" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033156;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 256.9524 423.0245 C 218.9723 451.3258 224.4619 451.6601 220.9575 452.0591 " id="path2339" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999987;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 283.7704 481.985 C 250.1142 514.6896 255.2769 514.6665 252.0226 515.3321 " id="path2340" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 256.9535 389.7257 C 214.4753 410.6793 219.8135 412.0024 216.2948 411.76 " id="path2341" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999986;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2342" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;" transform="matrix(0.918935,-0.394407,0.394407,0.918935,33.60582,314.4687)"/>
+ <path d="M 312.6333 493.5005 C 283.2116 532.0441 287.8601 531.6663 284.9475 532.626 " id="path2343" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 338.0605 559.9982 C 316.1721 606.8302 320.3489 605.5716 317.8228 607.1375 " id="path2344" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999984;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 317.1688 538.8559 C 287.7471 577.3995 292.3956 577.0217 289.483 577.9814 " id="path2345" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path2346" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path2347" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path2348" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path2349" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path2350" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path2351" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path2352" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path2353" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 288.6406 388.4888 C 295.4648 384.508 300.833 381.1367 306.8893 376.3581 " id="path2354" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0904 422.1635 C 314.6907 419.2833 318.291 416.4031 321.8913 413.5229 " id="path2355" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.1438 471.8739 C 342.6313 460.6426 339.5349 465.0799 344.245 458.4325 " id="path2356" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 352.783 502.3415 L 359.1972 487.9094 " id="path2357" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 414.1457 C 268.3407 429.4008 258.1687 444.9663 248.3967 460.7514 " id="path2358" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 351.6069 C 252.3833 361.2722 243.0274 369.0727 233.3264 382.5513 " id="path2359" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path2360" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path2361" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path2362" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path2363" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path2364" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 293.4513 90.22679 C 295.8195 77.20128 296.8339 64.46912 298.7369 51.41537 " id="path2365" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path2366" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path2367" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path2368" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path2369" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path2370" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 484.2748 239.3578 C 497.4339 235.41 507.5489 229.3035 519.1464 221.9381 " id="path2371" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 258.6005 C 510.7534 256.9933 519.887 255.5658 528.6389 253.4735 " id="path2372" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 290.6717 C 516.8765 286.183 534.8914 284.5723 548.5603 277.1862 " id="path2373" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 506.7246 311.518 C 518.9159 308.1931 530.1498 305.159 542.7402 303.9896 " id="path2374" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 516.346 341.9856 C 526.1293 343.9422 534.6453 343.8982 544.6292 343.7545 " id="path2375" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path2376" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path2377" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path2378" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path2379" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path2380" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path2381" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path2382" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path2383" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path2384" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path2385" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 468.2392 290.6717 C 478.4579 291.6936 488.6682 292.6891 498.8863 293.7304 " id="path2386" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 311.518 C 469.1344 316.234 484.7432 318.0874 500.5717 320.4532 " id="path2387" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 493.8961 345.1927 C 508.3195 348.7985 520.2991 353.3377 533.4485 360.4014 " id="path2388" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 378.8675 C 513.5459 384.236 525.5319 388.0027 537.2107 393.2151 " id="path2389" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 519.5531 418.9564 C 527.7314 425.0901 536.5035 430.3855 544.45 436.7762 " id="path2390" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path2391" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path2392" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path2393" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path2394" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path2395" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path2396" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path2397" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6001 369.2461 C 457.286 368.0304 463.9055 366.6512 470.6392 365.7809 " id="path2398" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 460.2214 409.3351 C 466.085 409.8681 471.7992 410.3568 477.6556 410.6318 " id="path2399" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4107 455.8382 C 462.2055 456.456 470.1028 456.3363 476.811 458.0008 " id="path2400" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 487.9094 C 486.7974 491.0715 482.8309 490.1457 487.9987 491.2925 " id="path2401" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 481.0677 532.8091 C 484.3954 533.4746 487.723 534.1402 491.0507 534.8057 " id="path2402" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 515.17 C 368.8186 527.604 369.26 522.6802 368.3911 529.9945 " id="path2403" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0613 542.4304 C 386.9426 546.5321 385.824 550.6337 384.7054 554.7353 " id="path2404" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 415.3218 568.0874 L 431.3573 566.4838 " id="path2405" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 532.3816 447.8205 C 542.5761 451.2186 551.4635 454.2225 560.9528 459.217 " id="path2406" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 533.9851 407.7315 C 543.8807 410.7002 552.397 413.6434 561.5076 418.5785 " id="path2407" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 535.5887 377.2638 C 547.6982 380.5665 553.2518 382.7993 563.4183 389.4043 " id="path2408" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2926 436.5955 C 500.5131 439.0617 509.6925 442.7425 518.1572 444.3084 " id="path2409" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 388.4888 C 489.0938 392.7677 500.2559 397.7014 512.5335 403.1534 " id="path2410" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 466.6356 345.1927 C 480.473 353.4951 494.0524 361.8943 508.397 369.3097 " id="path2411" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 475.081 C 520.371 477.9738 526.8079 480.664 534.5566 481.1236 " id="path2412" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 517.9495 513.5664 C 525.1414 515.5278 530.3445 516.7595 536.6519 520.089 " id="path2413" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 552.0518 C 518.9735 555.7648 524.357 559.151 529.7018 563.4069 " id="path2414" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 500.3104 576.1052 C 511.39 583.1559 507.8374 579.925 512.2528 584.1619 " id="path2415" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 606.5728 L 492.2926 608.1764 " id="path2416" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.736 604.9693 L 432.9609 596.9515 " id="path2417" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path2418" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path2419" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path2420" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path2421" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path2422" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 333.5404 374.0565 C 326.9256 382.1412 323.5521 386.6726 319.2012 395.111 " id="path2423" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 296.6585 404.5241 C 289.6358 419.7398 284.9433 433.8324 279.3809 449.4974 " id="path2424" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 275.8122 367.6423 C 268.5082 381.033 262.2771 394.4766 256.6767 408.6848 " id="path2425" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0906 439.8024 C 302.5136 455.5268 296.945 472.5001 289.1007 488.5791 " id="path2426" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3333 492.7199 C 325.5204 503.308 320.3487 513.6807 315.544 524.27 " id="path2427" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 338.3511 527.9982 C 333.1558 539.4278 327.4735 550.6734 322.7422 562.2989 " id="path2428" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.008 566.4836 C 356.3116 575.8904 349.7702 583.7253 345.0481 594.9904 " id="path2429" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 375.2329 600.1584 C 371.7217 607.1808 367.8754 614.0809 365.0365 621.4143 " id="path2430" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.6828 640.2474 C 395.248 653.6385 396.5269 648.508 394.5726 655.802 " id="path2431" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path2432" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7653 415.749 C 338.1788 424.8054 333.5497 434.865 327.3536 444.2034 " id="path2433" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path2434" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path2435" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path2436" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path2437" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path2438" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path2439" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path2440" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path2441" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path2442" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 358.0209 C 359.6831 364.8243 357.5511 370.2507 354.2509 376.4651 " id="path2443" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 373.6294 386.885 C 371.4637 392.2992 369.518 398.2229 367.0111 403.5408 " id="path2444" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 372.0258 434.9917 C 365.5062 445.8577 363.0615 451.3253 360.6382 463.1964 " id="path2445" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 354.3867 422.1633 C 351.1657 436.121 349.7306 451.8093 344.4227 465.2386 " id="path2446" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 462.2522 C 384.6415 471.6571 381.3257 477.3489 377.3463 485.7157 " id="path2447" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 408.9077 492.7199 C 407.2789 495.2795 405.65 497.8391 404.0212 500.3986 " id="path2448" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path2449" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path2450" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path2451" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 402.4934 393.2992 C 410.575 394.5425 418.1163 395.1826 426.1258 396.0621 " id="path2452" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0792 415.749 C 405.1828 420.3008 407.163 420.4481 413.2478 426.3158 " id="path2453" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 370.8493 C 392.403 373.0005 388.3109 372.4746 393.8177 373.102 " id="path2454" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 424.9433 436.5953 C 422.4601 442.0584 420.477 447.2819 417.1263 452.1656 " id="path2455" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 434.5646 475.0807 C 432.9982 479.3885 431.4923 483.0885 430.5442 487.4384 " id="path2456" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 426.974 C 386.19 428.6259 390.584 430.0129 394.8503 432.197 " id="path2457" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 426.5469 505.5484 C 424.5707 510.9829 423.0361 516.5611 420.9488 521.9487 " id="path2458" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4109 529.6018 C 455.4109 535.7175 455.4109 541.8332 455.4109 547.9489 " id="path2459" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 440.9789 417.3526 C 447.1425 419.5939 453.3165 421.7199 459.4989 423.8956 " id="path2460" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path2461" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 437.7718 391.6956 C 448.0694 394.5041 444.3132 392.9919 449.4035 395.198 " id="path2462" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path2463" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path2464" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 448.9967 487.9092 C 454.2185 491.5645 459.5171 495.1142 464.6415 498.9051 " id="path2465" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 423.3397 540.8267 C 420.4781 544.0062 417.6166 547.1858 414.755 550.3653 " id="path2466" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 391.2685 577.7086 C 389.8154 580.9055 388.3622 584.1024 386.9091 587.2994 " id="path2467" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 471.4465 569.6908 C 476.9238 577.5153 474.57 574.6588 478.0034 578.6522 " id="path2468" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6002 625.8153 C 462.3311 631.6807 458.4903 628.913 463.1655 632.4353 " id="path2469" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.7362 665.9043 C 424.9371 667.0683 428.1381 668.2323 431.339 669.3963 " id="path2470" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2928 653.0758 C 491.1649 654.4544 490.037 655.8329 488.9091 657.2115 " id="path2471" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path2472" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path2473" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path2474" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path2475" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path2476" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path2477" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999997;fill-opacity:1;stroke-opacity:1;"/>
+ <g id="g2478" style="fill:none;fill-opacity:1;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path2479" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2480" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path2481" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path2482" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;fill-opacity:1;stroke-opacity:1;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path2483" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path2484" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path2485" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path2486" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033156;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path2487" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path2488" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path2489" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path2490" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path2491" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path2492" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path2493" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path2494" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path2495" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path2496" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path2497" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path2498" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path2499" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path2500" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path2501" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path2502" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path2503" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path2504" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path2505" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path2506" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path2507" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path2508" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path2509" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path2510" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path2511" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path2512" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path2513" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path2514" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path2515" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path2516" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path2517" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path2518" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path2519" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path2520" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path2521" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path2522" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path2523" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path2524" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path2525" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path2526" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path2527" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path2528" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path2529" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path2530" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path2531" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path2532" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path2533" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path2534" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path2535" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path2536" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path2537" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path2538" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path2539" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path2540" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path2541" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path2542" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ </g>
+ <g id="g2543" style="fill:none;stroke:#8c6500;stroke-opacity:1;">
+ <g id="g629" style="fill:none;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,78.0731,-33.11635)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path625" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path626" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path627" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path628" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;stroke-opacity:1;"/>
+ </g>
+ <path d="M 354.318 105.7091 C 387.7605 50.1823 387.3061 55.96209 388.2021 51.9617 " id="path617" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:5;stroke-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path618" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path619" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 459.3614 222.3596 C 510.7349 182.8325 508.2061 188.0495 510.4979 184.6505 " id="path620" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path621" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path622" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path623" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path624" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999997;stroke-opacity:1;"/>
+ <g id="g634" style="fill:none;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path635" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path636" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path637" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path638" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;stroke-opacity:1;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path640" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path641" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path642" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path643" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033156;stroke-opacity:1;"/>
+ <path d="M 256.9524 423.0245 C 218.9723 451.3258 224.4619 451.6601 220.9575 452.0591 " id="path647" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999987;stroke-opacity:1;"/>
+ <path d="M 283.7704 481.985 C 250.1142 514.6896 255.2769 514.6665 252.0226 515.3321 " id="path648" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;stroke-opacity:1;"/>
+ <path d="M 256.9535 389.7257 C 214.4753 410.6793 219.8135 412.0024 216.2948 411.76 " id="path677" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999986;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path678" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;" transform="matrix(0.918935,-0.394407,0.394407,0.918935,33.60582,314.4687)"/>
+ <path d="M 312.6333 493.5005 C 283.2116 532.0441 287.8601 531.6663 284.9475 532.626 " id="path679" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;stroke-opacity:1;"/>
+ <path d="M 338.0605 559.9982 C 316.1721 606.8302 320.3489 605.5716 317.8228 607.1375 " id="path680" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999984;stroke-opacity:1;"/>
+ <path d="M 317.1688 538.8559 C 287.7471 577.3995 292.3956 577.0217 289.483 577.9814 " id="path689" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;stroke-opacity:1;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path691" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path692" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path694" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path695" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path696" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path697" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path698" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path699" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 288.6406 388.4888 C 295.4648 384.508 300.833 381.1367 306.8893 376.3581 " id="path700" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0904 422.1635 C 314.6907 419.2833 318.291 416.4031 321.8913 413.5229 " id="path701" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.1438 471.8739 C 342.6313 460.6426 339.5349 465.0799 344.245 458.4325 " id="path702" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 352.783 502.3415 L 359.1972 487.9094 " id="path703" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 414.1457 C 268.3407 429.4008 258.1687 444.9663 248.3967 460.7514 " id="path705" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 351.6069 C 252.3833 361.2722 243.0274 369.0727 233.3264 382.5513 " id="path706" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path707" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path708" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path709" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path710" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path711" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 293.4513 90.22679 C 295.8195 77.20128 296.8339 64.46912 298.7369 51.41537 " id="path712" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path713" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path714" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path715" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path716" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path717" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 484.2748 239.3578 C 497.4339 235.41 507.5489 229.3035 519.1464 221.9381 " id="path720" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 258.6005 C 510.7534 256.9933 519.887 255.5658 528.6389 253.4735 " id="path721" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 290.6717 C 516.8765 286.183 534.8914 284.5723 548.5603 277.1862 " id="path722" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 506.7246 311.518 C 518.9159 308.1931 530.1498 305.159 542.7402 303.9896 " id="path723" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 516.346 341.9856 C 526.1293 343.9422 534.6453 343.8982 544.6292 343.7545 " id="path724" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path725" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path726" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path727" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path728" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path729" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path730" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path731" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path732" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path733" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path734" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 468.2392 290.6717 C 478.4579 291.6936 488.6682 292.6891 498.8863 293.7304 " id="path735" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 311.518 C 469.1344 316.234 484.7432 318.0874 500.5717 320.4532 " id="path736" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 493.8961 345.1927 C 508.3195 348.7985 520.2991 353.3377 533.4485 360.4014 " id="path737" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 378.8675 C 513.5459 384.236 525.5319 388.0027 537.2107 393.2151 " id="path738" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 519.5531 418.9564 C 527.7314 425.0901 536.5035 430.3855 544.45 436.7762 " id="path739" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path740" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path741" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path742" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path743" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path744" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path745" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path746" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6001 369.2461 C 457.286 368.0304 463.9055 366.6512 470.6392 365.7809 " id="path747" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 460.2214 409.3351 C 466.085 409.8681 471.7992 410.3568 477.6556 410.6318 " id="path748" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4107 455.8382 C 462.2055 456.456 470.1028 456.3363 476.811 458.0008 " id="path749" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 487.9094 C 486.7974 491.0715 482.8309 490.1457 487.9987 491.2925 " id="path750" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 481.0677 532.8091 C 484.3954 533.4746 487.723 534.1402 491.0507 534.8057 " id="path751" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 515.17 C 368.8186 527.604 369.26 522.6802 368.3911 529.9945 " id="path752" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0613 542.4304 C 386.9426 546.5321 385.824 550.6337 384.7054 554.7353 " id="path753" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 415.3218 568.0874 L 431.3573 566.4838 " id="path754" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 532.3816 447.8205 C 542.5761 451.2186 551.4635 454.2225 560.9528 459.217 " id="path756" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 533.9851 407.7315 C 543.8807 410.7002 552.397 413.6434 561.5076 418.5785 " id="path757" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 535.5887 377.2638 C 547.6982 380.5665 553.2518 382.7993 563.4183 389.4043 " id="path758" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2926 436.5955 C 500.5131 439.0617 509.6925 442.7425 518.1572 444.3084 " id="path759" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 388.4888 C 489.0938 392.7677 500.2559 397.7014 512.5335 403.1534 " id="path760" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 466.6356 345.1927 C 480.473 353.4951 494.0524 361.8943 508.397 369.3097 " id="path762" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 475.081 C 520.371 477.9738 526.8079 480.664 534.5566 481.1236 " id="path763" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 517.9495 513.5664 C 525.1414 515.5278 530.3445 516.7595 536.6519 520.089 " id="path764" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 552.0518 C 518.9735 555.7648 524.357 559.151 529.7018 563.4069 " id="path765" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 500.3104 576.1052 C 511.39 583.1559 507.8374 579.925 512.2528 584.1619 " id="path766" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 606.5728 L 492.2926 608.1764 " id="path767" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.736 604.9693 L 432.9609 596.9515 " id="path768" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path769" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path770" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path771" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path772" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path773" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 333.5404 374.0565 C 326.9256 382.1412 323.5521 386.6726 319.2012 395.111 " id="path774" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 296.6585 404.5241 C 289.6358 419.7398 284.9433 433.8324 279.3809 449.4974 " id="path775" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 275.8122 367.6423 C 268.5082 381.033 262.2771 394.4766 256.6767 408.6848 " id="path776" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0906 439.8024 C 302.5136 455.5268 296.945 472.5001 289.1007 488.5791 " id="path777" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3333 492.7199 C 325.5204 503.308 320.3487 513.6807 315.544 524.27 " id="path778" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 338.3511 527.9982 C 333.1558 539.4278 327.4735 550.6734 322.7422 562.2989 " id="path779" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.008 566.4836 C 356.3116 575.8904 349.7702 583.7253 345.0481 594.9904 " id="path780" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 375.2329 600.1584 C 371.7217 607.1808 367.8754 614.0809 365.0365 621.4143 " id="path781" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.6828 640.2474 C 395.248 653.6385 396.5269 648.508 394.5726 655.802 " id="path782" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path783" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7653 415.749 C 338.1788 424.8054 333.5497 434.865 327.3536 444.2034 " id="path784" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path786" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path787" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path788" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path789" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path790" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path791" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path792" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path793" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path794" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 358.0209 C 359.6831 364.8243 357.5511 370.2507 354.2509 376.4651 " id="path795" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 373.6294 386.885 C 371.4637 392.2992 369.518 398.2229 367.0111 403.5408 " id="path796" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 372.0258 434.9917 C 365.5062 445.8577 363.0615 451.3253 360.6382 463.1964 " id="path797" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 354.3867 422.1633 C 351.1657 436.121 349.7306 451.8093 344.4227 465.2386 " id="path802" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 462.2522 C 384.6415 471.6571 381.3257 477.3489 377.3463 485.7157 " id="path803" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 408.9077 492.7199 C 407.2789 495.2795 405.65 497.8391 404.0212 500.3986 " id="path804" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path805" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path806" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path807" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 402.4934 393.2992 C 410.575 394.5425 418.1163 395.1826 426.1258 396.0621 " id="path808" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0792 415.749 C 405.1828 420.3008 407.163 420.4481 413.2478 426.3158 " id="path809" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 370.8493 C 392.403 373.0005 388.3109 372.4746 393.8177 373.102 " id="path810" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 424.9433 436.5953 C 422.4601 442.0584 420.477 447.2819 417.1263 452.1656 " id="path811" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 434.5646 475.0807 C 432.9982 479.3885 431.4923 483.0885 430.5442 487.4384 " id="path812" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 426.974 C 386.19 428.6259 390.584 430.0129 394.8503 432.197 " id="path813" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 426.5469 505.5484 C 424.5707 510.9829 423.0361 516.5611 420.9488 521.9487 " id="path814" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4109 529.6018 C 455.4109 535.7175 455.4109 541.8332 455.4109 547.9489 " id="path815" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 440.9789 417.3526 C 447.1425 419.5939 453.3165 421.7199 459.4989 423.8956 " id="path816" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path817" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 437.7718 391.6956 C 448.0694 394.5041 444.3132 392.9919 449.4035 395.198 " id="path818" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path819" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path820" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 448.9967 487.9092 C 454.2185 491.5645 459.5171 495.1142 464.6415 498.9051 " id="path821" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 423.3397 540.8267 C 420.4781 544.0062 417.6166 547.1858 414.755 550.3653 " id="path822" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 391.2685 577.7086 C 389.8154 580.9055 388.3622 584.1024 386.9091 587.2994 " id="path823" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 471.4465 569.6908 C 476.9238 577.5153 474.57 574.6588 478.0034 578.6522 " id="path824" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6002 625.8153 C 462.3311 631.6807 458.4903 628.913 463.1655 632.4353 " id="path825" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.7362 665.9043 C 424.9371 667.0683 428.1381 668.2323 431.339 669.3963 " id="path826" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 437.7718 714.0111 C 436.8501 716.223 435.9285 718.4349 435.0069 720.6468 " id="path827" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 493.8963 728.4432 L 495.4999 718.8218 " id="path828" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2928 653.0758 C 491.1649 654.4544 490.037 655.8329 488.9091 657.2115 " id="path829" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 481.0679 689.9577 C 478.3286 692.697 475.5892 695.4364 472.8499 698.1757 " id="path830" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path832" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path833" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path834" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path835" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path836" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path837" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999997;stroke-opacity:1;"/>
+ <g id="g838" style="fill:none;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path839" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path840" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path841" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path842" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;stroke-opacity:1;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path843" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path844" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path845" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path846" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033156;stroke-opacity:1;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path847" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path848" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path849" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path850" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path851" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path852" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path853" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path854" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path855" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path856" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path857" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path858" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path859" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path860" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path861" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path862" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path863" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path864" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path865" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path866" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path867" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path868" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path869" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path870" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path871" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path872" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path873" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path874" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path875" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path876" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path877" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path878" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path879" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path880" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path881" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path882" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path883" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path884" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path885" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path886" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path887" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path888" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path889" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path890" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path891" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path892" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path893" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path894" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path895" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path896" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path897" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path898" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path899" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path900" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path901" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path902" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ </g>
+ <g id="g2773" style="fill:none;stroke:#000000;stroke-opacity:1;">
+ <g id="g2774" style="fill:none;stroke:#000000;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,78.0731,-33.11635)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path2775" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.99999;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2776" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path2777" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path2778" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999988;stroke-opacity:1;"/>
+ </g>
+ <path d="M 354.318 105.7091 C 387.7605 50.1823 387.3061 55.96209 388.2021 51.9617 " id="path2779" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path2780" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path2781" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 459.3614 222.3596 C 510.7349 182.8325 508.2061 188.0495 510.4979 184.6505 " id="path2782" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path2783" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path2784" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path2785" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path2786" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999997;stroke-opacity:1;"/>
+ <g id="g2787" style="fill:none;stroke:#000000;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path2788" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.99999;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2789" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path2790" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path2791" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999988;stroke-opacity:1;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path2792" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path2793" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path2794" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path2795" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033156;stroke-opacity:1;"/>
+ <path d="M 256.9524 423.0245 C 218.9723 451.3258 224.4619 451.6601 220.9575 452.0591 " id="path2796" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999987;stroke-opacity:1;"/>
+ <path d="M 283.7704 481.985 C 250.1142 514.6896 255.2769 514.6665 252.0226 515.3321 " id="path2797" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999985;stroke-opacity:1;"/>
+ <path d="M 256.9535 389.7257 C 214.4753 410.6793 219.8135 412.0024 216.2948 411.76 " id="path2798" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999986;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2799" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;stroke-opacity:1;" transform="matrix(0.918935,-0.394407,0.394407,0.918935,33.60582,314.4687)"/>
+ <path d="M 312.6333 493.5005 C 283.2116 532.0441 287.8601 531.6663 284.9475 532.626 " id="path2800" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999985;stroke-opacity:1;"/>
+ <path d="M 338.0605 559.9982 C 316.1721 606.8302 320.3489 605.5716 317.8228 607.1375 " id="path2801" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999984;stroke-opacity:1;"/>
+ <path d="M 317.1688 538.8559 C 287.7471 577.3995 292.3956 577.0217 289.483 577.9814 " id="path2802" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999985;stroke-opacity:1;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path2803" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path2804" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path2805" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path2806" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path2807" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path2808" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path2809" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path2810" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 288.6406 388.4888 C 295.4648 384.508 300.833 381.1367 306.8893 376.3581 " id="path2811" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0904 422.1635 C 314.6907 419.2833 318.291 416.4031 321.8913 413.5229 " id="path2812" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.1438 471.8739 C 342.6313 460.6426 339.5349 465.0799 344.245 458.4325 " id="path2813" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 352.783 502.3415 L 359.1972 487.9094 " id="path2814" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 414.1457 C 268.3407 429.4008 258.1687 444.9663 248.3967 460.7514 " id="path2815" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 351.6069 C 252.3833 361.2722 243.0274 369.0727 233.3264 382.5513 " id="path2816" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path2817" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path2818" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path2819" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path2820" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path2821" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 293.4513 90.22679 C 295.8195 77.20128 296.8339 64.46912 298.7369 51.41537 " id="path2822" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path2823" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path2824" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path2825" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path2826" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path2827" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 484.2748 239.3578 C 497.4339 235.41 507.5489 229.3035 519.1464 221.9381 " id="path2828" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 258.6005 C 510.7534 256.9933 519.887 255.5658 528.6389 253.4735 " id="path2829" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 290.6717 C 516.8765 286.183 534.8914 284.5723 548.5603 277.1862 " id="path2830" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 506.7246 311.518 C 518.9159 308.1931 530.1498 305.159 542.7402 303.9896 " id="path2831" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 516.346 341.9856 C 526.1293 343.9422 534.6453 343.8982 544.6292 343.7545 " id="path2832" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path2833" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path2834" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path2835" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path2836" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path2837" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path2838" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path2839" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path2840" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path2841" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path2842" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 468.2392 290.6717 C 478.4579 291.6936 488.6682 292.6891 498.8863 293.7304 " id="path2843" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 311.518 C 469.1344 316.234 484.7432 318.0874 500.5717 320.4532 " id="path2844" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 493.8961 345.1927 C 508.3195 348.7985 520.2991 353.3377 533.4485 360.4014 " id="path2845" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 378.8675 C 513.5459 384.236 525.5319 388.0027 537.2107 393.2151 " id="path2846" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 519.5531 418.9564 C 527.7314 425.0901 536.5035 430.3855 544.45 436.7762 " id="path2847" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path2848" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path2849" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path2850" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path2851" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path2852" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path2853" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path2854" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6001 369.2461 C 457.286 368.0304 463.9055 366.6512 470.6392 365.7809 " id="path2855" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 460.2214 409.3351 C 466.085 409.8681 471.7992 410.3568 477.6556 410.6318 " id="path2856" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4107 455.8382 C 462.2055 456.456 470.1028 456.3363 476.811 458.0008 " id="path2857" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 487.9094 C 486.7974 491.0715 482.8309 490.1457 487.9987 491.2925 " id="path2858" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 481.0677 532.8091 C 484.3954 533.4746 487.723 534.1402 491.0507 534.8057 " id="path2859" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 515.17 C 368.8186 527.604 369.26 522.6802 368.3911 529.9945 " id="path2860" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0613 542.4304 C 386.9426 546.5321 385.824 550.6337 384.7054 554.7353 " id="path2861" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 415.3218 568.0874 L 431.3573 566.4838 " id="path2862" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 532.3816 447.8205 C 542.5761 451.2186 551.4635 454.2225 560.9528 459.217 " id="path2863" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 533.9851 407.7315 C 543.8807 410.7002 552.397 413.6434 561.5076 418.5785 " id="path2864" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 535.5887 377.2638 C 547.6982 380.5665 553.2518 382.7993 563.4183 389.4043 " id="path2865" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2926 436.5955 C 500.5131 439.0617 509.6925 442.7425 518.1572 444.3084 " id="path2866" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 388.4888 C 489.0938 392.7677 500.2559 397.7014 512.5335 403.1534 " id="path2867" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 466.6356 345.1927 C 480.473 353.4951 494.0524 361.8943 508.397 369.3097 " id="path2868" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 475.081 C 520.371 477.9738 526.8079 480.664 534.5566 481.1236 " id="path2869" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 517.9495 513.5664 C 525.1414 515.5278 530.3445 516.7595 536.6519 520.089 " id="path2870" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 552.0518 C 518.9735 555.7648 524.357 559.151 529.7018 563.4069 " id="path2871" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 500.3104 576.1052 C 511.39 583.1559 507.8374 579.925 512.2528 584.1619 " id="path2872" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 606.5728 L 492.2926 608.1764 " id="path2873" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.736 604.9693 L 432.9609 596.9515 " id="path2874" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path2875" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path2876" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path2877" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path2878" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path2879" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 333.5404 374.0565 C 326.9256 382.1412 323.5521 386.6726 319.2012 395.111 " id="path2880" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 296.6585 404.5241 C 289.6358 419.7398 284.9433 433.8324 279.3809 449.4974 " id="path2881" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 275.8122 367.6423 C 268.5082 381.033 262.2771 394.4766 256.6767 408.6848 " id="path2882" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0906 439.8024 C 302.5136 455.5268 296.945 472.5001 289.1007 488.5791 " id="path2883" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3333 492.7199 C 325.5204 503.308 320.3487 513.6807 315.544 524.27 " id="path2884" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 338.3511 527.9982 C 333.1558 539.4278 327.4735 550.6734 322.7422 562.2989 " id="path2885" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.008 566.4836 C 356.3116 575.8904 349.7702 583.7253 345.0481 594.9904 " id="path2886" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 375.2329 600.1584 C 371.7217 607.1808 367.8754 614.0809 365.0365 621.4143 " id="path2887" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.6828 640.2474 C 395.248 653.6385 396.5269 648.508 394.5726 655.802 " id="path2888" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path2889" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7653 415.749 C 338.1788 424.8054 333.5497 434.865 327.3536 444.2034 " id="path2890" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path2891" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path2892" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path2893" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path2894" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path2895" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path2896" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path2897" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path2898" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path2899" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 358.0209 C 359.6831 364.8243 357.5511 370.2507 354.2509 376.4651 " id="path2900" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 373.6294 386.885 C 371.4637 392.2992 369.518 398.2229 367.0111 403.5408 " id="path2901" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 372.0258 434.9917 C 365.5062 445.8577 363.0615 451.3253 360.6382 463.1964 " id="path2902" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 354.3867 422.1633 C 351.1657 436.121 349.7306 451.8093 344.4227 465.2386 " id="path2903" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 462.2522 C 384.6415 471.6571 381.3257 477.3489 377.3463 485.7157 " id="path2904" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 408.9077 492.7199 C 407.2789 495.2795 405.65 497.8391 404.0212 500.3986 " id="path2905" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path2906" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path2907" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path2908" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 402.4934 393.2992 C 410.575 394.5425 418.1163 395.1826 426.1258 396.0621 " id="path2909" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0792 415.749 C 405.1828 420.3008 407.163 420.4481 413.2478 426.3158 " id="path2910" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 370.8493 C 392.403 373.0005 388.3109 372.4746 393.8177 373.102 " id="path2911" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 424.9433 436.5953 C 422.4601 442.0584 420.477 447.2819 417.1263 452.1656 " id="path2912" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 434.5646 475.0807 C 432.9982 479.3885 431.4923 483.0885 430.5442 487.4384 " id="path2913" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 426.974 C 386.19 428.6259 390.584 430.0129 394.8503 432.197 " id="path2914" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 426.5469 505.5484 C 424.5707 510.9829 423.0361 516.5611 420.9488 521.9487 " id="path2915" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4109 529.6018 C 455.4109 535.7175 455.4109 541.8332 455.4109 547.9489 " id="path2916" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 440.9789 417.3526 C 447.1425 419.5939 453.3165 421.7199 459.4989 423.8956 " id="path2917" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path2918" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 437.7718 391.6956 C 448.0694 394.5041 444.3132 392.9919 449.4035 395.198 " id="path2919" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path2920" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path2921" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 448.9967 487.9092 C 454.2185 491.5645 459.5171 495.1142 464.6415 498.9051 " id="path2922" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 423.3397 540.8267 C 420.4781 544.0062 417.6166 547.1858 414.755 550.3653 " id="path2923" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 391.2685 577.7086 C 389.8154 580.9055 388.3622 584.1024 386.9091 587.2994 " id="path2924" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 471.4465 569.6908 C 476.9238 577.5153 474.57 574.6588 478.0034 578.6522 " id="path2925" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6002 625.8153 C 462.3311 631.6807 458.4903 628.913 463.1655 632.4353 " id="path2926" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.7362 665.9043 C 424.9371 667.0683 428.1381 668.2323 431.339 669.3963 " id="path2927" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 437.7718 714.0111 C 436.8501 716.223 435.9285 718.4349 435.0069 720.6468 " id="path2928" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 493.8963 728.4432 L 495.4999 718.8218 " id="path2929" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2928 653.0758 C 491.1649 654.4544 490.037 655.8329 488.9091 657.2115 " id="path2930" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 481.0679 689.9577 C 478.3286 692.697 475.5892 695.4364 472.8499 698.1757 " id="path2931" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path2932" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path2933" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path2934" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path2935" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path2936" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path2937" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999997;stroke-opacity:1;"/>
+ <g id="g2938" style="fill:none;stroke:#000000;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path2939" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.99999;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path2940" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path2941" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path2942" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.999988;stroke-opacity:1;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path2943" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path2944" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path2945" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path2946" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.033156;stroke-opacity:1;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path2947" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path2948" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path2949" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path2950" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path2951" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path2952" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path2953" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path2954" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path2955" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path2956" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path2957" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path2958" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path2959" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path2960" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path2961" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path2962" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path2963" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path2964" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path2965" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path2966" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path2967" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path2968" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path2969" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path2970" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path2971" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path2972" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path2973" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path2974" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path2975" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path2976" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path2977" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path2978" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path2979" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path2980" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path2981" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path2982" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path2983" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path2984" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path2985" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path2986" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path2987" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path2988" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path2989" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path2990" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path2991" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path2992" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path2993" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path2994" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path2995" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path2996" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path2997" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path2998" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path2999" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path3000" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path3001" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path3002" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ </g>
+ <g id="g3233" style="fill:none;stroke:#8c6500;stroke-opacity:1;" transform="translate(9.447333e-5,-5.301718)">
+ <g id="g3234" style="fill:none;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,78.0731,-33.11635)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path3235" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path3236" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path3237" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path3238" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;stroke-opacity:1;"/>
+ </g>
+ <path d="M 354.318 105.7091 C 387.7605 50.1823 387.3061 55.96209 388.2021 51.9617 " id="path3239" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:5;stroke-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path3240" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path3241" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 459.3614 222.3596 C 510.7349 182.8325 508.2061 188.0495 510.4979 184.6505 " id="path3242" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path3243" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path3244" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path3245" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path3246" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999997;stroke-opacity:1;"/>
+ <g id="g3247" style="fill:none;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path3248" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path3249" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path3250" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path3251" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;stroke-opacity:1;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path3252" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path3253" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path3254" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path3255" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033156;stroke-opacity:1;"/>
+ <path d="M 256.9524 423.0245 C 218.9723 451.3258 224.4619 451.6601 220.9575 452.0591 " id="path3256" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999987;stroke-opacity:1;"/>
+ <path d="M 283.7704 481.985 C 250.1142 514.6896 255.2769 514.6665 252.0226 515.3321 " id="path3257" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;stroke-opacity:1;"/>
+ <path d="M 256.9535 389.7257 C 214.4753 410.6793 219.8135 412.0024 216.2948 411.76 " id="path3258" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999986;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path3259" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;" transform="matrix(0.918935,-0.394407,0.394407,0.918935,33.60582,314.4687)"/>
+ <path d="M 312.6333 493.5005 C 283.2116 532.0441 287.8601 531.6663 284.9475 532.626 " id="path3260" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;stroke-opacity:1;"/>
+ <path d="M 338.0605 559.9982 C 316.1721 606.8302 320.3489 605.5716 317.8228 607.1375 " id="path3261" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999984;stroke-opacity:1;"/>
+ <path d="M 317.1688 538.8559 C 287.7471 577.3995 292.3956 577.0217 289.483 577.9814 " id="path3262" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;stroke-opacity:1;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path3263" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path3264" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path3265" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path3266" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path3267" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path3268" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path3269" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path3270" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 288.6406 388.4888 C 295.4648 384.508 300.833 381.1367 306.8893 376.3581 " id="path3271" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0904 422.1635 C 314.6907 419.2833 318.291 416.4031 321.8913 413.5229 " id="path3272" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.1438 471.8739 C 342.6313 460.6426 339.5349 465.0799 344.245 458.4325 " id="path3273" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 352.783 502.3415 L 359.1972 487.9094 " id="path3274" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 414.1457 C 268.3407 429.4008 258.1687 444.9663 248.3967 460.7514 " id="path3275" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 351.6069 C 252.3833 361.2722 243.0274 369.0727 233.3264 382.5513 " id="path3276" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path3277" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path3278" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path3279" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path3280" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path3281" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 293.4513 90.22679 C 295.8195 77.20128 296.8339 64.46912 298.7369 51.41537 " id="path3282" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path3283" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path3284" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path3285" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path3286" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path3287" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 484.2748 239.3578 C 497.4339 235.41 507.5489 229.3035 519.1464 221.9381 " id="path3288" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 258.6005 C 510.7534 256.9933 519.887 255.5658 528.6389 253.4735 " id="path3289" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 290.6717 C 516.8765 286.183 534.8914 284.5723 548.5603 277.1862 " id="path3290" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 506.7246 311.518 C 518.9159 308.1931 530.1498 305.159 542.7402 303.9896 " id="path3291" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 516.346 341.9856 C 526.1293 343.9422 534.6453 343.8982 544.6292 343.7545 " id="path3292" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path3293" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path3294" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path3295" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path3296" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path3297" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path3298" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path3299" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path3300" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path3301" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path3302" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 468.2392 290.6717 C 478.4579 291.6936 488.6682 292.6891 498.8863 293.7304 " id="path3303" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 311.518 C 469.1344 316.234 484.7432 318.0874 500.5717 320.4532 " id="path3304" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 493.8961 345.1927 C 508.3195 348.7985 520.2991 353.3377 533.4485 360.4014 " id="path3305" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 378.8675 C 513.5459 384.236 525.5319 388.0027 537.2107 393.2151 " id="path3306" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 519.5531 418.9564 C 527.7314 425.0901 536.5035 430.3855 544.45 436.7762 " id="path3307" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path3308" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path3309" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path3310" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path3311" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path3312" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path3313" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path3314" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6001 369.2461 C 457.286 368.0304 463.9055 366.6512 470.6392 365.7809 " id="path3315" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 460.2214 409.3351 C 466.085 409.8681 471.7992 410.3568 477.6556 410.6318 " id="path3316" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4107 455.8382 C 462.2055 456.456 470.1028 456.3363 476.811 458.0008 " id="path3317" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 487.9094 C 486.7974 491.0715 482.8309 490.1457 487.9987 491.2925 " id="path3318" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 481.0677 532.8091 C 484.3954 533.4746 487.723 534.1402 491.0507 534.8057 " id="path3319" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 515.17 C 368.8186 527.604 369.26 522.6802 368.3911 529.9945 " id="path3320" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0613 542.4304 C 386.9426 546.5321 385.824 550.6337 384.7054 554.7353 " id="path3321" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 415.3218 568.0874 L 431.3573 566.4838 " id="path3322" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 532.3816 447.8205 C 542.5761 451.2186 551.4635 454.2225 560.9528 459.217 " id="path3323" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 533.9851 407.7315 C 543.8807 410.7002 552.397 413.6434 561.5076 418.5785 " id="path3324" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 535.5887 377.2638 C 547.6982 380.5665 553.2518 382.7993 563.4183 389.4043 " id="path3325" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2926 436.5955 C 500.5131 439.0617 509.6925 442.7425 518.1572 444.3084 " id="path3326" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 388.4888 C 489.0938 392.7677 500.2559 397.7014 512.5335 403.1534 " id="path3327" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 466.6356 345.1927 C 480.473 353.4951 494.0524 361.8943 508.397 369.3097 " id="path3328" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 475.081 C 520.371 477.9738 526.8079 480.664 534.5566 481.1236 " id="path3329" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 517.9495 513.5664 C 525.1414 515.5278 530.3445 516.7595 536.6519 520.089 " id="path3330" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 552.0518 C 518.9735 555.7648 524.357 559.151 529.7018 563.4069 " id="path3331" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 500.3104 576.1052 C 511.39 583.1559 507.8374 579.925 512.2528 584.1619 " id="path3332" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 606.5728 L 492.2926 608.1764 " id="path3333" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.736 604.9693 L 432.9609 596.9515 " id="path3334" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path3335" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path3336" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path3337" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path3338" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path3339" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 333.5404 374.0565 C 326.9256 382.1412 323.5521 386.6726 319.2012 395.111 " id="path3340" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 296.6585 404.5241 C 289.6358 419.7398 284.9433 433.8324 279.3809 449.4974 " id="path3341" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 275.8122 367.6423 C 268.5082 381.033 262.2771 394.4766 256.6767 408.6848 " id="path3342" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0906 439.8024 C 302.5136 455.5268 296.945 472.5001 289.1007 488.5791 " id="path3343" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3333 492.7199 C 325.5204 503.308 320.3487 513.6807 315.544 524.27 " id="path3344" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 338.3511 527.9982 C 333.1558 539.4278 327.4735 550.6734 322.7422 562.2989 " id="path3345" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.008 566.4836 C 356.3116 575.8904 349.7702 583.7253 345.0481 594.9904 " id="path3346" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 375.2329 600.1584 C 371.7217 607.1808 367.8754 614.0809 365.0365 621.4143 " id="path3347" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.6828 640.2474 C 395.248 653.6385 396.5269 648.508 394.5726 655.802 " id="path3348" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path3349" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7653 415.749 C 338.1788 424.8054 333.5497 434.865 327.3536 444.2034 " id="path3350" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path3351" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path3352" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path3353" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path3354" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path3355" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path3356" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path3357" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path3358" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path3359" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 358.0209 C 359.6831 364.8243 357.5511 370.2507 354.2509 376.4651 " id="path3360" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 373.6294 386.885 C 371.4637 392.2992 369.518 398.2229 367.0111 403.5408 " id="path3361" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 372.0258 434.9917 C 365.5062 445.8577 363.0615 451.3253 360.6382 463.1964 " id="path3362" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 354.3867 422.1633 C 351.1657 436.121 349.7306 451.8093 344.4227 465.2386 " id="path3363" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 462.2522 C 384.6415 471.6571 381.3257 477.3489 377.3463 485.7157 " id="path3364" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 408.9077 492.7199 C 407.2789 495.2795 405.65 497.8391 404.0212 500.3986 " id="path3365" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path3366" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path3367" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path3368" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 402.4934 393.2992 C 410.575 394.5425 418.1163 395.1826 426.1258 396.0621 " id="path3369" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0792 415.749 C 405.1828 420.3008 407.163 420.4481 413.2478 426.3158 " id="path3370" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 370.8493 C 392.403 373.0005 388.3109 372.4746 393.8177 373.102 " id="path3371" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 424.9433 436.5953 C 422.4601 442.0584 420.477 447.2819 417.1263 452.1656 " id="path3372" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 434.5646 475.0807 C 432.9982 479.3885 431.4923 483.0885 430.5442 487.4384 " id="path3373" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 426.974 C 386.19 428.6259 390.584 430.0129 394.8503 432.197 " id="path3374" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 426.5469 505.5484 C 424.5707 510.9829 423.0361 516.5611 420.9488 521.9487 " id="path3375" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4109 529.6018 C 455.4109 535.7175 455.4109 541.8332 455.4109 547.9489 " id="path3376" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 440.9789 417.3526 C 447.1425 419.5939 453.3165 421.7199 459.4989 423.8956 " id="path3377" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path3378" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 437.7718 391.6956 C 448.0694 394.5041 444.3132 392.9919 449.4035 395.198 " id="path3379" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path3380" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path3381" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 448.9967 487.9092 C 454.2185 491.5645 459.5171 495.1142 464.6415 498.9051 " id="path3382" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 423.3397 540.8267 C 420.4781 544.0062 417.6166 547.1858 414.755 550.3653 " id="path3383" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 391.2685 577.7086 C 389.8154 580.9055 388.3622 584.1024 386.9091 587.2994 " id="path3384" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 471.4465 569.6908 C 476.9238 577.5153 474.57 574.6588 478.0034 578.6522 " id="path3385" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6002 625.8153 C 462.3311 631.6807 458.4903 628.913 463.1655 632.4353 " id="path3386" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.7362 665.9043 C 424.9371 667.0683 428.1381 668.2323 431.339 669.3963 " id="path3387" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 437.7718 714.0111 C 436.8501 716.223 435.9285 718.4349 435.0069 720.6468 " id="path3388" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 493.8963 728.4432 L 495.4999 718.8218 " id="path3389" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2928 653.0758 C 491.1649 654.4544 490.037 655.8329 488.9091 657.2115 " id="path3390" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 481.0679 689.9577 C 478.3286 692.697 475.5892 695.4364 472.8499 698.1757 " id="path3391" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path3392" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path3393" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path3394" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;stroke-opacity:1;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path3395" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path3396" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;stroke-opacity:1;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path3397" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999997;stroke-opacity:1;"/>
+ <g id="g3398" style="fill:none;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path3399" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path3400" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path3401" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path3402" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;stroke-opacity:1;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path3403" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path3404" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path3405" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;stroke-opacity:1;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path3406" style="font-size:12;fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033156;stroke-opacity:1;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path3407" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path3408" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path3409" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path3410" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path3411" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path3412" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path3413" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path3414" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path3415" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path3416" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path3417" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path3418" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path3419" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path3420" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path3421" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path3422" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path3423" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path3424" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path3425" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path3426" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path3427" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path3428" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path3429" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path3430" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path3431" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path3432" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path3433" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path3434" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path3435" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path3436" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path3437" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path3438" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path3439" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path3440" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path3441" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path3442" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path3443" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path3444" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path3445" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path3446" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path3447" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path3448" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path3449" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path3450" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path3451" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path3452" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path3453" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path3454" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path3455" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path3456" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path3457" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path3458" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path3459" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path3460" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path3461" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path3462" style="fill:none;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ </g>
+ <g id="g3463" style="fill:#8a6902;fill-opacity:1;stroke:#8c6500;stroke-opacity:1;" transform="matrix(-0.210452,5.396925e-2,3.416208e-2,0.332468,708.1533,651.2929)">
+ <g id="g3464" style="fill:#8a6902;fill-opacity:1;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,78.0731,-33.11635)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path3465" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path3466" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path3467" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path3468" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;fill-opacity:1;stroke-opacity:1;"/>
+ </g>
+ <path d="M 354.318 105.7091 C 387.7605 50.1823 387.3061 55.96209 388.2021 51.9617 " id="path3469" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:5;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path3470" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path3471" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 459.3614 222.3596 C 510.7349 182.8325 508.2061 188.0495 510.4979 184.6505 " id="path3472" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path3473" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path3474" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path3475" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path3476" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999997;fill-opacity:1;stroke-opacity:1;"/>
+ <g id="g3477" style="fill:#8a6902;fill-opacity:1;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path3478" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path3479" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path3480" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path3481" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;fill-opacity:1;stroke-opacity:1;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path3482" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path3483" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path3484" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path3485" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033156;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 256.9524 423.0245 C 218.9723 451.3258 224.4619 451.6601 220.9575 452.0591 " id="path3486" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999987;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 283.7704 481.985 C 250.1142 514.6896 255.2769 514.6665 252.0226 515.3321 " id="path3487" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 256.9535 389.7257 C 214.4753 410.6793 219.8135 412.0024 216.2948 411.76 " id="path3488" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999986;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path3489" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;" transform="matrix(0.918935,-0.394407,0.394407,0.918935,33.60582,314.4687)"/>
+ <path d="M 312.6333 493.5005 C 283.2116 532.0441 287.8601 531.6663 284.9475 532.626 " id="path3490" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 338.0605 559.9982 C 316.1721 606.8302 320.3489 605.5716 317.8228 607.1375 " id="path3491" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999984;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 317.1688 538.8559 C 287.7471 577.3995 292.3956 577.0217 289.483 577.9814 " id="path3492" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999985;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path3493" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path3494" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path3495" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path3496" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path3497" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path3498" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path3499" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path3500" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 288.6406 388.4888 C 295.4648 384.508 300.833 381.1367 306.8893 376.3581 " id="path3501" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0904 422.1635 C 314.6907 419.2833 318.291 416.4031 321.8913 413.5229 " id="path3502" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.1438 471.8739 C 342.6313 460.6426 339.5349 465.0799 344.245 458.4325 " id="path3503" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 352.783 502.3415 L 359.1972 487.9094 " id="path3504" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 414.1457 C 268.3407 429.4008 258.1687 444.9663 248.3967 460.7514 " id="path3505" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 351.6069 C 252.3833 361.2722 243.0274 369.0727 233.3264 382.5513 " id="path3506" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path3507" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path3508" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path3509" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path3510" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path3511" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 293.4513 90.22679 C 295.8195 77.20128 296.8339 64.46912 298.7369 51.41537 " id="path3512" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path3513" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path3514" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path3515" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path3516" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path3517" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 484.2748 239.3578 C 497.4339 235.41 507.5489 229.3035 519.1464 221.9381 " id="path3518" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 258.6005 C 510.7534 256.9933 519.887 255.5658 528.6389 253.4735 " id="path3519" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 290.6717 C 516.8765 286.183 534.8914 284.5723 548.5603 277.1862 " id="path3520" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 506.7246 311.518 C 518.9159 308.1931 530.1498 305.159 542.7402 303.9896 " id="path3521" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 516.346 341.9856 C 526.1293 343.9422 534.6453 343.8982 544.6292 343.7545 " id="path3522" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path3523" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path3524" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path3525" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path3526" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path3527" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path3528" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path3529" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path3530" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path3531" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path3532" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 468.2392 290.6717 C 478.4579 291.6936 488.6682 292.6891 498.8863 293.7304 " id="path3533" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 311.518 C 469.1344 316.234 484.7432 318.0874 500.5717 320.4532 " id="path3534" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 493.8961 345.1927 C 508.3195 348.7985 520.2991 353.3377 533.4485 360.4014 " id="path3535" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 501.9139 378.8675 C 513.5459 384.236 525.5319 388.0027 537.2107 393.2151 " id="path3536" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 519.5531 418.9564 C 527.7314 425.0901 536.5035 430.3855 544.45 436.7762 " id="path3537" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path3538" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path3539" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path3540" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path3541" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path3542" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path3543" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path3544" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6001 369.2461 C 457.286 368.0304 463.9055 366.6512 470.6392 365.7809 " id="path3545" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 460.2214 409.3351 C 466.085 409.8681 471.7992 410.3568 477.6556 410.6318 " id="path3546" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4107 455.8382 C 462.2055 456.456 470.1028 456.3363 476.811 458.0008 " id="path3547" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 487.9094 C 486.7974 491.0715 482.8309 490.1457 487.9987 491.2925 " id="path3548" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 481.0677 532.8091 C 484.3954 533.4746 487.723 534.1402 491.0507 534.8057 " id="path3549" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 515.17 C 368.8186 527.604 369.26 522.6802 368.3911 529.9945 " id="path3550" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0613 542.4304 C 386.9426 546.5321 385.824 550.6337 384.7054 554.7353 " id="path3551" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 415.3218 568.0874 L 431.3573 566.4838 " id="path3552" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 532.3816 447.8205 C 542.5761 451.2186 551.4635 454.2225 560.9528 459.217 " id="path3553" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 533.9851 407.7315 C 543.8807 410.7002 552.397 413.6434 561.5076 418.5785 " id="path3554" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 535.5887 377.2638 C 547.6982 380.5665 553.2518 382.7993 563.4183 389.4043 " id="path3555" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2926 436.5955 C 500.5131 439.0617 509.6925 442.7425 518.1572 444.3084 " id="path3556" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 388.4888 C 489.0938 392.7677 500.2559 397.7014 512.5335 403.1534 " id="path3557" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 466.6356 345.1927 C 480.473 353.4951 494.0524 361.8943 508.397 369.3097 " id="path3558" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 475.081 C 520.371 477.9738 526.8079 480.664 534.5566 481.1236 " id="path3559" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 517.9495 513.5664 C 525.1414 515.5278 530.3445 516.7595 536.6519 520.089 " id="path3560" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 513.1388 552.0518 C 518.9735 555.7648 524.357 559.151 529.7018 563.4069 " id="path3561" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 500.3104 576.1052 C 511.39 583.1559 507.8374 579.925 512.2528 584.1619 " id="path3562" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 476.257 606.5728 L 492.2926 608.1764 " id="path3563" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.736 604.9693 L 432.9609 596.9515 " id="path3564" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path3565" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path3566" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path3567" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path3568" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path3569" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 333.5404 374.0565 C 326.9256 382.1412 323.5521 386.6726 319.2012 395.111 " id="path3570" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 296.6585 404.5241 C 289.6358 419.7398 284.9433 433.8324 279.3809 449.4974 " id="path3571" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 275.8122 367.6423 C 268.5082 381.033 262.2771 394.4766 256.6767 408.6848 " id="path3572" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 311.0906 439.8024 C 302.5136 455.5268 296.945 472.5001 289.1007 488.5791 " id="path3573" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3333 492.7199 C 325.5204 503.308 320.3487 513.6807 315.544 524.27 " id="path3574" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 338.3511 527.9982 C 333.1558 539.4278 327.4735 550.6734 322.7422 562.2989 " id="path3575" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.008 566.4836 C 356.3116 575.8904 349.7702 583.7253 345.0481 594.9904 " id="path3576" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 375.2329 600.1584 C 371.7217 607.1808 367.8754 614.0809 365.0365 621.4143 " id="path3577" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.6828 640.2474 C 395.248 653.6385 396.5269 648.508 394.5726 655.802 " id="path3578" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path3579" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7653 415.749 C 338.1788 424.8054 333.5497 434.865 327.3536 444.2034 " id="path3580" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path3581" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path3582" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path3583" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path3584" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path3585" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path3586" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path3587" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path3588" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path3589" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 358.0209 C 359.6831 364.8243 357.5511 370.2507 354.2509 376.4651 " id="path3590" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 373.6294 386.885 C 371.4637 392.2992 369.518 398.2229 367.0111 403.5408 " id="path3591" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 372.0258 434.9917 C 365.5062 445.8577 363.0615 451.3253 360.6382 463.1964 " id="path3592" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 354.3867 422.1633 C 351.1657 436.121 349.7306 451.8093 344.4227 465.2386 " id="path3593" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 462.2522 C 384.6415 471.6571 381.3257 477.3489 377.3463 485.7157 " id="path3594" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 408.9077 492.7199 C 407.2789 495.2795 405.65 497.8391 404.0212 500.3986 " id="path3595" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path3596" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path3597" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path3598" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 402.4934 393.2992 C 410.575 394.5425 418.1163 395.1826 426.1258 396.0621 " id="path3599" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0792 415.749 C 405.1828 420.3008 407.163 420.4481 413.2478 426.3158 " id="path3600" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 370.8493 C 392.403 373.0005 388.3109 372.4746 393.8177 373.102 " id="path3601" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 424.9433 436.5953 C 422.4601 442.0584 420.477 447.2819 417.1263 452.1656 " id="path3602" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 434.5646 475.0807 C 432.9982 479.3885 431.4923 483.0885 430.5442 487.4384 " id="path3603" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 381.6472 426.974 C 386.19 428.6259 390.584 430.0129 394.8503 432.197 " id="path3604" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 426.5469 505.5484 C 424.5707 510.9829 423.0361 516.5611 420.9488 521.9487 " id="path3605" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 455.4109 529.6018 C 455.4109 535.7175 455.4109 541.8332 455.4109 547.9489 " id="path3606" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 440.9789 417.3526 C 447.1425 419.5939 453.3165 421.7199 459.4989 423.8956 " id="path3607" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path3608" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 437.7718 391.6956 C 448.0694 394.5041 444.3132 392.9919 449.4035 395.198 " id="path3609" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path3610" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path3611" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 448.9967 487.9092 C 454.2185 491.5645 459.5171 495.1142 464.6415 498.9051 " id="path3612" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 423.3397 540.8267 C 420.4781 544.0062 417.6166 547.1858 414.755 550.3653 " id="path3613" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 391.2685 577.7086 C 389.8154 580.9055 388.3622 584.1024 386.9091 587.2994 " id="path3614" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 471.4465 569.6908 C 476.9238 577.5153 474.57 574.6588 478.0034 578.6522 " id="path3615" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 450.6002 625.8153 C 462.3311 631.6807 458.4903 628.913 463.1655 632.4353 " id="path3616" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 421.7362 665.9043 C 424.9371 667.0683 428.1381 668.2323 431.339 669.3963 " id="path3617" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 492.2928 653.0758 C 491.1649 654.4544 490.037 655.8329 488.9091 657.2115 " id="path3618" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 397.7623 129.7117 C 436.1499 77.48126 435.1681 83.19514 436.4267 79.29363 " id="path3619" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 428.9654 174.123 C 474.8962 128.3847 473.0512 133.8809 474.8922 130.2181 " id="path3620" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 310.3167 87.37516 C 343.7592 53.83276 343.3048 59.31384 344.2008 55.90245 " id="path3621" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 353.761 139.9372 C 392.1486 112.9418 391.1668 118.0103 392.4254 114.9362 " id="path3622" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 384.9641 204.8607 C 430.8949 189.3163 429.0499 193.5997 430.8909 191.1471 " id="path3623" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999998;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 415.3601 273.079 C 466.7336 267.3237 464.2048 270.8783 466.4966 268.9859 " id="path3624" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999997;fill-opacity:1;stroke-opacity:1;"/>
+ <g id="g3625" style="fill:#8a6902;fill-opacity:1;stroke:#8c6500;stroke-opacity:1;" transform="matrix(0.97201,0.234938,-0.234938,0.97201,95.00796,-70.31422)">
+ <path d="M 177.7965 152.0366 C 130.4974 154.5379 134.8811 157.8592 131.7432 156.2486 " id="path3626" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.99999;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 187.9201 219.473 C 142.1932 230.0269 146.622 232.6801 143.4932 231.5646 " id="path3627" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 215.4194 286.0496 C 173.1808 309.8645 177.6015 311.3508 174.5465 311.0839 " id="path3628" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999989;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 245.9104 354.2253 C 207.3254 388.628 211.66 389.1188 208.7211 389.5614 " id="path3629" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.999988;fill-opacity:1;stroke-opacity:1;"/>
+ </g>
+ <path d="M 258.1902 100.482 C 225.8759 89.24678 227.9584 93.35476 226.2708 91.07607 " id="path3630" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 239.7155 141.1432 C 206.3861 137.3033 208.6704 140.8475 206.8618 138.9987 " id="path3631" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 247.837 215.4638 C 213.4383 224.0574 216.0168 226.5921 214.0397 225.4966 " id="path3632" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033157;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 260.9529 286.3423 C 226.282 305.1088 229.0585 306.7598 226.9769 306.3096 " id="path3633" style="font-size:12;fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-width:4.033156;fill-opacity:1;stroke-opacity:1;"/>
+ <path d="M 271.0015 59.75919 C 282.2264 88.62325 280.6228 88.62325 280.6228 88.62325 " id="path3634" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 120.6945 C 257.1482 123.7545 262.8053 125.3779 271.403 130.298 " id="path3635" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 230.9125 159.1799 C 241.5849 158.2097 251.0276 157.6892 261.6583 158.4908 " id="path3636" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 240.5338 196.0618 C 249.2688 192.1795 255.5093 191.0605 264.8699 190.185 " id="path3637" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 240.9613 C 260.5724 235.5538 265.2972 231.6924 272.9004 227.9291 " id="path3638" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 253.3623 265.0148 C 261.2337 261.8662 265.414 260.7754 271.512 256.4816 " id="path3639" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 306.7073 C 272.7975 299.4999 278.7641 292.9445 284.7528 285.4536 " id="path3640" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 279.0193 345.1927 C 284.7506 338.3151 290.5991 331.5351 296.1887 324.5434 " id="path3641" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 246.9481 314.7251 C 231.4317 320.9317 215.7468 326.5216 200.258 332.7075 " id="path3642" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 234.1196 273.0326 C 221.8717 278.5997 206.7982 284.132 193.4639 286.9342 " id="path3643" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 221.2911 244.1685 C 208.5473 244.1685 195.0851 243.306 182.4952 245.71 " id="path3644" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 227.7054 170.4048 C 222.9321 174.3102 190.4692 198.7118 190.2511 203.0706 C 190.2427 203.2374 190.5037 203.2892 190.6301 203.3985 " id="path3645" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 272.605 99.84814 C 263.8546 88.91011 258.0331 77.14215 248.9701 66.72078 " id="path3646" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 90.22679 C 327.41 79.50871 325.3456 69.18904 322.8984 58.44205 " id="path3647" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1616 101.4518 C 347.756 88.81711 352.9098 76.47229 357.8356 63.95406 " id="path3648" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 383.2506 99.84814 C 393.7773 92.19243 400.0257 87.21021 407.9659 77.65034 " id="path3649" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 133.5229 C 427.0502 124.3184 437.349 115.3702 447.3989 106.0976 " id="path3650" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 457.0143 176.819 C 467.6792 170.42 478.56 164.4735 488.6988 157.2616 " id="path3651" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 285.4335 95.03751 C 290.537 106.2653 293.96 112.7808 295.5187 124.5359 " id="path3652" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.4869 130.3158 C 310.4916 120.2686 311.6673 110.4345 312.8739 100.4366 " id="path3653" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 330.3331 125.5051 C 333.9606 115.5296 337.9818 105.5284 340.9009 95.30392 " id="path3654" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 344.7652 139.9372 C 352.0927 128.4224 358.5999 116.3101 364.4934 103.9625 " id="path3655" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 364.0079 155.9727 C 371.3198 153.0479 378.8581 151.4763 385.9819 148.4762 C 391.0736 146.3318 394.7255 141.8149 400.0825 140.0803 " id="path3656" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 389.6648 172.0083 C 403.3622 168.2727 415.743 166.6136 427.3954 158.053 " id="path3657" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 416.9253 212.0973 C 426.4514 211.1447 435.8787 209.9703 445.4358 209.394 " id="path3658" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 431.3573 239.3578 C 447.9988 237.971 464.5367 238.3841 481.0102 235.4275 " id="path3659" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 445.7894 194.4581 C 457.8051 191.4542 469.2708 187.7866 480.7186 183.0706 " id="path3660" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 453.8072 253.7899 C 466.8195 254.9728 474.2242 256.7134 485.8103 262.292 " id="path3661" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 319.1082 159.1799 L 328.7296 147.955 " id="path3662" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9723 172.0083 C 352.0799 169.5438 356.1875 167.0792 360.2951 164.6147 " id="path3663" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 367.215 192.8546 L 380.0434 188.0439 " id="path3664" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 368.8186 237.7543 C 375.2854 235.1675 381.2271 233.4321 386.6806 229.2551 " id="path3665" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 386.4577 260.2041 C 391.9492 257.4583 397.4245 254.807 402.7823 251.8257 " id="path3666" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 396.0791 301.8966 C 402.7268 298.8749 409.2096 295.8697 415.7444 292.6519 " id="path3667" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1502 327.5535 C 433.7239 328.0603 439.259 328.5505 444.8382 328.903 " id="path3668" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 266.1908 170.4048 C 279.289 175.6441 280.595 177.8933 289.2473 186.8607 " id="path3669" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 280.6228 139.9372 C 287.8482 147.9654 295.9639 155.5254 301.7158 164.7066 " id="path3670" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 291.8478 229.7361 C 287.1085 234.4754 282.3692 239.2148 277.6299 243.9541 " id="path3671" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 301.4692 271.4286 C 296.0844 283.2752 290.2335 294.5385 285.6195 306.6849 " id="path3672" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 315.9012 322.7426 C 310.1804 333.2309 304.8051 343.6641 299.6941 354.4581 " id="path3673" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 261.3802 208.8898 C 273.5006 209.8999 285.5163 210.0197 297.5957 211.0132 " id="path3674" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 309.487 183.2329 C 312.1443 186.8867 314.7339 190.5935 317.5306 194.1417 " id="path3675" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 339.9546 205.6827 L 354.3867 210.4934 " id="path3676" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 323.919 239.3575 C 327.5373 240.5636 331.1556 241.7697 334.7739 242.9757 " id="path3677" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 335.144 271.4286 L 333.5404 297.0856 " id="path3678" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 360.8009 293.8785 L 368.8187 317.9319 " id="path3679" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 362.4045 269.8251 L 375.2329 273.0322 " id="path3680" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 351.1795 245.7717 L 351.1795 231.3397 " id="path3681" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 317.5048 210.4934 L 325.5226 212.097 " id="path3682" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 347.9724 337.1746 C 337.7622 344.3217 328.7749 351.66 319.2612 359.3541 " id="path3683" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 388.0614 335.571 C 385.8524 341.0937 384.1467 345.3434 383.1424 351.0679 " id="path3684" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 413.7184 346.796 C 412.1363 351.5423 410.7883 355.938 409.4373 360.6643 " id="path3685" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 400.8899 314.7248 C 406.3813 312.4366 410.0278 310.8451 414.8093 308.378 " id="path3686" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 428.1504 343.5888 C 439.0076 348.524 434.3883 346.9044 441.7257 349.1889 " id="path3687" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 312.6941 279.4465 C 312.6941 286.4348 313.2226 291.353 312.0389 297.5854 " id="path3688" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ <path d="M 343.1617 311.5177 C 339.3594 318.4888 340.8331 315.5797 338.5804 320.1618 " id="path3689" style="fill:#8a6902;fill-rule:evenodd;stroke:#8c6500;stroke-opacity:1;stroke-width:5;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;fill-opacity:1;"/>
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/cowboy.svg b/PerformanceTests/PageLoad/svg/files/cowboy.svg
new file mode 100644
index 000000000..f2862edb0
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/cowboy.svg
@@ -0,0 +1,4110 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000802//EN"
+ "http://www.w3.org/TR/2000/CR-SVG-20000802/DTD/svg-20000802.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
+
+ <title> A Cowboy </title>
+
+<g transform="matrix(2.501, 0.000, 0.000, 2.501, -266.232, -1211.086)">
+ <g style="fill: #dfdad3">
+ <path d="M236.331 579.855C239.879 580.283 244.935 581.129 243.416 583.26C242.43 584.471 236.933 581.368 235.836 580.971C234.74 580.574 235.936 580.442 235.936 580.442C235.936 580.442 240.438 582.619 241.536 582.506C242.635 582.393 242.463 581.51 241.502 581.29C240.543 581.07 236.291 580.169 236.291 580.169L236.331 579.855z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M228.655 530.084L228.389 530.634C228.277 530.864 228.378 531.108 228.613 531.177L228.8 531.231C229.035 531.3 229.319 531.168 229.43 530.937L229.44 530.917L229.248 530.844C229.162 530.967 229.002 531.037 228.863 530.996L228.739 530.96C228.584 530.915 228.517 530.753 228.591 530.601L228.767 530.238C228.84 530.086 229.028 529.998 229.183 530.044L229.306 530.08C229.462 530.125 229.529 530.287 229.455 530.439L229.279 530.802C229.271 530.818 229.258 530.83 229.248 530.844L229.44 530.917L229.697 530.388C229.808 530.157 229.707 529.913 229.472 529.844L229.285 529.79C229.05 529.721 228.767 529.853 228.655 530.084z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M227.955 531.784L227.689 532.333C227.577 532.564 227.678 532.808 227.913 532.877L228.1 532.932C228.335 533 228.619 532.868 228.731 532.637L228.74 532.617L228.548 532.544C228.462 532.668 228.302 532.737 228.163 532.696L228.039 532.66C227.884 532.615 227.817 532.453 227.891 532.301L228.067 531.938C228.14 531.786 228.328 531.698 228.483 531.744L228.606 531.78C228.762 531.825 228.828 531.987 228.755 532.139L228.579 532.502C228.571 532.518 228.558 532.53 228.548 532.544L228.74 532.617L228.997 532.088C229.108 531.857 229.007 531.613 228.772 531.544L228.585 531.49C228.35 531.421 228.067 531.553 227.955 531.784z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M229.637 528.285L229.371 528.835C229.26 529.065 229.361 529.31 229.596 529.379L229.783 529.433C230.018 529.502 230.301 529.369 230.413 529.139L230.422 529.119L230.23 529.046C230.144 529.169 229.984 529.238 229.845 529.198L229.721 529.162C229.566 529.116 229.499 528.955 229.573 528.803L229.749 528.44C229.822 528.288 230.01 528.2 230.165 528.245L230.289 528.281C230.444 528.327 230.511 528.488 230.437 528.64L230.261 529.004C230.253 529.019 230.24 529.031 230.23 529.046L230.422 529.119L230.679 528.589C230.79 528.359 230.689 528.115 230.454 528.046L230.267 527.991C230.032 527.923 229.749 528.055 229.637 528.285z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M231.303 524.706L231.021 525.247C230.903 525.475 230.997 525.722 231.23 525.797L231.415 525.857C231.648 525.932 231.935 525.808 232.053 525.581L232.064 525.561L231.873 525.483C231.784 525.604 231.622 525.668 231.484 525.624L231.361 525.584C231.208 525.534 231.146 525.371 231.224 525.221L231.41 524.863C231.488 524.713 231.678 524.631 231.831 524.681L231.954 524.72C232.108 524.77 232.17 524.933 232.092 525.083L231.906 525.441C231.897 525.457 231.884 525.468 231.873 525.483L232.064 525.561L232.335 525.039C232.453 524.812 232.359 524.565 232.126 524.49L231.941 524.43C231.708 524.354 231.421 524.479 231.303 524.706z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M229.082 530.231L229.79 528.896L229.959 529.028L229.251 530.363L229.082 530.231z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M230.468 526.587L230.309 527.177C230.242 527.424 230.387 527.645 230.631 527.669L230.825 527.687C231.068 527.711 231.322 527.528 231.389 527.281L231.395 527.259L231.192 527.223C231.131 527.361 230.986 527.458 230.842 527.445L230.714 527.432C230.553 527.417 230.457 527.27 230.501 527.107L230.606 526.718C230.65 526.554 230.818 526.433 230.979 526.449L231.107 526.461C231.268 526.477 231.364 526.623 231.32 526.786L231.215 527.176C231.21 527.193 231.199 527.207 231.192 527.223L231.395 527.259L231.548 526.691C231.615 526.444 231.47 526.223 231.226 526.199L231.032 526.18C230.788 526.157 230.534 526.34 230.468 526.587z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M230.064 528.433L230.772 527.098L230.941 527.23L230.233 528.565L230.064 528.433z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M232.447 523.051L232.119 523.567C231.982 523.783 232.054 524.037 232.28 524.132L232.459 524.208C232.685 524.303 232.982 524.204 233.119 523.988L233.131 523.969L232.949 523.874C232.849 523.987 232.682 524.038 232.548 523.981L232.43 523.932C232.281 523.869 232.233 523.701 232.324 523.558L232.54 523.217C232.63 523.075 232.827 523.009 232.976 523.072L233.094 523.122C233.243 523.185 233.291 523.353 233.2 523.496L232.984 523.836C232.975 523.851 232.96 523.861 232.949 523.874L233.131 523.969L233.447 523.473C233.584 523.257 233.512 523.002 233.286 522.907L233.106 522.831C232.881 522.736 232.584 522.835 232.447 523.051z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M231.692 524.873L232.548 523.628L232.701 523.778L231.845 525.023L231.692 524.873z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M230.884 526.666L231.453 525.267L231.635 525.381L231.066 526.781L230.884 526.666z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M233.57 521.5L233.25 522.005C233.115 522.217 233.186 522.466 233.407 522.559L233.583 522.634C233.804 522.727 234.095 522.63 234.229 522.418L234.241 522.399L234.062 522.307C233.965 522.417 233.801 522.467 233.67 522.411L233.554 522.362C233.408 522.301 233.361 522.136 233.45 521.996L233.662 521.663C233.75 521.523 233.943 521.458 234.089 521.52L234.205 521.569C234.351 521.631 234.398 521.795 234.309 521.935L234.097 522.269C234.088 522.284 234.074 522.294 234.062 522.307L234.241 522.399L234.55 521.913C234.685 521.701 234.614 521.452 234.393 521.358L234.217 521.284C233.996 521.191 233.705 521.288 233.57 521.5z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M232.831 523.285L233.67 522.065L233.819 522.212L232.981 523.432L232.831 523.285z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M234.665 519.921L234.394 520.442C234.281 520.66 234.371 520.897 234.594 520.97L234.772 521.027C234.996 521.1 235.272 520.981 235.386 520.763L235.396 520.744L235.213 520.668C235.127 520.784 234.971 520.846 234.839 520.803L234.721 520.765C234.573 520.717 234.514 520.56 234.589 520.416L234.768 520.073C234.843 519.929 235.025 519.85 235.173 519.898L235.291 519.936C235.438 519.984 235.498 520.141 235.423 520.285L235.244 520.628C235.236 520.643 235.223 520.654 235.213 520.668L235.396 520.744L235.657 520.243C235.77 520.025 235.68 519.787 235.456 519.715L235.278 519.657C235.055 519.584 234.779 519.704 234.665 519.921z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M235.63 518.203L235.359 518.723C235.245 518.941 235.336 519.179 235.559 519.251L235.737 519.309C235.961 519.381 236.237 519.262 236.35 519.044L236.36 519.025L236.178 518.949C236.092 519.065 235.936 519.127 235.804 519.085L235.686 519.046C235.538 518.999 235.479 518.842 235.554 518.698L235.733 518.354C235.808 518.21 235.99 518.131 236.138 518.179L236.255 518.217C236.403 518.265 236.463 518.422 236.388 518.566L236.209 518.91C236.201 518.925 236.188 518.936 236.178 518.949L236.36 519.025L236.622 518.524C236.735 518.306 236.645 518.068 236.421 517.996L236.243 517.938C236.02 517.866 235.744 517.985 235.63 518.203z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M236.63 516.397L236.224 516.82C236.054 516.997 236.073 517.25 236.268 517.383L236.422 517.488C236.616 517.62 236.915 517.584 237.085 517.406L237.1 517.391L236.946 517.267C236.831 517.354 236.664 517.37 236.549 517.292L236.447 517.222C236.318 517.134 236.305 516.967 236.418 516.85L236.686 516.571C236.799 516.453 236.996 516.429 237.124 516.517L237.226 516.586C237.355 516.674 237.368 516.841 237.255 516.958L236.987 517.238C236.975 517.25 236.959 517.257 236.946 517.267L237.1 517.391L237.491 516.983C237.662 516.806 237.642 516.553 237.448 516.42L237.293 516.315C237.099 516.183 236.8 516.219 236.63 516.397z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M234.013 521.677L234.863 520.501L235.007 520.649L234.156 521.825L234.013 521.677z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M235.077 520.134L235.713 518.83L235.879 518.952L235.243 520.255L235.077 520.134z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M236.02 518.371L236.657 517.068L236.823 517.189L236.186 518.493L236.02 518.371z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M226.532 536.615C226.638 536.809 227.47 536.644 227.594 536.031C227.718 535.418 227.416 535.248 227.614 534.846C227.496 534.785 227.258 534.58 227.258 534.58C227.258 534.58 227.071 534.851 226.643 534.835C226.214 534.819 225.802 535.213 225.897 535.538L226.14 535.447C226.14 535.447 226.256 535.047 226.831 535.025C227.321 535.005 227.256 534.959 227.256 534.959C227.256 534.959 227.251 535.255 227.361 535.53C227.47 535.805 227.203 536.54 226.672 536.413C226.689 536.445 226.532 536.615 226.532 536.615z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M227.267 535.226C227.057 535.19 226.74 534.682 227.112 534.325C227.392 534.058 227.643 533.086 227.643 533.086C227.643 533.086 227.46 532.201 228.218 532.201C228.472 532.234 228.474 532.667 228.474 532.667L228.281 532.659C228.281 532.659 228.179 532.336 227.933 532.509C227.748 532.725 227.837 533.093 227.885 533.18C227.933 533.267 227.367 534.375 227.367 534.375C227.367 534.375 226.994 534.731 227.197 534.961C227.399 535.191 227.267 535.226 227.267 535.226z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M228.313 531.96L228.833 530.542L229.018 530.649L228.498 532.068L228.313 531.96z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M237.217 516.605C237.2 516.607 237.184 516.603 237.168 516.603C237.023 516.601 236.901 516.511 236.887 516.378L236.875 516.261C236.86 516.113 236.983 515.973 237.148 515.949L237.212 515.94C237.213 515.889 237.214 515.836 237.214 515.783L237.045 515.806C236.794 515.842 236.608 516.054 236.632 516.278L236.65 516.456C236.674 516.679 236.898 516.834 237.149 516.798L237.171 516.795L237.307 516.776C237.303 516.719 237.286 516.659 237.253 516.6L237.217 516.605z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M238.143 516.064C238.123 515.877 237.961 515.74 237.762 515.721C237.727 515.78 237.688 515.839 237.646 515.898C237.766 515.918 237.861 516.004 237.874 516.12L237.886 516.237C237.901 516.385 237.779 516.525 237.613 516.549L237.592 516.552C237.619 516.611 237.63 516.672 237.625 516.731L237.748 516.714C237.999 516.678 238.185 516.466 238.161 516.242L238.143 516.064z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M229.217 515.818C229.013 515.806 228.818 515.796 228.613 515.784C228.357 515.771 228.265 515.865 228.421 516.026C228.471 516.077 228.499 516.106 228.549 516.157C228.72 516.327 229.069 516.493 229.334 516.517C229.341 516.517 229.35 516.519 229.357 516.519C229.31 516.465 229.268 516.417 229.221 516.363C229.055 516.332 228.865 516.242 228.765 516.142C228.732 516.108 228.712 516.089 228.68 516.056C228.575 515.947 228.632 515.88 228.801 515.889C228.937 515.898 229.067 515.905 229.202 515.913C229.373 515.925 229.584 516.011 229.695 516.122C229.728 516.155 229.75 516.177 229.783 516.211C229.894 516.327 229.855 516.414 229.683 516.403C229.546 516.393 229.415 516.384 229.278 516.373C229.258 516.369 229.24 516.367 229.221 516.363C229.268 516.417 229.31 516.465 229.357 516.519C229.558 516.535 229.75 516.55 229.95 516.565C230.209 516.582 230.262 516.441 230.091 516.262C230.041 516.212 230.007 516.177 229.957 516.126C229.788 515.957 229.476 515.834 229.217 515.818z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M231.15 515.982C230.952 515.974 230.762 515.965 230.563 515.955C230.315 515.946 230.236 516.051 230.402 516.225C230.451 516.274 230.489 516.314 230.538 516.364C230.718 516.545 231.07 516.719 231.328 516.741C231.335 516.741 231.342 516.742 231.35 516.742C231.303 516.689 231.252 516.63 231.206 516.577C231.043 516.546 230.851 516.452 230.745 516.345C230.713 516.312 230.687 516.285 230.655 516.253C230.545 516.137 230.592 516.061 230.757 516.068C230.889 516.076 231.014 516.082 231.146 516.088C231.313 516.099 231.525 516.19 231.644 516.31C231.676 516.343 231.705 516.372 231.737 516.405C231.854 516.529 231.823 516.623 231.657 516.614C231.522 516.604 231.396 516.597 231.262 516.588C231.243 516.584 231.224 516.58 231.206 516.577C231.252 516.63 231.303 516.689 231.35 516.742C231.546 516.757 231.733 516.77 231.928 516.784C232.18 516.798 232.22 516.647 232.04 516.457C231.991 516.407 231.947 516.361 231.898 516.311C231.719 516.13 231.402 515.996 231.15 515.982z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M229.435 516.1C229.943 516.144 230.427 516.185 230.933 516.227C230.957 516.279 230.977 516.322 231.003 516.375C230.495 516.33 230.008 516.286 229.498 516.239C229.474 516.187 229.459 516.152 229.435 516.1z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M233.065 516.115C232.882 516.119 232.707 516.124 232.522 516.128C232.294 516.136 232.253 516.265 232.449 516.451C232.5 516.5 232.555 516.55 232.606 516.599C232.814 516.791 233.168 516.953 233.402 516.952C233.409 516.952 233.416 516.953 233.422 516.952C233.372 516.9 233.307 516.832 233.257 516.78C233.104 516.761 232.91 516.672 232.788 516.559C232.754 516.527 232.719 516.494 232.684 516.462C232.555 516.339 232.578 516.248 232.729 516.243C232.85 516.24 232.967 516.238 233.088 516.235C233.243 516.234 233.459 516.321 233.592 516.443C233.626 516.475 233.662 516.509 233.696 516.541C233.829 516.668 233.82 516.774 233.669 516.779C233.548 516.783 233.431 516.784 233.309 516.787C233.291 516.784 233.274 516.782 233.257 516.78C233.307 516.832 233.372 516.9 233.422 516.952C233.601 516.949 233.769 516.944 233.946 516.94C234.174 516.931 234.181 516.764 233.98 516.57C233.928 516.522 233.873 516.471 233.822 516.422C233.62 516.237 233.298 516.111 233.065 516.115z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M234.91 516.096C234.729 516.104 234.557 516.111 234.375 516.118C234.15 516.13 234.117 516.269 234.315 516.458C234.367 516.506 234.423 516.559 234.474 516.607C234.684 516.801 235.031 516.957 235.26 516.949C235.267 516.949 235.273 516.948 235.28 516.948C235.23 516.897 235.166 516.83 235.116 516.778C234.966 516.763 234.775 516.676 234.652 516.563C234.618 516.531 234.582 516.496 234.548 516.464C234.417 516.339 234.435 516.244 234.584 516.237C234.704 516.232 234.819 516.228 234.938 516.222C235.09 516.218 235.306 516.305 235.44 516.428C235.474 516.46 235.51 516.493 235.544 516.525C235.675 516.651 235.667 516.759 235.52 516.768C235.402 516.774 235.287 516.779 235.168 516.784C235.15 516.782 235.134 516.78 235.116 516.778C235.166 516.83 235.23 516.897 235.28 516.948C235.453 516.94 235.618 516.931 235.791 516.922C236.012 516.906 236.022 516.74 235.823 516.55C235.771 516.501 235.717 516.45 235.665 516.402C235.463 516.217 235.14 516.089 234.91 516.096z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M236.806 516.034C236.599 516.002 236.4 515.971 236.192 515.939C235.933 515.901 235.829 516.008 235.96 516.193C235.995 516.242 236.032 516.292 236.067 516.34C236.208 516.529 236.527 516.717 236.791 516.763C236.799 516.764 236.806 516.765 236.814 516.766C236.782 516.715 236.745 516.657 236.712 516.606C236.549 516.562 236.375 516.457 236.291 516.345C236.268 516.313 236.244 516.28 236.221 516.248C236.133 516.125 236.201 516.053 236.372 516.078C236.51 516.1 236.641 516.12 236.779 516.142C236.953 516.17 237.156 516.286 237.248 516.41C237.271 516.442 237.295 516.475 237.318 516.507C237.406 516.63 237.344 516.708 237.174 516.685C237.037 516.664 236.906 516.644 236.768 516.622C236.748 516.616 236.731 516.611 236.712 516.606C236.745 516.657 236.782 516.715 236.814 516.766C237.016 516.799 237.206 516.827 237.404 516.855C237.659 516.888 237.75 516.767 237.619 516.582C237.585 516.533 237.549 516.485 237.514 516.437C237.376 516.251 237.069 516.077 236.806 516.034z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M231.485 516.315C231.986 516.365 232.466 516.412 232.966 516.46C232.99 516.511 233.018 516.568 233.043 516.62C232.54 516.568 232.058 516.518 231.553 516.465C231.53 516.414 231.508 516.366 231.485 516.315z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M233.373 516.467C233.818 516.447 234.241 516.424 234.682 516.397C234.718 516.45 234.76 516.509 234.796 516.562C234.356 516.59 233.934 516.614 233.488 516.634C233.451 516.581 233.409 516.521 233.373 516.467z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M235.224 516.425C235.662 516.395 236.077 516.362 236.509 516.326C236.546 516.379 236.585 516.436 236.622 516.489C236.191 516.527 235.777 516.561 235.34 516.591C235.303 516.538 235.261 516.478 235.224 516.425z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M260.901 584.3C262.701 582.7 262.701 581.1 261.101 577.5C260.817 576.649 260.685 575.042 260.631 573.324L254.004 574.218C253.982 574.827 253.918 575.347 253.8 575.7C253.301 577.197 252.391 579.732 252.616 582.096C251.421 583.116 250.011 584.115 248.901 584.3C248.828 584.295 248.751 584.287 248.674 584.278C246.944 583.384 245.137 582.425 244.5 582C243.15 581.1 242.4 580.35 242.4 580.35C241.923 580.732 241.385 581.296 241.019 581.849C239.649 581.294 238.606 580.835 238.358 580.725C238.356 580.725 238.355 580.724 238.354 580.724C238.349 580.722 238.344 580.719 238.34 580.717C238.329 580.713 238.32 580.709 238.314 580.706C238.308 580.703 238.3 580.7 238.3 580.7C238.098 580.548 237.897 580.377 237.678 580.187C238.195 579.659 238.857 579.211 239.7 579C243.3 578.1 250.2 570.3 252.901 567.3C253.475 567.706 254.094 571.722 254.004 574.218L260.631 573.324C260.534 570.198 260.701 566.7 260.701 566.7C260.701 566.7 264.101 561.7 259.501 558.7C256.3 555.5 254.101 555.5 250.101 557.7C246.1 559.9 241.3 561.7 241.3 561.7C241.3 561.7 245.5 547.699 233.9 545.5C233.3 544.899 234.5 544.1 234.5 544.1C234.5 544.1 231.3 543.099 230.1 543.099C229.597 543.099 227.969 540.814 226.233 537.586C226.747 536.903 227.129 536.416 227.129 536.416C227.129 536.416 226.542 535.59 226.188 535.437C225.949 535.571 225.7 535.794 225.448 536.073C223.292 531.772 221.098 522.23 221.096 522.195C221.097 522.196 221.1 522.199 221.1 522.199C221.1 522.199 221.513 522.353 221.88 522.309C222.324 522.355 222.886 522.244 222.701 521.305C222.847 521.306 223.459 521.283 223.726 521.265C225.226 521.161 227.728 520.525 229.1 514.899C229.124 514.896 231.9 514.799 231.9 514.799L232.9 513.999C232.9 513.999 232.88 513.996 232.845 513.989C233.002 513.93 233.505 513.728 234.067 513.391C234.63 513.053 235.23 512.64 235.27 512.612C235.279 512.606 235.288 512.599 235.297 512.592C235.831 513.207 236.297 513.117 236.297 513.117C236.297 513.117 237.199 514.816 237.366 516.272C237.404 516.231 237.484 516.225 237.489 516.269C238.171 515.55 237.655 513.368 237.011 511.145C237.011 511.145 237.636 510.567 238.049 509.855C238.461 509.142 238.5 508.566 238.5 508.499C240.7 508.099 243.7 503.899 240.3 501.699C240.52 500.923 240.5 499.299 240.5 499.299C240.5 499.299 237.1 496.299 234.7 496.499C234.645 496.502 234.37 496.522 233.882 496.546C233.574 495.546 232.357 494.891 231.395 494.972C231.224 494.961 231.057 494.968 230.9 494.999C230.507 495.077 229.974 495.176 229.345 495.462C229.52 495.853 229.663 496.182 229.74 496.359C229.744 496.355 229.748 496.351 229.752 496.347C229.823 496.281 229.895 496.216 229.969 496.159C230.033 496.309 230.138 496.554 230.181 496.653C229.937 496.659 229.687 496.665 229.434 496.671C229.533 496.558 229.636 496.456 229.74 496.359C229.663 496.182 229.52 495.853 229.345 495.462C228.809 495.706 228.205 496.084 227.554 496.716C224.799 496.785 221.879 496.877 219.895 497.038C219.54 497.067 220.066 496.702 220.08 496.667C220.606 496.334 221.5 495.899 221.5 495.899C221.5 495.899 220.1 494.499 219.1 494.899C218.1 495.299 220.5 493.499 220.5 493.499C220.5 493.499 218.1 493.699 217.5 494.099C216.9 494.499 216.9 493.299 216.9 493.299C216.9 493.299 212.5 495.099 211.5 497.499C211.446 497.565 211.393 497.63 211.34 497.695C211.379 497.575 211.411 497.455 211.365 497.395C211.144 497.109 209.855 498.148 209.62 499.311L209.5 499.299C209.536 499.317 209.576 499.323 209.616 499.324C209.616 499.328 209.614 499.333 209.613 499.337C209.543 499.317 209.5 499.299 209.5 499.299C208.412 498.755 205.9 498.099 204.1 499.299C202.9 499.099 200.7 498.299 200.9 499.499C203.1 500.499 203.9 505.299 206.7 504.499C206.7 504.499 206.613 504.634 206.493 504.855C205.354 506.038 200.251 505.647 199.7 507.299C199.7 507.299 203.7 506.299 205.3 506.299C206.756 506.299 199.1 507.299 197.5 511.099C198.7 510.699 201.3 508.899 202.1 508.899C202.9 508.899 198.5 511.499 197.7 513.699C197.7 513.699 200.1 511.499 201.3 511.299C202.5 511.099 198.3 512.899 197.5 517.099C198.5 516.299 200.1 516.099 200.1 516.099C200.1 516.099 194.9 520.099 194.1 524.299C194.9 522.299 196.9 521.299 196.9 521.299C196.9 521.299 192.7 526.499 192.3 528.299C193.9 526.899 195.9 526.099 195.9 526.099C195.9 526.099 190.9 529.699 190.3 535.099C190.9 534.699 194.1 530.299 195.7 530.099C194.697 530.875 189.5 536.699 187.9 541.299C188.118 541.249 193.3 536.099 194.1 536.099C194.846 536.099 188.637 542.532 186.174 543.725C187.305 543.316 190.147 542.341 191.1 542.499C190.211 542.648 188.853 543.237 187.437 543.908L196.096 550.53C196.286 550.18 196.449 549.834 196.556 549.535C196.504 550.185 196.494 551.105 196.654 551.81C196.498 551.702 196.332 551.586 196.15 551.449C196.128 551.423 196.104 551.398 196.082 551.372L193.15 561.9C193.215 561.932 193.285 561.96 193.353 561.989C193.162 563.196 192.822 564.894 192.343 566.891C192.314 566.621 192.272 566.349 192.218 566.082C192.402 564.924 192.607 563.56 192.663 562.561C192.801 562.206 192.962 561.964 193.15 561.9C193.15 561.9 193.15 561.9 193.15 561.9L196.082 551.372C195.99 551.263 195.896 551.155 195.799 551.047C195.904 550.877 196.002 550.703 196.096 550.53L187.437 543.908C187.099 544.068 186.758 544.232 186.418 544.397C186.338 544.382 186.258 544.368 186.181 544.356C186.159 544.352 186.138 544.349 186.116 544.345C186.03 544.332 185.946 544.32 185.864 544.31C185.846 544.308 185.828 544.306 185.81 544.303C185.731 544.294 185.654 544.285 185.58 544.278C185.574 544.278 185.567 544.277 185.561 544.276C185.482 544.269 185.406 544.263 185.334 544.258C185.32 544.257 185.307 544.256 185.294 544.255C185.224 544.25 185.157 544.246 185.094 544.243C185.086 544.243 185.079 544.243 185.071 544.242C184.832 544.232 184.655 544.233 184.563 544.236C184.563 544.236 184.563 544.236 184.563 544.236C184.558 544.236 184.555 544.236 184.55 544.236C184.513 544.237 184.492 544.238 184.492 544.238C183.292 544.438 183.12 543.434 182.5 543.299C181.522 543.087 182.7 542.099 182.7 542.099C182.7 542.099 186.5 541.699 187.3 537.899C190.7 535.699 187.7 528.299 179.9 530.699C178.7 530.099 177.3 527.299 176.9 527.299C175.5 527.299 171.5 526.099 171.3 533.299C168.9 533.299 165.5 534.299 165.3 537.099C164.3 537.699 161.5 530.499 159.3 528.899C158.5 527.299 154.5 519.899 154.7 517.899C154.5 517.899 154.1 517.899 154.1 517.899L153.899 513.899C153.899 513.899 155.7 512.899 155.899 509.899C156.5 507.899 157.3 506.699 157.899 506.299C157.5 505.099 154.899 506.899 154.7 508.499C153.5 510.699 153.899 505.299 154.299 503.699C154.299 503.699 153.299 500.899 152.5 503.899C152.924 500.824 151.299 500.299 150.899 502.699C150.099 502.099 148.699 502.899 149.099 505.099C148.095 504.873 147.099 506.299 147.499 508.699C147.328 510.471 147.499 512.499 148.499 513.699C149.499 514.899 148.099 514.299 147.899 515.099C147.699 515.899 148.299 516.699 149.699 516.899C149.899 516.899 150.099 518.899 150.099 518.899L149.499 519.099C149.499 519.099 150.899 522.099 150.899 524.099C150.899 526.099 155.299 537.699 158.5 540.499C161.5 544.899 166.5 551.1 168.1 552.899C168.1 552.899 169.3 557.9 171.1 560.7C171.5 563.9 173.3 569.9 173.7 570.9C173.893 571.383 173.899 572.101 173.877 572.849C173.562 573.479 173.415 574.361 173.564 574.937C173.255 574.893 172.786 574.991 172.801 575.181L172.961 577.193C172.97 577.862 172.986 578.619 173.016 579.166C172.861 579.246 172.7 579.3 172.7 579.3C172.7 579.3 172.7 577.7 169.9 578.7C169.9 579.1 170.3 581.5 170.3 581.5C170.3 581.5 171.3 582.1 171.7 581.9C171.1 582.7 172.3 585.3 172.9 586.7C172.5 587.5 171.3 588.9 173.5 589.5C173.5 589.5 174.7 592.5 175.1 592.5C175.9 592.9 176.5 591.1 176.5 591.1C176.5 591.1 176.5 593.3 175.9 594.1C178.7 593.1 177.9 587.9 176.1 587.3C175.9 587.3 176.3 585.5 176.3 585.5C176.3 585.5 176.989 587.212 179.472 587.466C179.583 588.212 179.995 589.045 180.9 589.95C180.826 590.018 180.748 590.098 180.666 590.188C180.666 590.188 180.666 590.188 180.666 590.188C180.539 590.101 179.847 590.412 179.366 591.107C178.885 591.803 178.797 592.619 178.924 592.707C178.926 592.708 178.93 592.706 178.933 592.707C178.928 592.715 178.923 592.723 178.919 592.731C178.913 592.72 178.909 592.705 178.899 592.7C178.764 592.626 178.107 593.007 177.701 593.749C177.31 594.465 177.295 595.253 177.416 595.373C177.41 595.383 177.405 595.392 177.4 595.402C177.399 595.401 177.399 595.4 177.399 595.4C177.264 595.326 176.607 595.707 176.201 596.449C175.796 597.191 175.794 598.012 175.929 598.086C175.939 598.091 175.954 598.087 175.968 598.085C175.945 598.129 175.922 598.173 175.9 598.216C175.845 598.158 175.8 598.125 175.8 598.125C175.035 598.492 174.285 599.284 173.652 600.169L174.188 600.774C174.409 600.448 174.678 600.147 175.021 599.9C174.705 600.504 174.438 601.014 174.236 601.383C174.151 601.283 174.047 601.203 173.958 601.148C174.022 601.032 174.089 600.919 174.163 600.809C174.171 600.797 174.18 600.786 174.188 600.774L173.652 600.169C172.733 601.453 172.063 602.934 171.975 603.6C171.904 604.127 171.472 605.169 170.995 606.76C170.141 608.88 169.461 610.95 169.425 611.925C169.35 613.95 166.35 623.475 165.675 624C167.216 622.99 168.569 618.515 169.413 615.513C168.624 619.927 167.4 632.475 167.4 632.475C167.4 632.475 167.947 629.418 168.569 625.816C168.524 626.434 168.5 627.003 168.5 627.5C168.5 631.5 166.3 634.9 169.5 640.7C170.3 643.5 164.7 655.501 161.9 650.5C160.7 654.501 162.5 656.501 163.9 656.301C165.3 656.101 157.5 664.301 149.899 660.501C151.7 661.901 154.299 662.701 156.899 662.501C154.899 663.301 151.1 663.301 149.899 662.501C151.299 663.701 155.1 664.501 158.3 662.901C159.264 662.718 160.7 662.701 162.3 663.301C163.9 663.901 157.5 666.301 155.5 666.301C157.598 666.825 160.614 666.28 161.739 665.733C160.413 666.714 156.099 669.941 153.7 670.101C156.5 670.701 158.7 669.301 158.7 669.301C158.7 669.301 156.3 672.301 153.899 672.701C156.3 672.501 159.3 670.701 159.3 670.701C159.3 670.701 155.899 675.501 152.299 675.901C155.299 676.301 162.7 672.101 162.7 672.101C162.7 672.101 160.5 676.301 158.3 676.701C161.3 676.301 164.7 673.701 165.3 672.701C165.3 674.228 163.283 677.484 161.205 678.679C164.333 677.4 167.722 675.292 168.288 673.335C168.374 673.515 169.437 674.427 168.9 675.501C170.1 675.701 171.9 672.301 171.5 669.301C171.1 666.301 173.3 661.501 175.3 661.301C174.5 662.701 173.3 663.901 173.3 663.901C173.3 663.901 173.3 667.301 174.5 669.101C175.9 669.501 175.7 670.301 176.5 672.101C177.3 673.901 178.9 675.301 180.1 676.501C181.3 677.701 185.7 686.701 185.7 688.701C185.7 690.701 183.9 692.301 184.9 694.501C183.9 695.501 183.3 698.301 183.3 698.301C183.3 698.301 182.7 702.901 190.1 704.101C195.7 704.501 194.3 701.901 194.3 701.901C194.3 701.901 193.1 694.101 193.5 686.701C193.5 683.901 191.5 682.101 190.3 680.901C188.591 679.192 185.1 674.101 184.7 671.901C184.3 669.701 183.9 663.701 182.9 662.101C183.1 661.101 183.9 656.701 184.1 655.101C184.3 653.501 187.3 651.7 187.7 649.101C187.9 649.301 189.1 648.9 189.1 648.9C189.1 648.9 192.1 651.7 195.1 652.701C198.1 653.701 199.5 657.101 200.1 658.701C200.7 660.301 200.9 666.501 200.3 667.901C199.7 669.301 198.1 672.701 201.9 676.701C201.9 680.101 204.7 683.501 205.9 685.301C207.1 687.101 212.5 696.901 212.7 698.701C212.9 700.501 215.1 701.701 214.9 702.301C214.7 702.901 218.3 704.701 223.1 704.501C226.104 704.376 228.7 704.501 228.1 701.501C227.7 699.701 228.3 700.501 226.5 698.701C224.7 696.901 218.1 699.101 210.7 680.901C210.7 680.901 209.9 678.101 210.9 675.101C211.347 673.759 210.9 671.501 210.1 669.501C209.9 666.901 211.5 661.301 210.9 656.501C210.3 651.7 211.7 646.101 212.1 643.5C212.7 640.7 212.3 633.3 208.9 628.1C209.381 626.802 209.932 625.658 210.507 624.646C211.032 629.52 211.216 633.578 211.319 632.008C211.418 630.493 211.403 627.5 211.024 623.776C212.702 621.11 214.474 619.526 215.3 618.7C215.336 618.664 216.658 617.464 216.729 617.399C216.745 617.384 216.761 617.37 216.778 617.355C218.786 623.885 219.9 635.328 219.9 632.85C219.9 630.356 219.334 623.91 217.312 616.866C217.413 616.773 218.184 616.049 218.228 616.007C218.228 616.007 218.205 615.918 221.055 613.143C223.905 610.368 227.887 604.058 227.9 601.1C228.1 600.9 229.3 600.7 229.3 600.7L229.362 600.591C229.933 600.167 230.714 598.967 231.42 597.55C231.955 597.613 233.006 597.636 233.3 596.9C233.522 596.344 234.177 593.475 234.714 591.033C235.309 591.202 235.7 591.3 235.7 591.3C235.7 591.3 239.7 592.7 239.9 593.7L240.371 593.902C239.973 594.629 239.277 595.615 238.35 595.8C238.5 596.25 239.4 596.1 239.4 596.1C239.4 596.1 239.318 596.412 239.229 596.807L239.196 596.704L239.192 596.977C239.167 597.092 239.143 597.21 239.12 597.328L238.778 596.83L238.972 597.52L238.416 597.068L238.799 597.673L238.139 597.395L238.677 597.868L237.965 597.789L238.615 598.087L237.909 598.195L238.616 598.314L237.972 598.627L238.683 598.537L238.157 599.024L238.811 598.732L238.443 599.346L238.987 598.881L238.806 599.574L239.198 598.974L239.216 599.689L239.416 599.004L239.636 599.686L239.648 598.97L240.054 599.561L239.86 598.871L240.416 599.323L240.034 598.717L240.693 598.996L240.156 598.523L240.868 598.602L240.217 598.303L240.923 598.195L240.216 598.077L240.86 597.764L240.149 597.853L240.675 597.367L240.021 597.659L240.39 597.045L239.894 597.468C240.035 596.525 240.521 595.51 241.95 594.6C241.95 594.6 241.928 594.546 241.891 594.465C241.891 594.465 241.891 594.465 241.891 594.465C241.952 594.48 243.02 594.677 243.026 594.678C243.026 594.678 243.026 594.678 243.027 594.678C243.192 594.699 243.548 594.729 243.548 594.729C243.644 594.736 244.108 594.743 244.108 594.743C244.673 594.741 245.447 594.519 245.457 594.515C245.457 594.515 245.457 594.515 245.457 594.515C245.613 594.457 245.762 594.386 245.9 594.3C245.7 596.3 244.9 600.3 249.7 601.7C254.5 603.1 255.901 602.3 256.101 600.3C256.3 598.3 257.101 594.7 257.101 594.7C257.101 594.7 258.104 594.029 258.612 592.108L248.713 590.476C248.728 590.601 248.714 590.738 248.673 590.886L247.9 590.5C247.9 590.5 248.128 590.223 248.524 589.951C248.568 590.095 248.622 590.243 248.7 590.4C248.707 590.424 248.709 590.45 248.713 590.476L258.612 592.108C258.785 591.456 258.901 590.662 258.901 589.7C258.901 585.9 259.901 585.3 260.901 584.3z"/>
+ </g>
+ <g style="fill: #c35316">
+ <path d="M255.101 579.7C255.101 579.7 251.3 583.9 248.901 584.3C245.9 584.1 238.3 580.7 238.3 580.7C237.5 580.1 236.743 579.213 234.645 577.995C234.389 577.847 233.931 578.299 233.671 578.151C231.879 577.133 226.013 573.748 224.311 572.878C222.75 571.076 220.769 570.542 219.5 570.3C216.844 569.636 197.376 568.498 192.745 568.323L192.745 568.323C192.741 568.323 192.738 568.322 192.733 568.322C192.648 568.319 192.568 568.316 192.493 568.314C192.464 568.313 192.438 568.312 192.41 568.311C192.362 568.309 192.315 568.308 192.271 568.307C192.246 568.306 192.222 568.305 192.199 568.305C192.157 568.304 192.119 568.303 192.083 568.302C192.065 568.302 192.046 568.301 192.03 568.301C191.981 568.3 191.936 568.3 191.9 568.3C191.9 567.735 192.557 564.472 192.663 562.561C192.801 562.206 192.962 561.964 193.15 561.9C193.269 561.959 193.395 562.014 193.526 562.065C195.905 563.16 198.146 562.726 199.75 561.3C200.152 560.943 200.403 560.566 200.539 560.187C201.381 558.309 200.951 555.525 199.975 554.875C198.375 552.475 197.95 552.8 196.15 551.449C193.92 548.784 190.303 546.331 189.605 545.768C187.861 544.361 185.485 544.236 184.732 544.234C184.724 544.234 184.717 544.234 184.709 544.234C184.683 544.234 184.659 544.234 184.637 544.234C184.618 544.235 184.604 544.235 184.589 544.235C184.58 544.235 184.571 544.235 184.563 544.236C184.551 544.236 184.542 544.236 184.534 544.236C184.526 544.237 184.521 544.237 184.515 544.237C184.51 544.237 184.506 544.237 184.503 544.238C184.496 544.238 184.492 544.238 184.492 544.238C183.292 544.438 183.12 543.434 182.5 543.299C181.522 543.087 182.7 542.099 182.7 542.099C182.7 542.099 186.5 541.699 187.3 537.899C190.7 535.699 187.7 528.299 179.9 530.699C178.7 530.099 177.3 527.299 176.9 527.299C175.5 527.299 171.5 526.099 171.3 533.299C168.9 533.299 165.5 534.299 165.3 537.099C164.3 537.699 161.5 530.499 159.3 528.899C158.5 527.299 154.5 519.899 154.7 517.899C154.5 517.899 154.1 517.899 154.1 517.899L153.899 513.899C153.899 513.899 155.7 512.899 155.899 509.899C156.5 507.899 157.3 506.699 157.899 506.299C157.5 505.099 154.899 506.899 154.7 508.499C153.5 510.699 153.899 505.299 154.299 503.699C154.299 503.699 153.299 500.899 152.5 503.899C152.924 500.824 151.299 500.299 150.899 502.699C150.099 502.099 148.699 502.899 149.099 505.099C148.095 504.873 147.099 506.299 147.499 508.699C147.328 510.471 147.499 512.499 148.499 513.699C149.499 514.899 148.099 514.299 147.899 515.099C147.699 515.899 148.299 516.699 149.699 516.899C149.899 516.899 150.099 518.899 150.099 518.899L149.499 519.099C149.499 519.099 150.899 522.099 150.899 524.099C150.899 526.099 155.299 537.699 158.5 540.499C161.5 544.899 166.5 551.1 168.1 552.899C168.1 552.899 169.3 557.9 171.1 560.7C171.5 563.9 173.3 569.9 173.7 570.9C174.1 571.9 173.7 573.9 173.9 575.1C173.1 576.1 172.9 577.5 173.3 578.9C173.3 579.1 172.7 579.3 172.7 579.3C172.7 579.3 172.7 577.7 169.9 578.7C169.9 579.1 170.3 581.5 170.3 581.5C170.3 581.5 171.3 582.1 171.7 581.9C171.1 582.7 172.3 585.3 172.9 586.7C172.5 587.5 171.3 588.9 173.5 589.5C173.5 589.5 174.7 592.5 175.1 592.5C175.9 592.9 176.5 591.1 176.5 591.1C176.5 591.1 176.5 593.3 175.9 594.1C178.7 593.1 177.9 587.9 176.1 587.3C175.9 587.3 176.3 585.5 176.3 585.5C176.3 585.5 177.1 587.5 180.1 587.5C180.1 587.5 182.7 586.9 183.7 582.5C184.5 583.7 186.9 585.5 188.7 585.1C188.7 586.1 193.5 587.9 195.5 586.9C196.5 588.9 199.5 589.7 200.5 588.7C203.7 587.5 202.1 581.3 202.1 581.3C202.1 581.3 217.1 580.5 218.1 582.1C219.1 583.7 229.1 587.3 229.1 587.3C229.1 587.3 228.7 587.9 228.9 588.5C230.1 589.9 235.7 591.3 235.7 591.3C235.7 591.3 239.7 592.7 239.9 593.7L241.3 594.3C241.3 594.3 244.3 595.3 245.9 594.3L249.1 591.1L247.9 590.5C247.9 590.5 248.512 589.741 249.5 589.5C254.901 587.9 255.7 583.1 255.7 581.1C256.3 579.5 255.101 579.7 255.101 579.7z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M176.025 546.225C176.7 546.337 177.75 546.937 179.137 547.199C180.525 547.462 181.162 545.812 181.35 545.137C181.537 544.462 181.987 543.112 182.175 543.187C182.362 543.262 182.437 543.037 182.85 543.637C183.262 544.237 182.475 545.85 181.762 546.675C181.05 547.5 182.475 548.662 182.475 549C182.475 549.337 179.175 549.637 177.337 547.875C175.5 546.112 176.025 546.225 176.025 546.225z"/>
+ </g>
+ <g style="fill: #b29b96">
+ <path d="M182.325 543.674C182.025 543.824 182.512 544.725 181.725 545.887C182.662 545.062 182.325 543.674 182.325 543.674z"/>
+ </g>
+ <g style="fill: #000029">
+ <path d="M191.9 568.3C193.91 568.3 216.616 569.579 219.5 570.3C220.769 570.542 222.75 571.076 224.311 572.878C226.013 573.748 231.879 577.133 233.671 578.151C233.931 578.299 234.389 577.847 234.645 577.995C236.743 579.213 237.5 580.1 238.3 580.7C238.3 580.7 245.9 584.1 248.901 584.3C251.3 583.9 255.101 579.7 255.101 579.7C255.101 579.7 256.3 579.5 255.7 581.1C255.7 583.1 254.901 587.9 249.5 589.5C248.512 589.741 247.9 590.5 247.9 590.5L249.1 591.1L245.9 594.3C244.3 595.3 241.3 594.3 241.3 594.3L239.9 593.7C239.7 592.7 235.7 591.3 235.7 591.3C235.7 591.3 230.1 589.9 228.9 588.5C228.7 587.9 229.1 587.3 229.1 587.3C229.1 587.3 219.1 583.7 218.1 582.1C217.1 580.5 202.1 581.3 202.1 581.3C202.1 581.3 203.7 587.5 200.5 588.7C199.5 589.7 196.5 588.9 195.5 586.9C193.5 587.9 188.7 586.1 188.7 585.1C186.9 585.5 184.5 583.7 183.7 582.5C182.7 586.9 180.1 587.5 180.1 587.5C177.1 587.5 176.3 585.5 176.3 585.5C176.3 585.5 175.215 584.924 174.315 583.274C173.415 581.624 173.3 579.005 173.3 578.9C172.9 577.5 173.1 576.1 173.9 575.1C173.9 575.1 175.8 572.25 177.6 571.5C179.4 570.75 188.85 569.85 190.2 569.1C191.55 568.35 191.9 568.3 191.9 568.3z"/>
+ </g>
+ <g style="fill: #00003c">
+ <path d="M234.645 577.995C234.389 577.847 233.931 578.299 233.671 578.151C231.879 577.133 226.013 573.748 224.311 572.878C222.75 571.076 220.769 570.542 219.5 570.3C216.616 569.579 193.91 568.3 191.9 568.3C191.9 568.3 194.1 569.1 195.1 571.9C196.1 574.7 200.3 573.9 202.3 572.5C204.3 571.1 210.1 571.3 212.9 571.9C215.7 572.5 217.1 571.7 218.3 571.3C219.5 570.9 219.3 571.5 220.3 572.9C221.3 574.3 222.7 573.9 223.9 574.5C225.1 575.1 225.5 576.7 224.3 577.7C223.1 578.7 225.9 577.7 228.1 577.7C230.3 577.7 234.3 581.1 235.7 580.3C237.1 579.5 234.645 577.995 234.645 577.995z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M229.1 587.3C229.1 587.3 219.1 583.7 218.1 582.1C217.1 580.5 202.1 581.3 202.1 581.3C202.1 581.3 188.3 577.3 187.9 575.1C187.5 572.9 191.005 575.846 192.3 571.1C192.9 568.9 193.1 575.1 195.3 575.9C195.1 577.9 202.7 578.7 205.5 578.3C208.3 577.9 216.5 580.7 216.9 576.3C217.3 571.9 218.7 572.9 218.7 572.9C218.7 572.9 218.1 575.3 218.1 577.1C218.1 578.9 219.7 576.1 220.9 575.3C222.1 574.5 218.9 577.9 218.9 579.9C218.9 581.9 220.7 580.5 221.7 580.7C222.7 580.9 227.5 580.9 229.1 583.7C230.7 586.5 233.3 587.9 233.3 587.9L229.1 587.3z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M239.416 599.004L239.636 599.686L239.648 598.97L240.054 599.561L239.86 598.871L240.416 599.323L240.034 598.717L240.693 598.996L240.156 598.523L240.868 598.602L240.217 598.303L240.923 598.195L240.216 598.077L240.86 597.764L240.149 597.853L240.675 597.367L240.021 597.659L240.39 597.045L239.845 597.51L240.026 596.817L239.635 597.417L239.616 596.702L239.416 597.387L239.196 596.704L239.184 597.421L238.778 596.83L238.972 597.52L238.416 597.068L238.799 597.673L238.139 597.395L238.677 597.868L237.965 597.789L238.615 598.087L237.909 598.195L238.616 598.314L237.972 598.627L238.683 598.537L238.157 599.024L238.811 598.732L238.443 599.346L238.987 598.881L238.806 599.574L239.198 598.974L239.216 599.689L239.416 599.004z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M241.485 593.662C241.235 593.237 240.75 593.1 240.75 593.1C240.75 593.1 239.85 595.5 238.35 595.8C238.5 596.25 239.4 596.1 239.4 596.1C239.4 596.1 238.875 598.075 239.05 598.4C239.225 598.725 239.8 598.85 239.85 597.9C239.906 596.841 240.3 595.65 241.95 594.6C241.95 594.6 241.735 594.087 241.485 593.662z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M239.416 598.356C239.505 598.356 239.577 598.284 239.577 598.195C239.577 598.107 239.505 598.035 239.416 598.035C239.328 598.035 239.256 598.107 239.256 598.195C239.256 598.284 239.328 598.356 239.416 598.356z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M241.6 594.35C240.504 594.761 239.38 596.622 239.65 597.8C239.45 597.65 239.5 596.45 239.8 596.05C240.1 595.2 241.4 594.1 241.4 594.1L241.6 594.35z"/>
+ </g>
+ <g style="fill: #0d0d0d">
+ <path d="M233.671 578.151C233.931 578.299 234.389 577.847 234.645 577.995C236.743 579.213 237.5 580.1 238.3 580.7C238.3 580.7 245.9 584.1 248.901 584.3C251.3 583.9 255.101 579.7 255.101 579.7C255.101 579.7 256.3 579.5 255.7 581.1C255.7 583.1 254.901 587.9 249.5 589.5C248.512 589.741 247.9 590.5 247.9 590.5L249.1 591.1L245.9 594.3C244.3 595.3 241.3 594.3 241.3 594.3L239.9 593.7C239.7 592.7 235.7 591.3 235.7 591.3C235.7 591.3 230.1 589.9 228.9 588.5C228.7 587.9 229.1 587.3 229.1 587.3C229.1 587.3 231.6 585.15 232.65 582.9C233.7 580.65 233.671 578.151 233.671 578.151z"/>
+ </g>
+ <g style="fill: #171717">
+ <path d="M255.101 579.7C255.101 579.7 251.3 583.9 248.901 584.3C245.9 584.1 238.3 580.7 238.3 580.7C237.5 580.1 236.743 579.213 234.645 577.995C234.389 577.847 233.931 578.299 233.671 578.151C233.671 578.151 234.15 580.5 233.85 581.55C233.55 582.6 235.5 582.75 236.55 582.9C237.6 583.05 244.395 588.9 248.1 586.2C252.601 586.2 255.101 579.7 255.101 579.7z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M229.1 587.3C229.1 587.3 228.7 587.9 228.9 588.5C230.1 589.9 235.7 591.3 235.7 591.3C235.7 591.3 239.7 592.7 239.9 593.7L241.3 594.3C241.3 594.3 243.15 593.55 243.45 592.8C243.75 592.05 243.9 588.75 242.55 589.8C241.2 590.85 240.75 590.25 239.25 589.35C237.75 588.45 237.75 586.65 234.3 586.5C230.85 586.35 229.1 587.3 229.1 587.3z"/>
+ </g>
+ <g style="fill: #434343">
+ <path d="M165.3 537.099C165.5 534.299 168.9 533.299 171.3 533.299C171.5 526.099 175.5 527.299 176.9 527.299C177.3 527.299 178.7 530.099 179.9 530.699C187.7 528.299 190.7 535.699 187.3 537.899C186.5 541.699 182.7 542.099 182.7 542.099C182.7 542.099 180.15 544.649 173.55 544.199C169.65 544.199 168.3 542.699 167.7 541.199C165.45 540.449 165.3 537.099 165.3 537.099z"/>
+ </g>
+ <g style="fill: #1f1f1f">
+ <path d="M179.9 530.699C178.7 530.099 177.3 527.299 176.9 527.299C175.5 527.299 171.5 526.099 171.3 533.299C171.3 533.299 173.25 533.399 174.9 532.649C176.55 531.899 179.9 530.699 179.9 530.699z"/>
+ </g>
+ <g style="fill: #1f1f1f">
+ <path d="M180.2 530.924C180.2 530.924 176.775 532.124 175.125 532.874C173.475 533.624 171.375 533.749 171.375 533.749C168.975 533.749 165.725 534.299 165.525 537.099C165.525 537.099 165.45 540.449 167.7 541.199C168.3 542.699 169.65 544.199 173.55 544.199C180.15 544.649 182.7 542.099 182.7 542.099C182.7 542.099 186.5 541.699 187.3 537.899C190.7 535.699 187.625 528.749 180.2 530.924z"/>
+ </g>
+ <g style="fill: #050505">
+ <path d="M174.523 544.245C174.209 544.237 173.885 544.222 173.55 544.199C169.65 544.199 168.3 542.699 167.7 541.199C165.45 540.449 165.525 537.099 165.525 537.099C165.725 534.299 168.975 533.749 171.375 533.749C171.375 533.749 173.475 533.624 175.125 532.874C176.775 532.124 180.2 530.924 180.2 530.924C180.2 530.924 180.075 532.574 178.425 533.324C176.775 534.074 174.505 537.889 173.775 539.024C172.425 541.124 174.523 544.245 174.523 544.245z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M171.3 533.299C171.5 526.099 175.5 527.299 176.9 527.299C176.9 527.299 174.45 527.699 174.25 528.399C174.05 529.099 174.15 529.349 173 529.749C171.85 530.149 172.2 531.249 172.75 531.649C173.3 532.049 173.034 532.964 172.2 533.149C171.75 533.249 171.3 533.299 171.3 533.299z"/>
+ </g>
+ <g style="fill: #f49d73">
+ <path d="M172.2 536.699C171.986 537.77 172.5 538.649 172.5 539.549C172.5 539.549 172.125 542.574 174 544.5C175.35 546.6 176.85 546.899 178.2 546.75C178.2 546.75 182.25 545.85 182.55 541.349C184.05 541.499 183.75 540.149 183.75 538.949C183.75 537.749 183.45 536.099 182.4 537.749C182.1 538.349 181.2 536.399 181.35 535.499C181.5 534.599 178.159 532.187 176.4 534.449C174.3 537.149 172.2 536.699 172.2 536.699z"/>
+ </g>
+ <g style="fill: #e47a41">
+ <path d="M182.55 541.349C182.25 545.85 178.2 546.75 178.2 546.75C178.2 546.75 180.6 545.85 181.05 543.699C181.5 541.549 181.95 541.199 182.25 541.299C182.55 541.399 182.55 541.349 182.55 541.349z"/>
+ </g>
+ <g style="fill: #e47a41">
+ <path d="M180.016 533.996C180.834 534.45 181.414 535.114 181.35 535.499C181.2 536.399 182.1 538.349 182.4 537.749C183.181 536.522 183.547 537.121 183.683 538.003C183.63 538.553 183.82 538.925 183.32 540.834C183.155 541.17 182.944 540.586 182.85 540.699C182.475 541.149 181.1 540.999 180.925 540.299C180.769 539.678 181.264 539.06 181.05 538.274C180.84 537.503 180.104 537.581 179.864 537.814C179.443 538.224 178.927 538.536 178.575 538.624C178.339 538.683 177.722 539.203 177.036 538.835C176.703 538.657 176.367 538.439 175.957 538.999C175.915 540.416 174.736 540.733 176.261 540.792C176.867 540.808 176.719 540.712 176.775 541.124C176.831 541.537 176.875 541.849 176.625 542.024C176.317 542.24 179.124 541.21 179.625 542.399C180.025 543.35 178.2 543.949 177.575 544.175C176.909 544.414 176.4 544.199 176.75 544.524C177.8 544.749 178.5 543.937 179.287 543.974C179.673 543.993 178.199 545.359 176.95 545.355C176.445 545.255 176.295 545.709 176.41 545.893C176.812 546.536 178.2 546.75 178.2 546.75C176.85 546.899 175.35 546.6 174 544.5C173.772 544.265 173.577 544.014 173.411 543.755C172.251 541.922 172.5 539.549 172.5 539.549C172.5 538.649 171.986 537.77 172.2 536.699C172.2 536.699 174.3 537.149 176.4 534.449C176.453 534.38 176.509 534.316 176.565 534.255C176.565 534.255 177.225 533.474 178.256 533.549C179.287 533.624 180.016 533.996 180.016 533.996z"/>
+ </g>
+ <g style="fill: #c65d24">
+ <path d="M182.3 539.749C182.3 540.049 182.558 540.659 183.05 540.249C183.35 539.999 183.1 539.799 183.1 539.799C183.1 539.799 182.85 540.099 182.7 539.949C182.55 539.799 182.3 539.749 182.3 539.749z"/>
+ </g>
+ <g style="fill: #c35316">
+ <path d="M181.65 538.549C181.65 539.099 181.05 539.999 181.25 540.249C181.45 540.499 181.586 540.192 181.8 539.799C182.1 539.249 181.65 538.549 181.65 538.549z"/>
+ </g>
+ <g style="fill: #c35316">
+ <path d="M176.4 534.449C175.814 535.202 174.727 535.985 174.75 535.949C174.589 536.088 174.423 536.2 174.256 536.295C173.772 536.536 173.34 536.649 172.999 536.696C172.531 536.75 172.2 536.699 172.2 536.699C171.986 537.77 172.5 538.649 172.5 539.549C172.5 539.549 172.125 542.599 174 544.5C175.35 546.6 176.85 546.899 178.2 546.75C178.2 546.75 175.525 546.675 174.375 544.299C173.579 542.656 173.975 542.874 173.725 542.624C173.454 542.354 173.157 541.634 172.95 540.974C172.675 540.099 173.6 539.449 173.975 539.449C174.35 539.449 175.434 539.498 175.85 538.874C176.15 538.424 175.387 537.051 175.35 537.299C175.254 537.94 173.837 537.662 173.15 538.674C173.023 538.861 172.162 538.987 172.987 538.124C173.475 537.903 174.366 537.204 174.4 537.153C174.907 536.95 175.398 536.689 175.687 536.399C176.437 535.649 177.6 534.449 179.25 535.049C180.9 535.649 181.35 535.499 181.35 535.499C181.5 534.599 178.159 532.187 176.4 534.449z"/>
+ </g>
+ <g style="fill: #993100">
+ <path d="M172.22 537.946C172.323 538.502 172.5 539.022 172.5 539.549C172.5 539.549 172.125 542.599 174 544.5C175.057 546.143 176.205 546.684 177.302 546.77C177.302 546.77 175.35 546 174.6 545C173.85 543.999 173.7 543.399 173.35 543.199C173 542.999 172.5 540.349 172.7 539.849C172.9 539.349 173.15 539.349 173.1 539.149C173.05 538.949 172.8 539.449 172.55 538.849C172.3 538.249 172.22 537.946 172.22 537.946z"/>
+ </g>
+ <g style="fill: #6f0300">
+ <path d="M181.35 535.499C181.5 534.599 178.159 532.187 176.4 534.449C175.814 535.202 174.727 535.985 174.75 535.949C174.589 536.088 174.423 536.2 174.256 536.295C173.772 536.536 173.34 536.649 172.999 536.696C172.531 536.75 172.2 536.699 172.2 536.699C172.2 536.699 172.05 537.149 172.162 537.262C172.275 537.374 173.85 537.112 174.412 536.662C174.937 536.324 175.5 535.987 176.587 535.087C177 534.599 178.612 534.449 179.287 534.637C179.962 534.824 181.35 535.499 181.35 535.499z"/>
+ </g>
+ <g style="fill: #c65d24">
+ <path d="M183.386 539.457C183.33 539.728 183.671 540.807 182.719 540.554C182.317 540.601 182.55 541.349 182.55 541.349C184.05 541.499 183.75 540.149 183.75 538.949C183.75 537.749 183.45 536.099 182.4 537.749C182.4 537.749 181.85 538.349 182.275 539.099C182.7 539.849 182.825 539.499 183.075 538.624C182.505 537.719 183.507 536.376 183.386 539.457z"/>
+ </g>
+ <g style="fill: #e47a41">
+ <path d="M177.326 539.612C177.185 539.979 177.709 540.812 178.668 540.839C179.553 540.863 179.928 542.031 179.821 542.597C180.009 541.889 179.902 540.816 178.954 540.387C178.04 540.293 177.326 539.612 177.326 539.612z"/>
+ </g>
+ <g style="fill: #992c00">
+ <path d="M183.425 538.024C183.125 537.499 182.873 537.375 182.675 538.024C182.5 538.599 183.05 538.924 182.75 539.299C183.05 539.299 183.155 538.386 182.975 538.024C182.9 537.874 183.425 538.024 183.425 538.024z"/>
+ </g>
+ <g style="fill: #d0662d">
+ <path d="M175.522 540.173C176.144 539.47 176.003 538.967 175.832 538.324C175.832 538.324 175.581 539.549 175.281 539.981C175.197 540.102 174.351 541.33 174.889 542.554C175.023 542.859 174.843 544.963 176.881 545C175.209 544.144 175.415 543.027 175.349 542.731C175.283 542.434 175.243 542.109 175.281 541.837C175.377 541.137 175.786 540.518 175.792 540.496C175.839 540.49 175.216 540.586 175.522 540.173z"/>
+ </g>
+ <g style="fill: #a33e00">
+ <path d="M175.543 540.412C175.305 540.77 174.994 541.698 175.15 542.493C175.165 542.4 174.925 541.912 174.943 541.556C174.991 540.644 175.543 540.412 175.543 540.412z"/>
+ </g>
+ <g style="fill: #ca6934">
+ <path d="M177.662 540.337C177.587 540.187 176.875 540.037 176.725 540.262C176.575 540.487 175.9 540.562 175.787 540.299C175.787 540.299 175.656 540.487 175.412 540.374C175.412 540.749 175.637 541.049 175.712 540.899C175.757 540.811 175.866 540.789 175.972 540.832C175.942 540.763 176.217 541.072 176.198 541.074C176.391 541.128 176.395 541.132 176.575 540.918C176.674 540.8 177.062 540.682 177.25 540.599C177.306 540.899 177.737 540.487 177.662 540.337z"/>
+ </g>
+ <g style="fill: #680e00">
+ <path d="M175.637 540.637C175.637 540.637 175.537 541.049 176.012 540.787L175.637 540.637z"/>
+ </g>
+ <g style="fill: #b0450b">
+ <path d="M177.306 540.262C177.025 540.367 176.837 540.318 176.687 540.843C176.725 540.843 176.894 540.656 177.269 540.674C177.541 540.688 177.606 540.149 177.306 540.262z"/>
+ </g>
+ <g style="fill: #680e00">
+ <path d="M176.935 540.597C176.935 540.597 177.315 540.277 177.315 540.547C177.077 540.844 176.935 540.597 176.935 540.597z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M176.6 527.849C176.063 528.693 175.95 529.849 177.05 530.449C177.65 530.649 177 529.999 177 529.549C177 529.099 177.3 529.299 177.4 528.849C177.5 528.399 176.95 527.299 176.6 527.849z"/>
+ </g>
+ <g style="fill: #c65d24">
+ <path d="M177.125 537.402C177.126 537.163 176.825 537.049 176.825 537.049C176.575 537.349 176.425 537.674 176.575 538.174C176.967 539.481 177.158 538.743 177.425 538.224C177.589 538.208 177.801 538.381 178.398 538.141C179.052 538.007 179.325 538.074 179.675 537.574C179.838 537.341 179.45 536.999 178.65 536.999C177.651 536.949 177.389 537.213 177.125 537.402z"/>
+ </g>
+ <g style="fill: #a33e00">
+ <path d="M176.837 537.387C176.603 537.933 176.862 538.362 177.012 538.587C177.162 538.812 177.162 538.062 177.162 537.887C177.162 537.712 176.912 537.212 176.837 537.387z"/>
+ </g>
+ <g style="fill: #2c0000">
+ <path d="M176.843 537.193C177.728 536.766 178.577 536.392 179.753 536.463C179.829 536.107 178.152 536.2 177.649 536.438C176.509 536.977 176.843 537.193 176.843 537.193z"/>
+ </g>
+ <g style="fill: #460000">
+ <path d="M177.683 536.511C176.983 536.842 176.89 537.03 176.88 537.086C177.759 536.665 178.54 536.352 179.589 536.379C179.244 536.243 178.104 536.312 177.683 536.511z"/>
+ </g>
+ <g style="fill: #680100">
+ <path d="M179.394 537.401C179.146 537.217 177.982 536.893 177.218 537.514C177.218 537.514 177.513 537.883 177.416 538.091C177.538 538.113 179.431 537.586 179.485 537.483C179.499 537.457 179.491 537.473 179.394 537.401z"/>
+ </g>
+ <g style="fill: #b86234">
+ <path d="M179.372 537.526C179.426 537.423 178.286 536.981 177.462 537.457C177.343 537.587 177.523 537.983 177.523 537.983C177.523 537.983 178.135 537.873 178.606 537.694C178.9 537.582 179.313 537.638 179.372 537.526z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M178.432 537.204C178.191 537.21 177.939 537.257 177.706 537.37C177.61 537.416 177.774 537.937 177.97 537.889C178.152 537.845 178.384 537.784 178.599 537.712C178.653 537.694 178.757 537.23 178.432 537.204z"/>
+ </g>
+ <g style="fill: #580000">
+ <path d="M178.368 537.168C178.481 537.262 178.594 537.468 178.519 537.581C178.443 537.693 178.387 537.262 178.293 537.262C178.2 537.262 178.368 537.168 178.368 537.168z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M177.706 537.37C177.61 537.416 177.774 537.937 177.97 537.889C178.152 537.845 178.384 537.784 178.599 537.712C178.653 537.694 177.968 537.676 177.706 537.37z"/>
+ </g>
+ <g style="fill: #020000">
+ <path d="M177.825 537.581C177.881 537.674 178.144 537.749 178.256 537.731C178.368 537.712 178.012 537.862 177.9 537.806C177.787 537.749 177.825 537.581 177.825 537.581z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M178.093 537.271C177.99 537.271 177.907 537.35 177.907 537.447C177.907 537.544 177.99 537.623 178.093 537.623C178.195 537.623 178.278 537.544 178.278 537.447C178.278 537.35 178.195 537.271 178.093 537.271z"/>
+ </g>
+ <g style="fill: #1c0000">
+ <path d="M179.403 537.422C179.464 537.307 178.078 536.77 177.228 537.461L177.112 537.654C177.112 537.654 177.325 537.474 177.7 537.356C178.075 537.237 178.825 537.171 179.15 537.337C179.475 537.503 179.403 537.422 179.403 537.422z"/>
+ </g>
+ <g style="fill: #993100">
+ <path d="M175.462 537.487C175.462 537.487 175.488 537.728 175.494 537.962C175.351 537.907 175.2 537.899 175.2 537.899C174.637 537.712 173.4 538.087 173.137 538.874C173.025 539.212 173.475 539.137 173.475 539.137C173.475 539.137 174.553 539.136 175.214 538.857C175.133 539.065 175.141 539.206 175.5 538.987C176.175 538.574 175.725 537.824 175.462 537.487z"/>
+ </g>
+ <g style="fill: #2c0000">
+ <path d="M175.428 537.526C174.839 537.471 173.546 537.539 172.824 537.913C173.044 537.505 174.201 537.147 174.611 537.181C175.02 537.215 175.527 537.319 175.428 537.526z"/>
+ </g>
+ <g style="fill: #460000">
+ <path d="M174.604 537.262C174.317 537.238 173.612 537.425 173.193 537.681C173.88 537.461 174.783 537.403 175.334 537.44C175.257 537.373 175.012 537.295 174.604 537.262z"/>
+ </g>
+ <g style="fill: #5b0000">
+ <path d="M173.391 538.886C173.506 538.63 174.282 537.873 175.16 538.071C175.16 538.071 175.314 538.292 175.269 538.475C174.721 538.908 173.443 539.056 173.354 538.993C173.332 538.977 173.346 538.987 173.391 538.886z"/>
+ </g>
+ <g style="fill: #821a00">
+ <path d="M173.486 538.913C173.403 538.853 174.007 538.153 174.794 538.122C174.906 538.118 175.094 538.163 175.132 538.372C175.143 538.433 175.151 538.486 175.003 538.566C174.707 538.726 174.593 538.753 174.143 538.801C173.861 538.831 173.582 538.981 173.486 538.913z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M173.983 538.398C174.172 538.305 174.523 538.104 174.617 538.236C174.711 538.367 174.808 538.727 174.637 538.768C174.476 538.807 174.271 538.852 174.073 538.881C174.024 538.889 173.743 538.552 173.983 538.398z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M173.983 538.398C174.172 538.305 174.097 538.416 174.304 538.549C174.51 538.682 174.808 538.727 174.637 538.768C174.476 538.807 174.271 538.852 174.073 538.881C174.024 538.889 173.743 538.552 173.983 538.398z"/>
+ </g>
+ <g style="fill: #020000">
+ <path d="M173.981 538.574C174.037 538.668 174.3 538.743 174.412 538.724C174.525 538.706 174.168 538.856 174.056 538.799C173.943 538.743 173.981 538.574 173.981 538.574z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M174.211 538.377C174.29 538.335 174.389 538.366 174.431 538.445C174.473 538.524 174.442 538.623 174.363 538.665C174.284 538.707 174.185 538.677 174.143 538.597C174.101 538.518 174.132 538.419 174.211 538.377z"/>
+ </g>
+ <g style="fill: #170000">
+ <path d="M173.399 538.898C173.303 538.83 174.129 537.857 175.077 538.07L175.259 538.096C175.259 538.096 175.064 538.052 174.726 538.108C174.388 538.164 173.735 538.461 173.557 538.726C173.379 538.992 173.399 538.898 173.399 538.898z"/>
+ </g>
+ <g style="fill: #c65d24">
+ <path d="M181.494 543.371C181.546 543.602 180.945 544.71 180.261 545.508C180.709 544.8 181.214 543.908 181.277 543.65C181.341 543.393 181.494 543.371 181.494 543.371z"/>
+ </g>
+ <g style="fill: #c65d24">
+ <path d="M179.582 542.08C178.743 541.53 177.666 541.38 177.021 541.722L177.003 541.732L176.988 541.748C176.703 542.058 176.373 542.035 176.154 542.021C175.995 542.01 175.787 542.097 175.679 542.316C175.602 542.472 175.553 542.745 175.759 543.161C176.08 543.812 176.161 543.834 176.656 543.708L176.831 543.664C177.449 543.517 178.141 543.195 178.728 543.144C179.407 543.085 179.629 542.289 179.638 542.255L179.67 542.137L179.582 542.08z"/>
+ </g>
+ <g style="fill: #f9cfc0">
+ <path d="M179.524 542.211C178.731 541.692 177.689 541.528 177.067 541.859C176.744 542.209 176.369 542.184 176.145 542.169C175.92 542.154 175.529 542.407 175.861 543.081C176.194 543.756 176.2 543.663 176.811 543.518C177.421 543.373 178.118 543.048 178.723 542.996C179.327 542.943 179.524 542.211 179.524 542.211z"/>
+ </g>
+ <g style="fill: #210000">
+ <path d="M179.524 542.211C178.731 541.692 177.779 541.689 177.156 542.02C176.849 542.123 176.415 542.249 176.235 542.33C176.022 542.426 175.529 542.407 175.861 543.081C176.194 543.756 176.191 543.414 176.801 543.269C177.412 543.124 177.94 543.098 178.552 542.922C179.145 542.752 179.524 542.211 179.524 542.211z"/>
+ </g>
+ <g style="fill: #430000">
+ <path d="M176.196 542.545C176.077 542.848 176.011 543.091 176.124 543.285C176.237 543.479 176.113 543.067 176.228 542.827C176.344 542.586 176.196 542.545 176.196 542.545z"/>
+ </g>
+ <g style="fill: #8f0000">
+ <path d="M176.444 543.396C176.535 543.354 176.647 543.283 176.801 543.269C177.406 543.217 177.836 543.153 178.449 542.977C179.041 542.807 179.271 542.256 179.271 542.256C178.477 541.737 177.8 541.753 177.178 542.084C176.965 542.315 176.729 542.383 176.53 542.398C176.53 542.398 176.423 542.529 176.463 542.687C176.117 543.005 176.444 543.396 176.444 543.396z"/>
+ </g>
+ <g style="fill: #770000">
+ <path d="M176.842 543.024C177.453 542.879 177.492 542.67 178.096 542.611C178.474 542.575 178.94 542.06 178.782 541.996C178.193 541.758 177.668 541.823 177.178 542.084C176.965 542.315 176.729 542.383 176.53 542.398C176.53 542.398 176.423 542.529 176.463 542.687C176.117 543.005 176.69 543.06 176.842 543.024z"/>
+ </g>
+ <g style="fill: #480000">
+ <path d="M176.627 542.854C177.238 542.709 177.305 542.499 177.908 542.413C178.641 542.307 178.366 541.864 178.169 541.852C177.819 541.83 177.491 541.917 177.178 542.084C177.02 542.255 176.85 542.336 176.692 542.373C176.636 542.386 176.475 542.89 176.627 542.854z"/>
+ </g>
+ <g style="fill: #c65d24">
+ <path d="M176.284 543.918C176.685 543.913 178.058 543.603 178.705 543.274C178.565 543.513 177.382 543.992 177.157 543.977C176.418 544.175 176.209 543.912 176.209 543.912z"/>
+ </g>
+ <g style="fill: #f4aa8f">
+ <path d="M178.1 545.306C178.865 545.25 179.3 544.224 179.725 544.374C180.15 544.524 180 545.199 179.475 545.475C178.95 545.75 178.625 545.925 178.125 545.85C177.525 545.85 177.751 545.331 178.1 545.306z"/>
+ </g>
+ <g style="fill: #e99664">
+ <path d="M174.85 539.824C174.282 539.906 173.225 539.974 173.262 540.499C173.3 541.024 173.55 541.037 173.737 541.074C173.925 541.112 174.125 540.762 174.312 540.537C174.5 540.312 175.112 539.787 174.85 539.824z"/>
+ </g>
+ <g style="fill: #210000">
+ <path d="M182.4 537.749C182.1 538.349 181.35 536.324 181.5 535.424C181.62 534.706 179.363 532.948 177.614 533.451C177.614 533.451 176.475 533.774 176.4 534.524C176.325 535.274 176.25 535.574 175.725 535.724C177.05 535.749 177 534.599 177.15 534.149C177.225 534.074 177.75 534.599 177.3 534.899C178.05 534.599 177.975 534.149 177.9 533.849C177.9 533.849 178.725 534.149 179.4 533.924C180.075 533.699 180.225 534.824 180.825 535.199C181.425 535.574 180.825 536.324 181.05 536.774C181.275 537.224 181.95 538.499 181.875 538.799C181.8 539.099 182.25 538.349 182.25 538.349L182.4 537.749z"/>
+ </g>
+ <g style="fill: #310000">
+ <path d="M181.5 535.424C181.62 534.706 179.363 532.948 177.614 533.451C177.614 533.451 176.953 533.702 176.7 534.412C176.604 534.68 176.644 534.839 176.658 534.937C176.973 534.639 177.021 534.309 177.15 533.924C177.225 533.849 177.75 534.187 177.637 534.487C177.9 534.299 177.862 533.924 177.787 533.624C177.787 533.624 178.65 533.999 179.325 533.774C180 533.549 180.45 534.637 181.05 535.012C181.65 535.387 181.087 536.399 181.312 536.849C181.537 537.299 181.987 538.162 181.912 538.462C181.837 538.762 182.137 538.237 182.137 538.237L182.4 537.749C182.1 538.349 181.35 536.324 181.5 535.424z"/>
+ </g>
+ <g style="fill: #1a1a1a">
+ <path d="M182.025 535.499C182.025 534.374 182.7 533.774 183.3 533.324C183.9 532.874 184.95 532.049 185.175 531.524C185.4 530.999 187.35 531.974 187.425 532.949C187.5 533.924 186.15 533.174 185.325 533.999C184.5 534.824 182.25 536.399 182.175 536.849C182.1 537.299 182.025 535.499 182.025 535.499z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M186.9 532.724C185.85 531.824 185.55 531.749 184.8 532.799C184.05 533.849 183.75 534.749 183.3 535.199C182.85 535.649 184.875 533.774 185.55 533.399C186.225 533.024 186.9 532.724 186.9 532.724z"/>
+ </g>
+ <g style="fill: #b00000">
+ <path d="M150.099 518.899L149.499 519.099C149.499 519.099 150.899 522.099 150.899 524.099C150.899 526.099 155.299 537.699 158.5 540.499C161.5 544.899 166.5 551.1 168.1 552.899C168.1 552.899 169.3 557.9 171.1 560.7C171.5 563.9 173.3 569.9 173.7 570.9C174.1 571.9 173.7 573.9 173.9 575.1C173.9 575.1 178.65 570.6 183 570.75C187.35 570.9 190.033 570.334 191.1 569.85C192.75 569.1 192.745 568.323 192.745 568.323C192.347 568.308 192.059 568.3 191.9 568.3C191.9 567.621 192.85 563.042 192.65 561.6C195.35 563.257 197.95 562.9 199.75 561.3C201.55 559.7 201.175 555.675 199.975 554.875C198.375 552.475 197.95 552.8 196.15 551.449C193.92 548.784 190.303 546.331 189.605 545.768C187.507 544.076 184.492 544.238 184.492 544.238C183.292 544.438 183.12 543.434 182.5 543.299C182.5 543.299 183.225 545.512 181.05 546.149C180.3 547.05 181.336 548.303 181.95 549.449C178.05 548.399 174.9 544.949 174.9 544.949C173.85 543.449 172.65 544.05 172.35 544.5C172.2 543.75 169.65 543.149 169.5 542.849C169.35 541.049 167.4 539.849 167.1 539.549C166.8 539.249 165.3 537.099 165.3 537.099C164.3 537.699 161.5 530.499 159.3 528.899C158.5 527.299 154.5 519.899 154.7 517.899C154.5 517.899 154.1 517.899 154.1 517.899L150.099 518.899z"/>
+ </g>
+ <g style="fill: #5d0000">
+ <path d="M187.8 560.7C187.5 559.425 186.15 555.3 185.85 554.55C185.7 553.725 185.4 552 184.35 550.949C183.603 550.202 183.388 549.685 183.326 549.447C183.261 549.377 183.201 549.313 183.15 549.262C183.15 549.262 183.15 549.862 184.2 550.912C185.25 551.962 185.55 553.687 185.7 554.512C186 555.262 187.35 559.387 187.65 560.662C187.891 561.687 188.1 563.587 188.25 564.412C188.358 565.007 188.7 569.512 188.925 569.887C188.939 569.758 188.945 569.578 188.942 569.356C188.733 568.038 188.488 564.936 188.4 564.45C188.25 563.625 188.041 561.724 187.8 560.7z"/>
+ </g>
+ <g style="fill: #8f0000">
+ <path d="M188.175 560.7C187.95 559.8 186.9 556.875 186.3 555.075C186.45 553.05 184.05 550.05 183.3 549.3C183.3 549.3 183.3 549.9 184.35 550.949C185.4 552 185.7 553.725 185.85 554.55C186.15 555.3 187.5 559.425 187.8 560.7C188.041 561.724 188.25 563.625 188.4 564.45C188.508 565.045 188.85 569.55 189.075 569.925C189.225 568.575 188.4 561.6 188.175 560.7z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M184.492 544.238C184.492 544.238 187.507 544.076 189.605 545.768C190.303 546.331 193.92 548.784 196.15 551.449C197.95 552.8 198.375 552.475 199.975 554.875C201.175 555.675 201.55 559.7 199.75 561.3C197.95 562.9 195.35 563.257 192.65 561.6C192.65 561.6 192.7 557 192.2 554.9C191.7 552.8 190.1 548.5 188.6 547.5C187.3 544.599 184.492 544.238 184.492 544.238z"/>
+ </g>
+ <g style="fill: #7c0000">
+ <path d="M192.2 554.9C191.7 552.8 190.1 548.5 188.6 547.5C187.3 544.599 184.492 544.238 184.492 544.238C184.492 544.238 189.2 545.699 190.1 547.5C191 549.3 191.6 550.5 193 550.8C194.4 551.1 194.6 551.699 195.1 552.199C195.6 552.699 194.1 552 193.6 553.7C193.1 555.4 192.2 554.9 192.2 554.9z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M196.15 551.449C197.95 552.8 198.375 552.475 199.975 554.875C201.175 555.675 201.55 559.7 199.75 561.3C197.95 562.9 195.35 563.257 192.65 561.6C192.65 561.6 192.7 557 192.2 554.9C194 554.199 191.82 552.284 196.15 551.449z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M196.905 562.634C197.972 562.486 198.942 562.018 199.75 561.3C201.55 559.7 201.175 555.675 199.975 554.875C198.375 552.475 197.95 552.8 196.15 551.449C196.15 551.449 195.2 552.5 196.1 553.1C197 553.7 198.2 555.5 197.4 555.5C196.6 555.5 195.1 556.1 195 557C194.954 557.41 197.36 555.365 199.099 557.6C201.199 560.3 196.905 562.634 196.905 562.634z"/>
+ </g>
+ <g style="fill: #750000">
+ <path d="M192.65 561.6C192.65 561.6 192.7 557 192.2 554.9C193.325 554.462 192.895 553.55 193.472 552.723C193.472 552.723 195 552.699 194 554.7C193 556.7 193.8 557.3 194.5 557.7C195.2 558.1 196.7 562.7 194.9 562.4C193.1 562.1 192.65 561.6 192.65 561.6z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M187.95 555.6C186.767 555.337 187.657 555.65 188.097 556.236C189.317 556.544 190.463 557.25 189.757 556.136C189.407 556.097 188.68 555.762 187.95 555.6z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M178.8 552.6C178.003 552.092 177.312 551.306 176.81 550.628C176.478 550.357 176.183 550.107 175.95 549.899C175.95 549.899 177.15 552.149 178.8 553.199C180.45 554.25 181.95 555.75 183.9 556.2C185.85 556.65 188.55 557.85 188.25 557.1C188.198 556.969 188.113 556.849 188.018 556.74C187.332 556.731 185.396 555.945 183.9 555.6C181.95 555.15 180.45 553.65 178.8 552.6z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M178.05 555.75C177.428 554.817 175.875 552.236 174.974 550.731C174.763 550.545 174.542 550.366 174.3 550.199C174.3 550.199 177.15 555 178.05 556.35C178.95 557.7 184.2 559.8 183.6 559.35C183.291 559.118 182.705 558.727 181.943 558.179C180.492 557.534 178.563 556.52 178.05 555.75z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M176.1 555.6C175.89 555.459 175.353 554.731 174.84 553.994C174.387 553.561 173.983 553.183 173.7 552.899C173.7 552.899 175.65 555.9 176.1 556.2C176.55 556.5 179.1 560.55 178.65 558.75C178.638 558.702 178.616 558.651 178.601 558.602C178.166 558.482 176.46 555.84 176.1 555.6z"/>
+ </g>
+ <g style="fill: #b80000">
+ <path d="M187.95 555.6C189.3 555.9 190.65 556.8 189.6 555.3C188.55 553.8 184.2 554.25 182.4 553.65C180.6 553.05 177.3 550.5 175.95 549.3C175.95 549.3 177.15 551.55 178.8 552.6C180.45 553.65 181.95 555.15 183.9 555.6C185.85 556.05 188.55 557.25 188.25 556.5C187.95 555.749 186.6 555.3 187.95 555.6z"/>
+ </g>
+ <g style="fill: #9e8e82">
+ <path d="M184.571 550.197C184.523 550.065 184.538 549.935 184.602 549.886C184.592 549.886 184.582 549.888 184.573 549.891C184.488 549.922 184.462 550.068 184.517 550.217C184.571 550.367 184.684 550.463 184.769 550.432C184.779 550.428 184.787 550.423 184.795 550.417C184.714 550.42 184.62 550.331 184.571 550.197z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M184.627 549.871C184.618 549.875 184.61 549.88 184.602 549.886C184.538 549.935 184.523 550.065 184.571 550.197C184.62 550.331 184.714 550.42 184.795 550.417C184.805 550.416 184.815 550.415 184.824 550.412C184.909 550.381 184.935 550.235 184.88 550.085C184.826 549.936 184.713 549.84 184.627 549.871z"/>
+ </g>
+ <g style="fill: #9e8e82">
+ <path d="M186.04 552.971C186.001 552.835 186.025 552.707 186.092 552.662C186.082 552.662 186.073 552.663 186.063 552.666C185.976 552.69 185.941 552.835 185.984 552.987C186.028 553.14 186.134 553.244 186.222 553.218C186.231 553.216 186.24 553.211 186.248 553.206C186.168 553.204 186.079 553.107 186.04 552.971z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M186.119 552.649C186.109 552.652 186.101 552.657 186.092 552.662C186.025 552.707 186.001 552.835 186.04 552.971C186.079 553.107 186.168 553.204 186.248 553.206C186.258 553.206 186.268 553.205 186.277 553.202C186.365 553.177 186.4 553.033 186.356 552.881C186.312 552.728 186.206 552.624 186.119 552.649z"/>
+ </g>
+ <g style="fill: #9e8e82">
+ <path d="M186.865 555.896C186.826 555.76 186.85 555.632 186.917 555.587C186.908 555.587 186.898 555.588 186.888 555.591C186.801 555.615 186.766 555.76 186.809 555.912C186.853 556.065 186.959 556.168 187.047 556.143C187.056 556.141 187.065 556.136 187.073 556.13C186.993 556.129 186.904 556.032 186.865 555.896z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M186.944 555.574C186.934 555.577 186.926 555.582 186.917 555.587C186.85 555.632 186.826 555.76 186.865 555.896C186.904 556.032 186.993 556.129 187.073 556.13C187.083 556.131 187.093 556.13 187.103 556.127C187.19 556.102 187.225 555.958 187.181 555.806C187.137 555.653 187.031 555.55 186.944 555.574z"/>
+ </g>
+ <g style="fill: #9e8e82">
+ <path d="M187.868 558.898C187.82 558.764 187.837 558.635 187.901 558.586C187.891 558.587 187.881 558.588 187.872 558.591C187.786 558.621 187.76 558.767 187.813 558.917C187.866 559.067 187.979 559.163 188.064 559.133C188.074 559.13 188.082 559.125 188.09 559.119C188.009 559.122 187.915 559.031 187.868 558.898z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M187.926 558.572C187.917 558.575 187.909 558.58 187.901 558.586C187.837 558.635 187.82 558.764 187.868 558.898C187.915 559.031 188.009 559.122 188.09 559.119C188.1 559.118 188.11 559.117 188.119 559.114C188.204 559.083 188.231 558.937 188.178 558.788C188.125 558.638 188.012 558.541 187.926 558.572z"/>
+ </g>
+ <g style="fill: #9e8e82">
+ <path d="M188.519 561.902C188.502 561.761 188.546 561.638 188.619 561.605C188.609 561.603 188.599 561.602 188.589 561.603C188.499 561.614 188.442 561.751 188.461 561.909C188.481 562.066 188.57 562.185 188.66 562.174C188.669 562.173 188.679 562.17 188.688 562.166C188.608 562.151 188.536 562.042 188.519 561.902z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M188.647 561.596C188.637 561.597 188.628 561.601 188.619 561.605C188.546 561.638 188.502 561.761 188.519 561.902C188.536 562.042 188.608 562.151 188.688 562.166C188.697 562.167 188.707 562.168 188.717 562.167C188.807 562.156 188.865 562.019 188.845 561.862C188.826 561.704 188.737 561.585 188.647 561.596z"/>
+ </g>
+ <g style="fill: #9e8e82">
+ <path d="M188.819 564.977C188.802 564.836 188.846 564.713 188.919 564.68C188.909 564.678 188.899 564.677 188.889 564.678C188.799 564.689 188.742 564.826 188.761 564.984C188.781 565.141 188.87 565.26 188.96 565.249C188.969 565.248 188.979 565.245 188.988 565.241C188.909 565.226 188.836 565.117 188.819 564.977z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M188.947 564.671C188.937 564.672 188.928 564.676 188.919 564.68C188.846 564.713 188.802 564.836 188.819 564.977C188.836 565.117 188.909 565.226 188.988 565.241C188.998 565.242 189.007 565.243 189.017 565.242C189.107 565.231 189.165 565.094 189.145 564.937C189.126 564.779 189.037 564.66 188.947 564.671z"/>
+ </g>
+ <g style="fill: #9e8e82">
+ <path d="M189.269 567.977C189.252 567.836 189.296 567.713 189.369 567.68C189.359 567.678 189.349 567.677 189.339 567.678C189.249 567.689 189.192 567.826 189.211 567.984C189.231 568.141 189.32 568.26 189.41 568.249C189.419 568.248 189.429 568.245 189.438 568.241C189.359 568.226 189.286 568.117 189.269 567.977z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M189.397 567.671C189.387 567.672 189.378 567.676 189.369 567.68C189.296 567.713 189.252 567.836 189.269 567.977C189.286 568.117 189.359 568.226 189.438 568.241C189.447 568.242 189.457 568.243 189.467 568.242C189.557 568.231 189.615 568.094 189.595 567.937C189.576 567.779 189.487 567.66 189.397 567.671z"/>
+ </g>
+ <g style="fill: #b80000">
+ <path d="M183.6 558.75C183 558.3 181.35 557.25 179.4 555.6C177.45 553.95 176.7 551.25 174.3 549.6C174.3 549.6 177.15 554.4 178.05 555.75C178.95 557.1 184.2 559.2 183.6 558.75z"/>
+ </g>
+ <g style="fill: #b80000">
+ <path d="M178.65 558.15C178.2 556.35 174.9 553.5 173.7 552.3C173.7 552.3 175.65 555.3 176.1 555.6C176.55 555.9 179.1 559.949 178.65 558.15z"/>
+ </g>
+ <g style="fill: #e2d3d3">
+ <path d="M181.95 549.449C181.336 548.303 180.3 547.05 181.05 546.149C183.225 545.512 182.5 543.299 182.5 543.299C183.12 543.434 183.292 544.438 184.492 544.238C184.492 544.238 184.875 545.362 185.1 545.812C184.612 545.737 183.412 546.3 182.812 546.824C182.212 547.35 181.95 549.449 181.95 549.449z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M181.95 549.449C181.336 548.303 180.3 547.05 181.05 546.149C183.225 545.512 182.5 543.299 182.5 543.299C183.12 543.434 183.292 544.438 184.492 544.238C184.492 544.238 184.425 545.175 184.65 545.625C184.162 545.55 183.225 546.037 182.625 546.562C182.025 547.087 181.95 549.449 181.95 549.449z"/>
+ </g>
+ <g style="fill: #b00000">
+ <path d="M184.125 544.263C183.495 544.235 183.216 543.812 182.904 543.531C182.904 543.531 183.412 544.725 182.7 545.699C181.987 546.675 182.925 546.149 183.15 545.625C183.375 545.1 183.712 545.137 183.712 545.362C183.712 545.587 184.012 545.587 184.05 545.25C184.087 544.912 184.125 544.263 184.125 544.263z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M173.9 575.1C173.7 573.9 174.1 571.9 173.7 570.9C173.3 569.9 171.5 563.9 171.1 560.7C169.3 557.9 168.1 552.899 168.1 552.899C168.1 552.899 169.2 552.6 169.95 552C170.7 551.399 171.9 556.2 172.35 557.4C172.8 558.6 174.6 564 175.2 568.2C175.8 572.4 176.55 573.15 176.55 573.15L173.9 575.1z"/>
+ </g>
+ <g style="fill: #6d0000">
+ <path d="M169.177 552.48C168.613 552.76 168.1 552.899 168.1 552.899C168.1 552.899 169.3 557.9 171.1 560.7C171.5 563.9 173.3 569.9 173.7 570.9C174.1 571.9 173.7 573.9 173.9 575.1L175.595 573.852C175.595 573.852 175.725 572.925 174.9 573C174.075 573.075 175.05 571.95 174.975 570.6C174.9 569.25 174.075 569.025 174 569.55C173.925 570.075 174.15 565.2 173.325 564.3C172.5 563.4 171.675 561.525 171.675 560.4C171.675 559.275 169.177 552.48 169.177 552.48z"/>
+ </g>
+ <g style="fill: #820000">
+ <path d="M176.7 573.075C176.7 573.075 175.95 572.325 175.35 568.125C174.75 563.925 172.95 558.525 172.5 557.325C172.05 556.125 170.85 551.324 170.1 551.925C170.1 551.925 171.45 554.625 171.675 555.825C171.9 557.025 173.625 561.075 173.775 562.125C173.925 563.175 175.2 567.9 175.2 569.025C175.2 570.15 176.7 573.075 176.7 573.075z"/>
+ </g>
+ <g style="fill: #b00000">
+ <path d="M168.1 552.899C166.5 551.1 161.5 544.899 158.5 540.499C155.299 537.699 150.899 526.099 150.899 524.099C150.899 522.099 149.499 519.099 149.499 519.099L150.099 518.899L154.1 517.899C154.1 517.899 154.5 517.899 154.7 517.899C154.5 519.899 158.5 527.299 159.3 528.899C161.5 530.499 164.3 537.699 165.3 537.099C165.3 537.099 166.8 539.249 167.1 539.549C167.4 539.849 169.35 541.049 169.5 542.849C169.65 543.149 172.2 543.75 172.35 544.5C172.35 544.5 174 545.25 173.25 547.35C172.5 549.449 172.166 550.784 170.7 551.85C169.05 553.05 168.1 552.899 168.1 552.899z"/>
+ </g>
+ <g style="fill: #bf050e">
+ <path d="M173.25 547.35C174 545.25 172.35 544.5 172.35 544.5C172.2 543.75 169.65 543.149 169.5 542.849C169.35 541.049 167.4 539.849 167.1 539.549C166.8 539.249 165.3 537.099 165.3 537.099C164.3 537.699 161.5 530.499 159.3 528.899C159.3 528.899 164.3 536.599 165 539.199C165.6 537.499 166.3 541.199 166.2 540.399C166.1 539.599 169.1 542.399 168.6 543.399C168.1 544.399 169.9 545.5 170 543.999C170.1 542.499 172.1 545.3 172.1 546.1C172.1 546.899 173.25 547.35 173.25 547.35z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M155.969 522.098C155.195 520.316 154.621 518.688 154.7 517.899C154.5 517.899 154.1 517.899 154.1 517.899L150.099 518.899L149.499 519.099C149.499 519.099 150.899 522.099 150.899 524.099C150.899 524.099 153 524.699 154.2 523.949C155.399 523.199 155.969 522.098 155.969 522.098z"/>
+ </g>
+ <g style="fill: #b00000">
+ <path d="M154.2 523.949C153 524.699 150.899 524.099 150.899 524.099C150.899 522.099 149.499 519.099 149.499 519.099L150.099 518.899L152.799 519.099C152.799 519.099 154 519.299 153.7 521.299C153.399 523.299 154.2 523.949 154.2 523.949z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M170.7 551.85C169.05 553.05 168.1 552.899 168.1 552.899C166.5 551.1 161.5 544.899 158.5 540.499C155.299 537.699 150.899 526.099 150.899 524.099C150.899 522.099 149.499 519.099 149.499 519.099L150.099 518.899L150.617 518.77C150.617 518.77 152.549 519.299 152.25 520.799C151.95 522.299 152.25 523.499 153.299 523.799C154.35 524.099 153.6 525.749 153.899 526.949C154.2 528.149 156 533.849 157.5 534.749C159 535.649 159.45 536.699 159.899 538.199C160.35 539.699 163.65 543.449 164.4 546.149C165.15 548.85 166.65 549.449 167.85 550.199C169.05 550.949 170.7 548.699 170.85 550.8C171 551.324 170.7 551.85 170.7 551.85z"/>
+ </g>
+ <g style="fill: #6d0000">
+ <path d="M170.1 551.25C170.25 552.149 168.1 552.899 168.1 552.899C166.5 551.1 161.5 544.899 158.5 540.499C155.299 537.699 150.899 526.099 150.899 524.099C150.899 522.099 149.499 519.099 149.499 519.099C149.499 519.099 151.5 520.199 151.2 521.699C150.899 523.199 152.549 526.949 152.85 528.149C153.149 529.349 155.25 535.199 156.75 536.099C158.25 536.999 158.399 537.899 158.849 539.399C159.3 540.899 162.096 543.943 163.35 546.449C165.45 550.649 168.9 552 170.1 551.25z"/>
+ </g>
+ <g style="fill: #5d0000">
+ <path d="M199.606 559.433C199.704 560.163 199.512 560.177 199.119 561.155C198.664 561.707 197.924 562.292 197.572 561.997C197.188 562.256 196.71 562.324 196.422 562.146C196.07 562.365 195.612 562.282 195.123 561.975C194.634 562.183 194.491 562.008 194.218 561.907C194.04 561.842 193.809 561.103 193.919 560.777C194.09 560.269 194.428 560.103 194.202 559.339C194.118 559.054 193.951 558.999 193.772 558.926C193.657 558.975 193.516 559.338 193.124 559.486C192.999 559.985 193.478 559.993 193.476 560.735C193.476 560.867 193.353 560.842 193.172 560.902C192.99 560.963 192.763 560.865 192.656 560.798C192.363 560.405 192.488 560.569 192.185 560.247C192.028 560.038 191.986 558.883 192.105 558.468C192.269 557.895 192.971 557.522 193.198 556.755C195.26 555.065 195.391 555.923 196.703 556.286C197.837 556.6 198.251 556.542 198.885 557.419C199.306 558 199.534 558.895 199.606 559.433z"/>
+ </g>
+ <g style="fill: #3f0000">
+ <path d="M193.919 560.777C194.09 560.269 194.428 560.103 194.202 559.339C194.118 559.054 193.951 558.999 193.772 558.926C193.772 558.926 194.094 557.8 194.094 557.347C194.094 556.893 194.548 557.937 194.366 558.3C194.185 558.663 194.639 557.755 195.138 557.619C195.637 557.483 194.775 557.891 194.503 558.572C194.23 559.252 194.956 558.617 195.229 558.572C195.501 558.526 194.457 559.252 194.457 559.57C194.457 559.888 193.919 560.777 193.919 560.777z"/>
+ </g>
+ <g style="fill: #500000">
+ <path d="M193.772 558.926C193.657 558.975 193.516 559.338 193.124 559.486C192.999 559.985 193.433 559.993 193.431 560.735C193.431 560.867 193.444 560.978 193.262 561.038C193.081 561.099 192.808 560.91 192.701 560.843C192.408 560.45 192.488 560.569 192.185 560.247C192.028 560.038 191.986 558.883 192.105 558.468C192.269 557.895 192.971 557.522 193.198 556.755C193.198 556.755 193.822 556.394 194.094 557.211C194.366 558.027 193.772 558.926 193.772 558.926z"/>
+ </g>
+ <g style="fill: #340000">
+ <path d="M193.442 560.841C193.669 560.199 192.999 559.985 193.124 559.486C193.516 559.338 193.657 558.975 193.772 558.926C193.772 558.926 193.965 558.634 194.081 558.231C194.081 558.231 193.55 557.256 193.459 557.937C193.368 558.617 193.595 558.98 193.277 559.116C192.96 559.252 193.005 558.209 192.778 558.617C192.551 559.025 193.051 559.661 193.141 560.16C193.232 560.659 193.442 560.841 193.442 560.841z"/>
+ </g>
+ <g style="fill: #530000">
+ <path d="M199.119 561.155C198.664 561.707 197.924 562.292 197.572 561.997C197.188 562.256 196.71 562.324 196.422 562.146C196.07 562.365 195.612 562.282 195.123 561.975C194.634 562.183 194.491 562.008 194.218 561.907C194.04 561.842 193.809 561.103 193.919 560.777C193.919 560.777 194.049 560.886 194.366 561.113C194.684 561.34 195.455 561.067 195.546 560.341C195.637 559.615 195.682 561.43 195.41 561.703C195.138 561.975 196.045 561.93 196.408 561.703C196.771 561.476 196.408 561.385 196.454 561.113C196.499 560.841 196.953 560.523 196.862 560.115C196.771 559.706 197.543 561.113 196.908 561.793C196.272 562.474 197.588 561.839 197.815 561.612C198.042 561.385 198.405 560.931 198.405 560.341C198.36 561.43 199.119 561.155 199.119 561.155z"/>
+ </g>
+ <g style="fill: #460000">
+ <path d="M198.863 561.438C198.421 561.882 197.863 562.241 197.572 561.997C197.188 562.256 196.71 562.324 196.422 562.146C196.07 562.365 195.612 562.282 195.123 561.975C194.634 562.183 194.491 562.008 194.218 561.907C194.101 561.865 193.962 561.534 193.911 561.219C193.911 561.219 194.175 561.925 194.575 561.925C194.975 561.925 195.35 561.6 195.525 561.25C195.525 561.25 195.275 562 195.775 562.1C196.275 562.2 196.85 561.8 196.95 561.45C197.05 561.1 196.55 562.125 196.975 562.075C197.4 562.025 198 561.775 198.15 561.35C198.075 562.225 198.85 561.375 198.85 561.375L198.863 561.438z"/>
+ </g>
+ <g style="fill: #3e0000">
+ <path d="M197.888 562.05C197.719 562.145 197.648 562.071 197.572 561.997C197.572 561.997 198.118 561.4 198.178 561.249C198.239 561.098 198.42 560.311 198.42 560.311C198.42 560.311 198.39 561.128 198.208 561.43C198.027 561.733 197.888 562.05 197.888 562.05z"/>
+ </g>
+ <g style="fill: #3e0000">
+ <path d="M196.603 562.18C196.49 562.17 196.508 562.199 196.422 562.146C196.422 562.146 196.968 561.34 196.968 561.158C196.968 560.977 196.968 560.251 196.938 559.978C196.908 559.706 197.21 561.037 197.149 561.219C197.089 561.4 196.603 562.18 196.603 562.18z"/>
+ </g>
+ <g style="fill: #3e0000">
+ <path d="M195.407 562.13C195.314 562.087 195.219 562.036 195.123 561.975C195.123 561.975 195.395 561.612 195.546 560.795C195.697 559.978 195.637 559.797 195.637 559.797C195.637 559.797 195.697 560.523 195.667 560.825C195.637 561.128 195.546 561.43 195.425 561.703C195.304 561.975 195.407 562.13 195.407 562.13z"/>
+ </g>
+ <g style="fill: #6a0000">
+ <path d="M198.904 558.708C198.661 559.033 198.949 559.797 198.904 560.296C199.358 560.341 199.449 559.888 199.449 559.661C199.449 559.434 199.176 558.345 198.904 558.708z"/>
+ </g>
+ <g style="fill: #6a0000">
+ <path d="M195.637 556.031C196.189 556.307 197.089 556.711 197.679 556.848C198.269 556.984 198.496 557.301 198.723 557.71C198.949 558.118 198.904 558.844 198.178 558.39C197.452 557.937 197.18 557.846 196.771 558.027C196.363 558.209 195.818 558.345 195.728 557.937C195.637 557.528 195.092 557.211 194.684 556.848C194.276 556.484 194.911 555.668 195.637 556.031z"/>
+ </g>
+ <g style="fill: #6a0000">
+ <path d="M197.392 558.959C197.586 558.705 197.76 558.534 197.951 559.025C198.087 559.374 197.906 560.115 197.634 559.933C197.391 559.771 197.264 559.127 197.392 558.959z"/>
+ </g>
+ <g style="fill: #6a0000">
+ <path d="M196.635 558.844C196.635 559.615 196.499 560.205 196.227 559.888C195.955 559.57 195.955 559.207 196.091 558.889C196.227 558.572 196.635 558.844 196.635 558.844z"/>
+ </g>
+ <g style="fill: #6a0000">
+ <path d="M195.682 558.708C195.554 559.093 195.229 559.615 195.092 559.978C194.956 560.341 194.911 559.479 194.866 559.343C194.82 559.207 195.092 559.298 195.274 558.935C195.455 558.572 195.818 558.3 195.682 558.708z"/>
+ </g>
+ <g style="fill: #f49d73">
+ <path d="M153.899 513.899L154.1 517.899C154.1 517.899 154.799 519.074 151.725 519.449C150.366 519.615 150.099 518.899 150.099 518.899C150.099 518.899 149.899 516.899 149.699 516.899C149.349 516.399 149.424 515.374 149.624 514.574L153.899 513.899z"/>
+ </g>
+ <g style="fill: #e47a41">
+ <path d="M153.899 513.899C153.899 513.899 153.5 516.249 152.524 517.449C151.549 518.649 150.099 518.899 150.099 518.899C150.099 518.899 149.899 516.899 149.699 516.899C149.349 516.399 149.424 515.374 149.624 514.574L153.899 513.899z"/>
+ </g>
+ <g style="fill: #c65d24">
+ <path d="M153.899 513.899C153.899 513.899 152.075 515.274 151.1 516.474C150.125 517.674 150.099 518.899 150.099 518.899C150.099 518.899 149.899 516.899 149.699 516.899C149.349 516.399 149.424 515.374 149.624 514.574L153.899 513.899z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M192.07 567.011C192.121 567.411 192.572 568.026 192.745 568.323C192.745 568.323 192.748 568.76 192.053 569.295C191.822 569.473 191.437 569.962 191.025 570.15C189.958 570.635 187.35 570.594 183 570.75C178.8 570.9 173.75 575.325 173.75 575.325C173.346 574.855 173.478 573.647 173.877 572.848C173.877 572.848 175.35 570.75 180.15 569.325C183.525 568.275 185.976 568.676 187.05 568.65C190.125 568.575 192.07 567.011 192.07 567.011z"/>
+ </g>
+ <g style="fill: #000017">
+ <path d="M176.871 570.6C176.872 570.59 177.125 570.525 177.1 570.5C176.975 570.275 176.743 570.486 176.685 570.518C176.449 570.65 176.2 570.844 176.1 570.925C175.975 571.025 175.825 572.7 176.525 573.4C176.775 573.375 177.275 573.05 177.2 572.9C176.887 572.273 176.825 571.051 176.871 570.6z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M176.503 572.256C176.128 572.456 176.029 572.199 176.029 572.199C176.089 572.646 176.233 573.108 176.525 573.4C176.775 573.375 177.275 573.05 177.2 572.9C177.036 572.572 176.941 572.083 176.894 571.625L176.503 572.256z"/>
+ </g>
+ <g style="fill: #1f1f1f">
+ <path d="M188.45 570.75C187.783 570.702 187.209 569.611 187.501 568.384C187.45 568.389 187.402 568.395 187.35 568.4C186.95 569.7 187.55 570.9 188.25 570.95C188.95 571 190.6 570.75 191.35 570.05C191.378 570.024 191.401 569.991 191.422 569.957C190.626 570.575 189.113 570.797 188.45 570.75z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M190.8 567.4C190.8 567.4 189.85 568 187.55 568.2C187.149 569.499 187.75 570.7 188.45 570.75C189.15 570.8 190.799 570.55 191.55 569.85C192.067 569.367 191.4 567.35 190.8 567.4z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M191.281 568.709C191.182 568.26 190.994 567.924 190.877 567.794C190.49 567.979 189.563 568.341 187.966 568.515C187.954 568.582 187.947 568.647 187.94 568.712C189.521 568.537 190.442 568.178 190.827 567.994C190.944 568.124 191.132 568.46 191.231 568.909C191.281 569.135 191.29 569.308 191.282 569.43C191.284 569.428 191.287 569.426 191.29 569.423C191.326 569.373 191.374 569.127 191.281 568.709z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M191.231 568.909C191.132 568.46 190.944 568.124 190.827 567.994C190.442 568.178 189.521 568.537 187.94 568.712C187.932 568.713 187.925 568.714 187.916 568.715C187.797 569.366 187.968 569.9 188.165 570.169C188.266 570.307 188.385 570.394 188.482 570.401C189.046 570.441 190.457 570.236 191.146 569.701C191.174 569.679 191.21 569.65 191.24 569.623C191.276 569.573 191.324 569.327 191.231 568.909z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M188.554 569.641C188.554 569.641 188.958 569.301 189.418 569.243C189.583 569.222 189.56 569.277 189.501 569.291C189.369 569.348 188.622 569.321 188.486 569.277C188.547 569.316 188.773 569.348 188.819 569.351C189.206 569.378 189.649 569.375 189.632 569.242L189.62 569.228C189.584 569.208 189.515 569.187 189.395 569.199C189.1 569.229 188.657 569.451 188.59 569.573L188.554 569.641z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M190.91 569.081C190.91 569.081 190.175 569.012 189.784 569.156C189.644 569.208 189.734 569.235 189.794 569.222C189.96 569.208 190.429 568.891 190.462 568.808C190.474 568.858 190.364 568.97 190.337 568.99C190.169 569.118 189.973 569.255 189.796 569.27C189.734 569.275 189.681 569.265 189.638 569.241L189.627 569.226C189.625 569.198 189.643 569.157 189.74 569.117C189.98 569.02 190.582 568.993 190.794 569.05L190.91 569.081z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M188.553 569.64C188.553 569.64 189.288 569.709 189.679 569.565C189.82 569.513 189.73 569.486 189.67 569.5C189.503 569.513 189.034 569.83 189.002 569.913C188.99 569.863 189.1 569.751 189.126 569.731C189.294 569.603 189.49 569.466 189.668 569.451C189.729 569.446 189.782 569.456 189.826 569.48L189.836 569.495C189.839 569.523 189.82 569.564 189.723 569.604C189.483 569.701 188.881 569.728 188.67 569.672L188.553 569.64z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M190.909 569.08C190.909 569.08 190.506 569.42 190.045 569.478C189.88 569.499 189.903 569.445 189.963 569.43C190.094 569.373 190.841 569.4 190.977 569.444C190.917 569.405 190.69 569.373 190.645 569.37C190.258 569.344 189.815 569.346 189.831 569.479L189.843 569.493C189.88 569.513 189.949 569.534 190.068 569.522C190.363 569.492 190.807 569.27 190.873 569.148L190.909 569.08z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M189.668 570.134C189.668 570.134 189.452 569.816 189.637 569.661C189.703 569.605 189.762 569.646 189.747 569.67C189.747 569.74 189.287 569.914 189.153 569.922C189.239 569.931 189.408 569.893 189.438 569.883C189.627 569.822 189.828 569.749 189.828 569.675C189.828 569.649 189.804 569.626 189.757 569.605L189.732 569.6C189.685 569.596 189.618 569.601 189.567 569.639C189.438 569.734 189.477 569.988 189.6 570.082L189.668 570.134z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M190.533 569.906C190.533 569.906 189.969 569.801 189.853 569.615C189.811 569.548 189.899 569.547 189.925 569.57C190.023 569.615 190.018 569.941 189.955 570.007C190.015 569.974 190.053 569.87 190.056 569.85C190.073 569.723 190.08 569.583 189.976 569.535C189.94 569.519 189.894 569.515 189.84 569.523L189.818 569.531C189.789 569.551 189.759 569.585 189.784 569.633C189.846 569.754 190.224 569.9 190.423 569.904L190.533 569.906z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M189.521 568.657C189.521 568.657 189.283 568.953 189.456 569.125C189.519 569.187 189.579 569.153 189.567 569.127C189.572 569.057 189.125 568.839 188.992 568.819C189.078 568.818 189.245 568.872 189.274 568.885C189.458 568.964 189.653 569.056 189.648 569.13C189.646 569.156 189.62 569.177 189.572 569.193L189.547 569.196C189.5 569.194 189.434 569.184 189.385 569.14C189.263 569.034 189.32 568.785 189.449 568.702L189.521 568.657z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M188.577 568.825C188.577 568.825 188.862 569.127 189.198 569.158C189.319 569.169 189.303 569.119 189.26 569.108C189.165 569.061 188.617 569.126 188.516 569.175C188.561 569.134 188.728 569.092 188.762 569.087C188.973 569.053 189.208 569.022 189.309 569.073C189.344 569.09 189.359 569.115 189.355 569.148L189.346 569.162C189.318 569.183 189.267 569.206 189.18 569.201C188.965 569.188 188.646 569.001 188.601 568.888L188.577 568.825z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M190.774 569.842C190.774 569.842 190.488 569.541 190.152 569.51C190.032 569.498 190.047 569.549 190.09 569.56C190.185 569.607 190.734 569.542 190.834 569.493C190.789 569.534 190.622 569.575 190.589 569.581C190.377 569.615 190.142 569.645 190.041 569.595C190.007 569.578 189.991 569.552 189.995 569.52L190.004 569.506C190.032 569.485 190.083 569.462 190.17 569.467C190.385 569.479 190.704 569.667 190.749 569.78L190.774 569.842z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M189.821 568.574C189.821 568.574 190.037 568.892 189.852 569.047C189.786 569.102 189.728 569.062 189.742 569.038C189.742 568.968 190.202 568.793 190.337 568.786C190.251 568.777 190.081 568.815 190.051 568.825C189.862 568.886 189.661 568.959 189.661 569.033C189.661 569.059 189.685 569.082 189.732 569.102L189.757 569.108C189.804 569.111 189.871 569.107 189.923 569.069C190.051 568.974 190.012 568.72 189.89 568.626L189.821 568.574z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M188.639 569.598C188.639 569.598 189.042 569.258 189.502 569.199C189.668 569.178 189.644 569.233 189.585 569.247C189.454 569.304 188.706 569.277 188.571 569.233C188.631 569.273 188.857 569.304 188.903 569.307C189.29 569.334 189.733 569.331 189.717 569.198L189.705 569.184C189.668 569.164 189.599 569.143 189.48 569.155C189.185 569.185 188.741 569.407 188.674 569.53L188.639 569.598z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M190.995 569.038C190.995 569.038 190.26 568.968 189.869 569.112C189.728 569.164 189.818 569.192 189.878 569.178C190.045 569.164 190.513 568.848 190.546 568.764C190.558 568.814 190.448 568.926 190.421 568.946C190.253 569.074 190.057 569.212 189.88 569.227C189.819 569.232 189.765 569.222 189.722 569.197L189.711 569.183C189.709 569.155 189.727 569.113 189.824 569.073C190.065 568.976 190.666 568.95 190.878 569.006L190.995 569.038z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M188.637 569.596C188.637 569.596 189.373 569.665 189.763 569.521C189.904 569.47 189.814 569.442 189.754 569.456C189.587 569.47 189.119 569.786 189.086 569.87C189.074 569.819 189.184 569.707 189.211 569.687C189.379 569.559 189.575 569.422 189.752 569.407C189.813 569.402 189.866 569.412 189.91 569.437L189.921 569.451C189.923 569.479 189.905 569.521 189.808 569.56C189.568 569.658 188.966 569.684 188.754 569.628L188.637 569.596z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M190.994 569.036C190.994 569.036 190.59 569.376 190.13 569.434C189.964 569.455 189.988 569.401 190.047 569.386C190.179 569.329 190.926 569.357 191.061 569.4C191.001 569.361 190.775 569.33 190.729 569.326C190.342 569.3 189.899 569.303 189.915 569.435L189.927 569.449C189.964 569.469 190.033 569.49 190.152 569.478C190.447 569.449 190.891 569.226 190.958 569.104L190.994 569.036z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M189.753 570.09C189.753 570.09 189.536 569.772 189.721 569.617C189.788 569.562 189.846 569.602 189.832 569.626C189.831 569.696 189.371 569.871 189.237 569.878C189.323 569.887 189.493 569.849 189.523 569.839C189.712 569.778 189.912 569.705 189.913 569.631C189.913 569.605 189.889 569.582 189.842 569.562L189.816 569.556C189.769 569.553 189.703 569.557 189.651 569.595C189.522 569.69 189.562 569.944 189.684 570.038L189.753 570.09z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M190.617 569.862C190.617 569.862 190.054 569.757 189.937 569.571C189.895 569.504 189.983 569.504 190.01 569.526C190.108 569.571 190.102 569.897 190.039 569.964C190.099 569.93 190.138 569.827 190.14 569.807C190.157 569.679 190.164 569.54 190.06 569.492C190.024 569.475 189.979 569.471 189.924 569.479L189.903 569.487C189.873 569.507 189.843 569.541 189.868 569.59C189.931 569.71 190.308 569.856 190.507 569.861L190.617 569.862z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M189.605 568.613C189.605 568.613 189.367 568.909 189.541 569.082C189.603 569.144 189.663 569.109 189.651 569.083C189.656 569.014 189.21 568.795 189.077 568.775C189.163 568.774 189.329 568.829 189.358 568.841C189.542 568.921 189.737 569.012 189.732 569.086C189.73 569.112 189.705 569.133 189.656 569.149L189.631 569.152C189.584 569.151 189.518 569.14 189.469 569.097C189.348 568.99 189.404 568.741 189.533 568.659L189.605 568.613z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M188.661 568.782C188.661 568.782 188.947 569.083 189.282 569.115C189.403 569.126 189.387 569.075 189.344 569.064C189.25 569.017 188.701 569.082 188.6 569.131C188.646 569.09 188.812 569.049 188.846 569.043C189.058 569.01 189.292 568.979 189.393 569.029C189.428 569.046 189.444 569.072 189.44 569.104L189.43 569.118C189.403 569.139 189.351 569.163 189.264 569.157C189.049 569.144 188.73 568.957 188.685 568.844L188.661 568.782z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M190.858 569.799C190.858 569.799 190.572 569.497 190.236 569.466C190.116 569.455 190.131 569.505 190.174 569.516C190.269 569.563 190.818 569.498 190.919 569.449C190.873 569.49 190.706 569.532 190.673 569.537C190.461 569.571 190.227 569.602 190.126 569.551C190.091 569.534 190.075 569.509 190.079 569.476L190.089 569.462C190.116 569.441 190.167 569.418 190.255 569.423C190.47 569.436 190.788 569.623 190.834 569.736L190.858 569.799z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M189.905 568.53C189.905 568.53 190.122 568.848 189.937 569.003C189.87 569.059 189.812 569.018 189.827 568.994C189.827 568.924 190.287 568.749 190.421 568.742C190.335 568.733 190.165 568.771 190.135 568.781C189.946 568.842 189.746 568.915 189.746 568.989C189.746 569.015 189.769 569.038 189.817 569.059L189.842 569.064C189.889 569.067 189.955 569.063 190.007 569.025C190.136 568.93 190.096 568.676 189.974 568.582L189.905 568.53z"/>
+ </g>
+ <g style="fill: #170000">
+ <path d="M194.025 569.212C193.961 569.213 193.899 569.216 193.836 569.217C194.148 569.878 196.5 572.1 196.5 572.1C196.5 572.1 181.127 571.362 173.272 579.716C173.287 579.867 173.305 579.972 173.325 580.012C181.125 571.462 196.725 572.212 196.725 572.212C196.725 572.212 194.025 569.662 194.025 569.212z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M196.5 572.1C196.5 572.1 193.8 569.55 193.8 569.1C181.8 569.25 174 574.05 172.95 575.7C172.95 575.7 172.95 579.6 173.1 579.9C180.907 571.345 196.5 572.1 196.5 572.1z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M173.827 575.099L174.038 577.759C174.06 578.038 173.868 578.983 173.622 579.024C173.377 579.065 173.034 578.119 173.012 577.841L172.801 575.181C172.779 574.902 173.804 574.82 173.827 575.099z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M173.561 575.12L173.772 577.78C173.794 578.059 173.868 578.983 173.622 579.024C173.377 579.065 173.034 578.119 173.012 577.841L172.801 575.181C172.779 574.902 173.538 574.842 173.561 575.12z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M173.068 574.955C172.917 574.987 172.791 575.065 172.801 575.181L173.012 577.841C173.034 578.119 173.377 579.065 173.622 579.024C173.622 579.024 173.298 578.073 173.299 577.839C173.299 577.605 173.068 574.955 173.068 574.955z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M173.51 577.376C173.168 577.403 172.983 577.482 172.983 577.482L172.838 575.645C172.815 575.366 173.841 575.285 173.863 575.563L174.01 577.4C174.01 577.4 173.852 577.349 173.51 577.376z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M173.32 577.398C173.1 577.432 172.983 577.482 172.983 577.482L172.838 575.645C172.829 575.534 172.987 575.454 173.182 575.416L173.32 577.398z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M172.859 575.197C173.039 574.997 173.504 574.943 173.773 575.146C173.419 575.021 172.859 575.197 172.859 575.197z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M173.685 578.849C173.768 578.694 173.963 578.254 173.958 577.957C173.954 577.659 173.799 577.884 173.791 578.012C173.782 578.14 173.834 578.561 173.708 578.656C173.582 578.751 173.685 578.849 173.685 578.849z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M173.904 577.281C173.846 577.264 173.695 575.853 173.682 575.684C173.668 575.515 173.736 575.637 173.77 575.826C173.804 576.014 173.878 576.709 173.898 576.963C173.918 577.216 173.904 577.281 173.904 577.281z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M174.714 574.264L175.019 576.914C175.051 577.192 174.892 578.144 174.649 578.193C174.405 578.243 174.029 577.31 173.997 577.032L173.692 574.381C173.66 574.104 174.682 573.986 174.714 574.264z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M174.449 574.294L174.754 576.945C174.786 577.223 174.892 578.144 174.649 578.193C174.405 578.243 174.029 577.31 173.997 577.032L173.692 574.381C173.66 574.104 174.417 574.016 174.449 574.294z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M173.951 574.147C173.801 574.184 173.678 574.266 173.692 574.381L173.997 577.032C174.029 577.31 174.405 578.243 174.649 578.193C174.649 578.193 174.291 577.254 174.284 577.02C174.276 576.787 173.951 574.147 173.951 574.147z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M174.479 576.55C174.138 576.59 173.956 576.675 173.956 576.675L173.745 574.844C173.713 574.567 174.735 574.449 174.767 574.726L174.978 576.557C174.978 576.557 174.82 576.511 174.479 576.55z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M174.289 576.579C174.071 576.621 173.956 576.675 173.956 576.675L173.745 574.844C173.732 574.733 173.887 574.648 174.081 574.603L174.289 576.579z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M173.751 574.396C173.923 574.189 174.386 574.119 174.662 574.312C174.304 574.2 173.751 574.396 173.751 574.396z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M174.705 578.016C174.783 577.858 174.962 577.411 174.947 577.115C174.932 576.818 174.785 577.048 174.781 577.176C174.777 577.305 174.844 577.723 174.721 577.823C174.598 577.922 174.705 578.016 174.705 578.016z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M174.869 576.441C174.81 576.427 174.61 575.022 174.59 574.853C174.571 574.685 174.642 574.805 174.683 574.992C174.724 575.179 174.822 575.871 174.852 576.124C174.881 576.376 174.869 576.441 174.869 576.441z"/>
+ </g>
+ <g style="fill: #171717">
+ <path d="M175.537 576.396C175.869 576.304 176.105 576.11 176.064 575.962C176.023 575.815 175.721 575.769 175.389 575.861C175.057 575.953 174.821 576.147 174.862 576.295C174.903 576.442 175.205 576.487 175.537 576.396z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M175.513 575.84C175.175 575.879 174.995 575.963 174.995 575.963L174.786 574.151C174.755 573.877 175.767 573.76 175.799 574.035L176.007 575.847C176.007 575.847 175.85 575.802 175.513 575.84z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M175.325 575.869C175.109 575.91 174.995 575.963 174.995 575.963L174.786 574.151C174.774 574.042 174.927 573.957 175.119 573.913L175.325 575.869z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M175.899 575.733C175.841 575.718 175.642 574.327 175.623 574.16C175.604 573.994 175.675 574.112 175.715 574.298C175.755 574.483 175.853 575.168 175.882 575.418C175.911 575.668 175.899 575.733 175.899 575.733z"/>
+ </g>
+ <g style="fill: #171717">
+ <path d="M176.457 575.73C176.798 575.68 177.056 575.517 177.034 575.366C177.012 575.214 176.718 575.132 176.377 575.181C176.036 575.231 175.778 575.394 175.8 575.545C175.822 575.697 176.116 575.779 176.457 575.73z"/>
+ </g>
+ <g style="fill: #171717">
+ <path d="M178.482 574.605C178.823 574.555 179.081 574.392 179.059 574.241C179.037 574.089 178.743 574.007 178.402 574.056C178.061 574.106 177.803 574.269 177.825 574.42C177.847 574.572 178.141 574.654 178.482 574.605z"/>
+ </g>
+ <g style="fill: #171717">
+ <path d="M179.644 574.117C179.985 574.068 180.244 573.905 180.222 573.753C180.2 573.602 179.905 573.519 179.565 573.569C179.224 573.618 178.965 573.781 178.987 573.933C179.009 574.084 179.304 574.167 179.644 574.117z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M176.36 575.182C176.022 575.221 175.842 575.304 175.842 575.304L175.634 573.493C175.602 573.218 176.614 573.101 176.646 573.376L176.854 575.188C176.854 575.188 176.697 575.143 176.36 575.182z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M176.172 575.21C175.956 575.251 175.842 575.304 175.842 575.304L175.634 573.493C175.621 573.383 175.774 573.298 175.966 573.254L176.172 575.21z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M176.746 575.074C176.688 575.059 176.489 573.668 176.47 573.502C176.451 573.335 176.522 573.454 176.562 573.639C176.602 573.824 176.7 574.509 176.729 574.759C176.758 575.009 176.746 575.074 176.746 575.074z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M177.678 572.367L177.98 574.991C178.012 575.266 177.854 576.209 177.613 576.258C177.372 576.307 176.999 575.383 176.968 575.108L176.665 572.483C176.634 572.208 177.646 572.092 177.678 572.367z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M177.415 572.397L177.718 575.022C177.749 575.296 177.854 576.209 177.613 576.258C177.372 576.307 176.999 575.383 176.968 575.108L176.665 572.483C176.634 572.208 177.384 572.122 177.415 572.397z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M176.922 572.251C176.774 572.288 176.652 572.369 176.665 572.483L176.968 575.108C176.999 575.383 177.372 576.307 177.613 576.258C177.613 576.258 177.259 575.328 177.251 575.096C177.244 574.865 176.922 572.251 176.922 572.251z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M177.445 574.631C177.107 574.67 176.927 574.754 176.927 574.754L176.718 572.942C176.687 572.667 177.699 572.55 177.731 572.825L177.939 574.637C177.939 574.637 177.782 574.592 177.445 574.631z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M177.257 574.659C177.041 574.701 176.927 574.754 176.927 574.754L176.718 572.942C176.706 572.832 176.859 572.747 177.05 572.703L177.257 574.659z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M176.724 572.498C176.895 572.293 177.353 572.223 177.626 572.415C177.272 572.303 176.724 572.498 176.724 572.498z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M177.669 576.082C177.746 575.926 177.923 575.483 177.908 575.189C177.893 574.896 177.748 575.123 177.744 575.251C177.74 575.378 177.806 575.792 177.685 575.891C177.563 575.989 177.669 576.082 177.669 576.082z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M177.831 574.523C177.772 574.509 177.574 573.117 177.555 572.951C177.536 572.784 177.606 572.903 177.647 573.088C177.687 573.273 177.785 573.958 177.814 574.208C177.843 574.458 177.831 574.523 177.831 574.523z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M178.501 574.199C178.164 574.237 177.983 574.322 177.983 574.322L177.775 572.509C177.743 572.234 178.755 572.118 178.787 572.393L178.996 574.205C178.996 574.205 178.839 574.16 178.501 574.199z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M178.314 574.227C178.097 574.269 177.983 574.322 177.983 574.322L177.775 572.509C177.762 572.4 177.916 572.315 178.107 572.271L178.314 574.227z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M178.888 574.091C178.829 574.076 178.631 572.685 178.611 572.519C178.592 572.352 178.663 572.47 178.703 572.656C178.744 572.841 178.842 573.526 178.87 573.776C178.899 574.026 178.888 574.091 178.888 574.091z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M179.603 573.683C179.265 573.722 179.085 573.806 179.085 573.806L178.876 571.993C178.844 571.718 179.857 571.601 179.889 571.877L180.097 573.689C180.097 573.689 179.94 573.644 179.603 573.683z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M179.415 573.711C179.199 573.753 179.085 573.806 179.085 573.806L178.876 571.993C178.863 571.883 179.017 571.799 179.208 571.754L179.415 573.711z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M179.989 573.575C179.931 573.561 179.732 572.169 179.713 572.002C179.694 571.836 179.764 571.954 179.805 572.139C179.845 572.325 179.943 573.01 179.972 573.26C180.001 573.51 179.989 573.575 179.989 573.575z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M180.886 571.068L181.188 573.693C181.22 573.968 181.062 574.911 180.821 574.96C180.58 575.009 180.207 574.085 180.176 573.81L179.873 571.185C179.841 570.91 180.854 570.793 180.886 571.068z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M180.623 571.098L180.926 573.724C180.957 573.998 181.062 574.911 180.821 574.96C180.58 575.009 180.207 574.085 180.176 573.81L179.873 571.185C179.841 570.91 180.592 570.823 180.623 571.098z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M180.13 570.952C179.981 570.989 179.86 571.071 179.873 571.185L180.176 573.81C180.207 574.085 180.58 575.009 180.821 574.96C180.821 574.96 180.467 574.03 180.459 573.798C180.452 573.567 180.13 570.952 180.13 570.952z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M180.653 573.333C180.315 573.372 180.135 573.456 180.135 573.456L179.926 571.643C179.894 571.368 180.907 571.252 180.938 571.526L181.147 573.339C181.147 573.339 180.99 573.294 180.653 573.333z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M180.465 573.361C180.249 573.403 180.135 573.456 180.135 573.456L179.926 571.643C179.913 571.533 180.067 571.449 180.258 571.404L180.465 573.361z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M179.932 571.199C180.102 570.995 180.561 570.925 180.834 571.116C180.48 571.005 179.932 571.199 179.932 571.199z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M180.877 574.785C180.954 574.628 181.131 574.185 181.116 573.892C181.101 573.598 180.956 573.825 180.952 573.953C180.948 574.08 181.014 574.494 180.893 574.593C180.771 574.691 180.877 574.785 180.877 574.785z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M181.039 573.225C180.981 573.211 180.782 571.819 180.763 571.652C180.744 571.486 180.815 571.604 180.855 571.789C180.895 571.975 180.993 572.66 181.022 572.91C181.051 573.16 181.039 573.225 181.039 573.225z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M181.922 570.642L182.212 573.164C182.243 573.428 182.091 574.333 181.86 574.38C181.628 574.428 181.27 573.54 181.24 573.276L180.949 570.754C180.919 570.49 181.891 570.378 181.922 570.642z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M181.67 570.671L181.96 573.193C181.991 573.457 182.091 574.333 181.86 574.38C181.628 574.428 181.27 573.54 181.24 573.276L180.949 570.754C180.919 570.49 181.639 570.407 181.67 570.671z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M181.196 570.531C181.053 570.566 180.937 570.644 180.949 570.754L181.24 573.276C181.27 573.54 181.628 574.428 181.86 574.38C181.86 574.38 181.519 573.487 181.512 573.265C181.505 573.042 181.196 570.531 181.196 570.531z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M181.698 572.817C181.374 572.855 181.2 572.935 181.2 572.935L181 571.194C180.969 570.93 181.942 570.818 181.973 571.082L182.173 572.823C182.173 572.823 182.022 572.78 181.698 572.817z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M181.518 572.845C181.31 572.884 181.2 572.935 181.2 572.935L181 571.194C180.988 571.089 181.135 571.007 181.319 570.965L181.518 572.845z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M181.005 570.768C181.169 570.571 181.61 570.504 181.872 570.688C181.532 570.581 181.005 570.768 181.005 570.768z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M181.913 574.212C181.987 574.062 182.157 573.636 182.143 573.354C182.129 573.072 181.99 573.291 181.986 573.413C181.981 573.535 182.045 573.933 181.929 574.028C181.812 574.122 181.913 574.212 181.913 574.212z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M182.069 572.714C182.013 572.7 181.822 571.363 181.804 571.203C181.786 571.043 181.853 571.157 181.892 571.335C181.931 571.513 182.025 572.171 182.053 572.411C182.08 572.652 182.069 572.714 182.069 572.714z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M182.972 570.342L183.262 572.864C183.293 573.128 183.142 574.034 182.91 574.08C182.678 574.128 182.32 573.24 182.29 572.976L181.999 570.454C181.969 570.19 182.941 570.078 182.972 570.342z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M182.72 570.371L183.01 572.893C183.041 573.157 183.142 574.034 182.91 574.08C182.678 574.128 182.32 573.24 182.29 572.976L181.999 570.454C181.969 570.19 182.689 570.107 182.72 570.371z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M182.246 570.231C182.103 570.266 181.986 570.344 181.999 570.454L182.29 572.976C182.32 573.24 182.678 574.128 182.91 574.08C182.91 574.08 182.57 573.187 182.562 572.965C182.555 572.742 182.246 570.231 182.246 570.231z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M182.748 572.517C182.424 572.555 182.25 572.635 182.25 572.635L182.05 570.894C182.019 570.63 182.992 570.518 183.022 570.782L183.223 572.523C183.223 572.523 183.072 572.48 182.748 572.517z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M182.568 572.545C182.36 572.584 182.25 572.635 182.25 572.635L182.05 570.894C182.038 570.789 182.185 570.707 182.369 570.665L182.568 572.545z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M182.055 570.468C182.219 570.271 182.66 570.204 182.922 570.388C182.582 570.281 182.055 570.468 182.055 570.468z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M182.963 573.912C183.037 573.762 183.207 573.336 183.193 573.054C183.179 572.772 183.04 572.991 183.036 573.113C183.031 573.235 183.096 573.633 182.979 573.728C182.862 573.822 182.963 573.912 182.963 573.912z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M183.119 572.414C183.063 572.4 182.872 571.063 182.854 570.903C182.836 570.743 182.903 570.857 182.942 571.035C182.981 571.213 183.075 571.871 183.103 572.111C183.13 572.352 183.119 572.414 183.119 572.414z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M184.072 570.042L184.362 572.564C184.393 572.828 184.242 573.734 184.01 573.78C183.778 573.827 183.42 572.94 183.39 572.676L183.099 570.154C183.069 569.89 184.041 569.778 184.072 570.042z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M183.82 570.071L184.11 572.593C184.141 572.857 184.242 573.734 184.01 573.78C183.778 573.827 183.42 572.94 183.39 572.676L183.099 570.154C183.069 569.89 183.789 569.807 183.82 570.071z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M183.346 569.931C183.203 569.966 183.087 570.044 183.099 570.154L183.39 572.676C183.42 572.94 183.778 573.827 184.01 573.78C184.01 573.78 183.67 572.887 183.662 572.665C183.655 572.442 183.346 569.931 183.346 569.931z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M183.848 572.217C183.524 572.255 183.351 572.335 183.351 572.335L183.15 570.594C183.119 570.33 184.092 570.218 184.123 570.482L184.323 572.223C184.323 572.223 184.172 572.18 183.848 572.217z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M183.668 572.245C183.46 572.284 183.351 572.335 183.351 572.335L183.15 570.594C183.138 570.489 183.285 570.408 183.469 570.365L183.668 572.245z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M183.156 570.168C183.319 569.971 183.76 569.904 184.022 570.088C183.682 569.981 183.156 570.168 183.156 570.168z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M184.063 573.612C184.137 573.462 184.307 573.036 184.293 572.754C184.279 572.472 184.14 572.691 184.135 572.813C184.131 572.935 184.195 573.333 184.079 573.428C183.962 573.522 184.063 573.612 184.063 573.612z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M184.219 572.114C184.163 572.1 183.972 570.763 183.954 570.603C183.935 570.443 184.003 570.557 184.042 570.735C184.081 570.913 184.175 571.571 184.203 571.811C184.23 572.052 184.219 572.114 184.219 572.114z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M184.965 569.703L185.352 572.212C185.392 572.475 185.276 573.385 185.046 573.441C184.816 573.497 184.425 572.624 184.384 572.361L183.997 569.852C183.957 569.589 184.925 569.44 184.965 569.703z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M184.714 569.742L185.101 572.25C185.141 572.513 185.276 573.385 185.046 573.441C184.816 573.497 184.425 572.624 184.384 572.361L183.997 569.852C183.957 569.589 184.674 569.479 184.714 569.742z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M184.235 569.619C184.094 569.66 183.981 569.743 183.997 569.852L184.384 572.361C184.425 572.624 184.816 573.497 185.046 573.441C185.046 573.441 184.672 572.561 184.656 572.339C184.64 572.118 184.235 569.619 184.235 569.619z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M184.825 571.885C184.502 571.935 184.332 572.022 184.332 572.022L184.065 570.29C184.024 570.027 184.992 569.878 185.033 570.141L185.3 571.873C185.3 571.873 185.147 571.836 184.825 571.885z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M184.646 571.919C184.439 571.967 184.332 572.022 184.332 572.022L184.065 570.29C184.049 570.185 184.193 570.098 184.375 570.049L184.646 571.919z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M184.054 569.864C184.21 569.661 184.648 569.577 184.917 569.751C184.573 569.657 184.054 569.864 184.054 569.864z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M185.093 573.271C185.161 573.118 185.315 572.686 185.29 572.405C185.265 572.123 185.134 572.347 185.135 572.469C185.135 572.592 185.214 572.987 185.101 573.086C184.988 573.185 185.093 573.271 185.093 573.271z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M185.192 571.767C185.135 571.756 184.893 570.427 184.869 570.268C184.844 570.109 184.916 570.22 184.962 570.396C185.007 570.573 185.127 571.227 185.163 571.466C185.2 571.705 185.192 571.767 185.192 571.767z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M195.438 569.198L196.311 571.192C196.402 571.4 196.507 572.181 196.329 572.278C196.15 572.375 195.634 571.737 195.542 571.528L194.669 569.535C194.577 569.326 195.346 568.989 195.438 569.198z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M195.238 569.285L196.112 571.279C196.203 571.488 196.507 572.181 196.329 572.278C196.15 572.375 195.634 571.737 195.542 571.528L194.669 569.535C194.577 569.326 195.147 569.077 195.238 569.285z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M194.815 569.29C194.707 569.355 194.631 569.448 194.669 569.535L195.542 571.528C195.634 571.737 196.15 572.375 196.329 572.278C196.329 572.278 195.825 571.631 195.763 571.451C195.701 571.27 194.815 569.29 194.815 569.29z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M195.802 571.037C195.546 571.15 195.424 571.259 195.424 571.259L194.821 569.883C194.73 569.674 195.499 569.337 195.59 569.546L196.193 570.923C196.193 570.923 196.058 570.925 195.802 571.037z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M195.661 571.105C195.501 571.19 195.424 571.259 195.424 571.259L194.821 569.883C194.785 569.8 194.885 569.696 195.025 569.615L195.661 571.105z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M194.718 569.532C194.803 569.33 195.147 569.163 195.409 569.248C195.103 569.246 194.718 569.532 194.718 569.532z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M196.33 572.126C196.353 571.984 196.385 571.593 196.302 571.365C196.219 571.137 196.161 571.352 196.188 571.453C196.215 571.554 196.368 571.864 196.296 571.971C196.224 572.078 196.33 572.126 196.33 572.126z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M196.08 570.859C196.031 570.862 195.538 569.814 195.482 569.688C195.427 569.561 195.511 569.637 195.588 569.773C195.664 569.909 195.908 570.425 195.991 570.615C196.074 570.805 196.08 570.859 196.08 570.859z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M194.434 568.917L195.354 571.015C195.45 571.235 195.56 572.057 195.372 572.159C195.185 572.261 194.641 571.59 194.544 571.37L193.625 569.272C193.529 569.052 194.338 568.697 194.434 568.917z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M194.225 569.009L195.144 571.107C195.24 571.327 195.56 572.057 195.372 572.159C195.185 572.261 194.641 571.59 194.544 571.37L193.625 569.272C193.529 569.052 194.128 568.789 194.225 569.009z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M193.779 569.014C193.665 569.082 193.585 569.18 193.625 569.272L194.544 571.37C194.641 571.59 195.185 572.261 195.372 572.159C195.372 572.159 194.842 571.478 194.776 571.288C194.711 571.098 193.779 569.014 193.779 569.014z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M194.818 570.853C194.548 570.971 194.42 571.087 194.42 571.087L193.786 569.638C193.689 569.418 194.499 569.064 194.595 569.283L195.23 570.732C195.23 570.732 195.088 570.735 194.818 570.853z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M194.67 570.924C194.501 571.014 194.42 571.087 194.42 571.087L193.786 569.638C193.747 569.55 193.853 569.441 194 569.355L194.67 570.924z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M193.677 569.269C193.767 569.055 194.129 568.881 194.404 568.97C194.082 568.968 193.677 569.269 193.677 569.269z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M195.374 571.999C195.398 571.85 195.432 571.438 195.344 571.198C195.257 570.958 195.195 571.184 195.224 571.291C195.253 571.397 195.414 571.724 195.338 571.836C195.262 571.949 195.374 571.999 195.374 571.999z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M195.111 570.665C195.059 570.668 194.54 569.566 194.481 569.432C194.423 569.299 194.512 569.379 194.593 569.523C194.673 569.666 194.929 570.209 195.017 570.409C195.104 570.609 195.111 570.665 195.111 570.665z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M193.608 568.845L194.353 571.011C194.431 571.238 194.473 572.066 194.278 572.152C194.082 572.238 193.595 571.525 193.517 571.298L192.773 569.132C192.695 568.905 193.531 568.618 193.608 568.845z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M193.392 568.919L194.136 571.086C194.214 571.313 194.473 572.066 194.278 572.152C194.082 572.238 193.595 571.525 193.517 571.298L192.773 569.132C192.695 568.905 193.314 568.692 193.392 568.919z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M192.947 568.887C192.828 568.946 192.74 569.038 192.773 569.132L193.517 571.298C193.595 571.525 194.082 572.238 194.278 572.152C194.278 572.152 193.805 571.43 193.755 571.236C193.706 571.041 192.947 568.887 192.947 568.887z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M193.832 570.806C193.554 570.901 193.417 571.006 193.417 571.006L192.903 569.51C192.825 569.283 193.661 568.996 193.738 569.223L194.252 570.719C194.252 570.719 194.111 570.71 193.832 570.806z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M193.679 570.865C193.503 570.94 193.417 571.006 193.417 571.006L192.903 569.51C192.872 569.419 192.986 569.319 193.14 569.246L193.679 570.865z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M192.825 569.133C192.932 568.928 193.307 568.783 193.574 568.895C193.253 568.866 192.825 569.133 192.825 569.133z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M194.292 571.993C194.328 571.846 194.396 571.439 194.329 571.193C194.261 570.947 194.181 571.166 194.201 571.275C194.221 571.383 194.355 571.722 194.27 571.828C194.185 571.934 194.292 571.993 194.292 571.993z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M194.14 570.642C194.087 570.641 193.661 569.5 193.613 569.362C193.566 569.225 193.648 569.312 193.716 569.461C193.785 569.611 193.996 570.173 194.066 570.379C194.137 570.586 194.14 570.642 194.14 570.642z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M192.611 568.758L193.394 571.039C193.476 571.278 193.521 572.149 193.315 572.24C193.11 572.331 192.597 571.58 192.515 571.341L191.731 569.061C191.649 568.822 192.529 568.519 192.611 568.758z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M192.383 568.837L193.166 571.117C193.248 571.356 193.521 572.149 193.315 572.24C193.11 572.331 192.597 571.58 192.515 571.341L191.731 569.061C191.649 568.822 192.301 568.598 192.383 568.837z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M191.915 568.803C191.789 568.865 191.697 568.961 191.731 569.061L192.515 571.341C192.597 571.58 193.11 572.331 193.315 572.24C193.315 572.24 192.817 571.48 192.765 571.275C192.713 571.071 191.915 568.803 191.915 568.803z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M192.846 570.822C192.553 570.923 192.409 571.034 192.409 571.034L191.868 569.459C191.786 569.22 192.666 568.918 192.748 569.157L193.289 570.731C193.289 570.731 193.14 570.722 192.846 570.822z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M192.685 570.885C192.5 570.964 192.409 571.034 192.409 571.034L191.868 569.459C191.835 569.363 191.956 569.258 192.118 569.181L192.685 570.885z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M191.786 569.062C191.898 568.846 192.293 568.694 192.575 568.811C192.237 568.781 191.786 569.062 191.786 569.062z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M193.331 572.073C193.369 571.918 193.44 571.489 193.369 571.23C193.298 570.971 193.214 571.202 193.235 571.317C193.256 571.431 193.396 571.787 193.307 571.899C193.218 572.01 193.331 572.073 193.331 572.073z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M193.17 570.651C193.115 570.649 192.666 569.448 192.616 569.303C192.566 569.158 192.652 569.25 192.725 569.407C192.797 569.565 193.018 570.156 193.093 570.373C193.168 570.591 193.17 570.651 193.17 570.651z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M187.856 572.62L186.632 569.422L186.336 569.67L187.551 572.91L192.086 572.32L192.317 571.976L187.856 572.62z"/>
+ </g>
+ <g style="fill: #2e2e2e">
+ <path d="M187.856 572.62L186.632 569.422L186.336 569.67L187.551 572.91L187.856 572.62z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M192.291 571.98L191.096 568.84L186.641 569.38L187.856 572.62L192.291 571.98z"/>
+ </g>
+ <g style="fill: #171717">
+ <path d="M191.49 571.644L191.637 571.623L190.721 569.215L187.305 569.629L187.341 569.724L190.608 569.328L191.49 571.644z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M191.49 571.644L190.608 569.328L187.341 569.724L188.237 572.113L191.49 571.644z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M191.322 571.667L190.486 569.47L187.385 569.846L188.236 572.113L191.322 571.667z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M188.025 570.975C187.998 570.948 187.934 570.79 187.899 570.7C187.848 570.717 187.801 570.733 187.762 570.75C187.762 570.75 187.875 571.05 187.912 571.087C188.512 570.787 190.762 570.75 190.762 570.75C190.762 570.75 190.746 570.7 190.725 570.641C190.217 570.655 188.533 570.721 188.025 570.975z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M190.875 570.637C190.875 570.637 190.8 570.412 190.762 570.337C190.2 570.187 188.4 570.412 187.875 570.637C187.875 570.637 187.885 570.664 187.899 570.7C187.934 570.79 187.998 570.948 188.025 570.975C188.625 570.675 190.875 570.637 190.875 570.637z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M186.225 571.16C186.205 571.16 186.187 571.167 186.169 571.171C186.287 571.197 186.377 571.298 186.377 571.425C186.377 571.551 186.287 571.652 186.169 571.678C186.187 571.683 186.205 571.69 186.225 571.69C186.371 571.69 186.49 571.571 186.49 571.425C186.49 571.278 186.371 571.16 186.225 571.16z"/>
+ </g>
+ <g style="fill: #001354">
+ <path d="M186.377 571.425C186.377 571.298 186.287 571.197 186.169 571.171C186.05 571.197 185.96 571.298 185.96 571.425C185.96 571.551 186.05 571.652 186.169 571.678C186.287 571.652 186.377 571.551 186.377 571.425z"/>
+ </g>
+ <g style="fill: #340000">
+ <path d="M176.3 585.5C176.3 585.5 175.9 587.3 176.1 587.3C177.9 587.9 178.7 593.1 175.9 594.1C176.5 593.3 176.5 591.1 176.5 591.1C176.5 591.1 175.9 592.9 175.1 592.5C174.7 592.5 173.5 589.5 173.5 589.5C171.3 588.9 172.5 587.5 172.9 586.7C172.3 585.3 171.1 582.7 171.7 581.9C171.3 582.1 172.7 579.3 172.7 579.3C172.7 579.3 173.3 579.1 173.3 578.9C173.3 578.9 174.75 578.1 175.125 579.525C175.5 580.95 176.3 585.5 176.3 585.5z"/>
+ </g>
+ <g style="fill: #4f0000">
+ <path d="M176.5 591.1C176.5 591.1 175.9 592.9 175.1 592.5C174.7 592.5 173.5 589.5 173.5 589.5C171.3 588.9 172.5 587.5 172.9 586.7C172.3 585.3 171.1 582.7 171.7 581.9C171.3 582.1 172.7 579.3 172.7 579.3C172.7 579.3 173.3 579.1 173.3 578.9C173.3 578.9 174.115 578.45 174.681 578.826L176.5 591.1z"/>
+ </g>
+ <g style="stroke:#ff3b3b; stroke-width:0">
+ <path d="M173.5 589.5C171.3 588.9 172.5 587.5 172.9 586.7"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M173.7 579.375C174 581.025 175.575 588.825 175.65 589.275C175.725 589.725 176.25 591.45 174.675 591.525C174.9 591.15 175.575 590.775 175.35 589.875C175.125 588.975 173.625 582.15 173.325 581.1C173.025 580.05 173.7 579.375 173.7 579.375z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M173.5 589.5C171.3 588.9 172.5 587.5 172.9 586.7C172.9 586.7 174.6 585.6 175.725 586.125C175.875 586.275 175.95 587.7 175.95 587.7C175.95 587.7 173.875 587.925 173.5 589.5z"/>
+ </g>
+ <g style="fill: #580000">
+ <path d="M175.95 587.7C175.95 587.7 173.875 587.925 173.5 589.5C173.092 589.389 172.801 589.25 172.6 589.093C172.6 589.093 172.2 587.7 175.8 586.95C175.65 586.95 175.95 587.7 175.95 587.7z"/>
+ </g>
+ <g style="fill: #580000">
+ <path d="M175.9 594.1C178.7 593.1 177.9 587.9 176.1 587.3C175.9 587.3 176.3 585.5 176.3 585.5C176.3 585.5 175.5 580.95 175.125 579.525C175.125 579.525 174.825 579.825 174.825 580.2C174.825 580.575 175.875 586.725 175.875 587.25C175.875 587.775 177.75 588.975 177.15 591.6C176.55 594.225 175.9 594.1 175.9 594.1z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M171.7 581.9C171.3 582.1 170.3 581.5 170.3 581.5C170.3 581.5 169.9 579.1 169.9 578.7C172.7 577.7 172.7 579.3 172.7 579.3L171.7 581.9z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M172.7 579.3C172.7 579.3 172.7 577.7 169.9 578.7C169.9 578.7 171.375 578.475 171.675 578.85C171.975 579.225 171.675 579.75 171.975 580.05C172.275 580.35 172.7 579.3 172.7 579.3z"/>
+ </g>
+ <g style="fill: #2c2c2c">
+ <path d="M171.7 581.9C171.3 582.1 170.3 581.5 170.3 581.5C170.3 581.5 169.9 579.1 169.9 578.7C169.9 578.7 171.45 578.475 171.45 579.9C171.45 581.325 172.125 580.8 172.125 580.8L171.7 581.9z"/>
+ </g>
+ <g style="fill: #1f1f1f">
+ <path d="M171.555 580.642C171.745 581.095 172.125 580.8 172.125 580.8L171.7 581.9C171.6 581.95 171.462 581.95 171.312 581.922L171.555 580.642z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M171.975 584.175C172.35 582.975 173.25 581.85 174.75 582.225C174.675 581.925 173.475 581.625 172.8 582.075C172.211 582.467 171.975 584.175 171.975 584.175z"/>
+ </g>
+ <g style="fill: #141414">
+ <path d="M170.239 578.971C170.166 578.962 170.118 578.962 170.118 578.962C170.193 579.412 170.456 581.325 170.456 581.325L171.075 581.55C171.075 581.55 171.1 581.51 171.134 581.431L170.559 581.222C170.559 581.222 170.331 579.56 170.239 578.971z"/>
+ </g>
+ <g style="fill: #3b3b3b">
+ <path d="M170.456 581.325L171.075 581.55C171.075 581.55 171.1 581.51 171.134 581.431L170.559 581.222L170.456 581.325z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M170.239 578.971C170.331 579.56 170.559 581.222 170.559 581.222L171.134 581.431C171.185 581.315 171.255 581.111 171.3 580.8C171.519 579.263 170.58 579.011 170.239 578.971z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M172.5 578.85C172.05 578.925 171.525 579.075 171.3 579.075C171.075 579.075 171.525 579.375 172.05 579.375C172.575 579.375 172.5 578.85 172.5 578.85z"/>
+ </g>
+ <g style="fill: #d1d1d1">
+ <path d="M172.387 578.944C172.181 578.981 171.918 579.075 171.787 579.094C171.656 579.112 171.934 579.288 172.143 579.244C172.5 579.169 172.387 578.944 172.387 578.944z"/>
+ </g>
+ <g style="fill: #2c2c2c">
+ <path d="M171.093 579.675C171.093 579.675 170.718 580.875 170.718 581.137C170.718 581.4 170.775 580.987 170.868 580.706C170.962 580.425 171.093 579.675 171.093 579.675z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M170.793 579.281C170.793 579.281 170.512 580.162 170.512 580.425C170.512 580.687 170.568 580.275 170.662 579.994C170.756 579.712 170.793 579.281 170.793 579.281z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M170.943 579.375C170.943 579.375 170.606 580.519 170.606 580.781C170.606 581.044 170.662 580.631 170.756 580.35C170.85 580.069 170.943 579.375 170.943 579.375z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M171.093 579.675C171.093 579.675 170.718 580.875 170.718 581.137C170.718 581.4 170.775 580.987 170.868 580.706C170.962 580.425 171.093 579.675 171.093 579.675z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M170.493 579.731C170.493 579.731 170.868 580.931 170.868 581.194C170.868 581.456 170.812 581.044 170.718 580.762C170.625 580.481 170.493 579.731 170.493 579.731z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M170.531 579.169C170.531 579.169 170.906 580.369 170.906 580.631C170.906 580.894 170.85 580.481 170.756 580.2C170.662 579.919 170.531 579.169 170.531 579.169z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M170.831 579.487C170.831 579.487 171.206 580.687 171.206 580.95C171.206 581.212 171.15 580.8 171.056 580.519C170.962 580.237 170.831 579.487 170.831 579.487z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M171.225 579.9C171.225 579.9 170.925 580.931 170.925 581.194C170.925 581.456 170.981 581.044 171.075 580.762C171.168 580.481 171.225 579.9 171.225 579.9z"/>
+ </g>
+ <g style="fill: #000044">
+ <path d="M176.3 585.5C176.3 585.5 177.1 587.5 180.1 587.5C180.1 587.5 182.7 586.9 183.7 582.5C184.5 583.7 186.9 585.5 188.7 585.1C188.7 586.1 193.5 587.9 195.5 586.9C196.5 588.9 199.5 589.7 200.5 588.7C203.7 587.5 202.1 581.3 202.1 581.3L201.1 580.7C201.1 580.7 201.7 576.3 201.3 573.1C200.9 569.9 200.225 567.25 196.425 566.45C195.225 569.05 194.1 573.1 193.9 574.3C193.7 575.5 193.9 577.5 192.5 575.5C191.765 574.451 190.1 572.7 190.1 572.7C190.1 572.7 188.3 567.5 185.3 567.5C182.3 567.5 179.7 570.1 178.9 572.5C178.1 574.9 174.5 576.9 175.7 582.9C176.15 585.225 176.3 585.5 176.3 585.5z"/>
+ </g>
+ <g style="fill: #001354">
+ <path d="M192.5 575.5C191.765 574.451 190.1 572.7 190.1 572.7C190.1 572.7 188.3 567.5 185.3 567.5C184.55 567.5 183.825 567.662 183.147 567.943C183.147 567.943 181.5 569.7 183.3 570.5C185.1 571.3 187.3 570.5 187.9 571.9C186.7 572.7 185.1 571.3 184.7 572.1C184.3 572.9 184.3 574.5 187.5 574.3C190.7 574.1 189.1 574.9 188.1 575.5C187.1 576.1 187.3 578.3 190.1 579.3C192.9 580.3 192.5 575.5 192.5 575.5z"/>
+ </g>
+ <g style="fill: #000036">
+ <path d="M183.7 582.5C182.7 586.9 180.1 587.5 180.1 587.5C177.1 587.5 176.3 585.5 176.3 585.5C176.3 585.5 176.168 585.394 175.7 582.9C175.7 582.9 175.7 580.3 176.9 578.1C178.1 575.9 178.5 578.1 178.7 580.3C180.5 582.3 179.9 576.5 179.5 574.1C179.1 571.7 180.7 568.3 181.3 576.3C181.5 579.7 183.5 574.9 184.9 575.3C184.1 576.5 183.402 577.212 182.9 578.1C181.106 581.271 183.7 582.5 183.7 582.5z"/>
+ </g>
+ <g style="fill: #0d0d0d">
+ <path d="M188.7 585.1C188.7 586.1 193.5 587.9 195.5 586.9C196.5 588.9 199.5 589.7 200.5 588.7C203.7 587.5 202.1 581.3 202.1 581.3L201.1 580.7C201.1 580.7 201.7 576.3 201.3 573.1C200.9 569.9 200.225 567.25 196.425 566.45C195.225 569.05 194.1 573.1 193.9 574.3C193.7 575.5 193.9 577.5 192.5 575.5C192.382 575.332 192.241 575.146 192.086 574.952C192.086 574.952 190.5 574.9 190.7 577.5C188.3 578.9 188.7 585.1 188.7 585.1z"/>
+ </g>
+ <g style="fill: #171717">
+ <path d="M195.868 567.767C194.894 570.253 194.068 573.288 193.9 574.3C193.7 575.5 193.9 577.5 192.5 575.5C192.382 575.332 192.241 575.146 192.086 574.952C192.086 574.952 190.5 574.9 190.7 577.5C190.176 577.805 189.786 578.339 189.496 578.987C189.496 578.987 191.25 578.4 191.775 578.4C192.3 578.4 192.9 578.4 193.125 579.15C193.35 579.9 193.725 579.975 193.575 578.4C193.425 576.825 194.175 577.65 194.475 576.675C194.775 575.7 194.775 572.325 195.375 571.2C195.975 570.075 195.868 567.767 195.868 567.767z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M200.5 588.7C199.5 589.7 196.5 588.9 195.5 586.9C193.5 587.9 188.7 586.1 188.7 585.1C188.7 585.1 188.475 582.45 188.925 581.925C189.375 581.4 190.275 582.9 190.8 583.275C191.325 583.65 191.475 583.5 192.525 583.5C193.575 583.5 193.875 583.725 194.325 584.175C194.775 584.625 194.325 582.375 194.625 581.55C194.925 580.725 195.225 583.125 195.375 584.25C195.525 585.375 196.425 584.625 197.1 585.075C197.775 585.525 200.5 588.7 200.5 588.7z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M200.5 588.7C203.7 587.5 202.1 581.3 202.1 581.3L201.1 580.7C201.1 580.7 201.7 576.3 201.3 573.1C200.9 569.9 200.225 567.25 196.425 566.45C195.225 569.05 194.1 580.1 197.7 581.5C197.7 581.5 198.7 582.5 199.1 582.5C198.444 586.3 200.5 588.7 200.5 588.7z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M201.1 580.7C201.1 580.7 201.7 576.3 201.3 573.1C200.9 569.9 200.225 567.25 196.425 566.45C195.975 569.35 194.7 579.95 198.3 581.35L201.1 580.7z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M198.3 581.35C194.7 579.95 195.975 569.35 196.425 566.45C195.225 569.05 194.1 580.1 197.7 581.5L198.3 581.35z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M197.7 581.5C197.7 581.5 198.7 582.5 199.1 582.5C198.444 586.3 200.5 588.7 200.5 588.7C200.5 588.7 199.984 589.172 199.234 589.122C197.434 588.922 197.7 581.5 197.7 581.5z"/>
+ </g>
+ <g style="fill: #000029">
+ <path d="M180.1 572.1C180.1 573.9 180.3 577.9 182.3 580.7C178.5 580.3 180.1 572.1 180.1 572.1z"/>
+ </g>
+ <g style="fill: #000029">
+ <path d="M176.3 585.5C176.3 585.5 177.1 587.5 180.1 587.5C180.1 587.5 182.7 586.9 183.7 582.5C183.7 582.5 182.5 583.1 180.7 584.5C178.9 585.9 178.3 582.5 177.3 580.7C176.3 578.9 176.3 585.5 176.3 585.5z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M154.038 516.671L153.899 513.899C153.899 513.899 155.7 512.899 155.899 509.899C156.5 507.899 157.3 506.699 157.899 506.299C157.5 505.099 154.899 506.899 154.7 508.499C153.5 510.699 153.899 505.299 154.299 503.699C154.299 503.699 153.299 500.899 152.5 503.899C153 500.899 151.299 500.299 150.899 502.699C150.099 502.099 148.699 502.899 149.099 505.099C148.095 504.873 147.099 506.299 147.499 508.699C147.328 510.471 147.499 512.499 148.499 513.699C149.499 514.899 148.099 514.299 147.899 515.099C147.699 515.899 148.299 516.699 149.699 516.899C149.699 516.899 149.549 516.074 149.774 515.549C149.999 515.024 152.325 515.624 152.85 516.149C153.375 516.674 154.038 516.671 154.038 516.671z"/>
+ </g>
+ <g style="fill: #550000">
+ <path d="M153.901 507.337C153.919 506.083 154.109 504.461 154.299 503.699C154.299 503.699 154.049 502.999 153.7 502.674C153.7 502.674 153.075 502.462 153.299 502.724C153.524 502.986 154.049 503.437 153.975 503.887C153.899 504.337 153.674 505.012 153.524 505.124C153.375 505.237 153.825 505.199 153.75 505.837C153.674 506.474 153.862 506.924 153.45 507.224C153.45 507.224 153.524 507.974 153.75 507.899C153.975 507.824 153.901 507.337 153.901 507.337z"/>
+ </g>
+ <g style="fill: #3f0000">
+ <path d="M149.774 515.549C149.549 516.074 149.699 516.899 149.699 516.899C148.999 516.799 148.499 516.549 148.199 516.224C148.199 516.224 148.199 515.774 148.949 515.624C149.699 515.474 149.774 515.549 149.774 515.549z"/>
+ </g>
+ <g style="fill: #550000">
+ <path d="M147.899 515.099C148.099 514.299 149.499 514.899 148.499 513.699C147.499 512.499 147.328 510.471 147.499 508.699C147.499 508.699 148.424 508.949 148.799 510.149C149.174 511.349 150.299 513.074 150.975 513.599C151.649 514.124 151.125 514.049 150.374 514.124C149.624 514.199 148.199 515.249 148.274 515.849C148.049 516.224 147.899 515.099 147.899 515.099z"/>
+ </g>
+ <g style="fill: #3f0000">
+ <path d="M147.899 515.099C148.099 514.299 149.499 514.899 148.499 513.699C147.499 512.499 147.328 510.471 147.499 508.699C147.499 508.699 148.199 509.624 148.274 510.449C148.349 511.274 148.349 513.149 149.399 513.449C150.45 513.749 150.674 513.824 150.674 513.824C150.674 513.824 149.549 513.824 149.174 514.274C148.799 514.724 147.899 515.099 147.899 515.099z"/>
+ </g>
+ <g style="fill: #6d0000">
+ <path d="M153.913 508.048C153.966 508.992 154.187 509.438 154.7 508.499C154.899 506.899 157.5 505.099 157.899 506.299C157.3 506.699 156.5 507.899 155.899 509.899C155.795 511.473 155.25 512.496 154.755 513.113C154.755 513.113 153.149 513.149 152.85 511.124C152.1 510.074 152.414 508.859 153.149 508.649C153.674 508.499 153.913 508.048 153.913 508.048z"/>
+ </g>
+ <g style="fill: #550000">
+ <path d="M157.482 506.675C157.482 506.675 156.836 505.961 156 507.262C155.325 508.312 155.7 508.424 155.399 508.124C155.1 507.824 154.95 508.424 155.024 508.874C155.1 509.324 154.35 509.399 154.049 509.324C153.75 509.249 153.536 509.62 154.799 509.849C155.625 509.999 154.95 511.049 154.35 511.274C153.791 511.483 153.17 511.888 153.629 512.547C153.204 512.638 152.769 512.664 152.399 512.549C151.2 512.174 152.481 513.479 152.85 514.124C153.75 515.699 152.85 516.149 152.85 516.149C153.375 516.674 154.038 516.671 154.038 516.671L153.899 513.899C153.899 513.899 154.304 513.673 154.752 513.116C154.754 513.115 154.755 513.113 154.755 513.113C154.763 513.103 154.771 513.091 154.779 513.081C154.824 513.024 154.869 512.964 154.914 512.9C154.929 512.878 154.945 512.856 154.961 512.833C155.016 512.752 155.071 512.667 155.125 512.575C155.126 512.574 155.127 512.573 155.128 512.571C155.301 512.248 155.37 512.103 155.448 511.921C155.459 511.894 155.471 511.869 155.482 511.842C155.486 511.83 155.491 511.819 155.496 511.808C155.496 511.808 155.493 511.809 155.493 511.809C155.694 511.289 155.849 510.66 155.899 509.899C156.369 508.336 156.96 507.261 157.482 506.675z"/>
+ </g>
+ <g style="fill: #3f0000">
+ <path d="M157.097 507.181C156.683 507.804 156.256 508.71 155.899 509.899C155.795 511.473 155.25 512.496 154.755 513.113C154.755 513.113 153.674 513.074 153.975 512.474C154.274 511.874 154.725 512.399 155.174 511.349C155.625 510.299 155.475 509.399 155.024 509.399C154.575 509.399 155.475 509.024 155.774 508.724C156.224 507.449 157.097 507.181 157.097 507.181z"/>
+ </g>
+ <g style="fill: #550000">
+ <path d="M152.5 503.899C153 500.899 151.299 500.299 150.899 502.699C150.099 502.099 148.699 502.899 149.099 505.099C148.22 504.901 147.348 505.968 147.412 507.846C147.412 507.846 148.724 510.074 149.549 508.874C150.374 508.649 150.975 508.424 151.35 507.449C151.95 507.074 152.625 507.599 152.625 506.024C152.399 506.399 152.475 503.974 152.5 503.899z"/>
+ </g>
+ <g style="fill: #6d0000">
+ <path d="M153.037 502.949C152.887 503.249 152.587 505.124 152.737 505.574C152.887 506.024 152.962 506.599 153.037 506.074C153.33 505.326 152.972 505.26 153.015 504.8C152.897 504.352 153.23 503.336 153.262 503.174C153.337 502.799 153.037 502.949 153.037 502.949z"/>
+ </g>
+ <g style="fill: #3f0000">
+ <path d="M149.199 506.599C149.099 506.849 149.099 507.149 149.299 507.499C149.499 507.849 148.999 508.099 148.399 508.149C148.249 507.699 149.049 507.849 148.949 507.399C148.85 506.949 149.199 506.599 149.199 506.599z"/>
+ </g>
+ <g style="fill: #6d0000">
+ <path d="M151.125 506.474C150.975 506.924 150.825 507.374 149.924 507.299C149.024 507.224 149.85 507.824 150.374 507.749C150.899 507.674 150.975 507.449 151.35 507.149C151.725 506.849 151.125 506.474 151.125 506.474z"/>
+ </g>
+ <g style="fill: #3f0000">
+ <path d="M147.499 508.699C147.099 506.299 148.095 504.873 149.099 505.099C149.099 505.099 149.781 504.975 149.699 505.874C149.662 506.287 149.298 506.469 148.462 506.399C147.65 506.331 147.499 508.699 147.499 508.699z"/>
+ </g>
+ <g style="fill: #550000">
+ <path d="M148.874 505.237C148.381 505.237 147.974 505.724 147.787 506.099C148.049 505.874 148.499 505.462 148.949 505.499C149.622 505.555 149.326 505.237 148.874 505.237z"/>
+ </g>
+ <g style="fill: #3f0000">
+ <path d="M150.899 503.849C150.524 504.224 150.225 504.449 149.85 504.149C149.474 503.849 149.699 505.124 149.699 505.424C149.699 505.724 149.85 506.624 150.299 506.999C150.75 507.374 150.899 506.024 150.899 505.424C150.899 504.824 150.899 503.849 150.899 503.849z"/>
+ </g>
+ <g style="fill: #3f0000">
+ <path d="M152.325 502.799C152.174 503.474 150.825 502.874 151.424 503.249C152.024 503.624 152.625 503.774 151.5 504.749C151.901 504.771 152.774 505.574 151.95 506.399C152.1 507.074 152.549 506.474 152.549 506.249C152.549 506.024 152.475 505.274 152.399 504.449C152.325 503.624 152.475 502.124 152.325 502.799z"/>
+ </g>
+ <g style="fill: #340000">
+ <path d="M150.75 504.599C150.674 504.974 150.604 505.424 149.999 505.424C149.549 505.424 149.85 504.749 150.149 504.974C150.45 505.199 150.75 504.599 150.75 504.599z"/>
+ </g>
+ <g style="fill: #6d0000">
+ <path d="M151.95 509.324C151.049 509.174 150.149 509.924 149.249 509.549C148.349 509.174 149.474 510.074 150.149 509.999C150.825 509.924 149.924 510.599 149.474 510.449C149.024 510.299 150.45 511.199 151.125 510.749C151.35 510.674 152.1 510.899 152.325 511.199C152.399 510.599 151.2 510.149 150.45 510.449C150.299 509.774 151.95 509.324 151.95 509.324z"/>
+ </g>
+ <g style="fill: #8f0000">
+ <path d="M155.549 523.799C156.599 525.599 158.25 529.349 158.55 530.999C158.849 532.649 161.55 537.599 162.3 539.099C163.05 540.599 167.1 546.75 167.85 549.75C168.15 550.199 168.75 550.8 169.5 551.399C170.25 552 167.7 550.8 166.95 549.3C167.25 547.949 162.714 540.479 161.85 539.399C161.25 538.649 158.25 531.899 158.099 530.849C157.95 529.799 155.549 523.799 155.549 523.799z"/>
+ </g>
+ <g style="fill: #e2d3d3">
+ <path d="M181.95 549.449C178.05 548.399 174.9 544.949 174.9 544.949C173.85 543.449 172.65 544.05 172.35 544.5C172.35 544.5 173.4 545.699 173.1 546.449C172.8 547.199 175.163 545.751 175.8 546.6C177.15 548.399 181.95 549.449 181.95 549.449z"/>
+ </g>
+ <g style="fill: #b60000">
+ <path d="M181.95 549.449C178.05 548.399 174.9 544.949 174.9 544.949C173.85 543.449 172.65 544.05 172.35 544.5C172.35 544.5 173.7 545.324 173.4 546.074C173.1 546.824 175.238 545.451 175.875 546.3C177.225 548.1 181.95 549.449 181.95 549.449z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M178.133 547.65C176.186 546.359 174.9 544.949 174.9 544.949C173.85 543.449 172.65 544.05 172.35 544.5C172.35 544.5 173.1 544.599 173.1 545.1C173.1 545.6 173.7 544.299 175 545.5C176.3 546.699 178.133 547.65 178.133 547.65z"/>
+ </g>
+ <g style="fill: #b00000">
+ <path d="M169.6 543.099C169.8 543.599 169.8 543.999 169.2 544.299C168.6 544.599 169.6 543.099 169.6 543.099z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M155 524.199C155.5 524.999 157 528.799 157.3 530.399C157.599 531.999 159.2 534.899 159.5 535.299C159.2 535.299 157.208 531.947 156.899 530.299C156.599 528.699 155 524.199 155 524.199z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M154.5 525.399C155 526.199 156.5 529.999 156.8 531.599C157.099 533.199 159.099 536.799 159.399 537.199C159.099 537.199 156.708 533.147 156.399 531.499C156.099 529.899 154.5 525.399 154.5 525.399z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M154.399 527.499C154.899 528.299 156.399 532.099 156.7 533.699C157 535.299 159.2 538.599 159.5 538.999C159.2 538.999 156.608 535.247 156.3 533.599C156 531.999 154.399 527.499 154.399 527.499z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M159.899 531.199C160.4 531.999 163 534.799 163.3 536.399C163.6 537.999 165.2 540.899 165.5 541.299C165.2 541.299 163.209 537.947 162.9 536.299C162.6 534.699 159.899 531.199 159.899 531.199z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M159.899 533.499C160.4 534.299 163 537.099 163.3 538.699C163.6 540.299 165.2 543.199 165.5 543.599C165.2 543.599 163.209 540.247 162.9 538.599C162.6 536.999 159.899 533.499 159.899 533.499z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M159.899 537.699C160.4 538.499 163 541.299 163.3 542.899C163.6 544.5 165.2 547.399 165.5 547.8C165.2 547.8 163.209 544.447 162.9 542.799C162.6 541.199 159.899 537.699 159.899 537.699z"/>
+ </g>
+ <g style="fill: #820000">
+ <path d="M164.25 536.999C165.3 538.799 166.5 544.35 167.55 545.25C168.45 545.399 166.35 541.949 166.05 539.999C166.65 540.449 166.8 542.249 167.55 542.999C168.3 543.75 168.9 547.949 169.05 549.149C168.6 548.25 166.8 545.1 166.35 544.05C165.9 542.999 164.25 536.999 164.25 536.999z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M154.5 518.999C154.799 519.749 155.549 521.699 155.7 522.149C155.85 522.599 155.1 521.249 154.799 520.649C154.5 520.049 154.5 518.999 154.5 518.999z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M153.899 519.149C154.2 519.899 154.95 521.849 155.1 522.299C155.25 522.749 154.5 521.399 154.2 520.799C153.899 520.199 153.899 519.149 153.899 519.149z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M153.149 519.599C153.45 520.349 154.2 522.299 154.35 522.749C154.5 523.199 153.75 521.849 153.45 521.249C153.149 520.649 153.149 519.599 153.149 519.599z"/>
+ </g>
+ <g style="fill: #a30000">
+ <path d="M152.1 519.599C152.399 520.349 153.149 522.299 153.299 522.749C153.45 523.199 152.7 521.849 152.399 521.249C152.1 520.649 152.1 519.599 152.1 519.599z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M201.1 580.7L202.1 581.3L199.1 582.5C198.7 582.5 197.7 581.5 197.7 581.5L201.1 580.7z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M193.65 576.825C193.575 578.325 193.95 580.95 194.175 581.775C194.4 582.6 192.9 579.75 192.9 579.225C192.9 578.7 192.975 577.725 193.2 578.925C193.425 580.125 193.65 576.825 193.65 576.825z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M190.5 581.325C190.5 581.325 188.925 580.5 188.775 580.8C188.735 580.88 188.707 580.972 188.683 581.068C188.689 581.054 188.693 581.038 188.7 581.025C188.85 580.725 190.425 581.55 190.425 581.55C190.425 581.55 190.732 582.337 190.7 582.778C190.954 582.488 190.5 581.325 190.5 581.325z"/>
+ </g>
+ <g style="fill: #0d0d0d">
+ <path d="M190.425 581.55C190.425 581.55 188.85 580.725 188.7 581.025C188.693 581.038 188.689 581.054 188.683 581.068C188.466 581.559 188.55 582.383 188.55 582.675C188.55 582.975 189.6 582.825 190.35 583.05C191.1 583.275 190.425 581.55 190.425 581.55z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M190.627 580.697C190.627 580.697 191.51 582.24 191.287 583.369C191.207 583.775 191.026 583.619 191.027 583.46C190.941 583.06 191.759 581.46 192.053 581.243C191.848 581.302 191.513 581.742 191.458 581.837C191.109 582.435 190.747 583.113 190.839 583.539C190.871 583.686 190.954 583.789 191.086 583.845L191.15 583.845C191.259 583.802 191.404 583.689 191.473 583.403C191.644 582.693 191.24 581.288 190.846 580.907L190.627 580.697z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M191.316 584.034C191.316 584.034 192.479 582.568 192.503 581.495C192.512 581.11 192.307 581.258 192.275 581.409C192.109 581.789 192.552 583.309 192.785 583.514C192.603 583.459 192.377 583.041 192.344 582.951C192.138 582.382 191.936 581.739 192.113 581.334C192.174 581.194 192.275 581.096 192.411 581.043L192.472 581.043C192.567 581.084 192.681 581.19 192.687 581.463C192.701 582.137 192.022 583.472 191.568 583.835L191.316 584.034z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M192.686 580.993C192.686 580.993 193.483 582.385 193.282 583.404C193.209 583.77 193.046 583.63 193.048 583.486C192.969 583.125 193.708 581.681 193.973 581.486C193.788 581.538 193.486 581.936 193.436 582.021C193.121 582.562 192.795 583.173 192.878 583.558C192.907 583.69 192.981 583.783 193.1 583.834L193.158 583.834C193.257 583.794 193.387 583.693 193.45 583.435C193.605 582.794 193.239 581.526 192.884 581.182L192.686 580.993z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M193.339 584.051C193.339 584.051 194.388 582.728 194.41 581.759C194.418 581.412 194.233 581.545 194.204 581.682C194.054 582.025 194.454 583.396 194.664 583.582C194.5 583.531 194.296 583.154 194.267 583.073C194.08 582.56 193.898 581.979 194.058 581.614C194.113 581.488 194.204 581.399 194.327 581.351L194.382 581.351C194.467 581.389 194.57 581.484 194.575 581.73C194.589 582.338 193.976 583.544 193.567 583.871L193.339 584.051z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M182.4 550.05C182.925 550.875 184.5 552.524 184.65 556.2C184.8 559.875 185.958 562.048 186.15 563.1C185.55 562.5 184.311 557.985 184.35 555.9C184.394 553.545 182.4 550.05 182.4 550.05z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M181.725 550.35C182.25 551.175 183.825 552.824 183.975 556.5C184.125 560.175 185.283 562.348 185.475 563.4C184.875 562.8 183.636 558.285 183.675 556.2C183.719 553.845 181.725 550.35 181.725 550.35z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M179.85 549.375C180.3 550.274 182.475 552.449 182.475 555.525C182.175 554.25 181.65 552.675 181.35 552.225C181.05 551.774 179.85 549.375 179.85 549.375z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M178.8 548.625C179.25 549.524 181.425 551.699 181.425 554.775C181.125 553.5 180.6 551.925 180.3 551.475C180 551.024 178.8 548.625 178.8 548.625z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M177.975 548.85C178.425 549.75 180.6 551.925 180.6 555C180.3 553.725 179.775 552.149 179.475 551.699C179.175 551.25 177.975 548.85 177.975 548.85z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M177.3 548.625C177.75 549.6 180.15 553.199 180.225 556.425C180.3 559.65 180.3 562.425 180.6 562.875C180.9 563.325 179.7 559.125 179.85 555.6C179.91 554.176 177.3 548.625 177.3 548.625z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M184.058 547.779C184.631 548.688 187.479 551.945 187.972 555.133C188.466 558.321 188.826 561.073 189.182 561.48C189.538 561.887 187.802 557.879 187.493 554.364C187.368 552.944 184.058 547.779 184.058 547.779z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M184.508 545.829C185.081 546.738 187.929 549.995 188.422 553.183C188.916 556.371 189.276 559.123 189.632 559.53C189.988 559.937 188.252 555.928 187.943 552.414C187.818 550.994 184.508 545.829 184.508 545.829z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M185.933 547.029C186.506 547.938 189.354 551.195 189.847 554.383C190.341 557.571 190.701 560.323 191.057 560.73C191.413 561.137 189.677 557.129 189.368 553.614C189.243 552.194 185.933 547.029 185.933 547.029z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M188.408 549.429C188.981 550.338 190.854 553.445 191.347 556.633C191.841 559.821 191.751 563.698 191.582 564.18C191.778 561.84 191.177 559.379 190.868 555.864C190.743 554.444 188.408 549.429 188.408 549.429z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M175.95 547.574C176.4 548.475 178.35 551.1 178.35 553.425C178.125 552.6 176.85 549.675 176.85 549.675L175.95 547.574z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M171.825 551.774C172.125 553.425 173.025 556.125 174 558.975C174.975 561.825 175.35 565.725 175.275 566.325C175.65 566.1 174.525 559.575 174.3 558.9C174.075 558.225 171.825 551.774 171.825 551.774z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M172.875 549.75C172.65 551.024 174.3 556.95 174.975 558.75C175.65 560.55 175.8 565.425 175.725 566.25C176.325 564.15 175.32 558.28 174.975 557.55C174.3 556.125 172.875 549.75 172.875 549.75z"/>
+ </g>
+ <g style="fill: #820000">
+ <path d="M173.4 562.275C173.625 563.1 174.45 566.325 174.075 568.2C173.7 570.075 174.15 571.275 174.15 571.5C174.15 571.725 173.475 569.475 173.85 567.225C174.225 564.975 173.4 562.275 173.4 562.275z"/>
+ </g>
+ <g style="fill: #820000">
+ <path d="M171.6 556.95C172.275 558.6 173.85 564.675 173.4 566.325C173.25 567 173.325 568.575 173.325 568.875C173.325 569.175 172.884 567.015 173.1 565.575C173.325 564.075 172.5 560.625 172.2 559.95C171.9 559.275 171.6 556.95 171.6 556.95z"/>
+ </g>
+ <g style="fill: #820000">
+ <path d="M169.875 553.199C170.325 554.325 171.9 559.125 172.5 561.825C173.1 564.525 171.15 557.85 170.925 557.325C170.7 556.8 169.875 553.199 169.875 553.199z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M174.675 547.425C174.6 549.225 174.75 553.05 176.025 556.05C177.3 559.05 177.9 564 177.45 565.725C178.575 562.875 176.568 556.461 176.25 555.9C174.975 553.65 174.675 547.425 174.675 547.425z"/>
+ </g>
+ <g style="fill: #bd0009">
+ <path d="M176.55 551.475C177.975 554.175 179.925 561.6 179.325 567.75C179.325 566.025 178.875 560.85 178.875 560.85C178.875 560.85 178.05 556.125 177.45 554.55C176.85 552.975 176.55 551.475 176.55 551.475z"/>
+ </g>
+ <g style="fill: #820000">
+ <path d="M173.25 547.35C172.5 549.449 172.166 550.784 170.7 551.85C169.05 553.05 168.1 552.899 168.1 552.899C168.1 552.899 169.16 551.699 170.1 551.699C171.375 551.699 173.25 547.35 173.25 547.35z"/>
+ </g>
+ <g style="fill: #e2d3d3">
+ <path d="M180.3 550.199C178.137 550.8 176.6 549.8 176.6 549.8C176.3 549.5 174.9 549 175.7 550C176.958 551.198 178.442 551.428 179.626 551.294L179.583 551.036C178.474 551.16 177.085 550.937 175.899 549.815C175.865 549.772 175.837 549.734 175.815 549.702C176.02 549.758 176.308 549.89 176.409 549.99L176.429 550.01L176.452 550.026C176.519 550.069 178.118 551.085 180.372 550.46C181.075 550.24 181.216 550.369 181.217 550.371C181.236 550.391 181.233 550.461 181.215 550.531C180.86 550.746 180.276 550.959 179.583 551.036L179.626 551.294C180.418 551.204 181.077 550.952 181.437 550.712C181.437 550.712 181.9 549.699 180.3 550.199z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M174.999 548.943L175.313 550.153L176.204 549.276L174.999 548.943L174.999 548.943z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M181.908 549.882L180.997 549.97L181.512 550.935L181.908 549.882L181.908 549.882z"/>
+ </g>
+ <g style="fill: #e2d3d3">
+ <path d="M185.808 549.213C187.399 548.797 187.059 547.856 187.059 547.856C186.884 547.625 186.997 546.953 187.67 547.66C188.341 548.602 187.911 549.178 187.241 549.494L186.994 549.364C187.62 549.067 188.014 548.525 187.39 547.64C187.361 547.61 187.334 547.583 187.311 547.562C187.276 547.653 187.283 547.804 187.341 547.881L187.353 547.897L187.358 547.911C187.373 547.952 187.703 548.92 186.044 549.354C185.501 549.478 185.572 549.581 185.572 549.582C185.585 549.597 185.659 549.628 185.739 549.654C186.121 549.639 186.602 549.549 186.994 549.364L187.241 549.494C186.792 549.705 186.236 549.801 185.826 549.806C185.826 549.806 184.573 549.495 185.808 549.213z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M186.894 546.959L188.002 547.607L186.696 547.493L186.894 546.959L186.894 546.959z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M184.758 549.581L185.259 549.331L186.022 549.931L184.758 549.581L184.758 549.581z"/>
+ </g>
+ <g style="fill: #d1c1c1">
+ <path d="M179.25 547.949C179.1 547.199 179.1 545.85 180.3 545.55C181.5 545.25 183.3 545.25 183.75 546.149C184.2 547.05 186 547.8 187.2 547.949C186.9 548.1 184.95 549.6 183.6 549.449C181.5 550.199 179.25 547.949 179.25 547.949z"/>
+ </g>
+ <g style="fill: #baaaaa">
+ <path d="M187.2 547.949C186.9 548.1 184.95 549.6 183.6 549.449C181.5 550.199 179.25 547.949 179.25 547.949C179.1 547.199 179.1 545.85 180.3 545.55C180.3 545.55 179.4 546.6 180 547.199C180.6 547.8 181.433 547.343 182.175 548.25C183.525 549.899 187.2 547.949 187.2 547.949z"/>
+ </g>
+ <g style="fill: #a89999">
+ <path d="M187.2 547.949C186.9 548.1 184.95 549.6 183.6 549.449C182.609 549.449 181.455 549.063 181.188 548.574C180.031 548.544 179.55 547.949 179.55 547.949C179.4 547.199 179.1 545.85 180.3 545.55C180.3 545.55 179.175 547.05 179.775 547.649C180.375 548.25 181.283 547.793 182.025 548.699C183.375 550.35 187.2 547.949 187.2 547.949z"/>
+ </g>
+ <g style="fill: #e2d3d3">
+ <path d="M179.925 546.3C179.625 547.199 180.375 547.35 181.425 547.199C182.475 547.05 183.225 546.6 183.675 547.199C183.525 546.449 182.325 546.149 181.425 546.6C180.525 547.05 179.925 546.3 179.925 546.3z"/>
+ </g>
+ <g style="fill: #c66029">
+ <path d="M176.293 541.087C176.256 541.237 176.106 541.293 176.256 541.743C176.5 541.837 176.575 541.649 176.519 541.649C176.16 541.649 176.293 541.087 176.293 541.087z"/>
+ </g>
+ <g style="fill: #e47a41">
+ <path d="M177.25 539.474C177.512 539.737 177.962 540.037 177.625 540.449C177.625 540.074 177.625 540.074 177.437 539.887C177.25 539.699 177.25 539.474 177.25 539.474z"/>
+ </g>
+ <g style="fill: #f4aa8f">
+ <path d="M175.877 540.099C175.864 540.181 175.796 540.345 176.069 540.345C176.342 540.345 176.479 540.195 176.397 540.154C176.315 540.112 176.301 540.058 176.137 540.085C175.973 540.112 175.877 540.099 175.877 540.099z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M255.101 579.7C255.101 579.7 256.3 579.5 255.7 581.1C255.7 583.1 254.901 587.9 249.5 589.5C248.512 589.741 247.9 590.5 247.9 590.5L249.1 591.1L245.9 594.3C245.341 594.649 244.611 594.755 243.898 594.744C243.898 594.744 246.09 592.471 247.05 590.55C247.5 589.65 249.151 589.05 250.05 588.9C250.95 588.75 253.2 587.7 253.95 585.3C256.05 582.75 255.101 579.7 255.101 579.7z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M235.983 582.6C235.983 582.6 236.357 585.278 235.221 586.724C234.813 587.244 234.626 586.919 234.738 586.698C234.872 586.087 237.296 584.335 237.92 584.206C237.548 584.167 236.704 584.584 236.549 584.684C235.572 585.314 234.521 586.047 234.379 586.697C234.329 586.922 234.393 587.115 234.568 587.271L234.672 587.308C234.878 587.312 235.19 587.241 235.499 586.881C236.264 585.992 236.572 583.788 236.196 583.022L235.983 582.6z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M235.112 587.971C235.112 587.971 238.002 586.609 238.777 585.124C239.055 584.591 238.622 584.677 238.467 584.869C237.937 585.303 237.612 587.688 237.849 588.113C237.593 587.928 237.513 587.21 237.522 587.065C237.577 586.149 237.691 585.13 238.256 584.669C238.451 584.509 238.681 584.431 238.938 584.438L239.037 584.474C239.162 584.588 239.274 584.803 239.097 585.188C238.658 586.138 236.642 587.603 235.658 587.842L235.112 587.971z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M240.033 584.699C240.033 584.699 240.408 587.378 239.271 588.824C238.863 589.344 238.676 589.019 238.788 588.798C238.922 588.187 241.346 586.435 241.97 586.305C241.598 586.267 240.754 586.684 240.599 586.784C239.622 587.414 238.572 588.147 238.429 588.797C238.38 589.022 238.443 589.215 238.618 589.371L238.722 589.408C238.928 589.412 239.24 589.341 239.549 588.981C240.314 588.092 240.622 585.888 240.246 585.121L240.033 584.699z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M239.162 590.071C239.162 590.071 242.052 588.709 242.827 587.224C243.105 586.691 242.672 586.777 242.517 586.969C241.987 587.402 241.662 589.788 241.899 590.213C241.643 590.028 241.563 589.31 241.572 589.165C241.627 588.248 241.741 587.23 242.306 586.769C242.501 586.609 242.731 586.532 242.989 586.538L243.087 586.574C243.212 586.688 243.324 586.904 243.147 587.288C242.708 588.238 240.692 589.703 239.708 589.942L239.162 590.071z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M247.5 584.55C247.35 585.9 246.15 588.6 245.1 589.95C244.05 591.3 245.7 587.7 246.15 586.35C246.6 585 244.65 587.55 243.9 588.6C243.15 589.65 244.95 585.15 245.85 584.7C246.75 584.25 247.5 584.55 247.5 584.55z"/>
+ </g>
+ <g style="fill: #3b0000">
+ <path d="M236.331 579.855C239.879 580.283 244.935 581.129 243.416 583.26C242.43 584.471 236.933 581.368 235.836 580.971C234.74 580.574 235.936 580.442 235.936 580.442C235.936 580.442 240.438 582.619 241.536 582.506C242.635 582.393 242.463 581.51 241.502 581.29C240.543 581.07 236.291 580.169 236.291 580.169L236.331 579.855z"/>
+ </g>
+ <g style="fill: #300000">
+ <path d="M242.4 580.35C241.65 580.95 240.75 582 240.6 582.75C240.45 583.5 247.5 587.7 248.1 588.75C248.7 589.8 250.2 589.95 251.101 588.9C252 587.85 252.45 586.2 252.45 586.2C252.45 586.2 245.85 582.9 244.5 582C243.15 581.1 242.4 580.35 242.4 580.35z"/>
+ </g>
+ <g style="fill: #460000">
+ <path d="M244.48 582.211C243.419 581.504 242.751 580.904 242.518 580.686C241.815 581.275 241.05 582.21 240.921 582.843C240.936 583.197 243.158 584.752 244.63 585.782C246.308 586.957 247.894 588.067 248.179 588.565C248.428 589 248.859 589.277 249.363 589.325C249.918 589.378 250.46 589.146 250.852 588.688C251.563 587.859 251.983 586.614 252.098 586.24C251.225 585.802 245.704 583.027 244.48 582.211z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M243.191 581.495C242.638 581.959 242.036 582.695 241.935 583.193C241.946 583.471 243.695 584.695 244.853 585.505C246.173 586.429 248.099 587.663 248.386 588.013C248.899 588.637 249.44 588.152 249.748 587.792C250.308 587.139 251.011 586.5 250.587 585.971C250.164 585.442 244.687 582.943 243.191 581.495z"/>
+ </g>
+ <g style="fill: #300000">
+ <path d="M242.579 583.288C243.092 583.288 243.507 582.872 243.507 582.36C243.507 581.847 243.092 581.431 242.579 581.431C242.067 581.431 241.651 581.847 241.651 582.36C241.651 582.872 242.067 583.288 242.579 583.288z"/>
+ </g>
+ <g style="fill: #460000">
+ <path d="M242.579 583.162C243.024 583.162 243.386 582.801 243.386 582.355C243.386 581.909 243.024 581.548 242.579 581.548C242.133 581.548 241.772 581.909 241.772 582.355C241.772 582.801 242.133 583.162 242.579 583.162z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M242.503 582.992C242.883 582.992 243.191 582.684 243.191 582.304C243.191 581.924 242.883 581.616 242.503 581.616C242.123 581.616 241.815 581.924 241.815 582.304C241.815 582.684 242.123 582.992 242.503 582.992z"/>
+ </g>
+ <g style="fill: #a89999">
+ <path d="M179.325 546.562C179.587 547.537 180.3 547.987 181.387 547.762C182.475 547.537 183.037 547.162 183.637 547.5C183.225 547.05 181.95 547.199 181.125 547.574C180.762 547.739 180.075 547.5 179.887 547.237C179.7 546.975 179.325 546.562 179.325 546.562z"/>
+ </g>
+ <g style="fill: #c65d24">
+ <path d="M177.512 539.887C177.812 540.149 178.453 540.493 178.937 540.562C179.2 540.599 179.612 541.049 179.687 541.537C179.462 540.937 179.012 540.718 178.6 540.674C177.887 540.599 177.512 539.887 177.512 539.887z"/>
+ </g>
+ <g style="fill: #f5a37a">
+ <path d="M179.872 538.337C180.415 537.615 180.545 538.733 180.089 539.147C179.789 539.419 179.438 539.915 178.996 540.027C178.553 540.139 177.796 540.088 177.859 539.481C177.922 538.873 179.33 539.059 179.872 538.337z"/>
+ </g>
+ <g style="fill: #f4aa8f">
+ <path d="M179.482 538.735C179.748 538.381 179.812 538.929 179.589 539.132C179.442 539.266 179.269 539.509 179.053 539.563C178.836 539.618 178.465 539.593 178.496 539.296C178.527 538.998 179.216 539.089 179.482 538.735z"/>
+ </g>
+ <g style="fill: #600000">
+ <path d="M192.1 553.4C192.1 551.3 193.1 551.1 193.8 551.399C194.5 551.699 192.4 551.699 192.3 552.699C192.2 553.7 192.1 553.4 192.1 553.4z"/>
+ </g>
+ <g style="fill: #cb1922">
+ <path d="M198.7 555.4C199.9 555.6 200.6 556.6 200.6 557.3C200.2 556.7 198.9 555.3 197.7 555.6C196.5 555.9 197.5 555.2 198.7 555.4z"/>
+ </g>
+ <g style="fill: #a89999">
+ <path d="M180.75 545.699C180.6 546.149 181.29 546.296 182.175 546.074C183.375 545.774 183.975 546.675 184.05 547.125C184.125 546.375 183.071 545.779 182.4 545.85C180.975 546 180.75 545.699 180.75 545.699z"/>
+ </g>
+ <g style="fill: #530000">
+ <path d="M174.468 538.199C174.581 538.293 174.693 538.499 174.618 538.612C174.543 538.724 174.487 538.293 174.393 538.293C174.3 538.293 174.468 538.199 174.468 538.199z"/>
+ </g>
+ <g style="fill: #410000">
+ <path d="M222.8 540.875C223.029 539.943 224.802 536.217 226.188 535.437C226.542 535.59 227.129 536.416 227.129 536.416C227.129 536.416 223.403 541.169 223.53 541.827C223.658 542.486 222.8 540.875 222.8 540.875z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M225.618 538.025C225.808 537.527 226.764 536.131 226.851 536.417C226.938 536.703 225.618 538.025 225.618 538.025z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M228.655 530.084L228.389 530.634C228.277 530.864 228.378 531.108 228.613 531.177L228.8 531.231C229.035 531.3 229.319 531.168 229.43 530.937L229.44 530.917L229.248 530.844C229.162 530.967 229.002 531.037 228.863 530.996L228.739 530.96C228.584 530.915 228.517 530.753 228.591 530.601L228.767 530.238C228.84 530.086 229.028 529.998 229.183 530.044L229.306 530.08C229.462 530.125 229.529 530.287 229.455 530.439L229.279 530.802C229.271 530.818 229.258 530.83 229.248 530.844L229.44 530.917L229.697 530.388C229.808 530.157 229.707 529.913 229.472 529.844L229.285 529.79C229.05 529.721 228.767 529.853 228.655 530.084z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M227.955 531.784L227.689 532.333C227.577 532.564 227.678 532.808 227.913 532.877L228.1 532.932C228.335 533 228.619 532.868 228.731 532.637L228.74 532.617L228.548 532.544C228.462 532.668 228.302 532.737 228.163 532.696L228.039 532.66C227.884 532.615 227.817 532.453 227.891 532.301L228.067 531.938C228.14 531.786 228.328 531.698 228.483 531.744L228.606 531.78C228.762 531.825 228.828 531.987 228.755 532.139L228.579 532.502C228.571 532.518 228.558 532.53 228.548 532.544L228.74 532.617L228.997 532.088C229.108 531.857 229.007 531.613 228.772 531.544L228.585 531.49C228.35 531.421 228.067 531.553 227.955 531.784z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M229.637 528.285L229.371 528.835C229.26 529.065 229.361 529.31 229.596 529.379L229.783 529.433C230.018 529.502 230.301 529.369 230.413 529.139L230.422 529.119L230.23 529.046C230.144 529.169 229.984 529.238 229.845 529.198L229.721 529.162C229.566 529.116 229.499 528.955 229.573 528.803L229.749 528.44C229.822 528.288 230.01 528.2 230.165 528.245L230.289 528.281C230.444 528.327 230.511 528.488 230.437 528.64L230.261 529.004C230.253 529.019 230.24 529.031 230.23 529.046L230.422 529.119L230.679 528.589C230.79 528.359 230.689 528.115 230.454 528.046L230.267 527.991C230.032 527.923 229.749 528.055 229.637 528.285z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M231.303 524.706L231.021 525.247C230.903 525.475 230.997 525.722 231.23 525.797L231.415 525.857C231.648 525.932 231.935 525.808 232.053 525.581L232.064 525.561L231.873 525.483C231.784 525.604 231.622 525.668 231.484 525.624L231.361 525.584C231.208 525.534 231.146 525.371 231.224 525.221L231.41 524.863C231.488 524.713 231.678 524.631 231.831 524.681L231.954 524.72C232.108 524.77 232.17 524.933 232.092 525.083L231.906 525.441C231.897 525.457 231.884 525.468 231.873 525.483L232.064 525.561L232.335 525.039C232.453 524.812 232.359 524.565 232.126 524.49L231.941 524.43C231.708 524.354 231.421 524.479 231.303 524.706z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M229.082 530.231L229.79 528.896L229.959 529.028L229.251 530.363L229.082 530.231z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M230.468 526.587L230.309 527.177C230.242 527.424 230.387 527.645 230.631 527.669L230.825 527.687C231.068 527.711 231.322 527.528 231.389 527.281L231.395 527.259L231.192 527.223C231.131 527.361 230.986 527.458 230.842 527.445L230.714 527.432C230.553 527.417 230.457 527.27 230.501 527.107L230.606 526.718C230.65 526.554 230.818 526.433 230.979 526.449L231.107 526.461C231.268 526.477 231.364 526.623 231.32 526.786L231.215 527.176C231.21 527.193 231.199 527.207 231.192 527.223L231.395 527.259L231.548 526.691C231.615 526.444 231.47 526.223 231.226 526.199L231.032 526.18C230.788 526.157 230.534 526.34 230.468 526.587z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M230.064 528.433L230.772 527.098L230.941 527.23L230.233 528.565L230.064 528.433z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M232.447 523.051L232.119 523.567C231.982 523.783 232.054 524.037 232.28 524.132L232.459 524.208C232.685 524.303 232.982 524.204 233.119 523.988L233.131 523.969L232.949 523.874C232.849 523.987 232.682 524.038 232.548 523.981L232.43 523.932C232.281 523.869 232.233 523.701 232.324 523.558L232.54 523.217C232.63 523.075 232.827 523.009 232.976 523.072L233.094 523.122C233.243 523.185 233.291 523.353 233.2 523.496L232.984 523.836C232.975 523.851 232.96 523.861 232.949 523.874L233.131 523.969L233.447 523.473C233.584 523.257 233.512 523.002 233.286 522.907L233.106 522.831C232.881 522.736 232.584 522.835 232.447 523.051z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M231.692 524.873L232.548 523.628L232.701 523.778L231.845 525.023L231.692 524.873z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M230.884 526.666L231.453 525.267L231.635 525.381L231.066 526.781L230.884 526.666z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M233.57 521.5L233.25 522.005C233.115 522.217 233.186 522.466 233.407 522.559L233.583 522.634C233.804 522.727 234.095 522.63 234.229 522.418L234.241 522.399L234.062 522.307C233.965 522.417 233.801 522.467 233.67 522.411L233.554 522.362C233.408 522.301 233.361 522.136 233.45 521.996L233.662 521.663C233.75 521.523 233.943 521.458 234.089 521.52L234.205 521.569C234.351 521.631 234.398 521.795 234.309 521.935L234.097 522.269C234.088 522.284 234.074 522.294 234.062 522.307L234.241 522.399L234.55 521.913C234.685 521.701 234.614 521.452 234.393 521.358L234.217 521.284C233.996 521.191 233.705 521.288 233.57 521.5z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M232.831 523.285L233.67 522.065L233.819 522.212L232.981 523.432L232.831 523.285z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M234.665 519.921L234.394 520.442C234.281 520.66 234.371 520.897 234.594 520.97L234.772 521.027C234.996 521.1 235.272 520.981 235.386 520.763L235.396 520.744L235.213 520.668C235.127 520.784 234.971 520.846 234.839 520.803L234.721 520.765C234.573 520.717 234.514 520.56 234.589 520.416L234.768 520.073C234.843 519.929 235.025 519.85 235.173 519.898L235.291 519.936C235.438 519.984 235.498 520.141 235.423 520.285L235.244 520.628C235.236 520.643 235.223 520.654 235.213 520.668L235.396 520.744L235.657 520.243C235.77 520.025 235.68 519.787 235.456 519.715L235.278 519.657C235.055 519.584 234.779 519.704 234.665 519.921z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M235.63 518.203L235.359 518.723C235.245 518.941 235.336 519.179 235.559 519.251L235.737 519.309C235.961 519.381 236.237 519.262 236.35 519.044L236.36 519.025L236.178 518.949C236.092 519.065 235.936 519.127 235.804 519.085L235.686 519.046C235.538 518.999 235.479 518.842 235.554 518.698L235.733 518.354C235.808 518.21 235.99 518.131 236.138 518.179L236.255 518.217C236.403 518.265 236.463 518.422 236.388 518.566L236.209 518.91C236.201 518.925 236.188 518.936 236.178 518.949L236.36 519.025L236.622 518.524C236.735 518.306 236.645 518.068 236.421 517.996L236.243 517.938C236.02 517.866 235.744 517.985 235.63 518.203z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M236.63 516.397L236.224 516.82C236.054 516.997 236.073 517.25 236.268 517.383L236.422 517.488C236.616 517.62 236.915 517.584 237.085 517.406L237.1 517.391L236.946 517.267C236.831 517.354 236.664 517.37 236.549 517.292L236.447 517.222C236.318 517.134 236.305 516.967 236.418 516.85L236.686 516.571C236.799 516.453 236.996 516.429 237.124 516.517L237.226 516.586C237.355 516.674 237.368 516.841 237.255 516.958L236.987 517.238C236.975 517.25 236.959 517.257 236.946 517.267L237.1 517.391L237.491 516.983C237.662 516.806 237.642 516.553 237.448 516.42L237.293 516.315C237.099 516.183 236.8 516.219 236.63 516.397z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M234.013 521.677L234.863 520.501L235.007 520.649L234.156 521.825L234.013 521.677z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M235.077 520.134L235.713 518.83L235.879 518.952L235.243 520.255L235.077 520.134z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M236.02 518.371L236.657 517.068L236.823 517.189L236.186 518.493L236.02 518.371z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M226.532 536.615C226.638 536.809 227.47 536.644 227.594 536.031C227.718 535.418 227.416 535.248 227.614 534.846C227.496 534.785 227.258 534.58 227.258 534.58C227.258 534.58 227.071 534.851 226.643 534.835C226.214 534.819 225.802 535.213 225.897 535.538L226.14 535.447C226.14 535.447 226.256 535.047 226.831 535.025C227.321 535.005 227.256 534.959 227.256 534.959C227.256 534.959 227.251 535.255 227.361 535.53C227.47 535.805 227.203 536.54 226.672 536.413C226.689 536.445 226.532 536.615 226.532 536.615z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M227.267 535.226C227.057 535.19 226.74 534.682 227.112 534.325C227.392 534.058 227.643 533.086 227.643 533.086C227.643 533.086 227.46 532.201 228.218 532.201C228.472 532.234 228.474 532.667 228.474 532.667L228.281 532.659C228.281 532.659 228.179 532.336 227.933 532.509C227.748 532.725 227.837 533.093 227.885 533.18C227.933 533.267 227.367 534.375 227.367 534.375C227.367 534.375 226.994 534.731 227.197 534.961C227.399 535.191 227.267 535.226 227.267 535.226z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M228.313 531.96L228.833 530.542L229.018 530.649L228.498 532.068L228.313 531.96z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M237.217 516.605C237.2 516.607 237.184 516.603 237.168 516.603C237.023 516.601 236.901 516.511 236.887 516.378L236.875 516.261C236.86 516.113 236.983 515.973 237.148 515.949L237.212 515.94C237.213 515.889 237.214 515.836 237.214 515.783L237.045 515.806C236.794 515.842 236.608 516.054 236.632 516.278L236.65 516.456C236.674 516.679 236.898 516.834 237.149 516.798L237.171 516.795L237.307 516.776C237.303 516.719 237.286 516.659 237.253 516.6L237.217 516.605z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M238.143 516.064C238.123 515.877 237.961 515.74 237.762 515.721C237.727 515.78 237.688 515.839 237.646 515.898C237.766 515.918 237.861 516.004 237.874 516.12L237.886 516.237C237.901 516.385 237.779 516.525 237.613 516.549L237.592 516.552C237.619 516.611 237.63 516.672 237.625 516.731L237.748 516.714C237.999 516.678 238.185 516.466 238.161 516.242L238.143 516.064z"/>
+ </g>
+ <g style="fill: #3b0000">
+ <path d="M215.4 611.25C219 620.25 219.9 629.7 219.9 632.85C219.9 636 218.1 616.65 214.95 613.5C211.8 610.35 215.4 611.25 215.4 611.25z"/>
+ </g>
+ <g style="fill: #3b0000">
+ <path d="M208.237 610.16C211.243 619.376 211.524 628.865 211.319 632.008C211.113 635.151 210.579 615.725 207.642 612.376C204.704 609.028 208.237 610.16 208.237 610.16z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M236.08 511.029C236.174 511.439 236.245 511.797 236.273 512.029C235.582 511.859 235.078 510.332 234.806 509.02C234.754 508.769 234.734 508.831 234.676 508.301C234.619 507.772 235.23 507.736 235.23 507.736C235.23 507.736 235.773 509.675 236.08 511.029L237.003 511.115C236.576 509.644 236.096 508.157 235.871 507.067C235.871 507.067 235.765 506.723 234.991 506.962C234.217 507.201 234.074 509.788 234.804 511.541C235.534 513.294 236.42 513.114 236.42 513.114C236.42 513.114 237.322 514.814 237.489 516.269C238.174 515.546 237.65 513.348 237.003 511.115L236.08 511.029z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M235.958 511.032C236.051 511.442 236.123 511.799 236.151 512.032C235.459 511.862 234.955 510.335 234.684 509.023C234.632 508.772 234.611 508.834 234.553 508.304C234.496 507.774 235.107 507.738 235.107 507.738C235.107 507.738 235.651 509.678 235.958 511.032L236.88 511.118C236.453 509.646 235.973 508.16 235.748 507.069C235.748 507.069 235.642 506.726 234.868 506.964C234.094 507.204 233.951 509.791 234.681 511.544C235.411 513.296 236.297 513.117 236.297 513.117C236.297 513.117 237.199 514.816 237.366 516.272C238.051 515.549 237.528 513.351 236.88 511.118L235.958 511.032z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M236.23 509.393C236.305 509.865 238.097 514.751 237.433 515.804C237.581 514.91 237.148 513.278 237.148 513.278L236.316 510.356L236.23 509.393z"/>
+ </g>
+ <g style="fill: #686868">
+ <path d="M173.9 674.901C170.778 675.141 170.5 675.101 167.3 675.901C164.1 676.701 161.7 677.101 159.5 676.301C157.3 675.501 156.099 676.301 155.1 677.101C154.1 677.901 149.499 677.901 146.699 676.701C143.899 675.501 146.499 679.101 147.699 679.501C148.899 679.901 152.5 679.501 153.899 679.101C155.299 678.701 157.5 678.101 159.7 680.101C161.9 682.101 160.899 683.301 160.3 684.501C159.7 685.701 150.699 690.701 156.7 692.101C156.7 692.101 161.9 687.501 163.5 688.701C165.1 689.901 169.3 691.101 170.5 693.101C171.7 695.101 172.3 696.501 175.7 697.101C179.1 697.701 181.1 698.701 182.7 701.501C184.3 704.301 188.9 704.101 190.1 704.301C191.3 704.501 195.9 703.701 193.9 701.301C191.9 698.901 182.1 699.501 180.5 697.701C178.9 695.901 175.7 692.501 177.5 691.101C179.3 689.701 179.9 688.701 181.1 688.101C182.3 687.501 185.3 690.301 187.7 691.501C190.1 692.701 192.7 694.901 195.5 695.501C198.3 696.101 200.1 693.101 203.1 694.701C206.1 696.301 211.1 699.301 213.7 701.101C216.3 702.901 222.5 703.501 223.1 702.901C223.7 702.301 219.5 697.101 214.9 696.301C210.3 695.501 209.1 692.101 207.9 691.301C206.7 690.501 205.3 689.701 201.5 687.701C197.7 685.701 203.7 685.301 203.5 684.101C203.3 682.901 216.7 689.301 219.1 690.101C221.5 690.901 225.3 690.701 222.1 688.901C218.9 687.101 217.5 686.101 216.3 684.101C215.1 682.101 216.3 682.301 210.5 681.301C204.7 680.301 202.1 681.101 198.5 679.301C194.9 677.501 194.7 677.101 189.9 676.301C185.1 675.501 176.5 674.701 173.9 674.901z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M197.1 552.699C197.9 551.5 193.9 556.9 193.5 560.9C193.1 564.9 189.13 581.96 182.9 590.1C174.735 600.768 170.5 612.9 170.5 612.9C170.1 614.9 168.5 623.5 168.5 627.5C168.5 631.5 166.3 634.9 169.5 640.7C170.3 643.5 164.7 655.501 161.9 650.5C160.7 654.501 162.5 656.501 163.9 656.301C165.3 656.101 157.5 664.301 149.899 660.501C151.7 661.901 154.299 662.701 156.899 662.501C154.899 663.301 151.1 663.301 149.899 662.501C151.299 663.701 155.1 664.501 158.3 662.901C159.264 662.718 160.7 662.701 162.3 663.301C163.9 663.901 157.5 666.301 155.5 666.301C157.899 666.901 161.5 666.101 162.1 665.501C162.7 664.901 156.7 669.901 153.7 670.101C156.5 670.701 158.7 669.301 158.7 669.301C158.7 669.301 156.3 672.301 153.899 672.701C156.3 672.501 159.3 670.701 159.3 670.701C159.3 670.701 155.899 675.501 152.299 675.901C155.299 676.301 162.7 672.101 162.7 672.101C162.7 672.101 160.5 676.301 158.3 676.701C161.3 676.301 164.7 673.701 165.3 672.701C165.3 674.501 162.5 678.701 160.1 679.101C163.5 677.901 167.7 675.501 168.3 673.301C168.1 673.301 169.5 674.301 168.9 675.501C170.1 675.701 171.9 672.301 171.5 669.301C171.1 666.301 173.3 661.501 175.3 661.301C174.5 662.701 173.3 663.901 173.3 663.901C173.3 663.901 173.3 667.301 174.5 669.101C175.9 669.501 175.7 670.301 176.5 672.101C177.3 673.901 178.9 675.301 180.1 676.501C181.3 677.701 185.7 686.701 185.7 688.701C185.7 690.701 183.9 692.301 184.9 694.501C183.9 695.501 183.3 698.301 183.3 698.301C183.3 698.301 182.7 702.901 190.1 704.101C195.7 704.501 194.3 701.901 194.3 701.901C194.3 701.901 193.1 694.101 193.5 686.701C193.5 683.901 191.5 682.101 190.3 680.901C188.591 679.192 185.1 674.101 184.7 671.901C184.3 669.701 183.9 663.701 182.9 662.101C183.1 661.101 183.9 656.701 184.1 655.101C184.3 653.501 187.3 651.7 187.7 649.101C187.9 649.301 189.1 648.9 189.1 648.9C189.1 648.9 192.1 651.7 195.1 652.701C198.1 653.701 199.5 657.101 200.1 658.701C200.7 660.301 200.9 666.501 200.3 667.901C199.7 669.301 198.1 672.701 201.9 676.701C201.9 680.101 204.7 683.501 205.9 685.301C207.1 687.101 212.5 696.901 212.7 698.701C212.9 700.501 215.1 701.701 214.9 702.301C214.7 702.901 218.3 704.701 223.1 704.501C226.104 704.376 228.7 704.501 228.1 701.501C227.7 699.701 228.3 700.501 226.5 698.701C224.7 696.901 218.1 699.101 210.7 680.901C210.7 680.901 209.9 678.101 210.9 675.101C211.347 673.759 210.9 671.501 210.1 669.501C209.9 666.901 211.5 661.301 210.9 656.501C210.3 651.7 211.7 646.101 212.1 643.5C212.7 640.7 212.3 633.3 208.9 628.1C210.9 622.7 214.1 619.9 215.3 618.7C216.5 617.5 227.1 608.9 227.9 601.1C228.1 600.9 229.3 600.7 229.3 600.7L231.1 597.5C231.1 597.5 232.9 597.9 233.3 596.9C233.7 595.9 235.5 587.4 235.5 587.4C235.5 587.4 235.8 583.8 236.1 582.9C236.4 582 237.354 579.586 239.7 579C243.3 578.1 250.2 570.3 252.901 567.3C253.615 567.806 254.401 573.9 253.8 575.7C253.2 577.5 252 580.8 252.901 583.5C253.8 586.2 251.7 586.5 250.5 587.1C249.3 587.7 247.8 588.6 248.7 590.4C249 591.6 245.9 594.3 245.9 594.3C245.7 596.3 244.9 600.3 249.7 601.7C254.5 603.1 255.901 602.3 256.101 600.3C256.3 598.3 257.101 594.7 257.101 594.7C257.101 594.7 258.901 593.5 258.901 589.7C258.901 585.9 259.901 585.3 260.901 584.3C262.701 582.7 262.701 581.1 261.101 577.5C260.301 575.1 260.701 566.7 260.701 566.7C260.701 566.7 264.101 561.7 259.501 558.7C256.3 555.5 254.101 555.5 250.101 557.7C246.1 559.9 241.3 561.7 241.3 561.7C241.3 561.7 245.5 547.699 233.9 545.5C233.3 544.899 231.4 544.1 230.1 543.099C228.9 543.099 221.3 530.099 221.1 522.299C220.9 520.749 223.04 521.312 223.726 521.265C225.226 521.161 227.728 520.525 229.1 514.899C230.5 514.699 231.3 514.199 232.5 514.099C234.1 513.699 238.5 510.699 238.5 508.499C240.7 508.099 243.7 503.899 240.3 501.699C240.52 500.923 240.5 499.299 240.5 499.299C240.5 499.299 237.1 496.299 234.7 496.499C232.713 496.664 224.147 496.693 219.895 497.038C219.895 497.038 218.3 497.299 217.2 497.199C216.1 497.099 212.9 496.099 211.1 498.799C210.4 499.699 209.5 499.299 209.5 499.299C208.412 498.755 205.9 498.099 204.1 499.299C202.9 499.099 200.7 498.299 200.9 499.499C203.1 500.499 203.9 505.299 206.7 504.499C206.7 504.499 205.6 506.199 205.7 507.649C204.7 509.049 201.5 520.299 202.1 527.499C202.7 534.699 200.1 540.699 198.9 544.299C197.7 547.899 197.1 552.699 197.1 552.699z"/>
+ </g>
+ <g style="fill: #e7e3de">
+ <path d="M217.5 577.65C218.498 581.073 217.95 591.3 207.3 594.9C196.65 598.5 188.1 604.2 186.6 606.3C185.1 608.4 183.6 603 185.1 599.4C187.05 593.25 188.1 590.85 194.85 585.45C201.6 580.05 216.45 574.05 217.5 577.65z"/>
+ </g>
+ <g style="fill: #ece9e5">
+ <path d="M199.95 583.65C194.935 586.895 185.7 594 185.85 602.4C186.3 606 190.05 602.1 191.55 600.45C193.05 598.8 196.95 597.45 198.75 596.7C200.55 595.95 201.6 592.95 200.25 590.25C202.65 587.1 202.5 582 199.95 583.65z"/>
+ </g>
+ <g style="fill: #eae6e1">
+ <path d="M233.9 545.5C233.3 544.899 231.4 544.1 230.1 543.099C228.9 543.099 221.3 530.099 221.1 522.299C221.1 522.299 219.4 522.899 217.5 522.299C215.6 521.699 215.6 524.799 216.8 525.499C218 526.199 220.4 529.199 220.8 531.399C221.2 533.599 221.7 537.399 223.8 538.799C225.9 540.199 228.9 544.1 227.1 546.5C225.3 548.899 226.9 550.1 228.8 548.899C230.3 546 233.9 545.5 233.9 545.5z"/>
+ </g>
+ <g style="fill: #dad2c8">
+ <path d="M223.05 595.05C211.8 597.3 204.6 604.95 196.95 607.2C189.3 609.45 183.9 617.1 186.15 622.05C188.4 627 189.75 633.3 191.1 637.8C192.45 642.3 198.75 639.15 202.35 634.2C205.95 629.25 212.25 621.6 217.2 613.95C222.15 606.3 223.05 595.05 223.05 595.05z"/>
+ </g>
+ <g style="fill: #d0c5b9">
+ <path d="M219.9 601.35C208.65 603.6 207.3 609 199.65 611.25C192 613.5 187.95 619.35 190.2 624.3C192.45 629.25 189.75 633.3 191.1 637.8C192.45 642.3 198.75 639.15 202.35 634.2C205.95 629.25 212.25 621.6 217.2 613.95C222.15 606.3 219.9 601.35 219.9 601.35z"/>
+ </g>
+ <g style="fill: #d7d2cb">
+ <path d="M260.901 584.3C259.901 585.3 258.901 585.9 258.901 589.7C258.901 593.5 257.101 594.7 257.101 594.7C257.101 594.7 256.3 598.3 256.101 600.3C255.901 602.3 254.5 603.1 249.7 601.7C244.9 600.3 245.7 596.3 245.9 594.3C245.9 594.3 249 591.6 248.7 590.4C247.8 588.6 249.3 587.7 250.5 587.1C251.7 586.5 253.8 586.2 252.901 583.5C252 580.8 253.2 577.5 253.8 575.7C254.401 573.9 253.615 567.806 252.901 567.3C250.2 570.3 243.3 578.1 239.7 579C237.354 579.586 236.4 582 236.1 582.9C236.1 582.9 231.9 573.6 237.3 568.8C240.3 566.7 241.3 561.7 241.3 561.7C241.3 561.7 246.1 559.9 250.101 557.7C254.101 555.5 256.3 555.5 259.501 558.7C264.101 561.7 260.701 566.7 260.701 566.7C260.701 566.7 260.301 575.1 261.101 577.5C262.701 581.1 262.701 582.7 260.901 584.3z"/>
+ </g>
+ <g style="fill: #694619">
+ <path d="M256.678 596.735C256.453 597.888 256.201 599.296 256.101 600.3C255.901 602.3 254.5 603.1 249.7 601.7C244.9 600.3 245.7 596.3 245.9 594.3C245.9 594.3 247.197 593.171 248.031 592.049C248.031 592.049 249.689 595.001 252.901 596.5C255.901 597.9 256.678 596.735 256.678 596.735z"/>
+ </g>
+ <g style="fill: #a18d75">
+ <path d="M255.579 597.835C256.079 598.135 255.801 599.396 255.7 600.4C255.5 602.4 254.901 602.3 250.101 600.9C245.3 599.5 246.3 596.9 246.5 594.9C246.5 594.9 247.731 593.049 248.132 593.249C248.531 593.449 249.289 595.401 252.5 596.9C255.5 598.3 255.079 597.535 255.579 597.835z"/>
+ </g>
+ <g style="fill: #af9f8c">
+ <path d="M254.878 598.435C255.378 598.735 255.445 602.675 251 600.9C247.008 599.306 248.4 598 248.601 597C248.8 596 249.189 595.801 252.401 597.3C255.401 598.7 254.378 598.135 254.878 598.435z"/>
+ </g>
+ <g style="fill: #cbc3b9">
+ <path d="M258.901 589.7C258.901 585.9 259.901 585.3 260.901 584.3C260.901 584.3 262.501 582.1 259.701 582.7C256.901 583.3 255.5 582.3 254.901 582.3C254.3 582.3 252.101 582.3 255.5 585.1C257.353 587.143 256.101 587.7 256.5 588.9C256.901 590.1 258.901 589.7 258.901 589.7z"/>
+ </g>
+ <g style="fill: #af9f8c">
+ <path d="M258.901 589.7C258.901 585.9 259.901 585.3 260.901 584.3C260.901 584.3 261.301 582.7 258.501 583.3C258.501 583.3 255.142 582.684 255.5 583.7C256.7 587.1 258.901 589.7 258.901 589.7z"/>
+ </g>
+ <g style="fill: #876f60">
+ <path d="M258.901 589.7C258.901 585.9 259.901 585.3 260.901 584.3C260.901 584.3 258.3 585.9 257.101 585.7C255.901 585.5 258.3 586.5 258.3 587.7C258.3 588.9 258.901 589.7 258.901 589.7z"/>
+ </g>
+ <g style="fill: #cbc3b9">
+ <path d="M237.3 568.8C231.9 573.6 236.1 582.9 236.1 582.9C236.4 582 237.354 579.586 239.7 579C243.3 578.1 250.2 570.3 252.901 567.3C252.901 567.3 252.7 564.7 251.901 565.1C251.101 565.5 249.7 566.7 247.7 565.7C248.1 567.1 248.7 569.5 247.3 569.9C245.9 570.3 244.7 570.5 243.3 571.9C237.1 578.3 237.3 568.8 237.3 568.8z"/>
+ </g>
+ <g style="fill: #af9f8c">
+ <path d="M237.3 568.8C231.9 573.6 236.1 582.9 236.1 582.9C236.4 582 237.354 579.586 239.7 579C243.3 578.1 250.2 570.3 252.901 567.3C252.901 567.3 252.7 564.7 251.901 565.1C251.101 565.5 252.101 568.1 250.101 567.1C250.5 568.5 249.1 570.1 247.7 570.5C246.3 570.9 244.7 572.3 243.3 573.7C237.1 580.1 237.3 568.8 237.3 568.8z"/>
+ </g>
+ <g style="fill: #7c554e">
+ <path d="M240.085 577.254C237.384 576.982 236.1 582.9 236.1 582.9C236.4 582 237.354 579.586 239.7 579C243.3 578.1 250.2 570.3 252.901 567.3C252.901 567.3 252.7 564.7 251.901 565.1C252.7 567.3 249.3 570.9 247.9 571.3C246.5 571.7 242.923 577.138 240.085 577.254z"/>
+ </g>
+ <g style="fill: #5b3402">
+ <path d="M239.935 578.154C237.234 577.882 236.1 582.9 236.1 582.9C236.4 582 237.354 579.586 239.7 579C243.3 578.1 250.2 570.3 252.901 567.3C252.901 567.3 253 565.75 252.2 566.15C253 568.35 249.45 570.75 248.05 571.75C246.866 572.596 242.773 578.038 239.935 578.154z"/>
+ </g>
+ <g style="fill: #bdb1a2">
+ <path d="M251.401 597.4C252.7 597.8 254.401 597.8 254.101 598.6C253.8 599.4 254.3 601.2 252.401 600.9C250.5 600.6 251.5 600.1 251.101 599.3C250.7 598.5 251.401 597.4 251.401 597.4z"/>
+ </g>
+ <g style="fill: #cbc3b9">
+ <path d="M241.9 566.3C245.5 564.7 247.7 562.7 248.7 560.1C249.7 557.5 253.101 555.9 253.7 557.7C254.3 559.5 254.7 561.9 256.3 562.1C257.901 562.3 261.701 559.9 260.701 564.9C259.701 569.9 257.901 566.7 256.3 565.5C254.7 564.3 256.901 577.3 256.3 578.5C254.7 579.5 254.101 571.3 253.5 569.3C252.901 567.3 252.7 565.3 252.101 564.9C251.5 564.5 250.901 566.1 249.3 565.9C247.7 565.7 248.5 564.3 244.7 566.1C240.9 567.9 241.9 566.3 241.9 566.3z"/>
+ </g>
+ <g style="fill: #af9f8c">
+ <path d="M251.5 558.3C249.7 559.7 246.728 564.01 247.5 564.3C250.7 565.5 250.3 563.7 251.5 563.9C252.7 564.1 253.901 568.3 254.5 571.5C255.901 573.5 255.3 567.5 254.5 565.1C253.7 562.7 257.101 565.1 258.101 565.7C259.101 566.3 256.7 562.7 254.5 562.1C252.3 561.5 253.3 556.9 251.5 558.3z"/>
+ </g>
+ <g style="fill: #876f60">
+ <path d="M251.5 559.1C249.901 560.5 248.1 563.5 250.101 563.1C252.101 562.7 253.7 565.9 254.101 567.9C255.5 568.9 254.101 563.7 253.3 562.7C252.5 561.7 251.5 559.1 251.5 559.1z"/>
+ </g>
+ <g style="fill: #d7d2cb">
+ <path d="M252.101 588.3C249.7 587.5 247.7 589.3 250.901 592.3C254.101 595.3 255.901 595.9 257.7 593.9C257.901 592.7 256.5 592.3 255.5 592.1C253.901 591.7 252.101 588.3 252.101 588.3z"/>
+ </g>
+ <g style="fill: #dbd7d2">
+ <path d="M252.038 588.537C249.976 587.562 248.055 589.196 251.2 592.25C254.157 595.1 256.05 595.5 257.5 593.85C257.7 592.762 256.288 592.394 255.288 592.194C253.688 591.794 252.3 588.912 252.038 588.537z"/>
+ </g>
+ <g style="fill: #dfddd9">
+ <path d="M251.976 588.775C250.25 587.625 248.409 589.092 251.5 592.2C254.213 594.9 256.2 595.1 257.3 593.8C257.5 592.825 256.075 592.487 255.075 592.287C253.476 591.887 252.5 589.525 251.976 588.775z"/>
+ </g>
+ <g style="fill: #e3e2e0">
+ <path d="M251.913 589.012C250.526 587.687 248.764 588.987 251.8 592.15C254.269 594.7 256.351 594.7 257.101 593.75C257.3 592.888 255.863 592.581 254.863 592.381C253.263 591.981 252.7 590.137 251.913 589.012z"/>
+ </g>
+ <g style="fill: #e7e7e7">
+ <path d="M251.851 589.25C250.8 587.75 249.118 588.883 252.101 592.1C254.325 594.5 256.5 594.3 256.901 593.7C257.101 592.95 255.651 592.675 254.651 592.475C253.05 592.075 252.901 590.75 251.851 589.25z"/>
+ </g>
+ <g style="fill: #dfdbd6">
+ <path d="M255.3 557.1C256.5 557.3 260.701 559.5 261.101 561.3C261.501 563.1 259.101 560.7 257.901 560.5C255.901 560.1 255.3 557.1 255.3 557.1z"/>
+ </g>
+ <g style="fill: #e7e7e7">
+ <path d="M257.5 558.7C259.101 559.5 261.501 561.3 259.701 560.9C256.901 559.9 257.5 558.7 257.5 558.7z"/>
+ </g>
+ <g style="fill: #dfdbd6">
+ <path d="M259.901 568.5C259.701 570.7 259.701 576.9 260.501 578.3C261.301 579.7 262.301 581.9 260.701 581.9C259.101 581.9 257.3 581.5 256.5 581.7C255.7 581.9 257.3 579.1 258.7 579.1C258.501 571.1 259.901 568.5 259.901 568.5z"/>
+ </g>
+ <g style="fill: #e7e7e7">
+ <path d="M260.501 579.9C259.501 579.7 256.101 580.5 257.101 581.1C258.101 581.7 260.301 582.1 261.101 581.5C261.901 580.9 260.501 579.9 260.501 579.9z"/>
+ </g>
+ <g style="fill: #d2cac0">
+ <path d="M205.5 545.399C207.628 544.908 213 542.099 211.5 538.799C204.9 534.299 204.6 521.999 205.5 524.399C206.4 526.799 210 530.699 210 529.499C210 528.299 210.6 522.299 207.3 518.999C204 515.699 205.9 507.499 205.9 507.499C204.9 508.899 201.5 520.299 202.1 527.499C202.7 534.699 200.1 540.699 198.9 544.299C197.7 547.899 197.1 552.699 197.1 552.699C197.9 551.5 193.9 556.9 193.5 560.9C193.1 564.9 189.13 581.96 182.9 590.1C174.735 600.768 170.5 612.9 170.5 612.9C170.1 614.9 168.5 623.5 168.5 627.5C168.5 627.5 169.1 609.85 178.55 610.3C178.55 610.3 184.35 609.45 183.9 599.1C183.45 588.75 184.8 589.65 187.95 586.05C191.1 582.45 200.1 579.75 201.45 577.05C202.29 575.37 197.776 575.895 195.526 572.745C193.276 569.595 196.9 567.56 196.05 565.35C193.8 559.5 199.65 546.75 205.5 545.399z"/>
+ </g>
+ <g style="fill: #cac1b5">
+ <path d="M170.5 612.9C170.5 612.9 174.735 600.768 182.9 590.1C189.13 581.96 193.1 564.9 193.5 560.9C193.9 556.9 197.9 551.5 197.1 552.699C197.1 552.699 197.7 547.899 198.9 544.299C199.809 541.573 201.52 537.471 202.037 532.513C202.037 532.513 208.65 536.549 205.5 540.149C202.35 543.75 198.75 548.699 197.4 552.75C196.05 556.8 192 568.05 192.45 571.65C192.9 575.25 197.4 575.25 195.6 577.05C193.8 578.85 185.25 585.15 183.45 591.9C181.65 598.65 176.7 599.55 178.95 606.3C179.4 610.8 170.5 612.9 170.5 612.9z"/>
+ </g>
+ <g style="fill: #cabfb1">
+ <path d="M240.803 560.096C240.11 541.757 232.667 546.347 224.33 555.385C219.792 560.307 213.254 569.322 210.658 571.455C210.658 571.455 212.443 571.418 214.506 572.199C214.509 572.488 214.631 572.726 214.9 572.9C211.771 575.638 216.671 576.462 219.134 575.937C220.413 578.03 221.102 581.1 220.399 585.603C219.147 593.618 208.575 601.925 208.575 601.925C212.83 600.192 216.845 598.4 220.064 596.585C218.536 600.127 216.642 603.842 214.3 607.7C209.866 615.004 208.5 615.9 207.3 612.9C206.1 609.9 204.7 615.9 200.5 617.1C186.7 618.9 186.3 629.7 186.3 629.7C190.5 632.1 190.5 644.101 190.5 644.101C190.5 644.101 192.6 637.2 194.1 637.2C199.8 639.9 208.9 628.1 208.9 628.1C210.9 622.7 214.1 619.9 215.3 618.7C216.5 617.5 227.1 608.9 227.9 601.1C227.9 601.1 232.8 595.8 235.8 580.8C235.979 579.445 236.129 578.162 236.255 576.941C236.854 575.908 237.414 574.925 237.92 574.024C239.6 571.034 238.094 573.347 239.695 568.947C241.295 564.547 240.898 562.602 240.803 560.096z"/>
+ </g>
+ <g style="fill: #cabfb1">
+ <path d="M220.5 592.3C218.5 594.3 211.05 596.65 204.65 598.65C200.45 601.45 206.9 603.45 208.5 602.65C219.1 599.45 220.5 592.3 220.5 592.3z"/>
+ </g>
+ <g style="fill: #c1b2a5">
+ <path d="M220.207 592.675C218.134 594.661 211.258 596.925 205.258 598.858C201.092 601.458 207.233 603.025 208.833 602.225C218.733 599.158 219.954 592.9 220.207 592.675z"/>
+ </g>
+ <g style="fill: #b7a498">
+ <path d="M219.913 593.05C217.767 595.022 211.467 597.2 205.867 599.067C201.733 601.467 207.567 602.6 209.167 601.8C218.367 598.867 219.408 593.5 219.913 593.05z"/>
+ </g>
+ <g style="fill: #ae978c">
+ <path d="M219.62 593.426C217.4 595.384 211.675 597.475 206.475 599.275C202.375 601.475 207.9 602.175 209.5 601.375C218 598.575 218.862 594.1 219.62 593.426z"/>
+ </g>
+ <g style="fill: #a48980">
+ <path d="M219.327 593.801C217.034 595.745 211.883 597.75 207.083 599.483C203.017 601.483 208.233 601.75 209.833 600.95C217.633 598.283 218.316 594.7 219.327 593.801z"/>
+ </g>
+ <g style="fill: #9b7c74">
+ <path d="M219.034 594.176C216.667 596.106 212.092 598.025 207.692 599.692C203.658 601.492 208.567 601.325 210.167 600.525C217.267 597.992 217.77 595.3 219.034 594.176z"/>
+ </g>
+ <g style="fill: #916e67">
+ <path d="M218.74 594.551C216.3 596.467 212.3 598.3 208.3 599.9C204.3 601.5 208.9 600.9 210.5 600.1C216.9 597.7 217.224 595.9 218.74 594.551z"/>
+ </g>
+ <g style="fill: #7f6340">
+ <path d="M215.1 574.1C217.1 575.7 219.1 574.9 221.1 573.3C223.1 571.7 226.1 566.3 226.7 565.5C227.3 564.7 227.5 562.1 223.7 561.7C219.9 561.3 215.1 574.1 215.1 574.1z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M194.1 637.2C199.8 639.9 208.9 628.1 208.9 628.1C210.9 622.7 214.1 619.9 215.3 618.7C216.5 617.5 227.1 608.9 227.9 601.1C227.9 601.1 232.8 595.8 235.8 580.8C236.92 572.3 236.986 566.477 236.302 562.664C236.302 562.664 232.3 566.5 231.7 572.7C231.1 578.9 232.7 599.5 222.5 606.7C212.3 613.9 224.1 599.9 224.7 595.9C225.3 591.9 215.5 605.7 214.1 612.9C213.157 617.749 214.158 618.617 208.9 620.1C201.1 622.3 194.1 637.2 194.1 637.2z"/>
+ </g>
+ <g style="fill: #9c866b">
+ <path d="M205.022 632.385C207.3 630.175 208.9 628.1 208.9 628.1C210.9 622.7 214.1 619.9 215.3 618.7C216.369 617.631 224.897 610.69 227.312 603.673C227.312 603.673 222.15 611.7 219.45 611.7C216.75 611.7 216.3 615.3 214.95 617.1C213.6 618.9 208.65 622.5 205.95 624.75C203.25 627 205.022 632.385 205.022 632.385z"/>
+ </g>
+ <g style="fill: #d0c7bd">
+ <path d="M229.1 514.899C230.5 514.699 231.3 514.199 232.5 514.099C234.1 513.699 238.5 510.699 238.5 508.499C240.7 508.099 243.7 503.899 240.3 501.699C240.52 500.923 240.5 499.299 240.5 499.299C240.5 499.299 237.1 496.299 234.7 496.499C234.7 496.499 232.425 496.574 231.525 498.149C230.625 499.724 228.825 500.624 227.175 501.449C225.525 502.274 227.7 502.499 228.525 502.574C229.5 503.474 227.025 503.249 226.425 503.849C225.825 504.449 226.35 506.099 228.075 505.574C229.8 505.049 230.625 503.324 231.375 504.299C230.775 504.974 228.075 505.574 228.075 506.624C228.075 507.674 225.584 509.351 227.475 511.124C228.3 511.874 229.575 512.849 229.35 513.524C229.125 514.199 229.1 514.899 229.1 514.899z"/>
+ </g>
+ <g style="fill: #dad4cb">
+ <path d="M231.557 511.295C235.62 511.765 231.886 514.15 232.5 514.099C234.1 513.699 238.5 510.699 238.5 508.499C240.7 508.099 243.7 503.899 240.3 501.699C240.52 500.923 240.5 499.299 240.5 499.299C240.5 499.299 237.1 496.974 234.7 497.174C234.7 497.174 232.95 497.099 232.05 498.674C231.15 500.249 230.475 500.549 228.825 501.374C227.175 502.199 230.55 502.949 230.925 503.024C231.3 503.099 233.1 503.399 232.95 504.224C232.8 505.049 230.214 505.509 229.8 506.474C229.032 508.267 227.495 510.824 231.557 511.295z"/>
+ </g>
+ <g style="fill: #cabfb1">
+ <path d="M237.6 507.749C237.3 507.824 236.775 506.999 235.725 507.224C236.475 508.424 235.2 509.249 234.075 508.349C233.495 507.885 231.375 506.249 231.825 507.599C233.325 508.274 233.25 509.324 230.775 509.324C229.275 509.849 228.6 509.249 224.7 509.549C221.025 508.799 218.4 511.424 221.1 512.924C223.65 512.774 223.725 513.824 222.225 514.649C220.725 515.474 216.075 515.474 216.075 515.474C214.125 515.624 211.95 517.124 211.8 515.549C211.65 513.974 210.225 510.149 209.4 512.024C207.375 519.749 213.375 522.599 214.725 522.299C215.677 522.088 218.214 522.33 218.714 522.929C219.114 526.43 223.195 531.002 223.195 531.002C222.08 528.109 221.247 525.143 221.116 522.657C221.119 522.455 221.1 522.299 221.1 522.299C220.9 520.749 223.04 521.312 223.726 521.265C225.226 521.161 227.728 520.525 229.1 514.899C230.5 514.699 231.3 514.199 232.5 514.099C234.1 513.699 238.5 510.699 238.5 508.499C238.5 508.499 237.9 507.674 237.6 507.749z"/>
+ </g>
+ <g style="fill: #bbac9a">
+ <path d="M237 509.549C238.2 509.549 237.86 510.294 236.979 511.178C235.551 512.61 233.49 513.852 232.5 514.099C231.3 514.199 230.5 514.699 229.1 514.899C227.728 520.525 225.226 521.161 223.726 521.265C223.04 521.312 220.9 520.749 221.1 522.299C221.1 522.299 221.325 523.649 220.125 523.049C218.925 522.449 218.925 520.349 215.325 521.099C213.971 521.381 208.575 519.899 209.4 512.024C210.225 510.149 210.005 515.744 210.9 517.049C212.7 519.674 213.825 517.124 215.775 516.974C215.775 516.974 221.475 516.824 222.975 515.999C224.475 515.174 226.5 512.924 223.95 513.074C221.25 511.574 229.425 511.949 230.925 511.424C233.221 511.424 234.569 510.749 237 509.549z"/>
+ </g>
+ <g style="fill: #a99781">
+ <path d="M229.1 514.899C227.728 520.525 225.226 521.161 223.726 521.265C223.04 521.312 220.9 520.749 221.1 522.299C221.1 522.299 221.325 523.649 220.125 523.049C218.925 522.449 218.925 520.349 215.325 521.099C214.583 521.254 212.628 520.879 211.147 519.213C211.147 519.213 211.95 519.149 213.6 519.599C215.25 520.049 215.7 519.899 216.9 519.149C218.1 518.399 220.95 516.749 222.9 518.099C224.85 519.449 225.3 518.999 226.35 518.249C227.4 517.499 229.1 514.899 229.1 514.899z"/>
+ </g>
+ <g style="fill: #dad4cb">
+ <path d="M206.7 504.499C203.9 505.299 203.1 500.499 200.9 499.499C200.9 499.499 201.825 498.824 202.35 499.499C202.875 500.174 203.775 501.599 204.825 501.449C205.875 501.299 205.275 502.574 205.275 502.949C205.275 503.324 206.775 503.099 207.15 503.324C207.525 503.549 208.725 504.899 208.275 506.324C207.9 505.574 206.7 504.499 206.7 504.499z"/>
+ </g>
+ <g style="fill: #bbac9a">
+ <path d="M208.275 506.324C207.9 505.574 206.7 504.499 206.7 504.499C203.9 505.299 203.1 500.499 200.9 499.499C200.9 499.499 202.65 499.424 203.775 501.974C204.9 504.524 205.125 503.849 205.725 503.774C206.325 503.699 207.525 503.849 207.675 504.749C207.825 505.649 208.275 506.324 208.275 506.324z"/>
+ </g>
+ <g style="fill: #cabfb1">
+ <path d="M186.793 629.698C186.742 628.323 187.073 626.696 188.1 624.3C189.7 622.1 191.5 620.9 194.3 619.9C194.3 619.9 195.9 620.1 193.65 622.05C191.4 624 189.6 625.65 189.6 628.05C189.6 630.45 189.6 633.45 188.55 632.55C187.2 632.25 186.793 629.698 186.793 629.698z"/>
+ </g>
+ <g style="fill: #bbac99">
+ <path d="M186.985 629.707C186.933 628.332 187.181 626.838 188.208 624.442C189.808 622.242 191.45 621.042 194.25 620.042C194.25 620.042 195.758 620.083 193.508 622.034C191.258 623.984 189.475 625.65 189.475 628.05C189.475 630.45 189.5 633.117 188.533 632.359C187.317 632.1 186.985 629.707 186.985 629.707z"/>
+ </g>
+ <g style="fill: #ac9981">
+ <path d="M187.176 629.715C187.125 628.34 187.29 626.98 188.317 624.584C189.916 622.384 191.4 621.184 194.2 620.184C194.2 620.184 195.617 620.067 193.366 622.017C191.116 623.967 189.35 625.65 189.35 628.05C189.35 630.45 189.4 632.784 188.517 632.167C187.433 631.95 187.176 629.715 187.176 629.715z"/>
+ </g>
+ <g style="fill: #9d8669">
+ <path d="M187.368 629.724C187.317 628.348 187.398 627.121 188.425 624.725C190.025 622.525 191.35 621.325 194.15 620.325C194.15 620.325 195.475 620.05 193.225 622C190.975 623.95 189.225 625.65 189.225 628.05C189.225 630.45 189.3 632.45 188.5 631.975C187.55 631.8 187.368 629.724 187.368 629.724z"/>
+ </g>
+ <g style="fill: #8e7351">
+ <path d="M187.56 629.732C187.508 628.357 187.506 627.263 188.533 624.867C190.133 622.667 191.3 621.467 194.1 620.467C194.1 620.467 195.333 620.034 193.083 621.984C190.833 623.934 189.1 625.65 189.1 628.05C189.1 630.45 189.2 632.117 188.483 631.784C187.666 631.65 187.56 629.732 187.56 629.732z"/>
+ </g>
+ <g style="fill: #7f6039">
+ <path d="M187.751 629.74C187.7 628.365 187.615 627.404 188.642 625.009C190.241 622.809 191.25 621.609 194.05 620.609C194.05 620.609 195.192 620.017 192.942 621.967C190.692 623.917 188.975 625.65 188.975 628.05C188.975 630.45 189.1 631.784 188.466 631.592C187.783 631.5 187.751 629.74 187.751 629.74z"/>
+ </g>
+ <g style="fill: #704d21">
+ <path d="M187.943 629.748C187.892 628.373 187.723 627.546 188.75 625.15C190.35 622.95 191.2 621.75 194 620.75C194 620.75 195.05 620 192.8 621.95C190.55 623.9 188.85 625.65 188.85 628.05C188.85 630.45 189 631.45 188.45 631.4C187.9 631.35 187.943 629.748 187.943 629.748z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M208.9 628.1C212.3 633.3 212.7 640.7 212.1 643.5C211.7 646.101 210.3 651.7 210.9 656.501C211.5 661.301 209.9 666.901 210.1 669.501C210.9 671.501 211.347 673.759 210.9 675.101C209.9 678.101 210.7 680.901 210.7 680.901C218.1 699.101 224.7 696.901 226.5 698.701C228.3 700.501 227.7 699.701 228.1 701.501C228.7 704.501 226.104 704.376 223.1 704.501C218.3 704.701 214.7 702.901 214.9 702.301C215.1 701.701 212.9 700.501 212.7 698.701C212.5 696.901 207.1 687.101 205.9 685.301C204.7 683.501 201.9 680.101 201.9 676.701C198.1 672.701 199.7 669.301 200.3 667.901C200.9 666.501 200.7 660.301 200.1 658.701C199.5 657.101 198.1 653.701 195.1 652.701C192.1 651.7 189.1 648.9 189.1 648.9C189.1 648.9 191.5 645.301 190.9 641.7C190.3 638.1 193.9 637.1 193.9 637.1C193.9 637.1 199.7 637.9 200.3 630.1C201.3 627.9 206.5 624.5 209.3 624.3C208.498 626.229 208.9 628.1 208.9 628.1z"/>
+ </g>
+ <g style="fill: #cabfb1">
+ <path d="M225.308 704.395C224.632 704.453 223.88 704.469 223.1 704.501C218.3 704.701 214.7 702.901 214.9 702.301C215.1 701.701 212.9 700.501 212.7 698.701C212.5 696.901 207.1 687.101 205.9 685.301C204.7 683.501 201.9 680.101 201.9 676.701C198.1 672.701 199.7 669.301 200.3 667.901C200.9 666.501 200.7 660.301 200.1 658.701C199.5 657.101 198.1 653.701 195.1 652.701C192.1 651.7 189.1 648.9 189.1 648.9C189.1 648.9 191.5 645.301 190.9 641.7C190.3 638.1 193.9 637.1 193.9 637.1C193.9 637.1 199.7 637.9 200.3 630.1C200.3 630.1 207.3 633.7 207.1 643.9C206.7 648.101 206.9 645.5 203.5 644.5C200.1 643.5 201.9 646.7 201.7 649.9C201.5 653.101 204.1 659.301 204.1 662.101C204.1 664.901 202.9 671.501 203.9 672.301C204.9 673.101 207.5 670.701 208.1 672.501C208.7 674.301 208.5 677.301 206.7 678.901C204.9 680.501 208.3 682.501 208.9 683.501C209.5 684.501 214.5 690.901 215.9 694.501C217.3 698.101 218.7 697.101 220.7 697.501C222.7 697.901 226.9 699.901 225.7 701.101C224.5 702.301 225.308 704.395 225.308 704.395z"/>
+ </g>
+ <g style="fill: #d3cbc1">
+ <path d="M210.7 680.901C210.7 680.901 209.9 678.101 210.9 675.101C211.347 673.759 210.9 671.501 210.1 669.501C209.9 666.901 211.5 661.301 210.9 656.501C210.3 651.7 211.7 646.101 212.1 643.5C212.7 640.7 212.3 633.3 208.9 628.1C208.9 628.1 206.7 626.5 205.9 628.5C205.1 630.5 207.5 632.7 208.1 635.9C208.7 639.1 210.9 643.5 208.9 648.9C206.9 654.301 206.9 654.701 208.5 657.101C210.1 659.501 209.1 665.101 208.1 666.501C207.1 667.901 209.1 670.901 209.5 672.501C209.9 674.101 210.7 680.901 210.7 680.901z"/>
+ </g>
+ <g style="fill: #c3b8aa">
+ <path d="M210.1 669.501C209.9 666.901 211.5 661.301 210.9 656.501C210.3 651.7 211.7 646.101 212.1 643.5C212.7 640.7 212.3 633.3 208.9 628.1C208.9 628.1 207.5 627.5 207.5 629.7C207.5 631.854 209.7 632.7 210.3 635.9C210.9 639.1 211.521 643.837 209.7 649.301C208.3 653.501 209.9 655.701 209.9 657.701C209.9 660.585 210.3 664.901 209.3 666.301C208.3 667.701 210.9 671.501 210.1 669.501z"/>
+ </g>
+ <g style="fill: #a69785">
+ <path d="M210.505 663.521C210.877 661.62 211.225 659.103 210.9 656.501C210.3 651.7 211.7 646.101 212.1 643.5C212.637 640.996 212.373 634.81 209.878 629.811C209.584 629.222 208.3 630.5 210.9 635.7C212.356 638.612 211.321 644.038 210.5 649.5C209.1 653.701 210.7 655.301 210.7 657.301C210.7 660.185 210.19 665.127 210.505 663.521z"/>
+ </g>
+ <g style="fill: #916e67">
+ <path d="M199.687 673.041C200.001 674.165 200.666 675.401 201.9 676.701C201.9 680.101 204.7 683.501 205.9 685.301C205.9 685.301 206.1 683.101 207 683.101C207.9 683.101 205.65 681.151 204.3 681.151C204 680.101 205.5 679.801 204 676.951C202.5 674.101 202.35 675.301 201.15 674.251C199.95 673.201 199.687 673.041 199.687 673.041z"/>
+ </g>
+ <g style="fill: #704d21">
+ <path d="M199.687 673.041C200.001 674.165 200.666 675.401 201.9 676.701C201.9 680.101 204.7 683.501 205.9 685.301C205.9 685.301 204.947 683.906 205.35 683.101C205.5 682.801 204.75 682.051 203.85 681.451C203.55 680.401 203.85 679.801 203.1 678.151C201.767 675.219 202.35 675.901 201.15 674.851C199.95 673.801 199.687 673.041 199.687 673.041z"/>
+ </g>
+ <g style="fill: #a98d88">
+ <path d="M200.3 667.901C200.9 666.501 200.7 660.301 200.1 658.701C199.5 657.101 198.1 653.701 195.1 652.701C192.1 651.7 189.1 648.9 189.1 648.9C189.1 648.9 189.15 646.051 190.2 645.9C191.25 645.75 190.05 648.9 193.65 649.2C197.25 649.5 196.95 650.4 199.35 650.25C200.557 650.175 198.9 652.801 199.05 653.401C199.2 654.001 200.25 652.801 200.85 653.551C201.45 654.301 201 656.401 201 657.151C201 657.901 203.85 667.951 202.35 670.351C200.85 672.751 201 667.051 201 667.051L200.3 667.901z"/>
+ </g>
+ <g style="fill: #704d21">
+ <path d="M200.3 667.901C200.9 666.501 200.7 660.301 200.1 658.701C199.5 657.101 198.1 653.701 195.1 652.701C192.1 651.7 189.1 648.9 189.1 648.9C189.1 648.9 188.85 647.7 189.9 647.551C190.95 647.4 189.736 649.674 193.2 650.7C197.25 651.9 195.15 652.051 197.55 651.9C198.757 651.825 198 653.401 198.15 654.001C198.3 654.601 199.35 654.301 199.95 655.051C200.55 655.801 200.4 656.401 200.4 657.151C200.4 657.901 203.165 666.699 202.05 669.301C201.6 670.351 201.45 665.401 201.45 665.401L200.3 667.901z"/>
+ </g>
+ <g style="fill: #e1ddd8">
+ <path d="M219.895 497.038C219.54 497.067 220.066 496.702 220.08 496.667C220.606 496.334 221.5 495.899 221.5 495.899C221.5 495.899 220.1 494.499 219.1 494.899C218.1 495.299 220.5 493.499 220.5 493.499C220.5 493.499 218.1 493.699 217.5 494.099C216.9 494.499 216.9 493.299 216.9 493.299C216.9 493.299 212.5 495.099 211.5 497.499C210.6 498.599 209.9 499.499 209.5 499.299L210.213 499.368C210.491 499.319 210.813 499.169 211.1 498.799C212.9 496.099 216.1 497.099 217.2 497.199L219.895 497.038z"/>
+ </g>
+ <g style="fill: #876943">
+ <path d="M234.675 497.399C233.807 497.659 232.125 498.899 233.025 500.549C233.85 501.749 236.1 501.524 236.55 501.299C237 501.074 237.375 502.049 237.75 501.674C238.125 501.299 237.375 498.674 236.4 498.224C235.425 497.774 235.425 497.174 234.675 497.399z"/>
+ </g>
+ <g style="fill: #684212">
+ <path d="M237.1 500.499C236.9 499.299 234.3 495.899 233.1 499.699C234.7 502.099 237.1 500.499 237.1 500.499z"/>
+ </g>
+ <g style="fill: #cabfb1">
+ <path d="M232.1 499.299C232.1 500.899 234.1 502.499 236.3 502.899C236.3 503.899 233.5 503.899 232.3 502.899C231.1 501.099 232.1 499.299 232.1 499.299z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M213.394 501.373C213.91 501.38 214.343 501.284 214.704 501.131C214.826 501.079 214.111 501.2 213.708 500.486C213.216 499.718 213.879 499.051 213.794 499.098C213.695 499.152 213.605 499.219 213.525 499.299C213.085 499.739 213.008 499.991 212.998 500.568C212.995 500.777 213.268 501.372 213.394 501.373z"/>
+ </g>
+ <g style="fill: #dad4cb">
+ <path d="M211.2 498.749C212.25 497.849 215.194 496.566 219.15 498.749C221.979 500.31 223.8 499.349 225.45 499.949C227.1 500.549 223.245 502.723 221.55 502.949C219.3 503.249 217.95 503.999 215.25 503.999C212.55 503.999 209.25 502.949 209.7 501.899C210.15 500.849 211.2 498.749 211.2 498.749z"/>
+ </g>
+ <g style="fill: #cac1b5">
+ <path d="M211.95 498.749C213 497.849 214.95 496.649 217.8 498.599C220.65 500.549 221.4 500.399 223.05 500.999C224.7 501.599 223.2 502.499 221.55 502.049C219.9 501.599 219.15 502.649 219.15 502.649C219.15 502.649 219.15 503.249 216.45 503.249C213.75 503.249 210.75 502.949 211.2 501.899C211.65 500.849 211.95 498.749 211.95 498.749z"/>
+ </g>
+ <g style="fill: #c0b5a7">
+ <path d="M217.65 499.049C216.3 498.074 215.325 497.249 214.05 498.299C212.775 499.349 212.7 498.374 211.725 498.899C210.75 499.424 211.8 500.774 210.9 501.299C210 501.824 211.2 502.799 212.325 502.724C213.45 502.649 214.35 503.624 216 502.424C217.65 501.224 215.475 501.524 214.725 501.599C215.25 501.224 216 501.449 216.375 500.324C217.425 500.324 217.65 499.049 217.65 499.049z"/>
+ </g>
+ <g style="fill: #a39077">
+ <path d="M215.55 502.199C214.8 502.649 213.825 502.949 212.925 502.424C212.55 502.799 211.95 502.799 211.65 502.499C211.35 502.199 212.025 501.149 212.175 500.624C212.325 500.099 212.4 501.299 212.775 501.449C213.15 501.599 213.028 501.84 213.15 502.124C213.375 502.649 215.55 502.199 215.55 502.199z"/>
+ </g>
+ <g style="fill: #d3cbc1">
+ <path d="M239.175 501.749C240.188 502.762 239.925 506.024 238.8 506.924C237.675 507.824 237.075 507.074 236.85 506.474C236.625 505.874 237.75 505.799 237.975 504.974C238.2 504.149 238.125 502.124 239.175 501.749z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M239.228 503.082C239.765 503.694 239.541 505.747 238.515 506.54C237.953 506.975 237.81 507.17 237.608 506.63C237.405 506.09 238.32 505.827 238.523 505.085C238.725 504.342 238.283 503.42 239.228 503.082z"/>
+ </g>
+ <g style="fill: #bbac9a">
+ <path d="M239.165 504.037C239.316 504.691 239.009 505.452 238.666 506.083C238.428 506.52 238.398 506.599 238.256 506.221C238.114 505.843 238.68 505.659 238.822 505.139C238.963 504.619 238.504 504.274 239.165 504.037z"/>
+ </g>
+ <g style="fill: #cabfb1">
+ <path d="M238.5 508.499C238.344 508.447 238.029 508.283 237.981 507.961C236.863 508.102 235.947 507.33 235.8 506.399C235.575 504.974 233.175 505.049 232.2 505.349C231.225 505.649 230.844 505.512 228.594 505.962C226.344 506.412 226.2 507.749 226.05 508.349C226.05 508.349 226.724 508.967 227.906 508.143C228.624 507.643 230.169 507.003 231.1 506.749C231.925 506.524 234.9 505.049 235.35 506.624C235.8 508.199 237.45 508.499 237.825 508.124C238.125 508.649 238.5 508.499 238.5 508.499z"/>
+ </g>
+ <g style="fill: #947d5f">
+ <path d="M216.45 498.974C216.975 498.974 217.575 499.199 216.75 499.949C216.825 499.574 216.45 498.974 216.45 498.974z"/>
+ </g>
+ <g style="fill: #8c7c6f">
+ <path d="M216.422 498.948L216.429 498.95C215.158 498.144 213.818 498.089 213.094 498.812C212.426 499.48 212.429 499.874 212.436 500.826C212.436 500.826 212.438 501.251 212.438 501.584L212.839 501.628C215.709 501.937 216.603 499.505 216.612 499.48L216.731 499.142C216.731 499.142 216.445 498.961 216.422 498.948z"/>
+ </g>
+ <g style="fill: #b3a3a3">
+ <path d="M216.499 499.44C216.49 499.464 215.629 501.808 212.852 501.508L212.558 501.477L212.556 500.825C212.549 499.883 212.546 499.53 213.179 498.897C213.862 498.214 215.142 498.276 216.364 499.051L216.586 499.192L216.499 499.44z"/>
+ </g>
+ <g style="fill: #998989">
+ <path d="M216.499 499.44C216.49 499.464 215.629 501.808 212.852 501.508L212.558 501.477C212.558 501.477 212.554 500.528 212.57 500.082C212.581 499.961 213.533 500.741 214.381 500.142C214.505 500.082 216.066 499.111 215.295 498.556C215.645 498.66 216.007 498.825 216.364 499.051L216.586 499.192L216.499 499.44z"/>
+ </g>
+ <g style="fill: #410000">
+ <path d="M216.322 499.253C215.16 498.517 213.955 498.446 213.323 499.078C212.734 499.666 212.737 499.977 212.743 500.899L212.746 501.417L212.906 501.434C215.567 501.721 216.387 499.488 216.395 499.465L216.443 499.33L216.322 499.253z"/>
+ </g>
+ <g style="fill: #94500e">
+ <path d="M216.3 499.499C215.275 498.849 214.125 498.699 213.525 499.299C212.925 499.899 213 500.149 213 501.349C215.55 501.624 216.3 499.499 216.3 499.499z"/>
+ </g>
+ <g style="fill: #3b0000">
+ <path d="M213.394 501.373C214.448 501.387 215.154 500.971 215.606 500.527C216.113 500.03 215.553 499.099 215.186 499.006C214.525 498.837 213.911 498.913 213.525 499.299C213.085 499.739 213.008 499.991 212.998 500.568C212.995 500.777 213.268 501.372 213.394 501.373z"/>
+ </g>
+ <g style="fill: #1f0000">
+ <path d="M213.394 501.373C214.288 501.385 214.933 501.087 215.383 500.725C215.464 500.661 213.864 500.197 214.331 498.934C214.014 498.97 213.736 499.088 213.525 499.299C213.085 499.739 213.008 499.991 212.998 500.568C212.995 500.777 213.268 501.372 213.394 501.373z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M213.394 501.373C214.126 501.383 214.69 501.185 215.118 500.915C215.213 500.855 214.32 501.002 213.752 500.808C212.867 500.507 213.185 499.707 213.147 499.779C213.033 499.999 213.004 500.227 212.998 500.568C212.995 500.777 213.268 501.372 213.394 501.373z"/>
+ </g>
+ <g style="fill: #170000">
+ <path d="M214.209 500.731C214.554 500.731 214.833 500.452 214.833 500.108C214.833 499.764 214.554 499.485 214.209 499.485C213.865 499.485 213.586 499.764 213.586 500.108C213.586 500.452 213.865 500.731 214.209 500.731z"/>
+ </g>
+ <g style="fill: #120000">
+ <path d="M214.208 500.632C214.498 500.632 214.733 500.397 214.733 500.107C214.733 499.817 214.498 499.582 214.208 499.582C213.918 499.582 213.683 499.817 213.683 500.107C213.683 500.397 213.918 500.632 214.208 500.632z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M214.206 500.524C214.438 500.524 214.625 500.337 214.625 500.105C214.625 499.874 214.438 499.687 214.206 499.687C213.975 499.687 213.788 499.874 213.788 500.105C213.788 500.337 213.975 500.524 214.206 500.524z"/>
+ </g>
+ <g style="fill: #460000">
+ <path d="M214.613 499.03C214.875 499.03 215.325 499.105 215.494 499.536C215.663 499.968 215.625 500.23 215.456 500.249C215.288 500.268 215.306 499.593 215.006 499.518C214.275 499.424 214.613 499.03 214.613 499.03z"/>
+ </g>
+ <g style="fill: #680000">
+ <path d="M214.725 499.124C215.025 499.087 215.381 499.33 215.513 499.705C215.644 500.08 215.494 500.155 215.494 500.155C215.494 500.155 215.513 499.855 215.325 499.63C215.138 499.405 214.838 499.312 214.688 499.293C214.388 499.124 214.725 499.124 214.725 499.124z"/>
+ </g>
+ <g style="fill: #822b00">
+ <path d="M214.763 499.124C214.988 499.143 215.306 499.349 215.306 499.48C215.306 499.611 214.988 499.255 214.856 499.293C214.613 499.312 214.763 499.124 214.763 499.124z"/>
+ </g>
+ <g style="fill: #0a0000">
+ <path d="M216.3 499.499C215.275 498.849 214.125 498.699 213.525 499.299C212.978 499.846 212.898 500.065 212.905 501.018C212.905 501.047 212.996 501.116 212.989 501.148L213.113 500.943C213.075 500.736 213.094 500.455 213.169 500.361C213.244 500.268 213.206 500.174 213.206 500.08C213.206 500.056 213.293 500.183 213.312 500.134C213.335 500.074 213.294 499.834 213.33 499.768C213.378 499.682 213.43 499.605 213.469 499.574C213.523 499.531 213.532 499.655 213.59 499.62C213.611 499.534 213.713 499.274 213.713 499.274C213.713 499.274 213.729 499.332 213.728 499.396C213.735 499.386 213.744 499.379 213.75 499.368C213.781 499.307 213.894 499.257 214.007 499.227C214.051 499.161 214.125 499.087 214.125 499.087C214.125 499.087 214.118 499.148 214.085 499.21C214.215 499.185 214.267 499.208 214.371 499.208C214.393 499.137 214.519 499.012 214.519 499.012C214.519 499.012 214.507 499.138 214.412 499.207C214.507 499.203 214.606 499.186 214.65 499.143C214.668 499.125 214.719 499.125 214.788 499.134C214.832 499.073 214.894 499.012 214.894 499.012C214.894 499.012 214.886 499.08 214.848 499.144C214.914 499.157 214.987 499.173 215.066 499.194C215.111 499.132 215.175 499.068 215.175 499.068C215.175 499.068 215.168 499.143 215.124 499.21C215.484 499.313 215.756 499.368 216.3 499.499z"/>
+ </g>
+ <g style="fill: #cabfb1">
+ <path d="M206.979 683.693C207.979 683.293 210.14 686.282 210.988 687.014C211.879 687.784 215.471 693.059 214.471 693.859C213.471 694.659 210.664 692.441 209.449 689.768C208.234 687.095 205.979 684.093 206.979 683.693z"/>
+ </g>
+ <g style="fill: #bfafa2">
+ <path d="M207.262 684.169C208.137 683.788 210.165 686.586 210.883 687.348C211.635 688.141 215.041 692.802 214.181 693.517C213.321 694.232 210.736 692.243 209.567 689.671C208.399 687.1 206.387 684.549 207.262 684.169z"/>
+ </g>
+ <g style="fill: #b49f93">
+ <path d="M207.545 684.644C208.295 684.284 210.19 686.889 210.777 687.683C211.391 688.498 214.611 692.544 213.891 693.175C213.171 693.804 210.808 692.045 209.685 689.575C208.563 687.105 206.795 685.004 207.545 684.644z"/>
+ </g>
+ <g style="fill: #a88f85">
+ <path d="M207.828 685.119C208.453 684.779 210.215 687.192 210.672 688.017C211.146 688.856 214.18 692.287 213.6 692.832C213.02 693.377 210.88 691.846 209.803 689.478C208.727 687.11 207.203 685.459 207.828 685.119z"/>
+ </g>
+ <g style="fill: #9d7f76">
+ <path d="M208.111 685.595C208.611 685.275 210.24 687.496 210.567 688.351C210.902 689.213 213.75 692.03 213.31 692.49C212.87 692.95 210.952 691.648 209.921 689.381C208.891 687.115 207.611 685.915 208.111 685.595z"/>
+ </g>
+ <g style="fill: #916e67">
+ <path d="M208.394 686.07C208.769 685.77 210.264 687.799 210.461 688.685C210.658 689.571 213.32 691.773 213.02 692.148C212.72 692.523 211.023 691.45 210.039 689.285C209.055 687.12 208.019 686.37 208.394 686.07z"/>
+ </g>
+ <g style="fill: #d6c6c6">
+ <path d="M219.45 496.986C218.438 497.361 216.918 497.037 216.918 497.037C216.175 496.97 214.482 496.372 212.942 497.14C212.429 497.396 211.09 498.372 211.9 497.382C212.8 495.222 216.648 493.677 216.648 493.677C216.648 493.677 216.685 494.795 217.225 494.435C217.765 494.075 219.738 493.745 219.738 493.745C219.738 493.745 217.803 495.552 218.703 495.192C219.603 494.832 220.9 495.942 220.9 495.942C220.9 495.942 219.136 496.994 219.455 496.968z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M218.775 496.799C218.1 497.062 216.918 497.037 216.918 497.037C216.175 496.97 214.482 496.372 212.942 497.14C212.054 496.308 216.198 494.24 216.198 494.24C216.198 494.24 215.553 496.036 215.95 495.522C216.49 494.825 218.575 494.307 218.575 494.307C218.575 494.307 216.94 496.152 217.84 495.792C218.74 495.432 220.113 495.792 220.113 495.792C220.113 495.792 219.45 496.536 218.775 496.799z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M218.138 494.511C217.463 494.886 215.963 496.087 216.3 496.762C216.713 495.824 218.138 494.511 218.138 494.511z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M216.863 496.687C217.313 496.236 218.663 495.861 219.638 495.899C219.15 496.124 217.238 496.462 217.125 496.837C216.675 497.137 216.863 496.687 216.863 496.687z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M215.963 494.399C215.288 494.961 214.95 495.674 214.8 496.161C214.65 496.649 214.575 495.486 214.838 495.111C214.463 495.337 213.975 496.199 214.275 496.536C214.575 496.874 214.988 496.462 215.1 496.687C215.063 496.012 215.963 494.399 215.963 494.399z"/>
+ </g>
+ <g style="fill: #e1ddd8">
+ <path d="M197.1 552.699C196.1 551.899 196.7 547.899 196.7 548.899C196.7 549.899 194.7 553.1 194.1 552.699C194.5 551.3 195.3 548.899 193.5 549.899C191.7 550.899 184.3 558.1 183.1 559.7C182.9 557.3 185.9 552.1 188.5 549.5C186.7 550.3 180.5 557.5 179.5 559.7C179.9 551.899 189.5 546.1 187.7 547.1C185.9 548.1 180.5 546.1 181.7 546.3C182.9 546.5 188.7 542.899 191.1 542.499C189.9 542.299 185.7 543.899 185.7 543.899C187.7 543.5 194.9 536.099 194.1 536.099C193.3 536.099 188.118 541.249 187.9 541.299C189.5 536.699 194.697 530.875 195.7 530.099C194.1 530.299 190.9 534.699 190.3 535.099C190.9 529.699 195.9 526.099 195.9 526.099C195.9 526.099 193.9 526.899 192.3 528.299C192.7 526.499 196.9 521.299 196.9 521.299C196.9 521.299 194.9 522.299 194.1 524.299C194.9 520.099 200.1 516.099 200.1 516.099C200.1 516.099 198.5 516.299 197.5 517.099C198.3 512.899 202.5 511.099 201.3 511.299C200.1 511.499 197.7 513.699 197.7 513.699C198.5 511.499 202.9 508.899 202.1 508.899C201.3 508.899 198.7 510.699 197.5 511.099C199.1 507.299 206.756 506.299 205.3 506.299C203.7 506.299 199.7 507.299 199.7 507.299C200.3 505.499 206.308 506.125 206.7 504.499C206.7 504.499 205.5 508.499 204.3 511.699C203.1 514.899 202.3 525.899 202.5 528.099C202.7 530.299 201.7 541.699 199.5 544.1C199.5 545.5 199.9 547.899 199.9 549.3C198.5 553.1 197.1 552.699 197.1 552.699z"/>
+ </g>
+ <g style="fill: #8f3800">
+ <path d="M200.744 550.98C199.924 549.848 199.695 548.092 195.228 553.8C190.761 559.508 187.231 563.855 188.23 567.17C189.345 567.991 188.501 565.948 189.142 564.898C189.426 562.589 190.81 561.33 192.912 558.115C195.014 554.899 196.804 552.513 198.626 551.34C199.98 550.469 200.744 550.98 200.744 550.98z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M199.472 550.012C198.963 550.298 198.393 550.837 198.319 551.477C198.13 551.239 198.152 550.974 198.463 550.608C198.964 550.017 199.472 550.012 199.472 550.012z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M198.009 550.8C197.58 551.197 197.15 551.854 197.226 552.494C196.988 552.306 196.948 552.043 197.165 551.614C197.515 550.924 198.009 550.8 198.009 550.8z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M196.66 552.081C196.232 552.478 196.079 552.984 196.155 553.623C196.007 553.403 195.935 553.438 196.015 552.951C196.075 552.59 196.66 552.081 196.66 552.081z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M195.667 553.285C195.238 553.682 195.085 554.187 195.161 554.827C195.013 554.606 194.941 554.642 195.022 554.155C195.082 553.793 195.667 553.285 195.667 553.285z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M194.674 554.564C194.265 554.981 194.136 555.493 194.243 556.128C194.084 555.915 194.014 555.954 194.071 555.464C194.114 555.1 194.674 554.564 194.674 554.564z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M193.78 555.628C193.421 556.088 193.35 556.611 193.527 557.231C193.345 557.037 193.28 557.083 193.282 556.589C193.284 556.223 193.78 555.628 193.78 555.628z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M193 556.653C192.666 557.132 192.623 557.658 192.834 558.267C192.642 558.083 192.579 558.133 192.555 557.64C192.536 557.274 193 556.653 193 556.653z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M192.161 557.724C191.855 558.221 191.842 558.748 192.087 559.344C191.885 559.172 191.825 559.225 191.772 558.734C191.734 558.37 192.161 557.724 192.161 557.724z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M191.34 558.839C191.044 559.343 191.043 559.871 191.3 560.461C191.095 560.293 191.036 560.347 190.973 559.858C190.926 559.495 191.34 558.839 191.34 558.839z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M190.609 559.922C190.313 560.426 190.312 560.953 190.57 561.544C190.364 561.375 190.305 561.43 190.242 560.94C190.195 560.577 190.609 559.922 190.609 559.922z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M189.806 561.159C189.526 561.672 189.542 562.199 189.817 562.782C189.607 562.62 189.55 562.676 189.471 562.189C189.413 561.827 189.806 561.159 189.806 561.159z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M189.068 562.503C188.862 563.05 188.952 563.57 189.306 564.108C189.075 563.977 189.026 564.041 188.88 563.569C188.772 563.219 189.068 562.503 189.068 562.503z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M188.416 563.879C188.302 564.452 188.475 564.95 188.912 565.423C188.663 565.332 188.625 565.403 188.405 564.961C188.241 564.634 188.416 563.879 188.416 563.879z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M188.038 565.65C188.054 566.234 188.333 566.682 188.864 567.047C188.601 567.013 188.58 567.09 188.267 566.708C188.035 566.425 188.038 565.65 188.038 565.65z"/>
+ </g>
+ <g style="fill: #8f3800">
+ <path d="M198.994 550.956C198.163 549.831 197.918 548.077 193.506 553.828C189.095 559.58 185.607 563.961 186.638 567.266C187.761 568.076 186.897 566.041 187.528 564.985C187.79 562.674 189.161 561.401 191.232 558.165C193.303 554.93 195.07 552.526 196.881 551.336C198.226 550.452 198.994 550.956 198.994 550.956z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M197.714 549.999C197.207 550.291 196.642 550.836 196.574 551.476C196.383 551.24 196.403 550.974 196.71 550.605C197.205 550.01 197.714 549.999 197.714 549.999z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M196.257 550.802C195.833 551.203 195.409 551.864 195.492 552.503C195.251 552.317 195.209 552.054 195.422 551.624C195.765 550.93 196.257 550.802 196.257 550.802z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M194.922 552.096C194.497 552.497 194.349 553.004 194.431 553.643C194.281 553.424 194.209 553.46 194.285 552.972C194.341 552.61 194.922 552.096 194.922 552.096z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M193.94 553.309C193.515 553.711 193.367 554.217 193.45 554.856C193.299 554.637 193.228 554.673 193.303 554.185C193.36 553.823 193.94 553.309 193.94 553.309z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M192.96 554.598C192.555 555.019 192.431 555.532 192.543 556.166C192.382 555.955 192.313 555.994 192.365 555.503C192.404 555.139 192.96 554.598 192.96 554.598z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M192.076 555.671C191.721 556.134 191.655 556.658 191.838 557.276C191.655 557.083 191.59 557.13 191.587 556.637C191.585 556.27 192.076 555.671 192.076 555.671z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M191.306 556.703C190.976 557.185 190.939 557.712 191.155 558.319C190.962 558.137 190.9 558.187 190.87 557.694C190.848 557.329 191.306 556.703 191.306 556.703z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M190.478 557.782C190.176 558.282 190.168 558.81 190.419 559.403C190.215 559.232 190.156 559.286 190.099 558.796C190.056 558.432 190.478 557.782 190.478 557.782z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M189.667 558.905C189.376 559.412 189.38 559.939 189.643 560.528C189.436 560.361 189.378 560.416 189.31 559.927C189.26 559.564 189.667 558.905 189.667 558.905z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M188.947 559.995C188.656 560.501 188.66 561.029 188.923 561.617C188.716 561.451 188.658 561.506 188.59 561.017C188.539 560.654 188.947 559.995 188.947 559.995z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M188.156 561.24C187.881 561.755 187.901 562.283 188.183 562.862C187.971 562.702 187.914 562.759 187.831 562.273C187.769 561.912 188.156 561.24 188.156 561.24z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M187.431 562.591C187.23 563.14 187.325 563.659 187.684 564.193C187.452 564.065 187.404 564.129 187.253 563.659C187.142 563.31 187.431 562.591 187.431 562.591z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M186.792 563.973C186.684 564.547 186.861 565.044 187.303 565.513C187.053 565.423 187.016 565.495 186.791 565.055C186.624 564.729 186.792 563.973 186.792 563.973z"/>
+ </g>
+ <g style="fill: #780500">
+ <path d="M186.432 565.748C186.453 566.332 186.736 566.777 187.271 567.136C187.007 567.105 186.987 567.182 186.67 566.804C186.435 566.523 186.432 565.748 186.432 565.748z"/>
+ </g>
+ <g style="fill: #a2580b">
+ <path d="M199.402 549.574C198.605 548.425 198.412 546.664 193.831 552.282C189.25 557.899 185.633 562.174 186.565 565.509C187.664 566.352 186.861 564.292 187.523 563.255C187.853 560.953 189.262 559.721 191.428 556.549C193.595 553.377 195.433 551.026 197.278 549.891C198.649 549.047 199.402 549.574 199.402 549.574z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M198.151 548.579C197.636 548.856 197.055 549.384 196.968 550.022C196.784 549.78 196.811 549.515 197.129 549.155C197.642 548.575 198.151 548.579 198.151 548.579z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M196.671 549.338C196.235 549.727 195.792 550.375 195.855 551.016C195.62 550.823 195.586 550.559 195.812 550.135C196.176 549.452 196.671 549.338 196.671 549.338z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M195.298 550.592C194.861 550.981 194.698 551.483 194.761 552.124C194.618 551.9 194.545 551.934 194.635 551.449C194.702 551.089 195.298 550.592 195.298 550.592z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M194.28 551.776C193.844 552.164 193.68 552.666 193.744 553.307C193.6 553.083 193.527 553.117 193.618 552.632C193.685 552.272 194.28 551.776 194.28 551.776z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M193.262 553.035C192.844 553.443 192.705 553.952 192.799 554.59C192.644 554.373 192.574 554.411 192.641 553.922C192.691 553.559 193.262 553.035 193.262 553.035z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M192.347 554.081C191.978 554.533 191.897 555.055 192.061 555.678C191.883 555.48 191.817 555.525 191.829 555.032C191.838 554.665 192.347 554.081 192.347 554.081z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M191.546 555.09C191.202 555.562 191.149 556.087 191.347 556.7C191.159 556.512 191.096 556.561 191.081 556.067C191.07 555.701 191.546 555.09 191.546 555.09z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M190.686 556.143C190.369 556.634 190.346 557.161 190.579 557.762C190.38 557.585 190.32 557.637 190.277 557.145C190.245 556.78 190.686 556.143 190.686 556.143z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M189.842 557.242C189.536 557.739 189.525 558.267 189.77 558.863C189.568 558.69 189.508 558.744 189.455 558.253C189.415 557.889 189.842 557.242 189.842 557.242z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M189.09 558.31C188.784 558.807 188.772 559.335 189.017 559.93C188.815 559.758 188.756 559.811 188.702 559.321C188.663 558.956 189.09 558.31 189.09 558.31z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M188.262 559.53C187.972 560.038 187.977 560.565 188.241 561.153C188.033 560.987 187.975 561.042 187.906 560.553C187.856 560.19 188.262 559.53 188.262 559.53z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M187.497 560.859C187.28 561.402 187.359 561.923 187.702 562.469C187.474 562.333 187.424 562.396 187.288 561.921C187.187 561.569 187.497 560.859 187.497 560.859z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M186.817 562.221C186.692 562.792 186.855 563.294 187.283 563.776C187.035 563.679 186.996 563.749 186.784 563.303C186.627 562.973 186.817 562.221 186.817 562.221z"/>
+ </g>
+ <g style="fill: #8b2500">
+ <path d="M186.404 563.985C186.408 564.569 186.678 565.023 187.202 565.398C186.939 565.359 186.917 565.435 186.611 565.048C186.385 564.76 186.404 563.985 186.404 563.985z"/>
+ </g>
+ <g style="fill: #a35d29">
+ <path d="M197.846 548.336C199.237 548.764 201.045 548.4 196.917 554.718C192.789 561.036 189.689 565.975 186.086 566.103C184.902 565.279 187.2 565.425 188.019 564.441C190.2 563.386 190.977 561.6 193.441 558.449C195.905 555.298 197.657 552.733 198.201 550.543C198.606 548.917 197.846 548.336 197.846 548.336z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M199.227 549.264C199.115 549.861 198.775 550.605 198.169 550.893C198.467 550.999 198.721 550.888 198.978 550.459C199.392 549.767 199.227 549.264 199.227 549.264z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M198.941 550.971C198.693 551.527 198.19 552.171 197.534 552.31C197.799 552.483 198.072 552.434 198.422 552.076C198.985 551.499 198.941 550.971 198.941 550.971z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M198.13 552.73C197.883 553.286 197.436 553.606 196.78 553.745C197.047 553.818 197.036 553.9 197.49 553.657C197.826 553.477 198.13 552.73 198.13 552.73z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M197.277 554.113C197.03 554.669 196.583 554.989 195.927 555.129C196.194 555.201 196.183 555.283 196.637 555.041C196.973 554.86 197.277 554.113 197.277 554.113z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M196.349 555.521C196.076 556.064 195.615 556.363 194.952 556.471C195.216 556.556 195.201 556.638 195.665 556.417C196.01 556.253 196.349 555.521 196.349 555.521z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M195.601 556.759C195.268 557.268 194.776 557.513 194.106 557.546C194.358 557.66 194.334 557.74 194.82 557.572C195.181 557.448 195.601 556.759 195.601 556.759z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M194.852 557.872C194.492 558.362 193.988 558.58 193.317 558.577C193.563 558.705 193.535 558.783 194.029 558.642C194.396 558.537 194.852 557.872 194.852 557.872z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M194.078 559.058C193.691 559.527 193.175 559.716 192.506 559.675C192.744 559.816 192.711 559.893 193.213 559.78C193.585 559.696 194.078 559.058 194.078 559.058z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M193.254 560.242C192.857 560.702 192.337 560.88 191.669 560.825C191.904 560.971 191.87 561.047 192.373 560.945C192.747 560.87 193.254 560.242 193.254 560.242z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M192.432 561.325C192.035 561.786 191.515 561.964 190.847 561.909C191.082 562.055 191.048 562.131 191.551 562.029C191.925 561.953 192.432 561.325 192.432 561.325z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M191.482 562.532C191.071 562.98 190.545 563.142 189.879 563.065C190.109 563.219 190.073 563.293 190.579 563.208C190.955 563.144 191.482 562.532 191.482 562.532z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M190.405 563.711C189.935 564.097 189.393 564.183 188.743 564.014C188.95 564.199 188.903 564.268 189.417 564.253C189.798 564.243 190.405 563.711 190.405 563.711z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M189.268 564.815C188.741 565.119 188.192 565.116 187.579 564.844C187.753 565.059 187.696 565.12 188.205 565.189C188.583 565.241 189.268 564.815 189.268 564.815z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M187.649 565.781C187.068 565.962 186.532 565.837 185.995 565.436C186.117 565.684 186.048 565.731 186.529 565.911C186.886 566.045 187.649 565.781 187.649 565.781z"/>
+ </g>
+ <g style="fill: #a35d29">
+ <path d="M198.26 550.201C199.648 550.643 201.459 550.297 197.27 556.574C193.081 562.852 189.933 567.761 186.329 567.853C185.153 567.018 187.449 567.187 188.279 566.211C190.469 565.177 191.264 563.399 193.758 560.272C196.253 557.144 198.029 554.596 198.595 552.412C199.015 550.789 198.26 550.201 198.26 550.201z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M199.633 551.143C199.515 551.739 199.168 552.479 198.559 552.761C198.856 552.87 199.111 552.762 199.372 552.335C199.793 551.648 199.633 551.143 199.633 551.143z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M199.33 552.847C199.077 553.4 198.568 554.039 197.91 554.173C198.174 554.347 198.447 554.301 198.8 553.947C199.369 553.375 199.33 552.847 199.33 552.847z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M198.503 554.598C198.25 555.151 197.8 555.467 197.142 555.6C197.409 555.675 197.397 555.758 197.853 555.519C198.191 555.342 198.503 554.598 198.503 554.598z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M197.636 555.973C197.383 556.526 196.934 556.842 196.276 556.975C196.543 557.05 196.531 557.132 196.986 556.894C197.324 556.717 197.636 555.973 197.636 555.973z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M196.695 557.372C196.416 557.912 195.952 558.206 195.289 558.308C195.551 558.396 195.536 558.477 196.002 558.261C196.348 558.1 196.695 557.372 196.695 557.372z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M195.934 558.602C195.596 559.108 195.102 559.349 194.432 559.375C194.683 559.492 194.658 559.571 195.146 559.408C195.507 559.287 195.934 558.602 195.934 558.602z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M195.175 559.708C194.81 560.195 194.303 560.408 193.633 560.399C193.877 560.528 193.848 560.606 194.344 560.47C194.712 560.369 195.175 559.708 195.175 559.708z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M194.389 560.886C193.998 561.352 193.48 561.536 192.811 561.488C193.048 561.632 193.014 561.708 193.517 561.6C193.89 561.52 194.389 560.886 194.389 560.886z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M193.554 562.062C193.152 562.519 192.631 562.692 191.963 562.63C192.196 562.779 192.162 562.854 192.666 562.757C193.041 562.685 193.554 562.062 193.554 562.062z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M192.721 563.138C192.32 563.595 191.798 563.768 191.13 563.706C191.364 563.854 191.329 563.93 191.834 563.833C192.208 563.761 192.721 563.138 192.721 563.138z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M191.76 564.336C191.344 564.779 190.817 564.936 190.151 564.853C190.38 565.009 190.343 565.083 190.851 565.002C191.227 564.942 191.76 564.336 191.76 564.336z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M190.671 565.503C190.198 565.885 189.654 565.966 189.007 565.791C189.212 565.977 189.164 566.046 189.678 566.036C190.06 566.029 190.671 565.503 190.671 565.503z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M189.524 566.596C188.994 566.896 188.445 566.887 187.834 566.609C188.006 566.826 187.948 566.886 188.457 566.961C188.834 567.016 189.524 566.596 189.524 566.596z"/>
+ </g>
+ <g style="fill: #913400">
+ <path d="M187.895 567.547C187.312 567.722 186.778 567.592 186.244 567.186C186.364 567.436 186.294 567.481 186.774 567.666C187.13 567.803 187.895 567.547 187.895 567.547z"/>
+ </g>
+ <g style="fill: #b37739">
+ <path d="M197.177 549.899C197.077 549.176 197.255 549.024 197.51 549.096C198.579 549.398 199.128 550.134 195.9 555.3C191.9 561.7 188.9 566.7 185.3 566.9C184.1 566.1 186.4 566.2 187.2 565.2C189.359 564.101 190.1 562.3 192.5 559.1C194.9 555.9 196.6 553.3 197.1 551.1C197.212 550.607 197.22 550.211 197.177 549.899z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M198.1 549.8C198 550.399 197.675 551.149 197.075 551.449C197.375 551.55 197.627 551.434 197.875 551C198.275 550.3 198.1 549.8 198.1 549.8z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M197.848 551.512C197.612 552.073 197.122 552.727 196.468 552.88C196.737 553.046 197.009 552.992 197.351 552.627C197.902 552.039 197.848 551.512 197.848 551.512z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M197.073 553.287C196.837 553.848 196.397 554.177 195.743 554.33C196.012 554.397 196.003 554.479 196.451 554.227C196.784 554.041 197.073 553.287 197.073 553.287z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M196.248 554.687C196.012 555.248 195.572 555.577 194.918 555.73C195.187 555.796 195.178 555.879 195.626 555.627C195.958 555.441 196.248 554.687 196.248 554.687z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M195.349 556.113C195.086 556.662 194.631 556.97 193.971 557.092C194.236 557.171 194.223 557.253 194.683 557.023C195.024 556.852 195.349 556.113 195.349 556.113z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M194.625 557.366C194.302 557.882 193.815 558.137 193.146 558.184C193.401 558.293 193.379 558.373 193.861 558.195C194.219 558.064 194.625 557.366 194.625 557.366z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M193.899 558.494C193.549 558.991 193.049 559.22 192.378 559.23C192.627 559.353 192.6 559.432 193.091 559.281C193.456 559.168 193.899 558.494 193.899 558.494z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M193.149 559.695C192.771 560.172 192.26 560.372 191.589 560.344C191.83 560.481 191.799 560.558 192.298 560.435C192.669 560.344 193.149 559.695 193.149 559.695z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M192.349 560.896C191.961 561.364 191.445 561.553 190.776 561.511C191.014 561.652 190.981 561.729 191.483 561.617C191.855 561.534 192.349 560.896 192.349 560.896z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M191.549 561.996C191.161 562.464 190.645 562.653 189.976 562.611C190.214 562.752 190.181 562.829 190.683 562.717C191.055 562.634 191.549 561.996 191.549 561.996z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M190.623 563.222C190.221 563.678 189.699 563.85 189.031 563.786C189.265 563.935 189.23 564.011 189.735 563.915C190.109 563.843 190.623 563.222 190.623 563.222z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M189.57 564.421C189.108 564.817 188.567 564.914 187.915 564.759C188.125 564.938 188.08 565.008 188.593 564.984C188.974 564.965 189.57 564.421 189.57 564.421z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M188.456 565.548C187.935 565.863 187.386 565.871 186.767 565.611C186.946 565.823 186.89 565.885 187.4 565.944C187.779 565.988 188.456 565.548 188.456 565.548z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M186.856 566.547C186.279 566.739 185.741 566.625 185.195 566.235C185.322 566.481 185.254 566.529 185.739 566.699C186.099 566.826 186.856 566.547 186.856 566.547z"/>
+ </g>
+ <g style="fill: #ab6823">
+ <path d="M194.845 547.318C194.509 546.815 194.627 546.659 194.893 546.646C196.006 546.592 196.772 546.988 195.435 551.591C193.779 557.293 192.604 561.716 189.26 562.787C187.857 562.511 190.069 561.993 190.494 561.057C192.173 559.7 192.274 558.194 193.481 555.24C194.688 552.286 195.432 549.95 195.172 548.215C195.114 547.826 194.99 547.535 194.845 547.318z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M195.686 547.008C195.791 547.472 195.733 548.103 195.265 548.476C195.582 548.473 195.783 548.323 195.873 547.942C196.019 547.328 195.686 547.008 195.686 547.008z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M196.018 548.324C195.981 548.794 195.735 549.398 195.167 549.677C195.477 549.73 195.717 549.62 195.919 549.266C196.245 548.695 196.018 548.324 196.018 548.324z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M195.876 549.819C195.839 550.289 195.532 550.643 194.964 550.922C195.24 550.902 195.259 550.965 195.6 550.666C195.853 550.444 195.876 549.819 195.876 549.819z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M195.561 551.054C195.524 551.524 195.217 551.878 194.649 552.157C194.926 552.137 194.945 552.199 195.285 551.9C195.538 551.678 195.561 551.054 195.561 551.054z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M195.184 552.327C195.118 552.795 194.79 553.137 194.205 553.395C194.483 553.385 194.498 553.448 194.857 553.162C195.123 552.95 195.184 552.327 195.184 552.327z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M194.916 553.428C194.783 553.887 194.406 554.199 193.788 554.405C194.065 554.419 194.071 554.483 194.469 554.229C194.764 554.041 194.916 553.428 194.916 553.428z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M194.604 554.438C194.439 554.891 194.041 555.186 193.409 555.366C193.685 555.392 193.687 555.457 194.102 555.22C194.41 555.044 194.604 554.438 194.604 554.438z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M194.295 555.508C194.096 555.953 193.677 556.231 193.033 556.383C193.307 556.42 193.303 556.485 193.735 556.267C194.056 556.105 194.295 555.508 194.295 555.508z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M193.937 556.59C193.726 557.032 193.3 557.303 192.651 557.444C192.924 557.486 192.918 557.55 193.356 557.34C193.681 557.183 193.937 556.59 193.937 556.59z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M193.546 557.599C193.334 558.041 192.908 558.312 192.26 558.453C192.533 558.495 192.527 558.56 192.965 558.349C193.29 558.192 193.546 557.599 193.546 557.599z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M193.077 558.733C192.848 559.169 192.411 559.429 191.757 559.554C192.028 559.603 192.02 559.667 192.466 559.467C192.798 559.319 193.077 558.733 193.077 558.733z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M192.48 559.879C192.174 560.287 191.694 560.497 191.024 560.551C191.283 560.629 191.264 560.691 191.742 560.541C192.096 560.43 192.48 559.879 192.48 559.879z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M191.799 560.989C191.411 561.353 190.894 561.5 190.221 561.469C190.461 561.578 190.428 561.637 190.931 561.549C191.305 561.484 191.799 560.989 191.799 560.989z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M190.617 562.13C190.134 562.418 189.587 562.473 188.94 562.328C189.142 562.476 189.093 562.528 189.61 562.528C189.993 562.528 190.617 562.13 190.617 562.13z"/>
+ </g>
+ <g style="fill: #974600">
+ <path d="M198.539 547.478C199.144 547.474 199.207 547.288 199.069 547.061C198.489 546.11 197.732 545.697 194.671 549.385C190.878 553.954 187.876 557.408 188.864 560.777C189.88 561.784 189.068 559.662 189.605 558.786C189.787 556.635 190.977 555.706 192.745 553.05C194.514 550.394 196.031 548.468 197.613 547.71C197.968 547.54 198.278 547.479 198.539 547.478z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M198.324 546.608C197.881 546.781 197.391 547.183 197.344 547.78C197.17 547.514 197.181 547.265 197.446 546.977C197.873 546.512 198.324 546.608 198.324 546.608z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M197.048 547.07C196.68 547.365 196.318 547.907 196.405 548.534C196.188 548.307 196.144 548.047 196.324 547.681C196.614 547.09 197.048 547.07 197.048 547.07z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M195.89 548.027C195.522 548.321 195.401 548.774 195.488 549.401C195.35 549.16 195.287 549.18 195.344 548.73C195.386 548.397 195.89 548.027 195.89 548.027z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M195.045 548.98C194.676 549.274 194.556 549.727 194.643 550.354C194.505 550.113 194.442 550.133 194.498 549.683C194.541 549.35 195.045 548.98 195.045 548.98z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M194.202 550.006C193.851 550.323 193.753 550.787 193.867 551.416C193.719 551.18 193.658 551.203 193.694 550.746C193.721 550.406 194.202 550.006 194.202 550.006z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M193.441 550.845C193.135 551.214 193.089 551.7 193.265 552.327C193.098 552.105 193.041 552.137 193.028 551.665C193.018 551.315 193.441 550.845 193.441 550.845z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M192.779 551.67C192.497 552.061 192.476 552.556 192.681 553.18C192.505 552.966 192.451 553.001 192.414 552.525C192.387 552.171 192.779 551.67 192.779 551.67z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M192.067 552.527C191.81 552.941 191.815 553.443 192.05 554.062C191.866 553.856 191.814 553.895 191.753 553.415C191.707 553.059 192.067 552.527 192.067 552.527z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M191.372 553.43C191.124 553.852 191.14 554.357 191.386 554.973C191.198 554.771 191.148 554.811 191.077 554.331C191.024 553.974 191.372 553.43 191.372 553.43z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M190.756 554.32C190.508 554.742 190.524 555.247 190.77 555.863C190.582 555.661 190.532 555.701 190.461 555.22C190.408 554.864 190.756 554.32 190.756 554.32z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M190.08 555.343C189.847 555.777 189.877 556.285 190.14 556.897C189.948 556.7 189.899 556.742 189.815 556.261C189.752 555.903 190.08 555.343 190.08 555.343z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M189.466 556.481C189.3 556.963 189.395 557.478 189.726 558.063C189.517 557.892 189.476 557.943 189.332 557.463C189.225 557.107 189.466 556.481 189.466 556.481z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M188.929 557.666C188.845 558.192 189.014 558.703 189.417 559.242C189.192 559.105 189.161 559.165 188.952 558.699C188.796 558.353 188.929 557.666 188.929 557.666z"/>
+ </g>
+ <g style="fill: #7e0d00">
+ <path d="M188.648 559.285C188.68 559.847 188.941 560.331 189.424 560.785C189.188 560.7 189.172 560.77 188.883 560.342C188.668 560.025 188.648 559.285 188.648 559.285z"/>
+ </g>
+ <g style="fill: #ab6823">
+ <path d="M194.845 545.518C194.509 545.015 194.627 544.859 194.893 544.846C196.006 544.792 196.772 545.188 195.435 549.791C193.779 555.493 192.604 559.916 189.26 560.987C187.857 560.711 190.069 560.193 190.494 559.257C192.173 557.9 192.274 556.394 193.481 553.44C194.688 550.486 195.432 548.15 195.172 546.414C195.114 546.026 194.99 545.735 194.845 545.518z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M195.686 545.208C195.791 545.672 195.733 546.303 195.265 546.677C195.582 546.673 195.783 546.523 195.873 546.142C196.019 545.528 195.686 545.208 195.686 545.208z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M196.018 546.524C195.981 546.994 195.735 547.598 195.167 547.877C195.477 547.93 195.717 547.82 195.919 547.466C196.245 546.895 196.018 546.524 196.018 546.524z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M195.876 548.019C195.839 548.489 195.532 548.843 194.964 549.122C195.24 549.102 195.259 549.165 195.6 548.866C195.853 548.644 195.876 548.019 195.876 548.019z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M195.561 549.254C195.524 549.724 195.217 550.077 194.649 550.357C194.926 550.337 194.945 550.399 195.285 550.1C195.538 549.878 195.561 549.254 195.561 549.254z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M195.184 550.527C195.118 550.995 194.79 551.337 194.205 551.595C194.483 551.585 194.498 551.648 194.857 551.362C195.123 551.15 195.184 550.527 195.184 550.527z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M194.916 551.628C194.783 552.087 194.406 552.399 193.788 552.605C194.065 552.619 194.071 552.683 194.469 552.429C194.764 552.241 194.916 551.628 194.916 551.628z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M194.604 552.638C194.439 553.091 194.041 553.386 193.409 553.567C193.685 553.592 193.687 553.657 194.102 553.42C194.41 553.244 194.604 552.638 194.604 552.638z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M194.295 553.708C194.096 554.153 193.677 554.431 193.033 554.583C193.307 554.62 193.303 554.685 193.735 554.467C194.056 554.305 194.295 553.708 194.295 553.708z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M193.937 554.79C193.726 555.232 193.3 555.503 192.651 555.644C192.924 555.686 192.918 555.75 193.356 555.54C193.681 555.383 193.937 554.79 193.937 554.79z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M193.546 555.799C193.334 556.241 192.908 556.512 192.26 556.653C192.533 556.695 192.527 556.76 192.965 556.549C193.29 556.392 193.546 555.799 193.546 555.799z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M193.077 556.933C192.848 557.369 192.411 557.629 191.757 557.754C192.028 557.803 192.02 557.867 192.466 557.667C192.798 557.519 193.077 556.933 193.077 556.933z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M192.48 558.079C192.174 558.487 191.694 558.697 191.024 558.751C191.283 558.829 191.264 558.891 191.742 558.741C192.096 558.63 192.48 558.079 192.48 558.079z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M191.799 559.189C191.411 559.553 190.894 559.7 190.221 559.669C190.461 559.778 190.428 559.837 190.931 559.749C191.305 559.684 191.799 559.189 191.799 559.189z"/>
+ </g>
+ <g style="fill: #973a00">
+ <path d="M190.617 560.33C190.134 560.618 189.587 560.673 188.94 560.528C189.142 560.676 189.093 560.728 189.61 560.728C189.993 560.728 190.617 560.33 190.617 560.33z"/>
+ </g>
+ <g style="fill: #b37739">
+ <path d="M198.1 548.899C199.5 549.3 201.3 548.899 197.3 555.3C193.3 561.7 190.3 566.7 186.7 566.9C185.5 566.1 187.8 566.2 188.6 565.2C190.759 564.101 191.5 562.3 193.9 559.1C196.3 555.9 198 553.3 198.5 551.1C198.871 549.465 198.1 548.899 198.1 548.899z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M199.5 549.8C199.4 550.399 199.075 551.149 198.475 551.449C198.775 551.55 199.027 551.434 199.275 551C199.675 550.3 199.5 549.8 199.5 549.8z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M199.248 551.512C199.012 552.073 198.522 552.727 197.868 552.88C198.137 553.046 198.409 552.992 198.751 552.627C199.302 552.039 199.248 551.512 199.248 551.512z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M198.473 553.287C198.237 553.848 197.797 554.177 197.144 554.33C197.412 554.397 197.403 554.479 197.851 554.227C198.183 554.041 198.473 553.287 198.473 553.287z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M197.648 554.687C197.412 555.248 196.972 555.577 196.318 555.73C196.587 555.796 196.578 555.879 197.026 555.627C197.358 555.441 197.648 554.687 197.648 554.687z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M196.749 556.113C196.486 556.662 196.031 556.97 195.371 557.092C195.636 557.171 195.623 557.253 196.083 557.023C196.424 556.852 196.749 556.113 196.749 556.113z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M196.025 557.366C195.702 557.882 195.216 558.137 194.546 558.184C194.801 558.293 194.779 558.373 195.261 558.195C195.619 558.064 196.025 557.366 196.025 557.366z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M195.299 558.494C194.949 558.991 194.449 559.22 193.778 559.23C194.026 559.353 194 559.432 194.491 559.281C194.856 559.168 195.299 558.494 195.299 558.494z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M194.549 559.695C194.171 560.172 193.659 560.372 192.989 560.344C193.23 560.481 193.199 560.558 193.698 560.435C194.069 560.344 194.549 559.695 194.549 559.695z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M193.749 560.896C193.361 561.364 192.845 561.553 192.176 561.511C192.414 561.652 192.381 561.729 192.882 561.617C193.255 561.534 193.749 560.896 193.749 560.896z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M192.949 561.996C192.561 562.464 192.045 562.653 191.375 562.611C191.613 562.752 191.581 562.829 192.082 562.717C192.455 562.634 192.949 561.996 192.949 561.996z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M192.023 563.222C191.621 563.678 191.099 563.85 190.431 563.786C190.665 563.935 190.63 564.011 191.135 563.915C191.509 563.843 192.023 563.222 192.023 563.222z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M190.97 564.421C190.508 564.817 189.967 564.914 189.315 564.759C189.525 564.938 189.48 565.008 189.993 564.984C190.374 564.965 190.97 564.421 190.97 564.421z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M189.856 565.548C189.335 565.863 188.786 565.871 188.167 565.611C188.346 565.823 188.29 565.885 188.8 565.944C189.179 565.988 189.856 565.548 189.856 565.548z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M188.256 566.547C187.679 566.739 187.141 566.625 186.596 566.235C186.722 566.481 186.654 566.529 187.139 566.699C187.499 566.826 188.256 566.547 188.256 566.547z"/>
+ </g>
+ <g style="fill: #b37739">
+ <path d="M199.1 549.899C200.5 550.3 202.3 549.899 198.3 556.3C194.3 562.7 191.3 567.7 187.7 567.9C186.5 567.1 188.8 567.2 189.6 566.2C191.759 565.101 192.5 563.3 194.9 560.1C197.3 556.9 199 554.3 199.5 552.1C199.872 550.465 199.1 549.899 199.1 549.899z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M200.5 550.8C200.4 551.399 200.075 552.149 199.475 552.449C199.775 552.55 200.027 552.434 200.275 552C200.675 551.3 200.5 550.8 200.5 550.8z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M200.248 552.512C200.012 553.073 199.522 553.727 198.868 553.88C199.137 554.046 199.409 553.992 199.751 553.627C200.302 553.039 200.248 552.512 200.248 552.512z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M199.473 554.287C199.237 554.848 198.797 555.177 198.144 555.33C198.412 555.397 198.403 555.479 198.851 555.227C199.183 555.041 199.473 554.287 199.473 554.287z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M198.648 555.687C198.412 556.248 197.972 556.577 197.318 556.73C197.587 556.796 197.578 556.879 198.026 556.627C198.358 556.441 198.648 555.687 198.648 555.687z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M197.749 557.113C197.486 557.662 197.031 557.97 196.371 558.092C196.636 558.171 196.623 558.253 197.083 558.023C197.424 557.852 197.749 557.113 197.749 557.113z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M197.025 558.366C196.702 558.882 196.216 559.137 195.546 559.184C195.801 559.293 195.779 559.373 196.261 559.195C196.619 559.064 197.025 558.366 197.025 558.366z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M196.299 559.494C195.949 559.991 195.449 560.22 194.778 560.23C195.026 560.353 195 560.432 195.491 560.281C195.856 560.168 196.299 559.494 196.299 559.494z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M195.549 560.695C195.171 561.172 194.659 561.372 193.989 561.344C194.23 561.481 194.199 561.558 194.698 561.435C195.069 561.344 195.549 560.695 195.549 560.695z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M194.749 561.896C194.361 562.364 193.845 562.553 193.175 562.511C193.414 562.652 193.381 562.729 193.882 562.617C194.255 562.534 194.749 561.896 194.749 561.896z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M193.949 562.996C193.561 563.464 193.045 563.653 192.376 563.611C192.613 563.752 192.581 563.829 193.082 563.717C193.455 563.634 193.949 562.996 193.949 562.996z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M193.023 564.222C192.621 564.678 192.099 564.85 191.431 564.787C191.665 564.935 191.63 565.011 192.135 564.915C192.509 564.843 193.023 564.222 193.023 564.222z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M191.97 565.421C191.508 565.817 190.967 565.914 190.315 565.759C190.525 565.938 190.48 566.008 190.993 565.984C191.374 565.965 191.97 565.421 191.97 565.421z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M190.856 566.548C190.335 566.863 189.786 566.871 189.167 566.611C189.346 566.823 189.29 566.885 189.8 566.944C190.179 566.988 190.856 566.548 190.856 566.548z"/>
+ </g>
+ <g style="fill: #a14e05">
+ <path d="M189.256 567.547C188.679 567.739 188.141 567.625 187.596 567.235C187.722 567.481 187.654 567.529 188.139 567.699C188.499 567.826 189.256 567.547 189.256 567.547z"/>
+ </g>
+ <g style="fill: #d6c6c6">
+ <path d="M197.85 551C196.85 550.199 198 545.949 197.4 546C196.8 546.05 196.7 549.649 194.85 551.75C195.25 550.35 195.6 547.899 193.8 548.899C192 549.899 185.9 555.65 184.7 557.25C184.5 554.85 187.25 551 189.85 548.399C188.05 549.199 184.1 551.55 183.1 553.75C185.15 547.949 192.8 545.049 192.65 544.749C192.5 544.449 186.55 546.8 185.3 546.05C186.5 546.25 192.35 542.049 194.75 541.649C193.55 541.449 190.15 541.499 190.15 541.499C192.15 541.099 197 534.449 196.2 534.449C195.4 534.449 191.317 537.099 191.1 537.149C192.7 532.549 198.097 527.975 199.1 527.199C197.5 527.399 192.6 531.849 192 532.249C193.2 528.149 198.5 524.449 198.5 524.449C198.5 524.449 196.15 524.499 194.55 525.899C194.95 524.099 199.4 519.249 199.4 519.249C199.4 519.249 197.2 520.249 196.45 520.849C197.15 518.599 202.3 515.049 202.3 515.049C202.3 515.049 199.75 515.049 198.75 515.849C199.85 512.749 203.95 510.199 202.75 510.399C201.55 510.599 199.1 512.249 199.1 512.249C201.2 510.099 203.7 508.449 202.9 508.449C202.1 508.449 200.8 509.049 199.6 509.449C201.35 508.049 204.957 506.66 206.079 506.494C205.619 507.94 204.96 509.94 204.3 511.699C203.1 514.899 202.3 525.899 202.5 528.099C202.7 530.299 201.7 541.699 199.5 544.1C199.5 545.5 199.9 547.899 199.9 549.3C198.5 553.1 197.85 551 197.85 551z"/>
+ </g>
+ <g style="fill: #e1ddd8">
+ <path d="M201.2 521.099C200.6 521.899 198.2 524.099 195.8 524.599C198.4 522.999 201.2 521.099 201.2 521.099z"/>
+ </g>
+ <g style="fill: #e1ddd8">
+ <path d="M200.3 530.399C199.1 532.499 196.7 537.599 194.2 538.999C197.5 534.399 200.3 530.399 200.3 530.399z"/>
+ </g>
+ <g style="fill: #e1ddd8">
+ <path d="M196.3 530.599C195.3 531.899 193.2 534.699 192.9 535.699C192.9 533.099 196.3 530.599 196.3 530.599z"/>
+ </g>
+ <g style="fill: #e1ddd8">
+ <path d="M200.2 518.799C199.7 519.799 197.5 522.999 196.3 523.899C197.7 521.599 200.2 518.799 200.2 518.799z"/>
+ </g>
+ <g style="fill: #502600">
+ <path d="M235.05 498.599C234.358 498.302 233.25 499.124 233.7 499.724C234.15 500.324 235.35 500.999 236.325 500.399C236.775 499.874 235.575 498.824 235.05 498.599z"/>
+ </g>
+ <g style="fill: #4b2000">
+ <path d="M235.038 498.699C234.345 498.402 233.35 499.124 233.8 499.724C234.25 500.324 235.338 500.874 236.213 500.361C236.663 499.837 235.563 498.924 235.038 498.699z"/>
+ </g>
+ <g style="fill: #471a00">
+ <path d="M235.025 498.799C234.332 498.502 233.45 499.124 233.9 499.724C234.35 500.324 235.325 500.749 236.1 500.324C236.55 499.799 235.55 499.024 235.025 498.799z"/>
+ </g>
+ <g style="fill: #421400">
+ <path d="M235.013 498.899C234.32 498.602 233.55 499.124 234 499.724C234.45 500.324 235.313 500.624 235.988 500.286C236.438 499.762 235.538 499.124 235.013 498.899z"/>
+ </g>
+ <g style="fill: #3d0e00">
+ <path d="M235 498.999C234.308 498.702 233.65 499.124 234.1 499.724C234.55 500.324 235.3 500.499 235.875 500.249C236.325 499.724 235.525 499.224 235 498.999z"/>
+ </g>
+ <g style="fill: #380800">
+ <path d="M234.988 499.099C234.295 498.802 233.75 499.124 234.2 499.724C234.65 500.324 235.288 500.374 235.763 500.212C236.213 499.687 235.513 499.324 234.988 499.099z"/>
+ </g>
+ <g style="fill: #340200">
+ <path d="M234.975 499.199C234.283 498.902 233.85 499.124 234.3 499.724C234.75 500.324 235.275 500.249 235.65 500.174C236.1 499.649 235.5 499.424 234.975 499.199z"/>
+ </g>
+ <g style="fill: #cabfb1">
+ <path d="M237.375 497.549C237.975 497.774 239.925 498.899 240.075 499.349C240.225 499.799 240.375 500.924 240.075 502.349C239.872 503.314 239.55 501.524 238.875 501.149C238.875 500.549 238.275 500.549 238.425 499.799C238.575 499.049 237.375 497.549 237.375 497.549z"/>
+ </g>
+ <g style="fill: #d3cbc1">
+ <path d="M219.9 497.474C221.25 497.324 230.25 496.874 230.7 497.249C231.15 497.624 229.575 498.974 227.925 499.274C226.275 499.574 224.625 498.749 223.35 498.674C220.125 498.824 219.9 497.474 219.9 497.474z"/>
+ </g>
+ <g style="fill: #cdc5bb">
+ <path d="M214.538 498.449C214.219 498.43 213.431 498.411 212.831 499.349C212.7 499.593 212.981 499.405 213.075 499.236C213.169 499.068 213.619 498.637 214.388 498.58C215.156 498.524 214.538 498.449 214.538 498.449z"/>
+ </g>
+ <g style="fill: #bbac9a">
+ <path d="M232.05 500.249C232.1 500.799 233.2 503.099 235.75 503.049C234.95 503.549 233.15 502.999 232.85 502.599C231.9 501.649 232.05 500.249 232.05 500.249z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M216.6 535.199C216.295 539.923 220.5 543.299 219 545.399C217.5 547.5 217.2 554.7 219 553.199C220.8 551.699 222 551.699 223.5 547.8C225.3 546 220.2 536.099 216.6 535.199z"/>
+ </g>
+ <g style="fill: #d9d1c8">
+ <path d="M216.9 535.616C216.795 540.173 220.793 543.315 219.35 545.449C217.95 547.5 217.65 553.75 219.15 552.733C220.95 550.933 221.835 551.224 223.25 547.583C224.933 545.649 220.2 536.516 216.9 535.616z"/>
+ </g>
+ <g style="fill: #d2c9be">
+ <path d="M217.2 536.033C217.295 540.423 221.085 543.33 219.7 545.5C218.4 547.5 218.1 552.8 219.3 552.266C221.1 550.166 221.67 550.748 223 547.366C224.567 545.299 220.2 536.933 217.2 536.033z"/>
+ </g>
+ <g style="fill: #cbc0b3">
+ <path d="M217.5 536.449C217.795 540.673 221.377 543.345 220.05 545.55C218.85 547.5 218.55 551.85 219.45 551.8C221.25 549.399 221.504 550.272 222.75 547.149C224.2 544.949 220.2 537.349 217.5 536.449z"/>
+ </g>
+ <g style="fill: #c4b8a8">
+ <path d="M217.8 536.866C218.295 540.923 221.67 543.361 220.4 545.6C219.3 547.5 219 550.899 219.6 551.333C221.4 548.633 221.339 549.796 222.5 546.933C223.834 544.599 220.2 537.766 217.8 536.866z"/>
+ </g>
+ <g style="fill: #bdb09e">
+ <path d="M218.1 537.283C218.795 541.173 221.962 543.376 220.75 545.649C219.75 547.5 219.45 549.949 219.75 550.866C221.55 547.866 221.174 549.32 222.25 546.716C223.467 544.25 220.2 538.183 218.1 537.283z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M218.4 537.699C219.295 541.423 222.254 543.391 221.1 545.699C220.2 547.5 219.9 549 219.9 550.399C221.7 547.1 221.008 548.844 222 546.5C223.1 543.899 220.2 538.599 218.4 537.699z"/>
+ </g>
+ <g style="fill: #c5b9aa">
+ <path d="M223.8 497.599C225.1 497.499 229.65 497.199 229.85 497.449C230.05 497.699 228.75 498.799 227.65 498.799C226.55 498.799 224.7 498.399 223.55 498.299C222.4 498.199 219.85 498.099 220.85 497.749C221.85 497.399 223.8 497.599 223.8 497.599z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M224.4 497.799C225.827 497.421 228.55 497.549 228.85 497.749C229.15 497.949 228.3 498.399 227.5 498.349C226.7 498.299 224.05 498.449 224.4 497.799z"/>
+ </g>
+ <g style="fill: #e1ddd8">
+ <path d="M175.3 661.301C173.3 661.501 171.1 666.301 171.5 669.301C171.9 672.301 170.1 675.701 168.9 675.501C169.5 674.301 168.1 673.301 168.3 673.301C167.7 675.501 163.5 677.901 160.1 679.101C162.5 678.701 165.3 674.501 165.3 672.701C164.7 673.701 161.3 676.301 158.3 676.701C160.5 676.301 162.7 672.101 162.7 672.101C162.7 672.101 155.299 676.301 152.299 675.901C155.899 675.501 159.3 670.701 159.3 670.701C159.3 670.701 156.3 672.501 153.899 672.701C156.3 672.301 158.7 669.301 158.7 669.301C158.7 669.301 156.5 670.701 153.7 670.101C156.7 669.901 162.7 664.901 162.1 665.501C161.5 666.101 157.899 666.901 155.5 666.301C157.5 666.301 163.9 663.901 162.3 663.301C160.7 662.701 159.264 662.718 158.3 662.901C155.1 664.501 151.299 663.701 149.899 662.501C151.1 663.301 154.899 663.301 156.899 662.501C154.299 662.701 151.7 661.901 149.899 660.501C157.5 664.301 165.3 656.101 163.9 656.301C162.5 656.501 160.7 654.501 161.9 650.5C164.7 655.501 170.3 643.5 169.5 640.7C169.5 640.7 173.4 646.2 174.3 648C175.2 649.801 175.65 654.001 174.6 656.101C174.6 656.701 175.3 661.301 175.3 661.301z"/>
+ </g>
+ <g style="fill: #d6c6c6">
+ <path d="M170.75 667.201C170.796 670.227 170.7 673.701 169.65 673.851C169.8 672.501 168.4 670.751 168.6 670.751C168 672.951 167.4 674.751 164.675 676.026C166.325 674.651 166.8 671.801 166.8 670.001C166.2 671.001 164 674.651 161 675.051C163.2 674.651 165.775 668.726 165.775 668.726C165.775 668.726 161.375 672.701 157.925 673.501C161.375 671.676 162.825 668.526 162.825 668.526C162.825 668.526 162 668.976 159.599 669.176C162 668.776 166.45 663.776 165.85 664.376C165.25 664.976 164.725 665.176 162.325 664.576C164.325 664.576 166.825 662.176 166.125 661.876C163.654 662.553 159.055 662.378 158.694 662.061C162.757 662.194 164.012 661.186 164.85 660.851C162.25 661.051 160.96 660.799 160.62 660.455C166.857 659.045 168.776 654.532 167.95 654.651C166.55 654.851 161.3 656.001 162.5 652C165.3 657.001 170.406 641.978 171.445 643.504C172.562 645.143 173.834 647.068 174.3 648C175.2 649.801 175.65 654.001 174.6 656.101C174.6 656.701 170.65 660.601 170.75 667.201z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M170.757 668.776C170.761 668.25 170.757 667.719 170.75 667.201C170.65 660.601 174.6 656.701 174.6 656.101C175.65 654.001 175.2 649.801 174.3 648C173.975 647.351 173.26 646.22 172.478 645.04C172.138 644.525 169.743 646.654 169.277 648.376C168.68 650.578 167.474 653.172 165.075 653.551C169.425 653.326 171.45 650.101 171.6 648.075C172.05 650.926 170.625 653.101 169.725 653.626C171.3 652.876 173.1 651.976 172.95 649.5C174.225 654.601 165.675 660.226 163.425 660.301C170.7 659.701 172.95 654.451 173.025 655.351C172.35 656.626 168.6 661.126 164.925 661.576C169.275 661.801 171.15 659.626 172.05 658.726C170.775 661.426 166.725 662.176 164.925 664.276C165.987 663.611 168.6 662.926 168.825 663.301C169.05 663.676 165.525 667.426 163.275 667.801C166.125 667.651 168.9 666.151 169.425 665.026C168.675 667.276 165.975 668.701 165.15 671.251C166.904 668.958 168.75 667.276 169.35 667.276C168.15 668.551 167.55 670.201 167.325 671.176C168.45 669.301 169.425 667.726 170.1 667.576C170.775 667.426 170.025 670.726 169.8 671.626C170.55 670.726 170.757 668.776 170.757 668.776z"/>
+ </g>
+ <g style="fill: #e1ddd8">
+ <path d="M171.825 653.326C170.925 654.826 168.45 658.126 165.6 658.876C169.275 656.851 171.825 653.326 171.825 653.326z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M166.725 655.801C165.45 657.676 163.425 659.326 161.25 659.926C163.575 658.801 166.725 655.801 166.725 655.801z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M171.375 660.751C169.8 661.276 167.85 662.626 166.65 663.301C168.9 662.551 171.375 660.751 171.375 660.751z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M174.375 659.551C172.95 660.901 171.525 664.501 171.3 667.351C171.075 666.076 171.825 662.401 172.2 661.951C171.9 661.351 171.3 663.751 171.075 664.501C170.85 665.251 170.925 660.901 173.55 659.176C172.65 660.226 172.425 661.351 172.425 661.351L174.375 659.551z"/>
+ </g>
+ <g style="fill: #d6c6c6">
+ <path d="M171.6 646.575C170.325 647.476 170.325 651.226 168.525 651.976C170.025 651.751 170.775 649.5 170.85 648.825C170.925 648.15 172.275 646.275 172.275 646.275L171.6 646.575z"/>
+ </g>
+ <g style="fill: #d6c6c6">
+ <path d="M173.625 655.801C172.425 657.901 171.15 660.226 168 660.826C171.075 659.851 173.625 655.801 173.625 655.801z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M166.95 667.576C164.625 668.626 163.05 671.101 161.55 671.626C164.4 668.101 166.95 667.576 166.95 667.576z"/>
+ </g>
+ <g style="fill: #e1ddd8">
+ <path d="M167.85 671.701C167.625 673.051 167.025 674.476 165.6 675.226C167.175 673.501 167.85 671.701 167.85 671.701z"/>
+ </g>
+ <g style="fill: #d6c6c6">
+ <path d="M163.35 665.551C162.675 666.226 158.925 669.301 156.974 669.676C158.774 669.751 162.75 666.976 163.425 665.926C164.1 664.876 163.35 665.551 163.35 665.551z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M161.475 669.451C160.95 670.501 160.05 672.376 157.274 673.651C159.675 672.076 161.475 669.451 161.475 669.451z"/>
+ </g>
+ <g style="fill: #e1ddd8">
+ <path d="M167.775 663.826C167.025 665.026 165.9 666.526 163.125 667.501C165.825 666.076 167.775 663.826 167.775 663.826z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M161.925 661.276C159.675 661.501 157.2 662.476 154.424 661.876C156.825 661.726 161.925 661.276 161.925 661.276z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M204.578 540.978C202.29 542.453 200.493 544.162 199.65 545.199L198.7 549.1C198.7 549.1 199.036 548.528 199.53 547.757L200.25 544.8C201.018 543.855 202.577 542.353 204.578 540.978z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M232.5 558.9C232.5 551.3 231.1 548.3 228.3 546.1C227.081 545.827 224.3 544.699 222.9 543.099C221.897 541.953 218.5 539.099 212.7 539.899C208.208 540.519 205.516 541.739 203.88 542.908C205.551 541.869 208.119 540.849 212.1 540.299C217.9 539.499 221.297 542.353 222.3 543.499C223.7 545.1 226.481 546.227 227.7 546.5C230.5 548.699 231.9 551.699 231.9 559.3C231.7 569.5 219.1 587.9 219.1 587.9C219.1 587.9 221.351 589.343 222.7 589.3C222.844 589.166 222.983 589.03 223.124 588.894C221.764 588.82 219.7 587.5 219.7 587.5C219.7 587.5 232.3 569.1 232.5 558.9z"/>
+ </g>
+ <g style="fill: #410000">
+ <path d="M232.2 548.699C231.3 544.649 233.9 545.5 233.9 545.5C233.3 544.899 234.5 544.1 234.5 544.1C234.5 544.1 231.3 543.099 230.1 543.099L229.2 543.449C228.15 541.199 223.65 541.199 223.65 541.199C223.65 541.199 222 539.099 215.7 538.049C209.25 536.399 202.2 542.399 200.25 544.8L199.3 548.699C199.3 548.699 201.3 545.3 202.7 543.899C204.1 542.499 206.9 540.699 212.7 539.899C218.5 539.099 221.897 541.953 222.9 543.099C224.3 544.699 227.081 545.827 228.3 546.1C231.1 548.3 232.5 551.3 232.5 558.9C232.3 569.1 219.7 587.5 219.7 587.5C219.7 587.5 221.951 588.943 223.3 588.9C238.7 574.5 239.1 551.35 232.2 548.699z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M227.427 545.129C229.514 546.173 231.205 546.374 231.205 545.579C231.205 544.784 229.514 543.294 227.427 542.251C225.341 541.208 223.65 541.006 223.65 541.801C223.65 542.596 225.341 544.086 227.427 545.129z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M225.205 543.743C225.929 543.378 227.927 543.229 227.927 543.229C227.927 543.229 228.697 545.701 229.233 545.858C230.408 546.201 231.205 546.125 231.205 545.579C231.205 544.784 229.514 543.294 227.427 542.251C225.341 541.208 223.65 541.006 223.65 541.801C223.65 542.28 224.262 543.01 225.205 543.743z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M224.051 542.649C223.773 540.89 227.927 543.229 227.927 543.229C227.927 543.229 231.06 545.014 230.806 546.024C231.062 545.958 231.205 545.811 231.205 545.579C231.205 544.784 229.514 543.294 227.427 542.251C225.341 541.208 223.65 541.006 223.65 541.801C223.65 542.034 223.794 542.326 224.051 542.649z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M227.6 544.581C229.24 545.401 230.57 545.559 230.57 544.934C230.57 544.31 229.24 543.138 227.6 542.318C225.96 541.498 224.63 541.34 224.63 541.965C224.63 542.589 225.96 543.761 227.6 544.581z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M227.6 544.403C228.994 545.1 230.123 545.234 230.123 544.703C230.123 544.173 228.994 543.178 227.6 542.481C226.207 541.784 225.077 541.65 225.077 542.18C225.077 542.711 226.207 543.706 227.6 544.403z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M227.6 544.279C228.822 544.89 229.812 545.008 229.812 544.543C229.812 544.077 228.822 543.205 227.6 542.594C226.379 541.983 225.388 541.865 225.388 542.331C225.388 542.796 226.379 543.668 227.6 544.279z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M227.6 543.964C228.419 544.374 229.083 544.453 229.083 544.141C229.083 543.829 228.419 543.244 227.6 542.835C226.781 542.425 226.118 542.346 226.118 542.658C226.118 542.97 226.781 543.555 227.6 543.964z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M227.6 543.664C228.419 544.074 229.083 544.153 229.083 543.841C229.083 543.529 228.419 542.944 227.6 542.535C226.781 542.125 226.118 542.046 226.118 542.358C226.118 542.67 226.781 543.255 227.6 543.664z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M227.6 543.473C228.183 543.764 228.656 543.82 228.656 543.598C228.656 543.376 228.183 542.96 227.6 542.668C227.017 542.377 226.545 542.321 226.545 542.543C226.545 542.765 227.017 543.181 227.6 543.473z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M227.6 543.282C227.921 543.442 228.181 543.473 228.181 543.351C228.181 543.229 227.921 543 227.6 542.84C227.28 542.68 227.02 542.649 227.02 542.771C227.02 542.893 227.28 543.122 227.6 543.282z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M230.83 548.276C231.683 548.702 232.374 548.784 232.374 548.46C232.374 548.135 231.683 547.526 230.83 547.099C229.977 546.673 229.286 546.59 229.286 546.915C229.286 547.24 229.977 547.849 230.83 548.276z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M230.901 548.052C231.571 548.387 232.115 548.452 232.115 548.196C232.115 547.941 231.571 547.462 230.901 547.127C230.23 546.791 229.687 546.727 229.687 546.982C229.687 547.237 230.23 547.716 230.901 548.052z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M231.28 549.302C231.664 549.494 231.975 549.531 231.975 549.385C231.975 549.239 231.664 548.965 231.28 548.773C230.896 548.581 230.585 548.544 230.585 548.69C230.585 548.836 230.896 549.11 231.28 549.302z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M232.81 549.572C233.194 549.764 233.505 549.801 233.505 549.655C233.505 549.509 233.194 549.235 232.81 549.043C232.426 548.851 232.115 548.814 232.115 548.96C232.115 549.106 232.426 549.38 232.81 549.572z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M231.312 549.18C231.583 549.316 231.803 549.342 231.803 549.239C231.803 549.135 231.583 548.942 231.312 548.806C231.04 548.67 230.82 548.644 230.82 548.747C230.82 548.851 231.04 549.045 231.312 549.18z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M232.842 549.45C233.113 549.586 233.334 549.612 233.334 549.509C233.334 549.406 233.113 549.212 232.842 549.076C232.57 548.94 232.35 548.914 232.35 549.017C232.35 549.121 232.57 549.315 232.842 549.45z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M221.227 541.311C222.275 541.835 223.125 541.936 223.125 541.537C223.125 541.138 222.275 540.39 221.227 539.866C220.18 539.342 219.33 539.241 219.33 539.64C219.33 540.039 220.18 540.788 221.227 541.311z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M220.111 540.615C220.475 540.432 221.478 540.357 221.478 540.357C221.478 540.357 221.865 541.598 222.134 541.677C222.724 541.85 223.125 541.811 223.125 541.537C223.125 541.138 222.275 540.39 221.227 539.866C220.18 539.342 219.33 539.241 219.33 539.64C219.33 539.88 219.638 540.247 220.111 540.615z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M219.532 540.066C219.392 539.183 221.478 540.357 221.478 540.357C221.478 540.357 223.052 541.253 222.924 541.761C223.052 541.727 223.125 541.654 223.125 541.537C223.125 541.138 222.275 540.39 221.227 539.866C220.18 539.342 219.33 539.241 219.33 539.64C219.33 539.757 219.403 539.903 219.532 540.066z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M221.314 541.036C222.138 541.448 222.806 541.527 222.806 541.214C222.806 540.9 222.138 540.311 221.314 539.9C220.49 539.488 219.823 539.408 219.823 539.722C219.823 540.036 220.49 540.624 221.314 541.036z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M221.378 540.831C221.924 541.104 222.366 541.156 222.366 540.948C222.366 540.74 221.924 540.35 221.378 540.077C220.832 539.804 220.389 539.752 220.389 539.96C220.389 540.168 220.832 540.558 221.378 540.831z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M221.453 540.661C221.961 540.915 222.373 540.964 222.373 540.771C222.373 540.577 221.961 540.214 221.453 539.96C220.945 539.707 220.534 539.658 220.534 539.851C220.534 540.044 220.945 540.407 221.453 540.661z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M221.419 539.999C221.813 540.168 222.694 540.899 221.981 540.768C222.131 540.618 221.944 540.524 221.944 540.524L221.419 539.999z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M218.272 539.474C218.57 539.615 218.894 539.641 218.995 539.531C219.096 539.422 218.935 539.219 218.636 539.077C218.338 538.936 218.014 538.91 217.913 539.019C217.812 539.129 217.973 539.332 218.272 539.474z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M218.366 539.412C218.665 539.553 218.989 539.579 219.089 539.47C219.19 539.361 219.03 539.157 218.731 539.016C218.432 538.875 218.108 538.849 218.008 538.958C217.907 539.067 218.067 539.271 218.366 539.412z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M218.606 539.043C219.019 539.118 219.206 539.493 218.794 539.437C218.381 539.381 218.813 539.268 218.813 539.268L218.606 539.043z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M228.097 546.073C228.395 546.215 228.719 546.241 228.82 546.131C228.921 546.022 228.76 545.819 228.462 545.678C228.163 545.536 227.839 545.51 227.738 545.62C227.637 545.729 227.798 545.932 228.097 546.073z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M228.191 546.012C228.49 546.154 228.814 546.179 228.915 546.07C229.015 545.961 228.855 545.757 228.556 545.616C228.257 545.475 227.933 545.449 227.833 545.558C227.732 545.668 227.892 545.871 228.191 546.012z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M228.432 545.643C228.844 545.718 229.031 546.093 228.619 546.037C228.207 545.981 228.638 545.868 228.638 545.868L228.432 545.643z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M231.022 546.449C231.32 546.59 231.644 546.616 231.745 546.506C231.846 546.397 231.685 546.194 231.387 546.053C231.088 545.911 230.764 545.885 230.663 545.995C230.562 546.104 230.723 546.307 231.022 546.449z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M231.116 546.387C231.415 546.529 231.739 546.554 231.84 546.445C231.94 546.336 231.78 546.132 231.481 545.991C231.182 545.85 230.859 545.824 230.758 545.933C230.657 546.043 230.818 546.246 231.116 546.387z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M231.356 546.018C231.769 546.093 231.957 546.468 231.544 546.412C231.132 546.356 231.563 546.243 231.563 546.243L231.356 546.018z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M215.704 539.433C216.816 539.484 217.592 539.245 217.439 538.899C217.285 538.552 216.26 538.229 215.148 538.177C214.036 538.125 213.26 538.364 213.413 538.711C213.567 539.058 214.592 539.381 215.704 539.433z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M214.467 539.257C214.712 538.958 215.555 538.507 215.555 538.507C215.555 538.507 216.368 539.437 216.632 539.401C217.211 539.324 217.544 539.137 217.439 538.899C217.285 538.552 216.26 538.229 215.148 538.177C214.036 538.125 213.26 538.364 213.413 538.711C213.505 538.92 213.914 539.12 214.467 539.257z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M213.752 539.003C213.291 538.29 215.555 538.507 215.555 538.507C215.555 538.507 217.266 538.68 217.351 539.17C217.449 539.092 217.484 539 217.439 538.899C217.285 538.552 216.26 538.229 215.148 538.177C214.036 538.125 213.26 538.364 213.413 538.711C213.458 538.812 213.578 538.912 213.752 539.003z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M215.673 539.16C216.547 539.201 217.158 539.013 217.037 538.74C216.916 538.468 216.11 538.214 215.236 538.173C214.362 538.132 213.752 538.32 213.872 538.593C213.993 538.865 214.8 539.119 215.673 539.16z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M215.65 538.957C216.229 538.984 216.634 538.86 216.554 538.679C216.474 538.498 215.939 538.33 215.36 538.303C214.78 538.276 214.376 538.4 214.456 538.581C214.536 538.762 215.07 538.93 215.65 538.957z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M215.65 538.781C216.189 538.806 216.565 538.69 216.491 538.522C216.416 538.354 215.919 538.197 215.38 538.172C214.841 538.147 214.465 538.263 214.539 538.431C214.614 538.599 215.111 538.756 215.65 538.781z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M215.366 538.219C215.772 538.214 216.819 538.51 216.15 538.671C216.223 538.483 216.024 538.473 216.024 538.473L215.366 538.219z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M232.637 544.816C233.443 544.765 233.997 544.503 233.876 544.23C233.754 543.957 233.002 543.777 232.197 543.828C231.391 543.879 230.837 544.141 230.958 544.414C231.08 544.687 231.832 544.867 232.637 544.816z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M231.737 544.776C231.905 544.509 232.501 544.066 232.501 544.066C232.501 544.066 233.118 544.764 233.308 544.712C233.724 544.6 233.959 544.418 233.876 544.23C233.754 543.957 233.002 543.777 232.197 543.828C231.391 543.879 230.837 544.141 230.958 544.414C231.031 544.578 231.333 544.709 231.737 544.776z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M231.212 544.626C230.857 544.077 232.501 544.066 232.501 544.066C232.501 544.066 233.745 544.065 233.82 544.461C233.889 544.389 233.911 544.31 233.876 544.23C233.754 543.957 233.002 543.777 232.197 543.828C231.391 543.879 230.837 544.141 230.958 544.414C230.994 544.494 231.083 544.566 231.212 544.626z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M232.607 544.594C233.24 544.554 233.676 544.348 233.58 544.134C233.485 543.919 232.894 543.777 232.261 543.817C231.627 543.857 231.191 544.064 231.287 544.278C231.382 544.493 231.973 544.634 232.607 544.594z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M232.583 544.429C233.003 544.403 233.292 544.266 233.229 544.124C233.165 543.981 232.774 543.888 232.354 543.914C231.934 543.941 231.645 544.077 231.708 544.219C231.772 544.362 232.163 544.456 232.583 544.429z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M232.578 544.284C232.969 544.259 233.238 544.132 233.179 544C233.12 543.867 232.755 543.78 232.365 543.805C231.974 543.829 231.706 543.957 231.764 544.089C231.824 544.221 232.188 544.308 232.578 544.284z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M232.356 543.845C232.65 543.806 233.416 543.962 232.937 544.151C232.983 543.99 232.839 543.999 232.839 543.999L232.356 543.845z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M212.43 538.974C212.743 538.981 213.035 538.879 213.08 538.746C213.125 538.612 212.908 538.497 212.594 538.489C212.28 538.481 211.989 538.583 211.943 538.717C211.898 538.851 212.116 538.966 212.43 538.974z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M212.488 538.884C212.802 538.892 213.093 538.79 213.139 538.656C213.184 538.522 212.966 538.407 212.653 538.399C212.339 538.392 212.048 538.494 212.002 538.628C211.957 538.761 212.174 538.876 212.488 538.884z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M212.555 538.471C212.942 538.377 213.249 538.631 212.869 538.741C212.489 538.851 212.82 538.587 212.82 538.587L212.555 538.471z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M210.144 539.781C211.144 539.439 211.747 538.957 211.49 538.704C211.233 538.451 210.214 538.524 209.214 538.866C208.214 539.208 207.611 539.69 207.867 539.943C208.124 540.196 209.143 540.123 210.144 539.781z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M208.989 540.058C209.101 539.708 209.689 539.015 209.689 539.015C209.689 539.015 210.732 539.553 210.953 539.429C211.437 539.159 211.666 538.878 211.49 538.704C211.233 538.451 210.214 538.524 209.214 538.866C208.214 539.208 207.611 539.69 207.867 539.943C208.022 540.095 208.453 540.129 208.989 540.058z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M208.269 540.082C207.612 539.613 209.689 539.015 209.689 539.015C209.689 539.015 211.261 538.571 211.507 538.974C211.567 538.871 211.565 538.778 211.49 538.704C211.233 538.451 210.214 538.524 209.214 538.866C208.214 539.208 207.611 539.69 207.867 539.943C207.942 540.017 208.083 540.063 208.269 540.082z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M210.021 539.551C210.808 539.282 211.282 538.903 211.08 538.704C210.878 538.505 210.077 538.562 209.291 538.831C208.504 539.1 208.03 539.479 208.232 539.678C208.434 539.877 209.235 539.82 210.021 539.551z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M209.929 539.38C210.451 539.202 210.765 538.95 210.631 538.819C210.497 538.687 209.966 538.725 209.445 538.903C208.924 539.081 208.61 539.333 208.743 539.464C208.877 539.596 209.408 539.558 209.929 539.38z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M209.868 539.224C210.353 539.058 210.645 538.824 210.521 538.702C210.397 538.58 209.903 538.615 209.418 538.78C208.933 538.946 208.641 539.18 208.765 539.302C208.889 539.425 209.383 539.39 209.868 539.224z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M209.421 538.827C209.779 538.681 210.807 538.577 210.272 538.952C210.27 538.761 210.091 538.822 210.091 538.822L209.421 538.827z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M207.09 540.518C207.37 540.416 207.592 540.224 207.585 540.09C207.579 539.956 207.346 539.93 207.066 540.033C206.786 540.135 206.565 540.327 206.571 540.461C206.578 540.595 206.81 540.621 207.09 540.518z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M207.111 540.418C207.39 540.316 207.612 540.124 207.606 539.99C207.599 539.856 207.367 539.83 207.087 539.933C206.807 540.036 206.585 540.227 206.592 540.361C206.598 540.495 206.83 540.521 207.111 540.418z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M207.025 540.03C207.335 539.812 207.695 539.929 207.397 540.159C207.1 540.389 207.301 540.04 207.301 540.04L207.025 540.03z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M205.296 541.675C206.089 541.144 206.503 540.584 206.221 540.423C205.938 540.262 205.066 540.562 204.273 541.092C203.48 541.623 203.066 542.183 203.349 542.344C203.631 542.505 204.503 542.205 205.296 541.675z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M204.354 542.184C204.37 541.853 204.722 541.112 204.722 541.112C204.722 541.112 205.756 541.339 205.921 541.18C206.28 540.832 206.415 540.533 206.221 540.423C205.938 540.262 205.066 540.562 204.273 541.092C203.48 541.623 203.066 542.183 203.349 542.344C203.519 542.441 203.902 542.371 204.354 542.184z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M203.731 542.373C203.05 542.116 204.722 541.112 204.722 541.112C204.722 541.112 205.99 540.36 206.298 540.655C206.326 540.551 206.303 540.47 206.221 540.423C205.938 540.262 205.066 540.562 204.273 541.092C203.48 541.623 203.066 542.183 203.349 542.344C203.431 542.391 203.565 542.399 203.731 542.373z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M205.136 541.502C205.76 541.085 206.085 540.645 205.863 540.518C205.641 540.392 204.955 540.627 204.332 541.044C203.709 541.461 203.383 541.902 203.605 542.028C203.827 542.155 204.513 541.919 205.136 541.502z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M205.017 541.375C205.43 541.098 205.646 540.806 205.498 540.722C205.351 540.638 204.897 540.795 204.483 541.071C204.07 541.348 203.854 541.64 204.002 541.723C204.149 541.807 204.603 541.651 205.017 541.375z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M204.927 541.253C205.311 540.996 205.512 540.724 205.375 540.646C205.238 540.568 204.815 540.713 204.431 540.97C204.047 541.228 203.846 541.499 203.983 541.577C204.12 541.655 204.543 541.51 204.927 541.253z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M204.445 541.01C204.723 540.8 205.596 540.471 205.216 540.922C205.17 540.755 205.028 540.85 205.028 540.85L204.445 541.01z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M202.804 543.026C203.025 542.872 203.174 542.653 203.137 542.538C203.1 542.422 202.891 542.454 202.671 542.608C202.451 542.763 202.302 542.982 202.339 543.097C202.375 543.212 202.584 543.181 202.804 543.026z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M202.799 542.935C203.019 542.78 203.168 542.561 203.132 542.446C203.095 542.331 202.886 542.362 202.666 542.517C202.445 542.671 202.296 542.89 202.333 543.005C202.37 543.121 202.579 543.089 202.799 542.935z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M202.635 542.616C202.854 542.354 203.195 542.372 202.989 542.642C202.783 542.911 202.877 542.56 202.877 542.56L202.635 542.616z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M201.637 544.576C202.108 543.908 202.267 543.332 201.992 543.29C201.716 543.248 201.111 543.756 200.639 544.424C200.167 545.092 200.008 545.668 200.284 545.71C200.559 545.752 201.165 545.244 201.637 544.576z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M201.039 545.273C200.95 545.003 201.004 544.302 201.004 544.302C201.004 544.302 201.902 544.166 201.984 543.988C202.165 543.599 202.181 543.319 201.992 543.29C201.716 543.248 201.111 543.756 200.639 544.424C200.167 545.092 200.008 545.668 200.284 545.71C200.449 545.735 200.735 545.561 201.039 545.273z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M200.599 545.615C199.974 545.619 201.004 544.302 201.004 544.302C201.004 544.302 201.788 543.31 202.125 543.452C202.115 543.36 202.072 543.302 201.992 543.29C201.716 543.248 201.111 543.756 200.639 544.424C200.167 545.092 200.008 545.668 200.284 545.71C200.364 545.722 200.473 545.688 200.599 545.615z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M201.456 544.487C201.826 543.962 201.951 543.509 201.735 543.476C201.518 543.443 201.042 543.842 200.671 544.368C200.3 544.893 200.175 545.346 200.392 545.379C200.608 545.412 201.085 545.012 201.456 544.487z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M201.32 544.422C201.566 544.073 201.649 543.773 201.506 543.752C201.362 543.73 201.046 543.994 200.8 544.342C200.555 544.691 200.472 544.991 200.615 545.013C200.759 545.035 201.075 544.77 201.32 544.422z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M201.211 544.352C201.44 544.028 201.517 543.749 201.384 543.728C201.25 543.708 200.956 543.954 200.728 544.278C200.499 544.602 200.422 544.881 200.556 544.901C200.689 544.922 200.983 544.676 201.211 544.352z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M200.751 544.306C200.909 544.052 201.506 543.52 201.341 543.998C201.253 543.879 201.169 543.998 201.169 543.998L200.751 544.306z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M197.587 544.649C196.987 544.699 196.737 547.25 195.637 549.312C195.775 548.225 196.612 546.287 194.812 547.287C193.012 548.287 189.762 550.662 188.562 552.262C188.362 549.862 192.875 547.962 195.475 545.362C193.675 546.162 190.125 547.324 187.6 549.25C188.975 546.712 197.562 543.249 197.412 542.949C197.262 542.649 191.274 544.819 188.841 545.192C191.151 544.171 197.155 541.419 198.877 539.298C199.689 538.298 200.484 536.953 201.106 535.126C196.406 539.591 193.112 540.524 193.112 540.524C195.112 540.124 202.04 529.995 201.413 529.499C199.562 528.037 195.555 533.386 195.337 533.437C196.937 528.837 200.685 526.325 201.688 525.549C200.087 525.749 196.2 528.137 195.6 528.537C196.418 525.742 197.853 525.947 200.562 523.186C201.826 521.897 202.075 519.774 202.075 519.774C202.075 519.774 200.025 521.049 198.425 522.449C198.825 520.649 202.3 517.399 202.3 517.399C202.3 517.399 199.35 518.474 198.6 519.074C199.3 516.824 201.725 516.874 202.525 515.599C203.325 514.324 203.882 512.603 203.643 512.333C203.435 512.097 201.441 514.002 200.975 514.374C202.075 511.274 205.775 509.174 204.575 509.374C203.375 509.574 200.775 510.974 200.775 510.974C202.875 508.824 205.725 507.674 204.925 507.674C204.125 507.674 202.05 508.399 200.85 508.799C202.6 507.399 205.931 506.958 205.851 507.207C205.414 508.557 204.857 510.214 204.3 511.699C203.1 514.899 202.3 525.899 202.5 528.099C202.7 530.299 201.7 541.699 199.5 544.1C199.5 545.5 199.9 547.899 199.9 549.3C198.5 553.1 198.187 544.599 197.587 544.649z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M202.299 532.699C202.5 530.592 202.567 528.833 202.5 528.099C202.5 528.099 201.6 532.799 199.5 534.399C201.1 533.499 201.6 532.099 201.6 532.099L202.299 532.699z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M201.7 522.599C201.2 524.399 199.1 526.599 197.6 526.899C200.2 525.099 201.7 522.599 201.7 522.599z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M201.4 526.699C200 526.999 198.7 528.999 198.1 530.199L201.4 526.699z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M201.5 533.399C200.6 534.899 198.8 536.899 196.5 538.199C198.9 535.999 201.5 533.399 201.5 533.399z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M199.8 539.799C199 541.299 196.3 543.399 193.4 543.699C196.3 542.899 199.8 539.799 199.8 539.799z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M199.3 541.499C198.5 543.099 196.7 546.199 193.8 547.6C197.2 544.399 199.3 541.499 199.3 541.499z"/>
+ </g>
+ <g style="fill: #c8976d">
+ <path d="M197.55 578.25C199.65 579.6 220.8 587.85 225.3 585.3C226.345 586.658 230.85 590.4 232.65 591C234.45 591.6 231 599.4 229.35 600.6C229.05 600.75 228 600.75 228 600.75C228 600.75 223.2 599.4 223.2 593.85C218.85 596.25 216.824 594.356 214.2 593.7C210 592.65 204.3 591.6 194.85 586.65C198.359 585.224 197.55 578.25 197.55 578.25z"/>
+ </g>
+ <g style="fill: #3e0000">
+ <path d="M232.863 591.754C232.798 591.334 232.623 591.275 232.565 591.256C230.703 590.635 226.466 587.091 225.228 585.638C220.462 587.808 201.49 580.557 197.863 578.729C197.972 580.309 198.065 585.058 195.438 586.651C203.58 590.86 208.93 592.149 212.853 593.094L214.266 593.438C214.859 593.586 215.426 593.798 215.975 594.003C217.936 594.734 219.788 595.424 223.07 593.614L223.47 593.393L223.47 593.85C223.47 598.939 227.585 600.341 228.038 600.48C228.493 600.477 229.048 600.434 229.213 600.364C230.612 599.309 233.162 593.683 232.863 591.754z"/>
+ </g>
+ <g style="fill: #290000">
+ <path d="M219.85 586.75C219.586 586.433 220.7 584.95 221 584.8C221.3 584.65 226.4 585 227.7 584.45C228.4 584.95 226.75 586.3 226.4 586.75C226.05 587.2 220.35 587.35 219.85 586.75z"/>
+ </g>
+ <g style="fill: #340000">
+ <path d="M220.33 586.637C220.103 586.365 221.06 585.091 221.318 584.962C221.575 584.833 225.955 585.134 227.072 584.662C227.673 585.091 226.256 586.25 225.955 586.637C225.655 587.023 220.76 587.152 220.33 586.637z"/>
+ </g>
+ <g style="fill: #460000">
+ <path d="M220.618 586.584C220.411 586.337 221.283 585.177 221.517 585.059C221.752 584.942 225.741 585.216 226.758 584.786C227.305 585.177 226.014 586.233 225.741 586.584C225.467 586.937 221.009 587.054 220.618 586.584z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M223.95 591.75C224.995 593.108 229.5 596.85 231.3 597.45L231.492 597.402C231.913 596.543 232.302 595.615 232.598 594.736L232.35 594.45C230.55 593.85 226.045 590.108 225 588.75C220.65 591.215 200.738 583.586 197.522 581.857C197.397 582.916 197.138 584.032 196.641 584.946C200.328 586.83 219.67 594.175 223.95 591.75z"/>
+ </g>
+ <g style="fill: #c8976d">
+ <path d="M223.773 591.437L224.045 591.283L224.236 591.531C225.251 592.851 229.586 596.42 231.321 597.074L231.693 596.981C231.976 596.374 232.239 595.743 232.461 595.128L232.139 594.755C230.243 594.055 226.182 590.664 224.904 589.197C219.881 591.368 200.996 584.047 197.472 582.235C197.351 583.055 197.143 583.89 196.803 584.625C200.373 586.459 219.678 593.757 223.773 591.437z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M225.024 591.282L225.018 591.274L225.011 591.267C225.006 591.262 225.006 591.262 224.263 590.643L224.201 590.592L224.124 590.615L223.285 590.865L223.269 590.87L223.254 590.879C219.966 592.742 202.488 586.408 197.294 583.969L197.166 584.241C202.555 586.771 219.906 593.061 223.382 591.15L224.133 590.925L224.798 591.479C225.718 592.658 229.829 595.825 231.598 596.715L231.732 596.447C229.981 595.565 225.905 592.428 225.024 591.282z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M224.796 589.963L224.733 589.898L224.646 589.923C219.129 591.52 202.861 585.436 197.558 583.039L197.435 583.312C202.737 585.709 218.963 591.767 224.64 590.232C226.102 591.729 229.908 594.926 231.967 595.843L232.089 595.569C230.036 594.655 226.2 591.42 224.796 589.963z"/>
+ </g>
+ <g style="fill: #c8976d">
+ <path d="M211.725 583.725C210.15 585.225 209.625 587.925 209.175 592.2C208.275 592.125 207.75 591.75 207.75 591.75C207.75 591.75 207.825 589.275 208.2 587.175C208.575 585.075 210.225 583.2 210.225 583.2L211.725 583.725z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M210.483 583.406C208.968 585.3 208.2 588.208 208.2 592.05L208.5 592.05C208.5 588.278 209.246 585.433 210.717 583.594L210.483 583.406z"/>
+ </g>
+ <g style="fill: #704d21">
+ <path d="M226.5 698.701C228.3 700.501 227.7 699.701 228.1 701.501C228.7 704.501 226.104 704.376 223.1 704.501C218.3 704.701 214.7 702.901 214.9 702.301C215.1 701.701 212.9 700.501 212.7 698.701C212.7 698.701 214.9 699.901 218.5 700.101C225.5 701.701 226.5 698.701 226.5 698.701z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M226.35 699.751C228.15 701.551 227.751 703.12 226.802 703.479C225.852 703.839 224.752 703.988 223.25 704.051C221.182 704.137 219.486 703.702 218.072 703.302C216.203 702.773 215.008 700.285 216.473 700.49C217.04 700.57 217.795 700.645 218.8 700.701C225.8 702.301 226.35 699.751 226.35 699.751z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M226.5 700.651C225.413 701.086 222.9 701.851 221.85 701.701C220.8 701.551 221.4 703.501 223.2 703.501C225 703.501 226.65 703.651 226.95 702.901C227.25 702.151 227.25 700.351 226.5 700.651z"/>
+ </g>
+ <g style="fill: #c5b9aa">
+ <path d="M225.6 701.251C224.4 701.401 223.65 701.551 223.65 702.301C223.65 703.051 224.7 703.351 225.6 703.351C227.4 702.451 225.6 701.251 225.6 701.251z"/>
+ </g>
+ <g style="fill: #dad4cb">
+ <path d="M176.9 618.1C179.3 621.7 185.9 619.9 189.5 618.1C193.1 616.3 197.1 618.9 194.3 619.9C191.5 620.9 189.7 622.1 188.1 624.3C185.7 629.9 187.1 631.3 188.3 635.1C188.7 641.5 188.7 645.5 185.9 647.5C185.5 650.7 184.1 655.101 184.1 655.101C183.9 656.701 183.1 661.101 182.9 662.101C183.9 663.701 184.3 669.701 184.7 671.901C185.1 674.101 188.591 679.192 190.3 680.901C191.5 682.101 193.5 683.901 193.5 686.701C193.1 694.101 194.3 701.901 194.3 701.901C194.3 701.901 195.7 704.501 190.1 704.101C182.7 702.901 183.3 698.301 183.3 698.301C183.3 698.301 183.9 695.501 184.9 694.501C183.9 692.301 185.7 690.701 185.7 688.701C185.7 686.701 181.3 677.701 180.1 676.501C178.9 675.301 177.3 673.901 176.5 672.101C175.7 670.301 175.9 669.501 174.5 669.101C173.3 667.301 173.3 663.901 173.3 663.901C173.3 663.901 174.5 662.701 175.3 661.301C175.3 661.301 173.5 656.101 174.9 652.101C174.7 649.9 171.7 644.5 170.5 643.101L169.5 640.7C166.3 634.9 168.5 631.5 168.5 627.5C168.5 623.5 170.1 614.9 170.5 612.9C170.5 612.9 174.5 614.5 176.9 618.1z"/>
+ </g>
+ <g style="fill: #d3cbc1">
+ <path d="M186.069 702.78C182.951 700.977 183.3 698.301 183.3 698.301C183.3 698.301 183.9 695.501 184.9 694.501C183.9 692.301 185.7 690.701 185.7 688.701C185.7 686.701 181.3 677.701 180.1 676.501C178.9 675.301 177.3 673.901 176.5 672.101C175.7 670.301 175.9 669.501 174.5 669.101C173.3 667.301 173.3 663.901 173.3 663.901C173.3 663.901 174.5 662.701 175.3 661.301C175.3 661.301 173.5 656.101 174.9 652.101C174.7 649.9 171.7 644.5 170.5 643.101L169.5 640.7C166.3 634.9 168.5 631.5 168.5 627.5C168.5 623.5 170.1 614.9 170.5 612.9C170.5 612.9 171.314 613.226 172.429 613.915C172.429 613.915 170.7 618.6 172.2 621C173.7 623.4 177.6 627.9 177.6 632.7C177.6 637.5 180.9 638.1 183.6 637.2C186.3 636.3 186 640.2 185.7 642.3C185.4 644.4 183.6 645 181.5 648.301C179.4 651.601 181.2 655.801 182.1 657.001C183 658.201 183.9 660.901 181.8 663.001C179.7 665.101 181.5 666.901 181.5 668.101C181.5 669.301 177.9 670.201 181.2 674.401C184.5 678.601 190.2 684.301 190.5 686.701C190.8 689.101 190.5 693.001 190.5 694.201C190.5 695.401 188.7 693.601 186.9 693.001C185.1 692.401 188.7 696.001 189.9 696.601C191.7 699.301 186.069 702.78 186.069 702.78z"/>
+ </g>
+ <g style="fill: #c3b6a5">
+ <path d="M183.676 696.925C183.952 696.068 184.369 695.031 184.9 694.501C183.9 692.301 185.7 690.701 185.7 688.701C185.7 686.701 181.3 677.701 180.1 676.501C178.9 675.301 177.3 673.901 176.5 672.101C175.7 670.301 175.9 669.501 174.5 669.101C173.3 667.301 173.3 663.901 173.3 663.901C173.3 663.901 174.5 662.701 175.3 661.301C175.3 661.301 173.5 656.101 174.9 652.101C174.7 649.9 171.7 644.5 170.5 643.101L169.5 640.7C166.3 634.9 168.5 631.5 168.5 627.5C168.5 624.71 169.278 619.681 169.885 616.216C169.885 616.216 170.4 620.4 171.6 622.8C172.8 625.2 175.8 629.1 174.9 631.8C174 634.5 177 638.7 180.3 640.5C183.6 642.3 183.3 647.101 178.5 643.801C173.7 640.5 176.7 645.601 177.3 648C177.9 650.4 177 657.001 179.1 658.201C181.2 659.401 182.7 660.601 179.7 662.101C176.7 663.601 175.8 665.101 175.8 666.901C175.8 668.701 179.1 672.901 180.9 675.601C182.7 678.301 187.5 681.901 188.1 684.601C187.2 683.401 184.5 681.601 184.5 681.601C184.5 681.601 188.4 688.201 188.4 690.601C188.4 693.001 185.7 690.301 186 694.801C186.3 699.301 183.676 696.925 183.676 696.925z"/>
+ </g>
+ <g style="fill: #a9967e">
+ <path d="M185.7 688.701C185.7 686.701 181.3 677.701 180.1 676.501C178.9 675.301 177.3 673.901 176.5 672.101C175.7 670.301 175.9 669.501 174.5 669.101C173.3 667.301 173.3 663.901 173.3 663.901C173.3 663.901 174.5 662.701 175.3 661.301C175.3 661.301 173.5 656.101 174.9 652.101C174.7 649.9 171.7 644.5 170.5 643.101L169.5 640.7C166.3 634.9 168.5 631.5 168.5 627.5C168.5 626.105 168.694 624.15 168.965 622.111C168.965 622.111 170.1 622.2 170.4 626.4C170.7 630.6 171 632.1 169.5 634.5C168 636.9 170.1 640.8 171.9 641.4C173.7 642 177 651 176.1 656.101C175.2 661.201 173.7 667.801 175.2 669.601C176.7 671.401 180.6 675.001 181.5 677.401C182.4 679.801 186 684.001 186.3 686.401C186.6 688.801 185.7 688.701 185.7 688.701z"/>
+ </g>
+ <g style="fill: #916e67">
+ <path d="M173.3 663.901C173.3 663.901 174.5 662.701 175.3 661.301C175.3 661.301 173.5 656.101 174.9 652.101C174.9 652.101 176.7 654.601 177 657.601C177.3 660.601 178.8 660.001 180 660.601C181.2 661.201 178.2 661.501 176.7 662.401C175.2 663.301 173.3 663.901 173.3 663.901z"/>
+ </g>
+ <g style="fill: #704d21">
+ <path d="M174.111 662.992C174.49 662.532 174.936 661.937 175.3 661.301C175.3 661.301 174.866 660.049 174.59 658.302C174.59 658.302 175 657.001 175.9 659.001C176.8 661.001 178 660.501 178.5 660.801C179 661.101 177 661.401 176.1 661.601C175.2 661.801 174.111 662.992 174.111 662.992z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M176.6 620.6C175.1 621.8 177 625.2 179.1 626.7C181.2 628.2 181.2 633.3 180.3 634.5C179.4 635.7 187.5 638.4 186.6 634.2C185.7 630 185.75 623.192 190.2 620.7C192.7 619.3 186.1 618.9 182.8 621.6C182.8 621.6 178.1 619.4 176.6 620.6z"/>
+ </g>
+ <g style="fill: #e7e3de">
+ <path d="M179.1 622.2C177.6 623.4 179.4 624.3 181.5 625.8C183.6 627.3 182.188 630.015 182.4 631.5C182.7 633.6 184.2 635.1 184.2 631.2C184.2 626.905 181.85 626.065 186 623.1C188.1 621.6 186 620.7 182.7 623.4C182.7 623.4 180.6 621 179.1 622.2z"/>
+ </g>
+ <g style="fill: #704d21">
+ <path d="M193.865 698.304C194.083 700.493 194.3 701.901 194.3 701.901C194.3 701.901 195.7 704.501 190.1 704.101C182.7 702.901 183.3 698.301 183.3 698.301C183.3 698.301 183.645 696.69 184.248 695.476C184.248 695.476 186.5 698.701 189.3 699.101C193.3 700.501 193.865 698.304 193.865 698.304z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M193.377 699.43C193.797 700.729 193.916 702.042 193.386 703.125C193.081 703.72 190.975 703.489 189.575 703.389C186.638 702.912 185.438 701.855 184.968 700.979C184.254 699.647 185.437 697.101 185.437 697.101C185.437 697.101 188.615 700.742 193.377 699.43z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M188.7 700.351C189.9 700.801 191.85 700.951 192.6 700.801C193.35 700.651 193.5 702.901 191.85 703.051C190.2 703.201 189 703.201 188.55 702.301C188.1 701.401 188.7 700.351 188.7 700.351z"/>
+ </g>
+ <g style="fill: #c5b9aa">
+ <path d="M191.4 702.901C192.45 702.901 192.967 701.658 192.426 701.286C192.008 701 190.826 701.101 190.5 701.101C190.5 701.101 190.35 702.901 191.4 702.901z"/>
+ </g>
+ <g style="fill: #ececec">
+ <path d="M188.3 694.501C189.5 694.901 191.9 695.701 192.9 694.901C193.3 694.701 192.9 696.901 190.9 696.501C188.9 696.101 188.3 694.501 188.3 694.501z"/>
+ </g>
+ <g style="fill: #ece9e6">
+ <path d="M190.3 683.101C191.5 683.101 193.7 684.901 193.1 687.701C192.5 690.501 190.7 689.901 191.1 687.901C191.5 685.901 189.1 683.101 190.3 683.101z"/>
+ </g>
+ <g style="fill: #bdaf9d">
+ <path d="M209.3 624.3C206.5 624.5 201.3 627.9 200.3 630.1C199.7 637.9 193.9 637.1 193.9 637.1C193.9 637.1 190.3 638.1 190.9 641.7C190.9 641.7 191.1 643.2 190.8 644.101C190.5 645 192.45 640.95 194.25 642.75C195.9 643.65 196.95 641.1 197.4 640.5C197.85 639.9 200.25 638.55 201.9 638.7C203.55 638.85 205.95 636.6 206.25 636C206.55 635.4 208.05 635.1 207.9 633.15C207.75 631.2 209.3 624.3 209.3 624.3z"/>
+ </g>
+ <g style="fill: #916e67">
+ <path d="M209.3 624.3C206.5 624.5 201.3 627.9 200.3 630.1C199.7 637.9 193.9 637.1 193.9 637.1C193.9 637.1 190.3 638.1 190.9 641.7C190.9 641.7 192.45 639.15 194.25 640.95C195.9 641.851 196.57 638.568 198.15 637.65C200.297 636.404 200.881 636.652 202.5 636.3C205.95 635.55 203.013 633.253 204.9 631.8C207.277 629.97 209.3 624.3 209.3 624.3z"/>
+ </g>
+ <g style="fill: #7a5930">
+ <path d="M209.3 624.3C206.5 624.5 201.3 627.9 200.3 630.1C199.7 637.9 193.9 637.1 193.9 637.1C193.9 637.1 196.27 637.968 197.85 637.05C199.997 635.804 199.664 636.08 201 635.1C203.25 633.45 201.882 632.885 203.4 631.05C206.527 627.27 209.3 624.3 209.3 624.3z"/>
+ </g>
+ <g style="fill: #5d3503">
+ <path d="M209.3 624.3C206.5 624.5 201.3 627.9 200.3 630.1C200.3 630.1 199.6 632.7 201 631.7C202.4 630.7 202.447 629.279 203.7 628.1C205.4 626.5 209.3 624.3 209.3 624.3z"/>
+ </g>
+ <g style="fill: #e7e3de">
+ <path d="M206.4 656.401C204.9 656.701 206.4 660.001 205.5 662.701C204.6 665.401 204.9 669.301 206.4 667.801C207.9 666.301 210.6 660.601 208.8 658.201C207 655.801 206.4 656.401 206.4 656.401z"/>
+ </g>
+ <g style="fill: #ececec">
+ <path d="M207.9 659.101C208.5 660.601 208.5 663.301 206.7 665.101C206.1 659.701 207.9 659.101 207.9 659.101z"/>
+ </g>
+ <g style="fill: #e7e3de">
+ <path d="M188.5 633.3C189.7 635.3 192.9 646.9 188.7 648.9C186.1 648.9 186.3 648.9 185.5 651.101C184.3 649.301 186.9 645.5 188.3 644.7C190.5 642.5 188.5 633.3 188.5 633.3z"/>
+ </g>
+ <g style="fill: #f4f2f0">
+ <path d="M189.979 637.635C190.903 641.57 191.287 645.973 188.5 647.301C185.9 647.301 185.377 649.057 186.167 648.002C186.995 646.896 188.183 645.91 188.9 645.5C191.1 643.3 189.511 635.641 189.979 637.635z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M176.149 612.962C175.919 616.595 179.455 620.566 185.879 618.808C192.303 617.05 190.64 617.667 189.99 616.543C189.34 615.42 187.341 615.654 183.48 613.967C179.619 612.28 176.342 609.908 176.149 612.962z"/>
+ </g>
+ <g style="fill: #d9d2ca">
+ <path d="M176.521 613.192C176.486 616.579 179.636 620.077 185.579 618.66C191.401 617.219 190.146 617.738 189.496 616.615C188.846 615.492 187.168 615.952 183.306 614.265C179.445 612.578 176.875 610.418 176.521 613.192z"/>
+ </g>
+ <g style="fill: #d4cbc1">
+ <path d="M176.892 613.421C177.054 616.564 179.817 619.588 185.279 618.513C190.5 617.387 189.652 617.81 189.002 616.687C188.352 615.564 186.994 616.251 183.133 614.563C179.272 612.876 177.407 610.928 176.892 613.421z"/>
+ </g>
+ <g style="fill: #cec4b8">
+ <path d="M177.264 613.651C177.622 616.548 179.998 619.099 184.979 618.365C189.598 617.556 189.158 617.882 188.508 616.759C187.857 615.635 186.82 616.549 182.959 614.862C179.098 613.174 177.94 611.439 177.264 613.651z"/>
+ </g>
+ <g style="fill: #c8bdae">
+ <path d="M177.636 613.881C178.19 616.533 180.179 618.61 184.68 618.217C188.696 617.724 188.664 617.954 188.014 616.831C187.363 615.707 186.647 616.847 182.786 615.16C178.925 613.473 178.473 611.949 177.636 613.881z"/>
+ </g>
+ <g style="fill: #c2b6a5">
+ <path d="M178.008 614.11C178.758 616.517 180.36 618.121 184.38 618.069C187.794 617.893 188.17 618.026 187.52 616.902C186.869 615.779 186.474 617.145 182.613 615.458C178.751 613.771 179.006 612.459 178.008 614.11z"/>
+ </g>
+ <g style="fill: #bdae9c">
+ <path d="M178.38 614.34C179.326 616.501 180.54 617.632 184.08 617.921C186.893 618.061 187.676 618.097 187.026 616.974C186.375 615.851 186.3 617.443 182.439 615.756C178.578 614.069 179.538 612.969 178.38 614.34z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M178.752 614.57C179.894 616.486 180.721 617.143 183.78 617.774C185.991 618.23 187.182 618.169 186.531 617.046C185.881 615.923 186.127 617.742 182.265 616.054C178.404 614.367 180.071 613.48 178.752 614.57z"/>
+ </g>
+ <g style="fill: #e7e3de">
+ <path d="M207.7 636.5C207.7 641.118 211.1 643.3 206.9 652.101C204.105 657.958 205.3 650.9 206.1 649.5C208.5 648.7 207.7 635.9 207.7 636.5z"/>
+ </g>
+ <g style="fill: #ae9c86">
+ <path d="M225.9 513.449C227.1 513.899 227.85 514.049 229.5 513.899C231.15 513.749 228.45 515.249 227.55 514.949C226.65 514.649 225.9 513.449 225.9 513.449z"/>
+ </g>
+ <g style="fill: #e7e3de">
+ <path d="M210.9 506.399C210.75 507.599 211.2 512.399 213.6 513.149C216 513.899 216.6 512.549 218.1 513.149C219.6 513.749 219.45 511.199 218.1 510.449C216.75 509.699 214.65 509.099 213.75 507.449C212.85 505.799 210.9 506.399 210.9 506.399z"/>
+ </g>
+ <g style="fill: #efece9">
+ <path d="M211.8 508.649C211.937 510.15 212.85 511.649 214.65 511.949C216.45 512.249 218.4 511.649 216.45 510.899C214.5 510.149 211.65 506.999 211.8 508.649z"/>
+ </g>
+ <g style="fill: #dad5cd">
+ <path d="M216.9 500.399C216.525 501.224 216 502.124 214.5 502.199C213.9 501.899 214.425 501.899 215.1 501.674C215.775 501.449 216.9 500.399 216.9 500.399z"/>
+ </g>
+ <g style="fill: #efece9">
+ <path d="M204.7 499.499C205.5 499.099 208.5 498.799 209.3 499.999C210.1 501.199 208.3 500.799 208.4 501.999C207.6 502.799 206.9 501.199 207.7 500.499C208.3 499.399 204.7 499.499 204.7 499.499z"/>
+ </g>
+ <g style="fill: #bbafa0">
+ <path d="M219.3 500.099C220.8 500.799 222 501.099 223 501.299C222.4 501.799 220.1 500.799 219.5 500.899C218.9 500.999 219.3 500.099 219.3 500.099z"/>
+ </g>
+ <g style="fill: #e7e3de">
+ <path d="M241.3 503.399C241.8 503.799 241.5 506.399 239.7 507.449C239.55 505.949 240.45 504.149 240.45 504.149C240.45 504.149 240.8 502.999 241.3 503.399z"/>
+ </g>
+ <g style="fill: #e7e3de">
+ <path d="M232.65 506.399C234 505.949 234.9 506.249 235.2 507.299C235.5 508.349 234.75 508.049 234 507.599C233.25 507.149 232.65 506.399 232.65 506.399z"/>
+ </g>
+ <g style="fill: #876943">
+ <path d="M238.425 508.649C238.05 508.199 237.375 507.524 236.625 507.599C235.875 507.674 235.875 506.549 235.425 506.024C234.975 505.499 233.558 504.712 231.038 505.799C229.314 506.542 228.569 505.692 227.59 505.921C227.033 506.011 226.752 506.646 226.35 508.049C226.5 508.574 227.133 508.06 227.613 508.074C228.45 508.099 229.544 506.855 230.9 506.599C231.432 506.499 234 505.274 234.9 506.024C235.882 506.842 235.35 507.149 236.1 507.674C236.85 508.199 236.625 508.124 237.3 507.899C237.975 507.674 238.425 508.649 238.425 508.649z"/>
+ </g>
+ <g style="fill: #380800">
+ <path d="M226.8 507.749C227.1 507.224 227.652 505.523 228.575 506.124C228.984 506.39 229.781 506.493 231.6 505.874C232.814 505.461 233.363 505.349 234.375 505.649C233.625 505.499 231.975 505.799 231.6 506.099C231.225 506.399 229.05 506.805 228.563 507.474C228.042 508.189 226.8 507.749 226.8 507.749z"/>
+ </g>
+ <g style="fill: #f1efec">
+ <path d="M233.4 506.299C234.2 506.199 234.8 506.199 235 506.799C234.2 507.299 233.4 506.299 233.4 506.299z"/>
+ </g>
+ <g style="fill: #f1efec">
+ <path d="M241 503.899C240.5 504.399 240.8 505.599 240.5 505.999C240.2 506.399 241.216 505.582 241.4 504.599C241.7 502.999 241 503.899 241 503.899z"/>
+ </g>
+ <g style="fill: #e99664">
+ <path d="M174.65 542.849C174.65 543.399 174.7 544.599 176.1 545.349C175.85 544.749 175.45 544.649 175.05 543.999C174.95 542.799 174.65 542.849 174.65 542.849z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M227.308 514.383L226.716 514.469C226.468 514.506 226.325 514.722 226.399 514.95L226.457 515.132C226.531 515.361 226.794 515.518 227.043 515.482L227.064 515.478L227.018 515.282C226.87 515.281 226.726 515.188 226.682 515.053L226.644 514.933C226.595 514.782 226.69 514.639 226.853 514.615L227.245 514.558C227.409 514.534 227.583 514.638 227.631 514.789L227.67 514.909C227.719 515.06 227.624 515.203 227.46 515.227L227.069 515.284C227.052 515.287 227.035 515.282 227.018 515.282L227.064 515.478L227.635 515.395C227.883 515.359 228.026 515.143 227.952 514.914L227.894 514.733C227.82 514.504 227.557 514.347 227.308 514.383z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M233.6 496.599L230.497 496.69C230.497 496.69 230.5 496.699 230.5 496.699L233.9 496.599C233.619 495.569 232.374 494.89 231.395 494.972C232.313 495.031 233.347 495.672 233.6 496.599z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M222.4 521.299C222.548 522.037 222.236 522.265 221.88 522.309C222.325 522.355 222.889 522.244 222.7 521.299C221.6 521.399 220.8 520.099 220.8 520.099C220.8 520.099 220.691 520.103 220.502 520.102C220.524 520.138 221.316 521.398 222.4 521.299z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M212.585 505.729C212.702 505.794 212.883 505.789 213.144 505.55C212.99 505.533 212.9 505.515 212.9 505.499C212.779 505.62 212.675 505.691 212.585 505.729z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M209.2 505.699C208.8 507.199 209.3 514.299 213.2 517.699C215.406 520.089 219.72 520.113 220.405 520.101C219.195 520.086 215.49 519.855 213.5 517.699C209.66 514.351 209.117 507.42 209.483 505.776C209.339 505.798 209.2 505.795 209.2 505.699z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M209.8 505.699C209.8 505.699 209.679 505.738 209.546 505.765C209.683 505.836 210.1 505.699 210.1 505.699L210.167 505.432L209.9 505.299L209.8 505.699z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M214.984 505.623C216.014 505.631 217.179 505.564 217.574 505.315C217.43 505.305 217.333 505.299 217.3 505.299C216.967 505.537 215.954 505.616 214.984 505.623z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M226.8 508.699C225.9 508.399 225.6 506.199 226 505.499C226.388 504.82 227.529 498.028 229.969 496.159C229.945 496.103 229.9 495.999 229.9 495.999C227.3 497.599 226.1 504.799 225.7 505.499C225.3 506.199 225.6 508.399 226.5 508.699C228.7 513.399 232.6 513.999 232.6 513.999L231.6 514.799C231.6 514.799 230.154 514.799 229.423 514.872C229.449 514.88 229.474 514.892 229.5 514.899C230.1 514.799 231.9 514.799 231.9 514.799L232.9 513.999C232.9 513.999 229 513.399 226.8 508.699z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M222.028 505.521C222.772 505.525 223.426 505.496 223.811 505.408C223.807 505.371 223.804 505.336 223.8 505.299C223.58 505.456 222.886 505.514 222.028 505.521z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M211.433 505.916L211.6 505.999L212.179 505.637C212.124 505.569 212.1 505.499 212.1 505.499L211.433 505.916z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M223.8 503.899C223.8 503.899 223.8 503.895 223.8 503.894L217.7 503.799C217.7 503.799 216.402 502.709 214.518 502.773C216.239 502.825 217.4 503.799 217.4 503.799L223.8 503.899z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M211.575 503.548C211.036 503.51 210.4 503.299 210.4 503.299L210.3 502.799L210 502.799L210.1 503.299C210.1 503.299 211.009 503.602 211.575 503.548z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M211.4 497.499C211 498.899 209.2 502.799 209.2 502.799L209.5 502.799C209.5 502.799 211.3 498.899 211.7 497.499C211.695 497.329 211.559 497.311 211.365 497.395C211.385 497.421 211.399 497.452 211.4 497.499z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M218.679 520.648C219.012 520.653 219.357 520.642 219.714 520.618C219.71 520.612 219.705 520.605 219.7 520.599C219.347 520.631 219.009 520.645 218.679 520.648z"/>
+ </g>
+ <g style="fill: #410000">
+ <path d="M232.6 513.999C232.6 513.999 228.7 513.399 226.5 508.699C225.6 508.399 225.3 506.199 225.7 505.499C226.1 504.799 227.3 497.599 229.9 495.999C229.945 496.103 230.051 496.35 230.2 496.699L233.6 496.599C233.3 495.499 231.9 494.799 230.9 494.999C229.9 495.199 228 495.499 225.9 498.799C223.829 502.053 223.801 503.845 223.8 503.894C223.8 503.895 223.8 503.899 223.8 503.899L217.4 503.799C217.4 503.799 214.9 501.699 211.8 503.499C211.3 503.699 210.1 503.299 210.1 503.299L210 502.799L209.2 502.799C209.2 502.799 211 498.899 211.4 497.499C211.383 496.909 209.8 498.099 209.6 499.399C209.1 499.999 208.1 502.799 208.1 505.499C208.1 508.199 207.8 510.299 209.2 513.399C210.6 516.499 213 521.199 219.7 520.599C219.705 520.605 219.71 520.612 219.714 520.618C220.217 521.315 221.1 522.199 221.1 522.199C221.1 522.199 222.7 522.799 222.4 521.299C221.316 521.398 220.524 520.138 220.502 520.102C220.502 520.102 220.5 520.099 220.5 520.099C220.5 520.099 215.6 520.299 213.2 517.699C209.3 514.299 208.8 507.199 209.2 505.699C209.2 505.795 209.339 505.798 209.483 505.776C209.505 505.773 209.525 505.769 209.546 505.765C209.679 505.738 209.8 505.699 209.8 505.699L209.9 505.299L211.3 505.999L212.1 505.499C212.1 505.499 212.3 506.099 212.9 505.499C212.9 505.599 216.6 505.799 217.3 505.299C217.6 505.299 223.1 505.799 223.8 505.299C224.101 508.399 224.3 510.399 225.7 511.999C227.1 513.599 228.1 514.599 229.2 514.899C229.8 514.799 231.6 514.799 231.6 514.799L232.6 513.999z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M233.6 496.599L230.2 496.699L229.9 495.999C229.9 495.999 230.3 495.099 231.7 495.399C233.1 495.699 233.6 496.599 233.6 496.599z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M210 502.799L209.83 502.799L209.9 503.149L209.7 505.149L209.6 505.549C209.6 505.549 208.388 505.804 207.901 505.702C207.911 506.097 209.8 505.699 209.8 505.699L209.9 505.299L210.1 503.299L210 502.799z"/>
+ </g>
+ <g style="fill: #270000">
+ <path d="M209.6 505.549L209.7 505.149L209.9 503.149L209.8 502.649L208.1 502.649C208.1 502.649 207.7 505.149 207.7 505.549C207.7 505.949 209.6 505.549 209.6 505.549z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M228.395 506.096C228.333 506.095 228.035 506.016 227.94 506.015C227.69 506.022 227.428 506.373 227.33 506.827C227.24 507.284 227.363 507.637 227.617 507.637C227.678 507.636 227.928 507.692 228.022 507.675C228.272 507.619 228.739 507.262 228.962 506.865C229.171 506.465 228.671 506.104 228.395 506.096z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M227.828 506.542C227.876 506.484 228.207 506.4 228.308 506.56C228.405 506.722 228.479 506.736 228.624 506.655C228.769 506.575 229.004 506.607 228.86 506.818C228.712 507.026 228.495 507.26 228.446 507.08C228.402 506.897 228.446 506.795 228.151 506.901C227.854 507 227.828 506.542 227.828 506.542z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M227.322 507.315C227.367 507.515 227.467 507.638 227.617 507.637C227.678 507.636 227.928 507.692 228.022 507.675C228.171 507.644 228.349 507.483 228.569 507.291C228.569 507.291 227.333 507.258 227.322 507.315z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M228.908 506.388C228.759 506.21 228.55 506.099 228.395 506.096C228.333 506.095 228.035 506.016 227.94 506.015C227.838 506.016 227.747 506.073 227.651 506.175C227.631 506.225 228.907 506.388 228.908 506.388z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M227.155 509.812C227.119 510.278 227.078 510.681 227.031 510.937C226.353 510.53 226.319 508.743 226.461 507.261C226.488 506.978 226.446 507.037 226.558 506.456C226.671 505.874 227.332 506.037 227.332 506.037C227.332 506.037 227.272 508.274 227.155 509.812L228.106 510.205C228.135 508.503 228.112 506.768 228.231 505.537C228.231 505.537 228.231 505.137 227.332 505.137C226.432 505.137 225.432 507.837 225.632 509.937C225.832 512.037 226.832 512.137 226.832 512.137C226.832 512.137 227.231 514.237 226.932 515.837C227.896 515.294 228.061 512.789 228.106 510.205L227.155 509.812z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M227.024 509.774C226.988 510.24 226.947 510.643 226.9 510.899C226.222 510.492 226.188 508.706 226.329 507.224C226.357 506.94 226.314 506.999 226.427 506.418C226.539 505.837 227.2 505.999 227.2 505.999C227.2 505.999 227.141 508.236 227.024 509.774L227.974 510.168C228.004 508.466 227.981 506.73 228.1 505.499C228.1 505.499 228.1 505.099 227.2 505.099C226.3 505.099 225.3 507.799 225.5 509.899C225.7 511.999 226.7 512.099 226.7 512.099C226.7 512.099 227.1 514.199 226.8 515.799C227.765 515.257 227.93 512.751 227.974 510.168L227.024 509.774z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M227.328 504.62C227.323 504.62 227.318 504.621 227.314 504.621C227.771 504.825 227.981 505.633 227.788 506.599C227.565 507.711 226.893 508.613 226.28 508.627C226.353 508.659 226.431 508.678 226.516 508.678C227.132 508.678 227.814 507.77 228.038 506.649C228.262 505.529 227.944 504.62 227.328 504.62z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M227.251 507.925C226.965 508.349 226.613 508.62 226.28 508.627C226.353 508.659 226.431 508.678 226.516 508.678C226.84 508.678 227.181 508.428 227.465 508.028L227.251 507.925z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M228.093 505.65C228.025 505.035 227.744 504.62 227.328 504.62C227.323 504.62 227.318 504.621 227.314 504.621C227.613 504.755 227.807 505.147 227.85 505.674L228.093 505.65z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M227.788 506.599C228.012 505.478 227.694 504.57 227.078 504.57C226.461 504.57 225.78 505.478 225.556 506.599C225.332 507.72 225.65 508.628 226.266 508.628C226.271 508.628 226.275 508.627 226.28 508.627C226.893 508.613 227.565 507.711 227.788 506.599z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M226.167 507.913C226.597 507.913 227.072 507.28 227.228 506.499C227.384 505.718 227.163 505.085 226.733 505.085C226.303 505.085 225.829 505.718 225.672 506.499C225.516 507.28 225.738 507.913 226.167 507.913z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M226.103 507.698C226.467 507.698 226.87 507.161 227.002 506.499C227.134 505.837 226.947 505.3 226.582 505.3C226.218 505.3 225.816 505.837 225.683 506.499C225.551 507.161 225.739 507.698 226.103 507.698z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M226.183 507.543C226.507 507.543 226.865 507.065 226.982 506.477C227.1 505.888 226.933 505.411 226.609 505.411C226.286 505.411 225.928 505.888 225.81 506.477C225.692 507.065 225.859 507.543 226.183 507.543z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M226.281 507.415C226.566 507.415 226.881 506.995 226.985 506.476C227.089 505.958 226.942 505.538 226.656 505.538C226.371 505.538 226.056 505.958 225.952 506.476C225.849 506.995 225.996 507.415 226.281 507.415z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M216.7 504.038L216.7 504.399C214.397 505.781 213.114 505.042 212.3 504.604L212.3 504.649C213.1 505.049 214.4 506.049 216.9 504.549L216.9 504.149C216.831 504.108 216.767 504.075 216.7 504.038z"/>
+ </g>
+ <g style="fill: #d1d1d1">
+ <path d="M216.7 504.399L216.7 504.038L216.7 503.999C214.2 502.499 212.9 503.499 212.1 503.899L212.1 504.499C212.9 504.899 214.2 505.899 216.7 504.399z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M218.1 504.099C218.1 504.099 218.069 504.084 217.963 504.077C217.974 504.336 217.962 504.817 217.75 505.099C217.528 505.099 216.869 504.716 216.541 504.517L216.5 504.599C216.5 504.599 217.6 505.299 217.9 505.299C218.2 504.899 218.1 504.099 218.1 504.099z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M217.95 503.899C217.95 503.899 217.75 503.799 216.55 503.999L216.35 504.399C216.35 504.399 217.45 505.099 217.75 505.099C218.05 504.699 217.95 503.899 217.95 503.899z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M210.9 505.099C210.702 504.836 210.679 504.399 210.685 504.132C210.62 504.139 210.6 504.149 210.6 504.149C210.6 504.149 210.5 504.949 210.8 505.349C211.1 505.349 212.2 504.649 212.2 504.649L212.128 504.505C211.807 504.701 211.126 505.099 210.9 505.099z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M210.9 505.099C211.2 505.099 212.3 504.399 212.3 504.399L212.1 503.999C210.9 503.799 210.7 503.899 210.7 503.899C210.7 503.899 210.6 504.699 210.9 505.099z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M207.864 505.646C208.327 505.719 208.808 505.102 208.939 504.268C209.07 503.435 208.801 502.7 208.337 502.627C207.874 502.554 207.393 503.171 207.262 504.005C207.131 504.839 207.4 505.573 207.864 505.646z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M208.85 503.499C208.85 503.999 209.05 504.549 208.55 505.049C208.05 505.549 208.5 504.999 208.45 504.699C208.4 504.399 208.4 504.749 208.1 504.749C207.8 504.749 208.25 504.249 208.2 503.749C208.15 503.249 208.5 502.899 208.55 503.549C208.6 504.199 208.85 503.499 208.85 503.499z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M207.637 505.267C207.957 505.317 208.289 504.891 208.379 504.316C208.469 503.74 208.284 503.233 207.964 503.183C207.644 503.133 207.312 503.559 207.222 504.134C207.131 504.709 207.317 505.217 207.637 505.267z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M207.666 504.781C207.84 504.809 208.021 504.577 208.07 504.263C208.12 503.949 208.018 503.672 207.844 503.645C207.67 503.618 207.488 503.85 207.439 504.164C207.39 504.478 207.491 504.754 207.666 504.781z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M207.71 504.589C207.827 504.608 207.948 504.452 207.981 504.242C208.014 504.031 207.947 503.846 207.829 503.827C207.713 503.809 207.591 503.964 207.558 504.175C207.525 504.386 207.593 504.571 207.71 504.589z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M222.618 503.569L222.091 505.673L219.809 505.577L219.968 505.746L222.253 505.836L222.773 503.744L222.618 503.569z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M222.611 503.582L220.325 503.493L219.806 505.584L222.091 505.673L222.611 503.582z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M221.88 504.049C221.958 504.158 221.988 504.303 221.949 504.46L221.903 504.646C221.824 504.966 221.489 505.218 221.159 505.205L220.882 505.194C220.767 505.19 220.669 505.152 220.591 505.094C220.673 505.207 220.808 505.281 220.976 505.288L221.253 505.299C221.583 505.312 221.918 505.06 221.997 504.74L222.043 504.554C222.095 504.345 222.025 504.158 221.88 504.049z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M221.159 505.205C221.489 505.218 221.824 504.966 221.903 504.646L221.949 504.46C222.029 504.14 221.824 503.867 221.495 503.854L221.218 503.844C220.888 503.831 220.553 504.082 220.473 504.402L220.427 504.589C220.348 504.909 220.553 505.181 220.882 505.194L221.159 505.205z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M221.234 505.149C221.564 505.162 221.899 504.91 221.978 504.59L222.024 504.404C222.104 504.084 221.899 503.811 221.57 503.798L221.293 503.787C220.963 503.774 220.628 504.026 220.548 504.346L220.502 504.532C220.423 504.853 220.627 505.125 220.957 505.138L221.234 505.149z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M220.957 505.138C220.627 505.125 220.423 504.853 220.502 504.532L220.548 504.346C220.584 504.201 220.675 504.071 220.792 503.973C220.638 504.075 220.517 504.227 220.473 504.402L220.427 504.589C220.348 504.909 220.553 505.181 220.882 505.194L221.159 505.205C221.339 505.212 221.519 505.139 221.66 505.02C221.533 505.104 221.384 505.155 221.234 505.149L220.957 505.138z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M226.32 501.468C226.32 501.283 226.231 501.118 226.091 501.001C226.18 501.108 226.235 501.239 226.235 501.383C226.235 501.735 225.919 502.02 225.528 502.02C225.343 502.02 225.176 501.954 225.05 501.85C225.179 502.003 225.382 502.104 225.613 502.104C226.003 502.104 226.32 501.819 226.32 501.468z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M224.836 502.095C224.856 502.13 224.871 502.167 224.871 502.208C224.871 502.344 224.748 502.454 224.598 502.454C224.539 502.454 224.488 502.434 224.443 502.406C224.489 502.484 224.577 502.539 224.682 502.539C224.833 502.539 224.955 502.429 224.955 502.293C224.955 502.21 224.906 502.14 224.836 502.095z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M226.186 502.245C226.207 502.28 226.221 502.317 226.221 502.358C226.221 502.494 226.099 502.604 225.948 502.604C225.889 502.604 225.838 502.584 225.793 502.556C225.839 502.634 225.927 502.689 226.032 502.689C226.183 502.689 226.305 502.579 226.305 502.443C226.305 502.36 226.257 502.29 226.186 502.245z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M226.235 501.383C226.235 501.032 225.919 500.747 225.528 500.747C225.138 500.747 224.821 501.032 224.821 501.383C224.821 501.735 225.138 502.02 225.528 502.02C225.919 502.02 226.235 501.735 226.235 501.383z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M225.769 500.868C226.069 501.036 226.332 501.355 225.919 501.843C226.069 501.562 226.088 501.355 225.957 501.262C225.706 501.083 225.769 500.868 225.769 500.868z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M225.566 501.947C225.222 501.945 224.837 501.795 224.96 501.168C224.966 501.487 225.05 501.676 225.21 501.694C225.516 501.728 225.566 501.947 225.566 501.947z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M224.871 502.208C224.871 502.072 224.748 501.962 224.598 501.962C224.447 501.962 224.325 502.073 224.325 502.208C224.325 502.344 224.447 502.454 224.598 502.454C224.748 502.454 224.871 502.344 224.871 502.208z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M226.221 502.358C226.221 502.222 226.099 502.113 225.948 502.113C225.797 502.113 225.675 502.223 225.675 502.358C225.675 502.494 225.797 502.604 225.948 502.604C226.099 502.604 226.221 502.494 226.221 502.358z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M209.751 501.515C209.778 501.39 209.754 501.291 209.695 501.232C209.728 501.291 209.739 501.372 209.717 501.47C209.665 501.708 209.45 501.946 209.237 502.002C209.136 502.028 209.054 502.008 209.001 501.955C209.049 502.041 209.144 502.08 209.27 502.047C209.483 501.991 209.699 501.753 209.751 501.515z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M208.848 502.152C208.854 502.172 208.856 502.195 208.85 502.223C208.83 502.315 208.747 502.407 208.664 502.429C208.632 502.437 208.607 502.431 208.587 502.418C208.601 502.464 208.641 502.489 208.698 502.474C208.83 502.439 208.931 502.205 208.848 502.152z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M209.563 502.061C209.568 502.081 209.571 502.104 209.565 502.132C209.545 502.224 209.461 502.316 209.379 502.338C209.347 502.346 209.322 502.34 209.302 502.327C209.315 502.373 209.355 502.398 209.413 502.383C209.545 502.348 209.646 502.114 209.563 502.061z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M209.717 501.47C209.769 501.232 209.639 501.084 209.426 501.14C209.212 501.195 208.997 501.433 208.945 501.672C208.893 501.91 209.024 502.058 209.237 502.002C209.45 501.946 209.665 501.708 209.717 501.47z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M209.539 501.187C209.678 501.259 209.774 501.437 209.476 501.826C209.6 501.614 209.641 501.472 209.583 501.427C209.473 501.342 209.539 501.187 209.539 501.187z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M209.268 501.947C209.08 501.995 208.893 501.948 209.053 501.506C209.009 501.721 209.027 501.837 209.111 501.827C209.273 501.806 209.268 501.947 209.268 501.947z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M208.85 502.223C208.856 502.195 208.854 502.172 208.848 502.152C208.834 502.105 208.794 502.081 208.737 502.096C208.604 502.13 208.504 502.365 208.587 502.418C208.607 502.431 208.632 502.437 208.664 502.429C208.747 502.407 208.83 502.315 208.85 502.223z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M209.565 502.132C209.571 502.104 209.568 502.081 209.563 502.061C209.549 502.014 209.509 501.99 209.452 502.005C209.319 502.039 209.219 502.274 209.302 502.327C209.322 502.34 209.347 502.346 209.379 502.338C209.461 502.316 209.545 502.224 209.565 502.132z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M210.276 499.94C210.303 499.815 210.279 499.716 210.22 499.657C210.253 499.716 210.264 499.797 210.242 499.895C210.19 500.133 209.975 500.371 209.762 500.427C209.661 500.453 209.579 500.433 209.526 500.38C209.574 500.466 209.67 500.505 209.795 500.472C210.009 500.416 210.224 500.178 210.276 499.94z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M209.373 500.577C209.379 500.597 209.381 500.62 209.375 500.648C209.355 500.74 209.272 500.832 209.189 500.854C209.157 500.862 209.132 500.856 209.112 500.843C209.126 500.889 209.166 500.914 209.223 500.899C209.356 500.864 209.456 500.63 209.373 500.577z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M210.088 500.486C210.094 500.506 210.096 500.529 210.09 500.557C210.07 500.649 209.986 500.741 209.904 500.763C209.872 500.771 209.847 500.765 209.827 500.752C209.84 500.798 209.88 500.823 209.938 500.808C210.07 500.773 210.171 500.539 210.088 500.486z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M210.242 499.895C210.294 499.657 210.164 499.509 209.951 499.565C209.737 499.62 209.522 499.858 209.47 500.097C209.418 500.335 209.549 500.483 209.762 500.427C209.975 500.371 210.19 500.133 210.242 499.895z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M210.064 499.612C210.203 499.684 210.299 499.862 210.001 500.251C210.125 500.039 210.166 499.897 210.108 499.852C209.998 499.767 210.064 499.612 210.064 499.612z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M209.793 500.372C209.605 500.42 209.418 500.373 209.578 499.931C209.534 500.146 209.552 500.262 209.637 500.252C209.798 500.231 209.793 500.372 209.793 500.372z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M209.375 500.648C209.381 500.62 209.379 500.597 209.373 500.577C209.359 500.53 209.319 500.506 209.262 500.521C209.129 500.555 209.029 500.79 209.112 500.843C209.132 500.856 209.157 500.862 209.189 500.854C209.272 500.832 209.355 500.74 209.375 500.648z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M210.09 500.557C210.096 500.529 210.094 500.506 210.088 500.486C210.074 500.439 210.034 500.415 209.977 500.43C209.844 500.464 209.743 500.699 209.827 500.752C209.847 500.765 209.872 500.771 209.904 500.763C209.986 500.741 210.07 500.649 210.09 500.557z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M210.913 498.44C210.941 498.315 210.917 498.216 210.857 498.157C210.89 498.216 210.901 498.297 210.88 498.395C210.828 498.633 210.613 498.871 210.399 498.927C210.298 498.953 210.217 498.933 210.164 498.88C210.211 498.965 210.307 499.005 210.433 498.972C210.646 498.916 210.861 498.678 210.913 498.44z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M210.01 499.077C210.016 499.097 210.019 499.12 210.012 499.148C209.992 499.24 209.909 499.332 209.827 499.354C209.795 499.362 209.77 499.356 209.75 499.343C209.763 499.389 209.803 499.414 209.86 499.399C209.993 499.364 210.094 499.13 210.01 499.077z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M210.725 498.986C210.731 499.006 210.733 499.029 210.727 499.057C210.707 499.149 210.624 499.241 210.541 499.263C210.51 499.271 210.485 499.265 210.464 499.252C210.478 499.298 210.518 499.323 210.575 499.308C210.708 499.273 210.808 499.039 210.725 498.986z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M210.88 498.395C210.932 498.157 210.801 498.009 210.588 498.065C210.375 498.12 210.16 498.358 210.108 498.597C210.056 498.835 210.186 498.983 210.399 498.927C210.613 498.871 210.828 498.633 210.88 498.395z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M210.702 498.112C210.84 498.184 210.936 498.362 210.639 498.751C210.762 498.539 210.803 498.397 210.745 498.352C210.635 498.267 210.702 498.112 210.702 498.112z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M210.431 498.872C210.243 498.92 210.055 498.873 210.216 498.431C210.171 498.646 210.189 498.762 210.274 498.752C210.436 498.731 210.431 498.872 210.431 498.872z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M210.012 499.148C210.019 499.12 210.016 499.097 210.01 499.077C209.997 499.03 209.957 499.006 209.9 499.021C209.767 499.055 209.666 499.29 209.75 499.343C209.77 499.356 209.795 499.362 209.827 499.354C209.909 499.332 209.992 499.24 210.012 499.148z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M210.727 499.057C210.733 499.029 210.731 499.006 210.725 498.986C210.712 498.939 210.672 498.915 210.615 498.93C210.482 498.964 210.381 499.199 210.464 499.252C210.485 499.265 210.51 499.271 210.541 499.263C210.624 499.241 210.707 499.149 210.727 499.057z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M214.965 504.17C214.965 503.974 214.871 503.799 214.722 503.676C214.817 503.789 214.876 503.928 214.876 504.081C214.876 504.454 214.54 504.756 214.126 504.756C213.929 504.756 213.752 504.687 213.618 504.576C213.755 504.739 213.971 504.846 214.215 504.846C214.63 504.846 214.965 504.543 214.965 504.17z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M214.876 504.081C214.876 503.708 214.54 503.406 214.126 503.406C213.711 503.406 213.375 503.708 213.375 504.081C213.375 504.454 213.711 504.756 214.126 504.756C214.54 504.756 214.876 504.454 214.876 504.081z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M214.381 503.534C214.699 503.713 214.978 504.051 214.54 504.568C214.699 504.27 214.719 504.051 214.58 503.952C214.314 503.762 214.381 503.534 214.381 503.534z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M214.165 504.679C213.8 504.677 213.392 504.517 213.523 503.852C213.529 504.19 213.618 504.391 213.788 504.411C214.113 504.447 214.165 504.679 214.165 504.679z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M212.493 504.299C212.493 504.195 212.443 504.102 212.364 504.036C212.414 504.097 212.445 504.171 212.445 504.252C212.445 504.45 212.267 504.611 212.047 504.611C211.942 504.611 211.848 504.574 211.777 504.515C211.85 504.601 211.964 504.658 212.094 504.658C212.314 504.658 212.493 504.498 212.493 504.299z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M212.445 504.252C212.445 504.054 212.267 503.893 212.047 503.893C211.826 503.893 211.648 504.054 211.648 504.252C211.648 504.45 211.826 504.611 212.047 504.611C212.267 504.611 212.445 504.45 212.445 504.252z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M212.182 503.961C212.351 504.056 212.499 504.236 212.267 504.511C212.351 504.352 212.362 504.236 212.288 504.183C212.147 504.082 212.182 503.961 212.182 503.961z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M212.068 504.57C211.874 504.569 211.657 504.484 211.726 504.13C211.73 504.31 211.777 504.417 211.867 504.427C212.04 504.446 212.068 504.57 212.068 504.57z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M216.993 504.299C216.993 504.195 216.943 504.102 216.864 504.036C216.914 504.097 216.945 504.171 216.945 504.252C216.945 504.45 216.767 504.611 216.547 504.611C216.442 504.611 216.348 504.574 216.277 504.515C216.35 504.601 216.464 504.658 216.594 504.658C216.814 504.658 216.993 504.498 216.993 504.299z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M216.945 504.252C216.945 504.054 216.767 503.893 216.547 503.893C216.327 503.893 216.148 504.054 216.148 504.252C216.148 504.45 216.326 504.611 216.547 504.611C216.767 504.611 216.945 504.45 216.945 504.252z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M216.682 503.961C216.851 504.056 217 504.236 216.767 504.511C216.851 504.352 216.862 504.236 216.788 504.183C216.647 504.082 216.682 503.961 216.682 503.961z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M216.568 504.57C216.374 504.569 216.157 504.484 216.226 504.13C216.23 504.31 216.277 504.417 216.367 504.427C216.54 504.446 216.568 504.57 216.568 504.57z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M227.12 499.63C227.132 499.455 227.059 499.293 226.934 499.174C227.012 499.281 227.055 499.409 227.046 499.545C227.023 499.878 226.704 500.128 226.334 500.102C226.159 500.09 226.005 500.017 225.892 499.91C226.005 500.064 226.19 500.173 226.409 500.188C226.779 500.213 227.098 499.964 227.12 499.63z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M225.674 500.129C225.69 500.163 225.702 500.199 225.699 500.238C225.69 500.367 225.567 500.463 225.424 500.453C225.368 500.45 225.321 500.427 225.281 500.397C225.319 500.474 225.399 500.532 225.498 500.539C225.642 500.549 225.765 500.452 225.773 500.324C225.779 500.245 225.737 500.175 225.674 500.129z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M226.943 500.359C226.96 500.393 226.971 500.429 226.969 500.468C226.96 500.597 226.837 500.693 226.694 500.683C226.638 500.68 226.591 500.657 226.551 500.627C226.589 500.704 226.669 500.762 226.768 500.769C226.911 500.779 227.034 500.682 227.043 500.554C227.048 500.475 227.007 500.406 226.943 500.359z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M227.046 499.545C227.069 499.212 226.787 498.921 226.417 498.896C226.047 498.87 225.728 499.12 225.706 499.453C225.683 499.786 225.964 500.077 226.334 500.102C226.704 500.128 227.023 499.878 227.046 499.545z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M226.637 499.026C226.911 499.205 227.139 499.525 226.716 499.96C226.877 499.703 226.908 499.509 226.789 499.411C226.564 499.226 226.637 499.026 226.637 499.026z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M226.375 500.036C226.048 500.012 225.694 499.844 225.851 499.258C225.836 499.56 225.904 499.745 226.054 499.773C226.342 499.825 226.375 500.036 226.375 500.036z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M225.699 500.238C225.708 500.109 225.599 499.997 225.456 499.987C225.313 499.978 225.19 500.074 225.181 500.203C225.172 500.331 225.281 500.444 225.424 500.453C225.567 500.463 225.69 500.367 225.699 500.238z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M226.969 500.468C226.978 500.339 226.869 500.227 226.726 500.217C226.583 500.207 226.46 500.304 226.451 500.433C226.442 500.561 226.551 500.674 226.694 500.683C226.837 500.693 226.96 500.597 226.969 500.468z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M228.206 497.886C228.273 497.72 228.255 497.564 228.175 497.446C228.215 497.55 228.215 497.673 228.163 497.803C228.036 498.118 227.657 498.344 227.317 498.308C227.156 498.291 227.035 498.217 226.963 498.111C227.02 498.261 227.16 498.37 227.36 498.392C227.7 498.428 228.078 498.202 228.206 497.886z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M226.688 498.312C226.71 498.451 226.522 498.63 226.35 498.612C226.299 498.606 226.262 498.583 226.234 498.554C226.245 498.628 226.302 498.685 226.393 498.695C226.524 498.709 226.671 498.622 226.72 498.5C226.75 498.425 226.733 498.358 226.688 498.312z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M227.808 498.572C227.83 498.711 227.642 498.89 227.47 498.872C227.419 498.866 227.382 498.843 227.354 498.814C227.365 498.888 227.422 498.946 227.513 498.955C227.644 498.969 227.791 498.882 227.84 498.76C227.87 498.685 227.853 498.618 227.808 498.572z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M228.163 497.803C228.29 497.487 228.118 497.202 227.778 497.166C227.439 497.129 227.06 497.356 226.933 497.671C226.805 497.987 226.978 498.272 227.317 498.308C227.657 498.344 228.036 498.118 228.163 497.803z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M227.944 497.296C228.144 497.476 228.257 497.786 227.721 498.185C227.954 497.947 228.045 497.764 227.964 497.667C227.811 497.483 227.944 497.296 227.944 497.296z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M227.376 498.246C227.077 498.213 226.798 498.042 227.132 497.491C227.021 497.777 227.026 497.955 227.159 497.986C227.412 498.046 227.376 498.246 227.376 498.246z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M226.677 498.416C226.726 498.294 226.66 498.184 226.529 498.17C226.397 498.156 226.251 498.244 226.202 498.365C226.153 498.487 226.219 498.598 226.35 498.612C226.482 498.626 226.628 498.538 226.677 498.416z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M227.797 498.676C227.846 498.554 227.78 498.444 227.648 498.43C227.517 498.416 227.371 498.504 227.322 498.626C227.272 498.748 227.339 498.858 227.47 498.872C227.601 498.886 227.748 498.798 227.797 498.676z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M229.246 496.341C229.307 496.226 229.303 496.116 229.25 496.033C229.273 496.107 229.266 496.193 229.219 496.282C229.103 496.501 228.803 496.654 228.547 496.623C228.426 496.609 228.338 496.555 228.29 496.48C228.324 496.586 228.424 496.664 228.575 496.682C228.83 496.713 229.131 496.56 229.246 496.341z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M228.07 496.616C228.072 496.639 228.069 496.663 228.055 496.689C227.993 496.807 227.781 496.854 227.711 496.779C227.715 496.831 227.755 496.872 227.823 496.88C227.922 496.892 228.038 496.833 228.083 496.748C228.11 496.697 228.101 496.649 228.07 496.616z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M228.904 496.815C228.906 496.838 228.903 496.862 228.889 496.888C228.827 497.005 228.616 497.053 228.545 496.977C228.549 497.029 228.589 497.07 228.657 497.079C228.756 497.09 228.872 497.031 228.917 496.947C228.944 496.895 228.935 496.848 228.904 496.815z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M229.219 496.282C229.334 496.063 229.221 495.861 228.965 495.831C228.709 495.801 228.409 495.953 228.293 496.172C228.178 496.391 228.292 496.593 228.547 496.623C228.803 496.654 229.103 496.501 229.219 496.282z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M229.083 495.925C229.224 496.053 229.291 496.272 228.861 496.543C229.051 496.38 229.132 496.253 229.076 496.185C228.971 496.054 229.083 495.925 229.083 495.925z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M228.596 496.581C228.371 496.553 228.169 496.429 228.455 496.049C228.354 496.248 228.347 496.372 228.446 496.396C228.635 496.441 228.596 496.581 228.596 496.581z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M228.055 496.689C228.069 496.663 228.072 496.639 228.07 496.616C228.065 496.564 228.026 496.523 227.957 496.515C227.858 496.503 227.742 496.562 227.697 496.647C227.653 496.731 227.697 496.809 227.796 496.821C227.894 496.833 228.01 496.774 228.055 496.689z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M228.889 496.888C228.903 496.862 228.906 496.838 228.904 496.815C228.899 496.763 228.86 496.722 228.791 496.714C228.692 496.702 228.576 496.761 228.532 496.845C228.487 496.93 228.531 497.008 228.63 497.019C228.728 497.031 228.845 496.972 228.889 496.888z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M225.814 503.399C225.814 503.214 225.724 503.049 225.584 502.933C225.674 503.039 225.729 503.171 225.729 503.315C225.729 503.666 225.413 503.951 225.022 503.951C224.837 503.951 224.67 503.886 224.544 503.781C224.673 503.935 224.876 504.035 225.106 504.035C225.497 504.035 225.814 503.75 225.814 503.399z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M225.729 503.315C225.729 502.963 225.413 502.678 225.022 502.678C224.632 502.678 224.315 502.963 224.315 503.315C224.315 503.666 224.632 503.951 225.022 503.951C225.413 503.951 225.729 503.666 225.729 503.315z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M225.263 502.799C225.563 502.968 225.825 503.286 225.413 503.774C225.563 503.493 225.582 503.286 225.45 503.193C225.2 503.014 225.263 502.799 225.263 502.799z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M225.06 503.878C224.715 503.877 224.331 503.726 224.454 503.099C224.46 503.418 224.544 503.607 224.704 503.625C225.01 503.66 225.06 503.878 225.06 503.878z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M224.898 509.763C225.186 509.747 225.407 509.464 225.389 509.135L225.199 505.69C225.18 505.36 224.93 505.104 224.641 505.12C224.353 505.135 224.132 505.418 224.15 505.748L224.341 509.192C224.359 509.522 224.61 509.779 224.898 509.763z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M225.414 509.333C225.392 509.063 225.139 508.856 224.851 508.871C224.598 508.885 224.399 509.066 224.369 509.292L224.341 509.294C224.359 509.563 224.61 509.773 224.898 509.76C225.154 509.748 225.356 509.564 225.385 509.334L225.414 509.333z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M224.1 506.899C224.145 507.174 224.175 507.974 224.175 507.974C224.175 507.974 225.025 507.499 225.425 507.899C225.375 507.449 225.375 506.699 225.375 506.699C225.375 506.699 224.5 506.399 224.1 506.899z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M224.1 506.899C224.145 507.174 224.175 507.974 224.175 507.974C224.175 507.974 225.025 507.499 225.425 507.899C225.375 507.449 225.375 506.699 225.375 506.699C225.375 506.699 224.5 506.399 224.1 506.899z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M224.159 507.003C224.2 507.164 224.227 507.632 224.227 507.632C224.227 507.632 225.007 507.354 225.373 507.588C225.327 507.325 225.327 506.886 225.327 506.886C225.327 506.886 224.525 506.71 224.159 507.003z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M224.159 507.06C224.2 507.145 224.227 507.391 224.227 507.391C224.227 507.391 225.007 507.245 225.373 507.368C225.327 507.23 225.327 506.999 225.327 506.999C225.327 506.999 224.525 506.906 224.159 507.06z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M221.55 503.98C221.794 504.111 222 504.187 221.775 504.674C221.775 504.411 221.756 504.262 221.681 504.262C221.42 504.262 221.55 503.98 221.55 503.98z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M224.682 502.012C224.794 502.087 224.906 502.349 224.588 502.424C224.794 502.255 224.682 502.012 224.682 502.012z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M226.031 502.161C226.144 502.236 226.257 502.499 225.938 502.574C226.144 502.405 226.031 502.161 226.031 502.161z"/>
+ </g>
+ <g style="fill: #b8b3ac">
+ <path d="M228.962 506.865C229.147 506.512 228.779 506.19 228.5 506.114C228.542 506.273 228.575 506.483 228.488 506.774C228.361 507.195 228.267 507.49 228.117 507.643C228.377 507.536 228.764 507.217 228.962 506.865z"/>
+ </g>
+ <g style="fill: #464646">
+ <path d="M229.007 506.725C229.009 506.71 229.006 506.695 229.007 506.681C229.007 506.65 229.007 506.62 229.001 506.591C228.998 506.575 228.991 506.559 228.986 506.542C228.977 506.517 228.968 506.492 228.955 506.468C228.947 506.451 228.936 506.436 228.926 506.42C228.918 506.409 228.909 506.398 228.901 506.387C228.877 506.384 228.728 506.365 228.537 506.338C228.545 506.441 228.537 506.56 228.505 506.697C228.539 506.693 228.577 506.681 228.624 506.655C228.769 506.575 229.004 506.607 228.861 506.818C228.712 507.026 228.495 507.26 228.446 507.08C228.436 507.04 228.431 507.006 228.425 506.975C228.39 507.09 228.354 507.196 228.319 507.286C228.465 507.289 228.569 507.291 228.569 507.291C228.396 507.442 228.25 507.571 228.122 507.636C228.12 507.638 228.119 507.641 228.117 507.643C228.138 507.635 228.161 507.622 228.185 507.61C228.199 507.603 228.212 507.597 228.227 507.589C228.248 507.577 228.271 507.563 228.293 507.549C228.311 507.538 228.329 507.527 228.347 507.514C228.368 507.5 228.389 507.484 228.41 507.469C228.431 507.453 228.451 507.438 228.472 507.421C228.492 507.405 228.512 507.389 228.532 507.371C228.554 507.352 228.576 507.332 228.598 507.312C228.616 507.295 228.635 507.278 228.652 507.26C228.676 507.237 228.699 507.213 228.721 507.188C228.737 507.171 228.753 507.154 228.768 507.137C228.792 507.108 228.815 507.079 228.838 507.05C228.849 507.034 228.862 507.02 228.873 507.004C228.937 506.914 228.994 506.817 229.007 506.725z"/>
+ </g>
+ <g style="fill: #464646">
+ <path d="M228.782 506.264C228.781 506.264 228.781 506.264 228.781 506.264C228.764 506.25 228.748 506.237 228.73 506.225C228.712 506.212 228.693 506.202 228.674 506.19C228.711 506.212 228.747 506.236 228.782 506.264z"/>
+ </g>
+ <g style="fill: #464646">
+ <path d="M228.631 506.167C228.626 506.164 228.62 506.16 228.615 506.157C228.599 506.15 228.583 506.145 228.567 506.139C228.588 506.147 228.61 506.156 228.631 506.167z"/>
+ </g>
+ <g style="fill: #464646">
+ <path d="M228.883 506.363C228.882 506.362 228.88 506.359 228.878 506.357C228.865 506.342 228.852 506.327 228.837 506.313C228.824 506.3 228.809 506.288 228.795 506.276C228.826 506.302 228.855 506.332 228.883 506.363z"/>
+ </g>
+ <g style="fill: #464646">
+ <path d="M228.5 506.114C228.5 506.114 228.5 506.114 228.5 506.114C228.501 506.115 228.502 506.115 228.503 506.115C228.502 506.115 228.501 506.114 228.5 506.114z"/>
+ </g>
+ <g style="fill: #757575">
+ <path d="M228.861 506.818C229.004 506.607 228.769 506.575 228.624 506.655C228.577 506.681 228.539 506.693 228.505 506.697C228.498 506.724 228.496 506.747 228.488 506.774C228.456 506.88 228.416 506.954 228.446 507.08C228.495 507.26 228.712 507.026 228.861 506.818z"/>
+ </g>
+ <g style="fill: #2e2e2e">
+ <path d="M228.319 507.286C228.26 507.438 228.198 507.556 228.122 507.636C228.25 507.571 228.396 507.442 228.569 507.291C228.569 507.291 228.465 507.289 228.319 507.286z"/>
+ </g>
+ <g style="fill: #2e2e2e">
+ <path d="M228.906 506.388C228.903 506.384 228.9 506.381 228.897 506.378C228.893 506.373 228.888 506.369 228.883 506.363C228.855 506.332 228.826 506.302 228.795 506.276C228.793 506.274 228.791 506.271 228.788 506.269C228.786 506.268 228.784 506.266 228.782 506.265C228.782 506.265 228.782 506.264 228.782 506.264C228.747 506.236 228.711 506.212 228.674 506.19C228.674 506.19 228.674 506.19 228.673 506.19C228.659 506.182 228.646 506.174 228.631 506.167C228.61 506.156 228.588 506.147 228.567 506.139C228.566 506.138 228.566 506.138 228.565 506.138C228.544 506.13 228.523 506.121 228.503 506.115C228.502 506.115 228.501 506.115 228.5 506.114C228.517 506.179 228.53 506.255 228.537 506.338C228.728 506.365 228.877 506.384 228.901 506.387C228.902 506.387 228.906 506.387 228.906 506.388z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M208.688 507.187C209.017 507.187 209.288 507.102 209.288 506.999C209.288 506.896 209.017 506.812 208.688 506.812L208.538 506.812C208.207 506.812 207.938 506.896 207.938 506.999C207.938 507.102 208.207 507.187 208.538 507.187L208.688 507.187z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M208.697 508.12C209.026 508.103 209.291 508.004 209.286 507.901C209.28 507.798 209.006 507.728 208.676 507.746L208.527 507.754C208.197 507.772 207.932 507.87 207.938 507.973C207.943 508.076 208.217 508.146 208.547 508.128L208.697 508.12z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M208.791 509.064C209.118 509.02 209.374 508.901 209.361 508.798C209.347 508.696 209.068 508.649 208.741 508.693L208.592 508.713C208.265 508.757 208.009 508.876 208.023 508.979C208.036 509.081 208.315 509.128 208.642 509.084L208.791 509.064z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M208.904 510.136C209.224 510.055 209.465 509.906 209.44 509.806C209.414 509.707 209.132 509.691 208.812 509.773L208.667 509.81C208.347 509.891 208.106 510.04 208.131 510.14C208.157 510.24 208.439 510.255 208.759 510.173L208.904 510.136z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M209.111 511.213C209.425 511.114 209.658 510.953 209.627 510.854C209.596 510.756 209.313 510.756 208.998 510.855L208.855 510.9C208.54 510.999 208.308 511.161 208.339 511.259C208.37 511.357 208.653 511.357 208.967 511.258L209.111 511.213z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M209.41 512.301C209.714 512.174 209.931 511.993 209.892 511.897C209.852 511.802 209.57 511.828 209.266 511.954L209.127 512.012C208.822 512.139 208.606 512.32 208.645 512.416C208.685 512.511 208.966 512.485 209.271 512.358L209.41 512.301z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M209.843 513.327C210.11 513.207 210.301 513.036 210.266 512.946C210.231 512.856 209.984 512.88 209.716 513L209.594 513.054C209.327 513.174 209.136 513.346 209.171 513.436C209.205 513.525 209.453 513.501 209.721 513.381L209.843 513.327z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M210.235 514.293C210.482 514.134 210.644 513.935 210.596 513.852C210.548 513.768 210.307 513.83 210.06 513.989L209.949 514.061C209.702 514.22 209.54 514.419 209.588 514.503C209.636 514.586 209.877 514.524 210.123 514.365L210.235 514.293z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M210.673 515.17C210.902 515.02 211.054 514.832 211.009 514.752C210.964 514.673 210.74 514.732 210.51 514.882L210.406 514.951C210.177 515.102 210.026 515.29 210.07 515.369C210.115 515.448 210.339 515.389 210.569 515.239L210.673 515.17z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M211.245 516.084C211.439 515.942 211.567 515.763 211.529 515.688C211.491 515.613 211.301 515.669 211.107 515.812L211.019 515.876C210.824 516.019 210.697 516.197 210.735 516.272C210.772 516.347 210.962 516.292 211.156 516.149L211.245 516.084z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M211.784 516.885C211.968 516.75 212.09 516.582 212.054 516.512C212.018 516.441 211.837 516.493 211.652 516.628L211.568 516.689C211.383 516.823 211.262 516.991 211.298 517.062C211.334 517.132 211.515 517.08 211.7 516.946L211.784 516.885z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M212.509 517.744C212.684 517.583 212.799 517.382 212.765 517.297C212.731 517.212 212.56 517.275 212.384 517.436L212.305 517.509C212.13 517.67 212.014 517.872 212.048 517.956C212.083 518.041 212.254 517.979 212.429 517.817L212.509 517.744z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M213.301 518.543C213.438 518.365 213.527 518.143 213.501 518.049C213.474 517.956 213.341 518.025 213.205 518.203L213.143 518.284C213.006 518.462 212.917 518.685 212.943 518.778C212.97 518.872 213.103 518.803 213.239 518.625L213.301 518.543z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M214.155 519.195C214.27 518.999 214.346 518.755 214.324 518.652C214.301 518.549 214.188 518.625 214.073 518.821L214.021 518.91C213.906 519.106 213.83 519.351 213.852 519.454C213.875 519.557 213.987 519.481 214.103 519.285L214.155 519.195z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M215.278 519.701C215.357 519.488 215.388 519.234 215.348 519.136C215.307 519.039 215.21 519.134 215.131 519.347L215.095 519.444C215.017 519.658 214.986 519.912 215.026 520.009C215.066 520.107 215.164 520.012 215.242 519.798L215.278 519.701z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M216.366 520.114C216.444 519.9 216.475 519.646 216.435 519.549C216.395 519.451 216.297 519.546 216.219 519.76L216.183 519.857C216.104 520.07 216.073 520.324 216.113 520.422C216.154 520.519 216.251 520.424 216.33 520.211L216.366 520.114z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M217.441 520.259C217.464 520.062 217.431 519.841 217.367 519.768C217.304 519.695 217.233 519.795 217.21 519.992L217.2 520.082C217.177 520.278 217.21 520.499 217.273 520.573C217.337 520.646 217.407 520.545 217.43 520.348L217.441 520.259z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M218.266 520.34C218.289 520.184 218.256 520.009 218.192 519.951C218.129 519.893 218.058 519.973 218.035 520.129L218.025 520.2C218.002 520.356 218.035 520.531 218.098 520.589C218.162 520.647 218.232 520.567 218.255 520.411L218.266 520.34z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M219.173 520.351C219.188 520.22 219.166 520.073 219.124 520.024C219.082 519.975 219.035 520.043 219.019 520.174L219.012 520.233C218.997 520.365 219.019 520.512 219.061 520.561C219.104 520.609 219.151 520.542 219.166 520.411L219.173 520.351z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M219.811 520.426C219.826 520.295 219.804 520.148 219.762 520.099C219.719 520.05 219.672 520.118 219.657 520.249L219.65 520.308C219.635 520.439 219.657 520.587 219.699 520.636C219.741 520.684 219.788 520.617 219.804 520.486L219.811 520.426z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M220.337 520.776C220.442 520.598 220.525 520.381 220.521 520.293C220.517 520.206 220.428 520.28 220.323 520.458L220.275 520.539C220.17 520.717 220.088 520.935 220.092 521.022C220.096 521.11 220.185 521.035 220.29 520.857L220.337 520.776z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M220.95 521.294C221.101 521.152 221.24 520.966 221.261 520.881C221.282 520.796 221.175 520.842 221.025 520.984L220.807 521.199C220.656 521.341 220.516 521.526 220.496 521.611C220.475 521.697 220.582 521.65 220.732 521.508L220.95 521.294z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M221.513 521.707C221.663 521.565 221.803 521.379 221.824 521.294C221.844 521.209 221.738 521.255 221.587 521.397L221.369 521.611C221.219 521.753 221.079 521.939 221.058 522.024C221.038 522.109 221.144 522.063 221.294 521.921L221.513 521.707z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M222.15 521.932C222.301 521.79 222.44 521.604 222.461 521.519C222.482 521.434 222.375 521.48 222.225 521.622L222.007 521.836C221.856 521.978 221.716 522.164 221.696 522.249C221.675 522.334 221.781 522.288 221.932 522.146L222.15 521.932z"/>
+ </g>
+ <g style="fill: #5b0e00">
+ <path d="M223.8 503.887C223.8 503.887 225.6 504.074 225.825 504.187C226.05 504.299 226.313 504.449 226.313 504.449C226.313 504.449 226.2 504.074 225.863 504.036C225.038 503.887 223.8 503.887 223.8 503.887z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M227.85 508.124C227.775 508.649 228.075 514.424 227.025 515.324C227.475 514.424 227.55 512.549 227.55 512.549L227.625 509.174L227.85 508.124z"/>
+ </g>
+ <g style="fill: #651e00">
+ <path d="M204.413 528.899C203.738 529.312 201.413 531.187 200.7 532.124C200.663 532.387 200.475 532.912 200.475 532.912C200.475 532.912 202.125 531.112 204.525 529.499C204.948 529.215 204.413 528.899 204.413 528.899z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M202.075 530.249C201.575 532.049 199.475 534.249 197.975 534.549C200.575 532.749 202.075 530.249 202.075 530.249z"/>
+ </g>
+ <g style="fill: #410000">
+ <path d="M204.3 528.749C205.05 528.149 208.725 526.274 210.3 526.499C210.488 526.837 210.45 527.849 210.45 527.849C210.45 527.849 204.6 529.349 204.3 529.949C204 530.549 204.3 528.749 204.3 528.749z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M207.9 526.349L205.65 527.249L205.35 529.949C205.35 529.949 205.646 529.844 206.039 529.704L206.261 528.964C206.122 529.013 206.027 529.047 206.027 529.047L206.176 527.7L207.298 527.252C207.298 527.252 207.523 528.523 207.298 528.598C207.142 528.65 206.583 528.849 206.261 528.964L206.039 529.704C206.693 529.471 207.619 529.143 207.9 529.049C208.35 528.899 207.9 526.349 207.9 526.349z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M208.05 526.449L207.925 526.499C208.012 527.042 208.285 528.921 207.9 529.049C206.693 529.471 205.825 529.78 205.518 529.889L205.5 530.049C205.796 529.944 206.843 529.571 208.05 529.149C208.5 528.999 208.05 526.449 208.05 526.449z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M206.326 527.8L207.323 527.402C207.309 527.311 207.298 527.252 207.298 527.252L206.176 527.7L206.027 529.047C206.027 529.047 206.094 529.023 206.195 528.987L206.326 527.8z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M207.038 527.849C207.188 527.737 207.488 527.587 207.6 527.587C207.712 527.587 207.562 527.774 207.562 527.774C207.562 527.774 207.15 527.924 207.038 528.037C206.925 528.149 207.038 527.849 207.038 527.849z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M206.938 527.799C207.087 527.687 207.387 527.537 207.5 527.537C207.613 527.537 207.462 527.724 207.462 527.724C207.462 527.724 207.05 527.874 206.938 527.987C206.825 528.099 206.938 527.799 206.938 527.799z"/>
+ </g>
+ <g style="fill: #140000">
+ <path d="M208.271 528.205C208.726 527.926 210.334 527.401 210.229 527.681C210.124 527.961 208.271 528.205 208.271 528.205z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M214.378 523.227L213.87 523.588C213.657 523.739 213.627 524.007 213.804 524.184L213.944 524.325C214.121 524.502 214.439 524.523 214.652 524.372L214.671 524.359L214.535 524.199C214.397 524.267 214.22 524.25 214.115 524.145L214.023 524.052C213.906 523.936 213.926 523.758 214.067 523.658L214.402 523.42C214.543 523.32 214.754 523.334 214.87 523.451L214.963 523.544C215.079 523.661 215.06 523.838 214.919 523.938L214.583 524.176C214.569 524.187 214.551 524.191 214.535 524.199L214.671 524.359L215.161 524.011C215.373 523.86 215.403 523.592 215.227 523.415L215.087 523.274C214.91 523.098 214.592 523.076 214.378 523.227z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M216.141 522.102L215.633 522.463C215.42 522.614 215.39 522.882 215.566 523.059L215.707 523.2C215.883 523.377 216.202 523.398 216.415 523.247L216.433 523.234L216.297 523.074C216.16 523.142 215.982 523.125 215.878 523.02L215.785 522.927C215.669 522.811 215.688 522.633 215.829 522.533L216.165 522.295C216.306 522.195 216.516 522.209 216.633 522.326L216.726 522.419C216.842 522.536 216.822 522.713 216.682 522.813L216.346 523.051C216.331 523.062 216.313 523.066 216.297 523.074L216.433 523.234L216.923 522.886C217.136 522.735 217.166 522.467 216.99 522.29L216.849 522.149C216.673 521.973 216.354 521.951 216.141 522.102z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M217.866 521.015L217.358 521.375C217.145 521.527 217.115 521.795 217.291 521.972L217.432 522.113C217.608 522.289 217.927 522.311 218.14 522.159L218.158 522.146L218.022 521.986C217.885 522.054 217.707 522.038 217.603 521.933L217.51 521.84C217.394 521.723 217.413 521.546 217.554 521.446L217.89 521.208C218.031 521.108 218.241 521.122 218.358 521.239L218.45 521.332C218.567 521.448 218.547 521.626 218.407 521.726L218.071 521.964C218.056 521.974 218.038 521.978 218.022 521.986L218.158 522.146L218.648 521.799C218.861 521.648 218.891 521.379 218.714 521.203L218.574 521.062C218.398 520.885 218.079 520.864 217.866 521.015z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M214.688 523.569L215.977 522.724L216.063 522.925L214.774 523.77L214.688 523.569z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M216.45 522.444L217.74 521.599L217.826 521.8L216.536 522.645L216.45 522.444z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M219.676 520.046L219.138 520.362C218.913 520.494 218.86 520.759 219.021 520.95L219.148 521.102C219.309 521.294 219.624 521.342 219.85 521.21L219.869 521.198L219.748 521.027C219.605 521.083 219.429 521.051 219.334 520.938L219.25 520.837C219.144 520.711 219.179 520.536 219.328 520.449L219.683 520.24C219.832 520.153 220.04 520.185 220.146 520.311L220.231 520.412C220.337 520.538 220.302 520.713 220.153 520.801L219.798 521.009C219.782 521.018 219.764 521.021 219.748 521.027L219.869 521.198L220.387 520.895C220.612 520.762 220.665 520.498 220.505 520.306L220.377 520.154C220.216 519.962 219.901 519.914 219.676 520.046z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M218.142 521.348L219.499 520.617L219.568 520.824L218.211 521.556L218.142 521.348z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M221.419 519.161L220.892 519.47C220.671 519.6 220.619 519.86 220.777 520.047L220.902 520.196C221.059 520.384 221.368 520.431 221.589 520.302L221.608 520.291L221.489 520.123C221.349 520.178 221.177 520.146 221.084 520.035L221.002 519.937C220.898 519.813 220.932 519.641 221.078 519.556L221.426 519.351C221.572 519.266 221.776 519.297 221.88 519.421L221.962 519.52C222.066 519.644 222.032 519.815 221.886 519.901L221.538 520.105C221.523 520.114 221.505 520.116 221.489 520.123L221.608 520.291L222.116 519.993C222.337 519.863 222.388 519.604 222.231 519.416L222.106 519.267C221.949 519.079 221.639 519.032 221.419 519.161z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M219.916 520.437L221.246 519.721L221.313 519.924L219.983 520.641L219.916 520.437z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M223.148 518.238L222.66 518.584C222.455 518.729 222.426 518.987 222.595 519.157L222.73 519.292C222.899 519.462 223.205 519.483 223.41 519.338L223.428 519.325L223.297 519.171C223.165 519.237 222.995 519.22 222.895 519.12L222.806 519.031C222.694 518.918 222.713 518.748 222.848 518.652L223.171 518.424C223.306 518.328 223.508 518.341 223.62 518.454L223.709 518.543C223.821 518.655 223.802 518.826 223.666 518.921L223.344 519.15C223.33 519.16 223.313 519.164 223.297 519.171L223.428 519.325L223.898 518.992C224.103 518.847 224.132 518.589 223.963 518.419L223.828 518.284C223.659 518.114 223.353 518.094 223.148 518.238z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M224.825 517.128L224.336 517.474C224.132 517.619 224.103 517.877 224.272 518.046L224.407 518.182C224.576 518.352 224.882 518.372 225.087 518.227L225.105 518.215L224.974 518.061C224.842 518.126 224.672 518.11 224.571 518.009L224.482 517.92C224.37 517.808 224.39 517.637 224.525 517.542L224.848 517.313C224.983 517.217 225.185 517.231 225.297 517.343L225.386 517.432C225.498 517.545 225.478 517.715 225.343 517.811L225.021 518.039C225.007 518.049 224.99 518.053 224.974 518.061L225.105 518.215L225.575 517.881C225.78 517.736 225.809 517.479 225.639 517.309L225.505 517.173C225.335 517.003 225.029 516.983 224.825 517.128z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M226.267 515.872L225.852 516.303C225.678 516.484 225.699 516.743 225.897 516.878L226.055 516.985C226.253 517.12 226.557 517.083 226.731 516.902L226.746 516.886L226.589 516.76C226.472 516.849 226.301 516.865 226.184 516.785L226.08 516.714C225.949 516.625 225.935 516.454 226.05 516.334L226.324 516.049C226.439 515.93 226.64 515.905 226.771 515.994L226.875 516.065C227.006 516.155 227.019 516.325 226.905 516.445L226.631 516.73C226.619 516.743 226.603 516.75 226.589 516.76L226.746 516.886L227.146 516.471C227.319 516.29 227.299 516.031 227.101 515.896L226.943 515.789C226.745 515.654 226.44 515.691 226.267 515.872z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M221.738 519.529L223.058 518.857L223.119 519.058L221.799 519.729L221.738 519.529z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M223.422 518.623L224.608 517.736L224.702 517.924L223.517 518.811L223.422 518.623z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M225.1 517.463L226.286 516.576L226.38 516.763L225.195 517.65L225.1 517.463z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M209.738 527.699C209.738 527.924 210.563 528.187 210.975 527.699C211.388 527.212 211.2 526.912 211.575 526.649C211.5 526.537 211.388 526.237 211.388 526.237C211.388 526.237 211.088 526.387 210.713 526.162C210.338 525.937 209.775 526.087 209.7 526.424L209.963 526.462C209.963 526.462 210.263 526.162 210.788 526.424C211.235 526.648 211.2 526.574 211.2 526.574C211.2 526.574 211.05 526.837 211.013 527.137C210.975 527.437 210.375 527.962 209.963 527.587C209.963 527.624 209.738 527.699 209.738 527.699z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M211.05 526.874C210.863 526.724 210.825 526.049 211.388 525.899C211.81 525.787 212.588 524.962 212.588 524.962C212.588 524.962 212.888 523.987 213.638 524.399C213.871 524.571 213.638 524.999 213.638 524.999L213.45 524.887C213.45 524.887 213.525 524.512 213.188 524.549C212.888 524.662 212.775 525.074 212.775 525.187C212.775 525.299 211.613 526.087 211.613 526.087C211.613 526.087 211.05 526.237 211.125 526.574C211.2 526.912 211.05 526.874 211.05 526.874z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M213.15 524.737L214.313 523.724L214.425 523.912L213.263 524.924L213.15 524.737z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M226.866 516.084C226.848 516.087 226.832 516.082 226.815 516.082C226.668 516.081 226.544 515.988 226.529 515.853L226.517 515.733C226.501 515.582 226.626 515.439 226.796 515.416L226.861 515.406C226.862 515.354 226.863 515.3 226.863 515.245L226.69 515.269C226.434 515.306 226.244 515.522 226.268 515.75L226.287 515.932C226.311 516.16 226.54 516.318 226.796 516.282L226.819 516.278L226.957 516.259C226.954 516.2 226.937 516.14 226.902 516.079L226.866 516.084z"/>
+ </g>
+ <g style="fill: #999999">
+ <path d="M227.188 515.652C226.988 515.647 226.797 515.641 226.596 515.635C226.346 515.629 226.27 515.724 226.441 515.88C226.497 515.929 226.524 515.954 226.58 516.004C226.764 516.166 227.113 516.313 227.367 516.323C227.374 516.323 227.381 516.323 227.388 516.323C227.336 516.269 227.297 516.23 227.244 516.177C227.083 516.156 226.892 516.075 226.785 515.98C226.748 515.947 226.73 515.932 226.693 515.899C226.58 515.796 226.627 515.729 226.792 515.732C226.924 515.736 227.05 515.739 227.182 515.742C227.349 515.748 227.56 515.822 227.676 515.923C227.712 515.956 227.73 515.971 227.767 516.004C227.883 516.11 227.852 516.196 227.688 516.194C227.557 516.192 227.431 516.188 227.299 516.185C227.28 516.182 227.263 516.18 227.244 516.177C227.297 516.23 227.336 516.269 227.388 516.323C227.58 516.328 227.764 516.333 227.955 516.337C228.203 516.339 228.242 516.201 228.066 516.039C228.01 515.989 227.984 515.966 227.928 515.916C227.753 515.764 227.441 515.661 227.188 515.652z"/>
+ </g>
+ <g style="fill: #999999">
+ <path d="M229.217 515.818C229.013 515.806 228.818 515.796 228.613 515.784C228.357 515.771 228.265 515.865 228.421 516.026C228.471 516.077 228.499 516.106 228.549 516.157C228.72 516.327 229.069 516.493 229.334 516.517C229.341 516.517 229.35 516.519 229.357 516.519C229.31 516.465 229.268 516.417 229.221 516.363C229.055 516.332 228.865 516.242 228.765 516.142C228.732 516.108 228.712 516.089 228.68 516.056C228.575 515.947 228.632 515.88 228.801 515.889C228.937 515.898 229.067 515.905 229.202 515.913C229.373 515.925 229.584 516.011 229.695 516.122C229.728 516.155 229.75 516.177 229.783 516.211C229.894 516.327 229.855 516.414 229.683 516.403C229.546 516.393 229.415 516.384 229.278 516.373C229.258 516.369 229.24 516.367 229.221 516.363C229.268 516.417 229.31 516.465 229.357 516.519C229.558 516.535 229.75 516.55 229.95 516.565C230.209 516.582 230.262 516.441 230.091 516.262C230.041 516.212 230.007 516.177 229.957 516.126C229.788 515.957 229.476 515.834 229.217 515.818z"/>
+ </g>
+ <g style="fill: #7c7c7c">
+ <path d="M227.432 515.897C227.954 515.946 228.45 515.991 228.969 516.036C228.991 516.088 229.005 516.12 229.029 516.173C228.507 516.125 228.009 516.077 227.485 516.025C227.462 515.973 227.452 515.948 227.432 515.897z"/>
+ </g>
+ <g style="fill: #999999">
+ <path d="M231.15 515.982C230.952 515.974 230.762 515.965 230.563 515.955C230.315 515.946 230.236 516.051 230.402 516.225C230.451 516.274 230.489 516.314 230.538 516.364C230.718 516.545 231.07 516.719 231.328 516.741C231.335 516.741 231.342 516.742 231.35 516.742C231.303 516.689 231.252 516.63 231.206 516.577C231.043 516.546 230.851 516.452 230.745 516.345C230.713 516.312 230.687 516.285 230.655 516.253C230.545 516.137 230.592 516.061 230.757 516.068C230.889 516.076 231.014 516.082 231.146 516.088C231.313 516.099 231.525 516.19 231.644 516.31C231.676 516.343 231.705 516.372 231.737 516.405C231.854 516.529 231.823 516.623 231.657 516.614C231.522 516.604 231.396 516.597 231.262 516.588C231.243 516.584 231.224 516.58 231.206 516.577C231.252 516.63 231.303 516.689 231.35 516.742C231.546 516.757 231.733 516.77 231.928 516.784C232.18 516.798 232.22 516.647 232.04 516.457C231.991 516.407 231.947 516.361 231.898 516.311C231.719 516.13 231.402 515.996 231.15 515.982z"/>
+ </g>
+ <g style="fill: #7c7c7c">
+ <path d="M229.435 516.1C229.943 516.144 230.427 516.185 230.933 516.227C230.957 516.279 230.977 516.322 231.003 516.375C230.495 516.33 230.008 516.286 229.498 516.239C229.474 516.187 229.459 516.152 229.435 516.1z"/>
+ </g>
+ <g style="fill: #999999">
+ <path d="M233.065 516.115C232.882 516.119 232.707 516.124 232.522 516.128C232.294 516.136 232.253 516.265 232.449 516.451C232.5 516.5 232.555 516.55 232.606 516.599C232.814 516.791 233.168 516.953 233.402 516.952C233.409 516.952 233.416 516.953 233.422 516.952C233.372 516.9 233.307 516.832 233.257 516.78C233.104 516.761 232.91 516.672 232.788 516.559C232.754 516.527 232.719 516.494 232.684 516.462C232.555 516.339 232.578 516.248 232.729 516.243C232.85 516.24 232.967 516.238 233.088 516.235C233.243 516.234 233.459 516.321 233.592 516.443C233.626 516.475 233.662 516.509 233.696 516.541C233.829 516.668 233.82 516.774 233.669 516.779C233.548 516.783 233.431 516.784 233.309 516.787C233.291 516.784 233.274 516.782 233.257 516.78C233.307 516.832 233.372 516.9 233.422 516.952C233.601 516.949 233.769 516.944 233.946 516.94C234.174 516.931 234.181 516.764 233.98 516.57C233.928 516.522 233.873 516.471 233.822 516.422C233.62 516.237 233.298 516.111 233.065 516.115z"/>
+ </g>
+ <g style="fill: #999999">
+ <path d="M234.91 516.096C234.729 516.104 234.557 516.111 234.375 516.118C234.15 516.13 234.117 516.269 234.315 516.458C234.367 516.506 234.423 516.559 234.474 516.607C234.684 516.801 235.031 516.957 235.26 516.949C235.267 516.949 235.273 516.948 235.28 516.948C235.23 516.897 235.166 516.83 235.116 516.778C234.966 516.763 234.775 516.676 234.652 516.563C234.618 516.531 234.582 516.496 234.548 516.464C234.417 516.339 234.435 516.244 234.584 516.237C234.704 516.232 234.819 516.228 234.938 516.222C235.09 516.218 235.306 516.305 235.44 516.428C235.474 516.46 235.51 516.493 235.544 516.525C235.675 516.651 235.667 516.759 235.52 516.768C235.402 516.774 235.287 516.779 235.168 516.784C235.15 516.782 235.134 516.78 235.116 516.778C235.166 516.83 235.23 516.897 235.28 516.948C235.453 516.94 235.618 516.931 235.791 516.922C236.012 516.906 236.022 516.74 235.823 516.55C235.771 516.501 235.717 516.45 235.665 516.402C235.463 516.217 235.14 516.089 234.91 516.096z"/>
+ </g>
+ <g style="fill: #999999">
+ <path d="M236.806 516.034C236.599 516.002 236.4 515.971 236.192 515.939C235.933 515.901 235.829 516.008 235.96 516.193C235.995 516.242 236.032 516.292 236.067 516.34C236.208 516.529 236.527 516.717 236.791 516.763C236.799 516.764 236.806 516.765 236.814 516.766C236.782 516.715 236.745 516.657 236.712 516.606C236.549 516.562 236.375 516.457 236.291 516.345C236.268 516.313 236.244 516.28 236.221 516.248C236.133 516.125 236.201 516.053 236.372 516.078C236.51 516.1 236.641 516.12 236.779 516.142C236.953 516.17 237.156 516.286 237.248 516.41C237.271 516.442 237.295 516.475 237.318 516.507C237.406 516.63 237.344 516.708 237.174 516.685C237.037 516.664 236.906 516.644 236.768 516.622C236.748 516.616 236.731 516.611 236.712 516.606C236.745 516.657 236.782 516.715 236.814 516.766C237.016 516.799 237.206 516.827 237.404 516.855C237.659 516.888 237.75 516.767 237.619 516.582C237.585 516.533 237.549 516.485 237.514 516.437C237.376 516.251 237.069 516.077 236.806 516.034z"/>
+ </g>
+ <g style="fill: #7c7c7c">
+ <path d="M231.485 516.315C231.986 516.365 232.466 516.412 232.966 516.46C232.99 516.511 233.018 516.568 233.043 516.62C232.54 516.568 232.058 516.518 231.553 516.465C231.53 516.414 231.508 516.366 231.485 516.315z"/>
+ </g>
+ <g style="fill: #7c7c7c">
+ <path d="M233.373 516.467C233.818 516.447 234.241 516.424 234.682 516.397C234.718 516.45 234.76 516.509 234.796 516.562C234.356 516.59 233.934 516.614 233.488 516.634C233.451 516.581 233.409 516.521 233.373 516.467z"/>
+ </g>
+ <g style="fill: #7c7c7c">
+ <path d="M235.224 516.425C235.662 516.395 236.077 516.362 236.509 516.326C236.546 516.379 236.585 516.436 236.622 516.489C236.191 516.527 235.777 516.561 235.34 516.591C235.303 516.538 235.261 516.478 235.224 516.425z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M227.81 515.533C227.79 515.341 227.625 515.201 227.422 515.182C227.386 515.243 227.346 515.303 227.304 515.362C227.426 515.384 227.523 515.471 227.536 515.589L227.548 515.709C227.564 515.86 227.439 516.003 227.269 516.027L227.248 516.03C227.276 516.09 227.287 516.153 227.282 516.213L227.407 516.195C227.663 516.159 227.853 515.943 227.829 515.714L227.81 515.533z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M188.7 595.9C188.9 597.9 187.7 600.3 186.3 604.7C184.9 609.1 186.5 610.9 185.9 612.1C185.3 613.3 183.1 609.5 182.5 609.7C181.9 609.9 179.7 612.5 182.3 614.3C184.9 616.1 182.7 617.3 185.1 620.1C187.5 622.9 188.7 617.7 190.1 618.5C190.901 618.958 191.704 620.003 192.506 620.289C192.954 620.046 193.46 619.817 194.012 619.6C194.108 619.457 194.204 619.292 194.3 619.1C195.7 616.3 196.1 611.1 198.1 602.7C203.809 590.177 196.461 584.437 188.547 579.235C186.978 583.321 185.077 587.255 182.9 590.1C182.141 591.091 181.417 592.094 180.727 593.1C180.965 593.253 181.221 593.389 181.5 593.5C185.5 595.1 188.5 593.9 188.7 595.9z"/>
+ </g>
+ <g style="fill: #bdb7ae">
+ <path d="M185.675 618.859C185.235 618.972 184.808 619.058 184.396 619.119C184.516 619.328 184.663 619.548 184.839 619.777C185.107 619.716 185.372 619.648 185.635 619.576C185.635 619.339 185.651 619.1 185.675 618.859z"/>
+ </g>
+ <g style="fill: #bdb7ae">
+ <path d="M186.6 606.3C186.333 606.673 186.067 606.806 185.817 606.758C185.389 609.703 186.396 611.108 185.9 612.1C185.3 613.3 183.1 609.5 182.5 609.7C182.047 609.851 180.686 611.367 181.159 612.875C181.892 613.232 182.673 613.614 183.48 613.967C184.829 614.557 185.947 614.91 186.863 615.17C188.699 611.742 192.431 608.529 196.95 607.2C197.005 607.184 197.06 607.165 197.115 607.148C197.398 605.777 197.72 604.297 198.1 602.7C198.881 600.986 199.416 599.4 199.741 597.925C192.795 601.14 187.723 604.728 186.6 606.3z"/>
+ </g>
+ <g style="fill: #bdb7ae">
+ <path d="M187.95 586.05C185.419 588.942 184.051 588.935 183.844 594.187C185.019 594.42 186.039 594.48 186.838 594.59C188.237 591.489 190.178 589.188 194.85 585.45C195.131 585.225 195.427 584.999 195.735 584.773C194.92 583.951 194.023 583.175 193.073 582.429C191.024 583.545 189.098 584.738 187.95 586.05z"/>
+ </g>
+ <g style="fill: #c6c1bb">
+ <path d="M198.75 596.7C196.95 597.45 193.05 598.8 191.55 600.45C190.387 601.729 187.875 604.356 186.593 603.8C186.496 604.091 186.399 604.389 186.3 604.7C186.058 605.461 185.907 606.142 185.817 606.758C186.067 606.806 186.333 606.673 186.6 606.3C187.723 604.728 192.795 601.14 199.741 597.925C199.924 597.09 200.039 596.291 200.093 595.524C199.736 596.065 199.276 596.481 198.75 596.7z"/>
+ </g>
+ <g style="fill: #c6c1bb">
+ <path d="M186.838 594.59C187.349 594.66 187.769 594.752 188.081 594.923C190.272 591.285 193.717 588.166 196.756 585.879C196.433 585.501 196.092 585.132 195.735 584.773C195.427 584.999 195.131 585.225 194.85 585.45C190.178 589.188 188.237 591.489 186.838 594.59z"/>
+ </g>
+ <g style="fill: #ccc9c4">
+ <path d="M188.081 594.923C188.435 595.117 188.651 595.413 188.7 595.9C188.886 597.759 187.862 599.966 186.593 603.8C187.875 604.356 190.387 601.729 191.55 600.45C193.05 598.8 196.95 597.45 198.75 596.7C199.276 596.481 199.736 596.065 200.093 595.524C200.367 591.575 198.991 588.492 196.756 585.879C193.717 588.166 190.272 591.285 188.081 594.923z"/>
+ </g>
+ <g style="fill: #b7aea2">
+ <path d="M186.863 615.17C188.569 615.654 189.567 615.813 189.99 616.543C190.64 617.667 192.303 617.05 185.879 618.808C185.81 618.827 185.743 618.841 185.675 618.859C185.651 619.1 185.635 619.339 185.635 619.576C187.064 619.181 188.418 618.641 189.5 618.1C189.875 617.912 190.255 617.775 190.632 617.676C191.701 615.769 193.556 614.027 196.03 612.714C196.341 611.106 196.681 609.258 197.115 607.148C197.06 607.165 197.005 607.184 196.95 607.2C192.431 608.529 188.699 611.742 186.863 615.17z"/>
+ </g>
+ <g style="fill: #ab9f8f">
+ <path d="M190.632 617.676C192.297 617.239 193.887 617.604 194.692 618.186C195.204 616.814 195.587 615.009 196.03 612.714C193.556 614.027 191.701 615.769 190.632 617.676z"/>
+ </g>
+ <g style="fill: #aea499">
+ <path d="M183.45 591.9C183.252 592.642 183.015 593.31 182.755 593.926C183.13 594.032 183.494 594.117 183.844 594.187C184.051 588.935 185.419 588.942 187.95 586.05C189.098 584.738 191.024 583.545 193.073 582.429C192.458 581.945 191.821 581.475 191.169 581.013C188.121 583.873 184.542 587.803 183.45 591.9z"/>
+ </g>
+ <g style="fill: #a59a8c">
+ <path d="M180.727 593.1C180.965 593.253 181.221 593.389 181.5 593.5C181.931 593.672 182.349 593.811 182.755 593.926C183.015 593.31 183.252 592.642 183.45 591.9C184.542 587.803 188.121 583.873 191.169 581.013C190.314 580.408 189.434 579.818 188.547 579.235C188.547 579.235 188.547 579.236 188.547 579.236C188.353 579.741 188.153 580.244 187.949 580.743C187.945 580.754 187.94 580.765 187.936 580.776C187.732 581.273 187.524 581.766 187.31 582.253C187.309 582.256 187.307 582.26 187.306 582.263C187.205 582.493 187.103 582.722 187 582.949C186.989 582.973 186.978 582.998 186.967 583.022C186.307 584.42 186.174 584.691 185.975 585.085C185.964 585.107 185.953 585.129 185.942 585.15C185.465 586.059 185.248 586.455 185.198 586.545C184.336 588.01 184.122 588.347 184.075 588.421C183.554 589.2 183.329 589.519 183.262 589.611C183.142 589.777 183.022 589.941 182.9 590.1C182.141 591.091 181.417 592.094 180.727 593.1z"/>
+ </g>
+ <g style="fill: #b7afa6">
+ <path d="M189.5 618.1C188.218 618.741 186.557 619.38 184.839 619.777C184.92 619.883 185.005 619.99 185.1 620.1C187.5 622.9 188.7 617.7 190.1 618.5C190.901 618.958 191.704 620.003 192.506 620.289C192.954 620.046 193.46 619.817 194.012 619.6C194.248 619.247 194.486 618.741 194.692 618.186C193.705 617.473 191.538 617.081 189.5 618.1z"/>
+ </g>
+ <g style="fill: #bdb7ae">
+ <path d="M185.879 618.808C192.303 617.05 190.64 617.667 189.99 616.543C189.34 615.42 187.341 615.654 183.48 613.967C182.673 613.614 181.892 613.232 181.159 612.875C181.209 613.034 181.28 613.193 181.374 613.35C181.974 613.65 182.619 613.965 183.306 614.265C187.168 615.952 188.846 615.492 189.496 616.615C190.146 617.738 191.401 617.219 185.579 618.66C185.128 618.768 184.695 618.844 184.276 618.897C184.313 618.97 184.353 619.044 184.396 619.119C184.872 619.049 185.365 618.949 185.879 618.808z"/>
+ </g>
+ <g style="fill: #b6aea3">
+ <path d="M189.496 616.615C188.846 615.492 187.168 615.952 183.306 614.265C182.619 613.965 181.974 613.65 181.374 613.35C181.505 613.57 181.682 613.786 181.915 613.995C182.297 614.184 182.702 614.375 183.133 614.563C186.994 616.251 188.352 615.564 189.002 616.687C189.652 617.81 190.5 617.387 185.279 618.513C184.897 618.588 184.529 618.641 184.172 618.678C184.204 618.75 184.238 618.823 184.276 618.897C184.695 618.844 185.128 618.768 185.579 618.66C191.401 617.219 190.146 617.738 189.496 616.615z"/>
+ </g>
+ <g style="fill: #afa599">
+ <path d="M189.002 616.687C188.352 615.564 186.994 616.251 183.133 614.563C182.702 614.375 182.297 614.184 181.915 613.995C182.03 614.099 182.156 614.201 182.3 614.3C182.586 614.499 182.812 614.689 182.994 614.876C186.825 616.542 187.86 615.639 188.508 616.759C189.158 617.882 189.598 617.556 184.979 618.365C184.671 618.41 184.373 618.443 184.085 618.464C184.111 618.534 184.14 618.605 184.172 618.678C184.529 618.641 184.897 618.588 185.279 618.513C190.5 617.387 189.652 617.81 189.002 616.687z"/>
+ </g>
+ <g style="fill: #a99d8e">
+ <path d="M188.508 616.759C187.86 615.639 186.825 616.542 182.994 614.876C183.175 615.061 183.314 615.242 183.417 615.422C186.728 616.723 187.401 615.772 188.014 616.831C188.664 617.954 188.696 617.724 184.68 618.217C184.449 618.237 184.229 618.247 184.012 618.254C184.034 618.323 184.058 618.393 184.085 618.464C184.373 618.443 184.671 618.41 184.979 618.365C189.598 617.556 189.158 617.882 188.508 616.759z"/>
+ </g>
+ <g style="fill: #a29483">
+ <path d="M188.014 616.831C187.401 615.772 186.728 616.723 183.417 615.422C183.501 615.567 183.563 615.712 183.61 615.857C186.55 616.911 186.93 615.884 187.52 616.902C187.975 617.688 187.926 617.859 186.687 617.951C186.575 617.968 186.442 617.978 186.294 617.984C186.07 618.042 185.76 618.052 185.375 618.021C185.076 618.035 184.746 618.05 184.38 618.069C184.233 618.071 184.096 618.066 183.956 618.064C183.973 618.126 183.991 618.19 184.012 618.254C184.229 618.247 184.449 618.237 184.68 618.217C188.696 617.724 188.664 617.954 188.014 616.831z"/>
+ </g>
+ <g style="fill: #9b8c79">
+ <path d="M185.375 618.021C184.579 617.946 184.023 617.917 183.918 617.905C183.929 617.957 183.942 618.01 183.956 618.064C184.096 618.066 184.233 618.071 184.38 618.069C184.746 618.05 185.076 618.035 185.375 618.021z"/>
+ </g>
+ <g style="fill: #9b8c79">
+ <path d="M187.026 616.974C187.385 617.595 187.304 617.861 186.687 617.951C187.926 617.859 187.975 617.688 187.52 616.902C186.93 615.884 186.55 616.911 183.61 615.857C183.652 615.984 183.682 616.113 183.705 616.243C186.327 617.091 186.455 615.99 187.026 616.974z"/>
+ </g>
+ <g style="fill: #94836e">
+ <path d="M184.805 617.956C184.527 617.916 184.223 617.862 183.895 617.796C183.913 617.885 183.985 617.914 184.08 617.921C184.341 617.934 184.579 617.946 184.805 617.956z"/>
+ </g>
+ <g style="fill: #94836e">
+ <path d="M186.531 617.046C186.841 617.58 186.729 617.872 186.294 617.984C187.258 617.946 187.45 617.708 187.026 616.974C186.455 615.99 186.327 617.091 183.705 616.243C183.726 616.361 183.741 616.48 183.754 616.601C186.072 617.257 185.98 616.093 186.531 617.046z"/>
+ </g>
+ <g style="fill: #8d7b63">
+ <path d="M186.531 617.046C185.98 616.093 186.072 617.257 183.754 616.601C183.792 616.973 183.808 617.364 183.895 617.796C186.03 618.226 187.17 618.149 186.531 617.046z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M222.3 606.3C221.1 605.1 225.1 594.7 226.9 591.5C228.7 588.3 229.3 568.3 224.3 563.9C219.3 559.5 218.9 564.3 213.5 570.1C208.1 575.9 206.5 573.9 204.3 569.7C202.1 565.5 198.3 565.3 197.9 572.5C197.5 579.7 203.9 591.1 211.1 590.3C218.3 589.5 216.9 600.9 216.9 600.9C216.5 604.9 215.1 615.1 210.1 616.1C206.101 616.9 198.524 617.829 194.012 619.6C193.51 620.349 193.008 620.469 192.506 620.289C192.037 620.544 191.628 620.813 191.3 621.1C188.1 623.9 185.1 631.1 189.3 633.1C193.5 632.5 195.3 633.3 192.1 636.9C188.9 636.5 190.7 640.3 190.7 643.7C191.7 642.7 194.3 641.3 195.1 642.7C195.9 644.101 198.1 639.1 200.5 639.1C202.9 639.1 207.1 635.3 208.1 635.5C209.1 635.7 207.1 627.3 210.5 623.9C210.795 623.605 211.161 623.284 211.581 622.937C213.081 620.774 214.565 619.435 215.3 618.7C216.364 617.636 224.815 610.753 227.274 603.768C227.283 603.679 227.293 603.59 227.3 603.5C228.1 593.3 223.5 607.5 222.3 606.3z"/>
+ </g>
+ <g style="fill: #bdb7ae">
+ <path d="M190.964 642.695C190.859 642.997 190.769 643.266 190.697 643.485C190.698 643.557 190.7 643.629 190.7 643.7C190.768 643.632 190.844 643.562 190.926 643.492C190.958 643.226 190.967 642.95 190.964 642.695z"/>
+ </g>
+ <g style="fill: #bdb7ae">
+ <path d="M217.5 577.65C217.942 579.166 218.079 582.019 217.17 585.039C218.269 585.28 219.32 585.473 220.289 585.602C220.334 585.537 220.379 585.474 220.426 585.412C221.08 581.015 220.395 578 219.134 575.937C216.671 576.462 211.771 575.638 214.9 572.9C214.631 572.726 214.509 572.488 214.506 572.199C213.582 571.849 212.715 571.664 212.038 571.566C207.786 575.491 206.288 573.494 204.3 569.7C202.1 565.5 198.3 565.3 197.9 572.5C197.792 574.451 198.183 576.711 198.954 578.952C199.911 579.383 201.252 579.939 202.831 580.549C209.496 577.248 216.776 575.168 217.5 577.65z"/>
+ </g>
+ <g style="fill: #bdb7ae">
+ <path d="M188.608 632.676C188.257 631.866 187.842 631.148 187.35 630.584C187.527 631.419 187.925 632.144 188.608 632.676z"/>
+ </g>
+ <g style="fill: #c6c1bb">
+ <path d="M217.5 577.65C216.776 575.168 209.496 577.248 202.831 580.549C206.873 582.108 212.471 584.01 217.17 585.039C218.079 582.019 217.942 579.166 217.5 577.65z"/>
+ </g>
+ <g style="fill: #b7aea2">
+ <path d="M220.064 596.585C219.109 597.124 218.083 597.66 217.003 598.193C217.042 599.743 216.9 600.9 216.9 600.9C216.864 601.262 216.819 601.676 216.765 602.128C217.019 602.052 217.281 601.978 217.547 601.905C218.48 600.093 219.317 598.318 220.064 596.585z"/>
+ </g>
+ <g style="fill: #ab9f8f">
+ <path d="M216.765 602.128C216.702 602.644 216.627 603.211 216.535 603.812C216.884 603.173 217.223 602.536 217.547 601.905C217.281 601.978 217.019 602.052 216.765 602.128z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M222.5 606.7C224.573 605.237 226.158 603.221 227.374 600.884C227.365 600.737 227.352 600.606 227.335 600.491C227.104 600.385 226.828 600.244 226.527 600.058C225.29 601.371 223.079 607.079 222.3 606.3C221.577 605.576 222.744 601.507 224.18 597.689C224.16 597.655 224.139 597.621 224.119 597.586C221.722 602.783 213.448 613.09 222.5 606.7z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M190.9 641.7C190.3 638.1 193.9 637.1 193.9 637.1C193.9 637.1 193.987 637.112 194.139 637.119C194.417 636.539 196.208 632.878 198.853 629.072C198.594 628.899 197.459 627.901 200.7 625.2C202.357 623.819 205.222 620.339 207.978 616.489C203.798 617.212 197.816 618.107 194.012 619.6C193.51 620.349 193.008 620.469 192.506 620.289C192.037 620.544 191.628 620.813 191.3 621.1C188.95 623.157 186.712 627.584 187.35 630.584C187.842 631.148 188.257 631.866 188.608 632.676C188.813 632.835 189.042 632.978 189.3 633.1C193.5 632.5 195.3 633.3 192.1 636.9C188.967 636.509 190.625 640.142 190.697 643.485C190.769 643.266 190.859 642.997 190.964 642.695C190.959 642.146 190.9 641.7 190.9 641.7z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M227.7 584.45C228.331 584.901 227.055 586.04 226.541 586.59C226.922 586.945 227.354 587.327 227.815 587.715C227.976 586.472 228.094 585.02 228.156 583.456C227.878 583.83 227.594 584.201 227.301 584.568C227.456 584.534 227.592 584.495 227.7 584.45z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M216.507 594.485C216.514 594.51 216.521 594.536 216.528 594.561C216.558 594.548 216.587 594.536 216.616 594.523C216.58 594.511 216.544 594.498 216.507 594.485z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M214.9 572.9C211.771 575.638 216.671 576.462 219.134 575.937C220.395 578 221.08 581.015 220.426 585.412C220.654 585.107 220.886 584.857 221 584.8C221.021 584.79 221.065 584.782 221.128 584.776C222.887 581.973 225.488 577.599 227.695 572.971C227.351 570.514 226.818 568.251 226.052 566.509C224.905 568.365 222.688 572.029 221.1 573.3C219.1 574.9 217.1 575.7 215.1 574.1C215.1 574.1 218.55 564.9 221.916 562.344C218.976 561.329 217.891 565.384 213.5 570.1C212.978 570.66 212.493 571.146 212.038 571.566C212.715 571.664 213.582 571.849 214.506 572.199C214.509 572.488 214.631 572.726 214.9 572.9z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M223.449 595.902C223.293 595.291 223.2 594.611 223.2 593.85C221.659 594.7 220.411 595.01 219.324 595.028C218.798 595.903 218.05 596.91 216.995 597.93C216.998 598.019 217.001 598.106 217.003 598.193C218.083 597.66 219.109 597.124 220.064 596.585C219.056 598.921 217.885 601.334 216.535 603.812C216.313 605.274 215.996 606.936 215.544 608.559C217.699 603.578 221.478 597.874 223.449 595.902z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M208.9 620.1C214.158 618.617 213.157 617.749 214.1 612.9C214.16 612.593 214.236 612.274 214.325 611.945C213.327 614.076 211.964 615.727 210.1 616.1C209.854 616.149 209.595 616.199 209.324 616.249C206.997 619.459 204.533 622.305 203.11 623.886C204.914 622.092 206.88 620.67 208.9 620.1z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M216.616 594.523C216.512 594.568 216.562 594.689 216.589 594.8C216.712 594.745 216.832 594.69 216.952 594.635C216.839 594.599 216.727 594.562 216.616 594.523z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M219.324 595.028C219.242 595.03 219.162 595.03 219.082 595.028C218.61 595.811 217.938 596.723 216.982 597.658C216.987 597.75 216.991 597.84 216.995 597.93C218.05 596.91 218.798 595.903 219.324 595.028z"/>
+ </g>
+ <g style="fill: #998778">
+ <path d="M216.952 594.635C216.832 594.69 216.712 594.745 216.589 594.8C216.608 594.878 216.626 594.955 216.644 595.033C216.856 594.932 217.064 594.832 217.264 594.731C217.159 594.701 217.055 594.669 216.952 594.635z"/>
+ </g>
+ <g style="fill: #998778">
+ <path d="M219.082 595.028C219.006 595.026 218.93 595.024 218.855 595.02C218.432 595.716 217.834 596.539 216.967 597.397C216.973 597.485 216.978 597.571 216.982 597.658C217.938 596.723 218.61 595.811 219.082 595.028z"/>
+ </g>
+ <g style="fill: #8e7769">
+ <path d="M218.855 595.02C218.786 595.016 218.718 595.009 218.65 595.003C218.268 595.619 217.737 596.361 216.949 597.148C216.956 597.231 216.962 597.314 216.967 597.397C217.834 596.539 218.432 595.716 218.855 595.02z"/>
+ </g>
+ <g style="fill: #8e7769">
+ <path d="M217.264 594.731C217.064 594.832 216.856 594.932 216.644 595.033C216.66 595.108 216.676 595.183 216.691 595.259C216.991 595.109 217.277 594.959 217.549 594.809C217.453 594.785 217.358 594.759 217.264 594.731z"/>
+ </g>
+ <g style="fill: #83685b">
+ <path d="M218.65 595.003C218.591 594.998 218.532 594.991 218.473 594.984C218.118 595.527 217.649 596.192 216.93 596.913C216.937 596.992 216.943 597.07 216.949 597.148C217.737 596.361 218.268 595.619 218.65 595.003z"/>
+ </g>
+ <g style="fill: #83685b">
+ <path d="M217.549 594.809C217.277 594.959 216.991 595.109 216.691 595.259C216.706 595.33 216.72 595.402 216.733 595.473C217.11 595.272 217.47 595.071 217.802 594.87C217.717 594.851 217.633 594.831 217.549 594.809z"/>
+ </g>
+ <g style="fill: #77584d">
+ <path d="M218.473 594.984C218.432 594.979 218.391 594.974 218.35 594.969C217.986 595.454 217.567 596.047 216.909 596.703C216.916 596.773 216.923 596.844 216.93 596.913C217.649 596.192 218.118 595.527 218.473 594.984z"/>
+ </g>
+ <g style="fill: #77584d">
+ <path d="M217.802 594.87C217.47 595.071 217.11 595.272 216.733 595.473C216.746 595.542 216.758 595.611 216.77 595.68C217.217 595.426 217.637 595.171 218.022 594.915C217.949 594.901 217.875 594.886 217.802 594.87z"/>
+ </g>
+ <g style="fill: #6c483e">
+ <path d="M218.35 594.969C218.34 594.967 218.329 594.966 218.319 594.965C217.877 595.435 217.485 595.956 216.89 596.531C216.897 596.588 216.903 596.646 216.909 596.703C217.567 596.047 217.986 595.454 218.35 594.969z"/>
+ </g>
+ <g style="fill: #6c483e">
+ <path d="M218.022 594.915C217.637 595.171 217.217 595.426 216.77 595.68C216.781 595.744 216.791 595.808 216.801 595.872C217.305 595.567 217.778 595.258 218.211 594.947C218.148 594.937 218.085 594.927 218.022 594.915z"/>
+ </g>
+ <g style="fill: #613830">
+ <path d="M218.319 594.965C218.283 594.96 218.247 594.953 218.211 594.947C217.778 595.258 217.305 595.567 216.801 595.872C216.836 596.093 216.866 596.313 216.89 596.531C217.485 595.956 217.877 595.435 218.319 594.965z"/>
+ </g>
+ <g style="fill: #4b2b01">
+ <path d="M215.1 574.1C217.1 575.7 219.1 574.9 221.1 573.3C222.688 572.029 224.905 568.365 226.052 566.509C225.566 565.402 224.986 564.503 224.3 563.9C223.366 563.077 222.592 562.577 221.916 562.344C218.55 564.9 215.1 574.1 215.1 574.1z"/>
+ </g>
+ <g style="fill: #8d7b63">
+ <path d="M208.9 620.1C206.88 620.67 204.914 622.092 203.11 623.886C202.361 624.718 201.9 625.2 201.9 625.2C201.9 627.3 200.7 629.4 198.9 629.1C198.9 629.1 198.882 629.091 198.853 629.072C196.208 632.878 194.417 636.539 194.139 637.119C195.158 637.164 199.154 636.98 200.132 631.444C200.084 630.902 200.3 630.1 200.3 630.1C200.885 628.813 202.909 627.115 205.049 625.887C205.27 625.461 205.563 625.073 205.95 624.75C208.65 622.5 213.6 618.9 214.95 617.1C216.3 615.3 216.75 611.7 219.45 611.7C222.029 611.7 226.849 604.385 227.278 603.726C227.286 603.651 227.294 603.576 227.3 603.5C227.393 602.322 227.412 601.472 227.374 600.884C226.158 603.221 224.573 605.237 222.5 606.7C213.448 613.09 221.722 602.783 224.119 597.586C223.842 597.098 223.611 596.538 223.449 595.902C221.478 597.874 217.699 603.578 215.544 608.559C215.214 609.74 214.814 610.9 214.325 611.945C214.236 612.274 214.16 612.593 214.1 612.9C213.157 617.749 214.158 618.617 208.9 620.1z"/>
+ </g>
+ <g style="fill: #6d5434">
+ <path d="M219.45 611.7C216.75 611.7 216.3 615.3 214.95 617.1C213.6 618.9 208.65 622.5 205.95 624.75C205.563 625.073 205.27 625.461 205.049 625.887C206.565 625.017 208.139 624.383 209.3 624.3C209.3 624.3 209.075 625.305 208.804 626.654C208.796 626.885 208.8 627.093 208.809 627.278C209.112 625.976 209.627 624.773 210.5 623.9C210.795 623.605 211.161 623.284 211.581 622.937C211.933 622.441 212.138 622.169 212.199 622.09C212.353 621.888 212.506 621.694 212.657 621.509C212.673 621.49 212.689 621.469 212.705 621.45C212.964 621.134 213.216 620.843 213.459 620.576C213.474 620.558 213.49 620.541 213.506 620.524C213.662 620.352 213.813 620.19 213.959 620.038C213.962 620.035 213.966 620.031 213.969 620.028C214.046 619.947 214.12 619.87 214.194 619.795C214.199 619.79 214.203 619.786 214.208 619.781C214.344 619.643 214.473 619.513 214.595 619.393C214.614 619.374 214.632 619.356 214.651 619.338C214.902 619.091 215.124 618.876 215.3 618.7C216.364 617.636 224.815 610.753 227.274 603.768C227.276 603.754 227.277 603.74 227.278 603.726C226.849 604.385 222.029 611.7 219.45 611.7z"/>
+ </g>
+ <g style="fill: #bdb7ae">
+ <path d="M206.25 636C206.185 636.13 206.018 636.339 205.785 636.583C205.789 636.592 205.793 636.601 205.797 636.61C206.777 635.989 207.592 635.497 208.012 635.494C207.925 635.132 207.818 634.782 207.696 634.444C207.299 635.29 206.466 635.569 206.25 636z"/>
+ </g>
+ <g style="fill: #bdb7ae">
+ <path d="M208.804 626.654C208.726 627.044 208.644 627.461 208.563 627.892C208.602 627.914 208.638 627.934 208.671 627.954C208.712 627.727 208.757 627.501 208.809 627.278C208.8 627.093 208.796 626.885 208.804 626.654z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M205.7 636.671C205.733 636.65 205.765 636.63 205.797 636.61C205.793 636.601 205.789 636.592 205.785 636.583C205.757 636.612 205.73 636.641 205.7 636.671z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M200.5 639.1C200.983 639.1 201.539 638.945 202.126 638.701C202.05 638.704 201.974 638.707 201.9 638.7C200.25 638.55 197.85 639.9 197.4 640.5C197.051 640.965 196.342 642.6 195.273 642.894C196.187 643.471 198.256 639.1 200.5 639.1z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M192.862 642.343C192.752 642.376 192.644 642.421 192.538 642.476C192.646 642.428 192.754 642.384 192.862 642.343z"/>
+ </g>
+ <g style="fill: #aea599">
+ <path d="M207.9 633.15C207.942 633.699 207.851 634.113 207.696 634.444C207.818 634.782 207.925 635.132 208.012 635.494C208.043 635.494 208.073 635.495 208.1 635.5C208.534 635.587 208.403 634.051 208.394 632.008C208.251 631.802 208.117 631.599 207.999 631.394C207.912 632.122 207.869 632.744 207.9 633.15z"/>
+ </g>
+ <g style="fill: #aea599">
+ <path d="M208.538 628.028C208.58 628.029 208.619 628.033 208.656 628.038C208.661 628.01 208.666 627.982 208.671 627.954C208.638 627.934 208.602 627.914 208.563 627.892C208.555 627.937 208.546 627.982 208.538 628.028z"/>
+ </g>
+ <g style="fill: #9b8f7f">
+ <path d="M207.999 631.394C208.117 631.599 208.251 631.802 208.394 632.008C208.388 630.786 208.428 629.385 208.656 628.038C208.619 628.033 208.58 628.029 208.538 628.028C208.325 629.167 208.119 630.383 207.999 631.394z"/>
+ </g>
+ <g style="fill: #ab9982">
+ <path d="M201.9 625.2C201.9 627.3 200.7 629.4 198.9 629.1C198.9 629.1 197.1 628.2 200.7 625.2C204.3 622.2 213.6 609.3 215.1 604.2C214.8 611.7 201.9 625.2 201.9 625.2z"/>
+ </g>
+ <g style="fill: #806a4f">
+ <path d="M200.7 625.2C197.459 627.901 198.594 628.899 198.853 629.072C198.882 629.091 198.9 629.1 198.9 629.1C200.7 629.4 201.9 627.3 201.9 625.2C201.9 625.2 205.773 621.148 209.324 616.249C208.902 616.327 208.452 616.407 207.978 616.489C205.222 620.339 202.357 623.819 200.7 625.2z"/>
+ </g>
+ <g style="fill: #6c502d">
+ <path d="M201.3 625.425C201.225 626.175 200.1 628.8 199.35 628.65C198.075 627.975 201.3 625.425 201.3 625.425z"/>
+ </g>
+ <g style="fill: #3a1100">
+ <path d="M200.625 626.025C200.25 626.325 198.675 628.125 199.425 628.275C200.55 628.275 200.625 626.025 200.625 626.025z"/>
+ </g>
+ <g style="fill: #836e54">
+ <path d="M196.1 628.35C195.819 628.818 196.175 630.05 196.775 630.425C197.375 630.8 196.675 632.025 196.225 632.175C195.354 632.466 194.338 636.86 194.375 636.375C196.025 634.2 197.25 632.175 198.15 631.65C199.275 631.5 202.2 630.15 200.25 629.175C199.35 629.55 198.15 629.7 197.55 627.975C197.175 627.6 196.325 627.975 196.1 628.35z"/>
+ </g>
+ <g style="fill: #aea294">
+ <path d="M197.038 628.824C197.732 628.593 198.128 629.264 198.493 629.689C198.857 630.114 199.281 629.778 199.854 629.775C200.565 629.771 200.283 630.826 199.128 630.461C197.974 630.097 197.524 630.082 197.221 629.779C196.917 629.475 196.491 629.007 197.038 628.824z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M221.486 584.76C223.113 582.187 225.589 578.075 227.783 573.629C227.755 573.408 227.726 573.189 227.695 572.971C225.488 577.599 222.887 581.973 221.128 584.776C221.214 584.768 221.335 584.763 221.486 584.76z"/>
+ </g>
+ <g style="fill: #020000">
+ <path d="M227.301 584.568C227.594 584.201 227.878 583.83 228.156 583.456C228.279 580.379 228.187 576.865 227.783 573.629C225.589 578.075 223.113 582.187 221.486 584.76C222.714 584.742 225.887 584.879 227.301 584.568z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M210.09 583.363C210.173 583.259 210.225 583.2 210.225 583.2L211.725 583.725C211.688 583.76 211.655 583.798 211.62 583.835C214.621 584.735 217.63 585.486 220.137 585.833C220.185 585.756 220.236 585.678 220.289 585.602C213.56 584.705 202.932 580.745 198.954 578.952C198.993 579.065 199.033 579.178 199.074 579.291C201.387 580.308 205.629 581.952 210.09 583.363z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M226.4 586.75C226.391 586.762 226.375 586.774 226.358 586.786C226.777 587.177 227.259 587.603 227.772 588.033C227.787 587.928 227.801 587.823 227.815 587.715C227.354 587.327 226.922 586.945 226.541 586.59C226.485 586.65 226.435 586.706 226.4 586.75z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M227.269 600.168C227.104 600.089 226.923 599.992 226.73 599.877C226.666 599.921 226.598 599.983 226.527 600.058C226.828 600.244 227.104 600.385 227.335 600.491C227.317 600.365 227.295 600.258 227.269 600.168z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M216.952 594.635C217.358 594.759 217.633 594.831 217.802 594.87C218.085 594.927 218.247 594.953 218.319 594.965C218.329 594.966 218.34 594.967 218.35 594.969C218.91 595.031 219.087 595.032 219.324 595.028C220.411 595.01 221.659 594.7 223.2 593.85C223.2 595.461 223.606 596.716 224.18 597.689C224.22 597.583 224.26 597.476 224.3 597.37C223.808 596.461 223.47 595.307 223.47 593.85L223.47 593.393L223.07 593.614C220.033 595.289 218.221 594.822 216.413 594.164C216.446 594.271 216.478 594.377 216.507 594.485C216.58 594.511 216.727 594.562 216.952 594.635z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M210.09 583.363C205.629 581.952 201.387 580.308 199.074 579.291C199.584 580.702 200.242 582.1 201.019 583.403C203.054 584.223 205.693 585.206 208.49 586.129C208.966 584.832 209.773 583.756 210.09 583.363z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M205.288 588.398C206.109 589.029 206.972 589.53 207.865 589.865C207.88 589.679 207.898 589.485 207.918 589.286C207.023 588.995 206.142 588.696 205.288 588.398z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M209.402 590.267C209.961 590.349 210.528 590.363 211.1 590.3C211.127 590.297 211.153 590.296 211.18 590.293C210.61 590.127 210.039 589.955 209.469 589.779C209.446 589.938 209.424 590.102 209.402 590.267z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M219.85 586.75C219.731 586.606 219.895 586.223 220.137 585.833C217.63 585.486 214.621 584.735 211.62 583.835C210.943 584.524 210.467 585.453 210.109 586.651C216.256 588.582 222.736 590.033 225 588.75C225.374 589.236 226.192 590.027 227.169 590.87C227.402 590.191 227.607 589.216 227.772 588.033C227.259 587.603 226.777 587.177 226.358 586.786C225.74 587.207 220.336 587.333 219.85 586.75z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M226.73 599.877C226.923 599.992 227.104 600.089 227.269 600.168C227.154 599.776 226.967 599.712 226.73 599.877z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M223.07 593.614L223.47 593.393L223.47 593.85C223.47 595.307 223.808 596.461 224.3 597.37C224.812 596.027 225.351 594.731 225.847 593.634C224.992 592.881 224.289 592.19 223.95 591.75C222.372 592.644 218.745 592.209 214.612 591.211C215.487 591.934 216.053 593 216.413 594.164C218.221 594.822 220.033 595.289 223.07 593.614z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M219.85 586.75C220.336 587.333 225.74 587.207 226.358 586.786C226.375 586.774 226.391 586.762 226.4 586.75C226.75 586.3 228.4 584.95 227.7 584.45C226.4 585 221.3 584.65 221 584.8C220.7 584.95 219.586 586.433 219.85 586.75z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M221.318 584.962C221.575 584.833 225.955 585.134 227.072 584.662C227.673 585.091 226.256 586.25 225.955 586.637C225.655 587.023 220.76 587.152 220.33 586.637C220.103 586.365 221.06 585.091 221.318 584.962z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M220.33 586.637C220.76 587.152 225.655 587.023 225.955 586.637C226.256 586.25 227.673 585.091 227.072 584.662C225.955 585.134 221.575 584.833 221.318 584.962C221.06 585.091 220.103 586.365 220.33 586.637z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M221.517 585.059C221.752 584.942 225.741 585.216 226.758 584.786C227.305 585.177 226.014 586.233 225.741 586.584C225.467 586.937 221.009 587.054 220.618 586.584C220.411 586.337 221.283 585.177 221.517 585.059z"/>
+ </g>
+ <g style="fill: #080000">
+ <path d="M220.618 586.584C221.009 587.054 225.467 586.937 225.741 586.584C226.014 586.233 227.305 585.177 226.758 584.786C225.741 585.216 221.752 584.942 221.517 585.059C221.283 585.177 220.411 586.337 220.618 586.584z"/>
+ </g>
+ <g style="fill: #2a0000">
+ <path d="M208.49 586.129C205.693 585.206 203.054 584.223 201.019 583.403C201.123 583.577 201.23 583.749 201.338 583.92C203.308 584.708 205.769 585.624 208.37 586.487C208.407 586.366 208.447 586.247 208.49 586.129z"/>
+ </g>
+ <g style="fill: #2a0000">
+ <path d="M207.957 588.914C206.762 588.524 205.592 588.122 204.481 587.724C204.745 587.962 205.014 588.187 205.288 588.398C206.142 588.696 207.023 588.995 207.918 589.286C207.93 589.164 207.943 589.04 207.957 588.914z"/>
+ </g>
+ <g style="fill: #2a0000">
+ <path d="M209.469 589.779C210.039 589.955 210.61 590.127 211.18 590.293C211.706 590.241 212.186 590.253 212.622 590.323C211.598 590.041 210.557 589.735 209.523 589.413C209.504 589.533 209.487 589.656 209.469 589.779z"/>
+ </g>
+ <g style="fill: #2a0000">
+ <path d="M223.95 591.75C224.289 592.19 224.992 592.881 225.847 593.634C225.9 593.517 225.952 593.403 226.004 593.291C225.208 592.589 224.556 591.947 224.236 591.531L224.045 591.283L223.773 591.437C222.13 592.368 218.039 591.75 213.498 590.558C213.916 590.719 214.285 590.941 214.612 591.211C218.745 592.209 222.372 592.644 223.95 591.75z"/>
+ </g>
+ <g style="fill: #2a0000">
+ <path d="M225 588.75C222.736 590.033 216.256 588.582 210.109 586.651C210.073 586.77 210.038 586.891 210.004 587.016C215.983 588.899 222.302 590.322 224.904 589.197C225.347 589.706 226.127 590.447 227.033 591.225C227.079 591.118 227.125 591 227.169 590.87C226.192 590.027 225.374 589.236 225 588.75z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M223.773 591.437L224.045 591.283L224.236 591.531C224.556 591.947 225.208 592.589 226.004 593.291C226.074 593.14 226.142 592.994 226.21 592.852C225.569 592.3 225.057 591.811 224.798 591.479L224.133 590.925L223.382 591.15C221.496 592.186 215.528 590.81 209.601 588.929C209.574 589.088 209.548 589.248 209.523 589.413C210.557 589.735 211.598 590.041 212.622 590.323C212.936 590.373 213.227 590.453 213.498 590.558C218.039 591.75 222.13 592.368 223.773 591.437z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M208.37 586.487C205.769 585.624 203.308 584.708 201.338 583.92C201.542 584.241 201.752 584.555 201.97 584.862C203.832 585.582 205.978 586.36 208.217 587.096C208.257 586.89 208.309 586.687 208.37 586.487z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M208.164 587.389C206.078 586.706 204.068 585.984 202.296 585.307C202.572 585.675 202.858 586.029 203.153 586.367C204.683 586.94 206.352 587.533 208.056 588.101C208.089 587.862 208.125 587.624 208.164 587.389z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M208.015 588.414C206.493 587.908 204.999 587.381 203.604 586.864C203.889 587.166 204.181 587.454 204.481 587.724C205.592 588.122 206.762 588.524 207.957 588.914C207.975 588.749 207.994 588.582 208.015 588.414z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M209.792 587.909C209.743 588.139 209.697 588.375 209.653 588.62C215.545 590.496 221.476 591.887 223.254 590.879L223.269 590.87L223.285 590.865L224.124 590.615L224.201 590.592L224.263 590.643C225.006 591.262 225.006 591.262 225.011 591.267L225.018 591.274L225.024 591.282C225.264 591.594 225.741 592.053 226.343 592.575C226.435 592.385 226.523 592.211 226.61 592.044C225.805 591.353 225.104 590.707 224.64 590.232C221.609 591.052 215.57 589.706 209.792 587.909z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M224.904 589.197C222.302 590.322 215.983 588.899 210.004 587.016C209.952 587.211 209.903 587.413 209.855 587.621C215.645 589.428 221.689 590.779 224.646 589.923L224.733 589.898L224.796 589.963C225.245 590.428 225.943 591.077 226.752 591.772C226.853 591.585 226.945 591.42 227.033 591.225C226.127 590.447 225.347 589.706 224.904 589.197z"/>
+ </g>
+ <g style="fill: #2a0000">
+ <path d="M208.056 588.101C206.352 587.533 204.683 586.94 203.153 586.367C203.301 586.537 203.451 586.702 203.604 586.864C204.999 587.381 206.493 587.908 208.015 588.414C208.028 588.31 208.042 588.205 208.056 588.101z"/>
+ </g>
+ <g style="fill: #2a0000">
+ <path d="M225.024 591.282L225.018 591.274L225.011 591.267C225.006 591.262 225.006 591.262 224.263 590.643L224.201 590.592L224.124 590.615L223.285 590.865L223.269 590.87L223.254 590.879C221.476 591.887 215.545 590.496 209.653 588.62C209.635 588.721 209.618 588.826 209.601 588.929C215.528 590.81 221.496 592.186 223.382 591.15L224.133 590.925L224.798 591.479C225.057 591.811 225.569 592.3 226.21 592.852C226.255 592.759 226.299 592.664 226.343 592.575C225.741 592.053 225.264 591.594 225.024 591.282z"/>
+ </g>
+ <g style="fill: #2a0000">
+ <path d="M208.2 587.175C208.205 587.149 208.212 587.123 208.217 587.096C205.978 586.36 203.832 585.582 201.97 584.862C202.077 585.012 202.186 585.161 202.296 585.307C204.068 585.984 206.078 586.706 208.164 587.389C208.176 587.317 208.187 587.245 208.2 587.175z"/>
+ </g>
+ <g style="fill: #2a0000">
+ <path d="M224.796 589.963L224.733 589.898L224.646 589.923C221.689 590.779 215.645 589.428 209.855 587.621C209.834 587.716 209.813 587.812 209.792 587.909C215.57 589.706 221.609 591.052 224.64 590.232C225.104 590.707 225.805 591.353 226.61 592.044C226.658 591.95 226.706 591.858 226.752 591.772C225.943 591.077 225.245 590.428 224.796 589.963z"/>
+ </g>
+ <g style="fill: #a16836">
+ <path d="M209.523 589.413C209.618 588.826 209.697 588.375 209.792 587.909C209.903 587.413 210.038 586.891 210.109 586.651C210.486 585.39 210.99 584.424 211.725 583.725L210.225 583.2C210.225 583.2 208.618 585.029 208.217 587.096C208.212 587.123 208.205 587.149 208.2 587.175C208.042 588.205 207.994 588.582 207.957 588.914C207.93 589.164 207.898 589.485 207.865 589.865C208.002 589.917 208.141 589.964 208.28 590.007C208.511 587.163 209.249 584.948 210.483 583.406L210.717 583.594C209.512 585.1 208.795 587.281 208.574 590.093C208.848 590.167 209.124 590.226 209.402 590.267C209.446 589.938 209.487 589.656 209.523 589.413z"/>
+ </g>
+ <g style="fill: #2a0000">
+ <path d="M210.717 583.594L210.483 583.406C209.249 584.948 208.511 587.163 208.28 590.007C208.377 590.038 208.476 590.067 208.574 590.093C208.795 587.281 209.512 585.1 210.717 583.594z"/>
+ </g>
+ <g style="fill: #95846f">
+ <path d="M197.4 640.5C197.85 639.9 200.25 638.55 201.9 638.7C201.974 638.707 202.05 638.704 202.126 638.701C203.298 638.215 204.596 637.372 205.7 636.671C205.98 636.389 206.177 636.146 206.25 636C206.55 635.4 208.05 635.1 207.9 633.15C207.75 631.2 209.3 624.3 209.3 624.3C209.3 624.3 207.277 629.97 204.9 631.8C203.013 633.253 205.95 635.55 202.5 636.3C200.881 636.652 200.297 636.404 198.15 637.65C196.57 638.568 195.9 641.851 194.25 640.95C192.45 639.15 190.9 641.7 190.9 641.7C190.9 641.7 191.026 642.65 190.926 643.492C191.345 643.129 191.93 642.747 192.538 642.476C192.644 642.421 192.752 642.376 192.862 642.343C193.776 642.005 194.683 641.971 195.1 642.7C195.152 642.791 195.21 642.854 195.273 642.894C196.342 642.6 197.051 640.965 197.4 640.5z"/>
+ </g>
+ <g style="fill: #613830">
+ <path d="M203.4 631.05C201.882 632.885 203.25 633.45 201 635.1C199.664 636.08 199.997 635.804 197.85 637.05C196.27 637.968 193.9 637.1 193.9 637.1C193.9 637.1 190.3 638.1 190.9 641.7C190.9 641.7 192.45 639.15 194.25 640.95C195.9 641.851 196.57 638.568 198.15 637.65C200.297 636.404 200.881 636.652 202.5 636.3C205.95 635.55 203.013 633.253 204.9 631.8C207.277 629.97 209.3 624.3 209.3 624.3C209.3 624.3 206.527 627.27 203.4 631.05z"/>
+ </g>
+ <g style="fill: #451f00">
+ <path d="M203.7 628.1C202.447 629.279 202.4 630.7 201 631.7C200.377 632.145 200.171 631.878 200.132 631.444C199.008 637.804 193.9 637.1 193.9 637.1C193.9 637.1 196.27 637.968 197.85 637.05C199.997 635.804 199.664 636.08 201 635.1C203.25 633.45 201.882 632.885 203.4 631.05C206.527 627.27 209.3 624.3 209.3 624.3C209.3 624.3 205.4 626.5 203.7 628.1z"/>
+ </g>
+ <g style="fill: #240000">
+ <path d="M200.3 630.1C200.3 630.1 199.6 632.7 201 631.7C202.4 630.7 202.447 629.279 203.7 628.1C205.4 626.5 209.3 624.3 209.3 624.3C206.5 624.5 201.3 627.9 200.3 630.1z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M231.1 597.5C231.1 597.5 232.9 597.9 233.3 596.9C233.7 595.9 235.5 587.4 235.5 587.4C235.5 587.4 235.8 583.8 236.1 582.9C236.1 582.9 235.9 580.1 236.9 579.1C241.767 574.234 237.9 570.7 237.7 568.7C237.5 566.7 236.5 559.7 237.7 556.5C241.5 552.5 237.3 550.5 233.3 548.899C229.3 547.3 226.7 549.699 225.7 550.5C224.7 551.3 222.5 553.1 216.1 554.3C216.1 554.3 210.7 554.1 208.7 557.7C206.7 561.3 205.7 556.9 205.7 555.5C205.7 554.1 195.1 562.5 202.7 567.7C204.9 572.1 204.1 576.1 209.1 576.7C210.1 577.3 211.7 576.1 212.1 575.3C212.5 574.5 217.5 576.1 219.5 570.1C220.5 568.5 228.1 560.5 228.1 560.5C228.1 560.5 230.1 558.5 230.1 562.5C230.1 566.5 229.9 571.3 229.9 571.3C229.9 571.3 228.9 573.3 229.5 574.7C230.1 576.1 226.9 580.9 226.9 580.9C226.9 580.9 224.1 581.7 224.3 585.5C224.5 586.9 223.3 590.3 223.3 590.3C223.3 590.3 224.3 595.9 229.3 596.9L231.1 597.5z"/>
+ </g>
+ <g style="fill: #c3b6a5">
+ <path d="M230.1 562.5C230.1 558.5 228.1 560.5 228.1 560.5C228.1 560.5 220.5 568.5 219.5 570.1C217.5 576.1 212.5 574.5 212.1 575.3C211.7 576.1 210.1 577.3 209.1 576.7C209.1 576.7 212.1 575.2 211 574C209.9 572.8 206.9 572.3 207.9 567.8C208.7 566.3 209.9 568.8 210.1 570C210.3 571.2 213.2 574 213.9 569.7C214.6 565.4 218.2 565.6 219 564.9C219.8 564.2 224.5 559.8 224.3 558.1C224.1 556.4 224 551.1 228 553.899C229.3 554.8 229.1 555.6 228.6 556.2C227.2 556.1 226.9 557.4 228.5 558C230.1 558.6 230.6 555 231.8 559.7C233 564.4 231.558 568.588 233 569C235.1 569.6 235.2 571.9 234.6 571.9C234 571.9 233.5 570.2 232.9 571C233.1 571.2 233.6 572.4 232.9 573.2C232.2 574 232.9 570.1 231.4 569.9C229.9 569.7 230 567 230 567L230.1 562.5z"/>
+ </g>
+ <g style="fill: #916e67">
+ <path d="M230.1 562.5C230.1 558.5 228.1 560.5 228.1 560.5C228.1 560.5 220.5 568.5 219.5 570.1C217.5 576.1 212.5 574.5 212.1 575.3C212.3 572.4 207.5 572.9 208.5 568.4C209.3 566.9 208.1 572.3 212.4 573.2C213 573.4 215.4 573.4 215.5 570.5C215.65 566.146 219 567.5 219.8 566.8C220.6 566.1 225.4 561.1 225.2 559.4C225 557.7 225 553.4 227.3 554.6C226.6 556.2 225.7 558.3 227.3 558.9C228.9 559.5 229.9 556.3 231.1 561C232.3 565.7 230.658 568.588 232.1 569C234.2 569.6 233.1 570 231.8 569.5C230.388 568.957 230.1 562.5 230.1 562.5z"/>
+ </g>
+ <g style="fill: #663f0f">
+ <path d="M228.1 560.5C228.1 560.5 220.525 568.575 219.525 570.175C217.525 576.175 212.5 574.5 212.1 575.3C212.3 572.4 207.5 572.9 208.5 568.4C209.5 569.1 209.1 573.1 213.4 574C214 574.2 215.1 573.1 216.1 571.1C220.3 570.9 220 567.9 220.8 567.2C221.6 566.5 226.4 561.7 226.2 560C226 558.3 225.6 555.2 227.3 554.6C226.6 556.2 225.7 558.3 227.3 558.9C228.9 559.5 228.1 560.5 228.1 560.5z"/>
+ </g>
+ <g style="fill: #461800">
+ <path d="M226.728 561.191C225.728 560.991 226.2 560 226.2 560C226 558.3 225.6 555.2 227.3 554.6C226.6 556.2 225.7 558.3 227.3 558.9C228.9 559.5 228.1 560.5 228.1 560.5C228.1 560.5 227.728 561.391 226.728 561.191z"/>
+ </g>
+ <g style="fill: #704d21">
+ <path d="M224.3 585.5C224.5 586.9 223.3 590.3 223.3 590.3C223.3 590.3 224.3 595.9 229.3 596.9L231.1 597.5C231.1 597.5 232.9 597.9 233.3 596.9C233.558 596.256 234.396 592.504 234.96 589.913C234.96 589.913 234.1 592.1 231.1 590.5C226.5 588.9 224.3 585.5 224.3 585.5z"/>
+ </g>
+ <g style="fill: #a9957c">
+ <path d="M225.634 587.967C225.134 588.167 225.2 591.1 225.2 591.1C225.2 591.1 224.9 594.8 229.9 595.8L231.7 596.3C231.7 596.3 232.7 596.4 233 595.9C233.258 595.256 234.46 591.913 233.96 591.513C233.46 591.113 234.1 592.1 231.1 590.5C228.395 589.559 226.134 587.767 225.634 587.967z"/>
+ </g>
+ <g style="fill: #dad4cb">
+ <path d="M209.3 557.8C208.3 558.7 205 564.8 213.4 563.4C224.1 557.1 222.4 552.8 225.7 552.5C227.4 551.699 226.8 550.3 227.4 550C227.3 548.899 215.9 558.6 214.3 558.3C214.8 552.3 209.3 557.8 209.3 557.8z"/>
+ </g>
+ <g style="fill: #d3cbc1">
+ <path d="M211.6 557.5C209.9 557.8 207.2 560.2 209 562.3C210.8 564.4 217 561.3 219.2 558.7C221.4 556.1 224 552.5 224.8 552.199C224.3 551.5 218.1 556.7 216.3 559C215.1 559.8 213.8 559.7 213.2 559C212.6 558.3 211.6 557.5 211.6 557.5z"/>
+ </g>
+ <g style="fill: #bbac9a">
+ <path d="M211.3 559.3C210.4 559.3 209.028 560.977 210.6 561.9C212.108 562.785 216.7 560.9 218.9 558.3C221.1 555.7 222.9 553.7 222.3 554.1C221.7 554.5 218.4 558.1 216.5 559.6C215.3 560.4 213.2 561 212.6 560.3C212 559.6 212.2 559.3 211.3 559.3z"/>
+ </g>
+ <g style="fill: #dfdad3">
+ <path d="M235.1 585.2C233.6 585.4 231.6 584.6 230.4 583.6C229.2 582.6 226.4 580 225.5 582.9C224.6 585.8 232.661 587.052 233.8 587C236 586.9 235.1 585.2 235.1 585.2z"/>
+ </g>
+ <g style="fill: #e3dfda">
+ <path d="M234.925 585.325C233.425 585.525 231.55 584.7 230.35 583.7C229.15 582.7 226.791 580.651 225.95 583.1C225.56 585.745 232.637 586.932 233.775 586.875C235.825 586.775 234.925 585.325 234.925 585.325z"/>
+ </g>
+ <g style="fill: #e7e4e1">
+ <path d="M234.75 585.45C233.25 585.65 231.5 584.8 230.3 583.8C229.1 582.8 227.182 581.302 226.4 583.3C226.52 585.69 232.612 586.811 233.75 586.75C235.65 586.65 234.75 585.45 234.75 585.45z"/>
+ </g>
+ <g style="fill: #ebeae8">
+ <path d="M234.575 585.575C233.075 585.775 231.45 584.9 230.25 583.9C229.05 582.9 227.573 581.953 226.85 583.5C227.48 585.635 232.587 586.691 233.725 586.625C235.475 586.525 234.575 585.575 234.575 585.575z"/>
+ </g>
+ <g style="fill: #efefef">
+ <path d="M234.4 585.7C232.9 585.9 231.4 585 230.2 584C229 583 227.964 582.604 227.3 583.7C228.44 585.581 232.562 586.571 233.7 586.5C235.3 586.4 234.4 585.7 234.4 585.7z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M231.8 591.2C232.7 592 233.8 591.4 233.8 591.9C233.8 592.4 233.2 595.5 232.5 595.7C231.8 595.9 231.4 594.4 231.1 593.7C230.8 593 231.8 591.2 231.8 591.2z"/>
+ </g>
+ <g style="fill: #c5b9aa">
+ <path d="M233.4 592.3C233.4 593.32 232.6 595.7 232.1 595.2C231.6 594.7 232.2 592.5 232.3 592.1C232.4 591.7 233.4 591.8 233.4 592.3z"/>
+ </g>
+ <g style="fill: #d3cbc1">
+ <path d="M229.9 574.5C229.7 576.3 229.3 579.5 231.1 580.9C232.9 582.3 230.9 578.7 231.1 577.7C231.1 577.7 231.9 578.5 234.3 579.1C236.7 579.7 237.7 577.7 238.3 576.3C238.935 574.818 235.1 572.9 233.5 574.7C231.9 576.5 229.9 574.5 229.9 574.5z"/>
+ </g>
+ <g style="fill: #b7a793">
+ <path d="M236.9 576.5C235.1 575.7 233.5 576.7 231.7 576.3C229.9 575.9 230.9 577.9 233.1 578.5C237.7 579.1 236.9 576.5 236.9 576.5z"/>
+ </g>
+ <g style="fill: #917a6b">
+ <path d="M231.7 576.7C233.1 577.3 233.7 577.1 235.5 576.9C237.3 576.7 236.5 578.9 232.5 578.1C230.7 577.5 231.7 576.7 231.7 576.7z"/>
+ </g>
+ <g style="fill: #e7e3de">
+ <path d="M232.1 549.3C234.5 549.899 240.9 551.699 237.1 556.3C233.3 560.9 237.9 572.1 238.3 572.9C238.7 573.7 236.3 574.1 235.9 572.1C235.5 570.1 233.3 562.1 233.9 558.7C233.3 556.5 231.9 556.3 231.7 554.9C228.9 551.899 232.1 549.3 232.1 549.3z"/>
+ </g>
+ <g style="fill: #efefef">
+ <path d="M233 551.8C235 552.399 238.6 552.3 236.3 554.8C234.3 555.4 233.9 555.7 233.7 554.5C233.5 553.3 233 551.8 233 551.8z"/>
+ </g>
+ <g style="fill: #efefef">
+ <path d="M235.3 558.3C234.7 560.9 236.7 571.3 237.1 572.3C237.5 573.3 235.5 571.3 235.1 566.1C234.7 560.9 235.3 558.3 235.3 558.3z"/>
+ </g>
+ <g style="fill: #a59786">
+ <path d="M186.793 629.698C186.742 628.323 187.073 626.696 188.1 624.3C189.7 622.1 191.5 620.9 194.3 619.9C194.3 619.9 195.9 620.1 193.65 622.05C191.4 624 189.6 625.65 189.6 628.05C189.6 630.45 189.6 633.45 188.55 632.55C187.2 632.25 186.793 629.698 186.793 629.698z"/>
+ </g>
+ <g style="fill: #93816a">
+ <path d="M186.985 629.707C186.933 628.332 187.181 626.838 188.208 624.442C189.808 622.242 191.45 621.042 194.25 620.042C194.25 620.042 195.758 620.083 193.508 622.034C191.258 623.984 189.475 625.65 189.475 628.05C189.475 630.45 189.5 633.117 188.533 632.359C187.317 632.1 186.985 629.707 186.985 629.707z"/>
+ </g>
+ <g style="fill: #816a4e">
+ <path d="M187.176 629.715C187.125 628.34 187.29 626.98 188.317 624.584C189.916 622.384 191.4 621.184 194.2 620.184C194.2 620.184 195.617 620.067 193.366 622.017C191.116 623.967 189.35 625.65 189.35 628.05C189.35 630.45 189.4 632.784 188.517 632.167C187.433 631.95 187.176 629.715 187.176 629.715z"/>
+ </g>
+ <g style="fill: #6f5431">
+ <path d="M187.368 629.724C187.317 628.348 187.398 627.121 188.425 624.725C190.025 622.525 191.35 621.325 194.15 620.325C194.15 620.325 195.475 620.05 193.225 622C190.975 623.95 189.225 625.65 189.225 628.05C189.225 630.45 189.3 632.45 188.5 631.975C187.55 631.8 187.368 629.724 187.368 629.724z"/>
+ </g>
+ <g style="fill: #5e3e15">
+ <path d="M187.56 629.732C187.508 628.357 187.506 627.263 188.533 624.867C190.133 622.667 191.3 621.467 194.1 620.467C194.1 620.467 195.333 620.034 193.083 621.984C190.833 623.934 189.1 625.65 189.1 628.05C189.1 630.45 189.2 632.117 188.483 631.784C187.666 631.65 187.56 629.732 187.56 629.732z"/>
+ </g>
+ <g style="fill: #4c2700">
+ <path d="M187.751 629.74C187.7 628.365 187.615 627.404 188.642 625.009C190.241 622.809 191.25 621.609 194.05 620.609C194.05 620.609 195.192 620.017 192.942 621.967C190.692 623.917 188.975 625.65 188.975 628.05C188.975 630.45 189.1 631.784 188.466 631.592C187.783 631.5 187.751 629.74 187.751 629.74z"/>
+ </g>
+ <g style="fill: #3a1100">
+ <path d="M187.943 629.748C187.892 628.373 187.723 627.546 188.75 625.15C190.35 622.95 191.2 621.75 194 620.75C194 620.75 195.05 620 192.8 621.95C190.55 623.9 188.85 625.65 188.85 628.05C188.85 630.45 189 631.45 188.45 631.4C187.9 631.35 187.943 629.748 187.943 629.748z"/>
+ </g>
+ <g style="fill: #240000">
+ <path d="M175.8 598.125C173.925 599.025 172.125 602.475 171.975 603.6C171.825 604.725 170.025 608.175 169.65 614.4C168.9 617.1 167.4 632.475 167.4 632.475C167.4 632.475 170.475 615.3 170.325 614.4C170.175 613.5 172.125 604.725 172.8 603.75C173.475 602.775 173.625 600.75 175.2 599.775C176.775 598.8 175.8 598.125 175.8 598.125z"/>
+ </g>
+ <g style="fill: #6a0000">
+ <path d="M173.775 601.05C172.35 603.15 169.5 609.9 169.425 611.925C169.35 613.95 166.35 623.475 165.675 624C167.85 622.575 169.65 614.25 170.175 612.9C170.7 611.55 172.8 603.375 173.925 602.475C175.05 601.575 173.775 601.05 173.775 601.05z"/>
+ </g>
+ <g style="fill: #3e0000">
+ <path d="M188.25 563.1C186.75 563.55 184.5 564 185.1 567.6C186.3 568.5 187.05 567.3 187.65 569.7C188.25 572.1 185.25 581.55 181.8 583.65C181.8 583.65 177.15 586.2 180.9 589.95C179.1 591.6 174.9 600.3 174 601.8C172.5 602.55 171.45 605.1 172.2 606.9C171.15 606.75 169.8 612.3 171.15 613.05C171.767 613.693 172.8 610.05 172.95 609.3C173.1 608.55 174.3 605.85 176.4 604.8C177.929 604.035 179.7 598.5 180.15 597.45C180.6 596.4 184.8 587.55 184.8 587.55C184.8 587.55 192.3 592.8 195.9 588.15C199.5 583.5 199.35 581.1 198.6 579.15C197.85 577.2 195.717 574.297 193.8 573.6C190.5 572.4 192 570.9 192.3 569.25C192.6 567.6 192.3 564 190.5 563.4C188.7 562.8 188.25 563.1 188.25 563.1z"/>
+ </g>
+ <g style="fill: #210000">
+ <path d="M183.45 585.45C182.25 586.65 181.35 589.8 181.2 590.7C181.05 591.6 182.85 589.5 183 588.6C183.15 587.7 184.5 585.6 184.5 585.6L183.45 585.45z"/>
+ </g>
+ <g style="fill: #4f0000">
+ <path d="M190.5 563.4C188.7 562.8 188.25 563.1 188.25 563.1C186.75 563.55 184.5 564 185.1 567.6C185.1 567.6 186.45 568.65 186.9 568.5C187.35 568.35 186.75 566.1 188.25 565.2C189.75 564.3 190.5 563.4 190.5 563.4z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M188.85 563.7C187.35 563.85 186 565.95 186 567C186 568.05 184.889 567.19 185.4 565.95C186.45 563.4 188.85 563.7 188.85 563.7z"/>
+ </g>
+ <g style="fill: #300000">
+ <path d="M191.7 566.85C189.45 567.45 188.1 570 188.55 571.35C189 572.7 190.2 573.3 191.55 573.3C192.9 573.3 190.95 573.15 191.55 571.35C192.15 569.55 191.7 566.85 191.7 566.85z"/>
+ </g>
+ <g style="fill: #4f0000">
+ <path d="M195.9 588.15C192.3 592.8 184.8 587.55 184.8 587.55C184.8 587.55 181.5 585.7 182.6 584.3C183.7 582.9 184.5 583.8 184.9 584.3C185.3 584.8 189.5 588 191.6 587.8C193.7 587.6 195.7 586.1 196.3 586.6C196.9 587.1 195.9 588.15 195.9 588.15z"/>
+ </g>
+ <g style="fill: #460000">
+ <path d="M195.9 588.15C192.3 592.8 184.8 587.55 184.8 587.55C184.8 587.55 181.5 585.7 182.6 584.3C183.4 585 184.2 585.45 184.6 585.95C185 586.45 189.8 589.2 191.9 589C194 588.8 195.55 588.05 196.3 586.6C196.9 587.1 195.9 588.15 195.9 588.15z"/>
+ </g>
+ <g style="fill: #340000">
+ <path d="M195.9 588.15C192.3 592.8 184.8 587.55 184.8 587.55C184.8 587.55 181.5 585.7 182.6 584.3C183.1 585.6 183.9 586.2 184.3 586.7C184.7 587.2 189.8 589.8 191.9 589.6C194 589.4 195.55 588.05 196.3 586.6C196.9 587.1 195.9 588.15 195.9 588.15z"/>
+ </g>
+ <g style="fill: #530000">
+ <path d="M180.9 589.95C179.1 591.6 174.9 600.3 174 601.8C172.5 602.55 171.45 605.1 172.2 606.9C172.2 606.9 174.6 604.95 175.8 602.55C177 600.15 178.35 596.7 179.55 594.75C180.75 592.8 180.9 589.95 180.9 589.95z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M184.35 584.25C184.8 585.3 189.6 588.75 192 588.15C190.8 589.2 187.5 587.7 186.9 587.25C186.3 586.8 184.2 585.6 183.75 584.85C183.3 584.1 184.35 584.25 184.35 584.25z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M184.7 584.7C183.9 584.9 182.8 585.5 183.6 586.6C183.5 585.8 184.7 584.7 184.7 584.7z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M185.6 585.4C184.8 585.6 183.7 586.2 184.5 587.3C184.4 586.5 185.6 585.4 185.6 585.4z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M186.531 586.095C185.811 586.275 184.821 586.815 185.541 587.805C185.451 587.085 186.531 586.095 186.531 586.095z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M187.569 586.78C186.921 586.942 186.03 587.428 186.678 588.319C186.597 587.671 187.569 586.78 187.569 586.78z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M188.822 587.457C188.239 587.603 187.437 588.041 188.02 588.842C187.948 588.259 188.822 587.457 188.822 587.457z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M190.022 588.057C189.439 588.203 188.637 588.641 189.22 589.442C189.148 588.859 190.022 588.057 190.022 588.057z"/>
+ </g>
+ <g style="fill: #390000">
+ <path d="M191.28 588.227C190.756 588.358 190.034 588.752 190.559 589.473C190.493 588.948 191.28 588.227 191.28 588.227z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M172.602 602.78C173.108 601.988 173.81 601.571 173.954 601.663C174.098 601.755 173.804 602.472 173.298 603.263C172.792 604.055 172.265 604.622 172.121 604.53C171.977 604.438 172.096 603.571 172.602 602.78z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M172.977 603.13C173.483 602.338 173.81 601.571 173.954 601.663C174.098 601.755 173.804 602.472 173.298 603.263C172.792 604.055 172.265 604.622 172.121 604.53C171.977 604.438 172.471 603.921 172.977 603.13z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M174.63 599.439C175.002 598.68 175.641 598.27 175.779 598.338C175.917 598.406 175.727 599.076 175.355 599.835C174.982 600.594 174.568 601.154 174.43 601.087C174.292 601.019 174.257 600.199 174.63 599.439z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M175.779 598.338C175.917 598.406 175.727 599.076 175.355 599.835C174.982 600.594 174.568 601.154 174.43 601.087C174.757 600.449 175.502 598.93 175.779 598.338z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M176.201 596.449C176.607 595.707 177.264 595.326 177.399 595.4C177.534 595.474 177.314 596.135 176.908 596.876C176.502 597.618 176.063 598.159 175.929 598.086C175.794 598.012 175.796 597.191 176.201 596.449z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M177.701 593.749C178.107 593.007 178.764 592.626 178.899 592.7C179.034 592.774 178.814 593.435 178.408 594.176C178.002 594.918 177.563 595.459 177.429 595.386C177.294 595.312 177.296 594.491 177.701 593.749z"/>
+ </g>
+ <g style="fill: #bababa">
+ <path d="M179.366 591.107C179.847 590.412 180.539 590.101 180.666 590.188C180.792 590.276 180.505 590.91 180.024 591.606C179.543 592.301 179.05 592.794 178.924 592.707C178.797 592.619 178.885 591.803 179.366 591.107z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M176.726 596.699C177.132 595.957 177.264 595.326 177.399 595.4C177.534 595.474 177.314 596.135 176.908 596.876C176.502 597.618 176.063 598.159 175.929 598.086C175.794 598.012 176.32 597.441 176.726 596.699z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M178.201 594.049C178.607 593.307 178.764 592.626 178.899 592.7C179.034 592.774 178.814 593.435 178.408 594.176C178.002 594.918 177.563 595.459 177.429 595.386C177.294 595.312 177.796 594.791 178.201 594.049z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M179.791 591.407C180.272 590.712 180.539 590.101 180.666 590.188C180.792 590.276 180.505 590.91 180.024 591.606C179.543 592.301 179.05 592.794 178.924 592.707C178.797 592.619 179.31 592.103 179.791 591.407z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M175.375 598.6C175.2 598.725 174.75 599.25 174.675 599.525C174.6 599.8 174.725 599.65 174.85 599.425C174.975 599.2 175.2 599.05 175.3 598.925C175.4 598.8 175.375 598.6 175.375 598.6z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M173.577 601.859C173.389 601.963 172.881 602.432 172.775 602.697C172.668 602.961 172.81 602.827 172.96 602.618C173.11 602.409 173.351 602.286 173.465 602.173C173.579 602.06 173.577 601.859 173.577 601.859z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M177 595.6C176.825 595.725 176.375 596.25 176.3 596.525C176.225 596.8 176.35 596.65 176.475 596.425C176.6 596.2 176.825 596.05 176.925 595.925C177.025 595.8 177 595.6 177 595.6z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M178.475 592.925C178.3 593.05 177.85 593.575 177.775 593.85C177.7 594.125 177.825 593.975 177.95 593.75C178.075 593.525 178.3 593.375 178.4 593.25C178.5 593.125 178.475 592.925 178.475 592.925z"/>
+ </g>
+ <g style="fill: #e2e2e2">
+ <path d="M180.274 590.378C180.084 590.478 179.565 590.935 179.453 591.197C179.341 591.459 179.485 591.328 179.64 591.123C179.795 590.917 180.039 590.8 180.155 590.69C180.272 590.58 180.274 590.378 180.274 590.378z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M174.525 599.825C174.45 600.125 174.35 600.725 174.375 600.85C174.4 600.975 174.6 600.45 174.7 600.3C174.8 600.15 174.525 599.825 174.525 599.825z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M172.43 603.057C172.316 603.344 172.138 603.926 172.146 604.053C172.154 604.18 172.422 603.686 172.541 603.551C172.66 603.416 172.43 603.057 172.43 603.057z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M176.05 596.775C175.975 597.075 175.875 597.675 175.9 597.8C175.925 597.925 176.125 597.4 176.225 597.25C176.325 597.1 176.05 596.775 176.05 596.775z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M177.575 594.05C177.5 594.35 177.4 594.95 177.425 595.075C177.45 595.2 177.65 594.675 177.75 594.525C177.85 594.375 177.575 594.05 177.575 594.05z"/>
+ </g>
+ <g style="fill: #a8a8a8">
+ <path d="M179.235 591.381C179.119 591.667 178.935 592.247 178.943 592.375C178.95 592.502 179.222 592.01 179.342 591.875C179.462 591.741 179.235 591.381 179.235 591.381z"/>
+ </g>
+ <g style="fill: #000044">
+ <path d="M176.3 585.5C176.3 585.5 177.1 587.5 180.1 587.5C180.1 587.5 182.7 586.9 183.7 582.5C184.5 583.7 186.9 585.5 188.7 585.1C188.7 586.1 193.5 587.9 195.5 586.9C196.5 588.9 199.5 589.7 200.5 588.7C203.7 587.5 202.1 581.3 202.1 581.3L201.1 580.7C201.1 580.7 201.7 576.3 201.3 573.1C200.9 569.9 200.225 567.25 196.425 566.45C195.225 569.05 194.1 573.1 193.9 574.3C193.7 575.5 193.9 577.5 192.5 575.5C191.765 574.451 190.1 572.7 190.1 572.7C190.1 572.7 188.3 567.5 185.3 567.5C182.3 567.5 179.7 570.1 178.9 572.5C178.1 574.9 174.5 576.9 175.7 582.9C176.131 584.887 176.3 585.5 176.3 585.5z"/>
+ </g>
+ <g style="fill: #001354">
+ <path d="M192.5 575.5C191.765 574.451 190.1 572.7 190.1 572.7C190.1 572.7 188.3 567.5 185.3 567.5C184.55 567.5 183.825 567.662 183.147 567.943C183.147 567.943 181.5 569.7 183.3 570.5C185.1 571.3 187.3 570.5 187.9 571.9C186.7 572.7 185.1 571.3 184.7 572.1C184.3 572.9 184.3 574.5 187.5 574.3C190.7 574.1 189.1 574.9 188.1 575.5C187.1 576.1 187.3 578.3 190.1 579.3C192.9 580.3 192.5 575.5 192.5 575.5z"/>
+ </g>
+ <g style="fill: #000036">
+ <path d="M183.7 582.5C182.7 586.9 180.1 587.5 180.1 587.5C177.1 587.5 176.3 585.5 176.3 585.5C176.3 585.5 175.925 584.156 175.7 582.9C175.7 582.9 175.7 580.3 176.9 578.1C178.1 575.9 178.5 578.1 178.7 580.3C180.5 582.3 179.9 576.5 179.5 574.1C179.1 571.7 180.7 568.3 181.3 576.3C181.5 579.7 183.5 574.9 184.9 575.3C184.1 576.5 183.402 577.212 182.9 578.1C181.106 581.271 183.7 582.5 183.7 582.5z"/>
+ </g>
+ <g style="fill: #0d0d0d">
+ <path d="M188.7 585.1C188.7 586.1 193.5 587.9 195.5 586.9C196.5 588.9 199.5 589.7 200.5 588.7C203.7 587.5 202.1 581.3 202.1 581.3L201.1 580.7C201.1 580.7 201.7 576.3 201.3 573.1C200.9 569.9 200.225 567.25 196.425 566.45C195.225 569.05 194.1 573.1 193.9 574.3C193.7 575.5 193.9 577.5 192.5 575.5C192.382 575.332 192.241 575.146 192.086 574.952C192.086 574.952 190.5 574.9 190.7 577.5C188.3 578.9 188.7 585.1 188.7 585.1z"/>
+ </g>
+ <g style="fill: #171717">
+ <path d="M195.868 567.767C194.894 570.253 194.068 573.288 193.9 574.3C193.7 575.5 193.9 577.5 192.5 575.5C192.382 575.332 192.241 575.146 192.086 574.952C192.086 574.952 190.5 574.9 190.7 577.5C190.176 577.805 189.786 578.339 189.496 578.987C189.496 578.987 191.25 578.4 191.775 578.4C192.3 578.4 192.9 578.4 193.125 579.15C193.35 579.9 193.725 579.975 193.575 578.4C193.425 576.825 194.175 577.65 194.475 576.675C194.775 575.7 194.775 572.325 195.375 571.2C195.975 570.075 195.868 567.767 195.868 567.767z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M202.331 593.938L200.231 588.137L199.344 588.262C199.369 588.301 201.122 593.723 201.335 594.198C201.337 594.205 201.494 594.144 201.494 594.144L201.1 592.3L201.5 592.2L202.2 594L202.331 593.938z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M201.1 592.3L201.127 592.443L201.2 592.425L201.881 594.038L202.181 594.013L201.5 592.2L201.1 592.3z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M202.086 593.553L202.552 593.178L202.508 593.094L202.154 593.198L202.579 592.674L202.512 592.605L202.164 592.865L202.512 592.263L202.432 592.207L202.104 592.593L202.358 591.978L202.271 591.934L201.978 592.426L202.135 591.837L202.043 591.805L201.785 592.399L201.847 591.848L201.752 591.83L201.563 592.492L201.528 592.017L201.431 592.014L201.339 592.7L201.204 592.322L201.109 592.341L201.137 592.985L200.89 592.738L200.809 592.788L200.97 593.294L200.482 593.184L200.84 593.622L200.252 593.828L200.735 593.966L200.269 594.342L200.313 594.426L200.666 594.322L200.242 594.846L200.309 594.915L200.657 594.655L200.309 595.257L200.388 595.313L200.717 594.927L200.463 595.542L200.55 595.586L200.843 595.094L200.686 595.683L200.777 595.715L201.036 595.121L200.974 595.672L201.069 595.69L201.258 595.028L201.293 595.503L201.389 595.505L201.482 594.82L201.617 595.198L201.712 595.179L201.683 594.535L201.931 594.782L202.012 594.732L201.851 594.226L202.339 594.336L201.981 593.898L202.568 593.692L202.086 593.553z"/>
+ </g>
+ <g style="fill: #878787">
+ <path d="M200.949 594.74L200.702 595.666L201.09 594.774L200.992 595.647L201.256 594.721L201.311 595.469L201.43 594.586L201.633 595.151L201.599 594.382L201.935 594.717L201.749 594.129L202.181 594.227L201.869 593.845L202.378 593.667L201.952 593.544L202.491 593.11L201.988 593.259L202.511 592.613L201.973 593.014L202.439 592.208L201.911 592.829L202.283 591.929L201.811 592.719L202.058 591.794L201.67 592.685L201.769 591.812L201.504 592.739L201.449 591.991L201.33 592.873L201.127 592.308L201.161 593.077L200.825 592.742L201.012 593.33L200.579 593.232L200.892 593.614L200.382 593.793L200.808 593.915L200.269 594.349L200.772 594.2L200.249 594.846L200.787 594.445L200.321 595.251L200.849 594.631L200.477 595.53L200.949 594.74z"/>
+ </g>
+ <g style="fill: #474747">
+ <path d="M201.262 594.188L201.506 594.112L201.337 594.319L201 594.413L201.262 594.188z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M201.22 593.76C201.261 593.617 201.357 593.51 201.442 593.501C201.43 593.492 201.418 593.482 201.401 593.481C201.312 593.473 201.204 593.591 201.159 593.745C201.114 593.899 201.15 594.03 201.239 594.038C201.245 594.039 201.252 594.034 201.259 594.033C201.202 593.993 201.183 593.886 201.22 593.76z"/>
+ </g>
+ <g style="fill: #e7e3de">
+ <path d="M201.482 593.774C201.518 593.648 201.499 593.541 201.442 593.501C201.357 593.51 201.261 593.617 201.22 593.76C201.183 593.886 201.202 593.993 201.259 594.033C201.344 594.024 201.44 593.917 201.482 593.774z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M199.044 588.469L201.006 594.406L201.297 594.198C201.297 594.198 199.836 589.305 199.357 588.278L199.044 588.469z"/>
+ </g>
+ <g style="fill: #9e9e9e">
+ <path d="M199.709 588.206L199.344 588.262C199.369 588.301 201.122 593.723 201.335 594.198C201.337 594.205 201.494 594.144 201.494 594.144L201.025 592.319L199.709 588.206z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M200.5 588.7C199.5 589.7 196.5 588.9 195.5 586.9C193.5 587.9 188.7 586.1 188.7 585.1C188.7 585.1 188.475 582.45 188.925 581.925C189.375 581.4 190.275 582.9 190.8 583.275C191.325 583.65 191.475 583.5 192.525 583.5C193.575 583.5 193.875 583.725 194.325 584.175C194.775 584.625 194.325 582.375 194.625 581.55C194.925 580.725 195.225 583.125 195.375 584.25C195.525 585.375 196.425 584.625 197.1 585.075C197.775 585.525 200.5 588.7 200.5 588.7z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M200.5 588.7C203.7 587.5 202.1 581.3 202.1 581.3L201.1 580.7C201.1 580.7 201.7 576.3 201.3 573.1C200.9 569.9 200.225 567.25 196.425 566.45C195.225 569.05 194.1 580.1 197.7 581.5C197.7 581.5 198.7 582.5 199.1 582.5C198.444 586.3 200.5 588.7 200.5 588.7z"/>
+ </g>
+ <g style="fill: #353535">
+ <path d="M201.1 580.7C201.1 580.7 201.7 576.3 201.3 573.1C200.9 569.9 200.225 567.25 196.425 566.45C195.975 569.35 194.7 579.95 198.3 581.35L201.1 580.7z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M198.3 581.35C194.7 579.95 195.975 569.35 196.425 566.45C195.225 569.05 194.1 580.1 197.7 581.5L198.3 581.35z"/>
+ </g>
+ <g style="fill: #595959">
+ <path d="M197.7 581.5C197.7 581.5 198.7 582.5 199.1 582.5C198.444 586.3 200.5 588.7 200.5 588.7C200.5 588.7 199.984 589.172 199.234 589.122C197.434 588.922 197.7 581.5 197.7 581.5z"/>
+ </g>
+ <g style="fill: #000029">
+ <path d="M180.1 572.1C180.1 573.9 180.3 577.9 182.3 580.7C178.5 580.3 180.1 572.1 180.1 572.1z"/>
+ </g>
+ <g style="fill: #000029">
+ <path d="M176.3 585.5C176.3 585.5 177.1 587.5 180.1 587.5C180.1 587.5 182.7 586.9 183.7 582.5C183.7 582.5 182.5 583.1 180.7 584.5C178.9 585.9 178.3 582.5 177.3 580.7C176.3 578.9 176.3 585.5 176.3 585.5z"/>
+ </g>
+ <g style="fill: #707070">
+ <path d="M201.1 580.7L202.1 581.3L199.1 582.5C198.7 582.5 197.7 581.5 197.7 581.5L201.1 580.7z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M193.65 576.825C193.575 578.325 193.95 580.95 194.175 581.775C194.4 582.6 192.9 579.75 192.9 579.225C192.9 578.7 192.975 577.725 193.2 578.925C193.425 580.125 193.65 576.825 193.65 576.825z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M190.5 581.325C190.5 581.325 188.925 580.5 188.775 580.8C188.735 580.88 188.707 580.972 188.683 581.068C188.689 581.054 188.693 581.038 188.7 581.025C188.85 580.725 190.425 581.55 190.425 581.55C190.425 581.55 190.732 582.337 190.7 582.778C190.954 582.488 190.5 581.325 190.5 581.325z"/>
+ </g>
+ <g style="fill: #0d0d0d">
+ <path d="M190.425 581.55C190.425 581.55 188.85 580.725 188.7 581.025C188.693 581.038 188.689 581.054 188.683 581.068C188.466 581.559 188.55 582.383 188.55 582.675C188.55 582.975 189.6 582.825 190.35 583.05C191.1 583.275 190.425 581.55 190.425 581.55z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M190.627 580.697C190.627 580.697 191.51 582.24 191.287 583.369C191.207 583.775 191.026 583.619 191.027 583.46C190.941 583.06 191.759 581.46 192.053 581.243C191.848 581.302 191.513 581.742 191.458 581.837C191.109 582.435 190.747 583.113 190.839 583.539C190.871 583.686 190.954 583.789 191.086 583.845L191.15 583.845C191.259 583.802 191.404 583.689 191.473 583.403C191.644 582.693 191.24 581.288 190.846 580.907L190.627 580.697z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M191.316 584.034C191.316 584.034 192.479 582.568 192.503 581.495C192.512 581.11 192.307 581.258 192.275 581.409C192.109 581.789 192.552 583.309 192.785 583.514C192.603 583.459 192.377 583.041 192.344 582.951C192.138 582.382 191.936 581.739 192.113 581.334C192.174 581.194 192.275 581.096 192.411 581.043L192.472 581.043C192.567 581.084 192.681 581.19 192.687 581.463C192.701 582.137 192.022 583.472 191.568 583.835L191.316 584.034z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M192.686 580.993C192.686 580.993 193.483 582.385 193.282 583.404C193.209 583.77 193.046 583.63 193.048 583.486C192.969 583.125 193.708 581.681 193.973 581.486C193.788 581.538 193.486 581.936 193.436 582.021C193.121 582.562 192.795 583.173 192.878 583.558C192.907 583.69 192.981 583.783 193.1 583.834L193.158 583.834C193.257 583.794 193.387 583.693 193.45 583.435C193.605 582.794 193.239 581.526 192.884 581.182L192.686 580.993z"/>
+ </g>
+ <g style="fill: #212121">
+ <path d="M193.339 584.051C193.339 584.051 194.388 582.728 194.41 581.759C194.418 581.412 194.233 581.545 194.204 581.682C194.054 582.025 194.454 583.396 194.664 583.582C194.5 583.531 194.296 583.154 194.267 583.073C194.08 582.56 193.898 581.979 194.058 581.614C194.113 581.488 194.204 581.399 194.327 581.351L194.382 581.351C194.467 581.389 194.57 581.484 194.575 581.73C194.589 582.338 193.976 583.544 193.567 583.871L193.339 584.051z"/>
+ </g>
+ <g style="fill: #300000">
+ <path d="M190.9 574.6C190.9 574.6 193.5 574.8 194.5 574.8C195.5 574.8 202.212 575.275 203.812 574.975C204.613 575.075 203.962 579.512 203.962 579.512C203.962 579.512 195.7 580 194.6 579.6C193.5 579.2 191.1 579.1 190.7 578.7C190.3 578.3 190.9 574.6 190.9 574.6z"/>
+ </g>
+ <g style="fill: #340000">
+ <path d="M194.6 579.6C193.5 579.2 191.1 579.1 190.7 578.7C190.3 578.3 190.9 574.6 190.9 574.6C190.9 574.6 193.5 574.8 194.5 574.8C194.5 574.8 194.7 576.5 194.6 577.3C194.5 578.1 194.6 579.6 194.6 579.6z"/>
+ </g>
+ <g style="fill: #460000">
+ <path d="M194.25 579.212C193.317 578.873 191.282 578.788 190.943 578.449C190.604 578.11 191.113 574.972 191.113 574.972C191.113 574.972 193.317 575.142 194.166 575.142C194.166 575.142 194.335 576.583 194.25 577.262C194.166 577.94 194.25 579.212 194.25 579.212z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M193.853 578.741C193.11 578.471 191.49 578.404 191.219 578.133C190.949 577.863 191.354 575.365 191.354 575.365C191.354 575.365 193.11 575.5 193.786 575.5C193.786 575.5 193.921 576.648 193.853 577.188C193.786 577.728 193.853 578.741 193.853 578.741z"/>
+ </g>
+ <g style="fill: #460000">
+ <path d="M191.496 577.639C191.755 577.639 191.966 577.218 191.966 576.699C191.966 576.179 191.755 575.758 191.496 575.758C191.236 575.758 191.025 576.179 191.025 576.699C191.025 577.218 191.236 577.639 191.496 577.639z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M191.476 577.441C191.687 577.441 191.858 577.099 191.858 576.677C191.858 576.255 191.687 575.914 191.476 575.914C191.266 575.914 191.095 576.255 191.095 576.677C191.095 577.099 191.266 577.441 191.476 577.441z"/>
+ </g>
+ <g style="fill: #770d00">
+ <path d="M191.266 577.314C191.326 577.394 191.183 577.08 191.183 576.659C191.183 576.237 191.374 575.935 191.328 575.974C191.191 576.09 191.095 576.361 191.095 576.677C191.095 576.943 191.163 577.178 191.266 577.314z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M195.3 575.2C196.5 575.35 197.85 575.5 199.2 575.5C200.55 575.5 203.1 575.35 203.55 575.35C202.95 575.8 200.729 575.822 199.2 575.8C195.75 575.75 195.3 575.2 195.3 575.2z"/>
+ </g>
+ <g style="fill: #4f0000">
+ <path d="M196.422 578.059L196.069 577.886L196.092 577.801C196.201 577.407 196.029 577.197 195.865 577.089C195.729 577 195.558 576.959 195.401 576.949L195.328 576.731L195.248 576.95C195.178 576.954 194.74 577.054 194.74 577.054L195.11 577.212C195.111 577.212 195.125 577.219 195.145 577.229L195.137 577.251C194.995 577.639 195.148 577.858 195.302 577.972C195.462 578.092 195.683 578.142 195.867 578.142L195.947 578.33L196.001 578.134C196.003 578.133 196.005 578.133 196.007 578.133C196.007 578.133 196.423 578.059 196.422 578.059z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M195.205 577.093C195.421 577.044 196.087 577.123 195.907 577.774C195.705 577.302 195.205 577.093 195.205 577.093z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M195.962 577.999C195.742 578.038 195.084 577.929 195.32 577.287C195.481 577.768 195.962 577.999 195.962 577.999z"/>
+ </g>
+ <g style="fill: #4f0000">
+ <path d="M198.256 578.568L197.903 578.396L197.926 578.311C198.035 577.917 197.863 577.706 197.699 577.599C197.563 577.51 197.392 577.469 197.235 577.459L197.162 577.24L197.081 577.46C197.012 577.464 196.574 577.564 196.574 577.564L196.944 577.722C196.944 577.722 196.959 577.729 196.979 577.739L196.971 577.761C196.829 578.149 196.982 578.367 197.136 578.482C197.296 578.601 197.517 578.652 197.7 578.652L197.781 578.84L197.835 578.643C197.837 578.643 197.839 578.643 197.841 578.643C197.841 578.643 198.257 578.569 198.256 578.568z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M197.038 577.602C197.255 577.553 197.921 577.632 197.741 578.284C197.539 577.811 197.038 577.602 197.038 577.602z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M197.796 578.509C197.576 578.548 196.918 578.439 197.154 577.796C197.315 578.277 197.796 578.509 197.796 578.509z"/>
+ </g>
+ <g style="fill: #4f0000">
+ <path d="M200.21 578.707L199.857 578.534L199.88 578.449C199.989 578.055 199.817 577.845 199.653 577.737C199.517 577.648 199.346 577.607 199.189 577.597L199.116 577.379L199.035 577.598C198.965 577.602 198.528 577.702 198.528 577.702L198.897 577.86C198.898 577.86 198.913 577.867 198.933 577.877L198.925 577.899C198.782 578.287 198.936 578.506 199.09 578.62C199.25 578.74 199.471 578.79 199.654 578.791L199.734 578.978L199.788 578.782C199.79 578.781 199.793 578.781 199.795 578.781C199.795 578.781 200.21 578.707 200.21 578.707z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M198.992 577.741C199.208 577.692 199.875 577.771 199.695 578.422C199.493 577.95 198.992 577.741 198.992 577.741z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M199.75 578.647C199.53 578.686 198.872 578.577 199.107 577.935C199.268 578.416 199.75 578.647 199.75 578.647z"/>
+ </g>
+ <g style="fill: #4f0000">
+ <path d="M202.111 578.642L201.758 578.469L201.781 578.385C201.89 577.991 201.718 577.78 201.554 577.673C201.418 577.583 201.247 577.543 201.09 577.532L201.017 577.314L200.936 577.534C200.866 577.538 200.429 577.638 200.429 577.638L200.799 577.795C200.799 577.796 200.814 577.803 200.834 577.813L200.826 577.835C200.683 578.223 200.837 578.441 200.991 578.556C201.151 578.675 201.372 578.726 201.555 578.726L201.636 578.913L201.69 578.717C201.692 578.717 201.694 578.717 201.696 578.717C201.696 578.717 202.112 578.643 202.111 578.642z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M200.893 577.676C201.11 577.627 201.776 577.706 201.596 578.358C201.394 577.885 200.893 577.676 200.893 577.676z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M201.651 578.583C201.431 578.622 200.773 578.513 201.009 577.87C201.17 578.351 201.651 578.583 201.651 578.583z"/>
+ </g>
+ <g style="fill: #4f0000">
+ <path d="M203.997 578.281L203.644 578.108L203.668 578.024C203.776 577.63 203.604 577.419 203.44 577.312C203.304 577.222 203.134 577.182 202.976 577.171L202.903 576.953L202.823 577.173C202.753 577.177 202.315 577.277 202.315 577.277L202.685 577.435C202.686 577.435 202.7 577.442 202.72 577.452L202.712 577.474C202.57 577.862 202.723 578.08 202.877 578.195C203.037 578.314 203.259 578.365 203.442 578.365L203.522 578.552L203.576 578.356C203.578 578.356 203.58 578.356 203.582 578.356C203.582 578.356 203.998 578.282 203.997 578.281z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M202.78 577.315C202.996 577.266 203.662 577.345 203.482 577.997C203.28 577.524 202.78 577.315 202.78 577.315z"/>
+ </g>
+ <g style="fill: #620000">
+ <path d="M203.537 578.222C203.317 578.261 202.659 578.152 202.895 577.509C203.056 577.99 203.537 578.222 203.537 578.222z"/>
+ </g>
+</g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/crawfish2_ganson.svg b/PerformanceTests/PageLoad/svg/files/crawfish2_ganson.svg
new file mode 100644
index 000000000..967744a47
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/crawfish2_ganson.svg
@@ -0,0 +1,7865 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 10.0, SVG Export Plug-In . SVG Version: 3.0.0 Build 77) --><svg enable-background="new 0 0 391 539" height="539" i:pageBounds="0 792 612 0" i:rulerOrigin="0 0" i:viewOrigin="123 664" overflow="visible" space="preserve" viewBox="0 0 391 539" width="391" xmlns="http://www.w3.org/2000/svg" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" xmlns:graph="http://ns.adobe.com/Graphs/1.0/" xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/" xmlns:x="http://ns.adobe.com/Extensibility/1.0/" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+ <rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <cc:Work rdf:about="">
+ <dc:title>Crawfish</dc:title>
+ <dc:description>Crawfish</dc:description>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>food</rdf:li>
+ <rdf:li>animal</rdf:li>
+ <rdf:li>crawfish</rdf:li>
+ <rdf:li>fish</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <dc:publisher>
+ <cc:Agent rdf:about="http://www.openclipart.org/">
+ <dc:title>Open Clip Art Project</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:creator>
+ <cc:Agent rdf:about="http://web.resource.org/cc/PublicDomain">
+ <dc:title>Gerald G.</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent rdf:about="http://web.resource.org/cc/PublicDomain">
+ <dc:title>Public Domain</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:date>2005/06/21</dc:date>
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+ <dc:language>en</dc:language>
+ </cc:Work>
+ <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+ <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+ <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+ <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <switch>
+ <foreignObject height="1" requiredExtensions="http://ns.adobe.com/AdobeIllustrator/10.0/" width="1" x="0" y="0">
+ <i:pgfRef xlink:href="#adobe_illustrator_pgf"></i:pgfRef>
+ </foreignObject>
+ <g i:extraneous="self">
+ <g i:dimmedPercent="50" i:layer="yes" i:rgbTrio="#4F008000FFFF" id="Layer_1">
+ <g>
+ <g>
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_2_" opacity="0.8" transform="matrix(1 0 0 1 136 165)">
+ <foreignObject height="200" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="134" x="0" y="0">
+ <imageReplacement align="center" height="200" opacity="0.8" placementMethod="ratio" refHeight="200" refWidth="134" valign="middle" width="134" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_1_"/>
+ </foreignObject>
+ <image height="200" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_1_" opacity="0.8" width="134" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAIYAAADICAYAAAAtK5mNAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAACvQSURBVHjaYmAYBaMACwAIoFE0CrACgABi HA2CIR2m/2llMEAAjSYM2ochIx0TAtUSCkAAjSYM6oQZIxlqMBUwQpT8//+fmAj/TyKfJAAQQKMJ g/KEgI2NVR4W8USE/X9C4v8Rqec/Fj3/KU0gAAE0mjCICxd8kY9MMyLSACOhxIOeUAglBBgfW4L4 j5ZQ/lOaQAACaDRhEF8SYCQAaOTjwnC10ATAiFZtkFJi/EcqJVAwuhgWNbhKFbwAIIBGEwb+EgG9 BMCGmZASAAofTRxbesCWPlAiD0tJAIv8f1D2PxxsjERESuIACCCW0QSBt1RAThBMUD4TWoIA0UxI iYIJSS02cxiQSxD0hAHi/0dtfaJEMggA1fxDSgQg/BeZBsmB1CAlFuREx0hMAgEIIJbRBIGZGNAi GpYYYAkAG5sZXQ6JD08USDQDtnYGll4JSvUASwxI9F8QBiUIIP0HmjBgfHBCQUpo/0hpbwAEEMsI ThS4EgQTEhs5wpmRaGYkeXQ2TB0TGg2vUhgZEbULnoSB3K74h0SDIx2WEEA0Ev4NFYclEkaQemgJ wwCrZpD8jTOBAAQQywivNpCLenjuR04AsAiHslmwsUHhiKwOLfHAqxpGRIoAU9gSB1qu/g8D6IkC hv/9+/cbmiB+AdkgN/2GYUitAy4xYFUUA1LJ8R9f4gAIIJYRlBjQ2xFMaKUEemIARTZBjKwOqp8F zRyw+YyYAKXxiZQ4/iO3LZCqEXCiAALkRPGLiYnpN5D+CWIDzQDTQDlmIGYCshmhiQNE/8GROLAC gABiGSGlAzrNhKWUQE8MrDAMDHx0NkweTmNLINDEwYSE4YkCW3WCVJX8R0oZ4OIfGMl/oYkDlCDA JQUoEYASBVDfD2iiYAWq/QFLFEC3MgBpBmiD9T9SFcVIqEoBCMB9vaQAAIJAAKWf97+tKyGNhGkI 2rcYdBfUo7J/jOL2hyg8PRCIARHfWKE6dn9gASR4izRIoqgIIw4uQeBzwjAyG8SBImJm6lW9rnW9 X/ADBWFLIM/pZAoglmFcShCTIJjRSgg2KGYHJQAgZkfDKIkFLXEglyLMSImDCZIGmFCqE1CiQEok WAezkAAoUfxFSxigBAFOFCD3Amk2pLYOI7RdAU4ISN1aWAnESKjUAAgglmFeSqCML8AalUhtAFZo YMIjHJooOKAJgYOZmZkDxgeyURIILGEgJRD0qoQJljiQEwZ6osCWOEARCy0pwKkCmjCA8f8XXFqA EgXQnB8g90DdzQKrItEarP+gvRdYV5aJmFIDIIBYhlmiwNb1ZELrZjJjqTbYoYmDAwlzQhMFmIZh aALBljCQ2yfIiQ+WKDASBpRGTxiwRIFSXEATxR9QwgBhaKIAtS3YoPHIhFQDwXowoAbnHxiNNsbB iK9XAhBALMMwUcBKCfj4AlouxtaOYEdOENDEAMJcUJoDCYNLDGjiwJYo4FUIrOsLTRzo1QgDUsnx H1sbA5og0BPGHyD4BSvhQHaAGptIJcxfoBy4ugHK/4JiFlBPBRYmsKoVbXofJZEABOC+jlIABmEY gDrsKuz+txXcGokQRvEAfogI4o+PtrEDUWTVQUHojNAUBRAQxaMwzExxOHHcXPN97jWJqldWLQRG +cNYIwZRvEQx8OFxr6+2xVgKQDPOYv5AfI2FNuNxdp17AEhietlVjU8AsQzTRMGC1tNAbjTC2gjw dgRStYGeINATBjsUgxMFiIYmCnibAsvIJyxhMKD3SGAJAgn/R65KYKUFKFEA5f5CqwNwggN1R4H2 gxMNNMH8Qmo8s6E1hGFtK2wzwFgBQACxDNEEQUyiYEVOCEA2rH3AgVRCILchsJUUIJoDmjDYgTSs fcEKTRywRMGMVH0woQ2tY4x2oicG5ESBPOIJSxjQCTFQdQFOUED8H4j/ovWE4F1lWAMbqepAn/gj OKsOEEAsQzRBMOBJFLAGIayaQC4VOKHVBSwhoGBoAgAnDFgpAaQ5oDQ7tBpBSRRICYMJywws+owt rJH5HylRwLqU/5FKDPjAFqzbCWqjwNopOMwmBhMNAAKIZYgkBmLbFMjVBnLvArkk4IJVEVhKBZgY B5Rmx5YogBg5UcBHNtFyJQO068iIPmOKlDjAXUqksQYGBtT1E7DSAjbI9RdtBvUvUg8EedYVZc0G A+p6DKIAQACxDIE2BAOOEUxsw9ls0K4nO7R3wQVNDNzAyOWGJgoQmwsJIycG9BKCHS1RsEATBQsT BDDD2pTIVQZSYmCEthdQRjPRIwpJ7C9yIoANbCENhf9GGvX8hTT6+Qs6R/IbOqkGm09BXrfxn5RE AhCAOjNYARCGYaig9eL+/1sHMrQdyYij4tlBYLs/sibdfjBDLAkQGkf5t5o4hUJRAEOBDjMbcPid 7pDBsM9QuFa4xSNxcIZQhwAYF/YVPT0oCEn5RAgaC61IGn56Ro3+IqIqVKP1ZB3uindlTY6N6/kC yOe5BWDWDFYAhGEYKkP0IP7/l05QEExK4jqYdwchPYydHmFrN/84JUYwjDqYuZ29pj7EJiioHQBE TScYUKSFFFBAi18dX0DIS3t9lm5MajA8vOLdUUOwqW3pkuD9U8F/FB6S2dW3CCi4UFInwYACDHiF V+w/DInguNLZd06OUXLl9QjAnBmsAAjDMJTh2EX8/x8VHVXEVpPRDvXsoWy97LJHUtL8QyjSR6Q9 PCy+chdlUy0aFCyFYSqljB4MUwwHRZgjaBuEAWCkLrAK63Nah/UGg/uIa1447tCh7T2c/G/+zp0I ks4dQIiyITgr4FhQBscMQFZ9o8JehMDRnl6UI/SnAGIZpIkCfQkdM461EvAhbWjvA720gCcIIOYD JgpwiQGkuaAJgwNIgxMFNGGwoiUGZqREAZ/vgFJYJ8GQhrMZGFAX7sKX4sGGtqERj9xe+AVdcAPD sITxC5YwkKsSJPwNqAaMgXrgJQcocUBLjd9IJQZRDVKAAMyasQoAIQxDQcTJ//9WvUla8iQHyq03 SCcnH2lsU38MxWl6eVuPh+Fkculq0YFCLaQLjvQWUoums38brhAGQ3EgmFoeQjavSB6mkuSVKUE+ sDakU95g2Cr90bIsa4DBHe7JZwz8RgBBFRi0E7wG5vYzNb4E0GApMZATBTOWhTPIk1Ww9RDI0+Po XVNYgxNWWvCglRYoVQgsUaAlCPQqgxHfNDnmTPl/WLfxL3Su4w+spIBWBaCI/YkWsbAG5A/YtDos cWDDIP1Qdcj6wBiUKJDaGaAS4w+OUgMrAAgglkFQWjDgGpNASgjoQ9rI6yXQRzG5oF1THmjvA97g hLYvOKEYW6JgRqsu0JfioewrRVoZ9R9pVhNpQhQyx4GeKKCNx5/AxAFqOMIxtCr4jitxwEoapKn3 X0ilCywhwJb3wXsm0DbGX6RpeIL7XAECMG/GKgCEMAwVuc3//1fpdKYkkna68Qap7oG8pvX5gYV4 Wuii6ELwkfiNtjnQKrE2Q6vFdvTCpiyEbJFMce6CzNla0FEUMeo3wUb1HkIJLlMV6ipgBQBHnh0R +9QER1SIAnezgyIMMYe4w9+WYcg2wjfGbaP8c57xCiCWwVKFQDFsSJsNS4MSGXNgmQ5HHuaGdUVh YxWc0B4IJ1L1wQZNFNjGJTC2iKEv6UduVCK1If4i9ThQEgWsR4GUKL4D6W/QxPEV2qtAbkTCSg3k RulvpBVcsB7NH6Q2BPLgFnx7AVJJga0awZo4AAIwbwYpAIQwDEQQkf3/V0VkLwvSyBj0vie9mybt UPMPIiTZun42JvEgHuQGevglEBFL4O0KRlGNVRRzCs2g219TYmzd2Ttw0jjwh1nNIYo3omOEKKZb hDAahCFxdPQKpJrcEOcIup0GzRgfHiNXx/gEEMsgKS2Y0abIYVUHrEpAHr2EjUFwIUc88jA2bIoc Kg4fyUTukiInCuT2BPocDfKQNtKKKpSl/MjjEbCiHdbNROpJ/IQmCIzSApQ4QIkCvSpBai8gj2L+ xYaRSy2kkuEfljkTBmJGPwECiGWwNDihmBVLacEDxLxIXU8epDYD8qglLFGw4RjSZkMaoyCYKNBK i/9II5b/YA1K5BXbSOMRsEW68K4orLEJ6n3ASgtowxNeYiBVI7Ah7p/IDUj0RMGAtlWRAXVT8z8c m5qJPhYBIIBYBqjBidyugC/MRRqsQu56wkoKPqRBKm4s3U52aGOSDXkhDWyKHGnyixlH9YEtUTAg VSHg9RF/EeAPUtcR1kj8Aes6QjG8O4o8jA3CsIQBG5wCiUF7JCijlsjtBqQGJEr1gLb7ndAud6Lm SgACiGWAqhCUngiWhTXgagSI4SOY0NICNqwNHo8AYg7oQBVyNcGKVjIwIycIUCLE0hVFSRTIw9mw KXGk3sZfWBsCeQQSOmfxHTaxhYR/IA9Eoc1xwGlookIuKXAmCqTSAdu5GAwMVDg8BSCAWAa4wcmE 1OCEz44CMSda+wIlcUATBicIg8YjoAkD2wwofM0EbKU2+ogV8sgl8h5P5PEJ5Ikv2BJ+2CAVdM7i O7QB+Q29WoBhWOKAYWQ+8ogn8qAU+gQYtu4mjpN0yE4QMAAQQCwD2OBESRToE2GwagRtlhR5dhRc jQATB6gaAY9HgAB0SBtWMiCv0Ma6sRhtSBvjoBLksQloifEbad4C3JAEtROgbYUvUIzSw0Ae1UQe AkeaJv8FSxBIE2p/kAemcMyMEkoAZB/QBhBALANYWjBD7WdBWsCKvFqbCy1xcMMGrZCny6HtCthA FXxUG5YQoG0IlK2BWBLFf7QzKRjQBq7g4xPQ3gZKQxLYwwAljM8gDEoYoFlOKA3rZfxAGu5GWVwD G6jCUXX8xdOYpHpiQAYAAcRC79ICWxWCY9qcCylxcCHv8YANgcN6HNA2BAvaxh4mtDlxRvTqAj1F IDcy0XaA/UHa7PMLKWF8g2JQwviClDg+Q6fAvyGtkfiJliCQp9pR1mOgJYh/DISPS6L6QbAAAcRC z9ICtrYCaeseC9J2P+T5DuQNPyibfmBD4mgzrCibaZAxNN7REwXWHIexWRStB4Lc7YS2K+CJAlhq wBLFJywJ4wdSVfELyyjlX7SBKWxL8ihuN5ACAAKIZSDaFmg9EfQuKtZFu0gJgg3p6AHYLiwYZoQe AYB8zAD68Yn/ccyMIq+u+g9raCIPaSONRXyHlRSgKgNWhYASBIgNTBDICQNX9xMlMaCNQfwjd/yB WgAggFgGsrSALfNHGq3EKCmQNgaxI59FAd2FBTsghAlpIS762ROETsFDmRhDOnIAviUQNseBnCBg A1Og0gItcXxBWkmFbV0E8vwFRumANlJJ8vgDtQBAALHQs7RAq0JgW/zYYLOl0GFteOMSqQqBbRpi hSYKcAkBDHxGpLWWDNDNOMhb/hixBO5/tMNUUY5IROuWwqsQLAkDJTGgJwpYNYK8igqpYfkPR4IY 0FICGQAEEF0an2hHIqKMWyAnCiwzqLCjB9hge0Rh1QdkgxYjAzACwKEK3Z2Fdfc4+tA2A/aDU/8h JYw/6D0QYBsC3C0F0l+QGppf0BqbX9CGtX8glRawxiXKLCe1DmylNgAIIBZ6VCMMiP2bGANayIkD 22wobEsg7PwHaDuCEToyCUsUoJLiH5YZ0v9Y5jv+o3X//iHt+kLZw4HU4ISPVYASBqyhCUsUSCUF ci/kB/oIJtIKqv9oC2bo3rgkBAACiNZtDEYspQVyVcKG1L7gwJYoYN1RpM25KIkClL2h3VQGpHWY WHePIyUAlJlHtHMzYZNjv5DmOmDd0i/IJQZ6okBubKJPgDEg9o1g23XGMFgSBAwABBC92hhMSG0M FuSEAWt8Ik+Roy3lZ0HaCgjrfv6HLsMHpzykXgj61AfWhiXyaisGtFNnkHZ8wdZSfoc1MmEJAqlr +hl5pBNtTwdKokAam/g/mBMEDAAEEAuNqxF4jwS94QmrSpCOFkCfOkfeI8qEfMgYdI8GcvvlP/LB Zwyop+8ilxb/0Pd6oi24gR+TiDSE/Q1pevwLtBeC0gMhVH3gSRSDKjEgA4AAYqFjNYJelcDaF7DE wYZtNzlsqR1SVxNcDCPNfsJ6PP8ZMI9lRm9X/IVt+EGe/0AuLaAjkbAp9O9IE2TICQN5TuQblvGK 30Sssxy0iQIEAAKIhY7VCDNawxNWYrBh2yeKtMcHuaj9h7yaigH1RBiUYXDYgBZawxI+dY5lFRRs FPIXcsKAlRiwlVZoVQfKkDfaUn18y/UHdaIAAYAAYqFjNYLSvkDrlcCPLYI2NJmQqg9YKfEXmh5g o5z/oPtEmRiQDjVFn0pnQFu9jZQw/iDvJEcapkY+PxN57QR8JTf6rCl6osCyVH9IJQoQAAgglgGo RliRSgwUjHawGXKr/S/s8DFQJwQ29A09UwoUAbAlgv/Rluj9R2tXwGdJkWnktgVaiQFbOwHf+wFb ZYVl8zCuKoSkU/8HCwAIIBY6VSPI4xewmVCMk3WRzptgRIrUP8g9U+gYBnLCYEYepyCUMJAX8MJK DuTD2mGbdWBrJtAX1CAvrCFmpdVQSxAwABBANG1joPVGmJFOt0MvNVDGKZAnOJGqA/ih6bD5Eego 6D8GxJEI/6HVC3rCQK9C/qCt8IYljF9YDiX5iZYokKfPf2PZF/pvqPVAsAGAAGKhcinBQKAaQT9e EfkkXSak6XFYN5IRdlgpUikBo5ETBaz3gX5cIfxwEuTqA63U+I1WYiCfWoOxuRhtOT/6/SDDIlGA AEAA0arxyYg+FM6AdrI/UsmBXFowIG0Ehvc2YMPgWBLFPxyLYBkZUJfmoVcjv5GW/2NUJcgYthUA fUcYckMTy8rtIZ0oQAAggGja+ERbrcWMlihYkBfYwM6rglYfsMYnrNRgQEoYzNAqhAVLoDNDIwhe 8kCGPDDOsfqDljB+Y9k0hF56/EJbbfUXfXPPcEkUIAAQQCxULinQZ1JRjlrEcREMrPiHnVH1D3r2 NXKigB1hxIR09PE/Bsy1mrDqhAFp4Q22RifyZiH0xPEHR+JA3hb4B8vimgGfKqcmAAggarcxGLHM qOJsX8DaFkin24GnvKFHGDIyIE7JZYAmEtjGZxZ0O5ESAhPaPtN/6I1OpE3BeNsZSGxcS/H+kbKD fCgBgABioXU1woC6WRnjshe00uIvdGDqL/I8B5QBK4HQL3xjREoITEgHrsMW9eIrMdATBdZqBelM rD94Vl0xDJfSAgQAAohmbQyk8QsmHKfzw9oWTEilxT/k03HRAp0JelA68pwIE9rxiUzQsQ7YwevI C28w2hhoG5LhpQLyWZlI6v5i2Ts67EoKGAAIIBYqJQSMbiqWhicztjs9kNoR/6FXQTKgrZOAz4Mg zarCSqO/SF1YBqQBMHjCgC3Tw9FVRT9SAOWqShxHDaBP2f8fTiUFDAAEELUbn8gLIphwJAjkg9Bh A1oMsNICfd0E2gQZrOSA5do/SIkClArAg2BI1zn8Q0sUGOdYIJcaaDvL/6DdbYpSWjDg3kk+LBIH QADRZIALbRgca2mBVJXA9onCL41FO+eBAfliGlhJAcXM0MiCncAL3jrw9+9flIQB2zSE1tZAnzz7 g5YgUHogDKg7zbFtFRxWACCAWKiUGJDvK2dC2yqAPD+CcgUlWuMR+X5ReEQgVR3wdgYD6tZBJmjE gwsd0OJgaMKAnWOBPByOPnH2F20X2F80NvomIPQtg8OuCoEBgACiVhuDEUs1woSvtEAaEWVAO/UO 5ZggJHuY0HegIyWO/9AqBF6NQBMFeA8AjoTxF+14IvRzqzDO+GbAvvdjWJYYAAFEi3EMRiyJAmVm FXnCDLlbinzJG9JoIsxM9Hodedb0P7SdwYBUhcBKDJQGKJYjilCqCzwJAt/q7mFXagAEEFUSBp7e CAv0OAIWtGFw+P0eWG7+g9Xlf6GBzYTUKMW47AWpq4txXRRSiYE8LP4PSzXxF1fCYMCyOYhhEGwI ojUACCAWCksIBhzVCDP6Ggyk0gJlYAtLiYHS8GRALMRBUcyAtAgG/Q4x6LrOf0iHqP1DXuuJ1F7A mjCg5uKbRv8/3BMIQABRrfHJgH1jETNygxOtl4I8nI1eNYAjA5oYmBlQUxCsofsP2hv5i3S15D/k U3mRr6dElkdrRCJXFX+xiP3DMVE2rAFAALFQsRrBtfAXvUeCfMsgI5aGJ3IuZUS6RA6jxECuSpAT BFoi+IdWGqHcYMyAWE+KUlIw4J41HbajncgAIICoOcCFXFow4ZhNRe6RIG/8+IejLodf8YA0mfYf bXQUZSAL6coouBz64e8MqKfdoR/9/J9ASTHs5kWwAYAAYqGwCkFpXyB1QWHVCErDE9YjQd9VxoC6 khs5IpjQdpWhNEjQSgLkbihy6fAfKXH9Z8A8AhE98tETB3qi+T8SqhOAAGKhvBZBPaKRAfsyPuT7 SZFvHEQe2ELeKvgPLQ0glxjwXgy0e/oP23wGcvpBy93/8RyOii0R4NsX8n+4lhoAAUStxiesxMDa G8EyFI6yJhNt7+g/pITBiFQyMKAdY4C8DPAvjhKDAanXAmfjiExciWJYz4ngAgABRJWRT/R7y3AM bjHjqEZQGoOwASu0hAErIpCvuUafJPuLNlbxHykhIF9khy9C0deO4koQw75XAhBALJSUElgSBc4R T9jd52hXUaIs70drZ4DNhS7ggd9kjHRSL8M/JIA2ovkPeeUXFncjb29kwFFyEDpld1gDgACitPGJ K4GgJwpm9JP10EY80SMWtjocdPYFpDGBSBjwQS202dN/OKoi+JWXeNzPgCeBEEowwzKxAAQQNdoY GGdsMSBO5UO++RCj0YllTylsOhzWI0Fe1QW+nhK2YAca4cgX1/5FGsj6jyVBYCshmJDnYwiUHsN6 CBwdAAQQ2QkDeWALbY0ncgJBaVugRQCsUYltcgs2L8IITQz/YPeWQlePMyFfPIY8sgk7UAWpPYF8 rTay/f8YMO95ZcRTghBqXwyrxAIQQFSddmdAvQUR+S4SlB1iaDOpf9FWX/+BnX0BnSP5C8Xgxils XytsDwpSqfEPaTALlvLQEwQTUhuDCanUYCJQaow4ABBALGQkAmxFM/IeEvTLaeAlCdLCXfRpdvgq Kyj9H0nvX1hJAU108BID6erKf2gjnAxoCYKRAfPU4P9IbidUavwfaQkEIIAobnximytBTxCwRAHr iSDNb6As7UdacgfrUcASxl9oG+MvWjX0DzlxII1doPSckBIJ+sAaA5q7CVUlIyahAAQQNRuf6IGP kijQBpmwLrlDWpfJgHRiDjM0cfxBKv7hq6jQ2hf/kexCTxCwBIvcxsBWYjCMVisMDAABRI0hcaxt DaRuKSPSSm4GWEMSfYcYeokBbWfAFv7+gbZb/sJSBVqvBqMagSUKpB3w6DvhGXC0MRiJKC2GPQAI IEoGuHCVGOi705FLi/9IK66Q2xV/0EoM5PEHFgbEApo/yEU5NIH8ReuiorsVV8JAboQSShQjro0B EEBUnXbHkTiQT9j7B5VDaWyi7fFAPoANFGl/oDvb/6L1KhgYUA9vRd7jiq1tgZ4w/qFVe+gjpMSM dg7bxAIQQBQ1PmEHsDIgKn5sVQcD8pA2cjWCXGIgbwOElRgMmEvuUBIG+vHPyHMhOBIFelXyH0uC wBbxI2aBDgwABBDFJQbS5TDIe0jhGHmugwGx0hq9CkGeIUXO/TgTBlKVgXwcAiNaosDa7kFyPrZR T0ITaAwklChDFgAEEFWm3ZG6osgJggFpWd5/tDUWf9CGstE3DsOqAfSEAdtshHLXOloJgq2KQy8x /hMxZjEip9thACCAqLavBEuiYEAawYQNZzNgmRv5g2XKnBGt/YC8yuovptX/sVUF2LrPyOeC/iey pPg3EhMHQACxUJIQ0JfdId+DDqtCoNdGwFZ9o2wqQqtCkPeUwNop2NZeMiFNy+Naf8lIYIyFAUei wLbmc8S1L0AAIICo0sZAGthgQNoVBmtw/oNOiMEiE9thacglxn+0RPEfSwLBligY8fSWcA2HM+BI HCN+lThAAFH14BRYIgElCug6CuQ1FH/REwYWDKs2YMU9rqOM/uNoGzBgGb1kxDGyiazvH5F4RMys ggBAALFQmhCQ7zBFBtBEAWtbIOd0fIniL1K38x8RF9gz4BjGxtawRB/YYsDSlkDZa0Kg1BjWACCA qF1ioAQcbK8pUsJA6YJiSRTIZ2QQs48DX/XBQGBEE1vVgXWbIsMQvUGAEgAQQNQax4AtrEEe+oYP aOFLGAyo10yiD1ThiwSCQ/M4Eg+uUgI9QfwlogE6bBMHQABRmjD+o1cpiF2HmDcUokcG8jZB5KFt AoGPLdIZyUgc/3CUFn+wJBRCbYxhBwACiKrjGMiJAumQE2w7vP6iJQ70YxH/4xlQwxf5xC66QXcL ITziSg2AAKJJrwRpawBykQ2rHjA2DaNtF2TEEvjEjEkwMRBeu4krUfzBQROzd3VYAoAAosU5n8h3 h+DdMIx22ct/Am0JRgIYfdgb2xwIA7ZSC0ei+DuSEwdAANHqvpL/aL0U9JIA2yZibMUzrrYEtgTA hKcq+U9EL+QPnkQx4rYQAAQQC7UTA47WP662BroYAxElBhOehIFrFpUBS2mBLUEQmziGfa8EIIBY aFBS/MeTOAhtFia20YltfQUxVcl/PI3O0SoECQAEEC2rEkIbhHFt+cM3S8qEo2TAl2CQczaxXdQR nzgAAojWV3gTql6IKSkY8EQ+ruoEX4nxj8hu6ohtX4AAQACx0MkeYrb2kTJ2gZ44GBgw112QOuJJ qJQYUSUGQACx0KG0INTmYGAgPOTNgCVBMBNRlRAz4omteiFmVnVYJxCAAGIZZO75T+RIJxOOqoNQ AxRf6UHoMLYR1fgECCBa3+1OTmIgVJ0Q0/jEJv+fyMQxIg9jQwcAAUT1A2ApSCCk2EGoAcqMlkBg bZB/RDSGCa3xHBEJBCCAWGhQIuCa/SQnkTASMY7BhEMc/SB7fAekkNNjGtYAIICofr0mjkhlYMC9 1pKRCLPxbprGIcaMZTwD3x5WbA3mEXGsEjYAEEBUvRONgfB6CEJ7RBkJ9EoIHrfAQHjnGa5eC65E MCJLDIAAYqGwVCBmzAF9MovQUQPElhq4EgczA+qRB8j2/mfAv8mZ3N7TsAMAAUTJ3lV8pQOpK6oI lULYxjKY0TATFhp55xlsfIKFgfijD0ZkaQECAAFE6TEIxJQUTEQmJGISIhOW0oEFS+JAThgMSCUG KGH8wVLKMDJQ3nsaVgAggKh9og4TngEoJgbMSTJ09n8iSx7kBMCCpfRgRqtK/iHR6KUMMaf2jbiS AyCAaHInGhEDUYTGPBhJKC2Q73FlwVFiICcMFhwlxihAAgABxELFhEDM4BOhtgex5jOjlRgsWBIJ +hgGAwNixzwlDc8RAQACiIUGJQWuRMJAoD5nJDLBYUsUrFDMgqWagCWI/9D2xeiZW0QAgAAi95xP YvZ1MOHpruIrMfBVI/gSBSuSGHqPBJY4CC0UZhjp4xcwABBAVLtFkYG4RbmkDG4RGrsgpsSAVSP/ sJRWxK4qG5EAIICo0V1lJCIyGYmIeEKNTVyJAlv7gpkBdXU4emIgtKN9xNx9hgsABBDVbjgiYWCL kcwSiAlHl5QFx2AXeqTiWrX1h4HweRgjDgAEEBOFDU4GIkY9GUho6BFTjTDhGPHE1ttATxCgRPAb Df9hQN02QMwdaMMeAAQQE5VKDGISCzklEBORGNvmIuTSAZQAfuHAyAkE37EHIwoABBCtu6ukzo/8 J3HcA9vJOIxI7D/QyP8JxT/QMEz8F5ZSY0SvywAIIBYySgYGIqsQcuYfSDUPvXRA3j8CKylgieA7 EH+D4u9Q/AMpYeBLHCOuEQoQQCwUlBCEeikMOCKRUE4kdMMQA5aGJAMD5o56WGkBSxRf0fA3tMQB q1LQ2xkjstsKEECUXGRDSq8EXyJhYMC+Cw1X6YDeo2BgwLxuAlZa/EQqHb4gYWwJ4xeeRuiIAwAB RIsBLnLWVRIagcS2pfAX2ogmA5bS4idSFQJKDJ+xJA7khPGbAf9hKSMGAAQQC40SBaH2AK4EwsiA fYMSeqL4zYCYLWXC0uD8jVaNfEOqQpATBqw0+YnWdcXVKxkxiQMggGhVYhBTSvwjUHJg250Oi3Dk RMGEpuYPUmMSvdGJ3sb4hqXxOeJLCxAACCBqXGRDaByDgQH/WRn/sJQY/7G0KWAlATNU/DcD6nzI X7TSAjlhfEdLIPjaF7i2Jo6oxAEQQCwUJAhSqhD0tgIx2wBxjVoyorUrcA1koY9dfEfrpqK3Lf7g aV+MOAAQQNQc4GIg0KMg5ThmbLvSfyNVG7+xNDb/YBnV/ImUALANav1Ca1v8ZRihtw2gA4AAota9 q4TOpGBgIH3z8H8sbQdGHOMVuIa8f+KgsQ2F/0Wr4hhGaqIAAYAAosUAF75GJ6HEwYinR/IHqXuK rQeCHvHo8yHIiQE9QWBLFCN6oQ5AANFizSd6oP5jwH6IOzGHk6AnDPRtAL/R2hO/0NoN6AnhNwPm 0Ur/8CSKEZs4AAKIhcgEQM6oKL6DX4lp4GGrTpCX6SGPVfxEw9im1dEPdkUvJf6PJgoEAAggStZ8 Ejvsje0kXlLuAcF29OMftMblDxwJA9uha4TOGB3xiQIEAAKIhcxEga9aIac38h9Pw/Y/WjH/F0fb Alv38w+ehDi6xhMPAAggau1Ew1cNoI81YBsrIGYA7T9aifGHAfuKLPRxCUJL9kYTBRYAEEC02NSM rY1B6OAzQgt0cI1t/MGSSP7gaVyO6FNySAEAAUTOQh1CVQq+sYh/DLjXVSKbQeiEX0KHuCKL42pc jiYIPAAggKix4YiYybN/BBIHtpII297S/2S0X0b0LCm5ACCAKBngIvZuEEKjnthKCmyYgQH7kdK4 SqjRxiUFACCAKDlRh5gBLlwjnti6iLi2ImJLGPi2FxJa+DMKiAAAAcRCQWmBSww9cZBaWmDbUISc MIi9yWg0IVAAAAKIhcRSAj0xEDrUnYFAiYErYaBvO0S+j52ZgbSTcEYTCBkAIIBYyCgpSFni/59A dUIoUbCiJQzYABczA+HN06OAAgAQQJQ0Pkk5pgjfvAihw1BYGVBP9f2Dpf1B6NyN0VKDRAAQQKRM ohF7CCuuowawJQ70ril6gmDFkjDQT80ZLTVoAAACiNQBLkJHHRDKvdhyLno1gpwg2AiUGITaG6Ol BZkAIIBI7a4S2oGO78R/fKUFtuqDDUuJ8Z8B8xwMfOd9jQIyAUAAsVBYSuA6gJXYHgO2oxlZsZQa jEgJ4w9ab4WZgbQztUYBEQAggEjtrmI7xxtbsc6MNiCFrxeDr30BKzWQJ+KILTFGG6EUAIAAIre7 ykSgJ4E+IMWEI4Fh65GgH7YGSxh/kbqqhA5xRXfzaIIgEQAEEAuJiYKJiEQBE0Med8DVvcV2rhY2 MxmREge2koKJgbSzOEYBAQAQQCxEti8YcORwfAek/UfrdRBzVyr6+eAwGvnmgNFuKh0AQAAR0/jE 1oPAdc4mtl4EMwPx95ehi+E6N5SBAf/pOqMJhEIAEEDkViWEEgcjlnEH9Mj/x0B4BJWYQ1RGAQ0A QACxEJkocJ2zyYoDM6KNVBJqKGKLdPSVV7hWdo+uzKIBAAggFhLGL3C1LVixDEjBGor/8HQrGXAM fqEv2WNCKnmwreUc8WdZ0AIABBChxicDjhID19A1G1IvgglHwsB29CL6jjPkxb3om4ywbSQa8bvT qQ0AAohQ45NQiYGeKFixdC9ZcHQp0bcWIG8F+IU0SPYXqcRA35+Ka//paOKgEAAEEDltDBYCbQxk M/8y4L7qErkkQC4hfiJ1Uf+hJRDkLYnI+1OJ2T8yCkgAAAHEQmT7gtD4BXLCYEYb9WRmwL9H5D9S aYCcgGDnYDCjVSXIJ+Egn51FqEoZTSAkAIAAYiFh/ILQ6f/I4rBIJ3ZvCAOWhPMXKaHB1COfxId+ Pid64hhNDBQAgAAiZXaV0C0AyI3M/wz4l/vBEsQftK4ocknyG2mwDLnK+YmUOH4yYB6qNqLP56QW AAggYtsYxB76TmgdBrYdZP+QejDIDVFWBswLaZCPU/rJgP0MrdE2BhUAQAAR013F1eYgtJeE0Ek6 yHeFMEATAHLvBHmehAGpLYLtrC1CbYzRxEEiAAggSg5OwVUKoJ+Fgd6dRD/y+S9S1fOHAfvdqQxo 1c8fBuzHJhG6pWgUEAkAAojUVeK4RidhkcyE1M3EFnF/0NQjRygDA+YiIPQS6R8W/X8IjGOMJg4y AEAAsZCQGPAdQ/ALrdH5jwH3ZTF/sCSQf2gNVuQZVmyJEtcpOSP+AhpqAYAAYiGzlEAuyn+ijTUg Jwz0+0DQE8cftISBXH0xoVVlxJz8h+vKqlFAIgAIIBY8iYFQoviFZZQS+eReWKKBnZGF62xN5HMs 0NeIYksY2PapjJYSVAYAAcRCZBWCLVEgL7v7j9RwRE4k6IenYTsfCz1h4Gv0EjosdrRtQSUAEEAs OAKfkYiEgTyY9RdJjBFtzOEH0kglrnO7ce1SY8AR0bjOHh9NEFQCAAHEgidRMOKpRpjQupF/kMYd GBgwbxlCP2oR13mb2CIX2yrv0TMwaAwAAoicqoQJy6ATrGrBddPQLzzVCPpxjYQmv/7jaRONAioB gAAipvH5D6lBiW1cAfkeEeQhceSrItAxtm4mqVXBaGKgIQAIIHxtDAYsuRnbYBP6Yl9Cg1HEXP8w GukDDAACiIWIHIl8RcMfPNUL+kIcbBNmuI5uHk0UgwwABBC+qgRXqYFeIuDaxIw8vvCXgfi7SkbB IAAAAcRIhBwyzYSDJuaYpf8MxB3dPAoGAQAIIEYi5cm9ThPXINRoohjkACCAGElUw4gnseAad/g/ OiA19ABAADGSqZYRjxiuLuXojrEhBAACiJEK6okxY3TF9hADAAHESEe9o4lhCAGAAGKkoXmjCWEI A4AAGkWjACsACKBRNAqwAoAAAwCKqINU6bQeDwAAAABJRU5ErkJggg=="/>
+ </switch>
+ <g>
+ <g>
+ <g>
+ <path clip-rule="evenodd" d=" M243.53,185.374c1.058-0.586,1.852-1.455,2.122-2.653c0.398-1.178,0.75-3.192-0.177-4.424 c-0.662-1.304-2.036-2.913-4.066-3.685c-1.969-1.12-3.092-1.613-7.737-2.018c-4.333-0.405-15.177-1.072-19.148,0.127 c-3.91,1.21-5.254,3.763-4.235,7.385c-1.312-0.885-2.845,0.21-4.595,3.285c-1.582,3.165-3.858,9.233-5.762,14.952 c-1.693,5.636-4.777,12.277-5.799,18.447c-1.037,5.875,0.388,8.619-0.575,17.708c-0.783,9.124-2.928,27.442-4.697,36.75 c-1.735,9.131-5.602,14.798-5.42,18.093c0.551,3.01,6.321,3.554,7.622,0.873c1.332-2.854-0.54-9.948,0.154-16.418 c1.128-6.389,3.498-13.328,4.743-21.48c1.275-8.327,0.501-18.375,2.113-27.527c1.758-9.248,6.059-22.083,8.254-27.633 c2.536-5.727,4.642-3.931,5.887-5.909c1.26-2.092,1.84-3.949,1.577-6.072c2.392,0.541,4.743,0.598,6.72,0.59 c2.058-0.111,3.929-1.325,5.679-1.134c1.91,0.04,3.001,1.419,5.713,1.599C235.011,186.305,238.564,186.042,243.53,185.374z " fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <radialGradient cx="-195.02" cy="76.3657" fx="-195.02" fy="76.3657" gradientTransform="matrix(-0.8571 -0.1511 -0.1407 0.7981 81.5927 87.1388)" gradientUnits="userSpaceOnUse" id="XMLID_3_" r="26.3364">
+ <stop offset="0.0944" style="stop-color:#BF0000"/>
+ <stop offset="0.1351" style="stop-color:#C30300"/>
+ <stop offset="0.4333" style="stop-color:#DF1800"/>
+ <stop offset="0.4976" style="stop-color:#CF1300"/>
+ <stop offset="0.7111" style="stop-color:#9F0500"/>
+ <stop offset="0.7521" style="stop-color:#960500"/>
+ <stop offset="0.82" style="stop-color:#7C0400"/>
+ <stop offset="0.9065" style="stop-color:#530400"/>
+ <stop offset="1" style="stop-color:#1F0300"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="1" style="stop-color:#1F0300"/>
+ </radialGradient>
+ <path d="M212.565,180.21c0.345,1.308,1.511,2.285,2.716,3.032 c1.554,0.57,3.414,0.897,5.314,0.938c1.95-0.19,3.656-1.197,5.55-1.1c1.888,0.154,3.805,1.561,6.185,1.803 c2.79,0.076,8.145-0.286,9.733-1.313c1.745-1.234,1.615-4.107,0.52-5.488c-0.955-1.474-3.099-2.683-6.234-3.354 c-3.057-0.719-8.137-1.198-12.14-0.896c-3.854,0.153-8.148,0.286-10.336,1.502 C212.021,176.435,212.425,178.821,212.565,180.21z" fill="url(#XMLID_3_)" i:knockout="Off"/>
+ <radialGradient cx="-165.2939" cy="98.7578" fx="-165.2939" fy="98.7578" gradientTransform="matrix(-0.8571 -0.1511 -0.1407 0.7981 81.5927 87.1388)" gradientUnits="userSpaceOnUse" id="XMLID_4_" r="33.4704">
+ <stop offset="0.0944" style="stop-color:#FF543F"/>
+ <stop offset="0.2881" style="stop-color:#D82919"/>
+ <stop offset="0.4333" style="stop-color:#BF0D00"/>
+ <stop offset="0.4976" style="stop-color:#CF0E00"/>
+ <stop offset="0.7111" style="stop-color:#FF1200"/>
+ <stop offset="0.7521" style="stop-color:#F61100"/>
+ <stop offset="0.82" style="stop-color:#DC0E00"/>
+ <stop offset="0.9065" style="stop-color:#B30A00"/>
+ <stop offset="1" style="stop-color:#7F0400"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0400"/>
+ </radialGradient>
+ <path d="M198.621,214.08c0.994-3.089,2.415-9.724,3.82-13.336 c1.545-3.703,3.436-6.101,4.861-8.046c1.65-1.787,4.021-1.844,4.441-3.134c0.735-1.651-0.199-4.666-0.963-5.75 c-0.713-1.016-1.582-1.88-3.068,0.052c-1.233,1.92-2.959,7.018-4.721,11.217c-1.771,3.904-3.94,8.983-5.436,13.111 c-1.205,3.943-2.008,9.561-2.133,11.377c0.219,1.643,1.326,0.057,1.933-0.848 C197.965,217.823,197.909,217.041,198.621,214.08z" fill="url(#XMLID_4_)" i:knockout="Off"/>
+ </g>
+ <g>
+ <path clip-rule="evenodd" d=" M237.89,187.509c1.195-0.627,2.057-1.534,2.279-2.756c0.372-1.205,0.621-3.257-0.572-4.475 c-0.884-1.299-2.625-2.882-5.071-3.599c-2.404-1.069-3.765-1.535-9.252-1.791c-5.111-0.27-17.893-0.589-22.46,0.754 c-4.493,1.353-5.859,3.983-4.368,7.619c-1.609-0.853-3.318,0.306-5.123,3.478c-1.593,3.257-3.773,9.479-5.536,15.332 c-1.527,5.764-4.604,12.59-5.299,18.875c-0.733,5.979,1.164,8.714,0.778,17.954c-0.172,9.263-1.189,27.888-2.501,37.373 c-1.293,9.307-5.368,15.173-4.88,18.508c0.894,3.025,7.709,3.385,9.015,0.63c1.331-2.932-1.447-10.058-1.163-16.629 c0.798-6.513,3.015-13.622,3.806-21.918c0.819-8.469-0.916-18.625,0.229-27.948c1.308-9.422,5.306-22.564,7.423-28.256 c2.513-5.883,5.126-4.134,6.426-6.176c1.307-2.161,1.839-4.06,1.354-6.203c2.854,0.468,5.617,0.451,7.934,0.377 c2.406-0.18,4.505-1.469,6.574-1.334c2.243-0.024,3.64,1.34,6.839,1.433C227.974,188.732,232.121,188.348,237.89,187.509z" fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <radialGradient cx="-129.2012" cy="107.2437" fx="-129.2012" fy="107.2437" gradientTransform="matrix(-1.0183 -0.125 -0.0998 0.8129 109.9018 76.4407)" gradientUnits="userSpaceOnUse" id="XMLID_5_" r="26.3382">
+ <stop offset="0.0944" style="stop-color:#BF0000"/>
+ <stop offset="0.1351" style="stop-color:#C30300"/>
+ <stop offset="0.4333" style="stop-color:#DF1800"/>
+ <stop offset="0.4976" style="stop-color:#CF1300"/>
+ <stop offset="0.7111" style="stop-color:#9F0500"/>
+ <stop offset="0.7521" style="stop-color:#960500"/>
+ <stop offset="0.82" style="stop-color:#7C0400"/>
+ <stop offset="0.9065" style="stop-color:#530400"/>
+ <stop offset="1" style="stop-color:#1F0300"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="1" style="stop-color:#1F0300"/>
+ </radialGradient>
+ <path d="M201.13,183.292c0.509,1.313,1.957,2.266,3.436,2.983 c1.871,0.526,4.075,0.797,6.317,0.776c2.27-0.258,4.188-1.332,6.419-1.296c2.226,0.095,4.594,1.456,7.407,1.624 c3.284-0.013,9.537-0.555,11.314-1.646c1.95-1.308,1.563-4.213,0.165-5.576c-1.245-1.461-3.858-2.616-7.593-3.193 c-3.647-0.628-9.647-0.946-14.323-0.51c-4.513,0.28-9.542,0.555-12.012,1.86 C200.179,179.485,200.852,181.889,201.13,183.292z" fill="url(#XMLID_5_)" i:knockout="Off"/>
+ <radialGradient cx="-99.4736" cy="129.6357" fx="-99.4736" fy="129.6357" gradientTransform="matrix(-1.0183 -0.125 -0.0998 0.8129 109.9018 76.4407)" gradientUnits="userSpaceOnUse" id="XMLID_6_" r="33.4721">
+ <stop offset="0.0944" style="stop-color:#FF543F"/>
+ <stop offset="0.2881" style="stop-color:#D82919"/>
+ <stop offset="0.4333" style="stop-color:#BF0D00"/>
+ <stop offset="0.4976" style="stop-color:#CF0E00"/>
+ <stop offset="0.7111" style="stop-color:#FF1200"/>
+ <stop offset="0.7521" style="stop-color:#F61100"/>
+ <stop offset="0.82" style="stop-color:#DC0E00"/>
+ <stop offset="0.9065" style="stop-color:#B30A00"/>
+ <stop offset="1" style="stop-color:#7F0400"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0400"/>
+ </radialGradient>
+ <path d="M187.538,218.052c0.912-3.161,2.036-9.927,3.389-13.632 c1.514-3.802,3.535-6.292,5.049-8.308c1.793-1.864,4.566-1.999,4.954-3.32c0.729-1.696-0.613-4.718-1.601-5.791 c-0.919-1.007-2.007-1.854-3.596,0.153c-1.292,1.984-2.896,7.204-4.62,11.515c-1.764,4.01-3.893,9.226-5.309,13.455 c-1.09,4.034-1.57,9.75-1.57,11.597c0.391,1.653,1.563,0.011,2.202-0.922C187.069,221.866,186.941,221.075,187.538,218.052 z" fill="url(#XMLID_6_)" i:knockout="Off"/>
+ </g>
+ <g>
+ <path clip-rule="evenodd" d=" M223.457,194.974c1.158-0.84,1.989-1.999,2.188-3.501c0.348-1.491,0.566-4.006-0.615-5.412 c-0.88-1.526-2.603-3.342-4.997-4.059c-2.364-1.148-3.698-1.627-9.061-1.589c-4.997-0.003-17.485,0.424-21.931,2.353 c-4.368,1.935-5.669,5.225-4.168,9.556c-1.585-0.936-3.238,0.586-4.959,4.562c-1.515,4.067-3.566,11.781-5.211,19.023 c-1.421,7.117-4.338,15.625-4.937,23.319c-0.641,7.332,1.248,10.537,0.988,21.81c-0.049,11.292-0.806,34.039-1.969,45.667 c-1.142,11.415-5.048,18.82-4.531,22.848c0.912,3.628,7.575,3.632,8.813,0.192c1.264-3.656-1.541-12.153-1.346-20.176 c0.698-7.976,2.772-16.773,3.44-26.926c0.691-10.367-1.131-22.623-0.133-34.047c1.157-11.557,4.894-27.812,6.89-34.878 c2.378-7.323,4.957-5.36,6.199-7.931c1.25-2.714,1.741-5.061,1.245-7.639c2.79,0.389,5.485,0.191,7.753-0.046 c2.352-0.374,4.379-2.078,6.405-2.047c2.188-0.17,3.569,1.399,6.692,1.31C213.782,197.097,217.834,196.365,223.457,194.974 z" fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <radialGradient cx="-129.0464" cy="153.8784" fx="-129.0464" fy="153.8784" gradientTransform="matrix(-0.9962 -0.0872 -0.0872 0.9962 101.2594 21.459)" gradientUnits="userSpaceOnUse" id="XMLID_7_" r="26.3376">
+ <stop offset="0.0944" style="stop-color:#BF0000"/>
+ <stop offset="0.1351" style="stop-color:#C30300"/>
+ <stop offset="0.4333" style="stop-color:#DF1800"/>
+ <stop offset="0.4976" style="stop-color:#CF1300"/>
+ <stop offset="0.7111" style="stop-color:#9F0500"/>
+ <stop offset="0.7521" style="stop-color:#960500"/>
+ <stop offset="0.82" style="stop-color:#7C0400"/>
+ <stop offset="0.9065" style="stop-color:#530400"/>
+ <stop offset="1" style="stop-color:#1F0300"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="1" style="stop-color:#1F0300"/>
+ </radialGradient>
+ <path d="M187.494,192.189c0.516,1.567,1.942,2.632,3.396,3.412 c1.837,0.522,3.994,0.71,6.182,0.541c2.211-0.459,4.075-1.888,6.254-1.987c2.176-0.028,4.506,1.48,7.252,1.503 c3.209-0.227,9.312-1.286,11.033-2.728c1.886-1.718,1.472-5.23,0.086-6.8c-1.229-1.7-3.8-2.938-7.452-3.403 c-3.573-0.53-9.436-0.536-13.999,0.295c-4.403,0.628-9.311,1.286-11.707,3.032 C186.521,187.614,187.208,190.499,187.494,192.189z" fill="url(#XMLID_7_)" i:knockout="Off"/>
+ <radialGradient cx="-99.3188" cy="176.2725" fx="-99.3188" fy="176.2725" gradientTransform="matrix(-0.9962 -0.0872 -0.0872 0.9962 101.2594 21.459)" gradientUnits="userSpaceOnUse" id="XMLID_8_" r="33.4715">
+ <stop offset="0.0944" style="stop-color:#FF543F"/>
+ <stop offset="0.2881" style="stop-color:#D82919"/>
+ <stop offset="0.4333" style="stop-color:#BF0D00"/>
+ <stop offset="0.4976" style="stop-color:#CF0E00"/>
+ <stop offset="0.7111" style="stop-color:#FF1200"/>
+ <stop offset="0.7521" style="stop-color:#F61100"/>
+ <stop offset="0.82" style="stop-color:#DC0E00"/>
+ <stop offset="0.9065" style="stop-color:#B30A00"/>
+ <stop offset="1" style="stop-color:#7F0400"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0400"/>
+ </radialGradient>
+ <path d="M174.664,235.381c0.849-3.906,1.863-12.216,3.137-16.813 c1.427-4.726,3.37-7.887,4.823-10.439c1.729-2.383,4.438-2.725,4.796-4.36c0.691-2.112-0.658-5.706-1.635-6.949 c-0.911-1.167-1.987-2.13-3.513,0.416c-1.233,2.5-2.735,8.957-4.364,14.317c-1.671,4.996-3.685,11.482-5.015,16.723 c-1.014,4.98-1.409,11.97-1.386,14.219c0.403,1.99,1.529-0.084,2.139-1.262 C174.254,240.054,174.12,239.099,174.664,235.381z" fill="url(#XMLID_8_)" i:knockout="Off"/>
+ </g>
+ <g>
+ <path clip-rule="evenodd" d=" M207.502,206.581c1.185-0.799,2.055-1.927,2.308-3.422c0.399-1.478,0.705-3.984-0.426-5.431 c-0.826-1.555-2.485-3.431-4.856-4.23c-2.32-1.229-3.636-1.755-8.993-1.905c-4.996-0.176-17.494-0.185-22.002,1.587 c-4.434,1.782-5.849,5.024-4.498,9.406c-1.551-0.99-3.256,0.473-5.116,4.386c-1.657,4.012-3.975,11.649-5.872,18.829 c-1.668,7.062-4.881,15.464-5.748,23.133c-0.896,7.304,0.879,10.572,0.225,21.833c-0.441,11.283-1.992,33.986-3.559,45.566 c-1.542,11.369-5.702,18.633-5.327,22.676c0.784,3.659,7.443,3.895,8.802,0.497c1.389-3.604-1.116-12.199-0.641-20.206 c0.975-7.948,3.356-16.668,4.377-26.793c1.053-10.335-0.342-22.64,1.057-34.029c1.558-11.507,5.859-27.622,8.102-34.614 c2.631-7.238,5.139-5.187,6.471-7.711c1.345-2.669,1.919-4.997,1.511-7.591c2.776,0.486,5.478,0.382,7.749,0.225 c2.362-0.292,4.451-1.924,6.474-1.821c2.191-0.095,3.519,1.522,6.642,1.542 C197.76,208.366,201.831,207.775,207.502,206.581z" fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <radialGradient cx="-116.5815" cy="183.4795" fx="-116.5815" fy="183.4795" gradientTransform="matrix(-0.9925 -0.1219 -0.1219 0.9925 107.4142 1.0581)" gradientUnits="userSpaceOnUse" id="XMLID_9_" r="26.3385">
+ <stop offset="0.0944" style="stop-color:#BF0000"/>
+ <stop offset="0.1351" style="stop-color:#C30300"/>
+ <stop offset="0.4333" style="stop-color:#DF1800"/>
+ <stop offset="0.4976" style="stop-color:#CF1300"/>
+ <stop offset="0.7111" style="stop-color:#9F0500"/>
+ <stop offset="0.7521" style="stop-color:#960500"/>
+ <stop offset="0.82" style="stop-color:#7C0400"/>
+ <stop offset="0.9065" style="stop-color:#530400"/>
+ <stop offset="1" style="stop-color:#1F0300"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="1" style="stop-color:#1F0300"/>
+ </radialGradient>
+ <path d="M171.656,202.543c0.46,1.583,1.85,2.698,3.274,3.528 c1.816,0.585,3.964,0.849,6.156,0.755c2.227-0.38,4.137-1.745,6.321-1.768c2.175,0.049,4.451,1.637,7.199,1.757 c3.208-0.115,9.35-0.96,11.118-2.341c1.945-1.65,1.652-5.175,0.325-6.792c-1.171-1.743-3.694-3.07-7.33-3.662 c-3.551-0.654-9.412-0.865-14.003-0.194c-4.418,0.476-9.348,0.96-11.803,2.622 C170.843,197.937,171.427,200.845,171.656,202.543z" fill="url(#XMLID_9_)" i:knockout="Off"/>
+ <radialGradient cx="-86.8535" cy="205.874" fx="-86.8535" fy="205.874" gradientTransform="matrix(-0.9925 -0.1219 -0.1219 0.9925 107.4142 1.0581)" gradientUnits="userSpaceOnUse" id="XMLID_10_" r="33.4717">
+ <stop offset="0.0944" style="stop-color:#FF543F"/>
+ <stop offset="0.2881" style="stop-color:#D82919"/>
+ <stop offset="0.4333" style="stop-color:#BF0D00"/>
+ <stop offset="0.4976" style="stop-color:#CF0E00"/>
+ <stop offset="0.7111" style="stop-color:#FF1200"/>
+ <stop offset="0.7521" style="stop-color:#F61100"/>
+ <stop offset="0.82" style="stop-color:#DC0E00"/>
+ <stop offset="0.9065" style="stop-color:#B30A00"/>
+ <stop offset="1" style="stop-color:#7F0400"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0400"/>
+ </radialGradient>
+ <path d="M157.326,245.262c0.985-3.874,2.288-12.144,3.722-16.695 c1.592-4.671,3.644-7.764,5.184-10.264c1.812-2.321,4.53-2.568,4.946-4.188c0.765-2.086-0.459-5.725-1.391-7.003 c-0.871-1.198-1.911-2.197-3.527,0.294c-1.317,2.454-3.046,8.856-4.86,14.157c-1.844,4.933-4.083,11.345-5.596,16.537 c-1.186,4.941-1.824,11.914-1.88,14.163c0.335,2,1.531-0.034,2.181-1.188C156.754,249.918,156.652,248.96,157.326,245.262z " fill="url(#XMLID_10_)" i:knockout="Off"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_12_" opacity="0.8" transform="matrix(1 0 0 1 125 0)">
+ <foreignObject height="98" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="112" x="0" y="0">
+ <imageReplacement align="center" height="98" opacity="0.8" placementMethod="ratio" refHeight="98" refWidth="112" valign="middle" width="112" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_11_"/>
+ </foreignObject>
+ <image height="98" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_11_" opacity="0.8" width="112" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABiCAYAAACI/lfbAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAA6ESURBVHjaYmAYBUMaAATQKBriACCARtEQ BwABxDhI7fo/GjXEAYAAYhwg8xlJjLjRCMUBAAKIkQ5mMpJh3388kTcamUgAIIAYaWQWI5E0oUjD RY9GJhQABBAjlc1BptHZjGjiyOqxRRQyZkBjE8qlIwYABBAjlXMdLsxEICJxRRwI/8MToSM+IgEC iJEGuY4JiUbH6JGJLQL/IdHY2P9JiNBhDwACiJEKkYee05AxMxQzIdHIkYlen/3Dgv/iEMcXmSMm IgECiJFKkQeLEOTIYsFBI0cizBzknPcXKeKwYfRIRS9mR1SxChBAjFSKPOTcBossViw0TA49F/5H ijxk/AcN/0WiseXOEVesAgQQIxUjjwUJgyKLDQmzImH0nIhcfKJH3G8oRmcjRyhyZOJr9AzLiAQI IFIjEF/ksaJFHDsaZkOLRFwRiBxZMPwLitHF0SPzH46iddjmRoAAYiQj9zHhiDzkiOOAYk4kNjuS GlguZMQSgbCI+YWEf6LR6BGKniP/4mnsDKvcCBBAjGQUnUxY6jrkHMcJxVxoNHIkwopamJn/0CLw N1KEIeMfaHxcEfkHrY6EJRAGPI2dIQkAAoiRxKITV85DjzgQ5oZiLrRIZENq0DAhtUL/okUgLIJ+ 4MHokYkrRw7b3AgQQIxkFJ24Ig8WUTzQiONBwlxIEcyGVg8iF6F/0IrPn2gR9h0J/0Ci8UUkerE6 rOpGgABiJjH3MWNpaXIgRSAosniBmA+K+dH4vEgRjC13sqPVlegNH2TMjIaxjfrgmwlhJKM0GnQA IICYSch9yIGFLfK4oRGEHoHokceDFHnIEceBFnHYuiDokYner2QmcuyVkUCCHTIAIICYSch9TEiR x4rUusQWeegRx4dWnHIh6ceW81hx9B9JzYnI7mfAEpmMBMZ3Bz0ACCBmEnMfLBCRW5zcOIpOfrTI 40arCzmwRBorjhEc9MhjxTJER2xxyjicilSAAGImI/ch9/W4cUQgMuZBq+8IRRz6sBsLlohjQZNH H2tlxlKMEhuRQ6pIBQggQhGIq+XJgdbqxFZ8wsSQI48dS4eeFS2Hs6DxmfGIseDJiegRyYQnUoZs kQoQQMx4ik/kIogFrfhErvuw5T5eLDkPfUgNXx3GjAWzEIhIZiLqQ3yNmyFZpAIEEDORXQf0licH Uu7jQWus8KG1NtHrO/TIYyISM2OJPHxsZD2MWOpDRjKL1EEFAAKImUDxyUhi8cmHJIbcaGHDMxuB nkNwzejjy6XEFKP4IpCRQENu0NaLAAHEQsDRuKaMcA1es2PpFuCLOAYG7AubGJFoJiwRwYyjccOK NjOCaxCABUtuRY/gP1D3/EMbLUJ344ACgABiIWLwGt8ANq5pI2wRhx5Y+FL4fywR+Y9A/Yg+rYWt 68FKZN8ROSL/IkUkE46ENmAAIIBYyBzExjZpy0Yg8vAtaiImIhmxdM6ZsCQu9MhkIZATsSUsbEUt 8qA4w2CJRIAAYiFhEBtbBCJjNjwtTFzFJq4FvoxYIhKWCwnVj8x4ikwWAq1WZjx1JTIYNJEIEECk 5EBsAcRKYLAZV+OB0HgktohkQCrCiFkJh6+YxdUFYSJiFOfPYIpEgABiwVGE4Vqcy0REKseXksmZ 6vqPFoDoxSq+XMmEZ8SGmYj+I3oY/Ia64+9giUSAAGIh0NfBF4lMRBRDxBRHxETkfxz6mAgkNiYS ciKxuRDdbf8GsnUKEEAsRAYgroBhYiB+Po4SgJ4bkXPifwLuxOVeQjmRUL8RuThlGKhIBAggFiIC jYGB8GYVRjw5jZgWJ6m5Ed0MJjRxJjJLDXwtZlxuHtBIBAggFiJTPr6OPin6aZEb0YtZXAmL2GE6 fPs5cCXIAYtEgAAiFIGEdsyiLwwidp3JfypELiOelioj2qA8+jAdMfU2E5GlyYBGIkAAsZAQebi2 faGv+MK18YSBjrnxH44+Jym5kpRidMAiESCAiGnEoEca+s4hbJtP/hGISEYaRCRyQDHhKVIZiRg4 xzeTzzCYIhEggFiIjDxckYa84QR98wn6Ur7/aDnlP5UjkpgilRHPsBy2iGUkYfZiQCIRIIBYCOQ4 9NyHHHHom07wLXNnRmv+E+rfUbNIRY5IBhIjk5LW8x8c7QSqRiJAADHj6fMx4hh5QR/ExrWOE9tW MlzL+2hRpDIw4N6zz4CljsMWiQxE5DpiD2SgSescIIBwRSC6B7ENn+GahWDBMQvBOICRSKgPS8p+ fkKRSNcl+wABRCgH4hrMxjVxim3hLTGNAlpGIiH78PmZgchI/E9krqQ6AAggZiJGX7BNJ6EXqbim aQgdcECPSGTAYx8jCTmUgYG4E6aI6Q9TrTUOEECEFjURGhwmZo0mExFDbQwE2LSKRFIjEl0/MTmP 0OFEFPkTIICYiSh2SB3lx7fOhNg6kJ6NGwY8oy3E5sT/DPgPK2Kg1YAGQAAxEzGITexIP66RfCYi AoqUHEOPFiq+SMTlJvTIwnfoAtXqRYAAIrQym1DDhtiFs8TsDiLU72KkYyQy4knADFgG0Qn1oXHt SaS4PgQIIEKbW/BV/EwE+lKkrnzGJ8dI50hkICIS0UeAiD0mDN8Wb5L9BxBAxGwvYyAjddKrJUmr viIxDR9CI1jYxoP/UbtrARBAzETmAkYSPEZKf4nY+peWRSopEYavT4hrpgZ9LJnQ8WAk+QsggIjd Yo2r2Y0u9p/ACMV/EnMYI4kBTYtIJCYXIvsNX+T9YyBuyo1ofwEEEDMJHiPGE7haZMQ0qUktWqid G4mJRAYiuxP/8GCqFqcAAcRMoseICTByK3Nim9i0bOAwEtEaJ6YeJHTq4l8iGjZE+QcggJipnNoJ RRy+IgRfZ5dQ3UDN3EhMZx9dLTY/4IpAQpPeJAGAAGIm0WPEBA6h1tg/CpvaxBbpjDSKRAYiGzL/ GXCfdfqXiM4+UQ0agABipqB4IaUI/U+gVUZMC43eXQ5GIqoQRhyNNWR//cVC41t+QlK4AwQQM5me IicC/+GpH4g5VpnUCKVGbmQkwSx8RSihQ2v/kZtoAQKImQJPkVoP/sMTiX/J6DMxEJliKY1IRhLN wbYMBddaon8MxB1Yi9M+gABipjBlMhDZdfiHo078i6elRkxkkrLehJKIJHdEBt9CMFxHY/4jpWsB EEDMVKgjsFW4uBoj2CLnL4FWGr4iloEUz9IpEnEtBEM+0JbQCr5/xOZCgACiJAKJrQ8YiKwHiano yb16gBFPYDBS4F9GPH7G5rc/OHIitvNNiUqUAAFEaQSSWy/iquj/4Ym4vzhy8X88xTclEUIt/2Ir QpHPBCfmpGGcACCAqBWBpNaLuOo5fFcOELo74h8RRSuxa1NInWgmdAcGtsPc/zBgP5UfXx8Rw10A AUTNCMQ3NkpMcfoXi4eJaYL/xTNAgKtYxRex5ObK/wRyIPpJ/NgWROPKhTgBQABROwLx5UQGAkXo fyL6TX+JKGr/kTBUR+wMCTmlDra7MJAjEdtJ/CRHIkAA0SICyYlIQg0bQre4/MXRn8TWhSGmnvxP RmTiKmWQ3Yt+jQK2SMRWbeBsaQMEEC0jEF+R+p/IXEkoAom5moeYrgi+sVdSp3xw9QHRc95PHBH5 hwH3xiCMhAQQQLSOQGJGLRhwDHb/JaI+/ENEJxnXfUv/yShuGfDMlvwnMfLQr1EgJhIxAEAA0SMC iekzEjtuSszdSvhGOwiNQ/5jIG7O8j8R3SN0N8IiCBZp2E7eR4/Af4RmZgACiJ4RiK1DTUxu/Idn ROMvHvYfPDnyL46uCyk7jv8x4F8+gSvnIV+d8A0pAmGR+BtPJGKEG0AA0TsCSc2NpDRs/uCIvN9E 5tJ/BMZm/xEYmP+Lo9j8jZTzkHPdNwbMezCQi9G/xEQgQAANVAQSmxvx1Sv/8ETcHyI7ztjGJYkp fvFh9K4C8uUlsIj7ikZ/I1CM/sNVBwIE0EBGILFdDVzFKq4iFVsE/cZBk4L/EqDRc9xPtMhDjrAv UPZXJDFsEUiwLwgQQCwDHIHo263RTyWEiTHhaRzgauH9REr16Depod9XQegUfUInOCH7B9l9MHd8 Qyoyv6HVeb8YMLem4ys2UfgAATTQEYgrItGnqP4TGF/8jSUSfzCgniL8HUvk4bruB323MaFIxBWB yHXfV6Sc9w2t9fkbT7GJdyQGIIAGSwQyoEUasoPRc+N/PF0KVmhAsCFFJDs0oNhxRBw7A/F3NuE7 /xTdbb/RWp6wohM9En8iRSK2mXq8ACCABvOlFsRec47vHFP0XMXOgPuYaFwRiK8oxZYD/6HlQOSu AywXfkajvyKpgRWrf7DUgxhFKEAADfbrZXCtlkbfDYXtJEL0PfxsDIRP2MB2dxP6TTK4Dm9AH8BG vgfxJ1oLFB1/R8uNxNaHDAABNFQueSL2MFp8h9JiO4wBPVJZsRSfxDRmsOXAv1i6Et+xNGjQ70DE 14XAiECAABpqd+bh29pGKCKxHcyA7XQNQsdII+d2fDkQ23Wy6JdZoo+FIs9IENWQAQigoXjpITHH hRA6fhnfkdG4Io4FS+Rhy4G4buTGdicwvpkIojbAAATQkLy1ksSIJObQVxYGwpdtYbsJBteJ9jD8 By0n4rtS/S+WRgvBJYYAATSUI5CUiMQXmbgOaSB0hQ+uVuh/IgYd0Bc04ev/4Z2HBAig4RCBxEQk AwP2s9AIneJLzDmiDFgGHIg94ZHQEZ0MhCIQIICGUwQSikhicia+c0QJnQ2OPo5L6gJmUndmgQFA AA3HCMTlN1IOvyMUYYR26WKLRFyLuP6TG3kgABBAwzkCCeVKfJHJQESkYTOTmBl7Yvd5EAUAAmik RCChXImvuGVgIP7gAwYiI5KBgUonOAEE0EiLQEJ+p+YxJ/8JRChFEQcDAAE0kiOQ1AglN7z+k8gn CQAE0GgEUhYu5B5qRLVTCwECaDQC6RNWNDuxFyCARtEQBwABNIqGOAAIMADq62C8B475ewAAAABJ RU5ErkJggg=="/>
+ </switch>
+ <g>
+ <path clip-rule="evenodd" d="M213.109,65.87c-5.268-12.263-13.13-22.723-24.167-32.533 c-11.326-9.883-32.317-25.825-41.55-25.319c-9.161,0.648-18.251,18.467-13.345,28.709 c4.832,9.956,28.781,25.032,41.478,31.307c12.407,6.205,23.375,7.719,33.182,5.339 C210.151,70.919,211.595,68.396,213.109,65.87z" fill-rule="evenodd" i:knockout="Off"/>
+ <path d="M213.109,65.87 c-5.268-12.263-13.13-22.723-24.167-32.533c-11.326-9.883-32.317-25.825-41.55-25.319 c-9.161,0.648-18.251,18.467-13.345,28.709c4.832,9.956,28.781,25.032,41.478,31.307c12.407,6.205,23.375,7.719,33.182,5.339 C210.151,70.919,211.595,68.396,213.109,65.87z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="150.353" cy="23.7104" fx="150.353" fy="23.7104" gradientUnits="userSpaceOnUse" id="XMLID_13_" r="62.8126">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.2463" style="stop-color:#FFA9A3"/>
+ <stop offset="0.3742" style="stop-color:#FF675B"/>
+ <stop offset="0.4333" style="stop-color:#FF4D3F"/>
+ <stop offset="0.4371" style="stop-color:#FF493B"/>
+ <stop offset="0.4612" style="stop-color:#FF3525"/>
+ <stop offset="0.4895" style="stop-color:#FF2514"/>
+ <stop offset="0.5247" style="stop-color:#FF1A09"/>
+ <stop offset="0.574" style="stop-color:#FF1402"/>
+ <stop offset="0.7111" style="stop-color:#FF1200"/>
+ <stop offset="0.7458" style="stop-color:#F61200"/>
+ <stop offset="0.8034" style="stop-color:#DC1100"/>
+ <stop offset="0.8766" style="stop-color:#B31000"/>
+ <stop offset="0.962" style="stop-color:#7B0E00"/>
+ <stop offset="1" style="stop-color:#5F0D00"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF4D3F"/>
+ <a:midPointStop offset="0.13" style="stop-color:#FF4D3F"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0D00"/>
+ </radialGradient>
+ <path d="M208.132,62.84c-4.689-10.749-11.762-20.271-21.498-28.854 c-10.1-8.729-28.638-23.084-36.934-22.507c-8.295,0.577-15.942,16.303-11.83,25.464c4.256,8.945,25.537,22.218,36.862,27.844 c11.181,5.411,20.629,6.998,29.431,4.761C205.463,67.313,206.762,65.076,208.132,62.84z" fill="url(#XMLID_13_)" i:knockout="Off"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_15_" opacity="0.8" transform="matrix(1 0 0 1 125 42)">
+ <foreignObject height="75" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="107" x="0" y="0">
+ <imageReplacement align="center" height="75" opacity="0.8" placementMethod="ratio" refHeight="75" refWidth="107" valign="middle" width="107" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_14_"/>
+ </foreignObject>
+ <image height="75" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_14_" opacity="0.8" width="107" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAGsAAABLCAYAAAB3E3k6AAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAy3SURBVHjaYmAYBUMGAATQKBpCACCAGAeh ff9HowU7AAggxiFm9oiOSIAAYqSxeYwk2vmfzEgaEZEIEECMNI4gRjxixAT6fwIR8n8kRR5AADFS SS8jHpoRT8QxEBE5xIqRE6lDCgAEECOVIgo9cvBhXPb+x0MTI0ZsZA7ZyAMIIEYK9KAHPhOSGBMO mlDu+o8lQv4TEGfAwackJw5KABBAjBTmJuTIIYSRIw3dPHwRhA3/I0EtMTlxSEQcQACRGlnYchIs MpiRaGSMLMeEpUjEFln/sLCJpYmJTPQIHBIRBxBAjGQWfei5BhQZLEg0MkaPOCYckYUt9/xDYxPC /3Hw8UUioYgbNJEGEECMFEYUeuSwomEWJBo5whix2P2fyMj5i4X9F4scOv8/nkgkpsgc8IgDCCBG CiIKPZLYcGBWtAhDz13/8UQWrojBh//hEcOXG/EVl4MitwEEECOR9RRyZMFyCCtaJLEDMQeUhrGR I40FLcLQ7caWqwhF0B8s7D945AhFHq46cFBEGkAAMRKZq7DlKFa0iAFhTiTMgSPCsBWF/3EUf9gi Czky0NmEMLr+f3gikNgcR7dIAwggRiJzFa6IQo4kLiDmhtJcSJEGi1BYTkQvCtGLQfTI+ksgsmD4 Nxr7N5r4bwKR+JeMiGPAU79RHQAEECMJuQrWmIDlEvRIAmEeJDY3Ug5jR6q/0CMLW5P9L46chS8n oUcQOv5FZCSiF5u46jlsEUfTSAMIIEYScxUrWkQhRxIvEuZBymXIxSGhyPpPZDGIHKjYAv8XlkjC Rf/GEYl/cNR1AxZpAAFEKLKQcxWsGIMFPiyiQJHDh4Z50XIXes5ixtHX+kdihOHKXeiRgg3/xsHH FoH4Io7YxgjFACCAGIkoApmx1FNcSBHFD40gASQ2HzR3weovdrQWIaGO8T889dc/IotDQpH1E41G Z+OLOFy5jaa5DCCAGIkoAtFzFSdajhJAw/xIxSG2yGImchSDklxGKMKQIwod/8LCxhVxhHIaVXMZ QACxkNDHQu5fseFoDXJhaWhwIrUGSYksXMNOf7HkNmw5DV+RiC2yfuCg0SPyF9QfyJHGhBZp2EZC GCmNMIAAYiEi52EbWkKPME60CENvvrPhiCxCUyT/COQ0fM17fK1CXDnrBx6MHIGwSGNGKx7RI+0/ WuQxUpLLAAKIhcDwEiOOCMOVu5A7wxw4mu3MBEbeiZkq+YelmU+oeMSWy5AjDVsEfYdiGJsNLcex IEUcE9QemL/Qc9k/SnMZQACxEDlvhTzMxIJjqAkbJjR6wUhgpPs/EUXkfxJyGnqk/cJRHH5Hi6zv 0ISHzGfFMrPwGy3S/iINpTFRWiwCBBAxdRb6KDuuCMM3gIvcCsQ16s5ARMT9J6Ex8o9A8fgHKZeh 5zBOtMj6hjbuicuPP7EkRka03M9AboQBBBALCbPC2OatWHFgFiwDt0xkRhauIpKBgtyGntPQcxms GEQuzr/hKDFYcfj1Fw5/kh1hAAFEbGuQCc/0CC6MbZYYVxGIK7H8x8JnJLKoJCa3YSsaf0Ij5weW +pcDSw7DNgWErcWLXiySHGEAAcRCQp+LEce0PTOWshvX2gtsEcWIJ0dhW5P4H0eEokcaE4GONnKE sUJpWP37E63u5SCyGGTB0YhihCYGinIYQACxEIggfFP5TFgih5kB92IZYtYPElM04opARgI5jQnH YDELUsT9Roq832iNJzYi6mdii/z/OCIMLwAIIGL6WdhyGDErmhgZiFtOTcloy38CEY8t4pjQaORR ERa0yGIlMpJwrTfBV9z/QZt0ZSCUuwACiIXIQMKWy7BFGiOenEmtSMNnzn8sRex/HBGHHGn/oAH8 l4HwuhL0SMLVwGAk0PH/j6MexhlhAAHEQkbA4IsEXJE8EDPf/7G4Fzkw/iPxmZD6QsiRhm21Fita JOJq9RI7nIZeJOLMWQABxMIwfAEjgeISPbcxITU+cDWk0LsuyGJMOIbScI1x/seSaPAWhwABREpk 4VtvzkBgnG+wRRwjjtYlI5achi/isK2JZMDS6sO3nA6GGQmNHQIEEAuRkURoxSxd5nOoHHHokQTj MyMFHhMD7kWtTAyEF66iT+tgWzbwF6n+xNvAAAggFhJy038iJghxRRwDgYbAYMltjFj6aIxoKZ+J QCf/P1pE/cUxAwDrkDOjDUUx4oo4gABiIbK18p/I7PyXAf/6hP9Ubg1SM+JwNUj+4+m+YIsomP9x DWfBMCva1AojvogCAYAAYiZiiAnbwC07nmEY9EWduEYyBluk4etu4Opn4spV2HIWrhVU/9Dmv3BW GwABxEzC8BL6PBY7jvEydrRmLRMD9gUyjIM4lzESMSjAiKd5/o/ARCh6xOGr7+EAIICY8TgU1wYE VgJzWOgDm8xEjAsOtghjIJDL8I2o/EMbvkIuBrGtoPqLo/rAsAMggIjJWYw4Igt93AxbEUioo8hA w9ENWuUyQhH1D89o/k8GzJVTyC1DfDtYGAACiJmIsUB8uYsNLaJYSRh+wdanIHVwd6Cb/diWfv9F a1hgW+MB4yPnLoKtaIAAYsHRpMbVTP+LpYWDbf0COwPqmgtcvXpGLH0MRjyROdARiG+EgZHAgDcj njFUovwDEEDE9LNw9RnQI+o7WosQOWehm4ec4/6jORpbxDEQEYHUjsj/RPQ5SRnRoXhwACCAWIiM qP84+g6wiEKf8sa25Aw5h2KbSmBiwH0EAyOezjQjNQOEyGE2Qpv+cG3yI7SNCC8ACCBmAikT3xwW rkFN9AYFA4GRZ2I3a+Mac/xPpZz2n4yIQm/1oa+Qgi22+YqEvzEgVk/9RGtk4K2zAAKImUArCFvL ENusMDHTA/j2CxMzKo1vWTK+oojQTg9i9fzDUndja/GhR9IXHJH1Ey2ysHWOUQBAABGKLGxsYipM BiKGqojZwI0tIgnlSlwRSOr5Gvg2R/zFEkk/kCIJOaK+oEUYcs76hdZJxleiMAAEEAuRZTVsIBO5 gYFrmgC5NYmt9Yi+4ATbYhMmtJEPfK0ofAmLlKIQ32op9Ej7gxRh2CLrK1KkfUPKbT+xRNBfLJ1h rAAggFjwOBzXft8/OKYLGLH04rG1HDmIjDBsdSC2xggTjv4hAwPxh3wRWkD6D8cQ0i+04g85R31G ylHo9dQvtIj6R0xjAyCASJ0i+Qv18B88DQnkyMIWUbjW3aF3pnHlNHznQhF7uBcjnoYLMUvX/hDI VbDIQo4w9EbFbywjF3gHcgECiFAxiJ5bGJAijNAgJnLRB1uSTGj9HXouw3VCDTMD7sU6pCzcISWi /qDVVeitv29oLb/PaPXVNyw56w9azmLAF2EAAcRCQlmOnmsYCYyNIXsIvdPMgTRMxUpihOFb6Yut bmMi0G9jYCC8pxk5otCLv594mulfsBSFhIpBnAAggCg5DojQ4C76Slb0aRT0MUU2PJGFXjTim1on ZiUwrsjCl6Ow7UBBH8H5hiWHYWtk/EQbyP2HJ4fBAUAAkXPQFhMD/m1ArFgGeHGNzmMrBnGd+4RM MxHIZYTOO8RVBOKro3CNoqN3gr+jRc53LI2L3wQ6w1hzGEAAkXuEHbYIQ89p6Isi2bDkIlwRhS93 4YowfEUjI9IYJSMRkUVomxB6MYi+AQ/brsmfJMxjYY0sgAAi53BIbBGG7yg7Vgb8J6Zhy0msBIpB ZiJyFjEHU/7HMRWPrwgktBEP1z5kbPNXREcUCAAEEKkj1LjGDXFtWMB3DiELnohhwaKPmYhikJh+ GSOeAWtit7siR8BPBuwnAfxiILy7/z8DEWsvYAAggCg90JjY8UNcq1qZcUQKCw61zCREEqE1+AxE NC6w5S5cJwH8xhFB6Ad7oQ+jETu9wgAQQNTY1YFrdhnfNiF8x7MSWvXKTORAMjE5i5RDvrBFGqGD vIg53IToqR2AAKJ0oo6RxNxGKAKZSIwUfPUTMfNkxMxR4Ys0bGdJkXLWE0nzbwABRIutN8Qs38IX gaSeZk0oggitVSRmpTG2iCP2xFCqne0EEEC0vIuE1LV3xJwLTygymPCYScxALjGHKf/FI4ZvOofi 9f8AAUSrhSeMROY6YiKRkYQBW3JuamBgIO6cDVwTpIQmTKl2hhNAANF6lRAjiTmPAc8ALCVi5Iy6 U3IJAAMDDY5nBQggei7pYiSx2GRgIO4CGkYixQjlLFwDuwwMxF+pQdOz4QECaCAXUDJSmBPJESNl doGBgbj7Teh26wJAAA3G1a7UilRy/PmfQI4jJsfQbOMgQAANxg0B5EzfkKKP2HWGg+5yNYAAGsyR RU03U/Ni0AHbcgsQQEMxsujpn0F10w9AAI2iIQQAAmgUDSEAEGAAcvSiuwKiqrAAAAAASUVORK5C YII="/>
+ </switch>
+ <g>
+ <path clip-rule="evenodd" d="M207.987,75.175 c-8.008-8.656-17.315-14.788-28.999-18.682c-11.687-4.113-33.327-9.306-40.18-4.761c-7.07,4.472-8.152,24.309-1.299,31.451 c6.854,6.709,30.153,10.099,42.056,10.172c11.542-0.073,20.559-2.958,27.337-9.45 C207.267,81.019,207.626,78.133,207.987,75.175z" fill-rule="evenodd" i:knockout="Off"/>
+ <path d="M207.987,75.175 c-8.008-8.656-17.315-14.788-28.999-18.682c-11.687-4.113-33.327-9.306-40.18-4.761c-7.07,4.472-8.152,24.309-1.299,31.451 c6.854,6.709,30.153,10.099,42.056,10.172c11.542-0.073,20.559-2.958,27.337-9.45 C207.267,81.019,207.626,78.133,207.987,75.175z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="149.1216" cy="60.3047" fx="149.1216" fy="60.3047" gradientUnits="userSpaceOnUse" id="XMLID_16_" r="52.4252">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.143" style="stop-color:#FFDBD6"/>
+ <stop offset="0.2817" style="stop-color:#FF7A64"/>
+ <stop offset="0.3773" style="stop-color:#FF3C1C"/>
+ <stop offset="0.4215" style="stop-color:#FF2400"/>
+ <stop offset="0.7111" style="stop-color:#FF2400"/>
+ <stop offset="0.7521" style="stop-color:#F62300"/>
+ <stop offset="0.82" style="stop-color:#DC2200"/>
+ <stop offset="0.9065" style="stop-color:#B31F00"/>
+ <stop offset="1" style="stop-color:#7F1B00"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4215" style="stop-color:#FF2400"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF2400"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF2400"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF2400"/>
+ <a:midPointStop offset="1" style="stop-color:#7F1B00"/>
+ </radialGradient>
+ <path d="M203.153,74.67c-7.143-7.646-15.364-13.201-25.753-16.664 c-10.676-3.823-29.358-8.006-35.706-4.183c-6.493,3.967-7.071,21.641-1.155,27.988c6.132,6.132,26.835,8.874,37.367,9.018 c10.315,0.072,18.324-2.74,24.309-8.44C202.504,79.864,202.793,77.268,203.153,74.67z" fill="url(#XMLID_16_)" i:knockout="Off"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_18_" opacity="0.8" transform="matrix(1 0 0 1 128 75)">
+ <foreignObject height="76" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="107" x="0" y="0">
+ <imageReplacement align="center" height="76" opacity="0.8" placementMethod="ratio" refHeight="76" refWidth="107" valign="middle" width="107" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_17_"/>
+ </foreignObject>
+ <image height="76" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_17_" opacity="0.8" width="107" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAGsAAABMCAYAAABqFkmCAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAy7SURBVHjaYmAYBUMGAATQKBpCACCAGEf9 SBb4PxAeAQggxhEaKYw0ihiaRiJAADEOw4hhJEE9IxkB/59CtWQDgABiHMKRw0gkn5EKfv6Pg/+f CDVUiziAAGIcopHDiCdSCNGEIhBfIP/HQv/HI8dARKQSDQACiHGIRQ4+mpEIPr4chy9H4YocdMyA h09xpAEEEOMgiiBCkYMtIrCJMWFRgy8SiYkoXJHxD0uE/cMRkdgij6RIAwgglkEaQbgiBl+kMGER ZyJgBqHIwof/IdG42NhodDsYiY0wgABiGQQRRErEYKPR2Ux45PFFFiOWFE8ogtDxXzx8Riy5jqQI AwggFjpFErERxIQjgghhZiLEiIkwQhGFK4L+orFxYeQIJDmHAQQQC51yETERhC1HMGNhI9OE2MRE Gq7WIK7chC9i/uDBTFCaASmX/SMlwgACiIWGuQhf8YYv16AHOrGYBYsYtkjGlsPw5SxYZP3FEll/ 0CLpNxINw7+QxGH2/UWy6x+xdRZAALFQMaJwRRJ60UZM5LBgYSPT+MTQ9aPbgas4xFUEYoss9Ij6 jSWCQPgn1C0wPi77mJDswZm7AAKIhYq5iZgchK2owhXw5GJ8uQy9OEQvCnE1z/9hKfr+oOWo30gR BMNsQPwDLVcz4rCDkVBTHiCAWKiQm2BsfDkIV7GFDbNioVlxyOGLMORIw1V3EVsM4ossbBH1A4q/ o7kBXwMGObFgzV0AAcRCpdyErQ5ixlGUEYoUNiQ2OkaPPPSIY8aRu9AjC9nN+BoY2BoX2CILudiD RdJ3qNvQI4oBLQGgRxjO3AUQQCwU5Cb0yEIv4vDlGFYskYOLxhaBuHIXsUUgqa1BbLkLPWfBchUo kjigbmZBSxT/cfTHmJCKQpy5CyCAWCiIKJgjkCMJWwRhixQ2HHw2HPLYchi+4o/YiCImsnBFGHKd hVwEIkcUM1pEYWucMCNFGN7cBRBALBREFLaiDlfksCNFADseMUKRhS9H4Wu2M+KIKFJGMHDVXcg5 6weOiPqHo+XIgtQHIzT8xQAQQCwkRhS2Ogm9vsEWKRxQGhvGFVmEIgpbkceEp+XHhGdwl5hB3P94 isNfSH5gxRJRf9AaIb+Q+l/MaH0wnE13gABioSCisEUSO1rkcGDByGqw5TRcdRS+nERqJJE76v4f R3HIBg18mNuQ6ydYJP1AynmsWBpATFDzkCMMJeIAAoiYnIVe/KHXR+xoEcAJxdjYHFhyGXpE4aqf CLXwiIkgYiOKlAj7g6V5/g+piIQVjxxIiZoFTQ9RxSBAALEQ2URHr59Y0XISJxLmgmJOJJqTQGRh K/Jw5SRSB2kJTTziKwZxTUAij2owE4godhx+YybQ58MoDgECiIXIXMWElKuQcxQHWgRxI2EutIjj xBFRuCKJmE4tsfNVjETOSOObEMTWpEd2y3+knMZKoK7Fl6Nw5i6AAGIhoa5CzlXIOQoWOTxINA9a hMEiix2tOMBV3BEaJiJmNpiByEAgNrIYsHRgkZvZzDjGKQkNdRE7GcoAEEAsJDQumNEaFJxIuQkU ObxImAcpEtGLQDY8xQIuDxLKRaQUccTUVbgW0DDimDzEFhFMpEQEMQAggFiIqKvQO7zIzXFYZIEi iA+JhuUuWM7iwFJHseApGkhpclNzyRkDmZFLzrIAfOs0sAKAAGIhsgXIhKVhwYFUDPIgRRR6ZCHX VWwEym8mKuYgakfcfyIihtDs8T8844IE7QEIIGIaGNg6wMg5C70ohNHcSJGFK6LIiSRS6x9aAWJG 5X+j0X+QhppIjjSAACKlzsJWDHJgaQnyoLUIOdDqKGYC0xWMVK5/GKiYqwj1t9BH4ZFHKn6hRRpy biNYBIIAQACxEFg/wYhjJJ0VLcI4sfS1sBV/yA0IRgKDqowDnHOIHdjFN12CPLeFPNSELYfhWmMI BwABREydhatFyIoll3GgDTXBGhWsBDqCgy2CiMlRf9FG3XFNPv5AizDkHPYXS4ThBAABRMxwEzmD t7g6usRMUQx0BBGKqL84Igo5gr4hTUASijB89RYKAAggYhoYhCKNBc80PK7GBDktOnpHEq6iD320 HX2G+BsUf0ViwyIPlvN+46m3cEYYQAARO5/FSGCahJmMib/BFkm4xgH/46ifkHPUd6SI+ooFfyOQ s7Atr8aIMIAAImcNBjGrZxkZiFufN9hzE7YchT7ZiBxJX5BoGP6GVhziy1l4+1kAAcRChdSHq9jE VdQxDqKI+k9goPY/A/5ZYfSIAuHPSGzknPUdqTX4G0fjAm+EAQQQCxkRRMxwyX+GwQ+I2YSAL6J+ IEUGLJKQMXrOQs9Vf4itq2AAIIBYiBzbYmDAvrUFFybaAYMkkrDNU2FbN4G8gukbloj6hBZZuHLV HzxNdpzhBRBALER67h+O1PaHAfduiX94ch7jAEYQviIPW4vvN5bmOayFhx5Rn5Ai7Ata4+Innogi KlEDBBALCaPFhJYQ/8ESef/wDKf8p0OkEbMf+B+RIxLoEfUVKVI+oeUsWEQhF38U5SoQAAggFgKB 95/IQcrfOAYrkR3FRKecRSgXMaAlIEIrbZGLvu9IOeorlnoKvXHxjYgWINFVBUAAsRA5F/MPRxn+ C8egJbrDYAsZYYtCkVfuMNI4gggNwP5jwL4j5BdaY+IbWj8KvfX3Ga0FiN6owFcEEtUoAwggYhoY uMpxbIOW6BEGW8j4F6kPBstlDBRGGKEjEIitl4hdt/4NLVd9QcPozXR8TXWyWs8AAYSrzmLE4lF8 ZTnyACZypOEawMU2VY6vePxPYp1EKCcRuxPkO5YhpK9okfMFSyRRrZ5CBgABxIIjovDN2eDb4gLD yAO62CKLgQF1ZwUjCQ7/T2RRR0ok/UYK3B9YBmXxDSN9RRu0/Ymj6COrnkIGAAFEbD8L2wAm+lTA d7QpEvQ5LGzjgkxUGrv7T2Rxh229+S88/sE2MIttgBY5kpAj6i81ij8YAAggfA0MRhzFILYKGOYp 5MjCNTOMXsQSWo1KqC7CdeTBXxyNB0KThNgiCj1yvhEx9UGoP0VyzgIIIBYiIwpbaxA5omCTjV+x zGXh2qLJwoC5Bo+RjFYdqVtJsW0n/YElsr7hoJEjCb1h9QfPpCLFw3EAAcRCRLGDqxhkRfLoNwbM HSDIuQo9omAeYMYzx/WfyNEGUiOJmIjChbFF0m8GwmsrqDJuChBALETWD9hy1i+kziIrWkSxEMhV MPOQ9zExMRC3qQ1ffYSruMOWm7BFFD76J44uCr7c9I/ATAVJACCACNVZuJrvzAyILS7YNrihNyoY cIwWsODIffhmaknJSeh7otC7GD9wRNgPNDU/sXT8cQ2v/ccxxEbxgDZAABFTDOLLXT8ZsG/0Rp4Z ZsDTUIFFMhMD4aMH/uEZSP6NpfFDTET9xBM5+Dr6hMZAaTJdBBBAhIpB9ICDbfb6w4B7ah894JED HDn1sxHRCPlPQb30C0fR9xNLpPxAi9RfZETSPwb8B0RSDAACiNgpEgYsgY7rxBj0lh1yQCN3QNmx dJrRt2kScwYFtrrpF5bAxxVpxEQQrkjCN3dH9Xk8gAAiphhEr3OQzx/6zYB/8wB60QcLDA4skcXM gP1YHkKHheDKVT8JRBy+FbOEIuk/noFYmk22AgQQqdP6DEgtHEJ7jNDX2SHXIdg6zkwMmKew4Bom +oMjR+GaCcA3O4BteucPA3GbCWiem5ABQAARWwyiF00MDKgnezESyBXIQ1SwZdVsROQsfJGFL2f9 xkP/JiIHDapIggGAACIlZzFiaR3CIuo3gc40+vAUO4EGBvoKWPRhI2yTnr9wRCCuyMEVQbia4HQt 8rABgAAiZSkatvoLPYcxYAlo5OIKedc6riEpYmapsTUw8NF/0CIbW+QQk4vonpuQAUAAUbJuELlI JDRSD4ssdmiEoUcUtg40A4HpDUInZ2KLHFIjaFBEEgwABBALGRHFiCPCsC3rwrbmDldEEYosfCur cEUMvsjBVdQxDLZIggGAACI3ZzESkcOw9a/Qz7dgwlEE4hrBwLX1k5LIITTiMGjWPQIEELmHQ+KK MEKbzQjtyMcVWbjmqnDx/xMZQYM2F2EDAAHESCX9+E7zxHWwMDknav4nMlIIRQ7V7wmhBwAIIEYq m4FrexAjA+EjE4iZy/qPJQcTu/aelBt5BiUACCBGGpiFbRMerm2vDAzETekTurCFnItahkQEIQOA AGKkoXnEXvaCyy3UvgppSEYQMgAIIEYam0nMtUoMDMSvFyTnbqohHUHIACCAGOloNqWbvP9TIDYs AEAAMQ4Se0hdiTsiIgcdAAQQ4xCzd8REDDYAEECjaAgBgAAaRUMIAAQYAG+dSfGxQ5nhAAAAAElF TkSuQmCC"/>
+ </switch>
+ <g>
+ <path clip-rule="evenodd" d="M208.058,85.996c-11.182-3.606-22.36-4.544-34.408-2.235 c-12.407,2.164-33.327,7.934-37.438,15.365c-3.967,7.285,4.76,25.103,14.211,28.133c9.306,2.596,31.451-5.988,41.694-11.543 c10.243-5.771,16.375-12.623,19.26-21.64C210.296,91.406,209.211,88.737,208.058,85.996z" fill-rule="evenodd" i:knockout="Off"/>
+ <path d="M208.058,85.996 c-11.182-3.606-22.36-4.544-34.408-2.235c-12.407,2.164-33.327,7.934-37.438,15.365c-3.967,7.285,4.76,25.103,14.211,28.133 c9.306,2.596,31.451-5.988,41.694-11.543c10.243-5.771,16.375-12.623,19.26-21.64 C210.296,91.406,209.211,88.737,208.058,85.996z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="151.8062" cy="93.167" fx="151.8062" fy="93.167" gradientUnits="userSpaceOnUse" id="XMLID_19_" r="53.4727">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1089" style="stop-color:#FFF6F5"/>
+ <stop offset="0.2705" style="stop-color:#FF9583"/>
+ <stop offset="0.3819" style="stop-color:#FF573B"/>
+ <stop offset="0.4333" style="stop-color:#FF3F1F"/>
+ <stop offset="0.7111" style="stop-color:#FF2D00"/>
+ <stop offset="0.7619" style="stop-color:#F62A00"/>
+ <stop offset="0.846" style="stop-color:#DC2300"/>
+ <stop offset="0.9526" style="stop-color:#B41700"/>
+ <stop offset="1" style="stop-color:#9F1100"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF3F1F"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF3F1F"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF2D00"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF2D00"/>
+ <a:midPointStop offset="1" style="stop-color:#9F1100"/>
+ </radialGradient>
+ <path d="M203.587,87.871c-9.811-3.39-19.911-3.967-30.586-2.019 c-11.037,1.948-29.649,7.069-33.255,13.706c-3.317,6.564,4.04,22.217,12.624,24.959c8.296,2.38,27.773-5.482,37.006-10.243 c9.016-5.049,14.644-11.181,17.168-19.188C205.607,92.705,204.598,90.324,203.587,87.871z" fill="url(#XMLID_19_)" i:knockout="Off"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_21_" opacity="0.8" transform="matrix(1 0 0 1 155 88)">
+ <foreignObject height="89" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="89" x="0" y="0">
+ <imageReplacement align="center" height="89" opacity="0.8" placementMethod="ratio" refHeight="89" refWidth="89" valign="middle" width="89" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_20_"/>
+ </foreignObject>
+ <image height="89" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_20_" opacity="0.8" width="89" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAABZCAYAAABVC4ivAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAzPSURBVHjaYmAYBTQHAAE0iugAAAKIcdTf GOA/tS0DCCDG0YREEFAc6AABxDhCApVYsf8k8okCAAHEOEwDlpFENnog/idSjCgAEECMwzhgGdHE cdHogfyfCDZJAQ0QQIxDPHDxBSw2jCsC0AOTGEx0qgYIIJYhHrj4ApYJB5tQIP/DQiOz0VM+I6GA BgggxiEeuLgClgkLmwlLgDNgScH/kPBfND62ACdYfAAEEMsQDlwmHAELw8w42OipGhY46IELw3+Q 2AxIapmgNMGUDBBALEM8cNEDkRkHZkJjM2FJybAA/oMUuL+hev5AMSNSYCMHNAO+wAYIIJZBGsCE AhdXoLIg0SxYxJixpGYGtBQMC1wQ/oVEYyta/6GV61gDGiCAWAZp6sVW1qIHLnqAgjArDjYLWsAz oRUXyEUELFBB+CcU40r9RLWfAQKIZZCmXlxFAjOWQGNFw2xYxGDqkFM9eiDDigRY4P7AEikMONrL /5D4GKkZIIBYBlEAY0u52AIXW4Cy4cAwOeSUjS2QkYsJWACzIUUMI4EmHiOWSIADgABiGUTFAxOW ogFb4CIHIjsSzY5FjA1LimZBsgO5PIYVE6AA/o4ngNGbd0yE2ssAAcQyCFMvtmIBPWCRMQcajR7g 6KkZW/b/i5aK2ZEiA1u5/RdLGxq5qEAJcIAAYhkEAYxeNKAHLiuWQEXGnEhs5MBGLzZYcZSxsMCD lcXfsQQwcnGC3LRjwlKJYqRogABiGSTFA3LqRS8W2LEEKidS4HJiCWh2LMUFttYFcqX3G6ksZkYL YOQWxy+oeb+RKku8HROAAGKhc+plwFH2ope76CkXFpBcONjYAhm94mNB65AwoAXyL6TiBFsxgo5x tbkxAEAAsQxg+Yte9iJnbw4sgYsNowcwelHBiqeNjC2QWdBSMKwiRDYXW4Qx4hh6BadqgABiGaDy F1vxgCvlwjA3FOMLZOTKjhVLs40ZS3PrH1IZy4hWRqNHHCtae5sJx0ggSpEBEEAsAxTAyMUDernL iSVgufEEMnoRwYalDEYOYCa0HtpfpABDLiJwlevoAUywuAAIIBY6VnDY2r3YUi83UgDzoNEwceSy mFAlx4xn9A0WqOiVHCuONjYzHjPRExc8NQMEEAsNKzhczTNWHGUvcspFDlweLKkYvaJDr+BYCAxv Io8hI7cyWHDkAGyBy8RAeM4QDAACiIUOLQhmLAEMS33YigZYwPJiScVcWMpgbGUloQBmQBt4/4dn ZI8JC8Y1tYV17AIggFjoEMC4yl/kAIYFJC+OQMZWBuMqf/EFBgOOUTQmHBMBjESYQxAABBALjQIY 5ln05hlyAHMjBTAPUgDz4igmOHHU9CxEpl5sw5SkTriSNW0HEEAsNApgGEZvniE3zdBTLy8SxlVE sBNRPODLxsiD66QE1n8s84FEA4AAolZKxtWCQK7gkFsP+AKXB0cRwYanrUpM6mUgNE3EQNzSAAYc fJwD9wABxEJB4BITwLjKX/TARU/BsFTMgaO3xYJU5jPiaUrhKibwBeo/LMOa2Pj4AhoFAAQQCwWp F1cRgSuAuXEELh+OFIzeRGPF053FVzwwkJFq/zEQXhqAL6BRAhwggFgoKIex9eTQWxBcOAKYj8gA ZsMyXsBEREeAgYSyFj1g/xLAuAIaJwAIIBYKAhhXJwM9gJGLBz40mhctgJF7cfgCmNzUy4Aj9eIK YNhQJvr6C/RAxltcAAQQC5llMSOWtjArWiWHHMDIgcuHxEcug9HHIVgJlL+UpF70wEYPZORlAX/Q xo5xBTTOVA0QQCxklMP4enIcSKmYGymA0QOXD0cAc6B1MPA1z8hJvQw4JkSxBfAfBtS1F3/QAhq9 2MBpH0AAsVBQDuMrJrCVwXxoxQShFExO84ycYgJb6kUO3N9oqRq9fP5PqGwGCCAWCsphZjxdZVyV HHpTDVsng1ALgpwAxlVEoJe96NNMsFmQX2iBjq9sxgAAAcRCYjmMb8CHE087mA9Hbw5XAGMb6aI0 gPGt3ERfmvUTTwDDIgRXAGMENkAAsZBYDjMhjUlgC2ButKICvZIjJoCpVcER01TDF7g/sAT2byIq P4yABgggFjJaEyxEdjh4cHSVSS0iGCgsg9ErO2zl8C+0wEXH6Cn6D44yGSsACCAWEmY4CBUT3ARG 0/AFMAuVKzh8PTpsqRg9gL9D8Q+0FI0tJRNsKwMEEBMJZTETkU02fAHMOYABjKslgRzAoID9hhTI 39FS8m88TTicAQ0QQEwklMW4Bn+48EwdcaN1ldnwVHLUCmBsAY1eDv9BC+DvaPgbgUD+Q2zLAgQA AoiJgp4dO475OW4cqZeUMpiRCoHLgKPD8QetDEYO2K9QmlAgw8z6T0yZDBBAxBQXTEQGMhfajDK5 lRwjlVIvemviD5aKDlsAIwc0vvL4P5beHtaABgggJiJmnPFVergWonAyYF8YwkLlTgax5TC2AEYu g78hBTB6av5BRFGBt7gACCAmKvTysC0C5CAiBTPRKQWjb1NAD2BYwH5BC2RCRQVRqRgEAAKI1NYF vlWX6OuFca3kYaRjEYEcwL9xpGDkAP6CJxX/RisqiErFIAAQQExEjFmgp2RmtIDGttod15pgkhaF kBjAuMYl8KXgL2gYOSWjp2JsvTyCqRgEAAKICY9n8bUwsG2IwbZtgNiZZGoE8D88nQ3kQP6GI5Dx FRV/SO3lIQOAAGIiovmGbbcnvm1exKzioWZng4FAhwNbEfEFB/5GRAeE5A3sAAHERMasCL7ttfj2 MVNrHze2GWdCnY0feIoIbKkYX+fjHwOJay8AAoiJhMAlVg21emyUTB2hdzbQWxEg/BmKvxAoJoge bcMFAAKIhUiP/SfgUVLOh6BmJYerFfELRwB/RsPIqZiYcQqyTm8BCCAmAmOv+MZk/2Lx5D8C0+Zk pQQCAfyPQBn8FS3lIgcwtlT8i8BoG8kJBiCAmIhMxfiOKfiNVg7+IWFml5iAJpSC/xAoIr7gCWR8 qZis6X9sACCAWNA8w0jBpOMvLFM1rAzY92qgNx3/4yjHCTXT/hIZwJ/wpGLkACYmBZOckgECiBlP BYZtITczA/YN4/j2y5G6Xo2UGebfWIYs0YuIT0j0JzyBTNVyGBkABBAziW1kFgbMXUusBNrJhBZS Ezr5BFuR9QdLGfwDrQ38GS1w0QP4G5ZUTPLUEjEAIICYiRyFw5aisZ0jwUJEABPb/kUP4P84WhE/ 8KRgfAGMq+v8jxrlMDIACCBmIkbh0A9OwnbkDLoYcgAzMOBf8f6fQMDim13+gaWjgRzAH9HKY1wB TKjbTFFKBgggZiI6FrhOrMIVuMSOUWA72O4fgU4Gsc00XAGMa/CH6uUwMgAIIGYi5vjQ5/twpXAm IosGQp0WfE1FbKNphMpgGCbUHsbXzKQIAAQQM5HdZELnsZGaavEtusa2dPUXCQGMHNBfsATwTwbc S66oGrgwABBAzATGkxkIBDADkRUaMQGLflwY+to09PKXUCWHbVwC23zdP1qUw8gAIIBY8AQMI45h RFyH32HrSPxlwL2ojwPP3B8DltYErjHhzzh6dF8JBPAfegQwCAAEEKEBIuQKCZZq/zIQ3h+Hr4eI 3DtD3nCD3DP8jxbIv/AM+nxBC2j07jKhAP5HywAGAYAAYiEQwIxYAg5bx4WBwOA5esWFa6kA+rE1 /wj06nDNbiD35H6QMDZM9QAGAYAAIiYlM+IJZEK9M3yL+nAFMhNaSkY/qw29XP7KgHsq/+dABzAI AAQQsdsZ0FflMDCgHhCKa7YYV+uAk8xARl+Q8g2t3P3GgLpI8DdaK4LuAQwCAAFE7KA9I46AxhfA hJpg7CQEMraFgejr1rCtwCRrgSC1AUAAkZKScQX0fyInNH/hKCqQt5Fha12QsoYYW/FA1WFLcgBA AJGyxYzYFP2PiNQMS8nII3mEmnDYVsMT2nJAl3YwIQAQQKTu48MV0Lj2JuNKzYTOa0OOsD8MuDfO IB+9+wep7P3DgH/nKN0CGAQAAoicvdXYmnbENuNYGBDnr2Ebg8Z20hW2gP6NhY0cuH8pmO6iOgAI IHJPCSAmRWMb7GGGBgqug6PR5xyxjcT9xTGPiF72/mOg4NoKagKAAGKkohnEHi6Nb/yZEUd3Hjl1 YgtUbIFL8kofWgGAAGKksjmknkFPzPgHtqMRcN2YMCiKB3QAEECMNDKL2NsUCA2V/sdTqf5nIPHc iYECAAHESGMzSR2HZiRxHJqkY2oGCgAEECOdzGYkYjKAUCDj6vgM2sCFAYAAYqSzHYx4ynF8gcxA RIAOusCFAYAAYhxgu/CJ/ScwUDXoAxcGAAKIcYjaO+gDFhkABBDjEHDLkApQbAAggEYRHQBAAI0i OgCAAAMAA0S5Uc9I/jUAAAAASUVORK5CYII="/>
+ </switch>
+ <g>
+ <path clip-rule="evenodd" d="M214.479,95.23c-10.461,1.081-19.983,4.904-28.566,11.469 c-8.8,6.781-23.372,19.693-23.445,27.845c-0.143,7.863,14.429,19.693,23.156,18.756c8.802-1.516,22.292-17.385,28.496-26.186 c5.913-8.8,7.787-17.529,6.417-26.185C218.519,99.053,216.498,97.177,214.479,95.23z" fill-rule="evenodd" i:knockout="Off"/>
+ <path d="M214.479,95.23 c-10.461,1.081-19.983,4.904-28.566,11.469c-8.8,6.781-23.372,19.693-23.445,27.845 c-0.143,7.863,14.429,19.693,23.156,18.756c8.802-1.516,22.292-17.385,28.496-26.186c5.913-8.8,7.787-17.529,6.417-26.185 C218.519,99.053,216.498,97.177,214.479,95.23z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="175.3613" cy="109.3066" fx="175.3613" fy="109.3066" gradientUnits="userSpaceOnUse" id="XMLID_22_" r="49.5804">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1089" style="stop-color:#FFF5F5"/>
+ <stop offset="0.2705" style="stop-color:#FF8783"/>
+ <stop offset="0.3819" style="stop-color:#FF423B"/>
+ <stop offset="0.4333" style="stop-color:#FF271F"/>
+ <stop offset="0.5658" style="stop-color:#CF1C10"/>
+ <stop offset="0.7111" style="stop-color:#9F1100"/>
+ <stop offset="0.8262" style="stop-color:#961000"/>
+ <stop offset="1" style="stop-color:#7F0D00"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF271F"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF271F"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#9F1100"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#9F1100"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0D00"/>
+ </radialGradient>
+ <path d="M211.665,98.62c-9.231,1.082-17.674,4.111-25.319,10.17 c-7.936,5.699-20.631,17.746-20.847,24.743c0,6.998,12.695,17.457,20.558,16.664c7.646-1.298,19.98-15.437,25.319-23.228 c5.192-7.935,6.998-15.437,5.698-23.299C215.274,102.011,213.47,100.351,211.665,98.62z" fill="url(#XMLID_22_)" i:knockout="Off"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_24_" opacity="0.8" transform="matrix(1 0 0 1 193 37)">
+ <foreignObject height="92" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="86" x="0" y="0">
+ <imageReplacement align="center" height="92" opacity="0.8" placementMethod="ratio" refHeight="92" refWidth="86" valign="middle" width="86" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_23_"/>
+ </foreignObject>
+ <image height="92" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_23_" opacity="0.8" width="86" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAFYAAABcCAYAAAD0zUKRAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAzlSURBVHjaYmAYBTQBAAE0imgEAAKIcZi6 7f9AOx4ggBiHUEAyUhiQdA1sgABiHGSByUgF9/0nQozmgQwQQIyDIECxsRkJqCM24P5jkadLIAME EOMgCFBGLGxscvjciy0gcbGJDXCKAEAAMQ6CAMWFmXAENqGAJYQZcPCpGsAAAcQ4wAHKhIdmwhLY 2NyMLcD+4aDR2f8JpGiyAUAAsdAhUAkFKAwzo/GZcAQwspn4AhQf/o/G/k9kpUc0AAggRjoEKrYs jhyQzDgwshrkyEAP2P9oAYuM/0IxNja2wP5PoJggGgAEEAuNsz4jlpSJHJgsSDQLGh89kJmwlLW4 AvUvGv6Dg0YPaJg5yOYzkhO4AAHEQuOsjy9AQZgViWZF42MLXEYcZSx6oCIHIAz/xsH+CzUbFtAM WAKY5JQLEEAsNM76yNmZBS1AQZgNiWZD4rNiCVwmtOIABmApDZbqkAP1Nxb8C4vYHyQ3/0UKVFgA M5IauAABxEKjQGXCUn6yogUoOxLNjsRHD2AWPMUBcjHwF0cq/YVE/0Sjf0HN/g01+zdS4MIijQkp oIkuFgACiIXGgYothcICkQOJ5kDis6MFLguW4gA9xf5DS63oKRQWkD+gbGQaZjbM/b+xmM9IapkL EEAsNAhUbKkUPUA5kWhOJD564LIiRQ4pKRY5YH8iYVBAfoea/x2twmTEEXHIAUx0cQAQQCw0ClTk VIoeoCDMhURz4QhcfCmW2ID9hZRSYRhk/jc8kcaAowPCSEplBhBALDQMVDa0rM6FhLnRaC4iA5YR T8D+QytjkYuBn9AU+h1qPnpRw4TUhWbAM+7wD4mNt0gACCBKUiyhQOVASqXIAcqDRqOnWlgKx1d5 4WpuoVdeyAHLCU2pyJFGqBmH3gVmJLaFABBALGSmVgYcFRV6oKIHKDrmRgpcThyplYXMduwftDL2 B1r5zYKlQsTVg/uPFrgEUy1AALFQsQjAFqjoAcoLxegBS0pqxZeysJW1HNCAxVa8MOEpr7F1fZnQ ylucqRYggFjIDFRsKZUVqUxFDlReHJgHS/mKHqgsWAZjcA3CYOsowAIXW9uYCUv3+B+OrvBfPIM2 WFMtQACxULFcZUcrU5EDlQ+KkQMWXxHAiqUlwIRn2JABz3jBbxyRxYgUKNjK5z9oAYscwATLWoAA YqFiuYortYIClB8tYJHLVkLlKhMR47HYBmRgAcGCpwJEL0LwdX//QM34hxS4OFMtQACxkJlamXCk Vi6k1MqDJbXyobUGOJCaP+gpihnPcCExMwjMSIHLhCdQ/6I1z34htSbY0QL2D5I5eMtagABioWIr gBNH2YoeqDxIRQByZYWtBUBMoOIKXFwD5vgC9SdaRwLWokBuS/8lYqqIASCAWEhMrYxoI1W4ylYe tEDlxRKo6JUVM5HZH1dRgG3wm1CHAj1Qv0Pd9p3I3h/O5hZAALGQ2BJAHwdgx9K8wtdmRe4IsCG1 JylJqYw4xPBNt8BSKzs0UDnQBobYsbQiWNDc9xctcFECGSCAiC0KkLMTC9oYKjuWYgBbgCKnVDa0 3g8znvktUqaRsPXpmdDkWaCBworFH7jGhFlwzMHhBAABxELCFAsxTSz0wEUOVFwjV0xYxgEYSQhM bO5GD2AmJBrbQBH6LAau1gmuiMcoEgACiIXEshVXE4sTrSjgQsMcOMpUagYqtqIAW+XLiBZYzETM teFKqTjdCBBATCSkVlwBy4k2HMiFo0eFrfFPi0Al5Gls0/C4puRxrW8gWBQABBATESmWCU8xgJ5i kQMYfeAaV4+KFoFKaIwDmzhV7QYIICYyxwbYsMwKcGAZsGbD001lokOg4mrnojfLSF2W9J/QsCFA ADERWcZiG3BhwzJnhZ5K2QnMttIjUP8T0f39x4B7IQf64AtRswgAAcREwuQgvsBlxxKgxMy00jJQ /2MZWsQ2vIhr8AXXyBa2QMYIYIAAYiKi0GdEqkmRZ17ZsLQBCQUovbM/rtEvbIGKba3BbzzDhngB QACRUhQw4Zh9ZSOwHgDfShZ6Bup/HEOK6IMvyBh51QyuMVmsa7wAAoiYyosJx1oBXI1qYspUegUo OYH6kwF1kQd6sUBU5QUQQKRWXswM2NdfsRKZUumdWrFVUNimx5HnxZDXIfzGkWIJFgkAAcRExGAG rtYBNoyr10KPVEpMpfUXx1AhtkD9hZRy/6AFLsFmF0AAMREITAYGwksxmYkIUHoWA9janLjWHKAv 5viBFsC/CJSxOFsFAAHERMZYLPqiYSYG4ldi06sYYMCRUv9iCdSfOAIWPVD/ktIqAAggYspYBgb8 +wSIDVBGOhYDuJpYuIoA2JoubKkVFrj/GIhbXg8GAAHERIRjcW0XQk/FjAOY9Yltt/7GMQ3znYIU izVwAQKIiQQHEwpgxkGQ9dFnCZCLgt84Uiu+QP2NI1AJFgcAAcREhgcoHSelZ6WFrXf1E0e5+gNH awBbM4vgWAFAADGR6fDBBrClVuR26x8s7VZcLQFc7VeiUysIAAQQEwWOxze0RowZ9Eqtf3GUq9jK V3xlK9GpFQQAAoiJRMfiw1TfK0Wl1IqvbP2OJcX+xtN2JdovAAHERGYPBltXcSAClZjU+odAisWX WnE1rwj6CSCASE2xhLZU4htl/z9AqRVXm/U7lrbrbyzFAFn1CkAAMREITFyBSwzGV9j/H4DUiitQ 8bUG/hPbIUAHAAHERMCz/4mYxviLZ+SHlq0IfKn1L5Fl63cSigGSEgVAADGR4AlCgfqXwGAwLQKZ ULv1F5YA/Y6jC4uvJUCy2wECiIkERxPaCEwo5VKzGKAkteIaF/iFZVyAbLcDBBATkVMauNb4Y9tN Ta9igdjUii1QkcvXX9ROrSAAEEBMJI4Q4dqy/gdP4FK7AiO2JfCLiEBFTrF/qJVaQQAggEhpbuHa 8kPstDE1Uu5/EloC2MpWfKmV5KFBfAAggJiIdDiuHdbYtq0TClxyUy2+vQaktltxpda/1EitIAAQ QMS0CnAdB4IvcKldZhEqnv7g6WHRPbWCAEAAkdIqwLWlEn0KmVDg/iOxe4iu7h8D8ZOD3wcitYIA QACxEFnG4mrOEJqXh2HYKmrkHSdEbfYlEMl/CVRYuMrXn7RMrSAAEEAseDzCyED+9DFMHNsOa/SV 1tgWCBMaBMIVqOjZ/xsUf8fSy6JZagUBgABiIRCojAyEt63/wjEqj221IbZtloT2TJEaqN9wYPSA /UPEKBbZACCAWEgo39ADF1fWQ9/Og77jBDmwmBkwt6sT2wnA1qRCDsiveAL1NzV7WdgAQAAxE5ib QvYw+rQ3+tp95A0R+E4fYiRyIP0fgWbeL7RABQXkFyD+DMWfoPgzVBwW0OiplqQ1WcQCgABiJmLi D99aWVwHk6Gf9obtIDIGIoYisZ2hhS3rwwL1C1KgfkbCX9FSLizVos/AUm08AyCAiNmZiK98+8mA fa8UermK3gWFmYNviSeuY0nQx1e/YkmtX5BS6XcsAYprrQDVxjIAAoiUMpbQ/lNch5Ahm4WsF9sp F4wEIvQ3lrL1K46U+hVH9kcfyKbJTAdAALEQCFT0Tb2MaJ7EtvKQmEDFtosGfX8qocj8jidgYSn2 G57U+o9WqRUEAAKI2KIAPQXBtpfDUg+2FYeMOAIV2zEi6MuUcLUEiClf0ctV9NRK8nIhcgBAABFT FOBKtX+wVGTo7VRsqY2DgfD5LOhNPGxjrN/RmlZf0PBXIlLrPwYaTR8BBBCxB0H8JyJwsW1hR2/3 /mBAnFNAbMDiWn75A0u79Sta+5WY1EqTaXqAACK2KMB10g+uxXDYykb0I/BYcQQsIwPucwXQWwQ/ 0DoByAH6nYhJQlrMGoMBQACRctgO8ugSA1KqJeaAMeTGPPKORRYSUyyh8VZSl2LSbDEJQACRUhQw YikSiGn3IqcybMff4RqgwdeGRV+R/RPH5CAxe7VoErgAAURqimUkMmCxBQY7UnsXW2olFLB/kVLf LxzDlb8ZsG/IoEu5igwAAoicsw3/o9X6DET0lmCex7YXjAlPwBI6dBfbEU74Zi/+0bJcRQYAAcRC RqAy4gnc/ziaSbAAwNWRwHZgGTl7X7HNFP9nIGO1IKUAIIDITbHYAhfbjC4z0pgAMadXMOCpCAkt FEFflYNv3RXNAxcggKix7B3fzhr0I0LQ2YwM+DfY4VvlSLc7DcgBAAHESEX9uHbUMGJJmehHhjDg CVgGBtzXnOC7hYPq15yQAgACiJHK5hDaVUPouBJizi0kZxU53fdNAAQQI43MIvVKKWJvPmJgILz3 YUADFAYAAoiRxmYSc/EZsQeV4Qq0QRWgMAAQQIx0NJuYTXWMBALnP4n8AQMAAcQ4COwhJcWSKjdg ACCAGIegvYMyINEBQACNIhoBgAAaRTQCAAEGAG7aFgZm0VfAAAAAAElFTkSuQmCC"/>
+ </switch>
+ <g>
+ <path clip-rule="evenodd" d="M255.307,62.984l-16.66,34.409 c-3.969,4.544-8.227,7.574-13.06,8.296c-5.194,0.793-11.973-0.144-16.155-3.391c-4.113-3.679-6.783-10.099-7.723-16.735 c-1.08-6.709-1.729-15.509,1.659-22.218c3.319-6.709,11.541-14.933,18.539-17.457c6.783-2.814,16.739-1.227,22.363,1.659 C249.969,50.361,253.287,55.411,255.307,62.984z" fill-rule="evenodd" i:knockout="Off"/>
+ <path d="M255.307,62.984 l-16.66,34.409c-3.969,4.544-8.227,7.574-13.06,8.296c-5.194,0.793-11.973-0.144-16.155-3.391 c-4.113-3.679-6.783-10.099-7.723-16.735c-1.08-6.709-1.729-15.509,1.659-22.218c3.319-6.709,11.541-14.933,18.539-17.457 c6.783-2.814,16.739-1.227,22.363,1.659C249.969,50.361,253.287,55.411,255.307,62.984z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="212.8486" cy="58.5747" fx="212.8486" fy="58.5747" gradientUnits="userSpaceOnUse" id="XMLID_25_" r="50.8306">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFDED6"/>
+ <stop offset="0.2885" style="stop-color:#FF8564"/>
+ <stop offset="0.3876" style="stop-color:#FF4C1C"/>
+ <stop offset="0.4333" style="stop-color:#FF3600"/>
+ <stop offset="0.7111" style="stop-color:#DF3000"/>
+ <stop offset="0.7798" style="stop-color:#D62B00"/>
+ <stop offset="0.8932" style="stop-color:#BD1F00"/>
+ <stop offset="1" style="stop-color:#9F1100"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF3600"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF3600"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#DF3000"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#DF3000"/>
+ <a:midPointStop offset="1" style="stop-color:#9F1100"/>
+ </radialGradient>
+ <path d="M252.928,66.23l-15.221,29.721c-2.814,4.111-6.348,6.708-10.605,7.502 c-4.544,0.865-11.252-0.073-15.076-2.525c-4.038-2.886-6.707-7.357-7.718-13.417c-1.084-6.204-1.729-15.437,1.659-22.146 c3.535-6.926,11.757-14.788,18.539-17.457c6.418-2.453,14.646-0.505,19.62,2.741C248.743,53.607,251.772,58.801,252.928,66.23z " fill="url(#XMLID_25_)" i:knockout="Off"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_27_" opacity="0.8" transform="matrix(1 0 0 1 223 40)">
+ <foreignObject height="83" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="116" x="0" y="0">
+ <imageReplacement align="center" height="83" opacity="0.8" placementMethod="ratio" refHeight="83" refWidth="116" valign="middle" width="116" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_26_"/>
+ </foreignObject>
+ <image height="83" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_26_" opacity="0.8" width="116" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAABTCAYAAABOMyOpAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAA2oSURBVHjaYmAYBcMKAATQKBpmACCAGEf9 Qxb4P1gDACCAGEdA5DHSKfIGRSQDBBDjMIhARjLVkRtB/8lURxcAEECMQywCGSlgEzL/P5GRSyqb rpELEECMgzwSsUUOuTSxfsYVGZTSdIlcgABiHOQRiUyjs4kVIya34wpo5EhBZxMrRtfIBQggxkEU kbgikRBmIkINoUglJjJx4X9EqCEUuVSLWIAAYhxkEUlMpDEh8dHZ+CKYgUDk4ioucUUgMo2LjU0f rtxLlYgFCCDGAY5IbJGJLYLwYWYsYrgilpQ6FF9EIuO/WMSwYXy5mWoRCxBAjIMkIvFFHjMWmhkL H1vkMpIYqYRyJnok/sXCxiVHTOTiq2+JAgABxDiARSu2nIgt0mCYhQg2vhxLboT+IxCZf7Cw/+CQ x5Wjicm1RAGAAGKhQ2TiKlax5UTkCGJBY7MiibHgUIeee5nwFL34ilx8OfMvWmT9QWP/RmJjw+hm MKLlWmR3MJIasQABxEKHyGTEEZnYciAyZkWiWbHwWXBgZhKKXkKRiStCcUXWbxz4DxobV+Qy4IlY oiIVIIBY6FBXMhLIjSxYIg6E2XDQrFgimQVHTmUioXH0n0AO/YsnQtEj8BcUI7OR+b/RcjPMXX+R IhO96CUqUgECiIXGRSy2iIQFOnKOQ440GGZH47PhiFzk3IxsPqF6lJgiF1v9iVzEoue+X1jwTyT6 J5ocM1QfE1LEIhfDJOdUgABioXERi9xIwZYb0SOPHQdGVoctt7IQiFCYWxiILHIZcHRT/uKoM7FF 6E80/AMLzQJloye6v0hu+kdKdwYggFhoFJnY6kn04hQ5wjiw0Bw4IpUNSw5FL3KRExJ6n5SUVi5y pP5Fi1RsRS56hCJHHgh/h/rlO9TtP9CqB1yJDXlQAm8uBQggFhpHJrYcyY4WaZw42MiRi14E48qd zCQUt4wEZlTwFbt/ceRSbDkUOTJBfvmG5AcWLJHJiCOhMRJT9AIEEAuNIpMFLVeiRyQnAcyBJZdS KzLJGSkiJ1KRI/Q7mn+Q/YHeeCNUDeAtegECiBo5FL2+RM6ZuCKSCwvGFqHIRS4rWsqmJDLJGcsl N1J/QP30HZo72dH8gSsysXWhGAkVvQABxEKFiMRWzCI3eNAjkhuK0dlcSJHJiSdn4upzMuMYgWIg orjFV+wy4BiU/4unbwrrmiDnUg4skYktQrElIPRIxZlLAQKIhYKilgFHAwi5iOXAEpE8aDS2COXA EpnE5Ep8DSByilxCDSVcuRWWU9mhkYstYTJjiUh8g/5MWIYGMXIpQACxUKneZEZr/MAikwspMnmg mBeJjR6hxEYmvlYsvjqT2LHr/yQM2P8nUAT/wlLCoNeb/3GYgz7g/w/Nbxi5FCCAWCgobrENGLBh iUzkiETG6BGKXm/iavgwETFOS+7yE1z9PUJ1638cw4OseBIkE1rO/IulK4Q+RMiEFKlYi1yAAGKh oN5kxFFvIhezyBHJhyNC0YtabKkZ21AeEwPuJSe4Io/cCCWlfmWG0izQyMA14IGs9w+eoUNWqDwz 0igSI1KkokQuQACxUKHeZMFRb3IjRSgfEoZFKCx3ciI1gnBFJr6Ja0L1IyOF7YT/eMRgNBOOiGXG 0y35hyUykVvG7FA2tpGvf7jqUIAAoiSHYuueIEcmN1ruRI5Q9NyJXGeyEDEeS05jh1BE/ydhzhg9 d6DTTEgNGWylCXIxixyR33G0hplxDEBguBkggFhI8Dh6ZGLLncgtWljE8aFhWJ3KhdY9QW79MVPY n6Q0VxJTFDPiiFzk7gW20R/0yPyJZSCFDUd4EJxgAAggFhIik4FAQ4gTLXfiagjxIBW1HARyJjHT XvRcF4UrVzNiyb3/8UTmH7QJB2zj1ax4wgSXnQwAAcRCQlHLhJY7WbHUnfi6KNgaQcipEd8cJrnd D3pG8H88xTMTUmOJGc8cML5WPa7EjVLsAgQQC4mT1UxoU2FsBPqc2CKTC089wURgZmQobN34T2Ci n5kETOpcLgNAALEQmTtJadlyo0UqN9pYLTuRkTlUIpKUxiS+cGVkwL9khqjwAAggFhJyJyOW4gK9 38mFNqzHRaCYZSGhmB0K4D+e2ZL/RPRpKW68AQQQE5kD8NhyJydaBHKhNX5IaQAN9cgktNjsH5Yh PUJLOwl1r8AAIICIbRQx4emqcBAxJTacIxPfuC8xqwXxrQQktBgbAwAEEAuZjSF8OZQTRxE7EiIT V478g2XAHhfGNoaLnmtxAoAAYiGhuEXvrqAvI8E2SY0vMhmHcGTiqgP/4YlMWET+YEBdloLMR14Z iByp+Ha4oQCAACLUbUGfVUHurrChRSoHA/YVB/iG84ZaZBKaVsO2QhB5rBY2vAdbvYCMvyNFKnpu heXU/4QmDgACiIVACwrfnCe2CMU1fMVCYAiLcYgXr/jqS/RBd1hkfgXiL0j4K5aI/Y2WS//hy50g ABBALCS2bpmx5FBsyy5xDV8NxT4mKcUrtqUov5CKWlju/ArFn6H4C5LYN7Sc+htH0YsVAAQQMUUu vhyKbXE0G55+JkmjHkOseEVffoK8pgi9qEXOnaAI/QSlkXMpcl2Kq2GEEbEAAcRCZGTiWtGHa6sC K4FG0GDPnZQUr8hF7E+0nPkNKSd+QcOfseTQ33hyKNZIBQggFgKBy8SAeyEYrsFlXJPTQyF3UlK8 YovIH1gaQcgR+hWtuP2KpB5bDkXfmYYBAAKIUB3KwIB9yozUmQKmQZ47qVG8/sIRkcg58xta5CGL f8MSmSQ3igACiNzBeWz7OpmJjEzGEVK8ondNsEUgepcFX7eFYHELAgABxEJiZDLhiVhqbEMYqsXr TywR+Z2ISMQXkb9xjBThHdMFCCBSFonh2u/JxEDa0sqBjlh6FK+4IhFXRP7EMuxHUlELAwABRGyR i61/SuwBUIMlZxKzeJpaxSu2CCUUkcjF6x88My94B+cBAoiY+VBiI3qwdkOwLZomdI4CKcXrdywR iNyf/IYnIokdjCf6ZBSAAGIhMhBwBQYDMQPGDANz1CiuiGRACyxsm3nRBwd+UVC8/kBquRKKSPTu CclnFwEEEAsRgULMOXe4jkvDt3OKkU6RiE7j2rrwl8bF6y8cxSuuiCRpYhsGAAKIhcTAQg8IXCdo oecAJgb8u6aodTgxKd0QYobsCPUpSSlefxNRvJKVK5EBQACxEJk7/zHgP6/nLwPus3dgyxeRByrQ I/I/lXIlsRt2/+IZSCeUK6lVvFK83AQbAAggUopcfK0/XIctsTCgbrBBb1T9ZyBu4fR/EiOT2LOG iMmV9Cpeyc6VyAAggFiIqDeJbcpjO2CJGS0ymRkQez9wbWv4T8Ucid7ogQXsbxzTW8iR+Q1PZFKr eGWgRq5EBgABxIJmECMR9SaupjzMY8gr4ZGLV1akyGQiEKmk5kYGLCmemEYPvlkRfHhQFK/YAEAA sZBR1OJqAcImuJFnW9B3WxGzdwU9YsmNSGIHCH4iRdA3AhE6qIpXbAAggIhpFOHLnciHKWGLTPQE gW2OlNDgPaFWKzFdEWyr7ZDdj62Y/U7GKA9di1dsACCAWPAUbegBhhwwyIHBhqOYxZa78a1iYCKi UfSfQI7EVcTiasX+wDGo/g3LaNCPwVa8YgMAAcSCJeBw7WVE3pzKilRUYTsRiwFLria0oZfQSVqE VqLj6o7gypk/sEQatkgctMUrNgAQQOQWuT8ZsE9mI0cmcv/uJwP+Xcm4JsGJ6RMTOimT0HFtP7BE 4ncG1LP6kM34M1iKV2wAIIAIjeX+x5FLsc2BMqBFJnJdi2tnMguWqTdsjSJiz34n9UBF9FyIXkcS W08OSPGKDQAEEK46FNepVn+ggf6LAfcJWH/ROuvop2gRk0vRwT8i6ktcRS22Vu1PtMj7gUX+N4mD 6HQvXrEBgAAiVOSiRxQj1IPo9R164wl9LSquxdeEFmBjawj9ZSD+lOlfWAY/fmLBv/DUkdgiclAU r9gAQADhK3LR+5AMaJHKwID9VA/0CEVfs0tJhGIrbv8QMST5C8+oFnok4ls1MKiKV2wAIICIGcvF 1uJlwCKO7ZgWXJGJfqQ4rtEjfMOQ2HIorqPDcUUu+iH/xOTIQVO8YgMAAUSoyGVkwDyrlQFPhKJv zMG2ABvfObfYinJcdSihSEWPJFyRh6vV+hfHXC/DYMuVyAAggIjJobgi9T+ORhMswNDPt8V3gwMT GRGKq2GEb2oPXQzXAYmELsgZdBEJAwABRMwEN676lNCMDKxYw3ZxDjEX5jAw4F9pQCi3/sMTcX+x 6KPpFVb0AgABROqKBeRuBCOeevQPA+6rrpgYSN8mgWvMFlu9+g9HZBE6z4CYRVmDOjJBACCAyD0f D9+NSbguoSN1HS+hOVpCEYwr0gjdFDgkIxIGAAKIkjPxSLkqkpGBvCshiZnAxjVgT4hN14ta6QUA AoiRCvoILcRmYiD+Nl5iZ1sILSMl9qZdYi9FHzIAIIAYqaifmPuycckxMBA/H8rAgP+ua0J3YA+K 2+xpBQACiJEG5uC7/BVXxBPrFkLriYgpOoddJCIDgABipLF5jETkZkJmELMSn9QIG1aRiAwAAoiR zmZT6whxUiNp2EYgOgAIIMZhateIiUB0ABBAjEPY/hEbafgAQACNomEGAAJoFA0zABBgAIh/SMmV vqhNAAAAAElFTkSuQmCC"/>
+ </switch>
+ <g>
+ <path clip-rule="evenodd" d="M279.833,92.993c-5.339,2.886-10.676,4.545-16.806,5.554 c-6.132,0.722-14.214,1.01-19.263-0.216c-5.263-1.154-9.667-3.174-11.541-7.141c-2.09-4.401-2.523-12.047,0.359-18.179 c2.889-6.348,8.587-14.572,16.81-18.828c7.934-4.399,20.919-7.285,31.165-6.997c10.167,0.072,23.081,3.606,28.996,7.863 c5.772,4.112,7.287,9.81,5.122,17.097C303.061,79.071,291.448,85.996,279.833,92.993z" fill-rule="evenodd" i:knockout="Off"/>
+ <path d="M279.833,92.993 c-5.339,2.886-10.676,4.545-16.806,5.554c-6.132,0.722-14.214,1.01-19.263-0.216c-5.263-1.154-9.667-3.174-11.541-7.141 c-2.09-4.401-2.523-12.047,0.359-18.179c2.889-6.348,8.587-14.572,16.81-18.828c7.934-4.399,20.919-7.285,31.165-6.997 c10.167,0.072,23.081,3.606,28.996,7.863c5.772,4.112,7.287,9.81,5.122,17.097C303.061,79.071,291.448,85.996,279.833,92.993 z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="248.8809" cy="58.915" fx="248.8809" fy="58.915" gradientUnits="userSpaceOnUse" id="XMLID_28_" r="63.6621">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FADCD6"/>
+ <stop offset="0.2885" style="stop-color:#EC7C64"/>
+ <stop offset="0.3876" style="stop-color:#E3401C"/>
+ <stop offset="0.4333" style="stop-color:#DF2800"/>
+ <stop offset="0.7111" style="stop-color:#BF1400"/>
+ <stop offset="0.8262" style="stop-color:#B61100"/>
+ <stop offset="1" style="stop-color:#9F0B00"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#DF2800"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#DF2800"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF1400"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF1400"/>
+ <a:midPointStop offset="1" style="stop-color:#9F0B00"/>
+ </radialGradient>
+ <path d="M280.987,90.974c-3.604,1.947-7.861,3.679-13.56,4.616 c-5.919,1.01-14.791,1.804-20.198,1.299c-5.483-0.721-9.378-2.236-11.397-5.698c-2.094-3.896-3.534-10.749-0.725-16.664 c2.67-6.131,8.948-14.571,16.88-18.899c7.647-4.545,19.983-6.853,29.505-6.637c9.308,0.216,21.857,3.967,27.126,7.935 c5.193,3.823,6.708,8.801,4.254,15.221C302.271,78.422,291.664,84.697,280.987,90.974z" fill="url(#XMLID_28_)" i:knockout="Off"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_30_" opacity="0.8" transform="matrix(1 0 0 1 266 55)">
+ <foreignObject height="80" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="111" x="0" y="0">
+ <imageReplacement align="center" height="80" opacity="0.8" placementMethod="ratio" refHeight="80" refWidth="111" valign="middle" width="111" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_29_"/>
+ </foreignObject>
+ <image height="80" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_29_" opacity="0.8" width="111" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAG8AAABQCAYAAAAX6SsYAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAzaSURBVHjaYmAYBUMWAAQQ4wj1w//hEHkA AcQ46tahG7kAAcQ4BN3GSKE//pMZYYMuQgECiHGQuwcfn5FKkUcqf9BEJkAAMQ7iCGPEI8ZIhFpi IgMb+z8Jagc0MgECiHGQRhgjATYuPqHI+08E/Z8EtaTmVqoCgABiHMBIwxVhMD4TmhgxGF/k4Yog XHx84rgimpgcSjUAEECMgyzSmLCwsdFMREQiA45IwxUh/3BEHi5xfBFNl0gECCDGAYo0bJiJDMyI IyIJRR62iPmHh8bGJiZiaRqJAAHESIeIwxVpTFgijRkLzYxDHF8kokceoUhDjxx0/BePHK5Ip3kk AgQQIx1yG75IwxZJIMyCRqOzsUUizExkN6DnOly5Cldk/SWSTShCCRWrZAGAAGKhUxGJnsvwRRYr lMaFkdVji0BCOe8fCZEGwn/w8NHl0COUEUskwtzESGkkAgQQCx2KSCYckYYeKaw4MAsWGlsEIicS XJGHrYjEFmHokfOHSIwtQmGRiGwvA1okkhWBAAHEQuWIw1ZEIgcwLMCRI4MNC82GxMcWmSxoxSi2 FigDniKT2NwGi5TfaOzfSGLY+OiRiWwPA45cSHIEAgQQCw3qNiYsuQ1bDkOOJHYcNLZIxBZ5zDgi DxYguOo6XLkOPUehR9QvLDS6GAwzQfUyQs1mRLKfohwIEEAsVCwmcUUaM1rgo0cSCHMgsZExvgiE mc9EROSRkvOQcwy23IUeYT/x0CxQNnoEMiAlKrIjECCAWKhYTCIHInpOQ89lHEg0Nowv8ogpNslp sODKebAIRI80WAQh4x9Q/BPq1h9EuI/sCAQIIBYqRBx6YwRb8ciOJbI4kWhOLBGInEOxFZvMOPp7 uDrp+Pp2uHIfrpz3C0ekgfB3JJoFysbnPmwRSBQACCAWCotJRiwtSHyRxomEudD4MHl2pMjDleuY 8bQ0CY2w4Ovr4ar7sOU+bBH3Der+b2jFO6HIQ05cDMTmPoAAYiEj12Hrs2FriMCKP2wRxoXG5sRS bCJHHMx8ZiyNFCYs3QRGAoPSuCLxLxFFKCwCkXPedyjmgEYczO3ERt5/LHU1wQgECCAWEiKNAcvo CHrEYctpXFgwN5bchyviWLG0LJnxDFAzYOkq4JtNwNeQQY9E9OITFnmc0MiD5TxWtMTGhKP7QtEQ GkAAsZBZxzGjtSKRcxt6TuOGYnQ2MRGH3jhBb1kykTAlxEDE9A9yXYgvF6LXfT/QGlnokYeeq/DN WhBdfAIEEAsJEceEJ+LQ6zTkyOJBijTkyMMXcSxYchwTjsYJvll1QhOypOZE9G4ELALRIw69uMQ3 2oNuHyOxQ2cAAURMzsOW61jQIg49p/Eg0TxIfOQikxOpgcKOp2GCL7fhijRGIme5icmJ2OpDWA5k g0YeG44cx4QWEf/wDMUhRyQjMbkPIIBYSBg9Qc91yH02TiyRxYsj8pAbKLiKGhY80z4MeIpJfLMk +Nad/Ccw94crF7LiSXBMSAH/H8/wG7bII2rgGiCAWIjMdUx4ch1ybuPFgnmwFJf46jdiWpKEIgxb ziO2OMWVI9FzIQs08PG5mwEpUv7gaPj8QYtE5HDHm/sAAoiFwlyHXFTCIosPitEjD1fEseBItcS0 JImZj2QkIPefQAsVRjMhRR4zNKCZ8UTafywd/z9oIzTIkciCZSYCb4MFIIBIyXnouQ5bkcmHhpFz HXpRSSi3EbO4iJxJ5f9E6GVEq3uQA5EJGrhM0IBmwjOu+g9LAwe5f/gLaSjtN1oYEKzzAAKImDqP iUBDBVtdx4eW65AbJ9gqdmYSI42SFQCMREYuI56IRGb/IzHifqCNgcIaPbBimBmt+MSZ8wACiNKc h62VyYvWSOFGG6/E1iKjVhFJi6Uh//FEJAOeuUPk4hI54jiRRmO+4+le/MOSUFAiEiCAWEgYeEae LUAvNrlw9OWQ6zn0ISNmIvps9Iw0YiLzP5ZSCVtDhw2pkcJOxMwJoXFQrDkQIIBYiCgy8TVY2AkM NnNiaVUyE3DkYIk0fBGJKxKZkXIevhkVbBHHgqN/iLPoBAggYkdYsE354HIYthETNiKKysEcafga NNgiENZyRB8+xDfRzIJjMAInAAggFiIijhFPBLJiWcrARsTAMiktyaESgYxIEYhvtoXYqS5GLH0+ lFwIEEBMJDRYcEUgtpVflPTdhloEMhBI6MxYwocNSz+XlHYAGAAEEBOVZs9xLYwdzhFHaDQKfR0P toTOQmBoDW8YAQQQExmOw7fPgBHHeORwjzh8A/nY5j5ZiIg4QjPvDAABxESjFMhAg871UItEXMsf mRlwL10kZtYdLgYQQMREHjFbm7CtySc0H8U4TCOQkYG4FeO49l9gKzKxRiRAADEREWkMBKZG0Oeo /mGZ3qDbnrVBkOvw1YFMROY2RkJFJggABBATEYO32CIO29IA9LkqbJE43CKN3DqQmL2GBAFAADGR UFz+wzHF8ZsB+/wUtkj8hxaB/0doJJKzXRsDAAQQE4m5DtdKKvQ1+ui5EVsxOhIiDt/QH8UjSwAB xERErsM2/Y9t9TAyjS0i0YtRhmGc++jiJ4AAYiJgKa4pDmwTiz8YMCcafxORA4dz8UlogROu0yWI AgABxEJknYct58Fy2A8sGH22HFczmAnPQO9Qz3XErg8l9mACDAAQQCx4HIC+gAZbkYm+3PsbA+rI Ob7IQ5/qGMoR+J/Ixh6hgwpIahMABBALnojD5gD0nAfbDQNbo488HYRrgBq9omYaRhFIzJJBfGs2 /5Ey4AEQQCxEOghfnYe8O+YrA+7pIHwj5UM5AvG1Ewjt/cMXif8JRSJAALEQWXYTWlCDbysyoWkh fDlwMA+j/SeymERP9Lj6xsgRSFSxCRBAxNR5MMcwMmAuqiF0igOxEYer9Ytv9RQjjXIOJcUlevH3 B8tgxi8G/Ituia7/AAKIhUiPoec+2BpDWL2HbYoDhokdLWcgMBDLSOVAp0YEo+95R2/cobfMseHf RHSpsAKAACJUbOLKfUxIEYjrXBVSd6/+Z8C9BICBjvXgfxKLSwYG1G1hf/EMZmBbdPsLx3AiwQYL QACxkOAZ5JwHi4hfDJgzxsTuXsVV7ODLpYwDGHH4ton9x9MPxrb9+Qda5KEPaBBzfhkDQAARU2wy 4mm44JvywLWfDldxA1vP8Y+I1ik9W47EdMD/oVUp2CIN1hf+gTYa9YvcYhMggFhI9NQ/pEDEFXn4 NkHiSggwxxLq1NMyAok9vhhfroNF3k+0CPuGRH9Di8hfOMaACbY4AQKI2GKTEUtuQY5AbPNVjERE HHpTmo0B95oOBhpG4H8iche+iEP2B3IX6isaRo48bLnvL4FiEwUABBApOQ9b44WBAfdJtbgiDt+8 IPqQGr2KT2J3y+Lr0/1FaqDAhgxBEfYFCaNH4E889R3B2ReAAGKhwJOwIvQvA3ETifgGuX9Dh9V+ 4RmZYaJB7vtP5iwArs44cn0HKyZBkfYZLQKR6z5skfePmBkXgABiIdGjjFjqPwYG4g/qxjfIjb6T CDn34TpnhZSOOzEtSVIXW2HrkGOLPOQI/EpkziM4ZQYQQOTkPEYc3Qdix0j/YenAwrY+Ydt4yYSn 7qNH5P1jIHwm9V8sOQ825otedKLXebhamgQBQACxkFnUIE8XMRGwDFdxib5v7TsDcXv4GKjQ9/tP ZOThOz8a11AYemvzG1KDBbnYRO+k/yUwq4ABAAKIhcK6AvkYXnJyHfJ8IK696rj6itSu8/6TEHn/ 8BSbv7Ekym9oGDnyCNV1OCMQIIBYqOj5fyTmPOTIw7fZEN+QGbXn4hgIFI+EDp3DljDxddLRi0yS locABBALhR5mJCICCQ0h/WTAfZAOMxF1Hq2KzX8UFJ1/GHCfyfkTLeLwNVTwAoAAokbOIxSBhCZ0 kSMN+egqkrc80aDYxBdpxMzd/cYxq4BvRIXoRVkAAcRCpQDAFoGE+kTIEUjqvj5aDY0R2z0gdvIV fQL2D5aiEtsELFE5DyCAWKjoefQuBHIrFF/Rie/OBFK6CdSKPAYG8u4TwrawCP2YKmyRRnJxCQMA AUTtgMB1ehL6XjVip5Fo3VAhJQIJrbck9gByQouNiI5AgACiVWDgO0ScCcc0ErEzEvQcmCbmujZi Gjr4LpMie/ExQAANxEVQ+K5UI+UQVFqMbRIzBUSMHDGHoVJ8txBAANH7CjZSZyJoGXHERCADA3H3 4pESmQwMpG1CxQkAAojeR0IRc70oKffBMtCw+GRgIP5GSmLvnqXqTV4AAUTPNZGMJEQoIffROueR kjOJiVBi+CQDgAAaiAWtjCRE7EC48z+Fav5TaDbRACCABuNV24PJff8HWD9eABBAg/lwtsEOBnxP IUAAjaIhDAACaBQNYQAQYADP/BqmvkMjhAAAAABJRU5ErkJggg=="/>
+ </switch>
+ <g>
+ <path clip-rule="evenodd" d="M295.633,111.532c-3.249-0.938-6.059-2.742-9.521-6.204 c-3.395-3.534-9.093-9.233-10.462-13.994c-1.729-4.833-3.389-10.027,1.659-14.788c5.268-5.122,17.89-13.056,29.286-14.354 c11.04-1.227,29.289,2.091,37.222,7.213c7.432,4.977,9.452,15.365,9.382,22.506c-0.074,6.926-2.744,13.129-8.802,18.9 C328.167,111.027,311.933,111.244,295.633,111.532z" fill-rule="evenodd" i:knockout="Off"/>
+ <path d="M295.633,111.532 c-3.249-0.938-6.059-2.742-9.521-6.204c-3.395-3.534-9.093-9.233-10.462-13.994c-1.729-4.833-3.389-10.027,1.659-14.788 c5.268-5.122,17.89-13.056,29.286-14.354c11.04-1.227,29.289,2.091,37.222,7.213c7.432,4.977,9.452,15.365,9.382,22.506 c-0.074,6.926-2.744,13.129-8.802,18.9C328.167,111.027,311.933,111.244,295.633,111.532z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="291.1436" cy="74.1162" fx="291.1436" fy="74.1162" gradientUnits="userSpaceOnUse" id="XMLID_31_" r="58.9254">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFE0D6"/>
+ <stop offset="0.2885" style="stop-color:#FF8B64"/>
+ <stop offset="0.3876" style="stop-color:#FF551C"/>
+ <stop offset="0.4333" style="stop-color:#FF4000"/>
+ <stop offset="0.7111" style="stop-color:#DF1800"/>
+ <stop offset="0.7619" style="stop-color:#D61700"/>
+ <stop offset="0.846" style="stop-color:#BC1400"/>
+ <stop offset="0.9526" style="stop-color:#940F00"/>
+ <stop offset="1" style="stop-color:#7F0D00"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF4000"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF4000"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0D00"/>
+ </radialGradient>
+ <path d="M298.517,111.171c-3.244-0.866-6.058-2.958-9.522-6.276 c-3.607-3.462-8.942-9.306-10.461-13.922c-1.369-4.978-2.669-9.667,2.239-14.066c4.688-4.617,15.796-10.965,25.822-12.12 c9.811-1.226,26.041,0.578,33.398,5.122c7.072,4.545,10.031,14.788,10.246,21.785c0.29,6.781-2.743,12.985-8.802,18.9 C327.157,110.739,312.872,110.955,298.517,111.171z" fill="url(#XMLID_31_)" i:knockout="Off"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_33_" opacity="0.8" transform="matrix(1 0 0 1 279 92)">
+ <foreignObject height="115" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="112" x="0" y="0">
+ <imageReplacement align="center" height="115" opacity="0.8" placementMethod="ratio" refHeight="115" refWidth="112" valign="middle" width="112" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_32_"/>
+ </foreignObject>
+ <image height="115" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_32_" opacity="0.8" width="112" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABzCAYAAABAdIblAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABFBSURBVHjaYmAYBUMaAATQKBriACCAGEf9 AAb/h6rnAQKIcdSNQztiAQKIcYi5hZEG/vhPQsQNuggFCCDGQWg3IxFijGSaRSiy/uNR+38wRihA ADEOsF2MREQKIxHqGcnwz38SaXIimOYAIIAY6Ww+vkCnFY0vt/3Hw8Ylhy5GKGJpCgACiJEO5qKz GfGwSeXjksPnN1yRRQ7GFcF0i0iAAGKkQ8ThCmxcmIlIdYxERDSyO9AD+R+WCPmHg8bHxhWpdIlI gABipFHE4YowJixsXDQuMVIiGl8ORI8odDYujE09tkilS0QCBBALDSMOV0QQixlx8AlFNq4iFTlQ iYmsvwRodDYjlohEjjxGWkQiQACxUCHy0HMbvshiJpJGZ5MasdhyIXoE4oq0v2hsGP6DRQwdwyIS V26keiQCBBALFSIPvVjDFWHMUPuwsdExExobV4Tii0xsORC9+PxHRIQh0/jwXywJAGYPek6kWpEK EEAsVIo8bJHGghRRhDCuyCU2ItEjE18ORC4+sUUetgj7jYVGx+iRyQilGfBEJMWRCBBALBRGHiyw kAMbPXJYcWAWLDQzjgjFVczii0h8ORBbsYkv8pDxLyQaGaOrY0KKxH9oEclIrUgECCAWCiOPCUfE wSKJDQdmRaLRI5EFTxFLbATiaoniKz6JjTwQ/olEI+NfSO77jeSGv0i5nwktEikCAAHEQoXIQ484 WCSxY8FsSDQbWiSy4ilWsRWl1IhAfDkQubj8hRZ5MPwDCbNCaXR3orsDORIZKI1IgAAiNQfiijz0 iOOA0pxQNgeSGAdaROKKQBYSch8jhY0YbA0YbBGIHnnfoRjZLzB3oxflDGiRyEiN+hAggFgoaLQw o0UeLHJgkcYFZSNj5IhkJyIHkhp5uOo/BiLqwX84ciFy8YkeeTD/fEOLPGS34gP/KI1EgABiIbPo RI88DqTI44JibiQ2F5ZIRC9GiY08RjyRh6sj/x9PSxRfcfoHR/2HnPu+YfEHM57ch5yIGCkdqQEI IBYSik5GpBYnM1KuYUfKcSDMA408GM2NFonYciAsMeBrtGDrJjARiDhsdQy+oTRCkQhrqPxAK03I iTwGtMREVn0IEEAsJA6TMaPlPna0nAeKNF40GjkSOdE8zUYg5xE72kLObAS+iCQUibgijwVHw4XQ IDjZnXuAAGIhIfchF5/Ych83UsTxIUUgD1oEIuc+fDmPEU/LkpiIYyRyEpeY3IgciezQSGQjoujE Vt+iD4ZTNNwGEEAsROY+bP09NqSWJnLuQ45A5FzIiRSBbFj6fcwk1G3ERhojiRO6+HIjLBJxRRwx kYc+3voPqVvxl5wOPkAAsZBR97FgaXUi50A+LLkQufhELzqx5TpSi0hGEqfI/hPIkbhy4x88LWb0 yMOVANAjEGYnE1qrlCgAEEAsJOQ+JrRRFlwRiJwTeZGKT3wVPhMJDRIGInMbsZFISkSyQCOBGUep gS3yiBn8ZsKS84jKhQABxEJk7mMiIQfyoNV93Gi5j5jIY8Azs05MhDESEXGMREQmE1pEMuEYVEcv Nv/iGZb7gyc3MpLaoAEIIGKKUCYiOu5ceDB6yxNbsUlKS5LSVQS4zERP+bjEmHAMk2HLeb9xDHz/ QopM9OKUpEYMQACxEPAcru4DegRyEog49KITVyAwkhlR1FjYy4glQmE0MxIfW4JDb7D8wTGC8xNL BP5BCgvkXEhUZAIEEAuRxSd6DsQViZxYIo4dreLHN9BLi5XX5ET+fxwDAfj6eMhF5288Y6joEcmC lBOZSK0DAQKI2FYotjoQecaBA8fsA7ZRFnyTrrSOLHIi9T+eUR303MeOVnzCIo8LbebiB1Jf8jc0 jLCtryEYkQABxEJk5BGafWBDKyrZsOQ6ZgINlsEKGLGMWzLhmaL6g5Sof0JLpB9Q+juW1jgrNBKZ kfqCRDdmAAKIhUDKZ8KRA1kITNhi6yMNxchjwDIlxYgWibD6EZaL2JByIHoEIkfiD6TilAVHXUgw FwIEEKE6kIHAzDu2JRMsWCZiCbU2hwpgxFKkwvz4D0sbgQNt7JQDT8MOPaET1YgBCCAmIhzMSEQk YhuMZsYxsTlUIw/fID8TntKJHUsEcmApsbB1rQiGE0AAMZEwlIZtySC+ZYHIxS8DA/7V0kM1IgkN 9mOLRHYG7BPaZLXQAQKIiUTH4lqHgmvNJrGDzMMpF+LqM2NrsbPhqHaI3SbAABBAhGYjCG1MwVe3 DfX6jpSIJLYoxbbIC9+sBsEwAwggJhp7ENdGj+EUebi6XSw4Bj5wdbeY8bTYcQKAAGIiIzJI2VtH zEzAcKoLmUjocuHrMxPdagcIICYCAYwrYnDt5MG1HWsk5kJmBuIWOrPi6DMT1YgBCCAmEnMervUi +CYscUXi/2EYkfi6XOiRiK3/TOxwIxwABBATkRGHb4b5DwPmPNcfHLmSmOJ1KEceAwPuSQBcOZGV hFyIAQACiImIiMMWedj2C6BPk6DPdyFPjDIM4yKVUF3ISmD0ilBXAiVCAQKIiUBg/seS65Aj7ycD 7qmS31iKVUL7yYdbl4LYSGQhshWKkRsBAoiZhNEXZjzFAbZdRsSMhQ6HoTV0t2PbCYxc5SDvbvrB gLrT6TeWkusvvmoHIIBwRSADkZGIPqiNa1wU3xrP4TjMhq3hh2uWHjY/iL7PEL0dgbW0AgggZiIr ZFxDRcQMauNbDs8wzEZrGBlw78X/w4B9icUPBtzLLf4SavwBBBAzEWU5ts0kuPa9Y4s4fMvkSVkS PxRzIXoE/mHAXGbxg0D7AVsEwsMIIIBYiCwG0BsxyLt0vuGpD0ntoGKb/R6KuY8BrV/IyIB75gZf icWEI3zgACCAWIgYiYHNDqNH4A8iWla4ZuVxFav/h1EOxDboz4Qj8rA1+ojqyAMEEAuOyMO2XA62 agpWDDBjacDg22nLRKCP8w+pWzPUI5KRyBY9oblUgtvlAAKIUBHKgFaMEmrQsJLQqGHC4sH/w6Ao JWagm9hTN/BtVgUDgADCV4QyYilG/yGNxKAPFVHSMh1O9SF6IOPLjbgOcCC6mwUQQIT2B6LvJMU3 0oDtsB58p04M5/qQkYg+NTEHFxHsHwMEEKEiFFu/BlaU/sFTrrMQEYGj9SHpu48xcjpAABGTA5FP 4WNCi0RGEiJwtD7EvyyF0FoYrBEJEEDEHHKAr1VK7HFbI6U+xFb/MTDgnvglZes4VjsAAoiUg37+ Y6kLYQ0aRgJN5JFeH+Iba6ZoKBEggFhIiDxs9SEDHepD9BJgOEQkqepw6gUIIFJzICNaMcpAh/qQ gQF1cfBQi0Rcp+EzEMHH1htAAQABxEKGY/C1TKlVH6JH5H8yUvJARha2yMM1zoxvtR/eyAMBgABi odChpNaH5BanDAyYe9GHWlGK62R8XGIMDLhPmIIDgABiIdMh5NSH2HY0kVKc/h9CXQt8yzFxHbT3 jwH/1QZYMxFAAFGSA4mpD5nJyIX41oUMha4FtuIS11ls6Ec+41qKiRMABBALhQ4lpj4ktBSDUERi 6/gOlfqQlGOe0SOVqJXuAAHEQsUUR6g+JGVNDTORI/ODqT78j6O+I2U9La5TnHA2aAACiIUKjia2 PmQmMScSyoWDsT7EVe/hizz0A4CwFac4W7QAAUStHEhMffiTQNcC30w+oZ2rAx2J+M4jxXVsJfIJ +OgR+A9LUYoVAAQQCxU9QKg+xJcTiTkzm3GQD7X9JyHycF1ZgB6JBC/XAgggFhqlRPT68A8D7v0C +HIhoVGawTD1REzdh+vwdFxHb/0ltjUKEEAsVPYIvvqQEepQfPUhvr4hrhnrwVAf4sp9fxjwn3yP bz0oUZEIEEC0yIH46kMmLJGILwIH+9JEfLnvLxGR9wNPMfoPRzGKAgACiIVGnsJVH/5hIG6VNzFF 6UDXh7hO+/2H1trEtpAX+bgt5P0RuOpAnAMFAAHEQgcPoncrcG2CZCbQoGFhGHxLMQhtwcN1VQEM I0cecg4kekQGIIBYaOgxbLkQuVFDad9wIOvD/ziGynBtYvmBJQJ/oEXgLyz1H8GRGIAAonUOZMQR gdScP6R3ffifQO77QyDyvmHJgchby/A1XjAiESCAWOhUTzBgKU7JjcCBXIrxn4TuAnKx+Q0LxlaE YtsMixcABBCtIxBXfQjLhb9x9A8H49LE/0R0GZDrPfRc9xWKseVA5NyHbywUAwAEEAudIo/Q+tJf DIN7aeJ/IobJfjPgvlvpK5Yc+ANPC/Q/McUnCAAEED1zIDH1ITMJEUmv+pCUOg8WgbDI+4oFI+dA 9OKT5BM9AAKIXhGILRXhqg+xdfIHamkioWIT/XzsH1iKzC9o9DcsxSeu1ife3AcCAAHETOcIxJc7 8K2ZJOaURGYG3AfxMTCQvv4SV+RhO7EDebMrLOI+A/EnJPwZRySStKUaHQAEEL0jEF8koosRikBi rygn53YzBiKKzT9okfcdKad9xhOBX5CK0F9o9R/Jx5MBBNBARCCh3IAuzkQgB+LaZ0donwE53QVs x4UgF5tfcEQgjI+c+5DrP1zFJ8EcCBBAAxmBxORMRgbiTg4mdpsWoUgk1GBBHyJDb2kSynnoRecv cotOGAAIoIGKQFrXh/julMd1nD+prc0faC3NLzgi7zNS5H3DMgNBcsMFGQAE0EBGIDH1ESX1ITF7 7PCt38Q2m46t2ETPeZ/xNFyQD/X5Q+rANTYAEEADHYGEGjX46kNGBtJ3uhI6EusfA+6z4X7iaW1i Kzq/INV7X9Eij1Crk+hIBAigwRaBpNSHTERgfJGH7/BafMdifSPQYPmEJPeFiC4DRYfiAgQQyyCI QGptXcN3KSOyucxofUb0q8nxFZ3ojRZYJH1CK0I/o0XeT2rnPBgACKDBEIHokUjK1jV856wwoeU2 WMSwoMljU/MXRw7ENsryGS3SPpMw4kJWvYcMAAJosEQgMYPe6FvX0Gcv0CMRvR8Hy1EsaGoYCAyP /UKqv75hiUDkovQL2sA1eouTqrkPBAACaDBFIK6pJ1K2cjMzYL9VE1YUws5yQy9C/xMYnEaf18M1 zokt5+Fa6/KPgQqH3gIEEMsgjDxS6kN8IzDIkQKLEOQIZEIbWEeu+35hyX3oEfgNzywDvpxH1WOn AQJosOZAQvUhI55WJwOOyINduIh+N8N/HMNk6HXfdwb8s+voSySw5TyqH/wOEECDMQKJqQ8Z8UQe etEJiwgOLBHIQEQE/sCSC9EXJ31nwDzv8zeSmUTvNiIVAATQYI1AXPUhAxEjLOj1HiwS0G/RZiQy AtEj8QdapOFaGkgo51ElBwIEEMsgjzxcuZABzzTRPywR+J0B9U5fJjw5EP1U/l8MmCfroi8HxHVK P00jDwQAAmgo5EBsR33BGjQMOIpO5MYIcu5jRav/0IfS8O0iQo8wfBGHb10nVa9ZAAigwR6ByJGI 3iqFRd5vLH0+5AjEdsUbrgYPrn186Hv50ItKfDfVMDDQ8I4MgAAaChGIrbmNngv/Y+m0wwIdfak+ E45OPLa96+i30KDfSEPKFUM0ueAEIIBYhlDkMTJgXxT1B0s9iRzY+K61wTdx+xdLRGErJv8yYD8W hC430wAE0FDLgYxYWqb/cRSFsD4gtnFSBgbsJzBim1L6hyXSCOU4ul0rBBBAQykCcUUiroj4y4D9 FHj0c9ew6cV3GM9/PMNhdL/YCyCAhvrJf7jmCPGdikvMzDy+Y7Cwzd8N2I1sAAE0HC6cwnYuNaH1 obgaSP8ZiL9adlBcaAkQQMPxOnAGBvyHqRKKQAYcuQtfw2TArtADCKDhdEsKA4HIImU1Nq6cNegu rwQIoOF05RsjiXxCEYgrkgbVhZUAATScIpCW/hq0t4wCBNBwjUBK/DmkroQFCKBRNMQBQACNoiEO AAIMAIHmI4WgGd0iAAAAAElFTkSuQmCC"/>
+ </switch>
+ <g>
+ <path clip-rule="evenodd" d="M286.976,129.277c-1.155-6.131-0.72-11.325,1.874-15.581 c2.31-4.472,4.834-8.296,12.841-10.388c8.223-2.308,25.247-4.545,35.204-2.813c9.45,1.587,16.663,3.823,21.928,11.975 c5.122,7.935,10.171,25.104,9.017,35.923c-1.585,10.749-10.316,22.074-17.024,28.133c-6.854,5.843-14.355,7.862-23.298,6.637 l-37.367-50.063L286.976,129.277z" fill-rule="evenodd" i:knockout="Off"/>
+ <path d="M286.976,129.277 c-1.155-6.131-0.72-11.325,1.874-15.581c2.31-4.472,4.834-8.296,12.841-10.388c8.223-2.308,25.247-4.545,35.204-2.813 c9.45,1.587,16.663,3.823,21.928,11.975c5.122,7.935,10.171,25.104,9.017,35.923c-1.585,10.749-10.316,22.074-17.024,28.133 c-6.854,5.843-14.355,7.862-23.298,6.637l-37.367-50.063L286.976,129.277z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="302.8145" cy="119.2568" fx="302.8145" fy="119.2568" gradientUnits="userSpaceOnUse" id="XMLID_34_" r="73.7952">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFDBD6"/>
+ <stop offset="0.2885" style="stop-color:#FF7A64"/>
+ <stop offset="0.3876" style="stop-color:#FF3C1C"/>
+ <stop offset="0.4333" style="stop-color:#FF2400"/>
+ <stop offset="0.7111" style="stop-color:#DF2800"/>
+ <stop offset="0.7619" style="stop-color:#D62500"/>
+ <stop offset="0.846" style="stop-color:#BC1D00"/>
+ <stop offset="0.9526" style="stop-color:#941000"/>
+ <stop offset="1" style="stop-color:#7F0900"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF2400"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF2400"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#DF2800"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#DF2800"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0900"/>
+ </radialGradient>
+ <path d="M289.934,118.457c0.65-5.266,4.329-9.017,12.116-11.542 c7.434-2.668,23.952-4.616,33.186-3.318c9.161,1.227,16.879,4.041,22.002,11.182c4.978,7.069,8.728,21.063,7.646,31.162 c-1.443,9.883-8.656,21.857-15.004,27.845c-6.493,5.626-14.07,7.935-23.302,6.637l-38.304-49.341L289.934,118.457z" fill="url(#XMLID_34_)" i:knockout="Off"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_36_" opacity="0.8" transform="matrix(1 0 0 1 250 118)">
+ <foreignObject height="105" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="112" x="0" y="0">
+ <imageReplacement align="center" height="105" opacity="0.8" placementMethod="ratio" refHeight="105" refWidth="112" valign="middle" width="112" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_35_"/>
+ </foreignObject>
+ <image height="105" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_35_" opacity="0.8" width="112" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABpCAYAAADiOacYAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABBiSURBVHjaYmAYBUMaAATQKBriACCAGIeZ +/6PtAgECCDGEeCeYR2pAAHEOAjtZyTTjf+JjLhhFaEAAcQ4COxkxMJmpDACiWEPiwgFCCDGAbIL nc2Ig00oMrFFDrH0sIhQgABiHKCIwxZpuDCuyMQVOf+J4BMboYM+MgECiJGOEYcrwpiIYBMTgdjw Pzxy+CJ1yEQmQAAx0jnisEUQEw6MLRKxRSCuSEOm/1EQqcQUuwMGAAKIkUbmoec2fJHFjINGj0xi IvAfCRhbZJOSQwdFZAIEECONIg+9iMQVYSxQGheGqUNOBNgiED1y/hJJ/8ORUwlF6KDJlQABxEij IhM9x6FHDAsejC1iseVCWKBhizxSMLYIJSYyB0VEAgQQI5WLTHwRB4sgViQaHSPLw/QwYYlEXLkP OWL+INF/sIgh0/gi9C+OunRQRCRAADHSKPLQIw45ktiQaGQME0OORBYsdSKuCESPPHIwvkhFj0xs uZPuEQkQQCxUSgCwgIUFNgtajoNFEjsSjYzRIxM9J2LLgQxIAfgXTwT+xkJjY/9BYxMToYxYIhI5 8hhpHZEAAcRChZyLHHkwjJzjkCOKAw2zI9HsWHIiC1oxykhEDvyDJQLRIwyEf6Hx0TG2CP2Do7gd sIgECCAWCotORjyRhxxxnNCI4oRiLiQ+B5bcyEphBP7Fk/N+EUH/wqIePUJhdjGRGJFUjUSAAGKh MPLQuwfIxSUHUiRxYcGcSJgDrShlRStCke1B70YQUwf+xpL70CMMhn9iEfuFJddiK2qRIxJX/UjV SAQIIHJzICNagwW9vkOPOG4o5kHic+GJQJhZyDmbkUAE/iOyHvyNI/J+YqF/4pDDFpnMSDkSuYiF uZEmRSpAALGQWe+hdxVYkIpN5MjjQYo4XiQ2egSiF5/4GjCMWCLwP1rz/w+WiMQWibBI+IkWkcj4 BxYx9Jz6G0vORI5IBjwRSVEkAgQQCwX1HhNaV4ENKQJhkQeLOBjmwROBbFgaL8xYhtNwDaXh68zj KlLRcyJy5PwgkkbWwwJlM0Htgbn5L1LkUbVIBQggFjKKTvROOita14ATqZgERRofGg2LQOTikw1L 44UZy8A2A5bi5z+Oweu/OBo3+HIjei5EjixCmBWqFhYuv9EiErlupFpOBAggFjKKTmx1Hxta5CHn PD6kyEOPQA4cLU9mHIPZ+CKQ2Ij8i6eBgysS0fF3KIax2ZAiEeaHn1jc/xetD0txJAIEEAsFDRfk ohO54cKNVu/xokUgcvEJy7WEch4584H/SCxasUUkrkj8joRhfviOxR/MBGZT/lE6agMQQCxUaLig tzq5cdR/uHIfK54WJ75Z+f8URCQxORJbowY9Ar/haICxEhmByKNJDOTkQoAAYiEx9zFiGePEVvfx IEUYrsYLO57+Hr5lFQx45uSInaEnFJGwOhK9SIXVieijSexY6nFmtMEHRjxziozkFqUAAcRCYu5D HutkRWt5cqL1+ZC7DNxoHXiYp1mweJaJyIjD5k58C5nIiUg2pBwJi7gfaMOC7Dha0cx4Ws8MWDr5 /8gpSgECiIXEuo8JS6edHalFyY2WC7nRch0HlnqPUFFDyowJI46OMnpEMuGITOQGD3IEwti/CAzE s6IN/zHh6Ltiw4zkFKUAAcRCQu5jJKLjzoUjx3HgaXGiD5NhS7GEIvE/Hrf/x0LjikxmpBzJAo1I FmgEsiJFIhuOYT9suY+BQHcHPRJJKkoBAoiFhLoPW+OFHS0SOXGMeRITeZTmPFyRykhE7kSOzH9I kYkcgX9xTEKz4mhFM+IZ8vuHZajtPzlziQABRGwRyoRlxoENR+RhG6RmJ6OfR+3J6v8MuJfyIwce LBKZkNjIkYlvKQihyMM1r4ht1RxRRSlAALEQ4XH0SGTFEoEcaBGHLfJY6Rh5xDR2GPHUn4xoOfIf A+aCLGwLsHBFHr5lHugRyUjKYDdAALGQUHwy4Zll50CLSFyRx8KAe6ngQC3z/4+jmEWul9Aj8i8D 5io7fJGHa3UAekQykdoKBQggFiKLTyYG7GtcsM2045tZYMLh2YHcJcWIo85kwBOR6GHDSCDycE0m I0ckM1ouJKoxAxBApNSB2MY/sa1vwdepJbRQl2EQRCS2IhY9InEt/f+PI+fhmnNEjsi/SAPejMS2 RAECiIWIaSNGPDmQDUtEsuFpmQ100UlOrsQWkbiG9v7jyH2/8Mwx/kJq6TKh5XKCjRmAACLUiMHW B8QXiax46jxKuwqDKSKZcAyJ4Ys8LqRxVNiIDnKY/UZq7TIxEDlzDxBAxPYDsRWhxPaHmOnc2qR3 RBKKwJ/Qht0PpBb6dxz94t8Eht8wAEAAkTISgy0SWfCMRDATiLyhFonYBgOQcyMz0ggO+uIu9AFw bI099HYCUcUoQACRMxKDXpTi69Ay4RigHsqAUCTCIvAPlvYBrsjDNQBOsE8IEEBMBOojXMUovs4s oXUswyUS8YUPM47+MimtdaISPEAAMRGINGw5Ed+mTHz7+oZLDsRVzeCa8GZlwL+dgJRGHwYACCAm MlIaI5aiEVdROZwijNTGHr7WOq4pKGYCxShGeAIEEBOZKY2BCMOxHWgwHCOPlJErQpGIrwjFGoYA AcREoQf+EyH3n2H4H4HFSMTIFQsF/WacGQAggJhIjKT/JGAGhiF4bAeFkcdAxOgVob4zoUYgCgAI ICYiIw/XAiFsE5TY5rjwRepwrA+ZcBSl6DmRlQH/nCLBehAggJhwRBq2UxoILQAiZrLy/zDOjYxE RiL6dnJsMzZEdyUAAoiJQID+xzFIi2/PAfrOVnwR+X+YF6OMBHIhrsMdsK0TwtqQAQggFgLFJ75N lLi2bGGb50JPTUx4RjWGU2Tiy4UsJBShOIfSAAKIhciGC7YtzLh29fxkwFw2iO6g/1iGpoZDvxF9 WQYjnlErfGPHRLdCAQKImByIXvehT5MgLzdHXn1GaH0krh1HwyESGRkIz6miRyShc3GwJRQGgABi wRFx+GaY0XMecuRxYOmYMuFoLDHhGI8dTkUqrpOqmInIfbhaoijFKEAAseCIPFz1H/ISgZ8MqLtz 2PFEHrYlfixokYltEe5QLD4Z8Aw/YotIfJMABMMAIIBIacTA6kBYDoTNKH/HMSSEK/KQATOW1Pp/ GOREQof9MTNgPz+O2FMa4QAggAgtavpPoP7DtieO2C3R2IrUfwy4V1IP5XFSBgbsA//EzuLgbOAB BBChViiuOpCYVhQxkYfeJ2QaBnUiequakYgcie+0YmyD5vAwBAggUhoxsNMfiJ0DxDWgjWuQmxnH AMNwaNgwkogZiK0DAQKIUB2IKxcSOpAV39nVhI5vxBeJDMMkInGN2pB8aj9AAOErQhnR6kGYBX8I pBx846jEzFz8R8qNTHg6ysNp1IZsABBAxDRiYOAfjiKBmFYsKYeRs6KZwTRMuhm4RrkYCIxH4wUA AUSoCEXfEAnLiX9JiDRCRxqj505CneKhGImEtnwTuioBJwAIIGJyICNSDmTCEXnETPpiO5+aUNGK XpwOhW4GvlY2oXlVkmdrAAKIhQRHMWKJxP9E5kB8B4yTMrvPPITqxP8ExpXxbe4kepUDQACxkBB5 2CKRmNT2j4H46wHwtUyRc+Jg7GbgOu6ElEPZia1O4AAggEjNgeiR+I+EYpRQyiN0DvVQ6Wb8xzMU Scyp+oRWMqAAgABiIdFhhCKRgcgikZhiBN+aGhYckcgwwLnxP4EiE/3APfQTgP/iSMw4W6kAAcRC hgPRI5GRQLOYmGKT2PsakO1gRmudDmSRiq++w3UKFK5T8/8y4F8UhmIfQACxkOlYRhx9RGJuEfuP pytBbOsUW1E6UH3F/3gSK7bIw3a8Ja6cSLAIBQggFgodjRyR/xgIHylFTJeClCIVvWVK774isZGH 65hnbOuIsNWDOLsUAAHEQgUP4MuNxLRMSW3c4AP06iv+J1BN/GXAfsDBTxwYWy4kql8IEEAsVPIM I55hN2KG1ajZV6RVN+M/ntyHfgEJtqUn2M4dJRSBBItRgABioWKKxBeJ/4ksTom5Qo6YviK1uhn/ ySg2sZ03in5ILPKJv+iRiK0OxOkmgABioXKxgi0SCe2VIDUyicmJDGR0M/4TWVwyYKkKkE/L/40n 4r4hYeRIRD835h+xnXqAAGKhQd3AiKVI+0dkxJGS6/DVEf+J6GaQM6ryn4H4BV8/kCLtKxpGjsQf SDkQXysUq5sBAojaEUhsX5FYTMztm9gikxVLLiR2n+J/IiMO/dIt5INhfyJFEijCvkAxeiR+R1KP rxGDs5QACCBaRCCxfUVSZi/+E4i0fwRmM/4zEL7KlZgZBGzjmsh9POTGCizyPkMj7zMS+ytaDvyF Vgf+I7LVzQAQQLSKQGL6iv+JCCxcUy6Eitl/OCIR334DUrfSYdtmgFx0fkWKwM84IvAHEQ0YvHUg QADRMgJJ6WYwkFmUEopQ5NN3cR20x0CCvX8JRN5PpMYJctH5CUsEfkcqQn+RU3yCAEAA0SMCie1m EJsbiZlnxHbpBwsD7mMhGRhwX2H+lwH3/YS/sfTz0Bsu+IpQ9PrvLyktUBAACCB6RSCx3QxScwS+ XcLIuQXbTikGPCNEhG58wdXX+4HWVUDOhV/QGjA/0LoQ6LmPgYGImXmAAKJnBBLbzSCmy4AvAtED G3m3FPL1BgwEpn5IvRjkB47+Hr7uA67II3pCFyCA6B2B1JySInStDvIgMbbtbgxoRSd6Lv7DQPqt Lt+RciGujvt3EotOvBEJEEADEYHUmpLCl1vQAxm24RT9NhV8eyCxFZmkXMuDzv6B1ur8Rc7gNToA CKCBikD0IS1yp6QI7R6GnRKIvmMY/SZsYi9SxnXrJ7a7BdEHrH/imf/D1u8jqggFCKCBjEBcfUVc U1L/CUzdIAc+csMCPQKRi9D/DPhPlif16lZ8t3zim7glue6DAYAAGugIJHVKilCjA1unmh1HEYqe A4m9QBnXrDq+S5PRT/Cg2ukdAAE0WCKQGlNS6BEIq4OwHarKiKUBQ+wFyvgiFNc99Oi3XFPtICSA ABpMEUjKlNR/PMUfLDCx3YyNrR/4jwH/5Ry4IpOYuyDw5TiS+nu4AEAADbYIJKaviKsoxVaE4rsS 7j+WCMR1A/ZfHJGDK7L+og0EEFppR1bkgQBAAA3GCCSmr/iHiFz4kwH7leaMWIrQ/wz4F97+YSC8 IPcvA/Yz44iZuyQbAATQYI1AYorT/wRyIfpZ3rh2EP/HM376D0fk4Iqsfwz4V9IxMFD5vDiAABrM EUhMNwNfV4DYy6n+MxBe4ggzm9DMB7GbUqh2RhxAAA21wwMYGPCfv4J+IDsTA+6rXRkYiF+ziitX 4WtJ0jTiYAAggIbqBRzoB8oROr6D0EQuubuJ8W3AocvRmgABNFQv32DAkRuxXUyF7x56fP1LBgbi 9vNTdcs0qQAggIb6iQ/4ilYGBsKH5eBbfcZABD0gkYYMAAJoOJwMiC9CGRhIu4eemEj6T4QZdAMA ATQcj+ug5KaY/xSIDQgACKDhdp8DI5n+/E+h/IABgAAa7jerkOO/IXWON0AAjaIhDgACaBQNcQAQ QKNoiAOAAAMA5RsbkL/T/PwAAAAASUVORK5CYII="/>
+ </switch>
+ <g>
+ <path d="M258.985,163.542c-1.08-4.329-1.44-8.512-0.791-12.263c0.432-3.823,1.585-7.286,4.039-10.676 c2.165-3.68,4.833-8.585,9.952-10.821c4.833-2.597,10.896-5.049,20.128-3.462c9.377,1.516,26.836,7.286,34.844,13.418 c7.357,6.132,8.942,15.869,10.602,23.083c1.299,6.853,0.939,13.633-1.081,18.682c-1.948,4.761-4.547,8.296-10.605,11.182 c-6.348,2.885-15.074,5.122-26.761,6.42C285.891,187.275,272.476,175.444,258.985,163.542z" i:knockout="Off"/>
+ <path d="M258.985,163.542 c-1.08-4.329-1.44-8.512-0.791-12.263c0.432-3.823,1.585-7.286,4.039-10.676c2.165-3.68,4.833-8.585,9.952-10.821 c4.833-2.597,10.896-5.049,20.128-3.462c9.377,1.516,26.836,7.286,34.844,13.418c7.357,6.132,8.942,15.869,10.602,23.083 c1.299,6.853,0.939,13.633-1.081,18.682c-1.948,4.761-4.547,8.296-10.605,11.182c-6.348,2.885-15.074,5.122-26.761,6.42 C285.891,187.275,272.476,175.444,258.985,163.542z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="274.4316" cy="142.6177" fx="274.4316" fy="142.6177" gradientUnits="userSpaceOnUse" id="XMLID_37_" r="68.4001">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1089" style="stop-color:#FFF5F5"/>
+ <stop offset="0.2705" style="stop-color:#FF8783"/>
+ <stop offset="0.3819" style="stop-color:#FF423B"/>
+ <stop offset="0.4333" style="stop-color:#FF271F"/>
+ <stop offset="0.7111" style="stop-color:#FF1200"/>
+ <stop offset="0.7458" style="stop-color:#F61100"/>
+ <stop offset="0.8034" style="stop-color:#DC0F00"/>
+ <stop offset="0.8766" style="stop-color:#B30C00"/>
+ <stop offset="0.962" style="stop-color:#7B0800"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF271F"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF271F"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M261.874,164.697c-1.374-4.112-2.021-7.863-1.659-11.542 c0.215-3.751,1.224-7.142,3.318-10.459c1.729-3.751,4.109-7.791,8.798-10.171c4.833-2.525,11.181-4.977,20.198-3.463 c8.872,1.443,25.391,6.637,32.607,12.48c6.994,5.843,7.934,14.499,9.522,21.497c1.295,6.637,0.285,14.066-1.084,18.682 c-1.805,4.329-2.67,6.565-8.438,8.946c-5.917,2.381-14.789,4.327-26.62,5.554C286.326,185.76,274.135,175.229,261.874,164.697z " fill="url(#XMLID_37_)" i:knockout="Off"/>
+ <g>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_39_" opacity="0.8" transform="matrix(1 0 0 1 71 215)">
+ <foreignObject height="282" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="123" x="0" y="0">
+ <imageReplacement align="center" height="282" opacity="0.8" placementMethod="ratio" refHeight="282" refWidth="123" valign="middle" width="123" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_38_"/>
+ </foreignObject>
+ <image height="282" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_38_" opacity="0.8" width="123" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAHsAAAEaCAYAAAAxGCg0AAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAACafSURBVHjaYmAYBSMGAATQKBpBACCAGEeD YEiF6X9KNAME0Ghk0z5yGWkYwSRFPkAAjUY2dSKXkQw1pEbwfzzyREU6QACNRjb5kcyIg8Ylhs+8 /0RE+n8iaZwAIIBYRuOQpEjGFsHEsInNYLgiF52NLWczEop0gAAajWziIho9EonFDERGOq5iGTly /+FgY4t0rBEOEECjkU1cRGPDTARofBGPbAe2CPuPJaKRMSNapP8jFNEgABBAo5FNuNjGFrnomBmL GHrE48vl/7FENnoE/0Wi/yJF+j+ovn9I5mCNdIAAGo1swsU2csQxI9G4MK5IR6/LGfAU3eiRDMJ/ kOg/SOLI4B++4hwggEYjG3eEo+dkWGSyINHoGCaOntsJFef4IhoWub+hGGbub1IbaQABNBrZ2Itv 9NyMHrmsODBypCPndEK5G1v9/AcJ/4JG7k8om5FAPY+1GAcIoNHIJlxsY4tgNiBmh9LImBUtUcDM wFZ/44os5GL7NzRyf0EjGjnxMGApDRjRIhol0gECaDSysbe60SMaFpHsSJgDjcYW4ei5G1tRjp6r /6LlaFAk/0BKPIxokfwXS0sda3EOEEAsoxGNEtFMOCKaDSliOZFoGJsDKRGgF+lMWOpubDkbvfhG jmhWpBKCAS1RwEoCmB3/cHkWIIBYRiMaa/+ZGS2ikSOXCwnD+BxoOZwVKYKYcfS9sXW1kItvWESz IUX0fyz1+R8c5mPU2QABxDIa0RiRzIxURyNHNCyCuYGYB0rD+JxYcjcLlu4YI47RM+TW92+kXA2L aJi6P2jyzESUHPCIBwggltGIxlp8s2IpurmgkcwLpWERzo2Wu9lwFOOMeFriyP1pWIPsB1JEw3Lz TyhGbhMwYWm0YQUAAcQyGtFYIxo9V3MjRTQy5kHK2ZxoxTiuyGYgUITDci0TUm7+hVSl4ItodP+h FOUAAcQyGtFYu1jsSDmVC0tk8xGIbPQIIZSr/6HVv7Dc/Bst8RDTuseZwwECiGUERTK5RTdyZKPn bm4sdTa5uZoJaawbVpxjq5MZiBhuxTYjxgAQQCwjKDczMGBOZKB3sdixtLx50CIbua7GVV8zE6hP 0QdRGJDYTDha7P8YsM+Ioc934wQAAcQywnIzequbGSlHo3exuNEiGjlycXW30MfHcUUcvjHxv2gY eeIDuV+NPJDyn4GI1S4AAcQygnIzrrFuNjxdLPQcjFw3o3exmNAaRthy3H+k+hi9u4U8NPoLqeWN LAZThx7p//EV3zAAEEAsIyg34+pHs6E1xtDraPTcjFxUMyHZiRx5//EMXaLnYuQZLVDkfgfib1Aa hn+gRT5M/V8cuRtrhAMEEMsIy83YGmPsaBHNhaVeRm9pYxvRgrGJbX0jt8CRB0pgEfwFiL9C8Tco /oEW4X9IiXCAAGIZYbkZudhGz9GcaKNi6A0wNqS6+D9S8QvrC6PPbjFgydX/kPSij4P/QsvZsIj+ ghThsFyOHNl/cBTnGAAggFiGcW7GNUWJq9WNXIQjj33jimgGpAjHNe7NiKVL9A9L4+sXlpz9FUuE Ixfpv3FENAOOxiADQACxDIOIJiY3Y6ufsUU0F5aGGKyOZkLLlaQu+se1CgW5voZNfnzHksO/YinK 8RXjGAAggFiGQW7G13dGn6JkR4pIXBHNgWWABHnoEr3fS6g1jF6Eo+fs32h1NrYIR2+s/cKTs3FG OEAAsQyj3MyE1HhiRcvN7ETmZvR+M3pDDNsCwL946sz/eHL2HxzdLuQIR8Y/seRqbDmbAVcDDSCA WIZwRDMR0aVixzL8yYmlXoZhNrT6mRGp6EbOhb+x5C58Ef6fQJ39B08/+ycSH1tf+x8xjTMQAAgg liFYbMMigRlHIwxbJHNiGTBBjmjkYpsZbTLiL45iFjlikCP8P4EI/4fWGseWkH6jDaQgJyxiExgG AAggliFabDMjFdu4WtoceCIZ12gYtmL7D5Z69AeOPu8/InI3tkYatlz+B6179QdP1fEPX/ENAwAB xDIEi230cW1sLW3kvjN6JCPXzxw4Bkr+IuVo9O7QNxIaSwxo7H8MuDcBYNsMgKtt8A9LRBPcxQkQ QCxDpNjGVTdjy81ceHIztoYYev38B0tEY+sC4YvsfzgaaPj2byFHJjr7H45IJmnbLkAAsQyhYhs5 otGX9nJiGfLEFdHsWLpVDHhy9DekgY0vREY2vkmQ/1i6boQwvilOBmJzNkAAsQyBYpuJAXM3BjuW fjP6bBV6Q4wDz0QG+rKgH1giGVtkI9fZf/GMZuHba40tMomJYKI34cMAQACxDPKIxjbcia07xYVn XBtbsY3eECOUmz+jTUygD1v+xtHfJXRyAjGLEfC1tEk6UwUggFgGaUTjaoSh18245p65sYxts2Ep tv+h5ebvaOPRyBH9BWn26TueljihwY3/ROR2BgI5mKxTkwACiGUQRTS2IU9icjP6ShJuHPUzM9Kw 53+0Yvs7jojGVnz/QOtnkzTNSETk4yuiKToaCyCAWAZpRLMyYK4L48CRk5GXDmGbrWJFMptQIwxX RH/D0ij7RcTgBqGIIiUxUAwAAohlkBTdjFgGSXCt9MS3AJCLAfdCg39Y6udvBBpiyBGNnqN/M5Cx NIjIyPtPi4AHCKCBzNnEbLvhQBsYQY5gXiIjGnkwAxbRP4jIzegDKD+xNMhIWhZEz4jFBgACiGWA cjUDA/612+gL9LGt20ZfI8aJZaAEPaLRG2LYGmFfkBLCd7RhUeTZpn94xsLpGonEAoAAYhng4hvf In18i/ORI5tQRGOro78iRfJnLF2rb1giGtcyoH/k9nvpDQACiGWAim9sAybIuRrflhvkyIbV49gi +i+BHP0ZR2R/wzPR8XeoRjQIAAQQywAV3+h1NSuWxhhyZPMhYV604hvWvUKPaAYcOforloj+jGVk DH2RwB8CExCDOqJBACCAWAYgV2OLaGx7obFFNCyykVd9sqM1xtAjGlc9/QUtor/iiei/OAZNhkxE gwBAALEMYK5GLsKxNcrQi3A+tOKbE23ABHkyg5SRMXxDoIRWgwyJSIYBgABiGaBcjathxomnYYbc +oYNmsAGXxjRWsd/iBg0wdcY+zPcIhoEAAJoIIpx9Mhmw1Ffo2/B4WHAvmifEctYN/KZJN/RBk++ MmBfhIBrBmtYRDQIAAQQC52KcPRuFzMRo2WEJjZY0bpY/3DU07giGn1CA31SA996siEJAAKIaQDH wYnZBE9omS+uhYE/0CIbPYLRN8uh18/Im/OGRUSDAEAAMQ1QEU4osnGdM4Y8DIq+wgT97DDkXP2N AXMyA9uOyL9oEc0wXCIaBAACiImOdjGiFeOE1nmjRzItIvrXcBgsIRYABBATjSMXPZLxrUJBj3D0 M0GZSSy6v+EouondVTGsIhoEAAKIXg00XHU2rgjHdQ4o8qkG6Iv3f6BFMLbGGL7trsOm1Y0LAAQQ vYdLmXAMquA6yhn9CAv0Lhb6nmZ8rW5iN7IPy4gGAYAAoucIGq41ZtgOasd2Vgly6xh5Xho9onEN mmDrYlFjPnrIAIAAYqFxBCPzmQgU4+i5GVuORh4KRa+j8S0++IFWhP8daRENAgABxELjHE3sZnn0 3Izt9CFsixDwLSnCtpgfffEBUbsfhwsACCB6NNAYSSzC0c/lZGBAveHmN5YBE2wrTnAt5sd3NMWw jnCAAGKhUQRjK8Lx7ddiJVBXY+tPf2cgbtcGMcdSDPtcDQIAAcRCpxzNSCCisV2ogu2MMWwTHOiH zBB7lNSIytUgABBAtB5UwRXR2CIbV78aeQDlD9oACnp/Gj2i8e2y/DeScjUIAAQQEw0iGFsRjiui kUfNkCMevc5G7m5hGzH7zoB/ypKskwqGGwAIICYa52hCh7cjX5mE7axubDfdoI+aYTtohpjzRxhG UkSDAEAA0aoYJ3RkFfo4OLarkrANqGA7Tgrboa4UHeg6XAFAADFROYJxRTiuiCYmwhlx5HD0awuR I/gPkRE9oiIcIIBYaJSjiT0NGN+td8i7LtEvPMN1RMVfPKNjI7b4hgGAAKJH14sJR3cL25QmejcM tpAQ331Y2M4qwXWp+IgsvmEAIIBY6BDR+E4GJpSz0c1Bv8ua4CUoDMRvlR32ACCAWKgYwdjaA/g2 2KP3r7FNbzJCi2T0e6uZsND4zvkeBUAAEEC0rLOx9bPxDapgu7AUZg4zmjgLFjFirkIc0QAggOhV Z+OKcFyXjbNgiWxcs2S47qwezeloACCA6DXFSUyEM6O1wpnR3IktkgldUo7rQlLGkVhvAwQQC5Uj F1v3C1+EM+OIIPSFC8RUAYQuO0V254hsoAEEED3ns5lIxMg5+x+BCEcvJZAjmmm0KIcAgACiRQMN V0STEuHodS2uA/CwFe24ivERnatBACCAaNnPZsBTrOOLXEYsRTC+Fv1oI41IABBA9JrPZsQxIIJP DN+NAdgintSIHnGRDxBAA7Gxj9hIJiXCsUU0PrNHJAAIIBYqRiahXM2Epe7GFxmMDMTdDcJERASP AiAACCBarFRhJJCrCeVmBgbc+7pxNfoYcbS+RyMaCQAEEK3mswkV16TmcAYii3tGAqXNiAYAAUSP Bhq2bhcjA3XrVMbRSCUMAAKIHmvQiO1nUzplSWjO+v9Ij2yAAGKiYgQTU5TjaljhmqNmJBChxJzC PwqgACCA6L26FNc8NLHTkriWJeG6U2M0RyMBgACiRQONlIhmxlOUM+DIxcTemjOa29EAQADRapMA sYMhhHI2oRvvkO+9wrfbg+Dd0iMBAAQQE5UiF9/ABzmjXoSK7r9ERDS2DQEjGgAEELUbaAx4inDk mStScje+CCdmCfGI3RSADgACiIlGEY1r6w+hnE1snU1orTiujXsjOsIBAojaDTRCdTW2hYLo3S8G BsxNAcTkavQ7LAnddDfiAEAAMdEgogktQ2LBU5zj6nYRW4T/xdMiH/EAIIBo0RpnwtHlwhbRTAS6 XrhulccV6fhuoh3xxThAADFRGLGEcjUTA+VrvYm5fvgfgTp7tO4GAoAAokWdjVz/EhvR2LpdxNwq /xdHxI/W01gAQABRq59N7KlI2JYREdPlwjVi9pfACBrDaIQjAEAA0arrRag1Tkofm5hIx9e3Hs3V UAAQQLRojeM72I6YCGcg0M8mNcJHczcUAAQQExVzMzHj4dgimplAMY5tFA1bxI/mZgIAIICoPTbO xIB/5yYxy34ZcORuXI02Ym6VHwVAABBALFSMaPTGGb76moWB8CoVRiIjGFfrfRSgAYAAolYDjVD/ mtCo2eh+LDoAgABionJEEzqMltAwKbYIJ7S6FJe6UYAGAAKI2q1x9CKchUD/mtiinJGIxMYwGsn4 AUAAMZEZsbhyGrGb7gltmGdgwH2uGq715qPbfQgAgACitOtFbH2N7TwUfJvvSNkfRsqCxREd8QAB RM2JEEINMxYSRtDwJShi15+P5m40ABBA1GqgEdM4Y2EgfpiUlBk1QjtNRnM1FAAEEBOFuZmRiMYZ oQtfmIiMaFKO6BjN2VgAQABRq5+N6/RhUiIaX+OMiQH/wghcuXsUIAGAAKJGaxwWsMRe9EJoAgRf ziYnwkeLdCgACCBqtcaZ8PStcd3AR0xxS+y6NkLbiUbrbSAACCBKx8bJ7V/jGj1jIKI1jusYLSY8 I3KjRToQAAQQEwW5GV+RSug0I2JzHjHFODOBhhoDkaNxwx4ABBC5rXF8OZuFggYautnEJi5SV76M SAAQQJTU2aQeRMtMQkQTagyS2vUarbOBACCAKGmN4+t2EXPtIrF1KyORuZuUSB+RACCAqJGzGRlw ryDF1Tgj5kQjYo/qwNc4Y2IYBXAAEEBMJOZmYjcDEFNX41uOxIhn8IbY0TRC89sjLqcDBBA162xc kyCEGlCEIphQY42RgfAJTAyjxTkDA0AAkdv1YmAgbsM9rsYZrqFRYqYn8Z2pxkig7z6iAUAA0WIE DdeyYVK7RoxE5nBiD8Ib8QAggMjpZxNzGhIxG+6JjQhCx1kzjuZk4gBAAFG6eIGY81MIHXDHQAU3 ENOXHvEJACCAmEjMWYT6vsx4ukZMDOQXt4wEIpgcP4w4ABBATBTkImLOBidmupEYgG0bECn7t0Y3 DQABQABRc8EhrpYxEwPh88TJBf9xJIbRCMcCAAKIGgsOGUhsKZNarBJ7YsLo5nsCACCAqLXgkIGE CCVmtIxQLh7dg00GAAggWo0dU6NB9H8QumlIA4AAGoiJAnqcIcpIIn9EAIAAYqJThNIKkDqCNqJz N0AADdQU4H8Kcisx3T1Cs2AjEgAEEKWLF2gZyfgGcyg92npERjxAAFE6xclAYteKkQK7iLmtl5yd JyMGAAQQOYsXCNWZxK4HJ6foxrXzBNeNu6RsShj2ACCAqLGUGN/IGTXWcBMb0WxoGNed2iN2+hMg gCiZ4mRiwH8PCLHj44wkNMawRTQoYtnRMLERPqJyN0AAMZGYmxkYCJ9giKsYJbUrhK0IR7YHV0Rz QDGMjx7hI/aqZYAAInWKk5hTDHE1kJjJCGRsCQxbroZFMCcSmwMpl4/mbiAACCBi93oRqjfRG0ms SGKkLDZkxNJFw5a4WLHkbFBE/0CiYRgk9xuK/zAgTjFmgtrDSOeBoAEDAAHEREI/F1+uZsWBsW0Q IHaak9B9I2xoRTcnFjyau5EAQACxEJmjiY1o9IYRK4Hcja+6+I/FDTA7/2Ipxn9CI5gLLWeDxH9B 8YjO3QABxERiMY7eImZFqz+xdX9w5Wxi6m1cQ6LIVQd6nY2es9FzN+tIzd0AAcRCQkTjan2TEtGk jGRhy90w+/9Bzf8Lzam4cjcnWt0Ny90sIzF3AwQQCwkDKLi25rIRKMJxdcGIzUXEdMFgkf0LGuE/ kHI3cnH+E604hyWcf1gS17CLdIAAIraBhi+gCeVsYg6lZSTSDUxEDKxw4GmoYWusjZh+N0AAMRFZ hOOrM1mxNNKIOUeFlPoRX+mCbC8Hlvobuf/NRkRkD9u6GyCAmEgIaFwDKfha4vi6OsRGOCOB4hy9 3YCtsYacCHCVOsM+dwMEEBMJ9TUjnlEzbP1qQicakgMIdQEJRTi+onzYr2wBCCAmCuprFhwjZqxE RjQ5OzoIFedsWMbIOXAMoRKK8GGXuwECiNiJECYG4uaSSa2ryd3CQ+zkCL7czcqA+xSnYQkAAoiJ hNxE7EE5LFTM0cSO6mFrnXMQmbsJtcqHTeQDBBATiQHLTGSdTezBduRENK6uGDOWxiI7lpY5vtw9 rBcnAgQQE4mDKaQcREvJnmxyczczA/apT/QpUEL19rBcugQQQOT2swmdnULM3DW1czcTju4gO5FF +bBvqAEEEKGuF67GGaHD42mZq/FVMUxow7j4Wue4VrIM2wkSgAAiJ2cTm6tpOVCBa3M+oZY5ckRj G1FjoYPbBwwABBATkbkGPffgu2OTnsdAYyt9mInM3bgGWJgZhumlcgABRGzOZsJTnBNbfNMqdzPi aJ2TsihxRIyXAwQQE4GiEV8/m5hD3umVO4hdboytKEdf2DBsG2oAAcREQn1I7FnfxORoRhpGNDGj atha5GwMhLcMDencDRBATEQEIgMD9uuciI10WgYSoWXO2Lph7Gi5moNAq3zYNNQAAoiJzJyD79jn gbi2gdjczYYjorHtIKF3VURzABBAhGa9CG1yJ/WM74HI3bjWmXMwYN82NGyLcoAAYiIQcAwkRDAp e7kYaBjphBpquCJ82G8GBAggUvd64cvhgyWiSe2GsRNRlA+L4hwggAi1xhlIjODBkAPwraxhJRDp hNa607pKoikACCAWIutCbAHJQEI3i579bQYG/DN1bAz4t/nCIpxQi3zILTUGCCByNuMzMJB3wCy9 IprYhhobWkRjy9mERtSGFAAIIHLvCGFgIHy64UAW47gaasx4GmvYTm0gNFY+pCIeIICI6XrRMgfS s6HGxIB7YwO2RhqhWbAhl8MBAoiS88bxNegGAyClocaGhc063IpygAAarvdeEbvVGF/OZiUyoodM xAMEEDWPoB5MEY0vdxNzyhIbA/HXQA8ZABBAw/lGO2Lu+Cb1WC1cBwkMCQAQQMP9+kJCK2RZGUjb iTqkG2gAAcQ0zHM1oYYaCxE5G71VPmSvlgIIoJGQsxkYSD8ThlBRPiRnwAACiIUCvcTe3UEN8ynp sxPaiYq+rxzbvjVmPEX5kBk2BQgglkHopv9kqsXWJfqPI2cTaqjhivAh3dcGCCAWMgMfX67+T8fS ghFNPSOROZzQ9mNiW+TIuXvQ53KAAGIhEOi0Kp4ZibSTWPsZ8ZhNym5UXFuPCc1tD4niHCCAWEjM cf8JsLHJkWo+PpqBiNyLL4cTc/YqKxpNqM4eMvU2QACxkBEh6JH7n0g9pEQ0vgvZ/hOoo3EFPjFD qPhyODWPCxkQABBALGTU1bhyNK7IRxZnJCGi8SUm5Igl9ogt5ERCyhZkYvabD4niHCCAWIiIZFwR 8A+PHDm36BEyG18dTEyXDNfeNXxFOTFXTwyZohwggFhIKGL/kxjx+IpxfFXCPwJm4hrBYiKyD47t JgRmBuIPGcC3YXFQRzhAALHgaSn/xxMZ6JjYCCfUPcJmB7bczYQWwUx46nJiWubYNioSe8TXkKm3 AQKIhQo5+h+eyPlPRhGOy1zkxPIPKYLRE8F/EopzfDtTse09x7dOftAX4wABxEJiRMACHnai7z8i I/w/AbMZcBTjf9HMRI/U/1hy7H8y+t249prjytVDsjUOEEAsREQyA57c9hdPxP8noQj/jydRoedu BrSciByJ2E4XxteKxzaqhuuCOHxnug2JuhsggAi1xvEVr39JiHBSIx3Z/D94IhtXRGPL3bhuJ8B3 ZgwTA3HXPQ6JBhpAALHgaZz9x9Fo+osDI0fQfzyNNUYCfex/eKqL/0iRzUygW4UvdzPgaagx4elu 4ep2DQkAEEDEdL3+4ym+/+Bg/8VSlOM7rf8/nvYBcu7+j6XORo6wf1jkGIjsc+PafjzkW+EwABBA LCQMcODK2X/QIpqYopzYvje6ff9xdLWY0OxEj3BiI56UHapDbqUKQAAR00D7jydXI0c0rgjHlbuJ KUmwVRXYIvsPUuT8R4pwfHYSc8k6MXvPh0y9DRBAuBpojDgiHFtE/8ES8X9xDLaQEuHo9v5BimxG NDYTVA0zUkT/YyC8EY+RhIgfsjkaBgACiFAxzoAnZyNH+m8cEf4XS+QxEjkOj6uh9h9LF4oZSQ0z ATsJAUYCLW58+gZ1axwggPANl+LL2YRy9x8CxTmhOpsBSxcMOfFgi2xmHPU2odIEX3+ZAU+re8g1 0AACiJzWOHqO/o0nZ+OqtxmIHGDBNXiD3rVCvskPOXczkJGzhy0ACCBiG2gwjK8IR490XN0wbAsM /hPogv1Fq7cZ0RprLFA5FhJKElzdPny9A3wl0aAHAAGEr85mxNNCRo/oX2iRjq8oJ2XoFFuJAotk ZqTG2R+knP0PT3HOQGSEEZMAGIZa5AMEEL7W+H8CgyroRTnsclNCEU7sXql/WFrjyJGNnLPRr1z8 h6M0wRUp/8nAQy53AwQQKbNe/3AU4b/Q6u5fRLbK8Y2eEepv/0caLoWNcqEnLkJDtfjm6/8zEJ7B G3IRDhBAxDbQsEX4byy5+hdaAviD1ppmJrI7RKhvjxwpyHU2MTmbmBz9D0ukD/mIBwggQg00Rix9 bfSAxxXhv7FE+H+01jQjkWPjyAnsL47IZiUiwglF9D8G4ufohxwACCBCDTR8xSquiEaPcPQinZlA rsC2gAFbzmZCKs7/kBDR//GMw2Nrm5C7MGPQAYAAIrXORq8/sUX0TxwR/hdPC5mYnI1ckiAnRmak YhxXhDMQkbNxRfRfPDl9SAGAACJlR8h/HK3j31gi+ieOyEYOOEYiAx9btYFcBcAiG5c9/7D07/8z EDc0+xfHcO3/oZjDAQKI1KXE//BE9k8G1AvJf+GJcPSVJoQCHrkk+YOWWJiR6mvk7tk/Ag0pfPP0 2GbbiJ22HbSRDhBAxDbQGHCMoqG3yGGRje0m+t8MqLsi0achiZ1S/Y0lsn9j6er9JaGBRmhhxt/h 0FgDCCBSi3HkhhOunP0DT4Sj524GAkUrrkmXv2iRTcy4PDGNTkIYfdp2SA2dAgQQKfuzcUUCep2N LaLRczczWmT/YyBuCdQfpO4XvpxNaPMCroj+g4MeFjkbIICIqbMJjZH/xlFv/0DCHFB5NqShTeSV H7gGMnBNqf5F0vuHhJxNTLvgDxFm/iNx3HxQAIAAIvWYDVy5+xeOSP6BlsuRj5tCXt9FzDj8XwKR TWz9Skz3DtdyK0KrZwc1AAggcjbjo6/6RM/doMj9joQ5kXI3+j0cyFOd/wh0gfBF9l8G/AsmSI3k PwQS0ZBriYMAQAARW2cTU5Rjy93oEY5+kBwj0oTGXwb8u07Qly3DIhtf7sMW6dhG53ANAROarh1S dTZAAJFz8gJyFwy5JfwLS0RzIEU4+tUMzEhFOCOBiMYW6chz2YT6w8iLEAnl7N8MhBdRDskxcoAA IqUYR58UYcLS30aOcOTI/kYgspkIDE1i22rEgJSzcQ1t4pqhwrdwEtdSK2w7XoZU1wsggMhpoDHi aDHjiuxvDJjXISI30v4jDbL8JaI4/4uUs/FNWvzHUdwSs57uN4GhXnyjc4MWAAQQC5kRzYBlnPw3 gQhHvnwFva/9D6ne/stAeEswcjH+l8BkBfrUKr6G2W889TWhEblBDwACiJwTDpHrWEYcDTVYY+w7 A/7rlJjQ3EEokv+hTaQQow59hwi2IhxfrkYfb//HMESXJQEEECXFOLb6DxbZrEgRzoYnsplxJBxy ulD/iGh9MxKYzEFfZfObiLH2IRPhAAFE7tml2HL3H6Shy58MmHdoYTvHGzm3MaNNtBAznUjq6pL/ BBpl2CKcmG7XkIhwgACipBj/j1YsMiIFHjNS7sZ1njf6wArMLX9IKC4Jnf2CbSkUsQ0zQnX2kAMA AUSNI6j/42iswXI3tgPc0SObASlC0FejMjDgP8Ef1yoX9KKeESln/2EgvGiSlKVOQwIABBClxTgD Ws6BBSSuG27Rj4lEb5EzIUXIPwb8R0gzYIn8/3ginxGtGMdWfOPqduHaxjSkIhwggCg9bxxbQw0W KbBARD8LFP1MUCYsRTnyXmz0w22YkOp3Jjy5Hd9MGq76mpScPaQGVEAAIIAoLcZxjZkj525CRzwj RzYrA/Zjr9BLiv9IgzHYrk/EV3fjWwL9i8icPSTrbIAAosZNAv+xDIygN9bwHRWJXpSzoJnHiCXB MCDlbFx3d6AnQAakyP5NRGQTGkwZchEOEEDUKMZx9bthRTksQn7giHTkyEavu/8zYF7NhNzdY2LA f8/1fyy9BUK5+hcD7n3mQzrCAQKIWjmbEUfLHNcJgtgimxEpElkYUDfJMyP125EnThgZME8QRl79 gl5v44poYta6D9niGwYAAoiaF8LgK85/MeA+2xu93kWuj5HrbBYG1O26sMhmQRtrZ8LSU/iLI7J/ 4sjdxDbOhhQACCAWKkY0+kn+yMU5ct8bWy7HFlGsSMU7M1JdzYgW2cwM2Jc7IUc2LBHiytXYlj0T Wss25ABAAFE7ZzMS6I7hOxSWGW2QhQEt8pBzOvJACROWfjvyQM0/pP41toWRuIrwPwRy9JCLcIAA osW9XviKc2zXNeA6/ZcRLcKRFygin5qEvIsTfVTuP5b6Gltk/8RSjA+rIhwEAAKIhQYRjS93Y2uw Ycvh2A6aQy7S0Y+jZsFTjP9FKsJxrYLFtZlh2BThIAAQQLTK2bha58jdMWKOembCMkyK7boI9MYe I1p9/RepzYC+th1bRP/BMUY/ZItwEAAIIFpez/gfy+DIHzz1N76IR45EXIfJsmDJ2cgjesgNMuQc /YOExtmQBgABxELDiMZWnGOLcFwXsuCLeCYciQG9C/cPLVcjF93ficjZw6YIBwGAAKJ1zsY2M8aI FAGMBHI4tkj/j6d0IDZXf0eicTXOhvQmPmwAIIBofcsuesAgF+mwCPtFRASzYOEzMGA/Exxbrv6F JUd/RyvO8Y2cMQyHYhwggOh1pTKu7thvpD40sUU6svh/BswTgpEbhX/QGmbf8RThv4bbWDg6AAgg FjpFNL7uGPpwKqEinQVLsY4tUaH3q9G3JP1Aa5zhqquHDQAIIHrmbFwrW/BdqIZtWBX9krW/DJjb f3FtWviOJbKJmfwYFpEOEEAsdLbvP4H6G9/d1rju2sJ2YfkfPDkaW67GV4QP+YYZDAAEEAudI5pQ cc5EIIcz42l9MyMNpf4hkKu/I+VqbEX4sMvVIAAQQAORs5Fby0xYhlOJ7Y6hD4sij5z9RmqQIeNv ePrX+JYLD4sIBwgglgGwk9BiB2xFOq67tpATDmzBwz+0yP6GhL+jRTYxY+HDBgAEEMsA2o1tOPUv CZGNPHjyF0dk44vonwz415oNq1wNAgABxDKAEY2t/mYgYkiVCUtk/8GTs7+iRTi+XP1/uOZqEAAI IOYBth/flUmMWGj0XSHo+7fQB1BgEY0rwgktVBhWEQ4QQCwDbD+x89/YpjmRR8nYkXI2rOuFXmeT UlczDMecDRBALIPEHYTqb2xbf/6jdbNYsPSzf4z0RhkyAAgglkES0fjq799okc2INjADijQ2tH42 rEjHNp2J3tX6O5wbZcgAIIAGU85GX+vNgDbggm0DACxS2dD62diGS3+ijZSNiEYZMgAIIJZB5BZi 6m9skQ0rspEXGiKL/0LrauFqgQ/rXA0CAAHEMgjdhK/+ZsAR2Sw4umPYtuSSc3XksAAAAcQyCCMa V/2NDpC332JbaIi+DxvX+DfDcG6BIwOAABqsOZuRQGSjbw/GtSQJ22nGw3JhAjEAIIBYBrHbcE2H /kFryDEzYL+GAt+h8SOiq4UOAAKIZRBHNLbLWdFv/kNej45tZA3b6Yf/R1KjDBkABBDjEHEfttE0 9L43rpMXiDnickRENkAAMQ4RN2IbH0ePZHzHbPxnwH9w7YgAAAHEMkTc+R9Haxw9IWDTg+/U/xET 0SAAEECMQ9CdjDhyPAMD9muT8R1nNaIiGyCAGIeoexnxJAIGHBHOMJIjGgQAAohxiLuZWPeP6EiG AYAAYhxBbh+xkQwDAAHEOAL8MOIjGQYAAmgUjSAAEECjaAQBgAAaRSMIAATQKBpBACCARtEIAgAB BgDEbnGsWq9oFwAAAABJRU5ErkJggg=="/>
+ </switch>
+ <g>
+ <path d="M170.909,222.838c-7.502-0.577-13.273-0.649-18.106-0.216c-4.906,0.216-7.792,0.65-10.315,2.453 c-2.742,1.73-4.544,4.472-5.41,8.223c-3.751,2.597-7.72,5.339-12.191,8.513c-4.688,2.958-10.099,6.564-14.283,9.954 c-4.256,3.174-8.656,6.493-10.46,9.955c-1.875,3.536-2.092,6.924-0.649,10.749c-2.958,3.391-4.617,7.069-5.77,11.036 c-1.083,3.823,0.144,6.133-0.505,12.19c-0.866,6.061-2.814,15.87-4.185,23.877c-1.443,7.721-4.328,17.387-4.184,22.363 c0,4.688,1.443,6.925,4.329,6.42c-3.319,1.515-5.772,5.916-7.646,13.995c-2.093,7.862-4.113,22.073-3.319,33.471 c0.866,11.396,2.958,22.36,8.513,33.978c5.554,11.179,18.323,26.688,23.516,33.974c4.761,7.143,6.564,10.244,5.411,9.306 c-0.578-7.141-1.948-12.985-3.824-18.104c-2.38-5.268-6.708-6.637-8.006-12.192c-1.01-5.77,1.01-12.768,1.37-20.702 c0.073-8.008-0.359-16.88-1.009-26.907c3.535,10.964,6.059,19.836,7.862,27.196c1.516,7.14,1.371,8.799,2.093,16.374 c0.577,7.503,1.299,17.096,1.875,28.781c5.482-6.925,9.738-15.147,12.767-25.464c2.958-10.459,6.998-22.218,5.194-36.068 c-2.164-14.138-7.574-29.503-17.097-47.248c0.073-1.153-0.288-2.598-1.371-4.039c-1.153-1.588-2.74-3.174-5.049-5.049 c1.227-3.679,1.66-8.513,1.587-14.5c-0.216-6.421-2.524-14.428-2.452-21.785c0.073-7.357,2.886-14.933,2.597-21.063 c-0.65-6.133-2.597-11.254-6.132-15.365c4.545-3.608,8.151-6.997,10.82-10.461c2.453-3.606,1.949-6.563,4.906-9.954 c2.958-3.751,9.089-7.43,12.551-10.748c3.102-3.246,5.337-6.132,6.419-8.656c5.483,1.298,10.749,1.658,15.511,1.081 c4.833-0.649,9.16-2.236,13.272-4.761C169.97,229.908,170.404,226.373,170.909,222.838z" i:knockout="Off"/>
+ <path d="M170.909,222.838 c-7.502-0.577-13.273-0.649-18.106-0.216c-4.906,0.216-7.792,0.65-10.315,2.453c-2.742,1.73-4.544,4.472-5.41,8.223 c-3.751,2.597-7.72,5.339-12.191,8.513c-4.688,2.958-10.099,6.564-14.283,9.954c-4.256,3.174-8.656,6.493-10.46,9.955 c-1.875,3.536-2.092,6.924-0.649,10.749c-2.958,3.391-4.617,7.069-5.77,11.036c-1.083,3.823,0.144,6.133-0.505,12.19 c-0.866,6.061-2.814,15.87-4.185,23.877c-1.443,7.721-4.328,17.387-4.184,22.363c0,4.688,1.443,6.925,4.329,6.42 c-3.319,1.515-5.772,5.916-7.646,13.995c-2.093,7.862-4.113,22.073-3.319,33.471c0.866,11.396,2.958,22.36,8.513,33.978 c5.554,11.179,18.323,26.688,23.516,33.974c4.761,7.143,6.564,10.244,5.411,9.306c-0.578-7.141-1.948-12.985-3.824-18.104 c-2.38-5.268-6.708-6.637-8.006-12.192c-1.01-5.77,1.01-12.768,1.37-20.702c0.073-8.008-0.359-16.88-1.009-26.907 c3.535,10.964,6.059,19.836,7.862,27.196c1.516,7.14,1.371,8.799,2.093,16.374c0.577,7.503,1.299,17.096,1.875,28.781 c5.482-6.925,9.738-15.147,12.767-25.464c2.958-10.459,6.998-22.218,5.194-36.068c-2.164-14.138-7.574-29.503-17.097-47.248 c0.073-1.153-0.288-2.598-1.371-4.039c-1.153-1.588-2.74-3.174-5.049-5.049c1.227-3.679,1.66-8.513,1.587-14.5 c-0.216-6.421-2.524-14.428-2.452-21.785c0.073-7.357,2.886-14.933,2.597-21.063c-0.65-6.133-2.597-11.254-6.132-15.365 c4.545-3.608,8.151-6.997,10.82-10.461c2.453-3.606,1.949-6.563,4.906-9.954c2.958-3.751,9.089-7.43,12.551-10.748 c3.102-3.246,5.337-6.132,6.419-8.656c5.483,1.298,10.749,1.658,15.511,1.081c4.833-0.649,9.16-2.236,13.272-4.761 C169.97,229.908,170.404,226.373,170.909,222.838z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="144.3867" cy="226.3911" fx="144.3867" fy="226.3911" gradientUnits="userSpaceOnUse" id="XMLID_40_" r="22.3021">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFDAD6"/>
+ <stop offset="0.2885" style="stop-color:#FF7464"/>
+ <stop offset="0.3876" style="stop-color:#FF341C"/>
+ <stop offset="0.4333" style="stop-color:#FF1B00"/>
+ <stop offset="0.4976" style="stop-color:#EF1600"/>
+ <stop offset="0.7111" style="stop-color:#BF0600"/>
+ <stop offset="0.7619" style="stop-color:#B60600"/>
+ <stop offset="0.846" style="stop-color:#9C0600"/>
+ <stop offset="0.9526" style="stop-color:#740600"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF1B00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF1B00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M168.816,224.208c-5.482-0.578-10.458-0.578-14.643,0 c-4.328,0.433-8.44,1.731-10.964,3.318c-2.67,1.731-4.185,3.751-4.545,6.637l0.866,1.226c2.092,0.505,4.473,0.938,7.718,1.01 c3.103-0.072,7.503,0.145,10.964-0.505c3.392-0.648,6.421-1.803,9.379-3.462C167.951,229.691,168.384,226.95,168.816,224.208z " fill="url(#XMLID_40_)" i:knockout="Off"/>
+ <radialGradient cx="107.7393" cy="244.4512" fx="107.7393" fy="244.4512" gradientUnits="userSpaceOnUse" id="XMLID_41_" r="37.8806">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFDAD6"/>
+ <stop offset="0.2885" style="stop-color:#FF7464"/>
+ <stop offset="0.3876" style="stop-color:#FF341C"/>
+ <stop offset="0.4333" style="stop-color:#FF1B00"/>
+ <stop offset="0.4976" style="stop-color:#EF1600"/>
+ <stop offset="0.7111" style="stop-color:#BF0600"/>
+ <stop offset="0.7619" style="stop-color:#B60600"/>
+ <stop offset="0.846" style="stop-color:#9C0600"/>
+ <stop offset="0.9526" style="stop-color:#740600"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF1B00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF1B00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M137.438,236.111c-2.091,0.434-5.122,2.38-9.377,5.049 c-4.4,2.814-11.687,7.575-16.015,11.47c-4.328,3.246-8.295,6.564-9.954,9.955c-1.948,3.462-2.308,6.853-1.082,10.459 c1.226,0.217,2.164,0.864,2.813,1.369c0.649,0.508,0.793,1.154,0.721,1.949c4.977-4.474,8.296-8.152,10.748-11.326 c2.165-3.39,0.216-4.977,2.814-7.862c2.597-3.102,8.295-5.988,12.047-9.45c3.606-3.391,6.348-6.925,9.088-10.604 C138.664,236.833,138.086,236.472,137.438,236.111z" fill="url(#XMLID_41_)" i:knockout="Off"/>
+ <radialGradient cx="104.0293" cy="371.1406" fx="104.0293" fy="371.1406" gradientUnits="userSpaceOnUse" id="XMLID_42_" r="78.7827">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFDAD6"/>
+ <stop offset="0.2885" style="stop-color:#FF7464"/>
+ <stop offset="0.3876" style="stop-color:#FF341C"/>
+ <stop offset="0.4333" style="stop-color:#FF1B00"/>
+ <stop offset="0.4976" style="stop-color:#EF1600"/>
+ <stop offset="0.7111" style="stop-color:#BF0600"/>
+ <stop offset="0.7619" style="stop-color:#B60600"/>
+ <stop offset="0.846" style="stop-color:#9C0600"/>
+ <stop offset="0.9526" style="stop-color:#740600"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF1B00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF1B00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M119.638,458.251c1.371-4.833,3.392-10.604,5.266-17.6 c1.948-7.287,5.556-16.519,6.637-24.094c0.865-7.719,0.648-12.408-1.443-20.703c-2.308-8.296-9.017-21.281-12.335-28.639 c-3.318-7.717-5.771-12.841-8.224-16.159c-3.029-3.389-6.275-3.533-8.367-3.174c-2.02,0.073-3.606,1.732-3.679,5.266 c-0.433,3.751,0.36,8.875,2.091,16.159c1.587,6.925,5.483,16.592,8.081,25.104c2.452,8.223,5.121,16.951,6.924,24.237 c1.443,7.069,2.598,11.326,3.174,18.321c0.577,6.998,0.577,14.429,0.289,23.157 C118.557,459.551,119.062,458.901,119.638,458.251z" fill="url(#XMLID_42_)" i:knockout="Off"/>
+ <radialGradient cx="86.6387" cy="372.2666" fx="86.6387" fy="372.2666" gradientUnits="userSpaceOnUse" id="XMLID_43_" r="80.2841">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFDAD6"/>
+ <stop offset="0.2885" style="stop-color:#FF7464"/>
+ <stop offset="0.3876" style="stop-color:#FF341C"/>
+ <stop offset="0.4333" style="stop-color:#FF1B00"/>
+ <stop offset="0.4976" style="stop-color:#EF1600"/>
+ <stop offset="0.7111" style="stop-color:#BF0600"/>
+ <stop offset="0.7619" style="stop-color:#B60600"/>
+ <stop offset="0.846" style="stop-color:#9C0600"/>
+ <stop offset="0.9526" style="stop-color:#740600"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF1B00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF1B00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M113.056,463.557c-2.092-4.617-4.112-8.513-6.059-11.687 c-2.164-3.246-4.833-4.039-5.772-7.646c-0.937-4.112,0.289-9.522,0.65-15.365c0.144-5.844,0.433-12.479,0.577-19.117 c0-6.853-0.072-13.705-0.217-21.135c-1.875-5.41-3.39-10.46-4.544-15.148c-1.298-4.833-2.309-9.306-2.741-13.418 c-0.505-4.184-0.722-8.007-0.361-11.469c-1.731-0.794-3.318-0.217-5.05,1.73c-1.875,1.731-3.967,3.318-5.41,9.234 c-1.803,5.916-3.39,17.457-3.679,25.752c-0.361,8.007,0.289,14.5,1.947,22.507c1.515,7.79,4.689,17.312,7.863,24.382 c3.029,6.708,6.564,11.759,10.604,17.096C104.688,454.394,108.655,459.155,113.056,463.557z" fill="url(#XMLID_43_)" i:knockout="Off"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_45_" opacity="0.8" transform="matrix(1 0 0 1 0 256)">
+ <foreignObject height="217" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="186" x="0" y="0">
+ <imageReplacement align="center" height="217" opacity="0.8" placementMethod="ratio" refHeight="217" refWidth="186" valign="middle" width="186" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_44_"/>
+ </foreignObject>
+ <image height="217" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_44_" opacity="0.8" width="186" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAADZCAYAAACXbioFAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABYwSURBVHjaYmAYBaNgBACAABpFo2BEAIAA GkWjYEQAgAAaRaNgRACAAGIcDYJRMITS5X9yDQQIoNGEPgqGcoFLdMIHCKDRhD4KBlMCZyQzkRNM 8AABNJrQR8FAJ3BGPGLEJO7/xCR2gAAaTeijYDAkcEY8iZ4BR+L+T0piBwig0YQ+CgY6gaNjXOkS WyL/jyfRowCAAGIZjYNRMAgSOBOOBI+e0P8hJep/ONQwYkvsAAE0mtBHAb0SOa4EzoSW2JmwJHRY wmaC0rBE/g+tFGfEVaIDBNBoQh8F9EjgDFgSMy6MXqojl+Ag/BfNjn9oarEmeIAAGk3oo4BezRTk RM6MlLCZ0WiYGvT2+F8oxtZmZyTUGQUIoNGEPgro0UxBL7WZsWCYOK7SHL1J8x8pkTMSSvAAATSa 0EcBvZopzGiJnAWNjZ7QkRP5XzSx/0jtdUY0PVgBQACNJvRRQGkiJ7aZgpy4sdHIJT4DWrucEak9 /g9HWx4vAAig0YQ+CujVTEFO1MgYvfmCPtLyB635QmwiRynhAQJoNKGPAmqW4kwESnEWPAmdCa2N DRs6xDYiw8BA4kIwgAAaTeijgJqlOCkJHFsiR26Ho4+oYBttwQdQ5AECaDShjwJyS3FsnU1mtMQN Y7MSaK6gN1n+oo2sEJr2JwgAAmg0oY8CapTi2BI5MmbF0gHF1hz5h5aI/zGgThQh80lK9AABNJrQ RwEpiZyY0RRsJTi+pgojjsT9hwExSYTM/ocjwTPgS/AAATSa0EcBvqYKI1KHEF8zhRktcbPiSeDo pTj6ePkfJPwbipHF/qIl8n/ElOgAATSa0EcBMU0VfMOFuBI4K5a2OPqQ4H+0Zgl6Iic2sTMwEFiq CxBAowl9FODqcDLhSOTYOpmsWBI6ciLH10z5i6UkR0/of9CaL3+xtNPxAoAAGt14MQoYSSjFsbXD WYloqjDgaKYQSuR/8CTyfzgSO9ZEDxBAowl9NIET6nBiG00hJpFjK8X/obXF/+JJ2H9I6IgSHFsH CKDRpstoKY6rqYKrFGfF0VRhwdEWR19m+xdHooYl+L9YSnBCQ4sEAUAAjZboo6U4oQ4nMYkc2zQ+ AwntcFxNFFLGzvEmeIAAGk3oI7sUx7UIiwVHIsfWXEEfNmTA0UzBlcBxleLENlOIKtEBAmg0oY92 OBkZsM9ushIoyXF1OJETJyzx/iZhNOUvgRKcpIOLYAAggEYT+miHk5gRFWQ++vpxYtriv3EkcGJH U8gqxZEBQACNJvTRDiehERX0RI5r2BBXW5yYRE7KaApZB40CBNBoQh95TRV8kz+sRDZVCJXi6Imb 3FKc4gQOAwABNJrQR0YiR+9wYluEhSuhs5BYihObyGF6/1Ojs0kIAATQaEIfOU0VZqREjmvYkI0B /9g4eocTWwLHlcixdTiREzkDtUtxZAAQQKMJfeQ0VXCtUWHDUZKjz3DiKsVxJfDfJJbiNEngMAAQ QKMzo8M7kTOjJXJsCZwNR1MF39ET2Erx32Q2VRhonchBACCARhP68G6P45rdZENL4Gx4miroHU70 BP6LQClO7PT9f1oGFEAAjSb04dseZ8bTDmfD0mRBH1XBdhwcvgSOb804rvY4XRI5CAAE0GhCH/qJ nNDYOHozBT2hw9ThG1WBJd5faIn8FwPmGPmgKcWRAUAAjSb04dXpxFeKs2MpyZETOXJ7HHlUBb0U /0VEcwW9FGcYyEQOAgABNJrQh34iZ8aTyJFLb3YsJTm+9vgfHAkcXyInNDZO9wQOAwABNJrQh0en E3lUBVspTkwiRx8bx5bAsSVymPpB1VRBBwABNJrQh3YiR19tiK0UJ5TIcTVVYAn7J4FETmgCaEAT OAwABNBoQh/aiRx56BBbAic3kf8kIZHjW4w1KBI5CAAE0GhCH/qJnBVPImfHkciR2+P/sDRV0BM6 tuHDfwzYd+P/H0wJHAYAAmg0oQ+tRI68dhy5PY7cFudAK8nZkBI5tqn8P1hK8Z9Y2uX4RlYGdSIH AYAAGk3oQzuRo5fiHHhKcmyJ/DeWEvwnliYLtkQ+aNvj2ABAAI0m9KGVyNGbK+xUSuQ/sSRy5DY5 oZGVQZvAYQAggEZXLw7NRI6tqcJBIJEjN1V+EUjk2EryIZvIQQAggEYT+tBK5Mjtbg4cJTmsTQ7r uP4nkMh/4Enk+I6AGzKJHAQAAmi06TL0Ejl6cwVfSY4+04mcyH+QWJKjT+cPmUQOAgABNJrQh2Yi 58AxwoK8bgWWELENHSIndJgYepscW3NlSCZyEAAIoNGmy9BM5BxoJTsrlkSOPj7+k8g2OXJz5f9w SOQgABBAowl9+CRy5OYKrkT+A8/oCq7myqCc6SQVAATQaEIf3okclph/EGiuEJoIGrIJHAYAAmg0 oQ/PRI6rPf6DAXXGE31Kf1gmchAACKDRhD58EjmsRMY2svIDT3MFfR35sEvkIAAQQKMJffgkcvQ2 +Q8G3EOIuKb0h2UiBwGAABpN6MM/kf9AK8nxrVthGI6JHAQAAmg0oQ+vRP4DR2mOq7kyLMbIiQEA ATSa0IdHIv+J1vEcTeRoACCARhP6aCIf8mPkxACAABpN6MM7kWPreBI6Em5YAoAAGk3oo4n8/0iI GIAAGk3oIyeRD8uJIGIBQACNJvTRRD4iAEAAjSb00UQ+IgBAAI0mdOomcvTrDIlJ5BwMqOchMo0m cuoDgAAaTei0TeTox8NxMGDfGYS+aWI0kVMZAATQ6A4j6iVy9MOFKEnk/0YTOXUBQACNJnT6JXJs m5lZCSTyX6OJnDoAIIBGmy60S+SwEpsDT5sc1vFkYMC+nvzHaCKnDgAIoNESnbLRFUY8iRy940ls c2U0kdMAAATQaEInP5FjO7aZDU+bHL0kx9XxHG2u0AAABNBoQqdeIsfWJucgsk3+F63j+WM0kVMX AATQaEInL5Hja64gJ3BOMjqelOwMGk3kOABAAI0mdPITOXJCR0/knGjNFTYcHU/kE7TQz1v5MZrI qQcAAmg0oRNO5Ax4SnI2LM0VTiydT1yJHFebnNjtb6OJnEgAEECjCZ1wYmfCMrqC7ehm9ETOwYB5 CD+hRI7t9Kzfo4mccgAQQKMJHXcCZyDQLmfD0/lEHmHBlsj/MJB2gtZoIqcQAAQQ02gQ4G2X47qN mY3ACAtyIke+Mwi5JMd19gqusxD/jyZy8gFAAI0mdMKJnJSSHFciJzS6gq9Njn6NymgiJwMABNBo Qsc9woJr1hNbImcnkMhxrUQkVJLj2sg8mshJBAABNJrQMdvjpNwbhGvTBHoiJ3Z0ZTSR0wgABNBo QsdeiuNqsuBbv4I8IYQrkf8gMpH/HU3k1AUAAcQ0mshR2ISW2+K6rBZ5dIXURP5rNJHTHgAEEMto IifYLifmmkNcbfJfWBI4MW3yEXOwEL0AQACxjCZyvFePY7u0FrlNjqsk/4OlJP/OgP0ULVwjLKMJ nIoAIIBYRhM51vFyYpsshEZX0BM5saU5w2iThboAIIBGcolOaDUiMVePo08GoQ8hYkvkPxlGyHUq gwkABBDLCEzg2DqfTAyYw4hseEpy9ESObXcQtnY5tnuDRhM5HQBAALGMwESOq+OJb7ycjQH37qB/ OEpyUoYRRxM5jQFAADGN0ETOhKMDyoZWmrPhKMnJSeS/RhP5wAGAABppJTqhDRS4mivYltv+pyCR D/s7gwYbAAgglhGWwAmNsKCX5ujHUpAz6zm6fmUQAIAAYhkBiRxf55OVAft4ORtaQocl8v8MmMtt 8a1fGU3kgwQABBDTCEjk6CU6M4EmC3JiRy/J/+MpydF3B40m8kEEAAJouHdGCbXJWbGU4rhWIuI7 fwUdY5vxHE3kAwgAAohlmCdwYg8cQk/kxBwXh+2QodHltoMUAAQQ0zBN5Lja5dhKc2yJnBktbPAd /IlvM/NoIh8kACCAWIZpIsfWLsc2KYTe6US/cYKBATHmjWuv5y8GzEVao8ttBxkACKDhWqKjt8uZ CDRZ2HAk8n9EdD6xtclHE/kgAwABxDTMEjgDA/Yxc+TSnA1LYseWyInpfOJrroyuKR9EACCAWIZh ImcgcqQFPZETOsaZUCIfXVM+iAFAADENs0ROSueTFa1dTsytE9hO0sLVXGEYbbIMHgAQQMOpM0rM Ln7kBI8+Vo5tDQu20pzQCMvo+pVBCAACiGUYJG58TRZcoyzYRlj+E9EuJ3Yz82giH2QAIICYhkki x9ZkYcZSkrMy4B5GRE7k6CU5tmn90ZJ8CAGAABoOTRdib6LAtxoRvV3+Gy2Rj56/MsQBQAAxDeHE TUyThQVLKY6eyBkYsO/e/0UgkY+W5EMIAATQUG+6kNtkYWLAPSmErdmCbwvcPyQ3jSbyQQoAAohl iCZwbImdmYjSnBlLIv+HY5SF0GH8/0ZL8aEDAAKIaYgmclxnJbLgKM1ZGLAPJaK3y39h6XiOdj6H AQAIoKFaouM6k4WZyNIc11DiLzwjLNgS+GgiHyIAIICYhlgCZ0DrfDIS0TZnwdIuJ5TIsZXkoyMs QxgABBDLEEvkxGyLY8FRksMS+j8imyyjzZVhBAACaCi20fEdDMpCZLscV2n+m4HwIUOjIyxDEAAE EMsQSdzoNPpwIjORiRxXB/Q3A2nT+6OJfIgBgAAaKiU6sWPmLGgY1ygLrtKc0MW1owl8iAKAAGIa AgkcV2JnxpKwsXU+cTVZfhPRXBntfA4TABBAQ6Xpgms9CzOORA6TY0RKmP+ISOSj5yIOUwAQQEyD PIHjK81xJXLkVYnIG5z/oDVbCCXyf6Odz+EDAAKIZZAnckYiEjmhdjmukRZiS/LRBD4MAEAADfYS nZHAKAsLnlEWBhwd0N84SvTR8fJhDAACiGmQJnBkNhMRnVD0JgsDng4ovgQ+msiHKQAIoMFaohM6 6pnS0hy9uYKr8zkKhgkACCCmQZjAie2A4mqXYxtOJNQBHR1KHOYAIIAGa9MF15oWXIkc38rEP0gJ m1ACZxhN5MMTAAQQ0yBL4NhKc2Y8JTozjibLXxylOYw92mQZYQAggAZj04XUIUVsHdB/eEpz9EQ+ 2mQZAQAggJgGUQLH1zZHT9jI0/y4OqB/sZTmuJbejjZZhjkACCCmQZTIiR03Z0ETx9YB/YsjgROa 4h8FwxQABNBgKtEJHfeMjnGV5n+xJG5il92OJvhhCgACiGkQJHBCiR3fSAuhRE7otNvRtSwjBAAE 0GBpuuA7CRe96YJtpOUfWrPlD4F2+WizZYQBgABiGuAETqg0J3Y4EdvkEK4my+g0/wgEAAE0GJou pCRybMOJ2Na0ENMBHW2yjCAAEEBMA5jAcZXmzHhGW5jQOqHU6ICOghEAAAJooJsuhNrnhDqg2GZB 8Y2Xj3ZARygACCCmAUrghEpzXGPmTAyYRz0TKs3/jnZARwFAAA1k0wVfaY5tpIUJzb3oE0R/iUjk DKMd0JEJAAKIaQASOHpiJ2aUBd9Iy18ySvLRRD7CAEAADVTThdBoC7bSHDmT4Evkf0Y7oKMAHQAE EBOdEzg1S/N/JI60jHZARzAACKCBaLqQW5pjO7wfV9t8tDQfBSgAIICY6JjAadk2R2+Xj04OjQIU ABBA9G66UFKaIzdZCHVC/4+W5qMAGQAEEBOdEji2xE6N0vwvESMto6X5KGAACCB6Nl3IGTdHLs1x TRChj7SMluajAAMABBATHRI4LUrzv6MjLaOAFAAQQPRqutCiNCc0MTRamo8COAAIICYaJ3BCpTly IkdfzzJamo8CqgGAAKJH04WYFYr4Ejm2FYqjpfkoIAkABBATDRM4rtKcmBIduTSGJebRWdBRQDYA CCBaN13ISeTYxs1xzYL+YxidBR0FRACAAGKiUQInpjTHtgQXVwcUV7MF3/kso4l9FMABQADRsulC 6LpEdEzsMtzR0nwUkAwAAoiJBgkcW4JnYsA9rEhsB5SUM81HE/soQAEAAUTrEp2JAf9ZLejHyjEw 4F+GS8xoyygYBRgAIIBYaJTIsbXPcTVX0PeBIp9tjt42H93wPArIAgABxESDBE6oE4qtNGcgoW0+ uuF5FJAMAAKIFm10QlP92IYSCSVy9FWK2O4BHS3NRwFOABBATFRM4Ax4mizEdkKJPYxodBZ0FJAE AAKImm10RhJHWbCNtGBb00LohorRnf2jgCAACCAmKiVwBhI6oMSc0YKtRMd1DctoIh8FBAFAAFGz 6UJM+xy9NGdkIO6Mln8Mo9eXjwIKAEAAsVAhgaMndvREzsSAfwaUAa1tTuzO/tHSfBQQDQACiBpt dHyLt5iwlOSE2uajk0OjgOoAIIBYKEzg2EpzfGPn+ErzvwykX6w1mthHAVEAIICo0XRhJDDigt4m Z0Arzf8SwKPXsYwCigFAALFQkMBxjbQwEUjsuNrm+DZUjLbNRwFFACCAKG26oC/FxdZsQU/kuEpz 9FnQ0WW4o4BqACCAWMhM4AwkluiMRLTNCR0rNzo5NArIBgABRI0SnZhmC77SfPTErVFAcwAQQJS2 0QkldkYspTkpU/2jTZZRQBUAEEBMZCZwBjI6oAwMmAeFju4DHQV0AQABRG4bnZhmC67hxH8MxA0n jpbmo4BqACCAWEhM4OQmduQO6D8iE/nozqFRQDUAEEDkNF2w7e4npkQnlMj/Yknko6X5KKAKAAgg FhISOCmjLdiGE3Ed5I9rcohhtDQfBdQCAAFEatOFkYiOKCOO0hzb4q1/DKNntIwCOgCAAGIiMoET 2xllZCBuFpSUDuhoYh8FFAOAACJ11IVQSY5vFvQfA+7Zz9HhxFFAUwAQQCwkJnBcpTkjA+EhxX9o iXu0yTIK6AYAAoiFiASOzsbXXGHEUhr/YyBv+e1oYh8FVAMAAURMiY6tE4oLMxAx0oLOHh1OHAU0 BwABxEJhJxRb55MBLdH+w5HAR0vzUUA3ABBA5LbRCS3cQh9twdcm/4emfhSMAqoDgABiITKB40rw 2AAx0/2jO4dGAV0BQACxUNBsYWDAvgQXPaHjarKMjrSMAroBgAAitjOKj2ZAa4ZgO5QI37g5w2hp PgpoDQACiFBnlNhETuxIy+hViaNgQABAAFHrkNH/WJovuEZacA0njib2UUAzABBA5K5H/49l1IQR R4n+D0/bfBSMAroAgABiIbIjiq8kR2+b/8fTCcXVZBlN9KOApgAggEgp0bE1T5ATOQz8I1CKj3ZA RwHdAUAAsRCZwHFtokDvtP4nouky2gEdBXQHAAHEQiBhM+Bol2Nrm2NL6ITGzEcT+yigCwAIIGKb LsiJH5bAmdCaLcgTRf9HS/BRMJgAQAAx4xDH1yEltIALnT1amo+CAQcAAURKic6ApeTG1XT5P5rI R8FgAgABxIxHDt/CLQYcndP/ePAoGAUDBgACiFBCZ2AgvEoR39g4tlJ8NNGPAroDgABiJFIe22pF RgKJn2E0kY+CwQIAAoiZhIzAiKfdjqsdP7rOfBQMCgAQQIwkqmEkwezRRD4KBg0ACCBGKqtjIFDq j4JRMCAAIIAYaaR+NIGPgkEFAAJoFI2CEQEAAmgUjYIRAQACaBSNghEBAAJoFI2CEQEAAmgUjYIR AQACaBSNghEBAAIMADv8OzMgLbKEAAAAAElFTkSuQmCC"/>
+ </switch>
+ <g>
+ <path clip-rule="evenodd" d="M162.973,263.74 c-10.82,5.408-21.784,12.261-32.894,20.558c-11.325,8.08-20.774,14.933-34.192,28.927 c-13.85,14.14-32.172,31.956-46.888,54.823c-14.933,22.939-37.366,72.641-41.189,80.648 c-3.607,7.141,11.614-22.29,19.26-35.996c7.357-13.85,15.004-30.441,25.464-45.085 c10.388-14.933,23.95-28.782,36.789-42.128c12.913-13.418,26.907-27.483,39.458-37.223 c12.264-9.882,23.229-16.951,33.761-21.496C162.686,265.759,162.829,264.75,162.973,263.74z" fill-rule="evenodd" i:knockout="Off"/>
+ <path d="M162.973,263.74 c-10.82,5.408-21.784,12.261-32.894,20.558c-11.325,8.08-20.774,14.933-34.192,28.927 c-13.85,14.14-32.172,31.956-46.888,54.823c-14.933,22.939-37.366,72.641-41.189,80.648 c-3.607,7.141,11.614-22.29,19.26-35.996c7.357-13.85,15.004-30.441,25.464-45.085 c10.388-14.933,23.95-28.782,36.789-42.128c12.913-13.418,26.907-27.483,39.458-37.223 c12.264-9.882,23.229-16.951,33.761-21.496C162.686,265.759,162.829,264.75,162.973,263.74z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ </g>
+ <path d="M244.63,170.829 c0,0-2.019,18.25-2.234,27.267c-0.146,9.088,2.094,18.178,1.299,26.617c-0.794,8.44-2.669,17.746-5.843,23.661 c-3.248,5.771-7.357,8.224-13.2,11.109c-5.918,2.885-15.149,4.4-21.787,6.059c-6.709,1.659-12.263,1.154-17.962,3.896 c-5.77,2.741-11.469,9.09-16.158,12.263c-4.689,3.174-9.955,8.367-11.902,6.563c-1.948-1.875-0.361-11.396,0.143-17.529 c0.577-6.203,2.597-12.551,2.958-19.115c0.289-6.493-2.958-12.552-1.083-19.621c1.876-7.069,5.482-15.148,12.048-22.363 c6.636-7.141,18.755-14.715,26.976-20.342c8.152-5.555,13.926-9.667,21.787-12.841 C227.535,173.353,244.63,170.829,244.63,170.829z" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_47_" opacity="0.8" transform="matrix(1 0 0 1 149 165)">
+ <foreignObject height="145" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="117" x="0" y="0">
+ <imageReplacement align="center" height="145" opacity="0.8" placementMethod="ratio" refHeight="145" refWidth="117" valign="middle" width="117" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_46_"/>
+ </foreignObject>
+ <image height="145" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_46_" opacity="0.8" width="117" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAHUAAACRCAYAAAD90fcoAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABRVSURBVHjaYmAYBcMOAATQKBqGACCARtEw BAABxDgaBPQH9fX1eMO9sbHxPyXmAwTQaKQOcAQSA0iNZIAAGo1U+kUiIxFi//HxiY1cgAAajVTa RCIjiWxskfgfB00wcgECaDRSqROR2CKLEI3OxhaJ6GyiIhYggEYjlfoRic5mxCPPgCNSkfE/LJH6 H1/EAgTQaKSSFpnobFwRiAszYdHLgBaZ/7DQ/9Dk8UYsQACxjEYbSbmSUEQyobGZ0MSZsORe9AhF xn+R1MLEGLE0qFAAQACN5lTCuZKYSGRCi0hCGFsuRY/MP1AaGf/DknMxcitAAI3mVMwIxRWZ2HIh OmbGQjOjySMXwzCAHpl/oGp/I7kDFomMaGIYACCAWEYjsx5bPYkvR+KLPGTMgkUMOQGg59I/SPgX UoQyYmlAMaLRKAAggBhHI5NgZKLnRFyRx4KFzYIlcpFz/H+0HPobGqE/kWgY+xdSpP9FK4ZRimCA AGIZLWqxFrG4IhJXpLFiYbPiiFjknPofLUJhkQhT9x+taP6HpbGGkVMBAohlNHcSzJUsOCKRWIwe sUxIkfEfLYf+gKpDz8XIDScmtFYwRsQCBBDLCI5MBhx1JbbIRI4kNiQaFxtXxDJjKXrRI5QJLUJ/ QzEzni4RCgAIIJYRnDuRIxRbZGKLRHakCERmI/PR9SAnDuSiFxZpsLqTFSlC/yI1mFjR9KL7B6P4 BQgglhFa1BKKTFiksCNFGC6MLYKRcy62opcBLeK+Q+UZkHInLKKZ0SKUkVADFyCAGEdo7oQFFCyw 0YtXWERxYKHRxdhxRCp60YutgfQbWux+A+KvQPwJij8A8UcoBvG/QOW/I7WGkQckUFrAAAHEMsJy J3K/Elsxy4YlAkGYE41Gj1hsxS9yCxi9gfQPKZci59CfaDkcVz2KNzMCBBDLCM2d6EUtO46IxIY5 0CKWnUAOZUZrIP1DaiDBwv8PUoSiF9dMxBS5yP1UgABiGeG5kx0tQmERx4VEc+GIVPSil5WICEVu ICHn0F8EcidJ1SRAALGMwNzJhlbUwjB6RKJjbLkUV+5kwTKChD4kCItQfDkTX2TinKkBCCCWEZY7 0RtBHFgikhuNhsnD1LITiFBC47x/oG78iyMy0SMOHeONUBAACCCWEZw7kYta5IjEFqmcWIpcfCNG zFjqQvQJbnyRSWyEYo1cgABiGYG5E7l+RI9M5EjlwpNDWXH0QfE1bmDdmP9Iw33ERiZRORQGAAKI ZQTkTvSGEHpRSyhCYRhbcYutqMXVWoX1JwmtfiAFY41ogABiGUIRSo3ciV5v8hAoctnRIpQFaZQH W4Ria7Fim9xGn+TGtj7pH45IJAgAAohlNHdi5FBOLC1cbLmTmQH72iMGLOOz/3BENrYc+o8B90pC oiIYIIBYhmDuZMIzXksodxJT3HKiNYbY8HRTiOlP/sdR1OLKoeg59R+puRUggFiGUe5kI9BNIZQ7 OfHkThYii1pGIvqUhHIoodxJMGIBAohlkOZOBgbc02O4RoXIzZ2cWIb88DWGCEUmIxEB/5+ExhG+ xIHVHoAAYhnkxS22VQisaGO21MydbCTkTmyRyYCjIUQox5IawXg3TgEEEMsgLm6Z8LRs0QfguZD6 ndhatpTmTiYiI5OY3MlAZsQyEFv8AgQQyyAsbnGtEUJv2XJiGRWide4kJzKJiUhiRoqIbigBBBDL ICxukbsMrEgRSkzdSY/cSY2FBf8J1LEM5PRPYQAggFgGSYSSkzuRBwx4BnnuJDWi/xM7I4MNAAQQ ywBEJgMRXRVcLVt8I0I8gzx30g0ABBDLAOROBgbsSzNx9TsJFbU8Qzh30gQABBDLABW3jHi6Ktjq TvScSShCR1zuRAYAAcQyABGKq++JPiqE3ufkQYtMQsXtiMqdyAAggFgGMEKx9T3Rcyc3WiTy4Gjh EjsIP5hzJ75ERZK7AAKIZQAjFF9jCFdk4otQ9OJ2MOdOUneqkwQAAoiFjhGKrbuC3lXhwhKZvDgi FNsyk6GQO0k9tYUBS4TjBQABxEJDh+NrEKG3brHlTl4cuRR9VQJ6cQuzZ7DnTlwRiwsT7WaAAGKi QS4lVOSyIeVO5JwJikQ+IOZHwgJQzA+V44OqQy5+cUUsrtkVBnKLNRrVm4QilGCdi37wCEAAsdCg 2GXA0cpFj1BOpG4Kcu5ExjBxLqQil9jidjC3bEk9qgdXEY11mg8ggFioHKHYil30RhF665YXD8bX IMKVK5FHqgZzy5bQ+RLERCxWABBALFR2OK5pM/QuC3LdyYdU9KLnUm4i6k/krQ1Mg7zfSWjemInI HIsXAAQQC5VyKSOBXIqtUcSDVE/yoUUqoQglZ0XCYIpQBjy5ldgIxgkAAoiFSsUuA4GWLjvSKBF6 wwg9UnlwFLnE1J+DcZgPW72HLzJxiRENAAKIhQoRis0RLFiKXS6khhEvWrHLh1aPwtQiDyjgWtE3 1Ib5iD3+juy6FSCAWKjoQGz1KK5ilxdPPYptDJfQzrChMghPzOkwpPZVMUoCgABioWKxy4RjxAg9 lxLqunDhKHKZsDSIGBiG5qwKpS1gvAAggFioWIyQkkuxjRhxYRlMIHbv5lCNUAYiI5SkwX2AAGKh Qi5lJKJxxEVgPBdbkctKoIU7lCKTkYh6lVD9iSuCMQYfAAKIhQq5lIlAFwbbNBo3lqE+9J1l6H3Q oRqh+AbkiYlEYi5UQAEAAcREYS7FN7aLa7Ae1zwo8s6y4Rah1OjPEg0AAoiJwlyKb6ABuV/KxYB/ hxmubstwjFBScyDJ/gYIICYa5VJsc6TYdpghj+NiOxlsOBS55EQyIyWRDBBATBTmUlwNJPQVgLhO OcE2UjTUG0UDDgACiInCXIq+VhffdkJ8WwaHa4T+J1INrv0yxOy/wQAAAcREQS5FH+cltDUCecs9 Kf3Q4ZZD8W2nICsS0QFAAJFb/BIauMd3/BtyhLIyjOwil9g9NCRtwwAIIIKRSuTKQHznFOFbvolt cIFhGEYosUUsxcftgABAADGRkEPxtXpZcRS/uI59IzQfOtxzJ7Zcie9YgP+k5FiAACK3TsW1IJsD C2bH0XVhGeHFLqnnPRCdYwECiInCohd5QRm+w4/xHWrMOIyLXVzFKwMD7rOT0DHJR9kBBBATiUUv sSvt0U+uRo9UphFa7DJQGKFE5ViAACK3TsW1OBvXmfL4Vv4N51yKq5X7Dw/+S0KOxQoAAoiJzKIX 35HlxJxUTdEhxUN04OE/jrr0LwFM8uFYAAHERGQOZSAwPIher+I6nBHb9ZPDPZfiaiSh5058NzD+ YyDhpBaAACKl+CXmbCP0u1zwHW48klu6hCKU0PWaeK+yBgggUhtKuIpf9IhFv+kBVz063CMWPVf9 w1Ps/kHD+IpgvMUwQACRk1PxnaaC7ybCkVCPkppTsUUoshi2IpjgUCFAADERaCThGvfFd2shvusl R0o9iq+RhC9CSc2pWCMWIICYSMihhFrC2C6IZWIgbp/oSMulhCL0D4E6FS8ACCBShwnxRSwTERE5 ksB/PC1e5KszkSMSdgMjMRGL9T5yEAAIIHI3HTOSgRkYyFzHOkxyKrbW7m80jC23/iO1rwoQQOTM p+KKDFyLlBlGaA79TyCX/kbLnbB7VH+j5eK/WBpKeCMWIICYqFS8ECM+UiP2H5YIRS9ufyFF6G8i cyrOcAYIICYKIxLbzD0DHrGRWI/+xxOhv9AwelEMK6ZJuhgBIICYyEx9//GMZf5jwD+z8H8E5E5C rd1feDCunIreT8XaSAIBgABiIsKh/xnwnyCNrWX2j4TU9X+ERSgsh/5Ew+i59S859SkIAAQQ1kjF kQL+E4hMfNNFI61h9A9LsYutuMUVsdi6NESvfgAIICYyPYGtvsA1F0jyZTlDOEL/4ahDf6Pl0B9o GDlS0etUrKNJuIpeEAAIICYKIpKYyV1sxfFwKXbxRSh6Dv2NFHGwiPyOJWJ/EdH6JQgAAoiFBMeT Grn/h2kx/J+IUgtb7vyJFJnoGFtuJavoBQGAAGKhsNglhIdT0YvvFihkP2NrEKFH5jck/B1HTiVr 3BcEAAKIhQiPMDIQXnCMq8gl5Jj/g3zUiVC/HF+Eohe1oAj8CsXYIvUHluIXaxjiq09BACCAWMjw JKFbBPGNgJC82nyAI5GByO7cXyytXGyRCcJfoPgrUqR+x5FT/5JTygEEEAsFxQ85F7gOtggl1Hf+ T0Rxiy1CYbn0G1pkfkaKUOQci634xTroQCiXggBAALFQGBCERpkG0yDDfzL8RKgt8ZdAHfoNKWd+ RsNf0YpfquRSEAAIIBYaB9Zgijhi6kl8xSyu6TN8EfoVR4TCIvobEY0kknIpCAAEEDmRSsx8KOMg iMD/FOZIQqv/cA37IbduvyJF4ie0SEVuKKF3ZUieQ0UGAAFEjSN30PmMJEQ+Nes/SnMjvpyJK3di 64cit2y/oNWln9HqVWIaSCTlUhAACCAWKkQkEwNpx68xUhiZ/8lk42qN/yNQzOLKnchjuT/Q+qLY Wrtf0BpJ6P1TiutSGAAIIBYSi1oGHDkTfeU9vsMTiY3Y/0TmNGJyIgMD4e2D/4iITHw5FL0uRa5T sfVPf+BoIJFdl8IAQACxkJFLGXFEIPrCM2wnY1LaumZgwD9PS+ycL74hzr9IAwm4JraxjeX+QKoj v6LVq9/Q+qT4Gkco7iU1QkEAIIBYiIxQbJGLawUhM5G5ldSRG3yDHsTIo/f7/jLg3/qALXciF7k/ kSLnO1pO/Y4lInGN8WJbNUjRcCpAAJGTU5kY8C/oRl8HTMq+GWKKSlxsQjS+4hU5Iv/iiEz0+VBc kYqNTWh6DevuNnJyKQgABBC5DSVstxLjWsTNSCBiyZ0FwjfdR2jvJ76IRI5Q9CL3F1LE/ESL2B84 8E8G4parwNzNQEmEggBAAGGNVDzXYzIy4N9ygStyCTWUCI3a4IqIvwyEJ+n/Eihi/2KJSFxLN3/h iNifaLkR1xKVP2iD9X/RShQGcutRZAAQQCwU5lJScisjnlxKaEyV2D0nf3FE5D8siQGXeb+xtHKx Fb/oEfwLR0T+ZsC9QJvsAQZ8ACCAWIhoIOHaysiEJZcS2u2Gr8j9R0Q3Aj2gsC18xhbB5EboHywR iy3n/iYiIv/iGS36T2mRiwwAAojYfioxdSl6xOLbNY5vCgtXB/8XjkD8gzS89ocB9+bdP0TWoX+w JBpcCQpbAvuDZsc/HHUnSp+aWhEKAgABxEJi0Yuv1Yuv6GUgEKG4ht+wrbjD1vD4jSUwyYnYPzgi iJA4tn2lf3HUmwR3glMKAAKI0joVV4Tii1hcEYqrH4itNfkDT4uSUITii1xi2fiKe/SIxLllgtqR CQMAAcRCo5YvvroU1mxHL26xRSauRVo/8LQu/5KACUUSobMY8B2Pg3f/C60iFAQAAoiFglyKL7cy 48ih/6BiyGt68A2Mf2PAXM+Db2TmD4EIwNW9+UegBU1sBBLc8U3LyIQBgABiIbLly4BnnBdXZOLK pf8ZUBdpYZtc/oZlYBzb6rufaA0WfMUhKex/ZEbggEYmDAAEELk5lYmEBhJykcuIFIDIIzTfsUwu 45rh+I6l+MXXdSAmkghFHKEIxDVLRNfIhAGAAGIhITIZ8eRSJgbcx+qgB8pftBz6nQFz+cdXLPOP XxlQV95hK3pxdR+IHSMmJQfiPfxxICITBgACiJTWL6HuDK7IhBW1DGj16A+0lQLYJpTRcyq2ohfX SM0/Emd1SIlAnKsjBzIyYQAggFhwtHwZGPBfLocLY4vUP1A55GL3J5ZVAuhLPwitj/2FpR79R2JR SWzk4V3iOhgiEhkABBChhhIDgUlxbBGK3geFrcKHFbvoa3m+MGBfy/OFAXNt7A8G/Nv9iFlETmrE DfpIRAcAAUTMMCGxOZQBSw5Fjug/DJgr19Ej9DOWHPoNrW9KzFwkoTqPpEsHBnskogOAAGIhciCf mHuzsRW5sMBAL3axFbmEIvQXA/EbiIgqNnHNjAy1SEQHAAFEysIzbCsG0Yf+kMdvGZBapMi5FH2R M3px+wVLHfoTrS/6B8fkMkkXCAyHCMQGAAKIhYTIxDUogW1fJhOUD2vxwrov+OrRrwQaRYQOt/g/ EiMQGwAIIFKXszCgNYawRehPBtQtkLBc+h1H1+UrllYuKTur/w/GbsVAAoAAImbwgYGIWRZYxLEg FbuwXPqbAfv+Emz153cCY7o4VwuM9IhEBgABxIKjj4qtQYEvd8KKV1jXhQmpjkVu8aKvXP+GY6To NwP2zbdUW3E3nAFAABGzkxw9YrHNsPxAGmD4hVT0/kYqer8TGKAn1Af9PxqhxAGAAGKGMQ4ePMjg 4OCAb6yXBQdmQopE5K4L+qbbzziG/tDnR4lqEI1GKG4AEEDE5FRcx8gg51BYX/QnGv8XlgEHYudE R4tbMgFAALGQUOz+xdIogt0bDmsQMaPlWmyT39iWpBA15DcaocQBgABiIbJxhF6PMqNFIGxMlxmp 1Ys+Z4q+2BnXioXR+pNCABBALDgiE9vAPPrgAnqOZEHq+iBH6m8GzBWAvxhQl3aO1p9UBAABhK/4 ZcTRhWFCi7w/DKiX8uE7+YvQGfGjuZMKACCAMPqm0P4qvtYv8mVC6LcsMjJgjgNjWzNL1oH/o4A4 ABBAhBpK6DkVW+MJfdUDri0UuBaFjdafVAYAAURMl+YfHnFcC82wRSzdtx+MVAAQQFiHBrEs6Ca0 8oERR6QTOtx5NHfSAAAEEM7xXqS6lYEB9yks2DYTE7NNn2E0QmkHAAKIlFNE/6HVm4xIYvj6uPgO 4BiNUBoAgADCewYDjtWF2NiEGloMo3Un/QBAABF1DA5aHctAgE1wVd5ohNIWAAQQ0aePYZlvJfak FYbRyKQvAAggks8LJDCZzjAakQMPAAKIKggU0aRG9iigHQAIoFE0DAFAAI2iYQgAAgwAd5N3dpar RSQAAAAASUVORK5CYII="/>
+ </switch>
+ <g>
+ <radialGradient cx="173.0698" cy="196.5469" fx="173.0698" fy="196.5469" gradientUnits="userSpaceOnUse" id="XMLID_48_" r="96.0587">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFD7D6"/>
+ <stop offset="0.2885" style="stop-color:#FF6964"/>
+ <stop offset="0.3876" style="stop-color:#FF241C"/>
+ <stop offset="0.4333" style="stop-color:#FF0900"/>
+ <stop offset="0.4976" style="stop-color:#EF0800"/>
+ <stop offset="0.7111" style="stop-color:#BF0600"/>
+ <stop offset="0.7619" style="stop-color:#B60600"/>
+ <stop offset="0.846" style="stop-color:#9C0700"/>
+ <stop offset="0.9526" style="stop-color:#740900"/>
+ <stop offset="1" style="stop-color:#5F0A00"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF0900"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF0900"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0A00"/>
+ </radialGradient>
+ <path d="M242.396,172.991c0,0-2.02,14.933-2.164,24.022 c-0.145,9.088,2.019,18.105,1.299,26.617c-0.795,8.441-2.743,17.747-5.917,23.588c-3.175,5.843-7.283,8.296-13.2,11.182 c-5.915,2.885-15.076,4.4-21.784,6.06c-6.708,1.659-9.881,0.217-15.582,2.958c-5.698,2.739-10.315,8.149-15.004,11.324 c-4.76,3.174-10.532,9.738-12.48,7.935c-1.947-1.947,0.505-8.367,1.083-14.498c0.577-6.205,2.597-12.552,2.958-19.045 c0.289-6.491-2.958-12.623-1.082-19.621c1.804-7.069,5.482-15.22,12.046-22.362c6.566-7.213,18.755-14.788,26.978-20.342 c8.152-5.627,13.925-9.738,21.787-12.84C229.194,174.868,242.396,172.991,242.396,172.991z" fill="url(#XMLID_48_)" i:knockout="Off"/>
+ </g>
+ </g>
+ <path clip-rule="evenodd" d=" M159.728,282.279c-0.289,1.152,4.473-14.428,10.676-25.32c6.06-11.326,16.375-28.854,25.102-40.324 c8.587-11.686,19.55-21.424,26.187-27.845c6.203-6.276,12.911-9.739,12.335-9.521c-0.864,0.143-9.451,4.039-16.015,10.026 c-6.637,5.771-15.435,13.633-23.081,23.877c-7.937,9.954-16.81,24.237-22.724,35.923 C166.147,260.565,159.944,280.907,159.728,282.279z" fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <path d="M220.248,179.773 c0-6.348,2.095-11.47,6.566-15.365c4.471-4.04,12.622-7.286,19.979-8.08c7.217-1.082,15.944,0.361,23.157,2.38 c6.853,1.948,12.625,4.761,18.469,9.522c5.769,4.689,12.477,12.84,16.519,18.322c3.965,5.411,5.984,9.811,7.14,13.778 c0.794,3.607,1.373,5.049-1.297,9.305c-2.887,4.256-9.45,11.397-14.645,16.375c-5.337,4.833-10.1,8.584-15.944,12.408 c-5.913,3.606-11.826,6.563-18.538,9.738c-7.067,2.885-16.95,8.585-22.144,8.44c-5.122-0.361-6.998-4.616-8.442-9.738 c-1.513-5.555-1.079-14.067-0.935-21.642c-0.219-7.574-0.434-15.22,0.72-23.227c1.226-8.368,3.174-16.52,6.419-25.537 c-2.669,0.073-5.409,0.289-8.223,0.938C226.091,177.897,223.352,178.691,220.248,179.773z" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_50_" opacity="0.8" transform="matrix(1 0 0 1 214 150)">
+ <foreignObject height="128" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="121" x="0" y="0">
+ <imageReplacement align="center" height="128" opacity="0.8" placementMethod="ratio" refHeight="128" refWidth="121" valign="middle" width="121" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_49_"/>
+ </foreignObject>
+ <image height="128" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_49_" opacity="0.8" width="121" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAHkAAACACAYAAAAvZ8aYAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABQqSURBVHjaYmAYBcMeAATQKBoBACCAGAe7 A+vr60l2Y2Nj4//RqEUAgABiHKoRSQ4YqZEPEECMgzBSGSl0538ixUZMpAMEEOMARiw+PiOVIvk/ noj+P1IiHSCAGAcoYhnxiDGSEenYIpMQjTcRDKcIBwggRjpELrbII5VNKNLRI+s/WqRi42NjY5g3 HCIbIIAY6RS55GAGHHx8kfyfChhXrh+yEQ4QQIx0jFwmLGxcNDGRz4Aj96Ljf1jof1jkiY7woRbZ AAHESMUIxhe5pGBcCYKUSEaPUGLwfzyRP6QjGyCAGKkYwfgilxmJRmczo6lBj2wmPDkaPZKxRe5f PPRfLOpwRTrWHD4UIhoggBipnHuZsEQuMmZBolmwyDNjiWxsuRvZblggo0cwemTC8B88fGyRT0yE D+rIBgggRirmXmyRy4KGWdFoFrQIZ0GLZGY89TWunIwewX+w0NjwXzT2Xyy5f0hGNkAAMVIhgvFF LisaZsPCxhbZ+HI0rkiGBT6uCIbh31hodLE/OCL8L57cPWiLcIAAYqRSBOOKXDYkzI5GsyGpgelh RotoJjwRja3R9Q+tyP2DJYKx4V9Y+Ngi/S+e4nzQ5mqAAGKkUgSjRy5yhIIwBxrNjpYAWJFyNcw8 fI0x9DoZOZKx1bfoufYXEo0PoycAfJGNnLMHVa4GCCBGCiIYPfciRxosMjmhbA40NgeWHM2KpciG 2cNIYiT/w1JUo+dUZPwTif6JxkdXi5zDcUU2Sq4e6IgGCCAWEhIDrghmRSuSYREKwlxY2BxYcjQx OZnYLtQ/InMyeiSD8A8cNAyzQtUzo+VsJrTIhrkF7DZYRhmoyAYIIEYScjFyscmCFsHYIheGuZHY nEgRjS+Sic3FuCIZV72MLTf/RItkfBimBr1I/4OlK4YR2QMV0QABxEhCMY0tByPXuegRywOluZEi GlckIze8mPHUxYxERPJ/PP1j5ByNnpORI/E7Ev0djf8DLYfjq7MHRfENEEDMuCQcHBzwNbKQIxgW cbDI5EXCfEgYxudBwthyOba6mx1PK50VS2sdvWXPhuRmXHLo7QNWMrp2+CZRUML24MGDdItkgABi JKGYZsZSRHOi5VxeJBqGudEiEzni0AOTUD2MLQD/4xm//oejxY2t6EYvspFz8Tc0/B2JRi7OcRXh 2BpldMvRAAHETGYuZkOqg9EjGVsO5sWRcwl1qXDlKlyjZYTEWNFG3XDxsckx40iM+MbV8bZ56JWj AQKIUCSjD3Zga2hhi2BsRTMxDS9cw57MWGhcExzMOMbM8UU+tiFXckfjGHD0ALBGOj0iGiCAmPEU 1UxoDS5iimpetGIbuagm1D9mxjNpwYRjTJsJz3QmMx6amYhIZ8HSd8cV0fha/ugTKXTP0QABxExm g4sDT32MnHORi2VCAx+4IoWRwNQjrqlJJjwzY0x4cj16ZGIrSXCNxhEzgoh11QktIxoggJiJKKqZ sIxqcaJFMjdSxCJ3l9hxRCwTnnlk9EDDNQvFxEB4iRETA3GLF5iJLO6Z0SKaiYRZMnx8mkY0QAAx E9k3Ro5kdrTiGh0jF8u4BjkYGYhfCcJIROOGmDVi+JYe4VvgwEzkvDcjgfnu/4QimVYRDRBALER2 rRjxLAbA1tJEH2L8g5bz8A2bwroYjATqOELFIXpC+I+HZoK6lZginAVP4w9X0c1IoMj+R0wCIBcA BBAzlqKagcAsE3LrGtuEAwva5D8DjmlBBiJyI74lusSMsxNa+YkvlxNTrONbucKAlmj/MxC59pva uRkggPBFMqGBEDYcgxrMeGaIsE3JEVOkkhLJhCKegYjIJmURIiOBhtd/HAkdWwQz0qLYBgggciIZ 2yoPViw5F9sY8j+0CGbA0l1jYiBtOS65EU4ospmIqMsZGYhbaIhtRI5gY4xaEQ0QQCwkqkfOkcjD gz+RIhm2BOcXA+ZyH1jO/4MU2dgGXdADgxY7PRix5SC0IpaBzEjGN9xKaGE/A/rMFaUAIICIzcn4 +pXIHvuHY3wYfWaGmMYcExWLa3JyNno4MBCIaAYScvE/AokAOU4YKM3NAAFEKJIJDSYwoaX8f2jT etgG6pEDENewIzOWuWRaRTIDnsYdMV05Jjxdu/9k5GgGajfEAAIIVyQzEBhMQC+W/hGRi/+h1cHM JIwNM9AhkhlwRDADgYhnIFAXMzDg37ZDaHsOxfUzQAChRDLIELRhTXwjTNgaWOgT8+iT5wxII2jM eGZ+mHHM8tAjkvF12Yjt5uGK5H9EsHHWxeRGMkAA4RvWZCDQT8WVg/9gKaL/o+VgXBP3rFj62QMR yQw4Sg9C22wJDXzgi+B/BIrv/+TmZoAAwhXJDHhS8n8sqRN94Rx6BDOiRTD6oAr6tCMLjrqf3pFM bEQTKrLxbcbDNYbwn1rdKoAAwhfJDDg88x9LTsbVH2bAkYPxjZih97uZBjAnExvRxAy94lq1gm+R PlXqZ4AAQh92RF6Sgm8ZDb5lM+hLWbE1wP6TMAw5WAB6BOObb0dOyLCJGx4cmBtpVg9facZIbpgA BBATkQMg2Eav8C1Wx7XOCdcAAzEjRgyDINLxRTRyZKOXVsjz7ugRzI0U0cizdyw4IhoMSDkWCyCA sEYyWm5mYCBtURwxkUtoXJiRkpQ7AEU3vmlZ9AUW6Iss0Jcso0/2UJybAQII55JcpO4UrhYjvhkl bHUw8vwz+gpOTrTJDlyta8ZBGtEMDMQt4MNXL6Nvk/2HoxH2n9TWNkAAMeOTRItobA0vBjwRjFxH YVtJgm2ZLhuOSGYaJMU1MRHNSETVh2s/NbZIxrmZjthGGEAAEZyggBXd0DoA14D5PyzDeAw4Jh/w rbzEqHsGYXHNgKVLyYgjoePao/WXAf9WWmxjDci5momUSQyAAGIm1jeg1IIjZ+Oql1jxtDCR14Rx 4aiHmAd53UxM94rYnIxtW88/AsU30WPbAAHERKqPiFj1T2iDOq7x6qHQ6CJ2vBt97xjyvm12PNUX +hJmqnSpAAKImRwfYWmUEbs+m5sBcx8UoUYX0xAotol1H64hzr94Rg6RczSuqUq8uRkggFho4FF8 G9WJmXUaijkZV2TDFlEw46ib8W2j/YU0mPQLmgGw7ZYkuHgfIICYaBjBuIprUlY5MgyRXEyo2MZV ynEwYG77Rd/hSUzXEu8ACUAAsVDRUwwM+Fd7MBPIxYzDIBdja3EzouVoFqRcyY6Um9E3w6MPFbNB 1cHC7C9SrwZfz4cBIIBYaJyTce07InapD8MQj2hskfwPLZJhXSlOpIjlZEBsn+VgQD3OAtbFYkIy lwFfRAMEEBOVIxd5PJqYnQiEIng4RDa+HaK4juPAd7YKri4mziIbIICY6OQhZgb8204Zh1FxTWy3 Cr1+ZkeLbORpWDYGzMPtiG6oAgQQWZGM5ehjclZ54pqYGE6AEc+AEfpadna03MuBo6+Mq7+MEwAE EBONPMHEQNymMWJSI+MwiWxGBtwzVugnGLIz4D6BgYUB/xo4DAAQQEw08gS+3EzRoSrDKDfj2p3C hgMTnYvR62WAAGKiguOJPVQV30YxpmEawcRkBEKHzrJSOngEEEC0yMmENnsTe9LeSIhsXHui8Z0H TvKoIEAAMVHRwfhakoROqGccxpHKQGAUD1/mIHQQDQMxYQcQQPQY1iRmiQ+uRDPcATknJpDcKAUI IJIjGcf4KCMRKZLQSfTDOWJxXS1I6tVFZO1yBAggJirlXGJb2KQu2mMcphGO62ojfGu98K33wgsA AohWXShCZ2yNpAYXvm0y2E7zxbblCNtdGPgWU6IAgACi5tg1sfUyrU4QGCoRjC1ysZ3ei2uJM7Y1 X3gBQADRouGF7+wsRgI5mXEE5GBc23zRFw0gLx5A3qzwl9QcDRBA1BrWJFQXY4vc4bBIgJgIZmDA vkkfPXKRT9tFPmMb/VxtXBENB+jr8AACiInCyCW2G0Do5Lrh1LrGtvsEVwQjLxJAPnb5O5aIRt96 hKsxhgEAAohW/WRCF3GOhCKaAU8DCzmCsZ2r/RUtstEjGtfuUawRDRBALFSMYEKtbXx1MOMwi+D/ DPjPUUGPYFjEfoHir2gRDYtksnIyQAAx0Shi8eVsQosDGIdpBOPKwV9xRDB6JP/CkpOJunAMIIBY aJCLGRiIP+gUV1dsOLWiYRH8C63+/YYUmZ+h+AsSjRzJP9Fy8l9ScjJAALHQwNP4IpaUhDLUIxh9 bTW2CP6CFMHIEf0FqX7+gSWCsbasce1uAQggFhpFMDFHGw6H3IsvgpFz8C+0CP6CI4Kx5WJsRTXR uRgEAAKI2uuuaVUiDKUI/kNkDv6EhvHl4l84cjF8uwy+PWoAAcRC40hhJNBQGw6DHMhX+v7FUQf/ wJGDkSMYhtHr4l946mIGQhEMAgABxMIwCiiN4H9Yukm/8ORgbLn4E44IJlQXEzULBRBA9Ijk4TDD RMogxy8iGlmf0HLyFxwtamy5mOQLxAACaDQnU94HxhbB34mMYOTG1jcso1vYDtj5x0DiDXEAATQa yeQ3sNDP/MYWwV/QimhskQvLwd+pWQ8jA4AAGo1k4utfQvuLcY1ifcYSufha0mQPeuACAAHEMgA5 YijmXkIRjNyCxtUPRu8moRfRPxiImzcm+SJPgAAazcnE5V7kLhK+CEbPwZ+IHOz4SasIBgGAAGKh US4gJhf/HwK5F9c6rF9E5mBc9S+u0SyqRzAIAAQQC5VTP7UDn5GOkctAoHj+g2UUi9Qi+huOCP5D qwgGAYAAYqFhkYePjU1usOZe9C4S8jg0rkbWZyJa0LhOEKb6ZdoAAcRC5wAkpainV+RiG54ktBYL VwR/wVH/4ovgvww0vi0dIIBYqBxwDDhyLK4cg0sP4wAVzbiKZ2yjWN/wRDC2+he5D4xcRP+jZQSD AEAAsVAxcv/jKZrx3Zzyn445F5e7cOVebIvtvmEZi/6CpXtEqAWNa6iSqhEMAgABxELlwCQ3gv8P UOQi70r4w4D/VH58EYwtcknpIqEchkrNCAYBgACiRReK0F6f/zQcICEncrHlXvRpQmwRjL4uC1fx jD4Oja2IplkEgwBAALFQEJiMeFrP+C7RwHdFDjndp/9EJDZ8kYvr+EPkBtZ3pAj8gtbg+ooj9yKP YKHnYGx3QdEkgkEAIIBYqJxzsN15ROjmFHJb2f9JGK3CF7l/GDDPtkTuAyNH8FccGD1yf6JF8F8G AvPBtIpgEAAIIGq1rvEVzfi2XxIaeMeWo/8T0S8nJXKxHXmIa7H7VzQ2tgXwyN0junSRCAGAAKJ2 nYzriF9i99tii9j/JNb/uFrM2CIXW+5Fj+BvaMXxNxxFM7bcS5cuEiEAEEAsVC6qcRXR6Oc5E7u5 mpHEyMW2HIfYyMW2HwlXxKI3rHC1nunSRSIEAAKI5EPNcVzaieuUdtipcpwMmMcJYjuAjNBBMfim //7gGILEVQyj71zAtTQH2+jVNxwjWNjujaBLCxofAAggWoxd48vBf3HkZmIGSAjlWvSpQPTIxrZF FL0FjWtnIXKd+4MB9cBxQpH7f6AiFwYAAojWDS9sA/2kRDYjkWb/YcB+Q8svLI0qfJGLHqnoDSps m8L/EGhcDWgEgwBAAFFzqhHfFB228zBwRTYjjn74fxy59g+eyP3FgHlAOK7I/I7WkEJvUOGLXKwL 7QZDBIMAQABR2vBiZCDuFlbkiMB26AkMo2+fQY5gbCNU6KNU6N0hfLn3BxG5Fr3FjKthNehyLzIA CCBqjl3j2w+E707H3wyI85thZjFhGdTANkKFrc7FFbm4IhU916IXycRE7j/0/vpgiWAQAAggal8Z hOvUV3Y0GlermoEB/5rmXzhy5TccLWVck/if8Yw5YyumCd24RrfRK3IAQABRs3X9D09OxnW6zQ+0 XPyPAXHsPgOByEZuLePKubhyLHquRb6a5w/aYAaunPt/sNW9uABAALHQoajGN7LEglSawKb7mJDq 439E9H1/YolIQhGLXt/+YsB9QBpRXb3BGsEgABBAtKqTkfur2AYkYPccwXItLIKRI/0/FnN+Eahz f2ApcvF1gYZ15MIAQABRuwuFaxM2cgQjn8QOy7F/GBBX4iAX3f8YcE/iE8q5+HLtbyzFMqG7i4dE 0YwNAAQQRWupoCfmIje6kG9IQb7mHXTrNx8U80Np2E3gsMsnWbHUz9hWavzAEck/sTSasHWBfqP1 2YnJuQxDLfciA4AAonZxjW+vLnIdzIhUHP9CimRYS/s/lkj+iScn/ySyC4RrhGpYRi4MAAQQtRpe jATq5B8MqCewIze0fkLraBa0ljWuTWU/iaxvfxMYnRr2kQsDAAFE8dJXpCKbkQHzviP0+4KRr7hH vnCSDa3RhSuSf2Hp+hAbucjX046IyIUBgACi9iwUbOz5LzTH/mbAPDj1H1ouZ0MrqpG7T9iGLn9h GUv+hadIxtfHHdaRCwMAAUTtJbnoI1boc8Pode1PtJEvRhx9ZGxj1OhDo6TWt8M+cmEAIICoslMB rcgm5gYzNgbMO4+wDW3+Y8CcRvxDINcSNTo1EiIXBgACiFZbV5FzIjaxPwyYdx+h53hsY9jYaFzz 0iM+cmEAIICotucI6ZYZQreh47pDmRHHWDi29WG4imSC9e1IilwYAAggqm4sQyq2GRiwXzSC6wIw 9EgmtDDw30hvTJECAAKIVltXGZFa2ujFLxNS65uRAfeVurh2QBDaXzUauWgAIICovpMfx93KhA45 x+aW/0RihtHIxQ8AAogmxzVgiWhsEc7AQPiUXEInFjCMRi5hABBAND0GEU9kMzAQd8IuvmvsRnRj ihQAEEB0OesSR2QzkBDJoxFLAQAIILoeaIrjMk+SwGjEkg4AAmhAT60lJtJHI5VyABBAo2gEAIAA GkUjAAAEGABPVcNeLN/wLAAAAABJRU5ErkJggg=="/>
+ </switch>
+ <g>
+ <radialGradient cx="238.6523" cy="178.0757" fx="238.6523" fy="178.0757" gradientUnits="userSpaceOnUse" id="XMLID_51_" r="89.1996">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1089" style="stop-color:#FFF5F5"/>
+ <stop offset="0.2705" style="stop-color:#FF8383"/>
+ <stop offset="0.3819" style="stop-color:#FF3B3B"/>
+ <stop offset="0.4333" style="stop-color:#FF1F1F"/>
+ <stop offset="0.4976" style="stop-color:#EF1717"/>
+ <stop offset="0.7111" style="stop-color:#BF0000"/>
+ <stop offset="0.7392" style="stop-color:#A10200"/>
+ <stop offset="0.7699" style="stop-color:#890300"/>
+ <stop offset="0.8046" style="stop-color:#760500"/>
+ <stop offset="0.8453" style="stop-color:#690500"/>
+ <stop offset="0.8973" style="stop-color:#610600"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF1F1F"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF1F1F"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.1739" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M221.692,178.114c0.289-5.916,2.739-10.532,7.502-13.921 c2.021-1.371,5.628-3.392,8.657-4.401c4.328-1.371,8.367-1.515,12.48-1.803c6.779-0.505,13.201,0.793,19.619,3.101 c6.349,2.31,12.695,5.916,18.323,10.604c5.554,4.761,11.107,12.191,14.786,17.457c3.753,5.194,6.349,10.171,7.357,13.707 c1.01,3.606,1.154,3.822-1.44,7.574c-2.668,3.679-9.377,10.244-14.139,14.644c-4.76,4.399-8.657,7.934-14.281,11.541 c-5.702,3.608-12.556,6.781-19.408,9.883c-6.924,3.102-16.949,8.657-21.639,8.439c-4.763-0.216-5.122-4.688-6.422-9.738 c-1.3-5.049-1.226-12.912-1.3-20.125c-0.07-7.287-0.215-14.5,0.94-22.94c1.153-8.44,3.173-17.384,6.058-27.267 c-2.739,0-5.409,0.361-8.293,0.865C227.605,176.311,224.796,177.104,221.692,178.114z" fill="url(#XMLID_51_)" i:knockout="Off"/>
+ </g>
+ </g>
+ <path clip-rule="evenodd" d=" M241.53,174.507c2.02-1.154,4.833-2.381,8.438-3.679c3.537-1.516,7.792-3.174,12.77-4.401 c4.689-1.226,9.737-2.308,15.436-2.958l-4.614-2.958c-7.502,1.587-13.995,3.246-19.189,4.978 c-5.411,1.587-9.666,3.39-12.479,5.121c-3.029,1.659-4.688,3.535-4.978,5.338l0.359,1.298 C238.646,176.383,240.087,175.444,241.53,174.507z" fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_53_" opacity="0.8" transform="matrix(1 0 0 1 162 232)">
+ <foreignObject height="307" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="143" x="0" y="0">
+ <imageReplacement align="center" height="307" opacity="0.8" placementMethod="ratio" refHeight="307" refWidth="143" valign="middle" width="143" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_52_"/>
+ </foreignObject>
+ <image height="307" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_52_" opacity="0.8" width="143" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAI8AAAEzCAYAAAAIHFApAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAADAYSURBVHjaYmAYBaOATAAQQKNoFJANAAKI cTQIBmUc/B8KDgcIoNHEMzTCe1AmJoAAGk08AxPGjBQknEGTkAACaDTx0C9sGXHQxCSa/3jEBgwA BNBo4qF9uDKiJRhsbFwJ5z8e9oAnIoAAGk08tAtTbAmFCYmNrSRCTyj4MK4SiW4AIIBGEw9tSxv0 RMOExmbE09v6R4BGT0h0T0QAAcQyGudUL20YcCQYEGZG42NLQP+REgkM/0ViM6IlJGR9jPRMQAAB NJp4qJ9w0BMNMx6MnICwJZy/WDByYsLWFqJbAgIIoNHEQ7uEA0sgLFCaFcpmQRJjRit9YAkBObH8 wYIZoXKMSAmN7iUQQACNJh7qJSBYIoAlCFgigSUaNigbGcMSEHLiQS5xfmPBTGgJCAb+0bvtAxBA o4mHOg1k5ITDjFTSsEITDQyzo/FZ0EofWOKBlTC/0PBPLFUdA1oC+o+l90YTABBAo4mHOt1x9DYO K1qC4UCiOZASEaxUwpZ4kBMMCP/AUtUxYGlsM9Kr+gIIoNHEQ3nCQU40LEgJhx2KObFg5ASEnnj+ IiUeWKL5jqWUwtZD+49WhdE0AQEE0GjiIT8BEZN4QAmFC4i5oTQMIycgFqR2z3+kts4vpITDhtRG wtY7wzfeQ7OSByCARhMP+e0cfAmHA5pAuJEwDxQjJyDkRIGeeGClDjta9caEp9T5j9bdp2n7ByCA RhMPddo56CUOB1KJA0owvFDMg5SYOJESBnLi+YOUeL7jaBsxYEkk2DAjLUsfgAAaTTzUr6440Kor UKLhw5KAcCUeWMnzA0e7iIEBcwQaHf+nx+AhQACNJh7qVlfsaFUWcqnDB8XEJh52LNUatoSDbeT5 H9qAIyMtEhBAAI0mHvKrLia0wUBsjWQepASEXPpwEZF40Ksr5DYO+gg0+vQF8twXE1rvi2oAIIBG Ew9lCQdblcWB1ChGLn2QaS6k3hYs8cAALPEg966QSxz0KYvfaDRyYmLCUuJQrfQBCKDRxENZm4cZ bVCQHUubB7m3hdxl50AqXdAHCXE1kJFLG2xTF+iJ5x8tG88AATSaeCjrZSGXPKxYEg/62A4yxjVI +A/HeM4/tITzC4n+yYAYkf6NlICQl3FQvfQBCKDRxEN6gxl95hy5zYM8ssyBlJA40DAbni74P6TE iSvh/GbAnL5ATzx/kMzBloAoBgABNJp4KG/3oM+gY5sIZUfrPbEyoC7RQC55sC3RQE48yInmBxJG T0QsSCUQEy3aPAABNJp4KK++mBkw1+8gJw5863hwLQhjIFBdwaYuuBgQUxiwBPoTaudvJLv+0qLq Agig0cRDfHWFKwGht4GwLTtlZsC+dhkdwwAzljGdP0jV4U9odfgDqQ31HcpHrg6ZcVRdVGk4AwQQ 02j6oDhBMTBg3ymBbf4JW8nyH4dZ6I1y9CUe2DD6Ug9sM/FU2/QAEECjiYd08B+HGLaF6+j4L44B vX84EhG26hBboxy5TYVtoRmuBWQUJSSAAGIeTQskje1gKxGw9bSwRSRy4xjXzgl8CfYfA+p6H2y9 L2LHfKgCAAJoNPGQnngY8TSQ0ZeeYqs+mAgkGHwl2z883fbfaN115ASErYSjOBEBBNBo4iE+8WDr ojOjlUDYMDOBkoaY7cToXXbkKQpsCeg32mAhDGNbPEZ21QUQQKOJh/wuOhOWKgzbviz0UovQlmJC iQfb7opfRCQgfO0rsgBAAI0mHtJ6V/gSEBOeBiojA/aVfri2EOMqlZDbPcilzy8sGJZ4/qIlIGyJ lKzSByCARhMPeVUXA45ExEigq44t0RCzB51Qu+cPnkbzbwbU9T7/qdVwBgig0cRDeqOZAUciIZRo cG0jxrUC8D8Rva6/eBIOrnYP1UofgAAaTTyUDQxio/8T0VbBtQKQUMJhwFH64Fqigd5l/0eEPUQD gAAaTTzklz7YEg4DlgjGVtr8IXKwENtZP//xJKA/eKqtvzgSENmlD0AAjSYe8ksffKd6EaqqsA3g 4RrEY8RRumHruv/GkoD+4hgspHjQECCARhMP5dUXAwP2k7r+M+CfmiCm1GFiwDwgigFH9YXrRA3k 0eh/eEoekksfgAAaTTy0S0C4djjgW7DOgGcwkglPoxxXyfYHSyn3F08iIgkABNBo4qG8686AJffi myjF11DGNn+GPgDJhKcNhN6mQk84fxiw7/Eiq/QBCKDRxEPd0gdblxrX8XDYcj62LT0sDNhHsImp wv7iqL6IaWsRBAABNJp4qJ+I8E0/4BrTYcSTcNBXI6IfCIUtsf7F0+7B19YiqfQBCKDRxEPdBPSf QALCNcaCLeGgr4dGXtqK7ZweYqqvPyT29PACgAAaTTwDUwIhRxJ6+wbbiWL4lngg240+9oM+iIgr 8eCbmMUJAAJoNPHQJhH9J5CQsM2PoSccdiwYJocr8eAbPCQmAWE7GBMnAAig0cRD/6oMvapCX1SG vF0HfW0yOwPm4nZiEg8xO0tJnrYACKDR3RO0AbhOpEBukzAR6BWhY2wHNqE3mrGdhUjKInnkXRYE t+gABNBo4qFtAkIP/H9I7Rxco85/CAwkYuvaw+xgIZCA0NdXszIQt3ANKwAIoNHdE/RLRP/RGrbo vSP0cSBCY0LY2kzoPTV2PJiVAfv+LmxzaVgBQACNJh76J6D/WMZmiLkygJQExIqlBGJHq7bYcHT9 id7VARBAo4lnYBISvsFDYjC+cSJsCQjbdiA2HKUProVuGAAggEYTz8AnIlzTGLhKoP9ElD7MOAYa CY0ZYSt1cJZAAAE0mngGvv2Da/4LV9X1l4z2D67RakLVFt6qCyCARhPP4Km+kBPGHwbcs+PETKoy k5CAiN1fhgEAAmg08Qy+Ns9fPOM+2Ab2GEgofVgZsJ8PhK+7jrPdAxBAo4mH/lUWrnYPvikFfIvZ /xHReCY3AeFt9wAE0GjiGRwNZlylDr4phb84qi4YZsZTfeGrsoiuugACaDTxDK72DjFbaX4z4F9O ge9ABmwnlRFqMONMQAABNJp4Brb6wreIC98erD8Eel1MOKou9BII2ypFYk7yAAOAABpNPAPXVcdV 8vxlIH4TH75zd7BdkIvvJA98JQ/WRjNAAI0mnsHV7sG2gQ/b4QXEtn2wndiKL/EwMxC+8x0OAAJo NPEMjnYPtgYzoZLnDwNx812ESh9mPOM8eLvqAAE0mngGR7uH3BWAf0lIQNi28uCqtpiI6aoDBNBo 4hlc7R5cbZ8/RJQ62HpbuEofbFt5mBjwT45iAIAAGk08g6/Ljm9ylJjdpui9LnwJCNtJZoS663A2 QACNJp7BnYiwHceC71Y/9D1XuI7Aw5domAglGhgACKDRxDM4qi9sDWhCJ4kRWqxOTNVF6AxFvAAg gEYTz+BsQGMrjYg5cg5X4iH2DEWSRpgBAmg08QwNwEikGmzdaka0RMFEZIIhuJIQIIBGE8/gSxyM eDChEWD09g42/aQkIAZ87R6AABpNPIOnNGEkoqpBTwTYjp1jIJCYiLl9h6jdEwABNJp4BkciIrZ9 gm0OiglPKcFIRGlGbMLBSEgAATSaeAZfdUXqmAwjgQYuI5GlHNElDgwABNBo4hlcJQ+uawlYiExA 2KoqXAkGX8IiqrEOEECjiWdw9JyInU7AdYcWUV1rAqUeA6klD0AAjSaewdnWYWYgbSqBpP1WFAwH oACAABpNPIO/wcxMYrVF7lWQJJ9JCBBAo4ln8DaYmRgwZ7wJzUMxkplY/uOg8QKAABpNPIMn0WA7 tBvbNAK+Ng+hxILt+Lj/BEognAkJIIBGE8/gS1D4RoDxDfBhq7L+k4GJLnkAAmg08Qye0gdf+4fY e73wVUuETmYllIAwEhRAAI0mnsHfcGZkILyjAduJ8PgSDaGjW4g6mxAggEYTz+Ab92EkojQiZjyG mERDzOljuNgMAAE0mngGf/uHUCIjlHDwHd+Ca5UiUW0ggAAaPdBy8CQSUqYY8CUYBgbi7/oi5jYc nFUXQACNljxDrwQittT5RyDxkHoeM0YiAgig0cQzeBvODCQmGFzVFXIpg+0KSVwJiGAiAgig0Wpr 8CYaUqcbcF1g+5cB+85T9O3LhO6jwAAAATSaeAa2Z8XAQNyiLQY84zrYutfYti0j73n/yYB9/zu2 qyRxNpgBAmg08QyeMR1s65SxjfMw4ElEDAzYj2pBTjQ/oDR6AiL5JhyAABpNPIOjh4VrIRixc1i4 Sp1feBIOcgIi6/51gAAaTTwDU2URk3Bw7SPHdhAB8nQDturqBxL+jsRGT0CEzvxB4QME0GjiGdjq itjDl/CdWIrtkCjk6uonUqmDnoB+Ymn3EH3zMUAAjSaegSt1cK1VJuXEUmztHfSEg5xgvmMpeYhp 82BNQAABNDrOMzBtHHz3ROC7HwLbIUwMaA3lvwQS0A8cjWZCB0ZhJCCAABpNPPStrrAdskTohhpc t9Tgupz2D57Eg45/oiUc9JIHLwAIoNHEM3DVFbabaWCXqnEy4L+dD730wXayGL42D7ZxHly9LJyJ CCCARhMPfRvJ+C5VgyUadAxLQOg31aCP/aBPSfzGM0BIbFuHAd8gIUAAjSYe+pU62K7AxpZwuNAw J5bSB7nhzICj3fMXRwKi2kW1AAE0mnjo2zXHdnc6B1qi4caRcGCJB7nkwdbuwXWiPL7Z9L+kNJRh ACCARrvq9OlhIQ/y4aqukBMOrgTEilbyYFuygW3VIK4zDfF1ywk2mAECaLTkoX0CwnaQNq5SB5Zw YBi53YOtzYOt3YNrQRi25aa4BgSJSkAAATRa8tCvh4XePUfvXSEnHC60hIPe22JCyvjETJZiq4pw JQyid44CBNBo4qFPWwd9QBBblcWFo7GMrZvOzID/LB5sYvgmVElKNDAAEECjiYe+A4MsRPaysDWU sQ0Q/mfAv1WHmItIGMn1IEAAjSYe2jeU8SUedhxjO5xEDA7iK+VIPXeQgZxEBBBAow1m+vW0cJU8 HDgSDa7qipgTTMk5MpfkRAQQQKMlD+0TEL7Eg5yAONASDqGrqwmVdJSe+E4QAATQaMlDuxIH231X uCZB2bGUNtgSDr51zcQeEEXyBSW4AEAAjSYe2nfTGRlwz6KzoyUiNhyJB9fJp8QcDEXMikRijuTF AAABNJp46NPTwtZgZkNLQOgLwAidfMqAo6QjVH2RchA4XgAQQKOJh7YJB32MB730Qa/G8LVxiDm1 lJGIRIOtvUNWtx0ggEYTD23aO9gay8gJB98d5/jaOYwEBgQZCXTTiSnJiAYAATSaeGjb3sG2cpCU hEPMRbGkJCByTn7HCQACaDTx0Ketg6u6YiWiS05Mj4iRjAFDki4pwQYAAmg08VC3xCGn1GEloroi 1l58CYhqJQ4MAATQaOKhbolDzEJ3bA1kZEzocG5S3EFKQmIgtbcFEECjiYe27RwWHIODyHxCo8jY ShZsiQVXQmJgIO7ABJJLH4AAGk081C11sA3OsRI5tkOol0VJomZgoNJkKDIACKDRxEP9Ugffniz0 UWVcqwMJlT6EEjExJQojpQkIIIBGEw91xnXwrdshtJEP11odSqsXYs85JDsxAQTQaOKhTXVF6uw5 ofEdxsEYAAABNJp4KK+u8O07R18tiG0XKK4lpvgSDjFLRvFt3vuPx0yil6MCBNBo4qFddcXOgHsn KPouUFzbiElp3OLbqEfxDTfYAEAAjSYe6lVXyN1yXIkG30Y+avW00BMSVW64wQYAAmg08VC3usK2 vBR9YTuuvVi41u2QWzXhSkhk3XCDDQAE0GjioU11hWszH6695/jO3WEgMSEhs/8xkHdFElEJCiCA RhMPdaorfAkHeSMfMYmHkioLVwLBtkuU4hIIIIBGEw/1qyv03Z/cRJY62LbV4Ct1/hNR6mDbXkxs CUQwMQEE0GjiIa+6wjWeg2vfOXqbh1CVRUqpg+3kd1zXI+G7IonkEggggEYTD/EJB9f5OmwMmDs/ QQmGhwH7oQXYBgfxbakhNuHguyYJ/Yoksi5nQwcAATSaeCgvcZB7Vtw4qisYRj8qBdvAILEJBls7 Bz2x4MPYrgkgCQAE0GjioX7PClepgzwwyEZEI5mSW/xwHexE6BQwkkoggAAaTTyUtXE4sFRVPHga ysgJB1/3nNQxnv94Eg6uI+TwnQZGVKMZIIBGEw/1Eg4y5iFjXIeUKgtXI/kPnkSD72qkfwxktHkA Amh0rzrxp7OzEVHioJc82BIPoYTDSGTCQa+msF3KhnwKKvpBlrhKHqITEEAAsYwmHBQafbcBriNv Ye0bHhwYW8Ih5hR3YhLOf7QSg9DdWrju1SLpeiRsACCAWEYTDt7LRLD1qnAlHF4cpQ6l1RWh7ji+ u7XQMXrJ85eS8R6AAGIZTThEL+jiROqOIycYXqSEA8O4TjHF1cPCVerga+NgSzTop70j37GF7WI2 om63wQUAAohlNOHgXVqBbRwHlkD4oImGDy0BofeukA8uwDVrTkzCwVdVEXM1ErEXsxENAAKIZTTh 4FwJyI6njQNLNOgJB726Ima9DgOJCQff/RLfsWB81yORdNcEOgAIoJFa8hCzaJ0DrariRks46AmI B08jmdABTcS2cf4y4L43FJZYviHh71hKH/Q2DzGLxLACgABiGYGlDgMZo8bY2jiESh1s90QQU9ow 4Bk9Rm/joCear2j4GwP2W/2o0uYBCCCWEZZwiD0bmQvLGA4vDsyNVuqQ2rv6T6BLju1+dPTSBjnB fIFibAkIW+Ihe2IUIIBGWsmD77QufO0bbBjXYCAbkdUVtpIH2/3oyCXOL7QS5xtSYvkMxciJB1vC +Y2jm05SlQUCAAHEMoJKHQYiSh1OtISDrUeFXk1xMWBOerIyEH/GDq4BQGISzlcsieczjsSDfqsf RaUOCAAEEMsIK3WwDQKit3O4sSQcGMY1loOtW46tncNIQsMYW1X1E0vCASWWT1gSzxekxIPe3vlH aakDAgABxDLCSh1sR9uyMWCux0HuVfEjsbGVOISWlOJr55Ay3YDexoElkE9IGD3hfMNS6hC61Y9o ABBALCOs1GFkQJ2zQu+Wc6G1c9CrLfT1Oeijx+iHFeBKOLgG/tB7VL+xjOGgV1WfkGgY+yueUucv A4mXsuECAAHEMgJLHfSjT5AbyuglD67GMb4Vgfgax6SswfmFI+F8xdLG+YSjvfMTS6nzj9IuOgwA BBDLCCx18C0jxbXEggdLwiGmO85IIOH8xTHVgH6l9TcCDWRs7RxSqiuyEhBAAI2kaouJiF4Wri0z xGybwXZCOzEJB71t8xNtHAdbwvmClmCQx3W+E6iuKGokIwOAAGIZxgkGWwLCdtseMZem4brfHNd1 jfgGAYmd2PyGJ+F8ITAYiDyLTtVGMjIACCCWEVDiELuIHT0BceJINPgSDqEBQGwTmz+xtG2+ISWI L1gSz1ekKgq5tME1DUHV6goGAAJopLR5yD1Dh9Bte6Qs6EIe/PuL1r5BH/jDNtWAraT5hqWawpZw /lM74YAAQACxDNMEw4BnVBnbmmR8p3dha98QmiEnZmb8D1LC+YFWynzGU0V9QxvDQZ8x/82A/+pr qiQcEAAIIJZhXuIQs9gL271X2M5JJnR+DjE7H5Bnx5HbOsjd8M9oA36fsSQcchZ5UTXhgABAAI2E Ng/6VYnMDLjvvMJ1zC16wiHlzEB8M+TYJjk/Y0lAX3AkHPSF7X/plXBAACCARlqbh4UB+zH+6CeT Errbk4GB/J2df3GUPN9wDADCEg++RjG+hjFNEg4IAAQQyzBMLPgGB3FVW2xEVFWk7LHC1kXHl3iw NZjR2zrE9KaQpzsYaJlwQAAggIZzg5nUeyDw3e1JydG2uE6uwJeA0DG+gT9COz//0yqgAQKIZRgm GmwJh4mEhINtcx65p3Vh63VhWxmIPh2BawE7rjXING/fYAMAATQcqy1c1RW+KgtfwiH1aNv/RPS2 /uEY78G1YQ95tHhA2jfYAEAAsYyQUodQO4eNgXondeGqtvD1vNBn039jwYSOSGGgZ8IBAYAAYhlG CYeUcR1CDWViZ8pJTUTEJCB8Z+rgW1Lxn94BDxBATMM84eC7jpqYu8yJvVmY1FII16FM2E72+ocn 0QxYwgEBgABiGiYJh4HIhIM+BYFrRJnUS2KpmZBwnWSKa7H6/4GKAIAAYhomCYeJAf8JF2xIiYXc iU8GKiag/wz457+IOert/0BHAkAAMQ2jhIN+ux620obQBSK4uugMDLS5tug/gXYRAwONjv6nBgAI IKYhnHAY0RIOoa3DuO6BQJ89J1RlMRLpRkoS0aApXfABgABiGcIJh9DZyOw4Eg22ZaXo1dZAXpj2 f7AnGhgACCCWYZJwkLfS4DveFn3fFTFbhOmZcIZMqQMCAAHEMkQSDb6qCv1MHWwnXGA75hb9HB1q XJhGif+GHAAIIJYhUtqg96hwHcaEvnkP/bxAbNto8N17RenA4LAGAAHEMgQSDqHDJrElHOT95vjO 0SHmVIthUUrQAgAEEMsgTTSEGsbY7vJETzjIW4b50EoffCd4UWtOa9gDgABiGaSlDQMD9iUV6EtI 2Riwn8SOnnD4sJQ8xJxUSsu2zpBPlAABxDIIEw6+JRXoa49hpQeuU7ywnatD7NFvo6UOAQAQQCyD NOFgq6bQT7XAVeJgO82LmPORyVlqOqIBQACxDIJEQ6gbjqt9g+tgAl60RITrwjRiDpwcTTh4AEAA sQyC0gZfNxzbhSG4DpzkQUs0hC4QGW0kUwgAAohlgBMOsd1wQoN/6OM42EaScc2ek3Kc/yhAAgAB xDIIEg6hNTjYShtuPIOAuEobUg5jGk04RACAAGIZRAkH1/VEnHiqKUKlDbYTLpB7bwNVTQ2ZyU98 ACCAWAY44WDb1YCtmiK1tMFVTbEg2TvaOKYQAAQQywAkHHx7qdAXbnFjSTjY5qmIraaIXdD+fzQx EQYAAcQygAmHhQH3/BQnnkTDi9ZYxnd6F7bFXejXFcESyn80N/+nQ4k0KNYikwsAAohlABIOqTcF 8zBgvxCNmGoKV6JBTjDoCQdbIhothbAAgABiGcCEgz5+Q+iyEEJ3eLITaBTjyuH/CSQURionoP8k lj6DtkQCCCCWAUg4yPNT2LrhxEwxYOtN4bsUDQb+4XArsnv/o/nhP4kJiBaR/X8wJiSAAGIZ4IRD 6N5OPgbMaQZCg37Yqij07vF/LIkGebQbV8lDSQmEa0cEAwH2oAUAAcRCw4SD7wRSXO0b9CP7CSUc 9N4UI1Lk49q6gi/xMEHlmNDMYqSwJ/afiEQ1aDbzEQsAAogWJQ+u07jY8CQcbPc88GJJOOhXE2E7 0hY58LGdW/MfrVGMLeEwIPEZyBwLwrdZD98+rP9Dpe0DEEAsVC51GBgI303Oida+wbdwC9Y4Rt5j hW3QjxGtmkI/SADbqVkMWAYsYTQyYKJSY/k/ATxkdorCAEAAsVAx4aCP46CXOtjutIIlHH4s1RWh heoseEob5AMCsB0riy2h/8OScBixRCA5bR9ythYP+rYPQACxUDHhYLschAVLdxxXwsG1UB3fDgcm LKUN7LgS9GNLsCUeZLf+x1IaIUcitY5WwXbHFqGDDQblgCJAAFGr5ME17YBtABDb3eT41hnj2xqD XuIgJxb0Q5H+oCUe5NLxH1riYYKKMVGYYBjwJBxiTsIY1CUQQACxUKHUYWAg/sZgbgbcl9rju9ge X8LBdkgk8lFtyKei/0MqRZCrK1xi/yksff4TmXCIOYNn0AGAAGKhMOEwkpFwcN1PTuyeKlwNY+QS B/0sP+S7NWHuZkHyP2zpKzVvhsF1lC62g5zQE9B/tNJwUCYigACitOTBN2fFjqdbzoujV4WecNjw tHGwVVfoVw8hnyAKixiYm/8ilSbMDLgv+KBmdUVsIvo3FMZ/AAKIhYJSh4HCUoeHQInDhqXEYcSS cNBPFUU+0xg98fxHKnXwJRxs/qS0i/6PiJ4gvsMqB10iAgggFgpLHUYSSx0eAokG3zwVtu4zvgOx kc8vhvW2kAf/GNEay4QSDbkDhPjuFEXuGf4l0JAedAAggFjILHWIvQAN/dpFXGtxcG39xdVAJvYw 7B9IbZ7/SH5GTjjomYGY9cykXhuA6wzmP3hKIGIGDAcUAAQQC5USDr6uOfrxJoTuJse1lwrbdYvo 7R1cB2D/YUCds0KuttD3jKGzKb02AFfCQS99iLm1ZlABgABioaC6Iqatg+twJeS7yQmVOMgR948B 9xnGv3EkIFh7hxGt5MI1PoVrxSEl1Rau6uoPntIHGTMMxrEegABiIbHUYcDR1sF28AD6GmT0nQ2c BEaOGdFKnf94RpN/YxnfQe+iYytdmBkwb+/Dd68WKT0tbKUPKaXOoC95AAKIhcxSB9fOTmwXvRJ7 xTS2nhW2S+2x3R6D6+h9mBwDA+ryCvREg+teLXJv9COl1PmDYxqF2KmKAQMAAcREZqnDyIB7SSkn lsSD7SBJ9FPXidnyi+9C+z84Es4/tIYxtoTPzEB4IyC581iE3Iqr+vo/2EsegABiokKpg+2KaWwJ B1t3nJUB/6WvjAQaoH+xRAS2uzbRq1sWLBjfVZCkNJj/4xlV/stA2v0Sg3pmHSCAyG0wE9oBwYnW tuFkIHzQACOB6gpXwsGVk/+iNTZxtXOw3VpM6okZ/wkkHFxuxeVmXI3lQQUAAoiJyCoLX8nDhiPx cBIocYht4/zH0t75i6WnhZ6A/uKospjxVFmU3HLzn4h5rD94EhG+u7QYBmMiAgggUto8xJxEyoGj 1CF0tAmhM4+xlTx/iCh5/jJgrt/B1cvC1+YiJQHhu0cdX6lD6BK2QVd9AQQQCxkNZWLOz+FgwH7C OhsD8VcwEqoC/mLpoqNHyH8G/LtWmRgov1PrPxE9wr94Eg8pF7ENKgAQQCxElDqk7PjkYMC8FAS5 1MF3ERoDgd4VenWFa90OcrWFbUcoKQmI3BLnP4GE8wvPsAKhWfVBAwACiJRBQnw7ItgZcF9HROxF aIxEjpXgGxREjhT0idD/BOaxcCUYSm4yxjYO9YvEkmdQtndAACCAWMhIOLhOJmVHq6aQqypC1RWx c0LoEfETbToCOWL+IfUM/xGYZsF2jC+pVRYxpSSuUfDfBOa1BmV3HSCAWEjoZWFr77AyYL96kR3P CDK+Uuc/nsFA9ESDbdEXcgKCTYT+ZcC+5ILShENMlfWHiBISVyN/0Ld5AAKImAYzocOYcCUeUm8M xtdA/o0l4fzAgpFn0RmgdmKLAEqXXRA7h4WtrYNrieyfodRYBgGAACKmwUyom86KllhwtXOYiUw4 xMyY47q8HhYpf5Hs+EdEe4eBwqkIbL2sPySUPMRWW4MKAAQQsW0eJgbibg0m5YJ7YnIvthWCsMTy DYphfOTc/B/JrcQ2lMkB+Gb6/+Cpan/hKHnwlTqDLgEBBBALCe0dbNMSrAyYd0HgmiknZt4KXxsH OeF8RUo839Cqrb9o5jIyYJ7zzERhAiKmofwHS4nzE41GH1oYUtUWQACR0mDGVfLgwriWOZAyeoyc Y2GlzVc0GrnkQe5lYVu7w8RAeNkFOWM7uHqF+FY3/kJqn/0ZalUWCAAEELENZmy7QVlwJCBi5osY 8IzKoiecH2gJB4S/ILFhJQ96QxnbRCi+SVByGsv/CZSav3Eknp94uulDosoCAYAAInWEGduMNAuW Ng4LERFESjuHUML5idRmYGLAvkQWm/vIuTbgP4FG/h8CieYngfbOkKiyQAAggFgI5DhGBsIrCAmt jcHV1iFmNBZbqYOMvyOVOv+QRpSxJRxcM/rkTIgSaihjW0/9A0epQ2hCdNACgABiIlDi4OttMZOR cPAN56Nv3vuBo9T5gpZw0PdlMTKgrqvGNu5E6HI2ShrKuMakcO3qINRQHrQJCCCAKJkYxdWOIGZF Hr4qC7m98x1LyYPcRUduJDPhSTiEZvZJqb7+k9DDQk44P7BUWb+J6KIPWgAQQKR21YlJQLhmqnEB 9GoLPcd+w4Jhpc5vtAFBJgbsM/3YJmoJnZxKaqmDr5GMnoCI6aIP+kQEEEBMBHpaDAy4lzHgKm2I mTVHz8HEjO2gJ5xfSKUOzHz07c7oCYfQElhCPS5iSx1sUyjYuuhDtsoCAYAAYiKxysK3Eo+YRjID CUP66NMQ2OavkDfwoV98QuraaWKnKP4T0VDGlnB+4GksD6mGMgwABBAxa5hxJSJSlnLiWrPzD083 ndD4CPqRKcjbnWEJhpPIKovQ7lBKuuc/cPS0/gzlUgcEAAKIiUBVRUwphK2NQ2y1xcCAe7nmLwbM dTvogY4t4aAvg6XW9ZDo7iU0mvyDiITzdyg2lGEAIICYiGzv4NrTzcyAf9sKvi46vhHa3wzYd4Ei Ly/F1S3H1UjG11BmICKRE9tOI6bKwjcwOGQSEUAAEbt7gthSh5jrpf8TMTeEbZsKtq002M55xtVQ JnZ5CKF2zn8ktxBT6vwgYWBwyFRZIAAQQCxEJhpsR5HgSzDUGDP5i5Zo0Hd/MuEY0yF2DTUx+9Bx HeuCbb0OMYvUsE2E/h+KpQ4IAAQQqV11YkogcnIysWf0YUs4rAzYl8ASqq6IPULlPxnVFbYFar9w 9LD+MQzRS9sAAoiFiETDQCDRYEtcDAS66AwEqqx/BBIOAwP2ZbAcJCYcQtt+iCl10BPPdxyNZXzL TRkYhmCDGSCAiF1JyEDEqDMjCVUBKecTI5+BjJxIcU1BEFp8T0p1havUIXQO4nc8VRa+0eQhlYAA AoiUNcyMBNo1xC6owtXOIXRXBHKpw8xAePE9sctgiXEreqlDTHWF3kXHtaV4yAKAAGIhUNIwMOBf KE4o4RBa5I7vcEdsVRYz2rgOvoSDfL4hKVuKcZ14gavUwbYY//twHFFGBwABROlpqLgigdASDHyH HmHrjSA3khlxDAoin9/MRqCdQ0oj+R9a1xxfVfUdR5WFL+EMuYYyDAAEELEHHeBKQLhKJ2yRwIAn 0WA7IgXbRSOwE8RYcXTLiemaMzDQppFMqMoasrPnuABAAJFzlC4xCQzfyCwx+5qwHVaAPLpN6qw5 sYcq4BpGwHbK/E8c1RW+KmvIzmNhAwABREriIeXqQlwBg28W+ieBxMOM1MtixzGajG+xFzFVFqEx HXzLRdATzrAudUAAIIBYSEwsDAy4Lw/Dd58mepWFb50vcrf2H1riYWbAPHUV393qxEzQEqquiFln hEyjnzw/LEsdEAAIIFIbzPhuDManhoEB+8IpXAcWIOdY5G46tvU6uEoefJOfpIzp4GokE0o4yEtH hl2pAwIAAcRCRIlDzB3g/4kQx1XqYJsHQr8fC996HVKWXJCbcH4zYO4hw7Y09jsWPwzLUgcEAAKI hciSBlfD9z8Dcbf2MhAxKouta/sfy6Ag+nodbLflkHNsHbbLbXE1kJETzVc8DeU/w7XUAQGAAGIh sqoi91pn5KNgCbV1sK0URD6wANvBmaTeX4Gv5ME2ioxt/xhyosG2m4PYnaBDPgEBBBATkb0kYhIO +qUi+HYYEFok/gfL+A76cb3obR1WMqssbEthcTWQ8SWcEVXqgABAALGQMeaBbwITW6JhxDPIhqu6 +oel1MG2ZgfX2A6hgUFCJ63i272BvN0ZX5U1rEsdEAAIIEqqLVwlDLYTzP/hGBAkdWE7vrEdfIu9 CFVV+DbsfWfAvk8eueQhdipi2JQ6IAAQQCxEJBoGPNUSvrvB/+FpLP9iwL97Erm6ImbNDqFbcxgJ JBxiD1hAxl9xVFmE9mMNmwQEEEAsRJY6uBIQIQwbp8F2Uhaue7H+o5U6uNYnIyccVgb8yy6IWXCP 73AFXAmHUKkzbBMOCAAEEAuBaorUdg86hh2gjetOrF8M+CdBCe05x3etJKEjetETDnIbDFvC+QzF MP43HOM6uE68GHYAIIBY0AKX0lV/6FUBtm76b7QpiN9ogY1+PAquhINvDouBzISDXOIgJxhsCQfb 1uc/w72RjAwAAojY6Yn/BNo7f3GwsTWW0fFfPNUVOwP2A8JJPaIX3/bgn1jaOMilzSco/ozWYEY/ RHNInitICQAIIGIazP8JtHewJRz0QMS1Xgc9oRHbSEZeYoptPAfXROdftO74LzwlziccpQ5y9xzb EtMhvzaZWAAQQITGeRhIqK6wrUNmZMBc8PUHSxHPwIB6bTWu7TSEBgMZyChx0BPOJ7QSB73UQR5N /jkSqysYAAggYue28C2QwoX/YEk8uNby4trER2grDaGe1T88bZyfeNo42BLOFwLtnBFTXcEAQADh 6m0xMuDfFvyXiATEiJR48F1KxoCja47e1sG3vBRf+4zYhPMFLdHgKnV+jPTqCgYAAojYcR5iExBy AmHAUfKgBzYDUglCTNcc36FMyBGI7dQNbGcdfiGyukLvlhPa/TnsSx6AACKlzYOvS44r8TBgKXnQ r29E34uFLeFgWyFIbMIhNI7zGUt19RlHO+cHgcFAhpGScEAAIIBYcFRZDDgGColJNLAIY8AyuvwH x0gyIwP+TXy4BgNxVat/GHAv5PqOY/DvM5Y2DnoDmdByixGRaGAAIIBImRgl5rZefCXPbwb8Nw7j q7LQu+aE7q3At1j9K55BQFwDgbh6ViOunYMMAAKIlHEebDsnce29Qr5t5i+OUge9e46t1EFvJDPh qKoIDf6hr8X5gpRQ0BPNFwbMC1EI3U4z4hIOCAAEEKlLMggdwvQbR+LBV+rgaiiz4Wnn4DvPEFfC wTbJiZ5oCE144jvmf0QlHBAACCB8DWZGBuL2l2ObemBiQEyM/kVrLKM3lHHd28WGo52DbUcGoR0O uGbHvzBgv8viB442zmjCQQIAAURuyfMXy2gxcjuDCSkB/sUzKIjt0AJc3XIGPCUOtlsAkdcbf8GS eL5iaRQjt29w9apGEw4UAAQQoUFCQiPL2LYMs6Ilnn9Y2jrYTvdiIyLh/EUrcdDX4aAvG0VfAYit pMG15wrXkSijCQcKAAKIlFn1fwRKH2yJhwmtkY0+KIheZaE3jpmQEgsDlqrqF5aE8w1PwkFfQvqd gfChk6ONYxwAIIBIHWHGd2f4LyzVFhMD5qw88pWT+C57Y8LT3vpDRPvmK5YEhO3+CvRdqsTs8hzx CQcEAAKIGm0e9JKHBSnRMGMZdSV0kRpydxxW5TESSDjY9lOhJxrkpRTfiSxtRhMOHgAQQITGeRiJ SEDoqwNZ0Kob9FPm0RMPrn3lyAnnPwPqDk5CG/G+4mjXYCtt0GfG8e16GE04SAAggIjpqhO66QVX ycOAlDCQzxPEd3cFesMYW8IhpsTBdoEtek/qF5bBS2wnsI4mHBwAIIBIOSUD32gucmOZBcuYDKz6 YmbAfUU1cvvmN9IUB66NeN8Y8G//xdYgxjboN1pNkQkAAojSEWb0rTS4phEY0AYGGRiw34DzF0sv Df0KJVynVCCXNN+Q1BJzr+doNUUGAAggUhfA/8dTbf3CMpWA3lBGrw7+oyUS5HYWroSD74gTbL0o 9PU32MZuRqspMgBAABHTVWck0GVGr7JwHW0Cq67Q2xZ/sDSuYZGL3jjGlngIHSb5G0vb5i8D9tM9 RhMNCQAggIjpbeE7Gg5bYxnf3Q7Y2jqwkocJrZeF3EBGTzjfiUw0v4kYKR5NOGQCgAAit9rCVvIQ 2s3AiKNxzIKlp4VrLQ4pieY3khsJlTajCYcMABBApJ6GSqjNg28bDDYzmJF6Yv+RSh1s0w7fGbDf 64At0RAzbjNa2lAIAAKI2N4WrkYz8uIvfFthsOlDPtECWQ7fsXPYEg22dg2uBvFoaUNFABBA5DSY GRmw777EtzwUOdGwog0eMjBgP3YO/T5yQiUNru73PzT3jCYcKgGAAGIhQw/6QnNGtBFkXNXcHxw9 Mnxrc9APf/pJZKLBd6jSaKKhEgAIIFIazNgSBCzR/MHRzkGv3ljRqivkUgd9hh79ECj0I1lwJRpc i7VGEw2VAUAAEdvmQa+6YL2nvwy4jzRBL3HwLSnF1fX/TUS3+x+BBvFowqERAAggcu+eQG7//MVT rSGXOtgGEPH13pCXt/7B04PCN9A3mmhoCAACiJRqixFL1UVMlx7fxbDE3rv1h0D1hOs+jFFAQwAQ QOTcPYFtVwW+RjIzWjuHCU8pRehabGylzWiiGSAAEEAsFCQcBizdYGYsg4DotyEzMGCuFfqHI6Hg q55G2zUDDAACiNKShwGp7YPMh01y/mXAfeQbMaeOjSaaQQwAAoiRQn24LqhlYsB9AzK29tF/IhLL aGN4kAGAAGKkgl5CCYmcO9ZxXc80WtoMIgAQQIxU1E/o+mwGAr0zBiJKmNFEM4gAQAAxUtkMRjwl EwNaYxnbGBKuKmk00QxCABBAjDQ0i9BtyMRceDuaaAYxAAggxkFo5miCGSIAIIAYB4Edo4lliAKA ABpFo4BsABBAo2gUkA0AAmgUjQKyAUAAjaJRQDYACDAAyQmEi0S9gJ0AAAAASUVORK5CYII="/>
+ </switch>
+ <g>
+ <path d="M247.948,240.656c1.3-0.865,3.029-1.442,4.907-0.938c1.802,0.433,4.04,0.216,6.419,2.958 c2.455,2.452,6.348,8.511,8.077,12.046c1.519,3.391,1.88,6.06,1.085,8.296c3.39,3.534,6.204,8.296,8.438,14.283 c2.165,5.915,3.898,14.643,4.618,21.425c0.436,6.636-0.07,13.778-1.515,18.322c-1.585,4.256-3.823,6.925-7.287,7.719 c2.814,9.593,4.258,18.177,4.043,26.039c-0.505,7.648-1.154,14.573-5.558,20.489c-4.469,5.77-11.107,10.819-20.483,14.859 c1.515,15.22,1.659,28.638,0.145,40.539c-1.589,11.759-4.548,20.271-9.161,30.587c-4.688,10.315-8.657,20.847-18.903,30.803 c-10.532,9.737-24.522,18.466-43.064,26.979c8.512-18.324,14.499-30.874,18.542-37.945c3.748-7.067,3.824-2.378,4.974-4.616 c1.154-2.596,0.145-6.274,2.022-9.881c1.731-3.969,6.349-8.008,8.004-12.121c1.3-4.038-1.729-7.862-0.141-12.046 c1.296-4.616,9.159-12.911,8.583-14.282c-0.865-1.659-9.522,1.877-12.626,5.628c-3.244,3.606-3.1,11.973-5.698,16.734 c-2.813,4.473-8.151,7.502-9.881,11.326c-1.66,3.821,0.359,8.078-0.576,11.9c-1.444,3.465-3.896,2.67-6.782,9.884 c-2.886,7.213-6.203,17.962-10.243,33.038c-5.121-20.342-7.07-36.934-5.843-51.145c1.154-14.282,5.482-22.866,12.984-32.966 c7.286-10.099,24.525-19.477,31.164-27.341c6.347-8.222,4.473-15.579,7.717-20.703c3.174-5.048,6.854-8.439,11.326-9.882 c4.039-5.698,7.357-10.099,9.957-14.064c2.378-3.824,4.039-5.845,5.263-9.163c1.229-3.751,0.506-8.439,2.599-12.407 c1.95-3.967,5.049-7.863,9.308-11.397c-0.939-7.43-1.085-13.13-0.725-17.961c0.145-4.834,3.104-6.278,2.743-10.461 c-0.504-4.329-3.969-10.604-4.547-15.221c-0.646-4.761-0.575-8.944,0.504-12.841c-6.852-2.452-11.9-4.688-15.145-6.996 c-3.25-2.309-5.124-4.184-4.833-6.42c-0.076-2.453,3.099-5.555,4.833-7.646C244.704,243.902,246.289,242.099,247.948,240.656 z" i:knockout="Off"/>
+ <path d="M247.948,240.656 c1.3-0.865,3.029-1.442,4.907-0.938c1.802,0.433,4.04,0.216,6.419,2.958c2.455,2.452,6.348,8.511,8.077,12.046 c1.519,3.391,1.88,6.06,1.085,8.296c3.39,3.534,6.204,8.296,8.438,14.283c2.165,5.915,3.898,14.643,4.618,21.425 c0.436,6.636-0.07,13.778-1.515,18.322c-1.585,4.256-3.823,6.925-7.287,7.719c2.814,9.593,4.258,18.177,4.043,26.039 c-0.505,7.648-1.154,14.573-5.558,20.489c-4.469,5.77-11.107,10.819-20.483,14.859c1.515,15.22,1.659,28.638,0.145,40.539 c-1.589,11.759-4.548,20.271-9.161,30.587c-4.688,10.315-8.657,20.847-18.903,30.803 c-10.532,9.737-24.522,18.466-43.064,26.979c8.512-18.324,14.499-30.874,18.542-37.945c3.748-7.067,3.824-2.378,4.974-4.616 c1.154-2.596,0.145-6.274,2.022-9.881c1.731-3.969,6.349-8.008,8.004-12.121c1.3-4.038-1.729-7.862-0.141-12.046 c1.296-4.616,9.159-12.911,8.583-14.282c-0.865-1.659-9.522,1.877-12.626,5.628c-3.244,3.606-3.1,11.973-5.698,16.734 c-2.813,4.473-8.151,7.502-9.881,11.326c-1.66,3.821,0.359,8.078-0.576,11.9c-1.444,3.465-3.896,2.67-6.782,9.884 c-2.886,7.213-6.203,17.962-10.243,33.038c-5.121-20.342-7.07-36.934-5.843-51.145c1.154-14.282,5.482-22.866,12.984-32.966 c7.286-10.099,24.525-19.477,31.164-27.341c6.347-8.222,4.473-15.579,7.717-20.703c3.174-5.048,6.854-8.439,11.326-9.882 c4.039-5.698,7.357-10.099,9.957-14.064c2.378-3.824,4.039-5.845,5.263-9.163c1.229-3.751,0.506-8.439,2.599-12.407 c1.95-3.967,5.049-7.863,9.308-11.397c-0.939-7.43-1.085-13.13-0.725-17.961c0.145-4.834,3.104-6.278,2.743-10.461 c-0.504-4.329-3.969-10.604-4.547-15.221c-0.646-4.761-0.575-8.944,0.504-12.841c-6.852-2.452-11.9-4.688-15.145-6.996 c-3.25-2.309-5.124-4.184-4.833-6.42c-0.076-2.453,3.099-5.555,4.833-7.646C244.704,243.902,246.289,242.099,247.948,240.656 z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <radialGradient cx="186.1865" cy="400.9668" fx="186.1865" fy="400.9668" gradientUnits="userSpaceOnUse" id="XMLID_54_" r="98.714">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFD6D6"/>
+ <stop offset="0.2885" style="stop-color:#FF6464"/>
+ <stop offset="0.3876" style="stop-color:#FF1C1C"/>
+ <stop offset="0.4333" style="stop-color:#FF0000"/>
+ <stop offset="0.4976" style="stop-color:#EF0000"/>
+ <stop offset="0.7111" style="stop-color:#BF0000"/>
+ <stop offset="0.7619" style="stop-color:#B60100"/>
+ <stop offset="0.846" style="stop-color:#9C0200"/>
+ <stop offset="0.9526" style="stop-color:#740500"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF0000"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF0000"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M223.928,419.625c3.463-5.555,6.781-10.749,10.244-15.868 c3.461-5.268,8.584-9.885,9.813-14.646c0.72-4.833-1.518-11.9-4.188-13.705c-3.1-2.092-8.292-0.937-11.685,2.382 c-3.175,3.533-4.83,12.046-7.499,17.457c-2.959,4.903-4.618,7.718-9.742,12.911c-5.481,5.122-16.3,11.613-22.145,18.106 c-6.06,6.348-9.954,12.479-12.767,20.054c-2.742,7.357-3.463,15.437-3.318,24.816c0.072,9.305,0.866,19.763,3.174,31.377 c3.535-12.911,6.493-21.928,8.874-27.844c2.38-5.916,3.75-3.751,4.903-6.854c0.796-3.533-0.937-8.584,0.651-12.335 c1.659-3.896,6.204-6.275,8.582-9.955c1.876-3.822,2.235-8.943,4.185-12.335c1.804-3.389,4.328-5.987,7.861-8.08 C214.19,422.942,218.808,420.851,223.928,419.625z" fill="url(#XMLID_54_)" i:knockout="Off"/>
+ <radialGradient cx="198.1162" cy="416.041" fx="198.1162" fy="416.041" gradientUnits="userSpaceOnUse" id="XMLID_55_" r="89.5002">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFD6D6"/>
+ <stop offset="0.2885" style="stop-color:#FF6464"/>
+ <stop offset="0.3876" style="stop-color:#FF1C1C"/>
+ <stop offset="0.4333" style="stop-color:#FF0000"/>
+ <stop offset="0.4976" style="stop-color:#EF0000"/>
+ <stop offset="0.7111" style="stop-color:#BF0000"/>
+ <stop offset="0.7619" style="stop-color:#B60100"/>
+ <stop offset="0.846" style="stop-color:#9C0200"/>
+ <stop offset="0.9526" style="stop-color:#740500"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF0000"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF0000"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M186.273,509.146c8.943-4.904,17.169-10.099,24.382-15.87 c7.213-5.914,13.13-11.035,18.829-18.971c5.553-8.152,10.962-21.279,14.28-28.783c2.885-7.502,2.959-7.719,3.824-16.519 c0.72-9.234,1.083-21.208,1.083-37.295l-5.267,3.247c-2.959,4.473-6.418,9.738-10.098,15.509 c-4.043,5.843-9.45,13.923-12.336,19.189c-2.742,4.833-4.257,7.502-4.548,10.819c-0.79,3.318,2.239,5.122,1.015,8.729 c-1.229,3.392-6.713,8.367-8.372,11.831c-1.8,3.246-2.523,5.408-2.954,7.861c-0.866,2.309-0.724,4.616-1.515,6.06 c-0.868,1.009-1.733-0.506-3.174,1.586c-1.659,2.021-3.318,5.41-5.772,10.967C193.056,493.06,190.023,499.911,186.273,509.146z " fill="url(#XMLID_55_)" i:knockout="Off"/>
+ <radialGradient cx="242.6865" cy="337.1641" fx="242.6865" fy="337.1641" gradientUnits="userSpaceOnUse" id="XMLID_56_" r="47.6315">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFD6D6"/>
+ <stop offset="0.2885" style="stop-color:#FF6464"/>
+ <stop offset="0.3876" style="stop-color:#FF1C1C"/>
+ <stop offset="0.4333" style="stop-color:#FF0000"/>
+ <stop offset="0.4976" style="stop-color:#EF0000"/>
+ <stop offset="0.7111" style="stop-color:#BF0000"/>
+ <stop offset="0.7619" style="stop-color:#B60100"/>
+ <stop offset="0.846" style="stop-color:#9C0200"/>
+ <stop offset="0.9526" style="stop-color:#740500"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF0000"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF0000"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M263.313,324.982c1.37,0.795,2.6,1.371,3.968,1.442 c1.155,0.072,2.38-0.216,3.68-0.865c1.804,7.431,2.813,14.138,3.318,19.838c0.215,5.699,0.506,9.161-1.083,14.283 c-1.655,4.977-4.83,11.037-8.653,15.365c-4.043,4.038-9.092,6.852-15.15,8.728c-0.289-4.399-1.729-7.286-4.039-9.449 c-2.309-2.165-5.772-3.103-10.101-3.103c4.113-3.969,7.214-7.72,9.882-12.046c2.528-4.546,3.969-9.307,5.413-13.418 c1.154-4.328,0.07-7.43,2.308-10.964C255.021,331.258,258.409,328.084,263.313,324.982z" fill="url(#XMLID_56_)" i:knockout="Off"/>
+ <radialGradient cx="263.6455" cy="276.9727" fx="263.6455" fy="276.9727" gradientUnits="userSpaceOnUse" id="XMLID_57_" r="41.9899">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFD6D6"/>
+ <stop offset="0.2885" style="stop-color:#FF6464"/>
+ <stop offset="0.3876" style="stop-color:#FF1C1C"/>
+ <stop offset="0.4333" style="stop-color:#FF0000"/>
+ <stop offset="0.4976" style="stop-color:#EF0000"/>
+ <stop offset="0.7111" style="stop-color:#BF0000"/>
+ <stop offset="0.7619" style="stop-color:#B60100"/>
+ <stop offset="0.846" style="stop-color:#9C0200"/>
+ <stop offset="0.9526" style="stop-color:#740500"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF0000"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF0000"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M276.229,320.294c-1.734,2.02-3.608,3.029-5.628,3.606 c-2.309,0.36-5.698,0.29-7.142-1.01c-1.44-1.66-1.515-4.256-1.585-7.503c-0.22-3.606-0.365-8.512,0.359-11.686 c0.505-3.029,2.595-3.679,2.959-6.131c-0.074-2.741-1.229-5.483-2.094-9.018c-1.01-3.535-2.454-7.935-2.958-11.541 c-0.361-3.536-0.432-7.215,0.359-10.244c1.589,0.288,2.889,0.288,4.184,0c1.3-0.29,2.309-1.082,3.318-2.092 c1.949,1.227,3.754,3.824,5.413,7.791c1.44,3.679,3.1,10.099,4.184,15.364c0.864,5.123,2.309,10.316,2.09,15.87 C279.473,309.186,278.318,314.523,276.229,320.294z" fill="url(#XMLID_57_)" i:knockout="Off"/>
+ <radialGradient cx="246.71" cy="247.7568" fx="246.71" fy="247.7568" gradientUnits="userSpaceOnUse" id="XMLID_58_" r="22.6959">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFD6D6"/>
+ <stop offset="0.2885" style="stop-color:#FF6464"/>
+ <stop offset="0.3876" style="stop-color:#FF1C1C"/>
+ <stop offset="0.4333" style="stop-color:#FF0000"/>
+ <stop offset="0.4976" style="stop-color:#EF0000"/>
+ <stop offset="0.7111" style="stop-color:#BF0000"/>
+ <stop offset="0.7619" style="stop-color:#B60100"/>
+ <stop offset="0.846" style="stop-color:#9C0200"/>
+ <stop offset="0.9526" style="stop-color:#740500"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF0000"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF0000"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M267.281,261.719c-0.215-2.164-1.153-5.987-3.104-8.945 c-2.233-3.39-5.913-8.367-9.087-9.377c-3.463-1.082-8.078,1.731-10.241,3.68c-2.454,1.875-3.535,5.266-2.959,7.646 c0.649,2.021,4.039,3.967,6.563,5.555c2.454,1.443,4.764,3.102,7.723,3.896c2.81,0.792,6.707,1.083,8.872,0.865 C266.922,264.46,267.281,263.74,267.281,261.719z" fill="url(#XMLID_58_)" i:knockout="Off"/>
+ <radialGradient cx="91.3799" cy="289.4395" fx="91.3799" fy="289.4395" gradientUnits="userSpaceOnUse" id="XMLID_59_" r="52.5018">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1448" style="stop-color:#FFDAD6"/>
+ <stop offset="0.2885" style="stop-color:#FF7464"/>
+ <stop offset="0.3876" style="stop-color:#FF341C"/>
+ <stop offset="0.4333" style="stop-color:#FF1B00"/>
+ <stop offset="0.4976" style="stop-color:#EF1600"/>
+ <stop offset="0.7111" style="stop-color:#BF0600"/>
+ <stop offset="0.7619" style="stop-color:#B60600"/>
+ <stop offset="0.846" style="stop-color:#9C0600"/>
+ <stop offset="0.9526" style="stop-color:#740600"/>
+ <stop offset="1" style="stop-color:#5F0600"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#FF1B00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#FF1B00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#BF0600"/>
+ <a:midPointStop offset="1" style="stop-color:#5F0600"/>
+ </radialGradient>
+ <path d="M99.999,273.909c0.649-0.143,1.154,0.218,2.092,1.083 c0.649,0.576,1.587,1.371,2.813,3.463c1.011,1.875,3.03,4.111,3.824,8.367c0.505,4.257,0.144,12.336,0,16.735 c-0.361,4.186-1.731,5.05-1.587,8.729c-0.072,3.534,1.298,8.8,1.875,13.057c0.504,4.256,0.432,8.224,0.577,12.19 c-0.145,3.969-0.433,7.647-0.865,11.326c-2.597-1.082-4.978-1.659-8.007-1.731c-3.03-0.144-6.132,0-9.595,0.722 c-1.947-0.145-3.174-1.082-3.679-2.814c-0.793-2.02-0.216-3.894,0.361-7.861c0.578-4.329,2.02-10.46,3.463-16.158 c1.154-5.7,3.39-11.253,4.184-16.951c0.577-6.061-0.288-13.059,0.144-17.387c0.433-4.398,1.516-6.203,2.453-8.223 C98.771,276.219,99.421,274.704,99.999,273.909z" fill="url(#XMLID_59_)" i:knockout="Off"/>
+ <g i:knockout="Off">
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_61_" opacity="0.8" transform="matrix(1 0 0 1 138 251)">
+ <foreignObject height="267" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="86" x="0" y="0">
+ <imageReplacement align="center" height="267" opacity="0.8" placementMethod="ratio" refHeight="267" refWidth="86" valign="middle" width="86" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_60_"/>
+ </foreignObject>
+ <image height="267" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_60_" opacity="0.8" width="86" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAFYAAAELCAYAAABDMXFqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABLpSURBVHjaYmAYBTQBAAE0imgEAAJoFNEI AATQKKIRAAggxtEgICos/pNqGEAAMY4GJsmAqEAGCCDG0QAlOnD/kxK4AAHEOBqgeAMZW2ASFcAA AcQ4ggOVEQebAU9g/kfCeAMXIIBYRligogcmOobJoQfcfywBiLc4AAgglhEaqExIgcmEJXDRU+k/ pMD9h6aGEVsgAwTQSEuxTGiByYSEsQXsf6TA+wfFTMQELkAAsYyQAGVAS6EwzIwlcBnQUuo/NHFk Ps7iACCAWEZIEYAtQJmRApYZS8D+Q8J/sZSv//EFMEAAsYzgQGVBopHl0VPrXxwBip79UfgAATTc UywjWuAiByoyZsYSsH+RAhUWoExIRQEjrooLBAACiGUYp1ZsKRY5UFmhmAUpwBnRApERLQUzYam8 sAYuQACxDPMigBFHEcCKhtHLWPQK6i+aPCOhzhVAALGM0CIAFJhsSCmWBUsxgJ5KGfEEKEaqBQgg lhFSBDDhSa2sSMUAesfgLzGpE1tRABBALCOkCECvrFixlLEwM/7i6DAwEBhHQAEAAcQyjIsB9PYq C44Uy4KlmcWIZ/DlPwMRw4YAAcQ0jMcCCLUEcDW10APyH9pYAa6ARREDCCCmYZpScQUqrvYrtjGC fzgwUSkXIICYhklqZcAyuIKrGMAWqIxoAfoXDaMHLMEyFiCAmIZZaiVUaeFKqf/Relt/cQTufxyB iwEAAohpGKVWfCkVPVCZ0Wp99FT6Bwmjp1qiZhEAAohpiAcqobKVmUCgog+2/MGC/yLJ4wtcFAAQ QEzDqAgglGKZcRQB6IH6G4r/IIljC1QGfMUBQAAxDfEigAHPeAA5gYoNk9wiAAGAAGIaBqkVfTYA X+DiKlexpdY/aOUutkDFGbgAAcQyhFMrtrkr9EBlRusAIA+WYCsC/uAJ1H8MJCzaAAggpmFQtuJq XjETaAUgB+xvLIH7F08xQBAABBDLEE6t2FIqM5ZAxdUJQC9LqVIEwABAADENg9SKL1CRiwIGtOHA vwSKgH84igCiAEAAMQ2D1Eqo3UqowsLXGfhHTmoFAYAAYhpCgYqvM0Co0mIgUAz8wTE2QNS4ADYA EEBMQ7QIYCRzPABfiiWm60o0AAggpiFUBDDgqbCYSegM/EXrVeFLrf/JSa0gABBATEMstTKRMNCC r5dFbKAykBOoIAAQQExDJLXi6gzgqrDQ56xwFQOEUup/ch0PEEBMQ6xsJZRimSksW/9TWgTAAEAA MQ2R1ErseCt69xXbWCuuQWyqFAEwABBATEMwtTKRMYKFbRQLX/b/T6njAQKIaYikVkLDgrhmW/8R kWKpnlpBACCAmIZIamVkIG5mAF9q/UvkAMt/angAIICYhmBqZSYztf5hwD1BSNXUCgIAAcQ0RFIr oUAltkPwlx6pFQQAAohpiKRWJgbCs67YUus/Bsy5K5qnVhAACCCmQZ5acXVdWXGkVkY8vSy6pVYQ AAggpiGeWtF7Wv9xVFrEjAUwUDNwAQKIaZCnVkLrr/DtdsFXaf2nZWoFAYAAYhrkqRXX2lZclRah div6rABNUisIAAQQ0xBIraQ0sbCtFaBr2QoDAAHENMhTK7bl7biKAWJS6z96pFYQAAggpiGQWolt Yv0nUGH9pVdqBQGAABpslRcxgUrMtMtfevaysAGAAGIZBMUAsduHWIlIrf8INK/+0SO1ggBAAA2W MpaUJhYLEYMtdBnBwgcAAohpgAOU1KFB5A3F+IoBuoxg4QMAAcQ0wKmV2EDFtueVgQFzifufgS5b YQAggJgGSWrFNe1CqIn1n0BPC9umDLoAgABiGUSpFYaJbQkwkFiu0q0YAAGAABpMRQG22QFyU+u/ gaq0YAAggJgGqBhA30VIzJ4s9FEsQoMtA1JpwQBAAA1kGcvEQPwuQmJmX+k+NIgPAAQQ0wAEKDGV FqlTL7i6r3SvtGAAIICYBrBcxTfggt7EIia1ElrVQtcABgggpgFMrfjarqwkplZCw4N0LQZAACCA BkOKJWbAhdDKlkHRxEIGAAE0EGUstr1ZxLQESBnFwla20jVwAQKIaYCKAUa0DgEzjmIA33JMUvYN 0B0ABBDTABYBxG7RZCKQWokpCugOAAKIaYDKV3wBi75HC7n7SmoXdkCKARAACCAmOhYDDHgCldCq bGyjWIQqLoaBLAoAAohpAIoBYra/o+99JWURxr+BLl9BACCAmAawGEDvxqIvJcK3KhvXIQ2DohgA AYAAYhqgYoCYjW/EjgsQOgxnQABAADENcDFATIfgP5GBiq1sHbDABQggpgEqBnBtKMZ2rDO+VdnY zhMY0JQKAwABxDQAxQCh3dqDagExuQAggJjoWAwwEQhcckax/uJJqQMauAABRK8ylglP+cpM5igW odWDAwoAAoiJTsUAvtXZuDa+ERpwGbTFAAgABBDTABYD2NquxE5rD+piAAQAAohpAIsBZgbizxrE N0sw6IoBEAAIIKYBLgbQUyu5CzH+D7bABQggJjoUA4xEFAPYyldCldagLQZAACCA6FHGEhrNYmIg ffXg38FcDIAAQAAx0bgYYCKyGCD2mJEhUQyAAEAAMdGxGMDVlSVnantQFwMgABBATHQuBpixBCoT nkGXQT/uigsABBATHYoBbKmVnN4WvsNxB13gAgQQEx2KAWIGXEjtbQ3qYgAEAAKIlkUBE56igJxi gGqHjdEDAAQQrSsvJjJbA/9IqLQGZeACBBATlQKTgQH/Km1cFRcxdxCgN7EoPsWNHgAggGhReZHS 28K27P0fA3GbNAZtMQACAAFEq8qLGs0sYlcQDkoAEEBMVEypDEQELHqgUrJlc1AHMEAAMVE5pSIP EzIz4F47gK/S+kNE+Tpom1kwABBATFQuBrAFKjORnQJCk4ZDpnwFAYAAYqJDMYDv6HxSOgVDKnAB AoiJysUAI4ldWELDhIQ6BIM2cAECiBZFAa4iAP3GYkYG0pYPDZliAAQAAoiJBoFKTFHAQMSgC7bR rEGfUmEAIICYKAhMYgZe8DWz/hNZDPxDCtRB3dtCBgABRK3Ki1CgUrKK8P9QKwZAACCAqFl5ESoG SDnAYUj2tpABQAAxUZhScVVcTCQUA8Omt4UMAAKIiQoplZhAJaa39Weo97aQAUAAUbsdy0Rk2Ypc vv5hIH5r0ZABAAHERIVAxTf2SuygC7FnDQyZwAUIICYyy1d8zSwmLMUAMSNZQ26KGx8ACCBKKy9i 5rdw9bTwHeIw6Fe6EAIAAcREw7IV234C9BSLbZULtkAdcoELEEC0KmPRWwLk7t4eksUACAAEEBMZ RQChES0mLCkW30gWKee5DBkAEEDkVl6kdAxwXQc9KM4gpBUACCAmCooAfE0tYsrXv0R0CobMoAs6 AAggalRehMpXfMXAsBl0QQcAAcREYhHASEKg4hsbIDRMOKQDFQQAAoicyouBQMcAW0+LgUD79d9w 6G0hA4AAYqJSEYAvcBkYyFvwNiSbWTAAEEC0qLzwjQ0M+QXFxAKAAGIioQggZlMcMa2BfwwDeIw+ vQBAAJFaeRGbYhkZiJ/bQg9chqHczIIBgABiIrMIIKa3RagY+McwRBdjEAMAAojcygtf2YqtRUDs bOywCFQQAAggJiKLAEYG4rYa4UutxAbqsEi1AAFESuXFQGTFhS+1/mPA3P0yJJcQEQIAAcREYhHA gKMoYMJTvv7HUb4Oq9EsdAAQQORUXkwEAhdfah32zSwYAAggJhLKVwY8gYqtmUVMjwtf2TqkAxcg gIitvBgY8O8xIKYY+IcHD5siAAYAAojUMpZQUcCIpfLBVwwMq5YAMgAIIHK7tEw42q2MZDS1hl35 CgIAAURpimXEwmbA0Y3FVQQM+dkCbAAggJiILFsJFQeMOIoBbEXBsC9fQQAggEjpeeHr0jIRKAaw dQ7QU+iwClyAAGIhs0XASKBsZcDTzBrW7VcYAAggSiovRhxtV0IpllCLYFgELkAAUTIIgx64uMpW Qt3XYVe+ggBAABGbYhlxpFB8bVdiOgfDNnABAoiFyBYBtoqL2PKV2LNchlXgAgQQE5nFACOOJhau jgExZeywAgABREw7llAZi69jgCuAh934KzoACCBiKi9SUux/PJXXsFiTRSwACCAWIosCbAGNrg4W QIR6WsO60oIBgAAiZ6yAmBQ7YosAGAAIIBYyylZcHQL0FEvMgMuwLRIAAoiFiin2PxG9rv8joRgA AYAAYiEyILE1vxjwFAP/caTWfwwjoOICAYAAIjfFMlAhtQ7rFAsQQEwkjGoxEAhcQu3YEVNxgQBA ABE7bMiAI4DxpVj0ympEpVqAAGIhoxjA1czC10Eg1HYddgEMEECEurS4Ki8GIka1/o3ElAoDAAHE RGRRwIin54WrfP3PgH+V9rAOXIAAYsJTpjIQKALQFxb/x1IU/MeDhzUACCBCrQJCTS5cAzC4AnjY l60wABBAxE5/MxIwB187dkSmWoAAIlTGMhJZLDAQCMARUwTAAEAAkTLnha+oICVAR0QHASCAWEhQ iy+VjqZYNAAQQKSuhCFUzuILzBHT1AIBgABiIaLtSkyFhavX9Z9hmC8lwgUAAoiFhM4BvlTKgKf9 yjCSBl9gACCAWMjUhyurj8juKzYAEECEFmwQKgLIwSMCAAQQExkpFV+5Smxza9gHMEAAMZFZDJCa chlGWpEAEEAsJAQkrjKWlKbWiAlcgABiISOlElveElP7D9uABgggJjKy/38iU/KIGn9FBwABRElz i4GEhv+Ia3IBBBA5J2yQ074dcQAggJgYRgFNAEAAUXLYDrkV3ogAAAHEQkERgG9JJ6lFyLADAAFE yiwtofUFxMzkjhgAEEAsRKZMBjzFAaEx2xEZwAABRGjYkJjDdrAVDyMeAAQQsUvliS0KGEcDGAIA AohQisOXUnHtnmHEk/JHDAAIIGIXHuPbUs/AgH9f7YgEAAFEympDJgb8m5P/MRBeoDxiAEAAEduO JSbFMo62YxEAIICoVXkRs4Z2RAUyQACx4GmvMuAJPGxncDOO9FSKDAACiImINiwxqXa0XEUDAAFE yl5aBiICcrQtCwUAAURoZyIhOVJWzowoABBATCQEIr5UyEjE+MKIAgABNDrQTSMAEEC4AvY/HnFi lryPuAUa6AAggFiIDFAGIgL0/2g6RQCAACJUFBCzMIOBAff0+IgNbIAAYsGTCv/jCOD/BAJ8NPUC AUAAMRHI1rgCD98VJqNFAhAABBALEWXqfxJT7Ija5Y0LAAQQodEtfMs1/zFg3504YgMTGQAEELGr DQltPB4xZ70QCwACiIWI1sB/IlPsiDj2iVgAEEAsBDoAlGxAHtGpFiCAKKm88JWxIz7FAgQQCxGB ykAgtTKMtgYwAUAAMRHRXSVnI8eIL2sBAojYhcf4ApnU8nREBDZAABHTjiW2ciJmnGDEpGCAACJ1 qTyxgzDElL3DGgAEEAsJqQpfYI2o4/WIAQABRKhVQOlYwX8izB+WACCAWIjI9viKgn8MuE8yYiBQ 3g5rABBApLQKiEmxI+bUeEIAIIDI2fKJPCDDSGTbdsQBgABiojDFktpRGDEBDRBALCSkVkIBN+yv kiIFAAQQttEtYk8qgt3TzTjavcUEAAHEQmRqJSXF/h9NtQwMAAFEjTNhGMhMrcM60AECiNrNLXw9 rxGVggECiNhBGHyBzMAw2grAAAABREyXllAg46vgRiwACCBST9jAFcj/iRAfUQAggMipvP5TwB4x gQwQQJSsjyV19eGISrUAAcREhcAckVmdEAAIIGodtjOiy1NsACCAmMgIxP8UpOwRAwACiJZl7IgO YIAAYqIgEEcDEA8ACCAmEgOJ0NL40bIWCgACiJQ5r/+jFRfxACCAyGluETNhSGxnYdgCgABiITEw cYmN6CFCbAAggEiZmsEWgP9wiI/4gRiAAGIhI/sjr4tlIDLFjjgAEEBMJFRcxM7Q4motjCgAEEAs aIHHSERqZcJRFIwe1Y8EAAKIkqKAAUtxgDyhOKIrL4AAIrUdiy31EkqxI7JIAAggfMs4GQmUr0xI RQHDaKsAFQAEEDkrumFFAa5dM6MtAyAACCBmND6hUzixqcG1uQ7fwo1hH/AAAUTuHgT0SoyBYXSv FwoACCBi1m6hB9w/LG3g0XUFaAAggJixiDEyEHcwL3q2Hl3CiQQAAghXwBIqbxmQKi3kwP032tSC AIAAIhSwxNz7jW+5/IgtawECiJKdiQwM+FfDjOhmF0AAMeMQZyRSjNgWxIhLwQABRMm1U/8JFAkj GgAEEDMeOUYKioYRP14AEEAsZKZWXHKjSzmhACCAmAnIE2oFkJqKRwwACCBGEuRJva4aV2oeEQAg gBhJVEPKObAj+kBJgABipEAdI5Fl8YgsZwECiJGG6kd0kwsggBiprHd06hsKAAJoFNEIAATQKKIR AAigUUQjABBAo4hGACCARhGNAEAAjSIaAYAAAwAUsFw/TfjzEQAAAABJRU5ErkJggg=="/>
+ </switch>
+ <g>
+ <path clip-rule="evenodd" d="M199.909,258.112 c-7.217,9.811-13.563,20.848-19.84,33.399c-6.275,12.553-11.613,22.434-17.167,41.333 c-5.843,18.685-13.995,42.993-16.664,70.117c-2.813,27.123-0.145,81.803,0.216,90.602c0.072,8.008,0.216-25.174,0.722-40.829 c0.288-15.797-0.722-33.975,1.947-51.72c2.525-18.034,8.152-36.501,13.563-54.247c5.409-17.816,11.325-36.718,18.034-51.146 c6.348-14.498,12.983-25.752,20.2-34.552C200.629,260.133,200.269,259.123,199.909,258.112z" fill-rule="evenodd" i:knockout="Off"/>
+ <path d="M199.909,258.112 c-7.217,9.811-13.563,20.848-19.84,33.399c-6.275,12.553-11.613,22.434-17.167,41.333 c-5.843,18.685-13.995,42.993-16.664,70.117c-2.813,27.123-0.145,81.803,0.216,90.602c0.072,8.008,0.216-25.174,0.722-40.829 c0.288-15.797-0.722-33.975,1.947-51.72c2.525-18.034,8.152-36.501,13.563-54.247c5.409-17.816,11.325-36.718,18.034-51.146 c6.348-14.498,12.983-25.752,20.2-34.552C200.629,260.133,200.269,259.123,199.909,258.112z" fill="none" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ </g>
+ </g>
+ <path clip-rule="evenodd" d=" M187.951,241.422c-0.713,1.739-0.826,5.608-0.064,6.735c2.25,2.625,3.976,5.396,9.079,5.288c3.104-0.433,8.923-1.46,8.853-3.84 c-0.289-2.741-4.7-9.989-7.514-10.855c-3.248-1.082-7.819,1.256-9.408,1.601L187.951,241.422z" fill="#272727" fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <radialGradient cx="192.2998" cy="242.8223" fx="192.2998" fy="242.8223" gradientUnits="userSpaceOnUse" id="XMLID_62_" r="12.2267">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.3228" style="stop-color:#BBBBBB"/>
+ <stop offset="0.4333" style="stop-color:#9F9F9F"/>
+ <stop offset="0.5767" style="stop-color:#676767"/>
+ <stop offset="0.7111" style="stop-color:#363636"/>
+ <stop offset="0.8144" style="stop-color:#2D2D2D"/>
+ <stop offset="0.9852" style="stop-color:#141414"/>
+ <stop offset="1" style="stop-color:#111111"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#9F9F9F"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#9F9F9F"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#363636"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#363636"/>
+ <a:midPointStop offset="1" style="stop-color:#111111"/>
+ </radialGradient>
+ <path d="M189.92,243.378c-0.985,1.616,0.655,6.72,3.04,8.079 c2.379,0.937,9.525,0.427,10.677-1.191c0.655-2.04-3.45-8.25-5.668-9.44C195.26,239.72,190.985,241.337,189.92,243.378z" fill="url(#XMLID_62_)" i:knockout="Off"/>
+ <path clip-rule="evenodd" d="M190.742,243.245 c-0.101,0.487,2.978,2.841,3.872,2.678c0.495-0.244,0.495-3.652,0-3.978C193.72,241.378,190.642,242.434,190.742,243.245z" fill="#FFFFFF" fill-rule="evenodd" i:knockout="Off"/>
+ <path clip-rule="evenodd" d=" M159.604,238.347c-2.867,2.311-4.3,4.533-4.636,6.671c-0.253,2.052,1.011,4.705,2.781,5.987 c1.349,1.111,3.288,1.625,5.817,1.198c2.192-1.968,3.876-4.362,4.13-6.243c0.253-2.224-0.674-4.962-1.855-6.245 C164.492,238.347,162.3,238.005,159.604,238.347z" fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <g>
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_64_" opacity="0.8" transform="matrix(1 0 0 1 289 187)">
+ <foreignObject height="151" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="94" x="0" y="0">
+ <imageReplacement align="center" height="151" opacity="0.8" placementMethod="ratio" refHeight="151" refWidth="94" valign="middle" width="94" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_63_"/>
+ </foreignObject>
+ <image height="151" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_63_" opacity="0.8" width="94" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAF4AAACXCAYAAACcNewSAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABWaSURBVHjaYmAYBQMCAAJoFA0QAAggxiHq hv9DPeABAohxGEXskIoMgABipLN5jFRwx38iAnzQRwJAADHSwAy8fEZGRmL04A51IMASuMSwBxUA CCBGKunFYDNCQxhJDqt6JHVY3QQNZ2yB+R8pHv6jiWOjBxUACCBGKgU4I1IYMiJhWNhiRAKWlM+I x01YAxgq+B8pElD4gzn1AwQQI5nq0QMcObCR+UzIgY6mDl+uYMQV6MiBCwT/oOx/UPF/SGr+DebU DxBAjGSmclwBzITMRqNBFBNSgDPiyClw+5CLGViAQwMbFtB/kfgoNJKa/ziKogEFAAHESGYqRw5U JjSaGVkMhmF6kAMdFxsp0BnQAx2GYYEOxCD6L5D/B42PHBGDLvABAoiFhEBHDiDkgGUGspmhAY4L I0cCI6FIAGFYwKMF+n9YwELxn3///oFpEAYFPhQzQiMGbCw08JHLesaBDnyAAGIhMsUjFxWwFAwL VBYYZmJiQmbD5JihbOQIgJmFTKOneEZYuKMHOiywgfRvoLbfQPZvEBtEAzETkM0IDXSQOobBGPgA AcRCbLmOXJRAAx0WwKxAmhVEo7NBEQGNDHjgA2nk4gdXwKOkeHByBwJooP+B4t9Q/AuEgdp/Qtlg O6AR8Bsa6LgCf8AAQADiyl0HQBAIgsYz+P9/C8UFdwyQTbSws9hMx2PYHMeHEbMbp3SXXEZOGBHF uOQj/qX5jw/YxY+s2U7TkZ6Zt3AR0U2sCueprEnjifbbxCm9m/xu9/vlAS4BxEJiEQMOdCiGBTY7 MJA5oJgdiYZFADjwgTQLtlQPS/HIgY+U2hlgqR0K/sACHoh/QjEosNmA+DuQzQyrf0DmIAc6WsXK ONBFDkAAsRDZdGRCLs+RUjgnNKA5WVhYOGE0EMMCnx3IBucOWMAjpXycKR5aviMXMyAMDNe/sEAH B/yfP39+APF3aMCzQnMkEyzyQEaCSh2Qfph5QDFYv+DfQAY+QACxEJHaMYoZaGoHBzgQcwEDF4S5 QTQrKyuIzQHDoJQPCnwcAY9RySJVrOAUDw30f8gBDwzsX0D8E2jOd1ACgLqJBTm1wwIVpBEU2Mgd MGjgMw5kWQ8QQMQUNfBmIzTFs0JTOwc0xXNDA50HGOjcUAyKAFjgwwIepI8ZBEDmIRU3KJGMFOiM yBUrMMD/wQIeCH4BjfkBDXQ2qD+YQRUqLPUit/mhAY/esYKlesaBSPUAAcSCr7OE3GZHasmwQrM2 rKjhAmJQoIMwLxsbGyzgQRhU1LDDUjw01aMEOlrgMyAXNZCGDKSo+QsFwJT+G6j9FzTQ2aFFDDi1 I0cWcqUMMeofcq8WOdUPSMoHCCAWYjpNSKkeFvCsSJUqLPBhqZ4HGPiwgOcAYniKB6V2pIBnRBpK QA94BuRWDTTgwSkeqPUPUPkvaICzAqXBKR1aLDEgZxKgdfDOFqhND8JI4zn/kAKf7q0cgAAipueK XsYjp3o25AiAVqycsLIeLeBZYAGPlNrRRykZkVozcAwKeKC6f9CA+wt1NwuozQ5N5eBAh+YQWLMT HOBAK/9AhxD+wlI+cpGDpbynS+ADBBAxHSiUwTD0zhMUg5qN7EjNS2TMBkvtSOU7IsQRw/HwQId1 emAYKg4KKFAlAS5SgOHHBIxQcJMRKMYAZP+HBTiQ/Qc2jADCoMCHjuWAUv0f5MG1gRo+BgggFhIC HTmJwocNkMdpkDpI2DpKTGjNRpyTS2gDZPDKD2oOvJkIwsBA/QfCsKIFGOgovVvoMMJv5PEckFpY sYOU6unasQIIIBYS1GIbxsU3wvkfuSmOVCQgFzEY4+XQQEcu5xmhZTcjUnHCgNyhA0bAX1DZD0rZ oMAGBj4ssH8hBTw8AkCpHqm8h1W6dK1oAQKIlIBHDkjk5hl84AqUymCDV8CKkAVapoBiCuQ5ZuQ6 FSng/yPPoyKlekZYZEErT0boUAByec4ALbpYoMUdxhgONPCRMTgCkIqcv9BI/I+c02gNAAKIBU8g MyB3ONAmIZCHZWEeBXXf2YDNPZQAh5atsI4TfNIJqSv/D33+FK0tDy6ioCOOsMEvJqQWDLgYgpoP qkvYoUUMLKB/QiPgJ1rg/4Gmfma0VE+XShYggFgIpHDkwIcFOixV/4JiUICDxklYQGMlwIBHDnCQ PCs0UMDxgVShYkzhIYU8cnseFNjMMBqI4Z0laGTAAwop8NmA4hwgtwExJ4iG8UGVPzTwWaBmwVI9 rANHl5YNQACxEFO8wFIELJXDUg7QIz+gRQoowJmgAQqbDYLnAFhrBq1s/482X4pc7MACFN55gwYS CMM6TCywsRno2DuYgPaOQe17NqD7QIHMAcPQiPgJywVAtaAi8Q+s4kebKqRpJQsQQCzEpnRoyvgD q7SggY4coLA5UFgugDUjWdCGB1AiFFuKR2rNwAKeBToWA+8/QDtQbEhjNIzQHiks5bNAUz6o6GEH ugc0xPEDJAbkg4esQZEJm1+ATRciD1vQMtUDBBALlkBnxFKhggMeVCFBZ3vgzUWghxiQAv03NDWB ih42qOdhamHJHXmcBGWFAHKxAQt4aMCwIA1Hs8OGC2BzAFBxZmgxBgt8kN2s0KKOHRbgoEgA6QGx oT1gWEuHCclemhc1AAHEQkwxAy0+mKDtYHgLA1keKdB/QAfEYJMg6MUMemsGPdXD1DChBTwbNJDB Y/+w0VFYpw06MQMLfFA7nxFaqbNCI4ANmBjYkSZuQGIssD4HrBKHpnrkvgRNIgEggIht1fyDVUCw 8hfS82ZArnB/Q8tQVtBsENqUH/KYDAOedTHIHkQenGNFHhWFjg+BKs3fUDbIbeywOV6YOdCmJjOs d40c6DCMFvh/GTAXZNEk5QMEEK4yHtnSf9D28l/kMXLoBANyageNGoLGT1iRJruRUzu2Igy9ZYPe YWNCmkyHjwuBJkFAnSRovwHW/f8LjRgWqN5/sMCHDWkjD3HAxvBB6kE5A7l3jdS0pFlxAxBAxDQn 0SMAPmIIrXiRy34WtGEDJizDvuhNSfRleLB2PhPazBc44EGBDgx85CEA+KAXaOgA1JqBFTloQw2w iXdW5DljpFwCdi+sjKd1cQMQQPiKGpSKEHnwCtrc/Q8d7fsL7YIjl5X4Ah1f4DNgWdnAjDTdCGqH /0IaAPuH1ov+By2jWaGB+B9b4CNN1LNAixoWmNuxVLI0KW4AAohQisdW5CAHFKyoYUJfPYZl5QB8 JBLHCt//OIoacIRC292gouQP0kqx/7BJDeTJcejYDQu05/sPaWSVCW0NEDzF46hkaTaOABBAxIzV IFv8D9ZZgbLhKwSggQ9bSMSEY0ANVwXOgCfFwwLrD9ryvP/ogYI05AAucqABCLOAEW0BFqzVhVzB MiEXN2jFDFWLG4AAIqbnipHdkDwCG1f5h7YmBrmcZCQmUuHDkkjj87DUBy3KWJCKk/9IsQMfr4bZ BRqfh7bGWJAqSwb01RJIKZ4FqaxHr2RpMoQAEEDMJA4LYxvKZUCexUfvGKFNOMD6BP+QJ6PRF5ki NzMZMNe7oxdLOBe+ouWC/0hDHn+QeuG/YZMksMoabW6WJmU8QAAxk6geXyXJgNR+xhZQ//AEJL4A hpuPpUhixIKRl4wzogU+yoJXaIAjY9gU4V8kd+Hq1VMEAAKImQK9jAR6vP+x8EkJdAa0FIc+eIWr PmCE+gs58BnRBuX+ogU6ONXDUj4D2vJuWOVNTQAQQMxUMoeYSCBUZOAs/5HH8BmwbPlB2yDBjDQ5 DyuvYXUGzM6/yMUOWiT8RS4OiYh0sgBAADEz0A6Q6sD/+PSiTaCgVMLIq93QlpAzo+UE5FYP8oaG 38hFDizgcUyGUwUABBAtA57qkYee8rGkdnigYwt8tGbxPxyp/i/S5Ag81VO7uAEIoMEe8NgCH+vW IOTOFlKTETkSkIsd5M4fPNXD5hyQiqJ/OIpGiosbgAAaCgGPM+UzoK5yw7pLBcu4EQNa4P9Brmyx pPz/aE1LqgCAABoqAY8e+IyMqEvRGJFGIZmR1vGzII3PoI+UIu8axGhWIvUt/mJZX08xAAigoRTw DFjGfeBNRrRiBT4Wg7wdCKm8Z0RaOfEXS/MSeRAOW/+D4uIGIICGYsBjS/UogY8+FoMUEfBpSCxl PXrrBl9PlmIAEEBMQyzg/2OZTIG1TpBbKfCVY7BFVmgjmtjGbViQNtAhV8wY+7Oo4RGAABpqAY8S AWgLolCGA6Brf5BTMXIrhQGt7c+CNjGCXDEjbzGlWu0KEEBMQzXQ0SZS4Lu9kQe8sFWYSCOVjGhN UBYsI5XMSD1hbINwZEcEQAAN1RSPbUgCebTzD5Yy+w9SkQRbd4lt7T9sDQ/GMDED7qNiSAYAAcQ0 1AMdW3GDVFliS/WwihJ50RQzNLCZoXMU8BYSA9JOQgbUyR2KAEAADekyHpmPdrgERsDDdohAMfLs Ffo+L/QhByZaVLAAATTUixqMEVCkiRVYICO3bFDKetikF3Jxg4ZRjoHBEeBkRQJAALEMg0CHbSZG 31KJMdsEigDoJrR/oHVBSK0j9LWayDvEmdCLGgbUMX6yAEAAsQz1QMcyiIU85AveMAFamQAKdOgK BXCxwwBZD8SAHPDI6/FxBDhVBshAACCAWBiGB0DZOAFbcojcnocFPnQnyB9oqwXlYCKkwEc/PIOq nScQAAig4RLwGO16bIEPXa0Am+j4gxTw/6E7TFACH7Z8BWmlBDaarOIGIIBYhkmAMyBtGULfLvQX OdDRUjwsNf+DnpmAbZsnA47ApwgABNCwqFzRmpXYAh+lmEHa/wRbwATreP2HbWpDqnDxnQ5LduUK EEDDqqhB3ijHgDq9B98oB03tv5FSPDOseIIFOnrKR4oAqpXxAAE0nCpXlMls5FQPbcX8QQp05B1/ KB0wpAMoUIoctBim2MEAAcQyjAId23od5EkOeAQgbTJmRlrw+g/pCC7k/bwM+CKBXAAQQMOpqGFA rmTRVjT/Q2rP/0WqaJEngpAH0FAqWloAgAAabgGPrTMFGy7+ixToyMeowBbaIq/dRC9usJ6zQAkA CKDh1o5nREr1/5Da8/DAh41cQls4zEgH0CEv/UY5bYgWjgUIoOFWuWI7e+wf9OBP+MAZjA+lUY7T YsDcYY7RpqdG6wYggIZdGY+lefkPbecicsqHbyVlwNyHhb69n6qOAwig4RjwGGfMIxU3yEUPcqAz MKCtXEY7M4fqjgQIoGGd4hnQZqnQAh3Xepn/aAGOfkYbVXqxAAE0HFs1uNr0KBHAgLpLBVkPeoDj Y5MNAAJoOKd4BgIRgG+dPrZUjo1N9ngNQAAxMQx/QGhnCgOBQKfqGA0MAAQQ0whI5QwMuLcGYQt0 YjDFACCARkKKZ2DAvZH5P4mBTrVyHiCAmIZh4OILdHQxRhJTOra5V7IiASCARkqKxxc5WLdsMuBe XUCVFA8QQEzDPJBJ2UxAaoqnKAIAAmiktWqICWj01E6TVA8QQCOtqCGluMG2xINqlStAAI3EgMcX 6ExoqR5Xiqd4KR9AADGNkFRN6CpSBiyBTyjQKWrXAwQQ0wgqVggdSoQr9eMr58kGAAE0kipXQq0b XHdf0aRyBQggpmEc0P/xDCPgGxwjVNEyUKMTBRBAI7E5ie+mS1zNSqoXNQABxDSCAx3bSU+kjNlQ VOQABNBISfHEnpvDiKWFw8RAg5FKgAAaKc1JBiLK+P8kjt1QBAACiGk0peM8XI6JyKKGrE4UQAAx jYCUzsBA+vFcjLTuRAEE0EioXHGdBviPiKYlMe15sgBAAA33oobYSCCmJ0vVIWKAABpprZp/DITP wCR27IasAIcBgAAa7q2a/3gCH1exQ0o5T3ZbHiCARmo7Httqsn94xnCICXySAEAAsYyQAGfAEeDY zjAmduyGosoVIICG8yAZvlSPHPB/sUQEAxERwEBJJQsQQCOxqPmHB2MbQiA2xZOUAwACaCQNkmFL 6X+xpHpSK1myAEAAjaZ4zKLmH4U9WaIAQACN1A4UeqD/JVDcMFC7cgUIIKYRUsTgK9//4kj5pLZu SIoIgAAaSYtWsaX2v2hlPTHlPFWalgABNFLXx/8jUNYjqyU0boOr04UXAAQQywhO8f+wpPi/DNjP HiNlXSVRO0QAAmikrashFAHUaFISVewABBDTCCpiGBgwRydx9VxxBT6py/pwAoAAGklrJ5EDH1uL BjnVk1u5Eh34AAE0Els1uNryuMZraLLWBiCARuISPmJ6r4SKGULnURJM/QABNJJT/H8SBsmYcGCy K1iAABpJrRpszUp804HIYYR+DC76iay4pgVxAoAAGomVK77Ax1W2MzPgOXsYT6DjjASAAGJhGFmA mF3e/9GKGJgYocDHVs7j7EwBBNBI6rkyEgh0bEMETEjh9A9KwzChwMfbgwUIoJGW4ompBxjQynQY nwXa+sEW+MhFDraRTQw7AAKIZYQFMDH3hGNrxfxD6nyBzjJjxRH4RBc3AAHEMprKMfjIqZ2FAXFs FiNawKMHPknFDUAAsYyQQGYkQh5bamdGK25gna3feFI9tuIGAwAE0Egu4/Et40BO8cxoZfVfpBTP SkTrButl6wABNFq54h6TYUYKfEakIgdXUcOMo02PtcgBCCCWEZ7S/xMZ+ExIAYheubKQGuggABBA o5UrcSmfCamMZyGhPY8TAATQaFFDOOUjd6SYCfRgCa2fh9sDEEBMIzyw/zMQf1gcMePyRK+fBwig 0ROa8K88IHUXONEAIIBYRlM73pUHf5CakwwMxO8iYSAUEQABNNKGDBgZ8K+X/4PUQfqN1HOFdYj+ IKnBNj/7n4HI5R0AATSa4hGpHPkOERD+hZTaYfRfqPhvLBHwj4H4k0IYAAKIZbSIQQl4WIDDmomw JiQzUlHzCynwf+NI/QRTPUAAjcTxeAYsqR094JnReqqwSICp+wnF2AL/HzGBDxBALCO4mEGe9oMF OjNSIDMgjcsgp/g/0MjBFfhElfkAATTSB8n+obVefjOgTvf9QRso+4+WM35CaVj9gC/Fo/ABAmik z7kiL1T9zYA6efEPrWUDE0cvln6RU9wABNBIbE6iBzys7EYexoVFCHIlizws/BetBYTcyiHU8QID gAAayaOT6AGP3EmCBTzywBd62/8PWjMU39pLDAAQQCOxqEGfC/2HpdxHLoLQ18vjW19P8N4RGAAI oNFhYcyARy/7GbE0RYnZK4sXAAQQ4wgNeFzbawgd5Iyt1/ufwBgO1kgACKCRGvD4Ap+YVb+ETnsi eHw6QACN5IBnYMB+lCExxxviu3uEqLEagAAa6QGPHgaMeMSwBSgxbKwAIIBGAx53WBATNv8J8HEC gAAaDXjKw4WsC7gAAmgUDRAACKBRNEAAIIBG0QABgAADACRaVnDMNkwkAAAAAElFTkSuQmCC"/>
+ </switch>
+ <g>
+ <g>
+ <path clip-rule="evenodd" d=" M299.147,208.285c-1.057-0.586-1.852-1.455-2.124-2.652c-0.396-1.178-0.751-3.192,0.178-4.424 c0.662-1.305,2.036-2.913,4.064-3.685c1.971-1.121,3.094-1.613,7.739-2.019c4.33-0.405,15.175-1.071,19.15,0.127 c3.909,1.21,5.252,3.763,4.234,7.385c1.311-0.884,2.843,0.211,4.594,3.286c1.579,3.165,3.858,9.233,5.762,14.952 c1.694,5.637,4.778,12.277,5.8,18.447c1.036,5.875-0.39,8.619,0.574,17.708c0.782,9.124,2.927,27.444,4.695,36.75 c1.735,9.13,5.603,14.797,5.421,18.092c-0.553,3.01-6.321,3.555-7.622,0.873c-1.333-2.854,0.54-9.948-0.155-16.417 c-1.127-6.388-3.496-13.326-4.741-21.479c-1.278-8.329-0.501-18.376-2.113-27.527c-1.759-9.249-6.061-22.084-8.254-27.633 c-2.537-5.727-4.642-3.932-5.886-5.909c-1.263-2.092-1.842-3.949-1.579-6.072c-2.392,0.541-4.742,0.598-6.719,0.59 c-2.058-0.112-3.931-1.325-5.68-1.134c-1.907,0.039-3,1.419-5.712,1.599C307.666,209.216,304.111,208.953,299.147,208.285z" fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <radialGradient cx="326.7129" cy="203.8496" fx="326.7129" fy="203.8496" gradientTransform="matrix(0.8571 -0.1511 0.1407 0.7981 -4.0307 87.1388)" gradientUnits="userSpaceOnUse" id="XMLID_65_" r="26.3356">
+ <stop offset="0.0944" style="stop-color:#BF0000"/>
+ <stop offset="0.1351" style="stop-color:#C30300"/>
+ <stop offset="0.4333" style="stop-color:#DF1800"/>
+ <stop offset="0.4976" style="stop-color:#CF1300"/>
+ <stop offset="0.7111" style="stop-color:#9F0500"/>
+ <stop offset="0.7521" style="stop-color:#960500"/>
+ <stop offset="0.82" style="stop-color:#7C0400"/>
+ <stop offset="0.9065" style="stop-color:#530400"/>
+ <stop offset="1" style="stop-color:#1F0300"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="1" style="stop-color:#1F0300"/>
+ </radialGradient>
+ <path d="M330.111,203.122c-0.345,1.308-1.511,2.285-2.718,3.032 c-1.554,0.571-3.41,0.897-5.315,0.937c-1.945-0.19-3.652-1.196-5.549-1.1c-1.884,0.155-3.805,1.561-6.182,1.803 c-2.793,0.076-8.146-0.286-9.732-1.312c-1.747-1.234-1.617-4.107-0.523-5.488c0.955-1.474,3.1-2.684,6.235-3.354 c3.058-0.719,8.135-1.198,12.141-0.895c3.854,0.152,8.147,0.285,10.337,1.502 C330.655,199.346,330.251,201.732,330.111,203.122z" fill="url(#XMLID_65_)" i:knockout="Off"/>
+ <radialGradient cx="356.4385" cy="226.2412" fx="356.4385" fy="226.2412" gradientTransform="matrix(0.8571 -0.1511 0.1407 0.7981 -4.0307 87.1388)" gradientUnits="userSpaceOnUse" id="XMLID_66_" r="33.4702">
+ <stop offset="0.0944" style="stop-color:#FF543F"/>
+ <stop offset="0.2881" style="stop-color:#D82919"/>
+ <stop offset="0.4333" style="stop-color:#BF0D00"/>
+ <stop offset="0.4976" style="stop-color:#CF0E00"/>
+ <stop offset="0.7111" style="stop-color:#FF1200"/>
+ <stop offset="0.7521" style="stop-color:#F61100"/>
+ <stop offset="0.82" style="stop-color:#DC0E00"/>
+ <stop offset="0.9065" style="stop-color:#B30A00"/>
+ <stop offset="1" style="stop-color:#7F0400"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0400"/>
+ </radialGradient>
+ <path d="M344.054,236.991c-0.992-3.088-2.414-9.723-3.817-13.335 c-1.549-3.704-3.437-6.102-4.863-8.046c-1.651-1.787-4.021-1.844-4.441-3.135c-0.733-1.65,0.202-4.666,0.964-5.75 c0.71-1.015,1.58-1.88,3.069,0.052c1.232,1.919,2.958,7.019,4.717,11.218c1.776,3.904,3.942,8.983,5.438,13.111 c1.204,3.943,2.006,9.561,2.132,11.378c-0.221,1.643-1.327,0.055-1.935-0.849 C344.714,240.733,344.769,239.952,344.054,236.991z" fill="url(#XMLID_66_)" i:knockout="Off"/>
+ </g>
+ </g>
+ </g>
+ <g>
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_68_" opacity="0.8" transform="matrix(1 0 0 1 275 200)">
+ <foreignObject height="154" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="95" x="0" y="0">
+ <imageReplacement align="center" height="154" opacity="0.8" placementMethod="ratio" refHeight="154" refWidth="95" valign="middle" width="95" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_67_"/>
+ </foreignObject>
+ <image height="154" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_67_" opacity="0.8" width="95" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAACaCAYAAADPaZTyAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABaFSURBVHjaYmAYBQMGAAJoFA0gAAggxmFm z/+hFPgAAcQ4gOYy0imwB22EAAQQIw3NYSTSLkYqBfp/MtQMKAAIIEYq62fEIg5mMwIBkfYykhho /4EAXd1/LPr+D7ZIAAggRiroQw9wRqSAZsQhT0rOwBoJ0ADHFtj/kWIEQxxHxAwIAAggRioFOizA UTCaGAM6n8jiCm8RghTI/6FcvHy0iBjQSAAIIEYy1OIKdCYkPhOMhoox4YoQIiLgP46iBiVVA8E/ ZBqI/6Gx8UXCgEQAQAAxkhHwGIEOC1wozQylmdBoXJHAQCAiMMpzpCIHFgmwgAbTSOy/yHJoETLg EQAQQIxkBjwTUsAzIwU6mA2lmWERgaQGPUcwEhnwDDgC/h9y4IMCGxkDxTHYaJExoBEAEECMJAY8 E1KxwowU4CDMAqOZmJhY0MSY0SKAiYQiCGsZDwX/kDAsoP/A8L9//+BsoB4Y+y9yrhjICAAIIEYS A54JKbXDAheGWYGBzgoNfGQ2egQwYyuGSAl85PIdhIHgL3JgA+nfIAxkg+hfIBqKkSPjL44IoFvg AwQQI5kBjx7gbEAaGbMi0SxQNcxAGmsOQGueIrvhP1KzEinsUVL9X1CgI2FwgEPxT2QaqBYlIgY6 AgACiIVAxDCitWBgAc8KDXh2aCCDaHZmZmYwhrLBEQGlYTmABalewFb8YE0QyC0b5MCHpnhQ4P8F AnBqB9K/gBgU2D+B9A+gHhAGF5FAMWR7wJEKtBpm/D+kQGekRwQABBALkb1WJigGeQI5pXOAMDCA QZgTRLOwsMD4sMgA5wAgzQIthpArZlwpnxFb2MPKe1CoQwP/HyzFgwIfGvC//vz58wMU8CB3Qt3L DKvkQREAq7ShAY9c1jOisWkaAQABxEJEqsdW3MACHhTgnMAA5wLSXCAaiDmhmB0aEaDUz4pUBGEE PlrKx0gA8CYOWpHzD5Lk/0AxKPB/AgP+J9COH0D6Gyh3gvwIZDMB1YPtAhkFlP8PiT+skfCPXhUv QACxEFEnwFI+rCUDTvVANiy1cwMDGY5ZWVm5QBgpAtihEcCCVPwwEQh89GIHW5nzFznwgQCU4n+B Ah5o3HdYqof6EZZzGaB6wQGO3AFDigBGehU/AAHEQmD4AF7ZQrMurLyHlfOgwAeleh5gIPMAA52H jY0NFgGgwOeARgAs9YNTPhAzobX78bZ2kBI+A3KBDy3rwSEPNP8XEP+EBj47NPBB/mMGhS2yXqSe MLy9jyUCaF78AAQQ3mIHbegAXuwgVbIcSMUNOPDRIgAW+KAynxWa+pErXPR2Pq5iB1fg/wOG+1+g uaDA/w00+yco4IFqwakeqAwU8ExQfQzIRRZQLbiihnW6gPqQcwBdih+AACJU4cIrW6TUj5zywZUr KAdAIwC9+OEAYljKZ4EGPhOWwMewG6l5iVH0gIoNKAYFIigC/gCN+g0NdDagEljAg1M8TD2saQpq YiI3M6EBDx8HwpLiaZL6AQKIqDIfVkQg9WhZkDpTbEjNSw5oiwdW5IBoNqTAZ0YKfIyyHj3A0cTg RQfQCHiAggIOGpigAGcBYVCcQFs1oNYNA3LAw3q5SL3gv0AzYBECywXYih+qA4AAItTaYUAae2dC igQmLL1bWIUK71ghVbLM0IBHCXyY+bAARmbjafoyQdWCAh7UcgGlfjAAWQEKeCDNAIxwcKAD2f+A 7L/QChpl+AE27AAKeFgRhCUCaFb2AwQQsa0dhACWcXu04gkpUUMCFKkJ/x8pazOiFSfos1IgDkqR BE35sHY68uQME8weUDMSGOD/gfUwLODBFTMoAqABDhtmABVTv2FjPkC9f2DFEVoL6C+tih2AAGIh VQPalN1/bKOKyKkMVgRAm3a4mpboHSkG5ABGigRGaODDMchsUNGCpB7eJAYFPjTg/yAFPAwjDzWA IwHWY0ZqBf2jZcsHIIBYCIf1f3ibGBbQSEO18NFD2JgKtJfJAsRMwHoQ1moAqYMVOSg5A60DhSzG iFzewwIelsOggc8Ei1wohpkB6xSyQusi2KAbPOCBamAYFvi/0XMAyHxapn6AAGLBM4L4Hy0CkAP9 L9LoIWjg6gcQsyIHOlQ9yEOsQDnkyhZ9DA3e/EZL9cipGV60QSOAGcpmhjUnQZGA1Kz8Dy6LIHUM qO5hR0r5v7Dgn6CIgEUCKKKgdsBaQTRJ/QABSDODFQAgIIgeNsr//zBPO5o25UBJcmGtduZ5Zr5/ yWUGeNABWHAULHxkYKU+OExfa209exXbG7104+p6vtJVIQIxpsj9o3BCoyRmYgNqAHMuAAmKBxgK eOmHepL9Jkn3ni/u97tNAcSCI8AZ0YZX/yFlRXDqgaZ2UEqHBTostf+ByoMCHtzEBEUMUiuHAanI QQ98eMpHL3LQBvfgvW3oEAIrEpsFljNARoGshbJBTVF2aABzADEoEn6A2EC3gvoq4JFQoDm/QH0G aATA7EQfaqZKJAAEEAuegGdEKm5gRc4fpMBnBhUx0ICERdBvaCpiBwU8MNDhvVpcRQ6upI+tyIEF PFJnD9zhg2J2JDZ4IgepWQptiTKDIgcUAeygAAdiTmgiArF/gCppUG4F+Q9pKvQvUtFD1XY/QACx EFHkwMZBYEUOE1KrhQHUpINVqqCiBloMsSENpqEXOYxYJsQxUj5amY/Sv0AaYwJXqKCAhw1vQzFs noEFqgeWA0BFEAu0CGIDupUdC/4JNRs59cOKHqoWOwABxELESoF/0ED7C+2UwHuOSPUBrDj6CQ14 lA4Wco8WKemjJHTkihe9Z4se+EgTOuywYQ7oIN8v6DgPrMUCiwBYscgISv7QRgA4gYACHOhmduRZ OFDjARrJ6Kkf60wbuQAggPCV+egVLiO0GQYvq/9BYgBWHIFSPSvU8aByngW9R4uU8v+jNfBRa1u0 dj5yeY80vMEGm1eADm3/hM7bwnqusOISpIYZKQLgRRC0XgIPeaNFAHiYAmQXUrmPnPqpUvQABBCh YocBGvDYuv7gSEHqssPGVUCYGWnOFj6Ahq2lgxYBGL1cLCmfGVbkgFI+aCwJNIkCbFH9grbl/6IN kv1Dms36D4sApJUWrMjzz0hmwyf+kSLgHzVbPAABhK/YYURfEYYUATD+Xyj+A23igR0MqheQJ0yQ y3rk8Edeb4k2T4s+rsOE1HtlRhpPApfRoOIGWuzBe6eghgK0sQCOBFj5D/MbNAewIC0AgNUhbEiB z4I86YM23EFx0QMQQMS08xmhHmJCigDYuAesIoaNmyNPD6IUNVhSPbbUj9LDxTGliRz4oJmrX0jF zT+kwEceFAMXPyB9SBEOj0zo7Bo85cOKTtjaJKScR9WiByCAWIgIeOQIYESa8f+H1NUHpX4maHcc eXEVI65Ujy3140n5yGbCh7RBgQ4MqN/AlA8fEIOldrTBPNhc7T+oO5Hb69iWwmAUPUh+pVrRAxBA xKZ8ZIv+QWOeESkSGJHGX5igEgwMmMvFcdUr6LkA3xIW5KIH1qr5h7b0AyOiofMA/6CtGOQeK7jD hrTQixWt2GGBJSwkd6C3xsiKCIAAImZUE1uv7j9yGYiUFRlhXXK0IWOS1t7jWsAFjVjYgBdsEgR9 3SX60Dd81QKolQltJTEjd+SQ5qfhcxPoKR89AqjR4QIIIGYKV7j9R8vW6EMS6K0OfPg/AfH/OFaW YawwQ5oAQu8hMyLPiCHN6SKP0P5GG3r+g1afUG1dJ0AAMZOpj5GY0VC0CGHAMl6EEYg41tFji1z0 jRG4JnyQm6koEYDUvUYeIv+NFAHIi2tRIgDNX2Tt8AEIIGYGygEjvqEJHGL/CejBpRc5Zf9Hni3D scoOfa0pSssFaRj7H9oKZ+TAh6/rxFW/kAsAAogagU9srqCuJUgBD+sE4lpzhDYgB+Mj10vogf8H aYbrN9JcL8rmCqRBRbIAQAAxMwwdgL5ViBFLyod3ypD6G8wMqPsJWJAXAiD3BdAiASXgYeIM2He3 kJXoAAJoKAU+ersfOQJQmrNoLR0mpJYMC9JcADNSHYA8hvUXFuhYKl30OV6Kih6AABpqgY+ta8+I q8hBygEsyBGAvFQdqfOGUfbD5neRI4CaRQ9AADEP4YBHyerozUvkYgdtXwEL0o4ZFqQRV5R5C7Ql JiitHmoVPQABNNRTPkbzEolmQqpkWZA7TkiDaCxIK6Vh5vxFalpiS/lUa/UABNBQDnz0CEBaBMfI iDYHgJzaYQHPirRXgBlpngdbsxNeBDEgVnCgt/lJBgABNNQDnwGtq4+xPxht8x4r0vg9fGkjWuDD ix/0hVbQaVTkdT0U7eMCCKDhEPgYEYE0lI11Ax8yRpv0gY9+Ik2NYit6/mDZSIc+D0IQAAQQyzAL fNiwBRO21gu25iNS0cGAVFzBx/mRt7Wib+5GGmgja4QTIICYhlnAIw97/0NqvaAvkkVm/0XayY68 Bw2laYq+m5IBdVcNvskinAAggJiGWcCjrynFtjsd26DZX+TmIo5N3ixInTNmpF4yI7lDKgABxMQw /ADGSjukpiM6/os24f4frZ/AjB7wDIgVcczoqZ+BtHMkGAACiGkYBjycjVz0IB1+gSsS/iFNL6IM xiGfK4G2iRt5epPkgUWAAGIZZgHPiGVY+h+Oihc94P8hTS3CMDNSJKBUuMhD0+QWPQABNByLHQYG tEkZ5NSPIxLgKR9p5yL6wlz0QMdW5pMUAQABxMIwfAHKtCRaxwl+UAaMDZ0ThjVTYduPYM1JZrRc wIztxBQce8pwAoAAGu4V7n+kI2L+YSv3YVuBoNuZ0FM/fF8AUk5AZmPbm0Z02Q8QQMOxk4XuaeQy /x/azhoYRl8JAV95AdtSihYJyFuUGMntaAEE0LAudpD3kyE3O6HFzB9gxwl2YgnyeA2s98qAtPEO tgeMkRoVLQwABNBwDXz0lg/yyVTIxQw4EqAYHPighVXIkQfdRA3PAUiRgLGckZTyHgQAAmi4V7go PV7YNn/kLatIAY88TYgc+P9hW02RDtBgQIoEsgFAALEM41QPC0EGaNGD3OL5B0v10J3n8J3oSIEP W9UAjwCkSGAgNZVjAwABNJxTPr7UD0/5aAH/B7aWkwGx/wCeA2DFEHLEUhIRAAE03AMfW9MT3u6H Bj48AqCrrf8gleXwE62QIwB5zzAlACCAhnuZD5+aQpogBxc9oICHnrmDnOr/QIcRYPr+Ig8/IAU+ RgSQExcAATRSWjvYUj98sA3Wzoe1fJDqjL9oB6f+Qz6tChax5DoSIIBGQrHDgJ76YXuL0QMd1upB GiZGmSxHjwC0TWQkRwJAAI2UwP/PgHmOGrzyRepg/YFuHWJCDnwGxFZQ5OEKig9ABQigkVLhovd6 /6EdcPcXWtn+RTphhAkpUjBOIUfbwkpWBAAE0IhK+VhyAPL5avAIYEBMwKMfev0PbaiaUGTjBQAB NBLa+Yw42v3/0HMAUjEEK3b+oad8pKEKbKePk5QDAAJoxFS4WAIJ3vSEVcBogQwL/P84Ap1QaicY EQABNJICn4FA0xMlByB3shhw7wOjqKMFEEAjrcLFFgn/GLCMfjJgnrOD66IbsiMAIICYRmiKZ2DA v1+MGMzAQOGtQwABxMQwMgEx92eRUrSQlfoBAmikBj5FfQVKixsYAAigkRr4+G6wY6BVSkcHAAHE NEIDHRebkQoRQzQACCCmERTojDgCGhsf3xIQRmpFBkAAMY2w1I4rpeNag4MrQqiSGwACaKR1svAF LBMW9n8GEhdCkQIAAmgkt3ZwnoROYg4gO1IAAohlNNXDAxs95TMw4F4cRdbyQHQAEEAsoykeIwKQ A/w/jjqBKmU/QACxjKAAJzU3MBAogigGAAE0EitcBgJNTPSUT6gOIBsABBDTCEzx+DpXpGIGSiph gABiGoGpHlvAM5AR6Aw4KmGiAUAAjaTA/09iRJHSBCWrAgYIIKYRGOD4RiUZScwJFLV4AAJopHWy CM21/iezKCIrAgACiGmEBjqxs1MMeFpCFI96AgTQSBxeIGV6kFDLiIGS4gcggJhGaKATGwn46gEG SusAgAAayXO46McE4zoymJhIIAsABBDTaDGDuXQETx1ATHlPdIQABBDTMA90YlM8tsOziVm5QFGF CxBATKNFDskRgCvlk1wMAQTQSK1wqZUDKEr5AAE0kpaIM2AJePj6fAbUszKRF8v+x9MbpggABNBI HdtBjoS/aJFAbLFDTFGDN4IAAohpBAf6Pyyp/x+WHIAvEhgItPfxAoAAYhrhqR5XBGALfAY8vV2y iiSAAGIaoYGOHvh/0VL+XxIDnqwOF0AAjdTNEbhaN+gpH10frnKfLAAQQCOxwv1PQquHmLY+2eM7 AAE0ElM+AxGB/hepqYmrpcPAQOHECkAAjVa4+IsdclM+UREAEEBMI7i4ITYCiAl0snq7AAE00oeU 8VXAhFI9odMFCQKAAGIaoYGOXu7/xxLo//AEOvr6TiZyiiCAABpN+bgnUxiwNC/R13RSdNIgQACN 1KYmvjoA3ywW+hV/uCKAqPIfIIBYRnDKx5ULcFWw/5ECmthzlfFOxgAE0EgNfAYiUjx6xcoALZKY GbAfbk1oFRtGRAAEEMsITvG4ACOeCvYfA+LyAhYcOYARS47BCgACiGUEp3gGAoNm2IoX2Pg/KzTs WBiwH+9OVPEDEEAjudhhIBDw6OX7f6Si5zdS4CNHAknlPkAAsYwGOMGAZ0EKfFjRw4qE8aV+vOU+ QACN5D1ZuMp4RrSAhwUurGkOCnw2IP6FpfjB1+zEyAEAATRStwUxEOi9IqdkWOCC5P9AA/EPNAKw pX7knPMPX9EDEEAsI7zIwXpRPZaUz4qk5j+OlI8cAUT1eAECaLTCxR0J2FI+E1LKZyWQ8rE1OVFy AUAAjVa4uIsd9AiAnbP5Dy3QsZX5RF3nARBALCM80HFVuIw4hhKQO1oseNr6RI3vAAQQy2iqx8rG VQ8wMhC+N4vojhZAAI2W+eQXUYSGlglWugABNJJPHcF1bhopw8wMDKSvXoCLAwTQ6JAy7hXLyLdK MCOpxbW0hORz1wACaKQXO//xBPgfpDEcJqTA/oOECa1uwwsAAmh0PB814GEB/hvaifqFlOqZkQL/ F5I69EggOiIAAoh5hAQ0I4GhBFxNRya04gYW4D+B+Aca/gnFsIjBlSvgkQIQQMwjKKXjG07A1XxE Dvg/SDkCFMjfsQT+Lyy5AdtKCDAACKCRGPgMWJqFuJqM/5GKJOSAhwX4d6RI+IlWHKEXQxgAIIBG cspnICHg0QMfPeX/RKojYCkffdUbRgQABNBIC3xcEYFt7P0/lrIeOeX/RGP/wlEB45y2BAggRoaR BbBNmMAqXNhgGRsSZkUbNGNAaxn9QmsZ/UJriuJdeggQQCMx8BkY8A8ds6LRLAyoE+iw4ugPWtP0 D1JZj17sYE35AAE00gKfgYgWD3Jzk4UBc04WvS74i6XT9ZeYHjBAAI3UwGdgwD+DhW3EEhlg21hB aDMdRuADBNBIDHxcEYAtIpgIVMa4lpYTDHgQAAig0cDHHgmETpEl5tQSBkKBDxBAIzXwCTU9GRhw rzjGdacKoVuFMABAAI3kwMeXCxgYcI/PYxuOZiA2tSMDgAAaDXzsuYDY8PlPBBsnAAig0cAnHB6M RAQ8SYEOAwABNBr4lIcN2TcHAQTQKBpAABBAo2gAAUAAjaIBBAABBgAYY2YO2+ihuQAAAABJRU5E rkJggg=="/>
+ </switch>
+ <g>
+ <g>
+ <path clip-rule="evenodd" d=" M284.747,220.441c-1.193-0.627-2.055-1.535-2.278-2.756c-0.37-1.206-0.622-3.257,0.571-4.475 c0.885-1.3,2.628-2.882,5.071-3.6c2.405-1.068,3.766-1.534,9.253-1.791c5.11-0.27,17.896-0.588,22.462,0.755 c4.491,1.353,5.857,3.982,4.365,7.618c1.611-0.853,3.319,0.307,5.124,3.478c1.593,3.257,3.772,9.479,5.536,15.333 c1.527,5.764,4.604,12.59,5.299,18.875c0.732,5.979-1.164,8.714-0.776,17.954c0.17,9.264,1.187,27.889,2.499,37.371 c1.294,9.307,5.368,15.173,4.881,18.508c-0.895,3.025-7.709,3.386-9.016,0.63c-1.33-2.931,1.447-10.058,1.163-16.629 c-0.798-6.512-3.016-13.619-3.806-21.916c-0.82-8.469,0.916-18.625-0.229-27.948c-1.308-9.422-5.303-22.564-7.423-28.255 c-2.51-5.883-5.126-4.134-6.426-6.177c-1.306-2.16-1.837-4.06-1.354-6.202c-2.853,0.469-5.613,0.452-7.934,0.378 c-2.406-0.181-4.504-1.47-6.574-1.334c-2.24-0.023-3.64,1.34-6.835,1.433C294.666,221.664,290.517,221.279,284.747,220.441z " fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <radialGradient cx="297.4785" cy="213.3657" fx="297.4785" fy="213.3657" gradientTransform="matrix(1.0183 -0.125 0.0998 0.8129 -32.3413 76.4407)" gradientUnits="userSpaceOnUse" id="XMLID_69_" r="26.3373">
+ <stop offset="0.0944" style="stop-color:#BF0000"/>
+ <stop offset="0.1351" style="stop-color:#C30300"/>
+ <stop offset="0.4333" style="stop-color:#DF1800"/>
+ <stop offset="0.4976" style="stop-color:#CF1300"/>
+ <stop offset="0.7111" style="stop-color:#9F0500"/>
+ <stop offset="0.7521" style="stop-color:#960500"/>
+ <stop offset="0.82" style="stop-color:#7C0400"/>
+ <stop offset="0.9065" style="stop-color:#530400"/>
+ <stop offset="1" style="stop-color:#1F0300"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="1" style="stop-color:#1F0300"/>
+ </radialGradient>
+ <path d="M321.509,216.224c-0.508,1.313-1.959,2.265-3.437,2.982 c-1.871,0.526-4.075,0.798-6.315,0.776c-2.27-0.257-4.19-1.331-6.42-1.295c-2.228,0.095-4.596,1.456-7.407,1.624 c-3.283-0.013-9.538-0.555-11.314-1.647c-1.948-1.308-1.562-4.213-0.164-5.576c1.242-1.46,3.858-2.615,7.591-3.192 c3.649-0.628,9.648-0.947,14.325-0.51c4.51,0.279,9.539,0.555,12.01,1.859C322.458,212.417,321.788,214.821,321.509,216.224 z" fill="url(#XMLID_69_)" i:knockout="Off"/>
+ <radialGradient cx="327.2061" cy="235.7573" fx="327.2061" fy="235.7573" gradientTransform="matrix(1.0183 -0.125 0.0998 0.8129 -32.3413 76.4407)" gradientUnits="userSpaceOnUse" id="XMLID_70_" r="33.4713">
+ <stop offset="0.0944" style="stop-color:#FF543F"/>
+ <stop offset="0.2881" style="stop-color:#D82919"/>
+ <stop offset="0.4333" style="stop-color:#BF0D00"/>
+ <stop offset="0.4976" style="stop-color:#CF0E00"/>
+ <stop offset="0.7111" style="stop-color:#FF1200"/>
+ <stop offset="0.7521" style="stop-color:#F61100"/>
+ <stop offset="0.82" style="stop-color:#DC0E00"/>
+ <stop offset="0.9065" style="stop-color:#B30A00"/>
+ <stop offset="1" style="stop-color:#7F0400"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0400"/>
+ </radialGradient>
+ <path d="M335.1,250.984c-0.912-3.162-2.037-9.927-3.39-13.633 c-1.512-3.801-3.534-6.291-5.047-8.307c-1.793-1.864-4.568-1.999-4.954-3.321c-0.729-1.696,0.615-4.718,1.599-5.792 c0.921-1.007,2.01-1.854,3.599,0.153c1.29,1.984,2.896,7.204,4.618,11.516c1.764,4.009,3.893,9.225,5.309,13.454 c1.09,4.034,1.569,9.75,1.569,11.597c-0.389,1.654-1.563,0.011-2.201-0.922C335.567,254.797,335.697,254.007,335.1,250.984z " fill="url(#XMLID_70_)" i:knockout="Off"/>
+ </g>
+ </g>
+ </g>
+ <g>
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_72_" opacity="0.8" transform="matrix(1 0 0 1 262 208)">
+ <foreignObject height="182" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="92" x="0" y="0">
+ <imageReplacement align="center" height="182" opacity="0.8" placementMethod="ratio" refHeight="182" refWidth="92" valign="middle" width="92" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_71_"/>
+ </foreignObject>
+ <image height="182" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_71_" opacity="0.8" width="92" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAFwAAAC2CAYAAABUMOq8AAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABk6SURBVHjaYmAYBXQFAAE0iugMAAKIcYia jQz+D6UABwggRjqZxUjHwB3UEQAQQIxU1k8qn9KA/k+EukEVAQABxEgFfYw4aAZGICBgDyOpqfQ/ EGBR9x+H3v+DLeABAoiRSgHNiBTAjNjkUMOf6JSOFr4YAfwfSR02uf+DLeABAoiRDLXogcmIFtBM aHxGPCmd6BSOFqD/kcQwMA7xQRHwAAHESEZgowckE5TNBGXDAhw54JmQUjihQCcY2MgBCgT/kAL1 H1TuHxofV8DTPdABAoiRzMBGDlRQYDIj02hisMhAT+2E7P+PHtiwwEMOVGiA/8NFwzCRqZ7mACCA GEkMbCakVA0LXGYgmwVEQzEyG5bimdACnajIxhHY8FQMZYMC9C+Q/ovG/gtlg8WQImFAAx0ggFhI DGxYADJDA5wFDbMyMTGxIAU6jIYFOnqZT2pgwwIcPaBh+A8Uw9nQwGYCiQGt/YuU8pFzEiO9Ah0g gFjIDGzkAGYF0mzINBSD1UBpZqQAZyKiuQgPcPSUDaX/ItF//v379weJ/g3DQP5voF6wHMhOkFEg q6FG/xuIChQggAilcJRyG5SqoYENC2h2IA0KZHYoBrOZmZnRA54ZSDOjV6bYihbkdiAsSSMFOBiD ACiwkQL6NxL+BRT7BaKB+sBsIGYC8hmhgQ2i/6AFOt1SOUAA3stYBWAQiKFYO/T/v7YOoSZnI9dF OjmEZDr1EQ48//weU7sDtpr8wpYuAg6lPKHTDf0QdK+U1VpJ5f4AH5wDNAxckAEEaIm50RvH37ov c6V0dqG74Y89vXkL9C6AWAikbuSmHjNSMQJL1ZzAAOUCYk4WFhYYDRJjB9KgQGeHBjoLNIXDy3IC AY4a4khlNxSgBzaI/gnCQHt+AGkQZoX6D1xZI6VwBrT2/D8kd9A8hQMEoLWMUQAIYSCIHGm8/3/1 bIJeNm4gCGJlEexMGJZhj0qJipe9zXQH7Nfg+ohIBXhAB3BCF0J/qJaS6uJWKQv0SHfAduCAjVFV T7a9DcDt3w+38m7fRX/nvt6n1sea7Ksp/wUQCzG9SbTmHxtSUcIFDWxeYGDzADE3FINTOpAGBzgU MyOlcka0chy5KMGVwv9DAxoc6ECAHOCgwP4BKs5+//79HZoo4KkbufIFaUZqwyM3D+mSygECCF8Z jtyThLW7WZFSOAc0lYMCHBTY4EBnY2MDYS5ooINSORsQg1I5MzSVMyIFOr4Uji3A4SkcGuB/QKkb GMg/gUb/ALkJWr+AUzeoqEYyB5aq4W10EAa5BS3gaZrKAQKImFYKLLCZoc08NigGpXBOpFQOCmhe aIBzAzE4hSMFOAsokUMrT7wdIFyB/g8peSMHONDcn8BABxUl7KAEAfIXqGUC04/cqgG1UECBjtYZ +oc20EazVA4QQATb4bAUiRzo0GIFOdA5oWU3N6xoQQ9wZihgghbiyIGNVpmhFC3YAv0vLMSBAGjk b6CRoFYJO1ALKyxlg0oO5BwBaj4C1f2GtsmRO0UgP/2jVyoHCCAWApMFjPgqT1hqhzULgQELxsCA 5oCV4UAMD3BQsQIKb3wpHK0ZDm8iggIQKcDBgQ40B4R/wVI1NLBBbW4GoPR/5OIHpA4U4KAWDVA9 CIMC/A+st0qvVA4QQCxEjregjIkgpXQWWOcG2hoBBT4MsyKxWUCACQpgKRxtIAtrKkcuWmCBDjQC 1LD+By0eQMUHvL0NDFxwYMMiBWg3KBeA2+jQQAd1hMCBDk3lf+iZygECiAVPcxDXZAIjUsWHHAHI fCZoamZCCmQm9ADHMkMED2C01gu8WQdpZMDbz6AUDYpNcE8SFNhA9n9gSfMPGtC/QYENKuOhbfSf 0AAHY1CgQ8PgL3SsBRToNE3lAAHEQoFeXKNu2MY+YG1fWMpFLlL+o6dopKYcei8QnjPgsc7ExADF /4EBC0r9f5EDGxrIoFYMuAcKYkN7oj+hAf4HbWCLpqkcIIBYcAUktPuLKzCRxzbQB5BgYxqwbM4A LVP/QUft0Fsp6EUI1r4ALOVBixVGpAqVEWnY4S+0XgFXkKDUDApoaAoHNRth+CdQ30/QWAvQPFak SvQfrVM5QACxEJmS/yGNPyMPg8IHjECpBtq9ZgU1HqCV439oyvkDLWfhRQr6JCdaisY1eMYIDWxw Vx1WpiMFPPLgGht0aAE2xsMJVP8DhEGBDlTPDitW0IoWJqQeKNVTOUAAsWAZF8ZaZCAN5MOGQGGB DBq3YAcGMht0zAQW0P+gakGpjBVSfzGjj6UQ00JiQhvXgTX74OU2CEO7/gxI4z6syC0ooDwcA9Vx glI4NJWzghIDrD6Atc9p1WIBCCAWApO4sKIFNtiPnLLBgQ1qhQADG9YCAaVaWG8OFCnsoCyL1LXH FeDYihIm9LF4aAoGBwy0Y8MEbZkwQpuBOAMdGtjgVA5UA0vhIAyuSKHNxT9Q85GLFqqmcoAAYiGi UvyHNF0FKqNB2RBU8bAC8XdQ8QGrvJBTNciDoJQPbYOzQFstyINX+CaUkSeemZFnmaBuZoEGOoxm Qipi/sH0wZqrQHF2pNSNjNGLFlgzERyZtBhjAQggXJUmI9rwJXIKB6VcUIAzg/oeSG3qf1B5WFED 7mVCUzcswPEOz0JTFAOWVQDwDhcswEGpF6ieFS0CmGCBDjIeaic4hyGlaHjAgyIClANA5oAiD2QP UrHCCJsloiYACCAWPIHNCGupQFP4H+hADzgbIw2xwiIFHhnAwP4OLdfhExDoAU4gdTOiBTa8owUq c2GTIEA2G5RmhWIWaOqEV8qgogwaoGxIgc4OLe7YoeLogQ6L7H/UHroFCCCiihSoRX+hTScm2FgF SB7U3IO2XGApH1RJsQHF2ZAmH1iggc2MJXVjqzxh5Tds5h95LB4+44SMQUPGsJFCaCQxMMJ6YEA3 QCtHdqTiBcYGuxPaPGRBWm3AiNQ8pFqxAhBAxFSa/6BZ6y/MYmhgw9ShFDXQipQVeU4TNg4OrlVx TyLjmrhmhhUlsMCGBi58iBhKgzo74HY4VB3YOuTmIlJKZ4MFOCgnQtvuoGYrfIkHNJVTvVgBCCB8 ZThyL/Af+ogeqEUAq1BhZTfII9DUAp+xhwY2rqUSDLDZGBwDZsxInRoWaApmQxuP/wXtVYK758B6 4y90nIUV1tQHZS5Q2QxK6aAUDcKwXAiioakbnDigTUR4ywhWCVOr0gQIIEJFCjx8sYxXg0fukDo2 v6EDRLDAZkZeEIS8GIiItYbITUJs03uwKb6f0I7XH9iIHyhBIvWQWWBWgZI7KDBBgQ7qnMEG1kBs 2CoEUEKBDUPDUjgapniiGSCA8BUpKAajpXLk8h0W4DCHgmlQKwapSGBEC2xGYpqFSC0VlCFhIM0B Dexf6IENKkZgs/Og+hJqzn9oKmeCNRVBAQ0t8tiQiiGUVWNIxQr6uA7ZACCACKVwbIGOsr4POvAD 6wEyQbvGyMvc0Nei4FsExIieytFaKbAyHBbYv9EDGzbeDg1gBqg+sD+QRjmZocUdcj3DgtQSgtmJ XnFSXKwABBChsRRsgc4A8yC0fIPV6LD5QUa0wMY63ItnfSHWBUjI5Th0XBuWsv9DixFYQCOPAsNm 6plhXVBYwwV9iR4SG14EQhMPI1L/gGIAEEDEDl4xoo0awmMeGvCMyOMP0EBHSR0krBFnxLFMAxZI v2HrB5HKbHBAAtv9TEg9WuROGTyVw3IP8iQKtkBHXpOD1FqhuBwHCCBix8OxWYIc8AxoKQEe6Ggt EWK3niCbCe8AQTsmf2C9X5DxoIEr5MkN6EglvJMFMgbaamFGGgFkxBHoLEhFGKwcxzYRQ3bRAhBA pExA4Opt/cfSLccVyCStR4eWwbAiixk22w5tksJSNgN0AAuWulmg4zvMSEuk/0On4pBHFQkFOhNS xc1IrUoTIIDImfHBF/CMSKscGNEXKBJpPkoEIbWD4Qt4YHZAl6+BAhu2qosZaRgBHnAgtaBUDmUj r7ZCXo3AjGWNO7YUThEACCBmKtUFjHiGBnBNyeHDKOqhFR82MxmQJqOR2/nMyINfyAGGvNoCtj4R 1odAavn8Rl5rjlSE/ccxd0A0AAggagU4sZFAai5CGWZAn3hGmjhCBsxobXgmpAEtRuSFQeizVrCA R1pb/hdtGcV/SosUgACiZYDTJEJg5TbaLB1KUxRtwgI54GF1DTyVw+Zh0QL7F1Iq/4tUnP2jdBAL IIAGMsDJihgcU3PIi0PRA5sZrZkHW2/4D2mtOXzHBHRMCF6swGb10VI42QEOEEBDIcCxBTrWwGbA XM/OjNzMQypeGJCWcvxBSuWwwEYPdPjeIErLcYAAGioBjtF6QQp0lABHWlqNHODIXXZG9FSONLyM DSOvtqW4HAcIoKEU4AzYhgbQAp4JLdBZkMbSYePqTEhzqrDhiT9Igf4LXwqntBwHCKChGODYihaU ndHQAGdBCnRW6NQcbE6UCcksXKkcueJEDnT0BVIkAYAAGmoBTqhoYULrzGAbJ2FBGptHnrWCT6Qw QHa/IQc+emuF7HIcIICGYoCjFy3o+/5Rpuag2xtZkWjkQIetTYeN64Pa3sgpHJbqqdYeBwigoRzg WFM5WguFFW0cHTYJDZNnRJrRQlnohC2FI5fjyAtRSQEAAcQ0RAP8P9qMH8oaGixbwf+gdddh6mAx hjyIxYw0IYHcrCS43ZEYABBAQzXAsY3PwJZH/0Urk9ExrImHPFTLiLSmHdtBDchzskw41s4TBQAC iGmIBzY6H/lID/RDD5Bp2GYq2DABrt0dyG159IEwok/FQAYAATTUUzhyscLAgH9p9R+0Dgxya4MR KbCZ0ec40VcfkJOyYQAggIZDgGOcFoS0tBr9eA/ks1TgLQ3kyWU8GGW6jdxyHCCAmIZTYDOgLUBF C3jkrYLI20vgYYEW6OipmxnL2hqSy3GAAGJhGF4ApRyH7dtB3nmMfHIQrHmHNhbDjCWg0ctwJgbM qUOimogAAcQ0nAIbyyIlrEULjoEo9DY81jKcAXP5B0mOBAggpmGUspHL8X8MqIfawIsV2Pg2UicG vRzHVZZjnN3FQMZcJ0AAMTEMT/AfKUCRAxvjADK0Q2qwBjoDYo0j8ppHsipNgAAadq0UHJUn8hlZ f9GGW5FbK+iDX8iTF/gOSyO64gQIIKbhmLSRep7/0FM6WnmOfsIbyrp0BtQlFMjTdmQvnQAIoOEW 4FhTOY52+F+k4QCUDhBSamZG2syF3CzEFuhEBT5AADENs8BGD3jkWRr0QEfOAfCTK2A7m2GBjJTK MdYaog9XEgMAAmhYtlIYME/yRDlYEr1YQUrk2I4NZGZAW3KBpaVCNAAIoOHaSkEetkVO4f+wBPY/ pMhBTuHIGOvgFY5AxxsBAAE0HAMcvZWCfhADHEPXpPxDOjUOHGDQ/fxMWAIe6/I5UspwgABiGq5J G60ThBLgSMcywU6J+4d0xBPstApcAU/R4k6AABqOYymMOFL6P+TyHHZmGeh8FejRevBFo9BAZ0Ba j4i+9YTsniZAALEM0yIFZTALuT0OStnQQP6LFNiweUr4cmvQUmjYMSHIAc+Aus2RZAAQQCzDOXXD ihbYfiRYRYkc6NBF/vAARzpFjgG9eEELdLKm2AACaDimcAYsTUTYcRwo5ThsRwUsIqDNPVhZ/h92 mhFSEYOrziDaUQABNFwD/D/SQWVYj8MGBTbSgZGwQ8Zgi/ZhB93+R0vt2AKepHFxgAAa9ikcqVjB SOHIbXJoBMBabf+QTheGH3yDHNj4Ujw+ABBAw7XSZMTR84Sl8L/Ig1kMkDNo/yI1k5EPhkcHDDju FmJgIGLWByCAWIZx6oadf4g8No5yCwpyKkcKcEb0JiRyuDNgngVGksMAAmgktMMxKlAGyNZD2FmF f2EHAMPGt5GGANCvQSAmleMFAAE0nMtweO2JdCweyughcuqGbriFNfVQrqpBGuBCvyaBZPcABNBw D/D/SC0WjKIFFtDYihSk4gdjKJcB+31vRAGAABrurRSUHicD5lwn+iHujNDNsMjNReTAR78ti2QA EEAjIoVj63VCm4norRVGpKLnL1oli+tyPZIAQAAN51YK1soTudcJ7c4jT7kxMWAeHYhc7uNL2UQF PkAADftKE09qRwl4pABnQk7hDNgv6CC7HAcIIJaRFtjYynPoiaLIM/joAU3KpXl4Ax8ggEZCpYnr gIV/DJh3ciIHOHLRQvEOZBgACCCmEZCysaVwXIuGiDrdgtTODjIACCCmYRzIpBY1DAQCm+zxE2QA EEDDPYWTU/SQcp0vyakcIICYRgOarKKJbAAQQCM5wMnep0MJAAig0SIFMwIYGKh4xhU6AAggpmEe cLhSM66lDrjONada4AMEENMISLWMJAQ6oSVsFAc8QAAxjZAigoGIQCZ2KwlFgQ4QQCOlDMcVuEwE ApuR2kUKQACNpMErYgIffpInLQIbBAACiGkEBjC+gCalMiULAAQQywhO2dgCnQmHWqqU3yAAEEAs wzhwyW2ZkJKiSY4AgAAaKUUKvkBnIqK1QrUiBSCARlpPk9Q2OKFrE0gGAAE0UtrhjCQENk27+QAB xDJCUzgDkWU41cdTAAJoJA5eMeIp1wlVhBRHAEAAjY4W4s8BDAxUHsYFCCCmERaI+FovVE3JuABA AI2mcDoDgAAaCQFOaKXUf3o6BiCARlM4aZFEMQAIIKYRGpi4ZuTJCWiSynuAAGIawSn3P5E0VZuI AAHENIICF1dgY1v4QzMAEEAjuUjBFdDYAp5qQ7QAATSSWimk3JJFbA+VZAAQQEwjIJCxBToDmYGO aziA6LIdIICYRmhRgm0ZMq7Fm1QdTQQIIKYRFtCElihjC2xcgU5WqwUggEZis5CYQCcUkGQP3wIE ENMIC2gGHMUKMYFOlSk3gABiGi1K8AY61Ze/AQTQSNoB8R9PxUnM3TxUSeEAAcQ0AouTfwzE7e0h JRUT3T4HCKCRsqkKV7PwHw4+A47eJsUrsgACaKRVmv/xBDx68cJARBFDMgAIoJEwePWfQAonNdDJ 6mHCAEAAjaQUzoClVYIv0AkNYpGVygECiGWEBDS+FP4XS4AzEtFyIatIAQggphEW0P+JLFpI2XVM UsUJEEAjbeUVroBGPjOFCUtEUQ0ABNBIPU2CUBnOQETbnCwAEEAsIySwiUnd6AHOQGAwi9DIIdac ARBAIymFE2oa/kWrNIkdQSQptQME0Ejuaf4noh2OayKCgYHM1bYAATTSihQGIstwYsdOSAYAATSS lkkQaiL+ZyBvTJykwAcIoJE6p4lrEIucwCZppxtAAI20rj2hwP9PoOzGl7KJSukAATTS5zQZcPQo 0StDYjbREhXoAAE00s4txBb4uOQZkRIltsuUyLpmBiCAmEYDGuf8JROBwCZr2QRAAI3k1bP4BqKQ A5qZAfVONiYG4q8JwwAAATQST5Mg1AJBvn8NBpiJDHiCXXuAABrJ+zSxpWomHAHOgoTRA54RR6Bj BQABNHpeCvaUDQtYRqTUii+Vo5uFs+gCCCCW0WIEI7CZkQIdJgcKQFYoRk/puMry/9gCHyCAWEZQ MYKNxlaMwAKUlQF1qu0vnmKFCUdHCCOlAwTQSC3Dcd0My4wU2NgCHFsqJ6k9DhBALCMsoBlwFCXo qRs9hTOgBTgrlmKFiZhyHCCARo9gwp/CmdAC/BeBYoUJqg5nOQ4QQCO50mTC0TpBbwIiBzgbpUUK QACxjJBihNTWCSyVIwf4HyRxfG1y9MEslKIFIIBYRlhRQmqgMyONvbASCGwmQoENAgABNNpKwV2B MiMFOAuWIgdbyibY4wQIoJF6IhC21gq+IVhslSO23ia+ogwMAAJo9DQJ/MOr+HIBWWfWAgTQaIAT 3gfEwEDcgiCiBq8AAohlhAYwAwNxi4L+QtWSstATb6ADBBDLCE7V2BZygpp+v5Fo5CYhDP9lwFwo RPTWcYAAGumrZ9ED+hdSbxI5fP5AxX8jRQiuwMcLAAKIZQQFMq7F+MiB/RMaJrAuPQtSL/MnFP9C CvS/WAIdb0oHCKDhfhcbI46AJxTYsFTNjFSGg9T8QAp4WGpHX32L9xYrgAAaiatn0VP3L2gP8gdS YMMCGDbr8xcauKCA/o4W6H9wpHJs9jMABNBIvE8TObD/IAUk8nUEf5DGUmAR8Aeq7gcU/8KRyvEW KQABxDICUzfyBaW/GVBPxv+PJM6CluL/IlWqP5DKc1jE/cPRekEBAAE0EnaxMeJI4eg9xf9IKfkX 2jgJehH0C60ChaVwghuxAAJoJJXhyIGKXC4zoKXiPwyoY93IKf8vUjHyG0sZjq2JiBLwAAE0EtcW It8My4gm9hepdcKMQ/4vWkcIV4BjTeEAAcQywlI3AwPqpqk/OCpTZgbM+Ulc2wz/4ukAYQQ6QACN tCIFvSxnwJKCmZHKdwYG1A1WyDP4pGwZhwOAAGIcQUUKrnUpuGgGAh0nfKfD4aw0AQJoJAU4rkAn docDsfuEGPClcIAAGmkBju5nQvdBMDBgzk0S2j2BdxALIIBGYoDjCnhcYgw4KsH/eMRwAoAAGskB jsv/xITJfwJ8nAAggEZ6gFMSFmSdMgEQQKMBTnz4UOUYD4AAGkV0BgABNIroDAACDAD/Uwnf89Xo NQAAAABJRU5ErkJggg=="/>
+ </switch>
+ <g>
+ <g>
+ <path clip-rule="evenodd" d=" M271.511,229.641c-1.159-0.84-1.986-1.999-2.188-3.5c-0.347-1.491-0.567-4.007,0.614-5.413c0.88-1.526,2.603-3.342,5-4.058 c2.364-1.147,3.695-1.627,9.058-1.589c4.998-0.003,17.488,0.425,21.931,2.353c4.368,1.935,5.671,5.225,4.168,9.556 c1.585-0.935,3.237,0.586,4.96,4.563c1.515,4.067,3.565,11.781,5.212,19.023c1.42,7.116,4.338,15.624,4.937,23.319 c0.64,7.331-1.248,10.537-0.988,21.81c0.048,11.291,0.806,34.038,1.969,45.665c1.143,11.413,5.048,18.818,4.531,22.847 c-0.911,3.628-7.575,3.631-8.813,0.192c-1.264-3.655,1.54-12.154,1.347-20.175c-0.698-7.978-2.773-16.773-3.439-26.926 c-0.691-10.369,1.131-22.62,0.133-34.046c-1.156-11.558-4.895-27.813-6.891-34.879c-2.377-7.324-4.956-5.36-6.199-7.931 c-1.25-2.713-1.741-5.06-1.244-7.638c-2.79,0.389-5.486,0.191-7.751-0.046c-2.352-0.374-4.382-2.078-6.407-2.046 c-2.188-0.17-3.57,1.399-6.693,1.31C281.186,231.765,277.137,231.033,271.511,229.641z" fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <radialGradient cx="283.7461" cy="224.8115" fx="283.7461" fy="224.8115" gradientTransform="matrix(0.9962 -0.0872 0.0872 0.9962 -23.6979 21.459)" gradientUnits="userSpaceOnUse" id="XMLID_73_" r="26.3364">
+ <stop offset="0.0944" style="stop-color:#BF0000"/>
+ <stop offset="0.1351" style="stop-color:#C30300"/>
+ <stop offset="0.4333" style="stop-color:#DF1800"/>
+ <stop offset="0.4976" style="stop-color:#CF1300"/>
+ <stop offset="0.7111" style="stop-color:#9F0500"/>
+ <stop offset="0.7521" style="stop-color:#960500"/>
+ <stop offset="0.82" style="stop-color:#7C0400"/>
+ <stop offset="0.9065" style="stop-color:#530400"/>
+ <stop offset="1" style="stop-color:#1F0300"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="1" style="stop-color:#1F0300"/>
+ </radialGradient>
+ <path d="M307.474,226.856c-0.515,1.567-1.941,2.632-3.396,3.412 c-1.836,0.521-3.992,0.71-6.18,0.54c-2.212-0.458-4.074-1.888-6.254-1.987c-2.177-0.027-4.506,1.48-7.254,1.504 c-3.208-0.227-9.311-1.286-11.031-2.728c-1.886-1.718-1.471-5.231-0.088-6.8c1.229-1.701,3.801-2.939,7.453-3.403 c3.572-0.53,9.437-0.536,14,0.296c4.401,0.628,9.309,1.286,11.706,3.031C308.448,222.282,307.761,225.167,307.474,226.856z" fill="url(#XMLID_73_)" i:knockout="Off"/>
+ <radialGradient cx="313.4717" cy="247.2056" fx="313.4717" fy="247.2056" gradientTransform="matrix(0.9962 -0.0872 0.0872 0.9962 -23.6979 21.459)" gradientUnits="userSpaceOnUse" id="XMLID_74_" r="33.4713">
+ <stop offset="0.0944" style="stop-color:#FF543F"/>
+ <stop offset="0.2881" style="stop-color:#D82919"/>
+ <stop offset="0.4333" style="stop-color:#BF0D00"/>
+ <stop offset="0.4976" style="stop-color:#CF0E00"/>
+ <stop offset="0.7111" style="stop-color:#FF1200"/>
+ <stop offset="0.7521" style="stop-color:#F61100"/>
+ <stop offset="0.82" style="stop-color:#DC0E00"/>
+ <stop offset="0.9065" style="stop-color:#B30A00"/>
+ <stop offset="1" style="stop-color:#7F0400"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0400"/>
+ </radialGradient>
+ <path d="M320.304,270.049c-0.85-3.906-1.862-12.216-3.137-16.814 c-1.427-4.725-3.37-7.887-4.823-10.439c-1.729-2.383-4.438-2.724-4.796-4.359c-0.691-2.111,0.658-5.707,1.636-6.95 c0.91-1.167,1.985-2.129,3.512,0.417c1.233,2.499,2.736,8.956,4.364,14.317c1.671,4.996,3.685,11.483,5.015,16.723 c1.015,4.98,1.41,11.97,1.386,14.218c-0.403,1.99-1.527-0.083-2.139-1.262C320.713,274.722,320.848,273.767,320.304,270.049 z" fill="url(#XMLID_74_)" i:knockout="Off"/>
+ </g>
+ </g>
+ </g>
+ <g>
+ <switch a:adobe-blending-mode="multiply" a:adobe-opacity-share="1" i:objectNS="http://ns.adobe.com/ImageReplacement/1.0/" i:objectType="replaceable-image" id="XMLID_76_" opacity="0.8" transform="matrix(1 0 0 1 250 219)">
+ <foreignObject height="187" opacity="0.8" overflow="visible" requiredExtensions="http://ns.adobe.com/ImageReplacement/1.0/" width="83" x="0" y="0">
+ <imageReplacement align="center" height="187" opacity="0.8" placementMethod="ratio" refHeight="187" refWidth="83" valign="middle" width="83" x="0" xmlns="http://ns.adobe.com/ImageReplacement/1.0/" y="0"></imageReplacement>
+ <x:targetRef xlink:href="#XMLID_75_"/>
+ </foreignObject>
+ <image height="187" i:alphaIsShape="yes" i:knockout="Off" id="XMLID_75_" opacity="0.8" width="83" xlink:href="data:;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAAC7CAYAAAAZpaLvAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABl7SURBVHjaYmAYBVQDAAE0iqgIAAKIcRDZ 8X+oByZAADEOoQga9IENEECMNDKDkUR7/lMQgIMmkAECiJGKehmxiDOSGZj/iQiw/4MtcAECiJFC PYxYaBQ2EBBrz38sgQFm////H688iZFAMwAQQIxkqkcPPDgfCJiwBSpSwOJLSbDA+48l8JDp/zgC +P9ABixAADGSGZCMaIEEomGByITGR1aDbifWgIKxkQIVlxg2cVIDmWoAIIAYycjWyAHEBA00Jmgg wmhmbIGKFqC4AvI/tkBD4v9DloOy/+FQixFBtAxQgAAiNjCRA4EJLSCZQYEHDUBkGjlQmbCUoYQC 8R9yYGGh/6EFLooYjlT8n5apFCCAGEnM2sgpEDngWLBgZqSAZkJKqchlJ7aAhAXEP/SAQhJDYQPp v2h8OI1kFnIk0SSVAgQQCwUBCQs0VijNBmWzMjExIYvDAxQWmNAARU+Z8JSFI9D+wvhI7L/QgIRj aGD9hWKwGqi9MLOY0AKSkVoBChBAjGQEJHLqY4MGHohmB9FQNogGieMKUAYo9R9LYOIKRHBg/QMC pMD7g0T/AUrB2dBA/oMUyH/RUyyO8pRsABBALESWl4xoKZIVGpCgQAMFIgeMZmZmZoey2aCYBZpS 4YGJlM/Ry0d4lkVPgdCA/IscaED6DzINNPY3kP4NFfsNNAuE/0AxIzSVwtqt/9DKTopTKEAAsRDT lkQq85CzNhs0EDmBAQjHUD47EIMCFpZCQQEKC0wm5DITlN2Rykp8gQimkQMQin8j4V8wDApYEA1U C8JMQMwIDVCQf/7iCFCKAEAAsRCRKuG1NhSjByQXEHOzsLDAaHCgAmkOaKDCUiczNEBRUiY0MLGl THiWRk6RyIH49+/f31AaHIBQ+icMgyIeSDMDMUqbFxSQUHsZkLI8A6WpEyCAWIgtM6HZFJYqYVka FoA8UAxic7OysnJBA5MDSLMBaVb0wMRVZqKnTGgA/kULyD+ggIQGJjgQgfgnFP+A4u9Q/4GbZ0B1 yE08cG6AZvn/yOKUBChAABFMmWjtSRZYhYOUMmGByQsMRBDmhmJw6oQFJhCDUic8m8MwUrPoH1qA /kPL3n9BABaQoBT558+f37CABLJBAfkdSP8AmvsN1poAisFSJQNQDwMt254AAcRCTN8bqQGOXF6y I2dzYODxgAKTjY2NB4jBqROIUQITiMEpExSm2Gp05IBEDlBkDAR/oBgckMDAA+GfQKN/AGlQmf0N FNm/f/9mhXUaYP6BpkaUnADkg2gmaG3PQEl2BwggvBUQUrsQW03ODi0TQSmQC5q9YYEKClBOUOoE YjZogIIBNHXCi02Y55B7OEgBiRyg/7AEJih1/gIGHChl/gDS36BNM1ZYLwwUfv8R4B8kgf5Dbyqh Z3WyAEAAEV0BwVInCEMrFFZo6oSVn6BUyAlNkZzQ1MkBxOxAcVYgZoEGJiOuchMGYIGKFJhgGprN /0IBOJuDAhNo7E9gQP6AtXFBkQ5LkSDj0MpiUBPqD3LbE5o6GSktMwECUGIGJwCAMAwsIrj/uKKg TUmlig/NAH2cVw3mx1K/PUSxuAMq19hNhYkAWADyAtPllLDq28/PEQc63FDTU6MjG6LzKg6VRhpI Gik0ejUAVCbAJNBOoOlyf35DnQKIUG2Ont0Z0UeHkGp5ZmiNzYLUFGKBlpUwDA5P5JSJFpgoY5oY oYqU14HmgAMUaMdv5KwNwrgCEtruBDXqf0GLK1hPCdYNZaQkuwMEEAsJalG6nugjvcgpDYrhgQX0 LAgzwrI4clZHS53wEEUJXWjuh+T2//+A+mH4D6zLCmsCgQISmor/wcpWYMCDa3xQCoa2P9lAvSNo j+kPLIFAy0+yszlAAJESmOgj3bA+LvpoDbzfjDQIwQTFsIBBGZKDlleYsYfIEeCKCsQFNcCh7H+w kSmQeaB2JKjpAwy0/6CiFZRqgYEIDkhoMQDCoHL1BzRAQamUBcmMv2jjtSSXnwABxIxn7BJ5cJcZ uYwEZRFoz4YN2heHNX9YkbMzrGxEblNi6T6i1+L42n0Yo/zQLA2raBigqfI/cu2P1o//jTQY8gcp i/9DajaRlTIBAghXYDKi9clRykekESFYvxtcJkLLTSZolkZp+iB3E5Eb4lj63n+Ra3CkriZ87gcd g1IkEoZlceTyEjkgwRgpIGH4P47RJKKndgACiIWIrP0fPfsiFeagLMMGdDgbMFeBu4ygdjmQBmdD 6GgNqL/MBsSwXhAz0qAHctkJn4xDAsiRCZ9jgqVGWOAh5SQmtF4aO/qoFkwM5CZYLwmU3aFuZUJq JpFcEQEEEAuOAGRE6r8iZ0mQheDaEOgYUP+XFTYqBAxMRmhFAxucBakDFfjssMCGFgOwtiq8GEEK OHggomHkaRBYRcOEHKBQwAgtj1mQApUdHcOGD2GD2aDyE9lcpJqdpOwOEIAxK0gBAIRB1Cr6/4ub 4YZEQYfo0HYxQefaC0i5czVAb7ZB8oM0xjD7EoBkY9T4+wSQnIDGwUw72KeAVgE8BwXZNYWXNApP gfAISwtr+4Wlmbd6f6cIgZ3xUTuZF1Px7TmXAGIhJotD8R9orfkbacKMCegJWEDCphBgAfkdKMeB FJCs0AY+M/rIO1p2hgUEEzTQWZBo+HQI1O3gQAC5C2gXA1K2B6d4aMTBAxNUWQLVgWlQNgfqAxc/ SHNWTLBihJw2J0AAsRBqBkGzOix1/kFqyzGipV7YNMFPaBHAAcza7EhDcKzIDXq0aQys2RqWGmF6 oakMljVBjXQwhgYoLJX+RxpWg3d9QREKyiWwgAQFMCggQXKwJhI0dTKhlZ1EZ3WAAMJXZqKnTlg7 7DesBkWWgwYkeHAWNIIDczisrEQKEBak7ItRwWBJlSxILQdWpDkmWLkHaoCzIaVS+KgvLGJA9kMr QHZoZQijwVkdSMPKWCbkNjCWlg7egAUIIBYiGun/oCPTDGjlCCxLoQQmNGWywWp5pBTJipQisaZM 5GYYetZGzq5IFQm4hgbR0EBlhXUnoW1aRqQuLis0UNmh7mJHS50o09LkZHWAAMKXzRnRsvs/aMH8 BznFQtuDsEoHFJhgxyHX9EgpEiUgkRcoYGvTIuljRZqggzVxwIPTQAwaNeIEquNAGuxghrVxoe1e WOqENdHANBJmQe6SomV1omtzgAAilDIZ0RZU/UWaO4F3K4GOhU10gdqfyIHHgjwIglQbM6EtTEAv O5mRAhQ5i7MjDUqDAvIndHAa1HUEDX6A++zQAIV1OxmQApQFWvwg5xpW5IUT0LKTEUvXkiAACCAW EvrksCT6D2nuBNyzAXU4oA75AyvIQTSo6YSerbEFJPLiL7RKCHmoD57FQWUyNCB/ASu4P/+QGppA MTCGjWnCAhMUkqCIhgYoK3JAgiIdya3w3IIWqAT76gABREwPCH1dEPLsHmyFBKzcRK9YsFUyTGjL DhnRApUJbWoZOXXCBqLBAQnNDf+QR5rgrX5IBwKUC0BZHRT5TMhDhKBsDwtUtCU9TGgr+IiugAAC iNiUiW7QP+j8MyPSCBIT0kQ/RjmIvnYTbYyUET11oo+XQj3NDh1G+wXtc8OabAyIMAQHGHxwGNYA R5JDLn5QiiLktVHQWp0BSwMeJwAIIGKH4LCNPv+HZQNGpIIUOVahAc6ErA7LyA/GADRyMwk2YgX1 NGg4DTbq8w+tCcQEq+RgfX+oI5lhZSdagKOX7cxIM7GMWFb/EQxRgAAiZTwTVyqFBSoDUkplQAtQ +OQ/rqXaSGOa6BUSrFJggc3dQDE8INGaP6AyERY48NErWFMJfQQMrUxHWbGHNuBBEAAEEKmBiTOV QgPrP9JgLjxwkAIRKw1L1MipEylVwzz/F6kn9h+tDw8fFoSVg9DmDiyrMiEFPiNaJYeCkUbd0QOU YCUEEEDkBCauQVtsAYttPgnXCjyMQId6iAlaDoMDE1QcQntfjNBBFuTAhDV52KBZFxaYzEhjogzI FR22gMSSzYkCAAFESWASE7AY7VXkipfAShJYRceEvKYSFpCwIgCUAqGpEdx0Qg5MaCOcEdruZEAq Z9GXSTJhGR9gRCrrGZAiGmfZCRBA1ApMBjzLS3A54D+OCbv/aKkUeaoDFiOM0BEscGCCejGwQPzz 5w98rBI2VActN5lgZS1SjkdZRo6jaUR0CgUIIGaGgQHEbrL6jz77iVzzw4broKND6BUKC1rtDGvX /4X21H5DV8uBZy6hYwqwJYi/kVclY1m6jRUABBDLAAXmfyICG6Vdi1a2MkJXtoECDTTTCK54YKNJ sNF02Co4aGWGnNVh2RZbexilNkfK7gQBQAANVMokd66eAa35hD44woK+aQE52yItlYGlTtjiWGwp 8zdSqkRe8IUzZwEEEMsgD0yUpgjanBRs2A++4BUo9wO2qAxH6mRGWm3HgFTBoKdMRrS2JlFdSoAA GuyBiW30CjYC/hc6lcIMG/qDlX+grA/qdkKLAORVcehNCpQlP7hqc2IrIIAAYmYYGgBbWxW5EkKu lTH2JMHmrJDWaSKPwcImCH/Bsjl0ngvbvDresh4ggFiGSGDimkpBnnv6DV3l9gt5owB0swBsiw0T euMdS5sTpbWA1qXEm80BAmioBCYD2iA18iQfbDUIfOsK0s4LWAD/ga54Y4b11ZHHCbBkceSeEPoY Ak7HAQQQ01ALSORZU+TUiRyoaNtZ4HuDkBrtyO1XJhw9Ika0nSEEAUAADbWUid6gR15pDN+dhrRj DYb/og2UYFuzz4RtIBtHdsea5QECiGmIBiS2shN5qTVywCJv+0MedUJe1IQ1i6PNABDsvQEEEBPD 0AToJyb8R8ruyBux0APyL5ZBGfRBDmwTfkQ1jwACaKgGJnLKRN/YD2/OIKVS2CIK9I392MY3Udqa WKZWcKZOgABiGsJlJgNahfSPAXMv0V80GmVrH46lORh9dLRKCGcKBQigoZwyUVIntgBlQCzrwdga jVhOj9LoZ8KSMpnQ5qhwAoAAGuqBiW373j+kvvtftIDFlsVRduGhzZ2jHziAdyAGIICGepmJq/z8 h2Uv5n+0NiZGvxxphAlrj4jQYDFAAA35lImUQpEHQlCOp0DD/4loGqGvHSWqRgcIoOFWZmLL7rgC kgHLiBFGNseSxXHW6AABxDQMsji2gMV63geWkR/khjkTtp4QA+aMJU4AEEDDJZtj3UOOvt8I7Uge Biw1OrYDr7CuQMHmCIAAYhomAcmArb+OL5vjSZkYyx6JCUgQAAigYZEy0daL4j0GjQFzwxT6CWIY WRt5fBPfwDVAADENk1SJLXViO33rH47ylglXEwnH8kes5SdAAA2bphGWhjtGCkVqZ+Laj4lrAQJR Ax0AATScAhNbasVaZv5HHS5HDkj0QGUiJVABAohlGAUe1nITLUX+Q97DjhygsCU3SGubSF4eAxBA LEM8EBnRAhG+FRstSyNvx0afuWBAW0yGLaXiahqhjLYDBBDLMMziGCNJ/3EA5MBE2rMO38POgLpJ gOAQHEAAsQy7AhO6eYEB7cA+5MMB0CsipL3rjGhmMSKlXIJZHSCAWIZ5qsQISNCmAuju4/+wte7o BwEgLezCCER8U70AAcQyjAISZYgTx3E+/6Bne4ADE7IpA6IWdhwFtpMW0FMqLgAQQCzDMHszYGtf ggIKtHsNdkYSUmMeBJD3Zf1HSp3/0Sp+vMtjAAJouDSNMA6ERk+VyCmTAemkLaSq/x9S6oQXq7CA /E/EZiCAABqWFRAD0tJt5POloIEHn2yDbSCApkwUgKvmx1duAgTQcG0aoaxHAoUNiP0PsrsAHqDQ 0xvAyxORDvT6hzaTSfTxkAABxDLcUiXamZzwtiZaQP4F7URmQCx9+Yt8QDSOFMpAqOwECKBhl81x DcMhBShszRFyNv+Ldr4xyhmeeFImCgAIoGHXNEJKnSiBC8vq0IrnL1JFBA9MBsh2b/Qz4TEa+LgA QAANx0Y7cu2LMaeOXKMjDfb+RTtAH2MMlMCxamAAEEDDMZszIB3OjOzxf7BKCYahAYgemMgH5aPM HWG5BQYlUAECaFiWmTiG5JD5sJocBv6ip04G1JlNospMgAAajoHJiFx2oqVO9Klg2FZ58M4NLIH6 D234Dm9tDhBAwzKbowcocncTbYyTEWm5ITL+hyUgCaZMgABiGWYBiGvbNQP6qTcMaIu8sNB/CWRx jEAFCCCW4ZQScYgxIo/4oB04+g8tQDGyNwOWyTlcqRMggIZrmYnr1AUGtNTJwIB9scJfHAGJr7Jj AAig4VpmMuALUGwVEgPu1R+EAhQOAAKIaZhlcUYG/HPeuG4W/I8lIHEtqcEZoAABxDQMUyIDiQH6 H0sAEl1OIgOAAGIahlmbGIwrq+NdFcJA4IowgABiGqapEkajbOUjkDr/48jeRB81DhBATMMwVaKn UCYG3AsLGPAEKsnntQMEENMwSY2Esjp6gOJq4vwnEmMFAAHENIxSJK5AZGIgvNyFgYyUiKEWIICG cwWELXsTWptOUVYHCKDh2DTCVfEwEZkqcfXDCQYqQAAxDaMAZCAiuxNaKvgfR0olCgAE0HCuzZlw BCITjmyOL2US7P2AAEAAsQyj7I2rQsKW5RnJqM0JAoAAYhpmqRJfQOIrL4nJ0gQvSAYIoOE2aoQv RTKROPBBcqMdIICYhknWZiCinUlqeUlyoAIEEMswSomkBCojEW1MkgFAADEN4yxO7PaT/wTalkQH LEAADbdRI0YiUyahbuJ/YruQyAAggIZryiRmCwojCd1IolIoQAAxDZPUSEz/nORNUqQ23gECaDi2 MwmNJBEbeCRXQgABNBz3TpIboBRfGA8QQMNloIMBR8pkYCA8qcZAboWDDgACaDinTHyNe3wp8j+5 gQoQQMMxMBlwNORJydpkNdwBAmi4BiYxtTSxlQ7RgQoQQMNxqpfYgPyPh00WAAgglmGevYkJQGJn IgkGMkAADdtNVQQGMgj1eshKnQABNJxXwf0nIsBwLYNhICdgAQJoOG6RZiAhZf4jMoUSFbAAAcQy jFMloRT6j4G4RVpEA4AAYhoB2ZxQgP4jMpUSBAABNJzLTFwp8x8OmqJRdhAACCCmEZrFaRKwAAHE NAKyOAMRZSYxa9cJBixAALGMkCyOXHszMBC3QpjkFAoQQMO9AmIgMZtT1AwDCCCmYZwKiQ1IfMUB SQAggJhGQIokpR/+nxKLAQKIaQRncWL65SQFMEAADZeTXRlITI3/GKg4wAEDAAE03E7DZqAgW1M8 oQYQQMP+yEcGzD2RDESMJJEVoAABNBzutvhPRIDSvPIBAYAAYhnmqRJbe5JQZJANAAJouI5n4muY E8reZAOAABquR4tToxIiGQAE0HAf6PhP69SIDAACiGmYBiK+xju+FMhIieUAATQShuDwpT5iAo/o AAYIoOE8aoRr9xo6GxsflxheABBATCMgAJEDBtfKYmxqSE6pAAHEMsxTJK7tK7Dsj2vTFVnlJ0AA DccTt/Bd+sGMJTAJXbuAjPHW/gABxDIMUiADnuzLjBaQzGhFGzMWdaSue4cDgAAabhtRse0BYob6 kwUpQJEDk5mBjOtqsAGAAGIZJgGJK1UiY+QAhYG/aGqYCKRQvFkdIICGS8rEVjaiByIIs0LF/iMF JguW7E70TSvIACCAWIZBtkbHzFiyNysSRm4K/UXL/oR2AOOtgAACaLhVQOgpkwVLykSugED832hF ANllJ0AAsQzDgMSVKtmwZPN/WCon9NRJNAAIIJZhUFbiq3iwZXNsZSYLlooIX+rEmuUBAmg47Tcn lDJxBSYrlmzOhKciwlluAgQQyxDO3rgClJlAmYkcmH+wZHFmBvyHSuEMUIAAYhkGKRJfYx1boDIj DdGxIMkTqtEJlp8AATSc2pn4GuzMWALzHwkBSVQ2Bwig4XQaNqEKCTmg/uMQx3bcGQOxKRMggJiG SSASClRiN/QzMeAfRMYLAAJoJGz3+0+AT0wkEWUnQAANy6sSGfAfzMzIgHvZNUULEwACiGUYBOJ/ HIGIfID9HyhGb2PCLgeBqaNouQxAAA2nlIkeiLAA/I2EGZGG4GBif5AC9S+WQCUaAAQQyzAKyP9Y UuIvKP6JVov/h8r/hOJfaIFKzFUMGAAggFiGQQBiC8jfSAH5Ayk1/kUKzL9ogfkLqu8vlgAlqiID CCCWIRiIuG4A+IslMGEByQhV8xstMGFqfkADFTnrExOgKAAggIb6ZfEMaGUlckCyIAXkf6RBDSYk /m9oIH5HC1DkwCQ6qwME0HCozf/hSJk/kdrRsFTJgiT2F63c/IGU3XGVnXhTJ0AAsQyDVIleXqIP 7P5DqoxYkFLmP7SA/4klZf4lpR0KEEAsQzQgGQnU5IxoKfcPWrZnQFP/C6l4+I1UEeG6xgYrAAig 4VRmwibIkCuof0hlIzOWwMTWHv2Do0YnGKAAATSUszkjlqyOq5ZHn45gwNLA/4uFJulyJYAAGg4V EANaQKIHJrYVG8hq/qJVYP8YyGy4AwTQUM/mjFgCFFs5im2wF99gyD8CAyFYAUAADbetK/+wVD7E 3AFE6PATokaSAAKIcRgEIr7BYQYG3Osu8e3KYGAgYycGQAAxDqOUyUgkja9VwMBAwdgmQAANp8DE lkqJ9SdVNqQCBNBwC0x8/iLmDE2yAhEGAAJouAYmOX6keIMVQACNIioCgAAaRVQEAAE0iqgIAAIM AJMBhEUdafvYAAAAAElFTkSuQmCC"/>
+ </switch>
+ <g>
+ <g>
+ <path clip-rule="evenodd" d=" M259.783,240.53c-1.079-0.938-1.804-2.164-1.874-3.679c-0.215-1.516-0.215-4.04,1.084-5.338 c1.009-1.444,2.885-3.103,5.335-3.608c2.453-0.937,3.823-1.298,9.161-0.793c4.978,0.433,17.385,1.948,21.643,4.256 c4.184,2.308,5.192,5.7,3.318,9.883c1.659-0.793,3.174,0.866,4.544,4.978c1.154,4.183,2.524,12.047,3.534,19.404 c0.794,7.212,2.959,15.944,2.885,23.662c0,7.357-2.161,10.387-2.885,21.643c-0.936,11.251-2.165,33.975-2.02,45.66 c0.145,11.472,3.39,19.188,2.524,23.157c-1.226,3.533-7.863,2.955-8.798-0.58c-0.939-3.748,2.595-11.972,3.1-19.978 c0-8.008-1.3-16.955-1.081-27.126c0.217-10.387,3.1-22.434,3.1-33.904c-0.145-11.611-2.449-28.131-3.823-35.344 c-1.73-7.504-4.469-5.774-5.482-8.442c-1.011-2.813-1.296-5.194-0.575-7.718c-2.815,0.143-5.483-0.289-7.719-0.722 c-2.31-0.578-4.184-2.452-6.202-2.597c-2.165-0.361-3.68,1.083-6.783,0.722C269.235,243.488,265.267,242.406,259.783,240.53 z" fill-rule="evenodd" i:knockout="Off" stroke="#000000" stroke-miterlimit="10" stroke-width="0.036"/>
+ <radialGradient cx="267.6016" cy="232.2114" fx="267.6016" fy="232.2114" gradientUnits="userSpaceOnUse" id="XMLID_77_" r="26.3361">
+ <stop offset="0.0944" style="stop-color:#BF0000"/>
+ <stop offset="0.1351" style="stop-color:#C30300"/>
+ <stop offset="0.4333" style="stop-color:#DF1800"/>
+ <stop offset="0.4976" style="stop-color:#CF1300"/>
+ <stop offset="0.7111" style="stop-color:#9F0500"/>
+ <stop offset="0.7521" style="stop-color:#960500"/>
+ <stop offset="0.82" style="stop-color:#7C0400"/>
+ <stop offset="0.9065" style="stop-color:#530400"/>
+ <stop offset="1" style="stop-color:#1F0300"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#BF0000"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#DF1800"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#9F0500"/>
+ <a:midPointStop offset="1" style="stop-color:#1F0300"/>
+ </radialGradient>
+ <path d="M295.852,240.891c-0.649,1.515-2.164,2.452-3.679,3.102 c-1.875,0.36-4.039,0.36-6.203,0c-2.164-0.65-3.894-2.237-6.059-2.525c-2.164-0.216-4.618,1.083-7.357,0.866 c-3.174-0.505-9.161-2.092-10.75-3.679c-1.729-1.875-1.011-5.338,0.504-6.782c1.374-1.587,4.043-2.597,7.722-2.74 c3.604-0.217,9.448,0.288,13.921,1.515c4.328,1.009,9.161,2.092,11.396,4.04 C297.222,236.418,296.285,239.232,295.852,240.891z" fill="url(#XMLID_77_)" i:knockout="Off"/>
+ <radialGradient cx="297.3291" cy="254.605" fx="297.3291" fy="254.605" gradientUnits="userSpaceOnUse" id="XMLID_78_" r="33.4705">
+ <stop offset="0.0944" style="stop-color:#FF543F"/>
+ <stop offset="0.2881" style="stop-color:#D82919"/>
+ <stop offset="0.4333" style="stop-color:#BF0D00"/>
+ <stop offset="0.4976" style="stop-color:#CF0E00"/>
+ <stop offset="0.7111" style="stop-color:#FF1200"/>
+ <stop offset="0.7521" style="stop-color:#F61100"/>
+ <stop offset="0.82" style="stop-color:#DC0E00"/>
+ <stop offset="0.9065" style="stop-color:#B30A00"/>
+ <stop offset="1" style="stop-color:#7F0400"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FF543F"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#BF0D00"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#FF1200"/>
+ <a:midPointStop offset="1" style="stop-color:#7F0400"/>
+ </radialGradient>
+ <path d="M304.868,285.036c-0.505-3.965-0.79-12.332-1.659-17.024 c-1.009-4.83-2.668-8.149-3.894-10.818c-1.516-2.525-4.184-3.102-4.398-4.761c-0.506-2.165,1.153-5.627,2.233-6.781 c1.011-1.082,2.165-1.947,3.465,0.722c1.009,2.597,1.944,9.161,3.1,14.644c1.228,5.12,2.668,11.757,3.537,17.095 c0.576,5.05,0.359,12.047,0.141,14.285c-0.575,1.945-1.515-0.219-2.019-1.444 C304.868,289.729,305.087,288.789,304.868,285.036z" fill="url(#XMLID_78_)" i:knockout="Off"/>
+ </g>
+ </g>
+ </g>
+ <radialGradient cx="157.8701" cy="241.7705" fx="157.8701" fy="241.7705" gradientUnits="userSpaceOnUse" id="XMLID_79_" r="10.8091">
+ <stop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <stop offset="0.1354" style="stop-color:#F0F0F0"/>
+ <stop offset="0.3387" style="stop-color:#A9A9A9"/>
+ <stop offset="0.4333" style="stop-color:#8D8D8D"/>
+ <stop offset="0.5201" style="stop-color:#757575"/>
+ <stop offset="0.7111" style="stop-color:#454545"/>
+ <stop offset="0.8068" style="stop-color:#3C3C3C"/>
+ <stop offset="0.965" style="stop-color:#232323"/>
+ <stop offset="1" style="stop-color:#1C1C1C"/>
+ <a:midPointStop offset="0.0944" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4667" style="stop-color:#FFFFFF"/>
+ <a:midPointStop offset="0.4333" style="stop-color:#8D8D8D"/>
+ <a:midPointStop offset="0.4808" style="stop-color:#8D8D8D"/>
+ <a:midPointStop offset="0.7111" style="stop-color:#454545"/>
+ <a:midPointStop offset="0.5962" style="stop-color:#454545"/>
+ <a:midPointStop offset="1" style="stop-color:#1C1C1C"/>
+ </radialGradient>
+ <path d="M159.769,239.35c-2.451,1.948-3.678,3.822-3.966,5.626 c-0.218,1.729,0.865,3.968,2.381,5.049c1.152,0.939,2.812,1.372,4.977,1.009c1.877-1.659,3.316-3.679,3.536-5.264 c0.215-1.876-0.58-4.186-1.589-5.267C163.952,239.35,162.078,239.061,159.769,239.35z" fill="url(#XMLID_79_)" i:knockout="Off"/>
+ <path clip-rule="evenodd" d="M157.179,242.746 c-0.103,0.485,2.976,2.839,3.87,2.677c0.495-0.243,0.495-3.652,0-3.976C160.155,240.878,157.077,241.933,157.179,242.746z" fill="#FFFFFF" fill-rule="evenodd" i:knockout="Off"/>
+ </g>
+ </g>
+ </g>
+ </switch>
+ <i:pgf id="adobe_illustrator_pgf"><![CDATA[
+ eJzsvWuvHMmRJfidwP0Pdz80IGFGt+P90A4GyMyI1GigVgsldbcWo4HAVrGrucMiCyzWaHt+/Zqb
+29PdIzLzkiyVSnm9imTGzXh5eLibHTt27O/+r9/89meHL9/966uftU/V48OLv/u70/tXLz+8e//z
+R9z8+Ms3b7779sP7sOknX/z0sa6eqvCtwy+nP9I3//nV+29fv3v7c/ndOez9k1/84qePP/liOf00
+bPrd6w9vXsHG08//8Idl/e0vf/Hr9Ys//OEfT4df/eEPv/3nXzyeX7959e0f/vCnd19/8+bVh1df
+Pr6v+z/84dfvHr9YzrD5/cs//9vrb//96dv//dVP5RrhnMvLD3DU4e+bCv6r+sf25+34+Jt/CF85
+vvvu7Zev3351fPf/wZU1LfzfP/Z19zgMXfj9f3v9xatvL31pefen775+9fbDb96/+9Orb789vXvz
+7v23P388/cfLt4//8PIr+M3Lx//n1Zs37/78eHzz8k//C/Y5/LL/Y7gb6ISvX354HLBLDr9s/4g7
+/9O3sBccIPwbt49//OXXsOm3rz58gOuAY2MPfvGLoz0lbMX2k//xxauvXuPTgJv/nz+ND2KIh/7t
+q29exl/AweBuoP0Efvm4vPq3l9+9+RDP+ajfgn9++Ck+8f/0+I/fhC3f4l4DnKim/2OrY5tkA7ef
+1eE//Vr+r/Dv5rF97OJ5fvObJZyjiV8Yqseuh183tEOdnaCGXX+CFxl68HevYHTAE8en1VbDEzzw
+uQ9/6r/5q/AE4kOd4Jk+9nP3OE78JPSpvvrfr1/9+eePv3739hU9usP7D799/X/CoILdxrmhzV98
+9+bV+396+/oD9FHcNsde/4d3X756A6fR3c9vXn6FPam3hH/SN3738v1Xrz7A2Hv35rsP+NpMFf/u
+1999/auX//EqDLGaTvKP37x6+7t3/4yX+bNuGB+nbggPox/ax7keH5v4uOCvYTIPi48Ydg8782HH
+8Bx+AwPuH9+//ur1259j98Rh1P7xNy+/efX+i1d/+vDzn8F26C/st5/pF/4Brj3uBBsff8Y7h1H8
+i/evv9RBPDaPU/wDb/1pMv/P/D/dIfTXhw+v3tLIX99+eXr3dXg63+JbDOP9LbwKb959Rb/VD/g7
+OOd33zy8gJ44vqV7xu2/eP/yy9dwFJhz/unt25dfw5TyFW16rFt4c4qb4XK7x+OXDy/+x8OL//Lw
+oqqqumqqtuqqvhqqsZqqGdqhOlanaqnW6lxXdV03dVt3dV8P9VhP9Vwf6iO0U73Ua31uqqZumqZt
+ugZegqZvhmZsJmhzc2iOzalZmrU5t3CStm6btm07aH07tGM7QZvbQ3tsT+3SrtDO7bmruhoO1Xb4
+8/Ci67uhG7upm7sDtmN36pZuhXbuzn3Vw4X1cNoeDtp3ffgZHl78V72/eIfhHuNdxvuc8D7jncZ7
+jXcb7jfecbzneNfxvuGJursP9x97IPYB9QK0nvphxH6IPXHE3oj9wT0CQyKcCPuFeyb2zWj654B9
+dKR+gmbuj+/Q3iPfJd8n3ynfK91tdr8t3F8nd23uG+7Z3jXdNz17vvMW7z7eOY+BCUaE3v/J3r+M
+Cb3/2APQB+7+rv+pN1sTGxyxSVprWpe03rRB2kgt9C3cH/Uw9/JB+tr2N/c59np15vs7n8/reTmf
+zsfz4Tyfp/N4Hs49DOsWuqc+V+t5XddlPa3H9bDO67SO67D2MPRb6MJ6rZbzsi7LclqOy2GZFxif
+y7SMy7D0SwfDpIFHVZ3Op/W0nE6n4+lwmk/TaYQ2nPpTd2rhcdSn6ng+rsflCF84Ho+H43ycjuNx
+OPZHeNUeXsCwa+DRV4fzAS7isBxOh+PhcJihTYfxMBx6aB0MUXjIMEzg5uf7/f0Y7q97/Ls/Ht/j
+ffYDtLGf+jl8uT/2px4usV/7M74SNbzwMGkNHXwt/IzDNMzQDgNcxnAa4IaGdYCugdcmTCrwHsYJ
+buxGOOwIO4zjOEGbR7ikES4fbhI6YlxH6FJ4zWAagskEJ8Spm+BCpiF8fZqmGdphOj68mI7TaVqw
+rRM8Cngh6zD1zO3cYYOLh4uCU8Au8ecwQ2fN0KnQ9TKn8kqEU0BNa1FcjXpai8JqxOvREdcjvyLZ
+NQmeAK1KPfVi6MfQk9yXoTdP2JvQn6ZHG+lV7Vfs2YcX2LfcuyfsXdu/dVh4sHc76t3QvyP2b2gH
+udew1uhKPNM6E1eZci/EPhgKfQBDFgbNGvvB9EJclzt3//Huj2Yk8b3XdN9013Cvo4ynOKL4juP9
+0oiSu+3dvR70Xt16F1Y8v8Zvr3Z2hec1DtY3WNnKdg5bOWzjWAvnbHqzc5bNiXov9ByNHHnnYi/F
+/gl9E0ZD7JHQGyv1QTvKujmf5xXG9AlG9wHG+QRdMUCXd/CIG7jBCt6PFd6TE7wzB3h/JniTBhiU
+HQyDBt60Ct66Fd6+E7yHB+hFWOWgR8OD6KGPW+jteqyg/1d4Die4hgNcyQS/HuDKOri+Brqzgutd
+8dme4PoPcBcT3M0Ao6CDe4MZALq9gvcljJYF7v4IfTBDX4zQJz2+bS30Ut1VYBOuOB5P0IsH6M0w
+Vsd2uN/rj/hezdoT5ma4a26wzJKRFV7TsGYF8zi6BmFCHQ64hMDaNsEKF36O2E6w8i1hBXx4cTij
+cRZe8ebYct+OB2lx/TnRGiTrkKxENZq2cS3qcC2Kq1FYjyZcj+KKdMIVaY3rkTvP0ZzjhMf3Z2jo
+DHGti6udHvsga90ajovGZ40rHax1cp5e5v5waeGs8X7CWWo4djjuiOvnEY50DhMf7N/DmDrACFux
+j1vo0RH68HSA80B/dXDZM9gZ51Mja0hYQXCSR9s9/DRo04NBDVb+CvPiArNjsP8PMFdO6BUNMMV1
+MJc2MKvC3Aq+xAoz7QkeyQF9rAkmtAHm5a5uf5Tn4fENbrgHoZrHbngKS/3j/BRelvC934Lf/8cL
+Xzt+C0d6Gpq2h+9001M1DvNj1z6Fy9djbH0h7t3UCIH18xNcavc41k9hoTR7b3wh7l2Fq4FfwiVW
+ldnJbw/fPS4EZKxvv2QY41pooylDG00Z2rCuf2fcOOPAUZsvtOjo+RaPEo/Y4/89nqdNWupMkiMJ
+R1RnMm1DofWF5hxWOGLqwpZb6UjFo8IR+S5wXGPLXW7rSF84Dxxx46wZaFOCbRw4lcBTDE6dPDQF
+hhobbQMBMtFgY3MtGmypuWYNNjV+0fyH91dNXzT90dhls60Xw20WZ8m7SmzQT2zSgplLThIac404
+R9YxMk4RLhO6RKgzFJYGXBxg+bFuUItT+4DOz2Rcn0WW1JoW1JaW0gGX0gkdRVxEYeE8xSUUXMmz
+LqC6hLonZ59bCYhKYSgFogSCgqkzQo6TGOXx2Z4M9FYbw7xz8CPDTks0zcPThrGgJjob6frcD+L8
+nDeM9dE9eWu0exCSHR12l3UM1Ma96dGpY7fmGEcALN2VceHyMaBOcSMOcXz6E5kGJ1zQK1zSm2AS
+iPPr3d4Vnxz0Sl2GM7YBjS1Iw4EaDy8Q1pjQhiqBGh7WiKDGLqwBiwcBGw7WWAysEUGNQUCNOgAa
+ieFsTGfomzYxn60BbU1oa0RbMxoMaTSj+2hGw/Nr0CFjU1qNaTan1aBmkzoa1ScyqtmsjoZ1jxBC
+i+OrJvP6jOb18pmAKFjtbnhi6fNKQSh8Umg+8tPyz8o/qXXfxVEnByEf6+aUHR1ydegJdTizpo4O
+uToINgz4Xlp3h59NdHfU4SGXJzwRcnkW4/Kg0wOzw0COT0uOT40mgofYwEqq5wGfJPRWj0b2EXpy
+PVXQsy308Qj9fYCeP53OMHHW8Ew6eDoDDNYZntgxPBh4futyRpS5Dgg7PFu4pIcXa08toERh6AaP
+JHpTOJnjmIh/x3YybckbHLGwFdqzf+CIz96THOOVnJUJRtaK61IPI3CG8bhKD87Qfyv0H/feCL13
+oH5bs17rqM+037RNxaZeqv03NThitu3j2vOP6Gd9GLNHGK0jjtIGHfPglAeXfERXKDpAFbo+p6Lb
+Ex2fGh0fGNm4Ni+4Tp8QSAtrNy5G0XuuCaVE2G1Ax0hb5xqHpdpia57b4IjP3pPcxNBLR+yj0EOx
+f0LvhL6J/YLOoDqC3g3Eq6/RnD6HVxYeyILhomAdIQofpjrxM7wHwPa19TJ8WAsODEfcCoc98+fm
+gJzZ04M6RQ8g9XdSu/GQWI/GgoTnmUK7bEUyuDsRuOstSQJ4xZIUWxIsRQ1mSjgTbcqDAL5iWYon
+UWMcVAKZaF0SwA5jZnYg+8kC7Q5qbzK4vRR2APuKQg9LEn5Ig+KlAET0TzQIgVYqWBqLBeTFa6kj
+MM+j/+oJ2q8Quq4cTYMJG454lHUoNj9nlWfcKZmXzQwNR/Sz8kFWN7tanc8xIltja6S1rqHBBVZW
+R58b/HaF/wfb6mzuVu9O78Nf7cANrpH/XbwHdweHQvP9o2tC6Xz4SOX5bR/TWgLHDTuA+i620AfQ
+N74XTb+d+wttcI22Ym/Hxn3eUL/Hvq+k733/b44zGmOllto7q96hu694T3LNcI3oimGbyWOayG8a
+0QbnO+L7aGTs2JEj1yzXWH7KhyuJEdtEiIQQUSRGlPGrPQQpnbWhGbzM0yOUGGHJKESMKIToOp7J
+EQ0YEkTAzuSWjGODdZaQwtgPzt4wx68FPGAshu0YB+pd8NPjPy0FewcKlYc5Vb1+8PiNv3ZGny22
+BdsJ2xF9uAP6cbOMpXQkmXEUDkAzss4+Ou+M9PZ36O1ZLz36fNHrI7+P6Afg+YEH2CHXqMFFMvp/
+TERgD5B9QPUC1Q9UT5B8QfBtUs/deoPeH/Qe4VL0CKPvXgp8XRH6ch6h+IOIw+2Evvj5Pd/yLDaw
+1epP/FM44hXTwl4jG8uakeePazEoH6fCT9BgLkEreqex5/OZ4i/Bi3+snsaqgT8H/BAIok8tbmi6
+MexZt4XAzK17uvPNYQv8Vbcj7RY8BvhnsxPMuX3feM526sIO8I7hbmM4SDsPeLFj04cD9HXcPw0F
+3bzrR0eLunK0qPvMRNj+SiKs0mCT9UbiDkyE7RFJKtFglXJk4w+esKWUrUVJRjDX1ULdyjH875cy
+q4RZT5lVwqj0HVJmdb3uzZrNJCZLY7JEJktlIoJxcI4IpRujj/WZyLXdleRaotZm5NrcG52RXFug
+1mbEWiUW2/E2p7TiFtY/21s/CBpu2dLUSCnTcLdIuCdDwi3bmUoGaxUzIGsz4lTTZ8TZryF8Ms6+
+jbQL1g4T5nPjImpdMeKO1lUkmKCFtU6fM+Jw74m/5p4w6N4tVOALNGCMeT+8KFKBLRHYUIENOcoT
+gRtLj7qFwstpJRv0XUXOcgqvJ/AOhsx6EDKrIfDGfpFrvIF6e4F2i1cO11ii3lriraHebhJv8UrF
+E7qBMuvYFyldlqwhWIFKlNlSDJ7sHyTMtglhFu+Or/EWSmTJKxSfkLxCGOElSqQlRA==
+ ]]><![CDATA[
+ GkqkECKXhBCJlMj7NX7Ca7S00U4aAd04kEdKAPApAJEJw0RTJZg2yod5eGHopZ5citRSoV1KcGsk
+c5ZmuM7MckxRF5I6MTtOedoD9LoyfSzZlOigfF6ZPSp3fntuf157Vn9OPBuc186whtgaZ1c+L3kV
+POvxnNcTSX1CkjrT1KtIU8drmZCQGs7NdNRARo2JHJGO6smoREWVuREnNyIUt+gpSWwdbdgF4yuR
+WjxHajFGMzuMZ8aI5lljmmBLc1zTkTmZyvk3ed7PBJP0fTPv0lQ3vkA01YhP7NBUy1+Ie9fVPJVo
+qn77RwMPYxl4GC/SVFOS6ngLSTWhqXoyqQ0e5wD/JpgPR9yjp16kkOZth6Z6LTE1IaVSqNs6oN6x
+vPkMdI0+uJ6GTkou62ZYG+m+rm0SXi3ddRuEUrqrDWGDwUWha0t2tcZWiexazk0SwAlmAjEzOdTh
+iK6HhOhK4Q7jAhzI/CfjHxfKLYIjU1yZ4tgli9CR8iosvRUWaJPdd5AlfSVyK+eJ9ERrnYjWekJ3
+aDmsSGhtiNLaw5oVyIYjkogOxyPSsRZwsTA+g7SsgLh0YPkHuzjQswKj8gAuWuBirUjTYqJWi1St
+YRnRtYuULSJt7VBnLdC0AzMlQJMNlo1JqMzClSkI1xoQTokOBoAL1FmM7NZtiT5bzuSvyuMJjfdI
+X1DHpXbw5Sgjy4+r2lGow9hi8iyMLjCDAoWaR1YcXaMZWTy2amdQjTKqlDjborMbR1UcUWFMxfHE
+RGklSbMhuAotugsjCIl8B6SwLjhu6pA3gyTXHq294MofLpBwLZxwPaAgkAKMuXkHUNincxYJnZJT
+vE3oTCmdOZyglM56hnvPMtcyB+OKEJ5xM2AkGEeD3AzvaJRJnZ1zNs6axQajVTPZmNLZmFy2lXLZ
+XDYb5RFZE0xyiOCN4iwiItR9f3TeXUjpOjpvdSWdNz77SxmLOZ232yRc75N5hWiduJe5g5nkLjoX
+84TQis1d7FGNhLIXJX/RPvGRnrhmjenzthlj0ehGsxuTU4Q+GczvjCp3OdxwdvN/bwJUMxEkFJSB
+JydhlySckM74JljVmCCCpUjgnP/wQhJm8rzx2pDZKNgSxzhSlk/LQhQE/llp7lrM3/q7JfkNN3hZ
+4Ihn25DQGxpeENIfeqJCKX0spTxZotOKROdIqFBaRU67osb3BW/T4RR/IqMoxh4iW5C4emgNDFGs
+ICo/IAXjaPuAo9pwFXwf4aFEGkdP99PTn+HvQUjevSOVDSmpjKhxsyOBWSLUovSuc5VYKNeSirYt
+4zz9zfs3l8NpGqxx4bQEjDwllo7CkRSi/Z7m2n34Pp1rC7OtSZ3IZ1s739ZWm4TQJ0J10bbr0dHn
+1lLTH+ajsLsjbLvQi4bWvQi5mwneR6F5K9Vb6d4lyveANmpO+i6Ru4nQQoAzXY9ci70KfwX2zJZo
+7s4kZB5DknGkFCaPnISefaQAo/G7bToozdklj7VxnmSRGm0ovyYoTZC/If9iyCIh/2ahC6M/ItRP
+T5u184Qhispc4luBnApHxIEp75Pye2pHnGyFDEpYZUKeVAKlI0/CEftIv6VxrWHwQYIK6fp10pS/
+JAie+b2Byh/WKqOxcKapMdLOrOXK9gtbMIkNU7JgEMAFG0bGb/6zxdLPKVMF0hNTnj43tQkzx58m
+6PHAU5qbhuhCNWJ1T/ACDWHfTUzvmQewmN/TXEXqUFcHVlTdBbYQ5bRznvke5eljjkLkJ2ZLIXdp
+7odw5U3fhb86POo2+enWXT8Wg2yrIgYJm7cwyCZBA7dwyAtYpJAx0oT5FJHMMUlrPRi7QRJG8qT4
+0VzhsJE4X0ijlyN2yQx9qW2ilVlSS1c4ts7+KVJZsJbcEct3kuOvu/cj6fxbd3G59zIMcwPJ9Cng
+Nnnfo5kWz/SI5hp8oUIQWelhp2SODzM8z+9Wx8qoSsL82DnlJUPidjiUT+OeszRuSeQGL1OxqBgq
+lzB5lsg9CBqlSGeWzg8rxkB452zwTkQ8jdZLDG0OuCalKf2rpPRjAPPhhSCfowldsiYO6+FgMj+Y
+FgH9HBD7TNHPFbHP6gSrJVquDViwPWKgo8NAT4iBKgoaHkSHkcIBk8EtCnqMHk/03zZoiIqGei/Y
++QgZFbETsmb0DaZNKmKk2pVEBGyyl/OIwW5IBQSUUreYtAElcVoE9GgpnNFqA0utzXD18H9JPoBH
+3GjINVY+AkO+Dy/MiKPxVsTVD6gCdJIx5sfXLNjnEuwjHFkRSw8eSBxPYSzFcdTgGBoQ+4zo58Kj
+BhNxB8Q94ziBEQIjyabkxpRmTmhmL74RL54t0zQRN02MvTZV5uafH9gRC2bjD+4af4hHvCrnIcYV
+cSQl4LyHCxxgkEAGFjTwsMEZJz2GDg4OprdAvQUPLHxgAASFEMBm9CCCAW0dYK8wgoVtCyxAeOWP
+BR6gdX4Uulf3RyHcDMQlEbQI5GZQrgFzU92Mfks3A6bOFNRlWHdLoSFCuwbcVTg/6jNkkL6FeC3I
+m8D6BPQq1BsZFj2GZbvvD+I34+bZEH8C8O9D/CnAn+VmgWGTA/yX2GPbsoQjyoOW+GMlacI2g/cP
+nZcmxOcPBmK9Ae4PIgmnbBqrieDZNMKnQchKVQBUB4CVACL4VJGDzyoArAAwkqkfTXp0H3Ba8sBR
+9K/D39PY4d/B0cTtVTvj9BVc3aBfUOXhhVSHLHfzDoZZn+ZvWoiW884alw9SysE/uszNc5K52Ykh
+NhCUGc1+K6W+FKTE8+x7nxmCbgG829uZ917sN827t2xhwxeG+aciLDPJupdwhwtOlAVUOJSx+z36
+oZVDgyinrB0LLf+WfBeOqN9bkgBLdmUSXuGWY1O1hC4qE5RezNVx5umBgiAzhURGcRJG33CW09+a
+bwu8uZ/PvqVvYzK+Nas9DGmYqa0yQHtTZru2Thtltrcmr72c1X5JQ0Ea3PXp0l0JIBvvIl49w7AB
+gD1EZktscI3HYg6yqvRdnzh6VdAoyQnaz0DfJKvZ2UtgqC1J/pL6XGOcx17yzWnmoly2EtPdwxQ5
+UHEq5/+h3GiRiHUxU/womeLZM3J6AyZLPIwlCmoejW2a5og30cIQG6OUId6LpQFPLssPt3bqUMwO
+T8XqrZVaBYneYrBrm1iSW6eXLQ8Hy5vA2H5rr2sU2E9DbJd+dpLE4Yj6KUugS5sJ3m01Dultt2W3
+nfIGR8zDgti+p/AEGD8KsgfTJ4YYEOq30YUGtk1TITxx4wFuOvtOMvbzDuCCElPXhi/PQzWlkYW6
+6ufdqMQN+350WKKs4NtuK/h+f2GJbap0DtL3SBLeg80v6fkWAhMG8v+4wISskUWtrf3QRG0Akjwc
+E6nRRYrzVrDl0rmNyrBseWZAodoMKCw7AQWrCbwkQWMFd9PCGDX5i3lmmuYTam6+ZuOl2sCW3NqE
+THyjDXsppNALwJtSXBXmDbk8qUrwVlChJdB3kDIpBymRYpSCYYXeUQpWnWAJLERQOA8tSHAhTCo2
+wHCqnx0KKOTeXwgF5JTocijgWAwFQP8iKqDFu9TbPJlQgNVz8MU/Dm681OhPlkj2TIXeCgYkRHs7
+VrAgQCH8lOgIKxlawwF+ZAgZGkszcLacBgTiSDgiwhhDAo0JCYwSEohBgYaCAhgWeHiBgYEjkeeW
+03mDGn0t+nrcQl+jbbuBvm7RZI8XrdowitWutXhaSfOoTONKdHAJfb0Of1X6Cdu5OX06ZFOnysVb
+CGySr5kRqQmDhdG6o15sybWuNEiOwwoSS0Rbpdp+rpJbd2r0XzM1+rJeyAVSg5B2o9PSYEA7zkY+
+pH3A95+C2hLWronS2y+Ci2T6wgHlWgkva0wQc/A0OiXjPjtwWQhfSeBKMhT0sfiQhg9q+IonaxTL
+E/7llqQtw9gRxI4QdgSwe+H3pMB1GYIuAdDb0LOWgsAlHxmdXgA2hZ5PWiRiV4yIQGdMltXFf3Gg
+c+P48Wk9NRV7tVyUCsMMTuDJMON705grPsiWwbWRxPX13wqO0r8o68yCprPArbO0A7VtqJgB4SA3
+GDuelJmIX88Me+aIeoY5w7C8NJP0a+TTi3DpnDPqbwB0NwVKLRsVFpFbJUqLQK5Kk9IRL0O4ZQHc
+wp2IyLoBcL8H6HXLpSxNpuV3Fd9TOGIqvlQGWwss/kK5j8g+zyRFihDpPkC6IaLJ4GgcmyjCygKa
+oxgQBhoV8UwLjNoiFzYEC6YELAunTDSzELwvGBS+zIWYE+CAZQaFQJmLa6ekHV07mDZLm6SNVOmw
+nE2wl0+QgZUF4LGcS5DmEUwFJr/n8nciEW9yBj672GOohvU0RibvFGtj1azWeA0j+nkH8JAjLDkl
+xHAc+ishxxsP8Aw+doo5PmPnjwYdhzLoOGyAjnnhsH3YsQQ8Tg50nDfBxxIAORiozPKi42ydzs97
+pu4VIGSuTJBBd135WjZWlJxnnBvlW20DmNwID34Eh1nueg+gvNTcnhFqzfLlFLr0BbFU26EEX3bG
+akWQCma4VFhLAaox4aqendpDZziqR83RR6/AZumnefpeYoyl0WrDUvVg5hFpWCSDpoBmJijG0mcM
+aKYlz4wexMMLqQa9cpVMx5b2wKbL4zclsJTNCs/dFEFzOhGOM53Dm5Y37QBOzM+zEGcAOSeCug4E
+cp4I9FpJP6ISd7MlPYDgck7R4YxZpLsAaKoLYSRZDbPelVNj66ogyWp9IAuOp2HsDPqMXg+FsUcD
+e+ZStiph54uoLQgqnL0GBNYct9oiiwPKPeyZFFAzChBGWwRJh1ZdpMbxE/4fptEoiwTQZTUse180
+TxVFAgjOiiI6NlhJhMdCVBCJz38lyLNF1nzkQQtbPgAKGErX0k6RI38iKs6ZaTUCI3SSpbfHhWZI
+IYVRFUTLgdTGWcUeSvX2cI0Zyp4qcCDfkqTkE4s4VZ7ICa0NAjIVGvCeLJDSBXJYNaUqkpw8PivJ
+kWVw1YBvxcy+rCSc0aZ4eGFKjiUQqys8VoJYIyznaa4HrOs+JSXiHNBqKi9bmM4Cra0tEofFCRcD
+2RXB1hRqFZzIU18RKYr1ce8k1juJ9TOQWGNhqDS4Z8uFasnXVOvCqF04JYYD0ZEYwrX/ju3k/s0/
+BHklGJRXSVgyeh3jSoopmdI2mbD4RWRmW0vhk7yB9A66ytdc+5rrX3PTH8ty0nR9usTU5/4vhhHk
+6rSIxrmqnFv+nDc+2LRFE4QADq27VQZhE5GSpOKWY/3C5RZgWME9FZUjeqSUk6hjvIhQjIi3tJTs
+RnEBlv4iGHYWsY94cOHVUpoTJzqVFvYx/V9qXDm4tFRN6QKMqWxUy0oleIwYsJe4qadNcDODZ6V+
+mIc19+I2l/npGcsTjnjKQgQp+Fgwj5MwgWEGIAMvgx8dU5v5zUeJKruqOs4Y8qxJAQhh5O1m+OBC
+V1jqtqOOmP6ZwYTiX2vZM8bzU+jQQoUWIFRQsKeaFwoFKgio4J8X7cgrQ46ypPQG1A==
+ ]]><![CDATA[
+ +77gvFiBBYUJCA+LaFwE5vaRvFv3tWKkT1NA3QL7rgvSCHQw4gLW03SJPPgxR/krhfPmMpw373II
+PZTn55K8eoTOJaZJYEODG4VviUCMysSUIMJDAhCWznpKWl7TKEu7gCOaikj4DS9hk7f8mFmdpoKV
+kv/kpOW8ZivD9bbKa19sQ9LGrKm80ESsLp2/fTsU2rHYEi7zLhMxBWKOla2LY2viDC6otXAIxIEu
+wfJhMZsUbom5TaX6dJIzQPUC1JLxtQIucxIzmQNwTKqhykA8yzMzkq4JiDeWpA4eXrgaDl1B2pV5
+Z2sRvlOBV4LuEhaalXn1Qq8lViLLHfTETUNOIkxNzFBbROy1FqgulzuIjgNbipYb0kRLMIb0r6yw
+NFdW/syLn9n8lJLsmZN3TaxrS2xQaQMv9lcbPqMVNjgQleHUlqWCU1BPBDV4pKG0gQpq+KpUW6Be
+icsorFcYSVbYYE3GVRhVyYhykF4qbHAOdhHLZcjIiWDv6liMDOnZCu01AXqT8oSC5B889wbFf0ei
+V0RJg2jpB/AuWveRICGye0k1WkdTQDGs/tkMoQs/csRPRTDYq0F9A0EhCX/tJL1s7eW+c8sRS274
+xUbhr+ccaSPQtCOZflvbCFadz0memc8303bK2jFpiMXCEQ/S5qRNSRuTNiSN6wE/x39trCfrWuWk
+6mwtYW371ayzbEzKw0xJPXt1m7frW2O0C45oxTtzQb6+0LqstdrgiPzvptBKaWDlYpsyJLxwT5Gj
+vSVhbYGpIjSFHO21EFbY1si4yNLGTIM0oOAq015QyRBfmoFjsEFOBjw2FWoZPs4CCbZGbUEnAyte
+5UGEHmV9vNg1A8oMKW8oZcAKnALLXimjc6EDz9GebaUdhpkRNStXILEC2BZwboRUqmoZyv4NNEvo
+hHtw4R5c+DzBBSX9plRCR/dN8nwIYxbZLyHpEq5LqO7BoLoLSVdVRI3t0dZjwelIgl2DwDSN9GvQ
+WV3DiihshqKW6UpWYHmzlIRBNt0bdENVwobfHyElGiUcwggjPqjY4EIjQMeARQQRNciCCwT7s75r
+Dv97XTbLxPY65cTERn1AEwTQtT+RYvXattbI8MbESo+JzAWWapDjbwk7lPnBZWDdMIXhiA5UL4Az
+BoYxMMso4IkybwtpcZiUYcBvitGvUvLdwtM8XfKE6ZmsxdQYdMIMSF1Uhi6oQ1sV3UQt14FfGBRA
+IO+zgskMyRK5MqZVJ5As0j53YeWPOQpdR6yuzUW+m7kTNPZpxCTvapy6S/jy8w/i4eWm7zcRYkxA
+34OXb9j5Y+HlctXwctHwurJp4TZsdWN6ukDB12jmWoZkU6XqsbIAJMzOMQukXUpMz5iRUher5Fxu
+p6Pv8D2Na8v3I3W9ktSmpnCvhaMXU975Dq5NrHfXf1GJ9+Z2pW6ull3fTnJn8M+UoU9qfGSauQr1
+uYTlomJuhJJN+fnZQHzM2fOpyj5Z2cN7AvCBYXpIAL4E4isAyMr+LIDHmCZpk9prx+FLVXKtTi4X
++rTJ7IdQbDKBjWuCjRU03tLI1WRCCxjDEQUujmCxgYmNSTkbDdRVuH9KEOjE2R8iRLBRR8wGu0rV
+Y8ql6pVZE8qg+zL1Jm/O1JxLM+cmQ9pIqsmgzWaJGtNmwrxq51qI2Ws2n02yvB+DpephCjH3DmRO
+0uXB/e7cCDzi6PO1wyLEHNVzPcTcULI8j7gTpnFz7bBYOYxBZuKM4viKdcN6CkWEMRUCECtxRnvh
+B4fxA5aejJ9INOF00yOxRevCeNHsPAs15bq5pWpkuRueO+K5K5444yQyty12uqIHddqEcbJsKVjq
+9zKmPBlizOul5GnYWPPNpWJbF92lYttkbOukJzXKUHzBu+qFcsiG9dkMpTpl6rDDEbPU7Dw5uyhu
+WqhVhs478b9cirZz4b0Tr65ckqQtJI8QQGXhpzucc4dzPj1XNLWzNRfiGXXRjNXksx9KlWXUhqKA
+KXnzOrNaaD/LbC7C/fk2zoqeBTZS3unZBQpV0JFq6mS50yXmai4L2RZyoQfPYS1IDJagqbNCU4x8
+XMF+3QqSlax9taRzKk9ZLWBVYks42WedmS5BZenc5MAykwV7fSUrj4dYJIQpQZ4EdKmS1SgeSgK5
+2R+G3LgNCfjG8JsCcJaHy2lobO7ZkoFWKclq8drUNC6F5RV54YiuFFamyYs/WmR2khS2yEk4Cgdm
+YQcGoydc9iOmtQkS7EpYHQrNRUazMlejsHQJ64UjFl6rjRfrKsAQE9qvkksQcDOvPOUioxYY5euQ
+KaegUHsloLl99dvqtl7goTETWV5ujCLO+MzSeLN7BhqplDQo2+M2rqums53gcRu9zDlbLufHpXDs
+YNhts+GrMS9toeBsqpvtGfS2NNoxK+0pGnfC98kLOWt6aHwfB6dxt5ALZrXK0O2C9yU6XqYYuIOM
+LWjMsPFRoGMFjxk+VgDZpnuhoYZOuhprPkqbVTMwZlvZcAPTDcy22woRXzTewGwbneISRmT/q9Ft
+/9zKqDPKeFpusgh7XqzZdsO+BPiGb49Nr7htRWXfIlyMh90v1fbMI5Ai6tS1BjOu27BnG2HsNh5V
+j5BJot6+80cDzk0ZcW4uyBNYgYI0U6IsNJAIEcARdftUhJ8viRQkMgWOTfXRSfoFEPsSUJ2Cu5YZ
+lrLSthKscuB4DxaPkPM2FL4FLO/2xlV3Xb6aXQ5ZUZ7ACxSMDi40AgVJ8t1g3Kmjja4nsGDOOpXo
+ugGiWWtVZApMlQZrHVp+M1uDkwOlPce5UakCWJUmk1Iu2quySlmI2jOdN+QKENixbOcIFkYdVl/e
+zaps5pIFAlzD2nOmEly1qG5a5vNs2M9l6YJEuADWR6/NKoC2gbQ9F1rZ0FajlQUM1riGu5HEb5Gy
+4q1DniZw2lHks69mVNlPmMxJjuC2LqstB9hIebYAbSlj/iiehw1ytAnEfOx8cbbK2ThxJMVxJGz5
+XWkCr97bJvDyAWsiWWmChgBmL02wJAUA+5QNL+EMsH4w68uCzKrHGtVYB4GZTxS28AX9ojjBwuIE
+xGdmcQLmvFh5gtoUa+tWW6xtQ6Ig2s0FyDkFnSfxk8oCBeycs3tu4GeqQqIVSLarGaQKoB5MlKy8
+hxfotntAOi3gXRIq8GW8DciIcl6+woFjGDrb1VuvG3IFGAyzTEPLNfSAtYWsc8mCyDcEqxZGaGU4
+h5Z1aNVhVbYA7VwHYifCBfAWef6hMBANB9ErxebyBVbAoMYcmM8L7Nwh579lyNnrz5fXuDSkqvCz
+W+eCX09Q30l9YwodtyQJxHlGBwoZn+NMTOVUOVjMwp0xXHwWtdkw9zWR9U3YTCrGeTSIikhmJgS3
+tO6RAYeZu3iDtEEZ7t2gXjDxInmjc+ma3rzX/GanQclUB7zBClWVlUBwo9KPSTsidTxOLhBGo1FH
+Itoycz1tyyLYgioijCCQjsI6XeOFEUYxf4jZ8fDCQDxeIIHjFFYiwSrVlrVqlwjMJsa36oSVC6Qx
+GBsNcVMirY8VbjcLpNkkhaTlCQ2+9ZQMYSPbNnaSA5+ndTEApgE2Db/TQn84mKh0ksJ/RwEAvUSD
+pmr0cm22SUIHRozUIDpY+ecbNGnL1OHWw8hWxqGY4HJZyCEHZnNY1vSoAWU1ssRQ7Ghgc0kEgmu0
+Raz6WC5tQx5iy3UuSUXYpGuarimVu6glbabvklRESav24Fzg7WISacGRIiDLYCy8gZuFwTLZCRWe
+2JaeoJJdIj5hzFxkJqkeF5sxjsxtjBk1Z8rMCzBpwKgtF5n1pu1VZk00asC42SzgZZPBk5YnjvuW
+JpoPxHyykba8dcWWJ7xLbA51yW0r/WRrZBaJOWsWVpbqD+2zy2T0CsNGcDQqXfT1RZGM2/b0TOq5
+arY40NXc1VdKZDznKK7IFunkzlGz1xXKqvoNBvPNu340nFxWu+221G4VvPn8JbZS0NJAx+466Fp2
+SmxZNvNwVYktzw6+jgd8BaM5W5tKQLDC0Mpo3uQzX+Qb97uw73ZK8vZd3ADIW4D62YW6LC/HF+pa
+dwp1ORazWTM7U6jrWOYxY2ZP50A+ZZGuRn3UChVkkhh4SwTyUaGua8p0DUU285po2cJzN5DfvFmk
+i8UwpozTrIxmkjJAELBHGHB0CrYLgsC5FMawy2quQlkutAYsUKhSGCfDbI4yGC25qj3Vp5jEYWWm
+6uoTiItqt3vlvtaby33ZrKboZ5XLfZU1bxukwHiBjNmByyl7uTOaygcERTy4XKM8Rlrsa7bgcgFa
+Hl1owkLLMOIeXjj2Mpf6qhx7OXKXZ1Pqq0rGlwpkhCTnsyv0xaq3DCsrsDxS4OBERb4qKvIVQeU4
+TtZQ3MsVy4mgMrPeGU5uxAdUMHlP7Xb+iAI618pj/DCOWDAVf3DX+EM84lXQVAwRmwJKN9eeO6wb
+teei27ZRe25L1eDg0OUiHR5sxuNxq6ZyOfHSOmVtzpWh2nPXVJ47FEnxWY0yFOFm9DnDnw0C7aqV
+lfQMGIdGyfmSnoGg0YJHL4WKcwk5PuB/CHsVCPKEBFqCfJ1oGbBKIlcyG0UZsWu6e1TiHpX4bET4
+MTOQXIrXDhE+EU0WUMn+eGDpYGKn3GyBMoV0L1PPU/J5Rj+/oehVmTzu0jg/vWiylD/qkzYkbcya
+FFm6RjQ5jQ6kpE+LMFqU8XJ0QOzaQnTASihfGx3IKdufIDrgauINSRtNm0wrVbkjxikckYU6pKqd
+wGoqh8QRiN4h+ba+nSD/KMY8CtVhINqDjQPon74lUQEXwdBXCF+fm6IDqYzIlmBWQxXsRBprM0pw
+vVrFyUQHdC8TbbkxOjBSdGDw+Sc3RQcuiUh/uujAaKID883RgfkeHfjU0QFT0W7KJmI7TdspPK9t
+J9XtUAp8s76dNF/fjiVmi/XtMNN6p8Kdy/Jx0YIttRPWOrFZPp87OkBF5SKknhWVQ/GOaxjntx7g
+dtWVy7GC5xzFxwqiUsrcNzngjwffCxZcv+9HRwvKYtrdtph2rnayN6eWmyWf5/GBNDrgzbny/A57
+m1zAksJJeY3Yrfi2I7y5dbT0qDYCoORzi0aU6fJXn0E0WXLC+wWDeGu9zMnnRX2JtrI6JV4CWwWw
+VaXkkBHEWzSgFd0Pq95i1juvUJKsdVafRPFVmNuEBt4ntN2E/L3a9CShfDvZ4YCrPrwo1RNLqonl
+yKql7a5SjS7gqz0qDFhFEiFyZyLWVsL6RCTelTD7iNujDglMAWOG2Z9Fvjqs0VxjzqL1i5DKKkJi
+W1YhoarRs1DLSlLofh7YUhnJBOZqrXIIDwgj7SmbIqeAa0rBdlIB2UswqqJ3UydWUynFzRaDKYwn
+aKcO7J9CpKhzaaS52kidYfZcpw5G18MLRO15ZMXRZRH7U6I3wiPL1TjEMdWiVRRHldLBWW+EFUcG
+QwZHWWsh/3dE+I+Y/Ylkz2uswxZrE46I3E+nbXWQ3JG+HswSOAvG3J7MYFlosE4I2A==
+ ]]><![CDATA[
+ DtCC9yIHQL3u3BaklVqdDRprFSZoOLvzqhRBC2xZ+dZlgPcqUQHpMQnFQluqATI7cKsz4JaBt2C0
+KsA1XNT/mATkYqJjk0KbhB8Y/Y/vD868IDR5FZy5+fRLzz73OLy/Ecn1OaCZgN1XApr41GEM2PRQ
+C2nmT92qvqSaLwJqwxhonUBvCmqOqdqLPG+V5J0I2ERoE7UfndbLhiLHVTyMchP/VdJKlMwsSSWK
+l0wZw1OQBlMF7kRKSSESrVHGqJFk9ZE2Yot+ztP+EMpvXZQwnQnuNQKm0YMTxpoFhxkaZmA4wsIR
+FI6QcASEe+HLlKvnXcJAcqj4kBDYzXpNyesW6Ug5kLZgluqDLc7OMyxmsvd6h1LyCq7x9hJ72cpN
+DLqWIwpSLvKWlHlL8MlhA5+Ma70VlDibJLCSmISXklAxCZGSeHhhxSS2pSTWW362hOhz4YdcgD6X
+oN/TptlSpDlksL4yf70yjYX1rZ6MRfWYwm/Fji0Sae86xRzdfck12itN0x6OG9ct57MIaFTV3XgG
+LH0RSY3XMA9uC2WUk6rLvLSyZ1fAQI3vXSqgl6rmXIF8Cl82YUX7so9J3ELngpwVHQo9lpHPsjfo
+JSqmRCUQLXZ4D41IxbZERVIMw5a+yIVcxhyVtuPXyKXouNWsAU1WVLU8IQlIRWWfrjiEENtmIcFC
+wmJeBCEvgQBWkiuCYGoqH5E1NpdKILj0RG81wVy/gdRu2U179jJaTWAl+UBwSVLjv2Q86+125Y/T
+0S5wtLdagbttSqqVGN2bLS/8ljREe/dbuVRdqWQdNjhiWsZuB827QjaihM/lKNPnR6dJSQSrNUZc
+OcKsMCCGq9DpGw/gCkyyjLYS4CtUuN7FpG/f969TCKUvC6H0W0IoH49FT1di0SVmtV1pMxv7e8Si
+b0OiDT7ssOiUkb4nh7J1vcozL6HQlzHoTZ75s7zJ3X78tIi2WjUXEO2W2BVbNkxrvJMU0VY8O0W0
+j5kIRSpB4QrpPbwoMtPLKtsbeLbR1+5neEqZFEXCRC+i2Sux0FlVuxVV7RnLMB6KWLZqakc1ZEmO
+lvRoZZwboQqkXC6LVdNWRGEs4Ama03guEJYia6I1HIRPhYu3m7i4MthVubSMixd5BAEXTyR3yrh4
+ya7uEVnyhR6hTwuo+Obo3EDFNXNiQRuPuexWJMXHW6yYjsXEV4eJU44EjM3ZIeKVIOIRD9cyjzVa
+v1GDO0rfRA57HHURCZ9Rxd2iSg3iSiONtJOgVo2gViWeT4IxbQihfDy6zsyPS+h6SjIuo6tldP1C
+VZddRodDWB9eFCnFZZXtPV9BMFasM2AFSsRfuICxetooE0fnDmwFKYXWEcZqiaOnCxirpY6ShAC8
+l4wpGvqo4IMnhycqfbQlD0YJpAtZ+YeYiXenHN8px59NCKVLbKW/sPZ2Uvoz5zFu6xzsieaeEoTT
+4ptNwl1MtbctTnpMj5KQn71YbbEJ69OL1Jarjrk7zTKiLiGOVwoWJtrbCYfyr1N7+xkIxw7iseEH
+XlWB6W9De3v+i2lvF3SfL2hv+ykknzwKgRbKgkjI0YlsiglB7FQepvOJmrcLefyAtLdtwKesvW21
+z7e1t+tMeztX3z5k4Z7Z9gfNbvbnh6W93X6c9nZCRbprb9+ivX09YSFvG5P5xcl+KwVhszlg8koZ
+jo1WhvVp2/chGkNsZgtfM5f5omzMDfv+sDTII2xeRs9h7O9D7zfs/LHQ+1AXoXfYfCv0fi3wno7w
+kkRMDrt7U7T4Rrq38BJUfBW9m6g11wHuJeJ3kxrcBL2XAfetsyRguzt+k+RIbh+5dM0bBmgKtV8F
+mm9B5kMBMm+4nHAGmOs62V0JmLvVEeaydZMAToDkYEU1SorNTlQDtb4LYLmXcMkUmxUsbwiSDEA5
+QuWYX69QeXUBKme97iaRapkJJj+F1//I5SetiiirOWvpyTNJb2jhSZVmOVpV56iQaUsJXgl3bwPe
+pZKTWN3bCevlpLLVUcq8FngR8kYCiSk9aWgktuyplp0spRb0hlAyI7HWq8zb8qfpGNtXBseRBtaJ
+HWs20SArfpqMszjKGPjmgAxYlKIMzuUnWRhIUwt4fEn5SRxZLVp7Aym/H6Pe+6lCyR8OuyAV/Aag
++k4B/vFTgO9j4D4GPA05tQYtPLway0Btg0FC6gdJ/Dkn5azzAGcZHK5ScFiqEXBa/khSvfr/Repr
+IjS1AewWYV1NahdkglKwomTaihUWKmQ+dxhMHHA1VlXvBUOKYQlkQYIO74WvTJGaRf605GC79bQu
+Bs+5rjDjFeoaF8DhH0dhRk7vXiQwd5RU7snR/Q3h3xZlFLofTmiSoq0UO/aEPPUok5D8gV6Rx6pL
+yJYk3XVpPR9b0cdizIQvR4uewEXGlxuHL3uEmVFmJeYz2kx4MyJltp2kLUnzih1FtY3QPTB/525U
+WV94rxk9AjhiJiXzce15R5R3cg48nOA+uPfSavCLGtoGfuvaJmadYs0GHzci7YVGQueFGpb7NS23
+0feLiRnLVe26u35me94RXdzAxzHyeEUeAk11mwTrl8hMWmVzMEi/D2I25y1xeuw9d38+SnEptaXU
+YN1EwZ6Pb6n85CdtzzuiiX5YQpm1sE4GhalcpTafiLFY8iLN6V1CYXSp1CZmwXW1ButBm1ld5/SY
+YmWjhWl61VCav7N5G2ZqSbVKZubN2bg833XaUOZ3q/XPaUgkecZeEsMJPk7wcKJ/E7yb6NdEr4Z9
+GuvRlCgzOeXquK3iKJGXUq0orhZF/g3SSxtOcxY6ltaNOlHtqJj2HL2f6AFNRLaJZK34Y3vM9n1r
+Wvr8yuuqGQfFlZphzmdV3ohx6tv3KojVXpkWtknZsILfl1LFtluCEW+KbF3fLuHLH91+KEf87PG0
+qEaEJQuexmmSPJSQgHJNIsvzDmAja8NGXAxjUvX41M51uxlUu2nnv85UlqEvx9P6NJ7mtGSZ5HdK
+lGTzlHOtNIWen7HP1R531nhWK3HKihV1XDXR2IXlsj6lauubk5xlY5iEN5IpK/qbUxa9M/PQZq20
+iaIce7XSZlMpbV1KVUzzGqbHBLlK65cKZ6Ss5LmkOSIben/G4Nrm6cOAsTW7rCbn2qalch2Ry1Xa
+Sitoqf6BzYHgOlnKeLRl4JSXaI18JfOkVKo6cbpEo2Fz6OzzHHMy1slxN7da6mKaoZ3pSfLwK/Mc
+jxezOcj8hnGQDJVCcCtVhaTQqCg6OjDrIpB1ARxHxSgHkBfA8RQeR3PSVVzymoW3KRYmmoWSweoz
+UlPCQE4S6AuvnWEuahulsTeiSFPOaWSR2oV4jRZ7suxG67GkCNSYCUOINAShT6eE7yjoEt6f9VLY
+1vWeR5QtCy0wnSaqWT2TZX2k1K/Yol5unO6jsx57U2thNVS0pDUx757SxGKV6yh/piTnfSSkhDpc
+ZhxucSVzVOgKRGgbDyqgPqm4hMcTyOfHsn222QJ+Mm0KQpK2WlZiQa3hiB63ltoAMkX6a9f70+Pa
+Gp12PVYO5jYPM8doyiiNn8QdNxWthYSXmvacQU28fIhfYjS9zi4bts8mg/RXmVRCFLjldT6mYpFq
+N37rANPnAC92DZPmCSbL4SSshqKKt1PrpuX6kAhq59EnlNNGfmdacFNRky3cxPMOFDEhhnWSBjol
+nAOtZ898g1l4LVzDvlHJOazKEKvWRz5L4BhEhsFE5WFWSaoL/JXIKoh152O18Z5S6WIxmBBrbYRJ
+cDQpdCIkGSnbMkAWEpGIcVeWX5uRwzBK9Qmudy1ibBiNPRNvVDEMyx6NOMYWknHMksg4jaxB2Uet
+d31KRNq24rQ+HUgjtXVfITd+NSlBc1aFot6oQLtRgxbG6yFJBZJEoF1h7Ge3m454Fc6wI7H6zHbl
+EXN8ZLMV0RT6Te7pX+Pkbrn/z9j39kKJ28DAxxyF0AFUpBCpClRsfqq7UOHwaYj6GfF4+9zbjzhK
+vI4uHmGK0smBcRX+ih1LKAfY6FMZL3jGzh+NF5RlmIdchrl3Donl2qlgPXPs6iQCkPIssPIHcy0c
+J1PLodlEvJRtYVc8WvN45mHW4i5nkVL7E0/e+vLizcPabf15W/3c+POU1s9Mj5msDLUwhJUh11mJ
+RGpnJFJP6AqdhRfXo7s04XVzWbNYBG9E1kC41iXwOOg6WWxQ5Qb56nLJgd0MoYRvebVo2I5YmM7k
+Q+Lg5tztlLGxpIwNcnfLrI3LiespdyOThkUxyKOULMjqZBUEYtn9ZQdYmByWy+HEU0tr8vaKXKwK
+D2uxrQtfWJMTwUcr+SiijyT7uFZS6uPq9OCl8XXp7flNZXp831V0cvsaOJ1ck4NZgFKSg0upwZu1
+sfbxTEUzk/5BXnBvhDHr7PoORiDTYIUOXuosGlr09w4bvsok23xUtiQrWGYuGCbBFq7q/Dr15rbT
+ghOE1Xlq1kuzXvkp8dAOPlMugWSuxWaL9l5iMflZqaCUZov5fRS+q6vB2Yi89Ohj63xbWhOYvzBh
+LukROS5LeDQyA3vJtW2xtk3Kib9pyU/MsxTTn0S4rgB4XRFwS4n5KTlfpvVwMaR51xjzoaz6ajVp
+SpqvktEvSR42r98lRhb0XvvEdXa4N0w2Jpn5gtZrOX050XmFZYHBvVIlqmiRanZ/qi66NSFYMmYZ
+umKYyr/6paDKjkKAR80xmbk5WwR+VyXgMkCXgHMlSC5XNrB3kiQDk/prrqDZOVWlj9FSzUwi0lK9
+HBrffpOS9E3SDEjfqKKx5CIDWq04ebPg3TvkqS90A6l2aqqcekr0xhB+gjdlI4XqouapJtCniqfp
+smoXnUDYWsxyU1I7pWJ6BQBPtU57iXHAk8uUTq1iUUbapXjHabMoKkygXI3q6qoAeTHUy6ozrhLV
+J1Ak3VtEqj3V0ev0RZOF7hYt0SyxmKtOXaWoca06RgmGMoZHAZAhBGOICAa8Mz3xHdpYZ6npxj1O
+xjP3N3SJCKQU04j7S5jMMw/wF1QdpR3or1INK0zq3qt/df2+Hwu8jEXcZfwLpT3bsfz8tOfsfbka
+ms3B3g062MbxdpOeKe25XO2qfI4yYJtrmN6W8LxH3roMcV8HQ2fw8feYPK2p089Onu7zKkfbydNp
+6nSaPA3XWEidXos6o5dSp0lj9OGFUxnlxGlOnbaJ0zkIOZZAyIcXBRjSOpyrSZr2AKR3OsXtxMSz
+CPVp2NMGPUsWcymUKyHdCGZ8jynYaoV+TAq2T8DeS8HeTgya8vpuJgG7nOS/n4BNurioKp+MV6Q7
+pIn+tRurPFJt+nVUHe2NGm6afB0h5lFTr9FwihDzgNI7MWC6IrzcsOYoJgyq5mhNddoYXkbwO6mT
+020qjppKHt93IvddJ/JvQCfyPpLuI+nTK47yCmdtpTyl/LmKo+VqkvuKo56jui0bmGuP7qVClgID
+KTIYsTSpkn6z4mjG4b1CcdRXZvpYxdG9QGXJctd0jDIT9681qby6WeKT2Jnfi8RnCQ==
+ ]]><![CDATA[
+ Jb9d4nP6KIlPK+5JZQBcK9VmOojQ55TiyzimO7Gwk/Fc5JZvEVn3Um8LqcsbFNUCJdXRaoVeuSnx
+uUeoLVU+yzH96wi2acKHDU2m1NKUVGoJpdrveZBS78eQSGlmc0m3fwGJT5smW5b4XAoSn93VEp+Z
+H25rl90lPp8p8Xn9z6VYksebtkk3VyVobpILr8GWLhAvS0mLnz0lsZ4MTi1Y8UV1zxt2uzr98JKm
+5007/3DTD//463dvf/P+9dsPr99+9fDi19/A1AWd9HYD+D6+efmn//WfH//l319/ePX4BWx++SYg
+36XN+JgJ+q74v9vepf33ycdiL1mB6Ygvx2FniTTltSyTOKxZMTy/oYB9Qad638FHYK0U1bEQey2g
+r4HS1flq8zzrnwTVijM+o1k62wcMKyBYAb9COv8Y6zm1JBl4QLQqYFWBwj8ifT/UxKmxTtMYifvQ
+OS1S9gNhP1S96bDezQlMqwbxpgOSGIflCF3WwaR9gk5rYOUO63wQgFnO36Pw28fJvkmU9zrRt33J
+N1q1YAW7VL+yUL1yr3YlWsBW6M3LvD2DpAijrEBSTCiCKUFxtx71wwvx4POK1FqP+j4m7mPiPibu
+Y+LSmNgxRPvwYcv8xF+iUUabKzbcErOr/Osb6QKnd9988+p9MJToX3Cs0dACsJNjm6iNVB4stp6y
+u+JPG2FYKhpWR11OxD7PWK4+wjULPSIuJ3YkoPaAjyy2iXjoI2l4DpIlxjBu/AmqTQ0zsvH/iqKM
+q3CzVeszAr2zYZAPxNWOAwChX4JOa1UAxSFxNiqEqkQ4U4tM88moEYoioeQE2pfIvEbyEqX6qkGJ
+6FB0E/F1ArMojDybv2fh9Z5erDSHbyGQKsBVkwfZ4fWj18y8aCfzsunr1ukrZ146ffEIdIenw8/M
+64AsBfB9RIOzz1jzpkycZLUYDahEASpOWbavfT8Xpyroy63JqjRd2aDFGfs0U7ClDIy8P62KLWdH
+tklf6hRmMjKQ5Gi1bL2arerZ2vwIDWfYLI3Vaqq4vQ8uj8G+IZ05Eh2NeCpWo3MhiMnqdM4ERY2l
+t8MpdnqCn5D3iLLnyXl54e4tsl2BLCQkmB1aS8br3+b3C80UaRwDwkNRnzyW5jxi7u8iwfJKSsey
+YnmkdnDwPBI8DgRPnZTogVSPCoGsBqfNDikfmnkWtc1jadlI/lgQKjtTTldNauct0kC01GzM8mLV
+3iNmGy1MC6FchBoTwVujqh8oIiOYKpMhihyxICfp6wthxIbuValY5VhMSIf70hVdLVU40KKrlvpQ
+qnKA1Ad0IztX5SCvc9BeQdbh4qujIULsVzqYpQyrzxlUwg7RdWDx5me2lzWoGSIXNIAky+oyTSoF
+Z33R26T3UYew1PvbFSb2qktAn4Mxmfd6oc8L/V3qbehreHdKGZoZNeraPJw0ZHtZKO0KhTyjuwt9
+uibNq/SekqbKvgdprCCJgSk44kQaLbENlLPf44rf0QrVEsUoTssVrVZnUk9ayArAqQYtQl2Fr/2Z
+NxrPdrGNuK6PtHUwjW8vRu16mjO7AxmNtGzFSAe+f/E9DGI+pMJwxtFykj+PAuerHkP4f0S3Z8KR
+NhgqPGszwCwS/6Rw1ZbG7l5b3b9tIIy1eDlAtaWy6wNII+qFjDhkWko8gDkXcxzgiDgXRM2QEMrt
+cbZoKLM0jPEjjPcR3cngSmIWKbwZR3Qiw/uiGpxLcB3hKeGzojzTdFTm7VhoB9dmHbc4ZmMb3Hjd
+GrFxvIb0psWN1QP5LqGg8SQ+C2tRtOSleIvL2lxcOyCljcRc2LWRdWq4/DMW2uTaLO2AJZ2tvtEl
+hSPVNhJlI1E1GkkBhYuMsxLKYiiqtsJPXPt4Hi6vfw1XYTEW5HVt3WhOQKgFB9oYYbVplHGXEAg6
+RyAYCgQC6FOhEJx8Up1Jq+NApdKGB6emZfXaSTHr6jDcpeStJDBAGh8+JJCFA7ZF2lwiFku0pQmO
+pRQslfDTILANABv4PwZ+01XRq9qL+jHTKXI9+1KtVKMcRpbGykRXsbRr9PGiZcDWAVsIbCWwpRCt
+BbIYxGoI/7e4isCaArPaIPbDfJA1Lqj6kG1MCghYySLYWyPaWlH94IypXtHCHYgUHenQB0OGXmWG
+lxXAvEOaImqDK1tWW9FmU4sN+k0C6tFiEw9lE9ArwnkXwDys8GT8Y7XejRZQih8IYY8gu4gfLMX5
+l2ZfGG1ORVT6zWfapzoEFsIr5difHIw3IgWLobwczPNKmqqlOVwgpNvcaB+W6yT/X/VLLHmD6RtC
+4CAv25DVUxIH4letqJx08i57ta850fqyel/JvEzzcd1WhVnYzsFx9rU1mi2F60C6YNDgiDwTMzE+
+zsc0JxMTkN1ypXU1fDrBHGkqgYeU6iAWVBAztZE0uYDnWPscUwJmkwRUY0rrJERMW90nkbvE/rez
+qoZVlVhj1ej7hFyjoqh2BbNrFxPeQg/MRl8tpL2QX0czcpwpfBLMaOZgJbFFP8/6el0wa5CYMpHP
+d8B5QPw++D/aJJ3x/sJPsEOO1ge0vjd4gS0af6PzBcUbjDbIToKIpofMhkLLb2IxLUSfIzxFmxSy
+ZOtiujIm6SCZtK0lR3EyiD69sySDtOKD64x+YEvD1+GjeT2umfqc+BnVpKB5gzcO1qH3x8sIiHri
+vMrGtZVX01Z18gi1WjH4HjzvXrTyTuhx18HbfgaF6SrrKqEwXUNm2k+WT1PmSsnyab3jrC6xWGo4
+HkkMNtXayJU06oTIYVPqLaUD/DFZN2xtSU1ucquGo/7p2G5ltegp8c6uF3NJG9Il2HNqvaWr7qfV
+l9VcIu3Ue7ms5x1T7DnJntPsOdGeVJUwlKp6mTOFVCciMw8EqUSdJUy/x+6JPjGn4LPmEifiM9WZ
+0/F7tA5ZgcloMAlF0dITPTkxpScSQfHhRQjVCkmRaYohZHs0WMokZMVBcJFWKIt1xD4i8gEWn9We
+3FCeTMLYGsi2oWwJZhfV1kcT0pagthN2ttLOGtpuCrIHswlwZ7TyTPhAQ90S7HbJLxru1oC3CXlD
+D2nYuySBUI7bqb2c0TthRtU6IlZ905M8NRju0mIkIK5pMSt6QSfCTTQsroFxDI3fyQg/BjJC6nHg
+LG3j0LYinq+Ll1bH0xp5KmPeG48jlTEv1c1j8Qyrl6XxNvaZOLW/TTynEHuYJYoffITWxILzqhBH
+idFPWxFMk5J1ckpvNjGLKwHmqVmp4ttghABU981e/3ZV0XgnjbAObHULvQe9C7yH8ETlKR6Nl2r9
+1M5GReVZ5Pcwmf73d5CL/W8l+F8T8yxJEmy3G3/KNqCUBpiT2CJHF9eo4uMijI2Uf+iTOKOomGN1
+U5V4ysWd8oS0UiqIJu6ANytpO1FTbQ3GkKQszCYaa/VAS7E9jjtp5ClLyUc7hmN8eVp+a/Q3OSU/
+LXXB1VtJsgpTWuYtXbii6MBHRNXAatK7u1Ldbl/ZDq4/Vbbj67fIpOUtMXNJ+UutaQqd1KbpC4PD
+AmcGbgvhV9yOplleU8psUnZTjzJWvUQcOsNzakyLTCd9XRU5X4XztBDzCfqaZtWj4XfMhgXFPA9l
+egxk/2sntJb3geiScKMEJR1o7YfV36z9R7P2t7j6axmOI679BUkqssnOaLfy6u/X/6RSteCXAYzo
+1AagHC20AtDLPSD6sJ1yU0hSRpugTewxjMVShYuZWFTeNqidfWAZVAP6+b3lT7GlgIJ/MmLEmqtd
+2t6yoSzbouUW7LYjVQDo0Vqr0FILdlqw0vrgd8tTivbZRLZZLJISn80Bo7O2zl60xtQWI0ssPAVR
+pz9sYMgLMtm2bLDQ6159vseqhGSHQZ+vjmNV0J7fSA0fNd4H77/aZMKLMCNfqyLYUa8jv1bGk1hj
+lveEDblP0RrjdjA8KM+FsqVlLC/KFpkJ+LC30HIpNc+aSu22TORMaiDnomaXRMw25MskIYu4VRRp
+YM4TsZ5wgakc96khULgjBlRPgc/R8KBmYs9EVCmyoU6xCAblfjIrqqIub4hb01K5G+ZHRWGcyJJC
+nhSszQfhSh3Rp1yEMbVSNi6yprA1jjnVUXh7IP4UMqjg3YosKl7Lj8SlUjbVSoZCReydmqbr1jCr
+emJXDciuGpFfhcweGbeKGidSiMXKpV50xlaiVkkkz/jxnJ/Z4owZ68cjjYQ1IjuVo9KKN+5LJPVl
+1BeRxxoZtMoD8kwgzwXa516J5QLP32i2J7XSWLrqknDVaJD/TLwq4GfwtG5KoLrMy0IZ1w1m1vN4
+WcQQKDKznsfLMsrzGF39r6lmYRQbrLESA9VlqKp2xkRCVB2cqEpBkCMsZB0+8wCUZRkrQPQxO3GI
+Anx1zJzsYzpjGw/ZVOMU9556m2n5vANQtmX8HqaZBjHAEb8ek0Q7OQ7sNLYhnXJ4HO2pn7O3v2sq
++BD/Kl50DfeD1zy0hZu+bX9NZnBZDu12Cm78LRX+iFmlTayKAS9FbUp2YMGMMX5jiCKV4TFbbcvn
+7c/FPqZOK2PMsT5HHUUbh5jaW2MnxP0aV+Hjxl1vTNz49bv//TKkbeDf0Gmt1XL0EuYKzPgQRynX
+tKhRSst7LxCDBwmsemM5MJKZDAYw2s7+vurajAlyIWt8M2yzb9RcOmpZc7F4ZFF3yXiiO+DMbn68
+3PVlLuqVbbcg8LV94a72owogXaMoYLUnlY6h5U01BKxlY5rCAl5YwmHp7qhovFGf3DW59lQoYRkn
+gpQE4mkh5wD8PsXdL+dxQQ8EHENypyVdw7tlc0sXdl3aheqHJdPJ6KIlPjW6UrOrokJpbHYJjSoa
+7ETF9uZXK6Y561XOSdoCQ2W1mN1scE+oGMgldAguM4T4xqcoCC0+gojF5ARXOTaFDq0WfgodLp7Q
+pV6YFPgrFzI0PJcrGhfCKBUfjqILn0rpsBACotBpGgLaCwJthYEoEASLna3KmoaCkmBQEg7yASEC
+IsA9EA2Wa4J0myE6BicwwS5JAkvDdGmJPA4XMVDhoYqQYCfBugQcsgS5QSDJfZIyh5RSorJPDiul
+h2lyl0/sispxlUm8s+Glg0l1tDVxNdxSDCC59K208m1ecsWvIWlYwocgfLCguiSpp34ce3Lsy7WW
+B2RE9Qw3liJxqajetSWu0xqZlpWsJa7PSZkPZropHzkKaUSmZ0cMzyMJFrfIRo/iGQsuCGE5GJB1
+pdIZDU79Ydo/CLMnShCnrB7w3mDqZl7PzF60TOGM/MeqYatWn7pRWO+CdKATIduuLNRk0RobqzlI
+09IcykcpCBxu5GhsVgCma9yWKLNtzlpel2lMKvFqRXvbBm5OJjFdsKycGmeNDLjUNZQpsuDSGHJE
+upgfgsvqEZfaAfH9xmSGzPDcO8SMK0TijpixE9DiiBQfKRO3hTc85uAyOg9TMEysZxiLYTWYYMoN
+M1jIYw5QzIRoewOzwIKA4AhjHKZMyu4IU2XMRU9YxFRHzEZqY4yFJ0XODF/xDc3jsw==
+ ]]><![CDATA[
+ XZz+8OGHKe+ARUrCRBcmuDC1xSmN0/4nnFGMaX9BEDJln23xzRKXAs3xa3j/Kc84YRk7jmPO/be1
+EaWgkZi9B/zT9lVcLiiKTRXXwiLhFwdb12xPJDUrFOBcr7gIWGbBRu7tnfXy/bNeChzOa3iXuVOX
+OH7oNF5yssuOdl54RaWzSqzMnJ+pLS8MUyokc0WFtAJJIv9pCuVz2qyZyFDCglZ7x3PYt+0ddn8Z
+wUYHGK4izwbyc0KZ89wIpu3lIA/E9lcBfHaMU9Yzo9wnzhySrCGbAz5ilqBnqa8isNoI7s2ushHD
+p+y5M2XNNZQvB+6yKeHALnPKTzdRigKeDT2qyKJI/cXiNe30BL3ZPDr8+rodrtAf7KvHsX9q4IFf
+Kz1o9ojHj7V2IrxbYf0fxtIJ860intkHrLQAxj9v/xsxzy9+cXz84uXrt//67s8B+rQf4a4Gg4Aa
+JdZSs9mGmVJtQSHXmnZlOrIjvcIusojIAsLLR1w8glEVF4/WUCbissF0iYZ847hYhKUiLhS1mFgH
+MbKgl2EpOOPSEBYGI3VCCwIvB7wYxKWAF4K4DNAigAsATP/wkh1w+u+jEYZptmHiD75qpDoihYFo
+jpEeF31RJPgRIS4aW0jmQzxNVZZSnaW0VKs1GRbjOxr6XoJN5/6ipmrnxvtHtSuOeOknSQyP6eT5
+2uFaU0SSNlAjfBNKugNeCV3VjCdpc7FF9eMpUT42dQ2TNyxTgc5T350a9K0/SQ8K7pb2XNJrRpv8
+HvD9LAHfT0EZJDLFs0vi5qRBHBm2IG6ZNPhpkpKuoLju/lwg2V5Bw72x/SCPmLgOmabuR7fLR8Qx
+UTtsMSmQdeSAArXVZSHF3BfOReJ2NPzdoNJhB+8gIQdfXjTNfmpM3tPZsaFjOKPHV+AIJzjjsO/I
+H65hslzw2Cn0ry2+RGH/gyuPmyNYBrEySJXVdSqhYPGIzOat4ar0hWQ29YzLTEf+u69nXigBwkto
+VpCgyV55w3OWn0Wy1kzGGnKL02UuWWT/IlNG/op4T7oQRjflRWyec1joVljiWljeRljajrCsnWFJ
+ayn0SYHPwiJ2oBLVYQGLigSCT6OwfysaBGGhWkXiucMlasac4QUXp4YknsPCFJelUj7qjIj1SsXI
+GK8OCxCh1VSAbKJlBxcd8DEaXHJGXG7CYnPGhSYWH5togdHyd/xm24WlNu+ErbVux7hBqBMD44c3
+rf4ljvh534e/kiPe0cofQ47eZxAM9gZGsRbPXv2bC0syTlkSKhKFuS5pbdY2NZvgiJu/o0SkbTaF
+hqU0LUn9ttzr5deBXwibcjy4ZHCbCh7Sj9kQS00xbZpSJkllhheiCVXoT5jwWh7As2iQr/5eTknH
+OvCSls6p6YNJUMfGi4mWsf9kPztHZDOKDUstQqV5/YXMfoQcWprFbK64n8u2ZjLNEJeZLBRrgFPz
+TBbnsTCL1RKNHCkSGcCyA0YiO5ihKtT6iyBZUAQOkUiEx3AeCvBYmIFWyk0ZMRLZYCQyzDczQWIK
+iIX5JcwuYW5hMCzMKjCnoPpMmFPCjMJg2ETxR4bCwgwS5g+ON4a5I84cPG/4WWN3zlDKww/DW/0h
+HPGvwQj67EfkxeQObN2BrZ1s2CI91scIOzMukpHxgxsb+yNjf2yURsaVysMwNm4dFzQq3JjYyo7W
+EWHHBI8Km/dt8961KLYphV0slCjMpaJSwD4dO9MFqDIP7690GbkfsVI/dcPYLaB56agqF9sMCJ0z
+8X0oy5CdneKCDU5xMIr4fKi+YNspaUuhpd9xDY64+/uLLTsfHHERbYi8fVrL/Zk/l4/oHZE7fHGH
+Lxx8kdGvL1X8vIbgdV1m0rC7bJUBcUuu3MgquzrnK83wuuVIl3PG/DHKd7Z7FHsEyceyS3ieE3g5
+507ImVmF1/Qok6OFa+jEU8NVBDDHeQYf8qLZ4wizhgcM7MzB88anmjWeNWdM8ASfNWdszBhhvjBi
+cF4MozxjbM8XLGfFZZrSOUNnjGvnC6H5CnxxEs6OyIXxOCxlLlV3l/XuslqXtUp5liGdHoYNplJH
+SmPcVhdFAq74dmRAzv2g0gGSjx7z9u0R978XjzXByOJfRh6k5LUP9lj736Prwux0Ym7WzN7s3CVt
+fYW4o3tE05B7fjUrNX75OkZqdQMX9WYm6O/ev/vm9Z9evnn87Xdvv331IbBB001w0N7mxD/HGtmx
+Ry5YI6VVfz/T2YoMX6K4l+yLgo1xISf+GjJ9OYP90p3e0K7IYL94VaVrfJbFsWdzkNUBFsdihGxz
+u8NaHt72UOtD7Q+wQGDgjyIFHK2QNCuWLRErldaIPRItkkUEfueHF2SZRNskWifRPokWimbJnlBm
+hzNlY64sZ8t2qFQXbBZYmilrNhamXCR39ohKTbNk0I5U3aaXTNoosdaQ2lVFwrdnzFpfKbd2oTI3
+B8qwjS0WxtGCOfrTmyZ6figZ1l2ALS61crLegUQjn9uK53r2NW62BOi7tuVRZWlE+SrFolOI50r+
+s7B9ry6XlfGhkxajxt+7mHwB7rzu5wcGDxbv6Xu9xo+KhD032rXnPJD7gPr3O/WPnAvhnQh1Ixqb
+44SVyGJth+PlHCeT4eSV14wYCEx6tuqlzXNaYo0wXBO1OpitDDaVqoKBM7JK1lOFYoWN1MVkjbbg
+koxT/JlFPCQqtsVqYQsuMQjXBmEGbDUJimAFMWxcniWWftIiaKO0yTT5wQVuLqX8f0rloyHRKWoT
+xOQZ2EtRDecKFCjDgMpW3iWb6Uprzdm2l6zOS9atvcZrLObrbMs9VaFPqQlUwBVgWsgUga6WYNTp
+wIsvrpkS0PWoQgFTgJd4p9TqczCFIMgrKj+fAlGICj6HWFRN0IQUS0iRBI8lMJqwRHuC+GO5eLcE
+lT6DWs49lvHji2Uki4rGuNPs9X2X3kfMJVaei9fQsdMlamvKLC8B+XnL0MZVU+7Di+K5ynDJVe66
+C2SUFo6S1NvuAolHzLP9N1WKL5/PqQ6U7kgCGeJyl6rGqMONr5643AvqoBTdbXgd2d1WiapYfZHd
+7NnIVEUHWx1rriYTX1CsKINVZNmNHsVt7lTLXOpPL1Kl9yC1ozmoEMMKKFoVgG+pC21r7R7M62x1
+WWpT3VGlq44sXSUvOItXtaJ2Xxu9lpW07Fm/fk6kq6guSFQjQe0CFa1SySrVJLG1QeqkvsYqQlWi
+jQ1jwuqU+DFFb9/3kP+T15wcq0saD+FOB8roOQUjBkyXGn2b4NfM6NEE46VGwyUYLTOaKytWFGyw
+lmAwVIKZslBGTzRQYu25WAd+JcMkmCXBKImBjpXq/1FWj+hPraRA1ZqMniMZIDVVFo7mxzyX6ssF
+w0PNjrNToorsqoUqzDVXGRo+bGGy+EjKo5bKIobO/vCCWFaDy3jTGiPim9RcIXocbKVE66Otpooz
++2idrd5sfLST8dHOSe3m1nlnk6nfzF7ZqhUUuY4ze1/Q64P4WyzwqBKPKvKo+todqbVbsUeSeww0
+bjBZVJldNdlVjX1kFXYRfTyR8rqVfWxIbT1WWxtYZ93oq6uy+tkoqquWekkCkgj/mB5wLrDoNGFB
+Mxk135DgqyS3kAxMpzqGHWByDU2C8d3ovBudzuhMs4ulAgDp/8exe6KZipNZpLqhqWzINQ25nuGK
+nFIeCQepYzhIfb2OytY0to4hVTJcqZLhSWoYwkh5eCEiJTFYsZhqLj1lX1waHSvmY6Rj49PQJFas
+HL4/KkpjIh0Rkx0NWIO6SkaDHwulytM8Gmg82NrTMDZsPbKh8nW8jHzJZ7UunvdTAmRLGl8pUSnY
+LWE5CUMswi81ZR/3aKcJ8BKsOTxYQ1bLQLDLCS2XaLvUaDNa0OWENszaqcpUz/UuUH5Z6+oq7qqQ
+y7FYUTfWuYgY65EsnDUGsqTOcVi1R8JVI6K6GOgl6m52VN14MvDLKa7MiJHC7cFabCWXGfk8SD2V
+9S5fcqfM7MuXnG0tXs3Y02w9VWeVYLipMKViV5RMKumjvRG7suoTNsGxvCbpqoTrEvSOrbN7TNam
+0a1NjQmgn2U94rq6VFWXAukaSqeauqaerlbT1Uq6WkdXq+hSDV2sQrYm4XWtR6bhda1KdiHATquc
+ClLnHr8G1zW0PorXz0H1hsPp4F2cJZB+kjD6LMHzIc0ujjSqKNIGl91gfYq6UQpS9SR1KRI21fU7
+XUESavsnmG/ax358ggmmu5YvlO52Hcmp758GOOj1RCfagY4eaWQDfploZB1TtboOuqKdctbZ/tdz
+qpiyv+r5KczaG1Sx/Hs30qf+6e3bl1+/+vLxK9r0WAcGVWErdoaR1bv7LHefxQHlZkoJhLtkwtBN
+YYDW8aP+XjZ89PAdyuN3yFiAUyL/ejSyrqtItZIcqwiu9iKfzOLwJJeK5f5i6T9NirSiqSwTz0Lx
+VipexeJXyoGCvkUXg6VUOZ7IgqojmV6zqTVixePXREAeCQhY+LB1QvI9UaZGrDgwURT+QC1WzYtG
+MlEUqFJJFakKMICj4dxQqTgmLsQfrmMSSQyxxQi/yAVnxegmYzKmtVFalBEqF6Mj0xEWwTqTfWWo
+TcgQQoUwKaFJjZSF5V7htY+gWlqULtIbztelh1pzEqYmZ1Bm5qQ3JqMpqaVz1Yhk+HJE5YhoPrJE
+UTQcvdlI6ho2LprI9FstSCvbb3iSxjxUGfw9mf4yT2zNrqclY5bNWTZoY3IfOGy00KSKk57TmUj3
+O51JK+C/JnqTJZaZ1Yz0BQVGMbgPlGaIpjVcIxvXiRiGYZzWxshmxukizn2Z41TWoyvWRHLCX51j
+/paCc6mY/CERvF6ctDXmc1BggYXlVZq6o0RxnSM5YZxl5o8iNS/FNEw5DRadZ4npgWZKFp+38+Sa
+lNVwctMwd7JjmspNWzJWl8w4MOfI+5AKwPnyELmcCRs6bOo4JeC1CrJ+4hodhTfM+UoFqM65QwrU
+9WQEtbF4L4FzyiVmc2hyXOLWuD/s/GRsYizwrY6P1toxjGJTgNmyiSsxlxbj6ASTyVfdSevuLCao
+qZV3wISSkukb5t1zjTuEVDbys55n3MGKs5Oh9RzjDlbFDfPuucYdvLMb5t0zWBAUG55lSR+p5jXH
+iWOsuCODoOGocSx3hIH3s40ew8Fj9PhIEeQYRZ6pDBJHk7lOu1Zot3XZKxNfholdarBzDW2uu871
+1gdTX53rqmus+ZzGm7HObqlkktaIllroVA16oejzkbo+iT7DI2EsWCPQXLtZo8+cNGfKJMkUlScw
+MGbDk1H0uWJdF5YiD1MOJSoYH2veECI/OSlyff2uevngZdv2rc4yWdjXr9dJAlf6xbyC8BIinc0X
+56o2S3Mpz6FUmIsYDjCeRxq3rXkxS/Xave8l1UbEoDmbWGDtaGdpFSIfETwZVG7EekRl4+uCfPa2
+JPaO0kJSVs7pLNhqSclSiAZjSd1LjcK9VIGCQYj9KNedKbb6frQmqrAuaA6xTyspnQ==
+ ]]><![CDATA[
+ JhPqYvgnk0yryjzBuQBmEead6ExwoIl2kio4eeG0ijgoadm0I1YS8qXTtD5OJ3wUrfFeKKHmK7k/
+vLAMlWIptTLXqo/mYc6ASlK4y4bnttwUPAdXdpKxeXaqVsNVsEwFGwdh14oiITCL1MQT74gdruwE
+y03Q8pNc95vRe3a3jpaRsFGAchI035SfpNrvvvik8g/gyRr+gRafbAnhZ4zf6/Yw0l85ecFe5AUn
+wzagGYbeim1n6Xg+mTjhPRr0F4wGlbMS7qjTHXW6o0531OmOOt1RpzvqdEed7qjTHXW6o0531OmO
+Ot1RpzvqdEed7qjTHXX6lKgTcjxbVL0j8TtSrHtq5kBNhD6aVX/Nszxv2s2xL5s+lgGOvE0qAAzr
+baCJjvDopPbw9FTBredszFsPEM9+9QX37dPcNsNz7pV3fdb9Nh97v83z7vdZT/UT0PHmMh1v/ulj
+/dgyHS/UhO56/DuAe6FPQu5DFUUP6yH/2/gFhZnEzyVuNsnc+jifVDqnoACqavl4h34l46oSAFFB
+zYEzSwTKJDARRT0siMnQZUPQpYKWg4CWM2n+RN0fVv6JLci+rmQ48RJbkxpQ1APiFl2YnkBJ/WEh
+tYnaDO7k7NpB2nGjnQrNVC2CIy6+yQrh60vkVegV5tan6aAbeqoEcqMMS0/Pd5S69KrVxNXpV6lQ
+X5HB0yQwTo/dNiKLVp+/BbsV2lHIW0FvBb4Z7iHgG8YA//QJBM5tMs0D4gqKazuR/6ptkZbV8qK2
+VRuaGhwx20JPjAE6DVWwWI4PVpSAOIbhzLPE3PxVQhb6PC0Up2CcBi74zc2eK4yBs3mT/bNt6THw
+8x0omDGZJ8xPWZ4x1bNMn7R/1vZ58zPXp65BD3zu0L+9a0OxjRtjotBQRSzZ4nIE92TTtorcFkFd
+I7KUao6U9T4mB/H6oBeOJsx3tKDvkoO+gojzRdufJoWBYVR1tUA+9SBtlDYJMDxLGE3bMWknDK+d
+ZP6xbTXNVhff7NbYEHROtpA/fylT4mTERjVTwudKmGwJzJHXjInG5EyVINvBQbZ1kieFoC3YpLMB
+bn2elEK3Nk/KZkrZXCkCcsHH6ujlk5wpo5KyErQbs6dOpCuHF0BCcPwzUhtQYp2zqli8tBMJU26N
+aXWhGQmZKHjqt9yf2P2J3Z/YZ39iPk0RXIRH9BAeo4OAUunBHUj+yjXHb9yTHLvr92qrx+5558M9
+4/k6yqis0BGDTgteWY167k991bg/oyfYw7cq60o++xAf6+Y1RS+vSZMGyRw4OHPylC76Zqm3Md7e
+GJZUiA6W56J5iQCo8mHUCbScGGtestMARyQTkx3EGPlNnYdKDMxGjMtOjMvRMmXAjLSG5UmMytSY
+TA1I6yw44xDeCzUMZ+duMm/mlLgCCX8mcUBbcCe1dH2qjKpambNzAqxaZkuSDYUCgWjqJ3K6iSuu
+gro+uq59qrK60I9omJ9MbD0T1y2weVZxvK20bnS0YdJFF3tx4F9DrvMggrpHBwBWmdSDAQAfXmAk
+o8aSgvsgYBR4SCFAZe8Q+BcWBn5GdIWWcZRK/x7IQU/Ff1n+tzNweYQvp1T+1wCZCmbqvej9HES8
+QoSlUOg3ApwKcvI96l2eMgC9E7hz9PB5SOcNC6aAngx7BuDzoKJRIhcVuUsRLj8If+lM0gvtAiMe
+XpAAkLMU1LKswRQAg6AVHlMEwhcJsIUXVrk4SSG6wMP5ZCItRY3rDeetLENpHbQC68a49bkTZlww
+53p5p8szb8AwKLhZ6lydHAdnNe5SnfFwCMxB8D+FcxaZk89mvtAZoy/NGgzbwOyx7khjzCbcOLhg
+aFkY4yDCGLGyOnNw0rrfKQvH8nBSJo5ycaJc08nwcWaRxBg2JTEWkcQ4GPOTeDmw0OeCGGvGztky
+QWtTaSIyXTjczuZnWQzDS1+exMjMa03AIwvcx7s42g9faMBJoJ7M/XmuloqhrI58MZsn36n8yXgm
+4fnFSJ+w8ElvRE9Y6lTFTmYWOqFqIHT37v61ByahYHAvaD9oT1g5UxPWh/tXMVNbQU25UsqWUr7U
+UQL5ownhY/g+QEMixqByDMydUvaU8qeUQeVFw1qRFy44Um0M+AwwwWKIqcLwT9fW6BlE16Hux42I
+4O07J6osqOfSjkPPIitRHCX32q7b4WNdl7Hsu8BmOFVnnJct1qtr4q+Qc2AxaOsoQMM4U+owTAkm
+7R2HhGYvsSiKRiVEe41LDYIle5p9mWJvqPXw2qi5zPGpSepRHEQhbTFkeI5GNRKD4ugTvJpgvE4S
+YTqKSS1mKsXW0yoVtk6FNVTBVIXJgkxVps4nLI9ealTMCdNjMSqoRgNVdGfJXOVprqmztvejQ6DL
+GnavxK3YFVVndDQU5NlEPjj2ofGPkyUnwxFNKocbkWk0xJpJYzHahSMPRuk1TmtbdFk1gsHjDlZN
+GKXqpIp7mjmnLQVJfELH5GKjxzj+UN2Rxp/ERG0slB253EViJ2kVJwnHHowpm6Qx8Ahw0YJyzMDF
+D6RtxA8kDuZiCM4szseZH1e9H0NUqUbHz+TGTzp2GNhIoQ0zYmAE5PEzP17mbXijNE4wFpqPEjNG
+iKsjc5MZHT7hh0YGsin9uDixOy+1chpyl7vEWZ6NsyyjgLQcZQw4eORSu1wLQNpmEZi9VtLp91r4
+PgaXxuHSWJw6gcVoHBZwdRG5JBqXuoQ2/maTMSQdA4nh6gz6KDCPbR/Pd4yNvMwKRuwzrobR/fRc
+MFb9rGSuUc3PMHLOwWTE8dKT1ueRR8Ap/zlm7SBtljZJG6nhoMMYQi8KhyUFXk63sBq8C53qSG6e
+aB+iIu9IJI2YiGEdPquB6J2+3O1jxw/mw7Lrl6ggDuTWpG5flqDh1A+d6S+OzilLz+icu2MdHjT8
+4Xmp05OnQuy5PRuOD9pTxvW5j4D7CLiPgPsIsOzDjA1u4eyG4GwFtCepjXA8yGjaru7gFKMbqbtn
+qu4VjmGPwLUheO+U9Y7AvYQVUMsabeBYq2OiSh1nDGOECh2hPscZgxY9XGzQoV7hXtuDZENcSBrb
+TRn7QR3DPGOjEswawfJWBHV7AvjylEUXh9c3IgRHKG5g34qjibhTpN3E1zmmLtHzkSIQASojH1hL
+8XI53oMryjslpXm1QC+3jlWF4YitaeyU1oWmCR/nvSZlftO2PLflDNNb949jxUHQezOR12C2Csyu
+9hLe6UKMWJ6bZgEnbQWmjmaqlgCAWhJmzlKTaUW+b4QuuTpTnMu4zUlm5GQfqa2QLHmS8L5KvqRt
+rcueTFu91zCr4lntej7qbU2er2b7TRJmaBJgPYeaea3xdbVi6q19rvpU9YmapylPMqJk+gTNk4O+
+m7Ln1bsn1LpnY3s+70lYzYhzzm1JmuUNp8xibgffsF5Cqc0X29Xs1dsaP1/oyBZm3xPMuiPMsTXm
+eM7wRoeszhqf7gGe6oB10sKTXPH5TfjE4rsXnlK0ETQ3syMLwdoHeUDAZfpJSGAxOcCRBMKhAc74
+05y/rQzghTCao9Q7OxCSMyFRhTOCbWMc0b62ijq2ew2OWP7JUc+0Xc11va0J6hYIJJzFwXWYNXtj
+KxdsdXkaxv/HkWyEXnpbdbn31BBXdXkVbFHrLiO6ndT1mk3ehJIwFN+uaOVsBOVuaeUVrBstumjT
+jYJ7T1IM+WDaUdrJtcU3Cqrl7XyplQorlll7t7X7870/3/vz/St/vi60XMd8xToGiWskm1IAV/9v
+HofhaRhdsPfGHWNIOfBouxiI5r9iCY8GK2S4vzBaPNhTPmdvOm/k9/aYlfkU8zZhaIbIdF2PQ/JX
+89iEfZ96e+5nHuGZTGEfwn/W7h8bZp/KdUVgcxJmr7QEsi0SptxTm0R+RRo5GCExlGCTyK9II8+S
+yGPogBPvdOLxaeQ2kdynkvtk8qOGHUPhHpxMVBEuTBRHgl40oJ0KFgjfUriWkk7+8CIp4HmikmEr
+amtoAc/m0DrGomcXloq2lUJQaZllnB+Q723bXOVhKBuQ4j8P9Gf6OTAWNXBV+tfByNak4S37uyP/
+SRzIvNnzs7iF/qkhNP7zyJ+EVZmH1bzCGcpo2OJt3wvT7TlcN2G7wRSwrYG1zXfbEuJZp8U55x6C
+8QDM0YAvOQtsVSCYil1roWsDBQsYTG644RgqE3QRXT2Wx1FOqNXW8+p6RvsvCt8IT3RZtYha5ItK
+KbXIGiUcjHmjHeWZRvZozTpuwiJdTYG1yCbVMmuRUzqRxcDM0p68/paSmZBjCqOjJkWXM5Vfi9pv
+iwto2ACGBi4GKRhqAhYPL0ohCwla2LDFkhYiC178htKF07kYqbKzUr25tvOIiigoURkJ3kjvDjfP
+tfWC9olUdKbO5P9jp8aO1Z+4XfYJD8HVgObawBMSxZEqLpPpCcl5SqeOCROrRtCN0GuNtL5U1NDF
+0lG3y+ayTvj/ASt6H5EyGC6sQku7Jm4IM4os+0MEX0PGtEtlscwg4nj4CepTUUcZkUdmSXNjlarN
+OlVRJDKTlRs9JbISr8TVDeTI2ejqBnbFiJlWDtSowITyqmnMzNQPLOTsbWbsscAhLOKSr2cqCdpa
+gofCi0QzTakdkjabNm01kgSaTfFrlgZajGxW7aS9eF60qpUiGSbiZWlbvRSX01A1smIU4lHamhVo
+CNMcE9Q4l6oXklGkFy1EOYvkj+gyTgjCzuQusqvIlCGbBUSWGwXKNP/ngGVeV7LY2qnDRMlY2P6E
+gbNYbj1aaZFcyGXtawwW9lTSHgvaZ6VdL+aI7Kb2JyQlpDLlhKR9qlHRzuOG1tlmun+BYuSIRgLW
+56mno8sP2CuVeXR2AloKYFv3Bsi3YWNly09DxhnPRPsmAudD6CSf+m7gzRub4yyWx2rsj2iBqBUi
+WsTGFskUiUkaz1okzibZtUhyewRuHd7SXuwRZ42IJaKFXm2pV7Q/MnDAFKwMJSs7cOXhpXqcnwKG
+7goF7nyNHHDMqX2q0GPG5Nq2H4IPPYY6pLjb9FSNsKlrn8KyZl3vm/eN56S8XSK3xz173qWfn2At
+6h7H+ims5uZ0N+1GZ4JJLeAB00BlPimTuInwxBTI9gW3/qbdPtqdL7PmJ0z5VV2nS/PX1dlv+dwG
+R9ye37bntB0daudd6jyl+XDnTPLGCxdZfX4kOhLNcRFEomo0D5npjTeJ24Wskw15O0tpLBIaPZ2R
+qR4Y6M/JHv0+3QPWqbBKhWzMDpXjT8czmOI9mOFgkkCHDWCfVzB3TOsJOq2BeSlkTM4wly1Jaep7
+btcPMrfrL1JE9j4m7mPiPibuY+LSmGC7svLw6QIDZMbB0cHAqGBATDAIKnjsAxzxAA+1hys7w2MM
+yuIdXMMZHtgBHlUPj6kSDkkfWCTwAAKP5GiYJOdNLsksbJKES0JMEuSRIJ9JeSRX4yTbnfvwwnRw
+yyrQogPPKvCs/ex1n1nv2ak90wNgvedTovNs4fCpyrWeHRkpyXB5pr4zNvdz2Zi8aw==
+ ]]><![CDATA[
+ Ef8wtIilmBCrWBNW+/CCFaylqBArV3eiWj1TaSHWq45q1R0rVbsSQ3CNAkF1ok49U5mcJeBJ9zFx
+HxP3MXEfE1eNiQy4IrCoALyUf41QToJlwa+6ILG9CXbJF3Rvf+CnummH3VPHb9wI7/zLv7/+8Oo/
+Px7fvPzT/wq4jvtsNdzugM4d0LkDOndH7e6838fEfUzcx8QnB3Q+tb2V7pf88oKdBFv++Ot3b3/z
+/vXbD6/ffvWzn1n7yf7m4cWvv8HftfF3v3n54cOr92/BtDr8n+/ev3r8Ar7zbbCs7MfHpnnq4x/9
+RH+EK/3uIVwt3+Hv/yNe/X+Hf/+/sPXPj93jPzz+j/9ZPX6J3/v9F+H3eqiv5SMe9FfhoxzefMSv
+/Mrvix/f4mG/oKBijI3GGjHSg78/hN/WT2P/+Gf4dlfx4fHk+LGDj+BEPLbNU9dV8yNuxJPgv/6E
+B4CP/VzHLZ3ZqePj4dfCp2GCw9TdI+8yDnw4/Bd+j0+FW/CYvJdeIH7xW75m7TD8iAe31yyXnF0x
+beQ95JtywXgMc8Gl+3d9g3/wXvptf8H4h15wW/kL1iep+/IFyI3wTp27Fuzyyl+zjhPtOz4Vbon9
+Wplr1gOGa9Zx97WMO37GuJu7edMxVdZptFdyNfiRnzLvpc9fxwafDbfg/ryXXqO/bB0b+JGftFy2
+XHV20bwz75I8EPwXP2h3p0kvuB7Ci+C99AL9NevwiF+v/DXr8NN9+QL0InmvZLDGnq/8ZZtRMKWX
+rR3Le+m35bL1eeBlx0dHzxqfkLt/M1ynrN947vBX4+eByYwQ/I6OED4bbsE/eC/9tr9sHSH4kR+3
+XLZcdXbRfM0yffhn4qcCe6dJL7gewovgvfQC/TXrCIlfr/w16+tlrmayE4iddpLx6meDyYyQ5B3j
+s+kT4L30GuWy/+lhpZUVVmNaV8tL7enl1++++7c3L796FVZa8wlX/LF9DKoGdnltrl5ewwG+jv+A
+4+AyiceTf9bxXzX/Iy6i/0iUo1jMrQ60n8DTwaSfirJwYuITfyWUZPv9y3hJ3gLAM3/tTqLnNRej
+V/hvD5jtM3f1o9Z86yInKGQ7xVOixmbIAYqnreGZdN2sJ6PPdKJueBqntkk/ysl1b3MJnNwVE44m
+/LNCQpQkd2GeE11BDVYHEqS+th+7p7GGW5ifmqAL2jxNU93yJxg1YLzGMUOb6pC51cI4fGr65EP7
+NI2tLHthy/gUEM/wtYDVZJ+b+qmaYSzH9ZQ3dk/YEXDoako/QTcMfSc7hG3wZrbVCC/EU99UffZx
+eKo6MLXiDErb5qexauBp13CzcHvp58BP6wc6CW8bn6p+GB7hDoYwMfiP8JqBg0Adxds6GAldCxcS
+4p7ZxwkO0DV8XbhtAMNvQANiGNo6+9hD51XSvXHb/FSD0/LIzxI+t/XUyWcYLidcY0awNOH6ePjw
+Z/4+TEEVeCdyPPlszykb6brgYbjr5M/u1mQj3X7Tw7vYt/ln24O8kXsZDjLVXZ9/Ng+Kt/HDhKut
+wW/KP9sBIRtp0DTDUzt3ffbZjTvZGIcm/AU+35R9tGObN/IL0IT5qS18tq+QbKSXDA4C/l2ffbYv
+KW+j15ifM73j/LGOo0InBDOnOF4l17DkwisxpbGLv6tHeMXj1NLBWwKzLs0s9CmcNMwN0JfgYcdL
+muSjvWreJtMJLFRzV/jsZhjeSH0IZwUXv8k+uwchG+PDggE0dFOXfcTHTWOEN8YxMYQBVY/wfmef
+7cCSjTj68EtjyEZNP9sRLNtolHc99Mo8ZJ/dqyIb6X3qwnIAAyD7bF9K3igzDKyTzTTnn92Uwxtp
+jqCnzFMIfeQZp59h0PS6gPFn+HrX1HOo9YqHHuFSZnjE/DkkItdw3XFe5I3N01zDKfseFrku/wwH
+h/HKO/HGHhNt4Z6qKky4yUe41WminueNYFvVXbhFGFphpss+g4FZV3Qe2RhW3jFcw9yMY/qxHZ+a
+SeZ53tiCDQdLVw8zyTA02edmhrlMFi3eOAT2dLyDOayF6WcYjy3PUbwR7IZhgle8b2BeCCty+rkH
+e2mgnWRj/dQ2cGTosrEb6uzzCANh6KW3cVv7NI/TIz/lLr4y/JHmG5klZLq53gb9b+/evvqPP737
++l+DCaofgqU/TzCeajhlDzMsDNmpgpdlCLngIfUk2qX14+GbkvF3yT7lw/HhvybP353zV3YjnThu
+TK7Gb3S7v8WLXOI1EUbUhncxmJZoYNZtmHTbaGd2THuPiFGDcFEfRkBcreDLjeAZQwe9DtNgO1cD
+mZe0EdaDCmapX9HTx71rWHs7emuHDuxJfOL6Pd7mDpie+lfsZfz94f2H5fWfPrx+9/bl+/94/HnY
+/vfZhsP79y/p383j3//y7YfH/xz+/X8//uS3r978t5cf4CCw8dX7Xy7f4ld/Gn9v9/vJ/NPHv//t
+h/ev336V77y8/PDS7mh/97uX//rmVbgi/l34Iz4HHjPxscCb0oZVcIiGf3wgKJvfhsmDn0VwshC8
+g1eiD7YZzHgTeARf02KCG+EFr6ba910Hr1BFXQcDZgwzmv0eb+MD+o7v4B2taTClp37+02h/ME+D
+32B+SW5+O5pgZXe4uNcdjNv4KnfBe5rjYK7Z2aSNYdSDx/MrMklxb3w7qJthbu9G/zXahIdL9uTz
+3l+NPwYTrW6SV4M32iHPfWdfjRaeztj5V4O3uQEvHW9fjfTUP45X45mvBKxZw9RFi3LqG0ZBwMyp
+glVKsEdApbp+lmUOd2la6NyZ3Uno4WFOvskb8WjT4HfnM/44XobnrQ+wuRmDP1SDhUjLQ9wWwMa+
+SboMnDewjEfqXLDvhuio6jd5Ix/S7d4NTzN44rRA+HP/Tb8EYI4NYNP3geHV0LIAjsdcT2jwY32c
+X9mNMMqnSSykuDcM9rqdaDyPweYfa/9F3oiHHDu3N5/7b/ht6KF7GpjiYUiCE01TEW+EUT7Ode97
+fIw2DsG00fh2X+SNfEi7N/jUrRpgybn/pl+Hdg6TyBzHZMth7zEOWvc+8EY3zHl390KE2b5LXwje
+6F6I9Ox/w29EG1KOm9q/EbzRDXTp8/BK1LRCwAjvunby3+SN4ZhqUNHu+E7MbFElZ/9xvBOfyIUY
+g4Mwdt6FGKD7+pnNJNoIa8Y08Gsg1uwYpnvu6OgxuC/SNnfE9Nw/jjfjk7gRAabseenmjQGYGruk
+83rM5vc+g/sibhwbOaTv+uqpmaveOxLum3/rLwijEe4FYbDJDWfe6Ma9ICH2BWG8yX2TN7pjpme/
+vyKCBLlXhDe6kc+dZ18RRpzcF3mjG/jS9fYVSU/+Y3hFrkes//t3b7968+oxnP2bV8hRTLY8QjfX
+GNLvE3ri9fyJeIiv6Z+9WL72nzXPbaP8M6DN3zk6YlQppTgfKZ5EnViVU8WYII2vlEQxRZslBDyI
+BtOGf74J//wtBhZp3iDxWVZTCRB4mFwm/GUbmBzxDPOFA/4TAuZ/fogE1N9/iUPz8Sc/ffz9v9z2
+nP7h1Zev4Z/vX7599fLt4+9ev4kPq7Q54FAdTEF1HbqkCVG8JiAcPYY2/TO8PsaQHPRrs42OLHaa
+OZvbxvv+qnA8eeBMm3F8XebEXEFLhccT+/up7mbkRo0SEYHnWk1t3MYmUAAcwkMLSJFuCmZn04Yz
+0CSD+84wTMP3eWNg7FRz3DZNss2cFzf96wMdFAlAgZet1wMryOMYrLBu5zzFK2qGp6mZEeOa24rN
+hTba0bhHk2yE84C7onu3OEcHurY5jV6ju3bto+2uDNt6NF+GajLHDIAOeK/w0MzJG3hLw8axavUq
+pxFBt6Guk43hPAzE8Y3H29p8jOHK0+74erPjSgctnRzj7GNP23hVCncMTxB3bpONeBqGAHB32IgX
+xBuLD+1fH8xIn5AthjNRHZkPdZjs+MWoeRUdwrOkx8yLKG4rjoeLgyQ5Im4LAdG0B7/eeyxh4Ja2
+FbvfbQyn4veB3hEdfKV3MdBQCttK75fd9m8P+mDoWX9tH1ZxRF4cpskR/R3pq+NeJ/fq0ExS2pa9
+dsmreFvU+jf/8f7l16+/xAVF/h1n3jnQVOc0MeFZzEk8VrxiPqr9yDh+iUF5lTz8Fm8SD8+9TGzA
+Pq7QeiFvzHffcA8GKglOkR2aAfLXOHVEooz/00sYb2PjTPAbc0p7jhYtiyYaGE08YRU074QWOuD/
+/KrvnMLeiT1FN2OXtTBzqWtEwnCd/G9v41KfFfvvtlHH6nG05dFJyunGvzh711J3R0vdnRtL3Q2d
++lmpu/GvlLobTOHvi7o7o++WcXfD1jt3987dvXN379zdZ3B3yeEm7m5cW5m7GxasO3f3zt29c3fv
+3N1PzN19Tnr3FH93fP/dt/8ux/rJr1/9WezVUOaoegxVYB5//+eHF989xGCFNwnZYG3AhLMmazRY
+fzaCt/8UtJUegw5TmPDcJpjK+hgUhc3QBaUtkciUHgk2vX347qGiS/pHLNkVrdiun4ItN4KnGWZh
++hTBhy46I3WIiYfJuIHLr4MXEYA2OAdMS00gWU0wwsBeamu65HaCVWzGC4SnBBcI24YWnVTYNME0
+BV8N24LpCSfU/f+E+48wc4HLFbbX8uUJVgy8H/5u2NbSNjgPeDo4P9jNYdT1E3fQCLPLPDdhO0z2
+PfRXuIYxjKc5bmx6GGhhY//UdHSANnwxXhdsrkJuI25HtkzYCGvRPNCXm6YZaWMXADXcWMcBHTYH
+YLmt4411ATmEjeEhzlUbN/ZhNo5dqLcwNNwzLcya4T7xakOhOfxuMJ7quK0N4fPw+KGX2/hoYHGs
+qokOANsDAw43I4wVt9VTRRf7//P2Lr2W7Tia2LyA+x/usGHgXuj9GHaf9uyMDFQDHjainDWpU/bA
+lUb9e6+P5Edpr6UdlRUR2UgkbgRDW0uiKIpvdhQPd/opGxI/NroqG84VuXiyHC7RWwCWC+Mj2X4x
++Eg119L+8hs8M6L2NKgCdOpdC8Nfqv4nSb82ocUXMhMmm4z6BJ9ySi34RxHFYdsBBpLs8SJFrmSI
+qUZxhCOzVV/kW3UrvWwf4/6c0PilG/1dZJBS45XsF6kp/bWszFppyu7ANe/1LVnt9QgRmKF1Zq5s
+Orz4YAQw2n6v40tGP5PHdM2QU98IqOnetjXk63C43pH67fy5ifv5c8/389+wvs7/2pzw/9Ox2fH/
+AEO6b3RUjQh6xQrutfCgDX3VD/YF1xVAv+yEp0UF6wiLk9F+3KCiGxHA57gRwXDqHH5acBMrw7tk
+lGwnsC2s7UfYkn75PhilwgyYA4Gpym0XoNN3v16NnhWMkjBCRZdoc50VgJAvlTCuV9V2ZrBvvHjE
+7RrrRISmBoqtRSvEwYOGCk2kL2R4CZ44yVd6XQh/njk5iBpoqvZQHEo7wdiKWDLMdiN2jRMFCT4f
+FLTu1fEGvruux7t95AIPjvFkJAtPRyI8kus72j5ehNONOWL67bEczu9x1AcK2G7HiQ==
+ ]]><![CDATA[
+ E51Z1om//cgj4iROErXD9+tA+OPiXAj7ziV7dyGPV/d8z09M4cg+HqzmzoHinxfa8kMM6tBYWzKB
+hR8bOljFFZXZIKhhoPOPqCLTBR/GKRpv/4X03qtxDyMoAu/Esw2GEGODk/OUjYHYFu7k88pcDzxo
+8artIB+HTuLR96Uic9gDiqL1V9G2sNkiEczoe2KSdwramOSR9f5NbNqo7UiXp+282/rfxKa//cfY
+/A9eiR9/0DeqSS/s2Cks+W1YlLjtcFGtqcR2nRaFzz+bPefrKqQnL75gGHe/TA3VOg6XqSqDxKdw
+tpeifgHzYtDZ15p3YfNiZLqsS8IkK67Bb0iTscqefQHr5xJgISLsGrlEsWtNtT4O2TbwuEq6XRfn
+eArZn67t4q4zeJ7XzzzGT55xP/3FMk586A3LOrK3IyN8MM378e9YOtLPidDe0OSRfk+EfkTyuxM5
+nt3jnB/H//JIHNnxkXEfufwPvcQbgW8n/3IX/Oj3W+PP1X7Dtvfm5To228t2dGbsul3y3J9Xfyo6
+XZLn1RvrMc/+reoUscSt3oWT2ulXmh62CYBOH1so7QwHjl3AvA5kwY3UcuaJjqhjX4/Z9vA4ft3x
+XZnrCK2027+zGj/9+6H91Et6Y3EHAuiuyT255hsOe+TGR7794PFP1r9wdCSgI6m9o8sjER/J/YTl
+dydyPLvHOR+Of3vVji/I6ak5PEo/ocr3P/scWUl/4qCM94cNTsXi5fJwiS8XLS91ZbuVts/7/eUM
++10/6PLXlRKPhJFA9asW1NmHb00/7enfcuvnNUFab//gSzGyb6wMn7Q4ZTqeR9l+L6y3JP19q25z
+yS0O/VaMnSLBxYcNWC66pTlwqv/ngl8Mv2S3ByoJjmW1W6RC4IOE5q7L71yIymTxc1wIfx76T4oP
+EvytDLEtm+CFv5T5aYQ7AP0XLsuwg0Lqux5J0Nt3rQaudiOgS8RFcSEl9Bb6jYDm8wm5SOIoP5h1
+9PCGRDOQQVc3Kq6Of7SMNLJqakrzR0Qp61rwMLPk8cIcEf32VPJG2emi58cjksN4mnMweOQjDcQx
+af1DsKF8jYh8ntrPihCj6ONrp7+uVHWBaLt8xd/J/Z7uusN+p2mXeL39N/YBRoFxd/7xzj1zv2Hy
+40+a7FMIifChMl7YBvPlT3w6DOYHXLgmG7lktlGW5HFH3i95yo1hPQ5i8bYjFzwzzCNvPXLhB8e+
+H0RW37Bb1C5eQm5FPfJ6KpDmJsDr9Rsm3NvdHEljcfwtt5VdO6st3Fl53c31DzS/O5JLvosINZWv
+oQeE3c2M5rEC7NGXcKnr6F6h8Ounk+o+Sm4qcsNdFwQa+kEcEKyVSgoUZPP1AB+0mau4nTDY3E5Z
+qgyVDeiC6nXDx+tg2A3KsOdLYtLOL90PcgL14F1/GDsjsFMqF2ftrb3SX+m8x8tbWV8Mun7KZel7
+i/5KduJZnsmiUvyN/spUUdRct2GBTbJ68YHaA7r8pTbOpRt3rfKpXR7Yjam74+3l55uTLujD8CIB
+gohrbK90w+U/fIK2W+dcNjPhL5zrArq7ylkXgTfetY0twc9ric338/4Z3vXA08OrvXB6wP2bUzod
+6OHcHxTyJJzN63pyih+95+9c7Se3/Ml9f3TavhLP5uE9+YKfjuODQ3m7E0cKPNPqga5/XAtZGCkq
+UH3dZHVUKqFQFvyoK88UjcuNRxQVyo3BpzUvNdadvGtIj5tQg1/S/dbY0CUYgPrt8F7uogB3NDOM
+hOTjVHWC2e/vus7F5RjTsbNDp7Q7/n7KN3fHxteDLRgyTuh9dxSnY6uNTrXtfJtbwbbN/CGumTJv
++z4h6IHL+2V+YZcd9N+rztCrKmOXFDKnH/J0KYTEWHdz4EWk14va9Skjwz0+egd++Y61nnjwW359
+Yu7HZ+D5Zhzeko3+jsR+uhWnC/SD0SVmnZEIGo/HKlZp/ZW9XhM3Y7kXZWU7pGMM0Gu8UFFZ8yWy
+aNKju4KQWsyL9raApRZv1kxJQ4/5hfoYQ3SPjqo3VdQ8ixLfaRdgIQF5U8qElzXlujTbW1DdSsmZ
+X+4asEAbhbuRalHe7q9J6s3W1kakx8oUVADDXRTht+7kw00vUaRPj3FijNQWC1Vp+zjGTcEeXhS9
+uWV6Q1LNBoROeySanxJE7kFgW4DTPWDsGFr2nTC0O7Ueyfq4nXdbf2Loe8i8B6ydI9sOUXA/YV8c
+5AwX3cob4fbFknTrBXmXkfZFRKIKgV3kro9Ed8qvuwCeHE3N7XDbfVrAdfe6ipD3KzlVA7YrWbaY
+Kr5TKzht+CV7CWQLLjRsQW/dz3SFx/FjLyIf4ohfjEMM4ApLj0jb4GegB4GPC2lbdlc9b3V3U8BF
+BCtKb2MWt2P7KYnisdN71OC2qTMCz8g+HszpBB+HfY/1eYmrO8YdHiMU30QzniMfTzGSp8C8VxrY
+gvhO4X7P2MAHDbzQ95GQziR3os+//HZ8Stxr9Hx3ji/Uu+fs+PYdX8nHi3q/1S+Uf2QMRxbyht0c
+WdORiR2vztt7drqRz+v7ONIXKeL4WJ+f9ZMM8Jff/vG3ySoZ//ibRN7/7//6T69x939bPP4jIP8c
+ih/PgfjDrHZoqqwU1Suqw4kPgfDPOzyi5MF4icc/gNavNSgf4fi///N9roy6BoPfhslAoQMP5ieh
+uXUxoJXNnHmY5ROoPRe2+S9/IPghXDLpqkXzX/7bf/uv377929f/8X//v/8Tg1+rzOALGkOgJkgP
+/O8SQj/NOjrKbFxQksQVXX8TNoixaDitwEsuyr/rwDyHGYjTvK7qBycQ8tWd5tF/N6SYZbNrML5g
+ZEqAHcydSF76IKZaCQYvWShQJkVCrS7ruvlcQecMbda8VnBdL7OZ2sXHtCMOArN4OORb5mvL6l1b
+M+h6oaqG5EvoNjaH0g0oeY1qnm0lrglekf7LT/VaQ7fd9FjGOtUcm+HpUkvj7zzqxpWvM02t28ol
+F+LDZ0CWjw6evdrglpPNcKks+ffTEj5+/R67kWhGKF3mJi+6qssYHbkaSZLQ80XeiwFn5l6CHy80
+6kZ/UtGCDMcP/vJju16BaP4TrIM7QoadnQUWrKBKf/GIqRpM+LQCc5/czzU2N4NPqAacs3Iz+kY8
+v//Lz+x6l3Oo21e/CA+tG7cII0RbzWi8fpNn9n6TUqrFWEBJHBw72dV1AQlMndis2wTXA2Y0jLxH
+Gwp3st7fi0MbMPnNgNbuVDMGb0asTVcLz1AsvBk9GbCOTk8OnDO+glDoDpq5+rN0raIGwiEVK/D6
+oy2ttTl/P6L3lx/gWwrNi0Q190oRVckCSuO6zb5BoG8+TQ7GO2uzVjr5uvqu/xfQKI6HhIRwb2cr
+maTUc/EXGjYvcpua6et9zvLLecUlxQ3nRnggvwgvThhJjSEgjHURpsMqSlcpS2zFX+h+kSE5d5lR
+abarwVGfwlSLAa/zMcKUtiM+w0QZPhUeutPx0KJUekP4TOweTNnQcW+//JBVsZIVJrwRXw6e5njN
+2fA01AerwB4jgWPYBPvbccFTMj+vWU9k1jZ82vT7aQG/eodI0658qDsvarMSMip6LDJuwakm+RsB
+YMk8MJPVEADrr2CC0/qDM8RirCfBLKqw0JoRyJhBhbX5p3mbE6o2OgOYlzDmF6n4BMUpaU5lIfhS
+S0aLKwQSM4xQjchrMFKaF5Oetq4ycjHkz5HtSCUcyE+vxE6Zs4xFuHxbXpAmlEG4xSJ1SWfONkkq
+xq2ny5xJnnBfcRoM2qowJdoEHsklgQn2qanoBb3lts3gcnrlvZw+GIVJGs+tZcaUSM2wD9KJqZsI
+HDOZ8AKmTOkgNJUv7hT1d6DYEUibK+RL4NPA12ucSbKI5SBK/ayek/xqxos0JVcVanDNDtk/kwLA
+pRBTZQIchi0TDFSMQf5Qdy5tSL9gKRvSC0pkfXCCUmPaJA4FSo6zfi0oqwJwDDLekcaaoaVgcL+c
+iBiJ9rqGrkqTZJcxhCf27DPgOTN2NXFNbaw9INfXai8GnDGQMYZFZhmVuAwcB8e2GD0Ex0DropQ5
+1q9HYdSjRcRgTVJrQsdqCk6H/yUz0EZurW9gRjI4ky+QmmaKqym5NmsjyxH/jk1QUdnEWRGT9WV8
+oTRXqrEo2EmoWlRH141ufvkFSghxoSK+7o+duXHWQlLJs6+hRmeR4pb8yaknAzk6to/o9McdtmnI
+vy/gl++wWqAnDjFRewA05MizTdEIITp1SKGJ71FHVa1D2aiPjeS4vuvb93/5/lBihrJXTimvHV7P
+zs4CPgn3R1f0+c9Fqxxeg1+X4aq7yHvHD/7qLY2igWl6S8HfvhxuRgOzkgAIRa/b+XTTdbGH2tL2
+/OqhiaJmFGimc5nVn+ppwusom3ayMTUVzRmv2Mfk4Oo4NTkENqxUIhWrWrcl+OXnSyvWBMonpdvC
+sJ/KS7hsSeA8LrSINdEGuzLUh9KexAhW2++Yw9GA59w1wdkVZ6idPWxwCUEous9dZ1x46HNjEIZ0
+BPU6B2ulVAOGSNmmOINAcPOkJtGaijw9wUBIYQqKOoBBe/7pSCjUdv/m9TVDb4jVn8656d/ZlHrE
+qhC7wWSmC0YOANY11rS5uhFRAz8BFK3GUFOyAS8lmkpPpIsd8OCayKz6MbQejG4wa7qqS0HK1T5V
+jTconLGcWZ9xBa6Xa0ZjWN3Zb1Jjhc9Qus8cVLduqIzFWzXM3Nis5piOnL0v7sZwYpyvPQDNTc7L
+qoCRhciNIdc1Q3VBnjQmOa6ddy00AsVnrWxzut32gl/nR4Wnx2qfu1Sfyps9MoGldooKYcMkLaxJ
+L7kRA2VlOx4krxXaXOJFg6RSKC40rwjKlMh6NB+6iEF61zr0HdJpmHEYcLgMU1r364NrRwlag19x
+JdaTdKkoxYDBcGMSot8f8/cJOQTOsJ2PaWS9qiVbPwVd1GeQsFvdM9iq7a25t0HjYQERDqgoTw7s
+wQ3afq2bq/dGDDa0EF1JlZNucVZGodkn2GlfGiUoD1nG86pXUpgNgSU7ewU8Tb7BxQe3ESjh99kN
+uPRXqAU+wWiZ74mtdmgEg57CmnQLpG6LtU1mdJOYDBgnHySNjRJgiHznphu2kGdQbWG5ql0R4e0W
+Y57VYqfAlnmlZ+7+xiAEotNM7Q468P24mCMeHAX6SYqQqg9HcS4oUejr6XFZKKqdnAHyL8gdKPBO
+f8VmKUIawiCRZxObxvLFwNgR+XbJ+evd3R8/ajxJK74pcNLc0o1RYIc0zoboNlcM7a4qp8Hnd65J
+TX9+SiG/XM65b/GLYD6ZSZ8Se7JzN7oOyfYINVd5r7ka1/veMl2QkzhacmzIqrvhu4VanqiEjqXo
+9uNg/jkAjcOhN19+d0r/y2TBEXmO5pITTyjZaqZsZe5RBTbm9YmAZv4qczwasDh52DP796cE3PhJ
+RU+qcH0RPt1ULC+GARttbG1UMpijoDZQ/ZbMtynfGWGT9U2xlfSZRqHSS34dVvarjQ==
+ ]]><![CDATA[
+ I8gnK1TpIVv51uP0t7tHMuJJVmMhHN97CZYRVgx6BnQjrOX9PVfwy4+3uHAOxrqOF5HJlfsxYycG
+ZwITZevipjjcMxc2O7xFHBxNF4DQkPi51KpP+7qGvwM7W1xUmMYXNZ7i1jh5ED9dE/ITXqmDh3l+
+NcnNskm9ognpSmd2K2hRc5oCaTu++ICpNRPCBb2P8hzrecxIc3DRN03HlkAjnbi3dGCm9CWBwP57
+yj/lz8hAsD6D9sbTec3wNoaffXG3zYC+xftetiehS+sklbc0XRUw6XKodzsGnyB5YESe2wQiWSvc
+1IcL2CqfBMt86wOiIaUtLG7NYKGrojA1G1vM9gf7uT3HzWc1L65N0Oh8B3InJdYLHIc7qkx/R/la
+Wi5kMuXjc9DWJAYofwmkN4XhLE3OEKnGURK9RiJ+zqQKmH9shvpn4AQhF5oQlvmwmzyP1EdehVq2
+n5dKC2g3Y+tA2JdJVcaorp2G4e7esjawtLik2pj+fri6VyoxKxdwuPvBJ2guHIjJx1G7BCtSWHO3
+K/wHiWc+AnU1kaB8Yjrkk2rvSgj08uJrZqvo+mzpt8aMG9VUGlHltfskfMnpTo9jW1szw/lADoTR
+h3jZbeKhqrGNHb7ngWiPQYGYoRxjghnT8tvUL38B66RFKlQJLcdlbWYlN5P9h19iJwiaBzHYJa1u
+lvoZtIjwOg6fIWfSZGgqBE4Us6b9u5I3TA3ZtkOKrhlM18WSqqa2MFcy+VKOqZdJL8XLLurdBTBR
+bIRaI11KF1DeHtML3LQwo08Mi2gxFplC5/1R38ZMriImNeXb75MHuCV18X+SeQd3Tjub9fjOTbKf
+eROgQmamNuDLHRM9fwDwFsnAqTZN2EXcJKTWsln+pLNa4uk/+NqESL5nka7vgTMaUGwfPkNkuBXt
+0rNs58NIh+k1YYR51/X7nuilnGa/wiO4Irt4ktKJ5+nhxwo8AkZjoWW1ZuGxoKfj0/rLxYy+2ZAk
+g+HrP2IUy7wkd80mGTQQS8H448y/eu3zJdKi5U7BA68zD5PC7ux/LuU+qrXtgnW3DfTsL8AUE4mr
+u2rinH2LppHH22ZgTvg+QUehbXd6q11tDu0jqodp2tBECLPHWC2fzxzbydMOMBeTzS5vA+jRTKKK
++gx9s5yohDAnul6RHXMNc/NAb4ZtzOAG76TWwRGC9uMcbkPTGaSzsxG6B5vKzHRjW2SpzGAm3ULl
+G8Bl62JYkcGdSbPcSECVCFpeqlkHr29ND5ZYctIF7m5bN5leZp1uuimaRxeCW9EhD0yWrAlRQ0eH
+ew4ABA1wxzVWBcLG1SjxzuAzJA/eKTxMAJMLYEXtiwDSrlCUEfoMppUhZU/rSstYxgOIH1UXOz1O
+yKtmXNDWPQ5Pn9s3+4qIhnHmxvcdcBpvi9pTP3k+DFRA+VKS6ZLxaTiYjWFjRaMy/KZcN5TzQnT/
+JDzQfTL50jQ19pkkqzLg9DpRI+9W+wsuIaLGBDzSe7YtfjGlwMVJTIcOViFMFuy+i+Vymihm4baw
+wUWs15n02Jz2zWRvv6+bEGc2uwvWG+2sdK9fwOwqd4kLZY3xjyu4BItKriRk8qZlEN0iuJ9s85dr
+hJUZcMOiFb4Ib3x50wrjwUYTzddiS/l8M83fYaE0RRctCOMLHZF6oxmdsXi/g2awA2zQ7TVH2GnE
+GdR2RiLiKd/zg78t4Bc/kri4wR/sCYfBl7MEjxkXLeuTcJIyBPy5w/35C2R4EZmXfFWrZnU9v/jL
+92SlRJSfBs9UCsZaBC6xoMqpp8W1FW1Uo8BLGja2s7yF4KnV3yZWsgpWjMTeJnuwskunomnb7yHd
+D4/C00xYAJPbGzQuDsDr1S78UvMVlE3oFPVYgfL2GZc0Vg1Fm/QINdUn2AwZM/9+h5lOfsDiLz+n
+Dg8XlYhFesODPfJ6zYZfdheZAOyJrGpFagPexuLBlRO43cGqBoSxeY9ExfPfM0IgLaliaKdOkxSS
+InmqCjXcmGAzoJ5HobPYUrzC7u2afNKHRvvpGi6qXDPMzCJDUxNpAKzLwd91ZxGJuURjHIw9BHxJ
+POadv9gWOqq7y14T0mJUJ+qg3domiJsnztxgAK6gU+HSAK4QpuSB7QZvbsKpYjfADIzuXLKRAPlO
+L2vLiCgfRSHTQgQATKbCFrpXALT6DbS6+QzTLYK15m6D19ZYHjpm1U50ZNgmaO7TmKp9jghm4fEX
+6p0D0F3VIivaBEWCkfT3ODRlmWjb48q9FbK6YN0DJSx/55Jatpj84PYFwIOJ9jBnUDi65LPrOG+p
+DiMOlctsFVoNIc7Njx5pvwSYuvmeXTYSTCWU/pJmVmHi4klY2RCxAmfzfi0ueKEfadTANQzPRIua
+2YEv1c5Zexqe5Bw0TnlsmrzO4PK+BnBjZCrucjf2pfAV/cNKXylovu1wW4ACZ4vOxGkTkTV4WKIY
+zwGM2p3NWJG2vElxUxnEbGYzJJeWrZzkJ+GT7MhMHyPZ3VWiykoR6UypyZQ2A9vesh9aUfagQKpp
+ZkOwGSIuizF9EYt1w4HP5kWx1U6dkVVFQ5zthIc613VrOep97aiyQineSg5cQHqtrQjLB6mXFo2q
+vP+CZPcUXHLsJNDk5CUa6aUQU8rwVE2bs9PWM4cDhYJsAXWuGfwUmpoHAGPgjT3ABhxkQ1sJStzL
+TH3OTAEyOPQbmcfmdk7UYqjOeaEEBFebGotrREsbGq4mKetMbhC3oDx5VqhPiY1jvUtuDZDcyE9/
+cz1hbdrDEoAgmmgsU2+EhvxLzhD8uWrLZiVqySfBDJ3Z9PO6laPjaWBkCumBTAw2XzwiEgNnoIcO
+QoxPyzBCmPCWel23SDehqU/Ca1gWgc5J3FIorShNPNKapLKE1pcolSIZRA8x2QRLUDEni6w3OpNM
+y3zhtZCGZ8UB2OnR4RlDVNpjXTc5hWqddb64Rq6gD9E5TpLWLxflmlt4irKuL4ebI6swBEWOutK0
+QV759vybv1uFibsyrcXKFpcKnmv41bt8sN0vgulNucDkuZ3+O4sJBHB59/fS4JD6nWMWH5s9HNWE
+gxPX/7WneFcZXG+afq+o9OywbFT+/p5Q4LsNpnqxzzpJBDelBZ3Bx+YWvn2OAvlB6/nVOBLXxqB9
+x3FkZVTNU/NJ8Lrg8vJ9nmf5xaaLkfBgVQqd3uKwbfHQKzpA4G6QiFELLAMYqcSqH+Mx7a/Gbi6u
+jSfN1PM6dN0yZzV+8NPBnqDVpz7LF9AqfCxn5WHiX730ukJJsijWVh5lz7K1gghDsoM9QqApB0SP
+UBdjV4ChwKkBwZvwSeiKvbaaCtLJxnLAlqxXm2uYRc0XPu9YTBRf9pnjknVMYarSW8mArBpVq4e5
+FPWafHDPjGhDNT+r/lo25cFCB6QyeIy8r5XRB6OaWddEvmFlxF/fkVo8tAotwub240omYuZ/wFJ3
+i3FW8asm7QuuOKyuI6BMmdlQK7111z+L6dfedZVDUKJzGendbztQHtOiqQuD6wFk9s01eKhaVoZn
+joBhef1kqRLKM7OK5wXepHA73Qs4LPun/OkhKABfMg9DzJqWAa4ej4Vyx1ZFE7ZlL1XgdmxUM2Lm
+SbFAYhn7sHRJxcdOZby1siYQR//LBKdJi2ekFTUo+O8vdBgJFM0tlWqKW1qTlaR9MeF1tx2gPGR1
+FaEZErN6/o0Q9D6WvBmChGRsBksSNnE5sQBmi3SsmJMMQNpVil5znyFQwaaIhv7Vwa2IKXo7kk6l
+fXhYPeCXhMS4IRPCUcedGkpL/P2W1ZLXOcJztmqKKC2j7Xbz56qw19+m9CPbRidAF+xAY1rVsfJ7
+mjSGhnNiYHdxWKKF1wpcg+1mRior6iLrE2l7tbhIizj1Ga7bTbUnqjglXTIogZgBJo8NCR5mjor8
+w8HU2POuwdLzl8Ui6ATa1wQXHdiJ6cC2lZOoZvbIK3jfxHn7eXMPRpHAXXu96jaHhYTJk0b11cIJ
+UYjcmiqIBu42wly2fD6J2jDg9EoILCOa92gs5PavGUIk//KqcyvnLHoZUhrEs8ZX2e/Tpk+mpHpj
+jps1cNo1z2ELiRQfo80QrvVQGTRnugCrv6V27wTIkZL+bTPEa+md1t6WuAZmpi+FNie1BI3XQEIp
+6E6bxbQyX/haowF+W8KyxEmcl28iD9LH5v5M85LoCec7cAG7VyjJwUu3zuKu8OibQ9+QFI30w+qJ
+lFCxrLlFQ82wqbqCUFzbTmUFP64QQ4CThwHVkWzocIV/WgFbACfD1jfXe0IuEiVB1cCkm/n0ZCpl
+TGkPMFyhSd+TRVdmW01qHcB23XpvaTEALuITZeKDuKmV9heaKQVh5E7VTNEXcDLxUPQtn+BCI9/6
+5DX3FtunEUuAjChb5W5wnMxGtgSlzzUz47EGTXzDTVl0D0sVXgtDQuBV3+mBOiQV34QwCo+7Iq0H
+tYrpBLVtEwyHj7JKyM8/XzOUjNz9blqGkUzsRSc8fQvg6rU56JjCpU9uALXlZrxo1CGaV92SW+gS
++pgsSctQx/xS9dyDPrIHpACekicZaS4POF/yEl/cQuaVSJrTab/P252Ko7NKIsuU2QkrsBTm/GwN
+rERNobAvvnNl88x0zqugcqU0mcRQ98EXIaw0fvU0QHNZld7qe23GZl35Z1uxwPrnIia7EIB5ooVl
+iAvQY1uXK0nLGDJZ22yiq5Cs8N3KCXp++sMAZtqARQgDVmtggpPGj+qkjUHOnoOHJ3RF49KikpFl
+yVsmyZn6VjNuxVpH+Bu+FDFKz6iN2NzwH9goacxIicurgWCsmwYtolR+n3xSE+Xy2Ja1VSNHkd2V
+YDKMPqeyKMWisbsLuCxKeTGmC84+VBarysF0JNHiDamNscce5wMRzzO1icQS1FZjz31gkcsRl2d0
+qSUvvg/z6AuQUWMjuoB3PfeMEPTyfpDxksert0q5r3jJGrs1EHELL+mos6zf9xj32/RJQTt2L4nC
+FjCJTVyHFwiDsM9YTEtxdHXBPZAST/PpekxnoE43GhFNiK9nNsmrQEemqL0p8KiOz3tiebjQzy7d
+hJqFppAL0J37ktTtE9DSlTUGWoGSYarrnSaYN83TNX7p8VlouLLJTqZ59Y1wAsmh6xrtnfQ6pFBU
+t4KBampBJVy3K3uXWnTAyG7b8jcRXScivfXekwgiP2nHAtwBzJ3Rfit3AHAKQ0v7qyilX+4K3dSX
+Rb81wraGYYNXcCG09VAoLxhJTnUVjJs5Gl0DM1UUdptGiwyXrod5bVGd0gXIsHRKlBJf5eXWAyy1
+0YdzvkyzxUiuwtZJu8erpelXm7IuKtqKZeJCe29Yz5yYF6nzhjTPqIAeneeCX2IJX0MWdYZ1yQPs
+zGny/ODfYUu3Na4tVXL1xHsI0ZT0502U3l0t3O6X0gQ2rb8Llu8oa8hUVHLebvcTfb/WNNmcwO2d
+/HILYMxu05rsvc64n7wovG/e9LJZ+rprVKxTo7OuqieZwNsSfrn9tW+hqW15L7CfTA==
+ ]]><![CDATA[
+ HiXs3s2cc3mqPQL0MM+vPo6Op40OddgwdKE9aY0YAYux6ZNwRucWViFD76Haabztk/2I0iBzW0XI
+RreajwKXe/uHlDuXiGsBWvodgMyeqyqkf3AJwe3K0wQtlO02teUSDzsbcpugWXb5sa2o2qLFLHRr
+bVWb1PKNf0grhTaCWSmtcqZ0aqw0k5YVfI0eOEZWVe1nn4TbI1b1Sv0hlb9XmLXF/Q+pR1YNZ57E
+IWA6p+o2bfT6DsVlQACTaeiUo1G1rTCibpN+GlIOuYY6QlwTBzdGZRPsUMqvMXIjawEvAOlRL3q7
+bGZpfUEDvcUxorC7ZzhafVNpSuGG2bZiA6ScIJ1spv2gQuDIG9r/kA58jLore+csVAgsjNVu3ifW
+g2KtgIjAfKWblQxl/Lyxnxb2AYyJyZUGY9S6zJnPdfdwqK3cJSIsArnZSlKgwIqRLhauMh342mIV
+PN6tuqBVP9I9JL9SQsKOA+r9RV+3T8KZx1HdWgmEeSqYVU/U822kBA/LlpPwmRmFI+il7TxQerq+
+5RnnG35BDJkiJ30qbVVjKax/IVTq0VcSD7qod9X2ZtKPXACvSsN0CakKyEcgqrXkuoHsspg9pFTh
+wU3cUZ0V+H3ykrWaYSZf8sBOiaX0ha0KJzyjtko7oMCUas5tGSyLrsuXkD3uyVwjLXmIf2HWl/QP
+CHTtVK91AfhCJJ3cZ5aTlkFuFXoE2Ar6g3QSiyyBlSXP7WDLziV10/XX8lbgqEWmdAqH9AQXb7f1
+ZobFLFJklg7gq4CVWJKUc6/gUmaXtLYFLSe3YaIYUuVbRQW1NQ140glINAjhcE1ppG0CL1QzzB6H
+ekNWt7Honwzo5tK8Iu5Q0cmFce/kMzQL5+X1WRq2EYJNMPTdU6a3uoagWlUiMyUeevDqQogWU1Z2
+vfrL+Jw9zxRwd15lb+nbo9aytbdcIx5QCilO80sG0wN72hqiCu3zzTZObLFm3Xv/AmhxJg9R5FdL
+ZaiZEOj62LrAoMZCZCaTROV++ngzkBZWwUPHN7sxxc3SKMpkfsu6uw37yso0L7QJOz6YzyuAyWWH
+6eEqMlif3coEWQFW3s6LK9ffj5v71ehD28noa0SstKJvRE8Eq0yYF2CIFHpUnQescmBuzhbQQ7zz
+Yc1xeqP2QNSZJagvp3NVF5FN0P9cLnKtmwMYq78Uljcafdn/iwb92gSrGkHdtUZUwIoUg7Wejhy2
+hX9UD4Lt1e0MZXdMAN5djjZvISpwGXet+gLop5bUNVcwI+BhjKck3v50wUnYkIOzN1teZR4FHcOD
+MC10EcW4zHRcPcgXbZEdF3HH8aKv/ZKMrSBGNSsGqq04x/BtX+zJPBnldvylMHaqWYg4SrN40svF
+FP4HhzK9pbB9CIAXEj3CI3lvvMYYke1lQ7kbyyWqLCMlM0RGpTQiZ0IE5HKnW+ZH8Bq9ResVAJg8
+zL2udtRpUxRWaR3ATe6urBUyxBhejIatcvgQqwTvxXKXUWvVj5klUWyjTqnD5lyRaquagE5LWb6b
+XxfiEhW7lvz7y4e3SFLsIiRfE/TE7tds/Va78LXzje+dlVYaEeePJP2dT07zy3lZ9BKDVapTOiuj
+ewQ9L9R6DLZl0m5V59Z3eBkmDmTYxhzQ/dqKqlU3eI4Vj1/3iP7Hyn6pxv+rGi2le5+l+Pt//X/w
+t1O3pUvwPPdbQujG79JPVWjHzqBsoM8FGlX1ks/9p0fg9mPttaRLQ8elH2kimK5toH/5Ja/8f2g+
+Vry+unRFjgy9hTlWdO+Cmn+Jdgl1rZXh3dnBdVVMK1Mjuvytr+pWqpcKcSknFOuGXbcaPUWpFtqU
+0bjR1BT8uzKhavXMv9Hgrl67rcli8QpUWztGxO1kNsfcWjciHkid2GIYplemqwtLemtWel8sX7em
+neMt+Gsna+n7TngO7rqw6Iytu/QT6d9+rMMr7OP6Set356GR5q3cWtuJWU63M5ypteAr2TvuQe1T
+piyl/tVU2Yo5mKCLFzP9dO/aOrduV2Im0hz5Zoru5zJFBINbWTCcv/kvmhc0htXesNys9dI3ukus
+OA7UJyRXKurtxWKx55dzapa8eT+/1z6F6/w2rK3zk9aBFmV6R/u3n2nq+bLTvf9foTe+rTQKdGbU
+RJW2Kjug0r7eKuBkxSqudiLQssJIy0KbmxSbglbWNaQATWdESEFp2W6XsPASEvjNuYMR2Bq8DgEa
+mXV0dFxDdTueQRG68yPgOaIFjrmc1okXJ9wn0niFfqSl5pPY/AgOlHmi4SfBu/HhdjR+EZ7neD7x
+007foeWMwDuyD2cgZ/M4hO0yna7d8Y7+EB9zOiOZOCOzkiWEK7CrLRxVtbXqNkjasmd72LN90QNM
+zVIojxw9L6t6oAfgNF8WU70AM3W4ZpI6gXf0b4NL8cFp3Yt1B+Lu8XzejTv+1z1aF25HxANrRP+P
+tGp+3nU/gydfODKQB7f5ILe5Hc0nJz6c4/HETxt9h5W/jQ19+xtQ/R8xwp9g+Xmjk53fyA2PG1y/
+bSXBBFgItKgMAabNjW4ZAlCelxMcflO1k0MHb039pojdEObUrR7GK67aHoK1wbWL44risK1Y8tXr
+5dj28dj0T7Hsx710lv28w8fL/uAMH5zghlnnGIdjOB7YaaPvsHLG3x3XjyMwTvI4g43tnBjUkZv9
+CMeG6KtW+d7U7vtF8VwjflHkNrMFmsQhJL3W88/O9AbmHwYPkd52OPdUvheizIuqMytagKpzYsyD
+ltFHEXjG9T+W+/EzrPJxyb7eIGWL47iv6Lj0+zYPu48rrf18f083/bnij5/hX4in0s7HMG1NT9Yr
+1VPPkePPqoaAM6wzWLsCwFjnP3jaUlndEA34jTtl7aRt8LLaX8pijTf2BUtFWBknO2VtEif8IZoP
+hVIF1jS9epBT8L7Zzz1//AT7etyTrzeIdQQeVrTWHt3vuO0/vJE2TDt13rGuYSqNUTaP63pf8McP
+Mo7AkERnGcGtbW3ZPrZSWcvbK3q610hhjJM0LmAEq0UEFZaNjWoA/Hh8/PMnGMCTzr+IzNfPegjl
+atNsEQSvWzEf6Ou+V7LCk6g/actgQH70CJbzXXl3sd7cwtN1vW35BwkAUUzKDQ1bijrEZKjNGF+n
+Lyqy/tJFfiWpJ1EM/fJAl7o/r3CoqCeiFDZ2UcO3uApK0UIif4hZcqq58gJWbxiAGayE+sXJpb6L
+G61U2kWspgdHNq0gi4TCwhfXjCllbsaUzQS0oXgZi4ZqdS/HjJBOjHxYnIqiYV0HnZnwl+PHjikU
++/ET+G3xm5ZeB9fkCLYQzdOx/Yyu8cDUMjrekXrA/fOY3Lt0s0X68T3slif75tEs93qAmw3vaO17
+mAYPJkM52IfJcKOCI70caOvH3+/uAiMOE4v3SDlLnMN1D5rn1N3aheBsmpwmnQtIfl1VYmB20Ghm
+DK6M4zJJu1TtYvKHBvrYfS9aquebq5tOZ4GP+k6mFg35QtI1PCWFbeh+T/zZ2C+VAD9uz9HFtim/
+ShzReMDM9oksV9g+P+nXs1KgWAuZloelIxp+KE99HsNPaUQPjH7RmDv8SKy8N87JwisuIHNt3x0q
+wiNUepRMZ3MpIpNUXIqlsra7eGwXl7Ad/SE+VPNJl+wevcD4/+IN5wbTCQSYm98gZnUJvIVGwQgO
+TI0HBl7pLx3OIBjasy0Mfr7r97aw4Lyu0wJwfIpO/O8drzxy1bcs+Mivj5z98QwcnoebtPQk+9P9
+eHOVDrfueD2Pd/kvv/1nH/vDUbw9tucJHynhSTbumLxJAH53n+LCWbB4J4WcRJa/maIEac9r+OW0
++mDEZ5Z9YixvudCJXz2Zm7vLb/fT7+HzMp9u/VsOcWQnJ8Zz5FI/JIl6LLF4CMdmQrJikNeIob3M
+IURYYGqNXroCXk6N54SXM7ERvASZaRxstWRAk0Qa829gTaoeymupX9U6jfyxWyFrebH6N4ufrlVr
+pKkUYWXcAAx3WRJX9qQH06+6qVbLBcpUMSteJq5Sdfm99asWJvDACWtYW0U0UHgkmo33gfefsls/
+HMV+ik+v8sn9/HRVLxf26+G6OPmkhCPNHDf6Ditn/H0H2U+P98E1fnSj/4ThOvKluLiXsH83XFvM
+KGytVl6weRJbNYVSmVhQ/gj7vytJ3ft/VGvpqECNQ6vVa8b1wKg3AEt2j3Nn3Gwde0hXK/RKwOVm
+RYuaK+SITDdH24svPPgruPnNuxejWx72Ot3PttzCdb7o2MuHHJadqmyDn546Ah+XtusMrj/w5vel
+P/TN0S/WwuPB/ZSo+djpPfBgR8sJgW+QfT6Y4xE+ztvp4BaR4HTwjF44hjmcQyKO4RPnQItDdMAr
+FaxIgnPMwSNA4UEFht27FrmT0onojhSqgtrjvfmiUvF8nI7P2PPN++DNvl3YT8JPl/vIBU4c48hd
+jnzoSPvvLsr5Sj3u3+NE6s2oeniRD0/38Zn/y29bZNu//biSn72lqQWWfdFMUj28cws4g3NiVZex
+rBlpuCdAxIoXt8DZyOtsRNhz8dLClJEW0Ctjl82YiPyi6sHP2k8e5pfStyfX6mDhzUZnBg9eH2ql
+BAuh5FtYA6OtDJte6K22fswuXVqNAqRHTJeSrcwoshtqpzRgzURb16V9IzatnIA057Y49eS14iLy
+qfSFe+D9B+XThnq5yW4r5DBTnrJVhEXQRRtbZl6KxSI0LtbGsBQrVgL+15ToEKGiNV9a2Y+veQc5
+NO82GR4BLCoFQTeangHkMerTW/5iweFEWeiiHdQVOZXedbDOAU5upfEfO/4pL5VkDgnlcZ9fhI9C
+pGSrlt0SMxlaYX8dAK1CeTOd8oP6qxaLadasxJPRrHpujx45c1EsUzSjZ9q1M/6i9zV7xR/SuHq5
+nYGXSnk9rduWf+aZfxKKU+CRqo7090qrHhV1w6tv9HgIx+N6bvQ7WDng74FsX9vr2fjSDvfgeGNO
+1+uH9NOu0o4GncxAL6sE1Kib2YwiKooEtutjVh9KZFoxjZctPsjPE7SflHoi6Qf5f7xZ7+dP6RqV
+eVU9aIG+L+ogI8rnYeZYynVlARR4KGljCax57vnygfaHG06yZ3m8IiWb/2GsZgL6Vpvvnqrac7k/
+4x9+e/aPr3h0ymFJp7U/9umBcjda8SitJ10dCfCx4h/1EA/LVexD+v24Z5zV0qLWxVdgbkzMjx6x
+yz6orxtczcteNxj+9KJxy/hiz5Bm3iRq0uprlVS66VUmbsv9Gb/y8xvuGDss6Ljw2x597zei973f
+r8fpEj0u3Meb1f7UfUfgilZegEVyFdMoqyFY9PI2Yuz0Br99sIyq2RBftw9d6PSuip2ZGZ7R5FUU
+77GywNGTqspgh3hYnlffoeeaP38mKOTxFaf9w5IgxjPJyRff+AjfMNDvmHEMVG8Rktxk97xoNyL/
+eLPez58NCnnRVHCeVkfpddV1KwIRi4V81K1hLZPOYCFmcEvzhuPP7/1kMMjrN3zxhw==
+ ]]><![CDATA[
+ 9ZS9vAFXnr2K6euhVa9Q+7r9pjzglfaPt+RBnh/nJf/guUHr0T02M+t/0Y1iO2rBSwwPLzIFNmUa
+lATKCLWBdJe6BbjWpxA/cmXchrXWLNVbJA1vplReKoL0vgIHxPbquaNWhgv1a4bafDC2UY7Tbr5Q
+co1p3JTcijCp9vtdI14diV137hQ7X88VaYI9jse5bmmTUZvb22B1ayHU2hqkPPH+Mxb0506/HIMP
+rLxD3wuq/QRelXw/gaNB4GA6eGdn+L5RYj+Ch63Dl3Y7ms8bKvZJvn/i29p+/PEDFZtbbKh5wZM4
+i6a9iu0uMKVUSxlLwTJNQBleVhf20BzdcR5YPLoFr3eAEC51f0LbseJc68qJ8tXo4tYeKGYRYfiG
+FBQsFlLN0NORab6DQADrrM2Q2dsQifCzMUl4vTPspzJWv7PXK8P4i9uN2cIyihegQkqyWmVgh7t4
+xQbXgjOIeeij+v0SwsNb+PvxKH5Gh96wejEy3IIvnsvQksCS67NCIqK86TAdW6jGd06Wfqvi1mvE
+ASphw/mUJ3dkyjIuqLELQ4hw6bIM8++QdMOou9FvvPeT8COjPrL0d/z/+VjgWVHdpQUvPIMbYuq2
+IdiJjgp7XM9NZnZA92ITT3bsbPpGi05GbAyQ2Ghe09CnUjgrBX/vOmgVEwQL5Eq8G8pQPaU5n78R
+D+31z12vl/eEIivM+be9vDkyCi6anRpFBRRHUtdIrR/HV8ioRV0wSASylpJvH7dX1C8MPY7peJ6n
+wyeCzvfuiOfjiXyPmz1Y35FJvuOoR/b7hlG/u/tHRnFgKWcS+s/LetD91BIEfRDf8ZhBy/2HMyis
+ciMeYgM/2qTz1x5uFHAqlUC7Z80cOWbKm9aEC2jmq7tKUwRVf/RLq5bZ/shnr7f/+sgnLzX6YrW3
+htq7fb8w2uXmDCh228Vx0Og4sEB6cTEwPuSNN0J7kMCgaV3B4eIIw1xMDCB44vzjZ+S8h3fl683J
+Lq/LaUmntb/b5slB88aV87KynzL8d/W7qmcQZG5m6xV2YQ/7J+F07XSvIYfSWJrQi5IuTau+4N9L
+exoYwOe89sxuNJ4UJTZyXUDk1xqLxs1QcVKq/fklAO0rX6lDm/sp0AKdq3UrOG36Z8yP4I3a3R1+
++M3yf3fQeFzT05fzxukTTvL4E7E+8fEUzMEm9cuU1z5X/GEvwZO/eDjdgRmduNaDw32cycwd24fT
+eXOOx0M/UsiZlh6E50u7sURnfU/+eWS0J6b84pj+uZIrj5or52or8VxrJXt5RrQsaF7pVQoyEfS5
+QMPr9a+6jk/Q9kMttYIiK7IkX5qbq+wBuf4k7a3N5HMxL+2JAAMTIynRtkhiBFBP/pIjfv93VwBU
+zuJ3/+XN5P/CGI3rKDUHC3kPqS53kPXPRiaCOd5GZhdAyRy4ruy/uzrSg8cEZ371MTc/utCD8opg
+4p61ZfVd4bSzxiEsSSliiWir/06p1Do0SlRe4lefk297HdEyWi8uldZea+gGZ8VdqXOYDXjdt7n2
+WhN9geK78L2+zs2PSgl9rbfpplcT0ADyVldKU01b0Pi3pBiSpdddl/pfSBJryn/5lVeohZ+6Qmr1
+tTCfrizEbGTyt+yBBRj5+jcbiUuyiiW9uyx5WMvOEuJu2ciX6CStskoI2hXmD23oJGUxLoZ0kYyW
+ZUfjCbGDXlKxdiz4xpm1Dmme0YttyqXB45DHvPjw9J4HEv6RJ27XoCCOgOcRi85AbalYLU35XLYg
+aUY7y8IKgkG/kT40LQ67YFlF3H5pnHRJFS74PPFAVQXad0R8OYZLH6/l+JAac4BLJ+I/xHQ7A+TU
+PKf3gJKq6N1W10rcAk017TfP6qwBVo2Jwqd5Wkd4ABEEjjcOm5aGe9/o40HhfpkgWONryGgD5hx8
+LbF2yfXitNR0XRVNS765i6nopvmSXQsQq00JW1eKBw48Mg26GfhnQV/h5QOWiNwLeOlmpsVVdmrD
+HFLu7g9J0NCG3HJAcYV1Ugm4JImtESJUINlu024Yyi5KnbZb1Gr3gECxvQm890InqAhC+NjW4VGL
+3gs15Lp+r+XgsQXpHKYLKEP31bzp+w0Djpip9U0LuhUvxlzRCSkIvEtagcK0Ej5m8MAUXJ+Q9Rwk
+F9UWNqynN86sJ0/Xmrqu4DJNQ4uJUOwGw9TrQZxJ6nxighIyQ4a0cyO+Rv0fdYsl3UJ2BvKyGWib
+wB6qRWahgLOoGdjwyKz0/IoDz6FASRvwjBKh05S6Qlekt5LAS/LSw9pGvYS5qo9n9X7JGkiRCtcY
+FcGlsYdWrTgEDpP1uCHsFp0BZT/JdKAzDr0Tdclg3V5OfK3YpRRTQu66LhSR/eZCsVTRxB5YMrFV
+Ljcmv5RPLKjyLyz7D2nMJE2F5KOoi2GsuV34jVHvcrSLBF7S9EyaeI/+yvstiRmyxhwzAySaVEx1
+4F+pVmhfPawnm+eqWfHPgjbMCKe3sUW7Al03Tt0QSppa57rApXt99a/+oGe5YUjHCp2NEaQYekG0
+CzJ5/urSkoC7RIXSu6st5C85V5ul/pUyTtUDZEFTfY2GtCy81BG1telgafsk+2jRS1IjxwV+0bUy
+W0Ux6alADEvGqhyV15blOGwZVRn9haG02ugNbapT4lAbhq3C6uuXWFbrqPsp//URYxpJEWg+p4al
+a3DK3m03dfaaDM27XaIZm2pnuNMzsR+ccqsKVoHPKdWmJiUkr5emezcPtNBDidwLWL1JTUIbUEHw
+xYTTungpmOsJcKmzoUCNwC54Ds3wmqJGpci6QvS8i4RLUHUPwWp2pqw5H7JhWjafWCBfiY0GOXCc
+5EGZ8fqx9hoBt1C98TqZom5WXHTLzo8gHzGZB7MvfuMESbuggJkaf4wVmvPQ3V3PiQJRlKzrQOkg
+ZRN4ZlYI2uALwISiFoAl9xTHzLqzYEu4ej6BxdmBTkwgi5W9k8F0TZR5IsHRgxZ0Iu5efwoot2ro
+EcEcv4jocKqFdWNio5BrmktjTgZUmx3OyF/rGCWZWJBGZSMGM8LhWWX/+qEyn244u8cwdCaSBQtE
+VKC05BZE0OQnzF7PoauMYTN4L0H5rn4NSd6ieERtVXHEAHETqioG179kNQFYh3NUhxkKLk0F1gtm
+jRLxTGnwfpCSMLKHqaqIrQzqjMLRfkHvPPqgGyKa19oO3qsZlzh6CmpIFqUZmjs9KaTK11hqXeTQ
+zr2N7fe9CeWACGvkCoSVXsCiEvMRB46dYH3VIt6/hRzXn2L3YvRYm3b/jNVZbfBytzE7UerEmukf
+rZ3ppeBMeEmanqVEsgI2WHwvBm1nI7/vE3FtYv3B0U6pe96n9wiLKPzXdIauHA4blr5tPsGlAMvC
+Gpp2cAVcrUtpDxTcHmvv3YpvLptcMhHpOinUcLZr1GH4kwUmNUX8lZe8akOoWLxn2nXCXXsGE/hX
+XTm0Ma58aokm2Y4eYUIsWuIrda3emuRIr181AgYYBrulj0iCxF95m6oWk4e0yXtnxmLrHPNX3lyD
+96ZvqXIla3netVCEjk3Z5ACpv2I5pAm6kaSPwGTQXGhIKPygNsRuSkicf1Yuyb5+QTTzF909NURu
+oTCbpdFQO9RCeSFmiG1UHxIzHSa0i+Ajndis5vpisx6xz+O9P9P+SL/o7q/6+avu/qrXv+ruP2OH
++Md//df/+fV//dPvMd5tEKtC8d9si7i0BLwO13FeMhmMZUGNL9e7MzSSacE/X+GtDRVGPl/neQff
+51HrxTu7xaXSICLueqivM0V1a3MgXnBEt183V+AdnjcZex2yQKRcjo5C4uYFg4/TMlwELtWTBA5l
+UH8NvUZAl6BLWIMsKMBa/OdFGxYKWAxTn4Q38Bj9XIL+IUCpYS/rqlJi7LQttZMLlqQzbmnSIdtK
+ugk8oF2OwJVbCtCmkUr50H4VmOVcUHe9WJ9GnbkmA+NxVFjuk8AUOKsdIGYNVshW4DartubVnwvO
+pB1JJOy2AW4NbEgGywIHT9JUbIHnMGVd1wvVYUJUoPTcFGAFNxWgXH47DuvUesHRBDdx8MWnpgJb
+1rXhkYcmJkDpZPiNa6jQIQU+oforEH0WdKy0pxLYRfMKkyYE/nsxfwhcO7hfQJh9mq62I9dJp8Qj
+odtKVgRW4E2HRtX5FBan0Cg6jEJCOqDQqSZocRf4/S6pMPKaAJ710IdKk5+EF6WbIRXhDQTLmMC0
+d7MAJbZCgBeZdi54ItRYwdKN4pNgEdt0GcJSBSivtE4skpECkdGoE2NhPjHM8QLuU6kMjAYv/gWk
+IixA6QMvwDCLrwyycLPBFXfwk/AYOb5Lt0Y5Ipi/Fdh0yxBSlZimvoA+byyC4RnEjKBD4bIRUCmh
+EKYbm/DzJd/YJU0MweS05ib2rVIUJiZQhU25PjNq22D/fbeR0u3OpoSceAGTVQHR7wuuZloFBwRc
+FV0zabnkT8Ib+j8LvJJlXYMhtQuwwVBjEyP+XIEzlm3mUQl2JJQke0B9xTE5adTVWh9f/30oWcE5
+GV4QMJh0TtUxlU/0ZONy5s2D0SHaz4USDZj0rHDNM1lK0/s0ESMQ6rp7MQt5wtAMT7sCpe6fAAf2
+Yre0NcIWahuqB2SF22VaSIENZhApLUz7faj70fSu2EZ8SuAxih5tq53ZaD4GYVP40thROJGmK/B+
+KQy+hGHT1joJvJ5lW+tg/w+9TUE4ECzMYuoTYKrRYKRYuZZZgaJk+ARyqQReWOFZ7rOybMzBBwom
+RE7cSianqXq81iJbzxfSfq+2YO3vJcBe7cRU0RHYgFlBzrw0PllRIuYFKIk1Cruka1IsfmM/r7wf
+Jdb1e3Ga63XCThRYcrLrUWGVNqCyElywXMuawV4ycY+UZG8ktGr9WGp8N6ORR1wd7WUCuwswlXV+
+bMxkTCb3SaA0bVbOVXNdKKz2kKGt3xiGbjLlqW2LFDirTRCRLb6QCG+G8d9RObYL7wIDb5FLEF/p
+Yt8ffG7ETajvBZi1LYHPAu/I8x1z4QHlQzg4UCoKFphrD05WGr02DGVTlxYWMNh+g28tiLNiKFgt
+6gKcSUhpBybh+gpr1S8ODjDYCyKNmg1Yur0h6oBQYJy2tYGT/sYZslIe3uJYuYKFr6KHfsfAN2Km
+/OmEL7v9cmG0krFOMAsFlhiMr13Y7pR8I5md3BIXc7M+xuAgEo9nwEAOYoQTpDGUcYUQW1szDGOj
+6F+akzHi6yVVWCKzQiG0HHnNY1nsvUNt1CXEwgmyvVnol2c8/44FJRx0rrourjBH7eE7Ta2ZaIsb
+Tb5Ti48ARzOBNiSInQLrwaRhtvbVeUsVLiD9uZB+J2OzvjzSR6lz0tlVIkYLICsGKzNEeMwFXpPN
+UJwcLmAD49dvTZsgt7JPQElbRZoLhrZhSifSZmAa8MJdVqB4i2wCnEo1IVkfDpnVbk/WkIYjEh29
+nTyjrwZ4AhYji5CrXgEBtmCXVfoT2cBASbIZ41WwPmkiNNpJaAlJ4y7ZQDk5rBntCg==
+ ]]><![CDATA[
+ vJbZyEjguBBg6wbLImbrQJ8gFlMJdGK9wmhe1vl5pTvAxEJ32L8jZkLeMR7dICAYZibc2VXh0qFP
+gRfDaCY1CkkrMCqdo9jr9L1NtWPLkxAROqHA3vSljdYMQIDTZkAbRg3HwmVB7JleYsS7WrSojVf2
+gHIlqfvM0cRc7Ydx2t1GECkO6hHDihMJ3IQXMEVxiggwFH+ayiRsZrLf3jeSyDUaV63CTJSkkkn7
+ffJExMdtv48bSYQcbN4MW60NVg6Ft61FP1Nn1XO78nCPky3DkGuDyexfgDckOHrA/IsdXkXOw5cT
+bM+mH7Ru9xb+1Gnn18Q9rmRYbGAdde0uOnimRFRK9S3VEGD/UOD1XUoqsFT67maOBs8i89oM0+Qi
+J0xczmHyfcwmycoaUpLTgAyWWzVKcbld/RlK2U2VpKTi9ce6G2FSMEoktTGnSVDaW06AKakgC/uP
+xazr1+owOGJSDeWq0gHG+/I4B5c0UL1f72LTWn4ua+Qgj8MFv/7vKlTUyjh4Q9TrQMGiK2w0U4Ql
+ikOAK39TJZORFJrMTpD+NKXGHFoGC4r0oXYkl0CkWKLANVpCDFwSciJAt35kjQsWoHj83Bo2bOYu
+QpLOegmbTWEJur4Ch+nATaNL1hLqNLg0v36RdwAsndPecOv3okl8h17uaGZVAaea7TK3UpV8UFKf
+NxweYHvjZo2moIe8yLqpR04V9zVDUgOgCNApGhBanfK5XLYJLlq1CUS3NyaVqjHstGC1GC/xEnY3
+uOo7MmvPBIoIeULCJsTQQDXVo/blQsis9kSo10mAcwbbnJZVFvRQ6YJDuMQlAhTThmDEKJlChN2i
+a9oWigElcFKnhbjhM9BWd20borEBlZmAMUt6jk6bnYOPuM0QVVQFLqo91tK80Q+59t+PeHAMBZrQ
+mtoxDEFBjAUCVvumwCRrXYCj24MWXJPoSIdxGSuA7BScQuMEQ9kygPZqQfUpJgjElJwhReIXH8OK
+FRiVKQ5tCX3awDfuLKlQrkpsKS5iJXs7IXRC1lFYrNGA3cgyuWydlf198PcqDeH3TM0VcA3TJOnE
+k7vmCGGS45tc+1gYl9wa4nuATLoAdMmAZ3ltAU9KrgJ0P4JJLgAmkd9Qejwlkgpi3KtYkZrJi58O
+b4FOh6iSC4CyaMAkQeS0NFIQai3otRkW8qeLhnNrFJJLlsPqGvchh025GVmVoxtVVCpBFxx1A7LN
+O426kfqqYkfXYg6ANXszRtdbbb9vbpjtmr2lwKQ2EMjXirO+TN4w55h1WuC9NVPVJZ9PgU3NXiLg
+KgdEb2H1BnTo5pQtAE5U6zUCRyfQJ0bknsEJxFil4hRYnc9QeqKhdSqXwXpTIEtKqoEBmLsx1k4z
+nW6C7Gvm1HwJ5EgN5iNbrOovuKZIcvEJzGmDiYeKj92CuFSUtscBRYVtZIQ3Na2DGMYAo8p8nzzg
+pFoUZBGJZhLgMFtd1PR/JRF1CWAC2Ew+SGH2GMU/jdF112tE6GmksBK5ALEl+e9pWkVQaOG36giU
+/SUu4gJCPGq21FgzuVxfSklUk9bnghfDTzKdi72NdRKYIhRoJw+07xMjmkWRbtooMlF6dw1IlStp
+cdLidpY+gb0ZeL67vi7DsirtddHbPhDsGYz20ro+E7UCSZJwmihwZCPo1h02Mwm6LOKf8L5w6OgL
+M2YVGBYVrJvVdwWidHG8hGQ3vc7R1rQh2lg2wpFDu3ia3UBcAx2p2Ab7kRKNJ17lXAx7VyV3Cx1T
++Ih8yMCyfB/rfZq51QVPg4+kcy0oTlyeKMvHL3ItOCaVsaFxzUqOKvDgVrdc7PhMeYBwgEtpwDEi
+JYbOG4MZmj6g00LWBFhKbRQj9K1+rmFTVGsHD+6QlukzU5UHPgOBV7GRmZ4IQ6EOpjkCnFdBadcS
+VYnul7QrPjObFKsQ2JIXbwvYDvGiH4paw+LblGxHolyWzPGspG9m9qAl2RfcL0/y27v4YCLffnzQ
+l1Lp6UPkaSaSpIf8NHISb44Biz0pEq+msGjO2f5nqouVBnuqpMo8X5SpTtSuHrbD131ZSAqYJi55
+ZLHCGwU+ynbdbZagZZO1JV2SsOJS0QUunBaS5ueCqrtySXEAKt8G0KTk58K2JV8CHg0geca15Eaz
+RBh5fVHy4pRtgckuuCtE/hYXiS1VGB/4x+d8IfDQu6YEz5AtJFF3xiON8gMAQjumouMvJNIMaPUe
+PTivjVQyxKuQOLhk2rakbIECg3o1ggjA9nvplWBgKiOSyUeDWWhqt+mSp51I2dsCgnp/leAnV6th
+GXhvSo0ElmDATVnT7DvC8+KTEZGH9nZHPhmw09fMZ1Mnhrg9+DoiLO4bsTuSyyVmXulJ3Tf66vFx
+SptYk5pLCUhQo6ZGvoSvReOkLhY9ztdPvjnWLnEqpO0212IOOTUh7GInNOsyKC81s+Y0zbn2+0wf
+KHrjdZdxVe6cVaPVjkvwxQX6IGGJjY1Mr0366wCHR1yBbjaWVAKDDbpIvDyYTtBooZNQcv2a25Iv
+DE7C1Fw2JHhukQQNkjBwmbwClksDdZyRVHnbAjeHWgDR9CeJ2bS9ZQQO0NOe1SSOIpeqSgJYla8g
+O3aYNDdbJlGghqcqF1D9iiEiob2FmdfUQSnATpMbI45srHtD7WFCpU47uOw3Dv2D6LMU16H9PnJd
+2TyRNjSbzY+2zAuYE/3RIoD4BC1m8zJlY61teXPhvFaZuEUztYvnKdc1wcj0SM2lETI2CdCRicRL
+iDBHOTk2Kptmo1Kvjqr4Mrd8/dPZACqeqvoIg4qJ2jLUrk8qkbDR+KlJX72ceFDjA5wv004c+nM2
+3NCgBeDkAkKbec1QB+MIaHBGPkxPhpxclXcj8SR6EEFNc81Q1HcrHiR1HDVp/WFUN4vh5k62Ts/F
+40Y0q8bouahHXVExbd6FRpP1ULE1RQs3kNXawqqz76oxGgZ05yI1+6KF0xU3yeWK5l7Aqkk7toBE
+NELUPi3f94W6K6p+Ih1p0HvRIm2DSQO/PgnORntJ3SAL/jrN5/pAmnR04h5v8zOIRMTtNRFPSiQX
+B7/OwulRbn+LjXCvU5UO0SSFrMeAQvWNV1KjshUYbSGSCPTBCa7H0FZSqtoL8LVGutXghNMSPtbi
++ARCc59pLc5soWJ41GOTwdEGX+JLM+AMfKkkit5Xx7iWlxnMQzvND83Vdbs9bbj/BMUopgeacH8D
+vothyBjqHaoi3BomWnSGAXgn4lR0qe4bAszsXQB2Los2cIWbhiY0rcSP/MbgjnHzUiOXihciJeek
+SKqyLVSRbW1oboYwCHcKYxhR1QrQ9vvq3kIYhafcFORddp4NH0qUqa2ctaQ81gxmUqyrPZiAV3AQ
+xUJ8LbkoYf5AjFQz3mwqv62J2yDcLKboHW2OrAuY1K4ubQiijbwEqm2GS6mMCi/6hktbABNaNDdC
+YXPasqRkwFrBjAbvJHW8DFzulEgRAZKRtlUNQvemwadwqTRfgsU2QsPMPHN6LKzB1jqfRAdQbHyS
+kMJq/idYIFXtRW/4oc/6UGeGAmkaG9oAaxGOGWSmZssoObbIVUiHXwXSOjfVAOC3Jxrpwd1uVILf
+qTF6aFCH3r8Y6ZnqbqUB2JxrFjlkjC74c4l96Cpa2Dxu4rtTIA/oxYCPhFUzTOHgEsfmTiIxm0oL
+Kl0qQYYlYsGFQKqurqBhuAUZWnqBrcze5qp5S0e2Rzs5+liYpFeU3L/ICqhD4FV26eM5/nPNRH9U
+uXbvwjPam61QyOx4fY73B2qYz7gj7QKvsb1QQ3PaFR5oekDFF5EfARbvwoKrvQTVJXJb4Nvsn8tn
+MIZO1JWE3GcwRI/tEgIb6B6A6CSw0dS4ijxdMUl0yRlb0o6ZDnRwVvG/0cYrX4NZ77gEf7k8sl+C
+qdyqJg2n6EQREv8k/Db+c82UnRiSO/KQcl6rc1QjHInmNBKzFwliAFmp2EA/+PvFYrU8v64u505Z
+M3HS1wVse5x2XZvGan6R7YRajc1KlpXvkW7GKmnpC/w6jW8dnqXmsbqd2ieSkiz+LLtAi8G29mxJ
+PwKkrzurz+GDM/DuZ41NNmDlGYg/5bgG3352f3UVu54tDtFfqjdVVek+CafaUlXJdvjrNL776N73
+qV4C+wAM8br76e6dihhxSM0doToSN3sBYaiYSYFSwNh2j1jOquBi9kZUjChDYVQhtXapDRzJOWTV
+PgMKtrgY1CATKukIb4iqu6OKg1h6MbKyhY/Ak8SDAH4hhSuwCH/sq+q1eyKB6EezYH+bqvtv0WfX
+5JdhwasCND0d75jEzwpQXQIIrsiNF0MK6VgohXF/JJobYQwLuBagpa3AVBs9xg41tz04Ylr8SpF0
+OHu1qVy+AHusPB5UNPUnjEFOyOM3BWS4pQutPs2RNPaArwIHUzESoRMan1MVQApHcV3FruTUJESf
+wKLptrMo7q9EhI2F9gAoorge5WwLDabFweCnvKhM2vCmX1s5Rn2hzHXkx7BEDPpLynQtCaKCUily
+/EI3zNRlYgIlmOGIMbE6rZnKEOeiTvAHKW36h6SxZS3H5sqH6DsA0wnpSgKA/BZUKL2TMUv4oUsu
+QSIdkdZG0xdUjyCPpVQA6K5uqWOBCXA+w/TBVK0abVEAUj4pac3pDqrGyAWsa6hoDJml2l6FFA0m
+N0Q3VTf5Jg4DR4tOgUYmVmYAGR9zQ5/fXEi51eTaHgI5p5S96RYD1Yc7K0DlZjLqmuFi8Mc8n4s1
+q+21IyVhLs4sdQkEmqeaPGo2QRRAeZoVqFIZgC0Ul1qzumMBpotLyryErgIKTRDyCEyDubG5Socd
+k4iS2mNRu6ZQHNJsegGmosLG1DrH/minnG0BrhcVs5PJDiiMSzUkGym1aXwJ17s3DAcIcrOnqQSb
+wU/0hkMXQYMl1fVg9YC/+KhIhhjAxUzblXK3AE3dwX2N+ijAIuYGgzJN4ZLB9vzKjS/VgF2DS4Sd
+K3qqMqJv5DnDnGamitnnRKAFMFXyEQpzpi77w6hBgjIBFdqgBkvApCqFIUF85YKE6KLjEzkkyTxd
+4UkaGq1oE3g0MykvDoDDc0vURpqnxaYABlR+8Pcry0oSHz8JT7TeJuO1gNmDY7lex4U597PLm/Mu
+dWp4vTA/wzBEUbEeC/OwwHYZyeTdsIJbUEKlFIP7dRFJyWDJFV21lAmwvejVWSg4FjdgS28+ctqh
+YauAxWx7qHlsarWwbWPgmVp8khQdYWpj2KwbApx7BYaZSch6pCUTlfUszwHahPv9n+NJEihSJ8mP
+IofBF2MzIZq2m3xVzdCBUumUmIYZt0rSNxawXtxCX7JZ40WW6ybtJKlXIDBNOxHYjCadeetHATex
+R4jYaDEcWFSs9jHGcDx34J78lY5W1fNunnxEuVCZ4OOHQIcemA1SCAo0FEr8zwd/7zazi6q7jS1u
+HKbBFs5j82mZOV15BML63JjGOBlU22xmtSMBD5AUM99icpflqJZXWTzmeTR76NWSxw==
+ ]]><![CDATA[
+ GTOTB8VA779uo7h5zoIWqsftV2cxFzBYOE5R87rPwBDvqq86gMVDseFR0FdkvKh+y7I13OUN84IF
+iSN3Y9BQGtTuJ/W1mXhTB98QZHRUt9BbJBhyt935kCxaCgkwibqQsMO1gmyB0bQtj0x3U1NDrX3J
+dLomzqS1AM0VAdj8c/i9RuvDDmeGT2RiJ4Zgy/PhM/RCSyD9OkOkJL2oFJClNGa221uL23iArmam
+NZrmkD9jGgEkPzWhydmqwGmi5wfpMJi1Gr3aVAUCcWrazZyumUkYRDOxu4S6XYXUc+dgfRpxPyKB
+8kQZMFDGli4dPkPj1yQ3GrDh5tCx1jXc9GrR4TbB3JQSuuIk3SyZiF18Al77secTSSSgYqG7Kjm0
+OpyKexZ9P9bT1dV45ivQqCjY6uw1wWorbXW+q5VX1tZthMJQSIi+fLeVx1CI1Rs3I5/LUqeXiQmI
+p7ZnHbJCsad2WGgLBqtfGcChqMkSsWIP+wzuHciVHhtrJfPpYDv1pJUDDF7cJSIIu/5uhRoQ+jc1
+DAMlxRrjCSUjwb6V/vRgPgtYleq22dbas3K1jETJZruabku6wJaCBp+uCdYoaRboErZctYw0VvP9
+Spl6/70G7cDuEhK/r+52MdwoO8nWt0KAkgHqyw+myksxrMZvaV4b+HdUk19Om980V3cDYgXO7MVA
+/MmZmcJRPBIEdWA6HdAbkAa8qu59Xxs9OrC/qe1ApuUrSB6OBY/uHNSDNbPYqtxApLplzl5doHqa
+A453bh5o+z0sXPY6yoPnBBMiDYgMqsxWXdhYvjpkL2D1sAyJNP/gDNVztb2NiJBo4F2jJpCXlwXN
+N6vfB89ZFzv3By/P9cLZaWjFNwFa1DeoREMUnrfPpbRsMUSInxPT1RdlIz1QgVtKYUGBrdQ1ri4o
+zyzZPJUCm8s8BLVIBEOUJKM+oa38FBZNYMITE23SuPyGJVsugET2WdBhAT1XC/eTQOrjHj6W5Mhd
+ROXyLjnGoZbr6Kpg0c6oAiM7BawNA+6iYzIzAOq+Vhfy9LmXsV2VTuncM/mh3qmBJc1HAVhiRmzO
+ETi2+e9vO/jQqlks6oP/SUmf65SRM9FMspYQvS/CaQjtWgn18834zzX3S7kgoSrjsl21Amffoofo
+G9RIgIV2vaZqR17vdZecrEW/9qx0dZvZz/OkdJEJe/36d5CQtGijknr3hSYNW1Bw9ai/vGJc8mrv
+ofDKVGgJ9fw8T/8dlEFMmpaSJdlCX4RbBlvVSHbnMzEwByysSPHnNK4qRyYAJq1R9MWlB2YbMs8Z
+sGxDacbPkS+HBjA5hydnS1bNSId62JMJbI+vf2zLsrCSrBZYWxciCycTFodH+T/H7xu02iqWIe47
+ZBJe8byvHDybsXiuE4DJgyva2HbJbEYLebKt38KlsteIKFtKaI60iEOjr0TRCn+g5/O5ASIpdg+n
+RSqqOwOjuxUhHhoXiu63RvSbOYFRJC4xUL7ASqOLA1zFYEht5uGIlXUthrm4DchCE6Le+AQxMDC/
+WNpZrBavhAhws2fEQqEUUmfO2wpEu9TBHjcGcE7MOGz63qGWoPqAARz6Psei5kvLQnCbCD5on+sW
+gorfr58P/nxaXtFUNdV/PjrzFU3QwaJMvQh8LYEAe0GD4nghxhMeeTVideYayO4umAXQthW9HhH6
+UZho418qniQTEn88A5Nqxavhv59hWvgrw3Zw2I3Fj5gEjLKqncnpZUVgg4wKg9wZVBHxOHgSsMmv
+sXvACxLk3SEWhya86IIt2wgVehMDe2lGiUMfSAmphb/rGydovoRshtlIB7gcjPkaANSqLcxS9CVk
+VgChCQzLUg4ylrvjecM+lolR44RgfJQAGTcxuk2SAdkwG4ZkdlXaMQDMtMwWWCXdxiiqr8AZdCpN
+IHqmZdYeuakZJzqtCWQGN/mmuoUZ04qYJ0AzKT03we2lbi4SzXByw1uCu54EJFzzk/DbeOe/brCE
+gay44S3TXCHw4aktEHQnbV/eulzhlo8RrASgScW1cfJG4O2LfmjZwsfxLxIQ8EWpfQhFCXzF9+VC
+v+tweSdr9Vy1A1qCRlbXjo61MNvntz4WRoLLg5KS66toSVeRNEZmPd5mq9+s1pBsgw2WODV7/k02
+fgkDhrRg0SEWIKlACdoS0dhCx3KxSHGZtUz6kAGfQ8EsHQCYKBSy3Fmo02hcoOzNbVA4p6q2y6gB
+CLavWEws9SfwgRx/7SSY0hJYRqZEAOZr+dvWDmO9FIHZktkloccsG53qyyLieOxl0Wnwpfe5hDv0
+1UyU1GPdbAO3efiFMJlq0U2AshKeUyO4BC5lDz4JL17I0ksanObZ9sC7k7V27rprRQk0q+Pycdds
+PGeSd5alCcXW80X0NSaxSrjP9iy/DP9cp5ZcwhCXiU+UXZgQG7mfj8VzAZ78Ejzn8S9kepmHOdTs
+CwghYbXCaOnWGFyYrpDMLQjgoLCymUrg3wisX0XPfqTpVGbVbKXnEjaipZUgqAvQtz/8uarBxRiK
+Ftk8/iDXyFSctC4UxprFKLhnB8BK2SJboPpzBR/bGXfWLlueYQgemfmqfCkgZJi0HK2Fgcpz289d
+xMhmLImehQgBx5OJh8NeP/+xDpTiqzVFXgfquaJpRSE+x2/EZ7+QxLmUNirW6lIQ2JrfXZENvWAD
+rNIOb1a+JWgrAoff5vebmJwT571iRmZOUpfqt8Z1k9m9BUj7ZVL9RoBidFo2rkSbSI1uf0ujWlZk
+qbR73ZawKVeaxyrmFo/mET0lu7XFzYCTlplUVS4DLFi2JTOYFNxpwzGVIUcr6yiPTOv8+evnt3WN
+qX4zuCtT3ZAW9GEsHswpSrRaSgrjqbHlrFsue4CymCeTgS0GV36f7GMxFqq4txV8rAPlI/yS0gjr
+oglhzXoSKDAFC2oslq0hRsth8YtCRL646jMzIzVbY1393Aikk9sattWpVoG5pRKirw56mn6ydqcL
+8zh2jROz73V9CfqenfWceNOrR7MQTemGvGwkIdtEwh9dQdfwdYGvXIzHNNv8vWh4QNc46+0GBfuF
+RGX6RL1nrjTO7QO3efiFNF2U6+pCMhl3IjnIt6APRw5Wn0pQaU4oADXkz6qKfNBIoekcMrEZkfG1
+aZMyoP65go8lK1DpR4qnP5urrDe8B7HUJRPQwJxcu0cQr1eKldgQkzZmNkn94p1cNCKBraZQhLDW
+bLA6ogVoKv9zbdtrZ6UHLJjK2S2zOecyHBQLSxSP2lBzkvTtSHS/bTojBRWZ2QwjGtFlnwvVp31d
+gq8tUMqCFzI4PUmtTYsr3yoIYHigY+sGf53m89GxLqCJ6Etp9+u///TbP7Q15BfUlf+59pCv9fET
+4iildY0Xwl+gVDR3cCuQfwCtfndWL/6ff7NeQtpeaX3sBfT5t4LY8lAS6y9g1hZsNmWVAtEKntYI
+qWp1OAHWaP2DzNa8gN/4NeuA8Dp4RGl3sU/bVZRZS/j4z+zqsYFP6+JbLl3in9+MsU2a+U8ak8J2
+41NqXy0BD+3OI/E4wdo8BOvWvW3egL557cGzj+1sySmzahOMyt5UugK2uH+ixPd/wN8bTJ+P5XiG
+58O+4ezDWvvC8/vPZ/wZWjP7o6NGULYUEhmea2O/+uzflmBfAdZa+uvqCfzmeNEeQPvggXDHwWm1
+hRAa3ko3RF1DZw/zB8I/OfHhcE6n+O7Ej+RxJKQ70gyv5ZKjiNcHAh2xWbvxotzO9aRy9ZrKfIGr
+7vXTp2nV4FqUzJqAybmiKEUP+YZvAzq+JXHodfCFWulfuU+LtCPtSyxraI7vqWZrW7I3wH2ej8MP
+h3k89nc0ciSoI+k90GxHUfu1vX8+o9ZOIkiPgwsM0buzT+kOtrY/Aqu6o2idJBQIzAnQi8vJ52LS
+nSYJ0dG1S0DcBZNU6HHbvQG/EX9Z+/5sgxEKrc2aZNZufRTFKmwrMG1T4aNztdp9rpnr1falredf
+gIIDm+BBCevEH2RzJrB31Hgk3SOR30/NDrZDTN6e0RcE+ptwwPbpWN4dYdAgDulsLQ6xP7SjKcyq
+12cRHKsthJEyEqVZeRvqZHYiaFlahKGUA3p867pgwZCviVj/ugcDOhFYF6x98JT64zapdhWSxEDp
+L/a6AuRb68Sy3MQDF1+5bqyM8l0yOpDckTaPhIyzwozPs4pLNXqDkyPy3mMaLiXp1dy69uWs1r1P
+gMFa2iH2PbJx0/p5sba/GKoVP5Tpa5cpKeV3e40N5uwVJVxfhwqSym3O4ZtCPZHFWyVt8mWlSG+I
+cbzu6d05n2jiTDwnSvvLb88Dso24EPlExRFn79CrZ4aOYJHINT6OwoalLOyWuAEdvWFKz+19cNeW
+mK/TnvF7PIrTmR2OF+EHS0oK0jguNQ2Rc+xIFPtd+Ec+NFKy13gXS8UaL3DtWKNyh/RaBKxliqpi
+zFtA55+vYIVJBsHrpI8Vf5xk6ttHluJwWNBh5Y9tLtk3CANOUxurO1qqNgxMU1suU5yVjmoAljxu
++zeg779J97t9bKG8IbNGkmMhrLS00eMNLS7XHnH4RPbpYO4y9WP7Xy4YVWnfBgsSfHAuuUbdFew4
+Jfh1LQbTJhz7xwl0rGS57vvYTHFYrZV8VK19nqwguJ52x5Zj5YDZ0xG8O67j2R6p4IGzg0z9wJ/j
+NQ5pLwk78Ex+qJNtK7P5fJeAWuXRgbtvsUdxWAlQm+q8INyA34ivS3ZPt8FJndSv00a1ENoaYlvP
+lmR+PNb8OKGlCDyP83Tu72jkRE9Hwntg+SBSPzD7RZGhw2IqLQ7p8b7DtSeOApsIVHlKFT6DVXkx
+kBXULZ9UPphFUMtds5109dr/NF9HN7RT6bZ7A/qBSeDB6+BojWBlUmu8PCn6yQKsp43CtUVknt4X
+VTK7RJrdtvUCFBzYFh6UsJ34g2yOBPaOGo+keyTyx7kdpOoHCr0//BPdh2N5d4QQYLpMUNBNSZu9
+QtPQj5Wo7ah1VsHTBWJDHtnPQEak/DyPxv70CVkn8q3Utfv5tgEDOg3kHtptMPzUYiHYp0XEW6mP
+JQRa/2Sxlcc9VYLDtpJqu++o6ERxZ9I80fFdpH7s0w/qgJQj+o6Intqt9gKn61HUhtJobRqkKaiE
+Kmuf6todd0hGmXM9/0opCNztiQohbP7yrV7zfN0kgf6c6fuwj82aavc6afJNvS4gacD062qlXlXj
+vkyreHPSR6o40s+J2Dap+rFFN/c+0XFC2zsUN236eMGL9e1UcUzZOZrD58oFmohKoCPZHpR9cNby
+UK/TvsPy8UhOZ3c65yVcI+i0yLJ70Haabn8vZm0I6tlThpmR/S32qDY0M8PhWS2rTRLcZT0ZVTmz
+AS+2TGBV+mhTky2+cYaumsnU+ACFSbkyWYWoQsclP6XrnPRyNSs0pJvKmWwZixdmkRGcO201yVoK
+SyiTGRs8b+30Yd/7YZXn7bzb+hFPR4ze0O9Lu/iUa4DBj0W8paKYdTZAh8yjDdBblw==
+ ]]><![CDATA[
+ otQHfD3l6ucXHKf2sjRJCKG5CtFIXVtDV7brHngiq9xiaJTRNlq0YIsAN3UrW7KVrtOYOzKrAlVi
+CVJU4MXQi6Iqdlc4HufoSzue+YM2nkh5j74nmh8IewrVz61/EX7A0xGjD/T71mcR3oWqjiE6QVSI
+krL6qNXGHN5FmUQZyagWOuQnIABV5tBEdAHOIs9oq9rlzdCCzgaJW4FXG8CBWGzDyxhJgCW4BWOs
+nEidOVY7xBz8tB6H6/ADJRxp5kRgN6H6ua0vwg84OCHrgdgP4kWasEuHcg9QE9SolRfglLqhKyDh
+VYGxEIcI+RJYm+uAuwaWX98L1g1OP6Zcu1nVVgCtqaCRQqZYDpGpFUNL1BUgMyg0s+hlM9ngjZoK
+Ek+zCeUoBEY7X59FJfisZUwFqKEjAkS9Br1I0Q0VTzpwzDyJ5kxeJ1q8SdTP3X/5uTxRdUTqmwOA
+ByY3hUvhZv2a3VHYybLyEdQAqPLaA9iWWhM0VfCCI+AgcLCZdaRYaFW0Rqk6KmsdnfY5HJbZ7Vj1
+Vo4l2lj0PYyqKyH1VPbQUL/UrcwFBeYizYFBbQylarF1AWoA0VsaOJLLga6ONHgTqe+b/FpIeuDj
+DebOaIbOPQg3K61UOeD9kxuuhCpRqXrUra5dmt+kSng6b8olxzYllZYMz1lTN2WxoGg7qExLDCoK
+q/pfqsa3CswpxW16zaQ6WwFqU4o3QCpAz2SDU1G2hniz9N2DPlLFkX6epLYk6sf+voigAy6OWHuD
+4aKhfDI2RvX+FoRz63lOF2dL1epF+qlQ/S5UbdomK3NNsGnJZAFeUvT3cXw8kNPJHQ55CdRwmmZ5
+By56FE1HcTQCTeS4H13r3GE82mFQPp84WofHWne5XYGhDQNqw0X5oiSSClCqI3/jSsTWpBozHlQF
+ti43HtclqVHwueanRI1uNiLN4OYEj1VAKXgwXoFHNeej2ZDqwIW9CS+gWCObAuksPn77k/DjQo9b
+Ou//iKw3aL2dga2ty5mrQubvU0fcYTEFlw5yadBUFaadaw8oe0rV9y8YUtENTdit3HEX0tAWqakh
+oFohOwFK2pfM0VQRRDMHquCjdLr2u9VyFrgGUl9AVM7IZnIokbCo3BFYmo0C9fMQP0kFhxM/k8YD
+Je+w9wbNL/h6itRP3DlOpQ2DwKXUqi0dRYv07MeKXxQ4tfFulWQFmIJwTExuVoieNJhZTiWsUIIe
+ET1v2GZMDDpO1GS7Ck1frh5UyBe05JjIFtGZIRDdm7D+PJ61l8dRHs/8DX2cSOkNzd2Q/DRTP9Hy
+xUUecPgG27ej+SBiowSowP28QmKA2tENXpIKZOzwoUAz3Xfrj6vAHvqauBUJG0Mlr1A5Q5lqqxlr
+vYHmKHmaK61nl4qSFVlFq0ICJuXszIQjrx+AqBDSzSA2kxtqn6SwNvekmyOFncjxJhQ/l//Frxz2
+esTKGxTCEW6PdtbadQDC/ikqsxThS8XQMpI8zrBl5TLWDEFN8jVKXQWFJbWmoCLcVCJugzEhRToj
+Ua9pYoLV/Y+qtvcmZZPMOjcZgYPe1Ho16qoBKnCp6K7WOTMKowWAHUzW3i0yq3iP9FCCWzCfh/vJ
+lR0o4UAyR/K6icvP7X8RfwdcnZD67gAQ3y93EUdo5qxWafOsSSstKdDEfwT4sOqJzJCb8BF8zcjd
+1DeY7C2qCk2dghHb5iwDVlM3XtDM0t9gEpUNoLrpUHVNRNRgKBiormLfR+NZ5WPN5T500mhiXxAh
+2bb1jgSO9HIirBMRLoH5uccvwk/4uGPtHX6LNjeTkd0MWE1fRIGlqKJRg+YtjjMpTej254bkOn1Y
+puV8K9ZmsrV2yc34DoqP53E8udMxL3l5RXVDR0Fpv3sAuMAj3+u/HX6c/H9Y3DZstr3ZHfcKdQIf
+qmnhOuZEW67G9F0wicFUWHVykgzGZctFTyt9L+3BgS0XuBPgJdVyBkm6UYJ05vFc89++wQv4f7pJ
++nV7z6jutyjImuWsKAjL9J9Jn9hxzDRKhi6KPWwJedAcOqIYzUTZ2k2nUtBQ4F21PGQm2U1DloyZ
+XJILOF1LZX1wya8oW86HE3qPB/Hu1E4nfCSFG9I+nqbyBwLdlljDNG+QJM247XVWW722/hSYxdbi
+BWj6LKC0Ule5DQlbjeKzJE4rZxpqu1Fg0UCtMtQEqUCLtIKXtGU3Zj0Q7v6D4+mcjvF85Ef6eENJ
+N6wd7OUPDDpmRye73pdvJdKVjY+xmRilu6iycrP2o25nth1MGva7BThCHqqdoj1s0oXsW1sFC7BI
+mEXVuHQDlWTSZ9o8SUVTKWVshMHkk/Db8Tj8eJaHU39HIm/o6Ul4DxQ/RfsHVpZJ9YnBE6ofx/JB
+81JrgXRh2d8Kl8IGCh/LNBOGDU40D+FZmralnILPnJQ7KuOQ7nRiMLxOYRhxJ9s/ylKkoUeQVhBL
+toY/+r4a0cN0L+wI7mmpsicTlCkhPHC9FjfB5antwgSuLTAFKGq0AkvjDKYDIACUXUzV4hyES9Wt
+6dOJyhb8SZAHwj0Q+dOKfsOKW2efKDwj+93JSPskU1cu9kp7NcNVGqrt0d4ZG3mUtAbzGXLV9XdP
+ySnWCk82VZvGrsISrHIhokmSB8Zf8IvfGAKDXQQYk7poAYjEK2Z4hq9A2L/08ok8GliYkrwr0npI
+1YMSaKuUoM7/gDyOtHQiuhOBPk3pt426ofaAlSP+3iG7QfS0GZJKmRCyUzOiYl4BgFVNPVO9CG5m
+lYpzAqciUYrWq5P1ahl0tVmHqnuXQGM3ppupoCb3yIEZqA0QURTVgsGKY6Gsxkg6seZr4R4FjbxD
+Zb9a7AS1gu13j/tAG2+o6Elym0H9vscvgg/4OGLuHZqbMFuZQAL9FNaT6uasD6iuhZZNscvwtn3j
+BJI2rdqhubeK1foR4DAX9Fs0H8/keHqHk14awkBBbDrXN0V3wKCjtnnLEDfgTBbTH6eaREZy3yya
+/vgzPDyjwWM5RpIycwJO0a2EI1lkTVO3rYKSHof4P1WffK7120Pufnzii+bqnBktP0eoyxHQQjd4
+NYsKOjtXAqmjo33zYNTAltE1tJmzgMNQYkXza80fa1UNG3+Yj6Kbl2izCDzx51g5Ivt4LE+8fAeJ
+B2S/4uwpdT/xt3koEkMC8nK8dLVP6abQp0aBRX2I0MaTmUA7syuq+ircv3KxSBlbNLxEgRZaDCtS
+K3RbCPsXYHQjwxPdn4Qfz+Z0iMcDP1LHOzq6Ie1gUX8g0C3q0nlKncLZsyn7xUlHNvi1YydkK+Sv
+ATHR3UIhiADRqtVwFKBa+WHoCC51S9ZasbiLnNXNeAFzkQC5lsBF6GYwebkF1efcocM8JkTxRKeF
++wE5+HiYh2N/QyJvyOlAeA8kHyzqD8S6xU/K5Aq8rLwKRO41pupoKzQxD19st/xunmD1qmSaDOFe
+BhW4vyhm+t6lCLABk3ll6Xrv6GIl+0dC4opSfJ6D+4uOh3Y43jekcCSbI4E9kPbxNIc/9v9FF8YT
+VyekPk/ggzbaS9UiL5yeBNGkk83QSSRO6w+1u6pQ0dqykoNuCoO+Rh5rZo1nb3V3a0j/VA0IsBgZ
+OA40fAUkX51FoBKsvn8wiQxa+qWOl3jnJTVOZ5VWvnK23udQvTDqLEKed9HA956kdYnAxA+g2I1T
+mDezxD+I9RvROJ94EtiREk9ke5OEH9v/cjfLA1UnnL7FP6rcOmGasIfLL44S2F2LWVVRpyoZqUvZ
+DreRM2Yiqw6oK4jq9MbgUejn6LlbFIOcz/I1hWSXS6JCbXBpdoSdZuCL8hXCtAPbbRU2hDaR5tCA
+dzwajCmq3yGAA7W8oasHDW428sf+vgg/IOOItnc4rqQwafrtZ4QUQ1ngbJY2UbVXm6ISVqpv7sgI
+3WJYLMRGGkwG23ZrKX4Pw4ezeHdqjyP+y2//27/99g/x9//+2z+85v9UD4VDE+mVOTi1NOiC/yH2
+e4nBlx24SX4BESHjTGGDJ8lJe5m1sKXEvgQCdQK4KVqJr4PLpIy3Zt1gLyvY4Gu5a9ZtY08smNLw
+34mkqRmlSF1eGbVJGwZbRJCSJ2xwaq+QPmxWvCK4NofGUWt9FuoN35ipUNiW+gvRLMrEBFH5u1lf
+rrP1/IphceHQ7CwuHJFtU2/Stb6hej4oQX8PI4obVIX/VQt9Y8ietOvOti2qhg8UKE3942//sNHV
+a+7REWWnuY+reL/i5+5OaHiLshN+zydxPLTz+R4p4Ygyp6mJeLFhG5weWgJSTbrusY6keyQopHFP
+vx7m4kMTv+aZxZmLAZwUlMg169AOLn9Icoz5ppn/azNgE9lsGo4OBM50w/yWLirNFtRaOFYFlv+f
+vXfbtS05rsTeDfAfzosBNeBTPfOe036SjtBAw/up1W5YTw35qG9GbUrolmjw7z1HjBGROddau1gU
+N8uyJBAgWVFz58prZGRcxkCGbdXH2ffQ6ckEzYEAX83Dq511L5Z6+MnAY3nRv5cj+WjYL+fo5Wx+
+NPUv1+nlir4a9odz9HI2X039TWep3sj4+1LUlPVoq1IT8gc8KwOV0tlrSpnXYyTf/VxjFNSIlfQP
+x3/xCRkR4sYs8YGEEsZjrwrzKZ0kDviqOkmD04G1cJ5e+iwDACsFEyK2+CxJrrRY1hoTctnuafpK
+PUxDbK/YUI/jfP+nMs4/eLkfkN/+gVhuT1Buf/+r3wvO7epqdqJvA9Y9HHrvMODltMnf7nLAIJsJ
+9HZv5yP53g7A3pYKMtQ3ZCS0Lwd5seAwuk7+QTSaw6yR/b/FcXFYFaawLo3US8h8M7hMTuIifzWg
+8Un2wWNhCZYRDJEgG11cRbs8gENHwJxOJnZQ2EVciUzYxS7iFHpGDiqKrzJ/cFHugq0GksYptlHL
++9Pfo+y0qwfGLPTVWAovu29QGJx/ie/RStb0unHgzCEIT9Y2X7K2IVTW4pzFjjc+du5xpP11B+Q0
+PGkIqwjoyKXexYCTAqHzXFwQiGJU5yY98nCGQkMd5sw2ZzgsYqWepAb47g1Y6N7mpibnyRnCNz2D
+RNJSvafo50dpjj6OQEnLzvoq2gPjJT/1cU8EOzbz9hDYp6FfcAzXi8PBQSddGV8B74touO1pGDrE
+WAUvndEAxEZnC6DcM4DNYPwl354ktZMJYYJy3jDNgW95vcnXn/dSnYe4kvYBH582hFSuF1FxYSUd
+LXCNU3cM29HEXWp7XKehr3WsTH37Subbg/i8lXylnEbLO+sBbivOb+QTdrWQG6kADYCIm64aNNU3
+b2CI4rwgu4CMrbhluW0K8/8hhP4UDn2vMYkNe/QUDv1ZxQY6+TATOHlJEpoPnLjDG2kseGtPxyhu
+Qb0c6OaUJLJbs6MtGPAgJx/qUYLNHUJt28LuufDQqE4lnEosfOEiVN6uHGwT2hUDIcqy83Rhjgaq
+czYZDQkknatsIssvhdB5Yk244HiRbdgctPg8OIH2xu3q1RSXIoTdN8F0DKVrexmm9w==
+ ]]><![CDATA[
+ pLIVP5SxEBFSd8qBXQ90MDv/ssW0vtlNYM05XTOBIC6hQSyI2NmQA02Wu6sDU+tqoDn79mGId1kf
+k0HPdjf2rFoI5Wl7JFogYRQ1UomPe5OivB4sI1pIQug1XLvvbAHJRl3EF2chzw+AXrtmzEDVIEsi
+lDVg7VMJHpf88I0AjjMSzQH6/qjaMyyrMTZDQQSrzEXLMGn5mLwlUgYbnclw6gBtL/BpnETLPki4
+wBbO5pQMib4SGxXJK42RAdqK61Wyk3+ZMNbR4cETL6E3l+s4Jz0Vuebx7ZG0ZDVu4oMJW9HwSVMB
+/YHTgMIewL6WgUChlVRRmELVnk5c2Lhm0H5CHyexVeF8wcHZq6hkuz9TTH0R4drYCOfQlWkGJmnu
+Tl4XqH08FglTcATh1h9BA7XsBiELt3Xtw28nGtTrJ52hphjYjBjNrFSZwrNUZ0rrZONFD/rILpzB
+7VY3unXn6myJacXViFBdV4+glJ4sp/zumvI8iuROPJ+diWoBJiPrdWhhjMxWmgZh6O44ytXV6mUC
+CbLZNR2AEk+RrWzM03DYOrrzlIEA+BcyMpxWYkZTRDgt3ASYa80AMCwOEbA0Z2IEGYeznphLGSZh
+Dx6Rg8kT391+FCOv6hkgy0F1XELbGitPF7nBYr49gmsKnAfkNj2UBaZPaUgsYxqg3Dk7ZyPQ6rOz
+fVsprj7u1fnGJ80GU/1dPGo9BedrShuDM5UauZKST6MRV2ASrLbUzz6MQ23FIrIkaLVgKUzAzpGm
+Mjc7F6IM10hnjXU4RWxMShinmufBM5lvzaPpZt+MT/ArOSfAIPERMlz6nPdLGNkWxqlsEP+eAGPn
+w/UvWJcDXt/B6vEYHBp/OQXDf3jq9SU+GPOTom93Ug37scILE1ZkJmh7ZYq1FtHq3TSBSYxjuKRy
+0cdWWUVhOqd4l3IPbYBLapTmfdDPTVezxr851YWHh5AFz/7n//iv//S//92f/7fvf/ff/ubXf/Xf
+f/vlf72elP/xT76CzuN6Cqd/9eVf/8Xf/ff/9uv/8uVP/uzP/vT7979//3d/83d/hY//1Zf/BZ/+
+b/gvvND+nJakEatIQZtvhu+tARYv9gmpVHxWjBYsPwji8AEzKt9jPN3LPBlw+LkuMHcyDeoUtOUn
+r1pQbA3RNo2xsX3nmUUeVEW2nZza/kiK6b4awadOFHwfX8lnXaeTBZeAs59IDitiwK0ywlBYWYNX
+VzwQAxXZWQoguwlk8uMYjtbfyA8xbHMIrD9z9GNxriaiZH2PBpqD9YuEHT92ZidhO/jEQOhX6j0t
+hC7rbiihc2hREt7rTjh8dGcFNz4fqquSNlrwMx+aHGYWca01CdCz8SQ6WpPQ4rDxJHLOdTiqRaNe
+WObPPqTDhQ8L8f0zl5sbuoiyOtHS5FL37nx7cwSzF14xk6xygwh20nTkoAc/ES6WePyKtsix1AqY
+dFutTsmjmylP51k3ZsPDlzoDrbOL9cY0I4RFewWk4IV6NSPodoqzMR3x9Lzknbf+nFazQhn5uMiC
+xWsQH2YRadk6ffe/v87ekEuo0pzKxnNNmTRaNhaw3XUkFX4QwvQ2WkAKFNI/DYFQcg5jtlsufofZ
+szGrt2ZmcWk0iUbD3lwx9UN8PAP7/rsv77BngMkHyTcgFO3hEW9nCP0MmYX0zRvo/XBSo356A0a8
+RgajzG4976RPVU3aPV1jNMea6IgP+MUlb7pTa+4aoJXr6+o2cjzyWrbNOXDNveSymWHEkb8Wm1ee
+HyEJ8O+h0vSwzU5Kdi4mPrhdRMyeaN1+tZdpbT7Hjkdj4jYW1cjo+tbsetINHs2fthYYo04L74SJ
+m1th/ji/Gqi0xLP+2TaWtOyIX0eqpeudJj+fYYYn/TrTrenaaE5raeaLJvBwNpLpsVQ7/c43n1jL
+/Xj8OzbTN1/YMoMDsweXt1iLD6WRUTaL64/lo7JvnY2qxLekWSRhKa+Kpy302frUclTM6kwHnU7v
+sUtqldOuDZo9fTKbW24/PmuG0TiYGyzvpNkjyLtTDtLdQcgbc5kdmiTgc/OJn4Q6+N0bqM1cAqmQ
+l5vC7N+6ihrCfOOHOXQBMjnoUE0HHa0cGFnPIHRDHVk5yZxACS+ndda62+qQn+G65GlFC2JmvWSF
+dFSgnenxMoF8+rdFHh9gzdKuxpwPOdeeFuKzl3q2IPdppPt4d1tw6pXSlJ5j2vFqXY9ose928+mK
+H9kym7753TsPMdsfrg9q8BE1QsbymIL4gn+vGjGK63DCe39v90TERxO2wam/CXOOJ2hffoSytyB6
+u7IriklSprLyM+wNfcyRXc5rx9BjWhiKQ3qyzeYW5Xr9QC5u30InD2WFOrUwOdc/rGrUwmAxB07M
+m+OtZREvJ+3WGxre9CFD1Vyn2mjGJNBdrmsBPrEmIUtrJJShauW+4Yo5RQ8PQ54uB7RaS/EbIHkH
+ZpNSvw5uX2flrMO/1YMba3C6VayIAhJ15eDJwXNIedIVklVkb8JyurrPpbqwidcqUzNI5RwWtaD9
+Optf807vXJhh9NUeUG6tF3vWfHdTuR3a32Epzx8ua1J85UVOZ9t9nFg4G5s3cKJoIPac7uETEa1D
+2zsbwKp5ADvZTUEgjqeH/J1yNVCOd4Q8gz27S8x8kJcQz+ehFsJxfcknHZ52mm0S6gHlQzbQc9Cy
+tEBhoX1wTpa2fY8AInfypHeBMn1oCv4WfoTPpp7u8UWrZAW95JaIQqEI5SfjVZSZ65YN+MvUunrI
+ulCBDcY0FHLrNsPTXcZTB7yt/LtLntzqP6sQcsp5yvnIRB1bwZSGDrJBGclZC/0fDPKHb4GsMwtd
+qJDQkzb9VH39y9OUlefQ9u/HU1bsMtzow0KCM4i3swq2KzmwP5YHCdfe5p2zDP+Jzv0V/95yF0SA
+ZJ7nd5cjO1FyQcJCWC2hAcJTVeONcQETpuzpktawSzszmyHrSXxPlhv6sgffVFa/je2gn/rdxzyI
+ZDMPkUNbM+I4MWE5f7pvKkTGTyZCHmQ4y6xV+HkSUzGfuxCda57HAb6iMbeJE6Kn1QEEODg8mNO6
+Atypk6QzEJYigiV6Kl+1vP3mOMhycyuchLxwc5yLbNzkJ0tq8D0KYkL+0E4w0CFXzsr3ZuHNERRL
+wk8CAdnKasynf2xlhPoydXGazSj1e244fjJ53c9EumqLVMFEz6HJHWXuEnaxo6U9yWtkMnsJmf2b
+t9BbUQuRF4hmu38sTqXnPviUw23cnKLtQAqyiupU8WrylP041tMxb+zzUZVdqMoPCKvnsT60678I
+HMpmBTszkcA0ytLHsNrnaa4QB61sTKdGnZMAmVCqSxYmVESNuWGiTi1idtwWyJp+jFr6VQ+8bzDt
+CWs3GqvwIqnMiYcaoXyCJoRdvsRTBb2QEVUebaj++rnhb2t7OGMXASBjd3grnYTZEnZbFNSK1O5o
+4dJkQz6V2B3m5aU8zWCBys2FLiGAKNqE6fdtdWDvl+/nOvn0s1k25CjtGBTJni4/VMhslbOnC1U9
+CmGizCDLv3kDIrux5YvCuTq9MnhmUimrjWo1xPaxEqWfuhazDOf+cJIugMUGIUfulkKNIpkyHEKe
+IGBwlKfmqPSFeC/wG+E98y0aqOQqqlHLTIxTteAIBM9duG2Bo/n5jprNRuewxCLCuH2bAjB+fbig
+vyCu1ZWJDwR5yem50Q8UjJDLTJeEivJLMoln+tUQvi2Nm6xSGNtrRL1COwQPBLEqW021Ssb0DJNd
+2+bczkHoW+lmg9NrnpsuCDhznE8Hzr934HcqokFzmsrS8SNA++vTdlYHwUjJ9a9jq+vb6rPeXQ2d
+py9FTdwmH+uhvFo+aF3rIhw/ZJknhhNBkaou5kLhzYOvVBMG7zz/Xst0sKRPPzasvActEOziuQPe
+NVyFhVyzmeQgYdcJrh3yhcQD+Th0eh2tFMIWQhZvPTfsPwkcQ2Y+X//mXHYS5NkJSg/RYw0Wl+DW
+UlER6grH9Ku5Btj07c99t9hvTb/3VHHy3IFvXnHy1cq4jpb8YI9V8pkdacIQAKcDzk2xal5WXkD3
+JV5SkHkQ3+TCfB7C24qa0UqcVYvk9b7JCfIxGkvuQy6YObRzDK//E4IMbiQhbKC9SS5D9C5gR6EH
+p19p56qZbF7yBz23VWEDV6WpI2Y4hZwsnE0RI6tjNDc2FfCYXqZ6qt1mLy91o3sWsVXTBug5Pid2
+qf2c0E9RLtpjMpKvrivmRhrw2AoxcXbDRknrcZ66Hez+pjBIJJ0CciCZNWfXRguv9XTUOCgkoaCh
+jJgATFbxmVZtcZOes/qtaMFeALMR9tMhWC11i31Aep2ERBcxRTfb1oeTswbqc1XQns4LawW23fsA
+bCIK+8JDxiOClj3UT/IRq0Aa86E8fnzY9QQwnRx/L1h4NJCz72N/cpi8qKrEFBab8JcLSr+n+rpo
+i5EKR70+SBnMLxPxcW1xuguvJ4NWbMPjhtGse77LKWJCpY4DKVcVb7BTmp48C7IBukDbbrKEh0Ih
+t4zFCDkzIxom9HpltRtq2iZgQQUMf5x6MZ8ZS1OXdFIV7yUcxIKeB/P1o2VCJkGlE98Z+ozkuKyE
+TxJa/psep6msvxfUH/S/nhZTl5pTikKdtiFza+NPetbk6yqQcBLvyCigk740S16fHW5IXm+Vtpqd
+Y7hxV7cLRjAtm3mIwRIVCDMkxHIMVs9zlMCuZShOrYO2UEUZLcusqlGVAucDMbmR6atymeWRqJEI
+JxiHczkqtLCssZwtyiFnJiCACavqm7EAhDCFT+nYG02l6vct+43CTNaH2aJ2Eq8oKm0kZqxrDw8h
+nroJHR+4cJB326QYRScuHIQHn1otEEqtBa5a+2HVb9tVbud0Lo1riy3ZUbLjU4i3aVoabfy5QFtn
+XRskee03sq11xcNaKtPnO/DuwIWt+xzXGK+BGXW305O0TViybwRL5FwtNG/Ya+INYILzBcTg7gAT
+qXXvLO7RUHWm5uky6GnDJVHhFE4m0talQ7O2Xc3DIbcLtTX2Yu2bFvdHUNnZ9kz1DMmzegfPDAHq
+bKqSCzMphN3c+eYtFAISmXET5CeAbjh0XqfMg+EsxNjIeMN9ZBy5POu8DlFbQZia3n6s/6CBlv09
+XxcsD26Fow0f8/Q+GFwQj7tAIjrtismS2bAWhO6Pg5hk9QDi1P0genbAKMiywo38Jf6+Z/fCOTUX
+hKyuxZmTrwN3Pt+A84Y8Cl8Bb+S5ikH9lW3CPk8XuikqUJ9oQSovEU+UMp4o+LZgbdJAu/ag/v5Y
+MP0wn7Q2iboxUAPGOTU3R+ErEBZhcwXLJF0KpztletoswuWsOX0iKysXOF5SYUBWDvWgze3vj+re
+zK5HB4PD2khHCXuZ1zw2TMxsXG+Z5QWUneEmOOStGzlUFdwh8UQDT3T4w2RULTVcFgJ+dlJhnIJ1
+F42ossaeW7yxA0rUr0QmlbDMn5Q6OAmnQ5tPXQ6ZCTbfvIFZ/PE4psNHr3mZyXEGEg==
+ ]]><![CDATA[
+ wc5w8Z+LCvt0xuGZAnQKiBtTv88aIsJMa2GUsKYG5rY/HW3EoA78TetmGVpNfXeBRwvuNYCWzA7W
+QNPdukvNAcyC7idsHHsDIoXGnqmihZ/8O13/JUAo5CnPO60vsJBOv/4tX+AtWiauvakfMu6gEYUC
+bjgSZprzSyCtRMu9eMseN7CcAjd4DjnsDXwpac7sjaMWRlwROGZBCgfA5LPL/eWUGs4Fza2Tm0Mr
+z2hhgzEDrtSs/rEjHXchZttNOB0qWVgL6EKNv2+0KNhjHKs3l6tu2AxTngwgfBAMaS4etx7kxFg5
+b7Y6zRQU7AJgFjmFOR0cNdxd68hQXnycNVZtlbSDGkfG5xF82RDyBYNtlgOCrgdWJrpQaYYAlZmc
+WPZuyQ587faCCBejBd1yuMqxOpqb7Dg0GMdJeww4Pc23mRXafRUKgKbGAKfUcAq/SSK6KYVnL2Fu
+C10FHvCp6bHXaLRQtEdkwkEIvAyPDI2TKg4V/fRIYHmO5es9t1stCbsHUAZxhhwCHAVcvcs8qeuy
+RwvTXbdFqAWn08Hg+u5Bm5s8rGBXU/y93N3TM0PMYyr+G9umPFZtbrabYYssR2zKCjiY7b8olPmG
+h4GUk7OxThk3JWwTK252+/FIiw53OH+SPWxaECAvvxKycOXon+aw4IV7Vm/YLmoZKGFhLKpSO2/e
+s7P4vbp5jmt7utyBRHP6fc0qJo7smB471C0GnlUZKAeRh6OF6laHAzlbqMNbdXdB63Gukewb2tAI
+st32a/JOoMTb5/ZYGCgnKUOxb2qOsBkw24ZfutWJOfVeN30cXN6ubrBxAlr9kvtbIDOhUS0QpNPO
+H22kdrNE1rMBLQyPw526HVF5TvKBfR0qMUh1KuPZADRaPlLsed99FCJ0MbPYMTtK9wCVaZxowEMn
+aRWxNz68qcv0LARSR/ZjbaivsRD+9lnhaCxEohsOOqt5JOooLtwd6s1dWFCRaUQp/qDn4yS451cr
+2neb6mD9hVoosUmOcH3g4+RBHddkyFZl1AU79+xbCyKkthM1Xcni++SXsV3nFArR2Y7l6T/nvuzy
+w96zMtwrjHh0NHsoOFV44CHMLFnhx9LHwD+RfS13djR8RBSqp7Zxo89R4knSvZEW75ERLPfk0bQ7
+/4wO5+2Z5JohCy8LRy2n9igzoyL+XDQ0ZuYMJ313/1GmG4xCwY3ZAR4bL7FHFTK1XLTg8dUSLSCf
+XGdtoXYjOF1dZTgyGZA8kr9TsogcP45eKVQJtbegTcxXLU02PaR1KToPVqwXXEubbsjOD32Exsnh
+fX2O3m9R/SGtY9dLhME93GVV3lt4fMb37lTHxwqYiQzt64v4+jdvQIjBtlWDsAHh9Fg8B+Ax/vbq
+r5jTWeEzcdk84B3BVZFR2e5z9wHEsVMcc9G+dTvSX1Lgo5i+HFHI+iKYGw1begCVgbRqNZgGH92g
+nVGHwxDZRln45telRcQP7FdFLbz6jFtQkFkjUg1kJqwGqttFk/wxdTjiuxnf3MIAYJ/xaGvhQcDH
+acY8rMVoDi1ueuNsm/x0g6A5Sah8zjpJ1cGFS826+c2Vr1+8NPaYoYR5m5FAxW2CqqmE/9BvM1O2
+37wP3bvsbnmgEy9PTA2AZOMymQ+PCGMecP8K63dNKBY/d2pSKGZgu83igYNa3ZUIIO0FkOa07mnB
+UtUYbqE7Ri3UaEEROwqF/m52haNeX29stwoWoS9QuvXivnnL0IsWNq0jcgPSe2ijpYWGffhNZM7s
+aFjwzRY90FpUBzk1P7igoovnarjDdXXtlDGXjqU5kCFclbIUB3F5XxN161cDSp9N7eYVozMqSrXr
+wQwU4WZ/gmYBBqN6dLp5ZVkBauCIZ3sWXgt/jEwVMy+MusPZ280ajHQBcDVmf0YYt1oQS8xQXllu
+VUC7Z1/74AU+rdxKFm0NJhMkE/lLulYn6o2NPpWaANlZwvre2Wf9Ok4EVYuOKVyExRCd1HMjHJo/
+gROvvjVkcvnhY89Pgm4vw1tYzcYmifoq4t7nMAtcs8Pjc0iLG9onheeKCh3hiwK7IImPLGn/9A7r
++h3nvpo0F2CnnvH8w+Bk+h2LigKwFG4WX8YIR7aybqDVI/vtkqcsZxT+j6Z3XKvlBqz8eSijP9yG
+qCXYRLLvvFzrxgYtcGzMAvB9ol3XRtrLFCY32B3b7CcSNKrO1bW/lWWH3uZDs1BkWhjxcZG3dRvv
+8LQ0FI7m7GzrvstQgJs88WOlZ4xtbH0L/TXFvZHtRkrrLZfDUuDcU2IWtFoIJw66NoLHZt0VMb1g
+EfbkE6vlUAsoAvXbxqkISvVFW84akKdENkj1vGg27OkoAvcFi/xMD/HPUpzKDV/OHDToRY9dREIa
+300lxyUqpyA/7PHC2qIioJdPyv80lyFkCOKkss3XJcxnOLwPEmcoIeaM+TqCF/0m1CUBGdfR4uzh
+4y+Rx3QS8oGyGdmqug5KIjkJ02Pn2oqH0ogRhlFcyMiYDj3Ruh5zoG0ikqpdEPEEKYendoLCtXoH
+xijVZecM4alw9Rb9RAOcQ8H7aFS0vca0Gj3OgLKVMILlCi9Ile7q7RbtzUjJPfV2PHVh5zPiebj+
+mBCR50ql3tQSSmpJqjDF8+jfah1Z+SGZ/1KUv5hcphf0nYDk8nAtiqGdnu00NIOm+uPP8/TdZRA6
+Glgw98Bv6OnZw+LskiWJPkrCKitLXAitEM7ss4VoGIVVU37So/HdW1gZWynTQZ57mCwHw5gU9nCx
+97AzM4hJcvOZiXdN7v4UO+I+tJyxcC0onxXdrb7ofblC8PHpaSFTqhmtUl9jfcbp3dXT1/wQva4W
+lBpmlMTVf45PZySmtMNXfSWi55U1hWVrvs/toRyUcKsX+fA9LWci0k1G9T26Dko6wktjezcpkeak
+twCyrI65/wuy6fkydT3BQJumBNDJg0K9IGsDQzuCM+zaxdIKlpUaCjuRgwoxSyjyIJvTsxpnOEdI
+wfRuUqa9LFvQidGRhlhoDzox1REgalrSdkMofRdyhaghPA8N+ggNz1cgMnzSsVF3ecd6RB/s2vHV
+nLUG15ryOcfu3C4qyaGCVAZVKTpsaECPHAyhun5d7nUjA/Nd4vlTZeWtzXiooaqWPpdhF/m6qJXi
+Da7d4lRWuXhytpO8wnZdGdu97VRWp/JPndgFhqdSmnpkL6MBWr9G/Bxpb8XSBJQ3N/vpNnjjQxab
+TMYGhDrWfWE60bQfvgyG7/lV7whPASOyB21MugkQ68fSrdfF8L3v6eh4Xkwtuutn4CB6Dq/dh/H3
+8nBaClh49mpUK6DdGq45vHyKPrd44xKz0sCi+5EBWLNnOiMVQJoe7DnTZ95J0Wslqr4JreXv8eQ8
+YkkFxY7nIs1ddEPZ4TU80egy0lziYTdir3uqDF7TTCIwLJDq/obSulbfiNnj9R+7ynOEK/7voczC
+XuNBr2oVW8/YasYweGjEtkpvLnclg0bOeHQOZnGwnfP07HyFQ5E4eQ5Ptx/z9Gkr6xenUKyHiAxd
+FlUK8h1CyACALca5Jf17Cc9in4UXjIERCFcm+FMet8TJUyydpA3Q1tP71Vs4+ZbQ2OyjhXVwLZhH
+4Zqa8HUe7r/C/I4tF31dDOZpeXP5GRPhSWhgbTp9+1h/KPyohiOOQQ5/68hesWBm2Nfd7Y11WJQi
+cHzrmu5hqsA5ffiMnTUQet3Y6XskHS3I7GzxoIBT//DFnF66VBilsC/z8gogckNMfFNfy0deY4Yb
+U3pCPj2Fs8mM8eRoL1trIo4xob03VhDj8D5YUjaFVisz9/TnJsQI9jbvsZxemzfQPfqly7HSU8bv
+LJHThG1lHbVgsx51dR8ORjXgmZsInVVPWt5cV5DPQx83mSSI5MzVBQ+zHWR+wrDy9vce30E4P3tQ
+rzK3bzS6s/RLjOUOccs/9QCHevrHcgtiJy3ZvSoqGhBBgxVyBF0YwpBMHxstKD9WKBa/prS/l7Uy
+lGe+0Z1PiULthSZAYJOJi844cfaAKx+cQByMIlOEunU7IYEh4kMzKqga93Z8rnw1myCaowBElylY
+ScD51aLdor6zxYycu35s+zTSYZLnSQyyU1OmcC6U8bEYpVNcC405K5GOYGntmqDh6Qjl1NHOk/d0
+Lx7URsr7epz07BFd/KD8kCYsXisgIxWJCyWrkqEi/flFC5ybrqDKJVJS41dmdWhHIZM2TA2kZQyX
+u+eqF0+XGisP1b48tPLbTYwsEHlGatyZvXog0q616IPr3UoAsMiEOXQ0EDV23hSPpq5iAMAvxmU5
+VpJt78Qc0Y4K9lGDMxjaaWbLLbL7M+4gp9g5nWcYaCjKfxhHJOnXvXpuHHq6WY8jqxfEQ0xFge5Z
+uc1gZipeutFVljOScu/rYsBSTI5apkSi68hkApoP9dqQM8RtMzo8tU7E29iVit8+l818W8V65vzi
+TCMrYBXraehIc27bOfXt1QjmKxUilblSrSGMMszdBPi45VVR49l06J6rq+ZJHw8d/kbOnj93T52y
+efCGQFQsKl7LssB7ZLQXqGN/zhklmBqRoTQiK6J0TwmCgTDn5l2UD8zNarVA1yuEXmD71LdvN5aF
+6QUs7g6Mpeg0/OBRT2GIt7llEWyBl+d2vJwUqU6RJGuO23fXcOsX+qong1zxtMSQUsgfUqaW/N5+
+/HIkWMBIPE5fFkMbb2EtBzPVqscFj4Bkxa+ukfPGpKSj2BmOfmpUPr3nHoT2OLq/47J8oFAd3W1B
+PXGQ3Df9PWThqGggJS9ccg95N35hvwd6Gh92gafQk0ahkY6ojjSxW9GecG7kY1mjs0o1ChXEMN1Y
+tlwxstmYPZi9AYXq7fFcotUx2zaR0UCL6fEQJX5NQ+6RMnGGkdZvKT+nQUXbVA5diB9d6vc5+LZK
+dnu8Osz0iZJd9/GgruqMLDQEKpIf6bGeCE/tbEgFfj0CpjBoO4zKJ8l3camJ4g8mlqyaa+n09IAU
+/qYt0wfy1EOTKCJ9bu9iTyJEgsGRYjTLRt2Ld0c0sBRJZP88DcInEOBKMlMHISrf3XpQwqs1o62f
+vfjB8ByKC48SMZg5NwumDHfuZBR3LNNIO33yUIXcz9Ag8tv6nkELOCIbHYbonnuppltHT0PxQSKx
+IHT2ecRFhvc4495YmTo8UcAc4pMAGnUxSwdoh6BSJVd4b0bNUO1bVMpfe1VPTwlX0K9HaeJcSA49
+ojer/O55FPv4VJw9+dR9d7+C29PnSiAZzkJpPufmQgXqrZohstCrCp2HgNb16emuKU+AMtqMqrnf
+3QrDicMxmU61Phw3wn5sZYTcuxXz8zC2t/1OR1vTt7vNVAy9R7Fiuszi5WpRDNxOgtbGMMXVyy61
+WReiwNh9AT/Rsiu+EfvUODfO8MNVT5R56PPtroe/TM6cwfvn3eWzuOdllLylLLjboy/abGD5uXuZ
+CLCvWv7mLdTYWUbtEC3P8JFEGlVZVaDuCH7ZMLfmCLfQoCkeR0/ZnmgGGejhInMP4g==
+ ]]><![CDATA[
+ WAdqOGWwacrYhw8tx28i5cMdovbYiAlU8f8YKxeqeqbXmBFrgVAP1Ov8tRLbuTqpm+0JJwdfrtrw
+DD51wTtXorzOwyIyQiMlz8IizV8kJXkq2zDWigi+P7XjNxYc6NMjlHZxv7v5697nk2/SN5cLLcni
+a2GxPbdzO3nIrijdMxtSINaUYBazsGtyp7xSA62AjvHCErl3FkpdVvPpYW4MWaXdlrfhGtj9E5F8
+MgQLvBooni7r/uISKX1ooEf2ykdd8Hf9uXIITk/StOrA4f1Ser71a6UFBCupBUKKf6w8Riiz5GNw
+bTj3sCcayH74IroyI0HyiFxzZINEIOice7pNrX69GcnwV2ZShN2ibDxLGzl9j426pZO05KE6rwYo
+IjjQLKxUm/tmiEEo0Qvh1BrzuGK0cumWCOpZ1DQKqG0powEHAdmX0jGuXnZh06o1CjcPxjnfXa6o
+DqLDnmdXPanpCBu0Vmc+86DsSkUrMcLi3yo0bWFZWWY1rp6THqZowM2FM7wy+LWIkp4rze6jLqhY
+HmNQzjia9aowB6V6noTQmaHZDGImZqe54WiV8XlL4DsPb8iMpEi9XDF14GsscSQxHSIethw+Tx8a
+nhX32I/bC/5qp0WC1JG2XvYUvWwrzbBFyTDiaTUt+b2ZJfZkL7Oy40rK3fO9tjf2q1a2Fztc/r6A
+lx0cdH8lCtdSYEa0DPowz0ZUha0ln0faa597Vvn03I2aT89KV0jaigEiUdzooSjsx5ZV7tkBK1MN
+P1c8c2tnsW3eghEqrz5034nmtqfQ6IA4ZM8qR5500rHsfa4GWo7knGM5KLJnPxrGg+o1ir91LfVB
+DuunCb5tlTY2RAXzngfdolc4EU5j+cRHiBfo1XMzt1WGazBLeVwvef+Rvmq2Uhj1QNY+vIRX2Rf9
+XEmkx0pvBb52jZS9lLx61NPHjh+8wu3x929zAG755KgUFloWIk6J2qJj936OyFNAF6Xaza94ap/P
+PLycWNA36PgRxjGcjf5zUx+u+dOL8blbN02N11tuGqcZygEzpJpx5QW+xedqTeBYbx8087ZwjCxp
+g7mP8JjHD0T6o8M9jr24yyAMKaxRvg7l/83//qHdm8Hk1YI8+e10Tw66F2X3xjEQsCwLUGPc4Foe
+2vGBGZiUV3haQDt+wYu2hLUiYXKoMI8o2l2hBnrf0BTSqjIXKqPdx57N6B4Cg67xHTRKGDOmZ3Qe
+skMOIZEt0BGU9mgloF1drREOYbKfpAuqZ1a/VDx/izanD3WMHQGI0U+rF+7R2+xoEMdI3oLlh3La
+I3MCM8OIjgFSBc6NEHUshzv/9Bz6zZiEPqwFa7F3RwBd3FfRL2lTiaEAmqORmfPCM85k0sHi21I9
+dfBmjOHgI/abN5CLw5HtQYsZhzeJIIPCGIiVG7zqWTRco+xfoTQ8V4bfM17YBdPXz7DlL8Tf+xkG
+5KIwkyaDTDbpppo0hOG1Izvq0vSgs2fZqwsB+TmUzw9zWPiweXGPsg9Rlu6vkTE3OARLddQgoqp9
+C9EIV1l6JXA9AmnKDIHq83B6AWKliv94ahwlItE6kLBkaVavXbcJP2SrjXNbG68ZPSzYqtnqXort
+Saiv1nZpa9tJw02MpXDkfrXDkLSte/UUSC/zxk/nSOuO6L0ZlTNSd9uGjZOyX9JyPc2AlbKkaOqh
+h17db8XDD7i9a4e/j4cXdFgW9OHwDl4VfkQYdhxueUAx1qiUA8L58IeNRZMjxneZdJ7cXIRldwT8
+z8IRHilgLg6+3dQyjp8/HTxqgRaqo1m5b+l5cI9xJFevLABfET1vybNF23TE1qt/QiFpgXKD1nc/
+foqCCKXWWcjOaxGivu/x5x9NNhW03t2YkGf3F5rrlMLpPTm8tHLQQKFwYWm0EaivpxGxSqbb9VjZ
+KMNL+DHPpczVgPs8z9hjqPsunvHtBSpoNvlKWYBhdeEIPLNS+70P5qdo+XcM4lrd7rMTFeUeTZ9R
+k/Y8j7c9gGA7bz3863WNdII40RGGyyFQJwoRIuyamOGXf2omAnrzh+6hgy1iYpAdHoQ4w/4VMI45
+ulMYtY4oN1YwFeIU3vqZHHlkCq9vEqVIv0TUMbusQuUZ+IkaqPH3Kg8f8pZ8FfaKp93b9bH+Xvlw
+2N01EFUEcLiwtX+iB/10CDvHpenTEW/GiJzzmzB4X/lz2YEI4YIMRBWfB8tgn0t+X4swghtRw2ck
+mkkLIpvNI9YO1wik8OLAgY7zE9WMlpS57pWmK8xidUy8QuBRer5H5dhzD27aADwSw7eLQeJpG7mf
+WtEEA1Zxn+yp53DvcbIm0SYiIKtqN2zyZWv37pUxVo2QvA1lvA1RTJpQpTLDCJyiWQFybdOsJuSI
+7DyJNoCAJgRVoLac49oqahrtymq1CF/2sck+NNd+9s4+zNb325vKcxpzOL4c8JfdEMAQor6CRW30
+mFC4Asg7eFMng+tkpuHpH5fIDzUv1+PP31f5ZN71DIjmeEF7bFmsuW8ut+W039zTC6jYZ+RnvX3Q
+vO1/UBOuqaH7nJbj9tzsjgqXI591RAKvoWDp0v4A9WzBd1Sh+NlEJn8gOm7b0+9HcLtHsdQNE77F
+ZkX1bHI4ieEoF7OE6AOwEPkhsr8WLFPQn75nF3rH089Hx1pUQAKm5wwo/RZQbyWCNxC2lraPJfwA
+h+QsjhGsS7JFdVxZEAgt4CzE8bL+/t4z13dbtU/ioySgnMPJ5o6sbDe7P+HS4fDMFs2QsJRVBPTy
+Y0cOTfSbveyCTyhqaEZzZy2qodQ5YLp6SZbjV6CwxisZPS0mw4Pv1to4Yj7wbQpIhtz944XvtJfx
+3Lvwfc1cCwgBQxGOmZOL2ksqv6qsy81aK377qd4NFq+yIwoV5bGRdxQnsHjqQ8TT0ubjtciSwlDJ
+fZz2FEpeT6fgh71QLs38l/7xqjWOAuRj+Sz4bizHQsiY8b7DLzkO+9AOgixAx5KXVD519fsKCtbq
+/bIC8wgKlj6zyxkpyVFrf0TiD4TF6yrTetmjAd8/7ncpOcA0jlDbzz3YApYjOcKdzVL0zRJluCTK
+9y0ABTq9+E116mVlxZ8sBYnOzR4BEWHgX0J34BxE3viod/p4YUMKZxgdjhpTUjq9GkVEPg434w3q
+Y0YGwREHooify4SCBzAvEJWZCQ9XOsvmR7lPc1QEW+83l6vwCgigW6F4IDClVe7+0LfodQ44LaDa
+RRi5oprbPRvCqQN5anc3l1879qGDi9gu+BYNpCArQEQ0SnseftA1K4qBojTG8gXUlccSpKgd8qK6
+HjCKEE7HhvbHzXOV0Tdv4eEHoytlu8fGlm2AS8KvFYsVRIKDq7CyclkKwRSsEddKzy3HSljZQFxl
+PZKLgKznCPZjrHBSiwhXuYfIHpqJQfXAosks/lvZS9WBl6zqOhJRFu6HwchHHOuhnXiwlUCTyzdT
+e49VqTyv591rK79Fz0sxmossUsAW4ISz+SAJPfSXBxmee/BtvVPMqOe/GUEcZcnK7nrNa3oN095B
+PnthAh0B8h3ZwKE/n1q237zRdf3hzF3tD2LuImebEaaBP9N4HUkMmYaI60L+dpd3Q4bkA2dr5gPx
+3gqYvD7m8jISOwMtJM9n0W0FepAfDqN4TwoEkjGuj0MEpA3wqRRaVpQxdxZ3+4mfrpLBlGVwlywR
+GBAANqCUG+KnM5Ry8tQnbTj72OwlcsRb1JwEdylLSNe/fTmNrNLI6z0uaXKyMkLOAgdn2Lt2yLWh
+4D3a5+0oTLSNP5/kqM/EBr3JUGmhvwfsVj359/Y8+P4rEexZTqg1QPiM2xQcjLnsQwV5/PArcZ/b
+4yDWBoXzNArVIzHvxFbLcvRD9u2+iIfczVxwKySzNnMjbyCERb/vjkaKDaqO/bKcaWu01EMfGx4o
+hcO4q89z5Y2aeAKrxeQE2zGhEaGTpdAeASbM5Pp24ff7/jRORMDyk6XwbN4soZZNaKw2S6g+dJYj
+WwsETTNhmoeTH06RH2L/kUe0LzQHk5v7k3LzStyE0j0Uipp4MVLp17J4Ke2iJtVkJbf4g1Bkj2AW
+KLEQhpLoPJxJs4DH9FGcCbpXCdsozfm+j7G1cDYRJF+GDLtbkF8sKmV7uVGIfBlSLnv+vPFlnukQ
+cbUZcPcG8GCuxlh5oHC4iJvT/DLRQnEqT6s/o8wZHzMtEQqPQW5ItRoNtEHKy8S64PvHh/zdt2aR
+gVTHauFAaixpoqfoLYEd20VTbb5Mk4nneioTSA0kagjOgj3irNVFitsBbkDe0dlOZw3t3Xk7D6sn
+p9hYsykz/UDiUguNmfCAycYvPYYFNq/rfKRTJL7D+Gchcw5hRjZM1qbIhi3srT+3nAnt0QnME9Kp
+nlIARSD9l7Ax1ZuErPDQqYVON+vWW2s2H/y42xOKstlJYDvYVHRh+9bwcOzXnJa8C+HayEPPyfVq
+KxXZunAYk3W0TOEk2+3gw5SUsIcIxBUnVAPAgMhUgklMzNAE2TizjxR05SccLBQCDa05DzH6Y7TN
+pvQTGXux0lK4DupsQstwsC+tCFQtVPPY2FWSxUNsDKct89tsDLDWhU7WbRxNh8Lnohm/9t4A3Kap
+Pwh9EiA8e5trHfzjphAcZ2HM/YLlnqGkOGDKPoUqd+GeI1erCSs5gE/4yUfjBV9B/xJrYAXHJu/G
+f2LCjBxdE57ihV0/tb0dTJzwEjBzgpAtt1bHohHG3ZEHhW2ksm0DzQyuunPcZ2AIjfy2DYaCkBzu
+YZcW/vyU6sFL15YbV32ertEqzRYwr3uyH/mGm3X2kpsfSheWWMuRgfPSSPv+ExS4QOe71G75uQy4
+xxe3DPEf2IWgwS2bWXuzB5GxcqRlJiaUfIvkfSTZonGdm7wINeFFM2+fPpDdwL1b56Rg73hF2Tpa
+xV9Qs59H1x41BOz7x501jhBOVvytLc7jgBhEccuUgOpGf817CEIjWYUQYZNetmbVAigvxsN5sCIh
+7v21x+0JvQ+C2xHxikFNs3Yzsn3LIaFZLC+n4dsvvqGWHTqs/P7dxcUYx9HdfMZ+Wl+b//FZzEY+
+czuJI/vgC+LWSTdrrZOF7/v753svn1r55F7CIuf7RfsmeolYpomt9DiOoDmnTG5gCG+vW/n8Xq7f
+NVyo525mzc7j5/mD7h/q/ievedcdrPvu/fExpoP/9vx9c8yNV+189oTGrQCN41FfHiEA4VLplONc
+h2XJt44+t/MLK2VQS/EWbSxHoE6egFdxC8M16kReZ9EqMI3NeOOL7vybgTMn4fpNTkBIkszDQKW3
+wEKu1uwJa4l203lGCwjPUTpkTYH5a7Jby8QCm9l0V4Ml+X7zobl86y4Q4Eu/W0lPk/CLa+RkTF3l
+YR0oX+ug/fH4vW/wl+186sa3RanVTWeb7NgwI/si2jZ4/JiVCSZs6mJdUQyTm3m1uk5hnsd82EUt
+vDB1YZC+auHN5d7Isqvxcbi43AB/Ht1n7gR2feRetq68u7yPlLYhvbk8Z+8Q0ZFMeA==
+ ]]><![CDATA[
+ 1sfhgHLh2M/mN29gybeP/dduwoeuffbYR/j67ltnuLdyO+j7t81XZ+mfzddIufx6ldlmjx8z9f9V
+Fz55jHhvSc8X5pS8P763CnFVKKyjJwqtMP3xy9NhZCifvW7yJ6H06XMfPnWQNMHKmbb3d1gT7gn1
+d/nmcQwP7c3ekSv423MDHA7dm4Asrrvf+LkLn72QyAMZexffXT772Hvz9iw3+PW353Y+kns7n7wT
+/YGer4d2WRtR90la4AA3dwQoAzbp4GPHpLe/z6ztevVTn399/qQNk4ngZc4nS6B7dzGgfm+ergz4
+6kqfFis5TVYTPdp1ETZc8mZAwsuJKJkcgO5uvIQofW5y1gWJ1CW/TnWv8hyTxOYS5nD3HZbgR1lj
+UGmezPdRA5nlTyY3kBaTTWSDLSczhbm5d9bS6PmszcC06nLxkur4EiIYft5819ekoWSZ3j65mNmF
+NMlCyO6a69mESMtfTts9XHYeq17E2j0nvcHuumajJd0csdbXo3AMwKfztz2GdmQFBqbRXtrMZjlS
+lXfKZTD4FTohW9iRGfWFdOYOBcpN2JETY0LLe3y1kX5hVw+vBARYrQsGfPJwf/TTgWtNaIEpjiFx
+Ie/CkdO6Px5a/oVfGifIHufzyJBQwr2ANIbKQcS3HvQxWVNcQedZAytWEWPiIoW0Ph2i2nnx+7+w
+kf/gez89xcrkB4//Kaif3aG+rbc7Qu07Z3tnUOB8+hhbmAE1jfdlD35hVX1bxH0KjK2nbUN7++D7
+T74mS2NJ3grJsEPFzUeoKOMdgnBarvLS85fMyEOSVG9QXl3fCj/f5M1gTOzjVk99TDxP+3J6EG29
+fgFxMJsUqiH8U2goGvb3Vmd761VaaPE2gtSnbp+u2wcYFVKyK34ETGqFmnUrqgUl8KwwFoTIW+ke
+wxp2owCD+1oqrpLBD6gB8N7wAvRIrwnn2e7X8vMqfLY5Z6Voc+th7LujtrG0x9sHn3+2dbZ+97bt
+LMSczi0S96JDx9ldIyYGTyMM/qrlz55Kq7pWXHA4hJ7Je/Smb103ztvHoCcsj4jgW02ACS3+uQb5
+zVs4Syv3+CbY1OrD0J969slD77C4Rtli9hx6B5q4mZWXQWQnolulLwY9p4JLJrRy6Es4IveNcnq1
++ryUnMFJXnrEoFEoszw3yMBEnCgL6KtLPJgZbnKrXqcwcTKm8CEgZC6+fWg1QGrAkO+wu+BaqVRL
+rcElnCk0PUBhS/6lFZ1GCwZLb79mGcYUjmKqwpI8U/9y76yEagFee9Ojxt916ttRimSWbWayxuQA
+Ul7HFNjGCcZYa5DxiW4EtQwrGWKuaR+kjq946Nargygzb96rymwXK8Ccc8lz4S8e4T1qllyNRgxJ
+gbZ9M0QvysoRQXBU8CWzlw12iJocZYHNWkXJ2jx80ac957tVZq0hx1As/EWVsGYxELj2abS61HOb
+NG0RQAJYkhRnsthMWFWMj6EPy2fwYpdowFCuTJ6b7zuD4lrf7vsOtSxHbPyGKhnLELCCmNm1xa6l
+HhQSmt++tL1yCeui1r59DP7k7ju3Z8nIY7vvZgOq7VsD2tAAKZ5aMwDx+sdHobcG3KEWt+ujsHhL
+LVQF+SBnZbQJr9u9UMg8KzZruh1QECCv5wsHtI7mnsSAiaB+CQ+uyCXMrvOqO3YgG0f4PUFlyDyt
+UVhODSHKKbjxqmqz7csDGWKc8F78lYaPaYEaAD8DlZYXO7ZFo0yPtPtKVihc/bl/6lka3bhEypf9
+s0FeLv1x9TciytG0D0FC1yytzYoM6RYEq9xQkwHxZM2WNPYNzq7WqeNPKhTOoHkqQifEDJ58HCGv
+lYrGwCJ7lfIp04XlmNJeFtH97g0MGmaX/kuaP0BX1rtKBOifuYkgDFyHba6hVge954C3owm6KeAa
+bwCo8FHmWkH/eN0BwOPL/LiJ3e/W1bYod21o2dV9dAFASoe6a0edW1M+EIwVxVmxjz1vqxDIB0Ik
+D1tOnA8YQvhAc32aBRyxTD+IUzXwhA71i4QKuzqYfZVk3e4sBJVm1rEz3Kb7RYaMIl25xniiMazu
+Gk9K0xgaM9emEPIopHl+yexWVwNwclqm3ZxiLbJuHUzRtABY63cV4U6f7z4J1bTBPEViba3KlPdc
+QfuutCxHUlCA7XOweZ2sBs1zBYvUUdxt/qE64JYH7KnJx3MXX6AJWeX9yhz6ZHuLtRWaoijnuuQw
+FIv8ZfKLVZCq+rwtWaMtvGcSmlw+h4nc2eQfz+FerSxr47kHn21S9hgK1v0Ik3KXE5bChL3ZUxF0
+vHQ+GmQyj2gxvBTZlAavfd7MqQ673LVcZ4YcUOC7m11GoKq/r1afa62SSs9kY1BzlMhxAbQ8M2Gl
++b7775dM60u8GBTa5jOhlXVSOHN3ZTDpdePAcmrpbsCiPLd6s65OnufwF3ftYLoBE2JdyOdaRKbt
+btoTsuZ2uW4K4GPrrqokwfjmf7/J+/TggYFv6xI6m/tKbi1nX3H5G3xmtDTTbfWwgLE5jva0XsMn
+W0bB40B/af+RRyRiC+rx6cmPPSpkGJeoRcZ7l68ikhz7jjO5Odxc/HUL0phh0hNbhS+ktM3YiazU
+VvxjgjwyVTXbNeE42V+3/NWwu6MLudFoHIQ2ilhRqv55kyfPrZu7rPRTZlBa5pE5UevcXgrRrtpY
+FtbyEBpTYvcsWDkYdzKy+5xl/3awWv1RqGzk+yvIXJMu9xfT8mAbS2CL1FiZMipnXCnVFFYlHUji
+JZL3TaO/jSxaxl8hP3vxHNYkEzGvxNbov6vD+69n1vzcf2vbiIOFGWFePqaDG2d6/3JbK6t3v88+
+yhzreE7E3nT0Jown80rvdrbrhzzqbsCR9bxtLOP8bv1+DlDhBUv7231jGvBY9XxlObOt1m16o9rZ
+VuKct3R2bzgx0ew+BYk5L5oEJr4/dUHhIadP4MDsecSPPY04zqexLscT8jYL5hJ4c3md3nL3gcTh
+Nwyo7sKSmpwBhmoTLSuJ37dntHwwAGcwm6V9efw4ubLahZ6TAXnk5t/dEmf9gePGMfOT0wB3uJ9+
+fpgPqZQaPpgT/LV8yuqBxk/NIX9zKeBLy60KT8VqgXL3o+jHGFt0G0Nr1Dc9HsspFRZ3mMW20t3o
+eL4G/r+48d1sKWZbvz8aAhS/PYubEwA+tPKRXM18cnrD1DtUXrgViqLXQNbko/7xLOZVtWLVt3O7
+Ee7t/tJRxtgtUr8xLr8+blpdt4/rxfsMSHc8Fs7sit0vwI+UpfkNVsmIZuz28TnufoenEfwRMlsO
+n4p9ivZ+JyUhv/z+85f0dwVOl4JV194fFanjad5U9HIG40ugKz9dH0vB3m6K9XGOO/ShC7+85Su7
+ynv6/kKeoiLMhdvExMa6+b6wsRnQ2+dr3+3beXnowmdvzaXWdeXGGHutTz104ykJl/v+YT0ivuFm
+2mblLH1wE3qT902inKfbHjGaP209IpO/6v/nn90HayfOrttXG4nUg9zqu9+e2/lI7u384me95t42
+o/z9UQeoy482XXq20RIpzR4faPePiwJ1y0383IfPXsfdAtwHqbrEB+vpzPOhg5ssObn0zSy8Dca1
+2W3iHjrwy6sznVSNNE76OtU2sof8xIf43FMzn13nAUQ9/11zISjVFVGuvE3fm4sTA2UP8qdmPt+e
+O868PUvi0Mj9MA+WnVA4Fa0+hOyxmeOaxzgy69OoKV0Ppu0N9NiBTz4xIxIvUS6I3O93lxtF+O11
+AlT1UfWOId/OJSyeAAf/zFndLkMs7cstBDqEfLzcHRQqcrODL5m8lfLwbhtl9zxpikF6OcfDHKm3
+aT68KQ1+r6rZU4/g50n4zARFrGJGpqui1YbaEWkpzJ3bAnSnsNfMD9bd33XIi2i8vOudf7g3OJhy
+TXhUDzqSyr6ccMinoRaC0dLknZANhAn8asVE59m9V/LOTZAP8Qk795rxKDLa94mFaCI479UV178/
+piZ5bOVIJ7Or7nr0ICQE3YaFdVKWx5Vf+AMij2U/eJmgkHdv19M6fPZC+3H1zfz+cP8bPm9Oyy64
+f/7Z6stN0wF+o7IlRupsoTvY72+vP//lrZTDIxnu0Hx3ubFg3zI4cCgYd9ldouBAabuvJo6Ky7eN
+6imC+/lbrUoYDSz5qHGDAqEjyT0dnuh1hiNGv1Kz7nryTB6McHnkdxlUVfiSQkz7eFPB6AO9Gh+N
+Y/NFHR6lCCSz2yC6IWzcj6DYG6OBpV5GfDryvUlLYfe7YhvumvIegBSQ5amuHozJWfDWIg/e6JPC
+uk3XXS61uWm9D4THrGtc6WjjPom3b8/0MNr5w3oL4cuRx6Yg75Mwo45ozcDNZ49vLTKIy/GIdfHF
+kr56PAs1rUz0XR5eSuBy+lEvXgv1dMo+2apAUDfdbvp3l6djaJAeBbkuhjn7g1lwCceI47oAQlAW
+O332o4Wnn/vLX9jqRrlFStvixbtDDwesP4rLwp/M94gP4u2DZj7b7Hbz2n/3PczoNh56ef96eonV
+i0Y++ZZ4cSf4vp5kdHx/vCskfzicEXtbJ3tGUdtdw0n+9qgJ1jI8/uCLIzoXvM1Tl/+4fnTpv8NH
+bgcmjpxrsFuQ8vn7z7Y94qJ6XDW/aiahg26W3b6U62K8qYCnhj+540hDbK60t56vx8fWybtQe2IU
+R2i6p5be5H2txa0RT1q9dcOT75779vlZ6NVTWq2HkYTuxsia9Feff3ZZPLKDynhai9tF4mtxFx5h
+h6y7YQveT5R85PuxRQOEftum/NZq214+T137/AM0+rl1/LEe4EFrbZ9/ILZWfmkgjIRA4rnpn3eX
+j/PxGFMul44v4tsH7fzyjxMADvu94NgkD2Kf4rvB/yi/N/NLr0iO7HI+ZN5dLKzJh4ti/9yC1y/k
+eg99si9Xjmn/3WVTZXknOiCnH4P/6s5dtt3NT+1+qgo1+6hnz6mf6dh8mz5hyrUPe8onvi7w0UtI
+h6038rLlz04M9SQVsLigguDdxaeBkPQOenIivgCumRkxXfjZFBq7hgnLbJGKHuEA5MMx2bjWS8Zv
+a2SWAkbT3EyCAVYaeL4eiFmgwa0VTyytrHhDVH9GampmrRM6sLJ3K0DlzdWy9xaJuDbz13gNmvTr
+nsR6Ca1uSn0ooKXA8nXwb/VIvFcSCPhHT0/mv8/iJzuZ4MGr6rXRcck+6Y7jea1STszaMmTpzmF3
+5ReDmaT4XFjScThMia651giMm8zq6y0KI5cZow/DY9ur/twL6JfL13+KQlapgykGeKPx94qNdhC+
+9Af3cB8kJKPQ6k9sBmoJH8/WWwD2l3yfgVNMBy9m8DNX6IbKjWvkGv9SwPa/f/2r/6l/Joj3+QeB
+eI+J/KGTnJD1WhLRO4wzB00sxW8PYix5mkEIGq18JF/N/PonELyvXwC/bBZfkVE/vrt8QoVSnsgD
+Y3Cnw4mCTvItHsZPpy+T51+b3ADZ2EKLvxcFlSGJ8IdOuE1ImORGn8ktkkB+JfNLmw==
+ ]]><![CDATA[
+ sJ9ZwpoN0v3FEH5KV4M0ZI7ef7YWuLqdnEETI1xkqpe8kHZ0DAfFh+z0T8l/d6R9grzikPKzi67K
+qZ6PtA3GSlMknE0E8I7KzAZmm0/flun0T6lFFx5G8NlTlAkUIrIwZ1sA5nJ03AmqgeScnPWKNTIm
+PPqhySilO8MDYFui585cj2ZbzS5M3uy9C5+/Cyyqwg2Zjrp2wTi6k4N1Uq5D2Hw0aS2tDjOOlEiD
+7lKSFNh6j/ose7kHRk1+TskbCEjq0/m8DI7upyZY/M5aDZIIHcovFeHZ9E30MAG/3AxbYiEJ8KpP
+cOm+zefa+kkzBC9bTHCJ2SAMgc7e0KgJWf1LDPBaA7IGGld2XqfEHsMk1wBouoS5iymJ6BcmrCT6
+NBLh4JsG9cA8nM63kHkQkFzBuAt7AbIKYvvmwu5sW8BmS8PJkkUPBGC+oNrxKwCVqd4tYzBVA93X
+w4idSAwIfNM2xEFDk+ISLm5sRBNL93VqPD2klSEXERCOndnWgrE656NqCKUF5ypWLwjqzz79xqoS
+teP0OySX5BTyXU79Sw7nuNOUJqs/NKE0DYRnqhLmXJ1LKTiIIF89EJEofu44m6iNrIyJN9YUC5JN
++7oxszO2GvQkh3VoxQ4WCr7aSJ+7UWF3OMPoWA8rUE8AVV6q20qrTVZqEZFlwt77S36LTO7uup+E
+pBCKQnmdu4G0piCyNIJkzSfsyaaGq/F2QWblq2L5tDmCMJ3GjGzepCMWpAbZ5HTWGRNqlieZlNTC
+4QO+Hr1jtZClCEGSnIZGXPOQ0Gj8OGXiB8aXR4k+wFYf6kOuJevjjQCV9HgvJv3zV9V2JacjCxHO
+5KKZnU4KNazKUqMh7slPDrGdRdNvIE8S6r7CGZoxScNJXo0pLFqoqH9TC6d3ITfvFpXHbhDPjRaZ
+8iBvJbUgx+vfGgDOqzn4bB3f+a7mei8CN+DnilB4MiV3XGtMXau9MUzngdHm0H5JrbqKT8Z/4fS2
+lSzdKZMGRJNM7uMksBzNUdtamM4FbJw5lJ3RgAHYQCiUeQqdR8Tksm0FfE+ZkbxQOFKR8GzVv2xB
+g5YqIYP0MXVZQpl88gEfZIFKwEJw3l3L3o0Wcmshn2d8PKaf6GMJz1BLeeqaSchVGs3nPHsfysjq
+cDlXH0bsYDFRqcO9qQUjWdfQun88aIdhGtSrOQTUzi+LsygTUpZtjtNVSj/P39GBejRXd+KgBtr/
+Ih9OJP5M1Yh1tBeDkjQhWOoNOO1cauu4saTHZK34cctnGI34NvsWS7P6fK1V34Qf9KDFdDnZpo3r
+HA+b8Sd2gszuGbyatjQlPezGum1nx5xgz3zXaKzxcjsbDZiEWjR/fZzHOoydA1zXBYXmbVYLWpYO
+dbRdbd+9AcMX4KiSOooksKrx53K6sOt4DNJoqgvXP3Xvwujk90uwhd3WJWSGCc0NJ/N5TUAQdHrL
+Eja3/JnKRyH50dyEXi3IGJiHNBJSMvy3OlkRIWt+20XdmslbzC4Joi6h0i9ohIsTOZ0032SZ92gB
+6Sw+5d7bvLwUU6kcJhTjJia8Rx/ywYAnByEq8HwwbY4/hxjqf/CPDfVRyy6WUqT5HqEW+b7IxmZW
+n38u8ZN1f7HZGR8PvXHRseA43ygPM9wqR6ORSDhKzkM84vTgsznzg3MewVL76tuXjf5ED1509+XA
+Pp4Fn99pvmfIrvvt9illyyIKtBST2wVmcoNIUqMjHEaDvoaf6MGLRXu5vE974ac3zsMu+0v/+HlL
+vty8H+10tNym84r7nCUkBLuJ3Y41kUNfGuE81z1PVEGJfptcaNccAsKjSzg7762aiPthQgtwsoUq
+JimTsw7zEk7QU1gfWvCMtrSRh5tGZgvAjOJjBrBEYs3ulYWh9nHRA30YepA8nJY9zBaAUDRpa2ah
+k1zCSbwXE7KEdky8hHk/yEXKiZyVv+50sEYD6W8EzSsqhuLGaD2emChh7SKaJOi4/ba9OPjoo/sE
+zYtMNK8K/Us+aLPw2ZZoro0cd8m5WOtPYxC3BopIky7p9fhOJEQmVyb6M8R9TYgNI74WKXTFyrjZ
+YYhQ/Nsadk/LvrlnjRFh8XgNAd+hTj91tRBG8pLjqqRDoQx/EU7QRtLzkE9GRdhCmH8g2CafbPUH
+9nUA/NJEuabTUhe9j63+8Czr2BualsmbzEcc2jqcmxxImzxFJ98TJixhewFRzUnBCYtld/HklnL3
+uSyfKubXAAO2G++ozgVf3UqwKK6We6TDuzD5UJ2ZWdHf4w7JRYM7E7mycemJ3RdlV1WtZmQ0ys+x
+rHBc23KT6PkKWZ1JpKn5UKOAz1Sbp4NC0yIJn8zsbvvNOpzKVRT3CW9i36352iub4RQdY9W+Caf4
+pUXbSmEfzkF86rH1lY8G79mQ7ZfBiOD85qP6SybX030fZQ0B3tVTrpo5qXtBg0m3Mrq1Xli67DBb
+o0cP4m7D2LLslOPSWlMfZzeIcMbcMVZa+GqQWtrVgD3TKJSKjeolE0rFwi91hvkFqHjg1shjdvjH
+I1X53PyVB2EPDYEgX7RQT2mew71jp1EH0TUlJvYDSYXO8m5W/Hf/++dvX7f50e+/7OzLYb2eA6Rr
+ZP1cxAf61YK7wYz2+at5B62LJrQb8pt7DfVqOQl24DJa9mcc0kPAsBTmEg104iuzYRE/W7VT8xYK
+meePZXED0PAM16f5zdWHo6uF4Xb/Se5syjxCcS6cW5O7IX4KXMum5nAfYXhvJ32QMul6WQ3U5s8x
+xcowhpH8XW2+Yo02Jf3U0Xpf09hPv/GmLyVef+6yGABf+w/+cTncynGjIZzFKCOhafDhlC9n2xlk
+0Afhmjg3gw/7Y/nvzoUbwgbCepvgAfn6yvHyU6nJ/wDPDvRedT/ZCpWalivu1chHPMfrWeItO/yB
+62bR3bdT/QbaX4Mo4fTFDjXbrufZ9FdvXq/Btrlh6nn4HWYZGtoBoZMfRvFTEfnfd5o+mTLbxF8k
+/0Mj79qc5huj49MCBX7MTf52l1fUsmDjv0UTL0T7X/9asXYQ3k8Pt/+QvwBo7tKKnij27/DJWa5D
+eeClj39/QkUjboB/uJTPRFrcZVFBVq8j+39i6HSk/z+/gifzYJrJbGC4dj/jAEJgN9vTCKbMwQ6w
+3W4OdlB4GEzEJSzQxDhEiCaU4XEQg0RMNtJr12R6cwEAaXGQelZXRwO2CgIx1RH1whdrYGeXvAg3
+nHHc2vVrVkzCu1Vmi129ZbudqftggtTs2lfvDNhr8lkZB44pPphV16Nm3StSiGCFYCzJiKVsYmDb
+6ZGQ8g98ZRgLeOnLQEnNNsb1/w5R25snCqJrBk4d6MbkF/YUNBDf3VK1vJyrX4jYUcPlRu6G2Yp5
+Xa3R6/8muxLqtWVqdw1XCr1ll7waOAlksNdwcIGUSddOBgoz1rUdlm2gP07uUSXYp420wFFrGr6C
+mJQ3Ep5/toMv295YYtVAZQmtyf0hDITzbPsNwKYnr9oiTi/102OutTBV/+pYEgzPtQmxBTCkDt8U
+DfUK+CA6rJDIH4Z6PokEd8lXA2BNb2Y3Xu/IjkSK34Y5Oc3sut4+FoWk9av3uUFPXhbef3DbsRfT
+lIa8Sy+23XQWPgCgryFGWpTOEgMvIVb8mFuYr5hP82o59cRgxbA6k0uGtDhJ7DKwOTDL8buHlFq3
+N3BltZiODB8LNRHHFUJkr9rmxCPLaagZwGqWWFPgz1RUc1qBFb89q4cOO23XAvBUN5+trzSKAaZP
+4wRBLXkj8DH9idAx8shi+/Qz4jUHiaJNboz0by43Q6ioUpki886a8OgMiqICi9NVMp0GnBsghXdb
+tAx0dHPsQFHFuTXbkTLzWJrys6CjlNdJ2hOTG5fGJYNDvunbgnKTV9rz6sD/9cEteHz51//213/3
+5U/+9N+m48v3v3n/27/5+1//9Zf/8V//6m//05f3v/nr//SQF4xHfIXWvjYs9D/W7rRr4LKBmq6A
+JCWOx5g9VFP/weFBLRJ8JEsNKklV6/YgtN7bxunyrxfEjO06Nwj0cDADkbhYw8CWHFSXlr1pywbw
+5MzcoCn/0XDahDERli4mB8ec0bJcvzQ9wNDx1uPBuTRFNgXUM0NNOr4FKAJ+nhRLiKAQ8lkPpVx0
+99yUTtptHRLoeOtBrhFoRjjEnjEJFeuMU6LoBooWl5XBA1x//29+ddijALjmmHBYqzb/yETEgxBX
+a0cOAZPg4MQwDh9TmPYM4TLU5M8WoOpaCaU5vGwKGy5VzivSUE97vnfQR8UDqwoLzORNGWK2Muaf
+6wWZK2cITVn0wqBQLOOkDrha6Mp9gf6lpduvU6LlgQbnXdAPCkMVK4+kgSpVH2dCrpomLYMut4q8
+f7s2GjOM1ADONBWmkkS4GZTT1jLzQjmNfIvVk9R03312ZZgDkDpTPWPKj1NCj7g9r8P3D9bnR9is
+MrOrxS8RDzmrR1uv09SZOZLOZX4rjmza5Xqiu9M3JdvW8DrBnokr3D/uQma8hDCeea+fYWZny63t
+VGaXneIJLXmQZ8Q0KuGz6RrL0t1d3q7JWTHlbyiM4bA1CE27W69LeOjHhi1cHcqxtV41eo9sb4aP
+Ile5WYDjrZgiqKSoji2rPPsIjjYkTGGEXN9eb5FJ8cksO/z9Ub0Dp4IreH10fQjMte/+9zJFK0hb
+undgdFNYyFSfjJ5CWKkblJgfLXT6Rs1AOf3XLN/9EiLV3GXmb7E5TDWSinJ1hx/uylz5MZKai+4/
+T7y0mITZPDDJ4LVa4RJpIgz4oFMIFNq07nqPIHRqpvLSY7w5mW2SWIKiZ+B5+qbtw0OXDzt5xavv
+cu193NiMgFZc6JiRd7/ewWMHOTCjs2eOlbPI/i68We3Vz3Dp0VhmGY6hYgFueHiMhJ7+iGahYHQ/
+F3/01+ajW+af+QISpX2G8SbHPUIcI7v9HmZ6WT5SPOWnmUNJ3pmvls5mru60XOd4SjSzaeEZwULq
+9oDRz8sdaMSVtgwCHKayrtvVCOhoeJ3ZHzv5eqF4C9kofig+POuHeWs23Vb0/WoN9PdPclu1T38T
+f0mPr+Lf602M+E6h66ovQnu6iSqzZCR/u8vxtDNP4tu9nY/keztISE9f/hyde5mVztfxXfynjGFk
+OnauM1ot6fPdxSetxus8W5SewoMhFNO09G42o+KTOpgq6qTc/FOX/KTvkMLrBXFS6NesQPPtvWYe
+KUVXyg/07F0q6dR12Py9U7HzkhsPys6uYp9YlkKypEbwUxzsANQbX5d1iIKDtzQ/hHdnGQrJXYN4
+e/XTb/SzWsCqKnWLrY5kpjOenA7bYfe8K/EkBAW75wcjWdW5Ty8hqHd4seDVnHwQpbnrF53MaqF4
+4LLMdfsXTw6DMEWArawpv+QeYkrMbzChx5sLMIWKltdyVELhm2eVBqVSwy/twujrdU3Mphuj/MBY
+EmJFrbhHOne3chHqOdvwR/pp9sclVC4bZsFqGKyFnEN5FqSpnJKfJfHjE/UyetgcCg==
+ ]]><![CDATA[
+ M14zfjJ8C/rMFhd/BRxgokXiES3UZfVj0hyxX6PQsqvMSg5OGW4chnNyI7guhUb3aUJ/EWAzdBo0
+nXeFWmieQ5ZHuA5hRjD0dM1+tDDcSimVhclqYXr9RgGJKDdkM3v15CVrL9JXp/qahT+7dBQ0BN7d
+5hyDBwz+sGnesXSty8E0YKseRXa4bPmm4kozJcz7JFv+ZMxShsvwzqfGU9OMwvm3bm82Zg7Wcw0U
+V4mbEgb9/1ufqlK7nun44MfQCNwGeYjShkPlccJWRibMb/zjytCqOUS4Z6DWctaRvvTCiY//zUee
+2q+GjnCdk59dv+oeRz5XoyxX83jtPcu4MNeaRbg5jxmRvCEjegxGO679exmKmRvROFZ/66cxMcwG
+FepvxsJPbBIshVyz3pn1aovhaW3X0OekgwnduE52zLpyTnG04OX+0RVpp+cOegEOcsnN6dWlFxCj
+1TLBk2HyHAY5dDg7CJMP4ZTf+LnsKXSDoqRwwZ0y+4zo8TduuU575CW9S31Kk6bU8rs/Z0H/5M+2
+T/4Cbok/+/E//fqvLxPhv/7bP/dv/vcPv/n3v/3bJxfGlE8ahtZBFzaeEvBlpNseoT6wJJnpRw1p
+O+eUsnNHZ7YSBW0R+aAhzKYO8FSBcRXuAyshMK10dPoP8GN0NUIl6W5AW/Ra4bVUy3p6Hdk9XwYz
+Ry0+y5Dwsv+LNqMR6ti+MAi3b74ZjdHG9t3JhGJTodOCkGUFdVBIW3P2O2tPl8jVry3S/kg4kguv
+y/e38fFwa8U7jMd/sjA3rBKEaijU9Q0V0pafgLYtdFOWT6Ex7GeKaST5DuCxdm1lJ+i7nyfXTCNi
+prW5/wNX/kGzBoezl31uo4XSJHajH0W79B1cqr0cxYWNmShw/tWVXtQ87+S6Xnyspdo7IE++rmTp
+sH4kg8tobvYL05txk8G4oCzzBQq9xBdwQZqPeT+vHWUvoe++4kdt2rWug4spbPkRRo8jf5iRYnbF
+Sm/pKLvSxV+qXradEU5+7B4D8ECp0eVowV1tV3Ga4ZzDubCHCI5YynEQhq0KMvE604Lh8+qIf0OE
+k8qL8TKc4IlE6GmdWoDZuxvEMkje/dRdD6RMc8QrB6HBWVqBQ+kTEA/YLFqYML7GaDK0qiL3eJr3
+U5aLygsgrN3ShnCYwREVB7czQ6pkz9k3A7Bwx5UflNwCfzSDrjjBK0cIG9UsogLMd/rB6/p77Me+
+zCEdjgJzK0ynbneQiRkloWwX/ja+pcMMZ0bGcbXENr/hp99hpejvBx624ZobOvSDd4f+frBjXcDX
+TL06/SAiqy0aMD+bic3slZB+Vrid/Pd5jODaj0euuQw12YDDOsKPyOMFI90t1SKHQMn7Ox1GqQZ2
+qA6eTtNhjoIc1TGwf1Uqi/XOuSxjuTPBHKdW2VAF7+vCXdQOWq9Y16mbwiguvnuczP8eD7PuPraT
+XgmYKFkJqt3VMeyZI4JluGF4QC1Jk901L1mXY+IMWT7kv+jX8dgeHNRa4IRXWK4qf82SRIcfJKtU
+5alTKAWntjFaMJGKxVNbafPeTy0eZZ0Pm0Zu+HdXe3qhWcyweaxucl9klV7jGTbMICmJZZ6aQMPx
+rFxCS074ap5HV7EzLr8MVr7sLxAQDDx6+XD8dUvh0NPNiHs/lfBT0quAxNXRNyddlUIT+JFsALer
+RpHjDtmqJ+fVMUWlY5m3m4voVjiwNvQ2KuX0dFf5NWyFz5iFEeqoR0JJQZXeEaZh9ie1ITrYPO63
+X0ImjCJlbT3g2zy1Zp4kBuuyFZ1lexDHacx9yjRQAM5eeIzc47Id2fXZw1b4/sEW+fEnUjt+D/vy
+Tz/bvnyBRADVrwxC9B73+nv4gOnKN5V++mFUFNesjUsjhdnNHVL4nvvRDdKzD31t7qkf/cbj1q80
+hSQ9/M4HrTis+JC7y6HwNylUALwUFvf/xt3GmQFK7BP5btKeAXAg4KyPmxddXB+70wGlWfo4sXTk
+N+FQ1nwckT2VunI9IcOu/I2HQS61Mh8aRkDQn/H2pIqP5XY4RZLCZFELz2eZpTHNFt+1CXVrEQrC
+zlBBkeellH/zwbp+zq5ciVnXQVXyE/Q9EBNDNaYs08tvx2K+Gml2f4PxIprhzcFa/OhipYTC5X/6
+FkFAiskUCaGyFJ/D58TWEeWfdckVskBOljScvUJsHSz/q0dXqm8pKyCj6oMTxW7gpEzY37jD7NLl
+hfKptDlcBEybPVSYo4/l1zO/vudal/AVpYQ4nT9gYWrxgY1s28FLDEZZk8ze6tGw0gEuuXmDqIDP
+YnaIfVzbmulrIzZfFprJ5sTLSuQZcTCeV/ZT9871PXIEDFgedvKgeymDWTKuYT18E1Do/S7OPNLm
+6LSc0XeXN9Y3wjJSUHNpZdh7sPA/2Y0zqsW6DSYfSbv2crekJWT71qRX+0GW2DWEOoe8vTWFNQFt
+Kj+Uv0HsFWipjPBNo+4zFsfzESa/eNXubz53wSpezwcMU6zbyeW7dFHHa8cy7GCImqcCCXjLeJLK
+wztXVFd8MjZTTfAVKiYFL08p/m0ODQFrP7uH3o315tu2Nj6Ql0+Qb0wERI/hTqjkib6WwVH6T/4e
+ctCHUsDswSdhL8q32k5gTfGDeLHKakeVRNZaXHb6uT5WCmhdrpinKfrkhbNsmMOqWmzWY1cOnr3K
+fWuuc1811cbTMexYv+bK1Zv6UjxV6WlwTtO9jdscCeK/8UaE4AB9677w5rVxsMGgepcbRuHi5DE+
+c2IUmvODLfzWu6G0swySaYaRn/v8238Mpx1oDXwT7oEzzI1HW7yMDlEvBnGKgDrkoq7Er6bV4A6x
+x3b/UZx2o6M/ZaiZgfPuvl53nWWxqdrHldWx18fbIUEcYXa5rtz31HJsskFint/6xw+TFkGAU6+u
+wlzsn/rFxFoxujlUwNJQy1IURjmWfxkqtx3KwHPP2GBZgnXZNMZvfNy9H3rSd7nxnifps9eO96a2
+K//HXsp4Z1o0J1v8htEcX7qDaBOcsGM78Y3gRWaWDK88pHmHV90yphHoUcLGGe8FJKA0efQNX+I3
+cd0xJCaq8x99cpUPU47IlQVvPYuOsNdn3RSMCrqQDAdDKSIOIxyiGe7maPx6JmiIxr77atyfuhjI
+CnhEXcUC7Gh5X831pNpTJMsEPFF1GA3s7dHcXlMpaNnCpPAQuO/rXK70inIP93lPRqHhcWLqCd7e
+7vhJxKc1obmOwiuYeEWWrdY2e3EIEsyUyIuEEwbupKSURJM8UQSXt6ekR0IIsvZa8eIj85BZQrKl
+2UZKixwajP5aXrcF5/oQ2j8TpuwV1hEka3OLRtAD2hauAbLD+qkMuqPTbWIhCsvVSwTu+u6WlqB0
+GK4KrySzoS2ooCv/cQmVDnlQkV4/TjvX7mLdGiezIuGzgDqVHlXZwr/sj38O++N1xs1DKhE8iUha
+/pd98E9zH/zFr/6PT7txkN7+hL96wyH93XfRQ7YFNxn8eozXw8etqsZ8EtCAJRXj8CcUQm7JM63l
+20ZxjJKnK2NU8byrzMBuPQAo8KpjEgfyB1AjpY/7D1YtAkcAowMVBOanKjg2hyT8xQzMnjQCXo7N
+bvvP09L/7Gbu99Zf/7xm6H/8IzvZQlmBRseL9T2ikfSpwl4WBKWl4kx5xqdQqVBqxlcnLHwo2si4
+CCPfQ1mYevo8swrCOHGTUAEWsT7aCqAIzMIi682z9BTlTSuRCy2wLiOVve6tkjSExZeKlncU0War
+Ju1h8PdptJ9WT5lLhLKswhQ8fcrQBqr3ZOXmXIAp3avFUAjTIo7Wq5dFoyRZYwUcCAuELBmbPicr
+feMEeCS2dQevhPs/64kF/yujXZX5ai8X8JONzH/ZHv8Ut8fvraP/ZRv8k9sG/7hMzCcncFT96RWB
+yiwWipi7LFUlTeVw/gCRiYD7mHlZ56BKoEcIRsI1/f5xZuYFw7/yTMFFmL0C0irpwmmXlJgBDCpm
+cdTAL/LC6/BjCaeRBVnPQ/tUC/Of38T9nsrrn9kE/dHtyz9C3dQfVjil4mgPLMwfhG7khVIh6Qcj
+7RtayAvRjMIoV2A/nZz/1Pz7z2j+Z3f0P/8qffkvD98fLFrefsdF++8gn7fkpx/7QLwasFre1ZX2
+PKj2PI2Fsb/HcXwgbtvwvi4YQANG0w+FETA6GRK+GuTfeTpIalLMCLBFwdxhdeG8HY3+N5CXlUJj
+CIjCKqop+YVtpTIsvM/JU4if5aqjS/YWnMGRQpllKBDPcRIfaOCBSNTDzojGd2/AEYZajA2/xvxP
+TIQqvoYQYgjdGKguL+TqGrK2p9AbeyN6Huh+KxHdm1dVAJqKxCb28HWH2TwC77WK7AkpsoFhWTyL
+Foh9w7lwLPamBorrPhskAfFmCYIcgGDQIuSaIxReaJPS7HKMqsZC8HfXqBZG1wisB738IEKbRlw7
+qulGwAnjeoqCQHBfscofw1L5YZ+EY+GwlKvZT8LwcVxnGHnAt6zE2j8YV+IqMNm0L+Qt0C4RTKML
+0D52o+Wm0PVY+GuAKmqH/JG1cD8DZHJONWuJkDG1B2OEXQBgFKoyop+R9jGDgAKdTZGfO7Nv3CPS
+e4GJyVtwIJuBpbwT9JZVq2gGSQxC1RWAxMz0KmP+WZsE1JipkV2rzwWrrM3QQpzXRBHzwrDPhhYi
+Teds8fsSHFnMuzI44gAt7dWzmza4bQN6CLxbYp1MICxUB28dJV4MlxZSCtwG3tqgIkrx80tnbVPK
+NHvbA8WhRTUdzpteLfZzxY8vu/C8n78/qlc7AZE/3E6miNkEe8pDTzxhXPimAQ8thEgLY3YGQcpt
+l1XN5HnYjNkmU5unJ5bbJovM2XF4arhtMho646Be1Sbjqo3Dq+RskwVKwACPx/RNRjUGWjJm3Nkm
+a/Gc0rIn93pzCFLn/YyyhZ69dpZ7TBN++MVhEY61OOPQWa9SFlhepn2N9Shaa1AJZWNq6I8JmvYl
+5UdDJ33507912zX/zDrxtps7d5uC/9TiOnj+p+7AaPzdn2FKp6s76cv/bRe1YYKikuF9/4Ef7Cfs
+Pfkps1T+fz5L9WGW5h9lluovZjSnJ5s5fZ7JnJ4s5peN/9xO/ucX6RW0bMZhd+JlOJgOe3+QA28Y
+vhW2fCldwsV8IPZW3j5onT356VkAbqhwhhov1vcH+d2sv9rOLJ36SO7tvH3Q/u09MSwnTpf0Ro4y
+gN157nJe/U7xhScpqyc2YScaUdgJLp/s2r1ZXAcMvm59kPB7GLgizts+zhv/TzS7hPc+LPnW4dXs
+NrSnefBbev0b+O9Q8fc4Qy6/DRqUnf1BdBoL3tP0HA6IuM0OiLh4xW09k/BpdraP14BXqyG7d2CJ
+o6vR5D6kp/H7zMC8YND/PjOwGmSArGb66UlZ8XObaO/YEq8xrCa3wa7fv8/MtdFPJsXvH1dHoNla
+Ddm9A0scXY0m9yE9jf95Znznvj/2bO3orWdrR2/C247e5GtHb82uHb31Ye3o+1RuHw==
+ ]]><![CDATA[
+ rznfml3Cex+WfOvwanYb2tM8fH8C3fl086o9w9LupsPPvBqBVlmPvt+PS9SI0/3mbzKxuXwgjpvq
+1mYQwbJrhKitJbmBAXD0tjA1dF1YE8IrNnythQExgt8JcpW5nC43ZoIe9VenI3/exGidlUx4pKMk
+8sfXv/qjnNdM9WUuqXWad9263uwvs/w9G5AfCsBO7wCqax9+6IX41sojeNPfr94koLI4lq/BPU7g
+YK+ytklcco4Gg5cvuLu8H3vuKSIxpT7LR9EcejM/up+iBl3YJm+Hw5bhWdsDHwOpAi8+f+7lz55z
++6Uqog17NkcpSW3xS9mr6JABMdIL+VMzryb9d2/ZWZ+2q8EzO+Pftl178tyy+74cyx1yk7v/aNuq
+t1/72VNmh5U23W2bwkXGE3vfkG6l7qKnJp4Bxj5d1/VP0XVtOO0A8FwjfTDE0Guor97s8Rci/+O3
+123+w/TdNZfCiL73bZMnOiljFQ46NS+D+KV8VNa4/ehuWOK/T0HZ/vjBz/7srWSkROf94VmcvsfI
+YOPHN/n6lccm/mGHLqbfz/R7PF3kHL2ddaM3JarpQSCdH8NYyNaTu3w1nwhL9Sherf9MnTU8Bt5V
+yRpe38rCvgel7L/0Qnxr5hc4hOP5EH7CMezp1TGMR2icwrvE//TVIaT41/ts3E7jz9jbXe62jnBC
+P5fBbwX2kkdRrn2uN1UHqtePr1vRLvkZ2uAM+pq+nmGCkVoX8xLpPonbpVZL3LUfnnPfNOWlmGCr
+A7kiOZrZO/H7bfDCpTCIuG1xRUBiHvR4zVeCRT8s6HRU1d394SK1/Pb6B9/+SHiX8zNoIO5OOvhv
+kRdhIwHM9NkdG/mlfL50RPm2NusPAEHdALTKkF/owUI5LK6lXgDSNOsdbfCRP7o9kBQOPJjPHlsu
+9XmuZqTghUbLAFW+WQ947K8P6+1P6XgYlxlhRo/O0btvv5w9sNPWjTUcIAVO+bQpxEGQk6uR9fVT
+2/6jiGBEM8srh4pL/ii8/zP0fWamLf3v63Z4bMRbt3q4pp8dUUyGjPdWPFYVk5KD0Wm0rdS/rrXp
+26Q+te0/WlYI9zCwogVIPYbPYwwJ8Er6moHSEBPC9y5+att/FHULc3fEBOewd/IwegI2c6D60Vs/
+YpWOtabVGpH4jDXdxUhzO6p6npf4sSfexaNsq4RA3Xucqva4kzfptm0BbHycvkLrJ59avmvJ7NlN
+qDm0B9pAQP/Y3LQtOZvR2vg4TFqw01vl16e28rlNKbS0VgbgQ17w3Zq3jTB3rHpdO7ZvjRSgvLrr
+bI0P2DHsCW6+WK78WpzAuVI8lhs9SbGN+34y0+E9ATdA9CTHgYWzJ453iTW/fX29KbWJ8daMr2sM
+/qY6Wo7jV7cD1daW3zvYWizD8HPGG2uJV09IFqIQ7jrDT0v8o0NoNw9+Wgx2xMFxCG1bifjVY/pR
+uIsBhFBdXXnXQclh2KFcZWAFS/70o9qw2SwS3DJT1/oQ/qIxF+yPR3FiWa7riipUH/rqm7OITqZd
+bPvVl+xkhDb0um/BuampXj0bopMkM9ZM+gUx4VrbWnkdVHx+LnnxPmJvrm11hqUEoPwjPh9xDez3
+GdJSq8cYrBwi9kSOz417OMbkfua2KTAkzcYaH+tXnQ/DskZ+fD3loezbNo2oTn/3c7LE6/jk/XZc
+RxNYWXHDrMlFMYm2eN6uqaefjL2M/CSmDpybbYEUY13gu8IC2NlSWHFSFkrZOLe5ykfcjWNXKjGF
+SKPw3QL49amECYEDS943ft1dDsvKKZ+NneBJfpIYIe6B+0h1fogOjBNkea1fwPF49dUhEdyqRxWg
+wgA10iBA0FE9OLAsrVZINMrLD1kGsQfJxYSVjNm7GlG+N1xIq5XHnwwD5YzZBsNF9f3TCsFEOMD1
+qwAHZvvgml07H6DVw+VrqwB6NnmUafXyOIVQiMO5OmmcM57gEadtXcV4nM8zPYnbrgm7X4O3Ews6
+rilfVTvjF1Px4a+tzD24Nttt4/tSDAYN4jJ9mESf3sgcDNOPkrlrgRWEmts5gPbTLbpfgKPsF+Ay
+CuptIiwefG3dafgU9AbzmVlgeezPgMYLY+9d2btRQzPWTXvjUtQ0l/29AFhhThFylpKrtG2xtsaX
+FJ0oy4I7/YXXds1QIx/5Em/K+PT5QyJR/KTlFsbn2028Dfq2TCCIxUD23Im6jw3OWo4Z7MPrh8AF
+zuW/fb8/1z6SJ0K1hLrVVCP5cGxoDRrHTXzr849/pKfu+Xu6WwezwF57ey5Tg/x79sR3X8oS22O3
+ppu/51mkP3573ebbnsCyO3l+0gYnFRY8CyVuDXAghw+xp1Oq1oC03vy2V2I63pTQbiE/k2KeR857
+wkL2kJVxj4X8iPi+D8zKsk9FoAw0XwN+7OIbVv7vf/bVg1Q3ZtVdl/h5e2PzeugkfIhbQxxnuD9q
+uD376fJRaCKEchLkIFJiZ9vk1zZNa5nCMmz5nE/i5oiT8NIC3CpacYMBQNwj5I9j+nE5FCybj/ZL
+Dx2Mt5sMkvTD2Kyx7jl8YzNfYzUr6Ygl7r5qKGGamyf74Se9M30YPBFvGuTNxsyrHb2sQ+36HAAG
+bdm7p2HT0c4fSwfGObCr5Vm6X5FIrewK7Vthfyz2vYOPSuXnXCnbaYaKXcELf54gnNXCMVpJ/keN
+XmIfIU6QRkShet7kJElEWsDySiC9n8hhQ0wd6/ujKNJnSMYhdxr3uFdpcdwl64ls6eYhn82TKAxK
+fbVAPjEQqAGKeG1b5TsLNlvzLZoVXZXR/rZq+0X8OLO+rzYVmAh3uJLbShXL+x7JgLEylORlNp66
+c3gFHwjcxfJEeZ8WogTjIa7rkI/mhzetwBO43/i2dE+ufnc4t8ILOdupxCB9HO/9Fn4er2zv3+32
+xCPYFQWyX959E7bwS9RNrRgdF3Ufvl5aIhxg27CtxkI7EBAioSWkmgC7vSuPW0dCRwhk3zRc26JY
+Nd5nifKYa//+2Lu+5sh8WsuVseR937o9VF8jinjsUKm+tuvbPjTUmXf13PkOeVTmSXkPd2n2ASHx
+P8Uz93kCfvx9HBPb+G6eiU0+9tsUB+xw5nXLq3+Lo5n92Wfz+uZ6TAxrplnSJq7m9b4HL3qwUDzJ
+Oa9TYC+Pxoz3/u2PY9Y9JQz9AeGLcYvN8J/uFVntdajiZXbxL551/SKU+YckFBspyz1aFSIq5Plg
+3j6KfIJuAfDILxYa4XUHGtiioBeJudgMK7aSgcHwClckbnXBSsSjtyqkbMyO4q2hohIkF1dxBk1H
+78cLC0bCN79KjuqXN1F0N5EjNF5/LcxfRG9nMFw3c9hRfF1DrCeBX6WKS9YKJV72/5vry4PMNuwC
+qjXeXS9KpRvjaFSK9cMZAJ/kD+28+S9cd2QyGx/B1Bn+tZvcsPhltBNCD2kHjVDpPTnFlgu/uRU2
+WO/uLX/Y7EpcTSio9wlEARCh5GXRhXYRoW1PNNSexrEKTB4G920NW3hTiWD0KzmBZHr+B/GTqsDz
+70N+b+ZRoQUN300RqOZ7PlTLY5eenshp1MlRP2RTNckpXLOqkMbBjKsazBaYVOJ7wfIEvM63h/4j
+2KWtDH8cER8RDjiTC+c43VG4rWaW+YiAqRANYAmdSg5xlGlL+GK3rtFg0eLv/cdO8tDrxxIH7NV/
+Ije5WrQEtW9uHogQC40603IB4rzdMqB6UlpvFWQQXAmwvL/FBcZjt3/b+PCwj1tW+Teoq9wZYcWQ
+3/zGHOSAQL2dUBkQoiUYtSX+NC986/WQPWln7Vs8hKZR5O0fn354YGtoFQ3uzKsUpA5oaST5SVYX
+8HriFILD+yhep+dfFhqxUfuq2ZGYMnpl5xH0QfDBaWYyETajQHXJrWaXQreTi2vZEZRieIkM5w+y
+rJE2H0brWZdzwaubJ9hXIS3GO6uLLRQbcTy/lfKGXS+I3etDX5lMOKhoINMjt7fgpi0ijzXqGsjr
+jgSvYDIxHzzXEEirIypxaUwhO6UOrxuYTUZ8C8IqBAJYkLhNwMSlxmeAhbC+2ntP5OShDPEHJAGE
+rVW6V5X6hHIMlPlOreR0jgb827VTrCb0vM8d+uNnyKZIf7/KtE9eAxzQINIqXpNeRHg6JdRQuvjj
+6OFnGiwYhDudttCmWbAVSKpgeWdBXsnQsFrWeGHBNq8U9+vg9lNWmBsNVIUFzQzgFKR8qLzYzyVW
+ksWRrjD198nJcFAkqrKBrbfNTwC0R/NI/3aIzcWp8kSHKUNVfC9eJJ5jC0jlwS0Temj7LVAenb7k
+tDRwwEWHubYQ3nmLw2v7scR9+5W13MlLT5zeJVJYUD/8zf0KPH8uVkeVvaKBX4aHecLPH5b+XxMK
+v78uGyiMiHzU/5e9d+vVLTmOA98F8D+cFwKUgdOu+wXzxN7yRTNHtmFJGA0GA4I8bFGa4SEFirRH
+/36+zIyIqm/v3a0mqRH8YBpWk9lr17dWrVpVeYmMgIqdBUyVIeXZu1bmlvK4NuU+npav10y76ARi
+jVjC5zhzttCKnwFjiHruunjEND8be6Qw3ozQdIpYCs+x1mOc3WdT8Oh5AOtjBqI46vJhS6Gcagca
+P6slF6eGfKb2H5yurnaPz81IlqIkUdUHbxF49EN7FrdrA+S+ZjEaOqU6X765CXmTUgHURnSytIFC
+fGCcTmByGzx5ZLaHxz5EV0+HCLxy8xAbbjfzMLd7gC+hc5AX6iClY1m0Csemup+VcXJmvwt2ZgOP
+nq1s+F7FcrUJcsRhzid+Mj6WFV+vZbflDmA3tioc9vzReRJaEW6dtp9d396CPBIOHKMyODGoInqa
+RAfDhS+nCOtmKhTxjmrms/17e/aCV4jKHQd9oyXbKdfjWkz5On3esm050WEmQ0eS/qYl2YImzJLW
+WEuPH3qcmkD2O124bgALl0QMH+nd17hYrA56BKv62rmrERCQWNoK4dQJGyb4LF4bq5UbNQLvreqd
+4dajqLsSG9NfOecv4eunV7RXb5h10ncKcb+hfrL32tkqX0adJ8cMDV/asWK6gFnY1Gx/60iOubTn
+y6sBaL+vtQUzKlccf2nFYaEvl/aiH3NKkr6ejXbMdh4+Pqw8AFxM+7caF5/h2wbAORanAB+s6cGu
+W0Ao9Jl7MBhIzQl5rHFuwjvW1z570ia7vJ+l+vDsGAiNAzuqJr2YKZtLVjzd1yr3Lbx/8Tujftsd
+mHfT6EdXENk5XqHCD3bdgadZeHMLby9+d9hvvQcDasGRfsxnptMbPDHrkCPbNIcYkb+8We6ThH3P
+rScFEyVKzUnv1141HiK9vx5pZ5Lu9fVxwtD9zfp8LmN5+lS2Rs73t4Yluc+nItu47+z6LOf5+/P9
+rfP9tdt7tSu1u2Lgdn/XHPV8KG+3i5fvn1TtZv3Jf/r1r/7Lb/7+V7/9+1/94uNH2D3DeP+bH/zJ
+f/oH/3c5xb/8y3/68rNf//IHf/Kjr3/5u28+/NVPf/WL97omvpUt8PfKQu5NKY5taQ==
+ ]]><![CDATA[
+ DyKKtvlZEXoaxUq47ns77u1hM3hdxJPbwIZ+hu3AL8dXsAcl47dLYsW1g+ty59BVjH35MUYf/iHs
+whW/UyIB3O4KafzvLKYeySgrRcPyuKHt+IeRrCxb6e66/JvZ+mkbn+7gbMslDIXPlgN1s91iVpdu
+kMptq00vLpTtyBp7LKNjVxs1zrrHnXhBLtZPlAUfJrikloYBI4E5p6fR2BgJIuMyRSPzZHRe9jAG
+St5sBvI5vJhIjTzskB01XzoY1deQ1JBXDFVWmfkaIe2O3ogrZ1NHwlcMsj07uQI35/tTqqdJ/pAK
+Paam4wwrdYBUaBuX/P9BdxtpU8uQJYTrjbV+S51AQ2bb9oH8Wj2Ck9s+ef79nLFk3EXG3pJrRELb
+4YwI2ueU8udZoRbg52jj3kbuvzAJw9iwtUJnAZWGpOC3BUFpX+8nWAcfSyvVgXfxmD5fDBsiRW6k
+/uJ2jNvEsGoaN+xtaDYtiylcpd6+h44lZrkrZwp7BOKPVZiQUViPUy5G2MkO4IrNfsc+vZMpG1Ts
+096qGVe2TaK7nZpG6FdtNY/4tSaMhiXzPZSwAWZoEm5bmtTn3Qabiy/lsYYaBhjx0YYxJQ6Q+O2l
+mq4bAFxwd6bU7A2vUG2z94/d/80W9vL7QOjth0C1u3Nkdb5wDiGp/XgwZ8bCxAbT11bzv40QSQKD
+Z6WiJyiMq40Adya98lDnsTnsobJ3GS2Olar3ZZ8sqdhCiPSFvRjaMujpLI3Q7zuA1J/lMYLezt9s
+iL1yzTzNto1gsFSM0KL47L/Wy6pYdSOY4n23c93id6YRr2GElFIHtugSUjJEmuBFj/nsHrXtHFzC
+X/iZIom1j+zVngGQ8VfDXI9t3SPjNbh+GCbRRCzMbueAqyPGVjNrweFQFzK+0svcFqOJis4CSl+0
+M/rO4CCFSqWtWnCwTaG9HndwqSxbtJ3jKAtd4NjHeyhU2mE6dTx0lHdtm7mPhx5OtDWokfFtsrbj
+mJeIc416DLudJRGWWMZMmDsj7UchOW/+2dibUUay/Ehnb0JdEhk2zyyRZAN1As/mMBWYMma2k4vV
+yd5E4riMQY0cG75P2LuplKWybTyOWOswmCygVwnM76kjNgcQCAshQsdlCm9xB087u69E7fiQc7Ft
+tYYP7e90YMr35pEBXdI143A6+3KPL7dCXtIOBtAhQbEAZ1PQ2G3nVhgkEX8do8ar3a3hkHeUyxe9
+8haf9IwsJ4wZBw41YU3BIThn/LThBu7eR+chVDM92tUcTLWm1FSGTl3zEnC38GlSRul8tUKXAgq0
+5j2AJHSILXtFmwYGMF3qgZR8rYs1iRTpHXPV61ZWD0Gi6e2KKdxA0xnOA0uauzoFZuTVkWd7e+K+
+8IVBpWJN136FbabGSUwaANWHx8Q83iUHsHcS0cogledWr6sto3A9bG09PnpMweNW6nFT0IvkhaEM
+j+bh4+IcTjPegt1gEk9jF3+jJf8Za5fEeAti8PYtg3vRM02JAWLSd2vptMySF6vy9sIimfX4bFIq
+dAzDt/bqxsNpOJtPqA35y2UeKPB+y6XmJ9ZhypwBp2s9ri2+kGGieY0LeelTjLPVV/IGndzjVsWR
+anFY6pjwsuXbPkI++LbemBIjNHa5xrn1WQm1UXCxl8FhXHSvnTIljDvoSO1zNATOeQpUnawBM/OG
+6V+vgCfAj44NeAXVqN7DBHZu3wz53rTtR0squWNXLiHDbDFK1wftWDlbdx77lCixWEDknJCPhTbS
+aPhCAi3nbsfSUjRRZ/+eLZ6B+ID5VsGRtI2/NdKa21L+G35etwWqz8l3Q7e3HFGyGdG+sYNGFd+T
+jL6uX7gFr2DysmixRBbUbj0+KPMcCpzrYohBeF+OTNExArF7+zPsi75RhLN5jmiLAYIgxfbzpE3B
+9p3C89zR9LEtwd21HT0vZsmxjbfYWZXCqCXjOHdQabzKFOWnnaMDPl56DGDvfPazFFAAtTp+X/oi
+G9yB3Lvq8M9nA0mzrvA6x9b6RfvVzPCimNyw0COaDHa931CdE95Senjr54x7zGoLx4bsVhv57OHO
+fmJthE7NtthTOTzbpyxTZcvUX7YNQFTNsPbdjpDI4ky8H8f46qDPIXkGlxCP0BhkkEbr7SS8fLfu
+ZMr2tf0e2uxvY8cvnKQy6XZwR9oLSX8H+Mm2JoM2V5D7zPTKw92mlwXeWlskG/BQX24xy2S5HqG0
+rFl+HD3IYo2t1/Q4UP2wsE238GTKo/C0GLc/NWsnyGNXPUPqjAbboI/zahb+uXkeJbf5vcVWQa9o
+k4p06AwU8RfQXNtd5YiHXaxjMkITXbBFaCkjNikpvvpOaSuL2jxf5Yvan1UxKrw3239DpsCMO4h6
+7QuYacIIemVblNcIPcDh8dlHedeCJobqI3DJEX1XwMRLxOEYYQrQIUJp/zm4DdZ9XBh6brwv3/jw
+9ycFoFA/1hd/zPdLrVo6OSld23phGsOzH9gedmG6ArCmvUjabgNYEKDVnINyzDI4rTSEpA2b15Wv
+sNK+Ut6VgW5kIQpj0tA+NGPNTPLnOBciKseD+Vmh9zDhZeWyNt4CMxu2j7x6MbYnUjnR7I87xLG0
+98atbmxPNar8WEj+63aYWpCqdwjAvPl7WnM48G0hRsbeBoVc+raA+yQ7DE3sk7U9Z7cxg70W7Nsg
+5Lc1n0NC6LHgXC3n7CjAyAexNt4Xqg6GreSLffUtvRwO2FexidUXIr7bJZKxYvrKuWBc9zXjYqbI
+uug07WPcyEtU4QW8F6pg+0Qiyqn04TI8jqDwKd/ewOsM/O9+UFP68OPfnG1k1nBJw6Ox0ibRxvqs
+zcdrJENNRV7GLCxdpMx5d9C2wngERObBWxwFZ6DKgTrV8Rox2baU5L48h7XhI3gmLUZtse2by5M6
+i/alu29qxpO0vO733IJ1iSQPXixFMjYdmlfT8MLWpkT3Y4ae9hclKQqc7EmuWMPkdCQiC4t3xcry
+cLL7pdJQg94KyUzhF+Ar8ddg7PwMnbJKVac52u074+nCIbEsK4EZxejnGbU3eYdPN6x7SGyHXSBR
+em8WfHoWFlMM9VgQeIeXhpchAD0upxlzBy/aToE4NqeQxPa2D0gjIXYypwqJFPutVfEGySVb5AaF
+TbOM9Mp1aTPtdfxQwSKW7bFhWG+R8kBhti8XMb1Pe1YOY9DoGfTI8R2Yl9X4GQeNodIiI6ktjdkn
+o79kPQDs5hRuMRX30DW7Z/XNG/h8lvDz1GoJPxx75l3KoBOfoxC5k+QLnoz39MhuFaU9eB+ph2dn
+xeyynl8PjfpCkaJ5una1iXVNB/xbJ9iQNwsnL2PV6VBLJIIJ5zrzQ6Megp/XuXgIy+flKAQtx/j0
+jo59J333tnmtijT7hpLEe4v8b9Xo+w6v+AAZQsREdgJ+eW1fX81EBG50LPpMqK7M7DWMmvfNBM66
+wLaLJbiZXtvw+1qWsDNndw9q0RQ1SHQDNJ4kby/P156HugZ9OwOf4wT+hZZg4v1ZKuvLG3NtQihr
+rW2AE22xhtNAo3bGHtWM54t3pMzvUW+j34FGgP3xMHXygMCoXg99voEwaXbiVs91fKBrtNeP/vkt
+n+O3ryxDv0dHqJ1E5mCLQPWxeSBUYlXRjECrGq4Nppom8ALeyqYM3M4TYHxdPJkHNWhHTXRXZiPE
+wkFmn+nvoFzhublBAnGHH4YRqBTLHU3gGMqVu9+r425LEgoRsoWRumC0WEaFsV6vbnIDshWdBORl
+COkKjJqE50l8YZf496zjzAWQqaEUH37U8RnJLtJPDmGxTGlI7zGJ0JwNVYnVlJiwRGgiye9AvXZ2
+eb1Wxhk6+mi7tF7s5ER86ZSDdGZY3wJ5Ha4ERt7V5vbl4UCzxqYJAkYjJG3iwVajEckRKx7NdAsC
+beKpXAQG7nRja0lGZeTNNH5XzG0xQX/4Hd8/5H7P2y+Kl5C4+cKn3m3hJXkWJh7QG4Nj+U1+Ezln
+IsgMsaE3l0encA3gjI8ZzJvQNIdBhRFAEHNf+7yKTztt0rW1waLBXpkVqS6gVe8d8KDZJQZlP1f4
+ZU00xThX1yROimimrmyz7egHF/aYCHbk8NUvzYzVVDfhdTPgWw7THVcif7A91V9ozBiKPP69RvBg
+W1LZ2K/uj3iYJBJ+jbACW6qK/seQQNurN/ndi6eW0vP3ztd8G0Hst9LG5mRYKIKa3sU5/e5nP/vl
+N++BnH74E/v/4U/88CcOeHr84/H95+Xan5M9vda5uLAL2YXPyFGzvAeDMrsBoX74k49RPYgEiyeY
+nm1OQKaApBB2DCxgP//zM/5yBznedZlnD8hcmJEloSmEz+wvj82zh/3DNdhIvgvyN/k/+Zu8tesy
+PcAZ7H5O/8tvXRpfX2viL//up//wzde//OZXP/8vP/3t3/35n2FR/Oh/+9Zr/uqf/uEbXvXjT5/e
+ve4vfvrbz3/3V7/++pu//fVvvnleZ/4WXx3z8WbL86uFw1pZcV3Ih7/6N6tbD2zlOVumKnDakcYu
++zJyWq2k18d+vnxtyjZfAx8j70NjnH8zolH9HthLOimPp/uQUa+Xt31ffj36GfjtfHz3i/7xv9aL
+/vHf/vab37x+z6a/+oZm+R01K+9j/u5P/y1k/DvRj68++T/0g/9DP/c/9GP/Qz/1/zE/dLxxeJZP
+b7bMTlXn836blbyfgf3VNESRZcoG+/7yyu6dOJ3ZCmhgjQDQfAw4UJv5Muqtok5zLvZcc+DJz6iX
+kbdwEtNh3+HX3qPay8sAqfMOaDuveYynK89DnRHfTkDElFY/K6/m1Jwia219uBjXnNqu9rpZIhED
+U483KDOZbeCERJrX4LGAz67GsItGISLQiXwutgQ8wL5n2MvIW1C2nsjgxV4vjfqIs6D5qBuA6UQB
+fq/nQj3SGe7Nw3M6DVb2PJ2mfmo8S4+xrum08t3r6XxsyEhmdOvI+fLK7q3ii7Fh6QUdSLNUrpAS
+0SWNmtCCpi1dbHOUoU6jYS8j70ETCvsG/PAe1iaq4njjLdB25rSX/XTpea5rzLeTgHltTl1v6V3O
+q2uz2tn1iMOuee2lvZlXFEgdOZ3bmVcWTmfUt+ktdzR8ucDlx+BHjQQ8jcJLIMI+F1uhBhDBM+xl
+5D2oqnPwhHWGc65hhxf00BjMe5DxzKzf8H3xebRr2LfzwKkN3o8Aw8bUxp6w7F9cU/uIet5MLXoP
+1wz92y+v7Ba/LG6qtS4yWyXK6qLCDJvmNUejry41oKpaNTqKqDTxxzGnNDskoHNKY0SbpVFyfvp1
+GTWlcaf3xeeRrmHfPj+nNIDF95TO4geV7a3XlFo31POUGs1cQ0YyWX3myyu7y/FUzenKmD93HuOx
+0ENBI2a1On7yvtYKiHOWp0GPjTeAaaXZ4HFoj+SQNlGcE/28jGdW/V7vi89TXaO+nQLMqnPBPc2q
+kXEtyzpdU2oR8OspbXMgcexF6S+v7A6ha8zsNAhRmUZvYot2qfmyaUZTbeXpWu9KWQ==
+ ]]><![CDATA[
+ pIXDqJeRt/CZ+ATYDWm0K/GLMexwILbeqt+CbKdW4rd7X3se7Br17SxwViNHF9RmMatwqmzLvSbW
+ys+vJ5bsE7b/ifvn2C2D2JXNbIM0eq5z/NEbcPaTDRNr6cb+fK3XtXd/HvUy8hY0sbAb4AnzomFt
+shooNHgLsp2JHfPVtefBrlHfzgIn1jXTrAu6c2LhWZlHcCa2Wiz3PLEGYQhorzUhqQJ77JbFalN1
+3GionoCNxFNN8IHeWBIDAFG3/Vy8wUP2NOwx8h4EI4Dd8EFI9mlYmy2X5b7vQUZNbdzwffF5tGvY
+t/PAqYWX5VMbNIw+v3C1rBJ4ze+bYEA++1oBvPjy2m76E5zczjbpLXYHBwLIpqmFrNq51PzFwPtr
+xMuEHz+wOrQGgNP+HnNYm0UFqJ6/L+OZ1x77xrn4PNM17NsJwLyWudo1r3C2LD5xQR6b9Wtex9tl
+OwJmYFXeLErUy56C1RZ3u0m4OuAkGGK7pHIZMTkp+DaeLrZvMGgWrmEvI+5BYDbYrR9xoXOMw9qM
+VfZP8x5kPNPrN3xffB7tGvbtPHB64WnF/spzzEpChayS1/T2+XbdPm4ZdcFsINYvr+05SIHjdiG2
+Z0liYx746IjXxyPUy6j5LdQn5rUGeMPHd0a9jLgFTe/5fAlN5KjDwEvoHtEdyHgqJ36798Xnwa5R
+384CZxdOF2d3g8IxPK9HQHifZvURKLya3dP8ti8Gz3H3xHU20VTyllrmpmW2nE9QwcAYj7bQ1v50
+saXiemvPw17GW0L3mK2bpS4mEmPU4c1WuT7dgoxndld9dfF5smvYN7OAyc3OAK3JxZn2lbRBr5kN
+qdDnmT0gAudu+fLaXh6beOdxBpTYRJdAPBc6t+ZT64CvAFIF8WJD2KmrhMNeRtyDYmPYvWujcG5j
+WJuugtKT7kFGzW3c8H3xebRr2LfzwMkNTfM3kxv/2/sSr/kt+XWEO2O793HnUT2/7IV5SbtbBP3o
+1jVQadrHhJldFKnVhR6XRnJAw102/PQVGk80d+4VeCeOaRDvBb4P/rpsZ1JfXXme5hry7aNzSu1z
+PyeZpjQ8sG3JiGtKLd/zPKXWAoA3tYvURo7ZEIKbB9liZxJpyVg/PkbNqrcBP128DViyx/OolxF3
+oJgDdu+UQHzCYW2+vBXivgcZD44lQuFzrZ7rGvTNFGBmren/chGwy65wvZxD90xs2fN1fLsMyc/+
+jsOzeOweQCaeYYttTDktPtYM+DaNmNoZLbhPF3ujS5wVZ9Rj5C1oamk3gGPAHTSsTVdG/4zuQcYz
+tX08X3s98Bn17Sxwcpnmcp5peQgbDpgdZdfsrv461DXahQG0TbkVJcNqWSRiWK2XagMtwTZjsoEc
+oyYXwNbr4u3sys+jyha/r3AORnOMFuc1RnQ+Bla7+PMynnn1e70vvp71DPt6Ajitd4rr+LUbjpeV
+Fa5ptfPv9bSu4Brdloms40ws7JZKJjzA0BAZ7akdAD+DiSDS3RcufFlDZS/j+WLrby5tPw97jLwH
+hR20j/Ptc1hvXu5i5ckIdWHU7G61P/Pi65HHvU28mgfOLwOxue54bMP1svD5ml+LkZ/ndxvSCc/m
+OsNfXtmdvn0QMg6wk8GiRIVI9pywYXY7QfPnUoOXoavljHmMvAH5xbQb2Tq+fo5qRdY9wTnJO5Dx
+TO7qry6+nvcM+3YSPn8XUvJNmfvjtxS5n+x/UIn74x9d4H62/yHl7fuG/7Di9v+Qpe2/BiN4VjX6
+FYHZj37881//7BujFP+7Dz7WP/6pX/yIq/7mvzzGaIaCLy0/wkz957GdpRf/z/yz3MKWR/rx19na
+9c51jz9P7/2nxD9afvffpn+P/7zz5628vXylr//96z+1u8Kfv0vadqr532fdO4sFOjfQY/WFdsCc
+DEKKZghrRx2TKNVdxK+B0niIbCopg0SknWHpDBDaGtb3k4b6D3dFn62r12qEFAyCFgiwr9FKNUGJ
+9PBaV2aBsmW1RVrR5kW4gdbAXFRQOTENusj87+csM6AC0F5WRYT5YNMeU50qB/OkwZGjwfCdifyu
+D+ejJYX7Ywv9/g2T9rOJfcOVSq5mbfG7ljEpi81Je1ZymzAjZt1JhDR7R/V5UwBOGH+YUkE9Nno6
+Xt52nNHCnsVF491sAe01OtaKKXp4cdGLZdQmbP4rVGKxpjFbByrlJbX0scOrkK3Dm5lJjfI0Ad81
+wRYZPs7y9McC774XxO7lN7/+x3/88B9tq3oPZ/etJIq/j6BBjWqkO8g9K8diM5YR7mW0pllFLRgI
+jGmMnLOn7cAo/Hc/TtDOGRwwG+011gAVVJLWwcNPT/Udq6hcHYpnBdbgTg8jpIWsYxen3ivj6Vwv
+wdAZP8fUunVsshknkXp3kyXJjv+amAL2xu5MJEgGJe9waJDPDQkAbB77hvEgfsxseckzve/O+X/7
+lndBoRj7N/C2HXIj/T608kWuEwSlu1DL0boG0EKxxS3vNYCThC1KzhZ19jyMHU0cFidEGc6NA0bv
+n36Rtxt77xIUw6YTDb3W6gU3pAKmbg/hFK1njvwh3N4zi2usTTqH1v7w7jScEZ7tmjjTQlrwRXxT
+/kLnaUT36xY3rReMM1nxGow7qC58CfnLPhnESXkjwPvNA48zxKWKgkzNJiWT3MdX1ouyOVAXTAFG
+hzGSZ4YMTpUjTHUijKtwlEJeKlY92dONNmGhRkTqzgXV3zhKp8rqC6q10ZmIs9TwIp2t/JOpzXL4
+vpy2FwOY2g9dPT5DCYqYmHKQJL19DxjgjV1ibo99JZJgGyV/qWRP3F6Wr2Bc8Z3KO5RTsG7CyMs4
+KbVyt97fXaS9kHkx3t1cbEE3I6jezJgP73qNgyKiQb7oYtgBetmYTO9PGXi+eqhJXLhhLk6cmF+x
+ETqlXS8f3p0HjfDKzpnb1A62Z2qSMDHKiJQvM2xg0T/vyozBOULjiwaId/Xq4ii438O+vgNt6M9m
+3XGPxm4/gof1bnzh1oJZcndjMsTJ4KQymfQkLE5ShC+BATePesyxVpyxLgqAwBg4LRsQ+Rflw4Ig
+YZQEZiMvxu5iaUJw7knrePdeCH9RKrsifuQXak3kTM+60Oe7E3BgYs92TVlR0jHf57bv5/gD71PD
+Udy4J9S8GHRv0e547vY8MugNe3T781PqyDPD7VrMhMR2t5s2BRSswj4XL55lg9Vui1Kf0va2g5V+
+JQ6ZaW2hvB1PVkSwuElyUkK7AUFCO6eaY9F8dgh38CljEyDFLt7O4zkXn+3XzKcyQMJy9Rg7XQyP
+D+XXp7gpbfEfgYMlJic7c7UZAo9BO/a7TOMCcMzYiyPW8CnM+2zoDdyBPSr9cQ/8ig6RklWZ4Q94
+l82VEogB/KRQSTaapZzfZ9FFAHuXkR/Uw51Vgmkp7F0pSHxyZvzw7iSeP3+26yTfCgdXsHlq2sFv
+tI/igMM+PkQ0OOGgWRcXXmcTO5zTW7HheQDtZAt4kdGvjcF61wrEpp2mx0u1+t7G/jdX5QtOooBk
++7ILQ2Av6+MkyQdjX+MUbLx9BqOPhUDu6sd7Ag/nCjXyU3BbQSdl/B+DtDRnttix/nYKzyf/bNek
+D4FIclBcKDpwbZL4TTQmm08VyiHmjxchTnpwEttHV/Ol3+Lu9LMXXq6V5nH1f+OyhpSurR+6FD3I
+wgOekpuOcab21qEnsklOzLMmfIVGaNFhI7nr2wc+PsOz/fIwyYO8ggXlC9eF+xbhmm+uobJIj0pd
+kbnJoGaQSGOC0AEP0V0/kJWOTzhRmognLIuMiW/xgWpp8udMVGGxttgxwjpebuHiNl7WtK8diS7x
+DqmCMI5JKPc+MiWvpkEjvLLLwTuhFUiIMXEpaCTCg2XIZVzpGWcKKPUsAxCcFtZ9Z+vmhedPXxTy
+WgJBD2A17czO8hqhtzXvTnrzoTewMWTY3KKjWNIcm/K1jQPtVK28B7bBLl6yFWSu8bhjSdjkeQ4w
+whu7Zs2gFg3OWakSrZZMjFXVJijwe0TI0ZnMmWzylEoEaTq1MbD1jK/FaUMAbU3juTJAaDtTHcfq
+EJp37N02x/z+TaC3oZLacCrOQa0MO7Au3kTzkRuFH9MW4Sk4lGyDP/2Wz9OgEV7ZNXE9FDF8hi7O
+TkMugoYyn9aSKnCTdW93KiNVynZcEbT9WexkMx+5oYz2I5+ipKr+kAz1dYIUbuBWYl8S3WGH8jhT
+Abm3AAf3cnW7I3Ho8gSLU+Rk6fFgE826/atE2bauU9c1w8gYrj7XTvJYmw02yr6ZRYzwxq79sRPe
+6GmDc4TUIKnwr2zWwc9sQv1qRjIJq2VSSP2xi1+rpRHVi1rj4TNyAejFtuedEcR5VU2TNuKDnJA3
+iGlH4sJKHmDe9CN+UFjhHLxH/TxHxzk2GoT15QTlw/uAkHuRiKCbK82JISeXYwlGkHfn8BTTnu33
+qRR+sX1heZy9FbmvhbMmJoIbbg6p63ihzAvl+ERf+KIXGNHMvjHB+PCdsVqzXkKQ0dF7h0rG6GoK
+dP/KOcEYZ/VIXtHJ3Yg3y6W6VchHaXa0hfsUZtKbMmx5PQvnTHoya9ayRga1ivaIk+EmoauRSZA6
+C36fS0/ivs7OatZE/5t/3UjAbm7jlnJfJ7/qyuM6TkYlHVNt0tlyPjm/1bQ6D2Fi95N3aby82mDc
+3Dk3SNOY+3fE315NgPa4V/bXYvG/f3L73//yp1+++cdvz2sfZe/5JPBtAXoqynVb2Pf9093mIIUu
+lqF2JBht7thiUUnAiUH+HvdGgQfscPc9fj5h+giRjZ2UD7KiU/DTeSg+1UgUdAtmbIdbskI71FlU
+1MqxColomAJ1yrMOslBnzXvhAPSGrU8wE1bDVHeSppUZC39rjnrdAvIqnvPs/Dm4FeukOmq01y0l
+8XULh++IDMPu7IjyF/RplpAYG/TC+0oQZYq/eXa0nHx9wZST8sQhFgMOUj3FwWzckKAcVfSZVaFo
+ciC2hAMtH9POq0wRQDhFPD8rO1SZrCNXm3PkZlQRPZv1wmCqRFeqgYsoQrlDoSTSgNBzW6K3cFbc
+euuixOzYrfEIANreH4JMeB4xMhrw00ojPMywOysnRkhgEvbkAQYorJu6gpsGINFsieM83GISI4VI
+S9jYelBCfOagk4J+K+iBmUSqAzE4kzIWsIFJLzmx/QtPtrT47ZFVzprkogvVk/aFkX5UJK3AepyD
+tem5bjvdNQXxlTHKiUGD4t5ruTndER9qv0XVJ0+lBA7CmvzwAD6tBkF36LPO9tUq8Ko962F7JijQ
+YygYdwPCah/yaRt4NQCG0hicghHk6HuHexfG2hsyAOugiFx/Ah2iOidNqa/g2sP+P0FPZxeegABu
+vhVymQVp7AawcnffzKgGY7vf6RU0W6aVj1tA923JFfc1fWJYPYNOcbRJnCloV3cQxXD910Y0rUly
+tIaMqPWyulepg772hE5sVd+sG6W60ejXM41R2B45Yr4X+ksup+DX6rtNCEh8ADip5g==
+ ]]><![CDATA[
+ I6IbbF600d4YskHCvCVPOhubcNx/ozE6d1tUszVAECvZMp7ie5qdq5ASQc7BGgvOdo2iWoVVSSbm
+lpGrqzGwy2KxXsIt0YzlCnASUrf2c+sSec21x7vVfnRGKM6AqwEcZhXJE2qsFi+6e6JmLarMnmzD
+uoqwmbU2J7rujIUym2hEhLVI/bYM4nV5+rytFM0fcVORTjNjPTxAkSJ23F3V6WpBIt5jiq7SMLZU
+oWvlsSauHNh2VpGsgjUeFjxZpibpOpdKosR0kjnkxYRkycuNXBWVuYj7jP6MLvFTl6T2F3uqjRRy
+imsnWiYmCj1Rby6ib81RhM7eSqpg67FD827JCWqJ+IWXQGEJZ46ihlDvl98fdxC5r8RFANV280rQ
+YuYlmIE8/Wnmco4mZhLFJ3VGrUcB1vA3yDb7HbzwEXiuFmuJJx3UTPSNKVVjH1ghueY6EHjfDpY8
+n8EGj0ahg3T2mLIpxLQO2NyWDPTNTznAkjMAzNfYhcI4UkEq5GbiXDxE1ziK3Yu6n3ZojEIjBQFM
+EOVeS1AqXDoYzTbZMMn0mK2ZTIfQvQitJYQT5qnwFqwIWdDLmnrjWnIA7RJ59VlM4q3FyRIKNcjc
+UCdlqlRroW5Z8zxDzQQS0Zlx4uGBeVwoc038cATZpzHvDFDIfmDfI8QwsgpMLjzAItfja7uY7SA0
+5RxeiTFvkNi5bOZCHI1imMFRx/n7KiSV5RQS40fnb4+7YpaxB+lcBMztcJN1IUgt8ZYo3QZAiFXO
+OgcggUO/SzV+a5X1XHSUeNzPVUNNZoOSjkq3/JDzNelu7CiPx4Oxz242hcV1ME/q5YyTdkpM97M/
+wKTqFyEJuVM7eWEAK+j2m/8zuPPNU16iwiwD9SDelGkkY5+ZMWtYypIeNfgB/jrcPgcN7kOpHBBc
+C7OO/PljWDpT5sucRoKj0SDZp/DlfFOcku+bhLhZJ2hhT01ZVBIhueEQGaUdK5dekJVciJxpWRLL
+PROSm0g/wxPYldSOBG4kus25GJuqzZyAKadtdOwZ+0k8dvSLr5q1YhNYGaIXLRBNOcvqqXj1eFoE
+IJ7c3WRmxhSsE4SNsyeX2Do/6x1ksdBXgeL9FPTUJ7WrRV64UqDXNECbFGQlyMDYAyC7vGKngBEZ
+w3mDxFxyhAWHi3nXNSXdSDF2k6eM2Ns3K9GVPuxssp0Kd0yBeyblPdUhWGP/J5cBRhgk4NzBjRw2
+7F3z5IhMdhVUh2ip01qYoc1jA1N9ehBu6RpPkYJwZfdBOpXDJT4GxAPnKcTatWzKhCyDtzoHWMdl
+MBR0Wo9uKNQZgVLDyn8cQnWhO54ZXRcyL2yZPw1Htkb8x/INRg+XMCi8yWJLLoMUmV+8x2xtf04q
+AxUzMxYWRwcUE2Lj6aDzuBPSDV/JuHiorTMh+FTWIbycyMLbe7+KF8ZSSVKgUScRRCkqT8P6c4Z0
+jOMJaFRKGkgPt3fG6JHJtV8jjDIRU2arrCpkswRKox0CCi7rg7uqO0kDLhas3WpKN6/RAAfSLlKQ
+HSuBq+cRdRA0XDhVhlvEn+9o0oqZRXD4MMIPsYtHDp2FpBtYFwGIy4kGq7sRAO1KWhqciv5UbXwg
+EphvYa4j61Di4PJ7gAib447DvTG+45E4bCCq7BhJh+0mE5xhR1E4F87VEqMaF3WI3rkx9jTTcW/z
+InYZ4NWo0bqDX8PH8XgvvAFCoSIC0BNElsLZTOON+2+FG2HnfpVaBbxfy+HrZA57AsEVJIn8Bqqk
+wqNvxrHXBTU/LxBigMYsmNMFE94O3L2zGDfN4SQM0v9EdxDivh484o1l5ooccKSXcOoMXqLWJEQ8
+7PIiFE6tCMPMGYyakxNp7QzFEv8pDDDEeVOpfehiqJ0aBi2S+a6i2cg8djHJNLl4y+XvYIusoXnf
+Ffj1xrXsVPznEVpkjty+g/DEjZEj3SlqndCTgeCmk3vDVfdn6x0FAWQu7eJFG6rCjvZfVB05DAsh
+RspnyCGV6H0Km3gyYDdcDUVifO2W2lmUdUxraCWDM9yxpvieSXWOwtHZEQLbYDdAkrmCZIs/7oCW
+aUV7tKtNrXruAAlok3QJWKatpL2Z8WIXgKX54DZZE8ML1yG1Y/dRlClsWbDUWMq8KWYcZ2gx4waq
+lEnGURvSO+iRqcA7CDTchmOsASAX1+gGhFBPgfYCcnvb4dMFkPt8urT2yV/7To7tc9NLrVvNKkyU
+B6YZv5+QsXP9XhxhNuZprjFJmjDiBLcYv+1ybgC6f/a4VDbaavoZsUhgRJphBu+7RhiZrFQJnrbf
+Q7wZYfw2N/UNv/Aso01gUKtSpA1f6haZ3YxNzehlG51sEct6sqQn9drnhLQKKYm8xhS0hi2i8ZdT
+e+pI2xGwZCN08hqk3qlFmndCM4Hj73UPkQjz3AwS2FZm2EgfO3N6PBm79c6nEMqazI/NMlmm4tYx
+VYe3MWE09UbNwZS6skUJVNZsqlYIcToJWnQtzXlTvqCu0A/X0bowf6pzWaGVq770ejVvAQjkbSOT
+6w5iZ57ZGRKJXdQOMueOI1gaKP5eq6YT/2DxJToQ4s5L3MGF7rGPs7NzAPmercDdRqfIIsVc93xq
+jDHJzoWWMMmS1wjkfL5RoTVbQxPFqdEBxmQBbxXhQ4JQWjs+W2NUY7dhtPb69R7nrf/ZYZFQeI3C
+3+tC6efvaIr6s3+pdk2Sy7LpnjQ8IEQNFmEUhG1uHzZjTVQleL5pQ0wQNrSJzVmqM+ZTQqZG2Ui7
+mMu7RWoXux+qVjWwyNoVmVIooVQZ2zKpnQrx4t4DiBJVDpTMGaGhHJbBaWhUXkw8Uth4sbjsENV8
+fc1p4Rinfo/XfxqEjqDV7s2RqKXl6PfQADywcgSjGBVHW45MQ3xKG40JJaCI+pwHn/baVKkWasKV
+XcZJXbaH95bv/QAfIxtmNtF3tiyJj5/6QHt0LOjvmYDpyqHbm04UDizAvrpuJWHCXkP4fDZlEvl4
+WhNfVMBR/AaTCCvD9Qs5tnW2dTjhfueJZwAQwLY/Ao9nqwpL0RfM2U8oSk59MXsaKsSqg2tcm69f
+qP0M4ZXdCVk2bENKWLW1im434SV6HKhDZaOEa8tg8sfkYLEbxtwXCLvlq7pjB2ZjXp7tND7J1J1Z
+DBoHakbujVYVe49WpS1lHu7z8kgzKp1ePe9onnCRWz0DoBJrQ6rGZmBSDqmB39hPW96W0zDqHfC0
+ydGBxf170G0a7VXg6zCIm8qTrs/lCQhqYVM+RSMDSRPz0k421eydclqDaoD1mlxgh3xDxod/obgj
+NYrOVqZeNxN/wWBwenY6e2D7IRhysWGkc3cddA8epyRiE6LL7aMZFFD3tI4GQCLsBAY+jYFC9lJ7
+I4aEWKdpFYDrIcg5M8/XXxlMeskCKQns3xAefOGf42wNCITSF5vSWjsTlkJY6ryEOc1OsoUZn3UY
+V2E/gJ6g4C0Yis/gWS8aAPA224aAmMnCV/ZAviLVMoh5GycpbDlydVTpNeRLuUwsRZmOua/6fAZ4
+7BNA/ZCaJZS+qDe38Y0kgplKnEAYIEnDzaYjsxFyS4/4NEceZ8wKHig5b4Fz6sEdb7kuB2LlktT4
+Pu62wv0VWwMKEsiOScIehZKTV58GNqkj12MlO5w1PhG6VmddxndgRhxrCKU1AhDHLnOVOQKqJYal
+6oflCd2h9gaUSVynnmZhyCZMgyW9LTSWJecqSisO3cAUjlBMjiA9Vd4CGVTR8R7GseiezLs/FXUn
+D8UKryXhR9cWYx/FYg3kan0zZM9Gbde5qfEInaTjHVW+dbbv7V7ZCwdAJm4f9Z7FzKfFInWzP4lY
+nxlNr7oDhivmsjcOsNDxrBDE6ptLTvG6XkJDJaOpOu3fFFtJFhL7VnFEfaldFWfrJcVK6tEVGMZg
+FDQ3gyCkrg11RkshBmhaoYf11yXh2TujtdxDY9Dn8BECXQhfJiVmZ3NSyKs62IaN0e2KZOc+nT3W
+qBrYonI6oQrEkhzExCaxguSDBa3enoS3aJmSXIg1EZVtvFofoR3WXlxp/kW7ctKuChWYCgAtjOi7
+E30xIq90jI4xqOUaYeoFd1BROEdjQkagny78wLUEPOl8TiVgRW5vcHVPGx687rAhBW8v52qss50o
+c+GraYaVuil1Pm+Y7/AG+0wXyJ/bx2Bh1hKTU/w7fBHnEXqoo2mA3Soa69gxfEjtXEx7HnwS/Od0
+4FyWMKe0sbvQMYmueh4+JYGCWSFA9MZ/5kpgl1E/WCYhNs09LZ0wIDaCjViXL+cWyAqQuCsajpap
+ArJu2gibG5WqAwe97oFuJxCaGJROQJt3QeBO+wlXHOdPusLJCayDTr1EYDfrQF6PmO2ggLAMF4rF
+i+HLVPxjgBI95LUhzyW8aFe/v5XakK5q180jm+wH5bzuHtDhXYQB8lImySzYyp4QQ1qwdkBYWW7n
+0TFeysTaSceWnXQHnP1U2/d9fsEFCBw6HX3cgXW9V8rtTuHQrYxZSba5VN4qiniZFJubB7Mdjxdf
+QeKG7O36lVg2ZohNWFB0gIX9+Zcywwb+0hEiQn0QkV2FRHMOgAVwf2rXDKToNXW5bHQ/bLHMnOSm
+vVgwaIzIXGoKKCB5/Es3dtQPhDlYjD7syBMi0UA5gE7PI8k4qVxoZ56QYF2/I+YC735bSLMT7TSF
+PzIcSJUxE9bkMIDPHCAv8pYxNJ4qSpsrO4geAgbZXku9mxmisL5OK6ffFYE7ZE5QaO874roGQIbY
+NnWAFpxfMrHLjIqQEPNd0ZbSLixewrvJcmIMkrQoK8gMnje2kG/5WZA5fGHDfiHW83Yp3gKXRlec
+VEO3HX/fJWBpTptas9jn9tRvBXfHSruXXHAnfN278JN+bi7M7QYcxI0Ny/OxEC70DwlMRrx/PLAa
+lxPZ7LuQF/MJ09iP66ovt0mIcUVcF0a0SO87EWq9aExgXY8wWNYQ/XBnQGRxVDmk9Y26nBaL9U4F
+7oNoX8iQHkhQC8qQU+9H28bjtqHVYXKXBc0CALnPpMi6RfP4C/9+wEGt4mh1Gc2KHVmKy0VNAYZl
+PV9z+qqrURR567G5kC6Y4tDO4zQeglCNxc/JPFdqIhh2kDScRIZZnR/JFyhvYoRJsXcrGmThPujn
+zyM8PViqNdfG8mMvHCFtthnXAsWQyydnQtuxHJPTpUTmWBENRbh4qERLa5iFDpVZg1b1jSD2eYTW
+CDAjwYUZUQ0z3mbAZ5bConRV3P3nYi154NSEPVHxky7XOCjBGZVYjcDelaGD0B4Nu+WQs26vB/jJ
+fve1GXolnFT71nOmjnlFosTy9dLvHgll7KvOZxrilcQbvR05680uULS3mq2T7sRDM92BQeXD/jQA
+kYq1gDd7S2863aSUU/l2O9jh0rqC7AYY4P7OIsdqO3rdF5jqCCd3BF32c7LVze8E9COuBy2gsX0q
+lYTOHkB+BPBKACtyfprqSuA1LcQ9QKTJrdHRn6IPB/2CQaH2IsKK2reW9u76JAYBiw==
+ ]]><![CDATA[
+ do7i85k8o/ysiZ3JR40L0eGgW0AycDp3Ia7F92e7LEIxHyCwHlZUTNcABFkZtCTKgvZJZDQgP7wi
+Ti26uWw7HCq825SjyzupF8tXmGvGAcwaNqd5D9TU5Sxl7kK24I/KLSD+9iVCscHAKwL43Kj3zv3Z
+vqMqSDAyhA4xmnQWWiUc6cBQHE4/N/BIap3Uax/zlm6G02vTXG+XEa6NIeyQBDb/NPg5fAGImgG1
+TTOemp1hHKJS7vbBnEfU++x+WfXN9DbsZle5BWLiTTj4jynJA/TKWcliJP0dWHqaCzuPJAdrSe3g
+ANOAUrrINX1L7Vf5nWit3jPBBqg6mjGaOrY3c2T8fW39AjSh/80xaIkwEPgKdltdKAz0Ivn+PQnD
+sHXTw4qCiP/9iGU3loAZSOQYTEuuhmM7wuGaFw6m6NPJbIYOSBU+kdFvHAwSy3aUlzL1a9HlX0Jl
+EHcFtar6VVrlDEB+MUuVdqLKqFbVglKP2JS4sgV5qOZwR1p3drZXxjNQhQFBoSPbFnea09LmKCFs
+zpMdXT7hMkJazX8rPlMPj840ZCYFPW4rVCerIHVMZKtxBJk02kcp+ZpIoKqyuQ18CkacpgdQiGkK
+99AvTEIU3exSwvNYziqjHyBxMVaxPz7OWWMb1TRg5TqFjNCApLDu92JcmQSijsfXQ7DOMb9KRP/A
+Y7K4rAl3iFzOwsam1VzRXD8h5eDXLmoB1rSIeFtJlYfdr/fASTBgdSeYr8N5t6ghiTA1fFRLMe5d
+ziSwNaNGkA8Q1qSRUGhLjoGGsz2Vao48wKDj6LVu0qSgoOv3NZhOL/v6pNDzby280VvsImGNtcxV
+KSj2qob/QopzF+MYgRW4GsSrK00IFmA7xxMptyWfUYuAo/RFJXWkQ3LwiMKIGrOT69LIHpj91cn7
+OwNTpxdZyWM85Vqy98sySJnSb+7engGwMpYIGswHR9vRuCE6LHnOSICoHAvYiq2jrbopQP1OYCDc
+EICTls46xWRwDSwpm5pbjwaSAw23lKUSN3cFbYBM9xBweCM9irbs0vDsOUVtrlyv2ZV8cicVv6Um
+ravEjLyLVTHldjiWh8Xk3TbL8cQdWfWrskJ8Wun9BDuFVNWVhGiqwsYVxzeGrYPWrEQYryoksQbW
+9wpoRkXx/zEm30plN4DlyY7wkrMy4veTSaWFrVeSATBH4nRPKlSldaOwEUnso6zlnHKI1wX3aOwn
+tvV2KDI2oexrqkXVI8zKPABRER29v2qJO7dQGrY4ZqYt85mVldpNJNtBZLmAWX/hCMgir6P5uTvp
+DUd0GoeND4bOglON3kxhse3U0VcJt5CQcrV4lAXiOu+Keu8kOqDOt7pbFk7GMJ7d4GqAdvmSkzF9
+XTi+KBWKPub1hO2wAwiT6Gm/GJTo2cORc92BHe0XpKDizwFTdZterQjYK5MAVrVbp5RcdTAPgpzi
++2BQ24dkXSLlbknQSzi66qTsR5qwoqvaU1JDqAa+xR6N55oCanT3QISGcQz93OE9bkMpSyOBV0me
+r3GokX6fI9hYbguNbNvsTzClou+pBxgRI4CfvKlRy40kZvTloXvIS4coSreG8wA1cFPqxfYiMI21
+4Es+sIBC0ppyRB4RWTsVDm3cWSP21N8TJz8PH3dW/Xodome1VjhfQr2pMdTu52xDYUSzru3jheSD
+S0kWH1+4gAWPYbP+shmFWKGcZKybLqn90MGvrn2Rp8B3dAhB5dG2i/g2arROWW7yfE/Ol90IG8HX
++3SxSpxbX8S68992R0qGbvQIubND34+VsXUhSY5sop2g9BxJ2O2QDrYVsyjgePuB1bzPHE4hoGYQ
+uOK3MkE6oMr3mxIeyDMlZw7yK2aORcgdmK5wU5kwpXnxxE0NW4W1dRwEQFE8MR3YAwCqd9/oAcjf
+XAlxdEbMGiaxXk/Bw2scovr9jupkiRwgbgpcFeVQMpyMZw7mA41AuGuWO+ObIbUXRAXZeQzfZOPj
+wmmJY3WoalvUlm17E1LBVyi4vHBC0Az/vjOfZrNFPoR+wTUcIq0BiGHoYlzvwqV14TZtp4B/MKKt
+WykJXjxP1VZZGPM3m0ry5MxdAZF/UVE/wgfHf0uUne7IZDgbdOIsunq1RfcwoF/fD1k63Q5X3ljP
+pnYXI485H9rVQ3dUw3f4eKdfntkALFAc6tOtqsgDi3mx9aKh2cfUz1c1DtcYFUa6fWIredikNvCY
+l3kGYO+z0S2KURmRtPe1yFgKydud7EAzwHq8ofyzCBWAa9s38ywKt97xs25uTuzSbakgzMK7VYEP
+N0kmGMmjTf39PHdG0snCJlmHNQsU0fm26o3KYDLeLuVv9UoZNpZYlw5rc/WvSSzMxduDkfs3s5HV
+0Y2Z9CyEZ6a7g9mS4sB15EPtlBUtnMLSSvR+3X05bKNnhMrUg5fQF1YCRVKd424hBLigYont/fvC
+89jjLDyw6EpTgB5ilz89lytdx6p7QHFbdBf22aYzty7AyzUJs9J8rQQgkpz3aYvWchE2WS/EXJKE
+B2RuwsgkxYlljXYlgTvC+vxfmGWlozzFM+oEuCT8nocchPGGyYsejFCSGlaP3mzMGKCnLarwHIGu
+2OkQcngFmboJV7uINSq7Nr3gD5fnqTHEHiJycZZqQSeON1knuo4s9S6eTLZt530BJDoAEiN4fmlU
+Nzw2qgMccRqQXM4InPMRTDBhJOPbUKeBc4Zm+LqO0D4AAxS9+inrqhXdHGMov8wpKpIehSEl3cnk
+0ZVFmer88dr0pJGMHS14S0+FPj4V2/zAQXBxlFRRJk4IMZnNdR+uvD9FJvMgpoMhUgnmZxgHq/ae
+atMdYJmWEDGKQZnNK9H2/XEGy2onBWe/yDkWcBblwBwGMbh+fFbVMzKiiJyPtPVQUrUFYQKMEAlv
+TEK4jWHI1SvmrAP4+0OxwpRNVyv5xdPZQ8JGfx+ZOI+w+PMFUIIReufxpGil9PB9XsWbof1DYhZd
+u9KhCHSCE2IGTrPZ7Cz2rnXYRQxfcpSmB/lJiuKF2S56EZbB0y0FScoNa5fr7PFHDWw/sX5brl9e
+xmMiNi7GF+0OdGFdiz0nOdIgLxxBBX4KhVldoJLQcKBAOYvQHwZ+qutgDJjZfi65lQ7SPNKSWW0O
+vUc5xG1UUE04yyoI26x6B02xKrrVoTDIPJ2TULN6aoCmjsNuJZ+4K8ungPrWinSzAYvgSYwXVsbR
+MFcEsPJS4cbNrvMEoDrwiclXSZgNqKbYUUTGEWes57hAACa5NVszQz02XuBhiMfy/hRVgAtbYUvK
+ynXOS8fJaJzR4j3OO8tauP0sjyzcVgtaeY3AT99bBWFaFNglpNxe+EUALB43K9kGEYYV92sjroSZ
+lCLyqUnGt05q6jMJCUV/UYAlfaVJ4eQUftMO0MdqPmgVJnNSZMFgRGdCiuxbGOEZ2ml7MQYlAvu8
+rspZIMf4cswIbKgzzfuLztjT5lGVMjBEnITGIAXyFav+hRtrxpWvtRxt1wYZgMdpBDJR9DAjluLY
+wjGAD+0z1zJ6SfwWsmAp8bT2a/gYJiEWDlmoF1hmLxbs9oUpiZjWuZrKkrGi3O9OuW4B8DVT3yRR
+i52kCTAAMIf4T22wSzgRjwZACtTWWhNAIiIfx2VUwkRIGZFuQkD7XyigP5ymoSlHvsM2DJS0zwr3
+yvFxtiSQYfPE46VedXkupCY6j3lrhk3HCqP+TTTrVEXDIUnCQaJ5xwr4W8of5hRFYDbGIRVcyFlc
+pfqJzpMxnqjqd7AsmZkZwZVAgGO0OUwuZT3UCNX5E/4CbzCOkDZZ+sz4eB3q3MEcPnEGeVLSPQSz
+1ysPDLSCeosblQdsWnK6YAHIgzjnVGarJ/xrR8EIFkAGlxn6MIIFoFHIFuVityvifbepGgzZinFR
+jGCqJ6sRXhIMhhBfAaJeQQubo0CKiqjV+5cDXpJVhUWtzT7gfCrclXQ9Yx5uisKnsu0iYBGhJZlA
+9AKokd8Xvs/D+uxWfEXg3oohBz4jdNhHhT0RO5DGVQoHate+z1k5AuIY+xzC9b3hCzfrflBWZBC9
+IOgJshuCCkBKFsXWQVDBBUuohLrbdhS5zwBmZGxyF31M4x53lkAU/6cIYBLpNQCiWGwB9gvDnXOo
+TbsGAPHHFO20/1r0xlkENnQLiEwMfJAuthu+sR0tG8SGUEl5FBbTyTVWntZBZnXRkMZ1EgFBZ78e
+spoEFIr57xdbTmKOxzF6UwRFMvYt0Ewl+Nl74F44QI82DAdFb1J0HGe/BR2h18cRpVqR8ObHgEdo
++h/sMGTL3lJziH+eKP/A57gmgRoFIjvf0dq4biUvK1Fn0lU6OxhuYV6qVpXFCLK0WjgKHum9ReMz
+A5qmaUxsHvX6QfwYm8iMHqiSO+pV+f7lSfPcNUnM03AUgAECemADBAjo8zUiYCg4HJHK+nKq2UR1
+ArbjHdMIeYzRZbPInRS75ymqyuAR/4B8xemuBi5cqB2/EJ5+f1LN68TieDPYqaRChqGFOkYY0Qxi
+p0s5SA3rcQ8XzcJslYPZQdsDVRFGilz1W7TBR1iE0gyRXgRWe6HcHLaDQSnrbrAGt4031elg4kfa
+hYg0o4TRL/95H2R5F+7fjMA1iEfHjJWdue5laACmZ545NsTnBNRNCNJOJFe84eSUc1UNJR7Yc73E
+CI3TnZw4wJLvZ5fCMT8wVq9i6A7yFLyPSonpanOvJyZnNspuNlxlbyNeNLKI2O+8iFUclBC7dAZK
+UJPZ7oNqwGk890T5uAu6RQy2CGRsWOQVKzmpFnhDIl1zsU5UTUKNXfgjSsqLu5ekEhK26xpB7ove
+Y8Lfq2jalJcsh8ClKg9Vo/p+yvqDd0tedJ+EhozRab5Pm+1Ct1JCUdGyhQwP1wG+PRZErEzdud9f
+HvgW9ZzZ2YztRPds6SidIxAc0YImVkup6RbcPYQRqTtb64nD9saj6Sqq8zNtwTgGI/pi2sGdFOHE
+WkSYpyxfeLgsdAjYHDRNGHSIttyfBWYEjcBosh6wlOThXV1ncoRaOOxNh1RCh9nNCBis5w0V8RoM
+EeFCE60O8OULa+JEtIBYJ4xUuKkH7ZTPYm6HfNS7ORjWM7viRdROwl70rwf1CtyJrerBFrOsI+5U
+wScxb1GQ6c3+0ri+XkRmembhk/3oVXky87Y4o2GUvOQFFd9qIl3RkRO2Jc5ghINeEeo4oMbo5887
+ER47Vf55UepeLAhJAiOoRr5wAPR/E7eBizNBG2rY34xoFxpbVNJGPsvrqCIcOGcZAfuWIFw89Z4l
+EFkCQb8UjJ1GsoI4dIGH1nXIWk0Gh0NXU9jR/VggRAtjZXr8YhC5kAU95MzDiN56h2/qFvjKe1CS
+vghbUGmXoNS+/JJxJpI1kGkBQL3vYaMO4+lwjNAJDuJydD0SMoBceufqcnXV6kx4Ac/TS6tIZAbO
+OLjKeYiCFtFC8emlDst9lDAWk4WO+7jVU9ifc9EOLJ39S6lggRYc6pAu2oEttmtN+Q==
+ ]]><![CDATA[
+ ZAv6UkjjUITKES5m7kOIcLGpO4qjZ95XpXgIe2t2kEULY0AS7SNFzTa+rW4mM2ZCPPKlIDOYJack
+eRgBOfUPOfGuSCydbmZtfsuRuJ6LcAJ0WbCvN4yPOSCL1CmLdrJquj483nmXN58jtxlGsoWkSHro
+Fsghl45aSxctWYqF+2S0j3Ce8vDph1xHyrirp3NJnNHvgaFHH+08RCg8OFyIU3Yo1pdo0x0XJn6W
+C2vSFVvecislU9V6sen6No5yPQKIoZ1Bn7NI9B2RpHZPQAUNFxs9fy1O/cQpbAJ593P/EGARnlxZ
+KijLOBYlUe7lwPe2BmX5dQTP5xlALDncfBrpaW31kd+l3SBOucxmVh81ewPtTEO1eKgQ5/2xjA8u
+8Q933dSwzDp2VbNuF1WzHe06XbLONzuYAd0bAkwdBCM6bT7OEFElItvTooI5sKtuKt/qGnSNfKnE
+XBU1+83osD84B0iWj2AS+jhDLUXBhATv2KBuU1vHASkg6+zBqSRb0yksQ9zcjHBNe7CT6BZ4Mlxn
+4bnffohysnL/PfJ1QhkEKNoLwPv07rM74XRR6cgVU72VEQZ7NsS+k64aqdcpYKQyhMPfDz6gMWAm
+Ct8Stp1OP2VdrImlqjm7n4LmFiyyRn0tjPxAalTyYWzM3PhsawT2Z7bQ9Agjv9HGnOdF+m1xWulX
+eZ+SHC3KQTAi2myiVViXR+R5Ig3ANWo8Msp6g/Tb5nFJWYVdqobU6jdGYbGQz9Y1MybmftrhQKA8
+RV31qqxfkcsBRJwwpxQxaTT29OSrnnlcjEPW6QK3FMmgzJyUaBbgYKe23zkAAULeFEhHnCGoAycm
+gomLz9ZGqOSMYHOl5T87jey0tfZPuv135/lQX0+VjNccV1ip3tmhzaM9laYHiqq+agZ1OJd6hYfk
+fEiD3ZyaQX9OTrQmHojTENIj6xDGEQoA64l1cEpHzL7cLQUWNLm5y63HOtu9s1tohLOpkfjF6vvB
+eeqY/V1lZCeAQ1UOxKCy5yrPLAYB4W6lI9MvhO3Vw+REDmy3ocTCbHI3lwR9p7VvyLFNgqebXSMQ
+zTnrBV1gX78jD+g33FXVqk1oUdXO9AVAcrEOWUzVXmPKUfvGGCwWtzNfZpE+jdozvSUXERzUxE51
+G37OlmSHF7I3+BmIqT0FXG+6Oa266YIIzjlYBQYg/1CVR/GQRHTJ8rKnuCwMczvV+CIoOvUcp/o2
+/Q0fzI6qNL5M9N7YVmfi0qgqQr7BVumFeKls2nYPa5HQImONdR2Ss1179s2QY9/iwucuQgiwfjqK
+UoO2WB5PwGT780oBotQzr63RXu1IQcnHwmhsQfXg6BozlMFhxPbqQvVijVrIBuRN/e3COSwV7rX2
+sxorABcII11Oe+M3ToESV8kRfrBhiacbfvHYUTFAPjIgvkjRYtqaQBGoTh+f3Spskcs0GFm/MAIs
+wR0Qsq8j6a6QGSURRu0737jgJoOaCGJ3SQx9bDsjvUuSOsr46kmFBGess7R01tKhVd9FCOiCIhkX
+OsnfCwcAcY1V/vEWL1qDpuK2C2JMNBv3kxQai3GlNdyj18uwC1FZLEJI2oUoFuZgWz4DoLXZGCJw
+A8AHzRQNuTEFoAe1gus8LzFJNWWJQnKKLMwquU3LADTdVnC+NlZzkD2FZR3uhSsZ3YlW3iZRkNir
+x3hCDVm9hXa2WhglRIQOLqlU6b0UlPJvKovF0oDZcZxv1mhMJokKMfgE3XiJvbnP6meZaesQgpuQ
+Jh5iSrIKZUTr486rmYO2oj2+B6T6Y2RHOov+3tP8MVqGMK+Gy+tXjhYBjcEZoEW+pTIwjuqXlUzA
+kwDRWtWeyO3grOkfvcyHU8hIBkC3tUmE5vQL+WLd5xQaBrCwhHm4GvBcVw3WjXejMzLKzxwBfdPo
+hVOqJCyQHyz1m5gdeKwB8li/tJBvAi/GjVgZOxReVCEH68YQot6N4bsYlC4N3hbKgnbGjX7hBJB9
+dgEpCUCAeW+qTTWgDgMKRo54PyNgp7rEYwo1xaYqtjdSoVxduV4Pn0QQpNNyjoXrmjKT8AFsy/a1
+pX5hDSD00ihK7M3lKL23yEShzL6EZbopINAQSpoqFNSjZkxsKXvIFzbgMa4q+xYqQWooIh+Zk6kA
+Nw4a77b9xJ6LCckBlNkn4AeF5PmbHev2DefTQ3eawpK6dKzEHfCadZJtJkmRebhdkrx7sTVuXWoN
+izFvPqTFS353jjLoCwdgWJbV4LEFx1whmxM21lGNdvOmjQ9VAruBfsSYkFzMp8S8hOnP8ZrPIwC8
+ngJQFbsC2H3XoQG0LqCke92nPXk4ZfO6ydqcZ6oyIppD2hKobbZg6T9QA2HURTw/LohmTVLzeFXX
+f4YKlKAQ2Ja7SyG1ZHiBaSEX8QL5GSrgmZWJGfQq8BfauQ6ydLI8GwYSC2WCqbpntqsE0SmZ7V0W
+k6kuaGNYFkntOIzty41NdOpRAEdFR5qJyfW+nPKqE2WVCwzkmQ/qZ2YoB859lXbZhOE5C2RC/Jde
+lN8QWd3FlcPq8qlPmVHEeHWJCd5pE1W9o6+q5j6PdUlPSB7DflfDLCxl9urx9ZNDjwujBzYEvvZg
+2epij5pqC/OWvsJgqhIonEmFVMRFOSOfr2isCg8gkH1V0rl/RRh4+4qYjDu70YVURmQZT/WYLUhU
+CeM6hebPceBhhElWAYsi1pLAq3i5wLDixsj7TAirnREib+6pksFeDcB7pougH+pI7t8eZb7wKWKJ
+W/phLiLc4dC5wyS6PuZiLIo4MW1lqsz5nhJBroT6FjFxTHUZGQz3ZBfUsm3e01SvRdzWABViLEV0
+sZgy4ipXl2i4VEc125oSRfuEdKEd5Ij1DaG6iPx3BTScd4Xani5YBGTePnoZROMaLnc/8Xgk4OUE
+7+yKJQvYnB3WElFrCXkpoRyOrBnFnZ3o4hBaCq0yolzlH7tajS0+14ZEVWEr1iHRf7VUnWwSyHNe
+VMYCx2TzIy5sVEArwev57p76+TvkZv7dv7zcTCjL5EdM8cH1KsoHx4lZZcCEzh9OgzkCj3DBjoR4
+EWxDS8GBALxYU24ixUeJCQbnaTqQlcrD0dPFR8JAygbGVoseUMdQINxnksnRHtQtvXZxF5khpF9e
+v9j2POedWdAnwtCOiX7z94MwoZz24EWiX9uDFvplJ9tFvfe2XU3evIfqRVbYMAvlVBCm+nlKlEE0
+ABPK+Ujcz6/UaJA3V95KC/mKdLSNHa3XCAolU7CUUlyLGU3L2lvdeJcOC62gg/VFXLBKVRS1IzAV
+3mm/Scsb/S/JEFTR/lhOBabjezlwSKf5pDdBgJ+3mBW4Dr7XxBEPjjv/TA8g4WRt7AoVZ44/ADE6
+b5Mc2Cm8/V41F7LXFqXEnZk7YRlU8PN4Wkjg0SbmjeCG5Aid0XJnz8sjhFK1YrLkchVwXRmdiJU8
+Tkod8Jp2TuNBEIpFsifVLwVccx0oD98upAaZNBwrPUgzsrQJWrQjFG6aiRliJp6rUiner9bQCeic
+qScP0fiVzSRmYfby5kg6xJOdoKGcIvB1yu4oxeDiQb3eoQZDEAY4HWW6Uu0oAlj+g70OStbbfzvd
+hBef3JWkpnad2cdcTAEyLJ3RTBHGQTq5Pc8AhRgQY3tEetfSV4j0krTULHOdGd071d7xzALIMroO
+Dut3RX7gIOnW0fFtdzbDvo8IV81OUQ3Iqo4mbVpbrDz7b+aLgSSkmZsgVfAIuldj42ioajgZhzR6
+q7HWGSar4lfRS4LhJ1wKpli83V0uBcqtlgYItypUxCqcilyYjkFRYj5x/bokQcf64ASYo4HULFkE
+3p5unxE12QWunm0H4nwsKgdYZ4+kHhsHT8dxEb66It0XnZrh7bGHOg5CpJyDNp5ZKq43WyMqZLu4
+0mCCu4o66BylktAqShdY1J4uJp6jfz3ZYQMZG68YEq9HRe4VNLT4czs+mXgnQ8RW5c9O1EzQEiEG
+Tgx6YbRQpEhHgmUJrpsO9cbp+04RSGiEElvHPCRzy9uoOOOIEJZ442yLOI3q0pzxR6vkPyny+Rk5
+LZHAz3Vz2AzpZy9Bjh2uw5kZREhZkXnxxD3tW2LvmGCZ/QhcyuZRjtKf1445tRcLvJ26i3FDJk9F
+ZR7U13IlrQlhdSmkP3S+stoDvYMwQtDet2VBIig/laNiLVxHyfRRhE0xTS+e2zyynKZ5MOtjEn6C
+ZXQx0VcyuWQhYYo0sL2WAtuVM/BZTfDUqPk1VVZY5bDLL9HxWxduuzrlNyNLdswNKmp4dXuzDo0s
+u8WlRb7i1RNebo5eZKndJyqsTt+FoXlVspGNmFvCUNeJteWneC9nw3q+9nWzRyec9xtV3jDy3HOe
+mpNYB31jvJmG8ch2BXxTq9QEmGY+JRMYrvWbrW4KcT8vbEcWQWzXfjczE802lqVoVTjrcfrbfyM7
+QGLnl9VRymIPO3KD3lMop9c8jQiah9UcC+Up4KKPdhBz1wnnsKzzTWwOILhWZYfXQCMhvNsobbSQ
+hdbOAhDWgB+G7VWtjlSeMQ2ZgGVZxaHfDJqRnhySwvB2MlViwCTth2QglL1udCleMyrKXI/Ra4iU
+dllqjprIRntZWD8Pv8zWD4CiTnGE1QXX5+0JpxNyu1SprS1n0MkRSfpRiZYkS4tnnZWTbQ7efvwY
+Xp1HOIPnZEev9+xM1EHVgNI4ERNCSC8MReH7TiAW4qhk0WCRRMPJ/yo/q6okjsvmsglvHXw9OdN7
+cD2HEWBtc7iznL59ev6MTKsR2Q3CNnNS+yTUOvx3e7ClNJAT2vBkLkR47WuAvQn2BqqIWig6LI9H
+TCED52BbuLicwxLCKi5x0m84cJHvjOL3om6p2XZi8y5a8GzUJ8I09qLbi2TYioS9E42cvHCwofjb
+FRO7naybr3cT8YpPasLNCCPKfWY8sDNDzCGWXaHfEQcrJAmd40bAyuBhsyNk3ad14WnNlKR3g9AR
+m+1QZck1cSf/hac1vr994PmVOLI7GK9s0fSzYIwzAHrhPTKaYpoSa7Ru4fBLp2eKo4hK7KA9Okf0
+IbKQBl7YYcujJxavk/aUUzZhesy9ZXcL46AFvWeOHLcy2+RDTcHDHIcvetNtZtebROu6mn1DeQdv
+EQzkflTj+5iagjmYvrE/Gfs6aNHi5AdmIqEKmlVmgF4/IpJdOOMuTlfLWhLDUI7gCxrx5xGfdmKC
+ib7kIl3IqT4eb/VfzN9OgBLI3mjBIDbXcrcGWPkU8ds+CDu+WTtHoJYyhca2UPFkA6YOoqoN7SiY
+jUtCTUx2o96+imUccJgaQmsTuoy09HiinWP1vkZK9DN3NFC+jyrBFttUF7kIctURUxJL76lc9Tt8
+Ii7xUNhczUb8wTqTn5CVrfxLEZAdkSMh6Ead6rluDNyP90AH06zH3ic1vSnx7AthqFzYubrUyfTm
+cHt1TOZtUt49OnXte/QELP7RDG6CY9J2zPDMvfwwmHD1jla1j1NdoaoRNgsYuNQTxQ==
+ ]]><![CDATA[
+ 4FNJpsfNMA9yVJOWPLe+VMHgCAYVF12VgVGW7/yW0DjCLYXgj7IEpkTMYQvwAjJuwkFH5Ud44pZR
+ovU+ZgEJMbtQqZFNUjVbaxSDKAwNnKGCof5oXBHpoPespBuFceI30IOPxASbzyvixgG9w89cT/AF
+d8ALwb0PcZZMXtdgJthALBw5LK/sQ2qkBudmLLLWCDhACnnPswHdtz+YRHEPmCkMYOlcy20y1UAS
+gxWa0qqVxPk4RbEUXEW4J8/BxHX8IGqUsE5OAXQF1kexmHIHgaq7mIEXdwp5USukuwcuiAFcBmbi
+0ijn+iaMxIy6962oeXbWoL7F3xM/bRUsfBrjkKK++Y6+q9Ly43/5Souhe5VB8vTE7R/HP4bV4fHh
+22kHUhe0kHzhN0P9EUu9bQY7II01yNU8ZIzRZGCnwcwX9yM6kR/BiuL3SqKM0cQP7nniPHmlWBcW
+6f4teUgsRcLuOsZpx6wMvse8CTh3p1vjwiwHCZEJ8RJAawUn9mFV0VYM9gyXQwKTwGJ62hF3GaOi
+jm/51dQvun5sPVaj7onsAmBOm1VBvbX2Z57eR5ckWuhZ1WTc6qzdmRVgAB+2tKy406pihby3k9Yd
+bep473YPpH+nYLVzqK18vh7CO42mcTFMYDzdRFNu/V3wuLpTjur7YWahRSUcRuqwKLUsdU+vAZSL
+lpl3246K6aAXYV/lUL/cQZ2mi8u0oQXNtVk63ZDCsl+iaGxmT7nrZokbwIU4B36s90WKRvTi2HO1
+yrONCZcaDPSf6V7hWA91LyKN0Zw7pnJqb79JHutPX7crnkQdtZTzj2mHCL/uHUhsV6ZqgtJI1dQw
+e9R4pPqq1fmBCFjp0lbapy/b8dOEWbI9wpJ7BSeyq7rGrCO3N/oTQ/IgzMrgA1tpWuy+duI3bdNY
+e67atK++bJDWjanKwmmQtwN4KSRvUr86XaROV7zJZTQ3KQlCEMB85HSoC8AvFPxon3ko8SM+mTlv
+WA/nDw1dH+9C/yzxscqtYCRykRxvgetayFzh/IHzB39MGySwKLMR9OfhdyEwAihgT4sXcCGNuq+W
+ZoRztgvsqWZcKSlVFpexQzsE/shXnwx2k2CER+QZHEv8KtYtpObCkcIwoIXb95bMflF6wI3t8d4f
+0+CwbHUlWAYboMMuBFfFuWHx2xJzMwqNloycYulyiWdiwacazPhqjf0hUcgWB+Ks9yEzpX1iSFOo
+vtkPA7O8Y/W88zHKV+/1w8FIyFcPcAQxEhbg01cnxtm5AR83r686yBaCsk9PgoRsOnKdXoiHN50u
+dBoaR8Zgqtrhjg02PoazemBzakcydTF6tUDxol0PaJilG1kEmFcB8hZymxK0eyzAtcXdD8WzeTIx
+i6qtNpVHEs/a7mOPHpeAwWIawlUOK4dFp453I9z99aCGsPTm1tLFxOZDfTzFipVdb/yUfrAai05V
+J27ld64Y6mQR6t1BaN8D/PKqCpz37GJXQTzoHA+NO02TWuiBSXrf0mBLM/Pv5autbwwaH/ZDJ0/u
+ua/J3z/XohOjknTOjUFjaUaL8TUAwIdsDsLqQFKxkm1rEeIUW80lRKFmZf/+xB3fF7Y6DwfjowbB
+iAvjjivRzu3KMg2LDb1N4SUZc48Y9ww9NAWtrPdlbSFe0KSg3UVF/vwxvvhXDUxr9v/H7/bQyZXA
+p31h9o31lSLc2qnM2eFwyPrRuWJr+SgaraoAd0hM0rGt1DuknpBDXAa+p34t3CQHeOo0tA0rErnu
+E0h8HAAE21HSTdiI7Ndhi7EQILor7yd7Mw3fFSK9/AuHSH/9g0AcZyCOHXn88x/8yfjwoz/98Df/
+u12wz3/94Y//PKef/Ltf/fwv/+nLz379y8cQbvj6m1/8/a9o+tF/+Oanv/lTG+nH9n/+5r//4E9+
+94Pf/eDf/M7+139+jXBOH/7Xx3/7vx+2//6hffiLD//n/5U+/PxxT3/zX+3f/SISHtZrX1H0e2xH
+XCjDJQlQeaQq5WjOH+25mA4n1qKzSly0+wvxaRpLaGVB1AlNP9EOyI+xBYfPMbzLGteyH9t7NAoK
+uC70hYFNUoYwh1UzFWTR7289AOTDdddwRcG6XtS3JW+i8sgMmr5CgLHF9+kMsxPZ23ndwIxSbJz5
+ufPBZmxXERLVSP04zydBOA3lcUOXpoI9x3ufPnOEtRJyrc4NGPPloFXEatKQfvw3ZinKYZ3P4Zn7
+z7m83Cela9eS57KZA3N4fxhBoWs7caeKrecRVRR9eLZscGNfaQ0ahniQfXheM52nfvczelocGy0a
+aVsAtOCpZRrbTHhiu0HdAZBTKVDeerSd2N7GhGucJ5U+0Xy+WWsVmnJsPaSkuC0Ze/1tYTci9ZTT
+am60Dxm5+YtS0aNh/26GT/x0yvH05W1/gmcHljt7VeAb9OUVm3I2hKqg15YaJ5OvwGK2/Gmk/LEV
+IuaU33A8XoON4tYygE721bCFaQG15ycLd1pvR9XfP+ZNPL6PHfgT7XPCL5uNSK0a+68lcXY9JZyM
+JA6TxnGI+KEWyZ0l0g6HjUfmezL9+xgEXt0lBOYIE75gpwz6dHLIBTzHVLi2voJNz9Q7k8PYtnRk
+12FeMr4lDDB2gLCcimqwhTKJhKfEPuQU2eOKN1vjQr2yvQPpjnRIqQZIPSe6mRTo1LzpSKdJT5bh
+fyKvqHuLna+tZO1QzkDU1ZfXuQ0ssVZY1NulEZbZRNgO6dfjyOch3w5zo69kVDe4e7uKIrsA/QSI
+K/ee+Nqc00R15J7h17ig0SeZEyl4BYvOyjwVEfwbK1wrcEarASOVuG0Txz8RHg4cqzAucpZWJXOt
+f04YWa+n0z1zwpWPAQKvTFPlKaVFLh2Qur0wAff4ZXzc3nryibiAxzePCMA7uT56Zi+tzNrNGOze
+mtg7g59WqcHaJrYSQRk2ODUmiAXj7x8HBv3hro78DR1a3739+77uLME+2YZg8ROyWoUUozMkvt3o
+y08Dj8HmDkl0zgj6rEiOPd2wIDUjMe9syi8qgaWCMzZlNcxtoh2I4bNeBRTZvWEZ9a9Cv9NS4Dbs
+J9rnykhDOtA7ChljVeTlULe1iseRmFfreUgTV4Ir2A6phiIqzKCSkoh5dFToiyohVfDwuXhniXGI
+u0vqnWxtAVydiYpJwf4bXR89rzPwKOI4Loliu4+fFu0m+YGdksptHlicO+tUzakjEZhTyL8zZhF1
+cyLvi29aB5iDdv8eQGo8m8v1kKmmQ895BPJtSSAHxkra3S5iV7f3Qj7hDdFgW7ITzBEJ6uBNnKbr
+Kr74LU9xZaTCO9PhZNH4UcZOZcGIaN0np5A/w6l/NGkhN+CcbZ2I3zkcbeNqyJp1IFAtw60+injx
+AzIZma3DiSe/bYCBHXeMVLTGg6oSA1S2ubkW6NasN8462VBRGN4UoUPLgl8Z8bZLuvar6odvwOmQ
+p5qoI5e5B4MsL/tNGr0L5YUbFPZOG9myvJ9od1bWsOezSYVHa/jqyd0QRK5WsFgHJLyocDhEN7id
+AW6E0XvkY89BPXDjaNMG1eO48BbWwgoKlclmtFZjhCjI7vW0d24QdAyn8ZZ/Z5Tcnigd/qlX7lOx
+fIa1u28Zq8W7w6nM21WqncmSFyOJrDyeI9OY1JKbfZe1EfyzeFHRKVt+zG7BMQyfmG+2Om3cMaF7
+LWgFw9gOYNvPBR/gcLVZlStuIkXk8xEV0zLj0RIRZFGBNJNjeU4RdeYw9ySN1WggMeM+nLgRo/mD
+HYUUS3hb/nOkHgQZn2je3rludjFwF7zhkcZBgc+Ylhl+ppLge4S1bJWmvHDjf7xAZu2feCthdAY8
+ZbA9LWSvxr3PT0rk9ZzD7p8VXbNU8B5xii1PQuJK37rl8YUvMNJp11V5140oSToHKy/ch2mzw1Py
+W0AW2TlJ88L9nvRcRGdm9FK9HOpRU8MsWm+AHGqvQPmseUEWXrknuB97arA1h68fjK5uzDcSNfe+
+ws4Gsoy6lY1a6eJaT0e89RFN4S+sAPXE2RlTmQQ2acVDKwoJHhdbUI/ZYnQzHcM8XD/iYNkMkZtw
+sXStDMARixcczGEMB8zXadaL82bbivVLTvu59HDlSDotF/CNn1oHS2Z9JdmvbZG//kT746hcsdLV
+pAPaLjdKeahFiGe2AzSc58PuRxsr6LD9tzxaCJuj+3wSm5wEB4itie3CPwzcWEeWw+wsbjqajFsh
+XBLvrNqhHrljRWnkiu1/yxu22xie+jAOBgCvPHdasSPPC55dIgbZR8Le/PsS1KXrMP2U0AB2o4dB
+yiDtrdu1nf4T7Q4ojN0QdVdLCkzspaTy9iRnHEv75hW0suGYeDTy6li2Z+Mmct0cNLu3ZudPPai6
+FC1dOAUTb8zDho0DE/lZb7MK6bF2y27VCdkur6accXuCN5AQPA7gOkMkrFUm3bzJKOTEzgZjCace
+k16CBCOM3hbhRqLlLLlS4xlKACEwQtfPleCG/US7d/6F6GaADg1xnh21uE8w5xlJ6rLN01JnGcyY
+nKSPwkDz+LGkxkJDbw2Ka7o4j/J5a0t22vwJZSp5/ZJ+jkWzmVzFFGJ3RSRyvDk568mB5uBmnwb1
+OyMUENglSAeYsXRQDfRT4LCi0yILKJtj7MYiSnT9hNg97SnkfHuqRvOeIz3lVOFZedgWSyn6KXvk
+gQzLlshMTsbltyni70ii/9vXhv/lw49+/PNf/+ybn/z4z/dPHn/wl7/9p19+85Nz1XPKPH/48T/Y
+//0zlXcmk8WO5fmi6sZKQPYKfWqQtcYIaBLV+9iJwYt6EdZblreIlnlNdusgygYbfRx/mCVjrl8i
+Wve+K+rKDnzVtqxmiDkna5Chh4HI12TCy/H+rCJPoRhvb/kIWAJiQ8HDX03B48+//pnN0Y/++le/
++umXb37+4Re/+enP//6bX/32Q/nTDx8NCPq4Pn34+PAALQmTdpR2vfDrxSz8E9bHzmJz+LA/Vqil
+Y9uHr3/xgz/pFuxaFdVxUrbwan9EEnZX5XFEHtX6ZlDfxyKxwOkRN/7N4xXVhE6Vj3U448d+769X
+SaEV/HCQV5AwfP35D//hr7/3Dz8WDDoIIr9lDszXUSH/8PXXvor/5Vf2v/nr7z3w7/u6/u1//ean
+v/yLn/72N3///9qff/jRy4///D9gTfzV3/76N1/i3/F+fr/b9tLSn52C0dv1/IW5xbeL//3P5Nu+
+qXe+v3c/1O/4qt/sAO9uFe9+VO9+fu9+pe9+0v+/bYh/xqzy4ywlYQo1jSwb1qL9JSt/N5Himkly
+fhUyKwgTPvNMD1z0vviOe5TEIvIbi0n4Hm5RtEYoFxzMWubS5tbFdRWiVoZ5z5mZSqTIbIJTv8Dn
+5NGHyONHj1MTsQqO/nnn4f/ZLdDS59wBhxGx/CE7YE1wtqpnpR6PYv/Wu6+Kq9BMrGavOq2RW1Dt
+2g5YDINk21Cz1lEDUr7925Wdl9Ve38Mdsr2u+jb0h/7u19/zd+fDf3us74EMq/vr/w==
+ ]]><![CDATA[
+ c/v7/tsfWPBntK59oRkac0TaYfcLRrt9WnqDRr+H0QMu7X7QhrTsyaEfR53MILBUit12JRUCVr36
+mh6eI/c/JKSWyJO8f6IoCbDIY+Eh2IEkgXHdxGwmt8CjcMRw9s00/CvsgNauW5jivg6eetFsld6Z
+B2iNLOQTaT8/ASqc7Ivr1wmUyBI9CCctZAJwbp2uxvYoU7kaR73b6CnijK7WECphypjhtnNAc+Jc
+E1Iz33MG21kF2dASL4iLjCdCoV5Nw/fYDbPDUKpth66v/Idshx+zLYTHrpEt6/c4arIlgx+OWrbz
+PhMplsZpKX08hm2GH0s3pOnj7K3J0NmPM/bt345iKQ9L7hUD8NlbsE3pD/vVr7/vr3ofTZ+M5+xz
+/J9b4ffdCndwosSxbgmeL8xrO4dV5OfB7ea13NSYBM9qHK3hbeSb3MQ53plFJ4rRsjNpoM4hRu4U
+QvUrJAbHBYB/eDrophRb0AyC1yijdpXxWYe1RKUof034XF0Wi1WyFJn84N9WafLVNPyr7IUo7TmJ
+weOm1UlT1mLvQj9pvwDDOAEDAIaWSl+YuH0aOJyObyBN0+YWN6C7X17GHeQSsNIck3Primtr8fKv
+uX0DUsSDPPzeeoKJUwvbAr/QZ5ZsSlYzL4BUFiqoUZHg6bfT8M/uhc1AwNwLXdcgAz1p/9f3uWox
+5MNd5T+LK0cO/ZMryXObvQZDiu9z2QKQxxbGf77zl92SSu4L1xZCyr7L/UG/+fX3+82dhXbekF/8
+H2mP+/0G/v0hk//xp7/9/HeG1/zL3/7m1//PN2/Rk8lzTtja/mvANC8g5Y+/DVZpXTHvICt9XbKo
+t5SyAtLDe+Yft/WXP/j9n+TT3//i7377s9/98mdvn8Ge4j+/ufU3nLffhQiNJRboEUuV2nf+5ZV5
+qE5prba9MYEy2dYDRjoahXB+e63GnOoTOzZr6UwXC6rMIvzXkFtys9fP75v3bQsHQbswR1ENv8aw
+bSa359+6bddtHfN5gjPkedLr559m5d1rNeaZ6WPDS3n98+0wL2vIKl7H6+dhfP3z17Ua8+oVlK1c
+nKzHmuNweRoxBY71+ddhFLSR7wr2T6+WyhnjvP/zW8d239Wxnvs/I57nvH79aU7evVZjnnl+8534
+dpqxj7wPx09FXANznjy2zBRRsOahSG5ZsziqDsbmUwOPCqOAfsHrTbNwfiQKOmN4iMqn4689GQ8/
+3Tv2T6/tTT2m6+YlYvuA7qxdGN7rOcL8iWY+8xlAc3P90OtpfHl/dj/Z64j3PBe/saVpfzJ7hfBj
+QGgDmWjfHjtnrAN4XDZNO5qFYda0syXwDGHJwmhbu37sybjuWX82f3ptNhL8RfbeS07hyIlWNjC6
+TYXuke5LheLlI58hrsk5P/ZmIl/eTuTixMd5WtPjn7/xPnEQRETv2TIQuDedWXbR/tEsorGi2aEc
+9KzwegTS0QT1hfFG0CgbkKBsYbh2YBzaVyLQCFPfaMISNAwkSlYiNnIyIfJYOnauM6K4WIk99FlW
+mk6ogZZ04YMgs2cQl4teAJpN+SskD45tQuhdYBd8FJ7dXOugXQjyz4cgMUuR5on9V62kbjub7CbU
+2+3aZDNAm2cM56qZ6/nXnHUmjevWBFtwQcHzKJ9e2c9jm9OjiILzY8jmYFJ9msuxBQ070z5EzXNe
+kLeRzDGut6mCKYNPvP1Pz/ZYKLyzUNs6CyowB34dF59CUidFf9ir1FqM9Mf3LcvBSlQ0RS5o5P6k
+WgjUk9tXkdJlcyjmyOP0tLagNpfts/Z6b0G/r9014P5+B5RtfPsB+fm0+EW+cRKxhw9H2A5QMn9h
+YgrR7SNyUS/cgF5ln+IC413L9pnZubR80d/XZraj3INS7ZE38PItN/YpwuvfPf4/NxnLlIjQ1Hlo
+thXpQWjqz/jDn8R0eRvq443voMr6wn9DSV1HJE2CnmM1O1YqpGFuo7WLx9KNISZIZS0Bgq+N/2KW
+ArihiBkmFA0NGQniMlvfDVCIbpSVL+fuStD7GzIPFF/e652ogznnfDaaM2NJFI1xejxGNGt/Ov+m
+bzYCHdnxlNiuIz1NI2rtt5GD21YzSKbg/4aDG/Ap8gTXQFGdGk+/aBtQ6eu6Pw0+MS18pE+v/8U1
+AcaJER3w11Q5Ucao78ysbXbBzXe9B2+xGK9emO2ViWiijV02xkihjnOWxKe3/6bG/hM/GRrH11Jz
+FbhxL8zPHMJo+PAtD3SmedlvutH6Gha7Q71X2jaoBq0dH8Hxc7FH1BBKhyfmp56Xj0gM34D5lVFj
+GLpktefLjRchxVZXglrr3U/Mx/jWpsuv/4WbLn/4k/DDf/iT9bQ5gKQqGt+90R1sx+tsD86NVQi+
+NWD7l7f/Jh1R0sYORYOBAYdjDQdxQNP4+azWPderqzc+VxtX3WumY1E74bdxAsRrIIg8SrFsnPf+
+zMisJjHP0lhDbfFaDfw3l4hywuHv2NgiMdpwH2S8niQBcntdPiBY7AhS6rF1tLA5lBZyYpzRoH+2
+++Cpfk1ziy/p3bfy3SvqX5rp6Ic/+evHTylZw3TRlX+Rr+s5mH/uJPq9UjLvnlh/9Hn1LafVH3tW
+/fEn1bedU3/0KfVtZ9QffUJ9y/n0R59Of/zZ9G0n0x99Lv2xp9Iffyb98SfSv9p5tK44+GlbSI7S
+izPIjyd64ouqxwYCb+rINwRAyFo49XUiixyZYkztUUk3cvWafuK4mekG+W+laJPYp+8irbvIOMH+
+2oziRyM4jVl0eGUpGUVxqHo7Ky3EIad2MrGD4sSGbybL2iC7oTUZbjGnoWXXWoiMPFG7Flgp3K7e
+HywRF6Q8YkzHeDVpmp39D4dhMBisfeWfPtEC4472eBW45lg51ljNlQR9rVWsZ5FMVegWhFGa48Z2
+6+fZwzzJdJPRm2XGDgi9J2g46k3/ulzFNFZ5k2J4UN140Ec8eINUhz3D3Jc0MLuU5unFT04Z5PNC
+ToRe6ZtcffhG8qkOgHx2pQBsW799PuF1DdsFJfeuaJ4wdRZRbEZZbIP/JfbFoGjckM57YYkSHOJW
+CCYcfgoW0dSNFTy7FGZaB2dv/Z8UOHCIThjrJBe1lL4nQmkZNQIZ9GYQqOHMQI/2UNuUvyuyRbhc
+sN5hWftVm+1c0bglQjm4iIO8EsmkF89xlieJ7kk8veK7CmMWsdGrHeXllQaI70hrt+MVp9n6tSOR
+h8Dm6LHdaEd6HJEoslc221gxpcO4IRjgycoJCs998khm73ABNpSRdoqjxbUF6iBZIMV/kmsOnSw1
+uKSNxQtliEaqPqddkyruAnjAyPmadgNbbcwtUTV+O3MvViipmM2x2Wj5aKdvys1RBt/ySgboTEY6
+wiBuLPiaXIJNA9SKppxEjTDbXEvB96k6jCMZ/VN250PbkRNe+mbAdoI1GVY8Ng6pUVQQdLlxXv1Z
+LdoT3cxWLPcWIttFeZ0EFKaf70cferIPMpfQjeZuNLEbZVCeunz6WniEpB3V/B9n4LDHFaF2AuWp
+T0xOTBuGMslgH/XZU3LFZk8E1/T+WzYadW1KM/hdnZX2HgG0Va5/WqhyDSp6Wx2lETmR0dcEeQht
+S+AfNOjIEYcCzb/jUwSnADuJxV1plmtbap3mzkIXySBWJPxhrJTUcfZCDUBpYEfy4doxSacv3sjJ
+ZhwvZYkmMPjIwTfeMsNA8KPYVrcyNyrKG8+QtdCm9PiKFu3af/LizuodtO9uKu9vSrYPcVO6ZfvW
+5Bdtm6YpZyhhyduVmJZtVMD4bHXDORkGp9sT3qe44x9q2NXacUTsHuuHgQY7eYyf5R4BW6DRhiZp
+O6SVsDwmZsaNaHvmftCgILxdmof+CZHx7IB3/cigPPJ0wonrOvP4Zoe4p1Mo78xuPqSJu9BXKTrI
+NEIvyJRL17hBBsY/0aVyc8hg2ffsVDTKVMd5Yx8/xWMDcondJ6GMa/nvJGMTla2jVjs8pwTxWMqr
+xf6D48ZIF+TwX4rvk+n+XI506wAX6cgpKKliU0IkYg+RTwdlcSV5f14GOAmeauzVIEyyjSOqUl6F
+6WdDCUpityfFabvRrSUs1Y0ZzpMr8in8S4j0jBujUnKmoxdwHO+rUEfPZEXq6S4tJC61U29APsgI
+TwvElSWdOvndelftunYU+Nvstg0jnDWf/UvLL1HD0uKIsycVyWyNU9IvuDZteXCk6bZNra6zJ0X/
+cGhcZVb1SbC3oqc+jAs8dit6U8+mVLgltKle7AmlsaXevLebyvubUmjBYFMyiP7ZlCB9bTk8ewZt
+SkkKGfY2sAM+fgZEZpdUGFiNg/XstJ5LiqKmi20ysI+hKQrbXlAunCfb44xAi52IVBKV3q3zQcD9
+qhdJxF2lfGwGidQPLi0URjBLusS46HHQvG/zdtTaGnh43d7A5dBCpiaQniBw3GChN1s+IpZmBoT0
+9C9bxsRzJ/6hFgJRvHDtn3Q9csqWGMIWlEOaJvalIHy3nWIe3tGQHXRjvpXG/AbMWkS9teE+FWuI
+kRJx340+0bp8pRUt+bYzAkkZ21KObUk+QkNLqT2DvxttS57bCmqDQTclRza2nb0q42TxiTWI7NlU
+QDVgMOKW7wGiZlqOLSGP7dSJGgAi4DtEmsMG0VDnIG9MddVoq7Xj6xwvrkrRcRBKJ8QOSvC+KH6c
+seutkBxN144SjNVmZhf8VEts1oHhCThqR3iqTAOAxcTly5Tc89SbG6VIYmobG5/oRbXuBL1UmmWb
+lG0uiQp5o0nVcgKRa/y4Z3N3qliYh3SLwpX3UWtRE8nzlvL+luQ83dySrCfuqG04pX5MgvVSf+FW
+NSRkl0jCu0IqLxrjEI1Yz0KixrzDprUnQWzK7GNzhCb918cks+sBKoPGHHHoE05x2bl3B/k8RlBu
+WXCGZgozuq9mDDVnKdhmhcYL85MLEzf0+5e41ixVsNjb75zjGmEddpcsau7HoYeON08o0tgWjKVd
+9xBKa74tketk9vr/sfeuy3EdV5ro+e0IvkP1zFEHNWGCeb/YcU4ELoSsHtriiLba7o4+imKxJKIF
+AhwAlFr+cZ59cl0zd1XhDpCwRMAWyVV7Z2Xmzr1y5bp8Hx9o9FAnzLrwRiNA8UInQTMOhIsHz7Ni
+vyBvDmkfOqOgEGBg1Jla6LxphwgQkHpmdlMhhQ7pJeIBhu+qvfgI1jk5qmwHdRjVUlCgh8jpNpUo
+XFUrSTAnKcM5QBHayrk5wkdkOzIMVgJ2pQKUYKTyJUWUtzpyXpvuKKrifbIdKAiPamQOM9YDCQuh
+7oPXj71y0Fc2nGOHV0JOe1cFqkjgGgHsjHbjPHIqco5Ls16zHaA8KmOQsqubJtYmIXC07ApAl5EV
+uK/OsY7HOim/ag2rXnJy8sCsCRIKGzvU+ZVRLzHYFhiVQc5qAstl0IogWVJurWESAHlNKjKF6wEO
+MdGzuqycj7+uVlbV0iZe2RwHtRTEdkHtolqJaZOdgrFnpVl1nQgkC9cVeDWsHqHBgA==
+ ]]><![CDATA[
+ s57B0RKngPKzQ9egJJViyYETIby/qpKsowdWNbQJBx2rsFdCdmsJeJIs8U7gAmlbRLOAsbQkGIlM
+iw3OUKtsfabwVhxzN5T8FmcqQcTLCTEAdQshlZwqOmtFTaFRNzSAgRhE/MqS2wv0WfSG9ugZHwAL
+neRUIxFRBJ6TOAsa8DLpsId+Jq2uTri8UZjyUMyYNBTUjA/lGw+OfUKyjnD7EyFW4qtGyonUl1W2
+AFRJpOiMcuMIeweOooROBgVbhoy4sB8QmTmDpIExvjlWAyXWSlgg03VKqBxt95KNbBmRA93f3Vii
+4RqzAscbiTS9croaCfmslrcYuxrh0yOtJFcUKxNG4CRaEqqc3oLAj2SrdKyseAIVJXaF5KV0XUrn
+s1jxQ7EkCIlkG4UKI4ounMTKqwjpu/qYoEJSqgGylFvhe2vt6BuMbKsJRr1AISEpro1iOyVjrAi7
+k7sQbCzJfVHk1SzKwwaFy5oqFNFHsEy6PgJaOdVHI9FBEjI3pB6WgirwWggeihLPZIGBRFzFKEKk
+BqOC09wPboBvpXJ+8TBaZBnARWiqClOTgggIyfR+hsNHZ7eRAw5z10EaAOtJoLk2nhHwqunAqIAp
+nDjvVWYLEBaKYe+RIoo6ZqhFl0VHEUY4N9lzS9cnHpvF2j2BCcWIGMs65bwSdcNbF3hbgv6SOZWI
+RucJ5y8TlBrzmGmwl7weeERKQvhADjU8S5kkConwlVEYRhYZSbS0hKxPCilUPowJfBHSTgXJnSxd
+m2Q6TrPvaDCRgkSWBXMGADQpwQYsES0ozIBJ6hlVLjMBKsTcTeWzm7BhwnEqGFH2Q8TH8lpAOVNa
+g1BO1bkbSRQFQnd4TsPhDwnFKUxXk8CAEwReRE42xuNyCujIjMyqkjIjV6XulU+E2E8gHanI3BSC
+/gA8Iqt+BGQPTFzpLLw3cKQjPwLUmDORLIb0rBdhnKRbGH4ptcPgZrL8UqKfgYQpaq10L9furiZQ
+eAwFiJTAni9WHpXC7gUSatSGXFQiF8y/KNQIhc8lmxTLRr2UELCC1JKHc6aopQgGtxe1EkLXS5SR
+U4IeuJGJlrCiosJpgPGWBfxjwCpGQisvcuFsTZyjjNBU0WmyL8UKQJiVqatkQv1AzSRUiVAWn2Ur
+q7wUEBIBQX4x4hu7YjJcYQ/4WUGsKk4NBmpK5v8CsJ8iDiE7ajYiiEa5aDbY4Q3rIDbZEV06iQwK
+EHoDKfIJRYLuWNkfxW7IwnOUQ2RLCQnZVC9R5g5oBV+t4NtgeSapEEUTsIlFg5MZs+STeKQEBIoJ
+BPF2cabAi5VYOJDGYXTHiWKMg0PJZ1JLqmnAexZZLeFLqmqJ+AZhuMpKZBk4Gy1IPhXjaUpwYND6
+Vq1SbA6i9VWHUYJ/Irhh0UukE1AIsWFtgTJ00APOxAdZYgDoaEp6eEPuKT7R2SEnoAhOrFdjkZPW
+jDo3wc1EEPPwsnRUclRWFAtKysyclUsHbF/RMhSpRFEcvOTCVByJEf4Je5kMoycXL7KoNtlIx5vl
+oAq2moBOFiksQeANr45v66wI00BK3J5d4BYsR2yjEFEhxpsCSKyolM0aiRjfWCWB2dRVkg2FIekw
+tCIVrlwUB+KgtfWEYJ0623QSSGBQIN27C3LCP8EzYBUyokALo3TwRBAyf3PBR6wNMJIDwr96STzI
+DECcNaYKwmR5xytAY6jpBFw9D+Z6yqK8BIYVs3Gklo7g/PFkAHwa2kLKkRWNRGeI/pDxQAWCBYUU
+S3IjsUHljAFSSZwCAh0Ojk0HwbGHU1qtVl7o7qNOEmW3horiSSdh9gKqjyApwtXmKColDzBcJsnB
+ywRxcnfjpyjenmcXFYIEDxoJndGgERmiFxWSY4WE2WaskOAAgv13QwOe811gsHL+RSOFBtvrXEDI
+aRLMe6LKwDBgrJVcJkc5gux4cv1+gZ/A9Kp+Px/bavdmAXaIF7yDGJRCJQdGl0YMTW2hmlDEfApy
+dEPIbNowhegJGMwse74RYlM1UubzRFbyUXQ9WQY+Q9Z51klOZEMDeXhNhRI1KyEpnjI0GYDRsMGA
+gbzNbvJGgZlMnHCIMP30TkfFAwYPE+F1grB7MrLQbkIDAmscpG4R0Mh4Htd1iuokH3vefrIE3kA6
+CZilRScByE/k8BYmU6lOchpWkFpagTgDYVKGEGaUgrSEfnApTD1L8qqdLZU2izrafkz0A8KYBs5B
+rrVDsGxNPRDA9aaAglbRGiJ0gP0ONtqeTUAOQEQi1/JaonlGj0NVWZZ9GP0F2kDJrJOk0BxktSOK
+m6RCz4oK0RV7A0FylJLQyBSFewYOGD3CMiQ6k3gtZBo5RmYQg1EYUTlAbg3B0pHySRQ8BGEaqROb
+Tc8aKAs2pqEoPBk/WV3cjq9D+gRdy+SJIaVYhMNb9AfECb1UG9BGinDVALqkaslxilECECh5/4m0
+FA+2zoqwrVMBxit18DBbsguN050EWjDi+VZ3kuP8RNpGBq2CWeDkEJeSCa0SBc8il3WD/slWUgdq
+HBICqEgP82ijlGiwO9wSODbNDHnlkEahg8nmxPzgGLs2ci1zL5esoSzMe9KXLI2xO7SPUO45EI75
+BAynKDSA6GYS22FMPM/dykBrlGTEzIeeavUxuZBE1pGQiyqKpKRMYEllJ98VpQhzRaNs1EgR6e1Z
+IwVQT10jMY84RsRsHkjunWAhRk7qQLoM8eoVHxWkjVEmofC5V7uPMMbKfSm0DMg0HlkYuBKWs/31
+fjnae4XXgfibzWxsq6YEPWT4gFZ6zAzZlCWzN8uEVfWFmP6OV0nZMZbiBT0dIeshTdCgKud8I0a6
+wLBVzpxA4cAGW3kzhTePHzriL2W2HFLRvCNBQi8ECqE6yVciSajdtec5zYusF6NYclR3bs0ELc8w
+9w0FyKL4j8SqMt2TUZmQFrVPTwTH2I7kHkkt1kQrGeEeC1LtYDIllatW8jEJZr5VYrfAqnk4TTgm
+eSRU+lEleHyjUB60TAUvoSOd5DI6QUK3ROfZ4/lcXgHvg5pmjO1UB4sPLLvMnkhEbt9Vi4+T+rNG
+GqPa6K4DugNaPu+xmD+qWikVw2+E4ORhmlMQT7kcgsHV6KwIzZjmxP6nMvrKnaWTSumJj5AXSdoO
+vKl+BKkhhlKEAHfiWC+UFo+8rkGOdZL9mYm5V1VTIjR1gcOSTVKPOlppvaJaNqum0dUd4DQnqgli
+8JXddQgSq6qJ65XqlhKDMq45OJ9DVs1I/InVjDA7IKcwIZxhnDRQqOIE/DpVW+XKM0uIKqqXkAWX
+8mcFqTfz6QutbgFRzBIsADdmTgNDdMf1d6oSnBwRJLCMML/C2jBs0Gj7VT6SMY8ZPnohc0BsAhFa
+fmcwTt8boHNSe/G0xj9rwCipvZm4FA1f56Esqt3Gr3Mlzkt6XtaITWSCMswOKsWo0Q4+baJiADkf
+ozNmgmoLcnyj3Hn0XRs3nN+IJBv14mAoGfYdacUFJKpWVkkYilKVxPWeXk2cpl6teNk0ixpPDziF
+sQz+ZcSiJ3G/Uo5uQqqM1wXZWEwdjn5EwYYeJk6FQM+7lORWzqcHeOHEOU+mGzieyfDAMBe/VxTC
+rao8I5AYEKIu9jBoIoKrBrG1YiCxz6lq9AS94NmJcEwBQP4AUnFW7Rt29lZNsoOTHKuWSikqfUth
+U6IqYR2mC0irav0W5eCqmDnX1RATlHG9JC3BwNH+2tNR1vTIZj1kBjUECWddDfnM/rmBeBbShhI5
+YQz5aum9MARtC1GjZAQB2VEGZyVe7N2uxijIAW5KMfACtekIAJWFRC0JJ7NeEoKWX+C8NaEiKYRv
+w0Z2DSqTPW74frAXOfTiRIkFzhvuCFYlE2wJHbbUmYpRwMTV3MiILCrEc3GWUOjA/VLsi5mTvQEj
+m38Vjxfa7ayDkAedFC6xU+AL3BEcS9C8napFfpB7we7jqrkpkA/CMTxAAnITfvfCFxejxKX0buDF
+EryXOgIqCYmDmY+wwnQ0s5q53NWQvl2BE1GQoKiTPWUkNWE3vpNyLqc6KwjfGqoHoebJxYyhLrYm
+HSWpsjCkJG47VUaSxAoHuzS2EAKf7douJKaV+NtNH5kXHnMsVfGDOmL0eojdFiMHNubPhvIBowqJ
+E6IRhi0OtpGkIFil6waNRIydSInVA3aUF47CngWQ6F8oz0FL3axNYgRkzQJwzGZniPNw2FKiQClH
+xVAj9jMUGj311SA2hO+Vq1iDInrVR6OEU3qxkPSuaZVV5zbqpAD1l6KUIuxTHaitkm8ZIuSpl7p5
+dQ07fZSF+ZQIKtWLwZbYinFj8TkSrweRC/as56xurPs2UhJRUuXj2VDiBGrNCpWeHpmSZG5UrDnp
+wsoGOVI1qytKol22Z/AkzrZEwrqspRrZ8npudsPgoiemY3pTnNOLydvhCc1erqyssDADW1vAeDYp
+p6KZRTXLEUZoGwLRduJbjaU1C51GTlHAkJwE/emcisqik35Jvyql96huaqdiPvcF8cLWweiR6AnE
+eNmfVomkTJezHI6qJrIj+kXlLCQvDNsBnhSbSJDZp6opF8mWxEdFQrHHAilKVhZ85nLkUOl+HCdP
+SHOou2ZxpERYSAkRgg7SW7BWOPqCkoGZJLlNwnOMR8zM2xxuKKqbsGt0mBOGbDqNYo1T0uwAjGzi
+yk9pSJeMDqPVIBZvWGLvDrIFDuaTcIgg+GDXS3QSgwwXqSNWyHTY/IWmXBMGqh0XE57lKl8cvVO8
+R0dp61YLsOAgR05rEPbqTywdcVFaKJqDkkQVDwiOK4pldyVfkhQTmk6imKB6qysmUfqectQUQrJt
+EAIoEeXAQGRfjBNMIsn3CeSSUbXkXOBkfDV2PKf2gFCCysWPz9b4UbE5rkdSOvFISWpEB9fdUV6y
+HXPPpAAXO7NgWq3SBBc7R/yd4sBQTjRbTLX7kqLUVIAhFDU5SPSHV45QvNIJKE6vTIEuUKo00E0y
+71thmntSS5KfFFQIdpob1JIL4vgO2Qgwj7yPgPKjKGf0NmAWuOuZu1Xz0yvZECSkOk9soVbxHwhM
+R6UUnK6WvMTTclHnrDGF1ZIYrsDhZyQ93XZ2byDhYzs1dc+Tl0Nx6ESEkI1KSsXTMbSfnkwUesrO
+4mdNkt1ETCavuI0Ttx5qwcImU5GgP9cg08ZVg/Sh6Tg+6aGC0hYo/IlBXOYzBxgiCgRBcSPjj0Pa
+Uhbi3DT46RNb5ijPXqyjRKAy1WsQF1RTpMXvh0g0ck5bfieNUcVkBSWyYyBb9sS6aQSVvwnmSxxJ
+amlgfIQNKAKoB2Hu4AZc40b3c+IDrEVWH65vvGs6ZaNO8pAqJTopQcbWgGobsugJ3xk5HNdfoVyg
+SR1V86Ow1CI9oHAPJt37nvXohAcdk/GjlD9wehXgdQidipNELBD2tEuvKj+TOfyEPVdSPc5+RpRl
+NopsT5VDFIk8XYfopk98UpByShCyIwPelDKEDo1yvSIIo1wsKBtSZU7N8tuUe3lN0A==
+ ]]><![CDATA[
+ o1Gn8JT0EPKv8KYHdijjWGaKUi50FkmzApJXkqh/ZDCtpiWY5R4KnYtcWYxSK8KRjRHAIC6h2Mkq
+y4IdUjimgEJw0+lSJrMZ5MN7R5wN6Pyy4u41lOAJ2aDdmxHUKIrqDMA33PMhLktkW2jYcbqzmZyg
+Kk+uoLWgUE5x6lLyUprC/JS9gaDZG7ydwrcFKwG6ooe4qFhupRu9IE8cLXHiiI5a+A3JzE4Q1Jjs
+OhCWT9dHTri8BVsGzKfixFmqCQZZqn2HlYiIdDHLHl9EdTGpI4KraCaAFUYwPKMMTzEK80YJGqBL
+UVBYouY3pSQqFZoedJIXTVMlO0ly8bFfnLK5rlM266TQwZMSVOOKSrLkRUB1gM62tyIv7AHCWLQc
+IA3j9yVKNSUhlxsjWpEmG0JJOruFElUjspBnBia56nGECdkTFSR3pSYsGso56ZkCDddMDVGFkpeS
+en0Q4og5cVCLhzxwOBDXsjWa7sP1VJ4q//shMma2lZLxohYxmFwIDKxqC1GYpmuvciqBExkBtc8q
+jQvnRoNSEvIix6VEVJg7VNDabCSQ5TTCRoAreHiqTqARKVZDNlVKXSlJfmbpCcSVsZXpYk2gi0Uy
+Hu1gJ+FOg2ItjEOdxHW1ylEQpT4nKZIjKSWsHME5kEpocDdFwRfOEiyCrGNBLkR3d7dRWItj+bI4
+pOnYgBtJt5OC0ojbIRXAU0IdbUWSjeClCsWqieGpfoEI2nutGvRW/AbJSeIDJxdBcoAromYcWziR
+SlJVp4jtBJyCQWykXkLnNfUrEegeyiaZBOQVhx0+ahUwHVbR9Zo1iMbkJZF81/0x2sINmJ4LxUDy
+IOzFKRRqQGEYHN10jEcxG9eQ/MaZObHnxawpFdVJCGkuOskMSdwJNquulCxlU2DaRU1dKVEGHSaz
+JonryBwOWCmWK6ewZihp4BNZ2gJnwwqBOdQOSjY/H70kQZcy/O2Am08IZ5hZJNoLtkEJt6jd4rWA
+w+HLrFZW4FI1180Zr45tcAgFURFYZYLCYrqV5LX0ym9xtiDKIseLrBO3GuOrgazqOsRTKYOZKtyM
+o+TNQp7fgQe0SoXqUDkrtWNgJiZJdsycZlP6yqoaxCqEvqfaiHyeKC9OFE8hCG8QJi17Ii8oCp0Z
+dldb2H+NNrqoI0E1wAkidcSeHPDpVtvVEaE4oDriGujMezLOl9R8wmkm84NBgNZBGahcCh9UccDT
+CIqN7tSrV8rQQMw9RppXgNRhsxKzx5PhjosL7URtgRIFwcUk+aUBito5WSmXIBPDmdY1UZJv10fM
+GJ4IN4oNJz4JJSpLYIWkDKXT8t2m39iR4YvW+pJvAYVOUwAY0Q3L9cxwbkOkK5L7ovhNxH0KQkG0
+zaz/SZiHFADvq7acpWySITZSTyBc0yiqkUacYwcqWjRSMzK7N8loDL9gne1bEXNdDJgoPU+YUmfR
+0ceAbKVDkxY6ZKpGsoVUSndCYJVDYA8in4cFx4RkyQwqLefILkjLx1/kYoyybKT+yzH2CKULdaXo
+NPDDngcW8gEFOELUROHaU8DzGSpbnAClgbKJelhOQUJHPnghJEledn30G2sLHJ2ORFvGGogjaIkm
+STQ7JxV2fEZEZEiM/6anPI58oDAL6HKFFC6SFedHfnMxskrUJF1K50VhUGeSL9lJA2MWgOXi2dzP
+WIkXPsE+60mGEanhtamDkcSZVG0K1BEbBCEWtFLRQHxhsj9AnjSDTihB/HqYl8pCJ8c8JTj2muLl
+9cwg2kasYOESRlUTeStToADPFBy4v6U0dkGKWCTsBPV97EotW6porBdM3twTUsB6SklKwbuRE7hu
+PFNuJZtOhGQIwjzW8BJoDsoFA4qLAFAowBtgO4XEtkAAJjh9kqbItR3c2DnWrPKaEyiKCMG2VJ1E
+Ka4o52o7DKJEtii0qnVVqWzWSWgziU5qe+Ggk8jGwFgWoH2oUgrK6DGQbERJepXkY8i4kBh96ZUx
+RWoycHNhvCvoq698VjcMFAxCAUmzHaoFmXnFJ4l1DGxTeQ7MuM4vyzKvkAgszrJtRomnW2IqpVUf
+VNWCdSA6pgxatUTLFlHgBJaO+gGxbMFqsVtcYxqoVrRrVQKJbG8jLg4Sih8lgT9XtEyV4ovkhqwi
+LC3AN38AJq1suwFwb9FUx8IGFQbzFrKKhH4la8UyFn1nCd1z9CT3hCuI58dxHVcrJlHO65jzimYE
+Sf8sQywh1Uho4eEcCBc9nOWCTFgVeq9RTSEl6K56o5xCUpYkMT45OXolOAFPepFz9uACALnVsIQE
+3j3XE1B2h57lNBUf7ZXegJcAHR+/QdVyLlIlHDieGUyEInrOPBhKtAsROI6me3t2WBcCqWGV5MSR
+PvqXE1cnozzoxcjfSkLGt8AkJzEnpskdBA6KGlTyNTO9cyQsyggo/pVCxk9XSkG+LTnJvGUwIbQy
+grzSK0pld6Bqu5wWgh/wGinEVH4TSgga3S0IIUTl3ZgOYiq/CRkEP8tbUEHQlN2GCOKD0UD85RER
+N1glbmh/vn70myTEEERjOoO7Z9jO6ed4MUC7v2htAPBBU73WWKM/xQSziz95rxlck5/g+9/b7WbT
+j+NL7cZPzT7/wO1upXW3fnkxO/vNFp/cCr3ib98wZiHD+GoT8SGwvIWB6uIJoq8LxAQHdpXOokrF
+nmfqAEiKqbK6lUm4xzosOaRoFYGcdbNTqBUQBlHYVvDmPQOqoXFeXeotCJoOV/k+YeQKEFV1L2Bi
+keMMW6fmKoT16dgBjOXGK5KhxFVkaQOYi5F8l6GypSYFDI2dcg7y4NgulcPf+hxe9Bo8QSzhtk8P
+S31nZ3uxeP/26+OzOVw8Xef0DT4H1jeo7N+KPHOxEg2dpk3QSwsVN5NQTMFKSZ86x/KuGyq/eMLY
+SHJM7w+pc74JszM/vCy+vCSTlHhG8UjvO4MAo8fnCW9qZoQQLI0SjtWkmeO2M5+uzcJF8wwmY7Nb
+zFWneUL/e10m4D/OD5dP9pdv2x/rXMBA1G6JzRjpaAjXXbJyLSFy9ZpKTIUDP6K9ATtNJlAzes5R
+3+a4Ip6+XlbrTAahJ+Hauxj7xT1OmpXhAElQJkJuoa5fjBSQIbCrzNWyKvQkxBZGuZWLkQJybWSr
+k3DBMjGzp18enc0ewzOdLY7fvjt+f/R6dgpbz+zt8evl2quItQqRS0jAqa/Q+xJjsh31HdL8JSNA
+aDCM3A8RuY69YfTSuNWJirtMbrd6expvt3pp0UvdIJMm/YpsIeujWvESyaUBzxsTUdIvn9wNJ4SQ
+p5eWlUuJw3Mq25Xnun6pWxtPNX7T0EG8OkubZWFl4nlVhbVnVMFDws+4qiytPHe+PemlSS/NKgsb
+bt/87cWvd35o0q98O4/dbejoZpmM3Uxvt5ztYcUfU7EAkI4ZXI5Pwshg6ZZyafTZMfA9rkAf1i4O
+RP0BwnxeFxwXPdBRC6afewt2drv0byvrhMWHK+JUORd/lNF0/bh6aRoWJZVCA3d04QJYOJsQzKQI
++0qnUobxYn3c2uooy+Ob0sWVsmEnQiw/NCsNZHoBVhvIdasT6zB/y4BlDbtqJbqsOhkBpF5uuNht
+aNVt7oDTzmJYaSJMUEmwJlyZgi52jApSNfkB5pWjfAB3TUMQIbcQ0CM4vdYP890NoY3PQMXZrqtF
+Xlo/i1KfipUHmBH9sfhGqdpLZvAlzKb6Rr7NMFgABC2t9FZSx8HBpA0wAKa8d2rHJk0/Q6xA/jYj
++a9K1DK+5cMj0zevdPW8WdZ1zHC7gOyjOmJshL6LsTqj2dqg4hAZdO1SXQSYV96LAFcU7N3s2v/j
+L/DnHbTzns7HRkN5Bl3tZAGksiIGWeKQGZwMJBV2EAYS0kQN8s5WnsoAymLYmgfOlKmQT+5u08VB
+o6ecezoVBhLq2V/krl/s1ke2Ngl3aWMlR2ua0Q6iFH10ee1URIOQw05TYaAWdldbSMrUlZxyXyfF
+QBiuzJMWPNdzolerkHMvhUEoZR8prgr5OUNqgHBO6MVQ2u/8irBqHyYtADxXEQQSuRgKCKI41qqW
+hE5l7K2LGy6FMKzhNoUKDjNfnQAwlTCkjzFxHZRlesXr4zJo2JEEuKILAwF8qf9Z5I681lMhOP/i
+SgsFk9bSWgtQ98fQyJj/Xxm3y0uMqgPmhRGmG+q2Qly9OCrqp9JYiCiPgVGVQj1ciHqhVGxrIpIK
+QcH66f2B7SwpCwBW8yDGl7KmRUKG7UJ1f2N4bnpx0DxC18kzu9ASAPHQgmdbcWyBVl2iMsqpDN/I
+ri5EjC8JX8pYqin1CJkkn6lQVzIaiNOLjZB+pNyzz7qwjF6iLs+mQ4qbgTZEUGonwrKxhUpyVrFZ
+MLYldcqwS0tker/bcKnf1KY/pwMih4wT41YuHugPVLg2CV5nLGfKkAETE+MrMLcCRZEKEc51oSol
+u35x4uoKbJbLjwZhoSiFbl8sR1wKqxczBq6hs8ZUaEcglUHeLR0QKu6EoDAkScdRIfchSkbncG3k
+TRHT73kiB6GlQPDQQJR6ca7W70I4o3Ci6CDMxO272gIUrGTyWqYo9c4ldO0eVoUL2aPK+sV9S8yK
+W7++Tz44m8mQ3+vra/q9tsFj9i8zN/vp0RPJYGM+BRy8FoEy9HWyhIfdjoQvH13fffdiftCGtDd/
+te68Y59doHJVj9zRkKwOeYaYcUNwX+N/r+21Q+S9XrPlco9oUVa7yp9wxFFMmEEomGQs1Fg78uqQ
+M9gSGyzY14moE7OiYtRAryK5kjvDDhSHeIFSj0npyxBImVxxnYDapMKJirFoUAxyGZnb2EmVODg0
+kCqGfOapipMEKyBWWqiG8UbHr6uAhlElbSPAA8FDWwVEDRPqZH5AiLkW6BBijKXxSnwA8m1VU6aC
+oGSCTwdLPs4TeiqX4Ba6XCusQChEYRMhhqi7cFdaEDl7WCYdQ54Wm6bTIMLFyjQUKeqowEZCleNY
+eYdOyorckYFkWE7B9wcCA0UtZBOqzWEaISxKKELwdBC1lDZbU0ufBR4Dsgxmu3JxItqXqTAO+DFj
+C1FgaId5RPITXyYrBynDFcNmKteLg2QBQbYBD8ITfYrKFuKeIu/UeDsg56Q4CNm7BPAY2a9cPAo5
+n2EUTsd7ycXnCPG7tAUmI89990E0DMQI7x3rb+V0xqbyjRdvFDqF2wBFw+RuPYMDA1Xj9JK+KITh
+MRnDVL7p2nWZHyFnMI0UXTG5l0+ocjpXiJBjGvnrcieMIZcIHSXQqUOdFCTIhXBWNOmkgS6kC3en
+WlfbvYLQj+ACELEhSoLx2yxnYk9akNQr6YL6bch/CGV4URAiPeF9getMwALBk2nq6u2Qh012W58B
+MHsj1lcOfRounDzGycXyxCBnO5iwJmQcVxFqKgRWxEwvzkQXOlmemXeKLuymPXGrYZINnY+SJyy7
+SQsxUy44vHdDzmQslB47qrs2cVBOxLTUwleRLGVK9q9io3iUb7gYCrwKG4MUHhMZWw==
+ ]]><![CDATA[
+ k5D3GeqgncnaJyqArpnhZJBI4QsXETdQhfWt63wQBspYRMxPI8ybiBvQhbsrszhcnKoQKE5kK61q
+F7pcUmgGoSVHzM9ypCQQ0glDpiciPhTmpJR+bHZBEZTtJQSjnKFNB5mngPSPcopvC9wP8kOSJ4Kf
+JwReZrOEt6YQ/UHU0sU+EXyhjlnFvFUPskRJQysyzFrTlSvPguWHq/JMODGH4r1ksDeR0zELAUyn
+Ql3+ItyVhYal4NOLA6WRTGQAgh7degOjnL1Sg6yQmuAjlhfn9VBENfRguFhfi6FVpnNesZmGFxPA
+dDkzdbi4KjZPfwER4LOvVEf+/C6fzNgolJlZaWAQY/7k4crQameJnHyZ5F708cqVixU90i3KsQWn
+yFLJcQkQRkQhzUfHJi07Tf8Zmp0IHVldE6t22rIgDwxDG1rQ5y5X9tO1lyCuYZSUvkwhG6Wo612E
+wA2sheh9oUPQh1Gv9CXig8BEjYA9kczge8UiFTx22KDlxyvHr42nOkx1vMnp9N3yZPZ8fnS2PDla
+P6HqGdUaOoICpgsGoUbWbig84TOqAe6P6x9SoUAeU4iSo+Tgt7rRWxxm2+zEk1vZaGjCSoiOZARa
+ws2TFjQkiAxsTR6IvPO5fCMjUq3JV3pySG6P9+3/hmrZJXkUQAMovR0ySA0O+7Nv4V1PROqGgXcA
+ln27+gHygiVRvMahuZ2cVnxjEr/8e0F3o2GejZtcWS1kGedJk10m3y8t6AdVmWR6q0R0LUAHw7/5
+7t7T8UodUm9yffzYwrnZVDt3lbz5ePv5843X/XF+tnjz5+Od5XfHJytOpM++pfxgfLqXZQjjNOQg
+mK5YLuH06Q4fOEVFBlOToqmpELTwEyyslhwAFsocg8bG4pTxckiGYjOpNzwIqRvahH4AtdqBigx7
+uwAuG7XuWxgvWSht9F4Pl/fxDQ2vzcbFz/rOEnUve9bb3zWNtvqom1L8tq6msw4Kj5XdpW/5tZTb
+Jm1wG11wW01wGz1wWy3wMHVAf+VzAk9shepJfuK0xxnIDe1o7xQaQ58j1Pa+lYmpghMsDHMRqvcc
+Y2FkzivsQqhetgoL1eW5s25KqzH5ThiswTkR6rJgv1y/GHxwcljXVgfhpAuDvPe3NzuObH0WFlwB
+RjNmAT8MiBwYfBGZZ9GxDUB+w1QytB1DHL/tYTOBJBdsgFg1MKxHpy4Tumq1tlkO9ArMi6OtwvRI
+3bB2QYXqWWZwgH4x+iiJyFtb7bJJD7q4d1abHEe1PgWLCbCuBcBK4NZl7gHIjQA8FPCjjwQERGyN
+1SVOM0eBG7BKOZwapFZd05aw0CZCRI/S4tIuz0555nqzKSieQ++DCDWvzRClb78YvbLqweFmB+Gk
+D4N86HBvdhja+jwsJoiglkIsGAfiyYQXu00mREaHyQyScopQ8G8lA4ZAmGtHiE+OAKfwRJTXhAjA
+ZIZDDstzh3TRVsEOZadq74EIuzFL2BT9YvBZm+AnjXbZpANdPHS2tzkMa30KFlNgnjph6IEDAQA/
+QyQlj9NoJPMFSiXfioHdy+GZKQ0WBiX5SlbcVGhHuuEuh1hw1EJfbjVFJbvsPRChumAt4cb2iyEx
+FHnex2YH4aQPo7x3uDfbR7Y2CSvzmEtA9P7K81j5mAWqcqA74rriSEXXPYCnjMEopzMswRAi50Fm
+d0AXmrE0r8uB1sGr44qbhRRIm2VBch9EqK5om9EL2i+uiDaUwqTZQTjpwyjvHe7NDkNbn4eVuaQY
+b8AXmiYTt/GtaGoZJ5MYWbCUxQuyJqbBuEH8BB2ZDCUDaYaJ8iAHIWxlmiXR5cgtbyTjhlpNgI9f
+lFGBeiBCjYUywHm/GMJBXFTZWx2Eky6M8t7f3uwwsvVZWEwxbgBHBVxTXtclbNrMgNOnkvO7HRX/
+vhXnpOWKUacIv82IYcZDKB1lN5fI0MmvMeEudkoj1tuEPEaODej3i2whsQlHEYd+bTVGktF7q6Nw
+7MEgH3rbmx2GtTYFK9NIf3jcwWkaQT8i6V8dp5FLYYEi1QiuItRaeuMHOVswobLnV5iNuxDdJbrx
+DnIGxJg0m7JCF/c+iJDnEnYUdL8MFwNaCKJUjc0OwkkfunzocG92GNr6PCymiAJkDrluT1Y0iaZQ
+J4GSAAqRxsTYJ7MS+K/IaecNlfoGmanZToWZmf8WsvmL3JE1Mmk2ZWLhnvRBhDwVdsijkourAtEM
+zQ7CSR+6fOhwb3YY2vo8LG5QCb3m5bi9j+PWHo7b+zdu7d14kL6Ney9YNtv3WrDspx+dW7Dsp7dC
+r84vWIakevLyjCWSlBzWlgu4dZjUDZCgC2KUoIKO5AfwQhYw9feQKY/J3JhBiXEH9gEIFBfkt8qW
+D8mjVDOIb35r8xu1vxD7DIO9YJk/l8Auc3vnTigaMxN1RCR4MRIZZopipMVTiquY+FABNTdgKj0X
+MUPLgTxSvlWEWHjkJmJPYcyZA8O203+BaUKZ5Eg4F7XHzPtFGYTst8IeG2bPkq289xiJ5RRNOmZV
+xgDo0k7pz0UeiQwG5IzKA7E0SgMG1jqvmZ/MRg4RzDIEiAn1DZH/gPnluRwjEMYELfPICBJw1Cci
+VjgWcfEIhNi8MJZ5n2oPCSYuBS1YNaQNJ6a8Kspw2CYUYS6oDQ5EZasODSjKqAOGK+GbIXQxlJ8/
+l12MZxnAbQDJ9rnoZCSUwMaV4d4pG1ckGu1vxNLNjLIR+yEUlklgNFmkKXuCGRmCzYoiTt2IzPI3
+uTQpY0bQOCYy4VSZeKuQXZlRvxG9TRD7EvEf49AMoOz/TS4WdG2m1aMhw+LxhlEakU/uuVh/QpAZ
+CeWajriEP4715Z5ieFCJQIEeKBALSi6OXFBGmFmZskWwdPGJtOf0N9mIlCMvJs8lXFhLrHhJwWQn
+ckher3yoTrQwMF+MCYyKgCtREpksoaLpT3jsDMIQg67X5yJ3zDeSiQMZRUzPkgU/G8svQ+HTKGJJ
+aS4c4X0QgacMBFL6Ip/KmU0GZHjIp4g17d54oeXSBGQr2ZX7m51T6TVtM6LtWnlxYPt15FmzEr+D
+LhB+Nabj8ZacCFFa+xt1V8bUOm2Y86OBBK2oC5wjfQB3lGIRITtolA8MhMzlAAcCwF99LnJmMUfq
+EOobeEoJ6zSXfqToHUs062sdTpTBxg/OMbdcxFoskWamX4LNRV0RwgAOQmYBqYjzH1kmZURYYoyA
+wNgqEcvBmqKcEczub3/7Rs7ftTgxYS1njprBhEVwq2/EAGUVC9oT9K6+dWLaeqKXfi4viKvs+RPY
+K0QxM3xuQ5bAb9Sqo6ajIish1Y5jRw0eW55gKSBm3mCr6KXaFZVgqHzW0cbCmiJxliV43wAR87ko
+Fo+AWtBl5sYGZWPFF4ctfyNNILscyU0WyojMj27gSQ5qCAekP2GdaWjZkFhwfpLWt8TOUi7wUDA7
+g9KEzC/EkkLPH1MjAkwPkUiCux/gUf4mF1vCC8f9LOk+YZlsFOswstacwuLhx5oIr+u5+DQMbVpw
+/DPdw0TWe1ZOniScGlgNW3rRhdcvrMLbum45fYPnPDDQ6BkkhgQHMK2iVLoA9uHYZVG8FYR9gZHy
+hHs1blssUpNfkEv6pYD5TK8lKHip77GMXoYJG7lnmllml8RMkCwVlMI8DDgtHMTr4Z1EmLu7eoTk
+gqjYCZkBg8tzQYZlJqCSZI5AaLQ6GUtbPcsFmU3IQuliZhFExtwqwoFJF1zpgftmmNEd1n0Vl40t
+RcpoVx4EZphQ3jNThyYiUHkrukyq7YPyVoDXM1KWl6cCOzqrBUKEAPKanj4Dcq6Zs0RzSEI2enKn
+wgIhe9sCOQt08+aYqla3QL9kwaUtw/n9MgSsiu850iquRGoxGW0QUrb1GdCpMWJpQCpQFER6kAfW
+IEUwQlHLErMpHIRrFZkjr1Yhwj7NvWZ7B1Ipk1gJnigEEJbOiRtb9g7oW9At3hLiJ14sxN1ggDnO
+YfU569Tawl6jgRoBHN1cmsWIpqr7iawdlUri47xgTqYs5FQb5oZnDc/ufKoAtPWOEsUGGh7j+WlA
+knGS1MXASC9RU+sycbnqPmispNwVIniGFkIVapJMME84vVLWgZlfmm5O5BUIR856GyEC2FSWrFtI
+6XOVizU6AVqlQlN6r5hyAMh1oxCYmyKyyQTIxEADdPKAFwV68lbeYi6HK04r9GFHMxpV5oQC1CRU
+aeE6EjYoHdxWQShEG46C9PhdwjKGlZeVk0oxD3ZXdoZA8PHIc6AXE6EE5kZHkXFwiiHnVJdmqsbL
+g+stywpDQOuifClcdED8eQvZDsSg8p2LIctTACFv01WjRb6bSChmSzHio+fZJosOQECFcmbtEejD
+0apq2Kohy1AfTqRFg07TLOqYZHDmq1ExDayV/H6TUz8gMdUock0aOWFFw5FnoSzAuTHsi0NEdn28
+kq3tlL4TooN00ECigixbFZdxIoRvFj0KdiMdEqFlS77KLMQNqIN4m4C0Y7aZgIy2gzZGJgVEtRAV
+tZF5AMBiqML+ZU0WeA6nRdywd7LGixpNg/2PpjbREDc+B3xCUGQo/s5rJy+yJcYMW5bQljUlEVU+
+HqyEL60agkinA5jL4sYlP6W2oG5cUkuEIx175qHAEq+JJ/04JL+4IydupLFx4NBiGDbBOABzzaGb
+F4Y9jIrr5QK95W9X5WCzKXk5M5B0ej1IVyjJD0L1brsgNCZ5qGAxQjYiZDSDMOJ+3GfFCBitHgB6
+q23JCTh37wILddlzd/u1w7hSBxNYmwQKNfBqCTyxnP2FyRaB4ttSm0leQkwqGKLdWOFoA7ly3nZz
+Ng5ieu+LJaHrrmoVAmFuT0MZ5LkzJIvRiOwANor+l2UVSSV2f4sV5F40pfQEVJ1QFEgdOygvb3lu
+8Qg0FU77pvJ28MayTnpvCzJIwuiUKFVnh2XcAFgYeeVSMbMnjapwpQddXojuj4TFGBlYVuqwVIxg
+End2lkEOqEtOXrvSAeEAzKMK8QwD8oJhkFZkk56peHzGXHk+XQ2rC2exlsh93Zzul8v//f74YH5u
+vXGF4AYna4DfwNVOaGKIRINSPK6d6oh1+pXOdqancfc6e3CFWy4wT4BfzAdBSeMGnwB7uQ0VUmp2
+PzMIQPohewIgkd9G3igtE3rA1mUlojZUCqfKPKy4KbqOgJO5BpQNBti0ycEFIFRG/YJg9dJhG80b
+2lTBDWLZ5AkMbgV4LexFAr7rPFRfcPkkFiBlQSBgoxiWMkPcJ0zp56wT5NzWHINavNQJMYY39jc5
+OWEFwTBgj0WZOG9hLybfCZyn2e0BX8fJLJn4KmlmXGTTGa1cjSlL7K3qkQH8Cl5qRbBuiuwNck0h
+9FMZqGgdk/2Bs05tE++5IKO98WKPihvdEW3SQnaqmKRKQ6lGmGAYLxaiKTgvMpAD04IuxI3ujGS/
+DpxQ1oi7Wy1ScFt5cYu7NCAZ2SDURUaUQyIUd7QBJFKBTJKWYwRmgDePCpXdaWSQ0A==
+ ]]><![CDATA[
+ ixzB3S+fU2H39xSnP2bLwNHidwCHkqPCeYMExDQHhPmCYNKdtB34VlLiIntjlBEYEyaKErawkAHt
+HbGL6XOgJYbo5nyyz5J/h4wNQvse4flxwrCtfRbSllfWGvYuATB4EnWsnO0QAyJS0UTg9zqNRAKA
+yNMSsS3KugjuvCh0GGJcZE14oRYopwhZw4SPh48vKLSmKN1epd4CW4pCcmBqikuyA0UhrhE+tdLT
+NJJQDtZmKPezWGLKhYQF8FYeJXG24/bhvYCme2rBOqLD6dMQLe41vuP1s58BhUrDXng5gXA8MFSA
+Fna8CTE3ea66u4eO5FQlW9UCr+zAYWIj0p3Y1NPvHGRPs1B4XDzFGJsMwJ00+wm5MnG7tYVSP0mY
+DYKIO9PTTNtiqMjiZCsVL6oxQt4QkGcm2AIIPFpjNorvH7zKvBhsmrifYNEbHlupVqqaKWgDQiwz
+Z7OU5ysOcYmxhUDF0PR1xE4KQkU1bHPjkWPLstNOrWACOALrRzsMicEkNBwvAVmMntGqc0iiGRDR
+zwo9uvh0vDKxF/IjPyE/RhCKGdwjuIWmFJmmoTCbDcBSBMNCcZ4C5lY1zNGAkFyapBqsEAu37UOx
+sT29lZFUBPWVHxnY4crxjHDQQjJfq4I2F6Z9B4ZVSZ4RBnNHMEaaIOKdEOFJnjXU9OUgkMSF/VR2
+ywhM8XD8hWVTBStESMGq32JmY0P1/DSs9hpxXBCPTTqHHM0GFDTeIGpQXuJKbipqtSrhCQLlawtE
+24zoaEnr8dkhD0IrULpWNxOYyT4JEm3MSmoL31YYnMUwQl3FKB8XI6KRtasHMgFXq1XcegIjGVQz
+QpSb2aH8pAMdpdeTU5OE7YHyVi8kO+Dpy5ZtAoxLaA9K5tLWGgXPlL3SRcOl2C1BKcFsB/WZEiY4
+pEMSOxVi3dLeD7l9RH8GQgl/Rsry09xUwUSBN7cKOkYyDF0Si4S0nKRl1c4LBTs+23YQWMQrqzxA
+pD6dkT/SFvE6BfBv85dDVIlMNSP+GkQSodg5aOfkpUfoBECDM8YeJQVshF6d7yQMKICukMyQxWnc
+7FF20yH2x0Ljwj6Ily0L4AdDqiNfL8Pkc7kqubI6BQqE0IviN/AeApF3GhlERIifBj3kXvLrmlIY
+8oOZ7wR8hsSdC2FPx0FT3hwrMwoWAr81Ggr1Aj6dYDtzjueAWFwwSadGgXC2jhN3EL1fQwKZ8AxT
+EZsIcHF8dRzvYoJZLPggux+dUz0aC06vxDnSGIMioTVWEqqLl2gux7hAqIxAKE+WXWTJ8TMDmlO5
+GOOoPDFRsG5xR9YH6bzlwiBmREP8GZ8kDV4iI1ZoyjE3vqfE8nOEL/OsOCqzgYAwVOf4BSf2IghU
+IpegagPyX0JZbawK22wix2aj5zfUkZ1KQmtyf5JMAQpl4cSohtnjNAJDGRCyYiqXBzs1eUGOzPFN
+DvuVlbcvo4MJCowtEYThWqSSoJjJKNedrSJPOMiD4AgzIA2kXMUgQPc8MZEpctVEKUhG0cyxzooe
+COIRL0bSuScYMG72ReIre0IumoCGW9D0MifRgOgp2vYEj7tcNd6uRDqnhXh20eUCYiHDhpWN+xL0
+gKOgSShgYKyYYNPPoBS+j+CMNSun9tipSUFI1VZNWPoswLmfToBQ0802N7wyFGhoT1eyivB0Tb5l
+sHZUqyRhQcYlwrsrloVIvVZkvQQtcGJCIGeAtsCxEgjIc0VbAsblnGXpciacRHtEpg1wmA3hWY3A
+QVAmHaXPSS1QocwqBO9Tyvnk1JmeNA0LAQ+SCKVcS4B3MRkDcBS4BUCRrOwMxwDtE8yMQ4BFzn6n
+JYbZeaQwM6XLLKSF0p0qjvIMYfYMOhlAkybfcRlHv84u+aArFad5wqrjf2HH0ZNEmHxNS/VCNTCi
+kXvDOaJ2VT9pQEaA5CxBcD0hrzomsOOhoFgxfC0ZuJbhKAc3J9q4Nuh7VBFfg61hcWeCNyAK1zTS
+qfPrXaUF4E0zXrnjKp9dFYDAK9paJYtebW/ONALzigGOAT5DCLQEdxLChZQVX5nyUWMemPpI+VmR
+M5urJN3ASYKJGDF7jaw+wJwxWrtgyR9BKCMmi285F8EukVQV8J4EsYRc56mCbEG+OGicCIRUMILE
+W0zlAkmDjh1dXiM3GI6l4uScKJePrUwCaUUKyKKw5MayCzB3clXoG1nKGu1GE6MEjpY7b8X2lB0k
+E6GOTkPkHZ75czg0zi+SJww9josbKbXrqSuYzRClLNRJ/hy8U4n0UZEtF+KHOI+xkhNCZ4FpIjGd
+t8rmxiAl8E4WLfLB/RuF3QLEZ2ytbGRBLfDgWXkGyYZIEswETdtpOeF0gsE9yMRlvi8EaPGk68Vr
+U/jATLq+k3VBhICw6EGtUwIgRpTJWwj4Uz5JvWBmnQ6dVmbRgqjxlTboKhVmsDVZLmovHUc5W7FQ
+evAC2dQos8jTu0pqMnJFqSWHEgmr8ywc0NJA1RcJD3IOEqbVVVapsomBwzJ7dj2PRICOHUqgEBGn
++gm6noWqADJXSbFAABxVE6YEJrUbMOOOkmCMVswD4C9dKbS1gP4SGYgKd7uFfL/XAmN1aAHcs8BL
+o854wi5TOkokPLKpp669x1LtwFy0AJrM+VBG0XmILpWFiO+s3sKsgNqYlUbPVsodnUJyg8Oa3mg4
+7YYezbXM30uZp1YI/xLXTwFedVas8CQkqFjhu6teLi9chu1YIxEVPvqAkNGNC6SomiLJuuongw4n
+jvpZ1oLIx03uOyduBfBXOqEvb0tfkxYq0y2AYyNYqXwJwv2tQVP0p6IHZ2DlVJZecN5JnW/lN582
+OCNR/ZUtsnV/XxFoPAVvEhU0c12eoyrmQOWktAFT+ZmilmC4z7JvCvNVBbakYkoC7ZHKQ13Fp2iG
+creqWFPE3bWQtiE3iFLQKh3eSLlHQRjwovCBmpexODFgIy2Ai6A4Tk8Vywf5LTK/0pHtE/Scobsh
+BsKS1zaUnCZCtEgdbWLgW8Jhoz3ZJQw4RENzseizVPiQYNTDAbUOFXfgUNVixdQ1RFOP8FAo15Pa
+0Or4CKW9Wby/nGMZKqGk0epzRKQZra5Uwl8Rny7Y6ZbJXGBp4cIkPV+kBo1gqREYK6axCT7QFkJ4
+oEXI1aDgt7Zq4gjomhf8dRqIE+ZgS+kNNDiOuaETKwi5bHLsCcTw3jAVQkXb7a9ihZPPUi4pbSAe
+s8jAqoOsKG0hCZesRScGm0/OGPHJMjHqsL69Hjw/+3b/3gFHFFwGc0Dw3QRqQFCgOREpIqz/1OFF
+sJSxv5iO3gn0qEdKI6IPIBc40oAQoYrmqR1XEqkRF5KUoYaCQR4A5uWQJzUBvlwTJf1B6xPJ7eu1
+Kgc5Cio7N7H8e2zBSN1KFh9+22BYxwsIIggjVWcDMiKFymQYfBItfa8D5xllGQrUAAk53Fa4oELb
+aKdd8iqAwuUQJVgiSfBovSWMDRQKOoANPo0riattUlWzFBx+fGpMylaPlMJin+Q09oKiHGDN5MTc
+0JHd4GAPcVUHCOkxoVsAHFBDG+x0gRN81m8klNMYVPlhu5jB2071pkzmIjqyypzS5YGKIvM6WtU5
+BTn0WM2JdSxPNZJvFDSaPFVypUS2fmhpZu9ZG44oVQB1QoWv8AGfScClSf5OEApUjZVMMhAmO1GT
+dIgC/ckkFxBHcniEjoY8saSfOLschIThKi2YSuOzCtgHcXQ2hq3UgKDKwScaHVlrQyd4HUavKe4g
+pEh9hOBMzypJImxDcuNkNPPKip3NZrKT4HPUGXaS1welCCVNFC3XHCXGPeYHQicQMEiYsqeoMwCU
+M7uqpQ1PvMOwFpzmzUhNa1GbByaDSh8q4w2OsxEkCC4MBfBFVYqLhEajeNoaMBhiTR5XlsRkvKbU
+g5mWE0NLRVdUGCV+JF4JGUoEXYNWlWdEZgSRypwC5Dk6hykPQs+asp9oHWL1hjgaY1riN3rON5LA
+EswbQQ1ZLsW6eN+4a6bhK4OS3cDwu1buzkYD8bbm4W2Nw9ubhrc3DG9vFt7eKLy1SXhbg/C25uBt
+jcFbm4IfzBBEp+XwolKZOftCA5WZO0aVG2F+EIG7UKdh0tUx2laDpwE6BiNRHwxOEANAU+kAJTWw
+xUEPLRHpO94v+zT6X/AoKnNuJQ3R0O7Rn1nlpBV0jvKl5JY1GW0GkSUO+mdNFwOxJ7sSTEXdf6iW
+LRmuoeQrCYUKEl5tHNeMVFsInQisL/LUYK04twqO2sC1UciPxS0YijOTquG4PwDnuMyFojUzmkeV
+UF/OI481nPupNhkiLVVr7xzRSiR2IZCQyUkTp8UvNF2LC+mg61Za4JJnVGFJEpUSZ8PbEYkFgUDY
+byilCbmIYgS7w1mBwWejGOzL0un7imCuxECUVCy0InRGidLEcempDFRbaMcTR1q0crYuYAZQTRuo
+VglIZSEZihyqUxdOzqxcm80sCUVttbIQ2cP4mQWxJLEQS1cD2gVkCGqWEdeTwrXMi1aw8DBLA5p6
+DxZ8FYNW13MWHRZNf5uqWIyGogm8lRjxQoNJXbREjf2sbHuSrJZSZA6MUt5YjoMOxjvICk+4bnCW
+c9vg0fgSh/sJORq2OJMlJMJFY/Bs+SGAkJyREUp3lEoL5LyNQPWXkR6kiFUu7RDjOYQIkQUnnm0s
+EtYW2lFSQEmTk1JdK6hhnlHDqpPYWSZzS7djXnXg9ZfxIkb4jKpTOtBzR6HAlDztQNPqnAUhxh2E
+ekrkbAvB/wbboyYGaA9enwKU3lB8FZ5dUJJQ/jpMZAmSap9r4Tp6OU+KvDIohGAuQIDXWKEN4qIX
+FAYO9uAjG6LBknwk9VKw7KLhGJQpRkZh2FIuVHPbW8jofbSGcEV4R8yU3QahxyRH5RoL1yFg8sUu
+7IigGhGlMxGEGu9VTEQVyI3hCCUIUdb6XkVRJnRN2F6XpsAVtisZONyiCsedSU5pgZUJZsqFNAQM
+MiYwYCZi5d47MlzQljdRTg9UWoz5b3HQEDVI7mYIevyg/GTYsHDpsTDTpEKgWlkDCwZ+Km1Zzlnp
+Abn7ccvKRbvlhdWyRuvGTc8zNoWqNHhHZcVJIUrBx8bp2M52TzUyazHCUQyiE9t7JJQUiQui2OdE
+fpHQTS1D8UfcspCfklStZUO6R+kB0cBX3ppq7QnClTm0cCvzWv/ALx7mYGQJ53BZM+xjPg4txMIH
+YFwVLOOshIzQALwDUC1vU1RYLq37TfW0vQUJAgJwU2YDXzQ1bI1FjvDBlAHkCZMZUNVKoAo3XcNC
+eb9g7jyfBDC1d1caCEE2i8hRDxgBbysxS65GomWAjoyxNoX1rOm4mhD/c0l2uyhelkoJeCDsufYY
+2Sm8NUq2XkFO+MqHDk48gEIcOg21K/OQlgvGQuCv4xw+xPKgjcUShywJGV4Azxx2xOoKTubQeSnf
+RkJTMhB6BZx4hMJowGFFAAUcozK8oDAWeeQxrQmjiXVsgaYhK3Er9IHqygG+qNgy7Q==
+ ]]><![CDATA[
+ QzJjnnhVbs0EuaNG9ouaBQwBK/poZ+E6TciT6cWI1UoZq6WCSd71yWQFVtKoMGSYw01VIkVfhool
+Hxzck3RO0OucuBi2pN61CElr4TC36npMtqPTVxbDhcGmIBfXOiHgq5Sfh7xYupgyw39UPsqKrHI6
+KY6bhc5zSG3ATIMOcBmZpdxxEpLTCVMmvK5GSm2hQ0MYtkyOnwHYSzZyVsNUC0peF7UGR8FoaRfI
+BH+DuxXDJ/JuRVknBK8IqwzxARGzcrpbRTjZ8m6FaXVvRd5eBN5rxOiBiwMi/YA7PiikRCH3uMU0
+wyGi2JYGZ+RXrr3BY3KhURprdKvAOlucktztUcegLpRtXZw2IAnUgj+pXjhMoNZMB9IoWVDaxaIF
+oGHDUc3BCSe5MFDdNZ7RmD63csEMKy/28YMXVc9dbKtDEr4rw26TKE0U8gAYyaToq4Q7ahTPQhV8
+hc4wC1J6b7NmJ+IWVgQJQR8E2P2U8+QQcquf8RjY22lhHggte0HwqYtMMsqwvKhvuJYzMISsuRjy
+TNFexXCqWJBDvuhIHDB9s6tkQAdJZaQKisiGfWFjv2+4YO2bOJwyyWiIjsEgikBpolYucsCr6vGx
+dIjt8WVi/o5G1VHGjAU5HAU2p3S6cb+xw0JIyamrXldzCNKs11pKDvLDhbmvg8Coc7BfFSsABJyo
+APuVV6iCRLV0kYAXVEE0FWJlaEbMZ+YOh4NU9aJ3is4Wnod1w5PjGZTCaL2tM4ENCVN67X3lY7Lr
+xQsgJ+yWGDVPAYWWYzaq+sYWKoSkeheqJNMIDApa8HSmbo/faMmvUNaAm76niVauP4LtStwzlWtp
+MItlEIbM8Dq4EWsDCGtOWdcpyIiZbp2oyeWUazRFHKuE9ElQVSxWIPanJkBakbg+SYgmC/piTMc6
+xxNHVL7lICAGOFOEpyGeH3Rh8YaDyTi6YxnKWoTcDmWXNeQBgHzipKgAnG4L6WC2305oDuRlqtpb
+i2U3kLZFeWHoYnNUBDYmDGML2fB+hcyANASyJWAr0AhV5K7iuccR6xhuWJCwDtoRK8orJELqmYvQ
+lSHDw63XklMiKnwH5j2+FTnaqSg2WgxPxwI8MPkgTuiMWA94BhwSkD1dgiMS2I6iVThQXWTVJiVg
+MgzB1LFiGysm6SilSThYJ9tPUiSMPZmynyvwgFe5bLBZxYI0aCydxdyWwMf2wmwzMYSgcCIybqOe
+8DBePONUpCheaOs47IxIMarqOZqI5HdGrg1BuEqcYBJaRY9lf1Q/37k6oXhFnUqoMoDlI5k8lgwo
+3JYGqG+QE9BI4pwzEdJ+5zR5FITk6cRNzA9dwF6SPuHMKRBSCl3MWl9UtCohMvylTgNXCoB/ScJp
+sBzJBPdy5CoK2wMq1QynOwl6OuXDAz76QMY+PBA9MTGYXDQTDBjMShXPnyBRQ3c1fMJMclgaLXHl
+MnoDmc4D5EEWs8TBJy5CwntAYcdTBo85OXymUR0262HD6qkGZHzDfgWsKKohKFBBnj9RZ83iYW9g
+5XpOUJ1RIlB4Ah5MYpJziTILLY1hMOvhSt6Bkrfj/WyNSPQHb8+ce2BtcSqkfS0R8ms/FhCeEtQ/
+BKeKnvAOwfHHJKQIjkdeP6hyHOcA84wplT7JCLgsAyp3RVISIxWGMkJIULIb+v2KnioMQ1Al5SUA
+m4Gy88GC6kXxJTPGIFolQZNAGN8ZirKDPEMTHZeuIz6G+oSLFJ8XL/dL8V2kwywJpei7TJGI6MCA
+NXnyCJNkigBsqTwDQBCgMxjQ0nZnJHjNeKOSw2WR4gnQqQIiixd6PkVg3cPQQOGNSs5VbZ3wOaZN
+rJUsH5PIbRfIXyjbFGEgT/OWPGMgU04TgyZPtinJIKcaVic8KRB6ryFJ+M0IFDereDjnMVUshhcl
+So9labpP2Zo5oQlTfeXVDrJNCzCIw8FRDarti6KfdSCvOIpuaJqct6QSNCmD0rfJ4apwEbAlkYMS
+06Q0rICueNqn2B2C7hvqF0yaOtox3ZTLKqV4AdNgDUMSSOU/qDfKsqmcetOPRWSxSW0DKz1CGoIo
+qfgRnUIAWi3aoqEZRsPTV8MqlmURvE9ypvLWgwqnb7XOsaPfc8YrCmOQI5jmiBin5Tt16AE7LSDd
+vTtjY5RjldE0FY6gBPLwDgdDsdz7Tgv2LqvM0lOEiAUY/FQd9RFOpjaxHJ0PssdU1tqSDoBbX5Xg
+FDiGd/VkGMWFpglChh85hZfUXGhrSo5PefQDMugu5jSximsL1EkszEkqGZS+1TRcqWuRy25hn/JB
+Uswwtk77VLCyeXESPO61eVAxQf17ij8GFWuRJ8dKtg/U4ibOLsPKCG2hpCxn2WhFzbU1zDlR2ocE
+R5VCWw0e4XsLdISBLYjz2FHoufotCqJXkpqMmChzQ1tg/gNItWNSLxiaVBiE5KQBRoFObiT+6SjT
+WMboZb+m3TYN/EdZPIaA12bDsF1GL1TzAi8NU8ac3VkRWESpU/VuGDabaiRKJTBugsyLB5GoqEBG
+OHmx5FNNFsoUhBokNrAQBk4AtYPEXBAvAbcafN769Xiwp7p0OS1EpeOA2llXVVi5hTEgHyGHIXJ+
+l5NVR9V0mBgvaaZQQ2UYGAkffG8g01nJEjwODyszWAX6UXgToIJ72K0y1b3RbnW9LFtWkKs5tvQV
+t8iwZQvyxvm1fP+Ns2tZfovcWn52t8isFflN82pZkd0iq5blN86pZfEtMmplym+WTytGzM2zaXnv
+uXEuLV17i0xaNmxukUfLZtSNs2hZfoscWpLfJoOWB3zz/FlaR7fJnmX5LXJnWX7zzNkPljd7/4Q3
+8T4Jb5TA5hLCm9Uf6NX5hDecKlyY34lojCvxOyGrWRL2MWCOq5wk/DWCAnI0DT9jhEDMNzQ9zRhx
+VP+6vZZYvJVnPwEkLmKjOnZcokXZOR9t4JNXyup3JKAH3Gi7J5WcQnSgK1I9BxtlEBOjwwWnKsiY
+fJKBJFlMFQGqjJjCoN+851NeETSsxBY0nOaUYS1yYTVCAnVkccAgy5khgTQ2EbkEH19jxs1C50Hi
+jCEErtMhsPJHPhIj1Y4MFgxgN70WtvjC7gelp0DvGjOTQIV7kGROzgeooTsKlL4HEINqB6Tufg2r
+eNboSywkS4ppyakTmBjWUyo8IcCRnN0aIHSkH2UAgLXIKPOAJ9OpoyPFvglMOQiXrCmUn2kEkaek
+omxrmWCbuIEk+RO57+qID8wokIm9qYBTwJg4zcbr2T1wWxXg+MoxDDHbOVumSMKOkH54yjzt7iLL
+h+qS1bNE52RMD7Cy+dGWnClev5BlhIFPFNugqHmWQlyAxMEpRwiKSeQOEPrXfVJRtsG3xuCmgEFh
+GeXCMPck3MUZ8hya39X7k/BkGIbngtJ1IpxJRumSMWuvsCzpEaY9XCFjNBrGh0p/znB1AtODk02x
+P2K0isMy4iTGrDGLVIWtMBZNqIOFFNRt2fM4Qc6Jq1EZgUuU4DA4PsVlo0Dh4ODMafCZcf0zJJCk
+KmY++pypXF0iPsiVzo7PDi9FxzaJ0okLviifi6dUwCeUE5KFpiN0ME6A28psyCBxNAMXuMKuV445
+IR8MnXuTIbQS7AHCNhF3KhxnpcBf8HdxMXBSBySi8XdlorzgLniqKCdgD4HliYR5Ri4iASzygOzJ
+J2IEr1hQH9wWITVkpUcAVAaCyMpB10JNcszOZJhzByTfD+GoWH1IcBBdvcYylrRnFEmMxvQjLZyP
+c2QHsGAtwonAaNK3HGDAXyVCBAvelTeatSKoaGYNQuS4wF/njGBF2MJ2Y6jK9A3pm4wpFlQrAqYZ
+f1kiKg4emBNhVMapBGmhXFhROIMZoDHo+G3IxwIdrWyxIaBpcgOYfY2Myia4M0iSmNgpoOUtns1L
+TPhxPUnL6cW1Z5oBnnsQYDlRdVnRyOENcaF3IaDDFhZwkS/LSlbGiI7Ywcro4aUDnwCMUqH8Sk8o
+qvRki7MMiC4gmAC9WCSuiOkA3AIENAXhUyAdkLaLr3XOCfoLrtNCsNdpyEr29G3W9HN7pe2PwTmL
+TAw5uMBCLs4M9CUYhASx+Gaq7Lho5HAeTdVai0j8YLqSiU7MJnWWQu0UfhPWuSi1SzIMdDnMIWSO
+ZcQ3cLanX0BiF06s85p+VwR5GRAG+kJGC4XCxs4pKCwy0NB5oOMBgW8mFYbrjENUEco1Iuf6ql7G
+5CwJOxDe2wZTsbXw6lG3QykHmQ1RoihVQl36THGFLFufTraVnOmlZ+vTSE4HIjpXpbAvHE2SGBsS
+njh22tkBWD5SDId4abz0n7ZsyMvNPWBMoWlQUXmIWDNWCKYfaYob50Vi2YnESCq5gyB31frBS8Ts
+fDAwSVQzkpgOOa1W05MobxicOckNpWMxGXbyeGbLAAOIgfyy2lLrc7hguouEKSyCrwU+Op1dCVF7
+Akuj2RV8Ld/pDp14aseqMrQpEyO8ZE4JDgpXF1R9Q9qKz0w+5hRoB2GE2SHQtyD08Xv+MqGpKvyC
+woZbcxoC0czDgeEPpfalWhXgsGKnFnyTeB7gLe7LwzmxqLSuBVSP41RpztfpmCsQQk0aZwFkQ4qE
+Ywa1F+srVblYXDIAV1P5m9A6VZuO8hOxZ+zIhAxWinrDFHBxT6I4DJsi5HfYZ6oZZnAELztoAWUz
+Ye8eZh4byddwrjLVpvoTIAlGSHXHTIMoqHdIPqXR3GqFGjR1Dp3sRJYm+3sRcZCNlGH3StEAIcIg
+UQUYhztYLwcBXQJnp6T/onOLL06MIbQ+CQvGObvy4Vj9zRiippoHIBfVDB6ihsRyxajRivYeMkhx
+LJKT1N4KQTOL3VHH1j8mGknAP6pz2o8OVOL5RqjnXk0LHjFGdQacJVZbRbKNAtfCFUnGRo+8d2NS
+fY7SLKd1ISti4FhzrkGSFwtyVWIObypDribj8MLuJ/oC0icTC7O+wpR/CXM4aGMIAFbeJgPzhOAQ
+yJeV9FCz/hAWa9QKV+JT+Nc3y+Xh4s384GS2vVgsT0/XmRXeC7c2MyxQplcgsnL8pSC7vX5dNlRk
+VdEkyE77dkUOpzfGO+zJOnDaYQ4mIHVLcRDy8SFr7I3lTD9ZBZK4N4KcnVSYqN82yKRn1LDK0eiB
+DNbnq/LAaV79yxB02wU3G3umQtZzMhKVM1GhDHtopM9P/7ZRxj3bPWeOn8NSeS+cMLPvwcowWwRs
+CE/xZ1wq8dv9g8Pl7/jvuGq+np+eLU/aqgFv41+/ePSbf+eHTccKijbN/mPWFBUYM7O/vjn3EhDR
+ZfTfMvPA0k5LKrRf8AR+ht+6Nz+b/27WrIBaHv3mr18ODsab/Kzc3o6hG3+vePstv/3h3H7ePIy/
+4Fi+whR9+M7f+e2Xjv3i34/b+fu4/epj/zUsmxuP/Re8bG459l/qsrmTsV99wdxt5+/p9jt8ZTbe
+fq+dv6fb7+OVue7r8wCn7s5fmfPm5AGO/byf+3hlrrtUbtz5+7v9zl+Zq8zGAxn7xQ==
+ ]]><![CDATA[
+ P59emQtuv+Wy+bidv6fbb/zKPITO39Ptn16Zu92gH0Ln7+n2a70yN5i66753D2rq7nzsl97+cMZ+
+3s/9jf0fetnc69gvnpOPPvbzPrrXsV9w+0MY+/jzIcd+8VL58GM/bzY+1iujt3+UsW+8/cOP/SrL
+48OMff3n1/Pcr/Jz38/9nm6/v6l7+GO/9PYbj3395x9u7Bf/XmvsV5mTf6CxX3r7defhbr1GD3Pq
+Lh37VRbJtb79Ko08kGVz9aVyy2+/j1V3T7dfPA93ZZhdfbY/5Ngvvf26S+X+Zv66Px89Fnmz772r
+sZ/30S3HfsXb7/Db73DsF//c1div/pTX5+SBWNTrHbvDsV96+y2//U7Gft7PfY/9vN9bfvudjP2C
+2+917BcP6vbWxS3Hvi78AGO/4Par9+RDRkI/zNivMpxbfvsNxr5x6m459vNm9Vq3X/yAbjzzl479
+Zt97wbdffTg3cHVea+zX6vydz/zFg9o48xeP/YLb77Xz93H71Ud6xbFf/POgxr4uvNexX3r7xx37
+1Wfj17lsPtbYL739Yy2bhzD2i38+5LK5887f9+33tGw+TOc/5O3XXSoPqvPjPzeDvLUfy78rP4/O
+QY274g/cbo032ey139z+dg7M3Pm3n//jTLbeRWAMddHCl6wA0t20887sOBt8uz2VUktNJXjnzK7x
+l9972bdbk52NsZqduuf3/M52tXHbldb4rTtvzTO/W3Z2d5/t7Cd47unZzp6rz2J17VtvO/PO+rCz
+nZ/F/e39Z+13d9/umbLrd82z2y6bNtnRbD9r3d7ri3bnWdxOYce61Ym5bufXWr+s6at3XuYk7QPq
+Ic9Ju/28able5+l57u3Zfdfaz1d7mFfrPK3Cne2wt/tsb29vZ1dWIdx+7fle//b2srhn2e3s7pnt
+kvZDuNrrc7XOB1tj3k47Nnvvbejv/R0oK1wuYb8+2w6xTTygFl3v9ot+YLls17rd+u4yMDle7/aL
+fizc/szvle0dV7b93nVX38Xfbk1xOW1D39trAxucm/xa0vM3+/G2tttj3LbbLu64ZJMNw69rQ0kX
+r8mLOo+Pc9vuhBLibtgPz/R3LxQfbTHppp2ntx/Gvru7s79d6rO6W3f4d7vspx1v26q/pOnzOu/M
+vn9W9nd39+xOezfPa/q6ywZ3Y2vcbtscwk4BZeXjzjAxOi1XmZMVTdtadk1bZbfXdIvb9nHP5cnj
+XHmYV+28b+qk3R23W09bb9vbaWK2O3B7nC7E6zxI+nZoGzB5St1pS8TF7dr25LS9/oJePPbNna5x
+t4Yd01rLIYTtsoNv57PWridNu+n3skGAcoUHB21vP6slVb/vrNtLO9s7dR+YfFZeIfn1bfZZWZ7X
+edgYXCzYcGyPb6/d1F7M9naGHTCzeKWASfxs8rsXqt9pTe+c+6p6CxDZ2zumYufbZtZMQo/i7bq7
+a3b8ZJXD7y7+7rUVD7B+uu+tdx4UVEp5O7fdZsftYcO0geac2wM1rRFtut2Obe+1gYXttL3fHkpt
+zfuNGxT0L5T2spRnoU0iPTj6zmSrz6GuzMSzCNSsgO2zX8L23nZO7a99MY2dh9mOrdu7289WtgTX
+XpNn1q08wIhr3vvY3t6Y2/N37aFAt9a7bnE3eLZrtoHUO8vnvfN2bd35pnGAnNultmbTs+2y2vVh
+f0fV1zRQeeafmf1LTQZr9oACod2+3SzUsB9d2T+n66Cw2/vdZmR39R08f9Hq9hSdr6m2ddC7Puk8
+tt6ePOzua3DZG3+i3Yt7276CadSUTQ6pLQboenvLABK5NWJ1Ts7d3Td3njq+Az1v+2pbhm0tlKZ9
+9nzrfHuNA2vh9jDhuffd/fIZh+1Dr7ewSbWRwzouTRmVlNqWst9eEztM33azLm1fKhd13tscbZvG
+9vbgLFd8+57txp203dSE37cCLN529xjhuYdNT/ScGYG+7HFf2vsH2qa9ok1BPKs1Ox+548M6rC7A
+dG20MHvnPc9Bn0R4A014lvZSMxN8tlX3PbK+t3f2oPP7g1bZ9OPNHupfeGXag2NF5ZrqhGXjKnBx
+TrY+MsBrbS9DraoLV2fGkrZpH8e9dqkp2xM1BUoCOuxxIP0HN4imHeI2LBvW46HNvFxo8W0vNrSN
+eg8uAwL6ZqJPzxXnWhe6s8HzSDtNweQ2vH18F4rZt7m9JSHtoJ7Htnc3HXDPnUpqvG01OPNtae22
+t/pZ+45mTfi2LNJ2acqp7SPQcD3/XHFx58vOs92mPrdjaesytofXXrxn2+2F2c6lCXGHve6Rn42J
+Wra3Yc3v+F3bFHA7S2C7rf2ynVI7C9nLGz6/89a3+Ui7BZSkwc2xvYXR+r3RCXKT0wQ8f3x4HtZ8
+2MbdbNvvAmlHe7rX8N6c5/rAVdf2Na/mSFlbvDfsPH0BbmpiWV3LGNRv/uzZ0WuAJnv0m7/+4RGB
+pDWJQKTtI3Ae8Q8wHp7F33WKAQAoLoFwXgHTHpGFARe4AlvkW8EgJhIxQOwG1sJDgXzPnhgCPdE/
+HQqGODE0ITtBrSIGFEm8PDOacpO/nMD7TfsKeH4AG+mpd8BTyPjCgH2flBWvy33rUBF830jwwMZu
+MY4mIhnbLlKkbuBVm1wIWHfeTVschPz1irAscuCVDwLRTI0CqxGzo+jXi2whk8s9Ha4dxtQbXZ8A
+QvbFCQR8YGP1OSJ5NAGDAtMSzRTAhycGFy3VJYbeZiB4Ij4pUyEA+9aOSd7lhhpmdNAcGCzdMdAs
+jApRMlXYqfMKgd32ixERN4dps4Nw7MMoV4RTuKJkxvxth8IkQLPESADAlk1VAiThy3NYVMzs6ZdH
+Z7PHAFI5Wxy/fXf8/uj17BSoUmZvj1+vUKRMXhpLvFOEHe59kmVp2nMNdZDjcp+AZG7662ffvm99
+PO9txE82vY/4wcY3Ej/Z9E7SB5veys++hXmiNxPm5iv6Y/XtbDJ5P6lfm97Q1U+u/Y7SZNzmLaUW
+bvOeyrTf5k397NtXj2AWaVL1fZVnvf7G0ie3emehidu+tTT22723tDpv9ebSmrz9u/vZt/r20gRv
+en9pzJveYOrGX9q29fgvR0fzt8vXs+LlJYbnuUYddCksLm7d3/7p+OjFycHR2cHR90+ePBpwT8dP
+Hv3mT+/ws0KfvTh83/771av/XC7OlJhp5+T96ZvZH+dH8++XJ7OvTl4vTz6/7MMZfbo7Pzw8+P5k
+/u7NwYIv/fPx8eHTmZ+9O5t9DRP79IJLP5+1nj/GGxLcsH84P5tddANe2p5au/arH+eH46XU1uYb
+nNxweeMutmupLer/5bdEI32XS18u5mfNsMKrqC25dqdN5NF89nw5/27TxXLZ1/PXB/O2Rl+ezU+G
+66ittav/8P7t/Gi2v1xu7IBctX/4M/B57bTLDpezpzzG86//8uiH2ct3KL+oWbiM2to7OX4nV7bX
+7qsjYvwarn2xPFocHF58DbW1+2Z+sjieX3Lt/vvXy4uuoLaezvbaq9/6eXFjX8wP5//187nXDGv1
+5eLk+PAQRjP7Zn5yMH/V5vP58uj7szdy9wucp6MN39Je3Se8vo6ftH/M9uanb5pSeHl2cvzD8vL7
+v5r/ML2I2tp06Yvjw5+PlqdtIV3e7O7h/PT0gNpa9Gk//4aX87fHreHPZ1usX9pYptrlHjTV+voD
+XTS8U/BPO3sqmpau40G0FxUw4gE82lkgLm77AOGBE560xb9aPu3QVDTrJVbAd589AWKVmh19fPGw
+rz+E6bt50ShmlsYBEdMI5BsxhWwQ47z9GSuPqUQcCY9iK5YZkF8BrrXdaldb4LCHf5Q2wkI22p0P
+qqslHtCflj/pMJLBceDvU7YSjc4+/Fb8n7mPnoHOAm114URn7iASsPBk61+f4nJp04093ko00WEG
+bGw0ywmeSVs4YOTYWfL3M8eDkl4ZTKRZpY4mWOMVFy8QE9N/Zk9wYbReQt/aKqDlAJ3EreHOOzvu
+aiu9tY7WrSupmZkyvTy7jv4C3WWprJFLunjX+uccEwDHokYJjaz9tsUR8X/e4P/dVbp806/vJg59
+fwZ4+hDhf/Ct9/ndaDKxscSDN7PQxmzo//f9/d3WlKmP+t2woN39fn03/+jr28iTEcqA9r8rrdQb
+fne3mvm7ZwUm34r2vNK47/ot2WiJDTYdv/ozeff905n8ksZil4E6Hm8+ded1hQ3C1Z64sSdAPta0
+vfsgHQJLdrU39cPPC9nAqx2x9sP3hI4K0pPRcvgYvTnf4t/UQzeso27jzPx1ennXL+V5ljy+mGj8
+L9bfzBXL0577SVj9hEyI8fM+GfzIzN08sosGhoetDcesi8cZqbPnDNVNPqFxjp/7tVV5683noiG2
+8+DGl+Tp6prUJwCMwtYWJEIqzhNjVmx/VZ/Ah3k4/Xh6ybIrFzyNKsMiYm0agNroH2YgdBS+ZBDx
+3E/yJe9O6k/O5nbYA4u4IJOeufYQb6JVKn3WVOPLs58Pl6ePfvP0fx4d/3SE/wKP6mP7BGzP92en
+B6+X8oa1014bEnhSn24vzg5+XOrlT3fZ5bp/cAhnhN+RaXBwNKNLSPw5aU2+5rebb2sHicUP17/t
+Kt+2M28acbin/fXwkltGP3Mb/vHZ18vF8cnr9lzhU2iA52B2XvTyymxkyHz1Gr5z+d3s97NHv5k9
+1vbRfd16ttOW5+zxX06Xz35cHn31+jXKfz/Dbs5+3255+mJ+crZxsDuHy6PXtxotttCHa644rmE8
+vYXzO37xKGglXjwMh/84/OqEL758ZHRhH5rGzPXZrcXMbRuxbSN2G0YM1608yeEbrvHMdo+PXr8/
+ODtvoNeYtzt/+qKe7v7pt3ue/ddy8R76Qh9iE+sqavvo+Ojh6KSPs1Kvrlw+wpL8IAr3uup151VX
+0ztv4BloEK+dx18fLI/OZtF9Dp4pjwSaZssBIe+T6LZiqDO7ZWvIyimIzXwPTe7s3JXuvngSyXgB
+V+fs5Zv56+OfPsduDJP4ePhwa37wrr0kZDUAn6K8Lo8nLTz98wF4qS99AmX29OvlvI3jzfHJ3z+f
+SH5cnpyhxHIs9tXhEQ0yyiWvDt+fkMSI6PX85AeaoS1t6fjdfCEt0ay9mx/QjedtuboKbrvlni4O
+TyajWJyeLD7mNnvVsdyzop1lXz4p20/K9u6VbbKflO0nZftJ2U6Vbf21K1tcMV+ct8DMlvGpPRhr
+HsLZ64N5Fu7szfukMD8pzF+Uwgzmk8L8pDAnb973n3TkJx35SUcOOtJ+0pGfdOQ96kj7SUd+0pH/
+4DrS/dp15K/ay3mLwX8yFz+pwrtShe7jqsKdQ1BO/zz71zcHZ03fHM3vJfln8zr/808HJ4frK7yJ
+T88wPev8BY7XXH1p2wCFv1kW4fzo+wvV1j+UEr8C6oOsLbB4I6ytPLsPk/fBZOzouxQ/YsrOxcO6
+2lf8Cra8Fy+3X8/ftX99+w5f829fHMKbvaoUXhwi2MlWefXdZo3AF1xdJ0THu8Dr+Q==
+ ]]><![CDATA[
+ 2fzlwd9pZE93DuT67Ze7X35Z4l675zW299k/tZ//Vl6e/I/f/n334P/xj+Hf8fffPfnmoP/7v9cX
+5f8u7brfbuPf6h+X//Hk//9/YW7wm66xwNam5ouTo9n61Hxx0hTw+RODH3+AafnzP//rd30avkz/
+tvVPr4dpyicH//MNTgv+Df7zLzebFto89t///e8/z/44P/1hfUbws2fffbdcnJ2/hewv52dvrrNg
+nGwfUAgHleG/6jPUzuH75eyL4+NPZ6hf8Rnq3jJFyqdMkXOeQF47peXLT2l57ZQG1ZWrxzR7hUPa
+dVQ01ZTuHp8cLU9O1+do8vH5s7TSypVNfj2ZnnxS1795/Ifjo+XPi+O3r2YvDw5/eDhK+04PlF99
+993p8gxqc96sL7fhw/MX26SFqy61J2oZHH93Sm9gEMnbw4O3n/NOg+/kfx6dvXuQZ6otQyAJ3nr4
+oxLGBsIP5BIwYlLdRYetOzxrPZg58TVZxF6wALtQsWxrK8BEtM989pccQNNDKRl5uHVUXTN9rj4M
+o7//Puzy/zF798stsir3uEn8A9iDm2xAmz5HzBZAP0Hjz4aIbyFg7X086++XaB18uVjOdt6foEv1
+w/h+XyJeH53RN9iG+PFlJ3i86Orb9ONnh4cH707hjqZwAbDp8d7B6bvD+c/0z8k2zW3T0qGtfPvV
+6fHh+zOS+jSI//XgNdgLq+I/LA++f3M2beTr5WG/epQOF1cRk9F7qbvhjs7LtzpYfsA9mSyTtidX
+RWe50Osd7nITvtsAyMn86PS745O3G4Ig8tHs2XxxgcE6NHHV90B14Zncy8Xqp9NF+fb4x+Ufvn1x
+tkH8zSjG9+Xo/dvd43cHy1Mxf1H67uDoxfHB0dlUB7evfX38VlyL2vDJ8dn8bPnt3vL7k+XydONn
+BEHFn23pCe90MT9sXd2fL86OV4OQ/NmL5cliudoR/Oz5wdFyc4vfXNDiN5tbPFl+d9h01l83Sv92
+7RP0i/dHP8zabM12Do/nm7zi7xc/tL/qFeevE77yn6WlK59tim9bsNETzutvv+tz8lGCGF9hPNlH
+P7z8H7cA/5OG+KQhPmmIW2iIT2td13q6aLHbLROyu2DF2/PX++DwvcaCt+cv99UG73u938c2YgE3
+iXBB4Q+EUxJEzU9byi/4NfMX7ilb0fWD3KeN5R93Y7kPnQGEXaAsbEVnFHrL2Wv5C9UYHyusoq/E
+3YdVaGD/dvD93+ffr4+pyWf/Nv/+/PHwBddSf6JN2lNpb/2Kfpuzb0k/0VU/f9vuOJvKTpaH211s
+u6o6eP398jqRzvtw/95pyu5dvRC/Ppdue9dODo7PDhazrw9evboX+Kx/7Kj/HXlNLwZ5Xhv+ORee
+PxHrN4yzcWehX0QUrcmUcU+7OLjZzOcb5teOoNsXOeOffvHVq//8ujXzu9nklssm/emInNn68Jjn
+7Zrbwz/2Qx2cYxd5x81W+PQUH+5TvHa0A8lQfpnP8yFlPj7EVPpfohnzdTNDXkOe5Ndf7DycrLVP
+qcb3duS8jyPJTTOUrUtbsVrA7vauunOzlW39fNht7y8x5b7f+HiPb/wve6VclMue3afV8aBS1PQR
+KbvCg049/BVu+sfvv3/TxrRcHv7a9/zrVLt+Sjb+IAr+T8c/zrE6KWSH1UnBmzx7EuJWqEDSt+W9
+u98E1YdRKarFQd8fU5jqbipH36xUjv5/GypH929WOXrHujJ8Mpdu8DZtLPf7WCbSpxfnU+hk3fx4
+fwpxkxfLB8Q5ckdK4MEZLfdaIcXh6/dnhwdHndrqZhHslUau+q5fs172+zew6DbEzOCDC6NldOdV
+u+U1o0TUjYbWX5/ND1dTK8eYtT03Zq2NttH9/abnmU9O3l+fwn25ODl49erw59n+/KcPGqj+UK9b
+XHvdrNn0vnFu2Nuz64e5eA6XmJH155+W8w24KOvXXFBcJdf+s7R27cEqQoFKRoQCGuv8aPFmKgFL
+avLvU+nKVH78/uz+o/sftPwaE8pccZBe5jEUj+XXmQqyIxQff6AqpwePZJYfjK/jg6QcugwxCEcr
+JA5Jy7g+ssMIRSrp4SRc/Tr2rePvzma789OzjuLyQI4LnwKUH+dNrdFRtkbEV7IY1OU5wb8MgkfI
+u/xxKWMfsE9pcm58SLS6jDt3slzO9g5Oz45PNmTFj59eAD03aePKbiOjKLqnJwvDBecujMIfyUYq
+ZhDaTVdavnLSpqMrXXSjcFObftOVnq6sbitmq+2+Pj3jvjpft2zwbvyEG6++vSXWDp/Yc+9Z73oT
+rncdhGtdb8L1roPwx1s5DV8dfr3BaTh/fwr86LOdw/cXAFdOLru5E9GFmzkRf//lf7754e/bZfGX
+/xb/1+5iDsJ/ehDuddCW8d42+V+z3SL+9+I/WSy/YovlIbq3Piq2ol3zXNhNnosptqJeotiKWf0d
+AwJ+F94IAv+HWxpCn7Dv19Xgvzf5/P3h2X+MWvDlwdt3h10LDg9BvRJolN46MYMf0YumUc8m3fxs
++8v67bOj19snZ9iNUxRFEH37p+OjFyfthoOj7588YfnOsi3+F/PD5dnZkjr14tVq5x7/+9ftqtOz
+kznMyn98jh/99e8wCSsfvFhsGu9j5AcYPx1NdGIR4E+3PJ2BHGC1tj+wqHrLpAROrKT/x/u+OJn/
+LLdxLbbFRPctAH7VupT+f7zrOSAlzcZ7N8KBPN45wQsBqVj7VgJeuGX4jtYTvf752uWX1oc/hnmf
+3GJMxhoanASeJ772m4Pj9pBWLkzo1KELt8K0Kys30MnREiQh9QnvKpPOrNx0cbXq478tDw9BRcpX
+0MOiaU9yaevX0KuVW+QL8BbCS+S70tCr6U2uAKjbVqZnzbCKlqqP0AmqC+vkGCIC/DTogkjrK5ta
+BJWSlge05WBWx6c5NsCzEGjmA90vbrRYnetDpec63nxOIQYt//78EzvpTKTnT93SB7s/B324YY1Z
+nAReXsMzpRvWl9kFFVtw29fL132h4epNPGpaxFY7NkzWeBOBgQa614Vs+abh7f3j/P2P2qFKaJgy
+hiQd2T8+WZ7C27pc6lQWXvOt+4X+Io/QiV4YrqY+QJuoQ/idnT6pyQ3kfRkSSUZtMLkySdOZbqEH
+tTIrm24MOP2IBcp6BJfP6qp/vn6np2VW++NO/NDptvcn7w51UgP6/a3rV6JIrl2eHPx0cPTD4epa
+ouABrxGe2TToz3mz0V7DDj5RLNozO3Ev65P86mR+9P1yRVWwNoodLbasPJqV2y5VFzRna7dy6hDu
+Q7+d8YbTFX7fknrO0MrF0oq8vJzOh5/+lglwEOXh8NKGN94z9HL3+N07sZAuaEYuG+78+oudGdS8
+vAJlecntk2vPGR0lK17SEF009OLPzXo+WDRj9eX7o1PYTC5pYO16aOvxH5ev2/yctIe4nB/N/tzM
+89MrJVpvvhGbfPHzyfztwesrttOvxpuvhzQ7Xo63/8t7oA2CDJCDd1cdyeo92NAu1PR/dziHpX2V
+RsbrsYHtv78/aeuuGYFX7MbkBmjixU43KtV07NbkaGc++s2f3rFRip+JWfq8WY0TI/rRSrXWo83s
+Uo9GuNFHGwrV1xICHq3Blz8a+Cc2xWGazD55dwapP6cHrzVr59E0tXya6rVueNMIL7e9N86WNfTh
+y5/fvjo+hKb+L+n1n5tWwyG8x6g2POGT49PT2R/mZ4s38M/9w3YaOYW/fbGcn+D44SOox+wjQT35
+6v3hq89xKz5cPtlfvp1Te3So2Ju/on80JTN7Pj9qrxTN7vJ/vz8+mH+OGrJNxOJNO3/OthcLSOSR
+zrcRT7p+w2ko39Lh/IuT4/fvvjz67ljP+JBvNcMj3anWjtI/Z3RLkz4/+FGEeNS/vEkY41dH1PZQ
+ezq9gD/Sr2kPnO65ypfoxZu+oH14q8bPLZ49/3P9oovqly/52pcLnJhN3zj9SL9s/Y6Lvwcm4LsD
+sDraHoFHSRkRuwtnjLiLV+4PV16l/00HAWpVn3OUPjv6cXl4/G7Z5SqBBJh/nZ+8u9Lk4GtwcPq2
+z8kg0b9fpan2Yp8M3cF/yp/9/vPeM1bAe8eL92+XR2d787NmL3327VMRgL8C/jm4YVDw1z8+/xP4
+/PFfj//7a758KPL+r7eHR+2KJ/AfcA2jf+Wzbzdf8OMczyF4RWVv0vj52c/v5OOn220T39yNt8uz
+OcUXbt8Le+Ne/Dg/OZg3JfxyCdBiD6QnD6MjH3o+ft+valvd4euT5ZFctbqih0ubFmqmwvszhj2C
+z367aVC/O52DXw/emY/wrK8xtpWOw21X6O3jN2dn73739OlR2ydB02w1W+npF8ujdkJc7DYb5/gt
+ODhP380Xy6d2yzw9p8VxeO4jPDoZ7qZHiB/97scbzsU3sqof/vB/9+NUcNEyv/nCaq95exH+hNN2
+6Yy+avtxu8A+1HkbB7Np7RweL34A39alAz1q54yHOkgZxP2vjdsonX+gF+3qU7kyP6ff/fRx9+jT
+w4PFL2uDxhG9PH5/sljuwHHgAQ9upec/X95T6zT4+6Degp/P2WmvMiL/IEf0X5tH9BNRrlw2Kl/t
+gxzVT8oYszayN0wbc9nQoq8PcmhvOu3N2theHZ81w/X58ruzr04O8MR86bKUjIoHNcb1cTycLfyf
+j06/bdvZ738hG/Xd7lF3N4zB6YKiFKOPPJ/bX9bZ/OTs1fH85PVscXx4fDKzsxO19C699HsKL17t
+4lf9eUYXXDn/Wjf04dJLxz5cevGr9R16/bqVRQcXIHT8u3l7Couf2zcevP4/7L1br+TGlSb6biD/
+w34xYANH1bwz2P3ES2YfY7qnDbv7jIHBQJDLZVs4uhhSqac9v36+b60gGckgublZyUxWigxIVcXk
+ymSsWPdLxEvXTvfLL7saND75Nwl5//j1tz99I3UtrXzvjyzgU//208e//fTx5XdycPzX/0eefPnd
+B+lq7YHC9AroXz/8+NfXQDzqaGtzMbN2YnnX9P+3r98N5/DVN1//OLz3rRx1rvPodnz+21d/cjyC
+8jcv5U8fv+9er8NyEHRoDIOXP3/D2O13wNAP8uAX//mB+6q//PGrb7767v0IQq9gvred0B8//NfH
+hY/+KEmLH/s1H336/Tdf/w1rzzDNf4H2/gIEekgYgPzthw8/fvjhPz+8fP+fH374G6Ol3o/8/+Vv
+fvvVD5B4mOiP52//+OFP5TffXL7Hk//tw99nH/79T3/88cNHebT6IMUrPTIV+1OP/4500X99i3z/
+VX77w/d//vqbD688+j/++vX7v3qPjr/0b5sLI+p4gT9+/c3XH+cf5pPA4I895f4Tp9YX7Q1I2Svq
+u1rM4uW77/uFePn6O1nM73/8+uNQg/z+//tn4kkx9rHdV7SXBvbzf/n+vcu9zqeCPKXyliX6D3/7
+w4f3Xztzcn71/N377//U/17SfyIJv3/vtVk3L3wmsfsufjbywL9/ANF+9XHso9/+5Q==
+ ]]><![CDATA[
+ z0Maxt0/fPW3kWd/Dx+of7l/GsG2Ux04yAL8kvm6Dx9/0qybzcj9y1d///CD1hq6qfu8eAkhobXk
+JeXdf/mjlIXg6Zfw1y//8p3V5x/HjIz/+E3DnV/l6S/x9D8pV36Jx/HRr/sX/ZLlAVIU+Yf/ffrF
+T6efTrY8RF7jtQJJmQVLev/RnZGuOV6WZcF/+OfTL/5nN68oLV6Sonj5Xy9hnLxEgZRC/XX8Cfm3
+far907zExJJUGOFtkpeAaNWMC3D8jy9hZkySnH7xh9/gg8snXAf4AX6AH+AH+AF+gB/gm4IHb7wA
+/laQm4BvMfcD/ABfAX43mr8/+NaoO8B/nuCbEu0a8NAZd/z1+2P+AP9MwW9IdW8DD9cMgq8C7ME/
+7eX3s3AH+GPB19D8WqpbSe8RB8Gj9WPNr7997vdcuAN8D+Cv0/zy6xPVxCjNuzfitw2Czz+ymuMW
+XB3qNlq4A3wP4OtZZrVl9SrRTjFLMjHSfhA8XTAmvorg+tclvLbWLNzDuh/gNwF/G8tMsM+QZZbY
+U6+qiVk2sSPjIHjmjHxiGBnefYLrXzNvTHHc6MvPctYUFgeYv9u6H+C3An8z43TrvkSzTPBFL+fn
+GcRhE5c7epo3zii8UXqj4iC4/GXkAR3ul7g/McpxPpf5amtU2sxeW6/7AX5D8KUs417z7DPDMlOs
+MaU+hHQJ7rOJxxp21DKafhD87I2LM/xPB+C1M1zu83nNY66hWTilql7D/M3X/QC/CfhSlnkj+wy1
+zIQ2mVIiBJ9nEI9NXL4A+NX76RU5I54bBHdvKIh7Kcm73KfvIG/Vv7zLWa7CmmWoQ0l9FuBvY5kF
+TDTu/vvs4zKOo0p6y8pnkAnF4XIHad5lE6X8REYqI5ORO8P0g+DF7NAHXXD9QvnynuMcXrviL52O
+y1aOqupDH2uV1N3I5gDXaw3LeOwzFz2YZ5+BllHG8fTIvPog0SbO8NlEaV7pv5RRyag5CN7IODvj
+0o8rKnbu65M9uA79Zv0V/UV9B30rZS6HrTh3na/OfUpVzSip2WsjsjnAB+Bv5Zu5GPUC9ukdcNeL
+cXWNMo7LMg53kGjnGcRjE5dHCO6yhv6AXrGM1BmZjLwfALd/zZyhDycy9Ev0UmJXruwYVl9PX1sn
+4nKWr6ochhr3pBaopy3I5gDXaynLuNcb2ac3Tnz7zWUfIR77XQ7jDFlGmWWCQXzuIM37bKLU7jKI
+kVHIqGTUHARvZJxnhz4jIBa85CC4frP+lv6uy1/68spWOkEVF61Rao1ARZFr+E15Ug4rzSipx1Ld
+k4G/zjLz7DOaCfVTObrivvvjGm+d+++qHmUfl3GU6pRZXO4Q+iTRTmiQKzYRCrfU7vAIwS8cNnyg
+LKdXIiOVkY0PgNsH9GG91DeSr7W/pb+u76NvK1enIu1MVVU5PGWVlGv1DcJ9q9TT/anu+cBfU0QT
+TDRTPLAketDlZXz7zWcf1Tgu43Qso8wyoUeulMilH/qapHlllik2MTIKGZWMWkbDQfCzN+Qj+5iC
+lDL0q/Rr5SK4krzLWcrvwrtXDOUqKUF/jzrV5ovV06iovD/VPRn4cvYZjx4sZp/x6IHLPkrTE+xD
+ltFLpbcyjtKe0uGsEunVhFJy7oxZZokvHAC3alUZWL9Ur9Qb7iXPd+CW1/T79Rf1fdSRUi5XOaAM
+1SkptVfV8FMUiTi5Uk9uOMJhpV7WvVE9bUd1TwY+hcw5V+hN0QPf/VmgfUg2rgLSS/WOahzVNco4
+yjJK2Z1lNcUaLoO4SkSYRedBmtd3UpZxmSWTYWQUMkoZVT8I7vzTPqAgCq6X/IT9dVVYwtR8ebms
+DlVBoaJDQ+aKGdfeU7boclK+97TY0jvSuCuucZaZUEZTTNRHjXz3Z2H0wI0bzLOP6B2r/DrTSOW5
+yzIua7gcETtDLtK8r1OU2nMZPsvUMhoOgp9lXDhs4UXoDDWy5FMFscwlX0tw/UWN7bk8papTvSoV
+Go56UvewT2npj6n3NGXpeaz0ahp3I6p7JvBXGGeCiXrzwFdGakv40QOHffroga67so8aKkIY9ntV
+wXjs03kTlhPUJHMYx9pd+rHSp8MLJFqXHdxReaN2xqsso9pCSX/EyOMAuH1AQCxn6fcrq+qltpgq
+TZ2gIKOPFqo1q96TWnoLWGk8jXtEyNeCL+eeXknNW3SuK+TooFNXY6b2mxt8m2efLi/jOD7W5VEO
+UYNN2Uc1juoapdeOZVzd4dO/O8LhIM17N69YxmccvTIOgstf0twZekcvBVRVpUpK31b0YGdV+ty0
+hJVObdnGcsX0aoT8sUS7B/C3sYx/LWCiU9d64NpysogW0o0eeOxDllFOULtFXWxxDSz7KNkp+yhp
+KfsIV5Hq1AxTXaOMoyyjhDVB7UOa94d7+RpGLoJ733nFPrOs1DGs5Sadgv6Az0qejdcFXmwWQLnJ
+9ZhmWekIPiy83sYyU+wzE+L2LTqfiRwdRFGpIVx1fxwFdMU++oGSmno9Qk59xEw1k9psKsmFDq1+
+UUi9lIALDhJtKaNyRu0M974+KYCp4SC4zxSLR8+wLmNq4YNv42neScSFuktdsNEG9Nzgg7KC+pWq
+64Xl3LztEXxYcb2NZSbY5/UQ94RF1/UOXPGRBpdkra1KUxpwowcO+5BslIMksGbZR6959umIVllA
+maKRcZZx4bjqvlBN6dwhuDxmQRTc5S/hrBGGGigpX4tZZpChdp3anA4T9aEP9ZXUgtVYih928Kw7
+Yt71lRZExY/gwyj4WxlnyDK+FfdqiHteGSkTqS2nnpLGEEQHDaMHjv22hH16/10p2WUf4YIrZtEf
+TvoB8Cu14XxkH9aSbWUrl6E6Hac8pfA+szhROz92R5ZRDtJ56RwVES4TTbhInUk8kq71VJJv3fWB
+1tl07RQr7Yrmbw4+j4G5rNCUE/RqgZxX2zOliU5dhZvSqMhV6wSpvNWQr+P+uOxDqptQQJaYXe2j
+ekd/Sb67Zxm9cmcYZ+gdvfT5DtzlKTUFVT2pYtLL1TWjLKPxQHWFliSVuoyYKiM31KB+pZL/RM1D
+31roq6TF1t3pZ1b5MMcyb2SfXljNV/j4GaKu2ce36KaYSOWto4P6xIrS25T7o+yjxOywT0fztuJN
+KdVlH2WZQkY5HATXj1zOUp7Sgm6XlVQD6sfCRHx5N2E0lYdVQaGMo65QV2vkpGVtTtavc5goHOox
+P1WMN1s+NDROZlXSHmh+C/B5ZTTCRDPRgwWNdb0P66ohN0OkESS16PRSGnCYiGTj8pESgdKbUqB4
+EFbOu9EDYR9aVkrPvhWnTOTrIId9yDLKPZU39L4+PMFK/HVVgsrRyvxKoW7cwEm2utVBnLtG5FzG
+UUmhfKIErg6R+pJOYcNpUCzkWHSWCaaY6NPaLjpBvQea3wj81bm/YsXNFmb35sFsicJVhkgWuisS
+u+IjJRUlHo0nKKWpLaf2j0awuyix7wS5VpzSh2PLuZqILDOvjKaYSJ4nuF76nWrj6a/r++ilcWxl
+Isff6YKNV5V1Ond9wmUcNd5U+3SukFMTbtWQxujcPKzLRE4z4DBeNxVqeEtSaV4x3ZPmbw4+ZJkF
+ysiOmejBRGvDVWWpLqKacMI+p7Yn1K3NHonOTTBR501YW04FuqOGXB1kmciJJJDmXT5yVZJv3bls
+JWPcrnOZSFWS/rqy88CuU4vODWJ7Ls9VYapT730adCrpc1pZ5/QAWvbRac90Krndf/MF4W+x66aY
+6LNjmVHw+VlPMVGv3101NM8+TmXpqavyUitdFZDLPkoVKl21slRpS2TyqW09sP6C0p4ykfKnMtFE
+JIE070fkXCZyWckdnZKav9w4nn6taiJhot6uUx7XfJDPRFoWq6FIuaV4IMuozTbFOK7e8Tpnh66Q
+ss+SnvQuarRqt4eBoH4szW8E/vrcp7JCU0w0Gj1YXhrnFGaf2kpmtzTuKrjtRhWUifTqgsxTrtAU
++wxC3BMfTTTkxW7ou2NYq4bcIINr0U0w0akrQXfD167L4xtsDuOcul5gG5gY7upwxT6eDjp1NScL
+tiF6NV43r5LuT/M3B3997lNM5FYmDFwh5SM/euAmVd3Cns44cWt7pkrj3OC24xANs0JeRG4qH6SP
+9yHueZZx2GRNHtap8LEBuq5vQmekVdx+mZyfSHXYp9fvLuPM7zLksE9vkPvbTi5gn1fzsPNM9Nmx
+zAz4K5P3mKi369ziBJ+J3AI5Nd6EBvrogWu56eVmhdzKBId9Tl1NqcblXDXk2nKuDnLYZ5gVWmKY
+zWiZ+dIFt8q0rWi1BQlON8Qr1QiKJXmF06BAzu3R8w02j3FOo9vfzbPPTIh7sUU3ENR7oPmbg78+
+9yV2nVuZoFdXS6xrrQVybvRAtY9ntrkl2cOskFtT6oa1PVeoUxNXCmgqYjCRVO05zuUml4mcQgWf
+caik/EoenYi+kFuHoDrIcYhO7Z4Pr/TlKX9qo6tjsPXmwXLGGfTDzltxs+xz2HXj10K7TkTfVXGC
+2huqjJQ3lCpUBynBdXWVE2UJV3pnoqSHRDuhgEYyQV4Eu88KTaVTvYiBmwY6dQVyfh2pMo5Ox69A
+ENHRu0I6eTcH5NQhTO29cGpLE6+yP37YbYJxepbxGWcB+8yRzQL2+exYZgb8FRSM5mHdeN2UXadr
+rVEFNfRFE3WS1vKRRg/cdKqbCfL0zqkrw/bdHz+R6qV+yDKa8am94eaDXIbSq6v2UXp0M0FOENtq
+H6c/yC3G7hOp7k4Les2mUPuGVteWc4vi3JaHhTuBL2eczhVadW1BtHsDn8fA2+J1rj7q7DqRnzas
+rW6RWnRKXi4TqdB2Iti9nF/g+Fj2ccy206D2QJmlccbZGe59ebIH97jJRhXcCLZGD5SJRAedBmXY
+nuVm3R/dVMFJoSr7nNraQpsDmt9Ty0v9LA24TTDOm7JC42TjcNDNiXaf4IO5j1zzdl23cK5KUirR
+dXftOiEYm1QVmdwXyCk/KB8pMbnBN5d9ZmoPXJttCftcOAguf7niKQV0Wcmt81Hrrqs10r4HtehU
+GWkpt9MTdLWFghPHPnVbgSlelLTdPYo9V8hS98AVWlWBMB49eDvLuNcdiHaH4K9gatSum1JJXqjB
+10d9iFvpSuNyegkF2poEvVwm6iJmU3EDv2jHYyKCe3x0xUSzrNQHH9w6H1WXatepW6SvqFSsTDQa
+PXDYZyQT5G7rLfgbukIT+w/P1ZS+MWLwKsssZ5xd0fxG4HOoW5JCcl0kLWPo9p93m4mcUIPNE4md
+Yz1epT1NqnYhLyVRSWJeKSPPivM10bgr1CwdBHf5SL/ft+6U01191Nl1mg/SOOSS7lQnDdSnsF0F
+NMU+ng4ajx7cIuC2hHE+C5q/Ofgc6hYzUZ+bcOoZrDusKknh1UXSkjnHReqozqZUNEantpH68k5A
+22cl0rxX9uY3OIwUaQ84brb01GUiK/iFwU9dC7mWKGicRO06jctpYF8pWpnICcF1Xg==
+ ]]><![CDATA[
+ pL9N92NrD5YwzmdK89uBT2LwTXbdgtD3qd3bx8pKpUu17pS1NFas8Tq3WK4jWrfnzq8szSdGZ5hN
+JY/8RJJXcdrnpBw+sq+noQat89GYiVK0hua67bA0IucqI2Ui9/AIx/1ZU3swoYN662LxtTXVPRn4
+FBqX2nUOEw3tOpWxbl+e3wqhUSytPnUK505t9t+mjdz67amaH6eM57SiQG4APlEO5KeQruJ13bYJ
+rl2n5aYanVMMaDjO1UROOrXLxy3KBI3WHnyaK3QHqntW8FdU0pvidW5pkGvXqRz2srGnrqlTs7F6
+qY3nNre6DRGDPKy3Ocmi0ZVhnydG4wy3N9wpmSO4mzxSfepWbis7qnOkuSGNLXRZoalNEvwQnMc+
+PcvcrvbgnlT3lOCTTPSqXTdRGnRl13X1dZoo8RuLprYrUY9DqPTUbbro75eltK38VY6PPo1beMNM
+DGf7rFPXGzi/EZZqImUiZze5zqa1/pG7K6O387bf1j1MpC5Inr7KMsvZZ7dEuzfwOWG1JF43ate5
+8bqJVvGrreec8lSaRmoPZc7OjcpT6oa4+zeqqhts7Tt1+XtbuZv2tO11V3v4+Ptv+4VzzpaMp650
+wd2VUfOt+q0a6NYQt7dLcB+3WXK6ijcWRg+mmOgzItrdgi9RSb4+GsbrfLvO20HL3T7r1NWYTe2/
+rZcylLsXfdd64G0pPLmxsMcLnSNm2VOHu2W3fx6EUzh3Gmxfr7nX2cptN8Jw6nqF3HNV/KzQBBMN
+fdg3XjuhuqcEn2el3iCfUEkj8Tqn3ru3bdyOCbfk2zlFyD/94TQ48UE5a+qsB29D+9PoISnurlY6
+9Avd2IT8XM8yU3v4uOVzquSU8NvN93w+ugoyzG7D2FvUs6HsGZaZUkA3IZsD3L1mMD+vkq5cpC7/
+7sbr9Jpyjpy2o+FRXKE3Imd4p6v0NO8yQu4Nh0F87uhTWvqLbm+Bsox7mp5KAKf69NQdS+QXMLjt
+D6/uDPzGvePGF+6NjPPZEe1uwedVks9KfWrDrWrwVZK6HK5dN9hYWOW5a9dNDEvMA47z+W6K42wk
+um10clhmhE3cQyfdoye7LSPcMyjdMlS/H9zrIaK0mY/UzTLRkUjdOfgUK/UGuW/dudlYt6TB0Ud9
+vM5t5ZtyjrxxajuVruh8ajgHhPWdC85Reu5HI4zjMIu+4anbPc/WBs2ej+w1QZy6Ku6pM/Jmz28d
+hrgX23X3JJsD3L1mzINF1p3Y+afuIDC/8NstafDideNaZsqm8pVF1x/n3vDPqXSHd8xxryJdxnFZ
+xiaBVJeIrnA2xSLLuN0QOmunmegq3O2dQNTr9yWROu86XKFdgU8ykcdKp24r7ynrTgK8VpJ6Ww2f
+uuMmPS9pkokcyu/TuIUz3CNfdZTjYwiugFPs4zHOqa1gtwpI2UfVkAb5p5io69JafALyCrvu/mRz
+gPvXuKzzuWmJddeGea8KhDTgMBu1GxpmHh+N0P/E6H2ZqeGbbY72ObWnXVjGUfdH2UcjCS77ePvL
+ndrtLifbWmedo9Notc+C6/5kc4CPgk8qplnrjuu+oNN8ZM+TTk3Mm2G+EnEq5E7tWVpXY0lpXRf6
+cHcAdh2fBexz6s4N1EvJ321unTjroUedn4FdzESHXbdD8EkmmikWmuhIGnGUBps2uNzkHinuO0EL
+3f8Fo2cZ137zrbgJ4+3U7SSmCsimY71tTidaXE/dCa3+NvWHXfdc4OOybt66m8jMngabcfmVq+5e
+dp6P07v/U2aYzwtRPwgeLRgz0QNXDbn7A3vsc6WDuj0b3e2C/V2zJs7wGsbr3hipexTZHOCj4JOK
+ya+764qF/H7z+SJw58jXXk3MGmAjMbQOPFw83M6DLnrgW3F+DEFf3mOfU3dIiquGNLzgNozPnPiw
+6gyvgazbA9kc4O41b931onI2En7lKDlNSafunBGXm/S7lEb18q2vUZYJxoflC2/0ATc3ejDFPp4O
+OrXbnPoK6Ip9nC3r3Z7x0+gGdFNneHn5oxm7bg9kc4D719CuW27dOY7SqU3fT54D6xzXYi095YMu
+Qu6xzBVbnOfGUpbR4cUQTl2B3FQMwdc+gxMfXDVk/SKHiaa2LllbX7cHsjnA35ZU8qy7U7d1wHzX
+udtV4bBSn8pUOp9iDp8XZBC8mR3Owz7jnAbnCtleI4d9pmII3Tngqnb9cx/crUsmdmAYt+smVNJh
+132m4OMLt7yK1W30684Rc07is0SrZKy0rXTuU35XR116o/LGq+B+9seNHkxon1O3UYnr/kwcm+Kz
+z6lrIV9wCNFc38Qq6+4zorrnA59USb5154XBh0klJ+xgI3guKylJF/0Y0rzrs7jD/dRhrl7H+Zab
+r31moge+++Ozj3d4Sjd3q4C8U1Tm92FYYde5rPRwsjnA/WuJdXcanPAysR2KpUCPlfrgg9K28pTL
+LK7i8Eaf1nE5y1dbK6IHGrv2g2+D6MGC44emToLoTeJb7Ka1H7I5wP1rfOGWW3eDpJL64+5xY3qp
+ZTXBLH0ddeKNKR4shqN3hdxQtstEs7HrPnIy5fjMss+pK11wDyeb303rLXbdPCt9dlT3fODrrLvT
+zM5CbtjBZ6WOZdxtFFz/xfVi9O8eQ/Us45uFfj7IZaLOj3NTqG9knz56kDvDZZxjN62fJfgkKw2K
+hZZbd875faeuotVlCne4jBMOR2+YueBTJuKoXTd14oOfQvXY57Tw8Ls3neS1mImOpNJnBz6+cG+0
+7k7ddtaOdWd9pSlWcpio5zif7PS+byI6rDRu17kqydt/22WiPnrgZn8Ws0/PMlP22xT7vJaHXcJK
+nynVPSv4CBNNWHe9bbPAuruK4HXb3/lWnFvPdhkO10Tswd14oB+1cPJErj7qs0Junfbig/D6wMu8
+4zPBOL0rtNiWc68j+LBz8JE1Gy0WemPsrk8qub6SX1TqM1FrFloW0OFrN5eV3DFofJjov5usL505
+yWtB3GCcZd7uCs0/sAeyOcBHwae4aYl110WJF1l3nj7qfRmHjyzl65hlpVNX7eNy05R1522qwLn7
+x0ouPg5vjmUWMM4Ku85lpYeTzQHuXyNMNJpUmj9YVq07DTh4sbveMFtQaWApX0dXezClmPygumvd
+Dc5YcXdunG9lHUQPFrg8N2eZGfA9kM0B7l/DhZvylRZYdz3RqnU3H3DwWn4IXnvDUU9TofXernND
+61PWnduCN7Drlm8mfBeWmbr2QDYH+AB8ZJ3mrTthpc40Gtljfyoz6xB5r6SmakfdoQzlsFIfIXe/
+2c9PTVh3p67xQa27xVvPrQ64rWaZGfDHks0B7l9X6+Tpoz7MO9+j5Fp3jj4aBtx8aneTPm4VXJdI
+1e/Um25UcIG+62MX7h4LUxuVeF3h44nUu7PM1PVYsjnA/Wu4cPPW3czxshOld5OKw3GUhjTvFsXp
+0Dueeho6Yr4L5lp3/hb3g4bWW2xUcnOWmboeSzYH+NuSSl4Y/NR1oPs9Sn7dnRccGPoy86Vxxhld
+r5Cvntw0rr/fglPe0CeRXevO32PBt+4eyjIz4I8lmwPcvUbWbCaptOQwsjbgZql6qn7VC7K5Rdqn
+rkAud4bDU1cM5UTL+3idazF6FQ7z1l1v03rctJrmNwJ/FNkc4KPgIyu0JKk02NbY95WmSsEHwQe/
+QM7vFXLHqJJyA31uOF3fxz9kvH35yZ1RF1h3O1FSjyKbA9y/RtZpRVJpylEaJFL9LjzXunMp3+kY
+6g0zvak8pY+5npTvZ3V23fIdtN7e0LqQ5jcCfxTZHOD+NVy4VWGHPqk06ytdsZJn3RHcNcb8bRP0
+7xNs1ZuFrnHol39P7NR9Gj3g9XbVPjcHfyzZHOCj4FcrtICVTt3GBe5++wvCDsPmviXtD97VW5Uu
+Z7n85fXADu26+QqHWetuJ3adXo8lmwPcvUZWa5CLnK12mI/gnQbFQlMp1Ik96k+DHnBv2F/Xy+t0
+6sCvlNHsDlrD7rxV6aRRmt8I/FFkc4D71/jCzcbDfVY6jXUqjVQ7eNV3fcDNLUjw/Rp3HxJ3dFpG
+H/C5zd/AxOuh6N3AVdbdw5XUQ8jmAH89qaTXBCudXt3+brYsvFdSfhWrG3Dw/ZquobWaGPXEcJ7p
+M2JuL9LiQ8EezjJTHz2KbA5w/xpfOD8evtjGOw0qWt0UqtPod5VOGj3Jyw21ubvJTY1u1wW3B3a+
+E/bztOvc61Fkc4CPgo+s0AJWGgYf/L0d/JoEFfmdXefHwCc2q/c54tTt7bNkePv/jMfrdl8sNAr+
+KLI5wP1rZLVGK1rnWy38nvSundYtS/D33/ZdpIFdN6VZ/J0WvNG7QlP9sLNMtCuWmboeRTYHuH+N
+L9x88MHL1Z4G7bRuCtWtSXATqYPt632VNNXc6vFFr2WmxsIN6D4Tu24A/hCyOcDXBB+ckHgv55XC
+/Y0llSNUy7gM1VX7TJ2iMnUonhMiGLKMv8/P7M4/fXh/cUPfbWl+I/BHkc0B7l/jC+dz00QnoLX0
+tJSoS6S6POVX03l5WDfO0EcPXItuyT4/C1lmln12yzJT16PI5gAfBR9ZoSlWGrRdeOrJek9u8tSt
+THBqgYZ52Hm77k3bnC5gn8+OZWbAH0U2B7h/Ta5Z50343OSrJzXMnBRqn8bVL/JPUZnay3HUrpvf
+b+FnwDJT16PI5gD3r7mFm7f0BuV5Lk8pgzicdTW8OoQefHkK9WfGMjPgDyGbA3xp8EEvj5WGEXKP
+p9y0qV+fcOpKF+a3FJ6IWn/uAbebgz+WbA5w/3p94ea9J5ehukSqy1n+eNNJXotTqDNUt/z6jMAf
+SzYH+Cj4K2vms9KMkvI4a6oO4fSLW57k9dbrOcAfSzYHuH8tXfcJnroKsrkJoNHagzfuyN3bdZ9G
+dU8J/liyOcD9623rPqOkfM5anE6dywrdguqeEvyxZHOAvy34MLPufkhtInk6l0h9Yx3CZ0rzW4Dv
+gWwOcP/61HX3uGAYcFs+Vvz6J7785wm+B7I5wEfBb7nuixnncIU+BXwPZHOA+9fW636A3xx8D2Rz
+gPvX1ut+gN8QfD9kc4DfLPiw6jrAPx18P2RzgPvXdut+gN8cfD9kc4CPgm+07gf4zcF3RTYHuH9t
+tO4H+Bbg+yGbA9y/tlv3A/yG4Ddf9wP8CD78bMFvvu4H+M3Bt1j3A/zm4Ddf9wN8C/Cbr/sBfnPw
+Ldb9AL85+M3X/QDfAvzm636A3xx8i3U/wG8OfvN1P8CP4MPPFvzm636A3xB8u3U/wG8IfvN1P8C3
+AL/5uh/gNwffYt0P8JuD33zdD/AtwG++7gf4zcG3WPcD/ObgN1/3A3wL8Juv+wF+c/At1v0Avzn4
+zdf9AD+CDz9b8Juv+wF+c/At1v0Avzn4zdf9AN8C/ObrfoDfHHyLdT/Abw5+83U/wLcAv/m6H+A3
+B99i3Q/wm4PffN0P8CP48LMFv/m6H+A3B99i3Q/wm4PffN0P8C3Ab77uB/jNwbdY9w==
+ ]]><![CDATA[
+ A/zm4Ddf9wP8tuAbrfsBfkPwLdb9AL85+M3X/QDfAvzm636A3xx8i3U/wG8OfvN1P8C3AL/5uh/g
+W4DffN0P8JuDb7HuB/gNwTda9wN8C/D9kM0B7l/brfsBfnPw/ZDNAT4A33TdD/Cbg++EbA5w/9p0
+3Q/wI/jwcwC/z7of4DcHfyzZHOAD8Lut+wG+BfijyOYA9697rvsBfnPwR5HNAe5e91/3A/yG4I8i
+mwN8AH7ndT/AtwC/P9kc4O71qHU/wG8Ofk+yOcD12sO6H+BbgG9KNge4e+1q3Q/wm4NvRDYH+AD8
+5gt3gO8NfAuyOcD12nThDvAdgu+B6p4G/J4Ld4DvDfxRVPc04I9auAN8h+B3o7rnA3/swh3gewO/
+D9U9JfhjF+4A3w/4PanuKcEftXAH+A7B70Z1zwr+qIU7wPcGfk+qe0rwRy3cAb438HtS3bOCP2Th
+DvAdgt+T6p4S/FELd4DvDfyeVPeU4I9auAN8V+B3prpnBb//wh3gewO/P9U9Mfg9F+4A3xv4o6ju
+WcHvtnAH+A7BH0V1Twl+z4U7wPcD/liqe0rw+yzcAb438MdS3bOC32HhDvAdgj+W6p4S/D4Ld4Dv
+DfyxVPes4HdYuAN8V+B7oLqnBN964Q7wvYHvgeqeEnzrhTvA9wa+B6p7VvBNF+4A3yH4HqjuKcG3
+XrgDfD/g+6G65wPfdOEO8L2B74TqnhJ804U7wHcIvgeqe0rwrRfuAN8b+B6o7lnBN124A3yH4Hug
+uicDv8/CHeB7A38s1T0l+H0W7gDfG/hjqe75wO+2cAf4DsEfRXVPCX7PhTvA9wb+KKp7MvD7L9wB
+vkPwO1Pds4Lff+EO8L2B35/qngz8UQt3gO8N/J5U9zTge1i4A3y34BtR3fOB3xzzB/iTgW9BdU8D
+vinmD/DnA98D0e4B/P6YP8CfEvyeRLsp+P1Rd4Af4APwO9P8FuCPQt0BfoD7131o/ubge0DdAX6A
+D8A3pfmbg+8KdQf4Ae5fN6f5LcA3mvsBfoBvAb4HlvGv+8z9AD/ANwK/P8ssYaLPAnUH+AE+Cn4H
+lvHZZydzP8AP8E3Bb8IyHfidX/4AP8A/I/CDZQ7wA/wAP8AP8AP8AD/ANwX/RF/mAD/Adw4eXg+C
+h4vGHl5+G/DhTKNFYwR1j3j5DcB9TMTdSHQQPBkd/aMdonzs7HfuY9cAHwTvkZHKyJyRXw33E3m2
+RV2PojcRz15Qd00iLjYUAyYoZJQyKh0Er65GaUcBAGMRllr8eLjZy9ynrmuMKD6UIoANghMRddBg
+nINLcOkI6/pqJ40n8FwDCOCJ4IWgSBHUo2cfc5+6Oi1zjRQlEOJDcIFnojAOkzANszDHMHYUHACX
+v7Q3+UCGRxOAAF34AqKouMLNzsmmJRVlnBYjFh9CEbHgwnDuZViHTXgOL8BhGOkVXw29Qkz7guea
+sAK2cnwBhRXw0HTo6ZGziHDuirqefRQnOcFbpFwsSnLMrArPeCqKkiiLTFRGVVRHTXSOLtcD4Pav
+Z3xc47EiyqMU6AqAohLYjS1ujBBOy1KPmPss+AAtwji1xQhIxOIjFmxU0TkO4xjgcRrncRFXcR03
+GGdv8G4dl3gmjxPQ0BnAeRSDhCht8M0RBFAthJMOeepuc5+6egZS9iGdkEqikBrWIiXCahus/AU8
+kmGedXxJoiRN8qRIqqROmuScXIYD4Ljd4OMKj2VJAp6pYxPHQJABes6gwASImMDM4yVtK1datNSK
+Frx2AxGRggsakEgKfDRJCGwUSQ29HadZSkmbVmmTntMLFBdIIIu6wX8F6QWfNWmZmjSBqK2BnxAk
+lIDB8oi/DrynkMnNFXI2n/sMuCtVSCyZMFAFKRtanER49Trmy4NIKmioBChp0ggIKdMzZp5mRVZn
+Z1gnUR7noJ48vRq8Q46DXgqyJiuzLIuApBwIMkBPEYfAeSSYUbKhHB6w0wNs2l6kZARXtDT4JAH7
+KFqaOMbrX0AkJUgkBT4uWQJsNJhqmhd5nV9MZOgOmNTkhldxNXjl+CyG1m4AkGTnLAcZ5WCxFGwV
+Q3xHlmwgbSiK30g0N5e0rlTpcRJD81TAWAZSAU5AJZgCMEKbFoyRAyVRnuc1zNgU865h+8ZFWuRF
+UZRFVdQYTTf4rwr3i4I6rkhg2NVAUwAEBVkO0okSA+Ecg2xCkGgMC2eUaO5ENi6xXOFE1UQFwySN
+KsgUI2i5gPIv4IEGbFEKPkpzwSQNZn0p4zItTVmWddkAvDxjXK4G79RlVRZlBt10BlgIhAZ5llWQ
+PjFYDcwa5eFZfz1YRzQ3QZ1LLC6pZLAuLjBPCoicLD5DSJ4FJwYixAAjueHcQSCmaMoI8yzLcxVW
+SZVXRVVVTXWuLtWlDvrBf+NuU9VViadiRV1RhkVhLibJDZBzhkWcxAaiOMbvxyKDW6K5/dynrx4r
+JBbVPw5OxDCD+qkhZ2twEAQCpEkJOVIWEVjiAgIpy0sVY54VsBDVSZ2DY6q6rpv6XHPd+Ud9kf9z
+NBhVXdamTusQSMpBRjmoLQRmssykZVLD3oFAg90nsu6C18rH+OlT5/4qVtT9p2LuVdA5IqdfBCdx
+UkEV19A5F5BKZCowTl0mZQn6yCpKG6AkBkLKuoEjGTdpkzUGQqXEqOwo7SjwSY7P4yYEhkxNSQuc
+RkBOZc7gKbpREYgmh+kXQOqHeCtV26N42UxBt+RCrFxE1tbQPwa2bAqNHEP7RCppY0iVDBxUgHlq
+EEoDpqnAICnwcW5CYCPHvOvmfAZ2xcyFojmDNc5UUvKPBDdhyuHjoDnj0QJAAcDjClQHiZMaEGRG
+tW7iUpipgCVcqzMyiZp1c5+6wiFWhGiBGANioayN4xKWLNFSAicVJO3Z5PCRS5BKXaXglRgsc8bK
+Ex+UNkBIhLlnZ3MuIGKrc+0MiBbcK/BZjidSYCgEbsomBZPlFTmuSkA0hSnzKgPaE3gV8KsSyH7K
+mVfwcuOgUzQglyQscCsHsWQwVUwapgWMNuKkMZmhtMF7R2UFiVIBLSXYJsXczqCABPMtBBfn84UR
+GQz1Gfm34Hw5c+7nRlBUCnpSOJMX8FgGojEQyklpitJUeQ0JDJ8CajuI0h4vGi1cRTJLUBcOcKJ6
+qBaslBHBIwMlVICH6jSDTV/Cgq2BlnORlwEsk7Aq6xC2SYAJVaARYqQkPogNJtRicYqgvOyADsa/
+Y0HPGZipgMBcSCZoGsibGJIG9AchkwrmDX5ISKZ8C8ksmfs8ViI36NR5iGLdlnCDDMyVKklh1VZZ
+CrVcmsTixFRBZWr+OqTsGaSiaDGCFJKHYgOWL0Yhg3/LcU/wAqJpzvSgAZJZTqrAhhEQk4NgsrIC
+DKzmHAuSZp2UKSllWryodbH6Whp0MkIsZ7iHMOOAlQKOMnw6uoHwYLIiTyFrK9ix0KdEC3RPBr0T
+Q2heLE4uFiO5xQZkKMkGClzMuUJQkwpiziAWYxlI5W4E4VNA8jZVCpsvKjIIGEpayKALrJk4zqCY
+QlFM9VLp+2muUBd0qkU9qysELwUSt8aKxVj6GooZJntRgarPMFKIkxo4MRAp1O9gh0pIJREyEZRc
+xKCTUQlmiJcMWAlILKCTSOQtMS9IKfGdIbgIWId8uQAxVX7J4YpCLZWQMbRlztb6dQyZmyroa+vW
+dEEn4qQWV6iBej5D4iYQLE3OdYcSSjDhEmoZYgBoiYCWBponwyyJk7jDSY8Rixclm8KSSwDaMucY
+aCmaBJ+3GDFVDNMmp+UL+y6HVxmBjcqEgjqJYMnU1vw9T5u/r899+rpWzF10RYNOREsKYqErFEI9
+p3ANz3kFIZhBA50hVyLonxDSoMVJAzkbXwg+hRZLLsRKBNlSASyEQKFqVtbJK8o6QUoEozeDNwkn
+Ay7BOUuAmAvsO1iXUQaCyR1GunWoc2jH9QGWEKRSiSvUJCmsMZMlkLg1jLgc7uBFjFIQSyOyNuzQ
+ElmpMoaT0uIELETUheCi4pyAWAxMXdpyFRSzkgnFVwAXFCYS7LoLLLsLpC4s7RjuWcQAOzChTrY6
+BW9S10uyQi1WCusK0boNJZIgQaccPERXKIHEzaGez5C4BiZWACsuqy8gljNkbdHhJBNJS6xQVHqE
+ovI2EUVUQRZFkLUpREoGIw8Gc5kWDcTJBT61xKyaHO5XBiUIIxm+O9zrC5joAuM7BBslg6DMzYIP
+XVZIyUUtlqKPJEjQiTipswSyJYcrdC6KMoXBUtc5zJVCbdoMc7x0pGLRMiAVlbWtDqJYSRpSHSRL
+BL8xgtMdwLptisTUIBN4GDkMJWDkkpZpAo8hlyBnDNGSMTrOOB5fvg3lvTn0MIc6ZSPK3Na6LTvr
+lpGEBi4z7XlBSwpiMfCaQelVBImbQ7YUYKEc3nEg+oc4UfZp7HAkrRGbJRIlRNWcwIarrNF/AbFU
+YJ/cNCbOS0jZCuIEzJvGGiGHTQn/quji4g3k30xcfMnc5y5lI6ugS4sYteNKsW6BliyDtM2AE9C3
+tflTTB0yoSkFK43atImVtbWDlkb+1UnaTjHHnbVfglKo46pQiCUS5RNnBXzoIo2TBmQSCUZSTL2W
+VMpZ0kyRMJFgRd2BFWGHadS1BEP50kAVGZBLb92WoBPIPTCHKQJ1hWjihlUhqijqESMsVHakcpah
+eCFWQCkqac+dvdIq5hhqORH7zYBYIkjZOouAk1BopAEzJ8SIOCNRArniZt/K8ezbsrnPXS3BQLhA
+E5Fs4DvnUENVklnrNhH2gSVRhnCFAmvL0eavoZ6NixWVtC1aFDWULoKYK2MlhqyFngdOVNrWoBSj
+kjaS4G6cwHePKyETZtyIkTPcIsOE7Ui2NrqxO9ASTG7ZqMYbgGxBLhGUS0XrFuxTgH0YdILNT1eo
+teVg4ooquiYXHyu5xUp+5suLVDnDn4K7CfutFiWUmgrEYrIGxGJsPiCFMCnwPpqhZQpbgsyhFEKM
+5fhfxcpb7bqWjQoIlyrOxKqEf9MAMQWs27g4W/YJMB3iJAexhNa+jYZYIdm4qCkhc6maawAEon9E
+qsBbrsoYpgo1EKVtqJTCXy8TqsMgKuE7X0AmOZYskqqHRgpoZmpCbuQOdKI3qPDlmbARJB1kbgkm
+MiYrEjBQI+yTi3tIm5/rDmevEFUEE9eqomty6bGSihGXY1YGstYGnegVxkUJDipBKlRCRZc8aiTr
+mGHCxEns1IEIRvjyk5VEy+c+fV3LXfgccBMb6CJx68nvIOoiBmLOFUSkeIgF2Idmf9H5zZm1b12Z
+a8mmly8RZK6B0V8IYmqJ3zZFDJyEucFUDXBiJNkYgFLCiErKUchNj5QrjEzi5NPIxtp1KnpJMDms
+uiJOkqgv/IHybYAVyARo1s4VUpxw7r2P2CpoVx2pfIlxo4DMrWDxEyshhEphiDpwkCbSLpKDLSBt
+ab21xEKFfB4Ikw4jbVpng3hdTzAlnKMkrGDrXuIabiK8wxxSpaCWgdA1dQLE5BJiaQ==
+ ]]><![CDATA[
+ zf7EhpzKgTXXmy7AinqRFLwVTFxQXF3APwzLBFzK+AGMFeKEVr5N21+Zbnz5XiEPyeRmktbHi1CL
+Bl6oq2nBQPQmYPIszkHWBezwKqlDMFEGrKRW1l7FV3pXqEdJ7wC06iiDik7rCjiMIbuMKaGVA7rJ
+DHkxeRmIRdvYSo/yiljSgTDZOn0/JBi4H7DrKHdhpeQNHKILhEtdc92bBHyUADFDZ+jaHVI38ToA
+RcMMiIGjWTdQRqkNaDfwlSPxlFv26S1a13RLWpv2zTJ2LequLDsJvIiuNrDr0izNM6hpIyH5BH5i
+2VlyiWWgK6yQbFqUlDaYmzmhFqgjPJVUpiwLOBJgogBYSSHZL3EWndWmjcBBhVNP5hLLLE5uTDZj
+BBPBkwbHZGfIXawdrNxzDWsMmogq8lyJcs4cculHG7/V4HbrP5ctVsQsrIqyAdYCqKIIfJQBMWfI
+lQrGyllwcm3R9nZ+uGkO+vq6dgWEWhh4IcHAZYQFA2tX5G4qnmJPMC1eWqLpMKKSNmtzISCWGqI6
+BRPResmqqjzDd26D/CYpBSslKKWmsaI56JUW7Y0rXlqjt5cwSjAXgwmUEWzdiyUYlbvWg+4j/kXH
+OD1GIpsHYQCKblEOJiJWLiVjlTBzmWOVxDwmnoJcoq5wbIiTRxRK9S6SGDCij3I4SFRSA4KBFW/D
+UBredrNDxsEJU4r8dYlAaR4khIrOFDEw5Jl5znOYAmkN+zaCdGEkuy8aszZtb628WdreKMzb8pIa
+vXDt4wYqqbEShgRzrkvoI/rQmgphYjVuySZzUolJRyi1pFfbcIvGK2trujCDSEGdnkETWuECUpXs
+h4bgUouTGUNlc7LpJe8FSwa7Kk4TuPhZQn2kgReqpFgsO3rRNs8Khc2kYtzVn7rMY1OrEupsGgm4
+aHaVxi6tlzprYNFFsJQY4k+hhzTE7wYmO5t2s7nPYaUL85KXKHwj8ZJg0sGj7m0YiVwKXlihQMw0
+fQ66T8oHwj5ll3HW1KrmnBtxjEpT5xBeWZjGSRaLnA8kWZbDkmuuEbPt3F8Bv2YkOANxCN/sAhcJ
+tAOPOpEqrzoAL7WeY1++IeiRkgUpUrDx2z7dbCCwibq6FsQkZQHr5QIfEAIe1ouxNXQXGP6RTXzs
+pZLZMlIb5mW4oQAbQfh2krcAI0XWo26ksCUWEyfvcCMVL42gpeyKNphzzkAs0GfACrMhbiZelTSr
+jgJtOYmnELPd3GfBXaXUMhJWNq2sM3CGT13AdawliXxVCKWko+jRQWJJutqERArEAAysUFjhibjI
+RPBWoo5CKOlykBGaKJ+7O9lcMRIXjrwUWV4CnooYSimoKqCmgpRJMF8jxXINfMmgw41heY/GrLSW
+pbTEUtdGEGOgpLOucA6/Aamr1ZZVixW+vOac35wRWjf3V8CHSqkQrzqxTlJu02ksFWuaQMkmsRWF
+paAnlAo6qZ8DolqssEKhqqHMgJUCUrcAG0kROBg0K6Q8rIF8yVhuaQt0X5W6dyWba0YKI4oLUUqM
+xGChIWOYUKvqEJ42S09ZeHoB8cSCm6pjqwgsBMGiycSsK92IBDGxRC8L6zVqpWVb0HKlix6ooIOh
+OxBeKSVad2eQBDnkAhlTw4hhvvQsZbmMQ5DmBUVny1sidSQGc3aqfBQrEFCQWGeo6XMRg1qAbtp1
+ldTnkmBqcFKfh18gde9ENq6bBCsLGprxTC5cFuUx9HVo8wJZVWr9NhR3CM4i+dRSqJsDFxUwwvJc
+o1gh6kpbs1xAHV2koptJtEC8aXBqzP6l6wqoDisPUtAD8C6Z1HlKqlAzyJisiGHfGVh4MTBDzmKU
+ExjS+roEklWRk4lQNviTqujsYgVStwJr1iAYk1ewd9mzJYUTSWRg16VSzT3aHbH53KcvVdYacmAy
+KZZQL9aYoV6KSqNVdRARFyinUEYkLQAluCsmZiBxKI854iYQBS1YYWYEfATE1Pi6AARzNrEUuhci
+eYNBleVAFz2UbJzsANMmNkZFZQ3P8AwiKItMWgDYI1KVelXQ1iEoodRcpJAN5I10UoNY6hYxoC7F
+CiuhKhBMkZ+hqmNhpIKMJNFCW+a+ovx/U9S5yjqTnEkbAo9MYOqCJjGkTATkpFpQK800eVmBgFIp
+gydmypoX2yFy/DuQkjnBCu26HAqpgUt9NimEby0edQTbroArkF0x0n3nPncJXk7SodbpayhrzAAy
+JpXCoAyKCQIIvHCBZmGL1UX6auAog6HqVtpAW2HkIJa4uthawguoK5dGo0LSjAFkl3aMXOAMWI3E
+Xy/WNBl96txnwa+VdR+KqSBjjEnNBXipCmk1Ys9ZWYAf8F8pTUcUygnECEQxdDn8Qfw/AAtJe1GH
+lUtBYVWkIJgsryVVwhBvJZXcVxXLu7DrWrx0ypr8Tn2dQ19DU4iMqWD6BkBNoR14kMOQDdKtV4rk
+UXYqQB+Sg9a+qwrEAmsZtksJuopALqVUWhbMwWZ1Flh3oFXWImBU1u3BrnNRIzLGKutSwpqQjnkI
+D6gAXtizKDjhugd0ikBHEW7VlmgiaHIDMoHzjD8zaHZK3AKICy1WQnCZZMCbPAEv1dDXlDElZEwO
+ZMzImE3nPn31njXzA4V0pEZnONfaDJSaEGoppHeA/yJzwfyACvyfbY0lJE8mRAMA0AisWZINXM6y
+AbHkENQB+K8AcAQTx5hIstMplDVlTCxdaa0RE7c56LvN/RXwkShVfIFDUIuMiaGWQuAgsVgpJNRp
+ciAHBr5t5iuAB7VxAsiVBpRjcDeCbKkKIwg92/LcTMK8knVksz4baSh+m+Wy926ou3YINNxLskmh
+RkXGpKYBaihZ2NxrTGagsfBnjTsGajwGZbALtrbNrrn0y+A2iaUsWEcfCmIySJjKpu4Z0izhdSa2
+wfNK9u6FbK5TJyGUi2ZmE8iYBrRxBl6IlQbkkoGEImBGyKbCB7koJ1o1ZDG2DiX4N3GixBILYImv
+iUEwrH7J0jrlr0tmoI4ibdcT1Cy27+6Aul5Z0yEorUPA2g8pDmSjTSGoCcFJFecnm91EQJHipYZ9
+E3eWXwj2aUSli1mYCJgiJoENU8GKaaCsC5tKqly1dM1IjyebcNQhOEvNHWUM28dDSzAJuOEiuw4I
+Xjj3XPrKIxkBVFAt7JNSKIkCE7EE3oOGg+RlHXOY5pJ4pKAW0ze/aqS559znrnGHgDtxXChgyDLc
+ZyAQgsmgVy7QuGcQTWpJpoKcCa5wEgudECfihCpiCFhJ0buBjEklDh6Lbz3jEjyQbGxzX+I5BJAF
+ecROWMjeoCOYAFhhhDyweMmkzgrcc+6kihJKAzSWsmlFZresOOclGOlsy3bbrEkjVqWrse8391lw
+V8a4DgHLNKFGRMAQ3EoYoArrXtpNKxQ1pWxOQbmi+qe2GIGoVawQnART404MGZNC/IbMtHXqWhuv
+JvDyELLplDXBWedAhyAWh+Cc1fCJYuDjIjRQYo4Un7SCK8iZFi90FsQVUsRQ0hqLEo5E9FgoCM0h
+Y2rWlMG3Zl72LOEYmDG9F3mHFvKF4K6MYaFm6xBE0qGV0cYVy87ounMPF14luCwBaugvwG0QJgqt
+/iHruCMCQulJCWrYahRBNl+S+Gqrir15kW6GgGTTpa0ZdIjZToHZUpJS8gbARyZbARnImQTOQgAq
+UT8q0pJUVcyR3cIuwojl/4ElmTArbRm89jBGvXd92raF/I3gwwxBKhkCDTrkKmPEEgFTgVrEtklk
+3yRujhPj9kVcbbXkasGKaHSgNBDMxJaVqJNoFgpqqLEba8m4Ft5mLeRvBu+NmFbA0LqwQYdG+ssr
+y0tAE/UKt4uSfZQqzNuI7ReLgibyYK5w7tTo0OlAToua2ErfvMNLnYRXfdLWjDndsmfkk8Bb8dva
+MSpj4isZI5KXHZqY1jmTBrcLiKYAUWRi5YSdO6R2To2heIF7IUP3mDKQvhTUnZHHxHXwtqDvHZNK
+raNkxFEqGNXky6fSB5qLjCE5RGAG7p0FLoPCCoAmyt/SyiD6l2rnVDltG5o7ujMX6CgT1zMS4zcW
+6evixbN8H+8OuKjReIzjK4mjRNkrkheUkMNsrTKI36zIziptKsw8x8e1mP6pVctwJvNKzMDYblaW
+C2YCQS071oh59QvGUXOnuU9fblKpDcacbTBGPOgI821EDSeggQTmWZ7BNssyeFIh1v8iIYhSHW8R
+I6W1dERJhfTE7R5uRjitFj8yhmJSvEw6S49PKvVqiT6k2HfJpbPvCqEGY0IJvhXACbfmjcEc5zyT
+WCWQl3YkAYFNi9cagZFFWyUOgpHQQy7t9YIXzUUWbwlv3m7uryaVwk4taeI6TSIbpCqJF/EirfDN
+xJ6/wKKvZaO/ihLYCpLYspEBxxEvtTBSrrZNI3Fi/ZoLcHiR0EPTkUw2hZcHJpVC3YyrD+G1+TZ1
+r0kyutaVtJ2FaSWmfo3PMUEInFoUNJiGNlwthnGG/wqQUqibANKnsCGI3FJe2uOFXuSrWbct5v4K
++Li6VpeAeKF8IMvYPSZS2eqS9XkmBfmA32IQCJVz02GlxYvK5bPGbSKM0Go3djz2qHkl9PBgL1L2
+4r50tQ4MbcaCGsakcjF7EwkyFWmcgrKAGxhqcMED2TOzUleIiNHtQ9WbIl4b2TWyDadTiENsZxkz
+BcCLDcnIr68NPWztRdq0Ei2Z3OKlFG5IxOblukswJYVv3CRnICeHiM5k98xMJG4uG6pym9UMABex
+cpiAYvKlC3VWot8sapwkymzo4WFepMULvciwRw1kSCEyNLKSN07LNMJKlxhnEE2FZ0qxgoVOSDZw
+DTGImsrGbNTRpMZmeqmG/K2FlUxSSTUra/AkJMOXXx162LA00TV+iZcoY1ifNZYXrD8xEKTShX2W
+3ZjzpALRGOivXHahjS1OQvm74iWTJEuf4JWYVWNRk9gdlMJBcul+XVrzl4cXWhctarg1SS3aJreZ
+jzipZI9qbuN8STMwUwrZcxZ80L8MxIO2qAkl+xJLDUAtoc9E8FLhy2JNug23aDvtpjRxnGQyKKYQ
+OicR674QSz6W+JJJpH0+TCLZNYU7yXCzjiZjMab0n8iGzkAoBLeRVG4hu/TW+JN4of+el9BwUZpA
+IjHvFi+redhg7nOXjxeje7jFdsM/I9omlBRiCgmTQptcZKNrbjZayv7FIJp2EC+cu6KmkGKJUuLl
+HWpyIjKQxpM26XblX+/DixxHje5zUUjoJROvmowUSZ/4Oa5j2UksTgrZSBJcBhHUdMi52G2eY6kI
+kBSL5BEK2bqBe59Qv0tdFXevW+FH3gV143gJdWehXJROIrFa5aUMBFPFpWwYb1LuNnCBnCnBa43i
+BiTDCB/BJS4sCUsg5iKoYXgd2Ab9VRDjMxbeHshmiBp2/iVATS1mSijxKe64wM7oBIqEQTvuGi/R
+g4tFTSGoOXeoMRKv0dx/ixcDhV1IVz6bT6RTyS2CnrVkNpr73OXipe2IjGX/zERoXg==
+ ]]><![CDATA[
+ ZGol7kAsm5bAOIZ2LmOSj+4JbjfSt4wUgsQ0JEEdJ2qpFm6qQTwBLMHaqiVj680mdw59fPDh2vzl
+5gUx5lxajVMz4ADrLpTd1eBnymkUdl9wigvlJhJMq5ZS2To9g0sQi1oiXiqpw8MnruyV3ISI38U7
+ZN5u7ksrWrtqswza+AyxSh+60jgtjwMwdkcXE0Mf4f/9lumZKKaLRMpDkTGtGQN1TbKpB+K3TBtb
+b/ZqYv+BwQdb0TpETSOWbQZyMbLZmu5TWINc4jgBM7X7J8L6Jepq4aJI0ivMPaklc+4smcqRMbm4
+Su0u6GnvRb458PBpc38F3CeZFDqntuIjl6M1pBc4kV208HEcATmKGkhfoaymO6qj964La+FVhUib
+UvZAnJIxs/VmDws+JDb44KAm4LbOMPoZ4k2zUDzIQjYxSeJQTr1pRPqS4wrookgj5KmNyNTqYNs0
+bql5/9a+s43FV0VVe/Mir1Bj9xpSvFSyIWDE8DcmUqSqoLm5JcilQw30FzcLL0EwieBEQ76M4GVd
+eruU4s1QQ51qx7Q9kW8oHnp48MFuw0TUJBLGhH1qN/3MYm4vGcUBMNPiRTeWDyUsU2rMqpK0Ugzx
+W0s5rM38CyOdZR/eNuzg1rQmbYPbHef+CviQZMgul6SUoEvAs45gxGRWJ9GTgll26VATcstwyJhY
+ZEvd5WcZ8m0EL7mEY2L1rdU0iqTrerGM2XDuc5eHF0ltCGpii5oAvlKaNDB9a8jeHi+5NZHP9mAg
+4iTQpFIMXmJBcNQVl4d26796TMb0AmYP7sAkanq8QDWFDl50Z0c55aRFDbebzCVpUDG0JZUfWg5c
+2eAmBK6cA1RIA0ohOk7smOzt6eubz33uGsULX57Rb54XFWKNIXHEkqlkJ1AlmbPFi8lDKZvRRD7z
+1cYmlbozlMhLZ5ExtGNKyRK4BYp7ykWOBB+uSWYaLzy5T6QN91SPodWLPLL5t1RSC8Y2HbDkPuvw
+ksnOojbkq8Iqs9HwN2cJ7hp88FiJdt0QNWWPGouXi8S0GOhts9XEilY2gmCyTvxqz1Joe5ZqezDH
+ZD/BHshm6GSX11JmGi9iEgtqEnEDMqCFFRDcGKI/iqwQ+67t5YqtTjpHdEaWFeJtOPe5a7gdk9p4
+VmGf5Ai2YAI1hRxPUEEtsTSPEreRnqZQsGK0qrPCKMSS6VGTu8f/TONlH8GHtooo6Mxf2niqsEek
+jOAFDoN4kVBLFzmlrRG0RCJdDFsHbdghh8I2slOi4qUAXiTmwF+v17XSfvrcFwUf+hJxBmVC2Se8
+lnMt+fKis4eK6aKokV3nA7F1gw4nzJucpdVUUtjsd4tNOewyXqKuH0Q2YR986FFTw1Vm8CETjykW
+87e1ZYZ4kfyc2nVFZ9MVttUgLhPpT4lke+catozs3CMk4+DlJNX7qzsjN0LdsGU/kqh4LIEoetiJ
+nOopuchr1OQiojNBjdSSW+cIDAScaDcT94vjiYaipFgjG+W2KapDzT69yKuuAqqJyO50XCSJBFyC
+jNsoxuJJnq1bcI2XWPtV+kMPtV8nsR1w3I+InZJJd2KfHr7m4WVvXuTIdimYd2m951DiVYlsuAtP
+koZZ6zFF4DeK6NwehJJpq7YwUAYy4Z4QkbSTRsCNaXfXybXfgLtKQwC3qFkUwbsz2Qzwwhh1Kjvv
+0+RnXQP3Bkkl8HvRfd9BLgHwYgQvxvbxyN78Bb0JEIspK0FLKqdkFtKmzv11cnvCWDGFlz3YdT5q
+3A03GxopkL0Jd0yBDx1KvCrrgg8WNdRehW0/KOVcSHZk11UAQjH23NCzPTQqg5DRYmA5fG0FyWww
+97lrWKiYx5G6QiU09kWysCXQE0lbjaAGOAnlLF6qrtL2aTfQRhfd+QHguh1Pt8NBACTF4KeKm0Bk
+1QAvO8xFtqhpe43brSVjSFaKj0AS95peqiS9dI65N79ujyOoOYPfCkgOnlhWQr7Yg0TlFNEUaDCy
+jxcPYCtkg2PipRD/HaihAF5R03on1A0LFRndDBNqGZsHqOU07sRBTQzkJHJgzEWqpgswHI/Pycpz
+u4XKSQ7+011UyjqVE/u493MtR18aUUw8LTUfz5/sg2z8tq7UZt5im2gkXmo5aPrCw+2Bl1R2y5Qy
+AFZN89SyFCqplA2/LrK3TGWP3a1AJRchGTZpF9BKjLNLhVvp1LQ+7iDvqWuYXuoztVx3WwRTSVNj
+ixp4B5A1NQ+NkarpRo7nikuwDERLBFrh3mf89SawW0s2srs8ixkzYBl2Upzaraom0/qPJ5thN4rW
+Pcj5mMAIk/u1h5dcopuxOOCwZC4Qv2WZ2ZMiU3tGcSibNBX2gF3uih3lod3fWXbYoVW5qBBvs7nP
+XUM/kk6B1oOw1jnQ8P4QNYmc6makBJZNfxe7c14pOwoKGwlWyHFyMht3aG3VUtUdr/tqtdkDyWbQ
+hV1Ih6SeItRIqQx3rL7GSwq8GPEjMzo+tGkjqKWmLLrNFks55buW/QKDKodjEBbcUC4RRmKmoNvK
+QH3YlaGHjbuw2+4l3frtLE4BI7p5ixeSzTVqUjF+S2h19X5Ci5dS9vXiCegFd/SC3M1LNYnF9K1k
+h9ZGdqsaZN12UtHaXp1/LVEj60ee5cScDjVSQtQrbMVLcYUX8aAbOY8272y7CGip5MCtBIYvs0+B
+7ACtO7RGNrYpslcjZvuoaG0vr3EfTmLFg1Vh+bJDqcWLPaYkE1smsaipLGoiSBme/w3tI7sI8ipA
+HiF8a+4qWUs+zjlENrw6RHZBNvIBKWzHjzzZrX0DKONCnIIWNaUtU2S6Nhfp25JMYvfOyyXwUkKe
+gGwgQuxOXokc+ljK0bptm4VudFx0BLOzitb26v2lxvEjSznkW/Fylq4lllYlGnzQKiKVMpn0ZjSm
+KOKiKkO7404uu3jVMOjOtixcmnJoFob2aN1aJMxCgtlo7nPXtX8NP5Jz52lllUUNz7VppIIzt6Ff
+LSEyToCT3dqNlgudut3zcsno5yCWTNtFpfM6h3xJZaPjft99RyPtiWwUNZnjYrd+pBRNgWBqOTQr
+TSpMrJAGdnGx1ZZJ5HRA5gpym4UMdWsIaXni0bpZ2khdVhBnxAoZtt13393S9xFzn7uu/cizbO5L
+cJaddX5kW9layCFrbQlRn8SOpGAzse3W0ryvHdcwhuyhW5mcWVfDrmsEKzPby++FbMZcbNactf71
+deghk1CVBB/aKiItlUmkqoo92DkwchGgRg5nM0JpIWRu3GKFv17aE5RW2HYPSWFrmWKTGs1FMirD
+pvTQqqU2Jg7tEtdSqMiqMynIY/+SaHdIJ9XvPHHYSP00z2fLoYwqkS6Ng5U9lSYOwMdStWFX2Voy
+wCn80EimNoafc1a8kOMSW/bLSvFKAn6JVO/FkLVsQtAz6wo5iKywpxtarKhdd9OjdW8KPpaPZOSS
+UTyGeTFXpgsoQSs58jPCTBsQTQJTMJFzn5m41GSLnkzdCE6KmKaRHpwqJ4Rm4MJLdw5z8jpWHupF
+egfEaOhBUCNd6LlExCvrKuUQFk2HF9CFsAzQcWZHP9Bn8GApVdOpg5O8Owrz+rjh3dl1/dX6S7mT
+j2zxwnxkKjErkIKxuiUFL8Eb6lDD5i4DH7MB8nKI6NKe5FdHqZ6aKoEXOVz3+sTh+x9D9pbLWngE
+71O1jaRqFTVtCjuzeVqeUF5ZvNTS9KZ7fcg+2rnIFqYt4+7UulRwUg+OwtxPy8lsCvt6k8kWL0zt
+89ASCo7uWOECMqaxqEkFNTVRA3lrYARe5EDZHMjL5KAgFSple8rJxPlsD5v73OX4kaR5TdXyzGtF
+DXe7UNERWBnDA9xL8FsghkyKp2LgRTfnkbPeUyGYUkILyZW0nT2cbX9kc735ZosX1TcVD37B/1Mt
+haZdRxlTWdQwv59Lqzo3xoAhDMVFnd6etxVaD9pKWw0y72Ufs9euwcGIksKW7L6ipgS51GKYVNaO
+aWQH0homMD3sArZvxm3OFC/kuCg24KV0xIPey4ZUC8Fdp4B+ZAZaaPFScANs0TaFGDHawC6oaeA1
+QQWJ+DXymBH0KV50j8Tzvj3o+et6v1aeki6uUCXyI0l5inEhcjW3MqYSvJytU3C2ZNWIbcdjdylp
+5bDDqg9f7tKDfhXcdQrUxY7snCk8CtHCjcTvWgGjJ/eJjDHc8cHad7Vo9bjbVnOfp5ws9iJdp4DO
+Emx5Os4UF0QNVU4GXqq0RFHsGMqYSFL7WsvYtTiJp1kybySR0h1X8y4Ady0ZdQpY1XuGvrkIXnLZ
+QqZwjJgKjJSoF6ltXSH8BvpUsaRZcmdD+fN0qnEPc5+73Ig4LbwoYvySphrwQuOEqNEIQiA+pNh3
+lpG0yojpXMaz8m6zZ6cn9Ly0L2nNy28I3p0r1GpsWjIN/KVQVHEKrGQiY7LOh6zxeWRtQInbaB9g
+JBsKxqObUe2rJ3Qh+PUhgLWYMYXVw5lr02paSVGjvpLtXJKdq7gxUwCiqdutLdj6SLyoO7C6nvdh
+qLsqhA5ajd2p6/xKLWXAy1lq57V0M5PdeGRTplK2UeSWX4Ec0GCW1/Puk2yGsjdoZa+1aUsx3CQr
+1KPmItYda2kgWWw0nJv4FnJoUG4bTZyNYvaYh52/nLNQ1Iukg12LjCnFpq3FJUg6Voq6kG8ufUu1
+dBSkunteYo/HKbsz27TaY0FJw/7IZniMfOsqncW7Vi8y00Zj2nVtD3ZbIc6jQWrZ6q2SPTrzrEqb
+5AxRHUrPVtxXwZx2VwQ+d7mHI0LA0J6n6dvApo2k1Y29xucu8MDSocgWbmpNayLb3Z4l0abSJjtD
+bwcwfGLZKuYNVt6eyKaVMXln37X9Of52BiG3eSDZxKxRlLYD9/ihSHpDG6n4COE1JWLNJNd42dPc
+567heUvSUaA2bSiV88ZmRTRPEMEtgK0CRqrlCd3ulmcPRbLBumEljNg2wGQs1kwzbwA/cO6vgA/P
+YM0lrV92aX2mrzWt38jGTAaYoV1nk7S6C3sqPUsdauRU3hm87GXuc5efcNOaVin+T2VrzTgPuyMp
+qJoKEEzh4KWQzalaVqozhkNDjVn13PTG8szHo86Phmu1mfaDRrLbR4q5ckPSSBym0uJFds8jN1Xd
+mQbcez7WMzOhx4LubMj9bUi1qKL1ugUlgh7W3pJAj2yoZQds3X0z6XbzMnaXHVp4sW2nNbJzdCJ9
++WLISKR0ffjhoblIW9F6feQSN/HVyhduUhDZvb95SJ3KX+5BWok/lakX2dhHQymLaSBjEttM/MrR
+FfslG+/AdNmSNJP+Nd34WGzayNaMGQlfVrLRmRE5o5umgFDk+JhE9o0u5bQTew4BLepg7bm8D6xo
+ja8rWvXIJZ7zrEcV5HJSZApKiKXCsLGbVtGUKcVxiGWvjyyRvfFYT5NIrjuXE5WyJRW9eyQb/0y3
+WA55bvfjL+W8LZOzktlKD6KmEMcgFDsvEq+qAAi7BWgkh2IkJ1ICXkhZWaHBh5Xn8g==
+ ]]><![CDATA[
+ PqSi1TFiSPN6dGRsj3WrZcs/nuhWdCcRN6wydKoeSDYG7oEcNwl5DLRoWCvrShEXVfTujWym9p3X
+s2nlgByLl0S2v5PTzi9S5VFGRhJMkXSkREAKBA3+T7WVdgnsqK/obc2Dvcx97rrq5WLPEm3a9khN
+Pe7uLKcMGNnoj9XdBRQxyxky+A9JlEmSKZJNJ0vxJvAXdiJXIJcL66gkHzmaRnnw3F8B99u5jOwI
+HUtbdSp7fVSy8Xeguzhz7kxQG6jiS3gGlUXwjNhUco4uGIyW50512aCid09zn7vGjnmW7ABb2Gju
+h7JzDk8uY6jlDBESSyUz61+qkKW9FTysANiJhYTiKBRhJZVUbnXZYsm7F9T5h2qyM5IRhcLuKqRR
+y9A5oVkOgAtl7sAU/ssgTYgijhJ/y6/KqLyK3r3Mfe7q8XLtXedq09ZX24if7UnEF9E3oAiYhVrH
+EFJ7AxsQvbCHAq3m7SupRkqdb/Hy24L3OrtxSocSu0diKbv21rKPLV2CtoOkDBO1aRvMv8J/Nf7W
+gEjO9g5x0tfcjeBlD3Ofu/pYVZsn0PQ18/VkGQlvshRPd8Zj0v7S9UqwbhdaS0bRDcVIptV9bypG
+fOvLbwjeHUclHpPNujEbmdmCqTjNJIEd2uKhMCowT7YcUYQYzUmRXVJBRmb/zuqyBTV3+yabVs4U
+ksA2kMBZdJYquxi4kVBnCfM2lcLmSCrsKiAwEK8563AQC3pjOyK3mvfzyQ64lw0+KD+RaBJ4k3AA
+rVXL0EoT1zTcwESF7ZbQCjvVOLax8XqE3dj05bcFDx2iqfGPFLL1AoYqgJtA8khcdymOySB4a6+5
+xsXDKEb2O/f5SyQwwZlIIUcFIBsDaRPAYku5Mbi4ACEMtxJSN1L5Yi3az8ymfSN42KknYqYGQ0Ug
+HAM81GAdjkoO9nVsN3NVAP/Il98UPJS1T3qyqSBFLmK50bZNxcaNrkrgP5sC+E8EDy1yYtG8RnBT
+i9F2kaGmm1S8uOXen2F93VuvDjNqmBE9uSCotKO33max8jnO/VXwsJM2sZgnrdmWd8abGC2tgt5r
+h9om4BY3J1ue16Iocey4mX6JT/31nYP3xsjQcOtNlt2+/ObgnT0/a7tt9eufCfgkPj6Hlz/AD/A7
+gOP2L8/f/an56uNXp1/84f/FP8vfpF/izu+++vHjhx9Ov/jvp59kxEHwUuLfwcu/8X9/4f9+x//9
+M/8XvgQy/vB3/OtdEGcv//slDF7+9RS+/AFPxVn2jrvTvCS5eZdFWfryLW/m71KTF7hZvIvCKHmJ
+M/MuNqF5SQy+xISh3MnSCIAmfBflRfzynoDFO8YCcDN6l6T5C2/AbeNTyTsWTAocs/C4k77L4Qkr
+XP7OhHGKm/m7IMjjF75XEhe8g98Jswh38A1BEeFOgXcxkQLid6CUX5IieIcfJmD4Lg5z3gnxVWH6
+EqfZuywPC7kDh1zfNI3exbHRm5gPHkvwaZGGuIPvzM1LHAMLUazf1M0wjvE6cSw/GGSGj0XvoqzQ
+d0/DLHvhM5Ex+CYTvzNF0sJd3fuG98J3RZ5lgpw8l+8KMB3+JJ7KDBYrjjD9Qu4E72DdF/JlUf6O
+rg/WJ+fzAIySd4b4yzH7nGDRuyIO8dVZ+o57+ioY5hEDR0mGd48CzDk078I0wZ00BlxR4A6+Gj/6
+kiQ5ll7AwuxdUGAxE2AojpNUHkoJj59+l8KEfuEzaYofTqIC6xDpnEOscJ7g3aMA32747ZhWhJ8B
+TQB7AcgoBPrhq73EwHqe6qKGwbswws8QCRFpLcjeRSkXF/Mt0kTvyLrHeYL5FQqHm0VBGgMWsgRI
+jkN8aWbvhEHKV0/eMa2GO/G73GRh+6LcBQ43QSpxkcmLppF9hzxOEgGMwgxTxcLDE+0BgSncxPyL
+yAhq4JwDfwG+IeZPA8f4RvjrWFELBnxEcaqICcIQxB2CT7IAiAEFsA/ohYsFRgC5x+TBwC58hGUG
+RpIEXJQCoaSEmHwJsmeJIO6AO6Icj4CDDGnjvVKayUi1efQuBdcJjRYk3yQPdJHiOMXvxIU8w/5P
+BQSec9BhAjybJImEK4I0BjUAV3nAd8czeRGKBDFRErVwV/eE3It3oYkyucmKYmG5NMancifCYsQJ
+sBYGud4h3vllSfouBe7kZixiBcSp0gECKk0LAvLL7R3IGCX4FDgsiHzejPgY2D4sKC9ISUmBr0qT
+d4VIKNzJyccCaLAu8ho52C9VsZJmSaqAqXnxBef7MWmKef/x9Msv/6H84WPz9fuPX3//3Vc//P3l
+HyHNv/wVqDwH48W/fvmH33/84evv/vLyq6oq37//6dvfff/xKz7765f/h0/+E/93+kUI0Z1Acgcq
+uWNiJVVZAVn9rd4qYJar+DWU21ytPItESrP3DHeIfMoOCBQewKfLVaj4wL3Q5CoMZd7EnPInV0ak
+AO/AK+pWhnQoaoEI48pEqf4ed5nRhUlS/W5ujd0tTEzi5ktAPsnCFClfnUuVkndT8FYchHInDK0I
+w8KEkb1JpxXrEL/jTotyR1RNDJHHQx/kyxlwbVeGZ1PKi3F3d1lAHhMm0jeNKbcBSClDzUQxImAQ
+LxE1IYR7XIjeI2op1KiYAoqwFG+cyFeDU/PAUhBEllVWhRE6A4OGooXwVhmFGVEV6A2qDcEnxHBK
+KqN2CckiWBk64/JFxnAhwFomj/X3MytQsPBBFFodRKLgnSSiHMJkwryIXob08t4nIRBr9UcaDTqq
+v5LmfvUf33331bcf/vTylx+++tPXH777+JKlv375AhKdlIY/I8q9L7B+KcgLYraAPMRtk2L18Sc3
+ppA/E5AHVruAEgxZ/YwJYuEjU3BlQJAVLJcvoEeyDK/yBcUt/vYCCcuWSNzAouiCU4lS/EOTV6D6
+P4MhKtaXfCKX/YML+vIP//37j7/78P77H/6Eqcvna+b0D7/78NU3//oVfve/+BUvv6rL3/yzxeO/
+//n7H77Vz1o+f/lV+afv//jhy/I3xZeYy+8//v2bD1/2r3UtDqghRD0mYDHhrG9VQ7A+XDR6EBg1
+DQJBGug0S8SmAG0kIZYdvBNBfKpqgfKEjhC9UYhqgejOwR4ZGTIrxDjhNglqZARR1GoWyAkyJH7P
+UMfHyTvWX8idMMnkBhRMKDoEv5+2pAeOTUWNBLQ1+ViKqSi/B9S9MVW0FVWhyVo7KhBdQLMzoH6N
+KdILFXoBOEJeNA8jlUoheErnV7Q/CAEYUuFBd+apKLyYAiYSxOCb8FVYyVYCAH1RRFVAsSIsCRQH
+KXUuEArTDBIAajxNachBZhmYF2obEG80wVKrfGkJpAl1bgLhgNtyhy3zuAPURFZr4WaWUE8mUMSG
+whFfBaHMh+I80t/j+Z+4A50NpdUaFUWW6LeHeR7JY4VYzIksafrik8z7MTpaKgeK7eQA3gm2AuWA
+oYETvYR8tyB7+YK2U2oSWXeYdZbyMiDh5ywM/uNUvPzq1y9/+B+nX/x0GjqBY24f3t+IZQRJWuDF
+v1VnKjBq4rA0QnRdQTFLnoFRn4i2hRFsPUMIAlWSMA3I39S3KekzE3VChoTNkcj3wKbNVc9EVnLA
+orJcapUXFSlPuBfxDpuDd+hoiIKC+oV1qqoVGk3oFRoQ1jiNB3xtRh7FHWEYmMdRLl4TbYfQtMoV
+XB5aBzJUdys2VMG4o7YsJIB1RPHdad4xSEyLR71TGlGkRp0yWTJRzuJWz2rRwD1tAa9vfqNyAbZW
+oSZZwdcgjVOuEn8QqOJNQcqoTQqz2MoTiNFIBFjCt1DvRuUJ3OfcRPQ1AnVq6A4UrekTFOQYyisI
+Bohf+kmhoWQCw4sTHAeQxmJUAEdi3QtcYuWjGJH0cgDInR1wB9OOC6OeWUanGYgTU9v6YUFBbwM6
+G05sIt8vZmhc0KsMeYdLhh+KgVNuZKuA9LwhTeAsvksoiaKCS0y/jY4LX4x3jKE0zegXKaLhUr7j
+Lo1i1IV0l/kOcMjUGjRyI4ffbTSUkRrrSBM1xCn9Q/FoxbFMxWOkFLbYymNa/IYOkjWY8W3iucAm
+xKcCSBmNteP7xeJ7QilQDQZ00VqdAErKQsVMJv4owDLKeuAvz8QTpD8mvjVwZqwjDcbMGTyABkgZ
+wRCfXOx6cAiEfqJEJIECMJ+sjdUJ7BcTJQ6CourAp3hOaEY8Oyq4LCz0GVYJKiA0IYhGdH2myoSI
+MSJtuV+DKstczAG8ethS/PAmKZ6WRMSXxc0oJbJgNfDkWb2T5RozKQIRNXSpLafD1GUzrdwUwRKT
+LkTmQ6aG/KYEPGMCtSMykKtyOhRnFKt0y2gbwJNs/QZ6FTSQYX0rIvgKiZVJKTSmurvte3XCJmcg
+Bfa7Lzrfj8nTVxy/CJS01vGLOJdCzZs8MGr2YRFjo96ZhjIi2lVZIbIbloTaO2rt09ON0rAzi2iT
+idAvTC5rkyWBToXnHsjaGMOYEO8kRefhh2kro+j5YW2C3Pq+4mFybeDAGb2T2B/E2qRRro+FCUNO
+WBtDHpeIApHItckplrl8UZh1S1PQZZQYDewcKocoIXHz1XNyBRRIIBE7/mBmwnZp7JqCvkUI4Q43
+8LFusnpwoNVUg3OJDWGkjBCIDgHJBDCpe4+U7kcmLp26xNQLsVWGCcFMJDezTF3p7kZBm4ZOeZRH
+1ltLrPkWM+pCljCU+fScaZ/G4vplapaSuyLVcyBGYy1pcHTY+bFicOOOEcsT8wvDQH2AK5J5P0JG
+N/T+6PvDw/1C43j4A6rBwDYy1Pchj2SEIoL6pPNB6RxZ50+EfSbOX8FQLFRlVkAb0/nLYqJONH2i
+IdOIyFlm9C1jt1eNvrfPa1MHkBomFrVA3zhXSQAVk0gghYGXQIKujPlRE9E7YXAnhKwFe4gDAxsn
+a0OZGkmn/hD2DaEhMkYsqEJpaUsoU2L3jNfTOWx1TMbwR1ZIBJfkJ4ovY8Qiy+UGjBF1HKOe+rKU
+XAHFXgQSwqZmolOTW91DR0uidiJ3emclkRAXTdJA/NSgNZZo/MUa1c5jEQMMgabWq8qt08tIZibz
+E+ukkBfFqmUS4w0luJ8Jp2et8o0TivbMmoHEu7qENKjETg3w00GSq6+XZ62JoJFgSAST0M7DHYlp
+0rELI7Etujv4ytx0tgUj1Ayu8wh2+XYeQa5PUazRalCpnRCjVgeFzEhQo/HrY6IUjxUyZ9wpGA3y
+Seb9GB3d0AFcKQpIDDBpAc+MEoiI9iVcXbkBoorE4o4YvxS6Y3zhZywK3ur+JZmk54i6IALPfauK
+SyNH5FuG3uhFJer+YbaRGE00ikVVWy0uGs+0mjkhUjKJ+WqsM2c8PNavCjQwDiUY2yg7fjFMJRjP
+7Ac5PmHUkkEnRncMzXA6JBophhq1Vi3YIBMn1LQRJvoxqr6VY2hNihmKO6lpAySt9OLNIlArWt0e
+I65hJrIySPTXInxtx485gzT0eTFTcQm4A7oGryTIRu+CSUc1l/MW7ureN+oaRUZEGg==
+ ]]><![CDATA[
+ 43TCo7TcxDhmskLEBJiV06KUDUMrvgIIn6JQ8RzQ6aPPo2FnMUtS3KDVREOHyCYvimfEH2RIK6EZ
+BGspKsBaGdcZFgd+gt/ELBnDVxHzkDpr3gyJy0QEJ+zHqODyEjmMzcKNkq/ixm2SzisyzdbIzYBO
+eBFq3pVfJRYQXS+R7BG9JiMmFQRgkdtfDBifDIUKxN6MDF0vunW0+3OorojGEX1SRgtFzREQvrrm
+XcF+1AR8UyPpHt4JDd8dC5XlicBFNutBhMXMptEgY+ucAKYRY51kEDoavJNHoeaJuIWYAqbqnkoy
+gBE2flVSxJpopGqgmwpfCi8FSpJ8hsBRQzGyyfnT6SUc+ELThYURLDPUYtRFhBmet/5taMTNhibM
+OH9iPCKLgUHEDSYhFRKVhCQ2NpNK/cJgrriJ9CapEmgDkGiEk2kvcBtH3GFcNDWdzqOQZaa4iOmR
+4w6PcdWYcZ5p9AHzV2XJgzZ6QPfmN2paqKuAmzxTSkwLk+QaVNVsDLR4qNIHOigIkjbdmTD4z5h0
+JElKUCg31xHeKEBC4udoLpp3EiuSwOo0aRnHlcmREAJxOJmhS4wmQCMJPzEPBG7u0pbCLQyCB7H6
+MEa8aiAw5qsPRef7EXE67/wFhmu/0vmDrlYE5FK30Jp8QVBoLjeiJuQyqH2AN9LsTxhbB5WVHEXR
+J+hJhmLP5WQPLoyJNaREEct1CfJQ4wUggC4NrUKFX0b+EmcisT+YJ+K9MIbVqpPExj+wLmmgoQaT
+a6Re89n8oixTXzPNc3sniUy/LJneTDPGnWDQGGMU5VnEN0gYxghU3Iof2i5Mkam4zVl+wTuBUS8y
+DugaEa7IVDOZPOjycEp44jPKY3jTItOkogkKFRqCbC2Aibsyj0xcV9w0gWQL8j7xCEB1z8Qbloxo
+a4IZtRF5T6xNMdJjm9fMCvrvYWjNNMld2zoW8LOSPydkUo0B0siWQI1UWAwo5v0IFd0081cUmXxM
+Ou/+tLdDakK1i/OEdgZkpvp+OSN4Ruw7aKb8pf2z+0S0fJHbFDwQsMzgW8htCwL+b53XlgYfFYdk
+fxMWCDF8963qlzSMVbVzFzIxEkShJSLHaMIFpF/SB20tcGkbeI0iUQvMZ1BVQ5uEQsipBAyNxHAz
+kKF6kWHn48RUaKI8UomMB1pfwzsS8xdao7KkLongYrWBUK1gyuhdUdAyfspSHVEAcW7dHiMSBHaQ
+Ca6NKhEPucakuTmH5iklJBgwKaYyXGIFNpYdxBLkTDRgzSmnjNlQNeLLM8FMIbIhZVGZahIikK1s
+4sVJYJiYjyS4mNiEG80BU/BOTHmaWBsBNggrqljRI+4J7ySGCc7Imk1ibgR0YSJWZ6RFCyiZLiBN
+47FivMRin4VquPJORnczouWmcS55LzHG6G5TPPCOBj0j1riEyYtPNe/HSOmm+b9V0iBiwgiE/EVk
+pXP7Z/eJEIIE40h6lA8/Y2nwVvcvZrGkJg+gdGztUKghRbUDcy1stFltehqinCNVYWRl0wXpYy1j
+ISczoC4qXP0XmuGpwsVqVWTCmrZwQCsGaVhEYjEUmqERGyKgN8aItcaK9YVthkFiLzkTL8wkMdpZ
+MNoJHQ/T3ubZtayM5rn9PVb0qfaMpMqHHpWYC5Fm4chTUrDHHzNhYVovKChsFURAcPFSpIoNciqn
+bS3P0MllgIibCHSAVze/UQ8nMZHiKgkSkDVcF1FuYmgzVEOfpwhFFOfqCIiH0wZ+WdVBXwfm1ztu
+uCliXGorI1ZcJQzvx0YLIgjIdABfH9gO+ReY7oxLZCo6YqoIpjoKitQw1foJgWOxLd0LRrGyyAIy
+yI73pu2QCaDWSMLji+LYAqa2Ppj+Otcsoh1C159RdkkZY7HpxGgOJrMeTs5aLaZX4kw9woi0Ihmx
+iKjHckZiqUudBuPDmhaNmMeKWBfFLG3M34OoZ+2hVFBSA/Gd2iJZsXrk97KW6ugsm0zgJI7IN5CS
+W97Ji0wzFHlgnU0mtuhRQNBJ4i1iHiNl6SfjgyCNFyI9ZMCAzmBCYSVLyKBhpg4hnNtQAKUKEgJf
+Sm7lEQn4B4JZBaOnTPMxFHJQp1hdmZjRj0RoCBNPRSG1mUaSmjiK1FtxnoivLgXYQjARf44aiiaq
+BijzvI0XhAljjbAEUhbw8Y7k7KkWDYtdeQecp04kEJu2gNc3v1HtGVBhJayylAweuA7+iD4WpJla
+GpL4S239qc0ga/UabopipDEA0yYXtghjE9lQplXg3L+i9T/zyCj3SHZDCn5TOmf8qlCS5LlNmPBN
+i6iPYkv6hY4xa4a0pJq+CUv5okTjC1di8/2IKJ1z/b74tMQfF4wHqalMSbVWn8aHVEdSSptc4kCZ
+JokpyXOKOmp48eL5lpLSa3PmiYj3vDXBQpamW9EjLMS1MYzJE515HLeLE0uNBKszmJPn4qhJlLJu
+il45jb7ARhVErtnFkZA/7pmCxIC10aACX4FxN65NFrQ/aKzxFlEg2/fSABzDIGmmyh88kAobi+kl
+OY0o7RYny8T0DG2GkBUfIs6Fo3MVLokNDODXu/p6Q5lKK1OqL6l14jRV/1aaDyhd8rBQzVDkNqLJ
+JLyWx+CXJQTPgAitS9EqUkAteYFMvfUepxChrRXLTX208iGzHq4EKrjSRRirxkzT0LTRNkM3me8f
+ZBr7StT8jVnbr3x+TTbvx2jpxi6gBsV50Fn3p70NtwJIJwbCgKI2TU2X/ksSyRkwmwKp0f7ZfRKr
+5WyDNuDcBTbfcqZbZPS9bV6buoAMFUhZheS7QDzfqr6I2c6SSCEo7RpjI810REC5NDrA1SLjWYTZ
+xjSZUmbrg2iRQEOtWSHJIxAS4xQR65tjiTmmJFJLgDQ7KA0YdZZob2wdORZhZZk6PiED4ExJQpdF
+nZuT0BZKQ43VCyBzKiKC6RxKYNrkKoKNsSYNflDMPdboM7RPVcecGzk/YFpf3lNlOYuAUqtIc2sw
+pQxVMbQLRaoNDyw3gBEjiImZaGS+rFNsRszgSMqgRBcJ4qXFKA610ElUeUDtxPqXILSmEBMqlHdS
+mRkkYkOJqEgY3DFEqdRYSKlU2JWNEVDaXRL6xLzJ78d7axcJrI9CbQymHpMw0mSutfY0Hk+lZ0AF
+vKNdWjTuuLw+1bwfI6Ubu4ArpAFYHaQYvnyh9j2mbP/sPiElaOwrseWJP2dx4PiAr/71l1/+dNL/
+xFnkH7/TP/5Z/nBdxl9+qU7jL78c7RXk7ZXdggRd1y+oP7qqY5CgK3sGAbqyaxCQK/sGFXLYOci7
+K3sHAbque5CAq/oHAbi2g5Cg63oICbmuixCQa/sI9XVXdRJa0Lf3EnJZVnYTEnRdP6HS36qOQoKu
+6ylUyGFXIe+u7CsE6NrOQoqClb2FBF3XXTgmgQUDN+swpKxXj5O6wEp9v89Qb67qNNTlWtNraFdr
+RbehXaw1/Ya6WKs6DnW1VvQcEnBl1yFfd03fIXG7rvNQSWFF76FPWELKNDpJe73ZSZq8aw8ii7ve
+3oX4yy//LExz8+ajPXYbqS3gNR+qQlnVfkjQVQ2I1hRa0YKoFLimCVGNslVtiJznukZEQq5sRaRx
+sbIZkaCr2hHVLlnVkDhGXW8TDts1JoIX17Ym/swkxH9gsgOH823O5kiHojpva3oUCbmmS5FwK/sU
+qYzXdSqqOl7Vq6i8s6pbUUG9fkUVHms6Fgm5smeRTti6rkVCruxbVM9vVeciQVf2Lv7yy7XdixZJ
+a/oXCbqqg5FruqqHkYAruxhVlazqYyTouk5GCznsZeTtld2M6r+u6WekPFjZ0UghtLKncUwGv+pu
+vim9OepujnQ36t1V/Y3W3lrT4ajrtabHUddrTZejXa41fY66XGs6Hfmjq3odOc913Y7E7cp+R67o
+uo7HEeK6uc+5rt2JLufK3sdlVuWKjIe+1a66nDSo67U8qk5a0/SoUddVbY9WKb258dHKshWtj9Y+
+W9P8yHmubH9Uvb2mAVJtjFUtkAq6pglSSWRVG+QYdd3c7VwtH9Y2RP685MOnOp0jfZGq5FZ1RhJ0
+ZW+k/uqa7khCruqPVNN2TYekZdcVPZIKOeySVEdsVZ8kQdd1StIPW9krSdCV3ZIEXdkvSdCVHZMA
+XdkzyR9d2TVJ0HV9k4Rc2Tmp3vWa3kklzTXdk1ZlrumfbEEHHZRqp6zqodSY/KouShUIa/oobar2
+7Z2UIyL4NZfzbd2Uoy7nSE+l2pSruipt0cKKvkpdq1WdlbpWK3or26Va0V1pF2tFf6UGOFd1WNpS
+mhU9lprKWNVlqZG2t/dZjtDWBlnONR1WtN1WdlwusijX9FnJW+2rsUrVnddoqQppVaulRorXNFuq
+QlrVbqnSbFXDpWOhva3lUgPxq5ouVWmvarsk6MrGSwVd03qpVLKq+XKMwDbIda4UEWvbMH9eIuJT
+nc6RbkytaljVj6kKckVHpv7mmp5MzZWs6cqkYFrTl6ke16rOTAs67M1Ub2pVdya9qZX9mQBd2aFJ
+yJU9mgRd16VJyJV9mgBd16nJ31zZq6kTXdOtySVd1a9JwHUdm0qAa3o2NXKxqmtTQb2+TVXAazo3
+NXSzqndTfd9V3Zs2GL+if3NE/M47nG/u4RzzOEc7OTU+sqqX09YQrOnm1AVb1c+pC7amo1PXa1VP
+py7Ymq7OX365uq9TXcdVnZ3E78reTo0NrunuHKOwTRzPt/d1aapzTZ/nAqNyZXNXZ1Xup5tLFZDX
+3qnqZVWDp1opa1o8SU3rmjytS7WmzVN/dEWjJ+e5stWToCubPWlqrGz3VNBVDZ9qPq5q+RwjsE0c
+z1UiYm3z589MRgw8z/+YMFpw74ev2vmXv3kpf/r4/YseI/n1//nQ48F/h3/7448ffvjPD3/68r99
++PuX+tSPwy0qflV+9/138LWjdgOikAlgoZ5Qjp2UgysvX3/z4R/t36sPf/n6u/YYS7w9HoOD/D/t
+WZVYW+g1ujn/64XdbEwov/zhr+MPyL/1IfsHNDOegGjiR+CLFzlJU36SZ2n+IwgXivP0iz/8Bvcv
+n3Ad4Af4AX6AH+AH+AF+gO8Z/CZnkj/q5Q/wnxv4W8l1hmiXXLua+wH+2YGvo7pPJNpXwe8z9wP8
+MwXfiOo2Bd8J6g7wx4Lfmeq2A78/6g7wR4Hvh+o2At8OdQf4Y8E3JZsdgu8H8wf4J4Lfk2z2Cf4o
+zB/gnwj+WLLZJ/h9MH+AfyL4zdf9+cA3wvwB/ongW6/7U4LvYeEOcL3uue5PBv7YhTvAH7Xuzwp+
+t4U7wHe17k8GvvXCHeB63XzhDnD/2mLhDvA7LNwBflgX24Hfc+EOcPd67Lo/AfijFu4A9697rvvT
+gO9h4Q7ww7pYcW2B+QP8huAbrfszgW+E+QP85uC7Ipv9gN8B8wf4YV1sAX5/zB/gNwR/FNnsB/xR
+mD/Abwh+f7LZD/hjMX+AbwF+B7LZA/gWqDvA9wO+EdnsCnwj1B3g+wHfgmz2A74p6g==
+ ]]><![CDATA[
+ DvBdge+H6m4Ifh/UHeD7Ad8D1d0Q/J6oO8D3A/5YqrsJ+KNQd4DvCvzOVHdb8Mei7gDfD/g9qe6G
+4HtA3QG+H/D7UN0NwfeDugN8P+BbU90NwW8+9wP8mcA3orobgm839wP8acBvTnW3Bd907gf404Dv
+imjdf95h7gf4M4HvgWjd655zP8CfBvyxRLuEgHeLugN8P+CPItopMv6MUHeA7wr8IUQ7AH/U3A/w
+JwB/FNG616PmfoA/Dfj9iXY5Ae8cdQf4fsDvSbTzZPzZoe4A3xX43Yh2AL6HuR/gTwB+T6J1/7mH
+uR/gTwN+H6L1rz3M/QB/GvD7EO08AX+mqDvAdwW+KdGOgu9n7gf4E4Dfh2jdf+5n7gf404BvTbT+
+tZ+5H+DPBL4p0c4T8MPnfoA/AfimRDsKvp+5H+BPA7410fo39zP3A/wJwO9DtMvJ+DNC3QG+K/A7
+EO0UAT987gf404BvSrSj4PuZ+wH+BOD3IVr/2sPcD/CnAb8P0S4h488OdQf4TsDvRrSj4I+d+wH+
+NOD3JFr/5mPnfoA/Afj9iXbquv/cD/AnAH8s0Y6C323uB/gzgT+WaP2b95z7Af4E4HsgWv+6z9wP
+8CcA3w/RzoBvNPcD/AnAt6O6m4PffO4H+NOAb0d1Nwe/+dwP8OcA35TqtgPfA+oO8D2A35Pqbg7+
+WNQd4HsAvz/VbQR+f9Qd4HsAfyzVbQF+N9Qd4HsA3wnV3Rz8Dqg7wHcCvh+q2wh8O9Qd4I8F35Rs
+dgu+B8wf4DcBvyfZ7A38sZg/wG8Cfn+y2Sf4/TF/gN8E/P+yd249jiTXdn4foP4DXwRIgMWTcY+Q
+nyJvtmDYB9CBYAGGMRhp2joDSC1gNLKh8+v97YhMXqrIKpJTvFR3MjXVVUlucq9Ya18iMpK6r2we
+0PxmI7+Y/0zzh5LNY5pfaeQX82Xx4fbmD0XcYn4z3r888/sSt5jXx+15/yLNb0/cYv4IvH+p5lcl
+bjG/HnGL+cvH4/D+xZjfhrjF/OXjvrx/Aeb3Im4xP2h+M96/DPPHIW4xP/a4Bu9fgPkNRn4xv4b5
+fWXzCOb3GvnF/Ermt5HNfc2vNHSL+YOb31d1P9P8vkO3mD+m+bVVd7H5DbAv5l+D+VVFe23nF/PF
+fDFfzBfzD2T+7lVmMV/MP4K5enmIubrNp9/KfBef3jl2z1/v029iviFuRmgOHPuoH8f5M8y3JAog
+y+E4vJj76XDlkKdmzEcQ39z5s8y3OCtK34QmNqkcmUP+jRyhYp8R73J8P+dPfeyI1uygzE3bdE3f
+DM1YjoGj50xbcIcJLvSK+Zl438/5szPtTKeATE0r5n0zKqW0ssopXw7HYTmjwC2Ys3C8QTyDva3z
+Z5nv0llwNj2nDLCiyqpTgxqVNGbyD390nIzgthPido/hI9Q+BvYtUmE0Q9YITg+gXitttddRZ46W
+/6IOnNFA7gR74mUGWMMGr91LVtd3/vTHLswo5m0zIFoHzkEbcHV6NMY4E0zkCMbzV6N7UHsQD7wu
+zGDFXPC+UPO1nD/LfA8pMIXOoDqtoW8wkm3A11tlrfU2cgTrrDajaUGtQZy0heF2witijluwc667
+sLt6Z+zPkVo0OWqnO8jLQAy2IxU5F1ziEN6dd8aONoO5AbHTIww7GCx4Cd6arCR0X1B7t4AtlIr5
+LtKMdwHRBmpmpFsIrvfGB599y5F99A4UHYAb4Bbee1TdgFf4zQSvLnh3pXyU2hu2RkKp24GptBBn
+FIxa27tAfxT9GFxIoQ9DGPnZhkjEDpxXLkNwZ62AhdykjRpqsnIk56rmyq45NXCvhH1GKll3INYS
+hCajTWc9ou28D01IUbqLGGIXx8QrkopDbKOPKuRgfectDNuCt0PMA4pQVKNZyql2Vm+ye2XslVUR
+b6KOakrlqGNBGp1xo29DiCrmZFJKA8UGvWaTVeox55SJffQw7WHYgdfYloSVjSFpuyJloXbYoXYK
+3DtUmVm8nRJzYqzXxJxpbXCWzmgIkAeRLQhzHlvTOqLVtSaPuc0ujSnSEUdELdMB38NvppWK8BeB
+JWruGT5zMHB/pvNnmc+UVvFa1dIYDCZZ5wzxKREXOhj1WeUWlLkdO9PBXWc7045tC+qGEdApI2nB
+60haykU7WGeEd2MpRR5geQrcmpZPEvJVqkxlFfGSkLLxVpNzB98XmDHbtmlTp7vYifN90+ve8J/q
+hi6DumEEDAwL3gYxd0H76AZCt7XKJKOgVkMtgSufvmX37P7iXaqMsDoy7iJeZQaqKBWFZJRA6lrd
+9p3vht72qe/6oRxdn/vQizmIY6cL3kwMRxKWCYnQFSk31pOYnVBL4EpObgq1k5DrVOgG3cU+pYw9
+LUPCnNRLwQwu0i7AqW4B0ytwDoMe3BDK4Qc7KDCn3nYjYBVgVZYilYZkYy5qzm50rrBbA1eTlqXi
+zmnqhZCvOJepuXemNBhDyzCSd0fm4sQXeUhEC1Ldt4MCX4bSYRj5rx86/gqD6UcYdpAbEHPIA8mq
+LVJuafyddFaV3Y7AJRnQMe+nqVeF/I5zmVpRO3p7CVRYJfMGHxFvJuu2BKmH0BY649AzL9ejlQV2
+esLR8EcD5panbMFrux7p960ldFXyVN5motZSoxoTpOJiPqWpPS1fs7uo8i3lVKqMpb2XQB2F1QDw
+ZAlTSzoa+wTSBJdanhpjOQLUO+CqQRI1eIXfoYd/kpWEbpN96kjMPmQ/EriSli0VVz0Xcl23OQPt
++dh35UvSIPcyYXF0R0ECNrYJnkhIufdDA5AepAh7TCOy5qCw8rsgtoK3gNWkK9/J/L0LvMblrrJL
+4FrScu+0DaQpW/qLWcgyx527C3WV7qLK107ypdZTUTvb0goOUSXaX361iLcjE8kEfFSwGMFHFhrR
+a/m33eAVfnu4d0PDEJmu68xELYErQ2dDpINUzpc0xVyC7lGEbOFx210cDNt3WDGbE3BP6yvy1WX5
+SJN7Y8oEalsoVQAYoa7CFJCkJcHeT4hnvKLnhmQVkXJPVR4nanNuyMmRSYIitycRsnQXs5ZbNKXO
+C9vzsG9DdQDfoEW0dA+i4EgzOOSmJaCA1gqrRbypIB32jg1YwS4RXNWcN+y2BG5C7JYa3TM9cD5t
+hGzIyKZ0F6W+vyxBJz9ex74JVd4TKZF9cYfWoafOGOalkipJv9QSaKqs0hcWfNvHPt7Ea/xMrSQr
+YZfY7Txp2eSYetIUU0GE3FBvJSl7uovdsN1AndcuLnzsY5/b33YK1dHQD5FiNa1DFP0iXzLNkInS
+QmkV7fDiuu2MdytlO+oNtYmcnKi4Mh0gTTXJxUT32JSk3DMNilPYJmVLtT1C7KUBW/t8qe9Tr5S1
+M6qschvKakpdHuCw7zNNkcg3TIG6B3T3EvaemnfYrWnZkqZsm4uQI7Pehnm9yMa1RKcrYUtdn6pt
+V1LymzI+Z/Fhm5NachIlwElTSkuYYpdGQlXT23e0SMMk3/6ZfF9QW3nfZbemZUvFrWlKhByotw2N
+cqC7GErYdoRt1iJakpTbSclnBe3xxYctVmkfgqGlISlJThqzbik8dIOlPQibUH0N63MpS+CKbNDy
+SNH1u1rOLRNdEwPdRU/9cTaZobSNpvQWko8LVHH+ws5iF/uMNRWsvY5glfxLIKUmMwXv3CYnORyv
+QN/cd7EfuLF0GLUCFSFLrpOSm+iVNd2FrFYRNFJtzcgUqHuOdh/qZW3hDHSobaFglVoTwNrvY6X1
+3cH6/HEI+35aloorFagKmekgjXJLd+GoP5Lr6KU0BTfajt7CgxZvjqM9TNxpWPsdoIVUmYgJVj4a
+rMMzXl8T8A725+zSX1QhMwSJeX1shxK2lHCqrfWe3qKXNkqmA/05aN/Gvh+s/SZYQ2kgFMFqaAt7
+InWoc5lTgvUQtXJp41lSVqW7yISty4lqK0mKNMHseKD6hH2o4vzZKWof+34S7uYkTAaO9PqDXFOd
+mqUeH/eqzVsBe0zINSNP3UUtQZopriQpTZNMo8Zk6gDafajnBuwWaCmrIhsrczgqqw62NMEd85q2
+jztdxFFaj2N/KeTaXdjSSPUlQ8kskt7C0EmRKphljNa8jvZt0T7Hutsu6TKzIRUF5JQkz2ek3AVa
+qFFUDCVbZk8M2H12d7qLErYOwkNJUpl8rCaoWaDKss8htCe2x4fmcfttcGuijS76HHpqK41F6fel
+YWpHmQqVWVx7Ktp9qPNUqCvdxVyCpNrG0iS3Ba1lJh8r2n2o4vyJXdQhWud53Dy9kTRsS7gSNtM8
+LndxorWfZjcbqKcG7Eshl7AtU+CSpKS3aApaepeDaGul3YN6yTxuE65aPr00/aiY+XmTNBXHwOww
+LbmMJT2lY8S+jX0frStJSvKxVB+ZDhxAq3fQNs8mA2+Idh/rNlxnCcuiS1l1gVbJ85nKNy2lWdJT
+U0L2KNq3sT9PUiUll+qjaJG7XagyHeimhFy7KGmP54ne2fP37bWpYbOSRnaEViZw00JS3yVE3FN1
+Sol8ifbksN12F/spuS9943O0ko2l9kgLJe1xW/q6aVp7bp2dlvdnFdcV0sqsZTZno022LHqPVB1H
+4wRaoJoStCUbz3PYM5NU7S3mtYtagF6ilYQsfUWPYh1otSxFNcO0NLOZv5+KdbtuWGmVKmMayg4t
+Kl1ivZgRaBJV101ocwlaXxabXgj5tGS17S3yPlS5KiRoJWhr+SGY6Bk7JgNGpzKDN9NC1IGQfXvh
+ZUtrUKNO5GFlxyJielVpiXOOtP8VbU/QzqvC+2gPUnsM+z5av0fsXHtooWQ6QO5gMpBNb7SOasTJ
+WmdPCNnnCy+7AWtIxUb3VFjntFd+JGT71JKdBGpL0Halryur/WovbE8U8hb762hz7mmhiKkgMxFv
+I+Wg0ZKoS6ltLgjZnYCtqVgqrKPq1MvJOqgwFrSxtWBifk1XoSgS3RS2sfbz5/cWU60V8320qlRa
+R8/YJZJjbILy1HvrTNIDlact2WkK2fly3mlYZ1o3IpYKG0jGnU2ox0xoM0ErVyBDT48Dqhq2Vch7
+Gfn07mLbWexkY5ENaOmibBuZDNDGyKU/R4NOVyHpWE0hO/cUZyy4bTcu7e79MLQTFaqYo+R2urLc
+do6+wm/CdhZyPibk17AfQhtKwzgwGfCZtk2uDjDMvlxwKAlqDtnuFBEfCtjtTpe6p0fQDqB1XhO0
+HdnYZZ17mgpTVk6IXLlIt6Plt9PUIezP0ZYuqkwG+k61NlMKYqDyBLJTYiItzpNIeuVKld1Oek4U
+8e6lje0Oply4jQRt4ztqj08G9jLj2xC2yGxoipCLaOulujPT1PhiOlDRMhnoh951bTu2Kps0bW6U
+BQQTaRalyhqqbBHxedffd0O2QJVcV7mtu5i0G5j0+GiIzLaEbVc2DoiQzXT91W6p3XYXp+Dd6St4
+A+Y99VImta03VLwuD2lzqZPWWBmr0wERHxHtIbTP9xrKDrw47Usbyxo1DZuJTewIWw==
+ ]]><![CDATA[
+ k4eyIaTtTUnKHt/Gg9SetHaxizaUWV4eTN9SeRzZSQKWfjyHzESAjEGVpfRIYzwl4xfpaf/xsiU+
+vLNS9htGq2mOIzO8hrCNySZxXrQMqEhSDvRSkqZqvd0N3JPXLvanPjKDTyUXD50uIUufSENR+1ZJ
+1EwDNA7qUzuKXai1q3y+YzaqgUorGyZHGkZXwjaSIRqE7FtFRrY1R5Uy8YzdExPVjH0Xra/pmLHy
+hOzQNnRQionNLGLJxMPUTuytkJ/2eEZsuRrIdDbQVximAoawDWXzYQyWatumQFLuWj+lqbihtuTk
+2s8fUPMbMhao09UBSVA1ZAMdVIuIW0ScaIyTafVYOopNejp3O+7+Lv7c9PQVXrUlQ6lyFdgaO4iW
+KUGyMU+nnl5KF3b7UoHqbhhplG3ZPrGR8kzcW9dD5lw8h2ymoTBtWfICZrQkY4RWOgrySUlP7aH0
+tP84tkqsS0Ku9yx0nKhJyuuhbBPOzrpRMrLUd0UvJWmqbwPs1sCtablW3FekfDhZVbRzyEqz2FQR
+53IxiOapk00pdXdfo13pFQ8y+/rjabOndO4rfLlDo4Ztr+0kZO8aMrKjbexi2FIr3YXErqTlWnQl
+UZlp00g7baZ4cyq0G7KziDXTgJgTE0saCu9KjQ0TrRcG7DMhP5X9NrHcvaDRsmzrT8xqE0m5pXNs
+yl5aXaiVbspLTgaP7ztppmqJHI4k5sOId0RcLy6IjnVJxkpuCkm05bTFvTA70To3xWdW2BdoN2Er
+Mx9ZdKIEeZKyo3OUNNUyhd6yG0jLuTNUXF0SVZHyJivvTIW6V/DOIs6TiClmIIutVFjSU45xYtYS
+sNJPSCquFfbCa9Dbm6qmsJ3u2JCMnEt3Yay0RrCrYNcTuB1pWfbVurIRUxKVSFkSc1d2tLmdVPUs
+WT3fabFJxoi4ndJTpbWZAjYbCRkmd6ZU2IO90+uPXezqWQmqSdlNdzMM1NsttU3dLF16G9qakblB
+U9TsSmJ2UyGa8aYdOe9sn9nFXnU8MzvCbIBT4jV68rAqG4B0aZzmzHTWHPYAtfN0wO6xGyd2dWW3
+BG5mBtKQPRw4JFFlmseyaiSJuSuFaMZr93a4vUC8pbVeXKgBG7uubEEYIhMQpjvUglnCpUmcs/BJ
+oj2CdiPkve5CSu4uu43LpeKmaONQElXbWqYGltBVpQoVciVZ1fi1ewxvVL05tq2T5OG2b6iwkiqZ
+7qii4kw3kWgSFSNfE/GZi06H0T67c67U21juJxPiiN2ali3ToBh06ElUKuVsScwSujPeruCNJTNP
+9ApxM+It5nl/X5zaRF9qjuzN9slG5tElC3daNF8aYnUa1lOw79/guq1AbekvJCf31pVmSjRPonL4
+nxj2jtAdKER95wpeD0EjyTmgSqFXam8luAJONVHXfZtxuvLRFaym1FfUyxxWuUGu7tMiGmaw27z0
+Pvf+H2dXAlcqbiy3XUmisn5gaqBolm25Y4U5WMVru0zwurJ7vDIs+6rHwnHF7MsRyk/Z9SXdRbk0
+Wyd2pRMGa7PBavexnndZ59hjr7vYslvvjtzeTlel3E/3JWmqEHghV8Tcya0P0lkhSBQtDNf98glV
+90XXcqusLoeadln7adFJtbJP0JSmdKPh8Vm9ueA67HG0B255le5CbpNUJVE5+ke52cwRuoEeI0dT
++O0I3q41zFNG5EyxhBaBWzZKNahaMJPUILGdjszfdZOm3ixLUHx8W7JSLkswMnSXBuvr2LdoN2l5
+qripJCqRsrSFJGZP9Ho0GcEr/Mr9WJnknNoGOXedotfI3QDBjv6qJR5HINMY1AV2ORTZuGNAVNnn
+JTP1WBbXfKk2Qbc7rfAG6GWiPYJdNfvdY624utzQLFJujdyQMdpA+AXACnb0HCm9kcl9gDlHOVIg
+buk2aP26FswKnsu1FJDLITsVVNfX67Blm3HqYXVebGqYp4dpDfFgZX2buFMem7WLbdHN043qYUrM
+LT1GxSvkDt6TrDwoHOErmmeyMhbE0MXcmxaBSHZdgECEXo7MX7bcwYQW0pBU2QHExApzucpRWsM8
+Nf1ntIbnYn9G7VO5C7vemC+JWULXk6oqXl+CtyM5t1TeBL2BSVG9wdDkkKU5obBqchctYCsPpqpg
+jJyRO9NMuVPLTptEhr31w3a+rfL8mdwZ2A9820LJyrami128A6W3ddol+siASi0Jq4melNXQTybS
+dANqn4lpoJW5DIplGGxuwGlijoooza53iplNLJsI2unq6wULLxdgV83z/lFCd8I7gZXglYgjOWsb
+iWBH+VUFsQ4RVSswJ3huYHq+yku7wO9MiWOUu2Yl3jFxHUh9uUQX1FCS0kkzm3fDvq/mGrq7eJlJ
+MwsbjTUJOVubaZtdXWRuvPOJONZEsmwGH8EtW4zkMGAcAtPE0PAaNd2505Zt0+WO1MtWSX8m9s2t
+hcfwtiRng4udMEzz3oA4kbIMSbolTRtf7odNvvUDDVNDiWpomgb+jt442k7oTOVWymbaIL5zHfL8
+3T4/C7vaC103f+PEjHf77RpOJzpnZWRf+4Ckvc2kLUWt9HL/oezVLUeZ/rec8k7bHpo1jG7vj93u
+BzlC6ZWxH8C7ycxaiWgLw4PWBXFHy2FgOTNjaEDtKE5l48l0pPKNFIp+IgGyXAUud/G/uMXhXjfv
+v8QbyvcZzfS6Ca7SplxMFMz0lGr6fhGaPuiTo16Oq9800iHb+r0b9XsZynamp3I37lWrzAnm+3jt
+zvcb1W/+EcQBdjowN5BcvzRG5nE0fLQTCJXed/oGGc/TCjLl+zbsdMfkwXtWbhiwuw+1n6yef6NT
+D8ei6hlzBkgvXwcEclUOQVG+GqifvhbI7X1Jzkk3md08We19TVddZK7f1JXrd1jxClVQz9/xFKaj
+ftsT5QU00zcfPZV7hfxpSH+e8xeZb/HufzFZAVwTdf3mrs13dxUEr32H1+ZG7juJ9lVz9QzxFvOM
+un4lW67Y52Pz3WzPvphNHSP0cbCrI5jt9L16/tnhquYPfeHe7Z2/0Pw55sPfnrj7HYqb7xS8v/Pn
+P9Su8y+xv/xuzCNUfizs+4CeYX/HVaPF/COb8/Qvhs/f99/99N3TN3/4rzLb/637ljO/++7vP336
+8emb//H0j6dm9a9P3zSrP8sPtWrK8Yd/Pn2jVn/43dM39Odr1SS7cimulU5p9Vc52awjs7WVV83a
+JO1XRus1E2y3YiKyjs6sjFJrueix8rzWe6NWf8Ku4Xfm3CtvmzWTm7TSIa29dtg5v7YxGs6Ut1Sc
+cetEKyyG2qs1nX85Z4xdMX1Yy3cs8u5hzTzJcyasG+YLOBDWOug0m8WA87Qpa6N4Vke3jjr6lW/0
+mjZbrzS4mEwlAPJ5eFocBVdierZyMa0D1gDkrZKMQ4wYBrUyRq2pmtgBSofi54tzf5FzZi3fgslJ
+s5Z+CEu7dkxuykfS8LrVy1H+06Gh593+D3z9Tqj6L/xYN8av/t9KNav/zumFrsej6+9Pv39Kq1/+
+avWH//n0ze+fFGzZQhZ0ff/0jZ+f+sW3B5mT05dxh+Wl7P3i2wv5q4YXMYi7F3IoQ/SSRTl7IY+H
+qCjv+PnpF9/+S/7xp/6HP/30w98+f/fjP1e/kfOc+/G76fdf5t+u8j9++tuqZtgf/uPTr1b/8m8/
+/fjD5z+v/pO84D+vfpm//9sfP32bf5u+/dc//v3Tj//30/ff/rdP//y2vurvv5peJz8kCf8yf/7b
+51WwqgqlZGtBLJsHGFR+cSmUKNeQWmQgemiiRhhpbUIDbYykpdtbmQYFGBOLVBplQgm7lNbOWM3J
+uA5WB0iDiwTN3jF2KSqEohlj3sEjBacbV+PVruXiJydFgUUofh0cwvIMoVYhrrRHpNUHFOO8r4aO
+cfUIUTHASiHEiPNN4P0bu5Y1TGQS1gEEkJDW8gW0NSPFdQJ5ITUCAIxxbTy/uIS+FM4YPkj58hrc
+cyhODF+clFDXcW29lo/wax9FcZP0hPikGaeXI/2nQ8PPm7V/FHLq0f57Ye73nz9/99dP36/+/ON3
+3//w6fNPK21+tfo1EUd7Kv/qpOPq1zKgRAPvJNqsFbj+bKnJUKKS4+U2raPf+2V+SgezNuQBiXMd
+k1+1f611omxxOyzZ5yf2ZInBv/30z798+nb7qn1V/oNEBq2Tq9IslMZi/OEvn34z/d5++vMPn+c2
+gyTHy6hY/2uDT4tstF79b6pXWAUnCfHfD7+g/F1fNP0DL7wCnuQpy1E6nfKR0uv8ZsU8zhtant8+
+fYT/w47FfDFfzBfzxfznm188j34E5xfzL8D83VZvfob5vbAv5o9mfkvVvbv5fYduMb+G+Q1k8wjm
+1xi6xfxK5o8jm0cwv+XIL+Zvmt+M9y/D/HGI++LNH4r3D21+Y+K+bPNbEvc1m787cV+P+X2J+5rN
+78v745tfb+QX83Mft+T9Q5jfbOQX80W0Zz0eYeQX82Wd9pXHuw/dYn5789vL5jbmNxi6xfz25teW
+zc3Mbz90i/ktza8km9uY33foFvPbmz+C6s4yf5yhW8xvb34v1Z3+uB72xfwDmd9YdSea3wb7Yv6x
+zK+turPMb4x9Mf9A5tdT3emPe2FfzD+Q+bur7izz+2JfzD+c+buo7kTzd3d+Mf96zC9W3emP6zm/
+mH895ueq7izRXtv5xfwrMT9LdWeJ9gbOL+Zfj/nFqfLY45bOL+Zfj/kFqfKYOG/v/GL+9ZifmzCX
++r6Y39L8xFT5egr9oNgX8w9k/maqfF2i93V+Mf96zF9X40HRPo7zi/nXYH5K2nwm2sdxfjH/esxP
+l+g1Pn0xX8xff5xY30+v8h8I+2L+IcxPrO+nS/SsT1/MF/MTzc+t8g/l/GL+xZu/Wd9PqfUfFPti
+/iHM36zvp0j04k9fzBfzN81PSZ4b0b77py/mi/mJ5pdV+QdxfjH/4s3frO+nV/kPh30x/xDmb9b3
+c4V61qcv5ov5m+anVPldfT6U84v5F2/+Zn0/JYV+UOyL+YcwP7G+n1vlPwT2xfxDmJ9e5ZcroYv5
+XcxPl+hLfd7d+cX8CzY/q74fk+i9nF/Mvwbz09Pm0pQu5ncxP12iB0V7X+cX8y/e/MRU+frjXs4v
+5l+2+Vmp8nSJ3sb5xfxrMD83Vb4p2ls6v5h/8eYXpMoTRXsD5xfzL9v8AtWd+7ie84v512B+merO
+Eu31nF/Mv2Dzn6m6C8wfB/ti/uDm76i6i83vhX0xf2Tza6vuAvObYV/MP4T5bVR37uM22BfzhzW/
+i+ouNn+ooVvMr2r+OKq72PxeQ7eYX9v8qrK5l/lthm4xv5L5vWRzL/PHGfnF/E3zx5HNfc1vP/KL
++bHHLXn/Aswfh7gv2/zdiVvMb0PcF2l+X+IW83vx/rDmNxv5xfx9ze8rm3c0v/3QLeaPZn571Z2u
+wAcfusV8MV/MF/PF/MsuUov5Hc3Vi+OWn34lc2CI+Utsh453//Trms9u681h9g7OiA==
+ ]]><![CDATA[
+ +fzkSWhv5vxrj8nDrfOCxpbD7R12OjZ4d6Fueb+p82+ab0mbYbnGcwSOOB9iLr+EcsjTW8T7aA8S
+ejfR7hBX0bmCLDapyU3bdBz95pC/Wo7MkTZwvZhv2d1iPVG6V8VeqavQKjCB1TcDTyillUScMjuH
+VvJg/tUMG8RbtH6P1E3AnhGi5zj/+mMTMnoiLuCmYBsBYJRTQUWVVcvRlUN+yypxNijP87ZiB/EG
+7Yx1i/Qlne/i/Enmc9SJJoU4gaZxPAKkx5xntbbaaa9DOTyH44yG2EYNqi+IBS9od4ACUz59i7Qy
+egTnZc6fYD6Lc6ZuKOiS6nHf6ahbPTD82hhjy2H4XeGmtIW65+nMi3zBK2i7glWYNRPSSugLkLui
+vdj5tx774Dr+tHjXa/l0qOpA5kwynRmtstpOEPmtMaPpTctzgVcYBDroDqiBMQGoiFZ4TbAqnEqo
+9odxXjXT7uPriTmnMh/qgaZNNANgou3s6JQzzjrHfxJx/KHwceCpZAPnBHFvMmhtwdoWUg3e94XQ
+mU5Ayqfv4jR7OM9w/u3HnFZ8IU8hq06I0zohwQhpwfZASa73ylvvfZgOx18a9wbX8qznNY3tbbYB
+c4ZEsCbjjdZjQeqIygE6RbgbnBPIPYhze3Dh4zn2Sp8tmUXE6VTHmLforYOTAccHgGQKnA0hJMxD
+Di1HDokTLhiS6OA7n8Bu3Og6F2FYgTXxBqrAdBDa66R9GTo1FtlWnBKckmu3VL5C5Pmi3WqzbSRd
+ECptwWcRZoKUHrdH+OqjjiHm2MUhjvw3xD62MXHORR3G0FXsnuQ6+hZ+BWtmeDRIo7UEa1voHAhR
+D8hKpiuRKVSm2ho9R3kxcc/pk9gzKpEyM+BGi28osguBih2jYE8u5dSnMROfHIphH/g7p8gzhiLQ
+g9eDdoBcAdr76G2B6SRgG9vCaAPOUHCmIloJTqGymajchbih8fKOutAn5jDIm3k1aD7doC7wGWTZ
+xZBUSsAJucsjxd20OMpPTdEbc58lXeSYfTYg7lMCrYbfBLOYI2KGCUIV0vUIt7W+gPSItiMyjchG
+JCt5Vr2G8hzidhFW+gYGUbQ5mGS9I3kAbojifPKgyyALbdeOHYm1s+UwtDNNO3A285yjEI6MQcwW
+oB202sI7qnYoOAdLoEY6gxmnQ7SIhQyUobKhcMYJYjtFpCTqS8Q6g5sbMzvRF9RI4rSWzE9eGYi6
+FuoctCVaTN/lbqDBpjqWQ8zpxsau79oudaFznW7Htm9T68E65AypGkojhPaEqiIvOeIzFZAiGzuS
+hjTV1YOiJTDVC5RHaTxt8aHml4jXmrgS+lq0mXxJF3iWYoaYtgNd35s+9Lnnl34oR8/vLWci5x3P
+qm7oOqD6TlQH1hZeDazm7NJIqFqEGwlRwTkg2obaopGCMwPVSG0ghtrTSuqZxXoWjbv1fStQBzMR
++rQjEAO/JvSDLvsuQloElRqs8Ir5UJLoEPjTcdIMmo5TELe80Pe2YM2QagpMT7B20KlSm4S4glMh
+WkO2tcImedYj2IpS5NrihKZQds9pPLe+z+qMJM/OCHGW3OBTaGOXYKdtuwC+PDRASUM3DMO4OYbC
+ZDdknokCVrAbeu4RrBleZ6SemUcHnZqUFAjQnAzVxpFtPVRSZ+kYBislEpQBKFlbqkhi1KtYtzSe
+sewjL6wC7YpALY0EdLiRWZFJLvvWkUbGPkFdGKS3GcZRjxSQ0ZXDlsNwTtFKV7yCVqi1hdQKkzfp
+JFnBqCZEBWdXRBuTFKAmRBJKKCh75NobT96JFErESjNfaKx5Xpg8Vapz/En1K/O4nvJANXbGO0pf
+Th30dfzw/YjDPSDsSMEf45jKEctBehxl5HnK7aAVrC28ClIFzSJdS0bqCsgO0TY5kYFaqJSZFIGZ
+JpSOoDRUEUMNcZSPXGiUaNzPOEeJ20foMRzRO6na0Imhzhz61GQ6mU6TMmXkcbLFbagFFyl178jl
+qIgL2glohVl4F07doBFuJziFTzJuQ7Y1UGmpKJaWSIdIhnVEpCa1NsRjo1Pt67oSkLNUD2A8Fn+C
+HYRSIAhBJj10L50fo0agEoQSRCPeDTgs4CiCY789hLieU/WY8c5YK1IIRbxC5wyyLaIdOlmzKmw6
+AtOBEi6Rq6cp0C4ifkf5sNAo0RiLVPcA1hr3BsKSYRTtmSG2enJkEwwZJpXmBIGiLGIpF/pmfMOL
+Y0a8BSqqK1gr0sLoHs6B4HRINpNn+wLRIlcdI3nHlCKFWC3zksYEeroAoKTslFXfJHGejFSEc4bB
+ngJhgqf69SJEqnpGnR0sBLzdgNte1nkd60zoTOcEsoo2DKaw6cmzubMQaZGrofCO0YZEbjXQOJAU
+MqWDHF9isWm6uvTxFsbdBCoNmjeIQdJLre8dbKkSgh3Jf4CBWOgTCMceG+z7WCvSfTIlOCuVfMAE
+0VAuZfUgJyTuYiacrY+up6fzSNVQODTFsWDci8RnxL1EKDOIbkqg1gdCb8j0052lGRsY6HGC18/O
+v/14TmgBuStaCU5hsyPPOrKsoGxogVQbyVgutYXGSDQ26DTR50i6oAV4jvEYhbvwrNQHqbC8FfOH
+GDpyqKEESvMlGWac4q8/Du7Ytch9pLtkCpV6hiiiJV/3jtTj6d1tztBoCUgyHhnH20z9txNAO2Ub
+91pv8xxhLOssngam34OXxnIf9JsIjz92RTvjfIkyDqTrPvWaAqLbBI0mxdgG0TyTLesC0zPBmEsw
+GkpGLYsvZLoPT7C/ifA4vHOuQR+gUsy3KFvCQYtYC40d3U5Imaa1Yd4sADNC1WQbukpqYl97m2My
+fSHRl/qUqdDJEj1M3Os4K8qZSEXeyYMrNKou1cmII+N0G4zORrJNo73qqfsNMj1G4VQiT80xruaY
+LbxziDsAcSvairLK1ZXs2hUaW7qdlozjiUUAklAbr5yh8kfd195GZNpP5eIAwmNFoqwaHSkS/Skp
+9HTsW4g1IoPQKNlmIO1YunRH36rBmJK0VJ2nL6AsNhSMSGczUyjFYqPQ58u8h6t83qnyjh7bzFW+
+jvzFj5fY9/NOpVGiUaQ6EIsdJFpZmSSdSp6nFQ/INOteGyiUQIzHRPq8TZMysdupdZs2Tbpsz6d3
+r1F4qWgniGJemZSAFKm2BaPrMkUDAujhFAEnszOhMBCFjkQ6KfRQUzrP5Hf77Havz449fQZqGWuZ
+iDuN6M8k7hDKLY0iVQFoSai6E+LanJl30NskKPT0NXIVSNaPZpEeJrBMlAT74bmS7Qzz+K6IVBcK
+DwD8edlmx3w3IAWj4c9EtkmUDDIeFCraPBi1MokbSDJJlVTZbRCqAwinye7eTDeWGGQEZS7DxIbJ
+fCrdWigTwd3ZxM8kbv+xC9CPojqmHp5cYyiKTKMIREexaKSVpfm2JQa7KQZfwNstEy9XK2zycuWB
+Sk/dLXPdpgCsJHbzNHA4Demp2GcSJRKR6SAVuCHT5JZOnIofg1z2gA5JF5pi2JZCcRjhweUmGx3I
+pDWi9JSJ+9DJnG2kVHQFoy+rFe2M88XU8ALi9gmcss2MMNGGh66VhUnKYQ6B6T71rGSZjrT/At7+
+bGLKMmW9cJjWC+XSdAUqC06665l8C8BWVpvk02eUeQ/nS6wHiH27t9mPQSFwB56MfKCfeRXhixis
+jQwKlfZgpH3JLvuSRFNH7oqdpRwGOhpbVgxlTc2WpZkKcgOzjvxxrK8fO0sfczlUfJqnUNgukkQp
+9lRCVyX6Up+Hy8TLFXtHnpElX5rZ1OB/36bOdPLpCLUl20zrosi14twusc0LUfPyzLN1m4OoDkz+
+61RR08zEkkLHukLOoDMFNkFRCAda7uaNHLOj0Dr9r1ddLBS26JNgpl7YpHNDvQ8drS8FI5BvGogM
+9BkVpBpNFW1FusWaX+Ddxb3zt5jP63LzRFiqfA8+Qxk00Ndl8gHtKOnGZWYU7Vwk6trF4SKxL9KZ
+wmiMGS1vw5wiRBFt0mnIqTV0NTS/oPTEwzAt4CcCs5+QzovBfgNVJmLT8mk+csyLq9vlt6bMKDyp
+pS1zGTLoSBEkJUQp8U5mPCYwJaxVPh+p8s3+otN83TNrrVvjrcbTjmmhjwZKMqPWt77tEStVl8IB
+SPn0Hj51YTQWTntZ0t+gnRe//QbzziHYQ3nCbdaKyxJqQWeIvCgzpq5Bm3HqtDtqfM/76nIFvGSY
+4ehcYp/CcuG6XJW3ejAy8tbgXcvMycBFTpbC70Bp29w1fFAit6relgtNPRlFERZyrY3aMgj2gnbG
+K4gFc0U9H7qcnRf7twvgJd4T1PVU9x7y4jQdVF5Ps6WuCHQbf3vw9tcu9nceKFgfqBKjiQAckIX1
+Q0jQ2AGxyyaL8y2j2iIc+AzlYqEg9Yx4K5fUIFXQ2oI3VMS4Tz2VozYnff2Dk/MFm+1FDE/z2fPG
+zbT0JPN5FeivZD5fpgP0MNJo+7Iq82yudITCSaPCuyZ9CsaBtlTRelv8jEGFHDVEqhTx1+aEz6YN
+bVtgegjtuqFcCe3NhBa6SRE0sQUxWaGg3h5ysU2Vy21dubhYVg/kKlSi1xzbyPxhu3aovXfJdmBx
+ZUEm1fWKXXUevzaxlWku27YEoKOrcbjq0WnwjRfRhiYE5OpgU6UAn4pqmUHKhJRGv17Wtox9YprV
+l6vAusB1vUQcGCLKk4txufwrF0zlIiJz6nJ1OBRgLTE35pgZSrKUC5kwLXuNZAOSMh55Glk1nOg7
+tuC0B/Bp2hS6xYgCmB9m2f9jGxsFJUQ63wW5/DNGS+M7IlqiI8vQwWnMLXWBCQi8CtqBUFWwS67q
+Sscgk0se8FX+leYy8pyt1yYEWWRiK9eBbRroqkfS+BAs7VRD5pTVe88c15alGLVdEp1T5WuPOQ4r
+wL7scWrrBi7RvKFDbcouJ0v1aLwHpwqeTqeBzkSQMXtMSbBmTSaK+NjXfRilQMNvBHML6n5z0H0R
+xpHnLFrcv5DfRht6KoJ8On1Ldnw6ld2VKzA9o7+V56v0PW9KdzFuNuHpgMzmbWqJzGFdgkxTROt7
+GPUhk0p09FEW+5uCNqacurKRxpS2j+iFYBLwdLQlWXEy8LQm0qbNGGCTnRiJmGuB1pI0M11npjBk
+lNlN4Kh9T2Uv8SkX0LYUzgBT3SC33UVJ2aE4yj7DPG3H652i5GZKnPEBX8YCNIUO+erSHsQA3paw
+GwlYUzY0xCQPUPGTmR1nbFKA6mJECapspdG+81Ljpo0JrTWGZFAuLKlywX57DfQouMPZRm2yjZ22
+wXbTNthEcaTv07FsphTnTSJ1KOtgVJBaF10HVjIdzUZLbWgonsyaobaD3CYq6ky55h/FefmHPyxD
+0RBlLS901LjeJ6K8YdisHRnEsq2E2pmgTq7TW9lu8VS2Js4Xsc/bNLOTbSqTM0rFewf6WtkQaxlK
+2RCrjS8wGwilPAG0cRJx8BpRVk+o6rIhMZIkOj/AMYU6TDuE+a0p2/ZoCAGlyzZFUQ==
+ ]]><![CDATA[
+ HaQNDJvsZ0tla1Ai6sayx0uXtJn2rtCfQNxhqe5DlG3oZQu6m3A2ZNh5668y1gSkSwdFf2dBmxDW
+AF5d9pMGpJadpAvXg6PuW6AH4C/Zehl4CW1h2WfqIG2YNiSWvV3Txi6jivPzZpmT9nUdx66eofTl
+PoJ2xgmZHrm0BaYGJl2vzCK7gtXgXMDFtuBVBbEvmDOoZdsXZa/823Iu8pytiw9MQsuOUgNp3bSj
+dLs5rz+w2+ks4l7SuIFYk9V8v0TBudl878vm+462oG5S93iWoLXf7OmW5gS3Q91MxNFNBw0m5yLP
+WV7YlC3BadoSvLO7shK32bF27na117A/v+Vl/6aQXmCKaFXhdHujQY97I6Gqi4hlU34kv7ew0ul+
+56CyC++ylhum/fp1/3oqO/Xn7bHts+2xO7o8n7gD2Lcotzif3/7ST5RqvLJqWgsQ7Kkg7ibM8h5q
+52iIL7n9oCs7fjeb8stm0ZIq22f7uC/aovb2Q70EKea7SPdv9RG0zXRvjCCumAV1KDQX7PWPcgvJ
+dMfM9n6Z3ftHDmxQfxfijuPcp9PuAA3zXVppwrtFPDR1RrjzLuXMsLkpZrotpi4+HLtj5GLnz8L+
+HOl8E+H2Zrv53rSZ3Ao41wK9e9Sn5hubXtzatH//xJWIO/ZQ+0Cf9m4tPHR7oT9wbG47rJo3B5Dd
+/7ZK9eJ4dn/oU9mKvI/b7px5cSPlPrAbE/eG+Uu0L1HvgJnncQdw3cH5C8yP430T1P2dX8zvZP6L
+4fP3/Xc/fff0zR/+q0yof+u+5czvvvv7T59+fPrmfzz946lZ/evTN83qz/JDrZpy/OGfT9+o1R9+
+9/SNMc06xWBWLsZ11Das/spJrdfMXt3KpbC2Ua1outc+qLTyDb8obVamUdhFw5mwJqfG1Z+evtGp
+WfMEJ5XiZcmvtI9rz1+c8evIM9qrtcwmOaHXPKuKnbPrYKY343PTSjs+x7mIW2FdTviGj0niZ8Mb
+BVvsfFgzv+RVwa5VE+1KPPBeK840a9m/jaN67bxN5YzsyRFD+hVez5tsX6bNmpkjJ/jgxjhOpHVi
+jlU+sGGOVOxenPxLHUKZN3OSYYvKruQMU0tOuHX0Qa9ejvKfDg09b/Z/4Ot3QtV/4ce6MX71/1aq
+Wf13Ti90PR5df3/6/VNa/fJXqz/8z6dvfv+kYMsWsqDr+6dv/PzUL749yBynL+TuF99eyh6WF/KH
+5aUMAvRCDmWIDrBYB/QSHg9RUd7w89Mvvv2X/ONP/Q9/+umHv33+7sd/rn4j5zn343fT77/Mv13l
+f/z0t1XNsD/8x6dfrf7l33768YfPf179J3nBf179Mn//tz9++jb/Nn37r3/8+6cf/++n77/9b5/+
++W191d9/Nb1OfkgS/mX+/LfPq2BVFUrJ1kb7tXJGHExr4PsS5SqtKf8BpXgk4zxSYSRjgl4Zcto7
+xr5Z26axnHHrlIwuYcebBG09JxNcekgLat1YjSzMWm72g2679smKlpq1Ct7UMI9rudSInecXUUlg
+fOuwOeNEcIZfcEAoUDG6GuUJATfCv183DoKKUkMlGhmk4mZqRG6cUfLaEuRqzew+lJNNioIvcUZi
+I4CGuSMKcWutrOhUNN/EGuXPT/6lnnSNwYuI7tBssQ1F0R71o7uXo/ynQ0PPm7V/FGLq0f57Ye33
+nz9/99dP36/+/ON33//w6fNPYPrV6tfgpD2Vf2Xz2erXDl7Aq9YqobJafevP9s+CeC1ryKtf2xLA
+23/nJ3RgWLXyNRckZ1btX2uJaNtJmS/V+vzEniIx+Lef/vmXT99uX7UvyH+Qw4j4yVPpE0pPMf7w
+l0+/mX5vP/35h89zh0F+42UUq/+1gaedCCKt/vdK1Bq85MJ/P/yC8nd90fRPXBlegejkKctRmpzy
+kdLm/GblSIlMr//w26fH/rqtxXwxX8wX88X8Kze/7/pA/eVe2Bfz+5rfV3Xvbn7LoVvM38X8EWTz
+COa3H/nFfPdxL94/tPkjEPeFmd+GuK/T/KrEfXnmj0Pc12l+L94f0/yWI7+YX2B+Jd4f1vxxRn4x
+P8v8vrK5kvlthm4xv5n5bWRzVfN7Dd1ifkvzd5fN9czfHfti/oHM76W61x+3wb6Yfwjzm6nuRPNb
+Yl/MP4r5tVX3+uO+2BfzD2H+7qo70fwRsC/mH8j8XVT3pvmVnF/Mvwbzi1V3ysuu7fxi/pWYn6W6
+E0V7M+cX86/B/GemymPK/BDYF/MPYX5xqjwmzls6v5h/Debnpspnor2v84v5V2J+Yqo8JXl+OOyL
++YcwfzNVniLOezm/mH8N5qenzY1oH8f5xfyLN38lVZ6ePD8o9sX8Q5gv9X0xf3Dz05PnAzq/mH8N
+5kt9X8wf2Xyp74v5g5ufkkIf1vnF/GswX+r7Yv6Y5kt9X8wf3Hyp74v5g5ufItHrffpivpi//niz
+vp9e5T8c9sX8wc1PrO+nS/SsT1/MF/M3zU+R6Et9Pojzi/kXbP5Kqrysyn8g7Iv5hzA/q75fVuUf
+Fvti/uDmp1f2l/q8u/OL+Rdv/maqfF2i93V+Mf+yzU9PmMui02J+F/PTJfqKaO/l/GL+BZtfkCqP
+PW7v/GL+ZZtfnCpPkei1nV/Mv2Dzs1R3gWiv6vxi/jWYX6C6s0R7VecX8y/b/GLVnf7i6zm/mH/B
+5j9TdReYPw72xfzBzd9RdWeZPwL2xfyRza+hutMf98W+mD+4+ZVUd4H57bEv5g9ufgPVnWV+S+yL
++WOa3151F5hfCfti/uDm91Xd6Y9rYF/MH9n8EVR3gfkjDN1ifj3zK8nmlub3GrrF/Krm15bN7c1v
+NnSL+fXMby+b25tfaegW8yuZP4hsbmz+CCO/mH+gBfbbm9935BfzV8yvyvuHM7/lyC/mxx635/3D
+mV9p5BfzV8wfgfePZf4gxH2R5lcl7mszvyVxX7D57Yn72syvRNyXbf4IxH2d5vfl/THNbzPyi/lZ
+5jfg/WHN7zvyi/lZ5o8jmyuZX2/oFvMbm99SNu9uft+hW8wX0W4eN8O+mH908yuJ9jbOL+aL+WK+
+mC/mi/ltzN+xRC7mX5G5Ovm4xqdfxfyw+7rRYq5fHK+gvYPzxx5KzJ/hmQ6zc9i9Y+eZfexvIH1v
+5181fwlpF4yTQ8xd448ebjq2mPeA1qG7ivPHHxtY25HfRyWOB47IkcqRp6Mtx/SXmNen5YVi4Pew
+7hL6bs6/av6csJeg4gSnFfOOo28GjrEZDwQaZ8uzfXml4E4z0Mp7RfoqytOdf+3xDJaYz8i2uCpB
+AknAKKWVUZbDKa8CR5wPzMsvctLztLzI8HJV8PYFa0XqC8hK5gbilfL8LmWVsBmWgBomUIIdd33B
+k1WrOtWrQY3YKr3/UPg88lzPa1peK4AlYAvWpiAVTgWn2yPyDOdfezwHBl9zutgiQ38VVwEVVcLV
+HjgCxmqvg04661Z3utcD5nrgGMvPgVMdT2VeEnipxaQBbwdWkPKWCpBdgViIrLJ5E+Np2F9g2wDb
+EiawHL4UUDLygktQRZzu9GiUMcYZb6JJJpvWdKbfHB1/Z85HnrdGSiS+D5ilglWBtGXAHDSPBeWW
+xgMATydul7YNMDGfsdX40hBWkQ280mgHqFb36FcgRZzvzWi1tdZbiTibbGs723MM5ZDfOs4lG3mJ
+JQRHMCfQGjB0vJ0FSQdEIQ4u+4nJoxhPIW4Xm3lGWr+hTEKrL7C8TqI6IUtPuAZQOZxu7UCcGudc
+dNm1rneDG3dK38jfvZNMy9OBl2n46cHrrTYDSB04Wj6hYRADNA74UAHuwDs34nahAawWqS02iTGh
+TE2ECSyPLz1J0BZQI5C8S64HhGQb73z02fd+IPOroIMJthyG3xU5cuC5zGuc1yBugaqBGa0xonkT
+QJm1Ra5RGaQqGN0+xlOI21K3pU1SCJE2ARMtjuQAKEOHykium5A5Rr13Cg4El8LV5DvgmOBDCl0Y
+qOA62uiij4Ejyk/M+dNxWpMjh9ByzlExeowt7CZwttaic0cm8uTaBMBhisSprztVpDM0M0MT80qb
+LoIU0gRb1kOhrCW6hLAeWXlGffQWDgSUxc9OnG+iAUCOfRyTTjb5FFNKObWbI/N35LxNOo6xiwm4
+ivEQ7CDN3vDOxmaCM5J1BWNEqD0j71+j8HCNq9RV4oDGKaFNIk3UmAqwYFor5lDWEl2O0BFkyfeo
+LcDBCB8RV8dkcDynnrKvs8shp5xzl/ssqstDOfiDU5mnAi/RaUwdeC1YUzTgtL5FtAwiYq0AeyW5
+DlBdkak5gcJ9VcaJuIIuFEkaIq1DkF6wEf0tSvSuQ4cBwhSwOtoRYQpQmKcANSOoPI53eWx1a1vf
+xja3Xdu3A8dYDvmt51zmOc9rVJYSCV6fFUhdHKIDpfLeZTKuIWJ7bfDJFpkeoPBYV7mlTiJu3ECz
+hTZLmI3CmOS6pmDTiHFAihnCXEFm0VqfFTyk3LcKdwOO97SWurOd72InHXXXdl3XcwzlkN86zmWe
+9rxMg7rF0ECsh04fW2LT+gBA4Z3aIC41uKdOonAHnGCPUCf5xCFLQZdJkM50ZPxIYnQTsJE80EJZ
+iD2BFYEFVzLyLWQZ3GvboVO4G3C868YeiVPu0HCPRV9k2bfTv4lzoRdzXqLpPnuMAkj71iNhlzI0
+KjA6F2wypGySaVsyjUThBO9YmZjxuRJ1lbqIO4ZRGlFkZw16lO7CJRJ+gDTBpomxAcoyOnQISmBF
+qGk6U0D1fYOvDscTQGTk+4GpAjlqMKW8u80hfxnOKxrOAT4zRhaYmeLfQWRMIps4hLH024riSDIg
+03iKheRSe5TACVztKgs+zkAdNdBTAuyEjiTmjW9JIKmQJsBalOhzhw5l5CFsLMjaboAsW3B1BZIu
+YKgQQyKjtEWW/e6BeTnZ8nTiZR4D3Y8MiwdlRLAmB0mzIdVqYjJRqCkWotBQnTdHMuk28hIpRZEu
+W6pAok5EylquxLUkyA7aet6+Iy1mUmJAYBoldujQM9YCy6E0yJpAeYEkzrcF0TCMMgsckddoXhxy
+VjE7GnldB9BI/zb2Yk4PHpFqI104Mm1coZsphisi7acYPARvmv7rCZ+Q51WHNDMtYEc+ocYSbwJt
+gLaRESQeIE2A9Z1gL5SNtMsBXVVkQlYqoLaQyE4jFXv0HKEclABZp43lqKfkSXmRFawYt7yRQgdN
+59pYKmUIjopIWiDJCHFUC1vC8FiWmWOPtFKU2QKuRZdDaYkR5uATTUgfA9PyhCQjkeYhTQOsI8Zs
+oWwshFVYMCWgxPkZl694RvLhmDdHuzm25+QVAldaI4wbBsnDo+tIxKi3jx0ipVW1TEqIwUG5/Swz
+P+ZsI6yKPKUsDGSWjDgz+Eak6alvPRFnkVkEWibWEmHmap4fC7auYHPoKQthha7noLZgunqI8/JL
+vzm6naMtOCNvYJBrIhYT4QkBzB5o4ryIlkzqKYZ5k2VeIHxGX0fsRZQUjWQb+BN8hg==
+ ]]><![CDATA[
+ ZqunpbL4GAUdsRZIjRo1thtgQtlYVFhgifNhD1f3DMxw5CjPink/oYy8n+L9LU3OWGbCCnI7n47D
+e9lR64m+EXl2tGEjTUp06JzGZCCdxGxJe5HMH7qhFqlEpKk9bEKZPwDrGSRx/hi6faQCcB8e2UQq
+bOUwOv+WRF/SJ/M4Rfh5axzjgr+Cj2aJfNIhyx5oGV8NkZY3wGYlimxeIHvu+ElXhfYRNnyWJvA6
+6sdIBDLLoF1jWkGOidsEs127eIlQkufAdLzVzCiZ77RUBAqA5CzAGVKhYKcARJKHoGtLpOk90o7B
+OvuK2Awv89aGNBp7MSfHUHPpxFP0qFOXpQrmM68Wiak2CHYRKNMPSp+3Qj2T0GgTXR/kDV2iArRo
+0hdolbYNsP10cRJZr1zO26EvFYF2CLSlSBA3mf4sKs+039JNUDONEtkwY+oOItzGX4tAE8mzN1lQ
+0ax0dIpDmcu0Lb9r8Gkiroc4U2jbJ+0IrHMvZe6Cgz5pD2CQzs2XEtEXgaYSf97I+oF02g1N86E2
+barvcwhqyoNFoCMN1RhUNAWoY6RGio8mVQ9o0m2h1Vx3AWXHsW/xiTwtf0r0SX4xLVNNpobkvbrq
+K3ne6LAJQX8I4QYeryJ9eolap70NIlpKQ5tlQpNovUbirgefR5aVuF1oJzl/Onm5VhlLdpH82dGk
+MdnKVCjoY+K014bqlxOlbZmYEdYM01MAyU2Uh0B+6dPYKgrDAH2GOamCPAH3jLizH4exD8/EaUvs
+OTpwaV8GOlCwSAcq9Z1nrYK+SIHYn0ccJlDgOWYvpBeZRXoXaMz6RFfbEsqkzp7c0hN5QfC9Bu0S
+4mbq+jp0M765PfPMIZkvI0/mnoHqQIMWTNrQ12870JfTwJcImZW7SIYZkiJ9us6RPAfUOY62tsTt
+BuGZj2PYh724K61ZUaaAo2GidfFMA0W0kbrls5NBlzmErMe4DX2HZhE78CTTzgg9CPOE0HcehCNp
+bCwCbQ+Du5y4YW7MqjSlquuSWUScHnyGoMvEXh9QEVOMpsxxmaaW1bQSfYfr+0sC+1IB3UafphJY
+J+BvIDyfuOfUzXE3kKxt3xN5Ql4oSx+UhjE2ZE+6EIpD2ltqOhx9E7yKfc6ivQ7GTjmmZV6gymUR
+icBAgbAv4V1G3Aba3B7M1NVpUaAstJTxlsjzkMdYk1tk6D2ps4Oqslaomrrc99pC026RYEQoEtqq
+UiRClOaEWV1TsmhLT72fYy4mbnfOMEPzE3WiS+buveqkOaGhdXRlHeQJPllkyqanNYtvL/buTgNr
+H7Ot8gPNJW/IzDaXGtj2kRovRcLjTYFXpwMX0rZLXJ7QSdS1hbqOuBs6ZtJMikJZQWsKuGhbMxpZ
+1xPV7SzY26P0VYBzm0bIMonojRAnyZNyruljUGony1o1y9gpib4Sg6/VuC1t7TxfL9C6edml13Wl
+VLeJ2ZZJkao+EHkW8mZ88EDsjaU1m7WpnhO3j1BmEnOfnUsSlSyDMohB3Wk4E4V2o3z6lsWTKNwD
+NqfKvJGlLjGXePeGqHOFuoGKl9NISxaZ047eEHlZwMk8rgVfW0rDbuy9tsyrpyTa1wvoHVnGlDA0
+wcc4iTT3fmjwo1KYDwF8Sdze/HyirabKWZMVmhJVSqJuukRWiVDnUkvcWaZ8HU2nZfowQN4EbroI
+sRd7x68GbrOMxGDShpl8Z6kNfogqmVLpbfl0WLSwWAOxPdLNvFh4mBdeZtpCSZVqD10gp2SqXUvU
+JahzlPORuIuud8oKdjKnKeKc8aWdC7qvP6btOmW1Qsm0Yxapp1CkSG+b+0ph6bWHkkh3AB5efJhX
+j9odYLMiZQmQiCuaLMSpadHa5o6oS4W65AekGcvllUzLQnog8l6Aezphp9P+bF5mE2qaLAnv5Blh
+0ZZATGW+JDLdYnx5bIAJ9i22LW1+oDFiWuem9fieWtAzA22TJuoGqEtucCIb5raNCXrQATCpZJZ9
+8l4B93I2Ma3IkEk7k2hHAxTGmJkutfAYmO0yq6ZYNLJEUZvSebK7XeabKXsOrK/r0yiy72Nvy2Ij
+EWcgTtC51DFLzxQET9TJ1b/ROnRpSXH7V6kLuPky7mkXcufV7Lqe1pdVYqMLi0OZtNdNZD0ypX/i
+ZAuJu6sVu+u0wKqZdl6TFmwiSUeFY9KF0hVTg0Ayya1BkxZoNrZRk1BGqp0ErNM2ASPCUiLuOrL7
+7k6DV8k7fDVQ7+UZoTAShdbLtMIl2QphaGdI4xIyPUSkzZrMvP6+XWo35bLCfFHBTVdOQm/KYiO0
+WQpBbFXORFwLcYIuhcYHhOlsR9S1pJROO9oVibu6TyTUjvrsrSKbVmaz6OSmQJRltVyW1eQaeiSb
+MvYETkcklhW1aZG3Xikp6/Pz5ZKWEQhFkPR4Ikn02Ha+a0iULg+8Z8N7qpjowGKBJlWGcjcgzN54
+3jIW6kKRpsRdmLZQHAF3vEw8p1CisCGROqvtiEaH0EeRDaGYwEhaIBhTWRX10xWweuxc7CJB9uWy
+nqnAhDhFtIVCm6V39jRgAeIDxAtxAs1Ty7d7Q1KhruhSnPc7Nf3MzVpP03bcORDryqihZ4tMKgxN
+aUOwDQCMLeKSZe26pg1IZo+y5GUOXLBU5bqs2wDryvXnRKJsp60EPREn3QWyrOgi5aDVruzv8dM2
+rfQ+27S2F3XbctWsR6NNbUqnxfvYxL4sbjdtpmTEri8XNus16HLFee9ys5EL6zId8BUbkszkkj56
+aItlL4h2LS1KhyYFmibmPLWuqBIcfd0QGzfUnb3P7vC1iXplcL76oonDRMW35epEm0JWlAwDRDEv
+V9zpA8qGgXnLgEKtdcvAgBodpAkwuaCoQi60eVJRuR6nqHKynycU4iq6iHyqMJ9Tp447fzqF07Wz
+p7ItU7JpMma+vESubJk/KaRqcobIumWiPphw81fZ85Fl5Kc9HwFB9gVbC7bBR68KbYMNVpEqXYk4
+tw/tqWwSC5uCcCZ1x7Dv7j1oSaV2c31wgETnG9/Re6uy7JM0sTSA0+eY62O7aQeeyfwjRduixjQB
+065z3jW1OeE9EaWhQUnbfYPPN4Aeou584vYA1vZgusZbykVbMBqEGhwueg+NkWj0sUtN2bQUylF2
+XQl22XgVo6UhaemDFE1JKKSBjXbP4XWetgoGqsBQdrdO0GqRegXdZcQ9wzjFYZy2V9QdCLpmG2t7
+HB3LxhGaYZKL7KQzsr4cZT/AQGqct81FGuWB/sDScWUrBRqfW0N11f1mu2cim5myPbluwt5CO2Gr
+0hmPXfPdXRbzFhLp5KVAjQTOMG3X8mUf5Cg74DEnXkb+bDdbHwlaUohsfbSkSAGmAZZKtM20SRXo
+dyNuH91VbvpQ+wCbsU6BExnV0b1pWvC6LY0pqAvAYNbIQbHj9wgog5MdsBwppDeyaoQg1YRNbzYi
+V9q6aU/5UWjvSNxhjDUSZYtah1QDlV/2FXaANGUSChKZSMn1ujxtPtbT5mMHZSORFnd2WPuyk7zQ
+VrdlbkV5ZeJeAHyabnzwOxvVEsV/uzHUglT2ktdDdo8HQJmydVxUBzJHM9SovtwR4HawHaPtusS9
+wLjZu1y3q+kCsVMiWnC6ckdAWY4qR93+H+v2f/ruHsokhdhyj8MOsLmrvIi2d8Q+79GedoviXN3j
+O++mn+/mmI56B4cEbL2Fw5d7VeqdKs/vU5lpe9cad7a5ek5jLVLdzo0eckeOn26/kRtw3HQDTrOB
+lbfA6jzuObbbE/cS5bzRfv9+lr7eT1UPMT98E9V8r9jzO8V+Zld5kvOnPNR2e97unRLzLWTbe+KO
+3gI3X9K6gLSf6/yJ5i9vvJpua6zT/7dvY1THgN2RuBfm+/dh7d+Vuntsks48g75g8v3uzp/62Pi7
+df71W4nf9dNvaf4Syh72K3/6Yv5VmHPqF8Pn7/vvfvru6Zs//FdZX/it+5Yzv/vu7z99+vHpm//x
+9I+nZvWvT980qz/LD7VqyvGHfz59o1Z/+N3TN8aodeOCX7kQ101j7eqvnFRpHeVcVGuvmrgyTVzL
+HmjO6LWzMa508mtvk+VMs2ZuElZ/evpGR7uWDq++GfPJlfZmLVepOaPXzL8549KaHiKtnLd8iCt2
+zmFnwsq5sHYxxWKXguKdTFqHoN1KB7Om28fO+HWgD6sfqNdB8ybO2LWyzuGpvCuOWnkmcUK5tVKe
+d7JxjYPFzmi3Nk68dxb4Tq9kHGySD/TNmjlf4IxdGxkEn9ZJ21jsnp/7i5wzaz4oFYiOXh5LPUEM
+4PI6rF6O8p8ODT3v9n/g63dC1X/hx7oxfvX/VqpZ/XdOL3Q9Hl1/f/r9U1r98lerP/zPp29+/6Rg
+yxayoOv7p2/8/NQvvj3IHKcv5O4X317KHpaX8icfehmDAL2QQxm5lyzK2Qt5PERFecfPT7/49l/y
+jz/1P/zppx/+9vm7H/+5+o2c59yP302//zL/dpX/8dPfVjXD/vAfn361+pd/++nHHz7/efWf5AX/
+efXL/P3f/vjp2/zb9O2//vHvn378v5++//a/ffrnt/VVf//V9Dr5IUn4l/nz3z6vGOEqlJKtjfbw
+4gWJXysdU41yiAieAQxpzWybkUcXwcWiiyYJ3SiF1qPgUjakOciTN/W9dNNoyPYwoeVljENIijNw
+Z50vMrFW2xrlCQVEXVQSA+8mhiHKy+CaST6GjLTxvIPoxkZTDaNZy/ZHToa1agyOGtyRD7Tii+OM
+QqCiIovceNsa5GptUuOLQEKAWaPDulHR7whEA90iNh/XSblqtn9KQlwTQk2wBSAaseWdXOINHLL2
+wePBiyH+06Fx593aPwor9Wj/vVD2+8+fv/vrp+9Xf/7xu+9/+PT5J4T2q9Wvm7WhnZV/Za1j9Wsn
+8ZtWaq0SQVBLb/3Z/lk+CxIh79eMpWUqs/PL/JQOhFYjkRSadTRm1f61FohyDeiwVp+f2NMjBv/2
+0z//8unb7av25fgPMhgfNbkqXULpKMYf/vLpN9Pv7ac///B57i/IbryMUvW/Nvh0kPzjV/97xfDx
+PxLhvx9+Xv6ur5n+tzI8T6aRJyxH6W/K50mH85uVTUnWKf7w26dH+uawxXwxX8wX88X8Hc3PmjG/
++6cv5g9o/rNWSk57XM/5xfxK5u/C+/ua3wz7Yv6m+S15fxfzxxm6r8H8cXj/mea3H7qvxPzaxD2C
++ZWG7usxvxdx9zV/hJH/QOaPQ9x9zW8/8h/F/Noj/0HNbzDyH8j8liP/oc3ffeQ/nPm9Rv5Dmz8C
+cbc0f5yR/6Dm9yLuxubXGLqv2fxmxN3e/NpD93Wa34C4W5rfcui+QvPrEXd78xsP3dds/lC8n/u4
+79B9neaPwPtZ5o8zdF+n+b14v8D83bEv5heY3573C8yvhH0xv9j8NrxfYH4D7Iv5BebX5v1ck1ti
+X8wvML8S72eZ3wv7Yn6B+TvyfoH5fbEv5heYvwvvF5g/AvbF/ALzn8n7uY+Hwr6YXw==
+ ]]><![CDATA[
+ YH4Z7xfI5hrOL+Y3Nr+A9wtkcyXnF/Mv9erAlZxfzG9vfhbvF8jmqs4v5rc3vyBdnCibGzi/mN/e
+/Kx0ccrjls4v5rc3PzFdnCuV2zi/mN/e/PTUsUyFFvPmnZZ57+X8Yn5L83OlclA293J+Mb+x+Svp
+4pTHfZ1fzD/cet19nV/Mb2/+UgPLVGgxP/h4XQ/LVGgxf/Y4JY0sU6HFfPM4RTAHZfMIzi/mtzQ/
+XSrPZPMIzi/mtze/TDAP4vxifmPzg1XmdMHc1/nFfJlBL+YPa35MD8sMejF/9jgljbwim/s6v5jf
+3vwUwbwim/s6v5jf0vx0qRyUzX2dX8xvb36ZYDayua/zi/nNzA+mi3Mf93J+Mb+9+cF0cZlgbu/8
+Yn5L89c1cJZsbu/8Yn5L89OVsKzXLebNFb6s45bOL+a3ND9XKotsvk7zs3i/WDZXcn4xv6X5Bbxf
+LJt3d34xv735BbxfLJt3d34xv6X5xbwvsvnazN+F94vN74t9MT/98b68X2x+F+yL+e2X99/X/GbY
+F/MLzK/H+2WGt8S+mJ9lflXef6b5tbEv5meZ34z3i82vh30xP8v8xrz/TPOHGrqvyvy+vP9M8/sO
+3ddm/ji8X2x+r6H72szfnbj7mt9y6L4286sSd1/zaw/d12Z+M+Lua36NofuqzO9F3H3NH2HkP5z5
+IxB3X/N7jfyHM3/3kf/Q5rcc+Q9nftWR/wLMrzfyH878xiP/oc0firibmT/CyH9o83sRd3vzdx+6
+xfw2xN3e/AZDt5g/IO9nmd936Bbze/F++ouvh30x/5nmV+X9LPPbY1/M38X8NrK5kvOL+aOZL+li
+MV/MF/PF/COaX1zfLzNczB/DXO0dt/70cx+Tn2KujhxX/PSLzLee6XqIuW7M5phOnwrgJs7vu1z9
+tHKIudsccmoL4gT3r+r8c6fFO/HScwSOKOZxOkI5PUOY3b+H84ecFodjk5rM0TYdRy/mffm15WSa
+ILjJ/TfH/t2d37q973R1eGhGnlZKcxhlMC+/qmbkKYGQivsnjv07Or/v9q7TfXFZK6u8CiqprNpy
+ZHE+qchpqzQA+sl9GftbOf/c7V2nFSPs8S+rXo2MstFWO+35z2kZeYZ9VB0QfHG/e+b8yUN37mOT
+qJ+7jTwmpxN+jVrjaNBZ93pEK7ocSo9aNK8TSDTIknLIp8d8dv5qATsNtZjvui1jrfEiIgpx2ovL
+OGxNNK3pzUgYIBEz8ns2HnNQdLxMYeB3nDfXcX7WSPFZzP2O2zLWPeJwOD0wvgGXR2tssK0dyJIK
+tSg72s4ma80gzkfczzDREw7ivMhmzjZvPM4vkVUjrvos5t3kdlYDYx10x0h70zHC3rY4bF1ynRu9
+9sZb/lOu54wBgBQp0xnL2Fucl5EXzfvTRHOO8zvjzdgk4hFhS7pwjPaAjCNjbUxipB1OKxdch8Pe
+t34MOrjgQ+A/40efvXGt0zaJ86NxOG+QjSNg2x3RvPk4xfmtUNysEU5YhF0iThe3rWkZ62hH54rT
+CZdtSGGIOvoYY+aI/KZCC4BMKXI2V+ctslGMgC6imcf9hMdbzj8fb9GIQZ0twg4lXRS3GUXGOlLg
+gx8Y5RaXQ+yTSj6l1KaOo00xmdhFG7IfyJW+jjzxrIMaEE1Txl30/g5d5dbxebxV0chIqm6JxmRF
+NsXtxFhnxJGiYnyHZFNOY7YMd5v7PHB0OWUDBBNj6JCOQvWuBCwZVE/jHk+XzHHnnwtF9K0Z765o
+ZCSJjDYQizJ0xW0TGNGIaylnlUPuKKCuTW3XDu3If10bWwMQnXxMofWd6yyJU5wnxglWR3uQz5HM
+YefnjLIRStG3xCSBRUS21tqe8Gt8ClIicdsx1j4N2eG0bkPbdwrvYtd2PUfX5c7Tt0TGXye0Fbwn
+MEg80lXqFm/DRjJnuP7c+X2Fz0Kp+ma8qTDkONeTN4g78RnzFBBIyGPr267TXcDlsTe975E8R+Q3
+DQDbptynMY5h8D3j3plOy8iTZzKS6eD3xAR5yPl9hW+FYnRG3zLeA6OmfR8i0dgx1GOWoWsZ03Zg
+pDNOW5xt+2GAp8Fw6KHhb8f46xZ1pcC4Wy+FijZBS4WlfzAbtZ/l+m5nteu4ZJRYhNIbZwYbKYy9
+j0h7iAlh9zkUn2XokETX6z7g5IizbkBDQ1uOPITB9H1vu9wStmmIXUg+IBlLcq+Ztqg9XeD6TmdV
+Q3OjcEQvQomk7s55r8p42zimRArpUciIz30vmmese0ZanG6HfhhHoI+a/xr+ioPuYYRxt+QahWRa
+R64kxWSaSRl5CpPk9jNyTPOss9qGZlV4osJnhDK67D367hlvi0xSaxC2ZagNPg+DmA+eERan1UgO
+GukDOBy/qaFD3kNvOt+S2pOlbx9ca5PJlNRG+aZs28hnur6TUMR8Dk0/KdyYnkQoQknBoe++jPfQ
+RpJI6hUK6dFHEJ9lwa1hnC0OB6IxlSPylx1GdNL0nuqUcyJFGgp/b4FPYlclweTa152eY/YzYTGv
+odlTejoUPpJRHImwp+K4pNG3jHePTIbe9S0KkaEeykAL9slp0s10ZP52jHtGMuSeVnxHc0G5gRyz
+43pTZHOq67uOS8nEawmZOTQ9Cm/J4AwRyTslR73p2sB4ZyIyEY+WwewZatzGZzwW59E/R1+Ojr8S
+467RP8rCdWIV193kerfrel36OMX1fcclE0pCKZnWl9DUpMKEwjUj2SEURz7J6LtnvLsikw5h69nt
+4nORjTiNRibn8wHX66i3+6MuQ17Txduu7zoumVBalGAkVdKjSGh2pEJR+IhGQxFK6JsSljLeIhMR
+dpzdrh6L88N07LqucT0XwYSN1muYBtLLJkbf7mkPOM4JJjBUHhEtfVVPAQnR0gQOObeua4pQMvoO
+eDIWmYiwd9zm2KyQz66LYETrqoRpypFmQE8ZJulWkuN+Znx7zWpfKlvHPQlFPt1TOSKZLDcoPFLh
+OwplR3mM6FvGe0cmW7e3y/vVddG6I7dLhnFdKMnRhJEWLJHXmX7T9b6oR8ed3zaGoQTn7Lhmihac
+KQmlxTzG5LMmFYrCB1oREYrkk1nfu+O9/5hkI67HkhwDeV3Tx0hJIup9omt3tZoqW+Yae6X0eE97
+zPFIQ6dIy11EkZhnS2h2pMIRhY+UyiqUXX0PBxwfZ82L0sNoKFRkUhIPEzpSvTQCjp5dG6P9sQbm
+kPPbRiVRfbRklSKV6rjG8T62JBTfSrwTmpHSA9+SUUiEEpgilGPjPbuOzMX53fzS0cN0iD3SfinL
+ECBuO7WN4WXb+Nz5WeW1UZHENEhWQeNBHCeFDyUTSkIZOplNlNDUewp/bbzHTYSiFXF+q/RIz16D
+dNzUUhm6o83689XCKpZYGhVP2XQk8UxwmiIVcTzjuMW9TIMimsfx9ELhx9zejHnVipj3dDBd31A8
+yYYondS123ztpsbnEtm9rDOrXBKio1GxlM1ordME51CkUhwnE7ZTQpGRnxzfV/hxx3dTSy7YSznq
+mWpQlpkl8XlF6UwGdoL0YCGdG/Kq8jk8M5PNlnqvmWgOklUIzrRx3NFZSUIZy9BNofm6wreOz/E5
+SGoR1c1dI3KhHA3MTXs97kyQjrfqm4Z8VjkaI68kY5mz9U6mL8gwRYLTPHdc4rJG3NuOz2JpS9fV
+lK4rddIe0Is1ZBcGCP9Dkcs8Lc2vTkvVbkPeFpVLeCp62iwzXcqmJ4lbpsWicbvvuKikNifHQ/O5
+WCSxiMj7MuASsIxNoPGSZbymTu6KXIZX5xhTWqktsYjFMo+wTB0zeYXaEGw00veTxHvacIPGZ8d3
+4rJWmdceW7HEqUlXJSeOciVGatxAMWqpo/JhdQlGvSWXOa2UpU5SooglF5Wr+eIPuXqgsQvkQgnO
+F46L10+vXv0f9sSiSObEea86h8gpQlFaI8ZcJtSaehRl4WvKLsfkMqdyic6xLnV22iMWOmZU3hKe
+Mn1p29Q5qk8uuXBHKrvyfs352uVuxRL409EsdmUuLSKXbFPGvNXDFKKvL3vtpnI4KldGmAJFcrnz
+TCVQObFPa6hpVCKNYSQXHnT8NednlUtm2YploPYjy2Toc5WIXJb71DzmeyF6zHU7idxRg8rFBc3c
+jZ6ElNdMV6tG8orHz0DZ1MccP+b8rsols4hY2iIWSbgpltUXJzElI4/OZczN6xm9wKnJvC0iV6Ry
+0TxjzgwoRN5axJJRuSGvOBoVNVWfo7XnufPPVV4XACwyFLHMC169LDTKKqOItuq8fXPMq1x6qhCJ
+hYaFIRHVyZgrgp12ArGMqJzwLB3Wq44/d37reFU5ZYiWJXRd17Qkg8RQl+ikhtCgt7KmXi6kvrm8
+W12XOlTlEo2zTPW9pEp0TvlkzFtSoitiGTZ55Y3aMzu/67jUT1G5lKGRlsWTyiONoogllugcyS+S
+zKeFl9fGfEfpvCCQE5EL3W2kfMrIM7wwwSRfxtwObRHLVuWvPrZToU14lvppiso93RA5i+a8m1el
+aVrosMvFr64m6tfHfE6MVemaOsSUh3nnGHWSkSe38ObofNiM+Rti2epknv7X5RZbwtOV5UVR+bjZ
+EADd1qCZIpYpOnfWLo67vk2MeVL6QB0y0dGySLwXuXiSYkLnEqBvimWjk36eCu2Gp6NJHCeVU6hp
+Ex0tSyaVU8RFLNtrpa+tXTx33RlVruprxBeROQlR1mlb8rkucvGn6Hx3qUKcr47XIhS6nlxuaRJD
+UTkjxHx0/7rRNjpfWbvYdV3yy77rbUaWXVfWackup7o+7Kdxcb5UT/KKFCEJT6I/Uqal0NnBNtQg
+JsBMiPav1r06/T8w6mYsrtsYyqjLjDHUqVAugnnL9d11LRluXVZKKcGq5BVLEZLw7MnlgxuLyoPu
+6LWkBg1TWtmLztem/xKme1pnpqZhMkg54lPc0NRPH9/M6fuO1zSO10JcYg7nyCsdHQtFmsIvudyb
+VFTevbi4+8oM+liGYd7pOj/QAZjshFF6rm4Q3qmkr7YAB0a8OM7MrSmXNtqce/IKH0QRsrTTssuh
+oTHvi8q7XZXvO3ps7eJ5XpcL4ImGsS/LV0PXwS5dlzj/stUdXjje/n/2rm3HkSO5vg/Q/8AXARJg
+cSvvmfJT1s0WDHsBLQQLMIzBSDPWDiCNgNHIhvbrfSKyiizei2wWWexJ5mLUXaxDxok4GRl5qd4d
+wymN0wQ8NlEESV9gLQYh6p6Sc/lelZ8yfns0dRiPqUwntVPJiN7EtW5Js4u0vL+7YjFc/lwbXq8M
+dyiCMLjRdh6SLubNDnml4kGIumc4pPLjxm/WMFC7bDEolSjUUXD5hmcYFRK75tqrHBofByvlw/Vy
+1+VC7pkrwzHCpdkEygsTdQ0rDQYh6p66M/zkuZfdndC+ckySoemRRhWj4HcdDFdfBVe8TWf8xupc
+WuqvVv523e6QY8MLkkpnOApRS5WVKZEQBY+eqhuEysMqP258vxCQJqUGWabCbDpALw==
+ ]]><![CDATA[
+ qKQ5BRteye0WRPuFl7R4Tt6nFjp/U4VVIvHRQvuO4ZTGqaKWnBAV5ZVuELroxMtwliTY7wHVY1p8
+oVWjGhkyQD9kvEnL0Cnb9JtatK3leDdOwd8NKiyD8d5h9DFIKdQz14a3ZHWaTVBC7POKPa7yQ8aL
+Hb8rWaPAoLU6jM6+gOIrGJ8W/xVKyCKlysA7LrT7Kbsd0Ab+dqhpK959Vhh9KBdSzxwYTlanPejh
+GaOzdkSHxvd+L7uFRsui8chhGoMTGV9CNrRC6tAxLXxP6YI3cCMIUCtBhfadWyhcVhGFisWw2XIu
+JMPLteGUxsn4bcMv2P0f+r3uFr68UhhXIzJZMr5ebXQpdFnaEeXapuWdfnQ7/Csgk4iKtoHCa1RY
+IdSoahWSuOeeOTCczqPRtw+PpJ219z80fnM3IGKOGpXG3DoZT/vQMVjeXjQoyVC41kVNcQeHAIMj
+/kVVD7M9/B3QNQ26d+0FqlrHuXDLcLJ6OJs40/C18cPVaVrk1bxWSsaT562V6LARQ5SA6i0yPdwK
+77uKsg1U3fC5lsDnWmKpYoTCjY+uQaFiMGxWnAu3DCerj88mzjK+O3XRnQGQ3Va6N8q0mPJZL3wZ
+TGhgfg3lezpIlJY6W0ikBCMBs1WIEIpZneQqefSpupQyMLzfTLzQ8KHx6yMj1cr4wCddLFJlaY0r
+4HsN3Rt4X0bHx7faVJzUMNrC2wHVVUC21OiaDUpDrxqU4yUn8R3DT28mjjJ+eN6lP31BmvfINkFL
+zFgNfB+cRGGmoHxogg/NoQyn4oTOzWnfYOZTIKM0KAwjcopRFSosqK876VptG7523TWNZ83TFrXt
+DutY3RpvBcyHdei4/VHF4GmQ8gadskI+aVAW1kZDKEKBt/SYLUceNvcaPoHx65NGNR8gEfB9Ad0X
+xsP7hg+IKj4gSmtuNAWG0cEqg/AgoxhUtAZd06KmDfBBcTyJT2B8w6dfSmR68r1SUQtM4yFiEKht
+wcdyae2qNSQb4wyUBbMb5WBh4FPFHjVtuypUDubCqxqf8nzVH3flc4w1H9FtNg5D0zYEkqi2qbKq
+YbZAxzSwMbLCqaY9YfhVje8Hqe6QcXfCOB2MLroj6A0fQS/4AHoJi/nwf4tuaaDvSjjojYTSn6A/
+OfpcyfjNo6/VxnF0LWmXKh3850bH/mGxS08uFDDbI1Tk7yQUc9OndYbCGZ6mTw8B1DBEdo9b8C5n
+96RFFLzInMyuNh51GfWI11WN3//oheEnRmjbILXV8y0wruE9qU7fo4QykfH7H3gZPlrEzxTBsPVT
+RT7tBvZmn12mXMX4Q48ZBaaQHuhKT3JtPcuV9mFHPkw3mfH7H+7qHqJbPT+38wTdur8/89ufDV+b
+L9ePLm48tagHj16K4+u0tzZ+zyOjHY31b+s7rv/tV4CLE23ab78S/KDBN/n2DL8ZHD9+0Xx4W7/5
+9Obp1Q//SlO0b81rXPnuze+f3n18evUfT388FYu/Pr0qFj/TP2JRcPvhz6dXYvHDd0+vlHJL7YJZ
+GOuXzi1+xSXploXwFpfc0vqwUAL3BCtwQS09JogLVfhlwGC8MMYtVSHU4ifgimKJwc3jYrE0ciG9
+WRqNe/AVSMGBL2jrcIMMS22sIRRdRCHicFEsTVBqIUNY+oB3TRGWdE6av85KvcA8Z+mKwvG3kVHS
+4MOEXKIsUwulChgFs6VfYlINu/HFAikHFtil9zbhtFoWSsmF0Qbs8OFaL1Ho4ILRSw083QGbE93C
+Cd/DNi/+QhdhcvIUPkM7sgHMAoyy+EaU6Itt//6063J80P8gSt9RgP4F/8A8u/i/hSgW/47LOUhz
+CdLvT98/hcWXXy1++M+nV98/CcRIc4gQpLdPr2z/1hev98QLFy+MGJAXxeyL15dGDd94YdyAvCxy
+CbgTO7p8SfR2Q8Af9uHpi9d/iR8/1e9/+vT+tw9vPv65+Iau49rHN93PX8ZvF/GPT78tUg59/493
+Xy3+8rdPH99/+HnxT3TDPy++jG9/+/Hd6/hteP3XH39/9/F/3719/W/v/nyd7vr9q+4++ofS7Jfx
+w28fFk6LJA/Ox0rppaU4WITIhZC6NKKoVKIqgyOF2GUIAr6zYiktvKAQN6UhFWPMUhbBpD4tlroI
+uKgDnFUgzh6khfYsEdq35SvwGr4RgdTW+tSt+4tS4aKHL/FRIigKPKJQBM/fWMDXfMUXiCz3awu1
+SARLmCUt+i8UlFdw+PCDVDCGKCpn2QSUgKmDInYICORGqrAG0UR8lcMFI5OElUYCdJo4F0uoTqSO
+vX2ROrbyS+m0Zu/QQ7H4SosPIUdAQ1YHvdjx8097fI/PKn+kwKRW/p2j9v2HD29+ffd28fPHN2/f
+v/vwaSHdV4uv8fUobum/MkB7X8NseH1BXkNHS+Nr+rf8mSKzFHj3a9CmBwuGP6R3ZPC4gI5OvcMG
+pRflr2k44O3g/WrdvrChSAD+9unPX969Xt+1Kcg/kLmKpe8spUqAq4b2/S/vvul+Lt/9/P5DX0Mg
+q+E2DEz/taKH8C+sdIv/XkCSQVIC/Pv+9+n3dE/370LhfeH4DY3GNQx/H1Ux3yxIjpiP/fDt0zz+
+uFSGZ3iGZ/jM4ZPOR6c2PsOvAr963K8Cvw33DB++5hD3i+H3dd2LhN8mcPeCT+q6lwqfQ+BuD5+D
+5+cJn9rzDwe/mednC7+X5x8FPp3n5wyfg+cfDj6HwE0Nn8h1nw/8XoGbCH5L130m8NsEbmr4XVz3
++cCnC9yk8Dm47vOBzyfuJ+FX557hI+H3jfvxG6bmnuFjXreP+0n4zbhn+En4LeN+/Ibbc8/wkfBJ
+434Sfl/uGT7mNUXcx9w2B+4ZfhJ+9bifhM+He4aPhF8l7sdf0xmf4ZPCnxn3k/BJjc/w28AviPuY
+122Mz/BJ4RfE/aRsbmZ8hj/cKHN74zN8avgz08WuMG5pfIZPCn9muhhq4+G4Z/hJ+MXpYnzSmC33
+DB8JvyxpzMT4DJ8Ufla6GJM0Hoh7hp+En5UuxsjjlsZn+KTwkeniuCoelHuGn4SPTBeXJY2Zc8/w
+k/DxI8sU357hc4afTBfnpo4H4p7hJ+Hjk8YMjc/wSeEn08WYpPGg3DP8WkXpRN+e4bOFjxlTDmnj
+7sZn+KTwk+li/Mhywbdn+Mzh5yaNWRmf4ZPCT6aL8Unj4bhn+BH4mKSxks3Vvz3D5ww/mS7GpI4H
+5Z7heWMlwy+Djx9TdrVxd+MzfFL4yHRxbup4CO4ZfgR+btJYyWYOxmf4pPCz0sWY1PFA3DP8CPyC
+dDFGHrcxPsMnhV+QLg5p4+G4Z/gR+MXp4tzUMUPuGX78dXG62JLNXYzP8FkteR1/3d74DJ8O/sx0
+MUYe0xmf4ZPCz4r7mNctjc/w6eCXRf+kbG5jfIZPCr8g7iNlcwPjM3w6+MVxH/Oa2vgMnxR+cdzP
+ks1Exmf4dPCrxH0k/OrGZ/ik8GvFfcxtVzc+w6eDXzHuI+Hz4Z7hJ+FXjPuY16y4Z/ih19Xjfhb8
+vtwz/CR8oriPhN+Xe4Yfek0d9zGve3HP8JPwSeN+Fvz23DP80OuWcR8Jvxn3DD8Jv2Xcx9x2S+4Z
+fuh1+7ifBZ+Ue4afhN8r7mNeU3PP8EOv+8b9LPjVuWf4zJe8zoJfnXuGH4HPJ+7jXzNx3QuGTxS4
+28Dv67rPAT5R4G4Jv5frXjD8NoG7GfyWrnvZ8BsH7jbw27juBcPvFbhbwidy3ecAv2/gbgafwnUv
+GD6fwN0SPgfPzxY+qecfCH57z88ZfkvPPxx8Us/PHH5fzz8KfArPzxN+ddd9bvB7BW4i+C1d97nB
+Jw3cdPA5uO7zhN837ruvW3LP8IvhV4/7IQ3MkHuGZ3iGZ/jM4edm3RmWhZ8pXBxtU3/7OS/YQ/Ch
+eXKjnTT/psZv26gIrg60XRLP/PYL4ENzySaNZrjZwhLcrprpGt2yNv+g6RMZvza4N9YWDs0XgVvs
+G8EjX/JorqMwNP6g4Vc1ftPgZK5nQyu0umiKdqM1aDXBq6JkAsn45PkRhj/PeNH3uLXBZG6ELTAV
+70mhhBZGWDTXNYvfDa4qIWBWQ/C6M951Xl8bfobrxps8sJbgnr3bwBwFw5wIohS1aETLmgUHNqbF
+lQrvBNxhyHh4nz1PpvvzDR9vfDK51wNZWxctzDKACw+TGpiopJVeBlnKCq1Gq/BzxBUnDd4VMJ+M
+t2x6A8IxcV8bPtrsU8aLgcm2cy8ZbPH9NWw1sLQCXLZKKqOcCiqqklvEz15ZpZWULSgE0JLwfQmi
+ujOcdULffpHZ+41fy4IkHBBU0oOBwY2UcGGlBCyNqtFCa02y0UFHXXYtaq8t3hCqxk0Wxjcw3cDr
+1crwsnM2bE5d5gKzh8YPZeHIx7ig8W01DPayVgqubGFT0I2RxhhvoqlMbUi09B9T4oLDG0I3IGDg
+zRKmC8jGsuFOKGg8+Zs0kqR9cbro7E2BI1kkH1tR4oMtGxzhXQ9zNSxrrbbelra2LTI2ZY7CtpaM
+t9E6q0wLAhZ2ldqoBqIhww2kEhG2Al0krsweKOT8AXot47Kgmhb9h3ysZIQkAkYIj2TrYa61lZPO
+udI1XnjlddckUnLjIt6huIOPtxKmG11rC8MddO6h8RKeECuz9wp7jPFDkwP3Ow0Rt+RgwKHhBkJt
+jUdGDvCpd603PvomyKADLgWP5vCTDsI3eMfA/NLp5HlrGjZcQyoK/lZIlG7H7L2v4+liYDJ+NSIi
+TXgMvUFLXUGj5HlYJ10Jz5Yw1oc6iqijiyHGWKJF/ORwRYQa7ypfe+da5yAaayjbGKm9apVBatQr
+swO+Ux8ze7/x+0wu0e8iElqloUpTWgPZRsS/DpSoYa6GiS2SnC0D7C3LCq3ETx5XVGxBwWIQDEEi
+BAUMr6ATpytNIyxkkswmkVScSfS5Q+Q+kxFE5NoGIkaHstFZSLcMJjRwZVMaWEeer1RlK1/Fquxa
+xG+2UmULAq4UIKZCCcE4V2OANyZAIzLZTF2mEgaZpDwlkX26WKeLockGmS0aa6VFz/I2iFDBeS1s
+aSpdhaquRa1rW1Oirn3XHJKeqkXVwHyLoTzC6yVGSI83BRTuTITZQlkIWyKNqFScxDN83evCrNPF
+ymSkigr9TqPXoV8FC/lW8HBTmaqCubaOdV23DQacRqUGOH4RdYs3IsxXMD1gWI/wuAsVij3lDMwO
+uoKwlUQ/R25K+jAp05729dpkRyYjXUQIGfbSGEcmB2udQlVco6PZsigj1FCiwHB1hepTN7bxDbSC
+BvP4vxFXyPN4U9YNTDdVW3mIxcYyNJAJmY3+oYOqIAfT6YNSyMrRx3NdL2Ua9xpk5IB0ESHktrOX
+VIfE20IWAeNzU7mqhYcreNc2AWY2TdvCW63sGv1c4GoF411DcHg91rqqoHIfq9DC28IhjRqF8Qb1
+CyQSUBl2vt509D7jk59T76tRDHl8uUe6wNgLVcBkryDjBomBaptKwMeqjvCwgcE1ag==
+ ]]><![CDATA[
+ fdkib7dIZ63rGv1scFWhNm3gd98oKIXh6AYwuww1ItFYCB9jfIGyxCGFJF8fFPXQ+IGacafFuGeR
+lCukCwshww1sclV6aKLGt9RJtL6p2GAyF0FAi4NGv3s2X7PhsTFwtoPNirlHH2gM8lC2w5cEZBHy
+tdjv600np+m/XElDc+9rMI5Yg47tBM/8ksm6aiDiBg6OkANZS6KFaUgkaNVWo2uRTbfweAGpWJht
+oZAChTbVrZSskOJAi31toWuNwo/GmKNG907meRxJAwURqkgtMY60yHDwJ4aPcmVyCxGXcLBi98bO
+VhqgW1jUNl2ru1Z1hjsYVkAmCBOE7TH0IJt4ZBI4GsVWGmUieoKDpevOuN9k0fU/ShkGuiDXsZor
+DH0YPDyNy6F0EAZMhowta0LDClJDtWEpGhk/+HVleG92hLYjaEoU25AEBsDGQOOqQqWN/k+ZlgSS
+Rpj9qTr5OfU/hSynUHMGTamIuGPos0jKttToe3Xn5QppIZlcssm9dXuXOnvDe7MVtI2PYV9TdeKh
+aIXZb8HqwLiAEaYmSadln31Gi5WYU/9rkDIwy+jWBZD2oixJ88hwJbpf05kMJXeyqPeZu/HqPN+b
+bdAlydcYQ5HIWySQEj0RRZ9WSnP6SJJe9cPdXLdOGr2fG1VqFBXQBTQcqI4oK4/0VjfEHVpOXh5r
+cts5GzaT8RFQ2eCz6rIueNaLytWVFklKU6fHHA4e29sP16VRn5wj9Nz7GRM4pAzlDevCVroukJEV
+3JKETDPoM0xOZpOjY1IHcbfojAKJT6MQKVxtMRgg56V+aLtEvS95dAsvyc+UNAJG7Zr9DFsd8j40
+W0AXFXqfQAZpkS42hDx+eZ/IkTp8q1nSdS0rGiK5K55ndN8D6duRnCuMJ4r1LNjPyBtQiEV1UUPK
+NZKy3eh7q9dp45PREUZTP8TYz25WEVWBq3g2gdHFwugj8lgZzcMJXO6QmUtFiRp5w2FCUqIsIj+3
+SBkBxRpJw+A7j6risPFDebCgkfFo2aZF9YpZL3dD6jLS8zi+0RF30vNaGUq2CmnI1EgaNEgljcDP
+CinDYfBT3PtGCXnb+NQRKXVYpI4SFZ+vkIxiHUoM4hYTdcxbUJzSaKjSipnfm6Q300avDPwHmTlg
+xoTeXZVcz6/8TNIY3/cGxg8V3TYeSdogSQdUHhZKFhjCa9TfBSyPgxqvqy4OKBrDYCMDhm3Lyqgw
+Mgsan5A0KtQYdUul0cDP572aNL5Xg2xXIduxotEHG1tiGhAwMlZSoLYseLa1MYAPF5m7XNcpulKY
+m2LYbjCiaFaGw+yp5aSRxFz3w8R5JvfKMC19O8YVzBqQ+0kcVHi4blwxkHOzVZZu9cE0l0kDoVgp
+usZAJzFsBxRHJDoHZdBgQkljw8nn5LpBgubsLCvqcSX6XzBeosBoVuJYjeAH+mCymLINumGUWmHw
+NIIVHVHRUZbA9AjTpHqjB269Thm/3QPT4I2sxGmj7HMdleslrHQb4jicOBRKZ/RBynWY9GCGEnwd
+C1pfZkVbpA3di+OwMg4Z3/u5H1OoTHLcA5036zKJct2pOnptdM1DisNcW6Oq85zn0Q1RM2LsxlS0
+U3SfNk6+dnPd0M8aBWlD6Rn1RotRMPXAuJ6urHPdYaMDT1LqVeKIDhPkqFFtUFHK3TB0ue7MtLEu
+SgeZrik401E5GryjARDpWaKy89sTw91ct2l0ynaQFWavJQoL1SUOg1o/tgTf7YajXoO6ziLTVau6
+jjKdQKbDDAOFR5kK//1T8M057KbRUSHFo6SrMBXUXJH62qJEipw4Yj+TOsfovgd6ynQNTUbgZ1tF
+nmJF7zEMohLlTEfVht1e7Nh89VvY20b7o0av+uDYXLfOdP1wwnUoTcD1aoJVqVq2PAweznQbbibj
+10a7E57eSRzHjd/ycyM2hhPP8zgMKVT0cyl6JNPt1QZlm21Ne9b0hjwOaWO/8Zt+ToWopr2XoL20
+7Wo44e28NKLsr+p2ja45dfiUOnhnBNlD0lCO2k6jI1LqGNkLh8Yf8nPD08FuvQCl82A46ffjDq2S
+HkrSKJRCEWmUKWl3SlHZcX6+W89h137mkbu0PGwrruka1Sqxbzg5tNi4ZzhE/a2twzyl4eqOhxXq
+7+68kWXoZDJ+6GfUSaGB7CJmsGnYTjWd4C3Ek4uNg8KDqw6jJNfRxnlMvttSbA7gaQ47torecTIN
+Uht+xvCxufx1dP18uyjt6zutCtViWii5+K/Q7QqUSmWqo9dVx5hctynmCCfTBIXWNgjOfg7dQmPv
+59MLjWzxZlHqMQFvqCi1BWJmQ4yoSDH9DqjvKsxk3XbGO2b8cTFLcjKvz6+WdE/4eaCOrvanbEPl
+v5CU9UueGypMwDHTquKgkh5dlB7xM5xckuW0xp2c3K/XjfHzcJZFSb2VZPxgQByWHmFjYnjgtTZ+
+v59ddGQt+ZnLULXp5H5j5ZTRmxWeR+YwlPFosbHaKEspeYyopZOT0zLvZnLu/Vxv+XnPqvmpjRUx
+mISnjCe75FGGpiQ4umK76oqn57PN0MmUKrf1vOvng/sThxP1OuNhcojkQRtTqR/2k0PfyH6xcT0k
+7jd7vY7refG5y8y80Nol55N+3n3tJurhwpLg1btoqsE03K6m4atEvadmGpjcT09S2ZwqjS5pkOpG
++/mw8cOu2E8BLI/jJYZEmh6KTh3VavXuwOrB2uQ03U7TEyqbU6WRMjM7mQqz0X7e1cZ6pbRfWpJ8
+Kk2h0PNI1LQZH1GaUqRTT1wvhu3sTfQbKr7bTlGoP2khJlV0wxGwc/K5m8jJ6H6DhVcP0pJHo6hw
+JIFQzqMfFUZyTERZ1KYzu+q2fTr3pnTRm0zL+xX3v80dID8YATecvG8aeNTXg1X0LlE7TnvOBWQQ
+uBmdMdYG9jle4DW8Q7i94dbtWJHxtElY4+aC8lyFoZYOtWF6QpUzVXRUaRwYAY/nuqHR/b5QWpIW
+ivdaeTvPy3TQq5IoQAIvpdfdfoXf2NjsNzXT3iDs5bXKtKsJF2MWiGmgwfTEDiq6I2Iel6gp51Ht
+QcN44EVpj+/CKE7zuAiHm1qgO4nVnmzaRB5uIPfbx9A/7G2Rl5EyaZUY0zXkoBLT7QozFDGuojtu
+/FAgvG2I8QXdxTS2TcdcYwN98LENAW8XvDlbo1MWw816SLvf725gIpkcYx2LAJ/SAVOaBgpMtzEN
+hJXjK7oDxq9XpvuNlgrVB2KJYdGgCKHViILMRm90XBKjejLdsYiqOxZBhyIsDO6PFWh4GXOIwKsR
+9FnIHVE26cBMuZqhnJM0NoxfTwN6X5OuG5p5Ill75D3LZpeY5FeoQjyGi7YRyfh0ACWdPUEFC4Pb
+yqPvOdSGyD3IFtCZQbfAbZTnmm6uzVvY5yTnzVdXUa99nXbCjZaQCEYGTLvIbIkk4pAvLEb1AlNG
+C697WEnfjh9p1BRVDYMlEruMIWBSzCZjdNWNFspAF4LXjuqhk8elix2je0enPN+fOagRWGMkOlsN
+s11QoYke/naYFMjVcaqKD1MFOkxF1UVbBj6UpELwjcfkBwNghdFE8Vkqxbpo95+1O9f4raMdpLp0
+uiNC2WR26ZxXvkEyKaKDxyUfXCu7I2AlfnZ8bC0gH3O6kEhxjVPWIWGQyR5qNnxkrdjof894cmHf
+IRqn+IBcCbMFROKdghoscrPFaCOiib47IEirnh6/y1AHh1QRkCycrS15HmUGnVgjky3UPDwceLL/
+nTZ+fcKqP65UYDog4GqtqbrAPEZB3QaGa5hFhzENH8XkgzD4WfmWjmJ25xmdqY3CoFQgwfGaFQox
+uEJ2xzBHnGccY/zWWbbObCdbCFugUFWo38l1EIrgY6+tlzQn46Yh3hZzMoeas0J2a5DfGm1UhelE
+1Z2/lP35uoMHXi8xfi2Rldnp+KvCt8PfJQwP6XQxGY9qqjteTAeMG/weUM4WKOYQGgzVYAvTkPMx
+9tmViwel0TNPca/N3jhovDplHNAjraq14oPREiNFMJisG5YNBhk+xx1wWfEpbs1HoTFAYdJW8FFo
+sf8o9GW5bsv47fPRDR/yp/PcyLAw3KiAEUdqo50OVENxwyyH1i6QHtHjGj4vj+qlO3Tu9x86P+a6
+815iPcr0TyfUfHLeofQrpKZnE2A6igc4MvBDCZXifVZ+MAFzS+pxdXe8v4a6zPbx/stKo5NmJ5vT
+CLt+RoEMT4+AaH4EJHaPf9TdQyAR1yzeSw+A8MKLgY7Jx5EfuFk/RTHp4zb87EraHaj42aD0sE1E
+zGt+1EasGj1sgxGc9tWGz6sk+MXPq5xj/PAJlvTQDdz9xE8qtavHmoYPNTn+jZ4LkjCq7Z5o2ngs
+6Krp4pjh20+P0eNYVTK+SQ+QrR7DS4+Q1aunx3YfwLpmujhu9uHn9Lqn89Zt+Jxe/5TekUfdJjR+
+aHgyXffPQ/btafVcZP885MiHCic1XgxM781XAxLdb2nl5OSTpzc1Xmw0udNW792kx50JF0fb1N+e
+4dPCAf2i+fC2fvPpzdOrH/6V1mC+Na9x5bs3v3969/Hp1X88/fFULP769KpY/Ez/iEXB7Yc/n16J
+xQ/fPb1Szi9VYe3CFmJZCGMXv+KiFUva5F0Ya5dIJXrxy6GLxi0tym5clMvCSrNAFbbUIoSFMWFJ
+y5IL1JJL4y1dwXeJwix+AlCrpQrS4qJbYmS2C5RASyu04ttQrNEVudRK4B58tcM4yEBJH+I1Lpql
+cvgiJQ0MoysOt2EOgysa9+MLQU4rm75QqiUKFlz0ZikwV8ZdcknTnQUmPMuA2QKu2KWyXsIZxdIa
+2MLAsMQ0z+CiW1KZBrvcEmMCbhMmMVNa44qjK35JT/Yy0MBhodALK4sl6jd8fu9CK8ISM1aNK25J
+h7xwxYI0/EFAB8Os97gIm5V3C+XsUnonYAP5MgC4E7ef9gUTIfofKOA7Cv6/4B9ExC7+byGKxb/j
+chbA5yCA35++fwqLL79a/PCfT6++fxKIv+bwQwBvn17Z/q0vXu/VAi7vC/zhy5cqAtBLNQHohaog
+5IW6IOiFyiAvXagNitKF6tgXYA7Zh6cvXv8lfvxUv//p0/vfPrz5+OfiG7qOax/fdD9/Gb9dxD8+
+/bZIY8v7f7z7avGXv336+P7Dz4t/ohv+efFlfPvbj+9ex2/D67/++Pu7j//77u3rf3v35+t01+9f
+dffRPzT8fBk//PZh4bRI8uNxSjkDb5B4gls6ixhwNioQNxKUXxYaxH85cA2q8Swfi7hRNIxeKhM0
+a0Xpgq4US1p/xJViCTnplIoQK+Ms69NiEogw+qXXId1Gf0cAV8yykEbzZxdOeAYqxM47xaILxpF0
+ehm6Yqkxa8cVSKOgD0eQYGgCQk9SIhUbLyEDmdQKXQoQF6QHzx8VrPW44hFm3X2jXJqCdIjb8Q/k
+BT/QJ5EYtKRP0ug7hQmsGtqjSKkIHpHKswqN1iQuuaQ/jMG3mWAdy03I9EnwU5dQ0A==
+ ]]><![CDATA[
+ d7Qi9RapayqHTuSkYRPQqcFwJ2Y/7QskAlT+SGFOrfw7a+D7Dx/e/Pru7eLnj2/evn/34ROs+Grx
+dUFJQdJ/afNt8bUBax0WAl+oXVfFpH9L1DUUBepzX8MXICoGP/RvUfi89patpgPGi/LXNDSWZaf0
+XfVvX9hQOAB/+/TnL+9er+/aFPgfyLTF0ne2UsXF1Vn7/pd333Q/l+9+fv+hr9WQhXEbBun/WhFU
+yHdW6sV/LwRE6RVl7L/vv4F/Tzd1/4GCcIdw/JZG43KRv5IKxm/gCkt7Vz98+zT6uPreV4ZneIZn
+eIZn+GPBb7JI8yz4dNwz/KHhk6puJvCJXJfhc4BPJ5uHht/A8xl+FfisZPOI8HsFLsO34DeO++cJ
+nyJwGb77unrgMvwC+O3j/iLhtw9chp8FnyjuLxU+n8Bl+Fnw+8pmnvDbeD7Dbwm/gWxmC7+v5zP8
+BvApZDNP+NVdl+EPAb+v6qaGT+q6DH8g+C1VNyn89q7L8IeAT6q6ieAzcV2Gzx8+H9GehF+de4Z/
+DvD7ivb4a2ruGf6y4XcR7Un4bbhn+IuH31K0x1+3557hnwN8UtGehN+Xe4a/bPhEoh0Jvy/3DH/x
+8ClEe/yG+XDP8JcNv6JoT8KvbnyGZ/hJ+DNFe/yGqY3P8Aw/9LpYtCM1P6nxGZ7hR+AXi/b46zbG
+Z3iGH3+dJdqTmr+x8Rme4UdeV0nUh4Q9c+4Z/rLhz0zUh1R9G+MzPMMPvXKizvCXDb8gUZ+brmfL
+PcNfNnx8ot6V9N2Nz/AMP/Q6K1GPT9cPwT3DXzb83HQ9K+MzPMMPvUYm6jHp+uG4Z/jLho9J13lf
+JsMfET6+FJni2zM8wyeCn0zUl6Xrh+Ce4S8bfm7SnpXxGZ7hu6+TifrcdP1A3DP8ZcPHp+sZGp/h
+GX7odSRRj0/aD8o9w182/Lik83Jfhj8ifHwpMsW3Z3iGTwQ/magvS9cPwT3DXzb83KQ9K+MzPMN3
+XycT9blJ+4G4Z/hLhY9J1Fuan4/xGZ7hh14jE/WYpP1w3DP8pcLPStRjtH1L4zM8w3dfFyTqQ8J+
+OO4Z/lLhFyfqc5P2DLln+IuEPzNRb8FvbHyGZ/jzlz7G3HYb4zM8w3dfF4t2pOYnNT7DM3wLfhXR
+jnlNYXyGZ/ju64qiPQs+B+4Z/vLgk4p2JPxe3DP8hcFvKdoxr1tyz/AXCb+9aEfCb8A9w18e/L6i
+PQt+de4Z/sLgU6juBvA5uC7DZwufSHW3gd/XdRk+N/htVHcz+C1dl+EzhN9FdbeBT+26DJ8n/L6q
+uyX86q7L8LnBp5DN/OFz8HyGf+brdZPCb+/5DJ8IfkvZPBD8Bp7P8Cng95XNo8Cn8HyGXx1+9bh/
+DvA5BC7Dj8AnivvnBr994DJ893X7uH8+8EkDl+G7r5nE/TOBzyfuLxU+UeAy/Cz47eP+IuG3D1yG
+nwWfKO4vD351z2f4LeH3ks3c4Lf3fIbfHn512cwHPrXrMvxB4ZOq7orwKbhn+OcMn1S0Uxuf4Rme
+4Rme4Rme4RcM0M8c3zP8xcPFOY3g6cd5GD/+tWH8uskTbS/3i9jfkPseggRXg6YPtOE9Ax/Ml/s2
+0yE9w80S3A6a65rdaOnmoRc69nPS/C7XnmdPzKMFtJgawcut1r3Ft9HtvS96/j33QdyvYvy5r4Hn
+12wTV7diWRZVUaM1RVu0A+HjBTj9Z32RbsGNdHvFfkgecCvuA+b9t1/8Op/7BlWC6wHXnmnL3KRQ
+QgsjrHBoftUCGv9E3OkHetviRg2AJF/AA2v2Pfct5jdKVkO+Q6olwRNXYqqZZRBRVKIWjWiBwGVJ
+LzVo9KLr9O2ixY01ABFA8oAm9h33nnmv9gHv8cZfwL3nq1Z8mS0savBGIsqBI6YtmChppJNeRlnK
+StayQWu3Gl2r8W6Ju7x0gAOkQLZl9r7jXkD3ifk64lu8r859my9FN67YGsQlEZVMM8qajG8RSq2s
+8iqoqEpVqRqtGTT6vcI7EXd43KkR+hY+oFyHzzFQQeLuiDnHvOSIb/MeHbgxr1Wy6vVMag7Ml2Ss
+mW2NNzVzbZSA4R40GohQaQO4djroUle61g1aO2j0e413StzhtAGggCdKfIBGv2567grEaijeoreL
+LuJD3gdT+SXcB2QJbphvyd2WohtE1bEtIQDiWjFTBxKNEUYbZ4IpTW0awE2LEUhstcK0psENJW50
+AAh4ocQHEPsKH6gQ9zJpXiHmJUeceJedztesjyTy8dx7OfedNxa14GyjYG0UDZRsYVALtgFxlTC1
+wsCijTcV6GnrbLSVbTDgCiedctpR3J1ZNY2LEm8WtsGNEQANL1T4AI0YVvhACfUTc8QcUudvr9DL
+e94p2gc1fh53MWBsu85LwU1klaRkJWt0WK9qBMUjrgqm1lbC8NK2IONcdDWKDOm1N9565+kVUgOc
+f3V4w+AGiaxcA+Ccsi0+wFmJ6HujoH1iXqG3F3AweIO0Y8+jf1cc7ZMaH8N9relezg2LOfEN6LZa
+RcjYaUpWYBsgXGMjImpgeOMVyETfYBxWwQQXQoihDNVWKwN1WLzpcJPCkN0A5LxyDT7EIPrRaijf
+Gwm9G/R0h14O3hB5hDWioG/v+vaZrLe5DzXtKMK4oCGoGmL24GtUCSEHyNiZBlRLqJPijqgqhK4O
+MlhwrKOIOtroY4xlrNGa2A5aw9dKvOsjFeS4WYQaQBukr/FBCpF3GKmjVdC7QcQt8UYPD0joiDZS
+eSfwVBol1ue+urpurWmKsICiS4TdQswafJWORpqADBQQWIewah9RK9pQxiIZ72OFUlqVpvRlLMuy
+LpuyLduqWDf6HVdrvBtxl8HdRawI7vEBBURgMSpFr8HcoL9bRJx4a+hcY0Q3KGE8BN53a72ejJzJ
+eE03TQdaJCyKsJIRw1DQgvnC84iuciX6IbF1CKqCrXUpSwsKdUXcK1WZykHEZVVVddVwa7uWfqvx
+Tok7HO5U8EMNsEV9UifuEh3A+hYxL9DxW/Cu0MMDIuqQ1Sw0HlaszVDcYxP1ZtKilKXxkbTgxhFG
+f0LeLRBfCb7wPnJPjX5YgW2IbanLUDaVrCwoVFVbCxQcpqZsU+M+knFdbjW6FvCuw40KZWcLYMAH
+SMQ/lBrqJ89D8RFqD+DtLJIkUl6jFYaKAim/Zx05le2I+xT3NePQdeGIAtJj5A3ovqQ6YzEEReYL
+7yO6LbprzWzbSlce0SxgvAWRsq7rtkHKQ7lFpQcNUg16/6BBq/yWwk2ibgEoAbT4gALcPeqzBpqX
+6PEqUD0P3h7ZTVmHaBfIabFj7dGvaxjd6XufuPdz34gxcAZdWMiA0QgpE+EtLRIpxEzGg6/HjDeg
+yzroWMHAGnE1MLlipuDYoJs3sYHd0HDNjV/EPb3SxYpvibjZsQ+IfYUPMoh7Dc1L9HcdIaYQkNZp
+Hodol/CXREaLyGcWJZoFzWqg74OvIfek6z5ttcxYogsrjL4YJDESRWcx6UP3YrKipBEWqcgitolt
+3RQImWWmxLKlSTMaTSUUmt5stEZNl+ltuq1oWvYAsbf4oAJxD6hLW6hdgbeMITSoyq0Ltkp1nUA+
+86jOFcoz3en7YKQ3A5xyXRqME2NSNTHW0GUwBgkaA6a3GG2raBFcD7IOoVXoi6R5sNUIU4DJDbgK
+ZqlbeArNcfN7Gr9D3Ok2AwB5QIB7gw8KxBwxL6H2ArwhKXR/EQwEDiNMDb8JRapDhVZA32JcpAei
+xkicxvcGiZr6cWIc0YUVNF0jPVuMtxWyaoPg1rVGFBr0RJuotnwkVXZME8eA1o/G5Z7Wv0f3UbJi
+NxB74l6AeYmYa0S8RLxrzEQi7kaN4x1Xb5i4oDDFEIqhmrhzpPs+fZpxSlw1ai3PNS36sWLGKIBR
+ELfQdIgGEY7ovCXiS3wVQhubGhJOVF2iScb3HFcjU1vvaet3ex90cN8xp5hXxBsd3yPatqzAWtK8
+E6lMGY1EhvkNZtsU5pJSd1poPabuYTeuUHs4JFrUd5geBUO1DTFGxdyg2PCoGZrKITE7dF0JviWi
+K2AZBdZzSHuaTImMpx+aE23TBz33TvO6lbinhJoK+JlYRwxvnPBsbTBWoDArUJ6UGLAoda+kfWzp
+o6+pS07VNWr4FpU0ZnWQtGC6XBqF0qAPR0Q4ovNaxLfn63bYbpEi4/tf+tcx/ok58aZwc64rkN0c
+MnrAexr9GmM19G1QjCukMSMDSjKLGcceaW9zpygnXVM3psSlJOasUAz6CHdKMEatjCIB2Zlkg2JK
+wcmk5yHffWzP3EzcZd7FG18jiDKnytqhbGtpYRBdv0YmCzpgwKpY3QWr+0B3Ttz7sqvXNXoyEpdB
+ddliSohPRycuEWBiXONCg3RC4aW9iQ2+Q7bP3kjd5e2ZddUYDNuyIs8j0hiw0KcFkn3D6kbAUJhU
+XIwdGqyYbr/0QcMTRnZp0ZNrXaKaRonlUQNEB0kLxJgYG8wSKLzUeZnsZoc9+3WMe8+bWFOsNX71
+CLOtItIYYuF5HmeQx2h5WEKXqUenwWof53XqomSteK0Suq5RZDoMx5giYiQwEWMBOnE5YKw5vJvB
+nWoDvWfdR7rEcB2qmiXf+BLDlUXiJuMxzXIYr/QJzqsKBG+jZEX615qKk9WKNbSCYNYVSiGk6V3G
+e4J7Ze7DSFvmrOuIqRgiivRWozBBfDiFYd4neL2uz9y7nIdRptRVSo1kXWE0xowBFTWJFrkL01oM
+TRJpS+9lfHbgzuLe7I0zcabVvz2cUZEw4f1bWpsDlOPUZWl4x/CkUWFalHYWtQd9O4YmiczVjmf8
+fO4dXYL3/VnhSsBg5aqS5iOYf5K2mTILu2ZhbwR5e30+pevAdWYpDWaLKO5MhWTdpB0ncKvwS4HE
+0bTkuvMZX8Z9M2lz+koDdIm8jQK/cmWImG3w8Cw5gSkuPg8msPX6vO6jjL6coqyRuqxHtsaAHCBq
+hW5smwp1pe3p9tXFha/T3IfpOqaSBHQr1CMFLz6g6BYlSiYUnwKjEjr4xkC1P4F1sibunjI20jX1
+5RTlhlOXRLIWmAsGDHwR3djw0LQR4EkS9ZpvtSpG1Kru9LhsSk/hoPk7RmiLuQYXJLWUInTl9r6Z
+ZJ+8Ik+RqSyUHmWIQl/WHOVIC3YVzdhbeBe6xnfHQ5K+GvfdMoQiTOVXQCxbZmyRUxvMJWknT0LW
+VBqhN1Ph2fKaQdxbhA1lTXWXxIgMoRhaZLYV92WKsgTFyMladLqeMFGvCvLNcjPNLFyDYQNTiX4e
+KRFb6xzPI6OqeHZBce+ytt0zd14Py3WXvHCzbq1wCukaM2Sq62LlOcq+S9Z9lM8K3Gi+QzmnVElz
+yGIwg5SouwRUXTNjWi+oeL1AIsQbiwVpFrmfc0rYUDYKEcxMUHc5zFRqxJOWnRuEmBL1+Chfxv2Q
+nJsmptXCfqXAlnWpkapbJC7HjFsjMbAG2SB5VcLwfMrxiv6eswe9siMPywJzKFJ2aQ==
+ ]]><![CDATA[
+ ayQvFfFDRUuuzbojpyFyZJTP4b6ZoLflXGOKXlS84EYRbqMJ0beYU9DiHzF2qlSClzxdF+U9st4c
+pGgWFVBfU8JuMEOS6B+eshcmyJimdul6EOKrJuq9CXol57YOkHO5WvZrAy+0Rtc6hX5cYUi2YEyb
+SMVgaXvfvk2aKneDVNX1ZmgDM2XtnKfNJRqDG05eNCjv7cjP475aPdir6E7OBtWlLRtM7vrlXY15
+Y4MJFMVdN6i8ImLsMWOOyEbt7hbGNmdOX5pznXSYVuiuN2MQKCH1WnAh0sAOz2XIgY58CfeBnNOK
+2QFFd3K2oeI1/JrD26DKjLxj06b992LA+NBSfs95mL5QeNEgFV2NUgTTZu7NKWGbcclrLPcDcqZk
+talovVK09SVqLWurbq/GrHbmaLeG6FZJtPbgfuQmZ6o3aSM82IrTl+XFBxSc0FcT0JspYZ+RvMZM
+/4/ImZLVpqJbKDq6gvfkJO/JefDqd2DVIMAqnSk9tEqQOFPR0qL0CFSMIGULDO8o3DEq24Zm0Mhg
+NEidMSwf5r5/eeugnHkOu9qVCkjRRleotUrMI6rBTnuzf5t9/3Kf3eJcosYWoO7pCABx7glfYZBq
+9g5Iuwm6k3MsOjk7S6KFogMKD9pjt+jDfhDhk8cpeu67cSZtr+PsqfpacV4J+/JkxWST6/plW7Wh
+aH1CzkLRkhdSNKZBokEfNmcdm+kODwxzWORDPOjPmBdTOeIwedarBOa3E9g47rur1IM1asF7MYcT
+9D45W7AqBWmeD8RVZxyPGiQwgq/LTmcDkjbNLOjEGg1Uu3OpjdS9y33fnsTGmjx3X5IzKjxaeNko
+OYaK3iPnmk9FFUWdOnBapx13MGprcKaRmSdiRlvrgq8GpXaaTa3nzAe2XoYddsh1vfeyyZc22mJX
+PkPOtDNyUNF75LzVgZ9GHBpZc67W8ylTWOmIu3frWXO3GiTXi9iD7bVtiqs9qWqLrRvwDV33tbjF
+V8WmnGmN+qCi98h5K7yH96S2580Y5WSjKo0SBMwEd2ceIlVd0KQKZrZg3e9UrPeittt6Q5WngWu2
+KVlRfIlvxRvIsZJl7CvobTlTsjqoaJbz0Q68n/vmjKrgtO1o/Qt1Z0XnWxBmjyqMN9CJ9XoHbnsj
+eb1lHLqNc7vaM+bxnY4LRCSGtHGc+KqywoSwxBTYcwV9QM6UbQ4q+qScjyx1alGjRyvMLwoLB3iM
+1Kg8JWKJAaSu0jYrGd/wzvL6wEB/ZMB2LNPJgLQ/ns4GRA6tTMkq1mbFlwYkHWIQmALXp+VMxh9U
+9OlXvx8nVz1a8j5No0oUJYF3piA4lCVps1UisbbddjqyGgducDCkP/0hOp7pDEzgMyB0/qVBaF2t
+MPZ6iJlkA741+FaY8gd4zHQV9NEE3cu5ryovOtuX4P0Cr+03a0zBByEaX/OmuqZNdeQsgxg1KFDU
+6vQPr12UqxZpXZ150kkfCRE3fNbHgm2L0Fokq1gqDi6RJTj34AYjZLmqoE8m6ENV5TjWqx25Jz6K
+nCIdeUdOrY4S2FKUyDUIUYN4r095FXzOixtxl/i1QNJuuhNd6URbgYEoVAaVBp05KWKkU13EF2TT
+Eb7a8BBZnp+gN0U7nvN6t8bSAQpKlZKPjHjMKRVYV8FFiUFLgXcB44en+SyI9c3idzIebsGYjpsi
+nERcG8TWlAKpyiDBeXTeQHzBxK2OatbKwHN8EFp2B7HPSNDncN/ae8VwJXh7vUin+4i1cBUGaoFo
+K4zWBYynU5tidWQzgBo1TMDwu8VQJ+l4JnXYkk+oCnTbAC23ISC6tbeoJh3HtzEWE2A+kssTQrWW
+8xOfKT07QY/jPoh0d+KNjlFYsC4xZEmeyziHaAfw9qGJGgTq7mgupprwQN88fqdDuAJjVoW7LERM
+RSmU7FBqwHWIbkRyrqyBng3zbbvumyaEO3J+4rPEZyfo49w3DwiRviupwdpgKApGmcpaJDPnyHhv
+oXPBR7Cb7gg2hnGwo+bxs+GT1i2ftXaYk6JfeI9Rt3U0yjiNVOWsMNEoDEd01Nyno+bcfTEhPCzn
+S5LVEe6bB8EEH6bQKE4USjL0NWP5+HnllAsunatEwMruqH0a1qjRqRUJlg14BjpTz88UBD5VX8Jx
+AnnZGvp2JGeF/puO1lspBt33pJyvxF0M9B071hXK0ABHO0TbgjcGEitgeOkKTDWdKx11WNRiwmMY
+BT+JnwrEs8Zb3lk4qLA1XGH56YlgNMbdCBcWCukCYy8/K2RWfHeflzkh5+dx3zjV2bM2GLQK2FTy
+sySNpsXFFswDMrVYPTdTQ6ukeSSkhp+PKcHSQRQS2qwhYYfOQU/JeAS2xThkEdoaTtL8vAiTfeKj
+idXqebC9T8Fdn3sX6KfVc1LUr+kQfoUsbsFbwNiIiKfno1ojjeHno2gOguyNf0teZDYe6tV4u+Bn
+oTziKsG16p4Eq5GaKbRN9/jbxkNgT4PnJi5IWOdzXz9Ls3r0oOFoB/RtAUODrAfPwQl6Dg78vaaK
+HMMQmkcfoMfdKHDgWfMzbxZJoQDXkmNLbEu40nCyavY/7HflZHWM855npnjhBQZ6GNowc3qos0Yv
+Tw87On7csW90uNTQY42wnh5sLHkLGzLR/GhjzY91Gn7E7/DDjVM91HmM9+azcRUHmw+JWRgcYfjw
+odbAj7X2DbNB3vQ2RJKfXk1P7/oET4+wJrZx47HlE913Yu6bDzCnB1zL7iltyeesmHtA3LuHl/nx
+5YKnU033jHLJD22np5RVR5S6LT8Hvcn2rHQ1GXexxduumFf0HL7gJ9TTZIQeUjeDZzrN4Fl00THd
+9zy67nfAz0rPE3Pf5L35dP7wLxFwSdx2reHW/82B4V8dWP/dAb1Jdcx63dnGPwO+5r1m3v/FCb/6
+ixNdI3hY/W2J/X9dYjOwZz3odLbxz4CLLebDv7dhVj5Y//EQk8b3zb+lsvuXZG5j/LPgYov7mv++
+tvoLM1t/MeccEc+R++g2tw77DPhxplN/e4Zn+KHbv2g+vK3ffHrz9OqHf6UNsW/Na1z57s3vn959
+fHr1H09/PBWLvz69KhY/0z9iUXD74c+nV2Lxw3dPr3Qhl16phXFiWRTWL359eqWCW9K2w8JYv6Si
+ZKGCXArjJK7YpbYiLJS3y0I6AK1Z0uM7i58AdGHpgzG4qJdOAYdP9UKlC1pLvVD4APr7DYyz1gfG
+WbE0Rfp0L6VfKOOWRXCOLfCar5illAo4B4PR6xhn1FIo5XHRLVEiwiwjl66gj/J6iVlhYKDxsDMU
+y+C9Tzi/1E7g48FUKboL9gkbwgKj1tLgH5gul6BtcQWkMN9moC+WCnOOBapSfKGBXUEtMecwuOKW
+tCy1wBC3pI1gXLFEnnAo7pZO6nTN6cIttLRLq7zDFbWUhTULTG2AU7hS+GUgdxBQ+e4LC/BRXuM2
+mKMLcA5hKTQcoZVbWmfoCryN2X4Cbl/8BRfxpTQus3cwtYAZguLi4S/nEX+Nz98WxE97RILP+h8I
+6zvS1L/gn2WByPzfQhSLf8flrKusq4t19fvT909h8eVXix/+8+nV908CstKsKujq7dMr27/1xet9
+Evvi9cUiA/RCmQF5odCAvFBqhLxQbIBeKDf4/FLBAXqp5Ai6R3S4fKHs9kiHP+/D0xev/xI/fqrf
+//Tp/W8f3nz8c/ENXce1j2+6n7+M3y7iH59+W6Qh9v0/3n21+MvfPn18/+HnxT/RDf+8+DK+/e3H
+d6/jt+H1X3/8/d3H/3339vW/vfvzdbrr96+6++gfGoW/jB9++7BwWiRd83BNzg+eBOoUlIq4/UoX
+ETUvfbLaBVK2hcRJjGGpNNSmoBAtO9lpUaTsCe+YArIxFl0DXoEsIF5lHeuV/gYTrhRQZzB8Dz0u
+kdInugE6DF8kdylbwP1i+IUQoVdyK3tCGor06vBDYWzSfnABgSJRkeXAicJpXAlQsUqG4uPpzxwh
+zLCv0NAvvriAClkzCCcZqpNnSFzKqURQgo72kKBcBkFqxk2YYuMCdTowwMwTWUFKvlIUwa+yZwie
+u4ELkBUpSulA8oaLtSQxi6UVnlQLU5x2KQlSl6DegjhJI+i2Ttwm+CUyS8AVs/ROiq3suX2RsyeM
+dCxjdFvnBcvYWsphyEj0J0EWu4L4aZ9K8Gnlj6Sh1Mq/s8C+//Dhza/v3i5+/vjm7ft3Hz7BP18t
+voaYMJGl/9Iq4+JrpB2jw0IsRQDLVCmmf8ufycdLR7L42hRLgxw7+KF/i7OlL1L6KbxZlL+mMqEs
+u16027O2L2z0HgD+9unPX969Xt+12Xn+wPAARXamUlHLBXD7/pd333Q/l+9+fv+hL4cxdOA2FCz/
+teKnPNkbFv+9gOoXnoeZv++/gX9PN3X/AWfcgRRMbyHXLLgi56+kmvybBbSuPUrzb58e7a9qZ3iG
+Z/gFrynWAW5mfIa/VPgFqnumaC+GX517hj8E/L6quwF8Otdl+M3gt5fNzOE383yGnwWfOu4vGH7f
+wH1u8PnE/aXCJwrc5wm/ZeAyfPi6b9wfFD6HwGX48HWbuD8ofFLPZ/h14fORzX3ht/d8hl8Rfi/Z
+3As+H89n+FXgt5HNveCTui7D5wOfleqeCb+x6zJ8JvD7qu6Z8Pu6LsPnAL+96i4DTsE9w18AfFLV
+PRM+NfcMfwHwq6vumfBbcs/wFwDPos3wB4XfS7Rz4J7hLwN+M9EOpTsT7hn+AuBZtBn+oPAs2gx/
+aHgWbYY/KPyKol3Bb2Z8hmd4Fm2GPy78maJNP9zL+AzP8CzaDH9Q+AWivUy6M+Se4Q8Nv0C050p3
+ttwz/KHhF4h2vHRnzj3DXwA8izbDHxQ+UrRjpPtw3DP8oeEjRXtcug/KPcMfHT5GtIeke3fjMzzD
+z5XurIzP8M8ZPl66MzQ+wz9n+Bjpztb4DP+c4SdFu1szXPHbMzzDnwk/ItrLpPtA3DP8oeFHRHuu
+dB+Oe4Y/NPyIaMdL90G5Z/ijw48XvVN/e4Zn+MXwy6Q7E+Mz/HOGnyvdWRmf4Z8z/Lh0hwKeofEZ
+/jnDx0h3tsZn+OcMPyna40XvM789wzP8YvhJ0e5WDlf89gzP8IvhI0U7XroPxD3DHxR+lmjHSPeB
+uGf4Q8PPEu1xAT8c9wx/aPgFot2V7oNyz/BHh58r2uHr7sZn+OcMv1i0u+n39sZn+OcJf6Zoh6/b
+G5/hnzP8KqIdL91Zcc/wh4ZfRbRjBDxD7hn+0PArivaQgGfLPcMfFD6RaIfSnS33DH9o+ESi3YJP
+ZHyGf57w24h2+JoP9wx/aPgtRTtewA/hugy/L/z2oj0u4AdyXYbfC35f0e5K94Fcl+H3gs9BtFvw
+m3HP8IeGz0q0w19vwD3DHxQ+nequCJ+Ie4Y/KPw2qrsifD6uy/D7wm+puivC5+C6DM+ifT78xq7L
+8Cza68Jv4LoMz6KdDj6R6zI8i/aW8Dl4PsM/h9WD6eA39nyGXwyflWzmBp/U8xl+Fg==
+ ]]><![CDATA[
+ /JZxf8Hw2wfu84FPGrgMPwK/b9znA7+95zM8wzM8wzP8JcEnHaQ+O7g42G7x7ZPCB2QIfpjpCebz
+5T40Wq6a2mwETz/KQTvJeXLjx7wGgdtkp7mZvU13bcB9H+vJjR8JHwZwTQ5ECG7RHJrnFrrmu+a4
+WW5r5l2wCb7JeQLjR8K3OabQ9dRCEdHKoipqbk3REBz/6S5UaCUa3Zb497x71usgD/r7lYwf9xoQ
+TKrTzNB2/BK7pmhxlxBSKKHRTNfoZ4Um8R4ZD9vbjn/FvHvWPeMtvs81fjR8N4w9QaIHcmQ8sTPC
+CS+CiKIUlahF07UarcK1iBZwhxOWuRNzkKZvX3PuGa/53iZZDVnqTqieOTZ4Q8JgC9MjiDS4SUol
+jbTSAS69DF3zaA6XjdS4QcD2lrkT78QanBHmRBdk6dvXfEewfR73LYoEp0iWHEfi6GBoJVrw0yAS
+ZCUbhEEqpYyyynXN4jetSPN4q5CtbHBjxO0OzMGbWUe4KzEuIOqO75DqOs9f9Do1RMoNsZYcRgWL
+QBBfTsbD3Chr9EENTlFVqkWfVFpri+bQ6L8Gv0uotVUN7ojKg71WZDx41/gA4iw7xg59oOcbWcqb
+gb04cHu4bwqW5JpYCg5jCZlK2FbKFsFzqgQ5BTpR15p6nJFGG2uc8V1z+M3gmoTFja5wo8ftCswb
+gD04C4S5xEdq4i46vpr1vM32aFjP4b4pWKbIwwSz9BxJDd014OhVjUBZXeoWNLwpTWslIuist9GW
+XYuA24BLFm8pK0xrKhPBXiMjNwA7xLtApIlxAVl7fEGBPhEotClZJbak5D2RPR24wzzXgkWPxCUK
+JFE0skQvtIq4Q6JO1wiTM5UVoBFt46QzzrvoKle7xrXcGvxc4pp3FlqWtrU1cY9wiIbttQmId4FI
+e3TlRgX06QLxtRBz3bElGYd1WHvVXfZa1XW9YFN2bdEpIdeOpYBUG0SgxAjpTQNLo21hfnBkvBdQ
+qvelbzA2CiRcWM2Jt/Ctr33lI941XkGKNZg7ZKoWMXdIyFRdgLFGjAPz9Uqi+zpm6+HpAjkwhXUt
+4RGBOxRKImlWfZJcB49GZFYtY8fSIIzalBBpQGljXYXRw/kKxEzwoQoNxksVdTSREnW0+MHgV4nB
+pA11KEMINmgMqA14O68Q8QgdFGBsEOAIsjW0UijSvFJga9FtS6RAimx5mOv26/Asct0xEUoWrBc1
+RoCArGM7ilTTmhom1TCuQnCCb8EwhhbsXCxjU4pSlXBE6bpm8ZvGNRHbSHHHTQG3ajBvALQYaGt8
+DDH2UHaFzNWgPxSQcgFJSGRlzWFVqcOewXWbZBLtWrIcTbiQBGsxeGhVQa4VulKNvthCcy1iQQQr
+RIrKg1iBnylDWZVtJSpVod9WrmuwvdK4JjE+NmVdlqUHe4VSqAJlyrSoiUowFlC9AV+H+HpE1+tW
+Q0TKIilbjD5BaOThTaKjRTuUrIVkU6+k4oSjSYINyDvRKNhOLD16YkC/C5CoizUM9mUNcqbyVVnV
+qN9FTSNsjfh3DVqsVS1R+bRVXVVVxK0WzAuwjuAsYw3GCgH2IBs9dRnoWVqPFG2QpiQiWyAdF+hG
+Q64HQnpItMSzH0tIsuiVHMoG+a/REBG6m+JU6RzmWxEZpoRQy1KCYwODHYxvQcTUvo41yNYtVe1c
+6lL13qJRtsEbFW4ItastuAvwrqoAzhKRjqWBtiP4VsEgcSlQLSDjEiI2nOeh4oDu2nN13WgzRr4r
+0fZds8ZwSZLFR3IoJQRrMU+JyKyt9whkic5Voc+VCCKJtqoQQWJY1g14qQa5uHENEi9a5EY/eVxz
+eMc0upEo9FuQJuPB2iLaBSIdKl224KsRXwuMgZAFio2ILqsg4YqJFhCwgvdiQd++VvAI2aoVSYmB
+hAIHyZbomLW2iGZpLbJr6S2GDPibWVYIY0AQNQhWCBrR86BUNgRvmqZt4fRWdI1+Lpq2oVfdVLiN
+2DtmTZwrpiurpgrkOgVFW3gIKQBKti7aGnWG1h5chfT4RI+iqYb+duR7PNNu8MRwWSPHtuiVGpVO
+iTKH4o7xw6FTRnTJEiwjuqKFCltwtDAaDEEOw1ALJBr6Vmv7Ruu0hhu9pXCTJPZgTqwjXGSZcY0P
+tBB0WRlQNcjOGLI8cUdCa5krFZzoVUjCFuSG8j342sy0gUWbeDbKIftUxqNjtgilg2Cr6MqiDEic
+gSmS6hBJDSPBEQEjhsSNaiFUB23gFrmFrnlubs09sRYc64pjrNGjK3RhYqsg4yLqgAoEfbpFFpbo
+rB4DK+U6dFVS8J6o7g0n9U3PGcgm0WrE06FrNkhAFrOs1pcIpYRgLQYOVzXojyUoklQrDmIiCApk
+fOJWcqs2WrlqPfeeNRGWbZE0T3wNolvVFiiHyEp02OAjjVLI35gcKcNd1UG+FYzvQnpsIraWbYvi
+oETPrDqSpfWYfEhPAzTSj8UgWWIorJA2AuSqO5YSJlIQe3qJUr1qlGlbxGtwidqQec/ZJb4sZ6Ja
+4ItolKkC7lLgimHNIU+YoGkyiIIUZb8+HtLEvY9okq1EZSowaBqItmae1qNMQ95E1gcDD8G6ukaP
+pFwHufYsPbMsBwyb4y1x32TdM/YcX0QXbvSNRCJHzsPIg5oyoE7C5JZEixSMyS/K/oKTUt9R94uX
+rqZwliRb0nwjHUaUGkkIiY55yojapXTomPjGOmLwsEgdDeS6SZE0v8Vw/2sf8zrB13wpuhTbBpFV
+kLCqfFkhS9Mbja0NFVkNh7RESJF700LroZTUC5fCqVAgoHiG1zA+W2Q2L4PgwgyFD0Y3VACWo+k5
+76hNlgOKZ++IbfDtyBJVTlYK1yO4lkhNpkSdgq4KpcFGjaRkMUto0VELGlE78W6Jds2UhEsd1CKc
+XildYFxYDfcIJpFsIdkWnSY2bLyEttweluO2804yTnxJxhZEKagC07umQgYhzyMASF8U1RKlcysR
+Isxp+pS0K961cCsSrRAepVCFiGJGAtmiAkIlGyBahSzrkWNtU61CuUEx9biLX9vce7YUWeIqkZrg
+51pDvqgOEVKHUknxcqLmxUaMqH1K2ifeTeGW0qB3tsi2jSu4PED3VCUmG1XF8SSe1DEplCcD+bxt
+3FWyIq4e8hHIfLqOkDXsjAIdtUJR6LmDlTzKkHj7zLtTGiWmlHEb1PAkXKPxP2sQT0QTBTtmGMhA
+NciDJH37kOdouV7CvQ9qpKyEX2iA5qiieIk+WJT7BYpHmg+ReAOPpzvddN0/U7LiLoq5SqngJOTb
+6Gqok9baC8g2oACPEC2RjAOSZxt/JvfENcmXQorhu6q4Qq58QD7iUYYWUBXKwQolUn2gm6ZMlMYW
+jwG0VpgzGOqwtvECY7ItqQ6RiKhFppX4vrDJ83zjz+S+jiolJYtxBvN5lA5JvAGjA2XegJmgSX00
+7QptR3XNNGWiRiHBoosKDJ8OeYiEi/KkoUEKxDQnoRM8r8m9C2mqKg0qiIBaicSLqQxqB4HMW+qg
+oqyom2JuNOimm6PMkGnAKNoqWhFonfQGfbRExRdrx8IVXThvI9oh1xTSJF5Zu4oyB3HHcGqcRMlI
+3bSRclUg7XbTHZo0f99kij7BTMuO6dFwTsKdvq0Xb82ZF8Z03dRYiS7ZYnqqReTtvEFCEnuZFnuk
+SzwJvhHTxPSZxp8F71OSR/JN3bSoZClQDFYuoEDCUMrZqEQ22ioa1qPMqjDCOw7pqOKl2Aq5SAaD
+yafvOylyrumle+Xy4NSrz7yGxpi06CRRE+mIaZXDxINqQaobeB6zP+/2w2jklVKUgC0qBBpfgi1d
+E0TUJcosZN0G9WDDuYhy7h7pTjzKUDftshGGUlXRXg5mVZiIR+M0LTIj9Xouj44xNV3BUHPBoFHR
+Oxc8jTIIYcEjacTks+rGl5FZ94rce6Z2I++aIDGPKVEeWUzX1iMM03zaOvnQl7t+VQRK3leSTnu3
+yrsWUzMSL1UXXVTP6qjP477KuwQXKBcKlPNphFGo7UsuBHeY7tCUabWwT72UkEpSLLppgREqiVfU
+FReBcnuMuckosw7oDk2qbcYw3Z6mUR+1rPlOv2WAasuaxxhElYsGd6pouDr3XelSJ03SjSzdQXFE
+gTvEtJ/BaFFJyzMYmm4Kr5B5LYeUEnWN+QOPp+b8Auk53Ju0+FB26chzOjKliSoUSEepDDTHctF6
+1ahfThFc8tKU1KOy9y4ipOijKBsC6ohms+Jdr5xc9BpfGq2H0RbT0jpVuzQBF76BhB0NL934criu
+3xSvSZtKLi0z8CEbiY6aJqU1Jt+i8Rhn1KHqfqLSqB6URgZub/m8SuNL5xBNmr5IWjvqSyNium89
+sBcvLexKzkc1rzJY9FLnaRqI9IsPJQWjx0ruqmprWnqm8WNfgwn4eq7mqS6NFYxyTluhW14lS1PS
+rVp3cwLeL3mmpV3DIZXoqLWpbY2JKa0c1RhnHEqHCv2UysJudnrRFPwc0a5XGUi4lIlIdZXnybfx
+0ra8clTKWqLfdfsT+ybfq5CmZNVHVWAK7lA70PkvPvwVZVkg+1JXpeWGcoto3Relp5Y691Fp1kvc
++9ZBhytHZjUhlZyJutUU2lyg1UDbzdQOL3oOQ0q512DCxmdOMBOyfJAmoOiC51qoxiAtDbmu18k2
+VnUPG3+srda0U66rOp6ui6jAPK0saXe18pG7qEorZF2lG07tTQw7Km0ztSgHSb7I4zZiQOV9j5JK
+o0pUFSTNXLmzbq7TD/cidloyfl+r2n17NHG1ki0alCw0xlWo6A0d44Fw+1Uj6qL6xJJnsX9vQnXy
+tVryIi/8iJEmIifZSnZEdVqvTytmPdv15tLIlobIuNHWu25p90nx7gQteFqEs+FtixoTF3Al1Q1X
+Ao910c2Qun4uk/abasxmDLpqYVuHsTqUMYArBRXdBRl4vc002C1MJfH41h252t5I7bdRC0xDS4zh
+BfJtiw5qIx1BMw71EJ0DxmTUDdd1n/gU9zGma/mWaQORu2rESKMtH5woQANTe3A1GFcjknDkrcMA
+tg1vbdP+aNoD3mop7vub4ia7nWHR7Yu33b54pP3StNTpMeW2ZcTIAsqOq0AdkHEbHlvkcPtwn2h3
+kxIfS+GumracKuQkg7mQ8AWIlhCwKpt0dAFq4l19DXNox7tCq9FGvNJOaMO31wwsu91+Ouvgu7MO
+CvmnqZEBcYMtSyhb0NFfR13G0sluSkUehW7KuPvWUfbK96k7Q+66bUQvC05LtUZNabUTCGqFAsJg
+tIm8uS94c78GWUx8yHha6qe9m3HNcNMgpBr6djrBks6v8OGVkg+vaEg20t43eKIA530+hym378IZ
+ufZb1fPnHttoUk6iQSoopRrmikyHGiJitBGYrRqMrboKiCKdunF87gbFBVrVt5Qq97eya3QWB3Lk
+8zimO40koNOmIjg4ukqWFer4CuOn9SjCea7R6AIdlMO5ykN76/lTXEseVSPvDSeixg==
+ ]]><![CDATA[
+ CotCGnCMrALd1YCWQdVUgK+DRSXsJxkORoq6GDa6wppfNbqdzldhig+XeT5jZviEmUBWphNmDgUC
+ncWpg0LVR4ka/mghW9oJrqTkDlof3GLaeg1XzNbnGja51uisCuk10iEVjDca01WNwBY8wpa+jPB7
+wycXikETG234TsFDDGa8BMfQgQ/wfG6Qy7qyoHODMUaHQNL5qhpDp7eVLfjEUYnshYIV01A+HBi7
+iJ4W7qCrppz0xOfn11wDOms5OHUUvQJbFQKKYRVtDLGEXXR6iodDMr441FajJt2OEj3ShiCKkv4M
+aCTPIy+hdke5okOB8la7CmNKGJys8rwLvHFcY389f4zr+uxjIkpZieD9STJENiA5BaRiiwRVwBoL
+mzD4wLoq1PsaGT+8UHFDKUL72MHRIYwgg8Dg2niq3IN3mBkLV/OJTxatMtEU2nYnyMTqBJnd7aCH
+RTtkuss1YJyko4F0ltWhQvAoI5ylYSKdSQZjlSbs3sPEcY2qCwCgSI8k6qXHYL06q+2QWjGqITtH
+azGYRISyxCw7KtGfByTj23Fnqg5x3+WqMBFqpEZpKPmspwdbuzphXqMyErALTiDuhps92EzX6CEK
+5BTQaUGIVoNomODD98aiUkGHbExlvNEIZET+qVERoRRnnoazrefD5yvZjhPtwaA+8bMD6fyuwOSt
+RnKKutCme2rAwd8VbGoRZ9wECzcaGS93muBWIIViBmZoJQgpZ/U0hVg9T0HFCT9cgPIb0SzxHp/b
+BbGqO2N0VLanuG8fyE5PEASEFcOXpB6H2K6fBPEwqdI1jDtY7g0bGU8/oFwAiHcZdOBnRLonZHQx
+eEbGoE82mBcbhLKig9hJtGueZ8p2f1k4OMnLzy9ZyIYee7Gr53osbImq4v04RTOnsY3uxqhJk2lF
+ouXnfvipJzhRDB568vTIEwJJLA0y7Z6T9eeKdotov5GqumdDYve0ll09q2X4Wa0S9tBOZbvZnvhJ
+pWMNxSOAmGjiIyI/xdY/w6bTc1Kye5Ct5MfYND0Hs3oI5sSp+vO4b0q4e9iH2Irh83fgXKD7ppc6
+1p74MHDf0kt0z+WlJxPpucSSn88bPpko0jNcqTwYPAFzsoo/g/vu01v8sCGTpUfxTNqPc/xQZWrh
+ZPOrxoeFHOem9LRpetaUnzblR03b1aOm/UOXG0+qPUe0O9zXT+RtPkC6ekKWn5FNTfTPw5569YBE
+pl09O1ylwO1/fHj9YOmRZ9Su0GF3n3ruH+aO3ZPPB9sTP7GypyLs2vB5cLf7PHjaEdt8fPbiwJ3k
+OpAxP8SepoGmew66b25Us6miHgJ3n/Dvn3XffcD/TOPP5i42+A7/6kJnWe/58W3vH22QG01stIuN
+v4j75nfLY63X/PEmDrW+KL36s8Bnwg8aeKytjT/UbmN8hj8a/Ivmw9v6zac3T69++FfaV/3WvMaV
+7978/undx6dX//H0x1Ox+OvTq2LxM/0jFgW3H/58eiUWP3z39EoLv7So7hfGyKW2zi9+pYtmiXKV
+Lqolxh+1QMW2xGxM4opZyiKYhS7CEkOowhV8ghNh8ROAhVmiYgDQStxmBW4rloXwFlfcMtBHqYD7
+UfgvjJNLzOMIp4JdovgIuOaWGv9VAV+DrL8wHjdhHs8fpAr6II9bjBb992EaCbMC2WfcgviI4OXC
+4n5MAGG6DEsTtMMVsaQFBgbqArS1x0W1LJSRCw0anjmHsKSp6kJbu/TCwtCg8Qm4h4BOLyVwxocl
+ykngnIWlZJcLS4kKm6+wCUSw8GDKOFyU+CxrlsIqi7tUokH+C/gd/oEbDPtc+OTO7Wu/4JoR+ADH
+8QqYGS8wFVsGJS1fobPei92Y/rQv0Piw/4E6viNh/Av+gR/s4v8Wolj8Oy5ncXzu4vj96funsPjy
+q8UP//n06vsnAW1olgbE8fbple3f+uL1Xp3Q5QuVAuiFWvni9aVqSd95kV4AvVQxgF6oGUJeoBrA
+9ugGVy9Uzr7g8wd+ePri9V/ix0/1+58+vf/tw5uPfy6+oeu49vFN9/OX8dtF/OPTb4s0Xr3/x7uv
+Fn/526eP7z/8vPgnuuGfF1/Gt7/9+O51/Da8/uuPv7/7+L/v3r7+t3d/vk53/f5Vdx/9Q0Pal/HD
+bx8WToskTR77tBQInk1MvIRnf02Kpz+8wl6wQRM9A+8FlqbzpDghliGwO6HRQpuUVDw0TY6CMI21
+pCaE3AiSql9qUcDv0IZRiuKFt6RNfRwSQvTxac4vi0Jr1q+3+OaBMNXSsVEQZhGk779R2wKGBQEl
+wSxI0HrSET4Igl2LkrQmSRIEUyH1OdKuhhA1eFllHONYrBoUQiA7oUiaEKZchH5mjWZBGnKIZhZa
+syAxuXB8hR6mZ0FCoS4B1dJIugg9GqkJiG8ONjlQyYK+UcMWZ9YZgRPZ9kXOZHAXPp4vSivQL5RZ
+eicFX4H/8Pk7gf1pX7TxaeWPpIXUyr+zUL7/8OHNr+/eLn7++Obt+3cfPuHTvlp8jcSAaQr9l1ax
+Fl/jMwy+CX2D/JvKp/RviYKKLFLCLL7WFnED9fUP/Vta6KXQyrI7OSGUv6Zxtyy77rDbRbYvbHQD
+AP726c9f3r1e37XZC/5Aqi6WvrOVSj0uC9v3v7z7pvu5fPfz+w99kYg0jttQAfzXiqAuONks/nsh
+4HkBHsj5f99/B//e3dX/1y8U7hGO39RoXKryt1Kx+s3CC6E9atZvn+79h0EzPMMzPMMzPMNHwm+2
+yjOF8Rn+wuBXV93t4fdyXYZPDZ9UNg8Bv5fnM/ws+NXj/uLhMwncZwWfQ9xfNnyiwH2e8FsGLsN3
+X/eK+0PD5xC4DN8LnzTuDw2f2vMZfnX4HGRzX/i9PJ/hU8BvJpv7wqdwXYbPBz6RbOYAn9p1GT4f
++HxUdxX4LV2X4TOE30V114Lf13UZPh/4LVV3Ffh8XJfh84FPrbqrwCfinuEvAD6d6q4Cn5R7hr8k
++HxEO3zdhnuGvxj4HER7XLqzdV2Gzwd+L9Eeku4DuS7D5wC/vWh3BfygrsvwWcFvJtoVfD7cM/wF
+wG8j2uGv8+Ge4S8GPrVoz5XuA7kuw2cFv7poxwv47twz/AXAry7a49KdFfcMfzHwq4j2kIBnzj3D
+XwD8KqLdgt/M+AzP8GuJNv1wY+MzPMNXr4tFO3zdy/gMz/CLRTtewLPlnuEvBn6BaI8L+IG4Z/gL
+gF8g2l3pPij3DH9J8HMFPCvjMzzDR4r2UBK+r/EZnuEjRXuugB+Ce4a/GPhJ0Y4R8INyz/CXAR8j
+3V0Bz8T4DM/w8QKeofEZnuEnRTumirj42zM8w68CPyLacwX8cNwz/GXAx1QR0317hmf4M+HnCnhW
+xmd4ho8R8GyNz/AMT6+9oh1fSzzz2zM8w58JPyLa8QJ+UO4Z/jLgY2qJ6b49wzP8mfDxAp6h8Rme
+4celm7c2Mvwh4EdEe66AH457hr8M+PhaYopvz/AMfyZ8jICHMp6V8Rme4WOk+5T/ZESGzxV+UrTj
+K4rbG5/hGT5StGME/HDcM/xlwMeI9pCM7258hmd4eo2Xbl4lzvAZws8S7aGEfC/jMzzDLxDtcQE/
+EPcMfwHwC0S7V/N3MT7DM7y46v+57e2Nz/AMf6Zox8t4htwz/AXAryLaQwKeOfcMfwHwq4h2L/wG
+xmf45wyfQrS7r4mMz/AMn060Y2R8d+4Z/gLgk4p2V8Cz4p7hLwA+qWj3wufDPcNfAPw2ot19zYF7
+hr8A+C1Fe1zGD+e6DL8v/F6i3YLfhXuGvwz4vUS7e/H23DP8BcDvK9rd1y25Z/gLgM9BtLuv23DP
+8IeGX11114VPyj3DXwB8CtVdHT4R9wx/GfCJVHd1+BTcM/yh4TdQ3RTwObguw+cAv6Xqrgifg+sy
+fA7wW6ru6vD7ui7D7wu/l+quDr+96zJ8DvD7qu668Bu7LsPvC5+J6q4Ov4HrMnwm8Pmo7urwqV2X
+4feFTySbucGncF2G3xd+A9nMCj4fz2f4VeC3kc3c4HPwfIY/E3572cwNfi/PZ/hV4PeSzQzhN/Z8
+hj8TPhPZzAd+M89n+PPh85HN3OBTez7DnwmfKO4vDD6F5zP8KvBJ4/7y4PMJXIbfMu4vBj6HwGX4
+7eP+wuD3ClyG3zfuLwx+y8BleHrNIe4vD36DwGX4FIHL8PSaNHAZPtu4vzD4FIHL8BsELsO34HOI
++wuA3z5wGT583SvuLwB+38BleHrdPu4vAD6HwGX48HWbuD80fCLPZ/h14VeP+wuA38bzGX5F+Bxk
+Mwf47T2f4VeE30s294XPwfMZfl34DWRzX/h0rsvw+cCvLps5wG/jugyfG/y+qrsYPgfXZfis4DdQ
+3TPh03HP8BcJv69o78s9w182/CqivZfxGZ7hGZ7hGZ7he+GXjW57x7gM/8zg4mSb8tsnhB+hRPAL
+ed/I+BHwXYPloKlDjeD0w/rWUZyvbPyY1x5qBF9z010zg2a7tr6S7llx32U9ifEj4dsMh9SGhFzh
+CO4Kjxb2NnoHt63Yr1ivXXc242twH/S4NceeX8dtRSuilWgVWo3WoLUFj3Ett4ZbzTeUfHtY8V6z
+Hob4WcafwX0zjIkg0yN4z65nxqxwP72kUEKjGTQ7aIavkmhxiwCRtmNerljbDcZ7g3t17muea5aO
+CSZ6dUeMaZHxxMoJL4KIohQVWi0a0VJjq+mnBq3CuxF3eeau8AFFinvTcV4zPsL3OtxXou3lmlgm
+jggfM6SwJWpEjEnBLCGV1NJIC7h00ssgoywHLeKKlxa3KNxcMPPIrDVxBuGa6CbZuHP4ns+9D2Yi
+mQLJFNnzzNGAYWB+LcyV4GaZVCkr2chWCSWVUkZZ5ZRXAS0qMp5/9Lhs8LaQrawBCfCIlhIRr5kz
+xVlwgOOQbPL8hanqcKbtRZtCWbJUBQeRCDZ4WyEqngIXwY64ETPHnCrVQO5CK6211U57HXTkFtA8
+rmktYX1D3CtA7P+z97Y9kuNWlvD3BvI/5BcDNvBMjii+ez+RlLRrLHYHmIGxBhaLRtvu9TRgt4F2
+zy68v/4591JSKN4yI7IkBStMhV1dFRUnQ4f33DeSYkkF3j1YO3AWsHNkxi0snPkexLyg+mUOO0fa
+LNqRJ358i292UNoAExrYgei1IOdArQOxFrdvlQdcRdWpAcG01UobbbXXQUe8El4Rv/fa4X2F+DSo
+BO5GSTmAspOauAtY2mMcBWzsF3zJeQ9sL5r23vJgMieJtuM0AT0ZKKtnlqHtwdEwQ8H8oupBTOL2
+HYh0ekCglUYba5wh0ZpkOtObgV89XslE440xCjGpB3sL3g1YO+Yc8MMFhtJC0uQyzJf0HEfrHhz3
+w+s694kpxSAyZw9jZpIS0upA0cpEhmuUhjl6GE7DSAnZR+LWHSh0yJCtVdZYZ4NNtreDEw5oB6vh
+V5IN/K/HXwVr8UGBcQgAt2DttYKlg1Jg7KWEeZkv5CTBK+GeOMeRlm9me5n7gSkJNw==
+ ]]><![CDATA[
+ 4Y8K39LBmA6mVDKAolERmdLAFgOs4mAhsruV4OZx+8RLOeOcCy65Hmm3RSBSXnszvjT+1CJ/di7i
+U4q52w5gDYVGcBb42Vr1sLGAhSXsa8AqsGk7FvKB6ruGu3Yd0SR4hzCkRcCPNLCnkhHu6OGDBkZs
+wbGD8ayNICdBLeDWB1DQ3nqC++g7PwSBuKuDCTa44MeXw5803he+x6ccmAuAwdoOICwNidYYPcAd
+GvBtoIYGzisRKCwct1+wvWjWj7kvDUo0jUgwp0doxfCSaD2s6SFVZ3pYIKIS1GDYg58Bgw4lHtFy
+IYQUetSGbZQIRia6SNxjwIuuED3esvgrieTZ4eMWsbkBa4t0m5wBYwdZ46u0hZyNJO5SwboKodkt
+2MrbRHzKnSA5HJF0M1OJu1UyQbQYYsSaAEMGKNQ5ShMQpgNDAX4e7AZwU6DgQaeLAyqlNikEXZNc
+8niF8eXxZ/I4/JVE0dTHBIhGYdHjxyg/eA/G0Um4sjAODqzgvI20yEVmoko3fxfbY/ESPAdeclJi
+ioFENhlgTqV748AzwrcSFBdgQgMzDbCMhZ26REMHbjpZZpVSn4YObt4hTne6g9zxcvwrwhDek51I
+Q+pSBHOd6NvBOoBzAzsrqF/DwtJ6BGwF9+4RnD0qjoltB4sccs8dDnsQb0SpoEWEQSnSSoNAlLRF
+fO2th1N2EGsPMyaY0MaIIl/CbJ6ogRjRMiAEW3cE77qu7wY0MlT3wiq95F9b/KnpBvxtwgcdIBLl
+focfo1EAx6hgYKoqwVfBsQf4r0NKbhCYJ7YWISqNbC+a9Rr3HJLIpAG3JRGLWkhXM02PIqC1vfOe
+6nnwtLCliQkmNDAfMVQwle8iEWNaqJV6yKAHqkfo6XHnPUwGOP2HXwFvO3zA4KOyF+Cd8CNM10IN
+Pil4gAEK8nGIetYapGvAUXQQ277VCFEG9CjTTiL+4DpkmWxVx27qUBIhq0G6ES5qUNghRHo4Eu7Y
+xh5jH6FOECTDBRBs2GB65Ea8MAR93w/9wD0qNzbzi/5EPQwlKXyoY+aOWQuoIICxwDcoOLEKAc6L
+CA8hRxQnDWRsEZ8kCkca+TFAkY5vcdjJpBaoITdiqdWo9FGzQbraUuIf4IAOjpnAM8EDLYw4gCDR
+I3IjNZqjbpgXaoAB4XNAzhjGOmmw4yv/SfPfS+KOMenxI6iyws9TUHfCNwiIRkSHII0c5izYBp3g
+tEJqlGwNu2ziAmqMTbdnGYcc0woP8aIcVRpdSWu5thFgiqQQDVzTQ7AWhhRg6WAPMJzJqZEW0XH8
+oiwzwC5DOHvRu/SRzF0z54YZe/xoAbI69RyokZ+GIMHWQMkOISrKDpWjRRWVRWyvifhSlpmtCnDf
+Winhpn2Om5BuAk0L30wQLXucgNoCWA7gODHM7A604vhKxy/iPv0hf+DA27KliXEHvgoO7BCubEQi
+g2Ex/JZEi4CsFTooVI2IKkLOwfijrDNmmclRs1U7lIAO4rXWIRwhNsCgbepAvYe8PKJqgztSmeDB
+cMfcuqNXf/Q6vD9zz6yJMdm4xacixCzgugJsI+LYsJiNQU/Vejg9hYv3LXsi3yn2aiRCmJRKI8Gz
+DqjTqf9Ev93ApsRU4w4G8NRsxongETW6+f6O18h5pMuaJ74KPtzBSVqwbSBjP5VZcFlESIkuEuUT
+whNi08GsH/YyJN9IsbdF94TqHCWf8SiMEmXISCOP3ym4KJjComRPxywPHC/T+HBB7ZRzZuxZzC1c
+1/UULuBEfUKZGVAuQm6KJjGQdwyHJ7sw67sZdhmUEMMRewXnxQEmRSwIaDaS6pou4s3ANG0e+XiR
+5RcsJh4YJxazY7YdZNx0JkWkY55StBSsDIKWSghPDVt2ctj3JJyJmtzLkIJ79JWoOrVCPnUo1BOs
+iuqtw/dhhAdEITAdaS7orbiQerBvZisQlDXKEwmXRUXqvXMWjQ9uks167LDvBac5+uIDFg1b4uYy
+GBItSKEJizR6CP4Qb4KTmiOmdxrulouHj+ATW4WQHHrJIhY83yiQn8iscXTYHIcXhdP1GTPiSmUS
+mkLkR6rPB9sig9ngI1qRTsOkZHdQU/juG5h+KfdJyAEiknBZLswG0MMNITwFtqyCw0qEYoei2KD+
+Cu+XxLl3y5kmu2pLE/JGIlsHT40n2o/Oo+6Lo0lnmiuK9jpbClEGIkao6AJiFmpzmHV02MShOCLD
+IklyA+CuBacF0U4onrNCsoETaI2cirY7NDSvi6CUUDT0cFSKu+maQVfn3h9EjK90bFYHswb4K0pz
+0yLDCinR66SpJL4enCaufoxJHm0byl404R35KXWRaJ/QZPUclDTL92bxfhn3PifoU8v2aPREaNAX
+RYMiXVGNHhc5Z5bw5cmHievQBtRf8FKTEJMkMo1NNrsq8oyeskx3n5t+nvvSrKPD9gjFBk2ARVEs
+kUx76vLH4NTOEj4369gOcLrhAniAL+QQ3DnhVbDRJQeuAjlVLFz10zd/J/dTh207lxK3uwlsiTvS
+DgUnheDUocS7LuFs1COiecbsEle260dG3cxhKRR3vUHLI1A4IRwh5/ToYlHbST9JmAx3UPH7XLOA
+kVddMwmYZKMOGr7HWb+c+5HDamRYj9opByfvLZqdFt0Q8gOXTUsJX1iDPg9M8HSUwAE9NxUQFJVa
+RCWLCDwm1ame/+T1WYc1KBNTr3JJ3HEf1EHFjiXc4n+WAjGXiJfcdSRK3IkrEs5YGOZs0yHb0ILw
+gBI4F0uWs82JWXdwWCqLx+CEIlGgUiIJN7bjVSHtOBBTlXhcS1zLrFKk1sDDhaYelqsIj+pkKoLb
+0V0P5dKnb/5u7pckjJoJfQ5F4Q61Ky3rtsKhkKDZg4vuuiwNWxFaJRt0NghEY2dj4a6mkzzViTqi
+mwv+vR12Ck6kYiqIKRB36GCd1VxLNFK0+pK7nvZxuWOlkn/qWD3cNXHB1HBxiCaZI5PKJVP+9k+7
+7P0l8UHCJk8yN4k2GzSus8FYOJ28wV3HaYgXXv3PfZzizQyS4pN3wSHjGASn3N2IIxHPVDd32FHC
+Y4lIhYQJyrc541CKXLrr5ex63JxDwuhu4PY6ckVtu3FepYfDGuQcy8WwGUX8jsuuzD0H4lxLhF6g
+W/ecceCuZuCOjup+wQUi4lJel7kcmg4SbpBdDaIw7dnISsa4wfEHjvOkY+7mLE+53CHiL+E+9rAH
+d1XsrqiJEZ2slQi5tEwytJJ7nAtlxHJ6P6/CUcaJo2WnpdHoacHQjyJWPL9EIg752z/tsvdwn0pE
+NxZNkUeeNjn53kVr0b2iiJAtQlOcQ9N573qQMIlWkAhoKUPDYRua4817smDDLoVOo54w11x2U4ed
+uFJHZ1H3I36iexXc41iagcnrsFNouty7iiOzksPKtkMcRiHCk8ysY/TBUaKe6MaJpptcdlXuR9kV
+X6qOQpNTcLjWi36s+nXeknrepy/WHXl5tUMAFrJDePLGWz9OfdtEQwdDhs+67JdMOo0z5GERmqiS
+oH5OmF5H5anwfy8GZ4c9WHZcj0N48sg6QiHAj0saiAIxICgfuWz+9k+77O3c+0UZEVFGuBQjeRzi
+MBX+VDWdhOGLHc5kVp49zDOleZ2VlqpUXqoad0k2H7nsZg6bK4nczx3HYMMxmJp0CtRcITZXu7nj
+PS558TyhjhjQG5LhtKGNZS5vLbvTZVfjfhyGNcIwpMV9uqfykNYwodmTfHN5aWMS8bSobHldrkVR
+zIsIB5clh1Wfd9nPcZ+JEnysENOQBOebgHwjteBSeOpcr0yBHzLsIRjn9VaqKPRHLpsXlT7tsrdx
+7xf5JndzVAcLT3CXuHO9JbeeReIX3jBDFQWlnsXq8m0uu5HDTvkm59aOJ19yze/hYdSi01wplwfy
+3XnhY5d1xy5LFbX7vMuuxH1Z9h/XEQG3piaup0SvrUWe5p0rLkuzxPaCy94o4s9wXxClhRV3gauc
+uV4rmI4c9nhz2s0uSzevP++yt3C/JGCZm9YX3poor9n16jWKOM9d3Oqy3clK3RYTL6eBSVCD7gdE
+Jc/zaYuo9MKb/2/hetFlqaKO7LLmzGXF6LLvTMisNlPqzrJN7m7E0cTLSba55rDvuWyaN75S+x88
+uWzXwGXluLJ+s4g/M/EyTX/rjkQ7VxHuehVxzZ7ns8RLlxULl83bz8hlI1xW5gkZuvkrczK3XB/3
+cadlcArRe5SGNPnN+2m7w+ThR1xPXfaF95AvXbabXTY/RkMuyxMyYGZPXXb1Pu502iXPkrY87RIk
+PSCyqPdfxidWbuF6wWWpoubaWFvDDyPwnIxKbeo7B5f146aJK6XiZ7mPMSkXZnnFldbl6CkPNS7g
+0NS3fX8u7brDXnZZN7pszC4LuA8hRJd0J7p4r8veyv14pYqqfYpJVM8jBOd6aZoj7RZzpHc9YnbN
+ZfOEDLkszSr2MY3bm2i+7vo06sfXZe7HK5AoWzrLrppn0uhJlgYxSbDqLs993yTjeXve5LJxdlk1
+PQw2b1uz53OoOU18+srcT1aWx2VlVEle8TTENEN6FpPeE+1lEY8uiz/ovHFi2ktLmzppPyJaqWho
+GvXjOdT71+MOJm05zh+2C7B8o0G25+ml91epLoj2Mtulyw5wWdog3Wka28SdlE+Xp1G/fKfTyR6Q
+eZl13ANCZaHgpZuWt4Gc7GT66Drlfuyykl02SqPQEh+eaz3ModLIX51G/fg6zTJHVoVJ47i3R/KW
+LYTIeWPP2Xrc/c9Gzg+06nH3cJ4d76VXVuujOdTmUnc3LWnde/XL2ULLjpqt6iNtIYvOoyjU44at
+PDt6Qb73OOy5y1KknadRw+k06scTMvdlmTjuOaQyibdrURdJVm1dg6DUzfsrzzbi3Sbay2wPeecw
+h8rbwl/oAbdr06gfu+zHWablZYwevNy4B49MStsrtaSZk6N9s3fK95z7Yhp1MYdqldLt4knzsbuj
+Ja13Vj4+ul7GfRdT7UAhyaMgdKlD7J32VpJJO977oReboeV06sKnr5f5Yd7TadRwy4RMdthbXbZf
+RF4Wb84yEX2qRkZ1tGUWHY2i/RuUZ9ik4voDOPc57LHLJt4sND7ecGEa9WOXfc9hD1uhl+KleJT4
+qaSOcxyK38jPaRxb9Sb5fsz9ksvO3R19+zsrHx+57OkU98RUjpHXsnihIXpA37Z81IScnluYtmnd
+kVM/5n7usnJc9mhPJ2TIYd9drHzfoMSdSnxy0/zUgmLxknpRPmgkOfRu/fgwyplJ7xXtBe7vrHx8
+5LIv47bM6y673MVvx53eqktdm2ykoaMt2fTkJGqHhJA0oEiytAX6lkdR7ud+tOwxrUF/0mVPHfac
+aeQd/Apu2sUmnxRi6ayQFn0bZ5mIjtwvnve8I8/cwv2dZQ9a0np3sfKKy46PZbzw3oP8HAoxTWNA
+inFAjqEWA7IxVKOReGmTLK2VD9PjgJcXkW++ri1ptUfd3dU5VJryur7ycf7AzTFN3g==
+ ]]><![CDATA[
+ c2JSQi+uAtSCyoGe0acqtB/Fa/mUgZWyzEXuV1c+3nXZdqCq8uxBlgPPwM9QyVG6A2h2qO4NohE7
+BD8zgsphmJ98vFO8n+G+6O4I/u5iJbvs1MvKebItHR4xSyPPwwNUFI76kalFz5YQjehAjYaf3HXT
+46znT6B/ynC3sL247EFLWpdWPnj6aWTrFs9FhpkkmbPjdRkU9/SEZxqZdq53DQJSiwLJsJvSM8r6
+5BnlLQ+kes9l58I4kMch0eYZKDWynR4lzA925odZBZvToGAInUwBJYMJ3nP7P4ApmikOSAnE7Pzs
+uftIvCtxv81lVWyh2IjolKn2eYZcjg8wq/GR3Q5/ZVEuwLf5EdYexZFDY9ozTYWiIaAObPloINRI
+x2cKrH4o0+k1u2xeFbrssnn6SSFAJWYr+dFmRCl69hyvLs8aedizhYN6WDQlGQMyqUZx1NlhZtpL
+2XpOpXJ5JsYKvcytbC+4LDlsbmeT5Y1GwUcDthEyDgjICsQcv+hIAQnRdvBsiThk4L+GSyPUDAaj
+1NkG0iWmg1SIuwJeQdl0WSBtkWUus73ksrmXbfgp5p49Dmw1P7reoJ8P4JZjcD8emgCrI5000cGc
+xieURsYG0yMWaT7TCTYlpi2H3mEMSDcWSKtxv+aygaef0Ii4ZnEegULEGTpSHZ+fIRGc82EYCu7p
+ogg+NDBnQhFoTIA3S8SiDtLNNMe4S99+Zym4BvfRZfO3L12Wpp+m0xcEbBuCDj0fpiHA2PBL8aEu
+IRI89MGBp0PE1TZCuHTwUYMGPCIckZNmplPcPUqlm4n2Elt5Ov1EqptO1aDzQwY4rfZDsKGLqPXA
+2eL/CobsYErpOxhzgGw7q0ww9O3ILkm10oOUy046Hje1PEfsi2/+bvixyy6PSiGqyjaWZk6chnXh
+iuP5RfSIZov0SscRCRedsgk8E+KQhzkt/NO0HTrxAVGXZTOc2PQx55Se9rJ5kSezDcizDayoUEIp
+PrIJsdqTw4LhAMekY6Z6PnQpIBAF9GmBzdnCRWU+P2yMRQuau4n29Fqca3RY50kcjjXyrNOtjkaB
+bz6Kq+MjT+jAtPngMM1toGeeEmWR4pPSyEUNny4VPzLojtyXvex4hBN10GRbiRpKqaQlKovGaDoZ
+D+xQ++F3hwPh6Hi0FlEIAZwPDOPj7xy76OGMtDukuyn3w0mB0yFkkQ8hayQ8D2RDbgfyuYB+POBQ
+zgf99RCtanvwVHDQMJvTL0ujlc+r/DT8cC5iPnKtGU+W0zCtkAYmG5RUWll+Gd5+D0sOfGalBhk6
+zlCOPOXirMorZzc+zGHnZ4HPTwxMrRiPfxRSjSeT2vko0sORnF1eATd8kGHHDnqXcHflfnYMZJ5w
+08gY+VhPDcN5Pm52OmJW4d1mPmq1HY+WzbLlLHPH+ZRfdvN3w0+P90zIPi2Mmw+j5cnGno8Rpl+7
+8Qhde3SgrJ+PHD0T7gNFexF+YKvHY4bT4pBhPb8UnYvMdh9Pg57ORdaXee5y83fDM9vDWbyO9Xw4
+8Xs65PvCYddZtJ+W7e7cxWxamW9en5x4funw9tMjvT/cGLnRzX8CfjDtdD7/eA5/5n5+KP/JUe0P
+vfm74WK277V/dWHxzxaIY2s+/OY/BRc3vrb59sfAP2C48bdX+LPA8fYv+h//2H3383cv3/zuv9Ds
+zm/0t3jnX7/728/f//TyzX9/+Y+X5vVfXr5pXv9Ev4jXhl+/+/vLN+L1d//68o1q/Bs9nPaqpXqz
+bWtf/0JvujeH4POKrvzNafVKn2q19njDvDXK+lclxJtTHjjdvFHb8/oH4IR6E9q3eBM/zGr6mHmj
+J8vxjnvTHp9XrXozvlGv2jT4jVAMlO2bRyWCN/Eb7/WrUrgvaTXe0W905Pqr0v7NeUXvyDc6o5aB
+xr9JpSzeFPgJ9lVZ86a1pS/0+GaBL3S407YFGS3edOsd45x580oRQ/wwjx+gPH6Al7j31ryplr7Q
+g7x0IC30G/Jo/kJHIyHxZqPe6CQ//PwGP7bFLXv8KNnSPcg3NK54x9k3/EHkO8U3os7m+zHIZUxI
+0RhZ3KloHN7ATxLG8I/EoOUvPHvzzzTQ8k0oj0GUeNPjHv98yZTX3vzfEMW/kh7+M355a2Ce//sq
+mtf/hrerJv5BNfG3l9+++Ndf/ur1d//j5ZvfvghIQrEioIk/vnxjpr/6xbcX5UFvf04gQH5WIoB+
+ViSAflImQH5WKAT9pFTofj8nFiAvyYWG/YJgLpn3vbd/fPnFt/8cfvq5++EPP//w1x+/++nvr7+m
+9/HeT9+Nv/9l+M1r+I+f//qa09IP/+/7X73+87/9/NMPP/7p9f+jD/yn11+GP/71999/G37jv/2X
+3//t+5/+z/d//Pa/fv/3b/On/var8XP0C2WuX4Yf//rjq1Uia5JTnBJQgCTNKP0Gy3DQAkXtFOsN
+HRFGQNg32iDGUoOdSVga4oRpYfq3xukp9CgnFSvBwvCsqqZpWSu2ES2G2kFdOusRjYfM/mzfpDea
+ccIaWMTqNyFIKtq8SdM6tgH9+xq4TUihFTlIOmhVKNyEauEK/DEHa9M7rcM7zrIaHCQFRbm3hm59
+jFlKkVvA+8ZvpB9rSU/mjf71ILzTvjnrPWuSv2UMPXQwOH4sBsI5xYzQQZJK2rfWwZGJtLYOP8HJ
+/BsCnr3JsUe8tVaRlMgfx9hzapAr78XfkwXzK/47m/e3P/743V++/+Prn3767o8/fP/jz6/K/Or1
+nxAz0BnRf2k26vWfdIsf4V/FmyAfzLVN/jX+iW4UrPFN/0QhxCmx+M30V2R79jSNdyys/hr/krMj
+H8dwWdinbxyJF4B/+/nvf/7+28OnjrX7H4is0OJ4r1SHcc02/PDn7389/j5+/6cffpwqOERdfAx5
++n/OBLN4zOv/ehUQomg0heh/v/wJ/vP4qem/7lXiMxAe/SXs/sp1JH8rVZK/hl81tOryu9+8PPrf
+Ia3wCq/wCq/wfzT4ilMr+998hf/jwO+ZxrtDtHfBH8W9wr8W+Baq2wFewtBV+P7wx6puH/hGQ1fh
+j4LvI5uvAr7zyFf4p+FFyaZk+OojX+Gfhu9p9+eG72y4f2R4UXZ/SvhGhqvwrQ1X4deux9r9OeAP
+MVyFX4TvafevGr76yFf46vAt7P4E8B1GvsK3gD9WNiXAHzXyFb46fE/ZlAMvYeQrfHX41rIpAb7R
+0FV4gfByVLcKfM+hq/By4I9V3SrwRw1dhZcD3191K8IfO3QVXiB8B9WtBV+de4U/DXw71a0C35R7
+hT8NvCjRLq8duFf4M8FLEO3t0i1q6Cq8HPijRHuLgAsfugovAf4o0V6T7lc0dBVeFHw30Z4L+OHc
+K/xp4DuIdoavfvMVXuFbi3b5x9VvvsIrPF/bifZe6X51Q1fhRcFXFO3tAi6Ee4U/AXxF0b4v4AK5
+V/jTwFcR7bl0vwruFf4E8C8U7Ql855uv8Aqvkw8V/hzwT4v2XgEXyL3CnwD+adHeIt3CuVf408Dv
+Eu37Av7quFf4c8BvF+25gB9+8xVe4fdK96U+dlHh5cFvFO15EC7h5iu8wm8U7e3S/Yq4V/gTwD8U
+7S0C/kq5V/hzwG+R7rmAC7n5Cq/wfN0i4GJvvsIr/B3R3lJFfOG3V3iFfyH8HdHeK+CvjnuFPwf8
+lipiu2+v8ApfBX67gAu8+Qqv8PcFXNfjKrxw+DuivbcY/sS3V3iFfyH8HdHeLuCvlHuFPwf8fele
+E3AhN1/hFZ6vWwRc7M1XeIVfk25d2qjwrwL+jmjvFfBXx73CnwP+uWJ4rW+v8Ar/Qvi9Ai7q5iu8
+wm8RcF3aqPBi4R+K9pZa4tPfXuEV/oXwD0V7u4y/Ou4V/hzwW0R7TcAPv/kKr/B7BVxL4govCn6X
+aN8PyPvffIVX+CdEe4uAvwruFf4E8E+I9pqMvzruFf4c8M+J9qLm97/5Cq/wLxTt+bXnzVd4ha8i
+2vdlXCz3Cv+q4auL9iJ8o5uv8ArfTrTXrnK4V/gTwPcR7fsy/kqHrsILge8m2ovwx3Kv8CeA7y/a
+8+tR3Cv8q4Y/VrTn157cK/wJ4CWI9iJ8B+4V/gTwokR7/uam3Cv8q4Zvp7rV4atzr/DngG+quu3g
+JQxdhZcA31N1q8MfO3QV/lj4o1S3Onz/oavwEuCPVd3q8D2HrsIfCy9HdVvANx26Ci8BvoVsSoNv
+NHQV/nD4prIpDV7UyFf4F8J3k02B8MeOfIV/IfxRsikTvufIV/gq8BJkUxp8n5Gv8C+Er27354Nv
+NPIV/oXwre3+ZPByDFfhe9r9yeCPNVyFP8ruzwff2XD/yPCi7P5k8E0NV+HbGa7Cz69y7P5Vw/c3
+XIWfwB9i968aXojhKnx57WD3rxq+3chX+Irw1e3+VcP3HPkK3wL+ENk8Cl7UyFf4ivBNZfMo+D5D
+V+GlwR+ruk/Ayxm6Ci8QvpHqPgHfn3uFPzF8C9HudvMVXuEVXuEVXuEVXuFPD//CwqzC/zHgYvki
++OGPO3z7PnBxy2vivvq37wA/Mlw7vuSF1/R34tjMpRru+DomSHQUvQiuL7z4L494X5R2edyPWRIJ
+3Ri8LF6OX358OYLTG/RX9JGJ9wecN7z5W6/Z445ZWmYXmtgkvDq8+vFFv6f3Iv525j6xvsx5s5u/
+Az4ZM8s1UwRBgkdmNwghWiGFwkuPL/q9xLsCHAZ8ZmLtmDCMTPC7Gd9/83fAj3lmQwamSAQlSFnh
+RBBRJMBFJ/rx1YmEN4Pw+IBh3oI5dyecs4lBlr69vY/vetxPRJutObFUIOBBpsdft61qTWtb1/rx
+5fAnA3irWwnTDmAembWeOZOdLzA+mHdHh53MSaIdSZLhGshS47aTGMBRg1VsexhdSiWNtOPLSI13
+RDu0XRvwGaJM3w57E2eyc8vazlY+MJZHjD9983dwPwiXnJNE2+ENiXsMMGQLIwYQJNWBk5dJDqpV
+SmlllMXL4KXwTiN7GaXDZ1qwTrC3Ic4wcoDuyWFHK58zvsJ3de5TVpksmiDalnkOuFXXdrKF6RJk
+p5VXCWGm1VpbTZFWe7wc/qC1RHzqVVQOvIXsMCaGOUf8CAVhk4kdfmymC0nTt/v7+H4J92OaHGnJ
+ogq668HTw5pKBrA0KiLYah10b1qjjTXeRJPwiiYYZ4yRhr5dd+CuwbrDsOiRs4a6O/ww3bYjY82S
+7mfzMtkcrD4drj7ifmBKwu3ZnLEViDREkkYe0vSwpNEJHJ1JVlhtnY22s70d+NXZZL018NsG3J1R
+etARCNI8OMPOcpCBrZwZk40DApeChSloLfguya7qsNmqmWkEU4kR76C3CNEGkAwQqzcCtz+AYHAE
+d8o5l1zvBeIvbIZfhRtc54KzToJ5tBYxuYPdiXPQSg0qwMQNDx0Yk41J1Q3iHVuYHfgK33sMd+0a
+Y1GuaQ9MB0STDvfTKwtjBpgywlzBCRDsQcz66IcgAoYhQLuA4zcqtEignQ/eeOl6sA==
+ ]]><![CDATA[
+ 1k7A1haJNkHdgq3cwJU1G1jDiQO+SOQETWH6Ot+bDfcB0+ykTNODpm1p7kI6WDRpg+IugGfCjXde
++RAa0AqhjyLKqKMdXyaq2IYhpOADRVoUE533XsHW4Aw7e8TpHtJoddIaNvZKwoktBJ3wjS3LGQGL
+yNLNE99DsLrLcS9znzKpHZ2UDGqR6gJCKHRnDOr3CJI94LDlABum2IJXjH0SCUOR7Pgy+FOLoNrF
+AOYSrCM+3YKw8+SwULeFlSMztrBx0BJObMDFS9n2kLMc+bYcnnNkZqqHLvJT1wRvuTDyiLotgsTE
+1CDWdjAnNOgSFDkEFwZQTCBoUkg08qjxIfNOdZpfCn8SaUgJf22SBOsUHXMOQfuBTZzpQiWAQ9Ua
+OAMLO4TpKNXM18N5BQfnbNozId/nsAfxuibhD4ZdBr4zMNNWD4i03mlEngTzDLjtAUaMaQA924Uu
+dX03zK0NaR5vdF3sPP5agXWPD9sk4wANGNTHZOUGrizB2CB0WzNA0A0yk1CB4/zIl/ScMO5ytu6H
+Qn6f+8FNIwoGLRLiYQcPVTDoYDpL3+6c1wg/CU7Zw1QJhrMgM/Rtr3rT297jFfCi/zr8WeP9FsxB
+mbg7WJs4BwySgJUtMyYbO4Rsj9I5IFAj7kHOiPUgGyDm1GpBQwc1k3W70XHvctsl96V4OSCh/IvS
+qBYxt4dBo/PeBOgvBqgxgiSVRl2HNkaDVehT3/fDgIEfUN7Tf/sB73R4n5gT68w5YHQkhE3cMVzE
+2KBsCEH6BE0np+DqCmUI8RUQc4PKskHuzaZtJyFPbeCdQWoyaZ49SOhcyE0dKvYBrofiB9J13gaF
+OJtwf0NnQLKFIQPIDKDWDohbNEcNBYwvJFC8KfFXYM6sI3NWaPF6aCEzJgM3CF0qkL8HAz0YpCaD
+IoT4Cu3gvBpVtmLr9giVJOR4ZNgbRHtqUoq8Wbwa0SgpT3UdvtbCiSBdYtol14nOwyE18YT5MBwg
+ZgfkkQFSHBB4+L9+ILvjTcu8iXXmTHZ2ZOVuGBn3ycOJO4wpxbsG4zrgW6kFhp6d7lFyBIQqpL0W
+NkCYUgu2V836XpahkESR16MMTNIqFOzUlzlUP6GNDdEk0bZdhEVtn5inZpbEEAFnSItX5FdmPhIm
+7orsDHWTlTPjHqomJ45JR4p3DZJx4y2MK61HLlLao21A5U35vUFYbsB2sq2+XcTLLJNDkkFdb1m8
+PTIMODkKNl1EAB1pephT4J5tNlwYOXYXXxPrJWc2MdEFHDYmVTeI4fj5qYODNMzXQRnaBdQbCqbt
+4LgGMVnMVPvcjNiZ7S3yzSalZCoFwdHBdMgxKGsMMh8CUgg+uqSROgMz7WEZjdvOJDOlPr+Ie3/y
+OuV8zJgk7dm8XUcuA0V3iINDtBgdjaKzQahCVwHnlwq9I7GFjB1CVIebPhLxR1lm6ahkUifRV2v8
+1uK3nqZ54aYS1ULXOURcx0wNM83GnCidXmfcrzFu4cQdzGtYzp7JajivCjTysC76CVSbPdIusY2w
+Im4Ud9gg074r4tNe5lA7tCLApL2MaNOQXJBjOsqUcFNypwFS6wYqzGam3RWWF1lnugQ/cM6MKXBJ
+DlokZwm+DmIOqY0eeRodBYScmCq3gRrho28VGl0KUAFmUjeImE1K3M0YfrvZqvBYlwlbiFd0CS4V
+4aT6iOadK6GnooaBs7+ThfWo6Ai+LZzXIDij/ESloRGWiW2HeNygtjAtemi4bJvbAf9+MD6Rb0Q6
+dSgcyEs5yxBJakIHBF/UsixeD2oUjo6YXlzGvYPxwbwjWQpWpGfoCGoWycUefZLOyd0EHVVC49ci
+82QRx+PYdH3G7JBnJDKqka1qkCkbOKoCW4d4ZDqZSyMD/UqoDfTfY3o792PGS74NghWZNsJxaeSZ
+LW4ICRfdLtoCJwNEjDiKYJzD01UJT9yngjAHJfTHnFHRsKH5TnDUYTRpi982LF6OujnafPpacr/M
+V7GUPRw3EVsEqQZdL4IvenuesxLQsW7RUs+WJYe9LuGFfKmiJgVTUIoaQcAJL6EWhHnk08mkV8V7
+j8OeX3OgPvClYNXirQC2KLqRf0JIvnP4jeFpDplQPqls1lzTvpdhaQym6CtFREHY8sJMa5WzFOfx
+01H2okaHo2ar3ize+7kvjUtZBt9lBon3PJQcuiYprsctEj7KCTQ/ks0Kh+U4/EGGPdQPvVAcfVFw
+Qr8k3y7A2EinKFWR4VPOMger3n3dxn3iS6bNVHuk8qajkU8JAZuauMF2JrJlIzssheL0rllFnmiV
+C1eNKBqcDujbBpS+Wb7IcwgRFHuzo84m/TLRvgM/ZtsiHqOXgssi0QePSGxg1jY7rEBLa0WHDNu/
+G5zmmASzO1T5pHlJk0S9RTmG0O4j+Ydh+YqFfO+++bu5H9g6fG8Dl207jyoKSoNZe+TYgA6PepEE
+bpYiUy6Jr+XXZVb1rUTv1iPTCLiqA0sol2WDkkmSgu+X7+e5z5UV/BbfSzq2qKIkagoUE8g6ygr0
+hrgx2JGC0wUJX5p8sGNRSGEJFZNR1rroe14Qz646R98pVH7yurey6ljEGpmHzOqyw9LMRucimgCD
+0KIQnBwkrN+R8Bh/p8kHCsFGot9Hn2qs57AEdaAk7OCq/eiqZ9F3M4fNbLvZrNlhBeIwApJv0Skk
+zRNuyIm4T5FVPEv4Wq7JpZKVNETEHSE4uh4dOTwXWXUZlj7MNKtyX1q2QdYRKIx9RIpFcNK2RYI5
+kXBemzivJZZcFXPNucah+h1AVGWiVJQ60Lsjq67F/chhW1SLqgtoAmjRvZ8lTFLMUZhKxJOMcygL
+r3GNS66nRt1UtKdc+zEOqzEyUZYZVSxsj/yK9ChdG6lEPKolrhg1L2FPGlZcQ/RBQMDyxFnTJaNu
+7rCThMMoYSgYUViipelV4hSJWoLWXsQVdz0tDKeopC1pHuU+ipO5Xjougb/o5u/kfghOWcLIr4jC
+nY/o6rRpebZfoMWeMw6J9tRdT7ONkmIsgvWUWbmvkT130OIzHdyXcmcJE3xSsUGz0yQ056glOnSw
+VpO/nrrrEdGXcefDURXRDrzGNFgxlks+OZ5scadt+a4OO0oYX+vQD6CQoB7WcNLJ7mrhrmF018vZ
+dVkaUkXNc8D4CSiDOy6DJfX8XQPzXplu+dzN38k9S5gKYnHqrmbQnYq8/t52Y3a9FpoO9b4Wfeul
+QQim3sY7gnu0T9zHzdNoo4hvmENbuSQ+dtcUkXZ8cNbKnF3RvVKPM8elPMV9znWaB15OuQiaG+Wp
+nDb1qINFT1MfCMV50uWeGcMv5D4WEnllhOomjeEfOLt2qIgtrEM9TjuHpktV/7i/bgrDgtfgeCpN
+ewNfRSmcQsQvBjknYuz8SHWUcZ7q/HRRfCv3qWiiuARxcYEoI015BYE2h0LTVEkknmxyV0qmoylv
+0rzn+dG8gRKaCCIMELFD55pGtu1iKviI6oY97CG75tCkxzKiM15bhRzZOl4B5zB8nasc9wVQdlVt
+P65jGFqEI4fN63A9etcl22kxo3vPsKtxPw5NTae5UzdecuFPMdgiBvdjhzMSPZ14WSyZUyC+uLiq
+YztSJZfp23FBY7l0c6OMP8d9KiMM53du6SgMIy557YTpEVJox1Q8yjcXav488aJmywY4LK07Sl40
+73iew41sHYriwFQ7zj1ISTm/38H2M9yXMTiCqKUYgnxDKZJTTlKBu7lmLoUvd64nOyHIYUnHHokH
+nZLp0eoEtu20nIzsxrknrz76Y6qbOOxxvpGdSzEm7uYUSmHOrbltJcO9x/WwFyLvEOiRdfJGHqQt
+Q5GWN0TQNoGGtgmgqqDFc8NLyqdst2kHTrlSboVpuXMVVPaD67KIuLq0sdyg1c0btASqpbyZB9Um
+b3Fp4ZoxUUUNYgiFYBt5Af1QWdwg5M/NEs9EKVwcuPqPuF522LONdzPbnrcuWVQVIvTItAp1BfpH
+3hUxDPJ4LXKD/v3cqPFgVJop7VnDH3O9sGmUkpSft6TpcUsafjJK4yak6JJE26PRzarMdqQ6Zp8V
+l3XOucbRWakStrOz5qhkyVPzQup7Cxttc7pFlndUIj4pzatCCTUUimwvfB9CNOhmIzqh81x7IR6v
+sKwzJhxkmykI56K/5WwTKNtci8DnDnu69ZnYIkQhGjv0hD06HmuVa92AgpFXA3Vq0AxI3hBySEA3
+5dr7uJ92NxwuHM8KK4fIiTLHjZ3cURVx0ahHj5yo2WlbDsgapbFVAnWFRxUlHdpiH4KFe1Bl0ebs
+w6vAlxPQLdf7fdx513ooDQMtWdHEi+EFq1u4Xtm9T2xps3dCi9eoiJpRWWF7l7wfc60dt27Z4+xz
+aAc+5bbnfdxyKkLwVMR5vT/XwC8fPlJ6whZUBRqB1Mo2SpINasagjWnNMFYWlGsjb8lbZp+Lufbz
+fdy8FnmYJe3iEHqfULgaQw+ANNzHxXlR42z15nwt8sBWjg+gZLYRBWNAedyhGVBUWaCscLkdaJGA
+wiIBxTEk+4+yz+1l4fnUd8i7fXj2W6Nml91pf/7R1q1p0mn5YJHnfcKan87wspVJ2XmbMLqLOft0
+HbnMWQK6I9de4j6tyy2XNNrjJQ2u9lN+Suv6pMv7QpbTbp/MVqEZaND6iEWuRWbj7BOjRfZJp9nn
+Zdye94nKYpg3D5yuQDpaWA6DR8Cwfpw11IuYNOeaS6J9ly0/MUbNAD1dRCM/pVs1oNVzVrvWN74L
+fs4+7+Ta2x32dBGdl5VZNuP6o+MNA7R4AwXxbHB8ZxpiIdpb2B7n2jZnH2oHpEMwhAO5qEDLj5sv
+F83e9exzTbSLzRHH2wWO9wpQbeN5RY7KwuMp/hv3lF5mO+XajnMtZZ+kHWefgbOPQV/bcX5/t9m7
+JuSjrYnHO14k7+853gNixj0gLTKNY/nOZeHtrnpi2Lw6cEhAh1yrx+wjbWO7Ofsk5NpFp/fCm4Gv
+s7221zTvyaNwAfXmnUx5b08MnUdys2ncAZI4+oaFfN8pCz9ke5xrKdbldHtIQAJd/GGjP5q9C53e
+GI8nw/XvsPTz3kPanuam7Wm0YYtmC6fngsViw9bxgvJVo77P/TTXTtmnnbIPuYwcE9Bxs2cOzd7c
+/pxtls4LqZd2Dec9tBpOiggw7jmkXXjWWsRe1OS0qYdnTsag9O5GvNu4X8q1lH0EZ5/I2ac3kTs9
+5Foa+eNmbwrJdtwEf7r93R+2v+cWOG9+z3uFkbPxWQubHnZXIuCjdBikZEc92l15Pr1/1zVVlWcJ
+COamvpabvbHTU2edXpvX33OQMuO2fz8zPHqmoT/s7xcgSRuE+YkViRppgE3tuGt2gHiltKgeWt7o
+frb1+7rhPr6OqL7wsQnD/EzkcKnZm7MPxWPDRaPgZxxMnrswM8P2ynMbbUroY3oEoBSE1zAo7/pm
+l0EEpl2kGoW+HrdC37if/xbul7KP406PXOZKs9dxSHZwWwUaCVLODyBNjyDxA0hk9w==
+ ]]><![CDATA[
+ /DwOsUz4uEJmicyTdvMbn7xAhvGmW+xvp63BFumUOqn7ntO4hfvxGQOHXKvGXDt3ejRPG3kaueGQ
+3MFtI1KQ4kfLwvho2fxgGQjmh6yIIhIWibalh6zA0/JTGtEJdDJB98iml59bWJRJ94v2Ivd3mz3O
+tXrs9Cj7tKFDhBK8kxnWNeDTgXE+NaNhhsunBekJSZQi0SEGJUQheq6qc4qfzrONMWjLG6VPn0dZ
+iPdTzwZeu+bs88Kbhd5r9gK1PwhAAUJOyD8BGagFKUMv4k67NhdPgfITkRYsu2DhnPREJD0vF600
+HsI1KiGRepJu7mUOj1TdLd572oELnV5ef8/pNk+sUvsjEaQCCpsuan72VSUYPKG1xn81MpKAP/Kj
+vZSk+EnX0PgIyQ7O8ZOu9Byk0A7mtLKXKMJRPQyLZ6nGyLtClvmIrbrS6TWauCMkS6SXgLq8A4kU
+BRjDi/ll8XuJ+r2jR7b5eW3Hz6g7VEPJ8ga5wVjY0yG3eCVg0baNKBneeSLwfsPdxP08186Pqo/t
+DxoCuK2HaRPIEne08yqYgEYs0JMWqK7gkKig5+fwGxhSg6JHPZ/mJ5YD6voud5ECxZE5POl5+2Oe
+X8J9sTpw2uxN7U/QConU2xZFcus8H65Ai/P0kp7gYBjn8xUMnzVgTas7bWHKfNYAPYlOByu0fMyA
+Aqfx2d2XTz7Q+inuZ7mWwsWh/VGSHpsf+FQJjxbIgE6PDhf3DT+kYzPgzlaNh2aglKbyADGcT1Qw
+sGaSFtF2OmHA8/ER/fVnslcV7Xtsj7MPNQRwL8BRW3hNkaWHnp2JiL89vxIiDhIxvHF5EoqiYzJA
+kQ4V4CcT6WCQw7ERaT5G4YZDI1bnfnrWTcchmYIUHaSh0BK08Dhkf200P6WFeh3/j+BnofB2PuGm
+mU976flwjBaxNh6fBfIyPtR5sOhd0l2B+1mzxw0BHZBC590M4OtlD8YalNDq4eX56CKpyGEXJxf1
+fIqPZpaJTSnfOeNlnZu/7zrKPrkojePBN3SOkcLtJzRBdBiVA2s08fjV4U+KDymajqNq6Wgm8vfl
+WUWHo5luOqhoF+6nQSofTmW5ukBYFmBsW1o4S/yKzM+enDFm5jPGZop51uhTBzLdfvN3w4+DlGfT
+5sO4HJ0chzA60M1StGnAbjo9bjo7rl2co7Y8Y2vLg4m+AL50W8MHHx7Oy+NnP+jhZ/5VHw4EfOFt
+G+dnAh5YPl6055c4nWwcz0EcD0Hsm2F+5cMeM72jQw/z4sIpy8eL9tJ1MO18emcOVp5Zh5EbH2Q5
+Mnzv9M59b/5uuFjwnc7yzKzHV24D9RHDm04o3eHmPwE/8L120O7hqN3FqUo71LTbwMXi1Z68xMlr
+/W9/AFxMrdApuw1mDyq8wp8I/ov+xz923/383cs3v/svNBPyG/0t3vnX7/728/c/vXzz31/+46V5
+/ZeXb5pXeonX/N/ffUfvzH/6+8s30ok377R61U3zprR7/Qu917z5Rku8p97ocb1Xekcr5fGOe6MH
+BF4JJ7zCZ0T7ZtvGvv4h/zDTGrxn8HGp8Sn8pfX4VNu8NY1xeEe/tVLi+1r5Jr3RGWfxe0dv2rfG
+mvZVenzeGLwj6f6Ewjv6TTit8Y56a4V1BFS46UY4fKM0b/iUfkX9/tY4IfCOf2uNFa+o8N7QeRPQ
+vhnXtAxs1ZvxjWKgQM/9qlT7RlNgeKd5o53Gr0o3b0LbFneFb0RLykBt3+jEIXB0bwJJGB/zb433
+hscGTRC+0TRv9HwX3sEgWcdjo0z71miLL/LqTbba4mMYLe/aVwX6aIY9/yhjLf4K46Y8Bn78RrQe
+uB+L30hN36jpq/F5ixtrwAimwbi1Eu8IkIWhCKjIMkTNuDfVwmhKyjfvHd4AaQ8jqLbFxwV+tlFv
+jkjz2Jy++WcaaYffN/hh1uSfSgZRVuMd597oANvXMy394YK+8LP+N6T5ryTE/4xf3hppXv/vq2he
+/9tLFWMV495i/NvLb1/86y9/9fq7//HyzW9fBLSoIEWOj398+cZMf/WLby+pk979pD7zD/yMQgn5
+SY3+4ttPqxTQz+oU0M8qFdDPajV/66fUCugn9UqjdEGxNO6f0+wF3fHP+/HlF9/+c/jp5+6HP/z8
+w19//O6nv7/+mt7Hez99N/7+l+E3r+E/fv7ray4Lfvh/3//q9Z//7eeffvjxT6//H33gP73+Mvzx
+r7///tvwG//tv/z+b9//9H++/+O3//X7v3+bP/W3X42fo19evhH4+I9//fHVSp+dgksM6cDTYjy8
+f0NH1uaoLd8gn0a+QUtZ2E6ToBoL5Rh6R0KUCsYWzZtTus3+KfNYQypv2pOs8bMVnADvWAwCewSc
+RUoSGOzVqDHWOxIbgK2GWEZ/MIqcqyWd0eBiuKVkmQuMuxFTzIaSBTsJ+hF2Bi2EZY0rLbMz4IdI
+/oiXforYqhGke9yxJxsqhAHh4fQt5AwHwzukdEP3BE3qjJvkRy5vBO5TaTifbSSPjDfsGPA57Vs2
+N8ZAZSBCicZ9HpwAH/MKMUVhQBz8iH6StrplH2gdfiTjEJRskz3AYxDxMZnjFaT3ZskC840qixgj
+x7gL/beCZG9xFxgM1r9U5GMGI9pY/ARYAETIR+Be0zeevckBG9Joia6FoVRD9oEQJH07TGet0K9n
+MvrDBWnhZ8XfT1Vt8xr/nUX52x9//O4v3//x9U8/fffHH77/8Wd8/lev/4SIhDaa/ku7v17/SbcI
+Fv6VQ7Edi+D8a/wTbhG37VuPjymy3+G/01/QHSspTBaeQ8SIf8m1TIyj45074+kbRw4HwL/9/Pc/
+f//t4VPH/vYfqOJxh29uvFcq2LnSH3748/e/Hn8fv//TDz9OdT+SFT6Guup/zgTBloLc6/96Fbjn
+FmETme3fL3+C/zx+avovXI4+Y/kv8cFX7j74W6n/+PVriyzTWvQhv3l59D/GVuEVXuEVXuEVXuEF
+wh87Z3r+5p7cK/wfCr6daPeEP2ToKvyrgxcl2k3hqw9dhX/V8H1UVyb8sSNf4Q+HP0R1hcP3GfkK
+LwFejurKhG838hVeAnwj2TwffPWRr/DHwveRzVPCH2u4Cl8Fvr9snhK+v+EqfF34Q2TzfPD9DVfh
+q8AfK5sng+9puApfBV6CbJ4SvrXhKnwV+Op2r/BaGn1F8O3sXuHLa3XDVfha8E3tXuHLqyi7V3i+
+drB7hV+EP9buFZ6v/e1e4cvrUXav8Hw9yu4Vvrz2t3uF5+uxdq/wE/hudq/wouxe4ctrU7tX+Axf
+3XAVviJ8O7tX+KaGq/BV4FvYvcLztanhKrzOlBYL39NwFb4i/LGyeRr4/oar8BXhj5LNE8Afa7gK
+Xxe+m2yeCV6C4Sp8FfiesnkaeAmGq/AV4fvI5gngq498hZcD3042TwPfaOQrvBD4RrJ5Gvh2I1/h
+5cBXl80TwPcZ+QovAV6O6oqC7zDyFV4CvCjVlQPfYeQrvCh4CaorAb7/yFd4CfDHqq4c+P4jX+El
+wB+runLg+498hT8WXoLqyoHvOfIVXgK8BNUVBd9t5Cv8sfCiVFcOfIeRr/CHw1eXzdPAtx75Cn8U
+fFPZPA18i5Gv8EfBd5PN88Efa7gKv/0qSjZPA9/BcBV+Ai/B7hWerz3tXuHl2L3Cl9fWdq/wfK1u
+uApfBb613Ss8X6sbrsJrO/AVwbczXIWvAt/I7hW+teEqfEV4ObJ5JvgOhqvwdeElyOZp4HsarsJX
+gZcgm6eB72m4Cl8R/ljZPA18f8NV+IrwR8nmaeCPMlyFrwvfWTbPBH+s4Sp8Ffj+snka+GMNV+Er
+wveUzdPASzBcha8I30c2TwMvx3AVXmdK94dvMfIVXgJ8U9k8E3z1ka/wcuDbyebJ4KuPfIUXBd9I
+Nk8D327kK7wE+EayeTL4FiNf4eXAN5LNM8E3GvkKLwe+hWyeDL7RyFd4IfCNZPM08O1GvsLLga8u
+m6eBbz3yFV4OvBzVFQjfdOQrvAT4FrJ5GvimI1/hRcHLUV058H1GvsLLgZegutLg+4x8hZcDL0F1
+RcF3G/kKLwFeiOpKg+8w8hVeFLwE1ZUG32fkK7wceAmqKw2+z8hXeDnwElRXLHzTka/wouDlqK40
++NYjX+HlwMtRXWnwrUe+wsuBl6O6AuGbjnyFFwUvR3Wlwbce+QovB16O6sqEbzfyFV4OfHXZPB98
+o5Gv8BLg28nmyeCrj3yFFwXfSDZPBt9i5Cu8HPhGsnk++OojX+HlwLeTzZPBVx/5Ci8KvpFsngy+
+xchXeDnwjWTzfPDVR77Cy4FvJ5sng68+8hVeDnw72TwZfPWRr/Ci4BvJ5mng2418hZcA30g2zwdf
+feQrvBz4drJ5MvjqI1/hRcE3ks2TwbcY+QovB76RbJ4PvvrIV3g58O1k82Tw1Ue+wsuBbyebJ4Ov
+PvIVXgh8U9k8DXyLka/wcuAbyeb54KuPfIWXA99ONk8GX33kK7wo+EayeTL4FiNf4eXAN5LN88FX
+H/kKLwG+tWyeDF6O4Sp8RfjWsnkyeDmGq/B14ZvK5sngRRmuwleEbyqb54OXY7gKXxG+tWyeDF6O
+4Sp8XfimsnkyeFGGq/BV4DvI5vngJRiuwleE7yObJ4OXYLgKXxG+j2yeDF6C4Sp8XfgOsnk+eAmG
+q/BV4HvK5sngjzVcha8I31M2TwZ/rOEqfEX4nrJ5VvhDDFfhdaa0KPijDFfhK8L3l82TwR9luApf
+Bf4o2TwZfH/DVfi68IfI5vng+xuuwleEP0o2Twbf33AVviL8UbJ5Mvj+hqvwFeGPks3zwXc2XIWv
+BX+sbJ4Svo/hKnxFeAmyeTL4Poar8BXhJcjm+eA7GK7C14WXIJsng+9juApfEV6CbJ4Mvo/hKnxF
+eAmyeT74Doar8FXgRcnmyeCbGq7C14WXI5sng29tuApfEV6ObJ4MvrXhKnxFeDmyeT74poar8HXh
+5cjmyeBbG67CV4SXI5sng29tuApfEV6ObJ4PvqnhKnxFeFGyeTL4poar8HXh5cjmyeBbG67CV4SX
+I5tnhW9kuApfEb6F3St8eW1kuApfF7663Sv8/NrCcBW+Inwju1f4CXx1w1X4ivDt7F7h51c5dq/w
+fO1j9wpfXiXYvcLrTGkh8MfavcKX1552r/Dl9Vi7V3i+9rd7hZ9f+9u9wk/gD7F7hdfSqCj4o+xe
+4efXnnav8OX1WLtX+PLa0+4Vnq8S7F7hF+Gb2r3CT+Dl2L3Cl9fWdq/w5VWO3Sv8Inwju1f48trC
+cBW+Inwju1d4vrYzXIWvDi9HNs8H39RwFb4uvBzZPBl8a8NV+IrwcmTzZPCtDVfhq8NLkM3zwXcw
+XIWvCy9BNk8D39NwFb46/FGyeTL4/oar8BXhj5LNk8H3N1yFbwHfWTbPB3+U4Sp8Rfj+snky+KMM
+V+ErwveXzZPBH2W4Ct8CvptsngleguEqfEX4PrJ5MngJhqvw1eFby+bJ4OUYrsLXhQ==
+ ]]><![CDATA[
+ byqbJ4MXZbgKXxG+qWyeD16O4Sp8dfh2snky+OojX+FFwTeSzZPBtxj5Ci8HvpFsng+++shXeGnw
+LWTzZPCNRr7Ci4KvLpsng2838hVeDnx12TwffKORr/DS4EWprjT4piNf4UXBy1FdafCtR77Cy4GX
+o7rS4FuPfIWXBi9BdQXCdxj5Ci8KXoLqSoPvM/IVXg68BNWVBt9n5Cu8HHgJqisQvsPIV3iB8Meq
+rjT4niNf4eXAH6u60uB7jnyFlwN/rOoKhO828hVeFPyxqisNvufIV3hp8EeprjT4/iNf4eXAH6W6
+0uD7j3yFFwV/iOoKhO8/8hVeDvxRqisNvv/IV3hp8P1VVxr8USNf4UXBd1ZdgfBHjXyFlwPfX3Wl
+wR818hVeDnx/1ZUGf9TIV3g58P1VVyD8ISNf4UXB91ddafBHjXyFlwbfU3WlwR878hVeDnxP1RUL
+f8jIV3hR8P1VVxr8USNf4eXA91ddafBHjXyFlwPfX3WlwR818hVeFHxn1RUIf9TIV3g58P1VVxr8
+USNf4eXA91ddmfD9R77Ci4I/RHUFwvcf+QovB/4o1ZUG33/kK7wc+KNUVxp8/5Gv8HLgj1JdsfDd
+Rr7Ci4I/VnWlwfcc+QovB/5Y1ZUG33PkK7wc+GNVVyB8t5Gv8KLgj1VdmfB9Rr7Cy4GXoLrS4PuM
+fIWXAy9BdQXCdxj5Ci8KXoLqSoPvM/IVXgK8HNWVCd9u5Cu8HPjqsnk++EYjX+HlwLeQzZPBNxr5
+Ci8KvrpsnhK+xchXeDnwjWTzfPDVR77Cy4FvJ5sng68+8hVeAnxr2TwlvATDVXidKX04vATDVfiK
+8H1k85TwxxquwleE7ymbJ4M/1nAVvhZ8Z9k8K3x/w1X4ivBHyebJ4PsbrsJXhD9KNk8J39NwFb4i
+/LGyeT74boar8LXgJcjmKeFbG67CV4SXI5sng29tuApfEV6ObJ4VvpHhKnxd+Op2r/DltZ3hKnwV
++EZ2r/CL8HLsXuHLa2u7V/jyKsfuFb68trZ7hZ9fJdi9wmf4bnav8IvwR9m9wpfX/nav8OX1KLtX
++PLa3+4Vfn7tb/cKX16PsnuFX4TvZvcKn+El2L3Cl9c+dq/w5VWC3Sv8/Nra7hW+vMqxe4XXxYX9
+4dsZrsJXhK9u9wo/gW9kuArfAl6ObJ4MvrXhKnx1eAmyeRr4noar8NXhj5LN88F3NlyFrwt/lGye
+Bv4ow1X46vA9ZfNk8McarsJXh+8jmyeDl2C4Cl8XvoNsnglejuEqfHX4drJ5MvjqI1/hBcJXl83T
+wLce+QovDV6C6kqD7zPyFV4OvATVFQXfbeQrvED4o1RXGnz/ka/w0uD7q64c+GNHvsJLg++junLg
+5Yx8hRcF31R1BcLLGfkKLw2+nerKgW80dBX+fPByRLs6fOuhq/Ang5cg2hXhew5dhT8N/LGi3QK+
+29BV+PPBHyXaFeGPGroKfzL4nqJdEV7C0FX408D3Ee3q8BKGrsKfD76paFeEb8G9wit8ea0u2i3g
+G3Gv8Ao/gZej+eW1D/cKr/B8laD55bUn9wqv8OX1KM1f84KvaOgq/Fnhu2n+BF4C9wqv8OW1teY/
+p/yvYugq/Fnhq2j+XuUXwr3CK/z8ukvztyv/q+Be4RVe4RVe4RVe4RVe4RVe4RVe4RVe4U8P/8TU
+xy1XhVf4hnBx+UXwy3+16rc/En5KrJ1eBG8vvm4aifK5n3OW04vg6uJr/sjJWOx9818MX3InOpme
+bjTBzdHL8mv5jubXNB7TOOx3818MP+VOdECU4LZxjccrjK949Mrv0d+7cVT0PApzuNj45leAH9ir
+zLxxBPfMNzVd0+M1NMPsI/maxI6/wd93+GTgkTBZNupUDNvc/ArwzH9mP3En5sS5FVIooYURFi83
+vvz8O4u/0fiExJAMTUfwOA3EPAab3fwXw8WCv8ma9yBA3AVYGTAMIolODGCCwWjpkuMrXwIMe3wm
+AI6PawxFgx9Ao2DHMbhJBQ8JF7P6CU4CcMQe70pw92A1gKFqTeva0Ma2w6tvh8Wrx6trI+Ctby0+
+KjBYAeAWcki3jsEDQ6WY8js5AFk/wfbEPoge3A14d1JIKY10Msgok+zw6scXfg843gz4ayMlhiQC
+RKPghBzHwHA8uDICj08TWQSZf4D1BUTswV7C6h2EbsF6UK3Syqmgourw6tVAL8Dxnx5vJPyVUwpE
+E8ZBYNgU3CKPQYSsJhUUxp2uY/493NyKBL+2bS+VDEjuBqwHLbXVXifd6QGpn3KcEeOr0YPuddRO
+K4yHVxKjoNrUah6DFvEgq6DI8mAKgQf+TnRw5QjbByWUR01gdAJNbbxJZrDE3bZWWoUXRgW/Svy5
+MR0+oDEWDrWAhXtojIFCGNEgHQ+xoBzu1/j3rYb2jezBr9EO9ramB0lnE+Cuca1TzjjrDpd12kk7
+2Gi16Y2BTKRyGAOJyNjAobIKuDy44AoP4r7kjxSIG+xG/qYdpIPXJ9h+MB7p3zuCg3VE1Se98c57
+H3z0iV8Rv3deozZITtvOKuPhE60yMiAqaqhA0bf3GOPJFR7P/Zx/QvyzI384sup1gO4HS/ndSXBv
+wboPbdDBhRBS6PDq+dWFGHwwQWAslIuoi5VxOiA6NpIybItxRbTIrqDuKw83dJklfwf+De6xg/57
+2F8i7iVDJTF8fHDBK5+CAu8hymijjzGm2MV+fHX4s4s6DBgH4a2Ltrc5VMIZFGJEBGmHWvGuEdg4
+XBzzj/ijFhHZr0N8k5zjMATeGlh/8CHIkMDdxz61ySSX8Mc0XRF/ckkngXFQUAP8hGSjrTEUJVFB
+oFpqEQwECoMcDj8YgZ3a/wV/1D9KBNQ+UVKwQgJAZmP+ygvfBRdFDEkkC7YDKkLV6c50dnwZ/LlN
+PcZBRioLYxuM9y5Y+AVcARUUKkbJ4TCNZcHVEdix/T/nT6JtAwqAQUXtjbWI7uDfI+Cp2MHGqRNg
+7rvYdV3fDeOrx59i5zqKdWmAGBq4g/fRYbxMPBqBrIErXrBbijw0wGP9izfo5mkIWo/Ct0MBYA3S
+Ofq9Ad5P/Hsov4elfZe6oReohNX4kugIaOgwEBFyEBCCiIZHILIGEEFGL7gaB3Zu/w8NMNe/xD2H
+AOLfyqSc1gbVje1dQsIz0H9i+0vYOfUNGMNFesMvchkeBoERCJ2GBiwCo4QXoHiwCATaICU6joT2
+KBfszX3iP1nf5KmPyCWQQQncQv9kf6slCqDORof8jszXQc0CKX9g/XcHBUzcif2AvwD/rsEHRXQh
++cEfJgxalIacDdEezPXAQ9t/PbX/uQGkEggVPPy/h/0lSqCEYk8j+1MEbJH2JI+AhMgDvKDLms8h
+IAcBj2DYpg4xgPj3ASUTqkTPcTCic2xyUYSKyOfJh93Lwovtf88NYMD71AAZtD9BK9g/WosM2MMD
+KANq+EDLOaDv2N/lmAjyS+PPAtqP+EiLEkGjUJJcEHQG3RPKwlwNCMoE9O0fJoO1uc/WzyN/3P5b
+FECo29H4UwmYEP8E7G9R9Xeoewdksx5R0CMPEHdIAX8LOQQuBiL/lwK+Avc+BpQCfbC+R1HoURAJ
+oxADPFpE0ZLdRSc0u8HdReGXTn2IaWljdP+5/Q8CFTurv1MGDVBAzBrQAEhEQA2eEvVdFwmOYTAI
+7R4sqRRMXA7SrxHvoBRE/u9RLiqwt65HJRRgf6UdOmq6eXTJIYvgqEfenHuznPo4tz7FPicbFMCC
+1I/g7tDfoq+B/jW4ikDhghuAGNLFV8TfOSQ8hUK4Q2Mk57YoIgKS3WkIpEGHLEVkBSw65B24H899
+L63vR+tL5D6N1OZMC30bdL0OnZ/11AKHBiJQ/JIYjgb27cYmML/oQrBDuhewe8DQNTZYaZKhNKEj
+QoCTA/h3rYIHGC6HzmZJNuPeNM2Z9an0ayfro/2ziH0esb9D9SeQ/RTUT6GSG0BESLwEshqKAoii
+dQMsHJznqQCLNhm9HyAtePdgbm2LwGh51kgHtENRSRml5BmSDt+aPcCOawd7lMTHhW/giV+1sH5U
+Cta32fro/qg8QAlskQIFW1/C7gl/RlgE4xY8I6ibcUKIpoQE2r8BvIOxhoZOD7A8Igp0g9gC6w+t
+RymYmH/PMfDqfPEm0z5T7PNz3UN138H6LXo/Q9anPk4h/FP4E+Bu2LcbKB5BAZUdwiPUTRNgxoDX
+OClI04IoAjXNHmirNUqfHtw1jBylAdGAImDgGXMB+2f+Fzxg02mfXPim0fo9T/1l63c581H7T+7v
+afIDnk9TH56jWwv7wy2chMJbDAmchSZBMWzNODHcqZRjHc0PG/xMAbsHcG/RBnkorYH1Hb65OeK/
+8IAdpn2muidb35L10fex9clhs/tT8DfwfAXmkSO8Q00DRbgI7VvYXkHcEowd0xxofYByXIdUH/Hy
+vEagwHyA1/vWQPkDYj+xF1D/tGY08RcbtgNnbd9Y9VLdE3jiF9Zn0XLpQ9YPXiL1tWCdkNMHzusa
+cd/A/gKNTYTiDdhrMCcDk7+jxDksE6Eagt5pnUjjWwTK/wi9GV487HkJ9WjdMCfoDbgf+C/aPlY/
+1T0mT/ySaN3B/WH9AVl8gOZjGNACithgHCwigEX0a8E/wNel8nBtJ6mqBGOysRqXCmn5kGgNvFxI
+zC2vFvLC6WLVlOP/VJxs1g6cxv4p9rWoerkw83nud7S+QIl3mPprUfUpruwcMqBb8G8R+Ltc13Ww
+M+k7YVT9vFyc+79xyRjsDovn8xaCqSj9JPvbp32OJ32y+qk44fCXuPCNRqPxj86g8PGI++jjwB5v
+4/9ynOZ0iP+Zf6dJtGjvI0weUNf1rG+FsZ03DYxbBjLvOG4bsONmEjW1ge3nrH/vtM886c2TXp6a
+EXKAue1D2xssKjdYH54O7Sewp3ofjRwi+sR/tD+FCwwBAkCUlEMFVG7AvWHvXm4bmTaOLJhP3D/N
+/r5QuVz04Ukv4q550osKf2r7kMmQyQeL2hV3SxO/AV5veNI74FcNNp79H/GPUqQ2fuQfwMKBRRjz
+WlxskzneOjRuHjrnfhf7z019zPy5AefSP/KkT8vqF4h9FlVcz9P+6GDh+RrME0/0B4xE5k+9zLza
+kUBIMX8L3/fzGvjk3Re2j03+vhv3JX9WXV73EjzpJeH9edKH1H886SG55cdQxQGjYKMINHRoAbQL
+KH5bY3RA2SOlR86b+Pe8/j1H9uMNhIc4f+eOyi/hPo3APPUxrXsRf5r0QgaH9xtUsajoneVJLwvv
+tTThkdQ4r+Hz9L4Hf5rY6BDatfYoAFqJ+hkV8MDr/xN/dSLvM+53Xqu1/8t1r8zfoO1P8H6FfEXq
+N4j8ERkvgr1OFi9q/3mVB0EBLqDQ8yU0OhKdT0Rqo652Wvvvua7Rc1+3bV13F/wQBKZ1L9J/5t9p
+dDJWIkZ3UL+G77s4gL1P1AqliN8oiAApASlAg380PVK7Rlc4jOv+3VFXN1e1ZXBvxg==
+ ]]><![CDATA[
+ ETis/B/WvTL/wIs+LS960JRvoilf4t6lAa90NLHrR/5KOdT7CCLI/umsq5vruhK4Z/6TB+SVf4/8
+F6RChE5Hi14BkZ9WQpNJXSdoBxTKl5Q0wqBAE+BQD6SRv0W303JXHyEoMc5qjLXN5nXd3fCDB1AE
+oJV/i/zXIf45WrRl/kOgNhAURfJdg56WVjoVL200vLiVXGcHpLh25J+rn5z9OfvlCfYSN4UeFEBN
+gEIFoND+BmW15kW/1gvOcUh/LrUpdi2veITOo7PvoYAAD2hQ4GPc0ABr6D/zpz0vimY16dsPCWDj
+uu4T8KUCBHg08ACjpBa0G5jqugEhoEcCcAgAiVc9acU34b8yBShAwgOMg7eQXhD/OtmO/LmuG44S
+4G7T+3fAjxWQWiMFKqDE87QogfL8vof+Jbxfd7EbuIHpOos4qKNHNczrHQb5gXe7KNrzRBW1PysA
+bua/8yow1UEWWTArgEQrLckZToBIgBLARAX/T8Sf13xbjECEDwQUg4KmNeABeXFTSsNdJEJgYP6n
+BcCqN78K/OADHYuWwgCKc9BDE4DYlvfDo/yD5pk/rfe28AIHBahoab4fNQDP/fLMiQwYITUvbLjj
+aa11b34V+OgDBKdSANUbGkGNMIBYYA2KYNrq5pJG/PfQv+w1RkCwAtAUoBVu3GBp1ogWP1WHIqiF
+HvJ+r3Qr/4eWRuNqYHaDBm4gUAoGhc4fMaBzQ6BJrwEZwCD8teCvewkFWGSBNqJaojSBDhBtoJx3
+e4mT7a/v8C+hLMyBIKcCOC/7AG3uGKxwCjHAIgayAuABtOdD9qQGkYg7EmHiMBjHnU4JTRB5gBpL
+4Hf8vwTu+ZoCAZWDlAqsRDDXLXzAohFKoUMZjMzfJd7zQfwpVFIiRDPQcBgUY68vKA2gCcy7XA5b
+wIvcBH648ghQQZyjgEceMNoabxN8AK6RUPmyD+AvAccQICmgGBZRjbt8DO/ysdKjDZScAy5sAN/k
+5leBz+UAFcRzFIimc41HrRM16gD4Pdk98X4XhAQ0RRJpIPA+L54eVQn6oBi43N6w2OBRJne6ppLY
+ckHo0RIPvLslRwGLZpBWQpEZB5TCyIkohs1YCiMyIA0MvMeFCwHe3uAWux3bctr/69dROYBawMiW
+nwKTyIS8CoyGMAZUBg0cwXeO97kZvIUkgQggx1bAzlWAOuz7Lq0Fvnwd2uJ+jAJo7bTOq4HBJTQE
+PUKh43bQoAigfX4dCkF4CloBM7cCYq4CYt5fd+MOjy+5+RXgBx+IUxTIq0IemT7Z3iM7ohzox01w
+EvypGVYBhZLzvNMzHloB8gD69ithcO2bXwW+bAvp5k/KAUkDgSDX8AjQXreAMsihFepcb2kn6IAc
+KHmDT4aPrcDNe3y+5OZXgS9K4uwGHVxbzSUxKmKEAWqKwzghZmJCDcDr3BwBFEpBmjHjIJAWrcAd
+jeADQ6U4LonFWBJ75TTVgrCzH8IQI20GBv+ed7pOOZD3u1MrFOcgYHmPk7vdA0pIE6epQPPcwMEH
+dJSR9rnTpGjHe51bxEA0gDRz0hrUjnMaXO7y+9ADSuCer8PsyLBIBQoh3qEkjuPEED0MkadEY+h5
+xgyFAOoChMHDZt+pEPrAA8rhTtcyFZAPtG0nEehRECY7zHnA8cMgInVcGo3NULQeiTBveE+LQugd
+DyiLe74u+AA/Ly+sRCiggtDy1CDFeer9uRikWbGAVGiNRjsspUYztHz8q9jnYS9dh6ZoKoeowNOo
+hfxUC5HdXSf4WaBcDgYeAYdiSGnaBqPGZmD5CODWu7xWg08+cKkpIrvTk9Gp5flRj4YAIwH5R/YC
+0oCCBpYjcLTXuXTudC2bonZsipAHDM+Qt3ADx4+CWiggz4/nudE+DGiJEscBTbUDP/axGIGXLXd5
+rQpfTg6NTRHldzHPjnRwgz5FKICeChLj3JigTW+cCwJaAlpRCWLID7688N6DTz0Le+/NrwKfRoAn
+h6im7XiOFJHAOBtdH8AVPtDz/Jjk+dEAP4CXBIOSQKAoTvwAXMeP1yEdnD3/tN3NrwIfR+BQEvdt
+oMfg0fNFJMOWs6JGIkx9y8+DKahAJ49IELxDYyhhbyoPZI/4TxsOb3gOcq2bXwU+lsRyLIiMGNrI
+bWE0vWtREDpaDEIW7Hvdo0LGGIgO5WFEqYzWiGYLreOU2EqJcEhPQHXXDohY++bX2zhxGAHbNkgG
+qPJ0ZxueH0JFmEJn4AOWH4v2UEFEcUglcZSh9Q2CgeeJcstFAZWFFA4/GIEyuOdrOUdIbVEvE8+Q
+tc6gL0QQRDnk4AOuRzjAGFAXCVdQ6BBcsGMwiPQIASJGfhLy3XMBSuKer+X8CBXFNEeIdGiVc2gK
+KBN0iIMStRH5ez9gGBxcwSIp4n/eO21bPaBa7NphfCb8Siwsj3u+lm0BCgKeHBlMi2DofQpDamB6
+ynFIBLEfhgZjEHrZBQ4GPRdGxrS8MCrmWHjyEFyp3PN1PAI0PTSgLaBZ0uD7SPAk0BdFhMJEh4hh
+DFKP8gDBAF0TWkQqjKZYaETklYI5G5TNna7jojBwY5TrIZrqRGcwRJHarkE6NBgB5IpBwA8MCsQ2
+KYqFrreRS0PJxfGcDV54a+KGG+BXgucRmFYMqTVEp/NC510Yg96oCw1KIomiGKz7DiMgMQJ9bxEL
+JQojHSSyQUI2oA6BiuNcWS1lsN3NrwI/lMXUHFMbiMqYKn2F7pCKwhaNkUJJBNZ9DwXIocUIuG5A
+NjAoDZUXXBxbjABvnOBByKfl3DsCD3GZeQTYcPCAXBajKqZFQ9+g4qVjo2Q3IANcG4E+75+nosB8
+bgQeP1Oae4N+sWxKZXHPZbFFa6hQEjlkguUIyDwCNGMmxrJodoTbvaCEULmcI6GyOEinnA6mc8Kr
+YLksRjGMcnAAf8UjwHEgz5hNocAhFFCffFwavzMCJXDP13lZHFAWJ5TFEmWx57LYoigMyIXjCFB5
+YDkdSKQDgXQQkA4UpwODEZDvj0A53PM1lcVTUdiPC8fLspiKwkgjADgGISfEZUlA7RHqIdm2GiVB
+bhD3eSZ0BfjlkmgqCkGcisJ8VEjidEgJkYqimPrUcI84loX4q6lFPiuMy+RO17IgmJbOURUYbd1U
+D1ErlEuibhyBBgWy7HyCQELng7N5nmBsDY4PyimYe76WBYE6miJKjvaQnxUEikcg9C03RzRTYp2y
+je5QIfJc0aE9zJMPX8PmgWUuzFNEtBI6zxIdp0OMAJojj/bQJBf92CB3GpWB9AgLPF/4wlsTP5wl
++NKbXwV+lgloyiuooJMZXOtNcDQ1zukwLNLhWUmkHddD/GTiNG38ibL4AS6zmB7gqc6PksFcEEyt
+kZhaI5pkPumOvorZQh4Bgtt5N6UYkwFtHujCwMkgN8eCR+CQCwXnwnG2UJ2lQ/0VLKCPD7gteiMk
+A8nJ4NAatnNr2PKJupQLVRdSz4/bjLMk2rQUI+H48r15ojVvfr2ZUrEIhZQMaOGQdlN2FxojxdUA
+ciGlyJwOk/fOjDNlqe05HdKqwbvrJmVwz5e4MFue24KG2wKHtkAjE0xtAZeFp+lQjunweLb0YiYo
+iXu+TveTdhdmy8e2IJfEeiwIKB16XkXX43zxIh1emjEvj3u+Ls+UCquc9TF0ea44z5RSKJxGwPdN
+p1EQuGDQTg8mac8nLYdLubBU7nRdmiWb1k3jcqYUjQCHQjo6J5dEDa8Z0MGRLRcEeYLEz8voPALl
+LyIfF8W0r35eN6WZ0gFFsVwUxfIwAifzZEczhVQNvIx7Sst6rPL8ulgU05SXWxTFZi6KJW2iHhRG
+IM8SHc+VjhMkVFl9oiS6/+ZXgZ8UxTTVma4VxSgJ1fsjQBX1HbNEX3rzq8DnOEiGE/OyGRXF8qwo
+FvAAO47AiRdQJ3XmCLePwENnSnnHy/GSSTNuractJHnZLI5x0GAELJTQjJEQI0Bl4dQd8ZT5fSPw
++DRxsmCAUDitFoRxC0leL8lxkJ6+tVACjwCVhRrpwI4JMfKOmmkR/cPm8PHc83W+m+4wVy6CigZx
+MBfFA2xPI+AGagMHMRZF0xxBw3MEbtxTdBiB4svC5Z7aaaaY4uBhC8kUBykKUI4baEOt4e4gF8ao
+i71xrRl4T1HgA5Wn44S/grLwdE/tcDQ5gJoYodBRHCTuFAg8v8zQokOUnUuRtxE4p63QvUqnM2Wl
+7y08fdTyYhwkf8+hkAIB7bb3+K/sO+6R8Vfvz5aWXRael4SKS8IxDr7QZqFFKFTQf+BXHgHTxTRc
+nDHnKYI88VL23sLjRy2HaZ7U8LRPP+6mo39RAAUACiLNI0AbyRyKgjxXdnHVhKqLO2eK7r/5VeAX
+WmOa7otcEkqUhH5REgqOAnEcAc2FYc+zhYp3mJ7NFn6wePalN78K/Kg1ppI4d8e0k0qiOw5zSUit
+cQvt87Qh/u9zUbAsDEk23dwj5rLojhnjB5XER5sHDk9b8i6a3B0jFA6LOBjoaSseATNWBDoRnOcJ
+qCigeYLjoqDkvYXzQWS5N1xun+Alo6P1ooHjYOQRSBgJyofkMkdFgZyLgnS9KFjn5teCn88S5s0D
+iZ+5NrxexLOEHAc9j0BHI0DlgR2LAn9WFKTLRcHKN78K/HRHKc0SpguzhJHjIPkAtYF5EM6Kgoii
+QHFRQP9eoTxdQl395leBX1g6H2cJ3TxLGKY4SNx5EHgE4pgSl0VBQFEgF8voxS8inz9gIU+WzkVe
+Nyd/7+dAkP/lnfhRUXDYXzotIpe3t/DoAYvjbWRTHKSSmEIh9YaaR6CbR8BzUUB7isS4naZDp2y0
+OuwvpW9/wL+1cTN8WRIeNlF5ftSQbv5iKER9iNdhBBzvrjyURY4fPeKjfT9ZFu3CPV9XNlHRlNeh
+JDwLheMIpEVZdDRjSBOtn54ve8DmgeXOen5e5vLS+VQSHo+AWc6XHfYWfmq+7MGbB/g5qUMyON5H
+dVwSXhwBWlgxZ8snN+8vfVCaEOebB06XjOZkMGeCzP8wAjR04xIazRheGoF3m4OHpsijzQPH6fB0
+X/mhKF6MQJ4xO3YEPc8af6iBMsqDyzPF+mxfec6FcyYg7ldCwS1xoAzu+bq+bEgFwWL7xJQLc0nc
+X0gH7y4ilvvIyaXdhJd21vu8eYAGIV0YgUtLaCcjkJvQ8srC6yOw2EJDZeEwl0TLEYi3jABPPnxu
+b92m3PP1wQjQ1MeZI9w8AotHTt5ZPnkY93xdHQGa8jp5xOSmERgj4cv4yMlyCe2OHaa7zpSejQBN
+dV5+yGa4OgKHSEhwlATDOFvm53+R88Z/n/oBM6UXn74/H4GzhHicC6giorLQ8ZO4elxCy1utl8sn
+5S2knj193/FBJObifsLLIzCWhWF8Ejc/lq9tC5PTDkvBe0zle0+kP74sPF48Ppw/cLJ4fCEOpDxr
+xJOm4wMHPe8xDYtjag7/LuvZP0hZRnmwXDw2dFjzuKNyOVeqzicIDmXhNF+oebaM/g==
+ ]]><![CDATA[
+ VSrBB3TExb9O7Es+s/G4Q552VOZtRNMJDMs1o7QsC/vFfGF+DhVDhkhgnMp+ANdfnttpypsxm0Lh
+1Bwu14wOy+fjFAlxX86SHCeEHAli7OAHHR9Y5fifL/R0bt/pv077icXUjWSzPJJKzTvLlyfRDDRb
+/DLuKT2eJVmGwzY/fEXHU6As0F661jZ6yCrIM2YLIdyngk1d5igKjIvHh3N6ReTHKtt5jkDy4nFi
+7nRNkcDlHXY8TeDpn+4djy1zuTTKh/heCAcP5Z75XzqWLfImGv4nGxSHwrx87k7mCPIITH6Qt9WM
+h5TQ0W4M5/PscziQ96lg15nSs2PZaKY0b61eBoLD8nk38l+qwM4qoHaAj+igc20TbTSjf8X1WlJ4
+GPflCCw2ktFMqZl3kXR50WQ+gWIZBQ4jsFABhYvEQhCoCDWTl5QU+DhvyadYvqOCh86UEnxxaP3h
+uGozFsV2sWbUL0ZgWJZGORz4RVJA02Tjxyp4fEl8fGj9MCZDNy+dTrvp/FEU4CuXRgchtOMxJS16
+xUNpIGYVnMSCl0fus5pL4sOy2bSj1OTTCXkDRX9YOj32AeJ+HA6oOMqdEp1clfgMu4FVEM5V8PJN
+CUc6nybDOC6bTU2BXjxbsPCBJfdlOEiLXWb0PKI5UcGYEcjjrhznuCP3ZjECh2RIB1Il3Y/bB/zR
+zvqjmdLz61Ai6/FBLFLBMKuAYwFFWj8eairuLxA3K4mP91NOT97PDxllH3jhTSOnqeAjFcyx4IWP
+9p06BcOPICyPtHzMzIk4iQLTc+ecCceHLVENUo4zV1PB6Rgc2oSsAnKZ8UjLMHYKblZB/Phw781L
+4muL57yZklcDc0F41Btfu05UQJPMWQhmLA0EOoV+nDc5qODKCOyQIi9tIsqPGlI7cHE/5TUfOFaB
+y4sLh36xn/vFfMCxnecPL86e7VYenG8iQi0wlcTTPqLj/ZTXfWAcg5eTfVb0iHYuEGnqlOYPUTOO
+J1rG8V87WfjBziXxyaopBeqzfUT8qOHUFp6VQ8trSpGzEObSIBeIHc+eOd5lo/jJxGE5e5ZLo10P
+rFjME1OCvrKP6GQ/5UUfOC0PDuGg5dmzNPaLyreu4cNdI/+rRzLvtcpF6aeLo8/LhuMgwS+Ewiv7
+Kc+iwHlpdKKC8elUw4e7Lg+6JrVRuHi/V9qK+wyf9xHNB1bPofCdTUTvcD9WwdQmqHkOlc417U3M
+/+rBYRr17uJotXBx6RGbaY7w0r7yKyXxZRVMc6j56UzNj2R5z8ce0im/uUo+Lo5uGIGVQ+Xx6YzT
++RuXHjXkOHiYJf74Op47olM9aejon3mfq+RcHB2nxX3/1YPzw5imTHB8/oblg8jOZsg+HoEpJ47n
+mB0m0zUf2UDFUc//9sOjFpXe30AyZgKq604XDW+5xmj4wnuNND+LMFbJY3G0TIv9vBF/30Wl5Qkk
+al4xdCbkJ4wAzw8ZvZcMrl/ni0rUK+XiKKfFblxc7R+2qHR8Bkt/OJiQgtXhEJJDUXy9MTzjfiSE
+eYWZnlENY1q0qI/l/8/et/bIjhzZfR+g/0N/ESAB3l7mO3P9ia+yBcNeYBcLCzCMgVYaywPMjgBp
+1ob8630ikq96dlVdksWqDhJ3pi9vnWrG60REZjLp1DByNLBhP6m0qOxTDYzVQMWvJRo2Ld9Ph7rT
+wEUWODVyMhZHfVpU3dRi3Y0cDYsM6OY/JcR5ZO81MFlVTNM6/cLi/IAFjRL2T5x+2hacS5HHaTFv
+9x155Ej1bEi/3XZvRbyjPLx/pJQ1QPDpRjQ0RqRQGaa9gsCc08Bn5cFhWkzjzvfEhjSpZHn3inRU
+Hi4oe6eBHHFjf6yHbdtzSdQ/YjJdVTzRwDWl0UFaHLZ6dnkZNq23abp935ujrQ3X2Ljg1A6d/cOG
+1cG66kk1cJ3sYxwcsGGeVKp433cf7FAefloYzCp7cVIDuSzOwwP7K8u7eqifHbjlmLDhMKnEhKjK
+gp9KiXnx3aRfPhMHi5SFUw3kN9nQg1bjxvU0Y8aDhCT7LUXhvhfwpNJIiH15OL4MZSwMTsbBgmXh
+tDU6o4H9kdKrS6L+yCEzJcRcHla8qxv1y84jALo26SgOFi8L97bk6jSQR8vRGnEvM4wS3ayB40ml
+cc1R3upXdxs89u8BKadxsEppdFYDVBamrj+8QwPnJpX6UZOxMOhXHzY8bpT39lMrlkYnNEBl4a7f
+obJ78voGDZxPE5MFiFwYxG6z32oaB1QanQiFJWQ/oQH67aMb3KyBz0uj9mAMeRoHvN6mTwljabT4
+qFGnAfa6g0C4QQPXlkan4gD54I3X24wpoeEJpatfjjVTWXhMBVdp4JbS6DAOkA+IaSteeFXyQ9uK
+H1lWwwO7nzylN2tZeLMGbpN99IIuDijD9stQ8463De9/378p75OHEhabQD+REI81kMvCcxLun8f/
+3pwqjfJzirQkvxy75dPF4WJl4VUamJaFn0t/pIexNKp34y4e0wXpang11Iktf7ddFvbrSw/PTgen
+SyM97nvcbV4Qhm2f9zLiwhNqn7QGfVlYHT13euDd3b4M+2czDrC3ex+ebl6QH93XPGrUN0kxb3f6
+xg8+LDyhdrY9pLLwTIe4p4Fe/rxJTdVtWlXleM87tzQTyGG3XPRJcdjfjjf95TGry53it8t+WgOo
+1qgsvGKU4ED+LHvapTxCns+y08IkJIY4mO5vNzya4sjrmAza45dBzC37vgZ4mIg0f8tI0b78KVNl
+GE7azDB1uzhNNTAtDnsmaFPNzQjvZKL4PXFjWbDoWqNvGi3sDco+X7L06HJ4f3fLG/v6bje7Qx0c
+MAGxDarBsth7Lc5KLwY6eNFnuHrEuB3ze93tVRZYekOvf+OXwBnWQ+j2czv5YAZlmenrIDTPLccT
++18vudboxMTBJ7MGk0eN+tWkieU3/Pq/XcsHvwzQsA7S8YMZb93D++pgD3S9t69VONcizVwWnpk8
+OjdzNM1x2Z4l79xJO/vv+F2gND0I/mAt6E4H1b7qpmXBuNnl+CaAs1y40CTy8QRi6CcQp7OHbyef
+QM8eQO/32EGcskU085mghYbf/ZF3NuxU10yA43NquTCqT7wcaXhn5oqTyHZ46fPFSeQxs2UPKCBM
+guSOJoJwgk2hD9IBV9R+6gi76a5O/uQ7M/vScFiGffczatdMIp9+qxOtMKcEPXnR5VgYNnsacPyG
+lxIyG4R1/meFn2nwgV4Ty8EQh129JnTYHm/12O1ptOIu6IeLSbo3ewHOXXI9eZ9LLgp6UzYdC+SN
+rGv4CMIF4tRNxd1E0/DrwgO/JdYceUG9VxoebGbzRg+88OsAbtrq8VbZ9zUwrDF/O9iYqDqREqfb
+cwXe0p+aB93kd+M26PhxJihjB7VEfiXY6AX7pWG/+XN+gzI/6NQMWz3e/Hqke+hiMo1MXjfdunl3
+Yuvmfn3tqAHPGkDhSD5fwAFCQ3RuGgdN1PAD33lB6EikOVkck+q6/Z9PvxZkscnEYW3h4eu9+ldd
+2mHP2uka66kGeEaMqNKgyKNXpSvuiRR+iogFzV6gJ9s8HuRDdhukxP03pX1SFMwh+wA/lRDGLdyL
+vS3cD7bp62sbWkGKygl+7yF/U1c4a3zKIhZ2oJCK34AwDSHWAMENjxXQw+uXdsBedsSsf/ry1PbV
+ey86nG7Q9dato+7nwyhZFE0JVmvrskZiw58KScQhEjS/EskMzyw2fUWde6ReA+MLkj7d7nP28uD4
+kZueC93ksbNuhWm2+7hfZV4wBg3gQoQH1JCeJEDzj75K4dque2e065cm1qMbTLb7zJOJ4yui+rHz
+NXZBP7UTQRqK42EnAor3w41bew0gXSIVeDBAguyqokE2Ax000CVinV4L9dYtTSzv08Dbkk/n7b/V
+pX+/V79zb/cUdv/+63YQo548YEVPHjeNAwd4yN+A12p0BwZpRPHsAJJC2Nvmrrk+Ct54Efiiu6Dv
+b1LWv9tIeRvI56cP4x9sYT19xMyABw34zKI7SlXAWfIL4GqoBXTQMCGqwYHqvVHTrAFqj/aYkBP0
+JTL8dtlHHRyOnPOIGZGB6rbvPXr+7kgDJerbBA8oK8duUxn8UNYKDaaC8jS/IW10oOqoQaTxsi4b
+UmF2dUL8NtmnGuiYgMcqu21J+qev7OQ55F6Mfiv3/MixRuYr6sCPmMEBdLmD4yjooAYxNEiTu+GV
+KOMe6Hkrl703YlBZmMcJ0vBSjBt2dfq2EbNhc5782Mn0OdzdZCPzHAfpQAM53pEMLUjAlG0Jicq6
+KsCjBdzH8OvB6u5tGNVufw90HiahsnB8eerxi1EWXWN2sGfj0CXxBEK/Mcn4sru+zu9ao7yGnLcg
+QDLUVawKSI8upwyAaQAdlJe612e7wYGG5uhteDlOnkR71MtxDjenyQ3Cuefxu9d6vPETqabbksbB
+m3eVK2tIr8qi1NBDCy9AmQASKYYX4/Rvg+CX41y1yd9pDcxcHhy/32d8ErWPg/F5dJ9HyFPXHeUV
+5AZtXgMOiKVK5Ng19JDgBQ3Y0HRvDO3eidIPMlMMndr72fR7P5/WwCKl0YmtOSZxkItDzgd9adS/
+5mjce0Ch1S/BATY1KSSPPzX8qKlibVEik/KGvX3i8GIYHiniyfQitbHiScT9eYO9hUWLjZgdb89C
+8wclF4d9PuBN2Ozk/a/5ZV9ueKBmB0Mi9uEBEQ0uEit0sIMXWLhPnUujkQzGlwNNd8GPtKCC3i59
+PJG8oOyjDvqkmOMgP5FNg6dxLI3oadTYCdK98m543rqBIW0Z4QE2tjTSDB2UUB39doRCQmm0/5as
+cXXVWBBM34TQlcV083cXhbc+jTvGQbc3Ry6NWn4SD+zOm/RkQsxvAe5ffdk9aFwp+E1KRSxjiDFS
+ZQVYgcSYANRdZW04DsLwjHL/krC9N6dSNUA3f0dJdLvsvQam+SD0pRHswns1VTxeoJgQaUPvkt+H
+TnMFbfdgHW3K1CIGHOzPSxPhRjGmIlVlRC4xIIO+ohjfF7i/0WX/InH+7enzyaO5ZB91MEwm5tIo
+79eleHsGy4SYeM82y15Q8+xQwc0xrYsJMGSVyG2SggNAHji7RSYJCAUN1TXDGxMtTzTqvfV1eb11
+9+jB3a8GmmkyMZdG1CXoCSG2qeAX/yn2Aqr0G54pq7pMwE9pIXmizW3hOZAHjlPAC5DnUAM0vMdT
+7i0MTzVOXqO9P4lccDKwp5LBUrLvTSaOXUJPiKhP4JmOt6uiNom8gPq9EiLU0AQP95X8jK0tETER
+kgcIEwJabIs4wD9yNu1fIs2v0eZBVm4LSHWTtQS3LiRYpDTKhMg79yHY6fEQlIfsBbpz6MhDwfxO
+5IQfFCeDAt5MTVWAB6DZR3GLaEAcQDqUBaELn5anVplASHW70+tJHvZioJEQaWEBTSon9gLjbecF
+KRP7G7/8TsMVPHx5B0anXSd2ZZE0YqAMGvVCARZtYkoUEFRX52zABJJL4rp7HnFcUw==
+ ]]><![CDATA[
+ lIY1RRd5cNHyYLpVC6fFwQvABajmOL8X6PAqHvxQPGFWw5CJN2bDR6JGbbfzNQAKxACpwIWWs0Gd
+JxdoGqHgMDDXrCtb5bGLqQaoURzS4uAF4AKaUKOkkG1q0fQFmh2CGRMMGRDLnCtQK1rIn3wJP0Cd
+g5qSgocXjey4Pi5poQGYNB5udvuQtYWndNC3SYMX0LhNjW6Rx05R7tFKgQqRDQGaEqfnwYFQIkpQ
+3TeIAWQ2H+AFqHMS/XZUEwUPt+U8UvOKAz959MZMWKDe3/J50ZHS0xqYeAGN12U6sBbtCnol5Idk
+S1oRvuPRUIdT1xUyAcpGmBLlUyh8pOUIvJU3CHEXW1ZanxIDr7RAFuHNHSfL7Z3rWuOOBfJI6QP2
+MdvbrCM7gtEtSgN4qgcfojYifg+1rpEFIUSLynYHOnPJo7+B93uq67zBGUEGyBToFGk2qeQxM88K
+CcNebtQWpe6Z5O4RPNL8nS8F+jbZB/jEEXilUYvkpm1hmfzRLxZo/BqEvaYZIkjnqprbAiQMsnvy
+LcJA4wQp0pM1UFmuJRxSogMDRKSQFgQaeSmR590JGmqLqCQ+fgJtTdn7Q00KRNwPjxxFCz9FYqSB
+VFcahDYNCDucCmxGdIGCwEU/0YCHBiBil0cDj5YYaNGhHKIYoCUUhpsCsjuPkcX9p69W36hk1MBQ
+GnCBWGuHfjHzYQmhiPZ8RSPkuzq3wGC0ttTkBjkQOg20+HBE5ETuLSE3mIBekItU0j2PTN0EP5Kc
+d/0eVxVe2RYtlibUXpsQOj4ER+VVk6C3uuSXXaoq0vO0sGbN3WEEGSqkQ7gLRwFpIHB37Wj+AEyg
+uyKC4SUnQ9+9OridrKb69J2xC6fIsU0Y+bBBIoCpKBLIcEhdILWEcIA3gwhKaMCjtmkhTgXpaaen
+AjwQJ0VEBBMUDb9SOXEY5N2e+2RY8i52ORleYIGVyoPeCzIf0sSiNypPKvG2tCh4QrIgxYiqAC0e
+CE/hYo3mmMpCfAIlgeHSGGqpHIiubYgq4QANaMDRho7dVjXTB24uvgNjxdKo94IxEmIeOaEqUdkd
+0gJCGYTgoQNf0hFonBCFsYPLW+ighQd4BEwF0gh5sFHzZCLVUXGoJNPBQ1ePK4nP6cCOIyd9MFBa
+QAuDbL9DticdWJ4pKUD6GsRHDbKD/R1YQOcRsxJk6KCBGgkh0Kob9JO6i4H84F05PHj3uJL4hA7G
+kZNpMFBaSCiQPFKjijRC3pRQDjRQgQsbEBvqAGiBy8IdugmFDyRQgUJhSJWkBQfEquk2NZ0+j7+3
+Uc/qJfFJ+GEw9GmhsA16xhRCNEgMPtX8iEUNbahYRZ9HCwsoyCEMiC4qnkSiOlLzmhNDtRLChmJA
+H+7J8PbdFrb27Y++RPRDJGgUSAG8pZAaaxTKLu6ggyo10ADZHX9RoMTEw8YVPCCVhidQFCrkpkaT
+RLPNPKaSNyqquhjQzDbXb82xuOyjDvYjAQWS3qFVCCgSaTikjp50wPHO02YJOtCpQP27g/weMeDL
+HcpCsB+vN0s00cr9dN7J0/UvhDrer+rRsvcaOIwEbhVMiyIRxVzg5bgtj4/7Tgeoc/AzuqVET29p
+kL7mKtrTqw5QB9A0I3US/PYPyrBXvghnddn3ddAXSLlVKCkv0s23IIQYHKK+5AkzCoeGQ4JOFMtI
+lC2Kpor7CJRGqAMCPKDhNME7NeXXQdVHqWBLL4QaI4FaBcs9bJcaLQgBzQ1IUSM5GsRAA+YrkB4o
+QViUTOgdqwD3p5VmpkZPxRNqcALPm9OgErKaNrHMTx1eEwMPSJGTSHjjh/dpMDWnxooJQXEb5HJi
+4EUEVCTEkp5eo2U1qWqgAcXrrKoK3FfCCVr0hUSEexuZbuiND/uHmu7plHKdiNQYjQEhVEwINCAS
+ifvh+wbyp7LmZUUW7VOV1xrtkASqyqMu1NxLO++6XfvK/c1sj2PgoaXR3sP7puubKTUSIVTGo1Ae
+2YDyf83RX3XyB24DabEhLzoMVVGCLmg9Pu/Z1+zt3HiiLd6G7P1xmBorxHCLrtF1bBCjRSQEbheq
+PIFuIHOC/A3LH5EGSlRPPDWLWhA8cn5T623Jno/91FjwKFoulCM6Z80DYygMU8WjRqCBHTkBewAt
+pqeRhAalUETDiLzQecCJjc23KHt/HKbGyC2jMbuODXRuB0qUAy0coWEfoFVpJL9DJx2QJIuIksKb
+wQMmrzig3353QbxaebDPBlQoExvovjxIwSM1tilyMVQgFYAd8MfxiruCJxgTtZM0nwQP6Pbwpd9+
+55surr/5WeDquFCm8qAnBN31C9QUVkiKFdMhJb0CUaERAXVoQ+EV6gDKAuAAagfues/F7Tc/E7yP
+hK486GvlfUJAc4S00MDUlBQKXnFqUTIW0YADkTds4hFyTgSZBm72gO2UB6cIwfAIkYMOLI8wB9i/
+QjtI48m14wG3nVW8X+UOCqRyeEsvQbsKPq2Vp4Qwlge0iIDsTpPrLUolHVPgdqDwGjTo0Q60XAya
+699zsg3Z8zFNjX3nTGzQNwslGFEhKyhuE22kkjhGHk72aIcqJELNL//yXSnwyLec3AkfU2PunPvy
+gJoF4wuUSDRa6mPJMyMx8Toj6yMKgR3aIc+JkDZwbi57wBZl74/pGFLPBtFo06D/d9BBN4mcaIUZ
+pE9BQ/4WacCbEu0QcaAb2oETM6Vblr0/jtmARg+s4V1WSmcdTSQ26Jvo9YcN/L9xxkYUAhoNcebA
+k1nwGWTPxzEbdKMHNaq+HVxBuxLOQKsKrC9cCfsns0MOqLTuOPAgCz6P7P0xYYNcHuTRA6cb1kFA
+arAuuORo1xX8HfJ73WhLEbDPgc8ne3905cGUEKhEIh04FEnaRlpShT/RGvi/Rw4EaaIOHDgwVxfb
+eS/wXfBDQoisgxq0GE0NXyCqawyKJtjfgwFSjgCCf5oIF7/5WeCHhJB1YDWqHmiB1iY6SL/TJTLA
+DgzAdt/tlYJbbwc+hU/Lg14HNVKD0/QKE1o5lbRHDUhtIFyASKDuCoEFd5xYF953zr0ONDixBCsW
+KJjhCPmR0h0oMCoLgRsuBLY2O/BNcDXRQYIOWhSKFqyY8iKxivYvh/Qe7jHKv73ZgW+Cj2xAflBC
+TN7rQ0FmerCZX+WBImgH/y/xgRwBW5sd+Eb4RAcEj+wMDWh/x4be4aeGXnUE+4/yb2124BvhKs/+
+53Cg9EhaoOW1dUGveUKrjCvZ/8/I/7yyD3A1oQQKiMB6yGdg6/fyL7kJ22PhvQ6yFkgPpAnP/8/S
+9/ZfbhO2x8NHHZhOD7aTvbc+y7/Nm58JPnrC4an6bmLB374VuDp1vm1iodSK8CPZV3mTl8AFLnCB
+C/wGyK/an//Y/P6X379997v/jL+Wv3Xf48o//f6vv/zwl7fv/tvbv78V7//49l3x/if6j3ov+Pzd
+396+08l8pCLpd2vVh/Javf8bLkb/YYuQLwYT47uOxYc3LvCVqNS7Du4jFjpfMCHa9z8AF4qPmLwb
+v0z7+FEoRd9UfNC+cbjiPmwM5t2a+JG0Mwz0+iNY53ExfKiEi9oXH8nqhCv2g9Zs8pUiBIUr+KpC
++ww8vPgTLjr/YfCV71bHD1U4/FKnP3D3Flfch/EGAtnwQY9K4or+UDEl/jZr8Nvp3lT60Ebbd437
+odf64Yr78Ph6bcyHL+gTGp9wkWE6fRjr8V1F+ijwe7W2uHkfccFBLkNX8M0WeFsAh94i49SH9rh5
+kyKJD3XhCg3S4Qru03ncAG7PJhNwRX04o3UGHl4kqXHP0BO+LUJqq3CvCjIGfCpChR661MrDCNCl
+gTltwmfpy0gyC5Oa4D986D5Ge63hiiVtGb6iFfzAwJ5omkMPNE47XIRMfPvKwG8sPgZ9W0OKh5oK
+Y/FVFvegYwcsPlxS5t0Y3A+k1QW0XMBvjA4fBT5NF6IrcE+QFP+QvWu4CLkM5NJQNz0vgQsOEhee
+f50K+C2GhcIN8K87vEjaKuIHbfOOi/ZDmQJSF+T0sCL+Ai0l3HxhSbt0RX14NEL5Lkg0+ldEDj2e
+jo9BmQpfpQMsQM6IahnqMpbdX4UUemAREm4S7hkiOQW+XwWFj1kEk0qGJQoadtHwegAGA8FlDDtR
+oelr4ddQc1acUza7pbYq8M1oijMCIsKKAl6Mr/4oIC0+lhC1MB88/iNFSw4eIZo2+AwCDp7cA/cv
+/tR9W7DAwlsLkAGwZD767QWRSNR82xHswYKAHXJwG2jM0r9C1TrZxPevNLEIWQTOhytwOcjHEQBP
+zhrTpBbN/0g75OAHeIDRjsVNRCL8TUnhK8E4CcCMi4gr8kcLKTW+bAQ6mL1Qka+oSAENE0WdsqaP
+LrLcYBZFv8vhS6CWibItKCyRJY2DQWy+DW90Dm+ox3W2tPlT8DBFUQGNRJPZRbEnQ1LcWgdDMCgy
+Ddw8OLZahMt5ckhI641iOxYKX6kSvjKEztyHF+nuKe4S6aKg2CQN46aDUxSbuFfWCUg++xd0aFV2
+c2eJ+Q3fqy3g+6Q6eg7jnb5SOaQMcuQUyP6OHC3FHpgTBKLO4ibICPkLIjkrwom9MATEXkFih9jf
+/f7Fn/JF3Dzog4JTqSy5i/hVhtmAlRk/XAH7GKYDn3olGtCGAdXQwki2UGCuBRvYUAS2ogWBEwEY
+21Ha4TW+B/vhI6Q0ClJqjhnQjSJiBTtFF+1of5j+Iw5f1gWDwb/SQ5usS6cLEBYSDe2pm68kTYxJ
+CbZIfcDQx5Gx4OVsA+TMEIlp3YfLoedy1jIBRkzW9L+QZA7QjCYaGr48ahiWIhCZqnCRcgSI1iXf
+p6/9iz9lTVCeM2AA7yO7KoIat5AsPsTC9AZLIUvFGRSJ1sBOFhTItqZ6QXNuBI5UBe9BuYDkDANa
+8h6GwdUpomDjD80E6Ay+HZLCH8EtZEFow5BNLeyADBj6/I+aAR+D7yLj4mNIRpzFLJIwPk4VB4ja
+WboCkulLlaOLJLSntA+FU5ngwBPwYqi0MImvaE1uA5IHuXi+AmrP34YMWyTwBX0bLSeCsyNmERdc
+gxSGoj/BGsixXKo4F7PgRxd/yhcTihmufVCbGc41tkDZQvURbSn0fly3/eFUMYdv+1+o/f6Jyr7/
+hP/gVvz7/31Xxft/fZPST0o/Kf2k9JPST0o/Kf2k9JPS79VKv7++/ctbev/1b95/99/fvvuXN4XK
+z6Lw47G/P7595/t/+tX3J2tBXL6zGgTy3noQ0HsrQoKeqAlx+d6qEND76kIA76wMCXlnbUjQE9Uh
+Lt9ZHxLyzgoxQ++qEQl6V5UI4J11Iv3KE5UifeGdtSJB76wWM/SuejFr/a6KEdB7a8YMPaoau2+8
+p24k6J2VIwXBfbUjIe+sHgl6on4kMe6sIAl6Vw1JwDurSIKeqCOJBO+rJIl576wlM/SeajJLcVRP
+5st3VZRZpXfUlAQ8rirp6p11ZYbeVVnmkLqntsy/9I7qMifBo/oya+WOCpMc8a4akw==
+ ]]><![CDATA[
+ gHdWmbmmuKvOJOiJSpMu31lrUkF2Z7VJJd6JejNfvqviPFU08jf+/Par7/++/MsvzY9/+OXHP//8
++7/87f0f6Dqu/eX33c+/Ln/7Xv77L39+z3PUP/6/H37z/vf//Mtffvz5T+//gT7wH99/Xf7xz//6
+w/flb9P3//ivf/3hL//nhz9+/19++Nv3+VN//U33OfrP23cKH//5zz+/B1vkkpbnu0HDoBBHdSOS
+ZQJddSOcBlFCZajxUKWOqqsFhytwdMUG7nE8wonItEhmdNFwiILqg+GPUXojO3pPjowLRJ9G9e2G
+M2QyKDigumT/AYnSx1DpasoFHuHmDVkbfm9816ccXvwpD5c6KJ7N7VVx6SJIhvLlWPT6QAkeFwL5
+LwRAkY7I8PlKUeS+JBiIV6jpxyiP5Av0lhPWGL7Zjl/dNUJcBmtKDZCOaJrTGd0/cj3ETFTX0WcM
+ylMfcst7dPGnfJG5mpQGBoNqYUvETPbKwoK0j637h1Mmx7dV/0oOkc/qf7O3/MvPP//+33744/uf
+/vL7P/74w8+/vNvfvP8dzK+gH/xfE7v9HcpUil44d6IihvH5v9Wf8C2G8rN7/ztKs8X0/90/kL5N
+JHKiQCpieq/+LY/HV1UXEMdBcnhhLxAA+Odf/vbTD9+Pn9qPgwlZUTuD2CSPR15FK6InBnSozZXL
+7Q8ai8j5m12Y2p9ougEdi6Lfs8egr9JdRWgya1L64WKyy1PErIie7EN92WOp4NCUWcBXdFugaa4o
+qWSh9eXM5FZ1YwF9Q0SsnxxVU7gbLoApM2SlgnMLumPDLuK60bvDiz/lMURkrsQXcxGCm1Dk0XSF
+f/tQQppIpYBL/VigDVQo4GIRqHKnUFBOcwMFP/V8hbbz5syGIA09cP/iT3lIJ+dnMK2i4CSV0cbP
+3M6hM/BcdlDNSB1f8t1ILNiIjUXdoaEuuK9NLNXOJuWCEeGHCySFDf1ERqB2gPrOpCm79nUTNahR
+GU59yikyGegq2PzrqNVwMTe63nOPDJXA9NQAUynMbRw7w3Qs5fDiT3vEBR71md6K6C1fcDrmjn7f
+T/9wynkXi11qjlCPvf+doQEDeMT4Q/9P7MMmZYU4aqCWj16UN95QOcVDBImD15JrUxdDTTH9G4Ky
+0MR/sB49ucdDF6hgcs9nbDe8BKtHp7McPGJDZree/S/lFp5KbGdV/gaLaiY7gqMG1zBJKE9lsuuq
+QvIItNeevwqFeh7UUf1kC6rNQM0tVSYql2JFpG9HGNnsifiEp7It+VyldeO11tKoAPXRRW54EppI
+rsG5t6AIogxKxTaKUtsPXTpFRSSpweR2D4yk+QKSmmeqoEe7+Aqq62ECTVGrShehNGosoVjvco9v
+uLrXRW65uN53qiOnghjScbOgKFnSlegM9/0p/0LcaCTfAVv51OmzvwvKh+gZfO7IPdVVIXbfRDai
+/swTC3V5EUWy6qPH5NaR6ILpW2d6Id2h70s8LGBcl8CpiTNUVRCrcMBD7yrS91ONx/3GYAkaUKHS
+gV0Gv4ion0U1DOyvQPNcINCVwtE/FVQ/d4OPRxd/yhcd1/KwKxIEea7OI2EFcT/R3qG//+FEDCzG
+ARw1IKW/o+qJWHv8of+nQTtUJSM72BU4AKUjKqo8OEMvgGcSoIELT75KqiMn1IbabBq3RIZNPE5A
+VVby3QiXTkMqy+MXNBrHvue6EQCKCU+uA//EH8KhYgpd7Qkmgb96ppQYqXbDx5wyudWjLYT4Sgy2
+6xptHyW4QUXMAA9L0Vn+jQgZxSTjNQU4rlhHDgr+Gea+hotwd3oWMQNDslxHZen7jE6DzqDm4Tfu
+X/wp37+hcTsar46FCTwuweW7jo6i1rGX+0R8SBVoR0bQAfI05KaRVhp0QC9oIo37JHCfpcEWlHnJ
+JhruI6NkFFMYMQHRocnjq5oaZBRFiVtcxZFqeXxxnA0/vPhTnvON1I4QQXEbykNgVFkOY5NkYmdo
+FAC1pk9R93Prnkw7/lLcjgs0jop/gioTjwEq8DGTLW17k6enIasml0P54SxxOETrhvupZeCvooEM
+BBdxVlDdbGtBA4UpNxK4QTUBovug7VTYY1HOOR7m0UVXr6FgSYrUbOMHJyDcICqEPFQVE2sQHuh5
+YIVafNOJiO+IqXNjKsjIYFHTD0zP5I3ksd5mtQXdTZBSARfpLiincGgbGqylsopKUnaMo8j7w6lw
+XI6PYh7Z/TsaNaBxiPGH/p/47g13UjQfY1bgo39/wx1+xO5eack4Ly/f/fjTD//Q/Vz98Kcff+4X
+m//6N/Sx//T23f8YBEQDQI3A+/98V5FDg+af/vfpT/Dfu0/1/0cY0WcC/yOKyHde8s6/lRa9/wPx
+iKb3ZPzut/iH3TccAhe4wAUucIELXOACF7jABS5wgQtc4AIXuMAFLvCvCb9yj5aFfrvABS7wLwu/
+ZzspISuBC1zg88G/kW3ugG9HdoELXOBbgC/HNjfBHyK7wAUu8I3A12Sb6z+8juwCF7jAtwB/LNvc
+BJ9ddoELXOAbgc9OF2vCH6s6gQtc4DPCl6aLFeCPUp3ABS7wueCr0cWa8HVUJ3CBC3wW+GPpYh34
+QqoTuMAFPiN8I3SxAnx21Qlc4AKfCz57vD8FfAuaF7jABT49lov37cMfq3mBC1zgw7FCvD8RfE3N
+C1zgAp8e68f7U8BX0LzABS7wAf7YeN8yfGnNC1zgAp8ej433p4AvpHmBC1zgA3w78b59+KYMJ3CB
+vxh89oD9CvAtGE7gAn89+EIB+xXgjzWcwAX+MvB1AvaF4Y8ynMAF/mLwdQL2K8BXNpzABf568DUD
+9oXh6xtO4AJ/Gfj6Afva8NUMJ3CBvx58/YB9efg6hhO4wF8G/tiAfW34ooYTuMBfD/7YgH1J+DqG
+E7jAXwz+qIB9bfgKhhO4wF8J/tiAfUn4OoYTuMBfDP6ogH1t+AqGE7jAXw/+qIB9SfiahhO4wF8M
+vn7AviR8fcMJXOCvBF85YF8bvqbhBC7wF4OvH7AvCV/fcAIX+OvBVwvY14avbziBC/zF4GsG7EvC
+H2U4gQv8ZeBrBuxrw1c2nMAF/nrwNQP2JeGPMpzABf5i8HUC9rXhDzGcwAX+evB1AvYl4Y81nMAF
+/mLwpQP2heGPNZzABf568EUD9lXhWzCcwAX+YvDlAvaF4VswnMAF/nrwhQL2VeHbMZzABf5i8CUC
+9oXh2zGcwAX+evDZA/a14dsxnMAF/mLwJQL2JeGza17gAhf4wbGdeN84fHbNC1zgAp8em4r3LcNn
+17zABS7wg2M78b5x+OyaF7jABT49NhXvW4bPrnmBC1zgB8d24n3j8Nk1L3CBC3x6bCretwyfXfMC
+F7jAD47txPtm4QtpXuACF/j02Ei8bxm+kOYFLnCBHxxbiPeNwxfSvMAFLvDpsZF43zJ8Ic0LXOAC
+Pzi2EO8bhy+keYELXODTYyPxvmX4QpoXuMAFfnBsId43Dl9I8wIXuMCnx0bifcvwhTQvcIEL/ODY
+QrxvE7605gUucIFPj8fG+8bhi2pe4AIX+MHx2HjfMnxpzQtc4AKfHo+N943DF9W8wAUu8IPjsfG+
+ZfjSmhe4wAU+PR4b7xuHL6p5gQtc4AfHY+N9y/ClNS9wgQt8ejw23jcOX1TzAhe4wA+Ox8b7luFL
+a17gAhf49HhsvG8cvqjmBS5wgR8cj433LcOX1rzABS7w6fHYeN84fFHNC1zgAj84HhvvW4YvrXmB
+C1zg0+Ox8b5x+KKaF7jABX5wPDbetwxfWvMCF7jAp8dj433j8EU1L3CBC/zk8ah43zJ8Hc0LXOAC
+P4A/JN43Dl9H8wIXuMCnx6PifcvwdTQvcIEL/AD+kHjfOHwdzQtc4AKfHo+K9y3D19G8wAUu8JPw
+leN94/A1NS9wgQt8eqwf71uGr6l5gQtc4AfwleN94/A1NS9wgQt8eqwf71uGr6l5gQtc4AfwleP9
+KeDraF7gAhf49HhUvG8cvoLmBS5wgZ+Erx/vW4avqXmBC1zg02P9eN84fDXNC1zgApfS6MKxpuYF
+LnCBT4/1433j8NU0L3CBC/wkfM143zJ8fc0LXOACnx5rxvvG4StrXuACF/jBsWa8bxm+vuYFLnCB
+T481433j8JU1L3CBC/zksU68bxn+KM0LXOACnx7rxPvG4Q/RvMAFLvCDY5143zL8UZoXuMAFPj3W
+ifeNwx+ieYELXOAnj6Xjfcvwx2pe4AIX+AF80XjfOPyxmhe4wAU+PZaO9+3DH6V5gQtc4AfwFeJ9
+4/BHaV7gAhf48bF0vG8Z/ljNC1zgAj+ALxrvG4c/VvMCF7jAp8fS8b5l+GM1L3CBC/wkfKF43zh8
+C5oXuMAFPj2Wi/ctw7egeYELXOAn4bPH+8bh29G8wAUu8OmxRLxvH74FzQtc4AI/OBaK943Dt6B5
+gQtc4MfHEvG+Zfh2NC9wgQv84Jg93jcO347mBS5wgU+PJeJ9y/DtaF7gAhf4yWM7dLE0fHbVCVzg
+Ap8Xvh26WBS+hOoELnCBzw7fAl2sA59ddQIXuMDnhW+HLhaFL6E6gQtc4LPDt0AXS8MXUp3ABS7w
+eeFboItF4cupTuACF/iM8C3QxTrw2VUncIELfAn4FuhiUfhyqhO4wAU+I3wLdLE0fCHVCVzgAl8C
+/li6WAe+kOoELnCBzwjfCF0sCl9IdQIXuMCXgD+WLpaGL6o6gQtc4PPCH0sXK8CXU53ABS7w2eGP
+pYul4YuqTuACF/i88MfSxaLwpVUncIELfEb4Y+liHfhCqhO4wAW+BPyxdLEofGnVCVzgAp8R/li6
+WBq+qOoELnCBLwF/FF2sAF9adQIXuMBnhD+WLpaGL6o6gQtc4EvAH0UXi8LXUZ3ABS7wGeGPoot1
+4IuqTuACF/gS8EfRxaLwdVQncIELfF74Q+hiHfjSqhO4wAU+O/xRdLE0fAXVCVzgAp8X/ii6WBS+
+juoELnCBzw5fny7Wga+gOoELXODzwh9FF4vC11GdwAUu8Nnh69PFOvAVVCdwgQt8Xvij6GJR+Dqq
+E7jABT47fH26WAe+guoELnCBzwt/FF0sCl9HdQIXuMCXgK9MF+vA11GdwAUu8Bnhj6KLReHrqE7g
+Ahf4EvCV6WId+DqqE7jABT4j/FF0sTR8BdUJXOACXwK+Pl2sAF9HdQIXuMBnhD+KLpaGr6A6gQtc
+4EvA16eLFeDrqE7gAhf4jPBH0cXS8BVUJ3CBC3wJ+Pp0sQJ8HdUJXOACnxH+KLpYGr6C6gQucIEv
+AV+fLlaAr6M6gQtc4EvAV6aLpeFrqk7gAhf4jPD16WId+AqqE7jABb4EfH26WBS+puoELnCBzwhf
+ny7Wga+gOoELXOBLwNeni0Xha6pO4AIX+Izw9eliafhqqhO4wAW+BHxNulgBvqbqBC5wgc8IX58u
+loavpjqBC1zgS8DXpIsV4GuqTuACF/i88JXpYmn4mqoTuMAFPjt8TbpYAb6m6gQucA==
+ ]]><![CDATA[
+ gc8LX5kuloavqTqBC1zgs8PXpIt14KupTuACF/i88PXpYlH4mqoTuMAFPjt8TbpYGr6y6gQucIEv
+AV+HLlaAr686gQtc4DPC16SLpeErq07gAhf4EvB16GIF+PqqE7jABT4vfDW6WBq+vuoELnCBzw5f
+hy5WgK+vOoELXODzwleji6Xh66tO4AIX+OzwdehiBfj6qhO4wAU+L3w1ulgavr7qBC5wgc8OX4cu
+FoU/SnUCF7jAl4AvShfrwB+lOoELXOAzwtehi6XhD1GdwAUu8CXgS9PFCvBHqU7gAhf4vPAV6GJp
++KNUJ3CBC3x2+NJ0sQL8UaoTuMAFvgR8UbpYGv5Y1Qlc4AKfEb40XawAf5TqBC5wgS8BX5QuloY/
+VnUCF7jAZ4cvRxcrwB+rOoELXOBLwBeii6XhW1CdwAUu8CXgs9PFOvAtqE7gAhf4jPDl6GJR+BZU
+J3CBC3wJ+Ox0sTR8O6oTuMAFPjt8U2xzzce2ozqBC1zgy8G3wDafwheSXeACF/gG4Y9lm2uO5WQX
+uMAFvjX4Y9nmU/iisgtc4ALfIPxRbHP5WEd2gQtc4JuFr8Y2V8LXlF3gAhf41uBrss3lY33ZBS5w
+gW8WvijbfAp/rOwCF7jAtwZfjm0uH1uQXeACF/hm4TOyzafw2W9e4AIX+KvCv5Ftzh3r3LzABS7w
+14ZfzzknyeqxNy9wgQtc4AIXuMAFLnCBC1zgAhe4wAUucIELXOACF7jABS5wgQtc4AIX+CvB756+
+/8bZf4ELXOACF7jAvxxcTc71f/tXh6tzJ8FPGGTe3y7w0QK6PwmuJ+eZ0Jjntwu8GPVPcMOnnZz5
+Sm+J2X+7wIuebXIQZO07nH5y0t/tOTs8s+ybgas9C5D2QxFxpuGkvwW2RbZElya2cPMvAT9lgVSU
+RVXURTOcNa7AFgTfM8WDb/5F4L0NphYg/bfFTiml6QQc/1PFDhfJGJHt0FPTI2/+JeCjBcgGvQUa
+0j9p3iinvAoq4gz4ySoNSzSdHS5Gw/Zl3wb8kIdCZpsyGwEa9yqpStWqxdng/xVs4dgOFA+BWWnP
+Cs8j+1bgQxQQPFNRhG5BRGyBoEpofqe1NtriNPipwJXEdmgRMF005G7i7k7uGVU3E3xSlO5TUYuL
+BjEACyBGrPY66VJX+JN0wN8VIiIqS2RVwGCJA8LcaoVnVt2c8CMq6nhIMwtlCwRov9E7A7NAzy3g
+utZRW7WDkTxSddPR0lVW2I7s24AflkRTHorg/h3YhyzQGgoZY43n0xmjd7jsOSAC09LUCjLcdwP8
+MApGHqJM0GoqSqHpEkbQ0Hw0palwlvjJGYXgiFojPQTEx0krbFn2bcBPRQHzEPF8piKlHVJAAxIi
+C1SmMa3Z4U8DOwRk6GyFg1iQBH39MY0CZGOC50DIVFQzFUVdI19baLyE5ndW8VmwFTxioQZZKdCW
+J8PdmBq+5eZfAt5FQR4pnQTCUBKBipiHdsZA270FtIVBrEI01CYZKo2QGkpO0AnWyWXS2L0tdPOv
+A5+SUS5Lc0J2FAWIkJGHEjTeW8BaYhv8mIPBcTDsp+d43LvNfvMvAh9bg/0ooIScS6LMQ5QJWltk
+zZMRYIbOBqmzQeDkHE9EgnTQF+D7KTkMuYCiIGdjroeoKOVkYIvBApbpqEVwRJioQJmabZDZqJmO
+YshM6KVjTMlja7DrcgGtr+sS8khF2QJuEgWUlrVuYSzX9845L9Nv/3RQ71tu/kXgJ6KAa5tcFHWB
+QAk5MBUpaN7x2UdB1UUBNc0GObkiOHqFLhRutsHzqG4m+ISJ8rxMTsl5lIKKopwOchQQD+UY8GyD
+PhdQFDQUMokDgcjID4OqV9rg+VQ3G7wj6n0y6lNyxUURpYMcBcRD2QLZBogCShMV/jGPWgQEQosu
+ITAZ0YBq6lJCbwOZgz4BP5+SqUHWXVE0RgFbgEojMoOZFEXUK1sout6bWogHU55qS7JvBb7fJY8p
+OfBYneXWQOcoyEWphfYDTk9khB6tj4ISzQEVRTSGmnPBfhTofoR8O7JvBb4fBXEySEGFqdeUYbk7
+GAMh8Ok4JfftWdONYh/yEIXMJTJ6qOzbgJ9qkTkfU21TdiNFFAiei6JpFDiOAm4NuihQw9QahcwR
+Fd1QnD6D6maDHzQH3SQyru4XptQj70eBzym5aw26KCDDVUNZekBFn0fBc6luNvjBeF2fkjWn5HYv
+CqgoIgtEnGSDPh9343XVfiCcT8jz3fzrwKdkxCn5oDDddblAMQ/FzgaOE3SXkikQ0pAO+iiIR1Ew
+/82/BPxwpKICE+0Xpl1RBL+HBUjzic/ACaHllDwdKeqjgBNyt1B4iIJtyb4V+HFzkFvkXJh2UUCl
+UctUFKH9EifZwHJZFFGY5pGi4lwU9EXpnWXpVlU3G3zfBj0TcT4mnu8DoUZCttB7aStb40/JNihQ
+FvVTmdQgl5MhipCHPq5OyPfc/IvAD7NBk8fr+pScunRAVEQWqG2Dsx5sUPFEZr+0oltrdNUoxRw3
+/xLwIRvkTsp3PRqTEafkyiiOAoVkkKD71u7wp0EkwAbIyMgG1BxQyAxktFcUXRUFz6i6OeG9GfqE
+0I9U1JySG2M4CiwyASzg8lMgLWwQeSoTZkB1ioSQOjJy10fB42XfCvwwKdfcoHVMhKLGd1FQsgWU
+owzrFMKhJjOgMEpIys3eJGYziYIjG2xJ9q3ApzbI49aUDWiYIjNRREVkLZVGtoERtEMtiv8Wgw0i
+kvI4mW+GpdjTWQN5WuficZiUacQuZwPP8zIgoxJFkQf97KB76+gwsEHDNmiQLigp52yQy6KBiXID
+ftdY3XU3/yLwfRtwRs5zkZQQom7h9jVag4goULCAdwF/LNhotEHRLSzqsgH99uooJS9y8y8CP5jK
+jNylUVJuuoQQmIxKRIGB9qNL+OOcRmImG9TGozBCRibDtZMVFftTmLLK6xP4YSjsuEtrqU/mhLAD
+E9WIAgftlzgTYsHABsnyipea69O4t7KoPCiLlrv5F4FPbZCL01wYUVLWyAYKzUCDKAjQf4WT2gH8
+xaI4ghnYBu2w6NcMo0VnbbAl2bcCP20DKoxqZOQK2SCBiYisEAiVq3FW+GnfBt2S38mzUQfZYJuy
+bwV+YIOuQdhRYcSzA0jKxpYoTB1oqHYNzho/uc4GFZq0Bh/OhZHqVpr6/fG6xW7+ReAnbEAZNuX6
+lAsjayskBA8yalyL87QNcmEk6+vuQB2URn0olGwDKk6bzgYBHNS43ZENDJo0l6cyD5eayvq6q+Gn
+6IhsEDobOBRGmm3Qsg2a0QZEVmVvhsnDB/1yX1lfdyX8kg38YIMI/ycb7Bx10DCD5S5BwQaaeuXc
+IEwKo7Mt2pZk3wr8sg1atoFxNJU5mqGzQQDhJLaBhQ3iUJyeaJO3KftW4BdtkKcyOzPABjuod98G
+0ShdasNNmuERo0lGltLouuNMaXQiFA5s0NhgdrBBwTMI/WNQVb+7zp2F0TOpbjb4hdLokg0MbOBh
+Axq340b5jR+n1fs9gqyvuxZ+ZUoYbFAPNuAF8IHHjFTXpzXDE4FX2ODxsm8FfrMN8thFZwYePs02
+cJPnky/YYEuybwV+U2nUh8K+DcK0Vz7dIGxT9q3A7yiNehs4tkE72KA4bBAy1y148y8Cv6M0yjao
+z9ngjRfM3DGVdvvNvwj8jtLopA3IcIehcMOE8jOqbk747aXRYAMiqzEUxsf0L+xlNPPNvwj87tLo
+kI6utMGWZN8K/O7S6LwNThSn25R9K/C7S6MrbLB12bcCn600GmxAv/3uMaNnUt1s8N4G7lJp1LAN
+ms9Ko4t0tMTNvw58MMNgA9fZYMc28GyDdMoG50qjK23weNm3Ah9tEK6yQfN5aSS7Yd8Iv2SD0NnA
+OlqGPZqhG0CV0mgm+GkbqGwDYhta+NiSGVzDbwa5wQZbl30r8OPSyOXSSOnIobCzgW1QuhY2ULDC
+JzaQ0ujW4+SokVMV2YAXYZMNds4d2MAOI9hSGi0zapTpiGwQbWEjbOBdhWygvPbKtbCHHSfUpDSa
+Ab6/FP7YBskVLrgaUaA9NO5ofR3M4Gx7MJkjpdHd8OPHEezEBgo2oFWPVJQiEGhXLwNCqp23O15j
+Ea6zwTZl3wp8fFp2aoMi2wDwzgwRCUF7sBKsoJAUgiOaKiY2cFIa3Q8fn1juHst565ZhU4Xah0JC
+QjDe+4A/BkkhOly3itca0eT+xAZSGt1+dGyU5yIDP6xJT0fteBl24JSQbWBhgYg/FmxUOm1Lq00y
+SidaYDGdUJPS6A74tFejh5a1Cvx0VGM8ytPIXJRtkGAFDzaqUBzV+eF9WgKctOZ1LjKhdjd8v1+m
+B8fpSU2ra4NWzIL7OR9kGyRPbIMKqUZx1FjLTySU/Hwarfc6nFhe/uZfBH7YJNCD47U2ujLWNDxc
+ERy1A0gJ2QyBk0LgArUxVle8/DSvuTtjg63Kvh34caNWaa3LvAN8ZdGVoVuuURr5zgaWE3OBArU1
+Ttfa8ityDt8JIqXRDcdBk5AHH6hPQNI1pTW2dtZVaBE8EkK2wY6Lo4gmweuGHwmJSmcbvA1rjaQ0
+uv5gNspV5dgnpL5PQIGKQsgldMtDcQQbJC5QqUlotc9PqMVzb4ta8uZfB75fHFGBSo/M8jA2jRt1
+jdrYJHQ24D7OxK5XS8NTIePy0zVu/kXghzbQvIVCLlBbHj/1ruEBC+9dLo0OezUes5g8mXN23ePW
+ZN8KfCyODgtUy88Jto40j6RQIBhsN2Zx3C/bw6ejZBn2LfAzBeob72tEj47XPJ2z4yHUPHZH40an
+xiyOnlBb/OZfBJ4jocvKlGH7GjXxbiLGVpSYkRRoKkHn8dNu7O5o3CjPCskTarceXT2fk8JhcZTG
+gWyeTFBIyhWPYU9s8Mb7kN89bvS8qpsTflwcDaN3NHI0mVSb2IBKozEUbrbBVmTfDvxUYna8mUjL
+oxb95DLBT4XCxAbyYt874YejFv3IUZeVSfNmWOvSkg0OUsJFG2xb9q3A9xJzv8zijV7FxaMWmjtm
+XgbM+4lkG0xLoxM2kNLotmOSEQhe5Y6ZptUms/x+2NNltEGezpnMIxD8jjGLb7n5V4Kf6ph9txg7
+9CvveH+pCoWS4ik1mssp+S3k3aPjV0wlLHLzLwKfJoWGu7W+Y64nDyXQPmvZBtRNWGMqNsOnUwkL
+3/yLwE8lBZ5O4Fat7HZa4wSdzaBtZWEgY3hXnZNTCavd/IvAp23C4Tg2wblToE0HaePHkm1Ay+Fp
+So12+Gp4R5czNti67NuBH07yUyM2SQq+e0KH9kCd2sAN0zkH8whSGt1+kOPuLQbOQ3iW55jHrR8T
+7wUcJhtZ8HROP49A8KunEua7+deBj4Q0XQTZtwmJ2SgOuzE349pH6iaunkpY6OZfBH5hYq17MIF2
+ZE79jtiUJsKJIVR5pfI3wTtCGkrU6aROZiOe1ok488bk8VSvdskG25V9K/A9Njpc8Q==
+ ]]><![CDATA[
+ 0hNS/5oE0+1CW55oEg5s8AyybwV+wEZUGplhOXAmpMZppAU/2MB0OwHb4wI1l0ay5eOtRzets09I
+bTeYnQmp6F/ZAhuU3KjZyXojflHIXWtdvv3mXwd+lpD4ZQkRqTm/OIdem0PNckMFKpVGfY3aTta6
+SGl0J/yoPJqwEb00pID+LdmASqOKH9mcPJ9zVKCue/MvAh9Hjw7LI3pXAq/yalEj9W/x8sM+tONk
+woUCdduybwV+2KwxG/XTOskWSM01v00t2yBwgTotjk4UqM8i+3bgwyRzzrDTuX7fvUmKIkF1b1LT
+54qjN162cXdx9IyqmxM+Hc6ejh7ld+jQCzZ3nQ0Sv8WLRu8oK0d+wO3ehcAz3fyLwI+Hs4dHaJGa
+XX7FJspTsoE1eSuwo8R8Q3G0Jdm3A98fuRiXBDtOzRwJlhbAwwwliqM+MeuTiXntm38R+PlGgUuj
+gt8323RvXPZQdn5hyHTU4owNti/7duAHjcLb8CBzfoeL7d58nd96nd8hVY8d82FGeC7ZtwLfe1on
+T+zkXqHiF86qLhKa/Nbr3DF3j4YMGSEPfdxdHD2r6uaFn0vN+XWnCfqvcebEPGSEt+ER8r5jvskG
+W5F9K/D9rnl8nNxykRoQCdkGjmf/+U1e07UWZ5PCKjf/IvDTqTl1L511eeyiwllyUhg7hXTd84Jb
+ln078HFp9qRlpnagfwc2BQPZIL//PRw9J3WiTXgW2bcCn7TMBB9XZ3OdiiLVQfsl24DahHSmRJVH
+yL8Vfm5Am4pUg0hIsEFCoaT615zmcQtiI4LLYuAZ4NPUXA9LUnOR2kdCgi2oROXXSBFZ7ROSLAb+
+Zvg0EoYilad2+khI+TkpOyGk5piQHnLzLwI/NbWT30Ze5rELCoZESYEJye0T0iU22r7s24EftGtv
+3f60qevYDNJBxOkzIe1NrZ1go+eSfSvwg7GLcTC15o6NIiHABoHZ6Eyz1s9NrH7zrwM/17FNIyEw
+G1Gz1o8eybTOvPD9jk13k5zNXiR4btYoQXfv/aVe4ebRo+3JvhV4n5rdsE9wbtdo7IIj4Y0XA4OQ
+eErBHm44JdM6c8BPLc8exi4qqzgYiJB0l5oPRy5OsNGzyL4V+MWxiy4YYAMiJGoUTqVmmdZZbuwi
+j+Ip8BBteXSUmnNeJri7bjh7oZt/EfiptS+0xwLtBdxHgsupOedl6ibuSs0L3PzLwM+P4o2RYLmD
+Ph7G+zw1L3zzLwI/joQ8ipfXXZgdB4OfpOZx3csnY3jbl3078LPrLvpgcDkYThSpJ8bwnkv2rcBP
+rLuYBMPJSODxIy5S957WecDNvxL8mrRguvGjvPooKNb8QZ36kJt/Efi5yZ0+ElxXpDb9ktRpxxZu
+KVK3J/t24J9EApVGftKx1ec6tofc/IvAT0YC+fxxMNT8ZqkxEspzkfAssm8HvrcV2Lm04E6MXdQy
+djEj/EK3MESCnURCfkxBxi7mhX9eIPWRQNP9PBPa7D2+JmMX3wy/KhLeeOv+enjh4PGCyMfc/MvA
+z0YCjV2cDIbrIuEZZN8K/CASiG0Oh1P308LFSHgu2bcD78YuTk8s0HyzhRXykPaZSOjz+wNu/nXg
++8FwOMWm2Qo0ivfJuovH3PzLwE/ONw+RYNgGul93MV2jLesuZoOfiwTFS1MpTVg6DE/uHM10fhYJ
+25Z9O/DDp0YSv8mrW4ZUolLVbAMayIuTFUgXIuF5ZN8KfFiNR/A4eRMhLcijnq2AFQwTUjlMc56I
+hGeUfVPw/jn/6YK8vE47ESXBCppTs++mOYcJf4LfObEw282/DPzU0lR6YgHJGXykcBbMRjy5Q93E
+zXP+C978i8APH6vNi7QrLlNrtgLBmZBcN6R91Zz/Kjf/MvDjzajo2R3a/g7JGZQEQxSwQYWKSXHH
+1nYbIF18rPk5ZN8KfC8SiG30sNuCQiKooP8dzpoJqTnaeUeeGZkFfuIVbCWPXjRIzkRJLc6G2AgK
+L/kJtr1pThm7mAV+vNtCwz1bAb2XbIWG2UgjNXdFKsFvnvNf5OZfBn6870iBhq1Gcg7QfsM2iIbn
+oFvkC32wN6GMXcwAP36kk0YvEspUm0eNKoRDjSRNhFSdfqvFw27+ZeBH73rhdoArVUrOCVaoQExE
+SJSaD3dKlbGLGeBdJOQWeHzPCPVsLZJzgBVKnCAkNAqpS82H79h5Utk3BT9+P2qLMrVkSiIrJNjA
+oVFAap4WqW+87kLGLmaBHw5quyE5K+g+wAIRvERsFPPL7+rbN6Ja7OZfBj4d1B7LVOIjzVagtUYw
+gwEhldw1dy87kpffzQc/fu8RTbLReB1TkoEh6L3xFuomQlKT10DKuovZ4JOdawme3wxJw0gBlFSw
+FRxsoJiQKDWfLVKfT/ZNwY+Tc6akBonBwAIGNmgRGQ5d8/77pmTsYi74/kptTs7cLJRIDGQFssEO
+zRqxUT0+MyLrLmaFH74tmDpnBZ1XbAXNNqB3pDIhtZNNa2XsYjb43ptqu+TcMh+x5ndIDWSGBv2a
+g8qrEy/+etzNvwx8v0ztFkZW6Bcc9N6QFdgGJYJDD6lZ9ruYFT55qLOvVHNy1tB6Ce23sEELciI2
+ogHt49cQPq3sm4IfvsA8J2eDQrViKzRoE3o2Cv1m8nns4u6NzLci+1bgh+9JzcmZ+CiyFbINmI2I
+rCKnZtnvYmb4YZlKyTnzUYIVOEHXoKbAhFR2qVmeGZkZvv8Kc2qbyzy5QJREhqhgg4jQoF4hduNH
+FyPheWTfCnzYnI3gfXLOlGTZCmVnA82NghuKVBm7mBc+Tc6ZkqhEUmyFCDtEkBOxUZ+ah+3kZexi
+Nrg6oiQqkdrOCnR6/FRwo2AVw+trOrZVbv5l4IedM/FRhaygoXuP0+Vn/xUIiVKzvv39tNuVfTvw
+Yz5iK5DmyRD0gk7DNiBCMlykXjHB9hyybwW+x0f95AIlhhrhoKB/wzbYcXlkj4pUGbuYBa76yYU8
+fkFdGyUGskKLMkkhHrINqDzq2UjGLuaHj5REiYF6Z7JCBQ7a8UuxW7aBH9hIxi6WgJ+zQgP9t/gv
+2YA0j7xdMCHd+Or4RW/+ZeDT9FwxI1GCTvnldzXOiszASeGQkGTdxUzwMT2zFQieDeEREAnFacL/
+fWeDeq9rlrGL2eBq+uRCJqUG1wxoySMC6HT4m+KkUJ56T/Dzyr4puNpLDeif0bspaN7Se+Tx3xM2
+kLGLBeCjFQL1buAesoPmEyZgLirzcJ+/tzzaquzbgfdWcGyFsrNDkUeNdjibLhQCl0dXW+EZZN8O
+fJqiuR3Ipmi6s0ayuNoGzyb7duBDB50DgtID2aGE9iu2QLpsg2eWfWNwssJohwC9ky0S/z9wPsg2
+kL06lx/iHu1Algisf7KA61/Bpu8dudiy7FuCT+1gWfMuz4Q6vmCmoTD/bxd4PlRvB4IbPu2g/9EC
+8vr45eGDKU6cF2ywjZt/Ibi6cC7/2wU+Hmct8Aw3L3CBC1zgAhe4wAUu8BeB42O/an/+Y/P7X37/
+9t3v/jP+Wv7WfY8r//T7v/7yw1/evvtvb//+Vrz/49t3xfuf6D/qveDzd397+069/+6f3r7T0X2k
+YNS7LYoP7VJ8/zdcDO5DOR3fTbIf0Sn/rr39UDG9mxg+Ukrv2pmPIiT1bkL6CIVW738AzKqP4KzF
+RfVBD6+8a6M/0MaHdwN88Mm9axU/YvS44oqPgE8zsHAfBUDvxvgPb1x4V9F/BGVxB/R5lcy7wnem
+FPENCXfs8m9ULnwU3uF+Au5HaQCNxTdo8661+TBKOVwpPmKRIINyuBkTGKjDB63aetdF/FAe8iur
+P6w2AJrw4ZKJ7wp3WHj8au3Uh8bv7n+j1T5CI9CRTfZd4YciGP2uI8S3SuNW3YczdCX5DxNtBpKi
+tYJylMKNBQBT+rBRQ6kaXwWVaAVt4b6hhvjhSBrSDf5RG4tP4S6SKfAxkz40tACl4iuTV3yDIRYA
+4jcH0ykVKi+sIZu5D68Cbgf/WhQQyCT94aOHLvFPzkLvCeow2YgHl37Kl3x0+IUpfmhLt4ArUUeP
+K7gXV+Rv2vejP5xyLnzb/4JH/hM543/Cf2B2//5/31Xx/l9xWRxSHHJ9h/zr27+8pfdf/+b9d//9
+7bt/eVPwR8vuCIf849t3vv+nX31/0jdx+T7vBPBe/wT0Xg/91fd3+yig93pp/q13+Smgd3oqtHSv
+rwJ6n7dmJznw13zxLo895XT8jT+//er7vy//8kvz4x9++fHPP//+L397/we6jmt/+X3386/L376X
+//7Ln99zPfDj//vhN+9//8+//OXHn//0/h/oA//x/dflH//8rz98X/42ff+P//rXH/7yf3744/f/
+5Ye/fZ8/9dffdJ+j/1DJ8Ovy5z///A5j9dEyBM60zDhJ78YH+DiCwSbzQYsSKXjICl4p826D7WyM
+KyZBU5YMBAu8/5/8MY1LzsOz4bn0XTbCFNaGj6A9tOgRBgmftmTgGNgYbOOisLgId7awIYVVoWFj
+q1W2ki9yyFo4uteeYXBVXxj8viJ9sNEQvvBYMgF+b0Fuht/rHW7XFhb+1v06Cmdj6KLK8QRf/nCF
+ZtMp8iHy1+itYT+wjk1sVAJ9OLqGCE6RItjgBpRnH+Log+tCEvpGUIzziFACFvpDGeYdBV+CC1Pc
+WANfIae1QcHNEsWWxVdFjWiMHQ2CARw4g+hIaZcjEGoFISRD/IXr0dI3T/k7hI+YLNSBH7yCWulj
+FlTDPEeP8/MVMA7dkvlACPn86wrcs2FPtz7gNnEvLsJWIDHY0/IFGC/CCojjACdhGL7CIMgtERqs
+PH671ba7Udx49OQ/0DQqYtcDA2RhX8hUhPsz/P2wGzgS3If7S0WCaZz9oC3KskJxoxZ0YT28oyBi
+xv14T5b3+KoQoVkNhyFqIo8NhcuW1ymzsY1djMINIBrux0Z8fwBlGjClD1CWxc0461J2NfxG43Ab
+qfjwzPuHUfI38uPDi6CAf0Vtj3r+I3JFr7qaPucu7gN2P/70wz90PUH1w59+/LnvChCx+Dji8390
+DQFIMNAtpPf/+Q43Bak7Sn7/+/Qn+O/dp/r/Q2B8Bn+hf0QAvHNvwr+VupN/AAX4GB26lN/iH3bf
+cAhc4AIXuMAFLnCBC1zgW4aHK07Ap3/dzs0LXOBXOu2t50n47DcvcIHnYzmnvRu+muwCfyX4Y532
+bvgWVCfwrcE37rS3nmuqTuAbhD+j094BX0J1At8mfDtetz78sZoX+Ozwp/C6NeGraV7gmxpkfmqn
+vQO+kOYFvjT8qb1uNfgSmhf4QvDtuM0TwbdgOIFfgG/TbZ4Ovr7hBH75eAq3eRb4moYT+AX4c7nN
+E8GXNpzAzx1P7TZPBJ/dcAL/FL4Fu38d+Hbs/sLwDdr9i8Afa/evAN+m3b8afH27vzD8iez+deAr
+2P0rwJ/O7i8PX8fuLwx/Urt/HfhCdv8K8Ke2+9eBz27314Zvx3ACv+bciNtsH741ww==
+ ]]><![CDATA[
+ CVymMr8dvmXDCfxK+Ppus334UxhO4FfCV3Obp4A/keEEfs25jttsGf6khhP4lfCF3OYp4E9tOIFf
+CZ/dbbYM35TmBb4CfAtetw58a5oX+Drwx3rdOvBtal7gS8Mf63WLwjeueYGvAF/f69aBb1/zAl8H
+vqbXrQB/Is0LfB34Cl63DvzpNC/wFeBLe92i8KfWvMDXgc/udevAt6A6gT8FfDtOeyV8O6oT+FPA
+t+C01xwbVJ3Atw9/rNNeCd+m6gT+FPBHOe01x8ZVJ/CngK/stFfCn0J1At8+fE2nvQm+fdUJ/Cng
+azrtNccTqU7gTwRf1GmvhD+p6gT+FPCFnPZK+FOrTuDbhy/htNd/+KlVJ/CngM/utFfCtyC7wL8C
+fEanvebYlOwCf3n4LE57JXxrsgv8K8C/0Wlvgm9NdoF/Bfg3Ou01x2ZlF/jLw+922pt8fpuyC/wr
+wO922it9fsuyC/wrwO9w2uuPjcsu8K8Av9Vpr/T5p5Bd4C8Pv8lpb/L57csu8K8Av8lprzmeSHaB
+fwX4fYcUJwJ/CvjdRH3S559LdoF/BfjdRH18PJ3sAv8K8DuI+noP37jsAn95+B1EfdLnn1F2gX8F
++B1EfQ11P4XsAv8K8JuI+noPfwrZBf4V4De4+Cmff2rZBf7y8JuI+hrqfiLZBf4V4FcS9fUe/kSy
+C/wrwO87NnLzAhf45fNKor6Gup9OdoF/BfinRH29hz+d7AJ/bfh9x5ssiBX4M8CvJOprCPzpZBf4
+V4BfSdSXfftJZRf4V4DfekhxIvAngn9K1NcQ+JPKLvDXhl9J1Nd4+NPJLvCvAL/1eJNN2AT+PPAr
+ifoygT+p7AL/CvArifqyhz+p7AL/CvDrj5M+/9SyC/yF4TcR9QWff0bZBf4V4DcR9eXj6WQX+FeA
+30TU13v4U8gu8BeG303UF3z+WWQX+FeA303U544nkl3gXwF+N1Ff9vCnkF3gXwF+H1Ff8Pknkl3g
+Lwy/yWlv8vntyy7wrwC/yWmv//BTyC7wF4bf4bQ3+fyWZRf4V4Df4bQ3+fyWZRf4a8Pvdtrrj83K
+LvCXh9/ttDf5/DZlF/hrw7/RaW+Cb012gX8F+Dc67fXHBmUX+AvDZ3Ham+DbkV3grw2f0Wlvgm9B
+doF/BfiMTnsTfAuyC/yF4Us47fUffmrVCXzj8IWc9kr4U6tO4FuGL+e0N8GfUXUCfwr4ck57/Yef
+VHUC3yx8Bae9Cf5EqhP4luFrOu1N8O2rTuAbh6/vtNcfG1edwLcJf6zTXgnfpuoEvnH4Y532JvjW
+VCfwbcI35bTXH1tQncA3C1/I69aEP6nmBb4QfB2vWxP+LJoXuBD1HcfGNS/wheCP9bp14NvUvMC/
+2hj1cvAtaF7gM8LXcZtngT+R4QQ+PR/rNk8E35rhBH4AX8juXwf+pHZ/Gfij7P514Nu0+8vAlzOc
+wK85ntRttgB/rOEEfiV8a26zWfjsmhf40vAtuM2W4ctpXuArwJ/U69aBL6p5ga8JfyKvWwG+puYF
+vg58+163NPxRmhf4CvDNet0K8MdqXuAylbkcfAuaF/g68O143Trw7Whe4OvAt+B1i8KXU53AnwX+
+dE57JXwF1Qn8KeBP5LTXnGuqTuBPAd++014JX191An8i+Dad9vK5EdUJ/FngW3DaK+Gzyy7wrwB/
+rNNeCV9IdoF/Hfj6Tnv5XFN2gX81+KOI+j663pTqBP5E8BWI+pxLP1x2gX8p+LxEvfLNC1zg3w6/
+r8bYyM0LXOACF7jABS7wNeHFxQPwyx8QuMAFvjhcHZzr/vZ14YeyHp9L/vZV4ROhCK6H03Rn//eX
+sPso7VRIW1iC28INp+Wzl/8Tybcr+7G0thPT4wx8RoJHnPQXuuw62a+Qe9GbvwN+St4sLeQsEs6y
+qHDW3VkRvMLFxPK7Tm59jdyz3/xd8H15s3V7aUuWtCla/pBSujsVZGuLppc9dja/Qe6Zbv7WY2Je
+gh/Km6XdsaRWORVUVEmVfCb87HFVQ74m2z2xxc1tUt9/83fBR/P2zgxhc8CSdbNtSVoP+UpVqxaf
+1dp0p4ZsLa4maEMXO+gnZfidct9283fCDyXujcumBVwZSEPSNmoHCZ0OOulaN3rXnY2udNQW8tXw
+AQO5K3ZyBHcfMovd/F3w3sqDhTl4axhXQVgybQXDkuyQKkC61ihjTTDJVKbhszal8TB4C8kNNBMh
+d4svGV18A2R1WeJsYc3GJXnJtEk3cANrKEmZGuFurLfJVra2Df6UNlhjWhONglYs5A4gtwZf5pnQ
+BlNvQfbRr+0oMS6SheHMYOYsr4YhS7ODqNHWyF5UnLjgSle7FmeDn7xTkN3A+kaXWkNdFl5O1qYE
+duDgD5K9M3FP1G5P4oBb3oGggq7hyt5UMK2DSDtnXXKt19770jeeZ8QKv/Mt/urczgXbWgv1KB3U
+jq1dI7YHH5/r5u+Cj05t2Km5sir3JLawcAt/TrAv5IV1vau8grQVyi8XUmhQiqmoo8qzgWWwvvbG
+Jfi7NlAXrF0itrOPn5F6RdmngZyduuYg9kTUJUtc6p1xCF4Nf945x/JG3wYDadtoY4w1KjOdENdJ
+x11MUYcEOGyuHaId3Ka0B5c7MNoY2TPc/F3wQ+qKcGoiaocs25KBDcHh0421tnLaJRTVwTfBhhK2
+9ZBWp5CqtCt1CRfAqVObIiSH/X3lqDCzOwuGhxe0ynNkXyX1YrIfWhnJiZ06grY0Mk4LA5O4taMM
+CwsbXwZYEfKG2CSTEqS1ZSqbSlWmcjhtpcq6tKmE3CpAXc5aZ6g4AZMXCJei47PHFKWHVk5sZfi1
+wt1pD9qyIC0DAxtXewvzukCGgz/XJG9ZlL6sIK2ryqqtVY0AwB9VNVUooYsUYoS1owPAUPmiFNEF
+BK1ul3oO2VVfGh1a2bKVkWdA1Mkqm+DSFUvsww7m3cGZ29IBzvKGqoa0rk51Xe8akF+9q5s6QvJQ
+VqmJbWh8DfOXpkKhpvHlLHJuwK/08Hlkn5g4l8SHVg6dX3vQVkJKqlnimBTMq8pY7irPwhLX1RWk
+NY1vUgMnx5nwc1HHqoWfg/RRf7autpWpUaINUmeRV0xSJwKZvY6tTOxVovwoQdU1iHrnE0i6gZ+q
+VIKsykpXqdrBuCULGyBmC3irWtMiL+O/qmlg3qbWFXgt2aj9zjXk+BOp96hslW7iXCBzRU1W9rj/
+4BT82iENl4jKXYossalKWDjUTaNZ3l2rUYSFNrWwLMletWXrWw2rw+vh4yG5TuqKPVx1VHaCwBce
+9jkVyKOJiahhZY9kXAWPkqNKHqSVYGOSOMLCFk7cwLiujRCyaXc7pHacRdu2JcnuYG1ThyoOUqMk
+NyXYDATepa11CrOLVu5MvLMRJq69D2T3UMOvdapLXxVV7CR2MOMObhwgbw151Q6onePT7hR0EBro
+heK9l1ohrisUKYnTlr8s9ayyX7Zyla1sGxdg4joE1JQNOTURdQ3mamtft7AxSWxh4aptYV8NOf0O
+NNedfmfaHf61aByLTFyHuC482hBkrqhR43WFmTtuPeaVfRij/szKGlYOQYG6IgzTlBFOXSH/UsCC
+txLbOEtMFnYsLyqUXYWzxE9hZyF1gtQWUgdQmQ47T3Dka3CiRql3i9T3yr5nYoJfa2WDJBRq5B9k
+4IAg1m3IZEUSZwv38tbdWUIHDrGdyMNrX3kUKVChL9FzOUO/HeVog0az6RqumwqU24a8Dqtrctoz
+VtadlVu2cg0rN3Dqqi3AymUvLs1B9xIjzIezxt8TSx3xV5PrkrgLNQoz1KOowAP6Dh41ukvq62T/
+hK6pm7hs5dSoJjYtO3WNIM4u3YlLspOs7XA2WWqK66ZtNFUlpUJhVvpAQhuDbqtCj8mdde7f7x4z
+uzTklQdDJlae1F2diSniTlnZdVZWsHIFotZTiUdx33jtwaHUAVKjIK90WcQGRbh3MHQntWapu/p7
+gSSlJ4Mh1Cmbobo+MjF1E6esbEFMTRfG8VDi/XUXvdSWpW4gNbJU2sU6RO+cRo+ptUObTlKH/QJl
+xonU3rMjD4ZQp1wOVm67pDzSNZsY8AtWPiMxHywyyR4HqQtIrSB1FYK3DgxmFEQnqatDqb9V9mHI
+K3v2aOUw9FBk5Vx3nQlkSlLnrHxK4kFqFpkL8tDUkBrunFqW2gxSJ6XOSX2v7HtuPQ550XjIDp1y
+gx6qr679vpWPTUyGO2Xl08dE6taTyFSYqaqA1GXwkLowO1RiV0h9q+z7bt2RFyWpWmsaAUKnrG0F
+Kxeors/R9YGJSfbLVj4jNYvMgw8kte6kNtdKfZ3sYyj3lVdPXlSFmDw+713BPZTi6vpzuh5MnMnq
+0nFG6iwypYm7pL4se5+kBsLmtFzyAFBrgi1s6awjp/Ul91DX0/XExG8XFshdlDqLTIXZXVKfln0/
+SWXCprRMbp3Jq3XRW1SQVfSJNN8V2NfR9cFxWvYrpM4i5ynsO6Tel/1UNGfChmebhskLJWGw6BOq
+FEpNDVTNbHO1lY+PQ9mvljqLnLPMfWXZXieVZc7R3GoHwqbiq3QO5IVCIdpUpAptsuIeqs4mpixz
+tZUvyX5a6k8I/N7hvkknlWXGN3MpsjMRhN2QZ4cC5BWTRTFZVg5S5R5qYmK6+autfFr2qdQ3Jutb
+h/t6I3f0xfMy6KMiR7O1OxB2CCYWsWbyaqtU67pCm1yeCuRpN3HbsV5hdiiz48YxGZ2TVEDn2IKw
+Q0SrB88OTF40GOLRKVMP1aCHOhHIl4j6otS5As+F2U1F+PWyTwmsl1mj3iT6is56gns0O+Bskz27
+S1EJnbLjTvliIN8m+1G3RVR52HCR1AcN1znpTsuevXsksCxzZSzqzRK1l0aSqmNKFO/g7LaKten4
+S7eh65SvCORrZT/TWVNhdqa5vn3EbCzCegIrO5mJshFGqL1AIwhlVxUgbOrfO88m/srjIblTvoqu
+P5e95XGUw1EUnUdRqDCbDKTcOooyJui+nyqRnA0TWMkyV5DZBQ36alKJUDZVy4SNO2lJdnh25q84
+ePbVdP1ZYUZSexox43HCccQsObCZcd8yYjZZOEEs1qAgiUhUCf7Tsp0dKFtBprpMHMplo5mwB7fO
+TDv17JuO84UZjRT6nWKp3XR01EXrjc9Do3TzN46OTsKZZv/BYjR10uqARNVY6BS+nWVuQF++VkhS
+tqk7wu7dmsXNSer2FHVGdvqiXmrouPF15MF/GgavaZaLh8GHAeFbRsz2wplpm24eRdjOVEhUzhv2
+7SxzQGKuu1DuCfuIvO5JUidlH6XWKAJ0E2rkyjLyRM8w5aF2POWR16JcPWLWJ6sczha0bVB1Rkuq
+c+BHlGC72MK3SWaDrsKj/HJcihwT9gXD3SF7L3VgqU0T67KC2AnFwt701omJns8S9ODdXTgThTlU
+ncgXyMzcv5OKE3ybZA4QD+VXV4p8Stj3y84iEzxLjYhqUo3UUSKLROST6VTmuemt8w==
+ ]]><![CDATA[
+ HXRP3OTdnsNZg8JqV6ICgzelBNLmJKUHmWuWOVxP2PcVZr2haewCUltIDUop64QiKaBE5Gnr6QTu
+lVOZo6V777a6Ra0dQWE+eFRgHsnZgLQpmHe5k6r3Gex68rq1MCMKZ6nbpnUNDTrVqIdKZM+INsDt
+bDOZrP903dEo+8hjRNyUrErjLXoZn9dhgyFRkLRIVJaDue47qTB3kjonNfVbWeqqRlyVVM+nClKj
+OrZw+nNLFM4F9BsvmNEdj1H52WiPZEXejRhG6UmLQeqqrAOSMxysC+YwnZeZLUldLTVEjoE07xVL
+vbtN6mzm3EHX4LGE8rM2yfrOu9FilBHiWxRhJZIz1V/20MizJalLUucRhV7qmqRmkcnukNpcLbXa
+MzMP87bon40taG1AKNi70dNxRAcUYRHJ2ZwL5oVkP5R6VxfljqV2kBoukEWmm79upHAMaEpXJVI0
+SAxwlGKgMHB3hQRNeSJyRHsUYZoT1YVgnl32K6XOIr99usbswNJsZms1kxiliQjhS1S67N0VR7Ti
+IuwKApu1MPvEw4/d+1JxMqXuHNAtqs/kkKdAYi2VHjQf1yI7Zu/uI/pq0p6pMDvLZpep7NzoQZ+k
+M3WHztL4ITr2bzSwIG4qzJCvRu++kbS/rTBr8qxQL3VZt5ysKW2Zg7R1xRoz8u9cjuUkrVB2U2HS
+WZofjtuhDoutbkskK5e7yN67bz5mKMzQ7EDqvkShwqwvUdRnJcr+6AEV3lSO1UjSmqjbF+itSHR0
+c7C06UjM9K7de92dx+2FWT1U4KhFqTCjcrRCOepQhFM5Wl1TjmaR8/A+MxmMHrgcQ5w4ytAlCpOW
+83FvaSKxPddeMEGfkzp3WxV1W1SYBbQeBbceV60nnDh3zKMHOWftTINyrEHTqJMFdaNhp5iGpdvR
+0rN3kZ9JPY6iHHXW1AKfaa4vkHfv3Dx6kJkM1XcIaLBqWo/M1N3F9CUSW7Qw60fM8iiK41EUn8w4
+ikI3X161sm4g7865K1SgPNiYfBWaVKAcM7VBkq6Zus9YegXZhzHhYXR0f2UdjZjxIOHbp2vMpuRN
+aTo7d+Na9FcEZyZDFYArBZJ20RUmV6WrWWWfFijjaqv9NWZ7A8KXRsymZahh8gbWaXbuEs6NCOIe
+FpRmUBFQkv7U0ovIfliW1ShG81Rmnt7qJ3r6KQ93aY3ZNKodytCEaCbyTkjTu865FdEYpcgW5VhO
+0ot10KePbtlGl605b/Wpui/LcPn8qozjkZP9qK4NPSBV+RYdFpF3RCdtB+dOuTS6qzD5Ftk7+s6z
+wD2D96OEOWn1qfpCgbI/cmJ5hIxKMiq+Kap3XJzEsqSROCZv6jUG514pQe9L3RMZaX5cEc4MnpeD
+j0nrUqreGznJidqawuxcgeLbccqCVhHSJTqseiDvqxbMzCr7MZHpmph2mN/KMz2ZwT9LWh199yMn
+RlXI0SAFcJkLEcy9q8CIMG7NxYk9Td4ryD4pwLtOC111JjLAu0lrPUxkXpe0mL7feIEcMbhx1gcU
+om2pBi4L3FdeSFmLyj4WZWMpSoPBZd9pAX6Jy85LDZFRkdHIiXUO5XfFDE5PsGu0HNRNjyXZnTd/
+t+x7Uc0hHY+e5mn4OanzjzGdlNqy1C6L/MaP2+xKU1Etbq6XehHZs3+Pq28aLk8Q0qngyVsqyiZP
+eFDAXtV2DFLbztCcqpku7pF6Ztmn/p0nOxp+1oXWl+XyJIf03ix9JuorPRxB7RDUE/d+45XMd0g9
+h+xdcXLo39RqJU7UikcSGh4rS3urb1jkU4XZKHUm8FyMWu+ppy6LKZXRbx/Z7ObjPtnbaXGS+ZvW
+1GX/Nmg6Wl9xq5UmD1lfNWo0JusxbdlAj+5T2tLcaQ1pa/GpjVMyV93zS/xkogZ/0+gJ3Jz92znD
+TceYqK+YzpsWZmOJYoJH49GgIimQrKvDZL1KcZJlzq7dm7lBcULtQPcMqkEh2pJ/8/rJcmg6Lq5M
+mBZmJHVuMlGF+SLYGBA7TVeYjV11s1JhNspcDs/nKTYzP7IXaegjVMzfwcTBv6+d6rCZ56n1yOOi
+NVibWmuXEtXgdc0dZo0O86AcXVD2qczk3dRtWA7o/Kixjw7FCTyaqgsF/qam2l727z2pTR4A5/w+
+NFy134EhfJkmrccZqWeXvZ3Ecy8zmAWlt0OPBcdDGYp2y9PT5YmLE342ME02grm88mbaWXu1y4/X
+RRtd6RtuM0OV6tT4VvG4qD8v9Ryyt+PURv80YmCZKYcUELSpFaibOTsgOzuFND3ZFyQ77efbRfSJ
+axxPQJQ4Ksx8FXZQJP6H5ppGjsppm3m94a6UdzBwk2fAs5U9GLSAnUnmiHbDwrsRdrHstsggS7dI
+00RjfXGizxcnx1JTadboaFDouODL0CSqbUpb+doPQwo0vXP1yNG1ndRE3s6p2cQE1/gXyh9ZZlcl
+tBuolpCkQa92ZwsE9LgDzKfFyaHU+2W4p7GjVKAGd7woFJlh1w+k3Dq9c56sjuUdJEa6KODWqbVc
+FsK3SeaybMsigXKHLWAi73GUppa+Zq3RqYJ0v99yLDL5/H1ST2Vvj6Tdlzd2EivaKgH2VE3VWOQQ
+aoFh56ZUCaQTYBV4d4mysUBwU2lyZOn943jE7HQZfiT1OGJ2vdTt4fnWLf7fl3aU1yJNkI1L+DD6
+nSYiUaW6qHxZpR0/K4R8hfLJlWgPCkObYRU8OX9xD69j2c+3XNWkyxykvmbE7FDWZk/QOte0U2n9
+IG8L4kq8B0jbJNQNNdy6rnQZU5MKGBmR5whuW3C3R2GSd/BqJ6X3VU/n7UtNbHYU1+eC+lQLfE7S
+qVk7UQlO0ppu84+aLWx5t5cIiZvaAxPg1ialiDSKFjq6igUOmuekLO/fteNy7FNL77v3G2/OkzNX
+M4yEl6FN6hoC3w/YPZsOkk5kHQybReXZ/4rtS/K2aCk8vJqeFymqWBXIUC1COYYmKHQZ/TZtrca9
+or7gDrrudp+8dk+nfsoDIlNtQ/m65HydfN0l68jJWp1N1p2wOWCPbRr5HT2+29fEkLT4PBmWRA1I
+PxpZieAsr65bxLGt2ipA4gjCDrCyDtE3KEm8rVB7ws4s82QDxjytc+0zapNyVHma0qPCDEUej//r
+5HhyKx2PhO9L3JVRVW6B00RS20sKu5KsDW/dE9mwLC1EpaVMCu6c8nMTRVVWDgkqQGuB92erYeXg
+GqdRj7XGIVXlTScpWd212eb+lAf1Hcxe1MuAO7rx/6qJe61HcxC+9STrUClluLo4kDQNspIb15A2
+sLRtXdWhNtAZPe5WlGXJk4kNesgWEjeI5RJWDvBsayqjdYlCrCbfPpD5hifUjnvMhntMgx6TDDe0
+mdPx/+aExFne7L4N8xLPTQSW1CBAik7W2BA5FrBtSdLCtDXC18C4qbS0/V7SsUKNTUUpSpHKa5dQ
+bEezg2fvNFpCVe3JfCacLxdm+1Me6NSc2h9PoIirumUocVjyvS9xrit2LG1EqNKuWzu4b82reSEp
+CLHRLGtVx9rVGoFbIXQNCKAqfalh3AB5a5h3FyJcOkHcknfbsCX4q4SVK0TzDmWYhYh1t1dyv0f0
+mePyiNk4fWsmI2Z6GDFrxxGz+oTERMYVy0vum/dXs93uchUCljdhs+iWSNYIT1awbQlpFaRN6J92
+sUQy3oUE89aou3YuwsAJ4laoRPLCCVh53DI48b7Y5rLMp2WftlvTxiPx2oQxVeeh0W7ErE9KfUOU
+a0eqpHaQNyDP7pB3ICnvI9jCgVPleR9FunnIGpB+d6mCbQ1L65GIac86RfJClhL1QmsDyJokzjsF
+t7Q39BsvCm26vcBv2Pt9X/axtd7l1nroq4tu+jZy0urXJpRToiYr54Yo144J9fIOwep5z8QSkhqQ
+UwMxY7djZpXoKV367fjiiF9VhCoEdMkN/Nm6FgFsQfoJtEU7BBskqCxxibs72A3bHnLYlcewzmqf
+wSvXMH2Hg+nbLHWmajbxG69wQ08EGyeupALkpe25YFWWVHWSOt4btWJBFVg5Bcf7mMG2EdLuXOU8
+0lJjI++IXBoHiSq4tO4kJqfuTdy5dV9V3np0REbwkwzOK47qbkWG6h6+ixMTc0NEZOWQfgLIOKFe
+rhGsBWT1kLSFpIElbWFUevJewaylpyfhW94AmcmqgXUd/LkxCbRSIB33+34nsnHe631va//Bra9N
+0EdSZ/rmmvYEg4OauocbXFd55EAmE/cNkaooScHCCX5cgppaWNXg0+S+JGmL/EN7LCiWNTiDu69h
+2CxqyZtxgaJ3bF8L0mpg4QCmUZ2NU3HxZQbXy36SvgHfY/B+9D8/w+I6uq7BbhpJycGpqSEyCF0F
+R+aAjbBsBQ8uIGnoJK1AyDS1vIOsyXoQ8w6NMbocFrVGs+jhaATv5HVs4RZxXJ54fcMZt75G9gv0
+TaVRz+B5HWHNu+bllJxHc0oUzCWsHJGBLAxcxAA39mgteMBNo35Me5Ja2LWFrOhtjIEELW9g70ha
+BG/FzsyvLnjjxyp5Nn54bcOVryj5XPajkVGmb/QcoG8eIKQM26+Tpd0RCy66UutAXhH1RgBRmzKB
+sGxMcGcHbrIQlnYrr23gGXCWtIKk6NmNxr3TZv1kWQui2sGwJC2Z1rAzj8KGPNR5o8Sfyz5tO/oh
+8GoYAs8L6mze5tTxrpANlyGm2+jUIjUVpUslgtigIWohceUM5PW40cF9iS6ypIHtqljWGm6cX0th
++pdyTN5G0gtr+h2lbpT4kuxjAV4crTmi6Q5UVCiYW94YkivqXHjRIFaFejLyCBZYD35t0Oo3yLQV
+8mwDs9I7CMrOfRU5MAUsb2/BspJlKWx7206lHeSdGvh2oj4r++kJPVpzFFNVQjJITY8Ua97Nlsdz
+KEmBs1GouLKEZ+sI3oOVjYv4jIPEHuRUwoGn7ssD9fSmlTfe0nnHlt2XdnzPzr68c+8Qmydv+4c7
+ppO3gZMWpepEu33A2gVX1h51l0co806hIVUoOzTYqwRFG9BVARsXkNhC3nqgJnUgZpkXTvRvFXJn
+pV1gl9TJqNF0hDC3HSnWCXEMWyMZo6pO3AjTqF0OZfTcsc577xt0CSVI2vF7FnJDVE3y7CBp9/ok
+Pwqahz5ukPbbZZ8krX7UKHHe8jwu2rDUFepp2srY8JhOhASBQ9mBsMF5cOtgqQVG8o2499g3RF0l
+te++U6NOXhTWe91sZPX/2fvWHtmRI7vvA/R/6C8CJMBqkcy39lPyZQuGvYAWCwswjMFIc60dQDsC
+RqM1tL/eJyKTr+rq7qpqkpXFm6yZe/uy61QxIk9ERuQj8n2pT3IOCo14bituXurAcKpoY5uGsycJ
+ZkvupMiU0btBEikdYg1FI1ikuiHtbbnrOaXvJOm8WfcqZ72Uehwro+Xvig9N8HHfKQ3mtJBbcvpP
+I5V6NGXHI1ga3ZOIozk0gtVzPB8lXhrrUtJPRFafkv318mAXd6nVvDQRiQcVczawYw==
+ ]]><![CDATA[
+ jzsV/iqdsTVCkcGUw9EhYTRHzXPewWAvlHVH2U9HCBvesUVbMOGpIDzSCHLUPVqYhneUa8BsY2q2
+ZotApOTxaH1mNEdMS9BvNNaPHv5m+DJAKbmtkS9omj6igmTIJfjoDPLzsGVtWw6/5tbcwGF3fBDS
+7ACo0zBqJ4O9CF4upA7bWpD0KVqPSFV9nAOdnaPBABgycorQSVH4VUpzYs3dq9GcbR/+Zvhszy1J
+zYkHFQ4oVMeV6ekIERo6qi1+RvN3fBpOx9kEW7NbWLO5bDTn/rLP95+GncaC6xlZLfg0kRqxdWca
+Y+COLWIvKX00ZT4kpTix5ivOLbyb7LN1VsNeTKp048HxQnk6NEZ3HC+22iCEdmhJjQhbzk05dFIf
+MHuLh78ZPoUoNHqAWMqNVcqo9jHaVqMT5yEQi26ZBuAdaE3nejU8UtkNAk8TajtEVp+EL+uBGE4D
+Q9lUsNwg2SyVVJIHQTxnjoqYDdn8eVO+v8FecoUgfKpsxJUWOf0XCLdkCZF1HPBpxjyKmC2H8ehz
+ppy67PPaRg3Xi234WCg+y45kt3DUYciHxqQRsfJk2ozZqXdS569lWTqqGUvl6+kUP9r+1YVJJRq4
+VDxGa2NW8WHHvMvD3wyfWnsq20/nF4aDR2Uc3eJzhRbnjl43zZKa7GVxWiO4HI9drfHycdySxOWj
+dRczLeuMVd4DXo4sDwX8m3jkrIivMJY3pMrqsTqpd+Dz4ymG81hbOnB3Nsg1jFuKx+qk3oGXo9zz
+g5WH13KcNuFM6rqrnHakzo8MH17LcemH66Teu7i5w+RCFQe35KuBrg+GQR5R9mFsZ5T93JDeZt9+
+T/hsZGs+TnuDs3482em6efZ/lW/P8Az/FPwX3Y/ft9/9/N3TN3/4bzTq+zv1Le78/ru//fzlp6dv
+/ufT35+K539++qZ4Lp8Lfv3hH0/fCK1ehFPqWbrypSisff53uilehNHP0ugXOnn6mW5UopTPUusX
+Z7V4/o/wrsJq9yyVebHOuGf6sAofJe2LtaXAv+WLQmeBO8WL0K58/lOA0baTZynKF4dMEG8rX2ip
+4bOsqheaLH0Wyr7oUgBYavyqsAxU6kUKi88vixdkjApvK1+EKAAs7Iu0Uj4Lifcg8sQd9aJc/Ebh
+XqSzuFe9mFLgOQUeR9CTF+VL6RweoRL4ZotfOYdHdppx+HJXFXQTAtoCH1/i2aXldwlksc8CX1xI
+TW/RL8qW4fvwPUJajZvixcrSPlf4ACNKvM3iQfG5uAPlSajIkso0C1jhl9AH1G0raFY84x8vqizx
+eAbSlPjEyhYvCuoXxtADCIYZUha1knEvlXYK70Jbaiv507WNd2i+D49Uvlj05+H7qhfkZfh4Bykq
+NEll5QuttoBi5AttKuM7mloQOrdaVQEn0d5oJlniKZSW08cjw0ND8KOLF0VvgaolEYZx4FolDW6a
+F1rkgnc5kK5CQ6DdED+W0Ask1UyqCrqzelBoKaBuqQsIVkKMUgb5pTYvVCcJLQhdSQmgEWhTNBa3
+fPFCB9XiJihZGmhE6Be0F54BwtNkCCiDjxIQ2YLsImhG4MtLh+aReEB8s3h+bSdnjecvT9/UfyQb
+C6/6356+KZ9/+a8//vjdv3/5/vnPP333/Q9ffvz5WVW/ev41OIgog/6mM4Cff61IAPdMjISOgpGG
+P+s/P30Di5AliPNr2GSlYAXTD8OvKnCw0ER0KEUqWEENY/6/MPu6fvrmX5/c8y9/9fyH/0U/svl/
+//SNHm794tuznoBuX+ILwvtu8AYBeJM/APRWjwDojT4ByBu9ApA3+oVffHujZwDwVt9A33mbdyDk
+bf6BkDd6iKDcm3wEceE2L0EEvMhPnDOuv9DtH59+8e1v/E8/tz/86ecf/vrjdz/94/m3dP83pzf+
+6fmX/vu//vHLt/537lsA/uXnf/zly7fTu371/F8Y53/66bsI+aX/3bP/+89/fQ4RwA//+eVXz7/5
+l59/+uHHP4c3Lz7zn//4ty8//ceX77/971/+8W1419/ih/4T/cF+zP/41x+Du4iRxJ/pj9/TH/8V
+f0Ax+vn/PZfF8/94Kp//8PvQw5iK7BIEMFVhyKfQTbZawZS1RA/zUqGV2V5K6JLNAJkm2aeBPbAB
+VTAvqWGqsBz4D41GKdyLMQ7qFwqMIwrjV8jJiS6gXmSkqPAZ5GKlApkUuSIBSiuYhdQW/gSmTe2r
+XQUvBIOqQjeuivChEg9P0+rwLoboTnfki5PkI3CnqIg6uGPIKzIQUmhyObipLNkankYZTfQpwtcI
+CR6UsGhpAMRDhe5KBl+Lp3J4BwgLrhuLT4JLLAzxCyblyFFIerrKxP7RvTiHzyDPaom/5MPIccoK
+DsgVlq0G+idXiUcvZAw4wFpJNwuoW0jNfgV8hqiwT9bZ6yb807l2BZ3/+FTM+iz0L98RMYgGQqLL
+wFeSPqpKa44xh3sOJDDSsKOm7eu4A8fk4PqEdDBHSUYDB+zKGAXiMywaVuGZoWS8TROftMIdDem5
+5wEvHJiiwB5tYqvAMSLBM7iJNlcieEADQflt6IvJA0J8VdKHQ10xesSX20IY/kKqFBJ6EmpNVRSx
+RyvBEHQa/OwGvgk4cn6ltdHkDThGzg9cU5NXkRW1Jr0HDydlcPfcDxb0PaYikyInKfB+coKDJyPC
+F4EY0ILGJzAQVmCo1QcXKMmPkTySO1AXPspQbyyhR1pSHIDEdFI0SFUW5FsrcnclMQqPqsF9iAcP
+p4NrduTCWUZ8mqNuFB9bKmpOUBHKIua5wYLJ15JlEZltEZUKi2fLrSCsEZo7Hxh1xV9UlCCJoM5F
+kXMtIZcMXRq1ouIwo6SmonAEXSh5CPIUlTKC+aCooekO+vcY0aGJrQ03jRZkutRzkgXikwrqQola
+3DVy08n4pBSWsaugYMQpfD7uOMtepySbwg1IKEhUQd6kqgacoyaQmvpARhnycaR49nVAWUXOBM9b
+FE4MOQ64AmkMwhFjZg4GfZNCHADxEDAaCqzgNRVcWkiqTm/+Jcgc3RUUAe/EElpqdLrD4QU9VsGB
+EDo2quTCnwbDoyFdvokYFYbBUpDboR66wAO+suk/nbFz9gp/R2cAfkXfQElniV5CopPgHLX/4S9f
+fhvz1frLn3/4cchYEZni7ehY/vcYDAsyQ5jz/3kuQfOyog/9w7+dfwf/O75r+Bvy4j2l4V+inZ85
+b+Zvpcz5t8+0c8Yhgf7d0941FDM8wzM8wzM8w+8DN1e+AH//DXs+fIZn+Py6mbSf5PxV8I1kz/Cv
+AX4v0m4K30d1Gf5A8PRJuzX8XprP8N3gCbIuTfjqms/w/eEPx7rU4PdquAy/AZ4ObY4K36jhMvwG
++APR5mDw+7b71wx/aNocDL5nu3/N8NTaPcNH+Kbt/nXCH6LdM3z+SoE2Dw1/0HbP8Plrf9o8NDyd
+hsvwVeD70Oah4Wk2XIbnSeTt4A/UcBm+CjwF1t0X/qANl+GrwO/FuhTgD91wGb4ifE/W3ReemuYz
+PBH4pqy7LzxxzWd4CvDVWZcC/CE0n+EpwNMh7SfhD6f5DE8Bfl/SrgJ/UM1neArwe5F2FfhDaz7D
+E4HvTNpPwpNSXYYfAL4DadeCp6a6DD8AfGvSrgJPU3UZfgD4dqT9JDx91WX4AeBJcT5cj6K6DH90
+eDqcD9cDqS7DDwBPgfOXMz8p1WX4AeD35fwlzE9WdRl+APi9OP8+8x9CdRn+0PB7cf4t5j+Q6jL8
+APD9Of+a+Q+qugw/Bnw3zs+Zn4jsGZ7hO3D+BJ6O7Bn+NcP35PxtzE9WdRl+APg+nL+W+Q+hugw/
+AHxrzl/O/IdTXYYfA74R5y/h/91lz/CvGb4p599ifiKyZ3iGb8T51/xPUPYM/5rhm3L+BJ6a7Bme
+4Vtzfn6lJnuGZ/jWnL/cCh5OdRn+0PA9Of+WFTyo6jL8GPCdOX8Cf2jVZfhDw+/F+fn1oKrL8APA
+78X5y5mfrOoy/KHh9+L8JcxPXHUZfgD4/px/n/kPpLoMf2j4/px/i/kPp7oMf2j4/px/zfwHVV2G
+HwO+G+fnzE9E9gz/muGZ8xn+dcJ34PwIT032DP+a4ftwPvyQmuwZnuFbc/425j+E6jL8oeFbc/5a
+5j+Q6jL8oeFbc/5y5j+c6jL8oeFbc/4S5j+o6jL80eGZ8xn+dcI34vz7zE9E9gz/muEbcf4t5icl
+e4Z/zfCNOP+a+QnKnuFfM3wjzs+Zn6zsGf41wzfi/AhPWfYM/zrhW3M+/JCm7Bn+NcO35vxtzH8I
+1WX4Q8O35vy1zH8g1WX4Q8O35vzlzH841WX4g8L34fwlzH841WX4Q8P34fz7zH9Q1WX4g8L35Pxb
+zH9Q1WX4o8N34/xr5t9d9gz/OuE7c37O/LvLnuFfJ/wunB/hD626DH9o+L04H354aNVl+IPC78v5
+25ifiOoy/EHhKXD+WuYnoroMf1B4OpwP1wOpLsMfGp4O58P1QKrL8AeFr07aVeAPoboMf1D4RqRd
+BZ646jL8QeGbknYVeLKqy/AHhe9A2lXgCaouwx8Uvhtp14Kno7oMf1D4/qRdBZ6C6jL8QeH3Iu0q
+8IfWfIbfC35f0q4Cf1DNZ/i94CmQdhX4w2k+w+8FT4e0q8AfSPMZfi/46qxLAf4Qms/we8E3Yl0K
+8MQ1n+H7w3dgXQrwBDWf4feC78a6FOBJaT7D7wXfmXVJwR+64TL8Zvh9WZcC/EEbLsNvgKfDuhTg
+D9RwGX4zfHXaHAD+EA2X4TfDN6LNAeCJN1yGX/vahzYHgKfWcBmeOb8nPIWGy/DM+f3hD93uXyc8
+BdocA/5Y7f41w5OizQHgj9LuXyd8u3bP8JTb/euE79PuGR6udNr9a4bv3+4ZnkK7f53w+7Z7hj8o
+bR4Unk67Z3i4HoI2DwrftOEy/JPwZGnzoPDdGi7D8/D+3eH3argMXwX+oKy7FzydhsvwT8IfiHV3
+gW+n+QxPAZ4m6+4F31PzGZ4CPAXW7Q9PQfMZfl/4w5H2ZvjqqsvwY8BTJu3N8H1Ul+EHgKdD2pvh
+91Jdhh8G/kCcX132DM/wcCXF+Z1lz/AMH+G7cX6Lh8/wDF8dfjPnU3j4DM/wDM/wDM/wDN8aXswu
+wItPXBme4XSVb772+Pb94W/L+6Em7v/wt10sxFz2anyJs6/p96MOAvwOD/8J+CguwefyyvhSZ1/h
+dzNNBPgHhrH2w38CPm9mQfBBZpJO42X4ZePLxVf4F/2G3hM1McDFCSE2e/hPwWdyk8gEDzIHeUlK
+X9R4NXi1/OriK/yrwe88XqQNQ3AzquJUB6s//Kfgc8mpoXV4eBslbljSnt9VllUp8JJ4qfiinwXu
+l5CrJ20QPCiDVcFamHTwIQt2lP2V5IUlOMlNUpPMJK8qdWlKW7rSl3XZlC1eXXy1+HeN+w6/N6UC
+HOqAMqCKQIm3dXB/2ReSFz40XMdSS8hsIVcDGfuqrKpKVKrSlaksXi6+LP6tcV/g9w==
+ ]]><![CDATA[
+ 9O14cwOQBZi0UIAOkw4+0MDuss8kLxqC9+CwRCs6CNFDIgnpXFVXbdXhuSshhBRKaGHiS+NfAveL
+qgO8avBmA1BV9qCFJzqAPEEHZAsTCwYN7C/7vNWj5AVlE2gshWYjuQWE8FULiQUkdKIWrehh5JWU
+UkmNl8GL/pZSwPQJLhrhoRAJP9ABTFooRx1UbAuBBZMGRgbsLHtodYOnqUF1Ck7wiK5swXGNR+8h
+tYHMPeTV0slatvDhlRJKKa2MsvFl8C+pqH+XvWylx5uF6KEHCy0U4IKNOnCwhcCCMxrYLTSaZA+t
+3uIG9XFo8xZMN1UDHhvRQGoDmXvIa5RXLbrzCk2ttdVOe13Hl8e/qY/DryrVqxoKkRCrAViIDlxQ
+rANTCdhCDRZIeMSgAbICln8KjXaVnVq9KqmPK2tYgmbJHdpbywbtbCBzCXmdbtHxC6OMMc7UpjVd
+HDvv8DO5C+ONxa8r3UEdGnpooQUhO5BGQgdOyKqHR1CQsYGa5xqgbuLUDPaRvQcXqY9Dq8vKoyu3
+CNQM2ltDbgGpexi3My3COWm1dba2re0R/JC7h0z4k0gLInf4lYUllFCIgx4K0EKB3F5J6MDKCrag
+IWHNGiAOkBW0oZcJZnDGEW4luysaYnxJ386t3oGiHdq8Q4v32kBubRp0bcY2kFY647xrXI+ADmry
+kMqjlT01nJe4UboOv7ZOod9voQcBLVhwodEa9uBUBSMiFhh4RGiArUCXzPkeLteN3eFV8l/Xxy1l
+V2VNspeVhWd3sPMGHq3T1pTG2RIi9BDGQ2IBOb1vfF+XtahlrWDwhl6A4y+NGwIRT+drb7x0vaud
+hhZq+MQeTKjAA6EasKCVijVQwK3KkrpIOEMVzWBiwAYhcWj5wPmZ7BWaUsDHaXh0D7LicdHiNVjt
+fQlhGkisalvXdYsgv2zw1gYt2piGZKe/8A+F22Xd103t8ObSt956ATZYREO1lXAOSrdawRso1kAr
+dAgPLAKDhsxgwYCLLOCW2EZFe5eT7CCkhIsC3z06ssJ6SN6AznVdQeoGEkuI6Jum6ZDQlK1oIUFL
+nG8VvyRulQhru6ZuLDRR1R1roQBhJHRgbA8iFQbmBDtowYFGUhaJ/lSgOyAz8MwAuIFLLeDaXCbI
+bvAFHTyOD5yndodjRhdewq87q2DjeGS0uKxryK0hUN9WENG0rkXzt23btX1H344MjyJ9ymx63G5a
+39pWQxMFFOWgsgKEUb4HD0oYUAWnWUIDHThAmocrcBATVgcXSgyAGxgt4AP5r8/jqmjxLfo49vM9
+7L1CQzqFLgqMb6yDd+u9gxHXTQUBOohiIHMLEasODrHTnels50h213l+oXFxy+BXqhPIenrowUEL
+FbgAHcAeXF3BIwh4A9JAYaiHhfFUyiJAUugMJBgAN4CukCzgQ/mvz9+Hlq/xeTr0ceiA4MIMwlaS
+vQXjDfx5WxvYt4HkEkK0aFwJwUhU3Oq6ru94gB1P2ZfxRZltj1+1XY23WbydtNCBC6SDFh9WggUg
+FOyg5i7SWrgC9Kiqgxl4CGoQGhsI62CSBXuAN+W/ZdxmanmyuNLD4hthELKXsPeW293At8Ng0eoe
+ZmzaBpIrCFNDrB5CIvjt0VgkOzqxXo8v+hd+gV9Xfcl6aKAFA7WVsAjXyqYHCwRrgDjvK+fgChBJ
+wAwEGNChM0S0AR9YoiNUUX4z6wE+JXvJPR23PMmuS2garO/Qx3kNr4TgVcLDt7Vl2SsYcAuuawhB
+kpPcJK7pyWR69IT88vwKP0Majv5IF6SFYtSBgC3UYEEBDVD/DiVU3gGjrAdCagtHWErE1vCBaBUO
+BMrz8t+SCk3evgl5nOOWt1IhVaV0vYQ8rSc33cNp93jU0O4OApDskiWHuCQ7en28msWr5tegC9ID
+sSHooAZ9JDwjNEBdJH1DWVu8V7maGWDhAwpYgEMoIBEKCfaA1AOQ/DP+3zpOG3lP8A6WhV4GUW2L
+sIVa3llQEKzvZ6wneydrb2HU1O6j7EHuNr7IC7Tja9BE0ELQgWBbaEgD3E3AGUi4Ao1OUaJDRBQJ
+H9DAfpBLIRwshGIPOMk/2v9taeDg73mwkZ0eTBhphywR3/Rw4i1iWYekraw9ghaPPl2joXo0GNl8
+aHtIP7R7E6U+95q0ELjg2BbAAnaVQQl4h4MzRK9SO+hJOmsbWECFjtAhEChBx0n+0f/dmgZGqw9j
+lXVZlvAtVc0eT9BwHYy5RR+PjhlWX6CHb9D6k/wNt74O9k7SD21+ep1qYeABsYDhrATo03QVOkWN
+DlHXLXyAYQso4QGQSSOQIvnbKD/5PxsGWgcTuEH6MEZNIe5k9Zr6Opa+4b6uRj/v0LYKcV3P/V2H
+rsuC/WV4eKL/1PZvX0sd1MFkWAn4kBKuwHcqMsAhJFLeuxZpgTAaHtCjBwjtT/bP/n9IA+UNrR9H
+TsRC+hZZDfm8EsyvYfeVQzjifV0gZamZATXbf4f259imgwFoCHCJ9HMdQEqSvRkNgVxBARsIDJAI
+C6sa2QS8ZQUPSPLXsf1J/ppHiWMIpG6QP7oLcdL2xPwCWXyI7R3kRy/kyRP18P0c68EDmJYNVnU1
+DIBa318sfdQAyT6jAWsgMMDBB7SwgBYBoUNiVDiBpDC0f8v+r64qDk5KyfKfDQDev4a5yLn0FN8r
+WaC3t1og1jFgvwb/K3QADWzAgQMU8dmWVNc6dAAWrQ/zZ+5fLn1cd7E0BLIBMIB9AFmAgYdQtUfU
+XEJ+an9D/k/0gpwVQoASIaBACuBn8l8se7GQvoSj6xHrlIhyQ1YrkKxXxiKAF0jFOuT0lOFRxEuy
+wwTQRGj9BuGeuk76p9mak0EDAwPIB5AFaPSCFqFQkL9g/iPxQARI7gIhQIUQsEAKUC07wEtln6QP
+Yb5Cf4+8QigErhbyW/R7SnsexfKwAiSk6AER9VJg5hsFA/Bwfx7cV2z5F0r/9Gq9zZIBwQLIA5Tw
+gPA1kJ/4j04J/p/sXWmEQA1CYIMUyMw6wKvS/7HLj+mtqwqEeL0wiHVVHL9EvAUdEAu8lWAAad6b
+GnkqukCDJM9CYBn93gXSv5b9lAHBB5aIpQf5Fey/Qc5YWGIdQgDYJ0JgX/WVKlvuAIP3uzL9n9Ic
+4r4u4U9AqB7tj/gKGnBIX5FxIoXVPLpDmnfCF3CByNWR3vds+ZL7/AukPy/7nAHBAsgDVIP8sH+J
+GLh21E0gaaYUqlAVUiCLAIA6APJ+F1j/aUi8HNyoQKOGZy1qZLn4cIEYCzqooYFaK8Oa7xAENQgC
+XGOQ5nd4wIulf0/2Sf72RH7YPyIgwaOFSIMQeyEEpqGjXlbcAQTvN1n/xTOhQ5o3DGST/DXPV2me
+ryrBAuTZ8AOVIs2jI0QE6qy3eAi9kP5Du/9I9nPyl1F+09C3IwRQ4QEoA0EHSB2AQDbWR+t/J/Y5
+lwqVs9Z3PEsbZuxq5Lolz1Q2cTSfB51MmKvCV5vajNL3l0h/iezn5Yf/5+gCIUCDEBCtgSRYowPE
+w7D3Kyr9kfW/lQYu5a95AqsaZmvhBcNsBskOf0uJL3TB0oOA6PN69nof9niXyv6G/BxZIQSSMLm2
+LhAAhBly8n5KuNH6Q9//qu97OwUepm2nCeua1yeU6AM0wqmuUhWxDkGg4NUKCLwQ/jvYvW0VfL7j
+Hm+Q/tOyn8pvwqhRgRBIIgSuGlPXvh2HDHuEuWT9/qTvv3joY7lYIaxNqdkKSlgBQiqOrKBmdC9o
+e2k1uv0aQa9Hj1ch1i3hhIdIdwXZJ/m5/yM4VIA7iC5azx2ghfeD6zE0a4TOl2Mf6vtP2f+h7Kfy
+y7gqycWpzDjM61j6SiPgRPAPweuuadEEErFeNYvzV5F9Jn8YOaEQUCAFsOgAqQOoaum109H6tbTo
++zskv0v2xzzu4+tkcdbgBcP0vYnS0+oEDZeLxKum6ZseKlBIdMXbsc6tskf5CT6EQDp0gLAIJJp1
+V4OVbP1ocPT9Ai6J+j5if/D9cQb80tTndKkS+kCSvWDpvaAo02hnGld46L6RbfWRx/+M7BE+mMDU
+AZD3E41l60cmYFqaMJMt+r45++MM+HUDH+W8DxiGvAw00iDxd0h9WngF4RH5ksd/3+etIDtdc/kp
+ARqsX8LsEXlYawyz3zD7BRw1Rz708NcPfIzSz4e8qqqjWUrVmRL9nfH+Y5+3kuyT/KEDoASYrB/h
+D/p+UBLJb2B/yb7fceTDvu7E/V0h/2LIy8OsCpqxQH8nEWjVZ33egvcryh7kX1q/bjv0/Y6agNmP
+PBCRX82RT5iDZvd3ceK3lH4a8mrR7dcIKwQ8voDhW/Z5tDKxaCkJ76LPW1j9yrLPO8Bg/dT3123J
+7DfOwPeD+opWiZkqrLuA+wuh77WtPxvycjzM31YWHl8pTT4P6czk8+zC520l+1x+H/t+x31fU/e8
+HrRA3hemzKmbQOKv0D43tX6QnUyfEt+eh/k9wlsK75uZz5vHeTOr30T2Sf4l+wUiP+89Ih/Hvo+c
+FUJfg86v4MRnGPS7UPphyCtI79njl/D4tC6lRRwoOMr1b/m8zWQP8k/sp8gXvh+pP7Jx+L4KXTzB
+AwGC+Y9p79VDXlWc3Sx5qLcX6N4QAQpEud43dds053zeprIv2c+RHyIfBd+HxkDWT30cCKA48UF+
+Xvbc9YfA78ohryD94PFhQ4jxBaJc71oIW5zEee0QmG0o+yR/YD9FPuT7itD6NOhUsfk35Pyrnrv+
+6lLPdzrcF/q7ucenKLdFDlg1VVu27TLOC4HZprIH+cfIh3v+IrQ+DfvUziHyUUh7aWuAQBTQjp7v
+A+nn6cA00N2eenxEuaJWjWoFZfZTnLeT7Ke+j1rfN6R53gxQIO1ttFMGgZ+Nnm/O/Qtkn6Sn/k4h
+wXeI8Y2ycPU9PL5aeHyax2hCMnKz9NeZzLz1kWe0JDucv6Z810lb6R6ej7jfVVXpot9/x/LPD3VO
+/V3NMX6tO1sh1Le1a1yrJ48f5uNulv62oQ9qffL89O0c+HoEfoH7Upe0WoZ7ffL7g+VfuNLptL9r
+x/5OOosYH0FGazsRPP4TT99fNJS/huxzzw/uP/Hsv2xd0/JUUGs9/L5EylvB8jXHPO3b0p8f6hz6
+uyJmOEN/Z9DfhRjfo7+Dxw8DLzdLf1s3MfZ7BKfAR7U1On40tOsR9HvEvRT0qsqOfu+s9OeHPpa9
+vaAMRxW6gunTqA71d13o7+jbz4T528o+Sh80L1j6hju+iv2e1xadvorSq7ekf0v2ZW+vRCVLHtOy
+MPlZhvPE0/cXDeWvK/s45OVHxx/bHtKHtldj278h/XtD3OJVb09jWh69fUlpJGU4JLtZDGbvInuU
+fhjuCwmfYLvv2O5rZHxKCUlPbd5i/vtD3FNv31SGR/SUtpzfxd6eepmpw7/a468g+5TujSHP6PPh
+7GUhKvZ64rXXe2+oc97bh1hH84ieN50r0dvrhjg/Dmvp66VfRfah5Zsx1Vdexf6+ow==
+ ]]><![CDATA[
+ 1eGIdeUi1r1ok9dprOM51pmyWxri5omMElT7YCh/U9ljqoOWp0HeltZFw+prxHpIx5H1NTzEexLt
+fDTEHaQ/F+uUFOsAzuHOMsG9csnKp2Qf53iGCQ54PMELLCG2Ecz7ClZvSzQfT20PIxwXTW3EWIek
+59FcL71qdE+5PU8i85AmhTv1+UG9HWQPw7s193VhiKNxjcUPPLXrOceTw/DukONdMrUxl34e6ZWW
+JtQQ7NUc7Lkh2Ltc+hVlH+Z2O/g7P05tlK8Hd6fRnaeLVrS+jnPDWDZFlTyFNx/cEJdLv5K9T7Ib
+XtfVoJ+fT2uZ2bSWmEb2Lp3WGRaz+DHObWSruHbfMtQNgxsk/QWxzsqyz9d0aJ7S9GEPWJzUscsp
+zae4mvfja5B+EeUDHgP92sPch1D30jh3RT8/l31Yz4MuaJzOHib03DSdPch+i/S9oG9HmhOmMpqF
+9KstWblQ9mEtW5A9ruWyvS1g8YjJpUZP1/FKZjUsZLpuOm8pvah4C3nHEzlTmkPDevqyKP8z8fwr
+2cd1jFH21vW8jg8RGU9kh2Us3biKO27mvXxAf57hQXqaGekvkH572QX3cZp9XRfW8LLsNLvMazjD
+Ak74+nERx7Wyn+S3JLuI0ocUdxjSbS6R/nN53BjPh8ULYf1uxyv4yd7D+m1hFK/frWn9Lrq92eLd
+pxtW78+kp9lAd7v0K8luo+ye126ruHa9ju0eZG+GtdvTwu0wD3vl2u1JepK9XEhPi1ZaLq5zgfQr
+yD6tWqR164LX7dfo3zXvWyhg70H2cd16XLZZhxIxN63bn+/WuVn6FcYuXssuGs97NuB94p4VHdt9
+3LMQ+vinm5YujNI/jUsXbpL+1vG6k6VKQ+9uuwpZbIUcvq8F79dp0cfRfiUbOT/brzLJftt+nSq4
+i5ulv132din7tFLdI4O3vFcJsTaymQ79u6S9avB1Ku7Vi3s1l7JfLX0Ijc5Jf5HXu0X22QL1MF7H
+ni70cHGXgq6buvDSGcS0rcbToH/34z7Feh3Zx+n7G6W/VfZ2kt1Fa+/jHq1hh0rvBXIZi3gecaeS
+iG3acY/qerK/Cnguj3Zum5sYl+UH2QPjW/Z01MO1yGRod1LppDXG6QbxvOD9uRX37+vKfibYvSzS
+vWVO6mR33sD4sDOthpenHi707pVVxmrPe5OVqHlvdkH9+6qyn010Ps5ybpU9bkcKcxPLXYnk6Xpk
+7457d9qV6FSDXlwKJ4phX/7Uv68i+xtJ7vsZ7nVT2JPkcSvaE2/eD61umfEUzyp4uhJe3qOHG3ak
+dshhbdUjl+m5JkO3suxvDnC8ObrRPMU1pTfwfdqNG1ud92ML3o1sfQdPR14+9HCWdyNTPQbF9Sgq
+jufXlf2dwS2rzo1shYD8ql2oo+Rx+f20D5lavW9M2IkOa4fG2cuHHq6PO9Hb0kTZzRDTriT76cBm
+cTKFXd82hX1OcsVz0Mx3N9uDLmqPvl3zHmxhjK7Zy9tXVQhmst9QjOq87O8PauvliPZlU9hvSN5z
+gRrq2xQXYVC8+7xDJF+jf9NcgULA2snTkZevuAZNHWvwuHket5rs8wmNLk5o0GJFWqBdLhZvMOff
+n855tet8kpxnwCG5RiTbxAIcofaEphIs6N88116wyOEEe/nQww3VR/Qyh12tCNv7C3eGpZoUEsfJ
+rPNTeXO5X0keNrBrLr9i0Ld5Lr4ivPOFU7ZGFqPQt/dcd6OnAlTs5UMP10zjNhsUoDu/aIu2JrSu
+9JImMlsZpnGXa1W7s5LXryUPs/9BcrJ0iQxG+QYePtScoVaX6N9C1SEBaydPN/Zwp7JffV0yjRuW
+aNMkNi0GQH9ratuFRcok+7BOeb4frTvD9VBeYSY50yZK3qBX72qNvk3BoCrE8R3XG+qVkjX6N8uM
+L2O9Ge7hNpV9uVwRXmZcvjEuUKdp3Gpcoz7sQW7flFzOJW/J3k8k14jmpPVccKuFrTu0ukYWI6t2
+YHwoOvi66OLKsgf551meHJfucIZPU5mz1TvjdNa8xsy8skqoLUOOndybYdqA7UFy8nEdLL2xFTKY
+Xit4eKozVo51xtpYaW5WcPJmL39ZcZ5llhdi3TYsU6apzGmlcuj0daw7MlXWGUpplLGuEHVpDbk3
+ok09a/MguTAe0ZxRHfjewMPXXGFML2rM2WFe5uZWv7Qw0TzWXSxRp6nM0Ol77vbKsfqA57ozy3pC
+HQdwsaISHDvl7+zhXktuYekaUXwoMdifry+4i+yvl2vG7Qk0ndfE9ap6tgdbhGJbLLeO6Uo7VtPy
+rUJnji4NcPbtS8kr7XShDCzdiH4qL/m6tmQYdNpc9nOLd9DnPVHNB23Z8Ze0UpvTfMmFl2jTkgr1
+1GDlJDnCobbjSmpUT6/iddSI3Vv49vZEcqqnZ+DHHKK5obiq5iLLs7qi18xFfkr20z6Plq1xVeSw
+bs/EvahtQ3zuIWeN9h+q6QX/RumKRXYUquj5mh6eC+k18O11ZDtLDtFslByWjr6tmcrKjhVF95Q9
+yD8sWeSxvTCd13KiW8Y96IYrj7iu4HJ7oZ5isPImdmi6KbiCIhfrqLiMpCffTnYe2T5Jbljyk5LC
+U1HlmyK622SfpGe/98TFNof9mLVp4eTozIQWnq/i0lOIh/Eq0OI++De49b62SNWc58LCzpVcQtSi
+VzPwcGZku4iSUyynXpeTvm477Sqyz/0el7elcN/Gnci0D9s4GyuvUOklKi5KW2JVrJop2K333iBo
+J9XBHxrkaxp5ukavRr7dLNq8HX1cM/J9UUFuV9lnpQcJHoxfwf6Qhas21hBtva/RcTcK8tIV6sYW
+sHJybuTWtSXVIVujwrkNIveGC+dq+HZ7ieR3O1+mPJ3Sssx9KsGmeG2QdJXr0O+XtakbBC8d/vSx
+Wq5g59bwKi8khIKLJtdKIJJRsWx08HAD2/tXko+yf+L6DHyc0grDHAodHxXd7NH6oDVCfuVKLsFm
+4czJ6TWwcaoX7aJzI1+HPs3rUnlErx4xXBtLhuvo4c63eUxa7yj7OKU1dHxTAT4quNrB95lYWtq6
+Gl14A5duIHdrNUzccljInt2qEnF7hehVIYbzJ+Xi35A8hfOkhnI8hovx6FmxXQH5nRGIfCouIQ8C
+WIPEvEdHLpGmUToA/xb6tFJ4xO0dcha5OCrgTclTkJ2uyfWH1kfaxYWWDdqfyrB5UxjEP3xJdOON
+NiA6F+eh0uhDn4ZosRKIXv3smIg3JU9F9qm6vGHbl1yIi4ps11LKBtGvVz0fHKH4hIgO/1aK4LBy
+KotPnh3uAhnLJPnrI0JOBqdSkX0qxTDVl28gv6MCTPB/CkJ2YAEdGlJBlhYGzvugC7Ly6N+q2KdN
+h6O8Ph7mHgfEXASfny3QxkJsJZqz5UNE6nhcTEWHw8ClUxoIv04tDiuP/k3FjMV/fDRQWrIvS1F5
+lp8OkOn44Jy66sACOiqIDgYqeWUjHwykmOun/i2lQ5Euhp+WIutjEaoWMoRDosKLy10KiEVy29G/
+veXZL9ob+OmHXwE+leIaijAVfEgYlSKjLWr04hVudCpYOASqPHsEUhoHgV0Jn8oQhVJkLpYiK+LR
+cCLUnx9OhOtYbr84BO2Dg/DSlZ2uqQzRVIjLT8cCcio0ngZ41eFvOzz8CvDTQlThUEg+AJLgw8mQ
+w0mQcmzxD6ea0pc9XHMNjIdjhsnE+TmgVx18+Siyh2vSwOKc0NMzYC+Q+5ZvTwE+iLY4G/f0tdm3
+JwS/SerVvj3DM/w2OP76Rffj9+13P3/39M0f/hsNu/9OfYs7v//ubz9/+enpm//59Pen4vmfn74p
+nsvngl9/+MfTN0LKF4005lla9WKtrp7/Pdx0tsRNV77YorTPQpoXibAYd/SLLK16Ri74UjopcMe9
+0PlIz38CUMmXqpT2WRXlS2mswdvMi60qgTsC73fVs9DFi1X4KHQrL1XhGKcV3u4M7qkXZZzGuxw+
+yVq+YyqBO0a8IAnBDf2C4KxinC1eqGgs30TEindZ/BDepsIHCFe9OKRnuIMf8G4G4qHpUB/cLF50
+QYLh/ZTgs4QOgGckNi+VkaSF6gXJMUsoSw15LH5rzYuSyj3LCr+10JHkh1EGd/CECBaepZEQteBv
+lBXUVArchGS0JP9ZiupFFtCI1GgDUpYUgpSLG9Ae1M04IV9kZfBLaFIJg2/GHQWV8B2BKBV3yhdn
+DD5biRelnRi+UBRQpZT4ZldoflJd0A8SqqzoSUu0jrAQQtgXJHUBWIqXwrj4RRWJWLgXynhwp4Bu
+oEuEAy+0DAafiWewaHFWKj5NKTxGJV6M0Q66L1+KAm+vSMsQHm99oQFC/mZoRjHOmJeqUviwUr6g
+ZYDTuMPAwr5YKYk1FRq4MPwshQ6tD/kNvppuVcYKJpuwpEiIYMAA3EFTWBKwxAcVhRhYaiwJiOek
+Ka1numO1CJo0Zemep/fMNMM3iVNS6pdqeJsyeD7SvKzwMEIRX53iRrRaxScFa0AbMKJAo+CmUPjY
+ghrR4OEl3i/wfpCAmAVtI9sOQEiLt0w36aOgMLpjoeSSZMRXO1nynUqbQHBFGqe2AE+1pc+HCRtH
+rQkTsST0K9P/0zl/8Jenb+o/ktsIr/rfnr4pn3/5rz/++N2/f/n++c8/fff9D19+/PlZl796/jWE
+QxxFf9OO6udfw0co6Z5L8hQm+p3wZ/3np2/IWaCBn38NpcA0qtkPw69IKdCh4MehNSjPNfzT/4Un
+oynlf31yz7/81fMf/hf9yB7t+6dv9HDrF9+edW7h9k3uDdAbHRyQN7o4IG91coDe6uZ+8e3Njg7Q
+G10dkLc6u/ClN7k7EvVGh0cKvs3lAXmj0yMO3ub2AntvcnwReovrI+iNzo+gN7o/gt7mAM95jb/Q
+7R+ffvHtb/xPP7c//OnnH/7643c//eP5t3T/N6c3/un5l/77v/7xy7f+d+5bAP7l53/85cu307t+
+9fxfGOd/+um7CPml/92z//vPf30O0doP//nlV8+/+Zeff/rhxz+HNy8+85//+LcvP/3Hl++//e9f
+/vFteNff4of+E/3BDtr/+Ncfn42wwRfGyO/P9Mfv6Y//ij9eCvic//dcFs//46l8/sPvKQ5DmyLl
+ZX3DHxiOBrUmL472c1Ap/Dg5LsGkIf9piOMGXkcTOxycoIFr5W4duIL07aBQa8gUihejic9wPkIS
+E6BiPCR9lAl2znFEEb2AQxs7YrhTL3TyTvDGtkDbsP8VwbPxI1Pk8urmX+jT8BjKaXbQIIN9+yaE
+LsjGybm7Ap5bWBigloo/sIIBP5PZCgNPR8+mChcCH4P3s6DwqVUVTNkUxEk8OIyFnL2MXgkaYmPl
+sJfspAyKZMuhvqMqqmAHVslnsgBXisBumpwdooLlTXp6gppKMb2NAn/fvlnGPoBMozTkaOABrQ5W
+BXdmnl8z4U/n6IFP+yMSC/TpLzb27pRVlKCVBKsKZhWnIv0Pf/ny2/hz/eXPP/w4JA==
+ ]]><![CDATA[
+ JuitAQIf//cYIFTogNFlPP+fZ3QNzwKEwQf92/l38L/ju4a/4YrwntLwL8GVZ06P+FspQfrtc2W0
+sgKJ0u+etq+smuEZnuEZnuEZnuEZ/nXC3x/F3vrbMzzDvwb4CjNJl5nnFg+f4Rn+cPCNLO5C+H1l
+z/AMvxf8Xhb3/hv2kT3DM/y+8HQs7kP46rJneIbfF761yWwET0F1GZ7hN8P3N5lN4XuqLsMz/JPw
+FExmO/imqsvwDH/0oc7d4FuoLsMz/JPwTTmfLDwFzWd4hodrH86nBk9B8xme4XtyPk34vTSf4Rl+
+L84nC99N8xme4X2qK15SgG+t+QzP8HClw/nU4FtrPsMzfHXSHhW+uuYzPMO3Ju3B4Ok0XIYfCb4p
+aY8KT6HhMvwA8D1Je0j4vRouww8D35+0B4Pfq+Ey/DDw/Ul7VPjODZfhR4Lfi7QHg+/fcBl+APh9
+SXtI+D4Nl+GHgadA2uPBd2i4DD8SPAXSHgy+T8Nl+GHgKZD2kPCtGy7DDwBfnXUZfgLfqOEy/DDw
+LViX4fNro4bL8CPBV2ddhr++tmi4DD8YfHXWZfgJfKOGy/DDwLdgXYbPr40aLsOPBF+ddRn++tqi
+4TL8MPCNWJfhJ/DVGy7DDwPfjnUZ/vpKp90zPEH4RqzL8Pm1RcNl+GHgG7Euw8/C02n3DE8HvjXr
+Mnx+pdPuGZ4gfCPWZfjrK6l2z/B04JuyLsNzUJrhF17bsS7DX1/ptHuGJwjfiHUZPr+2aLgMPxh8
+ddZl+Fn46g2X4YeBb8e6DJ9fqzdchh8Vng5pjwrfqOEy/GDwpEh7MPimDZfhx4OnQNqDwfdpuAw/
+JPxepD0qfLeGy/Cjwvcn7cHg92q4DD8YfE/SHhJ+r4bL8KPCdyDt8eApNFyGHwy+NWkPBk+n4TL8
+YPDtSHsw+Oqaz/AMH6+NSHtUeDoNl+GHgW9N2oPB02m4DD8MfGvSHgyeTsNl+JHgm5L2YPCkGi7D
+DwPflLRHhafQcBl+MPjWpD0YPJ2Gy/AjwTcl7cHgSTVchh8GvilpjwdPp+Ey/DDwrUl7MHg6DZfh
+x4NvRNpDwpNquAw/DHxT0h4Pnk7DZfhh4FuT9mDwdBouw48E35S0B4Mn1XAZfjD4RqQ9Hnx1zWd4
+hodrO9IeEp5Ow2X4keCbkvZg8KQaLsMPA9+UtMeDp9NwGX4Y+NakPRg8nYbL8MPAtybtweDpNFyG
+Hwm+KWmPB0+n4TL8MPCtSXsweDoNl+GHgW9N2oPB02m4DD8SfFPSHgyeVMNl+GHgm5L2ePB0Gi7D
+DwDfh7QHg6fQcBl+GPg+pD0YPIWGy/AjwXcg7fHgKTRchh8Gvg9pDwZPoeEy/DDwfUh7MHgKDZfh
+R4LvQNrjwVNouAw/DHwf0h4MnkLDZfhh4PuQ9mDwFBouw48E34G0B4Mn0nAZfhj4DqQ9HjyFhsvw
+w8D3Ie3B4Ck0XIYfBr4PaQ8GT6HhMvxI8B1IeyR4Og2X4YeBb03ag8HTabgMPwB8H9IeDJ5Cw2X4
+keA7kPZg8EQaLsMPA9+BtMeDp9BwGX4A+J6kPQw8hYbL8MPA9yHtweApNFyGHwO+G2mPB79vw2X4
+AeD7k/Yw8Ps2XIYfBr4naQ8Gv2/DZfgB4PuT9mDwezVchh8JvjNpjwS/b8Nl+AHg+5P2YPB7NVyG
+Hwa+P2kPA79vw2X4AeD7k/Zg8Hs1XIYfCb4zaY8Ev2/DZfgB4PuT9mDwezVchh8Gvj9pDwa/V8Nl
++GHg+5P2YPB7NVyGHwN+F9IeD75/w2X4YeD3Iu3B4Ps3XIYfBn4v0h4Mvn/DZfgB4Pcl7fHguzVc
+hh8Jfl/SHhK+T8Nl+GHgKZD2YPB9Gi7DDwNPgbTHg+/QcBl+AHhSpD0YfNOGy/AjwdMh7cHgWzdc
+hh8Gng5pjwfftOEy/ADwLViX4fNro4bL8CPBV2ddhs+v7Rouww8A34h1GT6/tmi4DD8MfCPWZfgJ
+fPWGy/ADwLdmXYbPr3TaPcNTgO/DugyfXym0e4YnBd+BdRl+Ak+h3TM8BfierMvw+XXfds/wFOD7
+sy7D59e92j3D04Hvz7oMP4Hfpd0zPBH4vViX4fNr/3bP8BTg92Vdhs+vPds9w9OB35d1GT6/9mz3
+DE8BngLrMvwEvkO7Z3gi8HRYl+Hza+t2z/AU4KvTJsNXhG/X7hmeAnwj2mT4uvDV2z3DU4BvTZsM
+XxGeDm0yfBX4PrTJ8FXg6dAmw9eC70CbDF8RnghtMvyT8J1pk+F5biLDx+tetMnwFeH70ybDV4Hf
+lzYZvgp8f9pk+Crw+9Imw9eF70abDF8FnghtMnxF+A60yfA88JLh71xb0ybDV4SnQ5sMXwW+D20y
+fBV4OrTJ8HXhm9Imw1eBb9HuGZ4OfCPaZPi68NXbPcNTgG9NmwxfBb56u2d4OvDtaJPhK8JXb/cM
+TwS+KW0yfBX4Fu2e4enAN6JNhq8LX73dMzwF+Na0yfBV4Ku3e4anA9+ONhm+Inz1ds/wROCb0ibD
+V4QnRZsMXwW+A20yPKeBGf7OtTVtMnxFeDq0yfBV4PvQJsNXhKdAmwxfC74bbTJ8FXgitMnwVeC7
+0SbD14XflzYZvgp8f9pk+Irwe9Emw1eB34s2Gb4ifH/aZPgq8PvSJsPXgu9MmwxfC35f2mT4ivA9
+aZPhq8BToE2GrwLfkzYZ/kl4OrTJ8BXhW9Mmw1eBr97uGZ4IfFPaZPgq8C3aPcNTgG9Kmwz/JHy7
+ds/wFOAb0SbD14Jv1O4ZngJ8O9pk+Crwjdo9w1OAb0ebDF8Rvnq7Z3gi8E1pk+GrwLdo9wxPAb4p
+bTJ8XXg6tMnwVeD70CbDV4SnQJsMXwW+J20yfEX4fWmT4Z+E34s2Gb4ifH/aZPgq8PvSJsPz3MRX
+Dk+BNhm+Inwf2mT4J+Grt3uGpwPfjjYZvgp8o3bP8KTgq9Mmw1eBb93uGZ4OPB3WZXi49mn3DE8H
+ngLrMnz/ds/wpOB3YV2G56HODB+v/VmX4eG6b7tneDrwPVmX4eFKod0zPB34PqzL8HCl0+4ZnhR8
+U9ZleLi2aLgMPwx8I9ZleB54yfALry1Yl+Hh2rThMvxI8HRIexj4Pg2X4YeBp0Daw8D3bLgMPwz8
+vqQ9DHz/hsvwI8HvQtojwe/VcBl+GPj+pD0M/L4Nl+GHge9J2oPB79twGX4Y+J6kPQw8hYbL8CPB
+dyDtkeDpNFyGHwa+NWkPA19d8xme4eHajrQHg6+u+QzP8BG+EWkPA99O8xme4eFanbSHgW+t+QzP
+8HClw/kE4ZtqPsMzfISnw/l04PtoPsMzPB3OpwbfWvMZnuHhSofz6cD30XyGZ3i4UuB8UvDdNJ/h
+GZ7nJs5ee2o+wzM8XPflfDrw/TWf4RkerntxPjX4/prP8Ay/L+eTgu+s+QzP8PG6F+dTg++v+QzP
+8HDdi/OpwffXfIZneLjuxfl04PfSfIZneJ6bGK97aT7DM/xenE8Hfi/NZ3iGh2t/zqcGv5fmMzzD
+w7U/5xOE30XzGZ7h47U/51OD30vzGZ7h9+J8OvB7aT7DMzxc+3M+Nfi9NJ/hGT7Cd+Z8gvB7aT7D
+Mzxc+3M+Nfi9NJ/hGX4vzqcDv5fmMzzDw7U/51OD30vzGZ7hI3xnzicIv5fmMzzD78X51OD7az7D
+Mzxc9+J8OvB7aT7DMzxc+3M+QfhdNJ/hGV7kNHC49td8hmd4uO7F+dTg+2s+wzM8XPfifGrw/TWf
+4Rl+X84nCN9N8xme4eN1X86nBt9T8xme4SlwPh34nprP8AwP1305nyB8N81neIaP8PtyPjX4nprP
+8AxPgfOpwffRfIZneLhS4Hxq8H00n+EZng7nE4RvqvkMz/ARng7nU4NvrfkMz/DVSXsw+Haaz/AM
+D9fqpD0efCPNZ3iGh2sL0h4MvpHmMzzDk+V8avAtNJ/hGR6ujUh7PPjqms/wDN+atAeDp9NwGX4Y
++NakPRg8nYbL8GPAdyDtweCJNFyGHwa+A2mPB0+h4TL8APA9SXsw+H0bLsMPA9+TtAeD37fhMvwY
+8J1Jezz4vRouww8D35+0B4Pfq+Ey/ADwe5H2YPD9Gy7DDwO/F2mPB9+54TL8GPD7kvZg8D0bLsMP
+AE+BtAeD79NwGX4YeAqkPSp804bL8APAt2Bdhs+vjRouw48EX511GT6/tmu4DD8AfCPWZfj82qLh
+MvwA8E1Zl+En8HTaPcPTgW/NugyfX+m0e4anAN+HdRk+v1Jo9wxPBL4b6zL8BH7fds/wFOD7sy7D
+X1/7t3uGpwO/F+syfH7t3+4ZngL8vqzL8BP4bu2e4YnAU2Bdhs+vfdo9w1OAp8O6DJ9fW7d7hqcA
+X502Gb4ufKN2z/AU4NvRJsNXh6dDmwxfBb4PbTJ8RXgKtMnwteC70SbD14XflzYZvgp8f9pk+Irw
+e9Emw1eB34s2Gb4ifH/aZPgq8PvSJsO3gO9AmwxfBZ4UbTJ8RfimtMnwT8K3a/cMTwe+Om0yfC34
+pu2e4enAk2Jdhodrh3bP8KTgKbAuw/dv9wxPDb4/6zI8XPdt9wxPB74n6zI8XCm0e4YnBd+BdRm+
+RcNl+GHgG7Euw/NQZ4ZfdSVF2sPAd2i4DD8SPAXSHgC+f8Nl+GHg9yLtAeD3bbgMPxh8H9IeBp5O
+w2X4keCbkvYA8O00n+EZPr/S4XxS8B00n+EZHq5EOJ8CfGfNZ3iGn1z7cz4FeAqaz/AMn19bcz4F
++Eaqy/AMXxeejsmsAt9TdRme4SvC72UyK8LvpboMz/AV4XuazCrwdFSX4Rm+Lnwjk1kFvrXsGZ7h
+qcHva3Fzu3s41WV4hj9oF7ndw2d4hh8bfputJfLwGZ7hGZ7hGZ7hGZ7hGZ7hGZ7hGZ7hGZ7hl8Bv
+G3J8oPn3DM/wz8DL4fWID78PvHzntf23Pwx8Ukp19rVQ2erf/ijwmY4ILvCSJy/Br0ll6Tz8vvBB
+UUFHCi9dmPAiOP2g8VJRaR8qbNeH3xe+VJQpbOEKj1eNV8N/etyxpDGCq4XC7v3wu8G5jxtUNSjK
+Q0Ft0eP2dBVFh3ukNFLZoK0RfpeH3xc+uHHBVgctEbyBmspSlKo0pS0dvyx+VrhXQmUNK4ws8hW5
+Hkn2K+GDqgKhHGupgk5sWZcdfkF+vhJ4VVVZ9mVbeqhMRoW5Ob/OUytl2a+EL1XlixZ0kiBRW5WV
+qmxVV23VVT3+bytfmUqS6oqygS4ldNNGfr2rrs0efld4GcKDoCpyUh04ZcoaitJVDUevhBW1aESL
+/70wQkJtHkoswDpdVkVH8Hqhrt0efl94IFXQUw09idICDtOTlRclVNNKIY30spEt/vdSywpK01CK
+rwTs0ZYCtjjoavTzuzz8vvCh7wvWR6pyZQ9CdaBTK5VsFLFOGVWrVnX4v8bPpaylBM8UjFLDgTmo
+q2d1qdd2mK7sV8LPqAqey8DynKxkraRqtNBOt7pHUNXrRhPrdAWVCXCsFBYGaaAdxw==
+ ]]><![CDATA[
+ 7PLs5991W+nIft3FeiK45O6vhaOyYBWpyoNTvXJQVGOkqU1vKwvFmN54I6EyoZzsQS6KLqAbA3ZZ
++K6W1XWF23oU1Q2uSlOYgL7PwEsZll3UUqtStdoZYVqrbYPgSjroByFWY5VpjdAWFllKDb9PuuoA
+L4uGvt0Nnut6t5Wq6ib7g1fHPzSCBFX1oJRWlYK9GWuJdbZzxnVeeO0N/q9c67RtrTBWN6pXFdTl
+YYkKfl5DOXO3lazsV8OHjCa4KokwQVStsFKCUr1ujbfGCWjJ+K4Wta5NTWlgLXznNRQmrIHuWqir
+hDFa+HmBKEJGt0V2eJBxm2h/BNfRVTlEVF4oWcJRtWCVt9aBRr6FmtqmauDm8X9Vt7XyDeilLfl5
+qKtRLXxXhW7RI64nt9WwHX4Ymj6K6kiIQKoaGQ3ZnxEUGokO3R94AwM0UJWoi9o3ovFN34J0bdX0
++FnUHumzJHXhTU4h+hKd4FSIPFcwxalLXP3h94YPziqQyiPXaxEoaKU0Qk8rnfQkO1TVgE9dq1rf
+hsu3CgrTdQN1AQFPrwIKbovs0CN8aIlYoYe9ycd/9PB7w4dO0INXinklZCE71ekOIULveriputFt
+0dq260SnAMfvVCfavnVt2Zi68b0vePSBxhtKtkPEsugST3z86g+/I5wtMIzXGY4XLJxVA78OjmgD
++3POeVebRsL2XFdAR74Du/C/x88lyEUGC3Z537jGQm8apiu9aNAlyujj3w0eHkd1cwtE91UpUQRn
+BWPTnQVZfFWXdd80rWl7qKfu+h5xKl4FFGahLgdLRPfoDXybNsQ6LRHNS6Hh44vIreC0HnzwISiL
++sAuWqCUCK+0gLPSznrq42oLE6zappOsKtEjlMD/si/BMNMVrWmauofbKl1hOoQPoCHSxIKIRQl4
+9FuPP/gwd1dIgBEugBbw0cY4W7sGoUKDPzRIZbq2Jz8PNZEjs/iT1NUglW5bAfNz3juHLlGPxCKn
+Rb1hiLQeevAhTiJXIRDFv5D+VjW7K5DK1LaFZ++DBXYlLK4DqTQ7fBd0Raor4LsETLFrYMQIuEqD
+CFbVsobT6ioasaBIy54LHdKizfvXkAoazm6gKQqNao4ALDxQg7yGlNU1NZRVsLIq0Cooi9Sl+4rs
+ED2ibGxNGTRzy6BvQF+IDlEg0mpLtfDwach+NXxS1pJWRlsE7JQCu5bN0LWybREo1H1xyq0FsRBW
+4WajvbKSfJ1wVT3z8FfFWemp7tRhOTgsqRCNkr7Iu9caAXvf2o7g8FoNq2tyWoq5pdsOTkvXACCO
+lwa5pEQ0xh7eBysMwckNHn4z2a+GTyMy3SwYJWUUNMflC1hh05i2jBEW9YUV6EThARhGXaLo+s4h
+frDoEEEy11qPAELBw+OzKnveClOQ/bprFmFx/w7/LKte1NLBZVmEo9YZr2rkyo3l2L1H6ODQ+5HC
+BFQmQaseCiQ/39ZtgWALsSg8fIds2kkHK2w4l/7ACh9BdSF7ptGrELgXHDZUiuAIpOC4ETs4r6Gu
+ISWs0SkqKKyNgWkJZTVsheThEekjLCXWmQpEGgyx5jjrbHd4N9mvhs/8O6eEDQ/11fDw6MwM+GEb
+uC2iDYzRNSX8fIkovu0qTnmQJEJVHZSFuILD0s73sMIaVqiVRJxFySHNiMEQe3zHTaOl6ahuiN4n
+bjkhkOl4OHi4aVDLOQXH5RE1NYjKm5aCUmTOlEybmCPWiCkq9JrBCqWrYpzlBc3CVnB95RRnPWpQ
+upibCGOjNDZTCwV/VCOLrmCJ3ipXIDKXPOjXj9ZYwBptR5EVVGYRO1AMj1ALcZZFfih1pfB5Mc4K
+o6VniJUObT66TofcYYdPvHQhqMspCcfljUSU4OGtW2/qAtZYIfkp40gNtImXhMvSlBzykBfir9bU
+Gp2ENKOHL9+K4e8k+w3wYdB9mMzRcFukKyEahFrs572W0Ii1AqmP8aWvYZBdYxB6BedFI14SmbSD
+Fcpae1KS4DiLVCd6UVX41Le5dTfZr4bPp1Mdr/vQCB8qOK5ynFDtkFGXyHxoqNOVSKxNXcJ/KZij
+hrpKqErCvzfoDl0N0jkYo3Ha8GipjcSqwozYxR3iDrLfAD9VFxmjh5/XVRun6jv4+lLXiOjL0DnC
+FuuGVMfs6sAuAf/eoTvsmoo9PM28FsQtWYBYITnsp4GHR50RG3VF8GEBlgQVWpijE4WwcF5WlarW
+mjtHD1uUoBaFqdQD9qyrIgSl5OFrHi0lblll2GmFDvHNgYe7yX4DfLmur+aFRUQbpHQ9wq5GVMJL
+IRvwS+g+hqmmVoi62miHS2Ihcqd5WPgtXotLHaKlKZ5TbiUg+9XwaQmyDMsg4ekLZD4Gvr6sDHij
+2VFDC0rDutA1IoBHHFEjYwS3EEOcOq2Wh+GpN7Q0xUM97IfcuovsN8FPV9cSv0o4L8frsRpkxCFM
+hV1xLoM4FTEnYogu5osqdIhNP3aIEvlOyZGWXBIrDDbevCA3BdVNy2wlL24fVo+aGEtIWUgE5fDz
+TRw9pQFBpIQUlMox2FJNzSkPRVo0qEW5tH/PaaUg+7XXaIsEH9clcyyhWF204kEpZNlGWQOn5eHH
+LQ8Iyo7M0sBt1WFGTNWGZ3mUEZFbYtYhvjta+jiqK0+s0XFoxKFXW2kEXmFurLeVk54oRtM9LY/Z
+1DyBOE7xgFgdEYtiWvJb8yj+4vmw9FW3tMZhfUgFt+V4lFg5pD+tK5Ai01RXyXNjNMDV4E8JH1/x
+aKnh0VIapAmRFofw9O3drfNhaapu4peKIzcaXt4JJSXPjnnbeiSSTRWC0hrKCmM1YbaVRkvh0VyH
+DtEj0kKuJMxiojWGDinKfhN8UtcwSa1FJeF/ILhBWNr6vinQE3pEWL7r+qKjNBDGSNOHFZwWdYjS
+VrpXLRGw6nmByOThD7JMi67Y7iKufSBDFIjlO9nrErGDdTWirA4hqWNl0YhpCWo5HgCsa4T1FF3U
+1sW51gr/DeM0F1nhY6luPplow5aTTjSI4jtTWoX8EBEpIgeLVMfzeHxY9aDgtGgAENECT+LXCB3g
+3nku8pUhbvbwe8OH8VNyWTSZ2CDj8apBTygcxfPeUQbYaqQ6Lk5eVOCWRYeoxpH4s/NhIQm9sDu8
+7eH3hi+XitDqB0QA6AkbWyDIpLDBtIpnqLnqAk2NCXCr5rnWlj08zYcZng8LVkgjWrQ25ABB6Ql8
+mPVxPNTcVpaXihjtYtigGoUYq0Mo2rGmwmIaZNU0+FAi5aH5sMK0PDFNg1qeloccKSgdrml+LE4m
+NugMkR4iftfGUbJDkUNbIMZSXQvvLseJ1sEKaVZaGB5ope6QlodUHJRe5bIeQXXT/FjDq0ulKCmk
+1+Tnkew41/hu7AzrqCw5WiHNh7XoC61RuuLdhmWlyGXRt78ZO6z18PvDp86QZseqWU8onRmcO0VW
+wb+LcVVb6A7R9fkCmbTXRimePLQcOCxcVqqyXw1fLBbhlTW0BsnrxvSu8og5kRaK0WUpWhtCqkN3
+2Pa8PITGG2jysOHYYemyHnqk9PQaBx/m/v002SnhshCwd83CZZWtbsA7T5EVYgd4LXZZNNN6ut5h
+o4ffGz5f/xCW41I8H7wWXFaI39umQUgqeLmWjFY4BA6TyyopouDVvGOgdXVImrrqzrmsWrWmoJA0
+LMd1jeVA65zLKuvS9cijXYyyBA86jCtDnr45VOGC1wtywxrTaXBG8kiWHpbjhqVH8GFtx3m0ilGW
+Uwa5IS3CHZZoveoJU5P9avh8yEEipApLvYVWxiKI6qg+SNPx4ExwWXKKsmjcxvKAlrSlbpXnJVr1
+R/59xYffFT53WRXPiCHQGoYchDXOe6TQQxbNSyZDruO7qjUNUmxeGUKJIY3Pc0g6+PcP4vfPP/z+
+8OWQQ1m1MLyasmiaDazIa8FlTVm0GP27XPh3yf6dsmjBa47qMI17tX+/7uH3hs+HHMhl1UMWPYuy
+ZMvDfXZUVsX+vW56+PfCdbZGFi0VOkFRIX6vx4G/cRIsTdmvhi+HHDpevxyy6Gbm3xchacczYqZt
+kUXTcFZpO47fJS/BNfPO8HHXlL6+ossiePDvtH55CElr2/mSa4SUbTtTFvn3KXiXjgIzHnKALaIz
+HJKdi9PCR1HdbMhh7AkpNFJS6xi/V1FZHDmwsiiLHoYcrNdO2GKW6cQ1pWcjh3Uffm/4WWVBU2bS
+FI9ZsbK6uDtMjp0hJTvWKVvpTtWLsCEMvh9pWmc+7Ncu0kILG+w9nP3MYdG2FBp8gMJCsmObmiMH
+GlKmtJAG4xsafH87xkpJ9uuucih7qBbenbam+NkYKQ04hH5Q83YU2kMXRrJotNDXzllFYdaYQ5sY
+Yx1qWudV0AD4mdF3GZNCycqifWENYizPMVbjvNWmgh+Du+dZodsC0usffm/4mBTyDrFZOMoZNA28
+jJM6FLvTZicTN9GpqCwKSI0RvLuijaPJUVNPca3RRg+/N3w+3OAqUfUCLNIFshztHGc5w8BMGTY6
+Gd5xKGJAivu+i9F7UFYflVW/plVqsl9zlUMGPY29Kx57pyl7Habs656n7Cl/rnjL4UxTlEEHZTUx
+1aHFkzRt/4ay1nz4/eegp5BBhL0DQ9TAUzocNYQpnRAyDNsNl7SKmqIMur9GWZ97+L3h52cKdZgp
+pD5u2RFKqIm2sr6hrCWt6Nuv9u7XPPze8KCsKSEMA34he57PQbu+CJGVPausCxxWerJfDV9EDXFC
+x6lad7ZyylvuBQ2PYJXjDmnWFGXQF3SFb9EqBdmvu2aaojwuLAWp47g7TRXSqpk6doTk22kFLikr
+RFgcjoYIizLoGGTdEmE9gupex1dhUpXieUSkQ9Tgxo4wKCuEoyHLaRC429PAnTR/Yex++8PvDZ8r
+K0zntLLl+IpGkcPCNc/7oLuWO8KhpgOlhGEwmao5aPQKvWqkjynhybB7mrJfDR+UFdeujcFoWOXX
+xfhKLTTFQSkNNpRxZIbmKAqeo6CRmVeDDZs9/K7wqCmCT8qCwcUlkU1UVr1QlunlOOBHS0iJdbzn
+fhjwc2V3zRjWo6judY7T8bZKKEuxsvo48xWUNY/c9WwdyGIcmZxVc93o6G0Pvzf8rLJ4pt5FTZHq
+FsoycQRLxnV+FIzSaluhSl72rrg2wThDETKpTR5+b/iJskRBE4FRWWENdx81VYUhGZ6DjrOqcSEI
+bz4pOWQI67jd2wvXUpL9uisO9w3KChOqPa8B0eOC90lZocJYqD3T8npI8vOxOEET55+buDD5ovjq
+cVR3usZvXDAz7A6gqfoyKms+VU8D7jbWvOh416oOy9YoAbejb786vkpZdcuhhpqXjlL9OlrU0NDS
+URp4KePqUVKWwKuM1VTmNY14lw5+WUZ3dcQFM/Pp1NNFa91sUEZxHSheMBO2UhCv2gaWi26wNy3v
+DggbC8uTdbaHGO5b1q8b1xaZs2uLFNc1Krie0VDdj5ZpcX0/PRZhk9ECP1zB/dmH3w==
+ ]]><![CDATA[
+ Gz6VCgmbc+KWkzDm3tly3FJII1hUNaubbfwKpAp1I5tQ24/g/Vjv9uqd0Cmrbqr6HirQNLzti1ZC
+ljzgzrTxPC6jYmVSeCn49WlLIReNpEIXQznSsdTtMfZBD1e54FUoeEtLZTQXvKVymy2vdA8VJE1X
+cwaNO+YVrxb1SPkMhjN9YEqyX3fNJlJDgW51sqm3cFXcp1rwhkJLegOpyFktKkZSNVLFVbJel7k9
+xNzE/NQFChd8cFYN82qopOxn28UVl8iqueaTH8vUVbbQ0B4Cdlr1Ad2oSwoof/bh94Yv7c+gB7Sx
+IGLHpKIu0iMzRtzetjYY4cwChzB02tJLpzrNKj4F0t48lZqS6pZV6+RYtS6UQ3SWdppQLRmDPpC2
+1fvgrFhZbQ//5HjdB9VsXdYSU+frPaUk+3XXzFnZ8dSFGpEVr75GJygQLlAUUDZd67g2cMMV/epY
+/pAGXniQT/HeiS7ufpaL3c+HcVbzUxfiATGV6Nmvt6blCjMdF7tVMbYKgeiQ3SjekiPicCitfODh
+43nMfsXIVcqqmzKb4NepBoinMxTg07k8PgfkCENVWyJvHjaK097nMMQQNgNIHg6t45bL2fr2MHZx
+MGcVTtPp4NdpIwCVnUGYhbROzJy65fW0Y97cLnZOlOP+VPP2Zq+UZL/uOnFWgVeU2Xiu/1HbZlZs
+muxv2OpFK2tpWxypbhhrnzGLlBVSwQ8GYx5JdcutOCAVeZtwlgD59aAxjZy54C0mYaNXWKY2DIjC
+u9eGVtbSGN8TVVlZbCO8auQqZdUtKwI7PiLG0xFfXN2pc6Fa5lge38Xlj0NF7jDZpePOZ2XLaWVt
+mBmkb795GjU11S3HrJYZs3LGWz6dQsw3eZGqPF7LadTlytrlYtHRtacl+3XXOGYVp+bjmFUo9s5n
+LjCp2nHXkmI91Xjx7DwFpcvVDNO6jw/mJT7/8Hs7q3JZUIYHnXgdw7wMlho3D4YpVGivpzoWs+VE
+TUFlLQBHTEozXmFP/ZW7U9NW3ZQItmN1hjKue7SOBl54A28d1xIFXpGqGlaXhX/vOMaaNtTPdqfS
+ROpievCxJ1Ind9XHNe3BAh08e+/L2RA7SPXE62k91IQskJXlkF3TFD3FWFQDpOLDKSxP40wFU+KU
+88NPpC4PPim5G/TjqDEFWIb2wvG6x4FULb+IdaSsuCdHjtUH5osZhhpPZ+bn7y/7NdfSXdHowbgf
+dVqpPVR1qnk1n2NVgUtMLMc9YQwbhgx6vkzGX77yI3XVzd1V2K8kpm3OgMedzv1scYxfKMvzUrXl
+6qu4e+kpHBDz0Zqiu8l+Nfz1BvrlJJca9ytxTSfJRhhUNSjLLNb1hX3PZ3YvPfxw3zxvDqUZwsaS
+EDAo3uRMdRlKWnwMz+QmTZHquqgssYixLtq9dH/Zr7sWAQP373GvxFDxw49LRMN62rkFdjNNtXzg
+47gQmTYwiXFt7QULkdNXXfnKAl1c/m8N+fmhlgy00yzcFampj1ZIMZaIu5dofXtcsg34yartq3ZO
+pKe6VzPNi2lmMZYoQsBAuUy/cFevlbXcDFDONwPQt1+5zWRj2a+EL3k1nGZFUXvFNZFpQTsVITe8
+CS4EDEFT7OfnygrR+7vbTB43g15OM3OtDxeP7B2P3xstsI4r2id3Fa5RU09cDktzoQbKC5uxatGg
+rIfOoOeHi8/P66UolBf/yzgsOtUJkzFq714ra6kpgl+lrJ1lvxJ+ZqY5zkjQAZjeNjxz0/HmSh54
+ISOcxwz95TZIpL1hX9xmsl9zjdsqp8OGwkyzhLOiQT78iNhK88hxORuMiRYYnFX/oXd/Y6tXarR5
+/5rbX8eFxOPBe804I9Eyr8JgzBCI2gWpRk2R6qa44eqtXmmrbml/y2lm/PXEO5VIY2FGMCx5pDXa
+UyA6KWsKR+NmehryWuynv26rV1qqOz3si2eaZ9PMHRLBYpqOIGflxthq3g3OlTXti2uWNRpo7OKq
+Mg2byn7dFQfYZybI9teNM8000UzLh1xc6aHjwn83OavzylpW/6CFDdNWr7H6x9M3j1N54JX9UbuT
+CWqqooogtDpZ6bEcOZ6TikMGUl0YmRkmdFyc/XqnrsydZL8SvgxBl/bXaDCJnNWw0sPzwlATN82f
+OqshvgoDfsVUu2+aV6WV2zQDffFWr5RUNz9loo7ng4aDZwf7IwN0o1PngLweI6vmRFVDMDoMuod9
+caEkZKOdojErdBjq+kJYG8h+zVVOSxcGVxVC0GZcaUX2Rys9BJ/mZeM0s+QZwTPO6nUw2iymc/RY
+bDTunaBvv7GY9OdkvxI+P9UruCobTmB3fORSF7rAk5VWZvTr9Sv764Pq2kVH6Gf74rjyNm80OZ0l
+TLzywFJVYVEouapStBx/OuMslzUmE7RxpZWM9nfOr88tMMxP8Om088l6ihraywu6p6K6U1UVfNIS
+LQr1fJSxNBLJsor9X7S/YczqvF8fAoZggWGOcCi6zaXonuiY0XEZiLlso8kGsl9+zY4NIrgZVUVe
+nc7wkggVSjo8jkJQ3yOvGfq/E/ub0sC5s2rGqgMy1s4s+WC0eTl37gXp228+kGkX1Q0HUg3nd7Xj
+MbPU7vDq8CkKXtk0tnFkP47P8Go+sL9u7qzsbGcqWWA9LkgeDgqoX9fOTMXipmt51JkfVUWHDmpZ
+wqU3SPzgqsJ2G1qUJqAZCkHdO/Y3UKoeScVzE03YnEo7U3k6tY5riy5wV/dX3fJIy3ACqIGjIusj
+VbUKUSPCKh1dVcEpYEHxJ9FmWBRzXlXBr5uwFDKSqo1n9ZLmea9JqLl90ckmK8t+zXWiJ4L3JY1Q
+dkhlOrI+sMpra7RVtC0S2XLLi0LbuOl0YX9zZzWpioKFUDVTIFzokSorOr4xntTbTTtT6dtv2Bd3
+q+xXwk8pRdshHDyXQd/nuMiq7FXNqoLJwKt38YTUaVGoPWN/UU+kuppdVagEqcaT2E/P6W3O7Uy9
+v8Utr9eqoqOdLSIqLxUcesPWF/REstceURVt4qriolDD6/fOqapZ6ElzQWmYYF33Nb4Ezqp8dQJ0
+954F3n/gZRhQmFRVIkiv+Iz1Cn0fvApbH1SF3k+xS+f168OiUDea4DS8Pvn0UMSCqiPTYZctcht2
+fugBdXBWOvLq6jN67zDwEkfzSE9PXL6eVCUQp1slNbop461x0pewvqAqy149VF6wMz3FNHBwU4Oq
+JLOKVGWbDv2f8RTy1+hLazrEV3RwVppIxa7y0tOfPyv71fD5mZWUIrtRT45OcaZ27xFROae9gKH5
+UVV69OrLhQtz23OBdZKP19OsKjrK2CKuwmfQunddqFIK9ID1cGD9nFRpOavTAT3LszRVVJUwBZLk
+2lmv6hJpMpkMHNWkKjm6qnamqIFQNtYipw30PR0nTmNWsnbw6r0r4KoqLRAsGHStHW/ileys3iTV
+/Z3V6YCeFgWPUg2qapz3uq7qrrFIkx3vnox6euKVjTMTHBXlR9vr+JjZFg69RaBgWU+l5aWmlAYa
+pIEtTNDQIdnQTtrOajaaTgMvNKDuIIig1A+qaqEqi7C6R0QlECZU8OltpNSJnoZcpo411ATbHp32
+TKeu1/DpBtYXVKWQBDoEtb0Q6A4Lsr8QWV29ifc22a+GL1e/0H54jyCd8r5ed2GUuGFVKcTpNYLP
+hvd6t+yoXqmKF2cPhIqHJlBptaJ1bYVgqkD351wL66uiqhqECqry6P88b6L3853haTqraaFC2A/P
+O7HQ90Ey5H2S9aT4yEU+vrmL3Z8fFxovY6mBULQbnGyvb3Td1hVnkej+OjgqiUBhUFVdCXZVPTri
+yf6SdlbTKde0H17RSlD0fYpTP1YVn9w8bEfyYRJ5yaoh7KzYn1O/5xGi13BTzvdIk61tTA+HrpSV
+NHYBVWlEVaJs0FDBVV1sf3eYfx+Kd4BUT1zWuOIt8X3YEu9LTv18PGt+UJUb1/jP9ESqG1QV/HnX
+mrZAGtPD9mpfIPmzpkGYIODQa6ZU0BO79GHMSiacBk6LZUsmleGtSIgSaJR42BIfRql8zGfcwvaG
+vm+uJ9GS7K1C16fqGtmMcQ3clDRWN4ioJPq+Tki2vqiqhZ6Sc1anG2x4saxAyg+vXfBWJAqpq2GI
+KowSi1cefbI/y+NToWxTHfs961svkM3wOqsCbsqqFsGnEQ26P/LpdbS+E1VtLvvV8Ncr1mm9rIpF
+YRrej+tbzecQd9H66vmU1qSsYXyqD6yCm/Lc73mECAKJX2MKfLaTnZTCcxG2CkxeqOpNr76J7Ndc
+Swvk+ffhMEFaL0uHRkhe3l+OpdHOp8hsf0+8WEjxQbKhbkwNVUl0pHPbU3BTpTBVXxkoxXHfx3qi
+h3+HVWvLfjX89Ra3alosS85qWC+rxxM2Xo9SzbdE0KBnHEmgXKbiaKrhEEHB9hq2vRZuqqkUgnSL
+iCqECa+s7/4Wd3qd7vSetrjVsYrcWJzwic8Bn+9GOp1OdmPt0Lot4dAdp8c99CS0DlNa0fwQpVfw
+6AZ5cndeVTvIfjX8/J6ReWG0aYvbYrHs6SjxNEMTBtPruqsLj3iN0z6KOlvYno22RwYLApfIZ0Kc
+fqX17a66xSmxT8OekVghVMYjF89vcTudTm5CZDVs0m2YV4j6EXraOJdBqtJVO7M9clNBT9XTN6lX
+UTs9Fm9Wx/FpsWekPrNn5ERZce49HrZLzmqonIa0UkH/UsCjt/CH7cL2pp4v6XVWy2onhgNRqrXg
+dct94Ad7RpbKquOW07CRkuNX5H3OUN00XixEI1Q9WNXCMQ6296Gb2kz2q+HLbnA49HQ4DsjyKQh+
+dmTEaIHL+feZb4/rqqiyx1C0qaRCq1CJqCzXLqwKYt1tbmpF2a+5FrtrgqcdjDCccNOMx+n6N/aM
+nMy/D6s6puo6VDAmlDqmejxdLIi5HHZ5gLPzTjbYxN01VELH85IVPvVUzvaZdu9Y4HwFmuFxm9kh
+n3UsM2dmNTHfGXZJw+Lm1zR1ak52bY31QWNxUB2XYS/2mfbvKGtYrjecDc6RlYgnorbX1y68/5jV
+sBxmWuA/7dpyQ7WT8xb4dLJY6Lyyzh+0K4Kzunn2/S4D7GHZEE9GkLMKJb/AK964VcYNNubdXVvx
+GjLohbJoCxeU1Z6tgJL4YqHpWqpqubqY6jhSBs0bt9pxg82wZv38MtATWpHBRmVRxRhWVlgISnVp
+P6itk5bq5ius7Gx1cdhgE+p9ydmuLfLzsa7/+W5wHmEtaMWaYs1PyvqwENGmsl9zLZZhDyusBC+H
+GVYX8wL/uLp43LU1TwWfTpZhf6gs0tR0jDrZ+1XKWkv2K+Gvlw2Fh+flMBWCUFpgbHmBv/X21a6t
+sxb4NNsb+IGyztW3Ssnipmu2Zpb7vmmFFS0batD/aVpd/MS7cYdSjs25Bf5nSDVq6omPKVl693eV
+tYvsV8JP18zSXLyaLRuitTAIf2h1set5dT8VfQ6O+t0F/u/YYE3ffp2yNpH9mmvmzg==
+ ]]><![CDATA[
+ n3gZ9rBmtoZP9+OyoSrOxjcIQm1chyZmdeSaMP9+XlVvKGupKbL3q73752S/Cl6+clPTglk+kVnC
+UfHKId3HNR4WXWCFIDSWUn1jyV7/OoP+UFlLTYWQeEPZr4QPticG2wtuquwrxWuLC6R8elgLEwbY
+aUK+hKvSfPLBZH9vO6uoqSdeFHoau19sg2nkMvP16sFNFQijCgRSlWzR9ylTmZ7XwswWLvASdF41
+q87MR3xogy09/HXKWlP2G1c2jrZHsU3FS/vJTVWI02nNLK0tlrZETFXTsiGoapyN59XFo/2956zO
+KmupKbL3q737rbJfBT8XIoTF6qpqhIKPspz+qx5ZHy0vLpHT+HHZUHtmNv5MGniVspaaCrOBKZQC
+OxcihEXYtF7dIEUmN1XpjhfM0tpiclYIPys4KnWyxqP+0P76IYO+QllLTd3JWUVChYZTJyGC4/Xq
+krdAKFPCo3unfcVri0XTwqFHPT3xnpGLVXVKqyfebnOld/+87FfC3wgROLZBhkzRlFGVarUzit0U
+LQTlNbNQiWk7PnPkFaVeW9xVDgvw28LRTVV3LukLbiqECB6hVKlJdcZZxW7K1XJcM0tri6nve73C
+6gNndUZZb0dY9PA3588r5zLzDaXTtpoQIlikfQUvVle+9A18VNnQbGArEKeH5cWh4rob1zd2lzir
+q5S11NQdcxkVepll0jdsq6m1McIWCNCtl7yuX8JNqdmCWRlO6jxdCnqFw3qKpcBuyp933FI6BOiL
+jI9im4bdVKc9QgSBDLlB4CnqtjHRTYUFs6yqsYx4E3QVprQ+VtgbwzI0dsHb5G9zWJtNIotiuaGU
+3PmQ8ZVxTw2pDgZWI+0rGtdWg5uCGqqoKse16Qd1DQWNu9erPi5S1lJTFBLfnD+vuqV0UlXIj5uY
+9BlO+tpFiNAg6qxDGTTDhymG818NK8tFhQWVjRx738+/UWSOlfVGhbmdndWJnkIuY7hIQMuBZzMm
+fY1zvK2mblTTcTQlYHst93xBTyY4KxNfll8Dz95QV9TTrBTYR8p6s8Lcxqo7pdSgp7jxlnIZD49O
+SV/PSZ+IIYKF2BRNdXx8DalqeNERLZJffHw863DWMZ5X13w6Z6wwB/iiIt+ZInOfkf1K1c2nkN1o
+faQqK8W48VYMGR+l/5QfhxBhcFOC1RNUJPDvEq+CX2X8bXBjJ4v/31LWaTm+scIchcQ3VaZdQ3Wz
+Wl76rKoa7vmUq0CLJmZ8tKeGth8hlHrilY1yVBTU1NE5ZS2fF0gHLKKPpEN0Zx3kLOc5He5b1Dz+
+uODx0zc7lgKbb/2jqi98ZMOoKsRTLVRlreYNpbT3VnLSF0KElm1PjnQqOQ3k8yctvL3iF/JrvLVZ
+xBPnE8SYCt1cSnuXSeSYz3DkGUqZGKYU9BRyGdp7S51f2FBqRje1IBREpaNfDdRYwiXxeYEUz/cw
+VYnbPqrLvJlPL8vxiZaGfd4v0r7j2XmvNioj+BRcoKqK1kd6UtBTj0fWPFYZN5RO0ZQeVUVndMqu
+QNrroFDNL9vWUIrggynHwYe3uDUo643a/4B/VGTuctmvuxYHvM5n2xVXM6lplzqrStRF3TRmtqE0
+hgihj9Nhpx+Io8GopqXZrqLpGvwIhZRIgByMdtoz+GYpsGHlqJ+fKvH2kRL08DuVAnu1S3mo5SXg
+gxou0WHYUVWjqjzPzMSkLwZQYfcab4ck1vlWIijySH3oJGGFvz30IgEdhiAGKzw7rTMssz1/WIl9
+77CSjUeJlwe8TrW8rNYGD0a5jGADHFQ133sbjiMLeyLDRj/aOUrjWGXd1rhopLRBfCERYRQwytOB
+5XfW2HZhOe7ZY3DU6TE4OyyYeV12cF7LC2SflTJhPVEfZ+OGUsM5jI0VJkLZBFKVR0+FyKKWNWy5
+VrWDF1foOmVYMCM4wX6/xs5sMWRbTuX4aLhPLSryXXW60u2qG1e8yLg6fV52MNbyQuiI2AZ9nx4p
+NWy8dUPZBN5rG7eweVZVWXv0VR35ZPzfQ2keIZmPO8Jn1VCmwYd3g9HZKiwxL8dHD3/xuV2fU93r
+A5b5fJmp7GCo5UWz7XJezSS6Zh/PuAv7Z3hTFvfvoIGrS6iJilYIr/ABBT4iDEfUTKs3qlw9jZX/
+T4v4trHcsVgU0t5vuG86C9cP9ieKWPbactndsZbXNNvezrZz1yfFqELZEg89OS9cx4NOyIlKKK3j
+sRtiVjNOGp5fNDPrBXkedhE1iPGgwebjcserT2ktF8bSAefwnbHsIJXdDauCdKilF3KZaef7cCJg
+ye3fwP4sPLoApSrXOOuMczBhBSOmQWayuDAZHYuivF1qdd4LqqEoLQ33Fbq59bDPzzirOKWlFmfh
+Dmecd3C8Q9nB+QGvk56aYavRUDmPzj1vucpEA1bVDtI5CXU1XoJWlmfDYv20MGvxxEsX3uoI51sC
+pl7QocuJRWkpEZNcsuKm+Opy1c1J1fEeZVlRWDisjY1nnPtF2cFptr0ZKwOEDJcOAyTNM69gc66F
+qipXuBJ/t17BYXHIz93DqQV2c2e19O3DyGgZF7rbs70ga2pTZzWVUy/jMZxD2euwMJYGXnhPd3dS
+dnAYfmpmOyNpXxaVgyNSlbC+ypLmbQd1aZhhGO6ais29U5d2cOxs76NvD3X/w/hVWDf6wXLkjZxV
+KKdOfr3lQh20MDaMyXXogPRQ9vppUctrUNZyZ2SPQIiqAkjbWepEC2dgyJ56B2Jdy8ts7QfFVk/P
+zSN+c3nbuW9vr6n7v5KzsnEzacELrsmvKz6JM5TdDfZ3bkP3WER9MsIKqYhHVFWBVwWlcFAWOBYH
+J/Sigu+bzmq5Ny5s9xoynH5y7OSsbjjI+RbVnZ4ZrHjzvuj4RIOOC3VUvE15qjy/9DDzqsRsgUSb
+Lm7j7iBQa6ExW8NpeR6bb8fK0MvK7IvIajLC82W053Vp25lj33J13xRZhf2RA6mUpnrqjqp0PHHh
+QcvblM0iJZkXyJlboGe3LhEmFFzrAyGagbIEOkLLq/yWZxC/TapYeWBeRrubl9GOdWnPbDW5hTYf
+qm7w7G4s1FFEUvW25H1soVCHH4zm6Uwtr7kFNmyBoc6ZgqsyVlrNmurgrshRjwemN4uN9KfXsox2
+dFcUErt45jWNi15cRvuzqlukgfOD7SQ7q8ArGomE0XChjlNPPNbyGrpBBAK0PRk9u0S44MErS07F
+KihL8gh9iDzGA4JCYHa+4vg8ugpltKkulGR3VQd3RaNG9fV1aW9R3en+SBEiq1CogzYpI3ygmoon
+PJjX0ltUnQilPiViqxqevQSvarCqMD3E8gj+qT5mHc15qjpwJrKapzjTiddTdEVV/+XJHkK18TEl
+/5+9r+11HTnS+z6A/oO+GLCB+Cz7laTziRSpjREkC+zCiIEgGIzHE+8A4zEwnk3g/Po8VdUkmyKl
+I+mKTY1EEvfec3n4SNVV1fXWb2PLTusjrdWIrEw4V5KN1VivTu36OLbqttot4DuPBXXYHEE2Um8F
+JTVc1DmEj7u03DLaeaDzGpQM1uH4mzxEV7LY66y5evhooB5Z9gOvj6Rjj5pwFnV8qp3vjNXYrpeD
+XiFnK9EgQPE5JVSqgl0voVg8NZJHQnnzK8+HCmZnzdVpD+SAgQRH+aAtFJ/oQsffdNHVwlORQzow
+dMJ+5bs75opPtSv4TJ+4y8RnBvf7EndbOJOxknAhLysECxqsoo2JPRTLc63wGK0hVBLTnjNXsz0Q
+AUO35JmUlkvIVG+/I7q6dTQw3nui0YXUrAxb9gJ8ajiNacLhrmpkrOLdvKRqxXt56UOOMLSBE4RF
+z+ucZrJluclrGn9lZoWT8sIHRptZnA6kjk6TCD2QalfDRvY63she5L7YVOR+m4CTHnjIW8SgVK8L
+K9/Jb8WRY3Mcb3xGwcKxz22gkYiAeGKk9S0ts8wVUnDaKFrxSV3NydG6s6ngrl83MZwmMfTAw5mN
+7JebityZq84NHpEINuiBGg3LqbwgK9/FDseR1ZAxy8ZnXYFPw6sX3P+y3INPhc996Y/Q0m5oo1Yz
+S8TnU8H4MBfSuug0Ce6EoQdeFTB8GevCmpHxflWG3aBFbFX1PbDqw4Uq5lPnpLoCe4kURDZeahFX
+mbwAq3Jvcee+hVr5cFCXlg1lqNR5bk+ZeFenjAtiw1ESnnygo7bPnCZxdQ+8lXUnW+XIaKAP+1Ud
+YMY1Yis5WrJb+d4xq6tYWR4LNE3dcPUgD3GVQYsqfwSTtM+88h6aVSEIyUenVY4W00+N1RC3SToe
+jpJAINqMfODJuomFBlKn5qqi3QdlsyopsCPuOwmGDiNTlfFeXrSXXokkMKsM4s8CJp2+HaxSjrKl
+DLmlQhBS96flnQ1GO06JsRrtVcQbIjd0mgQHosN5LjM9cIFy32h7vZG58mVJO+XwZlVshcc1q/gM
+EQ+764JVd0jVEJrlCoYqcwdXIf5X0FJezKvCItVukfi5nQfi+kKIrURpC5hCzycq0WkSbQhEr+iB
+D2BdV+brois5DV4havdirtgKjzerOgifJP2XYZuuvC5RlWwjS6yqHPJAMMvADxa8wVe3YyalwCdG
+sJ3tgfEhQXCiXGjHx5KxKroTlUaB6ELrJlRk2Hnr/gOnOBRd5bAusDswxGZirg6j/kemCiadooui
+qnjbQdryswSrSuedA7Ma73mlTlMewjas9rR6tZucVjlv2Sm2ct445GPGDKkgtf3uE5Wun8Eu5RjZ
+Bq3biLDKydJSgMWbe7FticzVkNU0o6wm433Bva88fTtYZZ3GH7CN18m50obl9HH1aq4HzhRax4cE
+SWzVnjtKYpGxic4RduWYmoameBs0hX9yWOFCEjcifigdD9lyxVaXoqow7JojjoVBLxzNAVRQq5qW
+f1FQGuuVmR7a3DNrvAkkBew8Re3ARb7Yss/FVkvO+hg7QhV2bWzyDKGobIPW23Y2LMKpsEuqDdmy
+lGDoYBqakUbbOJdOW8oqFXrhMUyadMMhqGSszp+Delrm6QJ22VUtcxSUBst+V2x1H+t6L0jGanCE
+smcc7doIs96HoqYf5Kp7q+vYWBkeEUMHsXBRtN/8wRmwCmEU+mCFuFbxaoC2r1214z0admFjorlE
+UMo8LS/DoYC9BtNznrXTm/Ud73twd2x1LeviDIdqDLK/JbU9coTDro2dbY87CGW0DfcOUiqwWTYe
+bGl8GJplecVOwWFojtzScDXaXFCqMJ82jhjcgSIzhOw840OFrNnzrKv2tL6w0ECqhAxdQYZK7bQj
+r+YawwEih2NsMtm6P96xShoSbztY8saftEVj4Wr0vxo6VsNg0Xo5Mlb94YI8ythvGz03Ljg5U5CM
+1ZGHb3SZ5UjE+QDGirNmGkL95NyNh7EujhpMHzLQfqB1n+HQ7noUYXdaEE1d6OaPsQ4hr0Gf4D3n
+j9wh0RPDDO/R3js73tMpHmU8DUObXhZypmAZwoUCsqDYBsLQSFunMfuCU9QCpwjOIQ==
+ ]]><![CDATA[
+ FhWweANxSgebUcgQZzj1uAAX0v8qQ5xIM41p5+sGzKrsER+kuxMrw6Hpk7135oxVF4bKjrUwiCwL
+ChekFHPgRThcORbiE2xANxdfURKKvlPnRyi6bF/sOB0Z9KA+xpPHmt6Z43VHbYdlb6BqZNkPPCE3
+Z70qogGc+UkMo90yuzBUSnx0rGA1Che6sZuRWV/IWA3MkkKDxFeFLfr4iurH5N9hYfQJs6bjBbBY
+vE+x+MAGxgqJsz9KZNWGZUqHkyHUS7lN0xVaJQx1XOI78tG6kghKuFAmMVbCrCgY7QsNB39EsuWr
+st9mtu40QdL/If3IIicltv0A3wf68fcBds/xOAcVYhwp1S7s6XTOrrczStUEtS0967xsLTpOBK+c
+c/VlYxNh8r8wS6oycTA6FBqkglkyn6rBnZPcu0iRjkek6KpBtA6XCh7R3hYH3tWwOakthELMXBo4
+6JVUrWj41HdhaH9WJYcLu68SHq3bq1UXtstA6sG1uYZClBUaiI5T9uXeMpoYKuPxKlheQ9uqc83K
+teAZ5cwt7yxj+OCEbjz2/K6Go8gq1isyh21x4LpxF4YOZ1VGPXBBY9Uxq8txinA2RFe/quS4yXHk
+Xo4mHHMJLuwVrni7/twdybYgWLCe2k41Jz44gSaPxOOx506sjJRKRoUGvVL9WZVxGHo2XFhobCJm
+FmKEkOPUfY7jhrkHZXe4Vj8ppmQ3xUf/cd2KSqEt+l8FY2VK3Q9GcBpozu5xH823OTFWQal2fABc
+fAbqDce/PajcJ8yqI2ZRQmiZWWgZD7m44OeLcACgio9Ulg37y74eijQEf4q+aiwz3cxJzWrWWEUH
+NofTmnulCjuRazmrUozVTWHol7JuxKkdH9Fy7JlVjJglNcxcltywUpHkD+E8V1tQGggTn/nSO9wF
+3i3704jH4cJpZDWaHDg+BVyc4GCszirVwsZqwqyxWu34PKmOWWLdXVjy1o1IkFLR4ZuH4lhoxAxH
+qAEdb9by9jiFKhqewVxwxHAIYejUsp9OIZE0kCP27sDm2FidHqybaq+P6wyWlSNaFK87tWx88zDO
+3EKvDI8ztwgZaJC5BqssIlA6DpXWLJFSEedPt6ydKe+Np5BIUawaIitygmsZq3lmjVwhM6sMc9pN
+WHBatVS34flDdP5tyXpl0AMRUSGFbLvpCzw5Tc45O5mgHaeBgwssRlNIVG0gBR3CdYqsxAOuYaw6
+TnGEReW+rjY6F2EZXuqHpFWOv23axkaThwrOZXIPc0ULLTRMleatsOj0SlnBo2fPWWqHeVZdF5RT
+wGkeJZ3rKPmA46Pl8z6ySm+sRsziwL2vIlPbx7G75qV+SFfR/7phLprpmKM5NHmohFLRIZ8qz3OK
+53n3FNOfMt/O5Mzj2W6+739k6zgIlSWJUFVa02oarhofwsG6qY3VKbNOU8K8SwnF2hS0VQAvjpfV
+ScPkIZ8fcsusgluQuVZly5NDqWZVS2RVTfbLDLO4gqkS/6ejwQ5XwETxedBO84HNFaeBanTCxBe0
+/WbWDcWGeDCHBup1V2xoHE/Xrnk/ilwWMiNeQMRuwkjzMep/Bfpf02/CKquURvvV7qI9nYRV3Wy3
+OkjBh7iM7DpxrDQ1ur/UFvo0MKmx6jm143UTXRmrojIWTcLiA4A8T2mwvPFeybtSmL45NR+AayWy
+IrveIKpyCEEL3uviGLaMbmaXW/Sz3Xbh7LzOVJEhbGi8kddPA9sfhyOnNadNAyfMCpyi0mhpeHDB
+u4LGVJGjuFBQOfCuCnk4rrthpbJ9sHCkEirPSOPFfcfyAL3IeSZ7NxYRz7OJWNXzSWa7kZ3HZ+sw
+LmQ9H7HDwYIMnX5yWvOirBsN1XPRnYjzNK2ozGjK9o5n79MSGsW7nNBpnGKsDjzTysKuK6jUgZWq
+5Z37TK26gYhuaGO63GI8MTDvZ7vRvAg546yQqQuVOQS77vpaaIKa1Qx8dLxbmLAWT2rQcsApWqjB
+p1aMlZhfjzaRsRrpFZSqgfsseY3SgSP+YelpMFbDHK6OVeJbJWDjFDI/kD7bFmyxXDMmo56uwD53
+9TtCdwOF07GvjOcg0IYKGdpY8Vwriay0pIE1vFUb6ZXvV/wO50uczjQNfNrx2kBhVTcxEOoqWz34
+zClrEVcd+lPAT/pfQmMV2BXNwiJLS6OqtEVtP7eo5f5kwaYGdj3vw3U5r7vgHigRKO/dl/V6JfH6
+eB/yeZUiPnlZbtPw6fIazoKsAR0H10J20v9O7PqXt/1m+HTKGnyPV7kE5OGIxQItL8Cugs7DjaYb
+h3AdkZXnLX5znrgQZsPswnFUsV2PWaUCqyqk4T5MoJSTK53LLe97cDAKqXPLJ+fF8fpaJ7yMk0IV
+JYWO54CUvGOv44gaPr3lpZRNlXVhKM9ht0gCLZSqDUmgORngCuOww6Qky6zKe62quV+bwuW0J0sJ
+lrcUKoAxhfi/Hc+zWnzqwifwcaoj0buMUdCADgwSb/OIDAiNos08vPRACg8oZ7bogAbWLUPomvN5
+8/EaQRutuK+7uirlleIisxGrLFiFrs+HfJJVr5AClpOT8x7Z9tuufkIywU+nYmVhcCE7UPJxpN10
+6gMvpcyLGuaq5FUkOSJQ0rqouDDWq27Hi0o2UpENetAhyfc5XvBLXoaKhmAV8gY4QDoPteZzwO2J
+qVrzOKr5GX5krGgRE8IsxWtv/YEsVwG9KrgHwp4hYChhqGgGhOYdNP2w8JTUpup3bap6neq3fWpa
+jj4sfF8Tel/HJ80hMRygCeeASwq46KTQK+HjgLTpT4UtEGM1PHWqlPXvHnGP5R09CiSKClrQgln0
+WobMxoQVgrFSnWzO05kpOja9aRwSAAPOH9j2xaySc2MPnNWQSQ/ngC84g/1qeDy/iJbyygoKw6tT
+aa1JWTsEDpAz+lEBw2JLajtiBkRUMGc1XKADT7qMeahYmX5Io9sci3Z80lIlNlBTMn601EIhAeBJ
+SSesUuFoeTsOFVYxVh2vwmLe05lrdDKzZ4Ot6pJ2vawrBOw19IAWM1v0QQScCNap7bwtecuz90yf
+Mdt+SKPbms6xOVeHAny3pJ9UraeYloatq4hVzQyrnuEc8NMDv/mgEFoZgMipgAHjPTJps68SenDk
+vU9MUYUVuhr9T/Eq+a4MKgd9hr0hZcNDE+qE1Pc8zJRjF+HDQifTnwXOfKI6bXcacRkSwOc5B/x0
+wL5bcNLwRBfK48CKrIZLRAvrSpcluk0JZsG4Ic9toXsmlGFEqbqtIXmr0R3vwS7bHVbc9zT6clsZ
+Ln+1CP2tK+wBLPHo6F3va8JJ4P1C5vWPKRkzqyv6VYbmynIHhMkqwIma9wQ7QBdI69DKI5jleE+B
+A0KMVrZAYSeYhf0hVdi59sAKBb+HUKrgbY1rhxz5COWED0U2qZ23lTkahzDBnLLqlE8rGqtsWHIS
+l7K605kdTw0yvH8VrT7KoVQ1bxRThl0qlKRClneILPo905pQKG6CQiGnRHhm65r7Xs2DP7mveRq2
+M7YwDeL0gVWHc6xaoO23XaPJo2QuyBlqzqHpdNgMvaxASEAnNmu4LdqAqKHFRAhIj7yvTh2UysvZ
+eY638m14i9+cjRTr1CGDvTvgI3xRw+QbnuOdWWdqo3XJkafjQaXrWfXlbb8DPrdK9UDneHLhheKn
+Et0GLrDFvx7mqqGpjWCVhV2Xk17ycHyJIyOHO2+tTNOqep3SYHDDmWTNKwcKWHRjSrCEUr8KKp2N
+fd9uuS1ivgAe70BQ8AhYxSc0U4ZGAw4OBh1BNhsrMC4Ds2jTJ4N4XSOk97S9HG/xmKEPUg3V8Ba/
+PihUjvDc8NZ/gClauuOO6OYlzJTXrYaRROon+UxxPkxY31jJdbpCp+KNeAwfvNjANJEKIbTG3wrW
+psX/dckzH1oEod3xAI73PFa8ZTRt8avh9UykUHl+gN9zrkLf84aUls0UxVM5Z8kXWbVY22+7wpYp
+MqjUbQTCB1q7htdqUZCACJvvjA9DUGBcDRd5QOx15ENMeK5RSbMe0e+Q7CCL8YhgxUgVPO4Ke04L
+LBB+6ND3FMyUeL5KqsRXs+pRbb8ZPl4cEHZY49EBdEQ6r6tGLFUWtEqwZa3K0P8KmLAckRVyavS0
+I/og7UjqoE50AgxZG8SvGRzfodcp72qnbG5ahAhN1/fAlCYUXiI+PUuPm7sG+676Q+U9eiEtAqSh
+Px7SynnCesM6RnqlEVnpugKzaIj1CPNEtZucd63F7+ANEIGxhaJUyCvo1AH2vDJKVwgRpO+RmRo8
+3xpDWjfDO2Zx/M57PMme5JV3SOxyRPFwYRwqtJ2xahBJ1LUBszLeSps26HNgVI10j3bNLGkbHlow
+DiPVKRQZ85y38obrc9L9bu97q7KuP29i2DnFhwObrTsihqexiI5dDTELZp04hZSlbmpZcgKX16Df
+Wbg9xz0PkNyy13NQKB0pVMEK1YVSfGDEXWbqEW2/c9OGzmTxsI5BR6SDOVqes17TlAV0Ri0RO5iF
+QAD9jPaFhj3D7RCWH8Clhjcu4OJp7hteg0mOr4GRYp1ie657vzfT956rx02vzr7n/baQZTizWTvy
+7976Q27ykisx6F1ssGijYxqtkHyR9kBuuGZjeAqp56UnleVdE8tIpyTsJHt+Vd97Rtb1JqvfyL3l
+E/QOzrnWe98wr2QrMNYt+DgkObSRtgObjojqaftHCxOlfYGe5xGaW3MwlrzeoFD07Z1O3REiPAfr
+hpIDdcSyPzrdWVoUcQzsorox7VqYITQtwB+O50tOfmowCtrnK1oobo/oeWTNj4iktBipOYV6zlzm
+8tWbLJY7byYtZ3mhxTandYHMrkPQLlsU5BRxU3qIgJXH7GuZY1bC7RXgRsE9zyKSEq/Xfq5Qz6E2
+n10q6oUtKxZia0NwdMUMbSd2tYgharhFz8V2GDYwibbmyxFrVl6jO2qYKPJ5Rh+o53HtIkRS4vhi
+I7XGuYEPgsc7RGb9gdeKeZWjJzqx89rn0C/aN83SVH00/8A77lS86tmYmk1UHnpeF5qzQkl4cDWr
+Erb9Znh8Vlw4e1dbYZeB/YGd17z/iYJf9OCPFxdJq3Fy9LsKjDogOCATZZBGl33PK0+ymDUHkR8C
+V11QOpy/Szt/t4FdOWIIg75I63Rp+VtJ82Bp3SD8HRwmuMQjoQj6YaJamChye0e25kNoftHr/bJY
+d3IAL1mbjl2lPhqLQKkFwzztL2BlLX0OZTrCQJE6dYY8cGnHs/dPrfkzHB//EPjpmY18XjF6oob9
+4aJTBoYVMEm0Apl2nT+Afd5oBOVQJ46icg4OxEQNPe9pS51fBI9Poe/YVcDOZ+AFrQ9twS+NqJ5P
+5tXgQwN9ymGgjswoseVjEzWrUM/Y9pvhKuqKBbGLDw730K+DOkLD6KCFgu8cPxswokG/o+IDa1Rn
+y/0lRi1GfGJ44NXuK9mLm04FPcAtKmZYAbYcFBWLj1Qwxs9gE/yd7rkU7FNcPVhvjg==
+ ]]><![CDATA[
+ WQL4oFpyKnYlhrrFc41e5sC0nHZHUbTbmUZgcAz97qwh/+W0/Q54zC7fMQwcadEjM3GRxIkjHhCb
+xJL7ExO1FvHp4SrY+YFhYfMh2imG74pVKZeJUsSmm0zUosSnh6tev4RhwrL49vzUhtQlcOk5iE8M
+D7ySeL5jmdyu/2nEpucfXFgUrnr1CneXApvh0XlGfem3/wLh6vy9C/NtFvz2Xyj8lFVpv32Db/AN
+vsE3+Odw/PpX7Y9/br75+ZvdV3/8L/hv9Xv3NZ786zd///m7n3Zf/ffdf+yy/b/svsr2dKu9/PvH
+b+hJ/79/7L4yefZB28DsrTYfdDzR/q/0UH9oW+CZ/dBZuTe5+Sjz3PED2rcQT9wHlVfllULr/bcE
+yz+8y+Wz6CAavFZ+FGV4LfMOH1Xgo3Nr8UR9GG0FWOBjdYnXVPFR5BrAovjwWis80R+FMntTZh8G
+Ge3eZiU+oDCMKxVez/BWBnKKPMdr+Hij8PGZ+dCqIKD6sMbjszO0tNC2A44f/kAP7UehvQYk/7DE
+E/rB28zzx/oC75sSDcot6PMfviyZepvpjwyfiIcZuIMm0ZfnucbrYGTmPFFtP2wJNuFLpf0MtB+l
+JqodWmuKXF7TCmxyILD01DItrDfWf5QOHGEgeFcSmyzoKr1hupSz+MFmH5nO6YnDrzKQasAwY0K7
+Tx9yu4sPhN34Ul12zS1FKQyExPTTE5q0tjfKfKjSBvbjQ3QB2sB+2nt8zx+VgxW6JPkp8ARMVbkr
+8ER/5JlTIm98WpbvNbhYGqiHKQzUo7B4AokWLmeV8yUEA/5Al/CEFez0IZEPVdT0YR680KKarCna
+grys4I8qjC/32uQfJkNrvh1UXGsiPQfpHm8XRLrKIU5HorIfnknP/EeuSiHBgTUF+KtK/wFxgdHO
+f2Sq8HtVQAmJ89aJ9NHuj1IJzIBIyHKvvP+glXHMWnrHQdecwrdlxB8wU9nigxZxMWzykBqsgKQW
+K59/0DGtEErOLFDU3RTpXfhw8JdOnuOPQg8sywJ0oy/zF6LlWQ5tVZAGnXaOJx4fbNASdA/5fg2O
+5eAORP6RlU7eMR6qAX6glVBkows0DaqqSSsLmAsGlqK2Gqph2BQY++FKCzmhA6N746OMJyI1NMpl
+YgcgIGdBJMnAWcHgEyAlfLQnZgOjstIOcgswWAADAWcfylvFIqBd6/Ck+GDFtDZoDhS/MJmooYVi
+6ByUW/S2oqSPd/iAUlSldAafZNCDvScg2ULpf9Rk2Dz5QidsgXy8J32CXpEp6xlFbbE+D0JAWx0x
+AWathBggOnBPERBsKT20zSgoFukRqZ2yStRV2UAqNMIgZebXCnwuBFGAQoNvVKRu6HMkLDRJd0BL
+hCkY0Dz31IPRImWDlHOyrfhqBd2HJtgP2kpZVA/SsQaCRl9T1jrW0FKDQtJhQ1adejn3VgVzZaBZ
+BJw+/IEewiJ6+tJcfXivyEKgpytHXwoOOA2e4x3qUNRE600pHwbzURJ70NyctYxMDLo2a4AhSRKl
+meb+7WA9Qz+FVtG+npAtFEWTIyBZOYWPcugJGRlNCFmRNSTTkcM4dUrhDHGaPCObbEskG3pSBF22
+9AlwdPjcD9psR4CQQ0EtK4hC5diI555ME9paKtIm2Ao2u9RWQ/6TTcrpQ+rkPvugEQE8LGGCDVTM
+g7CS7Bm8i3Wk5WRL2JpnUDFVSmfw+HYypWwmLL2GhohKgieahIDm4ROIHnDVBV+ak4sj+6nhacnS
+46WSug7ZCc3ODDaAGMjKXoYum4P5+JH6CXcEmCBkjp57Kh22wLYdVtOya6L1OeIBTh9SmxEbcDOM
+hXlX7GZDtGAcGq9yz088WM0+E/8K6wuSH/Vf8EhxI2CLc0NSJyNOJhIP2JIRf2CkfBd3sDeHh1Dk
+fw3cDwIMzc2wyopPLww5MrxLBRfBwc4U7LeKjzx4fu3YAZK7Jhbjkwy1Hm6iyFVweyfP2HuhfxbE
+bsjZwJuyI6KR2T15eXxmJGeKKwqfC+Ohs6Xlh148rPFKTJXNChKU4Sfcn60CfUUujcZDTSEVhVa5
+zXLmkXUUbMCC0GB59I0wXiU6gABh8TP8bKEhWVmowWdSMFfCqOyn4eS3czEmGv6/EZ/+K0Wj/4y/
+wFm//797le3/226LSLeIdItIt4h0i0i3iHSLSLeIdItIt4g0SUT6990fduX+17/Z//F/7L76w04h
+ILWIR7lS+ufdV7771a++ng1R6fFdQSoB7wxTAb0zUAXy3lBVoJNglR7fF67+6uu7A1aC3hmyEvTO
+oJWaOhO20uM7A1eC3hm6kg7cF7yS4s2Er/T4ngB26AC3hrBA3hfEAnhfGAvgXCCLx3eFssDdE8wS
+7M5wlqD3BLTEsbtCWgHeE9QCeW9YS628M7Al6J2hLWnBncGtQO8Kb0kl7wxwf/X1bIhLj+8Lcgl5
+Z5hLHLgz0BVFuSvUJeidwS4Zn5lwF4/vDXgJel/IKyb0jqCXgHeFveQ9ZgJfenxn6CvQe4JfiWbu
+CX8JeVcATMBpCEzcvDMIJtnfGQYT9M5AmKB3hsJz0Syz4Mfdr77+p+qnn5vvv/35+7/9+M1P/9j/
+jp7j2U/fhJ9/Xf1+X/3Hz3/by7yD7//fd7/Z/9O//fzT9z/+Zf+f6IX/vP919ee//em7r6vfl1//
+y5/+/t1P/+e7P3/9X7/7x9fy1t9/E96jv3ZfKbz+499+3OemlFib5zBw1EYhHnoStMZxQdhBWWFK
+OCShDQhYK3M4RwgdxpW0FCYGEQZMTCZm9VtJYj06Dh7CNinmMFST9IRMjtKskvi6wlJQBG0sQmLW
+8RdvIODWAmRDT2EXwyAz6qlsgMgNh+IcR5Ya3kACYJhAh1gXr5WwdaQMsFO0xoE/iBYtS+5O0sX7
+mvoYxzXgAisHkYXoZE/G0ityjehD3ATG4XucoYdQSkf2wpCZIMpJDQ1phjES+ROr0NC8qyBxzKDB
+WWkgxQc5OhixnfMCsmYwiJ69NvdnLssgFPb0TIlE4BooUGM/Ad9VsOeg1Xjsn2EVvdRRfPDF6AKG
+fS1ialvSp2chjKQgG90NjhOZDDl4xkFeSpEDgxUiR0yfRFtow8nBamSdkwS9ylMCoHRfBIqf/SDF
+TDZbirp7Rr2LYimKZ+nTkVKVbNh9kTuO48hQcCkHfcyj+6qSmqiYMZY0k8I/BJUlO312FRTQwte6
+vgRUcBBBSkQxIYDesfe1Id8h/2Dh+RBnw4+FKrmy0oUplBGyFMyRJcXCr2gjfQ5LC8oLkbnBL4Zv
+1NQpMs3BksnIdVFC6aDUEHFIkzR5DpIT3DQUrK+zcrTbh2PkxI3E/LCU/FG9HkHFENX5rvQpnt1S
+wkNeAj8UWU5dFfKx7GlOOvS3M50c8qn/1E1gyvb1v7N5+MOPP37z1+/+vP/LT9/8+fvvfvx5n/9m
+/1sQptBG/IvEqNj/1mmKcPeK0qs8THeSv+u/IJGn1A6c+y1FFGSWhx+6X3GARr2VehGddrGv/ypD
+VnUdbODULp4+GNk+AP7t53/88N3Xw1tj02c4OYe4kX9+0DYrbOW6gBURG7o4SxkBq9Wkx7YLnGEG
+nCP1p45rfWcGuMfATUtWTPyFUlA+gu7pSnLa0CWyc6TZHp8lBgsuiiIwSj8Km0vQEzQtC44UBpKj
+ypGmecp4Q9JQFojo6ElO+Y7W5LIohQOFaETJSlWWuRRxEOCYjJKI3sxQsMqWmwIzSnOHJ5RhlrrD
+jZ5xjdKHFAXfnVnowPmHXavAR5dT1+9SUI0f2AZQXGhYcSnggXMWBmmJ3zQstC+NaDOdN8dJj1fG
+sGWmPXK4nYayBhaJkggQf8H1UDiJ93PF+bIXO0xP4IXpCb6R6g/co6iwwQ8zqSv1MTHxn1pG4raG
+LWywBowr+XVNxokCZtIUMd+ITCzCzijpokSjGxJAR9dk0QcrRRRbwzrhyHbQA0WuhwygyrztPAjn
+qWSu4bHKfe9TKBeyFKqSWXHIWlnnMuvD0IyXGhblJOKhoEMFpaL0mnPkjLQVzqiCcrxuTEeH9Abh
+pDWl5ObsAhB2ftAmBJzzeUeGHz3BlqFwiJAbb+XcZzhYI7ObkbWlfkUbS++nHfLbuV66mJly3GAH
+66Qk3h9+6H7FrVVesy5S6LG8lUKIYshFkHJllAOQlSrIRRrPoYbm0AGClIzLUAGQ636ZRC9cfsid
+Hg1688NMS7DOeSo94TCe6ikkbvpsS5Ji3OnDH2QkmZXBIBDJMjJwcL2hgoJumBFdUGDNmQlpRaZF
+plStJMUgn11m1H+p9EK2ksSN7M3yRymuEMJPd2k3leMoCaT8kI6G53IprI3mRJLLu8Qadu/EEBeU
+jwIXPIEJpC6YF1KnokBPZaHiyWVJTSmMHkaHxw9/kIcqM/JhUqjLgmWg71UcpaILOn6llMLbt2IR
+2RByNcBSL0Hw6jh7pr5LNWJyBKE+EJ4E7zB++IPU/UOrqVSQqyE0RsTxQaUmokJxophZCVJCEZ6J
+JS4biiP69lC8o0wooUslkTyh7WZ1wMhxSIL+zxEq1zFVIVU3dgp9pZ1MFexdcDWwL1TqIruXW5ZP
+l18aJ+KYKPi3c1q/WK/n4hayg98air9gaIYful8RdyWVILdhknT7vjhtKZ4EN/8a9xvyR1LcB2Wa
+BElZSE4KgI7guQpBBfUy5FLQOs08p0o49UZoa8nhN5UNqRpAHJeCopJSJEvBSUWYyvW0bT+XAEpr
+pTYMtuh9X0CwheRGYUyNY2x23YqCqIJyMPqBckTKFfHRXAHimk8ZBvGHooWRDIXopJ19+EmZexls
+UVTw5CADvU6AeMjaiICDq5zUnNKTfaNqjiLVxRPYKKmtcyDStZB9DxS1pGyFbIXnSiBVaaj2Sz8o
+HlmgzyxCiNBXXGBmOWngJ/R62YXvbHXYAJrIDHUPfoi/Hf24tEYGaaSOPDzpTH38QUQs10pyqSTT
+gIRU75B0cYpbKilOddWUoAWjZ2zDdaieU5W15KEkK7mt4exQiLNU3aNiqgkGgWJV7uwkIK51lRRj
+haIPHYLIQ1VOGA5T7pkEKuXYTixsEHmkiGMlT/aDB82oIEeqH6kGPaRTYDibh5wcV4Vgo0jz4DLy
+MM4z7jPfznWk5SyJA3/YgBgqJObRD92veBDOBr7xcFcCSxLiAGIhfFkhliTrCmSIbCz5iaKUYgyV
+zLQvpO/RiaJ7yyM0gZ2dAYCPRn/3YtA5PLdIkF1JzpyMPmXiVBnzWUhvc65Dllwc84WTAm1GHnMY
+SPW5DMZaRalpmLQEveBCPBXkMhtKmoZVgHP5Qsa4CqqEjGYGUsGJWoh+4ygXgkvkuhUNv3I9s6sH
+89CnDtk0DSGTPvbsIvXllJAUmsd5udLLdUYaW9Wdy4KhKZwUMGXkjcbRCo5SCjg/ajKF2+xcqUDj
+Q+GJ+i6XBagLGbLFg8iopMqB1akQv52T7GKqjVi9gJf5LSQFb5zHP8hvOPVULDiu/A==
+ ]]><![CDATA[
+ La7WVF4p2Tplomx/pWdku8kkEGd4fAFxqKLiHDGZU00q6vOAAqVDmeRf9DCnIU2SD6dplB/S6UBi
+fqGXXLyRULUgtbIyNYkiBKmR45tldA3pDVm/3gxSlQ6Gi6LM0J8IaGjgn7xYTuNNlDMamhxA8RDp
+sqWhmx4IO8gVCAaGgJeHUBwPypHp5+TZhYCVRgvZYdF4jAqzqEwmI9TkqHnYlj6KU1jy7twKooo2
+kOMon6dHBFLFxxgq2VFJDE9ksoHJujZS7U2HYokXWz+8BlHx8CceKEeFVerwFNIPTUTfZpJDE8cP
+afIY5b+G00YvGQ+JiF+iWnApCTwdLSYDh7kMZ1ICL7MGaDhcUSZONdaisMNrlMEr7eSjlJOEZ/qQ
+iEC6QvvwChElhfNUoXEqjFmTQOkJogtJg0toI38azBLXiGmMSSrdNAxhJKCmIzj4AdfsOMakOR1M
+BY0/U7kBPFFUciISeJyU0jVdeCFf03gei7GwgXwaH+Q4rZACMFeCPSsFFX2oK1Atg4fUqA5jZGwO
+dgjGiwdMHKmVlDwUz6TRoaqtqNpODgIKbbSEfAOOil08lQFNVcoUEgdpZ3m4WyoEoy5EtWslHjHn
+ajupi+ZQDMac6/unff3bmf5/pe2zN9s+sL4kTfgtBd05NG34ofsVyQBOoeShQuchjMXt33/sQOFH
+EWilhaW8IvX4/Q/f/S78XH/3l+9/7Nan/vo39No/7776n30DNY9ymf3/2lMtEDYu2//x3+dfoP+H
+l7p/9gZvqJx/BS+75yWy/JW0SPZ3e4Ve4PPdV3/8PX5x/IJrg2/wDb7BN/gG3+AbfIO/DPz67VmW
++PYN/jzwh23Uc15hliN+gz8cfrfcb1KbhYjf4EvAHyj3O+Drtn2Dn7uWlvv1V/q2b/AL8GRyvxKe
+su0b/NyVXu43wRdt+wb/FL6W3K+/lmv7Bj93PYPcr4Q/vO0b/AL8eeR+Jfx5WPfC8CUElwy+Luve
+Ab6Q4NLA12XdC8OXFlwC+Fqse214AsGlgadn3cvD0wguDTwx614bnlJwCeApWffC8PSCSwNPwLp3
+gKcXXAJ4Gta9NnwVwS0NT8O6l4enF1waeALWvTZ8LcElgC/NupeHryW4NPBFWffa8HUFtyh8ada9
+MHxdwaWBL8S6d4CvK7hF4Uuz7oXh6wouDXwh1r0DfF3BLQpfmnUvDF9XcEvDF2XdO8DXElwa+KKs
+e234uoJbFL40614evpbg0sAXZd1rw9cV3KLwpVn3wvB1Bbc0fFHWvQN8LcElgC/NuheGryu4peGL
+su4d4GsJblF4Gta9MHwtwaWBL8q6d4CvJbhF4WlY98LwtQS3NDwB694Bnl5wCeBpWPfa8FUEtzQ8
+DeteHp5ecGngCVj32vC1BLcoPA3rXh6eXnBp4AlY99rwtQS3KDwN614enl5waeAJWPfa8LUEtyg8
+DeteHp5ecGngCVj32vC1BLcoPA3r3gGeWHBp4GlY98LwtQS3KDwN694BnlhwaeBpWPfy8PSCWxqe
+jHWvDU8vuATwNKx7eXh6wS0NT8a614anF1wCeBrWvTw8veCWhidj3WvD0wsuATwN694BnlhwaeBp
+WPfy8PSCWxSeknWvDU8suDTwNKx7eXh6wS0NT8a614anF1wCeBrWvTw8veDSwBOw7rXhawluUXga
+1r08PL3g0sATsO4d4OkFtyg8JeteG55YcGngaVj38vD0gksDT8C6d4CnF9yi8JSse2F4esGlgSdg
+3TvA0wsuATwN614enl5wS8OTse614ekFlwCehnXvAE8suKXhKVn38vCUgksAT8m614YnFlwaeBrW
+vTw8veCWhidj3TvAUwouATwl614Ynl5waeAJWPcO8PSCWxSeknXvAE8muDTwlKx7YXh6wSWAp2Hd
+O8ATC25peErWvTw8peDSwJOx7rXh6QWXAJ6GdS8PTy+4peHJWPcO8JSCSwBPyboXhqcXXBp4Ata9
+Azy94BaFp2TdO8CTCS4NPCXrXh6eUnBp4MlY99rw9IJbFJ6SdS8PTym4NPBkrHsHeErBJYCnZN0L
+w9MLLg08AeveAZ5ecIvCU7LuHeDJBJcGnpJ1LwxPL7g08ASsewd4esEtCk/JupeHpxRcGngy1r0D
+PKXgEsBTsu6F4ekFtzQ8GeveAZ5ScAngKVn3DvBkgksDT8m6F4anF1waeALWvQM8veAWhadk3cvD
+UwouDTwZ694BnlJwCeApWffC8PSCWxqejHXvAE8puATwlKx7B3gywaWBp2Tdy8NTCm5ReHrWvTY8
+meDSwFOy7uXhKQWXBp6Mde8ATym4ReHpWfcO8ASCSwNPz7oXhqcUXAJ4Sta9AzyZ4NLAU7Lu5eEp
+BbcoPD3r3gGeQHBp4OlZ98LwlIJLA0/GuneApxTcovD0rHsHeALBpYGnZ93Lw9MILgE8PeteG55M
+cGngKVn38vCUglsUnp517wBPILg08PSse3l4GsGlgSdm3WvDUwpuUXh61r0DPIHg0sDTs+7l4WkE
+lwCennXvAE8guDTw9Kx7eXgawS0KX4t1rw1PILg08PSse3l4GsGlgSdm3TvA0wguATw9694BnkBw
+S8PXYt3Lw5cWXAL4Wqx7B/iigksDX4t1LwxPI7g08MSsewd4GsElgKdn3TvAEwhuafharHt5+NKC
+SwBfi3XvAF9UcGnga7Hu5eFLCy4BfC3WvTY8geCWhq/FupeHLy24NPBVWPcO8KUFlwC+FuveAb6o
+4NLA12Ldy8OXFlwC+Fqsewf4ooJLA1+LdS8PX1pwi8LXZd07wBcSXBr4uqx7B/hCgksDX5d1Lwxf
+WnAJ4Gux7h3giwouDXwt1r08fGnBJYCvxbp3gC8quDTwtVj3DvBFBbc0fF3WvTx8OcElgK/LuneA
+LyS4NPB1Wffy8OUElwC+LuveAb6Q4NLA12XdO8AXElwa+Lqse3n4coJLAF+Xde8AX0hwaeDrsu7l
+4csJLgF8Xda9A3whwaWBr8u6d4AvJLhF4U/CupeHP1xwaeDPwLp3gD9ccGngz8C6l4cvIbgE8Gdg
+3TvAHy64NPBnYN07wB8uuATwJ2Hdy8MfLrg08Gdg3TvAHy64NPBnYN0Lw5cTXAL4uqx7B/hCgksD
+X5d1Lw9fTnAJ4Ouy7h3gCwkuDXxd1r0DfCHBpYGvy7qXhy8nuATwdVn3DvCFBJcGvi7rXh6+nOAS
+wNdl3TvAFxJcGvi6rHsH+EKCSwNfl3UvD19OcAng67LuHeALCS4NfF3WvTx8OcElgK/LuneALyS4
+NPB1WfcO8IUElwa+LuteHr6c4BLA12XdO8AXElwa+Lqse3n4coJLAF+Xde8AX0hwaeDrsu4d4AsJ
+Lg18Xda9PHw5wSWAr8u6d4AvJLg08HVZ9/Lw5QSXAL4u694BvpDg0sDXZd07wBcSXBr4uqx7efhy
+gksAX5d17wN/uODSwJ+Bde8Af7jgEsCfhHUvD3+44NLAn4F17wB/uODSwJ+BdS8PX0JwCeDPwLp3
+gD9ccGngz8C6d4A/XHAJ4E/CupeHP1xwaeDPwLp3gD9ccGngz8C6l4cvIbgE8Gdg3TvAHy64NPBn
+YN07wB8uuATwJ2Hdy8MfLrg08Gdg3TvAHy64peHPw7qXhz+V3K957XlY9w7w55H7lfDnYd07wJ9H
+7tdcT8W6l4c/j9yvhD8P694B/jxyvxL+PKx7efhTyf2a156Hde8Afx65Xwl/Hta9A/x55H7N9VSs
+e3n488j9SvjzsO4d4M8j9yvhz8O6l4c/ldyvee15WPcO8OeR+5Xw52HdO8CfR+7XXE/FupeHP4/c
+r4Q/D+veAf48cr8S/jyse3n4U8n9mteeh3XvAH8euV8Jfx7WvQP8eeR+zfVUrHsT+DPI/Ur4w9u+
+wT+FP4Pcr4Q/vO0b/PL1JHK/5rWHt32Dfwp/BrlfCX942zf4p/BnkPs11xJt3+CXr2eQ+6fwhdq+
+wT+Fryv3a67l2r7Br4SvIvcr4Uu3fYNfvtaS+5XwRdu+wT+FryX3a66l277BL19ryf1K+KJt3+Cf
+wteS+zXX0m3f4FfCE8v9U3jKtm/wy1dKuV8JT9b2DX4lPI3cL7+wVts3+KfwReV+JXyttm/wa67l
+5H75eoa2b/BP4Q+X+5XwZ2j7Br8S/kC5X76WIH6DJ4B/odw/hS9K/AZPCb9J7ueutYjf4Onh12jC
+0xK/wTf4Bt/gG3yDb/ANvsE3+Abf4Bv8+eHXFCLuqF1s8A3+9nAlN8Hlx6TffjNczd0d8Yt/+x1w
+IVHP3IHdz6Y2A8GGbxtu+V9E+CLffhe8I1nIdbh9uOlnIV5P1Xs14plagutAsM/yrMBd8t8F/ueZ
+8I7sh377XfBBJ5hagpdZldXZge8adxUIv0h2UuKFZGIwsbcCnW12VARn6o74bwPCy2vJTkB8p8hE
+cgnaWjzQyirHt1WaiQfhQjYpyVVEL0j8mOQDOEwE56pUFd+F8vi/IppFbQZeP+Db74JPSTYgslIH
+1bKBO6pG1SCcyG6gOMRoIx12JRepBnPhe5JzEHnUWlvtcTutQXiNpwaqXUPj/aAdK9g6YTL1voLg
+dSD5oBVILXStD/hT6VwbkF1Bu4nXnXaM2Jw0uuj0okLf00Qv4CDZg9gWDgZt0Ef8nIPbB/xaBwWZ
+EJ2MeBXpRaMUFLkGvbk+gFoLuPG4ndG61aW2qoVeG3TGjuiL/XAh4iPVYL2wqkK/8yBZgdbSVLhL
+44h4BV47KMiY6Kt64UOJP1UNA4pa9LyaSa5MY1rctcnB6ANRTIa6I9rfaqYfRDx941g1DjAXJRTD
+g9SjBePBzYMpQDSxuQ0KXRL8DqK/lPjAZIKPVSNH37Pg8tFqix+Y6By6UcF4HNAsBYvY27vkoZH0
+P9KLRhw0qYaDamhwtgXJdBHRtfEwHoVWsHeWjTR7lrgPJiG+638eTDvgPw4mg/VCzMUBamGtw63N
+ER3RsEaT4fjE2i0cGo37Xwnf53UT9MJYMhcg2VoF5fBgagkTXaNtWawc59V5sdAo7n+NNrqCyShM
+w3rhmcmtoR434nPbhR3XBUoLhEan/c+ZGqmUYb0QZXadMpPOE58p6Lg5JH1waNSw127YNA/9T/Si
+6Y1Gg3dCvEHwOwPSe4mPmMyhUeiCCtw89nymi1UDetFoDx9Yhshu0IuUti62cxQawchRaOTgtQ2I
+bNloWDYZg2pc7H8JQqNZOwcmw/+Rucgm/sSyarATvBwgLUb8vJ0bmEz0ktyDahzOqcZ9334X8bGd
+O4Q4w0RxBjojet8Rhpr1giPqW0zzIsQPfBY7V3II2vR8JqJn9ILgcex8o9F4QNVo8Cd5709yEHoM
+JDedyQB5ZYgzCtGLxJXSE2dCbmIczwmfVW8ySs6qJJ6bpIIJq0axMwlxPvU4zX476/k8xM1DenKm
+/yWqGhVTZ0JxPtk64nPLXbANIejVLnsR4sf+hPKp48iZ9P2vSwNj03xDDemBxJ/6kw==
+ ]]><![CDATA[
+ IZ9C/wvORLOds2ByDvI4NDoN9dOmgZfjZvF/cWgU9T+xNncXve4jvmcywYvIn3Rxs8QZZsTnctL/
+0pa8JkwmH3caN1NwREZjwucVQqM5p90FzZyMUNzsmGgJ9c/y+b5vv5P4MZ/FmRQcz0nS6iUNNBwc
+kXGeqQ8kDY2mfJbkhOyc5K2ek0BOWjW5yOv5vCDxMZ8lCYQ/YTvXsF7kINqG4oBYZjCZ4HfEc48g
+XnVpYMznlv2J5f5HJBPR1ANzTk5gnGMmd+X9O6/70sA+AiV4x+eS7VwL1chtgduhB1Yc6duQt06Y
+nLhCHkegYDIpbQM7d4BqeFvizqEcLRpBRZiu2HVWmRNVyIdIn5JAciYl6QWZi8JWTLRGJ3SInKUS
+etY4JyB+zGfNwZGHM/Hof4bprUExE5+xpau42HWmqHjrt99J/JjPLvBZmwqm2YPkAxNNmoGmaPLv
+XNgfIrr0Q5lzfIZ5gJ1r0e9KkNyAaNKMmi0duRMOmwl+o3F+DPFRhXzgM0iDP6nR/wqQ3DLRHppB
+PbAI7iRisoSFd1+3Ey+aEZgsFfKOz0cQWoPkI4iuoBxN6IHkUbIhc01cIR/GTsQDdkzmAbUDumBp
+W55c0uAnUg7pgWTpLg74LEz8kAaSB2Qmw2kXsHO5bRzBnQLRB/wXj+EGc/TAzqN8qswLpYFdD5SI
+LvAZTLbQi6ODDwfFNds6Vo6DdMLgUa42Gg8eDYz5nAdlLmDnCuiFdiATCl1BM+Bn4AN5zknZW7qb
+jcZD0sDB0knkrJnPDezcAVpBwb5GP4SyIEBqox6Yi7VJWiGnKzBZ0sCa0214jcDnEqphHF0a6uyg
+Gchd5nrgCqOBnTsxnP4jokP0xnxuoBrOefxRUA7DypGzDzzTA5ONBoqlEybD+iLSKKRqVMLKOZfj
+ttBoUQ7kL9f0wASjgZ3bLjlsNjAaxGQDaqnIjH8MDDRiJvhuRNaRG/xUmRccDew8CuJ5hM2wxMxk
+70rcOdS5tuTfoRwZlIMC0eyWmO7BxE89SoGIrg58LlwFoj0MNGJpRHUNbHMtJa875z08ZDRw6lGQ
+XPd8rlwNoh1snWgGzDNHodwDCX63pfuSkhcHzt1oIKVV5LkREIHPFuTWuAuoM2IPU8Jx+8E8rzTL
+K+6BBj2Q4jp4FIfIuQCfcxB8wJ/cqaAc5Lgl5R6i/bu//S7iT3sgWboj0kCwlcyFAZ8PrgHRHrbO
+IxnUQTk+DZASlLxCD9QZW7oGIdwRyly71tGYFLTa9spBvvuGAGkRWzfEGoZ7IFk6eD1mckNEQ501
+aQbZOlIOzcpxc4D0wJJXpxxdrEE9kCxdG/h8hHbkvWYUFDqTrVN9lpK05BXNfBDlEDdYIaY7wtIp
+8LcByS1Ih7HuNaNz3OiBXckrsa0LmkFwMc+Www3EcbB0tTv6DESXUI4KZsOFqE5C56gHJrR1M5rB
+Y1IIN2AoYOEaXmvQ4CckWoNy9OZ5ohlJbN2pZsA2wweiB4q5aEEyafSpcsSO++5vv5P4cYpy4ECU
+zHODGPQAJit3FOJNpBySV12Rvy5C/Fg58hAgIcOGDyzAZOgL1LkQzeBB5BPlSD/zIVYOiZ71oBxg
+7hFEZ9AMHzSjZc1gc/GpcixFfFTer3rlOAbl8J1ynNeMVcr7vWbseMlJpxzNrHI05zUjqa2baAY7
+6KAc9Ug5bG827HnNSGTrppphyXGTuWiCctRBOfz1ZmMx4ufNBmmGgu8LmkHEw5NfVo57vv1O4k99
+CpkN0Qw4bjAZWQm8oEdmZXkQ+XqfsiDxU5/SKwc0Q4HoDJpBxUYV4tCSa9TX+5THEh8NZc4rx5FX
++xxZMwrOYE80oyv33Xl9yVAmNINsXRdwkHLUI+XIWTmq85qR2NbFmoE4lGzdqXJQiETKkUdJyhnN
+SDCUOU1SJNqAZpC56JSjQvxcmDaUN3JOUj4xGwvaunOhqGgGup3YugLJFc1Yy7i80ecpKwxlxuWN
+OEmRaIM0wwRbd7Da8IzWJpQ3TvKU+779TuLj8oYoBycpiDbEbBi2dfCC5misrqS2sQvTNu7KYB9i
+68blDclgOdoIykG2TjIrxSVRP9Q2kg9lDupc8mRgqvJzeYMy2EE5dHCEEj9bHptvT2sbK9i6rvDl
+ZbFPzcpRBOVQsHXkCCV+VhwinS18JbV1SuWh8NXa0mlHAyusHKTRVXCEFCK106rofd9+J/Hj+JkG
+2Q4m59oGZbBqsHVUSBocoT1XFU1CfBw/uxAiVdbZIycpnWY42DqESGTrDrem3Q8nfi5+Nlx6hnJE
+mqFtKV5QQiQusN+adj+G+DB7fxw/07iEQojUKYdxR04H/ZwXXM3WsRfkYZ0ofqbCVwuSbbB1DTnC
+814wua0bQiQEz2Trmkg5LDR64ghh6/J5L5jE1sVesAuRKHimiBrKYVmjJR2ccYTnNWNxWycjQEOI
+1LJmaNaMYOs+cYT3fPudxJ86QgmROH7uNaP3gjyk9ZkjXJz4OUc4hEidZky84LPYOp4IETlCCpGC
+cgQvWE694PPYujlHKLWCroo00YznsHWKS7mDI5ytFTyFrauGdLCL6zrlcJdqBfd8+53Ej21dF/EP
+6SAXCsjWSZTU1QpuCpEWjus46OcBzWMoPo8KBWTrrq4VLEj8XFwn6lxy8VmqSCeFAoLfPTLx4Bx2
+NNbWV8xr1gzN06dOQqRnyGFrnoxURGNt3ShseRIinRQKniGHdeNRWB6ir68JkZKNTcypcxHGJnhk
+wvHkjeKWEGnRsYkzQ8c0NsGTCrjYOAzR3xwiLTY2MQSjTT+poOomb3Tj82Tr7h6FXWBsItJojje6
+GSfd5A0bj8+vaOuyS2MTNOfrwDN7Sh5oU6NpPcWKtq5X53hswvE0GQ1XSESLcgwV89l0cIVx2E6d
+EW+QraMIug5zqBpWjjZyhM9h66J4g8NnmsJImRS6YQM+k3LUXCt4Bls3Z6B1mNhDfZAoZkOt2BE+
+i62bRtCUEJJXkXmX1TCF8Zls3WkELVMCqQ/WrBmWbV0V5reuG9dl4yWlQ2WU54tGk3I127rniOui
+IaAdzznpRoFkHqNjoiuesU22zvK0+PXjujD9eZjhSraOyrkyyXWYse2GuG6kzl/w7XcSP1folznm
+ikteILriGdt1NLvuwjSZJMTPD2qSS9GB4jzYutGM7RuGNBcgfj5Ioj7YLUBA/M9zZPocdlaj7/v2
+O4kfexWqy6iwasKC6JI1g2xdpM5i6z4p5i5FfL9uYtQNOVfxMBxCtKxOEde9fr0u8oM8hD3MZCRX
+CMPhQHSBv7NenfXqYxMzkd2Ol89361O6xVbj1SkX1DkJ8WPDcehWiNmKzQUT7Xklnr3OQCchfs5w
+kPOumWIvQWnGyzQ7jV53zslAdB4tAyLDYQPRDmYDyo1INIzDrj/npBufcGF8QgyH5rV4w8LShtdo
+dsvw2FysNOckwKdFjm6VphBteNWxrNFcf34dXaP1sN2giiy48vArilcdt7B1ipd2u/kpVElt3STi
+IKXl1Xi87p+IBp1Qjpw0mtX5YkKYiPjT+cRUSwLFgMs6epB8hHJYpFe20+gV5xKfEt0tbWt5calQ
+THBWDt1r9E1B0kK27nT4SpZ3E9EHsPjY7VSw47nE/lqvsijxJ6OxYY8F9DomusWNOI/3OAnrpAl+
+g1dZhPiTigGXOVRPdIM/ZVDnerRKc411E3IxxQQfTHTGWyNVTHTNu8nkrM6adxma6YOJbd1JbEcJ
+uPgV2gJHB6KrfmOW05X/6deIxUT3Wxbwpj1GBlaI6KrftYe2hZj2wdTrYU+JjjcNEYqpegCyC3hv
+2TBkul3BF377nfDYRFve0/DAO50w0bhpezJebmN4bkF927TAhYif27TA9UTL9mRl1wd5MPHeXU4W
+mhwoO1oQ0Q1vt1fw9mTHfnOkddf+Zx3F8u1jZ9ht+EVEe97VMOdNe9rRpj3p1/73REf714Xd4GKi
+ZcO9w8mOTjOGY4ViY7R1D0cXvOWXEE27McKazBqO1PucTInW/b5OTDHZOtpC0oZdAusQQ18ZcSxa
+bBwRTTt1BqJlZ1HDEXW/e92FrSESEj8Q3YSYY0y05n0NaU8nxf79fmv34GJjF3bERDfh7BEVNr3M
+g7VrpGK2wp5OEfx0/5CBaNXvye844piESSvYOroCxQQfE+3D7s/d3s/xDpKT2G6FBHzYkCrsSyxb
+5soRQFl/kICNTPSZpDBxAj6wmfZX4y3ganTFDHzuTi3qNoO7YmgzUQIeE03bP1dg8NG0Qrzssq17
+E331eOxCxI+3vyz7vflLPtGqAfF8lM6Oj2z4dHvDRMSfEM3b7wnRB5B8oLPD+nOWzMoTZqKgdLqh
+K+3CXvREjzczX3NgJesoJviUaAOia5Bc49+Y6ObUfa8SlPZs3slsnxmihxN19JToL/n2O+FThfYy
+KnQz0QmJn7d3pNCcw46JPt3m94u//U74eGOq2N5JLyx4i9dbOJ2A+LgebWQvdj7bg44dPDEdrPO3
+E/1w4k+3dZWNzeVAoM6zTEyHWJtVEvDRzoHdrvfdRuF8ug758HCC0ay9WyUo7SsdBK9DhcaEo88a
+Pvr6GB07OGuk7//2O+FR3UDKM9TjuiMR5OgXOXgpG3z4JYVONAI+rhu0oaYUzhGTU1T63PD6bHbh
+EfDTsn/OkX8TTnjkMu8xSsFvLDguNio0rRsUoTzTVTpAManNnVXShxN/WjeQYxxKZFiWT56QmtJQ
+nnmKoPR0SqaKtusvunp0GBOq49h/taC03/2+8+AyBm66yr+t8LfhgazDKdGrBaWjsQpy0MMe53KW
+w+lYxbq7aQ1ED5vjyB66/e73ha1xF2G7/k+JTkb83Ma/LhyZwYZahrLkjAF723yfBKNCM0R3FBPn
+7yB6MeJn1eOcbuwmO0J/4bffCZ8fNPykF64flA5E32zvVgpKg1sh+I2eZfWgtHfgFF184sMvKXTy
+oHQUKpGtO4mWbgmVtqD0MtFR+H8a+3eV0psHsxYgfpJofZZlydDG2kFpP3j/ST57koSvGJT2ldJp
+5aCW6v+lysGXffud8FGBZhdO5lXhcOwq1GjimvSzVUrFG2ZynPS4hHdT0TFppTQuOpq4Upr3R3kX
+txwTlKRSOi7959COmseFeGnhIZx/PNmg/cu+/U74lGg6AlKD2BIkl/hXThJuu63779jV5+HEj8+y
+Kdi31DAeDgpSgt8W5FWjwx/XnKqUxcP3LjqJ3MLiZSA2B9ke6kzHecfHr645VYmu0fz5Q398Olk8
+A157/NF8NracQZ7NH+uQmPjx6R98ZiKdOV3Afmjw2uGPQh/M4cHrcKD32cH7pMP3HdHdKdm55t3v
+M0OXhnLUfEB9NTqz8uKQ8sLEj4mWI9Rpj6cjeiL0mL0MuqHjcaHu4Nh1jp+bI1rOfSeH6EBla8g8
+HKEZBWhn/17cTvRCxA+xtJzHWsFMW/TDAxh8xJ8ayqKHw96l3Hf3OeQPIj6KpZnoEg==
+ ]]><![CDATA[
+ ZtqAuzVijQakl+A79UGydmsetTlc0cZEY6JzKMgBdw3yLfdBMhzxocIP+PY74eM5pSDaQHEb2A8P
+Dte4K5Bv0AdhOALRZ9x30qC0I1pGaAsZ0lJQiQIEVyDdQ6Nb8F+s3acxR5KgdDjglIjOYaaFYs5h
+S/zguBuS4biK6ATEj4nWgWgLnShx59QH2UUGa3fjuXkLET9HdMZEF7hz/KRAcT5MVbrCGS5O/Dmi
+fU90xkTr3qkYsXUrrBXq4VOi64hoP0d0R/FqQSlTTPAx0Qbk5rg9fsrgV2aJ/tJvvxMeszkc6OxB
+4nFCtL9EdGLiT4juKCZb5zqi4VeE6OYzohMRPyZa9WwWinl/2juIXpj4oYLXEU0RngbRfDgFnAq5
+by8J+M1EL0T8UA+TjBaxNIIlDZNBR1Bbdt9ViO4qmW9zB9EPJn5KdIlgSbGCOPytmGgXQtI+8l/J
+1gWKZUhLiKZUyzLRGfMafAaFDZ64cRy9elAqFIedRojoAp7kCF7TpaDRFHNISDpD9ArER0Rz9G+k
+5FUxr2H/QF/LfuVTohMSr+KMlr2hhy4c0BMJDuqOUI6KY6XjKGNZMygd0vDO4pF21KC0xd3gp1Jc
+pOaQ9AaiFyV+IFr6oWFe1+A23RVrhiKKpWLm7k3BHzykpdkhsvGAVmsYioLJrkFygSYYENj0QfRa
+m3WM4OOu2LKCeCab7hxN0KzOZZSurBmUjoa0Oq3OmNce5Bb444NyzBD95d9+J1zFKs2GmnltmGyP
+vy2aQMrR9cH1NuuYEt1pBzN6x3syW74N+Hxkjf6U6ITEx0RXzGjSD4ObiQfNrBzSDa8iOgHxRLQO
+Kl0Sr2FAMiVXxkyuZQQ8v9faLVQ9EK3ueA2yiXD6Gz8fgmZEh5yuNyp0SjQpCPFayG75FpKJyYM6
+rzcqFMEHooXXpCKHcNe4y8BnO7V26xvqjtcFc7vmu2KS83mSH/Htd8JHjJbSR8GEl0xwwarxCdH3
+f/vd8LF+ELNzCY1yJvhqku/79jvhKlg9IVsIl5tHQjuSn8PWzZFNhAvpjn8yQu8zxHWnlxqRPb47
+Fq8b183CB7Knt5oy+VmIV/19Su66OeyncDV7p/r2L4LfRO7Dv32Db/ANvsEfB8drv2p//HPzzc/f
+7L7643/Bf6vfu6/x5F+/+fvP3/20++q/7/5jl+3/ZfdVtv8L/aX2Gd9//MfuK7X/47/uvjJafyBu
+1XsEKR9Fkef7v+Khch++1HZvSv+R5T7fm6z8MNbhh8J9ZPhFZj4yX5q9yfWHLQqz/3b3lcbbeWnK
+vXHlR2mc2+tSfVjnHZ5kH5mz+V4DX2YK7xj1oZwTYEG/LdUe+feHRTy617nCa7nG+8WH8lrttS8/
+aBo1flAfmSkUA73/sNoWe23MR6kcv5WVptirnF53lp9YZz2eZB/WgBbGlR9Oe7vHR+MDipxf88j1
+9qpE2xWaqPG+yj2+UKkP7Z1nIH2IRxO1zsEA7YbP19Z9aKTdAOoPpYlQsLYACYyzH7R2BO0B9fiO
+PbVZ50RgiQ8o6HvAGl+Aa0bloF0LEBzMSjDOGGJ8gaaW+GaVgfUObXb4QhJGriBD44sPk+clAY0C
+T30OURX6o8g9PhXSycBJU1rQV0IEmphWlJA9KEWQx7jJwx/kodf80HwUHnKhJ9oXHk/sB6nNVJG+
+ndMufNj/hkr+K2njP+MviNLv/+9eZfv/hsebRm4auYJG/n33h125//Vv9n/8H7uv/rBTUEjL+giN
+/PPuK9/96ldfzyonHt+nnr/6+m4FBfReFQX0TiUl5J1qCuidikrIO1WV+HunspJM71NXUpIZhZXH
+96jsnNbxB/64+9XX/1T99HPz/bc/f/+3H7/56R/739FzPPvpm/Dzr6vf76v/+PlvewkJvv9/3/1m
+/0//9vNP3//4l/1/ohf+8/7X1Z//9qfvvq5+X379L3/6+3c//Z/v/vz1f/3uH1/LW3//TXiP/qKo
+4dfVj3/7cZ9bJX1CwgvopS4lxpg17SHYAEtLp9AONMjl4Olf5SHrqNXZR2EgZnqioB8WDC89CQYP
+CnAMT9B+q42YE/OhDD8EF1Ve4DVw0eO3Fu9b6BqeoFd5V/ATR50p2BPuivSwLHK8pgt8fkEfpaEc
+0Eh+okCLxWdC3k6ABZSfgTm+mjq3hiaoghqE10A8nqgPk+GLrCadLgWoCnRVDzlr/4FeTFpqoLdQ
+YEu6Uhpqo/ooQCs/YW3/do5hEPyfIgMlXIV2KKgjMZBmagpXYQsMWmLBgixjXpgPOgOF+VVmmp7A
+sHhutLOmI9QYUlHAfYZ+btAMIRRvKfR6PPEfvuN7bozYdvRpTQqKj8xzI11DFdwcEFLwE7TFowdS
+A1U+fKF2ZcEMRK8WMkvhjP7wXvv9tH3fzjUanKn/RLond/3vrKx/+PHHb/763Z/3f/npmz9//92P
+P++V+c3+t9kHOKvpX5opuv+tIw7AhH0oshUSJcvfNXQ6/6A11vvfluj+YEn/b3hObIQ1KLipKkfv
+rP8qUU5dh+447aKnD0bdEIB/+/kfP3z39fDWaS/8Sx/AkxTAK2ZETq34qzz06D78EBZGifFSZc66
+Wyqr2FB6ZUmbC/FZQR4KBpMfQmIkj+4JWpejkw84CAgOSnx0//EkNa38PiJBfcCflfsppd/OkR8i
+xPO2RMMe+8w47mLeQX5/pXAGUjHesHYZMhE6Rwsyk4tYFBRd52i6z6XFZaFCHJSDclOKtSEdJmCZ
+F9z1de4te5scnYD7QFlaCfRARVbmmrtKUYAKXVgi0/MT4+GZdeGp6Zaf5KWXL5w8/IEeFmg9kwZ+
+eDBVl2TDlNClXCFPfOmCwBBpSDSGXmXJdLGk0Vx6Ql6KGJFlEgwUcDmhi4m84Lk/bKnygYfkQE3G
+r8EqwOjsp3wOzR4/ZIv0H7BJsNGh40h6GdsoTkyP3//w3e/Cz/V3f/n+xy5NRXgFEOT8P/u+Z8no
+oSv9rz1UTzl6/Md/n3+B/h9eCv+gT+INtI5+BUbvOVPmr6Rc+Xf7orS08vKPv8fz4xdcG3yDb/AN
+vsGvgT+8IpqS+A2+EPwOuX+h2twNf3jbN/jd8JRyTwZPw7oN/kjBRbMgxnMMbr4vwa+4PiX+GTj/
+MvB71OYOucf3/Bwnnkt25lf3aN2N1y9OcE8Fv4HRV6rNOU3QpzP7djzt9u77ktZd1r1busxynH8x
++PUqdK3aTGVO81d5rbed3O7ae8ezdk/v6QfOT0Gd2LobHWWvdc8juOeBX8m6m5XnRG1iufvozs/c
+NKOeF64WF+8pMPrwU607p2lnVGvoMpuxuuKaV5sz5mhGhU68zDm1idQj3LIEoxpugsuP9eQ+nLmj
+dwjerUUZ7mGhRzGjb5GCDcTH2nW1ydqM1fFTv3bGFp3GNrEKTZUnVpte7qIMDd9tdB9l+drkjq4d
+LyEcrljUx+juFpQ1vKis171BaYWwM9p1zmRtxurCdVmRBtZNzdFUhSbKM6s2I/XgnQt4nWm3PtYN
+945X2Q93fuaO3xEof9SOV93yGla+RfViTRPazqjW4CIvusLNWMk12/YZo3ROkSIrtONFuyUv2Bwc
+U6w8ItBYYUQTCrp3vC0G3TXfh+huorudvwkevyZA+ShZ4c/fEvRNaBB6mDYifqpd0jWmJut2Y/Vw
+wT0h/LKhnlGnPjSamiPhf6xCcollECGeqI1InJUhyEYELJfh2/Lthhtw3g9p7nZh0yE+U5ZvucQs
+HeketE5oEB0T3RZSRSnEkNZhAXNvsoa2n9GrT43VM8h9IfhlRTr1cVOjFCsS8z9wk+UyOCkxDrHy
+iNqIxEUTCr5Lvmn7S4ptePPOA+872uh2ch+jO37O7w/wiu8i7IzneXc8ukXHxLaJERPV6l2kuEUx
+WRO9mvGAJ2ngxWtduT8cftJlzpqmKxSJ4LEuiR8RLyZiYrMQDIUYkBO1YTUIAb0oGR9dYRzfnu88
+uovhBjz8GL8gEIHLJdGT6Bt/ryjYjjfZo1u0SwyX6L+YrKlSRR5wPrK6pWaVWO7LwS+bpks+Trrn
+1CiJIkkfZ1sUrFDvpESL2HoE5RG1ER0o+a75bvhu+abzMon4UVFSTe64jMSQ8CH8gaR18vmiabJ3
+uFg20a6cb9blYLLEG/bpwEW9ulxbuGCs0st9IfiFLvOJaRKbL2GSZPTS+fvQKNYl8S8sspEKiUk5
+8M3SF60gtZHL8Z3zXfBdTu6K7+gJweVlAfpwEBJdsqWSqKgoraiWBFm9ixS3GOvV1FhJZCUdKvJ9
+l2pWF6+Ucn84fFCbq03T1C4NPk4uCZPYu40UiQMYUbcgvt5ciBaJeoncRSlqvhu+W76PdId6KEsV
+cKcmd1zzFqB8SB2OuaObtZS0TrRLLJjotpgscYixUokHPImsREekT10dU13gfAK5Lwc/209ma5XT
+qEmsvZgmEYx0YYm0JdblGJjURnRJPBqbo+CeRIXEwrDcgy6Id2TBk9rI5aM7P3PLb+Xq4RJCSSFK
+dEy0S8yXZIFiskSpToyVOEGJrCSbkLBQdvmU+tUZ3zeUea+OqZaW+0LwaUPmx+OED2c8XXipjy5i
+0yRSkBhbJMpGaaRIIla2PCR30SK5RD0Kvku+K77r+Zvg8qO8JhCBy0fJJYUE/sZYqchYiV6J8xXN
+l+hdIitBilJEMVVfnw8x1bRadXm85oWM1VUGahI4DbXK2NNJh2WnENJ/Nk0hWBLpsAUYQiPxa2wu
+RooUq5BoyGG4SW2aM3f02oxqsVIRXLxdbKzEPMovRPgV3+yEQ7jOSQQZq2lMJT0krlZNYqrBWN1l
+ph4r94Xgl9VpaHusUdOcToxRrE7cz4nzEn6LAMSPSLAkghMhSlAk9ktcFasTyT02R7GqXKFIp8Yq
+NlPy9WfMlNgoctASU0lHEPcnVaxzvo9tmfi+YVDpxphq1lg9XO4LwS9Y2rOZXaxObN7Jx53RqGvU
+iYzV1ECd83STe9C62BBNPZ0oqnyxqC7Llr5dYnXRbdEotkohmpLaQmympCjalz5EL6S8JsmIxFRX
+1BNOjdXVZuoL5b4c/LKBOi06xRoV+7upOokOsYMQZaT+Lj2de72oWxBfFEGFBE0kLtLni9TGT+7p
+ZaNbPoQFP6SB4nnEKJ1J+kIQJZWrPgmdlBRm6gmTmEr4s+unLkzc3zW+7wnV5tw1S/xIo85EUKOA
+PCoUzAfkUreUS/o79/1QIhCl6o3Vge+oPhBXCeIno5vf721dUBW55QPr6JawLS5P9dUDIWlaoRLr
+Kr8WfxUXP/kaRgOjksJMPeFMiP4ag8ifGKgz+d2unxh5dcVAnIVIZKhRi7ESpPwurl7GNczoPq1V
+xhVLuWM7FV/8FYPaCH2T0npQpKioHtSJbRQRL2ZKKlSR+xv5vrieEPm+gXU3mqmnUptz12V1mq+Q
+T4daZAqBmKSontlHF4HbsV7JJU5EVEuS9Gh4pS91nr3byd0M945PnZ6/689vgsuPkg==
+ ]]><![CDATA[
+ 6AmR4rJFHaWSEPs+Uc9+6kLs/uLULw7Rz1QSfqHjMqc+7pyZujjgMuQy8ZiLdE8ZcBG8mAPhvCRK
+rFp9f58Z+b1885sEF4id3Oeu6J0BfnGseTTQHA0uU5eZjv3JvJhp6jcJ0YeR0BvN1Lpq8yn8Gq83
+JCPxJMzLI8LR1ALqsNPZBcJ/MVwikXheSnST4CYPw8uHcBLt6V0Nd1+7mPmWeEqDCF6uSM2GbCKe
+tBCbKfF9MswdmSmxUdT22ExdEU1dKHU+j9qcu2JqT43VuYG8K6esxDPopnOf5BOjKXMk98msudFt
+J7cZboKfu6LXAlAGFiOV3vUTpcQpn9GumTkwXQ77iZmKo6nZQeSrx2WeQW0uwM8aqDNKNbT98uRM
+8YByicnq00BJgkTHLs/pnUzc3XVTF0bzeK+5e7h8mhhMEbPoWGww4+k0kaMcXOR0VpVYvNhMTaro
+p4PI09rUdaXOZ1Cby9dUj+aN1XT2+JkFCLt+pZIEovEqlXOLDqJ1BLuTpQfx4oL4npkC1QkufhB/
+vpiLqcGMfPGun6YlUyOmc/ziIC32er2tmyZ98u0X57pcWep8HrW5AL/VTJ0aq8mqhNHylnhhQrS2
+heDn1kOdueMFUD18tEolWmY1+vB4BU2vdbE7lnpsNP0vVqqRH2TVGrKJ6bRP8acXg/Ohx91VQ3gS
+tbl8ndOm+VLnuaUuk2V3Q+HlzPq7y/fA+fiurrhP4OcW2oj5iueURrWOE2MV9CqO4SXwidUpmudJ
+Sntu+PjLSp3Pozafwm8wVrORVaxdUx07s5yc4NMlw+dWnV+An1miPlLjyQKcIRE7M1c5lDtEYSRY
+ihZBDEnodOZwlO6d83oD8VcPHC8h94Xgl7Vp3lhNTVZsuCIFG0YDb9zpYkiFzu1xMb0ni9wHwcWO
+OF7YdW4CfD9xQvRK4vbD5Jbnok4S50dBFCntZELC2YHj66agP4/afAr/xExdNFmnBfbLmja5T23d
+ufvMB87Dp9WzM0o1GKs4soprs6Iw4gejYtcwUSrWqHh+y+UBvt7SXj0FfQm5J4B/bqwuate5+3Ot
+m9r8Wfj1pjJSqs+N1Tml6kte8bLB+J4u8ZsswtqdrJc5k+6d83q/oOrBBfgNJmtW667WtGvV5g6l
+jU3WHcYqjtglwZP4arpOuXeR8aJRiaOu9nrzpc4rzNRj5Z4M/rmxukPrHg4/Z7gipbpkrOI0MK5c
+RaNI8+V9eSJ1AwnLz3i9fnDhVjPVtz2x3FPCV1Oby9cFD3susopL/axUpzWriV6NhnXizRP4e4b6
+fLyg75pZnSfVgxvNVBq5rwV/oNqc+/B7jNVsZDUdQorHJcV5xZEVK8euW7kw1ajRLhxTr8dftOsX
+fVw2U2e48bRyfwH4ZaWaj6yu2eujL7DHWzSc2yIm3t0l2nljGMoUxzcdi7lYOZ8tdT4P518bfoOx
+mijVUN6/JqaaTJ/Y9TMfov2CRl4vXssQB+f9SOgVM1vOKdXqnH9h+D3G6kxMFVQwmkC466dlTicw
+ROoUFCHeIKiHX7OU70xwftJlHs66DX4B/omxuuj7htHAaZ0qKqrPqFNvrGIzJS/ftDXQFUPGy7Fu
+g5+7Lvu+3cmC1qvN1BAaTecNxtfF4HzXT5y4cT6nXK9R6vxlwU84f6uZGqYuTFdkROX0c2aqTwMv
+V6Vumyh1Y3D+CxXck8Mvm6mh7DM1U3HSd2YouV/wMqNRUzM1Dc6/bKLU0qzb4NNr1k1cZaYmBc9d
+vx/1tIYw3WA2Vqd+X+J4+d6kKnXW623Vg+eDX2OmhgG16UZYU683LXX2AfmZPYc/8Xp99eDi8r1p
+O5Zm3QafXlMpnA5tnAvOp16vnzwwHZGZmqkzud4wBn3FhPOpOm3Vg9XhMwbqstc72bo/TvfiOOqc
+15utHlzeWPjeZVZLs26Dn7vOqdNpqfNMundugK8fBZ4Zi7miZt5nkfeF5b8Izr8q/Ko4KvZ6Jwta
+z03Gi71erFSzRzacSfS2uQe/OPg1Xm++ehBvihV7PUnWouC8LzrFUxvC+EtcLT+jTsNg4tXrQGN1
+elrOvzC8dxNXxVFx9SDyert+7764yCnR1PQ8I3kSnfcxBORXG6gLw3nXGKiHsG6DP6B6MHF8M0XO
+eFXyyfr3ePl8PPIST2L5suG8c+r0hJx/SfhUFtdWDy7M6ozPZRO9qiZ3fJJadMrV7mQy8O0B+a0G
+6m7WbfBZ+FwI9bnXG2KbM4dtTQ/7i+9dP5c4OpVvVCG/WIDaAvInh59Tp9PqwTUrZQTQG6vpNh3x
+/h7xAXyTg9KGCvnVqxVidfpFcP5V4feZqWGi1HRte6RXQW3iW573Pm5qmr7sNKuUrNvg0+sTdeoF
+NzVTF08sjXd92XVbQgWjMj04+9wZjreszjunTk/L+ReGiyzmqwfnzFTs+06M1Zmdi86dvT74uOkR
+xld7ui0gfyr4NWbqtNR5Rq8ub1W062c6xWesnzsLe6JOQ1x3tYFamnUbfHpd6O8zZuqcsZrdDquc
+3NOtiiaKdOUo8Dl1+gVx/lXhl8V0TqnmjdXljbCi50Ol9JxRuq7odL2BWoJ1G/zcdU6brjVWsWqd
+rESebnMVv3Zue6LrfNxldfpFcP5V4deI7JKxmmrXNfcJ/EYfd6Lza7Fug0+vmwQ3kvjUZJ25T9Xm
+nAp9lsedu9Zi3QafXjcJbnRNNOF0ZOT6+45vn1y/OM6/KvwOwV2jXefum0Kja7+dr/Ss2+DT6w7B
+faHcF4KnZ90Gn4Unlvty8PSs2+DTK73cF4KnZ90Gn17p5b4cPDHrNvgFeEq5LwRfi3UbfHqllPtC
+8LVYt8Fn4cnkvhx8LdZt8OmVUu4Lwddi3QafXinlvhx8FdZt8FcNyOVKz7oNPr3Sy30heHrWbfBZ
+eGK5LwdPz7oNPr3Sy30heHrWbfDplV7uy8ETs26DbwH5Y1m3wadXerkvBE/Pug0+C08s9+Xg6Vm3
+wadXerkvBE/Pug0+vdLLfWl4MtZt8Avw9HJfCJ6edRt8eqWX+3LwxKzb4LPw9HJfCJ6edRt8eqWX
++0Lw9Kzb4LPwxHJfDp6edRt8eqWX+0Lw9Kzb4NMrvdyXgydm3Qa/AE8p90Xh6Vm3wadXerkvBE/P
+ug0+C08s9+Xg6Vm3wadXerkvBE/Pug0+vdLLfTl4YtZt8NeuHqzFug0+vVLKfSH4Wqzb4LPwZHJf
+Gp6edRt8eqWX+0Lw9Kzb4LPwxHJfDp6edRv83JVS7gvB12LdBp9eKeW+HHwV1m3wVx3OW4t1G3x6
+pZT7ovD0rNvgs/DEcl8Onp51G/zclVLuC8HXYt0Gn4Unk/vS8PSs2+DTK73cF4KnZ90Gn17p5b4c
+PDHrNvgsPL3cF4WnZN0Gn15ryX0heErWbfBZ+CpyXw6eknUb/NyVXu4LwdOzboNPr/RyXxqejHUb
+/FWH8+IrJes2+PRaS+7LwZOxboPPwteS+0LwlKzb4NNrLbkvCk/Dug0+vdaV+3LwBKzb4O8QkMuV
+hnUbfHqtK/fl4AlYt8Fn4evKfSF4GtZt8Om1rtwXgqdh3QafXuvKfTl4AtZt8AvwteS+EDwl6zb4
+9FpL7svBk7Fug8/C15L7w+HpWbfBp1d6uS8ET8+6DX4Bnkzuy8HXYt0Gn14p5b4QfC3WbfAL8ARy
+fzj8SVi3wafXonJfDv4MrNvg567l5P5w+MPbvsHf01gt3fYNvhB8XbWZhSdr+wZ/bWO1Vts3+NLw
+RdXmsgqt3vYNngD+hWozVZ5fUNs3+Abf4Bt8g2/wJ4Ff422fKofd4BcuNb4JPvx38W+/C67O3WPi
+p/czEq+7m+A6M7N399KFpiRSm1OyA4UEN5kNt5u96Tdxc6KGJNT5mHwjNBOcCPR853wX4S77W/5P
+v/OhOaEpndYlIH7cgIh4H4gmQivcNe4D3w3utr/pfwf+bcVNygnuQ2v0dd3kS4gfmsANILgN5BdM
+ekfwEe/QpXEb3Ba345t+MniqFH/7kVtErRHBmF63FiK+a4DqOqw0gMiviXQm3DC5Oe5ClapSNe6D
+anC3fOMnwPGoxq9z5QFQ3JSaGxLL4+HE9/BBj6QBxH0i3zDpJWhr1BEvKK210VY77XWuC13qEnD6
+B3eBRw6/VmjVASAP0WRoSIUP9Oea8bD+Lk0QGeQsgRbctyC/Ug1INyC50JU+6EYf0V+V0Ya0zljj
+jDc53x4/G6P1Ea+VaIxGUypqCPSQ5HHSjIcbq64JIoMGX2OhNgeQb0F8DcI1KCxMZQ6G1MYc0e+1
+NdZaZz3unP+2eJKZBq959I8D5KIhwEIZKNaha4Yo7d3m6lzbRQ7SBJKBBvtqNMCB90cwuzQN+i0Z
+KxBb2YNtYUKVM84657zLXcF3jp8tunhjS7TmCJhBQzwIrqCT/O2HkUAeQvy4CS40wYB1DRSohNp4
+c7Bk521hG5DtQGrtWngLDcY7n/vCl77yNd8V/uehU0dXOWtbm6MhhaFvhzQVehVagmZI97haFtdG
+F9KdcyiSNKGFDA6GOI82GFs7DeJbb0B07VtYKJO7PM/LvMoPeZO34W7yGs8cTNPBO9cC7jzEYk2N
+jlJBs9AM6FWNZrjPTNXtDlpUqURf0OjK9O1oRQsxHG0B/lfgewmH50B0W6jCFnlRFnVxKNriCBeo
+2DQpOLgjnhWAFwZtyv3Re3dwGiJpoFnUjEpZNKNim3umGff090EONdn5DDI/oDc3Jkc3qJ2H6lS5
+zqtCF0XRgFRb5mVVHsqmPMJ/6wq9uLJ0A44fVdni1w7tKfJj7iG6DLpVmhbNKEF1iV7e9j0jasSX
+GCslsU0nCgO2Kl2jz2b24HKoUJuXhSnq0pRl2YJKX5VVXTXVEQEGun9N1qa2uB3+mFpVR/zaw1cX
+aAiE51uvnbMF7JrSuTpC1iruGeKk7r6k7cQMsq4QBaIKjz4N84i+UEIKxh/zQ5GD/zV4XlYtiPZ1
+UVf1oSZLWx8RQsGtHdCFcGv8lNUNfu3QlLw8lrYo8wPUSkEauYGt0w42l3sGffugVXcSH4mC9akA
+OUoVLAcPH6bc0TdQowIK1FYF+O7rGjQT5w/ugMYdykN1qA90NeE+4P8lfqvqurbVodKl52a0MFkw
+0ibXB+px1DkGrbrJacxrXdcIUaYa/eFoasgB+gwHYCCFBk3QdUXEZyCwBKkt4kHIDDf6bGOj2zTq
+0KIprj7WObSOmlFAqYjzDh4GPcFy5yiCVl1hqM4TP24E9YgWbhrOCc75CK9w8HVeF1VJ1gb99liX
+UJYcDTiCdPy+8eHOT26HhmR4L4dqoRkEV6UpAlcsOf1MeyihC4bqou+73k1Qt67QI6CwOjcGduno
+qOyDXt3CJNVVDlEcoPUlZKBGTRjfOf/NzSDB1eBEiw5SwWRlhcrhvp2xiF/gyTUMlUZweEalbjNW
+40a0uuC4DnF3hk5xjBpRo+MWLAkV1IjUiWLwjJVLiYIBHn6ZoZOUB4PuoSpfwrOgcw==
+ ]]><![CDATA[
+ HFzDKmU0fCrMSAZzMure96ZCoRGcy/TCyBAgNf7AGpXDsjbo1w2a4UN3prvCz3BvUBzcxHnq6yX3
+9a6fl33ngIdhlUKsBXtb6VYb7t4iiz4svO/qU6GhWzjY2AaGv/Rwu+jbGWTh0Axbl6D9eAjZKahr
+arI2NV0V/32oW7a6hg0Ysd7ixarWVYEGtzmEyxmrpu4Np+HZw7I4TpzfdVecTcQGqkLw15gSEaqB
+uyYr69GMslJVDqN5ZA+Hm4hXyKeP4PIB/o3uAztBjdbmaJA0R6GtNfqFGKo8LzwiXkuZlKkjcRS3
+uYxz2cTgKjJEsAYmqmaXfUQzDBRFl2BmeWRrA9en8XcGf9bgYY1IA83kcKTFc9c7xpKlU+GnDN4P
+sqDISvJuxeLgrtGbqU9t7fku0wWBeejdXfCkYYYKRH+H3OakNoifcgR+DYd9FO616BE1gkF4Ar6L
+okJrM7jHEpEVrBJcpK3JVjsWXFWh3YgfSUshDuoaTTBTh8uyuKa/jyPZAtl0jmyiRDOIeOQRDbKH
+GkG4A601B+Ck8mAuEYQ2IqjAHwrQKdI1aM6x9HCTHBZWrGMawqgrtA+WoIUPb+2RzVTOgUjsvm8k
+Pm5El1Mc0bkrHXKZI3LnI2hs0ZAKNtfAvFAiRHfhydhYPFNSVuNUKefGkrHKjxDOEUp4REBYVy1u
+GAhonEKojpwKYaE3lPyS++46d1Co+wLyPkHlLJJDcrQE3gmpAGLtDLl0haaoPiWlZBR9HwlTBpa2
+dMO1aBEctdfDVeZFBhNtYJUNzAKcHhrRQqE4EOGwt4EGWaRLoXNLpfReWxsVnUirDlwrKOH84JaQ
+IGlIpDYtfLkUB+imsgAIgE60hjos/QOxKfyqhMv3SAZzpCISBpdIPiy6iUEjPPxeO+7cZGklDJnR
+qc+vad1GqjYH6JVB8F+jg0BxYY7ANDRGijSeCzRW6jawk+DekW78ZPArEl2OhpSckFToxUfkUg1V
+QWHOctgGzQrlufhgSoQhikPC+jojNSU+EseoGaPiE5qiYbSkYlZwcMI/cDyEX5hw0ysl62DJqaFD
+h2lgtwzCF8c2uIYk2NJa+IwSOnVgnXKDTn2uUJ/HtNMyoEZTPDhVqVpqlU1/H7igiaAi3BWeUHtz
+6KCD/pXovRmMdCG+BnDYhBzd4gi7UCFYPAb/PTiMCwp1y8DKTEFWIisVFZJtKCIbLi93l7S3Qmey
+yK4MwpeCmkEhMbVEo59nXPFs4S6aXEEryUidKtRJBHJveV/GJpzU57vqeN2X9Ic7BFLh7kSHhAHy
+oKgytKTTKw3n2HBdJM+P6Bi5K4OR6hSqHBTqy6oHIX/vhyrCEMswvDIMq3RDK3k/jgHRdZWTClKq
+0IwWlsnDj1DZQbHfr/B3BkdTITiHSeOAsFcoqV3cHdWOjdVk0OjMMFc3BBaNy3RmuoJAuupJAQeT
+wVgpRIEF/mTo2i1XEUihEIFQ20vOWyXJeNC4zGTUcX6wUbzM8IILhV0KxWoYrQN8tIHNrRHIaiQp
+imMnhSBFwdKSrWOdUtCpAzyPBCFXe71FRoGHEjtJg8pADi6kgmcwcOU13H2DZpiC4AjBDCztATql
+4f85yQDlV0W193aZC8THL8S+X8HTHHURovsC8RXF84gkqSaqYKK8P8Q69XlUm2wEfGhGy5mWJpUi
+tbEIwBr4CgNdOqJbtGhORjoFhWqhUP68QiUcRI6b4aSyyKFRKC42MFRSH4WjQCOQdLFCNez1POKb
+DKIbRbWJiT9phgSlkjNqLvNSDydZtJ0scB+gUA0UynGpU1JWquYUYuvujmof1PbTnJEqKRpO44DQ
+kKxtgR5xhEKVUCgPr3cwR4OQhQQnmdJdUe1Co4EkC8oZuyKEDxGVgxRIFjVcdyXjMlKyrUOh86ao
+djGtG2RRs7U96hKeT8NlHNhlcOcmY9Ugz20RSXmk3jWient9GSRBlxmKvU2oamXcuWFrKSw8sq2V
+/q0RSVW2+Tz1Tkb80AgVzBS5jJJsLYWFpFOGdcqTkUIzoF3IWY/ITjqFGhupNYiPmzGqlHrE6YNO
+kZGqCyo3txxJdQrVGanO661pabkRXf7uIp2SSqmEhCU6hmKFUjBSVTBSvdd7Dksb9+9Op8hI5TBS
+lGXkHEuRQpGREq/neNIIRVIh3bu5EQsILh5C6IyUQRjf+ooKjNwrJIwieD+MoU5qUusQHzdCFGoY
+kSKvV3mfKyhUK5aWOsZx1DEkHFwwpr0B3hkpiUDI67UIzilt1TImlQfvPYSD0yLImhMju2YMXi9H
+9kSVkz6SIp2qeNCvCL27iXp3l3h/UfXgi4iPG8Fej+BtNCbVsE5loVZNjchdbVsk3jQq1vm8vhHP
+YmmLaLxZxv01jJTlOS85N2LI9Fqub5ZSPbi/TruEpa3DyP/BFNY5zaG5gvPOERRmo0ZwMnK3nU1g
+acl1W6tsC4VykAXNQUK6hD5RWyJesqTIWdwQlie1tOS6S57OUyIaRODH1UIYqJqFMaR6VzZiJUtL
+g5zKUVgIcdB8FhgruIoKffuGRqxqabnU6cMAofIFT8XDT3AVDQyU+6wRzxLTFqHQaV3jLRqAsBAh
+eW4PlxrxLJZ2GP3PTI38gqbqKagUTYdsnLM10iPHHTtqxO4Rs7weAJ92jAaW1kChPGShaSjTHZy1
+FZy2zDzIZUrqnaNhDyV+uMbuAh2DS86VMzxmmfG0VGNLagSNSYV23BbNLkb8aSOqUD0oENM2yC8y
+V0AGLZSJghNkqjQFUmZ53diIhNWDrhzluVc4Gi8n4iu0pHa5UwjIb2xE0urBeGKP1a1UDwxSDONK
+NKFCI7LQiOrzMtQKxmro2jyo1M3tocm4FSKpHE2AF+dGHLkRKkwanDRiRUsbahdxnVbzNNAMIYgC
++WVoBPVtp2s0onyi0seoTjtMUCp5cM/xzO6sb4SyJVyF76cMHoYi851rFx7c9tOwnOyshePO+0bk
+sE4VnHauG01TF0aFzSTLrD6FjxuRh6liLU+noEZUsLbG1hKQF7rt57HMZKrJiY+bEYWCXMUxwVkg
+xyZLW6MtFhGUMSXP0L5hTDJZlzltBMWBZKy4HUiz4SwqRFCtdabmCcHDmMUXTVF7CPHjRnhx21zu
+k3b0jWjwxyM18mHK/4XZHyuOiGkZvh+y1SJMolAh/DjgX3LbDRc+umg2ctvPYGlPU26JoaQRNAMH
+MRQHUMfgtvvYY/dFk4Ef2/bzjShpAVZYZFWzsyCPR25i3nOvQHzciCEQbHlckvqENAJdAArlrCwx
+o9UXJ0P1VzdiUa0bAsFucJVW0UgjjmgERRfQKQ8TZdhZmNs8XpIuE0ezrl8KhEYQ8dQOGFb07wIm
+yvFyHvJ4Z2qzyYkfGqHG2TapjSTcWWiERscoEQr64CwueryVSh+hEQSnkbA6TMhxnOQdOeHO0Ls1
+21kdBlWPp41Yv/ShTorMVE6ziKAKnhJNVYOaE+62WzsyeLxnL320cNr/n71v65XcONJ8F1D/oV4E
+yMCqTDJvpPeJlyqPsPAMoFljBSwWjbbU9giwJUBu7Yz31+8XEUkyi7diVRfJ6mNmQupzeBhVGRlf
+XDOZpGdFtS99FPJMVVv6eKBq8PTB102i2TA5Kv0TA8QEbT9PuAhFlTQKTsRfXOWq2w3+momw3E8Z
+XoxcW4pQ0GjZ9eF0haC8dhZ3ebyVSh9X1VkuQhX0xAMVmYUPqAichYazqPrL9BsO/pqJdnU4lS3o
+Up0t4fKECbKzrbOY9HiblD6a2OPAW9Tq8CM1iSmECUtuI/bOok2POhsNNi19+C1q4XOX5PEcl5gj
+trO1s5DMot2Bw0y8QkAeeu52RRIezzsL8Xi1s0haZyHJyMN7mRcofQzXyZ2vkwsTvk7OaeCjJeYV
+Sh9lx84aVu2EmeADK/yiRa+wud3gQzau7WymtLroTIr9ZGlj4QNMxD5Dypqnobff9REy0eZ4bJ+k
+9BHzYRWU5hWSIXmPd9NZbFL6aOwTYb6s41lEUXTqxAV5BTFRNenRqLPYtPShpNCaBs/ApvTAInwe
+7eWqmdBjtbRXsLTXJqo9tiLj009KsCG1NK3yoJb2Qrs+pI0UNrk6m/PCS10Q5FraIdj18UlP5z1l
+8NdMXK+C5UiQKgAq5YUXYoJmHp47acppdzqLhVF3vQomWR5pBa0eWVmLTGFlqbBZ+SNZ7tiMvZLK
+XO8sl9Ujo3i/TQpMaX7mlZhwfimvt4C04eBbJsLdzPxYpSxblLC0FYvDMhMpr4KV/hiTkR3l2xeZ
+6zXuMz8anvMRTfIMsiImEHvQApKUoToVnNewtLV2N8vDSLojBhSd7kVMZIg9yOOZ5hAT+3pF5vDc
+B1EMGCUGFJhAhpcj9iBnwWsWh+DEiQeYWKjIHC6ryrkPCbRCM6AUM1HQAV5kaZPewTivUmS+9nmt
+VuQmIkAd+IGXiu2sRjxbnygz89iMFS1t6PMoEkw1JaH8zL0oxjnQbomiXml/Xc/nkaWVQzgiZoJM
+FJ3VVyCebRSje1TDZoO/ZoIfo25PdSl50wTtNzDs80gW1h8JRyXB3lOS21vabkTrfTci2na/Qdzs
+NwjdxQtZ2sGwnJmQhdWyG9H2Le32Me1Q5aDdYUfJ6pl32OWayAc24rxCTNsvMwcVWinPkqW9BCth
+Yar3GjuZ+3sdpYZTGceDRyRI+2c1V/2pGqXm7nZceTmv9Xhp/cwI7WQ+m4wOurQlesbbsS9cLb+x
+PrzRcp5nghXWC6M+JMDY0kUutmebAlJ0bmV5VWh+lZjW72Qmz908wMNP70SmtM5e+DmFxFaAVMaP
+enYOMHkVSxtuw2mZoAfrU35iJMV/kaVdIPWzw83GideJabtM5MET6QkfiJU65Q9CJX33j6S3inGH
+u1hwOe96CSnnUzsjLwnHJ33xo8SlReZKijFnGWmlwYdMqKj/7E5BD4OBHGjKIAzNTDhY2plP5q0y
++C4TWfNEWyKlD3ryVsFAKbBhod2FjUUSjYka3f2xQZE5WD8ihS38oxYpgo8zxk8HOscwUA5BiNKO
+H6k3w5s2Nyx9xG2ROVyqp/0G9OyOszm6gxwy7/Gq7maiwwtsnOjmqu1TCnG9C4fXJGUlzLT1NCJ/
+aBvwEwfftn4Fx+d4nB6lvB07abM8Qt25iaHuZmLBInNb2qwPWkR+ra0u+Oy+Etk2768rEAYWfIC5
+nn9S5aKD7zIhJ1VTmTnh0+edKsEIqQwd5afO/lh8w3K4Pk53u8G3TLSHXlKCJAeRcZ2Wzie0KkV3
+SgNLMF4IxzOWQ+cw3Y0GH7IRHKRPmKeD6OWNBhm/TeKM//LEwTCdiYU4at5M8Cqlj+Bsn/atBgmc
+X8avxqDTCTW/uOMCXUiZhcq/fWTJt108RB6e31XwKzJUfTYhd3qJioEuXPhdMPIClWcdIP808utj
+yNpjFlVzIOHVO2BEcLOOLF9h8ENsGD6rT44lrJo3DNFhhJn4uOs3C73C4NsWsmH9kQ==
+ ]]><![CDATA[
+ hP5dT1It9CcbewZeIZsYasJGe8KiPzGy7uGbquI5LGxWp22MVX0mYX2U4sg7w5757c8lb48c7PZ4
+ioHXGPx16x5FODr8Vxz8Tv4WyHHLl+effqjef3x/+OK7f8Gv+TfmHa58+/7vHz/8cvjiXw+/okfH
+fzt8ER3/Qv/7lv73e/pffIy4f/cP/HaKlD3+5zGOjn84xMfvcJdOklOMhO2ojTkhglDHv9HF+ETm
+HxftCemNOuokOiWZyXDFnWKbZXwlSpTGlfSkrHPH70EYZyebOFzLTkbT7bhAr0c7ahufjI1i+ST4
+fFxJTi5LmAzXUqvwNVbjiy0+AMOio7xxBcNCDoMr+pRYgx+sPWlnrRDaE0XUuOhOJnP41MSdFLJm
+XElPUZqBB5WcIiRzfIWOKmFCBcaU4WsZ/nrUGny5DN9sMXRria/4FBuj+B5lUxkpZimy2vAXxsY5
+niJkwAmPHd6GJ1KlGQ00OmUpZsjTXV/8K1204C1KeHJSS5+BuaQTsfk2x/OGmeT7aeLpkDf+NJ5M
+/qs+GZXQJ6hTqmNwq8Gk1VomDjzgSkI/CNsYtVYZCBWGj+k5ahedDItRRSBMwa7Dh2uaL5rxLE2Z
+0CUnk8b4tBifnyi5TaYnNifLM4d7KL8/IrqDMGJVE2ZRrI8qw1dbhxE6TCFhQ7nMQ8/ZE6Jvc1SY
+e2Ss/htTDAPyUzQVcYTxpMlJx+6oSAbggi8kyuCzISqHERNZGp8gK3tUmAiHPJG/j9ITvhJnmq5A
+UjF4UAa4czIzTp2SNKJr6uQSmiLQQR8UDyBFosB0kBAuOEyMqskUolYwo050iDFPaGZjsJdG+Baa
+DnDlYgu6FEOCjokkMI8qNTwv8CdyG3ITTFDkaF4yxpiNCKWxbSUBuaZAK8RjMEF8GwkMbCngNE1S
+xozSBDatThnyG0EgTTJhRkNHTZYweBwpOaAP7SM6daKTcvmWRg4m8fqKScaHWf7BJvhUut8xqHEl
+TXXK2Ifg/Rd2LxLk8ckanyJa4uhDSPE0fyyuxIQ7jYm3/gISZ/4wcAK8ar6oFdkDHYvwiTHLMFL4
+7JSMAamkEYMEnBtHQqBrpB9QfH8TUKRS/EWBC0cag/mgU5yFDsLjMWCOkK2zXaG3WgodZHXsW87v
+h8wpmP7T4ct3v81/+Vj9+P3HH3/+6f0v/zj+Dkb83VcRTA4mUf3m+Nt///jLjz/95fhVUeTff//r
+3779+eN7uvc3x/9Gd/53+t/hixi2W8N0R2K6Mf0yJAKow8D/JuJyMnLYMRYviSuKLBsXk5HqAvbQ
+DMs2JYUdlhlOT6kie4mLiaOJ1bY2PfhBp44lE7lUZpOOgm9EoxIhjLJMRAN0pvyNcWRENIZUhq5E
+kUcyZANTamQY9IUKc5aQbElYmmwFZKO0t7JJVNtumCyj5WKckK2HKniMgjCjHxKoY2wS/mwTex1P
+yMymYmYd/REXMmLZEqINU0UZoQTmNIqMQAFmUAQOAw99o9vwvTApbGNtylegcYmL2Tmx++FxJtBH
+UgDoMR1vzlZXk21gd2XofpoqtopkU2B2ZUYJ+LF4NQTRsegss4PPz2wm2phGNAlk503ivQy4FpcF
+C8c2AVcScgJwtol19tgHzfdDSAJqiz9R+CC9+A8C31d//Omn93/78MPxL7+8/+HHDz99PFrzm+PX
+ABMGSf/SqwGOXwOBMNzHmIytO+IDiVH8NTawk/gH9g3/0An2RzZh8LUJrAjYwQgKhC+wdvTmr+PX
+Mbl86OrX5GLqH1jeQI6zIid6P8mxAPT/DL0oaPX1E5XttyHp8bf/+vPHbz98//MvP4Bx/vudHP32
+2w/v//qH9/jK/yLq41dl/s3v/QT+zz///Mvf5G+1ph+/yn/4+U8f3uXfZO/Axr9//MdfP7xrR3Rt
+EBhZxpunKMokegNGIqCFXXqU1aGJIs2E9XOKAah84KQhPoQIdVhhUzJemiBPrgVGxLGGaNJIKwrM
+cRnMhcoiW7sWmHLHhiV2TlwLvTaGryC60Iy7TMXiK2hLYYO7jBUSPzi2GBrGREnkGWfk9ckqZ95K
+JLWXh3W1bFgoYMpE750RqxcbLcYos/6HJKldEv5KMRS7lojmjcKxhD+BwlKyPdAUm9JAwXJjA6x4
+foqlaK8q66GlOA0aHSWJBJJxQm4cWp9m2jt5MgsUOSQIM00s0UFMzi6huIFcOy4k3hSZ2Ee1jgJ1
+UkdEz6mTWDZLiJmEzEUsV1RMf4LDUdYkdXTnYvLf+PSEnQBdsalEz1EdU1wj5vshGM3V/2wJ/QeT
+McUxXyPWpJIgfkAQDEdy/JqSB5Mqn5hoDzkD0fyTWoA/HrLjV785fve/xn788t2vCD84LaR/vpV/
+fi9sBOngl+8kIfzy3WBKSJcfTApB+lhaSN/5YGJIpA+mhiB9MDkE5YPpoVD2EkS6/GCKCNJHk0Qi
+fTBNBOmjiaKQPpQqEulDySIIH0wX6SsfShiF8KGUkeTyYNJIpI+ljQLBRxJHonwwdSTSgeQRlx9M
+H4nysQSSrMFjKSRRPpZEDplgZv9piSQZe0klyRl4sz+UTooQH0ooac4fTCm9uB5JKkVej6SVIq+H
+EktxjvenlkT3YHJJo30wvaTZfTDBFJQ8kmIO4YsxTWEmgbANNAmca6Wa+K7Hks0v3/2Zdefp4eaL
+xZcSDPRyTLr8YJYpkckjeaYPhx7JND38Hsk1JTZ7INskwgfzTZqjhzJOInwo56S45LGsUxDyUN45
+BK77jMIi+eeX7x7OQP95zMIfR2IRXPvlfc1r/s0x//Xjz0dZqPzx/31ome5/6b/96e8ffvm/H354
+9z8+/OOd3PX3bv37q/ynn386Op1IcvvrgaYhZZTEvMTJS6OXH//64Xf+5+LDX378qV4oRU6M25D8
+/m+/LooonJ20Pv6fI1wtlJmWSv9j+Ab63d/k/0GAjjugY/QnqMWR12r5K2m19nfHDMZKHb747htc
+v3xC28l38p18J9/J0bbejzOLfCHed/JPJF9a7tuSLzp1O/lygvu8yNef+bdH/hzBDW9PvtEPXwy9
+H/4p5HcNfrItN/NvjHwN2PDm/QM/mvBwn0u+CupeQXCvRj5z6mZBaELu6r5O5HeS3Cafjb0WdXe2
+NQX3suSzZmpC36dho3vdtP3Aj9c/3OeS98fAvYu6OVbupsb10LWc4F6TfA6Qum5iDEITsLFBd72e
+TvUDP/T5cCfy/jfaztOM19jr2LrZGOu3f7Ys8rbGjfm1HpBac9GHTRo8WJsHvWg7kcuP5SOdyMf+
+WPS6fHvW9ha0Id769q1vyu53ka8g9+XI5xio4Yg6NEp9IIXgCXBC5BV3efL80vYr1I60A5139VDj
+jz3wOWckdvnO+un3ip+Ab7EX4i2AWasyPTs2YL7GjdU0utaR+0LkYzgazuNmA4nIRSgipgA8Xr4J
+d8VdTmYw3OklZ3wgJf8Qu0c6kY/9UT7WBL0+F4J6A1pBRIg3QVqIsb4R67jI2W5xfbkvR36vgRr2
+caFf6wHJ0wuERHwNbFLuGXc5tqTkXgX93OsX6gd+icrt3ifnjyVy+S753py7jESwJ3gLkObNGgOs
+ddCCMZmBvvkagdbEzK8j90XJp+HUhgdjBir0cTLJPOetlxGhiIAEQiI+AQzLXeCWSFPc6XAffsG7
+4W6D7uZ2Ipcfba/Lx2p/iBB1GYNAgLFHg6+P56Eu9i3EmBixEWgd+Pybm+gaay8Om7F2U2VGzVQA
+pwMfYNMiSkyTNDFKAiSRDgvLi6+BjUg5455zL7lX3M/cL90uAznw6yhv9ivSc9vp2+W7Cu4yBsGh
+oI6bt3hi1oQd1pEDH9ZFSBR0iXHuG66JeH5Ge7rclyafA6fhgFxiiT6cBDFil1jBaebZKHksibBE
+fCJQAYmYAGn8YgLF728j2DjuadCzuZ3I5ceQXD6QP99/l+bOFstjj8dGqJOhCvIFY+JDxd6K+Qqh
+FRiutnLSR9cMk/WZFh+mjFXfTIVwCsInIg8NlMyzzLmYJpFWyp2F5U0Ii7KFTc695H7mfqHuE/g4
+6EnbD/Ry+xk9JBenxB9O3y7fJd8rY5DxCNIECIJ/YYHZaeO6aXSF8XzPG3bLfXearBc0VjfMbqd6
+EJqpMI5im+8nRWQmEUgAp1bf2el4cySCK7gLeET60iz3lPqBX+XR9vy+TuTyY/gh/MnacZfvkiZB
+Fo9HxtZinpv3nMKOoFWco0BLTLREXE08L5mLoGt2JD+h79vCZrpNDX46mpL5CbxeE134vEn8nTTR
+boGT6L74I7YPrbURyYrES+5n7hfqvrodD/cDvf1mRg/L5Pyx8hX07RX3gruMwXAXjIkpk2EzCyG0
+SGXEdolbFJ0S/RKMjMVaTQY9Vp+fYbI+J2M1WOrsu7++mRKFlZxO4pA6OBEf6KMaQZRISIyGAEkg
+JIGXyJUbwcZyd7O7bXtLLj1s8i3yjSJqAbMAjE3Zgc8tRr9ClxguySZEcSTiknhelIvjRJo6qUWE
+6Joda312xYe5xmosRJfqQVMtlLiCZ/XKTEkoLiExhy7e04n3YTiR3GWK5T6Rfso9455zL4Y7keeT
+Pet1+XBGYIu6AGPemgXo8oar4i4+kXHTZpGiR4IOSXhnxFoPFx+2gs1N8hvGKvB9Le9hTCW46vs+
+MUxcImhm3gtCzJQ0iXbYOHhzEcIpABLJvQx6xb3s9btQ10OXN18CbKm1s2ds4zqBnUBAonq+1+eM
+YawVeMMDv2K9E25dxVojkXy3WviQyXpFY9WvJwioZE4CULUrIyO48r5PwnKRjoCKbQLJvW+mQgPV
+h1AAJCKX2+aYqQlj1ceVOEQZqsR+PZPV+HfvEKXYJQ5RyrxS4ApjrQBah2bjxJ2RfCO4lWFzk/z5
+xko8oMwyK29bqxRjxeLwMZVYADYIPqIWwPU8IMl9Gh6hzZmIrPpNvtEbHe4CJ/GAtYP2Qw1xFUZZ
+Qi9AkGqqeEOemHZVKAi3BmKtkarpzOLDmrCZbreN1QORFUcUvuApahsmgOw4fAFKJMryahIxH1+J
+fEVaQdx+hYQADwSbJOgjqd9AGlibyjArHEgJJbKSJkvQAipmh1RGCqpissLigwwojLV60OouJk46
+xIniw2qwuUl+w1g9kAZKZi1poEwpKy/NvEylzD/Xgjy6pIngxNdISijCbdL/c6/LDXJzEfSwXtWA
+Nhvpaa+HVSxGbpMG+kRDBC5OUApu4t/lJmYzTA8P/PrZbmlrdtW0rRaG6Jptsl7XWI3VrCS+GqxZ
+iSuUS0GR4QpaEvGydEhwgkuRjVgiO9nlHm6t3EPpx5M92HZH5CP7jH1FVLoYKIGTlOKbSqm4QuFL
+2lhNPqxrNYuJ/Uh+bBnxVvFhBdjcJL/PWPVWlkcL7BKgBuXQdhFZAg8pOEgTWYhcRPdFZCI+FmW7
+sFIFPZCsh6j03sIfkaez++BiYj7Zw28MoCVsEu/C9VgkH8ZaE8WHz6pSOmysQnSNLQ==
+ ]]><![CDATA[
+ LndWA4NAawBd4eKyKK9Mdb15wC8OikpL05PdS45662G9hHobFSb7obPzQT6kP5Jg1Ttc8u6CVv4k
+N4cL1rIfoxdrtUHpvSZrXHArwOYm+RyT1S4ujKFrcifModmq1NsM442YIE1mvuj2Vt/DLjdLYJwG
+PdxjxR/emsp+D28WcvlA+Ypm64IkHSHyBWmCsb7FC6DVYN6HW/L5Iws9fZN1aHY+zDZZ68Bmuk0Z
+q77J6kdZjaEO0RXs3BvYticAC7btkeDko/v798IetrjtDfmNLaDje0oHvr2P+cC6eoPW7LsYQ5dc
+D/c/DBYfwmp8aLLCssNEpXSkLQqbmeTToGorJ9O71kf2GB/qTeBXe9RlGsM9xpIiFd3ezny4GTjc
+Eiw9DfrMHexj3y6Om3ltFpE9GMRIsuUJ0TUAraZSGjrEsPgQmqyRKKtV2Du3aa0Dm5vko7gKTdYI
+tA6DT2mF+/omH4g4NFuRQ9RN9+D+NgmVPr91vj18IiPcDh067nDnIUOrjetCdLmg92L4MMpqLW24
+o0aQ0l+V7vnBiWWddWAz57YxTLWo66Nrhvk6NFuRew9wXT29FfbgSa5Ds/rfv63q9bueDew9O+bx
+JkBpntoQa9ZPPQQePbfogdTsaB0rO0hEJ6ogRfiwltXZpjUjeh8U3AqwuUl+w2SNQGs4nh97sKv3
+qGkXdfN7hzx8qGq6dx4pDdEuSAsxFpqvEFpNOjCGrnAP80gtq/GwswoO9y/rrAObOW3KWI2ha8x8
+dRYTe4/GXz2HPvJ0fLsO2390vd97izStgx773v4j1Z2tiSG6QsMlLYy4Qmg1pY+gEjJQI+3tdgj9
+YGtp5yzrvKqxCtssw9WgbhpjPaR1A7OxGveM3iUff+Km871zw8KwZhJCq37IawBdUkkIngm6qqR1
+jJWknP0NWjOqWK2beMhkbY66+RjrA6ybRd7Z26l7Onkfab0VhHYVuI+uMJ4PoRU8SUSwCZ9Ek5+l
+yCDGKqyODu4pnX7IYhJUL7gG3W9Txmo2xqZQ91B/nHwiLBx7kDZ8Tq2J5/voCpcS+gVeudIYK7lZ
+4vaxrVkjfnDmGvS2sLmLfL71Wgl1d337CMauANYEZn10STwfoGusEHFoHqPOer3/WGv4yOEbXYN+
+gHw+0uaibh3yMXSNGS4xHXXp4wa6wlr94KJS/3HpkU1Z922A77Xl5L4V+afKfQXyEWi1gptEV1jm
+CqFFsBF0SR7YPz5CUDfyDD6Btr9Lefrp+46dD9r6cv8nIb+Nuj66xiKuzrYNoRF0iZ3pG67giJLW
+RYZniQguJL4KSw0jO/3aHPazWoN+q+TzDddwPN9f/QyhdXPbRoiu3gE1Pr5qVkKnt77ffFpnElfr
+z/w/D/kdbrEHrXYVeLrAJX5NtmEHezO6xmryOJp+6N5mE7PXoF9q5t8w+bTdGo7nJ7fIhrFWa22m
+HWIQX3lQNKdp9Te9j0Tvn+ka9Nsmv8NkBUliG9v0NvaPmSxP32zDDtE1bbJ6Vax2JfTONeiXmvk3
+Tz5srGY7xP6u/kOz30ZMlkRZ4WGDY1EWf8OhPgrsKnoXVyjRe//8mXlr0E+fup38Jvl8w9UWH8a2
+Xk9WtLrGKjxkUqL3ySpWuwZ954LOclO3k0+3rrHqo2ssygoSw8PEzgehHwNVE8+HC4Vjz9qPbEvu
+rkGPuMKnT91OPkF+w2Q1xmqGK7x6BCmIr1pjFdZI+yarf4Zk/Qj5lSu8M7562Zl/w+S3jVVoskb8
+4KHe0ToaX/UfxAgK74d6v80dCzqDh7A9FF99poL7LMinTVa3Utp3hZPxVQObAVyJyQoL7z0/2IB2
+znb3PqhefObfNvkcV3jlBzvbtMKncfvxVX8lOgBVWykNN8xMnxs5uGFm9lLOc6duJx9rt43VmCuc
+EV81Afnd8dXDG2aujdUcV/jw1O3kN8lHjVUfVEFp9NDsKZ0fXwWnKHWN1fTZ7z1Qtcbqrezue2Pk
+Yxara6zujK/I2ty7+hyA6tB5XcVurD438mlXOBZftQsr/b0Nk6vPbc0qXCKUyGrOoVgTxmp2Mvgi
+M/+GyW8bqxnxVd8PHjobZoKFwvB8CV9b6K3gDBur2Q/Ud5KRhaZuJ79JPmqsRvzg4a4NMyG0mkpp
+sJPBI3Byk8ztyGp2fPVSM/+GyYeN1ZgrnD5TrtkwI74sRFf4nkT5Wa6L75Nov65ZXS3f/FM+N/EG
+yMdc4Vh8dWgOpJo++EugEr6Os3M8jiAqNFPhnquRE5JnpoG7sdqW/LaxGis1hCnh4NM6/eOY+icp
+9V632q4Gznjt10QauBurVyCfb7IOExtmwmNDQmgFp30fmvdN9F4VfWWm+r7vnidSd2P1CuQT+j7L
+ZAXPrjbLOgPvPe93AcXg+6CDN9rP382+G6uXIr9hrG5umBl5gfXUWV7hiV5ioPrvgO75vnYFfDIB
+3I3VK5BPGasxkzUCrbZSOnaCXHj4m/y1c5ZXiKi+mbq1z2o3Vq9GPsdkteaiX3YYO00rOAju0Jzh
+FmDpyt+FcOqF6N067WRbc+p28rE2ZaymTVan+DB9PmHYe8fEteRjSd8knHZj9YLk07rfCm4GusYO
+BmxLXv2jBftHw/W8XvvtM9qaU7eTj7XbxipsfWh14vneqYCjPbi/Wz2YbaYGB7/a1O3kTzBWM9A1
+EH11YBP2Pknc63dhfgRULzvzb5j8AcH1oTXsIqf7BPlsfzc4+NWmbid/srGaxFi/D8NmNpBmYn79
+qdvJx9pdgntE7jPA86xvX3nqdvLFjdULkK8/dTv5WFtT7kuTrzx1O/lurJaYup18rK0p96XJV566
+nXw3VktM3U4+1taU+9LkK0/dTr4bqyWmbicfa2vKfWnyladuJ9+N1RJTt5OPtTXlvjT5ylO3k+/G
+aomp28nH2ppyX5p85anbyXdjtcTU7eRjbU25L02+8tTt5P8MxkramlO3k4+19eW+NPlqU7eT78Zq
+ianbycfa+nJfmny1qdvJd2O1xNTt5GNtfbkvTb7a1O3ku7FaYup28rG2vtyXJl9t6nby3VgtMXU7
++VhbX+5Lk682dTv5TfI15b4o+fpTt5NPkK8m96XJ15+6nXysrSn3RcnXn7qdfIJ8NbkvTb7+1O3k
+Y21Nua9AvubU7eQT5CvLfWnyNaduJx9r68t9UfI1p24nv0m+mtyXJl9/6nbysbam3BclX3/qdvIJ
+8tXkvjT5+lO3k4+1NeW+KPn6U7eTT5CvJvelydefup18uq0j90XJt5q6nXyCfAW5L02+1dTt5GNt
+HbmvQL7+1O3kE+SryX1p8vWnbicfa2vKfVHy9aduJ58gX03uS5OvP3U7+VhbU+7rkK82dTv5BPn6
+cl+UfM2p28nH2vpyX5p8tanbySfI15f7ouRrTt1OPtbWl/s65CtM3U4+Qb6V3BclX2fqdvKxtpXc
+lyZfYep28gnyreS+KPk6U7eTj7Wt5L4O+aJTt5NPkG8r90XJl566nXysbSv3pckXnbqdfIJ8W7kv
+Sr701O3kY21buS9NvujU7eQT5NvKfQXy5aZuJx9rryD3pckXmrqdfIL8FeS+KPlyU7eTj7VXkPvS
+5AtN3U4+Qf4Kcl+IfOmp28mn21ZyX5p8hanbySfIt5L7ouTrTN1OPta2kvvS5CtM3U4+Qb6V3Bci
+X3PqdvLptqbclyZfeep28gnyNeW+KPn6U7eT3yRfQe7LkW87dTv5WFta7ouSbzt1O/lN8oXkvhD5
+S03dTj7Wni73pclfZ+p28pvkrwObsbYc7zv5CuRbwWaQfGXed/K3Hc9vy/tOvg7502EzDaSX4n0n
+X5P8Xth0ULft4HfynXwn38l38p38rZJ/ooPeyV+APL63E3n8IoMfGn4y1YmcfuiTbTH4aGDYKuj6
+uhN5+2t7W016g5mFUBcy0A7bcLdtJ3Ibuabbqy6312yF7Cw7+JCFmgHth06jTNGzKCPy3Pei1+u/
+4EYmcJ4lYcejbjbG7h18nwXth09Dx3iJvESvonN0iS4B6NvWIgd34L4K9xfMUkrkzvOjumJ5zuBD
+JkIW0nrmafA08CRWsY5NbGOHnjY9497+7nCHxX2kMiCKmaeS+emy8rTBXzPBLAjmUwZNxcPXGFYa
+53ERV/E5voBZXEyoqatOjSwt/hjFF9xagigFscaFC2ajYFYmGfkUlfF2XvggLGWYvjOAQgxkGM0F
+I9OJTdIkS4qkTKrkjH5pOw1efqQ/VLglx60uMWDsgg/I8EEKo64wOym+osPIk/S9FoagqfAspJj/
+C2bZYkwVVF4po5zKVK4KVapKVSBX56uOi/hTgVtSZZVWMZjK8QEJZJODlQQAI5kwIzJ1D2v8kI8T
+JkQOF0yciwuAx2BKzxi+w8jOOtZaO00qo3Nd6kqf0S9Xna5UusDfU221UhcQOsCtgiATYDIVlYnw
+LVkglE8Y/AgT+FUDA2eAKIcErCowfKtzGvzFJMaY1OSmNGdzgTGNfU+anyJzwd9K3OOMAmMFiCNF
+5EqBG4tR5zAAdzJyG3VxoxPChIlzaIKDFIwqafBK53Af1pQYtrapLWxlL7BWiVMO0nGm6fSbwvXY
+XmxpM0suEkarNBb8pBhxijFnsF6FZ0TUZBRY81WmlQXpxAUfX4i1yVSsMp2AhcTkmOXUnjFE5wp3
+hllVqUlt6lJpGXdpLqXBpzpN4P1KlzoFrh1E5IA3A4wlUJYEjGgYrwLfarpm6zFLK7JwEckduq1i
+TBeYSIAmAxhlAEyBGc7hlU2ap2d4CZ1ZjDvL8qzgXlIHOf6hX3P8yWUmU+klLVLrLmAmshCnSSCt
+CuCCvAEtDX3P2QKr2r8/2hpLS+IoYaAcjJODJIBpAzxYB/gUmNwiSzD0EqGGzm2e5nle5GVOxiqv
+Or3En/Lc5SaPswoMxRBV5CzQGBmtMzCSAFoRNJAHX3klecBotYITVJFq5JCFBqY0rGuqNfShspkz
+kEKeqazIEwy+KuJCFwSbIi3yoihK9Oqq05UCf0sLUyT5GUQxpBNBKrk9Q1O0puAEZhkKCDPs4OfL
+IWzNGXwgDnQxUwV+JFmksLAXDVsDSRjoQZWlYCEvSHCFxRAvZVLq0pauTMvM97zp9FuKv5lSIagq
+C4fAKs0uGYUHaeZK5kVpq3L4FA3XaFhJXMPIHYMP2aghVSHEyBBPVFBta7RNENheUsZ8misIwhQl
+GLAYalmeK9xfJdxVryf4W1SecR/NPPxhVVigLcksGIGlg8ZH8CoOIUECJVFQkhFgzdX3mo3MQ8rA
+WVTsJqDdqYPhyTQUogQTZ8ggBwMxBgrAVa5KBzrUoaLB40eHm3QVlxWEExcpEKbwmanLbG4KXcE5
+qiRFsNIF1gPGqtYMYoPkjimG2wWqzhgp4SaHLAySiRySSMsKTGiMTobb6TT4WtFJT+jfFDer8gKk
+ESMVFAXGGvpuYYEzVSAKMx5YucTz5BDvD1BisXWi4+Q3iA2FPAfOmCe8zPLcQrNbNg==
+ ]]><![CDATA[
+ aln4ToO3vsulWijERuYZOYM4ArSK7Ax9p3AeoY7WisiBrZjsljdadwUoobFKBtgQaWAGMwfNOENV
+CVQZ6UV5qYgcHFGPqGO+L3SZVSZmhdENtwKtsrTFGVGjy/KUEjFoO+wAYytho2Ux9mKePIaNVYsr
+mI7Ewm0gvvO6YeDvqhz2BoyQviMLVPh6Ahx1y4Ohrv2/YsLIDlRgTFiCzoP7TPQ9zy9QEoQBjC2r
+UxitKlGs65PymGesMswkPgyh+VnliJVgrBA8lSl9OzxHBX9WgBsNfuBGfM/gIFJcqXvKf4MzAbsJ
+mAJDNHiS4Rl85RDJRbAFH1/ng7HS0PURedxrrMSNpwjQc2U0uQngIrcWoUgF8xLBIcNoghkALa8b
+EAKHDdfGnX4iD1/mZ/Iy5CtT8HSBAC17lwz/JvA9cW4QheETLaIW1vVzIw82WXUyMr+JB6S4CsEh
+GStSEJNc4D8MfHkBRiKXwRE6aG4dUdW9HojvJDjDN+TgmSKXDHqlwExVxuw0jXcjJVwi5sxJ4p6I
+POjbLVktFsm94YmPrERBxA1GV+FhjLAEYRFQc0HoqhEkSkf4jWiXbB3XE6iqg6FxAJwCbGdgMc3O
+YAbzT7rFSEsAqwzyALMkSZuxk4JIyK8nbLKuvMitFqKuH68jogYjOfKNwiiTIU0yyCFKqEvE2QYN
+nookwPcFEUZjdBHRR/izRlxbgikLEWrgScOFKgy/AhNnqA8JDpgU81uriIJ0KniR0KvPGPw1spIm
+e4oh6hKMZPDpDvmrRlp6ATPOsH8vTUXpHyd6MMz4vUC6V/cCVy4QIHF9RjZVQmQVPDdiqyKSwCzn
+6NHAsSi2hxA0TJaDYEu4kBRevRiG1dw0kILEHMAiRigdtwliUUUxLVKeC0QDAwmeCk7GS+6UepNe
+MMT4J0QaUCriurIK6QrNPMxEimC/hCE4s7VDCAzLa2HqKgdhGjgXdQaOgIRW0+8PTuIeIxycZND3
+hKsjZ/Cjg9qI9IILIVACpKjSYXcQH140oQ55bQl+CqS/Z5gJA3tXML7IiCmwAdWBpuNTLZJmhIsm
+ycjy1sHJDWSNyiORCrnwQlWSRGpV+IuC+XJNpartrLXoOfdCoovKc53Ck2qwYoCzAt5UQe8zhAU5
+ZBIhWMzyCJ6QwkWyGBkXH0CcTCFrqong6hqo9pWSgkufVDl0YOa6blh3+h421BeuFV78DQkSMITi
+XrsccklJwxIwglwKNor8J2VVqQQnMA7mrM8ITuIhZN0efB9bdfFNWKEaIpWdwyoudxq8/Gh96dbw
+DZa5zoFHjAiskOnWMBIF9JkYoVQsygm07DmRH6ZnGKyEkaWVbZE1Bat5qwPdwnrJQeCZXWRYVucS
+upTR635hrhOwlAKPMTxJBGeqhBGaeeHFwafArANXORTEwGB5ZE3B6tECu2dG0gFe5WCuuj0Luix/
+EB5hKCCXS2K5zIskn3gpgS5SE5jhjLz5GWwkUJACTr7imLcHq0crJ14m9XLe6KpTb4mp/juxnMvK
+CJVTEWrA3lGEowG8M/Q9hX0+gxGqE2UwdLk7+zSkMVgs92lkTbXrysnwGmB/sa/pRN7KUYrbCdRF
+GMmR6ivozxm+w6YXxGAUnOm0RIRlKC0kQ51OI2ve4IdFM70eG9crYtdcy1JDzoykvghW6Qzj1TAN
+Z/jEiINJsvPQcwPTW/hs6i6Dda/KDK6Aj/XaUAgjysecGoKqoO2ZsxJVFhw5a6QgDpkYIpkQWVOw
+WnQlNOS69UJSz6O0jFdGUqQBCZSIsGWg7WAPYSIVGDUXHCZgtcrgxxjhpcyCi/ZVkCk7jJiGfwEj
+EaJ75VKbM6zO17ASjXtA0x8dfI+85sU2KWYMp2hhtFp5lLwUWiFFv4IVedgZrnDBwbetVZO6Vlz6
+wh7CXPbscZqnlA5C593Fka2zZhpZqw0+bOFCSisP0g8ps1aUIlMKHPFyQgKPTqXFsousKVitqO+1
+PIKCGCViFdxhBr9e8AaHCna3QEYZIUsnZFHVhAqLg8WfDfS9lUfCuQwXkwrNRatG06MaWYAVpYSZ
+TwmjAFbbbtNqaheOa5QW7jBnTVceWZS5E6xyhlVmkGciBYsSGGqqNBC5IOuhdegn8n5dwqcaZdKU
+WjNEWSXDqgSscr+CEMsyLhUbNBcbZtdMnj74trXrQiVXkgRWOTuQ0GBRZMWxojIkLZfkSMjusLuL
+o67RdFregj8plGODpSjGouDE0UIpIytGrOg4BSkG7O4Wg79mo4UVGyyKaWGLkK/XoUnUePSi49HL
+vnZsou81rDg4IWTlcNjkCktEiznyqQQMXNjuWm93I66OdrTj09agn8N77A0WxVjkCkvkU7wM5e3u
+me2u62tHm0k9FF89WXCCLOvt7hnhbWh3HdvdcxvvSiYVepC74qsFg5N2Bbi1u7RSJ3YXsEpZ38mD
+WO9ByuSSIGe5peeLDz5ko4aVaIdCdltyoEgxrbMp7W04o+c9Pc+bkvtgmLiyvtdsiN3l/TakIJKO
+K6S3Dk6wYjYyWxrauhWpJLFxGYSJz94gd39jWEmdNuO1CFIQoxEJ2theeKNKDkbyVNM2DfbnrbkK
+1qQW3hA7g7wxvVcKcuZ4NwWsUjCBuJd3m7TRbsUrYo3h/YQNM580+LZ1FURDQeo1YA1YGd6glQBU
+YIPi+bbQcDcbi6Ku6z4qrx0adhfJU8obZgzMbmorCORuNlZSmWv3UYft5KCRo1fOuQutLcIJOmj5
+xePqJhubZVLBlpVUaR37Qq/mRVPa7WeQ055Zy+tksMfGhpmUr9fVeq54D1GszqwgBshKeTNE5hKb
+wnVc/E6AqmXjNYyV8HLtCCkBSaEgCTy6BguZs7xZMdcVXAcnUCQ4/ULGKmSj8BWTUiqKCExoNR7x
+Im8f1YZCYoQkZ+8Edd8JbjD4LhttHkV6nvCSjoGa8/q7gjhyGxurc87Nr0s+r2Cs+tEuKTmRIwFJ
+gaycNgz43bwacS7tJdNBZPUaxurKXB38lhXaYXdGhk4LuLC1YCK3hnfyyl5LNRwgbl/2iZvNUHVl
+tISeKwQm2mZgAnIxOSyuhh+peGsJbVDkcP2VjFV8ZXU17+miHc0FYIW43VpoRqrPvGG0JDZIcDMT
+j4UH37aWjdrqUliieftQBE1HeML73MnSwgVa3p54s06y0uCv2UgaNmg7cKmcVoh2odhWCuzIyc8w
+VSVcILERdeuhmw2+y0btPDJ2HpyAJ7oyFh4kgYokpjJGF3CBJskT2sM9mZRvYqwaNhjzzUJOAqtr
+oefIRfhRkC4bvRriKxira28+xIZmNjQXewI2XqFm5TkZwpUHVZ+NjNg48HNST1j9/+TBty1MBeNA
+yytoea0bDCpSmYaT+9lY2Vgpfo6EjFVaG6uOlt/DxqrG6tp1nBU/nWe899CBzZ3U8g0GP8QGZxPi
+yy/el9NTYhbenJyguI4XN1bXiWCEDMoh9Sih4RSSGBuRL2dH3nEdr2WsrhfUaCtDarQPEDOwIpFV
+E4+IsXrNyCprVpzbcN0iyi0kztW0v84/VPSqkZWqH+2RdSh10QUiw4iyDjJWJbhRpvARe3/z8XaD
+H2JDaroprf9LGuhonzztHIdIKH+KtVFZk3hMsLFZGshsEOabhBYu0Gez/LQtvHqQBsrW/M52ku2N
+VXcViopvFRyHghwuPik/G6Vd89BHk82+UhrYCKTPBj2rAImksLpGp7z4pGMOiQcXaFcffNv66lGz
+oW1JT1QAVhlVekhlsnuLPQsPfoiNc8NG5KVROkKdS7hmlcAN5ryMVpfeXqfAPuQ6YHPrmhXhKmY2
+CljdVJf+YbtquhC6YWTla1Z+DYpr044fXY/4eABiI+MQUQWVafsiBfaByKrkEnsFX27hOnIYK2Kj
+RJCYIbZqHrWrl/zF1r2GserWrC5cetPw5XQWAj0KRWzkiK1iXrURL/P45oXF08AkeJwSuQZCkoqP
+XyqIDVKZiwS7lEHduzl0cdRd1xYSv1JAZyIYiawu6MxJzcbtDGq1wQ+xUe+4YjdBz0wgMOSg5Iz/
+CxsS6d4ovm2i782CB5HL2iat/MccW9FhIVRihycJ2BiMdDc1Vs0+6m7MTqmH7aYevjYdsPE6xmpo
+Z2V3pcB5NiTvkA2xjz2d9vTBh2yEVjf3KwWGqwvtSkEmxqpd85jc27Pa4K/Z6JbYfdWK913wYgEV
+GDJmI/MPzk8upK02+GtGQqsbJXyqkkGcSM9C0kOqBugSNigRPPN64ESku5G+e3NF5O3aJul5xk+n
+xpaeP70gQCQ2ckk9+mxsb6yinrmigk+prYn4ue8EOn72bBScd5R1pHv4YusnVsJ2fcqDrAjSUtqZ
+i+z0iB4VeCOk5cQGCe4q2N3yiZVrNsKybl1kj6Ed2hT8vHrFWxeYk/pwojsfvFkFdT09V0ZdoB3k
+JoCsSjgxMR98lfBROJZjqxt1q5VV5mpfJQfkrOcVAt4Iwy/58ABiI0U+q/nYKzdet9pM34N9le2h
+NHwIGMJE69mAcHTOawX1KThXzuMVjNW1ueINDLxaIHpeMBs5L6UliK3aw2N4A/zDz6sstK+yb65o
+Mc0wG2f83yIRJFfOqGsN793makHBdaOrejGN2CjpdEVDyzpseN1j5molYzVkdRPed8H+g06HjCAS
+pXN1obXmZvlmMtZd3VhdBYkEm+tFWuXXBGkVSrGCJH0932jwHTaI/HqtWcLdjNcEU04+Cj438Tos
+8drxKsaqu2Ren1lYQBZ0ok4BRiJoesGwyuRpLokqH1z7X3wTeOa3KVmTQDMslXx42cPIIhTF86ls
+uWp3js23uwsbq6SzZC4HgUU2dzGdmUo16ph3VRqdwWANHoKzyeCv2QhX/qWOmPGzQkBV5YzLXO53
+6xZcTNTNg7Svs/rfKYeyj2v2TluII3Nnd+Et4CVURCEBSYcepN1k8B02JLqo69OWD1+UAxm0q/hs
+r9gVAJZBJpX7laggOX+NBbXuEyv0kHbMj3TRAUVRatM0NZCI5QMMzvXzQ7y40CzhbF+jDiMreXRT
+64Sf26z4QfMsLdoHbw4DT6zcEV+tEFnVT6CmzEbcnMRQ8LP/aQlPWAVPPFJxd2apfVVj1WODjFXN
+yTmt+MHNZOqB+Q0GP8QGg4qMFeEq9rjK+bm0CtIgNlRwnMTgUXCvYqyun0vLWcsdP5emYXdjq700
+qqEa9bZln95imj/hI+ODMPmBLshEnuaKW+dBxurBE9SeOPi29ROP+iDlyMLz0dnoUG///FC9oNZu
+SbyLjcUjq3AVKvdrN7KFIXFULYQzjJsnVs5+2fxGULLC4K8ZuT651/ImPqoWNgsGOa98xFwT1b5C
+XUyn5qvre1skqeqDSmKIRCO6QiqOVLBsSgwXriPKge1p9yzqTQZ/xYYUmesD0y2fFVspC0YMtD0y
+dGYavaBBqwpRbnl1xLl+lcjq+mzSyh9AZsGIBroi5LUGnV6YkTMTBrFI2j88f6vBhw==
+ ]]><![CDATA[
+ 7fqsWM3n9Bk+BlJO8szwf9hiXtYBHxfcoOadOL/C4EM2wrNi5XUh9bGkZUIbZvxbZWz95hIwcfMl
+GSsN/pqR3stbSN/z+AwjnPjX/URgIYfDUMzEjVeWbKLvzVlXRC7HedYvBKI3GkmXVxTF/mU4LaBe
+oWYVkLfndsnrmepzSen9UopeGIXxygujUj45smHiFQbftvpwu/rkRHnTlJxLWjXv8JIzzpvXEj0c
+GC4cnLQnJ9aHrKbhG9UkJH7wJWQrb028fpOcqV9+ZxoG1H1y2EzfmRWBTff80YF39D3z259NHjf9
+6hzSpi/77U8mjwf6et++k+/k7a1fnn/6oXr/8f3hi+/+Bb/m35h3uPLt+79//PDL4Yt/PfyKHh3/
+7fBFdPwL/e9b+t/v6X/xMeL+3T/w2ylS9vifxzg6/uEQH7/DXUhVT5SOHpE4nIzJ4uPf6KLFz8rh
+oj7FqTVH2NiTzRKNK+YUZSrlK9qm+EHbk4qNPn5PhPTX1OKiO5kkJkJ9SrWlj8pOxiVEaE8RPshE
+J5dFRsjsCR+Ov5kE9JHCTenJWrqgTtYl2RHhzomONMcVfVKI3Jguxphji68zGIyhu/BtzvHv8oFJ
+dFJWE5k9USrBZAnudtryRW1wUav0lJgs5St0zCOGm5xSBL3y0Uh/mRBcIa7UPIjIKfxVY5ypoo+K
+T7RrjjlHDK35B3qjRU14ffGvdDHFz4mTD7GR5TkxceRk+iKaPkwITy5JQinPNiYFHpu+PfbDwLCj
+1GECFCYAU4Irzv+QpKcsc54wOymX4rZEnRKl8INNTrQHEDOHqYho6qw6IXHEN8bRKUYiwIS4mKYs
+PABCE782PkHQJCkwju/mj1KYG5Ulp9jiS5guOSGfy44qTTBko/jjaXfeEVI5JSmJ2pLM1FFhTul0
+FaGDtAAa5IMnnZGAXHRCSpscMeiTTTAxNjs5Q5+s7CnxRJhPk2EECtxZki++PgLwcIW+nmBggTqV
+4tuUoTlP6mnRNJ8KMDCYWSaMU2N4AC52qfCL9AjDTDDuTMSKi3GkcJshURIh/ZAajNwaLyNciTK6
+4sBwZIQQ0kkcxErzYh3BBmNAbOx4+lIVxSJBSwiMMBijBIGGNJMUDPpgnEkYIbSWDZlqGqpiFAGK
+kKCKRDQegZkiwfF8JazIgmVAxmiaUkAsip3cYlKv0dADF8cZq4jD17NmxCmDNDpZLapirY75B5d6
+qPUuEuIhvDSOhUTFZDyUO1ESLVeUEQQ75Ax8RUeZjB7yU4lO+KJhAwHeAE7LdgvIzxjosSFE4oqD
+atSqnsVyl7PEG2ZJTAZ/PM18EuOzybLwoIQsdhi9DUbVWBpiJyFE9gzn90PWFFz/6fDlu9/mv3ys
+fvz+448///T+l38cfwcb/u4r1i9I7DfH3/77x19+/Okvx6+KIv/++1//9u3PH9/Tvb85/je687/T
+/w5fxDDdGpY7EssNcWHmxOI4ZzVbbpIhgQdGGaqmZcI0WTbI2xDAxGgkiuXtMi1ihmQQqCV8MbEw
+UAQC2A1hJcuIdZKMIaPMQEltLRlN6suEBGmSDB0nJgjTmZggQC/zmJMvTKDhUSZ3UcGXbZLTPARI
+1JAxg/HOkszxFQv9bUSjySWRSCMVsyooETKGwBCNYCRi40FORsnLxrIjsgRbwz4mEi8H12TY62Te
+H0CFslh5JwOYZzSVRgwcYUFFxBfssElgTGhMEaETJiyOjPi0hMhi8RW0gngklpkLcimRScjtYORw
+b3wPD5hn1Hgfpj32oGdweOL6KMFh1hXfAjACZqJw5AJTdkQm9dJNSZDgLnaZiPYaMN8PoQiILf5E
+kYP04j8IeF/98aef3v/tww/Hv/zy/ocfP/z08WjNb45fw7ki1Kd/YVLS49eGwXaEVcy0wz9AiaK/
+xjAvCD4y4DCCBYC9/jqDAbcRpiUBA7B4mL4CoUsMqMD9fg1HnmUw4V/HGQUe+OwYBltRBMI+3jCj
+SYaRF8D9n6EUBS2df6Km/TYkPf72X3/++O2H73/+5Qdwzn+/l6Xffvvh/V//8B7f+V9EfvyqzL/5
+vZ/C//nnn3/5m/yt1vPjV/kPP//pw7v8m+wd+Pj3j//464d37ZCuzYF4FsIhAEklYTYA8BoxTw8c
+euwYJIgN2GUmcILsFwiRseBRe0cNKMcZuSvyGZp0DtMbOwIU+U5FBhZAspYUDoYgM7aJbFIXib1I
+E1IijhAhfrYgHFsQFCNxIQmiK6GDVXEUaMHyZI6jINPa+CwzYsRU5ESxI5vq+guTJDXyPewBET6J
+J9MU9XGQmnmNoW+JRR+Jn4yvwZOrSLRH4i8M1MU0QEwMvQGReaaXj9UuN2FFIjOWst6nJ02WFBYr
+rp13qsgOINbCcCQ2IOOVSEyaIXTlEAK+XMwMFCQNryCw1M7VQUUUk1nimLv5eArb6DY2pKY217Bh
+CcWr3wsejKV5iOiviQzUZk6+MctUHY2EmPl+CEhzbUC2iA1I2Lo51v3IIAL6Gl6cBEUXUrHhmIg0
+TgV19Mn/rEbgj4fs+NVvjt/9r7Efv3z3K+IPTgvpn2/ln9/zP2E6CLY4rPjy3WBKSJcfTAqJ9KG0
+UL7zkcQQlI+lhiB8NDkE6aPpoZD2EkS6/GCKCNJHk0QifTBNBOmDiSJRPpYqEuUDySKRPZguygQ9
+lDDStz6YMtK3Ppg0EumDaaMg85HEkSgfSx2Fspc84vKj6SORPphAikF4IIUkE/RYEjlkgZn/pyWS
+ZOsllSRf4K3+UDoplx9JKEVaD6WUIq1HkkoS1oNppRfXI4mlyOuR1JK+9KHkkhh9ML2k2X0owSQs
+PJRiDmGL8UwhJgGwDTIJmKulmviyx5LNL9/9mRXn6bHmqwWX5DgGckxxRQ9kmRKVPJRniiN6JNMk
+ygdzTfnSR7JN4vTBfFO89QMZJwUXD+acEpc8lHUKRh7KO4fgdZ9hWCb//PLdoxnoP5Fl+ONIMIJr
+v7yvmc2/Oea/fvz5KAuVP/6/Dy3X/S/9tz/9/cMv//fDD+/+x4d/vJO7/t4tgH+V//TzT0enE0lu
+fz3ENAMMk5iXOHlp9PLjXz/8zv9cfPjLjz/VC6XIiXEbkt//7ddFYwTTZN3t8f8c4b9iWCYERP8x
+fAP97m/y/6RHhTugmPQnKMCR12r5K2m19ndIrenxqcMX332DP1w+oe3kO/lOvpO/JfLtd9bMIF+I
+9538LvL15b4C+TpT989JvqjgPgvyrWb+syb/1Jkf2jM82A/+eawH+xT5p8FmrC098581+fxpbGf+
+Xpkn7VMCD/cu+Sei7s62R1aD7TmwGZM5P0dy4IdHH+5zyW+ibg7KbsFmrK0vuFcgfxw2I1DxXVM/
+8NFT3W7m9oN/mGxe731R++2zkfYUY7WO4F6B/DZs+uCZBExX7jbortfT4U7kI38a7cHHHvjBWT59
+PejTeOvYujkuct7ULSS4VyC/DzYheCZgE0IlbR5OrXvOvej1kjqRlw91/hAiDz8zD3rWPCJ7jbcA
+YC3m+7iahtPg1I0YpVeQ+1PIp2Azx+ZMwKYPFZGyPKx95n6hLp99oHd2cX+oteShSC9Bl2+sHxVv
+8Nairo+xEF0hqHpwesDHbSv3p5DfVpkZ4JmCjYiJBXeFDcVdUz/w24+p26C7uZ3Iwwvhh5ig83f5
+7024X6PuCmMhusbg1PA+bZom22cKmw75DT0ZcVvd2EZmeAw2IjgRZSP3jLuc5FFyr4J+Dvql24k8
+vHDudfmQMugFd/669ttD1IUY4+ZBJSYr8IZtYNY3TTOANKiw68v9KeT3gqfVOJmuPnh4tj2NaLrA
+JqVOghM5snz9REtT3E3QLXfX9gOd0jfZbdDlQ3TbiVy+RUYmQg7xJmMTaIWg4tuJ9z6ixECJaZoE
+UuvjJts6cn8i+RwItcnIfPDIzDfWRkTDwvKAEfmK3HPuJfeK+5n7hTrI5xeJhMR3/pADnx1V8flR
+1Avu8o0pd8GboIybN2sMqgOf3pTzeU3UhS8xUOLvxoDUyeNm+7V15P5E8jFGumGhzENYvZHpGgHP
+gc+GpC7WRtRYYJNxZ7F6yYtpMNzpZS+UCqmUexb0fLIHd7bk0h13/mSluUuTmEjwJjBjaLW2TkYm
+EBBXKAZK7KpYsh6Q2rCwH3Lfk/4vKvenkE8MPjRBo/ZH9I5jnjaTEiUNwSNNJMJ2wMNGACMiLqiT
+3M/UffIsnyXWQQW93/j6gV/1Rj10XfIhIskLd/4KVXIX7PEY6NtlSHJUnOBKTFYAJ+/1xC6Jp2t8
+XIilMEwaA9LEzN8JoVdMxMbKPj3700ydD3vE2rPCXoFHbI40gQ0LkeQuUyzNcs+459wL7iX3qtuJ
+PLxQBl0I5UPkA1PujjudVGla1EkQLehiPHvDJXASryrGU4DZxPOCJTFK4t0kTBLj3PNrby80Gh33
+mAtrCm49E+SnkafUB5ESY4TgabwMGwQPG5GsyP1M3Wfg4vZ00LmB3Ey3kEQsi3wUfyyRS8zL3+W/
+VzAmABZHJyZLzJR8Rh2Y+ThKsCRGSbybGDyJtyUh7dmibvr/+YdGNyDUyd8FRf0QKLQ/4rxEe3mq
+Jd5ogxNxVSJgMRECG5GytJR7zr2gTnIve73i3r9eBJ0/5MBvDKMun+y4W+4yFCkaCahkVAInhgUN
+XkxTgCVvlCT8ljBJZiAMkBpDPWmOPtPQaBr5w4lYP4oWFyYoEU1kCy/2p0mFfIzBnss7DtH6C3Uv
+RBGuyJ2xQXKnN95dwjKhTSZ7cCfI/Y9StrkEPcSeAFVAJSNhLsnHiYESxyeeToAkAZeE3/LFAgdx
+ak02IbgYMUdvIDS6ifnRQEhmQ4JGWZWQ+a3rdT754nzZR84SV4jzEu1m6XjLI+JrrE0IG0mihEas
+xljjvx74Zapt170uHyiCD6HFcGqNlTQxTRJTiVcU7ybmVLI5cWpsdQ/8XkrqI+bojYVGU5ifjqUD
+CLWJmEw3F398FM12XuZZ5tyHzaLU4rxYMK3g2Dj4BU6RdQgbN9wJNv3Lk0gL4dQYqxBLfjw8PDGV
+3mxyAOSzObZFbdFpxBxd2SIJIG+GRpNA2hY2HfJRoM+AULMCfhVLz4ZQk0n5cFe8GIvPQ0hE0rc/
+g7CZbqbbiXzMKImPE+8md/dsUVN88NZVIPBwaDS2JnLLTWwFm/DXaYM5HFHP8GWhI5PIU6a6LfuI
+erNQfPIlwhLBhbYocGcHftVb69f67mmyt+QhbEY8Wt+dtaGRfKWEM1LIlMRfKkiS+UlxO0jTuqHR
+SCl7zBa9bGg0B0JPi6gljOZw1Jf7xKOJLQrTMRFfExqJWTgH/TLSz91O5L2LA30kuibyIMD2hiiE
+kKT8El1L7UiKYKxEBJsxczSj/NhdHRhp68NmDpCmIuoZeX0zdT61F48m9GICKuq+eixAEgXnqIME
+FyJKDJSE3OntfuA3AD/SG9hIEw8r4JG6pYRDgioReJDpC4PdqpGYo+nyowCp2WcV+g==
+ ]]><![CDATA[
+ tc8kNJowlVcsTC5wNIY69GjeHAkg2M770EhCCMnx68KLF42UGUXfRXBSq5H0f2RndFMtnNXjbj/w
+O7uoC2Akfp5TeGzWZUQ1JEeTxVwxRxIaSZomiz69GLut0z5UO3qR0GgM4dNxdRsWhh5NzJEEMRJd
+yyUJOwRItcJ6/ZWIQkyTYFR0OFzycN1OqOtdvNHTthN5NtLDdRD5doF3sBTSRtThagg3X3gUWyTq
+E67SNoaaAedL2Xcuq71gaDQfQm0SOmKOfHQtChmulzE92fn+Yr3cLRISWQioRDqSQTPAWsGN9arX
+g7+25Je29x8iCVdmw96sy4wt1HqNEFskmX6wrHZoNsiFS7Szl9Vuhkbrw2Y+kLqDn971Ea6a8Wwe
+mi2psmVIvJs0MU0yz2L/OSgNd4CQ4KTpRzqRhxdM0MX7uKD3tpcQ+ZwdJkIYbiZpQiPhS/LTcK0/
+yNfGakefXWjUhc0cjzay94zIRbPEKIXeTaZOrLrASf4s3qvJ42TOBV3iFIq5ncjH/lgGvbe3rfWw
+gn4ReQjgEHUh3oJdSW1oJE0MiXy7qIxs2R5J1g7N5v/p0Ghc31eGTYd81KPNANKh2Wc1toM63HIv
+cJIIs9nJLLMa7JT26JI+2Qg2000FPdxRxI6VyEW+IXRF7oI0wVjocwM4HTob5EKjNBIghU7t0Oyz
+Cs1RPzSaVzVaHzb9i/OB1K0ahUYpfI5DwsXQLjXPTQg+ZALDpzYEXeHmfOlF2w/Nftp8Rg8IBavt
+klYI2ijYyy0YC7fmBjstWxcpUOnvsQwDJCk/ChoZpQ3mB8xRPzSaqBr12lawmQ+h4dCoD6T+kx3N
+ptDwUbLeQ2TeWAm0VNCbMq9+vLfLeeEDRyFow2dJwrCtMVb9RCDcfhlu0M38q4sdv77YB2aCgr45
+EmXpp2mBOxteUBtp68NmGki3q0ZjYVLj40YQNfAoa/iUIvdDs6f0od6SX7r9CrQBUD2oGi/T3/4t
+GBDvJk1sUW+PN8FGLsoNoTkKStnePAqwO1Wj2R6tD6HNQ6M+luYDadjH9Q3UyKP0bcEtRNrs3gal
+/T4G1+CRt9bDikzFRIxtBe/ZojaPk7qE/BzWjsKdtJKmBbtEmm/3A+ut7/spHYHQixQb++0GkJrB
+j5mmEE4joGqNVf/ohuljHDqnLszvHQ87lgIEe3r9c0wSJgkG6keNRs1Rz6NdubOmaiQhmfhT8Wh3
+7TUaMUTbwqbfhmFzp4EKe+vf+32g6tftbeVkfg9Q2vWw/RRgrOTeVEp7VferGmkYIPUg1BYfRtb3
+B2rX9z+h9gqwGSSfY5TG4HTbWE32duru7c3MTxrDKyD1Su6HzvNx0qQU0C+2h3Wk5vm40BCF9SKB
+Q7gm28vx28rJnUHRi8Bm7E9zEDQ3IB/pw6h7mHwEXWMl96ZSOuDXJGvr+bUQSO1qoICn/5xaWHKU
+uDpY/mjrtGNB0WSC9rKwGWu3YTO7PRk20/1mpbTv18IVwHApuXketrdY47ssoklEPVK1bleF7tyA
+PTjzK8h9afL7YPOJqJvfBlE3Vint+7Xec7tthTzA0lVxWwTee/66XdYRFIWbQ8K4eiQo6hYbZ3i0
+deS+Jvl6sJkgHzNKYwcINAX2MPEPz50IF5HDtRLpzXKe3CA3j+wvGnu88a512CUE91mTPwc2/Tbi
+10Kn1hbY+/lamPgHZW0fbzc+Lg+6/EluCyE0spTfVszuDIpeRHBvhvwGhHpAavU99GvhAwiTQDo0
+G6WkJpkGXa7IX8WRhSc/sIkjW3fnA/uDKvMKM//GyKeB1EYXY35tcq/dYfBUpWBPy1WX6wGEDs2Z
+D8H5IaNBUc+dvfg67Bsjn/JxfaM0tteuXs7zd4fBdrjXTqDQ33NSPw97ZYiEUFKzcAX2rgcbZ0Po
+sxPcC5LP92uhU2tXQsMAKawgCZD6u+wa2IQ5v0BIKtVC0t+3H7izdlln9ua0JaZuJ5c27ddCILX6
+Hq6P9P1af7tmc/heiKWw9SEUnqvWFBtne7TB0OjpU7eTh20MR8Ml7km/Fjq1Q2cPuQRI8ik9CHkI
+SGrW7DkRKM7waJ/1OuybIW9hc6dfC53aoT4hdswcjdqiyC/jXgVFkx6t786667B3QugzFdxLkc/3
+a6FTa4OTsVNwwxi7Z4vaEvcMj9Z3Z4dm78GMhxmXm7qdPGw3gNQJjabXRMLH6yRhb1ZG5INGzFHo
+0foJGn379EFYkxB62Zl/M+RjCLodGo2tz7I7OzRn74dHuM+JrpsT4Psebc6D1UMOeqGp28nDNjjz
+9y6rNUXmOcm+753QKFz76J99/ejzsItO3U4+NzSaqBr1T8cNg6JJCB2u3/hwo+TYezZ/5jrs0lO3
+k0u7AaFOaDSSow0ERb3adQubsHwtbm265HhzHXYGhF5w5t8Y+RiEugtqc4KiAEJN/j69AnIVXQfu
+bF+H/YzIB2f+jqAogFBbLQxX9sMTBsKXIt21Dvu2Hvp4e+R3BEV3bcOeAaGmauQ92pygKFj46BYb
+74yrN5/5N0M+Kyga3IYtIUpYbOw/6tiD0KF51Eiw1H850UhQNPxaor3Y+ALkcyDU6vtIsXEgNQsK
+RG1EHb7ar+/R+jk+f2xj6x6Lq1925t8YeR9BU8XG6dSsqRYGJ8INQGhkc1q7DvvQC4nawc/2aJ84
+dTu5tMGZvxEU9SB0qA9dHEjwpyFUL6iNvR/tvmJjry06dTv5I8XGIK4+NA/vjzxtfXUoTW+j7KHZ
+hj0WV09ukW2X8/adjS9APh9C7QL6yMNE06lZC5swHJqdmh2afZWzt6UtPXU7edjGINS6ibFF/MnU
+7NAs34dlxtkQOtRblUZPJN53Nr4MeWfmrwzRWFw9kpodmjMf+ses9SvVPQgdmo2Rcw617kFoLzZu
+SD7qy2YseTTmYmA3UejRpPU26h86OxvvhFA3i7wTQpvP/Jshnx8UDe9s7D/0MXa0crOzcWSL9cD+
+6keX78cg9FIz/2bI50CoTYX6DzP2N8eGOX7noY+o7d7+hNtiR55bbCPqz/nMxjdMPoagwxdDz8PO
+frD60OxsDLDkYSM9tD/hMkfnWaHeK4dmRtRzfNknTt1OHrbOzF8ZoumgaHBnY2iOQiCJzQkP3A7s
+T1urFETMr1HvEfVrkI/6spvFxrHHGMND3cPj3KU3KyNyQ2CCvP2Z8RLGiRr1HAi9yMy/GfIxKQwX
+G/vLZ/3nhkIgBcett7Dx747lLjf37U8vCppZox6D0AvO/Jshn4ZQNzQaOyP05vsmVK9708NACJc2
+AvvTVshnx9IhhF585t8MeX/+p4qN/ei6B6RD551K0XD3+bvcKc6r2eE25015IxDaI+r1ybuwGTFH
+o6FR56iQ0Cj13itx1eWvDepC/9V/ofm8fdR9Q7To1O3k9xUbJ0Kj/lHq068s6bwwQm6bD57xRGw+
+hF5q5t8M+bREhkOj/tnX/ddGdF5Tkva63CYkk+C5mYhNQ+hlZ/7NkI/J4nbVqH8yf+eND2OvJglh
+MwKew7x3LoxB6LOY+TdDPgWbMQiFQOr4uBBR/Tc+9K8HOGxh8xB49oh6Q/I5AhqDU1fufQM12adg
+MwM8e0T9IuT3Img4/e+bppF+GzaT4Nkj6hckvw82Y20MCZ2QeLo//O2TEHrZmX8z5E8R3FVbHTbS
+1p+6nVzaJwrupchXnrqdvCHfVu5PJF9/6nbysG0l9yeSbzV1O7m0reT+RPKtpm4nl7aV3J9IvtXU
+7eTStpL7c8k3mbqdvCHfSu5PJN9q6nbybeX+RPL1p24nl7at3J9Ivv7U7eTStpX7E8nXn7qdXNq2
+cn8u+cpTt5M35NvK/Ynk60/dTi5tW7k/kXz9qdvJpW0r9yeSrz91O7m0beX+RPL1p24nl7at3J9L
+vvLU7eQN+bZyfyL5+lO3k0vbVu5PJF9/6nZyadvK/Ynk60/dTi5tW7k/kXz9qdvJpW0r9+eSrzx1
+O3lDvq3cn0i+/tTt5NK2lfsTydefup1c2rZyfyL5+lO3k0vbVu5PJF9/6nZyadvK/bnkK0/dTt6Q
+byv3J5KvP3U7ubRt5f5E8vWnbieXtq3cn0i+/tTt5NK2lfsTydefup1c2rZyX4J8tanbyRvyV5D7
+E8nXnLqdXNoryP2J5GtO3U4u7RXk/kTyNaduJ5f2CnJ/IvmaU7eTS3sFuT+XfLWp28k75NvK/Ynk
+60/dTi5tW7k/kXz9qdvJpW0r9yeSrz91O7m0beX+RPL1p24nl7at3J9LvvLU7eR7RP3pU7eTS9tW
+7k8kX3/qdvKwbSX3J5JvNXU7ubSt5P5E8q2mbidvyDeR+3PJt5q6nVzaVnJ/Ovn6U7eTS9tW7k8k
+X3/qdnJp28r9ieTrT91OLm1buT+XfOWp28k75FvJ/YnkW03dTi5tK7k/kXyrqdvJpW0l9yeSbzV1
+O7m0reT+RPKtpm4nl7aV3J9LvsnU7eRvKaKWtv7U7eTStpX7E8nXn7qdXNq2cn8i+fpTt5NL21bu
+TyRff+p2cmnbyv255CtP3U7+9iJqaWtO3U4u7RXk/kTyNaduJ5f2CnJ/IvmaU7eTS3sFuT+XfLWp
+28mlvYjcn06+wtTt5G81opa2ztTt5E8X3OuQLz11O7m0pwvudciXnrqdXNrTBfdS5ItO3U4ubQnB
+vRr5QlO3kzfkCwnudciXm7qdXNpCgnsd8uWmbieXtpDgXop8oanbyaUtJ7jXIV9o6nZyacsJ7nXI
+F5q6nbwhX0hwr0O+3NTt5GF7uuBeh3zpqdvJpT1dcK9Avs7U7eTSXkfuzyVfYep2cmkvJfcnkq8w
+dTv52y42rjl1O7m0V5D7U8jXn7qdXNq2cn8i+fpTt5OHbSu5P4V826nbyd9GaPQKU7eTS1tT7k8h
+f52p28nDtrTcn0K+EO87+XPJny73p5Cvw/tO/nTybWEzBzwvO3U7edh22OzkS5A/ETbrD34nf33y
+Qdis9u07+U6+k+/kL0L+iR52J1+dPJ7fibz+ZfvBXw8uudWJPBngaovBdwetfNdjnch1cxv1mnQW
+IwsMvh62DNCg26C7oFsiD/9ouOuGoZCRNQcvA5fBplGGnnMvwk7k8mPuO92YojNvASuDTCyA+Xrw
+MvSUB1xGVXSOLtGlgQM3kMsPAUpwE26t0EtmKmNWLLPRYeLp1kaGXw+e5rzAOGjQSaxiHdvYoafS
+afCZ72nT6QYbG9ysQBQxM8QIsXHFhBirJw4+HD7NPA3+jEsKo3FxHpdxFV/w1XGCBnL8X111ahgz
+xnaJz7i5AFEKZjQzQmzkNRP07cqL4kmDb4cvc4+ZxwXNQz9jVDqxSZrkSZlUNPgz+qXX6WqFW4ok
+w80WRAmYKfERDh8VMxMZfbtrRHE3C2Ooa4dPc18CNgrfWmDONcZSJhellFUEG5WrQpWqUudOr9BL
+/C1XmXLKgCACO3niEsVspLFmlQEfBYvibhbGVaYzfJ77DDOvMZUXpTGiShNotdGpzg==
+ ]]><![CDATA[
+ daErfUa/XHW6UukSf8+001on6gJ2nFKQTZ4YElyEKXGxgmJcs/BJgxcGauzL8E2cAzYuOWMiC51o
+mnldmcRYk5nSVOYCYw9428T3mHtkLuaMv+cmxZ0KTBXaQptLEpzFWPNEQz2yWIOFsmHhpgxuGat2
+/oF9Hn4BfcxUrDIdawKtiTGks1U2taU9w9AkTjntzFXXuJbABF3s2Ra408AYlcYxOTjRQJiBkjhM
+ec4skBRIFyZhNMfStvDJYXc0z34Gu1Jqkru+mBSzm9qLs65wlzRJdWpTl6ZpFnRqDtdNqmBLL650
+qVMgBzeZTUwBgUCWAGMEnYo9Czmr8yiM5roJYkDgU8HipVDclIZPg3eATWUd5jyHkU/TKksyg/Fm
+WZGV6JXv9HOBnuNvDnckKSUjaQGOYnCtIRJlMmAKkIR/SDHiDAa3wnfaYRnM93FESvin+b8APmVi
+kgtbG20x/IstHEaR5pnC8C65zl2e52Ve5ef8EvQzeoXrBf5KsMlNnmRncKrTKjUQCPAH5Ym1BQsR
+oHaGOsesCT0Z3OegW/yXiAggXjIXubLQ3QtmvwBWNIKbPFd5joDHFGlRFGVxLi7FpYyk08/o56Iq
+SHC4ISssDOoF/BiwYcFE4pwtoOMxpJBBFzQskoZJJRgFMrg/uhAGCEBnMdRFYhBAwhwC+/hSDD/O
+qjwtYgz9XKrSAS9FWZYV+rnp9Bv5OPyhKPMyLS18wgWsGIjGAmUJPi0DCxWAlECdoWmAaxLK4LHQ
+qNaAnMgvsIZnqACsuI9CL+k5K/Os0EVVaozsUiWVqVyFOa2ysIMc/9BlV1ncohDMVeAVhGCiQFCn
+ZEIMHAksUgzjW8XGq7JuU6F7h88MiH8nGworlxQqBf6Ntfg6zBq+MMaU27LCqNKqqM7V5Qx5oSfS
+Qc4/xNwpFr1UFW5MK1NewASEBwWJIAVYXwt3CE0g/56wKhPqhlRhLgPCu2YG4jiDC6igwDAlNndA
+TQa1LFyZlAWGn1UVRqjOcArojjoN3nU6/dHgthhsZAgwSsApzcvsnF7chf4Epx3BRUOVCbSNGO6X
+QZ2A11qMKUFceYb7zU1hSyDlDPyXsJm6PAMXBeaehu/OKXUafNbrZJHo3xRsaEijQIBRIsSzOewv
+zCyQBLeXKgItoiUvhvtlUKvMGAM5LFBJQM+LIoXylpXGL+daAv2ZZ54aFoQNxyzkkEIGIwUfSXEq
+3DV9O7xwDDGkgJ29Vwahvns16EEotfBJ5LOAJAX746DAxEJZkdxZCZKgU0RKAZ1hbAkrKX4yCLHP
+FYhLA0cHRKaUhDpYJgMDp3LIQMExk1ebKYPhLFJfKbHTxkDbSNBZgjS3hFm/QI3LisjBh/VGKG86
+jA14q1jDY2aImCG4J1BpkkEOs0r6TvE2tBlWiGWg75HBWC7jLWljRhWy8DPcWAk1zqDNMWCkC5o6
++C0DK5+zIxAXcJGOLDiGjdVsZTNmhowV2aQzGDDiJjS0mcXAMsi8DGbpwVQ6EPgyODKNJKBAHGSs
+gieowILOCDa5xUQnhStyccW1Iy6RrsBMJdB04/3cGcyInEg2ubgJsqkOkoo7MiBzVLuEh0KjbjQR
+IRjVkEEJPdBggWYeYSZCAmAmARsZB0MIgZraCuICsKY50siBpQjMpGCE/J7mwXvflsMp2DxvZJCS
+OfIyeDg06sdzGorsEA1VhkwlMpYSlu8MJgqERRrKLeFo1djOC+K8CMxpZg+TDFYyijwINo5FQnWW
+MxgAFMF7Y44QWUQqgTBKDo0oPA0YuD+iJhnAvyDNunAKjJSmMBrqYMCEQpBfITSlhIDSgdx3TGcK
+i5teEDYRewWHrQQbCMkg9iPFkQgqhzE6w0q3LsGyWy4wZodRF60i3xMaXec0CuKkiBpcnJEKnmGP
+KmPg2WJrbQ4rGfmEDLGGk4ZkxsHcQkoR2EPiAHLkDik4IcXBrENNSPspyot8ZEFJJUyFphJBhPA0
+bxW5Do3mMyAy4KwyosELF8gNCkV5FFIRZOsXyCJFdkVJsSTEijs4hIQs0rbcVo6mDtzl4MWx4lzA
+WuRjWWSZ0IICioxYRQSAZE2xMSVFPkvhxd4dGDV5vURWBRdW8Jnway4pwYRDInLRCmPNfFniwiXc
+mDtCcDBnWGWQ1J/BWwpRGSDOcjahIQcDDJG5QmgIEGUZxOGg0TCm5G5KxNcUWV3h6B4GYinvS3Ui
+5bpcArdAhS3oGOL3M9J8DUYyVXBZ6AKG6to6zK8muWvNHCL1MhaKoyEQyufKzEHDS4ISpz5wjAwi
+qkVGcHb0caSw1zi6L7Kr47qkYSHn6pwCExlMxAVsGEgjh75VVJjjwnnsO/EOMSllmMMK/FiYYc0Z
+dQLVyOEOhQVyIgVsKPS8BRHxTjgihyDG6K7IrtX3sLzrmuJuwoXdDMa+gjykPkrlUC2dpw7cWa4/
+Zr6Ql0L7Dfy5+JIKLDikpaTQKWecEdwADJmjoBQOgcoy3hhdebQ7Bt9nQYq8OUR6BhsxV6gN16hT
+X5amb4fUpRdcASYO4Vuh/TESI7LCDh49hhRKBIakCwrDN2AgzSiXoYgPKRz8gyohWfFoM7Vgqsx7
+vUaQhasE9fpAvTqQ+K48h1QRrnDBwh0aKEoOFgzmN4ajQJbPfi7JydaBhzMUgT0a13sBU8yDakLT
+B0teQ6s09mqVJliXKZgz6eRuz7ycYDCRFYBVMAslbGZbILA5kXMdxsGHq9SwIsAAINmn0NT0XfL8
+wfeZaFfK/DqZGGrX66nnsODyNpmwEmACCwDS2ZRIkDLk2KSwyHkMQo4ManCBEXVS02NrWrvkUS24
+z0HHXUbE0g4vVhrPofMmLG7iqlRr6A78Lvk40mcDFhSYQJiLgC5zrBWsBZdEjWvBo4WXzhL2+EJx
+vRLb1uktgGQ4PGcfB6i4BJIqObKFriAgtAhMz/ZiLk1cN6gFT1pQu7VQnzSqI8VWCg0vSSpu4gxl
+yG0KZVAcY1A8W0ACZRohOUg4phjUgqevBrZtjI2WBcWrgTBKBdUrATIYTQRKFGFYqEEGBqjwiFiK
+xBMEpl4LFlgNvNWCBR8ipyRDEr2zyn2iR24hg0miwgGVfzVsVAaVyNkXNFpw4NX/+8tdnzD4gAXR
+93rZxCfbsKkVAvMMMErgkRPKilOkSkjPSkTWFGHF4guIfIY7eP7gG/I6Rq9XHqhiU8IgGaMQjF9c
+CdtZQQoJGLCutAjRTSJaQKib4Q4WHLy0WhnqXLVCAhE3qmzgmjM45wgMpO4MNeZiDul7TxHur9d9
+8uCFgd7qA1eOSQYJXB/JoEwvYCCDHTKWF9QyKEIRKsJ8BhYwVi2MKFclGTiYU9KD0uZwwAmGTmW8
+PCWVgUMuENVVrSLM14LFLG0og6SpXKYS38EWOSoHyIKahkM+I6qLeQVkVlC08OCFgevC3yXJ4A8w
+QFZkjFoGX4EP65BQiyLM14JFB1+zIDIgW6QRHFkGEUd3BBvBETGQiiLM14IVBi8M1NXjksvfvn5P
+CkuLTtpdMHQqK2VwyLO1YKXB1yx4ENXlbzaVvIxFTrliY1SxFuSNFgSFlq4WrDr4moG6emzYSfmF
+RA6xSRHma8HqgxcG/CIQhwdIPGkpN2ZFkJVoBTtKK5ykBRpaQEsfRT9B3mTwNQuJBGahItBadNa4
+ZGIg5/XwnLXg3GgBl4kksnpwj9eTQqNrRShVpjmI9u6ggj/zWmAufu3Gl4mI/M5K0ZMHT61VBAqL
+zuwO9FVMcW60AGk0/uSSnIvMfv3pgajuqSrTroaKO3BKIdm/+PyG1PhMWuAu0ALbrsOWvCXhoXrp
+k1Xmejk3R+AcqQqBaeGDopyDoiyNnaXchoqNbZJP9dK7GFhE38Pl3JSDooKXcx3UOGI1Ji1Qjgrs
+TXpzR6lr0cG3DPigKNiTobn8K2rMxUaDqO5y5c/agu+ae8iHGJCg6MxqnEJX66iO1ZgrpeDDIb25
+0uR5ary4mwjVWElUp6NajWnwjSazPxNN9isft8LS1eK6Oqq7UmPC/KAmd6sUn15s/ITBhwwEakzW
+pqvJOTS5DkvPnfW/zir4ytFF7cxIjeGNyc53NblsHHJlzsEi8nLFxvsZYDUmDysOOdRkw2FpwXao
+jaslorhiYKO4zquxrIQGDtlE5gJNzjgsLT0DQZ2oSY+ZgQ2KjQEDsoTdOmTDlaK6SkG7awswQTtN
+Iy73akRLWcvA9kHptSaHcbVkl5Z3MmtmoOMJJCi1jzLw1HpdG1fHTVytkV2WvFHBwQoV1wzUQemD
+DDy5XteaIiqz5LxBjOqlZ2hBDEVGhgMrdAGEmAEyVrPd8cKDbxmoI4qq3mcLh1w4C1NKe6Eu8ANn
+KDGvgN8VTyw8eGHgOjGwvthYILsEdPgJtAqemEIjWNKE9bhm4A4ILRiUxld2SCKKAt7YIDlLMfgz
+bxJDOJTzbnGypNlVoXG7SmnNQrfQRdVS43eGUTrgcnAS2xTRxKXZ2WjmxdQrFRvrfZ4p2yEqudPD
+Cjz4mPdRGSiBQTxX+V3Ks5KCVYNSb0jZDlmtNJlKKIKFMaINYRAH7KhDXnnmre5lN5rYaPA1A7Uh
+lcyGatTIDSr4M2URRQA+9PBNZIzOVAmzcyOv3CQoNX6jKj8b6HgZOYc/i+RZKfxnocJKO1Ugs5/Y
+CbVJUNoYUvKwZEvlqZHUKN4gmUMKmdWmaJ5YUcMpwWsEpcrvFqbHjmJoQWIdhu/gx+jBJ63SYGNs
+sLt600pp3C4iizNQyM4yrZEhA/mQgYMFuphUn5EQOF/deo0ybxQuIhufH8sSsoMpOhsHa6rAgoIG
+WF3CC9ikCBk43Lmn9PmDp3b91EJab6WAHaLdjonViOQq2KACDNAjT5HUF4n8/i2Zzx585FnoMxDr
+0hgwEEMG9CSmBgORZ6DZU3rnyvcigx9noAADJW8LjmCDtM7BgE64zPvg0v0igx9mwAwxoPi5SI1o
+7vICew+mGaghFDBADho8PMrA4pXScR1A8EOhUSlCeISBxSPq65g6ZjPaWCHKZUI9vpOBVSLqMKup
+txKxH6CZP/Om/tqSsiGay8BqEXU85IkP/hHyiJ9IIF9mQkv6IjXqawaaWOjgn8KOTA4loAcqdOOM
+ZzCwekR9xQDZeQpIC34KvgCAHJ0rgHDIISW7ycCGEbUv80p1IkZyn/JDBxrDzyCDCPFchXjOjjOw
+fUSdBXu5KKfBvPPDRrmPqM/MwOtsnKgZ8Nsy25Vv2ZRZcFLmkNHQ4RRJj4EmFnqFiDosMZ6Dxwdj
+ziorgEiZHDmNQkpwxcCrRNTXNdKMgyHK6xMMvUJanFNW2TAQtxH1gwHpEwdfM9AtriTwZDlsEO17
+ohNOKC2OkFV6Bl4rou5uX/HVIRhROgnkgl7CkJY1A2Rp620TrxFR9zaiUU4JN1bQc5v24qKWAfJx
+Ltj38RoR9SQDfEIalYaoRm1irk08xMCCxqpmIHwSXoOBsmGAqkbEw6MMrFKjHmWAyg==
+ ]]><![CDATA[
+ vODhUQZWq1EPQohm3gvhEQa2qFG3DEiN+koN7mFg5Rp1x4xSOlBb0toQDTGw/a6PHgPyCHl9rlHe
+cQUhA099xOyTyINQgleB2RkbdsaZd8YzGdgsomYGiLwNhzSHQwhDm2hCGDD+PJ8eAy8XUXNAikTA
+x3MtA1lTZH+xGnW45u2ClEAi6msGgh2YdUS95a6Pq8QyyColKaOcpgKQiIFEW5W36zSyMtLbvbXy
+4EMG0mZPuyw0aXNGVllABsRABQaalTLS9wePDXjy4PsM5M2xNIlfKasZ8Et9Bz734M5tsIsN/pqB
+urx1Vpk2vFKmocZFwwA/DyvrrTcXjFcafM3A9elSVGDU7MoSPigkAwNUeDFaZ/5wt3L+Pt5FB1+z
+cL3roPB5JWX2jhiguA48MANnlfijiGYzsLil7SfGhovsDoaUfJzNuEJHNdK8w8C2z8eFDIS1lbo4
+ZKRGTRW6lGukhtcJlN+2cnPn02o+7uoBJ1+eo0RMZ0YhtVGWzhvUXGZvGbixdWtVB926Mtm+RTPv
+i7yxr1JTmb3yKzWKFzrs+OElq0cXV56AnFTOj67DltI6Aa9500LH9VKTHa5SbxIaNSs1RB4u2ter
+TfV6n5peK9s+KO2uuEZ8tldBZ0kZuAUwkF0xEMTUrxCUBkcNclqg1BkhER22XPFZ0BnCoUEGhHzL
+wVPrHjXoEJSW2kILLJ/oVYKRWKfwA3SUd3Mcmghug0MbeuTXRw3yscVQYwUt0Jj7At01DMi+D85l
+iuihM0qfPPiWAbGlFFUrPqcvRmKQYOg5mLAmahjgc43S7vanzQYvDFwfeZr4Y4lSE2HotJnaMAMX
+xUe4U6U9eywpWDQoNX7ZXg57VEjNLKI6zQejMwPk48ADGEgeYWC1oNTVZ4/DmSEVgAychEbgQUfK
+JiWnlq/xcN81A60dsggnciQGJR25T4MXIWQ6Vg7JfX3q9qxndFcPSo0/UymDNy54dQCDJwag1TpR
+KZJ7M3w25kaDDxloDelZDttMYIpiRpGFLyu1UjlGbHsHrG45+JaBur5SyOF7Zz6nThigk9C0rrRB
+Ypwgpu7FExsOXhhoo2oOSgt/uBhQ1DgDBKjahd5s2JVtFpR2zj2oGShhiMQdpwBR7u3QiCHdLK5j
+Bog83IBz9vGEMXTu/xn/h12FFrSn/1ehHdo0KPVP54XxhOymprzGcVoQc1AaA0Sliq/OSVavEZR2
+66TmKrOkDVxJk1leRdWvEpR2K9VS6M2C7UP1fnbVnP3Pgnu4TrrAVuSh3TeON69UvUci+JCWsE66
+9d6Doc0rsvfD2IrffBPzy1RSXcpuXjV+/M3qg68Z6K66amjA2WYu5pOhLT+YVR383gMX7OLa9iSx
+kIE2s6/4GVENAFUYeunO+I+LjWdos+ETz8/Bks32ldL+U7p0bAadJRbzGdbkJtLYv9EmB47O9x2F
+trCbCLcihyce8Il6jgrsSMxSfrNQaks+/ia5esBv60ppmFV2DlA60AF0fJKYPKweHn8z45TklRz0
+yKEZpLAXPv7GXJ8J2Jz7P7F4v9lWZH9WAKUDMR/DRecd0DHucRaBDeWP9gwPuB0oUKwcGnUYOPDD
+fcqfIyYMXDIEEHw2acaHZpS9QzMaNd4grht4uK89sIEOQpOjPWNIoGagdwyXMLBRUNp7uK9WA3mX
+CZ04UdTHSvI5YoWXwJUhPfjV/5UH7xk4fPFldLUj3z/pTZa0PbABNhWegM4zLK7fuyDZxMNnTjyl
+Rt2tz1X+jN4EIErBQntcAPli1/ri1whKw0Xjditswhu4rIsQT+TozkWYf9pN6jck15VSsaR3M/D0
+iFoH1SHLZXZ5RtfSHjT0CsO/8HPSZ37rwWPvclpg8DUDqj6uGvFEwuvekc7BQgFzSutl9GST0aXm
+VzZcV+nu2s+7WER9fdAzv02G3o7JLzBxdYGOS14qpxcsIrVMx17Bs+rghYHwhF6oZ0Jvsbwop85a
+81tVc3lLqUFenGH4EBLPfw2grSPqKxmwHsgrVit+I0bBK+CAfonBG0QRMFRxCUHR/I++4HLFwQsD
+cdR5Syy/oTfj1wrDMdC7P2JYzwLoijF8BydwvvWK0ZUGXzPQvqdX3pGcSmhEb/awEIfjNx/HsD05
+Zj/xbwuefMnrymXezpuSyc7TKzHS+iUl/PbprHlp8403BW8S1yWRvFeJa1btu2QUv3VI3gCe+DdO
+51Pvat4wrkvaw/Prt52X/Ha5S/MW9pLfwD76tuxXqJQOvUtGetZ7efz2BfYeedyoQ/guGcvDtn7o
+zUvjN0vEbpDXTLSvJ6m7/F4PfuvVgQnyuOn9d67Erz74tsUjfZ1vfyr51cBX//ad/D5y3PLl+acf
+qvcf3x+++O5f8Gv+jXmHK9++//vHD78cvvjXw6/o0fHfDl9Ex7/Q/76l//2e/hcfI+7f/QO/nSJl
+j/95jKPjHw7x8TvcpTJ9MnHkjlrpkzJpdvwbXVT4Oba4aE5xlrqjypITHTSHK/ZEB27xFYrocMWd
+UqT2x++JMD5lzhJhhtui+EhXkDtkR63jU2ptwoSZcgZX1AkBldCpUxrjUxGsn6jygbvMydDv9mRj
+Tb+7msqdFKJ1ItNRdMKPKS6mJ+3or1F8siqRK5nhK/aUZSaWKzEYJMIY48xo8HQxSfBFiT7pVGn5
+qEzj/oT+ZFIeAx3gyIQKY85UxgNFnpryvNH5lMyg0rE60j30Gm6eGYqJa8Lri3+li/gQlzq+mCE3
+kelVccw/0G4I/JCeIqPonuQE5v2nZRhSqnmQKo00fzu9ag9XohOyZj+91kAWscJHaSGkYadGpkVF
+qeX5tJEyPMNphIHRDNDL+nAlOsURbmbC9IR8MD2qNDk5p0U0mcFEKVcPBh+FMC07KotPyIxMNV20
+MSBkwHikM/78KM7wjWA/MY5mODvFaWKPKkkwq5EQGgg3MQAMhJXEdJvB/QipjvB7gEsCLow6OfrG
+JMtOLtWJECZg5P+397W9jttIut8D+D/4SwMJsDnRG0lx9pNkyXOD3Z25yGywAS4uDjqdM5kGku6L
+Tmdms7/+PlVFSbQp6chqWXY0x8RMOzouqVT18KkqkqISg4P6IVY6ZVXjNG+OpCm7z0IbFlSAhaia
+PtAeDHz+JDMxC9Kj6ayDQRHPR/hPqDEfgHQtggTWHMZJDH5G4MGp4CvcEfzIOCadDP6bAG0TARMO
+xjF1CTINElsWo5fSwYLoP3yH+I1lDfLowaAUFMFY7pb6EhuaUZLRlyh/UCgiGUCwNr7ECsiQfkYo
+1CbBzxI+LQnGDpfAjeUulFj05wjISFK6K7kicKYjPqjFnXQkjqxAEDlu80VnfM4416oT9A8S7hMF
+//FB3JSlfo9roZyK+Qi6q2Z9aHEcC4JnXL/F3UWpqC2njbUYmm4tBVpxBD05yxM+khgr+scwlGaa
+g2Myiy8xzm+MnCo3lkwH56lMjlg4SSgmg9qsBs6QkitBOjGhhI5YreH1gEPf9BErbvz73avHr4oP
+H6u3bz6+ff/u9Yff9n8AnT9+DmbOUVvqL/Zf/eXjh7fvftx/XpbFmze//vzN+4+v6bdf7P+Ffvmv
+9H+7z2KweAYSj5jEyWjOCOYBbKmJxMmPAg2A02jxmEIPE8qKY3wBXCOTx2wVk8aCSjgHNa6zX8yu
+iXI+Eb4khFJyjSWP4wg4J2tcQ49G8EGdkT3hmhxnYg0iYzW7hl7SIHHF5EnjmkxT98bBJGLCiqS7
+8qksuRKuARuJl7VxXMauSeSgRbEOR6AX5IwidG90NkvBykrUQomeNo5xxsoJc5r9R/vyCommacqC
+iXEdkrmQBc0DhTThDiIRICEyieOXjOIliMMkmZa41VAnlAfxWObHGH2dGZkGb+QIC8amEwQBCq2g
+k8Z0f6AXndOvyF8phy1YNKF+ACfD+8YFU9dZgV/pAcQTcZ5KPxP4g8ZT4pUAMm/6cATMlt9TGiGt
+/BtB7/Nv3717/fPTD/sfP7z+4e3Tu497rb7YfxlR/0voX3rX9f5L0DD1JnR7m5k9dWvNfyWk79t/
+5CjCBxFztjcIBblGuCuRx5BRjNl/GdNNxtb/In+hcK8MGwS9PwHISyD/r+gW/Pr3T+xrX/mi+6/+
+9P7jN09v3n/4AXfOf7/0lr765un1T//xGtf8bxLff34ovv6jM+F//vX9h5/lb01P339e/PD++6fH
+4mv7iPv4y8fffnp67FQ6JQQ2QJRSpobOoNC5f5YAk3GIptiutGRh9Gwux/9Ycz4V0RfudEYryauA
+EoP+wrEjy4kt0YEMY5i6uSLMo7emGQcO8HOUxW18iVUisSM3wvA2oswGR+gV6HxEZUS8IBp6EEag
+TkGH+BwQRwfPhfYjirj0RdgWUNb8RcVpcpZVES9YYdtY55a/6Iz4C4pqy7lVgh9rJ6hJG8MdSFkj
+PQOXkrAXZ9zP4VFlXedsAgl1qZTDDPKg3EFPYj5Min6eSe80RHyAJwjN5QiIxzkUI26JmI8pucgz
+Cu0Wf2Lv4Aj4KAdxpi5TJTE6RQo40WvchX7SRH5mk1hy0RSJF45QTI50k8yYGGGTzs7MQEfoPZOc
+1yUp57rnoHnTh6SpJGCvQgIgQQXbf4kEXfPPui/yF45CHC7gOR0h8vyzksC3O7v//Iv9d/819PXV
+46/IQLhGpH++kX/+KPfh1YavHqU6fPXYWx/S4ZkVIonOqxHlojOqxFePs+tEiM6tFCE6t1YU0aBa
+pMMz60USnVkxQnRuzUiiM6tGEp1ZN0J0buVIojNrR1J4ZvVIorPqRxKcWUGS6MwaUtA5q4qE6Nw6
+shE9qyTp8Mxakvr2zGqSRGfWk0RGMyvKPjJmEyxWVRLtS11JYUECQG9tSWafV12Kw2bUl+KuWRWm
+uGtWjdm46+IqU5w1q84k0XmVJmk7s9Ykv8yrNgkiM+vNPnQxoindJAh2CSdBc7W6ExebV3m+evwr
+d53FE897yzQl3AUFp0SkOSUnQWFm0ekC0pyyU3hsRuF5kqJdVnqS6Mzi00XtOeUnic4qQJ3gnBJU
+QDKrCO3D12XMcJ1i9NXjzHL0n4gZvh1IR3Dsw+vmZouv98WvH9/vZQrz7f88dXcdXvTP3//y9OHv
+Tz88/tvTb4/yq1/Ox8M/L969f4dbTKTS/XUXwwA5oyTmyU+eND2+/enpD+57+fTj23fNFCoKZPwM
+lfD/cTOmVKEQXNX+/+6B2xgORUr0t/4f0H+7HzX/7PHvPjb8J4B8z7O4fEmax/3DHt0+t7vPvvsa
+x4+f8HkRfxF/EX8RX038Exe73Fb5F/FLP5NXKT3j90XEV773f07xazjuVuIrm24D4nfiuNXE78fy
+dyK+pOWHlkwPtJ17IPPydrnfn1eeP2ta/n7E55tuusu8pwBIPHw0YLzNhs00v0/5XMPy9yO+jN9H
+nbjjR6Rmt37xRWBz0b0PAONWjltE/LJ7n+L9M8dlA00933a8a8BYGzp5L2xGQRK2GQ==
+ ]]><![CDATA[
+ dLGm4xYXn4j5Qe+P+F2cpb1mgpZ3bcc7ZTzfwpNwI3H/WkOAGaCULkjNIo3fe3YxCegj8d1/etH3
+e+Blfra0e9IUjcRLrx0mNO/3nbh3TncV655kPYeNh5CObYZAMkodWypGLsVA12WmeF/84rmYxCtu
+dffsdE/HG/hA3H3z++jRa3LaymseeOjqPlRGQRKi4jynnUsX9+B3/zMFAueZ1RAGQu+f+V08Lp+E
+W8ot46bchgBdM9TI72ag+T8W8cxrfPId75hAzQPPCVR8hgkQ0kWZIdIYxcOzdHErv09BwlhaOI4B
+NmBH1GxnJym+EAeJ43JuBbeS24EaOa7iVk9olddacTmbnNlyk2sJeHzAeAgRlJLyAhIfHiF1hHQx
+kl1M+Kzv9xADU9PCAQyQuAcDZ0Dp+773xQviHXHckdqO3u3KjXeYSTJuipsOmnG7uLSNxOWriIi4
+nEo+4mq+lgMPA0Y0IdgIVHyQCE158HDUEaCiny6GiOK5Hrea33vFn0FqgIQuLQyo4AQDYkzp+573
+O7+Ly8SzllvJreJWczuetx3vSURm9g/XXhPxA7eCm5ycL9TBRq4uH/GYgETIRLAhyguMm+RkEBij
+RNFlVhMoYh2/h59xrTrlQ0KQvjCEgTa+i225Szr759zE7+xK6cFpxk1zM9TI7zk3O9rkNyzixBU1
+EpdzyvnFMwIYHyqij1CKh40uSAmShTQ8YLggMoCHroKeTBFnlr+q38eR8Hx64CcGEjTFDmyTLjET
+ozEGXHotdhbLi/flI+4rqJHjKm5Hai4nE9MLhtKgJV3b0e6u3MT8fBJ3wgM3voqDDUPF6cCOIroQ
+kIiSQlZyavGhoELoQoII32yXXUh3CCliAhJuPvgwDstxNtjxLmDU/LRQTMSd6AQDzADCFtJtye8l
+N/G7GF1xy7lZbqXXDl0jv3v/6X5QcBNBOYnhJqcV8DBadvxeHGoCEuEW4RP+uLgjxCWokI3ymtzG
+cZ1EEL4tFzh8PAht9maVk8nhGn4PDz6DgWfTAym4mBBcUJAUnWOu61Dcxdr47qzN9nddWHMTJ1bU
+3DigYIj77o7esuk1/+Mfl64uglIfHKkRbGpuAhu5lkBFJCXN9LEh1MEfogsBhtCFXEC6uOBBOFAo
+wg8ZZ1nlULAY/awTJkauPhga5KYkNDD+QzbY8XaN1KQ3Mes6QmYecAwgHZa947zPbtnx65SoWW4F
+t5LbYaDJX/mXJC4iIi6n4lc+ngBGkjtBiFAKY4NgIx/xmxCXAJjB7ohCMk8fD8wP7ZCXyyqls0wO
+FrcKEyNXfwYJXqLYDfcJVXKN5uo47kQuKEgvk1ggPNDwvIDI9XFxn/iXXmxTu2kDfwjJKyMh7r76
+P5DC7siNT6IqbnJawQm9A4787kDC8BAOcdQhQBW6kHxDshoPD4R5YSCpUiWLkGxFgoVHDifMcH9h
+YvDCvoZektBxnZ8kyEdIkjMrFxokPZBPkxa6oCDkzF3SdVV2jXMWO9G5WDokY4f8Lp4LPypoAjgR
+b2HjQ0VAIlcUBIqkjEwIXUjWwTlGl9MKJKRzS8iQLEKySj9YeMzQDbwMkcPo52ZV5FkJPFQ/ChL8
+ksFDAnUZrtccGPzQIBbmPujYQLqq8AD7ixwnfvS9b7yWB837K4nL1xAwAhKPTBwqSveGMEcXDFFH
+FB4kXC4hWYlUHBIHxavtmNUQOfjDDncTJs5QN4UWhjihmx0YpYUTThAktOmBdExmchcUxFniuCE8
+nPl9vIWoYLC1UcbFFCEKoSkJHJzNupAhKYRUHBwsCPM+OcgwpoDMTxsGaorzMerRzyJ+7xUfp4Wh
+VKGrIiVvDFMF+fAQX5gqUJjwsgWXKohvhBx8PMh5z8KED4+wjX5IPKQIOb9PEaKJfKQfc91Byvvk
+IGMbMrzppw1SSUmNKTXFxDAxiocbzEV6WnWgHa8gpMP74wntMC8byg0JhRWE1I9+6ij9kema6EJS
+PnGQZBH+MpQ4aGdZZeq1LGheLnGSQrRXF8RIZSqFhlQhNTeRlkpTRixlsoNrCqJKkRT3ThhweDZM
+DJHDRX6fgoTu6kMzUKOjCjt+Pwo1CRNSRwg5hKMKPh7YyNTjJGpIBxOjiy+kJBSQ+DWmV2mS4/yS
+04fQEJC8WoPEhzJJQYJUFoIgGYIQrusNE2EO6ZFDyAwXTWV+ot97xQdpwcdDONjYLhLzw0QwvOAm
+HfzBRg8P7WCjG16WjwDDG25yVYZYLe4aOc4bg3LNH4AahVAHG7+FwxFyQgkQHid0Y5WSM8gUqExq
+TKgud+3yvFlDT/cbJrw5CFdNCFN7ExBtAX4yByEhQ3qWRF5/CFo+3AeJLgQk/oi0NIFNODotQGoG
+G0+wFMImHL0UdVmKri5nkytKgBAkyKSGjFRLwiDVxFmYCHPIyUNP9x4mRucl6d69qcnBeUmpNOWM
+8mnpQuAhA30CEqnoJUD7c1XBjFWb1/lYckDyweMDpu5aN0Ytf5KfiaCcRJJGHwlSVzYT6G5CXMKE
+zHpL0PTJQcwVMEM3vD+BHD7R773ig7QwjoeJS1aC5Qr+WgUynT9hLT1LSEPwJB9xgPRnLw0k2MiA
+jz+RLQ4SIHkQcrDxpjjJ78ICPmD8JseDySw5IV3dA8OUcWmfGXbtuspZNcW9hInRlWwODxIy5MMW
+7AYffGDIGSXcCi8LxwpCJKC0w7wHr/nrW7xVLo5n5IzyaZcu+LARJ/qcE86Me41gE859y0kEmJIw
+iCYBM+zahVITyOF+w8Q4OcxY2SgxW1Ah9pGOc7bCTS4jMvLxV7v5a978lW9tDSvuECz54Ak5Rzq1
+h5Ouv/tBym9yXH4jgsIa7coHnxy8zGFK2nDzMDEEiSl42LXLdfxF78GC55P17fJpi1B/kbPEVgGJ
+v/zVWwTrWrNA7mRBrKQlop8PIZ9zvOVz7dBHD0i89VQn0cdrXW4zRA4MWqdbwAxdl/HHpe8gTEzB
+Q/8Utv/MyOhDEGd00QMPfzG8vyS+jTJ+VRmskO8B0hlsBCr+qloBiR+SZFhsJKcN19QF5OC4yGOG
+3dmKFyGHoaGnaWFiQb+PI2EsqwzxEASOXfuoUQgM/6ko/zEo7+mVXbsE3QOM33wVQiC1s0I9nOOD
+xMeGV+N0PO8vv5RoEuLBZ4Z2xUuYOQh9iQ6jQ093EiZCSEzBQ0cXIVH44SPERjtm5YMkeIDupJXn
+bdeuLfSfhBriHP9BDCYQgo0PDHG8RBMfD37g8PJPogsfEgIY8aSI+2ufBIczwsQwUS/o96HPyNUH
+KSIkigAbXXYxBJLRR2u7GnboGcwhzmmW457AI3xGQ5bkCR78YZBmkPkk1fSziDBtCIaezsNE5M1Q
+zK0mFvf7s+KXEkU/XQzA44RAvHYOmyEIDTyd3cEmfGzTr27CpzbaWkaihvC8LM/zyWEobXg2TISr
+XIKEYeLcxLX9PvQZB8LzdDFKIN29j7cQQi3bhIgaf5h3ZKRU5tzFW5L++WOkkiJ6zNCFCS+HPFki
+61cTwUT2+aCTPzcxAQnrhIkR8UlEMYCN82LkwjbGNuPpSrvuwp9jDefcpQzxg4XHDOR3P5P0x6+E
+LvxqwksYuvXzQ4shJ6x8u5MwMf6ZSheTAfOpsDljm3AaxacIf7mmN63WDXkJOfgzrf44lb884uxx
+m3BEWsKQv6RhIHU8DxMDn9v6faL4BRiYAZte8fFgNISHthjxn/gL12BIJhkOPjAP7E6fzjt5uCac
+mwgWt+za2f/R7HEICXfl9+mfxfw+5TOAh27ow59G8ckhXIPhpZHtWOXJ3IfLDnl+yn/4LhiI7p/C
+noyEs3tfzXHri8/3+whsQkiMPgd6/ixwmEl645P+jJhjAznePCN2AgZ/QWywWj5MHc+VDz7347h7
+EH8eNlOCRTuhNp5JysfHgzft1U1tyEFJOGWgyUfCwJq3LqedPNx0W8vfufggO/Rmlf4ESrh6M1x9
+4Q1Ldv3d3yZCWvjYfoCEtoYNn7ic8XjdPVj+PsX7w4QPiQmZpJ9G7tp1FxIsIm/FheBB/G695j2h
+3xYjDgz+8MKEJ2hewsSni18QLDxm6IZ9/JFJP1gES7POF074+wX52zX4SJATenVEF6Rm1RHLmm5j
+4lOCRVe/T1/N681Z7M52FvJX1Mh3oQ7xZ7BxB7GNuNevI8KBx4GEoeW6xU23SfGxMDFKDuE6/24G
+XPq1P60pHx8P/kZhfIVdu97G38Vl8qLoLkxcGCBmm2574lPIIawxuwn0cXLwl2t6eOimtPxNwPxd
+nvyKsnezjsmrm65nuk2Kj+PhfIx6lBxCZtj1LpTydw4UT8qcVICEdqhzfHOGISTcueXvTbw/TIyT
+w0BNsWs3IhsnB//jIWHXLl2QkmT6nk4taF/CxBLik8KExwznU5n+8n6J9RL3w2Vy/KEwEW4oOlRH
+BKnjbmTrvwlIuCvL35v4ZWHCe1z0mTDRTi7ImKS/en8ICUHquGt3w57y1EzwuXPL35v41DAxMC79
+/LOBgoQwTLjssEsdSXxC9jiEhN4wcVXTbVV8UphYpJo4CxN+9jiUMASpYxcmLqwjrmG6jYmPI2Gs
+mhiaofAGIdtB5pNnc8IwIUgIEoZ2Rmw8exxCwp1b/t7Enw8T40g425DKzx5DWgjqSj9h2LUr3MLh
+pgkDj73zsFc13fbEe2hhCAm9O42EcxNDw48eEs7DxIUDj91E6oV1xLKm25j4M0hoe9xo9jiOhM7v
+/vO/8l3CxMBwU7cQetbzMtc23cbEQwOOzU1MQMKu3ZBqaFYieHGJnzB0M+CTp63PQTsrQMww3VbF
+x2lhaOCxy+vCZbHjSGjnJoKc4bJNWmbVEcuabmPiU5DQ1XGjK1t69h1qq8jRycrxBQxdcjJ5PmId
+021MvD9MjA4vjCOhm1wYmrYeXcDQFSPhKPQlC6FXMN32xHtowSeHsKI8e24iWB09HQm7ZsXLM3XE
+QEV5Dtrgc23TbUx8OhJ2Z89NhANNo0jYtfsW+rQQ1hEDFWU3IzZrZuoOLX9v4kNA6HrcpUOO7Q7w
+/jr5oQAxgITdyHtGXla4XUf8zHSTAkSAhF3v0gV/dnIUCS1sxmlhCAm9c1LTkfA7ddw1xKcHiK6O
+Gxh/Pnmwzl8O7Y0vddXE6MLXISR0tczL0oXriA8hoetxQ0OOIRKenZMKV7gNIGHXu3RhMhJ+F5a/
+N/H+MDF56UI7mTg4EzFhEUs3Vjm6oullTura4oMBYmDIsRv2GXj3bs8ilrhrLV2cLFoYfUZmxo7Q
+65huY+LjSOiGeac/L+OtdezSQm+LUUcI4TL4YL1r/2Dj72dznt+X+FmEHaSFiUsXwm3fJFjUXhMM
++GzQVpFDq9pedl1YRbyHFnw8DCBhLEyEu4aW523XLlnx337uJwmCtJfHaVcUn4KELkCPhwl/Q0gP
+D53fpQlIBAPBG8/D1513Q50TnpMKkXC3lr838dCMY2HCn5kK9nnrFkJ7u5r37EotTQ==
+ ]]><![CDATA[
+ ACM5hscGu7MlKxe+XehlsPFTxJ+hhaEw0VYTPjkIt49vY+52a3LPxzmXSnogiPJDwygSRpRfx3Qb
+Ex9Ego+H3jARPlYZbG7vo6mjC/G+hINxDNzT6+c2Lz5kzOeriTBt8PCwO9uHvA6aHPcx0JseDIWG
+UST8Lix/b+Lnfp9ADiEz7NptUnyKGNis3jVvQ/suyoj4UFB4bi5ynBYWN932xJ/BQMAMHVGHwSLc
+UDrYl74rQv0f+BgYZYORucgpSLgry9+b+LhJx+YmQjyMbCgdtpNX4Qbevzw9CDFw55a/N/Exv4ef
+EAlnK52GgDHUvF924kOJwXPpQQiGq5pue+LPeH8AD+fDfQEwetrZ0sTwB2FKMICBlyryGuJTnN9v
++dBZSX/reH5KC077PFmNIuFuLX9v4lP9Pv45c1wIksltYlo49PkdWf4OxefZvLX8ODCm+n2W91+q
+yGXFP9XvdyO+vuk2Jn4rxy0uvr7pNiZ+K8ddQ3xl021P/FaOW1x8fdNtTPxWjltcfH3TbUz8Vo67
+hvjKptue+K0ct7j4+qbbjPhtHbe4+Jqm25j4bR23oPj6ptuY+K0cdw3xlU23PfFbOW5x8fVNtzHx
+WzlucfH1Tbcx8Vs57hriK5tue+K3ctzi4uubbmPit3Lc4uLrm25j4rdy3OLi65tuM+K3ddw1xFcz
+3fbEb+u4xcXXNN3GxG/ruMXF1zTdxsRv67hriK9muu2J39Zxi4uvabqNid/WcQuKr2+6jYnfynGL
+i69vuu2J38Rx1xBf33QbE7+V4xYXX990GxO/leMWF1/fdBsTv5XjriG+sum2J34rxy0uvr7pNiZ+
+K8ctLr6+6TYmfivHXUN8ZdNtT/xWjltcfH3TbUz8Vo5bXHx9021M/FaOW1x8fdNtT/wmjruG+Pqm
+25j4rRy3uPj6ptuY+K0ct7j4+qbbmPitHHcN8ZVNtz3xWzlucfH1Tbcx8Vs5bnHx9U23MfFbOW5B
+8VuZbnviKzvuGuK3Mt3GxNd33OLitzLdxsTXd9zi4rcy3fbEV3bcNcRvZbqNia/vuMXFb2W6jYmv
+77jFxW9luo2Jr++4a4jfxHTbE1/fcYuL38p0GxNf33GLi9/KdBsTX99xi4vfynTbE1/ZcdcQv5Xp
+Nia+vuMWF7+V6TYmvr7jFhe/lem2J76y464hfivTbUx8fcddSXx9021M/FaOW1x8fdNtTPxWjruG
++Mqm2574rRy3uPj6ptuY+K0ct7j4+qbbmPitHHcN8ZVNtz3xWzlucfH1TbcZ8ds6bnHxNU23MfHb
+Om5x8TVNtzHx2zruGuKrmW574rd13JXE1zHdxsTvwXGLi69jus2I34/jriF+VdNtT/x+HLe4+LVN
+tzHx+3Hc4uLXNt3GxO/HcdcQv6rpNiZ+V45bXPyqptue+P047kri1zPdxsQXt/wdil/JdBsTv4bl
+7038Sqbbnvjilr838euZbmPii1v+DsWvZLqNiV/D8vcjflXTbVX8Hhy3uPg6ptuY+D04bnHxdUy3
+MfF7cNw1xFcw3fbE78FxC4qvabpNit/KcYuLr2+6jYnfynGLi69vuq2Kr+y4ZcVva7qNia/puMXF
+b2u6TYqv47gFxe/HdNsTv6rjFhS/xr2/iIefxR13DfEr3fuL+Ij4Pfh9nvdvbrpNiq/v90sxcLem
+27D4tf0+xfu/U9P9M4i/+P1F/EX8RfxF/EX89y5+WU4zOca9iM8Tj3vaelefLN6n5lBb/urTPp0G
+iTQST89a4rXbWd5XVPTK0JTfSFzxYWqh+oNqL6z8qaKipI4MWh40OqqpifLK3cCp6iNKf5ryrZ4k
+3iiaRzYq0MroEFVeO3Ar0Qr8wnrqe5bv1J6g9GXKi7JiUDInaUkaElHjb3GcxClaxo2+JWgxq3CM
+ancDonyrOOncYL5T+qJPn/LxibKkakmKQpss1rGJbVzEZXxAq0h5+lKiFfhDjj/rWPEtQP1W9dKp
+rVtDs7509QsVDpVvwCreL6IK2qfQwkKvGlZME5XoxKDl/P8a/53hKNEFdDzGdVyx+qS8YsXJ5hVb
+u1M6PTfw5aBtzMpGJfEDrJpA1QKKJlDMJofkCOenaZYqbhm+JzgSJXVSJSV+keN3mSgfQfUDK05q
+x05psrSo3GBi0HSTlY0O+M8MJq1guDwhv0MpnRZpBXcmWZplmcrok+K/orROq7RMbWpwCykrf4Dq
+BorH0Lkk2OS47xS61ayyObHxM59Q+VNlK0BVxSVuXycVrm/TIzSzWQWKSBX1d6W5KZXhQJwdsyor
+8QODnyXpMT3gxgxsH8HmFnBJoHQBdJC+dO8MDD1d4XPlSYR6l2bLxrDEAf63MGkOc5qshl6FqnUC
+JY3OtUXL8U1p6u8A8FFVqlQ5biGF3SqorqF4DbU1gF3BRRmAXeDECRu41ba5+tRPZ9g8KmNSni2b
+JAXseoDPa2WgqNYHExtlclOYA7cS36wxOJaiB9W6xA2oRvkSQimsXuAEEZTOABALmFdARQoYH2CX
+zrwjfu9Tlwxr4KEa7irQ/0nTKssV3buqoOoRatV5lud5mdf5kaPBEd8O+G+ba/wlNkfcgoXyCVQv
+YPdIEWiBlyNsnQDbGaysYWOLbhFBYbHwCBr6mbaxLaHAxMckR28nZTME1RKuj/Ic+mlLV7d1gRsq
+YC/8f4xIUNuDLayxCqxwhPo2V1C9ghdSXQEukbIAt4Udc+qwEWARARQZLEyQUNPh2zEtgZZsmwEF
+cFtaZMAglK1MkSuoaqGZKQ4ItEmZuUYBGv8ZFXVxKIoiL1SR2COUt1A9gtVxn7B2ApTHCugHixSg
+YdLWAg+19DgTAmICDhxoybYWLIW+DgyUxubGpjBoDkV1WZbHQ3IAnrml+B6Xx7LCcVsaUj5DfKiL
+EncGIZvD3mWeAuOxNuoAG2sgIk5wEQA4dmhwxp0SJnwcJPBxyoZF99aUWRmVZxYGK0roUUE9ezgc
+jhW4mFuMAHs8VDhWHPKDxg2Q8ocyL7OCsgtYPLOVVVA5NlqDVxD/FDB0TBTChwIaGuNOTIlFXSIv
+wsEh0SCuGuxaAQVVfrBlYaHp8UCmO9RViqNFBc0r+hzwrahslePXCn+LWfkCnAGRsoDSVaFsiVyC
+6MLkuoTCEeKgQfiLAYgEUa4D77Og7dQl2CpYLQcOcOtIZQAxS53pWJYwXA19iqqu4xp3UxPT0j9o
+aZ3gYFQdqxrqk/K6yqB4BXunsHRWFIBzCoYGVasCCKpTDtAGjNbZd0pfa7sYKX+EjiDGVCO44v+A
+A/SQQpUpbGvheQtlk1rVYLPaugYew3+T5WuNP4nyERQvYfEMtraAh4GNIyiMUMNBUKeUeSRsXAKv
+kqzy+b7WMQLpenS6cpA6Vbdw6qbQipQt6rJtBbdOebo6fhgDLLZKgeu0zIsD/no0R3dPR0Q5MW6N
+azfMOwraUF0yrUKiRdkhbGGzIgUbHAi0Gv1LV2UdQY/OvsVJa1QntTWUimDi7MDiSamL3IInAAiD
+oK3THPaNmRxKznV6+lqovN/PCLgGeWEEAqsRwhCwbFUUpUZdkENbgm5Vkzj8TfhFr4FamsDgqS9K
+WxwjhQuY1+IQKAf9LdJEF7BvBfzG6CElQkXFofh5LMRNIaY4AUs5PCCTytCZdW6oZ2QIDQew7RHm
+PaAmy8AL1vFCjc5FV4fFY3cD2sM1WTjFj3CnoIm8QOTIcVKAl1JOjXAIh3IlNbGvnUbeHGkCRdgU
+CaCKFVBmEE3RlSNYOEEQwFVh5RIUETHvIkYL2fENVNWxjsXymbO6wi109uWyzdQgPIqGyPGR6xRN
+XxPjPj9q5OIZQ7dizj1kFiEiBRoIdYhoCag3hcpRqcCkFaBBUU3B3mBlcOyBbyABWIiRWW3onLDy
+cEBZKXBaUipK3XJEYiRrMbKdLMmH+loI2tOeJliwnIZlSMOR+SGrRYqSI4QiAluENervhUVqcISt
+U6huELsQ7NwNKChP8S6BxXMHF2JhdagPuM2C7h3hBCknyBfJG3NZ19eexYKkxE31QPZFWAR4D+Cy
+CPDNgIcc2a3N49zA4QkyrgJ9L+JcjJU3UL8Ap9INaMClQk2sYe/a2Zoaca9BThEjhQAdgASORGRc
+SXFfSyfGtdg3LmGeMscKVUqFYqsG7UYg3gjp9hH5awGiSKF2kVec6SY2QzaZI75W6I2ZWL6C2qY8
+sNKEcUJ4DOvmKNwVE5nf1yyKIc1BTcvAyyRqYONSBE5Y2wyephCJNAcZKlTWyB4S5KwHE5nMaACw
+hNWOsHmCrJZuoGbLHzi/rIATqqDRMRWnQ5T+5IBujuhMgaLSBwRiEDoypKQfC0M9Lu5RmMqzHLSE
+xBSY0BlyPi4HUKVVsHWKRI2CXYm0+wioZKgwSiifISU/wt4VVCmhcgFAK+6LnBqlwDjBIUMgRjHB
+FXAyDQunYUIAodzwBxW/NKLAlTrqCQOiiOC7HLl4DXpzJTDiM9Q/gK9iRKicKzgDSsugHxJGJOk1
+wFxxD1QwbYU8J7cFBTWK75qLZ4GD5DhTwgSjQbKLzFn4wOM1ph0EKWDnBFDOkVPXPLpAKYWB+sis
+EP2SxvJHqF2aBGyRoVsaAIMS5JJJI4a6uigZC7XDQgEsgBckTHRweE7ds6EwUt4fYjpCaQVLE9Ka
+sRsNm+eoYZAIAt6Khx5SVcDQlNcBHnUbXQCKskY/qwDdGmEYciZmaqhhzewkTEyqJrrR22agUUbv
+Ehq9o3u3wFcFtbuRMWTBUP8AuwN/UN5C7RTMl0DlDP3xgCKUtC2lFEJk4fIiQmg3xAwaQOAwgY7i
+UoZe6A5VE/1jozUPOaYxZeo5DTqS8jTuWAFxR9xiAhbhMTOorYDxFN1Sg0QkeKNUA00oDiR5mRTk
+d4tvptAc2lBPcNYA6E7KcMIe16ncDDuTpUntZjyXxnK50BDU0bApjUgqKH0ERI6wsYIDkBoAwEWh
+EUAUqQh1LUJazdAtCbpUTVBUM5zh9AbhMUQ0Me58UN8fLT+w8lCfbyBhy+fQGGUiXx24rqEwAoGh
+IBsjobScaSiQGBVANIAacfpYcYZjG9alq09Xt8OEN7zfTZhobzbCcmsG+2WEOucxyhKZfYReV0qP
+QwRDKZIACxEPRBRc/sAFZ6zr9bQ+v09Xup3mkRDZzfV06jPG3eBfCvMalCIx/5Fy+4JCRkFDH8gr
+LNTNgFrFPS31elqg7ulnGl2cTKK1qqed5ZupFYkumrONY1qSShr9P1cIzRQw6GOABARsogUZMeuC
+RD1EDJcr3zcPmZwAnCKsGwuWgTWqnWoeoziggNCUeCKTyFBeKOQ3tk0eS6ineV5mcky7QPl+tbts
+g8YsExlgt1Scg4CRLeY06HQEgGFnIAHkpss2v6Fc94wVrjaV2ZF1lyxTMZKAG0BVPLJGfgc9WC7d
+SlYXiaWikbUzYug37cLK+0PYNLxGxUiJ3qYImMh5jkADFSIl/pfmlFVC3WaYgVLzLg==
+ ]]><![CDATA[
+ BE8YwVlA+SafMzxOodwAW4XaqdAWlXSKYJFZQmwM0yLj5NkeZB6Jlvm49HliWE55z7hSjOQAdMmV
+dMqxreIhbORANoK6tYl4Ai5NFVeVWcsKy8wGPq/u6Sh2M3pJygO/ZF+qTCMeUs+hLv6u6F6eSReu
+2OPORyoOac7MgEQRxjVU2VH5X0PdIyJawxnEYxPThQWVP7VvM2oV86jVAeSQcikKTOSo8zQPbXMZ
+6Oq06Yn5Isq3xUg39t6NWhkk6kfYFwUbq4saD5zbjN84EptWAi+kfMcMJb6ahMTR1zo4HFArF3kJ
+dVHLaVR33lheD4ldDbSdwv4IZo0orHjoneaLyO+AQw6F8zwxKEDBuUckY+CxKdnNFZSXYTbCgoxg
+UlxDKaYOugAvRDwMkSNtLDQlZqDd2PGYn91cMKH2icp3cJC4ljJ0Sx5wJejq3LK6JXOuR2I8uTA/
+u5mnfAtdLsCZySqe5aKKIgGTKahr88xU4NyMScz21TxXB22nbtrMFXBIo27GUxspolrJE8gW2tcN
+jyEZq3kSZSS7uXqYaHpaM7URoxwuuJtJYoYQoZDqlpSMeQMMk+anFg4TTU/LmiCBMuNIxIAITKxg
+mMRKVcmED3GdPhkbuyi7ma886ypTGw0xKEcMNJVseFxYSMzqSh2RjMlgiJfdNHndzM8lyp+yAgJa
+SuLIHw+c32jHY9TTSuSOuJd2WFdILGCFK/e4LqbFILEkqVFZSvxVFH8pTBRoCsQQgxgUT6dxdjOF
+xBZXvs1vzkhMm9TU4FzSVYMVUg1egziKyqKt0srLxm4WqSY6HjMtjxG9EudqThcQ28AKQXZD4hcm
+Y5+mvJ8ucC1zTAqu1DIvu6F1Ln52M0BiK4SJhsT87EY4lxJyhIhG3RTE0GQ3yRQSu4ryp5x7AOdm
+LhmjEJGxrvjX0IiZrtuicuJQ0+LKnyZjVKclbva7cnUELdhSKNaPOu4qSoLNhcnYpysvnAtdSZxo
+l0JE3IYIJGFAAamrmcRSbyrtRNeVcpsoDBFdCVxwCdypmzjOfXa8/IrKn4aIJs8tOJzFiLzQlcKE
+5nrdL4D11Dx3UeV9dXMazkNEsxLROPqWbNq6LdYt13FTI9qyyrsSuIlohgcY7EBEU21a7ul6+fD+
+JygfhDPKbZqIJiHCclpetUhw6roqYv3cRiKaLJBqwlmij4gPZDrAwSBAHDi38UZubpTbxL1VRMRL
+NmIYVyHLLVBPyiRym4pN7meLKu+rm7mVfVRF1LR2FtBN0SKTI5jFyHL9MTxeXzd7cH/u4v82+vI4
+rYtoNLxgUa8fQA20elcjVTjyyMJ5Ur7euE04FKJklBScSzktLYeBqsgbQAoWFdoRqUK3TGg09l45
+t+kiWoUqItcZepo2JZoBbHlOqkDeeORE7MLMZtHcJgkGHS1PXx+ABSKFTFfoZXlWcKHO85MkPnNo
+f77ybT3Z5DaW1yeXbpV6wQv/FeirQMqoUO3QMEgazpqsNm7T5Tax07XI2O8piIGWRSW8rN+oCr1M
+8dLM8yVCs69+sfL+kK6UvxVP/CX8qALltkdNMQ7BocjqLKHFjtMH9hdX/ty6oq5SMUgsAwIqqJwD
+BwaV5BHFQx7XkpDPHm78tHEbl9s0I6SNuhHy3BSKltoiSaiQjufoZbFjBG+eerWE/JwTCLhuFjiD
+ugUvjkMGqRNV8gMHBXpZNl5JXlX5c8alfiamtSiANYcJfnAmB2xT18vsTQYbT9WteI5dnl0RdSNN
+T1qAHZB/HRDIVMLrbaLnSOFayruZUD/8UoCgR21E3UzT0twDYFtwL7OU1XSMsMpEqqeuN/ScxVRF
+IluIECA0aMHy8sgMCViJGp16WeI9FrHmROqput2qellJbaArAhgP76PJo1P0WE/kkcKzBHaVOSlv
+HgIpuXFPiIEH2LT0PF2O/EvJIrHjc6RwZeX90VF5IiTldW4p1I1Z3do94pUnlZ8myDzs7DHyOcp7
+k6kUpKicLHjdWKkU4lnCvYzUrfjxo5MnZOYuEput/GmiwE8soF8ltOaRcpu6VVdDXUoTyqmL4FdI
+yCXy5lnKz4segQPV8C1VkXGvup9w9YuV7wsPiGbZ0fFtq24WUXhwGdj6I+S+rvwIuQzldnxLi4yb
+aKayEupmHB56EsaVJ1JP+TaXhJx6GXIFZLesLqKZqNuMJwya9soTqdqtvaJB/ZTXvWZIyDNoyrru
+eGVj0aS4lw5/LJqQnz+BlzGBafQyhQw3Z9NSolA3kZfEJ0WzpZVnXaXLuPUr4FudxVmlDHqZ5qfc
+M07HrZconIwnrJqQn/LtIeXpvJRJIQYQitHqoYdvrzpCfroWpKt0Cq50oCsn5FA3hbqHZkhheqKw
+8Ah5WD0UXPZSHUlP0hROV5OWlNTsePH/qisbPV137SKxZjQsIg4DgVXoZQWKXlL3gAxX84PVZ89t
+rJqQd4OiEhsoPeD1oxZZzRG9rDxTt3e0Zu7VL1b+dMi54vy2JgIDIxhN6YGuoLLi5+xVanmh4OQ6
+8goj5Ocr2mhd+QEEFqOXVbzTRasrJeTVc0uCrqr8efUgeyBUKte028KpumcDYatO69DnRNcdz/7T
+/EOCnNGCwwp6rrZVNzt7pPrMtKsk5F2lY3hqh9LxIz0zRaAtoezRqRt56k5Y4XqlhNxT10XeVNTV
+pQwzQtdSkTjUNS4hv8WSlT51aUU5qVt66makrtsZwkvIL3s6agHl/U0bBtStWd0CdXrKtU7vCO6K
+CTmpW57quuPZ/4yBS5vepJcNOF81IW/Uzd2zGw1wacC5ApHxM6EWhS8N3vn1w+0S8jPrchpmEXlp
+fDxWOVeSmTxMTeKrL8dtdZUu06mrHeMmPD5e8j5CuhvO55E7r3hYPSH3OYFM59SVhLzQmitJr9y5
+UULez7gJx15X68i0zgX1w1WVD9VVUpq5StKAEWgM1/CgqLphQu5GyPvUPaDwrUEMgAF6WYHw0CTk
+J7reYITcSxUoLewGGiseDct4puSIyGtPx0VD064yQu5nNs2YQkbDNQxaHl4yPLFzPi66dkLeqy4P
+OWc8Qk4bK1Q8cpcwXUwfF72S8qG6NEJuaYMA9DRELp7YKXmg8UTX1RPyk9El6u9aHqRFfUbzD1bR
+IlFENlTpxem46E0S8nB/p2Y3Pd6sI1e0Nh+hAhxmZaBxWN05V79Y+XN1qfQ98AYutKtcDX2hOo+U
+IpqlQ8O4c69+sfKnI6NUqcc06IzcRiMwVLyrY4TwUHGi4HS9SULe6kri3bhzRDO+SBYU73tSgBSO
+rG7C6uqbJeThjnr0eL2VwcYDiIE2arHIamoQ74HzmvqGI+SnYzbNRpA5chukB8CAhb5EVkjHldsX
+cYK6V1TeHxFLebCxQlJO+w7FwILhzUgrRN5W1y4hnwXcRQcbaTuAQ6oRIpAeIKbRhn0JohntkRn1
+mXbFhLxnmo8jrGxEhZ6W8ha7MaJZyurq55Cw0mBjtxMAbUtWgcQqQJdAC3UjRLOJ6l5ZeV9dmYOQ
+zWwVbUDFexd3utLcxOX9bFHlz9WNOLc5nKjbIKEDrrnBkpUz05Lpcq4hxLoMhha4LS0MpQqrDDb6
+wM094NYykaocLRDjJm34nZDjXmmw8byfESc0FEaMm3Ew4xVuqUvEZqTkiw02ns7+p7z5X4waIuZ4
+ZsG6EYr0Gklj4VLygzzsM3Mp7nzl29VWPI3bhl/LqULGmc0BClNKTssqBhetrDjYeDr7zysVCLQR
+peS0HxIU1rzGplkS9OyowtUHG7sKgqodyysVYl53FynLytPiMLeFcnbZzkaLDzY2U9QyevfMdPru
+NrP/bnUriXsLXNu1w4r3Tqx4B/BubDRYB7JiQn7++EOU8lIlpOGwrTURryKvtHbTO94cxOrP/p8/
+/d/sFFwp2rr+yPvy81MbCawcAQ7G7bdywbzkwgn56aIVnosCDmpdmMwUpjIHY/QR4HWPP1BWmV22
+EdNSyntryJsZCHo+ztCOK7CtNccc4RYKZ9qqA6Ja5J4saUmsSY1mfi4bIT9/+IE3mG32s0l5e0+T
+ayic81YFtL2vOntuZ71xm9M0oXnIqHL7rcQ5Rdi85Gf/D/zM2elGTGs/Hxc+kdxtWgEd8wO/RoJ2
+YcqaZ//Pnz5cbdzmbA257LHR7Hsf8b5RtY357QsJ72xkeQOTdhem3borG8+e5KP+nrebs8cGVs2P
+NrUxbJyCGqzbqmBgv5UVRshPF610ukaGEnJWNwnUDTe/W+dRo77nJOXJ/6M5gA0qfgNKQUig4f2c
+txY88MKgZ9W9gvLhRgXNvvcH3jjc8pZcptljowUuJWbzBvbnK+/pSlfvHpWkx9OFcVNahQnGtbzb
+Sha8DcDputIIed+6OyP7GsWwLzHtkR/sTICDA+9lo5hxhcIGTHu1EfLzDFem+WjCN4O2CfTNDJlO
+F8gcNWcLpw+YrJvb+JmNV+7wwuzELRnV3kNRqHd2vDNwOvlNC4sp376y4Xyb/vpkDqLggWcZyZVx
+hbh7ccGK4zbetqP8bEkl+xJXqYbCtNQd2QzymZpHxA5pioQ84VdYDL7f5uq5TfcOBIqqR34dGY3b
+HlGs8+PzGb+1ywKyqOIBWrGtnQLbKww2ti/6AnjpZW+oblFRohTj7cxzGBr5ZGKhKT/UmfPLxQr3
+PpP1VzZ29u3eTte8Ra9yb8tT4NkDvbmtfedVdvlL0BZQvufFf7LnfcUbmado9CrCCjdB72w7+u9s
+W32w0d8zVzaQr93LH3kbc3r/o7zsUckb8c6UXXf2/1xh3W6t3b1V072KUiw/+919i4aJbgN57XYD
+999Y2r0xs30t4uoj5N0n7jaQP908Pvdepdq8JTN4T+anXn2WeGfgdg92/227/ste115nNazw6dbx
+J3uw+2+lvcLVZ4nHbet/yfJ1rz5TPO5p6139Rfz3L44/v6rf/VC9/vh699l3/wv/WXytHnHkm9e/
+fHz6sPvsT7tf0aL9n3efRfsf6f++of/7I/1fvI+4ffcb/ushSvX+H/s42v/HLt5/h1+hIngweZrs
+kRc+ZNqa/c90MH5A/hrjYPaQRXmyT/Pogd77iSPqAVlZLkciS4LmIc7ybP+GBKMHbbMUB/MHjYJp
+3x1J44c4z9WeTm4tXTFNHrJcpyKYPkQRHUsfLMgHv8oeUHBbHFEPKrcZjpgHWuaDI/ohslkichbq
+x3R6g5vDl9TiOsjK+UhqE6hgNa5jUxakF0uRYBbFuF2d80Ek83qfxSmuSHIZVKBbjfMHhPKcFdX0
+heSS5CGNFf0seqBXHbHh0iQjQ2gIJmQ1nFvR3eDHJrMid3bsJzqWPsS4Ez6F4jNkDzrJ+AQ07MDW
+tpYcEZsHY2Ilp3IGJ41VTl9gbRXnuIdIPZiEbiaxDyrJyRz5Q6rdPbPKSWMjlToXGBwBDKCF3Cu9
+S3ufmgwY0LEINgc1bJrRhXAqpLo4kMEcZNv2ggqe1KnTFHpZ3Eea4YbiRDFYKKvfQw==
+ ]]><![CDATA[
+ 6IFeNctHUALgN5F5oL24m1vUCt8TCwOksVyQdpDdJ3n+kOD2+Qht3Y0j2QPuOW6uSBun42D0YOLE
+sr1jbS2OxA+JFe8kqOlZjt5tLXK4H6ssnx4VvvSHHAUcVNAPxhIS4Z0UN4b4jmukYtLmWJzgBmPF
+YrQwcQ8gPBh4h48kKrX7FD2A3igmcuhtJjKwDOFJZ4weegE3DJiJibojWkGVTOT0QxLhXAbGysiD
+OJGNMvIpvmiyC26YJo/2BHF6wVZzf8Za/DVCx8zJoEA33AuNI8BWxYYxFmV0o5EFDCMxaIzOlhpC
+IDCQpiQIjOEGsxhmoH6GX9DWriyfpsY2YqcHCe/AK+28zQdjS7rGIBHumjii6edQz5CxRD2nAzSk
+7Sv5oMat42cZvET3iPtSMSkf4a4VdVYc4YuwIACfa8M+p81VuDvkhvoo8EcjOTiC29EEaRyxqWLg
+gjcEI+35U4Kd1ppPpYh9QuZ800enuO/vwbX/2Gfg3Ig5l24jV+SDhgB+loPIZuLuAmRDnRvV3RKZ
+PjYMamA/MtJXYNWE8Ykb0BmZHH4nim4PwKiWdDkRg1FRnRrv7CAPdB2hqCQj1oFRLWoah6nENEal
+IbCWycimCVOAozgyKdhFzE4L4xuTAgeuQ5qYCF0LQZMZ0FVSIf2IBRV4RiVtaJAeaR6ShPoMjhjm
+c2ieEy3l+Dn1eiKqOHGe0A7oCCkox6EnYkWKQoIZ3iSp5j4Tseo4ApzI9dDfOcJR5ImIXWGFzJAf
+UkIdUQh3GReu0NmF7GD2BL5nJeidSexAeqEYx74EBQwDOM0YkNAlTlvqSQjCxIR5wm5LciXhgLYb
+3YeAedOHIkCt/J5ivrTyb7vP4v3n37579/rnpx/2P354/cPbp3cf91p9sf8SHQNZNP2bEEF/qeBg
++DKmfmlc0iD/XyKhIBKIM7X/MqGgb/wvzZ9SC2dEbG8QX44OVQLVfwXkS5raefyq+PCxevvm49v3
+715/+G3/Bz7mH9h/9af3H795evP+ww/Q9l/o7/+6/7z44f33T4/F1/YR8n/5+NtPT4+d0BfuZ/R/
+EjRyTcmKIbzD4z/LQQk46Jm4UzFzZJgLYuH8llQp2OS584rCMXIx4E5D6S5Ix8w9MZNQmwpwVwI3
+nBItPExE0GYROGCjXNjPxtJPlTbOmeBz7mnozQbBkVEQMcW1ZIlT08vDHIpy3eQVsY6F0NAhfLWa
+mEaa04bFLcu6wMWpBigFXUBSDaWsZrbItMrZLIYjLdFAntgmMoOc0HstWTuVyE8vjBJ7JspLDtAt
+23yL4jdlb5QQ0vbU0nupd6QGkRZXlZSKMzYD3ohct8LpYX9cUFvHUxTjKTWkn+VJLNlmSj/BmSKw
+bqOoQwPSA8OhGSEl1yQH36LH7EPEvOmD0dR+ZS/uV/AQTYajO2kwC+7E++L+RF5MOW8hQCEtXbtb
+fbuz+8+/2H/3X0NfXz3+unv1yIUH/fON/PNH/scvOF49Ssnx6rG36KDDM8sOEp1ZeJDovNKDJGcW
+H68e55YfkJxZgJBkWILQ0VlFCAnOLEMgOrcQIdF5pQjpO7MYkVudVY7IVecUJCQ5ryQhyXlFiYBh
+TllCkvMKE7nPWaUJROcVJyIYlCd0eF6BQv15ZolCojOLFBDQ3DKlj4LZAt8zS0uxQiwufN1bsMjh
+WSWLWHpG0SKGnlW2iKFnFC5i5lmliwsulxcvJDizfCF15xUw5JV5JYwjqxlFTB+2GIiUcBEAu5SL
+gLlIMYMTzS1nXj3+lbvFxNzr8mRLYk1QxcjhOXUMSc6rZE6Y+ZJahnw6s5qRJGVOPSNRb05FI7ad
+U9NIIjOrqqGLzqtrThByWWXTB67LOtvlFc6rx7k1zgp97dvdwImLDx9eu++fF1/vi18/vt/LZMvb
+/3n6Yv/VXz5+ePvux55q6s/f//L04e9PPzz+29Nvj/KrX06vCrsW796/2yMoSPmUUCTm2E4Aph7x
+Mx0kM1M5QLEqAnoSgx5kXT7BmANTo7NyEoM/JeJjOqhyxV0jsVnGcloT+VO/UIiclHfGeSolhzWK
+UxjSAjmj5YMo2nB6BCprCfpIrjTSRxxBMNDEJDhiqUOx4PnBn+hg3iRm1ClJFL3Z6FgyBCSIfEQD
+gtz/E/RrOZltIjfYIdL8qzjWwgK4A06G48hIuZJZHTc6WJXEnQkResA3RoyKcmofWvlNn+knlvpJ
+dnFHIMzTr8g9uMH2X3ecHJ6bSJITNseFdf7l+I+pYpeSnK6OyJBILaKyFoPISyTVoiXFDAkwcc4+
+E29kICYrTlRkb7YqsgwkwxLxkyjfd0eam+sEKUVTUrl0p6dUIImlaHIqJMi2td2Hmr7pU/8nsp03
+RvHvZTdr+u+vf3v68OWXNKv6v1//+PSfH16//YlmUX/85fXfn/av3717//H1x6f/hz/B4U+/fHz/
+4Wn/y9/e/4OOkFAr8OpV/efj7rP/Dzl0BH0=
+ ]]></i:pgf>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/deb9frac1.svg b/PerformanceTests/PageLoad/svg/files/deb9frac1.svg
new file mode 100644
index 000000000..60a721034
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/deb9frac1.svg
@@ -0,0 +1,6323 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="800px"
+ height="600px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.42.2"
+ sodipodi:docbase="C:\Documents and Settings\Administrator\My Documents\My Pictures\unzip"
+ sodipodi:docname="deb9frac1.svg"
+ inkscape:export-filename="C:\Documents and Settings\Administrator\My Documents\My Pictures\unzip\deb9frac1.png"
+ inkscape:export-xdpi="115.20000"
+ inkscape:export-ydpi="115.20000">
+ <defs
+ id="defs1308">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3810">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3812" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3814" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3802">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3804" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3806" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3794">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3796" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3798" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3786">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3788" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3790" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3778">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3780" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3782" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3770">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3772" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3774" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3762">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3764" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3766" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3754">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3756" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3758" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3746">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3748" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3750" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3738">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3740" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3742" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3730">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3732" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3734" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3722">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3724" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3726" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3714">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3716" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3718" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3706">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3708" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3710" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3698">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3700" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3702" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3690">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3692" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3694" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3682">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3684" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3686" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3674">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3676" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3678" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3666">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3668" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3670" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3658">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3660" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3662" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3650">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3652" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3654" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3642">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3644" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3646" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3634">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3636" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3638" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3626">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3628" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3630" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3618">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3620" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3622" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3610">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3612" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3614" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3602">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3604" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3606" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3594">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3596" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3598" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3586">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3588" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3590" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3578">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3580" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3582" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3570">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3572" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3574" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3562">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3564" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3566" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3554">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3556" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3558" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3546">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3548" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3550" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3538">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3540" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3530">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3532" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3534" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3522">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3524" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3526" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3514">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3516" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3518" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3506">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3508" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3510" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3498">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3500" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3502" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3490">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3492" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3494" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3482">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3484" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3486" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3474">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3476" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3478" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3466">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3468" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3470" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3458">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3460" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3462" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3450">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3452" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3454" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3442">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3444" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3446" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3434">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3436" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3438" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3426">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3428" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3430" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3418">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3420" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3422" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3410">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3412" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3414" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3402">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3404" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3406" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3394">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3396" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3398" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3386">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3388" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3390" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3378">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3380" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3382" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3370">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3372" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3374" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3362">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3364" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3366" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3354">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3356" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3358" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3346">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3348" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3350" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3338">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3340" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3342" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3330">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3332" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3334" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3322">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3324" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3326" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3314">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3316" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3318" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3306">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3308" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3310" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3298">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3300" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3302" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3290">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3292" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3294" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3282">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3284" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3286" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3274">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3276" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3278" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3266">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3268" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3270" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3258">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3260" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3262" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3250">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3252" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3254" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3242">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3244" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3246" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3234">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3236" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3238" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3226">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3228" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3230" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3218">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3220" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3222" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3210">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3212" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3214" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3202">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3204" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3206" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3194">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3196" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3198" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3186">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3188" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3190" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3178">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3180" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3182" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3170">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3172" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3174" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3162">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3164" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3166" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3154">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3156" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3158" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3146">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3148" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3150" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3138">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3140" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3142" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3130">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3132" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3134" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3122">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3124" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3126" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3114">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3116" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3118" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3106">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3108" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3110" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3098">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3100" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3102" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3090">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3092" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3094" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3082">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3084" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3086" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3074">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3076" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3078" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3066">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3068" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3070" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3058">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3060" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3062" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3050">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3052" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3054" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3042">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3044" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3046" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3034">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3036" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3038" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3026">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3028" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3030" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3018">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3020" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3022" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3010">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop3012" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop3014" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3002">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop3004" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop3006" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2994">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2996" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2998" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2986">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2988" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2990" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2978">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2980" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2982" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2970">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2972" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2974" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2962">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2964" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2966" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2954">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2956" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2958" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2946">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2948" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2950" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2938">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2940" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2942" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2930">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2932" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2934" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2922">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2924" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2926" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2914">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2916" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2918" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2906">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2908" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2910" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2898">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2900" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2902" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2890">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2892" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2894" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2882">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2884" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2886" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2874">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2876" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2878" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2866">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2868" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2870" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2858">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2860" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2862" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2850">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2852" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2854" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2842">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2844" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2846" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2834">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2836" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2838" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2826">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2828" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2830" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2818">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2820" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2822" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2810">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2812" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2814" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2802">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2804" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2806" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2794">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2796" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2798" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2786">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2788" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2790" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2778">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2780" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2782" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2770">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2772" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2774" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2762">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2764" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2766" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2754">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2756" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2758" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2746">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2748" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2750" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2738">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2740" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2742" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2730">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2732" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2734" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2722">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2724" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2726" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2714">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2716" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2718" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2706">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2708" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2710" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2698">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2700" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2702" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2690">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2692" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2694" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2682">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2684" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2686" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2674">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2676" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2678" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2666">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2668" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2670" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2658">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2660" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2662" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2650">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2652" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2654" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2642">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2644" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2646" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2634">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2636" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2638" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2626">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2628" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2630" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2618">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2620" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2622" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2610">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2612" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2614" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2602">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2604" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2606" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2594">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2596" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2598" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2586">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2588" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2590" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2578">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2580" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2582" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2570">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2572" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2574" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2562">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2564" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2566" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2554">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2556" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2558" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2546">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2548" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2550" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2537">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2539" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2529">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2531" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2533" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2521">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2523" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2525" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2513">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2515" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2505">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2507" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2509" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2497">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2499" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2501" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2489">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2491" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2493" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2481">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2483" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2485" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2473">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2475" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2477" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2465">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2467" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2469" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2457">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2459" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2461" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2449">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2451" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2453" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2441">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2443" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2445" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2433">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2435" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2437" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2425">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2427" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2429" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2417">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2419" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2421" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2409">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2411" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2413" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2401">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2403" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2405" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2393">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2395" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2397" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2385">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2387" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2389" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2377">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2379" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2381" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2369">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2371" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2373" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2361">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2363" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2365" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2353">
+ <stop
+ style="stop-color:#010101;stop-opacity:1;"
+ offset="0"
+ id="stop2355" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0;"
+ offset="1"
+ id="stop2357" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2345">
+ <stop
+ style="stop-color:#013281;stop-opacity:1;"
+ offset="0"
+ id="stop2347" />
+ <stop
+ style="stop-color:#013281;stop-opacity:0;"
+ offset="1"
+ id="stop2349" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2539">
+ <stop
+ style="stop-color:#000a34;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2541" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.58039218;"
+ offset="1.0000000"
+ id="stop2543" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient31803">
+ <stop
+ style="stop-color:#001672;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop31805" />
+ <stop
+ style="stop-color:#000014;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop31807" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient27318">
+ <stop
+ style="stop-color:#28398f;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop27320" />
+ <stop
+ style="stop-color:#1d2341;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop27322" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient26584">
+ <stop
+ style="stop-color:#000050;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop26586" />
+ <stop
+ style="stop-color:#000328;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop26588" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4457">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop4459" />
+ <stop
+ style="stop-color:#0007b3;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4461" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4465">
+ <stop
+ style="stop-color:#00c0f2;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop4467" />
+ <stop
+ style="stop-color:#3c81ff;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4469" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3659">
+ <stop
+ style="stop-color:#61c8ef;stop-opacity:0.58823532;"
+ offset="0.00000000"
+ id="stop3661" />
+ <stop
+ style="stop-color:#8ba5ff;stop-opacity:0.58823532;"
+ offset="1.0000000"
+ id="stop3663" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient17121">
+ <stop
+ style="stop-color:#010101;stop-opacity:0.59183675;"
+ offset="0.0000000"
+ id="stop17123" />
+ <stop
+ style="stop-color:#010101;stop-opacity:0.84693879;"
+ offset="1.0000000"
+ id="stop17125" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient16387">
+ <stop
+ style="stop-color:#262e6d;stop-opacity:1;"
+ offset="0"
+ id="stop16389" />
+ <stop
+ style="stop-color:#0f122c;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop16391" />
+ </linearGradient>
+ <linearGradient
+ y2="6548.7686"
+ x2="-2167.3875"
+ y1="6565.4771"
+ x1="-1927.0936"
+ gradientTransform="matrix(1.881568e-2,-0.100607,7.360119e-2,1.376502e-2,5.827702,44.94860)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1384"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="6781.5215"
+ x2="-1202.1182"
+ y1="6922.7271"
+ x1="-1503.7859"
+ gradientTransform="matrix(3.315845e-2,-9.683072e-2,7.083898e-2,2.425785e-2,0.456604,41.42610)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1380"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.102352,1.231079e-7,-9.782699e-8,7.487721e-2,-5.476800,1.184800)"
+ gradientUnits="userSpaceOnUse"
+ y2="4156.8271"
+ x2="5610.3462"
+ y1="3609.2651"
+ x1="4693.2661"
+ id="linearGradient2254"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.102352,1.231079e-7,-9.782699e-8,7.487721e-2,-5.279000,1.975700)"
+ gradientUnits="userSpaceOnUse"
+ y2="3774.6213"
+ x2="4000.7861"
+ y1="4201.9878"
+ x1="3666.7529"
+ id="linearGradient2252"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.102352,1.231079e-7,-9.782699e-8,7.487721e-2,-5.345100,0.921390)"
+ gradientUnits="userSpaceOnUse"
+ y2="3889.6277"
+ x2="4073.6311"
+ y1="3889.6284"
+ x1="3605.0232"
+ id="linearGradient2250"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.102352,1.231079e-7,-9.782699e-8,7.487721e-2,-5.740000,0.921390)"
+ gradientUnits="userSpaceOnUse"
+ y2="3009.4783"
+ x2="3449.4976"
+ y1="2154.7466"
+ x1="2729.8345"
+ id="linearGradient2248"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.102352,1.231079e-7,-9.782699e-8,7.487721e-2,-5.740000,0.921390)"
+ gradientUnits="userSpaceOnUse"
+ y2="1808.7515"
+ x2="3315.6331"
+ y1="2611.9824"
+ x1="5475.5630"
+ id="linearGradient2246"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.102352,1.231079e-7,-9.782699e-8,7.487721e-2,-5.740000,0.921390)"
+ gradientUnits="userSpaceOnUse"
+ y2="5087.8120"
+ x2="3465.1245"
+ y1="6057.8735"
+ x1="4368.6924"
+ id="linearGradient2244"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(9.491437e-2,2.256620e-7,-9.782699e-8,7.487721e-2,-5.288400,0.921390)"
+ gradientUnits="userSpaceOnUse"
+ y2="4415.2505"
+ x2="3076.5452"
+ y1="4735.7764"
+ x1="2451.3093"
+ id="linearGradient2242"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.102352,1.231079e-7,-9.782699e-8,7.487721e-2,-5.740000,0.634960)"
+ gradientUnits="userSpaceOnUse"
+ y2="151.78417"
+ x2="231.26932"
+ y1="151.78417"
+ x1="136.92369"
+ id="linearGradient2240"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient2232">
+ <stop
+ id="stop2234"
+ offset="0.00000000"
+ style="stop-color:#640000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2236"
+ offset="1.0000000"
+ style="stop-color:#ab1d3f;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(9.980925e-2,1.273540e-7,-9.782699e-8,7.487721e-2,-5.301200,6.210000e-2)"
+ gradientUnits="userSpaceOnUse"
+ y2="3723.0027"
+ x2="3129.0967"
+ y1="1468.6908"
+ x1="3097.2148"
+ id="linearGradient2238"
+ xlink:href="#linearGradient2232"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient25098"
+ gradientUnits="userSpaceOnUse"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000"
+ gradientTransform="translate(1.037443,4.437123)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26584"
+ id="radialGradient26590"
+ cx="403.75797"
+ cy="305.13648"
+ fx="403.75797"
+ fy="305.13648"
+ r="406.93640"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.753256,0.000000,75.29062)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient26199"
+ gradientUnits="userSpaceOnUse"
+ x1="378.82938"
+ y1="126.00000"
+ x2="255.43146"
+ y2="368.24936" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient26201"
+ gradientUnits="userSpaceOnUse"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient26203"
+ gradientUnits="userSpaceOnUse"
+ x1="226.97816"
+ y1="228.49117"
+ x2="395.43146"
+ y2="426.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient26205"
+ gradientUnits="userSpaceOnUse"
+ x1="281.82935"
+ y1="411.17960"
+ x2="533.43146"
+ y2="411.17960" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient26207"
+ gradientUnits="userSpaceOnUse"
+ x1="546.82367"
+ y1="325.74188"
+ x2="355.43146"
+ y2="173.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient26209"
+ gradientUnits="userSpaceOnUse"
+ x1="354.82938"
+ y1="149.62102"
+ x2="261.01263"
+ y2="218.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient26211"
+ gradientUnits="userSpaceOnUse"
+ x1="361.82938"
+ y1="275.44162"
+ x2="394.43146"
+ y2="316.44162" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient26213"
+ gradientUnits="userSpaceOnUse"
+ x1="364.82938"
+ y1="295.00000"
+ x2="443.31839"
+ y2="351.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient26215"
+ gradientUnits="userSpaceOnUse"
+ x1="438.37909"
+ y1="356.26382"
+ x2="536.43146"
+ y2="233.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient26217"
+ gradientUnits="userSpaceOnUse"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient26219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient26221"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient26223"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient26225"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient26227"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient26229"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient26231"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient26233"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient26235"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient26237"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient26239"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient26241"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient31071"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient31073"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31803"
+ id="radialGradient31809"
+ cx="400.00000"
+ cy="231.25000"
+ fx="400.00000"
+ fy="231.25000"
+ r="60.000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.854167,0.000000,33.72396)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2345"
+ id="radialGradient2351"
+ cx="612.50000"
+ cy="3.7500000"
+ fx="612.50000"
+ fy="3.7500000"
+ r="42.500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,8.823529e-2,0.000000,3.419118)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2353"
+ id="radialGradient2359"
+ cx="578.75000"
+ cy="2.5000000"
+ fx="578.75000"
+ fy="2.5000000"
+ r="0.41675000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.999580,0.000000,-2.498950)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2361"
+ id="radialGradient2367"
+ cx="375.00000"
+ cy="6.2500000"
+ fx="375.00000"
+ fy="6.2500000"
+ r="192.50000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.246753e-2,0.000000,6.047078)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2369"
+ id="radialGradient2375"
+ cx="192.50000"
+ cy="1.2500000"
+ fx="192.50000"
+ fy="1.2500000"
+ r="5.0000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.250000,0.000000,0.937500)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2377"
+ id="radialGradient2383"
+ cx="442.50000"
+ cy="43.750000"
+ fx="442.50000"
+ fy="43.750000"
+ r="357.50000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.122378,0.000000,38.39598)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2385"
+ id="radialGradient2391"
+ cx="565.00000"
+ cy="30.000000"
+ fx="565.00000"
+ fy="30.000000"
+ r="12.500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.400000,0.000000,18.00000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2393"
+ id="radialGradient2399"
+ cx="143.33375"
+ cy="30.547796"
+ fx="143.33375"
+ fy="30.547796"
+ r="59.166250"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,7.968304e-2,0.000000,28.11366)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2401"
+ id="radialGradient2407"
+ cx="587.50000"
+ cy="31.250000"
+ fx="587.50000"
+ fy="31.250000"
+ r="0.83325000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.500150,0.000000,15.62031)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2409"
+ id="radialGradient2415"
+ cx="526.25000"
+ cy="38.750000"
+ fx="526.25000"
+ fy="38.750000"
+ r="261.25000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.349282e-2,0.000000,37.45215)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2417"
+ id="radialGradient2423"
+ cx="650.00000"
+ cy="53.750000"
+ fx="650.00000"
+ fy="53.750000"
+ r="145.00000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,6.034483e-2,0.000000,50.50647)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2425"
+ id="radialGradient2431"
+ cx="568.75000"
+ cy="50.000000"
+ fx="568.75000"
+ fy="50.000000"
+ r="3.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.666667,0.000000,16.66667)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2433"
+ id="radialGradient2439"
+ cx="417.91750"
+ cy="56.250000"
+ fx="417.91750"
+ fy="56.250000"
+ r="98.750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,8.860759e-2,0.000000,51.26582)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2441"
+ id="radialGradient2447"
+ cx="585.41712"
+ cy="54.583250"
+ fx="585.41712"
+ fy="54.583250"
+ r="36.249625"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.448312e-2,0.000000,52.70105)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2449"
+ id="radialGradient2455"
+ cx="440.83337"
+ cy="96.250000"
+ fx="440.83337"
+ fy="96.250000"
+ r="195.83337"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.223404,0.000000,74.74735)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2457"
+ id="radialGradient2463"
+ cx="562.50000"
+ cy="62.500000"
+ fx="562.50000"
+ fy="62.500000"
+ r="20.000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.250000,0.000000,46.87500)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2465"
+ id="radialGradient2471"
+ cx="396.25000"
+ cy="241.25000"
+ fx="396.25000"
+ fy="241.25000"
+ r="138.75000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.324324,0.000000,-78.24324)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2473"
+ id="radialGradient2479"
+ cx="590.00000"
+ cy="61.250000"
+ fx="590.00000"
+ fy="61.250000"
+ r="5.0000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.250000,0.000000,45.93750)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2481"
+ id="radialGradient2487"
+ cx="562.50000"
+ cy="73.750000"
+ fx="562.50000"
+ fy="73.750000"
+ r="50.000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.175000,0.000000,60.84375)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2489"
+ id="radialGradient2495"
+ cx="398.75000"
+ cy="67.500000"
+ fx="398.75000"
+ fy="67.500000"
+ r="0.41750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.995808,0.000000,-67.21707)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2497"
+ id="radialGradient2503"
+ cx="277.50000"
+ cy="66.250000"
+ fx="277.50000"
+ fy="66.250000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.500601,0.000000,33.08521)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2505"
+ id="radialGradient2511"
+ cx="602.50000"
+ cy="72.500000"
+ fx="602.50000"
+ fy="72.500000"
+ r="2.5000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.000000,0.000000,-72.50000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2513"
+ id="radialGradient2519"
+ cx="449.58375"
+ cy="70.416625"
+ fx="449.58375"
+ fy="70.416625"
+ r="4.5837500"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.636297,0.000000,25.61076)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2521"
+ id="radialGradient2527"
+ cx="3.7500000"
+ cy="86.250000"
+ fx="3.7500000"
+ fy="86.250000"
+ r="3.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,0.000000,57.50000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2529"
+ id="radialGradient2535"
+ cx="432.50000"
+ cy="90.000000"
+ fx="432.50000"
+ fy="90.000000"
+ r="2.5000000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2537"
+ id="radialGradient2544"
+ cx="13.750000"
+ cy="91.250000"
+ fx="13.750000"
+ fy="91.250000"
+ r="3.7500000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2546"
+ id="radialGradient2552"
+ cx="362.50000"
+ cy="91.250000"
+ fx="362.50000"
+ fy="91.250000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.500601,0.000000,45.57020)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2554"
+ id="radialGradient2560"
+ cx="5.0000000"
+ cy="95.000000"
+ fx="5.0000000"
+ fy="95.000000"
+ r="2.5000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.000000,0.000000,-95.00000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2562"
+ id="radialGradient2568"
+ cx="318.75000"
+ cy="95.000000"
+ fx="318.75000"
+ fy="95.000000"
+ r="3.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.666667,0.000000,31.66667)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2570"
+ id="radialGradient2576"
+ cx="222.50000"
+ cy="96.250000"
+ fx="222.50000"
+ fy="96.250000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.500601,0.000000,48.06719)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2578"
+ id="radialGradient2584"
+ cx="412.50000"
+ cy="102.44400"
+ fx="412.50000"
+ fy="102.44400"
+ r="15.000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.329600,0.000000,68.67843)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2586"
+ id="radialGradient2592"
+ cx="245.00000"
+ cy="102.50000"
+ fx="245.00000"
+ fy="102.50000"
+ r="235.00000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.127660e-2,0.000000,100.3191)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2594"
+ id="radialGradient2600"
+ cx="270.91971"
+ cy="111.25000"
+ fx="270.91971"
+ fy="111.25000"
+ r="16.580294"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.678516,0.000000,35.76506)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2602"
+ id="radialGradient2608"
+ cx="134.58375"
+ cy="118.75000"
+ fx="134.58375"
+ fy="118.75000"
+ r="104.58375"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.131474,0.000000,103.1375)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2610"
+ id="radialGradient2616"
+ cx="294.58375"
+ cy="111.66663"
+ fx="294.58375"
+ fy="111.66663"
+ r="17.916250"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.186053,0.000000,90.89070)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2618"
+ id="radialGradient2624"
+ cx="377.08375"
+ cy="112.08337"
+ fx="377.08375"
+ fy="112.08337"
+ r="372.91625"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,7.821126e-3,0.000000,111.2068)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2626"
+ id="radialGradient2632"
+ cx="468.42176"
+ cy="121.25000"
+ fx="468.42176"
+ fy="121.25000"
+ r="11.578243"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.539806,0.000000,55.79857)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2634"
+ id="radialGradient2640"
+ cx="528.75000"
+ cy="125.00000"
+ fx="528.75000"
+ fy="125.00000"
+ r="8.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.857143,0.000000,17.85714)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2642"
+ id="radialGradient2648"
+ cx="37.500000"
+ cy="121.25000"
+ fx="37.500000"
+ fy="121.25000"
+ r="5.0000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.750000,0.000000,30.31250)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2650"
+ id="radialGradient2656"
+ cx="3.7500000"
+ cy="122.50000"
+ fx="3.7500000"
+ fy="122.50000"
+ r="3.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.333333,0.000000,-40.83333)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2658"
+ id="radialGradient2664"
+ cx="492.50000"
+ cy="126.25000"
+ fx="492.50000"
+ fy="126.25000"
+ r="2.5000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.500000,0.000000,-63.12500)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2666"
+ id="radialGradient2672"
+ cx="650.41625"
+ cy="132.08337"
+ fx="650.41625"
+ fy="132.08337"
+ r="107.08375"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,5.058307e-2,0.000000,125.4022)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2674"
+ id="radialGradient2680"
+ cx="475.00000"
+ cy="128.75000"
+ fx="475.00000"
+ fy="128.75000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.500601,0.000000,64.29767)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2682"
+ id="radialGradient2688"
+ cx="8.7500000"
+ cy="150.00000"
+ fx="8.7500000"
+ fy="150.00000"
+ r="8.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.571429,0.000000,-235.7143)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2690"
+ id="radialGradient2696"
+ cx="302.50000"
+ cy="131.25000"
+ fx="302.50000"
+ fy="131.25000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.500601,0.000000,65.54617)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2698"
+ id="radialGradient2704"
+ cx="569.58337"
+ cy="135.00000"
+ fx="569.58337"
+ fy="135.00000"
+ r="24.583375"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.101695,0.000000,121.2712)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2706"
+ id="radialGradient2712"
+ cx="343.75000"
+ cy="135.00000"
+ fx="343.75000"
+ fy="135.00000"
+ r="3.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.666667,0.000000,45.00000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2714"
+ id="radialGradient2720"
+ cx="391.66625"
+ cy="192.08337"
+ fx="391.66625"
+ fy="192.08337"
+ r="258.33375"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.224193,0.000000,149.0196)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2722"
+ id="radialGradient2728"
+ cx="490.00000"
+ cy="146.25000"
+ fx="490.00000"
+ fy="146.25000"
+ r="12.500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.900000,0.000000,14.62500)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2730"
+ id="radialGradient2736"
+ cx="403.75000"
+ cy="140.00000"
+ fx="403.75000"
+ fy="140.00000"
+ r="383.75000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.302932e-2,0.000000,138.1759)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2738"
+ id="radialGradient2744"
+ cx="418.75000"
+ cy="140.00000"
+ fx="418.75000"
+ fy="140.00000"
+ r="0.41750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.995808,0.000000,-139.4132)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2746"
+ id="radialGradient2752"
+ cx="492.08375"
+ cy="161.66663"
+ fx="492.08375"
+ fy="161.66663"
+ r="307.91625"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,7.577832e-2,0.000000,149.4158)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2754"
+ id="radialGradient2760"
+ cx="605.00000"
+ cy="143.75000"
+ fx="605.00000"
+ fy="143.75000"
+ r="0.83325000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.500150,0.000000,71.85344)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2762"
+ id="radialGradient2768"
+ cx="142.50000"
+ cy="145.00000"
+ fx="142.50000"
+ fy="145.00000"
+ r="2.5000000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2770"
+ id="radialGradient2776"
+ cx="482.08337"
+ cy="147.50000"
+ fx="482.08337"
+ fy="147.50000"
+ r="129.58337"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.929260e-2,0.000000,144.6543)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2778"
+ id="radialGradient2784"
+ cx="203.75000"
+ cy="201.25000"
+ fx="203.75000"
+ fy="201.25000"
+ r="41.250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.363636,0.000000,-73.18182)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2786"
+ id="radialGradient2792"
+ cx="512.50000"
+ cy="150.00000"
+ fx="512.50000"
+ fy="150.00000"
+ r="2.5000000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2794"
+ id="radialGradient2800"
+ cx="78.750000"
+ cy="173.75000"
+ fx="78.750000"
+ fy="173.75000"
+ r="58.750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.446809,0.000000,96.11702)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2802"
+ id="radialGradient2808"
+ cx="526.25000"
+ cy="160.00000"
+ fx="526.25000"
+ fy="160.00000"
+ r="0.41750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.995808,0.000000,-159.3293)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2810"
+ id="radialGradient2816"
+ cx="767.50000"
+ cy="168.75000"
+ fx="767.50000"
+ fy="168.75000"
+ r="0.83325000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.500150,0.000000,84.34968)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2818"
+ id="radialGradient2824"
+ cx="571.25000"
+ cy="190.00000"
+ fx="571.25000"
+ fy="190.00000"
+ r="8.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.428571,0.000000,-81.42857)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2826"
+ id="radialGradient2832"
+ cx="398.75000"
+ cy="187.50000"
+ fx="398.75000"
+ fy="187.50000"
+ r="398.75000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.253918e-2,0.000000,185.1489)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2834"
+ id="radialGradient2840"
+ cx="410.00000"
+ cy="202.50000"
+ fx="410.00000"
+ fy="202.50000"
+ r="225.00000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,7.777778e-2,0.000000,186.7500)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2842"
+ id="radialGradient2848"
+ cx="157.50000"
+ cy="200.00000"
+ fx="157.50000"
+ fy="200.00000"
+ r="2.5000000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2850"
+ id="radialGradient2856"
+ cx="355.41663"
+ cy="207.50000"
+ fx="355.41663"
+ fy="207.50000"
+ r="302.91663"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.650619e-2,0.000000,204.0750)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2858"
+ id="radialGradient2864"
+ cx="336.25000"
+ cy="210.00000"
+ fx="336.25000"
+ fy="210.00000"
+ r="0.41750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.995808,0.000000,-209.1198)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2866"
+ id="radialGradient2872"
+ cx="701.66663"
+ cy="222.50000"
+ fx="701.66663"
+ fy="222.50000"
+ r="14.166625"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.882356,0.000000,26.17589)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2874"
+ id="radialGradient2880"
+ cx="401.25000"
+ cy="228.75000"
+ fx="401.25000"
+ fy="228.75000"
+ r="213.75000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,8.771930e-2,0.000000,208.6842)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2882"
+ id="radialGradient2888"
+ cx="428.33292"
+ cy="222.91675"
+ fx="428.33292"
+ fy="222.91675"
+ r="370.00042"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.378375e-3,0.000000,222.1637)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2890"
+ id="radialGradient2896"
+ cx="609.16625"
+ cy="225.00000"
+ fx="609.16625"
+ fy="225.00000"
+ r="88.333750"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.830175e-2,0.000000,218.6321)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2898"
+ id="radialGradient2904"
+ cx="596.23008"
+ cy="241.25000"
+ fx="596.23008"
+ fy="241.25000"
+ r="58.769925"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.276502,0.000000,174.5439)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2906"
+ id="radialGradient2912"
+ cx="397.91663"
+ cy="230.83337"
+ fx="397.91663"
+ fy="230.83337"
+ r="225.41663"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.848411e-2,0.000000,226.5666)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2914"
+ id="radialGradient2920"
+ cx="707.50000"
+ cy="236.25000"
+ fx="707.50000"
+ fy="236.25000"
+ r="2.5000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.500000,0.000000,-118.1250)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2922"
+ id="radialGradient2928"
+ cx="462.08375"
+ cy="239.16663"
+ fx="462.08375"
+ fy="239.16663"
+ r="185.41625"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.146097e-2,0.000000,231.6422)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2930"
+ id="radialGradient2936"
+ cx="156.66625"
+ cy="242.50000"
+ fx="156.66625"
+ fy="242.50000"
+ r="5.8337500"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.428541,0.000000,138.5789)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2938"
+ id="radialGradient2944"
+ cx="462.49962"
+ cy="257.50000"
+ fx="462.49962"
+ fy="257.50000"
+ r="256.66712"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.298374e-2,0.000000,254.1567)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2946"
+ id="radialGradient2952"
+ cx="323.75000"
+ cy="260.00000"
+ fx="323.75000"
+ fy="260.00000"
+ r="0.41750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.994012,0.000000,-258.4431)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2954"
+ id="radialGradient2960"
+ cx="171.25000"
+ cy="260.00000"
+ fx="171.25000"
+ fy="260.00000"
+ r="0.41750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.994012,0.000000,-258.4431)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2962"
+ id="radialGradient2968"
+ cx="382.50000"
+ cy="270.00000"
+ fx="382.50000"
+ fy="270.00000"
+ r="110.00000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,4.545455e-2,0.000000,257.7273)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2970"
+ id="radialGradient2976"
+ cx="2.5000000"
+ cy="272.50000"
+ fx="2.5000000"
+ fy="272.50000"
+ r="2.5000000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2978"
+ id="radialGradient2984"
+ cx="292.50000"
+ cy="286.25000"
+ fx="292.50000"
+ fy="286.25000"
+ r="17.500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.642857,0.000000,102.2321)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2986"
+ id="radialGradient2992"
+ cx="230.00000"
+ cy="275.00000"
+ fx="230.00000"
+ fy="275.00000"
+ r="5.0000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.500000,0.000000,137.5000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2994"
+ id="radialGradient3000"
+ cx="466.25000"
+ cy="277.50000"
+ fx="466.25000"
+ fy="277.50000"
+ r="26.250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,9.523810e-2,0.000000,251.0714)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3002"
+ id="radialGradient3008"
+ cx="285.41663"
+ cy="290.00000"
+ fx="285.41663"
+ fy="290.00000"
+ r="285.41663"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,4.379563e-2,0.000000,277.2993)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3010"
+ id="radialGradient3016"
+ cx="470.00000"
+ cy="292.50000"
+ fx="470.00000"
+ fy="292.50000"
+ r="12.500000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3018"
+ id="radialGradient3024"
+ cx="560.00000"
+ cy="333.75000"
+ fx="560.00000"
+ fy="333.75000"
+ r="40.000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.281250,0.000000,-93.86719)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3026"
+ id="radialGradient3032"
+ cx="532.50000"
+ cy="293.75000"
+ fx="532.50000"
+ fy="293.75000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501502,0.000000,146.4339)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3034"
+ id="radialGradient3040"
+ cx="387.50000"
+ cy="305.00000"
+ fx="387.50000"
+ fy="305.00000"
+ r="225.00000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.111111e-2,0.000000,301.6111)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3042"
+ id="radialGradient3048"
+ cx="535.00000"
+ cy="306.25000"
+ fx="535.00000"
+ fy="306.25000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501502,0.000000,152.6652)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3050"
+ id="radialGradient3056"
+ cx="181.72174"
+ cy="360.00000"
+ fx="181.72174"
+ fy="360.00000"
+ r="49.221742"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.117392,0.000000,-42.26126)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3058"
+ id="radialGradient3064"
+ cx="331.25000"
+ cy="313.75000"
+ fx="331.25000"
+ fy="313.75000"
+ r="143.75000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,4.347826e-2,0.000000,300.1087)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3066"
+ id="radialGradient3072"
+ cx="456.25000"
+ cy="322.50000"
+ fx="456.25000"
+ fy="322.50000"
+ r="318.75000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.921569e-2,0.000000,309.8529)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3074"
+ id="radialGradient3080"
+ cx="773.75000"
+ cy="332.50000"
+ fx="773.75000"
+ fy="332.50000"
+ r="18.750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.533333,0.000000,155.1667)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3082"
+ id="radialGradient3088"
+ cx="529.58375"
+ cy="328.75000"
+ fx="529.58375"
+ fy="328.75000"
+ r="37.916250"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,9.890219e-2,0.000000,296.2359)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3090"
+ id="radialGradient3096"
+ cx="416.66625"
+ cy="332.08375"
+ fx="416.66625"
+ fy="332.08375"
+ r="345.83375"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.566143e-2,0.000000,326.8828)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3098"
+ id="radialGradient3104"
+ cx="132.50000"
+ cy="331.25000"
+ fx="132.50000"
+ fy="331.25000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501502,0.000000,165.1276)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3106"
+ id="radialGradient3112"
+ cx="467.91663"
+ cy="347.50000"
+ fx="467.91663"
+ fy="347.50000"
+ r="237.91663"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,5.253941e-2,0.000000,329.2426)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3114"
+ id="radialGradient3120"
+ cx="369.16625"
+ cy="345.00000"
+ fx="369.16625"
+ fy="345.00000"
+ r="44.166250"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.113209,0.000000,305.9430)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3122"
+ id="radialGradient3128"
+ cx="75.000000"
+ cy="341.25000"
+ fx="75.000000"
+ fy="341.25000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501502,0.000000,170.1126)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3130"
+ id="radialGradient3136"
+ cx="345.00000"
+ cy="348.75000"
+ fx="345.00000"
+ fy="348.75000"
+ r="5.0000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.250000,0.000000,-87.18750)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3138"
+ id="radialGradient3144"
+ cx="419.58375"
+ cy="349.16625"
+ fx="419.58375"
+ fy="349.16625"
+ r="367.91625"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.585619e-2,0.000000,343.6298)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3146"
+ id="radialGradient3152"
+ cx="256.66625"
+ cy="363.33375"
+ fx="256.66625"
+ fy="363.33375"
+ r="88.333750"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.132070,0.000000,315.3482)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3154"
+ id="radialGradient3160"
+ cx="103.75000"
+ cy="363.75000"
+ fx="103.75000"
+ fy="363.75000"
+ r="6.2500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.800000,0.000000,-291.0000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3162"
+ id="radialGradient3168"
+ cx="193.75000"
+ cy="360.00000"
+ fx="193.75000"
+ fy="360.00000"
+ r="3.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.333333,0.000000,-120.0000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3170"
+ id="radialGradient3176"
+ cx="786.25000"
+ cy="368.75000"
+ fx="786.25000"
+ fy="368.75000"
+ r="13.750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.818182,0.000000,67.04545)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3178"
+ id="radialGradient3184"
+ cx="365.00000"
+ cy="363.75000"
+ fx="365.00000"
+ fy="363.75000"
+ r="192.50000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.246753e-2,0.000000,351.9399)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3186"
+ id="radialGradient3192"
+ cx="466.66625"
+ cy="367.08375"
+ fx="466.66625"
+ fy="367.08375"
+ r="218.33375"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.480720e-2,0.000000,357.9774)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3194"
+ id="radialGradient3200"
+ cx="312.91625"
+ cy="365.00000"
+ fx="312.91625"
+ fy="365.00000"
+ r="4.5837500"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.545405,0.000000,165.9272)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3202"
+ id="radialGradient3208"
+ cx="154.16625"
+ cy="365.00000"
+ fx="154.16625"
+ fy="365.00000"
+ r="88.333750"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.830175e-2,0.000000,354.6699)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3210"
+ id="radialGradient3216"
+ cx="402.50000"
+ cy="372.50000"
+ fx="402.50000"
+ fy="372.50000"
+ r="45.000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.111111,0.000000,331.1111)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3218"
+ id="radialGradient3224"
+ cx="531.25000"
+ cy="372.50000"
+ fx="531.25000"
+ fy="372.50000"
+ r="0.41750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.994012,0.000000,-370.2695)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3226"
+ id="radialGradient3232"
+ cx="431.25000"
+ cy="373.75000"
+ fx="431.25000"
+ fy="373.75000"
+ r="1.2500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.000000,0.000000,-747.5000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3234"
+ id="radialGradient3240"
+ cx="481.25000"
+ cy="378.75000"
+ fx="481.25000"
+ fy="378.75000"
+ r="318.75000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.745098e-2,0.000000,368.3529)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3242"
+ id="radialGradient3248"
+ cx="366.25000"
+ cy="381.25000"
+ fx="366.25000"
+ fy="381.25000"
+ r="3.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.666667,0.000000,-254.1667)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3250"
+ id="radialGradient3256"
+ cx="605.00000"
+ cy="378.75000"
+ fx="605.00000"
+ fy="378.75000"
+ r="0.83325000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501050,0.000000,188.9773)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3258"
+ id="radialGradient3264"
+ cx="397.50000"
+ cy="382.50000"
+ fx="397.50000"
+ fy="382.50000"
+ r="27.500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.181818,0.000000,312.9545)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3266"
+ id="radialGradient3272"
+ cx="668.75000"
+ cy="390.00000"
+ fx="668.75000"
+ fy="390.00000"
+ r="123.75000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,8.080808e-2,0.000000,358.4848)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3274"
+ id="radialGradient3280"
+ cx="444.58375"
+ cy="393.75000"
+ fx="444.58375"
+ fy="393.75000"
+ r="19.583750"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.574456,0.000000,167.5580)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3282"
+ id="radialGradient3288"
+ cx="716.25000"
+ cy="407.50000"
+ fx="716.25000"
+ fy="407.50000"
+ r="43.750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.514286,0.000000,197.9286)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3290"
+ id="radialGradient3296"
+ cx="478.75000"
+ cy="390.00000"
+ fx="478.75000"
+ fy="390.00000"
+ r="6.2500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.800000,0.000000,78.00000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3298"
+ id="radialGradient3304"
+ cx="426.66663"
+ cy="390.00000"
+ fx="426.66663"
+ fy="390.00000"
+ r="126.66663"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.947370e-2,0.000000,374.6053)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3306"
+ id="radialGradient3312"
+ cx="602.50000"
+ cy="391.25000"
+ fx="602.50000"
+ fy="391.25000"
+ r="0.83325000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501050,0.000000,195.2141)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3314"
+ id="radialGradient3320"
+ cx="384.58375"
+ cy="436.66625"
+ fx="384.58375"
+ fy="436.66625"
+ r="375.41625"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.115429,0.000000,386.2625)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3322"
+ id="radialGradient3328"
+ cx="693.75000"
+ cy="402.50000"
+ fx="693.75000"
+ fy="402.50000"
+ r="3.7500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.333333,0.000000,-134.1667)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3330"
+ id="radialGradient3336"
+ cx="411.25000"
+ cy="400.00000"
+ fx="411.25000"
+ fy="400.00000"
+ r="135.41750"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.846142e-2,0.000000,392.6154)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3338"
+ id="radialGradient3344"
+ cx="196.25000"
+ cy="401.25000"
+ fx="196.25000"
+ fy="401.25000"
+ r="3.7500000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3346"
+ id="radialGradient3352"
+ cx="183.75000"
+ cy="405.41625"
+ fx="183.75000"
+ fy="405.41625"
+ r="183.75000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.494558e-2,0.000000,395.3029)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3354"
+ id="radialGradient3360"
+ cx="740.00000"
+ cy="408.75000"
+ fx="740.00000"
+ fy="408.75000"
+ r="7.5000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.500000,0.000000,204.3750)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3362"
+ id="radialGradient3368"
+ cx="507.08375"
+ cy="423.75000"
+ fx="507.08375"
+ fy="423.75000"
+ r="287.91625"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,6.512310e-2,0.000000,396.1541)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3370"
+ id="radialGradient3376"
+ cx="753.75000"
+ cy="427.50000"
+ fx="753.75000"
+ fy="427.50000"
+ r="0.41675000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.997600,0.000000,-426.4742)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3378"
+ id="radialGradient3384"
+ cx="28.750000"
+ cy="451.25000"
+ fx="28.750000"
+ fy="451.25000"
+ r="18.750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.400000,0.000000,-180.5000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3386"
+ id="radialGradient3392"
+ cx="752.08334"
+ cy="431.25000"
+ fx="752.08334"
+ fy="431.25000"
+ r="37.083340"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.101124,0.000000,387.6405)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3394"
+ id="radialGradient3400"
+ cx="767.50000"
+ cy="433.75000"
+ fx="767.50000"
+ fy="433.75000"
+ r="0.83325000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501050,0.000000,216.4195)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3402"
+ id="radialGradient3408"
+ cx="731.25000"
+ cy="435.00000"
+ fx="731.25000"
+ fy="435.00000"
+ r="20.416750"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,4.077534e-2,0.000000,417.2627)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3410"
+ id="radialGradient3416"
+ cx="596.25000"
+ cy="435.00000"
+ fx="596.25000"
+ fy="435.00000"
+ r="0.41675000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.997600,0.000000,-433.9562)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3418"
+ id="radialGradient3424"
+ cx="365.41663"
+ cy="442.50000"
+ fx="365.41663"
+ fy="442.50000"
+ r="327.91663"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,7.623889e-3,0.000000,439.1264)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3426"
+ id="radialGradient3432"
+ cx="705.00000"
+ cy="445.00000"
+ fx="705.00000"
+ fy="445.00000"
+ r="2.5000000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3434"
+ id="radialGradient3440"
+ cx="505.00000"
+ cy="455.00000"
+ fx="505.00000"
+ fy="455.00000"
+ r="180.00000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,6.944444e-2,0.000000,423.4028)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3442"
+ id="radialGradient3448"
+ cx="748.75000"
+ cy="450.00000"
+ fx="748.75000"
+ fy="450.00000"
+ r="0.41675000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.997600,0.000000,-448.9202)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3450"
+ id="radialGradient3456"
+ cx="500.41663"
+ cy="486.25000"
+ fx="500.41663"
+ fy="486.25000"
+ r="237.91663"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.162872,0.000000,407.0534)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3458"
+ id="radialGradient3464"
+ cx="673.75000"
+ cy="452.50000"
+ fx="673.75000"
+ fy="452.50000"
+ r="0.41675000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.997600,0.000000,-451.4142)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3466"
+ id="radialGradient3472"
+ cx="771.25000"
+ cy="458.75000"
+ fx="771.25000"
+ fy="458.75000"
+ r="6.2500000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3474"
+ id="radialGradient3480"
+ cx="372.08337"
+ cy="460.00000"
+ fx="372.08337"
+ fy="460.00000"
+ r="347.08337"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.440576e-2,0.000000,453.3734)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3482"
+ id="radialGradient3488"
+ cx="209.58375"
+ cy="466.25000"
+ fx="209.58375"
+ fy="466.25000"
+ r="137.08375"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,6.382959e-2,0.000000,436.4895)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3490"
+ id="radialGradient3496"
+ cx="710.89250"
+ cy="462.76841"
+ fx="710.89250"
+ fy="462.76841"
+ r="4.1074958"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.673989,0.000000,150.8677)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3498"
+ id="radialGradient3504"
+ cx="537.50000"
+ cy="465.00000"
+ fx="537.50000"
+ fy="465.00000"
+ r="125.00000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,4.000000e-2,0.000000,446.4000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3506"
+ id="radialGradient3512"
+ cx="519.16663"
+ cy="467.91625"
+ fx="519.16663"
+ fy="467.91625"
+ r="214.16663"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.140273e-2,0.000000,457.9016)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3514"
+ id="radialGradient3520"
+ cx="376.66625"
+ cy="471.25000"
+ fx="376.66625"
+ fy="471.25000"
+ r="375.83375"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.662969e-2,0.000000,463.4133)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3522"
+ id="radialGradient3528"
+ cx="303.75000"
+ cy="472.50000"
+ fx="303.75000"
+ fy="472.50000"
+ r="0.41750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.994012,0.000000,-469.6707)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3530"
+ id="radialGradient3536"
+ cx="470.72654"
+ cy="480.23960"
+ fx="470.72654"
+ fy="480.23960"
+ r="224.05904"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.454269e-2,0.000000,463.6508)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3538"
+ id="radialGradient3544"
+ cx="282.50000"
+ cy="480.00000"
+ fx="282.50000"
+ fy="480.00000"
+ r="2.5000000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3546"
+ id="radialGradient3552"
+ cx="473.33337"
+ cy="482.91625"
+ fx="473.33337"
+ fy="482.91625"
+ r="230.83337"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.263357e-2,0.000000,476.8153)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3554"
+ id="radialGradient3560"
+ cx="478.75000"
+ cy="486.25000"
+ fx="478.75000"
+ fy="486.25000"
+ r="213.75000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.754386e-2,0.000000,477.7193)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3562"
+ id="radialGradient3568"
+ cx="717.50000"
+ cy="486.25000"
+ fx="717.50000"
+ fy="486.25000"
+ r="0.83325000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501050,0.000000,242.6144)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3570"
+ id="radialGradient3576"
+ cx="280.00000"
+ cy="496.25000"
+ fx="280.00000"
+ fy="496.25000"
+ r="10.000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.125000,0.000000,-62.03125)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3578"
+ id="radialGradient3584"
+ cx="378.75000"
+ cy="519.37161"
+ fx="378.75000"
+ fy="519.37161"
+ r="371.25000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,8.584946e-2,0.000000,474.7838)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3586"
+ id="radialGradient3592"
+ cx="295.00000"
+ cy="498.75000"
+ fx="295.00000"
+ fy="498.75000"
+ r="2.5000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.500000,0.000000,-249.3750)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3594"
+ id="radialGradient3600"
+ cx="381.25000"
+ cy="541.25000"
+ fx="381.25000"
+ fy="541.25000"
+ r="151.25000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.305785,0.000000,375.7438)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3602"
+ id="radialGradient3608"
+ cx="310.00000"
+ cy="503.75000"
+ fx="310.00000"
+ fy="503.75000"
+ r="5.0000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.250000,0.000000,377.8125)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3610"
+ id="radialGradient3616"
+ cx="376.25000"
+ cy="521.25000"
+ fx="376.25000"
+ fy="521.25000"
+ r="376.25000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,6.312292e-2,0.000000,488.3472)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3618"
+ id="radialGradient3624"
+ cx="498.75000"
+ cy="507.50000"
+ fx="498.75000"
+ fy="507.50000"
+ r="6.2500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.800000,0.000000,101.5000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3626"
+ id="radialGradient3632"
+ cx="336.25000"
+ cy="512.50000"
+ fx="336.25000"
+ fy="512.50000"
+ r="11.250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.888889,0.000000,56.94444)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3634"
+ id="radialGradient3640"
+ cx="272.50000"
+ cy="508.75000"
+ fx="272.50000"
+ fy="508.75000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501502,0.000000,253.6111)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3642"
+ id="radialGradient3648"
+ cx="430.83288"
+ cy="510.41750"
+ fx="430.83288"
+ fy="510.41750"
+ r="170.00038"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,7.352925e-3,0.000000,506.6644)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3650"
+ id="radialGradient3656"
+ cx="387.91750"
+ cy="515.41625"
+ fx="387.91750"
+ fy="515.41625"
+ r="106.25000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.744706e-2,0.000000,501.2696)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3658"
+ id="radialGradient3664"
+ cx="400.00000"
+ cy="527.50000"
+ fx="400.00000"
+ fy="527.50000"
+ r="152.50000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,8.196721e-2,0.000000,484.2623)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3666"
+ id="radialGradient3672"
+ cx="370.00000"
+ cy="527.50000"
+ fx="370.00000"
+ fy="527.50000"
+ r="2.5000000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3674"
+ id="radialGradient3680"
+ cx="303.33337"
+ cy="532.50000"
+ fx="303.33337"
+ fy="532.50000"
+ r="293.33337"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.556818e-2,0.000000,518.8849)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3682"
+ id="radialGradient3688"
+ cx="457.50000"
+ cy="531.25000"
+ fx="457.50000"
+ fy="531.25000"
+ r="2.5000000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.500000,0.000000,-265.6250)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3690"
+ id="radialGradient3696"
+ cx="300.83288"
+ cy="537.50000"
+ fx="300.83288"
+ fy="537.50000"
+ r="295.00038"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.542370e-2,0.000000,523.8348)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3698"
+ id="radialGradient3704"
+ cx="501.25000"
+ cy="539.11192"
+ fx="501.25000"
+ fy="539.11192"
+ r="26.250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.156644,0.000000,454.6631)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3706"
+ id="radialGradient3712"
+ cx="231.25000"
+ cy="547.91625"
+ fx="231.25000"
+ fy="547.91625"
+ r="226.25000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,3.130939e-2,0.000000,530.7613)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3714"
+ id="radialGradient3720"
+ cx="455.83375"
+ cy="559.16625"
+ fx="455.83375"
+ fy="559.16625"
+ r="156.66625"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,6.915178e-2,0.000000,520.4989)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3722"
+ id="radialGradient3728"
+ cx="517.50000"
+ cy="562.50000"
+ fx="517.50000"
+ fy="562.50000"
+ r="2.5000000"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3730"
+ id="radialGradient3736"
+ cx="282.50000"
+ cy="572.50000"
+ fx="282.50000"
+ fy="572.50000"
+ r="275.00000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,4.545455e-2,0.000000,546.4773)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3738"
+ id="radialGradient3744"
+ cx="483.33375"
+ cy="571.25000"
+ fx="483.33375"
+ fy="571.25000"
+ r="9.1662500"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.136370,0.000000,493.3487)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3746"
+ id="radialGradient3752"
+ cx="312.91625"
+ cy="578.33375"
+ fx="312.91625"
+ fy="578.33375"
+ r="239.58375"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.782430e-2,0.000000,562.2420)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3754"
+ id="radialGradient3760"
+ cx="497.50000"
+ cy="573.75000"
+ fx="497.50000"
+ fy="573.75000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501502,0.000000,286.0135)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3762"
+ id="radialGradient3768"
+ cx="330.41625"
+ cy="574.16625"
+ fx="330.41625"
+ fy="574.16625"
+ r="124.58375"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.337454e-2,0.000000,566.4870)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3770"
+ id="radialGradient3776"
+ cx="491.25000"
+ cy="577.50000"
+ fx="491.25000"
+ fy="577.50000"
+ r="0.41750000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,1.994012,0.000000,-574.0419)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3778"
+ id="radialGradient3784"
+ cx="262.16086"
+ cy="587.50000"
+ fx="262.16086"
+ fy="587.50000"
+ r="260.33914"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,4.801429e-2,0.000000,559.2916)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3786"
+ id="radialGradient3792"
+ cx="6.2500000"
+ cy="590.00000"
+ fx="6.2500000"
+ fy="590.00000"
+ r="1.2500000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,4.000000,0.000000,-1770.000)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3794"
+ id="radialGradient3800"
+ cx="294.16663"
+ cy="593.75000"
+ fx="294.16663"
+ fy="593.75000"
+ r="256.66663"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,2.435065e-2,0.000000,579.2918)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3802"
+ id="radialGradient3808"
+ cx="5.8337500"
+ cy="597.50000"
+ fx="5.8337500"
+ fy="597.50000"
+ r="5.8337500"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.428541,0.000000,341.4469)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3810"
+ id="radialGradient3816"
+ cx="477.50000"
+ cy="598.75000"
+ fx="477.50000"
+ fy="598.75000"
+ r="0.83250000"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.501502,0.000000,298.4760)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2502"
+ gradientUnits="userSpaceOnUse"
+ x1="378.82938"
+ y1="126.00000"
+ x2="255.43146"
+ y2="368.24936" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2504"
+ gradientUnits="userSpaceOnUse"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2506"
+ gradientUnits="userSpaceOnUse"
+ x1="226.97816"
+ y1="228.49117"
+ x2="395.43146"
+ y2="426.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2508"
+ gradientUnits="userSpaceOnUse"
+ x1="281.82935"
+ y1="411.17960"
+ x2="533.43146"
+ y2="411.17960" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2510"
+ gradientUnits="userSpaceOnUse"
+ x1="546.82367"
+ y1="325.74188"
+ x2="355.43146"
+ y2="173.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2512"
+ gradientUnits="userSpaceOnUse"
+ x1="354.82938"
+ y1="149.62102"
+ x2="261.01263"
+ y2="218.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2514"
+ gradientUnits="userSpaceOnUse"
+ x1="361.82938"
+ y1="275.44162"
+ x2="394.43146"
+ y2="316.44162" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2516"
+ gradientUnits="userSpaceOnUse"
+ x1="364.82938"
+ y1="295.00000"
+ x2="443.31839"
+ y2="351.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2518"
+ gradientUnits="userSpaceOnUse"
+ x1="438.37909"
+ y1="356.26382"
+ x2="536.43146"
+ y2="233.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2520"
+ gradientUnits="userSpaceOnUse"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2522"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2524"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2526"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2528"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2530"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2532"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2534"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2536"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-121.9865,-114.1096)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2552"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2557"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2560"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2566"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2568"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient2571"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4457"
+ id="linearGradient2573"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.069057,0.000000,0.000000,1.008421,-152.8926,-105.5170)"
+ x1="240.66057"
+ y1="496.00000"
+ x2="539.33942"
+ y2="496.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2576"
+ gradientUnits="userSpaceOnUse"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000"
+ gradientTransform="translate(3.828425,13.89948)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2579"
+ gradientUnits="userSpaceOnUse"
+ x1="438.37909"
+ y1="356.26382"
+ x2="536.43146"
+ y2="233.00000"
+ gradientTransform="translate(3.828425,13.89948)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2582"
+ gradientUnits="userSpaceOnUse"
+ x1="364.82938"
+ y1="295.00000"
+ x2="443.31839"
+ y2="351.00000"
+ gradientTransform="translate(3.828425,13.89948)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2585"
+ gradientUnits="userSpaceOnUse"
+ x1="361.82938"
+ y1="275.44162"
+ x2="394.43146"
+ y2="316.44162"
+ gradientTransform="translate(3.828425,13.89948)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2588"
+ gradientUnits="userSpaceOnUse"
+ x1="354.82938"
+ y1="149.62102"
+ x2="261.01263"
+ y2="218.00000"
+ gradientTransform="translate(3.828425,13.89948)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2591"
+ gradientUnits="userSpaceOnUse"
+ x1="546.82367"
+ y1="325.74188"
+ x2="355.43146"
+ y2="173.00000"
+ gradientTransform="translate(3.828425,13.89948)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2595"
+ gradientUnits="userSpaceOnUse"
+ x1="281.82935"
+ y1="411.17960"
+ x2="533.43146"
+ y2="411.17960"
+ gradientTransform="translate(3.828425,13.89948)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2598"
+ gradientUnits="userSpaceOnUse"
+ x1="226.97816"
+ y1="228.49117"
+ x2="395.43146"
+ y2="426.00000"
+ gradientTransform="translate(3.828425,13.89948)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2601"
+ gradientUnits="userSpaceOnUse"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000"
+ gradientTransform="translate(3.828425,13.89948)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2604"
+ gradientUnits="userSpaceOnUse"
+ x1="378.82938"
+ y1="126.00000"
+ x2="255.43146"
+ y2="368.24936"
+ gradientTransform="translate(3.828425,13.89948)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2619"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="378.82938"
+ y1="126.00000"
+ x2="255.43146"
+ y2="368.24936" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2621"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2623"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="226.97816"
+ y1="228.49117"
+ x2="395.43146"
+ y2="426.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2625"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="281.82935"
+ y1="411.17960"
+ x2="533.43146"
+ y2="411.17960" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2627"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="546.82367"
+ y1="325.74188"
+ x2="355.43146"
+ y2="173.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2629"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="354.82938"
+ y1="149.62102"
+ x2="261.01263"
+ y2="218.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2631"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="361.82938"
+ y1="275.44162"
+ x2="394.43146"
+ y2="316.44162" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2633"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="364.82938"
+ y1="295.00000"
+ x2="443.31839"
+ y2="351.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2635"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="438.37909"
+ y1="356.26382"
+ x2="536.43146"
+ y2="233.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2637"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2665"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828425,13.89948)"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2415"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828416,13.89949)"
+ x1="354.82938"
+ y1="149.62102"
+ x2="261.01263"
+ y2="218.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828463,13.89942)"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2476"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828388,13.89949)"
+ x1="361.82938"
+ y1="275.44162"
+ x2="394.43146"
+ y2="316.44162" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2500"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828444,13.89949)"
+ x1="364.82938"
+ y1="295.00000"
+ x2="443.31839"
+ y2="351.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.865847,14.33662)"
+ x1="226.82936"
+ y1="284.00000"
+ x2="547.43147"
+ y2="284.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2549"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828435,13.89949)"
+ x1="438.37909"
+ y1="356.26382"
+ x2="536.43146"
+ y2="233.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2553"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828416,13.89949)"
+ x1="546.82367"
+ y1="325.74188"
+ x2="355.43146"
+ y2="173.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2556"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828416,13.89949)"
+ x1="281.82935"
+ y1="411.17960"
+ x2="533.43146"
+ y2="411.17960" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2559"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828416,13.89949)"
+ x1="226.97816"
+ y1="228.49117"
+ x2="395.43146"
+ y2="426.00000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3659"
+ id="linearGradient2564"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.828416,13.89949)"
+ x1="378.82938"
+ y1="126.00000"
+ x2="255.43146"
+ y2="368.24936" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.0000000"
+ inkscape:cx="403.85078"
+ inkscape:cy="295.66484"
+ inkscape:current-layer="layer5"
+ inkscape:document-units="px"
+ inkscape:window-width="1016"
+ inkscape:window-height="679"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="whole in the &quot;D&quot;" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="bg" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="d"
+ style="display:inline" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="dan rippon">
+ <rect
+ style="opacity:1.0000000;fill:url(#radialGradient26590);fill-opacity:1.0;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000"
+ id="rect25856"
+ width="813.17279"
+ height="612.35449"
+ x="-2.8284271"
+ y="-1.0407650"
+ rx="1.2792453"
+ ry="0.42639440" />
+ <path
+ style="fill:url(#radialGradient2351);stroke:none;fill-opacity:1.0"
+ d="M 655.00000,2.5000000 L 655.00000,5.0000000 L 645.00000,0.0000000 L 655.00000,2.5000000 M 582.50000,0.0000000 L 585.00000,7.5000000 L 570.00000,5.0000000 L 570.00000,2.5000000 L 580.00000,5.0000000 L 582.50000,0.0000000 z "
+ id="path2748" />
+ <path
+ style="fill:url(#radialGradient2359);stroke:none;fill-opacity:1.0"
+ d="M 579.16675,1.6666750 L 578.33325,3.3333250 L 579.16675,1.6666750 z "
+ id="path2750" />
+ <path
+ style="fill:url(#radialGradient2367);stroke:none;fill-opacity:1.0"
+ d="M 567.50000,0.0000000 L 567.50000,5.0000000 L 562.50000,5.0000000 L 567.50000,0.0000000 M 545.00000,0.0000000 L 542.50000,7.5000000 L 535.00000,5.0000000 L 545.00000,0.0000000 M 512.50000,0.0000000 L 512.50000,2.5000000 L 507.50000,5.0000000 L 515.00000,7.5000000 L 515.00000,12.500000 L 502.50000,12.500000 L 500.00000,0.0000000 L 512.50000,0.0000000 M 212.50000,0.0000000 L 187.50000,12.500000 L 182.50000,0.0000000 L 212.50000,0.0000000 z "
+ id="path2752" />
+ <path
+ style="fill:url(#radialGradient2375);stroke:none;fill-opacity:1.0"
+ d="M 197.50000,0.0000000 L 197.50000,2.5000000 L 187.50000,2.5000000 L 197.50000,0.0000000 z "
+ id="path2754" />
+ <path
+ style="fill:url(#radialGradient2383);stroke:none;fill-opacity:1.0"
+ d="M 137.50000,0.0000000 L 137.50000,2.5000000 L 130.00000,2.5000000 L 137.50000,0.0000000 M 107.50000,0.0000000 L 105.00000,7.5000000 L 95.000000,2.5000000 L 107.50000,0.0000000 M 295.00000,2.5000000 L 295.00000,10.000000 L 292.50000,10.000000 L 295.00000,2.5000000 M 90.000000,2.5000000 L 87.500000,12.500000 L 85.000000,12.500000 L 90.000000,2.5000000 M 681.66675,6.6666750 L 680.83325,8.3333250 L 681.66675,6.6666750 M 657.50000,7.5000000 L 652.50000,12.500000 L 652.50000,7.5000000 L 657.50000,7.5000000 M 577.50000,10.000000 L 570.00000,15.000000 L 577.50000,10.000000 M 555.00000,12.500000 L 555.00000,15.000000 L 550.00000,25.000000 L 562.50000,20.000000 C 562.50000,26.844000 566.62450,26.785250 567.50000,20.000000 L 570.00000,20.000000 L 572.50000,25.000000 L 575.00000,17.500000 L 587.50000,25.000000 L 590.00000,22.500000 L 587.50000,12.500000 L 600.00000,22.500000 L 592.50000,30.000000 C 599.91675,28.449250 604.19000,33.027250 595.00000,35.000000 L 595.00000,37.500000 L 600.00000,47.500000 L 607.50000,60.000000 L 605.00000,60.000000 L 597.50000,55.000000 L 592.50000,72.500000 L 585.00000,67.500000 L 592.50000,80.000000 L 570.00000,85.000000 L 565.00000,65.000000 L 562.50000,80.000000 L 555.00000,77.500000 L 550.00000,87.500000 L 552.50000,77.500000 L 542.50000,75.000000 L 537.50000,67.500000 L 540.00000,60.000000 L 532.50000,57.500000 L 545.00000,47.500000 L 555.00000,50.000000 L 547.50000,45.000000 L 545.00000,40.000000 L 545.00000,35.000000 L 552.50000,30.000000 L 547.50000,20.000000 L 542.50000,25.000000 L 537.50000,10.000000 L 555.00000,12.500000 M 105.00000,10.000000 L 105.00000,20.000000 L 97.500000,12.500000 L 105.00000,10.000000 M 702.50000,12.500000 L 700.00000,20.000000 L 702.50000,12.500000 M 537.50000,20.000000 L 530.00000,15.000000 L 537.50000,20.000000 M 795.00000,20.000000 L 797.50000,25.000000 L 792.50000,25.000000 L 795.00000,20.000000 M 425.00000,20.000000 L 422.50000,30.000000 L 420.00000,30.000000 L 425.00000,20.000000 M 110.83250,20.833325 L 109.16750,21.666675 L 110.83250,20.833325 M 97.500000,20.000000 L 107.50000,32.500000 L 102.50000,37.500000 L 120.00000,40.000000 L 120.00000,37.500000 L 112.50000,37.500000 L 112.50000,35.000000 L 122.50000,37.500000 L 107.50000,50.000000 L 105.00000,50.000000 L 100.00000,47.500000 C 100.99500,39.382500 100.18750,35.855250 92.500000,32.500000 L 97.500000,20.000000 M 530.83250,23.333325 L 529.16750,24.166675 L 530.83250,23.333325 M 283.33250,23.333325 L 281.66750,24.166675 L 283.33250,23.333325 M 792.50000,25.000000 L 800.00000,32.500000 L 792.50000,25.000000 z "
+ id="path2756" />
+ <path
+ style="fill:url(#radialGradient2391);stroke:none;fill-opacity:1.0"
+ d="M 577.50000,25.000000 L 577.50000,30.000000 L 572.50000,25.000000 L 577.50000,25.000000 M 557.50000,25.000000 L 565.00000,30.000000 L 565.00000,32.500000 L 565.00000,35.000000 L 552.50000,32.500000 L 557.50000,25.000000 z "
+ id="path2758" />
+ <path
+ style="fill:url(#radialGradient2399);stroke:none;fill-opacity:1.0"
+ d="M 85.832500,25.833250 L 84.167500,26.666750 L 85.832500,25.833250 M 202.50000,27.500000 C 201.32250,32.997750 194.65250,39.249500 189.58250,31.944500 C 188.44250,30.301500 192.75000,25.206750 192.50000,32.500000 L 202.50000,27.500000 z "
+ id="path2760" />
+ <path
+ style="fill:url(#radialGradient2407);stroke:none;fill-opacity:1.0"
+ d="M 588.33325,30.833250 L 586.66675,31.666750 L 588.33325,30.833250 z "
+ id="path2762" />
+ <path
+ style="fill:url(#radialGradient2415);stroke:none;fill-opacity:1.0"
+ d="M 445.00000,30.000000 L 437.50000,35.000000 L 445.00000,30.000000 M 432.50000,40.000000 L 432.50000,42.500000 L 412.50000,40.000000 L 412.50000,37.500000 L 420.00000,32.500000 L 432.50000,40.000000 M 285.00000,32.500000 L 270.00000,40.000000 L 272.50000,47.500000 L 270.00000,47.500000 L 265.00000,32.500000 L 285.00000,32.500000 M 787.50000,35.000000 L 780.00000,42.500000 L 780.00000,40.000000 C 784.90015,38.366500 786.38503,37.500000 780.00000,37.500000 L 787.50000,35.000000 M 627.50000,45.000000 L 615.00000,42.500000 L 617.50000,35.000000 L 627.50000,45.000000 z "
+ id="path2764" />
+ <path
+ style="fill:url(#radialGradient2423);stroke:none;fill-opacity:1.0"
+ d="M 512.50000,45.000000 L 512.50000,47.500000 L 505.00000,47.500000 L 512.50000,45.000000 M 795.00000,47.500000 L 795.00000,50.000000 L 787.50000,50.000000 L 795.00000,47.500000 M 630.00000,60.000000 L 617.50000,62.500000 L 615.00000,47.500000 L 630.00000,60.000000 z "
+ id="path2768" />
+ <path
+ style="fill:url(#radialGradient2431);stroke:none;fill-opacity:1.0"
+ d="M 572.50000,52.500000 L 565.00000,47.500000 L 572.50000,52.500000 z "
+ id="path2770" />
+ <path
+ style="fill:url(#radialGradient2439);stroke:none;fill-opacity:1.0"
+ d="M 516.66750,49.166750 L 515.83250,50.833250 L 516.66750,49.166750 M 367.50000,47.500000 L 370.00000,65.000000 L 360.00000,65.000000 L 360.00000,62.500000 L 367.50000,47.500000 M 320.83250,50.833250 L 319.16750,51.666750 L 320.83250,50.833250 z "
+ id="path2772" />
+ <path
+ style="fill:url(#radialGradient2447);stroke:none;fill-opacity:1.0"
+ d="M 621.66675,54.166750 L 620.83325,55.833250 L 621.66675,54.166750 M 550.83325,53.333250 L 549.16750,54.166750 L 550.83325,53.333250 z "
+ id="path2774" />
+ <path
+ style="fill:url(#radialGradient2455);stroke:none;fill-opacity:1.0"
+ d="M 313.33250,53.333250 L 311.66750,54.166750 L 313.33250,53.333250 M 300.00000,52.500000 L 315.00000,67.500000 L 307.50000,70.000000 L 307.50000,72.500000 L 325.00000,77.500000 L 320.00000,87.500000 L 325.00000,87.500000 L 322.50000,92.500000 L 332.50000,92.500000 L 332.50000,95.000000 L 327.50000,105.00000 L 317.50000,105.00000 L 322.50000,117.50000 C 306.53000,133.06150 309.33750,145.22400 282.50000,137.50000 L 285.00000,127.50000 L 295.00000,127.50000 L 295.00000,122.50000 L 290.00000,115.00000 L 265.00000,120.00000 L 270.00000,127.50000 L 270.00000,137.50000 L 265.00000,140.00000 L 262.50000,140.00000 L 260.00000,135.00000 L 252.50000,140.00000 L 250.00000,122.50000 L 245.00000,117.50000 L 245.00000,115.00000 L 247.50000,100.00000 L 250.00000,100.00000 L 252.50000,105.00000 L 267.50000,105.00000 L 272.50000,95.000000 L 262.50000,97.500000 L 265.00000,80.000000 L 267.50000,80.000000 L 267.50000,87.500000 L 270.00000,87.500000 L 270.00000,80.000000 L 275.00000,75.000000 L 300.00000,72.500000 L 292.50000,60.000000 L 300.00000,60.000000 L 300.00000,52.500000 M 636.66675,56.666750 L 635.83325,58.333250 L 636.66675,56.666750 z "
+ id="path2776" />
+ <path
+ style="fill:url(#radialGradient2463);stroke:none;fill-opacity:1.0"
+ d="M 582.50000,65.000000 L 575.00000,57.500000 L 582.50000,65.000000 M 555.00000,60.000000 L 552.50000,67.500000 L 545.00000,67.500000 L 542.50000,65.000000 L 542.50000,57.500000 L 555.00000,60.000000 z "
+ id="path2778" />
+ <path
+ style="fill:url(#radialGradient2471);stroke:none;fill-opacity:1.0"
+ d="M 525.00000,57.500000 L 525.00000,62.500000 L 520.00000,62.500000 L 525.00000,57.500000 M 517.50000,57.500000 L 512.50000,62.500000 L 512.50000,57.500000 L 517.50000,57.500000 M 400.00000,57.500000 L 402.50000,67.500000 L 440.00000,67.500000 C 438.79000,79.299250 436.05250,85.833250 447.50000,92.500000 L 447.50000,95.000000 C 433.46250,95.192750 434.47750,100.69050 435.00000,112.50000 L 420.00000,112.50000 L 422.50000,127.50000 C 433.19250,128.94550 438.22000,132.58050 442.50000,142.50000 L 447.50000,142.50000 L 445.00000,125.00000 L 450.00000,115.00000 L 457.50000,105.00000 L 460.00000,105.00000 L 462.50000,115.00000 L 480.00000,110.00000 L 482.50000,122.50000 L 502.50000,115.00000 L 497.50000,127.50000 L 507.50000,127.50000 L 505.00000,137.50000 L 515.00000,137.50000 L 520.00000,142.50000 L 522.50000,160.00000 L 520.00000,160.00000 L 510.00000,155.00000 L 507.50000,167.50000 L 495.00000,170.00000 L 485.00000,180.00000 L 502.50000,182.50000 L 510.00000,185.00000 L 510.00000,192.50000 C 519.31750,189.83750 524.80250,188.57950 530.00000,197.50000 L 527.50000,197.50000 L 525.00000,192.50000 L 520.00000,210.00000 L 535.00000,220.00000 L 525.00000,220.00000 L 532.50000,230.00000 L 522.50000,257.50000 L 520.00000,250.00000 L 497.50000,252.50000 L 495.00000,255.00000 L 505.00000,265.00000 L 502.50000,272.50000 L 512.50000,275.00000 C 509.75250,283.30250 506.02500,284.34250 497.50000,285.00000 L 497.50000,305.00000 C 511.37500,314.25000 501.13750,325.84500 490.00000,332.50000 L 492.50000,337.50000 L 492.50000,340.00000 L 490.00000,340.00000 L 487.50000,335.00000 L 482.50000,340.00000 L 487.50000,322.50000 L 482.50000,317.50000 L 465.00000,322.50000 L 460.00000,312.50000 L 445.00000,345.00000 L 462.50000,350.00000 C 463.65500,358.83750 462.50250,362.58000 455.00000,367.50000 C 465.11000,378.83000 475.53500,370.44750 482.50000,360.00000 L 492.50000,365.00000 L 487.50000,375.00000 L 492.50000,372.50000 L 492.50000,375.00000 L 485.00000,377.50000 L 487.50000,402.50000 L 467.50000,392.50000 C 469.99250,408.76000 463.20000,414.47000 447.50000,410.00000 L 450.00000,422.50000 L 447.50000,422.50000 L 445.00000,422.50000 L 447.50000,415.00000 L 437.50000,407.50000 L 435.00000,407.50000 L 430.00000,412.50000 L 432.50000,420.00000 L 427.50000,425.00000 L 425.00000,425.00000 L 415.00000,417.50000 L 415.00000,415.00000 L 422.50000,417.50000 L 415.00000,412.50000 L 415.00000,410.00000 L 420.00000,402.50000 L 412.50000,402.50000 L 412.50000,400.00000 L 422.50000,400.00000 L 422.50000,397.50000 L 400.00000,402.50000 L 400.00000,400.00000 L 410.00000,397.50000 L 410.00000,392.50000 L 417.50000,392.50000 L 402.50000,380.00000 L 402.50000,377.50000 L 412.50000,380.00000 L 415.00000,372.50000 L 425.00000,372.50000 L 422.50000,355.00000 L 405.00000,360.00000 C 396.39250,353.09500 394.17000,348.14500 397.50000,337.50000 C 379.48000,334.55750 380.56500,346.99250 375.00000,360.00000 C 384.62500,362.86500 387.15750,368.19000 390.00000,377.50000 L 382.50000,375.00000 L 375.00000,382.50000 L 375.00000,390.00000 L 372.50000,390.00000 L 365.00000,392.50000 L 362.50000,392.50000 L 347.50000,382.50000 L 350.00000,390.00000 L 337.50000,387.50000 L 345.00000,380.00000 L 322.50000,382.50000 L 330.00000,377.50000 L 315.00000,377.50000 L 312.50000,370.00000 L 302.50000,365.00000 C 306.86500,359.18000 306.96750,355.58500 312.50000,362.50000 L 310.00000,342.50000 L 322.50000,345.00000 L 322.50000,327.50000 C 332.75000,330.38000 334.80500,327.26750 337.50000,317.50000 L 327.50000,312.50000 L 302.50000,330.00000 L 307.50000,322.50000 L 287.50000,327.50000 L 290.00000,310.00000 L 280.00000,305.00000 L 277.50000,305.00000 L 270.00000,310.00000 L 275.00000,302.50000 L 267.50000,290.00000 L 272.50000,285.00000 L 262.50000,282.50000 L 265.00000,257.50000 L 267.50000,257.50000 L 267.50000,267.50000 L 277.50000,267.50000 L 280.00000,257.50000 L 290.00000,262.50000 L 297.50000,250.00000 L 285.00000,237.50000 L 267.50000,227.50000 L 277.50000,230.00000 L 280.00000,200.00000 L 277.50000,197.50000 L 265.00000,200.00000 L 257.50000,190.00000 L 265.00000,190.00000 L 270.00000,170.00000 L 262.50000,170.00000 L 262.50000,167.50000 L 262.50000,165.00000 L 275.00000,175.00000 L 270.00000,172.50000 L 270.00000,175.00000 L 280.00000,190.00000 L 292.50000,175.00000 L 300.00000,185.00000 L 317.50000,182.50000 C 314.10500,170.41275 309.09750,157.65600 325.00000,155.00000 C 326.19250,131.58075 336.95500,131.83575 347.50000,115.00000 L 357.50000,117.50000 L 352.50000,135.00000 L 370.00000,135.00000 L 372.50000,142.50000 L 375.00000,142.50000 L 382.50000,127.50000 L 382.50000,97.500000 L 380.00000,95.000000 L 360.00000,102.50000 L 362.50000,95.000000 L 352.50000,87.500000 L 360.00000,90.000000 L 365.00000,85.000000 L 365.00000,82.500000 L 355.00000,75.000000 L 357.50000,75.000000 L 365.00000,80.000000 L 372.50000,65.000000 L 380.00000,65.000000 L 385.00000,75.000000 L 400.00000,57.500000 z "
+ id="path2780" />
+ <path
+ style="fill:url(#radialGradient2479);stroke:none;fill-opacity:1.0"
+ d="M 595.00000,60.000000 L 595.00000,62.500000 L 585.00000,62.500000 L 595.00000,60.000000 z "
+ id="path2782" />
+ <path
+ style="fill:url(#radialGradient2487);stroke:none;fill-opacity:1.0"
+ d="M 612.50000,67.500000 L 605.00000,82.500000 L 600.00000,82.500000 L 597.50000,65.000000 L 612.50000,67.500000 M 527.50000,67.500000 L 512.50000,77.500000 L 517.50000,67.500000 L 527.50000,67.500000 z "
+ id="path2784" />
+ <path
+ style="fill:url(#radialGradient2495);stroke:none;fill-opacity:1.0"
+ d="M 399.16750,66.666750 L 398.33250,68.333250 L 399.16750,66.666750 z "
+ id="path2786" />
+ <path
+ style="fill:url(#radialGradient2503);stroke:none;fill-opacity:1.0"
+ d="M 278.33250,65.833250 L 276.66750,66.666750 L 278.33250,65.833250 z "
+ id="path2788" />
+ <path
+ style="fill:url(#radialGradient2511);stroke:none;fill-opacity:1.0"
+ d="M 605.00000,67.500000 L 600.00000,77.500000 L 605.00000,67.500000 z "
+ id="path2790" />
+ <path
+ style="fill:url(#radialGradient2519);stroke:none;fill-opacity:1.0"
+ d="M 445.00000,67.500000 L 450.00000,70.000000 L 450.00000,72.500000 L 445.00000,67.500000 M 454.16750,71.666750 L 453.33250,73.333250 L 454.16750,71.666750 z "
+ id="path2792" />
+ <path
+ style="fill:url(#radialGradient2527);stroke:none;fill-opacity:1.0"
+ d="M 7.5000000,85.000000 L 7.5000000,87.500000 L 0.0000000,87.500000 L 7.5000000,85.000000 z "
+ id="path2796" />
+ <path
+ style="fill:url(#radialGradient2535);stroke:none;fill-opacity:1.0"
+ d="M 435.00000,87.500000 L 435.00000,92.500000 L 430.00000,87.500000 L 435.00000,87.500000 z "
+ id="path2798" />
+ <path
+ style="fill:url(#radialGradient2544);stroke:none;fill-opacity:1.0"
+ d="M 17.500000,87.500000 L 17.500000,90.000000 L 12.500000,95.000000 L 10.000000,95.000000 L 17.500000,87.500000 z "
+ id="path2800" />
+ <path
+ style="fill:url(#radialGradient2552);stroke:none;fill-opacity:1.0"
+ d="M 363.33250,90.833250 L 361.66750,91.666750 L 363.33250,90.833250 z "
+ id="path2802" />
+ <path
+ style="fill:url(#radialGradient2560);stroke:none;fill-opacity:1.0"
+ d="M 7.5000000,90.000000 L 7.5000000,100.00000 L 5.0000000,100.00000 L 2.5000000,90.000000 L 7.5000000,90.000000 z "
+ id="path2804" />
+ <path
+ style="fill:url(#radialGradient2568);stroke:none;fill-opacity:1.0"
+ d="M 322.50000,92.500000 L 315.00000,97.500000 L 322.50000,92.500000 z "
+ id="path2806" />
+ <path
+ style="fill:url(#radialGradient2576);stroke:none;fill-opacity:1.0"
+ d="M 223.33250,95.833250 L 221.66750,96.666750 L 223.33250,95.833250 z "
+ id="path2808" />
+ <path
+ style="fill:url(#radialGradient2584);stroke:none;fill-opacity:1.0"
+ d="M 425.00000,97.500000 L 427.50000,102.50000 L 422.50000,102.50000 L 425.00000,97.500000 M 412.50000,102.50000 C 407.75250,108.99550 404.61000,108.13500 397.50000,105.00000 L 397.50000,102.50000 L 405.00000,97.500000 L 412.50000,102.50000 z "
+ id="path2810" />
+ <path
+ style="fill:url(#radialGradient2592);stroke:none;fill-opacity:1.0"
+ d="M 231.66750,99.166750 L 230.83250,100.83325 L 231.66750,99.166750 M 12.500000,97.500000 L 15.000000,102.50000 L 10.000000,102.50000 L 12.500000,97.500000 M 480.00000,100.00000 L 480.00000,102.50000 L 470.00000,107.50000 L 480.00000,100.00000 z "
+ id="path2812" />
+ <path
+ style="fill:url(#radialGradient2600);stroke:none;fill-opacity:1.0"
+ d="M 287.50000,100.00000 L 282.50000,107.50000 L 280.00000,105.00000 L 282.50000,100.00000 L 287.50000,100.00000 M 257.50000,105.00000 L 260.00000,122.50000 C 253.22250,117.32025 252.71250,111.88425 257.50000,105.00000 z "
+ id="path2814" />
+ <path
+ style="fill:url(#radialGradient2608);stroke:none;fill-opacity:1.0"
+ d="M 239.16750,106.66675 L 238.33250,108.33325 L 239.16750,106.66675 M 32.500000,105.00000 L 30.000000,115.00000 L 42.500000,112.50000 L 50.000000,122.50000 L 35.000000,132.50000 L 30.000000,130.00000 L 32.500000,105.00000 z "
+ id="path2816" />
+ <path
+ style="fill:url(#radialGradient2616);stroke:none;fill-opacity:1.0"
+ d="M 312.50000,110.00000 L 312.50000,112.50000 L 292.50000,115.00000 L 312.50000,110.00000 M 278.33250,108.33325 L 276.66750,109.16675 L 278.33250,108.33325 z "
+ id="path2818" />
+ <path
+ style="fill:url(#radialGradient2624);stroke:none;fill-opacity:1.0"
+ d="M 24.167500,109.16675 L 23.332500,110.83325 L 24.167500,109.16675 M 750.00000,110.00000 L 750.00000,115.00000 L 745.00000,115.00000 L 750.00000,110.00000 M 532.50000,112.50000 L 532.50000,115.00000 L 525.00000,115.00000 L 532.50000,112.50000 M 135.83250,113.33325 L 134.16750,114.16675 L 135.83250,113.33325 M 5.8325000,113.33325 L 4.1675000,114.16675 L 5.8325000,113.33325 z "
+ id="path2820" />
+ <path
+ style="fill:url(#radialGradient2632);stroke:none;fill-opacity:1.0"
+ d="M 480.00000,117.50000 L 475.00000,125.00000 L 465.00000,117.50000 L 480.00000,117.50000 M 462.50000,115.00000 L 460.00000,127.50000 C 453.96500,123.09075 457.58750,119.30750 462.50000,115.00000 z "
+ id="path2822" />
+ <path
+ style="fill:url(#radialGradient2640);stroke:none;fill-opacity:1.0"
+ d="M 535.00000,120.00000 L 537.50000,125.00000 L 537.50000,127.50000 L 532.50000,132.50000 L 522.50000,132.50000 L 530.00000,127.50000 L 530.00000,125.00000 L 520.00000,117.50000 L 535.00000,120.00000 z "
+ id="path2824" />
+ <path
+ style="fill:url(#radialGradient2648);stroke:none;fill-opacity:1.0"
+ d="M 42.500000,117.50000 L 40.000000,125.00000 L 32.500000,120.00000 L 42.500000,117.50000 z "
+ id="path2826" />
+ <path
+ style="fill:url(#radialGradient2656);stroke:none;fill-opacity:1.0"
+ d="M 7.5000000,120.00000 L 0.0000000,127.50000 L 0.0000000,117.50000 L 7.5000000,120.00000 z "
+ id="path2828" />
+ <path
+ style="fill:url(#radialGradient2664);stroke:none;fill-opacity:1.0"
+ d="M 495.00000,122.50000 L 495.00000,130.00000 L 490.00000,127.50000 L 490.00000,125.00000 L 495.00000,122.50000 z "
+ id="path2830" />
+ <path
+ style="fill:url(#radialGradient2672);stroke:none;fill-opacity:1.0"
+ d="M 544.16750,126.66675 L 543.33250,128.33325 L 544.16750,126.66675 M 757.50000,127.50000 L 757.50000,137.50000 L 747.50000,135.00000 L 757.50000,127.50000 z "
+ id="path2832" />
+ <path
+ style="fill:url(#radialGradient2680);stroke:none;fill-opacity:1.0"
+ d="M 475.83250,128.33325 L 474.16750,129.16675 L 475.83250,128.33325 z "
+ id="path2834" />
+ <path
+ style="fill:url(#radialGradient2688);stroke:none;fill-opacity:1.0"
+ d="M 12.500000,127.50000 L 17.500000,147.50000 L 15.000000,147.50000 L 12.500000,137.50000 L 2.5000000,137.50000 L 2.5000000,140.00000 L 12.500000,145.00000 L 12.500000,147.50000 L 10.000000,172.50000 L 7.5000000,172.50000 L 7.5000000,165.00000 L 0.0000000,167.50000 L 7.5000000,162.50000 L 0.0000000,130.00000 L 12.500000,127.50000 z "
+ id="path2836" />
+ <path
+ style="fill:url(#radialGradient2696);stroke:none;fill-opacity:1.0"
+ d="M 303.33250,130.83325 L 301.66750,131.66675 L 303.33250,130.83325 z "
+ id="path2838" />
+ <path
+ style="fill:url(#radialGradient2704);stroke:none;fill-opacity:1.0"
+ d="M 594.16675,134.16675 L 593.33325,135.83325 L 594.16675,134.16675 M 555.00000,132.50000 L 555.00000,135.00000 L 545.00000,137.50000 L 545.00000,135.00000 L 555.00000,132.50000 z "
+ id="path2840" />
+ <path
+ style="fill:url(#radialGradient2712);stroke:none;fill-opacity:1.0"
+ d="M 347.50000,132.50000 L 345.00000,137.50000 L 342.50000,137.50000 L 340.00000,132.50000 L 347.50000,132.50000 z "
+ id="path2842" />
+ <path
+ style="fill:url(#radialGradient2720);stroke:none;fill-opacity:1.0"
+ d="M 134.16750,134.16675 L 133.33250,135.83325 L 134.16750,134.16675 M 615.00000,137.50000 L 615.00000,140.00000 L 607.50000,140.00000 L 607.50000,142.50000 L 617.50000,155.00000 L 620.00000,155.00000 L 622.50000,140.00000 L 625.00000,140.00000 L 622.50000,147.50000 L 630.00000,155.00000 L 627.50000,155.00000 L 622.50000,150.00000 L 620.00000,160.00000 L 635.00000,150.00000 L 642.50000,155.00000 L 642.50000,157.50000 L 632.50000,157.50000 L 637.50000,162.50000 L 637.50000,165.00000 L 625.00000,167.50000 L 622.50000,167.50000 L 622.50000,162.50000 L 617.50000,162.50000 L 627.50000,177.50000 L 625.00000,180.00000 L 622.50000,175.00000 L 620.00000,175.00000 L 625.00000,192.50000 L 632.50000,190.00000 L 637.50000,182.50000 C 636.06350,176.50950 636.31225,176.28250 642.50000,175.00000 L 640.00000,182.50000 L 647.50000,180.00000 L 637.50000,185.00000 L 637.50000,187.50000 L 650.00000,187.50000 L 650.00000,190.00000 L 642.50000,195.00000 L 637.50000,202.50000 L 650.00000,197.50000 L 650.00000,207.50000 L 650.00000,210.00000 L 642.50000,212.50000 L 647.50000,217.50000 L 635.00000,222.50000 L 635.00000,225.00000 L 640.00000,227.50000 L 627.50000,235.00000 L 630.00000,247.50000 L 615.00000,250.00000 L 617.50000,237.50000 L 587.50000,240.00000 L 587.50000,237.50000 L 597.50000,235.00000 L 592.50000,230.00000 L 600.00000,227.50000 L 600.00000,225.00000 L 580.00000,225.00000 L 580.00000,222.50000 L 590.00000,220.00000 L 590.00000,217.50000 L 577.50000,207.50000 L 582.50000,195.00000 L 590.00000,197.50000 L 590.00000,187.50000 L 592.50000,187.50000 L 592.50000,195.00000 L 602.50000,197.50000 L 610.00000,187.50000 L 610.00000,175.00000 L 602.50000,167.50000 L 612.50000,170.00000 L 607.50000,147.50000 L 597.50000,157.50000 L 595.00000,157.50000 L 590.00000,145.00000 L 595.00000,140.00000 L 615.00000,137.50000 z "
+ id="path2844" />
+ <path
+ style="fill:url(#radialGradient2728);stroke:none;fill-opacity:1.0"
+ d="M 492.50000,135.00000 L 502.50000,152.50000 L 487.50000,157.50000 L 485.00000,142.50000 L 477.50000,145.00000 L 482.50000,135.00000 L 485.00000,135.00000 L 485.00000,140.00000 L 490.00000,140.00000 L 487.50000,135.00000 L 492.50000,135.00000 z "
+ id="path2846" />
+ <path
+ style="fill:url(#radialGradient2736);stroke:none;fill-opacity:1.0"
+ d="M 22.500000,135.00000 L 25.000000,140.00000 L 20.000000,140.00000 L 22.500000,135.00000 M 787.50000,137.50000 L 785.00000,145.00000 L 775.00000,142.50000 L 787.50000,137.50000 M 747.50000,137.50000 L 742.50000,145.00000 L 742.50000,137.50000 L 747.50000,137.50000 z "
+ id="path2848" />
+ <path
+ style="fill:url(#radialGradient2744);stroke:none;fill-opacity:1.0"
+ d="M 419.16750,139.16675 L 418.33250,140.83325 L 419.16750,139.16675 z "
+ id="path2850" />
+ <path
+ style="fill:url(#radialGradient2752);stroke:none;fill-opacity:1.0"
+ d="M 185.83250,138.33325 L 184.16750,139.16675 L 185.83250,138.33325 M 797.50000,142.50000 L 800.00000,170.00000 L 790.00000,170.00000 L 792.50000,180.00000 L 777.50000,185.00000 L 785.00000,180.00000 L 785.00000,167.50000 L 775.00000,175.00000 L 772.50000,167.50000 L 777.50000,167.50000 L 772.50000,160.00000 L 772.50000,157.50000 L 797.50000,142.50000 z "
+ id="path2852" />
+ <path
+ style="fill:url(#radialGradient2760);stroke:none;fill-opacity:1.0"
+ d="M 605.83325,143.33325 L 604.16675,144.16675 L 605.83325,143.33325 z "
+ id="path2854" />
+ <path
+ style="fill:url(#radialGradient2768);stroke:none;fill-opacity:1.0"
+ d="M 145.00000,142.50000 L 145.00000,147.50000 L 140.00000,142.50000 L 145.00000,142.50000 z "
+ id="path2856" />
+ <path
+ style="fill:url(#radialGradient2776);stroke:none;fill-opacity:1.0"
+ d="M 611.66675,146.66675 L 610.83325,148.33325 L 611.66675,146.66675 M 360.00000,150.00000 L 352.50000,145.00000 L 360.00000,150.00000 z "
+ id="path2858" />
+ <path
+ style="fill:url(#radialGradient2784);stroke:none;fill-opacity:1.0"
+ d="M 190.00000,145.00000 L 190.00000,160.00000 L 200.00000,162.50000 L 197.50000,155.00000 C 207.43000,152.32050 213.99250,153.87825 210.00000,165.00000 L 235.00000,170.00000 L 235.00000,172.50000 L 225.00000,172.50000 L 222.50000,182.50000 L 240.00000,185.00000 L 230.00000,192.50000 L 230.00000,207.50000 L 242.50000,205.00000 L 245.00000,220.00000 L 235.00000,217.50000 L 227.50000,232.50000 L 225.00000,232.50000 L 222.50000,232.50000 L 222.50000,222.50000 L 232.50000,217.50000 L 232.50000,215.00000 L 227.50000,210.00000 L 212.50000,212.50000 L 207.50000,205.00000 L 197.50000,212.50000 L 200.00000,230.00000 L 190.00000,225.00000 L 192.50000,245.00000 L 200.00000,240.00000 L 202.50000,245.00000 L 202.50000,247.50000 L 197.50000,247.50000 L 202.50000,250.00000 L 202.50000,252.50000 L 187.50000,257.50000 L 185.00000,257.50000 L 177.50000,252.50000 L 180.00000,240.00000 L 175.00000,245.00000 L 162.50000,230.00000 L 182.50000,222.50000 L 187.50000,212.50000 L 185.00000,202.50000 L 172.50000,205.00000 L 175.00000,212.50000 L 165.00000,197.50000 L 165.00000,195.00000 L 177.50000,195.00000 L 170.00000,190.00000 L 177.50000,172.50000 L 187.50000,172.50000 L 187.50000,170.00000 L 182.50000,165.00000 L 187.50000,165.00000 L 177.50000,162.50000 C 177.91000,152.88950 181.66750,149.49875 190.00000,145.00000 z "
+ id="path2860" />
+ <path
+ style="fill:url(#radialGradient2792);stroke:none;fill-opacity:1.0"
+ d="M 512.50000,147.50000 L 515.00000,152.50000 L 510.00000,152.50000 L 512.50000,147.50000 z "
+ id="path2862" />
+ <path
+ style="fill:url(#radialGradient2800);stroke:none;fill-opacity:1.0"
+ d="M 137.50000,147.50000 L 137.50000,165.00000 L 130.00000,162.50000 L 132.50000,147.50000 L 137.50000,147.50000 M 66.667500,149.16675 L 65.832500,150.83325 L 66.667500,149.16675 M 42.500000,147.50000 L 45.000000,157.50000 L 52.500000,160.00000 L 52.500000,162.50000 L 45.000000,162.50000 L 42.500000,172.50000 L 52.500000,167.50000 L 55.000000,180.00000 L 47.500000,175.00000 L 37.500000,185.00000 L 42.500000,200.00000 L 32.500000,187.50000 L 30.000000,192.50000 L 27.500000,192.50000 L 20.000000,172.50000 L 20.000000,170.00000 L 27.500000,155.00000 L 30.000000,155.00000 L 27.500000,172.50000 L 30.000000,172.50000 L 37.500000,155.00000 L 42.500000,147.50000 z "
+ id="path2864" />
+ <path
+ style="fill:url(#radialGradient2808);stroke:none;fill-opacity:1.0"
+ d="M 526.66750,159.16675 L 525.83250,160.83325 L 526.66750,159.16675 z "
+ id="path2868" />
+ <path
+ style="fill:url(#radialGradient2816);stroke:none;fill-opacity:1.0"
+ d="M 768.33325,168.33325 L 766.66675,169.16675 L 768.33325,168.33325 z "
+ id="path2872" />
+ <path
+ style="fill:url(#radialGradient2824);stroke:none;fill-opacity:1.0"
+ d="M 580.00000,177.50000 L 572.50000,185.00000 L 577.50000,202.50000 L 562.50000,197.50000 L 575.00000,195.00000 L 567.50000,187.50000 L 567.50000,185.00000 L 580.00000,177.50000 z "
+ id="path2876" />
+ <path
+ style="fill:url(#radialGradient2832);stroke:none;fill-opacity:1.0"
+ d="M 790.00000,182.50000 L 797.50000,187.50000 L 780.00000,187.50000 L 780.00000,185.00000 L 790.00000,182.50000 M 5.0000000,182.50000 C 7.1350000,189.24325 7.1275000,190.96500 0.0000000,192.50000 L 5.0000000,182.50000 z "
+ id="path2880" />
+ <path
+ style="fill:url(#radialGradient2840);stroke:none;fill-opacity:1.0"
+ d="M 410.00000,185.00000 L 412.50000,190.00000 L 407.50000,190.00000 L 410.00000,185.00000 M 272.50000,185.00000 L 265.00000,192.50000 L 265.00000,190.00000 L 272.50000,185.00000 M 615.00000,187.50000 L 620.00000,195.00000 L 610.00000,195.00000 L 615.00000,187.50000 M 296.66750,189.16675 L 295.83250,190.83325 L 296.66750,189.16675 M 226.66750,189.16675 L 225.83250,190.83325 L 226.66750,189.16675 M 315.00000,202.50000 L 307.50000,207.50000 L 315.00000,207.50000 L 310.00000,220.00000 L 307.50000,212.50000 L 295.00000,217.50000 L 287.50000,202.50000 L 297.50000,195.00000 L 300.00000,195.00000 L 310.00000,202.50000 L 302.50000,192.50000 L 315.00000,202.50000 M 507.50000,212.50000 L 505.00000,212.50000 L 502.50000,195.00000 C 515.09000,193.17225 511.60000,205.15225 507.50000,212.50000 M 225.00000,197.50000 L 225.00000,202.50000 L 212.50000,205.00000 L 212.50000,202.50000 L 217.50000,200.00000 L 212.50000,195.00000 L 225.00000,197.50000 M 190.00000,192.50000 L 190.00000,197.50000 L 185.00000,197.50000 L 190.00000,192.50000 M 632.50000,195.00000 L 635.00000,202.50000 C 629.60525,200.05600 628.74825,199.52925 632.50000,195.00000 M 500.00000,200.00000 L 492.50000,195.00000 L 500.00000,200.00000 z "
+ id="path2882" />
+ <path
+ style="fill:url(#radialGradient2848);stroke:none;fill-opacity:1.0"
+ d="M 160.00000,197.50000 L 160.00000,202.50000 L 155.00000,197.50000 L 160.00000,197.50000 z "
+ id="path2884" />
+ <path
+ style="fill:url(#radialGradient2856);stroke:none;fill-opacity:1.0"
+ d="M 70.000000,202.50000 L 72.500000,210.00000 L 52.500000,212.50000 L 70.000000,202.50000 M 658.33325,208.33325 L 656.66675,209.16675 L 658.33325,208.33325 z "
+ id="path2888" />
+ <path
+ style="fill:url(#radialGradient2864);stroke:none;fill-opacity:1.0"
+ d="M 336.66750,209.16675 L 335.83250,210.83325 L 336.66750,209.16675 z "
+ id="path2890" />
+ <path
+ style="fill:url(#radialGradient2872);stroke:none;fill-opacity:1.0"
+ d="M 715.83325,210.83325 L 714.16675,211.66675 L 715.83325,210.83325 M 700.00000,210.00000 L 700.00000,212.50000 L 695.00000,215.00000 L 702.50000,220.00000 L 690.00000,235.00000 L 687.50000,215.00000 L 687.50000,212.50000 L 700.00000,210.00000 z "
+ id="path2892" />
+ <path
+ style="fill:url(#radialGradient2880);stroke:none;fill-opacity:1.0"
+ d="M 615.00000,210.00000 L 615.00000,215.00000 L 610.00000,215.00000 L 610.00000,210.00000 L 615.00000,210.00000 M 287.50000,210.00000 L 287.50000,215.00000 L 282.50000,215.00000 L 282.50000,210.00000 L 287.50000,210.00000 M 521.66750,214.16675 L 520.83250,215.83325 L 521.66750,214.16675 M 238.33250,213.33325 L 236.66750,214.16675 L 238.33250,213.33325 M 192.50000,212.50000 L 190.00000,222.50000 L 187.50000,222.50000 L 192.50000,212.50000 M 505.00000,215.00000 L 517.50000,220.00000 L 520.00000,232.50000 L 520.00000,247.50000 L 512.50000,237.50000 L 505.00000,240.00000 L 502.50000,230.00000 L 492.50000,232.50000 L 492.50000,220.00000 L 505.00000,225.00000 L 505.00000,215.00000 M 615.00000,225.00000 L 607.50000,220.00000 L 615.00000,225.00000 M 320.00000,220.00000 L 315.00000,225.00000 L 315.00000,220.00000 L 320.00000,220.00000 M 300.00000,220.00000 L 300.00000,222.50000 L 292.50000,240.00000 L 290.00000,240.00000 L 285.00000,227.50000 L 300.00000,220.00000 z "
+ id="path2894" />
+ <path
+ style="fill:url(#radialGradient2888);stroke:none;fill-opacity:1.0"
+ d="M 59.167500,221.66675 L 58.332500,223.33325 L 59.167500,221.66675 M 798.33333,223.33325 L 796.66668,224.16675 L 798.33333,223.33325 z "
+ id="path2896" />
+ <path
+ style="fill:url(#radialGradient2896);stroke:none;fill-opacity:1.0"
+ d="M 697.50000,227.50000 L 690.00000,227.50000 L 692.50000,222.50000 L 697.50000,227.50000 M 521.66750,224.16675 L 520.83250,225.83325 L 521.66750,224.16675 z "
+ id="path2898" />
+ <path
+ style="fill:url(#radialGradient2904);stroke:none;fill-opacity:1.0"
+ d="M 652.50000,225.00000 L 655.00000,235.00000 L 650.00000,235.00000 L 640.00000,252.50000 L 640.00000,232.50000 L 650.00000,235.00000 L 652.50000,225.00000 M 557.50000,227.50000 L 557.50000,230.00000 L 550.00000,230.00000 L 555.00000,240.00000 L 552.50000,255.00000 L 562.50000,255.00000 L 562.50000,257.50000 C 551.67200,256.64250 548.98750,252.97500 547.50000,242.50000 L 537.50000,245.00000 C 536.95500,228.92650 541.91750,226.64400 557.50000,227.50000 z "
+ id="path2900" />
+ <path
+ style="fill:url(#radialGradient2912);stroke:none;fill-opacity:1.0"
+ d="M 184.16750,226.66675 L 183.33250,228.33325 L 184.16750,226.66675 M 175.00000,227.50000 L 172.50000,235.00000 L 175.00000,227.50000 M 623.33325,230.83325 L 621.66675,231.66675 L 623.33325,230.83325 z "
+ id="path2902" />
+ <path
+ style="fill:url(#radialGradient2920);stroke:none;fill-opacity:1.0"
+ d="M 710.00000,232.50000 L 710.00000,240.00000 L 705.00000,237.50000 L 705.00000,235.00000 L 710.00000,232.50000 z "
+ id="path2904" />
+ <path
+ style="fill:url(#radialGradient2928);stroke:none;fill-opacity:1.0"
+ d="M 278.33250,233.33325 L 276.66750,234.16675 L 278.33250,233.33325 M 600.83325,235.83325 L 599.16675,236.66675 L 600.83325,235.83325 M 472.50000,235.00000 L 467.50000,242.50000 L 472.50000,235.00000 M 302.50000,235.00000 L 295.00000,240.00000 L 302.50000,235.00000 M 524.16750,239.16675 L 523.33250,240.83325 L 524.16750,239.16675 M 502.50000,237.50000 L 492.50000,242.50000 L 492.50000,240.00000 L 502.50000,237.50000 M 647.50000,245.00000 L 640.00000,245.00000 L 642.50000,240.00000 L 647.50000,245.00000 z "
+ id="path2906" />
+ <path
+ style="fill:url(#radialGradient2936);stroke:none;fill-opacity:1.0"
+ d="M 162.50000,245.00000 L 155.00000,245.00000 L 157.50000,240.00000 L 162.50000,245.00000 M 151.66750,241.66675 L 150.83250,243.33325 L 151.66750,241.66675 z "
+ id="path2908" />
+ <path
+ style="fill:url(#radialGradient2944);stroke:none;fill-opacity:1.0"
+ d="M 206.66750,254.16750 L 205.83250,255.83250 L 206.66750,254.16750 M 719.16675,259.16750 L 718.33325,260.83250 L 719.16675,259.16750 z "
+ id="path2912" />
+ <path
+ style="fill:url(#radialGradient2952);stroke:none;fill-opacity:1.0"
+ d="M 324.16750,259.16750 L 323.33250,260.83250 L 324.16750,259.16750 z "
+ id="path2914" />
+ <path
+ style="fill:url(#radialGradient2960);stroke:none;fill-opacity:1.0"
+ d="M 171.66750,259.16750 L 170.83250,260.83250 L 171.66750,259.16750 z "
+ id="path2916" />
+ <path
+ style="fill:url(#radialGradient2968);stroke:none;fill-opacity:1.0"
+ d="M 492.50000,265.00000 L 485.00000,272.50000 L 492.50000,265.00000 M 300.00000,265.00000 L 290.00000,272.50000 L 300.00000,265.00000 M 285.00000,265.00000 L 285.00000,270.00000 L 280.00000,265.00000 L 285.00000,265.00000 M 272.50000,267.50000 L 275.00000,275.00000 L 272.50000,267.50000 z "
+ id="path2918" />
+ <path
+ style="fill:url(#radialGradient2976);stroke:none;fill-opacity:1.0"
+ d="M 2.5000000,270.00000 L 5.0000000,275.00000 L 0.0000000,275.00000 L 2.5000000,270.00000 z "
+ id="path2920" />
+ <path
+ style="fill:url(#radialGradient2984);stroke:none;fill-opacity:1.0"
+ d="M 295.00000,282.50000 L 305.00000,275.00000 L 310.00000,287.50000 L 297.50000,282.50000 L 292.50000,297.50000 L 287.50000,295.00000 L 285.00000,295.00000 L 275.00000,280.00000 C 283.81750,274.61250 288.92500,273.43000 295.00000,282.50000 z "
+ id="path2922" />
+ <path
+ style="fill:url(#radialGradient2992);stroke:none;fill-opacity:1.0"
+ d="M 235.00000,272.50000 L 235.00000,275.00000 L 225.00000,277.50000 L 225.00000,275.00000 L 235.00000,272.50000 z "
+ id="path2924" />
+ <path
+ style="fill:url(#radialGradient3000);stroke:none;fill-opacity:1.0"
+ d="M 492.50000,275.00000 L 492.50000,280.00000 L 487.50000,280.00000 L 487.50000,275.00000 L 492.50000,275.00000 M 445.00000,275.00000 L 445.00000,280.00000 L 440.00000,280.00000 L 445.00000,275.00000 z "
+ id="path2926" />
+ <path
+ style="fill:url(#radialGradient3008);stroke:none;fill-opacity:1.0"
+ d="M 237.50000,277.50000 L 240.00000,285.00000 L 252.50000,280.00000 L 257.50000,302.50000 L 252.50000,297.50000 L 240.00000,300.00000 L 240.00000,297.50000 L 245.00000,287.50000 L 237.50000,277.50000 M 5.0000000,277.50000 L 0.0000000,285.00000 L 0.0000000,277.50000 L 5.0000000,277.50000 M 570.83325,280.83250 L 569.16675,281.66750 L 570.83325,280.83250 z "
+ id="path2928" />
+ <path
+ style="fill:url(#radialGradient3016);stroke:none;fill-opacity:1.0"
+ d="M 470.00000,285.00000 L 482.50000,285.00000 L 477.50000,290.00000 L 480.00000,302.50000 L 465.00000,305.00000 L 462.50000,305.00000 L 467.50000,287.50000 L 465.00000,287.50000 L 460.00000,297.50000 L 457.50000,287.50000 L 457.50000,285.00000 L 460.00000,280.00000 L 470.00000,285.00000 z "
+ id="path2930" />
+ <path
+ style="fill:url(#radialGradient3024);stroke:none;fill-opacity:1.0"
+ d="M 590.00000,287.50000 L 585.00000,297.50000 L 597.50000,307.50000 L 590.00000,305.00000 L 587.50000,315.00000 L 597.50000,310.00000 L 600.00000,312.50000 L 600.00000,315.00000 L 600.00000,317.50000 L 580.00000,317.50000 L 575.00000,332.50000 L 585.00000,327.50000 L 590.00000,345.00000 L 577.50000,342.50000 L 580.00000,355.00000 L 570.00000,365.00000 L 567.50000,365.00000 L 567.50000,357.50000 L 565.00000,357.50000 L 557.50000,370.00000 L 570.00000,372.50000 L 570.00000,375.00000 L 557.50000,385.00000 L 557.50000,372.50000 L 547.50000,377.50000 L 547.50000,375.00000 L 545.00000,365.00000 L 545.00000,372.50000 L 537.50000,365.00000 L 530.00000,367.50000 C 533.71500,358.83000 536.17250,350.59500 527.50000,345.00000 L 520.00000,355.00000 L 520.00000,352.50000 L 525.00000,350.00000 L 520.00000,347.50000 L 520.00000,345.00000 L 530.00000,342.50000 L 520.00000,330.00000 L 527.50000,327.50000 L 527.50000,312.50000 L 525.00000,300.00000 L 535.00000,302.50000 L 552.50000,292.50000 L 552.50000,295.00000 L 545.00000,297.50000 L 550.00000,300.00000 L 550.00000,302.50000 L 542.50000,312.50000 L 550.00000,320.00000 L 580.00000,307.50000 L 577.50000,295.00000 L 570.00000,297.50000 L 570.00000,285.00000 L 575.00000,282.50000 L 590.00000,287.50000 z "
+ id="path2932" />
+ <path
+ style="fill:url(#radialGradient3032);stroke:none;fill-opacity:1.0"
+ d="M 533.33250,293.33250 L 531.66750,294.16750 L 533.33250,293.33250 z "
+ id="path2936" />
+ <path
+ style="fill:url(#radialGradient3040);stroke:none;fill-opacity:1.0"
+ d="M 172.50000,302.50000 L 162.50000,307.50000 L 172.50000,302.50000 M 612.50000,305.00000 L 612.50000,307.50000 L 605.00000,307.50000 L 612.50000,305.00000 z "
+ id="path2940" />
+ <path
+ style="fill:url(#radialGradient3048);stroke:none;fill-opacity:1.0"
+ d="M 535.83250,305.83250 L 534.16750,306.66750 L 535.83250,305.83250 z "
+ id="path2942" />
+ <path
+ style="fill:url(#radialGradient3056);stroke:none;fill-opacity:1.0"
+ d="M 200.00000,305.00000 L 195.00000,322.50000 L 205.00000,325.00000 L 205.00000,317.50000 L 207.50000,317.50000 L 215.00000,317.50000 L 210.00000,322.50000 L 222.50000,335.00000 L 217.50000,352.50000 L 212.50000,345.00000 L 212.50000,342.50000 C 216.34250,337.24500 212.70750,335.07250 207.50000,332.50000 L 210.00000,347.50000 L 200.00000,360.00000 L 202.50000,360.00000 L 205.00000,355.00000 L 207.50000,362.50000 C 193.85750,362.50000 210.27000,377.18750 215.00000,380.00000 L 215.00000,382.50000 L 207.50000,377.50000 L 205.00000,377.50000 L 205.00000,395.00000 L 217.50000,395.00000 L 215.00000,402.50000 L 227.50000,400.00000 L 222.50000,392.50000 L 230.00000,390.00000 C 232.85500,401.08000 228.90750,406.09750 222.50000,415.00000 L 220.00000,415.00000 L 220.00000,407.50000 L 212.50000,410.00000 L 212.50000,407.50000 L 217.50000,407.50000 L 217.50000,405.00000 L 207.50000,412.50000 L 187.50000,412.50000 L 185.00000,412.50000 C 187.80500,401.01250 190.14000,394.56750 202.50000,392.50000 L 187.50000,380.00000 L 187.50000,377.50000 L 195.00000,380.00000 L 195.00000,370.00000 L 187.50000,365.00000 C 179.67500,366.94500 171.19750,369.51250 170.00000,360.00000 L 162.50000,367.50000 L 160.00000,367.50000 L 162.50000,360.00000 L 162.50000,357.50000 L 155.00000,357.50000 L 155.00000,355.00000 L 165.00000,355.00000 L 165.00000,352.50000 L 155.00000,350.00000 L 162.50000,340.00000 L 162.50000,337.50000 L 160.00000,322.50000 L 167.50000,325.00000 L 170.00000,312.50000 L 180.00000,320.00000 L 182.50000,320.00000 L 180.00000,310.00000 L 200.00000,305.00000 M 132.50000,305.00000 L 135.00000,315.00000 L 132.50000,315.00000 L 132.50000,305.00000 z "
+ id="path2944" />
+ <path
+ style="fill:url(#radialGradient3064);stroke:none;fill-opacity:1.0"
+ d="M 475.00000,307.50000 L 475.00000,312.50000 L 470.00000,307.50000 L 475.00000,307.50000 M 297.50000,307.50000 L 310.00000,310.00000 L 312.50000,310.00000 L 312.50000,320.00000 L 302.50000,320.00000 L 292.50000,317.50000 L 297.50000,307.50000 M 195.00000,312.50000 L 187.50000,312.50000 L 190.00000,307.50000 L 195.00000,312.50000 z "
+ id="path2946" />
+ <path
+ style="fill:url(#radialGradient3072);stroke:none;fill-opacity:1.0"
+ d="M 162.50000,310.00000 L 162.50000,317.50000 L 160.00000,317.50000 L 162.50000,310.00000 M 155.00000,317.50000 L 152.50000,330.00000 L 142.50000,330.00000 L 147.50000,335.00000 L 137.50000,335.00000 L 142.50000,327.50000 L 142.50000,325.00000 L 137.50000,325.00000 L 137.50000,322.50000 L 142.50000,312.50000 L 155.00000,317.50000 M 775.00000,315.00000 L 770.00000,325.00000 L 775.00000,315.00000 M 767.50000,315.00000 L 767.50000,320.00000 L 762.50000,320.00000 L 767.50000,315.00000 M 625.00000,315.00000 L 620.00000,320.00000 L 620.00000,315.00000 L 625.00000,315.00000 z "
+ id="path2948" />
+ <path
+ style="fill:url(#radialGradient3080);stroke:none;fill-opacity:1.0"
+ d="M 767.50000,322.50000 L 767.50000,325.00000 L 755.00000,325.00000 L 767.50000,322.50000 M 790.00000,325.00000 L 792.50000,340.00000 L 790.00000,340.00000 L 790.00000,332.50000 L 787.50000,332.50000 L 787.50000,342.50000 L 785.00000,342.50000 L 780.00000,330.00000 L 790.00000,325.00000 z "
+ id="path2952" />
+ <path
+ style="fill:url(#radialGradient3088);stroke:none;fill-opacity:1.0"
+ d="M 565.00000,325.00000 L 567.50000,327.50000 L 560.00000,332.50000 L 565.00000,325.00000 M 493.33250,325.83250 L 491.66750,326.66750 L 493.33250,325.83250 z "
+ id="path2954" />
+ <path
+ style="fill:url(#radialGradient3096);stroke:none;fill-opacity:1.0"
+ d="M 71.667500,326.66750 L 70.832500,328.33250 L 71.667500,326.66750 M 755.00000,327.50000 L 762.50000,337.50000 L 755.00000,327.50000 M 282.50000,327.50000 L 282.50000,335.00000 L 280.00000,335.00000 L 282.50000,327.50000 M 225.00000,327.50000 L 225.00000,330.00000 L 217.50000,330.00000 L 225.00000,327.50000 z "
+ id="path2956" />
+ <path
+ style="fill:url(#radialGradient3104);stroke:none;fill-opacity:1.0"
+ d="M 133.33250,330.83250 L 131.66750,331.66750 L 133.33250,330.83250 z "
+ id="path2960" />
+ <path
+ style="fill:url(#radialGradient3112);stroke:none;fill-opacity:1.0"
+ d="M 496.66750,336.66750 L 495.83250,338.33250 L 496.66750,336.66750 M 454.16750,336.66750 L 453.33250,338.33250 L 454.16750,336.66750 M 247.50000,335.00000 L 247.50000,340.00000 L 242.50000,340.00000 L 247.50000,335.00000 M 240.00000,335.00000 L 235.00000,360.00000 L 237.50000,352.50000 L 230.00000,350.00000 L 240.00000,335.00000 M 705.83325,340.83250 L 704.16675,341.66750 L 705.83325,340.83250 z "
+ id="path2964" />
+ <path
+ style="fill:url(#radialGradient3120);stroke:none;fill-opacity:1.0"
+ d="M 413.33250,340.83250 L 411.66750,341.66750 L 413.33250,340.83250 M 335.00000,340.00000 L 332.50000,350.00000 L 325.00000,347.50000 L 325.00000,345.00000 L 335.00000,340.00000 z "
+ id="path2966" />
+ <path
+ style="fill:url(#radialGradient3128);stroke:none;fill-opacity:1.0"
+ d="M 75.832500,340.83250 L 74.167500,341.66750 L 75.832500,340.83250 z "
+ id="path2968" />
+ <path
+ style="fill:url(#radialGradient3136);stroke:none;fill-opacity:1.0"
+ d="M 350.00000,342.50000 L 350.00000,355.00000 L 342.50000,352.50000 L 347.50000,347.50000 L 340.00000,345.00000 L 350.00000,342.50000 z "
+ id="path2970" />
+ <path
+ style="fill:url(#radialGradient3144);stroke:none;fill-opacity:1.0"
+ d="M 53.332500,343.33250 L 51.667500,344.16750 L 53.332500,343.33250 M 787.50000,347.50000 L 785.00000,355.00000 L 780.00000,355.00000 L 777.50000,347.50000 L 787.50000,347.50000 M 87.500000,347.50000 L 85.000000,355.00000 L 82.500000,355.00000 L 82.500000,347.50000 L 87.500000,347.50000 M 698.33325,350.83250 L 696.66675,351.66750 L 698.33325,350.83250 z "
+ id="path2972" />
+ <path
+ style="fill:url(#radialGradient3152);stroke:none;fill-opacity:1.0"
+ d="M 169.16750,351.66750 L 168.33250,353.33250 L 169.16750,351.66750 M 345.00000,355.00000 L 345.00000,372.50000 L 330.00000,375.00000 L 327.50000,375.00000 L 330.00000,365.00000 L 322.50000,365.00000 L 330.00000,360.00000 C 331.08750,351.49000 337.55250,353.71000 345.00000,355.00000 z "
+ id="path2974" />
+ <path
+ style="fill:url(#radialGradient3160);stroke:none;fill-opacity:1.0"
+ d="M 110.00000,352.50000 L 105.00000,367.50000 L 107.50000,367.50000 L 110.00000,362.50000 L 110.00000,375.00000 L 97.500000,372.50000 L 97.500000,370.00000 L 97.500000,355.00000 L 110.00000,352.50000 z "
+ id="path2976" />
+ <path
+ style="fill:url(#radialGradient3168);stroke:none;fill-opacity:1.0"
+ d="M 195.00000,355.00000 L 197.50000,365.00000 L 190.00000,357.50000 L 195.00000,355.00000 z "
+ id="path2978" />
+ <path
+ style="fill:url(#radialGradient3176);stroke:none;fill-opacity:1.0"
+ d="M 797.50000,357.50000 L 800.00000,370.00000 L 797.50000,370.00000 L 795.00000,365.00000 L 792.50000,380.00000 L 785.00000,375.00000 L 772.50000,372.50000 L 787.50000,365.00000 L 780.00000,365.00000 L 780.00000,362.50000 L 790.00000,357.50000 L 790.00000,360.00000 L 785.00000,360.00000 L 785.00000,362.50000 L 797.50000,357.50000 z "
+ id="path2980" />
+ <path
+ style="fill:url(#radialGradient3184);stroke:none;fill-opacity:1.0"
+ d="M 352.50000,357.50000 L 352.50000,370.00000 L 345.00000,365.00000 L 352.50000,357.50000 M 177.50000,357.50000 L 177.50000,362.50000 L 172.50000,362.50000 L 177.50000,357.50000 M 557.50000,360.00000 L 557.50000,362.50000 L 550.00000,362.50000 L 557.50000,360.00000 z "
+ id="path2982" />
+ <path
+ style="fill:url(#radialGradient3192);stroke:none;fill-opacity:1.0"
+ d="M 249.16750,361.66750 L 248.33250,363.33250 L 249.16750,361.66750 M 685.00000,362.50000 L 685.00000,370.00000 L 675.00000,372.50000 L 685.00000,362.50000 z "
+ id="path2984" />
+ <path
+ style="fill:url(#radialGradient3200);stroke:none;fill-opacity:1.0"
+ d="M 317.50000,362.50000 L 312.50000,367.50000 L 312.50000,362.50000 L 317.50000,362.50000 M 309.16750,364.16750 L 308.33250,365.83250 L 309.16750,364.16750 z "
+ id="path2986" />
+ <path
+ style="fill:url(#radialGradient3208);stroke:none;fill-opacity:1.0"
+ d="M 242.50000,362.50000 L 242.50000,367.50000 L 237.50000,362.50000 L 242.50000,362.50000 M 66.667500,364.16750 L 65.832500,365.83250 L 66.667500,364.16750 z "
+ id="path2988" />
+ <path
+ style="fill:url(#radialGradient3216);stroke:none;fill-opacity:1.0"
+ d="M 442.50000,367.50000 L 447.50000,375.00000 L 437.50000,377.50000 L 442.50000,367.50000 M 382.50000,367.50000 L 382.50000,370.00000 L 375.00000,370.00000 L 382.50000,367.50000 M 357.50000,367.50000 L 360.00000,375.00000 L 357.50000,367.50000 z "
+ id="path2990" />
+ <path
+ style="fill:url(#radialGradient3224);stroke:none;fill-opacity:1.0"
+ d="M 531.66750,371.66750 L 530.83250,373.33250 L 531.66750,371.66750 z "
+ id="path2992" />
+ <path
+ style="fill:url(#radialGradient3232);stroke:none;fill-opacity:1.0"
+ d="M 432.50000,370.00000 L 432.50000,377.50000 L 430.00000,377.50000 L 432.50000,370.00000 z "
+ id="path2994" />
+ <path
+ style="fill:url(#radialGradient3240);stroke:none;fill-opacity:1.0"
+ d="M 177.50000,370.00000 L 170.00000,377.50000 L 170.00000,380.00000 L 180.00000,387.50000 L 175.00000,382.50000 L 167.50000,385.00000 L 162.50000,372.50000 L 177.50000,370.00000 M 800.00000,372.50000 L 800.00000,385.00000 L 797.50000,385.00000 L 792.50000,375.00000 L 800.00000,372.50000 z "
+ id="path2996" />
+ <path
+ style="fill:url(#radialGradient3248);stroke:none;fill-opacity:1.0"
+ d="M 365.00000,375.00000 L 370.00000,387.50000 L 362.50000,387.50000 L 365.00000,375.00000 z "
+ id="path2998" />
+ <path
+ style="fill:url(#radialGradient3256);stroke:none;fill-opacity:1.0"
+ d="M 605.83325,378.33250 L 604.16675,379.16750 L 605.83325,378.33250 z "
+ id="path3000" />
+ <path
+ style="fill:url(#radialGradient3264);stroke:none;fill-opacity:1.0"
+ d="M 425.00000,380.00000 L 425.00000,385.00000 L 417.50000,387.50000 L 417.50000,377.50000 L 425.00000,380.00000 M 380.00000,377.50000 L 380.00000,380.00000 L 370.00000,380.00000 L 380.00000,377.50000 z "
+ id="path3002" />
+ <path
+ style="fill:url(#radialGradient3272);stroke:none;fill-opacity:1.0"
+ d="M 552.50000,380.00000 L 552.50000,382.50000 L 545.00000,382.50000 L 552.50000,380.00000 M 792.50000,387.50000 L 785.00000,387.50000 L 787.50000,382.50000 L 792.50000,387.50000 M 770.00000,382.50000 L 770.00000,385.00000 L 765.00000,390.00000 L 762.50000,390.00000 L 770.00000,382.50000 M 605.00000,382.50000 L 607.50000,392.50000 L 587.50000,400.00000 L 600.00000,390.00000 L 597.50000,382.50000 L 605.00000,382.50000 z "
+ id="path3004" />
+ <path
+ style="fill:url(#radialGradient3280);stroke:none;fill-opacity:1.0"
+ d="M 464.16750,384.16750 L 463.33250,385.83250 L 464.16750,384.16750 M 445.00000,382.50000 L 442.50000,390.00000 L 455.00000,385.00000 L 447.50000,390.00000 L 447.50000,405.00000 L 425.00000,392.50000 L 445.00000,382.50000 z "
+ id="path3006" />
+ <path
+ style="fill:url(#radialGradient3288);stroke:none;fill-opacity:1.0"
+ d="M 760.00000,387.50000 L 752.50000,395.00000 L 750.00000,387.50000 L 752.50000,385.00000 L 760.00000,387.50000 M 702.50000,385.00000 L 705.00000,412.50000 L 682.50000,417.50000 L 682.50000,430.00000 L 680.00000,430.00000 L 672.50000,415.00000 L 672.50000,412.50000 C 683.01725,411.36250 682.63750,408.20500 680.00000,400.00000 L 697.50000,392.50000 L 695.00000,385.00000 L 702.50000,385.00000 z "
+ id="path3008" />
+ <path
+ style="fill:url(#radialGradient3296);stroke:none;fill-opacity:1.0"
+ d="M 482.50000,385.00000 L 485.00000,395.00000 L 472.50000,392.50000 L 472.50000,385.00000 L 482.50000,385.00000 z "
+ id="path3010" />
+ <path
+ style="fill:url(#radialGradient3304);stroke:none;fill-opacity:1.0"
+ d="M 385.00000,385.00000 L 382.50000,392.50000 L 385.00000,385.00000 M 302.50000,385.00000 L 310.00000,395.00000 L 300.00000,395.00000 L 302.50000,385.00000 M 553.33325,388.33250 L 551.66675,389.16750 L 553.33325,388.33250 z "
+ id="path3012" />
+ <path
+ style="fill:url(#radialGradient3312);stroke:none;fill-opacity:1.0"
+ d="M 603.33325,390.83250 L 601.66675,391.66750 L 603.33325,390.83250 z "
+ id="path3014" />
+ <path
+ style="fill:url(#radialGradient3320);stroke:none;fill-opacity:1.0"
+ d="M 375.00000,395.00000 L 375.00000,397.50000 L 365.00000,397.50000 L 375.00000,395.00000 M 10.832500,393.33250 L 9.1675000,394.16750 L 10.832500,393.33250 M 315.00000,395.00000 L 315.00000,405.00000 L 300.00000,400.00000 L 300.00000,397.50000 L 315.00000,395.00000 M 730.00000,397.50000 L 730.00000,405.00000 L 732.50000,405.00000 C 736.66575,397.39000 746.05950,401.46750 752.50000,405.00000 L 737.50000,420.00000 L 742.50000,432.50000 L 750.00000,430.00000 L 750.00000,422.50000 L 760.00000,437.50000 L 757.50000,437.50000 L 755.00000,432.50000 L 750.00000,442.50000 L 757.50000,445.00000 L 757.50000,452.50000 L 737.50000,470.00000 L 745.00000,472.50000 L 745.00000,475.00000 L 737.50000,477.50000 L 727.50000,467.50000 L 730.00000,480.00000 L 717.50000,480.00000 L 715.00000,465.00000 L 715.00000,472.50000 C 703.87275,468.39250 703.33550,463.04750 707.50000,452.50000 L 697.50000,455.00000 L 697.50000,440.00000 L 707.50000,437.50000 L 705.00000,430.00000 L 710.00000,417.50000 L 725.00000,427.50000 L 732.50000,407.50000 L 725.00000,410.00000 L 722.50000,402.50000 L 730.00000,397.50000 z "
+ id="path3016" />
+ <path
+ style="fill:url(#radialGradient3328);stroke:none;fill-opacity:1.0"
+ d="M 697.50000,397.50000 L 697.50000,407.50000 L 690.00000,400.00000 L 697.50000,397.50000 z "
+ id="path3018" />
+ <path
+ style="fill:url(#radialGradient3336);stroke:none;fill-opacity:1.0"
+ d="M 546.66750,399.16750 L 545.83250,400.83250 L 546.66750,399.16750 M 497.50000,397.50000 L 497.50000,402.50000 L 492.50000,402.50000 L 497.50000,397.50000 M 290.83250,398.33250 L 289.16750,399.16750 L 290.83250,398.33250 M 276.66750,399.16750 L 275.83250,400.83250 L 276.66750,399.16750 z "
+ id="path3020" />
+ <path
+ style="fill:url(#radialGradient3344);stroke:none;fill-opacity:1.0"
+ d="M 200.00000,397.50000 L 192.50000,405.00000 L 200.00000,397.50000 z "
+ id="path3022" />
+ <path
+ style="fill:url(#radialGradient3352);stroke:none;fill-opacity:1.0"
+ d="M 320.83250,400.83250 L 319.16750,401.66750 L 320.83250,400.83250 M 367.50000,402.50000 L 362.50000,407.50000 L 362.50000,402.50000 L 367.50000,402.50000 M 2.5000000,402.50000 L 2.5000000,410.00000 L 0.0000000,410.00000 L 2.5000000,402.50000 z "
+ id="path3024" />
+ <path
+ style="fill:url(#radialGradient3360);stroke:none;fill-opacity:1.0"
+ d="M 747.50000,405.00000 L 745.00000,412.50000 L 742.50000,412.50000 L 740.00000,405.00000 L 747.50000,405.00000 M 737.50000,405.00000 L 737.50000,410.00000 L 732.50000,405.00000 L 737.50000,405.00000 z "
+ id="path3026" />
+ <path
+ style="fill:url(#radialGradient3368);stroke:none;fill-opacity:1.0"
+ d="M 597.50000,405.00000 L 600.00000,410.00000 L 595.00000,410.00000 L 597.50000,405.00000 M 313.33250,408.33250 L 311.66750,409.16750 L 313.33250,408.33250 M 702.50000,415.00000 L 702.50000,422.50000 L 695.00000,422.50000 L 695.00000,420.00000 L 695.00000,417.50000 L 702.50000,415.00000 M 790.00000,417.50000 L 787.50000,427.50000 L 795.00000,430.00000 L 790.00000,435.00000 L 792.50000,440.00000 L 792.50000,442.50000 L 790.00000,442.50000 L 775.00000,430.00000 L 775.00000,427.50000 L 782.50000,430.00000 L 790.00000,417.50000 M 220.83250,420.83250 L 219.16750,421.66750 L 220.83250,420.83250 M 590.00000,422.50000 L 585.00000,427.50000 L 585.00000,422.50000 L 590.00000,422.50000 z "
+ id="path3028" />
+ <path
+ style="fill:url(#radialGradient3376);stroke:none;fill-opacity:1.0"
+ d="M 754.16675,426.66750 L 753.33325,428.33250 L 754.16675,426.66750 z "
+ id="path3030" />
+ <path
+ style="fill:url(#radialGradient3384);stroke:none;fill-opacity:1.0"
+ d="M 20.000000,425.00000 L 32.500000,430.00000 L 27.500000,435.00000 L 32.500000,452.50000 L 40.000000,447.50000 L 45.000000,450.00000 L 47.500000,457.50000 L 40.000000,472.50000 L 45.000000,470.00000 L 42.500000,477.50000 L 35.000000,467.50000 L 35.000000,477.50000 L 17.500000,472.50000 L 22.500000,465.00000 L 15.000000,455.00000 L 17.500000,455.00000 L 22.500000,460.00000 L 22.500000,450.00000 L 30.000000,452.50000 L 25.000000,447.50000 L 20.000000,430.00000 L 10.000000,435.00000 L 20.000000,425.00000 z "
+ id="path3032" />
+ <path
+ style="fill:url(#radialGradient3392);stroke:none;fill-opacity:1.0"
+ d="M 720.00000,427.50000 L 715.00000,432.50000 L 715.00000,427.50000 L 720.00000,427.50000 M 789.16668,431.66750 L 788.33332,433.33250 L 789.16668,431.66750 M 737.50000,430.00000 L 732.50000,435.00000 L 732.50000,430.00000 L 737.50000,430.00000 z "
+ id="path3034" />
+ <path
+ style="fill:url(#radialGradient3400);stroke:none;fill-opacity:1.0"
+ d="M 768.33325,433.33250 L 766.66675,434.16750 L 768.33325,433.33250 z "
+ id="path3036" />
+ <path
+ style="fill:url(#radialGradient3408);stroke:none;fill-opacity:1.0"
+ d="M 751.66675,434.16750 L 750.83325,435.83250 L 751.66675,434.16750 M 711.66675,434.16750 L 710.83325,435.83250 L 711.66675,434.16750 z "
+ id="path3038" />
+ <path
+ style="fill:url(#radialGradient3416);stroke:none;fill-opacity:1.0"
+ d="M 596.66675,434.16750 L 595.83325,435.83250 L 596.66675,434.16750 z "
+ id="path3040" />
+ <path
+ style="fill:url(#radialGradient3424);stroke:none;fill-opacity:1.0"
+ d="M 693.33325,440.83250 L 691.66675,441.66750 L 693.33325,440.83250 M 42.500000,440.00000 L 42.500000,445.00000 L 37.500000,440.00000 L 42.500000,440.00000 z "
+ id="path3044" />
+ <path
+ style="fill:url(#radialGradient3432);stroke:none;fill-opacity:1.0"
+ d="M 707.50000,442.50000 L 702.50000,447.50000 L 702.50000,442.50000 L 707.50000,442.50000 z "
+ id="path3046" />
+ <path
+ style="fill:url(#radialGradient3440);stroke:none;fill-opacity:1.0"
+ d="M 680.00000,442.50000 L 685.00000,455.00000 L 685.00000,467.50000 L 662.50000,452.50000 L 680.00000,442.50000 M 450.00000,455.00000 L 447.50000,455.00000 L 435.00000,452.50000 L 435.00000,450.00000 L 442.50000,450.00000 L 442.50000,447.50000 L 435.00000,447.50000 C 443.57500,442.22000 448.34750,445.50750 450.00000,455.00000 M 337.50000,445.00000 L 337.50000,460.00000 L 330.00000,460.00000 L 332.50000,455.00000 L 325.00000,447.50000 L 335.00000,452.50000 L 332.50000,445.00000 L 337.50000,445.00000 z "
+ id="path3048" />
+ <path
+ style="fill:url(#radialGradient3448);stroke:none;fill-opacity:1.0"
+ d="M 749.16675,449.16750 L 748.33325,450.83250 L 749.16675,449.16750 z "
+ id="path3050" />
+ <path
+ style="fill:url(#radialGradient3456);stroke:none;fill-opacity:1.0"
+ d="M 297.50000,447.50000 L 305.00000,457.50000 C 308.18250,450.17750 309.51250,457.98500 310.00000,462.50000 L 312.50000,462.50000 L 312.50000,455.00000 L 315.00000,455.00000 L 325.00000,465.00000 L 320.00000,477.50000 L 312.50000,482.50000 L 305.00000,480.00000 L 320.00000,490.00000 L 315.00000,515.00000 L 302.50000,507.50000 L 305.00000,517.50000 L 292.50000,525.00000 L 275.00000,515.00000 L 267.50000,520.00000 L 270.00000,510.00000 C 263.99000,509.07500 260.62500,502.20750 265.00000,497.50000 L 265.00000,495.00000 L 262.50000,475.00000 L 272.50000,480.00000 L 262.50000,470.00000 C 264.69000,459.40750 268.80500,453.92250 280.00000,455.00000 L 290.00000,475.00000 L 295.00000,462.50000 L 287.50000,465.00000 L 287.50000,462.50000 L 300.00000,457.50000 L 297.50000,447.50000 M 738.33325,450.83250 L 736.66675,451.66750 L 738.33325,450.83250 z "
+ id="path3052" />
+ <path
+ style="fill:url(#radialGradient3464);stroke:none;fill-opacity:1.0"
+ d="M 674.16675,451.66750 L 673.33325,453.33250 L 674.16675,451.66750 z "
+ id="path3054" />
+ <path
+ style="fill:url(#radialGradient3472);stroke:none;fill-opacity:1.0"
+ d="M 777.50000,452.50000 L 777.50000,455.00000 L 765.00000,465.00000 L 765.00000,452.50000 L 777.50000,452.50000 z "
+ id="path3056" />
+ <path
+ style="fill:url(#radialGradient3480);stroke:none;fill-opacity:1.0"
+ d="M 719.16675,456.66750 L 718.33325,458.33250 L 719.16675,456.66750 M 275.00000,455.00000 L 275.00000,460.00000 L 270.00000,460.00000 L 275.00000,455.00000 M 40.000000,462.50000 L 25.000000,465.00000 L 25.000000,462.50000 L 25.000000,460.00000 L 30.000000,455.00000 L 40.000000,462.50000 z "
+ id="path3058" />
+ <path
+ style="fill:url(#radialGradient3488);stroke:none;fill-opacity:1.0"
+ d="M 346.66750,459.16750 L 345.83250,460.83250 L 346.66750,459.16750 M 85.000000,457.50000 L 85.000000,472.50000 L 75.000000,475.00000 L 72.500000,475.00000 L 75.000000,465.00000 L 80.000000,470.00000 C 81.325000,463.37750 81.070000,460.98250 75.000000,462.50000 L 85.000000,457.50000 z "
+ id="path3060" />
+ <path
+ style="fill:url(#radialGradient3496);stroke:none;fill-opacity:1.0"
+ d="M 707.50000,460.00000 L 715.00000,462.50000 L 715.00000,465.00000 C 709.44675,465.89250 704.99575,466.45750 707.50000,460.00000 z "
+ id="path3062" />
+ <path
+ style="fill:url(#radialGradient3504);stroke:none;fill-opacity:1.0"
+ d="M 660.00000,460.00000 L 662.50000,465.00000 L 657.50000,465.00000 L 660.00000,460.00000 M 425.00000,462.50000 L 425.00000,465.00000 L 415.00000,470.00000 L 412.50000,470.00000 L 415.00000,460.00000 L 425.00000,462.50000 z "
+ id="path3064" />
+ <path
+ style="fill:url(#radialGradient3512);stroke:none;fill-opacity:1.0"
+ d="M 733.33325,463.33250 L 731.66675,464.16750 L 733.33325,463.33250 M 725.83325,463.33250 L 724.16675,464.16750 L 725.83325,463.33250 M 317.50000,472.50000 L 305.00000,465.00000 L 317.50000,472.50000 z "
+ id="path3066" />
+ <path
+ style="fill:url(#radialGradient3520);stroke:none;fill-opacity:1.0"
+ d="M 752.50000,465.00000 L 752.50000,475.00000 L 750.00000,475.00000 L 752.50000,465.00000 M 503.33250,465.83250 L 501.66750,466.66750 L 503.33250,465.83250 M 236.66750,466.66750 L 235.83250,468.33250 L 236.66750,466.66750 M 695.83325,468.33250 L 694.16675,469.16750 L 695.83325,468.33250 M 358.33250,468.33250 L 356.66750,469.16750 L 358.33250,468.33250 M 1.6675000,469.16750 L 0.83250000,470.83250 L 1.6675000,469.16750 M 520.00000,470.00000 L 522.50000,477.50000 L 520.00000,470.00000 z "
+ id="path3068" />
+ <path
+ style="fill:url(#radialGradient3528);stroke:none;fill-opacity:1.0"
+ d="M 304.16750,471.66750 L 303.33250,473.33250 L 304.16750,471.66750 z "
+ id="path3070" />
+ <path
+ style="fill:url(#radialGradient3536);stroke:none;fill-opacity:1.0"
+ d="M 257.50000,475.00000 L 255.00000,477.50000 L 247.50000,472.50000 L 257.50000,475.00000 M 512.50000,472.50000 L 502.50000,482.50000 L 500.00000,480.00000 L 500.00000,477.50000 L 502.50000,475.00000 L 512.50000,472.50000 M 248.33250,475.83250 L 246.66750,476.66750 L 248.33250,475.83250 M 692.50000,477.50000 C 698.56525,487.14500 691.63775,489.04500 682.50000,487.50000 L 682.50000,480.00000 L 690.00000,482.50000 L 692.50000,477.50000 z "
+ id="path3072" />
+ <path
+ style="fill:url(#radialGradient3544);stroke:none;fill-opacity:1.0"
+ d="M 282.50000,477.50000 L 285.00000,482.50000 L 280.00000,482.50000 L 282.50000,477.50000 z "
+ id="path3074" />
+ <path
+ style="fill:url(#radialGradient3552);stroke:none;fill-opacity:1.0"
+ d="M 535.00000,480.00000 L 535.00000,482.50000 L 527.50000,482.50000 L 535.00000,480.00000 M 515.00000,480.00000 L 515.00000,485.00000 L 510.00000,485.00000 L 515.00000,480.00000 M 257.50000,480.00000 L 252.50000,485.00000 L 252.50000,480.00000 L 257.50000,480.00000 M 250.00000,480.00000 L 242.50000,485.00000 L 250.00000,480.00000 M 704.16675,484.16750 L 703.33325,485.83250 L 704.16675,484.16750 z "
+ id="path3076" />
+ <path
+ style="fill:url(#radialGradient3560);stroke:none;fill-opacity:1.0"
+ d="M 692.50000,482.50000 L 692.50000,487.50000 L 687.50000,487.50000 L 692.50000,482.50000 M 295.00000,490.00000 L 292.50000,490.00000 L 290.00000,490.00000 L 287.50000,485.00000 L 295.00000,490.00000 M 270.00000,482.50000 L 270.00000,487.50000 L 265.00000,482.50000 L 270.00000,482.50000 z "
+ id="path3078" />
+ <path
+ style="fill:url(#radialGradient3568);stroke:none;fill-opacity:1.0"
+ d="M 718.33325,485.83250 L 716.66675,486.66750 L 718.33325,485.83250 z "
+ id="path3080" />
+ <path
+ style="fill:url(#radialGradient3576);stroke:none;fill-opacity:1.0"
+ d="M 285.00000,485.00000 L 290.00000,507.50000 L 270.00000,495.00000 L 275.00000,487.50000 L 277.50000,492.50000 L 280.00000,492.50000 L 285.00000,485.00000 z "
+ id="path3082" />
+ <path
+ style="fill:url(#radialGradient3584);stroke:none;fill-opacity:1.0"
+ d="M 12.500000,487.50000 L 15.000000,502.50000 L 7.5000000,500.00000 L 7.5000000,487.50000 L 12.500000,487.50000 M 700.00000,490.00000 L 707.50000,495.00000 L 707.50000,497.50000 C 701.63000,496.76500 697.62250,496.26750 700.00000,490.00000 M 595.00000,495.00000 C 593.69850,503.07000 589.52275,516.14750 600.00000,517.50000 L 600.00000,520.00000 L 580.00000,527.50000 L 587.50000,542.50000 L 577.50000,542.50000 L 580.00000,550.00000 L 587.50000,545.00000 C 580.42625,552.09500 574.59750,552.15750 565.00000,550.00000 L 572.50000,545.00000 L 562.50000,540.00000 L 562.50000,535.00000 L 562.50000,532.50000 C 573.37850,531.46250 591.03500,519.65750 585.00000,507.50000 L 585.00000,505.00000 L 590.00000,495.00000 L 587.50000,495.00000 L 575.00000,502.50000 C 579.13025,491.81250 584.69575,491.78000 595.00000,495.00000 M 747.50000,492.50000 L 750.00000,497.50000 L 745.00000,497.50000 L 747.50000,492.50000 M 733.33325,493.33250 L 731.66675,494.16750 L 733.33325,493.33250 z "
+ id="path3084" />
+ <path
+ style="fill:url(#radialGradient3592);stroke:none;fill-opacity:1.0"
+ d="M 297.50000,495.00000 L 292.50000,502.50000 L 297.50000,495.00000 z "
+ id="path3086" />
+ <path
+ style="fill:url(#radialGradient3600);stroke:none;fill-opacity:1.0"
+ d="M 242.50000,495.00000 L 250.00000,502.50000 L 250.00000,505.00000 L 242.50000,502.50000 L 245.00000,517.50000 L 235.00000,520.00000 L 240.00000,510.00000 L 232.50000,502.50000 L 240.00000,505.00000 L 240.00000,502.50000 L 230.00000,497.50000 L 242.50000,495.00000 M 510.00000,497.50000 L 512.50000,507.50000 L 510.00000,515.00000 L 502.50000,515.00000 L 507.50000,530.00000 L 505.00000,537.50000 L 512.50000,525.00000 L 522.50000,522.50000 L 525.00000,522.50000 L 532.50000,535.00000 L 527.50000,550.00000 L 517.50000,547.50000 L 525.00000,552.50000 L 522.50000,570.00000 L 505.00000,567.50000 L 497.50000,577.50000 L 497.50000,580.00000 L 505.00000,582.50000 L 505.00000,585.00000 L 495.00000,587.50000 L 497.50000,580.00000 L 487.50000,577.50000 L 485.00000,577.50000 L 485.00000,585.00000 L 482.50000,585.00000 L 482.50000,572.50000 L 472.50000,577.50000 L 475.00000,567.50000 L 475.00000,565.00000 L 460.00000,550.00000 L 470.00000,552.50000 L 467.50000,560.00000 L 475.00000,557.50000 C 472.10500,548.31250 466.96750,529.58000 480.00000,527.50000 L 477.50000,535.00000 L 487.50000,537.50000 L 492.50000,525.00000 L 492.50000,522.50000 C 486.01250,521.71250 486.19250,521.35000 487.50000,515.00000 L 472.50000,520.00000 L 475.00000,502.50000 L 477.50000,502.50000 L 477.50000,510.00000 C 483.60250,505.30750 490.72000,495.71500 497.50000,502.50000 L 510.00000,497.50000 z "
+ id="path3088" />
+ <path
+ style="fill:url(#radialGradient3608);stroke:none;fill-opacity:1.0"
+ d="M 315.00000,505.00000 L 305.00000,502.50000 L 315.00000,505.00000 z "
+ id="path3090" />
+ <path
+ style="fill:url(#radialGradient3616);stroke:none;fill-opacity:1.0"
+ d="M 5.0000000,497.50000 L 10.000000,510.00000 L 0.0000000,512.50000 L 5.0000000,497.50000 M 752.50000,500.00000 L 745.00000,507.50000 L 747.50000,512.50000 L 747.50000,515.00000 L 745.00000,515.00000 L 742.50000,505.00000 L 752.50000,500.00000 M 727.50000,505.00000 L 735.00000,502.50000 L 715.00000,517.50000 L 720.00000,512.50000 L 720.00000,500.00000 L 727.50000,505.00000 M 375.00000,500.00000 L 380.00000,522.50000 L 380.00000,525.00000 L 375.00000,535.00000 L 355.00000,527.50000 L 352.50000,535.00000 L 360.00000,542.50000 L 347.50000,545.00000 L 347.50000,532.50000 L 332.50000,537.50000 L 342.50000,522.50000 L 345.00000,522.50000 L 350.00000,532.50000 L 352.50000,532.50000 L 357.50000,520.00000 C 369.54250,524.01500 376.40000,507.77500 367.50000,510.00000 L 375.00000,500.00000 M 217.50000,500.00000 L 217.50000,505.00000 L 212.50000,500.00000 L 217.50000,500.00000 z "
+ id="path3092" />
+ <path
+ style="fill:url(#radialGradient3624);stroke:none;fill-opacity:1.0"
+ d="M 505.00000,505.00000 L 495.00000,512.50000 L 492.50000,510.00000 L 495.00000,502.50000 L 505.00000,505.00000 z "
+ id="path3094" />
+ <path
+ style="fill:url(#radialGradient3632);stroke:none;fill-opacity:1.0"
+ d="M 347.50000,502.50000 L 340.00000,510.00000 L 347.50000,502.50000 M 327.50000,505.00000 L 337.50000,512.50000 L 330.00000,522.50000 L 335.00000,515.00000 L 325.00000,520.00000 L 327.50000,505.00000 z "
+ id="path3096" />
+ <path
+ style="fill:url(#radialGradient3640);stroke:none;fill-opacity:1.0"
+ d="M 273.33250,508.33250 L 271.66750,509.16750 L 273.33250,508.33250 z "
+ id="path3098" />
+ <path
+ style="fill:url(#radialGradient3648);stroke:none;fill-opacity:1.0"
+ d="M 261.66750,509.16750 L 260.83250,510.83250 L 261.66750,509.16750 M 600.83325,510.83250 L 599.16675,511.66750 L 600.83325,510.83250 z "
+ id="path3100" />
+ <path
+ style="fill:url(#radialGradient3656);stroke:none;fill-opacity:1.0"
+ d="M 297.50000,512.50000 L 290.00000,517.50000 L 297.50000,512.50000 M 283.33250,513.33250 L 281.66750,514.16750 L 283.33250,513.33250 M 494.16750,516.66750 L 493.33250,518.33250 L 494.16750,516.66750 z "
+ id="path3102" />
+ <path
+ style="fill:url(#radialGradient3664);stroke:none;fill-opacity:1.0"
+ d="M 250.00000,515.00000 L 252.50000,520.00000 L 247.50000,520.00000 L 250.00000,515.00000 M 460.83250,518.33250 L 459.16750,519.16750 L 460.83250,518.33250 M 455.00000,520.00000 L 465.00000,537.50000 L 457.50000,535.00000 L 457.50000,540.00000 C 449.80750,534.43750 448.81250,527.36000 455.00000,520.00000 M 552.50000,522.50000 L 552.50000,527.50000 L 547.50000,527.50000 L 552.50000,522.50000 M 285.00000,522.50000 L 287.50000,532.50000 L 272.50000,530.00000 L 285.00000,522.50000 M 441.66750,526.66750 L 440.83250,528.33250 L 441.66750,526.66750 z "
+ id="path3104" />
+ <path
+ style="fill:url(#radialGradient3672);stroke:none;fill-opacity:1.0"
+ d="M 372.50000,525.00000 L 372.50000,530.00000 L 367.50000,530.00000 L 372.50000,525.00000 z "
+ id="path3106" />
+ <path
+ style="fill:url(#radialGradient3680);stroke:none;fill-opacity:1.0"
+ d="M 304.16750,526.66750 L 303.33250,528.33250 L 304.16750,526.66750 M 15.000000,525.00000 L 10.000000,530.00000 L 10.000000,525.00000 L 15.000000,525.00000 M 596.66675,529.16750 L 595.83325,530.83250 L 596.66675,529.16750 M 542.50000,527.50000 L 555.00000,535.00000 L 542.50000,540.00000 L 542.50000,527.50000 z "
+ id="path3108" />
+ <path
+ style="fill:url(#radialGradient3688);stroke:none;fill-opacity:1.0"
+ d="M 460.00000,527.50000 L 457.50000,535.00000 L 455.00000,535.00000 L 455.00000,527.50000 L 460.00000,527.50000 z "
+ id="path3110" />
+ <path
+ style="fill:url(#radialGradient3696);stroke:none;fill-opacity:1.0"
+ d="M 300.00000,530.00000 L 297.50000,540.00000 L 302.50000,532.50000 L 317.50000,535.00000 L 305.00000,537.50000 L 287.50000,545.00000 L 287.50000,542.50000 L 300.00000,530.00000 M 6.6675000,531.66750 L 5.8325000,533.33250 L 6.6675000,531.66750 M 12.500000,532.50000 L 15.000000,537.50000 L 10.000000,537.50000 L 12.500000,532.50000 M 595.83325,535.83250 L 594.16675,536.66750 L 595.83325,535.83250 z "
+ id="path3112" />
+ <path
+ style="fill:url(#radialGradient3704);stroke:none;fill-opacity:1.0"
+ d="M 500.00000,542.50000 L 490.00000,535.00000 L 500.00000,542.50000 M 527.50000,537.50000 L 527.50000,542.50000 L 522.50000,542.50000 L 522.50000,537.50000 L 527.50000,537.50000 M 482.50000,537.50000 C 481.21750,543.68750 480.99000,543.93750 475.00000,542.50000 L 482.50000,537.50000 z "
+ id="path3114" />
+ <path
+ style="fill:url(#radialGradient3712);stroke:none;fill-opacity:1.0"
+ d="M 23.332500,540.83250 L 21.667500,541.66750 L 23.332500,540.83250 M 457.50000,542.50000 L 457.50000,547.50000 L 452.50000,542.50000 L 457.50000,542.50000 M 338.33250,543.33250 L 336.66750,544.16750 L 338.33250,543.33250 M 10.000000,542.50000 L 15.000000,552.50000 L 7.5000000,555.00000 L 5.0000000,542.50000 L 10.000000,542.50000 z "
+ id="path3116" />
+ <g
+ id="g2894"
+ style="fill:#00002e;fill-opacity:1.0000000">
+ <path
+ id="path2870"
+ d="M 502.50000,157.50000 L 505.00000,162.50000 L 500.00000,162.50000 L 502.50000,157.50000 M 340.00000,157.50000 L 335.00000,162.50000 L 335.00000,157.50000 L 340.00000,157.50000 M 492.50000,160.00000 L 487.50000,167.50000 L 492.50000,160.00000 M 332.50000,165.00000 L 332.50000,177.50000 L 330.00000,177.50000 L 325.00000,165.00000 L 332.50000,165.00000 M 197.50000,165.00000 L 205.00000,180.00000 L 210.00000,175.00000 L 212.50000,182.50000 L 202.50000,182.50000 L 205.00000,192.50000 L 197.50000,187.50000 L 200.00000,192.50000 L 197.50000,192.50000 L 190.00000,190.00000 L 185.00000,175.00000 L 195.00000,172.50000 L 190.00000,165.00000 L 197.50000,165.00000 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path2886"
+ d="M 592.50000,200.00000 L 595.00000,207.50000 L 597.50000,202.50000 L 600.00000,202.50000 L 590.00000,215.00000 L 592.50000,200.00000 M 200.00000,205.00000 L 190.00000,207.50000 L 192.50000,200.00000 L 200.00000,205.00000 M 627.50000,210.00000 L 637.50000,205.00000 L 632.50000,210.00000 C 634.61200,231.21425 618.65875,217.51200 617.50000,202.50000 L 627.50000,210.00000 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <g
+ id="g2876"
+ style="fill:#00002e;fill-opacity:1.0000000">
+ <path
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000"
+ d="M 482.50000,152.50000 L 480.00000,160.00000 L 475.00000,160.00000 L 470.00000,150.00000 L 482.50000,152.50000 M 410.00000,150.00000 L 417.50000,155.00000 L 415.00000,155.00000 L 420.00000,165.00000 L 417.50000,170.00000 L 415.00000,172.50000 L 410.00000,175.00000 L 382.50000,165.00000 L 382.50000,162.50000 L 382.50000,160.00000 L 387.50000,162.50000 L 385.00000,155.00000 L 392.50000,152.50000 L 402.50000,160.00000 L 397.50000,150.00000 L 410.00000,150.00000 M 188.33250,150.83325 L 186.66750,151.66675 L 188.33250,150.83325 M 790.00000,152.50000 L 790.00000,162.50000 L 782.50000,155.00000 L 790.00000,152.50000 M 464.16750,154.16675 L 463.33250,155.83325 L 464.16750,154.16675 M 362.50000,152.50000 L 357.50000,162.50000 L 365.00000,167.50000 L 357.50000,165.00000 L 360.00000,172.50000 L 350.00000,177.50000 L 347.50000,170.00000 L 337.50000,175.00000 L 342.50000,170.00000 L 347.50000,152.50000 L 362.50000,152.50000 M 210.00000,155.00000 L 205.00000,160.00000 L 205.00000,155.00000 L 210.00000,155.00000 M 5.0000000,155.00000 L 7.5000000,157.50000 L 7.5000000,160.00000 L 7.5000000,162.50000 L 0.0000000,155.00000 L 5.0000000,155.00000 z "
+ id="path2866" />
+ <path
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000"
+ d="M 440.00000,177.50000 L 440.00000,185.00000 L 457.50000,192.50000 L 452.50000,202.50000 C 442.52500,202.75025 433.21750,203.54450 430.00000,192.50000 L 437.50000,192.50000 L 435.00000,182.50000 L 427.50000,185.00000 L 430.00000,177.50000 L 440.00000,177.50000 M 467.50000,187.50000 L 460.00000,180.00000 L 467.50000,187.50000 M 375.00000,180.00000 L 385.00000,205.00000 L 392.50000,187.50000 L 395.00000,187.50000 L 397.50000,195.00000 L 415.00000,195.00000 L 412.50000,207.50000 L 417.50000,202.50000 L 435.00000,207.50000 L 440.00000,215.00000 L 437.50000,217.50000 L 432.50000,212.50000 L 427.50000,225.00000 L 435.00000,232.50000 L 440.00000,222.50000 L 447.50000,227.50000 L 450.00000,225.00000 L 445.00000,217.50000 L 457.50000,220.00000 L 455.00000,227.50000 L 460.00000,245.00000 L 450.00000,247.50000 L 437.50000,235.00000 L 437.50000,245.00000 L 430.00000,242.50000 L 427.50000,250.00000 L 435.00000,255.00000 L 437.50000,255.00000 L 442.50000,250.00000 L 445.00000,267.50000 L 435.00000,275.00000 L 432.50000,275.00000 L 425.00000,262.50000 L 415.00000,265.00000 L 420.00000,282.50000 L 417.50000,282.50000 L 395.00000,282.50000 L 395.00000,270.00000 L 387.50000,277.50000 L 377.50000,270.00000 L 375.00000,277.50000 L 367.50000,275.00000 L 375.00000,257.50000 L 365.00000,257.50000 L 355.00000,247.50000 L 355.00000,240.00000 L 362.50000,242.50000 L 367.50000,235.00000 L 345.00000,237.50000 L 340.00000,227.50000 L 345.00000,210.00000 L 362.50000,220.00000 L 372.50000,210.00000 L 362.50000,210.00000 L 375.00000,192.50000 L 375.00000,187.50000 L 367.50000,185.00000 L 375.00000,180.00000 M 355.00000,180.00000 L 355.00000,182.50000 L 345.00000,180.00000 L 355.00000,180.00000 M 335.00000,180.00000 L 335.00000,185.00000 L 330.00000,185.00000 L 330.00000,180.00000 L 335.00000,180.00000 z "
+ id="path2878" />
+ <g
+ id="g2863"
+ style="fill:#00002e;fill-opacity:1.0000000">
+ <path
+ id="path2766"
+ d="M 585.00000,35.000000 C 585.86900,36.448250 589.87650,39.783750 590.00000,40.000000 C 606.25500,68.446000 566.64325,45.839250 570.00000,45.000000 L 585.00000,35.000000 M 278.33250,35.833250 L 276.66750,36.666750 L 278.33250,35.833250 M 594.16675,41.666750 L 593.33325,43.333250 L 594.16675,41.666750 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path2794"
+ d="M 420.83250,70.833250 L 419.16750,71.666750 L 420.83250,70.833250 M 382.50000,72.500000 L 382.50000,77.500000 L 382.50000,80.000000 L 372.50000,72.500000 L 382.50000,72.500000 M 437.50000,72.500000 L 437.50000,75.000000 L 430.00000,75.000000 L 437.50000,72.500000 M 425.00000,90.000000 L 417.50000,87.500000 L 417.50000,95.000000 L 402.50000,75.000000 C 414.85500,73.415750 420.29000,78.987500 425.00000,90.000000 M 578.33325,75.833250 L 576.66675,76.666750 L 578.33325,75.833250 M 305.00000,75.000000 L 305.00000,80.000000 L 300.00000,75.000000 L 305.00000,75.000000 M 320.00000,77.500000 L 320.00000,80.000000 L 312.50000,80.000000 L 320.00000,77.500000 M 579.16675,81.666750 L 578.33325,83.333250 L 579.16675,81.666750 M 371.66750,81.666750 L 370.83250,83.333250 L 371.66750,81.666750 M 310.00000,82.500000 L 302.50000,87.500000 L 307.50000,97.500000 L 305.00000,97.500000 L 302.50000,92.500000 L 300.00000,100.00000 L 287.50000,97.500000 L 285.00000,82.500000 L 310.00000,82.500000 M 402.50000,85.000000 L 400.00000,95.000000 L 392.50000,82.500000 L 402.50000,85.000000 M 389.16750,84.166750 L 388.33250,85.833250 L 389.16750,84.166750 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path2874"
+ d="M 204.16750,169.16675 L 203.33250,170.83325 L 204.16750,169.16675 M 38.332500,168.33325 L 36.667500,169.16675 L 38.332500,168.33325 M 618.33325,170.83325 L 616.66675,171.66675 L 618.33325,170.83325 M 225.00000,170.00000 L 225.00000,172.50000 L 217.50000,175.00000 L 225.00000,170.00000 M 399.16750,176.66675 L 398.33250,178.33325 L 399.16750,176.66675 M 42.500000,182.50000 L 32.500000,187.50000 L 32.500000,175.00000 L 42.500000,182.50000 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path2910"
+ d="M 512.50000,247.50000 L 505.00000,242.50000 L 512.50000,247.50000 M 474.16750,246.66675 L 473.33250,248.33325 L 474.16750,246.66675 M 360.00000,265.00000 L 350.00000,260.00000 L 355.00000,275.00000 L 345.00000,277.50000 L 345.00000,267.50000 L 332.50000,255.00000 C 342.93000,239.85475 355.06500,252.48000 360.00000,265.00000 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path2934"
+ d="M 365.00000,282.50000 L 380.00000,287.50000 L 372.50000,292.50000 L 385.00000,305.00000 L 382.50000,300.00000 L 385.00000,300.00000 L 387.50000,307.50000 L 372.50000,305.00000 L 365.00000,310.00000 L 355.00000,290.00000 L 365.00000,282.50000 M 490.00000,285.00000 L 485.00000,292.50000 L 490.00000,285.00000 M 407.50000,292.50000 L 397.50000,292.50000 L 407.50000,292.50000 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path2938"
+ d="M 355.00000,295.00000 L 355.00000,302.50000 L 352.50000,302.50000 L 355.00000,295.00000 M 422.50000,302.50000 L 430.00000,307.50000 L 422.50000,320.00000 L 430.00000,317.50000 L 402.50000,325.00000 L 402.50000,322.50000 L 410.00000,320.00000 L 402.50000,320.00000 L 405.00000,307.50000 L 410.00000,310.00000 L 412.50000,300.00000 L 422.50000,302.50000 M 442.50000,305.00000 L 437.50000,320.00000 L 435.00000,320.00000 L 435.00000,302.50000 L 442.50000,305.00000 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path2950"
+ d="M 545.00000,315.00000 L 547.50000,325.00000 L 547.50000,327.50000 L 540.00000,332.50000 L 532.50000,322.50000 L 540.00000,322.50000 L 545.00000,315.00000 M 495.00000,320.00000 L 487.50000,320.00000 L 490.00000,315.00000 L 495.00000,320.00000 M 351.66750,316.66750 L 350.83250,318.33250 L 351.66750,316.66750 M 570.83325,318.33250 L 569.16675,319.16750 L 570.83325,318.33250 M 146.66750,319.16750 L 145.83250,320.83250 L 146.66750,319.16750 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path2958"
+ d="M 190.00000,327.50000 L 182.50000,332.50000 L 182.50000,345.00000 L 192.50000,340.00000 C 190.05750,344.53250 186.58000,353.43000 182.50000,347.50000 L 165.00000,347.50000 L 165.00000,337.50000 L 167.50000,337.50000 L 167.50000,342.50000 L 170.00000,342.50000 L 170.00000,332.50000 L 190.00000,327.50000 M 165.83250,328.33250 L 164.16750,329.16750 L 165.83250,328.33250 M 533.33250,330.83250 L 531.66750,331.66750 L 533.33250,330.83250 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path2962"
+ d="M 552.50000,335.00000 L 560.00000,342.50000 L 572.50000,345.00000 L 562.50000,345.00000 L 570.00000,347.50000 L 570.00000,350.00000 L 562.50000,350.00000 C 561.16825,359.15500 550.98300,354.89250 550.00000,347.50000 L 542.50000,350.00000 L 552.50000,335.00000 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path3042"
+ d="M 732.50000,437.50000 L 742.50000,447.50000 C 732.80375,465.41000 726.82975,451.28500 720.00000,442.50000 L 732.50000,437.50000 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ <path
+ id="path3118"
+ d="M 506.66750,549.16750 L 505.83250,550.83250 L 506.66750,549.16750 M 497.50000,547.50000 L 500.00000,557.50000 L 507.50000,555.00000 L 507.50000,562.50000 L 500.00000,560.00000 L 502.50000,567.50000 L 487.50000,567.50000 L 490.00000,562.50000 L 482.50000,567.50000 L 480.00000,565.00000 L 482.50000,557.50000 L 482.50000,555.00000 L 487.50000,547.50000 L 490.00000,552.50000 L 497.50000,547.50000 z "
+ style="fill:#00002e;stroke:none;fill-opacity:1.0000000" />
+ </g>
+ </g>
+ </g>
+ <path
+ style="fill:url(#radialGradient3720);stroke:none;fill-opacity:1.0"
+ d="M 343.33250,548.33250 L 341.66750,549.16750 L 343.33250,548.33250 M 300.83250,550.83250 L 299.16750,551.66750 L 300.83250,550.83250 M 612.50000,555.00000 C 611.21750,561.18750 610.99050,561.43750 605.00000,560.00000 L 612.50000,555.00000 M 587.50000,557.50000 L 582.50000,562.50000 L 582.50000,557.50000 L 587.50000,557.50000 M 455.00000,557.50000 L 452.50000,570.00000 L 445.00000,570.00000 C 445.33500,561.87250 447.24500,559.87000 455.00000,557.50000 z "
+ id="path3120" />
+ <path
+ style="fill:url(#radialGradient3728);stroke:none;fill-opacity:1.0"
+ d="M 520.00000,560.00000 L 520.00000,565.00000 L 515.00000,560.00000 L 520.00000,560.00000 z "
+ id="path3122" />
+ <path
+ style="fill:url(#radialGradient3736);stroke:none;fill-opacity:1.0"
+ d="M 355.00000,560.00000 L 357.50000,565.00000 L 352.50000,565.00000 L 355.00000,560.00000 M 230.00000,560.00000 L 235.00000,575.00000 L 222.50000,577.50000 L 220.00000,572.50000 L 222.50000,565.00000 L 230.00000,570.00000 L 230.00000,560.00000 M 222.50000,560.00000 L 217.50000,565.00000 L 217.50000,560.00000 L 222.50000,560.00000 M 555.00000,562.50000 L 555.00000,567.50000 L 550.00000,567.50000 L 555.00000,562.50000 M 15.000000,565.00000 L 7.5000000,575.00000 L 7.5000000,565.00000 L 10.000000,570.00000 L 15.000000,565.00000 M 242.50000,567.50000 L 245.00000,577.50000 L 235.00000,585.00000 L 232.50000,585.00000 L 240.00000,575.00000 L 237.50000,567.50000 L 242.50000,567.50000 M 67.500000,567.50000 L 67.500000,575.00000 L 65.000000,575.00000 L 67.500000,567.50000 M 557.50000,570.00000 L 552.50000,575.00000 L 552.50000,570.00000 L 557.50000,570.00000 z "
+ id="path3124" />
+ <path
+ style="fill:url(#radialGradient3744);stroke:none;fill-opacity:1.0"
+ d="M 492.50000,570.00000 L 492.50000,572.50000 L 485.00000,572.50000 L 492.50000,570.00000 M 475.83250,570.83250 L 474.16750,571.66750 L 475.83250,570.83250 z "
+ id="path3126" />
+ <path
+ style="fill:url(#radialGradient3752);stroke:none;fill-opacity:1.0"
+ d="M 74.167500,571.66750 L 73.332500,573.33250 L 74.167500,571.66750 M 550.00000,572.50000 L 550.00000,575.00000 L 545.00000,575.00000 L 545.00000,577.50000 L 552.50000,577.50000 L 552.50000,580.00000 L 542.50000,585.00000 L 545.00000,577.50000 L 532.50000,572.50000 L 550.00000,572.50000 z "
+ id="path3128" />
+ <path
+ style="fill:url(#radialGradient3760);stroke:none;fill-opacity:1.0"
+ d="M 498.33250,573.33250 L 496.66750,574.16750 L 498.33250,573.33250 z "
+ id="path3130" />
+ <path
+ style="fill:url(#radialGradient3768);stroke:none;fill-opacity:1.0"
+ d="M 455.00000,572.50000 L 455.00000,575.00000 L 447.50000,575.00000 L 455.00000,572.50000 M 206.66750,574.16750 L 205.83250,575.83250 L 206.66750,574.16750 z "
+ id="path3132" />
+ <path
+ style="fill:url(#radialGradient3776);stroke:none;fill-opacity:1.0"
+ d="M 491.66750,576.66750 L 490.83250,578.33250 L 491.66750,576.66750 z "
+ id="path3134" />
+ <path
+ style="fill:url(#radialGradient3784);stroke:none;fill-opacity:1.0"
+ d="M 468.33250,575.83250 L 466.66750,576.66750 L 468.33250,575.83250 M 195.83250,575.83250 L 194.16750,576.66750 L 195.83250,575.83250 M 82.500000,575.00000 L 82.500000,580.00000 L 77.500000,575.00000 L 82.500000,575.00000 M 25.000000,575.00000 L 17.500000,587.50000 L 15.000000,585.00000 L 25.000000,575.00000 M 12.500000,577.50000 L 12.500000,592.50000 C 18.705000,595.12500 15.145000,601.08000 12.500000,595.00000 L 10.000000,595.00000 L 7.5000000,600.00000 C -1.1425000,590.17750 -0.26000000,582.19000 12.500000,577.50000 M 522.50000,585.00000 L 522.50000,587.50000 L 510.00000,592.50000 L 512.50000,585.00000 L 522.50000,585.00000 M 460.00000,585.00000 L 457.50000,595.00000 L 455.00000,595.00000 L 460.00000,585.00000 z "
+ id="path3136" />
+ <path
+ style="fill:url(#radialGradient3792);stroke:none;fill-opacity:1.0"
+ d="M 7.5000000,585.00000 L 7.5000000,595.00000 L 5.0000000,595.00000 L 7.5000000,585.00000 z "
+ id="path3138" />
+ <path
+ style="fill:url(#radialGradient3800);stroke:none;fill-opacity:1.0"
+ d="M 465.00000,587.50000 L 467.50000,597.50000 L 455.00000,600.00000 L 455.00000,597.50000 L 462.50000,597.50000 L 465.00000,587.50000 M 42.500000,587.50000 L 37.500000,592.50000 L 37.500000,587.50000 L 42.500000,587.50000 M 238.33250,590.83250 L 236.66750,591.66750 L 238.33250,590.83250 M 80.000000,590.00000 L 77.500000,600.00000 L 70.000000,597.50000 L 70.000000,592.50000 L 80.000000,590.00000 M 550.83325,593.33250 L 549.16750,594.16750 L 550.83325,593.33250 M 450.83250,593.33250 L 449.16750,594.16750 L 450.83250,593.33250 M 60.832500,593.33250 L 59.167500,594.16750 L 60.832500,593.33250 M 50.000000,600.00000 L 42.500000,592.50000 L 50.000000,600.00000 M 60.000000,600.00000 L 52.500000,595.00000 L 60.000000,600.00000 z "
+ id="path3140" />
+ <path
+ style="fill:url(#radialGradient3808);stroke:none;fill-opacity:1.0"
+ d="M 11.667500,596.66750 L 10.832500,598.33250 L 11.667500,596.66750 M 7.5000000,600.00000 L 0.0000000,595.00000 L 7.5000000,600.00000 z "
+ id="path3142" />
+ <path
+ style="fill:url(#radialGradient3816);stroke:none;fill-opacity:1.0"
+ d="M 478.33250,598.33250 L 476.66750,599.16750 L 478.33250,598.33250 z "
+ id="path3144" />
+ <path
+ style="fill:url(#linearGradient2665);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 435.81204,139.29352 C 435.81204,139.29352 412.31868,136.41977 389.76275,141.94167 C 367.43450,144.43944 340.95435,160.38767 340.95435,160.38767 C 362.94607,135.15123 374.24786,123.07700 406.54863,119.20252 C 438.84940,115.32806 435.81204,139.29352 435.81204,139.29352 z "
+ id="path9143"
+ sodipodi:nodetypes="ccczc" />
+ <g
+ id="g2395"
+ transform="matrix(0.935404,0.000000,0.000000,0.991650,24.85818,4.425758)">
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ id="path1762"
+ d="M 501.17979,528.68003 C 503.22533,506.11615 501.72058,468.48499 501.72058,468.48499 C 501.72058,468.48499 500.80534,466.01298 499.37979,462.09620 C 504.98456,461.58259 509.49979,461.18097 514.94616,458.22582 C 514.98460,462.30099 514.94616,468.93299 514.94616,468.93299 C 514.94616,468.93299 526.42040,451.31115 543.65326,461.91859 C 546.11987,463.77529 548.97825,468.70338 548.51601,478.84564 C 548.34882,501.95102 548.23298,516.76223 549.67885,528.68003 C 543.01282,527.07799 541.18388,527.25229 534.83091,528.68003 C 534.96747,511.72078 536.00768,493.18490 535.08287,478.14844 C 534.69887,471.76468 532.21327,467.99340 524.88853,468.16820 C 518.50923,468.89504 515.53885,476.80148 515.24487,481.82223 C 514.71849,498.40669 513.81928,506.46650 515.71095,528.45603 C 510.30191,527.73222 506.70536,526.90818 501.17979,528.68003 z "
+ style="fill:url(#linearGradient2571);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2573);stroke-width:1.0382961px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="czzsccczssccccczszc"
+ id="path1178"
+ style="opacity:1.0000000;fill:url(#linearGradient2566);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2568);stroke-width:1.0382961;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 443.64813,464.01380 C 452.08510,459.55792 464.75332,458.19014 470.16123,458.91575 C 475.54068,459.63753 481.24998,460.81290 484.10104,464.95208 C 487.01500,469.18256 487.49253,473.21543 487.49143,479.37337 C 487.48657,506.93941 486.42269,524.04887 489.76856,528.90044 C 483.46446,528.09803 483.15992,528.38302 476.10048,529.00517 C 475.80347,523.75616 475.57388,521.82463 475.00719,516.57012 C 471.76370,524.31718 462.28946,530.95905 455.55412,529.22089 C 448.59457,527.42487 447.07275,528.10503 442.25531,518.77484 C 438.27762,511.07105 439.72855,498.18534 445.60374,491.80733 C 451.42194,485.49119 464.81135,483.86171 474.75669,485.66711 C 474.37725,481.16292 476.94518,476.10645 472.05986,470.94900 C 465.38392,465.02708 453.84838,470.25825 445.68101,474.03965 C 445.68101,474.03965 443.92808,467.93562 443.64813,464.01380 z M 475.11544,493.06200 C 462.13427,492.29714 457.15607,493.54204 454.13842,499.44055 C 451.12076,505.33906 451.95657,517.46416 460.38266,517.72797 C 466.35896,517.91508 469.21863,516.57248 472.03495,511.53500 C 474.80456,506.58106 475.57683,499.56281 475.11544,493.06200 z " />
+ <path
+ sodipodi:nodetypes="ccccsc"
+ id="path9758"
+ d="M 415.90480,461.85861 C 422.83578,461.33281 426.46858,460.99821 432.73036,458.41702 C 431.34416,484.13335 431.24856,518.69267 433.68636,528.77845 C 428.47617,527.39225 423.50499,527.15325 417.24320,528.58725 C 420.03950,522.03867 419.04435,507.01662 419.22689,492.89866 C 419.52564,469.60219 419.32250,465.56310 415.90480,461.85861 z "
+ style="fill:url(#linearGradient2560);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2563);stroke-width:1.0382961px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cccsczzszcczscc"
+ id="path10486"
+ style="opacity:1.0000000;fill:url(#linearGradient2555);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2557);stroke-width:1.0382961;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 372.71887,472.74706 C 372.59049,462.18472 373.27714,442.76526 373.62413,434.06006 C 368.26349,436.05753 363.34873,438.32515 356.77352,437.94256 C 360.84479,443.77114 359.78860,469.80072 359.84751,475.95838 C 360.12945,505.42841 360.45516,520.59552 359.13831,525.90815 C 363.50941,528.77914 367.07787,528.87932 372.61379,529.12745 C 378.72221,529.40124 389.10849,530.84128 397.93942,523.11556 C 406.95720,515.22638 410.76183,497.99303 410.41091,487.49841 C 409.99676,475.11288 406.90041,461.25203 393.61946,459.13686 C 380.31012,457.01717 376.35681,466.34969 372.71887,472.74706 z M 373.31224,519.93893 C 372.12263,494.77259 373.19633,477.63850 377.99270,473.42513 C 382.68020,469.30738 389.38751,469.39808 393.79329,476.36954 C 397.77658,482.67248 398.34391,512.61171 388.87937,518.25699 C 382.99706,521.52399 378.36009,521.09534 373.31224,519.93893 z " />
+ <path
+ sodipodi:nodetypes="cccsccccszcccccc"
+ id="path10488"
+ style="opacity:1.0000000;fill:url(#linearGradient2550);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2552);stroke-width:1.0382961;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 288.93437,460.70957 C 290.20994,450.14723 289.52329,442.77334 286.11711,437.89213 C 291.09535,437.59521 297.15731,436.42123 302.20292,433.74425 C 301.19084,447.98561 300.86381,469.42954 300.65853,475.58406 C 299.61179,506.96608 302.03077,514.56095 303.27972,528.40182 C 296.62769,528.76868 294.06920,528.50768 289.32694,528.47278 C 289.42393,524.88131 289.13061,522.70188 289.23064,517.85475 C 282.93103,531.89491 271.00743,530.77306 262.56662,525.41803 C 254.69604,519.44085 252.18745,506.80061 252.00712,493.62488 C 251.72770,473.20786 259.74899,465.16680 263.44499,462.58653 C 267.57675,459.70204 278.03084,456.98899 288.93437,460.70957 z M 287.95860,510.00464 C 289.19460,493.76140 288.59297,486.52055 288.63172,469.99162 C 284.37625,467.75584 273.04862,465.58816 268.46635,474.28802 C 263.22960,486.05584 263.85012,506.02622 272.00907,515.58828 C 274.58100,518.87847 285.29793,519.60662 287.95860,510.00464 z " />
+ <path
+ sodipodi:nodetypes="cczcczzzzcccccc"
+ id="path10492"
+ style="opacity:1.0000000;fill:url(#linearGradient2544);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2547);stroke-width:1.0382961;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 353.52831,527.54482 C 353.74206,524.37222 353.54842,522.23745 354.35339,517.02040 C 347.50734,520.87404 335.32385,521.45934 330.17617,517.66979 C 324.90531,513.78957 321.12888,511.00742 321.25021,495.74083 C 334.49643,495.14518 351.15918,495.96340 354.25074,495.49884 C 356.92979,460.24039 342.21066,458.68302 331.12410,458.92865 C 320.04135,459.17419 315.28556,465.80088 311.34628,472.68104 C 307.37319,479.62023 306.10114,496.77444 308.64387,506.59783 C 311.19531,516.45484 315.75558,522.58766 323.94323,526.60116 C 331.97723,530.53934 343.58059,530.03541 353.52831,527.54482 z M 339.74313,471.18171 C 343.19057,476.31742 342.38336,481.67509 342.20999,486.64550 C 334.68793,486.59461 328.66570,486.47893 321.14451,486.80890 C 321.04640,481.60074 321.13277,476.15330 324.19010,471.07743 C 327.45739,465.82825 336.51812,465.69395 339.74313,471.18171 z " />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path10494"
+ d="M 424.66489,429.64692 C 428.05318,433.25846 431.00193,436.67430 435.27364,439.91066 C 431.39109,442.51889 428.57433,445.43221 424.99035,450.30539 C 421.34947,446.17321 418.67235,442.94317 414.66240,439.60019 C 418.15036,436.47939 421.37019,433.21528 424.66489,429.64692 z "
+ style="fill:#003b98;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0154536;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ </g>
+ <g
+ id="g2610">
+ <g
+ id="g2596">
+ <path
+ sodipodi:nodetypes="csss"
+ id="path5966"
+ d="M 333.24981,114.57202 C 345.67681,106.71498 376.58554,85.025429 418.00037,94.239669 C 426.51536,96.134143 423.59137,117.70267 416.20146,119.35976 C 397.69693,123.50923 328.85154,117.35287 333.24981,114.57202 z "
+ style="fill:url(#linearGradient2415);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <g
+ id="g2584">
+ <path
+ style="fill:url(#linearGradient2448);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.12500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 428.90537,311.40038 C 417.48016,309.47365 403.56063,302.90318 396.57256,296.48145 C 406.07382,297.66141 423.55915,302.70082 427.61183,303.73177 C 431.66451,304.76272 428.51675,306.82173 428.90537,311.40038 z "
+ id="path1378"
+ sodipodi:nodetypes="cczc" />
+ <g
+ id="g2574">
+ <path
+ sodipodi:nodetypes="cczz"
+ id="path10622"
+ d="M 378.39954,270.47683 C 377.64379,264.01413 384.43902,246.81226 390.28840,237.68108 C 388.67999,249.21336 392.17204,262.86599 391.04268,267.84661 C 389.91335,272.82718 379.15529,276.93950 378.39954,270.47683 z "
+ style="fill:url(#linearGradient2476);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.12500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <g
+ id="g2566">
+ <path
+ style="fill:url(#linearGradient2500);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.37500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 436.82444,296.81770 C 433.03478,298.87768 429.47588,300.49561 425.60664,302.25148 C 405.25375,305.64165 388.32928,290.75862 382.76406,278.59713 C 371.77463,254.58209 390.03815,239.09329 409.96952,222.68734 C 396.81913,246.26099 400.87703,260.67624 427.79737,287.87840 C 428.50995,291.60148 429.09100,294.39584 436.82444,296.81770 z "
+ id="path26674"
+ sodipodi:nodetypes="ccsccc" />
+ <path
+ sodipodi:nodetypes="czccccccsc"
+ id="path3644"
+ d="M 254.75136,229.44158 C 254.75136,229.44158 250.88663,245.75384 263.92633,247.28223 C 270.44620,248.04641 276.76144,262.01528 284.31123,277.37829 C 291.56050,256.78316 306.91021,235.55511 306.91021,235.55511 C 331.27005,126.84313 426.31735,113.38928 534.35577,205.65194 L 546.93036,191.81898 C 543.44557,184.78363 541.45994,178.91436 536.35287,172.37650 C 535.74684,177.93011 535.34723,181.41527 534.53620,184.43314 C 500.94879,116.25747 440.34605,99.760831 398.63681,97.752104 C 359.15307,95.850512 258.87849,124.25780 254.75136,229.44158 z "
+ style="fill:url(#linearGradient2564);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cccccccccccczzz"
+ id="path2086"
+ d="M 285.64152,146.95669 C 261.22261,168.69821 239.08802,259.37436 255.86022,302.16377 C 255.56974,295.74712 255.56978,290.23923 257.01018,285.58497 C 263.28839,309.65319 273.13606,339.01585 294.01608,357.54115 C 289.73733,345.75405 286.46332,337.38707 284.68087,327.72279 C 296.20427,356.52834 316.94539,378.34317 387.27016,373.12957 C 366.15337,370.70361 356.40237,367.03469 350.78952,358.92939 C 357.76882,358.03781 361.04715,358.42049 370.31232,354.32551 C 330.02764,345.65773 301.76462,327.07467 299.01306,303.56064 C 302.48620,306.30702 303.95348,308.88063 312.68245,310.59376 C 299.62783,280.52445 297.47399,265.47881 298.94702,247.88371 C 302.48960,254.16624 305.56967,260.29660 312.18744,265.66931 C 298.28804,221.54962 316.87434,203.46846 319.00614,176.67263 C 321.19046,149.21636 328.39382,134.49197 317.18200,131.38760 C 305.97019,128.28322 310.06041,125.21518 285.64152,146.95669 z "
+ style="fill:url(#linearGradient2559);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ style="fill:url(#linearGradient2556);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 456.06327,405.23271 C 399.62288,427.41703 336.18359,408.99357 280.05429,332.80756 C 280.05429,332.80756 266.06086,320.12762 265.89043,302.98324 C 274.74197,311.33312 279.56344,303.84165 288.77725,297.04771 C 293.35351,304.87398 305.59723,314.62386 305.59723,314.62386 C 357.73734,376.78993 385.53329,385.74093 456.06327,405.23271 z "
+ id="path10789"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:url(#linearGradient2553);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 419.37578,93.792146 C 419.37578,93.792146 430.95325,109.07456 432.83976,127.58432 C 434.66691,145.51180 384.09279,140.91006 384.09279,140.91006 C 401.56721,152.09481 412.66144,144.60576 418.92216,151.69535 C 431.91585,151.73242 439.93737,153.53173 450.87321,166.56966 C 442.04101,145.84255 454.23165,161.24371 478.21758,184.46360 C 507.72178,230.52149 481.51956,271.95994 449.53545,279.67979 C 452.31972,281.80024 449.68131,290.27185 458.68854,302.90671 C 471.43668,320.78911 467.04387,319.51481 473.82949,318.02305 C 515.10684,295.07268 516.75025,302.86804 532.28074,272.50599 C 531.10636,284.49687 528.74725,293.71145 524.79707,304.84778 C 543.15817,281.12878 547.53020,267.71968 545.46261,239.32004 C 554.77208,223.47246 548.87910,204.63161 535.75436,182.27706 C 528.45861,171.42444 512.49516,144.32801 503.33072,132.50338 C 495.99167,119.36759 489.95987,122.38568 476.88507,114.60249 C 426.04336,120.06494 467.35672,100.77781 473.88184,100.06522 C 457.53151,95.229521 446.17623,98.163586 419.37578,93.792146 z "
+ id="path7512"
+ sodipodi:nodetypes="czcccccsccccccccc" />
+ <path
+ style="fill:url(#linearGradient2549);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 516.36420,293.36413 C 516.36420,293.36413 511.49262,256.58007 516.60734,247.66306 C 521.36886,239.36179 495.30437,247.06144 484.12332,256.13781 C 472.62534,270.52715 457.76760,279.42071 442.09994,280.01934 C 424.54744,276.86421 409.73957,272.09067 403.64827,243.24189 C 399.19282,244.08771 395.57729,241.04650 391.12179,241.89226 C 383.73339,276.96442 384.38512,253.83818 384.43935,267.10993 C 394.12137,274.22743 388.63923,270.73134 387.82582,277.43263 C 394.27552,292.79225 391.90266,283.53702 401.45928,294.88847 C 409.75870,304.74661 412.93759,303.20823 427.91812,311.12163 C 436.25227,312.81816 444.97395,315.83071 458.63162,315.65981 C 468.06121,318.54156 476.54686,316.64144 485.98327,313.50400 C 484.06978,318.08376 488.53410,318.74729 485.99184,322.74761 C 495.48346,316.23045 502.48178,305.92920 516.36420,293.36413 z "
+ id="path1501"
+ sodipodi:nodetypes="czccccccsccccc" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <path
+ style="fill:url(#linearGradient2542);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.12500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 461.35350,314.53713 C 453.63474,318.29464 443.29459,316.31619 430.57023,313.53579 C 430.78503,298.45123 445.34374,302.32408 449.60820,301.79646 C 453.87267,301.26885 469.62063,310.51267 461.35350,314.53713 z "
+ id="path1382"
+ sodipodi:nodetypes="cczz" />
+ </g>
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/food_leif_lodahl_01.svg b/PerformanceTests/PageLoad/svg/files/food_leif_lodahl_01.svg
new file mode 100644
index 000000000..c96c7af98
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/food_leif_lodahl_01.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) --><svg height="226.00000pt" id="svg2" inkscape:version="0.42.2" sodipodi:docbase="C:\Documents and Settings\All Users\Dokumenter\Billeder\Billedeksempler" sodipodi:docname="food.svg" sodipodi:version="0.32" width="157.00000pt" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg">
+ <metadata>
+ <rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <cc:Work rdf:about="">
+ <dc:title>Food</dc:title>
+ <dc:description></dc:description>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>food</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <dc:publisher>
+ <cc:Agent rdf:about="http://www.openclipart.org/">
+ <dc:title>Open Clip Art Library</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Leif Lodahl</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>Leif Lodahl</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:date></dc:date>
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+ <dc:language>en</dc:language>
+ </cc:Work>
+ <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+ <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+ <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+ <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <defs id="defs5"/>
+ <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="svg2" inkscape:cx="161.11839" inkscape:cy="510.08364" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="515" inkscape:window-width="709" inkscape:window-x="154" inkscape:window-y="182" inkscape:zoom="0.32593342" pagecolor="#ffffff"/>
+ <g id="g1307" transform="matrix(0.329782,0.000000,0.000000,0.335809,-3.068075,3.068159)">
+ <path d="M 0.00000000,406.50000 L 0.00000000,0.00000000 L 309.00000,0.00000000 L 618.00000,0.00000000 L 618.00000,406.50000 L 618.00000,813.00000 L 309.00000,813.00000 L 0.00000000,813.00000 L 0.00000000,406.50000 z " id="path1329" style="fill:#fcfcfb"/>
+ <path d="M 68.933052,811.99611 C 66.930807,810.85809 62.277845,809.77198 58.750000,809.61914 C 57.237500,809.55361 56.000000,809.20668 56.000000,808.84819 C 56.000000,808.19563 50.187101,807.42508 38.000000,806.46214 C 30.045265,805.83361 25.434599,804.45041 21.500000,801.51213 C 14.909984,796.59083 6.1246465,787.19597 3.1022395,781.83793 C -0.049973622,776.24977 -0.089689103,776.01239 0.060039640,763.65429 C 0.17732087,753.97430 0.52812400,751.01132 1.6058745,750.59775 C 2.3726435,750.30351 3.0000000,749.41115 3.0000000,748.61472 C 3.0000000,747.81829 3.5625000,746.97904 4.2500000,746.74971 C 5.0893230,746.46974 5.5000000,744.06044 5.5000000,739.41638 C 5.5000000,733.87657 5.9410478,731.88169 7.7159740,729.39341 C 9.6241311,726.71836 10.722381,726.20525 15.622272,725.69954 C 18.751950,725.37652 21.579762,724.69958 21.906298,724.19521 C 22.232834,723.69084 24.750000,723.01817 27.500000,722.70038 C 30.250000,722.38259 36.100000,721.21741 40.500000,720.11109 C 78.105615,710.65567 96.464957,707.08594 128.50000,703.00065 C 146.39254,700.71890 147.98984,700.36563 148.02401,698.68261 C 148.03721,698.03218 148.05260,666.22500 148.05821,628.00000 C 148.07072,542.64366 148.76140,525.04938 152.59227,512.50000 C 155.04322,504.47102 155.32034,502.11518 155.16081,490.66458 C 154.96856,476.86584 156.21439,471.78561 160.95245,467.04755 C 162.77187,465.22813 163.00264,464.20038 162.43767,460.43293 C 161.60751,454.89702 163.03715,451.28170 167.31713,448.09357 C 170.49821,445.72399 170.54173,445.58146 170.15790,438.78861 C 169.91705,434.52622 170.45294,428.62666 171.56028,423.35002 C 173.30673,415.02790 173.30367,414.71669 171.44058,411.15498 C 169.84781,408.11005 155.33991,389.28988 151.60383,385.42204 C 147.34054,381.00840 136.49453,368.56389 132.93346,364.00000 C 130.57313,360.97500 128.04752,358.14014 127.32098,357.70031 C 126.59444,357.26048 126.00000,356.48711 126.00000,355.98170 C 126.00000,355.47630 124.25232,352.46116 122.11627,349.28139 C 113.55118,336.53124 110.13927,331.01059 109.46368,328.80887 C 109.07403,327.53899 108.43779,326.05000 108.04981,325.50000 C 106.89795,323.86713 104.21288,315.92911 102.63774,309.50000 C 100.70557,301.61366 99.860624,294.77924 99.813772,286.65806 C 99.767814,278.69162 103.89428,259.28631 105.22495,261.21119 C 105.75789,261.98212 105.84489,259.88810 105.44145,256.00000 C 104.45752,246.51756 104.48876,246.61000 100.06540,240.09630 C 97.829428,236.80369 96.000000,233.89187 96.000000,233.62558 C 96.000000,233.35930 94.277741,230.52211 92.172758,227.32071 C 90.067775,224.11932 86.452958,218.12500 84.139832,214.00000 C 81.826706,209.87500 79.498721,205.82500 78.966532,205.00000 C 78.434343,204.17500 74.511659,197.61866 70.249458,190.43035 C 63.592038,179.20245 60.845943,174.14045 56.975339,165.96154 C 56.574904,165.11539 55.935807,162.57952 55.555122,160.32626 C 54.920376,156.56924 55.138212,155.97148 58.181484,153.11935 C 60.006668,151.40880 62.287500,150.00717 63.250000,150.00463 C 64.212500,150.00208 65.000000,149.50186 65.000000,148.89301 C 65.000000,148.28417 65.704426,148.05634 66.565391,148.38672 C 68.797905,149.24342 67.642225,146.08450 62.871643,138.29029 C 60.742239,134.81126 59.000000,131.30627 59.000000,130.50144 C 59.000000,129.22485 63.687364,127.14162 64.336073,128.12990 C 64.469686,128.33346 65.911229,130.09961 67.539503,132.05469 C 69.167776,134.00976 71.585330,137.05447 72.911844,138.82071 C 74.614783,141.08814 75.863972,141.86056 77.161844,141.44863 C 78.305274,141.08572 79.011493,141.36313 79.030409,142.18261 C 79.047133,142.90718 79.553079,142.60000 80.154732,141.50000 C 80.756386,140.40000 81.926954,138.95706 82.755995,138.29348 C 84.072346,137.23983 83.803172,136.11796 80.631672,129.43969 C 76.711745,121.18543 76.316244,119.40664 78.250000,118.72796 C 79.481855,118.29562 83.779071,122.36344 86.715530,126.74157 C 87.763346,128.30382 88.867673,128.82070 90.359488,128.44712 C 91.536770,128.15230 93.463059,127.83905 94.640130,127.75101 C 96.070730,127.64401 96.623853,127.07856 96.308495,126.04547 C 95.989235,124.99960 96.348016,125.12750 97.418365,126.44113 C 100.05892,129.68186 99.198417,126.34407 95.500000,119.00000 C 93.575000,115.17746 92.000000,111.60156 92.000000,111.05356 C 92.000000,109.89203 97.936850,108.11413 99.702782,108.74681 C 100.36431,108.98382 102.21504,111.27525 103.81552,113.83887 C 116.25703,133.76754 122.25778,143.54565 124.01693,146.75665 C 125.14486,148.81549 127.36710,152.52500 128.95523,155.00000 C 132.22816,160.10065 134.44906,163.98529 138.82411,172.26193 C 141.84079,177.96885 141.88482,178.00253 143.43494,175.78943 C 144.29572,174.56049 145.03249,173.09262 145.07220,172.52749 C 145.11191,171.96237 146.67158,170.23157 148.53813,168.68126 C 154.58831,163.65617 168.27067,164.26930 180.06949,170.09425 C 184.15513,172.11129 192.74958,179.03623 192.00000,179.70721 C 191.72500,179.95338 193.75000,181.77792 196.50000,183.76175 L 201.50000,187.36872 L 198.00277,183.43436 C 196.07930,181.27046 195.15680,180.06250 195.95277,180.75000 C 197.84331,182.38290 199.54417,182.38290 198.26787,180.75000 C 197.73051,180.06250 197.20227,176.91207 197.09400,173.74904 C 196.80911,165.42601 195.22666,162.58409 185.02476,152.07386 C 179.99247,146.88948 173.85717,139.99425 171.39074,136.75112 C 166.86948,130.80604 162.00000,121.40593 162.00000,118.62309 C 162.00000,117.79531 161.62134,116.88401 161.15854,116.59799 C 160.69574,116.31196 159.51197,112.65910 158.52793,108.48052 C 156.32905,99.143315 156.81896,79.043191 159.51457,68.000000 C 159.98446,66.075000 160.26437,63.752365 160.13661,62.838590 C 160.00884,61.924814 160.37583,60.885757 160.95215,60.529573 C 161.52847,60.173389 162.00000,58.609962 162.00000,57.055290 C 162.00000,55.500618 162.67223,52.939676 163.49384,51.364307 C 164.31545,49.788938 164.99045,47.767600 164.99384,46.872445 C 164.99723,45.977289 165.74978,44.627289 166.66618,43.872445 C 168.18768,42.619180 168.27239,42.847351 167.64170,46.500000 C 166.11396,55.347889 165.75898,70.925187 166.90629,78.771686 C 168.35922,88.708326 173.83128,99.825324 180.67318,106.74038 C 181.89235,107.97259 183.25214,109.54759 183.69493,110.24038 C 185.69181,113.36471 197.07928,120.89857 202.75398,122.84970 C 213.50401,126.54587 219.66405,125.56279 229.00000,118.66109 C 235.40084,113.92920 235.43648,113.89498 240.10519,108.00000 C 243.11428,104.20055 247.79969,95.493786 252.42992,85.097298 C 253.04768,83.710216 253.50000,75.819713 253.50000,66.430358 C 253.50000,57.485027 253.59355,50.259797 253.70790,50.374291 C 254.73785,51.405599 261.13433,72.991611 261.96802,78.249501 C 264.13808,91.935572 263.01174,112.19530 259.52413,122.20791 C 258.70187,124.56856 258.02256,127.18749 258.01455,128.02776 C 258.00655,128.86803 257.10000,130.32612 256.00000,131.26797 C 254.90000,132.20982 254.00000,133.88483 254.00000,134.99021 C 254.00000,136.09560 253.88750,137.33750 253.75000,137.75000 C 253.61250,138.16250 256.26557,138.76472 259.64571,139.08828 C 271.45634,140.21881 279.58312,148.91326 288.33238,169.77878 C 290.80496,175.67545 294.27694,184.82082 296.04791,190.10181 C 297.81887,195.38281 300.11534,200.78281 301.15117,202.10181 L 303.03450,204.50000 L 305.56477,201.50000 C 306.95641,199.85000 308.72569,197.03750 309.49649,195.25000 C 310.26729,193.46250 311.37091,192.00000 311.94897,192.00000 C 312.52704,192.00000 312.88750,191.45852 312.75000,190.79671 C 312.61250,190.13489 313.22029,189.57239 314.10064,189.54671 C 314.98100,189.52102 316.97719,187.92500 318.53663,186.00000 C 325.11581,177.87852 327.38712,176.06452 331.01787,176.03175 C 338.76552,175.96182 344.58700,182.81237 349.46483,197.73960 C 352.26471,206.30784 352.88978,207.32583 354.64992,206.18402 C 357.55784,204.29762 359.53187,196.22808 360.56600,182.00000 C 361.66838,166.83278 362.34696,161.62123 364.53729,151.50000 C 365.84657,145.45000 367.82523,137.80000 368.93431,134.50000 C 370.04339,131.20000 370.96189,127.51964 370.97541,126.32143 C 370.98894,125.12321 371.67500,123.46786 372.50000,122.64286 C 373.32500,121.81786 374.00000,120.23727 374.00000,119.13045 C 374.00000,118.02362 374.41559,116.86118 374.92354,116.54725 C 375.43149,116.23333 376.62387,113.61927 377.57329,110.73824 C 380.35360,102.30126 388.69912,86.019397 390.25000,86.006323 C 390.66250,86.002845 391.00000,85.100000 391.00000,84.000000 C 391.00000,82.900000 391.35298,82.000000 391.78439,82.000000 C 392.21581,82.000000 393.42132,80.537500 394.46331,78.750000 C 395.50530,76.962500 397.17733,74.772217 398.17892,73.882705 C 399.18051,72.993192 400.00000,71.984115 400.00000,71.640311 C 400.00000,70.922518 403.58277,66.592051 406.44320,63.852466 C 409.25667,61.157850 416.43717,57.885178 420.82809,57.296233 C 426.08921,56.590568 438.21505,58.620786 443.45759,61.085069 C 448.59534,63.500095 455.43172,70.056844 457.96596,75.000000 C 458.95286,76.925000 460.08150,80.525000 460.47404,83.000000 C 460.86658,85.475000 462.67920,90.650000 464.50208,94.500000 C 468.78448,103.54462 470.44864,112.17242 469.67312,121.30913 C 469.01507,129.06187 465.73201,146.12530 464.13875,150.07356 C 463.60022,151.40810 461.49617,156.93289 459.46309,162.35086 C 455.58382,172.68876 444.16675,194.24463 438.39195,202.13398 C 436.52638,204.68266 435.00000,207.47280 435.00000,208.33429 C 435.00000,209.19577 434.39584,210.26048 433.65741,210.70031 C 432.91899,211.14014 431.46002,212.85000 430.41527,214.50000 C 428.15693,218.06662 427.08721,219.49630 424.75000,222.07168 C 423.78750,223.13225 423.29071,224.00000 423.64602,224.00000 C 424.00134,224.00000 423.10134,225.10351 421.64602,226.45225 C 420.19071,227.80099 418.94375,229.37599 418.87500,229.95225 C 418.80625,230.52851 418.69375,231.45005 418.62500,232.00011 C 418.55625,232.55016 417.26250,234.55112 415.75000,236.44668 C 414.23750,238.34223 413.00000,240.32969 413.00000,240.86324 C 413.00000,241.39679 412.43750,242.03423 411.75000,242.27976 C 411.06250,242.52530 410.80000,243.05030 411.16667,243.44643 C 411.84831,244.18285 414.48795,241.92787 417.06072,238.41128 C 418.79520,236.04051 438.76194,218.01969 443.86806,214.21653 C 445.86563,212.72870 447.72500,211.26214 448.00000,210.95751 C 448.27500,210.65288 450.07500,209.32200 452.00000,208.00000 C 453.92500,206.67800 455.72500,205.29763 456.00000,204.93251 C 456.69622,204.00815 464.71242,200.00000 465.86491,200.00000 C 467.58818,200.00000 503.84424,236.44912 504.90702,239.25000 C 505.56704,240.98943 505.61425,242.88441 505.03548,244.40669 C 504.34804,246.21478 504.63193,247.76930 506.17684,250.65669 C 511.42499,260.46526 512.00000,262.09937 512.00000,267.20531 C 512.00000,272.07909 507.29685,287.93405 504.18417,293.55353 C 503.59118,294.62409 500.79780,300.22500 497.97666,306.00000 C 495.15552,311.77500 492.20667,317.21043 491.42366,318.07874 C 490.64065,318.94705 490.00000,320.08416 490.00000,320.60565 C 490.00000,321.45255 483.98090,330.14975 480.74714,333.97542 C 480.06121,334.78690 479.56953,335.68690 479.65451,335.97542 C 479.73949,336.26394 479.45513,336.72500 479.02261,337.00000 C 478.59008,337.27500 475.22863,341.32500 471.55272,346.00000 C 464.43501,355.05225 449.52600,371.00000 448.18107,371.00000 C 447.73728,371.00000 446.05249,372.38036 444.43709,374.06746 C 442.82169,375.75457 439.02500,378.76242 436.00000,380.75157 C 432.97500,382.74073 430.27500,384.63359 430.00000,384.95792 C 429.72500,385.28226 426.57500,387.07440 423.00000,388.94045 C 419.42500,390.80651 416.27500,392.59579 416.00000,392.91664 C 415.72500,393.23749 413.02500,394.80272 410.00000,396.39492 C 406.97500,397.98713 403.78957,399.89963 402.92126,400.64492 C 402.05295,401.39022 401.02124,402.00000 400.62856,402.00000 C 399.12540,402.00000 389.00259,410.12540 387.84744,412.25918 C 386.37421,414.98052 386.57666,418.73594 388.56539,425.57694 C 390.79180,433.23553 390.37504,449.03215 387.90632,450.55790 C 386.19880,451.61320 387.00346,452.61663 390.95544,454.36024 C 393.13093,455.32007 396.11160,457.53235 397.57915,459.27644 C 400.00910,462.16427 400.19783,462.98574 399.69218,468.47375 C 399.17550,474.08150 399.32883,474.69087 401.90019,477.24839 C 406.60383,481.92673 407.50330,488.61665 405.56419,504.50000 C 405.36275,506.15000 405.85125,512.00000 406.64974,517.50000 C 407.44823,523.00000 408.47790,530.42500 408.93789,534.00000 C 409.39789,537.57500 409.93754,556.36161 410.13712,575.74801 L 410.50000,610.99602 L 417.08052,610.99801 C 422.03986,610.99951 424.82866,611.59112 428.40050,613.39942 C 432.21614,615.33114 433.24464,615.52606 433.67697,614.39942 C 434.44005,612.41086 436.28212,612.64895 442.19206,615.50000 C 445.04229,616.87500 448.38853,618.00000 449.62814,618.00000 C 450.86774,618.00000 452.12855,618.39899 452.42994,618.88664 C 452.73132,619.37429 454.45018,620.04947 456.24962,620.38705 C 458.04906,620.72463 460.64153,622.02186 462.01066,623.26980 C 463.37980,624.51773 466.95296,626.15731 469.95103,626.91332 C 476.59099,628.58767 484.66786,632.09006 489.94947,635.58526 C 492.11377,637.01753 494.32210,637.91896 494.85687,637.58846 C 495.39164,637.25795 495.98011,637.36363 496.16459,637.82329 C 496.45517,638.54732 520.96525,644.71683 554.50000,652.50708 C 570.28584,656.17419 575.99206,656.99989 585.56020,657.00155 C 597.93764,657.00371 600.76433,658.50704 603.51078,666.54829 C 605.57009,672.57769 609.04695,678.40634 611.96328,680.71820 C 612.80848,681.38820 613.14667,681.95070 612.71482,681.96820 C 612.28297,681.98569 612.44036,682.95430 613.06458,684.12068 C 613.93879,685.75415 613.92226,686.06999 612.99263,685.49545 C 612.12999,684.96230 611.97756,685.35395 612.45826,686.86848 C 613.00761,688.59933 612.79829,688.87972 611.31539,688.39938 C 609.92915,687.95035 609.82578,688.04360 610.87812,688.79386 C 611.64264,689.33893 611.92081,690.31911 611.50289,690.99533 C 610.95918,691.87507 611.41051,692.04789 613.12477,691.61636 C 614.43115,691.28752 614.93750,691.27681 614.25000,691.59256 C 612.49474,692.39873 612.68148,694.33620 614.44907,693.65792 C 615.40454,693.29127 615.71373,693.58244 615.35676,694.51269 C 615.05899,695.28865 615.53191,697.35987 616.40768,699.11540 C 618.84294,703.99698 618.44527,710.95141 615.42153,716.36147 C 612.25701,722.02343 603.81406,730.49284 598.70851,733.12688 C 592.08740,736.54283 587.40554,742.09437 586.06517,748.11878 C 583.95405,757.60737 583.02714,762.31140 581.55652,771.00000 C 578.72509,787.72833 576.68051,791.31068 567.50000,795.62872 C 563.07520,797.70992 561.03762,797.98159 549.78810,797.99023 C 538.98288,797.99853 535.90804,797.62693 529.28810,795.51277 C 525.00464,794.14479 519.92500,793.02967 518.00000,793.03473 C 514.00609,793.04522 507.08525,795.93486 502.28507,799.59614 C 495.90067,804.46576 485.29745,806.60057 462.36559,807.63336 C 448.70934,808.24841 440.81432,807.11163 432.87081,803.38650 C 431.01686,802.51709 427.70000,800.98070 425.50000,799.97232 C 423.30000,798.96393 417.67500,796.30763 413.00000,794.06944 C 408.32500,791.83125 404.10567,790.00000 403.62370,790.00000 C 400.71754,790.00000 385.80773,780.98469 376.82783,773.79771 C 368.63956,767.24430 365.79492,766.91102 352.50000,770.94747 C 344.61804,773.34050 336.87577,774.65308 323.00000,775.94875 C 317.77500,776.43663 308.10000,777.36596 301.50000,778.01392 C 293.20852,778.82794 283.47366,778.93269 270.00000,778.35288 C 249.96434,777.49067 247.74352,777.50079 242.36019,778.47884 C 238.38731,779.20064 238.07389,780.31995 237.52251,795.75574 C 237.17549,805.47020 236.71306,808.52100 235.29236,810.46875 L 233.50000,812.92604 L 152.00000,812.90638 C 106.22132,812.89534 69.813209,812.49637 68.933052,811.99611 z M 470.18750,755.31689 C 469.46562,755.02802 468.60312,755.06354 468.27083,755.39583 C 467.93854,755.72812 468.52917,755.96447 469.58333,755.92105 C 470.74828,755.87307 470.98523,755.63611 470.18750,755.31689 z M 474.13671,747.21224 C 473.41527,746.97176 472.34955,747.25045 471.76845,747.83155 C 471.02638,748.57362 471.41681,748.70376 473.08016,748.26879 C 474.43236,747.91518 474.88566,747.46189 474.13671,747.21224 z M 174.75000,737.31067 C 173.78750,737.05915 172.21250,737.05915 171.25000,737.31067 C 170.28750,737.56220 171.07500,737.76800 173.00000,737.76800 C 174.92500,737.76800 175.71250,737.56220 174.75000,737.31067 z M 182.75000,736.31067 C 181.78750,736.05915 180.21250,736.05915 179.25000,736.31067 C 178.28750,736.56220 179.07500,736.76800 181.00000,736.76800 C 182.92500,736.76800 183.71250,736.56220 182.75000,736.31067 z M 187.18750,735.31689 C 186.46562,735.02802 185.60313,735.06354 185.27083,735.39583 C 184.93854,735.72812 185.52917,735.96447 186.58333,735.92105 C 187.74828,735.87307 187.98523,735.63611 187.18750,735.31689 z M 498.27938,702.96034 C 497.98602,701.83852 497.52255,701.14411 497.24946,701.41721 C 496.70846,701.95820 497.66405,705.00000 498.37500,705.00000 C 498.61577,705.00000 498.57274,704.08215 498.27938,702.96034 z M 550.38156,672.44806 C 550.72305,671.55814 550.55541,671.15674 549.98855,671.50708 C 549.44485,671.84310 549.00000,672.54148 549.00000,673.05902 C 549.00000,674.49745 549.71677,674.18048 550.38156,672.44806 z M 372.18750,625.31689 C 371.46562,625.02802 370.60312,625.06354 370.27083,625.39583 C 369.93854,625.72812 370.52917,625.96447 371.58333,625.92105 C 372.74828,625.87307 372.98523,625.63611 372.18750,625.31689 z M 386.00000,470.00000 C 386.00000,469.45000 385.55000,469.00000 385.00000,469.00000 C 384.45000,469.00000 384.00000,469.45000 384.00000,470.00000 C 384.00000,470.55000 384.45000,471.00000 385.00000,471.00000 C 385.55000,471.00000 386.00000,470.55000 386.00000,470.00000 z M 320.00000,424.88494 C 324.12500,424.29527 329.30000,423.11760 331.50000,422.26790 C 333.70000,421.41820 337.07500,420.35994 339.00000,419.91621 C 340.92500,419.47248 345.22449,418.48395 348.55441,417.71949 C 356.90979,415.80130 367.68481,410.56843 368.48764,408.03894 C 368.84356,406.91752 369.77945,406.00000 370.56739,406.00000 C 372.82582,406.00000 372.22841,404.61325 369.40564,403.30323 C 367.30772,402.32962 366.92230,402.35513 367.33862,403.44005 C 367.69466,404.36788 367.23890,404.61373 365.84065,404.24808 C 364.30289,403.84594 364.14433,403.52386 365.16547,402.87658 C 365.96936,402.36699 366.05166,402.02454 365.37244,402.01531 C 364.75229,402.00689 363.69915,402.65757 363.03214,403.46127 C 362.36513,404.26497 360.84753,405.22368 359.65969,405.59173 C 358.47186,405.95977 355.70000,407.08441 353.50000,408.09092 C 341.99151,413.35611 321.11137,417.25220 297.32888,418.57209 C 287.59637,419.11222 285.26358,419.52330 285.68587,420.62378 C 285.97633,421.38070 285.75333,422.00000 285.19032,422.00000 C 284.62731,422.00000 283.98223,421.44669 283.75681,420.77043 C 283.51491,420.04473 282.61404,420.65942 281.55847,422.27043 C 280.45440,423.95544 278.76162,425.07491 277.13499,425.19575 C 271.93969,425.58169 295.67850,426.49430 304.00000,426.22854 C 308.67500,426.07923 315.87500,425.47462 320.00000,424.88494 z M 287.00000,421.05902 C 287.00000,420.47656 287.45000,420.00000 288.00000,420.00000 C 288.55000,420.00000 289.00000,420.19844 289.00000,420.44098 C 289.00000,420.68352 288.55000,421.16008 288.00000,421.50000 C 287.45000,421.83992 287.00000,421.64148 287.00000,421.05902 z M 282.00000,419.44098 C 282.00000,419.19844 281.29844,419.00000 280.44098,419.00000 C 279.58352,419.00000 279.16462,419.45734 279.51008,420.01631 C 280.08089,420.93989 282.00000,420.49646 282.00000,419.44098 z M 193.20075,406.23358 C 192.54034,406.01345 192.00000,405.19583 192.00000,404.41667 C 192.00000,403.57703 190.99450,403.00000 189.53138,403.00000 C 187.84920,403.00000 187.23064,403.43747 187.58972,404.37322 C 188.23997,406.06774 192.15833,407.95280 193.45075,407.19286 C 193.98967,406.87598 193.88138,406.46046 193.20075,406.23358 z M 295.49329,356.90003 C 295.99685,352.86962 295.36641,346.87398 293.03998,333.56870 C 291.31792,323.71985 289.70229,315.32731 289.44970,314.91861 C 289.19711,314.50991 287.75509,314.50208 286.24522,314.90120 C 282.67393,315.84525 279.90188,321.25192 280.55477,326.00000 C 281.55642,333.28449 282.25064,336.00000 283.11129,336.00000 C 283.60008,336.00000 284.00000,336.86320 284.00000,337.91821 C 284.00000,338.97323 284.28762,340.58596 284.63916,341.50206 C 285.15077,342.83528 285.45263,342.90150 286.15170,341.83385 C 286.73166,340.94811 286.99606,341.67583 286.93870,344.00000 C 286.81789,348.89573 287.76014,354.16014 288.97459,355.37459 C 289.53856,355.93856 290.00000,356.99945 290.00000,357.73212 C 290.00000,358.46478 290.71780,360.73728 291.59511,362.78212 C 293.04590,366.16363 293.26374,366.31111 294.00289,364.41218 C 294.44986,363.26388 295.12054,359.88341 295.49329,356.90003 z M 182.00000,249.00000 C 182.00000,248.45000 181.52344,248.00000 180.94098,248.00000 C 180.35852,248.00000 180.16008,248.45000 180.50000,249.00000 C 180.83992,249.55000 181.31648,250.00000 181.55902,250.00000 C 181.80156,250.00000 182.00000,249.55000 182.00000,249.00000 z M 178.00000,238.00000 C 178.00000,237.45000 177.60459,237.00000 177.12132,237.00000 C 176.32550,237.00000 175.63791,235.58484 173.47731,229.50000 C 173.08672,228.40000 172.58403,227.98153 172.36022,228.57008 C 171.81068,230.01514 175.84794,239.00000 177.04679,239.00000 C 177.57106,239.00000 178.00000,238.55000 178.00000,238.00000 z M 133.50000,227.00000 C 133.16008,226.45000 132.43197,226.00000 131.88197,226.00000 C 131.33197,226.00000 131.16008,226.45000 131.50000,227.00000 C 131.83992,227.55000 132.56803,228.00000 133.11803,228.00000 C 133.66803,228.00000 133.83992,227.55000 133.50000,227.00000 z M 147.60417,216.27083 C 147.27187,215.93854 147.03553,216.52917 147.07895,217.58333 C 147.12693,218.74828 147.36389,218.98523 147.68311,218.18750 C 147.97198,217.46562 147.93646,216.60313 147.60417,216.27083 z M 161.34934,209.46797 C 161.03951,208.66059 160.32907,208.00000 159.77057,208.00000 C 159.13213,208.00000 159.16863,208.49826 159.86888,209.34201 C 160.48145,210.08011 160.64905,211.05226 160.24132,211.50233 C 159.83360,211.95241 160.04285,212.00909 160.70633,211.62830 C 161.36981,211.24751 161.65916,210.27536 161.34934,209.46797 z M 156.00000,206.44098 C 156.00000,206.19844 155.55000,206.00000 155.00000,206.00000 C 154.45000,206.00000 154.00000,206.47656 154.00000,207.05902 C 154.00000,207.64148 154.45000,207.83992 155.00000,207.50000 C 155.55000,207.16008 156.00000,206.68352 156.00000,206.44098 z M 159.18333,204.78333 C 158.46577,204.06577 158.00000,204.00673 158.00000,204.63333 C 158.00000,205.20167 158.30000,205.96667 158.66667,206.33333 C 159.03333,206.70000 159.56583,206.76750 159.85000,206.48333 C 160.13417,206.19917 159.83417,205.43417 159.18333,204.78333 z M 156.08415,197.71953 C 155.62828,196.49879 155.63672,194.48750 156.10290,193.25000 C 156.62075,191.87533 156.57109,191.00000 155.97525,191.00000 C 155.43886,191.00000 155.00000,191.52707 155.00000,192.17126 C 155.00000,192.81545 154.23773,194.18482 153.30607,195.21429 C 151.71351,196.97405 151.71419,197.04691 153.31741,196.43169 C 154.59945,195.93973 154.86922,196.17724 154.40435,197.38866 C 154.06427,198.27490 154.28417,199.00000 154.89301,199.00000 C 155.50186,199.00000 156.00000,199.47656 156.00000,200.05902 C 156.00000,200.64148 155.55000,200.83992 155.00000,200.50000 C 154.42355,200.14373 154.00261,201.07172 154.00616,202.69098 L 154.01232,205.50000 L 155.46267,202.71953 C 156.41244,200.89871 156.62694,199.17302 156.08415,197.71953 z M 195.59975,194.75000 C 194.69545,193.51250 193.46353,191.23953 192.86216,189.69895 C 192.26079,188.15838 191.56192,187.10475 191.30911,187.35756 C 191.05630,187.61037 189.47753,187.42375 187.80073,186.94285 C 184.85633,186.09841 184.81058,186.13321 186.46374,187.95993 C 187.40519,189.00022 189.04801,189.68334 190.11444,189.47796 C 191.18088,189.27258 191.83196,189.46287 191.56129,189.90083 C 191.29062,190.33879 191.95360,191.64645 193.03458,192.80674 C 194.11556,193.96704 195.00000,195.38519 195.00000,195.95819 C 195.00000,196.53118 195.50489,197.00000 196.12197,197.00000 C 196.79654,197.00000 196.58829,196.10277 195.59975,194.75000 z M 194.00000,195.60699 C 194.00000,195.39083 193.30163,194.94599 192.44806,194.61844 C 191.55814,194.27695 191.15674,194.44459 191.50708,195.01145 C 192.09434,195.96166 194.00000,196.41690 194.00000,195.60699 z M 149.80687,189.47354 C 149.49898,189.16565 148.93982,189.72065 148.56429,190.70687 C 148.02161,192.13207 148.13647,192.24693 149.12409,191.26667 C 149.80751,190.58833 150.11476,189.78143 149.80687,189.47354 z M 142.60417,186.27083 C 142.27187,185.93854 142.03553,186.52917 142.07895,187.58333 C 142.12693,188.74828 142.36389,188.98523 142.68311,188.18750 C 142.97198,187.46562 142.93646,186.60313 142.60417,186.27083 z M 195.97994,187.47583 C 195.28422,186.63754 194.45466,186.21201 194.13646,186.53021 C 193.81826,186.84840 194.21989,187.52739 195.02896,188.03906 C 197.14593,189.37787 197.42254,189.21405 195.97994,187.47583 z M 149.38156,186.44806 C 149.72305,185.55814 149.55541,185.15674 148.98855,185.50708 C 148.44485,185.84310 148.00000,186.54148 148.00000,187.05902 C 148.00000,188.49745 148.71677,188.18048 149.38156,186.44806 z M 182.00000,187.11350 C 182.00000,186.26743 175.89014,184.88509 175.14034,185.56152 C 174.94253,185.73997 176.29253,186.32105 178.14034,186.85280 C 179.98815,187.38455 181.61250,187.86021 181.75000,187.90981 C 181.88750,187.95942 182.00000,187.60107 182.00000,187.11350 z M 155.66275,184.56352 C 155.09034,183.07185 165.65514,178.00000 169.33474,178.00000 C 172.57200,178.00000 176.98262,179.67429 179.32163,181.79107 C 180.83661,183.16211 190.00000,186.28212 190.00000,185.42692 C 190.00000,185.28177 188.37504,183.35291 186.38897,181.14056 C 182.63553,176.95947 177.23392,175.00000 169.46151,175.00000 C 162.23406,175.00000 149.16921,182.03772 150.97439,184.95857 C 151.53318,185.86270 151.94404,185.89957 152.44410,185.09045 C 152.82585,184.47276 153.56444,184.23081 154.08541,184.55279 C 154.60638,184.87476 154.73075,185.62663 154.36180,186.22361 C 153.94808,186.89303 154.15958,187.01941 154.91367,186.55336 C 155.58614,186.13775 155.92323,185.24232 155.66275,184.56352 z M 163.42901,185.46522 C 165.44930,184.62109 169.21675,183.74239 171.80113,183.51256 C 174.38551,183.28273 176.72500,183.05576 177.00000,183.00820 C 178.49914,182.74890 170.34465,180.00000 168.07632,180.00000 C 165.01463,180.00000 161.10628,182.43962 162.28294,183.61627 C 162.71182,184.04516 162.03611,184.96600 160.78136,185.66260 C 157.62752,187.41350 159.01337,187.31019 163.42901,185.46522 z M 163.50708,183.01145 C 163.15674,182.44459 163.55814,182.27695 164.44806,182.61844 C 166.18048,183.28323 166.49745,184.00000 165.05902,184.00000 C 164.54148,184.00000 163.84310,183.55515 163.50708,183.01145 z M 173.00000,185.94098 C 173.00000,185.35852 172.55000,185.16008 172.00000,185.50000 C 171.45000,185.83992 171.00000,186.31648 171.00000,186.55902 C 171.00000,186.80156 171.45000,187.00000 172.00000,187.00000 C 172.55000,187.00000 173.00000,186.52344 173.00000,185.94098 z M 145.73464,183.25512 C 146.41369,183.12044 148.97833,181.47669 151.43385,179.60236 C 157.79669,174.74549 164.85941,172.61880 172.36575,173.29945 L 178.45469,173.85157 L 175.97734,171.94654 C 167.40496,165.35452 154.90130,168.39465 148.05115,178.73649 C 146.37302,181.27001 145.00000,183.01116 145.00000,182.60570 C 145.00000,181.47380 147.15695,177.70020 148.66713,176.19002 C 149.41032,175.44683 149.71972,174.35551 149.35468,173.76487 C 148.97457,173.14984 149.15803,172.97963 149.78403,173.36652 C 150.38521,173.73807 151.28523,173.31273 151.78409,172.42132 C 152.28295,171.52991 154.44811,169.94090 156.59555,168.89018 L 160.50000,166.97979 L 156.54958,167.45955 C 151.43171,168.08109 147.58574,171.92573 144.99705,179.00806 C 142.87148,184.82338 142.58311,186.10912 143.76531,184.50000 C 144.16939,183.95000 145.05559,183.38980 145.73464,183.25512 z M 192.34508,183.45687 C 192.01939,182.60815 191.53845,182.12821 191.27633,182.39034 C 191.01420,182.65247 191.09635,183.34688 191.45888,183.93347 C 192.44493,185.52893 193.02126,185.21898 192.34508,183.45687 z M 217.60417,178.27083 C 217.27187,177.93854 217.03553,178.52917 217.07895,179.58333 C 217.12693,180.74828 217.36389,180.98523 217.68311,180.18750 C 217.97198,179.46562 217.93646,178.60313 217.60417,178.27083 z M 188.81653,178.55816 C 188.64244,178.42530 185.80000,176.41192 182.50000,174.08399 L 176.50000,169.85139 L 181.99508,174.83324 C 185.01738,177.57326 187.85982,179.58664 188.31161,179.30741 C 188.76341,179.02819 188.99062,178.69102 188.81653,178.55816 z M 221.80687,172.47354 C 221.49898,172.16565 220.93982,172.72065 220.56429,173.70687 C 220.02161,175.13207 220.13647,175.24693 221.12409,174.26667 C 221.80751,173.58833 222.11476,172.78143 221.80687,172.47354 z M 220.57599,160.91784 C 220.61779,158.96770 220.97610,156.84769 221.37224,156.20673 C 221.76837,155.56576 221.63046,154.17802 221.06575,153.12286 C 220.02464,151.17752 220.27387,145.48061 221.59201,141.09363 C 222.10653,139.38122 221.97920,138.89482 221.15046,139.40701 C 219.46628,140.44789 218.46986,137.07854 219.82170,134.91389 C 221.02583,132.98577 219.82105,131.37453 218.01145,132.49292 C 217.44459,132.84326 217.27695,132.44186 217.61844,131.55194 C 218.62743,128.92255 214.62438,129.74727 213.38342,132.42444 C 212.27803,134.80917 213.34423,141.68103 215.28913,144.70703 C 215.71581,145.37090 215.99384,147.84590 215.90696,150.20703 C 215.68025,156.36890 215.82825,157.00000 217.50000,157.00000 C 219.43276,157.00000 219.39782,157.90293 217.37872,160.13401 C 215.42592,162.29184 216.30194,165.28287 218.74698,164.80569 C 220.00494,164.56019 220.52146,163.46225 220.57599,160.91784 z M 216.07895,142.58333 C 216.03553,141.52917 216.27187,140.93854 216.60417,141.27083 C 216.93646,141.60313 216.97198,142.46562 216.68311,143.18750 C 216.36389,143.98523 216.12693,143.74828 216.07895,142.58333 z M 215.38156,160.44806 C 215.72305,159.55814 215.55541,159.15674 214.98855,159.50708 C 214.44485,159.84310 214.00000,160.54148 214.00000,161.05902 C 214.00000,162.49745 214.71677,162.18048 215.38156,160.44806 z M 433.00000,150.38337 C 433.00000,150.17252 432.10000,150.00000 431.00000,150.00000 C 429.90000,150.00000 429.00000,150.40787 429.00000,150.90638 C 429.00000,151.40489 429.90000,151.57741 431.00000,151.28975 C 432.10000,151.00209 433.00000,150.59422 433.00000,150.38337 z M 399.00000,98.000000 C 397.04347,96.735591 395.00000,96.735591 395.00000,98.000000 C 395.00000,98.550000 396.23750,98.993109 397.75000,98.984687 C 399.89294,98.972755 400.16887,98.755385 399.00000,98.000000 z M 449.68558,82.352245 C 448.79537,81.462041 447.00000,82.985073 447.00000,84.630446 C 447.00000,85.936419 447.22099,85.921863 448.61905,84.523810 C 449.50952,83.633333 449.98946,82.656129 449.68558,82.352245 z M 243.63617,86.505744 C 243.95154,85.683903 244.61242,85.260460 245.10478,85.564761 C 246.51671,86.437377 246.14877,88.000000 244.53138,88.000000 C 243.63930,88.000000 243.28787,87.413403 243.63617,86.505744 z M 247.96820,85.250000 C 247.95070,84.287500 247.27570,82.626492 246.46820,81.558870 C 245.66069,80.491249 245.00000,78.114626 245.00000,76.277486 C 245.00000,74.201941 244.42078,72.714961 243.47020,72.350191 C 242.54963,71.996936 242.16326,71.060986 242.50000,70.000000 C 242.83674,68.939014 242.45037,68.003064 241.52980,67.649809 C 240.42023,67.224026 240.00000,67.717992 240.00000,69.448051 C 240.00000,70.759956 240.52967,72.009891 241.17705,72.225684 C 241.83542,72.445139 242.01652,73.164258 241.58802,73.857575 C 240.39303,75.791113 237.74950,73.090735 238.25396,70.451816 C 238.57905,68.751208 237.97968,68.032826 235.48225,67.129742 C 232.45816,66.036215 232.30717,65.735968 232.51993,61.238744 C 232.64323,58.632435 232.54980,57.715709 232.31231,59.201575 C 231.84225,62.142512 229.20899,63.518493 226.00000,62.500000 C 224.85269,62.135858 224.00000,62.320300 224.00000,62.932612 C 224.00000,63.519676 224.45000,64.000000 225.00000,64.000000 C 225.55000,64.000000 226.00000,64.900000 226.00000,66.000000 C 226.00000,69.162375 224.31537,68.326872 223.61326,64.816276 C 223.00686,61.784278 223.61422,60.692927 226.46330,59.695155 C 227.54562,59.316120 224.05451,54.464788 222.50000,54.187649 C 221.95000,54.089595 221.14963,52.657261 220.72141,51.004684 C 220.29318,49.352108 219.29387,48.000000 218.50072,48.000000 C 217.70757,48.000000 214.90793,45.982624 212.27931,43.516943 C 209.65069,41.051262 206.74314,39.026262 205.81809,39.016943 C 203.06677,38.989227 199.67956,33.352176 200.36248,29.937608 C 200.69113,28.294361 200.52040,27.000000 199.97500,27.000000 C 199.43875,27.000000 199.00000,27.626855 199.00000,28.393011 C 199.00000,29.159167 198.29648,30.055989 197.43662,30.385948 C 196.57676,30.715908 196.17084,31.467409 196.53458,32.055950 C 196.89832,32.644492 196.40710,33.997671 195.44297,35.063013 C 193.47853,37.233696 192.00000,37.576054 192.00000,35.860243 C 192.00000,34.323448 188.91129,32.071081 186.75000,32.031803 C 185.78750,32.014312 184.96837,31.212500 184.92971,30.250000 C 184.86961,28.753561 184.73490,28.789785 184.00000,30.500000 C 183.52731,31.600000 183.10894,31.885016 183.07029,31.133369 C 183.02586,30.269605 182.26408,29.959186 181.00000,30.289749 C 177.96623,31.083099 178.50027,28.269234 182.00480,24.995513 C 183.72197,23.391439 184.77355,21.573449 184.45874,20.753086 C 183.77367,18.967821 190.14524,12.550117 195.21016,9.9238194 C 200.00558,7.4372644 211.21256,7.3129135 217.22976,9.6794931 C 230.51895,14.906158 243.96324,30.642343 249.54191,47.500000 C 251.43519,53.221139 251.99379,68.814078 250.58079,76.500000 C 249.69481,81.319241 249.63319,81.391544 248.87629,78.500000 C 248.36574,76.549588 248.27519,77.511710 248.61746,81.250000 C 248.90701,84.412500 248.88653,87.000000 248.57196,87.000000 C 248.25738,87.000000 247.98569,86.212500 247.96820,85.250000 z M 193.50000,31.000000 C 193.16008,30.450000 192.68352,30.000000 192.44098,30.000000 C 192.19844,30.000000 192.00000,30.450000 192.00000,31.000000 C 192.00000,31.550000 192.47656,32.000000 193.05902,32.000000 C 193.64148,32.000000 193.83992,31.550000 193.50000,31.000000 z M 198.00000,25.000000 C 198.00000,24.450000 197.52344,24.000000 196.94098,24.000000 C 196.35852,24.000000 196.16008,24.450000 196.50000,25.000000 C 196.83992,25.550000 197.31648,26.000000 197.55902,26.000000 C 197.80156,26.000000 198.00000,25.550000 198.00000,25.000000 z M 236.00000,79.559017 C 236.00000,79.316476 236.45000,78.839919 237.00000,78.500000 C 237.55000,78.160081 238.00000,78.358524 238.00000,78.940983 C 238.00000,79.523442 237.55000,80.000000 237.00000,80.000000 C 236.45000,80.000000 236.00000,79.801558 236.00000,79.559017 z M 235.00000,75.000000 C 235.00000,74.450000 235.19844,74.000000 235.44098,74.000000 C 235.68352,74.000000 236.16008,74.450000 236.50000,75.000000 C 236.83992,75.550000 236.64148,76.000000 236.05902,76.000000 C 235.47656,76.000000 235.00000,75.550000 235.00000,75.000000 z M 220.00000,56.906380 C 220.00000,56.407871 220.90000,56.000000 222.00000,56.000000 C 223.10000,56.000000 224.00000,56.172516 224.00000,56.383369 C 224.00000,56.594221 223.10000,57.002093 222.00000,57.289749 C 220.90000,57.577405 220.00000,57.404890 220.00000,56.906380 z M 216.14983,54.833333 C 216.06742,53.366667 215.43750,51.965774 214.75000,51.720238 C 214.06250,51.474702 213.84500,50.904702 214.26667,50.453571 C 215.61316,49.012986 217.17136,51.655785 216.72801,54.628178 L 216.29966,57.500000 L 216.14983,54.833333 z M 204.00000,51.559017 C 204.00000,50.216476 204.45000,48.839919 205.00000,48.500000 C 205.55000,48.160081 206.00000,46.108524 206.00000,43.940983 C 206.00000,41.773442 206.45000,40.000000 207.00000,40.000000 C 207.55000,40.000000 208.00000,41.139123 208.00000,42.531385 C 208.00000,43.923646 208.67500,45.321791 209.50000,45.638374 C 211.67768,46.474026 211.33845,48.000000 208.97500,48.000000 C 207.52500,48.000000 206.77963,48.851852 206.35000,51.000000 C 205.62937,54.603151 204.00000,54.990744 204.00000,51.559017 z M 208.00000,53.000000 C 208.00000,52.450000 208.45000,52.000000 209.00000,52.000000 C 209.55000,52.000000 210.00000,52.450000 210.00000,53.000000 C 210.00000,53.550000 209.55000,54.000000 209.00000,54.000000 C 208.45000,54.000000 208.00000,53.550000 208.00000,53.000000 z M 175.69828,38.343876 C 175.98192,37.604744 177.31739,37.000000 178.66601,37.000000 C 181.68235,37.000000 180.92470,38.590078 177.60607,39.224474 C 175.86752,39.556819 175.32834,39.307942 175.69828,38.343876 z M 178.50000,34.000000 C 178.83992,33.450000 179.79303,33.000000 180.61803,33.000000 C 181.44303,33.000000 181.83992,33.450000 181.50000,34.000000 C 181.16008,34.550000 180.20697,35.000000 179.38197,35.000000 C 178.55697,35.000000 178.16008,34.550000 178.50000,34.000000 z " id="path1327" style="fill:#e7d6cd"/>
+ <path d="M 222.39749,812.25105 C 221.24111,812.05773 218.79033,810.34715 216.95132,808.44978 C 215.11231,806.55240 212.93493,805.00000 212.11270,805.00000 C 210.97607,805.00000 211.08302,804.62473 212.55887,803.43439 C 214.40414,801.94610 214.35185,801.89981 211.50000,802.49713 C 188.78813,807.25415 168.46412,807.80303 139.00000,804.45512 C 118.81444,802.16149 116.06309,801.94427 119.50000,802.91556 L 122.50000,803.76337 L 118.91667,803.88169 C 116.94583,803.94676 115.06566,804.26768 114.73850,804.59484 C 114.41134,804.92200 110.17942,805.35523 105.33425,805.55758 C 100.47152,805.76066 96.369939,806.39018 96.179086,806.96274 C 95.597991,808.70603 94.021448,808.13262 91.470034,805.25000 C 89.407491,802.91971 88.880630,802.72894 88.018000,804.00000 C 87.113111,805.33333 86.890590,805.33333 86.015313,804.00000 C 84.503666,801.69727 84.813920,800.00163 86.750000,799.98469 C 87.878974,799.97481 88.090297,799.70865 87.345492,799.23469 C 86.710512,798.83061 86.260512,798.05442 86.345492,797.50982 C 86.787633,794.67632 70.640774,795.74143 68.486276,798.68788 C 67.637521,799.84862 66.504262,800.10667 64.405591,799.61708 C 62.613546,799.19902 62.004792,799.27685 62.817160,799.82015 C 64.277693,800.79693 57.943647,801.63695 41.397913,802.66075 C 31.639814,803.26455 31.119500,803.18986 26.117581,800.46748 C 19.796621,797.02718 8.6050964,786.08854 5.7507054,780.56081 C 4.5974049,778.32737 2.8721521,773.62458 1.9168104,770.11017 C 0.43113220,764.64483 0.36432788,763.12569 1.4550717,759.61017 C 3.1294467,754.21359 5.1420648,750.00000 6.0453623,750.00000 C 6.4437450,750.00000 6.5383583,747.11804 6.2556140,743.59564 C 5.2442848,730.99661 7.9026624,726.00000 15.617133,726.00000 C 17.949138,726.00000 20.484651,725.37249 21.251606,724.60554 C 22.125824,723.73132 24.857300,723.20478 28.573035,723.19420 C 31.832866,723.18493 33.702284,723.48441 32.727298,723.85972 C 31.373600,724.38081 32.141785,725.00280 35.977298,726.49119 C 38.739784,727.56319 41.000000,728.96807 41.000000,729.61315 C 41.000000,731.10099 44.147103,732.36191 44.920050,731.18376 C 45.239023,730.69758 47.300000,730.02719 49.500000,729.69401 C 62.168581,727.77544 65.918153,727.10442 69.750000,726.07010 C 73.591008,725.03331 75.662370,723.00000 72.877555,723.00000 C 72.102049,723.00000 72.139896,722.53636 73.000000,721.50000 C 74.775823,719.36026 76.325782,719.64621 75.710251,722.00000 C 75.066914,724.46012 77.282372,724.64603 82.135190,722.53914 L 85.500000,721.07828 L 82.000000,720.88931 C 78.817779,720.71749 78.756819,720.66182 81.328590,720.27616 C 83.220060,719.99252 83.982398,719.39651 83.629619,718.47719 C 83.325036,717.68345 83.931944,716.83899 85.065550,716.47920 C 87.952333,715.56297 86.218526,713.70841 83.132783,714.41182 C 81.684752,714.74190 76.675000,715.20609 72.000000,715.44334 L 63.500000,715.87471 L 69.899329,713.97386 C 76.387037,712.04677 77.949272,711.71015 86.000000,710.50462 C 88.475000,710.13402 94.654650,708.96886 99.732555,707.91540 C 109.71991,705.84341 116.47033,705.42997 115.53231,706.94773 C 115.20726,707.47366 115.90881,707.71014 117.10860,707.47909 C 120.01991,706.91842 120.78607,706.01497 118.41667,705.93661 C 112.94803,705.75576 121.89396,704.08219 134.07842,703.00668 C 141.46029,702.35508 148.40000,701.65684 149.50000,701.45503 C 151.48048,701.09168 151.49699,700.42146 151.19126,632.79405 C 150.88691,565.47165 151.90229,522.92179 153.89879,519.33378 C 154.46000,518.32520 155.35346,515.47500 155.88426,513.00000 C 156.41505,510.52500 157.60487,506.47500 158.52829,504.00000 C 159.94666,500.19845 160.02327,498.76921 159.02189,494.79165 C 156.29820,483.97295 158.07382,473.56904 163.15631,470.56674 C 166.34442,468.68348 166.56396,467.61053 164.50000,464.00000 C 163.71398,462.62500 163.05492,459.67351 163.03544,457.44113 C 162.99731,453.07372 165.16343,448.83739 166.40637,450.84851 C 167.41025,452.47282 170.52370,452.27883 172.00000,450.50000 C 172.68469,449.67500 174.20229,448.94076 175.37244,448.86836 C 176.64210,448.78980 176.08868,448.43965 174.00000,448.00000 C 170.59799,447.28391 170.63998,447.25578 175.50000,446.99546 C 178.41111,446.83953 179.45556,446.54609 178.00000,446.29308 C 176.62500,446.05407 174.93750,445.12934 174.25000,444.23813 C 172.70929,442.24088 172.63270,430.03938 174.12611,424.50000 C 176.28754,416.48277 176.27040,413.54225 174.03908,409.56959 C 171.28284,404.66232 159.81477,390.33383 147.89969,376.91037 C 134.18443,361.45885 129.20989,355.19201 121.37894,343.50000 C 110.25683,326.89412 105.63644,314.52483 102.98498,294.25728 C 101.63758,283.95788 102.15176,280.32625 107.15825,264.78155 C 108.17121,261.63640 109.00000,256.71777 109.00000,253.85126 C 109.00000,248.41375 109.16815,248.75409 97.346894,230.26538 C 95.506102,227.38635 94.000000,224.82683 94.000000,224.57758 C 94.000000,224.32833 90.850000,218.86179 87.000000,212.42972 C 83.150000,205.99765 80.000000,200.58562 80.000000,200.40299 C 80.000000,200.22036 78.055874,196.79248 75.679720,192.78547 C 63.327789,171.95589 61.651594,168.53366 61.197915,163.21846 C 60.653781,156.84352 62.447108,154.27195 68.063196,153.37390 L 71.788979,152.77813 L 65.894489,142.39537 C 62.652520,136.68485 60.000000,131.61487 60.000000,131.12875 C 60.000000,130.64263 60.646968,129.70795 61.437707,129.05170 C 62.619790,128.07066 63.908843,129.14407 68.687707,135.08890 C 71.884468,139.06562 75.739152,143.70996 77.253670,145.40965 L 80.007341,148.50000 L 82.318553,145.90945 C 84.087575,143.92662 85.128615,143.50343 86.756232,144.10553 L 88.882699,144.89216 L 87.054672,140.69608 C 86.049257,138.38824 84.082782,134.25000 82.684727,131.50000 C 76.595624,119.52262 76.759521,119.99761 78.724320,120.02247 C 79.716263,120.03502 82.044806,122.28182 84.000000,125.11294 C 85.925000,127.90034 88.483947,131.37772 89.686549,132.84047 C 91.804411,135.41646 91.917668,135.43992 93.291941,133.58752 C 94.134754,132.45148 95.352243,131.92119 96.290785,132.28134 C 97.159785,132.61481 98.051679,132.35043 98.272771,131.69382 C 98.570549,130.80948 99.112030,130.86098 100.36154,131.89250 C 103.55504,134.52884 102.98521,132.31001 97.999112,122.69353 C 95.249600,117.39066 93.000000,112.62602 93.000000,112.10543 C 93.000000,111.58485 94.429607,110.84492 96.176905,110.46115 C 99.780316,109.66970 102.00000,111.66330 102.00000,115.69113 C 102.00000,116.96101 102.33750,118.00285 102.75000,118.00632 C 103.83611,118.01548 107.00000,123.86232 107.00000,125.86028 C 107.00000,126.79429 107.90000,128.20716 109.00000,129.00000 C 110.10000,129.79284 111.00000,131.18708 111.00000,132.09831 C 111.00000,133.00955 111.67500,134.31531 112.50000,135.00000 C 113.32500,135.68469 114.00000,136.88272 114.00000,137.66228 C 114.00000,140.33620 117.96661,146.85463 119.98323,147.49468 C 121.09245,147.84673 122.00000,148.72022 122.00000,149.43577 C 122.00000,150.47018 128.07905,162.84650 133.98561,173.83725 C 134.47708,174.75176 135.14457,176.75590 135.46891,178.29090 C 135.79326,179.82589 136.49544,180.81183 137.02932,180.48188 C 137.56397,180.15145 138.03157,181.14379 138.07029,182.69098 C 138.10894,184.23594 138.56235,186.40000 139.07786,187.50000 C 139.84552,189.13806 139.95603,188.92141 139.68852,186.30281 C 139.50887,184.54436 139.67567,183.29956 140.05919,183.53658 C 140.44271,183.77361 141.00687,182.73734 141.31288,181.23377 C 142.94853,173.19715 152.28581,165.00000 159.80457,165.00000 C 168.11012,165.00000 184.03592,171.06725 188.40620,175.89636 C 191.36910,179.17032 188.15864,178.48169 184.03777,174.95936 C 180.45931,171.90064 178.30721,171.06256 179.64836,173.25000 C 180.06987,173.93750 179.30893,173.71580 177.95737,172.75734 C 170.46276,167.44251 163.70128,166.86885 155.98111,170.89283 C 153.71183,172.07565 152.16825,172.53678 152.55094,171.91758 C 152.93363,171.29837 155.10372,169.94849 157.37337,168.91784 C 161.26739,167.14955 161.33941,167.04269 158.65113,167.02196 C 152.40000,166.97377 145.85289,172.33787 144.45900,178.64968 C 144.11280,180.21736 143.19290,183.19661 142.41477,185.27024 C 141.63665,187.34387 141.03868,190.26887 141.08595,191.77024 L 141.17191,194.50000 L 141.99822,191.75468 C 145.37339,180.54108 163.08488,170.80396 174.36310,173.96167 C 176.82649,174.65138 179.25421,174.96092 179.75803,174.64954 C 180.94609,173.91528 185.00460,176.75507 184.98469,178.30670 C 184.97404,179.13605 184.74530,179.16819 184.23469,178.41209 C 183.27307,176.98814 175.13843,174.99850 170.30718,175.00558 C 158.68501,175.02260 147.07233,183.35609 145.33725,192.92449 C 145.09436,194.26394 144.66756,195.72889 144.38880,196.17993 C 144.11004,196.63097 144.11859,197.38286 144.40779,197.85080 C 144.69699,198.31874 147.07420,196.70819 149.69047,194.27180 C 155.21049,189.13132 156.60303,190.12252 151.96660,195.89194 C 150.05668,198.26858 149.09139,200.33885 149.54839,201.07830 C 150.00692,201.82022 149.89549,202.05344 149.26782,201.66552 C 147.10705,200.33009 145.91141,203.55969 147.32337,206.91775 C 148.43857,209.57004 148.86496,209.86764 149.84976,208.68103 C 150.50137,207.89589 150.75929,206.40896 150.42292,205.37675 C 149.96917,203.98435 150.06150,203.85015 150.78067,204.85676 C 151.55575,205.94164 151.90748,205.95871 152.53587,204.94196 C 153.03192,204.13934 154.28741,206.61032 155.94025,211.64224 L 158.55876,219.61408 L 161.52938,216.79875 C 164.02437,214.43419 164.55730,214.25362 164.85785,215.67099 C 165.26858,217.60793 167.53273,220.13393 168.23167,219.43499 C 168.49005,219.17662 167.65769,216.83555 166.38199,214.23261 C 165.10630,211.62968 164.04233,208.60000 164.01762,207.50000 C 163.94496,204.26552 162.83511,200.98387 161.99042,201.50592 C 161.56021,201.77181 161.58356,203.67924 162.04231,205.74467 C 162.79885,209.15087 162.74268,209.31953 161.43820,207.55887 C 160.64719,206.49125 160.00000,205.25375 160.00000,204.80887 C 160.00000,203.50731 157.21148,203.88004 156.69976,205.25000 C 156.39239,206.07287 155.96943,205.85972 155.46193,204.62621 C 154.92556,203.32250 155.21124,202.46129 156.40096,201.79549 C 157.62903,201.10822 157.81951,200.48745 157.07689,199.59264 C 156.03328,198.33518 156.67678,186.11055 157.88635,184.21525 C 159.27039,182.04657 166.45699,178.00150 168.88955,178.02196 C 171.93236,178.04756 180.58420,181.74913 179.69038,182.64295 C 179.35631,182.97703 177.25520,182.51903 175.02125,181.62518 C 168.82674,179.14663 165.32329,179.52286 161.80128,183.04487 C 160.12660,184.71955 158.94094,186.27428 159.16649,186.49982 C 159.39203,186.72536 161.35934,186.27492 163.53828,185.49884 C 167.87395,183.95460 182.30444,183.62682 185.50000,185.00000 C 186.60000,185.47269 186.89969,185.89106 186.16597,185.92971 C 185.32639,185.97395 185.97502,187.44325 187.91597,189.89390 C 189.61219,192.03555 191.00000,194.23677 191.00000,194.78550 C 191.00000,195.86808 195.91628,197.41705 196.73949,196.59384 C 197.01642,196.31692 196.04435,194.04502 194.57934,191.54517 C 192.70367,188.34458 191.26255,186.99547 189.70785,186.98469 C 187.99509,186.97281 187.82194,186.76566 188.93570,186.06090 C 190.12554,185.30800 190.14738,184.88251 189.06325,183.57622 C 188.34377,182.70930 188.05324,182.00000 188.41761,182.00000 C 189.36139,182.00000 196.76177,189.90489 196.27433,190.39234 C 196.05187,190.61480 197.19076,192.91902 198.80519,195.51284 C 200.41962,198.10665 202.02132,199.77452 202.36452,199.21922 C 202.70771,198.66391 202.28758,197.94059 201.43087,197.61185 C 200.57417,197.28310 200.15332,196.56095 200.49563,196.00706 C 200.83795,195.45318 200.61492,195.00000 200.00000,195.00000 C 199.38508,195.00000 199.14086,194.58109 199.45729,194.06910 C 199.77373,193.55710 199.57528,192.85554 199.01631,192.51008 C 197.30362,191.45158 197.88938,190.02131 199.75000,190.71862 C 201.27835,191.29139 201.32733,191.16215 200.13669,189.69824 C 199.38687,188.77632 198.41218,188.24526 197.97069,188.51811 C 197.52921,188.79096 195.62453,187.21101 193.73807,185.00710 C 191.85161,182.80320 189.59037,181.00000 188.71309,181.00000 C 187.83581,181.00000 186.88735,180.62674 186.60540,180.17054 C 185.75401,178.79296 189.59332,179.50175 192.12873,181.19022 C 194.21621,182.58039 195.63414,183.70283 200.70779,187.98146 C 202.37599,189.38826 203.28218,189.25851 202.32433,187.75000 C 201.88779,187.06250 201.47974,185.37500 201.41756,184.00000 C 200.97618,174.24100 199.46353,166.87556 196.74535,161.25000 C 195.08440,157.81250 193.44539,155.00000 193.10310,155.00000 C 191.67522,155.00000 181.93116,144.95653 176.42493,137.80936 C 168.09339,126.99490 166.75724,124.59302 163.43731,114.46277 C 160.73249,106.20939 160.50058,104.35234 160.50734,91.000000 C 160.51137,83.025000 160.90674,75.600000 161.38593,74.500000 C 161.86512,73.400000 162.37039,71.600000 162.50875,70.500000 C 162.64711,69.400000 163.10334,65.687500 163.52261,62.250000 C 164.45276,54.623863 166.48289,53.704963 165.73191,61.250000 C 164.92277,69.379516 166.69855,83.297861 169.38999,89.921552 C 172.65751,97.962948 177.11618,104.23440 185.22908,112.20039 C 194.62636,121.42751 202.97038,125.50000 212.47828,125.50000 C 221.80405,125.50000 225.55073,123.56354 235.58050,113.55965 C 243.16405,105.99567 247.74332,98.774870 252.10696,87.500000 C 253.57532,83.706029 255.00018,74.885292 255.06293,69.200779 L 255.12587,63.500000 L 257.15906,69.500000 C 258.66710,73.950265 259.33215,79.179717 259.73389,89.746505 C 260.37973,106.73383 259.04074,116.62062 254.91246,125.34697 C 253.31148,128.73114 252.00122,132.06120 252.00079,132.74712 C 252.00036,133.43303 250.37264,135.79553 248.38364,137.99712 C 244.35377,142.45770 244.58248,142.63695 251.59107,140.51082 C 258.40851,138.44268 260.83225,138.61377 266.79252,141.58390 C 273.86130,145.10642 279.27663,151.60682 285.14539,163.61414 C 289.58987,172.70740 295.96722,193.66749 295.99214,199.26357 C 295.99646,200.23353 296.39750,201.80853 296.88333,202.76357 C 297.36916,203.71861 298.34980,205.74609 299.06252,207.26908 C 299.98744,209.24551 300.58895,209.67489 301.16388,208.76908 C 301.62372,208.04458 301.97595,210.06289 301.98469,213.47251 C 301.99834,218.79737 302.14648,219.23112 303.35080,217.47251 C 304.09375,216.38763 305.00232,214.26250 305.36986,212.75000 C 305.73739,211.23750 306.47953,210.00000 307.01905,210.00000 C 307.55857,210.00000 308.00000,209.32500 308.00000,208.50000 C 308.00000,207.67500 308.45000,207.00000 309.00000,207.00000 C 309.55000,207.00000 310.00000,206.31889 310.00000,205.48643 C 310.00000,204.65397 310.40011,203.19147 310.88913,202.23643 C 311.37816,201.28139 312.61566,198.70037 313.63913,196.50083 C 315.77954,191.90090 321.80184,183.33091 324.72883,180.71971 C 327.56468,178.18982 332.65182,176.91712 335.53965,178.01508 C 338.75412,179.23721 343.25976,183.80291 344.89982,187.50000 C 347.68780,193.78476 352.00000,209.55461 352.00000,213.46555 C 352.00000,213.51958 353.01357,213.64767 354.25238,213.75020 C 357.59796,214.02709 360.85541,208.65902 361.40003,201.97135 C 363.66229,174.19205 364.60884,166.51470 368.05419,148.00000 C 368.61600,144.98090 368.76725,148.10726 368.51378,157.50000 C 368.25973,166.91407 368.42677,170.35352 369.02371,168.00000 C 369.51197,166.07500 369.96906,162.92500 370.03948,161.00000 C 370.32815,153.10819 372.39451,136.00000 373.05902,136.00000 C 373.45166,136.00000 374.06605,133.86250 374.42433,131.25000 C 374.78261,128.63750 375.33633,125.18569 375.65482,123.57931 L 376.23389,120.65862 L 378.05772,123.07652 L 379.88155,125.49443 L 380.81915,122.99721 C 381.33484,121.62375 381.40926,120.36592 380.98454,120.20205 C 379.98814,119.81761 380.92862,116.06083 382.65545,113.52749 C 383.39495,112.44262 384.00000,110.75512 384.00000,109.77749 C 384.00000,108.79987 384.41968,108.00000 384.93261,108.00000 C 385.44555,108.00000 386.12866,107.21250 386.45064,106.25000 C 387.19234,104.03281 394.19762,100.75487 396.39349,101.59750 C 397.67914,102.09085 397.79347,102.54392 396.90308,103.61678 C 395.62150,105.16099 396.76065,105.43767 398.87812,104.09649 C 399.63608,103.61640 399.97842,102.77410 399.63888,102.22471 C 399.29933,101.67531 399.80418,101.28750 400.76076,101.36290 C 401.94867,101.45654 402.39641,100.89976 402.17321,99.606479 C 401.99347,98.565042 402.44347,97.334433 403.17321,96.871792 C 404.17204,96.238547 404.19102,96.026840 403.25000,96.015313 C 401.34753,95.992007 401.75720,93.652372 404.00000,91.732028 C 405.10534,90.785604 406.00000,88.782090 406.00000,87.253186 C 406.00000,82.920894 407.60417,78.395832 409.98348,76.016517 C 411.98298,74.017018 412.30684,73.967707 413.91010,75.418641 C 416.33818,77.616028 418.66406,77.392621 419.31606,74.899384 C 419.61854,73.742700 420.34499,73.095181 420.93269,73.458401 C 422.24925,74.272077 422.33825,77.672915 421.06361,78.460688 C 419.98796,79.125476 423.80097,89.000000 425.13333,89.000000 C 426.34843,89.000000 430.00000,92.782982 430.00000,94.041813 C 430.00000,95.584000 433.97832,99.583292 434.12500,98.188561 C 434.19375,97.534853 434.31118,96.437500 434.38595,95.750000 C 434.46158,95.054591 435.51565,94.638867 436.76175,94.812994 C 438.34165,95.033767 439.26911,94.444486 439.90950,92.812994 C 441.24638,89.407133 444.96310,86.563099 446.31302,87.913018 C 448.26504,89.865038 452.79871,89.209566 453.54194,86.867872 C 454.06768,85.211395 454.40787,85.041921 455.06687,86.108195 C 455.58991,86.954490 455.32568,88.380198 454.37764,89.827086 C 453.53205,91.117629 453.12562,92.458952 453.47447,92.807803 C 453.82332,93.156655 454.52019,92.780111 455.02306,91.971040 C 455.68211,90.910693 455.87632,91.337556 455.71869,93.500000 C 455.52963,96.093577 455.81375,96.466146 457.81594,96.250106 C 461.23190,95.881519 463.69450,97.579823 464.30073,100.72226 C 464.59547,102.25002 465.36674,105.52500 466.01468,108.00000 C 469.18582,120.11308 463.46168,148.23236 453.46111,169.66814 C 446.61375,184.34516 433.41737,205.69755 419.57349,224.50000 C 417.14377,227.80000 412.53325,234.98752 409.32790,240.47226 C 406.12256,245.95700 402.94469,251.35700 402.26598,252.47226 C 401.58727,253.58752 400.74729,255.28750 400.39935,256.25000 C 400.05141,257.21250 399.42171,258.00000 399.00000,258.00000 C 398.57829,258.00000 397.96884,258.78750 397.64566,259.75000 C 397.32248,260.71250 396.64858,262.17500 396.14809,263.00000 C 392.99277,268.20122 385.83031,284.49240 384.38738,289.75000 C 383.44398,293.18750 382.29588,296.00000 381.83605,296.00000 C 381.37622,296.00000 380.99723,297.01250 380.99384,298.25000 C 380.99045,299.48750 380.31545,301.78894 379.49384,303.36431 C 377.82678,306.56076 377.55423,309.00000 378.86414,309.00000 C 379.97542,309.00000 383.00000,301.11400 383.00000,298.21657 C 383.00000,296.99746 383.52500,296.00000 384.16667,296.00000 C 384.80833,296.00000 385.03549,295.70215 384.67145,295.33812 C 384.30742,294.97408 385.09790,293.24936 386.42809,291.50539 C 387.75828,289.76143 389.16627,286.57177 389.55695,284.41727 C 390.45161,279.48356 392.05792,276.29803 395.54593,272.54030 C 397.05692,270.91247 399.32235,267.53747 400.58022,265.04030 C 401.83809,262.54314 404.49357,258.92843 406.48129,257.00763 C 410.22943,253.38568 413.27856,248.38524 412.14864,247.71344 C 411.79189,247.50133 412.04124,247.45676 412.70277,247.61438 C 413.36429,247.77201 414.94033,246.67119 416.20508,245.16812 C 417.46984,243.66504 421.65359,240.08241 425.50232,237.20670 C 429.35104,234.33100 433.21275,231.30807 434.08389,230.48908 C 434.95503,229.67008 436.54738,229.00000 437.62245,229.00000 C 438.69751,229.00000 441.31382,228.11458 443.43646,227.03239 C 445.55910,225.95021 447.67925,225.30177 448.14790,225.59141 C 448.61656,225.88105 449.00000,225.44303 449.00000,224.61803 C 449.00000,223.79303 449.52647,222.79266 450.16994,222.39497 C 450.95659,221.90879 451.13068,222.21707 450.70132,223.33596 C 450.35012,224.25118 450.49865,225.00000 451.03138,225.00000 C 451.56412,225.00000 452.00000,224.38010 452.00000,223.62244 C 452.00000,222.86479 452.67500,221.68469 453.50000,221.00000 C 454.76486,219.95026 455.00000,220.14447 455.00000,222.23888 C 455.00000,224.32623 455.38574,224.64892 457.41686,224.26064 C 458.98710,223.96047 460.06206,222.88885 460.48557,221.20147 C 461.36515,217.69696 463.08267,220.33664 462.33976,224.05120 C 461.88203,226.33983 462.43007,227.08790 466.40355,229.59829 C 468.92963,231.19423 470.99723,232.74200 470.99821,233.03777 C 470.99920,233.33355 472.35364,235.13355 474.00808,237.03777 C 477.01333,240.49675 477.01558,240.49740 476.39683,237.73870 C 475.90832,235.56064 476.09058,235.09753 477.25971,235.54617 C 478.08736,235.86377 479.00299,235.43460 479.33310,234.57433 C 480.20723,232.29639 483.20587,233.77601 482.46241,236.11842 C 481.98827,237.61231 482.37189,238.00000 484.32420,238.00000 C 486.12497,238.00000 486.95423,237.31850 487.42219,235.45401 C 487.77364,234.05372 487.80525,232.49390 487.49243,231.98775 C 487.17961,231.48160 488.98325,231.83081 491.50052,232.76377 C 497.38271,234.94387 498.27450,237.93253 496.64366,250.00000 L 496.03551,254.50000 L 497.02375,250.64596 C 497.56727,248.52624 498.90928,245.53177 500.00599,243.99159 C 501.10270,242.45141 502.00000,240.69823 502.00000,240.09563 C 502.00000,239.49303 502.67500,239.00000 503.50000,239.00000 C 505.30158,239.00000 505.35941,240.29035 503.85075,246.82624 C 502.80654,251.35002 502.89260,252.04801 504.79247,254.46329 C 508.05193,258.60703 509.47901,267.26303 508.00591,273.95453 C 506.02233,282.96490 493.55127,310.59743 488.57872,317.00000 C 487.93798,317.82500 486.81273,319.70364 486.07816,321.17476 C 485.34358,322.64588 480.54965,329.48214 475.42498,336.36645 C 465.26541,350.01444 449.51515,366.55987 438.50000,375.15560 C 429.27941,382.35095 427.28330,383.57968 405.18368,395.66402 C 398.24193,399.45985 388.52416,406.60654 385.68366,410.00481 C 383.23958,412.92882 382.54385,419.35092 384.35913,422.23104 C 385.85316,424.60146 388.15552,436.40392 387.63033,439.00000 C 387.46343,439.82500 386.97641,442.64303 386.54805,445.26230 C 386.11970,447.88156 385.37115,450.27062 384.88461,450.57131 C 383.21414,451.60372 384.00465,452.75918 387.25000,454.02869 C 394.69010,456.93909 396.67306,458.17652 398.29394,460.92045 C 400.41389,464.50924 400.46491,468.20028 398.44847,472.09964 C 396.92083,475.05379 397.26315,479.00000 399.04706,479.00000 C 400.58344,479.00000 403.99960,486.72162 404.00661,490.21016 C 404.01024,492.01957 403.51660,496.87500 402.90963,501.00000 C 401.95065,507.51719 402.08697,510.00697 403.94991,520.00000 C 405.70858,529.43373 406.27751,538.05817 407.11633,568.00000 C 407.67874,588.07500 407.92432,606.19595 407.66208,608.26877 L 407.18528,612.03754 L 415.85159,611.77777 C 423.31702,611.55400 425.04421,611.82853 428.31611,613.75900 C 432.73196,616.36441 435.00000,616.61586 435.00000,614.50000 C 435.00000,612.51354 436.21493,612.60726 439.11514,614.81745 C 442.09702,617.08988 446.32736,618.72109 451.50000,619.59303 C 455.88525,620.33224 461.10196,622.66007 462.20000,624.36765 C 462.58501,624.96638 464.38501,625.99435 466.20000,626.65204 C 468.01500,627.30973 468.71250,627.88208 467.75000,627.92392 C 466.78750,627.96576 466.00000,628.67500 466.00000,629.50000 C 466.00000,630.32500 465.33912,631.00000 464.53138,631.00000 C 463.72365,631.00000 463.27898,631.56343 463.54323,632.25206 C 463.80748,632.94069 463.05321,634.11019 461.86707,634.85095 C 459.80010,636.14179 459.73621,636.06895 460.33022,633.09889 C 461.13832,629.05838 460.48698,629.17152 458.46999,633.42200 C 457.33949,635.80435 457.13334,637.39937 457.79145,638.67200 C 459.53423,642.04215 460.12174,647.90402 458.93834,650.11522 C 457.94671,651.96808 458.17803,652.57480 460.64565,654.59327 L 463.50000,656.92807 L 460.09501,656.96404 C 456.91620,656.99761 456.79522,657.11624 458.27375,658.75000 C 459.14480,659.71250 459.77705,660.95000 459.67874,661.50000 C 459.58043,662.05000 460.55451,662.64930 461.84334,662.83178 C 463.87288,663.11914 464.09706,662.85131 463.51739,660.83178 C 462.91862,658.74572 463.05125,658.79493 464.77604,661.29880 C 466.71389,664.11196 466.71580,669.56042 464.77852,668.36312 C 464.16718,667.98529 464.04796,668.57575 464.46823,669.89989 C 464.94224,671.39337 464.75533,671.96620 463.85635,671.77512 C 463.06625,671.60718 462.13291,673.22982 461.46065,675.94011 C 460.85491,678.38218 459.82847,680.55718 459.17966,680.77345 C 457.81333,681.22889 457.57482,683.00000 458.87981,683.00000 C 459.36371,683.00000 464.97771,672.48923 471.35538,659.64272 C 477.73304,646.79622 483.65707,635.69957 484.51989,634.98349 C 485.83238,633.89422 486.76059,634.05919 490.20198,635.99336 C 492.46431,637.26486 498.56506,639.33221 503.75920,640.58747 C 508.95335,641.84274 513.43597,643.10264 513.72060,643.38726 C 514.00522,643.67189 513.44167,644.70119 512.46826,645.67460 C 511.49485,646.64801 508.48698,652.18194 505.78411,657.97222 C 496.60931,677.62710 496.88268,677.20289 491.61979,679.95137 C 487.47548,682.11569 486.16148,683.58817 482.90582,689.71636 C 480.79725,693.68536 477.91171,700.43536 476.49352,704.71636 C 475.07532,708.99736 473.30917,713.85000 472.56872,715.50000 C 471.82828,717.15000 470.89233,719.62500 470.48884,721.00000 C 469.37995,724.77884 467.94222,726.11644 465.74050,725.41764 C 464.34399,724.97440 463.89599,725.18802 464.21495,726.14506 C 464.49629,726.98920 466.46052,727.57758 469.42524,727.70578 C 472.04253,727.81896 476.73006,728.66671 479.84198,729.58968 C 485.87013,731.37757 487.48218,731.74565 493.00000,732.59403 C 496.36599,733.11156 496.56251,732.96691 498.13250,728.81608 C 500.29277,723.10464 501.62178,716.20492 503.58666,700.50000 C 505.39938,686.01128 507.16059,679.65953 510.35073,676.10569 C 512.60374,673.59581 524.69760,667.51174 531.45163,665.49043 C 533.62502,664.83999 535.72285,663.67605 536.11347,662.90391 C 536.50408,662.13176 538.06497,658.90649 539.58211,655.73665 C 541.52672,651.67368 542.80661,650.09788 543.92027,650.39556 C 549.22711,651.81402 563.08175,654.97103 566.25000,655.48376 C 571.41719,656.31997 570.94760,657.74822 565.25000,658.52524 C 558.67939,659.42132 550.91605,663.44925 548.24423,667.34852 C 547.01372,669.14433 545.36506,672.83807 544.58053,675.55682 C 542.06266,684.28247 538.24444,704.18883 537.01498,715.00000 C 535.32437,729.86617 535.15952,730.83342 533.92254,733.14474 C 533.12137,734.64173 533.11717,735.51717 533.90736,736.30736 C 534.50831,736.90831 535.00689,736.97250 535.01531,736.45000 C 535.02428,735.89368 535.33508,735.91440 535.76531,736.50000 C 536.78718,737.89089 542.89796,740.79600 546.50000,741.60336 C 548.15000,741.97319 549.95000,742.59390 550.50000,742.98272 C 551.05000,743.37153 553.75000,744.28867 556.50000,745.02080 C 559.25000,745.75293 561.81876,746.83149 562.20836,747.41761 C 563.61101,749.52779 565.09512,746.29768 567.03924,736.90338 C 568.10954,731.73152 569.28121,723.11250 569.64294,717.75000 C 570.28475,708.23557 570.24869,708.00000 568.15032,708.00000 C 566.66667,708.00000 566.00000,707.37994 566.00000,706.00000 C 566.00000,703.67315 567.28082,703.42367 569.22832,705.37118 C 570.38989,706.53275 570.87620,705.19517 572.40956,696.62118 C 573.40510,691.05453 574.59049,685.37500 575.04376,684.00000 C 575.49704,682.62500 576.58520,678.91250 577.46189,675.75000 C 578.44188,672.21484 579.60016,670.00000 580.46892,670.00000 C 581.24609,670.00000 582.11974,669.61528 582.41034,669.14507 C 582.70095,668.67486 581.60353,668.33736 579.97164,668.39507 C 578.33975,668.45278 576.99664,668.95000 576.98697,669.50000 C 576.96591,670.69677 575.03736,667.88461 575.01531,666.62500 C 575.00689,666.14375 576.35000,666.02000 578.00000,666.35000 C 579.69231,666.68846 581.00000,666.52500 581.00000,665.97500 C 581.00000,665.43875 580.21250,664.94780 579.25000,664.88400 C 577.73123,664.78332 577.75041,664.70388 579.39515,664.28272 C 580.91787,663.89281 581.01613,663.62384 579.89515,662.91404 C 578.78880,662.21350 578.87448,662.02746 580.30902,662.01531 C 581.30398,662.00689 581.84530,661.55870 581.51195,661.01934 C 581.17348,660.47168 582.69279,659.75295 584.95294,659.39153 C 587.17882,659.03560 589.00000,658.35190 589.00000,657.87219 C 589.00000,656.10454 591.98939,657.07584 594.33519,659.60569 C 595.89263,661.28531 596.99419,661.81841 597.43468,661.10569 C 597.83296,660.46126 597.39813,660.00000 596.39235,660.00000 C 595.44322,660.00000 594.95224,659.71443 595.30127,659.36540 C 595.65030,659.01637 597.22174,659.26342 598.79336,659.91441 C 601.10655,660.87256 601.99651,662.25195 603.46547,667.15588 C 604.46351,670.48770 606.79207,675.19454 608.64004,677.61552 C 612.45585,682.61450 612.94023,686.39587 610.00000,688.23207 C 607.48735,689.80125 607.46925,690.69677 609.93434,691.47916 C 610.99823,691.81683 611.85860,692.85965 611.84628,693.79655 C 611.83395,694.73345 612.53860,697.97500 613.41217,701.00000 C 615.12734,706.93929 614.79046,710.45529 611.97262,716.02462 C 609.79151,720.33548 602.47810,727.27426 594.66594,732.44477 C 585.19728,738.71164 583.02685,743.66294 579.51847,767.00000 C 576.92401,784.25786 572.46085,791.33395 562.36805,794.19098 C 560.24062,794.79320 553.55000,795.30840 547.50000,795.33585 C 537.88321,795.37950 535.62032,795.04716 529.50433,792.69289 C 518.79165,788.56918 514.25938,788.95017 504.50000,794.79480 C 492.66347,801.88337 493.77390,801.58615 466.00000,805.09979 C 454.05599,806.61081 444.73516,805.22032 434.40009,800.38569 C 431.59513,799.07356 428.96443,798.00000 428.55409,798.00000 C 428.14374,798.00000 424.58870,796.47524 420.65400,794.61165 C 416.71930,792.74805 410.57500,789.99836 407.00000,788.50122 C 399.83607,785.50111 387.06957,778.42136 385.50000,776.57826 C 382.93019,773.56059 370.73816,765.83177 367.79399,765.35399 C 365.91804,765.04957 360.83544,765.75702 355.99881,766.99576 C 327.36648,774.32900 295.01176,776.79924 256.23439,774.61263 C 245.67659,774.01729 243.44881,774.16486 240.23439,775.67255 C 235.02030,778.11816 234.00000,779.36020 234.00000,783.26190 C 234.00000,785.13452 233.69362,786.97304 233.31916,787.34750 C 232.71327,787.95340 232.09839,794.32716 232.01881,800.82686 C 231.99271,802.95817 226.96722,811.42328 225.23706,812.25026 C 224.83168,812.44402 223.55387,812.44438 222.39749,812.25105 z M 191.42189,801.13224 C 192.76537,799.99124 193.09220,799.92735 192.50785,800.91994 C 191.87532,801.99436 192.09673,802.17686 193.41774,801.66994 C 194.37795,801.30147 195.57677,801.00000 196.08179,801.00000 C 196.58680,801.00000 197.00000,800.55000 197.00000,800.00000 C 197.00000,799.45000 196.66250,799.09560 196.25000,799.21245 C 195.83750,799.32930 194.49973,798.87002 193.27719,798.19182 C 191.02470,796.94227 166.15313,797.18320 159.50000,798.51901 C 157.85000,798.85030 155.46910,799.33224 154.20910,799.58999 C 152.73410,799.89173 152.17921,800.49338 152.65106,801.27932 C 153.21480,802.21832 153.05117,802.23247 151.94196,801.34066 C 151.11227,800.67358 147.31544,800.21603 143.00000,800.26307 C 136.22953,800.33687 135.88909,800.43010 139.50000,801.22158 C 153.02472,804.18607 187.89680,804.12607 191.42189,801.13224 z M 91.971975,797.03848 C 93.238825,796.23731 93.210660,796.01807 91.769862,795.46518 C 90.849114,795.11186 89.624225,795.11421 89.047887,795.47040 C 88.471549,795.82660 88.000000,795.64148 88.000000,795.05902 C 88.000000,794.47656 87.325000,794.00000 86.500000,794.00000 C 85.253623,794.00000 85.295894,794.32407 86.750000,795.91667 C 88.752852,798.11027 89.890696,798.35470 91.971975,797.03848 z M 113.18750,796.31689 C 112.46563,796.02802 111.60313,796.06354 111.27083,796.39583 C 110.93854,796.72812 111.52917,796.96447 112.58333,796.92105 C 113.74828,796.87307 113.98523,796.63611 113.18750,796.31689 z M 109.18750,795.31689 C 108.46563,795.02802 107.60313,795.06354 107.27083,795.39583 C 106.93854,795.72812 107.52917,795.96447 108.58333,795.92105 C 109.74828,795.87307 109.98523,795.63611 109.18750,795.31689 z M 105.18750,794.31689 C 104.46563,794.02802 103.60313,794.06354 103.27083,794.39583 C 102.93854,794.72812 103.52917,794.96447 104.58333,794.92105 C 105.74828,794.87307 105.98523,794.63611 105.18750,794.31689 z M 101.18750,793.31689 C 100.46563,793.02802 99.603125,793.06354 99.270833,793.39583 C 98.938542,793.72812 99.529167,793.96447 100.58333,793.92105 C 101.74828,793.87307 101.98523,793.63611 101.18750,793.31689 z M 95.000000,791.50000 C 93.624483,789.84260 91.000000,789.46891 91.000000,790.93045 C 91.000000,791.44220 92.012500,792.05591 93.250000,792.29427 C 94.487500,792.53262 95.667600,792.78892 95.872445,792.86382 C 96.077289,792.93872 95.684689,792.32500 95.000000,791.50000 z M 165.75000,784.28375 C 164.23750,784.05462 161.76250,784.05462 160.25000,784.28375 C 158.73750,784.51287 159.97500,784.70034 163.00000,784.70034 C 166.02500,784.70034 167.26250,784.51287 165.75000,784.28375 z M 191.26375,783.29607 C 190.03381,783.05871 187.78381,783.05256 186.26375,783.28242 C 184.74369,783.51227 185.75000,783.70648 188.50000,783.71399 C 191.25000,783.72149 192.49369,783.53343 191.26375,783.29607 z M 167.75000,775.27153 C 165.68750,775.05579 162.31250,775.05579 160.25000,775.27153 C 158.18750,775.48728 159.87500,775.66379 164.00000,775.66379 C 168.12500,775.66379 169.81250,775.48728 167.75000,775.27153 z M 159.18750,772.31689 C 158.46562,772.02802 157.60313,772.06354 157.27083,772.39583 C 156.93854,772.72812 157.52917,772.96447 158.58333,772.92105 C 159.74828,772.87307 159.98523,772.63611 159.18750,772.31689 z M 171.76166,772.31292 C 170.80557,772.06263 169.00557,772.05355 167.76166,772.29274 C 166.51775,772.53193 167.30000,772.73672 169.50000,772.74782 C 171.70000,772.75892 172.71775,772.56321 171.76166,772.31292 z M 470.97057,763.00000 C 471.78269,764.25511 472.47654,763.96123 475.22057,761.19992 C 478.39379,758.00672 478.43522,757.86097 476.50000,756.69992 C 472.47106,754.28272 468.38303,753.15041 463.41678,753.07608 C 460.62101,753.03424 455.84424,752.50007 452.80172,751.88905 C 448.11572,750.94796 446.72925,751.03464 443.73408,752.45595 C 441.78939,753.37876 439.99028,754.92918 439.73606,755.90131 C 439.33980,757.41659 440.06647,757.70089 444.82807,757.89353 C 447.88290,758.01712 450.84044,758.40139 451.40039,758.74745 C 451.96033,759.09352 454.39876,759.25489 456.81911,759.10605 C 459.77740,758.92413 461.00051,759.19016 460.55086,759.91771 C 460.18297,760.51297 460.54602,761.00000 461.35765,761.00000 C 462.16928,761.00000 463.03173,761.56250 463.27421,762.25000 C 463.60284,763.18175 464.57881,763.01827 467.10754,761.60790 C 468.97339,760.56725 469.93750,760.31975 469.25000,761.05790 C 468.56250,761.79606 468.00689,762.87250 468.01531,763.45000 C 468.02373,764.02750 468.47373,763.82500 469.01531,763.00000 C 469.89059,761.66667 470.10784,761.66667 470.97057,763.00000 z M 471.45623,760.92918 C 471.08115,760.32229 471.21530,759.38470 471.75435,758.84565 C 472.39446,758.20554 472.93878,758.39809 473.32354,759.40076 C 474.02313,761.22384 472.43947,762.52009 471.45623,760.92918 z M 493.00000,759.54441 C 493.00000,759.02073 488.72352,752.44250 486.50256,749.54985 C 485.27220,747.94737 483.72912,747.59081 477.84732,747.54985 C 472.33425,747.51145 470.57871,747.84469 470.20779,749.00000 C 469.94291,749.82500 470.06087,750.18943 470.46991,749.80985 C 470.87896,749.43027 473.69656,750.21777 476.73125,751.55985 C 482.74482,754.21934 483.36022,754.39187 482.63244,753.21429 C 482.36536,752.78214 483.01380,752.42857 484.07342,752.42857 C 485.13304,752.42857 486.00000,753.03370 486.00000,753.77330 C 486.00000,754.51290 486.45420,754.83732 487.00933,754.49423 C 487.56446,754.15114 488.80196,755.24674 489.75933,756.92889 C 491.26336,759.57157 493.00000,760.97319 493.00000,759.54441 z M 497.25000,755.33772 C 496.56250,755.06031 496.00000,754.41449 496.00000,753.90257 C 496.00000,752.71748 489.82943,747.06665 488.50000,747.03428 C 487.95000,747.02089 488.69511,748.02020 490.15580,749.25497 C 491.61649,750.48974 493.31982,752.51250 493.94098,753.75000 C 494.56214,754.98750 495.84203,755.96447 496.78518,755.92105 C 497.82810,755.87304 498.01023,755.64448 497.25000,755.33772 z M 175.25000,754.33772 C 174.56250,754.06031 173.43750,754.06031 172.75000,754.33772 C 172.06250,754.61513 172.62500,754.84211 174.00000,754.84211 C 175.37500,754.84211 175.93750,754.61513 175.25000,754.33772 z M 187.25000,753.33772 C 186.56250,753.06031 185.43750,753.06031 184.75000,753.33772 C 184.06250,753.61513 184.62500,753.84211 186.00000,753.84211 C 187.37500,753.84211 187.93750,753.61513 187.25000,753.33772 z M 408.31292,748.14456 C 412.96860,746.30873 400.97998,738.81949 393.81210,739.08595 C 391.53596,739.17057 391.53888,739.18386 394.00000,739.94052 C 395.37500,740.36325 398.23382,741.64268 400.35294,742.78368 C 402.47205,743.92468 404.83455,744.61698 405.60294,744.32213 C 407.26641,743.68379 407.36693,744.44587 405.96482,747.06574 C 404.87495,749.10217 405.34118,749.31637 408.31292,748.14456 z M 412.86168,745.33333 C 412.25307,744.60000 411.58521,744.00000 411.37756,744.00000 C 411.16990,744.00000 411.00000,744.60000 411.00000,745.33333 C 411.00000,746.06667 411.66786,746.66667 412.48412,746.66667 C 413.60751,746.66667 413.69928,746.34258 412.86168,745.33333 z M 493.51815,744.02937 C 493.23519,743.57153 491.61925,742.71432 489.92717,742.12446 C 487.56190,741.29992 486.94970,741.33495 487.27907,742.27599 C 487.51470,742.94920 488.49346,743.35740 489.45410,743.18312 C 490.47896,742.99718 490.93116,743.30237 490.54841,743.92166 C 490.13844,744.58502 490.53359,744.73247 491.61211,744.31861 C 492.86849,743.83649 493.10885,744.01486 492.50954,744.98457 C 491.96083,745.87239 492.07696,746.07047 492.86180,745.58541 C 493.50575,745.18743 493.80111,744.48721 493.51815,744.02937 z M 486.00000,742.03854 C 486.00000,740.88109 480.34558,739.33259 473.50000,738.61533 C 470.75000,738.32719 466.81250,737.78699 464.75000,737.41488 C 462.54175,737.01647 461.00000,737.13472 461.00000,737.70249 C 461.00000,738.23279 461.56250,738.69633 462.25000,738.73258 C 469.05248,739.09130 480.61559,741.14878 485.75000,742.91405 C 485.88750,742.96132 486.00000,742.56734 486.00000,742.03854 z M 436.57460,740.12071 C 436.27571,739.63710 435.01165,738.98448 433.76558,738.67044 C 431.57982,738.11959 431.56839,738.15057 433.44113,739.54974 C 435.59093,741.15590 437.42042,741.48926 436.57460,740.12071 z M 391.00000,739.10699 C 391.00000,738.61583 390.34792,737.96375 389.55093,737.65792 C 388.58241,737.28626 388.28626,737.58241 388.65792,738.55093 C 389.26488,740.13266 391.00000,740.54461 391.00000,739.10699 z M 162.75000,738.31067 C 161.78750,738.05915 160.21250,738.05915 159.25000,738.31067 C 158.28750,738.56220 159.07500,738.76800 161.00000,738.76800 C 162.92500,738.76800 163.71250,738.56220 162.75000,738.31067 z M 184.00000,736.56314 C 193.74787,734.85877 188.05705,734.78469 177.00000,736.47202 C 171.54811,737.30399 169.93440,737.78803 172.50000,737.82181 C 174.70000,737.85078 179.87500,737.28438 184.00000,736.56314 z M 447.91667,732.64068 C 447.68750,732.44305 446.15000,731.97938 444.50000,731.61030 C 442.30908,731.12023 441.90454,731.21300 443.00000,731.95431 C 444.35037,732.86812 448.92015,733.50606 447.91667,732.64068 z M 388.00000,730.00000 C 388.00000,729.45000 387.52344,729.00000 386.94098,729.00000 C 386.35852,729.00000 386.16008,729.45000 386.50000,730.00000 C 386.83992,730.55000 387.31648,731.00000 387.55902,731.00000 C 387.80156,731.00000 388.00000,730.55000 388.00000,730.00000 z M 426.44917,728.33917 C 425.44188,727.60263 424.21278,727.00000 423.71782,727.00000 C 422.50071,727.00000 411.00000,718.88693 411.00000,718.02833 C 411.00000,717.65330 408.97500,715.14081 406.50000,712.44502 C 404.02500,709.74923 402.00689,707.98378 402.01531,708.52180 C 402.03724,709.92231 403.78555,712.50000 404.71353,712.50000 C 405.14609,712.50000 405.37635,712.87095 405.22522,713.32433 C 405.07410,713.77771 405.37920,713.88368 405.90323,713.55981 C 406.42726,713.23594 407.14378,713.87766 407.49551,714.98586 C 408.83063,719.19244 422.14257,730.64796 424.21054,729.36988 C 424.64474,729.10153 425.00000,729.34440 425.00000,729.90960 C 425.00000,730.47480 425.73813,730.65398 426.64030,730.30779 C 428.12224,729.73911 428.10379,729.54906 426.44917,728.33917 z M 88.662281,716.75000 C 88.384868,716.06250 88.157895,716.62500 88.157895,718.00000 C 88.157895,719.37500 88.384868,719.93750 88.662281,719.25000 C 88.939693,718.56250 88.939693,717.43750 88.662281,716.75000 z M 428.66667,716.50000 C 428.66667,715.63649 427.78265,715.01350 426.58333,715.03180 C 424.53648,715.06305 424.53399,715.08932 426.44113,716.53180 C 428.80581,718.32036 428.66667,718.32234 428.66667,716.50000 z M 433.43524,717.10478 C 433.73954,716.61242 433.31610,715.95154 432.49426,715.63617 C 431.58660,715.28787 431.00000,715.63930 431.00000,716.53138 C 431.00000,718.14877 432.56262,718.51671 433.43524,717.10478 z M 437.00000,715.44098 C 437.00000,715.19844 436.55000,715.00000 436.00000,715.00000 C 435.45000,715.00000 435.00000,715.47656 435.00000,716.05902 C 435.00000,716.64148 435.45000,716.83992 436.00000,716.50000 C 436.55000,716.16008 437.00000,715.68352 437.00000,715.44098 z M 97.000000,711.00000 C 96.175000,710.46684 94.825000,710.05536 94.000000,710.08560 C 93.010945,710.12185 93.181260,710.43332 94.500000,711.00000 C 97.249085,712.18132 98.827966,712.18132 97.000000,711.00000 z M 411.18750,711.31689 C 410.46562,711.02802 409.60312,711.06354 409.27083,711.39583 C 408.93854,711.72812 409.52917,711.96447 410.58333,711.92105 C 411.74828,711.87307 411.98523,711.63611 411.18750,711.31689 z M 112.36163,708.50000 C 112.04504,707.67500 111.32907,707.00000 110.77057,707.00000 C 110.18526,707.00000 110.28245,707.63541 111.00000,708.50000 C 111.68469,709.32500 112.40067,710.00000 112.59106,710.00000 C 112.78145,710.00000 112.67821,709.32500 112.36163,708.50000 z M 445.80687,702.47354 C 445.49898,702.16565 444.93982,702.72065 444.56429,703.70687 C 444.02161,705.13207 444.13647,705.24693 445.12409,704.26667 C 445.80751,703.58833 446.11476,702.78143 445.80687,702.47354 z M 364.32974,702.33692 C 364.69443,701.97223 363.63356,700.84723 361.97224,699.83692 C 357.94640,697.38867 357.59512,697.51914 360.18695,700.50000 C 362.45337,703.10662 363.22009,703.44658 364.32974,702.33692 z M 452.50000,692.00000 C 452.16008,691.45000 451.68352,691.00000 451.44098,691.00000 C 451.19844,691.00000 451.00000,691.45000 451.00000,692.00000 C 451.00000,692.55000 451.47656,693.00000 452.05902,693.00000 C 452.64148,693.00000 452.83992,692.55000 452.50000,692.00000 z M 358.18333,687.78333 C 357.46577,687.06577 357.00000,687.00673 357.00000,687.63333 C 357.00000,688.96811 358.18261,690.15072 358.85000,689.48333 C 359.13417,689.19917 358.83417,688.43417 358.18333,687.78333 z M 356.60417,683.27083 C 355.58765,682.25432 354.74892,683.78472 355.58295,685.13421 C 356.21298,686.15363 356.44853,686.15442 356.78725,685.13825 C 357.01885,684.44346 356.93646,683.60312 356.60417,683.27083 z M 355.00000,681.10699 C 355.00000,680.61583 354.34792,679.96375 353.55093,679.65792 C 352.58241,679.28626 352.28626,679.58241 352.65792,680.55093 C 353.26488,682.13266 355.00000,682.54461 355.00000,681.10699 z M 420.89936,679.16284 C 421.33052,678.46521 422.09204,678.00544 422.59164,678.14113 C 423.09124,678.27682 426.77537,675.20249 430.77860,671.30928 C 437.32891,664.93900 438.17505,663.66886 439.23503,658.61536 C 439.88284,655.52691 440.76997,653.00000 441.20643,653.00000 C 441.64290,653.00000 442.00655,651.98750 442.01455,650.75000 C 442.02256,649.51250 442.66107,646.68698 443.43347,644.47107 C 444.32905,641.90175 444.57202,639.18463 444.10414,636.97107 C 443.38116,633.55070 443.35962,633.57903 442.62948,638.91053 C 442.22196,641.88633 441.23861,645.24896 440.44426,646.38304 C 439.64992,647.51712 439.00000,649.65738 439.00000,651.13917 C 439.00000,652.62096 438.52562,653.99146 437.94582,654.18473 C 437.36601,654.37800 436.45517,656.47867 435.92172,658.85290 C 435.27080,661.74992 433.89955,664.04623 431.75243,665.83484 C 429.99278,667.30068 427.83515,669.17500 426.95770,670.00000 C 423.80205,672.96701 418.83116,676.16450 418.26085,675.59419 C 417.32143,674.65477 421.23842,670.83474 424.60128,669.41070 C 426.30699,668.68841 429.32953,666.47047 431.31805,664.48195 C 434.25537,661.54463 434.73252,660.54457 433.86187,659.15042 C 433.04136,657.83658 433.28422,656.55481 434.89809,653.68145 C 436.05743,651.61733 437.40259,648.25709 437.88733,646.21425 C 438.37207,644.17141 439.09386,641.71250 439.49132,640.75000 C 439.92408,639.70204 439.76989,639.00000 439.10699,639.00000 C 438.49814,639.00000 438.00000,639.48846 438.00000,640.08546 C 438.00000,640.68246 436.41326,644.39179 434.47391,648.32841 C 431.94306,653.46569 431.11646,656.25375 431.54532,658.20634 C 432.08429,660.66027 431.47455,661.41569 425.32142,665.91721 C 418.31982,671.03944 415.46985,674.33318 416.54045,676.06545 C 416.87497,676.60671 416.77771,676.98511 416.32433,676.90636 C 414.08235,676.51689 413.00000,677.18007 413.00000,678.94322 C 413.00000,680.54603 413.62324,680.84657 416.55772,680.65884 C 418.51447,680.53366 420.46821,679.86046 420.89936,679.16284 z M 391.50000,675.00000 C 391.16008,674.45000 390.43197,674.00000 389.88197,674.00000 C 389.33197,674.00000 389.16008,674.45000 389.50000,675.00000 C 389.83992,675.55000 390.56803,676.00000 391.11803,676.00000 C 391.66803,676.00000 391.83992,675.55000 391.50000,675.00000 z M 384.67847,667.97538 C 384.17142,664.65286 382.92649,664.45213 383.17649,667.73321 C 383.30760,669.45384 383.76524,670.64509 384.19347,670.38043 C 384.62170,670.11577 384.83995,669.03350 384.67847,667.97538 z M 391.99769,663.00000 C 394.21372,663.00000 395.48257,661.41628 394.00043,660.50027 C 393.03165,659.90153 395.64389,654.10948 396.96561,653.92569 C 402.24381,653.19173 406.12059,650.15720 411.00000,642.94034 C 411.82500,641.72013 413.41257,639.54688 414.52793,638.11089 C 418.27809,633.28269 422.00000,627.40119 422.00000,626.30324 C 422.00000,625.70414 421.34505,624.96265 420.54456,624.65547 C 419.55546,624.27592 417.57905,626.36845 414.37616,631.18628 C 411.78403,635.08540 408.50148,639.50354 407.08160,641.00438 C 392.50091,656.41645 387.01884,663.23473 387.00659,665.97251 C 387.00224,666.94448 387.52915,666.68954 388.55670,665.22251 C 389.41289,664.00013 390.96133,663.00000 391.99769,663.00000 z M 419.07895,626.58333 C 419.03553,625.52917 419.27188,624.93854 419.60417,625.27083 C 419.93646,625.60312 419.97198,626.46563 419.68311,627.18750 C 419.36389,627.98523 419.12693,627.74828 419.07895,626.58333 z M 392.45729,654.93090 C 391.60006,653.54386 391.00000,653.80249 391.00000,655.55902 C 391.00000,656.41648 391.45734,656.83538 392.01631,656.48992 C 392.57528,656.14446 392.77373,655.44290 392.45729,654.93090 z M 352.63569,653.50616 C 354.21106,652.68455 355.05000,651.96171 354.50000,651.89986 C 349.38356,651.32447 346.00000,652.17447 346.00000,654.03518 C 346.00000,655.47195 349.38372,655.20218 352.63569,653.50616 z M 359.00000,636.58179 C 359.00000,636.35177 359.30925,635.33927 359.68723,634.33179 C 360.29219,632.71928 360.17248,632.66430 358.68723,633.87244 C 356.81292,635.39707 356.46070,637.00000 358.00000,637.00000 C 358.55000,637.00000 359.00000,636.81180 359.00000,636.58179 z M 381.99733,629.99501 C 381.44288,628.95902 380.53432,627.83023 379.97831,627.48660 C 377.62456,626.03190 380.51593,625.03312 385.64027,625.53077 C 389.93165,625.94753 391.01386,625.78128 390.50549,624.78337 C 390.14590,624.07752 390.49716,624.28749 391.28606,625.24997 C 392.13629,626.28726 394.71182,627.22476 397.61022,627.55197 L 402.50000,628.10399 L 399.21200,626.25667 C 397.40360,625.24063 396.23688,624.09645 396.61930,623.71404 C 397.00171,623.33162 394.43131,623.26903 390.90730,623.57494 C 387.38328,623.88086 379.97694,624.13231 374.44875,624.13373 C 364.07853,624.13638 359.53716,625.16505 364.45097,626.39834 C 365.90352,626.76291 367.48352,626.81920 367.96207,626.52344 C 369.34494,625.66878 374.24459,627.90418 375.77379,630.08743 C 376.69845,631.40756 377.81679,631.87554 379.08501,631.47302 C 380.19799,631.11977 381.00000,631.33697 381.00000,631.99163 C 381.00000,632.61115 381.45122,632.83917 382.00270,632.49833 C 382.67243,632.08442 382.67064,631.25311 381.99733,629.99501 z M 443.60417,629.27083 C 443.27188,628.93854 443.03553,629.52917 443.07895,630.58333 C 443.12693,631.74828 443.36389,631.98523 443.68311,631.18750 C 443.97198,630.46563 443.93646,629.60312 443.60417,629.27083 z M 424.16374,619.81147 C 424.00970,615.88003 422.83759,614.03063 420.50000,614.03063 C 419.91750,614.03063 419.95622,614.33736 420.59275,614.76531 C 422.18049,615.83279 423.14636,621.79151 421.86048,622.58623 C 421.13452,623.03490 421.21676,623.51593 422.11428,624.07063 C 424.01240,625.24373 424.34918,624.54385 424.16374,619.81147 z M 436.00000,618.94098 C 436.00000,618.35852 435.55000,618.16008 435.00000,618.50000 C 434.45000,618.83992 434.00000,619.31648 434.00000,619.55902 C 434.00000,619.80156 434.45000,620.00000 435.00000,620.00000 C 435.55000,620.00000 436.00000,619.52344 436.00000,618.94098 z M 418.49292,613.01145 C 418.84326,612.44459 418.44186,612.27695 417.55194,612.61844 C 415.81952,613.28323 415.50255,614.00000 416.94098,614.00000 C 417.45852,614.00000 418.15690,613.55515 418.49292,613.01145 z M 304.00000,519.05902 C 304.00000,518.54148 303.50762,517.81373 302.90583,517.44180 C 302.30404,517.06987 302.01663,515.69331 302.26716,514.38278 C 302.78960,511.64982 302.41169,511.52957 298.70717,513.25000 C 295.37698,514.79659 295.29622,515.78193 298.40286,516.96307 C 299.72443,517.46553 301.10099,518.35439 301.46188,518.93832 C 302.27419,520.25267 304.00000,520.33474 304.00000,519.05902 z M 317.84164,515.75836 C 318.83050,514.76950 319.25654,514.79706 319.93431,515.89371 C 320.54494,516.88173 321.59246,517.04122 323.64267,516.45832 C 325.21420,516.01151 327.48822,515.52943 328.69604,515.38703 C 329.90387,515.24463 331.86468,514.60760 333.05340,513.97142 C 334.61645,513.13490 335.51717,513.11717 336.30736,513.90736 C 337.90786,515.50786 340.08194,515.24297 341.70258,513.25000 C 342.73811,511.97657 343.26739,511.84040 343.64615,512.75000 C 344.29831,514.31614 349.07339,514.35790 354.13398,512.84171 C 358.09493,511.65498 358.87969,510.66172 356.84830,509.40624 C 356.21486,509.01476 355.15275,509.43820 354.48805,510.34722 C 353.00542,512.37485 349.00000,512.53987 349.00000,510.57332 C 349.00000,509.78865 349.56250,508.95324 350.25000,508.71685 C 350.93750,508.48046 350.60000,508.44132 349.50000,508.62987 C 348.40000,508.81842 344.91250,508.97884 341.75000,508.98635 C 337.31162,508.99689 336.00000,509.34216 336.00000,510.50000 C 336.00000,511.69411 334.41956,512.02416 328.25000,512.11848 C 323.98750,512.18365 319.93750,512.16392 319.25000,512.07465 C 318.56250,511.98537 318.00000,512.38205 318.00000,512.95616 C 318.00000,513.53027 317.10000,514.00000 316.00000,514.00000 C 314.90000,514.00000 314.00000,513.65985 314.00000,513.24411 C 314.00000,512.82837 312.56292,511.85211 310.80649,511.07464 C 308.44981,510.03147 307.51083,509.96750 307.22316,510.83053 C 307.00875,511.47374 306.19583,512.00000 305.41667,512.00000 C 304.63750,512.00000 304.00000,512.67500 304.00000,513.50000 C 304.00000,515.48826 304.97151,515.39626 306.63976,513.25000 C 307.93523,511.58333 308.06477,511.58333 309.36024,513.25000 C 310.10838,514.21250 311.43182,515.00000 312.30123,515.00000 C 313.17063,515.00000 314.16008,515.45000 314.50000,516.00000 C 315.32445,517.33399 316.33941,517.26059 317.84164,515.75836 z M 240.00000,515.00000 C 240.00000,514.45000 239.55000,514.00000 239.00000,514.00000 C 238.45000,514.00000 238.00000,514.45000 238.00000,515.00000 C 238.00000,515.55000 238.45000,516.00000 239.00000,516.00000 C 239.55000,516.00000 240.00000,515.55000 240.00000,515.00000 z M 212.08333,510.00000 C 214.23750,510.00000 216.00000,509.55000 216.00000,509.00000 C 216.00000,508.45000 213.75000,508.00000 211.00000,508.00000 C 208.25000,508.00000 206.00000,508.18820 206.00000,508.41821 C 206.00000,509.95142 207.43166,512.20502 207.76685,511.19944 C 207.98698,510.53907 209.92694,510.00000 212.08333,510.00000 z M 245.00000,508.94098 C 245.00000,508.35852 244.55000,508.16008 244.00000,508.50000 C 243.45000,508.83992 243.00000,509.31648 243.00000,509.55902 C 243.00000,509.80156 243.45000,510.00000 244.00000,510.00000 C 244.55000,510.00000 245.00000,509.52344 245.00000,508.94098 z M 284.57508,506.14467 C 289.22439,506.38534 289.76749,506.83251 287.80000,508.80000 C 286.86667,509.73333 286.97778,510.00000 288.30000,510.00000 C 289.23500,510.00000 290.00000,509.55000 290.00000,509.00000 C 290.00000,508.45000 290.90000,508.00000 292.00000,508.00000 C 293.10000,508.00000 294.00000,508.45000 294.00000,509.00000 C 294.00000,509.55000 294.48032,510.00000 295.06739,510.00000 C 295.67302,510.00000 295.89332,509.02665 295.57662,507.75000 C 295.26963,506.51250 295.25751,506.00461 295.54968,506.62135 C 295.92804,507.42002 302.61577,507.61997 318.79045,507.31618 C 344.93010,506.82523 346.00000,506.69409 346.00000,503.98095 C 346.00000,500.46836 350.76231,502.02788 352.22009,506.01786 C 352.60632,507.07497 353.07241,506.71940 353.84543,504.77793 C 354.47890,503.18695 355.98277,501.79144 357.46463,501.41952 C 358.85908,501.06954 360.00000,500.20945 360.00000,499.50822 C 360.00000,498.80700 360.90000,497.99791 362.00000,497.71025 C 364.37891,497.08815 364.88641,492.00000 362.56955,492.00000 C 361.78280,492.00000 360.94409,490.98750 360.70573,489.75000 C 360.33416,487.82085 360.25294,487.89216 360.13618,490.25000 C 359.97461,493.51266 358.96280,493.72136 356.50000,491.00000 C 354.77402,489.09282 354.77138,488.91011 356.44297,487.06301 C 358.63920,484.63622 357.67046,482.57082 355.00505,483.99730 C 352.47056,485.35372 352.00000,485.26660 352.00000,483.44098 C 352.00000,482.58352 351.57132,482.14691 351.04737,482.47072 C 349.91428,483.17101 343.15015,484.08685 337.33318,484.32757 C 335.04143,484.42241 332.82893,484.83750 332.41651,485.25000 C 332.00410,485.66250 330.16056,486.00000 328.31976,486.00000 C 326.47897,486.00000 324.02017,486.56250 322.85578,487.25000 C 321.27066,488.18591 320.63211,488.20740 320.31452,487.33553 C 320.03953,486.58059 318.94250,486.43043 317.19518,486.90858 C 315.71283,487.31421 310.22500,487.74830 305.00000,487.87323 C 299.77500,487.99815 294.04630,488.55977 292.26955,489.12128 C 290.49280,489.68279 288.66565,489.91139 288.20920,489.62929 C 287.75275,489.34719 285.51174,489.59042 283.22918,490.16980 C 280.25132,490.92566 278.16864,490.90584 275.85595,490.09963 C 274.08324,489.48166 272.37795,489.31894 272.06642,489.73802 C 271.26280,490.81909 267.81418,492.95257 265.75000,493.64566 C 263.60951,494.36438 263.43583,496.00000 265.50000,496.00000 C 266.32500,496.00000 267.00000,495.52284 267.00000,494.93963 C 267.00000,494.32581 268.57921,494.00997 270.75000,494.18963 C 274.41263,494.49277 274.50734,494.60253 274.81487,498.90089 C 275.01869,501.74962 274.66600,503.59070 273.81487,504.12096 C 272.91192,504.68351 273.53532,505.14875 275.80481,505.60604 C 277.88942,506.02606 278.93022,506.73946 278.62372,507.53820 C 278.35646,508.23465 278.44430,509.11618 278.81890,509.49717 C 279.19351,509.87815 279.64629,509.22816 279.82508,508.05274 C 280.10713,506.19853 280.73592,505.94594 284.57508,506.14467 z M 341.27083,503.39583 C 341.60312,503.06354 342.46562,503.02802 343.18750,503.31689 C 343.98523,503.63611 343.74828,503.87307 342.58333,503.92105 C 341.52917,503.96447 340.93854,503.72812 341.27083,503.39583 z M 289.73557,500.40223 C 288.83413,499.50080 290.07537,496.92855 291.10478,497.56476 C 291.59715,497.86906 292.00000,498.76648 292.00000,499.55902 C 292.00000,501.03161 290.80859,501.47526 289.73557,500.40223 z M 295.15789,499.00000 C 295.15789,497.62500 295.38487,497.06250 295.66228,497.75000 C 295.93969,498.43750 295.93969,499.56250 295.66228,500.25000 C 295.38487,500.93750 295.15789,500.37500 295.15789,499.00000 z M 341.00000,487.00000 C 341.00000,486.45000 341.19844,486.00000 341.44098,486.00000 C 341.68352,486.00000 342.16008,486.45000 342.50000,487.00000 C 342.83992,487.55000 342.64148,488.00000 342.05902,488.00000 C 341.47656,488.00000 341.00000,487.55000 341.00000,487.00000 z M 197.65492,504.54313 C 197.32924,503.69441 196.58281,503.00000 195.99620,503.00000 C 195.25664,503.00000 195.27186,503.63946 196.04584,505.08565 C 197.28714,507.40504 198.58520,506.96739 197.65492,504.54313 z M 359.60417,504.27083 C 358.58765,503.25432 357.74892,504.78472 358.58295,506.13421 C 359.21298,507.15363 359.44853,507.15442 359.78725,506.13825 C 360.01885,505.44346 359.93646,504.60312 359.60417,504.27083 z M 225.17319,504.37062 C 227.71612,503.95014 228.68540,503.34375 228.32323,502.39994 C 227.95073,501.42923 227.29078,501.30920 226.03152,501.98313 C 225.05882,502.50371 223.97880,502.64547 223.63148,502.29815 C 223.28417,501.95083 223.00000,502.19167 223.00000,502.83333 C 223.00000,503.47500 222.32500,504.00000 221.50000,504.00000 C 220.57634,504.00000 220.00000,503.06211 220.00000,501.55902 C 220.00000,498.66348 218.94898,497.79323 216.95225,499.03547 C 215.77168,499.76995 215.72942,500.30920 216.72635,501.91805 C 217.88080,503.78109 217.64628,503.91861 212.72635,504.26358 C 208.07848,504.58947 208.27479,504.64929 214.50000,504.80401 C 218.35000,504.89970 223.15294,504.70467 225.17319,504.37062 z M 267.00000,503.00000 C 267.00000,502.45000 266.32500,502.00000 265.50000,502.00000 C 264.67500,502.00000 264.00000,502.45000 264.00000,503.00000 C 264.00000,503.55000 264.67500,504.00000 265.50000,504.00000 C 266.32500,504.00000 267.00000,503.55000 267.00000,503.00000 z M 272.00000,502.58333 C 272.00000,501.80417 271.43750,500.90417 270.75000,500.58333 C 269.75000,500.11667 269.75000,499.88333 270.75000,499.41667 C 272.38976,498.65144 272.36589,496.00000 270.71924,496.00000 C 269.27210,496.00000 267.13108,500.89323 267.75683,502.77049 C 268.32692,504.48076 272.00000,504.31875 272.00000,502.58333 z M 212.42857,500.42857 C 214.81242,498.04473 214.36919,496.00000 211.46862,496.00000 C 210.07635,496.00000 208.67306,495.31159 208.35019,494.47020 C 207.99902,493.55507 207.06008,493.16354 206.01334,493.49577 C 204.85562,493.86321 203.70537,493.19929 202.61402,491.53367 L 200.96451,489.01620 L 197.98225,491.67340 C 194.69238,494.60468 194.21436,496.00000 196.50000,496.00000 C 197.32500,496.00000 198.00000,495.55000 198.00000,495.00000 C 198.00000,494.45000 198.46973,494.00000 199.04384,494.00000 C 199.61795,494.00000 199.95545,494.78750 199.79384,495.75000 C 199.55854,497.15134 200.34675,497.56126 203.75000,497.80750 C 207.18587,498.05609 208.00000,498.48710 208.00000,500.05750 C 208.00000,502.40004 210.26713,502.59001 212.42857,500.42857 z M 161.98469,492.75000 C 161.97307,490.28378 161.73560,489.86174 161.00000,491.00000 C 159.72980,492.96549 159.72980,496.00000 161.00000,496.00000 C 161.55000,496.00000 161.99311,494.53750 161.98469,492.75000 z M 365.60417,488.27083 C 365.27188,487.93854 365.03553,488.52917 365.07895,489.58333 C 365.12693,490.74828 365.36389,490.98523 365.68311,490.18750 C 365.97198,489.46562 365.93646,488.60312 365.60417,488.27083 z M 311.67857,479.16902 C 317.60573,479.04653 320.28973,478.56741 321.42857,477.42857 C 323.75244,475.10471 323.38503,474.15125 319.44090,472.27043 C 316.77452,470.99892 315.69744,470.87152 315.14678,471.76250 C 314.74252,472.41661 313.08161,472.92680 311.45588,472.89624 C 309.83015,472.86569 305.35000,473.13055 301.50000,473.48483 C 297.65000,473.83910 284.86239,474.21244 273.08309,474.31448 C 258.23658,474.44308 251.55102,474.84568 251.29082,475.62679 C 251.08438,476.24653 251.72199,477.12456 252.70774,477.57796 C 255.71571,478.96153 284.34407,479.73394 311.67857,479.16902 z M 389.44330,470.77749 C 390.29948,469.55512 391.00000,467.98869 391.00000,467.29655 C 391.00000,465.14559 386.43638,464.72481 382.85770,466.54580 C 378.49887,468.76378 378.66746,468.51012 379.95416,470.91435 C 381.53855,473.87481 387.33238,473.79125 389.44330,470.77749 z M 185.00000,447.44098 C 185.00000,447.19844 184.55000,447.00000 184.00000,447.00000 C 183.45000,447.00000 183.00000,447.47656 183.00000,448.05902 C 183.00000,448.64148 183.45000,448.83992 184.00000,448.50000 C 184.55000,448.16008 185.00000,447.68352 185.00000,447.44098 z M 185.25000,445.33772 C 184.56250,445.06031 183.43750,445.06031 182.75000,445.33772 C 182.06250,445.61513 182.62500,445.84211 184.00000,445.84211 C 185.37500,445.84211 185.93750,445.61513 185.25000,445.33772 z M 178.18750,444.31689 C 177.46562,444.02802 176.60313,444.06354 176.27083,444.39583 C 175.93854,444.72812 176.52917,444.96447 177.58333,444.92105 C 178.74828,444.87307 178.98523,444.63611 178.18750,444.31689 z M 189.44113,442.46820 C 190.50875,441.66069 190.95875,441.01431 190.44113,441.03180 C 189.92351,441.04930 188.62649,441.72430 187.55887,442.53180 C 186.49125,443.33931 186.04125,443.98569 186.55887,443.96820 C 187.07649,443.95070 188.37351,443.27570 189.44113,442.46820 z M 324.25000,428.64846 C 326.86250,428.56681 329.00000,428.16250 329.00000,427.75000 C 329.00000,426.49665 331.79678,426.91301 332.35863,428.25000 C 332.73097,429.13605 333.21639,428.97269 334.02581,427.68896 C 334.90172,426.29977 335.87610,426.03351 338.20895,426.54589 C 340.31548,427.00856 341.03995,426.87365 340.56609,426.10693 C 340.11109,425.37073 341.17442,425.00000 343.74098,425.00000 C 345.86344,425.00000 348.06053,424.53947 348.62341,423.97659 C 349.18628,423.41372 350.64575,422.76081 351.86666,422.52568 C 360.76344,420.81232 371.97470,415.07053 374.22705,411.07394 C 378.31462,403.82089 369.50116,397.67155 362.69331,403.02661 C 359.33899,405.66511 354.65109,407.58637 344.12337,410.63718 C 327.16102,415.55268 313.11956,417.52777 286.00000,418.81289 C 273.70597,419.39547 271.53771,419.73579 271.74788,421.04988 C 272.07372,423.08721 266.77894,424.97522 260.42900,425.08595 C 253.06360,425.21439 258.54879,426.59797 269.38968,427.34618 C 274.17000,427.67611 278.85041,428.41496 279.79059,428.98808 C 280.91477,429.67336 288.00481,429.81901 300.50000,429.41351 C 310.95000,429.07438 321.63750,428.73011 324.25000,428.64846 z M 251.18750,424.31689 C 250.46562,424.02802 249.60313,424.06354 249.27083,424.39583 C 248.93854,424.72812 249.52917,424.96447 250.58333,424.92105 C 251.74828,424.87307 251.98523,424.63611 251.18750,424.31689 z M 207.00000,419.51905 C 207.00000,418.01362 209.87822,416.99988 213.50000,417.22967 C 218.80300,417.56613 224.06781,416.91873 223.50000,416.00000 C 223.16008,415.45000 223.35852,415.00000 223.94098,415.00000 C 224.52344,415.00000 225.00000,414.64967 225.00000,414.22149 C 225.00000,413.79331 221.73750,412.60454 217.75000,411.57978 C 213.76250,410.55502 206.39100,408.04047 201.36890,405.99189 C 196.34679,403.94331 190.60929,401.96168 188.61890,401.58828 C 185.45857,400.99540 185.00000,401.15818 185.00000,402.87290 C 185.00000,406.06915 186.06752,407.91132 187.58276,407.32987 C 188.36224,407.03075 189.00000,407.34706 189.00000,408.03277 C 189.00000,410.37109 195.91736,414.50710 199.16141,414.10846 C 200.07519,413.99617 201.11424,414.37583 201.47043,414.95215 C 201.84667,415.56092 201.15049,416.03308 199.80902,416.07895 C 197.65549,416.15258 197.68519,416.22553 200.25000,417.16228 C 201.76250,417.71469 203.00000,418.80417 203.00000,419.58333 C 203.00000,420.36250 203.90000,421.00000 205.00000,421.00000 C 206.10000,421.00000 207.00000,420.33357 207.00000,419.51905 z M 220.00000,414.00000 C 220.00000,413.45000 220.19844,413.00000 220.44098,413.00000 C 220.68352,413.00000 221.16008,413.45000 221.50000,414.00000 C 221.83992,414.55000 221.64148,415.00000 221.05902,415.00000 C 220.47656,415.00000 220.00000,414.55000 220.00000,414.00000 z M 285.27985,403.19594 C 284.36597,400.33817 283.29042,398.00000 282.88973,398.00000 C 282.07873,398.00000 283.67406,404.47714 285.18912,407.33565 C 286.93248,410.62491 286.97886,408.50888 285.27985,403.19594 z M 280.85016,405.00000 C 280.27496,403.35000 279.62337,402.00000 279.40217,402.00000 C 279.18098,402.00000 279.00000,403.35000 279.00000,405.00000 C 279.00000,406.95210 279.50578,408.00000 280.44798,408.00000 C 281.62258,408.00000 281.69851,407.43360 280.85016,405.00000 z M 184.25000,399.33772 C 182.11868,398.47771 182.86688,396.94237 185.93921,395.87135 C 187.95511,395.16860 188.69605,394.37151 188.29789,393.33391 C 187.83584,392.12983 187.10853,392.42993 184.73406,394.80440 C 181.90783,397.63063 181.70322,400.09378 184.30902,399.92105 C 185.16777,399.86413 185.15131,399.70140 184.25000,399.33772 z M 372.97994,393.47583 C 372.28422,392.63754 371.45466,392.21201 371.13646,392.53021 C 370.81826,392.84840 371.21989,393.52739 372.02896,394.03906 C 374.14593,395.37787 374.42254,395.21405 372.97994,393.47583 z M 340.50000,390.00000 C 341.49549,388.90000 342.08498,388.00000 341.80998,388.00000 C 341.53498,388.00000 340.49549,388.90000 339.50000,390.00000 C 338.50451,391.10000 337.91502,392.00000 338.19002,392.00000 C 338.46502,392.00000 339.50451,391.10000 340.50000,390.00000 z M 350.46942,375.25000 C 355.93238,367.94752 363.97248,353.05392 363.99139,350.20169 C 363.99613,349.48763 364.90000,347.04060 366.00000,344.76386 C 367.10000,342.48713 368.00000,340.07136 368.00000,339.39550 C 368.00000,338.71964 368.56250,337.93843 369.25000,337.65946 C 370.22028,337.26576 370.19496,336.93854 369.13685,336.19718 C 368.38130,335.66782 368.21566,335.07671 368.76523,334.87105 C 369.31058,334.66697 370.08461,332.98120 370.48532,331.12489 C 370.99625,328.75791 370.88323,327.95413 370.10693,328.43391 C 369.49812,328.81018 369.00000,329.79303 369.00000,330.61803 C 369.00000,331.44303 368.55000,331.83992 368.00000,331.50000 C 367.40426,331.13181 367.00000,332.33341 367.00000,334.47237 C 367.00000,336.74135 366.44793,338.27462 365.50000,338.63837 C 364.67500,338.95496 364.00000,339.83437 364.00000,340.59263 C 364.00000,341.75614 361.01325,347.87372 356.23363,356.50000 C 355.10576,358.53557 351.54365,366.46992 349.72388,371.00000 C 346.41019,379.24897 345.72754,379.99933 341.52260,380.01474 C 337.55539,380.02928 337.53443,380.04859 340.00000,381.41669 C 341.37500,382.17966 342.98862,382.84803 343.58583,382.90195 C 344.18304,382.95588 347.28065,379.51250 350.46942,375.25000 z M 294.77884,377.16347 C 294.99215,376.52356 295.60572,376.00000 296.14235,376.00000 C 296.67898,376.00000 296.89024,376.36858 296.61183,376.81906 C 296.33342,377.26954 297.54436,377.40772 299.30281,377.12613 C 301.06127,376.84454 301.77994,376.45596 300.89987,376.26262 C 299.54057,375.96398 299.20101,373.32164 298.64367,358.70554 C 298.28283,349.24249 297.29491,338.35000 296.44829,334.50000 C 295.60166,330.65000 294.52112,323.82323 294.04708,319.32941 C 292.99065,309.31466 292.37524,307.27119 290.03915,306.02095 C 287.55197,304.68985 283.91625,307.64172 281.53276,312.92734 C 280.52268,315.16730 279.36708,317.00000 278.96476,317.00000 C 277.44303,317.00000 277.19706,321.30708 278.50680,325.01927 C 279.25562,327.14167 280.82736,333.51808 281.99956,339.18908 C 283.17175,344.86009 284.96856,352.42500 285.99247,356.00000 C 289.18483,367.14613 290.33433,375.17534 288.86749,376.08189 C 288.16789,376.51427 287.23651,376.64617 286.79775,376.37500 C 285.96072,375.85769 285.66981,377.33647 286.45428,378.12094 C 287.40939,379.07605 294.40970,378.27090 294.77884,377.16347 z M 413.16923,349.47586 C 423.16052,347.07044 427.00000,345.75379 427.00000,344.73295 C 427.00000,344.21214 427.69837,344.05401 428.55194,344.38156 C 429.44186,344.72305 429.84326,344.55541 429.49292,343.98855 C 429.15690,343.44485 429.47102,342.98750 430.19098,342.97222 C 430.91094,342.95694 432.81250,341.60694 434.41667,339.97222 C 437.56609,336.76281 440.08136,335.88756 437.92903,338.75000 C 437.20531,339.71250 438.83771,338.07471 441.55659,335.11046 C 444.27546,332.14622 448.38693,327.74372 450.69319,325.32714 C 452.99944,322.91056 455.16727,320.04835 455.51058,318.96668 C 456.08551,317.15521 457.22213,316.54117 459.32433,316.90636 C 459.77771,316.98511 459.86365,316.58840 459.51531,316.02478 C 459.16697,315.46115 459.30974,315.00000 459.83257,315.00000 C 460.35541,315.00000 461.07043,313.85552 461.42151,312.45671 C 461.77259,311.05790 463.05887,309.51142 464.27992,309.02009 C 465.50096,308.52877 465.91206,308.09825 465.19346,308.06339 C 464.15416,308.01296 464.18698,307.43753 465.35392,305.25000 C 466.16076,303.73750 467.49245,300.92500 468.31323,299.00000 C 469.13401,297.07500 470.71016,293.47500 471.81578,291.00000 C 476.77816,279.89142 477.19347,269.00000 472.65469,269.00000 C 469.99887,269.00000 468.00000,270.73706 468.00000,273.04501 C 468.00000,273.94977 467.10000,275.50451 466.00000,276.50000 C 464.62713,277.74243 463.99520,279.59404 463.98469,282.40499 C 463.97465,285.08847 463.67221,286.03097 463.10726,285.13930 C 462.63309,284.39092 462.46746,282.92842 462.73920,281.88930 C 463.01093,280.85019 462.73078,280.00000 462.11663,280.00000 C 461.50248,280.00000 461.00000,278.90156 461.00000,277.55902 C 461.00000,276.21648 460.55543,274.84327 460.01206,274.50746 C 459.38469,274.11972 459.24827,275.53217 459.63827,278.37753 C 460.59257,285.33990 459.59225,287.79827 455.49194,288.56749 C 451.49601,289.31713 450.85110,291.60265 454.25000,292.96884 C 456.13325,293.72581 455.80725,293.88356 452.25000,293.93661 C 448.36643,293.99453 448.00000,293.78445 448.00000,291.50000 C 448.00000,289.80986 448.56690,288.97947 449.75000,288.93661 C 451.01992,288.89062 450.84292,288.61039 449.10482,287.91513 C 447.78747,287.38818 446.47497,287.19170 446.18815,287.47852 C 445.90133,287.76533 446.30417,288.04418 447.08333,288.09818 C 447.86250,288.15217 446.47500,288.78782 444.00000,289.51072 C 440.09043,290.65263 439.79521,290.91747 441.75000,291.52917 C 444.49826,292.38918 444.71557,294.00000 442.08333,294.00000 C 441.02917,294.00000 439.94624,294.56250 439.67683,295.25000 C 439.40741,295.93750 438.86512,295.04480 438.47174,293.26623 C 437.66675,289.62671 436.00000,289.82414 436.00000,293.55902 C 436.00000,295.06211 435.42366,296.00000 434.50000,296.00000 C 433.67500,296.00000 432.98569,296.78750 432.96820,297.75000 C 432.93791,299.41667 432.87313,299.41667 431.60795,297.75000 C 430.82981,296.72492 428.95445,296.00000 427.08074,296.00000 C 424.91747,296.00000 424.11295,295.62626 424.59549,294.84549 C 425.00423,294.18413 424.87295,293.96048 424.28816,294.32191 C 423.72668,294.66892 422.46241,294.06345 421.47866,292.97642 C 420.49491,291.88939 419.10919,291.00000 418.39929,291.00000 C 417.68938,291.00000 414.46654,293.70000 411.23742,297.00000 C 408.00830,300.30000 405.05888,303.00000 404.68315,303.00000 C 404.30742,303.00000 404.00000,302.12656 404.00000,301.05902 C 404.00000,298.79641 402.42667,297.50061 401.50000,299.00000 C 401.14899,299.56794 400.44290,299.77373 399.93090,299.45729 C 398.39502,298.50807 398.87958,300.02305 400.68706,301.82143 C 402.26914,303.39554 402.23802,303.51989 400.18706,303.81955 C 398.60890,304.05014 398.00000,304.83220 398.00000,306.62857 C 398.00000,308.17641 397.58614,308.86225 396.90583,308.44180 C 396.30404,308.06987 396.01663,306.69331 396.26716,305.38278 C 396.79104,302.64229 395.22944,302.12636 394.35190,304.75000 C 392.91093,309.05819 391.45179,312.00000 390.75589,312.00000 C 389.69869,312.00000 389.80976,311.27749 391.21215,309.03191 C 392.75887,306.55520 392.19320,306.04347 388.65903,306.72227 C 386.33156,307.16931 385.89808,307.68653 386.26078,309.58387 C 386.53023,310.99340 386.14747,312.11317 385.28280,312.44497 C 384.41349,312.77856 384.09448,313.72232 384.46085,314.87665 C 384.83496,316.05537 384.50130,316.97739 383.57151,317.33418 C 382.75306,317.64825 381.34853,320.43317 380.45032,323.52289 C 379.05439,328.32473 379.01811,329.38449 380.20048,330.82028 C 380.96128,331.74412 382.42549,335.08750 383.45430,338.25000 C 384.48310,341.41250 385.61690,344.00000 385.97386,344.00000 C 386.33082,344.00000 387.49523,344.80417 388.56144,345.78704 C 393.80934,350.62477 402.79938,351.97242 413.16923,349.47586 z M 418.00000,307.00000 C 418.00000,306.45000 418.92656,306.00000 420.05902,306.00000 C 421.19148,306.00000 421.83992,306.45000 421.50000,307.00000 C 421.16008,307.55000 420.23352,308.00000 419.44098,308.00000 C 418.64844,308.00000 418.00000,307.55000 418.00000,307.00000 z M 421.55355,304.09772 C 419.69570,303.37068 419.70708,303.30986 421.80355,302.76162 C 423.29658,302.37119 424.00000,302.63764 424.00000,303.59362 C 424.00000,304.36713 423.88750,304.96837 423.75000,304.92971 C 423.61250,304.89106 422.62410,304.51666 421.55355,304.09772 z M 408.00000,302.41667 C 408.00000,300.65074 410.15276,300.95828 410.77083,302.81250 C 410.98854,303.46562 410.45417,304.00000 409.58333,304.00000 C 408.71250,304.00000 408.00000,303.28750 408.00000,302.41667 z M 439.61191,301.43105 C 439.21177,300.38830 438.33743,300.07552 437.00493,300.49844 C 434.77183,301.20719 434.32535,299.49726 436.09144,297.00000 C 436.96826,295.76018 437.24747,295.73850 437.70113,296.87500 C 438.00301,297.63125 439.09375,299.09375 440.12500,300.12500 C 442.18841,302.18841 442.46562,303.00000 441.10699,303.00000 C 440.61583,303.00000 439.94305,302.29397 439.61191,301.43105 z M 426.00000,299.61472 C 426.00000,297.72122 426.39969,297.21615 427.54909,297.65721 C 429.32227,298.33764 429.11835,301.12838 427.25000,301.75047 C 426.46782,302.01090 426.00000,301.21158 426.00000,299.61472 z M 414.00000,300.42857 C 414.00000,300.11429 414.67914,299.17801 415.50919,298.34795 C 416.33925,297.51790 416.76688,296.43182 416.45948,295.93444 C 416.14121,295.41946 417.32123,295.30074 419.20029,295.65870 C 423.21536,296.42355 424.07557,297.00000 421.20185,297.00000 C 420.02953,297.00000 418.58870,297.90000 418.00000,299.00000 C 417.04377,300.78674 414.00000,301.87380 414.00000,300.42857 z M 440.00000,298.00000 C 440.00000,297.45000 440.45000,297.00000 441.00000,297.00000 C 441.55000,297.00000 442.00000,297.45000 442.00000,298.00000 C 442.00000,298.55000 441.55000,299.00000 441.00000,299.00000 C 440.45000,299.00000 440.00000,298.55000 440.00000,298.00000 z M 169.83333,334.86704 C 170.01667,334.39017 170.69167,333.98503 171.33333,333.96673 C 174.73373,333.86976 178.46821,328.02544 176.07494,326.54631 C 174.95249,325.85261 170.00000,327.98379 170.00000,329.16052 C 170.00000,329.62223 169.50186,330.00000 168.89301,330.00000 C 168.28417,330.00000 168.05401,329.30163 168.38156,328.44806 C 168.70910,327.59450 168.58394,327.13911 168.10341,327.43609 C 167.62289,327.73307 165.79182,327.47479 164.03436,326.86213 C 160.82587,325.74365 156.82261,326.87240 154.68449,329.49841 C 154.23269,330.05330 154.11102,329.60802 154.41166,328.50000 C 155.11418,325.91092 153.36003,322.94378 152.19288,324.74694 C 151.54823,325.74285 150.84522,325.74285 148.70068,324.74694 C 147.22389,324.06112 146.01209,323.16250 146.00780,322.75000 C 146.00351,322.33750 145.50186,322.00000 144.89301,322.00000 C 144.28417,322.00000 144.04904,322.68541 144.37051,323.52314 C 144.84736,324.76580 144.59084,324.85139 142.97749,323.98796 C 141.88987,323.40588 141.00000,322.46332 141.00000,321.89339 C 141.00000,320.35315 138.11930,317.69798 134.60489,315.99895 C 132.89720,315.17337 131.05579,313.48587 130.51287,312.24895 C 129.96995,311.01203 129.05447,310.00000 128.47848,310.00000 C 127.90248,310.00000 126.63375,308.65000 125.65907,307.00000 C 124.68439,305.35000 123.46237,304.00000 122.94346,304.00000 C 121.53002,304.00000 121.80567,305.66282 123.50000,307.35714 C 124.32500,308.18214 125.00000,309.13328 125.00000,309.47078 C 125.00000,310.13007 125.37431,310.63405 129.84931,316.00000 C 131.45469,317.92500 132.78284,319.87500 132.80076,320.33333 C 132.81867,320.79167 133.16798,321.46667 133.57699,321.83333 C 133.98600,322.20000 133.96815,321.89091 133.53732,321.14647 C 133.10649,320.40203 135.17185,322.21411 138.12700,325.17332 C 144.62347,331.67871 147.22155,333.39178 153.60339,335.37781 C 158.63169,336.94262 169.16280,336.61120 169.83333,334.86704 z M 159.07895,329.58333 C 159.03553,328.52917 159.27187,327.93854 159.60417,328.27083 C 159.93646,328.60312 159.97198,329.46562 159.68311,330.18750 C 159.36389,330.98523 159.12693,330.74828 159.07895,329.58333 z M 207.75000,320.32296 C 207.75000,317.83987 205.44133,311.00000 204.60321,311.00000 C 204.39974,311.00000 203.99775,311.90062 203.70989,313.00138 C 203.42204,314.10214 203.57197,314.76454 204.04309,314.47337 C 205.02766,313.86487 207.16119,317.41223 206.92276,319.26131 C 206.69542,321.02440 206.93439,323.00000 207.37500,323.00000 C 207.58125,323.00000 207.75000,321.79533 207.75000,320.32296 z M 149.25000,320.33772 C 148.56250,320.06031 147.43750,320.06031 146.75000,320.33772 C 146.06250,320.61513 146.62500,320.84211 148.00000,320.84211 C 149.37500,320.84211 149.93750,320.61513 149.25000,320.33772 z M 177.45729,320.06910 C 177.77373,319.55710 177.65028,318.90190 177.18298,318.61309 C 176.71567,318.32428 176.33333,318.74318 176.33333,319.54399 C 176.33333,321.23016 176.64867,321.37748 177.45729,320.06910 z M 146.02006,318.47583 C 146.71578,317.63754 147.10838,316.78999 146.89250,316.59239 C 146.15426,315.91665 142.00000,317.93361 142.00000,318.96778 C 142.00000,320.52293 144.58350,320.20678 146.02006,318.47583 z M 201.57366,315.22619 C 199.84591,313.57597 199.81909,313.60279 200.96421,315.83565 C 201.62301,317.12025 202.43630,317.89704 202.77150,317.56184 C 203.10670,317.22664 202.56767,316.17560 201.57366,315.22619 z M 202.67534,312.34201 C 202.31345,311.98011 202.51855,311.08011 203.13112,310.34201 C 203.95036,309.35489 203.94806,309.00000 203.12244,309.00000 C 202.50510,309.00000 202.00000,309.18820 202.00000,309.41821 C 202.00000,309.64823 201.72686,310.54823 201.39301,311.41821 C 201.03531,312.35036 201.30911,313.00000 202.05968,313.00000 C 202.76019,313.00000 203.03724,312.70390 202.67534,312.34201 z M 269.30245,308.25000 C 268.17279,305.13568 266.00000,302.37564 266.00000,304.05499 C 266.00000,305.49388 268.67207,310.00000 269.52532,310.00000 C 269.75187,310.00000 269.65158,309.21250 269.30245,308.25000 z M 198.60417,305.27083 C 198.27187,304.93854 198.03553,305.52917 198.07895,306.58333 C 198.12693,307.74828 198.36389,307.98523 198.68311,307.18750 C 198.97198,306.46562 198.93646,305.60312 198.60417,305.27083 z M 199.48785,301.56353 C 197.95749,298.53882 196.25213,296.34417 195.69818,296.68654 C 195.13879,297.03226 194.99792,296.81238 195.38134,296.19200 C 196.05688,295.09894 191.54054,285.00000 190.37617,285.00000 C 190.05159,285.00000 190.05401,285.69837 190.38156,286.55194 C 190.73588,287.47528 190.56022,287.84623 189.94787,287.46778 C 189.38180,287.11793 189.15615,286.08206 189.44643,285.16584 C 189.73670,284.24963 189.26704,282.15000 188.40273,280.50000 C 183.94120,271.98281 174.95304,253.94751 173.20260,250.00000 C 168.54072,239.48674 167.83982,237.15078 167.35167,230.50000 C 166.84069,223.53811 165.38530,218.00000 164.06674,218.00000 C 163.68690,218.00000 162.37724,219.35106 161.15638,221.00235 L 158.93665,224.00470 L 164.60621,238.75235 C 170.89940,255.12216 175.05922,264.75931 183.42405,282.34807 C 187.96274,291.89157 189.32208,293.97759 190.41259,293.07255 C 191.44424,292.21635 191.91049,292.32436 192.37176,293.52641 C 192.70469,294.39402 192.57940,294.85809 192.09333,294.55768 C 190.47090,293.55497 190.20182,296.55705 191.73622,298.54189 C 193.19253,300.42573 193.22821,300.40518 192.67679,298.00000 L 192.10364,295.50000 L 193.92768,297.70748 C 194.93090,298.92159 196.10428,299.59659 196.53519,299.20748 C 196.96610,298.81836 197.04488,299.26458 196.71026,300.19907 C 196.25562,301.46874 196.51195,301.74078 197.72454,301.27546 C 198.93920,300.80935 199.18573,301.07361 198.70499,302.32639 C 198.35177,303.24688 198.46832,304.00000 198.96400,304.00000 C 199.45967,304.00000 200.16164,304.93391 200.52392,306.07536 C 200.88620,307.21681 201.42735,307.90598 201.72647,307.60686 C 202.02559,307.30774 201.01821,304.58824 199.48785,301.56353 z M 187.56429,289.29313 C 187.02161,287.86793 187.13647,287.75307 188.12409,288.73333 C 188.80751,289.41167 189.11476,290.21857 188.80687,290.52646 C 188.49898,290.83435 187.93982,290.27935 187.56429,289.29313 z M 122.77083,302.18750 C 122.98854,301.53438 122.45417,301.00000 121.58333,301.00000 C 120.71250,301.00000 120.00000,301.71250 120.00000,302.58333 C 120.00000,304.34926 122.15276,304.04172 122.77083,302.18750 z M 263.00567,299.00796 C 259.75923,294.44875 249.72826,286.41573 244.26235,283.99790 C 238.79546,281.57964 232.24270,280.47129 228.68763,281.36355 C 227.33783,281.70233 224.74117,283.37350 222.91729,285.07726 C 219.75678,288.02962 219.53378,288.08877 218.16604,286.33751 C 216.77990,284.56269 216.75258,284.56250 217.36547,286.33179 C 217.71446,287.33927 218.00000,288.83391 218.00000,289.65322 C 218.00000,290.89197 218.23384,290.92030 219.38841,289.82143 C 228.03925,281.58793 232.59500,280.74242 241.86570,285.64986 C 249.09844,289.47850 256.83507,295.12270 261.42710,299.92073 C 265.05499,303.71137 265.97570,303.17899 263.00567,299.00796 z M 188.23992,300.64828 C 188.87713,301.04210 189.01670,300.83604 188.58541,300.13820 C 187.73455,298.76148 185.96487,299.58814 186.07895,301.30902 C 186.13545,302.16146 186.30186,302.14291 186.66436,301.24377 C 186.94291,300.55284 187.65191,300.28487 188.23992,300.64828 z M 186.49164,296.20836 C 185.94624,295.81876 183.70207,291.74581 181.50461,287.15736 C 179.30714,282.56890 177.17100,278.60569 176.75763,278.35021 C 175.91401,277.82882 177.06108,280.98854 179.35320,285.50000 C 181.59526,289.91290 183.34570,294.39441 183.16148,295.25000 C 183.07267,295.66250 183.45000,296.00000 184.00000,296.00000 C 184.55000,296.00000 185.00000,296.76500 185.00000,297.70000 C 185.00000,299.05390 185.25279,299.14721 186.24164,298.15836 C 187.03442,297.36558 187.12479,296.66064 186.49164,296.20836 z M 409.26523,293.20762 C 410.00499,292.29710 409.97319,291.57319 409.15762,290.75762 C 408.28079,289.88079 408.00000,290.11932 408.00000,291.74098 C 408.00000,292.91852 407.56965,294.14793 407.04367,294.47301 C 406.51769,294.79808 406.39190,295.83714 406.76413,296.78203 C 407.36568,298.30902 407.48395,298.27766 407.82806,296.50000 C 408.04100,295.40000 408.68772,293.91843 409.26523,293.20762 z M 398.50000,292.00000 C 398.16008,291.45000 397.45852,291.00000 396.94098,291.00000 C 396.42344,291.00000 396.00000,291.45000 396.00000,292.00000 C 396.00000,292.55000 396.70156,293.00000 397.55902,293.00000 C 398.41648,293.00000 398.83992,292.55000 398.50000,292.00000 z M 432.00000,291.00000 C 432.00000,290.45000 431.52344,290.00000 430.94098,290.00000 C 430.35852,290.00000 430.16008,290.45000 430.50000,291.00000 C 430.83992,291.55000 431.31648,292.00000 431.55902,292.00000 C 431.80156,292.00000 432.00000,291.55000 432.00000,291.00000 z M 401.50000,289.00000 C 401.84463,288.44237 401.09659,288.00677 399.80902,288.01531 C 397.95138,288.02763 397.79323,288.22012 399.00000,289.00000 C 400.86074,290.20250 400.75681,290.20250 401.50000,289.00000 z M 477.66667,288.50000 C 477.66667,287.67500 477.31822,287.00000 476.89235,287.00000 C 475.76604,287.00000 474.94683,288.61349 475.69385,289.36052 C 476.78522,290.45189 477.66667,290.06742 477.66667,288.50000 z M 426.00000,286.55902 C 426.00000,285.76648 425.55000,284.83992 425.00000,284.50000 C 424.45000,284.16008 424.00000,284.80852 424.00000,285.94098 C 424.00000,287.07344 424.45000,288.00000 425.00000,288.00000 C 425.55000,288.00000 426.00000,287.35156 426.00000,286.55902 z M 444.20000,286.80000 C 443.26667,285.86667 442.73333,285.86667 441.80000,286.80000 C 440.86667,287.73333 441.13333,288.00000 443.00000,288.00000 C 444.86667,288.00000 445.13333,287.73333 444.20000,286.80000 z M 456.00000,285.00000 C 456.00000,282.89937 455.51360,282.00000 454.37756,282.00000 C 453.04876,282.00000 452.98043,282.27149 454.00000,283.50000 C 454.99319,284.69672 454.99319,285.30328 454.00000,286.50000 C 452.98043,287.72851 453.04876,288.00000 454.37756,288.00000 C 455.51360,288.00000 456.00000,287.10063 456.00000,285.00000 z M 438.48992,284.98369 C 438.14446,284.42472 437.44290,284.22627 436.93090,284.54271 C 435.54386,285.39994 435.80249,286.00000 437.55902,286.00000 C 438.41648,286.00000 438.83538,285.54266 438.48992,284.98369 z M 481.96937,282.50000 C 481.96937,281.95000 481.53316,282.17500 481.00000,283.00000 C 480.46684,283.82500 480.03063,284.95000 480.03063,285.50000 C 480.03063,286.05000 480.46684,285.82500 481.00000,285.00000 C 481.53316,284.17500 481.96937,283.05000 481.96937,282.50000 z M 410.00000,283.00000 C 410.00000,282.45000 409.55000,282.00000 409.00000,282.00000 C 408.45000,282.00000 408.00000,282.45000 408.00000,283.00000 C 408.00000,283.55000 408.45000,284.00000 409.00000,284.00000 C 409.55000,284.00000 410.00000,283.55000 410.00000,283.00000 z M 479.60417,280.27083 C 479.27188,279.93854 479.03553,280.52917 479.07895,281.58333 C 479.12693,282.74828 479.36389,282.98523 479.68311,282.18750 C 479.97198,281.46562 479.93646,280.60312 479.60417,280.27083 z M 420.00000,280.94098 C 420.00000,280.35852 419.55000,280.16008 419.00000,280.50000 C 418.45000,280.83992 418.00000,281.31648 418.00000,281.55902 C 418.00000,281.80156 418.45000,282.00000 419.00000,282.00000 C 419.55000,282.00000 420.00000,281.52344 420.00000,280.94098 z M 184.46634,264.37358 C 180.82544,256.74311 176.25088,246.54267 174.30067,241.70592 C 170.59199,232.50802 169.32379,230.86284 171.10184,237.55623 C 172.23580,241.82495 190.10166,279.23168 190.71402,278.61932 C 190.91871,278.41463 188.10725,272.00405 184.46634,264.37358 z M 485.75000,272.28317 C 487.53750,270.44076 489.00000,269.19989 489.00000,269.52568 C 489.00000,269.85148 489.49804,269.81023 490.10676,269.43402 C 490.88945,268.95029 490.84196,268.52036 489.94458,267.96575 C 488.95656,267.35512 489.04361,266.81353 490.33782,265.51932 C 492.15959,263.69756 492.59019,258.48279 491.00000,257.50000 C 490.45000,257.16008 489.94780,257.92102 489.88400,259.19098 C 489.79889,260.88516 489.64622,261.03401 489.31067,259.75000 C 489.05915,258.78750 488.45369,258.00000 487.96522,258.00000 C 486.61570,258.00000 484.85998,250.40607 485.56242,247.60732 C 486.09672,245.47849 485.89637,245.21434 484.10303,245.68331 C 482.74621,246.03812 481.80929,245.66658 481.40516,244.61345 C 481.06464,243.72605 479.92559,243.00000 478.87396,243.00000 C 476.81527,243.00000 476.88987,244.52320 479.31474,252.00000 C 479.93905,253.92500 480.53043,257.97500 480.62891,261.00000 C 480.89182,269.07606 480.87403,269.00000 482.50000,269.00000 C 484.50074,269.00000 484.40946,267.32853 482.34565,266.17356 C 480.83958,265.33072 480.87301,265.05268 482.71862,263.07165 C 484.37851,261.28996 484.84941,261.16519 485.31680,262.38318 C 485.63076,263.20136 485.35043,264.09874 484.69382,264.37735 C 483.88409,264.72094 484.06302,265.24031 485.25000,265.99165 C 487.48301,267.40512 487.46653,268.84760 485.19413,270.88270 C 482.80144,273.02554 479.98527,277.18772 480.05881,278.47251 C 480.09115,279.03763 480.65365,278.62993 481.30881,277.56651 C 481.96396,276.50309 483.96250,274.12559 485.75000,272.28317 z M 168.05820,260.30409 C 163.71229,251.46591 159.16853,241.93795 157.96094,239.13084 C 155.54362,233.51164 154.00000,233.27417 154.00000,238.52150 C 154.00000,244.17238 157.83832,252.63725 163.57310,259.63358 C 166.55556,263.27214 170.39502,268.69478 172.10522,271.68390 C 177.90701,281.82438 175.99115,276.43718 168.05820,260.30409 z M 486.36163,275.50000 C 486.67821,274.67500 486.50135,274.00000 485.96862,274.00000 C 485.43588,274.00000 485.00000,274.67500 485.00000,275.50000 C 485.00000,276.32500 485.17686,277.00000 485.39301,277.00000 C 485.60917,277.00000 486.04504,276.32500 486.36163,275.50000 z M 336.81354,264.25589 C 338.20675,259.71639 337.47331,258.48113 334.84092,260.93358 C 333.71143,261.98586 333.08671,263.33129 333.45266,263.92341 C 333.81912,264.51635 333.41766,265.00000 332.55902,265.00000 C 331.70156,265.00000 331.00000,265.60000 331.00000,266.33333 C 331.00000,270.37322 335.42093,268.79342 336.81354,264.25589 z M 185.80101,255.25000 C 184.86010,249.21327 182.54222,243.79450 176.27662,232.98380 C 170.26956,222.61918 170.17972,222.48695 169.56342,223.10325 C 168.78985,223.87681 185.18697,261.00000 186.30221,261.00000 C 186.51947,261.00000 186.29393,258.41250 185.80101,255.25000 z M 198.38156,257.44806 C 198.72305,256.55814 198.55541,256.15674 197.98855,256.50708 C 197.44485,256.84310 197.00000,257.54148 197.00000,258.05902 C 197.00000,259.49745 197.71677,259.18048 198.38156,257.44806 z M 495.29011,256.99862 C 495.57796,255.89786 495.40545,255.24942 494.90674,255.55764 C 494.40803,255.86586 494.00000,256.76648 494.00000,257.55902 C 494.00000,259.62877 494.67950,259.33361 495.29011,256.99862 z M 192.99527,253.28768 C 191.90566,251.58839 191.87744,251.59057 192.42449,253.33179 C 192.74102,254.33927 193.03553,255.68927 193.07895,256.33179 C 193.13593,257.17495 193.29474,257.16267 193.64972,256.28768 C 193.92023,255.62090 193.62572,254.27090 192.99527,253.28768 z M 197.59357,253.27464 C 197.33337,249.87245 191.73319,239.00000 190.24099,239.00000 C 188.96970,239.00000 188.95332,238.74727 190.12756,237.25000 C 191.36952,235.66637 191.33468,235.62961 189.76101,236.86331 C 188.80457,237.61313 188.34191,238.73813 188.73289,239.36331 C 189.12387,239.98849 189.53254,241.08598 189.64105,241.80217 C 189.74956,242.51836 190.64979,244.31836 191.64156,245.80217 C 192.63332,247.28598 193.34470,248.83750 193.22238,249.25000 C 193.10007,249.66250 193.43588,250.00000 193.96862,250.00000 C 194.50135,250.00000 194.67966,250.67121 194.36486,251.49157 C 194.03853,252.34199 194.47940,253.24673 195.39050,253.59636 C 196.26941,253.93362 196.69657,254.68195 196.33975,255.25929 C 195.98293,255.83664 196.14960,256.02557 196.71014,255.67914 C 197.27067,255.33272 197.66822,254.25069 197.59357,253.27464 z M 492.93570,253.06090 C 494.12097,252.31090 494.14481,251.87941 493.07239,250.58723 C 491.49916,248.69160 490.00000,249.40976 490.00000,252.05902 C 490.00000,254.18878 490.74919,254.44447 492.93570,253.06090 z M 500.93276,246.50000 C 500.93476,245.95000 500.27570,246.37351 499.46820,247.44113 C 498.66069,248.50875 498.01595,250.08375 498.03544,250.94113 C 498.07401,252.63817 500.92635,248.26600 500.93276,246.50000 z M 200.62654,249.75000 C 200.27144,247.49111 194.57721,237.76836 194.22616,238.82153 C 194.03749,239.38752 194.87597,241.79671 196.08943,244.17530 C 197.30289,246.55388 198.27216,248.72500 198.24336,249.00000 C 198.20077,249.40656 200.05331,250.92703 200.66152,250.98469 C 200.75035,250.99311 200.73461,250.43750 200.62654,249.75000 z M 165.34508,247.45687 C 165.01939,246.60815 164.53845,246.12821 164.27633,246.39034 C 164.01420,246.65247 164.09635,247.34688 164.45888,247.93347 C 165.44493,249.52893 166.02126,249.21898 165.34508,247.45687 z M 493.75047,246.75000 C 493.12044,244.85781 490.00000,244.58880 490.00000,246.42668 C 490.00000,247.35431 490.85500,248.00000 492.08333,248.00000 C 493.30531,248.00000 493.99459,247.48318 493.75047,246.75000 z M 150.60838,243.75000 C 150.27058,241.96250 148.70882,237.20212 147.13782,233.17137 C 144.50672,226.42072 144.23519,226.07406 143.69482,228.77591 C 142.83412,233.07938 146.50015,244.29861 149.39970,246.23469 C 151.15187,247.40464 151.25787,247.18673 150.60838,243.75000 z M 188.00000,245.62244 C 188.00000,245.41479 187.21250,244.62729 186.25000,243.87244 C 184.66394,242.62857 184.62857,242.66394 185.87244,244.25000 C 187.17881,245.91575 188.00000,246.44548 188.00000,245.62244 z M 161.41403,237.95151 C 160.03008,234.40318 158.54995,230.62735 158.12484,229.56078 C 157.69973,228.49422 157.09990,228.04422 156.79188,228.56078 C 156.26203,229.44937 162.99319,245.34015 163.62978,244.70356 C 163.79507,244.53827 162.79798,241.49985 161.41403,237.95151 z M 199.49971,240.65354 C 197.84419,236.69134 197.48702,236.40297 196.40451,238.15451 C 196.00997,238.79288 196.12591,239.04021 196.66386,238.70775 C 197.19893,238.37705 198.20977,239.69121 198.91016,241.62811 C 199.61055,243.56500 200.37320,244.96014 200.60493,244.72841 C 200.83666,244.49668 200.33931,242.66299 199.49971,240.65354 z M 489.51199,242.36623 C 491.05099,242.95680 494.38338,238.42934 493.48254,236.97175 C 492.69683,235.70045 489.29123,235.71976 488.50000,237.00000 C 488.16008,237.55000 488.35852,238.00000 488.94098,238.00000 C 489.52344,238.00000 490.00000,238.45000 490.00000,239.00000 C 490.00000,239.55000 489.05186,240.00000 487.89301,240.00000 C 486.38256,240.00000 485.95787,240.44784 486.39301,241.58179 C 486.72686,242.45177 487.05220,243.68927 487.11600,244.33179 C 487.17980,244.97430 487.44416,244.67946 487.70347,243.67657 C 487.96630,242.66006 488.76661,242.08020 489.51199,242.36623 z M 114.00000,241.94098 C 114.00000,241.42344 113.55000,241.00000 113.00000,241.00000 C 112.45000,241.00000 112.00000,241.70156 112.00000,242.55902 C 112.00000,243.41648 112.45000,243.83992 113.00000,243.50000 C 113.55000,243.16008 114.00000,242.45852 114.00000,241.94098 z M 117.14784,237.90386 C 118.70996,235.55118 127.60509,232.85838 129.99053,234.01602 C 130.82074,234.41892 133.44208,235.75056 135.81574,236.97521 C 138.18939,238.19987 140.27033,239.04394 140.44005,238.85093 C 140.60977,238.65792 140.38804,236.02500 139.94732,233.00000 C 139.50660,229.97500 139.10626,224.80000 139.05769,221.50000 C 138.99494,217.23707 138.68873,215.93427 138.00000,217.00000 C 137.46684,217.82500 137.02373,218.14667 137.01531,217.71482 C 137.00689,217.28297 137.70682,215.85090 138.57070,214.53244 C 140.93294,210.92721 139.79827,207.05317 133.98111,198.86235 C 129.70372,192.83958 128.85061,192.04585 129.29241,194.50000 C 129.64847,196.47784 129.28386,198.11092 128.22231,199.29303 C 126.73061,200.95414 126.74533,201.03496 128.42240,200.39140 C 130.01672,199.77961 130.09351,199.95675 129.06616,201.87638 C 128.42458,203.07518 127.51938,203.82100 127.05461,203.53375 C 125.45204,202.54331 124.85266,206.41909 126.43003,207.57250 C 127.27642,208.19139 127.67591,208.99076 127.31779,209.34888 C 126.95967,209.70699 127.12332,210.00000 127.68146,210.00000 C 128.23959,210.00000 129.50794,211.80000 130.50000,214.00000 C 131.49206,216.20000 132.71196,218.00000 133.21089,218.00000 C 133.70982,218.00000 133.82769,218.46979 133.47282,219.04398 C 133.11795,219.61816 133.53303,221.16457 134.39522,222.48043 C 135.84104,224.68702 135.82831,224.86747 134.23141,224.80293 C 133.27914,224.76445 131.76748,225.04510 130.87219,225.42658 C 129.25383,226.11617 128.91320,225.63035 117.14246,205.84460 C 115.84581,203.66503 114.62137,202.04530 114.42148,202.24519 C 113.99936,202.66731 120.03948,215.11021 121.64899,217.13415 C 122.24638,217.88537 124.21206,221.20000 126.01717,224.50000 C 127.82227,227.80000 129.79436,230.87995 130.39959,231.34433 C 131.07090,231.85942 130.81760,231.96915 129.75000,231.62572 C 128.78750,231.31610 128.00000,231.49865 128.00000,232.03138 C 128.00000,232.56412 126.23453,233.00000 124.07673,233.00000 C 121.31493,233.00000 119.24259,233.76644 117.07673,235.58889 C 114.06450,238.12351 113.12918,240.00000 114.87803,240.00000 C 115.36094,240.00000 116.38236,239.05674 117.14784,237.90386 z M 188.38156,235.44806 C 188.72305,234.55814 188.55541,234.15674 187.98855,234.50708 C 187.44485,234.84310 187.00000,234.56648 187.00000,233.89235 C 187.00000,233.21822 186.76441,232.90226 186.47646,233.19021 C 185.98562,233.68105 186.87729,237.00000 187.50000,237.00000 C 187.65731,237.00000 188.05401,236.30163 188.38156,235.44806 z M 195.36163,235.50000 C 195.04504,234.67500 194.33168,234.00000 193.77638,234.00000 C 193.22108,234.00000 193.01373,233.05549 193.31562,231.90109 C 193.61750,230.74668 193.59889,230.06778 193.27426,230.39241 C 192.94963,230.71704 192.08011,230.48145 191.34201,229.86888 C 190.35489,229.04964 190.00000,229.05194 190.00000,229.87756 C 190.00000,230.49490 190.52500,231.00000 191.16667,231.00000 C 191.80833,231.00000 192.02922,231.30412 191.65752,231.67581 C 191.28582,232.04751 191.96426,233.39751 193.16517,234.67581 C 195.71541,237.39042 196.14956,237.55333 195.36163,235.50000 z M 150.89814,223.25573 C 147.95848,215.89230 147.39930,215.27294 146.59264,218.48691 C 146.14963,220.25200 146.84969,223.55970 148.71586,228.51893 L 151.50000,235.91761 L 152.34798,232.46454 C 153.00844,229.77508 152.68783,227.73864 150.89814,223.25573 z M 359.92971,229.08333 C 360.03134,225.58912 359.36323,226.85700 358.65625,231.50000 C 358.23176,234.28780 358.32178,234.89390 358.95330,233.50000 C 359.45167,232.40000 359.89106,230.41250 359.92971,229.08333 z M 460.00000,226.00000 C 459.17500,225.46684 458.05000,225.03063 457.50000,225.03063 C 456.95000,225.03063 457.17500,225.46684 458.00000,226.00000 C 458.82500,226.53316 459.95000,226.96937 460.50000,226.96937 C 461.05000,226.96937 460.82500,226.53316 460.00000,226.00000 z M 360.65594,221.73097 C 360.38201,221.05394 360.17457,221.85000 360.19495,223.50000 C 360.21533,225.15000 360.43945,225.70394 360.69299,224.73097 C 360.94653,223.75800 360.92986,222.40800 360.65594,221.73097 z M 156.00000,224.06205 C 156.00000,222.72828 152.91165,209.57832 152.50226,209.16893 C 152.31514,208.98181 151.62996,209.82291 150.97964,211.03804 C 150.00465,212.85984 150.20665,214.27810 152.13131,219.12368 C 154.21619,224.37262 156.00000,226.64965 156.00000,224.06205 z M 182.21631,216.54510 C 179.33188,210.58476 178.14876,209.66298 180.35697,215.09646 C 181.11775,216.96841 181.53939,219.17500 181.29397,220.00000 C 180.94018,221.18927 181.04183,221.22369 181.78471,220.16615 C 182.54544,219.08319 182.83599,219.13021 183.32945,220.41615 C 183.66373,221.28727 184.14398,222.00000 184.39668,222.00000 C 184.64938,222.00000 183.66821,219.54529 182.21631,216.54510 z M 363.97127,208.66315 C 364.62487,204.35288 364.93802,200.60469 364.66718,200.33384 C 364.10014,199.76681 362.39088,208.16937 361.58206,215.50000 C 360.73980,223.13369 362.57203,217.89067 363.97127,208.66315 z M 144.16845,212.76845 C 143.42638,212.02638 143.29624,212.41681 143.73121,214.08016 C 144.08482,215.43236 144.53811,215.88566 144.78776,215.13671 C 145.02824,214.41527 144.74955,213.34955 144.16845,212.76845 z M 170.00000,209.77057 C 170.00000,209.18526 169.36459,209.28245 168.50000,210.00000 C 167.67500,210.68469 167.00000,211.40067 167.00000,211.59106 C 167.00000,211.78145 167.67500,211.67821 168.50000,211.36163 C 169.32500,211.04504 170.00000,210.32907 170.00000,209.77057 z M 174.12756,208.25000 C 175.37143,206.66394 175.33606,206.62857 173.75000,207.87244 C 172.08425,209.17881 171.55452,210.00000 172.37756,210.00000 C 172.58521,210.00000 173.37271,209.21250 174.12756,208.25000 z M 190.72770,205.27020 C 188.65293,205.05373 185.50293,205.05736 183.72770,205.27827 C 181.95246,205.49918 183.65000,205.67630 187.50000,205.67186 C 191.35000,205.66742 192.80246,205.48668 190.72770,205.27020 z M 194.50000,203.00000 C 194.16008,202.45000 193.34602,202.00689 192.69098,202.01531 C 191.97537,202.02451 192.09871,202.41754 193.00000,203.00000 C 194.92112,204.24153 195.26730,204.24153 194.50000,203.00000 z M 123.18333,200.78333 C 122.46577,200.06577 122.00000,200.00673 122.00000,200.63333 C 122.00000,201.96811 123.18261,203.15072 123.85000,202.48333 C 124.13417,202.19917 123.83417,201.43417 123.18333,200.78333 z M 198.24377,201.33564 C 197.55284,201.05709 197.28487,200.34809 197.64828,199.76008 C 198.03881,199.12818 197.83689,198.98277 197.15451,199.40451 C 195.40962,200.48291 195.77105,202.01033 197.75000,201.92105 C 198.80575,201.87342 199.00163,201.64118 198.24377,201.33564 z M 213.74292,201.40959 C 213.41820,201.08487 213.81182,198.95052 214.61763,196.66659 C 215.42345,194.38267 216.12082,190.61725 216.16736,188.29900 C 216.21489,185.93094 216.71199,184.17513 217.30181,184.29199 C 217.87923,184.40640 220.34230,180.00000 222.77531,174.50000 L 227.19897,164.50000 L 226.47470,149.50000 C 226.07636,141.25000 225.75880,133.49048 225.76902,132.25662 C 225.77924,131.02276 225.38539,130.26181 224.89380,130.56563 C 224.40221,130.86945 224.00000,130.64148 224.00000,130.05902 C 224.00000,129.47656 223.32500,129.00000 222.50000,129.00000 C 221.67500,129.00000 221.00000,128.55000 221.00000,128.00000 C 221.00000,125.93643 213.22486,126.93994 210.32673,129.37755 L 207.50000,131.75511 L 208.14992,146.62755 C 208.50737,154.80740 209.28283,163.52500 209.87316,166.00000 C 211.19285,171.53293 212.01690,198.12848 210.84622,197.40496 C 210.38080,197.11731 210.00000,197.35852 210.00000,197.94098 C 210.00000,198.52344 210.45000,199.00000 211.00000,199.00000 C 211.55000,199.00000 212.00000,199.67500 212.00000,200.50000 C 212.00000,201.32500 212.52500,202.00000 213.16667,202.00000 C 213.80833,202.00000 214.06765,201.73432 213.74292,201.40959 z M 112.79633,199.04548 C 112.12499,197.97049 111.38205,197.28462 111.14535,197.52131 C 110.71676,197.94991 112.89609,201.00000 113.63092,201.00000 C 113.84323,201.00000 113.46767,200.12047 112.79633,199.04548 z M 196.00000,198.44098 C 196.00000,198.19844 195.55000,198.00000 195.00000,198.00000 C 194.45000,198.00000 194.00000,198.47656 194.00000,199.05902 C 194.00000,199.64148 194.45000,199.83992 195.00000,199.50000 C 195.55000,199.16008 196.00000,198.68352 196.00000,198.44098 z M 189.25000,196.33772 C 188.56250,196.06031 187.43750,196.06031 186.75000,196.33772 C 186.06250,196.61513 186.62500,196.84211 188.00000,196.84211 C 189.37500,196.84211 189.93750,196.61513 189.25000,196.33772 z M 188.00836,193.04652 C 187.54405,192.19594 185.57654,189.97279 183.63612,188.10621 C 180.24167,184.84093 179.88183,184.73294 174.13305,185.25422 C 170.84678,185.55221 165.75996,186.88841 162.82901,188.22355 C 157.79342,190.51742 157.67652,190.65151 160.70601,190.65887 C 162.46932,190.66316 163.65052,190.24355 163.33091,189.72640 C 162.97929,189.15748 164.08273,189.07545 166.12489,189.51870 C 167.98120,189.92161 169.81303,190.74420 170.19563,191.34667 C 170.57822,191.94915 171.16215,192.17118 171.49325,191.84009 C 171.82434,191.50899 171.36667,190.50952 170.47619,189.61905 C 168.32589,187.46874 169.12798,187.57758 173.94857,190.09021 C 176.15416,191.23983 178.53052,191.95035 179.22937,191.66916 C 180.01299,191.35385 179.82926,191.12764 178.75000,191.07895 C 177.78750,191.03553 177.00000,190.53417 177.00000,189.96482 C 177.00000,189.26773 177.66236,189.28412 179.02801,190.01499 C 181.78434,191.49013 180.42098,193.28879 176.93439,192.77706 C 175.23202,192.52721 174.34901,192.75570 174.71686,193.35088 C 175.08008,193.93858 174.63181,194.07269 173.61211,193.68139 C 172.66832,193.31923 172.10323,193.35525 172.35636,193.76145 C 172.60948,194.16765 176.42468,194.52094 180.83458,194.54652 C 187.77431,194.58679 188.73904,194.38507 188.00836,193.04652 z M 125.97994,187.47583 C 125.28422,186.63754 124.50906,186.15760 124.25736,186.40930 C 123.56387,187.10280 124.97291,189.00000 126.18146,189.00000 C 126.84456,189.00000 126.76869,188.42622 125.97994,187.47583 z M 123.42997,184.11331 C 123.73138,183.62563 123.19543,182.61313 122.23899,181.86331 C 120.70282,180.65901 120.64478,180.68568 121.74132,182.09201 C 122.42405,182.96761 122.68655,183.98011 122.32466,184.34201 C 121.96276,184.70390 121.94011,185.00000 122.27432,185.00000 C 122.60852,185.00000 123.12857,184.60099 123.42997,184.11331 z M 415.52823,180.95433 C 415.88028,180.38470 417.03044,180.19227 418.08416,180.52671 C 420.59928,181.32498 420.54249,180.36070 417.99406,178.99682 C 416.54378,178.22065 414.88175,178.25475 411.99406,179.11993 C 409.79733,179.77808 408.00090,180.58285 408.00200,180.90829 C 408.00562,181.97430 414.87189,182.01630 415.52823,180.95433 z M 367.60417,176.27083 C 367.27188,175.93854 367.03553,176.52917 367.07895,177.58333 C 367.12693,178.74828 367.36389,178.98523 367.68311,178.18750 C 367.97198,177.46562 367.93646,176.60313 367.60417,176.27083 z M 179.00000,171.53518 C 179.00000,171.27953 177.98750,170.53086 176.75000,169.87146 C 174.70978,168.78434 174.62796,168.82768 175.87244,170.33628 C 177.15027,171.88530 179.00000,172.59437 179.00000,171.53518 z M 376.50729,169.40566 C 378.62762,167.44061 379.98635,166.94727 382.10893,167.37179 C 384.29620,167.80924 384.78775,167.61047 384.34863,166.46612 C 383.65956,164.67046 380.72764,164.57433 377.75640,166.25000 C 375.38516,167.58729 373.08384,170.02275 373.03180,171.25000 C 372.98080,172.45288 373.53881,172.15676 376.50729,169.40566 z M 107.00000,158.00000 C 107.00000,157.45000 106.52344,157.00000 105.94098,157.00000 C 105.35852,157.00000 105.16008,157.45000 105.50000,158.00000 C 105.83992,158.55000 106.31648,159.00000 106.55902,159.00000 C 106.80156,159.00000 107.00000,158.55000 107.00000,158.00000 z M 434.17328,154.50000 C 435.30086,150.36009 434.55418,149.00000 431.15383,149.00000 C 428.58623,149.00000 426.92619,149.98921 425.83504,152.16944 C 425.24822,153.34194 430.35197,158.07887 431.88402,157.78366 C 432.69370,157.62765 433.72387,156.15000 434.17328,154.50000 z M 378.30851,141.75000 C 378.65431,140.78750 379.82899,140.00000 380.91893,140.00000 C 382.00886,140.00000 383.32128,139.24832 383.83542,138.32960 C 384.67677,136.82619 384.90572,136.87617 386.12566,138.82960 C 387.80817,141.52373 389.46667,141.57478 392.21216,139.01697 C 394.30333,137.06874 394.30754,136.99731 392.45175,134.94669 C 391.00763,133.35095 389.82604,132.99765 387.43406,133.44639 C 384.48472,133.99969 384.30022,133.85448 384.21662,130.91397 C 384.11118,127.20559 383.01408,125.59684 382.96820,129.08333 C 382.92308,132.51193 380.74946,135.00875 378.35493,134.38257 C 375.65923,133.67762 374.21968,135.69705 373.99409,140.50000 C 373.69011,146.97191 373.80431,147.26819 375.83990,145.28896 C 376.85184,144.30503 377.96271,142.71250 378.30851,141.75000 z M 376.00000,142.00000 C 376.00000,140.90000 376.40787,140.00000 376.90638,140.00000 C 377.40489,140.00000 377.57741,140.90000 377.28975,142.00000 C 377.00209,143.10000 376.59422,144.00000 376.38337,144.00000 C 376.17252,144.00000 376.00000,143.10000 376.00000,142.00000 z M 418.85420,127.48852 C 419.06164,126.39483 419.51681,125.27500 419.86568,125.00000 C 420.21456,124.72500 421.09088,123.44817 421.81306,122.16260 C 423.00984,120.03217 422.95588,119.87923 421.20363,120.43537 C 419.50972,120.97300 419.30725,120.58279 419.50074,117.15353 C 419.62152,115.01292 420.03482,112.75267 420.41919,112.13076 C 421.24658,110.79201 420.06176,110.67481 418.12188,111.90351 C 417.36392,112.38360 417.02384,113.22955 417.36614,113.78341 C 418.09912,114.96940 415.81317,116.00000 412.44960,116.00000 C 410.65794,116.00000 410.21815,116.40490 410.68588,117.62379 C 411.06085,118.60097 410.65015,119.61628 409.65449,120.17348 C 407.33798,121.46987 407.50657,125.00000 409.88499,125.00000 C 410.92173,125.00000 412.52514,126.15252 413.44812,127.56117 C 415.36775,130.49089 418.29219,130.45159 418.85420,127.48852 z M 416.00000,125.00000 C 416.00000,124.45000 416.45000,124.00000 417.00000,124.00000 C 417.55000,124.00000 418.00000,124.45000 418.00000,125.00000 C 418.00000,125.55000 417.55000,126.00000 417.00000,126.00000 C 416.45000,126.00000 416.00000,125.55000 416.00000,125.00000 z M 450.00000,124.00000 C 450.00000,123.45000 449.53226,123.00000 448.96057,123.00000 C 448.36081,123.00000 448.46656,122.40992 449.21057,121.60496 C 449.91976,120.83769 450.83144,120.41050 451.23653,120.65565 C 451.64162,120.90080 451.59290,120.06607 451.12827,118.80069 C 449.73812,115.01474 440.00000,115.29630 440.00000,119.12244 C 440.00000,119.60510 440.73590,120.00000 441.63533,120.00000 C 442.53476,120.00000 444.31327,121.12500 445.58758,122.50000 C 447.97242,125.07328 450.00000,125.76256 450.00000,124.00000 z M 416.00000,114.00000 C 416.00000,113.45000 415.29844,113.00000 414.44098,113.00000 C 413.58352,113.00000 413.16008,112.55000 413.50000,112.00000 C 413.83992,111.45000 413.64148,111.00000 413.05902,111.00000 C 411.88779,111.00000 411.61878,113.28545 412.66667,114.33333 C 413.68914,115.35581 416.00000,115.12472 416.00000,114.00000 z M 405.74610,104.34209 C 405.15918,103.05394 404.30978,102.00000 403.85854,102.00000 C 402.81618,102.00000 401.55185,106.88519 402.37990,107.71324 C 402.72096,108.05429 403.00000,107.35833 403.00000,106.16667 C 403.00000,104.97500 403.45000,104.00000 404.00000,104.00000 C 404.55000,104.00000 405.00689,105.23750 405.01531,106.75000 C 405.02645,108.74937 405.27391,109.11570 405.92192,108.09209 C 406.46053,107.24131 406.39095,105.75738 405.74610,104.34209 z M 125.27083,804.39583 C 125.60313,804.06354 126.46563,804.02802 127.18750,804.31689 C 127.98523,804.63611 127.74828,804.87307 126.58333,804.92105 C 125.52917,804.96447 124.93854,804.72812 125.27083,804.39583 z M 80.000000,798.00000 C 80.000000,797.45000 80.423442,797.00000 80.940983,797.00000 C 81.458524,797.00000 82.160081,797.45000 82.500000,798.00000 C 82.839919,798.55000 82.416476,799.00000 81.559017,799.00000 C 80.701558,799.00000 80.000000,798.55000 80.000000,798.00000 z M 561.00000,743.00000 C 561.00000,742.45000 561.45000,742.00000 562.00000,742.00000 C 562.55000,742.00000 563.00000,742.45000 563.00000,743.00000 C 563.00000,743.55000 562.55000,744.00000 562.00000,744.00000 C 561.45000,744.00000 561.00000,743.55000 561.00000,743.00000 z M 46.270833,727.39583 C 46.603125,727.06354 47.465625,727.02802 48.187500,727.31689 C 48.985233,727.63611 48.748276,727.87307 47.583333,727.92105 C 46.529167,727.96447 45.938542,727.72812 46.270833,727.39583 z M 36.270833,722.39583 C 36.603125,722.06354 37.465625,722.02802 38.187500,722.31689 C 38.985233,722.63611 38.748276,722.87307 37.583333,722.92105 C 36.529167,722.96447 35.938542,722.72812 36.270833,722.39583 z M 55.458881,718.93347 C 54.591204,717.52954 54.872533,717.34510 59.000000,716.61189 C 62.176614,716.04759 62.269010,716.09270 60.000000,717.10008 C 57.614373,718.15924 57.591499,718.24775 59.500000,719.03472 C 61.270575,719.76483 61.191311,719.86749 58.809017,719.92971 C 57.328976,719.96837 55.821415,719.52006 55.458881,718.93347 z M 569.11600,690.84362 C 569.01600,688.55361 569.31033,688.27219 571.25000,688.80318 C 572.99770,689.28162 573.12305,689.49768 571.81148,689.77104 C 570.88280,689.96460 569.92250,690.88280 569.67748,691.81148 C 569.41282,692.81465 569.18492,692.42180 569.11600,690.84362 z M 493.00000,682.50000 C 493.68469,681.67500 494.69489,681.00000 495.24489,681.00000 C 495.80272,681.00000 495.69443,681.66326 495.00000,682.50000 C 494.31531,683.32500 493.30511,684.00000 492.75511,684.00000 C 492.19728,684.00000 492.30557,683.33674 493.00000,682.50000 z M 466.25000,660.44135 C 464.77744,658.84282 464.65420,658.00000 465.89301,658.00000 C 466.74613,658.00000 468.34348,661.00885 467.77354,661.54227 C 467.62309,661.68308 466.93750,661.18766 466.25000,660.44135 z M 468.00000,657.44098 C 468.00000,656.58352 468.45000,656.16008 469.00000,656.50000 C 469.55000,656.83992 470.00000,657.54148 470.00000,658.05902 C 470.00000,658.57656 469.55000,659.00000 469.00000,659.00000 C 468.45000,659.00000 468.00000,658.29844 468.00000,657.44098 z M 532.67589,657.59777 C 532.37994,656.82654 532.35785,655.97548 532.62681,655.70653 C 533.40498,654.92835 537.00000,656.13606 537.00000,657.17565 C 537.00000,657.69396 536.55000,657.83992 536.00000,657.50000 C 535.45000,657.16008 535.00000,657.35852 535.00000,657.94098 C 535.00000,659.48654 533.30460,659.23617 532.67589,657.59777 z M 510.66667,655.33333 C 510.30000,654.96667 510.02852,653.72917 510.06339,652.58333 C 510.12167,650.66774 510.20391,650.69285 511.08487,652.89518 C 512.06418,655.34340 511.86104,656.52771 510.66667,655.33333 z M 471.70565,650.06457 C 470.07925,648.41805 470.06351,648.18961 471.53744,647.62401 C 472.43181,647.28080 473.23927,647.00032 473.33179,647.00071 C 473.42430,647.00109 473.56490,648.12609 473.64421,649.50071 C 473.72353,650.87532 473.72353,651.97326 473.64421,651.94057 C 473.56490,651.90788 472.69254,651.06368 471.70565,650.06457 z M 472.75525,642.50000 C 472.43478,640.82359 472.72581,640.00000 473.63867,640.00000 C 474.38740,640.00000 475.00689,640.56250 475.01531,641.25000 C 475.02568,642.09652 475.33092,642.02517 475.96094,641.02896 C 477.28698,638.93218 477.92494,640.08220 476.91566,642.75000 C 475.77806,645.75700 473.34997,645.61110 472.75525,642.50000 z M 478.00000,634.10699 C 478.00000,633.06583 478.67500,631.95496 479.50000,631.63837 C 480.58369,631.22252 481.00000,631.74790 481.00000,633.53138 C 481.00000,635.05904 480.42825,636.00000 479.50000,636.00000 C 478.67500,636.00000 478.00000,635.14814 478.00000,634.10699 z M 482.00000,634.05902 C 482.00000,633.54148 482.45000,632.83992 483.00000,632.50000 C 483.55000,632.16008 484.00000,632.58352 484.00000,633.44098 C 484.00000,634.29844 483.55000,635.00000 483.00000,635.00000 C 482.45000,635.00000 482.00000,634.57656 482.00000,634.05902 z M 471.00000,629.00000 C 469.17203,627.81868 470.75091,627.81868 473.50000,629.00000 C 474.81874,629.56668 474.98906,629.87815 474.00000,629.91440 C 473.17500,629.94464 471.82500,629.53316 471.00000,629.00000 z M 474.00000,231.05040 C 474.00000,230.01265 473.72686,228.45177 473.39301,227.58179 C 472.99470,226.54380 473.33849,226.00000 474.39301,226.00000 C 475.27686,226.00000 476.00000,226.63820 476.00000,227.41821 C 476.00000,228.19823 476.25086,229.49016 476.55747,230.28917 C 476.86408,231.08818 476.41408,232.01086 475.55747,232.33957 C 474.48664,232.75049 474.00000,232.34768 474.00000,231.05040 z M 434.67619,224.59854 C 434.36373,223.78428 434.89428,222.99940 435.94243,222.72531 C 437.31039,222.36758 437.62805,222.70634 437.25660,224.12677 C 436.67763,226.34076 435.43212,226.56847 434.67619,224.59854 z M 465.51008,225.01631 C 465.16462,224.45734 465.58352,224.00000 466.44098,224.00000 C 468.19751,224.00000 468.45614,224.60006 467.06910,225.45729 C 466.55710,225.77373 465.85554,225.57528 465.51008,225.01631 z M 455.00000,217.05902 C 455.00000,216.54148 455.44485,215.84310 455.98855,215.50708 C 456.55541,215.15674 456.72305,215.55814 456.38156,216.44806 C 455.71677,218.18048 455.00000,218.49745 455.00000,217.05902 z M 449.00000,212.55902 C 449.00000,212.31648 449.45000,211.83992 450.00000,211.50000 C 450.55000,211.16008 451.00000,211.35852 451.00000,211.94098 C 451.00000,212.52344 450.55000,213.00000 450.00000,213.00000 C 449.45000,213.00000 449.00000,212.80156 449.00000,212.55902 z M 145.96421,195.16435 C 146.62301,193.87975 147.43630,193.10296 147.77150,193.43816 C 148.10670,193.77336 147.56767,194.82440 146.57366,195.77381 C 144.84591,197.42403 144.81909,197.39721 145.96421,195.16435 z M 151.00000,189.60699 C 151.00000,189.39083 151.69837,188.94599 152.55194,188.61844 C 153.44186,188.27695 153.84326,188.44459 153.49292,189.01145 C 152.90566,189.96166 151.00000,190.41690 151.00000,189.60699 z " id="path1325" style="fill:#d1cccc"/>
+ <path d="M 145.00000,804.97551 C 128.36438,803.32359 107.52395,798.85709 86.447059,792.42649 C 76.888849,789.51027 74.319237,789.10873 67.445788,789.45729 C 58.529233,789.90947 56.720815,790.44764 49.182686,794.89228 C 37.945034,801.51824 29.729331,800.78320 19.805622,792.26397 C 6.3688612,780.72888 0.49618701,764.52263 6.4565825,755.42592 L 8.0045777,753.06338 L 11.368888,755.34646 C 13.808614,757.00211 15.729532,757.51323 18.358579,757.20630 C 20.352537,756.97352 21.767522,756.43286 21.502990,756.00484 C 21.238457,755.57681 21.697615,754.66592 22.523342,753.98063 C 23.746597,752.96542 23.790861,752.44584 22.762331,751.17536 C 21.886857,750.09394 21.864925,749.83501 22.690766,750.33045 C 23.560331,750.85212 23.740299,750.02724 23.357948,747.27241 C 22.963091,744.42747 23.096817,743.86878 23.901869,745.00000 C 24.732581,746.16727 24.979826,745.61272 25.016491,742.50000 C 25.060075,738.79986 25.171609,738.64270 26.504286,740.40350 C 27.822820,742.14561 27.999972,742.16365 28.593764,740.61625 C 28.969676,739.63664 28.533247,738.14173 27.556138,737.06203 C 25.622341,734.92521 26.654502,733.83538 29.826459,734.66487 C 31.981196,735.22835 32.312981,736.09221 32.291613,741.08333 C 32.285530,742.50417 32.824050,743.66667 33.488325,743.66667 C 34.170699,743.66667 34.653444,742.43512 34.598048,740.83561 C 34.544122,739.27853 34.162500,738.00353 33.750000,738.00228 C 33.337500,738.00103 33.000000,737.14814 33.000000,736.10699 C 33.000000,735.06583 32.325000,733.95496 31.500000,733.63837 C 30.619403,733.30046 30.000000,731.80068 30.000000,730.00638 C 30.000000,727.41552 29.546486,726.85930 27.022426,726.35449 C 25.384761,726.02695 23.472261,725.06762 22.772426,724.22263 C 21.650916,722.86851 21.974420,722.77081 25.500000,723.39893 C 31.395541,724.44927 41.000000,728.31522 41.000000,729.63792 C 41.000000,731.10734 44.154159,732.35116 44.920050,731.18376 C 45.239023,730.69758 47.300000,730.02719 49.500000,729.69401 C 62.168581,727.77544 65.918153,727.10442 69.750000,726.07010 C 73.591008,725.03331 75.662370,723.00000 72.877555,723.00000 C 72.102049,723.00000 72.139896,722.53636 73.000000,721.50000 C 74.775823,719.36026 76.325782,719.64621 75.710251,722.00000 C 75.066914,724.46012 77.282372,724.64603 82.135190,722.53914 L 85.500000,721.07828 L 82.000000,720.88931 C 78.817779,720.71749 78.756819,720.66182 81.328590,720.27616 C 83.220060,719.99252 83.982398,719.39651 83.629619,718.47719 C 83.325036,717.68345 83.931944,716.83899 85.065550,716.47920 C 87.952333,715.56297 86.218526,713.70841 83.132783,714.41182 C 81.684752,714.74190 76.675000,715.20609 72.000000,715.44334 L 63.500000,715.87471 L 69.887613,713.97717 C 76.090423,712.13452 77.967153,711.73743 88.500000,710.03898 C 110.33140,706.51862 108.90588,706.60758 111.17723,708.62372 C 113.27080,710.48205 113.27972,710.47848 112.11033,708.25000 C 111.03010,706.19146 111.15038,706.00000 113.52383,706.00000 C 114.95064,706.00000 115.85446,706.42648 115.53231,706.94773 C 115.20726,707.47366 115.90881,707.71014 117.10860,707.47909 C 120.01991,706.91842 120.78607,706.01497 118.41667,705.93661 C 116.66081,705.87855 116.67676,705.80179 118.60676,705.02183 C 119.76547,704.55356 126.96547,703.64526 134.60676,703.00339 C 148.72950,701.81708 153.90566,700.65653 154.11842,698.62868 C 154.18355,698.00791 154.32905,659.70000 154.44176,613.50000 C 154.58245,555.83323 154.98861,528.55953 155.73739,526.50000 C 156.54646,524.27464 156.89911,542.47876 157.10312,597.00000 C 157.45352,690.64543 157.56600,698.91071 158.50187,699.78164 C 158.92644,700.17674 159.45338,700.00146 159.67286,699.39214 C 159.89234,698.78281 161.59792,698.40535 163.46304,698.55334 C 165.53320,698.71760 167.04820,698.31678 167.35227,697.52439 C 167.69041,696.64321 167.15184,696.35415 165.67518,696.62427 C 164.47883,696.84312 164.08128,696.74843 164.79174,696.41384 C 165.79371,695.94197 165.81806,695.48570 164.90027,694.37983 C 164.09259,693.40663 163.92110,690.75880 164.35995,686.03697 C 164.76108,681.72090 164.62013,678.88326 163.98510,678.49079 C 162.49808,677.57176 163.80678,676.00000 166.05902,676.00000 C 168.73507,676.00000 168.50624,673.40056 165.75000,672.48968 L 163.50000,671.74610 L 165.75000,671.30350 C 168.53696,670.75527 168.72746,669.00000 166.00000,669.00000 C 164.90000,669.00000 164.00000,668.55000 164.00000,668.00000 C 164.00000,667.45000 165.12500,667.00000 166.50000,667.00000 C 167.94237,667.00000 169.00000,666.42409 169.00000,665.63867 C 169.00000,664.71083 168.16965,664.43607 166.39235,664.77583 C 163.85050,665.26173 163.82898,665.22260 165.53940,663.22497 C 166.50449,662.09783 167.84379,661.38656 168.51563,661.64437 C 169.18747,661.90218 169.97917,661.18766 170.27496,660.05656 C 170.57075,658.92545 171.52989,658.00000 172.40638,658.00000 C 173.28287,658.00000 174.00000,657.55000 174.00000,657.00000 C 174.00000,656.45000 173.37031,656.00000 172.60069,656.00000 C 171.66254,656.00000 171.08378,654.52122 170.84451,651.51283 C 170.51556,647.37684 170.70333,646.95047 173.24381,646.06485 C 175.42545,645.30433 176.00000,645.40588 176.00000,646.55202 C 176.00000,647.34841 176.56250,648.03553 177.25000,648.07895 C 178.25000,648.14211 178.25000,648.25877 177.25000,648.66228 C 175.47530,649.37839 175.69631,652.00000 177.53138,652.00000 C 178.37365,652.00000 179.30482,651.36923 179.60065,650.59830 C 179.89649,649.82736 181.71540,648.90077 183.64268,648.53921 C 186.71235,647.96334 186.98273,647.68387 185.82341,646.28519 C 184.61474,644.82698 184.47197,644.83210 184.17668,646.34427 C 183.98193,647.34155 182.88831,648.00000 181.42668,648.00000 C 179.26222,648.00000 179.00000,647.56777 179.00000,644.00000 C 179.00000,641.11111 178.58333,640.00000 177.50000,640.00000 C 176.67500,640.00000 176.00000,640.65159 176.00000,641.44798 C 176.00000,642.62258 175.43360,642.69851 173.00000,641.85016 C 171.35000,641.27496 170.00000,640.34212 170.00000,639.77717 C 170.00000,639.16920 171.22434,638.99487 173.00000,639.35000 C 175.18363,639.78673 176.00000,639.57130 176.00000,638.55833 C 176.00000,637.79292 175.43750,636.90417 174.75000,636.58333 C 173.75000,636.11667 173.75000,635.88333 174.75000,635.41667 C 175.43750,635.09583 176.00000,634.20708 176.00000,633.44167 C 176.00000,632.42870 175.18363,632.21327 173.00000,632.65000 C 170.58229,633.13354 170.00000,632.91083 170.00000,631.50256 C 170.00000,630.08602 170.27575,629.98397 171.45620,630.96365 C 173.45378,632.62149 174.99694,631.41932 175.01531,628.19098 C 175.02682,626.16849 175.25852,625.86023 175.94800,626.95010 C 176.49361,627.81256 178.31098,628.35922 180.43268,628.29907 C 183.32897,628.21698 184.00000,628.56216 184.00000,630.13416 C 184.00000,631.76474 183.68221,631.90029 181.98675,630.99291 C 179.14667,629.47295 177.20991,630.93436 178.00155,634.00000 L 178.64714,636.50000 L 179.39096,634.25000 C 180.26879,631.59463 182.96898,631.22769 183.07029,633.75000 C 183.13096,635.26066 183.24519,635.23253 183.90551,633.54435 C 184.66466,631.60349 184.67902,631.60349 185.80481,633.54435 C 186.81042,635.27802 186.94263,635.30136 186.96959,633.75000 C 186.98632,632.78750 186.55000,632.00000 186.00000,632.00000 C 185.45000,632.00000 185.00000,630.17344 185.00000,627.94098 C 185.00000,625.52097 184.60083,624.12867 184.01145,624.49292 C 183.44459,624.84326 183.27695,624.44186 183.61844,623.55194 C 184.09709,622.30460 183.40789,622.00000 180.10699,622.00000 C 177.84814,622.00000 176.00000,621.55000 176.00000,621.00000 C 176.00000,620.45000 177.80000,620.00000 180.00000,620.00000 C 182.20513,620.00000 184.00000,620.48611 184.00000,621.08333 C 184.00000,621.67917 184.56250,621.96998 185.25000,621.72959 C 185.93750,621.48920 186.36639,620.54567 186.20309,619.63287 C 186.03979,618.72007 186.60229,617.70611 187.45309,617.37963 C 188.55733,616.95589 189.00000,615.38581 189.00000,611.89301 C 189.00000,609.20186 188.66250,607.00689 188.25000,607.01531 C 186.25741,607.05600 185.12007,608.88134 184.82450,612.51298 C 184.50093,616.48852 184.48704,616.50059 180.00000,616.70347 L 175.50000,616.90694 L 179.75000,614.91563 C 182.08750,613.82041 184.00000,612.48771 184.00000,611.95406 C 184.00000,611.42042 182.10264,610.22463 179.78364,609.29675 L 175.56728,607.60970 L 178.78364,606.77626 C 181.02258,606.19609 182.00000,605.34951 182.00000,603.99046 C 182.00000,601.94147 178.02137,600.25073 176.05684,601.46487 C 175.47558,601.82411 175.00000,601.64148 175.00000,601.05902 C 175.00000,600.39672 178.18421,600.00000 183.50000,600.00000 C 188.17500,600.00000 192.00000,600.40546 192.00000,600.90102 C 192.00000,601.39659 190.43879,601.75779 188.53065,601.70370 C 186.62251,601.64962 184.72304,601.94362 184.30961,602.35705 C 182.90463,603.76203 186.12690,604.70709 192.70444,604.81918 C 196.31236,604.88066 199.50483,605.17150 199.79881,605.46548 C 200.09280,605.75947 198.45833,606.00000 196.16667,606.00000 C 193.12963,606.00000 192.00000,606.40667 192.00000,607.50000 C 192.00000,608.61399 193.17322,609.00000 196.55902,609.00000 C 199.36503,609.00000 200.87871,608.61277 200.49563,607.99294 C 200.15332,607.43905 200.60262,606.70598 201.49409,606.36389 C 202.42691,606.00594 202.87098,605.10616 202.54022,604.24421 C 202.22412,603.42047 202.47836,602.12854 203.10519,601.37325 C 204.01062,600.28228 203.80861,600.00000 202.12244,600.00000 C 200.83447,600.00000 200.00000,599.36442 200.00000,598.38342 C 200.00000,596.74826 197.78604,596.78191 193.75000,598.47839 C 192.40430,599.04404 192.00000,598.72720 192.00000,597.10699 C 192.00000,595.32451 191.39934,595.00000 188.10000,595.00000 C 184.30952,595.00000 184.20000,594.90171 184.20000,591.50000 C 184.20000,588.18627 184.38095,588.00000 187.60000,588.00000 C 191.17036,588.00000 191.79940,588.80060 189.80000,590.80000 C 188.86667,591.73333 188.95926,592.00000 190.21667,592.00000 C 191.10583,592.00000 192.03958,591.43750 192.29167,590.75000 C 192.65833,589.75000 193.01500,589.75000 194.07500,590.75000 C 195.16618,591.77941 195.10000,592.00000 193.70000,592.00000 C 192.76500,592.00000 192.00000,592.67500 192.00000,593.50000 C 192.00000,595.37498 194.72006,595.37498 198.00000,593.50000 C 199.37500,592.71398 202.03750,592.05492 203.91667,592.03544 C 208.42072,591.98872 207.07867,590.77845 201.73143,590.06476 C 198.88783,589.68523 197.50000,589.00803 197.50000,588.00000 C 197.50000,586.30584 198.85750,586.34608 204.25000,588.20009 C 206.94877,589.12796 208.00000,590.06554 208.00000,591.54469 C 208.00000,593.87397 209.76560,596.00000 211.70000,596.00000 C 213.72822,596.00000 213.22604,594.20652 211.00000,593.50000 C 209.40907,592.99506 209.00000,591.98697 209.00000,588.57128 C 209.00000,584.51979 208.85754,584.30458 206.47682,584.75968 C 204.68008,585.10315 203.30617,584.54339 201.70480,582.81548 C 200.46794,581.48089 198.64985,580.07961 197.66460,579.70154 C 195.53839,578.88563 196.45307,576.83326 198.83859,577.06730 C 202.24654,577.40167 203.00000,576.93683 203.00000,574.50000 C 203.00000,571.75898 201.54717,571.13171 200.64484,573.48314 C 200.32100,574.32707 199.41292,574.71195 198.53785,574.37615 C 196.56640,573.61963 196.54060,572.00000 198.50000,572.00000 C 199.32500,572.00000 200.00000,571.51045 200.00000,570.91210 C 200.00000,570.20097 198.52811,570.04039 195.75000,570.44842 C 191.62794,571.05385 191.57526,571.02746 194.00000,569.57175 L 196.50000,568.07087 L 193.80902,568.03544 C 192.32898,568.01595 190.83992,568.45000 190.50000,569.00000 C 189.05272,571.34174 188.00000,569.65738 188.00000,565.00000 C 188.00000,560.08443 186.81694,558.42870 185.58974,561.62675 C 185.24640,562.52146 185.42881,563.81175 185.99508,564.49407 C 186.72262,565.37071 186.58100,566.10285 185.51233,566.98977 C 184.23950,568.04612 184.00000,567.89197 184.00000,566.01635 C 184.00000,564.79065 182.65000,562.08329 181.00000,560.00000 C 178.94242,557.40210 178.00000,555.09791 178.00000,552.66511 C 178.00000,550.71422 177.55000,548.83992 177.00000,548.50000 C 176.45000,548.16008 176.00000,548.80852 176.00000,549.94098 C 176.00000,551.21221 175.34958,552.00000 174.30000,552.00000 C 172.97778,552.00000 172.86667,551.73333 173.80000,550.80000 C 175.50697,549.09303 175.29376,548.22801 172.98548,547.49539 C 171.87749,547.14373 171.24036,546.42010 171.56964,545.88733 C 171.89891,545.35455 173.03044,545.19227 174.08416,545.52671 C 175.15514,545.86663 176.00000,545.66407 176.00000,545.06739 C 176.00000,543.57551 178.73614,543.72785 179.27976,545.25000 C 179.52530,545.93750 180.02685,546.22345 180.39432,545.88544 C 181.09988,545.23645 178.03073,538.73588 176.75000,538.16667 C 176.33750,537.98333 176.00000,536.74583 176.00000,535.41667 C 176.00000,533.93519 175.41954,533.00000 174.50000,533.00000 C 172.45473,533.00000 172.60294,531.36634 174.72197,530.55319 C 176.19709,529.98714 176.23293,529.75896 174.97197,528.96152 C 173.68217,528.14583 173.68564,528.01014 175.00000,527.86512 C 175.82500,527.77409 174.47500,527.40417 172.00000,527.04308 L 167.50000,526.38655 L 170.46612,525.13586 C 172.83438,524.13726 173.13672,523.69827 171.96612,522.95790 C 170.85725,522.25657 171.17010,522.02689 173.25000,522.01531 C 174.76250,522.00689 176.00000,522.39752 176.00000,522.88337 C 176.00000,523.36922 176.90000,524.00209 178.00000,524.28975 C 179.37408,524.64908 180.00000,525.65376 180.00000,527.50000 C 180.00000,529.34624 180.62592,530.35092 182.00000,530.71025 C 184.41137,531.34084 184.72986,534.83950 182.35763,534.63889 C 179.87109,534.42861 179.47247,537.04929 181.89464,537.68270 C 183.05259,537.98551 184.00000,538.63078 184.00000,539.11663 C 184.00000,539.60248 184.78750,540.03553 185.75000,540.07895 C 187.12894,540.14116 187.18574,540.28125 186.01786,540.73966 C 183.92789,541.56001 181.61591,544.00000 182.92857,544.00000 C 184.30820,544.00000 184.31953,547.28047 182.94464,548.65536 C 182.36199,549.23801 182.18659,550.89526 182.55305,552.35536 C 183.14470,554.71265 183.69398,555.00000 187.60841,555.00000 C 191.33333,555.00000 192.00000,555.30361 192.00000,557.00000 C 192.00000,559.47540 194.65830,559.62806 197.92461,557.34025 C 200.24878,555.71234 200.28481,555.72977 199.80324,558.24896 C 199.24287,561.18033 201.38001,561.02697 202.98911,558.02034 C 204.10217,555.94058 200.95849,552.58324 197.00000,551.62417 C 195.62500,551.29103 195.06530,551.27774 195.75623,551.59464 C 196.44716,551.91154 196.75810,552.58239 196.44721,553.08541 C 195.62628,554.41372 192.23565,554.20696 191.76667,552.80000 C 191.54667,552.14000 189.70917,551.60000 187.68333,551.60000 C 184.89299,551.60000 184.00000,551.19059 184.00000,549.91129 C 184.00000,548.11274 190.10757,546.33042 192.08432,547.55211 C 192.66198,547.90913 193.38181,547.25595 193.68394,546.10062 C 194.37364,543.46319 197.59600,543.34709 198.27283,545.93529 C 198.63882,547.33486 199.36461,547.71741 200.89478,547.31726 C 202.05851,547.01294 203.70723,547.34206 204.55861,548.04864 C 205.43664,548.77734 208.68022,549.33333 212.05328,549.33333 C 216.34221,549.33333 218.00000,549.70503 218.00000,550.66667 C 218.00000,551.40000 218.90000,552.00000 220.00000,552.00000 C 221.11111,552.00000 222.00000,551.33333 222.00000,550.50000 C 222.00000,549.67500 222.45000,549.00000 223.00000,549.00000 C 223.55000,549.00000 224.00000,549.76101 224.00000,550.69113 C 224.00000,552.19800 224.14792,552.17996 225.35765,550.52556 C 226.67734,548.72078 226.74723,548.72242 227.85692,550.58443 C 228.98021,552.46927 229.02261,552.46886 230.49926,550.55887 C 231.32467,549.49125 232.00000,549.13034 232.00000,549.75685 C 232.00000,550.58826 232.81036,550.61347 235.00000,549.85016 C 238.78267,548.53151 238.79966,547.47441 235.05912,546.17046 C 232.94971,545.43511 232.01205,545.46384 231.74264,546.27207 C 231.53368,546.89897 231.07772,546.64492 230.71491,545.69944 C 230.35623,544.76475 230.49865,544.00000 231.03138,544.00000 C 231.56412,544.00000 232.00000,543.10000 232.00000,542.00000 C 232.00000,539.74661 234.03862,539.41512 237.26794,541.14340 C 238.70478,541.91237 239.51762,541.94714 239.75015,541.24956 C 239.94031,540.67907 241.04161,540.45963 242.19749,540.76189 C 243.51308,541.10593 244.75795,540.68392 245.52602,539.63353 C 246.48517,538.32181 247.30215,538.16438 249.26916,538.91224 C 250.65307,539.43840 252.73365,539.62091 253.89268,539.31781 C 255.05171,539.01472 256.00000,539.19048 256.00000,539.70839 C 256.00000,540.92406 263.28687,540.79596 264.17354,539.56470 C 264.57954,539.00092 266.53664,539.18702 269.10069,540.03323 C 272.47646,541.14733 273.44101,541.17696 273.77440,540.17679 C 274.10252,539.19245 274.51089,539.17911 275.63963,540.11588 C 276.58669,540.90188 277.42366,540.97634 278.06807,540.33193 C 278.69720,539.70280 281.46120,539.67150 285.74194,540.24504 C 289.42175,540.73806 294.02269,540.79277 295.96625,540.36661 C 300.18397,539.44179 304.01005,539.76345 305.72539,541.18705 C 306.41242,541.75724 307.76776,541.91627 308.73727,541.54046 C 310.42002,540.88816 310.42011,540.79832 308.73917,539.56042 C 307.22125,538.44256 307.56612,538.32519 311.23917,538.70959 C 313.58263,538.95483 316.93092,539.23892 318.67982,539.34089 C 320.42871,539.44287 322.18731,539.85398 322.58781,540.25447 C 322.98830,540.65497 323.92557,540.47674 324.67062,539.85840 C 325.41567,539.24006 329.50707,538.62029 333.76263,538.48114 C 343.65531,538.15765 350.81921,537.08536 354.05913,535.44317 C 355.59719,534.66359 357.17166,534.48806 358.00525,535.00325 C 358.80414,535.49699 360.18919,535.43393 361.27181,534.85453 C 363.54468,533.63813 367.57074,529.71223 367.31920,528.95759 C 367.21976,528.65927 368.05812,528.34590 369.18223,528.26123 C 371.97510,528.05085 372.50386,527.31205 371.08509,525.60253 C 370.14794,524.47333 370.17148,523.68456 371.19259,522.00058 C 372.31788,520.14478 373.12683,519.92287 377.00000,520.40749 C 379.47500,520.71717 382.17500,520.51350 383.00000,519.95489 C 384.10500,519.20670 383.75303,519.11318 381.66339,519.59977 C 379.10340,520.19588 378.85961,520.02819 379.16339,517.88014 C 379.37352,516.39432 380.26345,515.39067 381.53185,515.20904 C 385.89735,514.58389 389.36761,499.54431 386.82580,492.26586 C 386.10247,490.19464 385.11765,488.21562 384.63730,487.86803 C 384.15695,487.52045 384.73459,486.26541 385.92094,485.07906 C 388.57939,482.42061 392.00000,476.45080 392.00000,474.46958 C 392.00000,473.66131 392.45000,473.00000 393.00000,473.00000 C 393.55000,473.00000 394.00000,472.56998 394.00000,472.04441 C 394.00000,471.51883 395.12500,469.43104 396.50000,467.40486 L 399.00000,463.72091 L 398.98795,466.61045 C 398.98133,468.19970 397.92284,471.34134 396.63575,473.59188 C 394.73987,476.90691 394.52362,477.99560 395.49667,479.32633 C 396.15727,480.22975 396.99076,480.67591 397.34888,480.31779 C 397.70699,479.95967 398.00000,480.66822 398.00000,481.89235 C 398.00000,483.11648 398.39879,483.87157 398.88619,483.57034 C 400.14165,482.79442 401.18549,492.91460 400.21135,496.41795 L 399.40000,499.33589 L 397.61485,494.66156 C 396.63302,492.09067 395.51206,490.18353 395.12384,490.42346 C 394.73562,490.66340 394.58080,489.42877 394.77980,487.67985 C 394.97880,485.93093 394.71386,483.37500 394.19103,482.00000 C 393.28194,479.60911 393.18775,479.69336 392.03317,483.93016 C 391.36916,486.36675 391.11913,489.74175 391.47753,491.43016 C 392.72813,497.32165 393.14358,503.55068 392.19357,502.16615 C 391.45187,501.08523 391.16308,501.13263 390.67055,502.41615 C 390.33627,503.28727 390.49865,504.00000 391.03138,504.00000 C 391.56412,504.00000 392.00000,504.48002 392.00000,505.06672 C 392.00000,505.65342 393.12500,507.60839 394.50000,509.41111 C 396.55338,512.10323 397.00585,513.83314 397.03272,519.09439 C 397.05071,522.61748 397.46882,528.63208 397.96184,532.46018 C 398.45486,536.28827 398.60031,539.83770 398.28506,540.34778 C 397.96981,540.85787 397.65512,547.62579 397.58576,555.38761 C 397.51640,563.14942 397.08595,570.09279 396.62921,570.81731 C 396.05609,571.72644 396.48785,572.31481 398.02263,572.71617 L 400.24648,573.29772 L 397.87324,574.61342 C 396.56796,575.33706 395.95000,575.94527 396.50000,575.96499 C 397.08229,575.98587 397.60496,580.28223 397.75127,586.25043 C 398.08046,599.67804 398.97845,608.00000 400.09819,608.00000 C 401.16591,608.00000 401.32791,600.47685 401.02412,565.00000 C 400.89931,550.42500 401.15421,536.25000 401.59056,533.50000 L 402.38391,528.50000 L 403.12316,532.50000 C 403.52975,534.70000 403.91435,553.31639 403.97783,573.86974 C 404.07996,606.94058 403.90783,611.44437 402.48148,613.02047 C 401.59501,614.00001 401.28214,615.05634 401.78622,615.36788 C 402.29030,615.67942 402.65712,617.18659 402.60137,618.71716 C 402.50031,621.49138 402.47212,621.50222 393.50000,622.21821 C 388.55000,622.61323 379.63060,623.14710 373.67911,623.40460 C 361.99458,623.91014 359.92236,624.74679 360.13618,628.87244 C 360.25059,631.07991 360.33956,631.15620 360.69267,629.34965 C 361.49108,625.26493 372.25459,625.98706 375.89157,630.36935 C 376.72455,631.37303 378.02790,631.80853 379.14118,631.45519 C 380.20196,631.11851 381.00000,631.34882 381.00000,631.99163 C 381.00000,632.61115 381.47445,632.82481 382.05434,632.46642 C 382.75525,632.03323 382.58765,631.01961 381.55434,629.44258 C 380.69945,628.13786 380.00000,626.59991 380.00000,626.02490 C 380.00000,624.83125 385.70985,625.25012 393.89001,627.04386 C 396.85451,627.69392 401.01701,627.99280 403.14001,627.70805 C 405.26300,627.42329 407.00000,627.60607 407.00000,628.11421 C 407.00000,628.62235 408.12081,628.75680 409.49068,628.41298 C 414.79005,627.08293 413.58285,633.90253 407.31034,640.72995 C 398.09703,650.75835 393.47728,655.01339 392.29516,654.55977 C 391.47573,654.24532 390.99758,654.87769 390.99341,656.28138 C 390.98979,657.50162 390.09275,659.85000 389.00000,661.50000 C 386.61829,665.09626 386.45602,669.04739 388.52568,673.04966 C 391.06019,677.95087 392.11273,676.36005 389.95587,670.88805 C 387.69860,665.16130 388.42923,663.00000 392.62244,663.00000 C 394.56155,663.00000 395.00000,662.48202 395.00000,660.19113 C 395.00000,656.56707 397.08695,653.75845 400.10865,653.31592 C 402.34502,652.98840 407.57496,648.00612 411.00000,642.94034 C 411.82500,641.72013 413.41257,639.54688 414.52793,638.11089 C 418.30626,633.24643 422.00000,627.39775 422.00000,626.27958 C 422.00000,625.66748 422.52717,624.99094 423.17149,624.77617 C 423.86586,624.54471 424.27969,622.57620 424.18759,619.94284 C 424.06622,616.47252 423.43790,614.98053 421.31717,613.12685 L 418.60214,610.75370 L 422.05107,611.49968 C 423.94798,611.90996 427.47231,613.28924 429.88292,614.56473 C 433.69010,616.57919 434.30923,617.36746 434.59621,620.56569 C 434.99276,624.98494 436.87676,631.00000 437.86438,631.00000 C 439.66274,631.00000 437.22197,642.94110 434.19102,648.97141 C 431.86145,653.60625 431.10926,656.22099 431.54059,658.18480 C 432.08571,660.66671 431.49581,661.39891 425.32142,665.90423 C 421.56964,668.64182 417.68706,672.25830 416.69346,673.94084 C 415.69987,675.62338 414.46237,677.00000 413.94346,677.00000 C 412.55009,677.00000 412.79674,680.75447 414.25000,681.66602 C 414.93750,682.09726 416.35060,682.30984 417.39023,682.13843 C 418.78035,681.90923 419.11553,682.25656 418.65708,683.45124 C 418.28500,684.42088 418.63158,685.30513 419.51686,685.64484 C 421.44460,686.38459 421.43304,688.00000 419.50000,688.00000 C 418.67500,688.00000 418.00000,688.73010 418.00000,689.62244 C 418.00000,690.90574 418.29495,691.00011 419.41097,690.07389 C 421.29516,688.51015 422.61846,690.54988 420.99155,692.51018 C 420.14458,693.53072 420.09794,694.71944 420.82651,696.71638 L 421.84211,699.50000 L 421.92105,696.87500 C 422.07110,691.88598 423.25504,688.00000 424.62500,688.00000 C 425.38125,688.00000 426.00000,687.10000 426.00000,686.00000 C 426.00000,684.90000 425.55722,684.00000 425.01605,684.00000 C 422.96266,684.00000 428.26853,676.08591 432.10384,673.42804 C 434.30915,671.89975 436.90631,669.49074 437.87529,668.07467 C 439.48976,665.71530 442.06763,658.63540 442.63593,655.00000 C 442.76490,654.17500 443.65098,651.02500 444.60500,648.00000 C 445.55903,644.97500 446.32025,640.59622 446.29662,638.26937 C 446.27299,635.94252 446.64658,634.28158 447.12683,634.57838 C 447.60707,634.87519 448.00000,633.74148 448.00000,632.05902 C 448.00000,629.72430 448.44822,629.00000 449.89301,629.00000 C 451.86238,629.00000 453.51481,631.56379 452.10645,632.43421 C 449.57643,633.99785 450.59126,672.00000 453.16303,672.00000 C 454.81657,672.00000 453.95826,674.95197 452.00000,676.00000 C 450.90000,676.58870 450.00000,677.98109 450.00000,679.09420 C 450.00000,680.38476 450.42389,680.85605 451.16994,680.39497 C 451.99298,679.88631 452.11035,680.23945 451.56579,681.58596 C 450.06685,685.29229 449.10981,689.12754 449.38948,690.30730 C 449.54498,690.96328 449.49189,691.18778 449.27150,690.80618 C 449.05111,690.42457 448.25358,690.34920 447.49921,690.63868 C 446.64685,690.96576 446.14803,692.64279 446.18151,695.06878 C 446.21114,697.21586 446.63977,698.72264 447.13401,698.41718 C 447.62825,698.11172 447.72646,697.36643 447.35227,696.76096 C 446.91877,696.05955 447.25721,695.88472 448.28503,696.27913 C 449.43894,696.72193 449.73334,696.46866 449.31919,695.38942 C 448.94545,694.41545 449.47064,693.68969 450.80092,693.34181 C 452.08317,693.00649 452.65252,692.25807 452.30812,691.36057 C 451.96992,690.47923 452.28856,690.03136 453.12732,690.20911 C 453.88229,690.36910 454.37635,689.90405 454.22522,689.17567 C 454.07410,688.44729 454.36061,688.10483 454.86192,688.41466 C 456.20209,689.24293 458.31886,686.27332 457.64326,684.51273 C 457.29802,683.61305 457.62169,683.00000 458.44194,683.00000 C 460.12465,683.00000 465.19565,673.15978 464.31185,671.60949 C 463.96398,670.99927 464.03780,670.82380 464.47591,671.21957 C 464.91401,671.61533 469.02935,664.41533 473.62110,655.21957 C 478.21285,646.02380 482.80169,637.44016 483.81851,636.14481 L 485.66729,633.78962 L 490.08365,636.06095 C 492.51264,637.31018 498.55000,639.32608 503.50000,640.54072 C 509.52332,642.01874 512.39968,643.17428 512.19669,644.03452 C 511.93386,645.14829 505.66465,658.54361 498.66316,672.95137 C 497.02826,676.31569 495.30822,678.02514 491.61979,679.95137 C 487.47548,682.11569 486.16148,683.58817 482.90582,689.71636 C 480.79725,693.68536 477.91171,700.43536 476.49352,704.71636 C 475.07532,708.99736 473.30917,713.85000 472.56872,715.50000 C 471.82828,717.15000 470.89233,719.62500 470.48884,721.00000 C 469.37995,724.77884 467.94222,726.11644 465.74050,725.41764 C 464.40403,724.99346 463.89877,725.19632 464.18122,726.04367 C 464.72047,727.66140 474.70415,730.22867 477.27852,729.41160 C 478.58265,728.99768 479.01874,729.16067 478.56621,729.89287 C 478.11589,730.62151 479.18415,731.04363 481.69098,731.12762 C 483.78594,731.19782 486.40000,731.42761 487.50000,731.63827 C 496.65627,733.39179 496.37340,733.46687 498.13250,728.81608 C 500.29277,723.10464 501.62178,716.20492 503.58666,700.50000 C 505.39938,686.01128 507.16059,679.65953 510.35073,676.10569 C 512.60374,673.59581 524.69760,667.51174 531.45163,665.49043 C 533.62502,664.83999 535.72285,663.67605 536.11347,662.90391 C 536.50408,662.13176 538.05749,658.92128 539.56548,655.76951 C 542.64058,649.34245 541.13231,649.62156 554.50000,653.00587 C 558.35000,653.98058 563.29432,655.09343 565.48737,655.47888 C 569.21455,656.13396 569.34890,656.27171 567.54624,657.58984 C 566.48557,658.36543 564.47271,659.00000 563.07322,659.00000 C 559.12431,659.00000 550.72431,663.72909 548.24423,667.34852 C 547.01372,669.14433 545.36506,672.83807 544.58053,675.55682 C 542.06985,684.25754 538.16987,704.26361 537.50274,711.86432 C 537.14724,715.91469 536.19453,722.43969 535.38561,726.36432 C 533.35771,736.20307 533.33651,736.53270 534.75000,736.25000 C 535.43750,736.11250 536.00000,736.43844 536.00000,736.97432 C 536.00000,738.52696 540.93586,740.67036 551.07663,743.52136 C 556.25948,744.97847 561.08157,746.65319 561.79238,747.24295 C 562.65960,747.96248 563.41590,747.98410 564.09134,747.30866 C 565.70142,745.69858 568.83804,728.53803 569.90536,715.50000 C 570.76807,704.96141 575.65096,679.67844 578.03415,673.41018 C 578.49976,672.18552 580.25756,670.37021 581.94036,669.37616 C 583.62316,668.38210 585.00000,667.21581 585.00000,666.78439 C 585.00000,666.35298 585.67500,666.00000 586.50000,666.00000 C 587.32500,666.00000 588.00000,665.58963 588.00000,665.08806 C 588.00000,664.58649 589.11246,664.29823 590.47214,664.44748 C 591.83182,664.59674 592.77905,664.44461 592.57710,664.10943 C 592.05676,663.24580 594.66457,660.99790 595.36928,661.70261 C 595.68959,662.02293 596.58051,661.76311 597.34909,661.12525 C 599.77913,659.10849 601.58872,660.89058 603.46242,667.14570 C 604.46214,670.48312 606.79207,675.19454 608.64004,677.61552 C 612.49919,682.67128 612.91539,686.24543 609.89159,688.36338 C 608.59269,689.27317 608.07976,690.32004 608.55564,691.09002 C 609.11394,691.99337 608.81299,692.14221 607.47011,691.62690 C 605.71383,690.95296 605.70497,691.01652 607.30825,692.78812 C 608.24111,693.81892 608.71426,694.95241 608.35968,695.30699 C 608.00511,695.66156 608.34031,696.70512 609.10457,697.62600 C 609.98138,698.68249 610.49522,701.74379 610.49707,705.92207 C 610.49975,711.97942 610.18602,712.97184 606.81618,717.56572 C 604.79008,720.32777 600.58361,724.36792 597.46846,726.54382 C 582.93310,736.69663 580.95993,739.64876 578.44870,755.00000 C 575.19519,774.88881 573.79310,780.11569 570.57945,784.33598 C 566.66593,789.47533 564.37429,790.61348 555.01630,792.06542 C 546.32745,793.41354 540.07539,792.77151 530.50000,789.54781 C 517.19772,785.06940 516.69167,785.11181 503.87148,791.77935 C 497.61717,795.03210 490.92500,798.00803 489.00000,798.39254 C 467.66424,802.65417 452.24683,803.45719 443.50000,800.76241 C 440.75000,799.91517 432.51530,796.47203 425.20067,793.11099 C 417.88604,789.74995 411.56552,787.00000 411.15507,787.00000 C 409.28700,787.00000 391.86647,777.33288 386.19709,773.15014 C 368.67562,760.22322 369.24210,760.34319 349.34125,765.34472 C 327.75092,770.77085 300.19948,772.87230 265.23611,771.75971 C 245.33436,771.12640 241.36002,771.24541 237.73611,772.58315 C 235.40625,773.44321 232.97778,774.18885 232.33951,774.24012 C 231.22188,774.32989 231.27075,776.12699 232.49581,779.98679 C 233.47571,783.07420 230.97110,790.69515 228.15061,793.20822 C 226.69277,794.50716 225.27500,795.59696 225.00000,795.63000 C 224.72500,795.66305 223.01885,796.45601 221.20855,797.39215 C 217.04435,799.54555 200.89353,803.53320 190.67764,804.93026 C 182.03821,806.11174 156.69520,806.13684 145.00000,804.97551 z M 186.64405,802.98284 C 197.86306,801.82501 214.44113,797.04290 216.65934,794.32463 C 217.47828,793.32109 217.83564,793.10740 217.45348,793.84977 C 216.88122,794.96143 217.17684,794.98164 219.12932,793.96431 C 222.40819,792.25589 222.90364,791.62767 220.35537,792.40972 C 219.01042,792.82247 217.63877,792.49592 216.67680,791.53394 C 215.83313,790.69027 214.66071,790.00000 214.07143,790.00000 C 213.48214,790.00000 213.00000,789.55638 213.00000,789.01419 C 213.00000,788.47199 211.28721,786.89490 209.19379,785.50955 L 205.38758,782.99072 L 195.44379,784.48946 C 181.63244,786.57114 146.86039,786.48326 127.50000,784.31776 C 109.35576,782.28828 106.17756,782.30432 94.000000,784.48675 C 88.775000,785.42317 82.283051,786.20997 79.573446,786.23521 L 74.646892,786.28110 L 78.573446,787.73259 C 80.733051,788.53091 83.400000,789.57700 84.500000,790.05725 C 87.562421,791.39426 104.33416,795.62921 115.50000,797.88491 C 142.27000,803.29292 166.68642,805.04252 186.64405,802.98284 z M 229.56187,782.98661 C 230.01904,780.35854 229.90519,779.86936 229.09950,781.00000 C 228.51162,781.82500 228.02096,782.05000 228.00915,781.50000 C 227.99734,780.95000 227.33492,781.75142 226.53709,783.28093 C 224.76116,786.68559 225.52575,789.90282 227.61442,787.81415 C 228.35194,787.07663 229.22829,784.90424 229.56187,782.98661 z M 226.00000,786.55902 C 226.00000,786.31648 226.45000,785.83992 227.00000,785.50000 C 227.55000,785.16008 228.00000,785.35852 228.00000,785.94098 C 228.00000,786.52344 227.55000,787.00000 227.00000,787.00000 C 226.45000,787.00000 226.00000,786.80156 226.00000,786.55902 z M 74.000000,785.60699 C 74.000000,785.39083 73.301628,784.94599 72.448062,784.61844 C 71.558137,784.27695 71.156740,784.44459 71.507079,785.01145 C 72.094337,785.96166 74.000000,786.41690 74.000000,785.60699 z M 197.50000,782.65055 C 202.02604,780.94239 202.01923,780.93078 196.34441,780.68210 C 194.05884,780.58195 192.39790,780.83750 192.65343,781.25000 C 192.90896,781.66250 190.95398,781.96837 188.30902,781.92971 C 185.00932,781.88149 184.11166,781.62010 185.44887,781.09687 C 187.15867,780.42785 186.99606,780.19428 184.12333,779.19284 C 181.66008,778.33414 180.98848,777.61149 181.41228,776.27569 C 181.94313,774.60248 180.37478,774.50512 154.23782,774.58866 C 127.83843,774.67304 126.28286,774.78291 122.00000,776.86565 C 119.52500,778.06924 118.31087,778.82199 119.30194,778.53845 C 120.34129,778.24109 120.84532,778.44126 120.49292,779.01145 C 120.15690,779.55515 118.44602,780.01368 116.69098,780.03041 C 114.35304,780.05269 113.90504,780.29816 115.01513,780.94866 C 115.84845,781.43697 122.82345,782.32965 130.51513,782.93238 C 138.20681,783.53512 146.07500,784.20662 148.00000,784.42462 C 149.92500,784.64261 160.95000,784.67229 172.50000,784.49057 C 188.13158,784.24464 194.52256,783.77426 197.50000,782.65055 z M 103.25000,781.33772 C 102.56250,781.06031 101.43750,781.06031 100.75000,781.33772 C 100.06250,781.61513 100.62500,781.84211 102.00000,781.84211 C 103.37500,781.84211 103.93750,781.61513 103.25000,781.33772 z M 97.750000,780.31067 C 96.787500,780.05915 95.212500,780.05915 94.250000,780.31067 C 93.287500,780.56220 94.075000,780.76800 96.000000,780.76800 C 97.925000,780.76800 98.712500,780.56220 97.750000,780.31067 z M 111.18750,780.31689 C 110.46563,780.02802 109.60313,780.06354 109.27083,780.39583 C 108.93854,780.72812 109.52917,780.96447 110.58333,780.92105 C 111.74828,780.87307 111.98523,780.63611 111.18750,780.31689 z M 105.18750,779.31689 C 104.46563,779.02802 103.60313,779.06354 103.27083,779.39583 C 102.93854,779.72812 103.52917,779.96447 104.58333,779.92105 C 105.74828,779.87307 105.98523,779.63611 105.18750,779.31689 z M 122.18750,773.31689 C 121.46563,773.02802 120.60313,773.06354 120.27083,773.39583 C 119.93854,773.72812 120.52917,773.96447 121.58333,773.92105 C 122.74828,773.87307 122.98523,773.63611 122.18750,773.31689 z M 188.18750,773.31689 C 187.46562,773.02802 186.60313,773.06354 186.27083,773.39583 C 185.93854,773.72812 186.52917,773.96447 187.58333,773.92105 C 188.74828,773.87307 188.98523,773.63611 188.18750,773.31689 z M 194.50000,771.09990 C 197.36890,770.08786 197.32520,770.06267 193.50000,770.52359 C 184.20131,771.64403 173.67164,771.50175 173.25219,770.25000 C 173.02182,769.56250 172.19583,769.00000 171.41667,769.00000 C 170.63750,769.00000 170.00000,768.51307 170.00000,767.91794 C 170.00000,766.60248 158.85026,767.24289 151.50000,768.98052 C 148.75000,769.63063 140.42500,770.46251 133.00000,770.82914 L 119.50000,771.49574 L 130.00000,772.11729 C 145.65391,773.04392 191.01754,772.32838 194.50000,771.09990 z M 197.18750,772.31689 C 196.46562,772.02802 195.60313,772.06354 195.27083,772.39583 C 194.93854,772.72812 195.52917,772.96447 196.58333,772.92105 C 197.74828,772.87307 197.98523,772.63611 197.18750,772.31689 z M 202.18750,771.31689 C 201.46562,771.02802 200.60313,771.06354 200.27083,771.39583 C 199.93854,771.72812 200.52917,771.96447 201.58333,771.92105 C 202.74828,771.87307 202.98523,771.63611 202.18750,771.31689 z M 34.977083,768.98584 C 34.108748,768.44918 34.090468,768.06212 34.909549,767.55590 C 35.527240,767.17415 35.769189,766.43556 35.447214,765.91459 C 34.485065,764.35780 33.000000,765.94350 33.000000,768.52763 C 33.000000,770.31535 33.408768,770.78037 34.583846,770.32945 C 35.724829,769.89162 35.834783,769.51592 34.977083,768.98584 z M 114.75000,770.31067 C 113.78750,770.05915 112.21250,770.05915 111.25000,770.31067 C 110.28750,770.56220 111.07500,770.76800 113.00000,770.76800 C 114.92500,770.76800 115.71250,770.56220 114.75000,770.31067 z M 207.18750,770.31689 C 206.46562,770.02802 205.60313,770.06354 205.27083,770.39583 C 204.93854,770.72812 205.52917,770.96447 206.58333,770.92105 C 207.74828,770.87307 207.98523,770.63611 207.18750,770.31689 z M 98.187500,768.31689 C 97.465625,768.02802 96.603125,768.06354 96.270833,768.39583 C 95.938542,768.72812 96.529167,768.96447 97.583333,768.92105 C 98.748276,768.87307 98.985233,768.63611 98.187500,768.31689 z M 92.187500,767.31689 C 91.465625,767.02802 90.603125,767.06354 90.270833,767.39583 C 89.938542,767.72812 90.529167,767.96447 91.583333,767.92105 C 92.748276,767.87307 92.985233,767.63611 92.187500,767.31689 z M 87.187500,766.31689 C 86.465625,766.02802 85.603125,766.06354 85.270833,766.39583 C 84.938542,766.72812 85.529167,766.96447 86.583333,766.92105 C 87.748276,766.87307 87.985233,766.63611 87.187500,766.31689 z M 491.74070,764.30087 C 494.30306,761.79474 493.95573,760.05833 489.47105,752.95414 C 485.91438,747.32002 487.31959,746.55411 491.64951,751.76676 C 493.58351,754.09504 495.91605,755.96447 496.83294,755.92105 C 497.87231,755.87183 498.02934,755.65219 497.25000,755.33772 C 496.56250,755.06031 495.96191,754.30833 495.91535,753.66667 C 495.79658,752.02956 489.00414,746.42278 486.00784,745.48855 C 483.70043,744.76911 483.62572,744.84409 485.00000,746.50000 C 486.37498,748.15674 486.30073,748.22943 483.99216,747.48674 C 481.39974,746.65274 472.22407,746.74348 470.81053,747.61710 C 469.09475,748.67751 470.11415,750.57323 472.50662,750.77124 C 476.78215,751.12509 481.77541,753.71702 482.48429,755.95050 C 482.97860,757.50792 483.68728,757.91664 485.11027,757.46500 C 486.90039,756.89684 487.02255,757.25004 486.60918,761.79884 C 486.23032,765.96790 486.42274,766.73138 487.82568,766.62563 C 488.74228,766.55653 490.50404,765.51039 491.74070,764.30087 z M 37.604167,763.27083 C 37.271875,762.93854 37.035526,763.52917 37.078947,764.58333 C 37.126931,765.74828 37.363888,765.98523 37.683114,765.18750 C 37.971985,764.46563 37.936458,763.60312 37.604167,763.27083 z M 470.31894,763.75000 C 471.81865,763.75000 473.99821,762.56753 475.62142,760.87326 C 478.31150,758.06542 478.33108,757.96113 476.43875,756.51855 C 473.80612,754.51160 468.31903,753.01232 463.58191,753.00558 C 461.42697,753.00251 456.85313,752.51054 453.41784,751.91231 C 448.12571,750.99072 446.63937,751.07730 443.68506,752.47921 C 441.76733,753.38923 439.97481,754.98831 439.70170,756.03271 C 439.42858,757.07711 439.49647,757.87434 439.85256,757.80433 C 440.20865,757.73432 441.85000,758.26096 443.50000,758.97465 C 445.15000,759.68833 447.27864,760.23964 448.23031,760.19976 C 449.18198,760.15989 450.22104,760.54863 450.53933,761.06363 C 450.85762,761.57863 451.56803,762.00000 452.11803,762.00000 C 452.66803,762.00000 452.89024,761.63142 452.61183,761.18094 C 452.33342,760.73046 453.43186,760.55654 455.05281,760.79444 C 456.67377,761.03235 458.00000,761.55092 458.00000,761.94683 C 458.00000,762.34274 459.43711,762.66667 461.19358,762.66667 C 463.05310,762.66667 464.81495,763.34485 465.41124,764.29017 C 466.08120,765.35229 466.66652,765.53959 467.10393,764.83184 C 467.47167,764.23683 468.91842,763.75000 470.31894,763.75000 z M 35.369714,761.75000 C 36.193696,758.67532 36.147556,758.00000 35.113499,758.00000 C 34.625924,758.00000 34.028861,759.35000 33.786692,761.00000 C 33.274572,764.48930 34.482272,765.06148 35.369714,761.75000 z M 121.25000,761.33772 C 120.56250,761.06031 119.43750,761.06031 118.75000,761.33772 C 118.06250,761.61513 118.62500,761.84211 120.00000,761.84211 C 121.37500,761.84211 121.93750,761.61513 121.25000,761.33772 z M 531.00000,761.00000 C 531.00000,760.45000 530.52344,760.00000 529.94098,760.00000 C 529.35852,760.00000 529.16008,760.45000 529.50000,761.00000 C 529.83992,761.55000 530.31648,762.00000 530.55902,762.00000 C 530.80156,762.00000 531.00000,761.55000 531.00000,761.00000 z M 111.18750,760.31689 C 110.46563,760.02802 109.60313,760.06354 109.27083,760.39583 C 108.93854,760.72812 109.52917,760.96447 110.58333,760.92105 C 111.74828,760.87307 111.98523,760.63611 111.18750,760.31689 z M 163.75000,760.25845 C 160.03750,760.06604 153.96250,760.06604 150.25000,760.25845 C 146.53750,760.45086 149.57500,760.60828 157.00000,760.60828 C 164.42500,760.60828 167.46250,760.45086 163.75000,760.25845 z M 180.26375,759.29607 C 179.03381,759.05871 176.78381,759.05256 175.26375,759.28242 C 173.74369,759.51227 174.75000,759.70648 177.50000,759.71399 C 180.25000,759.72149 181.49369,759.53343 180.26375,759.29607 z M 193.12636,753.00953 C 195.01042,752.20189 194.58553,752.12051 191.06637,752.61494 C 188.62787,752.95754 181.42787,753.60463 175.06637,754.05292 L 163.50000,754.86799 L 177.12636,754.44751 C 184.62086,754.21624 191.82086,753.56915 193.12636,753.00953 z M 34.000000,751.44098 C 34.000000,751.19844 33.550000,751.00000 33.000000,751.00000 C 32.450000,751.00000 32.000000,751.47656 32.000000,752.05902 C 32.000000,752.64148 32.450000,752.83992 33.000000,752.50000 C 33.550000,752.16008 34.000000,751.68352 34.000000,751.44098 z M 37.371885,750.13435 C 36.892348,749.78546 36.017851,748.62678 35.428557,747.55952 C 33.844690,744.69099 32.519383,744.66566 32.355787,747.50078 C 32.249019,749.35107 32.711559,750.00000 34.137172,750.00000 C 35.196250,750.00000 36.356231,750.76475 36.714905,751.69944 C 37.184318,752.92271 37.489867,753.03040 37.805405,752.08378 C 38.046506,751.36048 37.851421,750.48324 37.371885,750.13435 z M 410.00000,747.00686 C 410.27500,746.60889 411.31261,746.40841 412.30581,746.56135 C 413.72627,746.78008 413.87038,746.54875 412.98116,745.47730 C 412.35941,744.72814 407.49680,742.68544 402.17536,740.93797 C 392.51030,737.76412 388.80541,735.27015 388.15493,731.50000 C 387.68539,728.77860 387.47850,728.67355 385.09776,729.94768 C 383.05797,731.03934 383.07762,731.13332 386.30471,735.72094 C 389.57553,740.37074 394.06935,743.78827 397.09501,743.92691 C 397.97227,743.96711 399.51027,744.90636 400.51279,746.01414 C 401.70449,747.33094 403.01326,747.81318 404.29301,747.40700 C 405.67354,746.96884 406.02928,747.14361 405.50000,748.00000 C 404.95020,748.88960 405.38462,749.01590 407.12477,748.47235 C 408.43115,748.06430 409.72500,747.40483 410.00000,747.00686 z M 492.54155,743.40672 C 491.57276,742.69833 487.34209,741.37588 483.14006,740.46796 C 478.93803,739.56004 473.02500,738.27596 470.00000,737.61445 C 466.97500,736.95295 463.71250,736.57708 462.75000,736.77918 C 459.27857,737.50811 461.11446,738.78533 466.75000,739.56194 C 469.91250,739.99775 472.72500,740.41481 473.00000,740.48873 C 478.65493,742.00873 489.93684,744.32246 491.27161,744.23591 C 492.31674,744.16815 492.76597,744.56965 492.36710,745.21503 C 491.93356,745.91652 492.15954,746.01943 492.99698,745.50187 C 494.02285,744.86784 493.92516,744.41844 492.54155,743.40672 z M 38.000000,743.94098 C 38.000000,743.35852 37.550000,743.16008 37.000000,743.50000 C 36.450000,743.83992 36.000000,744.31648 36.000000,744.55902 C 36.000000,744.80156 36.450000,745.00000 37.000000,745.00000 C 37.550000,745.00000 38.000000,744.52344 38.000000,743.94098 z M 298.73430,744.40097 C 297.73774,743.40441 260.94523,743.10237 261.55920,744.09579 C 261.86656,744.59311 270.49148,745.00000 280.72568,745.00000 C 290.95989,745.00000 299.06377,744.73044 298.73430,744.40097 z M 249.00000,743.00000 C 248.17500,742.46684 247.05000,742.03063 246.50000,742.03063 C 245.95000,742.03063 246.17500,742.46684 247.00000,743.00000 C 247.82500,743.53316 248.95000,743.96937 249.50000,743.96937 C 250.05000,743.96937 249.82500,743.53316 249.00000,743.00000 z M 188.00000,741.44098 C 188.00000,741.19844 187.55000,741.00000 187.00000,741.00000 C 186.45000,741.00000 186.00000,741.47656 186.00000,742.05902 C 186.00000,742.64148 186.45000,742.83992 187.00000,742.50000 C 187.55000,742.16008 188.00000,741.68352 188.00000,741.44098 z M 244.18750,742.31689 C 243.46562,742.02802 242.60313,742.06354 242.27083,742.39583 C 241.93854,742.72812 242.52917,742.96447 243.58333,742.92105 C 244.74828,742.87307 244.98523,742.63611 244.18750,742.31689 z M 36.604167,739.27083 C 36.271875,738.93854 36.035526,739.52917 36.078947,740.58333 C 36.126931,741.74828 36.363888,741.98523 36.683114,741.18750 C 36.971985,740.46563 36.936458,739.60312 36.604167,739.27083 z M 436.57460,740.12071 C 436.27571,739.63710 435.01165,738.98448 433.76558,738.67044 C 431.57982,738.11959 431.56839,738.15057 433.44113,739.54974 C 435.59093,741.15590 437.42042,741.48926 436.57460,740.12071 z M 185.89552,736.51848 C 190.51306,735.70657 194.56306,734.75637 194.89552,734.40691 C 195.22798,734.05744 193.62067,734.08188 191.32370,734.46121 C 187.30623,735.12466 187.13129,735.04344 186.72353,732.32545 L 186.29966,729.50000 L 186.14983,732.23095 C 185.97622,735.39531 185.87361,735.42849 171.50000,736.96769 C 155.55935,738.67470 154.81315,738.89297 166.50000,738.43022 C 172.55000,738.19066 181.27798,737.33038 185.89552,736.51848 z M 37.000000,734.00000 C 37.000000,733.45000 36.550000,733.00000 36.000000,733.00000 C 35.450000,733.00000 35.000000,733.45000 35.000000,734.00000 C 35.000000,734.55000 35.450000,735.00000 36.000000,735.00000 C 36.550000,735.00000 37.000000,734.55000 37.000000,734.00000 z M 447.91667,732.64068 C 447.68750,732.44305 446.15000,731.97938 444.50000,731.61030 C 442.30908,731.12023 441.90454,731.21300 443.00000,731.95431 C 444.35037,732.86812 448.92015,733.50606 447.91667,732.64068 z M 426.44917,728.33917 C 425.44188,727.60263 424.21278,727.00000 423.71782,727.00000 C 422.50071,727.00000 411.00000,718.88693 411.00000,718.02833 C 411.00000,717.65330 408.97500,715.14081 406.50000,712.44502 C 404.02500,709.74923 402.00000,708.06414 402.00000,708.70037 C 402.00000,709.33659 402.58768,710.45179 403.30595,711.17857 C 404.02423,711.90536 404.92105,713.31602 405.29889,714.31338 C 405.67673,715.31074 406.43905,715.84668 406.99294,715.50437 C 407.54682,715.16205 408.00000,715.31225 408.00000,715.83816 C 408.00000,719.32187 423.69312,731.43873 426.70711,730.28215 C 428.08653,729.75282 428.05472,729.51318 426.44917,728.33917 z M 88.662281,716.75000 C 88.384868,716.06250 88.157895,716.62500 88.157895,718.00000 C 88.157895,719.37500 88.384868,719.93750 88.662281,719.25000 C 88.939693,718.56250 88.939693,717.43750 88.662281,716.75000 z M 433.51008,716.98369 C 433.85554,716.42472 434.58739,716.24499 435.13641,716.58430 C 435.68542,716.92361 436.38181,716.25595 436.68394,715.10062 C 436.98607,713.94528 437.68588,713.00000 438.23908,713.00000 C 438.79245,713.00000 438.66574,712.30216 437.95740,711.44867 C 436.93627,710.21828 435.51445,710.03938 431.08495,710.58395 C 428.01323,710.96160 425.19342,711.74873 424.81871,712.33313 C 424.44198,712.92069 423.83472,712.18965 423.46030,710.69785 C 423.08789,709.21403 422.39311,708.00000 421.91634,708.00000 C 421.43958,708.00000 421.45963,709.07873 421.96091,710.39718 C 422.46218,711.71562 422.60104,713.06562 422.26949,713.39718 C 421.93794,713.72873 422.19167,714.00000 422.83333,714.00000 C 423.47500,714.00000 424.90000,714.90000 426.00000,716.00000 C 428.11897,718.11897 432.45725,718.68721 433.51008,716.98369 z M 427.50000,713.00000 C 427.16008,712.45000 427.35852,712.00000 427.94098,712.00000 C 428.52344,712.00000 429.00000,712.45000 429.00000,713.00000 C 429.00000,713.55000 428.80156,714.00000 428.55902,714.00000 C 428.31648,714.00000 427.83992,713.55000 427.50000,713.00000 z M 97.000000,711.00000 C 96.175000,710.46684 94.825000,710.05536 94.000000,710.08560 C 93.010945,710.12185 93.181260,710.43332 94.500000,711.00000 C 97.249085,712.18132 98.827966,712.18132 97.000000,711.00000 z M 410.38144,709.45939 C 408.79299,707.03512 405.00000,704.26596 405.00000,705.53056 C 405.00000,707.19693 407.25415,710.00000 408.59420,710.00000 C 409.43231,710.00000 409.83992,710.45000 409.50000,711.00000 C 409.16008,711.55000 409.59390,712.00000 410.46404,712.00000 C 411.88512,712.00000 411.87672,711.74148 410.38144,709.45939 z M 424.00000,706.00000 C 424.00000,705.45000 423.52344,705.00000 422.94098,705.00000 C 422.35852,705.00000 422.16008,705.45000 422.50000,706.00000 C 422.83992,706.55000 423.31648,707.00000 423.55902,707.00000 C 423.80156,707.00000 424.00000,706.55000 424.00000,706.00000 z M 446.00000,702.00000 C 446.00000,700.96492 445.55000,699.83992 445.00000,699.50000 C 444.41500,699.13845 444.00000,700.17595 444.00000,702.00000 C 444.00000,703.82405 444.41500,704.86155 445.00000,704.50000 C 445.55000,704.16008 446.00000,703.03508 446.00000,702.00000 z M 365.79801,700.82839 C 366.02190,699.65315 365.57953,699.28584 364.30823,699.59140 C 361.76583,700.20247 360.01018,698.78650 359.44487,695.66900 C 359.09428,693.73562 359.37970,693.00000 360.48044,693.00000 C 361.31620,693.00000 362.00000,692.55000 362.00000,692.00000 C 362.00000,691.45000 361.54619,691.00000 360.99153,691.00000 C 360.39548,691.00000 360.49772,690.16795 361.24153,688.96547 C 362.34846,687.17592 362.13520,686.60395 359.47047,684.21547 C 354.09020,679.39296 352.00000,675.95391 352.00000,671.92416 C 352.00000,669.83079 352.48175,667.82030 353.07056,667.45639 C 354.05055,666.85072 353.70854,661.54423 352.38587,656.83288 C 352.03291,655.57565 352.40629,655.29349 353.90448,655.68527 C 355.44994,656.08942 355.85596,655.73790 355.73276,654.10240 C 355.64566,652.94608 355.10765,651.95217 354.53720,651.89370 C 346.57746,651.07793 345.77716,651.82254 346.56804,659.30823 C 347.11199,664.45670 348.85714,672.20958 351.73216,682.25000 C 352.00777,683.21250 352.63078,684.00000 353.11663,684.00000 C 353.60248,684.00000 354.00000,684.90000 354.00000,686.00000 C 354.00000,687.10000 354.41968,688.00000 354.93261,688.00000 C 356.04301,688.00000 357.36825,691.51109 357.57472,695.00000 C 357.83507,699.39917 357.97061,699.82775 359.62465,701.48179 C 361.62823,703.48538 365.36724,703.08963 365.79801,700.82839 z M 414.18333,700.78333 C 413.46577,700.06577 413.00000,700.00673 413.00000,700.63333 C 413.00000,701.96811 414.18261,703.15072 414.85000,702.48333 C 415.13417,702.19917 414.83417,701.43417 414.18333,700.78333 z M 344.98469,685.27305 C 344.99311,685.69823 346.14811,685.29384 347.55135,684.37440 C 349.15219,683.32549 349.75084,682.35084 349.15825,681.75825 C 347.87956,680.47956 342.99546,683.74475 343.01531,685.86501 C 343.02862,687.28596 343.15753,687.30363 344.00000,686.00000 C 344.53316,685.17500 344.97627,684.84787 344.98469,685.27305 z M 400.08966,674.73583 C 399.06220,672.03341 397.00000,670.16798 397.00000,671.94098 C 397.00000,672.52344 397.56250,673.00689 398.25000,673.01531 C 399.08247,673.02551 399.00059,673.34635 398.00487,673.97583 C 396.72300,674.78621 396.79409,675.12895 398.50330,676.37875 C 401.01257,678.21357 401.29908,677.91684 400.08966,674.73583 z M 385.73452,672.00000 C 385.64679,669.80000 385.19408,668.00000 384.72849,668.00000 C 384.26290,668.00000 384.14086,667.58109 384.45729,667.06910 C 384.77373,666.55710 384.53098,665.82816 383.91786,665.44924 C 383.12503,664.95924 382.99111,666.14658 383.45412,669.56069 C 384.45728,676.95766 385.99794,678.60569 385.73452,672.00000 z M 172.48992,673.98369 C 172.14446,673.42472 171.44290,673.22627 170.93090,673.54271 C 169.54386,674.39994 169.80249,675.00000 171.55902,675.00000 C 172.41648,675.00000 172.83538,674.54266 172.48992,673.98369 z M 174.00000,667.44098 C 174.00000,667.19844 173.55000,667.00000 173.00000,667.00000 C 172.45000,667.00000 172.00000,667.47656 172.00000,668.05902 C 172.00000,668.64148 172.45000,668.83992 173.00000,668.50000 C 173.55000,668.16008 174.00000,667.68352 174.00000,667.44098 z M 196.36163,646.50000 C 196.04504,645.67500 195.43231,645.00000 195.00000,645.00000 C 194.56769,645.00000 193.95496,645.67500 193.63837,646.50000 C 193.24880,647.51522 193.68886,648.00000 195.00000,648.00000 C 196.31114,648.00000 196.75120,647.51522 196.36163,646.50000 z M 196.00000,639.00000 C 196.00000,638.45000 195.55000,638.00000 195.00000,638.00000 C 194.45000,638.00000 194.00000,638.45000 194.00000,639.00000 C 194.00000,639.55000 194.45000,640.00000 195.00000,640.00000 C 195.55000,640.00000 196.00000,639.55000 196.00000,639.00000 z M 194.40804,634.50000 C 195.30898,633.12500 196.57573,632.00000 197.22305,632.00000 C 198.11284,632.00000 198.10722,632.29278 197.20000,633.20000 C 195.87062,634.52938 195.57692,637.00440 196.75000,636.99220 C 197.16250,636.98791 198.02016,635.86291 198.65591,634.49220 C 199.29167,633.12149 199.47640,632.00000 199.06643,632.00000 C 198.65646,632.00000 197.80845,630.87500 197.18195,629.50000 C 196.00497,626.91681 192.00920,625.95499 191.98899,628.25000 C 191.98294,628.93750 191.69906,631.18750 191.35815,633.25000 C 190.63412,637.63037 191.99223,638.18699 194.40804,634.50000 z M 359.69048,635.45238 C 360.54167,634.60119 360.97040,633.63707 360.64321,633.30988 C 359.93431,632.60098 357.00000,634.86627 357.00000,636.12244 C 357.00000,637.42739 357.95275,637.19010 359.69048,635.45238 z M 208.00000,634.53138 C 208.00000,633.63679 207.41371,633.28775 206.50000,633.63837 C 205.67500,633.95496 205.00000,634.61583 205.00000,635.10699 C 205.00000,635.59814 205.67500,636.00000 206.50000,636.00000 C 207.32500,636.00000 208.00000,635.33912 208.00000,634.53138 z M 192.00000,620.94098 C 192.00000,620.35852 191.55000,620.16008 191.00000,620.50000 C 190.45000,620.83992 190.00000,621.31648 190.00000,621.55902 C 190.00000,621.80156 190.45000,622.00000 191.00000,622.00000 C 191.55000,622.00000 192.00000,621.52344 192.00000,620.94098 z M 205.12500,621.00000 C 206.70625,621.00000 208.00000,620.55000 208.00000,620.00000 C 208.00000,618.90509 201.82921,618.67109 198.25000,619.63029 C 194.75456,620.56703 195.53372,622.34326 199.12500,621.62500 C 200.84375,621.28125 203.54375,621.00000 205.12500,621.00000 z M 200.00000,616.50000 C 200.00000,615.41667 198.88889,615.00000 196.00000,615.00000 C 191.72057,615.00000 190.51875,616.57560 194.25000,617.29427 C 198.70929,618.15316 200.00000,617.97487 200.00000,616.50000 z M 206.00000,612.87756 C 206.00000,612.39490 204.65000,612.00000 203.00000,612.00000 C 199.67072,612.00000 199.06629,613.37809 201.73942,614.87405 C 203.50657,615.86300 206.00000,614.69458 206.00000,612.87756 z M 400.60417,609.27083 C 400.27188,608.93854 400.03553,609.52917 400.07895,610.58333 C 400.12693,611.74828 400.36389,611.98523 400.68311,611.18750 C 400.97198,610.46563 400.93646,609.60312 400.60417,609.27083 z M 208.00000,609.50000 C 208.00000,608.67500 207.26990,608.00000 206.37756,608.00000 C 205.04876,608.00000 204.98043,608.27149 206.00000,609.50000 C 206.68469,610.32500 207.41479,611.00000 207.62244,611.00000 C 207.83010,611.00000 208.00000,610.32500 208.00000,609.50000 z M 216.24665,609.16481 C 216.63509,607.67940 216.26639,607.41758 214.31222,607.79115 C 212.75668,608.08851 211.11018,607.51269 209.68348,606.17237 C 208.17784,604.75789 207.01063,604.37540 206.03670,604.97732 C 204.91684,605.66943 205.24750,606.14777 207.55215,607.16963 C 209.17347,607.88850 211.09464,609.04442 211.82143,609.73834 C 213.71771,611.54885 215.69006,611.29322 216.24665,609.16481 z M 226.00000,609.50000 C 227.01957,608.27149 226.95124,608.00000 225.62244,608.00000 C 224.73010,608.00000 224.00000,608.67500 224.00000,609.50000 C 224.00000,610.32500 224.16990,611.00000 224.37756,611.00000 C 224.58521,611.00000 225.31531,610.32500 226.00000,609.50000 z M 226.18750,592.31689 C 225.46562,592.02802 224.60313,592.06354 224.27083,592.39583 C 223.93854,592.72812 224.52917,592.96447 225.58333,592.92105 C 226.74828,592.87307 226.98523,592.63611 226.18750,592.31689 z M 207.60417,573.27083 C 207.27187,572.93854 207.03553,573.52917 207.07895,574.58333 C 207.12693,575.74828 207.36389,575.98523 207.68311,575.18750 C 207.97198,574.46563 207.93646,573.60312 207.60417,573.27083 z M 192.00000,565.44098 C 192.00000,564.58352 191.54266,564.16462 190.98369,564.51008 C 190.42472,564.85554 190.22627,565.55710 190.54271,566.06910 C 191.39994,567.45614 192.00000,567.19751 192.00000,565.44098 z M 218.00000,561.44098 C 218.00000,560.64844 217.55000,560.00000 217.00000,560.00000 C 216.45000,560.00000 216.00000,560.92656 216.00000,562.05902 C 216.00000,563.19148 216.45000,563.83992 217.00000,563.50000 C 217.55000,563.16008 218.00000,562.23352 218.00000,561.44098 z M 208.00000,561.00000 C 208.00000,560.45000 207.32500,560.00000 206.50000,560.00000 C 205.67500,560.00000 205.00000,560.45000 205.00000,561.00000 C 205.00000,561.55000 205.67500,562.00000 206.50000,562.00000 C 207.32500,562.00000 208.00000,561.55000 208.00000,561.00000 z M 193.25000,560.33772 C 192.56250,560.06031 191.43750,560.06031 190.75000,560.33772 C 190.06250,560.61513 190.62500,560.84211 192.00000,560.84211 C 193.37500,560.84211 193.93750,560.61513 193.25000,560.33772 z M 216.00000,557.60069 C 216.00000,556.65802 214.50320,556.08234 211.41323,555.83659 C 206.71392,555.46284 204.66630,556.54115 207.12188,558.09649 C 209.42859,559.55753 216.00000,559.19055 216.00000,557.60069 z M 243.50000,549.00000 C 243.84463,548.44237 243.09659,548.00677 241.80902,548.01531 C 239.95138,548.02763 239.79323,548.22012 241.00000,549.00000 C 242.86074,550.20250 242.75681,550.20250 243.50000,549.00000 z M 322.00000,549.00000 C 322.00000,548.45000 321.57656,548.00000 321.05902,548.00000 C 320.54148,548.00000 319.83992,548.45000 319.50000,549.00000 C 319.16008,549.55000 319.58352,550.00000 320.44098,550.00000 C 321.29844,550.00000 322.00000,549.55000 322.00000,549.00000 z M 336.00000,547.50000 C 336.00000,545.66772 334.44498,545.65751 330.50000,547.46389 L 327.50000,548.83756 L 331.75000,548.91878 C 334.89721,548.97893 336.00000,548.61078 336.00000,547.50000 z M 344.00000,546.00000 C 344.00000,545.45000 343.12656,545.00000 342.05902,545.00000 C 340.99148,545.00000 339.83992,545.45000 339.50000,546.00000 C 339.14948,546.56716 339.98962,547.00000 341.44098,547.00000 C 342.84844,547.00000 344.00000,546.55000 344.00000,546.00000 z M 357.50000,545.00000 C 357.83992,544.45000 357.19148,544.00000 356.05902,544.00000 C 354.92656,544.00000 354.00000,544.45000 354.00000,545.00000 C 354.00000,545.55000 354.64844,546.00000 355.44098,546.00000 C 356.23352,546.00000 357.16008,545.55000 357.50000,545.00000 z M 362.77083,542.18750 C 362.98854,541.53437 362.45417,541.00000 361.58333,541.00000 C 360.71250,541.00000 360.00000,541.71250 360.00000,542.58333 C 360.00000,544.34926 362.15276,544.04172 362.77083,542.18750 z M 380.00000,525.03333 C 380.00000,523.78279 377.56621,522.00000 375.85902,522.00000 C 373.93330,522.00000 372.59661,523.53828 373.39699,524.83333 C 373.99326,525.79812 380.00000,525.98006 380.00000,525.03333 z M 14.542705,756.06910 C 14.226274,755.55710 14.424717,754.85554 14.983688,754.51008 C 15.542660,754.16462 16.000000,754.58352 16.000000,755.44098 C 16.000000,757.19751 15.399945,757.45614 14.542705,756.06910 z M 11.078519,748.85391 C 9.9353335,747.62684 9.0000000,746.23117 9.0000000,745.75242 C 9.0000000,745.27367 8.5017897,745.18988 7.8928661,745.56621 C 7.1293442,746.03809 7.0226504,745.51328 7.5490939,743.87523 C 7.9689430,742.56885 8.4318899,740.44776 8.5778650,739.16170 C 8.9162214,736.18071 9.1429284,735.98268 13.287127,735.04801 C 17.239946,734.15651 20.180966,735.36484 19.347126,737.53779 C 18.942633,738.59188 19.244807,738.84329 20.388659,738.40435 C 21.274897,738.06427 22.000000,738.28417 22.000000,738.89301 C 22.000000,739.50186 21.523442,740.00000 20.940983,740.00000 C 20.358524,740.00000 20.160081,740.45000 20.500000,741.00000 C 21.486403,742.59603 22.992875,742.15793 23.078947,740.25000 C 23.122368,739.28750 23.374700,739.03199 23.639684,739.68221 C 24.244204,741.16557 21.802623,745.97884 19.352379,748.13408 C 16.030944,751.05563 13.347254,751.28911 11.078519,748.85391 z M 15.000000,738.00000 C 15.000000,737.45000 14.550000,737.00000 14.000000,737.00000 C 13.450000,737.00000 13.000000,737.45000 13.000000,738.00000 C 13.000000,738.55000 13.450000,739.00000 14.000000,739.00000 C 14.550000,739.00000 15.000000,738.55000 15.000000,738.00000 z M 6.0702853,737.91667 C 6.1089422,736.58750 6.5483271,734.60000 7.0466963,733.50000 C 7.6782201,732.10610 7.7682427,732.71220 7.3437512,735.50000 C 6.6367714,740.14300 5.9686610,741.41088 6.0702853,737.91667 z M 12.305311,726.79015 C 13.851998,725.80684 18.746592,725.77892 19.341207,726.75000 C 19.593789,727.16250 17.845237,727.51117 15.455535,727.52483 C 13.065833,727.53849 11.648233,727.20788 12.305311,726.79015 z M 46.270833,727.39583 C 46.603125,727.06354 47.465625,727.02802 48.187500,727.31689 C 48.985233,727.63611 48.748276,727.87307 47.583333,727.92105 C 46.529167,727.96447 45.938542,727.72812 46.270833,727.39583 z M 55.458881,718.93347 C 54.591204,717.52954 54.872533,717.34510 59.000000,716.61189 C 62.176614,716.04759 62.269010,716.09270 60.000000,717.10008 C 57.614373,718.15924 57.591499,718.24775 59.500000,719.03472 C 61.270575,719.76483 61.191311,719.86749 58.809017,719.92971 C 57.328976,719.96837 55.821415,719.52006 55.458881,718.93347 z M 167.00000,657.05902 C 167.00000,656.47656 167.45000,656.00000 168.00000,656.00000 C 168.55000,656.00000 169.00000,656.19844 169.00000,656.44098 C 169.00000,656.68352 168.55000,657.16008 168.00000,657.50000 C 167.45000,657.83992 167.00000,657.64148 167.00000,657.05902 z M 165.00000,647.60699 C 165.00000,647.39083 165.67500,646.95496 166.50000,646.63837 C 167.32500,646.32179 168.00000,646.49865 168.00000,647.03138 C 168.00000,647.56412 167.32500,648.00000 166.50000,648.00000 C 165.67500,648.00000 165.00000,647.82314 165.00000,647.60699 z M 440.00166,633.50000 C 439.98573,632.40000 439.68295,630.41713 439.32882,629.09363 C 438.90331,627.50334 439.04854,626.91197 439.75707,627.34986 C 440.34673,627.71429 441.05709,627.44716 441.33564,626.75623 C 441.61420,626.06530 441.87074,627.07500 441.90574,629.00000 C 441.94074,630.92500 441.53316,633.17500 441.00000,634.00000 C 440.19600,635.24410 440.02568,635.15880 440.00166,633.50000 z M 408.44113,623.53180 C 407.37351,622.72430 406.97649,622.04930 407.55887,622.03180 C 408.14125,622.01431 409.49125,622.66069 410.55887,623.46820 C 411.62649,624.27570 412.02351,624.95070 411.44113,624.96820 C 410.85875,624.98569 409.50875,624.33931 408.44113,623.53180 z M 437.54271,624.06910 C 436.87773,622.99315 438.83499,621.50165 439.73320,622.39986 C 440.06327,622.72994 439.69583,623.00689 438.91667,623.01531 C 437.75020,623.02792 437.76492,623.20183 439.00000,624.00000 C 439.90129,624.58246 440.02463,624.97549 439.30902,624.98469 C 438.65398,624.99311 437.85914,624.58109 437.54271,624.06910 z M 404.00000,621.00000 C 404.00000,620.45000 404.19844,620.00000 404.44098,620.00000 C 404.68352,620.00000 405.16008,620.45000 405.50000,621.00000 C 405.83992,621.55000 405.64148,622.00000 405.05902,622.00000 C 404.47656,622.00000 404.00000,621.55000 404.00000,621.00000 z M 412.39970,621.22367 C 411.79454,620.82565 410.76621,619.48750 410.11452,618.25000 C 409.15044,616.41929 409.19290,616.00000 410.34237,616.00000 C 411.11938,616.00000 412.29737,616.65338 412.96013,617.45196 C 414.41222,619.20162 413.95935,622.24945 412.39970,621.22367 z M 171.00000,606.50000 C 171.00000,605.67500 171.40186,605.00000 171.89301,605.00000 C 172.38417,605.00000 173.04504,605.67500 173.36163,606.50000 C 173.71225,607.41371 173.36321,608.00000 172.46862,608.00000 C 171.66088,608.00000 171.00000,607.32500 171.00000,606.50000 z M 176.00000,590.50000 C 176.00000,589.67500 176.17686,589.00000 176.39301,589.00000 C 176.60917,589.00000 177.04504,589.67500 177.36163,590.50000 C 177.67821,591.32500 177.50135,592.00000 176.96862,592.00000 C 176.43588,592.00000 176.00000,591.32500 176.00000,590.50000 z M 182.63837,585.50000 C 182.32179,584.67500 182.49865,584.00000 183.03138,584.00000 C 183.56412,584.00000 184.00000,584.67500 184.00000,585.50000 C 184.00000,586.32500 183.82314,587.00000 183.60699,587.00000 C 183.39083,587.00000 182.95496,586.32500 182.63837,585.50000 z M 190.47293,584.95620 C 189.59557,583.53661 191.86506,580.97293 193.87244,581.11600 C 195.24560,581.21387 195.22646,581.30349 193.75000,581.68933 C 191.58039,582.25630 191.43627,584.00000 193.55902,584.00000 C 194.41648,584.00000 194.83992,584.45000 194.50000,585.00000 C 193.69127,586.30855 191.29260,586.28246 190.47293,584.95620 z M 177.75000,583.33772 C 178.43750,583.06031 179.56250,583.06031 180.25000,583.33772 C 180.93750,583.61513 180.37500,583.84211 179.00000,583.84211 C 177.62500,583.84211 177.06250,583.61513 177.75000,583.33772 z M 186.00000,582.50000 C 186.00000,581.67500 185.35156,581.00000 184.55902,581.00000 C 182.30122,581.00000 181.71759,579.13955 183.43624,577.42090 C 184.76416,576.09298 185.00000,576.07800 185.00000,577.32158 C 185.00000,578.12702 185.70352,579.05599 186.56338,579.38595 C 187.42324,579.71591 187.81559,580.48936 187.43527,581.10474 C 187.05494,581.72012 187.36392,582.61640 188.12188,583.09649 C 189.21182,583.78685 189.13406,583.97258 187.75000,583.98469 C 186.78750,583.99311 186.00000,583.32500 186.00000,582.50000 z M 197.00000,583.00000 C 198.93876,581.74708 200.00000,581.74708 200.00000,583.00000 C 200.00000,583.55000 198.98750,583.99311 197.75000,583.98469 C 195.93056,583.97230 195.78704,583.78387 197.00000,583.00000 z M 189.35022,576.47026 C 188.74441,574.89155 189.67583,573.00000 191.05902,573.00000 C 191.57656,573.00000 192.00000,573.63750 192.00000,574.41667 C 192.00000,575.19583 192.55089,576.01696 193.22421,576.24140 C 193.89752,576.46584 193.42000,576.91841 192.16304,577.24711 C 190.69817,577.63018 189.68829,577.35127 189.35022,576.47026 z M 174.00000,573.55902 C 174.00000,572.21648 173.55000,570.83992 173.00000,570.50000 C 172.45000,570.16008 172.00000,569.45852 172.00000,568.94098 C 172.00000,568.42344 172.45000,568.00000 173.00000,568.00000 C 173.55000,568.00000 174.00000,568.67500 174.00000,569.50000 C 174.00000,570.32500 174.45000,571.00000 175.00000,571.00000 C 175.55000,571.00000 176.00000,572.12500 176.00000,573.50000 C 176.00000,574.87500 175.55000,576.00000 175.00000,576.00000 C 174.45000,576.00000 174.00000,574.90156 174.00000,573.55902 z M 184.00000,573.55902 C 184.00000,572.70156 184.45000,572.00000 185.00000,572.00000 C 185.55000,572.00000 186.00000,572.42344 186.00000,572.94098 C 186.00000,573.45852 185.55000,574.16008 185.00000,574.50000 C 184.45000,574.83992 184.00000,574.41648 184.00000,573.55902 z M 224.58775,544.49359 C 223.14157,542.28643 222.22895,541.87120 219.51931,542.18754 C 217.13761,542.46559 215.90301,542.07434 215.09885,540.78667 C 214.39304,539.65649 214.35361,539.00000 214.99153,539.00000 C 215.54619,539.00000 216.00000,539.34773 216.00000,539.77273 C 216.00000,540.19773 217.80000,540.54545 220.00000,540.54545 C 222.20000,540.54545 224.00000,540.23664 224.00000,539.85921 C 224.00000,538.85089 229.31869,540.44364 229.66116,541.55452 C 229.82147,542.07453 229.14239,543.55422 228.15208,544.84272 L 226.35152,547.18544 L 224.58775,544.49359 z M 185.55887,544.46820 C 183.65449,543.02780 183.65767,543.00000 185.72708,543.00000 C 188.72595,543.00000 191.08444,544.05436 190.43524,545.10478 C 189.63722,546.39600 187.78859,546.15467 185.55887,544.46820 z M 207.45888,537.93347 C 207.09635,537.34688 207.01420,536.65247 207.27633,536.39034 C 207.53845,536.12821 208.01939,536.60815 208.34508,537.45687 C 209.02126,539.21898 208.44493,539.52893 207.45888,537.93347 z M 199.50000,537.00000 C 199.16008,536.45000 199.35852,536.00000 199.94098,536.00000 C 200.52344,536.00000 201.00000,536.45000 201.00000,537.00000 C 201.00000,537.55000 200.80156,538.00000 200.55902,538.00000 C 200.31648,538.00000 199.83992,537.55000 199.50000,537.00000 z M 170.27083,535.39583 C 170.60313,535.06354 171.46562,535.02802 172.18750,535.31689 C 172.98523,535.63611 172.74828,535.87307 171.58333,535.92105 C 170.52917,535.96447 169.93854,535.72812 170.27083,535.39583 z M 366.54271,524.06910 C 366.22627,523.55710 366.42472,522.85554 366.98369,522.51008 C 367.54266,522.16462 368.00000,522.58352 368.00000,523.44098 C 368.00000,525.19751 367.39994,525.45614 366.54271,524.06910 z M 176.00000,519.44098 C 176.00000,518.58352 176.45000,518.16008 177.00000,518.50000 C 177.55000,518.83992 178.00000,519.54148 178.00000,520.05902 C 178.00000,520.57656 177.55000,521.00000 177.00000,521.00000 C 176.45000,521.00000 176.00000,520.29844 176.00000,519.44098 z M 179.27083,519.39583 C 179.60313,519.06354 180.46562,519.02802 181.18750,519.31689 C 181.98523,519.63611 181.74828,519.87307 180.58333,519.92105 C 179.52917,519.96447 178.93854,519.72812 179.27083,519.39583 z M 393.07895,487.58333 C 393.03553,486.52917 393.27188,485.93854 393.60417,486.27083 C 393.93646,486.60312 393.97198,487.46562 393.68311,488.18750 C 393.36389,488.98523 393.12693,488.74828 393.07895,487.58333 z M 164.00000,487.67814 C 164.00000,487.50112 164.72561,485.22673 165.61247,482.62394 C 166.49933,480.02116 166.94933,477.61599 166.61247,477.27914 C 166.27561,476.94228 166.00000,477.41667 166.00000,478.33333 C 166.00000,479.25000 165.64040,480.00000 165.20089,480.00000 C 164.76138,480.00000 163.82007,481.60869 163.10909,483.57487 C 161.37712,488.36453 160.75054,487.36126 161.57802,481.12337 C 162.00185,477.92837 163.14713,474.98017 164.63398,473.25663 C 168.17765,469.14885 168.30550,467.70737 165.64044,461.90859 C 164.30324,458.99904 163.43426,456.03192 163.70937,455.31499 C 164.44421,453.40003 166.00437,454.76413 165.38726,456.78203 C 165.09829,457.72691 165.55200,457.37500 166.39549,456.00000 C 167.75982,453.77599 168.51765,453.93550 168.08333,456.35526 C 167.99891,456.82565 168.41068,457.78991 168.99839,458.49806 C 169.75708,459.41223 169.74353,462.44561 168.95165,468.95838 C 168.33824,474.00340 168.08601,478.78176 168.39116,479.57695 C 168.97934,481.10974 166.02080,487.93371 164.75000,487.97540 C 164.33750,487.98893 164.00000,487.85516 164.00000,487.67814 z M 365.01592,473.29860 C 362.72422,471.69343 363.15273,470.30161 366.35233,468.95791 C 368.78747,467.93524 355.57234,468.27831 353.00000,469.30453 C 352.17500,469.63366 345.42500,470.41753 338.00000,471.04647 C 330.57500,471.67540 324.31092,472.37382 324.07983,472.59850 C 323.84873,472.82318 322.53918,472.27286 321.16973,471.37555 C 318.97812,469.93956 317.47092,469.87858 308.58990,470.86660 C 293.41439,472.55488 276.83056,472.94545 264.07224,471.91505 C 255.10182,471.19057 252.22120,471.27316 250.67599,472.29914 C 249.06165,473.37102 246.97968,473.37619 239.10375,472.32785 C 233.82169,471.62477 228.30534,471.28972 226.84520,471.58331 C 225.38506,471.87689 223.92478,471.68731 223.60014,471.16203 C 223.27549,470.63674 220.51685,470.17719 217.46981,470.14079 C 214.42278,470.10439 211.46985,469.79038 210.90774,469.44298 C 210.34564,469.09558 208.89894,468.65580 207.69287,468.46570 C 206.48679,468.27559 203.72484,467.67066 201.55520,467.12140 C 196.78167,465.91295 195.64860,466.46379 196.43802,469.60909 C 196.76807,470.92409 196.60540,472.00000 196.07655,472.00000 C 195.54770,472.00000 194.96851,470.08750 194.78947,467.75000 L 194.46394,463.50000 L 193.19343,467.75000 C 192.08624,471.45365 191.55795,472.00000 189.08390,472.00000 C 187.52244,472.00000 185.66769,471.30452 184.96223,470.45449 C 184.25677,469.60446 183.00015,469.16970 182.16974,469.48836 C 180.26580,470.21897 179.03507,468.32850 179.01531,464.64301 C 179.00392,462.51765 178.61587,461.93343 177.50000,462.36163 C 176.67500,462.67821 175.96447,462.38885 175.92105,461.71862 C 175.86114,460.79389 175.72046,460.80146 175.33772,461.75000 C 174.26509,464.40827 173.18692,462.83504 174.04083,459.85763 C 174.53650,458.12932 174.70353,456.32932 174.41201,455.85763 C 174.12049,455.38593 174.47102,454.98569 175.19098,454.96820 C 176.03207,454.94776 175.84492,454.43994 174.66742,453.54757 C 172.90206,452.20969 172.90882,452.11916 174.85168,451.07938 C 175.96094,450.48572 178.30900,450.00000 180.06959,450.00000 C 182.21835,450.00000 184.04947,449.15965 185.63975,447.44371 C 186.94274,446.03775 188.50489,445.19400 189.11118,445.56871 C 189.87616,446.04150 189.79830,446.51310 188.85676,447.10969 C 188.11054,447.58252 187.95000,447.96937 188.50000,447.96937 C 190.90399,447.96937 191.66197,446.11177 191.58365,440.41213 L 191.50000,434.32426 L 197.50000,437.16134 C 200.80000,438.72174 204.47500,439.99878 205.66667,439.99921 C 206.85833,439.99964 207.99061,440.47184 208.18284,441.04853 C 208.39764,441.69291 211.41694,441.97906 216.01618,441.79092 C 220.13228,441.62255 222.82500,441.21664 222.00000,440.88890 C 221.17500,440.56117 217.23750,439.23094 213.25000,437.93283 C 209.23070,436.62438 206.00000,434.99945 206.00000,434.28632 C 206.00000,433.57885 205.55000,433.00000 205.00000,433.00000 C 203.39802,433.00000 203.84719,431.27261 205.62675,430.58974 C 206.52146,430.24640 207.84987,430.46044 208.57876,431.06537 C 209.37235,431.72399 210.82594,431.84914 212.20201,431.37732 C 213.46591,430.94396 216.63750,430.72315 219.25000,430.88662 C 222.45711,431.08730 224.00000,430.79181 224.00000,429.97691 C 224.00000,429.14471 224.76528,429.27141 226.46482,430.38499 C 227.82047,431.27325 229.69753,432.00000 230.63608,432.00000 C 231.57462,432.00000 233.13608,432.71816 234.10599,433.59592 C 235.72485,435.06097 236.07724,435.04047 238.40330,433.34592 C 239.79692,432.33066 240.95129,430.93750 240.96858,430.25000 C 241.00442,428.82434 242.61570,428.56917 243.41506,429.86256 C 243.70826,430.33697 247.22232,430.62935 251.22408,430.51228 C 259.03911,430.28366 262.01881,430.98625 257.98992,432.10761 C 256.04141,432.64995 256.47849,432.82669 260.00000,432.92043 C 262.47500,432.98631 267.42500,433.48446 271.00000,434.02744 C 277.23306,434.97412 289.18660,435.22767 299.25000,434.62667 C 301.86250,434.47064 304.00000,434.74237 304.00000,435.23051 C 304.00000,435.71865 304.35756,435.89705 304.79459,435.62695 C 305.23161,435.35686 312.08752,434.86913 320.02993,434.54311 C 327.97234,434.21709 336.05228,433.54050 337.98534,433.03957 C 339.91840,432.53864 344.23880,431.92448 347.58622,431.67477 C 350.93364,431.42506 355.03909,430.51403 356.70944,429.65026 C 358.37978,428.78649 360.00479,428.33812 360.32055,428.65389 C 360.63632,428.96965 362.10406,428.27671 363.58220,427.11400 C 365.06033,425.95130 366.88403,425.00000 367.63486,425.00000 C 368.38569,425.00000 369.00000,424.60459 369.00000,424.12132 C 369.00000,423.63805 370.35000,422.68345 372.00000,422.00000 C 373.65000,421.31655 375.00277,420.02445 375.00616,419.12868 C 375.00976,418.17842 375.64261,418.70861 376.52546,420.40151 C 377.35769,421.99734 377.79123,424.08242 377.48888,425.03502 C 376.93119,426.79216 372.27368,432.08517 370.48022,433.00000 C 369.94110,433.27500 369.61250,433.83750 369.75000,434.25000 C 369.88750,434.66250 369.52344,435.00000 368.94098,435.00000 C 368.35852,435.00000 368.12857,435.39901 368.42997,435.88669 C 368.73138,436.37437 368.30793,437.32947 367.48899,438.00914 C 365.12401,439.97190 365.73079,442.41600 369.56257,446.36146 C 372.42809,449.31199 381.74006,455.18569 384.00000,455.46814 C 386.52366,455.78354 388.03085,459.00000 385.65499,459.00000 C 384.91523,459.00000 383.49549,459.90000 382.50000,461.00000 C 381.50451,462.10000 380.15451,463.00000 379.50000,463.00000 C 377.63172,463.00000 375.25391,466.17473 374.27929,469.97044 C 373.55802,472.77945 372.78565,473.56411 370.22675,474.08746 C 368.16819,474.50848 366.35037,474.23328 365.01592,473.29860 z M 192.00000,465.00000 C 192.00000,464.45000 191.52344,464.00000 190.94098,464.00000 C 190.35852,464.00000 190.16008,464.45000 190.50000,465.00000 C 190.83992,465.55000 191.31648,466.00000 191.55902,466.00000 C 191.80156,466.00000 192.00000,465.55000 192.00000,465.00000 z M 181.00000,454.00000 C 181.00000,453.45000 180.55000,453.00000 180.00000,453.00000 C 179.45000,453.00000 179.00000,453.45000 179.00000,454.00000 C 179.00000,454.55000 179.45000,455.00000 180.00000,455.00000 C 180.55000,455.00000 181.00000,454.55000 181.00000,454.00000 z M 202.50000,445.00000 C 202.16008,444.45000 201.45852,444.00000 200.94098,444.00000 C 200.42344,444.00000 200.00000,444.45000 200.00000,445.00000 C 200.00000,445.55000 200.70156,446.00000 201.55902,446.00000 C 202.41648,446.00000 202.83992,445.55000 202.50000,445.00000 z M 220.00000,432.46482 C 220.00000,432.20917 219.10000,432.00000 218.00000,432.00000 C 216.86852,432.00000 216.00000,432.66667 216.00000,433.53518 C 216.00000,434.76049 216.40370,434.85431 218.00000,434.00000 C 219.10000,433.41130 220.00000,432.72047 220.00000,432.46482 z M 242.00000,434.00000 C 242.00000,433.45000 241.55000,433.00000 241.00000,433.00000 C 240.45000,433.00000 240.00000,433.45000 240.00000,434.00000 C 240.00000,434.55000 240.45000,435.00000 241.00000,435.00000 C 241.55000,435.00000 242.00000,434.55000 242.00000,434.00000 z M 223.18750,432.31689 C 222.46562,432.02802 221.60313,432.06354 221.27083,432.39583 C 220.93854,432.72812 221.52917,432.96447 222.58333,432.92105 C 223.74828,432.87307 223.98523,432.63611 223.18750,432.31689 z M 247.18750,432.31689 C 246.46562,432.02802 245.60313,432.06354 245.27083,432.39583 C 244.93854,432.72812 245.52917,432.96447 246.58333,432.92105 C 247.74828,432.87307 247.98523,432.63611 247.18750,432.31689 z M 375.50870,448.87667 C 368.97285,445.37366 368.62053,444.41471 370.15096,434.29399 C 370.25127,433.63068 370.67307,433.29795 371.08831,433.55458 C 371.50355,433.81121 374.00125,431.74197 376.63875,428.95626 L 381.43422,423.89134 L 382.82280,427.69567 C 384.55641,432.44527 384.57860,443.07853 382.86136,446.17388 C 382.15159,447.45325 381.55492,448.91250 381.53544,449.41667 C 381.46756,451.17242 379.45575,450.99216 375.50870,448.87667 z M 176.18974,438.55240 C 175.86323,432.59767 177.76154,421.00000 179.06272,421.00000 C 179.50410,421.00000 180.13055,421.83595 180.45483,422.85767 C 181.26444,425.40854 188.68318,433.31353 189.68689,432.69483 C 190.13410,432.41916 190.62215,433.93350 190.77145,436.06003 C 191.00663,439.40975 190.67253,440.11447 188.27145,441.33337 C 186.74715,442.10718 183.47300,443.03473 180.99556,443.39459 L 176.49113,444.04890 L 176.18974,438.55240 z M 194.72033,429.41248 C 193.19151,428.58338 192.13178,427.58890 192.36537,427.20252 C 192.59896,426.81613 192.14530,425.90386 191.35723,425.17525 C 190.13546,424.04566 190.01456,424.20984 190.53658,426.28972 C 190.95863,427.97129 190.67558,428.91051 189.62532,429.31354 C 188.52815,429.73456 188.27609,429.44409 188.72454,428.27546 C 189.20461,427.02440 188.93154,426.81229 187.53217,427.34928 C 185.99694,427.93841 185.91196,427.81100 186.98100,426.52289 C 187.84621,425.48038 187.92725,424.60570 187.23792,423.75000 C 186.68408,423.06250 185.86950,420.92500 185.42774,419.00000 L 184.62453,415.50000 L 183.88540,418.50000 L 183.14628,421.50000 L 183.32314,418.50000 C 183.46720,416.05640 183.90559,415.54211 185.68687,415.72703 C 188.28645,415.99689 198.00000,425.25344 198.00000,427.46084 C 198.00000,428.30738 198.45000,429.00000 199.00000,429.00000 C 199.55000,429.00000 200.00000,429.45000 200.00000,430.00000 C 200.00000,431.40407 197.97781,431.17905 194.72033,429.41248 z M 238.01531,430.25000 C 238.02373,429.83750 238.46684,428.82500 239.00000,428.00000 C 239.78387,426.78704 239.97230,426.93056 239.98469,428.75000 C 239.99311,429.98750 239.55000,431.00000 239.00000,431.00000 C 238.45000,431.00000 238.00689,430.66250 238.01531,430.25000 z M 244.50411,427.00666 C 244.15021,426.43403 244.94175,426.10034 246.37300,426.21880 C 247.73855,426.33181 248.63670,426.77882 248.36889,427.21214 C 247.68270,428.32241 245.23693,428.19237 244.50411,427.00666 z M 237.00000,424.92749 C 235.07500,424.56218 234.34260,424.20404 235.37244,424.13164 C 236.94509,424.02108 237.03952,423.75255 235.96223,422.45449 C 235.25677,421.60446 234.09959,421.13154 233.39071,421.40356 C 232.56879,421.71896 232.30999,421.35576 232.67635,420.40103 C 233.72305,417.67338 225.97421,413.33517 215.00000,410.50488 C 205.20978,407.97995 193.00000,402.90390 193.00000,401.35869 C 193.00000,400.61141 192.66250,400.05329 192.25000,400.11842 C 190.01960,400.47059 189.38642,399.72722 189.75835,397.19312 C 190.01726,395.42901 189.57682,393.89369 188.57280,393.06042 C 187.20485,391.92512 186.59646,392.14339 184.33881,394.57943 C 182.88874,396.14408 180.58419,399.91629 179.21759,402.96212 C 177.66737,406.41722 176.53637,407.93585 176.21041,407.00000 C 175.54238,405.08204 153.73597,378.19367 151.06949,376.00000 C 147.77287,373.28794 128.05504,348.60001 124.28981,342.47020 C 107.84732,315.70180 103.75130,298.87672 107.38726,273.04016 C 108.27427,266.73725 109.00000,259.69170 109.00000,257.38338 C 109.00000,252.16692 113.71013,241.48085 117.62825,237.80810 C 120.68704,234.94087 127.57994,232.84122 130.02508,234.03188 C 130.83629,234.42690 133.44208,235.75174 135.81574,236.97598 C 138.18939,238.20021 140.27033,239.04394 140.44005,238.85093 C 140.60977,238.65792 140.38804,236.02500 139.94732,233.00000 C 139.50660,229.97500 139.10626,224.80000 139.05769,221.50000 C 138.99494,217.23707 138.68873,215.93427 138.00000,217.00000 C 137.46684,217.82500 137.02373,218.14667 137.01531,217.71482 C 137.00689,217.28297 137.70744,215.84994 138.57209,214.53032 C 140.12568,212.15924 139.89493,205.29397 138.21957,204.04195 C 137.82071,203.74388 136.14564,201.56408 134.49719,199.19794 C 131.20131,194.46717 130.46016,193.36274 124.25950,183.94238 C 121.92723,180.39907 120.01473,177.77035 120.00950,178.10078 C 119.98280,179.78933 122.31527,185.00000 123.09783,185.00000 C 123.59402,185.00000 124.00777,185.56250 124.01728,186.25000 C 124.02678,186.93750 125.09856,188.50851 126.39900,189.74113 C 129.49812,192.67860 130.31573,196.96187 128.22231,199.29303 C 126.73061,200.95414 126.74533,201.03496 128.42240,200.39140 C 130.01672,199.77961 130.09351,199.95675 129.06616,201.87638 C 128.42458,203.07518 127.51067,203.81561 127.03524,203.52178 C 126.55981,203.22795 125.96102,203.55284 125.70461,204.24377 C 125.43250,204.97697 124.81579,204.44201 124.22337,202.95890 C 123.25953,200.54594 120.00000,197.02904 120.00000,198.40207 C 120.00000,199.40650 128.33600,212.45814 129.21715,212.83333 C 129.64772,213.01667 130.00000,213.80417 130.00000,214.58333 C 130.00000,215.36250 130.45000,216.00000 131.00000,216.00000 C 131.55000,216.00000 131.90748,216.33750 131.79440,216.75000 C 131.68132,217.16250 132.33544,218.89978 133.24800,220.61062 C 134.88310,223.67605 134.86968,223.73835 132.32438,224.89806 C 130.90382,225.54531 129.67062,225.94553 129.58394,225.78744 C 129.49725,225.62935 128.25543,223.70000 126.82434,221.50000 C 125.39325,219.30000 124.05982,217.02732 123.86118,216.44960 C 122.88022,213.59671 111.45338,196.17284 111.15007,197.06746 C 110.95760,197.63513 111.88776,199.76469 113.21708,201.79980 C 114.54640,203.83491 116.68569,207.75000 117.97106,210.50000 C 119.25643,213.25000 120.85609,216.17500 121.52586,217.00000 C 122.19563,217.82500 124.21863,221.20000 126.02140,224.50000 C 127.82418,227.80000 129.79436,230.87995 130.39959,231.34433 C 131.07090,231.85942 130.81760,231.96915 129.75000,231.62572 C 128.78750,231.31610 128.00000,231.49865 128.00000,232.03138 C 128.00000,232.56412 126.26069,233.00000 124.13486,233.00000 C 120.49652,233.00000 115.65255,235.60063 113.78985,238.55404 C 113.39926,239.17333 112.22161,240.73971 111.17284,242.03488 L 109.26599,244.38974 L 107.12499,239.94487 C 105.94743,237.50019 102.28363,231.00000 98.983194,225.50000 C 91.477038,212.99138 78.000000,189.34685 78.000000,188.68643 C 78.000000,188.41457 76.521628,185.56140 74.714729,182.34607 C 70.860282,175.48716 68.000000,168.26731 68.000000,165.39690 C 68.000000,162.62369 72.409554,158.80955 73.896556,160.29656 C 74.701148,161.10115 75.000000,160.92879 75.000000,159.66016 C 75.000000,157.89555 72.846956,153.47629 68.755582,146.84312 C 63.839600,138.87303 60.000000,131.98566 60.000000,131.13759 C 60.000000,130.64661 60.627096,129.72445 61.393547,129.08835 C 62.511167,128.16081 63.667270,128.97808 67.232348,133.21590 C 69.677238,136.12216 73.125277,140.64261 74.894656,143.26136 C 77.914162,147.73034 83.131511,152.50000 85.000447,152.50000 C 85.458535,152.50000 86.170833,152.83750 86.583333,153.25000 C 87.849473,154.51614 89.245307,154.08164 88.676185,152.59854 C 88.355407,151.76260 88.925175,150.99132 90.088155,150.68720 C 91.837311,150.22978 91.908557,149.88526 90.780622,147.33866 C 90.089110,145.77740 88.955578,143.90536 88.261663,143.17857 C 87.567749,142.45179 87.000000,141.23810 87.000000,140.48149 C 87.000000,139.16257 82.929904,130.90356 81.147168,128.60496 C 79.927149,127.03191 77.903878,120.76279 78.442413,120.22425 C 79.244742,119.42192 85.981215,127.34739 89.147545,132.81884 C 92.211378,138.11318 92.243730,138.13462 96.170092,137.47126 C 100.30158,136.77325 106.00000,138.40611 106.00000,140.28799 C 106.00000,140.86293 106.25618,141.07715 106.56929,140.76405 C 106.88240,140.45094 106.67790,139.36344 106.11486,138.34738 C 105.55181,137.33132 104.17895,134.47500 103.06406,132.00000 C 101.94917,129.52500 99.248631,124.12500 97.062858,120.00000 C 93.405627,113.09806 93.224155,112.39731 94.787106,111.21226 C 97.665712,109.02965 100.33748,110.15509 101.40516,114.00000 C 101.93970,115.92500 102.64011,117.72500 102.96163,118.00000 C 104.48751,119.30513 107.00000,124.12314 107.00000,125.74406 C 107.00000,126.74199 107.90000,128.20716 109.00000,129.00000 C 110.10000,129.79284 111.00000,131.18708 111.00000,132.09831 C 111.00000,133.00955 111.67500,134.31531 112.50000,135.00000 C 113.32500,135.68469 114.00000,136.88272 114.00000,137.66228 C 114.00000,140.33620 117.96661,146.85463 119.98323,147.49468 C 121.09245,147.84673 122.00000,148.72022 122.00000,149.43577 C 122.00000,150.47018 128.07905,162.84650 133.98561,173.83725 C 134.47708,174.75176 135.14457,176.75590 135.46891,178.29090 C 135.79326,179.82589 136.43744,180.84768 136.90042,180.56155 C 138.00136,179.88113 139.02500,187.62499 138.30801,191.20997 C 137.74514,194.02429 139.29109,195.15016 140.42265,192.75000 C 140.74677,192.06250 140.79623,192.85000 140.53256,194.50000 C 140.15356,196.87170 140.24209,197.08113 140.95524,195.50000 C 141.45139,194.40000 142.09663,192.37500 142.38912,191.00000 C 143.16225,187.36544 151.70249,179.09755 157.50000,176.37101 C 161.40302,174.53544 164.03577,174.04957 169.50000,174.15642 L 176.50000,174.29330 L 169.50000,174.98245 C 157.96627,176.11795 151.03677,180.18384 146.88809,188.25000 C 145.82729,190.31250 145.18236,192.00000 145.45493,192.00000 C 145.72749,192.00000 145.50842,193.16276 144.96810,194.58392 C 143.67825,197.97646 144.80960,199.71684 146.62238,197.12874 C 148.39514,194.59777 153.93190,190.59856 154.65796,191.32463 C 154.95651,191.62318 153.75785,193.66297 151.99427,195.85751 C 150.06647,198.25640 149.09109,200.33837 149.54839,201.07830 C 150.00692,201.82022 149.89549,202.05344 149.26782,201.66552 C 147.10705,200.33009 145.91141,203.55969 147.32337,206.91775 C 148.43857,209.57004 148.86496,209.86764 149.84976,208.68103 C 150.50137,207.89589 150.75929,206.40896 150.42292,205.37675 C 149.96917,203.98435 150.06150,203.85015 150.78067,204.85676 C 151.55575,205.94164 151.90748,205.95871 152.53587,204.94196 C 153.03172,204.13966 154.29524,206.63416 155.95970,211.70147 L 158.59767,219.73254 L 161.50975,217.41052 C 165.57932,214.16557 165.80944,215.19020 162.07114,219.91017 L 158.90118,223.91257 L 164.58848,238.70629 C 170.89901,255.12116 175.05462,264.74965 183.42405,282.34807 C 187.96274,291.89157 189.32208,293.97759 190.41259,293.07255 C 191.44424,292.21635 191.91049,292.32436 192.37176,293.52641 C 192.70469,294.39402 192.57940,294.85809 192.09333,294.55768 C 190.47090,293.55497 190.20182,296.55705 191.73622,298.54189 C 193.19253,300.42573 193.22821,300.40518 192.67679,298.00000 L 192.10364,295.50000 L 193.92768,297.70748 C 194.93090,298.92159 196.10428,299.59659 196.53519,299.20748 C 196.96610,298.81836 197.04488,299.26458 196.71026,300.19907 C 196.25562,301.46874 196.51195,301.74078 197.72454,301.27546 C 198.93920,300.80935 199.18573,301.07361 198.70499,302.32639 C 198.35177,303.24688 198.46832,304.00000 198.96400,304.00000 C 199.45967,304.00000 200.16164,304.93391 200.52392,306.07536 C 200.88620,307.21681 201.42735,307.90598 201.72647,307.60686 C 202.65088,306.68245 196.76792,296.02540 195.69818,296.68654 C 195.13879,297.03226 194.99792,296.81238 195.38134,296.19200 C 196.05688,295.09894 191.54054,285.00000 190.37617,285.00000 C 190.05159,285.00000 190.05401,285.69837 190.38156,286.55194 C 190.73588,287.47528 190.56022,287.84623 189.94787,287.46778 C 189.38180,287.11793 189.15615,286.08206 189.44643,285.16584 C 189.73670,284.24963 189.26704,282.15000 188.40273,280.50000 C 183.94120,271.98281 174.95304,253.94751 173.20260,250.00000 C 168.37818,239.12018 167.78562,237.06456 167.27882,229.44991 C 166.67038,220.30829 167.83816,218.00000 173.07143,218.00000 C 174.68214,218.00000 176.00000,217.55000 176.00000,217.00000 C 176.00000,216.45000 175.52344,216.00000 174.94098,216.00000 C 174.35852,216.00000 174.15433,215.55930 174.48723,215.02067 C 174.82012,214.48203 174.55715,213.04104 173.90285,211.81847 C 173.01845,210.16596 173.00658,209.49781 173.85660,209.21447 C 174.48547,209.00484 174.96447,208.08333 174.92105,207.16667 C 174.87182,206.12732 174.65226,205.97049 174.33772,206.75000 C 174.06031,207.43750 172.85833,207.99311 171.66667,207.98469 C 170.06997,207.97340 169.85691,207.74322 170.85676,207.10969 C 171.79448,206.51552 171.33120,206.25610 169.35676,206.26974 C 167.78554,206.28059 167.06250,206.48684 167.75000,206.72807 C 169.18355,207.23107 169.46564,210.00000 168.08333,210.00000 C 167.57917,210.00000 166.68446,208.76250 166.09510,207.25000 C 165.03958,204.54118 165.03204,204.54866 165.59122,207.75000 C 166.55451,213.26483 165.21088,211.33279 163.98874,205.44574 C 163.05434,200.94477 162.57808,200.10528 161.47728,201.01886 C 160.73016,201.63891 160.35958,202.90083 160.65377,203.82311 C 161.09195,205.19681 161.00458,205.24042 160.17055,204.06430 C 159.31999,202.86489 158.88905,202.84719 157.55205,203.95680 C 156.67184,204.68731 155.67342,205.00675 155.33333,204.66667 C 154.45208,203.78541 156.81662,201.19298 159.18822,200.44026 C 160.78687,199.93287 161.11660,199.12446 160.80690,196.47168 C 160.59299,194.63942 160.77393,193.36028 161.20899,193.62916 C 161.64405,193.89804 162.00000,193.46896 162.00000,192.67565 C 162.00000,191.88234 162.97275,190.97888 164.16167,190.66797 C 166.65962,190.01474 170.33239,191.65316 169.47607,193.03872 C 169.15710,193.55482 169.59450,193.70910 170.44806,193.38156 C 171.30163,193.05401 172.00000,193.28810 172.00000,193.90175 C 172.00000,194.64614 173.91370,194.86595 177.75000,194.56219 C 180.91250,194.31178 182.56847,194.32854 181.42994,194.59942 C 179.90163,194.96305 179.40906,195.79960 179.54778,197.79597 C 179.65113,199.28319 179.54487,199.75837 179.31165,198.85194 C 178.86460,197.11443 175.00000,195.53843 175.00000,197.09362 C 175.00000,197.59213 175.43563,198.00000 175.96806,198.00000 C 176.50050,198.00000 177.56892,199.20773 178.34233,200.68383 C 179.72310,203.31914 179.76107,203.32818 180.44165,201.18383 C 180.82287,199.98273 181.55445,199.00000 182.06739,199.00000 C 183.36296,199.00000 183.23236,200.36764 181.80000,201.80000 C 180.86667,202.73333 180.86667,203.00000 181.80000,203.00000 C 182.46000,203.00000 183.00000,202.61240 183.00000,202.13867 C 183.00000,201.66494 184.11976,201.49140 185.48835,201.75302 C 186.85694,202.01464 187.75026,202.59507 187.47351,203.04285 C 187.19677,203.49064 187.98951,204.07783 189.23517,204.34772 C 190.48083,204.61761 189.28978,204.76228 186.58841,204.66921 C 183.88704,204.57615 181.52562,204.95000 181.34082,205.50000 C 181.13576,206.11028 184.06453,206.50000 188.85598,206.50000 C 195.90260,206.50000 196.60141,206.33090 195.67534,204.84978 C 195.10784,203.94216 194.16124,203.30591 193.57177,203.43588 C 192.98229,203.56586 192.81222,203.49189 193.19382,203.27150 C 195.20545,202.10970 190.61382,196.05115 187.59501,195.88400 C 185.89451,195.78984 185.83106,195.68159 187.25809,195.30912 C 189.73155,194.66351 196.57339,197.02759 195.01640,197.98986 C 194.07868,198.56941 194.06247,199.24822 194.94693,200.90083 C 195.58131,202.08618 196.52261,202.79504 197.03872,202.47607 C 197.56877,202.14848 197.69056,202.64282 197.31861,203.61211 C 196.87185,204.77633 197.03630,205.09560 197.83006,204.60503 C 198.49311,204.19524 199.01317,204.44911 199.03041,205.19098 C 199.04932,206.00496 199.44348,205.84320 200.07268,204.76325 C 201.16399,202.89016 199.74119,199.00000 197.96482,199.00000 C 197.43417,199.00000 197.00000,198.30707 197.00000,197.46016 C 197.00000,195.22037 193.12960,187.98696 191.62149,187.40825 C 190.91300,187.13637 190.33333,186.27949 190.33333,185.50406 C 190.33333,184.56291 191.38689,184.99280 193.50229,186.79709 C 195.24521,188.28369 196.51168,189.95927 196.31666,190.52059 C 195.79708,192.01612 201.21210,199.98695 202.29360,199.31855 C 202.79956,199.00585 202.60298,198.36314 201.85676,197.89031 C 201.11054,197.41748 200.87420,197.02373 201.33156,197.01531 C 201.78892,197.00689 201.13355,195.31250 199.87518,193.25000 C 197.96274,190.11543 197.89398,189.74617 199.45625,191.00000 C 201.05720,192.28488 201.25618,192.29107 200.84367,191.04316 C 200.57881,190.24189 199.17236,188.89189 197.71823,188.04316 C 196.26410,187.19442 194.05277,185.15000 192.80417,183.50000 L 190.53399,180.50000 L 194.51700,183.40191 C 196.70765,184.99796 200.18750,187.90179 202.25000,189.85486 C 205.96359,193.37142 207.53338,193.35185 204.34501,189.82874 C 203.43477,188.82293 203.14789,188.00000 203.70750,188.00000 C 204.26711,188.00000 204.57930,186.76250 204.40125,185.25000 C 204.22321,183.73750 203.76947,178.54850 203.39294,173.71889 C 203.01641,168.88928 202.32397,164.70022 201.85417,164.40987 C 201.38438,164.11952 201.00000,162.94329 201.00000,161.79601 C 201.00000,160.50910 197.23865,155.83926 191.18070,149.60503 C 178.57748,136.63507 173.66258,130.25600 169.55676,121.53927 C 164.63532,111.09093 162.56106,99.429738 163.30071,86.368514 C 163.97980,74.376689 165.40835,70.978508 166.26819,79.309570 C 167.38010,90.082963 173.19201,100.37409 184.50697,111.60490 C 196.06899,123.08095 209.60794,128.24037 219.60608,124.98049 C 229.39606,121.78848 240.61945,110.93156 248.01417,97.500000 C 249.83098,94.200000 251.69443,90.825000 252.15517,90.000000 C 252.61591,89.175000 253.62656,85.125000 254.40105,81.000000 C 255.43872,75.473342 255.85525,74.420893 255.98413,77.000000 C 256.08033,78.925000 256.49417,84.325000 256.90378,89.000000 C 258.26903,104.58189 254.68239,122.26796 247.92708,133.26502 C 246.31718,135.88579 245.00000,138.33178 245.00000,138.70057 C 245.00000,139.06936 244.02323,140.41083 242.82939,141.68161 C 239.81382,144.89153 241.13985,145.58783 245.68426,143.18072 C 254.88213,138.30873 259.51657,137.95814 266.79252,141.58390 C 273.09541,144.72476 278.57513,150.75703 283.29481,159.75017 C 289.52498,171.62151 291.33554,177.34544 296.50092,201.50000 C 297.22649,204.89296 297.79852,208.75056 297.91876,211.06144 C 297.96344,211.92023 298.90000,213.58891 300.00000,214.76963 C 301.10000,215.95034 302.00000,217.48532 302.00000,218.18069 C 302.00000,220.09047 304.60707,215.88903 305.36986,212.75000 C 305.73739,211.23750 306.47953,210.00000 307.01905,210.00000 C 307.55857,210.00000 308.00000,209.32500 308.00000,208.50000 C 308.00000,207.67500 308.45000,207.00000 309.00000,207.00000 C 309.55000,207.00000 310.00000,206.31889 310.00000,205.48643 C 310.00000,204.65397 310.40011,203.19147 310.88913,202.23643 C 311.37816,201.28139 312.61566,198.70037 313.63913,196.50083 C 316.35279,190.66895 322.45565,182.52380 326.00559,179.99602 C 327.70220,178.78793 330.69585,177.75397 332.65815,177.69835 C 335.65753,177.61333 336.91050,178.32173 340.52253,182.14467 C 344.09138,185.92191 345.34853,188.40775 347.94487,196.82136 C 349.66404,202.39243 351.34257,209.86271 351.67494,213.42197 C 352.17768,218.80569 352.76001,220.35395 355.13963,222.63377 C 357.32670,224.72912 358.00000,224.99095 358.00000,223.74611 C 358.00000,222.85067 358.44457,221.84327 358.98794,221.50746 C 360.22629,220.74211 359.32729,228.60008 357.39494,235.43150 C 356.62772,238.14383 356.01368,240.84383 356.03041,241.43150 C 356.09471,243.69086 357.73220,239.23489 358.94510,233.50000 C 359.64303,230.20000 360.60957,226.37500 361.09296,225.00000 C 362.59548,220.72608 364.80097,205.32389 367.50763,180.20279 C 368.29561,172.88932 369.17381,166.52779 369.45918,166.06605 C 369.74454,165.60432 370.42352,160.56306 370.96801,154.86327 C 371.51251,149.16347 372.63842,140.67500 373.47004,136.00000 C 374.30167,131.32500 375.24947,125.94176 375.57627,124.03725 L 376.17045,120.57451 L 378.02600,123.03447 L 379.88155,125.49443 L 380.81915,122.99721 C 381.33484,121.62375 381.40926,120.36592 380.98454,120.20205 C 379.98814,119.81761 380.92862,116.06083 382.65545,113.52749 C 383.39495,112.44262 384.00000,110.75512 384.00000,109.77749 C 384.00000,108.79987 384.41968,108.00000 384.93261,108.00000 C 385.44555,108.00000 386.12866,107.21250 386.45064,106.25000 C 387.19234,104.03281 394.19762,100.75487 396.39349,101.59750 C 397.67914,102.09085 397.79347,102.54392 396.90308,103.61678 C 395.62150,105.16099 396.76065,105.43767 398.87812,104.09649 C 399.63608,103.61640 399.97842,102.77410 399.63888,102.22471 C 399.29933,101.67531 399.80418,101.28750 400.76076,101.36290 C 401.94867,101.45654 402.39641,100.89976 402.17321,99.606479 C 401.99347,98.565042 402.44347,97.334433 403.17321,96.871792 C 404.17204,96.238547 404.19102,96.026840 403.25000,96.015313 C 401.34753,95.992007 401.75720,93.652372 404.00000,91.732028 C 405.10534,90.785604 406.00000,88.782090 406.00000,87.253186 C 406.00000,82.920894 407.60417,78.395832 409.98348,76.016517 C 411.98298,74.017018 412.30684,73.967707 413.91010,75.418641 C 416.33818,77.616028 418.66406,77.392621 419.31606,74.899384 C 419.61854,73.742700 420.34499,73.095181 420.93269,73.458401 C 422.24925,74.272077 422.33825,77.672915 421.06361,78.460688 C 419.98796,79.125476 423.80097,89.000000 425.13333,89.000000 C 426.34843,89.000000 430.00000,92.782982 430.00000,94.041813 C 430.00000,95.584000 433.97832,99.583292 434.12500,98.188561 C 434.19375,97.534853 434.31118,96.437500 434.38595,95.750000 C 434.46158,95.054591 435.51565,94.638867 436.76175,94.812994 C 438.34165,95.033767 439.26911,94.444486 439.90950,92.812994 C 441.24638,89.407133 444.96310,86.563099 446.31302,87.913018 C 448.01714,89.617144 452.78312,89.201740 453.91990,87.250000 C 454.85092,85.651537 454.94182,85.677515 454.96959,87.550000 C 454.98632,88.677500 454.46750,90.132500 453.81667,90.783333 C 453.16583,91.434167 452.96530,92.298635 453.37104,92.704373 C 453.77678,93.110111 454.52019,92.780111 455.02306,91.971040 C 455.68211,90.910693 455.87632,91.337556 455.71869,93.500000 C 455.53587,96.007942 455.84494,96.465200 457.60305,96.287828 C 459.24296,96.122379 459.94111,96.893140 460.77330,99.787828 C 464.84281,113.94312 464.67160,122.18566 459.90691,141.50000 C 456.67830,154.58761 454.85279,159.73064 448.90091,172.50729 C 444.97073,180.94406 430.88823,203.64541 422.46955,215.11531 C 418.91130,219.96320 415.98171,224.28298 415.95936,224.71483 C 415.93701,225.14667 414.58701,227.05800 412.95936,228.96223 C 411.33171,230.86645 410.00000,232.78357 410.00000,233.22248 C 410.00000,233.66140 408.50099,236.15340 406.66886,238.76026 C 404.83674,241.36712 401.84949,246.20000 400.03053,249.50000 C 398.21158,252.80000 395.66950,257.41250 394.38148,259.75000 C 393.09346,262.08750 392.32545,264.00000 392.67480,264.00000 C 393.02415,264.00000 392.60899,264.78750 391.75222,265.75000 C 389.96771,267.75474 382.46239,283.60845 379.08848,292.50000 C 377.83629,295.80000 375.50412,301.30303 373.90589,304.72896 C 372.30765,308.15489 371.00000,311.54226 371.00000,312.25645 C 371.00000,312.97065 370.31068,314.53913 369.46817,315.74198 C 368.62567,316.94482 367.32432,319.63245 366.57629,321.71449 C 365.82826,323.79652 363.57398,329.10000 361.56678,333.50000 C 356.22683,345.20570 356.37419,344.86833 353.05799,352.98106 C 351.37610,357.09565 350.00000,360.83698 350.00000,361.29514 C 350.00000,361.75330 348.94292,364.46182 347.65092,367.31408 C 345.23386,372.65009 343.54686,377.92821 343.83596,379.25000 C 343.92618,379.66250 342.08750,380.01761 339.75000,380.03914 L 335.50000,380.07828 L 338.86481,381.53914 C 340.71546,382.34261 342.88201,383.00000 343.67937,383.00000 C 345.24726,383.00000 349.58529,378.37846 352.00000,374.13560 C 352.82500,372.68599 354.68716,369.92496 356.13814,367.99998 C 359.31242,363.78872 363.03532,356.37419 365.52675,349.30160 C 366.53393,346.44249 367.68546,344.30561 368.08573,344.55298 C 368.48599,344.80036 368.60701,344.21320 368.35465,343.24818 C 368.10229,342.28316 368.67382,339.69504 369.62471,337.49680 C 370.57561,335.29856 371.46721,332.88311 371.60606,332.12912 C 373.40558,322.35730 375.50989,315.75475 378.02144,312.00000 C 378.94118,310.62500 380.92690,305.90000 382.43414,301.50000 C 383.94139,297.10000 385.94769,292.37500 386.89258,291.00000 C 388.78088,288.25217 390.52073,283.95704 391.41838,279.82726 C 391.73790,278.35726 393.27556,275.87829 394.83540,274.31845 C 396.39524,272.75861 398.24877,270.40369 398.95435,269.08531 C 399.65992,267.76692 401.08653,265.74589 402.12458,264.59412 C 403.16262,263.44235 406.02476,259.47199 408.48488,255.77109 C 410.94499,252.07019 413.81653,248.18347 414.86607,247.13393 C 415.91561,246.08439 417.16260,244.61240 417.63716,243.86284 C 418.63586,242.28541 426.12118,236.28778 430.50000,233.55645 C 432.15000,232.52725 433.85986,231.08101 434.29969,230.34259 C 434.73952,229.60416 436.10687,229.00000 437.33825,229.00000 C 438.56963,229.00000 441.31382,228.11458 443.43646,227.03239 C 445.55910,225.95021 447.67925,225.30177 448.14790,225.59141 C 448.61656,225.88105 449.00000,225.44303 449.00000,224.61803 C 449.00000,223.79303 449.52647,222.79266 450.16994,222.39497 C 450.95659,221.90879 451.13068,222.21707 450.70132,223.33596 C 450.35012,224.25118 450.49865,225.00000 451.03138,225.00000 C 451.56412,225.00000 452.00000,224.38010 452.00000,223.62244 C 452.00000,222.86479 452.67500,221.68469 453.50000,221.00000 C 454.76608,219.94925 455.00000,220.14947 455.00000,222.28394 C 455.00000,224.38587 455.37983,224.72952 457.25000,224.31963 C 458.89886,223.95826 459.13407,224.08559 458.13036,224.79621 C 457.09263,225.53092 457.69848,226.07027 460.63036,227.02177 C 464.84715,228.39028 470.03090,231.63665 471.30290,233.70556 C 471.74450,234.42381 473.21507,236.24639 474.57084,237.75574 L 477.03588,240.50000 L 476.40669,237.73870 C 475.89064,235.47387 476.06721,235.08856 477.38875,235.59568 C 478.27494,235.93575 479.00000,235.71583 479.00000,235.10699 C 479.00000,234.49814 479.67500,234.00000 480.50000,234.00000 C 482.32440,234.00000 482.36093,234.44476 480.75000,237.04408 C 479.10962,239.69093 481.25278,241.23459 484.73163,239.91194 C 487.68694,238.78833 488.93587,238.75404 487.21873,239.84366 C 486.28951,240.43329 486.20340,241.32211 486.90534,243.07835 C 487.66799,244.98649 487.88667,245.10623 487.93661,243.64301 C 487.97540,242.50659 488.52498,241.98748 489.35295,242.30520 C 491.09147,242.97233 494.00000,239.59257 494.00000,236.90524 C 494.00000,233.43947 496.38200,235.36296 497.24725,239.52742 C 497.72663,241.83468 497.63723,244.60188 497.02674,246.35314 C 496.46203,247.97306 496.04520,250.46880 496.10045,251.89922 C 496.17921,253.93846 496.39642,253.66786 497.10644,250.64596 C 498.32549,245.45760 503.46536,238.13203 504.88828,239.55495 C 505.13369,239.80035 504.50747,243.32221 503.49669,247.38129 C 501.71277,254.54515 501.71280,254.87482 503.49789,258.63071 C 507.76633,267.61165 506.28217,274.88437 495.56580,297.50000 C 487.77544,313.94062 472.43663,337.25376 462.09777,348.36737 C 442.68313,369.23687 432.65591,377.23840 412.06773,388.29038 C 402.55534,393.39674 389.30808,402.04231 385.68452,405.50888 C 382.57474,408.48392 382.51245,408.47650 381.11009,404.96338 C 380.17325,402.61643 380.12378,402.60355 380.06339,404.69098 C 379.96701,408.02211 378.57137,408.18784 377.17531,405.03392 C 374.86296,399.80996 367.22727,398.79608 362.48635,403.08351 C 359.72629,405.57956 354.28721,407.73940 342.50000,411.02001 C 325.46364,415.76157 316.97752,416.94610 284.50000,419.11594 C 254.78574,421.10116 253.22506,421.26269 256.50000,422.01401 C 258.38359,422.44614 256.24381,422.71348 250.75000,422.73242 C 245.93750,422.74900 242.00000,422.36599 242.00000,421.88129 C 242.00000,421.39658 241.30917,421.00000 240.46482,421.00000 C 239.21850,421.00000 239.13966,421.39244 240.04584,423.08565 C 241.43018,425.67232 241.30948,425.74532 237.00000,424.92749 z M 285.27985,403.19594 C 284.36597,400.33817 283.29042,398.00000 282.88973,398.00000 C 282.07873,398.00000 283.67406,404.47714 285.18912,407.33565 C 286.93248,410.62491 286.97886,408.50888 285.27985,403.19594 z M 280.85016,405.00000 C 280.27496,403.35000 279.62337,402.00000 279.40217,402.00000 C 279.18098,402.00000 279.00000,403.35000 279.00000,405.00000 C 279.00000,406.95210 279.50578,408.00000 280.44798,408.00000 C 281.62258,408.00000 281.69851,407.43360 280.85016,405.00000 z M 295.35260,403.47648 C 294.78331,401.99294 294.59547,401.97146 293.84941,403.30460 C 293.38048,404.14253 293.28958,405.59105 293.64740,406.52352 C 294.21669,408.00706 294.40453,408.02854 295.15059,406.69540 C 295.61952,405.85747 295.71042,404.40895 295.35260,403.47648 z M 293.45729,398.93090 C 292.60006,397.54386 292.00000,397.80249 292.00000,399.55902 C 292.00000,400.41648 292.45734,400.83538 293.01631,400.48992 C 293.57528,400.14446 293.77373,399.44290 293.45729,398.93090 z M 376.91019,397.75000 C 376.33437,396.51250 374.81261,394.72437 373.52849,393.77638 C 371.47733,392.26213 371.12262,392.23807 370.60832,393.57832 C 370.28634,394.41737 370.40499,394.86774 370.87197,394.57912 C 371.33896,394.29051 373.02131,395.37964 374.61052,396.99941 C 378.10687,400.56298 378.23917,400.60616 376.91019,397.75000 z M 340.50000,390.00000 C 341.49549,388.90000 342.08498,388.00000 341.80998,388.00000 C 341.53498,388.00000 340.49549,388.90000 339.50000,390.00000 C 338.50451,391.10000 337.91502,392.00000 338.19002,392.00000 C 338.46502,392.00000 339.50451,391.10000 340.50000,390.00000 z M 303.56910,377.88820 C 303.94702,377.27670 303.85572,376.48920 303.36621,376.13820 C 302.87670,375.78719 302.35066,370.10000 302.19722,363.50000 C 301.92335,351.71912 300.69960,339.41622 299.01425,331.50000 C 297.78496,325.72593 296.74488,314.27503 296.93951,308.65783 C 297.03178,305.99464 296.70730,304.06287 296.21843,304.36500 C 295.72956,304.66714 294.58770,303.35862 293.68097,301.45717 C 290.99281,295.82005 287.99427,297.11641 280.86011,307.00000 C 278.28656,310.56537 275.69218,318.69291 276.63874,320.22448 C 277.74081,322.00768 281.15836,334.77029 282.06808,340.50000 C 282.59202,343.80000 283.49617,351.22500 284.07728,357.00000 C 285.46674,370.80808 285.61816,372.45425 285.82500,376.00000 L 286.00000,379.00000 L 294.44098,379.00000 C 299.55550,379.00000 303.15275,378.56185 303.56910,377.88820 z M 413.16923,349.47586 C 423.16052,347.07044 427.00000,345.75379 427.00000,344.73295 C 427.00000,344.21214 427.69837,344.05401 428.55194,344.38156 C 429.44186,344.72305 429.84326,344.55541 429.49292,343.98855 C 429.15690,343.44485 429.47102,342.98750 430.19098,342.97222 C 430.91094,342.95694 432.81250,341.60694 434.41667,339.97222 C 437.56113,336.76787 440.10209,335.87824 437.90760,338.75000 C 437.17210,339.71250 438.68046,338.25000 441.25953,335.50000 C 443.83859,332.75000 447.43774,328.92500 449.25764,327.00000 C 451.07754,325.07500 453.59471,322.03750 454.85137,320.25000 C 456.10802,318.46250 457.58769,317.00000 458.13952,317.00000 C 459.42783,317.00000 462.09005,314.35435 461.85910,313.30357 C 461.51321,311.72983 463.23633,309.00000 464.57560,309.00000 C 465.32450,309.00000 465.70587,308.39710 465.42311,307.66021 C 465.14034,306.92333 465.59951,305.74734 466.44348,305.04691 C 467.28745,304.34647 467.72226,303.35963 467.40972,302.85392 C 466.78678,301.84599 471.94693,290.00000 473.00893,290.00000 C 473.37069,290.00000 473.70861,289.43750 473.75988,288.75000 C 473.81115,288.06250 474.58922,285.49961 475.48892,283.05469 C 476.38862,280.60977 477.00159,276.90390 476.85109,274.81942 C 476.65649,272.12425 477.08718,270.65674 478.34206,269.73915 C 479.99584,268.52988 479.94794,268.29972 477.57943,266.07462 C 475.36361,263.99297 474.97418,263.90370 474.41911,265.35020 C 473.62819,267.41130 472.00000,267.51212 472.00000,265.50000 C 472.00000,263.30195 471.17230,263.64178 468.34655,267.00000 C 466.95816,268.65000 465.14766,270.00000 464.32321,270.00000 C 463.12840,270.00000 462.96135,270.81174 463.50000,274.00000 C 463.90611,276.40373 463.78498,278.00000 463.19648,278.00000 C 462.65785,278.00000 461.49694,276.20000 460.61668,274.00000 C 459.73641,271.80000 458.85361,270.00000 458.65489,270.00000 C 458.45617,270.00000 458.50978,272.25000 458.77402,275.00000 C 459.09371,278.32704 458.87730,280.00000 458.12723,280.00000 C 457.50725,280.00000 456.96837,279.43750 456.92971,278.75000 C 456.89106,278.06250 456.49062,278.40000 456.03985,279.50000 C 455.27493,281.36661 455.14788,281.31659 454.13488,278.75000 C 453.53792,277.23750 452.63290,276.00000 452.12373,276.00000 C 450.95159,276.00000 451.02166,283.10856 452.20909,284.66097 C 452.69751,285.29951 452.73777,286.04245 452.29856,286.31196 C 450.83419,287.21053 445.51551,287.43663 444.24940,286.65414 C 442.65693,285.66994 441.11861,286.62463 439.90171,289.35233 C 438.97150,291.43742 438.95499,291.43924 439.33507,289.41481 C 439.65901,287.68942 439.31878,287.40757 437.36328,287.78138 C 435.87534,288.06582 435.00000,288.93076 435.00000,290.11658 C 435.00000,291.15246 434.55000,292.00000 434.00000,292.00000 C 433.45000,292.00000 433.00000,291.55000 433.00000,291.00000 C 433.00000,290.45000 432.23500,290.00000 431.30000,290.00000 C 429.97778,290.00000 429.86667,290.26667 430.80000,291.20000 C 431.46000,291.86000 431.96447,293.77250 431.92105,295.45000 C 431.87763,297.12750 431.61513,297.93750 431.33772,297.25000 C 431.06031,296.56250 429.26928,296.00000 427.35765,296.00000 C 424.98507,296.00000 424.10842,295.63359 424.59549,294.84549 C 425.00423,294.18413 424.87295,293.96048 424.28816,294.32191 C 423.72668,294.66892 422.46241,294.06345 421.47866,292.97642 C 420.49491,291.88939 419.10919,291.00000 418.39929,291.00000 C 417.68938,291.00000 414.46654,293.70000 411.23742,297.00000 C 408.00830,300.30000 405.05888,303.00000 404.68315,303.00000 C 404.30742,303.00000 404.00000,302.12656 404.00000,301.05902 C 404.00000,298.79641 402.42667,297.50061 401.50000,299.00000 C 401.14899,299.56794 400.44290,299.77373 399.93090,299.45729 C 398.39502,298.50807 398.87958,300.02305 400.68706,301.82143 C 402.26914,303.39554 402.23802,303.51989 400.18706,303.81955 C 398.60890,304.05014 398.00000,304.83220 398.00000,306.62857 C 398.00000,308.17641 397.58614,308.86225 396.90583,308.44180 C 396.30404,308.06987 396.01663,306.69331 396.26716,305.38278 C 396.79104,302.64229 395.22944,302.12636 394.35190,304.75000 C 392.91093,309.05819 391.45179,312.00000 390.75589,312.00000 C 389.69869,312.00000 389.80976,311.27749 391.21215,309.03191 C 392.75887,306.55520 392.19320,306.04347 388.65903,306.72227 C 386.33156,307.16931 385.89808,307.68653 386.26078,309.58387 C 386.53023,310.99340 386.14747,312.11317 385.28280,312.44497 C 384.41349,312.77856 384.09448,313.72232 384.46085,314.87665 C 384.83496,316.05537 384.50130,316.97739 383.57151,317.33418 C 382.75306,317.64825 381.34853,320.43317 380.45032,323.52289 C 379.05439,328.32473 379.01811,329.38449 380.20048,330.82028 C 380.96128,331.74412 382.42549,335.08750 383.45430,338.25000 C 384.48310,341.41250 385.61690,344.00000 385.97386,344.00000 C 386.33082,344.00000 387.49523,344.80417 388.56144,345.78704 C 393.80934,350.62477 402.79938,351.97242 413.16923,349.47586 z M 418.00000,307.00000 C 418.00000,306.45000 418.92656,306.00000 420.05902,306.00000 C 421.19148,306.00000 421.83992,306.45000 421.50000,307.00000 C 421.16008,307.55000 420.23352,308.00000 419.44098,308.00000 C 418.64844,308.00000 418.00000,307.55000 418.00000,307.00000 z M 421.55355,304.09772 C 419.69570,303.37068 419.70708,303.30986 421.80355,302.76162 C 423.29658,302.37119 424.00000,302.63764 424.00000,303.59362 C 424.00000,304.36713 423.88750,304.96837 423.75000,304.92971 C 423.61250,304.89106 422.62410,304.51666 421.55355,304.09772 z M 408.00000,302.41667 C 408.00000,300.65074 410.15276,300.95828 410.77083,302.81250 C 410.98854,303.46562 410.45417,304.00000 409.58333,304.00000 C 408.71250,304.00000 408.00000,303.28750 408.00000,302.41667 z M 426.00000,299.61472 C 426.00000,297.72122 426.39969,297.21615 427.54909,297.65721 C 429.32227,298.33764 429.11835,301.12838 427.25000,301.75047 C 426.46782,302.01090 426.00000,301.21158 426.00000,299.61472 z M 414.00000,300.42857 C 414.00000,300.11429 414.67914,299.17801 415.50919,298.34795 C 416.33925,297.51790 416.76688,296.43182 416.45948,295.93444 C 416.14121,295.41946 417.32123,295.30074 419.20029,295.65870 C 423.21536,296.42355 424.07557,297.00000 421.20185,297.00000 C 420.02953,297.00000 418.58870,297.90000 418.00000,299.00000 C 417.04377,300.78674 414.00000,301.87380 414.00000,300.42857 z M 448.00000,291.50000 C 448.00000,290.67500 448.45000,290.00000 449.00000,290.00000 C 449.55000,290.00000 450.00000,290.67500 450.00000,291.50000 C 450.00000,292.32500 449.55000,293.00000 449.00000,293.00000 C 448.45000,293.00000 448.00000,292.32500 448.00000,291.50000 z M 456.17668,283.33287 C 456.66323,280.82410 459.00000,280.47962 459.00000,282.91667 C 459.00000,284.14500 458.35431,285.00000 457.42668,285.00000 C 456.49544,285.00000 455.98530,284.31963 456.17668,283.33287 z M 464.00000,273.05902 C 464.00000,272.47656 464.45000,272.00000 465.00000,272.00000 C 465.55000,272.00000 466.00000,272.19844 466.00000,272.44098 C 466.00000,272.68352 465.55000,273.16008 465.00000,273.50000 C 464.45000,273.83992 464.00000,273.64148 464.00000,273.05902 z M 169.83333,334.86704 C 170.01667,334.39017 170.69167,333.98503 171.33333,333.96673 C 174.73373,333.86976 178.46821,328.02544 176.07494,326.54631 C 174.95249,325.85261 170.00000,327.98379 170.00000,329.16052 C 170.00000,329.62223 169.50186,330.00000 168.89301,330.00000 C 168.28417,330.00000 168.05401,329.30163 168.38156,328.44806 C 168.70910,327.59450 168.58394,327.13911 168.10341,327.43609 C 167.62289,327.73307 165.79182,327.47479 164.03436,326.86213 C 160.82587,325.74365 156.82261,326.87240 154.68449,329.49841 C 154.23269,330.05330 154.11102,329.60802 154.41166,328.50000 C 155.14320,325.80400 153.36057,322.94116 152.13402,324.84217 C 151.40952,325.96506 150.88181,325.96506 148.90399,324.84217 C 144.97347,322.61065 143.92755,320.74964 145.57633,318.92126 C 146.35935,318.05295 147.00000,317.05458 147.00000,316.70264 C 147.00000,315.75781 143.77108,317.07076 141.68895,318.86224 C 140.15515,320.18193 139.74541,320.20610 139.01243,319.02012 C 138.53643,318.24992 136.65140,316.91734 134.82348,316.05883 C 132.99557,315.20032 131.05579,313.48587 130.51287,312.24895 C 129.96995,311.01203 129.05447,310.00000 128.47848,310.00000 C 127.90248,310.00000 126.63375,308.65000 125.65907,307.00000 C 124.68439,305.35000 123.47649,304.00000 122.97485,304.00000 C 122.47321,304.00000 122.32179,303.32500 122.63837,302.50000 C 123.00286,301.55016 122.62458,301.00000 121.60699,301.00000 C 119.27172,301.00000 119.63598,303.12786 122.50000,306.21657 C 123.87500,307.69945 125.00000,309.38235 125.00000,309.95636 C 125.00000,310.53036 125.45000,311.00000 126.00000,311.00000 C 126.55000,311.00000 127.00000,311.59081 127.00000,312.31291 C 127.00000,313.03501 128.33400,314.90387 129.96444,316.46593 C 131.59489,318.02800 132.71255,319.65609 132.44813,320.08393 C 132.18372,320.51176 132.49425,321.18743 133.13820,321.58541 C 133.90381,322.05859 134.03993,321.87362 133.53151,321.05098 C 133.10387,320.35906 135.17185,322.21411 138.12700,325.17332 C 144.62347,331.67871 147.22155,333.39178 153.60339,335.37781 C 158.63169,336.94262 169.16280,336.61120 169.83333,334.86704 z M 159.07895,329.58333 C 159.03553,328.52917 159.27187,327.93854 159.60417,328.27083 C 159.93646,328.60312 159.97198,329.46562 159.68311,330.18750 C 159.36389,330.98523 159.12693,330.74828 159.07895,329.58333 z M 207.75000,320.32296 C 207.75000,317.83987 205.44133,311.00000 204.60321,311.00000 C 204.39974,311.00000 203.99775,311.90062 203.70989,313.00138 C 203.42204,314.10214 203.57197,314.76454 204.04309,314.47337 C 205.02766,313.86487 207.16119,317.41223 206.92276,319.26131 C 206.69542,321.02440 206.93439,323.00000 207.37500,323.00000 C 207.58125,323.00000 207.75000,321.79533 207.75000,320.32296 z M 149.25000,320.33772 C 148.56250,320.06031 147.43750,320.06031 146.75000,320.33772 C 146.06250,320.61513 146.62500,320.84211 148.00000,320.84211 C 149.37500,320.84211 149.93750,320.61513 149.25000,320.33772 z M 177.45729,320.06910 C 177.77373,319.55710 177.65028,318.90190 177.18298,318.61309 C 176.71567,318.32428 176.33333,318.74318 176.33333,319.54399 C 176.33333,321.23016 176.64867,321.37748 177.45729,320.06910 z M 201.57366,315.22619 C 199.84591,313.57597 199.81909,313.60279 200.96421,315.83565 C 201.62301,317.12025 202.43630,317.89704 202.77150,317.56184 C 203.10670,317.22664 202.56767,316.17560 201.57366,315.22619 z M 202.67534,312.34201 C 202.31345,311.98011 202.51855,311.08011 203.13112,310.34201 C 203.95036,309.35489 203.94806,309.00000 203.12244,309.00000 C 202.50510,309.00000 202.00000,309.18820 202.00000,309.41821 C 202.00000,309.64823 201.72686,310.54823 201.39301,311.41821 C 201.03531,312.35036 201.30911,313.00000 202.05968,313.00000 C 202.76019,313.00000 203.03724,312.70390 202.67534,312.34201 z M 269.14915,307.27928 C 267.43006,304.65068 266.01823,303.21504 266.01176,304.08897 C 265.99970,305.71906 271.19049,313.08315 271.88739,312.42462 C 272.10045,312.22329 270.86824,309.90788 269.14915,307.27928 z M 198.60417,305.27083 C 198.27187,304.93854 198.03553,305.52917 198.07895,306.58333 C 198.12693,307.74828 198.36389,307.98523 198.68311,307.18750 C 198.97198,306.46562 198.93646,305.60312 198.60417,305.27083 z M 209.35134,303.68468 C 209.71837,304.05171 209.50533,302.87943 208.87791,301.07963 C 208.07696,298.78201 207.49657,298.19653 206.92948,299.11411 C 206.41077,299.95340 206.13943,299.36177 206.17109,297.46048 C 206.19820,295.83222 205.72080,293.23321 205.11019,291.68490 C 204.49959,290.13660 204.00000,287.54910 204.00000,285.93490 C 204.00000,284.32071 203.55000,283.00000 203.00000,283.00000 C 202.45000,283.00000 202.00000,283.52500 202.00000,284.16667 C 202.00000,284.80833 201.71087,285.04421 201.35750,284.69083 C 201.00412,284.33746 201.26035,283.39122 201.92689,282.58809 C 202.83297,281.49634 202.85826,280.60367 202.02712,279.05067 C 201.30968,277.71012 201.24742,276.38031 201.85155,275.30078 C 202.96942,273.30325 201.22206,268.74472 199.69926,269.68587 C 199.14471,270.02860 198.98695,269.83014 199.34868,269.24485 C 200.04567,268.11709 198.65160,264.57309 192.27226,251.25519 C 190.10014,246.72054 187.95314,243.34554 187.50115,243.75519 C 187.04916,244.16484 186.97796,243.97811 187.34292,243.34024 C 188.26529,241.72816 187.02057,238.86925 185.74071,239.66025 C 185.15373,240.02302 184.98511,239.83311 185.35820,239.22944 C 186.12249,237.99279 184.10378,233.00000 182.83948,233.00000 C 182.37777,233.00000 182.09443,232.66250 182.20984,232.25000 C 182.32525,231.83750 181.54468,229.70000 180.47524,227.50000 C 179.11925,224.71052 178.42839,224.02912 178.19239,225.24841 C 178.00625,226.21004 178.56182,227.70468 179.42698,228.56984 C 181.13937,230.28222 181.59445,232.48542 180.03694,231.52283 C 179.50726,231.19547 179.71576,233.06041 180.50027,235.66715 C 182.27835,241.57526 181.89345,242.13652 179.41069,237.25598 C 178.35981,235.19019 177.16250,233.35000 176.75000,233.16667 C 176.33750,232.98333 176.00000,232.22798 176.00000,231.48810 C 176.00000,230.74821 175.43225,229.54821 174.73834,228.82143 C 174.04442,228.09464 172.92907,226.26250 172.25978,224.75000 C 171.59048,223.23750 170.39289,222.00000 169.59846,222.00000 C 168.12139,222.00000 174.24453,236.81557 183.03040,254.50000 C 186.10105,260.68068 186.87685,261.70405 186.44178,259.00000 C 186.06521,256.65953 186.18994,255.95160 186.81827,256.86315 C 187.61157,258.01402 187.84408,258.01402 188.31128,256.86315 C 188.61565,256.11342 188.62860,256.88884 188.34007,258.58631 C 187.97708,260.72186 188.35086,262.20800 189.55340,263.41054 C 190.50926,264.36640 191.43843,266.12756 191.61822,267.32423 C 193.04482,276.81950 193.96237,280.00000 195.27507,280.00000 C 195.85712,280.00000 196.07008,280.26326 195.74832,280.58501 C 195.42656,280.90677 195.63570,282.52514 196.21308,284.18139 C 197.01602,286.48471 197.48924,286.87618 198.22575,285.84637 C 198.94368,284.84255 199.03938,284.96102 198.60191,286.31204 C 197.79090,288.81663 206.11882,305.12110 207.59201,303.91292 C 208.19261,303.42036 208.98432,303.31765 209.35134,303.68468 z M 198.00000,282.00000 C 198.58870,280.90000 199.29537,280.00000 199.57037,280.00000 C 199.84537,280.00000 199.58870,280.90000 199.00000,282.00000 C 198.41130,283.10000 197.70463,284.00000 197.42963,284.00000 C 197.15463,284.00000 197.41130,283.10000 198.00000,282.00000 z M 200.45888,272.93347 C 200.09635,272.34688 200.01420,271.65247 200.27633,271.39034 C 200.53845,271.12821 201.01939,271.60815 201.34508,272.45687 C 202.02126,274.21898 201.44493,274.52893 200.45888,272.93347 z M 183.87244,243.25000 C 182.62857,241.66394 182.66394,241.62857 184.25000,242.87244 C 185.91575,244.17881 186.44548,245.00000 185.62244,245.00000 C 185.41479,245.00000 184.62729,244.21250 183.87244,243.25000 z M 263.00567,299.00796 C 259.75923,294.44875 249.72826,286.41573 244.26235,283.99790 C 238.79546,281.57964 232.24270,280.47129 228.68763,281.36355 C 227.33783,281.70233 224.74117,283.37350 222.91729,285.07726 C 219.75678,288.02962 219.53378,288.08877 218.16604,286.33751 C 216.77990,284.56269 216.75258,284.56250 217.36547,286.33179 C 217.71446,287.33927 218.00000,288.83391 218.00000,289.65322 C 218.00000,290.89197 218.23384,290.92030 219.38841,289.82143 C 228.03925,281.58793 232.59500,280.74242 241.86570,285.64986 C 249.09844,289.47850 256.83507,295.12270 261.42710,299.92073 C 265.05499,303.71137 265.97570,303.17899 263.00567,299.00796 z M 188.23992,300.64828 C 188.87713,301.04210 189.01670,300.83604 188.58541,300.13820 C 187.73455,298.76148 185.96487,299.58814 186.07895,301.30902 C 186.13545,302.16146 186.30186,302.14291 186.66436,301.24377 C 186.94291,300.55284 187.65191,300.28487 188.23992,300.64828 z M 186.49164,296.20836 C 185.94624,295.81876 183.70207,291.74581 181.50461,287.15736 C 179.30714,282.56890 177.17100,278.60569 176.75763,278.35021 C 175.91401,277.82882 177.06108,280.98854 179.35320,285.50000 C 181.59526,289.91290 183.34570,294.39441 183.16148,295.25000 C 183.07267,295.66250 183.45000,296.00000 184.00000,296.00000 C 184.55000,296.00000 185.00000,296.76500 185.00000,297.70000 C 185.00000,299.05390 185.25279,299.14721 186.24164,298.15836 C 187.03442,297.36558 187.12479,296.66064 186.49164,296.20836 z M 409.26523,293.20762 C 410.00499,292.29710 409.97319,291.57319 409.15762,290.75762 C 408.28079,289.88079 408.00000,290.11932 408.00000,291.74098 C 408.00000,292.91852 407.56965,294.14793 407.04367,294.47301 C 406.51769,294.79808 406.39190,295.83714 406.76413,296.78203 C 407.36568,298.30902 407.48395,298.27766 407.82806,296.50000 C 408.04100,295.40000 408.68772,293.91843 409.26523,293.20762 z M 398.50000,292.00000 C 398.16008,291.45000 397.45852,291.00000 396.94098,291.00000 C 396.42344,291.00000 396.00000,291.45000 396.00000,292.00000 C 396.00000,292.55000 396.70156,293.00000 397.55902,293.00000 C 398.41648,293.00000 398.83992,292.55000 398.50000,292.00000 z M 401.50000,289.00000 C 401.84463,288.44237 401.09659,288.00677 399.80902,288.01531 C 397.95138,288.02763 397.79323,288.22012 399.00000,289.00000 C 400.86074,290.20250 400.75681,290.20250 401.50000,289.00000 z M 477.54271,289.06910 C 477.22627,288.55710 477.38556,287.87974 477.89668,287.56386 C 478.40779,287.24797 479.12531,285.21778 479.49116,283.05233 C 479.85701,280.88687 480.79617,278.58413 481.57817,277.93512 C 482.36018,277.28612 483.00000,276.23542 483.00000,275.60024 C 483.00000,274.96506 484.35000,273.26076 486.00000,271.81291 C 487.65000,270.36506 489.00000,269.39141 489.00000,269.64925 C 489.00000,269.90708 489.49804,269.81023 490.10676,269.43402 C 490.88945,268.95029 490.84196,268.52036 489.94458,267.96575 C 488.95656,267.35512 489.04361,266.81353 490.33782,265.51932 C 492.15959,263.69756 492.59019,258.48279 491.00000,257.50000 C 490.45000,257.16008 489.94780,257.92102 489.88400,259.19098 C 489.79889,260.88516 489.64622,261.03401 489.31067,259.75000 C 489.05915,258.78750 488.45369,258.00000 487.96522,258.00000 C 486.61570,258.00000 484.85998,250.40607 485.56242,247.60732 C 486.09672,245.47849 485.89637,245.21434 484.10303,245.68331 C 482.74621,246.03812 481.80929,245.66658 481.40516,244.61345 C 481.06464,243.72605 479.98944,243.00000 479.01585,243.00000 C 477.49995,243.00000 477.31811,243.68231 477.74996,247.75000 C 478.02732,250.36250 478.94179,253.28750 479.78211,254.25000 C 480.74947,255.35800 480.88626,256.00000 480.15499,256.00000 C 479.51974,256.00000 479.00000,256.70156 479.00000,257.55902 C 479.00000,258.43620 479.48007,258.82134 480.09767,258.43964 C 480.83572,257.98350 481.11754,259.02894 480.95789,261.63062 C 480.59023,267.62195 480.87860,269.00000 482.50000,269.00000 C 484.50074,269.00000 484.40946,267.32853 482.34565,266.17356 C 480.83958,265.33072 480.87301,265.05268 482.71862,263.07165 C 484.37851,261.28996 484.84941,261.16519 485.31680,262.38318 C 485.63076,263.20136 485.35043,264.09874 484.69382,264.37735 C 483.88409,264.72094 484.06302,265.24031 485.25000,265.99165 C 486.21250,266.60090 487.00000,267.55916 487.00000,268.12112 C 487.00000,270.00945 483.94584,272.21910 482.02875,271.71777 C 479.91861,271.16596 479.00336,272.70822 478.99384,276.83179 C 478.99045,278.29930 478.34451,280.73292 477.55842,282.23982 C 475.44009,286.30058 475.20201,290.00000 477.05902,290.00000 C 477.64148,290.00000 477.85914,289.58109 477.54271,289.06910 z M 427.38663,288.28004 C 427.78261,287.88406 429.08706,287.54656 430.28542,287.53004 C 433.27435,287.48883 433.74862,284.48200 430.80120,284.25998 C 429.55680,284.16624 428.03034,283.39440 427.40908,282.54477 C 426.14144,280.81117 424.00000,280.46897 424.00000,282.00000 C 424.00000,282.55000 423.51968,283.00000 422.93261,283.00000 C 422.32250,283.00000 422.13549,282.14846 422.49610,281.01230 C 423.05644,279.24681 422.78451,279.09310 420.06348,279.63730 C 418.09782,280.03044 417.00000,279.84685 417.00000,279.12500 C 417.00000,278.50625 416.10000,278.00000 415.00000,278.00000 C 412.66187,278.00000 412.32037,279.80197 414.50000,280.63837 C 415.32500,280.95496 416.00000,281.76844 416.00000,282.44611 C 416.00000,283.12378 417.79484,284.53813 419.98853,285.58912 C 422.18222,286.64010 423.98222,287.83750 423.98853,288.25000 C 424.00316,289.20657 426.43857,289.22810 427.38663,288.28004 z M 195.34508,286.45687 C 195.01939,285.60815 194.53845,285.12821 194.27633,285.39034 C 194.01420,285.65247 194.09635,286.34688 194.45888,286.93347 C 195.44493,288.52893 196.02126,288.21898 195.34508,286.45687 z M 407.36163,286.50000 C 407.04504,285.67500 406.15917,285.00000 405.39301,285.00000 C 404.62686,285.00000 404.00000,285.67500 404.00000,286.50000 C 404.00000,287.32536 404.88540,288.00000 405.96862,288.00000 C 407.30765,288.00000 407.75315,287.52029 407.36163,286.50000 z M 418.00000,287.00000 C 418.00000,286.45000 416.65000,286.00000 415.00000,286.00000 C 413.35000,286.00000 412.00000,286.45000 412.00000,287.00000 C 412.00000,287.55000 413.35000,288.00000 415.00000,288.00000 C 416.65000,288.00000 418.00000,287.55000 418.00000,287.00000 z M 438.48992,284.98369 C 438.14446,284.42472 437.44290,284.22627 436.93090,284.54271 C 435.54386,285.39994 435.80249,286.00000 437.55902,286.00000 C 438.41648,286.00000 438.83538,285.54266 438.48992,284.98369 z M 481.96937,282.50000 C 481.96937,281.95000 481.53316,282.17500 481.00000,283.00000 C 480.46684,283.82500 480.03063,284.95000 480.03063,285.50000 C 480.03063,286.05000 480.46684,285.82500 481.00000,285.00000 C 481.53316,284.17500 481.96937,283.05000 481.96937,282.50000 z M 410.96205,283.75000 C 410.93219,282.76667 403.00000,276.30709 403.00000,277.26611 C 403.00000,277.40201 402.58141,278.97273 402.06981,280.75660 C 401.45274,282.90820 401.48425,284.00000 402.16343,284.00000 C 402.72652,284.00000 403.42259,283.10000 403.71025,282.00000 C 404.40821,279.33100 405.38332,279.47920 407.00000,282.50000 C 408.39066,285.09848 411.02825,285.93062 410.96205,283.75000 z M 184.46634,264.37358 C 180.82544,256.74311 176.25088,246.54267 174.30067,241.70592 C 170.59199,232.50802 169.32379,230.86284 171.10184,237.55623 C 172.23580,241.82495 190.10166,279.23168 190.71402,278.61932 C 190.91871,278.41463 188.10725,272.00405 184.46634,264.37358 z M 168.05820,260.30409 C 163.71229,251.46591 159.16853,241.93795 157.96094,239.13084 C 155.54362,233.51164 154.00000,233.27417 154.00000,238.52150 C 154.00000,244.17238 157.83832,252.63725 163.57310,259.63358 C 166.55556,263.27214 170.39502,268.69478 172.10522,271.68390 C 177.90701,281.82438 175.99115,276.43718 168.05820,260.30409 z M 486.36163,275.50000 C 486.67821,274.67500 486.50135,274.00000 485.96862,274.00000 C 485.43588,274.00000 485.00000,274.67500 485.00000,275.50000 C 485.00000,276.32500 485.17686,277.00000 485.39301,277.00000 C 485.60917,277.00000 486.04504,276.32500 486.36163,275.50000 z M 411.50000,275.00000 C 411.16008,274.45000 410.68352,274.00000 410.44098,274.00000 C 410.19844,274.00000 410.00000,274.45000 410.00000,275.00000 C 410.00000,275.55000 410.47656,276.00000 411.05902,276.00000 C 411.64148,276.00000 411.83992,275.55000 411.50000,275.00000 z M 336.81354,264.25589 C 338.20675,259.71639 337.47331,258.48113 334.84092,260.93358 C 333.71143,261.98586 333.08671,263.33129 333.45266,263.92341 C 333.81912,264.51635 333.41766,265.00000 332.55902,265.00000 C 331.70156,265.00000 331.00000,265.60000 331.00000,266.33333 C 331.00000,270.37322 335.42093,268.79342 336.81354,264.25589 z M 191.00000,267.00000 C 191.00000,266.45000 190.52344,266.00000 189.94098,266.00000 C 189.35852,266.00000 189.16008,266.45000 189.50000,267.00000 C 189.83992,267.55000 190.31648,268.00000 190.55902,268.00000 C 190.80156,268.00000 191.00000,267.55000 191.00000,267.00000 z M 202.70522,262.66472 C 202.04235,261.47412 201.27500,260.27500 201.00000,260.00000 C 200.72500,259.72500 200.37410,258.74007 200.22023,257.81126 C 199.65681,254.41034 191.30499,238.02600 190.50470,238.75164 C 190.05076,239.16324 189.99468,238.95105 190.38009,238.28011 C 190.76549,237.60916 189.93764,234.91274 188.54041,232.28806 C 187.14318,229.66338 186.00000,227.88198 186.00000,228.32939 C 186.00000,228.77679 185.32500,228.46786 184.50000,227.64286 C 183.67500,226.81786 183.00000,225.66071 183.00000,225.07143 C 183.00000,224.48214 182.53417,224.00000 181.96482,224.00000 C 181.29173,224.00000 181.25455,224.61213 181.85853,225.75000 C 182.36942,226.71250 184.44323,231.10000 186.46699,235.50000 C 196.40986,257.11754 199.34600,262.90419 200.12695,262.42154 C 200.59453,262.13256 200.70910,262.59450 200.38156,263.44806 C 200.05317,264.30382 200.30908,265.00000 200.95203,265.00000 C 201.61869,265.00000 201.79643,265.53532 201.36706,266.25000 C 200.83099,267.14229 201.08745,267.11789 202.26326,266.16472 C 203.62302,265.06244 203.70014,264.45172 202.70522,262.66472 z M 197.56429,257.29313 C 197.02161,255.86793 197.13647,255.75307 198.12409,256.73333 C 198.80751,257.41167 199.11476,258.21857 198.80687,258.52646 C 198.49898,258.83435 197.93982,258.27935 197.56429,257.29313 z M 495.29011,256.99862 C 495.57796,255.89786 495.40545,255.24942 494.90674,255.55764 C 494.40803,255.86586 494.00000,256.76648 494.00000,257.55902 C 494.00000,259.62877 494.67950,259.33361 495.29011,256.99862 z M 203.73038,255.92925 C 203.88605,253.86256 202.37929,250.72929 197.55371,243.08509 C 194.65546,238.49396 194.49504,237.89901 196.25000,238.25000 C 198.22477,238.64495 197.75191,236.95232 194.01082,230.23479 C 191.56277,225.83907 190.07991,224.13909 189.04130,224.53765 C 188.22711,224.85008 187.88084,224.78583 188.27180,224.39486 C 189.27738,223.38929 186.98723,220.88986 185.75696,221.65021 C 185.18935,222.00101 184.96341,221.66498 185.24527,220.88920 C 185.52287,220.12514 186.27552,219.61892 186.91782,219.76427 C 187.79838,219.96354 187.79245,219.47157 186.89373,217.76427 C 185.14353,214.43944 182.00000,210.57142 182.00000,211.74270 C 182.00000,212.29952 182.67500,213.31531 183.50000,214.00000 C 185.39232,215.57049 185.41969,216.66667 183.56658,216.66667 C 182.02183,216.66667 180.55521,212.74587 180.88580,209.50000 C 181.05816,207.80774 180.91630,207.73080 179.96387,209.00000 C 179.06993,210.19124 178.96172,209.93395 179.43817,207.75000 C 179.78579,206.15658 179.60952,205.00000 179.01905,205.00000 C 177.51322,205.00000 176.48182,205.43259 176.63482,206.00000 C 176.70897,206.27500 177.07589,207.50967 177.45021,208.74371 C 177.98808,210.51696 177.80255,210.86146 176.56539,210.38672 C 175.70443,210.05634 175.00000,210.28417 175.00000,210.89301 C 175.00000,211.50186 175.47656,212.00000 176.05902,212.00000 C 176.64148,212.00000 176.90669,212.34196 176.64839,212.75991 C 175.65250,214.37129 178.94001,219.94684 181.22403,220.52009 C 183.78492,221.16283 193.03837,233.95302 193.47774,237.45726 C 193.80193,240.04289 202.06415,258.00000 202.92963,258.00000 C 203.28425,258.00000 203.64458,257.06816 203.73038,255.92925 z M 192.45888,230.93347 C 192.09635,230.34688 192.01420,229.65247 192.27633,229.39034 C 192.53845,229.12821 193.01939,229.60815 193.34508,230.45687 C 194.02126,232.21898 193.44493,232.52893 192.45888,230.93347 z M 181.49921,218.99872 C 181.21940,218.54599 181.78012,218.29733 182.74524,218.44614 C 183.71036,218.59496 184.87176,218.21796 185.32613,217.60836 C 185.87349,216.87401 186.02392,216.97668 185.77192,217.91263 C 185.34613,219.49405 182.28607,220.27189 181.49921,218.99872 z M 179.00000,218.05902 C 179.00000,217.54148 179.44485,216.84310 179.98855,216.50708 C 180.55541,216.15674 180.72305,216.55814 180.38156,217.44806 C 179.71677,219.18048 179.00000,219.49745 179.00000,218.05902 z M 492.93570,253.06090 C 494.12097,252.31090 494.14481,251.87941 493.07239,250.58723 C 491.49916,248.69160 490.00000,249.40976 490.00000,252.05902 C 490.00000,254.18878 490.74919,254.44447 492.93570,253.06090 z M 500.93276,246.50000 C 500.93476,245.95000 500.27570,246.37351 499.46820,247.44113 C 498.66069,248.50875 498.01595,250.08375 498.03544,250.94113 C 498.07401,252.63817 500.92635,248.26600 500.93276,246.50000 z M 165.34508,247.45687 C 165.01939,246.60815 164.53845,246.12821 164.27633,246.39034 C 164.01420,246.65247 164.09635,247.34688 164.45888,247.93347 C 165.44493,249.52893 166.02126,249.21898 165.34508,247.45687 z M 493.75047,246.75000 C 493.12044,244.85781 490.00000,244.58880 490.00000,246.42668 C 490.00000,247.35431 490.85500,248.00000 492.08333,248.00000 C 493.30531,248.00000 493.99459,247.48318 493.75047,246.75000 z M 150.60838,243.75000 C 150.27058,241.96250 148.70882,237.20212 147.13782,233.17137 C 144.50672,226.42072 144.23519,226.07406 143.69482,228.77591 C 142.83412,233.07938 146.50015,244.29861 149.39970,246.23469 C 151.15187,247.40464 151.25787,247.18673 150.60838,243.75000 z M 201.14539,243.75000 C 200.14414,241.96250 199.10922,239.84716 198.84555,239.04925 C 198.58189,238.25134 198.11198,238.02634 197.80130,238.54925 C 197.27272,239.43891 201.47451,247.00000 202.49748,247.00000 C 202.75507,247.00000 202.14663,245.53750 201.14539,243.75000 z M 161.41403,237.95151 C 160.03008,234.40318 158.54995,230.62735 158.12484,229.56078 C 157.69973,228.49422 157.09990,228.04422 156.79188,228.56078 C 156.26203,229.44937 162.99319,245.34015 163.62978,244.70356 C 163.79507,244.53827 162.79798,241.49985 161.41403,237.95151 z M 352.82529,237.25000 C 352.67376,232.26277 352.59981,232.06379 352.26779,235.75000 C 351.99521,238.77643 351.43446,240.00000 350.32006,240.00000 C 349.04238,240.00000 348.98363,240.27534 350.00000,241.50000 C 352.25073,244.21196 353.00247,243.08114 352.82529,237.25000 z M 203.24377,241.33564 C 202.55284,241.05709 202.25408,240.39790 202.57986,239.87078 C 203.29633,238.71151 201.20141,235.98741 199.62756,236.03180 C 199.00740,236.04930 199.30436,236.67373 200.28746,237.41943 C 201.27056,238.16514 202.00477,239.16333 201.91904,239.63763 C 201.61584,241.31499 202.01459,241.99908 203.25000,241.92105 C 204.24336,241.85831 204.24208,241.73812 203.24377,241.33564 z M 150.89814,223.25573 C 147.95848,215.89230 147.39930,215.27294 146.59264,218.48691 C 146.14963,220.25200 146.84969,223.55970 148.71586,228.51893 L 151.50000,235.91761 L 152.34798,232.46454 C 153.00844,229.77508 152.68783,227.73864 150.89814,223.25573 z M 199.60783,232.46629 C 199.72696,231.65459 199.47974,231.20351 199.05844,231.46388 C 198.63715,231.72425 197.75980,230.76825 197.10879,229.33942 C 196.45777,227.91059 195.70012,226.96655 195.42512,227.24155 C 194.70506,227.96161 197.15004,233.00000 198.21953,233.00000 C 198.71371,233.00000 198.79433,233.56250 198.39869,234.25000 C 198.00305,234.93750 198.06452,235.14948 198.53529,234.72106 C 199.00605,234.29264 199.48869,233.27799 199.60783,232.46629 z M 177.15000,225.00000 C 177.23250,223.90000 177.34500,222.43750 177.40000,221.75000 C 177.45500,221.06250 176.71250,220.63223 175.75000,220.79384 C 174.78750,220.95545 174.00000,220.63207 174.00000,220.07522 C 174.00000,219.51837 173.30557,219.32925 172.45683,219.65494 C 171.09112,220.17901 171.10894,220.46290 172.61182,222.12356 C 173.54580,223.15560 173.99749,224.00000 173.61556,224.00000 C 172.69367,224.00000 175.28456,226.91300 176.25000,226.96196 C 176.66250,226.98288 177.06750,226.10000 177.15000,225.00000 z M 175.00000,223.05902 C 175.00000,222.47656 175.45000,222.00000 176.00000,222.00000 C 176.55000,222.00000 177.00000,222.19844 177.00000,222.44098 C 177.00000,222.68352 176.55000,223.16008 176.00000,223.50000 C 175.45000,223.83992 175.00000,223.64148 175.00000,223.05902 z M 156.00000,224.06205 C 156.00000,222.72828 152.91165,209.57832 152.50226,209.16893 C 152.31514,208.98181 151.62996,209.82291 150.97964,211.03804 C 150.00465,212.85984 150.20665,214.27810 152.13131,219.12368 C 154.21619,224.37262 156.00000,226.64965 156.00000,224.06205 z M 144.16845,212.76845 C 143.42638,212.02638 143.29624,212.41681 143.73121,214.08016 C 144.08482,215.43236 144.53811,215.88566 144.78776,215.13671 C 145.02824,214.41527 144.74955,213.34955 144.16845,212.76845 z M 184.50000,209.00000 C 184.16008,208.45000 184.43352,208.00000 185.10765,208.00000 C 185.78178,208.00000 186.06327,207.72994 185.73320,207.39986 C 184.83499,206.50165 182.87773,207.99315 183.54271,209.06910 C 183.85914,209.58109 184.34303,210.00000 184.61803,210.00000 C 184.89303,210.00000 184.83992,209.55000 184.50000,209.00000 z M 202.37170,208.20759 C 202.64106,207.77176 201.88579,207.34168 200.69333,207.25185 C 198.97575,207.12247 198.83429,207.28395 200.01261,208.02895 C 201.83504,209.18121 201.77288,209.17650 202.37170,208.20759 z M 169.72356,203.01969 C 169.80561,201.93052 169.45652,200.78215 168.94782,200.46775 C 168.43310,200.14964 168.31494,200.65715 168.68139,201.61211 C 169.17933,202.90971 168.99368,203.11938 167.91994,202.47209 C 166.70790,201.74141 166.70094,201.86381 167.87244,203.30804 C 169.57728,205.40977 169.54312,205.41509 169.72356,203.01969 z M 213.74292,201.40959 C 213.41820,201.08487 213.81182,198.95052 214.61763,196.66659 C 215.42345,194.38267 216.12082,190.61725 216.16736,188.29900 C 216.21489,185.93094 216.71199,184.17513 217.30181,184.29199 C 217.87923,184.40640 220.34155,180.00000 222.77364,174.50000 L 227.19563,164.50000 L 226.50793,149.50000 C 226.12970,141.25000 225.81328,133.48418 225.80479,132.24262 C 225.79425,130.70203 225.02896,129.79439 223.39467,129.38421 C 222.07760,129.05365 221.00000,128.38197 221.00000,127.89159 C 221.00000,127.40122 219.22509,127.00000 217.05576,127.00000 C 212.11022,127.00000 207.73933,130.45159 207.43108,134.60040 C 207.31259,136.19518 206.90424,139.07500 206.52363,141.00000 C 206.12846,142.99865 206.19751,143.99173 206.68460,143.31509 C 207.19579,142.60498 207.59581,144.60848 207.68291,148.31509 C 207.76285,151.71679 207.92697,155.40000 208.04764,156.50000 C 208.16831,157.60000 207.93950,159.40000 207.53918,160.50000 C 207.05127,161.84071 207.11683,162.07547 207.73807,161.21216 C 209.25978,159.09751 211.02137,169.36711 211.08588,180.72903 C 211.11782,186.35499 210.86001,191.41749 210.51296,191.97903 C 210.16591,192.54056 210.35852,193.00000 210.94098,193.00000 C 211.52344,193.00000 212.00000,194.15156 212.00000,195.55902 C 212.00000,197.01038 211.56716,197.85052 211.00000,197.50000 C 210.45000,197.16008 210.00000,197.35852 210.00000,197.94098 C 210.00000,198.52344 210.45000,199.00000 211.00000,199.00000 C 211.55000,199.00000 212.00000,199.67500 212.00000,200.50000 C 212.00000,201.32500 212.52500,202.00000 213.16667,202.00000 C 213.80833,202.00000 214.06765,201.73432 213.74292,201.40959 z M 166.52083,199.43750 C 166.60104,198.92188 166.47823,198.84030 166.24792,199.25623 C 166.01761,199.67216 165.41761,199.75810 164.91459,199.44721 C 164.41157,199.13633 164.00000,199.39602 164.00000,200.02432 C 164.00000,201.35921 166.30538,200.82255 166.52083,199.43750 z M 175.38691,199.81702 C 175.09810,199.34972 174.44290,199.22627 173.93090,199.54271 C 172.62252,200.35133 172.76984,200.66667 174.45601,200.66667 C 175.25682,200.66667 175.67572,200.28433 175.38691,199.81702 z M 173.00000,198.45516 C 173.00000,198.27319 172.13118,198.18974 171.06928,198.26973 C 170.00738,198.34972 169.34679,198.75210 169.60130,199.16391 C 170.02374,199.84742 173.00000,199.22677 173.00000,198.45516 z M 168.68843,196.26660 C 170.87288,195.79125 170.87219,195.78605 168.31263,193.41393 C 165.52164,190.82733 164.29844,191.04534 163.04734,194.35233 C 162.01316,197.08593 162.74083,198.33136 164.85115,197.43958 C 165.75802,197.05635 167.48479,196.52851 168.68843,196.26660 z M 164.27083,194.39583 C 164.60313,194.06354 165.46562,194.02802 166.18750,194.31689 C 166.98523,194.63611 166.74828,194.87307 165.58333,194.92105 C 164.52917,194.96447 163.93854,194.72813 164.27083,194.39583 z M 109.00000,193.00000 C 108.36088,191.80579 107.61824,191.04843 107.34969,191.31697 C 107.08114,191.58552 107.43807,192.72860 108.14286,193.85714 C 109.80940,196.52570 110.51127,195.82383 109.00000,193.00000 z M 117.60200,191.84216 C 116.50230,190.27213 116.00000,190.03237 116.00000,191.07749 C 116.00000,192.68217 118.07087,195.26246 118.78533,194.54800 C 119.01560,194.31773 118.48310,193.10011 117.60200,191.84216 z M 115.50000,188.00000 C 115.16008,187.45000 114.68352,187.00000 114.44098,187.00000 C 114.19844,187.00000 114.00000,187.45000 114.00000,188.00000 C 114.00000,188.55000 114.47656,189.00000 115.05902,189.00000 C 115.64148,189.00000 115.83992,188.55000 115.50000,188.00000 z M 415.52823,180.95433 C 415.88028,180.38470 417.03044,180.19227 418.08416,180.52671 C 420.59928,181.32498 420.54249,180.36070 417.99406,178.99682 C 416.54378,178.22065 414.88175,178.25475 411.99406,179.11993 C 409.79733,179.77808 408.00090,180.58285 408.00200,180.90829 C 408.00562,181.97430 414.87189,182.01630 415.52823,180.95433 z M 117.97994,174.47583 C 117.28422,173.63754 116.50906,173.15760 116.25736,173.40930 C 115.56387,174.10280 116.97291,176.00000 118.18146,176.00000 C 118.84456,176.00000 118.76869,175.42622 117.97994,174.47583 z M 376.50729,169.40566 C 378.62762,167.44061 379.98635,166.94727 382.10893,167.37179 C 384.29620,167.80924 384.78775,167.61047 384.34863,166.46612 C 383.65956,164.67046 380.72764,164.57433 377.75640,166.25000 C 375.38516,167.58729 373.08384,170.02275 373.03180,171.25000 C 372.98080,172.45288 373.53881,172.15676 376.50729,169.40566 z M 107.54112,158.06653 C 107.17858,157.47994 106.40342,157.00000 105.81854,157.00000 C 105.15544,157.00000 105.23131,157.57378 106.02006,158.52417 C 107.39160,160.17677 108.61739,159.80797 107.54112,158.06653 z M 434.17328,154.50000 C 435.30086,150.36009 434.55418,149.00000 431.15383,149.00000 C 428.58623,149.00000 426.92619,149.98921 425.83504,152.16944 C 425.24822,153.34194 430.35197,158.07887 431.88402,157.78366 C 432.69370,157.62765 433.72387,156.15000 434.17328,154.50000 z M 97.816121,144.49577 C 97.188570,143.11845 96.486758,142.17991 96.256539,142.41013 C 95.789491,142.87718 97.817012,147.00000 98.513745,147.00000 C 98.757603,147.00000 98.443672,145.87310 97.816121,144.49577 z M 378.30851,141.75000 C 378.65431,140.78750 379.76135,140.00000 380.76862,140.00000 C 381.77588,140.00000 383.17029,139.43750 383.86732,138.75000 C 384.88270,137.74849 385.39167,137.84789 386.42756,139.25000 C 388.10458,141.51989 389.58982,141.46005 392.21216,139.01697 C 394.30333,137.06874 394.30754,136.99731 392.45175,134.94669 C 391.00763,133.35095 389.82604,132.99765 387.43406,133.44639 C 384.48472,133.99969 384.30022,133.85448 384.21662,130.91397 C 384.11118,127.20559 383.01408,125.59684 382.96820,129.08333 C 382.92308,132.51193 380.74946,135.00875 378.35493,134.38257 C 375.65923,133.67762 374.21968,135.69705 373.99409,140.50000 C 373.69011,146.97191 373.80431,147.26819 375.83990,145.28896 C 376.85184,144.30503 377.96271,142.71250 378.30851,141.75000 z M 376.00000,142.00000 C 376.00000,140.90000 376.40787,140.00000 376.90638,140.00000 C 377.40489,140.00000 377.57741,140.90000 377.28975,142.00000 C 377.00209,143.10000 376.59422,144.00000 376.38337,144.00000 C 376.17252,144.00000 376.00000,143.10000 376.00000,142.00000 z M 418.85420,127.48852 C 419.06164,126.39483 419.51681,125.27500 419.86568,125.00000 C 420.21456,124.72500 421.09088,123.44817 421.81306,122.16260 C 423.00984,120.03217 422.95588,119.87923 421.20363,120.43537 C 419.50972,120.97300 419.30725,120.58279 419.50074,117.15353 C 419.62152,115.01292 420.03482,112.75267 420.41919,112.13076 C 421.24658,110.79201 420.06176,110.67481 418.12188,111.90351 C 417.36392,112.38360 417.02384,113.22955 417.36614,113.78341 C 418.09912,114.96940 415.81317,116.00000 412.44960,116.00000 C 410.65794,116.00000 410.21815,116.40490 410.68588,117.62379 C 411.06085,118.60097 410.65015,119.61628 409.65449,120.17348 C 407.33798,121.46987 407.50657,125.00000 409.88499,125.00000 C 410.92173,125.00000 412.52514,126.15252 413.44812,127.56117 C 415.36775,130.49089 418.29219,130.45159 418.85420,127.48852 z M 416.00000,125.00000 C 416.00000,124.45000 416.45000,124.00000 417.00000,124.00000 C 417.55000,124.00000 418.00000,124.45000 418.00000,125.00000 C 418.00000,125.55000 417.55000,126.00000 417.00000,126.00000 C 416.45000,126.00000 416.00000,125.55000 416.00000,125.00000 z M 450.00000,124.00000 C 450.00000,123.45000 449.53226,123.00000 448.96057,123.00000 C 448.36081,123.00000 448.46656,122.40992 449.21057,121.60496 C 449.91976,120.83769 450.83144,120.41050 451.23653,120.65565 C 451.64162,120.90080 451.59290,120.06607 451.12827,118.80069 C 449.73812,115.01474 440.00000,115.29630 440.00000,119.12244 C 440.00000,119.60510 440.73590,120.00000 441.63533,120.00000 C 442.53476,120.00000 444.31327,121.12500 445.58758,122.50000 C 447.97242,125.07328 450.00000,125.76256 450.00000,124.00000 z M 416.00000,114.00000 C 416.00000,113.45000 415.29844,113.00000 414.44098,113.00000 C 413.58352,113.00000 413.16008,112.55000 413.50000,112.00000 C 413.83992,111.45000 413.64148,111.00000 413.05902,111.00000 C 411.88779,111.00000 411.61878,113.28545 412.66667,114.33333 C 413.68914,115.35581 416.00000,115.12472 416.00000,114.00000 z M 405.74610,104.34209 C 405.15918,103.05394 404.30978,102.00000 403.85854,102.00000 C 402.81618,102.00000 401.55185,106.88519 402.37990,107.71324 C 402.72096,108.05429 403.00000,107.35833 403.00000,106.16667 C 403.00000,104.97500 403.45000,104.00000 404.00000,104.00000 C 404.55000,104.00000 405.00689,105.23750 405.01531,106.75000 C 405.02645,108.74937 405.27391,109.11570 405.92192,108.09209 C 406.46053,107.24131 406.39095,105.75738 405.74610,104.34209 z M 378.01531,419.75000 C 378.02373,419.06250 378.41111,417.89977 378.87615,417.16615 C 379.55002,416.10310 379.85209,416.17218 380.36408,417.50640 C 380.71741,418.42714 380.75347,419.58988 380.44423,420.09024 C 379.61882,421.42578 377.99757,421.19867 378.01531,419.75000 z M 379.15789,411.00000 C 379.15789,409.62500 379.38487,409.06250 379.66228,409.75000 C 379.93969,410.43750 379.93969,411.56250 379.66228,412.25000 C 379.38487,412.93750 379.15789,412.37500 379.15789,411.00000 z M 187.56429,289.29313 C 187.02161,287.86793 187.13647,287.75307 188.12409,288.73333 C 188.80751,289.41167 189.11476,290.21857 188.80687,290.52646 C 188.49898,290.83435 187.93982,290.27935 187.56429,289.29313 z M 474.00000,231.05040 C 474.00000,230.01265 473.72686,228.45177 473.39301,227.58179 C 472.99470,226.54380 473.33849,226.00000 474.39301,226.00000 C 475.27686,226.00000 476.00000,226.63820 476.00000,227.41821 C 476.00000,228.19823 476.25086,229.49016 476.55747,230.28917 C 476.86408,231.08818 476.41408,232.01086 475.55747,232.33957 C 474.48664,232.75049 474.00000,232.34768 474.00000,231.05040 z M 465.51008,225.01631 C 465.16462,224.45734 465.58352,224.00000 466.44098,224.00000 C 468.19751,224.00000 468.45614,224.60006 467.06910,225.45729 C 466.55710,225.77373 465.85554,225.57528 465.51008,225.01631 z M 460.01531,222.75000 C 460.02373,222.06250 460.41111,220.89977 460.87615,220.16615 C 461.55002,219.10310 461.85209,219.17218 462.36408,220.50640 C 462.71741,221.42714 462.75347,222.58988 462.44423,223.09024 C 461.61882,224.42578 459.99757,224.19867 460.01531,222.75000 z M 167.46270,215.88247 C 166.99439,214.40697 167.44624,213.11838 168.95298,211.63247 C 171.10399,209.51119 171.12310,209.51044 172.59228,211.48846 C 173.50468,212.71686 173.67137,213.60954 173.02838,213.82387 C 172.45592,214.01469 172.23871,214.57723 172.54571,215.07396 C 172.85270,215.57068 172.37526,215.69749 171.48472,215.35576 C 170.33730,214.91546 170.17649,214.42351 170.93278,213.66722 C 172.66947,211.93053 172.14981,210.88949 170.16496,212.12905 C 168.95146,212.88689 168.48289,214.07524 168.78154,215.63753 C 169.34280,218.57358 168.37393,218.75353 167.46270,215.88247 z M 157.00000,198.50000 C 157.00000,197.67500 157.17686,197.00000 157.39301,197.00000 C 157.60917,197.00000 158.04504,197.67500 158.36163,198.50000 C 158.67821,199.32500 158.50135,200.00000 157.96862,200.00000 C 157.43588,200.00000 157.00000,199.32500 157.00000,198.50000 z M 145.96421,195.16435 C 146.62301,193.87975 147.43630,193.10296 147.77150,193.43816 C 148.10670,193.77336 147.56767,194.82440 146.57366,195.77381 C 144.84591,197.42403 144.81909,197.39721 145.96421,195.16435 z M 188.00000,193.15340 C 188.00000,192.68777 186.34984,190.60768 184.33297,188.53098 C 180.67563,184.76514 180.64817,184.75644 173.94039,185.23638 C 170.00426,185.51801 165.38033,186.60566 162.79169,187.85879 C 157.17411,190.57822 156.86114,190.55008 157.43647,187.37734 C 157.99485,184.29803 160.48341,181.31850 164.02776,179.48565 C 167.00272,177.94724 174.78643,179.03657 178.27410,181.47944 C 181.06414,183.43365 179.09479,183.45174 175.36431,181.50616 C 170.03972,178.72920 162.72564,180.00716 160.12682,184.16854 C 159.43085,185.28296 159.02610,186.35943 159.22737,186.56071 C 159.42865,186.76198 161.78134,186.26816 164.45559,185.46333 C 169.60633,183.91318 180.81695,183.66035 185.00000,185.00000 C 186.99239,185.63808 187.10484,185.82088 185.55383,185.90032 C 183.85404,185.98738 184.01228,186.41745 186.80383,189.29761 C 190.11490,192.71376 190.71561,194.00000 189.00000,194.00000 C 188.45000,194.00000 188.00000,193.61903 188.00000,193.15340 z M 139.85473,187.27393 C 139.63939,185.01580 139.80897,183.38194 140.23160,183.64313 C 140.65422,183.90433 141.00000,183.32585 141.00000,182.35762 C 141.00000,179.36557 146.97506,170.55563 150.76266,167.96303 C 153.66031,165.97960 155.54281,165.51466 160.43048,165.57526 C 163.76872,165.61666 167.99420,166.29166 169.82044,167.07526 C 173.11055,168.48699 173.07631,168.50000 166.07044,168.50000 C 162.18170,168.50000 159.45000,168.35000 160.00000,168.16667 C 160.55000,167.98333 161.00000,167.38508 161.00000,166.83721 C 161.00000,165.62275 155.61735,166.66999 151.77868,168.63129 C 148.55135,170.28023 144.00034,176.62800 143.99919,179.48213 C 143.99874,180.59196 143.15415,183.72291 142.12232,186.43981 L 140.24627,191.37962 L 139.85473,187.27393 z M 365.01531,179.25000 C 365.00689,178.01250 365.45000,177.00000 366.00000,177.00000 C 367.25292,177.00000 367.25292,178.06124 366.00000,180.00000 C 365.21613,181.21296 365.02770,181.06944 365.01531,179.25000 z M 182.74123,173.80274 C 179.57390,171.53755 177.21128,169.45539 177.49096,169.17571 C 178.02350,168.64316 188.66682,175.65188 189.58730,177.14126 C 190.70365,178.94755 188.28755,177.76933 182.74123,173.80274 z M 180.50000,176.00000 C 180.16008,175.45000 180.33197,175.00000 180.88197,175.00000 C 181.43197,175.00000 182.16008,175.45000 182.50000,176.00000 C 182.83992,176.55000 182.66803,177.00000 182.11803,177.00000 C 181.56803,177.00000 180.83992,176.55000 180.50000,176.00000 z M 152.00000,172.57037 C 152.00000,172.29537 152.90000,171.58870 154.00000,171.00000 C 155.10000,170.41130 156.00000,170.15463 156.00000,170.42963 C 156.00000,170.70463 155.10000,171.41130 154.00000,172.00000 C 152.90000,172.58870 152.00000,172.84537 152.00000,172.57037 z " id="path1323" style="fill:#d7c4b6"/>
+ <path d="M 145.00000,804.97551 C 128.36438,803.32359 107.52395,798.85709 86.447059,792.42649 C 76.888849,789.51027 74.319237,789.10873 67.445788,789.45729 C 58.529233,789.90947 56.720815,790.44764 49.182686,794.89228 C 37.945034,801.51824 29.729331,800.78320 19.805622,792.26397 C 6.3688612,780.72888 0.49618701,764.52263 6.4565825,755.42592 L 8.0045777,753.06338 L 11.368888,755.34646 C 13.808614,757.00211 15.729532,757.51323 18.358579,757.20630 C 20.352537,756.97352 21.767522,756.43286 21.502990,756.00484 C 21.238457,755.57681 21.697615,754.66592 22.523342,753.98063 C 23.746597,752.96542 23.790861,752.44584 22.762331,751.17536 C 21.886857,750.09394 21.864925,749.83501 22.690766,750.33045 C 23.560331,750.85212 23.740299,750.02724 23.357948,747.27241 C 22.963091,744.42747 23.096817,743.86878 23.901869,745.00000 C 24.732581,746.16727 24.979826,745.61272 25.016491,742.50000 C 25.060075,738.79986 25.171609,738.64270 26.504286,740.40350 C 27.822820,742.14561 27.999972,742.16365 28.593764,740.61625 C 28.969676,739.63664 28.533247,738.14173 27.556138,737.06203 C 25.622341,734.92521 26.654502,733.83538 29.826459,734.66487 C 31.981196,735.22835 32.312981,736.09221 32.291613,741.08333 C 32.285530,742.50417 32.824050,743.66667 33.488325,743.66667 C 34.170699,743.66667 34.653444,742.43512 34.598048,740.83561 C 34.544122,739.27853 34.162500,738.00353 33.750000,738.00228 C 33.337500,738.00103 33.000000,737.14814 33.000000,736.10699 C 33.000000,735.06583 32.325000,733.95496 31.500000,733.63837 C 30.619403,733.30046 30.000000,731.80068 30.000000,730.00638 C 30.000000,727.41552 29.546486,726.85930 27.022426,726.35449 C 25.384761,726.02695 23.482495,725.08137 22.795168,724.25319 C 21.700842,722.93461 22.097309,722.84064 25.984286,723.49735 C 28.425628,723.90981 31.115395,724.63029 31.961545,725.09841 C 32.807695,725.56654 35.187500,726.61294 37.250000,727.42375 C 39.312500,728.23456 41.000000,729.55368 41.000000,730.35514 C 41.000000,732.30222 49.354394,733.43016 56.250000,732.41407 C 59.137500,731.98858 63.862500,731.74716 66.750000,731.87758 C 70.024478,732.02548 72.000000,731.70360 72.000000,731.02217 C 72.000000,730.27910 72.577009,730.23844 73.803882,730.89504 C 74.906201,731.48498 76.170186,731.50462 77.053882,730.94554 C 77.849247,730.44234 79.700000,730.02373 81.166667,730.01531 C 82.633333,730.00689 84.005625,729.48313 84.216203,728.85139 C 84.776279,727.17116 94.781980,724.58608 100.00000,724.77348 C 102.78837,724.87362 103.98394,724.61461 103.14324,724.09254 C 102.19790,723.50549 102.12209,723.04258 102.89324,722.56598 C 103.50196,722.18977 104.47155,722.17340 105.04789,722.52960 C 105.62422,722.88579 106.86172,722.85285 107.79789,722.45638 C 108.73405,722.05992 110.57546,721.59403 111.88990,721.42108 C 115.60600,720.93210 117.18393,720.10662 116.50437,719.00706 C 116.16205,718.45318 116.32102,718.00000 116.85765,718.00000 C 117.39428,718.00000 118.06157,718.56250 118.34054,719.25000 C 118.66913,720.05981 119.13866,720.14785 119.67387,719.50000 C 120.12824,718.95000 121.62500,718.50000 123.00000,718.50000 C 124.46667,718.50000 125.39667,717.98333 125.25000,717.25000 C 125.11250,716.56250 125.41320,716.00000 125.91821,716.00000 C 126.42323,716.00000 127.66073,715.69075 128.66821,715.31277 C 130.28048,714.70790 130.33558,714.82767 129.12806,716.31216 C 127.87969,717.84686 128.05983,717.94650 131.12806,717.41835 C 134.80688,716.78510 139.15188,714.97763 140.09929,713.68643 C 140.42890,713.23721 142.87363,712.31481 145.53202,711.63665 C 150.27240,710.42737 152.86530,708.00000 149.41667,708.00000 C 147.11887,708.00000 148.11593,707.05542 151.00000,706.50000 C 153.71548,705.97705 154.90639,705.01776 152.91667,704.95611 C 152.13750,704.93197 153.27024,704.28155 155.43388,703.51073 C 157.59751,702.73992 159.74616,702.34312 160.20865,702.62895 C 160.67115,702.91479 160.92590,702.55271 160.77478,701.82433 C 160.61873,701.07222 161.28584,700.56496 162.31875,700.65035 C 163.49914,700.74792 163.94889,700.30919 163.60013,699.40035 C 162.98894,697.80760 164.55863,697.47682 165.50000,699.00000 C 166.48961,700.60123 167.57143,700.15713 167.57143,698.14966 C 167.57143,696.83680 166.98010,696.40430 165.53571,696.66074 C 164.41607,696.85953 164.08128,696.74843 164.79174,696.41384 C 165.79371,695.94197 165.81806,695.48570 164.90027,694.37983 C 164.09259,693.40663 163.92110,690.75880 164.35995,686.03697 C 164.76108,681.72090 164.62013,678.88326 163.98510,678.49079 C 162.49808,677.57176 163.80678,676.00000 166.05902,676.00000 C 168.73507,676.00000 168.50624,673.40056 165.75000,672.48968 L 163.50000,671.74610 L 165.75000,671.30350 C 168.53696,670.75527 168.72746,669.00000 166.00000,669.00000 C 164.90000,669.00000 164.00000,668.55000 164.00000,668.00000 C 164.00000,667.45000 165.12500,667.00000 166.50000,667.00000 C 167.94237,667.00000 169.00000,666.42409 169.00000,665.63867 C 169.00000,664.71083 168.16965,664.43607 166.39235,664.77583 C 163.85050,665.26173 163.82898,665.22260 165.53940,663.22497 C 166.50449,662.09783 167.90293,661.40926 168.64705,661.69480 C 169.45746,662.00579 170.00000,661.53203 170.00000,660.51337 C 170.00000,659.57803 170.90000,658.57741 172.00000,658.28975 C 174.27503,657.69481 174.71965,656.00000 172.60069,656.00000 C 171.66254,656.00000 171.08378,654.52122 170.84451,651.51283 C 170.51556,647.37684 170.70333,646.95047 173.24381,646.06485 C 175.37497,645.32192 176.00000,645.41350 176.00000,646.46869 C 176.00000,647.21924 176.56250,648.06031 177.25000,648.33772 C 178.25000,648.74123 178.25000,648.85789 177.25000,648.92105 C 175.43882,649.03544 175.70975,652.00000 177.53138,652.00000 C 178.37365,652.00000 179.30482,651.36923 179.60065,650.59830 C 179.89649,649.82736 181.71540,648.90077 183.64268,648.53921 C 186.71235,647.96334 186.98273,647.68387 185.82341,646.28519 C 184.61474,644.82698 184.47197,644.83210 184.17668,646.34427 C 183.98193,647.34155 182.88831,648.00000 181.42668,648.00000 C 179.26222,648.00000 179.00000,647.56777 179.00000,644.00000 C 179.00000,641.11111 178.58333,640.00000 177.50000,640.00000 C 176.67500,640.00000 176.00000,640.65159 176.00000,641.44798 C 176.00000,642.62258 175.43360,642.69851 173.00000,641.85016 C 171.35000,641.27496 170.00000,640.34212 170.00000,639.77717 C 170.00000,639.16920 171.22434,638.99487 173.00000,639.35000 C 175.18363,639.78673 176.00000,639.57130 176.00000,638.55833 C 176.00000,637.79292 175.43750,636.90417 174.75000,636.58333 C 173.75000,636.11667 173.75000,635.88333 174.75000,635.41667 C 175.43750,635.09583 176.00000,634.20708 176.00000,633.44167 C 176.00000,632.42870 175.18363,632.21327 173.00000,632.65000 C 170.58229,633.13354 170.00000,632.91083 170.00000,631.50256 C 170.00000,630.08602 170.27575,629.98397 171.45620,630.96365 C 173.45378,632.62149 174.99694,631.41932 175.01531,628.19098 C 175.02682,626.16849 175.25852,625.86023 175.94800,626.95010 C 176.49361,627.81256 178.31098,628.35922 180.43268,628.29907 C 183.32897,628.21698 184.00000,628.56216 184.00000,630.13416 C 184.00000,631.76474 183.68221,631.90029 181.98675,630.99291 C 179.14667,629.47295 177.20991,630.93436 178.00155,634.00000 L 178.64714,636.50000 L 179.39096,634.25000 C 180.26879,631.59463 182.96898,631.22769 183.07029,633.75000 C 183.13096,635.26066 183.24519,635.23253 183.90551,633.54435 C 184.66466,631.60349 184.67902,631.60349 185.80481,633.54435 C 186.81042,635.27802 186.94263,635.30136 186.96959,633.75000 C 186.98632,632.78750 186.55000,632.00000 186.00000,632.00000 C 185.45000,632.00000 185.00000,630.17344 185.00000,627.94098 C 185.00000,625.52097 184.60083,624.12867 184.01145,624.49292 C 183.44459,624.84326 183.27695,624.44186 183.61844,623.55194 C 184.09709,622.30460 183.40789,622.00000 180.10699,622.00000 C 177.84814,622.00000 176.00000,621.55000 176.00000,621.00000 C 176.00000,620.45000 177.80000,620.00000 180.00000,620.00000 C 182.20513,620.00000 184.00000,620.48611 184.00000,621.08333 C 184.00000,621.67917 184.56250,621.96998 185.25000,621.72959 C 185.93750,621.48920 186.36639,620.54567 186.20309,619.63287 C 186.03979,618.72007 186.60229,617.70611 187.45309,617.37963 C 188.55733,616.95589 189.00000,615.38581 189.00000,611.89301 C 189.00000,609.20186 188.66250,607.00689 188.25000,607.01531 C 186.25741,607.05600 185.12007,608.88134 184.82450,612.51298 C 184.50093,616.48852 184.48704,616.50059 180.00000,616.70347 L 175.50000,616.90694 L 179.75000,614.91563 C 182.08750,613.82041 184.00000,612.48771 184.00000,611.95406 C 184.00000,611.42042 182.10264,610.22463 179.78364,609.29675 L 175.56728,607.60970 L 178.78364,606.77626 C 181.02258,606.19609 182.00000,605.34951 182.00000,603.99046 C 182.00000,601.94147 178.02137,600.25073 176.05684,601.46487 C 175.47558,601.82411 175.00000,601.64148 175.00000,601.05902 C 175.00000,600.39672 178.18421,600.00000 183.50000,600.00000 C 188.17500,600.00000 192.00000,600.40546 192.00000,600.90102 C 192.00000,601.39659 190.43879,601.75779 188.53065,601.70370 C 186.62251,601.64962 184.72304,601.94362 184.30961,602.35705 C 182.90463,603.76203 186.12690,604.70709 192.70444,604.81918 C 196.31236,604.88066 199.50483,605.17150 199.79881,605.46548 C 200.09280,605.75947 198.45833,606.00000 196.16667,606.00000 C 193.12963,606.00000 192.00000,606.40667 192.00000,607.50000 C 192.00000,608.61399 193.17322,609.00000 196.55902,609.00000 C 199.36503,609.00000 200.87871,608.61277 200.49563,607.99294 C 200.15332,607.43905 200.60262,606.70598 201.49409,606.36389 C 202.42691,606.00594 202.87098,605.10616 202.54022,604.24421 C 202.22412,603.42047 202.47836,602.12854 203.10519,601.37325 C 204.01062,600.28228 203.80861,600.00000 202.12244,600.00000 C 200.83447,600.00000 200.00000,599.36442 200.00000,598.38342 C 200.00000,596.74826 197.78604,596.78191 193.75000,598.47839 C 192.40430,599.04404 192.00000,598.72720 192.00000,597.10699 C 192.00000,595.32451 191.39934,595.00000 188.10000,595.00000 C 184.30952,595.00000 184.20000,594.90171 184.20000,591.50000 C 184.20000,588.18627 184.38095,588.00000 187.60000,588.00000 C 191.17036,588.00000 191.79940,588.80060 189.80000,590.80000 C 188.86667,591.73333 188.95926,592.00000 190.21667,592.00000 C 191.10583,592.00000 192.03958,591.43750 192.29167,590.75000 C 192.65833,589.75000 193.01500,589.75000 194.07500,590.75000 C 195.16618,591.77941 195.10000,592.00000 193.70000,592.00000 C 192.76500,592.00000 192.00000,592.67500 192.00000,593.50000 C 192.00000,595.37498 194.72006,595.37498 198.00000,593.50000 C 199.37500,592.71398 202.03750,592.05492 203.91667,592.03544 C 208.42072,591.98872 207.07867,590.77845 201.73143,590.06476 C 198.88783,589.68523 197.50000,589.00803 197.50000,588.00000 C 197.50000,586.30584 198.85750,586.34608 204.25000,588.20009 C 206.94877,589.12796 208.00000,590.06554 208.00000,591.54469 C 208.00000,593.87397 209.76560,596.00000 211.70000,596.00000 C 213.72822,596.00000 213.22604,594.20652 211.00000,593.50000 C 209.40907,592.99506 209.00000,591.98697 209.00000,588.57128 C 209.00000,584.51979 208.85754,584.30458 206.47682,584.75968 C 204.68008,585.10315 203.30617,584.54339 201.70480,582.81548 C 200.46794,581.48089 198.64985,580.07961 197.66460,579.70154 C 195.53839,578.88563 196.45307,576.83326 198.83859,577.06730 C 202.24654,577.40167 203.00000,576.93683 203.00000,574.50000 C 203.00000,571.75898 201.54717,571.13171 200.64484,573.48314 C 200.32100,574.32707 199.41292,574.71195 198.53785,574.37615 C 196.56640,573.61963 196.54060,572.00000 198.50000,572.00000 C 199.32500,572.00000 200.00000,571.51045 200.00000,570.91210 C 200.00000,570.20097 198.52811,570.04039 195.75000,570.44842 C 191.62794,571.05385 191.57526,571.02746 194.00000,569.57175 L 196.50000,568.07087 L 193.80902,568.03544 C 192.32898,568.01595 190.83992,568.45000 190.50000,569.00000 C 189.05272,571.34174 188.00000,569.65738 188.00000,565.00000 C 188.00000,560.08443 186.81694,558.42870 185.58974,561.62675 C 185.24640,562.52146 185.42881,563.81175 185.99508,564.49407 C 186.72262,565.37071 186.58100,566.10285 185.51233,566.98977 C 184.23950,568.04612 184.00000,567.89197 184.00000,566.01635 C 184.00000,564.79065 182.65000,562.08329 181.00000,560.00000 C 178.94242,557.40210 178.00000,555.09791 178.00000,552.66511 C 178.00000,550.71422 177.55000,548.83992 177.00000,548.50000 C 176.45000,548.16008 176.00000,548.80852 176.00000,549.94098 C 176.00000,551.21221 175.34958,552.00000 174.30000,552.00000 C 172.97778,552.00000 172.86667,551.73333 173.80000,550.80000 C 175.50697,549.09303 175.29376,548.22801 172.98548,547.49539 C 171.87749,547.14373 171.24036,546.42010 171.56964,545.88733 C 171.89891,545.35455 173.03044,545.19227 174.08416,545.52671 C 175.15514,545.86663 176.00000,545.66407 176.00000,545.06739 C 176.00000,543.57551 178.73614,543.72785 179.27976,545.25000 C 179.52530,545.93750 180.02685,546.22345 180.39432,545.88544 C 181.09988,545.23645 178.03073,538.73588 176.75000,538.16667 C 176.33750,537.98333 176.00000,536.74583 176.00000,535.41667 C 176.00000,533.93519 175.41954,533.00000 174.50000,533.00000 C 172.45473,533.00000 172.60294,531.36634 174.72197,530.55319 C 176.19709,529.98714 176.23293,529.75896 174.97197,528.96152 C 173.68217,528.14583 173.68564,528.01014 175.00000,527.86512 C 175.82500,527.77409 174.47500,527.40417 172.00000,527.04308 L 167.50000,526.38655 L 170.46612,525.13586 C 172.83438,524.13726 173.13672,523.69827 171.96612,522.95790 C 170.85725,522.25657 171.17010,522.02689 173.25000,522.01531 C 174.76250,522.00689 176.00000,522.39752 176.00000,522.88337 C 176.00000,523.36922 176.90000,524.00209 178.00000,524.28975 C 179.37408,524.64908 180.00000,525.65376 180.00000,527.50000 C 180.00000,529.34624 180.62592,530.35092 182.00000,530.71025 C 184.41137,531.34084 184.72986,534.83950 182.35763,534.63889 C 179.87109,534.42861 179.47247,537.04929 181.89464,537.68270 C 183.05259,537.98551 184.00000,538.63078 184.00000,539.11663 C 184.00000,539.60248 184.78750,540.03553 185.75000,540.07895 C 187.12894,540.14116 187.18574,540.28125 186.01786,540.73966 C 183.92789,541.56001 181.61591,544.00000 182.92857,544.00000 C 184.30820,544.00000 184.31953,547.28047 182.94464,548.65536 C 182.36199,549.23801 182.18659,550.89526 182.55305,552.35536 C 183.14470,554.71265 183.69398,555.00000 187.60841,555.00000 C 191.33333,555.00000 192.00000,555.30361 192.00000,557.00000 C 192.00000,559.47540 194.65830,559.62806 197.92461,557.34025 C 200.24878,555.71234 200.28481,555.72977 199.80324,558.24896 C 199.24287,561.18033 201.38001,561.02697 202.98911,558.02034 C 204.10217,555.94058 200.95849,552.58324 197.00000,551.62417 C 195.62500,551.29103 195.06530,551.27774 195.75623,551.59464 C 196.44716,551.91154 196.75810,552.58239 196.44721,553.08541 C 195.62628,554.41372 192.23565,554.20696 191.76667,552.80000 C 191.54667,552.14000 189.70917,551.60000 187.68333,551.60000 C 184.89299,551.60000 184.00000,551.19059 184.00000,549.91129 C 184.00000,548.11274 190.10757,546.33042 192.08432,547.55211 C 192.66198,547.90913 193.38181,547.25595 193.68394,546.10062 C 194.37364,543.46319 197.59600,543.34709 198.27283,545.93529 C 198.63882,547.33486 199.36461,547.71741 200.89478,547.31726 C 202.05851,547.01294 203.70723,547.34206 204.55861,548.04864 C 205.43664,548.77734 208.68022,549.33333 212.05328,549.33333 C 216.34221,549.33333 218.00000,549.70503 218.00000,550.66667 C 218.00000,551.40000 218.90000,552.00000 220.00000,552.00000 C 221.11111,552.00000 222.00000,551.33333 222.00000,550.50000 C 222.00000,549.67500 222.45000,549.00000 223.00000,549.00000 C 223.55000,549.00000 224.01368,549.78750 224.03041,550.75000 C 224.05772,552.32196 224.17394,552.30511 225.17276,550.58443 C 226.26836,548.69700 226.30555,548.69700 227.70418,550.58443 C 229.10167,552.47032 229.14594,552.46993 230.56183,550.55887 C 231.35282,549.49125 232.00000,549.13034 232.00000,549.75685 C 232.00000,550.58826 232.81036,550.61347 235.00000,549.85016 C 238.78267,548.53151 238.79966,547.47441 235.05912,546.17046 C 232.94971,545.43511 232.01205,545.46384 231.74264,546.27207 C 231.53368,546.89897 231.07772,546.64492 230.71491,545.69944 C 230.35623,544.76475 230.49865,544.00000 231.03138,544.00000 C 231.56412,544.00000 232.00000,543.10000 232.00000,542.00000 C 232.00000,539.74661 234.03862,539.41512 237.26794,541.14340 C 238.70478,541.91237 239.51762,541.94714 239.75015,541.24956 C 239.94031,540.67907 241.04161,540.45963 242.19749,540.76189 C 243.51308,541.10593 244.75795,540.68392 245.52602,539.63353 C 246.48517,538.32181 247.30215,538.16438 249.26916,538.91224 C 250.65307,539.43840 252.73365,539.62091 253.89268,539.31781 C 255.05171,539.01472 256.00000,539.19048 256.00000,539.70839 C 256.00000,540.92406 263.28687,540.79596 264.17354,539.56470 C 264.57954,539.00092 266.53664,539.18702 269.10069,540.03323 C 272.47646,541.14733 273.44101,541.17696 273.77440,540.17679 C 274.10252,539.19245 274.51089,539.17911 275.63963,540.11588 C 276.58669,540.90188 277.42366,540.97634 278.06807,540.33193 C 278.69720,539.70280 281.46120,539.67150 285.74194,540.24504 C 289.42175,540.73806 294.02269,540.79277 295.96625,540.36661 C 300.18397,539.44179 304.01005,539.76345 305.72539,541.18705 C 306.41242,541.75724 307.76776,541.91627 308.73727,541.54046 C 310.42002,540.88816 310.42011,540.79832 308.73917,539.56042 C 307.22125,538.44256 307.56612,538.32519 311.23917,538.70959 C 313.58263,538.95483 316.93092,539.23892 318.67982,539.34089 C 320.42871,539.44287 322.18731,539.85398 322.58781,540.25447 C 322.98830,540.65497 323.92557,540.47674 324.67062,539.85840 C 325.41567,539.24006 329.50707,538.62029 333.76263,538.48114 C 343.65531,538.15765 350.81921,537.08536 354.05913,535.44317 C 355.59719,534.66359 357.17166,534.48806 358.00525,535.00325 C 358.80414,535.49699 360.18919,535.43393 361.27181,534.85453 C 363.54468,533.63813 367.57074,529.71223 367.31920,528.95759 C 367.21976,528.65927 368.05812,528.34590 369.18223,528.26123 C 371.97510,528.05085 372.50386,527.31205 371.08509,525.60253 C 370.14794,524.47333 370.17148,523.68456 371.19259,522.00058 C 372.31788,520.14478 373.12683,519.92287 377.00000,520.40749 C 379.47500,520.71717 382.17500,520.51350 383.00000,519.95489 C 384.10500,519.20670 383.75303,519.11318 381.66339,519.59977 C 379.10340,520.19588 378.85961,520.02819 379.16339,517.88014 C 379.37352,516.39432 380.26345,515.39067 381.53185,515.20904 C 385.89735,514.58389 389.36761,499.54431 386.82580,492.26586 C 386.10247,490.19464 385.11765,488.21562 384.63730,487.86803 C 384.15695,487.52045 384.73459,486.26541 385.92094,485.07906 C 388.57939,482.42061 392.00000,476.45080 392.00000,474.46958 C 392.00000,473.66131 392.45000,473.00000 393.00000,473.00000 C 393.55000,473.00000 394.00000,472.56998 394.00000,472.04441 C 394.00000,471.51883 395.12500,469.43104 396.50000,467.40486 L 399.00000,463.72091 L 398.98795,466.61045 C 398.98133,468.19970 397.92284,471.34134 396.63575,473.59188 C 394.73987,476.90691 394.52362,477.99560 395.49667,479.32633 C 396.15727,480.22975 396.99076,480.67591 397.34888,480.31779 C 397.70699,479.95967 398.00000,480.66822 398.00000,481.89235 C 398.00000,483.11648 398.39879,483.87157 398.88619,483.57034 C 400.14165,482.79442 401.18549,492.91460 400.21135,496.41795 L 399.40000,499.33589 L 397.61485,494.66156 C 396.63302,492.09067 395.51206,490.18353 395.12384,490.42346 C 394.73562,490.66340 394.58080,489.42877 394.77980,487.67985 C 394.97880,485.93093 394.71386,483.37500 394.19103,482.00000 C 393.28194,479.60911 393.18775,479.69336 392.03317,483.93016 C 391.36916,486.36675 391.11913,489.74175 391.47753,491.43016 C 392.72813,497.32165 393.14358,503.55068 392.19357,502.16615 C 391.45187,501.08523 391.16308,501.13263 390.67055,502.41615 C 390.33627,503.28727 390.49865,504.00000 391.03138,504.00000 C 391.56412,504.00000 392.00000,504.48002 392.00000,505.06672 C 392.00000,505.65342 393.12500,507.60839 394.50000,509.41111 C 396.55338,512.10323 397.00585,513.83314 397.03272,519.09439 C 397.05071,522.61748 397.46882,528.63208 397.96184,532.46018 C 398.45486,536.28827 398.60031,539.83770 398.28506,540.34778 C 397.96981,540.85787 397.65512,547.62579 397.58576,555.38761 C 397.51640,563.14942 397.08595,570.09279 396.62921,570.81731 C 396.05609,571.72644 396.48785,572.31481 398.02263,572.71617 L 400.24648,573.29772 L 397.87324,574.61342 C 396.56796,575.33706 395.95000,575.94527 396.50000,575.96499 C 397.08229,575.98587 397.60496,580.28223 397.75127,586.25043 C 398.08046,599.67804 398.97845,608.00000 400.09819,608.00000 C 401.16591,608.00000 401.32791,600.47685 401.02412,565.00000 C 400.89931,550.42500 401.15421,536.25000 401.59056,533.50000 L 402.38391,528.50000 L 403.12316,532.50000 C 403.52975,534.70000 403.91435,553.31639 403.97783,573.86974 C 404.07996,606.94058 403.90783,611.44437 402.48148,613.02047 C 401.59501,614.00001 401.28214,615.05634 401.78622,615.36788 C 402.29030,615.67942 402.65712,617.18659 402.60137,618.71716 C 402.50033,621.49085 402.47041,621.50238 393.50000,622.22501 C 388.55000,622.62376 379.66120,623.13224 373.74712,623.35495 C 361.89152,623.80142 359.71505,624.72045 360.17304,629.08668 C 360.34376,630.71428 359.69077,632.68421 358.57002,633.92263 C 356.26774,636.46661 357.21390,637.92896 359.61113,635.53173 C 360.62540,634.51745 361.26546,632.44120 361.18920,630.41268 L 361.06090,627.00000 L 366.37744,627.00000 C 371.68025,627.00000 376.00000,629.18502 376.00000,631.86730 C 376.00000,633.23374 376.99218,633.29052 378.97361,632.03747 C 379.94059,631.42596 380.69544,631.50722 381.16923,632.27383 C 382.82541,634.95357 383.24316,631.68166 381.60000,628.90000 C 380.61282,627.22884 380.01344,625.65322 380.26804,625.39862 C 380.52264,625.14403 382.70399,625.38409 385.11547,625.93211 C 395.83635,628.36845 407.52871,629.78400 408.73727,628.79190 C 410.25969,627.54217 413.00000,628.46936 413.00000,630.23422 C 413.00000,632.83882 409.33279,638.10960 402.03685,645.99123 C 396.73805,651.71541 393.98301,653.97324 392.53685,653.77675 C 390.98029,653.56526 390.47312,654.08950 390.38602,656.00000 C 390.22332,659.56875 386.04209,666.23013 384.36799,665.58772 C 382.43320,664.84527 382.65383,669.07056 384.96389,677.00000 C 386.93715,683.77334 387.53419,682.71883 386.05752,675.06841 C 384.80841,668.59697 385.97293,666.81547 388.02368,672.06056 C 388.95851,674.45154 390.23562,676.57854 390.86169,676.78723 C 392.47627,677.32542 392.28068,675.84532 390.09086,670.95421 C 387.78333,665.80018 388.23359,664.25578 392.35509,663.18779 C 394.32986,662.67608 395.60484,661.65419 395.78741,660.43683 C 396.60459,654.98778 397.06318,654.23736 399.92588,653.66482 C 403.81333,652.88733 409.23339,647.03448 418.13656,634.00000 C 426.05122,622.41273 426.76966,618.61582 421.95796,613.80412 L 418.91593,610.76208 L 421.48459,611.40678 C 422.89736,611.76136 426.45657,613.15077 429.39395,614.49436 C 434.08302,616.63918 434.67716,617.23798 434.26348,619.40203 C 434.00434,620.75765 434.78573,625.07662 435.99992,628.99973 C 438.65072,637.56466 437.79623,643.45526 432.80855,651.00000 C 431.89957,652.37500 430.85200,655.52500 430.48063,658.00000 C 429.86731,662.08753 429.21406,662.94092 423.35374,667.31043 C 419.80531,669.95616 416.40186,673.21866 415.79051,674.56043 C 415.17916,675.90219 414.30120,677.00000 413.83948,677.00000 C 413.37777,677.00000 413.00000,678.12500 413.00000,679.50000 C 413.00000,681.98137 413.75553,682.41652 417.39023,682.02854 C 418.75961,681.88237 419.10869,682.27438 418.65708,683.45124 C 418.28500,684.42088 418.63158,685.30513 419.51686,685.64484 C 421.44460,686.38459 421.43304,688.00000 419.50000,688.00000 C 418.67500,688.00000 418.00000,688.73010 418.00000,689.62244 C 418.00000,690.90574 418.29495,691.00011 419.41097,690.07389 C 421.23515,688.55996 422.64322,690.52004 421.08246,692.40064 C 419.82764,693.91261 420.78184,700.25286 422.13807,699.41467 C 422.63007,699.11059 422.77291,698.44158 422.45548,697.92796 C 421.50369,696.38793 423.12750,688.05510 424.33440,688.28605 C 424.94936,688.40372 425.60700,687.48750 425.79581,686.25000 C 426.00331,684.89002 425.61714,683.98742 424.81955,683.96820 C 423.86394,683.94516 423.93698,683.60041 425.08436,682.71820 C 425.95575,682.04819 426.96004,680.32939 427.31610,678.89865 C 427.68002,677.43634 429.74777,675.06079 432.03849,673.47332 C 438.50009,668.99543 439.59578,666.88631 444.23285,650.00000 C 445.36559,645.87500 446.28367,640.59622 446.27302,638.26937 C 446.26237,635.94252 446.64658,634.28158 447.12683,634.57838 C 447.60707,634.87519 448.00000,633.74148 448.00000,632.05902 C 448.00000,629.72430 448.44822,629.00000 449.89301,629.00000 C 452.14774,629.00000 453.28326,631.31674 451.77017,632.82983 C 450.79673,633.80327 450.71078,640.19263 451.28353,669.00300 C 451.34866,672.27929 450.73749,675.81984 449.77311,677.75300 C 448.88221,679.53885 448.56880,681.00000 449.07664,681.00000 C 450.75092,681.00000 450.03794,683.49521 448.00000,684.76793 C 446.90000,685.45489 446.00000,686.88658 446.00000,687.94946 C 446.00000,689.01234 445.62503,690.11371 445.16673,690.39695 C 444.70843,690.68020 444.52669,692.22847 444.76285,693.83755 C 444.99901,695.44663 444.69898,697.06800 444.09612,697.44060 C 443.49325,697.81319 443.00000,699.17898 443.00000,700.47568 C 443.00000,701.77239 442.43750,703.06031 441.75000,703.33772 C 440.77995,703.72914 440.79010,703.85979 441.79531,703.92105 C 442.73000,703.97802 442.91747,705.04403 442.46866,707.75000 L 441.84669,711.50000 L 444.17335,707.00000 C 445.45301,704.52500 447.32629,701.28229 448.33620,699.79398 C 449.34610,698.30566 449.88523,696.62332 449.53426,696.05543 C 449.17132,695.46819 449.48859,695.25026 450.26994,695.55009 C 451.06120,695.85373 452.10546,695.10680 452.73257,693.78864 C 453.33142,692.52989 454.87407,690.28953 456.16069,688.81007 C 457.44731,687.33061 464.12500,674.97005 471.00000,661.34214 C 477.87500,647.71424 484.22466,636.14165 485.11036,635.62527 C 486.23011,634.97243 488.05808,635.31534 491.11036,636.75079 C 493.52466,637.88621 499.10000,639.61594 503.50000,640.59464 C 507.90000,641.57333 511.69113,642.51855 511.92474,642.69512 C 512.34215,643.01061 504.93948,659.29619 498.63661,671.92848 C 496.17073,676.87062 494.74368,678.57707 492.46456,679.30897 C 490.83405,679.83257 488.71537,680.94440 487.75638,681.77970 C 485.80858,683.47627 478.57844,696.46263 477.53819,700.13302 C 477.16923,701.43486 475.02869,707.56250 472.78144,713.75000 C 469.15730,723.72858 468.43020,725.00000 466.34777,725.00000 C 464.96003,725.00000 464.00000,725.59484 464.00000,726.45469 C 464.00000,728.03068 469.01971,729.36371 475.16855,729.42060 C 477.18626,729.43927 478.67401,729.71844 478.47467,730.04098 C 478.27533,730.36352 481.99949,731.37680 486.75058,732.29271 C 494.81103,733.84660 495.51207,733.84656 497.22973,732.29210 C 498.24217,731.37585 498.84932,730.04971 498.57894,729.34512 C 498.30856,728.64053 498.44149,727.84518 498.87433,727.57767 C 499.92638,726.92746 501.70011,718.42451 502.95826,708.00000 C 505.72145,685.10536 507.21264,680.04464 512.76229,674.72774 C 515.23397,672.35972 524.50234,668.21137 532.50000,665.89351 C 534.91690,665.19305 536.17845,663.64374 538.99060,657.92235 C 540.91043,654.01641 542.71043,650.68702 542.99060,650.52371 C 543.27077,650.36041 547.55000,651.25429 552.50000,652.51011 C 557.45000,653.76594 563.30000,655.12413 565.50000,655.52832 L 569.50000,656.26320 L 566.50000,657.58650 C 564.85000,658.31431 562.33936,658.93009 560.92079,658.95490 C 559.50223,658.97970 555.91288,660.69677 552.94445,662.77060 C 547.03760,666.89731 545.23280,670.35973 542.42356,682.95440 C 541.62056,686.55448 540.73078,690.40000 540.44627,691.50000 C 539.36316,695.68764 538.09922,703.76113 537.47751,710.46320 C 536.91397,716.53812 535.19441,727.02688 533.45486,735.00000 C 532.95774,737.27850 533.42287,737.69210 538.70471,739.66820 C 541.89212,740.86070 547.87500,742.79441 552.00000,743.96533 C 556.12500,745.13625 560.51182,746.59874 561.74849,747.21531 C 562.98516,747.83188 564.22955,748.10379 564.51379,747.81954 C 566.25978,746.07356 569.34264,727.51069 570.37956,712.50000 C 570.60752,709.20000 571.53405,703.12500 572.43853,699.00000 C 576.83254,678.96048 578.18465,673.33154 578.81513,672.45364 C 579.98701,670.82187 585.33837,667.45176 589.00000,666.03954 C 590.92500,665.29711 593.97392,663.81572 595.77538,662.74758 C 597.57685,661.67944 599.61579,661.02232 600.30638,661.28733 C 600.99696,661.55233 602.35620,664.28869 603.32691,667.36813 C 604.29762,670.44757 606.64617,675.00341 608.54592,677.49221 C 610.44566,679.98101 612.00000,682.77949 612.00000,683.71105 C 612.00000,684.64260 610.53750,686.91777 608.75000,688.76698 C 605.79240,691.82668 605.65934,692.21886 607.27103,693.12605 C 608.24510,693.67433 608.76886,694.56498 608.43494,695.10527 C 608.10103,695.64555 608.42774,696.81047 609.16098,697.69397 C 609.97511,698.67493 610.49528,701.87835 610.49707,705.92207 C 610.49975,711.97942 610.18602,712.97184 606.81618,717.56572 C 604.79008,720.32777 600.58361,724.36792 597.46846,726.54382 C 582.93310,736.69663 580.95993,739.64876 578.44870,755.00000 C 575.19519,774.88881 573.79310,780.11569 570.57945,784.33598 C 566.66593,789.47533 564.37429,790.61348 555.01630,792.06542 C 546.32745,793.41354 540.07539,792.77151 530.50000,789.54781 C 517.19772,785.06940 516.69167,785.11181 503.87148,791.77935 C 497.61717,795.03210 490.92500,798.00803 489.00000,798.39254 C 467.66424,802.65417 452.24683,803.45719 443.50000,800.76241 C 440.75000,799.91517 432.51530,796.47203 425.20067,793.11099 C 417.88604,789.74995 411.56552,787.00000 411.15507,787.00000 C 409.28700,787.00000 391.86647,777.33288 386.19709,773.15014 C 368.67562,760.22322 369.24210,760.34319 349.34125,765.34472 C 327.75092,770.77085 300.19948,772.87230 265.23611,771.75971 C 245.33436,771.12640 241.36002,771.24541 237.73611,772.58315 C 235.40625,773.44321 232.97778,774.18885 232.33951,774.24012 C 231.22188,774.32989 231.27075,776.12699 232.49581,779.98679 C 233.47571,783.07420 230.97110,790.69515 228.15061,793.20822 C 226.69277,794.50716 225.27500,795.59696 225.00000,795.63000 C 224.72500,795.66305 223.01885,796.45601 221.20855,797.39215 C 217.04435,799.54555 200.89353,803.53320 190.67764,804.93026 C 182.03821,806.11174 156.69520,806.13684 145.00000,804.97551 z M 186.64405,802.98284 C 197.86306,801.82501 214.44113,797.04290 216.65934,794.32463 C 217.47828,793.32109 217.83564,793.10740 217.45348,793.84977 C 216.88122,794.96143 217.17684,794.98164 219.12932,793.96431 C 222.40819,792.25589 222.90364,791.62767 220.35537,792.40972 C 219.01042,792.82247 217.63877,792.49592 216.67680,791.53394 C 215.83313,790.69027 214.66071,790.00000 214.07143,790.00000 C 213.48214,790.00000 213.00000,789.55638 213.00000,789.01419 C 213.00000,788.47199 211.28721,786.89490 209.19379,785.50955 L 205.38758,782.99072 L 195.44379,784.48946 C 181.63244,786.57114 146.86039,786.48326 127.50000,784.31776 C 109.35576,782.28828 106.17756,782.30432 94.000000,784.48675 C 88.775000,785.42317 82.283051,786.20997 79.573446,786.23521 L 74.646892,786.28110 L 78.573446,787.73259 C 80.733051,788.53091 83.400000,789.57700 84.500000,790.05725 C 87.562421,791.39426 104.33416,795.62921 115.50000,797.88491 C 142.27000,803.29292 166.68642,805.04252 186.64405,802.98284 z M 229.56187,782.98661 C 230.01904,780.35854 229.90519,779.86936 229.09950,781.00000 C 228.51162,781.82500 228.02096,782.05000 228.00915,781.50000 C 227.99734,780.95000 227.33492,781.75142 226.53709,783.28093 C 224.76116,786.68559 225.52575,789.90282 227.61442,787.81415 C 228.35194,787.07663 229.22829,784.90424 229.56187,782.98661 z M 226.00000,786.55902 C 226.00000,786.31648 226.45000,785.83992 227.00000,785.50000 C 227.55000,785.16008 228.00000,785.35852 228.00000,785.94098 C 228.00000,786.52344 227.55000,787.00000 227.00000,787.00000 C 226.45000,787.00000 226.00000,786.80156 226.00000,786.55902 z M 74.000000,785.60699 C 74.000000,785.39083 73.301628,784.94599 72.448062,784.61844 C 71.558137,784.27695 71.156740,784.44459 71.507079,785.01145 C 72.094337,785.96166 74.000000,786.41690 74.000000,785.60699 z M 197.50000,782.65055 C 202.02604,780.94239 202.01923,780.93078 196.34441,780.68210 C 194.05884,780.58195 192.39790,780.83750 192.65343,781.25000 C 192.90896,781.66250 190.95398,781.96837 188.30902,781.92971 C 185.00932,781.88149 184.11166,781.62010 185.44887,781.09687 C 187.15867,780.42785 186.99606,780.19428 184.12333,779.19284 C 181.66008,778.33414 180.98848,777.61149 181.41228,776.27569 C 181.94313,774.60248 180.37478,774.50512 154.23782,774.58866 C 127.83843,774.67304 126.28286,774.78291 122.00000,776.86565 C 119.52500,778.06924 118.31087,778.82199 119.30194,778.53845 C 120.34129,778.24109 120.84532,778.44126 120.49292,779.01145 C 120.15690,779.55515 118.44602,780.01368 116.69098,780.03041 C 114.35304,780.05269 113.90504,780.29816 115.01513,780.94866 C 115.84845,781.43697 122.82345,782.32965 130.51513,782.93238 C 138.20681,783.53512 146.07500,784.20662 148.00000,784.42462 C 149.92500,784.64261 160.95000,784.67229 172.50000,784.49057 C 188.13158,784.24464 194.52256,783.77426 197.50000,782.65055 z M 103.25000,781.33772 C 102.56250,781.06031 101.43750,781.06031 100.75000,781.33772 C 100.06250,781.61513 100.62500,781.84211 102.00000,781.84211 C 103.37500,781.84211 103.93750,781.61513 103.25000,781.33772 z M 97.750000,780.31067 C 96.787500,780.05915 95.212500,780.05915 94.250000,780.31067 C 93.287500,780.56220 94.075000,780.76800 96.000000,780.76800 C 97.925000,780.76800 98.712500,780.56220 97.750000,780.31067 z M 111.18750,780.31689 C 110.46563,780.02802 109.60313,780.06354 109.27083,780.39583 C 108.93854,780.72812 109.52917,780.96447 110.58333,780.92105 C 111.74828,780.87307 111.98523,780.63611 111.18750,780.31689 z M 105.18750,779.31689 C 104.46563,779.02802 103.60313,779.06354 103.27083,779.39583 C 102.93854,779.72812 103.52917,779.96447 104.58333,779.92105 C 105.74828,779.87307 105.98523,779.63611 105.18750,779.31689 z M 122.18750,773.31689 C 121.46563,773.02802 120.60313,773.06354 120.27083,773.39583 C 119.93854,773.72812 120.52917,773.96447 121.58333,773.92105 C 122.74828,773.87307 122.98523,773.63611 122.18750,773.31689 z M 188.18750,773.31689 C 187.46562,773.02802 186.60313,773.06354 186.27083,773.39583 C 185.93854,773.72812 186.52917,773.96447 187.58333,773.92105 C 188.74828,773.87307 188.98523,773.63611 188.18750,773.31689 z M 194.50000,771.09990 C 197.36890,770.08786 197.32520,770.06267 193.50000,770.52359 C 184.20131,771.64403 173.67164,771.50175 173.25219,770.25000 C 173.02182,769.56250 172.19583,769.00000 171.41667,769.00000 C 170.63750,769.00000 170.00000,768.51307 170.00000,767.91794 C 170.00000,766.60248 158.85026,767.24289 151.50000,768.98052 C 148.75000,769.63063 140.42500,770.46251 133.00000,770.82914 L 119.50000,771.49574 L 130.00000,772.11729 C 145.65391,773.04392 191.01754,772.32838 194.50000,771.09990 z M 197.18750,772.31689 C 196.46562,772.02802 195.60313,772.06354 195.27083,772.39583 C 194.93854,772.72812 195.52917,772.96447 196.58333,772.92105 C 197.74828,772.87307 197.98523,772.63611 197.18750,772.31689 z M 202.18750,771.31689 C 201.46562,771.02802 200.60313,771.06354 200.27083,771.39583 C 199.93854,771.72812 200.52917,771.96447 201.58333,771.92105 C 202.74828,771.87307 202.98523,771.63611 202.18750,771.31689 z M 34.977083,768.98584 C 34.108748,768.44918 34.090468,768.06212 34.909549,767.55590 C 35.527240,767.17415 35.769189,766.43556 35.447214,765.91459 C 34.485065,764.35780 33.000000,765.94350 33.000000,768.52763 C 33.000000,770.31535 33.408768,770.78037 34.583846,770.32945 C 35.724829,769.89162 35.834783,769.51592 34.977083,768.98584 z M 114.75000,770.31067 C 113.78750,770.05915 112.21250,770.05915 111.25000,770.31067 C 110.28750,770.56220 111.07500,770.76800 113.00000,770.76800 C 114.92500,770.76800 115.71250,770.56220 114.75000,770.31067 z M 207.18750,770.31689 C 206.46562,770.02802 205.60313,770.06354 205.27083,770.39583 C 204.93854,770.72812 205.52917,770.96447 206.58333,770.92105 C 207.74828,770.87307 207.98523,770.63611 207.18750,770.31689 z M 492.42202,767.43512 C 494.89995,764.95719 494.29021,760.98982 490.45360,754.62716 C 488.50591,751.39710 487.18702,748.47964 487.52274,748.14392 C 487.85846,747.80820 489.71551,749.43848 491.64951,751.76676 C 493.74469,754.28908 496.01629,756.00000 497.27003,756.00000 C 499.22928,756.00000 499.17191,755.78711 496.43709,752.90862 C 492.71008,748.98584 489.18055,746.47415 486.00784,745.48695 C 483.70051,744.76902 483.62576,744.84415 485.00000,746.50000 C 486.37488,748.15663 486.30058,748.22962 483.99216,747.49004 C 480.86609,746.48848 470.79224,746.82568 469.63713,747.97053 C 468.47239,749.12492 469.74486,751.00000 471.69300,751.00000 C 475.61744,751.00000 481.27842,753.51697 482.27541,755.70512 C 483.02030,757.33997 483.88205,757.85482 485.18263,757.44203 C 486.84340,756.91493 486.98688,757.34512 486.59529,761.67767 C 485.96839,768.61378 486.72926,771.21526 489.02538,769.98642 C 490.02565,769.45109 491.55414,768.30301 492.42202,767.43512 z M 487.39869,767.75000 C 487.00305,767.06250 487.05248,766.83848 487.50852,767.25218 C 487.96457,767.66588 489.16172,767.25864 490.16885,766.34719 C 492.17077,764.53548 492.74432,765.85568 490.80000,767.80000 C 489.26711,769.33289 488.30143,769.31869 487.39869,767.75000 z M 98.187500,768.31689 C 97.465625,768.02802 96.603125,768.06354 96.270833,768.39583 C 95.938542,768.72812 96.529167,768.96447 97.583333,768.92105 C 98.748276,768.87307 98.985233,768.63611 98.187500,768.31689 z M 92.187500,767.31689 C 91.465625,767.02802 90.603125,767.06354 90.270833,767.39583 C 89.938542,767.72812 90.529167,767.96447 91.583333,767.92105 C 92.748276,767.87307 92.985233,767.63611 92.187500,767.31689 z M 87.187500,766.31689 C 86.465625,766.02802 85.603125,766.06354 85.270833,766.39583 C 84.938542,766.72812 85.529167,766.96447 86.583333,766.92105 C 87.748276,766.87307 87.985233,766.63611 87.187500,766.31689 z M 37.604167,763.27083 C 37.271875,762.93854 37.035526,763.52917 37.078947,764.58333 C 37.126931,765.74828 37.363888,765.98523 37.683114,765.18750 C 37.971985,764.46563 37.936458,763.60312 37.604167,763.27083 z M 469.33889,764.72445 C 470.93816,765.03017 472.55144,764.19324 474.80400,761.88927 C 476.56180,760.09135 478.00000,758.29589 478.00000,757.89937 C 478.00000,756.01580 468.81451,753.15343 460.50000,752.44606 C 445.75995,751.19201 443.21828,751.33330 441.06483,753.52644 C 438.54912,756.08852 438.11625,758.14473 440.00000,758.58455 C 440.82500,758.77717 444.64026,759.84945 448.47836,760.96738 C 452.31645,762.08532 457.61808,763.00000 460.25974,763.00000 C 463.85713,763.00000 465.22647,763.42659 465.71491,764.69944 C 466.07358,765.63413 466.52516,765.92453 466.71841,765.34478 C 466.91166,764.76503 468.09087,764.48588 469.33889,764.72445 z M 541.50000,765.00000 C 540.40000,764.52731 538.82500,764.11583 538.00000,764.08560 C 536.66667,764.03673 536.66667,764.13833 538.00000,765.00000 C 538.82500,765.53316 540.40000,765.94464 541.50000,765.91440 C 543.50000,765.85943 543.50000,765.85943 541.50000,765.00000 z M 35.369714,761.75000 C 36.193696,758.67532 36.147556,758.00000 35.113499,758.00000 C 34.625924,758.00000 34.028861,759.35000 33.786692,761.00000 C 33.274572,764.48930 34.482272,765.06148 35.369714,761.75000 z M 121.25000,761.33772 C 120.56250,761.06031 119.43750,761.06031 118.75000,761.33772 C 118.06250,761.61513 118.62500,761.84211 120.00000,761.84211 C 121.37500,761.84211 121.93750,761.61513 121.25000,761.33772 z M 531.00000,761.00000 C 531.00000,760.45000 530.52344,760.00000 529.94098,760.00000 C 529.35852,760.00000 529.16008,760.45000 529.50000,761.00000 C 529.83992,761.55000 530.31648,762.00000 530.55902,762.00000 C 530.80156,762.00000 531.00000,761.55000 531.00000,761.00000 z M 111.18750,760.31689 C 110.46563,760.02802 109.60313,760.06354 109.27083,760.39583 C 108.93854,760.72812 109.52917,760.96447 110.58333,760.92105 C 111.74828,760.87307 111.98523,760.63611 111.18750,760.31689 z M 163.75000,760.25845 C 160.03750,760.06604 153.96250,760.06604 150.25000,760.25845 C 146.53750,760.45086 149.57500,760.60828 157.00000,760.60828 C 164.42500,760.60828 167.46250,760.45086 163.75000,760.25845 z M 180.26375,759.29607 C 179.03381,759.05871 176.78381,759.05256 175.26375,759.28242 C 173.74369,759.51227 174.75000,759.70648 177.50000,759.71399 C 180.25000,759.72149 181.49369,759.53343 180.26375,759.29607 z M 527.49292,759.01145 C 527.84326,758.44459 527.44186,758.27695 526.55194,758.61844 C 524.81952,759.28323 524.50255,760.00000 525.94098,760.00000 C 526.45852,760.00000 527.15690,759.55515 527.49292,759.01145 z M 193.12636,753.00953 C 195.01042,752.20189 194.58553,752.12051 191.06637,752.61494 C 188.62787,752.95754 181.42787,753.60463 175.06637,754.05292 L 163.50000,754.86799 L 177.12636,754.44751 C 184.62086,754.21624 191.82086,753.56915 193.12636,753.00953 z M 34.000000,751.44098 C 34.000000,751.19844 33.550000,751.00000 33.000000,751.00000 C 32.450000,751.00000 32.000000,751.47656 32.000000,752.05902 C 32.000000,752.64148 32.450000,752.83992 33.000000,752.50000 C 33.550000,752.16008 34.000000,751.68352 34.000000,751.44098 z M 37.371885,750.13435 C 36.892348,749.78546 36.017851,748.62678 35.428557,747.55952 C 33.844690,744.69099 32.519383,744.66566 32.355787,747.50078 C 32.249019,749.35107 32.711559,750.00000 34.137172,750.00000 C 35.196250,750.00000 36.356231,750.76475 36.714905,751.69944 C 37.184318,752.92271 37.489867,753.03040 37.805405,752.08378 C 38.046506,751.36048 37.851421,750.48324 37.371885,750.13435 z M 408.19356,748.91933 C 408.39168,748.32496 410.11668,747.50804 412.02689,747.10395 L 415.50000,746.36924 L 412.15836,744.61155 C 410.32045,743.64482 405.01970,741.60152 400.37891,740.07088 C 391.11489,737.01540 387.29366,734.26285 389.77470,732.43233 C 391.02567,731.50935 390.99955,731.14241 389.58196,729.72482 C 387.96003,728.10288 385.14739,728.38920 383.86053,730.30723 C 383.07904,731.47203 386.16258,736.87353 389.24086,739.73207 C 391.39680,741.73410 405.77118,749.95649 407.16667,749.98593 C 407.53333,749.99367 407.99543,749.51370 408.19356,748.91933 z M 518.00000,749.60699 C 518.00000,749.39083 517.30163,748.94599 516.44806,748.61844 C 515.55814,748.27695 515.15674,748.44459 515.50708,749.01145 C 516.09434,749.96166 518.00000,750.41690 518.00000,749.60699 z M 494.00000,745.12244 C 494.00000,744.63979 493.43750,743.81015 492.75000,743.27881 C 491.09502,741.99973 480.65091,739.22214 475.00000,738.55823 C 472.52500,738.26745 469.15000,737.66195 467.50000,737.21267 C 463.07527,736.00785 461.56923,736.28272 461.16756,738.36843 C 460.93571,739.57236 461.21445,739.98549 461.95134,739.53008 C 462.58032,739.14135 465.21107,739.28119 467.79747,739.84085 C 470.38386,740.40050 476.45693,741.63967 481.29318,742.59455 C 486.12942,743.54944 490.31848,744.70630 490.60219,745.16535 C 491.28711,746.27358 494.00000,746.23932 494.00000,745.12244 z M 542.75000,745.31067 C 541.78750,745.05915 540.21250,745.05915 539.25000,745.31067 C 538.28750,745.56220 539.07500,745.76800 541.00000,745.76800 C 542.92500,745.76800 543.71250,745.56220 542.75000,745.31067 z M 38.000000,743.94098 C 38.000000,743.35852 37.550000,743.16008 37.000000,743.50000 C 36.450000,743.83992 36.000000,744.31648 36.000000,744.55902 C 36.000000,744.80156 36.450000,745.00000 37.000000,745.00000 C 37.550000,745.00000 38.000000,744.52344 38.000000,743.94098 z M 298.73430,744.40097 C 297.73774,743.40441 260.94523,743.10237 261.55920,744.09579 C 261.86656,744.59311 270.49148,745.00000 280.72568,745.00000 C 290.95989,745.00000 299.06377,744.73044 298.73430,744.40097 z M 249.00000,743.00000 C 248.17500,742.46684 247.05000,742.03063 246.50000,742.03063 C 245.95000,742.03063 246.17500,742.46684 247.00000,743.00000 C 247.82500,743.53316 248.95000,743.96937 249.50000,743.96937 C 250.05000,743.96937 249.82500,743.53316 249.00000,743.00000 z M 188.00000,741.44098 C 188.00000,741.19844 187.55000,741.00000 187.00000,741.00000 C 186.45000,741.00000 186.00000,741.47656 186.00000,742.05902 C 186.00000,742.64148 186.45000,742.83992 187.00000,742.50000 C 187.55000,742.16008 188.00000,741.68352 188.00000,741.44098 z M 244.18750,742.31689 C 243.46562,742.02802 242.60313,742.06354 242.27083,742.39583 C 241.93854,742.72812 242.52917,742.96447 243.58333,742.92105 C 244.74828,742.87307 244.98523,742.63611 244.18750,742.31689 z M 36.604167,739.27083 C 36.271875,738.93854 36.035526,739.52917 36.078947,740.58333 C 36.126931,741.74828 36.363888,741.98523 36.683114,741.18750 C 36.971985,740.46563 36.936458,739.60312 36.604167,739.27083 z M 435.89277,739.47739 C 434.57675,738.80192 432.37500,737.94647 431.00000,737.57638 C 429.17653,737.08557 429.56397,737.57864 432.43174,739.39843 C 434.59420,740.77066 436.79595,741.62611 437.32451,741.29944 C 437.85307,740.97277 437.20879,740.15285 435.89277,739.47739 z M 42.607127,737.52894 C 42.245190,735.06291 41.000000,734.52395 41.000000,736.83333 C 41.000000,738.02500 41.410182,739.00000 41.911516,739.00000 C 42.412850,739.00000 42.725875,738.33802 42.607127,737.52894 z M 185.89552,736.51848 C 190.51306,735.70657 194.56306,734.75637 194.89552,734.40691 C 195.22798,734.05744 193.58750,734.08748 191.25000,734.47366 L 187.00000,735.17580 L 186.83996,731.83790 L 186.67993,728.50000 L 186.27684,731.74679 C 185.81289,735.48389 186.01146,735.41373 171.50000,736.96769 C 155.55935,738.67470 154.81315,738.89297 166.50000,738.43022 C 172.55000,738.19066 181.27798,737.33038 185.89552,736.51848 z M 380.78169,734.60993 C 378.97676,732.19539 377.33325,730.37464 377.12945,730.56382 C 376.71672,730.94692 382.90844,739.00000 383.61572,739.00000 C 383.86194,739.00000 382.58662,737.02447 380.78169,734.60993 z M 45.500000,737.00000 C 45.160081,736.45000 44.683524,736.00000 44.440983,736.00000 C 44.198442,736.00000 44.000000,736.45000 44.000000,737.00000 C 44.000000,737.55000 44.476558,738.00000 45.059017,738.00000 C 45.641476,738.00000 45.839919,737.55000 45.500000,737.00000 z M 471.18750,735.31689 C 470.46562,735.02802 469.60312,735.06354 469.27083,735.39583 C 468.93854,735.72812 469.52917,735.96447 470.58333,735.92105 C 471.74828,735.87307 471.98523,735.63611 471.18750,735.31689 z M 37.000000,734.00000 C 37.000000,733.45000 36.550000,733.00000 36.000000,733.00000 C 35.450000,733.00000 35.000000,733.45000 35.000000,734.00000 C 35.000000,734.55000 35.450000,735.00000 36.000000,735.00000 C 36.550000,735.00000 37.000000,734.55000 37.000000,734.00000 z M 64.250000,733.29427 C 63.012500,733.05591 60.987500,733.05591 59.750000,733.29427 C 58.512500,733.53262 59.525000,733.72764 62.000000,733.72764 C 64.475000,733.72764 65.487500,733.53262 64.250000,733.29427 z M 458.50000,733.46624 C 457.95000,733.25952 454.35000,732.64069 450.50000,732.09107 C 446.65000,731.54145 442.37500,730.78490 441.00000,730.40984 C 439.04659,729.87701 438.75070,729.99742 439.64664,730.96059 C 440.27729,731.63857 443.20229,732.54365 446.14664,732.97188 C 451.71040,733.78109 460.24651,734.12269 458.50000,733.46624 z M 427.96115,729.14301 C 427.93978,728.78936 425.57728,727.37500 422.71115,726.00000 C 417.05854,723.28822 409.00000,716.51727 409.00000,714.47963 C 409.00000,713.78352 408.32111,712.95346 407.49135,712.63505 C 406.66159,712.31665 405.46436,710.91850 404.83083,709.52806 C 403.52570,706.66360 402.00000,706.18426 402.00000,708.63868 C 402.00000,710.58175 412.72102,723.96016 414.95281,724.80207 C 415.80376,725.12308 418.45351,726.61908 420.84114,728.12650 C 424.66460,730.54044 428.07500,731.02734 427.96115,729.14301 z M 374.61830,726.33841 C 373.77227,724.77728 373.06206,723.81633 373.04004,724.20295 C 372.97233,725.39162 375.29880,730.03453 375.74070,729.59263 C 375.96940,729.36393 375.46432,727.89953 374.61830,726.33841 z M 436.97339,716.27266 C 441.05733,714.50336 442.67517,712.53531 440.93155,711.45770 C 440.39194,711.12420 440.07410,711.42056 440.22522,712.11628 C 440.37635,712.81200 439.60000,713.51251 438.50000,713.67298 C 437.40000,713.83344 437.02687,713.72205 437.67081,713.42543 C 438.51693,713.03569 438.37827,712.06721 437.17081,709.93319 C 435.30661,706.63846 432.35881,706.34983 430.19330,709.25000 C 429.47461,710.21250 428.04961,711.00000 427.02663,711.00000 C 426.00365,711.00000 424.95965,711.56250 424.70663,712.25000 C 424.45360,712.93750 423.91732,712.26250 423.51489,710.75000 C 423.11245,709.23750 422.33382,708.00000 421.78460,708.00000 C 421.23220,708.00000 421.10040,708.78192 421.48963,709.75000 C 422.18346,711.47567 422.77404,713.75429 422.92349,715.28222 C 423.03366,716.40854 427.04354,717.86268 430.24314,717.93661 C 431.75187,717.97148 434.78048,717.22270 436.97339,716.27266 z M 427.50000,713.00000 C 427.16008,712.45000 427.35852,712.00000 427.94098,712.00000 C 428.52344,712.00000 429.00000,712.45000 429.00000,713.00000 C 429.00000,713.55000 428.80156,714.00000 428.55902,714.00000 C 428.31648,714.00000 427.83992,713.55000 427.50000,713.00000 z M 410.33698,709.03773 C 408.11706,706.39325 405.00000,704.53846 405.00000,705.86199 C 405.00000,706.37478 406.22044,708.18518 407.71208,709.88509 C 410.76173,713.36053 413.28264,712.54675 410.33698,709.03773 z M 155.25000,708.33772 C 154.56250,708.06031 153.43750,708.06031 152.75000,708.33772 C 152.06250,708.61513 152.62500,708.84211 154.00000,708.84211 C 155.37500,708.84211 155.93750,708.61513 155.25000,708.33772 z M 424.00000,706.00000 C 424.00000,705.45000 423.52344,705.00000 422.94098,705.00000 C 422.35852,705.00000 422.16008,705.45000 422.50000,706.00000 C 422.83992,706.55000 423.31648,707.00000 423.55902,707.00000 C 423.80156,707.00000 424.00000,706.55000 424.00000,706.00000 z M 438.90606,703.38681 C 437.44318,701.62415 436.73314,702.14099 437.58125,704.35113 C 437.92682,705.25169 438.63427,705.72604 439.15334,705.40523 C 439.71604,705.05746 439.61619,704.24246 438.90606,703.38681 z M 370.35702,703.51200 C 370.67107,702.69359 370.60672,702.07188 370.21401,702.13042 C 368.23171,702.42588 367.00000,701.86493 367.00000,700.66667 C 367.00000,699.85185 365.83333,699.33333 364.00000,699.33333 C 360.42503,699.33333 360.05474,699.03225 359.43647,695.62269 C 359.09406,693.73442 359.38640,693.00000 360.48044,693.00000 C 361.31620,693.00000 362.00000,692.55000 362.00000,692.00000 C 362.00000,691.45000 361.54619,691.00000 360.99153,691.00000 C 360.38415,691.00000 360.46604,690.22661 361.19742,689.05548 C 362.26281,687.34953 361.84614,686.53722 357.80131,682.43456 C 354.20217,678.78397 353.04472,676.78388 352.52478,673.31665 C 352.10628,670.52589 352.27877,668.36903 352.98890,667.51338 C 354.01293,666.27949 353.76224,661.94208 352.37160,656.83288 C 352.03456,655.59462 352.41074,655.29465 353.83392,655.66682 C 355.34304,656.06146 355.75000,655.63922 355.75000,653.67876 C 355.75000,651.59259 355.19970,651.12538 352.35082,650.79279 C 344.59018,649.88678 344.45361,656.83113 351.73216,682.25000 C 352.00777,683.21250 352.63078,684.00000 353.11663,684.00000 C 353.60248,684.00000 354.00000,684.90000 354.00000,686.00000 C 354.00000,687.10000 354.52500,688.00000 355.16667,688.00000 C 355.80833,688.00000 356.05476,688.27857 355.71429,688.61905 C 355.37381,688.95952 355.70992,689.85278 356.46121,690.60406 C 357.21249,691.35535 357.68930,693.21428 357.52079,694.73502 C 357.18161,697.79582 359.25344,702.56700 361.22896,703.27453 C 361.92803,703.52490 363.25490,703.34217 364.17756,702.86846 C 366.01650,701.92432 369.00000,702.69056 369.00000,704.10699 C 369.00000,705.48275 369.72230,705.16605 370.35702,703.51200 z M 404.18333,700.78333 C 403.46577,700.06577 403.00000,700.00673 403.00000,700.63333 C 403.00000,701.96811 404.18261,703.15072 404.85000,702.48333 C 405.13417,702.19917 404.83417,701.43417 404.18333,700.78333 z M 412.42240,696.44788 C 410.78726,692.58113 410.12697,691.64068 410.53527,693.76007 C 411.20234,697.22262 413.96126,703.37208 414.57313,702.76021 C 414.77358,702.55976 413.80575,699.71921 412.42240,696.44788 z M 370.00000,699.44098 C 370.00000,698.58352 369.54266,698.16462 368.98369,698.51008 C 368.42472,698.85554 368.22627,699.55710 368.54271,700.06910 C 369.39994,701.45614 370.00000,701.19751 370.00000,699.44098 z M 354.00000,698.60699 C 354.00000,698.39083 353.30163,697.94599 352.44806,697.61844 C 351.55814,697.27695 351.15674,697.44459 351.50708,698.01145 C 352.09434,698.96166 354.00000,699.41690 354.00000,698.60699 z M 402.60417,696.27083 C 402.27188,695.93854 402.03553,696.52917 402.07895,697.58333 C 402.12693,698.74828 402.36389,698.98523 402.68311,698.18750 C 402.97198,697.46563 402.93646,696.60312 402.60417,696.27083 z M 419.00000,694.00000 C 419.00000,693.45000 418.52344,693.00000 417.94098,693.00000 C 417.35852,693.00000 417.16008,693.45000 417.50000,694.00000 C 417.83992,694.55000 418.31648,695.00000 418.55902,695.00000 C 418.80156,695.00000 419.00000,694.55000 419.00000,694.00000 z M 401.57607,684.25000 C 401.19339,681.63750 400.70623,678.28332 400.49350,676.79626 C 400.06027,673.76779 397.24194,669.00000 395.88499,669.00000 C 394.63846,669.00000 394.78048,671.74630 396.06817,672.54213 C 396.65567,672.90523 396.89479,673.83178 396.59956,674.60115 C 396.30432,675.37052 396.45635,676.00000 396.93738,676.00000 C 397.93593,676.00000 401.00000,684.43066 401.00000,687.17814 C 401.00000,688.18016 401.28617,689.00000 401.63592,689.00000 C 401.98568,689.00000 401.95875,686.86250 401.57607,684.25000 z M 435.98469,685.75000 C 435.97230,683.93056 435.78387,683.78704 435.00000,685.00000 C 433.74708,686.93876 433.74708,688.00000 435.00000,688.00000 C 435.55000,688.00000 435.99311,686.98750 435.98469,685.75000 z M 349.93333,683.23333 C 350.17167,683.08667 349.88227,682.48227 349.29024,681.89024 C 347.94742,680.54742 343.00000,683.52151 343.00000,685.67155 C 343.00000,687.01086 344.85478,686.35859 349.93333,683.23333 z M 410.00000,685.00000 C 410.00000,684.45000 409.55000,684.00000 409.00000,684.00000 C 408.45000,684.00000 408.00000,684.45000 408.00000,685.00000 C 408.00000,685.55000 408.45000,686.00000 409.00000,686.00000 C 409.55000,686.00000 410.00000,685.55000 410.00000,685.00000 z M 433.45729,680.06910 C 434.42630,678.50122 432.58277,678.12038 431.21057,679.60496 C 430.15149,680.75079 430.18561,681.00000 431.40156,681.00000 C 432.21578,681.00000 433.14086,680.58109 433.45729,680.06910 z M 172.48992,673.98369 C 172.14446,673.42472 171.44290,673.22627 170.93090,673.54271 C 169.54386,674.39994 169.80249,675.00000 171.55902,675.00000 C 172.41648,675.00000 172.83538,674.54266 172.48992,673.98369 z M 174.00000,667.44098 C 174.00000,667.19844 173.55000,667.00000 173.00000,667.00000 C 172.45000,667.00000 172.00000,667.47656 172.00000,668.05902 C 172.00000,668.64148 172.45000,668.83992 173.00000,668.50000 C 173.55000,668.16008 174.00000,667.68352 174.00000,667.44098 z M 355.60417,657.27083 C 355.27188,656.93854 355.03553,657.52917 355.07895,658.58333 C 355.12693,659.74828 355.36389,659.98523 355.68311,659.18750 C 355.97198,658.46563 355.93646,657.60312 355.60417,657.27083 z M 196.36163,646.50000 C 196.04504,645.67500 195.43231,645.00000 195.00000,645.00000 C 194.56769,645.00000 193.95496,645.67500 193.63837,646.50000 C 193.24880,647.51522 193.68886,648.00000 195.00000,648.00000 C 196.31114,648.00000 196.75120,647.51522 196.36163,646.50000 z M 196.00000,639.00000 C 196.00000,638.45000 195.55000,638.00000 195.00000,638.00000 C 194.45000,638.00000 194.00000,638.45000 194.00000,639.00000 C 194.00000,639.55000 194.45000,640.00000 195.00000,640.00000 C 195.55000,640.00000 196.00000,639.55000 196.00000,639.00000 z M 194.40804,634.50000 C 195.30898,633.12500 196.57573,632.00000 197.22305,632.00000 C 198.11284,632.00000 198.10722,632.29278 197.20000,633.20000 C 195.87062,634.52938 195.57692,637.00440 196.75000,636.99220 C 197.16250,636.98791 198.02016,635.86291 198.65591,634.49220 C 199.29167,633.12149 199.47640,632.00000 199.06643,632.00000 C 198.65646,632.00000 197.80845,630.87500 197.18195,629.50000 C 196.00497,626.91681 192.00920,625.95499 191.98899,628.25000 C 191.98294,628.93750 191.69906,631.18750 191.35815,633.25000 C 190.63412,637.63037 191.99223,638.18699 194.40804,634.50000 z M 208.00000,634.53138 C 208.00000,633.63679 207.41371,633.28775 206.50000,633.63837 C 205.67500,633.95496 205.00000,634.61583 205.00000,635.10699 C 205.00000,635.59814 205.67500,636.00000 206.50000,636.00000 C 207.32500,636.00000 208.00000,635.33912 208.00000,634.53138 z M 192.00000,620.94098 C 192.00000,620.35852 191.55000,620.16008 191.00000,620.50000 C 190.45000,620.83992 190.00000,621.31648 190.00000,621.55902 C 190.00000,621.80156 190.45000,622.00000 191.00000,622.00000 C 191.55000,622.00000 192.00000,621.52344 192.00000,620.94098 z M 205.12500,621.00000 C 206.70625,621.00000 208.00000,620.55000 208.00000,620.00000 C 208.00000,618.90509 201.82921,618.67109 198.25000,619.63029 C 194.75456,620.56703 195.53372,622.34326 199.12500,621.62500 C 200.84375,621.28125 203.54375,621.00000 205.12500,621.00000 z M 200.00000,616.50000 C 200.00000,615.41667 198.88889,615.00000 196.00000,615.00000 C 191.72057,615.00000 190.51875,616.57560 194.25000,617.29427 C 198.70929,618.15316 200.00000,617.97487 200.00000,616.50000 z M 206.00000,612.87756 C 206.00000,612.39490 204.65000,612.00000 203.00000,612.00000 C 199.67072,612.00000 199.06629,613.37809 201.73942,614.87405 C 203.50657,615.86300 206.00000,614.69458 206.00000,612.87756 z M 400.60417,609.27083 C 400.27188,608.93854 400.03553,609.52917 400.07895,610.58333 C 400.12693,611.74828 400.36389,611.98523 400.68311,611.18750 C 400.97198,610.46563 400.93646,609.60312 400.60417,609.27083 z M 208.00000,609.50000 C 208.00000,608.67500 207.26990,608.00000 206.37756,608.00000 C 205.04876,608.00000 204.98043,608.27149 206.00000,609.50000 C 206.68469,610.32500 207.41479,611.00000 207.62244,611.00000 C 207.83010,611.00000 208.00000,610.32500 208.00000,609.50000 z M 216.24665,609.16481 C 216.63509,607.67940 216.26639,607.41758 214.31222,607.79115 C 212.75668,608.08851 211.11018,607.51269 209.68348,606.17237 C 208.17784,604.75789 207.01063,604.37540 206.03670,604.97732 C 204.91684,605.66943 205.24750,606.14777 207.55215,607.16963 C 209.17347,607.88850 211.09464,609.04442 211.82143,609.73834 C 213.71771,611.54885 215.69006,611.29322 216.24665,609.16481 z M 226.00000,609.50000 C 227.01957,608.27149 226.95124,608.00000 225.62244,608.00000 C 224.73010,608.00000 224.00000,608.67500 224.00000,609.50000 C 224.00000,610.32500 224.16990,611.00000 224.37756,611.00000 C 224.58521,611.00000 225.31531,610.32500 226.00000,609.50000 z M 226.18750,592.31689 C 225.46562,592.02802 224.60313,592.06354 224.27083,592.39583 C 223.93854,592.72812 224.52917,592.96447 225.58333,592.92105 C 226.74828,592.87307 226.98523,592.63611 226.18750,592.31689 z M 207.60417,573.27083 C 207.27187,572.93854 207.03553,573.52917 207.07895,574.58333 C 207.12693,575.74828 207.36389,575.98523 207.68311,575.18750 C 207.97198,574.46563 207.93646,573.60312 207.60417,573.27083 z M 192.00000,565.44098 C 192.00000,564.58352 191.54266,564.16462 190.98369,564.51008 C 190.42472,564.85554 190.22627,565.55710 190.54271,566.06910 C 191.39994,567.45614 192.00000,567.19751 192.00000,565.44098 z M 218.00000,561.44098 C 218.00000,560.64844 217.55000,560.00000 217.00000,560.00000 C 216.45000,560.00000 216.00000,560.92656 216.00000,562.05902 C 216.00000,563.19148 216.45000,563.83992 217.00000,563.50000 C 217.55000,563.16008 218.00000,562.23352 218.00000,561.44098 z M 208.00000,561.00000 C 208.00000,560.45000 207.32500,560.00000 206.50000,560.00000 C 205.67500,560.00000 205.00000,560.45000 205.00000,561.00000 C 205.00000,561.55000 205.67500,562.00000 206.50000,562.00000 C 207.32500,562.00000 208.00000,561.55000 208.00000,561.00000 z M 193.25000,560.33772 C 192.56250,560.06031 191.43750,560.06031 190.75000,560.33772 C 190.06250,560.61513 190.62500,560.84211 192.00000,560.84211 C 193.37500,560.84211 193.93750,560.61513 193.25000,560.33772 z M 216.00000,557.60069 C 216.00000,556.65802 214.50320,556.08234 211.41323,555.83659 C 206.71392,555.46284 204.66630,556.54115 207.12188,558.09649 C 209.42859,559.55753 216.00000,559.19055 216.00000,557.60069 z M 243.50000,549.00000 C 243.84463,548.44237 243.09659,548.00677 241.80902,548.01531 C 239.95138,548.02763 239.79323,548.22012 241.00000,549.00000 C 242.86074,550.20250 242.75681,550.20250 243.50000,549.00000 z M 322.00000,549.00000 C 322.00000,548.45000 321.57656,548.00000 321.05902,548.00000 C 320.54148,548.00000 319.83992,548.45000 319.50000,549.00000 C 319.16008,549.55000 319.58352,550.00000 320.44098,550.00000 C 321.29844,550.00000 322.00000,549.55000 322.00000,549.00000 z M 336.00000,547.50000 C 336.00000,545.66772 334.44498,545.65751 330.50000,547.46389 L 327.50000,548.83756 L 331.75000,548.91878 C 334.89721,548.97893 336.00000,548.61078 336.00000,547.50000 z M 344.00000,546.00000 C 344.00000,545.45000 343.12656,545.00000 342.05902,545.00000 C 340.99148,545.00000 339.83992,545.45000 339.50000,546.00000 C 339.14948,546.56716 339.98962,547.00000 341.44098,547.00000 C 342.84844,547.00000 344.00000,546.55000 344.00000,546.00000 z M 357.50000,545.00000 C 357.83992,544.45000 357.19148,544.00000 356.05902,544.00000 C 354.92656,544.00000 354.00000,544.45000 354.00000,545.00000 C 354.00000,545.55000 354.64844,546.00000 355.44098,546.00000 C 356.23352,546.00000 357.16008,545.55000 357.50000,545.00000 z M 362.77083,542.18750 C 362.98854,541.53437 362.45417,541.00000 361.58333,541.00000 C 360.71250,541.00000 360.00000,541.71250 360.00000,542.58333 C 360.00000,544.34926 362.15276,544.04172 362.77083,542.18750 z M 380.00000,525.03333 C 380.00000,523.78279 377.56621,522.00000 375.85902,522.00000 C 373.93330,522.00000 372.59661,523.53828 373.39699,524.83333 C 373.99326,525.79812 380.00000,525.98006 380.00000,525.03333 z M 14.542705,756.06910 C 14.226274,755.55710 14.424717,754.85554 14.983688,754.51008 C 15.542660,754.16462 16.000000,754.58352 16.000000,755.44098 C 16.000000,757.19751 15.399945,757.45614 14.542705,756.06910 z M 11.078519,748.85391 C 9.9353335,747.62684 9.0000000,746.23117 9.0000000,745.75242 C 9.0000000,745.27367 8.5017897,745.18988 7.8928661,745.56621 C 7.1293442,746.03809 7.0226504,745.51328 7.5490939,743.87523 C 7.9689430,742.56885 8.4318899,740.44776 8.5778650,739.16170 C 8.9162214,736.18071 9.1429284,735.98268 13.287127,735.04801 C 17.239946,734.15651 20.180966,735.36484 19.347126,737.53779 C 18.942633,738.59188 19.244807,738.84329 20.388659,738.40435 C 21.274897,738.06427 22.000000,738.28417 22.000000,738.89301 C 22.000000,739.50186 21.523442,740.00000 20.940983,740.00000 C 20.358524,740.00000 20.160081,740.45000 20.500000,741.00000 C 21.486403,742.59603 22.992875,742.15793 23.078947,740.25000 C 23.122368,739.28750 23.374700,739.03199 23.639684,739.68221 C 24.244204,741.16557 21.802623,745.97884 19.352379,748.13408 C 16.030944,751.05563 13.347254,751.28911 11.078519,748.85391 z M 15.000000,738.00000 C 15.000000,737.45000 14.550000,737.00000 14.000000,737.00000 C 13.450000,737.00000 13.000000,737.45000 13.000000,738.00000 C 13.000000,738.55000 13.450000,739.00000 14.000000,739.00000 C 14.550000,739.00000 15.000000,738.55000 15.000000,738.00000 z M 6.0702853,737.91667 C 6.1089422,736.58750 6.5483271,734.60000 7.0466963,733.50000 C 7.6782201,732.10610 7.7682427,732.71220 7.3437512,735.50000 C 6.6367714,740.14300 5.9686610,741.41088 6.0702853,737.91667 z M 12.305311,726.79015 C 13.851998,725.80684 18.746592,725.77892 19.341207,726.75000 C 19.593789,727.16250 17.845237,727.51117 15.455535,727.52483 C 13.065833,727.53849 11.648233,727.20788 12.305311,726.79015 z M 102.27083,720.39583 C 102.60313,720.06354 103.46563,720.02802 104.18750,720.31689 C 104.98523,720.63611 104.74828,720.87307 103.58333,720.92105 C 102.52917,720.96447 101.93854,720.72812 102.27083,720.39583 z M 106.27083,719.39583 C 106.60313,719.06354 107.46563,719.02802 108.18750,719.31689 C 108.98523,719.63611 108.74828,719.87307 107.58333,719.92105 C 106.52917,719.96447 105.93854,719.72812 106.27083,719.39583 z M 154.73419,700.25000 C 154.52308,699.83750 154.41762,661.25000 154.49984,614.50000 C 154.60265,556.04368 154.98952,528.56316 155.73871,526.50000 C 156.54580,524.27740 156.88774,542.15772 157.05825,595.50000 C 157.18484,635.10000 157.41408,675.03750 157.56769,684.25000 C 157.79477,697.86922 157.59193,701.00000 156.48250,701.00000 C 155.73204,701.00000 154.94531,700.66250 154.73419,700.25000 z M 167.00000,657.05902 C 167.00000,656.47656 167.45000,656.00000 168.00000,656.00000 C 168.55000,656.00000 169.00000,656.19844 169.00000,656.44098 C 169.00000,656.68352 168.55000,657.16008 168.00000,657.50000 C 167.45000,657.83992 167.00000,657.64148 167.00000,657.05902 z M 165.00000,647.60699 C 165.00000,647.39083 165.67500,646.95496 166.50000,646.63837 C 167.32500,646.32179 168.00000,646.49865 168.00000,647.03138 C 168.00000,647.56412 167.32500,648.00000 166.50000,648.00000 C 165.67500,648.00000 165.00000,647.82314 165.00000,647.60699 z M 440.00166,633.50000 C 439.98573,632.40000 439.68295,630.41713 439.32882,629.09363 C 438.90331,627.50334 439.04854,626.91197 439.75707,627.34986 C 440.34673,627.71429 441.05709,627.44716 441.33564,626.75623 C 441.61420,626.06530 441.87074,627.07500 441.90574,629.00000 C 441.94074,630.92500 441.53316,633.17500 441.00000,634.00000 C 440.19600,635.24410 440.02568,635.15880 440.00166,633.50000 z M 405.50000,628.00000 C 405.16008,627.45000 405.35852,627.00000 405.94098,627.00000 C 406.52344,627.00000 407.00000,627.45000 407.00000,628.00000 C 407.00000,628.55000 406.80156,629.00000 406.55902,629.00000 C 406.31648,629.00000 405.83992,628.55000 405.50000,628.00000 z M 408.44113,623.53180 C 407.37351,622.72430 406.97649,622.04930 407.55887,622.03180 C 408.14125,622.01431 409.49125,622.66069 410.55887,623.46820 C 411.62649,624.27570 412.02351,624.95070 411.44113,624.96820 C 410.85875,624.98569 409.50875,624.33931 408.44113,623.53180 z M 437.54271,624.06910 C 436.87773,622.99315 438.83499,621.50165 439.73320,622.39986 C 440.06327,622.72994 439.69583,623.00689 438.91667,623.01531 C 437.75020,623.02792 437.76492,623.20183 439.00000,624.00000 C 439.90129,624.58246 440.02463,624.97549 439.30902,624.98469 C 438.65398,624.99311 437.85914,624.58109 437.54271,624.06910 z M 404.00000,621.00000 C 404.00000,620.45000 404.19844,620.00000 404.44098,620.00000 C 404.68352,620.00000 405.16008,620.45000 405.50000,621.00000 C 405.83992,621.55000 405.64148,622.00000 405.05902,622.00000 C 404.47656,622.00000 404.00000,621.55000 404.00000,621.00000 z M 412.39970,621.22367 C 411.79454,620.82565 410.76621,619.48750 410.11452,618.25000 C 409.15044,616.41929 409.19290,616.00000 410.34237,616.00000 C 411.11938,616.00000 412.29737,616.65338 412.96013,617.45196 C 414.41222,619.20162 413.95935,622.24945 412.39970,621.22367 z M 171.00000,606.50000 C 171.00000,605.67500 171.40186,605.00000 171.89301,605.00000 C 172.38417,605.00000 173.04504,605.67500 173.36163,606.50000 C 173.71225,607.41371 173.36321,608.00000 172.46862,608.00000 C 171.66088,608.00000 171.00000,607.32500 171.00000,606.50000 z M 176.00000,590.50000 C 176.00000,589.67500 176.17686,589.00000 176.39301,589.00000 C 176.60917,589.00000 177.04504,589.67500 177.36163,590.50000 C 177.67821,591.32500 177.50135,592.00000 176.96862,592.00000 C 176.43588,592.00000 176.00000,591.32500 176.00000,590.50000 z M 182.63837,585.50000 C 182.32179,584.67500 182.49865,584.00000 183.03138,584.00000 C 183.56412,584.00000 184.00000,584.67500 184.00000,585.50000 C 184.00000,586.32500 183.82314,587.00000 183.60699,587.00000 C 183.39083,587.00000 182.95496,586.32500 182.63837,585.50000 z M 190.47293,584.95620 C 189.59557,583.53661 191.86506,580.97293 193.87244,581.11600 C 195.24560,581.21387 195.22646,581.30349 193.75000,581.68933 C 191.58039,582.25630 191.43627,584.00000 193.55902,584.00000 C 194.41648,584.00000 194.83992,584.45000 194.50000,585.00000 C 193.69127,586.30855 191.29260,586.28246 190.47293,584.95620 z M 177.75000,583.33772 C 178.43750,583.06031 179.56250,583.06031 180.25000,583.33772 C 180.93750,583.61513 180.37500,583.84211 179.00000,583.84211 C 177.62500,583.84211 177.06250,583.61513 177.75000,583.33772 z M 186.00000,582.50000 C 186.00000,581.67500 185.35156,581.00000 184.55902,581.00000 C 182.30122,581.00000 181.71759,579.13955 183.43624,577.42090 C 184.76416,576.09298 185.00000,576.07800 185.00000,577.32158 C 185.00000,578.12702 185.70352,579.05599 186.56338,579.38595 C 187.42324,579.71591 187.81559,580.48936 187.43527,581.10474 C 187.05494,581.72012 187.36392,582.61640 188.12188,583.09649 C 189.21182,583.78685 189.13406,583.97258 187.75000,583.98469 C 186.78750,583.99311 186.00000,583.32500 186.00000,582.50000 z M 197.00000,583.00000 C 198.93876,581.74708 200.00000,581.74708 200.00000,583.00000 C 200.00000,583.55000 198.98750,583.99311 197.75000,583.98469 C 195.93056,583.97230 195.78704,583.78387 197.00000,583.00000 z M 189.35022,576.47026 C 188.74441,574.89155 189.67583,573.00000 191.05902,573.00000 C 191.57656,573.00000 192.00000,573.63750 192.00000,574.41667 C 192.00000,575.19583 192.55089,576.01696 193.22421,576.24140 C 193.89752,576.46584 193.42000,576.91841 192.16304,577.24711 C 190.69817,577.63018 189.68829,577.35127 189.35022,576.47026 z M 174.00000,573.55902 C 174.00000,572.21648 173.55000,570.83992 173.00000,570.50000 C 172.45000,570.16008 172.00000,569.45852 172.00000,568.94098 C 172.00000,568.42344 172.45000,568.00000 173.00000,568.00000 C 173.55000,568.00000 174.00000,568.67500 174.00000,569.50000 C 174.00000,570.32500 174.45000,571.00000 175.00000,571.00000 C 175.55000,571.00000 176.00000,572.12500 176.00000,573.50000 C 176.00000,574.87500 175.55000,576.00000 175.00000,576.00000 C 174.45000,576.00000 174.00000,574.90156 174.00000,573.55902 z M 184.00000,573.55902 C 184.00000,572.70156 184.45000,572.00000 185.00000,572.00000 C 185.55000,572.00000 186.00000,572.42344 186.00000,572.94098 C 186.00000,573.45852 185.55000,574.16008 185.00000,574.50000 C 184.45000,574.83992 184.00000,574.41648 184.00000,573.55902 z M 224.58775,544.49359 C 223.14157,542.28643 222.22895,541.87120 219.51931,542.18754 C 217.13761,542.46559 215.90301,542.07434 215.09885,540.78667 C 214.39304,539.65649 214.35361,539.00000 214.99153,539.00000 C 215.54619,539.00000 216.00000,539.34773 216.00000,539.77273 C 216.00000,540.19773 217.80000,540.54545 220.00000,540.54545 C 222.20000,540.54545 224.00000,540.23664 224.00000,539.85921 C 224.00000,538.85089 229.31869,540.44364 229.66116,541.55452 C 229.82147,542.07453 229.14239,543.55422 228.15208,544.84272 L 226.35152,547.18544 L 224.58775,544.49359 z M 185.55887,544.46820 C 183.65449,543.02780 183.65767,543.00000 185.72708,543.00000 C 188.72595,543.00000 191.08444,544.05436 190.43524,545.10478 C 189.63722,546.39600 187.78859,546.15467 185.55887,544.46820 z M 207.45888,537.93347 C 207.09635,537.34688 207.01420,536.65247 207.27633,536.39034 C 207.53845,536.12821 208.01939,536.60815 208.34508,537.45687 C 209.02126,539.21898 208.44493,539.52893 207.45888,537.93347 z M 199.50000,537.00000 C 199.16008,536.45000 199.35852,536.00000 199.94098,536.00000 C 200.52344,536.00000 201.00000,536.45000 201.00000,537.00000 C 201.00000,537.55000 200.80156,538.00000 200.55902,538.00000 C 200.31648,538.00000 199.83992,537.55000 199.50000,537.00000 z M 170.27083,535.39583 C 170.60313,535.06354 171.46562,535.02802 172.18750,535.31689 C 172.98523,535.63611 172.74828,535.87307 171.58333,535.92105 C 170.52917,535.96447 169.93854,535.72812 170.27083,535.39583 z M 366.54271,524.06910 C 366.22627,523.55710 366.42472,522.85554 366.98369,522.51008 C 367.54266,522.16462 368.00000,522.58352 368.00000,523.44098 C 368.00000,525.19751 367.39994,525.45614 366.54271,524.06910 z M 176.00000,519.44098 C 176.00000,518.58352 176.45000,518.16008 177.00000,518.50000 C 177.55000,518.83992 178.00000,519.54148 178.00000,520.05902 C 178.00000,520.57656 177.55000,521.00000 177.00000,521.00000 C 176.45000,521.00000 176.00000,520.29844 176.00000,519.44098 z M 179.27083,519.39583 C 179.60313,519.06354 180.46562,519.02802 181.18750,519.31689 C 181.98523,519.63611 181.74828,519.87307 180.58333,519.92105 C 179.52917,519.96447 178.93854,519.72812 179.27083,519.39583 z M 393.07895,487.58333 C 393.03553,486.52917 393.27188,485.93854 393.60417,486.27083 C 393.93646,486.60312 393.97198,487.46562 393.68311,488.18750 C 393.36389,488.98523 393.12693,488.74828 393.07895,487.58333 z M 164.00000,487.67814 C 164.00000,487.50112 164.72561,485.22673 165.61247,482.62394 C 166.49933,480.02116 166.94933,477.61599 166.61247,477.27914 C 166.27561,476.94228 166.00000,477.41667 166.00000,478.33333 C 166.00000,479.25000 165.64040,480.00000 165.20089,480.00000 C 164.76138,480.00000 163.82007,481.60869 163.10909,483.57487 C 161.37712,488.36453 160.75054,487.36126 161.57802,481.12337 C 162.00185,477.92837 163.14713,474.98017 164.63398,473.25663 C 168.17765,469.14885 168.30550,467.70737 165.64044,461.90859 C 164.30324,458.99904 163.43426,456.03192 163.70937,455.31499 C 164.44421,453.40003 166.00437,454.76413 165.38726,456.78203 C 165.09829,457.72691 165.55200,457.37500 166.39549,456.00000 C 167.75982,453.77599 168.51765,453.93550 168.08333,456.35526 C 167.99891,456.82565 168.41068,457.78991 168.99839,458.49806 C 169.75708,459.41223 169.74353,462.44561 168.95165,468.95838 C 168.33824,474.00340 168.08601,478.78176 168.39116,479.57695 C 168.97934,481.10974 166.02080,487.93371 164.75000,487.97540 C 164.33750,487.98893 164.00000,487.85516 164.00000,487.67814 z M 365.01592,473.29860 C 362.72422,471.69343 363.15273,470.30161 366.35233,468.95791 C 368.78747,467.93524 355.57234,468.27831 353.00000,469.30453 C 352.17500,469.63366 345.42500,470.41753 338.00000,471.04647 C 330.57500,471.67540 324.31092,472.37382 324.07983,472.59850 C 323.84873,472.82318 322.53918,472.27286 321.16973,471.37555 C 318.97812,469.93956 317.47092,469.87858 308.58990,470.86660 C 293.41439,472.55488 276.83056,472.94545 264.07224,471.91505 C 255.10182,471.19057 252.22120,471.27316 250.67599,472.29914 C 249.06165,473.37102 246.97968,473.37619 239.10375,472.32785 C 233.82169,471.62477 228.30534,471.28972 226.84520,471.58331 C 225.38506,471.87689 223.92478,471.68731 223.60014,471.16203 C 223.27549,470.63674 220.51685,470.17719 217.46981,470.14079 C 214.42278,470.10439 211.46985,469.79038 210.90774,469.44298 C 210.34564,469.09558 208.89894,468.65580 207.69287,468.46570 C 206.48679,468.27559 203.72484,467.67066 201.55520,467.12140 C 196.78167,465.91295 195.64860,466.46379 196.43802,469.60909 C 196.76807,470.92409 196.60540,472.00000 196.07655,472.00000 C 195.54770,472.00000 194.96851,470.08750 194.78947,467.75000 L 194.46394,463.50000 L 193.19343,467.75000 C 192.08624,471.45365 191.55795,472.00000 189.08390,472.00000 C 187.52244,472.00000 185.66769,471.30452 184.96223,470.45449 C 184.25677,469.60446 183.00015,469.16970 182.16974,469.48836 C 180.26580,470.21897 179.03507,468.32850 179.01531,464.64301 C 179.00392,462.51765 178.61587,461.93343 177.50000,462.36163 C 176.67500,462.67821 175.99311,462.38885 175.98469,461.71862 C 175.97495,460.94335 175.60776,461.04572 174.97542,462.00000 C 174.25216,463.09148 174.05207,462.34293 174.24073,459.25147 C 174.38333,456.91477 174.95000,454.98796 175.50000,454.96966 C 176.05000,454.95136 175.67534,454.31142 174.66742,453.54757 C 172.90206,452.20969 172.90882,452.11916 174.85168,451.07938 C 175.96094,450.48572 178.30900,450.00000 180.06959,450.00000 C 182.21835,450.00000 184.04947,449.15965 185.63975,447.44371 C 186.94274,446.03775 188.50489,445.19400 189.11118,445.56871 C 189.87616,446.04150 189.79830,446.51310 188.85676,447.10969 C 188.11054,447.58252 187.95000,447.96937 188.50000,447.96937 C 190.90399,447.96937 191.66197,446.11177 191.58365,440.41213 L 191.50000,434.32426 L 197.50000,437.16134 C 200.80000,438.72174 204.47500,439.99878 205.66667,439.99921 C 206.85833,439.99964 207.99061,440.47184 208.18284,441.04853 C 208.39764,441.69291 211.41694,441.97906 216.01618,441.79092 C 220.13228,441.62255 222.82500,441.21664 222.00000,440.88890 C 221.17500,440.56117 217.23750,439.23094 213.25000,437.93283 C 209.23070,436.62438 206.00000,434.99945 206.00000,434.28632 C 206.00000,433.57885 205.55000,433.00000 205.00000,433.00000 C 203.39802,433.00000 203.84719,431.27261 205.62675,430.58974 C 206.52146,430.24640 207.84987,430.46044 208.57876,431.06537 C 209.37235,431.72399 210.82594,431.84914 212.20201,431.37732 C 213.46591,430.94396 216.63750,430.72315 219.25000,430.88662 C 222.45711,431.08730 224.00000,430.79181 224.00000,429.97691 C 224.00000,429.14471 224.76528,429.27141 226.46482,430.38499 C 227.82047,431.27325 229.69753,432.00000 230.63608,432.00000 C 231.57462,432.00000 233.13608,432.71816 234.10599,433.59592 C 235.72485,435.06097 236.07724,435.04047 238.40330,433.34592 C 239.79692,432.33066 240.95129,430.93750 240.96858,430.25000 C 241.00442,428.82434 242.61570,428.56917 243.41506,429.86256 C 243.70826,430.33697 247.22232,430.62935 251.22408,430.51228 C 259.03911,430.28366 262.01881,430.98625 257.98992,432.10761 C 256.04141,432.64995 256.47849,432.82669 260.00000,432.92043 C 262.47500,432.98631 267.42500,433.48446 271.00000,434.02744 C 277.23306,434.97412 289.18660,435.22767 299.25000,434.62667 C 301.86250,434.47064 304.00000,434.74237 304.00000,435.23051 C 304.00000,435.71865 304.35756,435.89705 304.79459,435.62695 C 305.23161,435.35686 312.08752,434.86913 320.02993,434.54311 C 327.97234,434.21709 336.05228,433.54050 337.98534,433.03957 C 339.91840,432.53864 344.23880,431.92448 347.58622,431.67477 C 350.93364,431.42506 355.03909,430.51403 356.70944,429.65026 C 358.37978,428.78649 360.00479,428.33812 360.32055,428.65389 C 360.63632,428.96965 362.10406,428.27671 363.58220,427.11400 C 365.06033,425.95130 366.88403,425.00000 367.63486,425.00000 C 368.38569,425.00000 369.00000,424.60459 369.00000,424.12132 C 369.00000,423.63805 370.35000,422.68345 372.00000,422.00000 C 373.65000,421.31655 375.00277,420.02445 375.00616,419.12868 C 375.00976,418.17842 375.64261,418.70861 376.52546,420.40151 C 377.35769,421.99734 377.79123,424.08242 377.48888,425.03502 C 376.93119,426.79216 372.27368,432.08517 370.48022,433.00000 C 369.94110,433.27500 369.61250,433.83750 369.75000,434.25000 C 369.88750,434.66250 369.52344,435.00000 368.94098,435.00000 C 368.35852,435.00000 368.12857,435.39901 368.42997,435.88669 C 368.73138,436.37437 368.30793,437.32947 367.48899,438.00914 C 365.12401,439.97190 365.73079,442.41600 369.56257,446.36146 C 372.42809,449.31199 381.74006,455.18569 384.00000,455.46814 C 385.17403,455.61487 387.00000,457.19182 387.00000,458.05902 C 387.00000,458.57656 386.43750,459.02988 385.75000,459.06639 C 385.06250,459.10291 382.47970,460.60003 380.01045,462.39333 C 376.76078,464.75342 375.21878,466.73071 374.42691,469.55303 C 373.52345,472.77312 372.78716,473.56380 370.19912,474.09311 C 368.16950,474.50821 366.34321,474.22827 365.01592,473.29860 z M 192.00000,465.00000 C 192.00000,464.45000 191.52344,464.00000 190.94098,464.00000 C 190.35852,464.00000 190.16008,464.45000 190.50000,465.00000 C 190.83992,465.55000 191.31648,466.00000 191.55902,466.00000 C 191.80156,466.00000 192.00000,465.55000 192.00000,465.00000 z M 181.00000,454.00000 C 181.00000,453.45000 180.55000,453.00000 180.00000,453.00000 C 179.45000,453.00000 179.00000,453.45000 179.00000,454.00000 C 179.00000,454.55000 179.45000,455.00000 180.00000,455.00000 C 180.55000,455.00000 181.00000,454.55000 181.00000,454.00000 z M 202.50000,445.00000 C 202.16008,444.45000 201.45852,444.00000 200.94098,444.00000 C 200.42344,444.00000 200.00000,444.45000 200.00000,445.00000 C 200.00000,445.55000 200.70156,446.00000 201.55902,446.00000 C 202.41648,446.00000 202.83992,445.55000 202.50000,445.00000 z M 220.00000,432.46482 C 220.00000,432.20917 219.10000,432.00000 218.00000,432.00000 C 216.86852,432.00000 216.00000,432.66667 216.00000,433.53518 C 216.00000,434.76049 216.40370,434.85431 218.00000,434.00000 C 219.10000,433.41130 220.00000,432.72047 220.00000,432.46482 z M 242.00000,434.00000 C 242.00000,433.45000 241.55000,433.00000 241.00000,433.00000 C 240.45000,433.00000 240.00000,433.45000 240.00000,434.00000 C 240.00000,434.55000 240.45000,435.00000 241.00000,435.00000 C 241.55000,435.00000 242.00000,434.55000 242.00000,434.00000 z M 223.18750,432.31689 C 222.46562,432.02802 221.60313,432.06354 221.27083,432.39583 C 220.93854,432.72812 221.52917,432.96447 222.58333,432.92105 C 223.74828,432.87307 223.98523,432.63611 223.18750,432.31689 z M 247.18750,432.31689 C 246.46562,432.02802 245.60313,432.06354 245.27083,432.39583 C 244.93854,432.72812 245.52917,432.96447 246.58333,432.92105 C 247.74828,432.87307 247.98523,432.63611 247.18750,432.31689 z M 375.50870,448.87667 C 368.97285,445.37366 368.62053,444.41471 370.15096,434.29399 C 370.25127,433.63068 370.67307,433.29795 371.08831,433.55458 C 371.50355,433.81121 374.00125,431.74197 376.63875,428.95626 L 381.43422,423.89134 L 382.82280,427.69567 C 384.55641,432.44527 384.57860,443.07853 382.86136,446.17388 C 382.15159,447.45325 381.55492,448.91250 381.53544,449.41667 C 381.46756,451.17242 379.45575,450.99216 375.50870,448.87667 z M 176.18974,438.55240 C 175.86323,432.59767 177.76154,421.00000 179.06272,421.00000 C 179.50410,421.00000 180.13055,421.83595 180.45483,422.85767 C 181.26444,425.40854 188.68318,433.31353 189.68689,432.69483 C 190.13410,432.41916 190.62215,433.93350 190.77145,436.06003 C 191.00663,439.40975 190.67253,440.11447 188.27145,441.33337 C 186.74715,442.10718 183.47300,443.03473 180.99556,443.39459 L 176.49113,444.04890 L 176.18974,438.55240 z M 194.72033,429.41248 C 193.19151,428.58338 192.13178,427.58890 192.36537,427.20252 C 192.59896,426.81613 192.14530,425.90386 191.35723,425.17525 C 190.13546,424.04566 190.01456,424.20984 190.53658,426.28972 C 190.95863,427.97129 190.67558,428.91051 189.62532,429.31354 C 188.52815,429.73456 188.27609,429.44409 188.72454,428.27546 C 189.20461,427.02440 188.93154,426.81229 187.53217,427.34928 C 185.99694,427.93841 185.91196,427.81100 186.98100,426.52289 C 187.84621,425.48038 187.92725,424.60570 187.23792,423.75000 C 186.68408,423.06250 185.86950,420.92500 185.42774,419.00000 L 184.62453,415.50000 L 183.88540,418.50000 L 183.14628,421.50000 L 183.32314,418.50000 C 183.46720,416.05640 183.90559,415.54211 185.68687,415.72703 C 188.28645,415.99689 198.00000,425.25344 198.00000,427.46084 C 198.00000,428.30738 198.45000,429.00000 199.00000,429.00000 C 199.55000,429.00000 200.00000,429.45000 200.00000,430.00000 C 200.00000,431.40407 197.97781,431.17905 194.72033,429.41248 z M 238.01531,430.25000 C 238.02373,429.83750 238.46684,428.82500 239.00000,428.00000 C 239.78387,426.78704 239.97230,426.93056 239.98469,428.75000 C 239.99311,429.98750 239.55000,431.00000 239.00000,431.00000 C 238.45000,431.00000 238.00689,430.66250 238.01531,430.25000 z M 244.50411,427.00666 C 244.15021,426.43403 244.94175,426.10034 246.37300,426.21880 C 247.73855,426.33181 248.63670,426.77882 248.36889,427.21214 C 247.68270,428.32241 245.23693,428.19237 244.50411,427.00666 z M 237.00000,424.92749 C 235.07500,424.56218 234.35724,424.20404 235.40499,424.13164 C 237.21016,424.00690 237.22024,423.90084 235.59724,422.10745 C 234.65524,421.06655 233.54884,418.95979 233.13858,417.42577 C 232.49904,415.03443 231.61590,414.46322 226.94633,413.42065 C 217.38677,411.28630 209.72178,408.99284 201.25000,405.73197 C 194.76575,403.23613 192.98310,402.12237 192.92105,400.52824 C 192.87763,399.41271 192.62356,399.03722 192.35644,399.69382 C 191.66502,401.39346 189.01272,400.13043 189.67099,398.41501 C 190.43885,396.41399 189.18286,392.00000 187.84562,392.00000 C 185.90381,392.00000 181.79223,397.22386 179.21759,402.96212 C 177.66737,406.41722 176.53637,407.93585 176.21041,407.00000 C 175.54238,405.08204 153.73597,378.19367 151.06949,376.00000 C 147.77287,373.28794 128.05504,348.60001 124.28981,342.47020 C 114.74684,326.93424 110.46779,317.31960 107.83599,305.50000 C 106.02859,297.38289 106.27008,274.80927 108.22092,269.51759 L 109.68908,265.53519 L 110.38567,272.01759 C 111.11827,278.83508 113.27063,287.45548 115.49976,292.50000 C 116.22888,294.15000 118.08965,298.42500 119.63479,302.00000 C 121.17994,305.57500 122.79422,308.65000 123.22208,308.83333 C 123.64993,309.01667 124.00000,309.80417 124.00000,310.58333 C 124.00000,311.36250 124.45000,312.00000 125.00000,312.00000 C 125.55000,312.00000 126.00000,312.70156 126.00000,313.55902 C 126.00000,314.41648 126.45000,314.83992 127.00000,314.50000 C 127.55000,314.16008 128.00000,314.37816 128.00000,314.98463 C 128.00000,315.59109 129.12970,317.30515 130.51045,318.79364 C 131.89120,320.28214 132.79636,322.08587 132.52191,322.80194 C 132.24746,323.51800 132.43148,323.85137 132.93083,323.54275 C 133.94099,322.91844 135.16644,324.02548 139.33304,329.32634 C 140.89121,331.30868 143.70371,333.48661 145.58304,334.16619 C 147.46237,334.84576 149.00000,335.73341 149.00000,336.13874 C 149.00000,336.54407 149.78750,336.89984 150.75000,336.92934 C 151.71250,336.95883 156.31885,337.13025 160.98634,337.31026 C 168.10235,337.58470 169.78791,337.34386 171.42490,335.81877 C 172.49862,334.81845 173.96727,334.00000 174.68856,334.00000 C 175.40985,334.00000 176.00000,333.55000 176.00000,333.00000 C 176.00000,332.45000 176.61875,332.00000 177.37500,332.00000 C 178.13125,332.00000 179.02596,330.62018 179.36326,328.93372 C 179.73661,327.06695 180.40461,326.13203 181.07085,326.54379 C 182.44024,327.39012 179.50595,321.50935 176.55833,317.50000 C 175.34527,315.85000 174.06092,313.70833 173.70421,312.74072 C 173.34750,311.77312 172.53688,311.09812 171.90283,311.24072 C 171.26877,311.38333 170.54699,310.82500 170.29887,310.00000 C 169.89786,308.66667 169.96561,308.66667 170.90856,310.00000 C 172.07814,311.65380 172.32229,311.00344 171.41724,308.64493 C 171.09672,307.80967 170.19162,307.37297 169.40590,307.67448 C 168.40707,308.05777 168.16464,307.73454 168.60000,306.60000 C 169.05918,305.40339 168.79959,305.13968 167.61134,305.59565 C 166.72510,305.93573 166.00000,305.80184 166.00000,305.29812 C 166.00000,304.79440 165.28826,303.50875 164.41836,302.44113 C 163.06789,300.78370 162.91715,300.75577 163.38698,302.25000 C 163.68962,303.21250 163.55014,304.00000 163.07702,304.00000 C 162.60391,304.00000 161.93046,302.85908 161.58048,301.46463 C 161.21901,300.02444 159.85031,298.51339 158.41190,297.96650 C 157.01916,297.43699 156.12262,296.61062 156.41957,296.13013 C 157.02879,295.14440 151.18807,289.97154 149.55722,290.05245 C 148.97575,290.08130 149.51250,290.81119 150.75000,291.67442 C 151.98750,292.53766 153.00000,293.86406 153.00000,294.62197 C 153.00000,296.24135 151.39936,296.45519 150.47486,294.95932 C 150.12111,294.38695 148.96956,294.19227 147.91584,294.52671 C 146.39238,295.01024 146.00000,294.64466 146.00000,292.74170 C 146.00000,291.42551 144.89456,289.31012 143.54346,288.04083 L 141.08692,285.73303 L 141.29346,288.61651 C 141.43587,290.60474 141.03428,291.50000 140.00000,291.50000 C 139.01899,291.50000 138.56186,290.63502 138.67879,289.00000 C 138.95985,285.07006 137.85345,283.01041 137.06727,286.00000 C 136.11491,289.62146 134.72468,289.07241 133.46330,284.57667 C 132.44462,280.94593 130.11950,278.95657 127.50000,279.47449 C 126.95000,279.58324 126.83750,279.48346 127.25000,279.25277 C 127.66250,279.02208 128.00000,277.71551 128.00000,276.34928 C 128.00000,274.32030 127.63360,273.98151 126.00000,274.50000 C 124.58068,274.95047 124.00000,274.67970 124.00000,273.56739 C 124.00000,272.70532 124.45000,272.00000 125.00000,272.00000 C 126.73632,272.00000 126.08374,266.18307 123.96499,262.77417 L 121.92997,259.50000 L 122.59382,264.75000 C 123.03327,268.22542 122.89605,270.00000 122.18785,270.00000 C 120.62827,270.00000 119.83090,268.31960 119.42167,264.17050 C 118.80461,257.91422 117.45549,250.54602 116.70455,249.33097 C 116.31019,248.69289 116.55284,247.96618 117.24377,247.71606 C 118.22295,247.36160 118.24013,246.81972 117.32167,245.25898 C 116.42199,243.73017 116.42002,242.97998 117.31331,242.08669 C 118.20661,241.19339 118.13054,240.68022 116.99164,239.91666 C 115.67163,239.03167 115.67259,238.93503 117.00000,239.07678 C 120.54787,239.45565 125.41765,238.90887 124.50000,238.23469 C 122.77141,236.96472 122.92450,234.99895 124.75000,235.02445 C 128.61898,235.07849 135.47052,237.19885 138.31037,239.22100 L 141.32063,241.36450 L 140.49267,233.93225 C 140.03730,229.84451 139.62751,221.77500 139.58204,216.00000 L 139.49936,205.50000 L 127.24912,187.50000 C 112.22919,165.43033 114.58106,168.92607 104.48809,153.66873 C 99.819639,146.61153 96.000000,139.97403 96.000000,138.91873 C 96.000000,135.08352 104.69916,137.20085 107.05911,141.61046 C 107.76248,142.92471 108.70588,144.00000 109.15556,144.00000 C 109.60524,144.00000 110.63029,145.46250 111.43345,147.25000 C 113.56385,151.99138 115.68012,154.31573 117.07931,153.45098 C 117.96299,152.90484 118.11634,153.40032 117.64494,155.27852 C 117.21748,156.98165 117.52121,158.37835 118.54073,159.39788 C 119.38913,160.24627 120.58933,162.41632 121.20786,164.22020 C 121.82639,166.02409 123.38266,168.89248 124.66623,170.59439 C 125.94980,172.29631 127.00000,174.03104 127.00000,174.44937 C 127.00000,174.86769 128.35000,177.21027 130.00000,179.65511 C 131.65000,182.09994 133.00000,184.37273 133.00000,184.70574 C 133.00000,185.03875 134.12500,186.78617 135.50000,188.58889 C 136.87500,190.39161 138.00000,192.34658 138.00000,192.93328 C 138.00000,193.51998 138.49878,194.00000 139.10841,194.00000 C 139.80577,194.00000 139.97993,195.01982 139.57803,196.75000 C 138.63842,200.79509 140.73204,197.46854 141.99641,192.90745 C 143.64810,186.94915 150.44081,179.70680 157.50000,176.37760 C 161.40915,174.53399 164.02718,174.04940 169.50000,174.15642 L 176.50000,174.29330 L 169.50000,174.96403 C 160.79740,175.79790 154.47125,178.56020 150.24787,183.37043 C 145.48626,188.79367 142.48344,197.15011 144.55269,199.21936 C 144.85667,199.52334 147.07294,197.68960 149.47773,195.14439 C 154.73307,189.58219 156.80075,190.26438 151.72277,195.88510 C 146.35849,201.82272 145.60686,203.63667 147.05859,207.14146 L 148.28467,210.10146 L 151.14233,207.36364 C 153.40812,205.19287 154.00000,204.97525 154.00000,206.31291 C 154.00000,207.24081 153.10000,208.90000 152.00000,210.00000 C 149.53518,212.46482 149.52575,213.24697 151.88600,219.46173 C 154.27762,225.75909 156.61439,226.96896 155.59912,221.38421 C 153.89323,212.00055 153.71157,209.70371 154.72480,210.32992 C 155.29087,210.67977 156.26584,212.99865 156.89140,215.48300 C 157.51697,217.96735 158.33519,220.00000 158.70968,220.00000 C 159.08416,220.00000 160.65269,218.79081 162.19528,217.31291 C 163.73788,215.83501 165.00000,215.16001 165.00000,215.81291 C 165.00000,216.46581 164.66250,217.00307 164.25000,217.00683 C 163.83750,217.01059 162.44840,218.55800 161.16311,220.44552 L 158.82622,223.87738 L 161.05763,230.18869 C 167.62833,248.77319 184.13157,285.60152 194.35747,304.50000 C 199.38300,313.78769 208.07143,329.00329 208.34504,328.99571 C 208.43027,328.99335 208.50000,326.40585 208.50000,323.24571 C 208.50000,318.29476 207.85122,316.30626 203.80966,308.86984 C 175.80224,257.33658 167.00000,237.66504 167.00000,226.60634 C 167.00000,220.30204 168.62400,218.00000 173.07143,218.00000 C 174.68214,218.00000 176.00000,217.55000 176.00000,217.00000 C 176.00000,216.45000 175.52344,216.00000 174.94098,216.00000 C 174.35852,216.00000 174.15433,215.55930 174.48723,215.02067 C 174.82012,214.48203 174.55715,213.04104 173.90285,211.81847 C 173.01845,210.16596 173.00658,209.49781 173.85660,209.21447 C 174.48547,209.00484 174.96447,208.08333 174.92105,207.16667 C 174.87182,206.12732 174.65226,205.97049 174.33772,206.75000 C 174.06031,207.43750 172.85833,207.99311 171.66667,207.98469 C 170.06997,207.97340 169.85691,207.74322 170.85676,207.10969 C 171.79448,206.51552 171.33120,206.25610 169.35676,206.26974 C 167.78554,206.28059 167.06250,206.48684 167.75000,206.72807 C 169.18355,207.23107 169.46564,210.00000 168.08333,210.00000 C 167.57917,210.00000 166.68446,208.76250 166.09510,207.25000 C 165.03958,204.54118 165.03204,204.54866 165.59122,207.75000 C 166.55451,213.26483 165.21088,211.33279 163.98874,205.44574 C 163.05434,200.94477 162.57808,200.10528 161.47728,201.01886 C 160.73016,201.63891 160.35958,202.90083 160.65377,203.82311 C 161.09195,205.19681 161.00458,205.24042 160.17055,204.06430 C 159.35472,202.91386 158.85694,202.87384 157.66524,203.86286 C 156.64759,204.70744 155.97163,204.76312 155.52424,204.03923 C 155.16465,203.45739 156.27556,202.19804 157.99294,201.24067 C 160.63609,199.76722 161.06191,199.01184 160.76672,196.32015 C 160.57491,194.57123 160.77393,193.36028 161.20899,193.62916 C 161.64405,193.89804 162.00000,193.46896 162.00000,192.67565 C 162.00000,191.88234 162.97275,190.97888 164.16167,190.66797 C 166.65962,190.01474 170.33239,191.65316 169.47607,193.03872 C 169.15710,193.55482 169.59450,193.70910 170.44806,193.38156 C 171.30163,193.05401 172.00000,193.28810 172.00000,193.90175 C 172.00000,194.64614 173.91370,194.86595 177.75000,194.56219 C 180.91250,194.31178 182.56847,194.32854 181.42994,194.59942 C 179.90163,194.96305 179.40906,195.79960 179.54778,197.79597 C 179.65113,199.28319 179.54487,199.75837 179.31165,198.85194 C 178.86460,197.11443 175.00000,195.53843 175.00000,197.09362 C 175.00000,197.59213 175.43563,198.00000 175.96806,198.00000 C 176.50050,198.00000 177.56892,199.20773 178.34233,200.68383 C 179.72310,203.31914 179.76107,203.32818 180.44165,201.18383 C 180.82287,199.98273 181.55445,199.00000 182.06739,199.00000 C 183.36296,199.00000 183.23236,200.36764 181.80000,201.80000 C 180.86667,202.73333 180.86667,203.00000 181.80000,203.00000 C 182.46000,203.00000 183.00000,202.61240 183.00000,202.13867 C 183.00000,201.66494 184.11976,201.49140 185.48835,201.75302 C 186.85694,202.01464 187.75026,202.59507 187.47351,203.04285 C 187.19677,203.49064 187.98951,204.07783 189.23517,204.34772 C 190.48083,204.61761 189.28978,204.76228 186.58841,204.66921 C 183.88704,204.57615 181.52562,204.95000 181.34082,205.50000 C 181.13576,206.11028 184.06453,206.50000 188.85598,206.50000 C 195.90260,206.50000 196.60141,206.33090 195.67534,204.84978 C 195.10784,203.94216 194.16124,203.30591 193.57177,203.43588 C 192.98229,203.56586 192.81222,203.49189 193.19382,203.27150 C 195.20545,202.10970 190.61382,196.05115 187.59501,195.88400 C 185.89451,195.78984 185.83106,195.68159 187.25809,195.30912 C 189.73155,194.66351 196.57339,197.02759 195.01640,197.98986 C 194.07868,198.56941 194.06247,199.24822 194.94693,200.90083 C 195.58131,202.08618 196.52261,202.79504 197.03872,202.47607 C 197.56877,202.14848 197.69056,202.64282 197.31861,203.61211 C 196.87185,204.77633 197.03630,205.09560 197.83006,204.60503 C 198.49311,204.19524 199.01317,204.44911 199.03041,205.19098 C 199.04932,206.00496 199.44348,205.84320 200.07268,204.76325 C 201.21276,202.80644 199.71051,199.00000 197.79815,199.00000 C 197.17583,199.00000 196.94647,198.72019 197.28846,198.37821 C 198.13874,197.52793 193.23376,188.02693 191.62601,187.40998 C 190.91504,187.13716 190.33333,186.27949 190.33333,185.50406 C 190.33333,184.56291 191.38689,184.99280 193.50229,186.79709 C 195.24521,188.28369 196.51168,189.95927 196.31666,190.52059 C 195.79708,192.01612 201.21210,199.98695 202.29360,199.31855 C 202.79956,199.00585 202.60298,198.36314 201.85676,197.89031 C 201.11054,197.41748 200.87420,197.02373 201.33156,197.01531 C 201.78892,197.00689 201.13355,195.31250 199.87518,193.25000 C 197.96274,190.11543 197.89398,189.74617 199.45625,191.00000 C 201.05720,192.28488 201.25618,192.29107 200.84367,191.04316 C 200.57881,190.24189 199.17236,188.89189 197.71823,188.04316 C 196.26410,187.19442 194.05277,185.15000 192.80417,183.50000 L 190.53399,180.50000 L 194.51700,183.40191 C 196.70765,184.99796 200.18750,187.90179 202.25000,189.85486 C 205.96359,193.37142 207.53338,193.35185 204.34501,189.82874 C 203.43477,188.82293 203.14789,188.00000 203.70750,188.00000 C 204.26711,188.00000 204.57930,186.76250 204.40125,185.25000 C 204.22321,183.73750 203.76947,178.54850 203.39294,173.71889 C 203.01641,168.88928 202.32397,164.70022 201.85417,164.40987 C 201.38438,164.11952 201.00000,162.94329 201.00000,161.79601 C 201.00000,160.50910 197.23865,155.83926 191.18070,149.60503 C 178.57748,136.63507 173.66258,130.25600 169.55676,121.53927 C 164.63532,111.09093 162.56106,99.429738 163.30071,86.368514 C 163.97813,74.406210 165.40790,70.974132 166.26287,79.258012 C 166.83157,84.768160 170.94535,95.791423 173.86081,99.617411 C 174.76237,100.80053 176.17500,102.80263 177.00000,104.06652 C 179.61443,108.07180 190.15712,117.67336 195.42418,120.84600 C 198.21588,122.52760 202.75000,124.46862 205.50000,125.15938 C 211.68514,126.71301 211.52182,126.59122 209.86905,128.41768 C 209.11607,129.24978 208.01086,130.52369 207.41302,131.24858 C 206.05907,132.89027 206.80746,158.35377 208.40499,165.00000 C 208.73550,166.37500 209.15947,174.61739 209.34715,183.31642 C 209.66256,197.93542 209.85161,199.29605 211.84420,201.28864 C 213.92863,203.37308 214.00043,203.37915 214.01290,201.47222 C 214.02667,199.36743 217.39394,187.82939 218.96608,184.50000 C 219.48551,183.40000 221.09022,179.61887 222.53211,176.09750 C 223.97401,172.57612 225.81200,168.69036 226.61655,167.46247 C 227.85454,165.57305 227.92109,163.02215 227.04957,150.86497 C 226.48318,142.96423 226.00844,135.15000 225.99458,133.50000 C 225.95973,129.35168 224.81156,127.91499 220.87926,127.09931 L 217.50000,126.39835 L 223.00000,123.86302 C 236.94693,117.43390 251.11241,98.082475 254.37625,81.000000 C 255.44017,75.431567 255.85427,74.401398 255.98413,77.000000 C 256.08033,78.925000 256.49417,84.325000 256.90378,89.000000 C 258.26903,104.58189 254.68239,122.26796 247.92708,133.26502 C 246.31718,135.88579 245.00000,138.32587 245.00000,138.68744 C 245.00000,139.04901 242.75000,141.93172 240.00000,145.09347 C 237.25000,148.25521 235.00000,151.32762 235.00000,151.92104 C 235.00000,152.51447 234.55000,153.00000 234.00000,153.00000 C 233.45000,153.00000 233.00000,153.51429 233.00000,154.14286 C 233.00000,154.77143 235.36250,152.90565 238.25000,149.99668 C 247.82416,140.35135 258.08971,137.45431 266.85251,141.92476 C 272.42900,144.76967 276.20454,148.66515 281.03597,156.55877 C 288.18898,168.24540 293.89865,185.65269 296.10141,202.48937 C 296.93895,208.89104 297.97429,212.97429 299.02683,214.02683 C 300.41068,215.41068 300.52966,216.83429 299.81720,223.48387 C 298.94708,231.60499 299.30014,234.46291 300.49914,229.00394 C 300.87834,227.27744 301.79274,225.63303 302.53115,225.34967 C 303.26956,225.06632 303.62020,224.17383 303.31034,223.36636 C 303.00049,222.55889 303.64848,220.90863 304.75031,219.69912 C 305.85215,218.48960 307.30834,215.76900 307.98628,213.65333 C 308.66423,211.53766 309.84188,208.61266 310.60330,207.15333 C 311.36471,205.69400 311.99045,203.69967 311.99384,202.72148 C 312.00382,199.84033 317.76428,189.26668 321.69308,184.91797 C 326.04277,180.10338 328.04310,178.93856 332.70559,178.50522 C 338.10044,178.00383 343.85520,184.21967 346.97286,193.91561 C 349.07512,200.45364 349.20565,201.78203 348.13803,205.77375 C 347.47676,208.24617 347.13236,210.46569 347.37270,210.70603 C 347.61304,210.94637 348.12642,209.70092 348.51354,207.93837 C 349.47551,203.55852 350.83829,206.05795 350.06894,210.79109 C 349.61376,213.59143 348.99037,214.49664 347.51606,214.49809 C 346.44321,214.49914 345.10070,215.40000 344.53271,216.50000 C 343.72555,218.06319 342.68097,218.43221 339.75000,218.18963 C 336.59640,217.92863 336.00000,218.18840 336.00000,219.82300 C 336.00000,220.95174 336.94341,222.07852 338.25000,222.51032 C 340.45081,223.23764 340.45443,223.26310 338.41579,223.67477 C 336.55296,224.05095 336.40267,224.56407 337.00086,228.50567 C 337.36896,230.93119 337.30125,233.49717 336.85038,234.20785 C 336.39952,234.91853 336.02373,236.72338 336.01531,238.21862 C 336.00403,240.22102 335.60483,240.78559 334.50000,240.36163 C 333.62347,240.02527 332.99364,240.35005 332.98469,241.14301 C 332.97627,241.88936 332.54403,243.17281 332.02417,243.99513 C 331.21184,245.28009 330.87864,245.21629 329.65385,243.54128 C 328.45195,241.89759 327.85838,241.77223 325.86436,242.74096 L 323.50000,243.88962 L 325.99105,244.62447 L 328.48210,245.35933 L 325.49105,246.63456 C 323.84597,247.33594 323.06250,247.93009 323.75000,247.95490 C 325.49081,248.01771 325.31588,249.66481 323.49415,250.36387 C 322.46224,250.75985 321.43935,249.79335 320.24415,247.29301 C 318.08626,242.77877 316.00000,241.85643 316.00000,245.41667 C 316.00000,246.83750 316.45000,248.00000 317.00000,248.00000 C 317.55000,248.00000 318.00000,248.48032 318.00000,249.06739 C 318.00000,249.67970 317.14731,249.86414 316.00000,249.50000 C 313.92154,248.84032 313.20480,250.39050 315.05855,251.53618 C 315.66577,251.91147 315.84507,253.42889 315.47909,255.09520 C 315.08233,256.90164 315.24925,258.00000 315.92054,258.00000 C 316.51425,258.00000 317.00000,258.52707 317.00000,259.17126 C 317.00000,259.81545 317.78750,261.23415 318.75000,262.32393 C 320.45999,264.26005 320.42570,264.29099 317.25000,263.67767 C 312.74368,262.80737 313.15501,264.42317 317.75000,265.64179 C 321.89921,266.74218 322.05787,266.57294 313.82169,269.83199 C 311.28824,270.83447 311.16971,271.17869 311.63017,276.19590 C 311.89791,279.11315 312.54065,281.65000 313.05848,281.83333 C 313.57632,282.01667 314.00000,282.77877 314.00000,283.52690 C 314.00000,284.27502 315.72693,286.55294 317.83762,288.58894 C 322.61494,293.19721 326.72174,293.84639 332.07247,290.83911 C 335.91494,288.67952 342.00000,282.07165 342.00000,280.05864 C 342.00000,279.47639 342.43266,279.00000 342.96146,279.00000 C 343.49026,279.00000 344.39756,277.31250 344.97768,275.25000 C 345.55780,273.18750 346.69232,270.63720 347.49882,269.58267 C 348.30533,268.52814 349.48428,265.02689 350.11871,261.80212 C 350.75315,258.57735 351.43280,256.09947 351.62905,256.29572 C 351.82531,256.49197 352.44857,259.09230 353.01408,262.07423 C 353.83547,266.40542 353.76764,267.69746 352.67685,268.49796 C 351.01892,269.71465 349.49514,281.56995 350.88618,282.42966 C 351.41777,282.75820 351.68505,285.60843 351.48014,288.76350 C 351.27523,291.91858 351.34029,293.48278 351.62472,292.23952 C 352.03360,290.45222 352.75499,290.02576 355.07092,290.20223 C 357.20927,290.36516 358.00000,290.94096 358.00000,292.33515 C 358.00000,293.86047 358.28236,294.01055 359.40275,293.08071 C 360.47993,292.18673 360.92581,292.21634 361.32381,293.20826 C 361.62934,293.96974 361.87451,293.71321 361.92105,292.58333 C 361.96447,291.52917 362.30884,290.97551 362.68631,291.35298 C 363.60591,292.27258 367.24964,284.21295 366.47844,282.96511 C 366.14558,282.42653 366.54834,281.72681 367.37348,281.41018 C 368.25281,281.07275 368.62258,280.18004 368.26692,279.25320 C 367.89227,278.27688 368.06829,277.92417 368.72700,278.33128 C 369.40806,278.75219 369.74074,277.82494 369.64694,275.76721 C 369.56202,273.90439 369.99245,272.53454 370.66667,272.52189 C 372.20589,272.49301 373.67743,271.00000 372.16667,271.00000 C 371.52500,271.00000 371.00000,270.32500 371.00000,269.50000 C 371.00000,267.94320 372.51879,267.43756 373.25277,268.75000 C 373.79337,269.71665 373.20170,267.51362 372.31277,265.25000 C 371.68919,263.66208 371.79914,263.63892 373.50000,265.00000 C 375.20447,266.36397 375.31367,266.33786 374.70409,264.71215 C 374.26882,263.55129 374.58211,262.71385 375.59743,262.32424 C 376.56643,261.95240 376.96610,260.97839 376.64832,259.76318 C 376.36627,258.68463 376.40864,258.07531 376.74248,258.40915 C 377.42199,259.08866 381.00555,254.05986 380.95337,252.50000 C 380.93498,251.95000 380.24857,252.73750 379.42803,254.25000 C 377.21949,258.32097 376.91852,257.59542 378.67607,252.43728 C 379.68646,249.47196 380.68908,248.05045 381.53990,248.37694 C 382.25994,248.65324 383.56840,247.78146 384.44758,246.43965 C 385.32677,245.09784 385.58573,244.00000 385.02305,244.00000 C 384.46037,244.00000 384.00000,243.29844 384.00000,242.44098 C 384.00000,241.45992 384.46339,241.16036 385.25000,241.63294 C 385.97852,242.07062 385.87422,241.59798 385.00000,240.50000 C 383.79651,238.98848 383.78068,238.78529 384.91994,239.47209 C 385.98478,240.11402 386.18019,239.91195 385.70132,238.66404 C 385.35012,237.74882 385.49865,237.00000 386.03138,237.00000 C 386.56412,237.00000 387.00000,237.45000 387.00000,238.00000 C 387.00000,238.55000 387.45000,239.00000 388.00000,239.00000 C 389.69436,239.00000 389.11586,237.22806 386.50000,234.40550 C 384.60509,232.36086 384.00000,232.10635 384.00000,233.35398 C 384.00000,235.21357 382.46080,235.55460 381.44992,233.91897 C 381.08246,233.32441 379.70590,233.10798 378.39091,233.43802 C 376.26515,233.97156 376.00000,233.70330 376.00000,231.01905 C 376.00000,229.35857 376.49814,228.00000 377.10699,228.00000 C 377.71583,228.00000 377.98176,227.39484 377.69793,226.65521 C 377.41411,225.91558 378.04096,224.69123 379.09094,223.93445 C 381.58648,222.13577 381.50179,221.36955 378.50000,218.58758 C 377.12500,217.31327 376.00000,215.70466 376.00000,215.01288 C 376.00000,214.01215 375.68479,214.01671 374.45762,215.03517 C 373.25852,216.03034 372.64832,216.04832 371.71598,215.11598 C 370.78363,214.18363 370.84226,213.71552 371.97940,213.01273 C 374.18957,211.64677 372.62537,210.82303 369.89518,211.91513 C 368.57783,212.44208 368.15250,212.90175 368.95000,212.93661 C 370.10479,212.98710 370.14721,213.25279 369.15836,214.24164 C 368.16950,215.23050 367.75600,215.22324 367.12732,214.20601 C 366.32558,212.90877 364.00000,218.97682 364.00000,222.36602 C 364.00000,223.26471 363.51968,224.00000 362.93261,224.00000 C 362.34555,224.00000 362.09492,223.21250 362.37565,222.25000 C 362.65639,221.28750 363.19452,218.25000 363.57150,215.50000 C 364.43262,209.21833 364.78394,207.26751 365.43184,205.17011 C 366.17178,202.77473 368.19867,185.94771 368.08985,183.10357 C 368.03943,181.78553 368.46437,180.14540 369.03417,179.45883 C 369.60397,178.77226 370.00572,177.82565 369.92694,177.35526 C 369.51077,174.87038 371.29016,172.26312 373.08234,172.73178 C 374.29725,173.04949 375.71499,172.37044 376.97861,170.86561 L 378.96503,168.50000 L 379.59915,170.75000 C 380.38808,173.54934 382.99971,173.64913 385.29565,170.96768 C 386.63860,169.39922 386.79542,168.48625 385.98270,166.96768 C 385.40351,165.88546 384.49547,165.00000 383.96482,165.00000 C 383.43417,165.00000 383.00000,164.32500 383.00000,163.50000 C 383.00000,162.67500 382.32500,162.00000 381.50000,162.00000 C 380.67500,162.00000 380.00000,161.32500 380.00000,160.50000 C 380.00000,159.67500 379.32500,159.00000 378.50000,159.00000 C 377.67500,159.00000 377.00000,158.52344 377.00000,157.94098 C 377.00000,157.35852 376.59197,157.13414 376.09326,157.44236 C 375.59455,157.75058 375.41389,157.13328 375.69179,156.07058 C 375.98161,154.96234 376.77238,154.35916 377.54619,154.65610 C 378.49703,155.02097 378.86078,154.33631 378.77837,152.33690 C 378.46946,144.84271 378.96407,142.96416 381.50000,142.00000 C 382.87500,141.47723 384.01431,140.25086 384.03180,139.27475 C 384.06061,137.66746 384.17892,137.65140 385.28564,139.10448 C 387.17589,141.58630 390.89146,142.44642 391.61191,140.56895 C 392.26237,138.87388 395.00000,138.38269 395.00000,139.96104 C 395.00000,140.48962 394.09568,141.76460 392.99039,142.79432 L 390.98078,144.66656 L 393.27223,147.33328 C 396.00456,150.51309 397.57823,150.72086 398.29083,147.99587 C 398.64045,146.65892 399.34507,146.19519 400.40746,146.60286 C 402.27304,147.31875 402.51603,145.91603 400.82021,144.22021 C 399.91381,143.31381 399.92884,142.50147 400.88506,140.71477 C 401.56962,139.43566 402.02908,137.96407 401.90610,137.44456 C 401.69111,136.53643 402.11137,135.13409 404.06663,130.23527 C 404.56378,128.98967 406.11063,127.45109 407.50407,126.81619 C 409.72527,125.80414 410.38104,125.99088 412.82352,128.33092 C 416.19159,131.55774 416.38814,131.57313 418.96104,128.81144 C 420.92904,126.69904 421.00000,126.69208 421.00000,128.61144 C 421.00000,129.70515 420.53093,131.06907 419.95762,131.64238 C 419.23444,132.36556 419.38756,133.07675 420.45762,133.96483 C 421.30593,134.66886 422.00000,136.08979 422.00000,137.12244 C 422.00000,138.15510 422.45000,139.00000 423.00000,139.00000 C 423.55000,139.00000 424.00000,140.54671 424.00000,142.43713 C 424.00000,145.84470 424.03225,145.86930 427.75000,145.29802 C 433.43560,144.42436 434.73674,143.38886 435.32172,139.27216 C 436.88814,128.24857 438.21624,124.08833 440.68546,122.47044 C 443.06056,120.91421 443.26785,120.93740 444.65246,122.91421 C 446.18436,125.10130 449.44515,125.70678 450.50000,124.00000 C 451.90102,121.73310 453.09518,123.17732 452.56713,126.50000 C 452.26119,128.42500 452.22740,130.00000 452.49202,130.00000 C 453.57245,130.00000 456.09306,122.33976 455.70026,120.25000 C 455.46766,119.01250 455.72419,118.00000 456.27034,118.00000 C 456.85940,118.00000 457.03429,116.29228 456.70026,113.80197 C 456.36011,111.26595 456.47873,110.15657 456.99989,110.99982 C 457.65612,112.06162 457.98367,111.80986 458.36855,109.94785 C 458.64683,108.60153 459.13632,106.26250 459.45631,104.75000 C 460.42336,100.17900 461.61229,101.62284 462.92365,108.96073 C 464.48788,117.71367 463.72135,125.95844 459.89840,141.50000 C 456.68033,154.58248 454.85960,159.71601 448.90091,172.50729 C 444.97073,180.94406 430.88823,203.64541 422.46955,215.11531 C 418.91130,219.96320 415.98171,224.28298 415.95936,224.71483 C 415.93701,225.14667 414.58701,227.05800 412.95936,228.96223 C 411.33171,230.86645 410.00000,232.78357 410.00000,233.22248 C 410.00000,233.66140 408.50099,236.15340 406.66886,238.76026 C 404.83674,241.36712 401.84949,246.20000 400.03053,249.50000 C 398.21158,252.80000 395.66950,257.41250 394.38148,259.75000 C 393.09346,262.08750 392.32545,264.00000 392.67480,264.00000 C 393.02415,264.00000 392.60899,264.78750 391.75222,265.75000 C 389.96771,267.75474 382.46239,283.60845 379.08848,292.50000 C 377.83629,295.80000 375.50412,301.30303 373.90589,304.72896 C 372.30765,308.15489 371.00000,311.54226 371.00000,312.25645 C 371.00000,312.97065 370.31068,314.53913 369.46817,315.74198 C 368.62567,316.94482 367.32432,319.63245 366.57629,321.71449 C 365.82826,323.79652 363.57398,329.10000 361.56678,333.50000 C 356.22683,345.20570 356.37419,344.86833 353.05799,352.98106 C 351.37610,357.09565 350.00000,360.83698 350.00000,361.29514 C 350.00000,361.75330 348.94292,364.46182 347.65092,367.31408 C 345.23386,372.65009 343.54686,377.92821 343.83596,379.25000 C 343.92618,379.66250 342.08750,380.01989 339.75000,380.04420 L 335.50000,380.08839 L 339.50000,382.24601 C 341.70000,383.43271 344.06250,384.29309 344.75000,384.15798 C 345.43750,384.02287 346.00000,384.40861 346.00000,385.01518 C 346.00000,385.62175 345.60116,385.87154 345.11369,385.57026 C 344.62622,385.26899 343.99335,385.91743 343.70731,387.01125 C 343.42127,388.10506 343.59511,389.00000 344.09362,389.00000 C 344.59213,389.00000 345.00000,389.67500 345.00000,390.50000 C 345.00000,391.32500 345.71075,392.00000 346.57946,392.00000 C 347.81405,392.00000 348.01509,391.34519 347.50021,389.00098 C 346.96331,386.55647 347.12648,386.11130 348.38269,386.59336 C 349.73435,387.11204 350.89473,389.24749 351.59229,392.50000 C 351.71025,393.05000 352.16256,394.40000 352.59743,395.50000 C 353.35098,397.40613 353.30523,397.41787 351.62262,395.75000 C 349.66474,393.80928 348.00000,393.46463 348.00000,395.00000 C 348.00000,395.55000 348.45000,396.00000 349.00000,396.00000 C 349.55000,396.00000 350.00000,396.70156 350.00000,397.55902 C 350.00000,398.41648 350.45000,398.83992 351.00000,398.50000 C 352.48068,397.58489 352.21254,399.33674 350.53180,401.55887 C 349.72430,402.62649 349.04930,403.86406 349.03180,404.30902 C 348.96334,406.05071 351.32708,403.52752 354.69256,398.26644 C 357.43513,393.97911 357.92333,392.57065 356.88854,391.93111 C 356.15670,391.47881 355.94400,390.74678 356.41587,390.30437 C 356.88773,389.86197 357.47470,390.06250 357.72024,390.75000 C 358.46097,392.82404 359.68700,392.16986 361.00000,389.00000 C 361.68345,387.35000 362.86305,386.00000 363.62132,386.00000 C 365.31272,386.00000 365.42329,383.82329 363.81365,382.21365 C 362.89853,381.29853 362.21268,381.40254 360.81365,382.66864 C 359.81614,383.57137 359.00000,383.89024 359.00000,383.37723 C 359.00000,382.21258 362.67804,379.00000 364.01143,379.00000 C 364.55514,379.00000 365.00000,379.68912 365.00000,380.53138 C 365.00000,383.48265 367.91302,383.25682 370.56964,380.09960 C 372.00412,378.39482 373.61782,377.00000 374.15565,377.00000 C 374.69347,377.00000 376.79097,375.43613 378.81675,373.52473 C 380.84254,371.61333 383.73694,369.77770 385.24876,369.44555 C 388.50800,368.72948 391.47106,365.07106 389.99073,363.59073 C 388.52228,362.12228 388.79013,360.98223 390.45362,361.62058 C 391.25311,361.92737 392.84839,361.51917 393.99869,360.71347 C 395.68909,359.52947 395.80625,359.13963 394.60968,358.68046 C 393.79542,358.36800 392.91067,358.64957 392.64356,359.30618 C 392.28145,360.19629 392.13781,360.20157 392.07895,359.32692 C 391.97855,357.83518 397.76794,351.99496 399.32692,352.01531 C 400.00659,352.02418 399.87260,352.42728 399.00836,352.97367 C 397.82040,353.72472 397.76950,354.16950 398.75836,355.15836 C 399.70095,356.10095 400.00000,356.11098 400.00000,355.20000 C 400.00000,354.54000 400.45000,354.00000 401.00000,354.00000 C 401.55000,354.00000 402.00000,354.63925 402.00000,355.42054 C 402.00000,357.83191 407.76758,358.40856 412.14458,356.43480 C 415.01924,355.13851 415.72802,354.41485 414.78659,353.73730 C 413.88025,353.08500 414.04404,352.98801 415.34078,353.40912 C 416.40666,353.75526 418.35126,353.17401 419.96018,352.02836 C 421.48841,350.94016 423.81006,349.56928 425.11939,348.98197 C 429.09524,347.19856 432.56031,345.03175 431.50000,344.99197 C 430.95000,344.97134 432.07500,344.18482 434.00000,343.24415 C 436.97024,341.79271 454.38747,325.24298 457.51091,320.90424 C 458.06691,320.13191 461.10441,316.04604 464.26091,311.82454 C 467.41741,307.60304 470.00000,303.83519 470.00000,303.45153 C 470.00000,303.06788 471.94040,299.99684 474.31200,296.62699 C 476.68359,293.25715 479.93484,288.25000 481.53698,285.50000 C 483.13912,282.75000 485.23425,279.15000 486.19284,277.50000 C 491.81976,267.81444 503.00000,243.94745 503.00000,241.62094 C 503.00000,240.79434 503.45000,239.83992 504.00000,239.50000 C 505.45776,238.59906 505.22332,242.11559 503.50000,247.00000 C 501.57620,252.45262 501.60978,254.91052 503.66434,259.02897 C 507.80015,267.31939 506.14806,275.16740 495.56580,297.50000 C 487.77544,313.94062 472.43663,337.25376 462.09777,348.36737 C 442.68313,369.23687 432.65591,377.23840 412.06773,388.29038 C 402.55534,393.39674 389.30808,402.04231 385.68452,405.50888 C 382.57474,408.48392 382.51245,408.47650 381.11009,404.96338 C 380.17325,402.61643 380.12378,402.60355 380.06339,404.69098 C 379.96701,408.02211 378.57137,408.18784 377.17531,405.03392 C 374.73516,399.52124 367.81592,398.76172 361.77637,403.34359 C 357.90618,406.27969 350.23024,408.97121 335.92421,412.40847 C 319.45668,416.36508 299.99233,418.31093 265.84549,419.41423 C 264.38551,419.46140 263.39957,419.83750 263.65451,420.25000 C 263.90945,420.66250 261.50398,421.05924 258.30902,421.13164 C 253.29225,421.24533 252.97734,421.35659 256.00000,421.94744 C 258.39110,422.41484 256.72775,422.64420 250.75000,422.67137 C 245.93750,422.69324 242.00000,422.32613 242.00000,421.85557 C 242.00000,421.38501 241.30917,421.00000 240.46482,421.00000 C 239.21850,421.00000 239.13966,421.39244 240.04584,423.08565 C 241.43018,425.67232 241.30948,425.74532 237.00000,424.92749 z M 287.40163,410.25000 C 286.12103,404.71689 283.73702,397.95551 282.87993,397.42579 C 281.45243,396.54355 281.84400,398.46472 284.61586,405.94279 C 287.31044,413.21238 288.52014,415.08275 287.40163,410.25000 z M 282.00000,408.64922 C 282.00000,407.90630 281.46852,405.77385 280.81894,403.91046 L 279.63788,400.52247 L 278.86488,403.41282 C 278.07567,406.36382 279.27369,410.00000 281.03518,410.00000 C 281.56583,410.00000 282.00000,409.39215 282.00000,408.64922 z M 299.00000,406.48880 C 299.00000,405.66996 298.31088,405.00000 297.46862,405.00000 C 296.62635,405.00000 295.65931,404.27574 295.31962,403.39054 C 294.77314,401.96643 294.60383,401.95653 293.84941,403.30460 C 292.57109,405.58884 293.74045,407.54230 296.52406,407.77268 C 298.14171,407.90656 299.00000,407.46150 299.00000,406.48880 z M 348.80687,400.47354 C 348.49898,400.16565 347.93982,400.72065 347.56429,401.70687 C 347.02161,403.13207 347.13647,403.24693 348.12409,402.26667 C 348.80751,401.58833 349.11476,400.78143 348.80687,400.47354 z M 293.45729,398.93090 C 292.60006,397.54386 292.00000,397.80249 292.00000,399.55902 C 292.00000,400.41648 292.45734,400.83538 293.01631,400.48992 C 293.57528,400.14446 293.77373,399.44290 293.45729,398.93090 z M 376.88836,397.79140 C 374.59617,393.50841 370.00000,391.05740 370.00000,394.11803 C 370.00000,394.66803 370.38723,394.87871 370.86052,394.58620 C 371.33381,394.29370 373.02131,395.37964 374.61052,396.99941 C 378.09453,400.55040 378.42676,400.66592 376.88836,397.79140 z M 336.00000,394.80613 C 336.00000,394.28419 335.32500,394.53214 334.50000,395.35714 C 333.67500,396.18214 333.00000,397.16939 333.00000,397.55102 C 333.00000,397.93265 333.67500,397.68469 334.50000,397.00000 C 335.32500,396.31531 336.00000,395.32807 336.00000,394.80613 z M 311.00000,393.61431 C 311.00000,393.40218 310.32777,391.93968 309.50616,390.36431 C 308.02885,387.53169 307.33769,389.11046 308.60699,392.41821 C 309.13017,393.78160 311.00000,394.71620 311.00000,393.61431 z M 341.63837,391.50000 C 341.32179,390.67500 341.40288,390.00000 341.81858,390.00000 C 342.23428,390.00000 342.64353,388.98750 342.72803,387.75000 C 342.87506,385.59685 342.77599,385.62148 340.42655,388.32237 C 337.88781,391.24087 337.97787,393.00000 340.66601,393.00000 C 341.63114,393.00000 341.99725,392.43522 341.63837,391.50000 z M 180.34508,380.45687 C 180.01939,379.60815 179.53845,379.12821 179.27633,379.39034 C 179.01420,379.65247 179.09635,380.34688 179.45888,380.93347 C 180.44493,382.52893 181.02126,382.21898 180.34508,380.45687 z M 304.59376,378.84830 C 304.98524,378.21486 304.67195,377.20236 303.89754,376.59830 C 302.85752,375.78704 302.41488,372.36377 302.20389,363.50000 C 301.92327,351.71081 300.69620,339.40022 299.01425,331.50000 C 297.78496,325.72593 296.74488,314.27503 296.93951,308.65783 C 297.03178,305.99464 296.70730,304.06287 296.21843,304.36500 C 295.72956,304.66714 294.58770,303.35862 293.68097,301.45717 C 292.68816,299.37523 291.30476,298.00000 290.20327,298.00000 C 287.07588,298.00000 278.73079,308.39627 277.55271,313.76000 C 277.16132,315.54200 276.61970,317.00000 276.34912,317.00000 C 275.13028,317.00000 272.88546,313.71442 268.40095,305.36686 C 267.17972,303.09363 265.49613,300.39363 264.65964,299.36686 C 263.82314,298.34009 261.94252,296.03750 260.48048,294.25000 C 259.01843,292.46250 257.40760,291.00000 256.90085,291.00000 C 256.39410,291.00000 253.84660,289.51505 251.23974,287.70010 C 243.96149,282.63285 234.92002,279.66600 229.84750,280.68050 C 228.24211,281.00158 225.54707,282.55482 223.85854,284.13214 C 220.28243,287.47273 219.49700,287.62211 217.98089,285.25000 C 217.02625,283.75638 216.94372,283.86625 217.41754,286.00000 C 217.72287,287.37500 217.97884,289.28652 217.98635,290.24781 C 217.99691,291.60039 218.84214,291.20129 221.72411,288.48294 C 226.39474,284.07747 235.11428,281.44762 237.41667,283.75000 C 237.82917,284.16250 238.50053,284.50000 238.90858,284.50000 C 240.69995,284.50000 251.93834,292.28062 256.50000,296.67899 C 262.44278,302.40904 271.18096,312.00000 270.45873,312.00000 C 270.17818,312.00000 270.64675,313.35000 271.50000,315.00000 C 272.35325,316.65000 273.48980,318.00000 274.02568,318.00000 C 274.56156,318.00000 275.00000,318.70156 275.00000,319.55902 C 275.00000,320.41648 275.40161,320.86983 275.89246,320.56646 C 278.29410,319.08217 284.02530,350.08114 285.49412,372.50000 C 285.67429,375.25000 285.86182,377.81779 285.91085,378.20619 C 285.95988,378.59460 289.26250,379.06768 293.25000,379.25749 C 297.23750,379.44731 301.26094,379.69202 302.19098,379.80130 C 303.12102,379.91059 304.20227,379.48173 304.59376,378.84830 z M 178.00000,377.62244 C 178.00000,377.41479 177.21250,376.62729 176.25000,375.87244 C 174.66394,374.62857 174.62857,374.66394 175.87244,376.25000 C 177.17881,377.91575 178.00000,378.44548 178.00000,377.62244 z M 173.29668,371.59794 C 172.30851,370.27681 171.31526,369.37405 171.08946,369.59181 C 170.67804,369.98860 173.96511,374.00000 174.70167,374.00000 C 174.91711,374.00000 174.28486,372.91907 173.29668,371.59794 z M 167.68933,352.25000 C 167.43780,351.28750 167.23200,352.07500 167.23200,354.00000 C 167.23200,355.92500 167.43780,356.71250 167.68933,355.75000 C 167.94085,354.78750 167.94085,353.21250 167.68933,352.25000 z M 165.36163,353.50000 C 165.67821,352.67500 165.50135,352.00000 164.96862,352.00000 C 164.43588,352.00000 164.00000,352.67500 164.00000,353.50000 C 164.00000,354.32500 164.17686,355.00000 164.39301,355.00000 C 164.60917,355.00000 165.04504,354.32500 165.36163,353.50000 z M 188.53674,347.34415 C 188.17060,345.39246 187.63037,344.03629 187.33623,344.33043 C 187.04210,344.62457 187.13758,346.80805 187.54841,349.18262 C 187.95925,351.55718 188.49948,352.91335 188.74892,352.19633 C 188.99836,351.47931 188.90288,349.29583 188.53674,347.34415 z M 195.42314,350.75784 C 194.76726,348.69133 194.85290,348.63258 196.51641,350.00784 C 198.20913,351.40726 198.23620,351.36332 196.95186,349.30084 C 195.16738,346.43521 192.45983,348.12217 194.05620,351.10501 C 195.44779,353.70522 196.29066,353.49116 195.42314,350.75784 z M 164.55385,349.91287 C 164.92339,349.31494 164.83744,348.46196 164.36287,348.01735 C 163.18706,346.91578 158.71476,348.72946 159.49477,349.99154 C 160.32409,351.33341 163.70843,351.28078 164.55385,349.91287 z M 170.60417,348.27083 C 170.27187,347.93854 170.03553,348.52917 170.07895,349.58333 C 170.12693,350.74828 170.36389,350.98523 170.68311,350.18750 C 170.97198,349.46562 170.93646,348.60312 170.60417,348.27083 z M 159.81250,346.06250 C 160.06250,345.31250 159.68750,344.93750 158.93750,345.18750 C 158.21562,345.42813 157.42812,346.21562 157.18750,346.93750 C 156.93750,347.68750 157.31250,348.06250 158.06250,347.81250 C 158.78438,347.57187 159.57188,346.78438 159.81250,346.06250 z M 156.60713,343.47106 C 156.73319,342.61213 156.02409,342.00000 154.90304,342.00000 C 153.24827,342.00000 153.15166,342.26999 154.20367,343.95452 C 155.49891,346.02852 156.25407,345.87662 156.60713,343.47106 z M 174.87188,344.10034 C 175.62642,343.62237 176.07642,342.82301 175.87188,342.32399 C 175.66735,341.82496 174.71250,342.22292 173.75000,343.20833 C 171.91381,345.08824 172.53396,345.58132 174.87188,344.10034 z M 207.45305,335.49355 C 205.97478,332.47210 204.36811,330.00000 203.88265,330.00000 C 203.39719,330.00000 203.00000,329.32015 203.00000,328.48923 C 203.00000,327.65831 200.90823,323.04581 198.35163,318.23923 C 195.79503,313.43265 191.06567,304.55000 187.84196,298.50000 C 178.37713,280.73722 167.11798,258.41297 160.94945,245.17847 C 157.79080,238.40162 154.95407,233.26530 154.64560,233.76441 C 151.44264,238.94691 156.88434,253.34735 165.66941,262.93686 C 169.57513,267.20021 181.07950,288.33283 179.89369,289.06571 C 179.15157,289.52436 179.27544,290.17844 180.28259,291.11927 C 181.36541,292.13077 181.51524,293.14482 180.84307,294.91275 C 180.21751,296.55811 180.30242,297.67151 181.11002,298.41284 C 181.99517,299.22537 182.14190,299.06601 181.69085,297.78203 C 181.35892,296.83714 181.48451,295.81859 181.96994,295.51858 C 182.45536,295.21857 182.65930,296.53101 182.42313,298.43511 C 182.13493,300.75875 182.46463,302.16064 183.42583,302.69856 C 184.21349,303.13935 184.84829,303.72500 184.83650,304.00000 C 184.76260,305.72373 187.56428,310.00000 188.76750,310.00000 C 189.66393,310.00000 189.98752,310.59015 189.61844,311.55194 C 189.22935,312.56589 189.42450,312.85568 190.18139,312.38789 C 190.97328,311.89848 191.12063,312.24325 190.64705,313.47740 C 190.10549,314.88868 190.24064,315.04518 191.26605,314.19416 C 192.28824,313.34582 193.09440,314.19334 194.91712,318.03252 C 196.20369,320.74241 197.69688,322.68734 198.23531,322.35457 C 198.82811,321.98820 198.94899,322.58537 198.54174,323.86848 C 197.99542,325.58980 198.19312,325.86312 199.59535,325.32504 C 200.98636,324.79126 201.21131,325.08396 200.75400,326.83271 C 200.39338,328.21170 200.57022,328.76562 201.23910,328.35223 C 201.93723,327.92076 202.05709,328.63638 201.59505,330.47733 C 201.01997,332.76860 201.17867,333.14541 202.50448,332.63665 C 203.66684,332.19061 204.50969,332.97561 205.55528,335.47805 C 206.34987,337.37979 207.00000,339.87677 207.00000,341.02690 C 207.00000,342.17702 207.45000,342.83992 208.00000,342.50000 C 208.55000,342.16008 209.06128,342.69602 209.13618,343.69098 C 209.23320,344.97972 209.39724,344.85104 209.70658,343.24355 C 209.94540,342.00251 208.93131,338.51501 207.45305,335.49355 z M 171.00000,342.44098 C 171.00000,341.58352 170.55000,341.16008 170.00000,341.50000 C 169.45000,341.83992 169.00000,342.54148 169.00000,343.05902 C 169.00000,343.57656 169.45000,344.00000 170.00000,344.00000 C 170.55000,344.00000 171.00000,343.29844 171.00000,342.44098 z M 184.39301,342.41821 C 185.31956,340.00365 185.16180,339.84304 183.00000,341.00000 C 181.90000,341.58870 181.00000,342.50453 181.00000,343.03518 C 181.00000,344.62286 183.73806,344.12499 184.39301,342.41821 z M 188.00000,342.00000 C 188.00000,341.45000 187.55000,341.00000 187.00000,341.00000 C 186.45000,341.00000 186.00000,341.45000 186.00000,342.00000 C 186.00000,342.55000 186.45000,343.00000 187.00000,343.00000 C 187.55000,343.00000 188.00000,342.55000 188.00000,342.00000 z M 189.82134,339.08553 C 189.09687,337.92546 187.89058,337.21175 187.14072,337.49950 C 186.23927,337.84542 185.97382,337.51061 186.35727,336.51134 C 186.67625,335.68010 186.45321,335.00000 185.86163,335.00000 C 185.27004,335.00000 185.06027,334.21250 185.39546,333.25000 C 185.93284,331.70693 185.83432,331.71986 184.56226,333.35934 C 183.41850,334.83346 183.36577,335.61283 184.30775,337.12118 C 184.96123,338.16756 186.05245,338.81012 186.73269,338.54908 C 187.41293,338.28805 188.46281,338.99626 189.06577,340.12288 C 189.66872,341.24951 190.38176,341.95157 190.65031,341.68303 C 190.91886,341.41448 190.54582,340.24561 189.82134,339.08553 z M 178.72976,337.31071 C 178.92488,336.72535 178.39051,335.98009 177.54226,335.65459 C 176.46137,335.23981 176.00000,335.67661 176.00000,337.11472 C 176.00000,339.17208 178.06001,339.31998 178.72976,337.31071 z M 205.28567,336.98442 C 204.65595,334.57636 203.00000,333.31326 203.00000,335.24098 C 203.00000,336.35581 204.83340,339.00000 205.60638,339.00000 C 205.71989,339.00000 205.57557,338.09299 205.28567,336.98442 z M 190.60699,325.41821 C 190.27314,324.54823 190.00000,323.39667 190.00000,322.85920 C 190.00000,322.32172 189.47353,322.20734 188.83006,322.60503 C 188.04951,323.08744 187.86726,322.78829 188.28250,321.70621 C 188.65136,320.74497 187.49859,317.74897 185.45244,314.35099 C 183.55360,311.19766 182.00000,308.22713 182.00000,307.74981 C 182.00000,307.27250 181.58240,307.14006 181.07200,307.45550 C 180.56159,307.77095 179.85627,307.12251 179.50461,306.01452 C 179.15295,304.90653 178.41522,304.00000 177.86522,304.00000 C 177.31259,304.00000 177.14042,302.99342 177.48036,301.75000 C 177.97568,299.93825 177.89562,299.81607 177.06929,301.12272 C 176.28238,302.36705 177.01230,304.52893 180.19951,310.39377 C 182.99772,315.54280 184.61956,317.62675 185.16266,316.77105 C 185.68153,315.95353 185.97484,316.51539 185.98469,318.34571 C 186.00093,321.36466 188.82561,327.00000 190.32260,327.00000 C 190.81286,327.00000 190.94083,326.28820 190.60699,325.41821 z M 182.02981,319.05569 C 181.45750,317.98632 180.49499,316.80592 179.89090,316.43257 C 179.28680,316.05922 179.56598,316.93416 180.51128,318.37688 C 182.51290,321.43174 183.54940,321.89507 182.02981,319.05569 z M 352.18333,314.78333 C 351.46577,314.06577 351.00000,314.00673 351.00000,314.63333 C 351.00000,315.96811 352.18261,317.15072 352.85000,316.48333 C 353.13417,316.19917 352.83417,315.43417 352.18333,314.78333 z M 354.99492,307.51816 C 355.68508,305.05315 356.68140,303.30310 357.20897,303.62915 C 357.74738,303.96191 358.02162,303.18621 357.83410,301.86099 C 357.62555,300.38721 356.82988,299.50000 355.71672,299.50000 C 354.73592,299.50000 353.50531,298.82500 352.98203,298.00000 C 352.17069,296.72083 352.02837,296.75764 352.01531,298.25000 C 352.00689,299.21250 352.48032,300.00000 353.06739,300.00000 C 353.67970,300.00000 353.86414,300.85269 353.50000,302.00000 C 353.12168,303.19199 353.32030,304.00000 353.99163,304.00000 C 354.61115,304.00000 354.81569,304.48921 354.44615,305.08713 C 353.96233,305.86998 353.46998,305.86998 352.68713,305.08713 C 352.08921,304.48921 350.94615,304.00000 350.14699,304.00000 C 349.15434,304.00000 349.41520,304.62551 350.97035,305.97428 C 352.46391,307.26965 353.06455,308.64517 352.71698,309.97428 C 352.42562,311.08843 352.53663,312.00000 352.96366,312.00000 C 353.39069,312.00000 354.30475,309.98317 354.99492,307.51816 z M 211.00000,308.94098 C 211.00000,308.35852 210.55000,308.16008 210.00000,308.50000 C 209.45000,308.83992 209.00000,309.31648 209.00000,309.55902 C 209.00000,309.80156 209.45000,310.00000 210.00000,310.00000 C 210.55000,310.00000 211.00000,309.52344 211.00000,308.94098 z M 209.03141,303.51941 C 209.52005,303.82141 209.42873,302.65971 208.82850,300.93787 C 208.05826,298.72837 207.49952,298.19177 206.92948,299.11411 C 206.41077,299.95340 206.13943,299.36177 206.17109,297.46048 C 206.19820,295.83222 205.72080,293.23321 205.11019,291.68490 C 204.49959,290.13660 204.00000,287.54910 204.00000,285.93490 C 204.00000,284.32071 203.55000,283.00000 203.00000,283.00000 C 202.45000,283.00000 202.00000,283.52500 202.00000,284.16667 C 202.00000,284.80833 201.71087,285.04421 201.35750,284.69083 C 201.00412,284.33746 201.26035,283.39122 201.92689,282.58809 C 202.83297,281.49634 202.85826,280.60367 202.02712,279.05067 C 201.30968,277.71012 201.24742,276.38031 201.85155,275.30078 C 202.96942,273.30325 201.22206,268.74472 199.69926,269.68587 C 199.14471,270.02860 198.98695,269.83014 199.34868,269.24485 C 200.04567,268.11709 198.65160,264.57309 192.27226,251.25519 C 190.10014,246.72054 187.95314,243.34554 187.50115,243.75519 C 187.04916,244.16484 186.97796,243.97811 187.34292,243.34024 C 188.26529,241.72816 187.02057,238.86925 185.74071,239.66025 C 185.15373,240.02302 184.98511,239.83311 185.35820,239.22944 C 186.12249,237.99279 184.10378,233.00000 182.83948,233.00000 C 182.37777,233.00000 182.08959,232.66250 182.19908,232.25000 C 182.30857,231.83750 181.19426,228.92252 179.72282,225.77227 C 177.77467,221.60139 176.63332,220.20348 175.52374,220.62926 C 174.68568,220.95086 174.00000,220.72996 174.00000,220.13837 C 174.00000,219.54679 173.30557,219.32925 172.45683,219.65494 C 171.09112,220.17901 171.10894,220.46290 172.61182,222.12356 C 173.54580,223.15560 173.98309,224.00000 173.58356,224.00000 C 173.18403,224.00000 173.53214,224.67500 174.35714,225.50000 C 176.37784,227.52070 177.00000,227.38910 177.00000,224.94098 C 177.00000,223.80852 176.55000,223.16008 176.00000,223.50000 C 175.45000,223.83992 175.00000,223.60398 175.00000,222.97568 C 175.00000,220.86172 177.49645,222.63236 177.84081,224.99057 C 178.02826,226.27422 178.81576,227.95861 179.59081,228.73367 C 181.17853,230.32139 181.51702,232.43757 180.03694,231.52283 C 179.50726,231.19547 179.71576,233.06041 180.50027,235.66715 C 182.27835,241.57526 181.89345,242.13652 179.41069,237.25598 C 178.35981,235.19019 177.16250,233.35000 176.75000,233.16667 C 176.33750,232.98333 176.00000,232.22798 176.00000,231.48810 C 176.00000,230.74821 175.43225,229.54821 174.73834,228.82143 C 174.04442,228.09464 172.92907,226.26250 172.25978,224.75000 C 171.59048,223.23750 170.40752,222.00000 169.63097,222.00000 C 168.64277,222.00000 170.10312,226.27629 174.49736,236.25000 C 184.98055,260.04395 185.93476,262.00000 187.05882,262.00000 C 188.84262,262.00000 191.27340,264.98515 191.55133,267.51710 C 191.69434,268.81985 192.08613,270.33035 192.42198,270.87377 C 192.75784,271.41719 192.57528,272.14446 192.01631,272.48992 C 191.45734,272.83538 191.00000,273.56803 191.00000,274.11803 C 191.00000,274.66803 191.41338,274.86255 191.91863,274.55029 C 192.42387,274.23803 193.13463,275.33647 193.49808,276.99127 C 193.86154,278.64607 194.59971,280.00000 195.13847,280.00000 C 195.67723,280.00000 195.86076,280.41628 195.54631,280.92506 C 195.23187,281.43385 195.50836,283.02162 196.16074,284.45344 C 197.04884,286.40261 197.57828,286.73553 198.26778,285.77838 C 198.91813,284.87555 199.01827,285.02716 198.60865,286.29447 C 198.26088,287.37042 199.92481,291.85644 202.76432,297.49828 C 205.88310,303.69499 207.60977,306.23547 207.82149,304.93898 C 207.99832,303.85623 208.54278,303.21742 209.03141,303.51941 z M 198.00000,282.00000 C 198.58870,280.90000 199.29537,280.00000 199.57037,280.00000 C 199.84537,280.00000 199.58870,280.90000 199.00000,282.00000 C 198.41130,283.10000 197.70463,284.00000 197.42963,284.00000 C 197.15463,284.00000 197.41130,283.10000 198.00000,282.00000 z M 200.45888,272.93347 C 200.09635,272.34688 200.01420,271.65247 200.27633,271.39034 C 200.53845,271.12821 201.01939,271.60815 201.34508,272.45687 C 202.02126,274.21898 201.44493,274.52893 200.45888,272.93347 z M 186.66045,258.55752 C 186.28583,257.58129 186.43059,257.14808 187.01145,257.50708 C 187.55515,257.84310 188.00000,257.56648 188.00000,256.89235 C 188.00000,256.21822 188.26625,255.93292 188.59166,256.25833 C 188.91708,256.58375 188.75913,257.60800 188.24066,258.53446 C 187.36541,260.09844 187.25238,260.10009 186.66045,258.55752 z M 183.87244,243.25000 C 182.62857,241.66394 182.66394,241.62857 184.25000,242.87244 C 185.91575,244.17881 186.44548,245.00000 185.62244,245.00000 C 185.41479,245.00000 184.62729,244.21250 183.87244,243.25000 z M 216.06997,295.55000 C 216.58149,295.02750 216.98588,293.90250 216.96862,293.05000 C 216.95136,292.19750 215.60136,294.18854 213.96862,297.47454 C 212.33588,300.76054 211.02454,304.13554 211.05453,304.97454 C 211.08452,305.81354 212.01601,304.25000 213.12450,301.50000 C 214.23299,298.75000 215.55845,296.07250 216.06997,295.55000 z M 350.60417,299.27083 C 350.27188,298.93854 350.03553,299.52917 350.07895,300.58333 C 350.12693,301.74828 350.36389,301.98523 350.68311,301.18750 C 350.97198,300.46562 350.93646,299.60312 350.60417,299.27083 z M 165.12409,298.73333 C 164.13647,297.75307 164.02161,297.86793 164.56429,299.29313 C 164.93982,300.27935 165.49898,300.83435 165.80687,300.52646 C 166.11476,300.21857 165.80751,299.41167 165.12409,298.73333 z M 175.60417,298.27083 C 175.27187,297.93854 175.03553,298.52917 175.07895,299.58333 C 175.12693,300.74828 175.36389,300.98523 175.68311,300.18750 C 175.97198,299.46562 175.93646,298.60312 175.60417,298.27083 z M 163.00000,298.00000 C 163.00000,297.45000 162.55000,297.00000 162.00000,297.00000 C 161.45000,297.00000 161.00000,297.45000 161.00000,298.00000 C 161.00000,298.55000 161.45000,299.00000 162.00000,299.00000 C 162.55000,299.00000 163.00000,298.55000 163.00000,298.00000 z M 173.60417,295.27083 C 173.27187,294.93854 173.03553,295.52917 173.07895,296.58333 C 173.12693,297.74828 173.36389,297.98523 173.68311,297.18750 C 173.97198,296.46562 173.93646,295.60312 173.60417,295.27083 z M 360.38156,296.44806 C 360.72305,295.55814 360.55541,295.15674 359.98855,295.50708 C 359.44485,295.84310 359.00000,296.54148 359.00000,297.05902 C 359.00000,298.49745 359.71677,298.18048 360.38156,296.44806 z M 178.57872,292.22619 C 176.85678,290.57690 176.83547,290.59821 178.10039,292.70452 C 178.82854,293.91701 179.63954,294.69379 179.90262,294.43071 C 180.16570,294.16763 179.56995,293.17560 178.57872,292.22619 z M 194.13352,284.25000 C 188.44723,272.90002 178.06083,250.20388 172.96820,238.00000 C 169.89015,230.62381 168.81606,229.62067 170.39982,235.60128 C 171.94902,241.45140 176.86318,252.83509 182.03647,262.55771 C 184.10190,266.43944 188.54211,275.10194 191.90361,281.80771 C 195.26510,288.51347 198.24105,294.00000 198.51683,294.00000 C 198.79260,294.00000 196.82011,289.61250 194.13352,284.25000 z M 150.50000,287.00000 C 150.16008,286.45000 149.45852,286.00000 148.94098,286.00000 C 148.42344,286.00000 148.00000,286.45000 148.00000,287.00000 C 148.00000,287.55000 148.70156,288.00000 149.55902,288.00000 C 150.41648,288.00000 150.83992,287.55000 150.50000,287.00000 z M 311.50000,286.00000 C 311.16008,285.45000 310.68352,285.00000 310.44098,285.00000 C 310.19844,285.00000 310.00000,285.45000 310.00000,286.00000 C 310.00000,286.55000 310.47656,287.00000 311.05902,287.00000 C 311.64148,287.00000 311.83992,286.55000 311.50000,286.00000 z M 311.00000,280.00000 C 311.00000,279.45000 310.55000,279.00000 310.00000,279.00000 C 309.45000,279.00000 309.00000,279.45000 309.00000,280.00000 C 309.00000,280.55000 309.45000,281.00000 310.00000,281.00000 C 310.55000,281.00000 311.00000,280.55000 311.00000,280.00000 z M 130.00000,270.05902 C 130.00000,269.54148 129.55000,268.83992 129.00000,268.50000 C 128.45000,268.16008 128.00000,268.58352 128.00000,269.44098 C 128.00000,270.29844 128.45000,271.00000 129.00000,271.00000 C 129.55000,271.00000 130.00000,270.57656 130.00000,270.05902 z M 191.00000,267.00000 C 191.00000,266.45000 190.52344,266.00000 189.94098,266.00000 C 189.35852,266.00000 189.16008,266.45000 189.50000,267.00000 C 189.83992,267.55000 190.31648,268.00000 190.55902,268.00000 C 190.80156,268.00000 191.00000,267.55000 191.00000,267.00000 z M 202.70522,262.66472 C 202.04235,261.47412 201.27500,260.27500 201.00000,260.00000 C 200.72500,259.72500 200.36298,258.69164 200.19552,257.70363 C 199.63496,254.39650 186.44034,227.89299 185.71538,228.61795 C 185.32192,229.01141 185.00000,228.77619 185.00000,228.09524 C 185.00000,226.80716 182.14163,223.48432 181.58984,224.13095 C 181.41664,224.33393 183.04983,228.32500 185.21916,233.00000 C 196.01367,256.26263 199.37409,262.88684 200.14032,262.41328 C 200.60054,262.12884 200.70910,262.59450 200.38156,263.44806 C 200.05317,264.30382 200.30908,265.00000 200.95203,265.00000 C 201.61869,265.00000 201.79643,265.53532 201.36706,266.25000 C 200.83099,267.14229 201.08745,267.11789 202.26326,266.16472 C 203.62302,265.06244 203.70014,264.45172 202.70522,262.66472 z M 197.56429,257.29313 C 197.02161,255.86793 197.13647,255.75307 198.12409,256.73333 C 198.80751,257.41167 199.11476,258.21857 198.80687,258.52646 C 198.49898,258.83435 197.93982,258.27935 197.56429,257.29313 z M 203.73038,255.92925 C 203.88605,253.86256 202.37929,250.72929 197.55371,243.08509 C 194.65546,238.49396 194.49504,237.89901 196.25000,238.25000 C 198.22477,238.64495 197.75191,236.95232 194.01082,230.23479 C 191.82009,226.30111 190.03311,224.15705 189.20888,224.47334 C 188.48686,224.75040 188.15184,224.56334 188.46437,224.05764 C 188.77691,223.55195 188.60392,222.87324 188.07994,222.54941 C 187.55597,222.22557 187.19065,221.11912 187.26813,220.09063 C 187.41051,218.20048 182.91244,210.75423 182.11187,211.55479 C 181.87375,211.79291 182.42617,212.81343 183.33946,213.82261 C 185.37412,216.07088 185.42170,216.66667 183.56658,216.66667 C 182.02183,216.66667 180.55521,212.74587 180.88580,209.50000 C 181.05816,207.80774 180.91630,207.73080 179.96387,209.00000 C 179.06993,210.19124 178.96172,209.93395 179.43817,207.75000 C 179.76813,206.23750 179.69203,204.96557 179.26905,204.92349 C 178.84607,204.88141 177.76375,204.70375 176.86388,204.52869 C 175.40694,204.24525 175.37889,204.50004 176.60772,206.85520 C 178.38173,210.25522 178.35657,211.07406 176.50000,210.36163 C 175.67500,210.04504 175.00000,210.28417 175.00000,210.89301 C 175.00000,211.50186 175.47656,212.00000 176.05902,212.00000 C 176.64148,212.00000 176.90669,212.34196 176.64839,212.75991 C 175.65250,214.37129 178.94001,219.94684 181.22403,220.52009 C 183.78492,221.16283 193.03837,233.95302 193.47774,237.45726 C 193.80193,240.04289 202.06415,258.00000 202.92963,258.00000 C 203.28425,258.00000 203.64458,257.06816 203.73038,255.92925 z M 192.45888,230.93347 C 192.09635,230.34688 192.01420,229.65247 192.27633,229.39034 C 192.53845,229.12821 193.01939,229.60815 193.34508,230.45687 C 194.02126,232.21898 193.44493,232.52893 192.45888,230.93347 z M 185.15626,221.44361 C 184.46052,219.91662 183.52831,219.17349 182.84124,219.59812 C 182.12437,220.04117 181.96362,219.86788 182.41459,219.13820 C 182.81257,218.49425 183.55710,218.22627 184.06910,218.54271 C 184.58109,218.85914 185.00000,218.56648 185.00000,217.89235 C 185.00000,215.56996 186.11921,217.79120 186.51171,220.89256 C 186.98960,224.66862 186.68255,224.79345 185.15626,221.44361 z M 179.00000,218.05902 C 179.00000,217.54148 179.44485,216.84310 179.98855,216.50708 C 180.55541,216.15674 180.72305,216.55814 180.38156,217.44806 C 179.71677,219.18048 179.00000,219.49745 179.00000,218.05902 z M 211.60417,254.27083 C 211.27187,253.93854 211.03553,254.52917 211.07895,255.58333 C 211.12693,256.74828 211.36389,256.98523 211.68311,256.18750 C 211.97198,255.46562 211.93646,254.60313 211.60417,254.27083 z M 163.87339,243.75000 C 162.71980,240.86250 160.76700,235.84928 159.53382,232.60952 C 158.30064,229.36976 156.98673,227.21245 156.61403,227.81550 C 156.24132,228.41856 156.57901,230.39427 157.36444,232.20598 C 163.64176,246.68542 168.46036,255.23150 163.87339,243.75000 z M 151.00000,244.57556 C 151.00000,243.24212 149.70300,238.85462 148.11777,234.82556 C 146.53254,230.79650 145.02400,226.82500 144.76546,226.00000 C 144.50692,225.17500 143.97864,226.32804 143.59151,228.56231 C 142.64001,234.05368 147.22581,247.00000 150.12244,247.00000 C 150.60510,247.00000 151.00000,245.90900 151.00000,244.57556 z M 201.85612,244.75000 C 201.18829,243.51250 200.09473,241.45399 199.42598,240.17553 C 198.75724,238.89707 197.95772,238.25939 197.64927,238.75848 C 197.34082,239.25756 198.20977,241.31607 199.58028,243.33295 C 202.33529,247.38731 203.75717,248.27264 201.85612,244.75000 z M 203.24377,241.33564 C 202.55284,241.05709 202.25408,240.39790 202.57986,239.87078 C 203.29633,238.71151 201.20141,235.98741 199.62756,236.03180 C 199.00740,236.04930 199.30436,236.67373 200.28746,237.41943 C 201.27056,238.16514 202.00477,239.16333 201.91904,239.63763 C 201.61584,241.31499 202.01459,241.99908 203.25000,241.92105 C 204.24336,241.85831 204.24208,241.73812 203.24377,241.33564 z M 331.00000,238.94098 C 331.00000,238.35852 330.55000,238.16008 330.00000,238.50000 C 329.45000,238.83992 329.00000,239.31648 329.00000,239.55902 C 329.00000,239.80156 329.45000,240.00000 330.00000,240.00000 C 330.55000,240.00000 331.00000,239.52344 331.00000,238.94098 z M 152.22978,226.00000 C 151.39569,224.07500 150.21766,221.03750 149.61193,219.25000 C 148.30105,215.38155 147.26076,215.11286 146.42876,218.42783 C 145.78052,221.01062 146.08187,222.33386 149.29046,230.99352 L 151.32592,236.48704 L 152.53612,232.99352 C 153.53196,230.11879 153.47770,228.88006 152.22978,226.00000 z M 199.60783,232.46629 C 199.72696,231.65459 199.47974,231.20351 199.05844,231.46388 C 198.63715,231.72425 197.75980,230.76825 197.10879,229.33942 C 196.45777,227.91059 195.70012,226.96655 195.42512,227.24155 C 194.70506,227.96161 197.15004,233.00000 198.21953,233.00000 C 198.71371,233.00000 198.79433,233.56250 198.39869,234.25000 C 198.00305,234.93750 198.06452,235.14948 198.53529,234.72106 C 199.00605,234.29264 199.48869,233.27799 199.60783,232.46629 z M 387.26797,231.00000 C 386.32612,229.90000 385.41469,229.00000 385.24258,229.00000 C 385.07046,229.00000 385.41130,229.90000 386.00000,231.00000 C 386.58870,232.10000 387.50013,233.00000 388.02540,233.00000 C 388.55066,233.00000 388.20982,232.10000 387.26797,231.00000 z M 383.00000,230.44098 C 383.00000,229.58352 382.55000,229.16008 382.00000,229.50000 C 381.45000,229.83992 381.00000,230.54148 381.00000,231.05902 C 381.00000,231.57656 381.45000,232.00000 382.00000,232.00000 C 382.55000,232.00000 383.00000,231.29844 383.00000,230.44098 z M 382.00000,226.50000 C 382.00000,225.67500 381.55000,225.00000 381.00000,225.00000 C 380.45000,225.00000 380.00000,225.67500 380.00000,226.50000 C 380.00000,227.32500 380.45000,228.00000 381.00000,228.00000 C 381.55000,228.00000 382.00000,227.32500 382.00000,226.50000 z M 388.45729,225.93090 C 387.60006,224.54386 387.00000,224.80249 387.00000,226.55902 C 387.00000,227.41648 387.45734,227.83538 388.01631,227.48992 C 388.57528,227.14446 388.77373,226.44290 388.45729,225.93090 z M 143.00000,221.00000 C 143.00000,219.90000 142.55000,219.00000 142.00000,219.00000 C 141.45000,219.00000 141.00000,219.90000 141.00000,221.00000 C 141.00000,222.10000 141.45000,223.00000 142.00000,223.00000 C 142.55000,223.00000 143.00000,222.10000 143.00000,221.00000 z M 144.50000,213.00000 C 144.12456,211.81710 143.59239,211.07428 143.31739,211.34928 C 143.04239,211.62428 143.12456,212.81710 143.50000,214.00000 C 143.87544,215.18290 144.40761,215.92572 144.68261,215.65072 C 144.95761,215.37572 144.87544,214.18290 144.50000,213.00000 z M 381.00000,215.05902 C 381.00000,214.54148 380.55000,213.83992 380.00000,213.50000 C 379.45000,213.16008 379.00000,213.58352 379.00000,214.44098 C 379.00000,215.29844 379.45000,216.00000 380.00000,216.00000 C 380.55000,216.00000 381.00000,215.57656 381.00000,215.05902 z M 184.50000,209.00000 C 184.16008,208.45000 184.43352,208.00000 185.10765,208.00000 C 185.78178,208.00000 186.06327,207.72994 185.73320,207.39986 C 184.83499,206.50165 182.87773,207.99315 183.54271,209.06910 C 183.85914,209.58109 184.34303,210.00000 184.61803,210.00000 C 184.89303,210.00000 184.83992,209.55000 184.50000,209.00000 z M 202.37170,208.20759 C 202.64106,207.77176 201.88579,207.34168 200.69333,207.25185 C 198.97575,207.12247 198.83429,207.28395 200.01261,208.02895 C 201.83504,209.18121 201.77288,209.17650 202.37170,208.20759 z M 345.78776,205.86329 C 345.53811,205.11434 345.08482,205.56764 344.73121,206.91984 C 344.29624,208.58319 344.42638,208.97362 345.16845,208.23155 C 345.74955,207.65045 346.02824,206.58473 345.78776,205.86329 z M 368.00000,207.94098 C 368.00000,207.35852 367.55000,207.16008 367.00000,207.50000 C 366.45000,207.83992 366.00000,208.31648 366.00000,208.55902 C 366.00000,208.80156 366.45000,209.00000 367.00000,209.00000 C 367.55000,209.00000 368.00000,208.52344 368.00000,207.94098 z M 169.72356,203.01969 C 169.80561,201.93052 169.45652,200.78215 168.94782,200.46775 C 168.43310,200.14964 168.31494,200.65715 168.68139,201.61211 C 169.17933,202.90971 168.99368,203.11938 167.91994,202.47209 C 166.70790,201.74141 166.70094,201.86381 167.87244,203.30804 C 169.57728,205.40977 169.54312,205.41509 169.72356,203.01969 z M 174.49689,199.40112 C 173.69070,198.79674 173.36159,197.94829 173.76554,197.51567 C 174.16949,197.08305 173.54667,197.22421 172.38148,197.82936 C 171.21630,198.43451 169.90665,198.60797 169.47116,198.21482 C 169.03566,197.82167 168.99091,198.04285 169.37170,198.70633 C 169.75249,199.36981 170.83714,199.63561 171.78203,199.29700 C 172.72691,198.95839 173.18955,199.02599 172.81011,199.44723 C 172.43067,199.86846 172.65567,200.79036 173.31011,201.49589 C 174.18262,202.43651 174.69507,202.47477 175.23134,201.63934 C 175.63358,201.01270 175.30308,200.00551 174.49689,199.40112 z M 166.52083,199.43750 C 166.60104,198.92188 166.47823,198.84030 166.24792,199.25623 C 166.01761,199.67216 165.41761,199.75810 164.91459,199.44721 C 164.41157,199.13633 164.00000,199.39602 164.00000,200.02432 C 164.00000,201.35921 166.30538,200.82255 166.52083,199.43750 z M 347.34508,199.45687 C 347.01939,198.60815 346.53845,198.12821 346.27633,198.39034 C 346.01420,198.65247 346.09635,199.34688 346.45888,199.93347 C 347.44493,201.52893 348.02126,201.21898 347.34508,199.45687 z M 168.68843,196.26660 C 170.87288,195.79125 170.87219,195.78605 168.31263,193.41393 C 165.52164,190.82733 164.29844,191.04534 163.04734,194.35233 C 162.01316,197.08593 162.74083,198.33136 164.85115,197.43958 C 165.75802,197.05635 167.48479,196.52851 168.68843,196.26660 z M 164.27083,194.39583 C 164.60313,194.06354 165.46562,194.02802 166.18750,194.31689 C 166.98523,194.63611 166.74828,194.87307 165.58333,194.92105 C 164.52917,194.96447 163.93854,194.72813 164.27083,194.39583 z M 402.26497,189.15771 C 401.94469,186.26625 407.15534,183.57785 413.16482,183.53402 C 416.83275,183.50727 417.60368,183.77229 416.77231,184.77417 C 416.19079,185.47496 416.03490,186.36823 416.42589,186.75923 C 417.21741,187.55074 420.94287,183.14195 420.97776,181.37244 C 421.02006,179.22766 417.88773,177.67625 413.70226,177.76897 C 410.84490,177.83227 410.11669,177.62006 411.42689,177.10590 C 413.08844,176.45385 413.13293,176.26499 411.75000,175.73431 C 410.86792,175.39582 409.59920,175.77801 408.93061,176.58361 C 408.26202,177.38921 407.44162,177.77496 407.10750,177.44083 C 406.53260,176.86593 406.42500,176.48266 406.12500,173.94098 C 406.05625,173.35852 405.53807,173.16746 404.97348,173.51639 C 404.40889,173.86532 404.01221,174.67938 404.09196,175.32541 C 404.66159,179.93966 402.65135,180.25079 401.34864,175.75000 L 400.40795,172.50000 L 398.95987,175.75000 C 397.36166,179.33692 395.45457,180.19371 396.30468,176.94290 C 396.64820,175.62929 396.41928,175.03337 395.67131,175.29410 C 395.02709,175.51868 394.64692,176.78187 394.82649,178.10121 C 395.00606,179.42054 395.23106,182.30000 395.32649,184.50000 C 395.46074,187.59499 396.00907,188.72334 397.75000,189.48713 C 398.98750,190.03005 400.00000,190.85505 400.00000,191.32046 C 400.00000,191.78587 400.56250,191.96706 401.25000,191.72310 C 401.93750,191.47914 402.39424,190.32471 402.26497,189.15771 z M 399.74537,185.75000 C 399.48764,185.06250 399.63287,183.60000 400.06810,182.50000 C 400.71250,180.87134 400.87248,181.10343 400.92971,183.75000 C 401.00281,187.12975 400.54955,187.89515 399.74537,185.75000 z M 392.48198,180.94323 C 391.94919,179.26455 391.58169,179.05880 390.94788,180.08433 C 390.46938,180.85856 390.57663,181.98987 391.19970,182.74063 C 392.68269,184.52751 393.33111,183.61860 392.48198,180.94323 z M 389.70185,177.36852 C 389.35453,177.02120 389.57821,175.78370 390.19890,174.61852 C 391.21573,172.70971 391.16275,172.63586 389.66372,173.87244 C 387.75032,175.45086 387.44334,178.00000 389.16667,178.00000 C 389.80833,178.00000 390.04917,177.71583 389.70185,177.36852 z M 387.60417,171.27083 C 387.27188,170.93854 387.03553,171.52917 387.07895,172.58333 C 387.12693,173.74828 387.36389,173.98523 387.68311,173.18750 C 387.97198,172.46562 387.93646,171.60313 387.60417,171.27083 z M 412.50000,166.00000 C 412.83992,165.45000 412.44303,165.00000 411.61803,165.00000 C 410.79303,165.00000 409.83992,165.45000 409.50000,166.00000 C 409.16008,166.55000 409.55697,167.00000 410.38197,167.00000 C 411.20697,167.00000 412.16008,166.55000 412.50000,166.00000 z M 408.55385,160.08713 C 407.40456,158.22754 406.15973,158.89480 406.72753,161.06609 C 407.07999,162.41387 407.60818,162.79182 408.24678,162.15322 C 408.78521,161.61479 408.92339,160.68506 408.55385,160.08713 z M 414.00000,161.44098 C 414.00000,160.58352 413.55000,160.16008 413.00000,160.50000 C 412.45000,160.83992 412.00000,161.54148 412.00000,162.05902 C 412.00000,162.57656 412.45000,163.00000 413.00000,163.00000 C 413.55000,163.00000 414.00000,162.29844 414.00000,161.44098 z M 439.00000,157.44098 C 439.00000,156.58352 439.48322,156.18061 440.07382,156.54563 C 440.66443,156.91064 440.55618,156.26220 439.83328,155.10464 C 439.11037,153.94709 437.83965,152.96447 437.00945,152.92105 C 436.17925,152.87763 436.73750,152.39013 438.25000,151.83772 C 439.76250,151.28531 441.00000,150.23264 441.00000,149.49845 C 441.00000,148.76427 441.15125,147.56427 441.33610,146.83179 C 441.52096,146.09930 441.48253,145.84030 441.25069,146.25623 C 441.01886,146.67216 440.36940,146.72830 439.80746,146.38100 C 439.15484,145.97766 439.04425,146.56405 439.50133,148.00419 C 440.17045,150.11242 439.99882,150.21643 436.85846,149.60588 C 435.01131,149.24675 431.70000,148.96420 429.50000,148.97800 C 425.74914,149.00152 425.62090,148.90956 427.44113,147.50154 C 429.07324,146.23904 429.12243,146.00000 427.75015,146.00000 C 426.85248,146.00000 425.83538,146.45734 425.48992,147.01631 C 425.14446,147.57528 424.49389,147.80524 424.04421,147.52732 C 423.01572,146.89168 421.46077,148.79635 420.52838,151.83389 C 419.90250,153.87286 420.11449,154.12813 422.20606,153.85404 C 423.56706,153.67569 425.82340,154.50253 427.43493,155.77016 C 430.96801,158.54927 434.01840,158.64564 434.71025,156.00000 C 435.28589,153.79874 435.83076,153.60658 437.85676,154.89031 C 438.80257,155.48961 438.87829,155.95719 438.10676,156.43402 C 436.72718,157.28665 436.65589,159.00000 438.00000,159.00000 C 438.55000,159.00000 439.00000,158.29844 439.00000,157.44098 z M 403.00000,150.39301 C 403.00000,150.17686 402.32500,150.00000 401.50000,150.00000 C 400.67500,150.00000 400.00000,150.43588 400.00000,150.96862 C 400.00000,151.50135 400.67500,151.67821 401.50000,151.36163 C 402.32500,151.04504 403.00000,150.60917 403.00000,150.39301 z M 436.18333,146.78333 C 435.46577,146.06577 435.00000,146.00673 435.00000,146.63333 C 435.00000,147.96811 436.18261,149.15072 436.85000,148.48333 C 437.13417,148.19917 436.83417,147.43417 436.18333,146.78333 z M 434.00000,145.89301 C 434.00000,145.40186 435.01250,144.96447 436.25000,144.92105 C 437.48750,144.87763 437.91463,144.60751 437.19918,144.32078 C 435.50917,143.64348 429.86735,145.97636 430.54473,147.07238 C 431.17890,148.09848 434.00000,147.13557 434.00000,145.89301 z M 378.01531,419.75000 C 378.02373,419.06250 378.41111,417.89977 378.87615,417.16615 C 379.55002,416.10310 379.85209,416.17218 380.36408,417.50640 C 380.71741,418.42714 380.75347,419.58988 380.44423,420.09024 C 379.61882,421.42578 377.99757,421.19867 378.01531,419.75000 z M 230.63837,416.50000 C 230.32179,415.67500 230.49865,415.00000 231.03138,415.00000 C 231.56412,415.00000 232.00000,415.67500 232.00000,416.50000 C 232.00000,417.32500 231.82314,418.00000 231.60699,418.00000 C 231.39083,418.00000 230.95496,417.32500 230.63837,416.50000 z M 379.15789,411.00000 C 379.15789,409.62500 379.38487,409.06250 379.66228,409.75000 C 379.93969,410.43750 379.93969,411.56250 379.66228,412.25000 C 379.38487,412.93750 379.15789,412.37500 379.15789,411.00000 z M 352.51008,393.01631 C 352.16462,392.45734 352.58352,392.00000 353.44098,392.00000 C 355.19751,392.00000 355.45614,392.60006 354.06910,393.45729 C 353.55710,393.77373 352.85554,393.57528 352.51008,393.01631 z M 352.07895,388.58333 C 352.03553,387.52917 352.27188,386.93854 352.60417,387.27083 C 352.93646,387.60312 352.97198,388.46562 352.68311,389.18750 C 352.36389,389.98523 352.12693,389.74828 352.07895,388.58333 z M 351.00000,382.05902 C 351.00000,381.54148 351.44485,380.84310 351.98855,380.50708 C 352.55541,380.15674 352.72305,380.55814 352.38156,381.44806 C 351.71677,383.18048 351.00000,383.49745 351.00000,382.05902 z M 350.51128,377.62312 C 351.45659,376.18041 352.41910,375.00000 352.65019,375.00000 C 353.37357,375.00000 351.04529,378.85397 349.89090,379.56743 C 349.28680,379.94078 349.56598,379.06584 350.51128,377.62312 z M 357.50000,371.00000 C 357.16008,370.45000 357.35852,370.00000 357.94098,370.00000 C 358.52344,370.00000 359.00000,370.45000 359.00000,371.00000 C 359.00000,371.55000 358.80156,372.00000 358.55902,372.00000 C 358.31648,372.00000 357.83992,371.55000 357.50000,371.00000 z M 380.00000,366.61803 C 380.00000,365.79303 380.45000,364.83992 381.00000,364.50000 C 381.55000,364.16008 382.00000,364.55697 382.00000,365.38197 C 382.00000,366.20697 381.55000,367.16008 381.00000,367.50000 C 380.45000,367.83992 380.00000,367.44303 380.00000,366.61803 z M 155.11428,302.07063 C 154.25455,301.53928 154.15227,301.02393 154.82414,300.60869 C 155.39485,300.25597 156.16296,300.45466 156.53104,301.05022 C 157.44950,302.53632 156.71904,303.06242 155.11428,302.07063 z M 362.88485,285.30902 C 362.82151,284.86406 362.84980,283.71250 362.94770,282.75000 C 363.15134,280.74813 361.42105,280.36958 360.66228,282.25000 C 360.38487,282.93750 360.12237,282.46094 360.07895,281.19098 C 360.03414,279.88059 360.43554,279.15115 361.00706,279.50437 C 361.56095,279.84668 362.28409,279.42324 362.61405,278.56338 C 362.94401,277.70352 363.61583,277.00000 364.10699,277.00000 C 365.33655,277.00000 365.23920,284.73413 364.00000,285.50000 C 363.45000,285.83992 362.94818,285.75398 362.88485,285.30902 z M 316.64586,282.25000 C 316.21651,281.01250 315.22055,280.00000 314.43261,280.00000 C 313.47676,280.00000 313.01012,278.91843 313.03041,276.75000 C 313.05764,273.83932 313.17503,273.70881 314.15473,275.50000 C 314.75639,276.60000 315.90378,278.02599 316.70451,278.66887 C 317.50523,279.31175 317.99524,280.88675 317.79343,282.16887 L 317.42649,284.50000 L 316.64586,282.25000 z M 352.00000,282.00000 C 352.00000,280.73559 354.04347,280.73559 356.00000,282.00000 C 357.16887,282.75538 356.89294,282.97275 354.75000,282.98469 C 353.23750,282.99311 352.00000,282.55000 352.00000,282.00000 z M 317.66667,274.33333 C 317.30000,273.96667 317.00000,273.20167 317.00000,272.63333 C 317.00000,272.00673 317.46577,272.06577 318.18333,272.78333 C 318.83417,273.43417 319.13417,274.19917 318.85000,274.48333 C 318.56583,274.76750 318.03333,274.70000 317.66667,274.33333 z M 418.00000,272.97709 C 418.00000,272.40517 418.69441,271.67076 419.54313,271.34508 C 421.88850,270.44507 422.16389,271.41655 419.95452,272.79633 C 418.71745,273.56889 418.00000,273.63525 418.00000,272.97709 z M 313.00000,272.00000 C 312.09871,271.41754 311.97537,271.02451 312.69098,271.01531 C 313.34602,271.00689 314.16008,271.45000 314.50000,272.00000 C 315.26730,273.24153 314.92112,273.24153 313.00000,272.00000 z M 403.18750,271.93750 C 403.42813,271.21562 404.21562,270.42813 404.93750,270.18750 C 405.68750,269.93750 406.06250,270.31250 405.81250,271.06250 C 405.57187,271.78438 404.78438,272.57187 404.06250,272.81250 C 403.31250,273.06250 402.93750,272.68750 403.18750,271.93750 z M 406.61320,267.75000 C 406.01134,266.78750 404.95215,266.00000 404.25945,266.00000 C 403.56675,266.00000 403.00000,265.55000 403.00000,265.00000 C 403.00000,264.45000 403.37396,264.00000 403.83102,264.00000 C 404.28808,264.00000 405.24882,262.90359 405.96599,261.56354 C 407.09942,259.44571 407.45779,259.31494 408.70640,260.56354 C 409.49645,261.35359 410.84708,262.00000 411.70779,262.00000 C 412.85601,262.00000 412.56936,261.29663 410.63130,259.35857 C 408.48220,257.20947 408.21698,256.44348 409.20838,255.24892 C 409.99854,254.29684 410.55693,254.17078 410.79678,254.89035 C 411.00022,255.50066 411.60949,256.00000 412.15072,256.00000 C 412.69195,256.00000 412.84913,255.10000 412.50000,254.00000 C 412.13586,252.85269 412.32030,252.00000 412.93261,252.00000 C 413.51968,252.00000 414.00000,251.30761 414.00000,250.46136 C 414.00000,248.65583 420.00130,242.20018 425.00000,238.62855 C 438.01588,229.32857 447.85205,225.70474 456.06066,227.18523 C 464.81357,228.76388 472.07780,234.30508 474.64168,241.35895 C 475.59216,243.97397 475.50843,244.77361 474.14168,246.13380 C 473.23876,247.03239 472.27500,247.74845 472.00000,247.72504 C 470.57576,247.60381 468.08533,249.32904 468.56476,250.10478 C 468.86906,250.59715 468.42773,251.00000 467.58402,251.00000 C 466.40784,251.00000 466.17754,250.24186 466.59675,247.75000 C 467.11554,244.66620 467.06312,244.59927 465.57175,246.44113 C 464.29682,248.01568 464.00000,248.08492 464.00000,246.80776 C 464.00000,245.94179 463.00715,244.97363 461.79367,244.65629 C 459.00591,243.92728 458.37126,244.53749 459.94503,246.43376 C 460.94959,247.64419 460.72096,248.36995 458.69770,250.39321 C 456.81520,252.27571 456.55406,252.99864 457.61017,253.40390 C 459.58326,254.16105 459.33469,256.78573 457.25000,257.20691 C 456.28750,257.40137 452.12500,255.86131 448.00000,253.78457 C 443.87500,251.70782 440.16250,250.00671 439.75000,250.00433 C 437.91022,249.99371 439.27210,252.08935 442.03270,253.51691 C 443.70068,254.37946 444.88322,255.40351 444.66057,255.79259 C 444.43792,256.18166 445.16218,257.40000 446.27004,258.50000 L 448.28432,260.50000 L 447.69811,258.10595 C 447.30753,256.51086 447.44543,256.04543 448.11131,256.71131 C 449.46382,258.06382 448.19302,262.71195 446.26885,263.45033 C 445.41599,263.77760 443.67243,263.36016 442.39428,262.52269 C 441.11613,261.68521 439.18109,261.00000 438.09420,261.00000 C 437.00731,261.00000 435.83992,260.55000 435.50000,260.00000 C 434.53329,258.43583 431.00000,258.82842 431.00000,260.50000 C 431.00000,261.32500 430.10000,262.90000 429.00000,264.00000 C 426.60767,266.39233 426.50639,267.00000 428.50000,267.00000 C 430.27419,267.00000 430.48653,268.58127 428.84830,269.59376 C 428.21486,269.98524 427.16851,269.58336 426.52309,268.70069 C 425.78343,267.68914 424.54556,267.30608 423.17479,267.66454 C 421.60405,268.07530 421.00000,267.78424 421.00000,266.61663 C 421.00000,265.55889 420.13572,265.00000 418.50000,265.00000 C 417.12500,265.00000 416.00000,265.45000 416.00000,266.00000 C 416.00000,266.55000 416.71250,267.00000 417.58333,267.00000 C 418.45417,267.00000 418.98604,267.54189 418.76527,268.20420 C 418.52200,268.93401 416.26481,269.42645 413.03568,269.45420 C 409.01075,269.48880 407.43983,269.07195 406.61320,267.75000 z M 408.50000,263.00000 C 408.16008,262.45000 407.68352,262.00000 407.44098,262.00000 C 407.19844,262.00000 407.00000,262.45000 407.00000,263.00000 C 407.00000,263.55000 407.47656,264.00000 408.05902,264.00000 C 408.64148,264.00000 408.83992,263.55000 408.50000,263.00000 z M 429.13671,255.21224 C 428.41527,254.97176 427.34955,255.25045 426.76845,255.83155 C 426.02638,256.57362 426.41681,256.70376 428.08016,256.26879 C 429.43236,255.91518 429.88566,255.46189 429.13671,255.21224 z M 425.30615,254.36052 C 426.37096,253.29571 425.03639,252.04880 423.47372,252.64846 C 422.66949,252.95707 422.26046,253.61242 422.56476,254.10478 C 423.21296,255.15360 424.40214,255.26453 425.30615,254.36052 z M 431.69385,267.36052 C 431.34214,267.00881 431.28155,266.35346 431.55921,265.90419 C 432.18272,264.89534 435.00000,265.88018 435.00000,267.10699 C 435.00000,268.13309 432.64687,268.31353 431.69385,267.36052 z M 368.56429,265.29313 C 368.02161,263.86793 368.13647,263.75307 369.12409,264.73333 C 369.80751,265.41167 370.11476,266.21857 369.80687,266.52646 C 369.49898,266.83435 368.93982,266.27935 368.56429,265.29313 z M 448.06529,265.57867 C 447.09677,264.41167 447.25658,264.25434 448.95843,264.69938 C 451.45994,265.35354 452.69304,267.00000 450.68146,267.00000 C 449.89135,267.00000 448.71407,266.36040 448.06529,265.57867 z M 109.15789,262.00000 C 109.15789,260.62500 109.38487,260.06250 109.66228,260.75000 C 109.93969,261.43750 109.93969,262.56250 109.66228,263.25000 C 109.38487,263.93750 109.15789,263.37500 109.15789,262.00000 z M 352.82282,255.25000 C 352.42570,253.56896 352.53288,221.00653 352.93555,221.00339 C 353.17510,221.00153 354.41260,221.97844 355.68555,223.17431 C 357.58554,224.95927 358.00000,225.05937 358.00000,223.73333 C 358.00000,222.84492 358.46061,221.83336 359.02359,221.48542 C 360.33533,220.67472 359.50132,226.99671 356.97687,237.00000 C 355.93587,241.12500 354.84495,245.62500 354.55259,247.00000 C 354.26023,248.37500 353.72605,250.80438 353.36553,252.39862 C 352.94940,254.23875 353.07724,255.07030 353.71562,254.67575 C 354.90748,253.93915 358.31237,242.31533 357.65072,241.24190 C 357.39921,240.83386 357.78836,239.15000 358.51549,237.50000 L 359.83756,234.50000 L 359.91878,237.25000 C 359.96345,238.76250 359.66250,240.00255 359.25000,240.00566 C 358.83750,240.00877 358.42847,241.87431 358.34103,244.15130 C 358.25360,246.42829 357.73191,249.23825 357.18171,250.39564 C 356.63152,251.55304 355.92967,253.28750 355.62206,254.25000 C 355.06460,255.99428 353.15943,256.67488 352.82282,255.25000 z M 372.75000,255.33772 C 373.43750,255.06031 374.56250,255.06031 375.25000,255.33772 C 375.93750,255.61513 375.37500,255.84211 374.00000,255.84211 C 372.62500,255.84211 372.06250,255.61513 372.75000,255.33772 z M 358.07895,252.58333 C 358.03553,251.52917 358.27188,250.93854 358.60417,251.27083 C 358.93646,251.60313 358.97198,252.46562 358.68311,253.18750 C 358.36389,253.98523 358.12693,253.74828 358.07895,252.58333 z M 326.55861,249.09483 C 326.25769,248.60794 326.74831,247.92682 327.64887,247.58125 C 329.80446,246.75407 330.11760,247.20588 328.45200,248.74004 C 327.71155,249.42207 326.85952,249.58172 326.55861,249.09483 z M 359.07895,247.58333 C 359.03553,246.52917 359.27188,245.93854 359.60417,246.27083 C 359.93646,246.60313 359.97198,247.46562 359.68311,248.18750 C 359.36389,248.98523 359.12693,248.74828 359.07895,247.58333 z M 107.12499,239.94487 C 105.94743,237.50019 102.28363,231.00000 98.983194,225.50000 C 91.477038,212.99138 78.000000,189.34685 78.000000,188.68643 C 78.000000,188.41457 76.521628,185.56140 74.714729,182.34607 C 70.860282,175.48716 68.000000,168.26731 68.000000,165.39690 C 68.000000,162.64712 72.409621,158.80962 73.879890,160.27989 C 74.477617,160.87762 75.299023,161.03431 75.705236,160.62810 C 76.485292,159.84804 74.055946,155.15703 65.333106,140.59974 C 59.915425,131.55833 58.796637,128.75641 61.500000,131.00000 C 62.700196,131.99607 63.000000,131.98957 63.000000,130.96746 C 63.000000,128.70861 67.036248,133.18930 69.118088,137.75922 C 70.197669,140.12905 71.470780,141.82708 71.947223,141.53262 C 72.423666,141.23816 72.591246,141.84707 72.319623,142.88576 C 71.847529,144.69105 73.371890,146.42678 75.500000,146.50713 C 76.050000,146.52789 76.367773,147.32228 76.206163,148.27244 C 76.031399,149.29994 76.548072,150.00000 77.481163,150.00000 C 78.401689,150.00000 79.282835,151.16417 79.613433,152.81716 C 79.923321,154.36660 81.712071,157.26156 83.588433,159.25041 C 85.464795,161.23925 87.000000,163.34653 87.000000,163.93325 C 87.000000,164.51996 87.343769,165.00000 87.763932,165.00000 C 88.184095,165.00000 89.640325,166.80000 91.000000,169.00000 C 93.114750,172.42174 95.000000,174.09866 95.000000,172.55799 C 95.000000,172.31489 92.507667,168.02496 89.461483,163.02482 C 86.415298,158.02468 84.216089,153.45938 84.574350,152.87970 C 85.027873,152.14588 85.555958,152.15596 86.312868,152.91287 C 87.894396,154.49440 89.307428,154.24353 88.638374,152.50000 C 88.318489,151.66639 88.604155,151.01478 89.281385,151.03327 C 90.967209,151.07929 94.456050,154.13118 95.278470,156.27925 C 96.727401,160.06371 102.43599,167.84858 103.34859,167.28456 C 103.87683,166.95809 104.00169,167.18826 103.62606,167.79603 C 102.68550,169.31789 106.27095,175.74302 107.78005,175.23998 C 108.51376,174.99541 108.77625,175.41951 108.43752,176.30222 C 107.91425,177.66586 109.29959,180.85092 113.09053,187.00000 C 122.04613,201.52641 134.00000,221.98149 134.00000,222.77961 C 134.00000,223.75592 131.73770,225.00000 129.96232,225.00000 C 129.48157,225.00000 127.20958,221.73750 124.91347,217.75000 C 118.89955,207.30604 96.730632,174.00000 95.792926,174.00000 C 95.356817,174.00000 95.000000,174.67500 95.000000,175.50000 C 95.000000,176.32500 95.353284,177.00000 95.785075,177.00000 C 96.216866,177.00000 97.904366,179.47343 99.535075,182.49650 C 101.16578,185.51958 102.83750,187.99458 103.25000,187.99650 C 103.66250,187.99843 104.00000,188.59015 104.00000,189.31144 C 104.00000,190.03273 104.92707,191.61797 106.06016,192.83420 C 107.32492,194.19176 107.89255,195.76319 107.53036,196.90434 C 107.15444,198.08876 107.52043,198.98573 108.53915,199.37665 C 109.60941,199.78735 109.92755,200.65291 109.50156,201.99507 C 109.04724,203.42652 109.31900,204.00000 110.45166,204.00000 C 111.62501,204.00000 111.88192,204.62228 111.43831,206.38975 C 110.94469,208.35651 111.33958,208.96205 113.66926,209.81081 C 115.22617,210.37802 115.93750,210.87763 115.25000,210.92105 C 113.13137,211.05486 113.84573,213.10575 117.61186,217.70182 C 119.59838,220.12610 120.96168,222.37166 120.64140,222.69193 C 120.32113,223.01220 120.94579,224.51951 122.02955,226.04149 C 124.36983,229.32812 124.58420,232.00000 122.50761,232.00000 C 120.30046,232.00000 116.10157,235.68851 111.18665,241.94487 L 109.26599,244.38974 L 107.12499,239.94487 z M 360.00000,242.05902 C 360.00000,240.92656 360.45000,240.00000 361.00000,240.00000 C 361.55000,240.00000 362.00000,240.64844 362.00000,241.44098 C 362.00000,242.23352 361.55000,243.16008 361.00000,243.50000 C 360.45000,243.83992 360.00000,243.19148 360.00000,242.05902 z M 373.00000,242.55902 C 373.00000,240.80249 373.60006,240.54386 374.45729,241.93090 C 374.77373,242.44290 374.57528,243.14446 374.01631,243.48992 C 373.45734,243.83538 373.00000,243.41648 373.00000,242.55902 z M 118.75000,237.33772 C 119.43750,237.06031 120.56250,237.06031 121.25000,237.33772 C 121.93750,237.61513 121.37500,237.84211 120.00000,237.84211 C 118.62500,237.84211 118.06250,237.61513 118.75000,237.33772 z M 344.00000,225.50000 C 344.00000,224.63330 344.59545,224.29127 345.50000,224.63837 C 346.32500,224.95496 347.00000,225.34269 347.00000,225.50000 C 347.00000,225.65731 346.32500,226.04504 345.50000,226.36163 C 344.59545,226.70873 344.00000,226.36670 344.00000,225.50000 z M 373.75000,224.31067 C 372.78750,224.05915 372.00000,223.19722 372.00000,222.39529 C 372.00000,220.38996 374.87287,219.45629 376.31722,220.99222 C 377.22932,221.96216 377.21251,222.35536 376.24377,222.71041 C 375.55284,222.96364 375.24190,223.58239 375.55279,224.08541 C 375.86367,224.58843 375.97898,224.94780 375.80902,224.88400 C 375.63906,224.82020 374.71250,224.56220 373.75000,224.31067 z M 366.15789,222.00000 C 366.15789,220.62500 366.38487,220.06250 366.66228,220.75000 C 366.93969,221.43750 366.93969,222.56250 366.66228,223.25000 C 366.38487,223.93750 366.15789,223.37500 366.15789,222.00000 z M 370.00000,217.50000 C 370.00000,216.67500 370.45000,216.00000 371.00000,216.00000 C 371.55000,216.00000 372.00000,216.67500 372.00000,217.50000 C 372.00000,218.32500 371.55000,219.00000 371.00000,219.00000 C 370.45000,219.00000 370.00000,218.32500 370.00000,217.50000 z M 167.46270,215.88247 C 166.99439,214.40697 167.44624,213.11838 168.95298,211.63247 C 171.10399,209.51119 171.12310,209.51044 172.59228,211.48846 C 173.50468,212.71686 173.67137,213.60954 173.02838,213.82387 C 172.45592,214.01469 172.23871,214.57723 172.54571,215.07396 C 172.85270,215.57068 172.37526,215.69749 171.48472,215.35576 C 170.33730,214.91546 170.17649,214.42351 170.93278,213.66722 C 172.66947,211.93053 172.14981,210.88949 170.16496,212.12905 C 168.95146,212.88689 168.48289,214.07524 168.78154,215.63753 C 169.34280,218.57358 168.37393,218.75353 167.46270,215.88247 z M 157.00000,198.50000 C 157.00000,197.67500 157.17686,197.00000 157.39301,197.00000 C 157.60917,197.00000 158.04504,197.67500 158.36163,198.50000 C 158.67821,199.32500 158.50135,200.00000 157.96862,200.00000 C 157.43588,200.00000 157.00000,199.32500 157.00000,198.50000 z M 188.00000,193.15340 C 188.00000,192.68777 186.34984,190.60768 184.33297,188.53098 C 180.67563,184.76514 180.64817,184.75644 173.94039,185.23638 C 170.00426,185.51801 165.38033,186.60566 162.79169,187.85879 C 157.17411,190.57822 156.86114,190.55008 157.43647,187.37734 C 157.99485,184.29803 160.48341,181.31850 164.02776,179.48565 C 167.00272,177.94724 174.78643,179.03657 178.27410,181.47944 C 181.06414,183.43365 179.09479,183.45174 175.36431,181.50616 C 170.03972,178.72920 162.72564,180.00716 160.12682,184.16854 C 159.43085,185.28296 159.02610,186.35943 159.22737,186.56071 C 159.42865,186.76198 161.78134,186.26816 164.45559,185.46333 C 169.60633,183.91318 180.81695,183.66035 185.00000,185.00000 C 186.99239,185.63808 187.10484,185.82088 185.55383,185.90032 C 183.85404,185.98738 184.01228,186.41745 186.80383,189.29761 C 190.11490,192.71376 190.71561,194.00000 189.00000,194.00000 C 188.45000,194.00000 188.00000,193.61903 188.00000,193.15340 z M 140.08603,188.50000 C 139.92769,185.95822 142.94205,177.06036 145.05181,173.84189 C 148.96427,167.87336 153.40164,165.48810 160.43048,165.57526 C 163.76872,165.61666 167.99420,166.29166 169.82044,167.07526 C 173.11055,168.48699 173.07631,168.50000 166.07044,168.50000 C 162.18170,168.50000 159.45000,168.35000 160.00000,168.16667 C 160.55000,167.98333 161.00000,167.38508 161.00000,166.83721 C 161.00000,165.62275 155.61735,166.66999 151.77868,168.63129 C 148.60309,170.25380 144.03291,176.56875 143.92584,179.48213 C 143.84724,181.62055 140.19221,190.20447 140.08603,188.50000 z M 182.74123,173.80274 C 179.57390,171.53755 177.21128,169.45539 177.49096,169.17571 C 178.02350,168.64316 188.66682,175.65188 189.58730,177.14126 C 190.70365,178.94755 188.28755,177.76933 182.74123,173.80274 z M 180.50000,176.00000 C 180.16008,175.45000 180.33197,175.00000 180.88197,175.00000 C 181.43197,175.00000 182.16008,175.45000 182.50000,176.00000 C 182.83992,176.55000 182.66803,177.00000 182.11803,177.00000 C 181.56803,177.00000 180.83992,176.55000 180.50000,176.00000 z M 152.00000,172.57037 C 152.00000,172.29537 152.90000,171.58870 154.00000,171.00000 C 155.10000,170.41130 156.00000,170.15463 156.00000,170.42963 C 156.00000,170.70463 155.10000,171.41130 154.00000,172.00000 C 152.90000,172.58870 152.00000,172.84537 152.00000,172.57037 z M 371.00000,162.55902 C 371.00000,161.70156 371.45000,161.00000 372.00000,161.00000 C 372.55000,161.00000 373.00000,161.42344 373.00000,161.94098 C 373.00000,162.45852 372.55000,163.16008 372.00000,163.50000 C 371.45000,163.83992 371.00000,163.41648 371.00000,162.55902 z M 378.27083,163.39583 C 378.60312,163.06354 379.46562,163.02802 380.18750,163.31689 C 380.98523,163.63611 380.74828,163.87307 379.58333,163.92105 C 378.52917,163.96447 377.93854,163.72813 378.27083,163.39583 z M 73.500000,144.00000 C 73.160081,143.45000 73.358524,143.00000 73.940983,143.00000 C 74.523442,143.00000 75.000000,143.45000 75.000000,144.00000 C 75.000000,144.55000 74.801558,145.00000 74.559017,145.00000 C 74.316476,145.00000 73.839919,144.55000 73.500000,144.00000 z M 395.00000,133.45881 C 395.00000,133.15184 395.66387,131.61690 396.47526,130.04784 C 397.77561,127.53324 397.77561,127.12787 396.47526,126.62888 C 395.66387,126.31752 395.00000,126.49865 395.00000,127.03138 C 395.00000,127.56412 393.87500,128.00000 392.50000,128.00000 C 390.63793,128.00000 390.00000,127.47143 390.00000,125.92857 C 390.00000,124.78929 389.29175,123.14889 388.42611,122.28325 C 387.26872,121.12587 387.16466,120.51627 388.03287,119.97968 C 388.83599,119.48333 388.87633,119.04160 388.15905,118.59830 C 387.57909,118.23986 387.11743,115.25861 387.13314,111.97330 C 387.16014,106.32956 387.29518,106.00000 389.58086,106.00000 C 391.33333,106.00000 392.00000,105.44884 392.00000,104.00000 C 392.00000,101.60092 393.53762,101.35269 394.40453,103.61181 C 394.84183,104.75138 395.89861,105.09511 398.01152,104.78500 C 401.15207,104.32407 401.50236,104.65945 400.13410,106.81726 C 399.29040,108.14782 401.32740,118.87472 403.02674,122.04997 C 404.17092,124.18789 403.10850,125.33494 401.34201,123.86888 C 400.27869,122.98640 400.00000,123.28744 400.00000,125.31854 C 400.00000,126.72842 399.51932,128.17904 398.93183,128.54213 C 398.34433,128.90523 398.07443,129.75158 398.33205,130.42292 C 398.58966,131.09426 397.94534,132.17755 396.90022,132.83024 C 395.85510,133.48293 395.00000,133.76579 395.00000,133.45881 z M 394.00000,126.05902 C 394.00000,125.54148 393.55000,124.83992 393.00000,124.50000 C 392.45000,124.16008 392.00000,124.58352 392.00000,125.44098 C 392.00000,126.29844 392.45000,127.00000 393.00000,127.00000 C 393.55000,127.00000 394.00000,126.57656 394.00000,126.05902 z M 98.606989,122.41821 C 97.668263,119.97193 97.871791,119.64871 99.500000,121.00000 C 101.16238,122.37965 101.49022,124.00000 100.10699,124.00000 C 99.615833,124.00000 98.940833,123.28820 98.606989,122.41821 z M 95.078947,116.33179 C 95.035526,115.68927 94.741023,114.33927 94.424495,113.33179 C 93.877444,111.59057 93.905664,111.58839 94.995269,113.28768 C 95.625723,114.27090 95.920227,115.62090 95.649722,116.28768 C 95.294745,117.16267 95.135928,117.17495 95.078947,116.33179 z M 444.25000,111.75000 C 444.40100,110.99502 443.60896,110.59434 442.25000,110.73821 C 441.01250,110.86923 440.00000,110.53173 440.00000,109.98821 C 440.00000,109.44469 439.32500,109.00000 438.50000,109.00000 C 436.56231,109.00000 436.56093,109.01290 439.50777,99.551604 C 442.69802,89.308779 444.04951,87.420946 447.04454,89.023835 C 448.68043,89.899339 449.88053,89.919832 451.67355,89.102881 C 455.08796,87.547171 455.25440,87.682105 453.40418,90.505901 C 452.00419,92.642547 451.95026,93.465715 453.03820,96.092231 C 454.39034,99.356572 454.65696,107.12799 453.48205,109.02905 C 453.09692,109.65220 451.75726,109.90491 450.50503,109.59062 C 448.79453,109.16131 448.09879,109.51424 447.70774,111.00959 C 447.15100,113.13857 443.83006,113.84968 444.25000,111.75000 z M 414.58295,99.134215 C 414.15218,98.437212 414.06979,97.596877 414.39986,97.266802 C 415.29483,96.371841 416.27063,97.688105 415.78725,99.138246 C 415.44853,100.15442 415.21298,100.15363 414.58295,99.134215 z M 410.43553,94.250000 C 410.10411,92.737500 409.59958,90.825000 409.31435,90.000000 C 409.02912,89.175000 408.61502,86.375974 408.39412,83.779943 C 408.06798,79.947058 408.26726,79.165326 409.45437,79.620864 C 410.42270,79.992445 411.12714,79.341614 411.54088,77.693155 C 412.12702,75.357791 412.32734,75.288434 414.79252,76.567382 C 417.07261,77.750308 417.65596,77.716339 419.20977,76.310161 C 420.87471,74.803413 421.00000,74.833358 421.00000,76.738024 C 421.00000,77.864423 420.39039,79.019952 419.64531,79.305866 C 418.60611,79.704642 418.47579,80.952234 419.08570,84.662855 C 420.42648,92.819975 420.26129,94.301593 418.07482,93.729816 C 416.64391,93.355625 416.30243,93.624538 416.74476,94.777230 C 417.11900,95.752495 416.93131,96.075578 416.23904,95.647733 C 415.63357,95.273537 414.85554,95.424717 414.51008,95.983688 C 413.30078,97.940374 411.03270,96.975322 410.43553,94.250000 z " id="path1321" style="fill:#c8b9b3"/>
+ <path d="M 149.00000,805.39217 C 128.75426,803.20802 107.91210,798.82202 85.500000,792.02932 C 68.958085,787.01576 68.825594,786.99331 62.105171,788.06494 C 55.163002,789.17193 54.243211,789.55374 47.411594,794.16435 C 37.892333,800.58882 29.798662,799.79878 20.116332,791.50000 C 14.392503,786.59407 8.1633861,778.25489 6.0620342,772.68490 C 4.5188197,768.59435 4.7613975,760.36209 6.5256801,756.95034 C 8.3359450,753.44967 8.4568355,753.42759 11.727129,756.00000 C 13.125553,757.10000 15.532473,758.00000 17.075842,758.00000 C 18.619210,758.00000 20.141343,758.41968 20.458359,758.93262 C 21.184345,760.10729 27.000000,760.00400 27.000000,758.81644 C 27.000000,758.33287 26.325000,757.67821 25.500000,757.36163 C 23.050304,756.42159 23.791489,755.00241 26.750000,754.96820 C 29.350536,754.93812 29.397296,754.85864 27.610333,753.50583 C 25.821050,752.15126 25.809977,751.93896 27.401894,749.50939 C 28.326568,748.09815 28.820600,746.51874 28.499742,745.99958 C 28.178884,745.48042 28.773411,743.18616 29.820913,740.90121 C 30.868414,738.61627 31.982540,737.16273 32.296747,737.67113 C 32.610955,738.17953 32.517549,739.16259 32.089178,739.85571 C 31.133675,741.40174 31.935315,760.38764 32.972932,760.78636 C 33.382804,760.94386 33.418113,762.74386 33.051397,764.78636 C 32.684680,766.82886 32.635595,769.52842 32.942319,770.78537 C 33.477815,772.97983 33.562348,772.99781 35.067311,771.23730 C 35.929333,770.22891 36.454333,768.86300 36.233978,768.20193 C 36.013623,767.54087 36.261365,767.00000 36.784514,767.00000 C 37.334721,767.00000 37.724486,761.94137 37.709106,755.00000 C 37.694482,748.40000 37.403009,743.00000 37.061388,743.00000 C 36.719766,743.00000 36.534109,740.75000 36.648816,738.00000 C 36.763523,735.25000 36.419738,733.00000 35.884850,733.00000 C 35.349962,733.00000 35.044553,733.74082 35.206163,734.64626 C 35.367773,735.55170 34.874862,736.51008 34.110804,736.77599 C 33.183294,737.09879 32.984812,736.83359 33.513579,735.97803 C 33.978084,735.22644 33.723184,734.24247 32.897107,733.59830 C 32.122463,732.99423 31.035750,731.16528 30.482188,729.53394 C 29.770178,727.43567 28.528408,726.29621 26.237856,725.63928 C 22.261554,724.49890 21.903908,722.60035 25.827733,723.46216 C 30.899771,724.57617 40.506320,728.93453 40.242678,730.00203 C 39.771339,731.91049 45.155064,733.04944 57.638209,733.68212 C 66.676353,734.14019 70.000000,733.99829 70.000000,733.15432 C 70.000000,732.45518 71.751182,732.00000 74.440983,732.00000 C 76.883524,732.00000 79.160081,731.55000 79.500000,731.00000 C 79.839919,730.45000 80.843543,730.00000 81.730276,730.00000 C 82.617010,730.00000 84.052952,729.41041 84.921259,728.68979 C 87.619270,726.45069 97.465880,723.94956 101.10230,724.57965 C 103.41243,724.97994 104.06572,724.86136 103.14324,724.20919 C 101.62531,723.13606 103.30617,721.45316 104.90747,722.44281 C 106.37087,723.34724 125.52710,718.31340 125.25000,717.09723 C 125.11250,716.49376 125.41320,716.00000 125.91821,716.00000 C 126.42323,716.00000 127.66073,715.69075 128.66821,715.31277 C 130.28048,714.70790 130.33558,714.82767 129.12806,716.31216 C 127.87909,717.84761 128.05834,717.94451 131.12806,717.39330 C 135.59017,716.59207 140.00000,714.72614 140.00000,713.63931 C 140.00000,713.15946 141.11138,712.97930 142.46974,713.23897 C 143.82809,713.49863 144.71206,713.34311 144.43410,712.89337 C 144.15614,712.44363 145.37665,711.70046 147.14634,711.24188 C 150.62975,710.33924 152.26795,708.00000 149.41667,708.00000 C 146.09559,708.00000 149.38267,706.43927 153.50000,706.06120 C 154.05000,706.01070 153.89299,705.58470 153.15108,705.11454 C 152.19674,704.50975 152.78178,704.07592 155.15108,703.63144 C 156.99299,703.28589 158.85391,703.11496 159.28647,703.25159 C 159.71904,703.38821 160.44168,702.90338 160.89235,702.17417 C 161.34303,701.44497 163.61547,700.59301 165.94224,700.28092 C 170.09084,699.72448 170.88776,699.00360 171.41754,695.32809 C 171.56246,694.32264 172.65379,693.35607 173.84271,693.18016 C 176.22548,692.82761 178.05592,690.09490 178.47667,686.26201 C 178.75023,683.76988 180.46042,682.04406 182.68490,682.01531 C 185.30522,681.98145 189.08552,679.94739 188.44731,678.91474 C 187.96265,678.13055 187.46998,678.13002 186.68713,678.91287 C 185.29926,680.30074 184.00000,680.30833 184.00000,678.92857 C 184.00000,677.55786 186.00408,675.57588 188.25000,674.72543 C 189.21250,674.36097 190.00000,673.59865 190.00000,673.03138 C 190.00000,672.46412 190.45000,672.00000 191.00000,672.00000 C 191.55000,672.00000 192.00000,673.56986 192.00000,675.48857 C 192.00000,680.14076 194.59959,683.26701 197.14581,681.67687 C 198.88082,680.59334 198.88690,680.48099 197.24628,679.82005 C 195.71138,679.20171 195.77236,679.03485 197.75000,678.44164 C 198.98750,678.07044 200.00000,677.14422 200.00000,676.38337 C 200.00000,675.43611 201.26099,675.00000 204.00000,675.00000 C 206.20000,675.00000 208.00000,675.41092 208.00000,675.91315 C 208.00000,676.41538 209.68750,675.98485 211.75000,674.95641 C 215.83439,672.91979 216.27057,673.12284 219.64445,678.63144 C 220.64196,680.26008 221.07175,680.33061 222.99183,679.18071 C 225.42358,677.72439 227.32629,678.54956 224.97104,680.03906 C 223.82379,680.76460 224.02601,680.97274 225.88976,680.98469 C 227.20412,680.99311 228.84639,680.22475 229.53924,679.27722 C 230.66350,677.73971 231.08525,677.70766 233.46119,678.97923 C 235.58284,680.11470 236.51701,680.15822 238.06171,679.19353 C 239.12777,678.52777 240.00000,678.39937 240.00000,678.90819 C 240.00000,679.41702 239.47033,680.00989 238.82295,680.22568 C 238.17557,680.44148 237.91152,681.04782 238.23618,681.57312 C 239.12929,683.01821 248.00000,682.05116 248.00000,680.50871 C 248.00000,678.88468 254.84649,677.94361 257.34314,679.22447 C 258.35687,679.74455 260.30707,679.88876 261.67693,679.54495 C 263.26534,679.14628 263.93729,679.29246 263.53185,679.94846 C 263.15381,680.56014 263.52519,680.73570 264.44806,680.38156 C 265.52566,679.96804 266.00000,680.38568 266.00000,681.74798 C 266.00000,682.82705 267.43675,684.90020 269.19278,686.35497 L 272.38556,689.00000 L 268.19278,689.00000 L 264.00000,689.00000 L 264.00000,694.50000 C 264.00000,697.52500 263.55000,700.00000 263.00000,700.00000 C 262.45000,700.00000 262.00000,700.90000 262.00000,702.00000 C 262.00000,704.64179 263.61814,704.56822 264.31730,701.89464 C 264.62077,700.73418 265.45852,699.98596 266.18393,700.22751 C 268.00844,700.83503 268.46979,704.00000 266.73384,704.00000 C 265.95679,704.00000 264.80845,705.12500 264.18195,706.50000 C 263.55546,707.87500 262.36873,709.00000 261.54478,709.00000 C 260.07274,709.00000 256.00000,716.11589 256.00000,718.68783 C 256.00000,719.59577 254.45968,720.00000 251.00000,720.00000 C 246.34262,720.00000 244.65826,721.05272 247.00000,722.50000 C 247.55000,722.83992 247.98569,723.87898 247.96820,724.80902 C 247.93886,726.36864 247.83319,726.36405 246.60795,724.75000 C 245.87731,723.78750 244.70373,723.00000 244.00000,723.00000 C 242.46687,723.00000 240.07629,725.94576 240.03180,727.88976 C 240.01431,728.65412 240.74375,729.82336 241.65278,730.48805 C 243.51811,731.85202 242.55154,734.42563 240.47345,733.62818 C 238.46597,732.85784 231.42337,735.02559 232.92282,735.95230 C 233.86960,736.53744 233.80307,736.86159 232.64498,737.30599 C 231.54978,737.72626 231.03300,737.13361 230.80436,735.19516 C 230.49733,732.59226 230.46385,732.57841 229.82620,734.79070 C 229.36308,736.39749 229.81294,737.80559 231.33298,739.50699 C 233.67449,742.12790 234.31568,742.25564 254.50000,744.12265 C 268.89006,745.45370 309.82328,744.77657 312.60460,743.16147 C 314.71637,741.93517 314.11297,741.73459 308.99584,741.96183 C 307.06855,742.04741 304.36855,741.63066 302.99584,741.03572 L 300.50000,739.95400 L 303.00831,740.43539 C 304.38788,740.70016 306.13303,740.53582 306.88642,740.07019 C 308.46475,739.09473 307.53541,737.00000 305.52432,737.00000 C 304.77761,737.00000 303.99366,736.48099 303.78221,735.84664 C 303.52136,735.06408 302.49854,735.28246 300.60078,736.52592 C 298.34428,738.00444 297.43892,738.13069 295.91547,737.17928 C 294.87689,736.53068 293.06378,736.00000 291.88634,736.00000 C 289.91072,736.00000 289.78385,735.60126 290.24211,730.83213 C 290.54558,727.67380 291.37277,725.20060 292.36934,724.47188 C 294.66759,722.79136 294.43705,720.00000 292.00000,720.00000 C 290.88889,720.00000 290.00000,719.33333 290.00000,718.50000 C 290.00000,717.67500 289.49752,717.00000 288.88337,717.00000 C 288.25907,717.00000 287.99734,717.88181 288.28975,719.00000 C 288.85467,721.16025 288.27455,721.46015 286.14324,720.10969 C 285.19743,719.51039 285.12171,719.04281 285.89324,718.56598 C 287.96104,717.28801 287.01072,716.00000 284.00000,716.00000 C 280.98928,716.00000 280.03896,717.28801 282.10676,718.56598 C 282.88862,719.04919 282.83927,719.48130 281.93866,720.03791 C 281.21808,720.48325 279.67910,720.18062 278.39896,719.34184 C 276.68852,718.22112 275.64422,718.12004 274.13280,718.92893 C 270.91059,720.65340 270.29845,720.10117 272.96904,717.87907 C 275.21154,716.01317 275.28036,715.73640 273.71904,714.86265 C 271.23905,713.47477 271.51154,711.66822 274.00000,713.00000 C 277.31877,714.77615 279.82369,712.67625 280.26802,707.74547 L 280.65059,703.50000 L 280.82529,707.75000 C 280.95494,710.90390 280.45375,712.54625 278.88197,714.11803 C 277.17503,715.82497 277.02946,716.40143 278.13197,717.08805 C 279.09534,717.68802 279.65463,717.31136 280.02274,715.81466 C 280.82342,712.55926 283.55281,711.23963 286.14153,712.85631 C 288.04497,714.04503 288.21642,714.00636 287.64499,712.51723 C 287.29024,711.59279 287.00000,709.29823 287.00000,707.41821 C 287.00000,704.50389 286.65603,704.00000 284.66667,704.00000 C 283.38333,704.00000 281.99583,703.66250 281.58333,703.25000 C 280.71696,702.38363 280.23369,702.29415 275.50720,702.12500 C 272.10602,702.00328 272.01841,701.89748 272.16754,698.09166 C 272.30586,694.56156 272.49872,694.29451 274.16034,695.33221 C 275.56546,696.20972 276.48202,696.18006 278.04068,695.20667 C 280.72517,693.53018 282.00000,694.44859 282.00000,698.05902 C 282.00000,699.93118 282.51541,701.00000 283.41821,701.00000 C 284.19823,701.00000 285.54823,701.27314 286.41821,701.60699 C 287.45620,702.00530 288.00000,701.66151 288.00000,700.60699 C 288.00000,699.72314 288.67500,699.00000 289.50000,699.00000 C 290.32500,699.00000 291.90000,698.10000 293.00000,697.00000 C 295.39233,694.60767 296.00000,694.50639 296.00000,696.50000 C 296.00000,698.18139 298.54515,698.54499 299.50000,697.00000 C 299.83992,696.45000 299.69396,696.00000 299.17565,696.00000 C 298.65734,696.00000 297.99742,695.09814 297.70917,693.99587 C 297.35955,692.65892 296.65493,692.19519 295.59254,692.60286 C 294.71664,692.93898 294.00000,692.75333 294.00000,692.19032 C 294.00000,691.62731 294.56250,690.96577 295.25000,690.72024 C 295.93750,690.47470 296.15500,689.90470 295.73333,689.45357 C 295.31167,689.00244 294.43417,689.16583 293.78333,689.81667 C 291.95300,691.64700 287.54753,691.21853 284.63410,688.92682 C 281.60147,686.54136 278.35743,686.74100 278.79384,689.28625 C 279.01799,690.59359 278.36584,691.00000 276.04384,691.00000 C 272.70878,691.00000 272.14539,689.79064 274.54815,687.78943 C 275.39963,687.08024 277.17918,685.48750 278.50269,684.25000 C 281.07815,681.84193 284.90474,681.30474 286.69934,683.09934 C 287.30397,683.70397 288.70240,683.91184 289.80696,683.56127 C 292.25885,682.78307 293.55741,680.00000 291.46862,680.00000 C 289.72034,680.00000 289.52618,678.41087 291.15170,677.40624 C 291.78514,677.01476 292.84725,677.43820 293.51195,678.34722 C 295.19392,680.64746 296.00000,680.41076 296.00000,677.61663 C 296.00000,674.74054 293.51002,673.87006 288.50927,674.99791 C 285.51392,675.67347 284.72654,675.46619 283.38156,673.64801 C 282.19744,672.04730 281.66076,671.84732 281.27524,672.86315 C 280.87615,673.91473 280.58406,673.94502 279.99734,672.99569 C 279.43238,672.08158 278.43709,672.35630 276.12749,674.06386 C 273.20747,676.22273 273.11840,676.47335 274.66410,678.18132 C 275.56933,679.18160 276.05204,680.00000 275.73678,680.00000 C 275.42151,680.00000 274.45177,680.27314 273.58179,680.60699 C 272.36508,681.07388 272.00000,680.54935 272.00000,678.33439 C 272.00000,676.04409 271.24949,675.05063 268.33255,673.47976 C 265.62196,672.02001 264.55659,671.83022 264.24922,672.75235 C 264.02048,673.43856 263.23333,674.00000 262.50000,674.00000 C 261.76667,674.00000 260.93843,674.56250 260.65946,675.25000 C 260.27808,676.18991 259.89436,676.12790 259.11261,675.00000 C 258.42147,674.00284 256.38460,673.50000 253.03647,673.50000 C 248.69298,673.50000 247.98914,673.22481 247.92105,671.50000 C 247.87763,670.40000 247.61513,670.06250 247.33772,670.75000 C 246.26369,673.41172 243.33950,672.01282 242.19719,668.29084 C 240.90523,664.08125 241.68586,663.04108 246.15638,663.01531 C 248.41409,663.00230 248.72821,663.33768 248.24939,665.25000 C 247.70558,667.42187 247.75497,667.43923 249.67175,665.75000 C 250.76390,664.78750 252.18455,664.00000 252.82874,664.00000 C 254.53999,664.00000 254.26222,660.31460 252.50000,659.63837 C 250.75296,658.96797 250.51403,655.88597 252.08713,654.31287 C 254.07351,652.32649 251.36916,652.00742 249.25342,653.97853 C 247.23592,655.85812 247.19607,655.85777 246.69874,653.95599 C 246.42088,652.89344 245.02499,651.57980 243.59677,651.03679 C 242.16855,650.49378 241.00000,649.65032 241.00000,649.16243 C 241.00000,648.19106 251.95810,646.62477 252.80799,647.47465 C 253.09693,647.76359 252.26833,648.00000 250.96667,648.00000 C 249.31680,648.00000 248.91738,648.31738 249.64787,649.04787 C 251.08632,650.48632 256.25508,648.10711 255.57002,646.32188 C 255.29103,645.59485 255.49865,645.00000 256.03138,645.00000 C 256.56412,645.00000 257.00000,645.62686 257.00000,646.39301 C 257.00000,647.15917 257.62045,648.02411 258.37878,648.31511 C 259.34876,648.68733 259.91253,647.75545 260.28025,645.17210 C 260.56772,643.15244 261.12042,640.71250 261.50846,639.75000 C 262.04715,638.41381 261.71575,638.00000 260.10699,638.00000 C 258.94814,638.00000 258.00000,638.45000 258.00000,639.00000 C 258.00000,639.55000 257.55000,640.00000 257.00000,640.00000 C 256.45000,640.00000 256.00000,639.50226 256.00000,638.89392 C 256.00000,638.28558 254.87500,636.90292 253.50000,635.82134 C 252.12500,634.73976 251.00000,633.43750 251.00000,632.92742 C 251.00000,631.52472 255.76762,631.81601 256.27976,633.25000 C 256.52530,633.93750 257.11227,634.13803 257.58413,633.69563 C 258.05600,633.25322 257.79314,632.49019 257.00000,632.00000 C 256.20686,631.50981 255.87151,630.79515 256.25479,630.41187 C 256.63807,630.02859 257.63754,630.28422 258.47583,630.97994 C 259.70477,631.99987 260.29523,631.99987 261.52417,630.97994 C 262.36246,630.28422 263.36193,630.02859 263.74521,630.41187 C 264.12849,630.79515 263.79314,631.50981 263.00000,632.00000 C 262.20686,632.49019 261.90686,633.24019 262.33333,633.66667 C 262.75981,634.09314 263.49587,633.81569 263.96903,633.05011 C 264.69023,631.88318 265.25244,631.93538 267.44652,633.37300 C 270.02693,635.06375 270.10565,637.00000 267.59399,637.00000 C 266.88561,637.00000 265.37785,637.80499 264.24343,638.78888 C 262.37705,640.40758 262.28339,641.02590 263.25890,645.28888 C 263.85183,647.87999 264.59864,649.99776 264.91848,649.99503 C 265.23831,649.99230 266.83552,648.92150 268.46783,647.61547 L 271.43566,645.24088 L 272.49737,647.37044 C 273.92681,650.23762 278.18575,650.21575 279.45064,647.33474 C 280.17297,645.68951 281.44340,645.08659 284.74028,644.82438 C 287.12673,644.63458 289.39894,644.76391 289.78964,645.11178 C 291.19481,646.36293 298.87293,647.01462 299.53761,645.93915 C 300.41419,644.52081 297.33499,641.21811 294.64557,640.69205 C 292.97038,640.36437 293.11583,640.24251 295.30902,640.13618 C 296.85398,640.06128 297.88807,639.62791 297.60700,639.17312 C 297.32593,638.71834 294.73173,638.64955 291.84212,639.02025 C 288.95252,639.39096 286.11842,639.29770 285.54414,638.81302 C 284.96987,638.32834 283.61699,637.32083 282.53775,636.57411 C 280.86767,635.41858 280.77423,634.97697 281.91019,633.60821 C 283.04323,632.24298 282.99976,632.00000 281.62244,632.00000 C 280.73010,632.00000 280.00000,632.46774 280.00000,633.03943 C 280.00000,633.64099 279.40334,633.53568 278.58361,632.78943 C 276.40156,630.80299 278.49538,629.44905 281.57760,630.85340 C 283.02512,631.51294 286.84125,632.32763 290.05790,632.66384 C 294.05076,633.08118 296.00051,633.74243 296.20317,634.74799 C 296.43088,635.87788 296.96571,635.69848 298.50000,633.97752 L 300.50000,631.73420 L 298.16417,632.46173 C 296.03587,633.12462 295.92794,633.00316 296.94936,631.09463 C 297.56591,629.94258 298.67705,629.00000 299.41855,629.00000 C 300.16005,629.00000 301.00209,628.10000 301.28975,627.00000 C 302.03344,624.15612 304.00000,624.51892 304.00000,627.50000 C 304.00000,628.87500 303.55000,630.00000 303.00000,630.00000 C 302.45000,630.00000 302.00000,630.45000 302.00000,631.00000 C 302.00000,631.55000 304.25000,632.00000 307.00000,632.00000 C 312.13592,632.00000 312.92718,631.38281 310.75000,629.07500 C 309.75000,628.01500 309.75000,627.65833 310.75000,627.29167 C 312.18420,626.76579 312.46428,624.00000 311.08333,624.00000 C 310.57917,624.00000 309.97780,624.56250 309.74697,625.25000 C 309.41981,626.22438 308.73398,626.18392 306.63650,625.06650 C 302.91400,623.08335 298.91939,624.60216 297.00000,628.73046 C 295.70428,631.51733 294.98929,631.95966 291.75000,631.97836 C 289.07371,631.99380 288.00000,631.57051 288.00000,630.50000 C 288.00000,629.41667 289.11111,629.00000 292.00000,629.00000 C 294.20000,629.00000 296.00000,628.55000 296.00000,628.00000 C 296.00000,627.45000 294.20000,627.00000 292.00000,627.00000 C 289.74227,627.00000 288.00000,626.51783 288.00000,625.89301 C 288.00000,625.28417 287.28319,625.06109 286.40710,625.39728 C 281.88070,627.13422 280.00000,627.19619 280.00000,625.60841 C 280.00000,623.51755 279.05613,623.56818 277.36024,625.75000 C 276.07059,627.40918 275.92378,627.40148 274.53126,625.60162 C 273.32120,624.03759 272.79443,623.92572 271.54041,624.96646 C 270.70326,625.66123 268.66420,626.03094 267.00916,625.78804 C 265.26306,625.53176 263.98665,625.79836 263.96820,626.42319 C 263.95070,627.01544 263.38820,626.82500 262.71820,626.00000 C 262.04819,625.17500 260.26250,623.86146 258.75000,623.08102 C 257.23750,622.30058 256.00002,621.17558 256.00005,620.58102 C 256.00012,619.01325 267.22831,619.18493 267.75358,620.76073 C 268.42288,622.76864 271.67854,622.18571 274.69424,619.51800 C 277.08797,617.40048 277.27972,616.87689 276.00000,615.95249 C 274.83417,615.11037 275.05694,615.02509 277.00000,615.56971 C 278.37500,615.95510 280.73049,617.54815 282.23442,619.10981 C 284.76176,621.73416 288.00000,622.17405 288.00000,619.89301 C 288.00000,619.40186 289.81412,619.00000 292.03138,619.00000 C 294.69235,619.00000 296.25844,618.49009 296.63837,617.50000 C 297.40318,615.50695 302.61299,615.54910 303.38256,617.55456 C 303.90970,618.92827 304.26753,618.89918 306.45813,617.30456 C 307.82159,616.31205 308.95129,614.98998 308.96858,614.36663 C 309.00798,612.94534 312.54401,611.95090 313.66567,613.04566 C 314.12455,613.49353 316.32785,614.48468 318.56189,615.24821 C 322.47066,616.58412 322.66502,616.54906 323.71780,614.31822 C 324.31952,613.04320 324.40036,612.00000 323.89744,612.00000 C 323.39453,612.00000 323.52693,611.12911 324.19168,610.06468 C 324.85642,609.00026 325.72618,608.33077 326.12447,608.57693 C 326.52276,608.82308 327.05549,608.23148 327.30832,607.26224 C 327.56114,606.29301 327.82020,607.18750 327.88400,609.25000 C 327.98660,612.56671 328.29293,613.00000 330.53518,613.00000 C 332.73177,613.00000 332.93211,612.74166 332.03518,611.06574 C 330.64006,608.45893 330.63594,608.46635 333.61622,608.21969 C 335.80785,608.03831 336.14497,608.33763 335.69350,610.06406 C 335.21424,611.89677 335.48272,612.05289 338.11824,611.47403 C 339.90063,611.08255 341.66348,611.30575 342.54096,612.03399 C 343.70836,613.00285 344.00000,612.94785 344.00000,611.75881 C 344.00000,610.69171 345.12776,610.27273 348.00000,610.27273 C 350.20000,610.27273 352.00000,610.66136 352.00000,611.13636 C 352.00000,611.61136 354.44844,612.00000 357.44098,612.00000 C 360.43352,612.00000 363.16008,612.45000 363.50000,613.00000 C 363.83992,613.55000 363.72748,614.00000 363.25015,614.00000 C 362.77281,614.00000 361.57135,614.59295 360.58023,615.31767 C 358.84699,616.58505 358.84889,616.70604 360.63017,618.48732 C 361.94057,619.79771 362.11921,620.46026 361.24107,620.75298 C 359.16322,621.44559 359.85618,622.99906 362.25000,623.01474 C 364.45343,623.02918 364.44826,623.05552 362.00000,624.28773 C 360.13746,625.22515 359.42202,626.47690 359.19417,629.19688 C 359.02597,631.20487 358.23847,633.38713 357.44417,634.04633 C 355.56147,635.60883 355.61749,636.63924 357.62706,637.41038 C 359.95340,638.30308 361.93062,635.20610 361.96820,630.61071 L 362.00000,626.72142 L 367.25000,627.33039 C 370.95611,627.76029 373.08815,628.61136 374.50000,630.22447 C 375.74151,631.64295 377.73255,632.55827 379.75000,632.63798 C 383.32272,632.77915 383.81219,631.60458 381.53531,628.35387 C 379.73802,625.78789 380.47761,624.85089 383.41789,625.96878 C 384.63462,626.43138 388.30085,627.10683 391.56507,627.46977 C 407.74527,629.26883 412.93539,631.38368 410.82906,635.31940 C 407.92032,640.75444 394.40489,654.14841 392.19893,653.78211 C 390.98789,653.58102 390.40633,654.31877 390.17382,656.35109 C 389.72011,660.31697 386.38277,665.47864 384.26476,665.49029 C 382.11667,665.50211 382.28543,668.09784 385.02627,677.20328 L 386.92165,683.50000 L 386.65782,677.62817 L 386.39398,671.75634 L 388.65274,674.58909 C 391.73775,678.45806 392.65030,676.99132 390.56133,671.52142 C 388.42248,665.92092 388.70573,665.01921 393.04437,663.61690 C 396.05995,662.64223 396.56367,661.99917 397.00000,658.56710 C 397.42072,655.25781 397.95700,654.51275 400.38215,653.86824 C 404.42614,652.79351 409.69665,646.82124 419.11552,632.64056 C 426.10987,622.11014 426.85484,617.62351 422.30859,613.41018 C 419.13678,610.47066 420.55233,610.75577 428.75000,614.70760 C 433.68238,617.08534 434.00000,617.46246 434.00000,620.94109 C 434.00000,622.97754 434.72896,626.78311 435.61992,629.39793 C 437.74188,635.62555 437.03584,642.55076 433.60470,649.16413 C 432.12461,652.01695 430.64689,656.29708 430.32089,658.67553 C 429.99488,661.05399 429.43700,663.00000 429.08114,663.00000 C 427.91114,663.00000 422.58358,667.39889 417.75000,672.35597 C 414.17584,676.02145 413.00000,677.98614 413.00000,680.29267 C 413.00000,683.73124 414.47756,689.04565 416.64855,693.41556 C 417.44521,695.01912 418.71248,699.51912 419.46471,703.41556 C 421.48126,713.86090 422.43514,715.73715 426.61740,717.48461 C 430.02194,718.90712 430.69802,718.87967 435.40289,717.12792 C 440.31374,715.29948 440.67079,714.89849 445.17397,706.15425 C 447.74466,701.16251 450.31651,696.49823 450.88919,695.78918 C 451.46188,695.08013 453.21356,692.92500 454.78182,691.00000 C 458.19865,686.80592 461.53828,681.37566 464.55177,675.11398 C 480.41070,642.16100 484.34570,635.00000 486.59457,635.00000 C 487.02026,635.00000 489.21350,635.89312 491.46843,636.98472 C 493.72336,638.07631 499.26544,639.74669 503.78415,640.69667 C 508.30287,641.64665 512.00000,642.77614 512.00000,643.20664 C 512.00000,643.63715 509.97500,647.89234 507.50000,652.66263 C 505.02500,657.43292 503.00000,661.73806 503.00000,662.22961 C 503.00000,664.41253 495.49142,678.24487 494.07483,678.67161 C 487.41381,680.67816 486.21341,681.88672 481.61342,691.21772 C 479.07604,696.36475 477.00000,701.10966 477.00000,701.76195 C 477.00000,702.98726 472.04869,716.01792 469.40506,721.75000 C 468.46160,723.79568 467.18243,725.00000 465.95308,725.00000 C 464.69360,725.00000 464.00000,725.68205 464.00000,726.92054 C 464.00000,728.99415 465.46946,729.47674 475.00000,730.53314 C 478.02500,730.86844 483.74518,731.80028 487.71151,732.60390 C 497.57639,734.60262 498.29882,734.05084 500.86334,722.55885 C 501.97520,717.57648 503.18676,709.67500 503.55570,705.00000 C 503.92465,700.32500 504.49015,696.06048 504.81238,695.52330 C 505.13461,694.98611 505.54376,692.73611 505.72159,690.52330 C 506.11207,685.66457 508.62284,679.34941 511.43504,676.15268 C 513.95177,673.29182 518.07814,671.17515 528.31084,667.49606 L 536.12168,664.68772 L 539.00214,658.33500 C 540.58640,654.84100 542.57741,651.71566 543.42662,651.38979 C 544.74835,650.88259 558.00963,653.57279 566.00000,655.96906 C 568.30245,656.65955 568.14442,656.81468 564.00000,657.93226 C 557.58410,659.66237 551.62995,662.73304 548.64032,665.85354 C 545.08356,669.56599 538.85563,693.39535 537.48131,708.55023 C 536.94280,714.48845 536.10440,719.80187 533.30274,735.03219 C 532.88651,737.29488 533.40439,737.79603 538.16847,739.74080 C 541.10081,740.93783 547.05505,742.85616 551.40011,744.00376 C 555.74517,745.15136 560.10309,746.51999 561.08437,747.04515 C 564.09313,748.65539 564.88108,748.15534 566.02416,743.91026 C 567.83648,737.17983 569.96388,722.85976 569.98254,717.26545 C 570.00053,711.87061 574.77554,686.48270 577.49267,677.33537 C 578.77378,673.02247 579.79497,671.66191 583.68483,669.08537 C 586.24676,667.38842 588.94968,666.00000 589.69132,666.00000 C 590.43295,666.00000 592.87267,664.84292 595.11292,663.42872 C 597.35317,662.01451 599.75615,661.07618 600.45289,661.34355 C 601.14962,661.61091 602.22242,663.82624 602.83689,666.26651 C 603.45136,668.70678 605.76443,673.41435 607.97705,676.72778 C 610.18967,680.04120 612.00000,683.39162 612.00000,684.17315 C 612.00000,684.95467 610.21864,687.33356 608.04142,689.45956 C 605.86420,691.58556 604.34545,693.74993 604.66642,694.26927 C 604.99428,694.79976 605.62671,694.61900 606.10969,693.85676 C 606.79451,692.77597 606.97249,692.76626 606.98469,693.80902 C 606.99311,694.52898 607.33750,694.90945 607.75000,694.65451 C 608.16250,694.39957 608.59806,695.16051 608.71790,696.34549 C 610.40215,712.99850 610.56194,711.54523 606.45454,716.93121 C 603.00384,721.45607 598.43805,725.22061 589.03112,731.29701 C 587.12323,732.52940 584.30836,735.56582 582.77584,738.04461 C 580.04760,742.45743 579.23032,745.69454 575.02027,768.76282 C 572.29657,783.68694 569.21929,787.99003 559.40556,790.59749 C 551.25505,792.76304 539.68476,792.00062 529.62236,788.63493 C 517.71535,784.65225 514.59944,784.98666 502.33909,791.56303 C 492.72338,796.72084 490.93841,797.30357 477.83444,799.56303 C 454.25530,803.62867 447.36384,802.76555 426.86665,793.17961 C 422.26499,791.02755 416.02500,788.20555 413.00000,786.90850 C 401.60636,782.02316 390.41716,775.61273 381.65224,768.94897 C 370.04678,760.12562 368.31012,759.82269 352.42709,763.85107 C 335.46857,768.15223 330.04394,768.94491 307.19870,770.46016 C 292.73950,771.41920 280.59278,771.57443 264.98888,770.99959 C 251.27078,770.49423 241.66342,770.55637 239.29018,771.16582 C 237.20558,771.70115 234.52562,772.37801 233.33471,772.66996 C 231.30301,773.16802 231.20098,773.64189 231.68099,780.35038 C 232.16103,787.05937 232.02277,787.70132 229.43753,790.76655 C 226.06340,794.76716 220.41981,798.37749 218.95522,797.47233 C 218.36054,797.10479 217.02342,797.57382 215.98384,798.51462 C 214.94427,799.45542 212.83513,800.32503 211.29686,800.44708 C 209.75859,800.56914 206.25000,801.38917 203.50000,802.26938 C 200.75000,803.14959 196.47500,804.16719 194.00000,804.53071 C 188.81322,805.29252 154.21563,805.95485 149.00000,805.39217 z M 189.41875,802.96186 C 200.85049,801.65225 220.76266,795.04302 219.48838,792.98119 C 219.16264,792.45414 219.54544,792.27208 220.33905,792.57661 C 222.36635,793.35456 228.73597,787.47863 229.46538,784.15763 C 229.81210,782.57903 229.43115,779.92357 228.57477,777.94954 L 227.07828,774.50000 L 227.02383,777.50000 C 226.98021,779.90329 226.75704,780.20164 225.90187,779.00000 C 225.09438,777.86537 224.95838,778.39721 225.34351,781.18347 C 225.74585,784.09420 225.36637,785.39165 223.53460,787.36816 C 221.07931,790.01746 217.32629,790.01387 216.30838,787.36124 C 216.02108,786.61256 215.11102,786.00000 214.28602,786.00000 C 213.36353,786.00000 213.00763,785.42249 213.36163,784.50000 C 213.76303,783.45396 213.26579,782.97873 211.71862,782.92971 C 209.59007,782.86228 209.58119,782.82454 211.50000,782.00000 C 214.51921,780.70260 212.19110,780.90437 205.50000,782.52000 C 198.30929,784.25627 194.06989,784.45063 198.00000,782.86386 C 199.37500,782.30870 202.75000,781.20833 205.50000,780.41859 L 210.50000,778.98270 L 204.50000,779.71160 C 195.37797,780.81978 190.23902,780.31084 186.36316,777.91543 C 182.54120,775.55333 182.85474,774.39477 187.50000,773.71468 C 189.15000,773.47311 186.45000,773.55098 181.50000,773.88773 C 169.06223,774.73387 145.92392,774.65376 131.09703,773.71322 C 119.41496,772.97217 118.77561,773.02692 120.09703,774.65518 C 121.01257,775.78331 121.06572,776.12301 120.25000,775.63294 C 119.56250,775.21990 119.00000,775.32556 119.00000,775.86774 C 119.00000,778.14882 112.61290,780.05460 106.54363,779.58447 C 103.21963,779.32699 101.62500,779.32641 103.00000,779.58319 C 104.37500,779.83997 107.30882,780.46917 109.51960,780.98141 C 115.83795,782.44539 138.41829,784.12723 163.50000,785.00199 L 186.50000,785.80416 L 159.00000,785.46488 C 132.52292,785.13823 127.97034,784.76310 100.50000,780.64463 C 93.219929,779.55317 92.168861,779.19680 95.000000,778.77980 C 97.301941,778.44075 96.719019,778.33146 93.297056,778.46052 C 90.435437,778.56844 88.252212,778.39647 88.445446,778.07837 C 88.638680,777.76027 86.705005,777.41130 84.148390,777.30288 C 80.020195,777.12782 80.395270,777.32951 87.500000,779.10515 C 101.88921,782.70134 102.14135,782.79671 97.000000,782.69848 C 91.906152,782.60116 80.000000,785.02439 80.000000,786.15845 C 80.000000,786.56869 77.883498,786.26736 75.296661,785.48884 C 69.041017,783.60617 68.629537,784.32919 74.689244,786.55614 C 77.335160,787.52852 80.957971,788.90133 82.739935,789.60682 C 93.882316,794.01817 128.87228,801.04775 151.00000,803.32045 C 158.84473,804.12617 181.06590,803.91876 189.41875,802.96186 z M 188.75000,784.29427 C 189.98750,784.05591 192.01250,784.05591 193.25000,784.29427 C 194.48750,784.53262 193.47500,784.72764 191.00000,784.72764 C 188.52500,784.72764 187.51250,784.53262 188.75000,784.29427 z M 224.54112,783.06653 C 224.17858,782.47994 223.44078,782.00000 222.90156,782.00000 C 222.36233,782.00000 222.50139,782.62961 223.21057,783.39914 C 224.64623,784.95696 225.56718,784.72674 224.54112,783.06653 z M 65.140796,781.97804 C 62.743234,780.89012 60.493234,780.01886 60.140796,780.04192 C 58.878532,780.12448 66.531682,783.91659 68.000000,783.93612 C 68.825000,783.94710 67.538358,783.06596 65.140796,781.97804 z M 197.00000,779.00000 C 197.00000,778.45000 196.57656,778.00000 196.05902,778.00000 C 195.54148,778.00000 194.83992,778.45000 194.50000,779.00000 C 194.16008,779.55000 194.58352,780.00000 195.44098,780.00000 C 196.29844,780.00000 197.00000,779.55000 197.00000,779.00000 z M 223.49292,778.01145 C 223.84326,777.44459 223.44186,777.27695 222.55194,777.61844 C 220.81952,778.28323 220.50255,779.00000 221.94098,779.00000 C 222.45852,779.00000 223.15690,778.55515 223.49292,778.01145 z M 67.250000,773.33772 C 66.562500,773.06031 65.437500,773.06031 64.750000,773.33772 C 64.062500,773.61513 64.625000,773.84211 66.000000,773.84211 C 67.375000,773.84211 67.937500,773.61513 67.250000,773.33772 z M 204.32048,771.33366 C 208.07175,770.49435 210.94930,769.61596 210.71503,769.38170 C 210.48077,769.14744 207.41156,769.63407 203.89455,770.46310 C 196.87759,772.11715 191.52381,772.45922 196.00000,770.96750 C 198.42938,770.15790 186.08190,770.58112 179.50000,771.53305 C 177.85000,771.77169 175.82500,771.48193 175.00000,770.88914 C 173.74625,769.98828 173.79582,769.90703 175.30194,770.39421 C 176.35870,770.73605 176.85122,770.56829 176.49292,769.98855 C 176.15690,769.44485 175.00852,769.00000 173.94098,769.00000 C 172.87344,769.00000 172.00000,768.60107 172.00000,768.11350 C 172.00000,766.34033 162.15396,765.18281 157.00000,766.35006 C 155.62500,766.66147 152.35379,767.18897 149.73065,767.52230 C 147.10750,767.85563 145.17231,768.46979 145.43022,768.88710 C 146.03079,769.85883 143.22899,770.02875 122.33296,770.28787 C 112.89109,770.40495 104.79109,770.89772 104.33296,771.38291 C 103.85366,771.89052 106.25977,772.02222 110.00000,771.69309 C 113.57500,771.37850 115.46131,771.43136 114.19181,771.81055 C 112.92230,772.18975 131.14730,772.58093 154.69181,772.67985 C 189.91083,772.82781 198.70916,772.58916 204.32048,771.33366 z M 226.00000,772.62244 C 226.00000,772.41479 225.21250,771.62729 224.25000,770.87244 C 222.66394,769.62857 222.62857,769.66394 223.87244,771.25000 C 225.17881,772.91575 226.00000,773.44548 226.00000,772.62244 z M 493.37882,766.45520 C 494.56428,763.36593 493.98771,759.94068 491.65762,756.23013 C 490.36931,754.17856 488.72064,751.37500 487.99390,750.00000 C 486.73604,747.62010 486.76330,747.57206 488.56143,749.00000 C 489.60030,749.82500 491.51398,751.73750 492.81404,753.25000 C 495.04314,755.84335 499.00000,757.03980 499.00000,755.12046 C 499.00000,754.10043 491.55846,747.87106 488.24582,746.11805 C 486.57746,745.23517 484.96295,745.20216 482.03329,745.99104 C 479.85619,746.57727 476.97499,746.78084 475.63061,746.44342 C 472.86163,745.74846 469.00000,747.43256 469.00000,749.33511 C 469.00000,750.07754 471.49564,751.11531 475.04304,751.84802 C 480.13471,752.89968 481.24658,753.51834 482.10560,755.77774 C 483.44184,759.29231 485.30034,760.38685 486.24127,758.21338 C 486.85862,756.78735 486.93256,756.83542 486.68212,758.50000 C 486.51663,759.60000 485.92254,760.41320 485.36194,760.30711 C 484.05365,760.05953 484.28179,762.53352 485.99609,767.18412 C 487.32194,770.78092 487.41816,770.83512 490.05588,769.47110 C 491.54185,768.70268 493.03717,767.34552 493.37882,766.45520 z M 99.916667,768.35846 C 100.88744,767.52330 94.366287,768.11588 93.000000,768.98697 C 91.978511,769.63824 92.776030,769.74770 95.500000,769.33012 C 97.700000,768.99286 99.687500,768.55561 99.916667,768.35846 z M 105.75000,769.31067 C 104.78750,769.05915 103.21250,769.05915 102.25000,769.31067 C 101.28750,769.56220 102.07500,769.76800 104.00000,769.76800 C 105.92500,769.76800 106.71250,769.56220 105.75000,769.31067 z M 215.25000,768.33772 C 214.56250,768.06031 213.43750,768.06031 212.75000,768.33772 C 212.06250,768.61513 212.62500,768.84211 214.00000,768.84211 C 215.37500,768.84211 215.93750,768.61513 215.25000,768.33772 z M 90.500000,767.00000 C 88.850000,766.58015 86.150000,766.24263 84.500000,766.24996 C 81.607805,766.26280 81.625772,766.28976 85.000000,767.00000 C 86.925000,767.40519 89.625000,767.74271 91.000000,767.75004 C 93.218286,767.76187 93.161943,767.67735 90.500000,767.00000 z M 80.187500,765.31689 C 79.465625,765.02802 78.603125,765.06354 78.270833,765.39583 C 77.938542,765.72812 78.529167,765.96447 79.583333,765.92105 C 80.748276,765.87307 80.985233,765.63611 80.187500,765.31689 z M 472.80496,763.80050 C 479.29374,758.62846 479.37923,758.12604 474.25000,755.30802 C 470.56297,753.28235 460.32988,751.82778 448.16314,751.59994 C 443.45938,751.51186 442.53210,751.84204 440.34644,754.38330 C 438.77927,756.20546 438.21643,757.61643 438.81713,758.21713 C 440.37896,759.77896 454.01154,763.00000 459.05993,763.00000 C 462.01027,763.00000 464.21703,763.55658 464.99809,764.49770 C 466.39016,766.17504 470.25941,765.82950 472.80496,763.80050 z M 541.00000,764.73474 C 539.62500,764.11329 535.85337,762.35373 532.61860,760.82461 C 529.38383,759.29549 526.27899,758.32758 525.71895,758.67370 C 523.91725,759.78721 537.37011,765.93755 541.50000,765.88843 C 543.21597,765.86802 543.14497,765.70418 541.00000,764.73474 z M 549.00000,765.00000 C 550.33333,764.13833 550.33333,764.03673 549.00000,764.08560 C 548.17500,764.11583 546.60000,764.52731 545.50000,765.00000 C 543.50000,765.85943 543.50000,765.85943 545.50000,765.91440 C 546.60000,765.94464 548.17500,765.53316 549.00000,765.00000 z M 74.000000,764.00000 C 72.625000,763.55965 70.600000,763.19936 69.500000,763.19936 C 67.916334,763.19936 68.020417,763.36603 70.000000,764.00000 C 71.375000,764.44035 73.400000,764.80064 74.500000,764.80064 C 76.083666,764.80064 75.979583,764.63397 74.000000,764.00000 z M 218.00000,764.62244 C 218.00000,764.41479 217.21250,763.62729 216.25000,762.87244 C 214.66394,761.62857 214.62857,761.66394 215.87244,763.25000 C 217.17881,764.91575 218.00000,765.44548 218.00000,764.62244 z M 139.76166,762.31292 C 138.80557,762.06263 137.00557,762.05355 135.76166,762.29274 C 134.51775,762.53193 135.30000,762.73672 137.50000,762.74782 C 139.70000,762.75892 140.71775,762.56321 139.76166,762.31292 z M 123.25000,761.29427 C 122.01250,761.05591 119.98750,761.05591 118.75000,761.29427 C 117.51250,761.53262 118.52500,761.72764 121.00000,761.72764 C 123.47500,761.72764 124.48750,761.53262 123.25000,761.29427 z M 211.69424,759.46840 C 210.15107,758.11078 208.39702,757.00000 207.79635,757.00000 C 207.19569,757.00000 208.23328,758.08646 210.10212,759.41436 C 214.51990,762.55341 215.22821,762.57745 211.69424,759.46840 z M 110.65362,759.86597 C 109.33036,759.09681 108.49457,759.10543 107.70362,759.89638 C 106.89879,760.70121 107.39867,760.99177 109.55000,760.96959 C 112.13611,760.94293 112.27225,760.80680 110.65362,759.86597 z M 177.00000,760.05114 C 180.57500,759.65785 174.27500,759.54759 163.00000,759.80612 C 151.72500,760.06466 142.31250,760.43904 142.08333,760.63809 C 141.34701,761.27764 170.27093,760.79143 177.00000,760.05114 z M 101.25000,759.33772 C 100.56250,759.06031 99.437500,759.06031 98.750000,759.33772 C 98.062500,759.61513 98.625000,759.84211 100.00000,759.84211 C 101.37500,759.84211 101.93750,759.61513 101.25000,759.33772 z M 105.52646,758.19313 C 105.21857,757.88524 104.41167,758.19249 103.73333,758.87591 C 102.75307,759.86353 102.86793,759.97839 104.29313,759.43571 C 105.27935,759.06018 105.83435,758.50102 105.52646,758.19313 z M 118.76166,759.31292 C 117.80557,759.06263 116.00557,759.05355 114.76166,759.29274 C 113.51775,759.53193 114.30000,759.73672 116.50000,759.74782 C 118.70000,759.75892 119.71775,759.56321 118.76166,759.31292 z M 91.730968,758.30701 C 90.758001,758.05347 89.408001,758.07014 88.730968,758.34406 C 88.053936,758.61799 88.850000,758.82543 90.500000,758.80505 C 92.150000,758.78467 92.703936,758.56055 91.730968,758.30701 z M 191.18750,758.31689 C 190.46562,758.02802 189.60313,758.06354 189.27083,758.39583 C 188.93854,758.72812 189.52917,758.96447 190.58333,758.92105 C 191.74828,758.87307 191.98523,758.63611 191.18750,758.31689 z M 534.00000,758.00000 C 534.00000,757.45000 533.52344,757.00000 532.94098,757.00000 C 532.35852,757.00000 532.16008,757.45000 532.50000,758.00000 C 532.83992,758.55000 533.31648,759.00000 533.55902,759.00000 C 533.80156,759.00000 534.00000,758.55000 534.00000,758.00000 z M 83.916667,756.63547 C 83.687500,756.43498 81.025000,756.00094 78.000000,755.67093 C 74.408160,755.27910 73.193876,755.38118 74.500000,755.96518 C 76.393000,756.81159 84.802153,757.41016 83.916667,756.63547 z M 530.45000,756.10038 C 528.84229,754.57792 506.93220,743.73446 506.44603,744.22064 C 506.07632,744.59035 529.38070,756.67528 530.95000,756.92764 C 531.19750,756.96744 530.97250,756.59517 530.45000,756.10038 z M 63.187500,754.31689 C 62.465625,754.02802 61.603125,754.06354 61.270833,754.39583 C 60.938542,754.72812 61.529167,754.96447 62.583333,754.92105 C 63.748276,754.87307 63.985233,754.63611 63.187500,754.31689 z M 154.25000,754.33772 C 153.56250,754.06031 152.43750,754.06031 151.75000,754.33772 C 151.06250,754.61513 151.62500,754.84211 153.00000,754.84211 C 154.37500,754.84211 154.93750,754.61513 154.25000,754.33772 z M 192.72963,753.66497 C 193.95592,753.50498 195.30592,753.01403 195.72963,752.57397 C 196.15333,752.13391 194.02500,752.11784 191.00000,752.53826 C 187.97500,752.95869 180.32500,753.64991 174.00000,754.07430 L 162.50000,754.84594 L 176.50000,754.40090 C 184.20000,754.15613 191.50333,753.82496 192.72963,753.66497 z M 59.916667,753.62813 C 59.687500,753.42360 57.250000,752.99639 54.500000,752.67878 C 51.128083,752.28933 50.314041,752.37796 52.000000,752.95097 C 54.498401,753.80010 60.704108,754.33091 59.916667,753.62813 z M 127.18750,753.31689 C 126.46563,753.02802 125.60313,753.06354 125.27083,753.39583 C 124.93854,753.72812 125.52917,753.96447 126.58333,753.92105 C 127.74828,753.87307 127.98523,753.63611 127.18750,753.31689 z M 202.18750,752.31689 C 201.46562,752.02802 200.60313,752.06354 200.27083,752.39583 C 199.93854,752.72812 200.52917,752.96447 201.58333,752.92105 C 202.74828,752.87307 202.98523,752.63611 202.18750,752.31689 z M 47.000000,751.60699 C 47.000000,751.39083 46.301628,750.94599 45.448062,750.61844 C 44.558137,750.27695 44.156740,750.44459 44.507079,751.01145 C 45.094337,751.96166 47.000000,752.41690 47.000000,751.60699 z M 96.750000,751.31067 C 95.787500,751.05915 94.212500,751.05915 93.250000,751.31067 C 92.287500,751.56220 93.075000,751.76800 95.000000,751.76800 C 96.925000,751.76800 97.712500,751.56220 96.750000,751.31067 z M 90.500000,750.00000 C 90.160081,749.45000 87.321024,749.07070 84.190983,749.15710 L 78.500000,749.31421 L 83.500000,750.00000 C 86.250000,750.37719 89.089058,750.75649 89.809017,750.84290 C 90.528976,750.92930 90.839919,750.55000 90.500000,750.00000 z M 408.00000,749.08790 C 408.00000,748.58624 409.83517,747.86575 412.07816,747.48679 C 415.99645,746.82480 416.07438,746.74040 414.06619,745.33381 C 412.91661,744.52861 408.94394,742.80813 405.23803,741.51050 C 401.53211,740.21288 397.15000,738.59450 395.50000,737.91411 C 393.85000,737.23372 392.10729,736.76811 391.62732,736.87941 C 391.14734,736.99072 391.02072,736.38839 391.34593,735.54089 C 391.67115,734.69340 391.54348,734.00000 391.06223,734.00000 C 390.58099,734.00000 390.41252,733.13853 390.68786,732.08562 C 391.37239,729.46799 387.77354,727.51564 385.00000,729.00000 C 382.34240,730.42230 382.46364,731.36007 385.96257,736.44559 C 388.23010,739.74134 390.98670,741.82866 397.71257,745.34275 C 406.97446,750.18186 408.00000,750.55521 408.00000,749.08790 z M 393.59549,746.84549 C 393.98793,746.21051 393.88050,745.95582 393.35676,746.27951 C 391.99459,747.12138 390.77930,746.11363 386.76253,740.81136 C 384.80897,738.23261 382.93822,736.39511 382.60531,736.72803 C 382.27239,737.06095 382.00000,736.63843 382.00000,735.78911 C 382.00000,734.93979 381.26380,733.63390 380.36399,732.88712 C 379.46419,732.14035 377.63171,729.79274 376.29181,727.67020 C 373.71498,723.58825 371.98979,723.19843 374.05311,727.16435 C 375.53624,730.01509 384.69003,741.47608 388.49795,745.25000 C 391.54862,748.27343 392.52425,748.57880 393.59549,746.84549 z M 59.500000,745.47200 C 57.300000,744.74694 54.600000,744.16330 53.500000,744.17503 C 52.400000,744.18675 53.525000,744.78299 56.000000,745.50000 C 61.872240,747.20119 64.678619,747.17874 59.500000,745.47200 z M 549.59466,746.15316 C 549.30681,745.68741 544.89275,745.01727 539.78564,744.66398 C 534.67854,744.31068 528.70000,743.79868 526.50000,743.52619 L 522.50000,743.03076 L 526.50000,744.09216 C 528.70000,744.67593 534.55000,745.50489 539.50000,745.93428 C 544.45000,746.36367 548.86406,746.77912 549.30902,746.85750 C 549.75398,746.93587 549.88252,746.61892 549.59466,746.15316 z M 493.75949,744.75000 C 493.06637,742.62217 488.38419,740.95061 477.22823,738.84825 C 470.96521,737.66798 466.01155,736.20225 465.32644,735.32666 C 464.57982,734.37246 460.57805,733.35120 454.32644,732.51946 C 448.92190,731.80041 443.19538,730.87375 441.60085,730.46021 C 439.63941,729.95151 438.91457,730.05275 439.35984,730.77322 C 440.21098,732.15040 448.77993,733.98029 454.79922,734.07029 C 460.33314,734.15303 463.95786,735.28998 462.18362,736.38651 C 461.53263,736.78885 461.00000,737.70259 461.00000,738.41706 C 461.00000,739.31499 465.39981,740.41995 475.25000,741.99576 C 483.08750,743.24958 489.92750,744.66346 490.45000,745.13772 C 491.88813,746.44306 494.22193,746.16965 493.75949,744.75000 z M 49.000000,743.00000 C 47.625000,742.55965 45.600000,742.19936 44.500000,742.19936 C 42.916334,742.19936 43.020417,742.36603 45.000000,743.00000 C 46.375000,743.44035 48.400000,743.80064 49.500000,743.80064 C 51.083666,743.80064 50.979583,743.63397 49.000000,743.00000 z M 188.00000,741.94098 C 188.00000,741.42344 187.55000,741.00000 187.00000,741.00000 C 186.45000,741.00000 186.00000,741.70156 186.00000,742.55902 C 186.00000,743.41648 186.45000,743.83992 187.00000,743.50000 C 187.55000,743.16008 188.00000,742.45852 188.00000,741.94098 z M 192.66228,740.75000 C 192.38487,740.06250 192.15789,740.62500 192.15789,742.00000 C 192.15789,743.37500 192.38487,743.93750 192.66228,743.25000 C 192.93969,742.56250 192.93969,741.43750 192.66228,740.75000 z M 437.48130,741.03026 C 438.11992,739.99695 431.31154,736.72949 429.66407,737.27864 C 429.12606,737.45798 430.21905,738.58607 432.09294,739.78551 C 435.93682,742.24591 436.63089,742.40624 437.48130,741.03026 z M 47.000000,740.00000 C 47.000000,739.45000 46.100000,739.00000 45.000000,739.00000 C 43.731830,739.00000 43.028888,738.35965 43.078947,737.25000 C 43.126110,736.20456 43.360964,736.00326 43.662281,736.75000 C 43.939693,737.43750 44.605724,738.00000 45.142350,738.00000 C 45.678976,738.00000 45.885061,737.62304 45.600316,737.16232 C 44.959839,736.12600 52.767161,735.73521 54.350750,736.72432 C 56.144184,737.84450 59.000000,738.08162 59.000000,737.11036 C 59.000000,735.78049 55.175942,735.02881 48.333333,735.01365 C 44.369918,735.00488 41.971160,734.55339 41.619465,733.75000 C 41.318503,733.06250 41.168503,734.05732 41.286131,735.96070 C 41.456207,738.71277 42.011911,739.56261 44.000000,740.11102 C 45.375000,740.49031 46.612500,740.84550 46.750000,740.90032 C 46.887500,740.95514 47.000000,740.55000 47.000000,740.00000 z M 107.00000,739.96440 C 103.42500,739.56255 97.125000,739.26224 93.000000,739.29704 L 85.500000,739.36032 L 93.000000,740.00000 C 97.125000,740.35183 103.42500,740.65214 107.00000,740.66735 L 113.50000,740.69503 L 107.00000,739.96440 z M 186.71025,738.00000 C 186.25237,736.24907 186.70486,735.98525 190.34362,735.88158 C 192.62963,735.81645 194.83750,735.81645 195.25000,735.88158 C 195.66250,735.94671 196.00000,735.55000 196.00000,735.00000 C 196.00000,734.45000 195.32500,734.00000 194.50000,734.00000 C 193.67500,734.00000 193.00000,733.51786 193.00000,732.92857 C 193.00000,732.33929 192.27277,732.58438 191.38393,733.47321 C 188.87579,735.98136 187.55294,734.78440 186.90710,729.42245 L 186.31421,724.50000 L 186.15710,729.63871 C 186.00507,734.61155 185.89510,734.79564 182.75000,735.34198 C 179.24442,735.95094 165.69160,737.76288 160.00000,738.38353 C 158.07500,738.59344 161.67500,738.57994 168.00000,738.35352 C 174.32500,738.12710 180.96250,737.67985 182.75000,737.35963 C 185.31288,736.90051 186.00000,737.11808 186.00000,738.38871 C 186.00000,739.27492 186.27748,740.00000 186.61663,740.00000 C 186.95578,740.00000 186.99791,739.10000 186.71025,738.00000 z M 224.36889,739.21214 C 224.63670,738.77882 223.65076,738.33327 222.17791,738.22203 C 220.11669,738.06635 219.84543,738.24425 221.00000,738.99457 C 222.83397,740.18641 223.73095,740.24434 224.36889,739.21214 z M 82.767909,738.28547 C 81.265259,738.05730 78.565259,738.05271 76.767909,738.27527 C 74.970559,738.49783 76.200000,738.68452 79.500000,738.69013 C 82.800000,738.69574 84.270559,738.51365 82.767909,738.28547 z M 70.187500,737.31689 C 69.465625,737.02802 68.603125,737.06354 68.270833,737.39583 C 67.938542,737.72812 68.529167,737.96447 69.583333,737.92105 C 70.748276,737.87307 70.985233,737.63611 70.187500,737.31689 z M 470.73097,735.30701 C 469.75800,735.05347 468.40800,735.07014 467.73097,735.34406 C 467.05394,735.61799 467.85000,735.82543 469.50000,735.80505 C 471.15000,735.78467 471.70394,735.56055 470.73097,735.30701 z M 201.25000,734.33772 C 200.56250,734.06031 199.43750,734.06031 198.75000,734.33772 C 198.06250,734.61513 198.62500,734.84211 200.00000,734.84211 C 201.37500,734.84211 201.93750,734.61513 201.25000,734.33772 z M 34.500000,732.00000 C 34.160081,731.45000 33.683524,731.00000 33.440983,731.00000 C 33.198442,731.00000 33.000000,731.45000 33.000000,732.00000 C 33.000000,732.55000 33.476558,733.00000 34.059017,733.00000 C 34.641476,733.00000 34.839919,732.55000 34.500000,732.00000 z M 36.361626,730.50000 C 36.045044,729.67500 35.073159,729.00000 34.201882,729.00000 C 32.918459,729.00000 32.986226,729.27871 34.558870,730.46820 C 37.002263,732.31629 37.058985,732.31729 36.361626,730.50000 z M 426.97104,730.03906 C 428.70155,728.94465 428.96712,729.18309 422.00000,725.57603 C 416.70479,722.83456 409.00000,716.44612 409.00000,714.79705 C 409.00000,714.35867 408.15078,713.15078 407.11284,712.11284 C 406.07490,711.07490 404.73313,709.38740 404.13113,708.36284 C 403.21124,706.79724 402.88606,706.72943 402.09317,707.93786 C 401.01896,709.57507 401.41529,710.25209 408.00000,718.02800 C 410.47500,720.95074 415.20000,725.06083 418.50000,727.16154 C 425.17788,731.41252 424.93158,731.32886 426.97104,730.03906 z M 296.00000,726.44098 C 296.00000,725.58352 295.55000,725.16008 295.00000,725.50000 C 294.45000,725.83992 294.00000,726.54148 294.00000,727.05902 C 294.00000,727.57656 294.45000,728.00000 295.00000,728.00000 C 295.55000,728.00000 296.00000,727.29844 296.00000,726.44098 z M 236.00000,720.10134 C 238.34034,719.18901 238.36087,719.12272 236.32143,719.06339 C 235.12321,719.02852 233.43571,719.70714 232.57143,720.57143 C 231.14286,722.00000 230.99361,721.93182 230.92971,719.82143 C 230.86514,717.68857 230.79703,717.65962 230.09119,719.46506 C 229.10102,721.99778 231.01117,724.34123 232.48724,722.40464 C 233.04426,721.67384 234.62500,720.63736 236.00000,720.10134 z M 241.03517,722.45762 C 242.00474,721.28936 242.03444,720.63444 241.15762,719.75762 C 240.28079,718.88079 240.00000,719.11342 240.00000,720.71667 C 240.00000,721.88083 239.43750,723.06031 238.75000,723.33772 C 237.96458,723.65464 237.91907,723.87145 238.62756,723.92105 C 239.24771,723.96447 240.33114,723.30593 241.03517,722.45762 z M 298.00000,721.50000 C 299.01957,720.27149 298.95124,720.00000 297.62244,720.00000 C 296.73010,720.00000 296.00000,720.67500 296.00000,721.50000 C 296.00000,722.32500 296.16990,723.00000 296.37756,723.00000 C 296.58521,723.00000 297.31531,722.32500 298.00000,721.50000 z M 186.60417,719.27083 C 186.27187,718.93854 186.03553,719.52917 186.07895,720.58333 C 186.12693,721.74828 186.36389,721.98523 186.68311,721.18750 C 186.97198,720.46563 186.93646,719.60312 186.60417,719.27083 z M 244.18333,714.78333 C 243.46577,714.06577 243.00000,714.00673 243.00000,714.63333 C 243.00000,715.96811 244.18261,717.15072 244.85000,716.48333 C 245.13417,716.19917 244.83417,715.43417 244.18333,714.78333 z M 186.60417,713.27083 C 186.27187,712.93854 186.03553,713.52917 186.07895,714.58333 C 186.12693,715.74828 186.36389,715.98523 186.68311,715.18750 C 186.97198,714.46563 186.93646,713.60312 186.60417,713.27083 z M 418.32191,709.25000 C 417.46573,706.63750 415.70458,702.25000 414.40824,699.50000 C 413.11189,696.75000 411.55243,692.13750 410.94276,689.25000 C 410.33309,686.36250 409.42156,684.00000 408.91714,684.00000 C 407.63017,684.00000 407.76994,685.86232 409.49219,691.66175 C 411.05111,696.91120 418.65426,714.00000 419.43092,714.00000 C 419.67715,714.00000 419.17809,711.86250 418.32191,709.25000 z M 411.71147,711.36558 C 411.89653,710.81041 410.52446,708.78749 408.66243,706.87022 C 404.39761,702.47887 402.17580,694.27860 402.46214,683.98610 C 402.60823,678.73458 402.19722,675.61345 401.08520,673.52994 C 398.76531,669.18334 396.30411,666.69402 395.07659,667.45266 C 393.28043,668.56275 393.85992,671.83121 396.58227,675.94495 C 398.34793,678.61305 399.46898,682.16392 400.12725,687.17351 C 400.65674,691.20308 402.01288,697.45769 403.14089,701.07265 C 405.89800,709.90835 410.39641,715.31077 411.71147,711.36558 z M 246.07732,709.92268 C 248.14985,707.85015 248.96809,707.88989 252.22248,710.22116 C 254.72801,712.01599 256.90157,709.79126 254.94537,707.43417 C 253.77143,706.01966 253.82040,705.60450 255.28775,704.53154 C 256.22949,703.84293 257.00000,702.52014 257.00000,701.59201 C 257.00000,700.66388 258.06246,698.91349 259.36102,697.70225 C 260.65958,696.49101 262.03991,694.48750 262.42841,693.25000 C 263.05626,691.25009 262.79172,691.00000 260.04834,691.00000 C 257.25548,691.00000 257.02158,691.23780 257.58936,693.50000 C 258.11004,695.57458 257.85803,696.00000 256.10841,696.00000 C 254.94878,696.00000 254.00000,695.55000 254.00000,695.00000 C 254.00000,694.45000 254.45000,694.00000 255.00000,694.00000 C 255.55000,694.00000 256.00000,693.08417 256.00000,691.96482 C 256.00000,690.21850 255.70705,690.08641 253.93608,691.03421 C 252.62469,691.73605 251.43970,691.79468 250.68608,691.19503 C 249.64403,690.36587 246.98056,689.68647 240.74568,688.65942 C 239.78080,688.50048 238.38657,687.54334 237.64738,686.53244 C 236.90820,685.52155 235.78514,685.01476 235.15170,685.40624 C 233.32965,686.53233 233.80966,688.00000 236.00000,688.00000 C 237.64172,688.00000 238.00274,688.67177 238.01531,691.75000 C 238.02373,693.81250 238.51618,696.17500 239.10965,697.00000 C 240.06877,698.33333 240.13646,698.33333 239.71884,697.00000 C 239.32484,695.74205 240.39885,695.55560 246.37451,695.84458 C 253.20703,696.17499 253.37665,696.24242 250.50000,697.48468 L 247.50000,698.78021 L 251.75000,699.51792 C 254.08750,699.92365 256.00000,700.79760 256.00000,701.46003 C 256.00000,703.03799 249.95481,704.86165 246.34049,704.37403 C 244.77822,704.16326 244.06250,704.25537 244.75000,704.57874 C 245.96245,705.14901 246.55107,708.00000 245.45636,708.00000 C 245.15735,708.00000 243.69945,706.87500 242.21657,705.50000 C 240.73370,704.12500 239.29084,703.00689 239.01022,703.01531 C 237.36883,703.06457 236.02266,704.89547 236.57312,706.32995 C 237.26308,708.12795 240.00000,708.65633 240.00000,706.99153 C 240.00000,706.39374 240.81448,706.49170 242.00000,707.23207 C 244.26118,708.64420 244.61569,710.58490 242.75000,711.33772 C 241.75000,711.74123 241.75000,711.85789 242.75000,711.92105 C 243.43750,711.96447 244.93479,711.06521 246.07732,709.92268 z M 360.88719,709.75000 C 360.23644,708.51250 358.42061,705.61892 356.85200,703.31982 C 355.28340,701.02073 354.00000,698.40667 354.00000,697.51081 C 354.00000,696.61494 353.55000,696.16008 353.00000,696.50000 C 352.45000,696.83992 352.00000,696.22828 352.00000,695.14080 C 352.00000,694.05333 351.73255,692.33927 351.40567,691.33179 C 350.91138,689.80833 350.99296,689.75249 351.89035,691.00000 C 352.80526,692.27185 352.98200,692.19581 353.05237,690.50000 C 353.12974,688.63555 353.20891,688.65250 354.22049,690.75000 C 354.81732,691.98750 355.68686,693.00000 356.15281,693.00000 C 356.61877,693.00000 357.01497,694.46250 357.03327,696.25000 C 357.05157,698.03750 357.93086,700.53678 358.98725,701.80395 C 360.54079,703.66748 361.53802,703.99018 364.20398,703.49211 C 366.71009,703.02390 368.01770,703.35973 369.66018,704.89343 C 371.56020,706.66762 371.89422,706.71805 372.43371,705.31214 C 372.77106,704.43302 372.81148,703.47815 372.52354,703.19021 C 372.23559,702.90226 372.00000,703.24677 372.00000,703.95578 C 372.00000,704.97159 371.69099,704.98843 370.54244,704.03523 C 369.54111,703.20420 369.28090,701.83559 369.71110,699.66278 C 370.25000,696.94097 370.12922,696.67096 368.84486,697.72621 C 367.70084,698.66614 367.07781,698.67781 366.17621,697.77621 C 365.27460,696.87460 365.00000,696.88015 365.00000,697.80000 C 365.00000,698.46000 363.82686,699.00000 362.39301,699.00000 C 360.42662,699.00000 359.93517,698.61132 360.39301,697.41821 C 360.72686,696.54823 361.00000,695.37077 361.00000,694.80164 C 361.00000,694.23250 362.11755,693.98048 363.48345,694.24159 C 365.64479,694.65475 365.89369,694.42461 365.40243,692.46726 C 365.09196,691.23027 365.30721,689.92817 365.88076,689.57369 C 366.55094,689.15950 366.60271,688.08524 366.02563,686.56742 C 365.53176,685.26844 365.38837,683.94497 365.70697,683.62636 C 366.02558,683.30776 365.57526,682.77424 364.70627,682.44078 C 363.83728,682.10732 363.37102,681.19672 363.67013,680.41724 C 364.45997,678.35896 361.33038,678.64073 359.97418,680.75000 C 359.04704,682.19197 358.93712,682.21189 359.34968,680.86318 C 359.71429,679.67120 359.35896,679.35488 358.04215,679.69923 C 355.54365,680.35260 353.00000,676.41511 353.00000,671.89413 C 353.00000,669.07427 353.45946,668.11311 355.00000,667.71025 C 357.26094,667.11900 357.73874,665.00000 355.61111,665.00000 C 353.95521,665.00000 354.00540,661.91760 355.68439,660.50000 C 356.33580,659.95000 356.78580,657.70694 356.68439,655.51542 C 356.50943,651.73459 356.30941,651.49993 352.77293,650.92656 C 349.78330,650.44185 348.66746,650.73559 347.13345,652.41114 C 345.35180,654.35719 345.30758,655.01277 346.48676,662.00000 C 347.18290,666.12500 348.27345,671.69721 348.91021,674.38269 C 349.54696,677.06818 349.94016,679.31818 349.78397,679.38269 C 347.47823,680.33517 343.29490,683.18883 342.59927,684.28374 C 341.60480,685.84901 346.25595,693.45147 351.11122,698.19682 C 352.62883,699.68008 355.46906,703.39258 357.42283,706.44682 C 360.94941,711.95975 363.15514,714.06286 360.88719,709.75000 z M 191.60417,708.27083 C 191.27187,707.93854 191.03553,708.52917 191.07895,709.58333 C 191.12693,710.74828 191.36389,710.98523 191.68311,710.18750 C 191.97198,709.46563 191.93646,708.60312 191.60417,708.27083 z M 291.42889,708.48630 C 291.30234,706.73107 288.00000,706.74426 288.00000,708.50000 C 288.00000,709.52996 288.65540,710.02043 289.75000,709.80963 C 290.71250,709.62427 291.46800,709.02877 291.42889,708.48630 z M 155.25000,708.33772 C 154.56250,708.06031 153.43750,708.06031 152.75000,708.33772 C 152.06250,708.61513 152.62500,708.84211 154.00000,708.84211 C 155.37500,708.84211 155.93750,708.61513 155.25000,708.33772 z M 301.00000,708.00000 C 301.00000,707.45000 300.55000,707.00000 300.00000,707.00000 C 299.45000,707.00000 299.00000,707.45000 299.00000,708.00000 C 299.00000,708.55000 299.45000,709.00000 300.00000,709.00000 C 300.55000,709.00000 301.00000,708.55000 301.00000,708.00000 z M 235.04584,704.91435 C 236.57869,702.05019 235.20760,701.03786 233.16392,703.52486 C 232.24876,704.63853 230.71250,705.39304 229.75000,705.20154 C 228.78750,705.01003 228.00000,705.33635 228.00000,705.92668 C 228.00000,707.96439 233.86444,707.12180 235.04584,704.91435 z M 372.00000,701.44098 C 372.00000,701.19844 371.55000,701.00000 371.00000,701.00000 C 370.45000,701.00000 370.00000,701.47656 370.00000,702.05902 C 370.00000,702.64148 370.45000,702.83992 371.00000,702.50000 C 371.55000,702.16008 372.00000,701.68352 372.00000,701.44098 z M 238.00000,699.44098 C 238.00000,698.58352 237.55000,698.16008 237.00000,698.50000 C 236.45000,698.83992 236.00000,699.54148 236.00000,700.05902 C 236.00000,700.57656 236.45000,701.00000 237.00000,701.00000 C 237.55000,701.00000 238.00000,700.29844 238.00000,699.44098 z M 280.00000,699.00000 C 280.00000,698.45000 279.29844,698.00000 278.44098,698.00000 C 277.58352,698.00000 277.16008,698.45000 277.50000,699.00000 C 277.83992,699.55000 278.54148,700.00000 279.05902,700.00000 C 279.57656,700.00000 280.00000,699.55000 280.00000,699.00000 z M 174.75071,697.39215 C 176.22784,695.91502 176.20845,695.81339 174.51214,696.14215 C 173.49662,696.33897 172.47844,697.06250 172.24953,697.75000 C 171.67390,699.47883 172.82934,699.31352 174.75071,697.39215 z M 234.00000,696.88197 C 234.00000,696.33197 233.55000,696.16008 233.00000,696.50000 C 232.45000,696.83992 232.00000,697.56803 232.00000,698.11803 C 232.00000,698.66803 232.45000,698.83992 233.00000,698.50000 C 233.55000,698.16008 234.00000,697.43197 234.00000,696.88197 z M 234.45295,694.83948 C 237.70573,693.35742 237.72085,690.64947 234.48456,689.17492 C 232.10081,688.08881 232.00246,688.16160 232.60580,690.56551 C 233.06486,692.39455 232.72045,693.49754 231.37124,694.51930 C 229.09634,696.24209 230.95154,696.43483 234.45295,694.83948 z M 303.00000,695.05902 C 303.00000,694.54148 302.55000,693.83992 302.00000,693.50000 C 301.45000,693.16008 301.00000,693.58352 301.00000,694.44098 C 301.00000,695.29844 301.45000,696.00000 302.00000,696.00000 C 302.55000,696.00000 303.00000,695.57656 303.00000,695.05902 z M 307.00000,690.41708 C 307.00000,690.22221 306.32500,690.32179 305.50000,690.63837 C 304.67500,690.95496 304.00277,692.40333 304.00616,693.85699 L 304.01232,696.50000 L 305.50616,693.63569 C 306.32777,692.06032 307.00000,690.61195 307.00000,690.41708 z M 372.00000,694.50000 C 372.68469,693.67500 372.93265,693.00000 372.55102,693.00000 C 372.16939,693.00000 371.18214,693.67500 370.35714,694.50000 C 369.53214,695.32500 369.28419,696.00000 369.80613,696.00000 C 370.32807,696.00000 371.31531,695.32500 372.00000,694.50000 z M 232.00000,691.50000 C 232.00000,690.41889 230.95276,690.02268 228.25000,690.08122 L 224.50000,690.16244 L 227.50000,691.53611 C 231.38848,693.31662 232.00000,693.31171 232.00000,691.50000 z M 388.05289,686.44973 C 387.56835,684.82738 387.13323,684.25070 387.08595,685.16821 C 386.99000,687.03050 388.05737,690.27596 388.59047,689.74286 C 388.77934,689.55399 388.53743,688.07209 388.05289,686.44973 z M 256.00000,687.61663 C 256.00000,686.70734 252.10171,686.32096 250.86070,687.10726 C 249.93557,687.69340 250.54036,687.97428 252.75000,687.98469 C 254.53750,687.99311 256.00000,687.82748 256.00000,687.61663 z M 249.71974,684.55906 C 251.74975,682.67672 252.76958,682.34150 254.17609,683.09424 C 256.29964,684.23073 256.66003,682.79267 254.66632,681.13804 C 253.68631,680.32470 252.62767,680.35852 250.67413,681.26559 C 249.21194,681.94452 248.01209,682.83750 248.00780,683.25000 C 248.00351,683.66250 246.20000,684.00000 244.00000,684.00000 C 241.11111,684.00000 240.00000,684.41667 240.00000,685.50000 C 240.00000,688.04913 246.65014,687.40534 249.71974,684.55906 z M 234.00000,680.94098 C 234.00000,680.42344 233.55000,680.00000 233.00000,680.00000 C 232.45000,680.00000 232.00000,680.70156 232.00000,681.55902 C 232.00000,682.41648 232.45000,682.83992 233.00000,682.50000 C 233.55000,682.16008 234.00000,681.45852 234.00000,680.94098 z M 307.00000,677.10699 C 307.00000,676.61583 306.32500,675.95496 305.50000,675.63837 C 304.58629,675.28775 304.00000,675.63679 304.00000,676.53138 C 304.00000,677.33912 304.67500,678.00000 305.50000,678.00000 C 306.32500,678.00000 307.00000,677.59814 307.00000,677.10699 z M 302.00000,676.00000 C 302.00000,675.45000 301.32500,675.00000 300.50000,675.00000 C 299.67500,675.00000 299.00000,675.45000 299.00000,676.00000 C 299.00000,676.55000 299.67500,677.00000 300.50000,677.00000 C 301.32500,677.00000 302.00000,676.55000 302.00000,676.00000 z M 273.50000,668.00000 C 274.18966,663.91793 276.00000,662.42692 276.00000,665.94098 C 276.00000,667.00852 276.45000,668.16008 277.00000,668.50000 C 277.56716,668.85052 278.00000,668.01038 278.00000,666.55902 C 278.00000,665.15156 278.45000,664.00000 279.00000,664.00000 C 279.55000,664.00000 280.00000,664.52500 280.00000,665.16667 C 280.00000,665.80833 280.33750,665.99583 280.75000,665.58333 C 281.16250,665.17083 281.50000,664.31450 281.50000,663.68036 C 281.50000,662.11013 284.95382,661.55382 286.30622,662.90622 C 287.09793,663.69793 286.91421,664.00000 285.64098,664.00000 C 284.65123,664.00000 284.16986,664.46581 284.54026,665.06514 C 284.97401,665.76697 285.81599,665.57151 287.00872,664.49211 C 288.68984,662.97072 288.89078,662.98241 289.82745,664.65615 C 290.79041,666.37687 290.93678,666.36887 293.06411,664.47919 C 294.57347,663.13844 295.42720,662.88510 295.71071,663.69382 C 296.34073,665.49101 299.00000,664.05861 299.00000,661.92207 C 299.00000,660.72251 297.48512,659.31585 294.75000,657.97568 C 291.15110,656.21227 290.95960,655.98268 293.50000,656.47700 C 295.71963,656.90891 296.10982,656.79671 295.00000,656.04569 C 292.77580,654.54055 288.42095,654.78786 287.00000,656.50000 C 285.58364,658.20660 282.42329,658.49391 281.50000,657.00000 C 281.14667,656.42830 282.03043,656.00000 283.56343,656.00000 C 285.74548,656.00000 286.02899,655.73986 285.08568,654.60323 C 283.88458,653.15600 280.00000,653.55462 280.00000,655.12511 C 280.00000,655.61562 279.10000,655.45489 278.00000,654.76793 C 276.43290,653.78925 275.58254,653.77962 274.07131,654.72339 C 272.56465,655.66432 272.05320,655.66225 271.73393,654.71394 C 271.42033,653.78244 270.95664,653.80419 269.74098,654.80741 C 268.43647,655.88396 267.78434,655.88396 266.04785,654.80741 C 264.27410,653.70776 263.78200,653.73837 262.95119,655.00000 C 262.10122,656.29072 261.80345,656.22715 260.81693,654.54435 C 259.67911,652.60349 259.66497,652.60349 258.94536,654.54435 C 258.28398,656.32816 258.12519,656.25912 257.13819,653.75868 C 256.54304,652.25096 256.31858,650.33336 256.63939,649.49734 C 257.05783,648.40692 256.76728,648.15207 255.61134,648.59565 C 253.70099,649.32872 253.47439,651.64299 255.25000,652.28601 C 256.23722,652.64353 256.21996,653.21140 255.16790,654.98724 C 254.21245,656.60001 254.14176,657.54176 254.91790,658.31790 C 255.51305,658.91305 256.00000,660.37990 256.00000,661.57756 C 256.00000,664.19690 259.08309,667.21948 259.74595,665.25000 C 260.78008,662.17747 271.97735,664.92050 271.99220,668.25000 C 271.99649,669.21250 271.35156,670.00000 270.55902,670.00000 C 269.76648,670.00000 268.83992,670.45000 268.50000,671.00000 C 268.15166,671.56362 268.96032,672.00000 270.35309,672.00000 C 272.45676,672.00000 272.92469,671.40522 273.50000,668.00000 z M 289.86078,661.08608 C 288.56235,660.03342 287.86197,658.80896 288.30437,658.36504 C 288.74678,657.92112 289.42178,658.02771 289.80437,658.60190 C 290.18697,659.17609 291.28750,659.93644 292.25000,660.29156 C 294.04923,660.95539 294.69903,663.00000 293.11078,663.00000 C 292.62172,663.00000 291.15922,662.13874 289.86078,661.08608 z M 308.00000,663.05902 C 308.00000,662.54148 307.55000,661.83992 307.00000,661.50000 C 306.45000,661.16008 306.00000,659.55852 306.00000,657.94098 C 306.00000,656.32344 305.55000,655.00000 305.00000,655.00000 C 304.45000,655.00000 304.00000,656.35000 304.00000,658.00000 C 304.00000,659.65000 304.45000,661.00000 305.00000,661.00000 C 305.55000,661.00000 306.00000,661.67500 306.00000,662.50000 C 306.00000,663.32500 306.45000,664.00000 307.00000,664.00000 C 307.55000,664.00000 308.00000,663.57656 308.00000,663.05902 z M 300.25000,655.33772 C 299.56250,655.06031 298.43750,655.06031 297.75000,655.33772 C 297.06250,655.61513 297.62500,655.84211 299.00000,655.84211 C 300.37500,655.84211 300.93750,655.61513 300.25000,655.33772 z M 285.00000,649.50000 C 286.06136,648.22113 285.78457,648.00000 283.12244,648.00000 C 279.77844,648.00000 278.85530,649.55421 281.75000,650.31067 C 282.71250,650.56220 283.55740,650.82020 283.62756,650.88400 C 283.69771,650.94780 284.31531,650.32500 285.00000,649.50000 z M 292.00000,650.00000 C 292.00000,649.45000 291.55000,649.00000 291.00000,649.00000 C 290.45000,649.00000 290.00000,649.45000 290.00000,650.00000 C 290.00000,650.55000 290.45000,651.00000 291.00000,651.00000 C 291.55000,651.00000 292.00000,650.55000 292.00000,650.00000 z M 272.00000,649.00000 C 272.00000,648.45000 271.29844,648.00000 270.44098,648.00000 C 269.58352,648.00000 269.16008,648.45000 269.50000,649.00000 C 269.83992,649.55000 270.54148,650.00000 271.05902,650.00000 C 271.57656,650.00000 272.00000,649.55000 272.00000,649.00000 z M 307.17126,643.34501 C 309.86976,640.90291 309.41864,640.00000 305.50000,640.00000 C 302.71739,640.00000 302.00000,639.60714 302.00000,638.08333 C 302.00000,637.02917 302.56250,635.96577 303.25000,635.72024 C 303.93750,635.47470 304.18393,634.93363 303.79762,634.51786 C 303.12948,633.79875 300.00000,636.20892 300.00000,637.44260 C 300.00000,638.23715 304.39288,644.97210 304.92126,644.98762 C 305.15295,644.99443 306.16545,644.25526 307.17126,643.34501 z M 314.00000,640.94098 C 314.00000,640.42344 313.55000,640.00000 313.00000,640.00000 C 312.45000,640.00000 312.00000,640.70156 312.00000,641.55902 C 312.00000,642.41648 312.45000,642.83992 313.00000,642.50000 C 313.55000,642.16008 314.00000,641.45852 314.00000,640.94098 z M 317.48992,638.98369 C 317.14446,638.42472 316.44290,638.22627 315.93090,638.54271 C 314.54386,639.39994 314.80249,640.00000 316.55902,640.00000 C 317.41648,640.00000 317.83538,639.54266 317.48992,638.98369 z M 312.66228,634.75000 C 312.38487,634.06250 312.15789,634.62500 312.15789,636.00000 C 312.15789,637.37500 312.38487,637.93750 312.66228,637.25000 C 312.93969,636.56250 312.93969,635.43750 312.66228,634.75000 z M 318.00000,632.44098 C 318.00000,632.19844 317.29844,632.00000 316.44098,632.00000 C 315.58352,632.00000 315.16462,632.45734 315.51008,633.01631 C 316.08089,633.93989 318.00000,633.49646 318.00000,632.44098 z M 319.98469,625.25000 C 320.00072,623.94162 316.81963,623.51371 315.66448,624.66885 C 315.29662,625.03672 315.75099,626.17235 316.67419,627.19248 C 317.96833,628.62248 318.53787,628.75558 319.16106,627.77363 C 319.60563,627.07314 319.97627,625.93750 319.98469,625.25000 z M 266.50000,623.00000 C 266.16008,622.45000 265.45852,622.00000 264.94098,622.00000 C 264.42344,622.00000 264.00000,622.45000 264.00000,623.00000 C 264.00000,623.55000 264.70156,624.00000 265.55902,624.00000 C 266.41648,624.00000 266.83992,623.55000 266.50000,623.00000 z M 296.00000,623.00000 C 296.00000,622.45000 294.20000,622.00000 292.00000,622.00000 C 289.80000,622.00000 288.00000,622.45000 288.00000,623.00000 C 288.00000,623.55000 289.80000,624.00000 292.00000,624.00000 C 294.20000,624.00000 296.00000,623.55000 296.00000,623.00000 z M 316.25000,616.33772 C 315.56250,616.06031 314.43750,616.06031 313.75000,616.33772 C 313.06250,616.61513 313.62500,616.84211 315.00000,616.84211 C 316.37500,616.84211 316.93750,616.61513 316.25000,616.33772 z M 35.000000,764.55902 C 35.000000,763.70156 35.450000,763.00000 36.000000,763.00000 C 36.550000,763.00000 37.000000,763.42344 37.000000,763.94098 C 37.000000,764.45852 36.550000,765.16008 36.000000,765.50000 C 35.450000,765.83992 35.000000,765.41648 35.000000,764.55902 z M 34.710511,754.00100 C 34.178084,751.96499 35.201148,750.53448 36.360520,751.69385 C 37.319812,752.65315 37.130256,756.00000 36.116631,756.00000 C 35.630779,756.00000 34.998025,755.10045 34.710511,754.00100 z M 24.116001,750.83179 C 24.052201,749.91427 23.741023,748.33927 23.424495,747.33179 C 22.879014,745.59557 22.908609,745.59294 23.991768,747.28142 C 24.620296,748.26120 24.931474,749.83620 24.683275,750.78142 C 24.276728,752.32967 24.220506,752.33467 24.116001,750.83179 z M 10.573200,747.75000 C 8.5020580,744.58614 7.8702319,738.00000 9.6378560,738.00000 C 10.387035,738.00000 11.000000,737.32500 11.000000,736.50000 C 11.000000,735.46978 12.033235,735.00000 14.299112,735.00000 C 17.127917,735.00000 17.769416,735.47343 18.799112,738.32100 C 21.277566,745.17504 19.703023,750.00000 14.987869,750.00000 C 13.040235,750.00000 11.548357,749.23964 10.573200,747.75000 z M 15.000000,738.50000 C 15.000000,737.67500 14.550000,737.00000 14.000000,737.00000 C 13.450000,737.00000 13.000000,737.67500 13.000000,738.50000 C 13.000000,739.32500 13.450000,740.00000 14.000000,740.00000 C 14.550000,740.00000 15.000000,739.32500 15.000000,738.50000 z M 245.27083,741.39583 C 245.60313,741.06354 246.46562,741.02802 247.18750,741.31689 C 247.98523,741.63611 247.74828,741.87307 246.58333,741.92105 C 245.52917,741.96447 244.93854,741.72812 245.27083,741.39583 z M 34.000000,740.05902 C 34.000000,739.54148 34.450000,738.83992 35.000000,738.50000 C 35.550000,738.16008 36.000000,738.58352 36.000000,739.44098 C 36.000000,740.29844 35.550000,741.00000 35.000000,741.00000 C 34.450000,741.00000 34.000000,740.57656 34.000000,740.05902 z M 233.00000,739.09950 C 233.82500,738.51162 235.85000,738.01684 237.50000,738.00000 C 239.80742,737.97644 240.15371,737.74558 239.00000,737.00000 C 237.71810,736.17157 237.75445,736.02840 239.25000,736.01531 C 240.21250,736.00689 241.00000,736.67500 241.00000,737.50000 C 241.00000,738.32500 240.38125,739.00000 239.62500,739.00000 C 238.86875,739.00000 236.73125,739.26289 234.87500,739.58419 C 232.31896,740.02663 231.86398,739.90902 233.00000,739.09950 z M 284.44113,733.53180 C 282.58184,732.12550 282.61594,732.06227 285.25000,732.03180 C 287.04191,732.01108 288.00000,732.52259 288.00000,733.50000 C 288.00000,735.39289 286.91453,735.40259 284.44113,733.53180 z M 245.34549,732.75000 C 244.27440,731.01693 246.26658,730.27315 250.73420,730.73810 C 258.35200,731.53091 259.16091,733.50000 251.86879,733.50000 C 248.53592,733.50000 245.60043,733.16250 245.34549,732.75000 z M 262.00000,733.55902 C 262.00000,733.31648 262.45000,732.83992 263.00000,732.50000 C 263.55000,732.16008 264.00000,732.35852 264.00000,732.94098 C 264.00000,733.52344 263.55000,734.00000 263.00000,734.00000 C 262.45000,734.00000 262.00000,733.80156 262.00000,733.55902 z M 262.58295,728.13421 C 262.15218,727.43721 262.06979,726.59688 262.39986,726.26680 C 263.29483,725.37184 264.27063,726.68810 263.78725,728.13825 C 263.44853,729.15442 263.21298,729.15363 262.58295,728.13421 z M 266.00000,727.00000 C 266.00000,726.45000 266.19844,726.00000 266.44098,726.00000 C 266.68352,726.00000 267.16008,726.45000 267.50000,727.00000 C 267.83992,727.55000 267.64148,728.00000 267.05902,728.00000 C 266.47656,728.00000 266.00000,727.55000 266.00000,727.00000 z M 14.250000,726.31067 C 15.212500,726.05915 16.787500,726.05915 17.750000,726.31067 C 18.712500,726.56220 17.925000,726.76800 16.000000,726.76800 C 14.075000,726.76800 13.287500,726.56220 14.250000,726.31067 z M 283.00000,724.00000 C 283.00000,723.45000 283.45000,723.00000 284.00000,723.00000 C 284.55000,723.00000 285.00000,723.45000 285.00000,724.00000 C 285.00000,724.55000 284.55000,725.00000 284.00000,725.00000 C 283.45000,725.00000 283.00000,724.55000 283.00000,724.00000 z M 259.00000,720.00000 C 259.00000,719.45000 259.45000,719.00000 260.00000,719.00000 C 260.55000,719.00000 261.00000,719.45000 261.00000,720.00000 C 261.00000,720.55000 260.55000,721.00000 260.00000,721.00000 C 259.45000,721.00000 259.00000,720.55000 259.00000,720.00000 z M 264.75000,720.33772 C 265.43750,720.06031 266.56250,720.06031 267.25000,720.33772 C 267.93750,720.61513 267.37500,720.84211 266.00000,720.84211 C 264.62500,720.84211 264.06250,720.61513 264.75000,720.33772 z M 106.27083,719.39583 C 106.60313,719.06354 107.46563,719.02802 108.18750,719.31689 C 108.98523,719.63611 108.74828,719.87307 107.58333,719.92105 C 106.52917,719.96447 105.93854,719.72812 106.27083,719.39583 z M 263.24055,716.01357 C 261.74181,713.61372 261.64510,712.00000 263.00000,712.00000 C 263.55000,712.00000 264.00000,712.62252 264.00000,713.38337 C 264.00000,714.14422 265.01250,715.04421 266.25000,715.38334 C 268.12694,715.89771 268.25129,716.16322 267.00000,716.98466 C 264.92794,718.34492 264.65198,718.27363 263.24055,716.01357 z M 275.80000,708.80000 C 276.73333,707.86667 277.26667,707.86667 278.20000,708.80000 C 279.13333,709.73333 278.86667,710.00000 277.00000,710.00000 C 275.13333,710.00000 274.86667,709.73333 275.80000,708.80000 z M 275.75000,704.33772 C 276.43750,704.06031 277.56250,704.06031 278.25000,704.33772 C 278.93750,704.61513 278.37500,704.84211 277.00000,704.84211 C 275.62500,704.84211 275.06250,704.61513 275.75000,704.33772 z M 425.49829,702.75000 C 425.25687,702.06250 424.60713,700.26250 424.05442,698.75000 C 423.50172,697.23750 423.30373,696.00000 423.61446,696.00000 C 424.76158,696.00000 427.93453,700.55646 427.96673,702.25000 C 428.00482,704.25328 426.15756,704.62745 425.49829,702.75000 z M 155.11256,618.75000 C 155.24255,574.06250 155.66426,535.25000 156.04970,532.50000 C 156.43513,529.75000 156.80663,566.31250 156.87524,613.75000 C 156.96241,674.01310 156.68005,700.00000 155.93811,700.00000 C 155.19569,700.00000 154.94732,675.55553 155.11256,618.75000 z M 288.00000,694.00000 C 288.00000,693.45000 288.45000,693.00000 289.00000,693.00000 C 289.55000,693.00000 290.00000,693.45000 290.00000,694.00000 C 290.00000,694.55000 289.55000,695.00000 289.00000,695.00000 C 288.45000,695.00000 288.00000,694.55000 288.00000,694.00000 z M 173.27083,689.39583 C 173.60313,689.06354 174.46562,689.02802 175.18750,689.31689 C 175.98523,689.63611 175.74828,689.87307 174.58333,689.92105 C 173.52917,689.96447 172.93854,689.72812 173.27083,689.39583 z M 175.27236,684.00000 C 175.27236,681.52500 175.46738,680.51250 175.70573,681.75000 C 175.94409,682.98750 175.94409,685.01250 175.70573,686.25000 C 175.46738,687.48750 175.27236,686.47500 175.27236,684.00000 z M 272.00000,685.42857 C 272.00000,684.44726 274.80415,682.00000 275.92857,682.00000 C 276.51786,682.00000 277.00000,682.45000 277.00000,683.00000 C 277.00000,683.55000 276.32500,684.00000 275.50000,684.00000 C 274.67500,684.00000 274.00000,684.45000 274.00000,685.00000 C 274.00000,685.55000 273.55000,686.00000 273.00000,686.00000 C 272.45000,686.00000 272.00000,685.74286 272.00000,685.42857 z M 180.16667,679.00000 C 180.67002,677.48995 182.27811,677.33433 182.75000,678.75000 C 182.97917,679.43750 182.41667,680.00000 181.50000,680.00000 C 180.58333,680.00000 179.98333,679.55000 180.16667,679.00000 z M 284.63837,678.50000 C 284.95496,677.67500 285.33573,677.00000 285.48454,677.00000 C 285.63336,677.00000 286.31531,677.67500 287.00000,678.50000 C 288.03907,679.75200 287.89917,680.00000 286.15383,680.00000 C 284.70595,680.00000 284.23982,679.53862 284.63837,678.50000 z M 225.00000,675.50000 C 225.00000,674.49661 225.65585,673.97966 226.67889,674.17668 C 228.90881,674.60612 228.95684,676.38463 226.75000,676.80963 C 225.65540,677.02043 225.00000,676.52996 225.00000,675.50000 z M 208.00000,673.50000 C 208.00000,672.67500 208.45000,672.00000 209.00000,672.00000 C 209.55000,672.00000 210.00000,672.67500 210.00000,673.50000 C 210.00000,674.32500 209.55000,675.00000 209.00000,675.00000 C 208.45000,675.00000 208.00000,674.32500 208.00000,673.50000 z M 230.00000,673.55902 C 230.00000,673.31648 230.45000,672.83992 231.00000,672.50000 C 231.55000,672.16008 232.00000,672.35852 232.00000,672.94098 C 232.00000,673.52344 231.55000,674.00000 231.00000,674.00000 C 230.45000,674.00000 230.00000,673.80156 230.00000,673.55902 z M 442.50000,672.64504 C 441.09460,671.03580 440.74340,666.27662 441.97393,665.51611 C 442.60018,665.12907 443.00000,666.23630 443.00000,668.35765 C 443.00000,670.26928 443.54034,672.01345 444.20075,672.23358 C 444.88679,672.46226 444.99395,672.88164 444.45075,673.21195 C 443.92784,673.52992 443.05000,673.27481 442.50000,672.64504 z M 212.00000,671.00000 C 212.00000,670.45000 212.42344,670.00000 212.94098,670.00000 C 213.45852,670.00000 214.16008,670.45000 214.50000,671.00000 C 214.83992,671.55000 214.41648,672.00000 213.55902,672.00000 C 212.70156,672.00000 212.00000,671.55000 212.00000,671.00000 z M 216.07895,670.58333 C 216.03553,669.52917 216.27187,668.93854 216.60417,669.27083 C 216.93646,669.60312 216.97198,670.46563 216.68311,671.18750 C 216.36389,671.98523 216.12693,671.74828 216.07895,670.58333 z M 224.69097,667.10085 C 225.10653,665.44116 224.93852,664.91997 224.14584,665.40986 C 222.53958,666.40259 222.71855,664.75437 224.46820,662.44113 C 225.61747,660.92166 225.96903,660.82584 226.08662,662.00000 C 226.16924,662.82500 226.18355,663.83750 226.11842,664.25000 C 226.05329,664.66250 226.92656,665.00000 228.05902,665.00000 C 229.19148,665.00000 229.89617,664.64101 229.62500,664.20225 C 229.35383,663.76349 229.51387,662.78658 229.98064,662.03133 C 230.68710,660.88824 231.25664,660.93814 233.37947,662.32907 C 234.78206,663.24808 236.84547,664.00000 237.96482,664.00000 C 239.56527,664.00000 240.00000,664.64915 240.00000,667.03901 L 240.00000,670.07803 L 232.04513,669.78901 C 224.20399,669.50413 224.09884,669.46570 224.69097,667.10085 z M 209.62500,667.20225 C 209.35383,666.76349 209.53354,665.75476 210.02434,664.96061 C 210.72568,663.82583 211.17744,663.77744 212.13457,664.73457 C 213.02609,665.62609 213.70713,665.65803 214.67621,664.85376 C 215.70388,664.00087 216.00000,664.22988 216.00000,665.87756 C 216.00000,667.55970 215.38989,668.00000 213.05902,668.00000 C 211.44148,668.00000 209.89617,667.64101 209.62500,667.20225 z M 218.00000,665.50000 C 218.00000,664.67500 218.43588,664.00000 218.96862,664.00000 C 219.50135,664.00000 219.67821,664.67500 219.36163,665.50000 C 219.04504,666.32500 218.60917,667.00000 218.39301,667.00000 C 218.17686,667.00000 218.00000,666.32500 218.00000,665.50000 z M 442.18045,661.82833 C 442.65153,658.62683 445.00000,658.28395 445.00000,661.41667 C 445.00000,663.09717 444.45147,664.00000 443.43045,664.00000 C 442.38811,664.00000 441.96824,663.27054 442.18045,661.82833 z M 444.75525,655.50000 C 445.20583,653.14294 448.00000,651.85124 448.00000,654.00000 C 448.00000,654.55000 447.55000,655.00000 447.00000,655.00000 C 446.45000,655.00000 446.00000,655.67500 446.00000,656.50000 C 446.00000,657.32500 445.61240,658.00000 445.13867,658.00000 C 444.66494,658.00000 444.49240,656.87500 444.75525,655.50000 z M 232.00000,650.53138 C 232.00000,649.63679 232.58629,649.28775 233.50000,649.63837 C 234.32500,649.95496 235.00000,650.61583 235.00000,651.10699 C 235.00000,651.59814 234.32500,652.00000 233.50000,652.00000 C 232.67500,652.00000 232.00000,651.33912 232.00000,650.53138 z M 221.00000,648.41669 C 218.31474,646.92669 218.33840,646.86651 221.75000,646.50891 C 223.36275,646.33987 224.00000,646.80084 224.00000,648.13654 C 224.00000,649.16144 223.88750,649.95588 223.75000,649.90195 C 223.61250,649.84803 222.37500,649.17966 221.00000,648.41669 z M 233.00000,647.00000 C 233.00000,646.45000 233.45000,646.00000 234.00000,646.00000 C 234.55000,646.00000 235.00000,646.45000 235.00000,647.00000 C 235.00000,647.55000 234.55000,648.00000 234.00000,648.00000 C 233.45000,648.00000 233.00000,647.55000 233.00000,647.00000 z M 237.00000,646.05902 C 237.00000,644.92656 237.45000,644.00000 238.00000,644.00000 C 238.55000,644.00000 239.00000,644.64844 239.00000,645.44098 C 239.00000,646.23352 238.55000,647.16008 238.00000,647.50000 C 237.45000,647.83992 237.00000,647.19148 237.00000,646.05902 z M 248.00000,642.96862 C 248.00000,642.43588 248.67500,642.00000 249.50000,642.00000 C 250.32500,642.00000 251.00000,642.17686 251.00000,642.39301 C 251.00000,642.60917 250.32500,643.04504 249.50000,643.36163 C 248.67500,643.67821 248.00000,643.50135 248.00000,642.96862 z M 272.97525,637.43490 C 271.57490,633.75169 271.72942,629.73412 273.25000,630.29167 C 273.93750,630.54375 274.37458,631.29500 274.22130,631.96111 C 274.06801,632.62723 274.85551,633.41096 275.97130,633.70274 C 279.48319,634.62112 278.13546,640.00000 274.39346,640.00000 C 274.14983,640.00000 273.51164,638.84571 272.97525,637.43490 z M 240.00000,634.50000 C 240.00000,633.41667 241.11111,633.00000 244.00000,633.00000 C 246.88889,633.00000 248.00000,633.41667 248.00000,634.50000 C 248.00000,635.58333 246.88889,636.00000 244.00000,636.00000 C 241.11111,636.00000 240.00000,635.58333 240.00000,634.50000 z M 232.00000,630.00000 C 232.00000,629.45000 232.19844,629.00000 232.44098,629.00000 C 232.68352,629.00000 233.16008,629.45000 233.50000,630.00000 C 233.83992,630.55000 233.64148,631.00000 233.05902,631.00000 C 232.47656,631.00000 232.00000,630.55000 232.00000,630.00000 z M 267.00000,630.00000 C 267.00000,629.45000 267.45000,629.00000 268.00000,629.00000 C 268.55000,629.00000 269.00000,629.45000 269.00000,630.00000 C 269.00000,630.55000 268.55000,631.00000 268.00000,631.00000 C 267.45000,631.00000 267.00000,630.55000 267.00000,630.00000 z M 376.00000,622.00000 C 376.00000,621.45000 376.67500,621.00000 377.50000,621.00000 C 378.32500,621.00000 379.00000,621.45000 379.00000,622.00000 C 379.00000,622.55000 378.32500,623.00000 377.50000,623.00000 C 376.67500,623.00000 376.00000,622.55000 376.00000,622.00000 z M 237.00000,620.02714 C 238.49365,618.87500 239.64970,618.52797 239.87188,619.16503 C 240.30742,620.41382 238.15024,621.97238 236.00000,621.96245 C 235.00874,621.95788 235.34789,621.30150 237.00000,620.02714 z M 250.14135,620.67032 C 248.81086,619.06717 249.62026,618.00000 252.16667,618.00000 C 254.33540,618.00000 254.54543,619.30244 252.63268,620.88989 C 251.59975,621.74714 250.99047,621.69344 250.14135,620.67032 z M 366.73097,621.34406 C 367.40800,621.07014 368.75800,621.05347 369.73097,621.30701 C 370.70394,621.56055 370.15000,621.78467 368.50000,621.80505 C 366.85000,621.82543 366.05394,621.61799 366.73097,621.34406 z M 384.72934,619.92700 C 385.06155,618.65661 386.13057,617.98496 387.86663,617.95587 C 389.31498,617.93159 392.75000,617.31071 395.50000,616.57613 C 401.36687,615.00896 402.00180,615.22726 401.99457,618.80902 L 401.98914,621.50000 L 393.10728,621.67700 C 384.78703,621.84281 384.25728,621.73215 384.72934,619.92700 z M 411.00000,618.53138 C 411.00000,617.63679 411.58629,617.28775 412.50000,617.63837 C 413.32500,617.95496 414.00000,618.61583 414.00000,619.10699 C 414.00000,619.59814 413.32500,620.00000 412.50000,620.00000 C 411.67500,620.00000 411.00000,619.33912 411.00000,618.53138 z M 285.66667,618.33333 C 284.51603,617.18270 284.93843,616.00000 286.50000,616.00000 C 287.32500,616.00000 288.00000,616.67500 288.00000,617.50000 C 288.00000,619.06157 286.81730,619.48397 285.66667,618.33333 z M 261.50000,617.00000 C 261.16008,616.45000 261.35852,616.00000 261.94098,616.00000 C 262.52344,616.00000 263.00689,615.21250 263.01531,614.25000 C 263.02768,612.83663 263.20224,612.77110 263.92279,613.90932 C 264.89485,615.44483 264.28848,618.00000 262.95203,618.00000 C 262.49333,618.00000 261.83992,617.55000 261.50000,617.00000 z M 235.27083,616.39583 C 235.60313,616.06354 236.46562,616.02802 237.18750,616.31689 C 237.98523,616.63611 237.74828,616.87307 236.58333,616.92105 C 235.52917,616.96447 234.93854,616.72812 235.27083,616.39583 z M 388.53629,615.94128 C 388.89617,615.35898 388.03174,613.21030 386.61534,611.16643 C 383.42671,606.56524 382.16883,601.21809 384.12808,600.59331 C 388.04482,599.34432 393.15180,598.94536 392.53942,599.93622 C 392.17782,600.52130 390.10852,601.00000 387.94098,601.00000 C 385.10455,601.00000 384.00000,601.42041 384.00000,602.50000 C 384.00000,603.32500 384.87344,604.00000 385.94098,604.00000 C 388.63733,604.00000 389.40041,605.66846 387.27103,606.90813 C 385.66232,607.84468 385.69894,607.94197 387.67054,607.96959 C 389.27924,607.99213 390.01922,608.81102 390.52924,611.13314 C 390.98395,613.20340 391.48183,613.83841 391.99689,613.00502 C 392.42562,612.31133 393.27670,612.05298 393.88820,612.43090 C 395.75199,613.58279 395.13105,615.73162 392.75000,616.36971 C 389.35789,617.27876 387.80713,617.12109 388.53629,615.94128 z M 401.73133,589.25048 C 401.85856,576.18772 402.04149,558.52500 402.13784,550.00000 L 402.31303,534.50000 L 403.03841,553.50000 C 404.03999,579.73453 403.74409,612.25184 402.50000,612.66714 C 401.84775,612.88488 401.58044,604.74164 401.73133,589.25048 z M 278.00362,609.50953 C 277.07733,607.07319 270.45598,604.40781 268.70156,605.76505 C 267.21345,606.91627 248.00000,606.09551 248.00000,604.88072 C 248.00000,604.39632 251.48750,603.99723 255.75000,603.99384 C 260.66874,603.98993 264.54640,603.44194 266.36431,602.49384 C 270.01206,600.59141 272.00000,600.59358 272.00000,602.50000 C 272.00000,604.14555 274.70317,604.47404 276.88314,603.09339 C 277.90059,602.44900 277.43791,602.03546 275.13314,601.52924 C 266.93900,599.72951 275.51870,596.83538 288.33968,597.07436 C 296.68192,597.22987 298.21321,596.98437 300.91909,595.05762 C 302.61359,593.85102 304.00000,593.20945 304.00000,593.63191 C 304.00000,594.05436 304.54000,593.86000 305.20000,593.20000 C 306.97538,591.42462 309.45417,591.73939 311.50000,594.00000 C 313.24663,595.93001 313.24663,596.06999 311.50000,598.00000 C 309.73751,599.94753 309.75311,599.99917 312.09501,599.96820 C 314.89387,599.93118 318.00000,597.84384 318.00000,596.00000 C 318.00000,595.29627 317.21250,594.09039 316.25000,593.32026 C 314.59887,591.99915 314.60694,591.93643 316.39282,592.21002 C 319.17547,592.63632 320.75178,595.56656 319.38005,597.76306 C 318.54142,599.10590 318.60772,599.84413 319.65476,600.82221 C 320.78941,601.88213 321.57547,601.72642 324.07499,599.94660 C 325.74708,598.75597 327.30952,597.97619 327.54709,598.21376 C 328.59266,599.25932 325.24920,604.05732 322.75000,605.09777 C 321.13213,605.77132 320.00000,607.01606 320.00000,608.12132 C 320.00000,609.99158 317.09378,610.76044 315.61479,609.28146 C 315.21960,608.88627 312.10710,608.52481 308.69813,608.47824 C 305.28916,608.43166 299.23750,608.02186 295.25000,607.56757 C 288.36123,606.78273 288.00000,606.84265 288.00000,608.77010 C 288.00000,610.46198 287.23436,610.85951 283.38637,611.16555 C 279.48642,611.47572 278.65377,611.21956 278.00362,609.50953 z M 281.50000,607.00000 C 281.16008,606.45000 280.68352,606.00000 280.44098,606.00000 C 280.19844,606.00000 280.00000,606.45000 280.00000,607.00000 C 280.00000,607.55000 280.47656,608.00000 281.05902,608.00000 C 281.64148,608.00000 281.83992,607.55000 281.50000,607.00000 z M 305.50000,607.00000 C 304.40000,606.52731 302.82500,606.14057 302.00000,606.14057 C 301.05452,606.14057 301.23936,606.45828 302.50000,607.00000 C 303.60000,607.47269 305.17500,607.85943 306.00000,607.85943 C 306.94548,607.85943 306.76064,607.54172 305.50000,607.00000 z M 312.00000,606.94098 C 312.00000,606.35852 311.55000,606.16008 311.00000,606.50000 C 310.45000,606.83992 310.00000,607.31648 310.00000,607.55902 C 310.00000,607.80156 310.45000,608.00000 311.00000,608.00000 C 311.55000,608.00000 312.00000,607.52344 312.00000,606.94098 z M 285.50000,601.00000 C 285.86155,600.41500 284.82405,600.00000 283.00000,600.00000 C 281.17595,600.00000 280.13845,600.41500 280.50000,601.00000 C 280.83992,601.55000 281.96492,602.00000 283.00000,602.00000 C 284.03508,602.00000 285.16008,601.55000 285.50000,601.00000 z M 305.20000,598.80000 C 304.26667,597.86667 303.73333,597.86667 302.80000,598.80000 C 301.86667,599.73333 302.13333,600.00000 304.00000,600.00000 C 305.86667,600.00000 306.13333,599.73333 305.20000,598.80000 z M 309.55385,596.91287 C 310.58437,595.24545 308.26664,593.33336 306.88713,594.71287 C 305.73321,595.86679 306.45541,598.00000 308.00000,598.00000 C 308.48508,598.00000 309.18431,597.51079 309.55385,596.91287 z M 370.00000,611.00000 C 370.00000,610.45000 371.15156,610.00000 372.55902,610.00000 C 374.01038,610.00000 374.85052,610.43284 374.50000,611.00000 C 374.16008,611.55000 373.00852,612.00000 371.94098,612.00000 C 370.87344,612.00000 370.00000,611.55000 370.00000,611.00000 z M 294.00000,609.50000 C 292.98043,608.27149 293.04876,608.00000 294.37756,608.00000 C 295.26990,608.00000 296.00000,608.67500 296.00000,609.50000 C 296.00000,610.32500 295.83010,611.00000 295.62244,611.00000 C 295.41479,611.00000 294.68469,610.32500 294.00000,609.50000 z M 270.00000,608.00000 C 268.71810,607.17157 268.75445,607.02840 270.25000,607.01531 C 271.21250,607.00689 272.00000,607.45000 272.00000,608.00000 C 272.00000,609.21961 271.88721,609.21961 270.00000,608.00000 z M 377.13422,607.09240 C 379.64819,605.05671 381.00000,605.21987 381.00000,607.55902 C 381.00000,608.50485 379.93107,609.00000 377.88922,609.00000 L 374.77843,609.00000 L 377.13422,607.09240 z M 354.27083,607.39583 C 354.60312,607.06354 355.46562,607.02802 356.18750,607.31689 C 356.98523,607.63611 356.74828,607.87307 355.58333,607.92105 C 354.52917,607.96447 353.93854,607.72812 354.27083,607.39583 z M 237.57003,604.11331 C 237.26862,603.62563 237.69207,602.67053 238.51101,601.99086 C 239.75012,600.96249 240.00000,601.11130 240.00000,602.87756 C 240.00000,605.02292 238.57886,605.74563 237.57003,604.11331 z M 332.25000,604.27699 C 328.93023,603.97080 328.00000,603.48188 328.00000,602.04320 C 328.00000,600.57191 328.95557,600.11640 332.75000,599.77894 C 338.80056,599.24082 340.17858,599.74650 339.80287,602.36706 C 339.47374,604.66272 338.66090,604.86827 332.25000,604.27699 z M 341.54271,601.06910 C 340.65602,599.63442 342.13496,599.23315 346.36102,599.76177 C 349.02638,600.09517 349.80057,600.51177 348.86102,601.10705 C 347.04248,602.25925 342.26294,602.23446 341.54271,601.06910 z M 260.00000,600.00000 L 255.50000,599.30039 L 259.78138,599.15019 C 262.55068,599.05305 264.26528,598.47226 264.63617,597.50574 C 264.95154,596.68390 265.61242,596.26046 266.10478,596.56476 C 267.47035,597.40873 267.17130,601.02058 265.75000,600.84981 C 265.06250,600.76720 262.47500,600.38479 260.00000,600.00000 z M 269.00000,599.00000 C 269.00000,598.45000 269.45000,598.00000 270.00000,598.00000 C 270.55000,598.00000 271.00000,598.45000 271.00000,599.00000 C 271.00000,599.55000 270.55000,600.00000 270.00000,600.00000 C 269.45000,600.00000 269.00000,599.55000 269.00000,599.00000 z M 352.00000,596.50000 C 352.00000,595.49661 352.65585,594.97966 353.67889,595.17668 C 355.90881,595.60612 355.95684,597.38463 353.75000,597.80963 C 352.65540,598.02043 352.00000,597.52996 352.00000,596.50000 z M 254.50000,595.00000 C 254.16008,594.45000 254.35852,594.00000 254.94098,594.00000 C 255.52344,594.00000 256.00000,594.45000 256.00000,595.00000 C 256.00000,595.55000 255.80156,596.00000 255.55902,596.00000 C 255.31648,596.00000 254.83992,595.55000 254.50000,595.00000 z M 365.00000,595.19138 C 365.00000,593.80949 376.78338,587.97965 378.35642,588.58328 C 381.08100,589.62879 381.15886,592.00000 378.46862,592.00000 C 377.11088,592.00000 376.00000,592.45381 376.00000,593.00847 C 376.00000,593.63313 375.29518,593.57678 374.14807,592.86040 C 372.63245,591.91388 371.90607,592.09393 370.14807,593.85193 C 368.02669,595.97331 365.00000,596.76081 365.00000,595.19138 z M 265.00000,593.50000 C 265.00000,592.67500 265.43588,592.00000 265.96862,592.00000 C 266.50135,592.00000 266.67821,592.67500 266.36163,593.50000 C 266.04504,594.32500 265.60917,595.00000 265.39301,595.00000 C 265.17686,595.00000 265.00000,594.32500 265.00000,593.50000 z M 296.03180,592.89246 C 296.00199,590.44799 295.60911,590.23654 289.75000,589.51141 C 281.59479,588.50211 280.87531,588.49917 271.75000,589.43781 C 264.94902,590.13736 264.00000,590.03691 264.00000,588.61749 C 264.00000,587.41061 263.03309,587.00000 260.19113,587.00000 C 258.09625,587.00000 255.50875,586.33931 254.44113,585.53180 C 252.63514,584.16582 252.79589,584.06139 256.75000,584.03180 L 261.00000,584.00000 L 261.00000,580.00000 C 261.00000,576.23162 260.82810,576.00000 258.03138,576.00000 C 255.80346,576.00000 255.20639,575.62574 255.63837,574.50000 C 256.01363,573.52211 257.56903,573.00000 260.10699,573.00000 C 262.90078,573.00000 264.00000,573.42354 264.00000,574.50000 C 264.00000,575.32500 264.54000,576.00000 265.20000,576.00000 C 266.13333,576.00000 266.13333,576.26667 265.20000,577.20000 C 263.31307,579.08693 263.67433,584.00000 265.70000,584.00000 C 267.02222,584.00000 267.13333,583.73333 266.20000,582.80000 C 264.25479,580.85479 264.80429,580.00000 268.00000,580.00000 C 271.19571,580.00000 271.74521,580.85479 269.80000,582.80000 C 268.86667,583.73333 268.97778,584.00000 270.30000,584.00000 C 271.30131,584.00000 272.00000,583.22198 272.00000,582.10699 C 272.00000,581.06583 272.67500,579.95496 273.50000,579.63837 C 274.32500,579.32179 275.00000,578.47067 275.00000,577.74699 C 275.00000,575.72278 280.39411,573.00000 284.40429,573.00000 C 286.38193,573.00000 288.00000,572.59213 288.00000,572.09362 C 288.00000,571.59511 288.90000,571.42259 290.00000,571.71025 C 291.10000,571.99791 292.00000,572.55855 292.00000,572.95612 C 292.00000,574.29335 297.25676,576.14324 298.24591,575.15409 C 299.95465,573.44535 298.58763,570.48171 296.20901,570.73821 C 293.88452,570.98887 293.10482,569.21233 295.25000,568.55308 C 297.93520,567.72788 306.95575,567.13685 306.75836,567.79905 C 306.64345,568.18457 307.77580,569.80321 309.27471,571.39602 C 313.32963,575.70497 312.88085,577.47599 308.34947,575.04732 C 305.39091,573.46163 304.30098,573.31080 302.59947,574.25163 C 300.73792,575.28096 300.69831,575.45411 302.25000,575.77958 C 304.73171,576.30013 304.42407,577.86860 301.25000,580.87793 L 298.50000,583.48521 L 301.00000,583.84342 C 302.37500,584.04044 303.79208,584.67184 304.14908,585.24653 C 304.50607,585.82123 305.63107,585.96743 306.64908,585.57143 C 308.39035,584.89407 308.36671,584.74265 306.25000,583.01542 C 305.01250,582.00561 304.00000,580.68905 304.00000,580.08971 C 304.00000,578.43997 306.78065,578.78563 307.77293,580.55873 C 308.72476,582.25956 314.26298,582.85530 317.50000,581.60506 C 319.21549,580.94248 319.16416,581.12902 317.13922,582.91630 C 314.48524,585.25878 314.71342,585.43966 318.50430,583.99837 C 319.95327,583.44747 322.30358,583.28907 323.72721,583.64638 C 326.17218,584.26003 326.21316,584.37096 324.46669,585.64802 C 323.44977,586.39161 321.74086,587.00000 320.66911,587.00000 C 319.59737,587.00000 318.13578,587.78750 317.42115,588.75000 C 316.32522,590.22604 315.79918,590.30299 314.06090,589.24153 C 312.24605,588.13330 312.00000,588.22284 312.00000,589.99153 C 312.00000,592.03981 310.55717,592.71054 309.57379,591.11940 C 308.60161,589.54638 304.00000,589.14950 304.00000,590.63867 C 304.00000,591.44331 302.92052,592.00000 301.36024,592.00000 C 299.90838,592.00000 298.12269,592.78750 297.39205,593.75000 C 296.17885,595.34819 296.06085,595.27380 296.03180,592.89246 z M 285.18750,584.31689 C 284.46562,584.02802 283.60312,584.06354 283.27083,584.39583 C 282.93854,584.72812 283.52917,584.96447 284.58333,584.92105 C 285.74828,584.87307 285.98523,584.63611 285.18750,584.31689 z M 282.01357,582.75945 C 283.59464,581.77206 284.40536,581.77206 285.98643,582.75945 C 288.63073,584.41085 292.04793,584.27802 294.49513,582.42871 C 296.20843,581.13400 296.27906,580.78560 294.99513,579.96229 C 294.17281,579.43498 292.26250,579.26351 290.75000,579.58123 C 289.09161,579.92960 288.00000,579.73042 288.00000,579.07946 C 288.00000,578.48575 288.82500,578.00000 289.83333,578.00000 C 292.45927,578.00000 293.11968,576.97683 291.52381,575.38095 C 289.64871,573.50586 288.70465,573.64203 287.23207,576.00000 C 285.80227,578.28948 283.82989,578.53522 281.01139,576.77504 C 278.61376,575.27769 277.46434,576.29629 276.52590,580.75000 C 275.92546,583.59961 276.09895,584.00000 277.93411,584.00000 C 279.08528,584.00000 280.92103,583.44175 282.01357,582.75945 z M 278.00000,593.00000 C 276.71810,592.17157 276.75445,592.02840 278.25000,592.01531 C 279.21250,592.00689 280.00000,592.45000 280.00000,593.00000 C 280.00000,594.21961 279.88721,594.21961 278.00000,593.00000 z M 384.32131,586.46205 C 384.65710,582.86617 384.57645,580.14373 384.14209,580.41218 C 383.70773,580.68063 383.33990,577.66021 383.32469,573.70014 C 383.29915,567.04936 383.34734,566.88149 383.95632,571.50000 L 384.61560,576.50000 L 385.05780,572.00000 C 385.30101,569.52500 385.05328,566.71094 384.50729,565.74654 C 383.00429,563.09173 385.12648,560.54500 389.10085,560.23406 C 391.87518,560.01701 392.17832,560.16401 390.75000,561.03375 C 389.78750,561.61985 389.00000,562.95466 389.00000,564.00000 C 389.00000,565.04534 389.78750,566.35930 390.75000,566.91990 C 392.24611,567.79131 392.10103,567.94359 389.75000,567.96959 C 387.24171,567.99733 386.98535,568.35158 386.83333,572.00000 C 386.74167,574.20000 386.62917,576.75000 386.58333,577.66667 C 386.45843,580.16477 389.04829,580.53134 389.68270,578.10536 C 389.98551,576.94741 390.57829,576.00000 391.00000,576.00000 C 392.24186,576.00000 393.02142,580.37858 391.96725,581.43275 C 391.43526,581.96474 391.00689,583.32250 391.01531,584.45000 C 391.02794,586.13994 391.20088,586.23654 392.00000,585.00000 C 392.79859,583.76427 392.95451,583.85236 392.88501,585.50000 C 392.83861,586.60000 392.48464,588.62500 392.09841,590.00000 C 391.41751,592.42404 391.35978,592.43923 390.19824,590.50000 C 389.01258,588.52051 388.98070,588.52308 387.08986,590.75000 C 386.03911,591.98750 384.84897,593.00000 384.44510,593.00000 C 384.04123,593.00000 383.98553,590.05792 384.32131,586.46205 z M 339.00000,590.44098 C 339.00000,589.58352 339.45000,589.16008 340.00000,589.50000 C 340.55000,589.83992 341.00000,590.54148 341.00000,591.05902 C 341.00000,591.57656 340.55000,592.00000 340.00000,592.00000 C 339.45000,592.00000 339.00000,591.29844 339.00000,590.44098 z M 243.46443,587.75000 C 243.09131,586.78750 242.20731,586.00000 241.50000,586.00000 C 240.29102,586.00000 238.54637,583.12029 239.29923,582.36743 C 239.48971,582.17696 240.60648,582.91637 241.78096,584.01056 C 244.50168,586.54530 246.00000,586.54155 246.00000,584.00000 C 246.00000,582.90000 246.45000,582.00000 247.00000,582.00000 C 247.55000,582.00000 248.00000,582.81000 248.00000,583.80000 C 248.00000,584.79000 248.48921,586.08921 249.08713,586.68713 C 249.86998,587.46998 249.86998,587.96233 249.08713,588.44615 C 248.48186,588.82023 248.00000,588.42702 248.00000,587.55902 C 248.00000,585.51112 247.02726,585.58345 245.43166,587.75000 C 244.20421,589.41667 244.11054,589.41667 243.46443,587.75000 z M 336.07029,587.30750 C 336.01135,585.46895 335.31388,585.05320 331.75000,584.73221 C 327.68677,584.36624 327.73072,584.34174 332.75000,584.17471 C 338.19538,583.99350 338.42844,584.17585 337.00000,587.50000 C 336.17163,589.42771 336.13803,589.42075 336.07029,587.30750 z M 338.60478,584.41247 C 337.75469,582.19717 337.85243,581.00000 338.88337,581.00000 C 340.06130,581.00000 341.03068,584.86301 340.01090,585.49326 C 339.57017,585.76565 338.93742,585.27929 338.60478,584.41247 z M 346.45888,583.93347 C 345.43282,582.27326 346.35377,582.04304 347.78943,583.60086 C 348.49861,584.37039 348.63767,585.00000 348.09844,585.00000 C 347.55922,585.00000 346.82142,584.52006 346.45888,583.93347 z M 326.00000,582.00000 C 326.00000,581.45000 326.45000,581.00000 327.00000,581.00000 C 327.55000,581.00000 328.00000,581.45000 328.00000,582.00000 C 328.00000,582.55000 327.55000,583.00000 327.00000,583.00000 C 326.45000,583.00000 326.00000,582.55000 326.00000,582.00000 z M 335.07895,577.58333 C 335.03553,576.52917 335.27188,575.93854 335.60417,576.27083 C 335.93646,576.60312 335.97198,577.46563 335.68311,578.18750 C 335.36389,578.98523 335.12693,578.74828 335.07895,577.58333 z M 348.00000,577.50000 C 348.00000,576.67500 348.67500,576.00000 349.50000,576.00000 C 350.32500,576.00000 351.00000,576.67500 351.00000,577.50000 C 351.00000,578.32500 350.32500,579.00000 349.50000,579.00000 C 348.67500,579.00000 348.00000,578.32500 348.00000,577.50000 z M 367.07895,577.58333 C 367.03553,576.52917 367.27188,575.93854 367.60417,576.27083 C 367.93646,576.60312 367.97198,577.46563 367.68311,578.18750 C 367.36389,578.98523 367.12693,578.74828 367.07895,577.58333 z M 270.55861,577.09483 C 270.25769,576.60794 270.74831,575.92682 271.64887,575.58125 C 273.80446,574.75407 274.11760,575.20588 272.45200,576.74004 C 271.71155,577.42207 270.85952,577.58172 270.55861,577.09483 z M 337.50000,577.00000 C 337.16008,576.45000 337.58352,576.00000 338.44098,576.00000 C 339.29844,576.00000 340.00000,576.45000 340.00000,577.00000 C 340.00000,577.55000 339.57656,578.00000 339.05902,578.00000 C 338.54148,578.00000 337.83992,577.55000 337.50000,577.00000 z M 320.75000,576.33772 C 321.43750,576.06031 322.56250,576.06031 323.25000,576.33772 C 323.93750,576.61513 323.37500,576.84211 322.00000,576.84211 C 320.62500,576.84211 320.06250,576.61513 320.75000,576.33772 z M 275.25000,573.33772 C 272.91758,572.39657 273.98575,570.22909 277.00000,569.78669 C 280.15041,569.32431 280.94518,570.65482 278.80000,572.80000 C 277.52103,574.07897 277.20548,574.12677 275.25000,573.33772 z M 320.00000,572.50000 C 320.00000,571.41667 321.11111,571.00000 324.00000,571.00000 C 326.88889,571.00000 328.00000,571.41667 328.00000,572.50000 C 328.00000,573.58333 326.88889,574.00000 324.00000,574.00000 C 321.11111,574.00000 320.00000,573.58333 320.00000,572.50000 z M 251.00000,569.05902 C 251.00000,568.47656 251.45000,568.00000 252.00000,568.00000 C 252.55000,568.00000 253.00000,568.19844 253.00000,568.44098 C 253.00000,568.68352 252.55000,569.16008 252.00000,569.50000 C 251.45000,569.83992 251.00000,569.64148 251.00000,569.05902 z M 309.47608,567.92464 C 308.63143,565.26339 309.01399,564.94194 313.78777,564.30164 C 318.74390,563.63688 320.26339,565.54041 315.49125,566.43566 C 313.40308,566.82741 312.00000,567.67524 312.00000,568.54531 C 312.00000,570.73023 310.22825,570.29453 309.47608,567.92464 z M 257.75000,567.29427 C 258.98750,567.05591 261.01250,567.05591 262.25000,567.29427 C 263.48750,567.53262 262.47500,567.72764 260.00000,567.72764 C 257.52500,567.72764 256.51250,567.53262 257.75000,567.29427 z M 282.00000,567.00000 C 283.93876,565.74708 285.00000,565.74708 285.00000,567.00000 C 285.00000,567.55000 283.98750,567.99311 282.75000,567.98469 C 280.93056,567.97230 280.78704,567.78387 282.00000,567.00000 z M 322.50000,567.00000 C 322.83992,566.45000 323.76648,566.00000 324.55902,566.00000 C 325.35156,566.00000 326.00000,566.45000 326.00000,567.00000 C 326.00000,567.55000 325.07344,568.00000 323.94098,568.00000 C 322.80852,568.00000 322.16008,567.55000 322.50000,567.00000 z M 291.23517,566.29232 C 288.11168,565.69197 289.45786,564.00000 293.05902,564.00000 C 295.00656,564.00000 296.00000,564.50669 296.00000,565.50000 C 296.00000,567.00489 295.43303,567.09917 291.23517,566.29232 z M 365.27083,566.39583 C 365.60312,566.06354 366.46562,566.02802 367.18750,566.31689 C 367.98523,566.63611 367.74828,566.87307 366.58333,566.92105 C 365.52917,566.96447 364.93854,566.72812 365.27083,566.39583 z M 379.00000,564.00000 C 379.00000,562.90000 379.45000,562.00000 380.00000,562.00000 C 380.55000,562.00000 381.00000,562.90000 381.00000,564.00000 C 381.00000,565.10000 380.55000,566.00000 380.00000,566.00000 C 379.45000,566.00000 379.00000,565.10000 379.00000,564.00000 z M 366.00000,563.55902 C 366.00000,563.31648 366.45000,562.83992 367.00000,562.50000 C 367.55000,562.16008 368.00000,562.35852 368.00000,562.94098 C 368.00000,563.52344 367.55000,564.00000 367.00000,564.00000 C 366.45000,564.00000 366.00000,563.80156 366.00000,563.55902 z M 305.00000,561.50000 C 305.68469,560.67500 307.07567,560.00000 308.09106,560.00000 C 309.32126,560.00000 309.74518,560.50047 309.36163,561.50000 C 309.04504,562.32500 307.65407,563.00000 306.27057,563.00000 C 304.14799,563.00000 303.94954,562.76572 305.00000,561.50000 z M 279.50000,561.00000 C 279.16008,560.45000 278.00852,560.00000 276.94098,560.00000 C 274.08636,560.00000 274.57897,558.11155 277.75000,556.89857 C 279.69421,556.15488 281.01278,556.16461 282.25000,556.93180 C 283.53566,557.72901 284.56535,557.68303 286.13065,556.75847 C 287.84019,555.74874 288.35119,555.74829 288.71606,556.75623 C 289.38989,558.61763 290.98933,557.21452 291.07029,554.69098 C 291.13805,552.57862 291.17141,552.57176 292.00000,554.50000 C 293.59045,558.20118 293.12900,560.73285 290.75000,561.35785 C 289.51250,561.68296 288.35000,561.51045 288.16667,560.97448 C 287.72627,559.68700 282.00000,559.71070 282.00000,561.00000 C 282.00000,561.55000 281.57656,562.00000 281.05902,562.00000 C 280.54148,562.00000 279.83992,561.55000 279.50000,561.00000 z M 316.50000,561.00000 C 314.72775,560.23844 314.81316,560.13257 317.25000,560.07029 C 318.76250,560.03163 320.00000,560.45000 320.00000,561.00000 C 320.00000,562.17371 319.23138,562.17371 316.50000,561.00000 z M 365.00000,557.03625 C 365.00000,554.77761 364.31486,551.88398 363.47747,550.60596 C 362.12025,548.53457 362.11884,548.14626 363.46448,547.02948 C 365.11239,545.66184 370.00000,546.40190 370.00000,548.01905 C 370.00000,548.55857 369.55000,549.00000 369.00000,549.00000 C 368.45000,549.00000 368.00000,551.05714 368.00000,553.57143 C 368.00000,556.30159 367.39583,558.74702 366.50000,559.64286 C 365.16667,560.97619 365.00000,560.68657 365.00000,557.03625 z M 246.00000,559.55902 C 246.00000,559.31648 246.45000,558.83992 247.00000,558.50000 C 247.55000,558.16008 248.00000,558.35852 248.00000,558.94098 C 248.00000,559.52344 247.55000,560.00000 247.00000,560.00000 C 246.45000,560.00000 246.00000,559.80156 246.00000,559.55902 z M 295.00000,556.00000 C 295.00000,552.48415 295.27233,552.01404 297.25000,552.11600 C 298.94317,552.20329 299.06691,552.34518 297.75000,552.68933 C 296.59621,552.99084 296.00000,554.12416 296.00000,556.01583 C 296.00000,558.66462 296.32645,558.91441 300.25000,559.26779 L 304.50000,559.65059 L 299.75000,559.82529 L 295.00000,560.00000 L 295.00000,556.00000 z M 385.42686,559.11834 C 385.70501,558.66829 383.69775,558.51480 380.96629,558.77726 C 377.66618,559.09436 376.00000,558.87628 376.00000,558.12723 C 376.00000,557.47390 377.72663,557.00000 380.10699,557.00000 C 383.21847,557.00000 384.08362,556.66029 383.67619,555.59854 C 382.96705,553.75056 386.49050,552.85579 389.68860,554.07171 C 392.83822,555.26919 392.31427,556.82803 388.17754,558.56740 C 386.38652,559.32046 385.14872,559.56839 385.42686,559.11834 z M 311.50000,558.42354 C 310.95000,558.27476 307.91250,557.86122 304.75000,557.50456 C 296.97002,556.62715 297.45728,555.00000 305.50000,555.00000 C 309.07500,555.00000 312.00000,554.57341 312.00000,554.05202 C 312.00000,553.47645 313.17854,553.51488 315.00000,554.14984 C 316.65000,554.72504 318.00000,555.55761 318.00000,556.00000 C 318.00000,556.94080 312.96234,558.81910 311.50000,558.42354 z M 334.96151,559.00000 C 334.29792,555.65898 334.29570,552.93528 334.95622,552.52706 C 336.19885,551.75907 337.03045,556.13295 335.98243,557.92453 C 335.47554,558.79104 335.01613,559.27500 334.96151,559.00000 z M 329.00000,554.55902 C 329.00000,553.50354 330.91911,553.06011 331.48992,553.98369 C 331.83538,554.54266 331.41648,555.00000 330.55902,555.00000 C 329.70156,555.00000 329.00000,554.80156 329.00000,554.55902 z M 353.39301,553.41821 C 353.72686,552.54823 354.00000,551.64823 354.00000,551.41821 C 354.00000,551.18820 354.67500,551.00000 355.50000,551.00000 C 357.30819,551.00000 357.43321,552.16679 355.80000,553.80000 C 354.09117,555.50883 352.67685,555.28450 353.39301,553.41821 z M 387.00000,551.00000 C 387.00000,550.45000 387.67500,550.00000 388.50000,550.00000 C 389.32500,550.00000 390.00000,549.32500 390.00000,548.50000 C 390.00000,547.67500 390.45000,547.00000 391.00000,547.00000 C 392.45434,547.00000 392.22409,548.91877 390.57143,550.57143 C 388.91877,552.22409 387.00000,552.45434 387.00000,551.00000 z M 384.00000,546.50000 C 384.00000,545.12500 383.43750,543.96447 382.75000,543.92105 C 381.75000,543.85789 381.75000,543.74123 382.75000,543.33772 C 383.43750,543.06031 384.00000,541.29583 384.00000,539.41667 C 384.00000,537.53750 384.41538,536.00000 384.92308,536.00000 C 385.92515,536.00000 392.00000,541.78368 392.00000,542.73772 C 392.00000,543.58402 385.79023,549.00000 384.81989,549.00000 C 384.36895,549.00000 384.00000,547.87500 384.00000,546.50000 z M 277.77270,545.59130 C 277.45868,543.94858 277.70828,543.33456 278.55758,543.66047 C 280.31354,544.33429 281.12901,548.00000 279.52296,548.00000 C 278.81357,548.00000 278.02595,546.91608 277.77270,545.59130 z M 258.00000,546.55902 C 258.00000,545.50354 259.91911,545.06011 260.48992,545.98369 C 260.83538,546.54266 260.41648,547.00000 259.55902,547.00000 C 258.70156,547.00000 258.00000,546.80156 258.00000,546.55902 z M 272.00000,545.05902 C 272.00000,544.47656 272.45000,544.00000 273.00000,544.00000 C 273.55000,544.00000 274.00000,544.19844 274.00000,544.44098 C 274.00000,544.68352 273.55000,545.16008 273.00000,545.50000 C 272.45000,545.83992 272.00000,545.64148 272.00000,545.05902 z M 304.25099,545.00000 C 304.47848,544.15379 305.92820,543.43086 307.57712,543.34137 C 310.09429,543.20476 310.15299,543.25345 308.00000,543.69218 C 306.62500,543.97238 305.12824,544.71876 304.67387,545.35082 C 304.12163,546.11900 303.98143,546.00270 304.25099,545.00000 z M 248.27083,544.39583 C 248.60313,544.06354 249.46562,544.02802 250.18750,544.31689 C 250.98523,544.63611 250.74828,544.87307 249.58333,544.92105 C 248.52917,544.96447 247.93854,544.72812 248.27083,544.39583 z M 314.00000,544.61350 C 314.00000,544.40092 315.35000,544.02886 317.00000,543.78669 C 318.65000,543.54452 320.00000,543.71845 320.00000,544.17319 C 320.00000,544.62794 318.65000,545.00000 317.00000,545.00000 C 315.35000,545.00000 314.00000,544.82607 314.00000,544.61350 z M 375.00000,543.55902 C 375.00000,541.80249 375.60006,541.54386 376.45729,542.93090 C 376.77373,543.44290 376.57528,544.14446 376.01631,544.48992 C 375.45734,544.83538 375.00000,544.41648 375.00000,543.55902 z M 368.01531,538.75000 C 368.02770,536.93056 368.21613,536.78704 369.00000,538.00000 C 370.25292,539.93876 370.25292,541.00000 369.00000,541.00000 C 368.45000,541.00000 368.00689,539.98750 368.01531,538.75000 z M 392.07895,538.58333 C 392.03553,537.52917 392.27188,536.93854 392.60417,537.27083 C 392.93646,537.60312 392.97198,538.46563 392.68311,539.18750 C 392.36389,539.98523 392.12693,539.74828 392.07895,538.58333 z M 363.00000,537.00000 C 363.00000,535.53333 363.66667,535.00000 365.50000,535.00000 C 366.87500,535.00000 368.00000,534.59878 368.00000,534.10841 C 368.00000,533.61803 369.08319,532.94495 370.40710,532.61267 C 371.73100,532.28039 373.53100,531.73347 374.40710,531.39728 C 375.61327,530.93442 376.00000,531.41896 376.00000,533.39301 C 376.00000,535.71546 376.40929,536.01437 379.75000,536.13164 L 383.50000,536.26328 L 380.00000,536.89054 C 378.07500,537.23553 376.34374,537.15751 376.15275,536.71716 C 375.96177,536.27681 375.17427,536.44041 374.40275,537.08071 C 373.39036,537.92092 373.00000,537.93253 373.00000,537.12244 C 373.00000,536.48107 371.29908,536.00000 369.03138,536.00000 C 365.91457,536.00000 365.18631,536.32195 365.63837,537.50000 C 366.00286,538.44984 365.62458,539.00000 364.60699,539.00000 C 363.66667,539.00000 363.00000,538.17029 363.00000,537.00000 z M 377.48149,532.97005 C 377.09252,532.34068 377.22726,531.37274 377.78091,530.81909 C 379.20152,529.39848 382.50000,530.23347 382.50000,532.01370 C 382.50000,533.81153 378.47554,534.57845 377.48149,532.97005 z M 384.00000,531.58333 C 384.00000,530.71250 384.71250,530.00000 385.58333,530.00000 C 386.45417,530.00000 386.98854,530.53437 386.77083,531.18750 C 386.15276,533.04172 384.00000,533.34926 384.00000,531.58333 z M 390.00000,528.00000 C 390.00000,527.45000 390.45000,527.00000 391.00000,527.00000 C 391.55000,527.00000 392.00000,526.58010 392.00000,526.06688 C 392.00000,525.55367 390.62908,525.17274 388.95350,525.22039 C 387.27793,525.26803 385.44474,524.84474 384.87975,524.27975 C 384.17675,523.57675 385.10789,523.28542 387.82968,523.35679 C 392.26132,523.47299 395.42701,526.48043 392.84217,528.11871 C 391.04387,529.25847 390.00000,529.21487 390.00000,528.00000 z M 378.75000,527.33772 C 379.43750,527.06031 380.56250,527.06031 381.25000,527.33772 C 381.93750,527.61513 381.37500,527.84211 380.00000,527.84211 C 378.62500,527.84211 378.06250,527.61513 378.75000,527.33772 z M 397.19927,493.47325 C 394.67814,488.28402 394.23577,482.00000 396.39159,482.00000 C 397.97056,482.00000 399.41635,486.51732 398.37609,488.20050 C 397.96176,488.87089 398.14729,489.02701 398.84549,488.59549 C 399.66006,488.09206 400.00000,489.37158 400.00000,492.94098 C 400.00000,495.72344 399.86467,498.00000 399.69927,498.00000 C 399.53386,498.00000 398.40886,495.96296 397.19927,493.47325 z M 388.91021,494.26384 C 388.22213,492.45405 388.19049,489.99948 388.81675,487.01384 L 389.76357,482.50000 L 389.88178,487.81574 C 389.94680,490.73940 390.46583,494.00190 391.03518,495.06574 C 391.75600,496.41260 391.74848,497.00000 391.01043,497.00000 C 390.42747,497.00000 389.48237,495.76873 388.91021,494.26384 z M 162.43945,481.12500 C 162.74775,479.26875 163.00000,477.13125 163.00000,476.37500 C 163.00000,475.61875 163.45000,475.00000 164.00000,475.00000 C 165.49441,475.00000 165.14083,479.15298 163.40402,482.00000 L 161.87890,484.50000 L 162.43945,481.12500 z M 391.06339,480.63615 C 390.99412,478.59953 394.94062,471.00000 396.06751,471.00000 C 396.45208,471.00000 397.02637,470.00715 397.34371,468.79367 C 397.66104,467.58019 398.17611,466.84278 398.48832,467.15498 C 399.40625,468.07292 397.26633,472.73367 394.78993,475.21007 C 393.53047,476.46953 392.63962,477.50000 392.81026,477.50000 C 392.98090,477.50000 392.67192,478.62500 392.12364,480.00000 C 391.35358,481.93121 391.11235,482.07595 391.06339,480.63615 z M 264.99718,471.70591 C 264.72063,471.40622 258.19563,471.06306 250.49718,470.94333 C 242.79873,470.82360 234.70000,470.36083 232.50000,469.91495 C 230.30000,469.46907 224.90000,468.60901 220.50000,468.00371 C 211.22634,466.72795 203.29690,464.65340 197.18476,461.90383 C 194.81138,460.83616 192.49987,460.19106 192.04807,460.47029 C 191.59627,460.74952 190.67755,460.31640 190.00648,459.50780 C 188.91880,458.19724 188.94543,456.13454 190.15096,448.31744 C 190.34490,447.05988 196.36067,447.02733 197.61042,448.27709 C 198.65602,449.32268 200.22101,449.16662 199.55161,448.08351 C 199.24008,447.57944 201.35102,448.04779 204.24260,449.12427 C 211.20701,451.71702 217.33722,452.96638 230.00000,454.37376 C 240.05596,455.49142 240.57401,455.45533 242.25000,453.52038 L 244.00000,451.50000 L 245.91481,453.75558 C 246.96795,454.99614 247.98045,455.59403 248.16481,455.08421 C 248.34916,454.57439 251.87500,453.64456 256.00000,453.01793 C 264.91969,451.66294 264.87630,451.66464 267.79259,452.55533 C 269.38668,453.04220 269.99603,452.87385 269.79259,452.00277 C 269.63167,451.31375 270.06250,450.54375 270.75000,450.29167 C 271.43750,450.03958 272.00000,450.55341 272.00000,451.43350 C 272.00000,452.82229 273.22192,452.96545 281.25000,452.51722 C 286.33750,452.23317 294.77500,451.55866 300.00000,451.01831 C 305.22500,450.47795 310.06250,450.23866 310.75000,450.48654 C 311.43750,450.73442 312.00000,450.44625 312.00000,449.84617 C 312.00000,449.09343 312.43547,449.11651 313.40435,449.92061 C 314.86683,451.13437 320.00000,450.40555 320.00000,448.98414 C 320.00000,448.54467 322.58750,447.92376 325.75000,447.60436 C 336.53130,446.51546 338.91764,446.11444 340.88649,445.06075 C 341.96923,444.48128 343.50469,444.25644 344.29862,444.56110 C 345.09255,444.86575 346.40489,444.45225 347.21495,443.64219 C 348.02500,442.83214 350.80532,441.85182 353.39343,441.46371 C 355.98154,441.07560 358.75179,440.10535 359.54954,439.30760 C 360.61839,438.23875 361.00000,438.18932 361.00000,439.11970 C 361.00000,439.96173 361.41635,439.85261 362.25000,438.79210 C 362.93750,437.91752 364.55068,436.88907 365.83485,436.50666 C 368.12703,435.82407 368.13933,435.85772 366.50773,438.34786 C 364.44905,441.48980 364.84349,445.55014 367.19000,445.37119 C 368.11897,445.30035 369.12610,445.88622 369.42806,446.67313 C 369.77332,447.57286 369.55285,447.84168 368.83404,447.39743 C 368.12076,446.95660 367.96543,447.13504 368.42090,447.87201 C 368.82235,448.52158 369.67938,448.94177 370.32541,448.80578 C 370.97143,448.66979 374.12652,450.25223 377.33672,452.32231 C 382.10547,455.39743 382.95807,456.34560 381.99641,457.50432 C 381.34905,458.28435 379.84753,459.22935 378.65969,459.60432 C 375.16380,460.70790 373.00000,463.97622 373.00000,468.15301 C 373.00000,470.26885 372.55000,472.00000 372.00000,472.00000 C 371.45000,472.00000 371.00000,470.65000 371.00000,469.00000 C 371.00000,467.07843 370.49074,466.00000 369.58333,466.00000 C 368.80417,466.00000 368.01667,465.55684 367.83333,465.01521 C 367.61999,464.38490 366.24015,464.36019 364.00000,464.94655 C 362.07500,465.45042 356.90000,466.39437 352.50000,467.04421 C 348.10000,467.69405 341.80000,468.67664 338.50000,469.22774 C 335.20000,469.77884 326.87500,470.33542 320.00000,470.46460 C 313.12500,470.59377 298.05000,471.04851 286.50000,471.47513 C 274.95000,471.90175 265.27373,472.00560 264.99718,471.70591 z M 182.48973,456.61934 C 181.94538,456.00370 181.50000,454.82500 181.50000,454.00000 C 181.50000,453.17500 180.82500,452.50000 180.00000,452.50000 C 179.17500,452.50000 178.56250,453.28750 178.63889,454.25000 C 178.71528,455.21250 178.34789,456.00000 177.82247,456.00000 C 177.29705,456.00000 177.00955,454.76783 177.18358,453.26184 C 177.45085,450.94903 178.08687,450.42908 181.27798,449.91471 C 183.35586,449.57978 185.68157,448.45016 186.44621,447.40444 C 187.21086,446.35873 188.17327,445.83994 188.58491,446.25157 C 188.99654,446.66321 188.87074,447.00000 188.30534,447.00000 C 187.73994,447.00000 187.46589,448.01250 187.69634,449.25000 C 188.23584,452.14709 183.92736,458.24524 182.48973,456.61934 z M 372.72784,446.92720 C 367.06450,442.25899 367.45592,438.58291 374.37044,431.50069 C 377.32418,428.47531 380.01262,426.00000 380.34476,426.00000 C 382.11640,426.00000 383.74057,432.09289 383.54358,438.00000 C 383.14529,449.94350 379.76848,452.73068 372.72784,446.92720 z M 306.60381,447.16796 C 305.76825,445.81601 300.77427,445.05044 298.99664,446.00180 C 298.15809,446.45058 295.45503,446.44893 292.98985,445.99814 C 290.52467,445.54735 288.28097,445.47586 288.00385,445.83926 C 287.27457,446.79563 279.99857,446.65323 279.99934,445.68261 C 279.99970,445.23305 279.21250,445.08277 278.25000,445.34866 C 277.28750,445.61455 273.35000,445.53238 269.50000,445.16605 C 263.43212,444.58869 262.50000,444.23813 262.50000,442.53343 C 262.50000,440.81301 263.09456,440.60342 267.25000,440.85896 C 271.03036,441.09143 272.00000,440.82944 272.00000,439.57553 C 272.00000,437.81568 273.54783,437.45935 274.50000,439.00000 C 275.56072,440.71628 280.72390,440.16026 281.46443,438.25000 C 282.10031,436.60970 282.22991,436.61829 283.53182,438.38698 C 284.61937,439.86444 285.76149,440.16120 288.79451,439.75439 C 290.92504,439.46862 293.41786,439.65434 294.33410,440.16710 C 295.43101,440.78096 296.00000,440.73435 296.00000,440.03064 C 296.00000,439.40102 296.98893,439.21010 298.40686,439.56598 C 299.73063,439.89822 301.78440,439.65057 302.97078,439.01564 C 304.55732,438.16655 305.48237,438.15544 306.46827,438.97367 C 307.24237,439.61611 308.96837,439.79506 310.55350,439.39722 C 312.10103,439.00881 313.05671,439.09908 312.74443,439.60416 C 311.92780,440.92499 317.88213,440.51787 319.23997,439.16003 C 320.66399,437.73601 323.66243,437.64478 324.50000,439.00000 C 325.42462,440.49607 328.00000,440.20544 328.00000,438.60504 C 328.00000,437.70782 329.42727,437.07396 332.00000,436.82861 C 334.20000,436.61881 336.00000,436.76027 336.00000,437.14297 C 336.00000,437.52567 337.58105,437.40224 339.51344,436.86868 C 341.44582,436.33512 343.54035,436.21592 344.16794,436.60379 C 344.82790,437.01167 345.03643,436.86797 344.66253,436.26298 C 344.28161,435.64663 345.34778,435.00496 347.25802,434.70090 C 349.04111,434.41708 352.42576,433.68802 354.77946,433.08077 C 357.13317,432.47352 360.28317,432.21385 361.77946,432.50371 C 364.04564,432.94272 364.16598,432.87290 362.50000,432.08565 C 361.40000,431.56586 360.78254,431.10894 361.12788,431.07029 C 361.47321,431.03163 363.44581,430.29385 365.51143,429.43078 C 368.92344,428.00515 369.21200,428.00515 368.66494,429.43078 C 367.89974,431.42486 369.36643,431.46834 371.00000,429.50000 C 373.09900,426.97086 373.92996,427.83312 372.38267,430.93475 C 371.31510,433.07473 370.35341,433.76064 368.83152,433.46755 C 367.68361,433.24649 365.85026,433.69190 364.75740,434.45737 C 363.66455,435.22283 362.14706,435.60993 361.38520,435.31757 C 360.62334,435.02522 360.00000,435.28417 360.00000,435.89301 C 360.00000,436.50186 358.81990,437.00000 357.37756,437.00000 C 355.15988,437.00000 354.94725,437.23152 356.00000,438.50000 C 357.06871,439.78771 356.71727,440.00000 353.51679,440.00000 C 351.46633,440.00000 347.24873,440.64224 344.14434,441.42719 C 341.03996,442.21215 335.45624,443.16524 331.73610,443.54518 C 328.01595,443.92511 324.70336,444.67096 324.37478,445.20260 C 324.04621,445.73425 320.73457,446.02867 317.01558,445.85686 C 312.58343,445.65211 309.72395,445.98421 308.71592,446.82080 C 307.83174,447.55461 306.93397,447.70217 306.60381,447.16796 z M 176.50000,443.23469 C 177.05000,442.83061 177.50000,438.37470 177.50000,433.33268 C 177.50000,428.29065 177.84048,423.82516 178.25663,423.40938 C 179.22742,422.43943 190.99490,435.00868 190.98034,437.00000 C 190.95900,439.91872 189.18992,441.21860 183.37827,442.58584 C 176.65911,444.16659 175.02128,444.32109 176.50000,443.23469 z M 253.00000,442.50000 C 253.00000,441.67500 252.47500,441.00000 251.83333,441.00000 C 251.19167,441.00000 250.87382,440.79285 251.12700,440.53966 C 251.38019,440.28648 252.58019,440.33896 253.79367,440.65629 C 256.26375,441.30223 256.83363,444.00000 254.50000,444.00000 C 253.67500,444.00000 253.00000,443.32500 253.00000,442.50000 z M 239.75000,442.33772 C 240.43750,442.06031 241.56250,442.06031 242.25000,442.33772 C 242.93750,442.61513 242.37500,442.84211 241.00000,442.84211 C 239.62500,442.84211 239.06250,442.61513 239.75000,442.33772 z M 198.50000,440.94515 C 196.75400,440.24275 196.84925,440.13164 199.25000,440.07029 C 201.96300,440.00095 202.71421,440.46879 201.25000,441.31585 C 200.83750,441.55449 199.60000,441.38767 198.50000,440.94515 z M 254.00000,439.05902 C 254.00000,438.54148 254.45000,437.83992 255.00000,437.50000 C 255.55000,437.16008 256.00000,437.58352 256.00000,438.44098 C 256.00000,439.29844 255.55000,440.00000 255.00000,440.00000 C 254.45000,440.00000 254.00000,439.57656 254.00000,439.05902 z M 246.75000,418.29876 C 239.91437,418.00454 238.00000,417.60247 238.00000,416.46107 C 238.00000,415.65748 237.15520,415.00000 236.12267,415.00000 C 235.09013,415.00000 231.03072,414.27405 227.10176,413.38678 L 219.95818,411.77355 L 217.85595,406.88678 C 216.69972,404.19905 215.35913,402.00000 214.87686,402.00000 C 214.39459,402.00000 214.00000,401.32973 214.00000,400.51052 C 214.00000,398.13890 208.67307,385.48080 208.23194,386.80419 C 208.01271,387.46188 207.42083,388.00000 206.91667,388.00000 C 205.53574,388.00000 205.81570,385.22810 207.24473,384.75176 C 208.13349,384.45550 207.68583,382.69562 205.67940,378.59795 C 204.13387,375.44156 202.75340,371.87827 202.61170,370.67953 C 202.13975,366.68705 200.67890,362.53604 199.23907,361.09621 C 198.34299,360.20013 198.02571,358.62146 198.38282,356.83588 C 198.69487,355.27567 198.48555,352.77708 197.91767,351.28345 C 197.06865,349.05037 196.70090,348.82831 195.84825,350.03388 C 195.02519,351.19763 194.94202,351.10108 195.44499,349.56575 C 195.86753,348.27591 194.95213,345.94380 192.69734,342.56575 C 184.84928,330.80803 169.48886,305.58649 164.50799,296.27934 C 162.97134,293.40797 161.33356,291.29385 160.86849,291.58128 C 160.40342,291.86871 160.27483,291.44738 160.58274,290.64499 C 160.89064,289.84260 160.08205,287.45672 158.78586,285.34305 C 157.48967,283.22937 155.88068,280.23713 155.21032,278.69361 C 154.53997,277.15010 153.54341,276.16416 152.99575,276.50263 C 152.44809,276.84110 152.00000,276.63290 152.00000,276.03996 C 152.00000,275.38848 151.00770,275.21095 149.49224,275.59130 C 147.30463,276.14036 147.01738,275.91937 147.24224,273.86036 C 147.43184,272.12411 147.02831,271.53822 145.71608,271.64454 C 144.36001,271.75442 144.08591,271.30468 144.57322,269.76931 C 144.99961,268.42586 144.84354,267.97866 144.10713,268.43379 C 143.48629,268.81749 143.00000,268.46169 143.00000,267.62374 C 143.00000,266.80189 141.46786,265.57543 139.59526,264.89828 C 137.22862,264.04250 136.36573,263.21049 136.76519,262.16951 C 137.16796,261.11991 136.94652,260.91502 136.02495,261.48458 C 135.02654,262.10163 134.83190,261.65970 135.21634,259.64862 C 135.60585,257.61103 135.32436,257.00000 133.99619,257.00000 C 131.18739,257.00000 127.11693,253.14694 124.98742,248.47239 C 122.68847,243.42588 122.61861,243.00000 124.08971,243.00000 C 124.68905,243.00000 125.95256,242.04520 126.89752,240.87822 C 128.93037,238.36776 135.86817,237.49288 136.69323,239.64295 C 136.97722,240.38301 137.66273,240.70845 138.21659,240.36614 C 138.77045,240.02384 139.61640,240.36392 140.09649,241.12188 C 141.36798,243.12933 141.23250,233.18254 139.90397,226.98782 C 139.12380,223.35002 139.11170,220.15268 139.86198,215.89326 C 140.52289,212.14124 140.57275,209.00643 139.99565,207.48857 C 139.21206,205.42755 119.21080,174.55859 102.99311,150.38064 C 100.36664,146.46499 97.898925,142.25690 97.509307,141.02932 C 96.848264,138.94656 97.024818,138.84219 100.15045,139.46798 C 104.10419,140.25956 107.54785,143.88860 113.32084,153.34733 C 115.61938,157.11337 119.62648,163.63837 122.22550,167.84733 C 124.82453,172.05630 127.27632,176.17500 127.67393,177.00000 C 129.23444,180.23793 136.49660,191.53886 137.43724,192.19305 C 137.98531,192.57423 138.68149,195.27423 138.98430,198.19305 L 139.53486,203.50000 L 141.01743,197.00000 C 142.78183,189.26439 148.07487,182.08490 155.31241,177.61027 C 159.27321,175.16150 161.25387,174.65252 167.76131,174.41125 L 175.50000,174.12433 L 168.44369,174.94303 C 156.93459,176.27836 149.23557,181.69189 144.89711,191.49970 C 143.33837,195.02348 143.22545,200.00000 144.70422,200.00000 C 144.96325,200.00000 147.11652,197.86250 149.48927,195.25000 C 155.36283,188.78295 156.40610,190.56992 150.61913,197.18529 C 145.65711,202.85762 145.45641,203.44005 147.03400,207.58942 L 148.06799,210.30904 L 151.03400,207.46743 C 153.66630,204.94552 154.00000,204.84482 154.00000,206.57236 C 154.00000,207.64296 153.10000,209.08097 152.00000,209.76793 C 149.45038,211.36019 149.48184,213.46800 152.15968,220.46562 C 153.99700,225.26683 154.52555,225.90302 155.70078,224.72780 C 156.75594,223.67264 156.83631,222.69966 156.04110,220.60809 C 155.46849,219.10203 155.03553,216.66160 155.07895,215.18490 C 155.14587,212.90885 155.39008,213.15649 156.68266,216.81113 C 158.18474,221.05814 158.23811,221.09532 160.27043,219.31113 L 162.33344,217.50000 L 160.50160,220.66453 C 158.68827,223.79709 158.69820,223.90824 161.48452,231.66453 C 168.44373,251.03693 187.75157,293.57779 197.03831,310.00000 C 200.67115,316.42413 208.16829,329.00022 208.36473,328.99952 C 208.43913,328.99926 208.60332,326.60606 208.72960,323.68131 C 208.94519,318.68813 208.37368,317.26912 199.36593,300.43178 C 185.22955,274.00801 172.58758,248.38942 170.03820,241.00000 C 165.25693,227.14145 166.44328,218.00000 173.02305,218.00000 C 176.41294,218.00000 176.64528,217.14851 174.42626,212.85741 C 173.56071,211.18361 173.09940,209.56727 173.40113,209.26553 C 173.70286,208.96380 174.89084,210.91243 176.04107,213.59581 C 177.89667,217.92476 182.00000,223.26457 182.00000,221.35039 C 182.00000,220.95026 182.90000,221.58891 184.00000,222.76963 C 185.10000,223.95034 186.00000,225.66004 186.00000,226.56897 C 186.00000,227.85909 185.58020,227.70375 184.08608,225.86078 C 183.03342,224.56235 181.93001,223.74091 181.63405,224.03536 C 181.14047,224.52643 194.44515,253.31857 201.71881,267.50000 C 204.59481,273.10732 204.77434,273.27094 204.46194,270.00000 C 204.27809,268.07500 204.09895,265.91094 204.06384,265.19098 C 204.02873,264.47102 203.66250,264.09034 203.25000,264.34502 C 202.83750,264.59971 202.43083,263.83876 202.34629,262.65404 C 202.26175,261.46932 198.76161,253.35014 194.56820,244.61143 C 190.37478,235.87272 187.13236,228.53431 187.36281,228.30385 C 187.98665,227.68001 192.48132,234.26245 192.61795,236.00000 C 192.77484,237.99528 203.93620,262.14150 205.46714,263.79762 C 206.44333,264.85364 206.66667,264.81529 206.66667,263.59161 C 206.66667,262.76461 206.29167,262.31974 205.83333,262.60301 C 205.37500,262.88627 205.00000,262.66803 205.00000,262.11803 C 205.00000,261.56803 205.43035,260.85207 205.95633,260.52699 C 206.48231,260.20192 206.66015,259.27795 206.35154,258.47372 C 206.04293,257.66949 205.31111,257.30772 204.72528,257.66979 C 204.07612,258.07099 203.88934,257.73077 204.24702,256.79867 C 204.57584,255.94177 202.88816,251.85538 200.40897,247.50556 C 197.97525,243.23552 196.66231,240.30478 197.49132,240.99280 C 198.32033,241.68081 200.45279,244.88889 202.23013,248.12187 C 204.00746,251.35484 205.84651,254.00000 206.31689,254.00000 C 206.78727,254.00000 205.50358,250.96250 203.46424,247.25000 C 189.77983,222.33837 181.29319,208.01695 180.00000,207.65354 C 179.09579,207.39943 179.35118,207.18593 180.64301,207.11600 C 181.82167,207.05220 183.06449,207.72568 183.40484,208.61262 C 183.93498,209.99413 184.27278,210.02996 185.76183,208.86262 C 187.32285,207.63888 187.36455,207.67302 186.17101,209.19764 C 185.14653,210.50630 185.10655,211.30826 185.99651,212.69764 C 187.04522,214.33485 187.10115,214.33964 186.60689,212.75000 C 186.30762,211.78750 186.49865,211.00000 187.03138,211.00000 C 187.56412,211.00000 188.00000,212.35000 188.00000,214.00000 C 188.00000,215.65000 188.48032,217.00000 189.06739,217.00000 C 189.65445,217.00000 189.92128,216.21250 189.66033,215.25000 C 188.17568,209.77381 187.98337,207.87169 188.97641,208.48542 C 191.21973,209.87187 195.19888,210.09663 194.77091,208.81273 C 194.53971,208.11914 192.35918,207.40513 189.92528,207.22603 C 187.49137,207.04694 185.05000,206.69639 184.50000,206.44705 C 183.95000,206.19770 186.46291,206.16230 190.08424,206.36839 L 196.66848,206.74308 L 193.66627,201.20010 C 191.25866,196.75491 191.01061,195.79009 192.41382,196.32856 C 193.37619,196.69785 194.68927,197.00689 195.33179,197.01531 C 196.07029,197.02499 195.99457,197.35078 195.12594,197.90100 C 193.98711,198.62238 194.06682,199.30454 195.59155,201.88569 C 196.60336,203.59856 197.81075,205.00000 198.27462,205.00000 C 198.73850,205.00000 198.85914,205.41891 198.54271,205.93090 C 197.88668,206.99237 199.13603,207.94845 201.86617,208.47423 C 203.60889,208.80984 203.57404,208.49133 201.36757,203.91753 C 200.06280,201.21289 198.51978,199.00000 197.93862,199.00000 C 197.35746,199.00000 197.12950,198.59948 197.43204,198.10996 C 198.11689,197.00185 193.17450,188.00419 191.53550,187.37525 C 190.87431,187.12153 190.33333,186.24596 190.33333,185.42955 C 190.33333,184.40519 191.20818,184.78332 193.15624,186.64968 C 194.70883,188.13716 195.78998,189.54336 195.55878,189.77455 C 194.82450,190.50884 200.98489,199.78023 202.62535,200.40973 C 203.71377,200.82740 203.19856,199.24163 200.95317,195.26303 C 199.14275,192.05514 198.44634,190.12554 199.37810,190.89883 C 200.29673,191.66122 201.28389,192.04945 201.57179,191.76155 C 202.33682,190.99652 199.09050,188.00000 197.49667,188.00000 C 196.74840,188.00000 195.13782,186.59792 193.91759,184.88427 C 191.78991,181.89622 191.78250,181.81323 193.73663,182.85905 C 194.85733,183.45883 198.63755,186.75151 202.13713,190.17613 C 205.63671,193.60074 207.92219,195.68503 207.21598,194.80789 C 205.60311,192.80465 204.84378,188.07614 205.00042,181.01111 C 205.13139,175.10343 203.07583,163.00000 201.94154,163.00000 C 201.56119,163.00000 201.00156,161.76250 200.69791,160.25000 C 200.36327,158.58317 197.12855,154.54591 192.48543,150.00000 C 185.29630,142.96138 174.00000,129.83078 174.00000,128.51289 C 174.00000,128.18626 173.11951,126.69974 172.04335,125.20951 C 170.96719,123.71928 168.87623,118.90000 167.39678,114.50000 C 165.16051,107.84915 164.65049,104.35574 164.37259,93.785337 C 164.18873,86.792272 164.47559,80.042272 165.01004,78.785337 C 165.85890,76.788985 165.96350,76.752904 165.83720,78.500000 C 165.75769,79.600000 165.96457,81.175000 166.29694,82.000000 C 166.62931,82.825000 167.36869,85.330336 167.94001,87.567414 C 168.51132,89.804491 171.14977,95.204491 173.80323,99.567414 C 178.58473,107.42933 188.75988,119.00000 190.89210,119.00000 C 191.50144,119.00000 192.00000,119.35134 192.00000,119.78076 C 192.00000,120.41671 194.23224,121.59333 199.00000,123.47049 C 199.27500,123.57876 201.64515,124.24754 204.26700,124.95667 C 209.73686,126.43609 210.92084,127.57296 207.96781,128.51022 C 205.97113,129.14394 205.92315,129.65514 206.43576,144.83221 C 206.72681,153.44950 207.19143,164.32500 207.46825,169.00000 C 207.74507,173.67500 208.22963,181.97573 208.54507,187.44608 C 208.92447,194.02593 209.67915,198.34113 210.77490,200.19608 C 211.68587,201.73823 212.68452,203.00000 212.99412,203.00000 C 213.30372,203.00000 214.34721,199.93259 215.31299,196.18353 C 217.27512,188.56675 221.75082,177.06248 225.69414,169.50000 L 228.30130,164.50000 L 227.08370,148.50000 C 226.41402,139.70000 226.15001,131.76296 226.49701,130.86213 C 226.94962,129.68715 226.26200,128.84096 224.06396,127.86802 C 220.24447,126.17735 220.23025,125.56148 223.97487,124.01041 C 225.61105,123.33268 227.82316,122.04059 228.89066,121.13909 C 235.15058,115.85264 235.25382,115.79266 236.00385,117.00623 C 236.48850,117.79041 236.97122,117.85558 237.38123,117.19217 C 237.72841,116.63043 237.44716,115.97055 236.75623,115.72578 C 235.92693,115.43198 236.42692,114.40673 238.22742,112.70904 C 239.72751,111.29461 242.76501,107.33668 244.97742,103.91364 C 248.73142,98.105467 250.37521,96.561883 247.91898,101.15139 C 247.32442,102.26234 247.04173,103.37506 247.29077,103.62411 C 248.16941,104.50275 251.70806,95.418997 252.98771,89.000000 C 254.86814,79.567386 255.98664,79.405083 256.08886,88.550000 C 256.29059,106.59765 255.20610,115.46075 251.91087,122.69514 C 250.85989,125.00246 249.99975,127.25246 249.99944,127.69514 C 249.99841,129.17090 242.55594,140.58501 238.25000,145.71460 C 235.91250,148.49923 234.00000,151.27761 234.00000,151.88878 C 234.00000,152.49995 233.63335,153.00000 233.18521,153.00000 C 232.02749,153.00000 228.91374,159.82865 229.81693,160.38686 C 230.22858,160.64127 232.74516,158.06656 235.40932,154.66526 C 251.21452,134.48700 269.05994,135.21110 280.62614,156.50000 C 282.12021,159.25000 283.78111,161.79208 284.31703,162.14908 C 284.85295,162.50607 285.00602,163.54194 284.65717,164.45101 C 284.28514,165.42052 284.43161,165.85128 285.01145,165.49292 C 285.55515,165.15690 286.05625,165.35852 286.12500,165.94098 C 286.30541,167.46941 286.52443,168.15314 287.90576,171.50000 C 292.64234,182.97636 295.70977,197.08866 296.69937,211.95672 C 297.08079,217.68725 297.61576,220.64244 298.05707,219.45672 C 299.43111,215.76490 300.08364,220.18451 299.16082,226.93236 C 298.39536,232.52951 298.46108,233.08999 299.68641,231.41470 C 300.45666,230.36162 301.34110,228.48750 301.65184,227.25000 C 301.96258,226.01250 302.61803,225.00000 303.10841,225.00000 C 303.59878,225.00000 304.00000,223.94474 304.00000,222.65499 C 304.00000,221.36523 304.84782,219.54270 305.88405,218.60493 C 306.92028,217.66715 308.33201,214.88582 309.02123,212.42418 C 309.71044,209.96254 310.66262,207.70851 311.13717,207.41522 C 311.61173,207.12193 312.00000,205.78352 312.00000,204.44098 C 312.00000,203.09844 312.45000,202.00000 313.00000,202.00000 C 313.55000,202.00000 314.00000,201.30657 314.00000,200.45904 C 314.00000,197.70687 319.91132,187.47291 323.24848,184.44764 C 328.11364,180.03717 330.59294,178.89829 333.21693,179.86860 C 334.47262,180.33293 335.97594,180.54380 336.55764,180.33721 C 337.13934,180.13061 338.71150,181.12846 340.05134,182.55465 C 342.29628,184.94428 342.35060,185.22429 340.74371,186.12355 C 338.43704,187.41443 338.53670,188.64558 341.00000,189.28975 C 342.10000,189.57741 343.00000,190.33521 343.00000,190.97377 C 343.00000,191.70610 342.20748,191.88324 340.85359,191.45353 C 338.98937,190.86185 338.78667,191.07621 339.31174,193.08411 C 339.90646,195.35831 338.59838,198.00000 336.87756,198.00000 C 336.39490,198.00000 336.00000,197.23500 336.00000,196.30000 C 336.00000,195.13069 335.67759,194.92241 334.96722,195.63278 C 333.58923,197.01077 334.74804,199.80611 336.85704,200.19153 C 338.41874,200.47693 338.41242,200.63087 336.77249,202.25000 C 335.08333,203.91772 335.00000,203.90597 335.00000,202.00000 C 335.00000,199.30560 333.15212,199.46120 332.03116,202.25000 C 331.13952,204.46830 331.12588,204.46990 331.06339,202.36350 C 330.96215,198.95128 325.12607,198.42098 322.46244,201.58198 C 320.22496,204.23724 318.41096,204.68403 317.72024,202.75000 C 317.47470,202.06250 316.94970,201.80000 316.55357,202.16667 C 316.15744,202.53333 316.75442,203.75442 317.88019,204.88019 C 319.01616,206.01616 320.19206,206.49826 320.52254,205.96353 C 321.43782,204.48257 323.00000,204.82085 323.00000,206.50000 C 323.00000,207.32500 322.32500,208.00000 321.50000,208.00000 C 320.66667,208.00000 320.00000,208.88889 320.00000,210.00000 C 320.00000,211.10000 319.55000,212.00000 319.00000,212.00000 C 318.00562,212.00000 317.61527,210.63788 317.92535,208.25000 C 318.01463,207.56250 317.61795,206.93250 317.04384,206.85000 C 313.74669,206.37620 313.51648,206.60914 313.81841,210.11370 C 313.99312,212.14152 313.55272,214.33577 312.81487,215.11370 C 312.00053,215.97228 311.38222,219.73567 311.19059,225.00000 C 311.02042,229.67500 310.72225,235.74608 310.52799,238.49129 C 310.33373,241.23651 310.77253,244.91315 311.50308,246.66162 C 312.29117,248.54777 312.65369,252.00820 312.39447,255.17033 C 312.15417,258.10165 311.80071,262.58566 311.60900,265.13480 C 311.41728,267.68394 311.03918,270.15894 310.76877,270.63480 C 310.24077,271.56394 312.17467,281.28785 313.49951,284.36540 C 314.18772,285.96406 313.97801,286.12780 312.03296,285.51046 C 310.35755,284.97871 309.87999,285.14485 310.20881,286.14506 C 310.45379,286.89028 311.85721,287.64241 313.32750,287.81646 C 314.79780,287.99051 316.48511,289.03791 317.07708,290.14402 C 317.67288,291.25729 318.77450,291.91677 319.54467,291.62123 C 320.30987,291.32760 321.20192,291.51769 321.52699,292.04367 C 322.29106,293.27995 327.15475,293.27186 330.42406,292.02887 C 333.44008,290.88218 342.00000,282.22478 342.00000,280.32110 C 342.00000,279.59449 342.44143,279.00000 342.98095,279.00000 C 343.52047,279.00000 344.25328,277.76250 344.60941,276.25000 C 344.96554,274.73750 346.09428,272.10470 347.11772,270.39933 C 348.14117,268.69396 349.62087,264.64396 350.40595,261.39933 L 351.83337,255.50000 L 351.91669,260.87166 C 351.96251,263.82608 351.30497,270.92413 350.45548,276.64512 C 349.60600,282.36611 349.21365,287.53667 349.58360,288.13526 C 349.95355,288.73385 349.69093,289.57298 349.00000,290.00000 C 348.22280,290.48033 348.06854,291.29569 348.59545,292.13820 C 349.63916,293.80703 349.68123,295.23135 348.85718,301.00000 C 348.48983,303.57161 348.64754,306.03338 349.22520,306.74467 C 349.78117,307.42924 350.00007,308.89174 349.71164,309.99467 C 349.06588,312.46406 350.53162,312.63353 351.91990,310.25000 C 352.48051,309.28750 352.95287,308.92100 352.96959,309.43555 C 352.98632,309.95010 352.05285,311.37929 350.89523,312.61152 C 348.72156,314.92529 349.03537,317.00000 351.55902,317.00000 C 352.44734,317.00000 353.00000,315.99422 353.00000,314.37756 C 353.00000,312.07665 353.19806,311.91949 354.61534,313.09572 C 356.01829,314.26007 356.17786,314.17755 355.82894,312.46817 C 355.60798,311.38568 356.01351,310.05000 356.73012,309.50000 C 357.44672,308.95000 358.23102,306.93328 358.47301,305.01840 C 358.71499,303.10352 359.60756,301.02891 360.45649,300.40816 C 361.30542,299.78740 362.00000,298.87554 362.00000,298.38180 C 362.00000,297.88806 363.10611,295.40627 364.45801,292.86672 C 365.80992,290.32717 366.61045,287.94378 366.23697,287.57031 C 365.86349,287.19683 365.99729,286.57822 366.53429,286.19563 C 368.17743,285.02496 369.91188,278.65402 369.34614,275.86722 C 369.05053,274.41109 369.31859,272.92114 369.94591,272.53343 C 370.73492,272.04580 370.88277,272.61888 370.43167,274.41621 C 370.07500,275.83730 370.00012,277.00000 370.26527,277.00000 C 370.76137,277.00000 375.20450,267.94020 378.58795,260.02958 C 379.63958,257.57085 383.08245,250.37085 386.23877,244.02958 C 391.13436,234.19399 391.72207,232.44901 390.23877,232.15294 C 387.47446,231.60117 386.55991,230.23520 387.88544,228.63803 C 388.58087,227.80009 388.81198,226.09905 388.43465,224.59565 C 388.02684,222.97081 388.19774,222.00000 388.89159,222.00000 C 389.50122,222.00000 390.00000,220.82686 390.00000,219.39301 C 390.00000,217.48653 390.40306,216.94069 391.50000,217.36163 C 392.32500,217.67821 393.00000,217.55014 393.00000,217.07702 C 393.00000,216.60391 391.82716,215.92245 390.39369,215.56267 C 388.51928,215.09223 387.42638,215.40221 386.50190,216.66652 C 385.41365,218.15478 384.96968,218.21973 383.60821,217.08981 C 382.72370,216.35572 382.00689,215.24771 382.01531,214.62756 C 382.02454,213.94789 382.36649,214.02984 382.87615,214.83385 C 383.57508,215.93644 383.81395,215.92722 384.25394,214.78064 C 384.58353,213.92173 383.68461,212.90597 381.89310,212.11297 C 379.09556,210.87466 377.95552,209.00000 380.00000,209.00000 C 380.55000,209.00000 381.00000,209.47656 381.00000,210.05902 C 381.00000,210.64148 381.45000,210.83992 382.00000,210.50000 C 382.55000,210.16008 383.00000,209.00852 383.00000,207.94098 C 383.00000,206.87344 382.55000,206.00000 382.00000,206.00000 C 381.45000,206.00000 381.00000,206.45000 381.00000,207.00000 C 381.00000,208.70278 379.17060,208.09953 378.72556,206.25000 C 378.40894,204.93415 377.88690,205.36831 376.62131,208.00000 L 374.93815,211.50000 L 375.52952,208.33657 C 376.00538,205.79098 375.74598,205.05415 374.20132,204.56390 C 373.14556,204.22881 371.54336,204.23800 370.64088,204.58431 C 369.37830,205.06881 369.00000,204.61295 369.00000,202.60699 C 369.00000,201.17314 368.50273,200.00000 367.89496,200.00000 C 367.16112,200.00000 367.00508,198.57240 367.43044,195.75000 C 367.78272,193.41250 368.42174,189.02500 368.85049,186.00000 C 369.88443,178.70507 371.98946,174.00000 374.21924,174.00000 C 375.19866,174.00000 376.00000,173.35156 376.00000,172.55902 C 376.00000,170.33568 378.15391,169.52363 379.18137,171.35960 C 380.35668,173.45978 382.84116,173.45373 385.17126,171.34501 C 386.88366,169.79531 387.00000,169.81439 387.00000,171.64501 C 387.00000,172.72026 386.43750,174.20623 385.75000,174.94718 C 384.72810,176.04852 384.82882,176.17835 386.30194,175.65863 C 387.38022,175.27822 387.85676,175.42274 387.48856,176.01852 C 387.15013,176.56610 387.53020,177.26623 388.33316,177.57435 C 389.14268,177.88499 390.08811,180.10190 390.45530,182.55048 C 390.81951,184.97922 391.65357,187.31144 392.30875,187.73319 C 394.05804,188.85921 396.00000,192.67513 396.00000,194.98643 C 396.00000,196.09389 396.50248,197.00000 397.11663,197.00000 C 397.73078,197.00000 398.00671,197.86633 397.72982,198.92518 C 397.37664,200.27573 397.64031,200.69152 398.61318,200.31819 C 399.37593,200.02550 400.00000,198.70917 400.00000,197.39301 C 400.00000,196.07686 400.39375,195.00000 400.87500,195.00000 C 401.35625,195.00000 402.02120,193.76250 402.35267,192.25000 C 403.47014,187.15093 406.31547,184.67870 411.41215,184.37846 C 413.96467,184.22810 415.80881,184.50034 415.51024,184.98344 C 414.40347,186.77423 417.19326,187.13507 419.06301,185.44297 C 422.32639,182.48965 421.53832,179.54650 416.92739,177.46726 C 411.24019,174.90269 409.65482,172.45644 411.67843,169.36803 C 412.53180,168.06561 413.96577,166.99311 414.86501,166.98469 C 416.18957,166.97228 416.23699,166.80281 415.11474,166.09207 C 414.00286,165.38791 413.95353,164.57207 414.86474,161.95816 C 415.48913,160.16703 416.00000,157.63989 416.00000,156.34230 C 416.00000,154.23338 415.78779,154.11558 414.00000,155.23207 C 412.40084,156.23077 411.59916,156.23077 410.00000,155.23207 C 408.33189,154.19032 408.00000,154.23338 408.00000,155.49153 C 408.00000,156.32119 407.55000,157.00000 407.00000,157.00000 C 406.45000,157.00000 406.00000,156.12656 406.00000,155.05902 C 406.00000,153.99148 406.45000,152.83992 407.00000,152.50000 C 408.69152,151.45458 408.11519,150.24573 405.62759,149.62138 C 402.82478,148.91792 402.13125,146.16096 402.60902,137.62185 C 403.15816,127.80728 407.39831,124.37907 413.27287,129.00000 C 416.51636,131.55133 417.52593,131.51492 419.44330,128.77749 C 420.93985,126.64086 421.00000,126.63314 421.00000,128.57749 C 421.00000,129.68987 420.44126,131.15874 419.75836,131.84164 C 418.76950,132.83050 418.78304,133.24788 419.82484,133.89175 C 420.54431,134.33640 421.24722,135.47865 421.38686,136.43007 C 421.52650,137.38150 422.13497,138.46538 422.73902,138.83871 C 423.34307,139.21203 423.98640,141.08854 424.16865,143.00874 C 424.41676,145.62294 423.96565,146.93357 422.37294,148.22588 C 421.20306,149.17511 420.00769,150.86261 419.71656,151.97588 C 419.28685,153.61907 419.66939,154.00000 421.74923,154.00000 C 423.15832,154.00000 425.78617,155.12500 427.58889,156.50000 C 431.62091,159.57537 432.67012,159.61050 435.05644,156.75000 C 436.08880,155.51250 436.94843,155.04497 436.96673,155.71104 C 436.98503,156.37712 435.98750,157.87274 434.75000,159.03465 C 433.31036,160.38634 433.04024,161.03065 434.00000,160.82360 C 435.09865,160.58658 435.44351,161.28049 435.28887,163.41701 L 435.07774,166.33403 L 436.65634,164.08026 C 437.52457,162.84069 440.00382,158.20674 442.16579,153.78259 C 446.08621,145.76003 446.09132,145.73373 444.09013,143.86935 C 441.62696,141.57455 440.82214,141.50392 441.20616,143.61627 C 441.37453,144.54237 440.54569,145.59375 439.26515,146.07844 C 437.31854,146.81524 437.16877,146.70262 438.10389,145.20525 C 438.82347,144.05302 438.89948,141.01537 438.33440,135.99308 C 437.87071,131.87189 437.64025,127.46325 437.82227,126.19612 C 438.24658,123.24236 442.93904,121.19614 444.47411,123.29549 C 445.87844,125.21601 449.68271,126.32241 450.47486,125.04068 C 450.82861,124.46830 451.59658,124.00000 452.18146,124.00000 C 452.86743,124.00000 452.91087,124.44369 452.30385,125.25000 C 451.78628,125.93750 451.62498,127.85000 451.94541,129.50000 L 452.52802,132.50000 L 454.19192,128.00000 C 455.10707,125.52500 456.60784,120.30444 457.52697,116.39875 C 460.68875,102.96321 462.04487,103.62066 462.09298,118.61235 C 462.15618,138.30903 455.42755,160.13635 442.14767,183.31380 C 438.38025,189.88912 428.56803,204.90756 420.50000,216.44743 C 402.49887,242.19482 383.95420,275.60197 378.09810,292.83201 C 376.91444,296.31462 374.60814,301.81428 372.97300,305.05349 C 371.33785,308.29270 370.00000,311.71430 370.00000,312.65703 C 370.00000,313.59977 369.17960,315.30010 368.17689,316.43555 C 367.17418,317.57100 365.86515,320.07500 365.26795,322.00000 C 364.67074,323.92500 362.18388,330.01425 359.74158,335.53166 C 350.38097,356.67833 345.99448,367.23760 345.99753,368.61665 C 345.99889,369.23080 345.05006,372.01912 343.88901,374.81290 C 341.95940,379.45606 341.46536,379.92185 338.13901,380.23410 L 334.50000,380.57570 L 338.66937,382.59150 L 342.83874,384.60729 L 339.94796,388.91155 C 338.35804,391.27889 336.14432,394.00754 335.02859,394.97520 C 333.91287,395.94287 333.00000,397.08905 333.00000,397.52228 C 333.00000,397.95551 333.78750,397.61846 334.75000,396.77327 C 337.34142,394.49769 341.00000,393.57210 341.00000,395.19207 C 341.00000,395.92183 341.90000,397.08097 343.00000,397.76793 C 344.10000,398.45489 345.00000,399.48969 345.00000,400.06749 C 345.00000,400.64529 344.49162,400.80384 343.87027,400.41982 C 343.18453,399.99601 342.92253,400.26758 343.20360,401.11080 C 343.45829,401.87486 344.17708,402.50000 344.80091,402.50000 C 345.42475,402.50000 346.83458,403.27011 347.93387,404.21135 C 349.85160,405.85336 350.00347,405.80270 351.68190,402.96135 C 352.64402,401.33261 353.75387,400.00000 354.14822,400.00000 C 354.54257,400.00000 355.12237,399.18981 355.43666,398.19958 C 356.01969,396.36261 367.00000,384.14696 367.00000,385.33530 C 367.00000,385.69459 369.11136,383.90708 371.69191,381.36306 C 376.04294,377.07364 382.58683,373.25350 383.69142,374.35809 C 383.95281,374.61947 384.95691,374.08333 385.92277,373.16667 C 387.12045,372.02999 387.37301,371.10251 386.71700,370.25000 C 386.06780,369.40635 386.15448,369.00000 386.98365,369.00000 C 387.65935,369.00000 389.91671,367.65000 392.00000,366.00000 C 394.08329,364.35000 396.48399,363.00000 397.33489,363.00000 C 400.12949,363.00000 400.21649,360.95813 397.51251,358.83118 C 395.56275,357.29750 395.15304,356.44696 395.97032,355.62968 C 396.78760,354.81240 397.30819,354.88062 397.92984,355.88647 C 398.39544,356.63984 399.20856,356.98914 399.73675,356.66270 C 400.26495,356.33625 401.72723,357.02886 402.98627,358.20184 C 405.04290,360.11788 405.59157,360.20398 408.38771,359.04949 C 410.09947,358.34272 412.25446,357.72103 413.17658,357.66795 C 414.09870,357.61486 414.58738,357.14138 414.26254,356.61578 C 413.92279,356.06605 414.40079,355.93982 415.38789,356.31861 C 416.42658,356.71719 416.85762,356.57864 416.47997,355.96759 C 416.13682,355.41236 417.35095,354.32984 419.17803,353.56198 C 421.00511,352.79411 424.40860,350.77854 426.74134,349.08293 C 429.07408,347.38732 431.27853,346.00000 431.64011,346.00000 C 432.00170,346.00000 434.75355,343.97808 437.75534,341.50684 C 440.75713,339.03561 443.68471,337.30514 444.26108,337.66135 C 444.83744,338.01757 445.02836,337.85490 444.68533,337.29987 C 443.90104,336.03086 448.37661,331.70994 449.40752,332.74085 C 449.82505,333.15838 450.07588,333.05000 449.96491,332.50000 C 449.47990,330.09602 450.09674,328.82314 451.48800,329.35702 C 452.30641,329.67107 452.86891,329.54985 452.73800,329.08763 C 452.60710,328.62542 453.65031,326.94337 455.05624,325.34974 C 456.46217,323.75611 457.91055,321.67548 458.27486,320.72612 C 458.63916,319.77675 459.40135,319.00000 459.96862,319.00000 C 460.53588,319.00000 461.00000,318.53589 461.00000,317.96865 C 461.00000,317.40141 463.03667,314.13891 465.52593,310.71865 C 472.21032,301.53427 478.64491,291.50223 486.19108,278.50000 C 487.14870,276.85000 490.08496,271.22500 492.71611,266.00000 C 495.34725,260.77500 497.72500,256.27500 498.00000,256.00000 C 498.27500,255.72500 498.51891,255.05000 498.54202,254.50000 C 498.56514,253.95000 499.80264,250.85651 501.29202,247.62557 C 502.78141,244.39463 504.00000,241.28213 504.00000,240.70890 C 504.00000,240.13567 504.25689,239.92356 504.57087,240.23754 C 504.88485,240.55152 504.17043,244.06993 502.98325,248.05623 C 501.42326,253.29439 501.09181,255.88577 501.78787,257.40202 C 505.54053,265.57659 505.67293,266.99625 503.47108,275.44971 C 501.88342,281.54518 501.10905,283.48659 495.27428,296.00000 C 478.66074,331.62987 450.60466,364.62585 422.71453,381.33553 C 418.43252,383.90099 414.70904,386.00000 414.44013,386.00000 C 413.20094,386.00000 390.15816,400.56474 386.65972,403.55927 L 382.72563,406.92671 L 379.49791,401.56655 C 377.72267,398.61846 375.32788,395.19493 374.17616,393.95871 L 372.08213,391.71103 L 369.55834,394.10552 C 366.46777,397.03775 366.20387,398.67104 369.15461,396.60426 C 372.70435,394.11792 377.97269,397.97057 377.90052,403.00000 C 377.86520,405.46094 377.84824,405.46608 376.81471,403.32889 C 374.93507,399.44207 367.19330,398.65551 363.50000,401.97612 C 359.89647,405.21602 353.67655,407.70899 342.50000,410.39303 C 336.45000,411.84594 329.87936,413.47490 327.89858,414.01296 C 325.91780,414.55102 319.64641,415.46851 313.96216,416.05182 C 308.27791,416.63514 303.34897,417.28433 303.00895,417.49447 C 302.06573,418.07741 256.68132,418.72624 246.75000,418.29876 z M 283.10209,411.25000 C 282.59891,410.28750 281.67704,407.58750 281.05347,405.25000 C 279.73584,400.31071 278.00000,399.62834 278.00000,404.04966 C 278.00000,407.89811 280.58457,413.00000 282.53415,413.00000 C 283.62819,413.00000 283.77709,412.54119 283.10209,411.25000 z M 286.10017,405.10388 C 284.08177,398.45873 282.00000,395.07045 282.00000,398.43046 C 282.00000,400.54790 287.12676,413.20657 287.73712,412.59621 C 288.00660,412.32673 287.26997,408.95519 286.10017,405.10388 z M 300.00000,405.23108 C 300.00000,403.15056 299.64193,402.87305 297.61412,403.38200 C 295.78879,403.84013 295.10702,403.51726 294.71228,402.00776 C 294.29583,400.41524 294.51765,400.20667 295.86237,400.92634 C 296.96086,401.51424 298.18487,401.33799 299.45534,400.40900 C 301.27393,399.07921 301.21691,398.99923 298.44113,398.98635 C 296.82351,398.97884 294.54361,398.71602 293.37469,398.40232 C 291.29048,397.84298 291.27492,397.93040 292.56996,402.92291 C 294.35303,409.79681 294.63061,410.12543 297.53571,408.80178 C 299.17784,408.05357 300.00000,406.86228 300.00000,405.23108 z M 309.50000,397.00000 C 309.16008,396.45000 308.68352,396.00000 308.44098,396.00000 C 308.19844,396.00000 308.00000,396.45000 308.00000,397.00000 C 308.00000,397.55000 308.47656,398.00000 309.05902,398.00000 C 309.64148,398.00000 309.83992,397.55000 309.50000,397.00000 z M 311.53894,393.93699 C 311.90028,393.35233 311.44933,392.04900 310.53683,391.04070 C 309.32912,389.70619 309.21305,389.09565 310.11020,388.79660 C 310.78805,388.57065 311.41243,387.43859 311.49772,386.28091 C 311.61524,384.68573 310.96838,384.07559 308.82640,383.76121 C 306.88465,383.47622 306.00000,383.78014 306.00000,384.73221 C 306.00000,385.49441 306.45000,385.83992 307.00000,385.50000 C 307.55000,385.16008 308.00000,385.61008 308.00000,386.50000 C 308.00000,387.40973 307.52447,387.82414 306.91371,387.44667 C 305.22343,386.40202 306.24359,392.29176 308.00000,393.71820 C 309.87333,395.23959 310.70222,395.29083 311.53894,393.93699 z M 373.50000,386.00000 C 373.16008,385.45000 372.34602,385.00689 371.69098,385.01531 C 370.97537,385.02451 371.09871,385.41754 372.00000,386.00000 C 373.92112,387.24153 374.26730,387.24153 373.50000,386.00000 z M 305.62852,373.50000 C 305.74621,368.00565 305.70407,367.87924 305.12852,372.00000 C 304.64372,375.47100 304.20114,372.84134 303.19301,360.50000 C 302.47417,351.70000 301.04258,339.32500 300.01170,333.00000 C 298.98082,326.67500 297.85109,317.90000 297.50119,313.50000 C 297.15129,309.10000 296.39878,304.15000 295.82895,302.50000 C 293.44145,295.58677 292.71500,294.00000 291.93750,294.00000 C 290.55877,294.00000 282.59374,302.37334 281.00000,305.49818 C 280.17500,307.11576 278.71250,309.24041 277.75000,310.21962 C 276.78750,311.19883 276.00000,312.70156 276.00000,313.55902 C 276.00000,314.41648 275.57395,314.85472 275.05321,314.53289 C 273.85847,313.79450 268.00000,305.16075 268.00000,304.13843 C 268.00000,303.71971 267.18836,302.50477 266.19635,301.43856 C 264.60646,299.72974 261.00000,293.37846 261.00000,292.28734 C 261.00000,292.06439 261.40803,292.13414 261.90674,292.44236 C 262.40545,292.75058 262.57796,292.10214 262.29011,291.00138 C 261.67081,288.63317 260.00000,288.31654 260.00000,290.56739 C 260.00000,292.49348 256.50916,291.65769 253.50000,289.01113 C 250.68448,286.53487 241.88856,281.76565 239.50000,281.42021 C 238.40000,281.26113 235.47500,280.83771 233.00000,280.47928 C 228.83821,279.87657 228.18372,280.10029 224.29182,283.45593 L 220.08363,287.08426 L 217.97206,282.94522 C 216.81069,280.66876 215.65195,279.01472 215.39707,279.26959 C 214.66174,280.00493 216.17160,288.01198 216.95437,287.52820 C 218.90035,286.32552 217.00108,291.66709 212.69763,299.50000 C 209.82050,304.73679 208.53305,304.78620 208.35548,299.66666 C 208.27599,297.37500 208.13186,294.60000 208.03519,293.50000 C 207.85943,291.50000 207.85943,291.50000 207.00000,293.50000 C 206.27376,295.19005 206.12968,295.00924 206.07029,292.33333 C 206.03163,290.59167 205.43750,288.93969 204.75000,288.66228 C 204.01183,288.36442 204.22601,288.12557 205.27305,288.07895 C 206.93356,288.00501 206.94221,287.84143 205.40928,285.50188 C 204.44181,284.02534 203.95262,281.77618 204.21303,280.00188 C 204.45535,278.35085 204.35655,277.00000 203.99347,277.00000 C 203.63040,277.00000 203.32947,276.43750 203.32474,275.75000 C 203.31535,274.38282 202.27959,272.12564 187.95026,242.24523 C 182.60795,231.10511 177.67855,221.31761 176.99604,220.49523 C 175.32635,218.48338 172.75422,218.61128 170.19191,220.83356 L 168.07780,222.66711 L 177.43664,243.22975 C 182.58400,254.53920 187.38189,265.41410 188.09862,267.39620 C 188.81536,269.37829 189.83638,271.00000 190.36756,271.00000 C 190.89873,271.00000 191.05624,271.27709 190.71757,271.61576 C 190.37890,271.95443 191.16387,274.31693 192.46194,276.86576 C 193.76001,279.41459 198.03996,288.13750 201.97295,296.25000 C 208.65430,310.03152 211.00000,313.41985 211.00000,309.28945 C 211.00000,308.34865 212.01250,304.86115 213.25000,301.53945 C 216.46415,292.91203 224.78149,284.55977 231.10265,283.61186 C 235.02352,283.02389 236.48052,283.35960 241.52557,286.01345 C 248.58311,289.72593 258.85428,298.55396 264.15066,305.45962 C 266.27684,308.23183 268.36297,310.95000 268.78650,311.50000 C 272.73004,316.62110 279.82587,332.27646 280.57107,337.50000 C 280.80646,339.15000 281.37433,342.81363 281.83301,345.64141 C 282.72526,351.14210 282.67335,361.06353 281.70558,370.00000 C 281.30434,373.70509 281.37976,374.52096 281.93667,372.50000 C 282.39135,370.85000 282.86147,370.17500 282.98137,371.00000 C 283.10874,371.87647 283.56676,371.46078 284.08319,370.00000 C 284.78661,368.01033 284.88774,368.36760 284.57864,371.75023 C 284.32082,374.57159 284.54640,375.78034 285.24963,375.34572 C 285.88587,374.95250 286.01320,375.16962 285.56842,375.88930 C 285.16109,376.54837 285.38492,377.75888 286.06583,378.57932 C 287.03240,379.74397 289.29862,380.00843 296.40192,379.78552 L 305.50000,379.50000 L 305.62852,373.50000 z M 201.44615,277.91287 C 201.07661,277.31494 201.17970,276.42030 201.67522,275.92478 C 202.20984,275.39016 202.63708,275.83221 202.72594,277.01191 C 202.89315,279.23168 202.45281,279.54167 201.44615,277.91287 z M 177.07895,226.58333 C 177.03553,225.52917 177.27187,224.93854 177.60417,225.27083 C 177.93646,225.60313 177.97198,226.46562 177.68311,227.18750 C 177.36389,227.98523 177.12693,227.74828 177.07895,226.58333 z M 391.00000,371.96482 C 391.00000,370.64043 389.64583,370.75417 388.20000,372.20000 C 386.31241,374.08759 386.79739,375.17880 389.00000,374.00000 C 390.10000,373.41130 391.00000,372.49547 391.00000,371.96482 z M 322.31563,363.55758 C 321.71640,359.86493 320.11391,358.69123 319.84769,361.75000 C 319.56523,364.99528 319.44929,365.49657 318.70726,366.68090 C 318.30032,367.33040 318.38628,368.12070 318.89828,368.43713 C 319.41027,368.75356 320.05709,368.44716 320.33564,367.75623 C 320.61420,367.06530 320.90616,367.62500 320.98444,369.00000 C 321.12402,371.45164 321.14386,371.45759 322.00986,369.30758 C 322.49556,368.10176 322.63316,365.51426 322.31563,363.55758 z M 409.00000,360.77057 C 409.00000,360.18526 408.36459,360.28245 407.50000,361.00000 C 406.67500,361.68469 406.00000,362.40067 406.00000,362.59106 C 406.00000,362.78145 406.67500,362.67821 407.50000,362.36163 C 408.32500,362.04504 409.00000,361.32907 409.00000,360.77057 z M 412.52646,359.19313 C 412.21857,358.88524 411.41167,359.19249 410.73333,359.87591 C 409.75307,360.86353 409.86793,360.97839 411.29313,360.43571 C 412.27935,360.06018 412.83435,359.50102 412.52646,359.19313 z M 199.60417,357.27083 C 199.27187,356.93854 199.03553,357.52917 199.07895,358.58333 C 199.12693,359.74828 199.36389,359.98523 199.68311,359.18750 C 199.97198,358.46562 199.93646,357.60312 199.60417,357.27083 z M 209.01441,337.51736 C 208.40136,336.77868 205.24788,331.07258 202.00668,324.83715 C 198.76549,318.60172 192.71594,307.20000 188.56325,299.50000 C 180.00862,283.63786 157.61221,238.67377 156.55338,235.23548 C 155.65898,232.33115 154.42855,233.10726 153.63471,237.07646 C 152.69743,241.76287 157.99359,254.02894 164.37538,261.95215 C 171.15188,270.36541 175.36351,277.61032 174.61371,279.56428 C 174.28578,280.41884 174.44971,280.84010 174.98214,280.51104 C 175.50971,280.18498 176.22834,281.06161 176.57909,282.45910 C 176.92984,283.85660 177.57821,285.00000 178.01992,285.00000 C 178.46163,285.00000 178.69923,285.78750 178.54793,286.75000 C 178.38784,287.76832 177.57264,288.37347 176.59816,288.19738 C 175.25850,287.95530 175.55949,289.05549 178.10285,293.69738 C 179.85148,296.88882 182.62952,301.97500 184.27627,305.00000 C 185.92302,308.02500 187.77203,310.83061 188.38518,311.23469 C 188.99833,311.63877 189.13186,311.97627 188.68191,311.98469 C 188.23195,311.99311 188.85470,313.39158 190.06579,315.09239 C 191.50899,317.11918 192.51478,317.78510 192.98461,317.02490 C 193.79577,315.71242 196.64514,321.70966 196.18714,323.76548 C 195.85805,325.24270 199.06394,331.00000 200.21561,331.00000 C 200.64702,331.00000 201.00000,331.72314 201.00000,332.60699 C 201.00000,333.59948 201.55411,334.00134 202.44907,333.65792 C 203.39013,333.29680 203.71371,333.58247 203.37207,334.47279 C 202.64182,336.37578 204.85621,340.20690 206.20468,339.37350 C 206.86790,338.96361 207.02622,339.14855 206.60105,339.83651 C 206.21166,340.46654 206.70463,342.06587 207.69654,343.39058 L 209.50000,345.79912 L 209.81453,342.32977 C 209.98751,340.42163 209.62746,338.25605 209.01441,337.51736 z M 189.53683,331.75000 C 188.11975,329.41250 183.76422,321.98750 179.85789,315.25000 C 175.95156,308.51250 172.39332,303.00000 171.95069,303.00000 C 171.23086,303.00000 174.50912,309.13447 179.69949,317.50000 C 189.03590,332.54786 191.26779,336.00000 191.66018,336.00000 C 191.90943,336.00000 190.95392,334.08750 189.53683,331.75000 z M 345.60417,330.27083 C 345.27188,329.93854 345.03553,330.52917 345.07895,331.58333 C 345.12693,332.74828 345.36389,332.98523 345.68311,332.18750 C 345.97198,331.46562 345.93646,330.60312 345.60417,330.27083 z M 191.42013,326.42595 C 190.72881,322.74092 181.66170,306.07112 179.63838,304.76531 C 179.01227,304.36123 178.86629,304.02373 179.31398,304.01531 C 180.35375,303.99575 175.89791,296.00000 174.84724,296.00000 C 174.41578,296.00000 174.32179,295.32500 174.63837,294.50000 C 174.95496,293.67500 174.71583,293.00000 174.10699,293.00000 C 173.49814,293.00000 173.00000,292.37314 173.00000,291.60699 C 173.00000,290.84083 172.26059,289.93024 171.35687,289.58345 C 170.45315,289.23666 169.98986,288.67681 170.32733,288.33934 C 170.66480,288.00187 170.02575,286.44053 168.90722,284.86970 C 167.78869,283.29887 167.15354,281.56058 167.49578,281.00682 C 167.83802,280.45307 167.64148,280.00000 167.05902,280.00000 C 166.47656,280.00000 166.00000,280.51264 166.00000,281.13919 C 166.00000,282.52973 178.94863,308.83698 184.38927,318.50000 C 191.79673,331.65625 192.56350,332.52064 191.42013,326.42595 z M 350.00000,326.94098 C 350.00000,326.42344 349.55000,326.00000 349.00000,326.00000 C 348.45000,326.00000 348.00000,326.70156 348.00000,327.55902 C 348.00000,328.41648 348.45000,328.83992 349.00000,328.50000 C 349.55000,328.16008 350.00000,327.45852 350.00000,326.94098 z M 348.00000,315.00000 C 348.00000,314.45000 347.52344,314.00000 346.94098,314.00000 C 346.35852,314.00000 346.16008,314.45000 346.50000,315.00000 C 346.83992,315.55000 347.31648,316.00000 347.55902,316.00000 C 347.80156,316.00000 348.00000,315.55000 348.00000,315.00000 z M 320.39699,309.16667 C 320.68026,308.70833 320.25682,308.33333 319.45601,308.33333 C 318.65521,308.33333 318.00000,308.70833 318.00000,309.16667 C 318.00000,309.62500 318.42344,310.00000 318.94098,310.00000 C 319.45852,310.00000 320.11373,309.62500 320.39699,309.16667 z M 323.45729,304.06910 C 323.77373,303.55710 323.60638,302.87476 323.08541,302.55279 C 322.56444,302.23081 321.85554,302.42472 321.51008,302.98369 C 321.16462,303.54266 320.43197,304.00000 319.88197,304.00000 C 319.33197,304.00000 319.11049,303.63023 319.38980,303.17830 C 319.66912,302.72636 319.21867,301.04787 318.38880,299.44831 C 317.40919,297.56010 317.25177,296.41608 317.93998,296.18667 C 319.93699,295.52100 319.00156,294.00000 316.59516,294.00000 C 314.35618,294.00000 314.22391,294.29312 314.67749,298.25000 C 314.94544,300.58750 315.33850,303.06250 315.55095,303.75000 C 315.99689,305.19307 322.59799,305.45949 323.45729,304.06910 z M 332.00000,303.38337 C 332.00000,303.17252 331.10000,303.00000 330.00000,303.00000 C 328.90000,303.00000 328.00000,303.40787 328.00000,303.90638 C 328.00000,304.40489 328.90000,304.57741 330.00000,304.28975 C 331.10000,304.00209 332.00000,303.59422 332.00000,303.38337 z M 167.40909,294.09091 C 165.31950,290.22217 163.46072,287.20594 163.27849,287.38818 C 163.09625,287.57042 164.64654,290.89366 166.72357,294.77316 C 168.80061,298.65265 170.65938,301.66888 170.85418,301.47588 C 171.04897,301.28289 169.49869,297.95965 167.40909,294.09091 z M 326.50000,300.00000 C 327.60000,299.52731 327.93750,299.10894 327.25000,299.07029 C 326.56250,299.03163 325.97148,297.98750 325.93661,296.75000 L 325.87323,294.50000 L 324.92666,296.86403 C 324.24499,298.56647 323.42316,299.08242 321.99004,298.70765 C 320.69997,298.37029 320.00000,298.68191 320.00000,299.59362 C 320.00000,301.15080 323.33651,301.35940 326.50000,300.00000 z M 300.60417,296.27083 C 300.27188,295.93854 300.03553,296.52917 300.07895,297.58333 C 300.12693,298.74828 300.36389,298.98523 300.68311,298.18750 C 300.97198,297.46562 300.93646,296.60312 300.60417,296.27083 z M 328.60417,295.27083 C 328.27188,294.93854 328.03553,295.52917 328.07895,296.58333 C 328.12693,297.74828 328.36389,297.98523 328.68311,297.18750 C 328.97198,296.46562 328.93646,295.60312 328.60417,295.27083 z M 198.13611,292.25000 C 195.09592,286.55527 181.57733,257.86288 180.39065,254.58633 C 179.61107,252.43382 178.58982,250.18382 178.12121,249.58633 C 177.65260,248.98885 176.03134,245.35000 174.51840,241.50000 C 173.00547,237.65000 171.14346,233.37500 170.38062,232.00000 L 168.99363,229.50000 L 169.62032,232.50000 C 171.58664,241.91287 176.50053,252.57434 197.15916,292.25000 C 197.66033,293.21250 198.29537,294.00000 198.57037,294.00000 C 198.84537,294.00000 198.64995,293.21250 198.13611,292.25000 z M 175.12409,284.73333 C 174.13647,283.75307 174.02161,283.86793 174.56429,285.29313 C 174.93982,286.27935 175.49898,286.83435 175.80687,286.52646 C 176.11476,286.21857 175.80751,285.41167 175.12409,284.73333 z M 161.30460,282.51256 C 160.38992,280.59446 159.46402,279.20265 159.24704,279.41963 C 158.78958,279.87709 161.82524,286.00000 162.50950,286.00000 C 162.76148,286.00000 162.21927,284.43065 161.30460,282.51256 z M 205.60417,279.27083 C 205.27187,278.93854 205.03553,279.52917 205.07895,280.58333 C 205.12693,281.74828 205.36389,281.98523 205.68311,281.18750 C 205.97198,280.46562 205.93646,279.60312 205.60417,279.27083 z M 311.00000,279.44098 C 311.00000,278.58352 310.55000,278.16008 310.00000,278.50000 C 309.45000,278.83992 309.00000,279.54148 309.00000,280.05902 C 309.00000,280.57656 309.45000,281.00000 310.00000,281.00000 C 310.55000,281.00000 311.00000,280.29844 311.00000,279.44098 z M 158.34508,276.45687 C 158.01939,275.60815 157.53845,275.12821 157.27633,275.39034 C 157.01420,275.65247 157.09635,276.34688 157.45888,276.93347 C 158.44493,278.52893 159.02126,278.21898 158.34508,276.45687 z M 164.22227,275.06456 C 163.29567,273.45006 162.39976,272.26691 162.23134,272.43533 C 161.69003,272.97663 164.29229,278.00000 165.11400,278.00000 C 165.55014,278.00000 165.14886,276.67905 164.22227,275.06456 z M 213.34508,260.45687 C 213.01939,259.60815 212.53845,259.12821 212.27633,259.39034 C 212.01420,259.65247 212.09635,260.34688 212.45888,260.93347 C 213.44493,262.52893 214.02126,262.21898 213.34508,260.45687 z M 212.19585,255.25000 C 211.90611,253.73750 211.47606,253.07735 211.24019,253.78299 C 210.81485,255.05549 211.57576,258.00000 212.32994,258.00000 C 212.54594,258.00000 212.48559,256.76250 212.19585,255.25000 z M 163.65393,242.90489 C 161.80064,238.28220 159.72177,232.77107 159.03422,230.65794 C 158.20337,228.10436 157.44978,227.15022 156.78717,227.81283 C 156.12455,228.47545 157.55363,232.70286 161.04843,240.41823 C 163.94046,246.80288 166.46796,251.86537 166.66511,251.66823 C 166.86225,251.47108 165.50723,247.52758 163.65393,242.90489 z M 151.00000,244.70344 C 151.00000,242.89033 149.45906,237.64244 147.57570,233.04147 L 144.15140,224.67607 L 143.47557,228.27854 C 142.76915,232.04409 144.81592,239.99153 147.84639,245.25000 C 149.95159,248.90295 151.00000,248.72124 151.00000,244.70344 z M 205.64421,244.59596 C 205.56490,243.27374 205.08603,242.44756 204.58006,242.76000 C 204.07106,243.07433 203.95427,242.56156 204.31861,241.61211 C 204.70974,240.59283 204.57573,240.14418 203.98855,240.50708 C 203.44485,240.84310 203.00000,240.21803 203.00000,239.11803 C 203.00000,238.01803 202.53807,236.83254 201.97348,236.48361 C 201.40889,236.13468 201.03675,235.32062 201.14648,234.67459 C 201.47165,232.76039 198.78920,228.01225 197.74664,228.65659 C 197.16681,229.01494 197.06900,228.35796 197.50000,227.00000 C 197.93285,225.63623 197.83400,224.98456 197.24913,225.34603 C 196.71830,225.67410 195.45758,224.40798 194.44753,222.53243 C 193.43748,220.65688 192.18295,219.38693 191.65969,219.71032 C 191.08266,220.06695 190.98839,219.15755 191.42010,217.39915 C 192.09424,214.65330 192.05313,214.60576 190.64252,216.50000 C 189.30963,218.28988 189.34398,218.81518 190.96950,221.50000 C 191.96849,223.15000 194.03607,226.84144 195.56412,229.70321 C 197.09217,232.56498 198.78489,234.63295 199.32571,234.29870 C 199.87511,233.95915 199.99301,234.20229 199.59289,234.84970 C 198.94516,235.89775 202.00589,242.66939 204.50000,245.70629 C 205.83079,247.32670 205.80928,247.34758 205.64421,244.59596 z M 138.60417,242.27083 C 138.27187,241.93854 138.03553,242.52917 138.07895,243.58333 C 138.12693,244.74828 138.36389,244.98523 138.68311,244.18750 C 138.97198,243.46562 138.93646,242.60313 138.60417,242.27083 z M 210.60417,242.27083 C 210.27187,241.93854 210.03553,242.52917 210.07895,243.58333 C 210.12693,244.74828 210.36389,244.98523 210.68311,244.18750 C 210.97198,243.46562 210.93646,242.60313 210.60417,242.27083 z M 152.27587,226.00000 C 151.46712,224.07500 150.33239,221.15000 149.75425,219.50000 C 148.37154,215.55377 148.06524,215.28281 146.96094,217.02896 C 145.46805,219.38956 145.82888,222.00976 148.67117,229.44794 L 151.34233,236.43830 L 152.54433,232.96915 C 153.52391,230.14192 153.47423,228.85237 152.27587,226.00000 z M 395.01213,226.50000 C 397.12224,222.92270 397.15844,222.68516 395.35464,224.25218 C 394.24532,225.21588 393.11172,225.77838 392.83552,225.50218 C 392.55932,225.22598 392.33333,226.35000 392.33333,228.00000 C 392.33333,229.65000 392.40519,230.88750 392.49301,230.75000 C 392.58083,230.61250 393.71444,228.70000 395.01213,226.50000 z M 143.00000,221.55902 C 143.00000,220.21648 142.55000,218.83992 142.00000,218.50000 C 141.41658,218.13942 141.00000,219.15628 141.00000,220.94098 C 141.00000,222.62344 141.45000,224.00000 142.00000,224.00000 C 142.55000,224.00000 143.00000,222.90156 143.00000,221.55902 z M 144.57143,213.42857 C 144.20361,211.96306 143.67766,210.98900 143.40266,211.26400 C 143.12766,211.53900 143.20361,212.96306 143.57143,214.42857 C 143.93925,215.89408 144.46519,216.86814 144.74019,216.59314 C 145.01519,216.31814 144.93925,214.89408 144.57143,213.42857 z M 392.62897,214.23469 C 394.19746,213.21398 395.52924,203.00000 394.09384,203.00000 C 393.49223,203.00000 393.00000,204.15156 393.00000,205.55902 C 393.00000,206.96648 392.59715,207.86906 392.10478,207.56476 C 391.01387,206.89054 390.00000,209.30724 390.00000,212.58179 C 390.00000,215.07788 390.67811,215.50423 392.62897,214.23469 z M 190.60417,211.27083 C 190.27187,210.93854 190.03553,211.52917 190.07895,212.58333 C 190.12693,213.74828 190.36389,213.98523 190.68311,213.18750 C 190.97198,212.46562 190.93646,211.60313 190.60417,211.27083 z M 198.00000,209.50000 C 197.31531,208.67500 196.58521,208.00000 196.37756,208.00000 C 196.16990,208.00000 196.00000,208.67500 196.00000,209.50000 C 196.00000,210.32500 196.73010,211.00000 197.62244,211.00000 C 198.95124,211.00000 199.01957,210.72851 198.00000,209.50000 z M 205.42997,206.11331 C 205.73138,205.62563 205.19543,204.61313 204.23899,203.86331 C 202.70282,202.65901 202.64478,202.68568 203.74132,204.09201 C 204.42405,204.96761 204.68655,205.98011 204.32466,206.34201 C 203.96276,206.70390 203.94011,207.00000 204.27432,207.00000 C 204.60852,207.00000 205.12857,206.60099 205.42997,206.11331 z M 210.34508,204.45687 C 210.01939,203.60815 209.53845,203.12821 209.27633,203.39034 C 209.01420,203.65247 209.09635,204.34688 209.45888,204.93347 C 210.44493,206.52893 211.02126,206.21898 210.34508,204.45687 z M 206.24377,199.33564 C 205.55284,199.05709 205.21948,198.45389 205.50296,197.99521 C 206.07307,197.07276 203.03630,193.63037 202.30105,194.36562 C 201.55090,195.11577 205.12899,200.00703 206.36501,199.92105 C 207.08502,199.87097 207.04069,199.65693 206.24377,199.33564 z M 393.59609,195.16752 C 392.13464,193.70607 392.00000,193.71604 392.00000,195.28571 C 392.00000,196.22857 392.45000,197.00000 393.00000,197.00000 C 393.55000,197.00000 394.05220,197.78750 394.11600,198.75000 C 394.21840,200.29484 394.28829,200.28098 394.71209,198.63180 C 394.97614,197.60429 394.47394,196.04536 393.59609,195.16752 z M 331.00000,197.50000 C 332.04007,196.24680 331.89568,196.00000 330.12244,196.00000 C 328.90249,196.00000 328.00000,196.63782 328.00000,197.50000 C 328.00000,198.32500 328.39490,199.00000 328.87756,199.00000 C 329.36021,199.00000 330.31531,198.32500 331.00000,197.50000 z M 336.18750,191.31689 C 335.46562,191.02802 334.60312,191.06354 334.27083,191.39583 C 333.93854,191.72813 334.52917,191.96447 335.58333,191.92105 C 336.74828,191.87307 336.98523,191.63611 336.18750,191.31689 z M 339.20000,183.80000 C 338.55833,183.15833 337.70137,182.96530 337.29563,183.37104 C 336.88989,183.77678 337.20686,184.50981 338.00000,185.00000 C 339.86759,186.15423 340.71091,185.31091 339.20000,183.80000 z M 333.00000,182.00000 C 333.00000,181.45000 332.55000,181.00000 332.00000,181.00000 C 331.45000,181.00000 331.00000,181.45000 331.00000,182.00000 C 331.00000,182.55000 331.45000,183.00000 332.00000,183.00000 C 332.55000,183.00000 333.00000,182.55000 333.00000,182.00000 z M 415.60417,172.27083 C 415.27188,171.93854 415.03553,172.52917 415.07895,173.58333 C 415.12693,174.74828 415.36389,174.98523 415.68311,174.18750 C 415.97198,173.46562 415.93646,172.60313 415.60417,172.27083 z M 417.36163,151.50000 C 417.04504,150.67500 416.60917,150.00000 416.39301,150.00000 C 416.17686,150.00000 416.00000,150.67500 416.00000,151.50000 C 416.00000,152.32500 416.43588,153.00000 416.96862,153.00000 C 417.50135,153.00000 417.67821,152.32500 417.36163,151.50000 z M 197.00000,125.00000 C 193.78133,122.57216 192.99010,123.36096 196.10834,125.88892 C 197.42375,126.95532 198.71828,127.61080 198.98506,127.34553 C 199.25184,127.08026 198.35857,126.02477 197.00000,125.00000 z M 234.59501,121.75000 L 236.50000,119.50000 L 234.00000,121.48934 C 232.62500,122.58348 231.31250,123.59598 231.08333,123.73934 C 230.85417,123.88270 231.12192,124.00000 231.67835,124.00000 C 232.23477,124.00000 233.54727,122.98750 234.59501,121.75000 z M 243.00000,111.00000 C 243.58870,109.90000 243.84537,109.00000 243.57037,109.00000 C 243.29537,109.00000 242.58870,109.90000 242.00000,111.00000 C 241.41130,112.10000 241.15463,113.00000 241.42963,113.00000 C 241.70463,113.00000 242.41130,112.10000 243.00000,111.00000 z M 210.50000,408.56734 C 207.75000,407.87293 202.82796,406.20720 199.56214,404.86570 C 194.91850,402.95825 193.46692,401.83829 192.90237,399.72736 C 192.50533,398.24276 191.17278,395.39760 189.94114,393.40477 C 187.99235,390.25156 187.57677,390.00489 186.73807,391.50356 C 186.20801,392.45072 184.87973,394.12027 183.78633,395.21367 C 182.69293,396.30707 180.91794,399.19193 179.84192,401.62447 C 178.76589,404.05701 177.49335,405.80491 177.01406,405.50869 C 176.53477,405.21247 172.62626,400.58934 168.32847,395.23506 C 164.03069,389.88078 155.56110,379.85499 149.50716,372.95554 C 143.45322,366.05608 137.49884,359.08108 136.27519,357.45554 C 135.05155,355.82999 132.23905,352.15074 130.02519,349.27942 C 127.81134,346.40810 126.00000,343.85242 126.00000,343.60013 C 126.00000,343.34784 124.26358,340.52211 122.14129,337.32071 C 114.95475,326.48009 110.98903,316.67283 108.47162,303.51551 C 106.40481,292.71329 106.66155,276.00000 108.89429,276.00000 C 109.90610,276.00000 113.01353,287.16909 112.31580,288.29804 C 111.94141,288.90383 112.19664,288.99651 112.95263,288.52928 C 113.88063,287.95574 114.03589,288.31155 113.53975,289.87477 C 113.16876,291.04365 113.23305,292.00351 113.68261,292.00780 C 114.13218,292.01209 115.02042,293.13765 115.65649,294.50903 C 116.46568,296.25365 116.48170,296.79771 115.70983,296.32066 C 115.10309,295.94568 115.52404,296.95763 116.64527,298.56944 C 117.76650,300.18125 119.35649,302.85000 120.17858,304.50000 C 122.79331,309.74800 126.15711,315.44824 127.60148,317.07874 C 128.37067,317.94705 129.00000,319.11552 129.00000,319.67534 C 129.00000,320.23516 130.68750,322.43229 132.75000,324.55785 C 134.81250,326.68340 135.82500,328.02987 135.00000,327.55000 C 134.17500,327.07012 134.59547,327.87988 135.93437,329.34945 C 137.76574,331.35956 138.58700,331.70913 139.24988,330.76070 C 139.81887,329.94661 139.91627,330.26726 139.52483,331.66584 C 138.95169,333.71362 140.25990,335.44838 142.40467,335.48469 C 142.90224,335.49311 143.43097,336.32873 143.57964,337.34163 C 143.93833,339.78555 145.15702,340.82802 145.74029,339.18985 C 146.22430,337.83046 164.00000,355.03777 164.00000,356.86570 C 164.00000,357.39985 165.52043,358.77656 167.37874,359.92506 C 170.49906,361.85352 174.73848,366.19007 181.00000,373.85837 C 182.56947,375.78045 184.12052,376.73353 185.16712,376.41894 C 186.47170,376.02681 186.70928,376.39571 186.25960,378.11529 C 185.86389,379.62848 186.04598,380.08962 186.84435,379.59620 C 187.55177,379.15899 188.38320,379.87769 188.97712,381.43983 C 189.66675,383.25368 190.68649,384.00000 192.47525,384.00000 C 193.86386,384.00000 195.00000,384.49754 195.00000,385.10564 C 195.00000,386.69697 199.78040,392.15386 200.17199,391.00954 C 200.35240,390.48236 201.50744,390.31571 202.73875,390.63921 C 203.97007,390.96270 204.73101,391.62622 204.42974,392.11369 C 204.12846,392.60116 204.32638,393.00000 204.86955,393.00000 C 205.41273,393.00000 206.56429,393.70714 207.42857,394.57143 C 208.85714,396.00000 209.00000,395.99715 209.00000,394.54004 C 209.00000,393.65850 208.32500,392.67821 207.50000,392.36163 C 206.67500,392.04504 206.00000,391.35761 206.00000,390.83399 C 206.00000,390.31038 206.45000,390.16008 207.00000,390.50000 C 207.55000,390.83992 208.03553,390.30398 208.07895,389.30902 C 208.12566,388.23857 208.56379,388.72481 209.15207,390.50000 C 209.69886,392.15000 210.63902,394.51182 211.24129,395.74849 C 211.84357,396.98516 212.02937,398.30397 211.65417,398.67916 C 211.27898,399.05436 212.07606,400.51753 213.42547,401.93067 C 215.71414,404.32741 217.71003,410.10478 216.18378,409.91495 C 215.80770,409.86818 213.25000,409.26176 210.50000,408.56734 z M 185.69662,386.24596 C 180.94800,381.20530 178.12564,377.18933 178.77276,376.39391 C 179.17274,375.90226 179.10276,375.82224 178.61725,376.21609 C 177.25250,377.32316 173.90889,372.44162 174.59163,370.33883 C 175.09205,368.79756 175.00862,368.74273 174.07604,370.00000 C 173.08703,371.33333 172.86185,371.33333 172.04935,370.00000 C 171.54662,369.17500 169.99481,366.97034 168.60087,365.10075 C 167.20694,363.23117 166.36288,361.20617 166.72518,360.60075 C 167.08749,359.99534 166.64277,360.10081 165.73691,360.83513 C 164.25778,362.03419 164.97554,363.25726 172.77912,372.83513 C 184.12030,386.75494 186.22904,389.10429 186.83665,388.49668 C 187.11427,388.21906 186.60126,387.20624 185.69662,386.24596 z M 163.28175,358.96941 C 162.98969,357.85258 161.85804,356.31355 160.76696,355.54933 C 159.67588,354.78511 159.08549,353.67069 159.45497,353.07285 C 159.82446,352.47502 159.31074,351.69340 158.31338,351.33593 C 156.40298,350.65122 148.01172,342.03459 148.00432,340.75000 C 148.00194,340.33750 147.55000,340.00000 147.00000,340.00000 C 145.13049,340.00000 146.03968,341.49197 151.57040,347.50000 C 154.60823,350.80000 158.51943,355.18750 160.26194,357.25000 C 162.00446,359.31250 163.51624,361.00000 163.62145,361.00000 C 163.72667,361.00000 163.57381,360.08623 163.28175,358.96941 z M 204.00000,383.00000 C 204.00000,382.45000 204.19844,382.00000 204.44098,382.00000 C 204.68352,382.00000 205.16008,382.45000 205.50000,383.00000 C 205.83992,383.55000 205.64148,384.00000 205.05902,384.00000 C 204.47656,384.00000 204.00000,383.55000 204.00000,383.00000 z M 189.00000,370.00000 C 189.00000,369.45000 189.45000,369.00000 190.00000,369.00000 C 190.55000,369.00000 191.00000,369.45000 191.00000,370.00000 C 191.00000,370.55000 190.55000,371.00000 190.00000,371.00000 C 189.45000,371.00000 189.00000,370.55000 189.00000,370.00000 z M 200.07895,369.58333 C 200.03553,368.52917 200.27187,367.93854 200.60417,368.27083 C 200.93646,368.60312 200.97198,369.46562 200.68311,370.18750 C 200.36389,370.98523 200.12693,370.74828 200.07895,369.58333 z M 356.07895,305.58333 C 356.03553,304.52917 356.27188,303.93854 356.60417,304.27083 C 356.93646,304.60312 356.97198,305.46562 356.68311,306.18750 C 356.36389,306.98523 356.12693,306.74828 356.07895,305.58333 z M 353.51008,297.01631 C 353.16462,296.45734 353.58352,296.00000 354.44098,296.00000 C 356.19751,296.00000 356.45614,296.60006 355.06910,297.45729 C 354.55710,297.77373 353.85554,297.57528 353.51008,297.01631 z M 361.07895,296.33179 C 361.03553,295.68927 360.74102,294.33927 360.42449,293.33179 C 359.87744,291.59057 359.90566,291.58839 360.99527,293.28768 C 361.62572,294.27090 361.92023,295.62090 361.64972,296.28768 C 361.29474,297.16267 361.13593,297.17495 361.07895,296.33179 z M 154.07895,281.19098 C 154.03553,280.47102 153.58109,280.14086 153.06910,280.45729 C 152.55710,280.77373 151.81257,280.50575 151.41459,279.86180 C 150.96267,279.13058 151.12445,278.95888 151.84549,279.40451 C 152.48466,279.79954 153.00000,279.55605 153.00000,278.85902 C 153.00000,277.93479 153.29583,277.89583 154.11250,278.71250 C 154.72438,279.32437 154.98490,280.42688 154.69145,281.16250 C 154.26362,282.23498 154.14225,282.24062 154.07895,281.19098 z M 352.49358,250.50000 C 352.76001,248.30000 353.00654,241.55000 353.04145,235.50000 C 353.10097,225.18215 353.20276,224.64032 354.68289,226.76275 C 356.16825,228.89267 356.33940,228.92202 357.59863,227.26275 C 358.33440,226.29324 358.95070,226.03594 358.96820,226.69098 C 358.98569,227.34602 358.60313,228.12724 358.11808,228.42702 C 357.63302,228.72681 357.18725,230.66586 357.12748,232.73604 C 357.06772,234.80622 355.89165,240.55000 354.51399,245.50000 C 353.13634,250.45000 352.22716,252.70000 352.49358,250.50000 z M 438.00000,245.19032 C 438.00000,244.65333 438.71260,243.94053 439.58356,243.60631 C 440.55747,243.23258 441.01464,243.45607 440.77106,244.18682 C 440.27278,245.68166 438.00000,246.50471 438.00000,245.19032 z M 109.00000,242.06139 C 109.00000,241.01627 104.52680,233.08598 97.120000,221.00000 C 94.373081,216.51774 87.691225,204.29211 81.312590,192.07758 C 79.467947,188.54525 77.575146,185.17025 77.106366,184.57758 C 76.637586,183.98491 75.656480,181.81250 74.926131,179.75000 C 74.195781,177.68750 73.288704,176.00000 72.910402,176.00000 C 72.085201,176.00000 70.561693,169.12327 70.916495,167.00000 C 71.054355,166.17500 71.640760,165.05000 72.219618,164.50000 C 72.945757,163.81006 73.109969,164.17444 72.749229,165.67518 C 72.340663,167.37489 72.584165,167.71872 73.863185,167.24812 C 74.763433,166.91689 75.813032,166.17609 76.195627,165.60190 C 76.578222,165.02771 77.053257,164.76989 77.251261,165.02896 C 85.740573,176.13654 87.944270,179.25479 89.951559,183.00000 C 92.371686,187.51549 93.214588,188.85947 98.593562,196.77941 C 100.19210,199.13308 101.99991,201.96245 102.61090,203.06689 C 103.22190,204.17134 104.75756,206.17749 106.02349,207.52500 C 107.91254,209.53580 108.59373,209.75317 109.82324,208.73751 C 111.13827,207.65120 111.15578,207.76582 109.96654,209.67566 C 108.71341,211.68807 108.50707,211.72559 107.21643,210.17566 C 106.44900,209.25405 106.64904,210.03213 107.66096,211.90473 C 109.34448,215.02014 113.69484,217.41608 112.68161,214.66982 C 112.44422,214.02642 111.74375,213.61250 111.12500,213.75000 C 109.78889,214.04691 109.63802,213.34175 110.87419,212.57775 C 111.94023,211.91891 117.12249,216.54418 116.27161,217.39505 C 115.30190,218.36477 113.82529,218.09171 114.46260,217.06052 C 114.78194,216.54381 114.13350,216.18957 113.02161,216.27333 C 110.57504,216.45762 110.52941,216.88313 112.63403,219.88789 C 113.53275,221.17099 115.48490,224.53362 116.97215,227.36040 L 119.67623,232.50000 L 114.33811,237.85799 C 111.40215,240.80488 109.00000,242.69641 109.00000,242.06139 z M 431.03276,241.27161 C 429.73354,239.80852 429.74903,239.68972 431.16796,240.23421 C 432.04930,240.57241 433.69252,240.20324 434.81955,239.41384 C 436.12550,238.49911 437.09527,238.34513 437.49337,238.98928 C 437.83694,239.54517 437.46462,240.00000 436.66601,240.00000 C 435.86739,240.00000 434.95496,240.67500 434.63837,241.50000 C 433.90413,243.41341 432.87688,243.34834 431.03276,241.27161 z M 442.72897,237.90813 C 441.75490,237.34105 441.19974,236.48583 441.49528,236.00764 C 441.79082,235.52945 441.57528,234.85554 441.01631,234.51008 C 440.45734,234.16462 440.00000,234.58352 440.00000,235.44098 C 440.00000,236.29844 439.62500,237.00000 439.16667,237.00000 C 438.70833,237.00000 438.33333,235.63064 438.33333,233.95697 C 438.33333,231.77490 438.72527,231.06433 439.71860,231.44551 C 440.48050,231.73788 440.84972,231.56586 440.53908,231.06324 C 439.90176,230.03203 449.45759,227.00000 453.34489,227.00000 C 454.74028,227.00000 456.16008,227.45000 456.50000,228.00000 C 456.83992,228.55000 457.81097,229.00000 458.65789,229.00000 C 460.93099,229.00000 467.00000,232.07079 467.00000,233.22093 C 467.00000,233.76711 466.32500,233.95496 465.50000,233.63837 C 464.67500,233.32179 464.00000,233.43624 464.00000,233.89271 C 464.00000,234.34918 462.92543,234.51724 461.61206,234.26617 C 460.29869,234.01511 458.21939,234.34740 456.99138,235.00461 C 455.50732,235.79886 454.98656,235.83077 455.43834,235.09977 C 455.81217,234.49490 455.64148,234.00000 455.05902,234.00000 C 454.47656,234.00000 454.00000,234.41859 454.00000,234.93019 C 454.00000,235.50379 452.75660,235.50379 450.75660,234.93019 C 446.21065,233.62643 446.00000,233.69596 446.00000,236.50000 C 446.00000,239.22606 445.42095,239.47534 442.72897,237.90813 z M 332.66667,237.33333 C 332.30000,236.96667 332.00000,235.61667 332.00000,234.33333 C 332.00000,232.88667 331.40757,232.00000 330.44098,232.00000 C 329.58352,232.00000 329.16008,231.55000 329.50000,231.00000 C 329.83992,230.45000 330.99148,230.00000 332.05902,230.00000 C 334.63088,230.00000 334.52020,228.47777 331.81033,226.57970 C 330.60602,225.73617 329.92711,224.73956 330.30166,224.36501 C 330.67620,223.99046 330.57557,223.19261 330.07804,222.59201 C 329.50745,221.90322 329.91530,220.58457 331.18256,219.02084 C 333.11997,216.63020 333.24084,216.60889 334.56810,218.42402 C 335.90246,220.24887 335.90354,222.19070 334.57615,232.90133 C 333.98540,237.66800 333.68909,238.35576 332.66667,237.33333 z M 384.14324,232.10969 C 383.30898,231.58108 383.17235,231.01152 383.78845,230.63074 C 384.33954,230.29015 385.04846,230.68390 385.36383,231.50574 C 386.02646,233.23253 385.96405,233.26341 384.14324,232.10969 z M 322.00000,231.26340 C 322.00000,230.00214 325.35868,227.00000 326.76972,227.00000 C 328.30255,227.00000 329.00895,228.36749 328.17400,229.71846 C 327.26448,231.19010 322.00000,232.50744 322.00000,231.26340 z M 379.00000,230.50000 C 379.00000,229.67500 379.45000,229.00000 380.00000,229.00000 C 380.55000,229.00000 381.00000,229.67500 381.00000,230.50000 C 381.00000,231.32500 380.55000,232.00000 380.00000,232.00000 C 379.45000,232.00000 379.00000,231.32500 379.00000,230.50000 z M 376.00000,229.55902 C 376.00000,227.80249 376.60006,227.54386 377.45729,228.93090 C 377.77373,229.44290 377.57528,230.14446 377.01631,230.48992 C 376.45734,230.83538 376.00000,230.41648 376.00000,229.55902 z M 383.07895,227.58333 C 383.03553,226.52917 383.27188,225.93854 383.60417,226.27083 C 383.93646,226.60313 383.97198,227.46562 383.68311,228.18750 C 383.36389,228.98523 383.12693,228.74828 383.07895,227.58333 z M 325.00000,225.15182 C 325.00000,224.64661 325.90000,223.99791 327.00000,223.71025 C 328.10000,223.42259 329.00000,223.35428 329.00000,223.55844 C 329.00000,223.76259 328.10000,224.41130 327.00000,225.00000 C 325.89508,225.59134 325.00000,225.65928 325.00000,225.15182 z M 126.01615,219.25000 C 121.84696,212.21245 119.10100,207.86454 106.14234,187.78208 C 100.56405,179.13723 96.000000,171.84728 96.000000,171.58221 C 96.000000,171.31714 94.694924,169.16520 93.099832,166.80013 C 91.504740,164.43506 90.105921,161.82500 89.991345,161.00000 C 89.700562,158.90621 91.060077,155.00000 92.079582,155.00000 C 93.165671,155.00000 101.05170,167.28844 116.33715,192.79950 C 123.02672,203.96422 129.52203,214.76422 130.77118,216.79950 C 134.19392,222.37628 134.41232,223.12530 132.89572,224.08561 C 130.35986,225.69131 129.45556,225.05568 126.01615,219.25000 z M 367.15789,212.00000 C 367.15789,210.62500 367.38487,210.06250 367.66228,210.75000 C 367.93969,211.43750 367.93969,212.56250 367.66228,213.25000 C 367.38487,213.93750 367.15789,213.37500 367.15789,212.00000 z M 169.35714,211.50000 C 170.18214,210.67500 171.16939,210.00000 171.55102,210.00000 C 171.93265,210.00000 171.68469,210.67500 171.00000,211.50000 C 170.31531,212.32500 169.32807,213.00000 168.80613,213.00000 C 168.28419,213.00000 168.53214,212.32500 169.35714,211.50000 z M 175.00000,207.62244 C 175.00000,206.86479 174.36040,205.71407 173.57867,205.06529 C 172.40291,204.08949 172.25565,204.28430 172.72632,206.19285 C 173.55502,209.55315 172.57571,208.14322 170.65501,203.21074 C 169.02822,199.03304 169.03467,198.94819 170.90301,199.94809 C 172.66101,200.88894 177.00000,206.88109 177.00000,208.36803 C 177.00000,208.71562 176.55000,209.00000 176.00000,209.00000 C 175.45000,209.00000 175.00000,208.38010 175.00000,207.62244 z M 177.95863,203.15791 C 176.70645,201.46425 175.23398,200.35539 174.68646,200.69378 C 174.13759,201.03300 174.00136,200.80682 174.38281,200.18962 C 174.77127,199.56107 173.25139,197.30081 170.91674,195.03511 C 168.62989,192.81580 167.19335,191.00000 167.72443,191.00000 C 168.25551,191.00000 169.50451,191.90000 170.50000,193.00000 C 171.49549,194.10000 173.16679,195.00000 174.21400,195.00000 C 175.31902,195.00000 175.83881,195.45179 175.45266,196.07659 C 175.08671,196.66871 175.73515,198.03624 176.89365,199.11554 C 178.05214,200.19485 179.00000,201.47738 179.00000,201.96563 C 179.00000,202.45388 179.66315,202.99885 180.47367,203.17668 C 181.44929,203.39073 181.65804,203.96255 181.09132,204.86865 C 180.43051,205.92520 179.71615,205.53509 177.95863,203.15791 z M 156.00179,203.83651 C 156.00277,203.10143 157.19009,201.82500 158.64027,201.00000 C 160.54409,199.91693 161.34712,198.57139 161.52936,196.15912 C 161.66818,194.32163 162.27301,192.32699 162.87343,191.72657 C 163.66232,190.93768 163.69258,191.58510 162.98255,194.06085 C 161.76063,198.32144 161.71359,198.00000 163.55902,198.00000 C 164.41648,198.00000 164.91071,197.66250 164.65732,197.25000 C 164.40393,196.83750 165.61487,196.45007 167.34830,196.38905 C 170.26332,196.28643 170.33103,196.35423 168.25000,197.29187 C 167.01250,197.84944 166.00000,198.71342 166.00000,199.21183 C 166.00000,199.71024 165.61779,199.88182 165.15065,199.59311 C 164.68351,199.30440 162.43351,200.44177 160.15065,202.12060 C 157.54475,204.03700 156.00067,204.67561 156.00179,203.83651 z M 324.00000,201.50000 C 324.00000,200.67500 324.45000,200.00000 325.00000,200.00000 C 325.55000,200.00000 326.00000,200.67500 326.00000,201.50000 C 326.00000,202.32500 325.55000,203.00000 325.00000,203.00000 C 324.45000,203.00000 324.00000,202.32500 324.00000,201.50000 z M 100.25000,196.85422 C 99.562500,196.16440 99.000000,195.06314 99.000000,194.40699 C 99.000000,193.75083 98.278311,192.93704 97.396246,192.59856 C 96.451488,192.23602 96.035873,191.34890 96.384791,190.43963 C 96.710556,189.59070 96.564644,189.15103 96.060542,189.46258 C 94.871890,190.19721 93.651468,186.37295 94.589961,184.85444 C 95.011825,184.17185 94.875157,183.95912 94.259293,184.33975 C 92.772762,185.25847 91.710086,182.29722 91.503391,176.66014 L 91.325927,171.82029 L 93.912963,174.66014 C 97.078371,178.13489 101.21430,186.38858 100.80213,188.40819 C 100.63596,189.22240 101.25862,190.47615 102.18581,191.19429 C 103.60801,192.29582 103.68620,192.93852 102.68581,195.30422 C 101.73586,197.55069 101.25137,197.85898 100.25000,196.85422 z M 102.00000,195.00000 C 102.00000,194.45000 101.55000,194.00000 101.00000,194.00000 C 100.45000,194.00000 100.00000,194.45000 100.00000,195.00000 C 100.00000,195.55000 100.45000,196.00000 101.00000,196.00000 C 101.55000,196.00000 102.00000,195.55000 102.00000,195.00000 z M 100.00000,192.00000 C 100.00000,191.45000 99.523442,191.00000 98.940983,191.00000 C 98.358524,191.00000 98.160081,191.45000 98.500000,192.00000 C 98.839919,192.55000 99.316476,193.00000 99.559017,193.00000 C 99.801558,193.00000 100.00000,192.55000 100.00000,192.00000 z M 186.27083,195.39583 C 186.60313,195.06354 187.46562,195.02802 188.18750,195.31689 C 188.98523,195.63611 188.74828,195.87307 187.58333,195.92105 C 186.52917,195.96447 185.93854,195.72813 186.27083,195.39583 z M 178.75000,194.33772 C 179.43750,194.06031 180.56250,194.06031 181.25000,194.33772 C 181.93750,194.61513 181.37500,194.84211 180.00000,194.84211 C 178.62500,194.84211 178.06250,194.61513 178.75000,194.33772 z M 185.49098,189.42368 L 181.69941,184.79658 L 174.59971,185.16987 C 169.79541,185.42247 165.94740,186.30064 162.69781,187.88605 C 160.05660,189.17464 157.61160,189.94493 157.26447,189.59781 C 155.24483,187.57817 167.23733,183.99015 175.86483,184.03279 C 182.48178,184.06550 182.51061,184.07800 186.36485,188.58461 C 188.49051,191.07008 190.01659,193.31675 189.75612,193.57721 C 189.49565,193.83768 187.57634,191.96859 185.49098,189.42368 z M 141.61527,183.00000 C 143.67485,171.53619 153.12767,163.88452 163.32498,165.42688 C 169.53189,166.36569 171.48664,167.96564 166.45000,167.98469 C 164.22250,167.99311 161.91724,167.51724 161.32720,166.92720 C 159.56253,165.16253 152.01401,167.78599 148.36935,171.43065 C 146.58105,173.21895 144.83832,175.99114 144.49662,177.59106 C 144.15493,179.19097 143.22536,181.85000 142.43091,183.50000 L 140.98646,186.50000 L 141.61527,183.00000 z M 158.90991,184.25000 C 161.65276,178.93192 169.61480,177.19808 176.03867,180.52000 C 180.09935,182.61986 179.77186,183.22045 175.53212,181.44897 C 169.53227,178.94208 164.69517,179.54129 160.99339,183.25000 C 158.55862,185.68932 158.03892,185.93876 158.90991,184.25000 z M 183.05115,173.86818 C 176.04452,168.81135 175.59986,168.28409 180.50000,170.84307 C 185.29638,173.34786 189.65699,176.68262 188.98506,177.33197 C 188.71828,177.58978 186.04802,176.03108 183.05115,173.86818 z M 391.00000,177.00000 C 390.20686,176.50981 389.88989,175.77678 390.29563,175.37104 C 390.70137,174.96530 391.55833,175.15833 392.20000,175.80000 C 393.71091,177.31091 392.86759,178.15423 391.00000,177.00000 z M 87.666667,176.33333 C 87.300000,175.96667 87.000000,174.91141 87.000000,173.98832 C 87.000000,173.06523 86.130348,171.52295 85.067439,170.56103 C 84.004531,169.59911 83.355392,168.23744 83.624910,167.53509 C 83.894427,166.83274 83.414079,165.98914 82.557471,165.66043 C 81.700862,165.33172 81.000000,164.34709 81.000000,163.47237 C 81.000000,162.59765 80.576070,162.14397 80.057932,162.46420 C 79.539795,162.78442 78.325742,161.34848 77.360036,159.27321 C 76.394330,157.19795 75.130760,155.15395 74.552103,154.73100 C 73.872779,154.23447 74.208636,153.41949 75.500000,152.43088 C 77.299361,151.05337 77.532672,151.05651 77.825682,152.46213 C 78.004807,153.32143 78.567307,153.76742 79.075682,153.45323 C 79.584057,153.13903 80.000000,153.71852 80.000000,154.74098 C 80.000000,155.76344 80.481186,157.08119 81.069301,157.66930 C 81.657417,158.25742 82.263272,159.35992 82.415645,160.11930 C 82.568018,160.87869 83.157922,162.62500 83.726543,164.00000 C 84.295164,165.37500 84.738268,166.72500 84.711220,167.00000 C 84.684171,167.27500 85.236451,168.57329 85.938507,169.88510 C 86.945247,171.76621 87.400332,171.97752 88.092174,170.88510 C 88.750632,169.84539 88.973193,170.04635 88.984687,171.69098 C 88.993109,172.89602 89.450000,174.16008 90.000000,174.50000 C 90.550000,174.83992 91.000000,175.54148 91.000000,176.05902 C 91.000000,177.13736 88.663018,177.32968 87.666667,176.33333 z M 181.00000,176.00000 C 181.00000,175.45000 181.19844,175.00000 181.44098,175.00000 C 181.68352,175.00000 182.16008,175.45000 182.50000,176.00000 C 182.83992,176.55000 182.64148,177.00000 182.05902,177.00000 C 181.47656,177.00000 181.00000,176.55000 181.00000,176.00000 z M 391.47560,172.66170 C 390.66402,171.50301 390.00000,171.10512 390.00000,171.77749 C 390.00000,172.44987 389.50186,173.00000 388.89301,173.00000 C 388.28417,173.00000 388.04504,172.32500 388.36163,171.50000 C 388.67821,170.67500 388.50135,170.00000 387.96862,170.00000 C 387.43588,170.00000 387.00000,169.38010 387.00000,168.62244 C 387.00000,167.86479 386.37146,166.72324 385.60323,166.08568 C 384.83501,165.44811 384.43607,164.04848 384.71669,162.97538 C 385.03625,161.75336 384.62401,160.79295 383.61345,160.40516 C 382.72605,160.06464 382.00000,159.19667 382.00000,158.47634 C 382.00000,157.75602 381.59352,157.01667 381.09671,156.83333 C 380.59990,156.65000 380.03740,153.59571 379.84671,150.04602 C 379.51479,143.86737 379.60665,143.56590 382.00000,142.97957 C 383.62363,142.58180 384.39700,141.77693 384.20616,140.68355 C 383.84199,138.59703 385.57477,138.44947 386.36163,140.50000 C 387.04940,142.29230 390.12789,142.47211 391.78333,140.81667 C 393.68055,138.91945 394.49106,140.79991 392.65200,142.83204 C 391.08075,144.56825 391.15865,144.91893 393.98112,148.81524 C 396.64119,152.48737 397.31882,152.88624 399.98966,152.35207 C 402.24560,151.90088 403.00000,152.11873 403.00000,153.22136 C 403.00000,154.03061 403.72239,156.14078 404.60530,157.91063 C 406.80696,162.32395 407.42048,169.65067 405.67561,170.69231 C 404.93148,171.13654 403.81373,172.40000 403.19173,173.50000 C 402.20546,175.24420 402.05693,175.27617 402.03041,173.75000 C 401.99575,171.75550 400.37356,171.37933 399.75891,173.22327 C 399.03426,175.39721 393.11032,174.99559 391.47560,172.66170 z M 405.00000,161.00000 C 405.00000,160.45000 404.52344,160.00000 403.94098,160.00000 C 403.35852,160.00000 403.16008,160.45000 403.50000,161.00000 C 403.83992,161.55000 404.31648,162.00000 404.55902,162.00000 C 404.80156,162.00000 405.00000,161.55000 405.00000,161.00000 z M 408.00000,164.00000 C 408.00000,163.45000 408.70156,163.00000 409.55902,163.00000 C 410.41648,163.00000 410.83992,163.45000 410.50000,164.00000 C 410.16008,164.55000 409.45852,165.00000 408.94098,165.00000 C 408.42344,165.00000 408.00000,164.55000 408.00000,164.00000 z M 410.00000,161.05902 C 410.00000,160.47656 410.45000,160.00000 411.00000,160.00000 C 411.55000,160.00000 412.00000,160.19844 412.00000,160.44098 C 412.00000,160.68352 411.55000,161.16008 411.00000,161.50000 C 410.45000,161.83992 410.00000,161.64148 410.00000,161.05902 z M 72.638374,150.50000 C 72.954956,149.67500 72.759590,149.00000 72.204226,149.00000 C 70.963458,149.00000 63.666667,138.17086 63.666667,136.32944 C 63.666667,135.59825 63.339812,135.00000 62.940322,135.00000 C 62.540833,135.00000 61.954956,134.32500 61.638374,133.50000 C 61.321791,132.67500 61.207936,132.00000 61.385362,132.00000 C 62.180888,132.00000 67.010613,137.00959 66.893739,137.71352 C 66.603083,139.46412 67.084511,140.71607 68.757970,142.56144 C 72.976389,147.21321 75.143664,152.00000 73.031385,152.00000 C 72.498646,152.00000 72.321791,151.32500 72.638374,150.50000 z M 441.00000,149.00000 C 441.00000,148.45000 441.45000,148.00000 442.00000,148.00000 C 442.55000,148.00000 443.00000,148.45000 443.00000,149.00000 C 443.00000,149.55000 442.55000,150.00000 442.00000,150.00000 C 441.45000,150.00000 441.00000,149.55000 441.00000,149.00000 z M 443.00000,146.05902 C 443.00000,145.47656 443.45000,145.00000 444.00000,145.00000 C 444.55000,145.00000 445.00000,145.19844 445.00000,145.44098 C 445.00000,145.68352 444.55000,146.16008 444.00000,146.50000 C 443.45000,146.83992 443.00000,146.64148 443.00000,146.05902 z M 399.11831,126.18714 C 399.03734,124.60416 398.44774,123.94262 397.25000,124.09083 C 395.53127,124.30350 392.89076,123.57716 390.07773,122.11789 C 389.26016,121.69378 388.44886,119.27974 388.16954,116.44004 C 387.24709,107.06205 387.32996,106.52415 389.75000,106.18045 C 390.98750,106.00470 392.00000,105.21720 392.00000,104.43045 C 392.00000,102.74070 393.59309,102.53259 394.55940,104.09612 C 394.93200,104.69898 396.53355,105.00192 398.11842,104.76931 C 401.13119,104.32713 401.70237,104.89763 399.97568,106.62432 C 398.95430,107.64570 401.12768,118.42482 403.11404,122.18931 C 404.17382,124.19780 402.53196,125.65755 401.34030,123.76631 C 400.80243,122.91267 400.32964,123.47766 399.88952,125.50000 C 399.35936,127.93608 399.21439,128.06524 399.11831,126.18714 z M 445.75000,108.22845 C 444.78750,108.02215 444.00000,107.48883 444.00000,107.04331 C 444.00000,105.71743 440.13849,105.11511 439.59461,106.35616 C 439.10657,107.46979 439.23612,106.27670 440.56686,97.402734 C 441.40409,91.819648 444.02101,89.507565 449.54274,89.472427 C 452.76037,89.451952 453.62365,89.748552 452.89651,90.624698 C 452.35592,91.276070 452.19601,93.859478 452.53950,96.392305 C 453.63568,104.47519 450.85504,109.32268 445.75000,108.22845 z M 410.89475,91.750000 C 410.15341,89.962500 409.47181,87.993256 409.38010,87.373903 C 409.28838,86.754550 408.90458,84.842050 408.52721,83.123903 C 407.94066,80.453349 408.12594,80.000000 409.80391,80.000000 C 410.94403,80.000000 411.99226,79.137593 412.30480,77.942457 C 412.77880,76.129875 413.09032,76.039459 414.92143,77.183004 C 416.59129,78.225850 417.39326,78.235498 419.00000,77.232073 C 420.64277,76.206146 421.00000,76.233379 421.00000,77.384537 C 421.00000,78.155354 420.38717,79.021188 419.63815,79.308612 C 418.56258,79.721349 418.46231,81.017339 419.16116,85.473864 C 420.07632,91.309751 419.64903,93.383012 417.66729,92.722429 C 417.03510,92.511700 415.91920,92.937946 415.18750,93.669643 C 413.18171,95.675428 412.37273,95.313663 410.89475,91.750000 z " id="path1319" style="fill:#b7b1b3"/>
+ <path d="M 149.75000,805.26101 C 146.56904,805.06140 144.00000,804.42359 144.00000,803.83346 C 144.00000,803.21524 144.94600,803.02025 146.25000,803.36971 C 147.48750,803.70135 155.92500,804.04219 165.00000,804.12714 C 177.21523,804.24149 180.07174,804.47903 176.00000,805.04190 C 170.37980,805.81882 160.01761,805.90532 149.75000,805.26101 z M 137.25000,803.31067 C 138.21250,803.05915 139.78750,803.05915 140.75000,803.31067 C 141.71250,803.56220 140.92500,803.76800 139.00000,803.76800 C 137.07500,803.76800 136.28750,803.56220 137.25000,803.31067 z M 216.50000,795.68271 C 220.35000,793.85106 225.01633,790.83469 226.86962,788.97967 C 230.08264,785.76366 230.21323,785.34884 229.67963,780.05346 C 229.17603,775.05577 229.26414,774.69426 230.56001,776.44113 C 233.30464,780.14094 231.88884,787.52215 227.73648,791.16146 C 225.00260,793.55755 216.57845,797.55757 212.50000,798.39615 C 210.85000,798.73541 212.65000,797.51437 216.50000,795.68271 z M 445.50000,797.30504 C 442.12905,796.52472 398.75812,776.73709 394.50000,774.03670 C 392.30000,772.64151 387.85419,769.47500 384.62043,767.00000 C 373.03266,758.13116 373.00868,758.11972 365.87573,758.05765 C 362.23238,758.02594 357.31811,758.68212 354.95514,759.51583 C 347.31052,762.21301 330.87897,765.10485 314.50000,766.63567 C 296.12400,768.35314 234.05109,768.25010 232.76531,766.50000 C 232.36123,765.95000 232.02373,766.65331 232.01531,768.06291 C 231.98658,772.87246 225.87170,776.94631 214.15905,779.95909 C 205.14816,782.27691 205.52297,781.55768 214.98677,778.37078 C 218.87666,777.06087 223.83160,774.81628 225.99774,773.38280 C 229.72516,770.91611 231.89066,767.55733 230.59131,766.25797 C 230.26609,765.93275 230.00000,766.34692 230.00000,767.17835 C 230.00000,768.00977 229.15603,769.45381 228.12450,770.38733 C 226.34292,771.99963 226.12078,771.93225 223.68865,769.04183 L 221.12830,765.99903 L 214.44659,767.54862 C 210.77165,768.40090 207.51778,768.85111 207.21577,768.54911 C 206.91376,768.24710 207.44322,768.00000 208.39235,768.00000 C 209.34148,768.00000 209.82877,767.53196 209.47523,766.95992 C 209.06038,766.28867 209.83735,766.11952 211.66621,766.48292 C 214.05583,766.95774 214.16657,766.89782 212.37274,766.10063 C 210.02158,765.05575 203.76142,766.12319 201.56890,767.94282 C 200.52765,768.80698 200.06885,768.77035 199.67619,767.79174 C 199.31065,766.88070 199.13463,766.85505 199.07895,767.70469 C 199.03553,768.36726 197.53750,769.16212 195.75000,769.47104 C 190.02640,770.46020 183.03616,770.75050 183.51282,769.97925 C 183.76679,769.56833 182.64522,768.68147 181.02045,768.00847 C 179.39567,767.33547 177.54629,766.15824 176.91071,765.39241 C 176.27513,764.62659 174.83521,764.00000 173.71089,764.00000 C 169.90203,764.00000 172.67089,762.96944 178.60064,762.18004 C 182.13638,761.70935 176.28654,761.56527 164.00000,761.82043 C 152.72500,762.05458 143.72584,762.00243 144.00186,761.70455 C 144.27789,761.40667 157.10289,760.91838 172.50186,760.61948 C 187.90084,760.32057 202.29551,759.63194 204.49002,759.08918 C 207.84208,758.26014 208.80143,758.39279 210.49002,759.91883 C 211.59551,760.91789 213.85000,762.51672 215.50000,763.47179 C 217.99441,764.91562 217.79057,764.54188 214.29050,761.25420 L 210.08099,757.30013 L 215.29050,756.12536 C 218.15572,755.47923 221.17500,754.48222 222.00000,753.90978 C 223.11670,753.13494 222.86117,753.07151 221.00000,753.66154 C 219.62500,754.09744 217.08047,754.46442 215.34549,754.47704 C 213.61051,754.48967 212.36571,754.78271 212.57926,755.12825 C 213.12497,756.01122 207.01296,757.12604 205.78549,756.36743 C 205.23049,756.02441 204.48920,756.19631 204.13820,756.74942 C 203.78719,757.30252 201.47500,758.06175 199.00000,758.43658 C 195.55784,758.95788 194.85261,758.85373 196.00000,757.99354 C 197.22251,757.07702 197.09676,756.98194 195.32022,757.47959 C 190.85150,758.73139 159.75783,759.83340 138.00000,759.51113 C 114.29665,759.16003 72.098369,755.66355 68.560875,753.75751 C 67.427394,753.14678 62.900000,752.29641 58.500000,751.86781 C 54.100000,751.43920 48.250000,750.78373 45.500000,750.41121 C 42.750000,750.03868 40.849096,750.10536 41.275770,750.55938 C 41.702443,751.01340 43.052443,751.53376 44.275770,751.71573 C 45.499096,751.89770 50.100000,752.70096 54.500000,753.50076 C 78.699076,757.89950 112.92410,761.92521 134.50000,762.91075 C 149.82454,763.61074 150.15634,764.00319 137.00000,765.86772 C 132.87500,766.45232 126.80717,767.67280 123.51592,768.57989 C 118.37536,769.99667 116.12000,770.07103 107.51592,769.10746 C 96.780782,767.90522 68.368292,763.10148 53.267445,759.93560 C 40.743189,757.30990 38.648715,757.64281 49.000000,760.61391 C 60.687574,763.96855 106.57303,773.17166 111.75000,773.19948 C 112.98750,773.20613 114.00000,773.33717 114.00000,773.49068 C 114.00000,774.17228 103.15622,777.22731 99.865831,777.47272 C 93.592941,777.94057 72.098589,774.15659 57.381897,769.99363 C 43.834092,766.16132 37.716223,764.96155 43.000000,767.17321 C 45.877599,768.37770 49.114593,769.33864 68.839835,774.84403 C 76.726744,777.04530 83.439244,779.10591 83.756502,779.42317 C 84.073759,779.74043 82.934891,780.00000 81.225684,780.00000 C 79.516476,780.00000 77.861233,780.41551 77.547365,780.92336 C 76.418460,782.74997 64.553284,781.13684 56.500000,778.06188 C 52.100000,776.38183 47.487500,775.00562 46.250000,775.00363 C 45.012500,775.00163 44.000000,774.55000 44.000000,774.00000 C 44.000000,773.45000 43.550000,773.00000 43.000000,773.00000 C 42.450000,773.00000 42.000000,773.36665 42.000000,773.81479 C 42.000000,775.08856 49.009386,778.11223 50.223187,777.36206 C 50.917950,776.93268 51.016975,777.16352 50.498137,778.00302 C 49.889102,778.98845 50.248647,779.16824 51.942542,778.72528 C 53.182949,778.40090 53.911215,778.42212 53.560912,778.77242 C 53.210608,779.12272 54.403597,780.19837 56.211998,781.16275 C 59.005160,782.65228 59.169981,782.92248 57.307160,782.95808 C 54.577038,783.01027 48.637209,786.37342 43.901833,790.54823 C 35.599002,797.86818 25.669796,794.91365 15.765073,782.17587 C 10.414612,775.29501 8.1760800,769.82798 8.5274981,764.50000 C 8.6726037,762.30000 8.8945280,760.38750 9.0206632,760.25000 C 9.1467985,760.11250 9.3062500,759.58750 9.3750000,759.08333 C 9.4437500,758.57917 9.7733107,757.89336 10.107357,757.55931 C 10.881445,756.78522 23.000000,765.65714 23.000000,766.99793 C 23.000000,767.54907 23.337500,767.95133 23.750000,767.89185 C 25.233734,767.67789 29.000000,769.25140 29.000000,770.08525 C 29.000000,770.55384 29.615860,770.70090 30.368578,770.41206 C 31.161929,770.10762 31.947423,770.69094 32.237420,771.79990 C 32.512565,772.85205 34.139392,774.20154 35.852591,774.79877 L 38.967498,775.88463 L 38.436795,756.19232 C 37.861823,734.85733 37.253213,730.06964 34.978524,728.98750 C 34.165336,728.60064 32.080569,727.54520 30.345708,726.64206 C 28.610847,725.73893 26.248347,725.00000 25.095708,725.00000 C 23.943069,725.00000 23.000000,724.51425 23.000000,723.92054 C 23.000000,723.25601 24.086911,723.07982 25.827733,723.46216 C 30.307894,724.44617 39.490691,728.40121 39.846372,729.50000 C 40.024408,730.05000 40.600589,731.01874 41.126775,731.65275 C 41.754153,732.40870 41.667836,732.94405 40.876019,733.20799 C 39.935123,733.52163 39.932857,734.36864 40.865755,737.04475 C 41.612087,739.18568 41.695653,740.60145 41.087651,740.80412 C 40.551238,740.98292 40.359228,741.77256 40.660962,742.55886 C 40.962696,743.34517 41.602289,743.74580 42.082280,743.44915 C 42.901547,742.94281 54.201443,744.96177 62.000000,747.00785 C 63.925000,747.51291 68.370326,748.18287 71.878503,748.49666 C 75.386680,748.81044 79.001427,749.46558 79.911276,749.95252 C 83.129162,751.67468 132.64293,756.13590 142.81347,755.62005 C 148.97129,755.30772 151.04284,755.41789 148.50000,755.92247 C 145.07227,756.60263 145.64455,756.73591 152.50000,756.85403 C 168.83277,757.13544 200.20827,753.88127 208.50000,751.04588 L 211.50000,750.02002 L 208.00000,750.48696 C 191.95226,752.62792 172.78802,753.91839 155.28525,754.03664 C 143.85336,754.11388 133.82500,753.94971 133.00000,753.67183 C 132.17500,753.39395 125.87500,752.87668 119.00000,752.52235 C 112.12500,752.16801 104.25000,751.45109 101.50000,750.92919 C 95.457384,749.78240 82.216655,747.56374 72.000000,745.98608 C 67.875000,745.34909 64.050000,744.46661 63.500000,744.02500 C 62.950000,743.58340 59.269347,742.90464 55.320770,742.51666 C 50.593228,742.05213 47.957342,741.33122 47.602155,740.40562 C 47.305493,739.63253 46.148646,739.00000 45.031385,739.00000 C 43.733324,739.00000 43.028500,738.36826 43.078947,737.25000 C 43.126110,736.20456 43.360964,736.00326 43.662281,736.75000 C 43.939693,737.43750 44.605724,738.00000 45.142350,738.00000 C 45.678976,738.00000 45.885061,737.62304 45.600316,737.16232 C 44.959076,736.12477 52.769237,735.73572 54.350750,736.72643 C 54.982838,737.12239 57.300000,737.54080 59.500000,737.65624 C 64.831312,737.93599 74.160293,738.60173 100.41329,740.57589 C 115.62512,741.71979 126.42381,742.00428 135.72425,741.50615 C 143.09296,741.11149 148.95825,740.62492 148.75821,740.42488 C 148.55817,740.22484 137.21869,739.80194 123.55937,739.48511 C 109.90004,739.16828 94.623775,738.44793 89.612113,737.88433 C 84.600451,737.32074 76.675000,736.74324 72.000000,736.60100 C 60.238395,736.24315 49.619202,735.02325 47.922895,733.83510 C 46.955213,733.15730 47.939642,733.09886 51.000000,733.65242 C 56.932054,734.72542 69.398797,734.30361 69.828211,733.01537 C 70.014362,732.45692 72.127609,732.00000 74.524316,732.00000 C 76.921024,732.00000 79.160081,731.55000 79.500000,731.00000 C 79.839919,730.45000 80.843543,730.00000 81.730276,730.00000 C 82.617010,730.00000 84.052952,729.41041 84.921259,728.68979 C 87.619270,726.45069 97.465880,723.94956 101.10230,724.57965 C 103.41243,724.97994 104.06572,724.86136 103.14324,724.20919 C 101.62531,723.13606 103.30617,721.45316 104.90747,722.44281 C 106.37087,723.34724 125.52710,718.31340 125.25000,717.09723 C 125.11250,716.49376 125.41320,716.00000 125.91821,716.00000 C 126.42323,716.00000 127.66073,715.69075 128.66821,715.31277 C 130.28048,714.70790 130.33558,714.82767 129.12806,716.31216 C 127.87909,717.84761 128.05834,717.94451 131.12806,717.39330 C 135.59017,716.59207 140.00000,714.72614 140.00000,713.63931 C 140.00000,713.15946 141.11138,712.97930 142.46974,713.23897 C 143.82809,713.49863 144.71206,713.34311 144.43410,712.89337 C 144.15614,712.44363 145.37665,711.70046 147.14634,711.24188 C 150.62975,710.33924 152.26795,708.00000 149.41667,708.00000 C 146.09559,708.00000 149.38267,706.43927 153.50000,706.06120 C 154.05000,706.01070 153.89299,705.58470 153.15108,705.11454 C 152.19674,704.50975 152.78178,704.07592 155.15108,703.63144 C 156.99299,703.28589 158.85391,703.11496 159.28647,703.25159 C 159.71904,703.38821 160.42986,702.92250 160.86609,702.21667 C 161.63163,700.97800 171.83141,698.80276 173.14522,699.59798 C 173.50008,699.81277 174.02238,699.38407 174.30587,698.64531 C 174.73651,697.52307 175.86416,697.52058 181.16065,698.63021 C 184.64729,699.36067 188.17500,699.96081 189.00000,699.96385 C 190.33333,699.96876 190.33333,699.86195 189.00000,699.00255 C 187.92279,698.30823 188.66056,698.10116 191.61754,698.26786 C 194.23119,698.41522 195.57594,698.91960 195.29937,699.64885 C 195.05972,700.28072 195.34433,701.09477 195.93183,701.45787 C 196.51932,701.82096 197.00000,701.60933 197.00000,700.98759 C 197.00000,700.36584 197.73437,699.12277 198.63193,698.22521 C 200.14117,696.71597 200.20830,696.76834 199.52480,698.92187 C 199.01497,700.52820 199.13176,701.03660 199.90132,700.56098 C 200.54391,700.16385 201.37409,700.83704 201.85931,702.14871 L 202.70170,704.42590 L 203.92059,702.14838 C 204.89980,700.31870 205.42071,700.10427 206.56974,701.05788 C 207.35638,701.71073 208.00000,702.86479 208.00000,703.62244 C 208.00000,704.42517 209.04321,705.00000 210.50000,705.00000 C 212.86785,705.00000 213.97422,706.44967 212.15358,707.16667 C 211.68805,707.35000 212.58660,708.54553 214.15036,709.82339 C 216.53924,711.77553 216.88426,711.85542 216.30955,710.32339 C 215.68459,708.65740 215.79277,708.62932 217.56277,709.99810 C 218.62825,710.82206 220.26362,712.32588 221.19693,713.33992 C 222.13024,714.35396 223.33170,714.91303 223.86685,714.58229 C 225.31724,713.68590 228.98626,718.84902 228.29511,720.81382 C 227.25539,723.76957 223.81079,726.90734 220.35295,728.04853 C 218.50883,728.65715 217.00347,729.45771 217.00770,729.82755 C 217.01839,730.76097 225.06190,735.27143 225.65612,734.67721 C 226.46525,733.86808 223.60738,730.00000 222.20044,730.00000 C 221.47528,730.00000 221.16008,729.55000 221.50000,729.00000 C 223.15767,726.31783 227.89686,730.75293 228.39825,735.45562 C 228.97709,740.88480 230.71694,741.81906 243.50000,743.56499 C 259.77799,745.78826 310.05980,745.12171 323.00000,742.51112 C 332.99316,740.49507 336.22366,739.08333 331.00000,739.01510 C 328.36582,738.98068 327.87106,738.72957 329.00000,738.00000 C 330.24421,737.19593 330.15895,737.02540 328.50000,737.00000 C 326.83587,736.97452 326.75190,736.80401 328.00000,735.98469 C 329.04248,735.30034 329.16129,734.77124 328.38953,734.25000 C 324.93962,731.91996 323.49658,723.00000 326.56955,723.00000 C 328.35930,723.00000 328.45170,721.11057 326.69492,720.43642 C 325.40361,719.94090 325.20803,715.09044 326.40150,713.15938 C 326.73753,712.61567 326.49939,711.99980 325.87230,711.79077 C 325.11949,711.53983 325.28724,710.85562 326.36607,709.77679 C 327.26473,708.87812 328.00000,707.73676 328.00000,707.24041 C 328.00000,706.74406 329.12500,705.73588 330.50000,705.00000 C 331.87500,704.26412 333.00000,703.35783 333.00000,702.98601 C 333.00000,701.48730 329.05694,698.84677 327.89307,699.56608 C 327.02346,700.10354 326.85754,699.81362 327.33006,698.58226 C 327.69853,697.62205 328.00000,696.64823 328.00000,696.41821 C 328.00000,696.18820 329.02499,696.00000 330.27776,696.00000 C 331.53053,696.00000 333.32612,695.10000 334.26797,694.00000 C 335.20982,692.90000 336.88483,692.00000 337.99021,692.00000 C 339.09560,692.00000 340.00000,691.55000 340.00000,691.00000 C 340.00000,690.45000 340.90000,690.00000 342.00000,690.00000 C 343.10000,690.00000 344.00000,690.40870 344.00000,690.90822 C 344.00000,691.40775 346.01902,693.89387 348.48671,696.43293 C 350.95440,698.97200 354.79359,703.51330 357.01825,706.52471 C 359.24291,709.53612 361.28147,712.00000 361.54839,712.00000 C 361.81531,712.00000 360.90111,709.76496 359.51685,707.03324 C 356.50350,701.08669 356.37506,700.12446 358.89962,702.40916 C 360.27643,703.65515 361.72133,703.95601 364.14962,703.50230 C 366.70364,703.02511 368.00506,703.34795 369.62486,704.86053 L 371.74971,706.84473 L 372.88244,704.35866 C 373.50545,702.99132 373.67426,702.07902 373.25759,702.33133 C 370.95174,703.72760 369.66245,697.39317 371.71817,694.76802 C 372.26430,694.07061 372.97875,692.37500 373.30583,691.00000 C 373.83880,688.75947 373.76451,688.68163 372.59002,690.25000 C 371.16323,692.15528 369.45202,692.69567 370.56910,690.88820 C 370.94702,690.27670 370.63608,689.38360 369.87812,688.90351 C 368.88016,688.27141 368.84482,688.02640 369.75000,688.01531 C 371.30142,687.99631 371.32366,686.92053 369.84715,683.31510 C 369.21308,681.76679 368.53861,679.69748 368.34833,678.71662 C 367.65397,675.13736 364.96525,672.25000 362.32660,672.25000 C 358.71455,672.25000 357.73712,669.92872 357.48857,660.76025 C 357.37100,656.42325 356.87547,652.49089 356.38740,652.02167 C 354.53193,650.23784 349.19293,650.51543 346.98859,652.51033 C 344.99575,654.31382 344.86756,655.09419 345.48382,661.67059 L 346.15747,668.85941 L 340.34319,668.36083 C 333.64190,667.78618 333.26714,667.58797 334.97994,665.52417 C 336.00200,664.29267 335.99736,664.00000 334.95578,664.00000 C 333.57297,664.00000 334.55600,662.58327 336.08333,662.37500 C 336.58750,662.30625 337.40186,662.19375 337.89301,662.12500 C 340.43292,661.76947 339.96194,656.00000 337.39301,656.00000 C 336.62686,656.00000 336.00000,655.14213 336.00000,654.09362 C 336.00000,652.74247 335.46997,652.32585 334.18014,652.66314 C 331.07402,653.47541 329.65665,650.54690 330.34459,644.73831 C 330.68502,641.86392 331.42455,639.35848 331.98800,639.17067 C 332.55146,638.98285 332.72701,638.36730 332.37812,637.80279 C 332.02923,637.23827 332.30767,636.42788 332.99688,636.00193 C 333.68610,635.57597 334.25000,634.13307 334.25000,632.79547 C 334.25000,629.33691 339.89735,627.01327 346.53045,627.74260 C 349.26370,628.04313 351.83061,628.78649 352.23469,629.39451 C 352.73705,630.15042 352.97422,630.08606 352.98469,629.19098 C 352.99311,628.47102 353.42137,628.14238 353.93637,628.46067 C 355.41717,629.37586 354.77033,633.12585 353.23340,632.53607 C 352.48395,632.24848 352.17573,632.47532 352.53222,633.05213 C 352.88207,633.61820 354.07487,633.79363 355.18288,633.44196 C 356.84810,632.91344 357.08845,633.14596 356.56892,634.78286 C 355.71691,637.46731 358.62989,638.51471 360.82430,636.31292 C 361.76426,635.36980 362.50000,633.06599 362.50000,631.06580 L 362.50000,627.50000 L 367.49383,627.68280 C 371.33420,627.82338 372.95103,628.40193 374.49383,630.18759 C 375.75462,631.64685 377.70752,632.55728 379.75000,632.63798 C 383.32272,632.77915 383.81219,631.60458 381.53531,628.35387 C 379.73901,625.78930 380.47728,624.85077 383.41296,625.96691 C 384.62698,626.42848 389.80715,627.31520 394.92445,627.93740 C 406.05915,629.29125 411.00000,631.10750 411.00000,633.84676 C 411.00000,637.33585 395.04396,654.25453 392.19893,653.78211 C 390.98789,653.58102 390.40633,654.31877 390.17382,656.35109 C 389.72011,660.31697 386.38277,665.47864 384.26476,665.49029 C 382.12713,665.50205 382.28381,668.03602 384.98901,677.20328 L 386.84714,683.50000 L 386.92357,679.25000 C 387.00210,674.88324 387.71681,674.11681 389.78333,676.18333 C 392.01925,678.41925 392.37641,675.94807 390.55102,670.87182 C 389.05017,666.69809 388.96305,665.64087 390.06390,664.96051 C 391.98137,663.77544 392.65564,664.49053 393.28653,668.37825 C 393.59238,670.26300 395.04006,673.61451 396.50358,675.82605 C 398.34454,678.60792 399.46521,682.10474 400.14024,687.17351 C 401.21344,695.23202 405.06573,708.99200 406.25000,708.99690 C 406.66250,708.99860 406.98503,709.56250 406.96673,710.25000 C 406.94843,710.93750 406.01717,710.39903 404.89725,709.05341 C 403.26876,707.09671 402.68885,706.88542 402.00112,707.99819 C 399.40364,712.20100 421.37779,732.32720 426.44215,730.38382 C 428.97846,729.41055 428.28486,728.65751 421.96828,725.52653 C 413.84759,721.50129 404.99500,711.99422 409.72145,712.37429 C 412.27033,712.57925 412.24887,710.44989 409.67109,707.37589 C 404.12491,700.76208 403.00000,697.20797 403.00000,686.29874 C 403.00000,678.66320 402.55606,675.10796 401.25000,672.28393 C 399.24736,667.95374 397.15812,666.00209 395.29189,666.71823 C 393.53257,667.39335 393.65113,664.53443 395.44417,663.04633 C 396.23847,662.38713 397.02597,660.19453 397.19417,658.17389 C 397.36238,656.15325 398.06250,654.44375 398.75000,654.37500 C 399.43750,654.30625 400.46782,654.19375 401.03960,654.12500 C 403.45802,653.83421 410.99386,644.86864 419.17843,632.54476 C 424.48931,624.54792 425.10115,623.10313 424.89537,619.04476 C 424.76863,616.54514 424.23514,613.93741 423.70985,613.24979 C 423.05459,612.39206 423.92525,612.48865 426.48331,613.55748 C 433.09621,616.32052 434.00000,617.22289 434.00000,621.06241 C 434.00000,623.03213 434.72896,626.78311 435.61992,629.39793 C 437.74188,635.62555 437.03584,642.55076 433.60470,649.16413 C 432.12461,652.01695 430.64689,656.29708 430.32089,658.67553 C 429.99488,661.05399 429.43700,663.00000 429.08114,663.00000 C 427.91114,663.00000 422.58358,667.39889 417.75000,672.35597 C 413.61726,676.59429 413.00308,677.76485 413.02374,681.36366 C 413.03679,683.63865 414.16906,688.20000 415.53989,691.50000 C 416.91071,694.80000 418.48293,700.60461 419.03369,704.39913 C 420.07313,711.56041 419.70513,714.63725 418.50476,708.82151 C 418.12771,706.99468 416.46906,702.68064 414.81888,699.23475 C 413.16870,695.78886 411.71620,692.41386 411.59109,691.73475 C 410.69167,686.85237 409.70684,684.00000 408.92054,684.00000 C 408.41425,684.00000 408.00000,684.59332 408.00000,685.31850 C 408.00000,690.59633 418.21991,714.60016 419.99889,713.50069 C 420.58023,713.14140 421.83080,713.71982 422.77794,714.78608 C 426.09246,718.51746 429.95298,719.22386 435.50000,717.11396 C 440.27866,715.29631 440.70691,714.81075 445.17397,706.14524 C 447.74466,701.15846 450.31651,696.49823 450.88919,695.78918 C 451.46188,695.08013 453.21356,692.92500 454.78182,691.00000 C 458.19865,686.80592 461.53828,681.37566 464.55177,675.11398 C 480.86889,641.20894 484.32075,635.00000 486.85313,635.00000 C 487.42103,635.00000 489.37390,635.86167 491.19284,636.91482 C 493.01178,637.96796 498.43750,639.63532 503.25000,640.62004 C 508.06250,641.60477 512.00000,642.76571 512.00000,643.19992 C 512.00000,643.63412 509.97500,647.89234 507.50000,652.66263 C 505.02500,657.43292 503.00000,661.73806 503.00000,662.22961 C 503.00000,664.41253 495.49142,678.24487 494.07483,678.67161 C 487.41381,680.67816 486.21341,681.88672 481.61342,691.21772 C 479.07604,696.36475 477.00000,701.10966 477.00000,701.76195 C 477.00000,702.98726 472.04869,716.01792 469.40506,721.75000 C 468.46160,723.79568 467.18243,725.00000 465.95308,725.00000 C 464.70775,725.00000 464.00000,725.68173 464.00000,726.88129 C 464.00000,729.17951 468.96412,730.59414 481.70797,731.92756 C 486.54358,732.43352 491.31786,733.16659 492.31746,733.55662 C 493.31706,733.94664 495.18631,733.70306 496.47135,733.01533 C 498.36310,732.00290 499.19576,730.02681 500.84634,722.63246 C 501.96754,717.60961 503.18676,709.67500 503.55570,705.00000 C 503.92465,700.32500 504.49015,696.06048 504.81238,695.52330 C 505.13461,694.98611 505.54376,692.73611 505.72159,690.52330 C 506.11207,685.66457 508.62284,679.34941 511.43504,676.15268 C 513.95177,673.29182 518.07814,671.17515 528.31084,667.49606 L 536.12168,664.68772 L 539.00214,658.33500 C 540.58640,654.84100 542.57741,651.71566 543.42662,651.38979 C 544.74835,650.88259 558.00963,653.57279 566.00000,655.96906 C 568.30245,656.65955 568.14442,656.81468 564.00000,657.93226 C 557.58410,659.66237 551.62995,662.73304 548.64032,665.85354 C 545.08356,669.56599 538.85563,693.39535 537.48131,708.55023 C 536.94039,714.51501 536.19389,719.24684 533.29298,735.09868 C 532.85767,737.47743 533.35411,737.92252 539.15871,740.35767 C 542.64642,741.82084 547.83792,743.44762 550.69537,743.97275 C 553.55283,744.49787 557.54528,745.61882 559.56750,746.46376 C 561.58971,747.30869 563.62195,748.00000 564.08358,748.00000 C 565.85831,748.00000 569.95115,726.67562 569.98254,717.26545 C 570.00053,711.87061 574.77554,686.48270 577.49267,677.33537 C 578.77378,673.02247 579.79497,671.66191 583.68483,669.08537 C 586.24676,667.38842 588.94968,666.00000 589.69132,666.00000 C 590.43295,666.00000 592.87267,664.84292 595.11292,663.42872 C 597.35317,662.01451 599.75615,661.07618 600.45289,661.34355 C 601.14962,661.61091 602.22242,663.82624 602.83689,666.26651 C 603.45136,668.70678 605.76443,673.41435 607.97705,676.72778 C 610.18967,680.04120 612.00000,683.35341 612.00000,684.08824 C 612.00000,684.82307 610.10688,687.35325 607.79306,689.71085 L 603.58613,693.99741 L 604.93153,698.24871 C 608.53658,709.64011 604.68324,717.30862 590.84403,726.28416 C 587.90481,728.19042 584.07094,731.26881 582.32430,733.12504 C 579.01945,736.63725 574.63669,746.60314 575.66514,748.26720 C 575.99024,748.79323 575.78568,749.51443 575.21055,749.86987 C 574.63543,750.22532 573.95239,753.43750 573.69268,757.00807 C 573.43297,760.57863 572.97922,764.17500 572.68436,765.00000 C 572.38950,765.82500 571.47877,769.27813 570.66052,772.67363 C 568.91629,779.91171 565.93699,784.35938 561.60822,786.18741 C 559.63250,787.02175 554.30989,787.48942 547.00000,787.47095 C 537.01400,787.44573 534.52257,787.08368 528.07567,784.72095 C 518.44612,781.19181 513.86834,781.24699 507.50000,784.96898 C 494.48341,792.57655 490.58862,794.06325 478.50000,796.03867 C 467.57790,797.82347 450.56073,798.47650 445.50000,797.30504 z M 493.37882,766.45520 C 494.58933,763.30065 493.94461,759.44525 491.48795,755.14793 C 488.34369,749.64780 488.36978,749.52363 491.92308,753.07692 C 494.66649,755.82034 499.00000,757.07169 499.00000,755.12046 C 499.00000,754.22423 491.36009,747.57310 487.58283,745.18093 C 485.91236,744.12301 485.86486,743.97537 487.34290,744.43519 C 492.93054,746.17353 494.25577,746.26701 493.80653,744.89113 C 493.10468,742.74156 488.76093,741.02972 479.45713,739.23614 C 473.71299,738.12879 471.09225,737.20198 471.40447,736.38836 C 471.88921,735.12514 466.71494,733.99873 451.50000,732.05525 C 447.10000,731.49322 442.41713,730.72998 441.09363,730.35916 C 439.49036,729.90996 438.90932,730.04425 439.35262,730.76154 C 440.20996,732.14873 448.75894,733.97997 454.79922,734.07029 C 460.33314,734.15303 463.95786,735.28998 462.18362,736.38651 C 459.00535,738.35080 461.42222,739.72573 471.00000,741.40208 C 476.50000,742.36472 481.00000,743.51991 481.00000,743.96917 C 481.00000,745.06459 478.39873,746.00000 475.35247,746.00000 C 468.84765,746.00000 466.71930,750.52792 472.75000,751.53658 C 480.67988,752.86289 481.27327,753.29753 483.02428,759.06208 C 483.93276,762.05294 485.28515,765.92948 486.02958,767.67663 C 487.32946,770.72740 487.48955,770.79820 490.07036,769.46361 C 491.54836,768.69931 493.03717,767.34552 493.37882,766.45520 z M 227.91667,763.36455 C 229.28899,762.16389 226.03413,763.27891 224.44113,764.55517 C 222.61082,766.02154 222.64273,766.04236 225.00000,764.91971 C 226.37500,764.26487 227.68750,763.56505 227.91667,763.36455 z M 472.80496,763.80050 C 479.04004,758.83067 479.17165,758.40039 475.31658,755.58866 C 472.65727,753.64908 459.73398,751.73905 448.16314,751.57545 C 443.47438,751.50916 442.52513,751.85014 440.34644,754.38330 C 438.73428,756.25776 438.20802,757.60802 438.84237,758.24237 C 440.54053,759.94053 453.24980,763.00000 458.60591,763.00000 C 461.95951,763.00000 464.18856,763.52227 464.99809,764.49770 C 466.39016,766.17504 470.25941,765.82950 472.80496,763.80050 z M 553.57825,764.09211 C 555.60340,762.82806 555.17546,762.85291 545.00000,764.59023 C 542.18839,765.07027 540.14774,764.46936 534.62464,761.53502 C 530.84319,759.52598 527.05545,758.14848 526.20742,758.47390 C 524.08402,759.28872 525.42302,760.34287 532.50000,763.42784 C 537.45427,765.58749 539.64651,765.97783 545.07825,765.66748 C 548.69628,765.46075 552.52128,764.75184 553.57825,764.09211 z M 534.00000,758.23607 C 534.00000,757.38373 526.89531,752.78376 525.80512,752.93025 C 525.42293,752.98161 521.01263,750.94111 516.00445,748.39581 C 510.99627,745.85052 506.71700,743.94967 506.49496,744.17170 C 506.21141,744.45525 529.42166,756.98946 533.75000,758.89021 C 533.88750,758.95060 534.00000,758.65623 534.00000,758.23607 z M 199.00000,749.60699 C 199.00000,749.39083 198.30163,748.94599 197.44806,748.61844 C 196.55814,748.27695 196.15674,748.44459 196.50708,749.01145 C 197.09434,749.96166 199.00000,750.41690 199.00000,749.60699 z M 408.00000,749.14208 C 408.00000,748.67023 409.89561,747.88273 412.21248,747.39208 L 416.42495,746.50000 L 411.96248,744.30310 C 409.50811,743.09480 404.58001,741.00667 401.01113,739.66281 C 395.70528,737.66489 394.14257,736.54121 392.43966,733.49937 C 391.29422,731.45334 389.60767,729.35995 388.69177,728.84738 C 386.26307,727.48821 382.67474,729.64818 383.31214,732.08562 C 383.58748,733.13853 383.42807,734.00000 382.95790,734.00000 C 381.74162,734.00000 377.75207,730.00168 375.63723,726.66324 C 373.53519,723.34500 372.27366,723.74407 374.05311,727.16435 C 375.14698,729.26690 383.42069,739.97371 388.41519,745.75000 C 390.49737,748.15809 392.48861,748.63646 393.51531,746.97522 C 393.86365,746.41160 393.75265,746.07410 393.26863,746.22522 C 392.39016,746.49951 386.70965,740.95701 387.28231,740.38435 C 387.44851,740.21816 391.84048,742.29948 397.04224,745.00952 C 406.90179,750.14619 408.00000,750.56037 408.00000,749.14208 z M 192.71086,743.99963 C 192.89309,739.67877 192.66351,739.00000 191.01987,739.00000 C 189.97386,739.00000 188.87506,738.60686 188.57809,738.12635 C 187.84431,736.93907 199.54251,734.72002 202.15842,735.55028 C 203.56128,735.99553 204.02505,735.84954 203.56621,735.10713 C 202.41814,733.24952 205.78232,733.85600 210.83847,736.41815 C 216.26999,739.17051 222.19436,740.52313 224.66517,739.57499 C 226.19100,738.98947 226.16872,738.80655 224.42270,737.58424 C 217.49015,732.73110 212.63527,730.80271 208.86679,731.40531 C 206.51809,731.78088 205.00000,731.62640 205.00000,731.01182 C 205.00000,730.45532 206.01250,729.94780 207.25000,729.88400 C 209.28332,729.77917 209.30740,729.72167 207.50000,729.28693 C 206.40000,729.02235 205.07250,728.39955 204.55000,727.90294 C 203.26756,726.68403 200.00000,726.75374 200.00000,728.00000 C 200.00000,728.55000 200.52500,729.00000 201.16667,729.00000 C 201.80833,729.00000 202.09774,729.23559 201.80979,729.52354 C 200.80905,730.52428 197.99991,728.77603 197.98469,727.14301 C 197.97222,725.80505 197.80535,725.75903 197.08596,726.89515 C 196.37461,728.01857 196.09663,727.92118 195.65869,726.39515 C 195.16237,724.66564 195.13167,724.67481 195.30742,726.50000 C 195.43147,727.78833 197.08512,729.26052 199.95462,730.63727 C 203.42670,732.30313 203.97811,732.86978 202.45462,733.20635 C 201.37958,733.44384 199.38436,733.24149 198.02080,732.75669 C 196.40627,732.18265 195.41808,732.24575 195.18746,732.93761 C 194.63762,734.58713 193.19641,734.19044 192.68933,732.25000 C 192.26891,730.64124 192.22264,730.64685 192.11600,732.31955 C 192.03371,733.61042 191.34624,734.04625 189.75000,733.81955 C 187.70604,733.52926 187.44782,732.81320 186.93016,726.00000 L 186.36032,718.50000 L 186.06500,724.50000 C 185.90258,727.80000 185.84304,731.24763 185.93270,732.16141 C 186.02235,733.07519 185.57008,734.14767 184.92766,734.54471 C 183.42612,735.47271 163.95435,737.92499 157.75000,737.96747 C 155.13750,737.98536 153.00000,738.41968 153.00000,738.93261 C 153.00000,740.46123 156.91530,741.23873 161.34876,740.59051 C 166.19246,739.88231 179.69881,738.74118 182.27161,738.82277 C 183.30776,738.85563 183.76254,738.42480 183.36710,737.78497 C 182.93611,737.08761 183.15887,736.98016 183.98152,737.48858 C 184.95128,738.08792 184.67898,738.74221 182.88603,740.12085 C 181.57371,741.12992 180.95000,741.97243 181.50000,741.99308 C 182.05000,742.01373 181.92104,742.39797 181.21341,742.84694 C 180.31855,743.41472 181.07971,744.13685 183.71341,745.21875 C 189.80761,747.72218 192.50000,748.85998 192.50000,748.93195 C 192.50000,748.96897 192.59489,746.74943 192.71086,743.99963 z M 189.00000,741.44098 C 189.00000,740.58352 189.45000,740.16008 190.00000,740.50000 C 190.55000,740.83992 191.00000,741.54148 191.00000,742.05902 C 191.00000,742.57656 190.55000,743.00000 190.00000,743.00000 C 189.45000,743.00000 189.00000,742.29844 189.00000,741.44098 z M 549.35971,745.95971 C 548.78755,745.38755 544.53505,744.74999 539.90971,744.54291 C 535.28437,744.33583 529.47500,743.91257 527.00000,743.60233 C 522.68788,743.06181 522.64613,743.08041 526.00000,744.04797 C 527.92500,744.60331 533.77500,745.42925 539.00000,745.88338 C 544.22500,746.33752 548.92750,746.77454 549.45000,746.85454 C 549.97250,746.93454 549.93187,746.53187 549.35971,745.95971 z M 437.48130,741.03026 C 438.11992,739.99695 431.31154,736.72949 429.66407,737.27864 C 429.12606,737.45798 430.21905,738.58607 432.09294,739.78551 C 435.93682,742.24591 436.63089,742.40624 437.48130,741.03026 z M 415.50000,732.00000 C 415.16008,731.45000 414.34602,731.00689 413.69098,731.01531 C 412.97537,731.02451 413.09871,731.41754 414.00000,732.00000 C 415.92112,733.24153 416.26730,733.24153 415.50000,732.00000 z M 469.91667,732.64154 C 469.68750,732.44439 467.70000,732.00714 465.50000,731.66988 C 462.77603,731.25230 461.97851,731.36176 463.00000,732.01303 C 464.36629,732.88412 470.88744,733.47670 469.91667,732.64154 z M 216.10806,726.50000 C 215.89250,725.95000 214.53232,725.00225 213.08544,724.39388 C 210.98247,723.50964 210.16916,723.59349 209.03104,724.81185 C 207.78031,726.15077 207.86509,726.26854 209.72884,725.78116 C 211.30920,725.36789 211.70682,725.60045 211.28761,726.69288 C 210.85801,727.81241 211.40807,728.08139 213.61243,727.82970 C 215.20059,727.64836 216.32363,727.05000 216.10806,726.50000 z M 192.60417,724.27083 C 192.27187,723.93854 192.03553,724.52917 192.07895,725.58333 C 192.12693,726.74828 192.36389,726.98523 192.68311,726.18750 C 192.97198,725.46563 192.93646,724.60312 192.60417,724.27083 z M 224.49833,722.40730 C 227.62882,719.02945 226.37518,716.86153 220.10991,714.81841 C 217.57446,713.99160 214.64515,712.94522 213.60032,712.49313 C 211.93010,711.77043 211.78142,711.99298 212.36938,714.33558 C 212.82859,716.16521 212.64050,717.01336 211.76905,717.04264 C 210.12418,717.09790 219.08610,724.99373 220.79775,724.99730 C 221.51151,724.99878 223.17677,723.83329 224.49833,722.40730 z M 192.66228,716.75000 C 192.38487,716.06250 192.15789,716.62500 192.15789,718.00000 C 192.15789,719.37500 192.38487,719.93750 192.66228,719.25000 C 192.93969,718.56250 192.93969,717.43750 192.66228,716.75000 z M 186.66228,712.75000 C 186.38487,712.06250 186.15789,712.62500 186.15789,714.00000 C 186.15789,715.37500 186.38487,715.93750 186.66228,715.25000 C 186.93969,714.56250 186.93969,713.43750 186.66228,712.75000 z M 191.60417,708.27083 C 191.27187,707.93854 191.03553,708.52917 191.07895,709.58333 C 191.12693,710.74828 191.36389,710.98523 191.68311,710.18750 C 191.97198,709.46563 191.93646,708.60312 191.60417,708.27083 z M 155.25000,708.33772 C 154.56250,708.06031 153.43750,708.06031 152.75000,708.33772 C 152.06250,708.61513 152.62500,708.84211 154.00000,708.84211 C 155.37500,708.84211 155.93750,708.61513 155.25000,708.33772 z M 186.18333,705.78333 C 185.46577,705.06577 185.00000,705.00673 185.00000,705.63333 C 185.00000,706.96811 186.18261,708.15072 186.85000,707.48333 C 187.13417,707.19917 186.83417,706.43417 186.18333,705.78333 z M 187.00000,702.44098 C 187.00000,701.58352 186.55000,701.16008 186.00000,701.50000 C 185.45000,701.83992 185.00000,702.54148 185.00000,703.05902 C 185.00000,703.57656 185.45000,704.00000 186.00000,704.00000 C 186.55000,704.00000 187.00000,703.29844 187.00000,702.44098 z M 193.00000,701.00000 C 193.00000,700.45000 192.55000,700.00000 192.00000,700.00000 C 191.45000,700.00000 191.00000,700.45000 191.00000,701.00000 C 191.00000,701.55000 191.45000,702.00000 192.00000,702.00000 C 192.55000,702.00000 193.00000,701.55000 193.00000,701.00000 z M 388.05289,686.44973 C 387.56835,684.82738 387.13323,684.25070 387.08595,685.16821 C 386.99000,687.03050 388.05737,690.27596 388.59047,689.74286 C 388.77934,689.55399 388.53743,688.07209 388.05289,686.44973 z M 149.26375,785.28242 C 150.78381,785.05256 153.03381,785.05871 154.26375,785.29607 C 155.49369,785.53343 154.25000,785.72149 151.50000,785.71399 C 148.75000,785.70648 147.74369,785.51227 149.26375,785.28242 z M 141.27083,784.39583 C 141.60313,784.06354 142.46562,784.02802 143.18750,784.31689 C 143.98523,784.63611 143.74828,784.87307 142.58333,784.92105 C 141.52917,784.96447 140.93854,784.72812 141.27083,784.39583 z M 140.75000,773.27660 C 142.53750,773.05478 145.46250,773.05478 147.25000,773.27660 C 149.03750,773.49843 147.57500,773.67993 144.00000,773.67993 C 140.42500,773.67993 138.96250,773.49843 140.75000,773.27660 z M 215.85972,770.89268 L 213.72686,769.28537 L 216.40942,768.61209 C 219.44793,767.84947 220.56497,768.31863 221.97245,770.94853 C 222.80978,772.51308 222.58746,772.76447 220.47412,772.64283 C 219.10928,772.56427 217.03280,771.77671 215.85972,770.89268 z M 203.27083,769.39583 C 203.60313,769.06354 204.46562,769.02802 205.18750,769.31689 C 205.98523,769.63611 205.74828,769.87307 204.58333,769.92105 C 203.52917,769.96447 202.93854,769.72812 203.27083,769.39583 z M 188.73097,759.34406 C 189.40800,759.07014 190.75800,759.05347 191.73097,759.30701 C 192.70394,759.56055 192.15000,759.78467 190.50000,759.80505 C 188.85000,759.82543 188.05394,759.61799 188.73097,759.34406 z M 14.957316,747.07975 C 15.710170,745.67304 15.750515,744.40235 15.081988,743.15320 C 14.416106,741.90898 14.441454,740.95855 15.159672,740.24033 C 16.454842,738.94516 15.423120,737.00000 13.440983,737.00000 C 12.648442,737.00000 12.000000,736.55000 12.000000,736.00000 C 12.000000,733.61623 15.990810,735.24906 17.962680,738.43961 C 20.674609,742.82761 19.698889,748.30856 16.113026,748.82975 C 14.098003,749.12263 13.968749,748.92691 14.957316,747.07975 z M 106.27083,719.39583 C 106.60313,719.06354 107.46563,719.02802 108.18750,719.31689 C 108.98523,719.63611 108.74828,719.87307 107.58333,719.92105 C 106.52917,719.96447 105.93854,719.72812 106.27083,719.39583 z M 370.50000,704.00000 C 370.16008,703.45000 370.35852,703.00000 370.94098,703.00000 C 371.52344,703.00000 372.00000,703.45000 372.00000,704.00000 C 372.00000,704.55000 371.80156,705.00000 371.55902,705.00000 C 371.31648,705.00000 370.83992,704.55000 370.50000,704.00000 z M 190.67055,695.41615 C 191.00483,694.54504 191.55844,694.20754 191.90080,694.66615 C 192.24316,695.12477 192.93053,695.83750 193.42830,696.25000 C 193.92607,696.66250 193.37246,697.00000 192.19805,697.00000 C 190.66063,697.00000 190.23294,696.55654 190.67055,695.41615 z M 354.55279,696.08541 C 354.23081,695.56444 354.39362,694.87476 354.91459,694.55279 C 355.43556,694.23081 356.12524,694.39362 356.44721,694.91459 C 356.76919,695.43556 356.60638,696.12524 356.08541,696.44721 C 355.56444,696.76919 354.87476,696.60638 354.55279,696.08541 z M 344.67701,677.19559 C 342.60369,674.90460 342.55358,674.00000 344.50000,674.00000 C 345.32500,674.00000 346.00000,673.46000 346.00000,672.80000 C 346.00000,670.73250 347.80196,673.32028 348.16354,675.90705 C 348.59029,678.96002 346.85439,679.60157 344.67701,677.19559 z M 327.15789,668.00000 C 327.15789,666.62500 327.38487,666.06250 327.66228,666.75000 C 327.93969,667.43750 327.93969,668.56250 327.66228,669.25000 C 327.38487,669.93750 327.15789,669.37500 327.15789,668.00000 z M 260.00000,468.28681 C 257.52500,468.07745 255.03237,467.29600 254.46081,466.55026 C 253.88926,465.80451 252.31426,464.98691 250.96081,464.73336 C 249.14013,464.39228 249.45381,464.23694 252.16667,464.13618 C 254.18333,464.06128 256.01117,463.46648 256.22853,462.81440 C 256.49752,462.00743 260.27661,461.56942 268.06187,461.44287 C 274.35284,461.34061 285.35000,460.95573 292.50000,460.58758 C 299.65000,460.21942 309.55000,459.71008 314.50000,459.45571 C 319.45000,459.20133 325.97500,458.52441 329.00000,457.95144 C 332.02500,457.37846 335.59722,456.93196 336.93828,456.95921 C 338.27933,456.98646 339.63088,456.59725 339.94172,456.09430 C 340.43495,455.29624 343.61531,454.37285 360.98025,449.98597 C 363.67709,449.30467 364.85886,449.46728 366.23025,450.70837 C 367.20361,451.58925 368.00000,452.86709 368.00000,453.54800 C 368.00000,454.22891 368.73865,455.06947 369.64144,455.41590 C 371.02407,455.94647 371.08044,455.80185 369.99894,454.49873 C 368.28034,452.42794 369.33220,451.57224 371.90424,452.94875 C 373.67592,453.89692 373.79964,454.34797 372.74934,456.02977 C 372.07260,457.11340 370.61465,458.01310 369.50945,458.02912 C 368.40425,458.04513 364.35000,458.93203 360.50000,460.00000 C 356.65000,461.06797 352.01094,461.95487 350.19098,461.97088 C 348.26045,461.98787 347.13771,462.41381 347.49589,462.99334 C 347.83894,463.54842 347.09287,463.94930 345.80490,463.90195 C 344.53721,463.85534 339.67500,464.33123 335.00000,464.95948 C 330.32500,465.58773 323.80000,466.29123 320.50000,466.52282 C 317.20000,466.75440 311.80000,467.19700 308.50000,467.50636 C 300.83155,468.22524 265.91449,468.78712 260.00000,468.28681 z M 373.97251,447.35370 C 367.47158,443.02509 367.35414,439.31754 373.52791,433.31719 C 376.01827,430.89680 378.49327,429.18682 379.02791,429.51725 C 381.13653,430.82045 379.30418,449.00000 377.06422,449.00000 C 376.72366,449.00000 375.33238,448.25916 373.97251,447.35370 z M 180.46669,438.62641 C 180.09117,436.12232 180.17005,432.49075 180.64197,430.55625 L 181.50000,427.03900 L 186.25000,431.41107 C 188.86250,433.81571 191.00000,436.49656 191.00000,437.36852 C 191.00000,439.19805 187.69678,441.57048 183.82472,442.52193 C 181.28204,443.14673 181.11559,442.95363 180.46669,438.62641 z M 249.00000,417.96905 C 245.42500,417.49589 240.92500,416.64595 239.00000,416.08029 C 237.07500,415.51463 232.00484,414.31829 227.73299,413.42175 L 219.96597,411.79167 L 217.85984,406.89583 C 216.70147,404.20313 215.35913,402.00000 214.87686,402.00000 C 214.39459,402.00000 214.00000,401.32973 214.00000,400.51052 C 214.00000,398.13890 208.67307,385.48080 208.23194,386.80419 C 207.67055,388.48834 206.00000,388.29584 206.00000,386.54700 C 206.00000,385.23714 211.47758,383.02018 214.75000,383.00558 C 215.43750,383.00251 216.00000,382.55000 216.00000,382.00000 C 216.00000,380.74918 213.86807,380.71946 210.69450,381.92605 C 208.66689,382.69695 208.09557,382.48752 207.28449,380.67605 C 205.69365,377.12304 201.19378,362.97667 199.48833,356.16709 C 198.46968,352.09975 196.39933,347.74252 193.70114,343.98743 C 191.39051,340.77173 188.75894,336.87154 187.85319,335.32035 C 186.94744,333.76916 182.09670,325.78814 177.07376,317.58476 C 172.05082,309.38138 166.54658,300.05305 164.84211,296.85514 C 163.13764,293.65723 161.35604,291.27996 160.88299,291.57232 C 160.40995,291.86467 160.27483,291.44738 160.58274,290.64499 C 160.89064,289.84260 160.08205,287.45672 158.78586,285.34305 C 157.48967,283.22937 155.88068,280.23713 155.21032,278.69361 C 154.53997,277.15010 153.54341,276.16416 152.99575,276.50263 C 152.44809,276.84110 152.00000,276.63290 152.00000,276.03996 C 152.00000,275.38848 151.00770,275.21095 149.49224,275.59130 C 147.30463,276.14036 147.01738,275.91937 147.24224,273.86036 C 147.43184,272.12411 147.02831,271.53822 145.71608,271.64454 C 144.36001,271.75442 144.08591,271.30468 144.57322,269.76931 C 144.99961,268.42586 144.84354,267.97866 144.10713,268.43379 C 143.48629,268.81749 143.00000,268.46169 143.00000,267.62374 C 143.00000,266.80189 141.46786,265.57543 139.59526,264.89828 C 137.22862,264.04250 136.36573,263.21049 136.76519,262.16951 C 137.16796,261.11991 136.94652,260.91502 136.02495,261.48458 C 135.02654,262.10163 134.83190,261.65970 135.21634,259.64862 C 135.60585,257.61103 135.32436,257.00000 133.99619,257.00000 C 131.18739,257.00000 127.11693,253.14694 124.98742,248.47239 C 122.68847,243.42588 122.61861,243.00000 124.08971,243.00000 C 124.68905,243.00000 125.95256,242.04520 126.89752,240.87822 C 128.93037,238.36776 135.86817,237.49288 136.69323,239.64295 C 136.97722,240.38301 137.66273,240.70845 138.21659,240.36614 C 138.77045,240.02384 139.65808,240.36392 140.18911,241.12188 C 140.81966,242.02190 140.90978,239.55116 140.44887,234.00000 C 138.76856,213.76226 140.53372,194.59624 144.68540,188.00000 C 146.81299,184.61967 151.17465,180.00000 152.23861,180.00000 C 152.71405,180.00000 151.96004,181.05930 150.56304,182.35399 C 147.12986,185.53576 142.91071,194.94256 143.64957,197.76794 C 144.43212,200.76043 145.01948,200.60217 148.27541,196.52156 C 149.80188,194.60844 152.05188,192.50978 153.27541,191.85787 C 155.79013,190.51797 155.91597,190.30051 149.61959,198.17538 C 146.34491,202.27101 145.96453,203.29400 146.55198,206.42538 C 146.92081,208.39142 147.48538,210.00000 147.80657,210.00000 C 148.12777,210.00000 149.65269,208.79081 151.19528,207.31291 C 153.72070,204.89341 154.00000,204.81966 154.00000,206.57236 C 154.00000,207.64296 153.10000,209.08097 152.00000,209.76793 C 149.45038,211.36019 149.48184,213.46800 152.15968,220.46562 C 153.99700,225.26683 154.52555,225.90302 155.70078,224.72780 C 156.75594,223.67264 156.83631,222.69966 156.04110,220.60809 C 155.46849,219.10203 155.03171,216.66160 155.07046,215.18490 C 155.13320,212.79414 155.29843,212.92998 156.57865,216.42486 C 158.44268,221.51347 158.72190,221.72290 160.58131,219.42700 C 161.73945,217.99698 161.69420,218.31615 160.40585,220.66453 C 158.71210,223.75189 158.73840,224.02014 161.48452,231.66453 C 168.44373,251.03693 187.75157,293.57779 197.03831,310.00000 C 200.67115,316.42413 208.16829,329.00022 208.36473,328.99952 C 208.43913,328.99926 208.60332,326.60606 208.72960,323.68131 C 208.94519,318.68813 208.37368,317.26912 199.36593,300.43178 C 185.18593,273.92646 172.58065,248.37331 170.04844,241.00000 C 167.48152,233.52565 166.18956,224.00000 167.74273,224.00000 C 168.69472,224.00000 182.92188,254.28584 187.23788,265.50000 C 190.40244,273.72238 208.79719,311.00128 209.68130,310.98394 C 210.13158,310.97511 211.61470,307.48761 212.97711,303.23394 C 215.06403,296.71825 216.32770,294.61752 220.99942,289.89769 C 225.60680,285.24286 227.31549,284.17978 231.10265,283.61186 C 235.02352,283.02389 236.48052,283.35960 241.52557,286.01345 C 248.58311,289.72593 258.85428,298.55396 264.15066,305.45962 C 266.27684,308.23183 268.36297,310.95000 268.78650,311.50000 C 270.85960,314.19214 275.03991,322.12820 277.21448,327.50000 C 280.95113,336.73057 282.33341,347.11807 281.79804,361.94437 C 281.44654,371.67854 281.61778,374.73218 282.47522,374.02057 C 283.27861,373.35381 284.00262,374.11833 284.88891,376.56933 L 286.15497,380.07055 L 295.82748,379.78528 L 305.50000,379.50000 L 306.01357,375.00000 C 306.85698,367.60978 305.37446,345.45479 303.03581,330.50000 C 301.83168,322.80000 300.76852,311.88755 300.67324,306.25010 C 300.51295,296.76654 299.92292,294.12582 298.66228,297.25000 C 298.38487,297.93750 298.12237,296.79667 298.07895,294.71482 C 298.03553,292.63297 297.27325,289.82047 296.38499,288.46482 C 292.78420,282.96932 288.52880,286.35584 278.74878,302.50000 C 277.74922,304.15000 276.39818,306.73750 275.74646,308.25000 C 275.09475,309.76250 274.02378,311.00000 273.36654,311.00000 C 272.70929,311.00000 270.72398,308.63750 268.95474,305.75000 C 267.18549,302.86250 265.42414,300.27500 265.04063,300.00000 C 264.36160,299.51310 261.00000,293.09656 261.00000,292.28734 C 261.00000,292.06439 261.40803,292.13414 261.90674,292.44236 C 262.40545,292.75058 262.57796,292.10214 262.29011,291.00138 C 261.67081,288.63317 260.00000,288.31654 260.00000,290.56739 C 260.00000,292.49348 256.50916,291.65769 253.50000,289.01113 C 250.68448,286.53487 241.88856,281.76565 239.50000,281.42021 C 238.40000,281.26113 235.47500,280.83771 233.00000,280.47928 C 228.83809,279.87656 228.18377,280.10025 224.29095,283.45667 L 220.08191,287.08574 L 217.58751,282.29287 C 215.82978,278.91545 215.07937,278.12757 215.04656,279.62500 C 214.97241,283.00939 216.17693,288.00869 216.95122,287.53015 C 217.93182,286.92410 217.51043,289.93893 216.14332,293.31017 C 215.44480,295.03271 214.55618,295.84374 213.84736,295.40567 C 213.21135,295.01259 212.95582,295.11950 213.27951,295.64324 C 213.60320,296.16698 213.45462,297.24901 212.94933,298.04775 C 212.26342,299.13201 212.02675,298.78821 212.01531,296.69098 C 212.00514,294.82484 211.61248,294.12147 210.84549,294.59549 C 210.12445,295.04112 209.96267,294.86942 210.41459,294.13820 C 210.81257,293.49425 211.55372,293.22418 212.06158,293.53806 C 213.04360,294.14498 209.26842,285.90466 196.00942,258.50000 C 187.24570,240.38651 182.87549,231.08864 179.92589,224.28134 C 178.56888,221.14955 177.37684,219.90326 175.29897,219.44387 C 170.64259,218.41441 170.35342,218.16147 173.73857,218.07895 C 175.51978,218.03553 177.76978,218.65086 178.73857,219.44635 C 182.05455,222.16917 184.59500,224.50050 183.27296,223.60750 C 180.30150,221.60036 180.94626,224.52088 185.73017,234.73784 C 202.48379,270.51843 206.27989,277.81743 207.53338,276.66020 C 208.22456,276.02209 208.51247,275.05000 208.17316,274.50000 C 207.83385,273.95000 207.47282,273.05000 207.37086,272.50000 C 207.26890,271.95000 203.05011,262.58114 197.99576,251.68031 C 192.94142,240.77948 189.06878,231.59789 189.38990,231.27677 C 189.71101,230.95565 190.68348,232.44951 191.55092,234.59646 C 195.18257,243.58485 206.51064,267.67059 208.08407,269.74922 C 209.43521,271.53421 209.90282,271.69562 210.34964,270.53125 C 210.65929,269.72429 210.45855,268.78340 209.90354,268.44038 C 209.34853,268.09737 209.07869,267.29546 209.30389,266.65836 C 209.52910,266.02126 207.29909,260.66250 204.34832,254.75000 C 201.39756,248.83750 199.18053,244.00000 199.42160,244.00000 C 199.66267,244.00000 201.66600,247.26250 203.87344,251.25000 C 211.31495,264.69225 211.22024,262.61441 203.72530,248.00000 C 197.18716,235.25126 188.95005,220.38652 182.80661,210.25000 C 181.72326,208.46250 181.23391,207.00000 181.71917,207.00000 C 182.20444,207.00000 183.58619,208.91250 184.78974,211.25000 C 185.99329,213.58750 188.69454,218.42500 190.79253,222.00000 C 194.36604,228.08933 200.20296,238.61975 205.75840,249.00000 C 207.08300,251.47500 208.60228,253.95000 209.13457,254.50000 C 210.51002,255.92121 209.11404,247.22288 207.38466,243.59636 C 205.73619,240.13952 205.67915,239.68367 206.99698,240.49813 C 207.59806,240.86962 207.55010,239.99958 206.87621,238.30715 C 206.26144,236.76322 205.56485,233.92543 205.32823,232.00096 C 205.09161,230.07648 204.27666,227.25641 203.51725,225.73412 C 202.75783,224.21183 202.55578,223.22546 203.06824,223.54218 C 203.58071,223.85890 204.00000,223.58638 204.00000,222.93657 C 204.00000,222.10463 204.49128,222.16113 205.66066,223.12756 C 207.17752,224.38117 207.20215,224.30864 205.94502,222.28989 C 205.13162,220.98370 204.30485,220.50675 203.92353,221.12373 C 203.53212,221.75704 203.03141,221.52424 202.65062,220.53191 C 202.24408,219.47248 202.41693,219.13964 203.14119,219.58726 C 203.75624,219.96738 204.08415,219.87825 203.86988,219.38920 C 200.79107,212.36199 198.50972,208.74127 196.70229,208.01351 C 195.49103,207.52581 195.07406,207.09825 195.77568,207.06339 C 196.75088,207.01493 196.67782,206.23449 195.46549,203.75000 L 193.87961,200.50000 L 195.91757,203.00000 C 197.03845,204.37500 197.96553,205.99027 197.97776,206.58948 C 198.00132,207.74361 202.95174,210.38160 203.69646,209.63687 C 204.42381,208.90952 199.04620,199.00000 197.92414,199.00000 C 197.35094,199.00000 197.15433,198.55930 197.48723,198.02067 C 197.82012,197.48203 197.61249,196.01953 197.02582,194.77067 C 196.08109,192.75955 196.10438,192.71649 197.22958,194.39395 C 200.07821,198.64071 202.87217,201.45779 203.55743,200.77417 C 203.95759,200.37496 203.70675,199.35158 203.00000,198.50000 C 202.29325,197.64842 201.92845,196.73822 202.18933,196.47734 C 202.45021,196.21646 203.26537,197.12734 204.00081,198.50151 C 204.73624,199.87568 205.73848,201.00000 206.22800,201.00000 C 206.71752,201.00000 206.88248,201.38114 206.59457,201.84698 C 206.30667,202.31281 207.40511,203.97200 209.03556,205.53407 C 210.66600,207.09613 211.98569,207.95249 211.96820,207.43709 C 211.92740,206.23509 209.79140,203.42126 208.52462,202.90077 C 207.46404,202.46499 206.97715,198.27300 207.74972,196.22897 C 208.01545,195.52591 209.11911,196.75476 210.21956,198.97897 C 211.31376,201.19054 212.51231,203.00000 212.88301,203.00000 C 213.25372,203.00000 214.34721,199.93259 215.31299,196.18353 C 217.24166,188.69662 221.72087,177.13132 225.54349,169.76841 C 226.89457,167.16603 228.00000,163.88380 228.00000,162.47457 C 228.00000,160.62458 228.46726,159.99401 229.68093,160.20616 C 230.68792,160.38219 232.30599,159.09673 233.71669,157.00000 C 237.46105,151.43472 244.84151,144.30419 248.83128,142.39725 C 250.84907,141.43282 254.78397,140.44970 257.57548,140.21252 C 263.69176,139.69285 269.52495,142.28589 274.33766,147.66383 C 278.62518,152.45488 285.15992,163.93223 284.34811,165.24576 C 283.96110,165.87196 284.16555,166.01572 284.84549,165.59549 C 285.48047,165.20305 286.05625,165.35852 286.12500,165.94098 C 286.30541,167.46941 286.52443,168.15314 287.90576,171.50000 C 292.61992,182.92203 295.70943,197.08519 296.68579,211.75000 C 297.02451,216.83750 297.72375,221.00000 298.23964,221.00000 C 298.75732,221.00000 299.02582,223.69910 298.83882,227.02342 C 298.55057,232.14787 298.69304,232.78217 299.79343,231.27342 C 300.50482,230.29804 301.34110,228.48750 301.65184,227.25000 C 301.96258,226.01250 302.61803,225.00000 303.10841,225.00000 C 303.59878,225.00000 304.00000,223.94474 304.00000,222.65499 C 304.00000,221.36523 304.84782,219.54270 305.88405,218.60493 C 306.92028,217.66715 308.33201,214.88582 309.02123,212.42418 C 309.71044,209.96254 310.66262,207.70851 311.13717,207.41522 C 311.61173,207.12193 312.00000,205.78352 312.00000,204.44098 C 312.00000,203.09844 312.45000,202.00000 313.00000,202.00000 C 313.55000,202.00000 314.00000,201.30657 314.00000,200.45904 C 314.00000,197.70687 319.91132,187.47291 323.24848,184.44764 C 328.52158,179.66735 330.51711,178.85242 333.71693,180.17255 C 335.24762,180.80405 337.15080,181.20857 337.94622,181.07147 C 339.18299,180.85831 339.19230,181.06336 338.01053,182.48732 C 336.83430,183.90458 336.83520,184.28012 338.01656,185.01023 C 338.77993,185.48202 339.87599,185.60671 340.45225,185.28731 C 341.02851,184.96792 340.93750,185.31261 340.25000,186.05330 C 338.50825,187.92979 338.68299,188.68384 341.00000,189.28975 C 342.10000,189.57741 343.00000,190.33521 343.00000,190.97377 C 343.00000,191.70610 342.20748,191.88324 340.85359,191.45353 C 338.98937,190.86185 338.78667,191.07621 339.31174,193.08411 C 339.90646,195.35831 338.59838,198.00000 336.87756,198.00000 C 336.39490,198.00000 336.00000,197.23500 336.00000,196.30000 C 336.00000,195.13069 335.67759,194.92241 334.96722,195.63278 C 333.58923,197.01077 334.74804,199.80611 336.85704,200.19153 C 338.41874,200.47693 338.41242,200.63087 336.77249,202.25000 C 335.08333,203.91772 335.00000,203.90597 335.00000,202.00000 C 335.00000,199.30560 333.15212,199.46120 332.03116,202.25000 C 331.13952,204.46830 331.12588,204.46990 331.06339,202.36350 C 330.96215,198.95128 325.12607,198.42098 322.46244,201.58198 C 320.22496,204.23724 318.41096,204.68403 317.72024,202.75000 C 317.47470,202.06250 316.94970,201.80000 316.55357,202.16667 C 316.15744,202.53333 316.75442,203.75442 317.88019,204.88019 C 319.01616,206.01616 320.19206,206.49826 320.52254,205.96353 C 321.46469,204.43910 323.00000,204.84189 323.00000,206.61350 C 323.00000,207.83861 322.33805,208.09633 320.25000,207.68414 C 313.30349,206.31289 313.53368,206.22561 313.84261,210.11370 C 314.00140,212.11202 313.54198,214.34709 312.81487,215.11370 C 312.00053,215.97228 311.38222,219.73567 311.19059,225.00000 C 311.02042,229.67500 310.72225,235.74608 310.52799,238.49129 C 310.33373,241.23651 310.77253,244.91315 311.50308,246.66162 C 312.29117,248.54777 312.65369,252.00820 312.39447,255.17033 C 312.15417,258.10165 311.80071,262.58566 311.60900,265.13480 C 311.41728,267.68394 311.03918,270.15894 310.76877,270.63480 C 310.24077,271.56394 312.17467,281.28785 313.49951,284.36540 C 314.18772,285.96406 313.97801,286.12780 312.03296,285.51046 C 310.35755,284.97871 309.87999,285.14485 310.20881,286.14506 C 310.45379,286.89028 311.85721,287.64241 313.32750,287.81646 C 314.79780,287.99051 316.48511,289.03791 317.07708,290.14402 C 317.67288,291.25729 318.77450,291.91677 319.54467,291.62123 C 320.30987,291.32760 321.20192,291.51769 321.52699,292.04367 C 322.29106,293.27995 327.15475,293.27186 330.42406,292.02887 C 333.44008,290.88218 342.00000,282.22478 342.00000,280.32110 C 342.00000,279.59449 342.44143,279.00000 342.98095,279.00000 C 343.52047,279.00000 344.25328,277.76250 344.60941,276.25000 C 344.96554,274.73750 346.09428,272.10470 347.11772,270.39933 C 348.14117,268.69396 349.62087,264.64396 350.40595,261.39933 L 351.83337,255.50000 L 351.91669,260.87166 C 351.96251,263.82608 351.30497,270.92413 350.45548,276.64512 C 349.60600,282.36611 349.21365,287.53667 349.58360,288.13526 C 349.95355,288.73385 349.69093,289.57298 349.00000,290.00000 C 348.22280,290.48033 348.06854,291.29569 348.59545,292.13820 C 349.63916,293.80703 349.68123,295.23135 348.85718,301.00000 C 348.48983,303.57161 348.64754,306.03338 349.22520,306.74467 C 349.78117,307.42924 350.00007,308.89174 349.71164,309.99467 C 349.06588,312.46406 350.53162,312.63353 351.91990,310.25000 C 352.48051,309.28750 352.95287,308.92100 352.96959,309.43555 C 352.98632,309.95010 352.05285,311.37929 350.89523,312.61152 C 348.72156,314.92529 349.03537,317.00000 351.55902,317.00000 C 352.44734,317.00000 353.00000,315.99422 353.00000,314.37756 C 353.00000,312.07665 353.19806,311.91949 354.61534,313.09572 C 356.01829,314.26007 356.17786,314.17755 355.82894,312.46817 C 355.60798,311.38568 356.01351,310.05000 356.73012,309.50000 C 357.44672,308.95000 358.23102,306.93328 358.47301,305.01840 C 358.71499,303.10352 359.57773,301.05072 360.39020,300.45663 C 361.20266,299.86254 362.17103,298.16676 362.54211,296.68823 C 362.91320,295.20971 363.56925,294.00000 364.00000,294.00000 C 364.89725,294.00000 366.42865,289.12192 366.11906,287.25000 C 366.00536,286.56250 366.33803,286.00000 366.85834,286.00000 C 368.42094,286.00000 370.06500,279.86342 369.42145,276.43300 C 369.05955,274.50389 369.26997,272.95119 369.95027,272.53073 C 370.73818,272.04378 370.88905,272.69012 370.44872,274.66621 L 369.81729,277.50000 L 371.81865,274.61278 C 372.91939,273.02481 374.59662,269.87481 375.54582,267.61278 C 376.49502,265.35075 377.93508,261.92500 378.74595,260.00000 C 379.55681,258.07500 382.88858,251.10000 386.14986,244.50000 C 391.28674,234.10428 391.84020,232.45360 390.28974,232.15294 C 387.48155,231.60837 386.55023,230.24686 387.88544,228.63803 C 388.58087,227.80009 388.81198,226.09905 388.43465,224.59565 C 388.02684,222.97081 388.19774,222.00000 388.89159,222.00000 C 389.50122,222.00000 390.00000,220.82686 390.00000,219.39301 C 390.00000,217.48653 390.40306,216.94069 391.50000,217.36163 C 392.32500,217.67821 393.00000,217.55014 393.00000,217.07702 C 393.00000,216.60391 391.82716,215.92245 390.39369,215.56267 C 388.51928,215.09223 387.42638,215.40221 386.50190,216.66652 C 385.41365,218.15478 384.96968,218.21973 383.60821,217.08981 C 382.72370,216.35572 382.00689,215.24771 382.01531,214.62756 C 382.02454,213.94789 382.36649,214.02984 382.87615,214.83385 C 383.57508,215.93644 383.81395,215.92722 384.25394,214.78064 C 384.58353,213.92173 383.68461,212.90597 381.89310,212.11297 C 379.09556,210.87466 377.95552,209.00000 380.00000,209.00000 C 380.55000,209.00000 381.00000,209.47656 381.00000,210.05902 C 381.00000,210.64148 381.45000,210.83992 382.00000,210.50000 C 382.55000,210.16008 383.00000,209.00852 383.00000,207.94098 C 383.00000,206.87344 382.55000,206.00000 382.00000,206.00000 C 381.45000,206.00000 381.00000,206.45000 381.00000,207.00000 C 381.00000,208.70278 379.17060,208.09953 378.72556,206.25000 C 378.40894,204.93415 377.88690,205.36831 376.62131,208.00000 L 374.93815,211.50000 L 375.52952,208.33657 C 376.00538,205.79098 375.74598,205.05415 374.20132,204.56390 C 373.14556,204.22881 371.54336,204.23800 370.64088,204.58431 C 369.37830,205.06881 369.00000,204.61295 369.00000,202.60699 C 369.00000,201.17314 368.50273,200.00000 367.89496,200.00000 C 367.16112,200.00000 367.00508,198.57240 367.43044,195.75000 C 367.78272,193.41250 368.42174,189.02500 368.85049,186.00000 C 369.88443,178.70507 371.98946,174.00000 374.21924,174.00000 C 375.19866,174.00000 376.00000,173.35156 376.00000,172.55902 C 376.00000,170.33568 378.15391,169.52363 379.18137,171.35960 C 380.35668,173.45978 382.84116,173.45373 385.17126,171.34501 C 386.88366,169.79531 387.00000,169.81439 387.00000,171.64501 C 387.00000,172.72026 386.43750,174.20623 385.75000,174.94718 C 384.72810,176.04852 384.82882,176.17835 386.30194,175.65863 C 387.38022,175.27822 387.85676,175.42274 387.48856,176.01852 C 387.15013,176.56610 387.53020,177.26623 388.33316,177.57435 C 389.14268,177.88499 390.08811,180.10190 390.45530,182.55048 C 390.81951,184.97922 391.65357,187.31144 392.30875,187.73319 C 394.05804,188.85921 396.00000,192.67513 396.00000,194.98643 C 396.00000,196.09389 396.50248,197.00000 397.11663,197.00000 C 397.73078,197.00000 398.00671,197.86633 397.72982,198.92518 C 397.37664,200.27573 397.64031,200.69152 398.61318,200.31819 C 399.37593,200.02550 400.00000,198.70917 400.00000,197.39301 C 400.00000,196.07686 400.39375,195.00000 400.87500,195.00000 C 401.35625,195.00000 402.02120,193.76250 402.35267,192.25000 C 403.47014,187.15093 406.31547,184.67870 411.41215,184.37846 C 413.96467,184.22810 415.80881,184.50034 415.51024,184.98344 C 414.40347,186.77423 417.19326,187.13507 419.06301,185.44297 C 422.32639,182.48965 421.53832,179.54650 416.92739,177.46726 C 411.24019,174.90269 409.65482,172.45644 411.67843,169.36803 C 412.53180,168.06561 413.96577,166.99311 414.86501,166.98469 C 416.18957,166.97228 416.23699,166.80281 415.11474,166.09207 C 414.00286,165.38791 413.95353,164.57207 414.86474,161.95816 C 415.48913,160.16703 416.00000,157.63989 416.00000,156.34230 C 416.00000,154.23338 415.78779,154.11558 414.00000,155.23207 C 412.40084,156.23077 411.59916,156.23077 410.00000,155.23207 C 408.33189,154.19032 408.00000,154.23338 408.00000,155.49153 C 408.00000,156.32119 407.55000,157.00000 407.00000,157.00000 C 406.45000,157.00000 406.00000,156.12656 406.00000,155.05902 C 406.00000,153.99148 406.45000,152.83992 407.00000,152.50000 C 408.69152,151.45458 408.11519,150.24573 405.62759,149.62138 C 402.82478,148.91792 402.13125,146.16096 402.60902,137.62185 C 403.15816,127.80728 407.39831,124.37907 413.27287,129.00000 C 416.51636,131.55133 417.52593,131.51492 419.44330,128.77749 C 420.93985,126.64086 421.00000,126.63314 421.00000,128.57749 C 421.00000,129.68987 420.44126,131.15874 419.75836,131.84164 C 418.76950,132.83050 418.78304,133.24788 419.82484,133.89175 C 420.54431,134.33640 421.24722,135.47865 421.38686,136.43007 C 421.52650,137.38150 422.13497,138.46538 422.73902,138.83871 C 423.34307,139.21203 423.98640,141.08854 424.16865,143.00874 C 424.41676,145.62294 423.96565,146.93357 422.37294,148.22588 C 421.20306,149.17511 420.00769,150.86261 419.71656,151.97588 C 419.28685,153.61907 419.66939,154.00000 421.74923,154.00000 C 423.15832,154.00000 425.78617,155.12500 427.58889,156.50000 C 431.62091,159.57537 432.67012,159.61050 435.05644,156.75000 C 436.08880,155.51250 436.94843,155.04497 436.96673,155.71104 C 436.98503,156.37712 435.98750,157.87274 434.75000,159.03465 C 433.31036,160.38634 433.04024,161.03065 434.00000,160.82360 C 435.10487,160.58524 435.44219,161.28443 435.28054,163.47786 L 435.06108,166.45572 L 437.04280,163.47786 C 438.13275,161.84004 440.65747,157.21757 442.65329,153.20572 L 446.28206,145.91144 L 444.18284,143.95572 C 441.62930,141.57673 440.81857,141.48428 441.20616,143.61627 C 441.37453,144.54237 440.54569,145.59375 439.26515,146.07844 C 437.31854,146.81524 437.16877,146.70262 438.10389,145.20525 C 438.82347,144.05302 438.89948,141.01537 438.33440,135.99308 C 437.87071,131.87189 437.64025,127.46325 437.82227,126.19612 C 438.24658,123.24236 442.93904,121.19614 444.47411,123.29549 C 445.87844,125.21601 449.68271,126.32241 450.47486,125.04068 C 450.82861,124.46830 451.63148,124.00000 452.25902,124.00000 C 453.03705,124.00000 453.07446,124.32554 452.37662,125.02338 C 451.81377,125.58623 451.55182,127.39969 451.79451,129.05328 C 452.19961,131.81342 452.34644,131.91394 453.58609,130.27991 C 454.32875,129.30096 454.95070,127.89301 454.96820,127.15113 C 454.98569,126.40925 455.62682,124.38425 456.39294,122.65113 C 457.15905,120.91801 458.06965,118.64809 458.41648,117.60687 C 458.76331,116.56565 459.26102,115.92769 459.52250,116.18917 C 460.10922,116.77588 457.38963,136.56055 456.53138,137.94923 C 456.19012,138.50139 455.75011,140.22371 455.55358,141.77660 C 454.61444,149.19731 449.57916,162.34863 442.73664,175.25232 C 438.00783,184.16997 435.72640,187.98762 430.90792,195.04603 C 430.32744,195.89635 428.64819,198.42965 427.17625,200.67558 C 425.70431,202.92152 419.53921,212.12581 413.47602,221.12956 C 402.24261,237.81100 396.76481,246.69536 390.28634,258.74061 C 384.84355,268.86023 378.00000,282.85452 378.00000,283.86480 C 378.00000,284.35447 377.32995,285.31120 376.51101,285.99086 C 375.69207,286.67053 375.25731,287.60732 375.54489,288.07263 C 375.83246,288.53794 375.62293,289.72445 375.07925,290.70932 C 373.61108,293.36890 365.00000,313.77445 365.00000,314.59398 C 365.00000,314.98238 363.91038,317.59513 362.57862,320.40009 C 358.80422,328.34973 355.00000,336.99669 355.00000,337.62621 C 355.00000,337.94055 354.34094,339.61575 353.53542,341.34887 C 350.03061,348.88965 341.71082,369.84319 340.76952,373.50000 C 339.61223,377.99592 337.55739,380.15112 335.26635,379.27197 C 334.23834,378.87748 333.88289,379.14939 334.19615,380.09065 C 334.45412,380.86579 336.51440,382.18401 338.77455,383.02002 L 342.88390,384.54004 L 339.97055,388.87792 C 338.36820,391.26376 336.14432,394.00754 335.02859,394.97520 C 333.91287,395.94287 333.00000,397.08905 333.00000,397.52228 C 333.00000,397.95551 333.78750,397.61846 334.75000,396.77327 C 337.34142,394.49769 341.00000,393.57210 341.00000,395.19207 C 341.00000,395.92183 341.90000,397.08097 343.00000,397.76793 C 344.10000,398.45489 345.00000,399.48969 345.00000,400.06749 C 345.00000,400.64529 344.49162,400.80384 343.87027,400.41982 C 343.18453,399.99601 342.92253,400.26758 343.20360,401.11080 C 343.45829,401.87486 344.17708,402.50000 344.80091,402.50000 C 345.42475,402.50000 346.83458,403.27011 347.93387,404.21135 C 349.85160,405.85336 350.00347,405.80270 351.68190,402.96135 C 352.64402,401.33261 353.75387,400.00000 354.14822,400.00000 C 354.54257,400.00000 355.12237,399.18981 355.43666,398.19958 C 356.03389,396.31785 367.00000,384.16175 367.00000,385.38143 C 367.00000,385.76608 368.78218,384.26262 370.96040,382.04040 C 375.41687,377.49391 375.56494,377.42387 376.35702,379.48800 C 376.68321,380.33803 376.41769,380.87396 375.73775,380.73800 C 375.08310,380.60710 374.39300,381.51250 374.20419,382.75000 C 374.01538,383.98750 373.16210,385.00000 372.30800,385.00000 C 371.04104,385.00000 370.98433,385.27619 372.00000,386.50000 C 372.99708,387.70140 372.98827,388.00000 371.95578,388.00000 C 371.24677,388.00000 370.97843,388.31177 371.35948,388.69282 C 371.74053,389.07387 374.62803,386.90698 377.77615,383.87752 C 383.29345,378.56816 385.88876,376.49111 394.50327,370.49067 C 398.28216,367.85848 398.16526,367.74167 393.58596,369.57400 C 392.14002,370.15257 391.87210,370.01597 392.49046,369.01543 C 393.03917,368.12761 392.92304,367.92953 392.13820,368.41459 C 391.49425,368.81257 391.16130,369.45198 391.39833,369.83549 C 391.63535,370.21900 390.68084,371.07475 389.27719,371.73717 C 387.87355,372.39958 387.00806,372.65861 387.35388,372.31279 C 387.69970,371.96696 387.48145,371.08011 386.86888,370.34201 C 386.03993,369.34318 386.06928,369.00000 386.98365,369.00000 C 387.65935,369.00000 389.91671,367.65000 392.00000,366.00000 C 394.08329,364.35000 396.48399,363.00000 397.33489,363.00000 C 400.12949,363.00000 400.21649,360.95813 397.51251,358.83118 C 395.56275,357.29750 395.15304,356.44696 395.97032,355.62968 C 396.78760,354.81240 397.30819,354.88062 397.92984,355.88647 C 398.39544,356.63984 399.20856,356.98914 399.73675,356.66270 C 400.26495,356.33625 401.64645,356.95360 402.80674,358.03458 C 403.96704,359.11556 405.45493,360.00000 406.11317,360.00000 C 406.83785,360.00000 406.59596,360.78898 405.50000,362.00000 C 402.90032,364.87262 404.60099,364.44890 412.00000,360.38054 C 415.57500,358.41482 420.57672,355.73189 423.11492,354.41847 C 425.65313,353.10505 428.30622,351.33595 429.01068,350.48714 C 429.71513,349.63832 427.54968,350.49360 424.19856,352.38777 C 416.81282,356.56243 411.82193,358.30943 416.50000,355.08255 C 418.15000,353.94439 419.89626,353.01021 420.38057,353.00659 C 420.86488,353.00297 423.45343,351.42500 426.13288,349.50000 C 431.49130,345.65036 432.49047,345.27946 431.65792,347.44907 C 431.27921,348.43597 431.58236,348.71376 432.60840,348.32003 C 433.44177,348.00023 433.86078,347.07958 433.54613,346.25962 C 433.16314,345.26156 433.44716,344.95761 434.41555,345.32922 C 435.20657,345.63276 436.39177,345.23287 437.04933,344.44056 C 437.70689,343.64825 437.88635,343.00000 437.44813,343.00000 C 437.00991,343.00000 437.70825,341.87500 439.00000,340.50000 C 441.50123,337.83757 444.09810,336.97194 442.00000,339.50000 C 439.81782,342.12937 441.55420,341.10902 444.07569,338.28026 C 445.87340,336.26348 445.98307,335.93845 444.50000,337.02274 C 443.40000,337.82696 444.30000,336.40057 446.50000,333.85298 C 448.70000,331.30540 451.17424,328.91753 451.99831,328.54660 C 452.82239,328.17568 452.14739,329.36182 450.49831,331.18246 L 447.50000,334.49273 L 450.35610,331.99637 C 451.92695,330.62336 453.61361,328.46042 454.10423,327.18983 C 454.64629,325.78598 455.45598,325.16378 456.16807,325.60387 C 456.96396,326.09576 457.12863,325.77760 456.68139,324.61211 C 456.31923,323.66832 456.40234,323.13063 456.86609,323.41724 C 457.95105,324.08778 462.37532,319.41629 461.69612,318.31732 C 461.41373,317.86042 462.74018,315.23961 464.64377,312.49329 C 466.54736,309.74698 468.81853,306.37500 469.69082,305.00000 C 470.56312,303.62500 473.16167,299.57500 475.46539,296.00000 C 480.73833,287.81723 482.42277,285.08094 485.12167,280.31380 C 486.30921,278.21621 488.18507,274.92500 489.29026,273.00000 C 492.69688,267.06638 497.00000,258.16743 497.00000,257.05609 C 497.00000,256.47524 497.43588,256.00000 497.96862,256.00000 C 498.50135,256.00000 498.67821,255.32500 498.36163,254.50000 C 498.04504,253.67500 498.25384,253.00000 498.82562,253.00000 C 499.39740,253.00000 500.16164,252.06609 500.52392,250.92464 C 501.78353,246.95596 501.81531,249.53094 500.56725,254.43573 C 499.53880,258.47744 499.55370,259.83592 500.64950,261.93573 C 501.38550,263.34608 501.99045,265.93180 501.99384,267.68178 C 502.01136,276.72888 485.10127,311.79745 472.66725,328.50000 C 455.01564,352.21131 435.78719,370.41816 418.00000,380.26279 C 401.43234,389.43245 387.78463,397.84208 387.15965,399.26642 C 386.97246,399.69304 385.60018,400.67252 384.11013,401.44305 C 381.45735,402.81486 381.31363,402.73116 377.20572,397.42201 C 374.89834,394.43990 372.51775,392.00000 371.91553,392.00000 C 370.07676,392.00000 367.05209,396.39053 367.60985,398.25000 C 367.94024,399.35144 367.59927,400.00000 366.68983,400.00000 C 365.89511,400.00000 364.65556,400.71010 363.93526,401.57801 C 361.53990,404.46424 353.62338,407.71939 342.50000,410.39185 C 336.45000,411.84540 329.87936,413.47490 327.89858,414.01296 C 325.91780,414.55102 319.64641,415.46851 313.96216,416.05182 C 308.27791,416.63514 303.37355,417.26080 303.06358,417.44219 C 301.63822,418.27628 254.77213,418.73300 249.00000,417.96905 z M 282.76313,409.75000 C 280.40844,402.55172 279.71957,401.00000 278.87868,401.00000 C 277.45468,401.00000 277.87322,406.85416 279.52568,410.04966 C 281.72048,414.29393 284.17522,414.06672 282.76313,409.75000 z M 286.10017,405.10388 C 283.87202,397.76818 281.14680,393.98399 282.32133,399.85666 C 283.12187,403.85934 287.11415,413.21918 287.74977,412.58356 C 288.01229,412.32104 287.26997,408.95519 286.10017,405.10388 z M 299.96858,404.33179 C 299.98586,402.58927 300.27314,400.45177 300.60699,399.58179 C 301.11265,398.26404 300.34362,398.00000 296.00000,398.00000 C 291.87703,398.00000 290.90144,398.30078 291.33763,399.43745 C 291.64101,400.22805 292.40975,402.81555 293.04594,405.18745 C 294.63046,411.09495 294.79197,411.24139 297.52851,409.25148 C 299.18011,408.05049 299.94703,406.50423 299.96858,404.33179 z M 309.50000,397.00000 C 309.16008,396.45000 308.68352,396.00000 308.44098,396.00000 C 308.19844,396.00000 308.00000,396.45000 308.00000,397.00000 C 308.00000,397.55000 308.47656,398.00000 309.05902,398.00000 C 309.64148,398.00000 309.83992,397.55000 309.50000,397.00000 z M 311.53894,393.93699 C 311.90028,393.35233 311.44933,392.04900 310.53683,391.04070 C 309.32912,389.70619 309.21305,389.09565 310.11020,388.79660 C 310.78805,388.57065 311.41243,387.43859 311.49772,386.28091 C 311.61524,384.68573 310.96838,384.07559 308.82640,383.76121 C 306.88465,383.47622 306.00000,383.78014 306.00000,384.73221 C 306.00000,385.49441 306.45000,385.83992 307.00000,385.50000 C 307.55000,385.16008 308.00000,385.61008 308.00000,386.50000 C 308.00000,387.40973 307.52447,387.82414 306.91371,387.44667 C 305.22343,386.40202 306.24359,392.29176 308.00000,393.71820 C 309.87333,395.23959 310.70222,395.29083 311.53894,393.93699 z M 322.31563,363.55758 C 321.71640,359.86493 320.11391,358.69123 319.84769,361.75000 C 319.56523,364.99528 319.44929,365.49657 318.70726,366.68090 C 318.30032,367.33040 318.38628,368.12070 318.89828,368.43713 C 319.41027,368.75356 320.05709,368.44716 320.33564,367.75623 C 320.61420,367.06530 320.90616,367.62500 320.98444,369.00000 C 321.12402,371.45164 321.14386,371.45759 322.00986,369.30758 C 322.49556,368.10176 322.63316,365.51426 322.31563,363.55758 z M 198.50000,346.00000 C 197.64675,344.35000 196.72364,343.00000 196.44864,343.00000 C 196.17364,343.00000 196.64675,344.35000 197.50000,346.00000 C 198.35325,347.65000 199.27636,349.00000 199.55136,349.00000 C 199.82636,349.00000 199.35325,347.65000 198.50000,346.00000 z M 209.01441,337.51736 C 208.40136,336.77868 205.24788,331.07258 202.00668,324.83715 C 198.76549,318.60172 192.71594,307.20000 188.56325,299.50000 C 180.00862,283.63786 157.61221,238.67377 156.55338,235.23548 C 155.65898,232.33115 154.42855,233.10726 153.63471,237.07646 C 152.69743,241.76287 157.99359,254.02894 164.37538,261.95215 C 171.15188,270.36541 175.36351,277.61032 174.61371,279.56428 C 174.28578,280.41884 174.44971,280.84010 174.98214,280.51104 C 175.50971,280.18498 176.22834,281.06161 176.57909,282.45910 C 176.92984,283.85660 177.57821,285.00000 178.01992,285.00000 C 178.46163,285.00000 178.69923,285.78750 178.54793,286.75000 C 178.38784,287.76832 177.57264,288.37347 176.59816,288.19738 C 175.25850,287.95530 175.55949,289.05549 178.10285,293.69738 C 179.85148,296.88882 182.62952,301.97500 184.27627,305.00000 C 185.92302,308.02500 187.77203,310.83061 188.38518,311.23469 C 188.99833,311.63877 189.13186,311.97627 188.68191,311.98469 C 188.23195,311.99311 188.85470,313.39158 190.06579,315.09239 C 191.50899,317.11918 192.51478,317.78510 192.98461,317.02490 C 193.79577,315.71242 196.64514,321.70966 196.18714,323.76548 C 195.85805,325.24270 199.06394,331.00000 200.21561,331.00000 C 200.64702,331.00000 201.00000,331.72314 201.00000,332.60699 C 201.00000,333.59948 201.55411,334.00134 202.44907,333.65792 C 203.39013,333.29680 203.71371,333.58247 203.37207,334.47279 C 202.64182,336.37578 204.85621,340.20690 206.20468,339.37350 C 206.86790,338.96361 207.02622,339.14855 206.60105,339.83651 C 206.21166,340.46654 206.70463,342.06587 207.69654,343.39058 L 209.50000,345.79912 L 209.81453,342.32977 C 209.98751,340.42163 209.62746,338.25605 209.01441,337.51736 z M 189.53683,331.75000 C 188.11975,329.41250 183.76422,321.98750 179.85789,315.25000 C 175.95156,308.51250 172.39332,303.00000 171.95069,303.00000 C 171.23086,303.00000 174.50912,309.13447 179.69949,317.50000 C 189.03590,332.54786 191.26779,336.00000 191.66018,336.00000 C 191.90943,336.00000 190.95392,334.08750 189.53683,331.75000 z M 345.60417,330.27083 C 345.27188,329.93854 345.03553,330.52917 345.07895,331.58333 C 345.12693,332.74828 345.36389,332.98523 345.68311,332.18750 C 345.97198,331.46562 345.93646,330.60312 345.60417,330.27083 z M 191.49779,326.98690 C 190.82810,323.02306 181.84374,306.18861 179.63838,304.76531 C 179.01227,304.36123 178.86629,304.02373 179.31398,304.01531 C 180.35375,303.99575 175.89791,296.00000 174.84724,296.00000 C 174.41578,296.00000 174.32179,295.32500 174.63837,294.50000 C 174.95496,293.67500 174.71583,293.00000 174.10699,293.00000 C 173.49814,293.00000 173.00000,292.37314 173.00000,291.60699 C 173.00000,290.84083 172.26059,289.93024 171.35687,289.58345 C 170.45315,289.23666 169.98986,288.67681 170.32733,288.33934 C 170.66480,288.00187 170.02575,286.44053 168.90722,284.86970 C 167.78869,283.29887 167.15354,281.56058 167.49578,281.00682 C 167.83802,280.45307 167.64148,280.00000 167.05902,280.00000 C 166.47656,280.00000 166.00746,280.56250 166.01657,281.25000 C 166.04833,283.64468 190.55918,331.00000 191.76690,331.00000 C 191.99179,331.00000 191.87069,329.19410 191.49779,326.98690 z M 350.00000,326.94098 C 350.00000,326.42344 349.55000,326.00000 349.00000,326.00000 C 348.45000,326.00000 348.00000,326.70156 348.00000,327.55902 C 348.00000,328.41648 348.45000,328.83992 349.00000,328.50000 C 349.55000,328.16008 350.00000,327.45852 350.00000,326.94098 z M 348.00000,315.00000 C 348.00000,314.45000 347.52344,314.00000 346.94098,314.00000 C 346.35852,314.00000 346.16008,314.45000 346.50000,315.00000 C 346.83992,315.55000 347.31648,316.00000 347.55902,316.00000 C 347.80156,316.00000 348.00000,315.55000 348.00000,315.00000 z M 320.39699,309.16667 C 320.68026,308.70833 320.25682,308.33333 319.45601,308.33333 C 318.65521,308.33333 318.00000,308.70833 318.00000,309.16667 C 318.00000,309.62500 318.42344,310.00000 318.94098,310.00000 C 319.45852,310.00000 320.11373,309.62500 320.39699,309.16667 z M 323.45729,304.06910 C 323.77373,303.55710 323.60638,302.87476 323.08541,302.55279 C 322.56444,302.23081 321.85554,302.42472 321.51008,302.98369 C 321.16462,303.54266 320.43197,304.00000 319.88197,304.00000 C 319.33197,304.00000 319.11049,303.63023 319.38980,303.17830 C 319.66912,302.72636 319.21867,301.04787 318.38880,299.44831 C 317.40919,297.56010 317.25177,296.41608 317.93998,296.18667 C 319.93699,295.52100 319.00156,294.00000 316.59516,294.00000 C 314.35618,294.00000 314.22391,294.29312 314.67749,298.25000 C 314.94544,300.58750 315.33850,303.06250 315.55095,303.75000 C 315.99689,305.19307 322.59799,305.45949 323.45729,304.06910 z M 332.00000,303.38337 C 332.00000,303.17252 331.10000,303.00000 330.00000,303.00000 C 328.90000,303.00000 328.00000,303.40787 328.00000,303.90638 C 328.00000,304.40489 328.90000,304.57741 330.00000,304.28975 C 331.10000,304.00209 332.00000,303.59422 332.00000,303.38337 z M 167.40909,294.09091 C 165.31950,290.22217 163.46072,287.20594 163.27849,287.38818 C 163.09625,287.57042 164.64654,290.89366 166.72357,294.77316 C 168.80061,298.65265 170.65938,301.66888 170.85418,301.47588 C 171.04897,301.28289 169.49869,297.95965 167.40909,294.09091 z M 476.38156,300.44806 C 476.72305,299.55814 476.55541,299.15674 475.98855,299.50708 C 475.44485,299.84310 475.00000,300.54148 475.00000,301.05902 C 475.00000,302.49745 475.71677,302.18048 476.38156,300.44806 z M 326.50000,300.00000 C 327.60000,299.52731 327.93750,299.10894 327.25000,299.07029 C 326.56250,299.03163 325.97148,297.98750 325.93661,296.75000 L 325.87323,294.50000 L 324.92666,296.86403 C 324.24499,298.56647 323.42316,299.08242 321.99004,298.70765 C 320.69997,298.37029 320.00000,298.68191 320.00000,299.59362 C 320.00000,301.15080 323.33651,301.35940 326.50000,300.00000 z M 328.60417,295.27083 C 328.27188,294.93854 328.03553,295.52917 328.07895,296.58333 C 328.12693,297.74828 328.36389,297.98523 328.68311,297.18750 C 328.97198,296.46562 328.93646,295.60312 328.60417,295.27083 z M 198.06289,291.75000 C 197.57471,290.51250 193.53585,282.17837 189.08765,273.22970 C 184.63944,264.28104 181.00000,256.67462 181.00000,256.32655 C 181.00000,255.97847 179.61749,252.76761 177.92776,249.19128 C 176.23803,245.61496 173.98596,240.39638 172.92316,237.59444 C 170.42365,231.00479 168.68873,228.35063 169.59313,232.50000 C 171.69560,242.14610 176.55498,252.67891 197.15916,292.25000 C 198.46835,294.76434 199.11162,294.40844 198.06289,291.75000 z M 299.60417,288.27083 C 299.27188,287.93854 299.03553,288.52917 299.07895,289.58333 C 299.12693,290.74828 299.36389,290.98523 299.68311,290.18750 C 299.97198,289.46562 299.93646,288.60312 299.60417,288.27083 z M 175.12409,284.73333 C 174.13647,283.75307 174.02161,283.86793 174.56429,285.29313 C 174.93982,286.27935 175.49898,286.83435 175.80687,286.52646 C 176.11476,286.21857 175.80751,285.41167 175.12409,284.73333 z M 161.30460,282.51256 C 160.38992,280.59446 159.46402,279.20265 159.24704,279.41963 C 158.78958,279.87709 161.82524,286.00000 162.50950,286.00000 C 162.76148,286.00000 162.21927,284.43065 161.30460,282.51256 z M 209.57503,280.63044 C 209.52466,278.36838 209.08915,277.41751 208.25000,277.73743 C 207.56250,277.99953 207.00000,278.36966 207.00000,278.55994 C 207.00000,279.02045 209.27513,284.00000 209.48554,284.00000 C 209.57602,284.00000 209.61629,282.48370 209.57503,280.63044 z M 311.00000,279.44098 C 311.00000,278.58352 310.55000,278.16008 310.00000,278.50000 C 309.45000,278.83992 309.00000,279.54148 309.00000,280.05902 C 309.00000,280.57656 309.45000,281.00000 310.00000,281.00000 C 310.55000,281.00000 311.00000,280.29844 311.00000,279.44098 z M 158.34508,276.45687 C 158.01939,275.60815 157.53845,275.12821 157.27633,275.39034 C 157.01420,275.65247 157.09635,276.34688 157.45888,276.93347 C 158.44493,278.52893 159.02126,278.21898 158.34508,276.45687 z M 164.22227,275.06456 C 163.29567,273.45006 162.39976,272.26691 162.23134,272.43533 C 161.69003,272.97663 164.29229,278.00000 165.11400,278.00000 C 165.55014,278.00000 165.14886,276.67905 164.22227,275.06456 z M 213.34508,260.45687 C 213.01939,259.60815 212.53845,259.12821 212.27633,259.39034 C 212.01420,259.65247 212.09635,260.34688 212.45888,260.93347 C 213.44493,262.52893 214.02126,262.21898 213.34508,260.45687 z M 212.19585,255.25000 C 211.90611,253.73750 211.47606,253.07735 211.24019,253.78299 C 210.81485,255.05549 211.57576,258.00000 212.32994,258.00000 C 212.54594,258.00000 212.48559,256.76250 212.19585,255.25000 z M 163.65393,242.90489 C 161.80064,238.28220 159.72177,232.77107 159.03422,230.65794 C 158.20337,228.10436 157.44978,227.15022 156.78717,227.81283 C 156.12455,228.47545 157.55363,232.70286 161.04843,240.41823 C 163.94046,246.80288 166.46796,251.86537 166.66511,251.66823 C 166.86225,251.47108 165.50723,247.52758 163.65393,242.90489 z M 210.71758,244.26375 C 210.48773,242.74369 210.29352,243.75000 210.28601,246.50000 C 210.27851,249.25000 210.46657,250.49369 210.70393,249.26375 C 210.94129,248.03381 210.94744,245.78381 210.71758,244.26375 z M 151.00000,244.70344 C 151.00000,242.89033 149.45906,237.64244 147.57570,233.04147 L 144.15140,224.67607 L 143.47557,228.27854 C 142.76915,232.04409 144.81592,239.99153 147.84639,245.25000 C 149.95159,248.90295 151.00000,248.72124 151.00000,244.70344 z M 138.60417,242.27083 C 138.27187,241.93854 138.03553,242.52917 138.07895,243.58333 C 138.12693,244.74828 138.36389,244.98523 138.68311,244.18750 C 138.97198,243.46562 138.93646,242.60313 138.60417,242.27083 z M 152.27587,226.00000 C 151.46712,224.07500 150.33239,221.15000 149.75425,219.50000 C 148.37154,215.55377 148.06524,215.28281 146.96094,217.02896 C 145.46805,219.38956 145.82888,222.00976 148.67117,229.44794 L 151.34233,236.43830 L 152.54433,232.96915 C 153.52391,230.14192 153.47423,228.85237 152.27587,226.00000 z M 209.60417,233.27083 C 209.27187,232.93854 209.03553,233.52917 209.07895,234.58333 C 209.12693,235.74828 209.36389,235.98523 209.68311,235.18750 C 209.97198,234.46562 209.93646,233.60313 209.60417,233.27083 z M 395.01213,226.50000 C 397.12224,222.92270 397.15844,222.68516 395.35464,224.25218 C 394.24532,225.21588 393.11172,225.77838 392.83552,225.50218 C 392.55932,225.22598 392.33333,226.35000 392.33333,228.00000 C 392.33333,229.65000 392.40519,230.88750 392.49301,230.75000 C 392.58083,230.61250 393.71444,228.70000 395.01213,226.50000 z M 143.00000,221.00000 C 143.00000,219.35000 142.55000,218.00000 142.00000,218.00000 C 141.45000,218.00000 141.00000,219.35000 141.00000,221.00000 C 141.00000,222.65000 141.45000,224.00000 142.00000,224.00000 C 142.55000,224.00000 143.00000,222.65000 143.00000,221.00000 z M 206.47909,216.10860 C 206.72794,214.81638 206.48709,214.19896 205.88042,214.57391 C 205.32215,214.91893 204.62633,214.28708 204.33415,213.16979 C 204.04197,212.05250 203.17226,210.89634 202.40146,210.60056 C 200.32903,209.80529 200.69757,211.29826 203.25000,214.03797 C 204.48750,215.36627 205.38750,216.57612 205.25000,216.72653 C 205.11250,216.87694 205.00000,217.52500 205.00000,218.16667 C 205.00000,219.94994 206.00994,218.54466 206.47909,216.10860 z M 146.65369,211.72424 C 146.38100,211.05091 146.12237,211.37351 146.07895,212.44113 C 146.00080,214.36264 145.98516,214.36264 144.53180,212.44113 C 143.26530,210.76666 143.05924,210.72917 143.03180,212.16821 C 143.01431,213.08573 143.28093,214.56851 143.62428,215.46328 C 144.16966,216.88451 144.43190,216.82839 145.69903,215.01931 C 146.49678,213.88035 146.92638,212.39757 146.65369,211.72424 z M 392.62897,214.23469 C 394.19746,213.21398 395.52924,203.00000 394.09384,203.00000 C 393.49223,203.00000 393.00000,204.15156 393.00000,205.55902 C 393.00000,206.96648 392.59715,207.86906 392.10478,207.56476 C 391.01387,206.89054 390.00000,209.30724 390.00000,212.58179 C 390.00000,215.07788 390.67811,215.50423 392.62897,214.23469 z M 209.87693,210.62923 C 209.21805,209.18315 208.27464,208.00000 207.78047,208.00000 C 207.28629,208.00000 207.12291,207.61014 207.41740,207.13365 C 208.05279,206.10557 204.24769,202.41898 203.41285,203.25382 C 202.64586,204.02081 204.81811,208.00000 206.00380,208.00000 C 206.51719,208.00000 206.69613,208.62831 206.40144,209.39625 C 206.10676,210.16418 206.88123,211.50383 208.12249,212.37324 C 210.96833,214.36654 211.38916,213.94821 209.87693,210.62923 z M 207.00000,210.00000 C 207.00000,209.45000 207.19844,209.00000 207.44098,209.00000 C 207.68352,209.00000 208.16008,209.45000 208.50000,210.00000 C 208.83992,210.55000 208.64148,211.00000 208.05902,211.00000 C 207.47656,211.00000 207.00000,210.55000 207.00000,210.00000 z M 144.00000,203.88197 C 144.00000,203.33197 143.55000,203.16008 143.00000,203.50000 C 142.45000,203.83992 142.00000,204.56803 142.00000,205.11803 C 142.00000,205.66803 142.45000,205.83992 143.00000,205.50000 C 143.55000,205.16008 144.00000,204.43197 144.00000,203.88197 z M 393.59609,195.16752 C 392.13464,193.70607 392.00000,193.71604 392.00000,195.28571 C 392.00000,196.22857 392.45000,197.00000 393.00000,197.00000 C 393.55000,197.00000 394.05220,197.78750 394.11600,198.75000 C 394.21840,200.29484 394.28829,200.28098 394.71209,198.63180 C 394.97614,197.60429 394.47394,196.04536 393.59609,195.16752 z M 331.00000,197.50000 C 332.04007,196.24680 331.89568,196.00000 330.12244,196.00000 C 328.90249,196.00000 328.00000,196.63782 328.00000,197.50000 C 328.00000,198.32500 328.39490,199.00000 328.87756,199.00000 C 329.36021,199.00000 330.31531,198.32500 331.00000,197.50000 z M 336.00000,191.25882 C 335.17500,190.93802 333.95181,189.96104 333.28180,189.08777 C 332.21388,187.69586 332.05968,187.77755 332.03180,189.75000 C 332.00616,191.56425 332.53259,191.98471 334.75000,191.92105 C 336.38133,191.87422 336.88982,191.60483 336.00000,191.25882 z M 333.00000,182.00000 C 333.00000,181.45000 332.55000,181.00000 332.00000,181.00000 C 331.45000,181.00000 331.00000,181.45000 331.00000,182.00000 C 331.00000,182.55000 331.45000,183.00000 332.00000,183.00000 C 332.55000,183.00000 333.00000,182.55000 333.00000,182.00000 z M 415.60417,172.27083 C 415.27188,171.93854 415.03553,172.52917 415.07895,173.58333 C 415.12693,174.74828 415.36389,174.98523 415.68311,174.18750 C 415.97198,173.46562 415.93646,172.60313 415.60417,172.27083 z M 417.36163,151.50000 C 417.04504,150.67500 416.60917,150.00000 416.39301,150.00000 C 416.17686,150.00000 416.00000,150.67500 416.00000,151.50000 C 416.00000,152.32500 416.43588,153.00000 416.96862,153.00000 C 417.50135,153.00000 417.67821,152.32500 417.36163,151.50000 z M 210.28789,408.46438 C 203.53665,406.64579 193.52308,402.41647 193.41847,401.33944 C 193.12192,398.28628 191.35433,394.08888 189.34791,391.67327 C 188.05656,390.11858 187.00000,388.49679 187.00000,388.06930 C 187.00000,387.64181 185.86221,385.98884 184.47158,384.39602 C 180.86448,380.26450 180.50000,379.67752 180.50000,378.00000 C 180.50000,377.17500 179.71734,376.56169 178.76076,376.63710 C 177.80418,376.71250 177.24921,376.40579 177.52749,375.95552 C 177.80577,375.50525 177.11585,374.49413 175.99433,373.70858 C 174.63654,372.75755 174.16127,371.64875 174.57193,370.39016 C 175.07974,368.83383 174.99809,368.76492 174.10965,370.00000 C 173.08721,371.42134 172.52433,370.68378 172.96491,368.50000 C 173.07588,367.95000 172.85678,367.80989 172.47803,368.18864 C 172.09928,368.56739 170.23100,366.83567 168.32629,364.34037 C 166.42159,361.84508 165.11898,359.54769 165.43160,359.23507 C 165.74422,358.92245 166.00000,359.21822 166.00000,359.89235 C 166.00000,360.56648 166.47591,360.82391 167.05757,360.46442 C 168.06368,359.84261 175.63356,367.07893 181.00000,373.79249 C 182.58245,375.77216 184.11187,376.73613 185.16712,376.41894 C 186.47170,376.02681 186.70928,376.39571 186.25960,378.11529 C 185.86389,379.62848 186.04598,380.08962 186.84435,379.59620 C 187.55177,379.15899 188.38320,379.87769 188.97712,381.43983 C 189.66675,383.25368 190.68649,384.00000 192.47525,384.00000 C 193.86386,384.00000 195.00000,384.49754 195.00000,385.10564 C 195.00000,386.69697 199.78040,392.15386 200.17199,391.00954 C 200.35240,390.48236 201.50744,390.31571 202.73875,390.63921 C 203.97007,390.96270 204.73101,391.62622 204.42974,392.11369 C 204.12846,392.60116 204.32638,393.00000 204.86955,393.00000 C 205.41273,393.00000 206.56429,393.70714 207.42857,394.57143 C 208.85714,396.00000 209.00000,395.99715 209.00000,394.54004 C 209.00000,393.65850 208.32500,392.67821 207.50000,392.36163 C 206.67500,392.04504 206.00000,391.35761 206.00000,390.83399 C 206.00000,390.31038 206.45000,390.16008 207.00000,390.50000 C 207.55000,390.83992 208.03553,390.30398 208.07895,389.30902 C 208.12566,388.23857 208.56379,388.72481 209.15207,390.50000 C 209.69886,392.15000 210.63902,394.51182 211.24129,395.74849 C 211.84357,396.98516 212.02937,398.30397 211.65417,398.67916 C 211.27898,399.05436 212.07606,400.51753 213.42547,401.93067 C 215.71983,404.33337 217.70038,410.08016 216.18378,409.93419 C 215.80770,409.89799 213.15455,409.23658 210.28789,408.46438 z M 176.88623,400.16523 C 175.99866,399.24935 172.62366,395.28682 169.38623,391.35961 C 166.14881,387.43239 162.06558,382.48239 160.31239,380.35961 C 158.55921,378.23682 155.40921,374.68139 153.31239,372.45864 C 143.71180,362.28145 130.58830,345.32995 124.31270,335.00000 C 119.89197,327.72328 114.00000,314.14625 114.00000,311.23618 C 114.00000,310.18962 113.66250,308.99583 113.25000,308.58333 C 112.83750,308.17083 112.41362,306.63333 112.30803,305.16667 C 112.20245,303.70000 111.61580,299.42246 111.00436,295.66101 C 109.23859,284.79834 110.21856,284.58301 114.12358,294.97561 C 117.94133,305.13596 136.02723,331.15610 148.54664,344.50000 C 155.10462,351.48987 156.13408,352.69291 166.16655,365.09110 C 169.09995,368.71621 175.03815,376.03061 179.36255,381.34532 L 187.22511,391.00843 L 183.86255,394.83342 C 182.01315,396.93716 180.05000,399.37212 179.50000,400.24443 C 178.59162,401.68515 178.35214,401.67789 176.88623,400.16523 z M 204.00000,383.00000 C 204.00000,382.45000 204.19844,382.00000 204.44098,382.00000 C 204.68352,382.00000 205.16008,382.45000 205.50000,383.00000 C 205.83992,383.55000 205.64148,384.00000 205.05902,384.00000 C 204.47656,384.00000 204.00000,383.55000 204.00000,383.00000 z M 189.00000,370.00000 C 189.00000,369.45000 189.45000,369.00000 190.00000,369.00000 C 190.55000,369.00000 191.00000,369.45000 191.00000,370.00000 C 191.00000,370.55000 190.55000,371.00000 190.00000,371.00000 C 189.45000,371.00000 189.00000,370.55000 189.00000,370.00000 z M 200.07895,369.58333 C 200.03553,368.52917 200.27187,367.93854 200.60417,368.27083 C 200.93646,368.60312 200.97198,369.46562 200.68311,370.18750 C 200.36389,370.98523 200.12693,370.74828 200.07895,369.58333 z M 161.87642,356.32673 C 161.01159,355.32203 160.02472,353.71250 159.68338,352.75000 C 159.34205,351.78750 158.53486,351.00000 157.88965,351.00000 C 157.24443,351.00000 155.54281,349.73379 154.10826,348.18620 C 142.91229,336.10799 143.56800,335.20809 155.07545,346.85883 C 160.06695,351.91248 163.99294,356.52118 163.79988,357.10037 C 163.60661,357.68018 162.74218,357.33250 161.87642,356.32673 z M 356.07895,305.58333 C 356.03553,304.52917 356.27188,303.93854 356.60417,304.27083 C 356.93646,304.60312 356.97198,305.46562 356.68311,306.18750 C 356.36389,306.98523 356.12693,306.74828 356.07895,305.58333 z M 353.51008,297.01631 C 353.16462,296.45734 353.58352,296.00000 354.44098,296.00000 C 356.19751,296.00000 356.45614,296.60006 355.06910,297.45729 C 354.55710,297.77373 353.85554,297.57528 353.51008,297.01631 z M 361.07895,296.33179 C 361.03553,295.68927 360.74102,294.33927 360.42449,293.33179 C 359.87744,291.59057 359.90566,291.58839 360.99527,293.28768 C 361.62572,294.27090 361.92023,295.62090 361.64972,296.28768 C 361.29474,297.16267 361.13593,297.17495 361.07895,296.33179 z M 154.07895,281.19098 C 154.03553,280.47102 153.58109,280.14086 153.06910,280.45729 C 152.55710,280.77373 151.81257,280.50575 151.41459,279.86180 C 150.96267,279.13058 151.12445,278.95888 151.84549,279.40451 C 152.48466,279.79954 153.00000,279.55605 153.00000,278.85902 C 153.00000,277.93479 153.29583,277.89583 154.11250,278.71250 C 154.72438,279.32437 154.98490,280.42688 154.69145,281.16250 C 154.26362,282.23498 154.14225,282.24062 154.07895,281.19098 z M 352.48855,250.50000 C 352.75774,248.30000 352.98294,244.51250 352.98899,242.08333 C 352.99505,239.65417 353.28415,237.95082 353.63144,238.29811 C 354.57254,239.23921 354.15211,248.06155 353.00230,251.50000 C 352.06260,254.31015 352.03009,254.24687 352.48855,250.50000 z M 502.15730,247.50000 C 502.15447,246.95000 502.75869,244.92500 503.50000,243.00000 C 504.24131,241.07500 504.86178,240.17500 504.87882,241.00000 C 504.89585,241.82500 504.29164,243.85000 503.53611,245.50000 C 502.78059,247.15000 502.16012,248.05000 502.15730,247.50000 z M 111.26008,236.22162 C 110.62375,234.72473 108.89517,231.47500 107.41880,229.00000 C 102.22149,220.28722 95.000000,206.98533 95.000000,206.12474 C 95.000000,205.64596 94.064438,203.13924 92.920973,200.55425 C 90.640653,195.39921 90.836973,193.53740 93.740946,192.77800 C 95.217535,192.39186 96.191658,193.32512 98.032185,196.88923 C 99.341749,199.42515 102.08449,204.01017 104.12717,207.07816 C 106.16985,210.14615 108.72068,214.19615 109.79567,216.07816 C 110.87066,217.96017 113.54315,222.42367 115.73454,225.99704 L 119.71888,232.49408 L 116.67122,234.74257 C 114.99501,235.97924 113.35210,237.43030 113.02030,237.96715 C 112.68851,238.50400 111.89641,237.71851 111.26008,236.22162 z M 443.42706,238.23469 C 442.83694,237.83061 442.02523,236.61261 441.62326,235.52803 C 441.01056,233.87484 440.74192,233.79401 439.96152,235.02803 C 439.41917,235.88562 439.02423,236.01241 439.01531,235.33179 C 439.00689,234.68927 438.69688,233.37365 438.32639,232.40818 C 437.80120,231.03956 438.03298,230.79868 439.37833,231.31494 C 440.32831,231.67948 440.85002,231.56635 440.53908,231.06324 C 439.90176,230.03203 449.45759,227.00000 453.34489,227.00000 C 454.74028,227.00000 456.12416,227.39188 456.42017,227.87084 C 456.71619,228.34980 458.38736,229.02747 460.13388,229.37678 C 464.47816,230.24563 466.26350,231.80233 464.76072,233.41106 C 464.12556,234.09100 462.61999,234.45885 461.41500,234.22850 C 460.21002,233.99815 458.21939,234.34740 456.99138,235.00461 C 455.50732,235.79886 454.98656,235.83077 455.43834,235.09977 C 455.81217,234.49490 455.64148,234.00000 455.05902,234.00000 C 454.47656,234.00000 454.00000,234.41859 454.00000,234.93019 C 454.00000,235.50379 452.75660,235.50379 450.75660,234.93019 C 446.21065,233.62643 446.00000,233.69596 446.00000,236.50000 C 446.00000,239.06321 445.31324,239.52623 443.42706,238.23469 z M 332.66667,237.33333 C 332.30000,236.96667 332.00000,235.61667 332.00000,234.33333 C 332.00000,232.88667 331.40757,232.00000 330.44098,232.00000 C 329.58352,232.00000 329.16008,231.55000 329.50000,231.00000 C 329.83992,230.45000 330.99148,230.00000 332.05902,230.00000 C 334.63088,230.00000 334.52020,228.47777 331.81033,226.57970 C 330.60602,225.73617 329.92711,224.73956 330.30166,224.36501 C 330.67620,223.99046 330.57557,223.19261 330.07804,222.59201 C 329.50745,221.90322 329.91530,220.58457 331.18256,219.02084 C 333.11997,216.63020 333.24084,216.60889 334.56810,218.42402 C 335.90246,220.24887 335.90354,222.19070 334.57615,232.90133 C 333.98540,237.66800 333.68909,238.35576 332.66667,237.33333 z M 384.14324,232.10969 C 383.30898,231.58108 383.17235,231.01152 383.78845,230.63074 C 384.33954,230.29015 385.04846,230.68390 385.36383,231.50574 C 386.02646,233.23253 385.96405,233.26341 384.14324,232.10969 z M 322.00000,231.26340 C 322.00000,230.00214 325.35868,227.00000 326.76972,227.00000 C 328.30255,227.00000 329.00895,228.36749 328.17400,229.71846 C 327.26448,231.19010 322.00000,232.50744 322.00000,231.26340 z M 379.00000,230.50000 C 379.00000,229.67500 379.45000,229.00000 380.00000,229.00000 C 380.55000,229.00000 381.00000,229.67500 381.00000,230.50000 C 381.00000,231.32500 380.55000,232.00000 380.00000,232.00000 C 379.45000,232.00000 379.00000,231.32500 379.00000,230.50000 z M 376.00000,229.55902 C 376.00000,227.80249 376.60006,227.54386 377.45729,228.93090 C 377.77373,229.44290 377.57528,230.14446 377.01631,230.48992 C 376.45734,230.83538 376.00000,230.41648 376.00000,229.55902 z M 383.07895,227.58333 C 383.03553,226.52917 383.27188,225.93854 383.60417,226.27083 C 383.93646,226.60313 383.97198,227.46562 383.68311,228.18750 C 383.36389,228.98523 383.12693,228.74828 383.07895,227.58333 z M 325.00000,225.15182 C 325.00000,224.64661 325.90000,223.99791 327.00000,223.71025 C 328.10000,223.42259 329.00000,223.35428 329.00000,223.55844 C 329.00000,223.76259 328.10000,224.41130 327.00000,225.00000 C 325.89508,225.59134 325.00000,225.65928 325.00000,225.15182 z M 126.58586,219.74898 C 124.98308,216.86204 119.09100,207.07500 113.49236,198.00000 C 102.16431,179.63807 100.97034,177.50792 103.79967,180.70748 C 106.18003,183.39932 107.50290,182.55608 105.46469,179.64613 C 104.65911,178.49600 104.03553,176.86762 104.07895,176.02749 C 104.14566,174.73671 104.24661,174.72537 104.73039,175.95433 C 105.04526,176.75420 105.70114,177.87920 106.18790,178.45433 C 107.63487,180.16395 114.88018,191.62637 123.28328,205.50000 C 127.61395,212.65000 131.85895,219.27906 132.71662,220.23124 C 133.98504,221.63943 134.04082,222.24589 133.01557,223.48124 C 130.92738,225.99735 129.63994,225.25003 126.58586,219.74898 z M 114.60503,216.83006 C 115.07950,216.06235 114.79872,215.86326 113.78834,216.25098 C 112.76002,216.64558 112.29034,216.28684 112.37429,215.17092 C 112.44343,214.25191 111.93750,213.61250 111.25000,213.75000 C 109.80812,214.03838 109.59359,213.36921 110.87419,212.57775 C 111.94023,211.91891 117.12249,216.54418 116.27161,217.39505 C 115.18679,218.47987 113.86279,218.03102 114.60503,216.83006 z M 174.18388,212.50423 C 173.55633,211.12690 173.43075,210.00000 173.90481,210.00000 C 174.73516,210.00000 176.23122,214.10211 175.62278,214.71056 C 175.45893,214.87440 174.81143,213.88155 174.18388,212.50423 z M 367.15789,212.00000 C 367.15789,210.62500 367.38487,210.06250 367.66228,210.75000 C 367.93969,211.43750 367.93969,212.56250 367.66228,213.25000 C 367.38487,213.93750 367.15789,213.37500 367.15789,212.00000 z M 175.05739,206.72029 C 173.72161,204.58136 173.67398,204.57670 172.96480,206.51577 C 172.37274,208.13463 172.10293,207.80090 171.49952,204.70337 C 170.46268,199.38086 171.40467,199.14327 174.57143,203.92857 C 176.06812,206.19022 177.09729,208.23604 176.85848,208.47485 C 176.61968,208.71366 175.80919,207.92411 175.05739,206.72029 z M 187.27083,206.39583 C 187.60313,206.06354 188.46562,206.02802 189.18750,206.31689 C 189.98523,206.63611 189.74828,206.87307 188.58333,206.92105 C 187.52917,206.96447 186.93854,206.72813 187.27083,206.39583 z M 178.50000,203.71106 C 177.95000,203.04399 176.23960,200.81111 174.69911,198.74910 L 171.89822,195.00000 L 174.19911,195.07895 C 175.46460,195.12237 175.92691,195.38840 175.22646,195.67013 C 174.34475,196.02476 174.88317,197.24184 176.97646,199.62597 C 178.63941,201.51996 180.00000,203.50393 180.00000,204.03480 C 180.00000,205.26594 179.73480,205.20871 178.50000,203.71106 z M 156.00000,203.16052 C 156.00000,202.69880 157.23750,201.76341 158.75000,201.08188 L 161.50000,199.84273 L 159.29181,201.92136 C 156.92306,204.15114 156.00000,204.49862 156.00000,203.16052 z M 134.00000,196.20402 C 131.52500,192.19818 128.64847,187.47602 127.60771,185.71033 L 125.71542,182.50000 L 128.35771,185.20636 C 129.81097,186.69485 131.00000,188.17634 131.00000,188.49856 C 131.00000,189.72562 136.35529,195.61843 137.95501,196.15167 C 138.67760,196.39253 139.02791,197.94138 138.83001,200.02036 L 138.50000,203.48738 L 134.00000,196.20402 z M 324.00000,201.50000 C 324.00000,200.67500 324.45000,200.00000 325.00000,200.00000 C 325.55000,200.00000 326.00000,200.67500 326.00000,201.50000 C 326.00000,202.32500 325.55000,203.00000 325.00000,203.00000 C 324.45000,203.00000 324.00000,202.32500 324.00000,201.50000 z M 192.00000,198.00000 C 191.41130,196.90000 191.15463,196.00000 191.42963,196.00000 C 191.70463,196.00000 192.41130,196.90000 193.00000,198.00000 C 193.58870,199.10000 193.84537,200.00000 193.57037,200.00000 C 193.29537,200.00000 192.58870,199.10000 192.00000,198.00000 z M 100.63193,197.21346 C 100.21945,196.54606 100.35852,196.00000 100.94098,196.00000 C 101.52344,196.00000 102.00000,195.51250 102.00000,194.91667 C 102.00000,194.32083 101.44721,194.01760 100.77157,194.24281 C 99.330276,194.72324 95.351418,191.31525 96.275154,190.39151 C 96.621438,190.04523 96.225311,189.08245 95.394871,188.25201 C 94.564430,187.42157 94.130705,186.10177 94.431035,185.31912 C 94.731366,184.53647 94.579399,184.14191 94.093330,184.44232 C 92.763034,185.26449 91.701985,182.07628 91.503391,176.66014 L 91.325927,171.82029 L 93.912963,174.66014 C 97.078371,178.13489 101.21430,186.38858 100.80213,188.40819 C 100.63596,189.22240 101.25862,190.47615 102.18581,191.19429 C 103.63409,192.31602 103.69622,192.91757 102.62676,195.46346 C 101.79946,197.43288 101.13033,198.01989 100.63193,197.21346 z M 100.00000,192.00000 C 100.00000,191.45000 99.523442,191.00000 98.940983,191.00000 C 98.358524,191.00000 98.160081,191.45000 98.500000,192.00000 C 98.839919,192.55000 99.316476,193.00000 99.559017,193.00000 C 99.801558,193.00000 100.00000,192.55000 100.00000,192.00000 z M 204.98229,195.47866 C 204.26579,194.61534 203.08353,194.13770 202.35504,194.41725 C 201.62655,194.69680 200.61821,194.15478 200.11429,193.21276 C 198.60182,190.38539 203.17220,190.80158 205.35063,193.68960 C 207.38839,196.39111 207.06065,197.98294 204.98229,195.47866 z M 184.68023,188.46721 C 180.48862,183.56513 180.37848,182.37219 184.52170,186.75000 C 186.88259,189.24457 189.49107,193.04838 188.78518,192.96721 C 188.62833,192.94917 186.78110,190.92417 184.68023,188.46721 z M 91.702330,190.33333 C 91.983736,189.60000 92.342688,189.00000 92.500000,189.00000 C 92.657312,189.00000 93.016264,189.60000 93.297670,190.33333 C 93.579077,191.06667 93.220125,191.66667 92.500000,191.66667 C 91.779875,191.66667 91.420923,191.06667 91.702330,190.33333 z M 193.88548,189.75000 C 193.23379,188.51250 192.20546,187.16939 191.60030,186.76531 C 190.91485,186.30763 190.88751,186.02485 191.52776,186.01531 C 192.69531,185.99792 195.37377,189.04643 195.75000,190.82089 C 196.15725,192.74166 195.15901,192.16832 193.88548,189.75000 z M 89.015313,189.28943 C 89.044361,187.79190 90.751295,185.78861 91.270040,186.64324 C 91.556061,187.11446 91.162311,188.08024 90.395040,188.78943 C 89.627768,189.49861 89.006891,189.72361 89.015313,189.28943 z M 160.00000,187.50000 C 161.37500,186.71398 163.17500,186.07254 164.00000,186.07458 C 164.82500,186.07662 163.98584,186.73567 162.13519,187.53914 C 157.87684,189.38794 156.73405,189.36699 160.00000,187.50000 z M 195.57143,186.42857 C 193.42749,184.28463 193.59846,183.71474 196.00000,185.00000 C 197.10000,185.58870 198.00000,186.50453 198.00000,187.03518 C 198.00000,188.39412 197.38281,188.23995 195.57143,186.42857 z M 141.61367,183.00000 C 142.21181,179.66221 144.61834,174.00000 145.43882,174.00000 C 145.94862,174.00000 144.10008,179.70652 142.36143,183.50000 L 140.98646,186.50000 L 141.61367,183.00000 z M 170.73097,184.34406 C 171.40800,184.07014 172.75800,184.05347 173.73097,184.30701 C 174.70394,184.56055 174.15000,184.78467 172.50000,184.80505 C 170.85000,184.82543 170.05394,184.61799 170.73097,184.34406 z M 162.00000,181.10901 C 163.37500,179.97352 165.17500,179.03724 166.00000,179.02840 C 167.31536,179.01430 166.51552,179.54745 160.75288,182.52598 C 160.06380,182.88214 160.62500,182.24451 162.00000,181.10901 z M 177.74108,182.40774 C 177.41533,182.08200 175.42783,181.20175 173.32441,180.45164 C 171.22098,179.70152 170.30985,179.06803 171.29966,179.04389 C 173.12499,178.99937 179.00000,181.65582 179.00000,182.52568 C 179.00000,183.17265 178.45492,183.12158 177.74108,182.40774 z M 124.00000,180.50000 C 124.00000,179.67500 124.45000,179.00000 125.00000,179.00000 C 125.55000,179.00000 126.00000,179.67500 126.00000,180.50000 C 126.00000,181.32500 125.55000,182.00000 125.00000,182.00000 C 124.45000,182.00000 124.00000,181.32500 124.00000,180.50000 z M 119.16498,173.47896 C 117.36257,170.46553 115.46310,168.00000 114.94394,168.00000 C 114.42477,168.00000 114.00000,167.10000 114.00000,166.00000 C 114.00000,164.90000 114.45000,164.00000 115.00000,164.00000 C 115.55000,164.00000 116.00000,164.63459 116.00000,165.41020 C 116.00000,166.18581 117.84558,169.15524 120.10128,172.00892 C 122.46348,174.99731 123.82931,177.57069 123.32233,178.07767 C 122.81534,178.58466 121.05248,176.63464 119.16498,173.47896 z M 100.66667,177.33333 C 100.30000,176.96667 100.00000,176.20167 100.00000,175.63333 C 100.00000,175.00673 100.46577,175.06577 101.18333,175.78333 C 101.83417,176.43417 102.13417,177.19917 101.85000,177.48333 C 101.56583,177.76750 101.03333,177.70000 100.66667,177.33333 z M 156.52283,177.09794 C 157.06027,176.57191 158.85000,175.82138 160.50000,175.43009 C 164.36977,174.51239 163.50056,175.36480 159.02283,176.87872 C 157.11038,177.52531 155.98538,177.62396 156.52283,177.09794 z M 391.00000,177.00000 C 390.20686,176.50981 389.88989,175.77678 390.29563,175.37104 C 390.70137,174.96530 391.55833,175.15833 392.20000,175.80000 C 393.71091,177.31091 392.86759,178.15423 391.00000,177.00000 z M 89.000000,175.94098 C 89.000000,175.35852 88.550000,175.16008 88.000000,175.50000 C 87.450000,175.83992 87.000000,175.24658 87.000000,174.18146 C 87.000000,173.11635 86.325000,171.68469 85.500000,171.00000 C 84.675000,170.31531 84.000000,168.95836 84.000000,167.98454 C 84.000000,167.01073 83.325000,165.95496 82.500000,165.63837 C 81.675000,165.32179 81.000000,164.51077 81.000000,163.83610 C 81.000000,163.16144 79.907095,161.45981 78.571323,160.05472 C 75.379194,156.69693 74.301010,152.48221 76.425609,151.66692 C 77.434712,151.27969 78.000000,151.61127 78.000000,152.59040 C 78.000000,153.43060 78.450000,153.83992 79.000000,153.50000 C 79.550000,153.16008 80.000000,153.71852 80.000000,154.74098 C 80.000000,155.76344 80.481186,157.08119 81.069301,157.66930 C 81.657417,158.25742 82.263272,159.35992 82.415645,160.11930 C 82.568018,160.87869 83.157922,162.62500 83.726543,164.00000 C 84.295164,165.37500 84.738268,166.72500 84.711220,167.00000 C 84.684171,167.27500 85.236451,168.57329 85.938507,169.88510 C 86.945247,171.76621 87.400332,171.97752 88.092174,170.88510 C 88.750632,169.84539 88.973193,170.04635 88.984687,171.69098 C 88.993109,172.89602 89.450000,174.16008 90.000000,174.50000 C 90.550000,174.83992 91.000000,175.54148 91.000000,176.05902 C 91.000000,176.57656 90.550000,177.00000 90.000000,177.00000 C 89.450000,177.00000 89.000000,176.52344 89.000000,175.94098 z M 166.25000,174.28375 C 167.76250,174.05462 170.23750,174.05462 171.75000,174.28375 C 173.26250,174.51287 172.02500,174.70034 169.00000,174.70034 C 165.97500,174.70034 164.73750,174.51287 166.25000,174.28375 z M 391.47560,172.66170 C 390.66402,171.50301 390.00000,171.10512 390.00000,171.77749 C 390.00000,172.44987 389.50186,173.00000 388.89301,173.00000 C 388.28417,173.00000 388.04504,172.32500 388.36163,171.50000 C 388.67821,170.67500 388.50135,170.00000 387.96862,170.00000 C 387.43588,170.00000 387.00000,169.38010 387.00000,168.62244 C 387.00000,167.86479 386.37146,166.72324 385.60323,166.08568 C 384.83501,165.44811 384.43607,164.04848 384.71669,162.97538 C 385.03625,161.75336 384.62401,160.79295 383.61345,160.40516 C 382.72605,160.06464 382.00000,159.19667 382.00000,158.47634 C 382.00000,157.75602 381.59352,157.01667 381.09671,156.83333 C 380.59990,156.65000 380.03740,153.59571 379.84671,150.04602 C 379.51479,143.86737 379.60665,143.56590 382.00000,142.97957 C 383.62363,142.58180 384.39700,141.77693 384.20616,140.68355 C 383.84199,138.59703 385.57477,138.44947 386.36163,140.50000 C 387.04940,142.29230 390.12789,142.47211 391.78333,140.81667 C 393.68055,138.91945 394.49106,140.79991 392.65200,142.83204 C 391.08075,144.56825 391.15865,144.91893 393.98112,148.81524 C 396.64119,152.48737 397.31882,152.88624 399.98966,152.35207 C 402.24560,151.90088 403.00000,152.11873 403.00000,153.22136 C 403.00000,154.03061 403.72239,156.14078 404.60530,157.91063 C 406.80696,162.32395 407.42048,169.65067 405.67561,170.69231 C 404.93148,171.13654 403.81373,172.40000 403.19173,173.50000 C 402.20546,175.24420 402.05693,175.27617 402.03041,173.75000 C 401.99575,171.75550 400.37356,171.37933 399.75891,173.22327 C 399.03426,175.39721 393.11032,174.99559 391.47560,172.66170 z M 405.00000,161.00000 C 405.00000,160.45000 404.52344,160.00000 403.94098,160.00000 C 403.35852,160.00000 403.16008,160.45000 403.50000,161.00000 C 403.83992,161.55000 404.31648,162.00000 404.55902,162.00000 C 404.80156,162.00000 405.00000,161.55000 405.00000,161.00000 z M 147.49597,171.15738 C 148.58588,169.86893 150.38266,168.35135 151.48881,167.78497 C 153.61272,166.69747 153.30339,167.03257 148.50715,171.01498 C 145.61973,173.41246 145.58411,173.41748 147.49597,171.15738 z M 180.44113,171.44483 C 178.57711,169.95144 178.58937,169.93298 180.75000,170.98002 C 181.98750,171.57971 183.00000,172.27953 183.00000,172.53518 C 183.00000,173.30040 182.48139,173.07942 180.44113,171.44483 z M 161.50000,166.39579 C 159.62865,164.95428 159.75730,164.90025 163.50000,165.55582 C 169.32176,166.57555 171.32593,167.93951 167.00000,167.93779 C 165.07500,167.93702 162.60000,167.24312 161.50000,166.39579 z M 154.27083,166.39583 C 154.60313,166.06354 155.46562,166.02802 156.18750,166.31689 C 156.98523,166.63611 156.74828,166.87307 155.58333,166.92105 C 154.52917,166.96447 153.93854,166.72813 154.27083,166.39583 z M 204.96892,161.38900 C 203.92270,157.65225 201.71503,154.70306 193.90605,146.61032 C 181.97768,134.24851 180.39085,132.30041 175.22254,123.67323 C 170.35610,115.54996 168.58973,108.95438 167.40961,94.500000 L 166.83810,87.500000 L 169.35427,92.709479 C 172.84825,99.943416 178.74385,108.35186 185.61525,115.90129 C 191.91322,122.82071 200.47195,130.01940 202.33980,129.96820 C 203.01207,129.94977 202.84195,129.42408 201.93526,128.71820 C 196.10104,124.17608 192.71249,121.00000 193.70073,121.00000 C 194.33676,121.00000 195.54018,121.68304 196.37500,122.51786 C 197.20982,123.35268 198.25446,123.95488 198.69643,123.85608 C 200.04868,123.55378 209.00171,126.19374 209.53152,127.05100 C 209.80516,127.49375 209.08996,128.15406 207.94220,128.51835 C 206.71193,128.90882 206.07235,129.74615 206.38400,130.55832 C 206.67476,131.31601 206.59481,132.13164 206.20633,132.37081 C 205.81785,132.60998 205.77622,140.16189 206.11382,149.15284 C 206.45142,158.14378 206.62601,165.62540 206.50181,165.77868 C 206.37760,165.93195 205.68780,163.95659 204.96892,161.38900 z M 408.00000,164.00000 C 408.00000,163.45000 408.70156,163.00000 409.55902,163.00000 C 410.41648,163.00000 410.83992,163.45000 410.50000,164.00000 C 410.16008,164.55000 409.45852,165.00000 408.94098,165.00000 C 408.42344,165.00000 408.00000,164.55000 408.00000,164.00000 z M 410.00000,161.05902 C 410.00000,160.47656 410.45000,160.00000 411.00000,160.00000 C 411.55000,160.00000 412.00000,160.19844 412.00000,160.44098 C 412.00000,160.68352 411.55000,161.16008 411.00000,161.50000 C 410.45000,161.83992 410.00000,161.64148 410.00000,161.05902 z M 227.62487,150.30286 C 225.98082,136.62629 225.84270,132.16244 226.99683,130.00592 C 227.65832,128.76992 227.76785,128.02544 227.24023,128.35153 C 226.24918,128.96403 221.02165,126.93732 221.00780,125.93521 C 221.00351,125.62458 222.54420,124.63405 224.43155,123.73403 C 228.35885,121.86124 231.01070,119.86039 235.67597,115.25000 C 239.50000,111.47097 240.00000,111.31839 240.00000,113.93045 C 240.00000,115.17105 239.19596,115.97509 237.75000,116.18045 C 236.42899,116.36806 235.49508,117.20308 235.48808,118.20283 C 235.48153,119.13939 234.01903,121.33029 232.23808,123.07149 C 230.45714,124.81269 229.00561,126.74642 229.01247,127.36866 C 229.02993,128.95307 238.91159,118.43603 242.51305,113.00000 C 244.15278,110.52500 245.73148,108.27500 246.02126,108.00000 C 247.24109,106.84242 252.00000,96.686655 252.00000,95.241047 C 252.00000,92.589439 253.30426,94.798565 253.66062,98.053777 C 253.84497,99.737691 253.58871,100.86384 253.09116,100.55634 C 252.59361,100.24883 252.41396,100.86697 252.69194,101.92998 C 253.59147,105.36979 249.78930,120.29631 246.03423,128.06677 C 244.02308,132.22849 239.81763,138.84196 236.68879,142.76338 C 233.55996,146.68480 230.98569,150.25476 230.96820,150.69662 C 230.95070,151.13848 230.32120,152.31129 229.56930,153.30286 C 228.33893,154.92543 228.14448,154.62542 227.62487,150.30286 z M 71.256034,148.17405 C 68.956689,145.41586 68.443362,143.99531 69.750000,144.00632 C 70.545761,144.01303 74.264318,150.06902 73.773843,150.55949 C 73.615111,150.71822 72.482097,149.64477 71.256034,148.17405 z M 441.00000,149.00000 C 441.00000,148.45000 441.45000,148.00000 442.00000,148.00000 C 442.55000,148.00000 443.00000,148.45000 443.00000,149.00000 C 443.00000,149.55000 442.55000,150.00000 442.00000,150.00000 C 441.45000,150.00000 441.00000,149.55000 441.00000,149.00000 z M 443.00000,146.05902 C 443.00000,145.47656 443.45000,145.00000 444.00000,145.00000 C 444.55000,145.00000 445.00000,145.19844 445.00000,145.44098 C 445.00000,145.68352 444.55000,146.16008 444.00000,146.50000 C 443.45000,146.83992 443.00000,146.64148 443.00000,146.05902 z M 64.741958,139.14032 C 63.812867,137.56749 63.340843,135.99249 63.693017,135.64032 C 64.045191,135.28814 63.856478,135.00000 63.273655,135.00000 C 62.690833,135.00000 61.954956,134.32500 61.638374,133.50000 C 60.861975,131.47674 61.283027,131.60390 64.121709,134.25000 C 65.449273,135.48750 66.634943,137.73750 66.756530,139.25000 C 67.033194,142.69161 66.833331,142.68073 64.741958,139.14032 z M 399.11831,126.18714 C 399.03734,124.60416 398.44774,123.94262 397.25000,124.09083 C 395.53127,124.30350 392.89076,123.57716 390.07773,122.11789 C 389.26016,121.69378 388.44886,119.27974 388.16954,116.44004 C 387.24709,107.06205 387.32996,106.52415 389.75000,106.18045 C 390.98750,106.00470 392.00000,105.21720 392.00000,104.43045 C 392.00000,102.74070 393.59309,102.53259 394.55940,104.09612 C 394.93200,104.69898 396.53355,105.00192 398.11842,104.76931 C 401.13119,104.32713 401.70237,104.89763 399.97568,106.62432 C 398.95430,107.64570 401.12768,118.42482 403.11404,122.18931 C 404.17382,124.19780 402.53196,125.65755 401.34030,123.76631 C 400.80243,122.91267 400.32964,123.47766 399.88952,125.50000 C 399.35936,127.93608 399.21439,128.06524 399.11831,126.18714 z M 445.75000,108.22845 C 444.78750,108.02215 444.00000,107.48883 444.00000,107.04331 C 444.00000,105.71743 440.13849,105.11511 439.59461,106.35616 C 439.10681,107.46924 439.23641,106.27479 440.56411,97.421038 C 441.42820,91.658874 444.45514,88.872921 449.03472,89.624814 C 452.47847,90.190224 452.50140,90.228886 452.72490,95.846879 C 453.10503,105.40159 450.89173,109.33054 445.75000,108.22845 z M 410.89475,91.750000 C 410.15341,89.962500 409.47181,87.993256 409.38010,87.373903 C 409.28838,86.754550 408.90458,84.842050 408.52721,83.123903 C 407.94066,80.453349 408.12594,80.000000 409.80391,80.000000 C 410.94403,80.000000 411.99226,79.137593 412.30480,77.942457 C 412.77880,76.129875 413.09032,76.039459 414.92143,77.183004 C 416.59129,78.225850 417.39326,78.235498 419.00000,77.232073 C 420.64277,76.206146 421.00000,76.233379 421.00000,77.384537 C 421.00000,78.155354 420.38717,79.021188 419.63815,79.308612 C 418.56258,79.721349 418.46231,81.017339 419.16116,85.473864 C 420.07632,91.309751 419.64903,93.383012 417.66729,92.722429 C 417.03510,92.511700 415.91920,92.937946 415.18750,93.669643 C 413.18171,95.675428 412.37273,95.313663 410.89475,91.750000 z " id="path1317" style="fill:#c8ab93"/>
+ <path d="M 149.75000,805.26101 C 146.56904,805.06140 144.00000,804.42359 144.00000,803.83346 C 144.00000,803.21524 144.94600,803.02025 146.25000,803.36971 C 147.48750,803.70135 155.92500,804.04219 165.00000,804.12714 C 177.21523,804.24149 180.07174,804.47903 176.00000,805.04190 C 170.37980,805.81882 160.01761,805.90532 149.75000,805.26101 z M 137.25000,803.31067 C 138.21250,803.05915 139.78750,803.05915 140.75000,803.31067 C 141.71250,803.56220 140.92500,803.76800 139.00000,803.76800 C 137.07500,803.76800 136.28750,803.56220 137.25000,803.31067 z M 216.50000,795.68271 C 220.35000,793.85106 225.01633,790.83469 226.86962,788.97967 C 230.08264,785.76366 230.21323,785.34884 229.67963,780.05346 C 229.17603,775.05577 229.26414,774.69426 230.56001,776.44113 C 233.30464,780.14094 231.88884,787.52215 227.73648,791.16146 C 225.00260,793.55755 216.57845,797.55757 212.50000,798.39615 C 210.85000,798.73541 212.65000,797.51437 216.50000,795.68271 z M 445.50000,797.30504 C 442.12905,796.52472 398.75812,776.73709 394.50000,774.03670 C 392.30000,772.64151 387.85419,769.47500 384.62043,767.00000 C 373.03266,758.13116 373.00868,758.11972 365.87573,758.05765 C 362.23238,758.02594 357.31811,758.68212 354.95514,759.51583 C 347.31052,762.21301 330.87897,765.10485 314.50000,766.63567 C 296.12400,768.35314 234.05109,768.25010 232.76531,766.50000 C 232.36123,765.95000 232.02373,766.65331 232.01531,768.06291 C 231.98658,772.87246 225.87170,776.94631 214.15905,779.95909 C 205.14816,782.27691 205.52297,781.55768 214.98677,778.37078 C 218.87666,777.06087 223.83160,774.81628 225.99774,773.38280 C 229.72516,770.91611 231.89066,767.55733 230.59131,766.25797 C 230.26609,765.93275 230.00000,766.34692 230.00000,767.17835 C 230.00000,768.00977 229.15603,769.45381 228.12450,770.38733 C 226.34292,771.99963 226.12078,771.93225 223.68865,769.04183 L 221.12830,765.99903 L 214.44659,767.54862 C 210.77165,768.40090 207.51778,768.85111 207.21577,768.54911 C 206.91376,768.24710 207.44322,768.00000 208.39235,768.00000 C 209.34148,768.00000 209.82877,767.53196 209.47523,766.95992 C 209.06038,766.28867 209.83735,766.11952 211.66621,766.48292 C 214.05583,766.95774 214.16657,766.89782 212.37274,766.10063 C 210.02158,765.05575 203.76142,766.12319 201.56890,767.94282 C 200.52765,768.80698 200.06885,768.77035 199.67619,767.79174 C 199.31065,766.88070 199.13463,766.85505 199.07895,767.70469 C 199.03553,768.36726 197.53750,769.16212 195.75000,769.47104 C 190.02640,770.46020 183.03616,770.75050 183.51282,769.97925 C 183.76679,769.56833 182.64522,768.68147 181.02045,768.00847 C 179.39567,767.33547 177.54629,766.15824 176.91071,765.39241 C 176.27513,764.62659 174.83521,764.00000 173.71089,764.00000 C 169.90203,764.00000 172.67089,762.96944 178.60064,762.18004 C 182.13638,761.70935 176.28654,761.56527 164.00000,761.82043 C 152.72500,762.05458 143.72584,762.00243 144.00186,761.70455 C 144.27789,761.40667 157.10289,760.91838 172.50186,760.61948 C 187.90084,760.32057 202.29551,759.63194 204.49002,759.08918 C 207.84208,758.26014 208.80143,758.39279 210.49002,759.91883 C 211.59551,760.91789 213.85000,762.51672 215.50000,763.47179 C 217.99441,764.91562 217.79057,764.54188 214.29050,761.25420 L 210.08099,757.30013 L 215.29050,756.12536 C 218.15572,755.47923 221.17500,754.48222 222.00000,753.90978 C 223.11670,753.13494 222.86117,753.07151 221.00000,753.66154 C 219.62500,754.09744 217.08047,754.46442 215.34549,754.47704 C 213.61051,754.48967 212.36571,754.78271 212.57926,755.12825 C 213.12497,756.01122 207.01296,757.12604 205.78549,756.36743 C 205.23049,756.02441 204.48920,756.19631 204.13820,756.74942 C 203.78719,757.30252 201.47500,758.06175 199.00000,758.43658 C 195.63490,758.94621 194.87830,758.84334 196.00000,758.02867 C 197.19694,757.15935 196.99490,757.03578 195.00000,757.41704 C 184.08877,759.50234 139.67328,760.46464 119.00000,759.06364 C 93.710183,757.34978 75.862911,755.27159 71.999325,753.59073 C 68.830807,752.21226 68.736336,752.06235 71.000000,752.00491 C 72.375000,751.97002 75.525000,751.75036 78.000000,751.51679 C 80.475000,751.28321 93.923580,752.21905 107.88573,753.59642 C 124.52900,755.23830 136.58247,755.93337 142.88573,755.61475 C 149.03046,755.30413 151.05650,755.41518 148.50000,755.92247 C 145.07227,756.60263 145.64455,756.73591 152.50000,756.85403 C 168.83277,757.13544 200.20827,753.88127 208.50000,751.04588 L 211.50000,750.02002 L 208.00000,750.48696 C 191.95226,752.62792 172.78802,753.91839 155.28525,754.03664 C 143.85336,754.11388 133.82500,753.94971 133.00000,753.67183 C 132.17500,753.39395 125.87500,752.87668 119.00000,752.52235 C 106.30503,751.86805 97.444493,750.77783 96.409394,749.74273 C 96.095105,749.42844 96.365914,748.18480 97.011191,746.97909 C 97.928142,745.26575 98.792683,744.90854 100.96898,745.34380 C 102.56067,745.66213 104.52842,745.33409 105.56238,744.57804 C 107.11978,743.43924 106.37244,743.27238 100.18619,743.37769 C 96.234424,743.44496 93.000897,743.58036 93.000579,743.67857 C 93.000260,743.77679 93.728571,744.58571 94.619048,745.47619 C 97.197428,748.05457 95.355803,748.52622 89.719835,746.73091 C 86.848926,745.81639 80.252448,744.91016 75.060996,744.71706 C 68.932856,744.48912 65.482947,743.94884 65.225586,743.17676 C 65.007562,742.52269 64.508629,742.18565 64.116844,742.42779 C 63.725059,742.66992 62.791403,742.48911 62.042052,742.02599 C 59.101933,740.20890 73.226592,739.75361 93.000000,741.02810 C 116.04548,742.51350 127.37386,742.55568 140.50000,741.20498 C 149.26526,740.30302 149.34350,740.27257 143.50000,740.03735 C 137.79198,739.80758 137.65815,739.74509 140.75000,738.75325 C 145.17721,737.33304 144.93620,735.60179 140.42899,736.44734 C 138.46493,736.81580 136.10243,737.35262 135.17899,737.64027 C 133.84161,738.05686 133.89494,737.84147 135.44113,736.58164 C 137.29079,735.07453 137.20834,735.00000 133.69113,735.00000 C 131.66101,735.00000 130.00000,735.38732 130.00000,735.86071 C 130.00000,737.21600 121.11547,737.91645 114.23491,737.10363 C 110.78911,736.69656 107.76074,736.57259 107.50521,736.82813 C 106.60836,737.72498 91.854877,738.04383 92.404524,737.15448 C 92.707626,736.66405 96.161625,735.94688 100.08008,735.56077 C 108.40104,734.74084 110.00000,734.24749 110.00000,732.50000 C 110.00000,730.65337 112.74489,729.86151 116.62368,730.58918 C 119.18340,731.06939 120.12529,730.83707 120.59643,729.60931 C 121.25642,727.88941 124.00000,727.36027 124.00000,728.95289 C 124.00000,729.50139 126.22799,729.68635 129.25000,729.38874 C 137.57933,728.56844 138.58826,728.19909 139.80712,725.52398 C 140.43962,724.13579 141.64177,723.00000 142.47856,723.00000 C 143.31535,723.00000 144.00000,722.60008 144.00000,722.11129 C 144.00000,721.62250 145.54964,720.93187 147.44364,720.57655 C 149.62614,720.16711 151.11571,719.21080 151.51103,717.96526 C 151.88670,716.78161 153.02624,716.00000 154.37626,716.00000 C 155.60907,716.00000 157.49125,715.33931 158.55887,714.53180 C 159.62649,713.72430 161.85000,713.04240 163.50000,713.01649 C 165.61211,712.98332 166.09094,712.71030 165.11787,712.09401 C 164.04724,711.41593 164.27261,711.03667 166.11787,710.41120 C 167.42804,709.96710 168.83750,709.69291 169.25000,709.80187 C 171.00442,710.26533 168.48614,704.95956 166.35402,703.70031 C 163.33912,701.91970 164.91574,700.00000 169.39301,700.00000 C 172.15679,700.00000 173.97800,699.49972 174.30366,698.65105 C 174.73695,697.52193 175.85436,697.51853 181.16065,698.63021 C 184.64729,699.36067 188.17500,699.96081 189.00000,699.96385 C 190.33333,699.96876 190.33333,699.86195 189.00000,699.00255 C 187.92279,698.30823 188.66056,698.10116 191.61754,698.26786 C 194.23119,698.41522 195.57594,698.91960 195.29937,699.64885 C 195.05972,700.28072 195.34433,701.09477 195.93183,701.45787 C 196.51932,701.82096 197.00000,701.60933 197.00000,700.98759 C 197.00000,700.36584 197.73437,699.12277 198.63193,698.22521 C 200.14117,696.71597 200.20830,696.76834 199.52480,698.92187 C 199.01497,700.52820 199.13176,701.03660 199.90132,700.56098 C 200.54391,700.16385 201.37409,700.83704 201.85931,702.14871 L 202.70170,704.42590 L 203.92059,702.14838 C 204.89980,700.31870 205.42071,700.10427 206.56974,701.05788 C 207.35638,701.71073 208.00000,702.86479 208.00000,703.62244 C 208.00000,704.42517 209.04321,705.00000 210.50000,705.00000 C 212.86785,705.00000 213.97422,706.44967 212.15358,707.16667 C 211.68805,707.35000 212.58660,708.54553 214.15036,709.82339 C 216.53924,711.77553 216.88426,711.85542 216.30955,710.32339 C 215.68459,708.65740 215.79277,708.62932 217.56277,709.99810 C 218.62825,710.82206 220.26362,712.32588 221.19693,713.33992 C 222.13024,714.35396 223.33170,714.91303 223.86685,714.58229 C 225.31724,713.68590 228.98626,718.84902 228.29511,720.81382 C 227.25539,723.76957 223.81079,726.90734 220.35295,728.04853 C 218.50883,728.65715 217.00347,729.45771 217.00770,729.82755 C 217.01839,730.76097 225.06190,735.27143 225.65612,734.67721 C 226.46525,733.86808 223.60738,730.00000 222.20044,730.00000 C 221.47528,730.00000 221.16008,729.55000 221.50000,729.00000 C 223.15767,726.31783 227.89686,730.75293 228.39825,735.45562 C 228.97709,740.88480 230.71694,741.81906 243.50000,743.56499 C 259.77799,745.78826 310.05980,745.12171 323.00000,742.51112 C 332.99316,740.49507 336.22366,739.08333 331.00000,739.01510 C 328.36582,738.98068 327.87106,738.72957 329.00000,738.00000 C 330.24421,737.19593 330.15895,737.02540 328.50000,737.00000 C 326.83587,736.97452 326.75190,736.80401 328.00000,735.98469 C 329.04248,735.30034 329.16129,734.77124 328.38953,734.25000 C 324.93962,731.91996 323.49658,723.00000 326.56955,723.00000 C 328.35930,723.00000 328.45170,721.11057 326.69492,720.43642 C 325.40361,719.94090 325.20803,715.09044 326.40150,713.15938 C 326.73753,712.61567 326.49939,711.99980 325.87230,711.79077 C 325.11949,711.53983 325.28724,710.85562 326.36607,709.77679 C 327.26473,708.87812 328.00000,707.73676 328.00000,707.24041 C 328.00000,706.74406 329.12500,705.73588 330.50000,705.00000 C 331.87500,704.26412 333.00000,703.35783 333.00000,702.98601 C 333.00000,701.48730 329.05694,698.84677 327.89307,699.56608 C 327.02346,700.10354 326.85754,699.81362 327.33006,698.58226 C 327.69853,697.62205 328.00000,696.64823 328.00000,696.41821 C 328.00000,696.18820 329.02499,696.00000 330.27776,696.00000 C 331.53053,696.00000 333.32612,695.10000 334.26797,694.00000 C 335.20982,692.90000 336.88483,692.00000 337.99021,692.00000 C 339.09560,692.00000 340.00000,691.55000 340.00000,691.00000 C 340.00000,690.45000 340.90000,690.00000 342.00000,690.00000 C 343.10000,690.00000 344.00000,690.38890 344.00000,690.86423 C 344.00000,691.33955 346.46218,694.33222 349.47150,697.51459 C 354.08459,702.39296 361.02645,711.88004 365.63272,719.60129 C 366.25571,720.64558 366.98305,721.27500 367.24902,721.00000 C 367.51500,720.72500 365.34479,716.45000 362.42635,711.50000 C 356.52186,701.48536 355.84786,699.56899 359.40565,702.91136 C 361.43439,704.81726 362.15247,704.98877 363.98884,704.00597 C 366.23256,702.80517 366.47517,702.92295 372.20199,707.99315 C 374.79277,710.28688 376.35168,711.49919 378.00000,712.50209 C 379.20719,713.23659 379.17409,712.93505 377.83042,710.95737 C 376.91215,709.60582 375.61944,708.63090 374.95774,708.79089 C 374.22148,708.96891 373.99514,708.45504 374.37445,707.46659 C 374.71534,706.57824 374.30527,705.16242 373.46318,704.32033 C 372.49240,703.34954 372.18029,702.00732 372.61030,700.65247 C 373.19807,698.80058 373.07976,698.68892 371.72292,699.81499 C 370.36839,700.93915 370.23412,700.82074 370.72683,698.93659 C 371.04005,697.73885 372.30761,694.67563 373.54364,692.12944 C 374.77966,689.58325 375.67833,687.37783 375.54066,687.22852 C 375.40300,687.07920 374.21253,687.38818 372.89518,687.91513 C 371.57783,688.44208 371.13750,688.90175 371.91667,688.93661 C 372.69583,688.97148 373.09774,689.23559 372.80979,689.52354 C 372.52185,689.81148 371.53362,689.75826 370.61374,689.40527 C 369.06262,688.81005 369.06085,688.67599 370.58936,687.55832 C 372.02614,686.50772 372.06197,686.04197 370.86875,683.92658 C 370.11594,682.59196 369.05000,681.17891 368.50000,680.78647 C 367.95000,680.39404 367.65235,679.71904 367.83855,679.28647 C 368.02476,678.85391 367.61949,677.07886 366.93797,675.34190 C 365.73158,672.26728 362.50745,670.00000 359.34166,670.00000 C 358.09411,670.00000 357.91100,669.28795 358.43721,666.48299 C 358.80010,664.54863 358.74908,662.41113 358.32383,661.73299 C 357.89859,661.05485 357.53926,658.47500 357.52533,656.00000 C 357.50005,651.50942 357.49162,651.49890 353.50000,650.97548 C 350.91186,650.63610 348.66607,650.96747 347.13735,651.91431 C 344.87426,653.31598 344.80341,653.70684 345.45607,661.18882 C 345.83083,665.48497 345.91082,669.00000 345.63382,669.00000 C 345.35683,669.00000 343.91931,668.53962 342.43933,667.97693 C 339.85454,666.99420 339.77570,666.74854 340.43935,661.74571 C 340.81933,658.88122 341.66343,656.19849 342.31512,655.78409 C 343.10670,655.28072 342.91912,655.02554 341.75000,655.01531 C 340.78750,655.00689 340.00000,654.32500 340.00000,653.50000 C 340.00000,651.06842 338.00746,651.78725 337.92105,654.25000 C 337.84943,656.29117 337.74888,656.24476 336.83772,653.75000 C 336.12702,651.80410 335.13904,651.00000 333.45888,651.00000 C 331.38219,651.00000 331.12384,650.59243 331.39874,647.75000 C 332.01115,641.41793 333.13898,638.80308 335.04295,639.30098 C 336.10781,639.57945 337.05222,639.10874 337.38472,638.13383 C 337.69119,637.23522 338.51750,635.69969 339.22097,634.72153 C 340.27838,633.25123 340.24009,632.77143 339.00000,631.95253 C 337.70282,631.09593 337.76247,630.76174 339.44113,629.48100 C 342.69656,626.99725 349.21097,627.78505 347.10649,630.40799 C 346.60476,631.03333 346.60643,632.49326 347.11040,633.82424 C 348.17551,636.63713 351.58680,636.38961 351.32885,633.51815 C 351.18037,631.86520 353.78437,626.75664 354.12762,628.02749 C 354.67688,630.06105 354.58969,633.00000 353.98010,633.00000 C 353.56934,633.00000 352.99791,633.90000 352.71025,635.00000 C 352.02865,637.60643 352.74177,637.52984 355.03789,634.75000 C 356.89606,632.50036 356.89628,632.50035 356.35394,634.66438 C 355.98124,636.15153 356.41265,637.15048 357.73270,637.85694 C 360.68000,639.43429 363.37444,635.80946 362.54422,631.38401 L 361.90937,628.00000 L 367.00014,628.00000 C 371.02539,628.00000 372.58796,628.49706 374.46570,630.37480 C 377.05428,632.96337 382.66199,634.32321 383.35039,632.52928 C 383.58531,631.91710 383.15257,630.56156 382.38876,629.51698 C 381.62494,628.47240 381.00000,627.24518 381.00000,626.78982 C 381.00000,625.41634 386.37236,627.14924 388.28896,629.14094 C 389.27288,630.16342 390.37538,631.00000 390.73896,631.00000 C 391.10253,631.00000 390.86000,630.46000 390.20000,629.80000 C 387.93687,627.53687 389.01310,627.34501 396.91656,628.60264 C 404.76154,629.85095 411.00000,632.21918 411.00000,633.94895 C 411.00000,635.20886 406.69129,640.42787 399.60790,647.74788 C 395.29035,652.20965 393.05285,653.83416 391.78099,653.43049 C 390.30020,652.96050 390.00000,653.46653 390.00000,656.43261 C 390.00000,658.39468 389.62223,660.00000 389.16052,660.00000 C 388.69880,660.00000 387.80845,661.12500 387.18195,662.50000 C 386.51377,663.96651 385.20722,665.00000 384.02144,665.00000 C 382.90965,665.00000 382.00000,665.24867 382.00000,665.55259 C 382.00000,668.35400 389.51842,696.85175 390.52236,697.85569 C 391.39926,698.73259 391.01629,696.19464 389.00701,687.81335 C 386.33525,676.66869 386.37466,675.62623 389.43871,676.39526 C 392.55721,677.17796 393.47493,675.68396 391.66053,672.77825 C 390.87810,671.52521 389.95083,669.26250 389.59992,667.75000 C 389.07697,665.49600 389.30231,665.00000 390.84928,665.00000 C 392.27362,665.00000 392.86083,665.92002 393.24275,668.75000 C 393.52110,670.81250 395.08121,674.75654 396.70965,677.51454 C 398.93317,681.28041 399.81711,684.27845 400.25942,689.55431 C 400.58335,693.41818 401.78227,699.03663 402.92369,702.03976 C 405.38896,708.52603 405.33058,708.06409 403.60115,707.40044 C 398.44050,705.42011 403.87255,714.94073 412.37485,722.77788 C 417.48902,727.49196 424.56135,731.38230 426.59695,730.60117 C 429.08716,729.64559 428.08590,728.57436 420.95170,724.56142 C 417.10060,722.39519 412.91663,719.24519 411.65399,717.56142 C 408.12089,712.84988 407.70373,711.94908 409.34691,712.57963 C 411.86418,713.54559 412.32749,710.90810 410.12500,708.15017 C 404.53550,701.15106 403.59094,698.06976 403.48824,686.50000 C 403.41086,677.78265 402.98692,674.66994 401.44530,671.50000 C 398.90896,666.28469 397.49984,664.87096 395.57430,665.60986 C 394.70844,665.94213 394.00000,665.76398 394.00000,665.21398 C 394.00000,664.66398 394.67500,663.95496 395.50000,663.63837 C 396.40657,663.29049 397.00606,661.76459 397.01531,659.78138 C 397.03085,656.45190 397.88886,654.26879 399.25000,654.09549 C 399.66250,654.04297 400.63370,654.00000 401.40822,654.00000 C 403.49062,654.00000 410.93063,646.34133 415.50000,639.49406 C 417.70000,636.19733 419.72843,633.27500 420.00763,633.00000 C 420.28682,632.72500 421.78293,630.12736 423.33230,627.22747 C 425.31351,623.51934 426.05440,620.85276 425.82932,618.24027 C 425.44552,613.78557 427.41019,612.89207 431.07102,615.85643 C 432.90446,617.34105 433.39831,618.59825 433.17342,621.20853 C 433.01176,623.08496 433.80660,626.97232 434.93974,629.84713 C 437.77157,637.03154 437.54938,639.94201 433.50000,648.70637 C 431.57500,652.87278 430.00000,657.54555 430.00000,659.09031 C 430.00000,661.40106 428.86214,662.71091 423.58115,666.47934 C 416.45521,671.56431 413.00000,676.43915 413.00000,681.40794 C 413.00000,685.08476 414.41879,690.15952 416.55769,694.13317 C 417.93331,696.68881 420.30301,710.03032 419.52034,710.81300 C 419.30645,711.02688 418.60788,709.24396 417.96795,706.85094 C 417.32803,704.45792 416.46144,702.05000 416.04221,701.50000 C 414.89471,699.99457 411.00000,687.87207 411.00000,685.80583 C 411.00000,684.81262 410.32500,684.00000 409.50000,684.00000 C 406.85231,684.00000 408.19153,691.08124 412.71507,701.00000 C 419.01627,714.81664 419.24738,715.21572 420.15221,713.84235 C 420.86383,712.76223 421.23884,712.84324 422.07192,714.25703 C 422.64135,715.22340 424.88418,716.92059 427.05597,718.02855 C 430.86197,719.97023 431.10240,719.97901 433.70836,718.27152 C 435.19539,717.29718 436.54438,716.72500 436.70613,717.00000 C 437.30468,718.01765 444.00000,711.85666 444.00000,710.28822 C 444.00000,707.98092 449.38658,698.70512 455.49129,690.50000 C 461.02565,683.06146 462.46427,680.43417 474.47150,655.83720 C 478.67677,647.22266 483.15323,638.96898 484.41919,637.49569 L 486.72093,634.81698 L 490.61047,636.78015 C 494.51340,638.75008 506.15831,642.00000 509.31389,642.00000 C 511.80594,642.00000 511.48469,643.20255 506.00000,654.40492 C 503.25000,660.02174 501.00000,665.06921 501.00000,665.62151 C 501.00000,667.93353 495.82075,677.12318 494.22852,677.63628 C 488.40654,679.51246 485.78309,681.75642 483.28130,687.00000 C 481.83802,690.02500 480.10116,693.17500 479.42161,694.00000 C 478.74205,694.82500 477.66210,697.52500 477.02172,700.00000 C 476.38133,702.47500 474.50762,707.92453 472.85790,712.11007 C 470.33549,718.50976 469.51181,719.69341 467.67921,719.55210 C 466.48064,719.45969 464.92720,719.81130 464.22711,720.33348 C 463.28957,721.03276 463.12016,720.85044 463.58410,719.64144 C 463.93053,718.73865 463.74239,718.00000 463.16601,718.00000 C 461.58700,718.00000 461.02574,719.42361 461.98977,720.98344 C 462.69917,722.13128 463.12026,722.14509 464.42378,721.06325 C 465.74859,719.96377 466.00000,720.01390 466.00000,721.37756 C 466.00000,722.26990 466.56250,723.04486 467.25000,723.09968 C 467.93750,723.15450 467.37500,723.51229 466.00000,723.89476 C 462.16446,724.96167 462.72932,728.23719 467.00000,729.69356 L 470.50000,730.88712 L 467.50000,731.06198 C 465.85000,731.15815 464.05000,731.12869 463.50000,730.99651 C 459.36718,730.00328 458.89109,730.07230 461.50000,731.28644 C 464.90254,732.86992 481.30343,734.43641 478.95993,732.95408 C 478.06084,732.38537 477.95752,732.02474 478.69098,732.01531 C 479.34602,732.00689 480.16008,732.45000 480.50000,733.00000 C 480.83992,733.55000 481.65398,733.99311 482.30902,733.98469 C 483.02463,733.97549 482.90129,733.58246 482.00000,733.00000 C 480.66667,732.13833 480.66667,732.03066 482.00000,732.03093 C 482.82500,732.03110 486.20000,732.66943 489.50000,733.44943 C 493.01140,734.27940 495.63826,734.48031 495.83333,733.93381 C 496.01667,733.42021 496.77504,733.00000 497.51861,733.00000 C 498.26217,733.00000 499.43141,731.44896 500.11691,729.55324 C 500.80241,727.65752 501.73154,726.33408 502.18164,726.61226 C 502.63174,726.89043 503.00000,726.64148 503.00000,726.05902 C 503.00000,725.47656 502.59213,725.00000 502.09362,725.00000 C 501.59511,725.00000 501.42259,724.10000 501.71025,723.00000 C 501.99791,721.90000 502.74328,720.99311 503.36663,720.98469 C 504.03782,720.97562 503.94282,720.61639 503.13367,720.10377 C 502.09798,719.44764 502.03012,718.78586 502.85326,717.36908 C 503.61181,716.06348 503.94835,715.93446 503.96959,716.94113 C 503.99143,717.97621 504.39765,717.83844 505.41132,716.45216 C 506.84403,714.49282 506.57239,712.52821 505.00290,713.49821 C 503.92818,714.16242 502.65011,710.37514 503.49025,709.01578 C 503.83089,708.46461 504.32695,706.09809 504.59262,703.75683 C 504.85828,701.41557 505.53915,698.05074 506.10567,696.27942 C 506.67218,694.50810 507.00389,692.25810 506.84280,691.27942 C 506.68171,690.30074 506.96530,688.83629 507.47298,688.02508 C 507.98067,687.21388 508.41944,685.41388 508.44802,684.02508 C 508.48921,682.02410 508.94862,681.56182 510.66141,681.79785 C 513.01260,682.12185 514.65716,680.52418 513.01631,679.51008 C 512.45734,679.16462 512.00000,679.44852 512.00000,680.14098 C 512.00000,681.06545 511.70429,681.10429 510.88713,680.28713 C 509.61375,679.01375 510.57110,676.88033 512.32541,677.08197 C 512.97143,677.15622 514.52198,676.88819 515.77108,676.48634 C 517.48421,675.93521 517.77937,675.43908 516.97252,674.46688 C 515.62407,672.84211 516.32943,672.39053 524.88592,669.40066 C 530.84081,667.31986 531.71414,667.23790 533.74598,668.56922 C 534.98569,669.38151 536.00000,670.51229 536.00000,671.08207 C 536.00000,671.65185 536.49804,671.81023 537.10676,671.43402 C 537.88509,670.95298 537.89625,670.55391 537.14436,670.08922 C 535.59272,669.13025 536.94988,665.00000 538.81663,665.00000 C 540.04814,665.00000 540.13333,665.26667 539.20000,666.20000 C 537.56679,667.83321 537.69181,669.00000 539.50000,669.00000 C 540.32500,669.00000 541.00000,669.45000 541.00000,670.00000 C 541.00000,670.55000 540.55000,671.00000 540.00000,671.00000 C 539.45000,671.00000 539.00000,671.51974 539.00000,672.15499 C 539.00000,672.80548 539.88392,672.51004 541.02363,671.47861 C 542.57753,670.07236 542.75162,669.45188 541.77363,668.80562 C 540.82593,668.17938 541.26194,667.29106 543.47741,665.33435 L 546.45483,662.70471 L 541.73753,663.41211 C 537.43387,664.05748 537.08811,663.96082 537.79423,662.30976 C 539.91284,657.35602 542.46289,653.00000 543.24423,653.00000 C 543.72482,653.00000 543.80142,652.48772 543.41446,651.86159 C 542.90865,651.04318 543.80563,650.91762 546.60544,651.41491 C 552.48852,652.45982 554.08209,653.05815 553.49821,654.00290 C 553.20625,654.47530 553.42472,655.14446 553.98369,655.48992 C 554.54266,655.83538 555.00000,655.63616 555.00000,655.04720 C 555.00000,654.35066 556.48553,654.20677 559.25000,654.63554 C 566.93962,655.82819 567.65380,656.47875 562.84696,657.91208 C 560.45613,658.62499 557.45883,659.61483 556.18629,660.11173 C 554.75745,660.66966 554.09441,660.65626 554.45261,660.07669 C 554.77162,659.56052 554.57528,658.85554 554.01631,658.51008 C 553.45734,658.16462 553.00000,658.38508 553.00000,659.00000 C 553.00000,659.61492 552.48047,659.79695 551.84549,659.40451 C 551.11691,658.95422 550.96299,659.13110 551.42827,659.88394 C 551.87635,660.60895 550.57424,662.57558 548.10866,664.89766 C 545.87737,666.99909 544.37387,669.04054 544.76755,669.43422 C 545.16124,669.82790 544.64560,670.61883 543.62169,671.19184 C 542.35743,671.89935 542.12780,672.46095 542.90611,672.94197 C 543.73198,673.45239 543.04319,677.95983 540.44079,689.07514 C 538.45452,697.55881 536.81153,705.50408 536.78970,706.73130 C 536.76786,707.95851 536.14071,709.46826 535.39601,710.08630 C 534.41907,710.89709 534.31974,711.72892 535.03930,713.07344 C 536.12691,715.10566 536.01087,721.12475 534.89735,720.43656 C 534.51907,720.20277 533.93742,720.72071 533.60478,721.58753 C 532.66075,724.04765 532.88992,725.18607 534.16994,724.39497 C 534.96759,723.90200 535.12669,724.22746 534.66994,725.41774 C 534.30147,726.37795 534.00000,728.47677 534.00000,730.08179 C 534.00000,731.68680 533.51968,733.00000 532.93261,733.00000 C 532.31010,733.00000 532.12160,732.06223 532.48036,730.75000 C 533.01679,728.78788 532.95358,728.72660 531.98629,730.27103 C 531.37622,731.24510 530.50572,731.81255 530.05185,731.53204 C 529.59797,731.25153 528.67053,731.69207 527.99086,732.51101 C 527.13301,733.54466 527.09836,734.00000 527.87756,734.00000 C 528.49490,734.00000 529.00000,733.48115 529.00000,732.84699 C 529.00000,732.21283 529.90000,732.73169 531.00000,734.00000 C 532.10000,735.26831 533.00000,736.67133 533.00000,737.11783 C 533.00000,738.15031 536.08088,739.79740 542.46494,742.17795 L 547.50000,744.05547 L 537.31661,743.50998 C 531.71575,743.20995 525.06987,742.57900 522.54799,742.10787 C 520.02611,741.63673 517.75323,741.59027 517.49714,742.00463 C 516.86167,743.03284 532.58963,745.79490 543.00000,746.48332 C 550.73809,746.99502 551.32600,746.90891 549.55887,745.52270 C 547.65747,744.03116 547.66236,744.00000 549.79814,744.00000 C 550.99737,744.00000 554.34587,744.89977 557.23927,745.99950 C 564.88018,748.90365 565.48922,748.72471 566.76425,743.20099 C 568.17590,737.08539 570.76008,718.45239 571.36884,710.00000 C 571.80100,703.99974 575.49712,685.49380 577.99672,676.81518 C 579.12749,672.88915 585.33257,667.45243 590.00000,666.29826 C 591.37500,665.95824 594.23921,664.58875 596.36491,663.25494 C 598.49062,661.92113 600.55226,661.20562 600.94634,661.66491 C 601.34041,662.12421 602.23451,664.52500 602.93321,667.00000 C 603.63191,669.47500 605.95777,674.13878 608.10179,677.36395 C 610.24581,680.58913 612.00000,683.76335 612.00000,684.41779 C 612.00000,685.07222 610.38807,687.15844 608.41792,689.05383 C 603.08199,694.18731 602.77954,695.16804 605.07017,699.90909 C 609.25791,708.57673 604.47543,717.44339 590.84403,726.28416 C 587.90481,728.19042 584.07094,731.26881 582.32430,733.12504 C 579.01945,736.63725 574.63669,746.60314 575.66514,748.26720 C 575.99024,748.79323 575.78568,749.51443 575.21055,749.86987 C 574.63543,750.22532 573.95239,753.43750 573.69268,757.00807 C 573.43297,760.57863 572.97922,764.17500 572.68436,765.00000 C 572.38950,765.82500 571.47877,769.27813 570.66052,772.67363 C 568.91629,779.91171 565.93699,784.35938 561.60822,786.18741 C 559.63250,787.02175 554.30989,787.48942 547.00000,787.47095 C 537.01400,787.44573 534.52257,787.08368 528.07567,784.72095 C 518.44612,781.19181 513.86834,781.24699 507.50000,784.96898 C 494.48341,792.57655 490.58862,794.06325 478.50000,796.03867 C 467.57790,797.82347 450.56073,798.47650 445.50000,797.30504 z M 492.19391,767.95994 C 495.75947,764.39438 495.61148,761.51300 491.53078,755.04875 C 488.20780,749.78482 488.32413,749.62641 492.57120,753.63192 C 496.06312,756.92523 498.38586,757.80271 499.37500,756.20225 C 499.64617,755.76349 499.56023,754.97599 499.18402,754.45225 C 498.34669,753.28657 490.24925,746.79913 487.50000,745.09135 C 485.80051,744.03566 485.77691,743.93610 487.34290,744.42876 C 492.04154,745.90693 493.82977,746.08445 494.41891,745.13120 C 494.76932,744.56423 494.03894,743.55602 492.79585,742.89074 C 489.96913,741.37793 477.26756,738.04012 474.25000,738.01714 C 472.97427,738.00742 472.00000,737.38119 472.00000,736.57090 C 472.00000,735.11496 466.66902,733.70652 456.50000,732.47581 C 446.94420,731.31931 444.48311,730.98655 441.50000,730.44768 C 438.68919,729.93994 438.61888,730.00074 440.38503,731.41186 C 442.20904,732.86920 444.24971,733.27311 456.03591,734.50963 C 461.25470,735.05715 461.56976,735.24536 461.53591,737.79521 C 461.50549,740.08666 461.95845,740.53897 464.50000,740.75499 C 471.72823,741.36937 478.66667,743.25317 478.66667,744.60127 C 478.66667,745.51279 477.53408,746.00000 475.41512,746.00000 C 470.91103,746.00000 469.00000,746.90087 469.00000,749.02412 C 469.00000,750.39513 470.25711,751.10387 474.18180,751.94557 C 480.10981,753.21690 482.00000,754.46344 482.00000,757.10152 C 482.00000,759.47485 487.23180,770.94979 488.32692,770.97840 C 488.78173,770.99028 490.52187,769.63197 492.19391,767.95994 z M 469.70295,765.81135 C 473.28245,764.29019 478.00000,760.01836 478.00000,758.29821 C 478.00000,755.65988 471.78337,753.00931 465.50000,752.96861 C 462.20000,752.94723 456.78734,752.34716 453.47186,751.63513 C 448.79528,750.63078 446.66529,750.60162 443.97186,751.50507 C 440.61931,752.62962 436.86995,757.20329 438.20566,758.53900 C 439.60364,759.93697 453.63927,763.00000 458.64719,763.00000 C 462.90618,763.00000 464.13701,763.38749 465.00000,765.00000 C 466.25946,767.35332 466.12790,767.33062 469.70295,765.81135 z M 227.91667,763.36455 C 229.28899,762.16389 226.03413,763.27891 224.44113,764.55517 C 222.61082,766.02154 222.64273,766.04236 225.00000,764.91971 C 226.37500,764.26487 227.68750,763.56505 227.91667,763.36455 z M 552.50000,764.56677 C 555.47115,763.61634 556.07990,763.10569 554.86673,762.58142 C 553.96844,762.19323 551.55098,762.57860 549.49461,763.43781 C 544.25434,765.62733 543.41677,765.49450 534.12271,761.00000 C 529.57340,758.80000 525.62670,757.00000 525.35229,757.00000 C 525.07787,757.00000 524.99885,757.74645 525.17668,758.65877 C 525.36146,759.60678 528.28517,761.51868 532.00000,763.12073 C 539.20173,766.22653 545.84615,766.69522 552.50000,764.56677 z M 535.00000,758.51254 C 535.00000,757.84244 527.38776,753.09010 525.79210,752.76403 C 525.08145,752.61882 524.27500,752.27500 524.00000,752.00000 C 523.72500,751.72500 520.57500,750.05731 517.00000,748.29402 C 509.56139,744.62509 504.30393,743.06471 505.40986,744.85416 C 505.79936,745.48437 506.72893,746.00000 507.47559,746.00000 C 508.88561,746.00000 529.77894,756.55792 531.45000,758.11487 C 532.45574,759.05193 535.00000,759.33694 535.00000,758.51254 z M 413.03673,747.70429 L 417.44309,746.42853 L 412.97154,744.33404 C 410.51219,743.18208 405.42071,741.18582 401.65714,739.89792 C 395.77220,737.88408 394.55191,737.04199 392.94004,733.88247 C 391.90921,731.86187 390.35031,729.49317 389.47582,728.61868 C 388.02251,727.16537 387.66950,727.17045 385.36903,728.67778 C 383.72458,729.75526 383.01868,730.96344 383.33249,732.16343 C 383.59664,733.17354 383.45725,734.00000 383.02274,734.00000 C 382.11928,734.00000 376.06482,727.29938 374.36728,724.42080 C 373.74429,723.36436 372.90100,722.81829 372.49332,723.20730 C 371.45114,724.20175 375.17137,730.20407 382.35779,739.12290 C 389.35577,747.80788 391.68869,749.71131 393.32717,748.07283 C 394.11567,747.28433 393.81907,746.56157 392.25842,745.46845 C 389.03692,743.21202 386.83683,740.82984 387.42821,740.23845 C 387.71611,739.95055 388.66017,740.30300 389.52612,741.02167 C 392.83491,743.76773 407.49994,750.80911 408.05154,749.91661 C 408.36989,749.40150 410.61323,748.40596 413.03673,747.70429 z M 441.50000,750.00000 C 441.16008,749.45000 440.43197,749.00000 439.88197,749.00000 C 439.33197,749.00000 439.16008,749.45000 439.50000,750.00000 C 439.83992,750.55000 440.56803,751.00000 441.11803,751.00000 C 441.66803,751.00000 441.83992,750.55000 441.50000,750.00000 z M 199.00000,749.60699 C 199.00000,749.39083 198.30163,748.94599 197.44806,748.61844 C 196.55814,748.27695 196.15674,748.44459 196.50708,749.01145 C 197.09434,749.96166 199.00000,750.41690 199.00000,749.60699 z M 192.71086,743.99963 C 192.89309,739.67877 192.66351,739.00000 191.01987,739.00000 C 189.97386,739.00000 188.87506,738.60686 188.57809,738.12635 C 187.84431,736.93907 199.54251,734.72002 202.15842,735.55028 C 203.56128,735.99553 204.02505,735.84954 203.56621,735.10713 C 202.41814,733.24952 205.78232,733.85600 210.83847,736.41815 C 216.26999,739.17051 222.19436,740.52313 224.66517,739.57499 C 226.19100,738.98947 226.16872,738.80655 224.42270,737.58424 C 217.49015,732.73110 212.63527,730.80271 208.86679,731.40531 C 206.51809,731.78088 205.00000,731.62640 205.00000,731.01182 C 205.00000,730.45532 206.01250,729.94780 207.25000,729.88400 C 209.28332,729.77917 209.30740,729.72167 207.50000,729.28693 C 206.40000,729.02235 205.07250,728.39955 204.55000,727.90294 C 203.26756,726.68403 200.00000,726.75374 200.00000,728.00000 C 200.00000,728.55000 200.52500,729.00000 201.16667,729.00000 C 201.80833,729.00000 202.09774,729.23559 201.80979,729.52354 C 200.80905,730.52428 197.99991,728.77603 197.98469,727.14301 C 197.97222,725.80505 197.80535,725.75903 197.08596,726.89515 C 196.37461,728.01857 196.09663,727.92118 195.65869,726.39515 C 195.16237,724.66564 195.13167,724.67481 195.30742,726.50000 C 195.43147,727.78833 197.08512,729.26052 199.95462,730.63727 C 203.42670,732.30313 203.97811,732.86978 202.45462,733.20635 C 201.37958,733.44384 199.38436,733.24149 198.02080,732.75669 C 196.40627,732.18265 195.41808,732.24575 195.18746,732.93761 C 194.63762,734.58713 193.19641,734.19044 192.68933,732.25000 C 192.26891,730.64124 192.22264,730.64685 192.11600,732.31955 C 192.03371,733.61042 191.34624,734.04625 189.75000,733.81955 C 187.53579,733.50508 187.49564,733.24274 187.22560,717.32680 L 186.95119,701.15361 L 183.83979,702.04595 C 179.91915,703.17037 178.54818,704.40249 182.25205,703.47288 L 185.00000,702.78318 L 185.09635,709.14159 C 185.14934,712.63872 185.27025,719.70028 185.36503,724.83395 C 185.45981,729.96762 185.20019,734.37628 184.78809,734.63097 C 183.55036,735.39592 162.85660,737.95949 157.75000,737.98048 C 155.13750,737.99121 153.00000,738.41968 153.00000,738.93261 C 153.00000,740.46123 156.91530,741.23873 161.34876,740.59051 C 166.19246,739.88231 179.69881,738.74118 182.27161,738.82277 C 183.30776,738.85563 183.76254,738.42480 183.36710,737.78497 C 182.93611,737.08761 183.15887,736.98016 183.98152,737.48858 C 184.95128,738.08792 184.67898,738.74221 182.88603,740.12085 C 181.57371,741.12992 180.95000,741.97243 181.50000,741.99308 C 182.05000,742.01373 181.92104,742.39797 181.21341,742.84694 C 180.31855,743.41472 181.07971,744.13685 183.71341,745.21875 C 189.80761,747.72218 192.50000,748.85998 192.50000,748.93195 C 192.50000,748.96897 192.59489,746.74943 192.71086,743.99963 z M 189.00000,741.44098 C 189.00000,740.58352 189.45000,740.16008 190.00000,740.50000 C 190.55000,740.83992 191.00000,741.54148 191.00000,742.05902 C 191.00000,742.57656 190.55000,743.00000 190.00000,743.00000 C 189.45000,743.00000 189.00000,742.29844 189.00000,741.44098 z M 434.00000,748.00000 C 432.04163,746.73440 430.71782,746.73440 431.50000,748.00000 C 431.83992,748.55000 432.87898,748.99311 433.80902,748.98469 C 435.26629,748.97149 435.29269,748.83540 434.00000,748.00000 z M 427.73097,747.30701 C 426.75800,747.05347 425.40800,747.07014 424.73097,747.34406 C 424.05394,747.61799 424.85000,747.82543 426.50000,747.80505 C 428.15000,747.78467 428.70394,747.56055 427.73097,747.30701 z M 108.55384,745.91288 C 108.92337,745.31497 110.07555,745.04800 111.11424,745.31962 C 112.15293,745.59125 112.75058,745.40545 112.44236,744.90674 C 112.13414,744.40803 111.31953,744.00000 110.63211,744.00000 C 109.00918,744.00000 105.12363,746.92634 106.69098,746.96820 C 107.34602,746.98569 108.18431,746.51080 108.55384,745.91288 z M 70.730968,742.30701 C 69.758001,742.05347 68.408001,742.07014 67.730968,742.34406 C 67.053936,742.61799 67.850000,742.82543 69.500000,742.80505 C 71.150000,742.78467 71.703936,742.56055 70.730968,742.30701 z M 438.00000,740.94897 C 438.00000,739.81317 433.18437,737.54947 428.44463,736.45724 C 425.82436,735.85342 425.99569,736.11276 430.00000,738.81158 C 434.60492,741.91519 438.00000,742.82227 438.00000,740.94897 z M 420.00000,734.00000 C 420.00000,733.45000 419.41310,733.00000 418.69578,733.00000 C 417.97846,733.00000 415.23510,731.63241 412.59942,729.96091 C 409.96374,728.28941 407.99905,727.49715 408.23344,728.20031 C 408.46783,728.90348 411.03758,730.72107 413.94399,732.23940 C 419.89836,735.35000 420.00000,735.37955 420.00000,734.00000 z M 142.00000,732.94098 C 142.00000,732.35852 141.55000,732.16008 141.00000,732.50000 C 140.45000,732.83992 140.00000,733.31648 140.00000,733.55902 C 140.00000,733.80156 140.45000,734.00000 141.00000,734.00000 C 141.55000,734.00000 142.00000,733.52344 142.00000,732.94098 z M 512.00000,732.00000 C 512.00000,731.45000 511.57656,731.00000 511.05902,731.00000 C 510.54148,731.00000 509.83992,731.45000 509.50000,732.00000 C 509.16008,732.55000 509.58352,733.00000 510.44098,733.00000 C 511.29844,733.00000 512.00000,732.55000 512.00000,732.00000 z M 456.76166,729.31292 C 455.80557,729.06263 454.00557,729.05355 452.76166,729.29274 C 451.51775,729.53193 452.30000,729.73672 454.50000,729.74782 C 456.70000,729.75892 457.71775,729.56321 456.76166,729.31292 z M 523.66228,725.75000 C 523.38487,725.06250 523.15789,725.62500 523.15789,727.00000 C 523.15789,728.37500 523.38487,728.93750 523.66228,728.25000 C 523.93969,727.56250 523.93969,726.43750 523.66228,725.75000 z M 216.10806,726.50000 C 215.89250,725.95000 214.53232,725.00225 213.08544,724.39388 C 210.98247,723.50964 210.16916,723.59349 209.03104,724.81185 C 207.78031,726.15077 207.86509,726.26854 209.72884,725.78116 C 211.30920,725.36789 211.70682,725.60045 211.28761,726.69288 C 210.85801,727.81241 211.40807,728.08139 213.61243,727.82970 C 215.20059,727.64836 216.32363,727.05000 216.10806,726.50000 z M 520.98469,724.69098 C 520.99311,724.24602 520.55000,724.16008 520.00000,724.50000 C 519.45000,724.83992 519.00689,725.87898 519.01531,726.80902 C 519.02851,728.26629 519.16460,728.29269 520.00000,727.00000 C 520.53316,726.17500 520.97627,725.13594 520.98469,724.69098 z M 192.66228,723.75000 C 192.38487,723.06250 192.15789,723.62500 192.15789,725.00000 C 192.15789,726.37500 192.38487,726.93750 192.66228,726.25000 C 192.93969,725.56250 192.93969,724.43750 192.66228,723.75000 z M 224.49833,722.40730 C 227.62882,719.02945 226.37518,716.86153 220.10991,714.81841 C 217.57446,713.99160 214.64515,712.94522 213.60032,712.49313 C 211.93010,711.77043 211.78142,711.99298 212.36938,714.33558 C 212.82859,716.16521 212.64050,717.01336 211.76905,717.04264 C 210.12418,717.09790 219.08610,724.99373 220.79775,724.99730 C 221.51151,724.99878 223.17677,723.83329 224.49833,722.40730 z M 526.65492,722.45687 C 527.46474,720.34653 526.11307,719.20717 524.96094,721.02896 C 523.73673,722.96471 523.76128,724.00000 525.03138,724.00000 C 525.59865,724.00000 526.32924,723.30559 526.65492,722.45687 z M 521.00000,722.22145 C 521.00000,720.88273 518.73470,718.04593 518.01893,718.48830 C 517.53452,718.78768 516.86973,718.59823 516.54159,718.06730 C 515.94387,717.10015 510.27722,717.38945 509.22589,718.44078 C 508.91832,718.74835 509.99233,719.00000 511.61257,719.00000 C 513.37320,719.00000 515.11681,719.77463 515.94614,720.92528 C 517.08053,722.49915 521.00000,723.50439 521.00000,722.22145 z M 460.00000,721.03138 C 460.00000,720.49865 459.32500,720.32179 458.50000,720.63837 C 457.67500,720.95496 457.00000,721.39083 457.00000,721.60699 C 457.00000,721.82314 457.67500,722.00000 458.50000,722.00000 C 459.32500,722.00000 460.00000,721.56412 460.00000,721.03138 z M 448.00000,719.94098 C 448.00000,719.35852 447.55000,719.16008 447.00000,719.50000 C 446.45000,719.83992 446.00000,720.31648 446.00000,720.55902 C 446.00000,720.80156 446.45000,721.00000 447.00000,721.00000 C 447.55000,721.00000 448.00000,720.52344 448.00000,719.94098 z M 531.34508,719.45687 C 531.01939,718.60815 530.53845,718.12821 530.27633,718.39034 C 530.01420,718.65247 530.09635,719.34688 530.45888,719.93347 C 531.44493,721.52893 532.02126,721.21898 531.34508,719.45687 z M 193.00000,717.50000 C 193.00000,716.12500 192.55000,715.00000 192.00000,715.00000 C 191.45000,715.00000 191.00000,716.12500 191.00000,717.50000 C 191.00000,718.87500 191.45000,720.00000 192.00000,720.00000 C 192.55000,720.00000 193.00000,718.87500 193.00000,717.50000 z M 534.18750,718.31689 C 533.46563,718.02802 532.60312,718.06354 532.27083,718.39583 C 531.93854,718.72812 532.52917,718.96447 533.58333,718.92105 C 534.74828,718.87307 534.98523,718.63611 534.18750,718.31689 z M 528.50000,716.00000 C 528.83992,715.45000 528.19148,715.00000 527.05902,715.00000 C 525.79479,715.00000 524.96953,714.32449 524.92105,713.25000 C 524.87147,712.15094 524.65040,711.97723 524.32672,712.78299 C 523.11018,715.81145 526.83971,718.68640 528.50000,716.00000 z M 535.00000,716.00000 C 535.00000,715.45000 534.52344,715.00000 533.94098,715.00000 C 533.35852,715.00000 533.16008,715.45000 533.50000,716.00000 C 533.83992,716.55000 534.31648,717.00000 534.55902,717.00000 C 534.80156,717.00000 535.00000,716.55000 535.00000,716.00000 z M 465.60417,713.27083 C 464.58765,712.25432 463.74892,713.78472 464.58295,715.13421 C 465.21298,716.15363 465.44853,716.15442 465.78725,715.13825 C 466.01885,714.44346 465.93646,713.60312 465.60417,713.27083 z M 512.00000,714.37756 C 512.00000,713.13890 512.31540,713.01687 513.33333,713.86168 C 514.34258,714.69928 514.66667,714.60751 514.66667,713.48412 C 514.66667,712.66786 514.29167,712.00000 513.83333,712.00000 C 513.37500,712.00000 513.00000,710.84844 513.00000,709.44098 C 513.00000,707.98962 512.56716,707.14948 512.00000,707.50000 C 511.45000,707.83992 511.00000,709.18992 511.00000,710.50000 C 511.00000,711.81008 510.54266,713.16462 509.98369,713.51008 C 508.84145,714.21603 509.61190,716.00000 511.05902,716.00000 C 511.57656,716.00000 512.00000,715.26990 512.00000,714.37756 z M 520.00000,715.00000 C 520.00000,714.45000 519.55000,714.00000 519.00000,714.00000 C 518.45000,714.00000 518.00000,712.57500 518.00000,710.83333 C 518.00000,706.73395 517.16795,707.59251 516.56321,712.31589 C 516.15996,715.46549 516.37506,716.00000 518.04576,716.00000 C 519.12059,716.00000 520.00000,715.55000 520.00000,715.00000 z M 191.65594,707.73097 C 191.38201,707.05394 191.17457,707.85000 191.19495,709.50000 C 191.21533,711.15000 191.43945,711.70394 191.69299,710.73097 C 191.94653,709.75800 191.92986,708.40800 191.65594,707.73097 z M 463.50000,704.00000 C 463.16008,703.45000 462.34602,703.00689 461.69098,703.01531 C 460.97537,703.02451 461.09871,703.41754 462.00000,704.00000 C 463.92112,705.24153 464.26730,705.24153 463.50000,704.00000 z M 518.13388,701.75000 C 517.80935,699.72063 517.46706,699.17920 517.22250,700.30841 C 516.85027,702.02717 517.53013,705.00000 518.29542,705.00000 C 518.49243,705.00000 518.41974,703.53750 518.13388,701.75000 z M 525.60417,702.27083 C 525.27188,701.93854 525.03553,702.52917 525.07895,703.58333 C 525.12693,704.74828 525.36389,704.98523 525.68311,704.18750 C 525.97198,703.46563 525.93646,702.60312 525.60417,702.27083 z M 522.00000,701.55902 C 522.00000,700.76648 521.64643,699.89951 521.21429,699.63244 C 520.78214,699.36536 520.42857,700.01380 520.42857,701.07342 C 520.42857,702.13304 520.78214,703.00000 521.21429,703.00000 C 521.64643,703.00000 522.00000,702.35156 522.00000,701.55902 z M 180.18750,701.31689 C 179.46562,701.02802 178.60313,701.06354 178.27083,701.39583 C 177.93854,701.72812 178.52917,701.96447 179.58333,701.92105 C 180.74828,701.87307 180.98523,701.63611 180.18750,701.31689 z M 193.00000,701.00000 C 193.00000,700.45000 192.55000,700.00000 192.00000,700.00000 C 191.45000,700.00000 191.00000,700.45000 191.00000,701.00000 C 191.00000,701.55000 191.45000,702.00000 192.00000,702.00000 C 192.55000,702.00000 193.00000,701.55000 193.00000,701.00000 z M 512.00000,700.00000 C 512.00000,699.45000 511.21250,699.00689 510.25000,699.01531 C 508.75445,699.02840 508.71810,699.17157 510.00000,700.00000 C 511.88721,701.21961 512.00000,701.21961 512.00000,700.00000 z M 470.00000,695.88197 C 470.00000,695.33197 469.55000,695.16008 469.00000,695.50000 C 468.45000,695.83992 468.00000,696.56803 468.00000,697.11803 C 468.00000,697.66803 468.45000,697.83992 469.00000,697.50000 C 469.55000,697.16008 470.00000,696.43197 470.00000,695.88197 z M 380.56262,689.75000 C 380.35658,689.06250 379.63142,685.67433 378.95115,682.22073 C 378.27087,678.76713 377.32857,675.70307 376.85714,675.41171 C 375.67918,674.68369 375.76162,675.46436 377.59871,682.43440 C 379.79699,690.77479 379.87162,691.00000 380.43723,691.00000 C 380.71223,691.00000 380.76865,690.43750 380.56262,689.75000 z M 524.42803,674.25000 C 525.24857,672.73750 525.93794,672.06250 525.95996,672.75000 C 526.01506,674.47025 530.00000,674.33870 530.00000,672.61663 C 530.00000,670.01203 525.92877,669.98032 523.34430,672.56479 C 520.45483,675.45426 519.84804,675.61023 520.67856,673.25000 C 521.17131,671.84968 521.03363,671.74131 519.98956,672.70762 C 518.92814,673.68999 518.92353,674.20293 519.96483,675.45762 C 521.77989,677.64464 522.72515,677.38888 524.42803,674.25000 z M 532.00000,669.00000 C 532.00000,668.45000 531.57656,668.00000 531.05902,668.00000 C 530.54148,668.00000 529.83992,668.45000 529.50000,669.00000 C 529.16008,669.55000 529.58352,670.00000 530.44098,670.00000 C 531.29844,670.00000 532.00000,669.55000 532.00000,669.00000 z M 343.00000,652.00000 C 343.00000,651.45000 342.55000,651.00000 342.00000,651.00000 C 341.45000,651.00000 341.00000,651.45000 341.00000,652.00000 C 341.00000,652.55000 341.45000,653.00000 342.00000,653.00000 C 342.55000,653.00000 343.00000,652.55000 343.00000,652.00000 z M 349.00000,647.08179 C 349.00000,645.21974 347.76629,643.02641 346.98910,643.50674 C 345.96932,644.13699 346.93870,648.00000 348.11663,648.00000 C 348.60248,648.00000 349.00000,647.58680 349.00000,647.08179 z M 394.00000,633.60699 C 394.00000,633.39083 393.32500,632.95496 392.50000,632.63837 C 391.67500,632.32179 391.00000,632.49865 391.00000,633.03138 C 391.00000,633.56412 391.67500,634.00000 392.50000,634.00000 C 393.32500,634.00000 394.00000,633.82314 394.00000,633.60699 z M 30.000000,793.88635 C 22.705571,791.00687 12.971820,780.69756 9.8076345,772.50000 C 8.5562245,769.25793 8.0458023,761.31270 9.0206632,760.25000 C 9.1467985,760.11250 9.3062500,759.58750 9.3750000,759.08333 C 9.4437500,758.57917 9.7733107,757.89336 10.107357,757.55931 C 10.881445,756.78522 23.000000,765.65714 23.000000,766.99793 C 23.000000,767.54907 23.337500,767.95133 23.750000,767.89185 C 25.233734,767.67789 29.000000,769.25140 29.000000,770.08525 C 29.000000,770.55384 29.615860,770.70090 30.368578,770.41206 C 31.161929,770.10762 31.947423,770.69094 32.237420,771.79990 C 32.512565,772.85205 34.139392,774.20154 35.852591,774.79877 L 38.967498,775.88463 L 38.436795,756.19232 C 37.861823,734.85733 37.253213,730.06964 34.978524,728.98750 C 34.165336,728.60064 32.080569,727.54520 30.345708,726.64206 C 28.610847,725.73893 26.248347,725.00000 25.095708,725.00000 C 23.943069,725.00000 23.000000,724.51425 23.000000,723.92054 C 23.000000,721.94020 34.193119,725.77009 39.912198,729.70729 C 40.138907,729.86337 40.262128,731.64738 40.186024,733.67178 C 40.109919,735.69617 40.599430,738.02136 41.273826,738.83887 C 42.106397,739.84812 42.155494,740.44138 41.426775,740.68703 C 39.937960,741.18891 40.939674,747.03962 42.625154,747.68640 C 44.022709,748.22269 44.623831,750.20794 43.250000,749.75000 C 42.837500,749.61250 42.275000,749.95000 42.000000,750.50000 C 41.725000,751.05000 42.848537,751.65310 44.496750,751.84023 C 46.144962,752.02736 47.753092,752.60050 48.070372,753.11387 C 48.387653,753.62723 53.714333,754.49192 59.907440,755.03539 C 66.100546,755.57886 75.292416,756.67588 80.333817,757.47321 C 95.434325,759.86147 118.55400,762.18237 134.50000,762.91075 C 149.82454,763.61074 150.15634,764.00319 137.00000,765.86772 C 132.87500,766.45232 126.81183,767.67161 123.52628,768.57725 C 118.32999,770.00958 116.18264,770.06990 107.02628,769.04076 C 94.112354,767.58928 53.290023,760.47116 45.750000,758.35612 C 42.655295,757.48802 43.883695,756.00197 47.750000,755.93661 C 50.672126,755.88722 51.058467,755.69509 49.500000,755.06634 C 48.400000,754.62256 46.037500,753.94033 44.250000,753.55028 C 41.715511,752.99722 41.000000,753.17047 41.000000,754.33721 C 41.000000,755.16008 41.562500,756.06157 42.250000,756.34054 C 43.236104,756.74066 43.225409,757.04122 42.199341,757.76420 C 40.499925,758.96162 64.556464,764.86196 88.000000,768.99770 C 97.625000,770.69568 106.77030,772.48911 108.32288,772.98311 C 109.87547,773.47711 111.78797,773.63486 112.57288,773.33366 C 113.35780,773.03246 114.00000,773.00737 114.00000,773.27791 C 114.00000,774.12607 103.68291,777.18803 99.865831,777.47272 C 93.592941,777.94057 72.098589,774.15659 57.381897,769.99363 C 43.834092,766.16132 37.716223,764.96155 43.000000,767.17321 C 45.877599,768.37770 49.114593,769.33864 68.839835,774.84403 C 76.726744,777.04530 83.439244,779.10591 83.756502,779.42317 C 84.073759,779.74043 82.934891,780.00000 81.225684,780.00000 C 79.516476,780.00000 77.861233,780.41551 77.547365,780.92336 C 76.418460,782.74997 64.553284,781.13684 56.500000,778.06188 C 52.100000,776.38183 47.487500,775.00562 46.250000,775.00363 C 45.012500,775.00163 44.000000,774.55000 44.000000,774.00000 C 44.000000,773.45000 43.550000,773.00000 43.000000,773.00000 C 42.450000,773.00000 42.000000,773.36665 42.000000,773.81479 C 42.000000,775.08856 49.009386,778.11223 50.223187,777.36206 C 50.917950,776.93268 51.016975,777.16352 50.498137,778.00302 C 49.889102,778.98845 50.248647,779.16824 51.942542,778.72528 C 53.182949,778.40090 53.911215,778.42212 53.560912,778.77242 C 53.210608,779.12272 54.403597,780.19837 56.211998,781.16275 C 59.005160,782.65228 59.169981,782.92248 57.307160,782.95808 C 54.562627,783.01055 48.460104,786.43484 44.435160,790.18091 C 41.695656,792.73061 36.231912,795.10823 33.506602,794.93661 C 32.952971,794.90175 31.375000,794.42913 30.000000,793.88635 z M 149.26375,785.28242 C 150.78381,785.05256 153.03381,785.05871 154.26375,785.29607 C 155.49369,785.53343 154.25000,785.72149 151.50000,785.71399 C 148.75000,785.70648 147.74369,785.51227 149.26375,785.28242 z M 141.27083,784.39583 C 141.60313,784.06354 142.46562,784.02802 143.18750,784.31689 C 143.98523,784.63611 143.74828,784.87307 142.58333,784.92105 C 141.52917,784.96447 140.93854,784.72812 141.27083,784.39583 z M 140.75000,773.27660 C 142.53750,773.05478 145.46250,773.05478 147.25000,773.27660 C 149.03750,773.49843 147.57500,773.67993 144.00000,773.67993 C 140.42500,773.67993 138.96250,773.49843 140.75000,773.27660 z M 215.85972,770.89268 L 213.72686,769.28537 L 216.40942,768.61209 C 219.44793,767.84947 220.56497,768.31863 221.97245,770.94853 C 222.80978,772.51308 222.58746,772.76447 220.47412,772.64283 C 219.10928,772.56427 217.03280,771.77671 215.85972,770.89268 z M 203.27083,769.39583 C 203.60313,769.06354 204.46562,769.02802 205.18750,769.31689 C 205.98523,769.63611 205.74828,769.87307 204.58333,769.92105 C 203.52917,769.96447 202.93854,769.72812 203.27083,769.39583 z M 188.73097,759.34406 C 189.40800,759.07014 190.75800,759.05347 191.73097,759.30701 C 192.70394,759.56055 192.15000,759.78467 190.50000,759.80505 C 188.85000,759.82543 188.05394,759.61799 188.73097,759.34406 z M 51.500000,750.09290 C 46.931631,749.55118 46.672653,749.38557 48.500000,748.17449 C 50.067237,747.13580 50.119453,746.96745 48.741316,747.39644 C 46.324983,748.14861 41.709305,746.27937 42.564826,744.89511 C 43.043374,744.12080 43.509253,744.19563 44.109687,745.14324 C 44.789090,746.21547 44.972586,746.15109 44.984687,744.83622 C 44.998823,743.30037 45.374732,743.30941 49.873231,744.95366 C 52.553508,745.93334 56.828508,747.04711 59.373231,747.42872 C 64.363833,748.17711 65.355029,749.40360 61.750000,750.36971 C 59.356314,751.01120 59.211127,751.00728 51.500000,750.09290 z M 14.957316,747.07975 C 15.710170,745.67304 15.750515,744.40235 15.081988,743.15320 C 14.416106,741.90898 14.441454,740.95855 15.159672,740.24033 C 16.454842,738.94516 15.423120,737.00000 13.440983,737.00000 C 12.648442,737.00000 12.000000,736.55000 12.000000,736.00000 C 12.000000,733.61623 15.990810,735.24906 17.962680,738.43961 C 20.674609,742.82761 19.698889,748.30856 16.113026,748.82975 C 14.098003,749.12263 13.968749,748.92691 14.957316,747.07975 z M 53.270833,734.39583 C 53.603125,734.06354 54.465625,734.02802 55.187500,734.31689 C 55.985233,734.63611 55.748276,734.87307 54.583333,734.92105 C 53.529167,734.96447 52.938542,734.72812 53.270833,734.39583 z M 190.67055,695.41615 C 191.00483,694.54504 191.55844,694.20754 191.90080,694.66615 C 192.24316,695.12477 192.93053,695.83750 193.42830,696.25000 C 193.92607,696.66250 193.37246,697.00000 192.19805,697.00000 C 190.66063,697.00000 190.23294,696.55654 190.67055,695.41615 z M 354.55279,696.08541 C 354.23081,695.56444 354.39362,694.87476 354.91459,694.55279 C 355.43556,694.23081 356.12524,694.39362 356.44721,694.91459 C 356.76919,695.43556 356.60638,696.12524 356.08541,696.44721 C 355.56444,696.76919 354.87476,696.60638 354.55279,696.08541 z M 344.67701,677.19559 C 342.60369,674.90460 342.55358,674.00000 344.50000,674.00000 C 345.32500,674.00000 346.00000,673.46000 346.00000,672.80000 C 346.00000,670.73250 347.80196,673.32028 348.16354,675.90705 C 348.59029,678.96002 346.85439,679.60157 344.67701,677.19559 z M 327.15789,668.00000 C 327.15789,666.62500 327.38487,666.06250 327.66228,666.75000 C 327.93969,667.43750 327.93969,668.56250 327.66228,669.25000 C 327.38487,669.93750 327.15789,669.37500 327.15789,668.00000 z M 335.70572,664.98266 C 335.29228,663.40169 335.56941,662.96301 336.82839,663.20547 C 338.70574,663.56701 339.10760,666.13080 337.37732,666.70756 C 336.75985,666.91338 336.00763,666.13718 335.70572,664.98266 z M 260.00000,468.28681 C 257.52500,468.07745 255.03237,467.29600 254.46081,466.55026 C 253.88926,465.80451 252.31426,464.98691 250.96081,464.73336 C 249.14013,464.39228 249.45381,464.23694 252.16667,464.13618 C 254.18333,464.06128 256.01117,463.46648 256.22853,462.81440 C 256.49752,462.00743 260.27661,461.56942 268.06187,461.44287 C 274.35284,461.34061 285.35000,460.95573 292.50000,460.58758 C 299.65000,460.21942 309.55000,459.71008 314.50000,459.45571 C 319.45000,459.20133 325.97500,458.52441 329.00000,457.95144 C 332.02500,457.37846 335.59722,456.93196 336.93828,456.95921 C 338.27933,456.98646 339.63088,456.59725 339.94172,456.09430 C 340.43495,455.29624 343.61531,454.37285 360.98025,449.98597 C 363.67709,449.30467 364.85886,449.46728 366.23025,450.70837 C 367.20361,451.58925 368.00000,452.86709 368.00000,453.54800 C 368.00000,454.22891 368.73865,455.06947 369.64144,455.41590 C 371.02407,455.94647 371.08044,455.80185 369.99894,454.49873 C 368.28034,452.42794 369.33220,451.57224 371.90424,452.94875 C 373.67592,453.89692 373.79964,454.34797 372.74934,456.02977 C 372.07260,457.11340 370.61465,458.01310 369.50945,458.02912 C 368.40425,458.04513 364.35000,458.93203 360.50000,460.00000 C 356.65000,461.06797 352.01094,461.95487 350.19098,461.97088 C 348.26045,461.98787 347.13771,462.41381 347.49589,462.99334 C 347.83894,463.54842 347.09287,463.94930 345.80490,463.90195 C 344.53721,463.85534 339.67500,464.33123 335.00000,464.95948 C 330.32500,465.58773 323.80000,466.29123 320.50000,466.52282 C 317.20000,466.75440 311.80000,467.19700 308.50000,467.50636 C 300.83155,468.22524 265.91449,468.78712 260.00000,468.28681 z M 373.97251,447.35370 C 367.47158,443.02509 367.35414,439.31754 373.52791,433.31719 C 376.01827,430.89680 378.49327,429.18682 379.02791,429.51725 C 381.13653,430.82045 379.30418,449.00000 377.06422,449.00000 C 376.72366,449.00000 375.33238,448.25916 373.97251,447.35370 z M 180.46669,438.62641 C 180.09117,436.12232 180.17005,432.49075 180.64197,430.55625 L 181.50000,427.03900 L 186.25000,431.41107 C 188.86250,433.81571 191.00000,436.49656 191.00000,437.36852 C 191.00000,439.19805 187.69678,441.57048 183.82472,442.52193 C 181.28204,443.14673 181.11559,442.95363 180.46669,438.62641 z M 257.00000,418.37497 C 242.14570,416.59313 239.52669,415.89556 236.65210,412.95536 C 233.35007,409.57797 232.71797,409.42488 230.64286,411.50000 C 228.82977,413.31309 225.32888,413.41031 222.17194,411.73526 C 220.01789,410.59233 215.62773,402.00943 210.65836,389.22585 L 208.99686,384.95169 L 211.56353,383.97585 C 212.97520,383.43913 214.74935,383.00000 215.50608,383.00000 C 216.26282,383.00000 217.20148,382.48301 217.59200,381.85114 C 218.10929,381.01414 216.97024,380.87894 213.39599,381.35308 C 208.68293,381.97829 208.43923,381.88931 207.20063,379.09113 C 204.92923,373.95968 201.85115,364.70626 199.95572,357.31126 C 198.51512,351.69077 196.28873,347.32769 189.75013,337.31126 C 175.33491,315.22869 163.76756,295.07099 153.28731,273.76974 C 150.18955,267.47352 148.04052,264.20494 147.19806,264.50829 C 146.48200,264.76613 146.14863,264.56852 146.45725,264.06917 C 146.76587,263.56981 146.31773,262.46058 145.46137,261.60423 C 144.21786,260.36071 144.13542,259.61548 145.05195,257.90293 C 145.95478,256.21597 145.93203,255.92397 144.94526,256.53383 C 144.12766,257.03914 143.94214,256.90264 144.41238,256.14177 C 144.80915,255.49979 144.40978,253.52324 143.52490,251.74945 C 140.16127,245.00691 139.23060,205.25582 142.18887,194.68486 C 142.93000,192.03653 143.84986,190.18319 144.23301,190.56634 C 144.61615,190.94948 144.46551,192.13019 143.89824,193.19013 C 142.86374,195.12312 143.57187,201.03323 144.82946,200.96205 C 145.19825,200.94118 146.71238,199.17045 148.19418,197.02711 C 149.67597,194.88376 151.92597,192.59252 153.19418,191.93545 C 155.41554,190.78454 155.40517,190.84626 152.91088,193.62039 C 147.33153,199.82574 145.80863,202.84804 146.54082,206.26219 C 147.57291,211.07473 147.89281,211.23599 150.46933,208.24252 C 151.76762,206.73414 153.17279,205.84215 153.59193,206.26033 C 154.01107,206.67852 153.68976,207.57852 152.87792,208.26033 C 148.91853,211.58557 148.81044,212.50545 151.56934,219.39705 C 153.02318,223.02867 154.62895,226.00000 155.13773,226.00000 C 156.81444,226.00000 157.15084,223.27390 156.00104,219.00387 C 155.37817,216.69071 155.12000,214.54667 155.42733,214.23934 C 155.73466,213.93201 156.27822,215.14111 156.63525,216.92623 C 156.99227,218.71134 157.84567,220.38728 158.53168,220.65053 C 159.21770,220.91378 159.56080,221.96349 159.29414,222.98321 C 158.69244,225.28410 163.04672,237.24753 172.76698,260.00000 C 184.13963,286.62027 206.61706,330.00000 209.03783,330.00000 C 209.53778,330.00000 209.86767,327.18754 209.77092,323.75009 C 209.63340,318.86438 209.01896,316.62705 206.95596,313.50009 C 203.50252,308.26559 180.22905,263.93997 175.06333,252.75879 C 167.62842,236.66595 163.80024,215.96525 170.71585,229.25000 C 173.31093,234.23509 182.76378,255.05300 187.63008,266.50000 C 196.01810,286.23114 210.53649,314.95982 212.00000,314.72265 C 212.82500,314.58896 213.65336,313.39872 213.84079,312.07768 C 214.07368,310.43633 214.42990,310.07756 214.96579,310.94465 C 215.52038,311.84199 215.95028,311.88946 216.43402,311.10676 C 216.81023,310.49804 216.64148,310.00000 216.05902,310.00000 C 215.47656,310.00000 215.00000,309.32500 215.00000,308.50000 C 215.00000,306.37739 217.99317,306.62421 218.03180,308.75000 C 218.06109,310.36166 218.17567,310.35202 219.48125,308.62801 C 220.76191,306.93690 221.04870,306.90584 222.44944,308.30658 C 223.30225,309.15939 224.00000,311.01429 224.00000,312.42857 C 224.00000,313.84286 224.45000,315.00000 225.00000,315.00000 C 225.55000,315.00000 226.00499,314.43750 226.01109,313.75000 C 226.01719,313.06250 227.19625,313.98990 228.63122,315.81089 C 230.23705,317.84869 231.80554,318.90486 232.71037,318.55765 C 234.83236,317.74336 236.52710,319.03263 234.85676,320.19051 C 233.92826,320.83414 234.24962,320.91873 235.87485,320.45849 C 239.02497,319.56643 239.96569,321.23540 239.98469,327.75000 C 239.99539,331.42062 240.39658,333.00000 241.31828,333.00000 C 242.24235,333.00000 242.54194,331.80385 242.32015,329.00000 C 242.14562,326.79365 242.45131,325.00000 243.00187,325.00000 C 243.55084,325.00000 244.00000,325.67500 244.00000,326.50000 C 244.00000,327.32500 244.56250,328.00614 245.25000,328.01365 C 245.93750,328.02116 247.51919,328.30040 248.76486,328.63417 C 250.53065,329.10731 250.89887,328.90002 250.43587,327.69348 C 249.99343,326.54050 250.33816,326.27567 251.78796,326.65480 C 253.90504,327.20843 256.70895,334.04388 255.57295,335.88197 C 255.14895,336.56801 255.47585,336.75463 256.44806,336.38156 C 258.28942,335.67496 258.49720,337.10280 256.80000,338.80000 C 255.86667,339.73333 255.86667,340.26667 256.80000,341.20000 C 258.73649,343.13649 258.19957,344.00000 255.05902,344.00000 C 253.44148,344.00000 251.83992,344.45000 251.50000,345.00000 C 251.14948,345.56716 251.98962,346.00000 253.44098,346.00000 C 256.86652,346.00000 256.71815,347.76235 253.25000,348.26848 L 250.50000,348.66981 L 253.68607,349.44712 C 256.92189,350.23657 258.69703,352.45118 256.95633,353.52699 C 255.48136,354.43857 255.82463,356.00000 257.50000,356.00000 C 258.32500,356.00000 259.00000,356.68912 259.00000,357.53138 C 259.00000,358.37365 258.32500,359.32179 257.50000,359.63837 C 256.67500,359.95496 256.00000,361.01769 256.00000,362.00000 C 256.00000,362.98231 256.67500,364.04504 257.50000,364.36163 C 258.32500,364.67821 259.00000,365.62635 259.00000,366.46862 C 259.00000,367.31088 259.41320,368.00000 259.91821,368.00000 C 260.42323,368.00000 261.57993,368.28531 262.48867,368.63403 C 263.91687,369.18208 264.04588,368.74138 263.44007,365.38403 C 263.05460,363.24781 262.29279,360.93750 261.74717,360.25000 C 261.03764,359.35599 261.21717,359.00000 262.37756,359.00000 C 264.28193,359.00000 264.51384,356.91384 262.80000,355.20000 C 261.94600,354.34600 261.92657,354.00000 262.73261,354.00000 C 264.18041,354.00000 265.21956,357.25728 264.89206,360.76889 C 264.60229,363.87593 265.75266,368.00000 266.90910,368.00000 C 269.23786,368.00000 271.76926,386.69411 269.91073,390.16680 C 269.37113,391.17506 267.98625,392.00000 266.83324,392.00000 C 264.98759,392.00000 256.00000,399.75297 256.00000,401.34508 C 256.00000,401.67961 257.80000,402.82299 260.00000,403.88591 C 262.20000,404.94884 264.00000,405.40934 264.00000,404.90925 C 264.00000,403.45140 267.71861,403.86147 269.35714,405.50000 C 270.18214,406.32500 271.31693,407.00000 271.87888,407.00000 C 272.44084,407.00000 273.35930,407.78750 273.91990,408.75000 C 274.48051,409.71250 274.98449,410.05000 275.03988,409.50000 C 275.09526,408.95000 275.52731,409.40000 276.00000,410.50000 C 276.73490,412.21022 276.86961,412.24644 276.92971,410.75000 C 277.03856,408.04000 278.62498,408.68041 279.99474,411.98729 C 280.67529,413.63030 281.59145,414.75250 282.03065,414.48106 C 282.46984,414.20962 283.03101,414.55284 283.27769,415.24377 C 283.52436,415.93470 283.97221,416.27500 284.27290,416.00000 C 284.57358,415.72500 283.70192,412.12500 282.33587,408.00000 C 280.96982,403.87500 279.83235,400.05000 279.80817,399.50000 C 279.78399,398.95000 280.49226,393.11869 281.38210,386.54154 C 282.27195,379.96438 283.03424,374.11438 283.07608,373.54154 C 283.11792,372.96869 283.71784,374.07500 284.40923,376.00000 C 285.52779,379.11434 286.09789,379.52679 289.58315,379.74310 C 291.73742,379.87680 296.20000,380.23942 299.50000,380.54892 L 305.50000,381.11164 L 305.86761,393.80582 C 306.06979,400.78762 306.29479,408.75000 306.36761,411.50000 L 306.50000,416.50000 L 300.50000,417.17993 C 295.46558,417.75043 290.57305,417.91315 277.00000,417.96151 C 276.17500,417.96445 272.12500,418.15315 268.00000,418.38083 C 263.87500,418.60852 258.92500,418.60588 257.00000,418.37497 z M 288.46716,412.75000 C 287.18156,406.70988 283.72431,397.00000 282.85931,397.00000 C 281.27757,397.00000 281.96465,400.43886 285.10703,408.25000 C 288.42156,416.48907 289.59849,418.06526 288.46716,412.75000 z M 299.61079,409.22967 C 300.77173,406.62835 301.99798,403.03750 302.33579,401.25000 L 302.95000,398.00000 L 296.97500,398.00000 C 293.68875,398.00000 291.00000,398.17760 291.00000,398.39466 C 291.00000,399.10113 295.20237,412.47831 295.66673,413.25000 C 296.60026,414.80138 297.56149,413.82155 299.61079,409.22967 z M 231.48992,408.98369 C 231.14446,408.42472 230.44290,408.22627 229.93090,408.54271 C 228.54386,409.39994 228.80249,410.00000 230.55902,410.00000 C 231.41648,410.00000 231.83538,409.54266 231.48992,408.98369 z M 236.08317,402.15540 C 235.27280,400.64121 235.38272,400.06712 236.57025,399.61142 C 237.56830,399.22843 237.85384,399.42748 237.38789,400.18139 C 236.90073,400.96965 237.23929,401.12215 238.44730,400.65860 C 239.77526,400.14901 240.07429,400.36403 239.63385,401.51180 C 239.15943,402.74812 239.41232,402.84970 240.93535,402.03460 C 241.97504,401.47817 243.00828,400.47515 243.23145,399.80566 C 243.51629,398.95112 244.78554,399.26593 247.49085,400.86210 C 250.89113,402.86832 251.44772,402.95135 252.22194,401.56790 C 252.70453,400.70556 253.75202,400.00000 254.54969,400.00000 C 256.21693,400.00000 256.51257,397.43482 254.95620,396.47293 C 254.38210,396.11812 253.25710,396.37166 252.45620,397.03635 C 251.35157,397.95311 251.00000,397.95965 251.00000,397.06343 C 251.00000,396.41362 250.51932,396.17904 249.93183,396.54213 C 249.34433,396.90523 249.10521,397.83178 249.40044,398.60115 C 249.69568,399.37052 249.50135,400.00000 248.96862,400.00000 C 248.43588,400.00000 248.00000,399.42202 248.00000,398.71561 C 248.00000,397.25144 242.95314,394.00000 240.68047,394.00000 C 239.84946,394.00000 237.89535,392.65000 236.33801,391.00000 C 234.78068,389.35000 232.95666,388.00000 232.28463,388.00000 C 231.61261,388.00000 231.30619,387.36565 231.60371,386.59034 C 231.93166,385.73571 231.30470,384.91410 230.01136,384.50361 C 228.83806,384.13121 227.38328,382.74056 226.77853,381.41327 C 226.17377,380.08597 225.30878,379.00000 224.85633,379.00000 C 224.10116,379.00000 218.64507,369.14645 218.76543,368.00000 C 218.89456,366.77006 215.91595,360.75072 215.42242,361.24425 C 215.11918,361.54748 216.51437,365.55407 218.52283,370.14779 C 223.62893,381.82640 230.40322,396.40353 231.00159,397.00000 C 231.27747,397.27500 232.15885,398.85000 232.96022,400.50000 C 233.76159,402.15000 234.86943,404.11184 235.42208,404.85965 C 236.84159,406.78044 237.37991,404.57839 236.08317,402.15540 z M 264.00000,390.60699 C 264.00000,389.63600 261.18265,389.27112 259.90932,390.07721 C 258.88365,390.72651 259.24861,390.97354 261.25000,390.98469 C 262.76250,390.99311 264.00000,390.82314 264.00000,390.60699 z M 268.35202,385.75000 C 269.23840,378.37053 269.15281,376.00000 268.00000,376.00000 C 267.45000,376.00000 267.00000,377.08820 267.00000,378.41821 C 267.00000,379.74823 266.67485,381.66073 266.27745,382.66821 C 265.67797,384.18797 265.44261,383.98897 264.89576,381.50000 L 264.23663,378.50000 L 264.11831,381.25000 C 264.01582,383.63239 263.56555,384.01760 260.75000,384.13164 L 257.50000,384.26328 L 261.00000,385.00000 C 264.06475,385.64510 264.16535,385.75309 261.80902,385.86836 C 258.06194,386.05166 257.15663,388.00000 260.81854,388.00000 C 262.43365,388.00000 264.31531,388.67500 265.00000,389.50000 C 267.05268,391.97333 267.69017,391.26016 268.35202,385.75000 z M 264.00000,372.94098 C 264.00000,372.35852 263.55000,372.16008 263.00000,372.50000 C 262.45000,372.83992 262.00000,373.31648 262.00000,373.55902 C 262.00000,373.80156 262.45000,374.00000 263.00000,374.00000 C 263.55000,374.00000 264.00000,373.52344 264.00000,372.94098 z M 214.60417,355.27083 C 214.27187,354.93854 214.03553,355.52917 214.07895,356.58333 C 214.12693,357.74828 214.36389,357.98523 214.68311,357.18750 C 214.97198,356.46562 214.93646,355.60312 214.60417,355.27083 z M 212.98716,350.46624 C 212.39933,348.92011 212.17698,346.98118 212.49306,346.15750 C 212.80913,345.33382 212.55589,344.34356 211.93030,343.95693 C 211.29466,343.56408 210.74208,340.44069 210.67774,336.87698 C 210.61441,333.36964 210.40132,331.53843 210.20420,332.80763 C 210.00708,334.07683 209.37464,334.95821 208.79880,334.76627 C 208.22295,334.57432 203.92046,327.23588 199.23771,318.45863 C 194.55496,309.68138 187.52331,296.62199 183.61181,289.43775 C 179.70031,282.25351 171.77500,266.62353 166.00000,254.70445 C 160.22500,242.78537 155.21258,233.02588 154.86129,233.01670 C 154.51000,233.00751 153.92312,234.59626 153.55712,236.54724 C 153.08852,239.04505 153.52208,241.78161 155.02259,245.79724 C 156.98178,251.04035 161.79010,260.81579 162.99237,262.00000 C 164.71780,263.69950 166.31805,266.27461 165.25000,265.63294 C 163.48120,264.57028 163.70046,266.12733 165.72706,269.02071 C 166.67694,270.37686 167.54301,272.09205 167.65164,272.83226 C 168.37162,277.73775 193.18394,321.99573 209.58185,347.62356 C 213.78164,354.18729 214.69030,354.94582 212.98716,350.46624 z M 198.50000,346.00000 C 197.64675,344.35000 196.72364,343.00000 196.44864,343.00000 C 196.17364,343.00000 196.64675,344.35000 197.50000,346.00000 C 198.35325,347.65000 199.27636,349.00000 199.55136,349.00000 C 199.82636,349.00000 199.35325,347.65000 198.50000,346.00000 z M 248.00000,344.00000 C 248.00000,343.45000 247.29844,343.00000 246.44098,343.00000 C 245.58352,343.00000 245.16008,343.45000 245.50000,344.00000 C 245.83992,344.55000 246.54148,345.00000 247.05902,345.00000 C 247.57656,345.00000 248.00000,344.55000 248.00000,344.00000 z M 194.40804,339.50000 C 193.50711,338.12500 192.57018,337.00000 192.32597,337.00000 C 191.83590,337.00000 192.77896,338.81156 194.27814,340.75000 C 195.99999,342.97635 196.09388,342.07291 194.40804,339.50000 z M 191.68661,335.25000 C 186.88898,326.90964 174.71404,305.90555 171.83373,301.00000 C 165.18390,289.67443 151.98288,262.53948 147.02248,250.00000 C 145.39070,245.87500 144.04310,243.11921 144.02781,243.87602 C 143.90379,250.01279 168.75877,301.14218 181.51925,321.00000 C 182.75624,322.92500 185.38986,327.08750 187.37174,330.25000 C 189.35362,333.41250 191.23230,336.00000 191.54660,336.00000 C 191.86089,336.00000 191.92389,335.66250 191.68661,335.25000 z M 251.50000,335.00000 C 251.16008,334.45000 250.68352,334.00000 250.44098,334.00000 C 250.19844,334.00000 250.00000,334.45000 250.00000,335.00000 C 250.00000,335.55000 250.47656,336.00000 251.05902,336.00000 C 251.64148,336.00000 251.83992,335.55000 251.50000,335.00000 z M 191.58353,326.79700 C 191.19376,324.35954 187.20233,315.85321 182.08160,306.54700 C 173.39804,290.76586 160.17765,264.31773 156.06532,254.50000 C 154.26079,250.19187 154.05780,249.98431 154.59838,253.00000 C 155.31173,256.97946 160.47885,270.62443 165.08964,280.70455 C 173.21093,298.45935 190.44912,331.00000 191.73330,331.00000 C 192.02058,331.00000 191.95318,329.10865 191.58353,326.79700 z M 238.00000,328.28678 C 237.17500,327.98135 236.05000,327.38701 235.50000,326.96601 C 234.95000,326.54502 233.91976,326.83044 233.21057,327.60029 C 232.12267,328.78124 232.51340,328.98766 235.71057,328.92105 C 237.79476,328.87763 238.82500,328.59221 238.00000,328.28678 z M 223.00000,312.50000 C 223.00000,311.67500 222.26990,311.00000 221.37756,311.00000 C 220.04876,311.00000 219.98043,311.27149 221.00000,312.50000 C 221.68469,313.32500 222.41479,314.00000 222.62244,314.00000 C 222.83010,314.00000 223.00000,313.32500 223.00000,312.50000 z M 194.28796,283.75000 C 188.07595,271.08205 176.81317,246.58053 171.91725,235.08385 C 168.86233,227.91022 168.26806,230.25260 170.98583,238.75516 C 173.71732,247.30063 198.91420,297.00000 200.51514,297.00000 C 200.66378,297.00000 197.86154,291.03750 194.28796,283.75000 z M 151.47477,248.24986 C 151.44721,241.96715 145.47856,224.58620 143.72153,225.67210 C 141.79843,226.86065 143.71643,236.62245 147.56819,245.25000 C 149.71673,250.06250 151.48034,253.99994 151.48731,253.99986 C 151.49429,253.99978 151.48865,251.41228 151.47477,248.24986 z M 165.63694,247.41833 C 164.33909,244.16325 162.05049,238.23750 160.55118,234.25000 C 158.02836,227.54045 156.00000,224.96368 156.00000,228.46832 C 156.00000,230.13854 167.12464,254.20869 167.65258,253.68076 C 167.84183,253.49150 166.93480,250.67340 165.63694,247.41833 z M 151.25766,222.83900 C 149.74095,219.09110 148.23473,216.01910 147.91052,216.01232 C 147.58630,216.00555 146.82779,217.08253 146.22495,218.40563 C 145.32303,220.38513 145.68254,222.26857 148.25448,229.03815 L 151.38009,237.26503 L 152.69770,233.45919 C 153.91052,229.95605 153.79598,229.11137 151.25766,222.83900 z M 143.00000,220.94098 C 143.00000,219.32344 142.55000,218.00000 142.00000,218.00000 C 141.45000,218.00000 141.00000,219.60156 141.00000,221.55902 C 141.00000,223.67705 141.40488,224.86780 142.00000,224.50000 C 142.55000,224.16008 143.00000,222.55852 143.00000,220.94098 z M 146.88400,212.05887 C 146.79503,210.86333 146.66067,210.91169 146.30753,212.26635 C 145.89276,213.85738 145.65464,213.80776 143.90826,211.76635 L 141.96946,209.50000 L 142.62299,212.50000 C 142.98243,214.15000 143.50799,215.90567 143.79090,216.40149 C 144.48024,217.60960 147.03060,214.02896 146.88400,212.05887 z M 145.12409,207.73333 C 144.13647,206.75307 144.02161,206.86793 144.56429,208.29313 C 144.93982,209.27935 145.49898,209.83435 145.80687,209.52646 C 146.11476,209.21857 145.80751,208.41167 145.12409,207.73333 z M 144.00000,203.88197 C 144.00000,203.33197 143.55000,203.16008 143.00000,203.50000 C 142.45000,203.83992 142.00000,204.56803 142.00000,205.11803 C 142.00000,205.66803 142.45000,205.83992 143.00000,205.50000 C 143.55000,205.16008 144.00000,204.43197 144.00000,203.88197 z M 322.00000,412.00000 C 322.00000,411.45000 322.48214,411.00000 323.07143,411.00000 C 324.85456,411.00000 327.18450,408.22817 325.79163,407.76388 C 325.02981,407.50994 325.17755,407.14585 326.20192,406.75276 C 328.32587,405.93772 327.95794,408.28401 325.54342,410.95203 C 323.54977,413.15498 322.00000,413.61333 322.00000,412.00000 z M 319.34086,404.36653 C 320.15211,394.75755 321.47238,386.51108 323.32201,379.50000 C 324.68614,374.32924 326.00690,367.31142 326.61552,362.00000 C 326.71005,361.17500 326.88056,360.27500 326.99443,360.00000 C 327.10830,359.72500 327.37095,357.25000 327.57811,354.50000 C 327.78527,351.75000 328.16595,347.58750 328.42405,345.25000 C 328.79702,341.87229 328.57445,341.00000 327.33968,341.00000 C 326.33379,341.00000 326.00003,340.44231 326.39301,339.41821 C 326.72686,338.54823 327.00000,337.42323 327.00000,336.91821 C 327.00000,336.41320 327.43588,336.00000 327.96862,336.00000 C 328.50135,336.00000 328.65465,336.73640 328.30927,337.63645 C 327.87663,338.76388 328.11968,339.12365 329.09065,338.79308 C 329.98921,338.48716 330.48800,336.89737 330.46690,334.40663 C 330.44870,332.25798 330.98476,330.15494 331.65815,329.73319 C 332.33154,329.31144 333.18503,326.94894 333.55479,324.48319 C 333.92455,322.01744 334.62599,320.00000 335.11354,320.00000 C 335.60109,320.00000 336.00000,319.23827 336.00000,318.30726 C 336.00000,316.41341 341.63126,298.46584 343.07334,295.76357 C 343.58300,294.80853 344.00000,292.92259 344.00000,291.57259 C 344.00000,290.22258 344.45000,288.83992 345.00000,288.50000 C 345.55000,288.16008 346.00689,286.67102 346.01531,285.19098 C 346.02373,283.71094 346.50789,281.82500 347.09120,281.00000 C 348.48280,279.03183 347.69740,286.08658 345.53260,295.00000 C 344.66434,298.57500 343.68901,303.30000 343.36521,305.50000 C 343.04141,307.70000 342.34879,310.31021 341.82605,311.30047 C 340.63644,313.55402 336.84220,334.28637 336.75674,339.00000 C 336.72184,340.92500 337.02974,343.40000 337.44097,344.50000 C 338.06236,346.16214 337.98957,346.24660 337.01014,345.00000 C 336.06107,343.79204 335.94049,344.13276 336.39081,346.75000 C 336.69836,348.53750 336.58348,350.00000 336.13552,350.00000 C 334.49824,350.00000 332.95127,355.04042 333.99181,356.98471 C 334.54237,358.01343 334.74358,359.50465 334.43894,360.29852 C 334.12720,361.11092 334.61861,362.02341 335.56305,362.38582 C 336.87306,362.88852 337.12541,362.58758 336.71378,361.01348 C 336.42378,359.90455 336.50938,359.19678 336.90399,359.44066 C 337.29860,359.68454 339.11100,355.74767 340.93155,350.69204 C 343.63337,343.18915 353.23450,319.80801 359.48901,305.50000 C 360.21029,303.85000 363.55852,295.97500 366.92955,288.00000 C 382.92232,250.16507 390.52087,234.83547 406.08596,209.00446 C 410.54963,201.59677 410.86837,200.00000 407.88337,200.00000 C 406.17635,200.00000 405.88343,199.56458 406.36971,197.75000 C 406.70135,196.51250 406.97884,193.31075 406.98635,190.63499 L 407.00000,185.76998 L 409.46482,187.38499 C 410.82047,188.27325 412.50797,188.99311 413.21482,188.98469 C 414.13256,188.97375 414.07943,188.70340 413.02896,188.03906 C 412.21989,187.52739 411.87151,186.79515 412.25479,186.41187 C 412.63807,186.02859 413.60878,186.26035 414.41191,186.92689 C 415.52200,187.84818 416.38522,187.86420 418.01177,186.99370 C 420.00044,185.92940 420.06978,186.00109 418.99467,188.00995 C 418.35848,189.19869 418.02981,190.36314 418.26430,190.59763 C 418.97182,191.30515 428.11039,176.98763 427.54017,176.06500 C 427.24939,175.59451 427.68390,174.95154 428.50574,174.63617 C 429.32758,174.32080 430.00000,173.31855 430.00000,172.40894 C 430.00000,171.23094 429.64036,171.03650 428.75000,171.73312 C 426.48541,173.50496 423.10772,173.83473 421.91719,172.40022 C 420.44015,170.62050 419.72531,160.95315 420.93108,159.06430 C 421.61384,157.99474 422.18681,157.91015 423.17780,158.73260 C 423.90943,159.33979 426.08122,159.98586 428.00401,160.16830 C 430.26991,160.38329 431.51627,161.02779 431.54623,162.00000 C 431.57166,162.82500 432.14457,164.50237 432.81937,165.72749 C 433.86243,167.62121 433.81804,167.86741 432.52314,167.37051 C 431.41909,166.94684 431.01118,167.43454 431.04064,169.14301 C 431.07912,171.37449 431.24116,171.31362 434.08366,168.00000 C 435.73497,166.07500 437.66487,163.37500 438.37234,162.00000 C 439.07980,160.62500 441.91301,155.22500 444.66836,150.00000 C 448.83416,142.10033 455.97810,125.29769 458.44086,117.60687 C 458.77428,116.56565 459.26102,115.92769 459.52250,116.18917 C 460.10922,116.77588 457.38963,136.56055 456.53138,137.94923 C 456.19012,138.50139 455.75011,140.22371 455.55358,141.77660 C 454.61444,149.19731 449.57916,162.34863 442.73664,175.25232 C 438.00783,184.16997 435.72640,187.98762 430.90792,195.04603 C 430.32744,195.89635 428.64819,198.42965 427.17625,200.67558 C 425.70431,202.92152 419.53921,212.12581 413.47602,221.12956 C 402.24261,237.81100 396.76481,246.69536 390.28634,258.74061 C 384.84355,268.86023 378.00000,282.85452 378.00000,283.86480 C 378.00000,284.35447 377.32995,285.31120 376.51101,285.99086 C 375.69207,286.67053 375.25731,287.60732 375.54489,288.07263 C 375.83246,288.53794 375.62293,289.72445 375.07925,290.70932 C 373.61108,293.36890 365.00000,313.77445 365.00000,314.59398 C 365.00000,314.98238 363.91038,317.59513 362.57862,320.40009 C 358.80422,328.34973 355.00000,336.99669 355.00000,337.62621 C 355.00000,337.94055 354.34094,339.61575 353.53542,341.34887 C 350.03061,348.88965 341.71082,369.84319 340.76952,373.50000 C 339.72233,377.56818 337.39662,380.36316 335.85268,379.40895 C 335.38371,379.11911 334.51261,379.18319 333.91692,379.55135 C 332.69374,380.30731 338.17822,384.00000 340.52417,384.00000 C 343.11502,384.00000 342.14117,386.02850 336.27720,392.84632 C 318.66006,413.32909 318.57955,413.38386 319.34086,404.36653 z M 350.58324,405.25000 C 355.78993,398.32772 359.47025,394.85364 364.12821,392.46406 C 366.67372,391.15819 369.03622,390.36955 369.37821,390.71154 C 369.72019,391.05353 370.00000,390.80833 370.00000,390.16667 C 370.00000,389.52500 370.58367,389.00000 371.29705,389.00000 C 372.01043,389.00000 374.37293,387.15336 376.54705,384.89635 C 384.21831,376.93265 397.31727,368.18122 417.50000,357.53565 C 427.65180,352.18098 441.28498,342.27013 440.42130,340.87266 C 440.10782,340.36544 440.27826,340.07410 440.80005,340.22522 C 442.08619,340.59773 447.18828,335.86402 455.00000,327.05054 C 458.57500,323.01709 462.09119,319.10912 462.81376,318.36617 C 463.53632,317.62321 463.80430,316.49236 463.40925,315.85316 C 462.98988,315.17460 463.12511,314.95929 463.73423,315.33575 C 464.30802,315.69037 466.04874,314.29740 467.60249,312.24026 C 469.15625,310.18312 471.00632,307.90536 471.71375,307.17857 C 473.23006,305.62079 473.44529,303.60676 472.00000,304.50000 C 471.45000,304.83992 471.00000,304.59333 471.00000,303.95203 C 471.00000,303.31073 471.65883,303.03884 472.46407,303.34784 C 473.92691,303.90918 478.00000,299.30908 478.00000,297.09563 C 478.00000,296.49303 478.37396,296.00000 478.83102,296.00000 C 479.28808,296.00000 480.28117,294.76250 481.03789,293.25000 C 481.79461,291.73750 482.94453,289.82500 483.59328,289.00000 C 485.60794,286.43799 491.02285,275.74674 490.88956,274.59415 C 490.61611,272.22946 491.04250,270.90824 491.90674,271.44236 C 492.40545,271.75058 492.59141,270.98964 492.31999,269.75138 C 491.95519,268.08707 492.08138,267.86041 492.80393,268.88213 C 493.58100,269.98094 493.95330,269.77596 494.62020,267.88213 C 495.08156,266.57196 495.50510,265.05000 495.56140,264.50000 C 495.61770,263.95000 496.14838,262.37500 496.74069,261.00000 C 497.33300,259.62500 498.36923,257.02307 499.04341,255.21794 C 499.71760,253.41280 500.45048,252.11715 500.67204,252.33871 C 500.89360,252.56027 500.54607,253.90217 499.89974,255.32070 C 498.94726,257.41117 499.03490,258.55377 500.36230,261.35106 C 501.26303,263.24922 502.00000,266.16605 502.00000,267.83291 C 502.00000,276.76044 484.98205,311.95758 472.66725,328.50000 C 455.01564,352.21131 435.78719,370.41816 418.00000,380.26279 C 401.43234,389.43245 387.78463,397.84208 387.15965,399.26642 C 386.97246,399.69304 385.60018,400.67252 384.11013,401.44305 C 381.45735,402.81486 381.31363,402.73116 377.20572,397.42201 C 374.89834,394.43990 372.51775,392.00000 371.91553,392.00000 C 370.07676,392.00000 367.05209,396.39053 367.60985,398.25000 C 367.94024,399.35144 367.59927,400.00000 366.68983,400.00000 C 365.89511,400.00000 364.62729,400.75091 363.87244,401.66869 C 362.47399,403.36901 350.97655,409.00000 348.90327,409.00000 C 348.27591,409.00000 349.03190,407.31250 350.58324,405.25000 z M 199.50000,404.51031 C 197.85000,403.76133 195.74630,402.91721 194.82512,402.63448 C 193.40483,402.19856 193.30953,401.60142 194.19816,398.70598 L 195.24609,395.29154 L 199.94255,400.03768 C 202.52561,402.64807 205.50774,405.00527 206.56951,405.27591 C 207.82637,405.59629 207.45318,405.78616 205.50000,405.82004 C 203.85000,405.84867 201.15000,405.25929 199.50000,404.51031 z M 272.54271,404.06910 C 272.22627,403.55710 272.42472,402.85554 272.98369,402.51008 C 273.54266,402.16462 274.00000,402.58352 274.00000,403.44098 C 274.00000,405.19751 273.39994,405.45614 272.54271,404.06910 z M 176.88623,400.16523 C 175.99866,399.24935 172.62366,395.28682 169.38623,391.35961 C 166.14881,387.43239 162.06558,382.48239 160.31239,380.35961 C 158.55921,378.23682 155.40921,374.68139 153.31239,372.45864 C 143.71180,362.28145 130.58830,345.32995 124.31270,335.00000 C 119.89197,327.72328 114.00000,314.14625 114.00000,311.23618 C 114.00000,310.18962 113.66250,308.99583 113.25000,308.58333 C 112.83750,308.17083 112.41362,306.63333 112.30803,305.16667 C 112.20245,303.70000 111.61580,299.42246 111.00436,295.66101 C 109.73498,287.85203 110.16448,285.09933 111.96567,289.50000 C 120.10866,309.39504 135.61618,331.71072 156.01540,352.88859 C 157.39886,354.32487 161.44886,359.14090 165.01540,363.59090 C 168.58193,368.04089 175.03815,376.03029 179.36255,381.34511 L 187.22511,391.00843 L 183.86255,394.83342 C 182.01315,396.93716 180.05000,399.37212 179.50000,400.24443 C 178.59162,401.68515 178.35214,401.67789 176.88623,400.16523 z M 314.69350,390.25000 C 314.39670,388.73750 314.56924,387.07250 315.07693,386.55000 C 315.64588,385.96445 316.00000,387.01945 316.00000,389.30000 C 316.00000,393.67912 315.44554,394.08228 314.69350,390.25000 z M 279.07895,381.58333 C 279.03553,380.52917 279.27188,379.93854 279.60417,380.27083 C 279.93646,380.60312 279.97198,381.46562 279.68311,382.18750 C 279.36389,382.98523 279.12693,382.74828 279.07895,381.58333 z M 314.54774,374.75000 C 315.10608,373.28343 313.89015,372.30766 312.67857,373.25000 C 312.30670,373.53923 309.00000,370.35718 309.00000,369.71010 C 309.00000,369.47208 310.07126,369.48213 311.38057,369.73242 C 313.62822,370.16208 313.74343,369.94497 313.44395,365.84375 C 313.26951,363.45469 313.05041,361.27500 312.95709,361.00000 C 312.66736,360.14629 312.34949,357.61881 312.17105,354.75000 C 312.06693,353.07599 311.42538,352.00000 310.53138,352.00000 C 309.65832,352.00000 309.28873,351.41114 309.62000,350.54789 C 310.59935,347.99574 308.86543,346.46355 307.34736,348.53964 C 306.08714,350.26309 306.00000,350.21852 306.00000,347.85043 C 306.00000,346.45792 305.04887,340.85941 303.88638,335.40930 C 302.43066,328.58443 301.65057,320.67537 301.38020,310.00000 C 301.16429,301.47500 300.58929,291.12500 300.10243,287.00000 L 299.21722,279.50000 L 299.30555,288.21973 C 299.35413,293.01558 299.08025,297.25308 298.69694,297.63639 C 298.31362,298.01971 298.00000,296.66750 298.00000,294.63148 C 298.00000,292.59547 297.27325,289.82047 296.38499,288.46482 C 292.78420,282.96932 288.52880,286.35584 278.74878,302.50000 C 277.74922,304.15000 276.39818,306.73750 275.74646,308.25000 C 275.09475,309.76250 274.02188,311.00000 273.36232,311.00000 C 272.01778,311.00000 268.00000,304.97647 268.00000,302.96071 C 268.00000,302.24393 267.27042,300.85131 266.37872,299.86599 C 264.34736,297.62136 265.17396,295.25702 268.14019,294.82756 C 269.72450,294.59819 271.51734,292.55162 274.12130,288.00000 C 276.16654,284.42500 278.21654,281.05000 278.67686,280.50000 C 279.13719,279.95000 281.23420,275.67500 283.33690,271.00000 C 285.43959,266.32500 287.75806,261.37485 288.48904,259.99967 C 289.22003,258.62448 289.56879,256.19510 289.26407,254.60104 C 288.89542,252.67261 289.07005,251.92526 289.78591,252.36769 C 290.37765,252.73340 291.18743,252.50575 291.58541,251.86180 C 292.02213,251.15517 291.87674,250.95814 291.21868,251.36485 C 290.51640,251.79888 289.90494,250.34128 289.50062,247.26935 C 288.47905,239.50762 288.24482,239.19429 287.99100,245.25000 C 287.85845,248.41250 287.63750,251.45000 287.50000,252.00000 C 287.36250,252.55000 287.19375,253.47656 287.12500,254.05902 C 286.82068,256.63722 285.00000,253.53732 285.00000,250.44098 C 285.00000,248.54844 284.55000,247.00000 284.00000,247.00000 C 283.45000,247.00000 283.00000,247.67500 283.00000,248.50000 C 283.00000,250.57741 281.24801,250.38786 280.68933,248.25000 C 280.43780,247.28750 280.17980,247.96250 280.11600,249.75000 C 280.00515,252.85567 279.82236,253.00000 276.00000,253.00000 C 273.80000,253.00000 272.00000,252.52344 272.00000,251.94098 C 272.00000,251.35852 271.55500,251.15699 271.01112,251.49313 C 270.40481,251.86785 270.64274,253.05131 271.62613,254.55215 C 272.64862,256.11268 272.81687,257.00000 272.09026,257.00000 C 271.46339,257.00000 270.49491,258.19828 269.93809,259.66284 C 269.15644,261.71874 268.65495,262.05495 267.73788,261.13788 C 266.82081,260.22081 266.83122,259.49991 267.78351,257.97504 C 268.78992,256.36354 268.76076,256.00000 267.62511,256.00000 C 266.85959,256.00000 265.98607,256.94528 265.68394,258.10062 C 265.38181,259.25595 264.70549,259.93602 264.18100,259.61186 C 263.65651,259.28771 263.01001,259.85374 262.74433,260.86970 C 262.23555,262.81526 256.74988,264.52322 256.16667,262.91765 C 255.52336,261.14666 252.29488,262.02310 251.25877,264.25000 C 250.26048,266.39563 250.11082,266.29126 248.03242,262.00000 C 246.03473,257.87539 245.77820,258.52773 247.44254,263.50000 C 247.81074,264.60000 246.95317,263.36250 245.53683,260.75000 C 241.99094,254.20946 241.47322,254.78456 244.63661,261.75000 C 246.07288,264.91250 248.93500,271.77500 250.99688,277.00000 C 253.05876,282.22500 255.07610,287.28750 255.47987,288.25000 C 256.32430,290.26299 254.53077,290.67431 253.29969,288.75000 C 252.85986,288.06250 251.60000,287.02149 250.50000,286.43665 C 248.49023,285.36810 244.77116,279.05693 243.67010,274.84645 C 243.34517,273.60394 242.82517,272.84150 242.51453,273.15214 C 242.20389,273.46277 242.87236,275.86931 244.00000,278.50000 C 245.12764,281.13069 245.82483,283.50850 245.54930,283.78404 C 244.83622,284.49712 242.00047,281.97689 241.99764,280.62756 C 241.99306,278.44467 233.84924,260.48552 232.33387,259.31653 C 231.49009,258.66563 231.07392,257.68941 231.40905,257.14715 C 231.74418,256.60490 231.41559,255.55844 230.67883,254.82169 C 229.94208,254.08494 229.52545,252.92366 229.75298,252.24107 C 229.98051,251.55848 229.67917,251.00000 229.08333,251.00000 C 228.48750,251.00000 228.00000,250.13214 228.00000,249.07143 C 228.00000,248.01071 227.32500,246.46786 226.50000,245.64286 C 225.67500,244.81786 225.00000,243.46227 225.00000,242.63045 C 225.00000,241.79862 224.55145,240.84082 224.00323,240.50199 C 222.65062,239.66603 217.53084,228.83668 217.68768,227.14333 C 217.76792,226.27698 217.46653,226.13347 216.85375,226.74625 C 216.24097,227.35903 217.56695,231.28277 220.52262,237.60292 C 227.04952,251.55947 229.54729,257.01528 231.11980,260.75000 C 231.87243,262.53750 232.85493,264.00000 233.30313,264.00000 C 233.75133,264.00000 233.86983,264.40160 233.56648,264.89244 C 233.26312,265.38328 234.07562,268.19578 235.37202,271.14244 C 239.41618,280.33461 239.49927,281.00000 236.60296,281.00000 C 234.34964,281.00000 233.40278,279.61498 227.99491,268.40861 C 223.34858,258.78033 221.55601,255.95640 220.37755,256.40861 C 219.52993,256.73388 218.41466,257.00000 217.89916,257.00000 C 216.79228,257.00000 217.54723,260.50562 220.21676,267.76187 C 221.28146,270.65589 222.45575,272.83658 222.82629,272.60783 C 223.19683,272.37908 223.56653,273.30001 223.64785,274.65434 C 223.72916,276.00867 224.48838,277.88217 225.33499,278.81767 C 226.73256,280.36196 226.65638,280.72831 224.50762,282.79642 C 222.28036,284.94008 222.07707,284.96899 221.05673,283.28713 C 220.16198,281.81228 220.08124,281.98053 220.59467,284.25000 C 221.55845,288.51009 220.32367,287.51389 217.60871,281.84097 L 215.13969,276.68194 L 214.81985,280.59097 C 214.64393,282.74094 215.10728,285.76119 215.84951,287.30266 C 217.31396,290.34401 216.20689,294.75348 213.39241,297.08929 C 212.27490,298.01674 212.00000,297.81421 212.00000,296.06343 C 212.00000,294.66913 211.58340,294.13944 210.84549,294.59549 C 210.12445,295.04112 209.96267,294.86942 210.41459,294.13820 C 210.81257,293.49425 211.55372,293.22418 212.06158,293.53806 C 213.04360,294.14498 209.26842,285.90466 196.00942,258.50000 C 187.24570,240.38651 182.87549,231.08864 179.92589,224.28134 C 178.56888,221.14955 177.37684,219.90326 175.29897,219.44387 C 170.64259,218.41441 170.35342,218.16147 173.73857,218.07895 C 175.51978,218.03553 177.76978,218.65086 178.73857,219.44635 C 182.05455,222.16917 184.59500,224.50050 183.27296,223.60750 C 180.30150,221.60036 180.94626,224.52088 185.73017,234.73784 C 202.48379,270.51843 206.27989,277.81743 207.53338,276.66020 C 208.22456,276.02209 208.51247,275.05000 208.17316,274.50000 C 207.83385,273.95000 207.47282,273.05000 207.37086,272.50000 C 207.26890,271.95000 203.05011,262.58114 197.99576,251.68031 C 192.94142,240.77948 189.06878,231.59789 189.38990,231.27677 C 189.71101,230.95565 190.68348,232.44951 191.55092,234.59646 C 195.18257,243.58485 206.51064,267.67059 208.08407,269.74922 C 209.43521,271.53421 209.90282,271.69562 210.34964,270.53125 C 210.65929,269.72429 210.45855,268.78340 209.90354,268.44038 C 209.34853,268.09737 209.07869,267.29546 209.30389,266.65836 C 209.52910,266.02126 207.29909,260.66250 204.34832,254.75000 C 201.39756,248.83750 199.18053,244.00000 199.42160,244.00000 C 199.66267,244.00000 201.66600,247.26250 203.87344,251.25000 C 211.31495,264.69225 211.22024,262.61441 203.72530,248.00000 C 197.18716,235.25126 188.95005,220.38652 182.80661,210.25000 C 181.72326,208.46250 181.23391,207.00000 181.71917,207.00000 C 182.20444,207.00000 183.58619,208.91250 184.78974,211.25000 C 185.99329,213.58750 188.69454,218.42500 190.79253,222.00000 C 194.36604,228.08933 200.20296,238.61975 205.75840,249.00000 C 207.08300,251.47500 208.60228,253.95000 209.13457,254.50000 C 210.51002,255.92121 209.11404,247.22288 207.38466,243.59636 C 205.73619,240.13952 205.67915,239.68367 206.99698,240.49813 C 207.59806,240.86962 207.55010,239.99958 206.87621,238.30715 C 206.26144,236.76322 205.56485,233.92543 205.32823,232.00096 C 205.09161,230.07648 204.27666,227.25641 203.51725,225.73412 C 202.75783,224.21183 202.55578,223.22546 203.06824,223.54218 C 203.58071,223.85890 204.00000,223.58638 204.00000,222.93657 C 204.00000,222.10463 204.49128,222.16113 205.66066,223.12756 C 207.17752,224.38117 207.20215,224.30864 205.94502,222.28989 C 205.13162,220.98370 204.30485,220.50675 203.92353,221.12373 C 203.53212,221.75704 203.03141,221.52424 202.65062,220.53191 C 202.24408,219.47248 202.41693,219.13964 203.14119,219.58726 C 203.75624,219.96738 204.08415,219.87825 203.86988,219.38920 C 200.79107,212.36199 198.50972,208.74127 196.70229,208.01351 C 195.49103,207.52581 195.07406,207.09825 195.77568,207.06339 C 196.75088,207.01493 196.67782,206.23449 195.46549,203.75000 L 193.87961,200.50000 L 195.91757,203.00000 C 197.03845,204.37500 197.96553,205.99027 197.97776,206.58948 C 198.00132,207.74361 202.95174,210.38160 203.69646,209.63687 C 204.42381,208.90952 199.04620,199.00000 197.92414,199.00000 C 197.35094,199.00000 197.15433,198.55930 197.48723,198.02067 C 197.82012,197.48203 197.61249,196.01953 197.02582,194.77067 C 196.08109,192.75955 196.10438,192.71649 197.22958,194.39395 C 200.07821,198.64071 202.87217,201.45779 203.55743,200.77417 C 203.95759,200.37496 203.70675,199.35158 203.00000,198.50000 C 202.29325,197.64842 201.92845,196.73822 202.18933,196.47734 C 202.45021,196.21646 203.26537,197.12734 204.00081,198.50151 C 204.73624,199.87568 205.73848,201.00000 206.22800,201.00000 C 206.71752,201.00000 206.88248,201.38114 206.59457,201.84698 C 206.30667,202.31281 207.40511,203.97200 209.03556,205.53407 C 210.66600,207.09613 211.98569,207.95249 211.96820,207.43709 C 211.91305,205.81210 209.33773,203.00064 207.88976,202.98469 C 206.77714,202.97243 206.79912,202.77607 208.00000,202.00000 C 209.08997,201.29561 209.14217,201.02644 208.19098,201.01531 C 207.47102,201.00689 207.12739,200.60289 207.42736,200.11754 C 208.27366,198.74819 203.92863,193.81341 202.39486,194.40197 C 201.64447,194.68993 200.61821,194.15478 200.11429,193.21276 C 199.37356,191.82808 199.65796,191.47238 201.59903,191.35579 C 202.91956,191.27647 204.00000,191.51368 204.00000,191.88293 C 204.00000,192.25217 205.30070,193.97836 206.89044,195.71890 C 208.48018,197.45944 210.76459,200.26502 211.96690,201.95352 C 213.98712,204.79065 216.00000,205.25403 216.00000,202.88197 C 216.00000,202.33197 215.61404,202.12050 215.14231,202.41205 C 214.67057,202.70360 215.07448,200.14265 216.03988,196.72107 C 218.47134,188.10346 219.77811,185.00000 220.97525,185.00000 C 221.53886,185.00000 222.00000,184.52344 222.00000,183.94098 C 222.00000,183.35852 221.55136,183.15924 221.00302,183.49813 C 219.89917,184.18035 221.64117,178.90703 222.81256,178.02035 C 224.01725,177.10847 226.00000,173.08044 226.00000,171.54495 C 226.00000,170.67379 226.58675,170.28793 227.42331,170.60894 C 229.00661,171.21651 230.98193,168.20335 230.28131,166.24932 C 229.98502,165.42296 230.40960,165.21995 231.53277,165.65095 C 233.00086,166.21431 233.07564,166.00985 232.08115,164.15163 C 231.14393,162.40042 231.20478,162.00000 232.40811,162.00000 C 234.12506,162.00000 237.16210,158.07130 236.39928,156.83703 C 236.11476,156.37666 236.63167,156.00000 237.54797,156.00000 C 238.61802,156.00000 239.00808,155.46343 238.63837,154.50000 C 238.32179,153.67500 238.57365,153.00000 239.19805,153.00000 C 239.82246,153.00000 240.04152,152.70818 239.68485,152.35152 C 238.86731,151.53398 242.86172,148.00000 244.60332,148.00000 C 245.31683,148.00000 246.32223,147.24662 246.83754,146.32582 C 247.73851,144.71586 255.36271,142.13568 259.48949,142.04413 C 263.04593,141.96524 269.72762,145.36249 271.63651,148.22018 C 272.66143,149.75454 274.03958,150.80560 274.69907,150.55589 C 275.37648,150.29938 275.67798,150.67559 275.39209,151.42061 C 275.11376,152.14593 276.70740,155.61051 278.93352,159.11968 C 281.15963,162.62886 282.98527,166.06861 282.99050,166.76357 C 282.99572,167.45853 283.42623,168.80853 283.94717,169.76357 C 285.65172,172.88847 288.74607,182.40949 289.46918,186.75425 C 289.91312,189.42163 290.58057,190.75922 291.25855,190.34020 C 291.91480,189.93462 292.11938,190.24651 291.77898,191.13359 C 291.47049,191.93751 291.86132,196.17383 292.64751,200.54763 C 293.43370,204.92143 294.24660,213.00000 294.45396,218.50000 C 294.66132,224.00000 294.86901,229.51250 294.91549,230.75000 C 295.06064,234.61452 296.61815,233.21466 297.69704,228.25000 C 298.58159,224.17960 298.69525,225.21688 298.49142,235.50000 C 298.36059,242.10000 298.44628,245.05967 298.68184,242.07704 C 299.08220,237.00772 301.94025,231.00000 303.95152,231.00000 C 305.10443,231.00000 305.91283,235.93584 304.86589,236.58288 C 303.42325,237.47448 303.89512,239.00000 305.61354,239.00000 C 306.99046,239.00000 307.10311,239.69658 306.38165,243.75000 C 305.91666,246.36250 305.64235,251.42500 305.77206,255.00000 C 306.08109,263.51680 308.95451,293.11738 309.56871,294.11117 C 309.83151,294.53640 310.20122,296.59784 310.39027,298.69216 C 311.65904,312.74726 313.40249,326.57422 314.71616,333.00000 C 315.55947,337.12500 316.31965,341.71382 316.40544,343.19739 C 316.49124,344.68095 316.88194,346.21527 317.27366,346.60699 C 317.66537,346.99871 317.74600,350.73488 317.45283,354.90960 C 317.15966,359.08432 316.73416,365.15618 316.50726,368.40263 C 316.28037,371.64908 315.59676,374.79908 314.98812,375.40263 C 314.18156,376.20246 314.06215,376.02550 314.54774,374.75000 z M 268.12207,297.32500 C 266.94323,295.29779 266.65856,295.94665 267.62354,298.46134 C 267.96648,299.35504 268.45773,299.87560 268.71520,299.61813 C 268.97267,299.36066 268.70576,298.32875 268.12207,297.32500 z M 209.57503,280.63044 C 209.52466,278.36838 209.08915,277.41751 208.25000,277.73743 C 207.56250,277.99953 207.00000,278.36966 207.00000,278.55994 C 207.00000,279.02045 209.27513,284.00000 209.48554,284.00000 C 209.57602,284.00000 209.61629,282.48370 209.57503,280.63044 z M 249.34508,279.45687 C 249.01939,278.60815 248.53845,278.12821 248.27633,278.39034 C 248.01420,278.65247 248.09635,279.34688 248.45888,279.93347 C 249.44493,281.52893 250.02126,281.21898 249.34508,279.45687 z M 241.05273,268.63869 C 239.65220,264.95502 238.86724,265.32073 240.16764,269.05105 C 240.75262,270.72912 241.41680,271.91653 241.64360,271.68973 C 241.87040,271.46294 241.60450,270.08997 241.05273,268.63869 z M 215.59549,262.84549 C 216.03757,262.13019 215.86981,261.96243 215.15451,262.40451 C 214.51953,262.79695 213.96250,262.75398 213.91667,262.30902 C 213.87083,261.86406 213.65801,260.60000 213.44373,259.50000 C 211.75838,250.84828 211.06938,244.55551 211.19567,238.96795 C 211.27688,235.37532 210.82975,231.55032 210.20207,230.46795 C 208.75383,227.97064 208.75238,228.12052 210.05756,245.36683 C 210.76782,254.75200 211.61166,260.00388 212.66851,261.61683 C 214.45733,264.34692 214.62425,264.41699 215.59549,262.84549 z M 237.12207,259.32500 C 235.94323,257.29779 235.65856,257.94665 236.62354,260.46134 C 236.96648,261.35504 237.45773,261.87560 237.71520,261.61813 C 237.97267,261.36066 237.70576,260.32875 237.12207,259.32500 z M 300.36163,256.50000 C 300.70873,255.59545 300.36670,255.00000 299.50000,255.00000 C 298.63330,255.00000 298.29127,255.59545 298.63837,256.50000 C 298.95496,257.32500 299.34269,258.00000 299.50000,258.00000 C 299.65731,258.00000 300.04504,257.32500 300.36163,256.50000 z M 260.00000,256.61663 C 260.00000,256.40578 259.09938,255.99775 257.99862,255.70989 C 256.89786,255.42204 256.24942,255.59455 256.55764,256.09326 C 257.09589,256.96417 260.00000,257.40570 260.00000,256.61663 z M 220.39626,254.40976 C 221.09783,252.58149 220.25026,250.72730 219.05161,251.46810 C 218.60600,251.74350 218.00422,252.87585 217.71433,253.98442 C 217.08087,256.40676 219.48370,256.78783 220.39626,254.40976 z M 217.99836,246.99693 C 216.48340,244.16620 216.31170,244.43269 216.35818,249.54257 C 216.39821,253.94264 216.44134,254.00528 217.73330,251.53950 C 218.71769,249.66071 218.78713,248.47076 217.99836,246.99693 z M 218.78848,240.53756 C 216.48017,235.88322 214.43001,232.23666 214.23258,232.43408 C 213.78819,232.87848 221.83759,249.00000 222.50387,249.00000 C 222.76872,249.00000 221.09680,245.19190 218.78848,240.53756 z M 238.68933,244.25000 C 238.43780,243.28750 238.23200,244.07500 238.23200,246.00000 C 238.23200,247.92500 238.43780,248.71250 238.68933,247.75000 C 238.94085,246.78750 238.94085,245.21250 238.68933,244.25000 z M 285.10380,243.70380 C 283.82031,242.42031 282.51875,243.41230 283.46896,244.94978 C 283.83704,245.54534 284.59631,245.74949 285.15623,245.40344 C 285.83923,244.98132 285.82198,244.42198 285.10380,243.70380 z M 236.38156,241.44806 C 236.70910,240.59450 236.56287,240.15213 236.05660,240.46502 C 235.55034,240.77791 234.99299,239.82348 234.81806,238.34407 C 234.64313,236.86466 233.96220,235.47777 233.30490,235.26209 C 232.47854,234.99093 232.60248,236.12417 233.70659,238.93497 C 235.51185,243.53071 235.56368,243.57941 236.38156,241.44806 z M 212.87911,227.83565 C 212.17350,226.55104 211.49581,224.89627 211.37313,224.15837 C 210.97813,221.78256 210.00000,221.59511 210.00000,223.89523 C 210.00000,225.12093 210.78750,227.17686 211.75000,228.46395 C 213.91806,231.36317 214.60634,230.98017 212.87911,227.83565 z M 228.05942,225.37205 C 226.92674,223.25871 226.00000,222.12852 226.00000,222.86052 C 226.00000,224.38519 229.20992,230.12342 229.75686,229.57648 C 229.95595,229.37738 229.19210,227.48539 228.05942,225.37205 z M 215.36163,223.50000 C 215.04504,222.67500 214.60917,222.00000 214.39301,222.00000 C 214.17686,222.00000 214.00000,222.67500 214.00000,223.50000 C 214.00000,224.32500 214.43588,225.00000 214.96862,225.00000 C 215.50135,225.00000 215.67821,224.32500 215.36163,223.50000 z M 219.60417,222.27083 C 219.27187,221.93854 219.03553,222.52917 219.07895,223.58333 C 219.12693,224.74828 219.36389,224.98523 219.68311,224.18750 C 219.97198,223.46562 219.93646,222.60313 219.60417,222.27083 z M 212.12409,218.73333 C 211.13647,217.75307 211.02161,217.86793 211.56429,219.29313 C 211.93982,220.27935 212.49898,220.83435 212.80687,220.52646 C 213.11476,220.21857 212.80751,219.41167 212.12409,218.73333 z M 206.47909,216.10860 C 206.72794,214.81638 206.48709,214.19896 205.88042,214.57391 C 205.32215,214.91893 204.62633,214.28708 204.33415,213.16979 C 204.04197,212.05250 203.17226,210.89634 202.40146,210.60056 C 200.32903,209.80529 200.69757,211.29826 203.25000,214.03797 C 204.48750,215.36627 205.38750,216.57612 205.25000,216.72653 C 205.11250,216.87694 205.00000,217.52500 205.00000,218.16667 C 205.00000,219.94994 206.00994,218.54466 206.47909,216.10860 z M 225.34508,215.45687 C 225.01939,214.60815 224.53845,214.12821 224.27633,214.39034 C 224.01420,214.65247 224.09635,215.34688 224.45888,215.93347 C 225.44493,217.52893 226.02126,217.21898 225.34508,215.45687 z M 209.87693,210.62923 C 209.21805,209.18315 208.27464,208.00000 207.78047,208.00000 C 207.28629,208.00000 207.12291,207.61014 207.41740,207.13365 C 208.05279,206.10557 204.24769,202.41898 203.41285,203.25382 C 202.64586,204.02081 204.81811,208.00000 206.00380,208.00000 C 206.51719,208.00000 206.69613,208.62831 206.40144,209.39625 C 206.10676,210.16418 206.88123,211.50383 208.12249,212.37324 C 210.96833,214.36654 211.38916,213.94821 209.87693,210.62923 z M 207.00000,210.00000 C 207.00000,209.45000 207.19844,209.00000 207.44098,209.00000 C 207.68352,209.00000 208.16008,209.45000 208.50000,210.00000 C 208.83992,210.55000 208.64148,211.00000 208.05902,211.00000 C 207.47656,211.00000 207.00000,210.55000 207.00000,210.00000 z M 220.00000,211.00000 C 219.41130,209.90000 218.70463,209.00000 218.42963,209.00000 C 218.15463,209.00000 218.41130,209.90000 219.00000,211.00000 C 219.58870,212.10000 220.29537,213.00000 220.57037,213.00000 C 220.84537,213.00000 220.58870,212.10000 220.00000,211.00000 z M 223.00000,208.00000 C 223.82500,207.46684 224.05000,207.03063 223.50000,207.03063 C 222.95000,207.03063 221.82500,207.46684 221.00000,208.00000 C 220.17500,208.53316 219.95000,208.96937 220.50000,208.96937 C 221.05000,208.96937 222.17500,208.53316 223.00000,208.00000 z M 227.36163,176.50000 C 227.67821,175.67500 227.50135,175.00000 226.96862,175.00000 C 226.43588,175.00000 226.00000,175.67500 226.00000,176.50000 C 226.00000,177.32500 226.17686,178.00000 226.39301,178.00000 C 226.60917,178.00000 227.04504,177.32500 227.36163,176.50000 z M 245.00000,151.00000 C 245.00000,150.45000 244.52344,150.00000 243.94098,150.00000 C 243.35852,150.00000 243.16008,150.45000 243.50000,151.00000 C 243.83992,151.55000 244.31648,152.00000 244.55902,152.00000 C 244.80156,152.00000 245.00000,151.55000 245.00000,151.00000 z M 307.00000,361.84736 C 307.00000,357.87126 307.35621,356.10211 308.06817,356.54213 C 308.65567,356.90523 308.89479,357.83178 308.59956,358.60115 C 308.28983,359.40829 308.68399,360.00000 309.53138,360.00000 C 310.33912,360.00000 311.00000,360.43588 311.00000,360.96862 C 311.00000,361.50135 310.32500,361.67821 309.50000,361.36163 C 308.55016,360.99714 308.00000,361.37542 308.00000,362.39301 C 308.00000,363.27686 308.67500,364.00000 309.50000,364.00000 C 311.72593,364.00000 311.31806,366.68356 309.00000,367.28975 C 307.16506,367.76960 307.00000,367.32043 307.00000,361.84736 z M 262.33583,348.43278 C 262.00506,347.57081 262.24419,346.35581 262.86722,345.73278 C 263.71093,344.88907 264.00000,345.28901 264.00000,347.30000 C 264.00000,350.30870 263.25126,350.81836 262.33583,348.43278 z M 322.50000,342.00000 C 322.16008,341.45000 322.35852,341.00000 322.94098,341.00000 C 323.52344,341.00000 324.00000,341.45000 324.00000,342.00000 C 324.00000,342.55000 323.80156,343.00000 323.55902,343.00000 C 323.31648,343.00000 322.83992,342.55000 322.50000,342.00000 z M 263.71025,338.00000 C 263.42259,336.90000 263.59511,336.00000 264.09362,336.00000 C 264.59213,336.00000 265.00000,336.90000 265.00000,338.00000 C 265.00000,339.10000 264.82748,340.00000 264.61663,340.00000 C 264.40578,340.00000 263.99791,339.10000 263.71025,338.00000 z M 211.03063,313.50000 C 211.03063,312.95000 211.46684,311.82500 212.00000,311.00000 C 212.53316,310.17500 212.96937,309.95000 212.96937,310.50000 C 212.96937,311.05000 212.53316,312.17500 212.00000,313.00000 C 211.46684,313.82500 211.03063,314.05000 211.03063,313.50000 z M 300.15789,305.00000 C 300.15789,303.62500 300.38487,303.06250 300.66228,303.75000 C 300.93969,304.43750 300.93969,305.56250 300.66228,306.25000 C 300.38487,306.93750 300.15789,306.37500 300.15789,305.00000 z M 220.00000,296.05902 C 220.00000,295.47656 220.45000,295.00000 221.00000,295.00000 C 221.55000,295.00000 222.00000,295.19844 222.00000,295.44098 C 222.00000,295.68352 221.55000,296.16008 221.00000,296.50000 C 220.45000,296.83992 220.00000,296.64148 220.00000,296.05902 z M 220.00000,292.05902 C 220.00000,291.47656 220.45000,291.00000 221.00000,291.00000 C 221.55000,291.00000 222.00000,291.19844 222.00000,291.44098 C 222.00000,291.68352 221.55000,292.16008 221.00000,292.50000 C 220.45000,292.83992 220.00000,292.64148 220.00000,292.05902 z M 226.47866,286.02358 C 227.46241,284.93655 228.68408,284.30475 229.19349,284.61958 C 229.70289,284.93441 229.30525,285.80949 228.30984,286.56420 C 225.59965,288.61902 224.43972,288.27658 226.47866,286.02358 z M 239.87244,286.25000 C 238.62857,284.66394 238.66394,284.62857 240.25000,285.87244 C 241.91575,287.17881 242.44548,288.00000 241.62244,288.00000 C 241.41479,288.00000 240.62729,287.21250 239.87244,286.25000 z M 233.50000,285.53611 C 231.85000,284.78059 231.17500,284.13203 232.00000,284.09487 C 234.47347,283.98346 238.00000,285.17176 238.00000,286.11663 C 238.00000,287.29425 237.08060,287.17565 233.50000,285.53611 z M 348.23200,276.00000 C 348.23200,274.07500 348.43780,273.28750 348.68933,274.25000 C 348.94085,275.21250 348.94085,276.78750 348.68933,277.75000 C 348.43780,278.71250 348.23200,277.92500 348.23200,276.00000 z M 487.00000,278.11803 C 487.00000,277.56803 487.45000,276.83992 488.00000,276.50000 C 488.55000,276.16008 489.00000,276.33197 489.00000,276.88197 C 489.00000,277.43197 488.55000,278.16008 488.00000,278.50000 C 487.45000,278.83992 487.00000,278.66803 487.00000,278.11803 z M 264.07895,262.58333 C 264.03553,261.52917 264.27188,260.93854 264.60417,261.27083 C 264.93646,261.60312 264.97198,262.46562 264.68311,263.18750 C 264.36389,263.98523 264.12693,263.74828 264.07895,262.58333 z M 287.00000,257.05902 C 287.00000,256.47656 287.45000,256.00000 288.00000,256.00000 C 288.55000,256.00000 289.00000,256.19844 289.00000,256.44098 C 289.00000,256.68352 288.55000,257.16008 288.00000,257.50000 C 287.45000,257.83992 287.00000,257.64148 287.00000,257.05902 z M 281.00000,253.50000 C 281.00000,252.67500 281.45000,252.00000 282.00000,252.00000 C 282.55000,252.00000 283.00000,252.67500 283.00000,253.50000 C 283.00000,254.32500 282.55000,255.00000 282.00000,255.00000 C 281.45000,255.00000 281.00000,254.32500 281.00000,253.50000 z M 139.00000,251.00000 C 139.00000,250.45000 139.19844,250.00000 139.44098,250.00000 C 139.68352,250.00000 140.16008,250.45000 140.50000,251.00000 C 140.83992,251.55000 140.64148,252.00000 140.05902,252.00000 C 139.47656,252.00000 139.00000,251.55000 139.00000,251.00000 z M 353.00000,243.00000 C 353.00000,240.06667 353.27835,237.94501 353.61855,238.28521 C 354.38193,239.04860 354.33389,246.99944 353.56122,247.77211 C 353.25255,248.08078 353.00000,245.93333 353.00000,243.00000 z M 111.26008,236.22162 C 110.62375,234.72473 108.89517,231.47500 107.41880,229.00000 C 102.22149,220.28722 95.000000,206.98533 95.000000,206.12474 C 95.000000,205.64596 94.064438,203.13924 92.920973,200.55425 C 90.640653,195.39921 90.836973,193.53740 93.740946,192.77800 C 95.217535,192.39186 96.191658,193.32512 98.032185,196.88923 C 99.341749,199.42515 102.08449,204.01017 104.12717,207.07816 C 106.16985,210.14615 108.72068,214.19615 109.79567,216.07816 C 110.87066,217.96017 113.54315,222.42367 115.73454,225.99704 L 119.71888,232.49408 L 116.67122,234.74257 C 114.99501,235.97924 113.35210,237.43030 113.02030,237.96715 C 112.68851,238.50400 111.89641,237.71851 111.26008,236.22162 z M 126.58586,219.74898 C 124.98308,216.86204 119.09100,207.07500 113.49236,198.00000 C 102.16431,179.63807 100.97034,177.50792 103.79967,180.70748 C 106.18003,183.39932 107.50290,182.55608 105.46469,179.64613 C 104.65911,178.49600 104.03553,176.86762 104.07895,176.02749 C 104.14726,174.70580 104.23628,174.69969 104.73966,175.98214 C 105.05963,176.79732 105.81161,178.01573 106.41071,178.68972 C 107.65504,180.08958 112.22448,187.33335 124.89990,208.00000 C 131.34809,218.51345 133.51299,222.84367 132.77413,223.75000 C 130.94800,225.99005 129.54840,225.08514 126.58586,219.74898 z M 174.18388,212.50423 C 173.55633,211.12690 173.43075,210.00000 173.90481,210.00000 C 174.73516,210.00000 176.23122,214.10211 175.62278,214.71056 C 175.45893,214.87440 174.81143,213.88155 174.18388,212.50423 z M 398.07895,212.58333 C 398.03553,211.52917 398.27188,210.93854 398.60417,211.27083 C 398.93646,211.60313 398.97198,212.46562 398.68311,213.18750 C 398.36389,213.98523 398.12693,213.74828 398.07895,212.58333 z M 175.05739,206.72029 C 173.72161,204.58136 173.67398,204.57670 172.96480,206.51577 C 172.37274,208.13463 172.10293,207.80090 171.49952,204.70337 C 170.46268,199.38086 171.40467,199.14327 174.57143,203.92857 C 176.06812,206.19022 177.09729,208.23604 176.85848,208.47485 C 176.61968,208.71366 175.80919,207.92411 175.05739,206.72029 z M 187.27083,206.39583 C 187.60313,206.06354 188.46562,206.02802 189.18750,206.31689 C 189.98523,206.63611 189.74828,206.87307 188.58333,206.92105 C 187.52917,206.96447 186.93854,206.72813 187.27083,206.39583 z M 178.50000,203.71106 C 177.95000,203.04399 176.23960,200.81111 174.69911,198.74910 L 171.89822,195.00000 L 174.19911,195.07895 C 175.46460,195.12237 175.92691,195.38840 175.22646,195.67013 C 174.34475,196.02476 174.88317,197.24184 176.97646,199.62597 C 178.63941,201.51996 180.00000,203.50393 180.00000,204.03480 C 180.00000,205.26594 179.73480,205.20871 178.50000,203.71106 z M 156.00000,203.16052 C 156.00000,202.69880 157.23750,201.76341 158.75000,201.08188 L 161.50000,199.84273 L 159.29181,201.92136 C 156.92306,204.15114 156.00000,204.49862 156.00000,203.16052 z M 134.00000,196.20402 C 131.52500,192.19818 128.64847,187.47602 127.60771,185.71033 L 125.71542,182.50000 L 128.35771,185.20636 C 129.81097,186.69485 131.00000,188.17634 131.00000,188.49856 C 131.00000,189.72562 136.35529,195.61843 137.95501,196.15167 C 138.67760,196.39253 139.02791,197.94138 138.83001,200.02036 L 138.50000,203.48738 L 134.00000,196.20402 z M 192.00000,198.00000 C 191.41130,196.90000 191.15463,196.00000 191.42963,196.00000 C 191.70463,196.00000 192.41130,196.90000 193.00000,198.00000 C 193.58870,199.10000 193.84537,200.00000 193.57037,200.00000 C 193.29537,200.00000 192.58870,199.10000 192.00000,198.00000 z M 184.68023,188.46721 C 180.48862,183.56513 180.37848,182.37219 184.52170,186.75000 C 186.88259,189.24457 189.49107,193.04838 188.78518,192.96721 C 188.62833,192.94917 186.78110,190.92417 184.68023,188.46721 z M 91.702330,190.33333 C 91.983736,189.60000 92.342688,189.00000 92.500000,189.00000 C 92.657312,189.00000 93.016264,189.60000 93.297670,190.33333 C 93.579077,191.06667 93.220125,191.66667 92.500000,191.66667 C 91.779875,191.66667 91.420923,191.06667 91.702330,190.33333 z M 193.88548,189.75000 C 193.23379,188.51250 192.20546,187.16939 191.60030,186.76531 C 190.91485,186.30763 190.88751,186.02485 191.52776,186.01531 C 192.69531,185.99792 195.37377,189.04643 195.75000,190.82089 C 196.15725,192.74166 195.15901,192.16832 193.88548,189.75000 z M 378.25000,190.64009 C 377.01250,190.02720 376.00000,188.73245 376.00000,187.76287 C 376.00000,186.79329 375.45105,186.11250 374.78011,186.25000 C 373.96092,186.41788 373.44760,184.58873 373.21735,180.68123 C 372.88150,174.98148 372.91883,174.88619 375.04254,176.02277 C 376.27962,176.68483 378.66829,176.90961 380.60530,176.54622 C 384.08229,175.89394 384.47693,176.36720 384.24233,180.90792 C 384.20232,181.68227 384.58106,183.39811 385.08398,184.72089 C 385.76600,186.51474 385.55385,187.73727 384.24919,189.53154 C 382.33335,192.16634 381.60386,192.30114 378.25000,190.64009 z M 89.015313,189.28943 C 89.044361,187.79190 90.751295,185.78861 91.270040,186.64324 C 91.556061,187.11446 91.162311,188.08024 90.395040,188.78943 C 89.627768,189.49861 89.006891,189.72361 89.015313,189.28943 z M 145.04004,189.68426 C 144.92837,187.40900 150.42591,180.00000 152.22584,180.00000 C 152.70830,180.00000 152.02164,181.01250 150.69992,182.25000 C 149.37820,183.48750 147.57304,185.85000 146.68844,187.50000 C 145.80384,189.15000 145.06206,190.13292 145.04004,189.68426 z M 160.00000,187.50000 C 161.37500,186.71398 163.17500,186.07254 164.00000,186.07458 C 164.82500,186.07662 163.98584,186.73567 162.13519,187.53914 C 157.87684,189.38794 156.73405,189.36699 160.00000,187.50000 z M 195.57143,186.42857 C 193.42749,184.28463 193.59846,183.71474 196.00000,185.00000 C 197.10000,185.58870 198.00000,186.50453 198.00000,187.03518 C 198.00000,188.39412 197.38281,188.23995 195.57143,186.42857 z M 170.73097,184.34406 C 171.40800,184.07014 172.75800,184.05347 173.73097,184.30701 C 174.70394,184.56055 174.15000,184.78467 172.50000,184.80505 C 170.85000,184.82543 170.05394,184.61799 170.73097,184.34406 z M 142.08560,182.50000 C 142.05536,181.40000 142.46684,179.82500 143.00000,179.00000 C 143.86167,177.66667 143.96327,177.66667 143.91440,179.00000 C 143.88417,179.82500 143.47269,181.40000 143.00000,182.50000 C 142.14057,184.50000 142.14057,184.50000 142.08560,182.50000 z M 162.00000,181.10901 C 163.37500,179.97352 165.17500,179.03724 166.00000,179.02840 C 167.31536,179.01430 166.51552,179.54745 160.75288,182.52598 C 160.06380,182.88214 160.62500,182.24451 162.00000,181.10901 z M 177.74108,182.40774 C 177.41533,182.08200 175.42783,181.20175 173.32441,180.45164 C 171.22098,179.70152 170.30985,179.06803 171.29966,179.04389 C 173.12499,178.99937 179.00000,181.65582 179.00000,182.52568 C 179.00000,183.17265 178.45492,183.12158 177.74108,182.40774 z M 124.00000,180.50000 C 124.00000,179.67500 124.45000,179.00000 125.00000,179.00000 C 125.55000,179.00000 126.00000,179.67500 126.00000,180.50000 C 126.00000,181.32500 125.55000,182.00000 125.00000,182.00000 C 124.45000,182.00000 124.00000,181.32500 124.00000,180.50000 z M 118.45491,172.30424 C 113.63188,164.15070 113.56767,164.00000 114.91667,164.00000 C 115.51250,164.00000 116.00000,164.63459 116.00000,165.41020 C 116.00000,166.18581 117.84558,169.15524 120.10128,172.00892 C 122.51940,175.06806 123.83469,177.56531 123.30619,178.09381 C 122.77769,178.62231 120.78672,176.24627 118.45491,172.30424 z M 100.66667,177.33333 C 100.30000,176.96667 100.00000,176.20167 100.00000,175.63333 C 100.00000,175.00673 100.46577,175.06577 101.18333,175.78333 C 101.83417,176.43417 102.13417,177.19917 101.85000,177.48333 C 101.56583,177.76750 101.03333,177.70000 100.66667,177.33333 z M 156.52283,177.09794 C 157.06027,176.57191 158.85000,175.82138 160.50000,175.43009 C 164.36977,174.51239 163.50056,175.36480 159.02283,176.87872 C 157.11038,177.52531 155.98538,177.62396 156.52283,177.09794 z M 144.00000,176.05902 C 144.00000,175.54148 144.44485,174.84310 144.98855,174.50708 C 145.55541,174.15674 145.72305,174.55814 145.38156,175.44806 C 144.71677,177.18048 144.00000,177.49745 144.00000,176.05902 z M 166.25000,174.28375 C 167.76250,174.05462 170.23750,174.05462 171.75000,174.28375 C 173.26250,174.51287 172.02500,174.70034 169.00000,174.70034 C 165.97500,174.70034 164.73750,174.51287 166.25000,174.28375 z M 378.00000,173.37756 C 378.00000,172.20502 378.34663,172.03653 379.25000,172.76995 C 379.93750,173.32811 381.40000,174.00601 382.50000,174.27639 C 383.81302,174.59913 383.38365,174.80784 381.25000,174.88400 C 378.87110,174.96891 378.00000,174.56513 378.00000,173.37756 z M 147.49597,171.15738 C 148.58588,169.86893 150.38266,168.35135 151.48881,167.78497 C 153.61272,166.69747 153.30339,167.03257 148.50715,171.01498 C 145.61973,173.41246 145.58411,173.41748 147.49597,171.15738 z M 180.44113,171.44483 C 178.57711,169.95144 178.58937,169.93298 180.75000,170.98002 C 181.98750,171.57971 183.00000,172.27953 183.00000,172.53518 C 183.00000,173.30040 182.48139,173.07942 180.44113,171.44483 z M 161.50000,166.39579 C 159.62865,164.95428 159.75730,164.90025 163.50000,165.55582 C 169.32176,166.57555 171.32593,167.93951 167.00000,167.93779 C 165.07500,167.93702 162.60000,167.24312 161.50000,166.39579 z M 154.27083,166.39583 C 154.60313,166.06354 155.46562,166.02802 156.18750,166.31689 C 156.98523,166.63611 156.74828,166.87307 155.58333,166.92105 C 154.52917,166.96447 153.93854,166.72813 154.27083,166.39583 z M 204.96089,161.36032 C 203.92438,157.65827 201.69032,154.67747 193.90605,146.61032 C 181.97768,134.24851 180.39085,132.30041 175.22254,123.67323 C 170.35610,115.54996 168.58973,108.95438 167.40961,94.500000 L 166.83810,87.500000 L 169.35427,92.709479 C 175.34990,105.12282 188.95160,121.27948 199.55337,128.58120 C 203.71421,131.44688 205.07657,133.02654 205.43850,135.40504 C 205.95176,138.77793 206.89915,166.00000 206.50329,166.00000 C 206.36944,166.00000 205.67536,163.91215 204.96089,161.36032 z M 385.83711,155.32745 C 384.15942,154.88298 380.99998,149.34504 381.00002,146.84887 C 381.00003,145.94260 382.47662,145.44302 385.50002,145.32636 C 389.99088,145.15308 390.00000,145.15966 390.00000,148.57636 C 390.00000,150.45936 390.45381,152.00000 391.00847,152.00000 C 391.60626,152.00000 391.50830,152.81448 390.76793,154.00000 C 389.51880,156.00017 388.95216,156.15272 385.83711,155.32745 z M 227.66093,150.77975 C 227.34464,148.42589 226.80170,143.12500 226.45439,139.00000 L 225.82293,131.50000 L 232.70075,124.50000 C 236.48355,120.65000 240.90962,115.47500 242.53647,113.00000 C 244.16332,110.52500 245.73148,108.27500 246.02126,108.00000 C 247.24109,106.84242 252.00000,96.686655 252.00000,95.241047 C 252.00000,92.589439 253.30426,94.798565 253.66062,98.053777 C 253.84497,99.737691 253.58871,100.86384 253.09116,100.55634 C 252.59361,100.24883 252.41396,100.86697 252.69194,101.92998 C 253.59147,105.36979 249.78930,120.29631 246.03423,128.06677 C 244.02308,132.22849 239.81763,138.84196 236.68879,142.76338 C 233.55996,146.68480 230.98569,150.25476 230.96820,150.69662 C 230.95070,151.13848 230.32881,152.30089 229.58620,153.27975 C 228.37156,154.88083 228.17828,154.62985 227.66093,150.77975 z M 411.73641,145.30806 C 410.76643,145.05509 409.30393,143.55464 408.48641,141.97372 C 406.80514,138.72250 406.48209,130.43812 408.00000,129.50000 C 408.55000,129.16008 409.00000,129.35852 409.00000,129.94098 C 409.00000,130.52344 409.67500,131.00000 410.50000,131.00000 C 411.32500,131.00000 412.00000,130.53963 412.00000,129.97695 C 412.00000,129.41427 413.04842,129.64085 414.32983,130.48045 C 415.61123,131.32006 416.87286,131.79381 417.13344,131.53323 C 417.58927,131.07740 417.43072,139.23970 416.97383,139.75000 C 416.85073,139.88750 416.67163,140.33750 416.57584,140.75000 C 415.95475,143.42472 414.76242,145.98253 414.18261,145.88400 C 413.80718,145.82020 412.70638,145.56102 411.73641,145.30806 z M 386.00000,143.00000 C 386.00000,142.45000 387.37656,142.00000 389.05902,142.00000 C 390.84372,142.00000 391.86058,142.41658 391.50000,143.00000 C 391.16008,143.55000 389.78352,144.00000 388.44098,144.00000 C 387.09844,144.00000 386.00000,143.55000 386.00000,143.00000 z M 441.44668,135.91373 C 441.03109,135.24130 440.58012,133.68042 440.44452,132.44511 C 440.30892,131.20981 439.89810,129.25431 439.53160,128.09955 C 438.78488,125.74685 440.77724,125.17724 442.77287,127.17287 C 443.61560,128.01560 444.58674,128.05370 446.22287,127.30822 C 448.28046,126.37072 448.49526,126.52277 448.45084,128.88535 C 448.38750,132.25435 447.10479,136.00000 446.01440,136.00000 C 445.54645,136.00000 444.49729,136.25568 443.68294,136.56817 C 442.86859,136.88067 441.86227,136.58617 441.44668,135.91373 z M 391.74513,116.01531 C 390.81049,114.92373 389.76170,112.89873 389.41449,111.51531 C 388.91031,109.50650 389.15740,108.99725 390.64159,108.98635 C 391.66372,108.97884 393.51250,108.70135 394.75000,108.36971 C 396.77271,107.82765 397.00000,108.12382 397.00000,111.30158 C 397.00000,117.99360 394.98592,119.80027 391.74513,116.01531 z M 396.27083,106.39583 C 396.60312,106.06354 397.46562,106.02802 398.18750,106.31689 C 398.98523,106.63611 398.74828,106.87307 397.58333,106.92105 C 396.52917,106.96447 395.93854,106.72813 396.27083,106.39583 z M 445.41380,101.23469 C 444.49584,100.61379 441.71315,94.099266 442.30202,93.949723 C 442.41091,93.922070 444.41250,93.734055 446.75000,93.531911 C 450.55921,93.202496 450.99858,93.389211 450.98635,95.332189 C 450.95048,101.02605 448.67256,103.43886 445.41380,101.23469 z M 411.55670,86.777494 C 409.40290,83.702511 409.55404,81.650115 411.88930,82.260801 C 412.92842,82.532536 414.37904,82.383774 415.11291,81.930219 C 417.11511,80.692792 417.89746,82.811391 416.65442,86.104590 C 415.34618,89.570518 413.66816,89.792018 411.55670,86.777494 z M 414.02896,79.039060 C 413.21989,78.527387 412.81826,77.848403 413.13646,77.530207 C 413.45466,77.212011 414.28422,77.637543 414.97994,78.475834 C 416.42254,80.214052 416.14593,80.377874 414.02896,79.039060 z " id="path1315" style="fill:#b19275"/>
+ <path d="M 149.75000,805.26101 C 146.56904,805.06140 144.00000,804.42359 144.00000,803.83346 C 144.00000,803.21524 144.94600,803.02025 146.25000,803.36971 C 147.48750,803.70135 155.92500,804.04219 165.00000,804.12714 C 177.21523,804.24149 180.07174,804.47903 176.00000,805.04190 C 170.37980,805.81882 160.01761,805.90532 149.75000,805.26101 z M 137.25000,803.31067 C 138.21250,803.05915 139.78750,803.05915 140.75000,803.31067 C 141.71250,803.56220 140.92500,803.76800 139.00000,803.76800 C 137.07500,803.76800 136.28750,803.56220 137.25000,803.31067 z M 216.50000,795.68271 C 220.35000,793.85106 225.01633,790.83469 226.86962,788.97967 C 230.08264,785.76366 230.21323,785.34884 229.67963,780.05346 C 229.17603,775.05577 229.26414,774.69426 230.56001,776.44113 C 233.30464,780.14094 231.88884,787.52215 227.73648,791.16146 C 225.00260,793.55755 216.57845,797.55757 212.50000,798.39615 C 210.85000,798.73541 212.65000,797.51437 216.50000,795.68271 z M 445.50000,797.30504 C 442.12905,796.52472 398.75812,776.73709 394.50000,774.03670 C 392.30000,772.64151 387.85419,769.47500 384.62043,767.00000 C 373.03266,758.13116 373.00868,758.11972 365.87573,758.05765 C 362.23238,758.02594 357.31811,758.68212 354.95514,759.51583 C 347.31052,762.21301 330.87897,765.10485 314.50000,766.63567 C 296.12400,768.35314 234.05109,768.25010 232.76531,766.50000 C 232.36123,765.95000 232.02373,766.65331 232.01531,768.06291 C 231.98658,772.87246 225.87170,776.94631 214.15905,779.95909 C 205.14816,782.27691 205.52297,781.55768 214.98677,778.37078 C 218.87666,777.06087 223.83160,774.81628 225.99774,773.38280 C 229.72516,770.91611 231.89066,767.55733 230.59131,766.25797 C 230.26609,765.93275 230.00000,766.34692 230.00000,767.17835 C 230.00000,768.00977 229.15603,769.45381 228.12450,770.38733 C 226.34292,771.99963 226.12078,771.93225 223.68865,769.04183 L 221.12830,765.99903 L 214.44659,767.54862 C 210.77165,768.40090 207.51778,768.85111 207.21577,768.54911 C 206.91376,768.24710 207.44322,768.00000 208.39235,768.00000 C 209.34148,768.00000 209.82877,767.53196 209.47523,766.95992 C 209.06038,766.28867 209.83735,766.11952 211.66621,766.48292 C 214.05583,766.95774 214.16657,766.89782 212.37274,766.10063 C 210.02158,765.05575 203.76142,766.12319 201.56890,767.94282 C 200.52765,768.80698 200.06885,768.77035 199.67619,767.79174 C 199.31065,766.88070 199.13463,766.85505 199.07895,767.70469 C 199.03553,768.36726 197.53750,769.16212 195.75000,769.47104 C 190.02640,770.46020 183.03616,770.75050 183.51282,769.97925 C 183.76679,769.56833 182.64522,768.68147 181.02045,768.00847 C 179.39567,767.33547 177.54629,766.15824 176.91071,765.39241 C 176.27513,764.62659 174.83521,764.00000 173.71089,764.00000 C 169.90203,764.00000 172.67089,762.96944 178.60064,762.18004 C 182.13638,761.70935 176.28654,761.56527 164.00000,761.82043 C 152.72500,762.05458 143.72584,762.00243 144.00186,761.70455 C 144.27789,761.40667 157.10289,760.91838 172.50186,760.61948 C 187.90084,760.32057 202.29551,759.63194 204.49002,759.08918 C 207.84208,758.26014 208.80143,758.39279 210.49002,759.91883 C 211.59551,760.91789 213.85000,762.51672 215.50000,763.47179 C 217.99441,764.91562 217.79057,764.54188 214.29050,761.25420 L 210.08099,757.30013 L 215.29050,756.12536 C 218.15572,755.47923 221.17500,754.48222 222.00000,753.90978 C 223.11670,753.13494 222.86117,753.07151 221.00000,753.66154 C 219.62500,754.09744 217.08047,754.46442 215.34549,754.47704 C 213.61051,754.48967 212.36571,754.78271 212.57926,755.12825 C 213.12497,756.01122 207.01296,757.12604 205.78549,756.36743 C 205.23049,756.02441 204.48920,756.19631 204.13820,756.74942 C 203.78719,757.30252 201.47500,758.06175 199.00000,758.43658 C 195.55784,758.95788 194.85261,758.85373 196.00000,757.99354 C 197.22251,757.07702 197.09676,756.98194 195.32022,757.47959 C 190.77548,758.75268 159.60685,759.83499 137.50000,759.48735 C 117.54471,759.17355 90.888569,757.32543 78.745751,755.41380 C 74.660278,754.77062 74.571525,753.00000 78.624758,753.00000 C 80.003457,753.00000 81.889399,752.59546 82.815741,752.10102 C 83.871562,751.53748 93.268420,752.10464 108.00000,753.62106 C 123.62931,755.22989 135.01669,755.89060 142.00000,755.59379 C 148.57934,755.31416 151.00641,755.44038 148.50000,755.93185 C 145.08957,756.60058 145.67913,756.73651 152.50000,756.85403 C 168.83277,757.13544 200.20827,753.88127 208.50000,751.04588 L 211.50000,750.02002 L 208.00000,750.48696 C 191.95226,752.62792 172.78802,753.91839 155.28525,754.03664 C 143.85336,754.11388 133.82500,753.94971 133.00000,753.67183 C 132.17500,753.39395 125.87500,752.87014 119.00000,752.50782 C 112.12500,752.14549 104.47500,751.50907 102.00000,751.09355 C 96.933939,750.24303 96.429279,750.48560 110.50000,747.00795 C 114.90000,745.92046 119.40000,745.02103 120.50000,745.00919 C 121.60000,744.99736 123.76499,744.32788 125.31109,743.52145 C 126.87147,742.70758 132.87789,741.70925 138.81109,741.27761 C 149.10350,740.52885 149.27743,740.47841 143.50000,739.91811 C 137.70316,739.35592 137.65884,739.33052 142.19098,739.16811 C 144.77102,739.07565 147.13588,738.58916 147.44622,738.08701 C 147.75656,737.58487 149.92062,736.88436 152.25524,736.53033 C 154.58986,736.17630 157.40000,735.46300 158.50000,734.94523 C 159.60000,734.42746 162.30000,733.35967 164.50000,732.57237 L 168.50000,731.14092 L 165.13337,731.07046 C 162.27421,731.01062 161.84553,730.69868 162.28949,729.00100 C 162.89300,726.69317 161.14786,725.14272 160.01320,726.97865 C 159.51472,727.78520 159.02914,727.85616 158.61324,727.18323 C 158.26303,726.61657 159.44428,725.14690 161.23824,723.91731 C 166.36065,720.40640 171.00000,714.86265 171.00000,712.25261 C 171.00000,709.43452 169.52992,706.35620 166.70072,703.25000 C 164.65285,701.00162 164.65283,701.00000 166.67229,701.00000 C 167.78379,701.00000 170.23438,702.49678 172.11806,704.32618 C 174.00173,706.15558 176.03846,707.48718 176.64413,707.28529 C 177.24980,707.08340 177.99736,707.88189 178.30537,709.05972 C 178.61338,710.23755 179.29852,710.93354 179.82791,710.60636 C 180.35729,710.27918 181.05941,710.71242 181.38815,711.56913 C 181.71690,712.42583 182.42586,712.85484 182.96362,712.52248 C 183.50138,712.19013 184.19461,712.94911 184.50414,714.20910 C 185.46011,718.10064 185.74460,734.03981 184.86775,734.58173 C 183.56863,735.38464 163.03019,737.95878 157.75000,737.98048 C 155.13750,737.99121 153.00000,738.41968 153.00000,738.93261 C 153.00000,740.46123 156.91530,741.23873 161.34876,740.59051 C 166.19246,739.88231 179.69881,738.74118 182.27161,738.82277 C 183.30776,738.85563 183.76254,738.42480 183.36710,737.78497 C 182.93356,737.08348 183.15954,736.98057 183.99698,737.49813 C 185.01317,738.12617 184.88103,738.61994 183.40149,739.72323 C 182.35567,740.50309 181.61250,741.55940 181.75000,742.07058 C 181.88750,742.58176 181.43750,743.01368 180.75000,743.03041 C 179.00995,743.07274 182.50322,744.99086 187.93818,746.97737 L 192.50000,748.64474 L 192.71086,743.82237 C 192.89217,739.67572 192.65522,739.00000 191.01987,739.00000 C 189.97386,739.00000 188.87506,738.60686 188.57809,738.12635 C 187.84431,736.93907 199.54251,734.72002 202.15842,735.55028 C 203.56128,735.99553 204.02505,735.84954 203.56621,735.10713 C 202.41814,733.24952 205.78232,733.85600 210.83847,736.41815 C 216.26999,739.17051 222.19436,740.52313 224.66517,739.57499 C 226.19100,738.98947 226.16872,738.80655 224.42270,737.58424 C 217.49015,732.73110 212.63527,730.80271 208.86679,731.40531 C 206.51809,731.78088 205.00000,731.62640 205.00000,731.01182 C 205.00000,730.45532 206.01250,729.94780 207.25000,729.88400 C 209.28332,729.77917 209.30740,729.72167 207.50000,729.28693 C 206.40000,729.02235 205.07250,728.39955 204.55000,727.90294 C 203.26756,726.68403 200.00000,726.75374 200.00000,728.00000 C 200.00000,728.55000 200.52500,729.00000 201.16667,729.00000 C 201.80833,729.00000 202.09774,729.23559 201.80979,729.52354 C 200.80905,730.52428 197.99991,728.77603 197.98469,727.14301 C 197.97222,725.80505 197.80535,725.75903 197.08596,726.89515 C 196.37461,728.01857 196.09663,727.92118 195.65869,726.39515 C 195.16237,724.66564 195.13167,724.67481 195.30742,726.50000 C 195.43147,727.78833 197.08512,729.26052 199.95462,730.63727 C 203.42670,732.30313 203.97811,732.86978 202.45462,733.20635 C 201.37958,733.44384 199.38436,733.24149 198.02080,732.75669 C 196.40627,732.18265 195.41808,732.24575 195.18746,732.93761 C 194.61944,734.64169 193.01070,734.16146 192.88400,732.25000 C 192.77762,730.64518 192.72912,730.65003 192.29941,732.30847 C 191.99267,733.49233 191.08294,734.01040 189.66542,733.80847 C 187.55921,733.50843 187.49248,733.05447 187.22502,717.20642 C 187.03152,705.74077 186.62635,701.11289 185.85765,701.58798 C 184.61923,702.35336 174.00000,700.04190 174.00000,699.00695 C 174.00000,697.46760 175.30553,697.40297 181.24768,698.64815 C 184.68646,699.36874 188.17500,699.96081 189.00000,699.96385 C 190.33333,699.96876 190.33333,699.86195 189.00000,699.00255 C 187.92279,698.30823 188.66056,698.10116 191.61754,698.26786 C 194.23119,698.41522 195.57594,698.91960 195.29937,699.64885 C 195.05972,700.28072 195.34433,701.09477 195.93183,701.45787 C 196.51932,701.82096 197.00000,701.60933 197.00000,700.98759 C 197.00000,700.36584 197.73437,699.12277 198.63193,698.22521 C 200.14117,696.71597 200.20830,696.76834 199.52480,698.92187 C 199.01497,700.52820 199.13176,701.03660 199.90132,700.56098 C 200.54391,700.16385 201.37409,700.83704 201.85931,702.14871 L 202.70170,704.42590 L 203.92059,702.14838 C 204.89980,700.31870 205.42071,700.10427 206.56974,701.05788 C 207.35638,701.71073 208.00000,702.86479 208.00000,703.62244 C 208.00000,704.42517 209.04321,705.00000 210.50000,705.00000 C 212.86785,705.00000 213.97422,706.44967 212.15358,707.16667 C 211.68805,707.35000 212.58660,708.54553 214.15036,709.82339 C 216.53924,711.77553 216.88426,711.85542 216.30955,710.32339 C 215.68459,708.65740 215.79277,708.62932 217.56277,709.99810 C 218.62825,710.82206 220.26362,712.32588 221.19693,713.33992 C 222.13024,714.35396 223.33170,714.91303 223.86685,714.58229 C 225.31724,713.68590 228.98626,718.84902 228.29511,720.81382 C 227.25539,723.76957 223.81079,726.90734 220.35295,728.04853 C 218.50883,728.65715 217.00347,729.45771 217.00770,729.82755 C 217.01839,730.76097 225.06190,735.27143 225.65612,734.67721 C 226.46525,733.86808 223.60738,730.00000 222.20044,730.00000 C 221.47528,730.00000 221.16008,729.55000 221.50000,729.00000 C 223.15767,726.31783 227.89686,730.75293 228.39825,735.45562 C 228.97709,740.88480 230.71694,741.81906 243.50000,743.56499 C 259.77799,745.78826 310.05980,745.12171 323.00000,742.51112 C 332.99316,740.49507 336.22366,739.08333 331.00000,739.01510 C 328.36582,738.98068 327.87106,738.72957 329.00000,738.00000 C 330.24421,737.19593 330.15895,737.02540 328.50000,737.00000 C 326.83587,736.97452 326.75190,736.80401 328.00000,735.98469 C 329.04248,735.30034 329.16129,734.77124 328.38953,734.25000 C 324.93962,731.91996 323.49658,723.00000 326.56955,723.00000 C 328.35930,723.00000 328.45170,721.11057 326.69492,720.43642 C 325.40361,719.94090 325.20803,715.09044 326.40150,713.15938 C 326.73753,712.61567 326.49939,711.99980 325.87230,711.79077 C 325.11949,711.53983 325.28724,710.85562 326.36607,709.77679 C 327.26473,708.87812 328.00000,707.73676 328.00000,707.24041 C 328.00000,706.74406 329.12500,705.73588 330.50000,705.00000 C 331.87500,704.26412 333.00000,703.35783 333.00000,702.98601 C 333.00000,701.48730 329.05694,698.84677 327.89307,699.56608 C 327.02346,700.10354 326.85754,699.81362 327.33006,698.58226 C 327.69853,697.62205 328.00000,696.64823 328.00000,696.41821 C 328.00000,696.18820 329.02499,696.00000 330.27776,696.00000 C 331.53053,696.00000 333.32612,695.10000 334.26797,694.00000 C 335.20982,692.90000 336.88483,692.00000 337.99021,692.00000 C 339.09560,692.00000 340.00000,691.55000 340.00000,691.00000 C 340.00000,690.45000 340.90000,690.00000 342.00000,690.00000 C 343.10000,690.00000 344.00000,690.40870 344.00000,690.90822 C 344.00000,691.40775 346.01902,693.89387 348.48671,696.43293 C 354.03258,702.13922 360.04341,710.20461 362.84962,715.70524 C 364.01661,717.99272 365.45779,720.16490 366.05224,720.53229 C 368.20216,721.86101 368.09651,720.11049 365.79950,716.34448 C 364.50982,714.23002 362.80363,711.15000 362.00796,709.50000 C 361.21230,707.85000 359.76001,705.69497 358.78065,704.71104 C 357.80129,703.72712 357.01497,702.37712 357.03327,701.71104 C 357.05157,701.04497 357.92379,701.52805 358.97154,702.78455 C 360.40841,704.50771 361.50024,704.91255 363.41467,704.43206 C 365.36679,703.94211 367.10209,704.63867 370.93049,707.44897 C 373.66821,709.45864 376.79215,712.31644 377.87258,713.79963 C 378.95300,715.28282 380.13185,716.20148 380.49223,715.84110 C 381.38479,714.94854 378.73462,710.22469 375.02392,706.09401 C 372.80739,703.62660 372.14670,702.11315 372.62637,700.60186 C 373.19905,698.79747 373.07702,698.69119 371.72292,699.81499 C 370.36839,700.93915 370.23412,700.82074 370.72683,698.93659 C 371.04005,697.73885 372.30761,694.67563 373.54364,692.12944 C 374.77966,689.58325 375.67833,687.37783 375.54066,687.22852 C 375.40300,687.07920 374.21253,687.38818 372.89518,687.91513 C 371.57783,688.44208 371.13750,688.90175 371.91667,688.93661 C 372.69583,688.97148 373.09774,689.23559 372.80979,689.52354 C 372.52185,689.81148 371.53362,689.75826 370.61374,689.40527 C 369.11471,688.83004 369.10219,688.64576 370.49308,687.62872 C 371.80769,686.66745 371.85041,686.07520 370.77247,683.75479 C 370.07261,682.24824 369.13594,681.01209 368.69098,681.00780 C 368.24602,681.00351 368.11049,680.63023 368.38980,680.17830 C 368.66912,679.72636 368.23055,678.07078 367.41522,676.49922 C 366.59988,674.92766 365.78004,672.70993 365.59335,671.57092 C 365.31199,669.85441 364.61471,669.53981 361.51892,669.73261 L 357.78394,669.96522 L 358.45150,666.40681 C 358.81866,664.44968 358.70489,662.32001 358.19867,661.67420 C 357.69246,661.02839 357.49142,658.79952 357.75191,656.72115 C 358.16803,653.40123 358.42438,653.09552 359.86277,654.20392 C 360.96582,655.05391 360.87846,654.73705 359.59501,653.23277 C 358.25508,651.66228 356.58412,651.00000 353.96164,651.00000 C 350.94050,651.00000 350.11888,650.57320 349.63029,648.75000 C 348.77052,645.54178 348.86213,643.79675 349.85801,644.41224 C 350.32991,644.70390 351.55821,643.37866 352.58756,641.46727 C 354.40839,638.08619 354.58557,638.00879 359.12565,638.61106 C 363.30840,639.16592 363.86340,639.00574 364.47903,637.06608 C 364.90168,635.73441 364.55702,633.97288 363.58293,632.48622 C 360.90065,628.39254 361.49309,627.73174 367.22020,628.42929 C 370.31927,628.80675 373.29135,629.86453 374.53465,631.03255 C 375.68649,632.11465 377.52240,633.00000 378.61445,633.00000 C 379.70650,633.00000 381.09530,633.49530 381.70066,634.10066 C 383.64066,636.04066 384.37387,631.21955 382.55988,628.45104 C 381.67659,627.10297 381.36612,626.00000 381.86996,626.00000 C 382.37379,626.00000 383.04213,626.66741 383.35516,627.48314 C 383.67629,628.32000 384.58836,628.71146 385.44825,628.38149 C 386.46719,627.99048 387.29999,628.65883 387.96135,630.39834 C 388.50538,631.82926 389.21319,633.00000 389.53427,633.00000 C 389.85534,633.00000 389.79695,632.48047 389.40451,631.84549 C 388.96243,631.13019 389.13019,630.96243 389.84549,631.40451 C 390.48047,631.79695 391.00000,632.96492 391.00000,634.00000 C 391.00000,635.03508 391.45000,636.16008 392.00000,636.50000 C 392.55000,636.83992 393.00000,636.64148 393.00000,636.05902 C 393.00000,635.47656 393.78750,634.99311 394.75000,634.98469 C 396.21777,634.97184 396.26276,634.81934 395.02896,634.03906 C 392.69470,632.56283 394.72776,631.55493 397.49577,632.81612 C 398.87310,633.44367 400.00000,633.57783 400.00000,633.11426 C 400.00000,632.65068 398.31250,631.53951 396.25000,630.64498 L 392.50000,629.01858 L 398.10917,629.50147 C 401.19421,629.76706 405.37426,630.67625 407.39816,631.52189 L 411.07797,633.05942 L 409.35767,635.97166 C 406.31310,641.12571 394.32444,653.00000 392.16532,653.00000 C 390.59630,653.00000 390.05454,653.74863 389.81336,656.25000 C 389.61505,658.30674 389.01376,659.39911 388.17567,659.22522 C 387.44729,659.07410 387.13060,659.40230 387.47191,659.95456 C 388.45229,661.54083 386.06954,665.09320 384.23403,664.78184 C 381.84635,664.37682 381.54165,667.45460 383.32916,673.92160 C 384.17721,676.98972 385.84260,683.14225 387.03003,687.59388 C 388.21746,692.04552 389.57200,696.30748 390.04012,697.06492 C 391.76786,699.86045 392.07407,697.05773 390.60906,691.85749 C 388.71344,685.12871 388.22742,677.42012 389.71758,677.71803 C 390.31741,677.83795 391.33144,677.30556 391.97099,676.53495 C 392.86433,675.45854 392.79826,674.59692 391.68587,672.81692 C 390.88951,671.54262 389.95083,669.26250 389.59992,667.75000 C 389.06568,665.44735 389.29034,665.00000 390.98095,665.00000 C 392.54654,665.00000 393.00000,665.65746 393.00000,667.92734 C 393.00000,669.53737 394.57500,673.87634 396.50000,677.56949 C 399.07198,682.50388 400.00000,685.54873 400.00000,689.05306 C 400.00000,691.67587 400.87751,696.64124 401.95001,700.08721 C 403.75105,705.87396 403.77439,706.44448 402.25557,707.55508 C 400.72968,708.67083 400.72975,708.93861 402.25665,711.26894 C 405.86751,716.77981 415.08482,725.66962 420.23154,728.60517 C 424.79656,731.20893 425.95227,731.50807 427.38874,730.45770 C 428.90958,729.34563 428.45488,728.83490 423.33725,725.90688 C 417.10584,722.34163 410.00000,716.39419 410.00000,714.74388 C 410.00000,714.18101 410.67066,713.22088 411.49036,712.61024 C 412.76277,711.66237 412.47807,710.86773 409.54373,707.17670 C 405.27598,701.80844 403.66928,697.09033 403.88423,690.55749 C 403.97576,687.77587 404.12999,683.10764 404.22698,680.18365 C 404.32396,677.25966 403.97507,674.55966 403.45166,674.18365 C 402.92825,673.80764 402.34989,672.60000 402.16643,671.50000 C 401.98296,670.40000 401.42046,669.07250 400.91643,668.55000 C 400.41239,668.02750 400.00000,666.79000 400.00000,665.80000 C 400.00000,664.81000 399.55000,664.00000 399.00000,664.00000 C 398.45000,664.00000 398.00000,661.76114 398.00000,659.02475 C 398.00000,654.10137 398.02666,654.05964 400.55715,655.02173 C 401.96358,655.55645 402.86864,655.59647 402.56840,655.11067 C 402.01017,654.20743 405.56541,652.67647 407.66519,652.91588 C 408.30605,652.98894 409.12931,651.68776 409.49465,650.02436 C 410.23726,646.64326 411.43241,646.16336 412.84113,648.68060 C 413.70551,650.22515 413.91192,650.23094 415.39082,648.75203 C 416.27587,647.86699 417.00000,646.52571 417.00000,645.77143 C 417.00000,645.01714 417.54000,643.86000 418.20000,643.20000 C 419.69341,641.70659 418.52523,641.64854 415.84495,643.08298 C 414.12442,644.00378 413.88110,643.89147 414.22009,642.33298 C 414.43937,641.32484 415.07388,640.58561 415.63011,640.69024 C 416.18634,640.79487 417.20125,639.33237 417.88545,637.44024 C 418.56965,635.54811 419.53714,634.00000 420.03542,634.00000 C 420.53370,634.00000 422.04546,631.58623 423.39489,628.63608 C 425.73966,623.50989 428.12663,621.34219 430.09024,622.55577 C 430.59061,622.86502 431.00000,623.61854 431.00000,624.23028 C 431.00000,624.84201 431.74449,626.16518 432.65443,627.17065 C 433.56437,628.17612 434.85416,631.13655 435.52063,633.74939 C 436.90079,639.16018 435.89414,643.85171 431.51464,652.41948 C 430.13159,655.12519 428.96857,658.50019 428.93015,659.91948 C 428.87700,661.88301 427.40099,663.57593 422.75683,667.00000 C 419.39991,669.47500 416.16885,672.40000 415.57667,673.50000 C 414.98450,674.60000 413.93750,675.85986 413.25000,676.29969 C 412.56250,676.73952 412.00000,678.22997 412.00000,679.61179 C 412.00000,682.61836 414.82220,691.68308 416.64586,694.53399 C 417.91120,696.51209 420.29891,710.03442 419.52034,710.81300 C 419.30645,711.02688 418.60788,709.24396 417.96795,706.85094 C 417.32803,704.45792 416.45118,702.05000 416.01941,701.50000 C 415.38604,700.69322 412.55567,692.02653 410.33128,684.08278 C 410.03336,683.01885 409.64919,682.95081 408.79017,683.80983 C 407.29319,685.30681 409.01744,692.98490 412.60522,700.79824 C 418.63735,713.93481 419.38738,715.33785 419.76776,714.19671 C 420.33377,712.49868 422.00000,712.70989 422.00000,714.47968 C 422.00000,715.29350 423.82292,716.88934 426.05094,718.02599 C 429.64832,719.86123 430.51603,719.95030 433.80094,718.82151 C 440.26036,716.60186 441.81904,715.01993 445.94447,706.49681 C 448.16223,701.91492 450.54508,697.56622 451.23970,696.83305 C 451.93431,696.09987 453.62704,693.81557 455.00131,691.75683 C 457.45287,688.08427 459.00000,687.01763 459.00000,689.00000 C 459.00000,689.55000 460.15156,690.00000 461.55902,690.00000 C 463.01038,690.00000 463.85052,690.43284 463.50000,691.00000 C 463.16008,691.55000 463.55697,692.00000 464.38197,692.00000 C 465.20697,692.00000 466.16060,691.54916 466.50116,690.99813 C 467.19054,689.88269 462.31929,687.68464 460.98518,688.50916 C 459.13200,689.65449 458.98412,686.82573 460.76217,684.24318 C 461.80092,682.73443 463.25480,679.92500 463.99300,678.00000 C 464.73121,676.07500 465.81280,673.87975 466.39654,673.12167 C 466.98028,672.36360 468.62474,669.21360 470.05090,666.12167 C 481.69776,640.87111 482.06295,640.23741 485.34554,639.58089 C 487.16384,639.21723 488.62790,639.38369 488.82552,639.97656 C 489.26475,641.29424 494.68835,641.31328 495.50000,640.00000 C 495.83992,639.45000 496.54148,639.00000 497.05902,639.00000 C 497.57656,639.00000 498.00000,639.45000 498.00000,640.00000 C 498.00000,640.55000 497.32500,641.00000 496.50000,641.00000 C 494.80183,641.00000 494.48864,642.56593 496.00000,643.50000 C 496.55000,643.83992 496.99311,644.65398 496.98469,645.30902 C 496.97549,646.02463 496.58246,645.90129 496.00000,645.00000 C 495.46684,644.17500 495.03063,643.95000 495.03063,644.50000 C 495.03063,645.05000 495.43217,646.13431 495.92295,646.90958 C 496.66804,648.08657 497.32568,648.10774 499.90854,647.03788 C 502.11422,646.12426 503.36985,646.06206 504.28444,646.82110 C 504.98989,647.40657 506.15078,647.52485 506.86420,647.08393 C 507.74236,646.54120 507.13132,646.07626 504.97239,645.64448 C 502.74883,645.19977 501.95059,644.57115 502.33555,643.56795 C 502.63920,642.77665 502.35043,641.91067 501.69382,641.64356 C 501.03722,641.37644 501.48594,641.12237 502.69098,641.07895 C 503.89602,641.03553 505.17904,641.48068 505.54213,642.06817 C 505.90523,642.65567 506.81737,642.90032 507.56913,642.61185 C 508.32088,642.32337 509.20192,642.51769 509.52699,643.04367 C 509.85207,643.56965 509.30398,644.03553 508.30902,644.07895 C 507.25952,644.12475 507.02482,644.36966 507.75000,644.66228 C 509.55231,645.38953 509.28708,648.35556 507.17295,651.11514 C 504.56721,654.51644 500.49355,663.26847 500.81936,664.76548 C 501.15061,666.28746 497.91791,672.00000 496.72538,672.00000 C 496.26150,672.00000 496.17226,672.46971 496.52707,673.04380 C 497.37975,674.42347 495.18317,676.97986 492.15612,678.13074 C 490.40263,678.79742 489.08414,678.62992 487.40020,677.52657 C 484.43945,675.58661 484.33795,675.59966 483.70989,678.00138 C 483.37393,679.28610 483.57617,679.76194 484.27469,679.33023 C 484.87319,678.96034 484.15622,680.23970 482.68143,682.17324 C 481.20664,684.10679 480.01001,686.09631 480.02224,686.59439 C 480.03447,687.09248 480.92446,686.37500 482.00000,685.00000 C 483.07554,683.62500 483.96553,683.05046 483.97776,683.72325 C 484.01039,685.51791 479.73744,694.00000 478.80073,694.00000 C 478.36033,694.00000 478.00000,694.67500 478.00000,695.50000 C 478.00000,696.32500 477.61848,697.00000 477.15218,697.00000 C 476.68588,697.00000 476.26773,698.28822 476.22297,699.86270 C 476.10623,703.96846 473.36161,710.00000 471.61004,710.00000 C 469.29521,710.00000 468.76121,708.23745 470.72897,707.09187 C 472.25653,706.20256 472.12194,706.05664 469.75000,706.03041 C 466.75200,705.99726 466.51148,706.58490 467.96179,710.39950 C 468.91854,712.91596 467.74994,715.02245 466.51008,713.01631 C 466.16462,712.45734 464.83167,712.00000 463.54797,712.00000 C 460.33764,712.00000 458.94608,708.21554 460.97583,705.00487 C 461.78621,703.72300 462.12895,703.79409 463.37875,705.50330 C 464.18050,706.59976 465.18577,707.14756 465.61268,706.72065 C 466.03960,706.29374 465.37733,704.94444 464.14097,703.72222 C 462.04968,701.65484 461.82365,701.62193 460.89684,703.25000 C 460.34892,704.21250 459.44642,705.00000 458.89129,705.00000 C 458.33616,705.00000 458.16008,704.55000 458.50000,704.00000 C 459.23100,702.81722 458.25248,702.81722 455.50000,704.00000 C 453.55137,704.83735 453.55480,704.86123 455.63337,704.92971 C 457.83875,705.00237 459.57065,708.52928 457.90612,709.55802 C 456.39992,710.48890 456.89064,711.97920 458.50000,711.36163 C 459.47378,710.98795 460.00000,711.38731 460.00000,712.50000 C 460.00000,713.55913 460.53544,714.00851 461.40146,713.67619 C 462.24041,713.35425 463.00990,713.92987 463.31859,715.11028 C 463.74677,716.74764 463.46660,716.97131 461.66712,716.42869 C 460.47521,716.06928 459.07250,715.37579 458.55000,714.88761 C 456.76612,713.22089 456.28939,713.99959 456.49151,718.25000 C 456.60266,720.58750 457.21254,722.55625 457.84680,722.62500 C 458.48106,722.69375 459.70156,722.80625 460.55902,722.87500 C 461.41648,722.94375 461.83992,723.45000 461.50000,724.00000 C 461.16008,724.55000 461.35852,725.00000 461.94098,725.00000 C 462.52344,725.00000 463.00000,725.85530 463.00000,726.90066 C 463.00000,728.25325 464.08135,729.08852 466.75000,729.79731 C 470.46207,730.78322 470.46965,730.79554 467.50000,731.01507 C 465.85000,731.13704 464.05000,731.11667 463.50000,730.96980 C 462.95000,730.82293 460.27084,730.09630 457.54631,729.35507 C 454.25609,728.45994 452.25805,728.34195 451.59631,729.00369 C 450.93456,729.66544 451.85326,730.00000 454.33212,730.00000 C 456.38478,730.00000 459.67974,730.67500 461.65424,731.50000 C 463.62875,732.32500 466.38929,733.00000 467.78879,733.00000 C 469.18829,733.00000 470.05735,733.27598 469.72004,733.61329 C 469.01980,734.31353 445.91665,731.31500 441.75000,729.98310 C 440.23750,729.49962 439.00000,729.47553 439.00000,729.92957 C 439.00000,731.97179 442.54399,733.20583 451.37765,734.23955 C 456.61460,734.85238 460.66797,735.72821 460.38514,736.18584 C 460.10231,736.64347 460.13626,737.85396 460.46058,738.87580 C 460.91493,740.30734 462.76860,741.01091 468.53795,741.94160 C 472.65618,742.60595 475.78820,743.53369 475.49799,744.00325 C 475.20778,744.47282 475.98951,745.05290 477.23517,745.29232 C 478.48083,745.53175 476.48906,745.78892 472.80902,745.86382 C 469.12898,745.93872 465.86586,746.40803 465.55764,746.90674 C 465.24942,747.40545 465.93167,747.56912 467.07375,747.27046 C 468.68925,746.84800 469.07808,747.13979 468.82513,748.58477 C 468.56485,750.07166 469.59699,750.74706 474.00000,751.97105 C 481.14162,753.95635 481.99926,754.58192 482.00374,757.80902 C 482.00579,759.28906 482.90579,761.97338 484.00374,763.77417 C 485.10168,765.57496 486.00000,767.72659 486.00000,768.55555 C 486.00000,771.39415 489.03816,771.33762 492.05970,768.44281 C 495.79741,764.86185 495.78382,761.99508 492.00000,755.84558 C 488.18298,749.64213 488.20961,749.03021 492.10359,753.46520 C 494.03490,755.66484 496.11235,757.00000 497.60359,757.00000 C 501.13382,757.00000 500.53083,754.80128 495.94558,750.95434 C 492.17353,747.78966 492.01682,747.45956 493.69558,746.21455 C 495.42420,744.93256 495.41658,744.81455 493.51423,743.40553 C 490.92075,741.48460 479.58522,738.00000 475.92985,738.00000 C 474.02736,738.00000 472.68529,737.28048 471.91977,735.85008 C 470.78225,733.72461 470.84337,733.70776 477.29502,734.36875 C 482.07113,734.85808 483.93097,734.70709 484.23146,733.80561 C 484.55533,732.83402 485.74555,732.82860 489.86691,733.77992 C 494.33341,734.81091 495.44161,734.75675 497.50192,733.40679 C 498.82749,732.53824 500.44747,732.15852 501.10187,732.56296 C 501.95720,733.09158 502.11105,732.57858 501.64912,730.73812 C 501.13067,728.67245 501.34395,728.22997 502.75328,728.44732 C 503.71397,728.59549 504.78719,728.27281 505.13820,727.73024 C 505.48920,727.18768 506.28016,727.05511 506.89587,727.43564 C 507.68131,727.92107 507.56548,728.57738 506.50767,729.63519 C 504.62448,731.51837 504.56975,733.00000 506.38337,733.00000 C 507.76577,733.00000 508.96058,730.10406 508.98635,726.69098 C 508.99386,725.69602 508.55000,725.16008 508.00000,725.50000 C 506.24968,726.58176 504.77382,724.97745 506.07595,723.40849 C 506.74671,722.60027 506.99231,720.71153 506.64950,718.99752 C 506.12472,716.37361 506.32733,716.00876 508.27500,716.07029 C 510.33012,716.13520 510.35236,716.19839 508.56638,716.89778 C 507.18725,717.43785 506.98384,717.87198 507.85705,718.41165 C 508.55309,718.84183 508.80937,720.02525 508.45102,721.15433 C 507.98252,722.63043 508.36262,723.28207 509.93142,723.69232 C 511.35600,724.06485 511.73931,724.61093 511.11056,725.37214 C 510.59819,725.99246 509.86823,728.16296 509.48843,730.19546 C 508.87914,733.45608 509.02746,733.87363 510.74894,733.74396 C 512.24946,733.63093 512.67691,732.89304 512.60000,730.54849 C 512.51306,727.89821 514.26385,725.13030 516.08948,725.03180 C 516.41370,725.01431 517.19155,726.12500 517.81805,727.50000 C 518.47354,728.93865 518.55501,730.00000 518.00995,730.00000 C 517.48900,730.00000 517.33627,730.71273 517.67055,731.58385 C 518.46652,733.65811 519.96255,731.50286 519.98469,728.25000 C 519.99421,726.85087 520.61133,726.00000 521.61658,726.00000 C 522.80170,726.00000 523.10560,726.66723 522.75525,728.50000 C 522.49240,729.87500 522.60869,731.00000 523.01367,731.00000 C 523.41865,731.00000 524.01818,729.65911 524.34595,728.02024 C 524.77357,725.88213 525.37217,725.20559 526.46521,725.62502 C 527.30303,725.94652 527.70845,726.66273 527.36614,727.21659 C 527.02384,727.77045 527.29788,728.56607 527.97513,728.98463 C 528.92757,729.57327 528.94144,730.24090 528.03638,731.93202 C 527.02622,733.81952 527.10917,734.07612 528.64315,733.80919 C 529.76085,733.61470 530.90623,734.49393 531.73067,736.17927 C 532.55463,737.86362 534.42618,739.30100 536.77067,740.05007 C 538.82180,740.70541 540.88441,741.59415 541.35424,742.02504 C 542.31615,742.90723 531.47605,742.59913 522.75000,741.49628 C 518.80504,740.99769 517.00000,741.11366 517.00000,741.86572 C 517.00000,742.46862 518.01250,743.17776 519.25000,743.44158 C 526.12523,744.90735 533.36451,745.94525 540.16609,746.44035 C 544.38245,746.74726 548.54495,747.27189 549.41609,747.60618 C 550.45636,748.00536 551.00000,747.66242 551.00000,746.60699 C 551.00000,744.57581 553.95031,744.53457 558.65424,746.50000 C 564.48168,748.93486 565.59239,748.52748 567.01903,743.43205 C 567.89310,740.31017 568.56253,739.28132 569.13367,740.18205 C 569.59331,740.90692 569.96937,741.05000 569.96937,740.50000 C 569.96937,739.95000 569.58396,738.89180 569.11290,738.14844 C 568.63139,737.38858 568.66765,735.19963 569.19573,733.14844 C 569.71234,731.14180 570.49295,723.59435 570.93041,716.37634 C 571.36788,709.15833 572.12246,702.63333 572.60726,701.87634 C 573.09207,701.11935 574.07008,697.35000 574.78063,693.50000 C 575.49118,689.65000 576.19940,686.05000 576.35446,685.50000 C 576.50951,684.95000 576.96940,682.92500 577.37642,681.00000 C 578.43422,675.99727 580.10491,673.00000 581.83565,673.00000 C 582.65937,673.00000 583.04859,672.71526 582.70058,672.36725 C 581.76867,671.43534 586.20635,668.23487 589.57892,667.40655 C 591.18551,667.01197 594.06696,665.63407 595.98213,664.34456 C 600.69469,661.17154 601.65991,661.37365 602.47220,665.70349 C 603.32008,670.22312 606.04579,675.71254 609.45220,679.76083 C 612.68401,683.60162 612.66130,685.33466 609.34494,687.94331 C 605.10074,691.28180 599.53489,699.64155 602.96974,697.51870 C 603.50309,697.18907 604.63505,698.58412 605.48520,700.61881 C 608.98118,708.98589 603.96917,717.77173 590.84403,726.28416 C 587.90481,728.19042 584.07094,731.26881 582.32430,733.12504 C 578.88685,736.77818 574.79168,746.29356 575.67088,748.58470 C 575.96958,749.36312 575.71583,750.00000 575.10699,750.00000 C 574.46167,750.00000 574.00000,751.87672 574.00000,754.50000 C 574.00000,756.97500 573.54686,759.00000 572.99302,759.00000 C 572.36143,759.00000 572.18148,756.29727 572.51031,751.75000 C 572.82223,747.43649 572.69358,745.27985 572.19268,746.42539 C 571.72964,747.48436 570.48436,748.69023 569.42539,749.10511 C 567.84222,749.72535 567.79802,749.87192 569.17668,749.92971 C 571.25020,750.01664 571.75301,752.23876 570.94387,757.73956 C 570.46305,761.00829 570.59909,761.74769 571.53798,760.96848 C 572.41202,760.24309 572.89866,760.50448 573.26219,761.89460 C 573.54074,762.95981 573.44316,764.20679 573.04532,764.66567 C 572.64749,765.12455 571.73490,768.20000 571.01733,771.50000 C 569.41878,778.85161 565.89811,784.37710 561.67717,786.15885 C 559.62373,787.02565 554.43258,787.48973 547.00000,787.47095 C 537.01400,787.44573 534.52257,787.08368 528.07567,784.72095 C 518.44612,781.19181 513.86834,781.24699 507.50000,784.96898 C 494.48341,792.57655 490.58862,794.06325 478.50000,796.03867 C 467.57790,797.82347 450.56073,798.47650 445.50000,797.30504 z M 473.21571,764.07816 C 475.74971,762.47114 478.13097,761.45864 478.50740,761.82816 C 478.88384,762.19767 479.03617,761.39046 478.84591,760.03436 C 478.28228,756.01681 472.73769,753.00000 465.91749,753.00000 C 462.73479,753.00000 456.96469,752.33400 453.09506,751.52000 C 449.22542,750.70599 445.41652,750.28667 444.63083,750.58817 C 443.84514,750.88967 442.90523,750.65567 442.54213,750.06817 C 442.17904,749.48068 440.52894,749.00000 438.87524,749.00000 C 437.22154,749.00000 434.98278,748.52597 433.90022,747.94660 C 432.81766,747.36723 429.80974,747.02973 427.21596,747.19660 C 422.87737,747.47572 423.20375,747.61344 431.29460,748.91765 C 436.13162,749.69736 440.31283,750.69715 440.58616,751.13940 C 440.85949,751.58166 440.34711,753.06680 439.44755,754.43971 C 438.54798,755.81262 437.99359,757.48076 438.21556,758.14668 C 438.76043,759.78129 452.24547,762.96313 458.71482,762.98355 C 462.89601,762.99674 464.14179,763.39642 465.00000,765.00000 C 466.43396,767.67938 467.77431,767.52899 473.21571,764.07816 z M 227.91667,763.36455 C 229.28899,762.16389 226.03413,763.27891 224.44113,764.55517 C 222.61082,766.02154 222.64273,766.04236 225.00000,764.91971 C 226.37500,764.26487 227.68750,763.56505 227.91667,763.36455 z M 551.55718,764.88129 C 554.00073,764.26599 556.00000,763.39255 556.00000,762.94030 C 556.00000,761.50086 553.95640,760.79240 552.70620,761.79844 C 551.12615,763.06989 545.03880,764.44175 542.50000,764.09853 C 541.40000,763.94983 537.19739,762.29182 533.16087,760.41408 C 524.66398,756.46143 524.75215,756.48081 525.17668,758.65877 C 525.62948,760.98183 537.53960,765.91542 542.80718,765.96195 C 545.17613,765.98288 549.11363,765.49658 551.55718,764.88129 z M 425.50000,764.00000 C 425.16008,763.45000 424.45852,763.00000 423.94098,763.00000 C 423.42344,763.00000 423.00000,763.45000 423.00000,764.00000 C 423.00000,764.55000 423.70156,765.00000 424.55902,765.00000 C 425.41648,765.00000 425.83992,764.55000 425.50000,764.00000 z M 534.51931,757.06084 C 534.15449,755.91141 533.43020,755.23412 532.90977,755.55577 C 532.38933,755.87741 530.39673,755.17225 528.48176,753.98873 C 526.56679,752.80521 525.00000,752.11611 525.00000,752.45740 C 525.00000,752.79868 524.01515,752.16038 522.81144,751.03896 C 521.60773,749.91753 520.05509,749.00000 519.36113,749.00000 C 518.66717,749.00000 517.71597,748.31488 517.24735,747.47751 C 516.77873,746.64014 514.99782,745.77815 513.28976,745.56198 C 511.58171,745.34582 509.23346,744.66013 508.07144,744.03823 C 506.90941,743.41634 505.51548,743.18142 504.97381,743.51619 C 504.11647,744.04605 533.94446,759.85333 534.84131,759.34440 C 535.02902,759.23788 534.88413,758.21027 534.51931,757.06084 z M 429.32190,751.39648 C 429.05382,750.69787 428.19931,750.37002 427.42298,750.66793 C 425.71520,751.32326 426.34545,752.66667 428.36067,752.66667 C 429.15743,752.66667 429.58998,752.09508 429.32190,751.39648 z M 432.38156,751.44806 C 432.72305,750.55814 432.55541,750.15674 431.98855,750.50708 C 431.44485,750.84310 431.00000,751.54148 431.00000,752.05902 C 431.00000,753.49745 431.71677,753.18048 432.38156,751.44806 z M 394.53942,749.25000 C 394.51150,747.30213 393.62495,745.95285 391.50000,744.62416 C 388.45243,742.71857 386.79372,740.87295 387.49680,740.16987 C 387.71023,739.95644 389.14826,740.66877 390.69242,741.75283 C 395.91263,745.41759 407.35825,751.03767 407.93103,750.21741 C 408.90449,748.82338 416.69422,746.94833 418.64533,747.63840 C 419.87642,748.07381 420.16378,747.96016 419.50000,747.30037 C 418.55465,746.36071 407.10821,741.71464 398.61469,738.82309 C 395.74729,737.84691 394.31671,736.58336 393.15421,734.00018 C 389.92478,726.82411 386.89643,725.24699 383.51698,728.98124 C 382.04965,730.60261 381.95292,731.23835 382.98443,732.48124 C 383.67768,733.31656 383.90101,734.00000 383.48071,734.00000 C 382.32118,734.00000 377.68311,728.81816 376.08102,725.73275 C 374.62833,722.93509 372.00000,721.99164 372.00000,724.26787 C 372.00000,726.77566 386.04862,744.94634 389.85048,747.35592 C 390.59324,747.82668 391.93075,749.06418 392.82272,750.10592 C 393.71469,751.14766 394.47471,752.00000 394.51166,752.00000 C 394.54861,752.00000 394.56110,750.76250 394.53942,749.25000 z M 199.00000,749.60699 C 199.00000,749.39083 198.30163,748.94599 197.44806,748.61844 C 196.55814,748.27695 196.15674,748.44459 196.50708,749.01145 C 197.09434,749.96166 199.00000,750.41690 199.00000,749.60699 z M 461.58333,746.00000 C 462.36250,746.00000 463.00689,746.56250 463.01531,747.25000 C 463.02550,748.08124 463.35127,747.99748 463.98773,747.00000 C 464.73349,745.83123 464.34367,745.36051 462.22242,744.86831 C 456.99913,743.65635 454.99565,743.90363 455.07895,745.75000 C 455.12611,746.79544 455.36096,746.99674 455.66228,746.25000 C 456.42031,744.37141 458.98860,744.74726 459.07895,746.75000 C 459.12611,747.79544 459.36096,747.99674 459.66228,747.25000 C 459.93969,746.56250 460.80417,746.00000 461.58333,746.00000 z M 447.00000,742.00000 C 446.20686,741.50981 445.33292,741.33375 445.05792,741.60875 C 444.78292,741.88375 445.20686,742.50981 446.00000,743.00000 C 446.79314,743.49019 447.66708,743.66625 447.94208,743.39125 C 448.21708,743.11625 447.79314,742.49019 447.00000,742.00000 z M 452.00000,742.39301 C 452.00000,742.17686 451.32500,742.00000 450.50000,742.00000 C 449.67500,742.00000 449.00000,742.43588 449.00000,742.96862 C 449.00000,743.50135 449.67500,743.67821 450.50000,743.36163 C 451.32500,743.04504 452.00000,742.60917 452.00000,742.39301 z M 573.00000,742.94098 C 573.00000,742.35852 572.55000,742.16008 572.00000,742.50000 C 571.45000,742.83992 571.00000,743.31648 571.00000,743.55902 C 571.00000,743.80156 571.45000,744.00000 572.00000,744.00000 C 572.55000,744.00000 573.00000,743.52344 573.00000,742.94098 z M 438.00000,740.95818 C 438.00000,739.74025 425.64938,734.00000 423.02891,734.00000 C 420.33151,734.00000 413.78594,731.07243 411.25394,728.73354 C 410.01861,727.59242 408.69361,726.97305 408.30950,727.35717 C 407.00230,728.66436 411.48277,731.75966 418.50000,734.39721 C 422.35000,735.84430 427.52500,738.13401 430.00000,739.48547 C 434.76621,742.08802 438.00000,742.68332 438.00000,740.95818 z M 573.59922,730.26589 C 573.31709,729.98376 572.27935,730.08182 571.29313,730.48380 C 569.60410,731.17224 569.61186,731.25634 571.42689,731.93247 C 573.31154,732.63454 573.31216,732.66624 571.45491,733.37893 C 569.85624,733.99240 569.78876,734.25192 571.02803,735.02052 C 571.83761,735.52263 572.56059,736.51092 572.63465,737.21672 C 573.05657,741.23779 573.41208,740.89163 573.74108,736.13943 C 573.94519,733.19111 573.88135,730.54802 573.59922,730.26589 z M 503.60417,730.27083 C 503.27188,729.93854 503.03553,730.52917 503.07895,731.58333 C 503.12693,732.74828 503.36389,732.98523 503.68311,732.18750 C 503.97198,731.46563 503.93646,730.60312 503.60417,730.27083 z M 516.00000,730.88197 C 516.00000,730.33197 515.55000,730.16008 515.00000,730.50000 C 514.45000,730.83992 514.00000,731.56803 514.00000,732.11803 C 514.00000,732.66803 514.45000,732.83992 515.00000,732.50000 C 515.55000,732.16008 516.00000,731.43197 516.00000,730.88197 z M 193.00000,725.00000 C 193.00000,723.96492 192.55000,722.83992 192.00000,722.50000 C 191.41500,722.13845 191.00000,723.17595 191.00000,725.00000 C 191.00000,726.82405 191.41500,727.86155 192.00000,727.50000 C 192.55000,727.16008 193.00000,726.03508 193.00000,725.00000 z M 216.10806,726.50000 C 215.89250,725.95000 214.53232,725.00225 213.08544,724.39388 C 210.98247,723.50964 210.16916,723.59349 209.03104,724.81185 C 207.78031,726.15077 207.86509,726.26854 209.72884,725.78116 C 211.30920,725.36789 211.70682,725.60045 211.28761,726.69288 C 210.85801,727.81241 211.40807,728.08139 213.61243,727.82970 C 215.20059,727.64836 216.32363,727.05000 216.10806,726.50000 z M 224.49833,722.40730 C 227.62882,719.02945 226.37518,716.86153 220.10991,714.81841 C 217.57446,713.99160 214.64515,712.94522 213.60032,712.49313 C 211.93010,711.77043 211.78142,711.99298 212.36938,714.33558 C 212.82859,716.16521 212.64050,717.01336 211.76905,717.04264 C 210.12418,717.09790 219.08610,724.99373 220.79775,724.99730 C 221.51151,724.99878 223.17677,723.83329 224.49833,722.40730 z M 420.50000,721.00000 C 420.16008,720.45000 419.43197,720.00000 418.88197,720.00000 C 418.33197,720.00000 418.16008,720.45000 418.50000,721.00000 C 418.83992,721.55000 419.56803,722.00000 420.11803,722.00000 C 420.66803,722.00000 420.83992,721.55000 420.50000,721.00000 z M 449.00000,718.00000 C 450.12236,715.80000 451.48150,714.00000 452.02032,714.00000 C 453.35802,714.00000 453.25194,715.34806 451.80000,716.80000 C 450.94600,717.65400 450.92657,718.00000 451.73261,718.00000 C 453.12467,718.00000 454.37020,714.40802 453.47846,712.96514 C 453.12061,712.38613 453.37166,711.25710 454.03635,710.45620 C 454.87751,709.44267 454.90625,709.00000 454.13092,709.00000 C 453.51823,709.00000 452.45489,709.90000 451.76793,711.00000 C 451.08097,712.10000 449.71858,713.00000 448.74040,713.00000 C 447.33960,713.00000 447.07340,713.58402 447.48693,715.75000 C 447.77570,717.26250 447.74677,717.93750 447.42265,717.25000 C 446.40004,715.08093 445.40050,715.89221 445.57459,718.75000 C 445.85164,723.29813 446.35311,723.18833 449.00000,718.00000 z M 193.00000,717.55902 C 193.00000,716.21648 192.54835,714.83890 191.99633,714.49773 C 191.44431,714.15657 191.26809,712.78001 191.60474,711.43871 C 192.31167,708.62206 191.37071,704.00000 190.09035,704.00000 C 188.55926,704.00000 188.21635,711.37755 189.65008,713.47251 C 190.39253,714.55738 191.00000,716.46988 191.00000,717.72251 C 191.00000,718.97513 191.45000,720.00000 192.00000,720.00000 C 192.55000,720.00000 193.00000,718.90156 193.00000,717.55902 z M 448.36163,710.50000 C 448.67821,709.67500 449.62635,709.00000 450.46862,709.00000 C 452.15633,709.00000 452.53494,707.44864 451.06842,706.54229 C 450.55605,706.22563 449.50319,706.87121 448.72873,707.97691 C 447.95426,709.08261 447.02347,709.69014 446.66031,709.32697 C 446.29714,708.96380 446.00000,709.41667 446.00000,710.33333 C 446.00000,712.40796 447.58651,712.51993 448.36163,710.50000 z M 464.00000,708.00000 C 464.00000,707.45000 463.55000,707.00000 463.00000,707.00000 C 462.45000,707.00000 462.00000,707.45000 462.00000,708.00000 C 462.00000,708.55000 462.45000,709.00000 463.00000,709.00000 C 463.55000,709.00000 464.00000,708.55000 464.00000,708.00000 z M 193.00000,701.00000 C 193.00000,700.45000 192.55000,700.00000 192.00000,700.00000 C 191.45000,700.00000 191.00000,700.45000 191.00000,701.00000 C 191.00000,701.55000 191.45000,702.00000 192.00000,702.00000 C 192.55000,702.00000 193.00000,701.55000 193.00000,701.00000 z M 460.00000,699.50000 C 460.00000,698.67500 460.90000,697.10000 462.00000,696.00000 C 464.00000,694.00000 464.00000,694.00000 461.94098,694.00000 C 460.80852,694.00000 460.16008,694.45000 460.50000,695.00000 C 460.83992,695.55000 460.51462,696.00000 459.77712,696.00000 C 459.03962,696.00000 458.34311,697.12500 458.22931,698.50000 C 458.11551,699.87500 458.46736,701.00000 459.01120,701.00000 C 459.55504,701.00000 460.00000,700.32500 460.00000,699.50000 z M 471.00000,696.28287 C 471.00000,695.80988 471.90000,693.65759 473.00000,691.50000 C 474.10000,689.34241 475.00000,686.99727 475.00000,686.28856 C 475.00000,685.57985 475.67500,685.00000 476.50000,685.00000 C 477.41954,685.00000 478.00000,684.06481 478.00000,682.58333 C 478.00000,681.25417 478.56250,679.93969 479.25000,679.66228 C 480.04592,679.34112 479.90877,679.12922 478.87244,679.07895 C 476.80738,678.97878 475.56471,680.55536 474.08472,685.15318 C 472.85744,688.96593 468.85322,694.00000 467.04775,694.00000 C 466.47149,694.00000 466.00000,694.45000 466.00000,695.00000 C 466.00000,695.55000 465.29844,696.00000 464.44098,696.00000 C 463.58352,696.00000 463.14793,696.43035 463.47301,696.95633 C 463.79808,697.48231 464.66657,697.68144 465.40298,697.39886 C 466.13940,697.11627 467.02369,697.61936 467.36808,698.51683 C 467.92521,699.96868 468.15996,699.98289 469.49713,698.64573 C 470.32371,697.81915 471.00000,696.75586 471.00000,696.28287 z M 459.00000,692.80000 C 459.00000,691.18458 458.70429,690.89571 457.88713,691.71287 C 457.27506,692.32494 457.07661,693.31494 457.44615,693.91287 C 458.48054,695.58655 459.00000,695.21451 459.00000,692.80000 z M 382.27721,692.04795 C 382.55797,690.97432 382.43253,689.96182 381.99846,689.79795 C 381.56439,689.63408 380.99301,687.85989 380.72872,685.85532 C 380.46444,683.85074 379.94081,681.71324 379.56509,681.10532 C 379.18937,680.49739 379.36890,680.00000 379.96404,680.00000 C 380.59812,680.00000 380.38234,678.98696 379.44282,677.55307 C 378.56101,676.20726 377.71614,673.16976 377.56533,670.80307 C 376.95795,661.27123 375.66943,653.94076 374.30716,652.26714 C 372.99760,650.65826 372.91765,650.76867 373.41442,653.50000 C 373.71452,655.15000 374.43739,661.22500 375.02079,667.00000 C 375.60419,672.77500 376.69120,679.97500 377.43635,683.00000 C 378.18151,686.02500 379.07174,689.73750 379.41464,691.25000 C 380.14110,694.45431 381.54555,694.84580 382.27721,692.04795 z M 466.60417,685.27083 C 466.27188,684.93854 466.03553,685.52917 466.07895,686.58333 C 466.12693,687.74828 466.36389,687.98523 466.68311,687.18750 C 466.97198,686.46563 466.93646,685.60312 466.60417,685.27083 z M 469.44026,683.61800 C 469.07887,682.17810 468.38197,681.00000 467.89159,681.00000 C 466.73495,681.00000 466.76562,681.39149 468.16244,684.45717 C 469.59964,687.61148 470.32328,687.13624 469.44026,683.61800 z M 473.00000,678.12244 C 473.00000,677.63979 472.32500,676.68469 471.50000,676.00000 C 470.24680,674.95993 470.00000,675.10432 470.00000,676.87756 C 470.00000,678.09751 470.63782,679.00000 471.50000,679.00000 C 472.32500,679.00000 473.00000,678.60510 473.00000,678.12244 z M 469.00000,675.88197 C 469.00000,675.33197 468.55000,675.16008 468.00000,675.50000 C 467.45000,675.83992 467.00000,676.56803 467.00000,677.11803 C 467.00000,677.66803 467.45000,677.83992 468.00000,677.50000 C 468.55000,677.16008 469.00000,676.43197 469.00000,675.88197 z M 491.21667,669.81667 C 490.56583,669.16583 489.68833,669.00244 489.26667,669.45357 C 488.84500,669.90470 489.06530,670.47564 489.75623,670.72231 C 490.44716,670.96899 490.71864,671.69489 490.35953,672.33541 C 489.93986,673.08394 490.18771,673.05343 491.05330,672.25000 C 492.09019,671.28756 492.12778,670.72778 491.21667,669.81667 z M 472.60417,669.27083 C 472.27188,668.93854 472.03553,669.52917 472.07895,670.58333 C 472.12693,671.74828 472.36389,671.98523 472.68311,671.18750 C 472.97198,670.46563 472.93646,669.60312 472.60417,669.27083 z M 493.24475,656.50000 C 492.89440,654.66723 493.19830,654.00000 494.38342,654.00000 C 495.27254,654.00000 496.03163,654.56250 496.07029,655.25000 C 496.14546,656.58687 497.81192,653.19744 497.92971,651.46811 C 497.96837,650.90057 496.96466,650.35053 495.69925,650.24580 C 493.10055,650.03072 489.43035,655.07314 490.38149,657.55178 C 491.37117,660.13084 493.77036,659.24954 493.24475,656.50000 z M 418.00000,653.44098 C 418.00000,652.58352 417.54266,652.16462 416.98369,652.51008 C 416.42472,652.85554 416.22627,653.55710 416.54271,654.06910 C 417.39994,655.45614 418.00000,655.19751 418.00000,653.44098 z M 485.38499,648.53518 C 487.87814,644.73015 487.23365,643.16257 484.46840,646.30576 C 483.11078,647.84893 482.00000,649.53643 482.00000,650.05576 C 482.00000,651.80704 483.75889,651.01693 485.38499,648.53518 z M 421.66853,645.33520 C 420.81587,644.48254 418.90658,646.03982 419.54271,647.06910 C 419.85914,647.58109 419.61492,648.00000 419.00000,648.00000 C 418.38508,648.00000 418.18051,648.48305 418.54539,649.07344 C 418.95850,649.74186 419.77388,649.34015 420.70641,648.00878 C 421.53008,646.83281 421.96304,645.62970 421.66853,645.33520 z M 491.52381,644.61905 C 493.23244,642.91041 492.18975,641.59763 490.34201,643.13112 C 489.31311,643.98503 489.00000,643.86634 489.00000,642.62244 C 489.00000,641.73010 488.55000,641.00000 488.00000,641.00000 C 486.69001,641.00000 486.73858,641.60854 488.24055,644.01357 C 489.71624,646.37653 489.75853,646.38433 491.52381,644.61905 z M 394.00000,640.44098 C 394.00000,639.58352 393.54266,639.16462 392.98369,639.51008 C 392.42472,639.85554 392.22627,640.55710 392.54271,641.06910 C 393.39994,642.45614 394.00000,642.19751 394.00000,640.44098 z M 424.38156,635.44806 C 424.72305,634.55814 424.55541,634.15674 423.98855,634.50708 C 423.44485,634.84310 423.00000,635.54148 423.00000,636.05902 C 423.00000,637.49745 423.71677,637.18048 424.38156,635.44806 z M 30.000000,793.88635 C 22.705571,791.00687 12.971820,780.69756 9.8076345,772.50000 C 8.5562245,769.25793 8.0458023,761.31270 9.0206632,760.25000 C 9.1467985,760.11250 9.3062500,759.58750 9.3750000,759.08333 C 9.4437500,758.57917 9.7733107,757.89336 10.107357,757.55931 C 10.881445,756.78522 23.000000,765.65714 23.000000,766.99793 C 23.000000,767.54907 23.337500,767.95133 23.750000,767.89185 C 25.233734,767.67789 29.000000,769.25140 29.000000,770.08525 C 29.000000,770.55384 29.615860,770.70090 30.368578,770.41206 C 31.161929,770.10762 31.947423,770.69094 32.237420,771.79990 C 32.512565,772.85205 34.139392,774.20154 35.852591,774.79877 L 38.967498,775.88463 L 38.436795,756.19232 C 37.861823,734.85733 37.253213,730.06964 34.978524,728.98750 C 34.165336,728.60064 32.080569,727.54520 30.345708,726.64206 C 28.610847,725.73893 26.248347,725.00000 25.095708,725.00000 C 23.943069,725.00000 23.000000,724.51425 23.000000,723.92054 C 23.000000,721.94020 34.193119,725.77009 39.912198,729.70729 C 40.138907,729.86337 40.262128,731.64738 40.186024,733.67178 C 40.109919,735.69617 40.599430,738.02136 41.273826,738.83887 C 42.141547,739.89072 42.175778,740.43450 41.390923,740.69898 C 40.652305,740.94788 40.532386,742.44282 41.031912,745.17451 C 41.444448,747.43050 41.569069,750.62724 41.308848,752.27837 C 41.015970,754.13671 41.343236,755.60799 42.167858,756.14022 C 43.256822,756.84305 43.262569,757.15340 42.199341,757.84033 C 40.479991,758.95116 65.234982,764.98166 88.000000,768.99770 C 97.625000,770.69568 106.77030,772.48911 108.32288,772.98311 C 109.87547,773.47711 111.78797,773.63486 112.57288,773.33366 C 113.35780,773.03246 114.00000,773.00737 114.00000,773.27791 C 114.00000,774.12607 103.68291,777.18803 99.865831,777.47272 C 93.592941,777.94057 72.098589,774.15659 57.381897,769.99363 C 43.834092,766.16132 37.716223,764.96155 43.000000,767.17321 C 45.877599,768.37770 49.114593,769.33864 68.839835,774.84403 C 76.726744,777.04530 83.439244,779.10591 83.756502,779.42317 C 84.073759,779.74043 82.934891,780.00000 81.225684,780.00000 C 79.516476,780.00000 77.861233,780.41551 77.547365,780.92336 C 76.418460,782.74997 64.553284,781.13684 56.500000,778.06188 C 52.100000,776.38183 47.487500,775.00562 46.250000,775.00363 C 45.012500,775.00163 44.000000,774.55000 44.000000,774.00000 C 44.000000,773.45000 43.550000,773.00000 43.000000,773.00000 C 42.450000,773.00000 42.000000,773.36665 42.000000,773.81479 C 42.000000,775.08856 49.009386,778.11223 50.223187,777.36206 C 50.917950,776.93268 51.016975,777.16352 50.498137,778.00302 C 49.889102,778.98845 50.248647,779.16824 51.942542,778.72528 C 53.182949,778.40090 53.911215,778.42212 53.560912,778.77242 C 53.210608,779.12272 54.403597,780.19837 56.211998,781.16275 C 59.005160,782.65228 59.169981,782.92248 57.307160,782.95808 C 54.562627,783.01055 48.460104,786.43484 44.435160,790.18091 C 41.695656,792.73061 36.231912,795.10823 33.506602,794.93661 C 32.952971,794.90175 31.375000,794.42913 30.000000,793.88635 z M 149.26375,785.28242 C 150.78381,785.05256 153.03381,785.05871 154.26375,785.29607 C 155.49369,785.53343 154.25000,785.72149 151.50000,785.71399 C 148.75000,785.70648 147.74369,785.51227 149.26375,785.28242 z M 141.27083,784.39583 C 141.60313,784.06354 142.46562,784.02802 143.18750,784.31689 C 143.98523,784.63611 143.74828,784.87307 142.58333,784.92105 C 141.52917,784.96447 140.93854,784.72812 141.27083,784.39583 z M 140.75000,773.27660 C 142.53750,773.05478 145.46250,773.05478 147.25000,773.27660 C 149.03750,773.49843 147.57500,773.67993 144.00000,773.67993 C 140.42500,773.67993 138.96250,773.49843 140.75000,773.27660 z M 215.85972,770.89268 L 213.72686,769.28537 L 216.40942,768.61209 C 219.44793,767.84947 220.56497,768.31863 221.97245,770.94853 C 222.80978,772.51308 222.58746,772.76447 220.47412,772.64283 C 219.10928,772.56427 217.03280,771.77671 215.85972,770.89268 z M 101.96607,768.55230 C 92.180285,767.15392 70.081016,763.29336 55.000000,760.34772 C 44.968659,758.38839 41.834141,757.07495 47.083219,757.03041 C 49.053989,757.01368 53.110581,756.50915 56.097867,755.90921 C 60.650135,754.99499 64.521444,755.23709 80.014649,757.40489 C 104.88776,760.88512 127.14171,762.99357 139.39010,763.03041 C 150.66038,763.06431 150.66246,764.36554 139.39382,765.36006 C 135.48543,765.70501 130.31043,766.68890 127.89382,767.54649 C 121.59721,769.78100 112.92001,770.11762 101.96607,768.55230 z M 203.27083,769.39583 C 203.60313,769.06354 204.46562,769.02802 205.18750,769.31689 C 205.98523,769.63611 205.74828,769.87307 204.58333,769.92105 C 203.52917,769.96447 202.93854,769.72812 203.27083,769.39583 z M 188.73097,759.34406 C 189.40800,759.07014 190.75800,759.05347 191.73097,759.30701 C 192.70394,759.56055 192.15000,759.78467 190.50000,759.80505 C 188.85000,759.82543 188.05394,759.61799 188.73097,759.34406 z M 14.957316,747.07975 C 15.710170,745.67304 15.750515,744.40235 15.081988,743.15320 C 14.416106,741.90898 14.441454,740.95855 15.159672,740.24033 C 16.454842,738.94516 15.423120,737.00000 13.440983,737.00000 C 12.648442,737.00000 12.000000,736.55000 12.000000,736.00000 C 12.000000,733.61623 15.990810,735.24906 17.962680,738.43961 C 20.674609,742.82761 19.698889,748.30856 16.113026,748.82975 C 14.098003,749.12263 13.968749,748.92691 14.957316,747.07975 z M 487.99849,745.37646 L 485.50000,743.91657 L 488.00000,744.58251 C 490.78502,745.32438 491.53604,745.79729 490.91516,746.41817 C 490.68516,746.64817 489.37266,746.17940 487.99849,745.37646 z M 544.27083,743.39583 C 544.60312,743.06354 545.46563,743.02802 546.18750,743.31689 C 546.98523,743.63611 546.74828,743.87307 545.58333,743.92105 C 544.52917,743.96447 543.93854,743.72812 544.27083,743.39583 z M 189.00000,741.44098 C 189.00000,740.58352 189.45000,740.16008 190.00000,740.50000 C 190.55000,740.83992 191.00000,741.54148 191.00000,742.05902 C 191.00000,742.57656 190.55000,743.00000 190.00000,743.00000 C 189.45000,743.00000 189.00000,742.29844 189.00000,741.44098 z M 53.270833,734.39583 C 53.603125,734.06354 54.465625,734.02802 55.187500,734.31689 C 55.985233,734.63611 55.748276,734.87307 54.583333,734.92105 C 53.529167,734.96447 52.938542,734.72812 53.270833,734.39583 z M 530.78849,724.98776 C 531.03165,723.33103 531.62871,721.72947 532.11530,721.42874 C 533.12338,720.80571 533.30368,724.04504 532.39301,726.41821 C 531.36480,729.09770 530.32176,728.16782 530.78849,724.98776 z M 521.00000,724.00000 C 521.00000,723.45000 521.45000,723.00000 522.00000,723.00000 C 522.55000,723.00000 523.00000,723.45000 523.00000,724.00000 C 523.00000,724.55000 522.55000,725.00000 522.00000,725.00000 C 521.45000,725.00000 521.00000,724.55000 521.00000,724.00000 z M 527.00000,724.00000 C 527.00000,723.45000 527.19844,723.00000 527.44098,723.00000 C 527.68352,723.00000 528.16008,723.45000 528.50000,724.00000 C 528.83992,724.55000 528.64148,725.00000 528.05902,725.00000 C 527.47656,725.00000 527.00000,724.55000 527.00000,724.00000 z M 522.00000,719.00000 C 522.00000,716.05425 523.28176,715.02885 524.50000,717.00000 C 524.83992,717.55000 524.64148,718.00000 524.05902,718.00000 C 523.47656,718.00000 523.00000,718.47656 523.00000,719.05902 C 523.00000,719.64148 523.44485,719.84310 523.98855,719.50708 C 524.55541,719.15674 524.72305,719.55814 524.38156,720.44806 C 523.38919,723.03412 522.00000,722.18945 522.00000,719.00000 z M 528.07895,721.33179 C 528.03553,720.68927 527.74102,719.33927 527.42449,718.33179 C 526.87744,716.59057 526.90566,716.58839 527.99527,718.28768 C 528.62572,719.27090 528.92023,720.62090 528.64972,721.28768 C 528.29474,722.16267 528.13593,722.17495 528.07895,721.33179 z M 458.00000,718.00000 C 458.00000,717.45000 458.42344,717.00000 458.94098,717.00000 C 459.45852,717.00000 460.16008,717.45000 460.50000,718.00000 C 460.83992,718.55000 460.41648,719.00000 459.55902,719.00000 C 458.70156,719.00000 458.00000,718.55000 458.00000,718.00000 z M 469.03544,715.87244 C 469.01595,714.42729 469.67500,712.68469 470.50000,712.00000 C 472.49571,710.34370 472.49571,712.50886 470.50000,716.00000 L 469.07087,718.50000 L 469.03544,715.87244 z M 529.11600,714.75000 C 529.05220,712.68750 529.33750,710.99745 529.75000,710.99434 C 530.16250,710.99123 530.56529,709.22817 530.64509,707.07642 C 530.77119,703.67650 530.46108,703.08156 528.27710,702.53341 C 526.89489,702.18650 525.55684,702.10983 525.30364,702.36303 C 524.42148,703.24519 524.28135,708.00000 525.13751,708.00000 C 525.61188,708.00000 526.00000,707.10000 526.00000,706.00000 C 526.00000,704.90000 526.33750,704.00000 526.75000,704.00000 C 527.16250,704.00000 527.50000,706.02500 527.50000,708.50000 C 527.50000,711.43333 527.06481,713.00000 526.25000,713.00000 C 525.56250,713.00000 524.99311,712.21250 524.98469,711.25000 C 524.97604,710.26177 524.64957,709.93530 524.23469,710.50000 C 523.83061,711.05000 522.93750,711.61250 522.25000,711.75000 C 520.64618,712.07076 520.60764,707.79236 522.20000,706.20000 C 523.10525,705.29475 523.11133,705.00000 522.22475,705.00000 C 521.38090,705.00000 521.32051,704.28719 522.01060,702.47211 C 522.84234,700.28448 522.63485,699.79075 520.46906,698.80395 C 518.35380,697.84017 517.74676,697.96058 516.54735,699.58183 C 515.32160,701.23869 515.32237,701.79941 516.55302,703.69785 C 518.06818,706.03517 516.98102,707.67190 514.75000,706.41231 C 513.75000,705.84774 513.75000,705.97593 514.75000,707.05330 C 515.43750,707.79398 515.99723,709.77250 515.99384,711.45000 L 515.98768,714.50000 L 514.42031,711.50000 C 513.32865,709.41054 513.04561,707.21008 513.48774,704.25000 C 513.89536,701.52098 513.74274,700.00000 513.06127,700.00000 C 512.47757,700.00000 512.00000,699.29844 512.00000,698.44098 C 512.00000,697.58352 511.64101,697.10383 511.20225,697.37500 C 509.83245,698.22159 507.66401,696.26876 507.29597,693.85713 C 507.10230,692.58809 507.50977,690.18859 508.20145,688.52490 C 508.89313,686.86120 509.32748,684.71250 509.16667,683.75000 C 508.79340,681.51592 510.79290,681.50261 513.24624,683.72285 C 515.08465,685.38659 515.12746,685.34370 514.49410,682.47285 C 513.99651,680.21741 514.09538,679.86198 514.90380,681.00000 C 515.48987,681.82500 515.97627,683.21250 515.98469,684.08333 C 515.99311,684.95417 516.67500,685.66667 517.50000,685.66667 C 518.32500,685.66667 519.00000,685.04011 519.00000,684.27432 C 519.00000,683.50852 518.55000,683.16008 518.00000,683.50000 C 517.45000,683.83992 517.00000,683.44303 517.00000,682.61803 C 517.00000,681.79303 517.45734,680.83538 518.01631,680.48992 C 518.57528,680.14446 518.79294,679.47399 518.50000,679.00000 C 518.20706,678.52601 518.42472,677.85554 518.98369,677.51008 C 519.54266,677.16462 520.00000,677.53538 520.00000,678.33399 C 520.00000,679.13261 520.67500,680.04504 521.50000,680.36163 C 522.54604,680.76303 523.02127,680.26579 523.07029,678.71862 C 523.13257,676.75263 523.22333,676.71031 523.86738,678.34695 C 524.52493,680.01791 524.71960,680.04278 525.91040,678.60796 C 526.63432,677.73569 527.62880,677.27059 528.12037,677.57439 C 528.61194,677.87820 529.28924,677.40983 529.62549,676.53358 C 530.01777,675.51130 530.91109,675.15439 532.11842,675.53759 C 533.30768,675.91504 534.00563,675.65004 534.01531,674.81739 C 534.02656,673.84947 534.28778,673.89792 535.00000,675.00000 C 535.93901,676.45302 536.10985,676.30806 536.37500,673.83333 C 536.44375,673.19167 536.98135,672.50622 537.56968,672.31011 C 538.22395,672.09202 538.53364,673.29593 538.36713,675.41022 C 538.12694,678.46009 538.34547,678.81863 540.22404,678.45685 C 541.85651,678.14247 542.07871,678.32129 541.17659,679.22341 C 540.52947,679.87053 540.00689,681.09750 540.01531,681.95000 C 540.02882,683.31731 540.15026,683.32321 541.04569,682.00000 C 541.79246,680.89647 541.89600,681.29294 541.43743,683.50000 C 540.24176,689.25465 539.91020,689.90277 538.44881,689.34198 C 537.65196,689.03620 536.96696,689.17167 536.92657,689.64301 C 536.88619,690.11436 536.70722,692.18750 536.52887,694.25000 C 536.35052,696.31250 536.60856,698.00000 537.10230,698.00000 C 537.59603,698.00000 538.00000,698.40787 538.00000,698.90638 C 538.00000,699.40489 537.10000,699.57741 536.00000,699.28975 C 534.88181,698.99734 534.00000,699.25907 534.00000,699.88337 C 534.00000,700.49752 534.44718,701.00000 534.99373,701.00000 C 535.54027,701.00000 535.82304,702.01250 535.62209,703.25000 C 535.40411,704.59240 534.59988,705.44398 533.62836,705.36111 C 531.64189,705.19168 531.46389,706.85705 533.38949,707.59597 C 534.86292,708.16138 534.42178,712.00000 532.88337,712.00000 C 532.39752,712.00000 532.00000,712.67500 532.00000,713.50000 C 532.00000,714.32500 531.58300,715.00000 531.07332,715.00000 C 530.56365,715.00000 529.94085,715.78750 529.68933,716.75000 C 529.43780,717.71250 529.17980,716.81250 529.11600,714.75000 z M 526.98469,697.69098 C 526.97224,695.90975 526.78809,695.78052 526.00000,697.00000 C 524.72681,698.97012 524.72681,701.28687 526.00000,700.50000 C 526.55000,700.16008 526.99311,698.89602 526.98469,697.69098 z M 515.00000,696.50000 C 515.00000,695.67500 514.82314,695.00000 514.60699,695.00000 C 514.39083,695.00000 513.95496,695.67500 513.63837,696.50000 C 513.32179,697.32500 513.49865,698.00000 514.03138,698.00000 C 514.56412,698.00000 515.00000,697.32500 515.00000,696.50000 z M 523.36383,696.50574 C 523.04846,695.68390 522.38758,695.26046 521.89522,695.56476 C 520.48329,696.43738 520.85123,698.00000 522.46862,698.00000 C 523.36070,698.00000 523.71213,697.41340 523.36383,696.50574 z M 519.54112,695.93347 C 520.71375,694.03612 519.00350,693.56793 517.26190,695.30952 C 515.70296,696.86847 515.70022,697.00000 517.22670,697.00000 C 518.13710,697.00000 519.17858,696.52006 519.54112,695.93347 z M 528.38817,690.18094 C 528.66658,689.73046 527.56814,689.55654 525.94719,689.79444 C 524.32623,690.03235 523.00000,690.40092 523.00000,690.61350 C 523.00000,691.37548 527.89266,690.98270 528.38817,690.18094 z M 525.07431,687.08333 C 525.11518,686.21250 525.34154,684.46010 525.57733,683.18912 C 525.83344,681.80858 525.60222,681.12780 525.00302,681.49814 C 524.45136,681.83908 524.00000,682.99148 524.00000,684.05902 C 524.00000,685.12656 523.62500,686.00000 523.16667,686.00000 C 522.70833,686.00000 522.33333,686.60000 522.33333,687.33333 C 522.33333,689.23437 524.98471,688.99254 525.07431,687.08333 z M 533.00000,687.61663 C 533.00000,687.40578 532.10000,686.99791 531.00000,686.71025 C 529.90000,686.42259 529.00000,686.59511 529.00000,687.09362 C 529.00000,687.59213 529.90000,688.00000 531.00000,688.00000 C 532.10000,688.00000 533.00000,687.82748 533.00000,687.61663 z M 539.00000,684.94098 C 539.00000,684.35852 538.55000,684.16008 538.00000,684.50000 C 537.45000,684.83992 537.00000,685.31648 537.00000,685.55902 C 537.00000,685.80156 537.45000,686.00000 538.00000,686.00000 C 538.55000,686.00000 539.00000,685.52344 539.00000,684.94098 z M 531.42974,684.11369 C 531.73101,683.62622 531.05685,682.98662 529.93160,682.69236 C 528.25365,682.25357 528.09785,682.41297 529.06529,683.57867 C 530.44623,685.24261 530.69696,685.29934 531.42974,684.11369 z M 522.50000,683.00000 C 522.16008,682.45000 521.68352,682.00000 521.44098,682.00000 C 521.19844,682.00000 521.00000,682.45000 521.00000,683.00000 C 521.00000,683.55000 521.47656,684.00000 522.05902,684.00000 C 522.64148,684.00000 522.83992,683.55000 522.50000,683.00000 z M 532.50000,681.00000 C 532.16008,680.45000 531.68352,680.00000 531.44098,680.00000 C 531.19844,680.00000 531.00000,680.45000 531.00000,681.00000 C 531.00000,681.55000 531.47656,682.00000 532.05902,682.00000 C 532.64148,682.00000 532.83992,681.55000 532.50000,681.00000 z M 520.00000,714.00000 C 520.00000,713.45000 520.64844,713.00000 521.44098,713.00000 C 522.23352,713.00000 523.16008,713.45000 523.50000,714.00000 C 523.83992,714.55000 523.19148,715.00000 522.05902,715.00000 C 520.92656,715.00000 520.00000,714.55000 520.00000,714.00000 z M 507.22176,711.09485 C 507.17532,709.46149 506.65853,707.23047 506.07334,706.13703 C 505.38346,704.84799 505.33703,703.33163 505.94129,701.82448 C 506.78791,699.71280 506.88626,699.68310 507.01556,701.50000 C 507.09384,702.60000 507.38487,702.93750 507.66228,702.25000 C 507.93969,701.56250 509.20678,701.00000 510.47802,701.00000 C 512.94562,701.00000 512.93436,701.50426 510.26740,710.43484 C 509.08799,714.38419 507.32614,714.76600 507.22176,711.09485 z M 190.67055,695.41615 C 191.00483,694.54504 191.55844,694.20754 191.90080,694.66615 C 192.24316,695.12477 192.93053,695.83750 193.42830,696.25000 C 193.92607,696.66250 193.37246,697.00000 192.19805,697.00000 C 190.66063,697.00000 190.23294,696.55654 190.67055,695.41615 z M 354.55279,696.08541 C 354.23081,695.56444 354.39362,694.87476 354.91459,694.55279 C 355.43556,694.23081 356.12524,694.39362 356.44721,694.91459 C 356.76919,695.43556 356.60638,696.12524 356.08541,696.44721 C 355.56444,696.76919 354.87476,696.60638 354.55279,696.08541 z M 344.67701,677.19559 C 342.60369,674.90460 342.55358,674.00000 344.50000,674.00000 C 345.32500,674.00000 346.00000,673.46000 346.00000,672.80000 C 346.00000,670.73250 347.80196,673.32028 348.16354,675.90705 C 348.59029,678.96002 346.85439,679.60157 344.67701,677.19559 z M 521.00000,672.05902 C 521.00000,671.47656 521.45000,671.00000 522.00000,671.00000 C 522.55000,671.00000 523.00000,671.19844 523.00000,671.44098 C 523.00000,671.68352 522.55000,672.16008 522.00000,672.50000 C 521.45000,672.83992 521.00000,672.64148 521.00000,672.05902 z M 327.15789,668.00000 C 327.15789,666.62500 327.38487,666.06250 327.66228,666.75000 C 327.93969,667.43750 327.93969,668.56250 327.66228,669.25000 C 327.38487,669.93750 327.15789,669.37500 327.15789,668.00000 z M 342.25000,667.96884 C 339.87499,667.01420 339.63982,665.81227 340.64185,659.75000 C 341.08028,657.09747 341.76893,656.00000 342.99492,656.00000 C 344.29880,656.00000 344.88568,657.14930 345.36408,660.63957 C 346.56142,669.37518 346.44289,669.65417 342.25000,667.96884 z M 335.70572,664.98266 C 335.29228,663.40169 335.56941,662.96301 336.82839,663.20547 C 338.70574,663.56701 339.10760,666.13080 337.37732,666.70756 C 336.75985,666.91338 336.00763,666.13718 335.70572,664.98266 z M 394.00000,665.00000 C 394.00000,664.45000 394.70156,664.00000 395.55902,664.00000 C 396.41648,664.00000 396.83992,664.45000 396.50000,665.00000 C 396.16008,665.55000 395.45852,666.00000 394.94098,666.00000 C 394.42344,666.00000 394.00000,665.55000 394.00000,665.00000 z M 538.00000,663.19578 C 538.00000,662.75346 539.34009,660.27846 540.97798,657.69578 C 543.57372,653.60272 544.37593,653.01279 547.22798,653.09968 C 550.31912,653.19385 550.36180,653.24362 548.00000,654.00000 L 545.50000,654.80064 L 547.87244,654.90032 C 549.88128,654.98472 550.05102,655.23360 548.97994,656.52417 C 548.28422,657.36246 548.00412,658.33746 548.35750,658.69083 C 548.71087,659.04421 549.01001,658.92083 549.02224,658.41667 C 549.03447,657.91250 549.86309,656.43555 550.86362,655.13455 C 552.39364,653.14506 552.64304,653.06559 552.43277,654.63455 C 551.95226,658.21993 550.75769,661.00122 549.63337,661.15231 C 547.43131,661.44825 546.48141,661.70138 544.75000,662.45364 C 543.78750,662.87183 542.32500,662.95496 541.50000,662.63837 C 540.67500,662.32179 540.00000,662.49865 540.00000,663.03138 C 540.00000,663.56412 539.55000,664.00000 539.00000,664.00000 C 538.45000,664.00000 538.00000,663.63810 538.00000,663.19578 z M 555.00000,658.05957 C 555.00000,657.61150 555.67500,656.68469 556.50000,656.00000 C 557.53636,655.13990 558.00000,655.10205 558.00000,655.87756 C 558.00000,656.49490 559.20000,657.00000 560.66667,657.00000 C 564.22641,657.00000 563.36278,657.58378 558.75000,658.29559 C 556.68750,658.61386 555.00000,658.50765 555.00000,658.05957 z M 336.60104,653.54657 C 336.13474,651.68868 335.30238,651.00000 333.52316,651.00000 C 331.37395,651.00000 331.12174,650.61415 331.39874,647.75000 C 332.19426,639.52458 332.46645,639.25432 339.82499,639.38314 C 347.70166,639.52104 348.79848,641.37689 342.75000,644.33236 C 340.68750,645.34015 338.96300,646.91515 338.91777,647.83236 C 338.79648,650.29212 337.91768,655.41566 337.55483,655.77851 C 337.38178,655.95156 336.95258,654.94718 336.60104,653.54657 z M 344.00000,651.60289 C 344.00000,650.09273 344.59601,648.26113 345.32447,647.53268 C 346.42376,646.43339 346.83803,646.51101 347.76120,647.98923 C 348.66330,649.43373 348.41305,650.20278 346.43673,652.05944 L 344.00000,654.34863 L 344.00000,651.60289 z M 486.00000,636.83333 C 486.00000,636.37500 486.42344,636.00000 486.94098,636.00000 C 487.45852,636.00000 488.11373,636.37500 488.39699,636.83333 C 488.68026,637.29167 488.25682,637.66667 487.45601,637.66667 C 486.65521,637.66667 486.00000,637.29167 486.00000,636.83333 z M 339.67710,634.39908 C 340.01498,633.51857 339.66336,632.38502 338.89572,631.88007 C 336.93726,630.59184 340.43510,628.00000 344.13211,628.00000 C 347.01985,628.00000 348.72149,629.43606 347.05452,630.46630 C 346.43161,630.85129 346.41670,631.96579 347.01346,633.53540 C 347.92225,635.92570 347.81653,636.00000 343.50663,636.00000 C 339.84286,636.00000 339.17061,635.71897 339.67710,634.39908 z M 351.59010,633.37420 C 351.26577,632.52902 351.67532,630.87393 352.50021,629.69624 C 354.10144,627.41017 354.13575,627.42454 354.48033,630.52581 C 354.77976,633.22068 352.42262,635.54370 351.59010,633.37420 z M 431.08011,619.60592 C 430.45302,618.01418 429.67415,616.28179 429.34930,615.75616 C 429.02444,615.23053 429.68789,615.29778 430.82363,615.90561 C 433.54846,617.36389 433.89913,618.10930 432.98500,620.50000 C 432.28292,622.33615 432.12686,622.26290 431.08011,619.60592 z M 260.00000,468.28681 C 257.52500,468.07745 255.03237,467.29600 254.46081,466.55026 C 253.88926,465.80451 252.31426,464.98691 250.96081,464.73336 C 249.14013,464.39228 249.45381,464.23694 252.16667,464.13618 C 254.18333,464.06128 256.01117,463.46648 256.22853,462.81440 C 256.49752,462.00743 260.27661,461.56942 268.06187,461.44287 C 274.35284,461.34061 285.35000,460.95573 292.50000,460.58758 C 299.65000,460.21942 309.55000,459.71008 314.50000,459.45571 C 319.45000,459.20133 325.97500,458.52441 329.00000,457.95144 C 332.02500,457.37846 335.59722,456.93196 336.93828,456.95921 C 338.27933,456.98646 339.63088,456.59725 339.94172,456.09430 C 340.43495,455.29624 343.61531,454.37285 360.98025,449.98597 C 363.67709,449.30467 364.85886,449.46728 366.23025,450.70837 C 367.20361,451.58925 368.00000,452.86709 368.00000,453.54800 C 368.00000,454.22891 368.73865,455.06947 369.64144,455.41590 C 371.02407,455.94647 371.08044,455.80185 369.99894,454.49873 C 368.28034,452.42794 369.33220,451.57224 371.90424,452.94875 C 373.67592,453.89692 373.79964,454.34797 372.74934,456.02977 C 372.07260,457.11340 370.61465,458.01310 369.50945,458.02912 C 368.40425,458.04513 364.35000,458.93203 360.50000,460.00000 C 356.65000,461.06797 352.01094,461.95487 350.19098,461.97088 C 348.26045,461.98787 347.13771,462.41381 347.49589,462.99334 C 347.83894,463.54842 347.09287,463.94930 345.80490,463.90195 C 344.53721,463.85534 339.67500,464.33123 335.00000,464.95948 C 330.32500,465.58773 323.80000,466.29123 320.50000,466.52282 C 317.20000,466.75440 311.80000,467.19700 308.50000,467.50636 C 300.83155,468.22524 265.91449,468.78712 260.00000,468.28681 z M 373.97251,447.35370 C 367.47158,443.02509 367.35414,439.31754 373.52791,433.31719 C 376.01827,430.89680 378.49327,429.18682 379.02791,429.51725 C 381.13653,430.82045 379.30418,449.00000 377.06422,449.00000 C 376.72366,449.00000 375.33238,448.25916 373.97251,447.35370 z M 180.46669,438.62641 C 180.09117,436.12232 180.17005,432.49075 180.64197,430.55625 L 181.50000,427.03900 L 186.25000,431.41107 C 188.86250,433.81571 191.00000,436.49656 191.00000,437.36852 C 191.00000,439.19805 187.69678,441.57048 183.82472,442.52193 C 181.28204,443.14673 181.11559,442.95363 180.46669,438.62641 z M 246.00000,416.70555 C 240.04100,415.58775 238.98350,414.77909 239.73295,411.91319 C 240.09011,410.54741 240.65992,410.27747 241.86038,410.90533 C 242.76217,411.37697 247.10000,412.07258 251.50000,412.45112 C 255.90000,412.82966 261.75000,413.33160 264.50000,413.56654 C 269.59604,414.00191 274.00000,415.67191 274.00000,417.16898 C 274.00000,418.31902 252.72414,417.96688 246.00000,416.70555 z M 277.54154,414.36975 C 276.59688,409.33428 278.45679,407.82403 279.96707,412.40022 C 280.61769,414.37161 281.90376,416.42436 282.82501,416.96188 C 284.17334,417.74859 283.88789,417.94511 281.36129,417.96959 C 278.53642,417.99696 278.15448,417.63701 277.54154,414.36975 z M 282.71025,408.73902 C 278.06652,393.36005 279.72398,394.08051 285.60124,409.99567 C 288.36566,417.48153 288.44073,418.00387 286.75000,417.98902 C 286.04484,417.98283 284.28402,413.95100 282.71025,408.73902 z M 289.23651,417.43015 C 289.99600,416.67067 286.26908,403.59233 283.77381,398.26064 C 281.69126,393.81084 281.52925,392.32805 282.32492,385.00000 C 282.59365,382.52500 282.88971,378.70000 282.98284,376.50000 L 283.15216,372.50000 L 284.32608,375.67823 C 284.97174,377.42626 285.87296,379.22626 286.32881,379.67823 C 286.78465,380.13020 291.05965,380.72500 295.82881,381.00000 C 304.03419,381.47314 304.51809,381.62790 304.83672,383.88099 C 305.46819,388.34626 304.05199,393.00000 302.06168,393.00000 C 301.04544,393.00000 299.95496,393.67500 299.63837,394.50000 C 299.32179,395.32500 299.49865,396.00000 300.03138,396.00000 C 300.56412,396.00000 301.00000,396.45000 301.00000,397.00000 C 301.00000,397.55000 298.75000,398.00000 296.00000,398.00000 C 293.25000,398.00000 291.00000,398.14570 291.00000,398.32377 C 291.00000,398.50185 292.12500,402.40615 293.50000,407.00000 C 296.75796,417.88478 296.74574,418.00000 292.33333,418.00000 C 290.31667,418.00000 288.92310,417.74357 289.23651,417.43015 z M 295.12756,394.31277 C 296.33570,392.82752 296.28072,392.70781 294.66821,393.31277 C 293.66073,393.69075 292.19823,394.00000 291.41821,394.00000 C 290.63820,394.00000 290.00000,394.45000 290.00000,395.00000 C 290.00000,396.62775 293.64148,396.13970 295.12756,394.31277 z M 300.07608,415.83333 C 300.11792,415.10000 300.77515,412.92500 301.53659,411.00000 L 302.92102,407.50000 L 302.71051,411.92228 C 302.59216,414.40855 301.95277,416.52451 301.25000,416.75561 C 300.56250,416.98169 300.03424,416.56667 300.07608,415.83333 z M 218.00939,405.25000 C 216.26088,401.53750 213.68697,395.66592 212.28960,392.20204 C 209.82285,386.08735 209.80350,385.86275 211.62446,384.48384 C 212.65601,383.70271 214.17500,383.00466 215.00000,382.93261 C 215.82500,382.86056 217.77783,382.68859 219.33962,382.55045 C 221.56379,382.35372 222.42632,382.86287 223.31927,384.89964 C 223.94628,386.32984 224.73858,387.72500 225.07994,388.00000 C 226.72889,389.32840 228.04524,393.30911 227.48989,395.28777 C 227.00149,397.02790 227.09310,397.17989 227.91918,396.00000 C 228.79084,394.75500 228.97198,394.74161 228.98469,395.92126 C 228.99311,396.70295 228.24216,398.17992 227.31592,399.20341 C 226.19245,400.44482 225.60990,402.88407 225.56592,406.53091 C 225.50670,411.44173 225.28082,411.99766 223.34426,411.99877 C 221.66306,411.99973 220.48869,410.51413 218.00939,405.25000 z M 320.59660,406.80368 C 322.51074,393.82615 324.34230,383.31675 324.83221,382.50000 C 325.16211,381.95000 325.92196,383.24304 326.52075,385.37342 L 327.60947,389.24685 L 328.82969,385.17409 C 329.96350,381.38977 330.27183,381.12942 333.18333,381.49789 C 334.90670,381.71600 336.58297,382.28852 336.90836,382.77016 C 337.23376,383.25181 338.28750,383.93644 339.25000,384.29156 C 340.21250,384.64668 341.00000,385.30613 341.00000,385.75700 C 341.00000,386.67773 326.65213,403.24073 322.76810,406.80368 L 320.25682,409.10736 L 320.59660,406.80368 z M 350.67085,405.98006 C 352.83743,402.31232 358.20965,396.96851 360.11907,396.58177 C 363.13488,395.97096 365.62107,394.49437 368.15121,391.81138 C 369.60938,390.26512 371.20555,389.00000 371.69826,389.00000 C 372.19098,389.00000 374.37293,387.15336 376.54705,384.89635 C 384.21831,376.93265 397.31727,368.18122 417.50000,357.53565 C 427.65180,352.18098 441.28498,342.27013 440.42130,340.87266 C 440.10782,340.36544 440.27826,340.07410 440.80005,340.22522 C 442.08619,340.59773 447.18828,335.86402 455.00000,327.05054 C 458.57500,323.01709 462.09119,319.10912 462.81376,318.36617 C 463.53632,317.62321 463.80430,316.49236 463.40925,315.85316 C 462.97788,315.15519 463.12609,314.95989 463.78031,315.36423 C 464.38574,315.73840 466.11767,314.36332 467.67913,312.26873 C 469.22435,310.19593 470.74547,308.27500 471.05941,308.00000 C 472.40911,306.81767 485.05790,286.98912 487.89428,281.60923 C 489.60242,278.36931 491.00000,274.63025 491.00000,273.30021 C 491.00000,271.70852 491.39988,271.12911 492.16994,271.60503 C 492.96370,272.09560 493.12815,271.77633 492.68139,270.61211 C 492.28958,269.59106 492.42401,269.14402 493.01333,269.50824 C 493.96021,270.09344 496.22639,265.70439 495.74621,264.21531 C 495.61934,263.82189 496.23629,262.47768 497.11721,261.22817 C 498.52574,259.23029 498.87123,259.13992 499.98234,260.47872 C 500.67724,261.31603 501.45395,263.91335 501.70835,266.25055 C 502.47695,273.31175 494.16223,293.46856 482.01160,314.00000 C 465.67569,341.60347 440.19852,367.97663 418.00000,380.26279 C 401.43234,389.43245 387.78463,397.84208 387.15965,399.26642 C 386.97246,399.69304 385.60018,400.67252 384.11013,401.44305 C 381.45735,402.81486 381.31363,402.73116 377.20572,397.42201 C 374.89834,394.43990 372.51775,392.00000 371.91553,392.00000 C 370.07676,392.00000 367.05209,396.39053 367.60985,398.25000 C 367.90947,399.24887 367.60984,400.00000 366.91178,400.00000 C 366.23913,400.00000 364.22812,401.11410 362.44288,402.47577 C 360.65763,403.83745 356.87455,405.86696 354.03603,406.98580 L 348.87508,409.02005 L 350.67085,405.98006 z M 193.50000,402.00000 C 193.16008,401.45000 193.78197,401.00000 194.88197,401.00000 C 195.98197,401.00000 197.16008,401.45000 197.50000,402.00000 C 197.83992,402.55000 197.21803,403.00000 196.11803,403.00000 C 195.01803,403.00000 193.83992,402.55000 193.50000,402.00000 z M 176.88623,400.16523 C 175.99866,399.24935 172.62366,395.28682 169.38623,391.35961 C 166.14881,387.43239 162.06558,382.48239 160.31239,380.35961 C 158.55921,378.23682 155.40921,374.68139 153.31239,372.45864 C 143.71180,362.28145 130.58830,345.32995 124.31270,335.00000 C 119.89197,327.72328 114.00000,314.14625 114.00000,311.23618 C 114.00000,310.18962 113.66250,308.99583 113.25000,308.58333 C 112.83750,308.17083 112.41362,306.63333 112.30803,305.16667 C 112.20245,303.70000 111.61580,299.42246 111.00436,295.66101 C 109.73498,287.85203 110.16448,285.09933 111.96567,289.50000 C 119.99015,309.10550 136.56438,333.05123 155.51524,352.41851 C 157.17362,354.11333 161.44862,359.14090 165.01524,363.59090 C 168.58186,368.04089 175.03815,376.03029 179.36255,381.34511 L 187.22511,391.00843 L 183.86255,394.83342 C 182.01315,396.93716 180.05000,399.37212 179.50000,400.24443 C 178.59162,401.68515 178.35214,401.67789 176.88623,400.16523 z M 207.20063,379.09113 C 204.92164,373.94254 201.84876,364.69693 199.93530,357.23142 C 198.50056,351.63367 196.25620,347.15122 190.17167,337.73142 C 185.82632,331.00414 181.52925,324.15000 180.62263,322.50000 C 179.71602,320.85000 177.27886,316.80000 175.20672,313.50000 C 163.63176,295.06618 147.87335,263.06545 143.69062,249.50000 C 140.03984,237.65980 139.26734,204.43370 142.41187,194.50000 C 143.50275,191.05386 143.84178,190.54036 143.50278,192.84768 C 142.98668,196.36040 143.76083,201.00000 144.86305,201.00000 C 145.21848,201.00000 147.08220,198.99720 149.00464,196.54934 C 150.92709,194.10148 153.13104,191.83930 153.90230,191.52228 C 154.67357,191.20526 153.48665,192.91813 151.26471,195.32865 C 145.27485,201.82688 144.75281,203.16413 146.53794,207.43657 L 148.04943,211.05406 L 150.43964,208.27703 C 151.75426,206.74966 153.11806,205.78742 153.47031,206.13872 C 153.82256,206.49001 152.95379,208.02583 151.53971,209.55165 C 148.74408,212.56819 148.77052,213.03396 152.22708,221.66200 C 153.47535,224.77783 154.78061,226.63768 155.51996,226.35397 C 156.33567,226.04095 156.59799,226.65494 156.30522,228.19197 C 156.02523,229.66192 158.22480,235.40204 162.36275,244.00000 C 168.92290,257.63089 171.15600,260.21817 166.44535,248.73013 C 160.54084,234.33056 157.07155,224.22213 156.58490,219.99985 C 156.29965,217.52493 156.31432,216.40000 156.61749,217.50000 C 156.92067,218.60000 157.69326,219.95000 158.33436,220.50000 C 158.97546,221.05000 159.54708,223.07500 159.60462,225.00000 C 159.84649,233.09203 187.28217,295.36159 199.79062,316.20844 C 206.05618,326.65074 209.26386,333.00113 208.27032,332.99610 C 207.52698,332.99234 198.21466,316.24282 187.42343,295.50000 C 184.56211,290.00000 180.56503,282.57500 178.54103,279.00000 C 175.36278,273.38625 161.56838,245.46394 156.80380,235.00000 L 155.21013,231.50000 L 154.10506,234.31510 C 153.49728,235.86340 153.00000,238.18603 153.00000,239.47649 C 153.00000,241.55805 157.15233,252.10296 161.27855,260.50000 C 162.08934,262.15000 164.27086,266.87332 166.12636,270.99628 C 171.06176,281.96281 183.84579,305.99810 190.86104,317.50000 C 194.21560,323.00000 197.92133,329.27179 199.09600,331.43731 C 200.27067,333.60283 201.85462,335.99748 202.61588,336.75874 C 203.37715,337.52000 204.00000,338.55611 204.00000,339.06120 C 204.00000,339.56629 205.97215,343.05629 208.38254,346.81676 C 210.79294,350.57723 213.09840,355.17151 213.50577,357.02627 C 213.91314,358.88103 215.75901,363.93243 217.60769,368.25161 C 220.89694,375.93645 221.63483,380.66436 219.54569,380.66898 C 218.97056,380.67026 216.24774,380.97113 213.49497,381.33760 C 208.66762,381.98024 208.44417,381.90049 207.20063,379.09113 z M 198.50000,346.00000 C 197.64675,344.35000 196.72364,343.00000 196.44864,343.00000 C 196.17364,343.00000 196.64675,344.35000 197.50000,346.00000 C 198.35325,347.65000 199.27636,349.00000 199.55136,349.00000 C 199.82636,349.00000 199.35325,347.65000 198.50000,346.00000 z M 195.22729,340.75000 C 193.77933,338.97136 175.00891,306.29745 172.67906,301.50000 C 171.61064,299.30000 170.39843,297.27500 169.98527,297.00000 C 169.08925,296.40361 150.00000,257.54048 150.00000,256.31269 C 150.00000,255.30147 143.97804,240.72197 143.26215,240.00000 C 142.98947,239.72500 143.08315,241.07500 143.47033,243.00000 C 145.57878,253.48293 162.95190,290.36264 175.60491,311.21539 C 188.03650,331.70324 192.33195,338.55945 193.79523,340.25000 C 195.50758,342.22830 196.79733,342.67861 195.22729,340.75000 z M 191.75868,326.75000 C 191.44096,324.05702 189.04008,318.61344 185.20530,311.89136 C 177.31905,298.06734 164.36061,272.13550 159.02472,259.50000 C 155.03097,250.04271 153.00000,246.35247 153.00000,248.55318 C 153.00000,251.35276 157.48752,264.04595 162.52672,275.50000 C 171.42489,295.72548 189.99473,331.00000 191.74402,331.00000 C 192.02787,331.00000 192.03446,329.08750 191.75868,326.75000 z M 152.28073,249.75000 C 152.03200,245.76250 151.19208,241.08199 150.41425,239.34887 C 149.63641,237.61575 149.00000,235.89917 149.00000,235.53425 C 149.00000,233.91302 144.66531,225.00000 143.87686,225.00000 C 143.39459,225.00000 143.00000,227.30783 143.00000,230.12852 C 143.00000,233.83000 144.07027,237.79514 146.84634,244.37852 C 148.96183,249.39533 150.97271,254.28750 151.31496,255.25000 C 152.47368,258.50866 152.73444,257.02369 152.28073,249.75000 z M 153.46901,228.01665 C 152.38046,223.67285 148.79396,216.00000 147.85211,216.00000 C 147.35622,216.00000 146.53978,217.08028 146.03778,218.40062 C 145.34175,220.23132 145.86131,222.73911 148.22626,228.96387 L 151.32745,237.12650 L 152.71357,233.82990 C 153.47593,232.01677 153.81588,229.40081 153.46901,228.01665 z M 142.95326,218.91267 C 141.36353,215.94223 140.99688,216.58149 141.03914,222.25000 L 141.07828,227.50000 L 142.52759,224.16267 C 143.57382,221.75350 143.69220,220.29340 142.95326,218.91267 z M 146.88400,212.05887 C 146.79503,210.86333 146.66067,210.91169 146.30753,212.26635 C 145.89276,213.85738 145.65464,213.80776 143.90826,211.76635 L 141.96946,209.50000 L 142.62299,212.50000 C 142.98243,214.15000 143.50799,215.90567 143.79090,216.40149 C 144.48024,217.60960 147.03060,214.02896 146.88400,212.05887 z M 145.12409,207.73333 C 144.13647,206.75307 144.02161,206.86793 144.56429,208.29313 C 144.93982,209.27935 145.49898,209.83435 145.80687,209.52646 C 146.11476,209.21857 145.80751,208.41167 145.12409,207.73333 z M 144.00000,203.88197 C 144.00000,203.33197 143.55000,203.16008 143.00000,203.50000 C 142.45000,203.83992 142.00000,204.56803 142.00000,205.11803 C 142.00000,205.66803 142.45000,205.83992 143.00000,205.50000 C 143.55000,205.16008 144.00000,204.43197 144.00000,203.88197 z M 325.00000,380.11803 C 325.00000,379.56803 325.45000,378.83992 326.00000,378.50000 C 326.55000,378.16008 327.00000,378.33197 327.00000,378.88197 C 327.00000,379.43197 326.55000,380.16008 326.00000,380.50000 C 325.45000,380.83992 325.00000,380.66803 325.00000,380.11803 z M 332.52627,379.19294 C 331.46636,378.13303 332.04863,374.80274 334.00000,370.76386 C 335.10000,368.48713 336.00000,366.00479 336.00000,365.24755 C 336.00000,364.49032 336.84948,361.76234 337.88772,359.18538 C 338.92597,356.60842 341.67498,349.55000 343.99663,343.50000 C 346.31828,337.45000 348.90346,330.92500 349.74148,329.00000 C 353.43628,320.51267 354.86611,317.15879 356.98890,312.00000 C 360.31655,303.91314 369.72751,281.55813 373.19654,273.50000 C 374.85396,269.65000 377.31058,263.90034 378.65568,260.72297 C 382.50735,251.62469 392.98575,230.93040 396.13619,226.19987 C 397.71129,223.83480 399.00000,221.55965 399.00000,221.14400 C 399.00000,220.72835 401.25000,216.92642 404.00000,212.69528 C 406.75000,208.46413 409.00000,204.72923 409.00000,204.39550 C 409.00000,204.06177 410.12500,202.45173 411.50000,200.81763 C 414.27084,197.52468 414.85834,194.45665 412.54833,195.34308 C 411.61230,195.70227 410.54515,194.79460 409.54400,192.78774 C 408.69003,191.07592 408.10578,189.58725 408.24566,189.47959 C 408.38555,189.37193 410.14958,189.48978 412.16572,189.74149 C 415.38298,190.14315 415.77899,190.48845 415.40262,192.56396 L 414.97380,194.92878 L 417.48690,192.59972 C 418.86910,191.31874 420.00000,189.94379 420.00000,189.54428 C 420.00000,188.43547 428.32872,176.60958 429.75000,175.70031 C 430.43750,175.26048 431.00000,174.28251 431.00000,173.52704 C 431.00000,172.77156 432.06987,170.88142 433.37748,169.32673 C 439.59459,161.93483 453.29947,133.65360 458.44055,117.60687 C 458.77414,116.56565 459.26102,115.92769 459.52250,116.18917 C 460.10922,116.77588 457.38963,136.56055 456.53138,137.94923 C 456.19012,138.50139 455.75011,140.22371 455.55358,141.77660 C 454.61444,149.19731 449.57916,162.34863 442.73664,175.25232 C 438.00783,184.16997 435.72640,187.98762 430.90792,195.04603 C 430.32744,195.89635 428.64819,198.42965 427.17625,200.67558 C 425.70431,202.92152 419.53921,212.12581 413.47602,221.12956 C 402.24261,237.81100 396.76481,246.69536 390.28634,258.74061 C 384.84355,268.86023 378.00000,282.85452 378.00000,283.86480 C 378.00000,284.35447 377.32995,285.31120 376.51101,285.99086 C 375.69207,286.67053 375.25731,287.60732 375.54489,288.07263 C 375.83246,288.53794 375.62293,289.72445 375.07925,290.70932 C 373.61108,293.36890 365.00000,313.77445 365.00000,314.59398 C 365.00000,314.98238 363.91038,317.59513 362.57862,320.40009 C 358.80422,328.34973 355.00000,336.99669 355.00000,337.62621 C 355.00000,337.94055 354.34094,339.61575 353.53542,341.34887 C 350.05495,348.83730 341.71211,369.83552 340.76141,373.50000 C 340.19065,375.70000 339.39242,377.87091 338.98758,378.32425 C 338.11643,379.29975 333.28292,379.94959 332.52627,379.19294 z M 306.19495,347.50000 C 306.17457,345.85000 306.38201,345.05394 306.65594,345.73097 C 306.92986,346.40800 306.94653,347.75800 306.69299,348.73097 C 306.43945,349.70394 306.21533,349.15000 306.19495,347.50000 z M 303.15852,331.80452 C 301.23357,320.41757 300.65487,312.40430 301.83724,313.50856 C 302.88696,314.48895 305.48219,336.85115 304.64357,337.68976 C 304.41297,337.92036 303.74470,335.27200 303.15852,331.80452 z M 206.13093,311.71186 C 200.67982,302.89176 172.64089,248.02577 173.26540,247.40126 C 173.47640,247.19027 175.96189,251.67049 178.78872,257.35730 C 186.82773,273.52963 198.04112,294.35439 199.56159,295.93529 C 200.32082,296.72470 198.42254,292.22470 195.34318,285.93529 C 192.26383,279.64588 187.85257,270.22500 185.54040,265.00000 C 183.22822,259.77500 178.68577,249.51858 175.44605,242.20796 C 171.15269,232.51970 169.36383,229.40178 168.84812,230.70796 C 168.33953,231.99609 168.12081,231.58612 168.07029,229.25000 C 168.03163,227.46250 168.18055,226.00000 168.40122,226.00000 C 169.08054,226.00000 172.51675,232.26997 174.30483,236.77218 C 177.93303,245.90762 189.61746,271.38846 198.71286,290.00000 C 206.89930,306.75159 210.14890,315.00000 208.56203,315.00000 C 208.34263,315.00000 207.24864,313.52034 206.13093,311.71186 z M 269.99159,307.48639 L 267.82006,303.97279 L 270.03306,298.23639 C 273.34781,289.64410 273.65356,289.02752 278.08451,282.00000 C 280.33859,278.42500 283.75344,272.12500 285.67306,268.00000 C 287.59269,263.87500 289.82220,259.13073 290.62754,257.45719 C 292.72768,253.09294 295.86138,240.72687 297.07165,232.02772 C 298.47383,221.94914 299.30994,221.61943 298.35699,231.52087 C 297.93462,235.90939 297.61935,240.40000 297.65639,241.50000 C 297.69342,242.60000 297.98292,248.90000 298.29972,255.50000 C 299.17473,273.72953 299.36335,296.96998 298.64215,297.69119 C 298.28897,298.04437 298.00000,296.66750 298.00000,294.63148 C 298.00000,292.59547 297.27325,289.82047 296.38499,288.46482 C 292.78420,282.96932 288.52880,286.35584 278.74878,302.50000 C 277.74922,304.15000 276.39818,306.73750 275.74646,308.25000 C 274.16421,311.92209 272.60515,311.71522 269.99159,307.48639 z M 300.15789,305.00000 C 300.15789,303.62500 300.38487,303.06250 300.66228,303.75000 C 300.93969,304.43750 300.93969,305.56250 300.66228,306.25000 C 300.38487,306.93750 300.15789,306.37500 300.15789,305.00000 z M 212.00000,296.06343 C 212.00000,294.66913 211.58340,294.13944 210.84549,294.59549 C 210.12445,295.04112 209.96267,294.86942 210.41459,294.13820 C 210.81257,293.49425 211.55372,293.22418 212.06158,293.53806 C 213.04360,294.14498 209.26842,285.90466 196.00942,258.50000 C 187.24570,240.38651 182.87549,231.08864 179.92589,224.28134 C 178.56888,221.14955 177.37684,219.90326 175.29897,219.44387 C 170.64259,218.41441 170.35342,218.16147 173.73857,218.07895 C 175.51978,218.03553 177.76978,218.65086 178.73857,219.44635 C 182.05455,222.16917 184.59500,224.50050 183.27296,223.60750 C 180.30150,221.60036 180.94626,224.52088 185.73017,234.73784 C 202.48379,270.51843 206.27989,277.81743 207.53338,276.66020 C 208.22456,276.02209 208.51247,275.05000 208.17316,274.50000 C 207.83385,273.95000 207.47282,273.05000 207.37086,272.50000 C 207.26890,271.95000 203.05011,262.58114 197.99576,251.68031 C 192.94142,240.77948 189.06878,231.59789 189.38990,231.27677 C 189.71101,230.95565 190.68348,232.44951 191.55092,234.59646 C 195.18257,243.58485 206.51064,267.67059 208.08407,269.74922 C 209.43521,271.53421 209.90282,271.69562 210.34964,270.53125 C 210.65929,269.72429 210.45855,268.78340 209.90354,268.44038 C 209.34853,268.09737 209.07869,267.29546 209.30389,266.65836 C 209.52910,266.02126 207.29909,260.66250 204.34832,254.75000 C 201.39756,248.83750 199.18053,244.00000 199.42160,244.00000 C 199.66267,244.00000 201.66600,247.26250 203.87344,251.25000 C 211.31495,264.69225 211.22024,262.61441 203.72530,248.00000 C 197.18716,235.25126 188.95005,220.38652 182.80661,210.25000 C 181.72326,208.46250 181.23391,207.00000 181.71917,207.00000 C 182.20444,207.00000 183.58619,208.91250 184.78974,211.25000 C 185.99329,213.58750 188.69454,218.42500 190.79253,222.00000 C 194.36604,228.08933 200.20296,238.61975 205.75840,249.00000 C 207.08300,251.47500 208.60228,253.95000 209.13457,254.50000 C 210.51002,255.92121 209.11404,247.22288 207.38466,243.59636 C 205.73619,240.13952 205.67915,239.68367 206.99698,240.49813 C 207.59806,240.86962 207.55010,239.99958 206.87621,238.30715 C 206.26144,236.76322 205.56485,233.92543 205.32823,232.00096 C 205.09161,230.07648 204.27666,227.25641 203.51725,225.73412 C 202.75783,224.21183 202.55578,223.22546 203.06824,223.54218 C 203.58071,223.85890 204.00000,223.58638 204.00000,222.93657 C 204.00000,222.10463 204.49128,222.16113 205.66066,223.12756 C 207.17752,224.38117 207.20215,224.30864 205.94502,222.28989 C 205.13162,220.98370 204.30485,220.50675 203.92353,221.12373 C 203.53212,221.75704 203.03141,221.52424 202.65062,220.53191 C 202.24408,219.47248 202.41693,219.13964 203.14119,219.58726 C 203.75624,219.96738 204.08415,219.87825 203.86988,219.38920 C 200.79107,212.36199 198.50972,208.74127 196.70229,208.01351 C 195.49103,207.52581 195.07406,207.09825 195.77568,207.06339 C 196.75088,207.01493 196.67782,206.23449 195.46549,203.75000 L 193.87961,200.50000 L 195.91757,203.00000 C 197.03845,204.37500 197.96553,205.99027 197.97776,206.58948 C 198.00132,207.74361 202.95174,210.38160 203.69646,209.63687 C 204.42381,208.90952 199.04620,199.00000 197.92414,199.00000 C 197.35094,199.00000 197.15433,198.55930 197.48723,198.02067 C 197.82012,197.48203 197.61249,196.01953 197.02582,194.77067 C 196.08109,192.75955 196.10438,192.71649 197.22958,194.39395 C 200.07821,198.64071 202.87217,201.45779 203.55743,200.77417 C 203.95759,200.37496 203.70675,199.35158 203.00000,198.50000 C 202.29325,197.64842 201.92845,196.73822 202.18933,196.47734 C 202.45021,196.21646 203.26537,197.12734 204.00081,198.50151 C 204.73624,199.87568 205.73848,201.00000 206.22800,201.00000 C 206.71752,201.00000 206.88248,201.38114 206.59457,201.84698 C 206.30667,202.31281 207.40511,203.97200 209.03556,205.53407 C 210.66600,207.09613 211.98569,207.95249 211.96820,207.43709 C 211.91305,205.81210 209.33773,203.00064 207.88976,202.98469 C 206.77714,202.97243 206.79912,202.77607 208.00000,202.00000 C 209.08997,201.29561 209.14217,201.02644 208.19098,201.01531 C 207.47102,201.00689 207.12739,200.60289 207.42736,200.11754 C 208.27366,198.74819 203.92863,193.81341 202.39486,194.40197 C 201.64447,194.68993 200.61821,194.15478 200.11429,193.21276 C 199.37356,191.82808 199.65796,191.47238 201.59903,191.35579 C 202.91956,191.27647 204.00000,191.51368 204.00000,191.88293 C 204.00000,192.25217 205.23750,193.90950 206.75000,195.56588 C 208.26250,197.22226 211.71701,201.93505 214.42669,206.03874 C 217.13637,210.14243 220.14974,214.68664 221.12307,216.13698 C 224.87939,221.73421 243.15642,259.35134 249.02746,273.56880 C 252.41864,281.78096 255.43815,288.95000 255.73748,289.50000 C 256.03682,290.05000 255.56884,289.82500 254.69754,289.00000 C 253.82623,288.17500 250.88691,282.28721 248.16573,275.91601 C 242.70736,263.13617 238.54294,254.94278 239.56789,259.00000 C 239.91525,260.37500 242.58835,267.03626 245.50811,273.80280 C 248.42787,280.56933 250.33235,285.94412 249.74028,285.74676 C 249.14820,285.54940 247.55964,282.71314 246.21014,279.44396 C 239.93534,264.24322 233.09137,249.57530 232.53375,250.13291 C 232.28664,250.38003 234.70305,256.86371 237.90355,264.54111 C 244.32229,279.93847 245.77450,284.05640 244.23681,282.50000 C 243.69343,281.95000 241.56217,277.45000 239.50068,272.50000 C 235.57524,263.07432 225.00793,239.81493 219.92567,229.41402 C 218.29006,226.06673 215.56809,222.01673 213.87683,220.41402 L 210.80183,217.50000 L 212.31844,221.00000 C 213.15257,222.92500 217.19390,231.70000 221.29918,240.50000 C 229.31627,257.68531 235.28743,272.04591 234.67194,272.66139 C 234.46285,272.87048 233.03130,270.21971 231.49073,266.77078 C 229.95015,263.32185 226.57577,256.00000 223.99211,250.50000 C 221.40846,245.00000 217.31578,236.22753 214.89728,231.00562 C 211.93474,224.60907 210.40104,222.20309 210.19670,223.63165 C 210.02988,224.79787 213.08019,232.10999 216.97516,239.88079 C 226.96500,259.81137 236.12686,280.20895 234.90639,279.80213 C 234.33824,279.61275 230.83216,272.94229 227.11511,264.97890 C 217.56567,244.52024 209.75194,228.91473 209.28930,229.37736 C 209.07229,229.59438 209.37337,236.13304 209.95837,243.90773 L 211.02201,258.04352 L 217.11787,270.58156 C 223.77674,284.27760 224.59855,289.03975 218.11383,276.35283 C 213.14794,266.63740 212.77545,267.48070 217.50816,277.72404 C 219.43765,281.90017 220.80824,285.52509 220.55391,285.77942 C 220.29959,286.03375 219.05841,284.10339 217.79575,281.48973 L 215.50000,276.73762 L 214.99782,280.61881 C 214.70729,282.86416 215.06534,285.68126 215.84733,287.30266 C 217.31406,290.34383 216.20819,294.75240 213.39241,297.08929 C 212.27490,298.01674 212.00000,297.81421 212.00000,296.06343 z M 209.57503,280.63044 C 209.52466,278.36838 209.08915,277.41751 208.25000,277.73743 C 207.56250,277.99953 207.00000,278.36966 207.00000,278.55994 C 207.00000,279.02045 209.27513,284.00000 209.48554,284.00000 C 209.57602,284.00000 209.61629,282.48370 209.57503,280.63044 z M 220.40611,224.00000 C 217.78967,218.79079 216.35311,217.38645 217.57321,221.23066 C 218.20970,223.23605 221.97370,229.00000 222.64679,229.00000 C 222.79566,229.00000 221.78735,226.75000 220.40611,224.00000 z M 206.47909,216.10860 C 206.72794,214.81638 206.48709,214.19896 205.88042,214.57391 C 205.32215,214.91893 204.62633,214.28708 204.33415,213.16979 C 204.04197,212.05250 203.17226,210.89634 202.40146,210.60056 C 200.32903,209.80529 200.69757,211.29826 203.25000,214.03797 C 204.48750,215.36627 205.38750,216.57612 205.25000,216.72653 C 205.11250,216.87694 205.00000,217.52500 205.00000,218.16667 C 205.00000,219.94994 206.00994,218.54466 206.47909,216.10860 z M 209.87693,210.62923 C 209.21805,209.18315 208.27464,208.00000 207.78047,208.00000 C 207.28629,208.00000 207.12291,207.61014 207.41740,207.13365 C 208.05279,206.10557 204.24769,202.41898 203.41285,203.25382 C 202.64586,204.02081 204.81811,208.00000 206.00380,208.00000 C 206.51719,208.00000 206.69613,208.62831 206.40144,209.39625 C 206.10676,210.16418 206.88123,211.50383 208.12249,212.37324 C 210.96833,214.36654 211.38916,213.94821 209.87693,210.62923 z M 207.00000,210.00000 C 207.00000,209.45000 207.19844,209.00000 207.44098,209.00000 C 207.68352,209.00000 208.16008,209.45000 208.50000,210.00000 C 208.83992,210.55000 208.64148,211.00000 208.05902,211.00000 C 207.47656,211.00000 207.00000,210.55000 207.00000,210.00000 z M 236.45194,277.90707 C 235.57226,276.20596 235.09812,274.56855 235.39829,274.26838 C 235.69845,273.96821 236.42015,274.97487 237.00205,276.50539 C 237.58395,278.03591 238.29810,279.67332 238.58904,280.14408 C 238.87999,280.61483 238.87803,281.00000 238.58470,281.00000 C 238.29136,281.00000 237.33162,279.60818 236.45194,277.90707 z M 499.03063,255.50000 C 499.03063,254.95000 499.46684,253.82500 500.00000,253.00000 C 500.53316,252.17500 500.96937,251.95000 500.96937,252.50000 C 500.96937,253.05000 500.53316,254.17500 500.00000,255.00000 C 499.46684,255.82500 499.03063,256.05000 499.03063,255.50000 z M 353.00000,243.00000 C 353.00000,240.06667 353.27835,237.94501 353.61855,238.28521 C 354.38193,239.04860 354.33389,246.99944 353.56122,247.77211 C 353.25255,248.08078 353.00000,245.93333 353.00000,243.00000 z M 171.62354,244.46134 C 170.65856,241.94665 170.94323,241.29779 172.12207,243.32500 C 172.70576,244.32875 172.97267,245.36066 172.71520,245.61813 C 172.45773,245.87560 171.96648,245.35504 171.62354,244.46134 z M 111.26008,236.22162 C 110.62375,234.72473 108.89517,231.47500 107.41880,229.00000 C 102.22149,220.28722 95.000000,206.98533 95.000000,206.12474 C 95.000000,205.64596 94.064438,203.13924 92.920973,200.55425 C 90.640653,195.39921 90.836973,193.53740 93.740946,192.77800 C 95.217535,192.39186 96.191658,193.32512 98.032185,196.88923 C 99.341749,199.42515 102.08449,204.01017 104.12717,207.07816 C 106.16985,210.14615 108.72068,214.19615 109.79567,216.07816 C 110.87066,217.96017 113.54315,222.42367 115.73454,225.99704 L 119.71888,232.49408 L 116.67122,234.74257 C 114.99501,235.97924 113.35210,237.43030 113.02030,237.96715 C 112.68851,238.50400 111.89641,237.71851 111.26008,236.22162 z M 126.58586,219.74898 C 124.98308,216.86204 119.09100,207.07500 113.49236,198.00000 C 102.16431,179.63807 100.97034,177.50792 103.79967,180.70748 C 106.18003,183.39932 107.50290,182.55608 105.46469,179.64613 C 104.65911,178.49600 104.03553,176.86762 104.07895,176.02749 C 104.14726,174.70580 104.23628,174.69969 104.73966,175.98214 C 105.05963,176.79732 105.81161,178.01573 106.41071,178.68972 C 107.65504,180.08958 112.22448,187.33335 124.89990,208.00000 C 131.34809,218.51345 133.51299,222.84367 132.77413,223.75000 C 130.94800,225.99005 129.54840,225.08514 126.58586,219.74898 z M 174.18388,212.50423 C 173.55633,211.12690 173.43075,210.00000 173.90481,210.00000 C 174.73516,210.00000 176.23122,214.10211 175.62278,214.71056 C 175.45893,214.87440 174.81143,213.88155 174.18388,212.50423 z M 175.05739,206.72029 C 173.72161,204.58136 173.67398,204.57670 172.96480,206.51577 C 172.37274,208.13463 172.10293,207.80090 171.49952,204.70337 C 170.46268,199.38086 171.40467,199.14327 174.57143,203.92857 C 176.06812,206.19022 177.09729,208.23604 176.85848,208.47485 C 176.61968,208.71366 175.80919,207.92411 175.05739,206.72029 z M 187.27083,206.39583 C 187.60313,206.06354 188.46562,206.02802 189.18750,206.31689 C 189.98523,206.63611 189.74828,206.87307 188.58333,206.92105 C 187.52917,206.96447 186.93854,206.72813 187.27083,206.39583 z M 178.50000,203.71106 C 177.95000,203.04399 176.23960,200.81111 174.69911,198.74910 L 171.89822,195.00000 L 174.19911,195.07895 C 175.46460,195.12237 175.92691,195.38840 175.22646,195.67013 C 174.34475,196.02476 174.88317,197.24184 176.97646,199.62597 C 178.63941,201.51996 180.00000,203.50393 180.00000,204.03480 C 180.00000,205.26594 179.73480,205.20871 178.50000,203.71106 z M 156.00000,203.16052 C 156.00000,202.69880 157.23750,201.76341 158.75000,201.08188 L 161.50000,199.84273 L 159.29181,201.92136 C 156.92306,204.15114 156.00000,204.49862 156.00000,203.16052 z M 134.00000,196.20402 C 131.52500,192.19818 128.64847,187.47602 127.60771,185.71033 L 125.71542,182.50000 L 128.35771,185.20636 C 129.81097,186.69485 131.00000,188.17634 131.00000,188.49856 C 131.00000,189.72562 136.35529,195.61843 137.95501,196.15167 C 138.67760,196.39253 139.02791,197.94138 138.83001,200.02036 L 138.50000,203.48738 L 134.00000,196.20402 z M 192.00000,198.00000 C 191.41130,196.90000 191.15463,196.00000 191.42963,196.00000 C 191.70463,196.00000 192.41130,196.90000 193.00000,198.00000 C 193.58870,199.10000 193.84537,200.00000 193.57037,200.00000 C 193.29537,200.00000 192.58870,199.10000 192.00000,198.00000 z M 184.68023,188.46721 C 180.48862,183.56513 180.37848,182.37219 184.52170,186.75000 C 186.88259,189.24457 189.49107,193.04838 188.78518,192.96721 C 188.62833,192.94917 186.78110,190.92417 184.68023,188.46721 z M 91.702330,190.33333 C 91.983736,189.60000 92.342688,189.00000 92.500000,189.00000 C 92.657312,189.00000 93.016264,189.60000 93.297670,190.33333 C 93.579077,191.06667 93.220125,191.66667 92.500000,191.66667 C 91.779875,191.66667 91.420923,191.06667 91.702330,190.33333 z M 193.88548,189.75000 C 193.23379,188.51250 192.20546,187.16939 191.60030,186.76531 C 190.91485,186.30763 190.88751,186.02485 191.52776,186.01531 C 192.69531,185.99792 195.37377,189.04643 195.75000,190.82089 C 196.15725,192.74166 195.15901,192.16832 193.88548,189.75000 z M 89.015313,189.28943 C 89.044361,187.79190 90.751295,185.78861 91.270040,186.64324 C 91.556061,187.11446 91.162311,188.08024 90.395040,188.78943 C 89.627768,189.49861 89.006891,189.72361 89.015313,189.28943 z M 160.00000,187.50000 C 161.37500,186.71398 163.17500,186.07254 164.00000,186.07458 C 164.82500,186.07662 163.98584,186.73567 162.13519,187.53914 C 157.87684,189.38794 156.73405,189.36699 160.00000,187.50000 z M 195.57143,186.42857 C 193.42749,184.28463 193.59846,183.71474 196.00000,185.00000 C 197.10000,185.58870 198.00000,186.50453 198.00000,187.03518 C 198.00000,188.39412 197.38281,188.23995 195.57143,186.42857 z M 146.76963,185.48881 C 147.92219,183.27087 151.84533,179.44029 152.29944,180.08946 C 152.45739,180.31526 151.04264,182.07500 149.15556,184.00000 C 147.26848,185.92500 146.19481,186.59497 146.76963,185.48881 z M 170.73097,184.34406 C 171.40800,184.07014 172.75800,184.05347 173.73097,184.30701 C 174.70394,184.56055 174.15000,184.78467 172.50000,184.80505 C 170.85000,184.82543 170.05394,184.61799 170.73097,184.34406 z M 376.00447,182.00836 C 374.23599,178.70392 375.09578,177.43734 378.72546,178.00000 C 381.76959,178.47189 381.88203,178.63611 380.72546,180.92103 C 379.07861,184.17457 377.37392,184.56719 376.00447,182.00836 z M 162.00000,181.10901 C 163.37500,179.97352 165.17500,179.03724 166.00000,179.02840 C 167.31536,179.01430 166.51552,179.54745 160.75288,182.52598 C 160.06380,182.88214 160.62500,182.24451 162.00000,181.10901 z M 177.74108,182.40774 C 177.41533,182.08200 175.42783,181.20175 173.32441,180.45164 C 171.22098,179.70152 170.30985,179.06803 171.29966,179.04389 C 173.12499,178.99937 179.00000,181.65582 179.00000,182.52568 C 179.00000,183.17265 178.45492,183.12158 177.74108,182.40774 z M 124.00000,180.50000 C 124.00000,179.67500 124.45000,179.00000 125.00000,179.00000 C 125.55000,179.00000 126.00000,179.67500 126.00000,180.50000 C 126.00000,181.32500 125.55000,182.00000 125.00000,182.00000 C 124.45000,182.00000 124.00000,181.32500 124.00000,180.50000 z M 143.07895,179.58333 C 143.03553,178.52917 143.27187,177.93854 143.60417,178.27083 C 143.93646,178.60313 143.97198,179.46562 143.68311,180.18750 C 143.36389,180.98523 143.12693,180.74828 143.07895,179.58333 z M 118.45491,172.30424 C 113.63188,164.15070 113.56767,164.00000 114.91667,164.00000 C 115.51250,164.00000 116.00000,164.63459 116.00000,165.41020 C 116.00000,166.18581 117.84558,169.15524 120.10128,172.00892 C 122.51940,175.06806 123.83469,177.56531 123.30619,178.09381 C 122.77769,178.62231 120.78672,176.24627 118.45491,172.30424 z M 100.66667,177.33333 C 100.30000,176.96667 100.00000,176.20167 100.00000,175.63333 C 100.00000,175.00673 100.46577,175.06577 101.18333,175.78333 C 101.83417,176.43417 102.13417,177.19917 101.85000,177.48333 C 101.56583,177.76750 101.03333,177.70000 100.66667,177.33333 z M 156.52283,177.09794 C 157.06027,176.57191 158.85000,175.82138 160.50000,175.43009 C 164.36977,174.51239 163.50056,175.36480 159.02283,176.87872 C 157.11038,177.52531 155.98538,177.62396 156.52283,177.09794 z M 144.00000,176.05902 C 144.00000,175.54148 144.44485,174.84310 144.98855,174.50708 C 145.55541,174.15674 145.72305,174.55814 145.38156,175.44806 C 144.71677,177.18048 144.00000,177.49745 144.00000,176.05902 z M 166.25000,174.28375 C 167.76250,174.05462 170.23750,174.05462 171.75000,174.28375 C 173.26250,174.51287 172.02500,174.70034 169.00000,174.70034 C 165.97500,174.70034 164.73750,174.51287 166.25000,174.28375 z M 147.49597,171.15738 C 148.58588,169.86893 150.38266,168.35135 151.48881,167.78497 C 153.61272,166.69747 153.30339,167.03257 148.50715,171.01498 C 145.61973,173.41246 145.58411,173.41748 147.49597,171.15738 z M 180.44113,171.44483 C 178.57711,169.95144 178.58937,169.93298 180.75000,170.98002 C 181.98750,171.57971 183.00000,172.27953 183.00000,172.53518 C 183.00000,173.30040 182.48139,173.07942 180.44113,171.44483 z M 161.50000,166.39579 C 159.62865,164.95428 159.75730,164.90025 163.50000,165.55582 C 169.32176,166.57555 171.32593,167.93951 167.00000,167.93779 C 165.07500,167.93702 162.60000,167.24312 161.50000,166.39579 z M 154.27083,166.39583 C 154.60313,166.06354 155.46562,166.02802 156.18750,166.31689 C 156.98523,166.63611 156.74828,166.87307 155.58333,166.92105 C 154.52917,166.96447 153.93854,166.72813 154.27083,166.39583 z M 204.96089,161.36032 C 203.92438,157.65827 201.69032,154.67747 193.90605,146.61032 C 181.97768,134.24851 180.39085,132.30041 175.22254,123.67323 C 170.35610,115.54996 168.58973,108.95438 167.40961,94.500000 L 166.83810,87.500000 L 169.35427,92.709479 C 175.34990,105.12282 188.95160,121.27948 199.55337,128.58120 C 203.71421,131.44688 205.07657,133.02654 205.43850,135.40504 C 205.95176,138.77793 206.89915,166.00000 206.50329,166.00000 C 206.36944,166.00000 205.67536,163.91215 204.96089,161.36032 z M 424.60699,163.41821 C 423.69907,161.05222 423.75306,161.00000 427.10699,161.00000 C 429.52931,161.00000 430.08022,161.34857 429.60699,162.58179 C 429.27314,163.45177 429.00000,164.35177 429.00000,164.58179 C 429.00000,165.79260 425.12419,164.76602 424.60699,163.41821 z M 227.66093,150.77975 C 227.34464,148.42589 226.80170,143.12500 226.45439,139.00000 L 225.82293,131.50000 L 232.70075,124.50000 C 236.48355,120.65000 240.90962,115.47500 242.53647,113.00000 C 244.16332,110.52500 245.73148,108.27500 246.02126,108.00000 C 247.24109,106.84242 252.00000,96.686655 252.00000,95.241047 C 252.00000,92.589439 253.30426,94.798565 253.66062,98.053777 C 253.84497,99.737691 253.58871,100.86384 253.09116,100.55634 C 252.59361,100.24883 252.41396,100.86697 252.69194,101.92998 C 253.59147,105.36979 249.78930,120.29631 246.03423,128.06677 C 244.02308,132.22849 239.81763,138.84196 236.68879,142.76338 C 233.55996,146.68480 230.98569,150.25476 230.96820,150.69662 C 230.95070,151.13848 230.32881,152.30089 229.58620,153.27975 C 228.37156,154.88083 228.17828,154.62985 227.66093,150.77975 z M 383.58276,149.35507 C 383.26224,148.51982 383.00000,147.74466 383.00000,147.63250 C 383.00000,147.52034 383.90000,147.42857 385.00000,147.42857 C 387.28878,147.42857 387.70775,149.51443 385.58276,150.32987 C 384.80328,150.62898 383.90328,150.19033 383.58276,149.35507 z M 409.92349,138.25000 C 409.88141,137.28750 409.69623,135.71250 409.51197,134.75000 C 409.24585,133.35985 409.87847,133.00000 412.58848,133.00000 C 416.54650,133.00000 416.77502,133.74500 413.92742,137.36514 C 411.52849,140.41488 410.03259,140.74547 409.92349,138.25000 z M 442.60699,131.41821 C 441.59872,128.79072 441.89715,128.26229 444.25000,128.50891 C 447.27505,128.82599 447.21173,128.73586 446.00000,131.00000 C 444.71197,133.40671 443.43065,133.56464 442.60699,131.41821 z M 391.66667,112.33333 C 390.31224,110.97891 391.06821,110.00000 393.46862,110.00000 C 395.25210,110.00000 395.77748,110.41631 395.36163,111.50000 C 394.76449,113.05611 392.82652,113.49319 391.66667,112.33333 z M 444.63837,96.500000 C 444.29725,95.611036 444.62770,95.000000 445.44960,95.000000 C 446.21235,95.000000 447.51540,94.739454 448.34525,94.421010 C 449.47834,93.986201 449.71869,94.359734 449.31041,95.921010 C 448.68283,98.320876 445.48899,98.716678 444.63837,96.500000 z M 413.00000,85.059017 C 413.00000,84.476558 413.45000,84.000000 414.00000,84.000000 C 414.55000,84.000000 415.00000,84.198442 415.00000,84.440983 C 415.00000,84.683524 414.55000,85.160081 414.00000,85.500000 C 413.45000,85.839919 413.00000,85.641476 413.00000,85.059017 z " id="path1313" style="fill:#918e8f"/>
+ <path d="M 219.00000,794.94810 C 221.64953,793.14416 226.00000,790.93453 226.00000,791.39276 C 226.00000,792.03844 219.42316,796.00276 218.38197,795.98469 C 217.89688,795.97627 218.17500,795.50980 219.00000,794.94810 z M 445.47559,792.11789 C 440.19917,790.21715 437.07733,788.85985 425.32813,783.35825 C 421.38360,781.51121 417.89120,780.00000 417.56723,780.00000 C 416.78930,780.00000 408.53401,776.33573 403.50000,773.75599 C 397.48925,770.67570 388.04754,764.14245 384.18373,760.38996 C 376.44716,752.87630 368.57130,751.24245 355.90732,754.52402 C 352.69646,755.35603 343.41628,757.47906 335.28470,759.24185 L 320.50000,762.44692 L 276.21975,762.57902 C 249.41988,762.65898 231.70950,762.33898 231.35688,761.76843 C 231.03644,761.24995 231.27506,760.32494 231.88713,759.71287 C 233.25870,758.34130 233.35247,752.75247 232.02617,751.42617 C 231.49056,750.89056 231.33077,748.73653 231.67109,746.63943 L 232.28984,742.82652 L 237.39492,743.32479 C 262.62239,745.78704 279.46630,746.30909 297.50000,745.18763 C 314.97662,744.10082 336.54747,741.22618 341.69945,739.29740 L 343.82939,738.50000 L 341.91470,734.57144 C 339.71505,730.05822 339.51730,727.88270 341.15762,726.24238 C 342.03444,725.36556 342.02825,724.73897 341.13209,723.65916 C 340.20256,722.53914 340.27293,722.10924 341.46039,721.65357 C 342.63712,721.20202 342.83412,720.06892 342.34999,716.53679 C 341.87085,713.04110 342.04619,711.99649 343.11408,711.98469 C 344.22019,711.97247 344.19716,711.77057 343.00000,710.98469 C 341.68340,710.12039 341.67986,709.88438 342.97104,709.05437 C 343.78011,708.53428 344.12947,707.79614 343.74739,707.41406 C 342.91596,706.58262 346.04117,701.00000 347.33805,701.00000 C 347.84830,701.00000 347.82190,700.45334 347.27768,699.75000 C 346.74571,699.06250 346.00994,697.66090 345.64262,696.63533 C 345.16519,695.30233 346.04759,695.69997 348.73738,698.02995 C 352.45084,701.24666 355.75543,705.47825 362.57560,715.75000 C 364.49282,718.63750 366.49763,721.00000 367.03073,721.00000 C 368.24923,721.00000 368.28244,719.69672 367.09572,718.45000 C 366.59836,717.92750 364.65496,714.57500 362.77706,711.00000 L 359.36268,704.50000 L 362.91323,704.30493 C 365.67548,704.15317 367.62675,704.98791 371.70194,708.06471 C 374.58293,710.23988 377.41941,712.91517 378.00524,714.00978 C 379.24527,716.32682 381.00000,716.64754 381.00000,714.55716 C 381.00000,712.60695 377.03609,706.00000 375.86604,706.00000 C 375.35102,706.00000 375.46914,704.98750 376.12854,703.75000 C 377.14478,701.84281 377.11205,701.67749 375.91372,702.66496 C 374.74919,703.62459 374.52203,703.31612 374.62500,700.91496 C 374.69375,699.31173 374.84068,697.88750 374.95151,697.75000 C 375.69357,696.82938 375.64594,694.10079 374.89590,694.56434 C 374.38521,694.87996 374.26925,695.62663 374.63820,696.22361 C 375.03858,696.87143 374.84358,697.02136 374.15451,696.59549 C 372.66143,695.67272 372.69190,694.46856 374.25000,692.82143 C 374.93750,692.09464 375.54500,690.93750 375.60000,690.25000 C 375.65500,689.56250 375.76750,688.07344 375.85000,686.94098 C 376.07455,683.85857 377.80280,685.55395 379.01137,690.04222 C 380.17399,694.35988 381.47020,695.13395 382.28975,692.00000 C 382.57741,690.90000 382.45249,690.00000 382.01217,690.00000 C 381.57184,690.00000 381.22376,688.98750 381.23865,687.75000 C 381.28481,683.91432 380.41716,679.60193 379.11412,677.19069 C 378.42774,675.92058 377.72083,672.77058 377.54321,670.19069 C 376.74265,658.56258 374.80027,649.86640 373.33162,651.33505 C 373.05313,651.61354 373.28892,654.23958 373.85559,657.17069 C 375.37791,665.04487 376.16147,683.00000 374.98278,683.00000 C 374.44225,683.00000 374.00000,682.52531 374.00000,681.94514 C 374.00000,681.36496 373.11758,678.95323 372.03906,676.58574 C 369.92379,671.94245 367.20216,669.68309 361.88038,668.15257 C 360.02117,667.61786 359.17500,667.13290 360.00000,667.07488 C 363.65586,666.81774 364.06814,665.59456 362.40501,659.93951 C 360.31148,652.82098 358.59156,651.00000 353.96164,651.00000 C 350.94050,651.00000 350.11888,650.57320 349.63029,648.75000 C 348.77052,645.54178 348.86213,643.79675 349.85801,644.41224 C 350.32991,644.70390 351.55821,643.37866 352.58756,641.46727 C 354.40839,638.08619 354.58557,638.00879 359.12565,638.61106 C 363.19915,639.15143 363.87218,638.97809 364.42156,637.24713 C 364.76772,636.15650 364.58947,634.05043 364.02547,632.56698 C 363.46146,631.08353 363.00000,629.41211 363.00000,628.85271 C 363.00000,627.15866 372.29969,628.93488 374.56445,631.06148 C 375.69990,632.12767 377.52240,633.00000 378.61445,633.00000 C 379.70650,633.00000 381.09530,633.49530 381.70066,634.10066 C 383.64066,636.04066 384.37387,631.21955 382.55988,628.45104 C 381.67659,627.10297 381.36612,626.00000 381.86996,626.00000 C 382.37379,626.00000 383.04213,626.66741 383.35516,627.48314 C 383.67629,628.32000 384.58836,628.71146 385.44825,628.38149 C 386.46719,627.99048 387.29999,628.65883 387.96135,630.39834 C 388.50538,631.82926 389.21319,633.00000 389.53427,633.00000 C 389.85534,633.00000 389.79695,632.48047 389.40451,631.84549 C 388.96243,631.13019 389.13019,630.96243 389.84549,631.40451 C 390.48047,631.79695 391.00000,632.96492 391.00000,634.00000 C 391.00000,635.03508 391.45000,636.16008 392.00000,636.50000 C 392.55000,636.83992 393.00000,636.64148 393.00000,636.05902 C 393.00000,635.47656 393.78750,634.99311 394.75000,634.98469 C 396.21777,634.97184 396.26276,634.81934 395.02896,634.03906 C 392.69470,632.56283 394.72776,631.55493 397.49577,632.81612 C 398.87310,633.44367 400.00000,633.57783 400.00000,633.11426 C 400.00000,632.65068 398.31250,631.53951 396.25000,630.64498 L 392.50000,629.01858 L 398.10917,629.50147 C 401.19421,629.76706 405.37426,630.67625 407.39816,631.52189 L 411.07797,633.05942 L 409.35767,635.97166 C 406.31310,641.12571 394.32444,653.00000 392.16532,653.00000 C 390.59630,653.00000 390.05454,653.74863 389.81336,656.25000 C 389.61505,658.30674 389.01376,659.39911 388.17567,659.22522 C 387.44729,659.07410 387.13060,659.40230 387.47191,659.95456 C 388.46098,661.55489 386.06233,665.09137 384.19777,664.78184 C 382.82533,664.55401 382.51685,665.26648 382.58793,668.50000 C 382.67663,672.53514 388.33889,694.31227 389.99689,696.99497 C 391.76321,699.85294 392.08968,697.11314 390.60906,691.85749 C 389.07192,686.40119 388.06888,677.09221 389.11591,678.00000 C 390.26220,678.99383 393.08771,675.67147 392.44136,674.08979 C 391.32320,671.35353 390.12373,667.00000 390.48801,667.00000 C 390.67963,667.00000 392.89821,670.87580 395.41820,675.61289 C 399.02725,682.39719 400.00000,685.24443 400.00000,689.02379 C 400.00000,691.66270 400.87751,696.64124 401.95001,700.08721 C 403.75746,705.89456 403.77888,706.44120 402.24299,707.56427 C 400.73032,708.67036 400.81734,709.12559 403.24175,712.78913 C 409.97836,722.96883 423.79756,733.08364 427.38495,730.46047 C 428.91094,729.34464 428.46087,728.83832 423.33725,725.90688 C 417.10584,722.34163 410.00000,716.39419 410.00000,714.74388 C 410.00000,714.18101 410.69847,713.20975 411.55216,712.58552 C 412.92275,711.58332 412.81088,711.04404 410.59571,707.97528 C 405.33772,700.69118 404.58430,698.09196 404.51572,687.00000 C 404.46186,678.28724 404.03033,675.43617 401.98049,670.25000 C 400.62182,666.81250 399.17039,664.00000 398.75509,664.00000 C 398.33979,664.00000 398.00000,661.92254 398.00000,659.38342 C 398.00000,655.01338 398.13189,654.79206 400.46974,655.23897 C 401.82809,655.49863 402.73315,655.37725 402.48099,654.96923 C 401.99055,654.17570 405.72872,652.69509 407.66519,652.91588 C 408.30605,652.98894 409.12931,651.68776 409.49465,650.02436 C 410.23726,646.64326 411.43241,646.16336 412.84113,648.68060 C 413.70551,650.22515 413.91192,650.23094 415.39082,648.75203 C 416.27587,647.86699 417.00000,646.52571 417.00000,645.77143 C 417.00000,645.01714 417.54000,643.86000 418.20000,643.20000 C 419.69341,641.70659 418.52523,641.64854 415.84495,643.08298 C 414.12442,644.00378 413.88110,643.89147 414.22009,642.33298 C 414.43937,641.32484 415.07388,640.58561 415.63011,640.69024 C 416.18634,640.79487 417.20125,639.33237 417.88545,637.44024 C 418.56965,635.54811 419.53714,634.00000 420.03542,634.00000 C 420.53370,634.00000 422.04546,631.58623 423.39489,628.63608 C 425.73966,623.50989 428.12663,621.34219 430.09024,622.55577 C 430.59061,622.86502 431.00000,623.61854 431.00000,624.23028 C 431.00000,624.84201 431.74449,626.16518 432.65443,627.17065 C 433.56437,628.17612 434.85416,631.13655 435.52063,633.74939 C 436.90079,639.16018 435.89414,643.85171 431.51464,652.41948 C 430.13159,655.12519 428.96857,658.50019 428.93015,659.91948 C 428.87700,661.88301 427.40099,663.57593 422.75683,667.00000 C 419.39991,669.47500 416.16885,672.40000 415.57667,673.50000 C 414.98450,674.60000 413.93750,675.85986 413.25000,676.29969 C 411.26072,677.57234 411.77389,681.97413 415.06622,691.87853 C 418.87502,703.33666 418.40467,706.34775 414.50634,695.46280 C 412.93785,691.08326 411.28311,686.46042 410.82914,685.18983 C 409.49809,681.46438 407.70961,683.73134 408.24343,688.46732 C 408.78084,693.23520 417.97031,714.22080 419.50000,714.17347 C 420.05000,714.15644 421.17500,714.73119 422.00000,715.45067 C 422.82500,716.17015 424.98250,717.50998 426.79444,718.42807 C 429.62228,719.86090 430.61370,719.91696 433.79444,718.82386 C 440.26108,716.60152 441.81815,715.02177 445.94447,706.49681 C 448.16223,701.91492 450.54508,697.56622 451.23970,696.83305 C 451.93431,696.09987 453.62704,693.81557 455.00131,691.75683 C 457.45287,688.08427 459.00000,687.01763 459.00000,689.00000 C 459.00000,689.55000 460.15156,690.00000 461.55902,690.00000 C 463.01038,690.00000 463.85052,690.43284 463.50000,691.00000 C 463.16008,691.55000 463.55697,692.00000 464.38197,692.00000 C 465.20697,692.00000 466.16060,691.54916 466.50116,690.99813 C 467.19054,689.88269 462.31929,687.68464 460.98518,688.50916 C 459.13200,689.65449 458.98412,686.82573 460.76217,684.24318 C 461.80092,682.73443 463.25480,679.92500 463.99300,678.00000 C 464.73121,676.07500 465.81280,673.87975 466.39654,673.12167 C 466.98028,672.36360 468.62474,669.21360 470.05090,666.12167 C 481.69776,640.87111 482.06295,640.23741 485.34554,639.58089 C 487.16384,639.21723 488.62790,639.38369 488.82552,639.97656 C 489.27873,641.33620 494.31051,641.28949 495.68713,639.91287 C 496.46998,639.13002 496.96233,639.13002 497.44615,639.91287 C 497.82023,640.51814 497.42702,641.00000 496.55902,641.00000 C 494.81266,641.00000 494.46568,642.55174 496.00000,643.50000 C 496.55000,643.83992 496.99311,644.65398 496.98469,645.30902 C 496.97549,646.02463 496.58246,645.90129 496.00000,645.00000 C 495.46684,644.17500 495.03063,643.95000 495.03063,644.50000 C 495.03063,645.05000 495.43217,646.13431 495.92295,646.90958 C 496.66804,648.08657 497.32568,648.10774 499.90854,647.03788 C 502.11422,646.12426 503.36985,646.06206 504.28444,646.82110 C 504.98989,647.40657 506.15078,647.52485 506.86420,647.08393 C 507.74236,646.54120 507.13132,646.07626 504.97239,645.64448 C 502.74883,645.19977 501.95059,644.57115 502.33555,643.56795 C 502.63920,642.77665 502.35043,641.91067 501.69382,641.64356 C 501.03722,641.37644 501.48594,641.12237 502.69098,641.07895 C 503.89602,641.03553 505.17904,641.48068 505.54213,642.06817 C 505.90523,642.65567 506.81737,642.90032 507.56913,642.61185 C 508.32088,642.32337 509.20192,642.51769 509.52699,643.04367 C 509.85207,643.56965 509.30398,644.03553 508.30902,644.07895 C 507.25952,644.12475 507.02482,644.36966 507.75000,644.66228 C 509.55231,645.38953 509.28708,648.35556 507.17295,651.11514 C 504.56721,654.51644 500.49355,663.26847 500.81936,664.76548 C 501.15061,666.28746 497.91791,672.00000 496.72538,672.00000 C 496.26150,672.00000 496.17226,672.46971 496.52707,673.04380 C 497.37975,674.42347 495.18317,676.97986 492.15612,678.13074 C 490.40263,678.79742 489.08414,678.62992 487.40020,677.52657 C 484.43945,675.58661 484.33795,675.59966 483.70989,678.00138 C 483.37393,679.28610 483.57617,679.76194 484.27469,679.33023 C 484.87319,678.96034 484.15622,680.23970 482.68143,682.17324 C 481.20664,684.10679 480.01001,686.09631 480.02224,686.59439 C 480.03447,687.09248 480.92446,686.37500 482.00000,685.00000 C 483.07554,683.62500 483.96553,683.05046 483.97776,683.72325 C 484.01039,685.51791 479.73744,694.00000 478.80073,694.00000 C 478.36033,694.00000 478.00000,694.67500 478.00000,695.50000 C 478.00000,696.32500 477.61848,697.00000 477.15218,697.00000 C 476.68588,697.00000 476.26773,698.28822 476.22297,699.86270 C 476.10623,703.96846 473.36161,710.00000 471.61004,710.00000 C 469.29521,710.00000 468.76121,708.23745 470.72897,707.09187 C 472.25653,706.20256 472.12194,706.05664 469.75000,706.03041 C 466.75200,705.99726 466.51148,706.58490 467.96179,710.39950 C 468.91854,712.91596 467.74994,715.02245 466.51008,713.01631 C 466.16462,712.45734 464.83167,712.00000 463.54797,712.00000 C 460.33764,712.00000 458.94608,708.21554 460.97583,705.00487 C 461.78621,703.72300 462.12895,703.79409 463.37875,705.50330 C 464.18050,706.59976 465.18577,707.14756 465.61268,706.72065 C 466.03960,706.29374 465.37733,704.94444 464.14097,703.72222 C 462.04968,701.65484 461.82365,701.62193 460.89684,703.25000 C 460.34892,704.21250 459.44642,705.00000 458.89129,705.00000 C 458.33616,705.00000 458.16008,704.55000 458.50000,704.00000 C 459.23100,702.81722 458.25248,702.81722 455.50000,704.00000 C 453.55137,704.83735 453.55480,704.86123 455.63337,704.92971 C 457.83875,705.00237 459.57065,708.52928 457.90612,709.55802 C 456.39992,710.48890 456.89064,711.97920 458.50000,711.36163 C 459.47378,710.98795 460.00000,711.38731 460.00000,712.50000 C 460.00000,713.55913 460.53544,714.00851 461.40146,713.67619 C 462.24041,713.35425 463.00990,713.92987 463.31859,715.11028 C 463.74677,716.74764 463.46660,716.97131 461.66712,716.42869 C 460.47521,716.06928 459.07250,715.37579 458.55000,714.88761 C 456.76612,713.22089 456.28939,713.99959 456.49151,718.25000 C 456.60266,720.58750 457.21254,722.55625 457.84680,722.62500 C 458.48106,722.69375 459.70156,722.80625 460.55902,722.87500 C 461.41648,722.94375 461.83992,723.45000 461.50000,724.00000 C 461.16008,724.55000 461.32723,725.00000 461.87143,725.00000 C 462.41564,725.00000 463.00470,725.99405 463.18045,727.20901 C 463.37668,728.56549 464.46482,729.68481 466.00000,730.10933 C 470.53582,731.36360 465.62446,730.95656 459.00000,729.52919 C 455.42500,728.75888 452.12867,728.49352 451.67482,728.93950 C 451.22097,729.38548 452.89798,730.05753 455.40151,730.43296 C 457.90504,730.80839 460.24523,731.58777 460.60192,732.16491 C 461.00310,732.81403 460.53523,733.00603 459.37523,732.66829 C 458.34385,732.36801 454.35000,731.81028 450.50000,731.42890 C 446.65000,731.04752 442.48750,730.35614 441.25000,729.89249 C 440.01250,729.42885 439.00000,729.43326 439.00000,729.90231 C 439.00000,731.97271 442.50660,733.20146 451.37765,734.23955 C 456.61460,734.85238 460.66797,735.72821 460.38514,736.18584 C 460.10231,736.64347 460.13626,737.85396 460.46058,738.87580 C 460.91314,740.30170 462.74960,741.00784 468.35846,741.91265 C 473.54522,742.74936 475.66667,743.51372 475.66667,744.54579 C 475.66667,745.61501 474.40270,746.00000 470.89235,746.00000 C 468.26648,746.00000 465.86586,746.40803 465.55764,746.90674 C 465.24942,747.40545 465.93167,747.56912 467.07375,747.27046 C 468.68925,746.84800 469.07808,747.13979 468.82513,748.58477 C 468.56247,750.08526 469.61567,750.74224 474.30700,752.00426 C 480.23705,753.59951 481.95758,755.03355 481.98469,758.40351 C 482.00715,761.19579 486.86384,771.00000 488.22458,771.00000 C 490.33527,771.00000 495.00000,765.67341 495.00000,763.26325 C 495.00000,761.96384 494.31344,759.57303 493.47432,757.95034 C 492.10055,755.29376 493.00298,753.57777 494.50000,756.00000 C 495.47425,757.57638 500.00000,757.20372 500.00000,755.54712 C 500.00000,754.74804 498.17184,752.62510 495.93742,750.82947 C 492.15326,747.78843 491.99906,747.47257 493.68742,746.22052 C 495.42739,744.93019 495.42045,744.81742 493.51423,743.40553 C 490.92075,741.48460 479.58522,738.00000 475.92985,738.00000 C 474.02736,738.00000 472.68529,737.28048 471.91977,735.85008 C 470.78225,733.72461 470.84337,733.70776 477.29502,734.36875 C 482.07113,734.85808 483.93097,734.70709 484.23146,733.80561 C 484.55533,732.83402 485.74555,732.82860 489.86691,733.77992 C 494.33341,734.81091 495.44161,734.75675 497.50192,733.40679 C 498.82749,732.53824 500.44747,732.15852 501.10187,732.56296 C 501.95720,733.09158 502.11105,732.57858 501.64912,730.73812 C 501.13067,728.67245 501.34395,728.22997 502.75328,728.44732 C 503.71397,728.59549 504.78719,728.27281 505.13820,727.73024 C 505.48920,727.18768 506.28016,727.05511 506.89587,727.43564 C 507.68131,727.92107 507.56548,728.57738 506.50767,729.63519 C 504.62448,731.51837 504.56975,733.00000 506.38337,733.00000 C 507.76577,733.00000 508.96058,730.10406 508.98635,726.69098 C 508.99386,725.69602 508.55000,725.16008 508.00000,725.50000 C 506.24968,726.58176 504.77382,724.97745 506.07595,723.40849 C 506.74671,722.60027 506.99231,720.71153 506.64950,718.99752 C 506.12472,716.37361 506.32733,716.00876 508.27500,716.07029 C 510.33012,716.13520 510.35236,716.19839 508.56638,716.89778 C 507.18725,717.43785 506.98384,717.87198 507.85705,718.41165 C 508.55309,718.84183 508.80937,720.02525 508.45102,721.15433 C 507.98252,722.63043 508.36262,723.28207 509.93142,723.69232 C 511.35600,724.06485 511.73931,724.61093 511.11056,725.37214 C 510.59819,725.99246 509.86823,728.16296 509.48843,730.19546 C 508.87914,733.45608 509.02746,733.87363 510.74894,733.74396 C 512.24946,733.63093 512.67691,732.89304 512.60000,730.54849 C 512.51306,727.89821 514.26385,725.13030 516.08948,725.03180 C 516.41370,725.01431 517.19155,726.12500 517.81805,727.50000 C 518.47354,728.93865 518.55501,730.00000 518.00995,730.00000 C 517.48900,730.00000 517.33627,730.71273 517.67055,731.58385 C 518.46652,733.65811 519.96255,731.50286 519.98469,728.25000 C 519.99421,726.85087 520.61133,726.00000 521.61658,726.00000 C 522.80170,726.00000 523.10560,726.66723 522.75525,728.50000 C 522.49240,729.87500 522.60869,731.00000 523.01367,731.00000 C 523.41865,731.00000 524.01818,729.65911 524.34595,728.02024 C 524.77357,725.88213 525.37217,725.20559 526.46521,725.62502 C 527.30303,725.94652 527.70845,726.66273 527.36614,727.21659 C 527.02384,727.77045 527.29788,728.56607 527.97513,728.98463 C 528.92757,729.57327 528.94144,730.24090 528.03638,731.93202 C 527.02810,733.81601 527.10987,734.07562 528.62765,733.80919 C 529.66394,733.62728 530.86936,734.44202 531.55586,735.78837 C 532.19761,737.04697 533.54118,738.67524 534.54156,739.40673 C 536.28668,740.68279 536.27897,740.78033 534.35143,741.81192 C 532.92033,742.57782 530.26807,742.57923 525.13128,741.81682 C 518.44448,740.82436 515.76773,741.10106 517.29369,742.62703 C 518.55905,743.89238 525.33426,744.97073 547.25000,747.39489 C 550.00062,747.69914 551.00000,747.43529 551.00000,746.40484 C 551.00000,744.58242 553.84453,744.61927 558.34576,746.50000 C 564.32689,748.99908 565.58495,748.55407 567.01903,743.43205 C 567.89310,740.31017 568.56253,739.28132 569.13367,740.18205 C 569.59331,740.90692 569.96937,741.05000 569.96937,740.50000 C 569.96937,739.95000 569.58396,738.89180 569.11290,738.14844 C 568.63139,737.38858 568.66765,735.19963 569.19573,733.14844 C 569.71234,731.14180 570.49295,723.59435 570.93041,716.37634 C 571.36788,709.15833 572.12246,702.63333 572.60726,701.87634 C 573.09207,701.11935 574.07008,697.35000 574.78063,693.50000 C 575.49118,689.65000 576.19940,686.05000 576.35446,685.50000 C 576.50951,684.95000 576.96940,682.92500 577.37642,681.00000 C 578.43422,675.99727 580.10491,673.00000 581.83565,673.00000 C 582.65937,673.00000 583.04859,672.71526 582.70058,672.36725 C 581.76867,671.43534 586.20635,668.23487 589.57892,667.40655 C 591.18551,667.01197 594.06696,665.63407 595.98213,664.34456 C 600.69469,661.17154 601.65991,661.37365 602.47220,665.70349 C 603.32008,670.22312 606.04579,675.71254 609.45220,679.76083 C 610.85349,681.42616 611.99257,683.39875 611.98348,684.14436 C 611.97440,684.88996 609.92650,687.47073 607.43260,689.87939 C 604.92558,692.30074 602.63969,695.55156 602.31996,697.15020 C 602.00190,698.74048 601.32795,700.29732 600.82228,700.60984 C 600.28687,700.94074 600.36568,701.73569 601.01098,702.51322 C 604.43095,706.63404 598.22276,715.67919 586.46623,723.70451 C 583.18480,725.94450 579.40906,728.95234 578.07569,730.38861 C 575.33766,733.33792 574.00000,733.70268 574.00000,731.50000 C 574.00000,729.81861 571.45485,729.45501 570.50000,731.00000 C 570.16008,731.55000 570.66953,732.00000 571.63211,732.00000 C 573.25851,732.00000 573.25276,732.09469 571.55083,733.33917 C 569.99155,734.47935 569.94457,734.76475 571.23470,735.25982 C 572.95710,735.92077 573.30755,740.84824 571.76742,742.75000 C 571.08231,743.59598 571.08764,744.00000 571.78394,744.00000 C 573.59271,744.00000 571.80361,748.13435 569.61155,749.02005 C 567.90205,749.71078 567.83321,749.88530 569.25000,749.93661 C 571.06556,750.00237 571.33907,751.10167 571.00425,756.98737 C 570.79159,760.72560 568.50062,766.00000 567.08954,766.00000 C 566.61704,766.00000 565.92300,768.46075 565.54722,771.46832 C 565.00264,775.82706 564.26810,777.43807 561.92725,779.40776 C 556.53092,783.94847 542.46960,784.14854 529.43797,779.87003 C 516.78676,775.71641 511.91302,776.61127 495.00000,786.19310 C 491.88664,787.95694 486.03194,789.55307 476.00000,791.37298 C 459.07179,794.44394 452.38560,794.60710 445.47559,792.11789 z M 452.00000,774.66898 C 452.00000,772.85861 448.17358,771.13767 444.38708,771.24505 C 442.48110,771.29910 440.37247,770.49327 438.94852,769.16667 C 437.66942,767.97500 435.92023,766.98025 435.06144,766.95611 C 433.65127,766.91647 429.43638,765.51523 424.75000,763.52807 C 423.66101,763.06631 423.00000,763.22540 423.00000,763.94924 C 423.00000,764.58901 425.13750,765.99867 427.75000,767.08182 C 430.36250,768.16496 434.35474,769.97155 436.62163,771.09645 C 440.07166,772.80846 448.50254,775.58302 451.25000,775.91058 C 451.66250,775.95976 452.00000,775.40104 452.00000,774.66898 z M 473.21571,764.07816 C 475.74971,762.47114 478.08781,761.42114 478.41149,761.74482 C 478.73517,762.06850 479.00000,761.43677 479.00000,760.34098 C 479.00000,758.10044 475.52767,754.52697 472.50000,753.65166 C 470.40826,753.04693 450.44762,750.75878 445.83333,750.59478 C 444.36667,750.54265 442.82917,750.16250 442.41667,749.75000 C 442.00417,749.33750 440.36208,749.00000 438.76759,749.00000 C 437.17310,749.00000 434.98278,748.52597 433.90022,747.94660 C 432.81766,747.36723 429.80974,747.02973 427.21596,747.19660 C 422.87737,747.47572 423.20375,747.61344 431.29460,748.91765 C 436.13162,749.69736 440.31283,750.69715 440.58616,751.13940 C 440.85949,751.58166 440.33994,753.07775 439.43161,754.46403 C 438.52328,755.85032 438.01571,757.59856 438.30369,758.34901 C 438.91197,759.93417 449.39980,762.75889 458.02373,763.66027 C 461.30560,764.00329 464.49794,764.89506 465.11783,765.64197 C 466.74645,767.60434 468.05350,767.35193 473.21571,764.07816 z M 550.59609,765.42904 C 553.56824,764.56501 556.00000,763.46657 556.00000,762.98806 C 556.00000,761.18401 554.08787,761.06581 550.35623,762.63920 C 548.23531,763.53346 545.28264,764.23614 543.79476,764.20072 C 539.86639,764.10719 534.02321,761.10309 534.64054,759.49435 C 535.64591,756.87441 532.90407,754.08973 525.75251,750.46742 C 517.92552,746.50301 506.28518,742.70571 504.79077,743.62931 C 504.28339,743.94289 509.23958,746.80317 515.80451,749.98550 C 526.78777,755.30958 531.77244,758.53777 527.13929,757.32617 C 526.02062,757.03364 525.03343,757.47049 524.66939,758.41917 C 524.03685,760.06755 526.03391,761.19077 536.50000,765.07312 C 542.67408,767.36337 543.84089,767.39283 550.59609,765.42904 z M 429.32190,751.39648 C 429.05382,750.69787 428.19931,750.37002 427.42298,750.66793 C 425.71520,751.32326 426.34545,752.66667 428.36067,752.66667 C 429.15743,752.66667 429.58998,752.09508 429.32190,751.39648 z M 432.38156,751.44806 C 432.72305,750.55814 432.55541,750.15674 431.98855,750.50708 C 431.44485,750.84310 431.00000,751.54148 431.00000,752.05902 C 431.00000,753.49745 431.71677,753.18048 432.38156,751.44806 z M 394.41617,749.17345 C 394.37006,747.61876 394.00600,745.81873 393.60715,745.17337 C 392.48686,743.36070 393.58753,743.72239 400.73636,747.51610 C 404.38050,749.44995 407.61810,750.66554 407.93103,750.21741 C 408.86165,748.88473 416.66081,746.93261 418.39533,747.59821 C 419.27790,747.93688 420.00000,747.98325 420.00000,747.70125 C 420.00000,746.98170 407.61225,741.26372 403.16993,739.93277 C 398.55354,738.54966 397.37581,737.63733 392.60680,731.75000 C 388.28014,726.40875 386.03675,725.86652 383.19769,729.47580 C 381.34238,731.83445 381.16117,731.86994 379.36828,730.22580 C 378.33322,729.27661 376.85088,727.26250 376.07419,725.75000 C 374.63124,722.94002 372.00000,721.98281 372.00000,724.26787 C 372.00000,726.31580 377.00592,733.35558 385.49803,743.25000 C 386.32411,744.21250 387.00000,745.37813 387.00000,745.84029 C 387.00000,746.40863 393.79199,751.99577 394.48812,752.00007 C 394.49465,752.00011 394.46228,750.72813 394.41617,749.17345 z M 461.58333,746.00000 C 462.36250,746.00000 463.00689,746.56250 463.01531,747.25000 C 463.02550,748.08124 463.35127,747.99748 463.98773,747.00000 C 464.73349,745.83123 464.34367,745.36051 462.22242,744.86831 C 456.99913,743.65635 454.99565,743.90363 455.07895,745.75000 C 455.12611,746.79544 455.36096,746.99674 455.66228,746.25000 C 456.42031,744.37141 458.98860,744.74726 459.07895,746.75000 C 459.12611,747.79544 459.36096,747.99674 459.66228,747.25000 C 459.93969,746.56250 460.80417,746.00000 461.58333,746.00000 z M 447.00000,742.00000 C 446.20686,741.50981 445.33292,741.33375 445.05792,741.60875 C 444.78292,741.88375 445.20686,742.50981 446.00000,743.00000 C 446.79314,743.49019 447.66708,743.66625 447.94208,743.39125 C 448.21708,743.11625 447.79314,742.49019 447.00000,742.00000 z M 452.00000,742.39301 C 452.00000,742.17686 451.32500,742.00000 450.50000,742.00000 C 449.67500,742.00000 449.00000,742.43588 449.00000,742.96862 C 449.00000,743.50135 449.67500,743.67821 450.50000,743.36163 C 451.32500,743.04504 452.00000,742.60917 452.00000,742.39301 z M 438.00000,740.95818 C 438.00000,739.94008 427.80233,734.93656 422.94473,733.57126 C 418.59047,732.34743 412.54409,729.66172 410.74387,728.15184 C 409.77800,727.34174 408.69326,726.97341 408.33333,727.33333 C 406.86858,728.79809 411.67944,732.05670 419.46672,734.87447 C 424.00991,736.51839 429.25097,738.79246 431.11353,739.92797 C 434.76399,742.15347 438.00000,742.63757 438.00000,740.95818 z M 503.60417,730.27083 C 503.27188,729.93854 503.03553,730.52917 503.07895,731.58333 C 503.12693,732.74828 503.36389,732.98523 503.68311,732.18750 C 503.97198,731.46563 503.93646,730.60312 503.60417,730.27083 z M 516.00000,730.88197 C 516.00000,730.33197 515.55000,730.16008 515.00000,730.50000 C 514.45000,730.83992 514.00000,731.56803 514.00000,732.11803 C 514.00000,732.66803 514.45000,732.83992 515.00000,732.50000 C 515.55000,732.16008 516.00000,731.43197 516.00000,730.88197 z M 577.00000,726.94098 C 577.00000,726.35852 576.55000,726.16008 576.00000,726.50000 C 575.45000,726.83992 575.00000,727.31648 575.00000,727.55902 C 575.00000,727.80156 575.45000,728.00000 576.00000,728.00000 C 576.55000,728.00000 577.00000,727.52344 577.00000,726.94098 z M 420.50000,721.00000 C 420.16008,720.45000 419.43197,720.00000 418.88197,720.00000 C 418.33197,720.00000 418.16008,720.45000 418.50000,721.00000 C 418.83992,721.55000 419.56803,722.00000 420.11803,722.00000 C 420.66803,722.00000 420.83992,721.55000 420.50000,721.00000 z M 449.00000,718.00000 C 450.12236,715.80000 451.48150,714.00000 452.02032,714.00000 C 453.35802,714.00000 453.25194,715.34806 451.80000,716.80000 C 450.94600,717.65400 450.92657,718.00000 451.73261,718.00000 C 453.12467,718.00000 454.37020,714.40802 453.47846,712.96514 C 453.12061,712.38613 453.37166,711.25710 454.03635,710.45620 C 454.87751,709.44267 454.90625,709.00000 454.13092,709.00000 C 453.51823,709.00000 452.45489,709.90000 451.76793,711.00000 C 451.08097,712.10000 449.71858,713.00000 448.74040,713.00000 C 447.33960,713.00000 447.07340,713.58402 447.48693,715.75000 C 447.77570,717.26250 447.74677,717.93750 447.42265,717.25000 C 446.40004,715.08093 445.40050,715.89221 445.57459,718.75000 C 445.85164,723.29813 446.35311,723.18833 449.00000,718.00000 z M 448.36163,710.50000 C 448.67821,709.67500 449.62635,709.00000 450.46862,709.00000 C 452.15633,709.00000 452.53494,707.44864 451.06842,706.54229 C 450.55605,706.22563 449.50319,706.87121 448.72873,707.97691 C 447.95426,709.08261 447.02347,709.69014 446.66031,709.32697 C 446.29714,708.96380 446.00000,709.41667 446.00000,710.33333 C 446.00000,712.40796 447.58651,712.51993 448.36163,710.50000 z M 464.00000,708.00000 C 464.00000,707.45000 463.55000,707.00000 463.00000,707.00000 C 462.45000,707.00000 462.00000,707.45000 462.00000,708.00000 C 462.00000,708.55000 462.45000,709.00000 463.00000,709.00000 C 463.55000,709.00000 464.00000,708.55000 464.00000,708.00000 z M 460.00000,699.50000 C 460.00000,698.67500 460.90000,697.10000 462.00000,696.00000 C 464.00000,694.00000 464.00000,694.00000 461.94098,694.00000 C 460.80852,694.00000 460.16008,694.45000 460.50000,695.00000 C 460.83992,695.55000 460.51462,696.00000 459.77712,696.00000 C 459.03962,696.00000 458.34311,697.12500 458.22931,698.50000 C 458.11551,699.87500 458.46736,701.00000 459.01120,701.00000 C 459.55504,701.00000 460.00000,700.32500 460.00000,699.50000 z M 471.00000,696.28287 C 471.00000,695.80988 471.90000,693.65759 473.00000,691.50000 C 474.10000,689.34241 475.00000,686.99727 475.00000,686.28856 C 475.00000,685.57985 475.67500,685.00000 476.50000,685.00000 C 477.41954,685.00000 478.00000,684.06481 478.00000,682.58333 C 478.00000,681.25417 478.56250,679.93969 479.25000,679.66228 C 480.04592,679.34112 479.90877,679.12922 478.87244,679.07895 C 476.80738,678.97878 475.56471,680.55536 474.08472,685.15318 C 472.85744,688.96593 468.85322,694.00000 467.04775,694.00000 C 466.47149,694.00000 466.00000,694.45000 466.00000,695.00000 C 466.00000,695.55000 465.29844,696.00000 464.44098,696.00000 C 463.58352,696.00000 463.14793,696.43035 463.47301,696.95633 C 463.79808,697.48231 464.66657,697.68144 465.40298,697.39886 C 466.13940,697.11627 467.02369,697.61936 467.36808,698.51683 C 467.92521,699.96868 468.15996,699.98289 469.49713,698.64573 C 470.32371,697.81915 471.00000,696.75586 471.00000,696.28287 z M 459.00000,692.80000 C 459.00000,691.18458 458.70429,690.89571 457.88713,691.71287 C 457.27506,692.32494 457.07661,693.31494 457.44615,693.91287 C 458.48054,695.58655 459.00000,695.21451 459.00000,692.80000 z M 466.60417,685.27083 C 466.27188,684.93854 466.03553,685.52917 466.07895,686.58333 C 466.12693,687.74828 466.36389,687.98523 466.68311,687.18750 C 466.97198,686.46563 466.93646,685.60312 466.60417,685.27083 z M 469.44026,683.61800 C 469.07887,682.17810 468.38197,681.00000 467.89159,681.00000 C 466.73495,681.00000 466.76562,681.39149 468.16244,684.45717 C 469.59964,687.61148 470.32328,687.13624 469.44026,683.61800 z M 473.00000,678.12244 C 473.00000,677.63979 472.32500,676.68469 471.50000,676.00000 C 470.24680,674.95993 470.00000,675.10432 470.00000,676.87756 C 470.00000,678.09751 470.63782,679.00000 471.50000,679.00000 C 472.32500,679.00000 473.00000,678.60510 473.00000,678.12244 z M 469.00000,675.88197 C 469.00000,675.33197 468.55000,675.16008 468.00000,675.50000 C 467.45000,675.83992 467.00000,676.56803 467.00000,677.11803 C 467.00000,677.66803 467.45000,677.83992 468.00000,677.50000 C 468.55000,677.16008 469.00000,676.43197 469.00000,675.88197 z M 491.21667,669.81667 C 490.56583,669.16583 489.68833,669.00244 489.26667,669.45357 C 488.84500,669.90470 489.06530,670.47564 489.75623,670.72231 C 490.44716,670.96899 490.71864,671.69489 490.35953,672.33541 C 489.93986,673.08394 490.18771,673.05343 491.05330,672.25000 C 492.09019,671.28756 492.12778,670.72778 491.21667,669.81667 z M 472.60417,669.27083 C 472.27188,668.93854 472.03553,669.52917 472.07895,670.58333 C 472.12693,671.74828 472.36389,671.98523 472.68311,671.18750 C 472.97198,670.46563 472.93646,669.60312 472.60417,669.27083 z M 493.24475,656.50000 C 492.89440,654.66723 493.19830,654.00000 494.38342,654.00000 C 495.27254,654.00000 496.03163,654.56250 496.07029,655.25000 C 496.14546,656.58687 497.81192,653.19744 497.92971,651.46811 C 497.96837,650.90057 496.96466,650.35053 495.69925,650.24580 C 493.10055,650.03072 489.43035,655.07314 490.38149,657.55178 C 491.37117,660.13084 493.77036,659.24954 493.24475,656.50000 z M 418.00000,653.44098 C 418.00000,652.58352 417.54266,652.16462 416.98369,652.51008 C 416.42472,652.85554 416.22627,653.55710 416.54271,654.06910 C 417.39994,655.45614 418.00000,655.19751 418.00000,653.44098 z M 485.38499,648.53518 C 487.87814,644.73015 487.23365,643.16257 484.46840,646.30576 C 483.11078,647.84893 482.00000,649.53643 482.00000,650.05576 C 482.00000,651.80704 483.75889,651.01693 485.38499,648.53518 z M 421.66853,645.33520 C 420.81587,644.48254 418.90658,646.03982 419.54271,647.06910 C 419.85914,647.58109 419.61492,648.00000 419.00000,648.00000 C 418.38508,648.00000 418.18051,648.48305 418.54539,649.07344 C 418.95850,649.74186 419.77388,649.34015 420.70641,648.00878 C 421.53008,646.83281 421.96304,645.62970 421.66853,645.33520 z M 491.52381,644.61905 C 493.23244,642.91041 492.18975,641.59763 490.34201,643.13112 C 489.31311,643.98503 489.00000,643.86634 489.00000,642.62244 C 489.00000,641.73010 488.55000,641.00000 488.00000,641.00000 C 486.69001,641.00000 486.73858,641.60854 488.24055,644.01357 C 489.71624,646.37653 489.75853,646.38433 491.52381,644.61905 z M 394.00000,640.44098 C 394.00000,639.58352 393.54266,639.16462 392.98369,639.51008 C 392.42472,639.85554 392.22627,640.55710 392.54271,641.06910 C 393.39994,642.45614 394.00000,642.19751 394.00000,640.44098 z M 424.38156,635.44806 C 424.72305,634.55814 424.55541,634.15674 423.98855,634.50708 C 423.44485,634.84310 423.00000,635.54148 423.00000,636.05902 C 423.00000,637.49745 423.71677,637.18048 424.38156,635.44806 z M 27.389547,786.39498 C 18.637318,780.53319 13.761947,773.51888 13.463698,766.35953 C 13.233771,760.84023 14.625290,760.72523 20.272343,765.79688 C 24.710639,769.78293 35.699481,776.00000 38.306644,776.00000 C 39.146323,776.00000 39.983333,775.59256 40.166667,775.09458 C 40.350000,774.59660 42.975000,775.50943 46.000000,777.12310 C 49.025000,778.73676 50.492613,779.79049 49.261362,779.46473 C 47.685960,779.04791 46.352755,779.57517 44.761362,781.24440 C 40.921962,785.27159 35.409719,789.00000 33.295156,789.00000 C 32.186322,789.00000 29.528798,787.82774 27.389547,786.39498 z M 218.86633,777.36809 C 220.71781,776.56027 222.46772,776.13439 222.75502,776.42169 C 223.35720,777.02387 218.45487,779.04028 216.68490,778.91843 C 216.03321,778.87356 217.01485,778.17591 218.86633,777.36809 z M 229.73121,777.08016 C 229.29624,775.41681 229.42638,775.02638 230.16845,775.76845 C 230.74955,776.34955 231.02824,777.41527 230.78776,778.13671 C 230.53811,778.88566 230.08482,778.43236 229.73121,777.08016 z M 50.500000,775.29529 C 47.200000,773.98218 43.359151,772.86282 41.964781,772.80783 L 39.429562,772.70785 L 39.193372,761.60393 C 38.834049,744.71115 38.314814,735.84589 37.466276,732.11607 C 36.855305,729.43050 36.985721,728.82837 38.098214,729.19842 C 39.725671,729.73977 39.748385,729.92891 40.466930,748.92294 C 40.767021,756.85556 41.234727,763.56806 41.506275,763.83961 C 41.777824,764.11116 42.000000,763.35833 42.000000,762.16667 C 42.000000,759.49319 42.601486,759.48976 52.940596,762.10430 C 64.220817,764.95683 94.022975,771.12723 96.500000,771.12307 C 98.261593,771.12012 98.201991,771.28717 96.000000,772.52442 C 94.625000,773.29701 92.600000,773.90022 91.500000,773.86488 C 89.835354,773.81141 89.919193,773.65279 92.000000,772.91890 C 94.252767,772.12436 94.203320,772.09025 91.500000,772.57394 C 89.850000,772.86917 87.487500,773.09085 86.250000,773.06656 C 85.012500,773.04228 84.000000,773.43666 84.000000,773.94298 C 84.000000,774.88147 83.272414,774.85128 74.500000,773.54878 C 68.727581,772.69171 51.499852,768.31773 49.114824,767.10369 C 48.226671,766.65160 46.037500,766.00457 44.250000,765.66585 C 41.446698,765.13465 41.000000,765.32957 41.000000,767.08402 C 41.000000,768.20273 41.450730,768.83947 42.001622,768.49900 C 43.113713,767.81169 59.802391,772.62768 61.706195,774.18531 C 62.369602,774.72809 63.451631,774.83891 64.110704,774.43158 C 64.889416,773.95031 65.046499,774.11575 64.559308,774.90404 C 64.077802,775.68313 62.725676,775.87902 60.779695,775.45161 C 58.854411,775.02875 57.975592,775.15149 58.369151,775.78828 C 59.626936,777.82342 56.335194,777.61720 50.500000,775.29529 z M 224.00000,775.57037 C 224.00000,775.29537 224.90000,774.58870 226.00000,774.00000 C 227.10000,773.41130 228.00000,773.15463 228.00000,773.42963 C 228.00000,773.70463 227.10000,774.41130 226.00000,775.00000 C 224.90000,775.58870 224.00000,775.84537 224.00000,775.57037 z M 88.500000,766.06261 C 60.791164,761.23281 48.000000,758.67232 48.000000,757.95544 C 48.000000,757.57387 49.687500,756.98276 51.750000,756.64185 C 58.536307,755.52014 68.769615,755.97046 81.228274,757.93906 C 87.977723,759.00554 99.251500,760.39820 106.28111,761.03386 C 113.31072,761.66952 120.28572,762.55827 121.78111,763.00885 L 124.50000,763.82809 L 121.87500,763.91405 C 117.32100,764.06316 113.01144,765.20949 113.57525,766.12175 C 113.87378,766.60479 112.99303,767.00000 111.61803,767.00000 C 110.24303,767.00000 108.83992,767.45000 108.50000,768.00000 C 107.66869,769.34508 106.91024,769.27161 88.500000,766.06261 z M 217.06665,765.64826 C 218.47831,764.91159 220.95331,764.03252 222.56665,763.69479 C 225.02652,763.17984 224.85435,763.39280 221.50000,765.01414 C 217.02608,767.17662 213.04741,767.74571 217.06665,765.64826 z M 186.08587,763.05307 C 185.27980,762.55489 185.97249,762.05550 188.04434,761.64113 C 192.43618,760.76276 193.00000,760.82256 193.00000,762.16667 C 193.00000,762.80833 192.72873,763.06206 192.39718,762.73051 C 192.06562,762.39896 190.79056,762.50933 189.56370,762.97578 C 188.33685,763.44223 186.77182,763.47701 186.08587,763.05307 z M 217.45802,761.27552 C 217.03148,760.29899 216.72892,759.23750 216.78569,758.91667 C 216.84245,758.59583 216.23702,758.33333 215.44029,758.33333 C 214.27734,758.33333 214.33759,758.72772 215.74584,760.33339 C 217.49479,762.32750 217.49035,762.32785 214.24753,760.44965 L 210.99506,758.56587 L 215.24753,756.89298 C 219.74703,755.12291 222.27310,755.66209 224.66132,758.90231 C 226.19108,760.97782 225.22831,762.43437 223.35455,760.87929 C 222.19126,759.91384 221.95066,759.92969 222.19358,760.95573 C 222.36211,761.66758 221.87486,762.47713 221.11080,762.75473 C 220.14498,763.10564 219.97491,762.83897 220.55276,761.87973 C 221.23874,760.74099 221.10879,760.72279 219.80874,761.77552 C 218.49921,762.83594 218.10278,762.75162 217.45802,761.27552 z M 113.97572,758.67943 C 113.71407,758.43815 106.75000,757.72568 98.500000,757.09616 C 79.856129,755.67351 74.883388,754.99770 75.516884,753.97268 C 76.494071,752.39156 90.817933,751.78798 99.606914,752.95757 C 111.38358,754.52476 139.02723,756.95117 146.50000,757.07360 C 150.84914,757.14486 151.81214,757.37929 150.00000,757.92565 C 147.32368,758.73256 114.77197,759.41367 113.97572,758.67943 z M 173.72244,758.38911 C 172.06149,756.72816 173.27426,755.99792 177.75000,755.96401 C 180.36250,755.94422 186.98707,755.33664 192.47126,754.61384 C 200.30245,753.58171 202.70363,753.56077 203.65915,754.51630 C 204.61468,755.47182 203.01117,755.96654 196.18790,756.82135 C 181.59627,758.64937 174.47936,759.14603 173.72244,758.38911 z M 225.20030,756.51536 L 223.03993,754.03071 L 225.76997,752.65256 C 229.19236,750.92490 231.00000,751.52310 231.00000,754.38333 C 231.00000,756.47280 229.34701,759.00000 227.98034,759.00000 C 227.63952,759.00000 226.38850,757.88191 225.20030,756.51536 z M 206.04759,754.55734 C 205.01136,753.30877 205.02805,752.93404 206.13738,752.54150 C 206.88682,752.27631 208.76279,751.59751 210.30620,751.03305 C 212.43775,750.25350 213.80819,750.36657 216.00654,751.50338 C 219.96846,753.55217 221.00806,753.34607 218.07695,751.09293 L 215.65390,749.23033 L 218.89879,747.55234 C 221.43517,746.24072 222.45550,746.13314 223.57183,747.05962 C 225.54312,748.69564 225.36773,749.50510 222.75000,750.85246 C 220.52524,751.99755 220.52804,752.00446 223.00000,751.46874 C 225.35787,750.95773 225.33592,751.02016 222.61386,752.56673 C 221.02649,753.46862 217.65149,754.32602 215.11386,754.47205 C 212.57624,754.61809 209.78460,755.04210 208.91021,755.41430 C 207.98527,755.80802 206.78814,755.44964 206.04759,754.55734 z M 216.18750,753.31689 C 215.46562,753.02802 214.60313,753.06354 214.27083,753.39583 C 213.93854,753.72812 214.52917,753.96447 215.58333,753.92105 C 216.74828,753.87307 216.98523,753.63611 216.18750,753.31689 z M 119.50000,752.36773 C 110.15000,751.61919 101.82500,750.73453 101.00000,750.40182 C 96.952429,748.76947 131.45644,742.31481 148.00000,741.60954 C 155.42500,741.29300 165.73383,740.72892 170.90852,740.35601 C 178.23078,739.82835 180.14858,739.95057 179.55737,740.90718 C 179.13955,741.58322 178.16822,741.89479 177.39885,741.59956 C 176.62948,741.30432 176.00000,741.45364 176.00000,741.93137 C 176.00000,743.32095 193.11622,750.09789 195.06426,749.47961 C 196.03634,749.17108 197.09848,749.35033 197.42457,749.87795 C 199.72940,753.60725 153.45220,755.08586 119.50000,752.36773 z M 198.10277,748.74761 C 196.47877,747.18566 195.62363,746.88132 195.29960,747.75000 C 194.23698,750.59872 193.35480,748.63834 193.23077,743.15266 L 193.09856,737.30531 L 196.62392,736.22335 C 199.34310,735.38881 201.06849,735.46570 204.16894,736.55960 C 209.33928,738.38381 218.00000,743.09259 218.00000,744.07947 C 218.00000,744.49836 216.53750,745.16936 214.75000,745.57059 C 212.96250,745.97182 212.10183,746.50818 212.83739,746.76251 C 213.57296,747.01684 215.94148,746.42826 218.10076,745.45456 L 222.02673,743.68420 L 212.86047,739.32832 C 207.81903,736.93259 203.96769,734.69898 204.30194,734.36473 C 204.63618,734.03048 207.06748,735.02358 209.70483,736.57160 C 212.34217,738.11963 216.52500,739.75037 219.00000,740.19548 C 221.47500,740.64058 224.17500,741.19426 225.00000,741.42587 C 225.82500,741.65748 227.28750,741.88141 228.25000,741.92349 C 230.64112,742.02803 230.50482,745.65946 228.06069,746.96752 C 226.67575,747.70872 225.91693,747.67461 225.40618,746.84820 C 224.93529,746.08628 225.17076,745.93989 226.09549,746.41965 C 226.86797,746.82042 226.68001,746.47908 225.67780,745.66112 C 224.04478,744.32833 223.28909,744.42445 218.39928,746.58696 C 212.91086,749.01420 208.40341,749.77432 209.43950,748.09790 C 209.74614,747.60174 208.39697,746.25174 206.44135,745.09790 C 201.49224,742.17785 200.61212,742.51697 205.44085,745.48340 C 209.35985,747.89096 209.36817,747.90945 206.94085,748.81866 C 201.10205,751.00573 200.44510,751.00044 198.10277,748.74761 z M 198.66667,740.71429 C 198.66667,740.00714 197.81143,739.42857 196.76614,739.42857 C 194.97252,739.42857 194.96452,739.50089 196.62394,740.71429 C 197.59102,741.42143 198.44625,742.00000 198.52446,742.00000 C 198.60268,742.00000 198.66667,741.42143 198.66667,740.71429 z M 16.643260,746.48727 C 16.962530,745.65526 16.715643,744.36230 16.094623,743.61401 C 14.923603,742.20302 15.585412,739.00000 17.047972,739.00000 C 18.620734,739.00000 19.197747,741.13238 18.553805,744.56489 C 18.199368,746.45420 17.493888,748.00000 16.986072,748.00000 C 16.478256,748.00000 16.323990,747.31927 16.643260,746.48727 z M 148.63837,738.50000 C 148.95496,737.67500 149.34269,737.00000 149.50000,737.00000 C 149.65731,737.00000 150.04504,737.67500 150.36163,738.50000 C 150.70873,739.40455 150.36670,740.00000 149.50000,740.00000 C 148.63330,740.00000 148.29127,739.40455 148.63837,738.50000 z M 154.00000,736.81247 C 156.84081,735.61686 158.81595,734.83265 164.50000,732.64357 L 168.50000,731.10306 L 165.13337,731.05153 C 162.27030,731.00771 161.84493,730.70100 162.28949,729.00100 C 162.89300,726.69317 161.14786,725.14272 160.01320,726.97865 C 159.51472,727.78520 159.02914,727.85616 158.61324,727.18323 C 158.26303,726.61657 159.44428,725.14690 161.23824,723.91731 C 166.36065,720.40640 171.00000,714.86265 171.00000,712.25261 C 171.00000,709.43452 169.52992,706.35620 166.70072,703.25000 C 164.65285,701.00162 164.65283,701.00000 166.67229,701.00000 C 167.78379,701.00000 170.23438,702.49678 172.11806,704.32618 C 174.00173,706.15558 176.03846,707.48718 176.64413,707.28529 C 177.24980,707.08340 177.99736,707.88189 178.30537,709.05972 C 178.61338,710.23755 179.29852,710.93354 179.82791,710.60636 C 180.35729,710.27918 181.05941,710.71242 181.38815,711.56913 C 181.71690,712.42583 182.39190,712.87583 182.88815,712.56913 C 183.38441,712.26242 184.06258,712.72071 184.39522,713.58753 C 185.27004,715.86730 185.14035,734.99851 184.25000,735.00799 C 183.83750,735.01238 178.11710,735.68738 171.53801,736.50799 C 164.95891,737.32860 157.75891,737.96954 155.53801,737.93232 C 151.77355,737.86922 151.66936,737.79336 154.00000,736.81247 z M 187.82900,726.75000 C 187.64805,722.76250 187.73212,717.70000 188.01582,715.50000 C 188.50136,711.73487 188.60411,711.62825 189.76582,713.68426 C 190.44462,714.88560 191.00000,716.79810 191.00000,717.93426 C 191.00000,719.07042 191.45000,720.00000 192.00000,720.00000 C 192.55000,720.00000 193.00000,718.65000 193.00000,717.00000 C 193.00000,715.35000 192.59814,714.00000 192.10699,714.00000 C 191.61583,714.00000 190.96375,713.34792 190.65792,712.55093 C 190.28626,711.58241 190.58241,711.28626 191.55093,711.65792 C 192.59449,712.05837 193.03311,711.41447 193.11831,709.35699 L 193.23663,706.50000 L 193.86831,709.43669 C 194.37314,711.78362 195.67420,712.95240 200.34684,715.25652 C 203.56260,716.84224 206.02038,718.31296 205.80856,718.52477 C 205.37040,718.96293 199.14076,716.89436 197.25000,715.68289 C 194.33002,713.81195 192.80831,717.95117 195.44630,720.58916 C 196.24177,721.38463 199.90653,723.38772 203.59022,725.04048 C 207.27391,726.69324 210.08254,728.25080 209.83161,728.50172 C 209.58069,728.75264 206.29987,727.84241 202.54089,726.47897 C 198.78192,725.11554 195.54746,724.00000 195.35320,724.00000 C 194.02597,724.00000 195.38477,728.75920 197.00000,729.76793 C 198.10000,730.45489 199.00000,731.47897 199.00000,732.04366 C 199.00000,732.73138 198.33967,732.71697 197.00000,732.00000 C 195.64401,731.27430 195.00000,731.26297 195.00000,731.96482 C 195.00000,732.53417 194.55000,733.00000 194.00000,733.00000 C 193.45000,733.00000 193.00000,732.32500 193.00000,731.50000 C 193.00000,730.67500 192.55000,730.00000 192.00000,730.00000 C 191.45000,730.00000 191.00000,730.90000 191.00000,732.00000 C 191.00000,733.10000 190.36055,734.00000 189.57900,734.00000 C 188.51193,734.00000 188.07606,732.19428 187.82900,726.75000 z M 193.00000,725.55902 C 193.00000,724.21648 192.55000,722.83992 192.00000,722.50000 C 191.41658,722.13942 191.00000,723.15628 191.00000,724.94098 C 191.00000,726.62344 191.45000,728.00000 192.00000,728.00000 C 192.55000,728.00000 193.00000,726.90156 193.00000,725.55902 z M 209.00000,730.00000 C 209.82500,729.46684 211.22409,729.02373 212.10908,729.01531 C 212.99407,729.00689 216.25657,727.71960 219.35908,726.15466 C 222.46159,724.58972 225.00000,723.70883 225.00000,724.19712 C 225.00000,725.52018 212.88712,731.00067 210.00000,730.98390 C 208.01889,730.97239 207.81134,730.76817 209.00000,730.00000 z M 31.507079,727.01145 C 31.156740,726.44459 31.558137,726.27695 32.448062,726.61844 C 34.180479,727.28323 34.497449,728.00000 33.059017,728.00000 C 32.541476,728.00000 31.843104,727.55515 31.507079,727.01145 z M 530.78849,724.98776 C 531.03165,723.33103 531.62871,721.72947 532.11530,721.42874 C 533.12338,720.80571 533.30368,724.04504 532.39301,726.41821 C 531.36480,729.09770 530.32176,728.16782 530.78849,724.98776 z M 27.500000,725.00000 C 25.869592,724.29939 25.812487,724.12758 27.190983,724.07029 C 28.121024,724.03163 29.160081,724.45000 29.500000,725.00000 C 30.210664,726.14988 30.175913,726.14988 27.500000,725.00000 z M 521.00000,724.00000 C 521.00000,723.45000 521.45000,723.00000 522.00000,723.00000 C 522.55000,723.00000 523.00000,723.45000 523.00000,724.00000 C 523.00000,724.55000 522.55000,725.00000 522.00000,725.00000 C 521.45000,725.00000 521.00000,724.55000 521.00000,724.00000 z M 527.00000,724.00000 C 527.00000,723.45000 527.19844,723.00000 527.44098,723.00000 C 527.68352,723.00000 528.16008,723.45000 528.50000,724.00000 C 528.83992,724.55000 528.64148,725.00000 528.05902,725.00000 C 527.47656,725.00000 527.00000,724.55000 527.00000,724.00000 z M 522.00000,719.00000 C 522.00000,716.05425 523.28176,715.02885 524.50000,717.00000 C 524.83992,717.55000 524.64148,718.00000 524.05902,718.00000 C 523.47656,718.00000 523.00000,718.47656 523.00000,719.05902 C 523.00000,719.64148 523.44485,719.84310 523.98855,719.50708 C 524.55541,719.15674 524.72305,719.55814 524.38156,720.44806 C 523.38919,723.03412 522.00000,722.18945 522.00000,719.00000 z M 528.07895,721.33179 C 528.03553,720.68927 527.74102,719.33927 527.42449,718.33179 C 526.87744,716.59057 526.90566,716.58839 527.99527,718.28768 C 528.62572,719.27090 528.92023,720.62090 528.64972,721.28768 C 528.29474,722.16267 528.13593,722.17495 528.07895,721.33179 z M 458.00000,718.00000 C 458.00000,717.45000 458.42344,717.00000 458.94098,717.00000 C 459.45852,717.00000 460.16008,717.45000 460.50000,718.00000 C 460.83992,718.55000 460.41648,719.00000 459.55902,719.00000 C 458.70156,719.00000 458.00000,718.55000 458.00000,718.00000 z M 469.03544,715.87244 C 469.01595,714.42729 469.67500,712.68469 470.50000,712.00000 C 472.49571,710.34370 472.49571,712.50886 470.50000,716.00000 L 469.07087,718.50000 L 469.03544,715.87244 z M 529.11600,714.75000 C 529.05220,712.68750 529.33750,710.99745 529.75000,710.99434 C 530.16250,710.99123 530.56529,709.22817 530.64509,707.07642 C 530.77119,703.67650 530.46108,703.08156 528.27710,702.53341 C 526.89489,702.18650 525.55684,702.10983 525.30364,702.36303 C 524.42148,703.24519 524.28135,708.00000 525.13751,708.00000 C 525.61188,708.00000 526.00000,707.10000 526.00000,706.00000 C 526.00000,704.90000 526.33750,704.00000 526.75000,704.00000 C 527.16250,704.00000 527.50000,706.02500 527.50000,708.50000 C 527.50000,711.43333 527.06481,713.00000 526.25000,713.00000 C 525.56250,713.00000 524.99311,712.21250 524.98469,711.25000 C 524.97604,710.26177 524.64957,709.93530 524.23469,710.50000 C 523.83061,711.05000 522.93750,711.61250 522.25000,711.75000 C 520.64618,712.07076 520.60764,707.79236 522.20000,706.20000 C 523.10525,705.29475 523.11133,705.00000 522.22475,705.00000 C 521.38090,705.00000 521.32051,704.28719 522.01060,702.47211 C 522.84234,700.28448 522.63485,699.79075 520.46906,698.80395 C 518.35380,697.84017 517.74676,697.96058 516.54735,699.58183 C 515.32160,701.23869 515.32237,701.79941 516.55302,703.69785 C 518.06818,706.03517 516.98102,707.67190 514.75000,706.41231 C 513.75000,705.84774 513.75000,705.97593 514.75000,707.05330 C 515.43750,707.79398 515.99723,709.77250 515.99384,711.45000 L 515.98768,714.50000 L 514.42031,711.50000 C 513.32865,709.41054 513.04561,707.21008 513.48774,704.25000 C 513.89536,701.52098 513.74274,700.00000 513.06127,700.00000 C 512.47757,700.00000 512.00000,699.29844 512.00000,698.44098 C 512.00000,697.58352 511.64101,697.10383 511.20225,697.37500 C 509.83245,698.22159 507.66401,696.26876 507.29597,693.85713 C 507.10230,692.58809 507.50977,690.18859 508.20145,688.52490 C 508.89313,686.86120 509.32748,684.71250 509.16667,683.75000 C 508.79340,681.51592 510.79290,681.50261 513.24624,683.72285 C 515.08465,685.38659 515.12746,685.34370 514.49410,682.47285 C 513.99651,680.21741 514.09538,679.86198 514.90380,681.00000 C 515.48987,681.82500 515.97627,683.21250 515.98469,684.08333 C 515.99311,684.95417 516.67500,685.66667 517.50000,685.66667 C 518.32500,685.66667 519.00000,685.04011 519.00000,684.27432 C 519.00000,683.50852 518.55000,683.16008 518.00000,683.50000 C 517.45000,683.83992 517.00000,683.44303 517.00000,682.61803 C 517.00000,681.79303 517.45734,680.83538 518.01631,680.48992 C 518.57528,680.14446 518.79294,679.47399 518.50000,679.00000 C 518.20706,678.52601 518.42472,677.85554 518.98369,677.51008 C 519.54266,677.16462 520.00000,677.53538 520.00000,678.33399 C 520.00000,679.13261 520.67500,680.04504 521.50000,680.36163 C 522.54604,680.76303 523.02127,680.26579 523.07029,678.71862 C 523.13257,676.75263 523.22333,676.71031 523.86738,678.34695 C 524.52493,680.01791 524.71960,680.04278 525.91040,678.60796 C 526.63432,677.73569 527.62880,677.27059 528.12037,677.57439 C 528.61194,677.87820 529.28924,677.40983 529.62549,676.53358 C 530.01777,675.51130 530.91109,675.15439 532.11842,675.53759 C 533.30768,675.91504 534.00563,675.65004 534.01531,674.81739 C 534.02656,673.84947 534.28778,673.89792 535.00000,675.00000 C 535.93901,676.45302 536.10985,676.30806 536.37500,673.83333 C 536.44375,673.19167 536.98135,672.50622 537.56968,672.31011 C 538.22395,672.09202 538.53364,673.29593 538.36713,675.41022 C 538.12694,678.46009 538.34547,678.81863 540.22404,678.45685 C 541.85651,678.14247 542.07871,678.32129 541.17659,679.22341 C 540.52947,679.87053 540.00689,681.09750 540.01531,681.95000 C 540.02882,683.31731 540.15026,683.32321 541.04569,682.00000 C 541.79246,680.89647 541.89600,681.29294 541.43743,683.50000 C 540.24176,689.25465 539.91020,689.90277 538.44881,689.34198 C 537.65196,689.03620 536.96696,689.17167 536.92657,689.64301 C 536.88619,690.11436 536.70722,692.18750 536.52887,694.25000 C 536.35052,696.31250 536.60856,698.00000 537.10230,698.00000 C 537.59603,698.00000 538.00000,698.40787 538.00000,698.90638 C 538.00000,699.40489 537.10000,699.57741 536.00000,699.28975 C 534.88181,698.99734 534.00000,699.25907 534.00000,699.88337 C 534.00000,700.49752 534.44718,701.00000 534.99373,701.00000 C 535.54027,701.00000 535.82304,702.01250 535.62209,703.25000 C 535.40411,704.59240 534.59988,705.44398 533.62836,705.36111 C 531.64189,705.19168 531.46389,706.85705 533.38949,707.59597 C 534.86292,708.16138 534.42178,712.00000 532.88337,712.00000 C 532.39752,712.00000 532.00000,712.67500 532.00000,713.50000 C 532.00000,714.32500 531.58300,715.00000 531.07332,715.00000 C 530.56365,715.00000 529.94085,715.78750 529.68933,716.75000 C 529.43780,717.71250 529.17980,716.81250 529.11600,714.75000 z M 526.98469,697.69098 C 526.97224,695.90975 526.78809,695.78052 526.00000,697.00000 C 524.72681,698.97012 524.72681,701.28687 526.00000,700.50000 C 526.55000,700.16008 526.99311,698.89602 526.98469,697.69098 z M 515.00000,696.50000 C 515.00000,695.67500 514.82314,695.00000 514.60699,695.00000 C 514.39083,695.00000 513.95496,695.67500 513.63837,696.50000 C 513.32179,697.32500 513.49865,698.00000 514.03138,698.00000 C 514.56412,698.00000 515.00000,697.32500 515.00000,696.50000 z M 523.36383,696.50574 C 523.04846,695.68390 522.38758,695.26046 521.89522,695.56476 C 520.48329,696.43738 520.85123,698.00000 522.46862,698.00000 C 523.36070,698.00000 523.71213,697.41340 523.36383,696.50574 z M 519.54112,695.93347 C 520.71375,694.03612 519.00350,693.56793 517.26190,695.30952 C 515.70296,696.86847 515.70022,697.00000 517.22670,697.00000 C 518.13710,697.00000 519.17858,696.52006 519.54112,695.93347 z M 528.38817,690.18094 C 528.66658,689.73046 527.56814,689.55654 525.94719,689.79444 C 524.32623,690.03235 523.00000,690.40092 523.00000,690.61350 C 523.00000,691.37548 527.89266,690.98270 528.38817,690.18094 z M 525.07431,687.08333 C 525.11518,686.21250 525.34154,684.46010 525.57733,683.18912 C 525.83344,681.80858 525.60222,681.12780 525.00302,681.49814 C 524.45136,681.83908 524.00000,682.99148 524.00000,684.05902 C 524.00000,685.12656 523.62500,686.00000 523.16667,686.00000 C 522.70833,686.00000 522.33333,686.60000 522.33333,687.33333 C 522.33333,689.23437 524.98471,688.99254 525.07431,687.08333 z M 533.00000,687.61663 C 533.00000,687.40578 532.10000,686.99791 531.00000,686.71025 C 529.90000,686.42259 529.00000,686.59511 529.00000,687.09362 C 529.00000,687.59213 529.90000,688.00000 531.00000,688.00000 C 532.10000,688.00000 533.00000,687.82748 533.00000,687.61663 z M 539.00000,684.94098 C 539.00000,684.35852 538.55000,684.16008 538.00000,684.50000 C 537.45000,684.83992 537.00000,685.31648 537.00000,685.55902 C 537.00000,685.80156 537.45000,686.00000 538.00000,686.00000 C 538.55000,686.00000 539.00000,685.52344 539.00000,684.94098 z M 531.42974,684.11369 C 531.73101,683.62622 531.05685,682.98662 529.93160,682.69236 C 528.25365,682.25357 528.09785,682.41297 529.06529,683.57867 C 530.44623,685.24261 530.69696,685.29934 531.42974,684.11369 z M 522.50000,683.00000 C 522.16008,682.45000 521.68352,682.00000 521.44098,682.00000 C 521.19844,682.00000 521.00000,682.45000 521.00000,683.00000 C 521.00000,683.55000 521.47656,684.00000 522.05902,684.00000 C 522.64148,684.00000 522.83992,683.55000 522.50000,683.00000 z M 532.50000,681.00000 C 532.16008,680.45000 531.68352,680.00000 531.44098,680.00000 C 531.19844,680.00000 531.00000,680.45000 531.00000,681.00000 C 531.00000,681.55000 531.47656,682.00000 532.05902,682.00000 C 532.64148,682.00000 532.83992,681.55000 532.50000,681.00000 z M 520.00000,714.00000 C 520.00000,713.45000 520.64844,713.00000 521.44098,713.00000 C 522.23352,713.00000 523.16008,713.45000 523.50000,714.00000 C 523.83992,714.55000 523.19148,715.00000 522.05902,715.00000 C 520.92656,715.00000 520.00000,714.55000 520.00000,714.00000 z M 507.22176,711.09485 C 507.17532,709.46149 506.65853,707.23047 506.07334,706.13703 C 505.38346,704.84799 505.33703,703.33163 505.94129,701.82448 C 506.78791,699.71280 506.88626,699.68310 507.01556,701.50000 C 507.09384,702.60000 507.38487,702.93750 507.66228,702.25000 C 507.93969,701.56250 509.20678,701.00000 510.47802,701.00000 C 512.94562,701.00000 512.93436,701.50426 510.26740,710.43484 C 509.08799,714.38419 507.32614,714.76600 507.22176,711.09485 z M 189.66667,703.83333 C 188.65833,702.73333 188.03768,701.62899 188.28744,701.37923 C 189.14041,700.52626 194.00000,703.31760 194.00000,704.66052 C 194.00000,706.58341 191.80317,706.16406 189.66667,703.83333 z M 179.25000,700.66872 C 176.91250,700.14464 175.00000,699.32977 175.00000,698.85792 C 175.00000,697.74768 175.52465,697.78573 181.47140,699.32734 C 187.37064,700.85663 185.39877,702.04733 179.25000,700.66872 z M 521.00000,672.05902 C 521.00000,671.47656 521.45000,671.00000 522.00000,671.00000 C 522.55000,671.00000 523.00000,671.19844 523.00000,671.44098 C 523.00000,671.68352 522.55000,672.16008 522.00000,672.50000 C 521.45000,672.83992 521.00000,672.64148 521.00000,672.05902 z M 538.00000,663.19578 C 538.00000,662.75346 539.34009,660.27846 540.97798,657.69578 C 543.57372,653.60272 544.37593,653.01279 547.22798,653.09968 C 550.31912,653.19385 550.36180,653.24362 548.00000,654.00000 L 545.50000,654.80064 L 547.87244,654.90032 C 549.88128,654.98472 550.05102,655.23360 548.97994,656.52417 C 548.28422,657.36246 548.00412,658.33746 548.35750,658.69083 C 548.71087,659.04421 549.01001,658.92083 549.02224,658.41667 C 549.03447,657.91250 549.86309,656.43555 550.86362,655.13455 C 552.39364,653.14506 552.64304,653.06559 552.43277,654.63455 C 551.95226,658.21993 550.75769,661.00122 549.63337,661.15231 C 547.43131,661.44825 546.48141,661.70138 544.75000,662.45364 C 543.78750,662.87183 542.32500,662.95496 541.50000,662.63837 C 540.67500,662.32179 540.00000,662.49865 540.00000,663.03138 C 540.00000,663.56412 539.55000,664.00000 539.00000,664.00000 C 538.45000,664.00000 538.00000,663.63810 538.00000,663.19578 z M 555.00000,658.05957 C 555.00000,657.61150 555.67500,656.68469 556.50000,656.00000 C 557.53636,655.13990 558.00000,655.10205 558.00000,655.87756 C 558.00000,656.49490 559.20000,657.00000 560.66667,657.00000 C 564.22641,657.00000 563.36278,657.58378 558.75000,658.29559 C 556.68750,658.61386 555.00000,658.50765 555.00000,658.05957 z M 344.00000,651.60289 C 344.00000,650.09273 344.59601,648.26113 345.32447,647.53268 C 346.42376,646.43339 346.83803,646.51101 347.76120,647.98923 C 348.66330,649.43373 348.41305,650.20278 346.43673,652.05944 L 344.00000,654.34863 L 344.00000,651.60289 z M 486.00000,636.83333 C 486.00000,636.37500 486.42344,636.00000 486.94098,636.00000 C 487.45852,636.00000 488.11373,636.37500 488.39699,636.83333 C 488.68026,637.29167 488.25682,637.66667 487.45601,637.66667 C 486.65521,637.66667 486.00000,637.29167 486.00000,636.83333 z M 430.99795,619.49461 C 430.41605,617.96409 429.70509,616.33184 429.41804,615.86738 C 429.13098,615.40292 429.59838,615.29239 430.45669,615.62176 C 432.08384,616.24615 433.67752,620.65582 432.64807,621.68526 C 432.32241,622.01092 431.57985,621.02513 430.99795,619.49461 z M 371.18325,444.18325 C 369.98246,442.98246 369.00000,441.10000 369.00000,440.00000 C 369.00000,436.93448 374.77252,431.95272 375.08333,434.75000 C 375.12917,435.16250 375.27268,436.42715 375.40224,437.56033 C 375.53181,438.69351 375.12677,441.13847 374.50216,442.99358 L 373.36651,446.36651 L 371.18325,444.18325 z M 185.66667,440.33333 C 185.30000,439.96667 185.00000,437.70115 185.00000,435.29886 L 185.00000,430.93104 L 188.00000,434.00000 C 191.50136,437.58184 191.45426,437.40288 189.42857,439.42857 C 187.72664,441.13050 186.70867,441.37533 185.66667,440.33333 z M 247.50211,416.78011 C 240.17254,415.77014 238.92818,414.99063 239.73295,411.91319 C 240.09011,410.54741 240.65992,410.27747 241.86038,410.90533 C 242.76217,411.37697 247.10000,412.07258 251.50000,412.45112 C 255.90000,412.82966 261.75000,413.33160 264.50000,413.56654 C 269.59604,414.00191 274.00000,415.67191 274.00000,417.16898 C 274.00000,418.26335 256.39092,418.00493 247.50211,416.78011 z M 277.62946,414.89729 C 276.69852,410.24262 278.05824,409.25867 280.10710,413.10438 C 282.41279,417.43215 282.41486,418.00000 280.12500,418.00000 C 278.82787,418.00000 278.05875,417.04375 277.62946,414.89729 z M 285.00000,416.62764 C 285.00000,415.87285 283.85874,411.75913 282.46386,407.48605 C 278.79053,396.23309 280.00942,395.97676 284.31783,407.09616 C 288.51243,417.92182 288.52808,418.00000 286.50000,418.00000 C 285.67500,418.00000 285.00000,417.38244 285.00000,416.62764 z M 289.24728,417.41938 C 290.02712,416.63955 286.51762,404.16954 283.50166,397.00395 C 281.51352,392.28033 281.24762,390.62340 282.03638,387.87316 C 282.56637,386.02518 283.00000,382.77288 283.00000,380.64582 C 283.00000,376.83133 283.02393,376.80708 284.75000,378.87301 C 286.25137,380.67000 287.77866,381.00541 295.50000,381.23379 C 304.13047,381.48907 304.51383,381.59776 304.83672,383.88099 C 305.47227,388.37514 304.05287,393.00000 302.03802,393.00000 C 301.00878,393.00000 299.96296,393.56250 299.71399,394.25000 C 299.36633,395.21000 298.80885,395.23417 297.31105,394.35419 C 294.55919,392.73742 290.00000,393.78778 290.00000,396.03853 C 290.00000,397.03149 291.35000,401.81303 293.00000,406.66417 C 294.65000,411.51531 296.00000,416.05044 296.00000,416.74222 C 296.00000,417.52391 294.61210,418.00000 292.33333,418.00000 C 290.31667,418.00000 288.92794,417.73872 289.24728,417.41938 z M 289.38083,403.91068 C 287.53519,397.69573 286.14470,394.15890 286.07421,395.50000 C 286.04530,396.05000 286.69568,398.75000 287.51949,401.50000 C 289.48898,408.07446 289.84627,409.00000 290.41472,409.00000 C 290.67733,409.00000 290.21209,406.70981 289.38083,403.91068 z M 300.07608,415.83333 C 300.11792,415.10000 300.77515,412.92500 301.53659,411.00000 L 302.92102,407.50000 L 302.71051,411.92228 C 302.59216,414.40855 301.95277,416.52451 301.25000,416.75561 C 300.56250,416.98169 300.03424,416.56667 300.07608,415.83333 z M 221.47974,411.23469 C 220.03588,410.19497 210.00000,388.09686 210.00000,385.95733 C 210.00000,385.51820 211.46250,384.81106 213.25000,384.38591 C 215.03750,383.96076 216.83750,383.53126 217.25000,383.43146 C 217.66250,383.33166 218.11250,383.15932 218.25000,383.04849 C 219.89347,381.72378 222.29744,382.57393 223.28753,384.82999 C 223.93200,386.29849 224.73858,387.72500 225.07994,388.00000 C 226.72889,389.32840 228.04524,393.30911 227.48989,395.28777 C 227.00149,397.02790 227.09310,397.17989 227.91918,396.00000 C 228.79084,394.75500 228.97198,394.74161 228.98469,395.92126 C 228.99311,396.70295 228.24216,398.17992 227.31592,399.20341 C 226.19245,400.44482 225.60990,402.88407 225.56592,406.53091 C 225.50023,411.97852 224.35056,413.30195 221.47974,411.23469 z M 320.58990,406.83877 C 322.56234,393.52506 324.34141,383.31822 324.83221,382.50000 C 325.16211,381.95000 325.92196,383.24304 326.52075,385.37342 L 327.60947,389.24685 L 328.86949,385.04128 C 329.87322,381.69113 330.47228,380.98160 331.81475,381.55292 C 332.74164,381.94738 335.07500,382.84250 337.00000,383.54209 C 338.92500,384.24167 340.50000,385.27927 340.50000,385.84786 C 340.50000,387.15625 330.53598,399.12018 324.68365,404.83877 C 320.79438,408.63915 320.28640,408.88732 320.58990,406.83877 z M 350.00000,407.09675 C 350.00000,405.66343 358.34139,396.89721 360.00000,396.58745 C 360.82500,396.43338 362.76679,395.78817 364.31510,395.15366 C 367.88753,393.68964 367.67231,393.61735 367.57940,396.25000 C 367.49183,398.73138 361.99552,403.32821 355.64080,406.23482 C 351.30942,408.21597 350.00000,408.41605 350.00000,407.09675 z M 194.50000,402.00000 C 194.16008,401.45000 194.35852,401.00000 194.94098,401.00000 C 195.52344,401.00000 196.00000,401.45000 196.00000,402.00000 C 196.00000,402.55000 195.80156,403.00000 195.55902,403.00000 C 195.31648,403.00000 194.83992,402.55000 194.50000,402.00000 z M 375.47690,394.81453 L 371.45380,390.66925 L 378.63759,383.86977 C 386.82955,376.11606 397.03772,369.29985 415.00000,359.58983 C 430.58344,351.16576 439.02024,344.77756 451.06202,332.28427 C 467.95346,314.75947 482.19313,295.14724 491.00000,277.27790 C 495.17161,268.81361 498.16503,265.01070 496.53194,270.25000 C 496.14621,271.48750 495.34291,274.41250 494.74683,276.75000 C 494.15075,279.08750 493.28886,281.00000 492.83152,281.00000 C 492.37419,281.00000 492.00000,281.88473 492.00000,282.96607 C 492.00000,285.49712 488.91035,292.00000 487.70780,292.00000 C 487.20082,292.00000 487.07441,292.75152 487.42688,293.67005 C 487.77935,294.58858 487.66151,295.60108 487.16502,295.92005 C 486.66852,296.23902 484.96578,298.94578 483.38115,301.93506 C 476.38902,315.12516 473.74394,319.25634 465.11130,330.46956 C 451.91765,347.60721 444.20614,355.73179 431.38083,366.00684 C 429.03054,367.88978 413.09662,378.00000 412.47935,378.00000 C 411.50161,378.00000 389.33669,391.44952 386.66533,393.66376 C 385.10626,394.95605 383.46992,395.79043 383.02902,395.51793 C 382.58812,395.24544 381.99335,395.91743 381.70731,397.01125 C 380.96878,399.83538 380.02776,399.50360 375.47690,394.81453 z M 180.00000,397.07690 C 180.00000,396.33574 178.97761,394.77774 177.72803,393.61467 C 176.47845,392.45160 172.32213,387.67500 168.49177,383.00000 C 164.66141,378.32500 159.65852,372.47500 157.37424,370.00000 C 150.82315,362.90194 135.98143,344.68524 136.40468,344.26199 C 136.61544,344.05123 135.82311,342.85977 134.64394,341.61430 C 133.46477,340.36883 131.82500,338.48361 131.00000,337.42491 C 128.70941,334.48546 121.00000,319.03745 121.00000,317.38704 C 121.00000,316.58547 120.26404,314.80642 119.36454,313.43361 C 118.46504,312.06079 118.01114,310.65553 118.35587,310.31080 C 118.70060,309.96607 118.59860,309.19261 118.12921,308.59201 C 117.65982,307.99140 116.95253,306.15000 116.55746,304.50000 C 116.09790,302.58069 118.58636,305.60141 123.46543,312.88555 C 133.53643,327.92091 138.64607,334.50476 149.48119,346.40729 C 154.44153,351.85630 160.77395,359.05630 163.55322,362.40729 C 174.53177,375.64422 185.99791,390.18741 185.95936,390.82635 C 185.87603,392.20762 180.00000,398.37076 180.00000,397.07690 z M 219.50000,380.00000 C 219.16008,379.45000 219.14343,378.57694 219.46300,378.05987 C 219.78257,377.54280 218.66535,375.54951 216.98029,373.63033 C 215.29523,371.71115 212.76426,367.97171 211.35591,365.32046 C 209.94757,362.66921 208.47306,360.27500 208.07922,360.00000 C 206.18605,358.67808 190.65537,332.61488 191.57763,332.30746 C 193.34575,331.71808 191.61453,322.90221 188.72165,317.76397 C 187.25511,315.15915 184.00303,309.41125 181.49480,304.99084 C 174.64905,292.92615 161.81451,266.65247 157.93120,256.75361 C 152.65829,243.31257 151.41209,245.97786 156.17951,260.50000 C 159.05017,269.24436 174.15557,301.03662 183.17036,317.30749 C 187.45589,325.04247 190.79695,331.53638 190.59494,331.73839 C 190.10516,332.22818 178.61825,312.12686 171.88659,299.00000 C 168.92507,293.22500 165.97238,287.93868 165.32505,287.25261 C 163.26524,285.06956 153.02630,263.41448 147.00206,248.50000 C 143.29864,239.33128 142.47420,238.04736 143.47033,243.00000 C 146.27782,256.95842 167.86591,300.60609 185.51124,328.00000 C 198.74801,348.54973 200.49120,351.41087 200.25000,352.19120 C 200.11250,352.63604 200.56250,352.88750 201.25000,352.75000 C 201.93750,352.61250 202.43831,353.28266 202.36290,354.23924 C 202.28750,355.19582 202.60775,355.74242 203.07456,355.45392 C 203.96468,354.90380 208.16440,362.23661 208.68507,365.25000 C 208.85138,366.21250 208.51372,367.00000 207.93471,367.00000 C 207.35570,367.00000 207.13567,367.41050 207.44575,367.91222 C 208.14495,369.04356 205.34865,368.71073 204.27894,367.53529 C 203.85052,367.06452 204.03010,366.98303 204.67800,367.35420 C 205.91045,368.06023 207.65616,364.32282 206.59131,363.25797 C 206.26609,362.93275 206.00000,363.24677 206.00000,363.95578 C 206.00000,364.92082 205.66263,364.96490 204.65799,364.13112 C 203.91989,363.51855 203.01989,363.31345 202.65799,363.67534 C 202.29610,364.03724 201.94375,363.58333 201.87500,362.66667 C 201.73133,360.75102 201.56341,360.07665 200.71301,358.00000 C 200.37516,357.17500 199.61430,354.60650 199.02220,352.29222 C 198.43010,349.97794 197.53639,347.83151 197.03618,347.52236 C 195.49230,346.56819 172.59499,309.26703 164.69855,294.84232 C 156.11329,279.15933 147.76590,261.43065 144.51653,251.97858 C 141.34139,242.74243 140.32025,229.21516 142.48255,225.03375 C 143.53861,222.99155 143.89686,220.80690 143.48397,218.92701 C 142.78304,215.73568 141.04787,214.93882 140.92105,217.75000 C 140.87586,218.75188 140.63015,218.97664 140.34631,218.27576 C 140.07362,217.60243 140.50186,216.12158 141.29796,214.98499 L 142.74541,212.91846 L 143.32209,215.12368 C 143.80964,216.98806 144.13844,217.13000 145.44939,216.04201 C 147.25762,214.54131 147.43981,211.76875 145.93289,208.68426 C 144.97769,206.72908 145.06930,206.75255 146.80633,208.90796 L 148.74690,211.31592 L 150.50891,208.62675 C 151.47801,207.14771 152.48405,206.15072 152.74455,206.41122 C 153.00505,206.67171 152.21232,208.29745 150.98293,210.02397 L 148.74768,213.16309 L 151.53283,220.08155 C 153.06466,223.88670 154.69643,227.00000 155.15899,227.00000 C 155.62155,227.00000 155.98943,227.78750 155.97650,228.75000 C 155.94863,230.82605 169.10358,259.22976 169.77978,258.55356 C 170.03575,258.29758 168.55961,253.90582 166.49947,248.79408 C 162.39300,238.60484 157.00000,223.19231 157.00000,221.64575 C 157.00000,219.97806 158.36738,221.93690 158.69309,224.07119 C 160.22981,234.14067 188.26986,297.00806 199.78083,316.19223 C 206.05543,326.64946 209.26436,333.00113 208.27032,332.99610 C 207.48050,332.99211 197.42186,314.83014 186.39622,293.50000 C 182.98466,286.90000 177.72630,277.09316 174.71100,271.70702 C 171.69569,266.32088 166.14716,255.18338 162.38092,246.95702 C 158.61469,238.73066 155.21582,232.00000 154.82789,232.00000 C 154.43995,232.00000 153.81795,234.03120 153.44566,236.51378 C 152.71354,241.39589 153.04097,242.51176 159.01665,255.50000 C 161.04103,259.90000 164.22793,266.86899 166.09866,270.98665 C 174.27145,288.97570 190.12453,317.52040 207.15176,344.90594 C 210.36829,350.07921 213.00000,355.12744 213.00000,356.12423 C 213.00000,357.12103 214.78558,362.11336 216.96796,367.21830 C 219.15034,372.32323 220.85457,377.51250 220.75515,378.75000 C 220.55261,381.27107 220.38731,381.43570 219.50000,380.00000 z M 151.96769,248.50000 C 151.49873,243.59149 149.94335,237.08326 147.94275,231.65832 C 144.54042,222.43239 143.30626,221.92261 142.88661,229.56983 C 142.63177,234.21370 143.14983,236.06993 147.47216,246.00000 C 149.26767,250.12500 151.03156,254.35191 151.39190,255.39313 C 152.56695,258.78842 152.74593,256.64569 151.96769,248.50000 z M 153.41965,232.57659 C 153.89431,230.04647 153.33573,227.25397 151.31714,222.06555 C 149.80525,218.17950 148.26999,215.00000 147.90545,215.00000 C 147.54090,215.00000 146.71546,216.27274 146.07112,217.82831 C 145.08990,220.19718 145.25580,221.61855 147.09244,226.57831 C 148.29850,229.83524 149.67025,233.53958 150.14077,234.81017 C 151.25460,237.81799 152.60951,236.89502 153.41965,232.57659 z M 325.00000,380.11803 C 325.00000,379.56803 325.45000,378.83992 326.00000,378.50000 C 326.55000,378.16008 327.00000,378.33197 327.00000,378.88197 C 327.00000,379.43197 326.55000,380.16008 326.00000,380.50000 C 325.45000,380.83992 325.00000,380.66803 325.00000,380.11803 z M 214.47835,379.03503 C 215.25175,377.78364 210.02731,369.86509 208.89144,370.56709 C 208.41597,370.86095 208.35838,370.20542 208.76347,369.11036 C 209.47942,367.17496 211.41523,366.24124 211.58379,367.75000 C 211.80275,369.70972 214.17443,374.27085 215.98504,376.21432 C 218.54595,378.96313 218.53388,380.00000 215.94098,380.00000 C 214.80852,380.00000 214.15034,379.56576 214.47835,379.03503 z M 332.29816,377.25000 C 333.32986,373.85257 340.98759,352.47320 341.87956,350.50000 C 342.37681,349.40000 344.68615,343.55000 347.01144,337.50000 C 349.33673,331.45000 351.81816,325.37500 352.52573,324.00000 C 353.23331,322.62500 354.56780,319.35962 355.49127,316.74361 C 356.41473,314.12759 357.46948,312.17191 357.83515,312.39765 C 358.20082,312.62339 358.55807,311.83876 358.62904,310.65404 C 358.70001,309.46932 362.89824,298.82500 367.95844,287.00000 C 373.01863,275.17500 377.89455,263.70000 378.79380,261.50000 C 383.30214,250.47053 396.31892,226.28064 407.85166,207.50000 C 414.03524,197.43027 415.24075,194.30990 412.54833,195.34308 C 411.61230,195.70227 410.54515,194.79460 409.54400,192.78774 C 408.69003,191.07592 408.10578,189.58725 408.24566,189.47959 C 408.38555,189.37193 410.14958,189.48978 412.16572,189.74149 C 415.49863,190.15758 415.78810,190.43816 415.35405,192.83182 L 414.87665,195.46450 L 417.33271,193.15716 C 422.17706,188.60613 442.19288,157.36343 448.98118,143.75706 C 451.89732,137.91199 452.67485,138.24588 450.57185,144.44013 C 449.70733,146.98650 449.00000,149.69167 449.00000,150.45161 C 449.00000,151.21156 448.52528,151.99157 447.94506,152.18498 C 447.36484,152.37839 446.80234,154.17453 446.69506,156.17642 C 446.55093,158.86583 446.18836,159.55936 445.30645,158.83251 C 444.45414,158.13005 444.15117,158.37075 444.24674,159.67441 C 444.40589,161.84534 438.77468,173.75442 434.75400,179.75000 C 433.18646,182.08750 432.12002,184.00000 432.38414,184.00000 C 432.64827,184.00000 431.09328,186.58750 428.92861,189.75000 C 426.76395,192.91250 421.09862,201.35000 416.33899,208.50000 C 411.57937,215.65000 407.37118,221.72500 406.98746,222.00000 C 406.60375,222.27500 404.92557,224.90294 403.25819,227.83986 C 401.42729,231.06479 400.01494,232.64905 399.69223,231.83986 C 399.33223,230.93714 399.13214,231.07537 399.07895,232.26357 C 399.00693,233.87233 397.22165,237.77835 396.00000,239.00000 C 395.72500,239.27500 394.15000,242.08593 392.50000,245.24650 C 390.85000,248.40708 388.97963,250.99458 388.34362,250.99650 C 387.68004,250.99851 387.41012,251.85232 387.71025,253.00000 C 387.99791,254.10000 387.82118,255.00000 387.31752,255.00000 C 386.81386,255.00000 385.83225,256.57500 385.13616,258.50000 C 384.44007,260.42500 383.37467,262.00000 382.76861,262.00000 C 382.16254,262.00000 381.95011,262.28344 382.29654,262.62987 C 382.64297,262.97630 380.89009,267.02630 378.40126,271.62987 C 375.91242,276.23344 374.15442,280.00000 374.49459,280.00000 C 374.83475,280.00000 374.45258,281.23750 373.64531,282.75000 C 372.83804,284.26250 371.61349,287.07500 370.92408,289.00000 C 370.23467,290.92500 369.10179,293.17500 368.40656,294.00000 C 367.71134,294.82500 367.13950,295.72500 367.13581,296.00000 C 367.12112,297.09474 365.66832,300.78814 363.00564,306.50000 C 356.49504,320.46623 355.15214,323.66777 354.51650,326.73853 C 354.14779,328.51973 353.43075,330.23378 352.92306,330.54755 C 352.41538,330.86132 352.00000,331.99148 352.00000,333.05902 C 352.00000,334.15032 351.31753,335.00000 350.44098,335.00000 C 349.58352,335.00000 349.13114,335.40316 349.43568,335.89592 C 349.74022,336.38868 349.31955,338.07618 348.50085,339.64592 C 347.68216,341.21566 347.00955,343.22470 347.00616,344.11045 C 347.00277,344.99620 345.86732,347.39001 344.48293,349.43002 C 343.09853,351.47004 342.42353,352.85628 342.98293,352.51055 C 344.41028,351.62840 344.31235,351.97823 341.50000,357.80794 C 340.12500,360.65818 339.00000,363.57740 339.00000,364.29510 C 339.00000,365.01279 338.46000,366.14000 337.80000,366.80000 C 337.14000,367.46000 336.90731,368.00000 337.28292,368.00000 C 337.65852,368.00000 337.07352,369.58869 335.98292,371.53042 C 334.89231,373.47215 334.00000,375.94715 334.00000,377.03042 C 334.00000,378.11369 333.49752,379.00000 332.88337,379.00000 C 332.26922,379.00000 332.00588,378.21250 332.29816,377.25000 z M 205.68977,310.75000 C 195.31472,292.33556 173.58735,250.07529 174.18960,249.48135 C 174.36032,249.31298 178.93289,257.79830 184.35087,268.33761 C 197.77188,294.44484 202.13617,302.03388 203.31120,301.30766 C 203.86000,300.96849 204.00877,301.17679 203.64180,301.77056 C 202.72108,303.26031 205.05283,308.08538 206.31617,307.30460 C 206.92889,306.92591 207.09347,307.31403 206.72612,308.27135 C 206.38855,309.15104 206.60836,310.03612 207.21459,310.23820 C 208.26161,310.58720 209.48606,315.00000 208.53588,315.00000 C 208.28751,315.00000 207.00677,313.08750 205.68977,310.75000 z M 269.34442,305.45517 C 268.50090,303.25699 271.55809,293.45492 274.51247,288.88515 C 282.94309,275.84489 295.82753,247.49009 296.14080,241.28770 C 296.46589,234.85112 297.81009,250.47650 297.90110,261.75000 L 298.00000,274.00000 L 294.46862,274.00000 C 292.25210,274.00000 290.72291,274.55851 290.36163,275.50000 C 290.04504,276.32500 289.11102,277.00000 288.28602,277.00000 C 287.27842,277.00000 287.00263,277.56446 287.44586,278.71952 C 287.80878,279.66525 287.79718,280.13052 287.42010,279.75343 C 286.77523,279.10857 283.00000,283.10215 283.00000,284.42917 C 283.00000,284.76671 281.82258,286.82209 280.38351,288.99667 C 278.84947,291.31476 278.02675,293.62733 278.39485,294.58657 C 278.84534,295.76053 278.59916,296.06016 277.52334,295.64733 C 276.69870,295.33088 276.10379,295.39328 276.20131,295.78599 C 276.45171,296.79426 271.95295,305.91104 270.87682,306.57613 C 270.38680,306.87898 269.69722,306.37455 269.34442,305.45517 z M 254.17449,288.71025 C 253.58578,288.00089 250.87975,282.22560 248.16111,275.87627 C 242.68983,263.09821 238.54862,254.96527 239.56789,259.00000 C 239.91525,260.37500 242.58835,267.03626 245.50811,273.80280 C 248.42787,280.56933 250.33235,285.94412 249.74028,285.74676 C 249.14820,285.54940 247.55913,282.71314 246.20901,279.44396 C 240.18029,264.84607 231.82163,246.84504 231.30965,247.35702 C 231.09704,247.56963 233.80197,254.66377 237.32060,263.12179 C 244.34575,280.00870 245.79051,284.06477 244.22310,282.50000 C 243.67217,281.95000 240.86290,275.87500 237.98029,269.00000 C 235.09767,262.12500 231.27842,253.57500 229.49308,250.00000 C 227.70773,246.42500 224.79220,239.99515 223.01413,235.71144 C 219.94890,228.32675 211.42498,215.24168 210.36812,216.29855 C 210.09701,216.56965 211.90190,220.82688 214.37899,225.75905 C 222.93340,242.79190 235.50255,271.83078 234.67767,272.65567 C 234.46543,272.86791 233.03441,270.21971 231.49763,266.77078 C 229.96084,263.32185 226.07019,254.94225 222.85174,248.14945 C 219.63328,241.35665 217.00000,235.67525 217.00000,235.52413 C 217.00000,234.33051 205.51554,211.33605 204.63434,210.76531 C 203.82508,210.24117 203.81808,210.02624 204.60993,210.01531 C 205.22039,210.00689 206.56469,211.12500 207.59728,212.50000 C 209.14684,214.56341 212.00000,215.95907 212.00000,214.65364 C 212.00000,213.34969 208.27711,207.02294 206.17234,204.75000 C 204.77175,203.23750 204.13765,202.00000 204.76322,202.00000 C 205.38879,202.00000 206.26164,202.56250 206.70288,203.25000 C 207.14413,203.93750 208.79678,205.62500 210.37544,207.00000 L 213.24574,209.50000 L 211.00865,205.00000 C 209.77825,202.52500 207.77857,199.15000 206.56492,197.50000 C 205.35127,195.85000 204.01839,193.82500 203.60296,193.00000 C 202.72677,191.25999 205.39376,194.20896 209.00000,198.96766 C 210.37500,200.78208 212.32654,203.21912 213.33677,204.38330 C 219.31781,211.27589 241.38912,254.43360 250.85727,277.75000 C 253.59318,284.48750 255.69964,290.00000 255.53827,290.00000 C 255.37691,290.00000 254.76321,289.41961 254.17449,288.71025 z M 222.03213,226.17864 C 219.75043,221.79293 217.01588,217.41935 215.95533,216.45958 C 214.22210,214.89103 214.25426,215.15881 216.27330,219.10727 C 219.33390,225.09263 225.42227,234.87311 225.84034,234.47596 C 226.02752,234.29815 224.31383,230.56435 222.03213,226.17864 z M 214.62354,287.46134 C 213.65856,284.94665 213.94323,284.29779 215.12207,286.32500 C 215.70576,287.32875 215.97267,288.36066 215.71520,288.61813 C 215.45773,288.87560 214.96648,288.35504 214.62354,287.46134 z M 216.94077,279.35028 C 215.18518,275.58263 211.95877,268.90000 209.77098,264.50000 C 207.58320,260.10000 206.25014,256.95000 206.80863,257.50000 C 208.42265,259.08948 221.19783,285.13550 220.63801,285.69532 C 220.36013,285.97321 218.69637,283.11794 216.94077,279.35028 z M 220.47903,280.95946 C 215.98263,272.26437 210.21059,259.01212 211.18107,259.61191 C 212.58477,260.47944 223.32240,283.01093 222.65174,283.68159 C 222.37439,283.95894 221.39668,282.73398 220.47903,280.95946 z M 211.57421,281.33278 C 211.22233,280.41581 211.28669,279.31377 211.71722,278.88381 C 212.14775,278.45384 212.56490,279.20409 212.64421,280.55102 C 212.81268,283.41187 212.46852,283.66332 211.57421,281.33278 z M 236.45194,277.90707 C 235.57226,276.20596 235.09812,274.56855 235.39829,274.26838 C 235.69845,273.96821 236.42015,274.97487 237.00205,276.50539 C 237.58395,278.03591 238.29810,279.67332 238.58904,280.14408 C 238.87999,280.61483 238.87803,281.00000 238.58470,281.00000 C 238.29136,281.00000 237.33162,279.60818 236.45194,277.90707 z M 232.53620,276.75000 C 230.52494,271.94986 223.16370,256.38853 215.38825,240.50000 C 207.25429,223.87889 207.34504,224.09494 209.29763,226.00000 C 212.60429,229.22616 236.66332,280.00000 234.88538,280.00000 C 234.34229,280.00000 233.28516,278.53750 232.53620,276.75000 z M 190.45888,275.93347 C 190.09635,275.34688 190.01420,274.65247 190.27633,274.39034 C 190.53845,274.12821 191.01939,274.60815 191.34508,275.45687 C 192.02126,277.21898 191.44493,277.52893 190.45888,275.93347 z M 180.62000,253.88000 C 176.37025,244.47142 173.07801,236.58866 173.30392,236.36275 C 173.52982,236.13684 177.18206,243.65961 181.42000,253.08000 C 185.65794,262.50039 188.95018,270.38316 188.73608,270.59725 C 188.52199,270.81134 184.86975,263.28858 180.62000,253.88000 z M 204.95416,266.91435 C 204.34025,265.76725 204.02632,264.64035 204.25654,264.41013 C 204.48676,264.17991 205.18857,265.11845 205.81612,266.49577 C 207.19419,269.52031 206.52321,269.84615 204.95416,266.91435 z M 199.95416,255.91435 C 199.34025,254.76725 199.02632,253.64035 199.25654,253.41013 C 199.48676,253.17991 200.18857,254.11845 200.81612,255.49577 C 202.19419,258.52031 201.52321,258.84615 199.95416,255.91435 z M 203.45888,252.93347 C 203.09635,252.34688 203.01420,251.65247 203.27633,251.39034 C 203.53845,251.12821 204.01939,251.60815 204.34508,252.45687 C 205.02126,254.21898 204.44493,254.52893 203.45888,252.93347 z M 193.45888,241.93347 C 193.09635,241.34688 193.01420,240.65247 193.27633,240.39034 C 193.53845,240.12821 194.01939,240.60815 194.34508,241.45687 C 195.02126,243.21898 194.44493,243.52893 193.45888,241.93347 z M 200.56429,241.29313 C 200.02161,239.86793 200.13647,239.75307 201.12409,240.73333 C 201.80751,241.41167 202.11476,242.21857 201.80687,242.52646 C 201.49898,242.83435 200.93982,242.27935 200.56429,241.29313 z M 190.14109,234.36342 C 188.93978,231.68294 188.96559,231.60553 190.54497,233.15179 C 191.47291,234.06027 192.05040,235.34881 191.82826,236.01521 C 191.60613,236.68161 190.84690,235.93830 190.14109,234.36342 z M 168.19495,229.50000 C 168.17457,227.85000 168.38201,227.05394 168.65594,227.73097 C 168.92986,228.40800 168.94653,229.75800 168.69299,230.73097 C 168.43945,231.70394 168.21533,231.15000 168.19495,229.50000 z M 140.23200,223.00000 C 140.23200,221.07500 140.43780,220.28750 140.68933,221.25000 C 140.94085,222.21250 140.94085,223.78750 140.68933,224.75000 C 140.43780,225.71250 140.23200,224.92500 140.23200,223.00000 z M 129.50000,224.00000 C 129.16008,223.45000 129.35852,223.00000 129.94098,223.00000 C 130.52344,223.00000 131.00000,223.45000 131.00000,224.00000 C 131.00000,224.55000 130.80156,225.00000 130.55902,225.00000 C 130.31648,225.00000 129.83992,224.55000 129.50000,224.00000 z M 206.00000,222.00000 C 205.41130,220.90000 205.15463,220.00000 205.42963,220.00000 C 205.70463,220.00000 206.41130,220.90000 207.00000,222.00000 C 207.58870,223.10000 207.84537,224.00000 207.57037,224.00000 C 207.29537,224.00000 206.58870,223.10000 206.00000,222.00000 z M 131.00000,220.91065 C 128.84623,219.14897 128.80390,219.01430 130.69431,219.93826 C 131.90118,220.52813 133.16523,221.45834 133.50332,222.00538 C 134.40590,223.46578 133.79973,223.20069 131.00000,220.91065 z M 178.40499,220.84520 L 176.50000,218.69040 L 179.25000,220.46021 C 182.08556,222.28508 182.62179,223.00000 181.15499,223.00000 C 180.69023,223.00000 179.45273,222.03034 178.40499,220.84520 z M 200.31442,211.25000 C 199.97188,210.28750 199.46647,209.09297 199.19130,208.59549 C 198.91613,208.09801 199.15619,207.97850 199.72478,208.32991 C 200.76650,208.97373 202.18922,213.00000 201.37500,213.00000 C 201.13422,213.00000 200.65697,212.21250 200.31442,211.25000 z M 199.12433,198.70934 C 197.91529,196.39420 197.50521,195.36051 198.21304,196.41225 C 198.92087,197.46399 200.27109,199.13508 201.21353,200.12578 C 202.15596,201.11648 202.56604,202.15017 202.12481,202.42286 C 201.68358,202.69556 200.33336,201.02447 199.12433,198.70934 z M 203.56429,199.29313 C 203.02161,197.86793 203.13647,197.75307 204.12409,198.73333 C 204.80751,199.41167 205.11476,200.21857 204.80687,200.52646 C 204.49898,200.83435 203.93982,200.27935 203.56429,199.29313 z M 173.87244,197.25000 C 172.62857,195.66394 172.66394,195.62857 174.25000,196.87244 C 175.91575,198.17881 176.44548,199.00000 175.62244,199.00000 C 175.41479,199.00000 174.62729,198.21250 173.87244,197.25000 z M 200.45888,193.93347 C 200.09635,193.34688 200.01420,192.65247 200.27633,192.39034 C 200.53845,192.12821 201.01939,192.60815 201.34508,193.45687 C 202.02126,195.21898 201.44493,195.52893 200.45888,193.93347 z M 194.87244,185.25000 C 193.62857,183.66394 193.66394,183.62857 195.25000,184.87244 C 196.91575,186.17881 197.44548,187.00000 196.62244,187.00000 C 196.41479,187.00000 195.62729,186.21250 194.87244,185.25000 z M 376.00447,182.00836 C 374.23599,178.70392 375.09578,177.43734 378.72546,178.00000 C 381.76959,178.47189 381.88203,178.63611 380.72546,180.92103 C 379.07861,184.17457 377.37392,184.56719 376.00447,182.00836 z M 424.60699,163.41821 C 423.69907,161.05222 423.75306,161.00000 427.10699,161.00000 C 429.52931,161.00000 430.08022,161.34857 429.60699,162.58179 C 429.27314,163.45177 429.00000,164.35177 429.00000,164.58179 C 429.00000,165.79260 425.12419,164.76602 424.60699,163.41821 z M 194.50000,140.47475 C 188.45000,134.36336 183.49930,128.94392 183.49845,128.43156 C 183.49759,127.91920 182.53772,126.15000 181.36539,124.50000 C 178.27338,120.14812 175.32492,113.34676 173.61839,106.62958 C 171.92950,99.981880 172.09364,100.05439 178.98415,109.00000 C 184.96636,116.76641 192.27316,124.05721 198.66233,128.63509 L 204.82466,133.05044 L 205.52362,141.44135 C 205.90805,146.05635 206.06000,150.22693 205.86129,150.70931 C 205.66258,151.19170 200.55000,146.58614 194.50000,140.47475 z M 383.58276,149.35507 C 383.26224,148.51982 383.00000,147.74466 383.00000,147.63250 C 383.00000,147.52034 383.90000,147.42857 385.00000,147.42857 C 387.28878,147.42857 387.70775,149.51443 385.58276,150.32987 C 384.80328,150.62898 383.90328,150.19033 383.58276,149.35507 z M 227.00000,142.12500 C 227.00000,139.99375 226.73568,136.92841 226.41263,135.31314 C 225.89440,132.72201 226.49632,131.73607 231.52559,126.93814 C 234.66078,123.94716 238.98929,119.13750 241.14451,116.25000 C 243.29973,113.36250 245.43847,111.00000 245.89727,111.00000 C 246.35607,111.00000 246.40420,112.68750 246.00423,114.75000 C 244.48452,122.58654 239.14055,132.90191 233.24288,139.38302 C 231.68225,141.09803 230.10329,143.28845 229.73407,144.25061 C 228.55189,147.33133 227.00000,146.12481 227.00000,142.12500 z M 409.92349,138.25000 C 409.88141,137.28750 409.69623,135.71250 409.51197,134.75000 C 409.24585,133.35985 409.87847,133.00000 412.58848,133.00000 C 416.54650,133.00000 416.77502,133.74500 413.92742,137.36514 C 411.52849,140.41488 410.03259,140.74547 409.92349,138.25000 z M 452.00000,136.50000 C 452.00000,135.67500 452.43588,135.00000 452.96862,135.00000 C 453.50135,135.00000 453.67821,135.67500 453.36163,136.50000 C 453.04504,137.32500 452.60917,138.00000 452.39301,138.00000 C 452.17686,138.00000 452.00000,137.32500 452.00000,136.50000 z M 442.60699,131.41821 C 441.59872,128.79072 441.89715,128.26229 444.25000,128.50891 C 447.27505,128.82599 447.21173,128.73586 446.00000,131.00000 C 444.71197,133.40671 443.43065,133.56464 442.60699,131.41821 z M 391.66667,112.33333 C 390.31224,110.97891 391.06821,110.00000 393.46862,110.00000 C 395.25210,110.00000 395.77748,110.41631 395.36163,111.50000 C 394.76449,113.05611 392.82652,113.49319 391.66667,112.33333 z M 247.07895,108.58333 C 247.03553,107.52917 247.27187,106.93854 247.60417,107.27083 C 247.93646,107.60313 247.97198,108.46563 247.68311,109.18750 C 247.36389,109.98523 247.12693,109.74828 247.07895,108.58333 z M 444.63837,96.500000 C 444.29725,95.611036 444.62770,95.000000 445.44960,95.000000 C 446.21235,95.000000 447.51540,94.739454 448.34525,94.421010 C 449.47834,93.986201 449.71869,94.359734 449.31041,95.921010 C 448.68283,98.320876 445.48899,98.716678 444.63837,96.500000 z M 413.00000,85.059017 C 413.00000,84.476558 413.45000,84.000000 414.00000,84.000000 C 414.55000,84.000000 415.00000,84.198442 415.00000,84.440983 C 415.00000,84.683524 414.55000,85.160081 414.00000,85.500000 C 413.45000,85.839919 413.00000,85.641476 413.00000,85.059017 z " id="path1311" style="fill:#a75b5f"/>
+ <path d="M 219.00000,794.94810 C 221.64953,793.14416 226.00000,790.93453 226.00000,791.39276 C 226.00000,792.03844 219.42316,796.00276 218.38197,795.98469 C 217.89688,795.97627 218.17500,795.50980 219.00000,794.94810 z M 445.47559,792.11789 C 440.19917,790.21715 437.07733,788.85985 425.32813,783.35825 C 421.38360,781.51121 417.89120,780.00000 417.56723,780.00000 C 416.78930,780.00000 408.53401,776.33573 403.50000,773.75599 C 397.48925,770.67570 388.04754,764.14245 384.18373,760.38996 C 376.44716,752.87630 368.57130,751.24245 355.90732,754.52402 C 352.69646,755.35603 343.41628,757.47906 335.28470,759.24185 L 320.50000,762.44692 L 276.21975,762.57902 C 249.41988,762.65898 231.70950,762.33898 231.35688,761.76843 C 231.03644,761.24995 231.27506,760.32494 231.88713,759.71287 C 233.25870,758.34130 233.35247,752.75247 232.02617,751.42617 C 231.49056,750.89056 231.33077,748.73653 231.67109,746.63943 L 232.28984,742.82652 L 237.39492,743.32479 C 262.62239,745.78704 279.46630,746.30909 297.50000,745.18763 C 314.97662,744.10082 336.54747,741.22618 341.69945,739.29740 L 343.82939,738.50000 L 341.91470,734.57144 C 339.71505,730.05822 339.51730,727.88270 341.15762,726.24238 C 342.03444,725.36556 342.02825,724.73897 341.13209,723.65916 C 340.20256,722.53914 340.27293,722.10924 341.46039,721.65357 C 342.63712,721.20202 342.83412,720.06892 342.34999,716.53679 C 341.87085,713.04110 342.04619,711.99649 343.11408,711.98469 C 344.22019,711.97247 344.19716,711.77057 343.00000,710.98469 C 341.68340,710.12039 341.67986,709.88438 342.97104,709.05437 C 343.78011,708.53428 344.12947,707.79614 343.74739,707.41406 C 342.91596,706.58262 346.04117,701.00000 347.33805,701.00000 C 347.84830,701.00000 347.82190,700.45334 347.27768,699.75000 C 346.74571,699.06250 346.00994,697.66090 345.64262,696.63533 C 344.69554,693.99107 351.78892,700.25508 355.00000,704.89864 C 356.37500,706.88703 358.69512,710.08577 360.15581,712.00695 C 361.61651,713.92813 364.20553,718.25866 365.90920,721.63036 C 367.61286,725.00206 369.61624,728.26655 370.36116,728.88477 C 371.10608,729.50300 372.98224,732.01277 374.53041,734.46203 C 376.51751,737.60573 377.94524,738.85419 379.38558,738.70762 C 380.83519,738.56011 381.58139,739.22380 381.96295,741.00000 C 382.25833,742.37500 383.06250,743.54500 383.75000,743.60000 C 386.56733,743.82539 387.00000,744.06023 387.00000,745.36400 C 387.00000,747.09108 392.63727,750.86418 401.00000,754.73438 C 404.57500,756.38886 409.57429,758.70046 412.10953,759.87126 C 414.64477,761.04207 417.39659,762.00000 418.22467,762.00000 C 419.05276,762.00000 420.91794,762.93421 422.36952,764.07603 C 423.82110,765.21784 427.75624,767.22878 431.11427,768.54478 C 434.47230,769.86079 437.73283,771.35758 438.35989,771.87098 C 438.98695,772.38439 441.52500,773.32524 444.00000,773.96175 C 446.47500,774.59826 449.26009,775.33888 450.18910,775.60758 C 451.23911,775.91127 452.32253,775.26586 453.05258,773.90175 C 454.11585,771.91501 454.02293,771.76074 452.07051,772.27131 C 450.63804,772.64591 449.54020,772.23661 448.80051,771.05217 C 448.14588,770.00394 446.93186,769.46656 445.85473,769.74824 C 444.84700,770.01177 444.29879,770.67443 444.63648,771.22082 C 445.60259,772.78403 440.92033,771.00369 438.75160,768.98321 C 437.52108,767.83680 437.22912,766.97643 437.92472,766.54652 C 439.59716,765.51290 439.19072,762.20611 437.25833,761.12469 C 433.95537,759.27627 436.52176,759.26095 444.00000,761.08447 C 448.12500,762.09032 454.34867,763.22365 457.83039,763.60297 C 463.35210,764.20456 464.28182,764.61104 465.10836,766.78502 C 466.15702,769.54318 465.37696,771.22796 464.04735,769.07661 C 462.87269,767.17597 455.76135,771.51998 456.21119,773.86338 C 456.46349,775.17764 458.01489,775.55230 464.08769,775.76553 L 471.65000,776.03105 L 475.32813,772.05570 C 477.35111,769.86926 479.52709,766.93727 480.16365,765.54018 C 481.60816,762.36981 482.34840,762.35659 484.38499,765.46482 C 486.85193,769.22985 486.50080,771.32889 483.50000,770.75525 C 481.82359,770.43478 481.00000,770.72581 481.00000,771.63867 C 481.00000,773.69431 485.40249,773.28509 489.53806,770.84505 C 492.58683,769.04622 493.34298,768.92228 494.11351,770.09505 C 494.88251,771.26548 495.20876,771.20788 496.06799,769.75000 C 496.63525,768.78750 497.97702,768.00000 499.04969,768.00000 C 500.12236,768.00000 501.00000,767.37314 501.00000,766.60699 C 501.00000,765.84083 501.56250,764.99753 502.25000,764.73298 C 504.26717,763.95679 508.04332,756.19423 506.66942,755.64809 C 506.02624,755.39242 507.30000,755.43049 509.50000,755.73269 C 511.70000,756.03489 514.71515,756.89366 516.20034,757.64107 C 517.68553,758.38848 519.73881,759.00000 520.76319,759.00000 C 521.78757,759.00000 524.89421,760.09437 527.66685,761.43193 C 530.43949,762.76950 535.09499,764.64461 538.01241,765.59885 C 542.98560,767.22550 543.70389,767.23069 549.51591,765.68200 C 554.77720,764.28007 556.50715,764.21700 560.95114,765.26509 L 566.18726,766.50000 L 565.52850,771.50000 C 564.31273,780.72773 558.62206,783.67165 544.00000,782.63720 C 539.32500,782.30647 532.80000,781.07676 529.50000,779.90452 C 526.04147,778.67596 520.90157,777.74179 517.36552,777.69909 C 511.08563,777.62324 508.17684,778.72795 495.00000,786.19310 C 491.88664,787.95694 486.03194,789.55307 476.00000,791.37298 C 459.07179,794.44394 452.38560,794.60710 445.47559,792.11789 z M 27.389547,786.39498 C 18.637318,780.53319 13.761947,773.51888 13.463698,766.35953 C 13.233771,760.84023 14.625290,760.72523 20.272343,765.79688 C 24.710639,769.78293 35.699481,776.00000 38.306644,776.00000 C 39.146323,776.00000 39.983333,775.59256 40.166667,775.09458 C 40.350000,774.59660 42.975000,775.50943 46.000000,777.12310 C 49.025000,778.73676 50.492613,779.79049 49.261362,779.46473 C 47.685960,779.04791 46.352755,779.57517 44.761362,781.24440 C 40.921962,785.27159 35.409719,789.00000 33.295156,789.00000 C 32.186322,789.00000 29.528798,787.82774 27.389547,786.39498 z M 218.86633,777.36809 C 220.71781,776.56027 222.46772,776.13439 222.75502,776.42169 C 223.35720,777.02387 218.45487,779.04028 216.68490,778.91843 C 216.03321,778.87356 217.01485,778.17591 218.86633,777.36809 z M 229.73121,777.08016 C 229.29624,775.41681 229.42638,775.02638 230.16845,775.76845 C 230.74955,776.34955 231.02824,777.41527 230.78776,778.13671 C 230.53811,778.88566 230.08482,778.43236 229.73121,777.08016 z M 50.500000,775.29529 C 47.200000,773.98218 43.359151,772.86282 41.964781,772.80783 L 39.429562,772.70785 L 39.193372,761.60393 C 38.834049,744.71115 38.314814,735.84589 37.466276,732.11607 C 36.855305,729.43050 36.985721,728.82837 38.098214,729.19842 C 39.725671,729.73977 39.748385,729.92891 40.466930,748.92294 C 40.767021,756.85556 41.234727,763.56806 41.506275,763.83961 C 41.777824,764.11116 42.000000,763.35833 42.000000,762.16667 C 42.000000,759.49319 42.601486,759.48976 52.940596,762.10430 C 64.220817,764.95683 94.022975,771.12723 96.500000,771.12307 C 98.261593,771.12012 98.201991,771.28717 96.000000,772.52442 C 94.625000,773.29701 92.600000,773.90022 91.500000,773.86488 C 89.835354,773.81141 89.919193,773.65279 92.000000,772.91890 C 94.252767,772.12436 94.203320,772.09025 91.500000,772.57394 C 89.850000,772.86917 87.487500,773.09085 86.250000,773.06656 C 85.012500,773.04228 84.000000,773.43666 84.000000,773.94298 C 84.000000,774.88147 83.272414,774.85128 74.500000,773.54878 C 68.727581,772.69171 51.499852,768.31773 49.114824,767.10369 C 48.226671,766.65160 46.037500,766.00457 44.250000,765.66585 C 41.446698,765.13465 41.000000,765.32957 41.000000,767.08402 C 41.000000,768.20273 41.450730,768.83947 42.001622,768.49900 C 43.113713,767.81169 59.802391,772.62768 61.706195,774.18531 C 62.369602,774.72809 63.451631,774.83891 64.110704,774.43158 C 64.889416,773.95031 65.046499,774.11575 64.559308,774.90404 C 64.077802,775.68313 62.725676,775.87902 60.779695,775.45161 C 58.854411,775.02875 57.975592,775.15149 58.369151,775.78828 C 59.626936,777.82342 56.335194,777.61720 50.500000,775.29529 z M 224.00000,775.57037 C 224.00000,775.29537 224.90000,774.58870 226.00000,774.00000 C 227.10000,773.41130 228.00000,773.15463 228.00000,773.42963 C 228.00000,773.70463 227.10000,774.41130 226.00000,775.00000 C 224.90000,775.58870 224.00000,775.84537 224.00000,775.57037 z M 88.500000,766.06261 C 60.791164,761.23281 48.000000,758.67232 48.000000,757.95544 C 48.000000,757.57387 49.687500,756.98276 51.750000,756.64185 C 58.536307,755.52014 68.769615,755.97046 81.228274,757.93906 C 87.977723,759.00554 99.251500,760.39820 106.28111,761.03386 C 113.31072,761.66952 120.28572,762.55827 121.78111,763.00885 L 124.50000,763.82809 L 121.87500,763.91405 C 117.32100,764.06316 113.01144,765.20949 113.57525,766.12175 C 113.87378,766.60479 112.99303,767.00000 111.61803,767.00000 C 110.24303,767.00000 108.83992,767.45000 108.50000,768.00000 C 107.66869,769.34508 106.91024,769.27161 88.500000,766.06261 z M 217.06665,765.64826 C 218.47831,764.91159 220.95331,764.03252 222.56665,763.69479 C 225.02652,763.17984 224.85435,763.39280 221.50000,765.01414 C 217.02608,767.17662 213.04741,767.74571 217.06665,765.64826 z M 432.88465,766.25000 C 432.82121,765.83750 432.66475,765.05000 432.53696,764.50000 C 432.40918,763.95000 432.23609,762.88936 432.15231,762.14301 C 432.06000,761.32056 431.35919,761.03192 430.37325,761.41026 C 429.47854,761.75360 428.12854,761.52164 427.37325,760.89481 C 426.33398,760.03229 425.59537,760.08890 424.33628,761.12756 C 422.83619,762.36502 422.78428,762.29028 423.80850,760.36765 C 425.40217,757.37607 427.69280,756.71728 428.30892,759.07332 C 428.59053,760.15017 429.41029,760.79718 430.15746,760.53228 C 431.97701,759.88720 434.52532,762.00489 435.23285,764.75000 C 435.63019,766.29166 435.37001,767.00000 434.40638,767.00000 C 433.63287,767.00000 432.94809,766.66250 432.88465,766.25000 z M 186.08587,763.05307 C 185.27980,762.55489 185.97249,762.05550 188.04434,761.64113 C 192.43618,760.76276 193.00000,760.82256 193.00000,762.16667 C 193.00000,762.80833 192.72873,763.06206 192.39718,762.73051 C 192.06562,762.39896 190.79056,762.50933 189.56370,762.97578 C 188.33685,763.44223 186.77182,763.47701 186.08587,763.05307 z M 217.45802,761.27552 C 217.03148,760.29899 216.72892,759.23750 216.78569,758.91667 C 216.84245,758.59583 216.23702,758.33333 215.44029,758.33333 C 214.27734,758.33333 214.33759,758.72772 215.74584,760.33339 C 217.49479,762.32750 217.49035,762.32785 214.24753,760.44965 L 210.99506,758.56587 L 215.24753,756.89298 C 219.74703,755.12291 222.27310,755.66209 224.66132,758.90231 C 226.19108,760.97782 225.22831,762.43437 223.35455,760.87929 C 222.19126,759.91384 221.95066,759.92969 222.19358,760.95573 C 222.36211,761.66758 221.87486,762.47713 221.11080,762.75473 C 220.14498,763.10564 219.97491,762.83897 220.55276,761.87973 C 221.23874,760.74099 221.10879,760.72279 219.80874,761.77552 C 218.49921,762.83594 218.10278,762.75162 217.45802,761.27552 z M 550.00000,761.50000 C 550.68469,760.67500 551.69489,760.00000 552.24489,760.00000 C 552.80272,760.00000 552.69443,760.66326 552.00000,761.50000 C 551.31531,762.32500 550.30511,763.00000 549.75511,763.00000 C 549.19728,763.00000 549.30557,762.33674 550.00000,761.50000 z M 479.91199,759.50000 C 479.83013,758.95000 479.82380,758.14045 479.89791,757.70100 C 480.22756,755.74643 470.50147,752.87871 460.58907,752.00783 C 454.83809,751.50255 447.51537,750.43901 444.31637,749.64440 C 437.89699,748.04987 428.39184,746.42097 420.10493,745.49528 C 417.13763,745.16382 413.08763,744.07768 411.10493,743.08164 C 409.12222,742.08560 405.84136,740.73438 403.81413,740.07894 C 401.78691,739.42350 398.56307,737.45010 396.65006,735.69361 C 392.37778,731.77089 384.79644,720.81049 380.84113,712.83851 C 379.21954,709.57018 377.25015,706.64949 376.46471,706.34808 C 375.32797,705.91187 375.27030,705.36146 376.18203,703.65004 C 377.16470,701.80547 377.11883,701.67195 375.85916,702.71024 C 374.62625,703.72648 374.42446,703.48604 374.60032,701.21024 C 374.71550,699.71961 375.29142,697.26250 375.88012,695.75000 C 376.46883,694.23750 376.57308,693.00000 376.11178,693.00000 C 375.65049,693.00000 375.37920,691.98750 375.50891,690.75000 C 375.63863,689.51250 375.81650,687.60000 375.90418,686.50000 C 376.06153,684.52611 376.08277,684.52534 377.53180,686.44113 C 378.33931,687.50875 379.00000,689.43537 379.00000,690.72251 C 379.00000,692.00965 379.60829,693.29619 380.35175,693.58149 C 381.17401,693.89702 381.52140,695.05282 381.23860,696.53217 C 380.95690,698.00578 382.00050,701.50783 383.88685,705.41906 C 385.59908,708.96927 387.00000,712.10478 387.00000,712.38686 C 387.00000,713.25896 393.04677,721.91087 394.11974,722.57401 C 395.85975,723.64939 396.38931,722.09722 394.91054,720.25613 C 392.73562,717.54833 391.00000,714.17180 391.00000,712.64843 C 391.00000,711.89014 390.10000,710.12555 389.00000,708.72713 C 387.90000,707.32871 387.00000,705.00219 387.00000,703.55709 C 387.00000,702.11199 386.26196,699.80325 385.35992,698.42656 C 384.45788,697.04986 383.62396,694.25320 383.50677,692.21174 C 383.16864,686.32126 380.98675,675.68896 379.83008,674.29525 C 379.20232,673.53885 379.05751,671.50699 379.47337,669.29023 C 380.37521,664.48303 381.32486,666.07032 383.87196,676.64226 C 386.66435,688.23230 388.96250,696.27327 390.04369,698.23643 C 390.56966,699.19147 391.00000,700.43814 391.00000,701.00681 C 391.00000,701.57548 392.75702,705.75652 394.90449,710.29801 C 397.70033,716.21068 400.75282,720.60600 405.65489,725.77763 C 409.42014,729.74993 413.23997,733.00000 414.14341,733.00000 C 415.04685,733.00000 416.02061,733.61132 416.30732,734.35849 C 416.59404,735.10566 418.73231,736.02139 421.05904,736.39345 C 423.38577,736.76551 426.53129,737.95419 428.04910,739.03496 C 429.56690,740.11573 431.10892,741.00000 431.47580,741.00000 C 431.84268,741.00000 432.81786,741.67500 433.64286,742.50000 C 434.46786,743.32500 436.36617,744.00000 437.86133,744.00000 C 439.35649,744.00000 443.26185,744.72776 446.53990,745.61724 C 454.07424,747.66165 459.21516,748.86160 465.33065,750.00321 C 478.91197,752.53851 483.27492,754.99287 481.03200,758.83594 C 480.49785,759.75117 479.99384,760.05000 479.91199,759.50000 z M 407.00000,731.60699 C 407.00000,731.39083 406.30163,730.94599 405.44806,730.61844 C 404.55814,730.27695 404.15674,730.44459 404.50708,731.01145 C 405.09434,731.96166 407.00000,732.41690 407.00000,731.60699 z M 400.82606,727.05533 C 398.56712,724.19563 396.00000,723.05798 396.00000,724.91659 C 396.00000,725.92232 401.00309,729.91758 402.32606,729.96832 C 402.78039,729.98574 402.10539,728.67490 400.82606,727.05533 z M 539.70119,759.20480 C 536.77009,758.94913 535.69320,758.32324 534.98656,756.46465 C 534.47015,755.10640 532.92356,753.76793 531.44035,753.39567 C 529.74065,752.96908 529.23518,752.47269 530.01174,751.99274 C 530.87253,751.46075 530.89949,751.05592 530.10676,750.56598 C 529.49804,750.18977 528.56145,750.15300 528.02545,750.48427 C 526.65059,751.33398 515.93451,745.91497 516.66200,744.73789 C 517.00609,744.18112 519.22490,744.04639 521.88032,744.42102 C 524.42114,744.77948 531.54427,745.63816 537.70948,746.32920 C 543.87469,747.02023 549.25766,747.92433 549.67163,748.33829 C 550.08559,748.75226 549.87882,749.96439 549.21215,751.03191 C 548.54547,752.09943 548.00000,754.07741 548.00000,755.42741 C 548.00000,759.11231 546.49494,759.79737 539.70119,759.20480 z M 558.17306,758.16543 C 556.52528,756.89780 555.72310,755.08013 555.42460,751.93766 C 555.17419,749.30142 554.29206,746.94438 553.25154,746.13127 C 551.69197,744.91255 551.82879,744.83681 554.50000,745.44023 C 560.36863,746.76595 564.46118,749.52498 565.45680,752.82686 C 565.98303,754.57209 566.99553,756.00000 567.70680,756.00000 C 569.95222,756.00000 569.10762,758.00859 566.43490,759.02475 C 562.78394,760.41284 560.83033,760.20965 558.17306,758.16543 z M 113.97572,758.67103 C 113.71407,758.42515 106.30000,757.67969 97.500000,757.01447 C 88.700000,756.34925 79.925000,755.47576 78.000000,755.07339 L 74.500000,754.34181 L 79.799221,753.17091 C 86.211166,751.75413 91.289862,751.72013 100.37282,753.03313 C 109.65881,754.37549 139.07348,756.95209 146.50000,757.07368 C 150.84906,757.14488 151.81211,757.37930 150.00000,757.92565 C 147.30558,758.73802 114.76348,759.41135 113.97572,758.67103 z M 173.72244,758.38911 C 172.06149,756.72816 173.27426,755.99792 177.75000,755.96401 C 180.36250,755.94422 186.98707,755.33664 192.47126,754.61384 C 200.30245,753.58171 202.70363,753.56077 203.65915,754.51630 C 204.61468,755.47182 203.01117,755.96654 196.18790,756.82135 C 181.59627,758.64937 174.47936,759.14603 173.72244,758.38911 z M 225.20030,756.51536 L 223.03993,754.03071 L 225.76997,752.65256 C 229.19236,750.92490 231.00000,751.52310 231.00000,754.38333 C 231.00000,756.47280 229.34701,759.00000 227.98034,759.00000 C 227.63952,759.00000 226.38850,757.88191 225.20030,756.51536 z M 492.50000,756.00000 C 492.16008,755.45000 492.35852,755.00000 492.94098,755.00000 C 493.52344,755.00000 494.00000,755.45000 494.00000,756.00000 C 494.00000,756.55000 493.80156,757.00000 493.55902,757.00000 C 493.31648,757.00000 492.83992,756.55000 492.50000,756.00000 z M 206.04759,754.55734 C 205.01136,753.30877 205.02805,752.93404 206.13738,752.54150 C 206.88682,752.27631 208.76279,751.59751 210.30620,751.03305 C 212.43775,750.25350 213.80819,750.36657 216.00654,751.50338 C 219.96846,753.55217 221.00806,753.34607 218.07695,751.09293 L 215.65390,749.23033 L 218.89879,747.55234 C 221.43517,746.24072 222.45550,746.13314 223.57183,747.05962 C 225.54312,748.69564 225.36773,749.50510 222.75000,750.85246 C 220.52524,751.99755 220.52804,752.00446 223.00000,751.46874 C 225.35787,750.95773 225.33592,751.02016 222.61386,752.56673 C 221.02649,753.46862 217.65149,754.32602 215.11386,754.47205 C 212.57624,754.61809 209.78460,755.04210 208.91021,755.41430 C 207.98527,755.80802 206.78814,755.44964 206.04759,754.55734 z M 216.18750,753.31689 C 215.46562,753.02802 214.60313,753.06354 214.27083,753.39583 C 213.93854,753.72812 214.52917,753.96447 215.58333,753.92105 C 216.74828,753.87307 216.98523,753.63611 216.18750,753.31689 z M 523.50708,755.01145 C 523.15674,754.44459 523.55814,754.27695 524.44806,754.61844 C 526.18048,755.28323 526.49745,756.00000 525.05902,756.00000 C 524.54148,756.00000 523.84310,755.55515 523.50708,755.01145 z M 119.01365,752.32748 C 109.39615,751.55738 101.09365,750.49365 100.56365,749.96365 C 99.945451,749.34545 100.27614,749.00000 101.48611,749.00000 C 102.52347,749.00000 106.10097,748.35180 109.43611,747.55955 C 126.39916,743.53007 135.70323,742.08888 148.00000,741.58605 C 155.42500,741.28243 165.73383,740.72892 170.90852,740.35601 C 178.23078,739.82835 180.14858,739.95057 179.55737,740.90718 C 179.13955,741.58322 178.16822,741.89479 177.39885,741.59956 C 176.62948,741.30432 176.00000,741.45364 176.00000,741.93137 C 176.00000,743.32095 193.11622,750.09789 195.06426,749.47961 C 196.03634,749.17108 197.09848,749.35033 197.42457,749.87795 C 199.74668,753.63520 153.41939,755.08245 119.01365,752.32748 z M 498.54271,753.06910 C 497.52102,751.41597 499.64789,751.02057 501.60268,752.50023 C 503.43762,753.88918 503.42797,753.93744 501.30902,753.96820 C 500.10398,753.98569 498.85914,753.58109 498.54271,753.06910 z M 510.00000,749.34672 C 505.87500,747.39596 501.57535,745.69143 500.44523,745.55888 C 499.31510,745.42634 497.51510,744.78711 496.44523,744.13839 C 494.81915,743.15240 495.15626,743.06279 498.50000,743.59218 C 502.69385,744.25616 521.59998,752.80421 519.00000,752.86087 C 518.17500,752.87885 514.12500,751.29748 510.00000,749.34672 z M 198.10277,748.74761 C 196.47877,747.18566 195.62363,746.88132 195.29960,747.75000 C 194.23698,750.59872 193.35480,748.63834 193.23077,743.15266 L 193.09856,737.30531 L 196.62392,736.22335 C 199.34310,735.38881 201.06849,735.46570 204.16894,736.55960 C 209.33928,738.38381 218.00000,743.09259 218.00000,744.07947 C 218.00000,744.49836 216.53750,745.16936 214.75000,745.57059 C 212.96250,745.97182 212.10183,746.50818 212.83739,746.76251 C 213.57296,747.01684 215.94148,746.42826 218.10076,745.45456 L 222.02673,743.68420 L 212.86047,739.32832 C 207.81903,736.93259 203.96769,734.69898 204.30194,734.36473 C 204.63618,734.03048 207.06748,735.02358 209.70483,736.57160 C 212.34217,738.11963 216.52500,739.75037 219.00000,740.19548 C 221.47500,740.64058 224.17500,741.19426 225.00000,741.42587 C 225.82500,741.65748 227.28750,741.88141 228.25000,741.92349 C 230.64112,742.02803 230.50482,745.65946 228.06069,746.96752 C 226.67575,747.70872 225.91693,747.67461 225.40618,746.84820 C 224.93529,746.08628 225.17076,745.93989 226.09549,746.41965 C 226.86797,746.82042 226.68001,746.47908 225.67780,745.66112 C 224.04478,744.32833 223.28909,744.42445 218.39928,746.58696 C 212.91086,749.01420 208.40341,749.77432 209.43950,748.09790 C 209.74614,747.60174 208.39697,746.25174 206.44135,745.09790 C 201.49224,742.17785 200.61212,742.51697 205.44085,745.48340 C 209.35985,747.89096 209.36817,747.90945 206.94085,748.81866 C 201.10205,751.00573 200.44510,751.00044 198.10277,748.74761 z M 198.66667,740.71429 C 198.66667,740.00714 197.81143,739.42857 196.76614,739.42857 C 194.97252,739.42857 194.96452,739.50089 196.62394,740.71429 C 197.59102,741.42143 198.44625,742.00000 198.52446,742.00000 C 198.60268,742.00000 198.66667,741.42143 198.66667,740.71429 z M 16.643260,746.48727 C 16.962530,745.65526 16.715643,744.36230 16.094623,743.61401 C 14.923603,742.20302 15.585412,739.00000 17.047972,739.00000 C 18.620734,739.00000 19.197747,741.13238 18.553805,744.56489 C 18.199368,746.45420 17.493888,748.00000 16.986072,748.00000 C 16.478256,748.00000 16.323990,747.31927 16.643260,746.48727 z M 395.00000,746.64235 C 395.00000,745.83072 394.43750,744.93969 393.75000,744.66228 C 392.96458,744.34536 392.91907,744.12855 393.62756,744.07895 C 395.36199,743.95751 397.31214,746.68905 396.04856,747.46999 C 395.47185,747.82641 395.00000,747.45398 395.00000,746.64235 z M 460.50000,743.00000 C 460.12732,742.39699 461.46994,742.00000 463.88197,742.00000 C 466.08197,742.00000 468.16008,742.45000 468.50000,743.00000 C 468.87268,743.60301 467.53006,744.00000 465.11803,744.00000 C 462.91803,744.00000 460.83992,743.55000 460.50000,743.00000 z M 454.27083,741.39583 C 454.60312,741.06354 455.46562,741.02802 456.18750,741.31689 C 456.98523,741.63611 456.74828,741.87307 455.58333,741.92105 C 454.52917,741.96447 453.93854,741.72812 454.27083,741.39583 z M 148.63837,738.50000 C 148.95496,737.67500 149.34269,737.00000 149.50000,737.00000 C 149.65731,737.00000 150.04504,737.67500 150.36163,738.50000 C 150.70873,739.40455 150.36670,740.00000 149.50000,740.00000 C 148.63330,740.00000 148.29127,739.40455 148.63837,738.50000 z M 435.00000,738.21842 C 430.61357,736.14594 430.55937,736.10729 431.17548,735.49119 C 431.45532,735.21134 434.34287,735.83169 437.59224,736.86974 C 440.84162,737.90779 444.40015,738.98455 445.50010,739.26255 C 446.60004,739.54054 445.47500,739.79142 443.00000,739.82004 C 440.52500,739.84867 436.92500,739.12794 435.00000,738.21842 z M 152.00000,737.58895 C 152.00000,737.36288 155.84006,735.95516 160.53347,734.46068 C 165.80075,732.78347 169.44668,731.03389 170.05908,729.88960 C 170.60477,728.86998 171.33353,723.73815 171.67857,718.48552 C 172.02360,713.23290 172.72262,709.07421 173.23194,709.24398 C 174.35874,709.61958 176.63264,713.47964 178.01929,717.37077 C 178.91604,719.88715 179.41006,720.16799 182.02116,719.64577 L 185.00000,719.05000 L 185.00000,727.02500 C 185.00000,731.41125 184.66250,735.00360 184.25000,735.00799 C 183.83750,735.01238 178.11710,735.68738 171.53801,736.50799 C 159.80175,737.97184 152.00000,738.40349 152.00000,737.58895 z M 181.50000,725.00000 C 181.50000,724.26667 180.96329,723.48776 180.30731,723.26910 C 179.61126,723.03709 179.17975,723.73612 179.27103,724.94787 C 179.43889,727.17632 181.50000,727.22453 181.50000,725.00000 z M 492.75000,735.33772 C 493.43750,735.06031 494.56250,735.06031 495.25000,735.33772 C 495.93750,735.61513 495.37500,735.84211 494.00000,735.84211 C 492.62500,735.84211 492.06250,735.61513 492.75000,735.33772 z M 187.82900,726.75000 C 187.24846,713.95699 188.68918,708.48491 190.46186,716.75000 C 190.84524,718.53750 191.57316,720.00000 192.07946,720.00000 C 193.42622,720.00000 193.20448,714.60448 191.80000,713.20000 C 190.86667,712.26667 190.86667,712.00000 191.80000,712.00000 C 192.46000,712.00000 193.05324,710.76250 193.11831,709.25000 L 193.23663,706.50000 L 193.86831,709.43669 C 194.37314,711.78362 195.67420,712.95240 200.34684,715.25652 C 203.56260,716.84224 206.02038,718.31296 205.80856,718.52477 C 205.37040,718.96293 199.14076,716.89436 197.25000,715.68289 C 194.33002,713.81195 192.80831,717.95117 195.44630,720.58916 C 196.24177,721.38463 199.90653,723.38772 203.59022,725.04048 C 207.27391,726.69324 210.08254,728.25080 209.83161,728.50172 C 209.58069,728.75264 206.29987,727.84241 202.54089,726.47897 C 198.78192,725.11554 195.54746,724.00000 195.35320,724.00000 C 194.02597,724.00000 195.38477,728.75920 197.00000,729.76793 C 198.10000,730.45489 199.00000,731.47897 199.00000,732.04366 C 199.00000,732.73138 198.33967,732.71697 197.00000,732.00000 C 195.64401,731.27430 195.00000,731.26297 195.00000,731.96482 C 195.00000,732.53417 194.55000,733.00000 194.00000,733.00000 C 193.45000,733.00000 193.00000,732.32500 193.00000,731.50000 C 193.00000,730.67500 192.55000,730.00000 192.00000,730.00000 C 191.45000,730.00000 191.00000,730.90000 191.00000,732.00000 C 191.00000,733.10000 190.36055,734.00000 189.57900,734.00000 C 188.51193,734.00000 188.07606,732.19428 187.82900,726.75000 z M 193.00000,725.66667 C 193.00000,723.13533 192.14761,721.79074 190.99463,722.50332 C 190.00987,723.11193 191.00759,728.00000 192.11658,728.00000 C 192.60246,728.00000 193.00000,726.95000 193.00000,725.66667 z M 417.50000,731.85161 C 412.17891,728.95808 408.17821,725.69916 408.59948,724.60135 C 408.85658,723.93136 408.10085,722.28447 406.92009,720.94160 C 401.98401,715.32782 399.85452,711.99405 400.16753,710.37031 C 400.41224,709.10089 401.21236,709.72216 403.19878,712.72399 C 407.31553,718.94512 415.31746,726.49118 420.41385,728.95829 C 422.93013,730.17641 425.24297,731.58411 425.55347,732.08652 C 426.34143,733.36147 419.93280,733.17453 417.50000,731.85161 z M 451.00000,731.58832 C 443.41403,730.55274 435.85152,728.10887 440.00000,728.03360 C 443.25193,727.97461 459.55606,731.19117 460.45000,732.06809 C 461.05000,732.65666 461.05000,732.95370 460.45000,732.87434 C 459.92750,732.80522 455.67500,732.22651 451.00000,731.58832 z M 575.39760,731.50000 C 575.81297,730.40000 576.78742,725.30426 577.56305,720.17612 C 578.33868,715.04799 579.23085,710.43549 579.54566,709.92612 C 579.86046,709.41676 581.20790,709.00000 582.53996,709.00000 C 584.28937,709.00000 585.13613,708.30579 585.58936,706.50000 C 586.01987,704.78468 586.90470,704.00000 588.40841,704.00000 C 589.61378,704.00000 591.10762,703.49238 591.72803,702.87197 C 593.63724,700.96276 600.92306,698.06650 601.49375,698.98989 C 601.79013,699.46944 601.55343,700.15796 600.96775,700.51993 C 600.22346,700.97993 600.24517,701.59049 601.03989,702.54807 C 602.59728,704.42460 601.30514,709.73339 598.34707,713.61162 C 597.03334,715.33400 593.18609,718.71350 589.79762,721.12161 C 586.40915,723.52973 581.61303,727.30000 579.13957,729.50000 C 576.02524,732.27003 574.87461,732.88501 575.39760,731.50000 z M 209.00000,730.00000 C 209.82500,729.46684 211.22409,729.02373 212.10908,729.01531 C 212.99407,729.00689 216.25657,727.71960 219.35908,726.15466 C 222.46159,724.58972 225.00000,723.70883 225.00000,724.19712 C 225.00000,725.52018 212.88712,731.00067 210.00000,730.98390 C 208.01889,730.97239 207.81134,730.76817 209.00000,730.00000 z M 464.75000,730.33772 C 465.43750,730.06031 466.56250,730.06031 467.25000,730.33772 C 467.93750,730.61513 467.37500,730.84211 466.00000,730.84211 C 464.62500,730.84211 464.06250,730.61513 464.75000,730.33772 z M 31.507079,727.01145 C 31.156740,726.44459 31.558137,726.27695 32.448062,726.61844 C 34.180479,727.28323 34.497449,728.00000 33.059017,728.00000 C 32.541476,728.00000 31.843104,727.55515 31.507079,727.01145 z M 27.500000,725.00000 C 25.869592,724.29939 25.812487,724.12758 27.190983,724.07029 C 28.121024,724.03163 29.160081,724.45000 29.500000,725.00000 C 30.210664,726.14988 30.175913,726.14988 27.500000,725.00000 z M 424.15376,721.85115 C 418.67841,719.14983 417.16888,717.75720 413.15376,711.70306 C 406.82803,702.16490 404.83405,698.15873 404.24955,693.81334 C 403.68334,689.60393 404.69229,683.00000 405.90162,683.00000 C 406.34767,683.00000 407.41575,685.81250 408.27514,689.25000 C 410.34230,697.51849 418.57321,715.09402 420.22164,714.75945 C 420.98485,714.60455 421.41433,715.34843 421.28741,716.60541 C 421.12259,718.23767 422.30242,719.33192 426.53741,721.47463 C 429.54183,722.99473 432.00000,724.40980 432.00000,724.61923 C 432.00000,725.46913 430.19981,724.83404 424.15376,721.85115 z M 183.44615,716.91287 C 183.07661,716.31494 183.27506,715.32494 183.88713,714.71287 C 184.70429,713.89571 185.00000,714.18458 185.00000,715.80000 C 185.00000,718.21451 184.48054,718.58655 183.44615,716.91287 z M 189.66667,703.83333 C 188.65833,702.73333 188.03768,701.62899 188.28744,701.37923 C 189.14041,700.52626 194.00000,703.31760 194.00000,704.66052 C 194.00000,706.58341 191.80317,706.16406 189.66667,703.83333 z M 414.17547,694.67131 C 410.62497,684.85901 410.65824,685.00000 411.89296,685.00000 C 412.98708,685.00000 418.28327,700.65020 417.74035,702.27896 C 417.52618,702.92147 415.92198,699.49803 414.17547,694.67131 z M 179.25000,700.66872 C 176.91250,700.14464 175.00000,699.32977 175.00000,698.85792 C 175.00000,697.74768 175.52465,697.78573 181.47140,699.32734 C 187.37064,700.85663 185.39877,702.04733 179.25000,700.66872 z M 603.00000,693.00000 C 603.58870,691.90000 604.29537,691.00000 604.57037,691.00000 C 604.84537,691.00000 604.58870,691.90000 604.00000,693.00000 C 603.41130,694.10000 602.70463,695.00000 602.42963,695.00000 C 602.15463,695.00000 602.41130,694.10000 603.00000,693.00000 z M 580.57421,692.33278 C 580.22233,691.41581 580.35809,690.24191 580.87590,689.72410 C 582.15612,688.44388 594.43638,688.24552 594.75000,689.50000 C 594.88750,690.05000 593.67403,690.54500 592.05340,690.60000 C 590.43277,690.65500 587.97360,691.44250 586.58858,692.35000 C 583.38144,694.45140 581.38500,694.44569 580.57421,692.33278 z M 397.82301,684.50000 C 397.49516,683.40000 396.89548,681.60000 396.49041,680.50000 C 395.85915,678.78578 395.99579,678.82416 397.44670,680.76861 C 398.37773,682.01635 398.97740,683.81635 398.77930,684.76861 C 398.46689,686.27035 398.34005,686.23472 397.82301,684.50000 z M 374.00000,681.90113 C 374.00000,679.80310 370.63411,673.48506 368.07412,670.77778 C 366.30040,668.90201 364.41170,668.01887 362.00000,667.93759 L 358.50000,667.81962 L 361.75000,666.88122 C 365.02041,665.93692 365.86593,664.65321 363.98369,663.48992 C 363.42472,663.14446 363.20294,662.48066 363.49084,662.01482 C 363.77875,661.54898 363.59395,660.06221 363.08018,658.71089 C 362.50378,657.19485 362.50248,655.89752 363.07677,655.32323 C 363.65107,654.74893 363.48375,653.67625 362.63988,652.52218 C 361.62720,651.13727 359.93945,650.63215 356.13683,650.57593 C 353.31234,650.53417 351.00108,650.16250 351.00070,649.75000 C 351.00001,649.01250 354.18152,648.58034 356.86955,648.95281 C 357.62280,649.05718 359.87280,647.83354 361.86955,646.23360 C 363.86630,644.63366 366.51250,642.78575 367.75000,642.12713 C 369.73789,641.06913 370.00000,641.16626 370.00000,642.96083 C 370.00000,644.07800 370.86819,647.58133 371.92931,650.74602 C 372.99043,653.91071 374.12842,659.87500 374.45819,664.00000 C 374.78795,668.12500 375.31394,674.08750 375.62706,677.25000 C 376.00875,681.10500 375.83445,683.00000 375.09819,683.00000 C 374.49418,683.00000 374.00000,682.50551 374.00000,681.90113 z M 393.04411,675.25423 C 391.14205,671.16395 390.00787,666.88683 390.98551,667.49105 C 392.11049,668.18632 395.42982,676.90352 394.80681,677.52652 C 394.54175,677.79158 393.74853,676.76905 393.04411,675.25423 z M 402.95818,669.92186 C 401.61943,667.42037 402.36220,665.00000 404.46862,665.00000 C 405.55210,665.00000 406.00000,666.02368 406.00000,668.50000 C 406.00000,672.42110 404.63677,673.05833 402.95818,669.92186 z M 345.22894,650.81318 C 345.72722,649.31834 348.00000,648.49529 348.00000,649.80968 C 348.00000,650.34667 347.28740,651.05947 346.41644,651.39369 C 345.44253,651.76742 344.98536,651.54393 345.22894,650.81318 z M 369.92661,632.86287 C 368.52559,630.24505 370.44019,628.63003 373.19612,630.10496 C 375.14296,631.14688 375.38418,631.93540 374.23469,633.50000 C 372.91643,635.29431 371.08275,635.02313 369.92661,632.86287 z M 363.68169,631.34836 C 362.45116,630.11783 362.96874,628.00000 364.50000,628.00000 C 366.16626,628.00000 366.37410,628.86240 365.16638,630.76503 C 364.72474,631.46079 364.05663,631.72329 363.68169,631.34836 z M 371.18325,444.18325 C 369.98246,442.98246 369.00000,441.10000 369.00000,440.00000 C 369.00000,436.93448 374.77252,431.95272 375.08333,434.75000 C 375.12917,435.16250 375.27268,436.42715 375.40224,437.56033 C 375.53181,438.69351 375.12677,441.13847 374.50216,442.99358 L 373.36651,446.36651 L 371.18325,444.18325 z M 185.66667,440.33333 C 185.30000,439.96667 185.00000,437.70115 185.00000,435.29886 L 185.00000,430.93104 L 188.00000,434.00000 C 191.50136,437.58184 191.45426,437.40288 189.42857,439.42857 C 187.72664,441.13050 186.70867,441.37533 185.66667,440.33333 z M 248.60064,416.89536 C 239.20251,415.52412 240.62643,414.67416 251.00000,415.46315 C 256.22500,415.86055 263.37956,416.36097 266.89903,416.57521 C 270.41849,416.78944 273.53099,417.19766 273.81569,417.48236 C 274.63450,418.30117 255.12242,417.84693 248.60064,416.89536 z M 277.62946,414.89729 C 276.69852,410.24262 278.05824,409.25867 280.10710,413.10438 C 282.41279,417.43215 282.41486,418.00000 280.12500,418.00000 C 278.82787,418.00000 278.05875,417.04375 277.62946,414.89729 z M 285.00000,416.62764 C 285.00000,415.87285 283.85874,411.75913 282.46386,407.48605 C 278.79053,396.23309 280.00942,395.97676 284.31783,407.09616 C 288.51243,417.92182 288.52808,418.00000 286.50000,418.00000 C 285.67500,418.00000 285.00000,417.38244 285.00000,416.62764 z M 289.24728,417.41938 C 290.02712,416.63955 286.51762,404.16954 283.50166,397.00395 C 281.51352,392.28033 281.24762,390.62340 282.03638,387.87316 C 282.56637,386.02518 283.00000,382.77288 283.00000,380.64582 C 283.00000,376.85269 283.03360,376.81758 284.75000,378.81692 C 286.37243,380.70680 291.36567,381.53205 303.75000,381.95710 C 305.09972,382.00342 305.35234,384.98828 304.40672,389.71639 C 303.86305,392.43473 303.42404,392.70860 299.15672,392.99141 C 296.59552,393.16116 293.32556,393.30030 291.89014,393.30063 C 289.36858,393.30120 289.31025,393.43461 290.16608,397.24363 C 290.65327,399.41196 292.16520,404.37263 293.52594,408.26735 C 296.79090,417.61238 296.74340,418.00000 292.33333,418.00000 C 290.31667,418.00000 288.92794,417.73872 289.24728,417.41938 z M 289.38083,403.91068 C 287.53519,397.69573 286.14470,394.15890 286.07421,395.50000 C 286.04530,396.05000 286.69568,398.75000 287.51949,401.50000 C 289.48898,408.07446 289.84627,409.00000 290.41472,409.00000 C 290.67733,409.00000 290.21209,406.70981 289.38083,403.91068 z M 296.18750,391.31689 C 295.46562,391.02802 294.60312,391.06354 294.27083,391.39583 C 293.93854,391.72812 294.52917,391.96447 295.58333,391.92105 C 296.74828,391.87307 296.98523,391.63611 296.18750,391.31689 z M 221.47974,411.23469 C 220.31244,410.39412 213.79756,396.58992 211.58057,390.25963 C 210.19103,386.29199 210.21622,385.95465 211.97219,385.01488 C 213.00436,384.46248 214.89537,383.81659 216.17443,383.57957 C 217.45350,383.34255 218.50000,383.08075 218.50000,382.99780 C 218.50000,382.91485 219.32873,382.69017 220.34163,382.49852 C 221.35453,382.30687 221.92402,382.40931 221.60718,382.72616 C 221.29033,383.04301 221.72149,383.80708 222.56531,384.42410 C 223.79847,385.32581 224.10695,387.99333 224.13736,398.01809 C 224.16268,406.36605 224.55956,410.73479 225.33759,411.22981 C 226.06117,411.69018 225.74497,411.96937 224.50000,411.96937 C 223.40000,411.96937 222.04088,411.63877 221.47974,411.23469 z M 350.00000,407.17431 C 350.00000,405.87675 354.48124,402.00000 355.98112,402.00000 C 356.72484,402.00000 357.03724,401.70390 356.67534,401.34201 C 355.77101,400.43768 358.01216,397.88948 359.11331,398.57003 C 359.60099,398.87143 360.00000,398.64148 360.00000,398.05902 C 360.00000,397.47656 360.63750,397.00000 361.41667,397.00000 C 362.19583,397.00000 362.98333,396.60948 363.16667,396.13218 C 363.35000,395.65489 364.43639,394.97372 365.58087,394.61848 C 367.27797,394.09170 367.64683,394.39008 367.58087,396.23629 C 367.49170,398.73227 362.01268,403.32036 355.64080,406.23482 C 351.37671,408.18519 350.00000,408.41449 350.00000,407.17431 z M 326.20074,396.72716 C 327.33411,392.75222 328.48253,388.47454 328.75279,387.22119 C 329.02305,385.96785 330.15632,384.30349 331.27118,383.52261 C 332.98383,382.32302 333.70155,382.31142 335.89909,383.44782 C 337.32959,384.18756 338.95000,384.83942 339.50000,384.89640 C 340.05000,384.95338 340.50000,385.43319 340.50000,385.96265 C 340.50000,387.31258 328.96392,400.78414 326.32004,402.52168 L 324.14007,403.95433 L 326.20074,396.72716 z M 194.50000,402.00000 C 194.16008,401.45000 194.35852,401.00000 194.94098,401.00000 C 195.52344,401.00000 196.00000,401.45000 196.00000,402.00000 C 196.00000,402.55000 195.80156,403.00000 195.55902,403.00000 C 195.31648,403.00000 194.83992,402.55000 194.50000,402.00000 z M 375.47690,394.81453 L 371.45380,390.66925 L 378.63759,383.86977 C 386.82955,376.11606 397.03772,369.29985 415.00000,359.58983 C 430.58344,351.16576 439.02024,344.77756 451.06202,332.28427 C 467.95346,314.75947 482.19313,295.14724 491.00000,277.27790 C 495.17161,268.81361 498.16503,265.01070 496.53194,270.25000 C 496.14621,271.48750 495.34291,274.41250 494.74683,276.75000 C 494.15075,279.08750 493.28886,281.00000 492.83152,281.00000 C 492.37419,281.00000 492.00000,281.88473 492.00000,282.96607 C 492.00000,285.49712 488.91035,292.00000 487.70780,292.00000 C 487.20082,292.00000 487.07441,292.75152 487.42688,293.67005 C 487.77935,294.58858 487.66151,295.60108 487.16502,295.92005 C 486.66852,296.23902 484.96578,298.94578 483.38115,301.93506 C 476.38902,315.12516 473.74394,319.25634 465.11130,330.46956 C 451.91765,347.60721 444.20614,355.73179 431.38083,366.00684 C 429.03054,367.88978 413.09662,378.00000 412.47935,378.00000 C 411.50161,378.00000 389.33669,391.44952 386.66533,393.66376 C 385.10626,394.95605 383.46992,395.79043 383.02902,395.51793 C 382.58812,395.24544 381.99335,395.91743 381.70731,397.01125 C 380.96878,399.83538 380.02776,399.50360 375.47690,394.81453 z M 180.00000,397.07690 C 180.00000,396.33574 178.97761,394.77774 177.72803,393.61467 C 176.47845,392.45160 172.32213,387.67500 168.49177,383.00000 C 164.66141,378.32500 159.65852,372.47500 157.37424,370.00000 C 150.82315,362.90194 135.98143,344.68524 136.40468,344.26199 C 136.61544,344.05123 135.82311,342.85977 134.64394,341.61430 C 133.46477,340.36883 131.82500,338.48361 131.00000,337.42491 C 128.70941,334.48546 121.00000,319.03745 121.00000,317.38704 C 121.00000,316.58547 120.26404,314.80642 119.36454,313.43361 C 118.46504,312.06079 118.01114,310.65553 118.35587,310.31080 C 118.70060,309.96607 118.59860,309.19261 118.12921,308.59201 C 117.65982,307.99140 116.95253,306.15000 116.55746,304.50000 C 116.09790,302.58069 118.58636,305.60141 123.46543,312.88555 C 133.53643,327.92091 138.64607,334.50476 149.48119,346.40729 C 154.44153,351.85630 160.77395,359.05630 163.55322,362.40729 C 174.53177,375.64422 185.99791,390.18741 185.95936,390.82635 C 185.87603,392.20762 180.00000,398.37076 180.00000,397.07690 z M 297.27083,394.39583 C 297.60312,394.06354 298.46562,394.02802 299.18750,394.31689 C 299.98523,394.63611 299.74828,394.87307 298.58333,394.92105 C 297.52917,394.96447 296.93854,394.72812 297.27083,394.39583 z M 219.50000,380.00000 C 219.16008,379.45000 219.14343,378.57694 219.46300,378.05987 C 219.78257,377.54280 218.66535,375.54951 216.98029,373.63033 C 215.29523,371.71115 212.76426,367.97171 211.35591,365.32046 C 209.94757,362.66921 208.47306,360.27500 208.07922,360.00000 C 206.18605,358.67808 190.65537,332.61488 191.57763,332.30746 C 193.31295,331.72902 191.63707,322.94129 188.84910,318.00000 C 187.45266,315.52500 183.92990,309.28114 181.02075,304.12475 C 174.78818,293.07768 160.33097,263.17501 156.90754,254.25000 C 155.58899,250.81250 154.13464,248.00000 153.67564,248.00000 C 149.82076,248.00000 166.54718,287.30418 183.17036,317.30749 C 187.45589,325.04247 190.79695,331.53638 190.59494,331.73839 C 190.10516,332.22818 178.61825,312.12686 171.88659,299.00000 C 168.92507,293.22500 165.97238,287.93868 165.32505,287.25261 C 163.26524,285.06956 153.02630,263.41448 147.00206,248.50000 C 143.29864,239.33128 142.47420,238.04736 143.47033,243.00000 C 146.27782,256.95842 167.86591,300.60609 185.51124,328.00000 C 198.74801,348.54973 200.49120,351.41087 200.25000,352.19120 C 200.11250,352.63604 200.56250,352.88750 201.25000,352.75000 C 201.93750,352.61250 202.43831,353.28266 202.36290,354.23924 C 202.28750,355.19582 202.60775,355.74242 203.07456,355.45392 C 203.96468,354.90380 208.16440,362.23661 208.68507,365.25000 C 208.85138,366.21250 208.51372,367.00000 207.93471,367.00000 C 207.35570,367.00000 207.13567,367.41050 207.44575,367.91222 C 208.14495,369.04356 205.34865,368.71073 204.27894,367.53529 C 203.85052,367.06452 204.03010,366.98303 204.67800,367.35420 C 205.91045,368.06023 207.65616,364.32282 206.59131,363.25797 C 206.26609,362.93275 206.00000,363.24677 206.00000,363.95578 C 206.00000,364.92082 205.66263,364.96490 204.65799,364.13112 C 203.91989,363.51855 203.01989,363.31345 202.65799,363.67534 C 202.29610,364.03724 201.94375,363.58333 201.87500,362.66667 C 201.73133,360.75102 201.56341,360.07665 200.71301,358.00000 C 200.37516,357.17500 199.61430,354.60650 199.02220,352.29222 C 198.43010,349.97794 197.53639,347.83151 197.03618,347.52236 C 195.47854,346.55968 172.56255,309.20775 164.55139,294.57375 C 156.50116,279.86837 146.33213,257.88319 143.70297,249.50000 C 142.84051,246.75000 141.83784,240.84575 141.47481,236.37945 C 140.94308,229.83763 141.13671,227.63631 142.47080,225.05646 C 143.53701,222.99464 143.89787,220.81151 143.48397,218.92701 C 142.78304,215.73568 141.04787,214.93882 140.92105,217.75000 C 140.87586,218.75188 140.63015,218.97664 140.34631,218.27576 C 140.07362,217.60243 140.50186,216.12158 141.29796,214.98499 L 142.74541,212.91846 L 143.32209,215.12368 C 143.80964,216.98806 144.13844,217.13000 145.44939,216.04201 C 147.25762,214.54131 147.43981,211.76875 145.93289,208.68426 C 144.97769,206.72908 145.06930,206.75255 146.80633,208.90796 L 148.74690,211.31592 L 150.50891,208.62675 C 151.47801,207.14771 152.48405,206.15072 152.74455,206.41122 C 153.00505,206.67171 152.21232,208.29745 150.98293,210.02397 L 148.74768,213.16309 L 151.53283,220.08155 C 153.06466,223.88670 154.69643,227.00000 155.15899,227.00000 C 155.62155,227.00000 155.98943,227.78750 155.97650,228.75000 C 155.94863,230.82605 169.10358,259.22976 169.77978,258.55356 C 170.03575,258.29758 168.55961,253.90582 166.49947,248.79408 C 162.39300,238.60484 157.00000,223.19231 157.00000,221.64575 C 157.00000,219.97806 158.36738,221.93690 158.69309,224.07119 C 160.32628,234.77284 188.63374,297.46929 202.43946,320.96231 C 205.49776,326.16658 208.00000,331.07908 208.00000,331.87898 C 208.00000,332.67887 207.83348,333.14583 207.62995,332.91667 C 206.92055,332.11790 194.66528,309.39838 187.44680,295.50000 C 183.44761,287.80000 177.71249,277.09316 174.70208,271.70702 C 171.69168,266.32088 166.14716,255.18338 162.38092,246.95702 C 158.61469,238.73066 155.21582,232.00000 154.82789,232.00000 C 153.33589,232.00000 152.77426,241.04125 154.06609,244.26378 C 161.37991,262.50857 177.88313,295.64679 189.67517,315.76631 C 194.42465,323.86984 199.08474,331.85000 200.03094,333.50000 C 200.97714,335.15000 204.28226,340.50617 207.37565,345.40259 C 210.46904,350.29902 213.00000,355.12225 213.00000,356.12089 C 213.00000,357.11953 214.78558,362.11336 216.96796,367.21830 C 219.15034,372.32323 220.85457,377.51250 220.75515,378.75000 C 220.55261,381.27107 220.38731,381.43570 219.50000,380.00000 z M 151.96769,248.50000 C 151.11992,239.62652 145.23501,221.82867 143.92359,224.17205 C 141.41502,228.65463 142.62086,235.31589 148.23702,248.00000 C 149.57640,251.02500 150.98159,254.35191 151.35967,255.39313 C 152.57174,258.73118 152.75101,256.69883 151.96769,248.50000 z M 153.41965,232.57659 C 153.89431,230.04647 153.33573,227.25397 151.31714,222.06555 C 149.80525,218.17950 148.26999,215.00000 147.90545,215.00000 C 147.54090,215.00000 146.71546,216.27274 146.07112,217.82831 C 145.08990,220.19718 145.25580,221.61855 147.09244,226.57831 C 148.29850,229.83524 149.67025,233.53958 150.14077,234.81017 C 151.25460,237.81799 152.60951,236.89502 153.41965,232.57659 z M 214.47835,379.03503 C 215.25175,377.78364 210.02731,369.86509 208.89144,370.56709 C 208.41597,370.86095 208.35838,370.20542 208.76347,369.11036 C 209.47942,367.17496 211.41523,366.24124 211.58379,367.75000 C 211.80275,369.70972 214.17443,374.27085 215.98504,376.21432 C 218.54595,378.96313 218.53388,380.00000 215.94098,380.00000 C 214.80852,380.00000 214.15034,379.56576 214.47835,379.03503 z M 332.29816,377.25000 C 333.32986,373.85257 340.98759,352.47320 341.87956,350.50000 C 342.37681,349.40000 344.68615,343.55000 347.01144,337.50000 C 349.33673,331.45000 351.81816,325.37500 352.52573,324.00000 C 353.23331,322.62500 354.56780,319.35962 355.49127,316.74361 C 356.41473,314.12759 357.46948,312.17191 357.83515,312.39765 C 358.20082,312.62339 358.55807,311.83876 358.62904,310.65404 C 358.70001,309.46932 362.89824,298.82500 367.95844,287.00000 C 373.01863,275.17500 377.89455,263.70000 378.79380,261.50000 C 380.98407,256.14159 393.83029,230.99851 398.20893,223.50000 C 405.75531,210.57668 412.66354,199.68195 416.15618,195.19600 C 425.90182,182.67868 442.68204,156.38297 448.98118,143.75706 C 451.89732,137.91199 452.67485,138.24588 450.57185,144.44013 C 449.70733,146.98650 449.00000,149.69167 449.00000,150.45161 C 449.00000,151.21156 448.52528,151.99157 447.94506,152.18498 C 447.36484,152.37839 446.80234,154.17453 446.69506,156.17642 C 446.55093,158.86583 446.18836,159.55936 445.30645,158.83251 C 444.45414,158.13005 444.15117,158.37075 444.24674,159.67441 C 444.40589,161.84534 438.77468,173.75442 434.75400,179.75000 C 433.18646,182.08750 432.12002,184.00000 432.38414,184.00000 C 432.64827,184.00000 431.09328,186.58750 428.92861,189.75000 C 426.76395,192.91250 421.09862,201.35000 416.33899,208.50000 C 411.57937,215.65000 407.37118,221.72500 406.98746,222.00000 C 406.60375,222.27500 404.92557,224.90294 403.25819,227.83986 C 401.42729,231.06479 400.01494,232.64905 399.69223,231.83986 C 399.33223,230.93714 399.13214,231.07537 399.07895,232.26357 C 399.00693,233.87233 397.22165,237.77835 396.00000,239.00000 C 395.72500,239.27500 394.15000,242.08593 392.50000,245.24650 C 390.85000,248.40708 388.97963,250.99458 388.34362,250.99650 C 387.68004,250.99851 387.41012,251.85232 387.71025,253.00000 C 387.99791,254.10000 387.82118,255.00000 387.31752,255.00000 C 386.81386,255.00000 385.83225,256.57500 385.13616,258.50000 C 384.44007,260.42500 383.37467,262.00000 382.76861,262.00000 C 382.16254,262.00000 381.95011,262.28344 382.29654,262.62987 C 382.64297,262.97630 380.89009,267.02630 378.40126,271.62987 C 375.91242,276.23344 374.15442,280.00000 374.49459,280.00000 C 374.83475,280.00000 374.45258,281.23750 373.64531,282.75000 C 372.83804,284.26250 371.61349,287.07500 370.92408,289.00000 C 370.23467,290.92500 369.10179,293.17500 368.40656,294.00000 C 367.71134,294.82500 367.13950,295.72500 367.13581,296.00000 C 367.12112,297.09474 365.66832,300.78814 363.00564,306.50000 C 356.49504,320.46623 355.15214,323.66777 354.51650,326.73853 C 354.14779,328.51973 353.43075,330.23378 352.92306,330.54755 C 352.41538,330.86132 352.00000,331.99148 352.00000,333.05902 C 352.00000,334.15032 351.31753,335.00000 350.44098,335.00000 C 349.58352,335.00000 349.13114,335.40316 349.43568,335.89592 C 349.74022,336.38868 349.31955,338.07618 348.50085,339.64592 C 347.68216,341.21566 347.00955,343.22470 347.00616,344.11045 C 347.00277,344.99620 345.86732,347.39001 344.48293,349.43002 C 343.09853,351.47004 342.42353,352.85628 342.98293,352.51055 C 344.41028,351.62840 344.31235,351.97823 341.50000,357.80794 C 340.12500,360.65818 339.00000,363.57740 339.00000,364.29510 C 339.00000,365.01279 338.46000,366.14000 337.80000,366.80000 C 337.14000,367.46000 336.90731,368.00000 337.28292,368.00000 C 337.65852,368.00000 337.07352,369.58869 335.98292,371.53042 C 334.89231,373.47215 334.00000,375.94715 334.00000,377.03042 C 334.00000,378.11369 333.49752,379.00000 332.88337,379.00000 C 332.26922,379.00000 332.00588,378.21250 332.29816,377.25000 z M 205.68977,310.75000 C 195.31472,292.33556 173.58735,250.07529 174.18960,249.48135 C 174.36032,249.31298 178.93289,257.79830 184.35087,268.33761 C 197.77188,294.44484 202.13617,302.03388 203.31120,301.30766 C 203.86000,300.96849 204.00877,301.17679 203.64180,301.77056 C 202.72108,303.26031 205.05283,308.08538 206.31617,307.30460 C 206.92889,306.92591 207.09347,307.31403 206.72612,308.27135 C 206.38855,309.15104 206.60836,310.03612 207.21459,310.23820 C 208.26161,310.58720 209.48606,315.00000 208.53588,315.00000 C 208.28751,315.00000 207.00677,313.08750 205.68977,310.75000 z M 269.34442,305.45517 C 268.50090,303.25699 271.55809,293.45492 274.51247,288.88515 C 282.94309,275.84489 295.82753,247.49009 296.14080,241.28770 C 296.46589,234.85112 297.81009,250.47650 297.90110,261.75000 L 298.00000,274.00000 L 294.46862,274.00000 C 292.25210,274.00000 290.72291,274.55851 290.36163,275.50000 C 290.04504,276.32500 289.11102,277.00000 288.28602,277.00000 C 287.27842,277.00000 287.00263,277.56446 287.44586,278.71952 C 287.80878,279.66525 287.79718,280.13052 287.42010,279.75343 C 286.77523,279.10857 283.00000,283.10215 283.00000,284.42917 C 283.00000,284.76671 281.82258,286.82209 280.38351,288.99667 C 278.84947,291.31476 278.02675,293.62733 278.39485,294.58657 C 278.84534,295.76053 278.59916,296.06016 277.52334,295.64733 C 276.69870,295.33088 276.10379,295.39328 276.20131,295.78599 C 276.45171,296.79426 271.95295,305.91104 270.87682,306.57613 C 270.38680,306.87898 269.69722,306.37455 269.34442,305.45517 z M 214.62354,287.46134 C 213.65856,284.94665 213.94323,284.29779 215.12207,286.32500 C 215.70576,287.32875 215.97267,288.36066 215.71520,288.61813 C 215.45773,288.87560 214.96648,288.35504 214.62354,287.46134 z M 252.25054,284.83311 C 251.19642,282.44990 248.38051,276.00000 245.99295,270.50000 C 241.41416,259.95223 238.14553,254.14130 239.52423,259.00000 C 240.28031,261.66452 247.26575,278.61100 249.54879,283.31931 C 250.40895,285.09321 250.51054,286.00351 249.82276,285.77425 C 249.22155,285.57385 247.86612,283.18016 246.81070,280.45494 C 243.71251,272.45509 231.73764,246.92902 231.29198,247.37469 C 231.06727,247.59940 232.09272,250.64452 233.57076,254.14163 C 240.25104,269.94741 244.99817,282.33517 244.54752,282.78581 C 244.27716,283.05617 243.61599,282.12018 243.07825,280.70582 C 240.55799,274.07701 233.38745,257.75717 230.02626,251.00000 C 227.97437,246.87500 225.46195,241.25000 224.44309,238.50000 C 221.43301,230.37548 211.63768,215.02899 210.30969,216.35698 C 210.06262,216.60405 210.79187,218.63187 211.93024,220.86326 C 214.22098,225.35348 214.37877,226.00000 213.18389,226.00000 C 212.73503,226.00000 211.06836,223.01547 209.48018,219.36772 C 207.89200,215.71997 205.97711,212.11997 205.22486,211.36772 C 204.47262,210.61547 204.27625,210.00000 204.78850,210.00000 C 205.30074,210.00000 206.56469,211.12500 207.59728,212.50000 C 209.14684,214.56341 212.00000,215.95907 212.00000,214.65364 C 212.00000,213.34969 208.27711,207.02294 206.17234,204.75000 C 204.77175,203.23750 204.13765,202.00000 204.76322,202.00000 C 205.38879,202.00000 206.26164,202.56250 206.70288,203.25000 C 207.14413,203.93750 208.79678,205.62500 210.37544,207.00000 L 213.24574,209.50000 L 211.00865,205.00000 C 209.77825,202.52500 207.77857,199.15000 206.56492,197.50000 C 205.35127,195.85000 204.01839,193.82500 203.60296,193.00000 C 202.71480,191.23622 205.45303,194.27668 209.00000,198.99272 C 210.37500,200.82092 212.11676,202.94257 212.87057,203.70750 C 217.49099,208.39606 237.43093,246.46963 245.49448,266.00000 C 248.10589,272.32500 251.31942,279.93102 252.63564,282.90228 C 253.95187,285.87353 254.83491,288.49843 254.59795,288.73539 C 254.36099,288.97234 253.30465,287.21632 252.25054,284.83311 z M 222.03213,226.17864 C 219.75043,221.79293 217.01588,217.41935 215.95533,216.45958 C 214.22210,214.89103 214.25426,215.15881 216.27330,219.10727 C 219.33390,225.09263 225.42227,234.87311 225.84034,234.47596 C 226.02752,234.29815 224.31383,230.56435 222.03213,226.17864 z M 216.94077,279.35028 C 215.18518,275.58263 211.95877,268.90000 209.77098,264.50000 C 207.58320,260.10000 206.25014,256.95000 206.80863,257.50000 C 208.42265,259.08948 221.19783,285.13550 220.63801,285.69532 C 220.36013,285.97321 218.69637,283.11794 216.94077,279.35028 z M 216.94871,273.34502 C 214.09170,267.38026 211.31456,261.65820 210.77730,260.62932 C 210.12447,259.37914 210.13666,258.96642 210.81403,259.38506 C 212.08665,260.17159 223.18763,283.14570 222.58584,283.74749 C 222.34244,283.99090 219.80573,279.30978 216.94871,273.34502 z M 211.57421,281.33278 C 211.22233,280.41581 211.28669,279.31377 211.71722,278.88381 C 212.14775,278.45384 212.56490,279.20409 212.64421,280.55102 C 212.81268,283.41187 212.46852,283.66332 211.57421,281.33278 z M 229.68133,269.75000 C 227.16482,264.11250 221.37865,252.07500 216.82318,243.00000 C 206.81489,223.06239 207.49689,224.57103 208.87791,225.42455 C 209.86035,226.03172 229.00000,264.10420 229.00000,265.45127 C 229.00000,265.72399 230.53880,269.10903 232.41956,272.97357 C 234.30032,276.83810 235.48310,280.00000 235.04796,280.00000 C 234.61282,280.00000 232.19783,275.38750 229.68133,269.75000 z M 190.45888,275.93347 C 190.09635,275.34688 190.01420,274.65247 190.27633,274.39034 C 190.53845,274.12821 191.01939,274.60815 191.34508,275.45687 C 192.02126,277.21898 191.44493,277.52893 190.45888,275.93347 z M 232.52568,269.04966 C 230.78553,265.68459 230.60453,264.63756 231.90153,265.43914 C 232.85435,266.02802 235.19562,272.00000 234.47366,272.00000 C 234.24140,272.00000 233.36480,270.67235 232.52568,269.04966 z M 180.62000,253.88000 C 176.37025,244.47142 173.07801,236.58866 173.30392,236.36275 C 173.52982,236.13684 177.18206,243.65961 181.42000,253.08000 C 185.65794,262.50039 188.95018,270.38316 188.73608,270.59725 C 188.52199,270.81134 184.86975,263.28858 180.62000,253.88000 z M 204.95416,266.91435 C 204.34025,265.76725 204.02632,264.64035 204.25654,264.41013 C 204.48676,264.17991 205.18857,265.11845 205.81612,266.49577 C 207.19419,269.52031 206.52321,269.84615 204.95416,266.91435 z M 227.03582,256.74272 C 216.83209,234.42957 213.92968,227.73698 214.29731,227.36936 C 214.92833,226.73833 224.75327,247.25709 229.14605,258.38001 C 232.12034,265.91120 230.73810,264.83875 227.03582,256.74272 z M 199.95416,255.91435 C 199.34025,254.76725 199.02632,253.64035 199.25654,253.41013 C 199.48676,253.17991 200.18857,254.11845 200.81612,255.49577 C 202.19419,258.52031 201.52321,258.84615 199.95416,255.91435 z M 203.45888,252.93347 C 203.09635,252.34688 203.01420,251.65247 203.27633,251.39034 C 203.53845,251.12821 204.01939,251.60815 204.34508,252.45687 C 205.02126,254.21898 204.44493,254.52893 203.45888,252.93347 z M 193.45888,241.93347 C 193.09635,241.34688 193.01420,240.65247 193.27633,240.39034 C 193.53845,240.12821 194.01939,240.60815 194.34508,241.45687 C 195.02126,243.21898 194.44493,243.52893 193.45888,241.93347 z M 200.56429,241.29313 C 200.02161,239.86793 200.13647,239.75307 201.12409,240.73333 C 201.80751,241.41167 202.11476,242.21857 201.80687,242.52646 C 201.49898,242.83435 200.93982,242.27935 200.56429,241.29313 z M 190.14109,234.36342 C 188.93978,231.68294 188.96559,231.60553 190.54497,233.15179 C 191.47291,234.06027 192.05040,235.34881 191.82826,236.01521 C 191.60613,236.68161 190.84690,235.93830 190.14109,234.36342 z M 168.19495,229.50000 C 168.17457,227.85000 168.38201,227.05394 168.65594,227.73097 C 168.92986,228.40800 168.94653,229.75800 168.69299,230.73097 C 168.43945,231.70394 168.21533,231.15000 168.19495,229.50000 z M 140.23200,223.00000 C 140.23200,221.07500 140.43780,220.28750 140.68933,221.25000 C 140.94085,222.21250 140.94085,223.78750 140.68933,224.75000 C 140.43780,225.71250 140.23200,224.92500 140.23200,223.00000 z M 129.50000,224.00000 C 129.16008,223.45000 129.35852,223.00000 129.94098,223.00000 C 130.52344,223.00000 131.00000,223.45000 131.00000,224.00000 C 131.00000,224.55000 130.80156,225.00000 130.55902,225.00000 C 130.31648,225.00000 129.83992,224.55000 129.50000,224.00000 z M 206.00000,222.00000 C 205.41130,220.90000 205.15463,220.00000 205.42963,220.00000 C 205.70463,220.00000 206.41130,220.90000 207.00000,222.00000 C 207.58870,223.10000 207.84537,224.00000 207.57037,224.00000 C 207.29537,224.00000 206.58870,223.10000 206.00000,222.00000 z M 131.00000,220.91065 C 128.84623,219.14897 128.80390,219.01430 130.69431,219.93826 C 131.90118,220.52813 133.16523,221.45834 133.50332,222.00538 C 134.40590,223.46578 133.79973,223.20069 131.00000,220.91065 z M 178.40499,220.84520 L 176.50000,218.69040 L 179.25000,220.46021 C 182.08556,222.28508 182.62179,223.00000 181.15499,223.00000 C 180.69023,223.00000 179.45273,222.03034 178.40499,220.84520 z M 200.31442,211.25000 C 199.97188,210.28750 199.46647,209.09297 199.19130,208.59549 C 198.91613,208.09801 199.15619,207.97850 199.72478,208.32991 C 200.76650,208.97373 202.18922,213.00000 201.37500,213.00000 C 201.13422,213.00000 200.65697,212.21250 200.31442,211.25000 z M 199.12433,198.70934 C 197.91529,196.39420 197.50521,195.36051 198.21304,196.41225 C 198.92087,197.46399 200.27109,199.13508 201.21353,200.12578 C 202.15596,201.11648 202.56604,202.15017 202.12481,202.42286 C 201.68358,202.69556 200.33336,201.02447 199.12433,198.70934 z M 203.56429,199.29313 C 203.02161,197.86793 203.13647,197.75307 204.12409,198.73333 C 204.80751,199.41167 205.11476,200.21857 204.80687,200.52646 C 204.49898,200.83435 203.93982,200.27935 203.56429,199.29313 z M 173.87244,197.25000 C 172.62857,195.66394 172.66394,195.62857 174.25000,196.87244 C 175.91575,198.17881 176.44548,199.00000 175.62244,199.00000 C 175.41479,199.00000 174.62729,198.21250 173.87244,197.25000 z M 200.45888,193.93347 C 200.09635,193.34688 200.01420,192.65247 200.27633,192.39034 C 200.53845,192.12821 201.01939,192.60815 201.34508,193.45687 C 202.02126,195.21898 201.44493,195.52893 200.45888,193.93347 z M 194.87244,185.25000 C 193.62857,183.66394 193.66394,183.62857 195.25000,184.87244 C 196.91575,186.17881 197.44548,187.00000 196.62244,187.00000 C 196.41479,187.00000 195.62729,186.21250 194.87244,185.25000 z M 194.50000,140.47475 C 188.45000,134.36336 183.49930,128.94392 183.49845,128.43156 C 183.49759,127.91920 182.53772,126.15000 181.36539,124.50000 C 178.27338,120.14812 175.32492,113.34676 173.61839,106.62958 C 171.92950,99.981880 172.09364,100.05439 178.98415,109.00000 C 184.96636,116.76641 192.27316,124.05721 198.66233,128.63509 L 204.82466,133.05044 L 205.52362,141.44135 C 205.90805,146.05635 206.06000,150.22693 205.86129,150.70931 C 205.66258,151.19170 200.55000,146.58614 194.50000,140.47475 z M 227.00000,142.12500 C 227.00000,139.99375 226.73568,136.92841 226.41263,135.31314 C 225.89440,132.72201 226.49632,131.73607 231.52559,126.93814 C 234.66078,123.94716 238.98929,119.13750 241.14451,116.25000 C 243.29973,113.36250 245.43847,111.00000 245.89727,111.00000 C 246.35607,111.00000 246.40420,112.68750 246.00423,114.75000 C 244.48452,122.58654 239.14055,132.90191 233.24288,139.38302 C 231.68225,141.09803 230.10329,143.28845 229.73407,144.25061 C 228.55189,147.33133 227.00000,146.12481 227.00000,142.12500 z M 452.00000,136.50000 C 452.00000,135.67500 452.43588,135.00000 452.96862,135.00000 C 453.50135,135.00000 453.67821,135.67500 453.36163,136.50000 C 453.04504,137.32500 452.60917,138.00000 452.39301,138.00000 C 452.17686,138.00000 452.00000,137.32500 452.00000,136.50000 z M 247.07895,108.58333 C 247.03553,107.52917 247.27187,106.93854 247.60417,107.27083 C 247.93646,107.60313 247.97198,108.46563 247.68311,109.18750 C 247.36389,109.98523 247.12693,109.74828 247.07895,108.58333 z " id="path1309" style="fill:#6f6d6e"/>
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/france.svg b/PerformanceTests/PageLoad/svg/files/france.svg
new file mode 100644
index 000000000..457fd2042
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/france.svg
@@ -0,0 +1,663 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!--Note: This file is the result of an export from MapInfo using DBx Geomatics 'SVGMapMaker' Version 1.00 (Mapbasic program) licensed to DBx Geomatics
+You may copy, modify, and distribute this file, if you include this notice and do not charge for the distribution. This file is provided 'as is' without warranties of any kind, including any implied warranties.-->
+<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="913px" height="642px" viewBox="0 0 4565 3210" enableZoomAndPanControls="false" style="shape-rendering:geometricPrecision;text-rendering:geometricPrecision;image-rendering:optimizeQuality">
+<script><![CDATA[
+function showToolTip (evt, info){
+var target = get_target(evt);
+var svgdoc = target.getOwnerDocument();
+var svgdocElement = svgdoc.getDocumentElement();
+var scale = svgdocElement.getCurrentScale();
+var translateX = svgdocElement.getCurrentTranslate().getX();
+var translateY = svgdocElement.getCurrentTranslate().getY();
+var pixel = 5 / scale;
+var offsetX = parseFloat(0) - translateX * pixel;
+var offsetY = parseFloat(0) - translateY * pixel;
+var tooltip= 'Tooltip'
+var tooltiprect= 'TooltipRect'
+var svgobj = svgdoc.getElementById (tooltip);
+svgobj.setAttribute ('x', Math.round(offsetX + evt.getClientX() * pixel));
+svgobj.setAttribute ('y', (Math.round(offsetY + evt.getClientY() * pixel-65/scale)));
+var svgstyle = svgobj.getStyle();
+svgstyle.setProperty ('visibility', 'visible');
+svgstyle.setProperty('font-size', 60/scale);
+svgobj1 = svgobj.getFirstChild()
+svgobj1.setData(info);
+var txtlen=svgobj.getComputedTextLength()+50/scale;
+var svgobj = svgdoc.getElementById (tooltiprect);
+svgobj.setAttribute ('x', (Math.round(offsetX + evt.getClientX() * pixel-txtlen/2)));
+svgobj.setAttribute ('y', (Math.round(offsetY + evt.getClientY() * pixel-130/scale)));
+svgobj.setAttribute ('width', txtlen);
+svgobj.setAttribute ('height',75/scale);
+svgobj.setAttribute ('rx', 25/scale);
+svgobj.setAttribute ('ry', 25/scale);
+var svgstyle = svgobj.getStyle();
+svgstyle.setProperty ('visibility', 'visible');
+}
+function hideToolTip(evt){
+var target = get_target(evt);
+var svgdoc = target.getOwnerDocument();
+var tooltip= 'Tooltip'
+var tooltiprect= 'TooltipRect'
+var svgobj = svgdoc.getElementById (tooltip);
+var svgstyle = svgobj.getStyle();
+svgstyle.setProperty ('visibility', 'hidden');
+var svgobj = svgdoc.getElementById (tooltiprect);
+var svgstyle = svgobj.getStyle();
+svgstyle.setProperty ('visibility', 'hidden');
+}
+function get_target (evt){
+var target = evt.getTarget();
+while (target && !target.getAttribute('id'))
+target = target.getParentNode();
+return target;}
+]]></script>
+<defs>
+<filter id="DropShadow" filterUnits="objectBoundingBox" x="-50%" y="-50%" width="200%" height="200%">
+<feGaussianBlur in="SourceAlpha" stdDeviation="10" result="BlurAlpha"/>
+<feOffset in="BlurAlpha" dx="20" dy="20" result="OffsetBlurAlpha"/>
+<feMerge><feMergeNode in="OffsetBlurAlpha"/> <feMergeNode in="SourceGraphic"/></feMerge></filter>
+<radialGradient id="Gradient4" gradientUnits="objectBoundingBox" cx=".5" cy=".5" x1="0" y1="1" x2="0" y2="0">
+<stop offset="0" style="stop-color:rgb(213,218,172)"/>
+<stop offset="1" style="stop-color:rgb(154,158,124)"/>
+</radialGradient>
+<style type="text/css">
+<![CDATA[
+@font-face{font-family:'MapInfo Real Estate';src:url(MapInfoRealEstate.cef)}
+@font-face{font-family:'MapInfo Cartographic';src:url(MapInfoCartographic.cef)}
+@font-face{font-family:'MapInfo Miscellaneous';src:url(MapInfoMiscellaneous.cef)}
+@font-face{font-family:'MapInfo Oil&Gas';src:url(MapInfoOil&Gas.cef)}
+@font-face{font-family:'MapInfo Real Estate';src:url(MapInfoRealEstate.cef)}
+@font-face{font-family:'MapInfo Symbols';src:url(MapInfoSymbols.cef)}
+@font-face{font-family:'MapInfo Transportation';src:url(MapInfoTransportation.cef)}
+@font-face{font-family:'MapInfo Weather';src:url(MapInfoWeather.cef)}]]>
+</style>
+<style type="text/css">
+<![CDATA[
+.b2-12648384-16777215 {fill:rgb(192,255,192);fill-rule:evenodd;stroke-linejoin:round}
+.b2-16777215-16777215 {fill:rgb(255,255,255);fill-rule:evenodd;stroke-linejoin:round}
+.b2-16777215-0 {fill:rgb(255,255,255);fill-rule:evenodd;stroke-linejoin:round}
+.b2-0-16777215 {fill:rgb(0,0,0);fill-rule:evenodd;stroke-linejoin:round}
+.p120 {stroke:rgb(0,0,0);stroke-width:2.22222;}
+.p1216711680 {stroke:rgb(255,0,0);stroke-width:2.22222;}
+.s6007MapInfoSymbols0 {stroke:none;fill:rgb(0,0,0);font-size:45;font-family:'MapInfo Symbols';}
+.fArial01001 {fill:rgb(0,0,0);font-weight:normal;font-family:'Arial'}
+.fVerdana01001 {fill:rgb(0,0,0);font-weight:normal;font-family:'Verdana'}
+.fVerdana11001 {fill:rgb(0,0,0);font-weight:bold;font-family:'Verdana'}
+]]>
+</style>
+</defs>
+<title>Frcty609,Frcty274,...,France Map</title>
+<desc>Map Zoom: 975.553 km | Center (3.14564,46.1617) | Min (-7.06057,41.1917) | Max (13.3518,51.1316) | Coordinate System: Longitude / Latitude</desc>
+<g id="France" style="opacity:1.0;filter:url(#DropShadow);pointer-events:none;">
+<path id="France1" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M3119 2189 L3140 2210 3148 2230 3180 2241 3182 2240 3191 2247 3201 2245 3215 2258 3223 2260 3251 2254 3276 2260 3287 2249 3295 2253 3292 2266 3308 2281 3309 2290 3305 2295 3293 2296 3294 2303 3285 2316 3273 2319 3272 2337 3257 2343 3261 2361 3261 2380 3241 2396 3226 2398 3223 2410 3217 2413 3213 2407 3203 2407 3198 2417 3179 2432 3180 2449 3177 2454 3164 2448 3152 2452 3133 2461 3134 2475 3128 2482 3121 2493 3094 2496 3089 2493 3080 2520 3051 2542 3072 2545 3073 2563 3065 2568 3061 2575 3051 2567 3041 2569 3037 2578 3004 2586 3003 2597 2995 2598 2984 2590 2965 2591 2958 2605 2957 2618 2945 2618 2944 2615 2948 2605 2943 2601 2924 2601 2925 2597 2916 2593 2907 2595 2899 2592 2899 2606 2876 2603 2875 2592 2853 2579 2849 2571 2836 2570 2827 2571 2814 2560 2806 2562 2801 2558 2795 2564 2785 2556 2773 2557 2774 2549 2780 2545 2772 2532 2774 2521 2766 2510 2751 2521 2737 2520 2717 2522 2706 2519 2696 2511 2683 2490 2671 2492 2663 2488 2663 2496 2656 2496 2665 2505 2660 2508 2658 2521 2641 2515 2611 2515 2605 2508 2622 2506 2623 2497 2614 2494 2615 2501 2612 2502 2607 2498 2603 2484 2573 2480 2565 2484 2552 2480 2528 2480 2535 2458 2553 2443 2569 2432 2570 2414 2576 2403 2585 2393 2596 2393 2607 2400 2617 2390 2622 2370 2623 2352 2645 2330 2652 2316 2665 2305 2647 2274 2634 2271 2635 2249 2631 2235 2622 2225 2622 2215 2625 2203 2623 2194 2637 2191 2649 2196 2655 2219 2680 2218 2705 2214 2709 2209 2715 2209 2721 2216 2726 2216 2733 2210 2738 2209 2741 2211 2740 2216 2735 2218 2733 2223 2734 2230 2738 2235 2758 2230 2767 2236 2780 2230 2786 2234 2790 2251 2800 2266 2814 2267 2821 2264 2830 2246 2845 2260 2854 2259 2853 2240 2849 2225 2840 2217 2839 2205 2821 2200 2809 2193 2802 2185 2797 2171 2807 2167 2803 2158 2808 2151 2825 2155 2836 2155 2842 2146 2833 2131 2843 2121 2849 2102 2866 2101 2884 2089 2879 2077 2888 2065 2912 2066 2917 2049 2928 2039 2941 2044 2950 2033 2960 2030 2974 2031 2986 2027 3003 2032 3006 2015 2995 1995 2993 1989 2976 1982 2973 1968 2983 1945 2995 1946 3006 1951 3012 1965 3028 1968 3036 1955 3062 1947 3069 1961 3070 1976 3087 1979 3088 1998 3093 2014 3107 2027 3135 2031 3148 2038 3147 2049 3150 2066 3165 2083 3162 2089 3151 2084 3137 2083 3133 2093 3132 2109 3124 2123 3118 2125 3114 2136 3120 2148 3119 2150 3127 2161 3121 2166 3124 2175 3119 2189
+ M2666 2179 2669 2171 2680 2164 2701 2172 2701 2187 2697 2194 2688 2201 2678 2200 2673 2198 2669 2193 2666 2179
+ Z" />
+<path id="France2" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M765 792 L749 790 737 786 724 786 717 807 709 800 698 805 694 787 687 785 674 794 667 792 646 794 636 804 620 808 622 801 611 799 576 815 568 813 561 820 570 825 554 825 556 835 532 834 519 843 514 859 518 864 524 865 515 873 512 882 518 893 517 912 526 911 536 903 545 906 558 903 565 898 571 902 586 890 615 882 616 886 590 901 588 908 601 910 610 903 625 904 618 912 626 912 637 922 629 925 620 923 602 929 591 921 577 924 567 912 558 917 562 925 553 929 554 934 564 935 563 943 567 960 571 960 580 942 614 950 625 970 622 981 608 979 535 999 527 1009 560 1017 568 1009 597 1032 609 1049 613 1066 605 1071 606 1081 641 1081 650 1068 648 1048 658 1063 665 1060 660 1039 670 1023 670 1040 678 1060 691 1062 689 1055 699 1049 721 1078 741 1082 742 1068 748 1075 756 1070 754 1079 763 1086 767 1083 791 1088 802 1099 811 1111 825 1110 829 1096 842 1086 851 1086 845 1100 836 1114 847 1117 859 1128 862 1116 875 1100 881 1109 874 1120 870 1133 879 1144 881 1174 882 1180 895 1183 888 1167 890 1152 905 1152 921 1158 923 1152 913 1137 919 1135 931 1147 940 1145 942 1136 951 1136 965 1130 967 1141 975 1141 979 1137 981 1142 980 1149 973 1151 973 1159 967 1161 938 1158 932 1165 946 1169 954 1181 962 1176 969 1173 982 1177 986 1172 995 1169 994 1175 1020 1167 1050 1171 1041 1180 1024 1180 1023 1187 1036 1193 1062 1188 1075 1172 1097 1172 1107 1166 1115 1151 1119 1137 1123 1129 1130 1122 1136 1120 1146 1123 1164 1110 1210 1105 1216 1089 1239 1080 1255 1067 1286 1084 1299 1083 1303 1073 1323 1027 1355 1012 1332 922 1347 900 1344 869 1339 849 1315 837 1303 838 1273 861 1258 853 1247 849 1239 830 1233 805 1200 812 1183 813 1172 809 1165 800 1176 791 1170 785 1158 790 1145 787 1134 796 1132 804 1143 834 1132 826 1124 810 1105 810 1091 825 1081 806 1066 815 1062 795 1044 807 1031 806 1026 816 1011 820 989 844 977 845 974 835 955 822 951 801 934 790 924 768 901 762 910 757 908 749 896 751 888 759 889 749 896 730 869 744 864 755 862 737 856 737 852 745 833 750 822 757 798 746 791 758 791 776 784 782 783 794 765 792
+ M853 1220 860 1231 859 1237 866 1242 873 1240 890 1246 898 1237 882 1232 879 1228 877 1220 867 1217 859 1212 853 1220
+ Z" />
+<path id="France3" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M1675 543 L1655 539 1617 537 1606 531 1596 521 1601 508 1617 478 1616 468 1624 458 1692 424 1712 412 1762 400 1777 400 1792 390 1822 386 1846 370 1873 355 1892 340 1954 383 1967 400 1974 424 1976 446 1964 462 1973 471 1965 487 1969 501 1965 517 1978 527 1968 572 1974 586 1989 602 1982 607 1966 602 1959 613 1951 647 1936 657 1899 674 1898 688 1916 691 1916 703 1910 708 1901 727 1885 736 1881 760 1844 763 1831 750 1824 773 1795 778 1769 790 1760 800 1749 771 1740 753 1720 744 1714 725 1690 724 1668 717 1674 701 1679 687 1678 677 1669 666 1670 622 1665 608 1653 587 1649 551 1663 549 1675 543
+ Z" />
+<path id="France4" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2064 1526 L2020 1522 1986 1522 1973 1515 1961 1532 1949 1529 1946 1535 1923 1526 1909 1534 1903 1545 1893 1542 1877 1536 1865 1541 1853 1541 1844 1537 1839 1516 1829 1492 1820 1486 1803 1480 1792 1475 1782 1464 1782 1452 1785 1431 1777 1419 1760 1401 1755 1387 1744 1373 1741 1353 1729 1344 1715 1340 1707 1353 1677 1362 1651 1355 1647 1330 1644 1321 1637 1314 1595 1291 1598 1242 1620 1221 1627 1187 1633 1170 1627 1158 1634 1142 1642 1137 1663 1152 1673 1142 1663 1134 1669 1124 1685 1129 1712 1124 1714 1109 1715 1101 1743 1080 1752 1065 1754 1045 1767 1043 1771 1022 1770 1003 1762 987 1770 979 1781 969 1763 953 1762 927 1750 910 1761 898 1782 900 1794 883 1798 868 1789 856 1799 842 1765 813 1760 800 1769 790 1795 778 1824 773 1831 750 1844 763 1881 760 1885 736 1901 727 1910 708 1916 703 1934 730 1932 758 1942 766 1941 793 1974 826 1989 864 2010 873 2019 880 2027 893 2027 902 2018 912 2030 914 2047 918 2061 913 2069 908 2071 899 2080 900 2086 911 2099 905 2113 909 2123 923 2145 933 2149 947 2129 967 2141 971 2164 966 2183 974 2192 963 2208 959 2212 968 2244 952 2264 974 2264 981 2258 993 2268 999 2274 1011 2276 1025 2258 1041 2256 1050 2260 1069 2256 1082 2241 1087 2223 1088 2219 1101 2231 1109 2238 1115 2244 1135 2242 1152 2239 1157 2227 1160 2222 1169 2227 1184 2229 1198 2219 1229 2223 1236 2237 1247 2244 1254 2244 1272 2254 1288 2251 1312 2266 1328 2259 1363 2264 1379 2261 1390 2253 1407 2234 1408 2215 1427 2184 1426 2175 1438 2167 1446 2151 1453 2149 1466 2159 1475 2159 1488 2138 1493 2109 1494 2085 1525 2064 1526
+ Z" />
+<path id="France5" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M1674 701 L1668 717 1690 724 1714 725 1720 744 1740 753 1749 771 1760 800 1765 813 1799 842 1789 856 1798 868 1794 883 1782 900 1761 898 1750 910 1762 927 1763 953 1753 952 1743 947 1726 927 1710 932 1691 911 1677 914 1667 902 1666 871 1645 859 1603 881 1569 876 1566 868 1553 867 1548 843 1535 832 1525 833 1507 850 1499 849 1495 855 1471 850 1443 861 1425 857 1407 863 1392 852 1359 848 1339 849 1315 837 1303 838 1273 861 1258 853 1247 849 1239 830 1233 805 1246 810 1262 807 1278 808 1271 793 1251 795 1230 770 1232 751 1223 741 1231 734 1233 678 1225 686 1221 665 1224 621 1227 615 1214 618 1206 597 1185 572 1176 569 1168 532 1159 519 1166 506 1169 496 1166 485 1160 479 1144 471 1147 457 1154 458 1159 462 1169 463 1178 469 1209 477 1219 484 1227 479 1237 476 1253 466 1271 462 1288 466 1301 474 1303 493 1294 501 1287 516 1292 526 1311 543 1322 558 1317 576 1327 576 1335 579 1341 566 1372 562 1397 573 1440 576 1487 578 1504 583 1524 596 1571 583 1611 557 1629 552 1649 551 1653 587 1665 608 1670 622 1669 666 1678 677 1679 687 1674 701
+ Z" />
+<path id="France6" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M1299 1083 L1303 1073 1323 1027 1355 1012 1332 922 1347 900 1344 869 1339 849 1359 848 1392 852 1407 863 1425 857 1443 861 1471 850 1495 855 1499 849 1507 850 1525 833 1535 832 1548 843 1553 867 1566 868 1569 876 1603 881 1645 859 1666 871 1667 902 1677 914 1691 911 1710 932 1726 927 1743 947 1753 952 1763 953 1781 969 1770 979 1762 987 1770 1003 1771 1022 1767 1043 1754 1045 1752 1065 1743 1080 1715 1101 1714 1109 1712 1124 1685 1129 1669 1124 1663 1134 1673 1142 1663 1152 1642 1137 1634 1142 1627 1158 1633 1170 1627 1187 1620 1221 1598 1242 1595 1291 1578 1291 1570 1312 1559 1320 1549 1326 1550 1311 1545 1308 1515 1306 1499 1309 1482 1316 1468 1315 1454 1317 1457 1327 1451 1334 1441 1338 1424 1341 1381 1337 1394 1352 1396 1374 1407 1382 1414 1393 1418 1418 1433 1427 1430 1438 1445 1485 1439 1492 1441 1521 1460 1536 1456 1545 1436 1556 1412 1563 1402 1553 1381 1560 1372 1559 1366 1548 1338 1551 1329 1558 1316 1559 1313 1564 1314 1570 1296 1558 1296 1563 1282 1552 1253 1548 1245 1529 1223 1527 1217 1524 1223 1523 1219 1519 1209 1520 1191 1509 1189 1503 1178 1504 1173 1482 1163 1461 1148 1438 1140 1437 1140 1422 1124 1410 1106 1401 1103 1375 1112 1372 1115 1361 1126 1351 1128 1341 1136 1331 1117 1301 1098 1301 1081 1294 1086 1288 1093 1286 1098 1279 1099 1267 1096 1259 1099 1250 1116 1245 1136 1244 1164 1252 1162 1241 1139 1234 1096 1237 1079 1252 1067 1258 1057 1255 1046 1246 1038 1254 1028 1251 1019 1241 1030 1238 1018 1219 1012 1217 1012 1213 1033 1203 1036 1193 1062 1188 1075 1172 1097 1172 1107 1166 1115 1151 1119 1137 1123 1129 1130 1122 1136 1120 1146 1123 1164 1110 1210 1105 1216 1089 1239 1080 1255 1067 1286 1084 1299 1083
+ Z" />
+<path id="France7" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M1767 1621 L1766 1612 1760 1602 1758 1592 1784 1569 1804 1569 1807 1554 1813 1545 1844 1537 1839 1516 1829 1492 1820 1486 1803 1480 1792 1475 1782 1464 1782 1452 1785 1431 1777 1419 1760 1401 1755 1387 1744 1373 1741 1353 1729 1344 1715 1340 1707 1353 1677 1362 1651 1355 1647 1330 1644 1321 1637 1314 1595 1291 1578 1291 1570 1312 1559 1320 1549 1326 1550 1311 1545 1308 1515 1306 1499 1309 1482 1316 1468 1315 1454 1317 1457 1327 1451 1334 1441 1338 1424 1341 1381 1337 1394 1352 1396 1374 1407 1382 1414 1393 1418 1418 1433 1427 1430 1438 1445 1485 1439 1492 1441 1521 1460 1536 1456 1545 1436 1556 1412 1563 1402 1553 1381 1560 1372 1559 1366 1548 1338 1551 1329 1558 1331 1574 1325 1582 1314 1590 1311 1609 1324 1611 1344 1644 1346 1659 1334 1659 1345 1674 1338 1677 1342 1683 1337 1702 1322 1704 1323 1717 1335 1723 1352 1737 1345 1739 1334 1728 1326 1725 1307 1729 1311 1765 1330 1776 1356 1785 1365 1798 1389 1814 1407 1833 1420 1856 1425 1880 1454 1886 1458 1901 1473 1895 1487 1894 1487 1920 1491 1934 1506 1932 1520 1943 1534 1951 1548 1955 1554 1947 1565 1949 1572 1947 1579 1938 1582 1917 1588 1912 1608 1916 1633 1891 1638 1876 1637 1860 1649 1837 1682 1815 1698 1776 1711 1768 1719 1757 1725 1744 1736 1736 1738 1724 1747 1722 1751 1713 1767 1704 1763 1687 1772 1682 1784 1683 1785 1667 1769 1653 1763 1642 1767 1621
+ M1266 1646 1270 1661 1266 1668 1283 1687 1291 1691 1297 1697 1303 1721 1309 1717 1311 1703 1314 1701 1313 1695 1312 1688 1305 1679 1305 1666 1302 1661 1296 1661 1286 1657 1274 1645 1266 1646
+ M1232 1580 1236 1593 1244 1595 1249 1594 1275 1603 1283 1609 1295 1609 1299 1604 1295 1601 1292 1595 1284 1595 1275 1589 1261 1588 1263 1585 1254 1584 1251 1588 1247 1588 1244 1585 1245 1581 1251 1580 1249 1574 1244 1573 1232 1580
+ Z" />
+<path id="France8" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M1579 1938 L1572 1947 1565 1949 1554 1947 1548 1955 1534 1951 1520 1943 1506 1932 1491 1934 1487 1920 1487 1894 1473 1895 1458 1901 1454 1886 1425 1880 1439 1957 1448 1966 1463 1970 1475 1983 1456 1984 1440 1975 1424 1951 1419 1938 1404 1876 1397 1864 1379 1849 1373 1838 1343 1814 1342 1800 1329 1812 1319 1938 1296 2094 1301 2102 1306 2096 1305 2087 1309 2079 1321 2066 1319 2063 1325 2059 1346 2077 1352 2092 1340 2096 1327 2096 1323 2092 1312 2099 1310 2111 1300 2130 1303 2156 1288 2237 1279 2304 1259 2401 1251 2430 1242 2454 1230 2469 1220 2478 1209 2491 1209 2496 1203 2496 1185 2501 1185 2505 1182 2507 1183 2512 1192 2514 1193 2524 1199 2528 1204 2527 1213 2532 1217 2539 1226 2543 1232 2532 1266 2540 1270 2549 1264 2584 1259 2590 1251 2597 1252 2604 1261 2613 1277 2617 1279 2597 1282 2592 1291 2591 1293 2608 1300 2612 1306 2609 1321 2616 1325 2622 1332 2620 1343 2628 1352 2630 1357 2637 1369 2642 1376 2640 1384 2643 1409 2637 1415 2645 1417 2658 1431 2665 1435 2672 1445 2681 1454 2695 1459 2694 1468 2683 1487 2689 1508 2675 1506 2661 1517 2647 1514 2636 1515 2623 1538 2610 1537 2596 1574 2547 1572 2526 1583 2524 1578 2494 1564 2496 1563 2488 1565 2482 1569 2478 1571 2472 1567 2460 1561 2451 1553 2445 1536 2438 1526 2438 1525 2425 1532 2399 1538 2353 1531 2344 1531 2336 1551 2329 1573 2318 1580 2335 1595 2341 1596 2317 1626 2303 1642 2309 1655 2304 1668 2302 1681 2288 1708 2287 1714 2284 1722 2292 1730 2295 1743 2279 1755 2270 1763 2263 1780 2251 1783 2232 1788 2219 1777 2202 1780 2187 1805 2188 1814 2182 1810 2171 1806 2146 1802 2134 1823 2120 1833 2107 1837 2093 1856 2084 1870 2073 1873 2055 1893 2030 1898 2020 1898 2009 1894 1989 1900 1982 1889 1954 1895 1936 1875 1933 1868 1923 1856 1918 1861 1908 1861 1899 1856 1893 1857 1883 1875 1867 1869 1851 1860 1843 1827 1826 1835 1812 1824 1812 1812 1800 1805 1788 1783 1786 1775 1794 1768 1799 1759 1797 1752 1792 1752 1771 1747 1765 1719 1757 1711 1768 1698 1776 1682 1815 1649 1837 1637 1860 1638 1876 1633 1891 1608 1916 1588 1912 1582 1917 1579 1938
+ Z" />
+<path id="France9" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M1767 2680 L1744 2677 1734 2672 1729 2677 1731 2689 1727 2694 1727 2706 1732 2710 1733 2724 1715 2721 1686 2720 1671 2725 1655 2715 1646 2728 1639 2724 1637 2716 1633 2715 1629 2716 1621 2709 1578 2725 1570 2724 1562 2711 1553 2707 1545 2691 1534 2694 1508 2675 1506 2661 1517 2647 1514 2636 1515 2623 1538 2610 1537 2596 1574 2547 1572 2526 1583 2524 1578 2494 1564 2496 1563 2488 1565 2482 1569 2478 1571 2472 1567 2460 1561 2451 1553 2445 1536 2438 1526 2438 1525 2425 1532 2399 1538 2353 1531 2344 1531 2336 1551 2329 1573 2318 1580 2335 1595 2341 1596 2317 1626 2303 1642 2309 1655 2304 1668 2302 1681 2288 1708 2287 1714 2284 1722 2292 1730 2295 1743 2279 1755 2270 1763 2263 1780 2251 1783 2232 1788 2219 1777 2202 1780 2187 1805 2188 1814 2182 1810 2171 1806 2146 1802 2134 1823 2120 1833 2107 1837 2093 1856 2084 1870 2073 1873 2055 1893 2030 1898 2020 1898 2009 1894 1989 1900 1982 1917 1974 1931 1970 1941 1974 1978 2004 1987 2004 2008 1993 2015 2000 2023 1993 2031 1991 2041 1997 2044 2019 2048 2029 2065 2048 2059 2072 2061 2083 2066 2096 2074 2106 2081 2097 2088 2093 2133 2101 2134 2091 2146 2080 2152 2063 2160 2052 2168 2029 2188 2012 2202 2008 2202 2029 2209 2027 2218 2028 2223 2037 2226 2047 2232 2051 2236 2081 2248 2099 2255 2112 2269 2129 2268 2147 2276 2157 2281 2167 2282 2175 2281 2221 2302 2233 2308 2244 2329 2247 2331 2251 2328 2260 2321 2269 2317 2277 2319 2283 2344 2296 2348 2306 2340 2313 2329 2331 2326 2340 2310 2341 2300 2371 2267 2364 2260 2406 2236 2407 2225 2418 2196 2431 2187 2425 2179 2422 2171 2424 2166 2433 2175 2465 2176 2477 2158 2493 2145 2494 2130 2490 2108 2496 2085 2487 2078 2493 2073 2507 2056 2501 2037 2503 2028 2491 2011 2490 2006 2500 1990 2489 1982 2501 1979 2518 1961 2528 1959 2537 1960 2559 1965 2573 1975 2581 1993 2588 2010 2589 2023 2631 2011 2649 2022 2663 2018 2673 1997 2684 2008 2711 2018 2716 2044 2713 2056 2729 2055 2738 2039 2740 2018 2748 2001 2761 1993 2764 1975 2759 1964 2762 1966 2753 1939 2742 1931 2736 1921 2738 1914 2737 1912 2748 1908 2753 1899 2754 1887 2725 1882 2721 1878 2714 1865 2716 1856 2713 1840 2719 1833 2716 1828 2703 1822 2696 1801 2695 1793 2691 1780 2692 1767 2680
+ Z" />
+<path id="France10" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2137 1750 L2120 1730 2121 1711 2127 1706 2140 1701 2146 1690 2154 1682 2161 1669 2150 1631 2150 1616 2140 1584 2132 1573 2123 1566 2095 1552 2085 1525 2064 1526 2020 1522 1986 1522 1973 1515 1961 1532 1949 1529 1946 1535 1923 1526 1909 1534 1903 1545 1893 1542 1877 1536 1865 1541 1853 1541 1844 1537 1813 1545 1807 1554 1804 1569 1784 1569 1758 1592 1760 1602 1766 1612 1767 1621 1763 1642 1769 1653 1785 1667 1784 1683 1772 1682 1763 1687 1767 1704 1751 1713 1747 1722 1738 1724 1736 1736 1725 1744 1719 1757 1747 1765 1752 1771 1752 1792 1759 1797 1768 1799 1775 1794 1783 1786 1805 1788 1812 1800 1824 1812 1835 1812 1827 1826 1860 1843 1869 1851 1875 1867 1857 1883 1856 1893 1861 1899 1861 1908 1856 1918 1868 1923 1875 1933 1895 1936 1889 1954 1900 1982 1917 1974 1931 1970 1941 1974 1978 2004 1987 2004 2008 1993 2015 2000 2023 1993 2031 1991 2041 1997 2054 1997 2058 1991 2057 1980 2053 1976 2051 1964 2066 1953 2076 1934 2076 1924 2070 1910 2083 1890 2089 1888 2092 1882 2098 1879 2103 1868 2103 1852 2111 1845 2120 1853 2132 1856 2135 1827 2134 1788 2142 1773 2142 1758 2137 1750
+ Z" />
+<path id="France11" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2163 659 L2173 656 2181 657 2192 664 2207 657 2214 657 2222 664 2251 658 2263 660 2266 653 2274 653 2283 652 2291 658 2310 703 2337 709 2345 729 2359 733 2358 753 2349 764 2351 799 2373 804 2373 814 2354 836 2342 856 2343 885 2260 898 2262 919 2258 936 2244 952 2212 968 2208 959 2192 963 2183 974 2164 966 2141 971 2129 967 2149 947 2145 933 2123 923 2113 909 2099 905 2086 911 2080 900 2071 899 2069 908 2061 913 2047 918 2030 914 2018 912 2027 902 2027 893 2019 880 2010 873 1989 864 1974 826 1941 793 1942 766 1932 758 1934 730 1916 703 1916 691 1898 688 1899 674 1936 657 1951 647 1959 613 1997 633 2008 633 2039 624 2055 621 2074 642 2090 639 2097 629 2130 638 2140 649 2149 655 2163 659
+ Z" />
+<path id="France12" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2697 612 L2699 623 2688 634 2697 648 2706 681 2707 695 2697 695 2694 710 2683 718 2677 733 2676 753 2699 772 2702 791 2704 811 2758 849 2780 857 2804 882 2791 891 2796 904 2822 914 2843 938 2859 947 2862 956 2853 965 2845 987 2874 1006 2875 1026 2883 1030 2884 1041 2893 1047 2877 1061 2862 1069 2851 1073 2852 1105 2844 1117 2830 1119 2825 1109 2812 1117 2793 1117 2786 1125 2788 1135 2757 1147 2754 1135 2738 1118 2716 1118 2712 1110 2696 1107 2684 1086 2689 1081 2689 1067 2666 1042 2664 1026 2652 1020 2654 1011 2634 1009 2614 1004 2606 1009 2600 1023 2565 1022 2553 1027 2541 1030 2531 1034 2523 1024 2504 1035 2472 1031 2451 1035 2459 1015 2443 1017 2439 994 2423 962 2407 965 2397 951 2385 949 2392 918 2369 899 2350 896 2343 885 2342 856 2354 836 2373 814 2373 804 2351 799 2349 764 2358 753 2359 733 2363 720 2379 710 2396 692 2398 678 2390 672 2396 655 2393 640 2404 634 2419 638 2422 632 2401 618 2408 603 2402 588 2423 576 2435 578 2450 562 2466 560 2492 581 2496 555 2497 533 2492 519 2496 503 2480 496 2480 489 2486 483 2507 478 2517 461 2533 441 2529 427 2530 418 2533 409 2534 397 2530 377 2541 374 2551 379 2577 384 2609 369 2617 369 2622 366 2628 366 2627 358 2630 352 2632 337 2634 333 2642 329 2643 324 2659 313 2671 316 2674 320 2668 327 2669 332 2667 335 2665 332 2662 334 2662 343 2657 344 2663 351 2658 357 2655 371 2651 371 2651 378 2663 381 2666 387 2671 390 2672 399 2667 408 2663 408 2670 424 2665 433 2681 435 2686 431 2697 431 2699 437 2711 443 2712 444 2718 443 2724 453 2725 460 2729 462 2732 459 2734 460 2734 468 2752 471 2755 469 2760 470 2772 482 2765 489 2767 495 2773 493 2775 494 2769 510 2759 512 2735 499 2723 533 2725 564 2716 578 2715 586 2717 598 2704 604 2697 612
+ Z" />
+<path id="France13" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2291 356 L2273 346 2250 344 2225 349 2205 346 2196 339 2200 328 2194 325 2179 332 2163 322 2150 318 2122 331 2117 315 2137 296 2131 286 2120 286 2105 291 2086 291 2061 295 2050 292 2039 274 2022 266 2022 252 2006 256 1987 246 1950 257 1930 246 1926 261 1927 276 1936 280 1939 288 1952 292 1953 307 1927 293 1915 300 1914 314 1906 327 1892 340 1954 383 1967 400 1974 424 1976 446 1964 462 1973 471 1965 487 1969 501 1965 517 1978 527 1968 572 1974 586 1989 602 1982 607 1966 602 1959 613 1997 633 2008 633 2039 624 2055 621 2074 642 2090 639 2097 629 2130 638 2140 649 2149 655 2163 659 2173 656 2181 657 2192 664 2207 657 2214 657 2222 664 2251 658 2263 660 2266 653 2274 653 2283 652 2291 658 2310 703 2337 709 2345 729 2359 733 2363 720 2379 710 2396 692 2398 678 2390 672 2396 655 2393 640 2404 634 2419 638 2422 632 2401 618 2408 603 2402 588 2423 576 2435 578 2450 562 2466 560 2492 581 2496 555 2497 533 2492 519 2496 503 2480 496 2480 489 2486 483 2507 478 2517 461 2533 441 2529 427 2530 418 2533 409 2534 397 2530 377 2522 380 2518 376 2508 373 2506 370 2510 366 2476 361 2479 349 2462 355 2435 345 2417 343 2391 349 2377 346 2360 358 2333 349 2321 359 2302 353 2291 356
+ Z" />
+<path id="France14" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2541 1030 L2531 1034 2523 1024 2504 1035 2472 1031 2451 1035 2459 1015 2443 1017 2439 994 2423 962 2407 965 2397 951 2385 949 2392 918 2369 899 2350 896 2343 885 2260 898 2262 919 2258 936 2244 952 2264 974 2264 981 2258 993 2268 999 2274 1011 2276 1025 2258 1041 2256 1050 2260 1069 2256 1082 2241 1087 2223 1088 2219 1101 2231 1109 2238 1115 2244 1135 2242 1152 2239 1157 2227 1160 2222 1169 2227 1184 2229 1198 2219 1229 2223 1236 2237 1247 2244 1254 2244 1272 2254 1288 2251 1312 2266 1328 2259 1363 2264 1379 2261 1390 2253 1407 2253 1419 2273 1428 2280 1437 2286 1442 2295 1445 2311 1432 2328 1438 2339 1432 2351 1436 2354 1452 2374 1439 2382 1415 2389 1417 2389 1424 2389 1433 2403 1453 2409 1484 2422 1494 2445 1503 2460 1507 2468 1513 2468 1522 2465 1532 2470 1557 2455 1570 2456 1580 2452 1590 2478 1607 2488 1603 2502 1600 2524 1605 2542 1606 2552 1602 2559 1589 2563 1572 2571 1567 2600 1571 2630 1566 2630 1599 2642 1602 2656 1602 2663 1581 2663 1563 2668 1547 2678 1533 2678 1517 2687 1495 2713 1504 2738 1498 2751 1513 2766 1519 2791 1505 2792 1497 2779 1487 2784 1476 2793 1463 2795 1449 2783 1423 2785 1408 2772 1397 2801 1391 2794 1381 2784 1374 2770 1368 2766 1362 2755 1358 2756 1345 2770 1335 2771 1319 2784 1316 2792 1306 2811 1242 2806 1219 2794 1215 2794 1202 2787 1190 2789 1180 2801 1178 2805 1168 2808 1155 2801 1144 2788 1135 2757 1147 2754 1135 2738 1118 2716 1118 2712 1110 2696 1107 2684 1086 2689 1081 2689 1067 2666 1042 2664 1026 2652 1020 2654 1011 2634 1009 2614 1004 2606 1009 2600 1023 2565 1022 2553 1027 2541 1030
+ Z" />
+<path id="France15" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2273 346 L2250 344 2225 349 2205 346 2196 339 2200 328 2194 325 2179 332 2163 322 2150 318 2122 331 2117 315 2137 296 2131 286 2120 286 2105 291 2086 291 2061 295 2050 292 2039 274 2022 266 2022 252 2006 256 1987 246 1950 257 1930 246 1937 241 1927 231 1933 189 1940 185 1927 177 1934 153 1929 132 1939 120 1942 108 1934 81 1950 76 1960 66 1973 50 1985 46 1999 46 2016 38 2048 35 2068 29 2121 21 2150 12 2154 19 2157 39 2159 42 2164 45 2168 54 2163 65 2160 67 2161 69 2163 69 2165 92 2169 96 2169 101 2173 102 2178 99 2181 103 2186 102 2190 104 2191 109 2204 124 2204 129 2208 133 2218 131 2221 136 2231 143 2236 136 2236 132 2240 124 2245 125 2256 115 2273 114 2278 109 2286 112 2296 127 2294 131 2299 134 2308 136 2310 145 2305 149 2314 174 2314 189 2315 194 2329 200 2333 204 2337 204 2347 200 2352 201 2355 196 2365 200 2362 203 2363 207 2378 203 2381 206 2386 204 2395 215 2399 217 2401 227 2401 242 2398 246 2403 260 2410 267 2410 262 2413 264 2416 255 2419 252 2432 250 2434 253 2438 250 2452 259 2466 252 2471 254 2476 251 2482 252 2484 257 2491 263 2493 267 2497 267 2503 274 2503 279 2509 285 2513 282 2509 279 2512 275 2514 278 2523 281 2524 286 2509 300 2511 304 2509 317 2506 321 2505 325 2510 327 2514 324 2519 325 2521 334 2527 346 2520 351 2511 354 2506 362 2510 366 2476 361 2479 349 2462 355 2435 345 2417 343 2391 349 2377 346 2360 358 2333 349 2321 359 2302 353 2291 356 2273 346
+ Z" />
+<path id="France16" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2797 528 L2799 520 2795 517 2798 510 2795 510 2792 501 2784 493 2775 494 2769 510 2759 512 2735 499 2723 533 2725 564 2716 578 2715 586 2717 598 2704 604 2697 612 2699 623 2688 634 2697 648 2706 681 2707 695 2697 695 2694 710 2683 718 2677 733 2676 753 2699 772 2702 791 2704 811 2758 849 2780 857 2804 882 2791 891 2796 904 2822 914 2843 938 2859 947 2862 956 2853 965 2845 987 2874 1006 2875 1026 2883 1030 2900 1028 2905 1023 2926 1027 2933 1012 2946 1009 2953 1011 2963 1031 2974 1034 2983 1032 2991 1029 3014 1035 3029 1049 3039 1052 3052 1036 3065 1048 3108 1070 3126 1059 3137 1011 3155 998 3165 975 3159 967 3177 936 3190 920 3191 912 3181 906 3172 907 3161 905 3162 890 3172 874 3168 868 3172 861 3177 855 3178 843 3193 836 3193 797 3205 774 3205 763 3196 754 3184 750 3175 751 3160 763 3156 759 3154 741 3138 731 3135 727 3141 714 3144 684 3157 678 3166 688 3176 696 3198 702 3212 713 3250 705 3271 714 3299 673 3292 670 3266 667 3260 661 3259 653 3256 650 3256 642 3247 644 3243 639 3217 644 3207 651 3196 648 3185 651 3178 646 3167 647 3163 643 3155 651 3150 650 3146 641 3130 633 3121 632 3114 635 3108 630 3105 638 3094 635 3088 636 3082 630 3083 621 3075 615 3074 608 3068 605 3068 600 3061 595 3057 586 3052 583 3038 553 3025 542 3011 535 3000 539 2997 547 2972 533 2953 534 2930 550 2921 547 2920 540 2903 535 2886 528 2884 516 2877 520 2868 515 2864 516 2864 521 2861 522 2859 520 2854 522 2849 520 2834 523 2834 528 2831 532 2828 526 2824 526 2804 531 2802 534 2797 528
+ Z" />
+<path id="France17" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M3272 975 L3268 991 3271 1003 3281 1014 3283 1024 3278 1033 3278 1042 3274 1050 3274 1060 3268 1073 3269 1089 3267 1094 3263 1109 3262 1119 3275 1145 3272 1156 3262 1162 3254 1176 3242 1180 3240 1192 3231 1200 3215 1195 3202 1197 3185 1188 3187 1176 3178 1178 3178 1159 3172 1151 3163 1142 3151 1135 3154 1110 3153 1102 3143 1093 3116 1079 3108 1070 3126 1059 3137 1011 3155 998 3165 975 3159 967 3177 936 3190 920 3191 912 3181 906 3172 907 3161 905 3162 890 3172 874 3168 868 3172 861 3177 855 3178 843 3193 836 3193 797 3205 774 3205 763 3196 754 3184 750 3175 751 3160 763 3156 759 3154 741 3138 731 3135 727 3141 714 3144 684 3157 678 3166 688 3176 696 3198 702 3212 713 3250 705 3271 714 3299 673 3305 672 3316 675 3328 667 3341 673 3344 671 3353 676 3357 676 3362 680 3400 693 3418 694 3419 697 3412 700 3410 705 3418 708 3404 716 3388 760 3363 770 3356 788 3344 800 3329 807 3322 840 3309 875 3308 909 3299 916 3294 937 3272 975
+ Z" />
+<path id="France18" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2951 1489 L2943 1503 2939 1515 2952 1533 2925 1521 2897 1565 2886 1573 2875 1577 2862 1577 2861 1560 2841 1552 2835 1563 2813 1578 2805 1576 2801 1558 2786 1556 2781 1534 2769 1531 2766 1519 2791 1505 2792 1497 2779 1487 2784 1476 2793 1463 2795 1449 2783 1423 2785 1408 2772 1397 2801 1391 2794 1381 2784 1374 2770 1368 2766 1362 2755 1358 2756 1345 2770 1335 2771 1319 2784 1316 2792 1306 2811 1242 2806 1219 2794 1215 2794 1202 2787 1190 2789 1180 2801 1178 2805 1168 2808 1155 2801 1144 2788 1135 2786 1125 2793 1117 2812 1117 2825 1109 2830 1119 2844 1117 2852 1105 2851 1073 2862 1069 2877 1061 2893 1047 2884 1041 2883 1030 2900 1028 2905 1023 2926 1027 2933 1012 2946 1009 2953 1011 2963 1031 2974 1034 2983 1032 2991 1029 3014 1035 3029 1049 3039 1052 3052 1036 3065 1048 3108 1070 3116 1079 3143 1093 3153 1102 3154 1110 3151 1135 3163 1142 3172 1151 3178 1159 3178 1178 3159 1179 3140 1176 3140 1183 3134 1190 3115 1218 3125 1219 3148 1208 3156 1219 3146 1224 3142 1234 3133 1240 3133 1248 3129 1253 3116 1265 3108 1282 3086 1293 3080 1308 3068 1314 3057 1335 3025 1346 3016 1357 3021 1373 3015 1389 3021 1404 2995 1422 2945 1470 2953 1483 2951 1489
+ Z" />
+<path id="France19" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M3681 3000 L3684 2980 3689 2966 3714 2930 3722 2896 3716 2881 3722 2869 3718 2779 3700 2746 3701 2721 3710 2687 3706 2649 3707 2642 3692 2627 3676 2631 3675 2645 3678 2659 3669 2670 3673 2677 3669 2686 3678 2713 3674 2721 3668 2722 3669 2729 3659 2731 3647 2716 3624 2716 3610 2731 3607 2737 3598 2743 3590 2741 3569 2746 3563 2750 3552 2753 3549 2762 3542 2766 3534 2758 3531 2759 3528 2773 3520 2779 3514 2796 3512 2812 3506 2811 3496 2823 3489 2825 3494 2840 3503 2837 3505 2852 3514 2853 3518 2863 3488 2873 3495 2880 3493 2900 3512 2919 3517 2918 3520 2922 3526 2937 3515 2945 3510 2952 3512 2958 3493 2962 3503 2974 3499 2986 3520 2982 3532 2978 3541 2984 3536 2998 3530 2999 3534 3008 3529 3013 3522 3013 3520 3026 3508 3027 3508 3034 3514 3036 3517 3040 3529 3039 3533 3045 3542 3044 3547 3054 3562 3055 3554 3064 3532 3076 3536 3087 3534 3091 3539 3098 3545 3100 3544 3108 3558 3114 3565 3120 3574 3124 3595 3127 3599 3137 3609 3135 3607 3155 3616 3156 3629 3161 3641 3147 3633 3147 3636 3135 3642 3132 3649 3104 3667 3091 3660 3088 3651 3089 3654 3080 3671 3071 3676 3062 3681 3000
+ Z" />
+<path id="France20" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2656 1602 L2642 1602 2630 1599 2630 1566 2600 1571 2571 1567 2563 1572 2559 1589 2552 1602 2542 1606 2524 1605 2502 1600 2488 1603 2478 1607 2452 1590 2456 1580 2455 1570 2443 1577 2428 1583 2435 1657 2433 1666 2425 1669 2411 1666 2409 1674 2406 1684 2415 1693 2409 1727 2427 1757 2432 1776 2459 1798 2458 1850 2451 1860 2448 1868 2466 1864 2486 1872 2520 1860 2530 1865 2548 1869 2553 1874 2560 1899 2583 1905 2580 1926 2560 1948 2556 1958 2556 1974 2544 1981 2539 1996 2527 2000 2513 2025 2480 2030 2468 2040 2459 2051 2453 2066 2451 2082 2452 2108 2462 2119 2469 2137 2473 2158 2488 2175 2487 2203 2498 2201 2512 2206 2531 2219 2545 2204 2552 2199 2560 2200 2570 2213 2586 2202 2601 2209 2622 2215 2625 2203 2623 2194 2637 2191 2649 2196 2655 2219 2680 2218 2705 2214 2709 2209 2715 2209 2721 2216 2726 2216 2733 2210 2738 2209 2741 2211 2740 2216 2735 2218 2733 2223 2734 2230 2738 2235 2758 2230 2767 2236 2780 2230 2786 2234 2790 2251 2800 2266 2814 2267 2821 2264 2830 2246 2845 2260 2854 2259 2853 2240 2849 2225 2840 2217 2839 2205 2821 2200 2809 2193 2802 2185 2797 2171 2807 2167 2803 2158 2808 2151 2825 2155 2836 2155 2842 2146 2833 2131 2843 2121 2849 2102 2866 2101 2884 2089 2879 2077 2888 2065 2912 2066 2917 2049 2928 2039 2941 2044 2950 2033 2960 2030 2974 2031 2986 2027 3003 2032 3006 2015 2995 1995 2993 1989 2976 1982 2973 1968 2983 1945 2995 1946 3006 1951 3012 1965 3028 1968 3036 1955 3062 1947 3094 1934 3115 1943 3123 1938 3119 1931 3133 1925 3137 1918 3146 1914 3164 1914 3176 1896 3172 1881 3185 1860 3179 1847 3160 1830 3157 1814 3142 1808 3145 1773 3127 1772 3122 1763 3110 1758 3106 1754 3101 1730 3103 1719 3106 1717 3122 1715 3124 1712 3130 1711 3138 1703 3153 1682 3151 1669 3144 1658 3126 1639 3115 1635 3118 1609 3097 1606 3099 1591 3098 1578 3108 1572 3113 1564 3110 1553 3102 1544 3093 1542 3101 1517 3081 1509 3068 1510 3059 1507 3034 1508 3022 1521 3015 1523 3009 1530 2995 1523 2976 1538 2966 1556 2978 1555 2971 1568 2981 1571 2962 1602 2952 1604 2942 1603 2929 1609 2911 1606 2913 1588 2937 1584 2943 1578 2942 1567 2958 1538 2952 1533 2925 1521 2897 1565 2886 1573 2875 1577 2862 1577 2861 1560 2841 1552 2835 1563 2813 1578 2805 1576 2801 1558 2786 1556 2781 1534 2769 1531 2766 1519 2751 1513 2738 1498 2713 1504 2687 1495 2678 1517 2678 1533 2668 1547 2663 1563 2663 1581 2656 1602
+ M2666 2179 2669 2171 2680 2164 2701 2172 2701 2187 2697 2194 2688 2201 2678 2200 2673 2198 2669 2193 2666 2179
+ Z" />
+<path id="France21" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2150 1616 L2150 1631 2161 1669 2154 1682 2146 1690 2140 1701 2127 1706 2121 1711 2120 1730 2137 1750 2142 1758 2142 1773 2134 1788 2135 1827 2132 1856 2120 1853 2111 1845 2103 1852 2103 1868 2098 1879 2092 1882 2089 1888 2083 1890 2070 1910 2076 1924 2076 1934 2066 1953 2051 1964 2053 1976 2057 1980 2058 1991 2054 1997 2041 1997 2044 2019 2048 2029 2065 2048 2059 2072 2061 2083 2066 2096 2074 2106 2081 2097 2088 2093 2133 2101 2134 2091 2146 2080 2152 2063 2160 2052 2168 2029 2188 2012 2202 2008 2202 2029 2209 2027 2218 2028 2223 2037 2226 2047 2232 2051 2236 2081 2248 2099 2256 2077 2263 2052 2268 2039 2280 2021 2296 2027 2307 2020 2307 2007 2319 2006 2331 2000 2342 1998 2342 2010 2351 2034 2356 2042 2370 2043 2381 2037 2385 2027 2395 2025 2400 2035 2414 2038 2422 2049 2453 2066 2459 2051 2468 2040 2480 2030 2513 2025 2527 2000 2539 1996 2544 1981 2556 1974 2556 1958 2560 1948 2580 1926 2583 1905 2560 1899 2553 1874 2548 1869 2530 1865 2520 1860 2486 1872 2466 1864 2448 1868 2451 1860 2458 1850 2459 1798 2432 1776 2427 1757 2409 1727 2415 1693 2406 1684 2409 1674 2411 1666 2425 1669 2433 1666 2435 1657 2428 1583 2443 1577 2455 1570 2470 1557 2465 1532 2468 1522 2468 1513 2460 1507 2445 1503 2422 1494 2409 1484 2403 1453 2389 1433 2389 1424 2389 1417 2382 1415 2374 1439 2354 1452 2351 1436 2339 1432 2328 1438 2311 1432 2295 1445 2286 1442 2280 1437 2273 1428 2253 1419 2253 1407 2234 1408 2215 1427 2184 1426 2175 1438 2167 1446 2151 1453 2149 1466 2159 1475 2159 1488 2138 1493 2109 1494 2085 1525 2095 1552 2123 1566 2132 1573 2140 1584 2150 1616
+ Z" />
+<path id="France22" class="p120 b2-12648384-16777215" style="fill:url(#Gradient4);" d="M2158 2493 L2176 2477 2175 2465 2166 2433 2171 2424 2179 2422 2187 2425 2196 2431 2225 2418 2236 2407 2260 2406 2267 2364 2300 2371 2310 2341 2326 2340 2329 2331 2340 2313 2348 2306 2344 2296 2319 2283 2317 2277 2321 2269 2328 2260 2331 2251 2329 2247 2308 2244 2302 2233 2281 2221 2282 2175 2281 2167 2276 2157 2268 2147 2269 2129 2255 2112 2248 2099 2256 2077 2263 2052 2268 2039 2280 2021 2296 2027 2307 2020 2307 2007 2319 2006 2331 2000 2342 1998 2342 2010 2351 2034 2356 2042 2370 2043 2381 2037 2385 2027 2395 2025 2400 2035 2414 2038 2422 2049 2453 2066 2451 2082 2452 2108 2462 2119 2469 2137 2473 2158 2488 2175 2487 2203 2498 2201 2512 2206 2531 2219 2545 2204 2552 2199 2560 2200 2570 2213 2586 2202 2601 2209 2622 2215 2622 2225 2631 2235 2635 2249 2634 2271 2647 2274 2665 2305 2652 2316 2645 2330 2623 2352 2622 2370 2617 2390 2607 2400 2596 2393 2585 2393 2576 2403 2570 2414 2569 2432 2553 2443 2535 2458 2528 2480 2514 2477 2504 2471 2501 2463 2503 2455 2494 2449 2471 2452 2427 2488 2417 2491 2409 2500 2392 2509 2368 2540 2347 2534 2337 2533 2306 2556 2284 2580 2273 2599 2262 2595 2260 2603 2267 2607 2262 2638 2255 2634 2251 2640 2263 2652 2262 2685 2258 2720 2264 2774 2277 2779 2278 2790 2287 2801 2266 2808 2255 2796 2239 2795 2233 2801 2218 2800 2207 2812 2178 2814 2170 2829 2163 2832 2147 2827 2132 2829 2125 2822 2116 2821 2102 2816 2087 2806 2079 2811 2054 2813 2036 2826 2025 2826 2020 2822 2014 2812 2007 2809 2006 2802 1986 2790 1971 2790 1962 2784 1964 2762 1975 2759 1993 2764 2001 2761 2018 2748 2039 2740 2055 2738 2056 2729 2044 2713 2018 2716 2008 2711 1997 2684 2018 2673 2022 2663 2011 2649 2023 2631 2010 2589 1993 2588 1975 2581 1965 2573 1960 2559 1959 2537 1961 2528 1979 2518 1982 2501 1990 2489 2006 2500 2011 2490 2028 2491 2037 2503 2056 2501 2073 2507 2078 2493 2085 2487 2108 2496 2130 2490 2145 2494 2158 2493
+ Z" />
+<g id="France_Labels">
+<text x="2135" y="793" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Ile De France</text>
+<text x="2617" y="730" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Champagne-ardenne</text>
+<text x="2213" y="489" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Picardie</text>
+<text x="1793" y="570" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Haute-normandie</text>
+<text x="1935" y="1124" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Centre</text>
+<text x="1472" y="705" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Basse-normandie</text>
+<text x="2515" y="1246" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Bourgogne</text>
+<text x="2227" y="189" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Nord-pas-de-calais</text>
+<text x="2988" y="781" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Lorraine</text>
+<text x="3264" y="934" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Alsace</text>
+<text x="2967" y="1293" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Franche-comte</text>
+<text x="1397" y="1201" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Pays De La Loire</text>
+<text x="934" y="961" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Bretagne</text>
+<text x="1576" y="1623" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Poitou-charentes</text>
+<text x="1541" y="2226" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Aquitaine</text>
+<text x="1927" y="2367" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Midi-pyrenees</text>
+<text x="1940" y="1760" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Limousin</text>
+<text x="2796" y="1881" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Rhone-alpes</text>
+<text x="2312" y="1756" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Auvergne</text>
+<text x="2312" y="2415" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Languedoc-roussillon</text>
+<text x="2919" y="2281" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Provence-alpes-cote D'azur</text>
+<text x="3605" y="2894" style="fill:rgb(0,0,0);font-weight:normal;text-anchor:middle;font-size:40;font-family:'Arial'">Corse</text>
+ </g>
+ </g>
+<g id="Fr_hiway" style="opacity:1.0;pointer-events:none;">
+<path id="Fr_hiway1" class="p1216711680" style="fill:none" d="M2085 734 L2090 727
+"/>
+<path id="Fr_hiway2" class="p1216711680" style="fill:none" d="M1993 1012 L1993 1030
+"/>
+<path id="Fr_hiway3" class="p1216711680" style="fill:none" d="M2005 835 L2006 865 2004 878 1997 901 1992 945 1994 971 1991 1003 1993 1011
+"/>
+<path id="Fr_hiway4" class="p1216711680" style="fill:none" d="M2052 740 L2067 738 2085 734
+"/>
+<path id="Fr_hiway5" class="p1216711680" style="fill:none" d="M2083 783 L2079 787 2074 791 2070 795 2066 801 2053 813 2042 817 2026 827 2005 835
+"/>
+<path id="Fr_hiway6" class="p1216711680" style="fill:none" d="M1611 1000 L1612 997 1615 995 1630 993 1638 995 1661 995 1688 987 1705 975 1714 973 1762 950 1786 945 1796 940 1813 937 1826 934 1840 924 1852 922 1865 918 1876 910 1892 904 1902 895 1912 889 1918 874 1923 866 1925 863 1949 856 1959 849 1970 847 1988 842 1998 839 2005 835
+"/>
+<path id="Fr_hiway7" class="p1216711680" style="fill:none" d="M1993 1030 L1992 1037 1991 1043
+"/>
+<path id="Fr_hiway8" class="p1216711680" style="fill:none" d="M1611 1000 L1600 998 1584 1000 1579 1003 1573 1006 1545 1008 1536 1011 1525 1008 1516 1010 1498 1001 1490 997 1480 997 1454 989 1443 987 1436 988 1426 981 1412 977 1398 975 1390 979 1372 988 1355 985 1345 984 1330 981 1318 988 1309 987 1292 986 1283 985 1259 978 1226 973 1210 972 1209 970 1206 968 1201 969 1195 972 1173 960 1152 955 1144 951 1128 950 1121 944 1107 940 1097 924 1094 923 1082 916 1073 906 1070 901 1056 892 1049 891 1027 874 1023 866 1019 864 1011 862 1007 859 985 855 971 853 969 851 964 844 959 835 955 833 943 835 937 841 923 839 912 840 881 832 875 833 870 832 862 828 855 827 843 827 824 832 815 833 806 834 799 829 762 823 756 825 726 820 723 818 719 820 716 825 711 831 697 840 670 843 618 854 585 870 579 870 579 880
+"/>
+<path id="Fr_hiway9" class="p1216711680" style="fill:none" d="M1457 2056 L1456 2046
+"/>
+<path id="Fr_hiway10" class="p1216711680" style="fill:none" d="M1883 2461 L1876 2473 1871 2476 1874 2480 1863 2510 1824 2544 1796 2567 1793 2571 1785 2580 1783 2583 1781 2585 1775 2589 1768 2589 1755 2588 1737 2590 1725 2588 1707 2598 1697 2596 1662 2601 1656 2590 1649 2572 1640 2568 1630 2571 1619 2560 1614 2558 1594 2562 1590 2561 1584 2554 1580 2555 1556 2550 1547 2539 1536 2532 1523 2528 1516 2523 1497 2517 1477 2509 1439 2482 1428 2484 1423 2479 1405 2475 1388 2468 1375 2459 1342 2458 1328 2453 1319 2457 1312 2457 1306 2461 1298 2474 1297 2478 1281 2481 1272 2479 1263 2462
+"/>
+<path id="Fr_hiway11" class="p1216711680" style="fill:none" d="M1193 2517 L1200 2515 1227 2489 1244 2476 1258 2471 1262 2467 1263 2462
+"/>
+<path id="Fr_hiway12" class="p1216711680" style="fill:none" d="M1219 1252 L1222 1250 1225 1249 1243 1244 1250 1243 1260 1237 1267 1223 1276 1215 1349 1199 1355 1201 1373 1194 1389 1193 1405 1195 1417 1190 1424 1184 1431 1187 1433 1186 1450 1180 1456 1180 1460 1182 1462 1181
+"/>
+<path id="Fr_hiway13" class="p1216711680" style="fill:none" d="M1462 1181 L1469 1175 1477 1170 1491 1170 1508 1158 1510 1153 1512 1145 1521 1138 1523 1129 1519 1119 1520 1114 1523 1109 1535 1099 1540 1090 1551 1067 1560 1055 1562 1043 1573 1029 1601 1011 1605 1006 1611 1000
+"/>
+<path id="Fr_hiway14" class="p1216711680" style="fill:none" d="M1437 2052 L1434 2050 1432 2046 1431 2040 1432 2034 1431 2031 1435 2023 1440 2017 1447 2016 1452 2017 1454 2018 1457 2018 1458 2018 1459 2018 1460 2018 1461 2018 1462 2018 1464 2017 1473 2004 1484 1987 1486 1980 1484 1970 1472 1944 1471 1927 1469 1918 1463 1909 1457 1891 1451 1872 1450 1871 1444 1858 1446 1850 1446 1845 1442 1825 1448 1789 1446 1784 1440 1774 1433 1756 1428 1739 1430 1733 1433 1723 1439 1715 1443 1693 1451 1680 1455 1669 1461 1643 1465 1606 1476 1589 1491 1564 1498 1558 1513 1544 1520 1543 1558 1522 1562 1520 1572 1515 1579 1512 1603 1498 1621 1494 1642 1477 1643 1465 1646 1461 1648 1460 1657 1453 1657 1447 1662 1426 1667 1417 1691 1402 1695 1395 1696 1389 1697 1363 1701 1351 1705 1328 1710 1316 1711 1299 1713 1289 1733 1244 1735 1239 1737 1224 1739 1217 1740 1212
+"/>
+<path id="Fr_hiway15" class="p1216711680" style="fill:none" d="M1883 2461 L1883 2457 1897 2439
+"/>
+<path id="Fr_hiway16" class="p1216711680" style="fill:none" d="M1263 2462 L1267 2443 1268 2433 1266 2420 1267 2415 1304 2393 1306 2376 1318 2347 1326 2331 1342 2312 1351 2297 1355 2285 1356 2273 1364 2256 1373 2234 1383 2201 1391 2184 1397 2159 1395 2152 1389 2137 1390 2129 1392 2121 1393 2118 1392 2099 1396 2089 1412 2077 1418 2068 1431 2057 1437 2052
+"/>
+<path id="Fr_hiway17" class="p1216711680" style="fill:none" d="M1457 2056 L1456 2058 1448 2059 1441 2057 1440 2056 1437 2052
+"/>
+<path id="Fr_hiway18" class="p1216711680" style="fill:none" d="M1898 2410 L1896 2402 1889 2374 1877 2351 1877 2329 1876 2324 1875 2321 1870 2313 1866 2310 1842 2289 1834 2282 1823 2281 1810 2285 1793 2282 1776 2283 1746 2264 1732 2258 1722 2259 1708 2256 1702 2249 1695 2246 1689 2240 1675 2237 1648 2225 1641 2218 1638 2212 1636 2192 1631 2182 1609 2160 1590 2146 1579 2141 1570 2139 1559 2130 1525 2132 1521 2132 1497 2108 1468 2079 1457 2056
+"/>
+<path id="Fr_hiway19" class="p1216711680" style="fill:none" d="M1897 2439 L1891 2433 1891 2429 1892 2428 1895 2425 1894 2421 1894 2419 1898 2410
+"/>
+<path id="Fr_hiway20" class="p1216711680" style="fill:none" d="M2247 2574 L2226 2576 2193 2568 2181 2568 2172 2569 2161 2568 2138 2568 2098 2561 2080 2553 2049 2549 2035 2543 2025 2538 2011 2528 1994 2521 1975 2505 1962 2496 1946 2488 1939 2480 1919 2462 1914 2451 1905 2443
+"/>
+<path id="Fr_hiway21" class="p1216711680" style="fill:none" d="M2265 2270 L2268 2275 2275 2273 2276 2276 2273 2280 2279 2290 2283 2302 2290 2309 2296 2318 2300 2327 2316 2342 2319 2348 2317 2350 2316 2356 2320 2377 2322 2381 2322 2387 2319 2388 2322 2397 2329 2403
+"/>
+<path id="Fr_hiway22" class="p1216711680" style="fill:none" d="M1897 2439 L1898 2440 1900 2443 1905 2443
+"/>
+<path id="Fr_hiway23" class="p1216711680" style="fill:none" d="M1905 2443 L1912 2434 1913 2424 1910 2417 1908 2416 1898 2410
+"/>
+<path id="Fr_hiway24" class="p1216711680" style="fill:none" d="M2329 2403 L2359 2415 2362 2414 2373 2416 2386 2423 2410 2418 2423 2422 2427 2426 2441 2427 2443 2428 2447 2422 2451 2419 2461 2416 2463 2413 2473 2412
+"/>
+<path id="Fr_hiway25" class="p1216711680" style="fill:none" d="M2375 2481 L2353 2467 2346 2469 2348 2460 2346 2455 2350 2441 2343 2422 2340 2417 2335 2417 2328 2409 2327 2406 2329 2403
+"/>
+<path id="Fr_hiway26" class="p1216711680" style="fill:none" d="M2375 2481 L2384 2473 2396 2470 2407 2464 2432 2450 2445 2442 2453 2433 2460 2429 2466 2417 2473 2412
+"/>
+<path id="Fr_hiway27" class="p1216711680" style="fill:none" d="M2660 2271 L2642 2254 2634 2240 2633 2226 2639 2211 2639 2205 2641 2156 2654 2125 2658 2111 2652 2087 2651 2066 2651 2060 2659 2042 2669 2012 2670 2009 2672 2001
+"/>
+<path id="Fr_hiway28" class="p1216711680" style="fill:none" d="M1739 1203 L1750 1186 1764 1176 1793 1164 1822 1146 1824 1144 1832 1139 1834 1138 1870 1136 1876 1134 1896 1114 1932 1083 1940 1075 1961 1056 1979 1044 1991 1043
+"/>
+<path id="Fr_hiway29" class="p1216711680" style="fill:none" d="M1739 1203 L1740 1212
+"/>
+<path id="Fr_hiway30" class="p1216711680" style="fill:none" d="M1993 1030 L2002 1031
+"/>
+<path id="Fr_hiway31" class="p1216711680" style="fill:none" d="M1218 485 L1221 490 1222 497 1228 503 1230 510 1245 519 1245 523 1250 527 1255 525 1264 527 1270 530 1275 539 1278 545 1282 554 1292 569 1295 581 1298 588 1310 587 1318 586 1325 587 1331 585 1337 579 1342 576 1355 576 1379 582 1418 598 1420 602 1424 602 1425 601 1468 624 1485 628 1495 627 1498 624 1501 623 1504 627 1507 633 1509 633 1515 634 1522 635 1531 634 1534 632 1538 627 1560 616 1579 610 1581 609 1594 609 1606 605 1615 604 1616 603 1623 601 1625 595 1640 593 1644 592 1660 580 1667 582 1685 573 1688 567 1699 561 1718 567 1773 574 1788 580 1802 581 1806 580 1813 579 1819 581 1822 584 1829 592 1833 602 1840 607 1844 611 1855 629 1872 646 1879 655 1897 668 1913 682 1933 684 1942 691 1962 696 1969 701 1994 701 2005 698 2027 713 2029 724 2036 732 2048 739 2052 740
+"/>
+<path id="Fr_hiway32" class="p1216711680" style="fill:none" d="M2083 783 L2086 780 2091 781
+"/>
+<path id="Fr_hiway33" class="p1216711680" style="fill:none" d="M2148 32 L2125 38 2112 39 2099 41 2084 49 2058 57 2007 61 2020 69 2025 74 2030 88 2048 106 2056 123 2066 132 2076 140 2079 142 2088 159 2107 175 2114 184 2132 191 2138 194 2149 194 2163 201 2164 203 2173 204 2176 205 2182 212 2185 226 2191 232 2195 236 2197 247 2203 253 2220 262 2228 265
+"/>
+<path id="Fr_hiway34" class="p1216711680" style="fill:none" d="M2278 319 L2257 340 2230 353 2224 358
+"/>
+<path id="Fr_hiway35" class="p1216711680" style="fill:none" d="M2224 358 L2221 345 2221 337 2222 331 2222 308 2218 289 2219 288 2221 280 2228 265
+"/>
+<path id="Fr_hiway36" class="p1216711680" style="fill:none" d="M2278 319 L2276 315 2273 311 2273 307 2275 300 2276 297 2258 289 2251 282 2228 265
+"/>
+<path id="Fr_hiway37" class="p1216711680" style="fill:none" d="M2228 265 L2232 259 2244 247 2247 233 2247 228 2244 222 2247 211 2258 202 2262 193 2263 191 2275 173 2281 174 2279 168 2279 167 2279 164 2280 156 2278 152 2275 146 2277 134 2278 131 2290 119
+"/>
+<path id="Fr_hiway38" class="p1216711680" style="fill:none" d="M2224 358 L2223 365 2218 380 2214 406 2211 424 2208 430 2199 460 2199 469 2195 494 2189 514 2188 523 2183 560 2185 568 2185 574 2181 588 2183 600 2180 606 2167 621 2163 622 2161 637 2154 644 2150 654 2151 668 2146 682 2144 689 2137 696 2133 700 2123 708
+"/>
+<path id="Fr_hiway39" class="p1216711680" style="fill:none" d="M2537 671 L2535 695 2537 706 2543 719 2524 775 2519 782 2511 799 2509 821
+"/>
+<path id="Fr_hiway40" class="p1216711680" style="fill:none" d="M2278 319 L2284 327 2289 341 2290 345 2289 365 2291 375 2306 401 2302 410 2303 417 2306 421 2308 424 2314 426 2326 431 2333 437 2348 461 2354 474 2373 489 2397 496 2408 505 2425 512 2442 525 2450 537 2462 567 2473 580 2477 589 2477 592 2470 608 2478 610
+"/>
+<path id="Fr_hiway41" class="p1216711680" style="fill:none" d="M2119 742 L2121 744 2127 746 2132 744 2153 741 2160 743 2186 744 2205 742 2208 742 2215 734 2221 729 2226 726 2236 719 2254 712 2261 705 2269 695 2294 676 2306 674 2324 669 2331 663 2338 662 2370 649 2382 647 2392 642 2411 639 2417 634 2420 625 2439 614 2470 608
+"/>
+<path id="Fr_hiway42" class="p1216711680" style="fill:none" d="M2119 742 L2116 744 2107 748
+"/>
+<path id="Fr_hiway43" class="p1216711680" style="fill:none" d="M2085 734 L2090 727 2097 721 2107 720
+"/>
+<path id="Fr_hiway44" class="p1216711680" style="fill:none" d="M2104 752 L2107 748
+"/>
+<path id="Fr_hiway45" class="p1216711680" style="fill:none" d="M2107 748 L2102 748
+"/>
+<path id="Fr_hiway46" class="p1216711680" style="fill:none" d="M2091 781 L2094 778 2097 774
+"/>
+<path id="Fr_hiway47" class="p1216711680" style="fill:none" d="M2124 814 L2110 798 2103 793 2096 782
+"/>
+<path id="Fr_hiway48" class="p1216711680" style="fill:none" d="M2107 720 L2107 718 2123 708
+"/>
+<path id="Fr_hiway49" class="p1216711680" style="fill:none" d="M2091 781 L2092 781 2096 782
+"/>
+<path id="Fr_hiway50" class="p1216711680" style="fill:none" d="M2096 782 L2097 774
+"/>
+<path id="Fr_hiway51" class="p1216711680" style="fill:none" d="M2104 752 L2105 759 2103 765 2102 768 2097 774
+"/>
+<path id="Fr_hiway52" class="p1216711680" style="fill:none" d="M2102 748 L2099 746 2087 742 2084 737 2085 734
+"/>
+<path id="Fr_hiway53" class="p1216711680" style="fill:none" d="M2102 748 L2104 752
+"/>
+<path id="Fr_hiway54" class="p1216711680" style="fill:none" d="M2107 720 L2114 720 2117 723 2120 732 2120 738 2120 740 2119 742
+"/>
+<path id="Fr_hiway55" class="p1216711680" style="fill:none" d="M2674 1321 L2664 1313 2630 1278 2611 1259 2599 1251 2586 1247 2575 1225 2555 1208 2537 1190 2473 1164 2468 1161 2458 1151 2451 1140 2452 1127 2449 1120 2440 1113 2427 1108 2413 1098 2412 1089 2409 1086 2393 1078 2390 1075 2385 1062 2381 1058 2374 1057 2369 1058 2361 1059 2347 1051 2340 1044 2312 1030 2286 1011 2271 993 2254 978 2232 968 2201 943 2190 930 2187 925 2185 922 2179 919 2164 908 2160 902 2152 888 2151 882 2142 859 2137 832 2133 829 2131 826 2124 814
+"/>
+<path id="Fr_hiway56" class="p1216711680" style="fill:none" d="M2679 1312 L2697 1313
+"/>
+<path id="Fr_hiway57" class="p1216711680" style="fill:none" d="M2691 1293 L2679 1312
+"/>
+<path id="Fr_hiway58" class="p1216711680" style="fill:none" d="M1991 1043 L1989 1064 1992 1092 1998 1110 2009 1124 2014 1136 2024 1148 2026 1155 2029 1202 2034 1212 2037 1256 2054 1265 2066 1278 2073 1299 2086 1305 2104 1319 2115 1328 2118 1332 2126 1389 2121 1410 2123 1429 2135 1451 2138 1466 2157 1503 2164 1507 2170 1509 2181 1526 2188 1530 2206 1535 2217 1546 2223 1548 2235 1548 2239 1549 2243 1553 2247 1562 2260 1566 2269 1575 2271 1593 2275 1604 2275 1619 2270 1631 2269 1643 2272 1659 2269 1674 2277 1679 2281 1685 2282 1695 2284 1711 2277 1722 2276 1724 2276 1729
+"/>
+<path id="Fr_hiway59" class="p1216711680" style="fill:none" d="M2674 1321 L2679 1312
+"/>
+<path id="Fr_hiway60" class="p1216711680" style="fill:none" d="M2672 2001 L2673 1993 2672 1980 2669 1962 2666 1914 2663 1894 2661 1888 2653 1877 2651 1856 2659 1834 2660 1829 2660 1824 2659 1815 2658 1809 2661 1805 2658 1787 2649 1788 2643 1789
+"/>
+<path id="Fr_hiway61" class="p1216711680" style="fill:none" d="M2276 1729 L2286 1730 2296 1727 2295 1718 2306 1712 2320 1711 2367 1699 2375 1694 2381 1693 2391 1694 2410 1705 2419 1706 2428 1700 2449 1705 2482 1706 2496 1719 2503 1728 2514 1737 2516 1741 2518 1745 2515 1767 2515 1773 2516 1778 2524 1797 2534 1814 2546 1827 2553 1831 2558 1833 2564 1834 2570 1839 2572 1838
+"/>
+<path id="Fr_hiway62" class="p1216711680" style="fill:none" d="M2682 1719 L2676 1704 2662 1693 2654 1689 2646 1681 2634 1678
+"/>
+<path id="Fr_hiway63" class="p1216711680" style="fill:none" d="M2572 1839 L2587 1826 2594 1817 2606 1808 2613 1805 2627 1796 2632 1795 2641 1790 2643 1789
+"/>
+<path id="Fr_hiway64" class="p1216711680" style="fill:none" d="M2674 1321 L2671 1329 2663 1356 2662 1396 2662 1398 2662 1399 2662 1404 2661 1404 2659 1406 2656 1411 2656 1416 2661 1430 2662 1443 2672 1473 2672 1495 2671 1499 2655 1547 2652 1556 2651 1569 2646 1587 2646 1589 2636 1641 2638 1660 2637 1663 2634 1677 2634 1680 2633 1682 2634 1693 2637 1698 2638 1700 2642 1704 2644 1717 2644 1718 2644 1724 2648 1732 2653 1737
+"/>
+<path id="Fr_hiway65" class="p1216711680" style="fill:none" d="M2278 1967 L2273 1961 2273 1956 2281 1936 2281 1930 2293 1905 2292 1900 2292 1882 2298 1865 2310 1856 2302 1834 2301 1829 2305 1819 2303 1806 2303 1804 2301 1791 2297 1788 2285 1768 2286 1760 2283 1752 2280 1753 2277 1737 2276 1729
+"/>
+<path id="Fr_hiway66" class="p1216711680" style="fill:none" d="M2653 1737 L2657 1739 2657 1751 2658 1753 2663 1760 2661 1778 2658 1787 2675 1778 2685 1767 2692 1745 2692 1734 2687 1724 2682 1719
+"/>
+<path id="Fr_hiway67" class="p1216711680" style="fill:none" d="M2291 2161 L2289 2167 2274 2178 2272 2187 2265 2191 2263 2195 2264 2198 2265 2216 2261 2222 2261 2226 2266 2237 2267 2258 2264 2267
+"/>
+<path id="Fr_hiway68" class="p1216711680" style="fill:none" d="M2375 2481 L2370 2486 2352 2491 2341 2501 2317 2515 2308 2521 2301 2526 2295 2529 2272 2542 2266 2549 2258 2564 2250 2574 2248 2581 2242 2582 2233 2591 2232 2602 2238 2624 2244 2644 2244 2655 2228 2679 2224 2697 2219 2721 2219 2731 2217 2743 2208 2769 2207 2775 2207 2781 2211 2785 2225 2786
+"/>
+<path id="Fr_hiway69" class="p1216711680" style="fill:none" d="M2279 1968 L2279 1972 2286 1980 2286 1989 2291 1995 2299 2014 2306 2022 2312 2049 2311 2057 2311 2061 2312 2067 2310 2080 2303 2088 2303 2098 2311 2108 2310 2123 2301 2137 2303 2143 2296 2157 2291 2161
+"/>
+<path id="Fr_hiway70" class="p1216711680" style="fill:none" d="M2473 2412 L2476 2406 2490 2395 2502 2393 2512 2382 2521 2382 2525 2379 2533 2367 2538 2361 2552 2364 2560 2362 2568 2346
+"/>
+<path id="Fr_hiway71" class="p1216711680" style="fill:none" d="M2660 2271 L2660 2283 2655 2291 2649 2293 2621 2318 2600 2327 2586 2329 2568 2346
+"/>
+<path id="Fr_hiway72" class="p1216711680" style="fill:none" d="M2691 1293 L2696 1285 2698 1261 2703 1251 2714 1251 2725 1243 2729 1232 2730 1200 2733 1184 2751 1147 2751 1144 2747 1134 2751 1104 2757 1092 2756 1074 2753 1053 2750 1044 2787 1019 2806 1023 2811 1021 2814 1013 2818 999 2838 985 2844 974 2861 955 2883 944 2892 933 2889 917 2888 908 2889 896 2893 888 2892 879 2889 874 2891 867 2901 851 2901 841 2898 838 2899 837 2895 829 2893 802 2896 801 2900 799 2901 795 2903 793 2913 790 2945 788 2946 788 2948 788 2950 785 2956 781 2955 774 2956 769 2953 763 2954 756 2948 755 2941 738 2944 726 2947 709 2945 699 2947 684 2946 663 2947 659 2951 657 2960 653
+"/>
+<path id="Fr_hiway73" class="p1216711680" style="fill:none" d="M2961 626 L2960 626 2958 626 2949 622 2931 632 2922 628 2918 626 2914 625 2893 626 2878 629 2865 637 2853 645 2842 648 2834 648 2825 651 2805 650 2791 653 2785 651 2762 659 2721 660 2716 658 2706 659 2701 657 2697 659 2684 664 2654 666 2653 666 2639 666 2615 677 2598 678 2593 679 2586 680 2571 677 2554 678 2544 675 2538 671 2529 652 2523 646 2519 638 2510 631 2483 614 2479 610
+"/>
+<path id="Fr_hiway74" class="p1216711680" style="fill:none" d="M2698 1313 L2702 1313 2706 1317 2733 1320 2743 1317 2752 1311 2764 1307 2784 1296 2797 1293 2806 1288 2816 1283 2845 1277 2856 1268 2869 1264 2878 1266 2895 1264 2902 1260 2910 1252 2923 1247 2955 1228 2984 1220 2997 1209 3025 1194 3046 1192 3058 1197 3067 1193 3080 1195 3091 1191 3100 1180 3107 1175 3109 1158 3107 1150 3105 1140
+"/>
+<path id="Fr_hiway75" class="p1216711680" style="fill:none" d="M3105 1140 L3105 1136 3122 1124 3144 1111 3167 1102 3170 1101 3177 1098 3204 1093 3211 1089 3225 1078 3232 1071 3238 1071 3251 1078 3258 1080 3263 1079
+"/>
+<path id="Fr_hiway76" class="p1216711680" style="fill:none" d="M3294 767 L3297 771 3300 781 3304 785 3310 795 3308 803 3307 816 3306 826 3308 829 3308 836 3300 841 3300 849 3297 853 3285 884 3262 908 3257 908 3246 919 3240 926 3235 941 3234 949 3229 958 3231 963 3227 966 3225 983 3223 988 3226 992 3230 1006 3228 1011 3222 1037 3225 1079 3229 1090 3238 1099 3255 1129 3268 1144
+"/>
+<path id="Fr_hiway77" class="p1216711680" style="fill:none" d="M3104 645 L3109 652 3115 655 3118 661 3134 669 3152 675 3157 674 3161 680 3162 685 3159 692 3160 699 3170 709 3171 715 3173 722 3173 737 3181 750 3199 763 3203 761 3214 763 3225 766 3238 760 3252 764 3285 762 3294 767
+"/>
+<path id="Fr_hiway78" class="p1216711680" style="fill:none" d="M2750 1043 L2743 1043 2739 1040 2720 1004 2679 988 2649 983 2633 972 2591 952 2573 955 2558 948 2532 949 2514 945 2511 941 2507 931 2507 918 2507 874 2510 839 2509 821
+"/>
+<path id="Fr_hiway79" class="p1216711680" style="fill:none" d="M2961 626 L2961 629 2962 643 2960 647 2961 651 2960 653
+"/>
+<path id="Fr_hiway80" class="p1216711680" style="fill:none" d="M2961 626 L2968 625 2970 627 2977 632 2977 645 2979 648 2990 648 2996 645 3031 644 3035 646 3056 644 3077 646 3081 646 3086 646 3095 645 3104 645
+"/>
+<path id="Fr_hiway81" class="p1216711680" style="fill:none" d="M2948 538 L2948 543 2945 555 2947 571 2953 580 2966 585 2969 587 2968 592 2964 596 2961 626
+"/>
+<path id="Fr_hiway82" class="p1216711680" style="fill:none" d="M3104 645 L3123 632
+"/>
+<path id="Fr_hiway83" class="p1216711680" style="fill:none" d="M2386 241 L2387 236 2390 233
+"/>
+<path id="Fr_hiway84" class="p1216711680" style="fill:none" d="M2278 319 L2284 316 2289 310 2292 307 2296 303 2309 292 2322 287 2324 287 2325 279 2330 272 2331 269 2344 264 2353 256 2358 253 2365 257 2374 257 2382 250 2386 241
+"/>
+<path id="Fr_hiway85" class="p1216711680" style="fill:none" d="M3014 2493 L3046 2486 3071 2477 3081 2474 3085 2465 3092 2459 3099 2449 3118 2451 3127 2450 3134 2445 3140 2435 3153 2433 3166 2427 3175 2408 3184 2406 3185 2397 3201 2392 3211 2393 3227 2382 3237 2380
+"/>
+<path id="Fr_hiway86" class="p1216711680" style="fill:none" d="M2786 2530 L2794 2530 2799 2528 2810 2531 2816 2529 2820 2534 2828 2536 2832 2544 2832 2547 2836 2554 2840 2556 2853 2549 2859 2551 2865 2563 2877 2579 2883 2582 2887 2583 2896 2584 2906 2585 2918 2581 2920 2580 2925 2577 2928 2563 2932 2562 2940 2548
+"/>
+<path id="Fr_hiway87" class="p1216711680" style="fill:none" d="M2672 2001 L2678 1997 2694 1980 2697 1977 2703 1973 2723 1976 2747 1962 2751 1953 2753 1940 2761 1932 2769 1933 2776 1930 2796 1910 2809 1891 2820 1881 2831 1883 2840 1904 2848 1914 2856 1915 2857 1918 2867 1917
+"/>
+<path id="Fr_hiway88" class="p1216711680" style="fill:none" d="M2682 1719 L2706 1714 2713 1711 2722 1699 2729 1696 2742 1695 2763 1671 2763 1665 2767 1659 2769 1651 2768 1641 2763 1633 2782 1619 2798 1617 2807 1609 2820 1607 2829 1610 2840 1597 2852 1598 2857 1601 2860 1609 2866 1612 2874 1627 2890 1633 2913 1618 2922 1614 2942 1616 2952 1614 2968 1601
+"/>
+<path id="Fr_hiway89" class="p1216711680" style="fill:none" d="M2690 1756 L2702 1760 2716 1764 2735 1773 2747 1776 2760 1787 2766 1798 2779 1803 2789 1803 2804 1791 2815 1789 2826 1790 2830 1791 2881 1792 2896 1788 2899 1785
+"/>
+<path id="Fr_hiway90" class="p1216711680" style="fill:none" d="M2747 2441 L2739 2429 2729 2422 2725 2413 2722 2386 2707 2365 2699 2359 2692 2354 2683 2343 2676 2330 2673 2307 2660 2271
+"/>
+<path id="Fr_hiway91" class="p1216711680" style="fill:none" d="M3014 2493 L3010 2494 2982 2496 2944 2491 2898 2477 2889 2475 2881 2473 2879 2473 2868 2473 2822 2469 2814 2460 2802 2461 2794 2460 2790 2458 2774 2452 2767 2443 2760 2440 2747 2441 2758 2475 2760 2483 2758 2492 2761 2498 2772 2495 2777 2497 2782 2501 2781 2503 2785 2513 2785 2527
+"/>
+<path id="Fr_hiway92" class="p1216711680" style="fill:none" d="M2867 1917 L2882 1908 2900 1891 2918 1855 2925 1830 2917 1820 2906 1796 2902 1792 2900 1789 2899 1785
+"/>
+<path id="Fr_hiway93" class="p1216711680" style="fill:none" d="M2945 2541 L2985 2529 3008 2505 3014 2493
+"/>
+<path id="Fr_hiway94" class="p1216711680" style="fill:none" d="M3076 1690 L3065 1686 3061 1680 3060 1673 3055 1661 3054 1654 3045 1634 3028 1628 3016 1639 3006 1636 2997 1625
+"/>
+<path id="Fr_hiway95" class="p1216711680" style="fill:none" d="M2997 1625 L2993 1629 2993 1635 2991 1638 2977 1638 2969 1640 2945 1659 2941 1672 2943 1683 2943 1687 2942 1690 2933 1696 2922 1716 2915 1727 2908 1745 2903 1776 2899 1785
+"/>
+<path id="Fr_hiway96" class="p1216711680" style="fill:none" d="M2997 1625 L2990 1616 2981 1608 2968 1600 2964 1598
+"/>
+ </g>
+<g id="Frcty274" style="opacity:1.0;pointer-events:visible;">
+<text id="Frcty2741" x="940" y="855" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'St-brieuc')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty2742" x="806" y="1102" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Lorient')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty2743" x="552" y="892" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Brest')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty2744" x="1184" y="983" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Rennes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty2745" x="638" y="1019" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Quimper')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty2746" x="1763" y="1153" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Chateau-renault')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty2747" x="1889" y="878" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Chartres')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty2748" x="1484" y="642" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Caen')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty2749" x="1386" y="998" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Laval')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27410" x="1440" y="1193" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Angers')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27411" x="1288" y="906" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Fougeres')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27412" x="1609" y="652" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Lisieux')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27413" x="1817" y="691" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Evreux')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27414" x="1941" y="703" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Mantes-la-jolie')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27415" x="1867" y="785" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Dreux')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27416" x="1576" y="880" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Alencon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27417" x="1604" y="1019" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Le Mans')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27418" x="1603" y="1023" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Le Mans')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27419" x="1985" y="1049" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Orleans')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27420" x="1713" y="1217" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Tours')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27421" x="1828" y="1825" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint-yrieix-la-perche')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27422" x="1635" y="1478" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Poiters')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27423" x="1839" y="1722" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Limoges')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27424" x="1596" y="1781" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Angouleme')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27425" x="1425" y="2041" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bordeaux')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27426" x="1770" y="2155" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Villeneuve-sur-lot')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27427" x="1780" y="2350" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Beaumont')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27428" x="1881" y="2442" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Toulouse')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27429" x="1854" y="2486" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Muret')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27430" x="2008" y="2487" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Revel')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27431" x="1974" y="67" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Calais')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27432" x="1917" y="144" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Boulogne-sur-mer')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27433" x="1970" y="340" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Abbeville')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27434" x="1803" y="401" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Dieppe')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27435" x="1800" y="559" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Rouen')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27436" x="2112" y="611" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Creil')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27437" x="2083" y="42" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Dunkerque')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27438" x="2266" y="150" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Roubaix')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27439" x="2244" y="171" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Lille')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27440" x="2127" y="219" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bruay-en-artois')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27441" x="2184" y="238" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Lens')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27442" x="2248" y="257" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Douai')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27443" x="2343" y="259" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Valenciennes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27444" x="2180" y="284" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Arras')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27445" x="2282" y="320" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Cambrai')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27446" x="2074" y="413" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Amiens')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27447" x="2295" y="427" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'St-quentin')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27448" x="2026" y="561" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Beauvais')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27449" x="2189" y="567" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Compiegne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27450" x="2303" y="575" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Soissons')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27451" x="2296" y="1106" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Toucy')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27452" x="2084" y="743" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'PARIS')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27453" x="2319" y="1027" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Joigny')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27454" x="2357" y="1086" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Auxerre')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27455" x="2345" y="1196" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Clamency')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27456" x="2232" y="1284" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'La Charite')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27457" x="2251" y="1319" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Pougues-les-eaux')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27458" x="2205" y="712" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Meaux')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27459" x="2153" y="849" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Melun')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27460" x="2293" y="958" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Sens')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27461" x="2148" y="1124" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Gien')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27462" x="2095" y="1318" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bourges')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27463" x="2210" y="1399" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Sancoins')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27464" x="2192" y="1515" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Cosne-d\'allier')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27465" x="2138" y="1558" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Montlucon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27466" x="2331" y="1378" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'La Machine')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27467" x="2304" y="1485" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Moulins')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27468" x="2295" y="1567" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint-pourcain Sur-sioule')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27469" x="2327" y="1625" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Vichy')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27470" x="2273" y="1633" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Gannat')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27471" x="2335" y="1678" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Puy Guillaume')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27472" x="2254" y="1701" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Riom')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27473" x="2352" y="1712" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Thiers')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27474" x="2250" y="1737" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Clermont-ferrand')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27475" x="2285" y="1814" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Issoire')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27476" x="2315" y="1894" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Brioude')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27477" x="2351" y="2423" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint-andre-de-sangonis')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27478" x="2249" y="1978" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint-flour')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27479" x="2290" y="2052" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint Chely-dapcher')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27480" x="2341" y="2145" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Mende')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27481" x="2364" y="2208" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Florac')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27482" x="2247" y="2279" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Millau')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27483" x="2343" y="2322" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Le Vigan')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27484" x="2298" y="2397" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Lodeve')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27485" x="2363" y="2496" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Meze')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27486" x="2385" y="2505" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Sete')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27487" x="2277" y="2523" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Beziers')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27488" x="2334" y="2532" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Agde')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27489" x="2238" y="2629" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Port-la-nouvelle')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27490" x="2254" y="2802" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Banyuls-sur-mer')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27491" x="2222" y="2765" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Elne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27492" x="2437" y="1323" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Chateau -chinon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27493" x="2401" y="1465" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bourbon-lancy')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27494" x="2467" y="1472" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Gueugnon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27495" x="2479" y="1524" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Paray-le-monial')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27496" x="2462" y="1578" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Marcigny')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27497" x="2370" y="1587" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Lapalisse')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27498" x="2377" y="1643" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Le Mayet-de-montagne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty27499" x="2470" y="1653" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Roanne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274100" x="2454" y="1748" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Boen')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274101" x="2466" y="1793" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Montbrison')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274102" x="2395" y="1812" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Ambert')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274103" x="2424" y="2438" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Montpellier')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274104" x="2418" y="1882" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Craponne-sur-arzon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274105" x="2480" y="1943" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Yssingeaux')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274106" x="2427" y="1974" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Le Puy')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274107" x="2420" y="2077" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Langogne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274108" x="2471" y="2271" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Ales')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274109" x="2470" y="2381" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Sommieres')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274110" x="2483" y="2415" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Lunel')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274111" x="2435" y="2463" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Palavas-les-flots')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274112" x="2528" y="1142" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Montbard')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274113" x="2392" y="1022" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint Florentin')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274114" x="2369" y="1023" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Brienon-sur-armangon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274115" x="2581" y="1066" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Chatillon-sur-seine')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274116" x="2448" y="1070" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Tonnerre')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274117" x="2432" y="1185" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Avallon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274118" x="2504" y="1253" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saulieu')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274119" x="2379" y="1260" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Corbigny')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274120" x="2412" y="1268" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Q')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274121" x="2469" y="927" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Troyes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274122" x="2443" y="287" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Maubeuge')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274123" x="2614" y="458" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Charleville-mezieres')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274124" x="2663" y="474" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Sedan')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274125" x="2367" y="520" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Laon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274126" x="2460" y="621" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Reims')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274127" x="2444" y="685" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Epernay')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274128" x="2535" y="710" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Chalons-sur-marne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274129" x="2668" y="814" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint Dizier')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274130" x="2764" y="646" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Verdun')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274131" x="2636" y="1933" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint Vallier')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274132" x="2550" y="1699" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Tarare')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274133" x="2521" y="1655" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Thizy')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274134" x="2614" y="1672" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Villefranche')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274135" x="2645" y="1749" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Lyon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274136" x="2504" y="1751" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Feurs')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274137" x="2651" y="1819" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Vienne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274138" x="2511" y="1820" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Andrezieux-boutheon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274139" x="2531" y="1853" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint Etienne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274140" x="2517" y="1863" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Firminy')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274141" x="2602" y="1912" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Annonay')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274142" x="2599" y="1526" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Cluny')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274143" x="2519" y="1359" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Autun')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274144" x="2640" y="1335" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Beaune')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274145" x="2548" y="1408" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Le Creusot')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274146" x="2642" y="1413" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Chalon-sur-saone')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274147" x="2533" y="1450" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Montceau Les Mines')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274148" x="2637" y="1567" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Macon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274149" x="2667" y="1627" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Chatillon-sur-chalaronne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274150" x="2650" y="2282" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Orange')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274151" x="2546" y="2306" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Uzes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274152" x="2631" y="2329" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Avingon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274153" x="2533" y="2363" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Nimes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274154" x="2595" y="2373" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Beaucaire')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274155" x="2593" y="2414" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Arles')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274156" x="2549" y="2487" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saintes-maries-de-la-mer')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274157" x="2631" y="2510" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Port-de-bouc')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274158" x="2689" y="2312" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Pernes-les-fontaines')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274159" x="2688" y="2337" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'L\'isle-sur-la-sorgue')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274160" x="2684" y="2364" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Cavaillon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274161" x="2688" y="2506" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Martigues')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274162" x="2708" y="2196" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Nyons')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274163" x="2620" y="2220" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bollene')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274164" x="2641" y="1968" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Romans-sur-isere')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274165" x="2687" y="1974" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Tournon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274166" x="2639" y="2006" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Valence')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274167" x="2547" y="2020" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Le Cheylard')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274168" x="2585" y="2073" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Privas')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274169" x="2539" y="2111" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Aubenas')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274170" x="2662" y="2135" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Montelimar')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274171" x="2681" y="2076" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Crest')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274172" x="2690" y="2141" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Dieulefit')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274173" x="2843" y="1036" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bourbonne-les-bains')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274174" x="2751" y="1066" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Langres')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274175" x="2774" y="1083" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Chalindrey')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274176" x="2808" y="1200" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Gray')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274177" x="2685" y="1241" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Dijon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274178" x="2764" y="1279" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Auxonne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274179" x="2786" y="1311" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Dole')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274180" x="2708" y="990" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Chaumont')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274181" x="2834" y="1396" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Poligny')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274182" x="2878" y="1426" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Champagn0le')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274183" x="2799" y="1449" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Lons-le-saunier')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274184" x="2728" y="1463" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Louhans')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274185" x="2904" y="1493" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Morez')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274186" x="2691" y="1503" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Romenay')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274187" x="2753" y="1526" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint-amour')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274188" x="2822" y="1582" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Oyonnax')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274189" x="2726" y="1600" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bourg-en-bresse')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274190" x="2809" y="1872" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Voiron')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274191" x="2887" y="1711" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Umilly')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274192" x="2812" y="1673" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Hauteville Lompnes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274193" x="2753" y="1679" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Amberieu-en-bugey')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274194" x="2830" y="1745" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Belley')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274195" x="2715" y="1747" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Pont-de-cheruy')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274196" x="2880" y="1766" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Aix-les-bains')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274197" x="2739" y="1799" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bourgoin')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274198" x="2881" y="1806" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Chambery')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274199" x="2735" y="1861" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'La Cote-saint-andre')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274200" x="2837" y="1932" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Grenoble')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274201" x="2852" y="2021" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'La Mure')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274202" x="2759" y="2068" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Die')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274203" x="2858" y="2140" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Veynes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274204" x="2886" y="2248" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Sisteron')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274205" x="2986" y="1772" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Alberville')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274206" x="3007" y="1547" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Thonon-les-bains')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274207" x="2911" y="1557" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Gex')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274208" x="3028" y="1645" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bonneville')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274209" x="2927" y="1697" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Annecy')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274210" x="3056" y="1699" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint-gervais-les-bains')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274211" x="3070" y="1790" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bourg-saint-maurice')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274212" x="2975" y="1900" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint Jean-de-maurienne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274213" x="3045" y="1929" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Modane')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274214" x="3034" y="1324" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Morteau')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274215" x="3084" y="1177" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Montbeliard')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274216" x="3090" y="1059" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bussang')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274217" x="2984" y="1079" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Luxeuil-les-bains')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274218" x="3053" y="1117" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Champagney')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274219" x="3011" y="1123" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Lure')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274220" x="2935" y="1145" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Vesoul')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274221" x="3087" y="1196" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Audincourt')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274222" x="2980" y="1229" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Baume-les-dames')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274223" x="3079" y="1262" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Maiche')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274224" x="2905" y="1264" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Besancon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274225" x="2932" y="1308" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Ornans')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274226" x="2979" y="1374" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Pontarlier')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274227" x="3054" y="2487" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Puget-sur-argens')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274228" x="3041" y="2021" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Briancon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274229" x="2918" y="2130" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Gap')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274230" x="3044" y="2186" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Barcelonnette')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274231" x="2953" y="2282" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Digne')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274232" x="2899" y="2288" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint-auban')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274233" x="3106" y="2423" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Grasse')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274234" x="2952" y="2453" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Salernes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274235" x="3129" y="2454" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Cannes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274236" x="3004" y="2461" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Draguignan')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274237" x="3073" y="2497" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint-raphael')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274238" x="2996" y="2497" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Vidauban')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274239" x="3019" y="2554" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Cogolin')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274240" x="2914" y="2558" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Cuers')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274241" x="2928" y="2596" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Hyeres')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274242" x="3000" y="964" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Epinal')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274243" x="2936" y="582" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Thionville')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274244" x="2940" y="662" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Metz')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274245" x="2941" y="800" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Nancy')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274246" x="3011" y="832" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Luneville')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274247" x="3114" y="930" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'St-die')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274248" x="2763" y="2544" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Marseille')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274249" x="2765" y="2353" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Apt')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274250" x="2760" y="2396" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Cadenet')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274251" x="2734" y="2421" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Salon-de-provence')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274252" x="2776" y="2464" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Aix-en-provence')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274253" x="2717" y="2477" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Berre-letang')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274254" x="2869" y="2487" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Saint-maximin-la-sainte-baume')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274255" x="2811" y="2578" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'La Ciotat')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274256" x="2885" y="2593" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Toulon')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274257" x="3672" y="2731" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bastia')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274258" x="3515" y="2774" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Calvi')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274259" x="3580" y="2957" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bastelica')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274260" x="3496" y="2971" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Ajaccio')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274261" x="3597" y="3053" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Levie')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274262" x="3565" y="3079" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Sartene')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274263" x="3615" y="3160" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Bonifacio')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274264" x="3219" y="2395" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'MONACO')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274265" x="3169" y="1049" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Hirtzfelden')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274266" x="3196" y="1102" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Mulhouse')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274267" x="3296" y="833" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Strasbourg')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274268" x="3203" y="995" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Colmar')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274269" x="3238" y="2332" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Breil-sur-roya')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274270" x="3195" y="2375" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Contes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274271" x="3234" y="2383" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Menton')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274272" x="3183" y="2404" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Nice')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274273" x="3154" y="2418" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Cagnes-sur-mer')" onmouseout="hideToolTip(evt)" >&lt;</text>
+<text id="Frcty274274" x="3151" y="2445" class="s6007MapInfoSymbols0" onmouseover="showToolTip(evt,'Antibes')" onmouseout="hideToolTip(evt)" >&lt;</text>
+ </g>
+<g id="Cosmetic1">
+<text id ="Cosmetic11" x="653" y="312" class="fVerdana01001" style="font-size:60">Régions et villes principales</text>
+<text id ="Cosmetic12" x="653" y="204" class="fVerdana11001" style="font-size:95">France</text>
+<path id="Cosmetic13" class="p120 b2-16777215-0" d="M2649 2792 L2649 2782 2582 2782 2582 2792 2649 2792
+ Z" />
+<path id="Cosmetic14" class="p120 b2-0-16777215" d="M2649 2782 L2649 2772 2582 2772 2582 2782 2649 2782
+ Z" />
+<path id="Cosmetic15" class="p120 b2-0-16777215" d="M2717 2792 L2717 2782 2649 2782 2649 2792 2717 2792
+ Z" />
+<path id="Cosmetic16" class="p120 b2-16777215-0" d="M2717 2782 L2717 2772 2649 2772 2649 2782 2717 2782
+ Z" />
+<path id="Cosmetic17" class="p120 b2-16777215-0" d="M2853 2792 L2853 2782 2717 2782 2717 2792 2853 2792
+ Z" />
+<path id="Cosmetic18" class="p120 b2-0-16777215" d="M2853 2782 L2853 2772 2717 2772 2717 2782 2853 2782
+ Z" />
+<text id ="Cosmetic19" x="2575" y="2760" class="fVerdana01001" style="font-size:25">0</text>
+<text id ="Cosmetic110" x="2704" y="2760" class="fVerdana01001" style="font-size:25">50</text>
+<text id ="Cosmetic111" x="2833" y="2760" class="fVerdana01001" style="font-size:25">100</text>
+<text id ="Cosmetic112" x="2649" y="2827" class="fVerdana01001" style="font-size:30">Kilomètres</text>
+ </g>
+<g id="tooltips">
+<rect id="TooltipRect" x="0" y="0" width="500" height="75" rx="25" ry="25" style="visibility:hidden;fill:rgb(200,225,250);stroke-width:1; stroke:rgb(0,0,128);opacity:0.8;pointer-events:none"></rect>
+<text id ="Tooltip" style="fill:rgb(0,0,0);visibility:hidden;font-weight:normal; font-family:'Arial';font-size:60;text-anchor:middle;pointer-events:none" x="0" y="0">!</text>
+<animate id="fade" attributeName="opacity" begin="Frcty274.mouseover;Frcty274.mouseover;Frcty274.mouseover;Frcty274.mouseover" dur="1.8s" from="0" to="1" fill="freeze" />
+</g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/francobollo_gnome_ezechi_02.svg b/PerformanceTests/PageLoad/svg/files/francobollo_gnome_ezechi_02.svg
new file mode 100644
index 000000000..a0ae2eb34
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/francobollo_gnome_ezechi_02.svg
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) --><svg height="841.88976pt" id="svg12263" inkscape:export-filename="/junior/inkscape-files/PNG/francobollo.png" inkscape:export-xdpi="90.000000" inkscape:export-ydpi="90.000000" inkscape:version="0.42.2" sodipodi:docbase="/junior/inkscape-files" sodipodi:docname="francobollo.svg" sodipodi:version="0.32" width="595.27559pt" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+ <rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <cc:Work rdf:about="">
+ <dc:title>francobollo_gnome</dc:title>
+ <dc:description>Create with the Inkscape</dc:description>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>logos</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <dc:publisher>
+ <cc:Agent rdf:about="http://www.openclipart.org/">
+ <dc:title>Open Clip Library</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>ezechiele</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>ezechiele</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:date>17 09 2005</dc:date>
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+ <dc:language>it</dc:language>
+ </cc:Work>
+ <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+ <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+ <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+ <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <defs id="defs12265">
+ <linearGradient id="linearGradient3532">
+ <stop id="stop3534" offset="0.0000000" style="stop-color:#000000;stop-opacity:0.70238096;"/>
+ <stop id="stop3536" offset="1.0000000" style="stop-color:#000000;stop-opacity:0.0000000;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient4419">
+ <stop id="stop4421" offset="0" style="stop-color:#ffffff;stop-opacity:1;"/>
+ <stop id="stop4423" offset="0.0000000" style="stop-color:#ffffff;stop-opacity:0.65098039;"/>
+ <stop id="stop4425" offset="0.0000000" style="stop-color:#137676;stop-opacity:0.11904762;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient2180">
+ <stop id="stop2182" offset="0.0000000" style="stop-color:#fbffff;stop-opacity:1.0000000;"/>
+ <stop id="stop2184" offset="1.0000000" style="stop-color:#ffffff;stop-opacity:0.0000000;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient2150">
+ <stop id="stop2152" offset="0.0000000" style="stop-color:#ff0000;stop-opacity:1.0000000;"/>
+ <stop id="stop2154" offset="1.0000000" style="stop-color:#fcff30;stop-opacity:0.27380952;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient2130">
+ <stop id="stop2132" offset="0.0000000" style="stop-color:#ffff00;stop-opacity:1.0000000;"/>
+ <stop id="stop2134" offset="1.0000000" style="stop-color:#ff2d00;stop-opacity:0.36862746;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient2112">
+ <stop id="stop2114" offset="0.0000000" style="stop-color:#ff3500;stop-opacity:1.0000000;"/>
+ <stop id="stop2116" offset="1.0000000" style="stop-color:#ffff00;stop-opacity:0.36904761;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient2088">
+ <stop id="stop2090" offset="0.0000000" style="stop-color:#fb0000;stop-opacity:1.0000000;"/>
+ <stop id="stop2092" offset="1.0000000" style="stop-color:#ff8f00;stop-opacity:0.015686275;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient2478">
+ <stop id="stop2480" offset="0" style="stop-color:#ffffff;stop-opacity:0.52592593"/>
+ <stop id="stop2482" offset="0.50000000" style="stop-color:#ffffff;stop-opacity:0.53725493;"/>
+ <stop id="stop2484" offset="1.0000000" style="stop-color:#767676;stop-opacity:0.074509807;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient2486">
+ <stop id="stop2488" offset="0.0000000" style="stop-color:#fbffff;stop-opacity:1.0000000;"/>
+ <stop id="stop2490" offset="1.0000000" style="stop-color:#ffffff;stop-opacity:0.0000000;"/>
+ </linearGradient>
+ <linearGradient id="linearGradient11879" inkscape:collect="always">
+ <stop id="stop11881" offset="0" style="stop-color:#adadad;stop-opacity:1;"/>
+ <stop id="stop11883" offset="1" style="stop-color:none"/>
+ </linearGradient>
+ <marker id="ArrowStart" markerHeight="3" markerUnits="strokeWidth" markerWidth="4" orient="auto" refX="10" refY="5" viewBox="0 0 10 10">
+ <path d="M 10 0 L 0 5 L 10 10 z" id="path15808"/>
+ </marker>
+ <marker id="ArrowEnd" markerHeight="3" markerUnits="strokeWidth" markerWidth="4" orient="auto" refX="0" refY="5" viewBox="0 0 10 10">
+ <path d="M 0 0 L 10 5 L 0 10 z" id="path15805"/>
+ </marker>
+ <linearGradient gradientTransform="matrix(0.910869,0.000000,0.000000,0.910869,-217.6704,-192.6088)" gradientUnits="userSpaceOnUse" id="linearGradient35381" inkscape:collect="always" x1="407.15894" x2="848.40326" xlink:href="#linearGradient11879" y1="311.72314" y2="919.31342"/>
+ <linearGradient gradientTransform="matrix(0.910869,0.000000,0.000000,0.910869,-217.6704,-192.6088)" gradientUnits="userSpaceOnUse" id="linearGradient35383" inkscape:collect="always" x1="407.15894" x2="848.40326" xlink:href="#linearGradient11879" y1="311.72314" y2="919.31342"/>
+ <linearGradient gradientTransform="matrix(0.607623,0.000000,0.000000,0.607623,128.2056,118.9165)" gradientUnits="userSpaceOnUse" id="linearGradient35385" inkscape:collect="always" x1="88.689644" x2="663.18671" xlink:href="#linearGradient2486" y1="399.76526" y2="399.76526"/>
+ <linearGradient gradientTransform="matrix(0.607623,0.000000,0.000000,0.522387,127.4013,65.78412)" gradientUnits="userSpaceOnUse" id="linearGradient35387" inkscape:collect="always" x1="377.26190" x2="398.44153" xlink:href="#linearGradient2486" y1="110.11734" y2="465.66083"/>
+ <linearGradient gradientTransform="matrix(0.608580,0.000000,0.000000,0.607623,126.7668,56.98339)" gradientUnits="userSpaceOnUse" id="linearGradient35389" inkscape:collect="always" x1="358.48715" x2="377.03015" xlink:href="#linearGradient2478" y1="277.88568" y2="701.47797"/>
+ <linearGradient gradientTransform="matrix(0.607623,0.000000,0.000000,0.607623,128.2056,57.38556)" gradientUnits="userSpaceOnUse" id="linearGradient35391" inkscape:collect="always" x1="660.53931" x2="551.99377" xlink:href="#linearGradient2486" y1="910.72351" y2="777.02716"/>
+ <radialGradient cx="376.73111" cy="609.92218" fx="376.73111" fy="609.92218" gradientTransform="matrix(1.000000,0.000000,0.000000,1.011099,2.565231e-12,-6.769489)" gradientUnits="userSpaceOnUse" id="radialGradient35393" inkscape:collect="always" r="394.68500" xlink:href="#linearGradient2088"/>
+ <radialGradient cx="376.73111" cy="609.92218" fx="376.73111" fy="609.92218" gradientTransform="matrix(1.623165,-2.064176e-7,1.612990e-7,1.268375,-234.7656,-163.6877)" gradientUnits="userSpaceOnUse" id="radialGradient35395" inkscape:collect="always" r="315.40280" xlink:href="#linearGradient2112"/>
+ <radialGradient cx="376.73111" cy="609.92218" fx="376.73111" fy="609.92218" gradientTransform="matrix(1.623165,-2.064176e-7,1.612990e-7,1.268375,-234.7656,-163.6877)" gradientUnits="userSpaceOnUse" id="radialGradient35397" inkscape:collect="always" r="315.40280" xlink:href="#linearGradient2130"/>
+ <radialGradient cx="376.73111" cy="609.92218" fx="376.73111" fy="609.92218" gradientTransform="matrix(1.000000,0.000000,0.000000,1.013548,2.479325e-12,-8.263407)" gradientUnits="userSpaceOnUse" id="radialGradient35399" inkscape:collect="always" r="323.33102" xlink:href="#linearGradient2150"/>
+ <linearGradient gradientUnits="userSpaceOnUse" id="linearGradient35401" inkscape:collect="always" x1="325.55533" x2="320.22644" xlink:href="#linearGradient2180" y1="249.85910" y2="474.17160"/>
+ <linearGradient gradientTransform="matrix(0.815953,0.000000,0.000000,0.815953,60.49961,76.24396)" gradientUnits="userSpaceOnUse" id="linearGradient35403" inkscape:collect="always" x1="423.92313" x2="423.92313" xlink:href="#linearGradient4419" y1="495.48227" y2="795.43170"/>
+ <radialGradient cx="406.83707" cy="622.30325" fx="406.83707" fy="622.30325" gradientTransform="matrix(1.000000,0.000000,0.000000,0.545558,-0.436133,254.2994)" gradientUnits="userSpaceOnUse" id="radialGradient35405" inkscape:collect="always" r="224.99788" xlink:href="#linearGradient3532"/>
+ <linearGradient gradientTransform="matrix(0.434313,0.000000,0.000000,0.434313,241.6915,215.9303)" gradientUnits="userSpaceOnUse" id="linearGradient35407" inkscape:collect="always" x1="660.53931" x2="551.99377" xlink:href="#linearGradient2486" y1="910.72351" y2="777.02716"/>
+ <linearGradient gradientTransform="matrix(0.910869,1.023636e-17,-1.696608e-17,0.910869,-217.6704,-192.6088)" gradientUnits="userSpaceOnUse" id="linearGradient35549" inkscape:collect="always" x1="407.15894" x2="848.40326" xlink:href="#linearGradient11879" y1="311.72314" y2="919.31342"/>
+ <linearGradient gradientTransform="matrix(0.910869,1.023636e-17,-1.696608e-17,0.910869,-217.6704,-192.6088)" gradientUnits="userSpaceOnUse" id="linearGradient35551" inkscape:collect="always" x1="407.15894" x2="848.40326" xlink:href="#linearGradient11879" y1="311.72314" y2="919.31342"/>
+ <linearGradient gradientTransform="matrix(0.607623,6.828473e-18,-1.131774e-17,0.607623,128.2056,118.9165)" gradientUnits="userSpaceOnUse" id="linearGradient35553" inkscape:collect="always" x1="88.689644" x2="663.18671" xlink:href="#linearGradient2486" y1="399.76526" y2="399.76526"/>
+ <linearGradient gradientTransform="matrix(0.607623,6.828473e-18,-9.730113e-18,0.522387,127.4013,65.78412)" gradientUnits="userSpaceOnUse" id="linearGradient35555" inkscape:collect="always" x1="377.26190" x2="398.44153" xlink:href="#linearGradient2486" y1="110.11734" y2="465.66083"/>
+ <linearGradient gradientTransform="matrix(0.608580,6.839228e-18,-1.131774e-17,0.607623,126.7668,56.98339)" gradientUnits="userSpaceOnUse" id="linearGradient35557" inkscape:collect="always" x1="358.48715" x2="377.03015" xlink:href="#linearGradient2478" y1="277.88568" y2="701.47797"/>
+ <linearGradient gradientTransform="matrix(0.607623,6.828473e-18,-1.131774e-17,0.607623,128.2056,57.38556)" gradientUnits="userSpaceOnUse" id="linearGradient35559" inkscape:collect="always" x1="660.53931" x2="551.99377" xlink:href="#linearGradient2486" y1="910.72351" y2="777.02716"/>
+ <radialGradient cx="376.73111" cy="609.92218" fx="376.73111" fy="609.92218" gradientTransform="matrix(1.000000,7.579295e-18,-1.264456e-17,1.011099,2.438761e-12,-6.769489)" gradientUnits="userSpaceOnUse" id="radialGradient35561" inkscape:collect="always" r="394.68500" xlink:href="#linearGradient2088"/>
+ <radialGradient cx="376.73111" cy="609.92218" fx="376.73111" fy="609.92218" gradientTransform="matrix(1.623165,-2.064176e-7,1.612990e-7,1.268375,-234.7656,-163.6877)" gradientUnits="userSpaceOnUse" id="radialGradient35563" inkscape:collect="always" r="315.40280" xlink:href="#linearGradient2112"/>
+ <radialGradient cx="376.73111" cy="609.92218" fx="376.73111" fy="609.92218" gradientTransform="matrix(1.623165,-2.064176e-7,1.612990e-7,1.268375,-234.7656,-163.6877)" gradientUnits="userSpaceOnUse" id="radialGradient35565" inkscape:collect="always" r="315.40280" xlink:href="#linearGradient2130"/>
+ <radialGradient cx="376.73111" cy="609.92218" fx="376.73111" fy="609.92218" gradientTransform="matrix(1.000000,7.820693e-18,-9.180670e-18,1.013548,2.471288e-12,-8.263407)" gradientUnits="userSpaceOnUse" id="radialGradient35567" inkscape:collect="always" r="323.33102" xlink:href="#linearGradient2150"/>
+ <linearGradient gradientUnits="userSpaceOnUse" id="linearGradient35569" inkscape:collect="always" x1="325.55533" x2="320.22644" xlink:href="#linearGradient2180" y1="249.85910" y2="474.17160"/>
+ <linearGradient gradientTransform="matrix(0.815953,-4.808427e-18,-6.039173e-18,0.815953,60.49961,76.24396)" gradientUnits="userSpaceOnUse" id="linearGradient35571" inkscape:collect="always" x1="423.92313" x2="423.92313" xlink:href="#linearGradient4419" y1="495.48227" y2="795.43170"/>
+ <radialGradient cx="406.83707" cy="622.30325" fx="406.83707" fy="622.30325" gradientTransform="matrix(1.000000,-5.893020e-18,-4.037879e-18,0.545558,-0.436133,254.2994)" gradientUnits="userSpaceOnUse" id="radialGradient35573" inkscape:collect="always" r="224.99788" xlink:href="#linearGradient3532"/>
+ <linearGradient gradientTransform="matrix(0.434313,4.880813e-18,-8.089624e-18,0.434313,241.6915,215.9303)" gradientUnits="userSpaceOnUse" id="linearGradient35575" inkscape:collect="always" x1="660.53931" x2="551.99377" xlink:href="#linearGradient2486" y1="910.72351" y2="777.02716"/>
+ </defs>
+ <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="layer1" inkscape:cx="433.78285" inkscape:cy="667.65545" inkscape:document-units="px" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="964" inkscape:window-width="1272" inkscape:window-x="0" inkscape:window-y="0" inkscape:zoom="0.99895890" pagecolor="#ffffff" showborder="false"/>
+ <g id="layer1" inkscape:groupmode="layer" inkscape:label="Livello 1">
+ <g id="g35489" inkscape:export-filename="/junior/inkscape-files/PNG/francobollo.png" inkscape:export-xdpi="90.000000" inkscape:export-ydpi="90.000000" transform="matrix(0.997865,-6.531726e-2,6.531726e-2,0.997865,-26.66187,26.73296)">
+ <g id="g13516">
+ <path d="M 145.20709,81.595908 L 145.20709,112.28088 C 148.47580,109.55339 152.62079,107.83763 157.20765,107.83763 C 167.60863,107.83763 176.04397,116.29194 176.04397,126.69294 C 176.04397,137.09393 167.60863,145.52926 157.20765,145.52926 C 152.62079,145.52926 148.47580,143.81350 145.20709,141.08601 L 145.20709,173.06218 C 148.47946,170.32176 152.62768,168.59995 157.22664,168.59995 C 167.62761,168.59995 176.08194,177.03527 176.08194,187.43626 C 176.08194,197.83725 167.62761,206.29157 157.22664,206.29157 C 152.62768,206.29157 148.47946,204.56975 145.20709,201.82933 L 145.20709,234.41312 C 148.47946,231.67270 152.62768,229.95089 157.22664,229.95089 C 167.62761,229.95089 176.08194,238.38622 176.08194,248.78721 C 176.08194,259.18819 167.62761,267.64251 157.22664,267.64251 C 152.62768,267.64251 148.47946,265.92069 145.20709,263.18028 L 145.20709,294.98556 C 148.47946,292.24513 152.62768,290.52332 157.22664,290.52332 C 167.62761,290.52331 176.08194,298.97764 176.08194,309.37863 C 176.08194,319.77961 167.62761,328.21494 157.22664,328.21494 C 152.62768,328.21494 148.47946,326.49313 145.20709,323.75271 L 145.20709,355.55798 C 148.47946,352.81756 152.62768,351.11473 157.22664,351.11473 C 167.62761,351.11474 176.08194,359.55007 176.08194,369.95106 C 176.08194,380.35206 167.62761,388.78737 157.22664,388.78737 C 152.62567,388.78737 148.48007,387.06771 145.20709,384.32514 L 145.20709,414.51641 C 148.48007,411.77384 152.62567,410.05418 157.22664,410.05418 C 167.62761,410.05418 176.08194,418.48951 176.08194,428.89050 C 176.08194,439.29149 167.62761,447.74580 157.22664,447.74580 C 152.62768,447.74582 148.47946,446.02400 145.20709,443.28357 L 145.20709,476.85475 C 148.47946,474.11433 152.62768,472.39251 157.22664,472.39251 C 167.62761,472.39251 176.08194,480.84683 176.08194,491.24782 C 176.08194,501.64881 167.62761,510.08414 157.22664,510.08414 C 152.62768,510.08415 148.47946,508.36232 145.20709,505.62191 L 145.20709,538.05378 C 148.48007,535.31123 152.62567,533.59156 157.22664,533.59156 C 167.62761,533.59154 176.08194,542.02689 176.08194,552.42787 C 176.08194,562.82886 167.62761,571.28319 157.22664,571.28319 C 152.62768,571.28319 148.47946,569.56137 145.20709,566.82095 L 145.20709,598.62622 C 148.47946,595.88581 152.62768,594.16399 157.22664,594.16399 C 167.62761,594.16401 176.08194,602.61830 176.08194,613.01930 C 176.08194,623.42024 167.62761,631.85561 157.22664,631.85561 C 152.62768,631.85561 148.47946,630.13379 145.20709,627.39335 L 145.20709,658.11631 L 191.29151,658.11631 C 188.95435,654.97792 187.53184,651.12421 187.53184,646.91327 C 187.53184,636.51233 195.96719,628.07696 206.36816,628.07696 C 216.76914,628.07696 225.22346,636.51233 225.22346,646.91327 C 225.22346,651.12530 223.78303,654.97755 221.44481,658.11631 L 252.94627,658.11631 C 250.35256,654.88792 248.74987,650.84203 248.74987,646.38159 C 248.74987,635.98066 257.18521,627.54529 267.58619,627.54529 C 277.98718,627.54529 286.42250,635.98066 286.42250,646.38159 C 286.42250,650.84203 284.81982,654.88792 282.22611,658.11631 L 313.67060,658.11631 C 311.07689,654.88792 309.45521,650.84203 309.45521,646.38159 C 309.45521,635.98066 317.89056,627.54529 328.29153,627.54529 C 338.69252,627.54529 347.14684,635.98066 347.14684,646.38159 C 347.14684,650.84203 345.52516,654.88792 342.93146,658.11631 L 373.80630,658.11631 C 371.46809,654.97755 370.02765,651.12530 370.02765,646.91327 C 370.02766,636.51233 378.48198,628.07696 388.88295,628.07696 C 399.28393,628.07696 407.71927,636.51233 407.71927,646.91327 C 407.71927,651.12421 406.29677,654.97792 403.95961,658.11631 L 435.02433,658.11631 C 432.68611,654.97755 431.24568,651.12530 431.24568,646.91327 C 431.24567,636.51233 439.70000,628.07696 450.10098,628.07696 C 460.50195,628.07696 468.93730,636.51233 468.93730,646.91327 C 468.93730,651.12530 467.49686,654.97755 465.15864,658.11631 L 495.71070,658.11631 C 493.37248,654.97755 491.93204,651.12530 491.93204,646.91327 C 491.93203,636.51233 500.38637,628.07696 510.78734,628.07696 C 521.18834,628.07696 529.62366,636.51233 529.62366,646.91327 C 529.62366,651.12421 528.20115,654.97792 525.86399,658.11631 L 571.94842,658.11631 L 571.94842,628.36179 C 568.87500,630.53968 565.13789,631.85561 561.08714,631.85561 C 550.68616,631.85561 542.25083,623.42033 542.25083,613.01930 C 542.25081,602.61829 550.68617,594.16399 561.08714,594.16399 C 565.13788,594.16399 568.87500,595.47997 571.94842,597.65782 L 571.94842,567.20071 C 568.74551,569.71642 564.75121,571.28319 560.36559,571.28319 C 549.96462,571.28317 541.52927,562.82887 541.52927,552.42787 C 541.52925,542.02690 549.96462,533.59156 560.36559,533.59156 C 564.75393,533.59156 568.74456,535.15548 571.94842,537.67403 L 571.94842,507.21691 C 571.48484,507.54540 570.97951,507.80404 570.48631,508.09037 C 570.00223,508.37270 569.51507,508.64840 569.00523,508.88788 C 568.58785,509.08254 568.16633,509.25527 567.73302,509.41955 C 567.02756,509.68979 566.31155,509.91860 565.56836,510.10313 C 565.54874,510.10794 565.53104,510.11737 565.51141,510.12211 C 565.48583,510.12830 565.46107,510.13502 565.43545,510.14110 C 565.42951,510.14252 565.42240,510.13970 565.41646,510.14110 C 565.14271,510.20585 564.87817,510.27834 564.59996,510.33098 C 563.45948,510.54678 562.29008,510.69176 561.08714,510.69176 C 559.88421,510.69176 558.71480,510.54678 557.57433,510.33098 C 557.33612,510.28591 557.10670,510.23304 556.87176,510.17907 C 556.84039,510.17156 556.80830,510.16749 556.77682,510.16010 C 555.87506,509.94927 555.00324,509.67874 554.15644,509.34360 C 554.11922,509.32882 554.07988,509.31996 554.04251,509.30562 C 554.02395,509.29811 554.00407,509.29416 553.98554,509.28663 C 553.85109,509.23174 553.71968,509.17362 553.58679,509.11574 C 553.56841,509.10795 553.54811,509.10478 553.52983,509.09674 C 552.48999,508.64116 551.47958,508.11183 550.54868,507.48275 C 549.54218,506.80258 548.63180,506.02289 547.77640,505.16619 C 546.92416,504.31395 546.13692,503.39602 545.45984,502.39391 C 544.82972,501.46147 544.30326,500.45370 543.84584,499.41276 C 543.84022,499.39996 543.83096,499.38821 543.82685,499.37478 C 543.82461,499.36964 543.82909,499.36094 543.82685,499.35579 C 543.75864,499.19923 543.70101,499.03983 543.63697,498.88109 C 543.62470,498.84924 543.61160,498.81789 543.59899,498.78614 C 543.26385,497.93935 542.99332,497.06754 542.78250,496.16577 C 542.77652,496.14034 542.76871,496.11534 542.76351,496.08982 C 542.76213,496.08386 542.76488,496.07678 542.76351,496.07083 C 542.70955,495.83589 542.65668,495.60646 542.61160,495.36826 C 542.60897,495.35467 542.59517,495.34393 542.59261,495.33029 C 542.38223,494.19939 542.25083,493.04674 542.25083,491.85544 C 542.25083,489.25519 542.77801,486.78001 543.73191,484.52599 C 544.68388,482.27651 546.07591,480.24781 547.77640,478.54471 C 548.63180,477.68800 549.54218,476.90831 550.54868,476.22814 C 551.48111,475.59802 552.48889,475.07156 553.52983,474.61414 C 553.54263,474.60852 553.55438,474.59926 553.56782,474.59515 C 553.57295,474.59291 553.58166,474.59739 553.58679,474.59515 C 553.71968,474.53726 553.85109,474.47915 553.98554,474.42426 C 554.00407,474.41674 554.02395,474.41277 554.04251,474.40527 C 554.07988,474.39093 554.11922,474.38208 554.15644,474.36730 C 555.00324,474.03215 555.87506,473.76162 556.77682,473.55080 C 556.80224,473.54482 556.82725,473.53701 556.85277,473.53181 C 556.85873,473.53044 556.86580,473.53318 556.87176,473.53181 C 557.10670,473.47785 557.33612,473.42498 557.57433,473.37990 C 557.58248,473.37833 557.58597,473.36570 557.59332,473.36091 C 557.59942,473.35977 557.60620,473.36206 557.61230,473.36091 C 558.74320,473.15053 559.89585,473.01913 561.08714,473.01913 C 562.27656,473.01913 563.43352,473.14983 564.56199,473.36091 C 564.57481,473.36332 564.58716,473.37748 564.59996,473.37990 C 564.87817,473.43256 565.14271,473.50505 565.41646,473.56979 C 565.42249,473.57123 565.42941,473.56836 565.43545,473.56979 C 565.46085,473.57599 565.48589,473.58260 565.51141,473.58878 C 565.53078,473.59366 565.54893,473.60299 565.56836,473.60777 C 565.93929,473.69880 566.28874,473.83689 566.65069,473.94955 C 567.01078,474.06360 567.38029,474.15622 567.73302,474.29134 C 568.16633,474.45561 568.58785,474.62836 569.00523,474.82301 C 569.51507,475.06249 570.00223,475.33820 570.48631,475.62051 C 570.97951,475.90686 571.48484,476.16549 571.94842,476.49397 L 571.94842,444.25197 C 568.87500,446.42982 565.13789,447.74580 561.08714,447.74580 C 550.68616,447.74582 542.25083,439.29149 542.25083,428.89050 C 542.25081,418.48951 550.68617,410.05418 561.08714,410.05418 C 565.13738,410.05418 568.87523,411.35167 571.94842,413.52902 L 571.94842,385.31253 C 568.87523,387.48989 565.13739,388.78737 561.08714,388.78737 C 550.68616,388.78735 542.25083,380.35204 542.25083,369.95106 C 542.25081,359.55009 550.68617,351.11473 561.08714,351.11473 C 565.13788,351.11474 568.87500,352.41174 571.94842,354.58958 L 571.94842,323.84764 C 568.74551,326.36337 564.75121,327.93012 560.36559,327.93012 C 549.96462,327.93012 541.52927,319.49479 541.52927,309.09380 C 541.52925,298.69282 549.96462,290.23850 560.36559,290.23850 C 564.75122,290.23850 568.74551,291.80525 571.94842,294.32097 L 571.94842,263.86385 C 568.87500,266.04171 565.13789,267.35769 561.08714,267.35769 C 550.68616,267.35769 542.25083,258.90337 542.25083,248.50239 C 542.25081,238.10140 550.68617,229.66607 561.08714,229.66607 C 565.13788,229.66607 568.87500,230.98205 571.94842,233.15990 L 571.94842,202.79773 C 568.87500,204.97558 565.13789,206.29157 561.08714,206.29157 C 550.68616,206.29156 542.25083,197.83725 542.25083,187.43626 C 542.25081,177.03527 550.68617,168.59995 561.08714,168.59995 C 565.13788,168.59995 568.87500,169.91593 571.94842,172.09378 L 571.94842,142.03542 C 568.87500,144.21327 565.13789,145.52926 561.08714,145.52926 C 550.68616,145.52926 542.25083,137.09393 542.25083,126.69294 C 542.25081,116.29194 550.68617,107.83763 561.08714,107.83763 C 565.13788,107.83763 568.87500,109.15361 571.94842,111.33146 L 571.94842,81.595908 L 526.41465,81.595908 C 528.17700,84.462512 529.24390,87.803295 529.24390,91.412812 C 529.24390,101.81380 520.80856,110.24913 510.40758,110.24913 C 500.00662,110.24913 491.57126,101.81380 491.57126,91.412812 C 491.57126,87.803295 492.63816,84.462512 494.40051,81.595908 L 465.72829,81.595908 C 467.49064,84.462512 468.55753,87.803295 468.55753,91.412812 C 468.55755,101.81380 460.12219,110.24913 449.72122,110.24913 C 439.32024,110.24913 430.86592,101.81380 430.86592,91.412812 C 430.86592,87.803295 431.95180,84.462512 433.71415,81.595908 L 404.51027,81.595908 C 406.27261,84.462512 407.33950,87.803295 407.33950,91.412812 C 407.33950,101.81380 398.90417,110.24913 388.50319,110.24913 C 378.10222,110.24913 369.66687,101.81380 369.66687,91.412812 C 369.66687,87.803295 370.73377,84.462512 372.49612,81.595908 L 343.80491,81.595908 C 345.56502,84.461227 346.63416,87.805791 346.63416,91.412812 C 346.63416,101.81380 338.19882,110.24913 327.79784,110.24913 C 317.39687,110.24913 308.94253,101.81380 308.94253,91.412812 C 308.94253,87.805791 310.01168,84.461227 311.77178,81.595908 L 283.23248,81.595908 C 284.99258,84.461227 286.06172,87.805791 286.06172,91.412812 C 286.06172,101.81380 277.60740,110.24913 267.20643,110.24913 C 256.80544,110.24913 248.37011,101.81380 248.37011,91.412812 C 248.37011,87.805791 249.43925,84.461227 251.19935,81.595908 L 222.75499,81.595908 C 224.51734,84.462512 225.58424,87.803295 225.58424,91.412812 C 225.58423,101.81380 217.14890,110.24913 206.74792,110.24913 C 196.34694,110.24913 187.91160,101.81380 187.91160,91.412812 C 187.91160,87.803295 188.97850,84.462512 190.74085,81.595908 L 145.20709,81.595908 z " id="rect2161" style="opacity:0.25605533;fill:url(#linearGradient35549);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient35551);stroke-width:0.89886713;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"/>
+ <path d="M 142.79569,79.184434 L 142.79569,109.86942 C 146.06440,107.14192 150.20939,105.42616 154.79625,105.42616 C 165.19723,105.42617 173.63258,113.88048 173.63258,124.28148 C 173.63258,134.68247 165.19723,143.11781 154.79625,143.11781 C 150.20939,143.11781 146.06440,141.40205 142.79569,138.67456 L 142.79569,170.65073 C 146.06806,167.91032 150.21628,166.18850 154.81524,166.18850 C 165.21622,166.18850 173.67055,174.62383 173.67055,185.02482 C 173.67055,195.42582 165.21622,203.88014 154.81524,203.88014 C 150.21628,203.88014 146.06806,202.15832 142.79569,199.41791 L 142.79569,232.00171 C 146.06806,229.26129 150.21628,227.53947 154.81524,227.53947 C 165.21622,227.53947 173.67055,235.97480 173.67055,246.37580 C 173.67055,256.77678 165.21622,265.23111 154.81524,265.23111 C 150.21628,265.23111 146.06806,263.50929 142.79569,260.76887 L 142.79569,292.57416 C 146.06806,289.83374 150.21628,288.11192 154.81524,288.11192 C 165.21622,288.11192 173.67055,296.56624 173.67055,306.96723 C 173.67055,317.36823 165.21622,325.80356 154.81524,325.80356 C 150.21628,325.80356 146.06806,324.08174 142.79569,321.34132 L 142.79569,353.14661 C 146.06806,350.40619 150.21628,348.70337 154.81524,348.70337 C 165.21622,348.70337 173.67055,357.13869 173.67055,367.53969 C 173.67055,377.94070 165.21622,386.37601 154.81524,386.37601 C 150.21427,386.37601 146.06867,384.65635 142.79569,381.91377 L 142.79569,412.10506 C 146.06867,409.36249 150.21427,407.64283 154.81524,407.64283 C 165.21622,407.64282 173.67055,416.07816 173.67055,426.47915 C 173.67055,436.88015 165.21622,445.33447 154.81524,445.33447 C 150.21628,445.33447 146.06806,443.61265 142.79569,440.87223 L 142.79569,474.44342 C 146.06806,471.70300 150.21628,469.98118 154.81524,469.98118 C 165.21622,469.98117 173.67055,478.43550 173.67055,488.83649 C 173.67055,499.23749 165.21622,507.67282 154.81524,507.67282 C 150.21628,507.67283 146.06806,505.95101 142.79569,503.21058 L 142.79569,535.64248 C 146.06867,532.89992 150.21427,531.18025 154.81524,531.18025 C 165.21622,531.18023 173.67055,539.61558 173.67055,550.01657 C 173.67055,560.41756 165.21622,568.87188 154.81524,568.87188 C 150.21628,568.87188 146.06806,567.15007 142.79569,564.40965 L 142.79569,596.21493 C 146.06806,593.47451 150.21628,591.75270 154.81524,591.75270 C 165.21622,591.75271 173.67055,600.20702 173.67055,610.60801 C 173.67055,621.00899 165.21622,629.44433 154.81524,629.44433 C 150.21628,629.44433 146.06806,627.72252 142.79569,624.98210 L 142.79569,655.70506 L 188.88012,655.70506 C 186.54296,652.56665 185.12046,648.71297 185.12046,644.50200 C 185.12046,634.10103 193.55580,625.66567 203.95678,625.66567 C 214.35776,625.66568 222.81209,634.10101 222.81209,644.50200 C 222.81209,648.71402 221.37165,652.56624 219.03343,655.70506 L 250.53490,655.70506 C 247.94119,652.47661 246.33850,648.43078 246.33850,643.97033 C 246.33850,633.56934 254.77385,625.13401 265.17483,625.13401 C 275.57581,625.13400 284.01116,633.56934 284.01116,643.97033 C 284.01116,648.43078 282.40847,652.47661 279.81476,655.70506 L 311.25926,655.70506 C 308.66555,652.47661 307.04388,648.43078 307.04388,643.97033 C 307.04387,633.56934 315.47922,625.13401 325.88020,625.13401 C 336.28119,625.13400 344.73551,633.56934 344.73551,643.97033 C 344.73551,648.43078 343.11383,652.47661 340.52012,655.70506 L 371.39498,655.70506 C 369.05676,652.56624 367.61633,648.71401 367.61633,644.50200 C 367.61633,634.10103 376.07066,625.66567 386.47164,625.66567 C 396.87261,625.66568 405.30796,634.10101 405.30796,644.50200 C 405.30796,648.71298 403.88545,652.56665 401.54829,655.70506 L 432.61304,655.70506 C 430.27482,652.56624 428.83438,648.71401 428.83438,644.50200 C 428.83437,634.10103 437.28871,625.66567 447.68969,625.66567 C 458.09067,625.66568 466.52601,634.10101 466.52601,644.50200 C 466.52601,648.71402 465.08557,652.56624 462.74735,655.70506 L 493.29942,655.70506 C 490.96120,652.56624 489.52076,648.71401 489.52076,644.50200 C 489.52075,634.10103 497.97509,625.66567 508.37607,625.66567 C 518.77707,625.66568 527.21239,634.10101 527.21239,644.50200 C 527.21239,648.71298 525.78989,652.56665 523.45273,655.70506 L 569.53716,655.70506 L 569.53716,625.95050 C 566.46376,628.12835 562.72664,629.44433 558.67589,629.44433 C 548.27489,629.44433 539.83957,621.00900 539.83957,610.60801 C 539.83956,600.20701 548.27491,591.75270 558.67589,591.75270 C 562.72663,591.75271 566.46376,593.06869 569.53716,595.24653 L 569.53716,564.78941 C 566.33426,567.30513 562.33997,568.87188 557.95434,568.87188 C 547.55336,568.87187 539.11801,560.41756 539.11801,550.01657 C 539.11799,539.61560 547.55335,531.18025 557.95434,531.18025 C 562.34269,531.18025 566.33331,532.74418 569.53716,535.26271 L 569.53716,504.80559 C 569.07360,505.13408 568.56826,505.39272 568.07507,505.67906 C 567.59097,505.96138 567.10381,506.23708 566.59399,506.47656 C 566.17659,506.67121 565.75508,506.84396 565.32177,507.00823 C 564.61631,507.27847 563.90029,507.50729 563.15711,507.69181 C 563.13749,507.69662 563.11979,507.70604 563.10015,507.71080 C 563.07458,507.71699 563.04982,507.72370 563.02420,507.72979 C 563.01825,507.73119 563.01115,507.72838 563.00520,507.72979 C 562.73146,507.79453 562.46692,507.86702 562.18871,507.91966 C 561.04823,508.13547 559.87883,508.28045 558.67589,508.28045 C 557.47296,508.28045 556.30355,508.13547 555.16307,507.91966 C 554.92487,507.87459 554.69545,507.82172 554.46050,507.76776 C 554.42914,507.76024 554.39704,507.75618 554.36557,507.74877 C 553.46380,507.53795 552.59199,507.26742 551.74518,506.93228 C 551.70796,506.91749 551.66863,506.90864 551.63125,506.89430 C 551.61269,506.88680 551.59282,506.88284 551.57429,506.87532 C 551.43984,506.82042 551.30842,506.76231 551.17554,506.70442 C 551.15716,506.69663 551.13686,506.69346 551.11857,506.68543 C 550.07873,506.22984 549.06832,505.70051 548.13743,505.07143 C 547.13091,504.39126 546.22053,503.61157 545.36514,502.75487 C 544.51290,501.90263 543.72567,500.98470 543.04858,499.98259 C 542.41846,499.05015 541.89200,498.04238 541.43458,497.00143 C 541.42896,496.98864 541.41970,496.97689 541.41559,496.96346 C 541.41335,496.95832 541.41783,496.94961 541.41559,496.94447 C 541.34738,496.78790 541.28975,496.62850 541.22571,496.46976 C 541.21345,496.43791 541.20034,496.40656 541.18773,496.37482 C 540.85259,495.52802 540.58206,494.65621 540.37124,493.75445 C 540.36526,493.72902 540.35745,493.70402 540.35225,493.67850 C 540.35088,493.67254 540.35362,493.66546 540.35225,493.65951 C 540.29829,493.42456 540.24542,493.19515 540.20034,492.95694 C 540.19771,492.94335 540.18390,492.93260 540.18135,492.91896 C 539.97097,491.78807 539.83957,490.63541 539.83957,489.44412 C 539.83957,486.84387 540.36676,484.36868 541.32065,482.11466 C 542.27263,479.86518 543.66465,477.83648 545.36514,476.13337 C 546.22053,475.27667 547.13091,474.49698 548.13743,473.81681 C 549.06985,473.18669 550.07763,472.66022 551.11857,472.20281 C 551.13137,472.19719 551.14313,472.18793 551.15655,472.18382 C 551.16169,472.18158 551.17040,472.18606 551.17554,472.18382 C 551.30842,472.12593 551.43984,472.06782 551.57429,472.01293 C 551.59282,472.00540 551.61269,472.00145 551.63125,471.99394 C 551.66863,471.97960 551.70796,471.97075 551.74518,471.95596 C 552.59199,471.62082 553.46380,471.35029 554.36557,471.13947 C 554.39099,471.13349 554.41600,471.12568 554.44152,471.12048 C 554.44747,471.11911 554.45455,471.12185 554.46050,471.12048 C 554.69545,471.06652 554.92487,471.01365 555.16307,470.96857 C 555.17123,470.96699 555.17471,470.95437 555.18206,470.94958 C 555.18816,470.94844 555.19494,470.95073 555.20104,470.94958 C 556.33194,470.73920 557.48460,470.60779 558.67589,470.60779 C 559.86531,470.60779 561.02226,470.73849 562.15073,470.94958 C 562.16356,470.95199 562.17590,470.96615 562.18871,470.96857 C 562.46692,471.02122 562.73146,471.09372 563.00520,471.15846 C 563.01124,471.15990 563.01815,471.15702 563.02420,471.15846 C 563.04960,471.16466 563.07464,471.17127 563.10015,471.17744 C 563.11952,471.18232 563.13768,471.19166 563.15711,471.19643 C 563.52804,471.28747 563.87749,471.42556 564.23944,471.53822 C 564.59953,471.65227 564.96904,471.74489 565.32177,471.88001 C 565.75508,472.04428 566.17659,472.21702 566.59399,472.41168 C 567.10381,472.65116 567.59097,472.92686 568.07507,473.20918 C 568.56826,473.49552 569.07360,473.75416 569.53716,474.08264 L 569.53716,441.84063 C 566.46376,444.01848 562.72664,445.33447 558.67589,445.33447 C 548.27489,445.33447 539.83957,436.88015 539.83957,426.47915 C 539.83956,416.07816 548.27491,407.64283 558.67589,407.64283 C 562.72613,407.64283 566.46397,408.94032 569.53716,411.11767 L 569.53716,382.90117 C 566.46397,385.07852 562.72614,386.37601 558.67589,386.37601 C 548.27489,386.37600 539.83957,377.94068 539.83957,367.53969 C 539.83956,357.13871 548.27491,348.70337 558.67589,348.70337 C 562.72663,348.70337 566.46376,350.00036 569.53716,352.17821 L 569.53716,321.43627 C 566.33426,323.95198 562.33997,325.51873 557.95434,325.51873 C 547.55336,325.51874 539.11801,317.08340 539.11801,306.68241 C 539.11799,296.28142 547.55335,287.82710 557.95434,287.82710 C 562.33997,287.82710 566.33426,289.39385 569.53716,291.90957 L 569.53716,261.45245 C 566.46376,263.63030 562.72664,264.94628 558.67589,264.94628 C 548.27489,264.94628 539.83957,256.49196 539.83957,246.09097 C 539.83956,235.68999 548.27491,227.25465 558.67589,227.25465 C 562.72663,227.25465 566.46376,228.57064 569.53716,230.74848 L 569.53716,200.38631 C 566.46376,202.56416 562.72664,203.88014 558.67589,203.88014 C 548.27489,203.88014 539.83957,195.42582 539.83957,185.02482 C 539.83956,174.62383 548.27491,166.18850 558.67589,166.18850 C 562.72663,166.18850 566.46376,167.50449 569.53716,169.68234 L 569.53716,139.62397 C 566.46376,141.80182 562.72664,143.11781 558.67589,143.11781 C 548.27489,143.11781 539.83957,134.68247 539.83957,124.28148 C 539.83956,113.88048 548.27491,105.42616 558.67589,105.42616 C 562.72663,105.42617 566.46376,106.74215 569.53716,108.92000 L 569.53716,79.184434 L 524.00338,79.184434 C 525.76573,82.051041 526.83263,85.391830 526.83263,89.001349 C 526.83263,99.402341 518.39728,107.83767 507.99631,107.83767 C 497.59534,107.83767 489.15998,99.402341 489.15998,89.001349 C 489.15998,85.391830 490.22688,82.051041 491.98923,79.184434 L 463.31700,79.184434 C 465.07935,82.051041 466.14625,85.391830 466.14625,89.001349 C 466.14626,99.402341 457.71090,107.83767 447.30992,107.83767 C 436.90894,107.83767 428.45461,99.402341 428.45461,89.001349 C 428.45461,85.391830 429.54050,82.051041 431.30285,79.184434 L 402.09895,79.184434 C 403.86130,82.051041 404.92820,85.391830 404.92820,89.001349 C 404.92819,99.402341 396.49286,107.83767 386.09187,107.83767 C 375.69090,107.83767 367.25555,99.402341 367.25555,89.001349 C 367.25555,85.391830 368.32245,82.051041 370.08479,79.184434 L 341.39358,79.184434 C 343.15369,82.049760 344.22283,85.394325 344.22283,89.001349 C 344.22282,99.402341 335.78748,107.83767 325.38651,107.83767 C 314.98552,107.83767 306.53119,99.402341 306.53119,89.001349 C 306.53119,85.394324 307.60033,82.049759 309.36044,79.184434 L 280.82113,79.184434 C 282.58123,82.049760 283.65037,85.394325 283.65037,89.001349 C 283.65037,99.402341 275.19605,107.83767 264.79506,107.83767 C 254.39409,107.83767 245.95874,99.402341 245.95874,89.001349 C 245.95874,85.394324 247.02788,82.049759 248.78799,79.184434 L 220.34362,79.184434 C 222.10597,82.051041 223.17287,85.391830 223.17287,89.001349 C 223.17286,99.402341 214.73752,107.83767 204.33654,107.83767 C 193.93556,107.83767 185.50022,99.402341 185.50022,89.001349 C 185.50022,85.391830 186.56711,82.051041 188.32946,79.184434 L 142.79569,79.184434 z " id="path11024" style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#adadad;stroke-width:0.89886755;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"/>
+ <rect height="495.08545" id="rect11026" style="opacity:1.0000000;fill:#9db8d2;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#838383;stroke-width:0.60762334;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" width="348.25110" x="182.04088" y="119.90202"/>
+ <path d="M 182.09553,324.82423 C 298.45480,324.82423 319.90351,386.75739 531.17335,324.82423 C 531.17335,349.49025 531.17335,374.15628 531.17335,398.82229 C 414.81408,398.82229 321.78028,342.51942 182.09553,398.82229 C 182.09553,374.15628 182.09553,349.49025 182.09553,324.82423 z " id="path11028" sodipodi:nodetypes="ccccc" style="opacity:0.65743947;fill:url(#linearGradient35553);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"/>
+ <path d="M 181.94813,373.54143 C 335.46922,453.49312 344.63466,298.20234 530.23478,373.54143 C 530.23478,453.74937 530.23478,533.95730 530.23478,614.16524 C 414.13923,614.16524 298.04368,614.16524 181.94813,614.16524 C 181.94813,533.95730 181.94813,453.74937 181.94813,373.54143 z " id="path11030" sodipodi:nodetypes="ccccc" style="fill:#409240;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:6.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.13653137"/>
+ <path d="M 182.09553,119.72088 C 298.45480,119.72088 414.81409,119.72088 531.17336,119.72088 C 531.17336,171.35266 531.17336,222.98443 531.17336,274.61621 C 489.08026,264.24375 450.83614,259.20564 356.63444,274.61621 C 232.15547,294.97987 243.49247,287.75465 182.09553,274.61621 C 182.09553,222.98443 182.09553,171.35266 182.09553,119.72088 z " id="path11032" sodipodi:nodetypes="cccscc" style="opacity:0.65743947;fill:url(#linearGradient35555);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"/>
+ <path d="M 182.20511,373.54143 C 335.61292,453.49312 344.77160,298.20234 530.23478,373.54143 C 530.23478,453.74937 530.23478,533.95730 530.23478,614.16524 C 414.22489,614.16524 298.21500,614.16524 182.20511,614.16524 C 182.20511,533.95730 182.20511,453.74937 182.20511,373.54143 z " id="path11034" sodipodi:nodetypes="ccccc" style="opacity:0.65743947;fill:url(#linearGradient35557);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:6.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.13653137"/>
+ <rect height="147.99614" id="rect11036" style="opacity:0.23183389;fill:url(#linearGradient35559);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" width="167.29999" x="362.26474" y="466.78790"/>
+ <g id="g11038" inkscape:label="Layer 1" style="opacity:1.0000000;fill:#ffffff;fill-opacity:0.10588218" transform="matrix(0.523827,0.000000,0.000000,0.598891,171.1019,65.75402)">
+ <g id="g11040" style="fill:#ffffff;fill-opacity:0.10588218" transform="matrix(4.574758,0.000000,0.000000,4.574758,-822.3662,-1919.496)">
+ <g id="g11042" style="fill:#ffffff;fill-opacity:0.10588218">
+ <path d="M 279.04900,582.93100 C 279.04900,582.93100 279.70600,567.29300 300.88500,569.89800 C 300.88500,569.89800 321.74300,575.43500 306.75000,596.94300 C 306.75000,596.94300 288.17500,617.80100 267.31900,617.14800 C 267.31900,617.14800 230.17000,619.42700 213.22400,581.95400 C 213.22400,581.95400 186.17800,534.70400 228.86500,511.89200 C 228.86500,511.89200 268.62300,489.08100 303.16400,507.65500 C 303.16400,507.65500 328.58200,524.92800 294.69000,546.76000 L 257.54300,572.83100 C 257.54300,572.83100 239.29300,591.07700 266.99300,597.59500 C 266.99300,597.59500 279.04900,599.87900 279.04900,582.93100 z " id="path11044" style="fill:#ffffff;fill-opacity:0.10588218"/>
+ </g>
+ <g id="g11046" style="fill:#ffffff;fill-opacity:0.10588218">
+ <path d="M 322.56300,475.18000 C 314.71300,488.20400 301.85000,494.84700 293.83100,490.01400 C 285.81900,485.18400 285.68500,470.70900 293.53700,457.68500 C 301.38800,444.65900 314.25000,438.01800 322.26200,442.84900 C 330.28100,447.67900 330.41500,462.15600 322.56300,475.18000 z " id="path11048" style="fill:#ffffff;fill-opacity:0.10588218"/>
+ </g>
+ <g id="g11050" style="fill:#ffffff;fill-opacity:0.10588218">
+ <path d="M 247.76700,463.98700 C 247.76700,452.64900 253.01900,443.45800 259.49800,443.45800 C 265.97700,443.45800 271.22900,452.64900 271.22900,463.98700 C 271.22900,475.32600 265.97700,484.51700 259.49800,484.51700 C 253.01900,484.51700 247.76700,475.32600 247.76700,463.98700 z " id="path11052" style="fill:#ffffff;fill-opacity:0.10588218"/>
+ </g>
+ <g id="g11054" style="fill:#ffffff;fill-opacity:0.10588218">
+ <path d="" id="path11056" style="fill:#ffffff;fill-opacity:0.10588218"/>
+ </g>
+ <g id="g11058" style="fill:#ffffff;fill-opacity:0.10588218">
+ <path d="M 237.43100,475.12100 C 239.36900,484.27700 236.23000,492.69500 230.42200,493.92500 C 224.61200,495.15600 218.33000,488.73100 216.39000,479.57800 C 214.45100,470.42000 217.59000,462.00100 223.39900,460.77000 C 229.20900,459.54100 235.49100,465.96300 237.43100,475.12100 z " id="path11060" style="fill:#ffffff;fill-opacity:0.10588218"/>
+ </g>
+ <g id="g11062" style="fill:#ffffff;fill-opacity:0.10588218">
+ <path d="M 208.41400,494.13100 C 211.99000,501.49800 211.27800,509.22100 206.82500,511.38200 C 202.37100,513.54400 195.86300,509.32200 192.28900,501.95800 C 188.71300,494.58900 189.42300,486.86600 193.87800,484.70400 C 198.33100,482.54300 204.83800,486.76500 208.41400,494.13100 z " id="path11064" style="fill:#ffffff;fill-opacity:0.10588218"/>
+ </g>
+ </g>
+ </g>
+ <g id="g11066" inkscape:label="Livello 1" transform="matrix(0.259912,0.000000,0.000000,0.259912,225.3261,156.0897)">
+ <g id="g11068" transform="matrix(0.518725,0.000000,0.000000,0.518725,90.37994,133.8101)">
+ <path d="M 692.13391 609.92218 A 315.40280 319.78339 0 1 1 61.328308,609.92218 A 315.40280 319.78339 0 1 1 692.13391 609.92218 z" id="path11070" sodipodi:cx="376.73111" sodipodi:cy="609.92218" sodipodi:rx="315.40280" sodipodi:ry="319.78339" sodipodi:type="arc" style="opacity:1.0000000;fill:#ff6400;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient35561);stroke-width:158.56438;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" transform="matrix(0.945988,0.000000,0.000000,0.945988,16.94100,-67.57368)"/>
+ <path d="M 692.13391 609.92218 A 315.40280 319.78339 0 1 1 61.328308,609.92218 A 315.40280 319.78339 0 1 1 692.13391 609.92218 z" id="path11072" sodipodi:cx="376.73111" sodipodi:cy="609.92218" sodipodi:rx="315.40280" sodipodi:ry="319.78339" sodipodi:type="arc" style="opacity:1.0000000;fill:url(#radialGradient35563);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:158.56438;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" transform="matrix(0.945988,0.000000,0.000000,0.945988,16.94100,-67.57368)"/>
+ <path d="M 692.13391 609.92218 A 315.40280 319.78339 0 1 1 61.328308,609.92218 A 315.40280 319.78339 0 1 1 692.13391 609.92218 z" id="path11074" sodipodi:cx="376.73111" sodipodi:cy="609.92218" sodipodi:rx="315.40280" sodipodi:ry="319.78339" sodipodi:type="arc" style="opacity:0.78892732;fill:url(#radialGradient35565);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:158.56438;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" transform="matrix(0.945988,0.000000,0.000000,0.945988,16.94100,-67.57368)"/>
+ <path d="M 692.13391 609.92218 A 315.40280 319.78339 0 1 1 61.328308,609.92218 A 315.40280 319.78339 0 1 1 692.13391 609.92218 z" id="path11076" sodipodi:cx="376.73111" sodipodi:cy="609.92218" sodipodi:rx="315.40280" sodipodi:ry="319.78339" sodipodi:type="arc" style="opacity:0.78892732;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient35567);stroke-width:15.856438;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" transform="matrix(0.969913,0.000000,0.000000,0.969913,7.875683,-82.21878)"/>
+ </g>
+ <path d="M 464.02403 383.40448 A 138.46870 133.54538 0 1 1 187.08662,383.40448 A 138.46870 133.54538 0 1 1 464.02403 383.40448 z" id="path11078" sodipodi:cx="325.55533" sodipodi:cy="383.40448" sodipodi:rx="138.46870" sodipodi:ry="133.54538" sodipodi:type="arc" style="opacity:0.78892732;fill:url(#linearGradient35569);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.2504091;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" transform="matrix(0.942319,0.000000,0.000000,0.785872,-21.54966,51.45357)"/>
+ <g id="g11080" transform="translate(-1.322063,-22.47507)">
+ <path d="M 377.10793,478.39296 C 329.65818,482.31301 290.96218,501.37282 280.13783,523.93451 C 273.63955,521.14214 266.63644,519.87561 259.44306,520.46989 C 248.81664,521.34780 239.27264,526.16855 231.62163,533.69436 C 228.37294,533.14956 225.02589,532.95123 221.59039,533.23505 C 199.53125,535.05747 183.08628,554.24333 184.88887,576.06268 C 186.42276,594.62942 200.68793,609.08943 218.49426,611.88275 C 225.82473,630.02173 239.55230,643.39907 255.58444,647.68141 C 255.59513,647.95584 255.56295,648.22775 255.58568,648.50297 C 256.84102,663.69797 276.19415,674.55711 299.77387,674.25491 C 313.91593,697.50839 342.01032,712.20447 373.05006,709.64012 C 405.44913,706.96350 431.59352,686.27510 440.75957,659.36516 C 461.98023,668.51452 489.19602,672.92961 518.49541,670.50906 C 582.03532,665.25974 631.05410,630.06302 627.90449,591.93909 C 625.37875,561.36641 590.04736,538.18805 543.39137,532.89868 C 543.38310,532.74272 543.41012,532.58801 543.39722,532.43184 C 542.07003,516.36705 516.66154,505.34912 486.68989,507.82521 C 484.73361,507.98684 482.89670,508.34044 481.00268,508.60596 C 467.41012,487.42229 425.46780,474.39773 377.10793,478.39296 z " id="path11082" style="opacity:0.65397924;fill:url(#linearGradient35571);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:5.0997062;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:0.27675274"/>
+ <path d="M 377.65631,479.26559 C 331.09484,483.15600 293.12325,502.07170 282.50153,524.46281 C 276.12490,521.69154 269.25289,520.43459 262.19417,521.02438 C 251.76669,521.89565 242.40135,526.67995 234.89357,534.14886 C 231.70569,533.60817 228.42131,533.41134 225.05012,533.69302 C 203.40393,535.50166 187.26682,554.54245 189.03567,576.19682 C 190.54085,594.62317 204.53897,608.97385 222.01195,611.74605 C 229.20519,629.74788 242.67577,643.02407 258.40779,647.27403 C 258.41828,647.54638 258.38670,647.81624 258.40901,648.08938 C 259.64085,663.16949 278.63167,673.94652 301.76998,673.64660 C 315.64729,696.72426 343.21574,711.30922 373.67440,708.76426 C 405.46695,706.10787 431.12191,685.57590 440.11636,658.86944 C 460.93976,667.94962 487.64606,672.33132 516.39696,669.92907 C 578.74737,664.71945 626.84851,629.78886 623.75786,591.95319 C 621.27940,561.61168 586.60943,538.60856 540.82685,533.35919 C 540.81874,533.20441 540.84526,533.05087 540.83259,532.89589 C 539.53025,516.95256 514.59742,506.01793 485.18685,508.47530 C 483.26719,508.63570 481.46466,508.98664 479.60610,509.25015 C 466.26800,488.22664 425.11087,475.30056 377.65631,479.26559 z " id="path11084" style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient35573);stroke-width:15.000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:0.27675274"/>
+ </g>
+ </g>
+ <text id="text11086" sodipodi:linespacing="125.00000%" space="preserve" style="font-size:43.748928px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#275400;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Andy MT" transform="matrix(-5.345516e-3,-0.999986,0.999986,-5.345516e-3,0.000000,0.000000)" x="-607.10364" y="211.90088">
+ <tspan id="tspan11088" sodipodi:role="line" x="-607.10364" y="211.90088">GNOME 2.12</tspan>
+ </text>
+ <rect height="105.78371" id="rect9997" style="opacity:0.23183389;fill:url(#linearGradient35575);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" width="119.58160" x="408.99075" y="508.56027"/>
+ </g>
+ <g id="g35466" transform="translate(-13.01362,31.03229)">
+ <g id="g35067" style="opacity:0.59999979;stroke:#cccccc;stroke-opacity:1.0000000" transform="matrix(0.991156,-0.132698,0.132698,0.991156,-401.7836,332.4877)">
+ <path d="M 657.05889,467.77624 C 685.93666,475.77702 700.72933,487.21368 781.80847,467.75357 C 858.72029,449.29367 875.37022,456.72700 906.55805,467.73091 C 906.55805,467.73091 906.55805,467.73091 906.55805,467.73091 C 906.55805,467.73091 906.55805,467.73091 906.55805,467.73091 C 906.55988,467.89774 906.56170,468.06458 906.56352,468.23141 C 906.56535,468.39824 906.56717,468.56508 906.56899,468.73191" id="path35058" sodipodi:nodetypes="cscscsc" style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#cccccc;stroke-width:5.3708396;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"/>
+ <path d="M 657.05889,440.74810 C 685.93666,448.74888 700.72933,460.18554 781.80847,440.72543 C 858.72029,422.26553 875.37022,429.69886 906.55805,440.70277 C 906.55805,440.70277 906.55805,440.70277 906.55805,440.70277 C 906.55805,440.70277 906.55805,440.70277 906.55805,440.70277 C 906.55988,440.86960 906.56170,441.03644 906.56352,441.20327 C 906.56535,441.37010 906.56717,441.53694 906.56899,441.70377" id="path35061" sodipodi:nodetypes="cscscsc" style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#cccccc;stroke-width:5.3708396;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"/>
+ <path d="M 655.05681,409.71579 C 683.93458,417.71657 698.72725,429.15323 779.80639,409.69312 C 856.71821,391.23322 873.36814,398.66655 904.55597,409.67046 C 904.55597,409.67046 904.55597,409.67046 904.55597,409.67046 C 904.55597,409.67046 904.55597,409.67046 904.55597,409.67046 C 904.55780,409.83729 904.55962,410.00413 904.56144,410.17096 C 904.56327,410.33779 904.56509,410.50463 904.56691,410.67146" id="path35063" sodipodi:nodetypes="cscscsc" style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#cccccc;stroke-width:5.3708396;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"/>
+ <path d="M 652.05368,377.68244 C 680.93145,385.68322 695.72412,397.11988 776.80326,377.65977 C 853.71508,359.19987 870.36501,366.63320 901.55284,377.63711 C 901.55284,377.63711 901.55284,377.63711 901.55284,377.63711 C 901.55284,377.63711 901.55284,377.63711 901.55284,377.63711 C 901.55467,377.80394 901.55649,377.97078 901.55831,378.13761 C 901.56014,378.30444 901.56196,378.47128 901.56378,378.63811" id="path35065" sodipodi:nodetypes="cscscsc" style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#cccccc;stroke-width:5.3708396;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"/>
+ </g>
+ <g id="g16646" style="opacity:0.43944636;stroke:#4c4c4c;stroke-opacity:1.0000000" transform="matrix(1.203785,0.000000,0.000000,1.203785,-432.0649,28.59484)">
+ <path d="M 46.047939 465.75146 A 97.101089 101.10526 0 1 1 -148.15424,465.75146 A 97.101089 101.10526 0 1 1 46.047939 465.75146 z" id="path14444" sodipodi:cx="-51.053150" sodipodi:cy="465.75146" sodipodi:rx="97.101089" sodipodi:ry="101.10526" sodipodi:type="arc" style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#4c4c4c;stroke-width:2.6198344;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" transform="matrix(0.973859,0.000000,0.000000,0.935053,851.0040,30.84154)"/>
+ <path d="M 46.047939 465.75146 A 97.101089 101.10526 0 1 1 -148.15424,465.75146 A 97.101089 101.10526 0 1 1 46.047939 465.75146 z" id="path14446" sodipodi:cx="-51.053150" sodipodi:cy="465.75146" sodipodi:rx="97.101089" sodipodi:ry="101.10526" sodipodi:type="arc" style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#4c4c4c;stroke-width:2.8608885;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" transform="matrix(0.891803,0.000000,0.000000,0.856267,846.8148,67.53623)"/>
+ <path d="M 46.047939 465.75146 A 97.101089 101.10526 0 1 1 -148.15424,465.75146 A 97.101089 101.10526 0 1 1 46.047939 465.75146 z" id="path14448" sodipodi:cx="-51.053150" sodipodi:cy="465.75146" sodipodi:rx="97.101089" sodipodi:ry="101.10526" sodipodi:type="arc" style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#4c4c4c;stroke-width:4.2933221;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" transform="matrix(0.594260,0.000000,0.000000,0.570580,831.6243,200.5954)"/>
+ <text id="text14450" sodipodi:linespacing="125.00000%" space="preserve" style="font-size:16.000000px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#4c4c4c;fill-opacity:1.0000000;stroke:#4c4c4c;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial">
+ <textPath id="textPath16643" xlink:href="#path14448">
+ <tspan id="tspan14452" style="font-size:16.000000px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#4c4c4c;fill-opacity:1.0000000;stroke:#4c4c4c;stroke-opacity:1.0000000;font-family:Arial">inkscape version 0.42.2 - ezechiele 17 09 2005</tspan>
+ </textPath>
+ </text>
+ <path d="M 46.047939 465.75146 A 97.101089 101.10526 0 1 1 -148.15424,465.75146 A 97.101089 101.10526 0 1 1 46.047939 465.75146 z" id="path15005" sodipodi:cx="-51.053150" sodipodi:cy="465.75146" sodipodi:rx="97.101089" sodipodi:ry="101.10526" sodipodi:type="arc" style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#4c4c4c;stroke-width:5.0821962;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" transform="matrix(0.502017,0.000000,0.000000,0.482013,826.9150,241.8456)"/>
+ <g id="g15810" style="fill:#7f7f7f;fill-opacity:1.0000000;stroke:#4c4c4c;stroke-opacity:1.0000000" transform="matrix(0.154904,0.000000,0.000000,0.143936,775.7271,432.4404)">
+ <path d="M 212.36500,379.38200 C 212.36500,379.38200 213.93200,337.50200 264.44500,344.47700 C 264.44500,344.47700 314.19500,359.30600 278.43400,416.90700 C 278.43400,416.90700 234.13300,472.76800 184.38900,471.01900 C 184.38900,471.01900 95.783400,477.12300 55.366000,376.76400 C 55.366000,376.76400 -9.1420300,250.22300 92.672700,189.13000 C 92.672700,189.13000 187.49800,128.03800 269.88200,177.78400 C 269.88200,177.78400 330.50600,224.04200 249.67100,282.51200 L 161.07100,352.33100 C 161.07100,352.33100 117.54300,401.19600 183.61100,418.65400 C 183.61100,418.65400 212.36500,424.77100 212.36500,379.38200 z " id="path15812" style="fill:#7f7f7f;fill-opacity:1.0000000;stroke:#4c4c4c;stroke-opacity:1.0000000"/>
+ <path d="M 316.15100,90.811200 C 297.42700,125.69100 266.74900,143.48200 247.62200,130.53800 C 228.51300,117.60200 228.19400,78.835600 246.92000,43.955800 C 265.64700,9.0708000 296.32300,-8.7148400 315.43400,4.2233900 C 334.55900,17.160300 334.87800,55.931600 316.15100,90.811200 z " id="path15814" style="fill:#7f7f7f;fill-opacity:1.0000000;stroke:#4c4c4c;stroke-opacity:1.0000000"/>
+ <g id="g15816" style="fill:#7f7f7f;fill-opacity:1.0000000;stroke:#4c4c4c;stroke-opacity:1.0000000">
+ <path d="M 137.75400,60.835400 C 137.75400,30.469500 150.28100,5.8541300 165.73400,5.8541300 C 181.18800,5.8541300 193.71400,30.469500 193.71400,60.835400 C 193.71400,91.201200 181.18800,115.81700 165.73400,115.81700 C 150.28100,115.81700 137.75400,91.201200 137.75400,60.835400 z " id="path15818" style="fill:#7f7f7f;fill-opacity:1.0000000;stroke:#4c4c4c;stroke-opacity:1.0000000"/>
+ <path d="" id="path15820" style="fill:#7f7f7f;fill-opacity:1.0000000;stroke:#4c4c4c;stroke-opacity:1.0000000"/>
+ </g>
+ <path d="M 113.10300,90.653100 C 117.72600,115.17300 110.23800,137.71900 96.384400,141.01200 C 82.526800,144.31000 67.544300,127.10300 62.917400,102.58800 C 58.294000,78.062700 65.781000,55.517000 79.635100,52.219100 C 93.492800,48.926400 108.47600,66.127400 113.10300,90.653100 z " id="path15822" style="fill:#7f7f7f;fill-opacity:1.0000000;stroke:#4c4c4c;stroke-opacity:1.0000000"/>
+ <path d="M 43.894900,141.56300 C 52.424200,161.29200 50.725100,181.97700 40.105200,187.76500 C 29.480600,193.55400 13.960000,182.24800 5.4352100,162.52400 C -3.0943800,142.79100 -1.4009700,122.10700 9.2236900,116.31800 C 19.844800,110.53000 35.364100,121.83600 43.894900,141.56300 z " id="path15824" style="fill:#7f7f7f;fill-opacity:1.0000000;stroke:#4c4c4c;stroke-opacity:1.0000000"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/gearflowers.svg b/PerformanceTests/PageLoad/svg/files/gearflowers.svg
new file mode 100644
index 000000000..038e202d2
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/gearflowers.svg
@@ -0,0 +1,8342 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ width="1024pt"
+ height="768pt"
+ id="svg1061"
+ sodipodi:version="0.32"
+ inkscape:version="0.40"
+ sodipodi:docbase="/home/xrostov/svg"
+ sodipodi:docname="gearflowers.svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ inkscape:export-filename="/home/xrostov/svg/kde/gearflowers.png"
+ inkscape:export-xdpi="72.000000"
+ inkscape:export-ydpi="72.000000">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient21439">
+ <stop
+ style="stop-color:#f1f1dd;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop21440" />
+ <stop
+ style="stop-color:#e8e8d5;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop21441" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient18861">
+ <stop
+ style="stop-color:#9afd4e;stop-opacity:0.67843139;"
+ offset="0.0000000"
+ id="stop18862" />
+ <stop
+ style="stop-color:#d7dfd2;stop-opacity:0.043715846;"
+ offset="0.68571430"
+ id="stop18863" />
+ <stop
+ style="stop-color:#d7dfd2;stop-opacity:0.33152175;"
+ offset="0.93414968"
+ id="stop18865" />
+ <stop
+ style="stop-color:#d7dfd2;stop-opacity:0.078431375;"
+ offset="1.0000000"
+ id="stop18864" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient18234">
+ <stop
+ style="stop-color:#c5dad1;stop-opacity:0.80392158;"
+ offset="0.0000000"
+ id="stop18235" />
+ <stop
+ style="stop-color:#bfd7e2;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop18236" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient16328">
+ <stop
+ style="stop-color:#aedced;stop-opacity:0.45405406;"
+ offset="0.0000000"
+ id="stop16329" />
+ <stop
+ style="stop-color:#59afd3;stop-opacity:0.49729729;"
+ offset="1.0000000"
+ id="stop16330" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient16323">
+ <stop
+ style="stop-color:#ecf3f6;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop16324" />
+ <stop
+ style="stop-color:#97ceed;stop-opacity:0.38043478;"
+ offset="1.0000000"
+ id="stop16325" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient16311">
+ <stop
+ style="stop-color:#5783c3;stop-opacity:1;"
+ offset="0"
+ id="stop16312" />
+ <stop
+ style="stop-color:#5783c3;stop-opacity:0;"
+ offset="1"
+ id="stop16313" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient16306">
+ <stop
+ style="stop-color:#3693ce;stop-opacity:0.0000000;"
+ offset="0.0000000"
+ id="stop16307" />
+ <stop
+ style="stop-color:#3693ce;stop-opacity:0.76502734;"
+ offset="0.50000000"
+ id="stop16310" />
+ <stop
+ style="stop-color:#3693ce;stop-opacity:0;"
+ offset="1.0000000"
+ id="stop16308" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient12484">
+ <stop
+ style="stop-color:#6cafd9;stop-opacity:0.40000001;"
+ offset="0.0000000"
+ id="stop12485" />
+ <stop
+ style="stop-color:#6cc4b2;stop-opacity:1.0000000;"
+ offset="0.39047620"
+ id="stop12488" />
+ <stop
+ style="stop-color:#6cce9e;stop-opacity:0.89411765;"
+ offset="0.58784580"
+ id="stop12489" />
+ <stop
+ style="stop-color:#88e8a3;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop12486" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11858">
+ <stop
+ style="stop-color:#7f88ec;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop11859" />
+ <stop
+ style="stop-color:#1d73ec;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop11860" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9363">
+ <stop
+ style="stop-color:#2f3fec;stop-opacity:0.58823532;"
+ offset="0.0000000"
+ id="stop9364" />
+ <stop
+ style="stop-color:#6974ec;stop-opacity:0.038043477;"
+ offset="1.0000000"
+ id="stop9365" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8737">
+ <stop
+ style="stop-color:#3186ec;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop8738" />
+ <stop
+ style="stop-color:#73a4df;stop-opacity:0.11413044;"
+ offset="1.0000000"
+ id="stop8739" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6847">
+ <stop
+ style="stop-color:#353b3d;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop6848" />
+ <stop
+ style="stop-color:#7f9bbe;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop6849" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4134">
+ <stop
+ style="stop-color:#9afd4e;stop-opacity:0.67843139;"
+ offset="0.0000000"
+ id="stop4135" />
+ <stop
+ style="stop-color:#d7dfd2;stop-opacity:0.043715846;"
+ offset="0.68571430"
+ id="stop16958" />
+ <stop
+ style="stop-color:#d7dfd2;stop-opacity:0.55737704;"
+ offset="1.0000000"
+ id="stop4136" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3347">
+ <stop
+ style="stop-color:#e9e9d6;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop3348" />
+ <stop
+ style="stop-color:#ffffea;stop-opacity:0;"
+ offset="1"
+ id="stop3349" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2582">
+ <stop
+ style="stop-color:#3ba80c;stop-opacity:0.26630434;"
+ offset="0.0000000"
+ id="stop2583" />
+ <stop
+ style="stop-color:#076253;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2584" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient15803">
+ <stop
+ style="stop-color:#a4e019;stop-opacity:0.0000000;"
+ offset="0.0000000"
+ id="stop15804" />
+ <stop
+ style="stop-color:#b4e072;stop-opacity:0.88043481;"
+ offset="0.50000000"
+ id="stop15807" />
+ <stop
+ style="stop-color:#a5e078;stop-opacity:0;"
+ offset="1"
+ id="stop15805" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient14553">
+ <stop
+ style="stop-color:#e4e4df;stop-opacity:1;"
+ offset="0"
+ id="stop14554" />
+ <stop
+ style="stop-color:#e4e4df;stop-opacity:0;"
+ offset="1"
+ id="stop14555" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient13927">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop13928" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop13929" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11439">
+ <stop
+ style="stop-color:#0d0ca8;stop-opacity:0.58039218;"
+ offset="0.0000000"
+ id="stop11440" />
+ <stop
+ style="stop-color:#075662;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop11441" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient10815">
+ <stop
+ style="stop-color:#076232;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop10816" />
+ <stop
+ style="stop-color:#080762;stop-opacity:0;"
+ offset="1"
+ id="stop10817" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient10191">
+ <stop
+ style="stop-color:#038906;stop-opacity:0.46739131;"
+ offset="0.0000000"
+ id="stop10192" />
+ <stop
+ style="stop-color:#0b0a8d;stop-opacity:0.065217391;"
+ offset="1.0000000"
+ id="stop10193" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9528">
+ <stop
+ style="stop-color:#080762;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop9529" />
+ <stop
+ style="stop-color:#080762;stop-opacity:0;"
+ offset="1"
+ id="stop9530" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7645">
+ <stop
+ style="stop-color:#3693ce;stop-opacity:1;"
+ offset="0"
+ id="stop7646" />
+ <stop
+ style="stop-color:#3693ce;stop-opacity:0;"
+ offset="1"
+ id="stop7647" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7625">
+ <stop
+ style="stop-color:#b4d4e8;stop-opacity:1;"
+ offset="0"
+ id="stop7626" />
+ <stop
+ style="stop-color:#b4d4e8;stop-opacity:0;"
+ offset="1"
+ id="stop7627" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7618">
+ <stop
+ style="stop-color:#6cafdc;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop7619" />
+ <stop
+ style="stop-color:#6cafdc;stop-opacity:0;"
+ offset="1"
+ id="stop7620" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6992">
+ <stop
+ style="stop-color:#6cafdc;stop-opacity:1;"
+ offset="0"
+ id="stop6993" />
+ <stop
+ style="stop-color:#6cafdc;stop-opacity:0;"
+ offset="1"
+ id="stop6994" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5124">
+ <stop
+ style="stop-color:#0f7cc4;stop-opacity:0.0000000;"
+ offset="0.0000000"
+ id="stop5125" />
+ <stop
+ style="stop-color:#3f7294;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop5126" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4493">
+ <stop
+ style="stop-color:#6cafdc;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4494" />
+ <stop
+ style="stop-color:#5b94ba;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4495" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3867">
+ <stop
+ style="stop-color:#2270c8;stop-opacity:0.63586956;"
+ offset="0.0000000"
+ id="stop3868" />
+ <stop
+ style="stop-color:#216bbe;stop-opacity:0.64313728;"
+ offset="0.42825395"
+ id="stop3870" />
+ <stop
+ style="stop-color:#0772eb;stop-opacity:0.53725493;"
+ offset="0.91768706"
+ id="stop3871" />
+ <stop
+ style="stop-color:#3d8feb;stop-opacity:0.77717394;"
+ offset="1.0000000"
+ id="stop3869" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3236">
+ <stop
+ style="stop-color:#b2d9ef;stop-opacity:1;"
+ offset="0"
+ id="stop3237" />
+ <stop
+ style="stop-color:#b2d9ef;stop-opacity:0;"
+ offset="1"
+ id="stop3238" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2610">
+ <stop
+ style="stop-color:#2984eb;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2611" />
+ <stop
+ style="stop-color:#2984eb;stop-opacity:0;"
+ offset="1"
+ id="stop2612" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient32557">
+ <stop
+ style="stop-color:#d5e9d7;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop32558" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.45108697;"
+ offset="1.0000000"
+ id="stop32559" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient31654">
+ <stop
+ style="stop-color:#9cf257;stop-opacity:1;"
+ offset="0"
+ id="stop31655" />
+ <stop
+ style="stop-color:#9cf257;stop-opacity:0;"
+ offset="1"
+ id="stop31656" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient29920">
+ <stop
+ style="stop-color:#86f721;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop29921" />
+ <stop
+ style="stop-color:#d8f2c1;stop-opacity:0;"
+ offset="1"
+ id="stop29922" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient29210">
+ <stop
+ style="stop-color:#ffffea;stop-opacity:1;"
+ offset="0"
+ id="stop29211" />
+ <stop
+ style="stop-color:#ffffea;stop-opacity:0;"
+ offset="1"
+ id="stop29212" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient29207">
+ <stop
+ style="stop-color:#eb552f;stop-opacity:0.77254903;"
+ offset="0.0000000"
+ id="stop29208" />
+ <stop
+ style="stop-color:#d64e2b;stop-opacity:0;"
+ offset="1"
+ id="stop29209" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient27896">
+ <stop
+ style="stop-color:#372820;stop-opacity:0.86956519;"
+ offset="0.0000000"
+ id="stop27897" />
+ <stop
+ style="stop-color:#0f0503;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop27898" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient26575">
+ <stop
+ style="stop-color:#f45a30;stop-opacity:0.86956519;"
+ offset="0.0000000"
+ id="stop26576" />
+ <stop
+ style="stop-color:#d64e2b;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop26577" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient24703">
+ <stop
+ style="stop-color:#aff274;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop24704" />
+ <stop
+ style="stop-color:#f1f2f0;stop-opacity:0.32608697;"
+ offset="1.0000000"
+ id="stop24705" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient22651">
+ <stop
+ style="stop-color:#1add6a;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop22652" />
+ <stop
+ style="stop-color:#1add6a;stop-opacity:0.54347825;"
+ offset="1.0000000"
+ id="stop22653" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient19525">
+ <stop
+ style="stop-color:#3de58d;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop19526" />
+ <stop
+ style="stop-color:#3de5c4;stop-opacity:0.49803922;"
+ offset="0.50000000"
+ id="stop19528" />
+ <stop
+ style="stop-color:#3de58d;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop19527" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient19517">
+ <stop
+ style="stop-color:#66e5a2;stop-opacity:1;"
+ offset="0"
+ id="stop19518" />
+ <stop
+ style="stop-color:#66e5a2;stop-opacity:0;"
+ offset="1"
+ id="stop19519" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient18127">
+ <stop
+ style="stop-color:#ce0329;stop-opacity:1;"
+ offset="0"
+ id="stop18128" />
+ <stop
+ style="stop-color:#ce0329;stop-opacity:0;"
+ offset="1"
+ id="stop18129" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient16187">
+ <stop
+ style="stop-color:#29e57b;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop16188" />
+ <stop
+ style="stop-color:#29e57b;stop-opacity:0.45652175;"
+ offset="1.0000000"
+ id="stop16189" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient16183">
+ <stop
+ style="stop-color:#29e59a;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop16184" />
+ <stop
+ style="stop-color:#29d3e5;stop-opacity:0.45652175;"
+ offset="1.0000000"
+ id="stop16185" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient16179">
+ <stop
+ style="stop-color:#29e582;stop-opacity:1;"
+ offset="0"
+ id="stop16180" />
+ <stop
+ style="stop-color:#29e582;stop-opacity:0;"
+ offset="1"
+ id="stop16181" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient16170">
+ <stop
+ style="stop-color:#29e58e;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop16171" />
+ <stop
+ style="stop-color:#45a2e5;stop-opacity:0.94565219;"
+ offset="0.50000000"
+ id="stop16174" />
+ <stop
+ style="stop-color:#29e58e;stop-opacity:0.99456519;"
+ offset="1.0000000"
+ id="stop16172" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient11111">
+ <stop
+ style="stop-color:#5794d8;stop-opacity:1;"
+ offset="0"
+ id="stop11112" />
+ <stop
+ style="stop-color:#5794d8;stop-opacity:0;"
+ offset="1"
+ id="stop11113" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11099">
+ <stop
+ style="stop-color:#589eea;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop11100" />
+ <stop
+ style="stop-color:#79afea;stop-opacity:0;"
+ offset="1"
+ id="stop11101" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11083">
+ <stop
+ style="stop-color:#a7b5ea;stop-opacity:0.043478262;"
+ offset="0.0000000"
+ id="stop11084" />
+ <stop
+ style="stop-color:#5146ea;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop11085" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4818">
+ <stop
+ style="stop-color:#e9390d;stop-opacity:1;"
+ offset="0"
+ id="stop4819" />
+ <stop
+ style="stop-color:#e9390d;stop-opacity:0;"
+ offset="1"
+ id="stop4820" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4190">
+ <stop
+ style="stop-color:#86ed18;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4191" />
+ <stop
+ style="stop-color:#bcecbf;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop4192" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3564">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop3565" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3566" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1695">
+ <stop
+ style="stop-color:#b17b1b;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1696" />
+ <stop
+ style="stop-color:#583d0d;stop-opacity:1.0000000;"
+ offset="0.50000000"
+ id="stop1699" />
+ <stop
+ style="stop-color:#c7922e;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop1697" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1695"
+ id="linearGradient1698"
+ gradientTransform="scale(1.666753,0.599969)"
+ x1="306.40466"
+ y1="742.39771"
+ x2="288.73209"
+ y2="703.21155"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3564"
+ id="linearGradient3567"
+ gradientTransform="scale(1.081233,0.924870)"
+ x1="499.80753"
+ y1="435.86755"
+ x2="550.16528"
+ y2="495.51517"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4190"
+ id="linearGradient4193"
+ gradientTransform="scale(1.040888,0.960718)"
+ x1="709.13391"
+ y1="445.11514"
+ x2="525.49945"
+ y2="652.39642"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient4821"
+ gradientTransform="matrix(1.310266,0.000000,0.000000,0.857544,-19.69210,-35.84892)"
+ x1="442.46298"
+ y1="540.10565"
+ x2="485.50449"
+ y2="578.96753"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11083"
+ id="radialGradient11086"
+ gradientTransform="scale(0.980331,1.020064)"
+ cx="433.95916"
+ cy="440.16448"
+ fx="433.95916"
+ fy="440.16448"
+ r="149.47448"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11099"
+ id="radialGradient11102"
+ gradientTransform="scale(1.077813,0.927805)"
+ cx="407.24873"
+ cy="602.51922"
+ fx="407.24873"
+ fy="602.51922"
+ r="25.687024"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11111"
+ id="radialGradient11114"
+ gradientTransform="scale(1.060653,0.942816)"
+ cx="482.54009"
+ cy="581.81309"
+ fx="482.54009"
+ fy="581.81309"
+ r="27.273221"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="linearGradient16173"
+ gradientTransform="scale(1.266827,0.789374)"
+ x1="338.52740"
+ y1="497.77591"
+ x2="397.40027"
+ y2="626.40479"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="linearGradient16178"
+ gradientTransform="scale(0.876284,1.141182)"
+ x1="457.80389"
+ y1="352.55243"
+ x2="507.93503"
+ y2="370.55652"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16179"
+ id="linearGradient16182"
+ gradientTransform="scale(0.754458,1.325456)"
+ x1="439.42288"
+ y1="318.50616"
+ x2="555.40745"
+ y2="318.50616"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16183"
+ id="radialGradient16186"
+ gradientTransform="scale(0.970016,1.030911)"
+ cx="424.20871"
+ cy="485.59210"
+ fx="424.20871"
+ fy="485.59210"
+ r="34.210431"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16187"
+ id="radialGradient16191"
+ gradientTransform="scale(1.503775,0.664993)"
+ cx="301.35504"
+ cy="785.52722"
+ fx="301.35504"
+ fy="785.52722"
+ r="51.984039"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient18127"
+ id="linearGradient18130"
+ gradientTransform="scale(1.279830,0.781354)"
+ x1="448.08412"
+ y1="529.98144"
+ x2="463.89505"
+ y2="529.98144"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11083"
+ id="radialGradient18810"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.980331,1.020064)"
+ cx="433.95916"
+ cy="440.16448"
+ fx="433.95916"
+ fy="440.16448"
+ r="149.47448" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11111"
+ id="radialGradient18811"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.060653,0.942816)"
+ cx="482.54009"
+ cy="581.81309"
+ fx="482.54009"
+ fy="581.81309"
+ r="27.273221" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11099"
+ id="radialGradient18812"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.077813,0.927805)"
+ cx="407.24873"
+ cy="602.51922"
+ fx="407.24873"
+ fy="602.51922"
+ r="25.687024" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11083"
+ id="radialGradient18829"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.980331,1.020064)"
+ cx="433.95916"
+ cy="440.16448"
+ fx="433.95916"
+ fy="440.16448"
+ r="149.47448" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11111"
+ id="radialGradient18830"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.060653,0.942816)"
+ cx="482.54009"
+ cy="581.81309"
+ fx="482.54009"
+ fy="581.81309"
+ r="27.273221" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11099"
+ id="radialGradient18831"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.077813,0.927805)"
+ cx="407.24873"
+ cy="602.51922"
+ fx="407.24873"
+ fy="602.51922"
+ r="25.687024" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11083"
+ id="radialGradient18844"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.980331,1.020064)"
+ cx="433.95916"
+ cy="440.16448"
+ fx="433.95916"
+ fy="440.16448"
+ r="149.47448" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11111"
+ id="radialGradient18845"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.060653,0.942816)"
+ cx="482.54009"
+ cy="581.81309"
+ fx="482.54009"
+ fy="581.81309"
+ r="27.273221" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11099"
+ id="radialGradient18846"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.077813,0.927805)"
+ cx="407.24873"
+ cy="602.51922"
+ fx="407.24873"
+ fy="602.51922"
+ r="25.687024" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11083"
+ id="radialGradient18858"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.980331,1.020064)"
+ cx="433.95916"
+ cy="440.16448"
+ fx="433.95916"
+ fy="440.16448"
+ r="149.47448" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11111"
+ id="radialGradient18859"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.060653,0.942816)"
+ cx="482.54009"
+ cy="581.81309"
+ fx="482.54009"
+ fy="581.81309"
+ r="27.273221" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11099"
+ id="radialGradient18860"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.077813,0.927805)"
+ cx="407.24873"
+ cy="602.51922"
+ fx="407.24873"
+ fy="602.51922"
+ r="25.687024" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11083"
+ id="radialGradient18872"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.980331,1.020064)"
+ cx="433.95916"
+ cy="440.16448"
+ fx="433.95916"
+ fy="440.16448"
+ r="149.47448" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11111"
+ id="radialGradient18873"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.060653,0.942816)"
+ cx="482.54009"
+ cy="581.81309"
+ fx="482.54009"
+ fy="581.81309"
+ r="27.273221" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11099"
+ id="radialGradient18874"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.077813,0.927805)"
+ cx="407.24873"
+ cy="602.51922"
+ fx="407.24873"
+ fy="602.51922"
+ r="25.687024" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient19517"
+ id="linearGradient19520"
+ gradientTransform="scale(1.214521,0.823370)"
+ x1="169.38230"
+ y1="829.35319"
+ x2="354.75676"
+ y2="829.35319"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient19525"
+ id="linearGradient19524"
+ gradientTransform="scale(1.077049,0.928463)"
+ x1="214.43430"
+ y1="925.64703"
+ x2="314.95380"
+ y2="797.13611"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16183"
+ id="linearGradient20153"
+ gradientTransform="scale(0.959947,1.041724)"
+ x1="123.61769"
+ y1="762.71704"
+ x2="297.13574"
+ y2="762.71704"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="linearGradient20778"
+ gradientTransform="scale(1.127960,0.886557)"
+ x1="100.04546"
+ y1="810.50677"
+ x2="140.80148"
+ y2="896.01904"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16179"
+ id="linearGradient21403"
+ gradientTransform="scale(1.042594,0.959147)"
+ x1="60.617191"
+ y1="689.21771"
+ x2="213.33556"
+ y2="689.21771"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="radialGradient22029"
+ gradientTransform="scale(0.851142,1.174892)"
+ cx="235.80563"
+ cy="607.92432"
+ fx="235.80563"
+ fy="607.92432"
+ r="154.82706"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient22651"
+ id="linearGradient22654"
+ gradientTransform="scale(0.876829,1.140474)"
+ x1="239.28758"
+ y1="552.20875"
+ x2="410.63165"
+ y2="552.20875"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="linearGradient22753"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.876284,1.141182)"
+ x1="457.80389"
+ y1="352.55243"
+ x2="507.93503"
+ y2="370.55652" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="linearGradient22754"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.266827,0.789374)"
+ x1="338.52740"
+ y1="497.77591"
+ x2="397.40027"
+ y2="626.40479" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16179"
+ id="linearGradient22755"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.754458,1.325456)"
+ x1="439.42288"
+ y1="318.50616"
+ x2="555.40745"
+ y2="318.50616" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16187"
+ id="radialGradient22756"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.503775,0.664993)"
+ cx="301.35504"
+ cy="785.52722"
+ fx="301.35504"
+ fy="785.52722"
+ r="51.984039" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16183"
+ id="radialGradient22757"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.970016,1.030911)"
+ cx="424.20871"
+ cy="485.59210"
+ fx="424.20871"
+ fy="485.59210"
+ r="34.210431" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="linearGradient22768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.876284,1.141182)"
+ x1="457.80389"
+ y1="352.55243"
+ x2="507.93503"
+ y2="370.55652" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="linearGradient22769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.266827,0.789374)"
+ x1="338.52740"
+ y1="497.77591"
+ x2="397.40027"
+ y2="626.40479" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16179"
+ id="linearGradient22770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.754458,1.325456)"
+ x1="439.42288"
+ y1="318.50616"
+ x2="555.40745"
+ y2="318.50616" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16187"
+ id="radialGradient22771"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.503775,0.664993)"
+ cx="301.35504"
+ cy="785.52722"
+ fx="301.35504"
+ fy="785.52722"
+ r="51.984039" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16183"
+ id="radialGradient22772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.970016,1.030911)"
+ cx="424.20871"
+ cy="485.59210"
+ fx="424.20871"
+ fy="485.59210"
+ r="34.210431" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient22651"
+ id="linearGradient22796"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.747936,-0.263564,0.253248,0.812886,-66.00252,-522.2351)"
+ x1="239.28758"
+ y1="552.20875"
+ x2="410.63165"
+ y2="552.20875" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient19517"
+ id="linearGradient22797"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.035987,-0.365071,0.182835,0.586866,-66.00252,-522.2351)"
+ x1="169.38230"
+ y1="829.35319"
+ x2="354.75676"
+ y2="829.35319" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient19525"
+ id="linearGradient22798"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.780840,-0.608176,0.387303,0.562453,-192.5983,-395.8742)"
+ x1="214.43430"
+ y1="925.64703"
+ x2="314.95380"
+ y2="797.13611" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="radialGradient22799"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.726024,-0.255844,0.260891,0.837418,-66.00252,-522.2351)"
+ cx="235.80563"
+ cy="607.92432"
+ fx="235.80563"
+ fy="607.92432"
+ r="154.82706" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16179"
+ id="linearGradient22800"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.889333,-0.313391,0.212986,0.683642,-66.00252,-522.2351)"
+ x1="60.617191"
+ y1="689.21771"
+ x2="213.33556"
+ y2="689.21771" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="linearGradient22801"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.917392,0.641787,-0.539887,0.559882,577.3328,-620.4757)"
+ x1="100.04546"
+ y1="810.50677"
+ x2="140.80148"
+ y2="896.01904" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16183"
+ id="linearGradient22802"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.837713,0.196357,-5.692751e-2,-0.547806,526.2861,312.8796)"
+ x1="123.61769"
+ y1="762.71704"
+ x2="297.13574"
+ y2="762.71704" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="linearGradient22812"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.876284,1.141182)"
+ x1="457.80389"
+ y1="352.55243"
+ x2="507.93503"
+ y2="370.55652" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16170"
+ id="linearGradient22813"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.266827,0.789374)"
+ x1="338.52740"
+ y1="497.77591"
+ x2="397.40027"
+ y2="626.40479" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16179"
+ id="linearGradient22814"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.754458,1.325456)"
+ x1="439.42288"
+ y1="318.50616"
+ x2="555.40745"
+ y2="318.50616" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16187"
+ id="radialGradient22815"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.503775,0.664993)"
+ cx="301.35504"
+ cy="785.52722"
+ fx="301.35504"
+ fy="785.52722"
+ r="51.984039" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16183"
+ id="radialGradient22816"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.437602,-0.617552,0.407925,1.560044,-389.8963,-14.17233)"
+ cx="424.20871"
+ cy="485.59210"
+ fx="424.20871"
+ fy="485.59210"
+ r="34.210431" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24703"
+ id="linearGradient24706"
+ gradientTransform="scale(0.883761,1.131527)"
+ x1="721.40253"
+ y1="415.81317"
+ x2="850.33508"
+ y2="369.74554"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27206"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,-20.78082,-22.33888)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,-14.32887,-25.06855)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27210"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,-17.55484,-15.39063)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27212"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,-9.117686,-18.12030)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,-3.410197,-23.57964)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27216"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,-0.432377,-14.89433)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27218"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,-8.621383,-10.67575)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27222"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,-12.59181,-6.209019)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27224"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,3.289898,-20.35366)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27226"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,5.275111,-13.65357)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27228"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,0.560229,-7.449777)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27230"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,-5.395411,-3.231199)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27232"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,-3.162046,2.724441)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27234"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,3.289898,-5.227275e-3)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27236"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,6.515870,-4.968261)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27238"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,11.97521,-11.17205)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,19.41976,-8.442384)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,15.44933,-4.223806)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27244"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,7.260325,0.987379)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27246"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,1.552836,7.191171)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27248"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,5.523263,13.64311)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27252"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,11.72705,7.935626)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,15.69748,1.979986)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27256"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,21.40497,-2.238592)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27258"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,30.09028,-5.960867)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,36.54222,-6.209019)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,24.83506,0.530754)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,18.18634,8.643387)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,16.92058,19.75586)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987894,0.000000,0.000000,1.012254,6.800716,19.31391)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.937251,-0.312243,0.319943,0.960362,-73.56507,191.5260)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27274"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-112.3984,741.8942)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27900"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-105.0254,734.8160)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27902"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-100.0624,741.0198)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27904"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-103.7847,743.9976)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27906"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-93.36228,743.9976)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27908"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-91.15093,735.9951)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27910"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-95.84380,730.3493)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27912"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.514186,-1.072342,1.096482,0.527971,-219.3567,791.6351)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27914"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-80.63751,724.2292)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27916"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.664584,-0.730933,0.748956,0.680972,-151.2493,542.3806)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.889151,-0.430517,0.441133,0.911076,-136.0881,269.0064)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27920"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-73.26199,724.6418)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27922"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-76.48797,745.7347)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27924"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-71.77309,755.1644)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27926"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-68.29896,748.4643)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27928"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-66.56190,741.7642)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27930"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-62.59148,733.0789)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27932"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-65.56930,727.6196)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27934"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.793371,-0.588640,0.603155,0.812934,-128.8736,388.4537)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27936"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.018401,-0.517302,0.507610,1.089658,-220.2464,232.2565)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27938"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.943971,-0.550652,0.583011,0.936086,-211.4401,331.5020)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27940"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-66.06560,759.3830)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-57.87659,764.5942)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27944"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-51.92095,759.1348)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27946"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-50.54511,749.7667)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27948"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-50.35567,743.5233)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.801512,-0.577507,0.591747,0.821275,-119.8147,382.4496)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27952"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.982115,-0.551060,0.779595,0.728869,-306.3692,421.7354)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27954"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.029952,-0.715437,1.108330,0.698035,-478.7668,522.2340)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27956"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012317,-0.268694,0.615328,0.970025,-252.5294,156.2318)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient27958"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.427858,-0.890434,0.912390,0.438408,-49.43944,765.3386)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient26575"
+ id="linearGradient27960"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.778543,-0.725499,0.863160,0.687046,-256.7091,527.2207)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29213"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-30.78662,6.259520)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29217"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-20.18376,-5.109815)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-15.32944,-13.15777)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29221"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,2.810396,-40.87850)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29223"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,7.920208,-49.43744)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29225"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,12.77453,-39.47330)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29227"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,15.71267,-44.83861)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29229"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,6.131774,-30.40339)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29231"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-2.043926,-22.35543)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29233"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-10.98610,-18.39533)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29235"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-29.25368,14.05198)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29237"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-23.50514,19.92827)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29239"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-20.82249,14.17973)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29241"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-22.09994,9.453150)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29243"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-17.24562,23.63288)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29245"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-12.26355,19.80052)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29247"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-23.50514,4.726573)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29249"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-15.71267,29.25367)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29251"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-7.664719,34.49123)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29253"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-7.025993,25.80455)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29255"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-8.666743e-7,36.66290)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29257"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-0.638727,30.53113)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29259"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-17.50111,1.660686)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-12.64679,-4.982070)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29263"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-6.131776,-13.15777)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29265"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,9.580897,-41.77272)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29267"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,7.536972,-21.07798)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29269"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,7.281482,-11.36934)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.868395,0.253674,1.568375,1.457824,-1180.288,-292.0646)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29277"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.868395,0.253674,1.568375,1.457824,-1186.676,-298.8351)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.868395,0.253674,1.568375,1.457824,-1181.310,-302.7952)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29281"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.827425,0.464507,1.392413,1.626726,-1066.229,-520.6123)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29283"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.835781,0.430301,1.422547,1.600440,-1079.567,-494.5802)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29285"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.834396,0.436167,1.417424,1.604980,-1083.711,-510.0830)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29287"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.868395,0.253674,1.568375,1.457824,-1180.799,-314.0368)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29289"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.868395,0.253674,1.568375,1.457824,-1193.829,-311.3542)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29291"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.810800,0.525597,1.337014,1.672556,-1035.630,-591.5112)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29293"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.868395,0.253674,1.568375,1.457824,-1200.600,-306.2444)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.868395,0.253674,1.568375,1.457824,-1208.265,-297.0467)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient29296"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.849689,0.365927,1.477572,1.549785,-1140.632,-404.9573)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29923"
+ gradientTransform="scale(0.987575,1.012581)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29925"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-13.90681,-18.79995)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29927"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-15.96708,-32.19169)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29929"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-16.73968,-36.82729)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29931"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-4.635605,-39.66016)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,4.635603,-32.96429)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29935"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,16.48215,-27.04102)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29937"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,26.52596,-23.95062)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,36.82730,-17.51228)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29941"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-11.07394,-3.347932)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29943"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-5.665740,-15.19448)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29945"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-2.575337,-26.26842)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-14.67941,7.468477)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29949"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-6.438340,16.22462)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29951"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,43.26564,-12.87667)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29953"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,58.20258,1.802739)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29955"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,39.91770,9.528745)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29957"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,16.73968,-3.863000)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29959"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,7.726005,19.57255)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29961"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,22.40542,19.57255)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29963"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,38.11497,16.48215)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29965"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,56.39985,16.73969)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29967"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,63.35325,19.05749)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29969"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,1.802733,20.60269)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29971"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-13.39175,14.67942)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29973"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,12.61914,15.19448)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,9.013673,5.665742)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29977"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,7.210938,-10.55887)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29979"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,32.19169,3.347940)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29981"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,18.54241,5.665742)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29983"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-0.772602,7.468477)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29985"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,3.090401,-5.665735)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29987"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,4.893136,-15.96708)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29989"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,29.87389,9.271212)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29991"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,53.05191,12.36161)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29993"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,43.78070,12.10408)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29995"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,27.55609,16.48215)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29997"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,79.06280,13.90682)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient29999"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,41.72043,-18.79995)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30001"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,16.22461,-32.19169)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30003"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-14.42188,-7.468469)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30005"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-20.34515,-8.498604)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30007"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-20.08762,-16.99721)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30009"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-18.54242,5.150675)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30011"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,10.30134,14.93695)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30013"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,18.79995,20.86022)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30015"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,46.35604,16.22462)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30017"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-1.030136,-6.953402)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30019"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-20.08762,-0.515063)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30021"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-11.33148,-52.53684)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30023"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-17.51228,-44.03823)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29920"
+ id="linearGradient30025"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-20.08762,-21.11775)"
+ x1="658.40747"
+ y1="488.13486"
+ x2="651.27698"
+ y2="479.61664" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31657"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,-10.30134,-1.030134)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31659"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,0.212737,5.649845)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31661"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,0.470271,-4.393963)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31663"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,3.818207,-13.15010)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31665"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,-2.362598,-8.772034)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31667"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,2.273006,10.80052)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31669"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,13.86202,4.362178)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31671"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,10.51408,-5.681631)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31673"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,9.483946,-20.61858)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31675"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.165816,-0.322530,0.220435,0.796784,-79.17957,158.6984)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31677"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106319,-0.489092,0.334273,0.756120,-101.1416,259.2760)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31679"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.086990,-0.530666,0.362687,0.742909,-97.84456,279.0446)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31681"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,19.27022,-23.96651)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31683"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,25.96609,-34.26786)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31685"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,32.14690,-44.82673)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31687"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,17.72502,-14.43777)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31691"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,17.46749,-4.393963)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31693"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,12.83188,11.57312)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31695"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,7.681211,19.81419)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31697"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.155385,-0.358105,0.244749,0.789654,-65.34849,152.4549)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31699"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.126128,-0.441576,0.301798,0.769659,-73.70026,200.3496)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient31701"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.209609,0.000000,0.000000,0.826714,37.55510,-54.09794)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32560"
+ gradientTransform="scale(1.040271,0.961288)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32562"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.151955,6.641592e-2,-6.348944e-2,1.050832,-55.76705,-72.55543)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32564"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.037713,7.290470e-2,-6.736938e-2,0.958924,27.83212,-39.51157)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32566"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.736493,0.734671,-0.678891,0.680574,411.7452,-302.0044)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32568"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.760880,0.709384,-0.655523,0.703110,392.2087,-298.3966)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32570"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.579637,0.718025,-0.510932,0.695579,458.4489,-287.7201)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32574"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.096088,0.173147,-0.158543,1.003640,20.15197,-118.5459)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32576"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.103483,0.183541,-0.163918,1.055082,13.52824,-132.0046)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32578"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.103483,0.183541,-0.163918,1.055082,10.21400,-121.9192)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32580"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.103483,0.183541,-0.163918,1.055082,9.183869,-116.5110)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.103483,0.183541,-0.163918,1.055082,7.896201,-110.8452)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32584"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.103483,0.183541,-0.163918,1.055082,5.835933,-104.6644)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32586"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.076966,0.302499,-0.277727,1.030987,62.26978,-174.7270)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.075455,0.307829,-0.282829,1.029599,61.54302,-169.6520)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32590"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.067558,0.334189,-0.308069,1.022331,74.27139,-176.6682)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.866614,0.491835,-0.396058,0.963964,247.6981,-259.7047)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32594"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.698720,0.621119,-0.438090,0.894314,376.2831,-317.1018)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient32596"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.535772,0.827273,-0.556347,0.727119,527.9138,-395.5688)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient33239"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.165816,-0.322530,0.220435,0.796784,-102.1224,200.1346)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient33241"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.165816,-0.322530,0.220435,0.796784,-108.3032,197.3017)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient33243"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.165816,-0.322530,0.220435,0.796784,-99.28952,209.9209)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient33245"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.165816,-0.322530,0.220435,0.796784,-90.53337,208.3757)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient33247"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.165816,-0.322530,0.220435,0.796784,-87.95804,216.6167)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24703"
+ id="linearGradient34091"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.722156,1.384742)"
+ x1="851.38702"
+ y1="329.09396"
+ x2="911.94794"
+ y2="265.80905" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34092"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.040271,7.911964e-17,1.809314e-16,0.961288,-1.281484,0.497022)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34093"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926831,-0.167631,-0.230108,0.835203,162.6202,168.4452)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34094"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.037713,7.290470e-2,-6.736938e-2,0.958924,27.83212,-39.51157)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34095"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.736493,0.734671,-0.678891,0.680574,411.7452,-302.0044)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34096"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.760880,0.709384,-0.655523,0.703110,392.2087,-298.3966)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34097"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.579637,0.718025,-0.510932,0.695579,458.4489,-287.7201)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34098"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.430658,0.729845,-0.325078,0.682599,500.6209,-283.1892)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34099"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.096088,0.173147,-0.158543,1.003640,20.15197,-118.5459)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34100"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.103483,0.183541,-0.163918,1.055082,13.52824,-132.0046)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34101"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.103483,0.183541,-0.163918,1.055082,10.21400,-121.9192)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34102"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.103483,0.183541,-0.163918,1.055082,9.183869,-116.5110)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34103"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.103483,0.183541,-0.163918,1.055082,7.896201,-110.8452)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34104"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.103483,0.183541,-0.163918,1.055082,5.835933,-104.6644)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34105"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.076966,0.302499,-0.277727,1.030987,62.26978,-174.7270)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34106"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.075455,0.307829,-0.282829,1.029599,61.54302,-169.6520)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.067558,0.334189,-0.308069,1.022331,74.27139,-176.6682)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34108"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.866614,0.491835,-0.396058,0.963964,247.6981,-259.7047)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.698720,0.621119,-0.438090,0.894314,376.2831,-317.1018)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient34110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.535772,0.827273,-0.556347,0.727119,527.9138,-395.5688)"
+ x1="738.24438"
+ y1="359.04068"
+ x2="647.64850"
+ y2="320.38120" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient34111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.295010,-0.932235,0.586346,0.219093,148.0222,793.0125)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient34112"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.295010,-0.932235,0.586346,0.219093,138.1218,782.1221)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient34113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.295010,-0.932235,0.586346,0.219093,135.8943,773.9543)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient34114"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.295010,-0.932235,0.586346,0.219093,140.7517,791.5754)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient34115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.295010,-0.932235,0.586346,0.219093,139.3594,774.2018)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient34116"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.295010,-0.932235,0.586346,0.219093,145.2996,783.6071)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient34117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.295010,-0.932235,0.586346,0.219093,135.3992,766.0340)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient31654"
+ id="linearGradient34118"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.295010,-0.932235,0.586346,0.219093,150.0023,796.7251)"
+ x1="540.32678"
+ y1="526.11975"
+ x2="530.11053"
+ y2="529.01123" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient32557"
+ id="linearGradient35362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.590873,1.001364,-0.446015,0.936542,0.000000,0.000000)"
+ x1="863.26630"
+ y1="-404.22238"
+ x2="842.65424"
+ y2="-416.36603" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2610"
+ id="linearGradient2613"
+ gradientTransform="matrix(1.724864,0.000000,0.000000,0.579756,13.46278,356.2460)"
+ x1="419.98212"
+ y1="900.96655"
+ x2="152.85609"
+ y2="70.039268"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3236"
+ id="linearGradient3239"
+ gradientTransform="matrix(2.010612,0.000000,0.000000,0.497361,17.60518,365.5664)"
+ x1="223.00340"
+ y1="-113.55350"
+ x2="733.91034"
+ y2="1418.3474"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3867"
+ id="linearGradient3245"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.724864,0.000000,0.000000,0.579756,-15.53398,409.0615)"
+ x1="-0.70458949"
+ y1="458.81543"
+ x2="739.60657"
+ y2="451.16016" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4493"
+ id="linearGradient4496"
+ gradientTransform="scale(0.999428,1.000572)"
+ x1="522.64154"
+ y1="522.35547"
+ x2="522.27380"
+ y2="599.56842"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5124"
+ id="linearGradient4502"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.999428,0.000000,0.000000,1.000572,-1.496982,0.224547)"
+ x1="525.23193"
+ y1="523.95349"
+ x2="523.71497"
+ y2="599.02582" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6992"
+ id="radialGradient6995"
+ gradientTransform="scale(0.517306,1.933091)"
+ cx="1051.1016"
+ cy="290.64341"
+ fx="1051.1016"
+ fy="290.64341"
+ r="9.6218940"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7625"
+ id="radialGradient7628"
+ gradientTransform="scale(3.370999,0.296648)"
+ cx="296.57391"
+ cy="1382.4457"
+ fx="296.57391"
+ fy="1382.4457"
+ r="9.2981535"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7625"
+ id="radialGradient7630"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(3.370999,0.296648)"
+ cx="296.57391"
+ cy="1382.4457"
+ fx="296.57391"
+ fy="1382.4457"
+ r="9.2981535" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7625"
+ id="radialGradient7632"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(3.370999,0.296648)"
+ cx="296.57391"
+ cy="1382.4457"
+ fx="296.57391"
+ fy="1382.4457"
+ r="9.2981535" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7625"
+ id="radialGradient7634"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(3.370999,0.296648)"
+ cx="296.57391"
+ cy="1382.4457"
+ fx="296.57391"
+ fy="1382.4457"
+ r="9.2981535" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7625"
+ id="radialGradient7636"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(3.370999,0.296648)"
+ cx="296.57391"
+ cy="1382.4457"
+ fx="296.57391"
+ fy="1382.4457"
+ r="9.2981535" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7625"
+ id="radialGradient7638"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(3.370999,0.296648)"
+ cx="296.57391"
+ cy="1382.4457"
+ fx="296.57391"
+ fy="1382.4457"
+ r="9.2981535" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7625"
+ id="radialGradient7640"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(3.370999,0.296648)"
+ cx="296.57391"
+ cy="1382.4457"
+ fx="296.57391"
+ fy="1382.4457"
+ r="9.2981535" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7625"
+ id="radialGradient7642"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(3.370999,0.296648)"
+ cx="296.57391"
+ cy="1382.4457"
+ fx="296.57391"
+ fy="1382.4457"
+ r="9.2981535" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7645"
+ id="linearGradient7648"
+ gradientTransform="scale(0.587795,1.701274)"
+ x1="1794.5216"
+ y1="133.68471"
+ x2="1794.5216"
+ y2="328.50177"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9528"
+ id="linearGradient9547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.381130,0.000000,0.000000,0.724045,15.53398,-1.035599)"
+ x1="20.132007"
+ y1="272.79824"
+ x2="542.98260"
+ y2="272.79824" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10191"
+ id="linearGradient9551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.381130,0.724045)"
+ x1="247.66397"
+ y1="426.46765"
+ x2="371.05960"
+ y2="61.155201" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10815"
+ id="linearGradient9559"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.381130,9.707052e-17,3.558063e-17,0.724045,15.53398,-1.035599)"
+ x1="20.132008"
+ y1="272.79825"
+ x2="542.98260"
+ y2="272.79825" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient13927"
+ id="radialGradient13930"
+ gradientTransform="scale(1.069850,0.934711)"
+ cx="560.18524"
+ cy="479.57709"
+ fx="560.60718"
+ fy="479.09290"
+ r="49.800396"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14553"
+ id="radialGradient14558"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.540400,0.000000,0.000000,0.649182,-5.916122,-4.022963)"
+ cx="423.37262"
+ cy="842.77686"
+ fx="423.37262"
+ fy="842.77686"
+ r="62.536392" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient15803"
+ id="linearGradient15806"
+ gradientTransform="scale(1.234394,0.810114)"
+ x1="303.45883"
+ y1="196.89500"
+ x2="732.64819"
+ y2="795.76660"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2582"
+ id="linearGradient1956"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.381130,1.122787e-16,8.625309e-17,0.724045,15.53398,-1.035599)"
+ x1="20.132008"
+ y1="272.79825"
+ x2="542.98260"
+ y2="272.79825" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2582"
+ id="linearGradient2588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.381130,2.068785e-16,1.105491e-16,0.724045,15.53398,-1.035599)"
+ x1="20.132008"
+ y1="272.79825"
+ x2="542.98260"
+ y2="272.79825" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2582"
+ id="linearGradient2592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.381130,1.214036e-16,1.326668e-16,0.724045,15.53398,-1.035599)"
+ x1="20.132008"
+ y1="272.79825"
+ x2="542.98260"
+ y2="272.79825" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient2596"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.810800,0.525597,1.337014,1.672556,-1026.028,-565.4414)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient2598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.810800,0.525597,1.337014,1.672556,-1040.135,-559.3741)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient2600"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.810800,0.525597,1.337014,1.672556,-1021.781,-572.1156)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient2602"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.810800,0.525597,1.337014,1.672556,-1012.225,-572.1156)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient2604"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.810800,0.525597,1.337014,1.672556,-1052.724,-558.1606)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient2606"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.810800,0.525597,1.337014,1.672556,-1021.477,-566.9583)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient2719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,1.766951,42.53737)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient2721"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,9.502860,46.02611)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient29210"
+ id="linearGradient2723"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,22.54773,46.93622)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient2725"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,30.73869,52.85191)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3351"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,16.63203,49.21148)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3353"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,34.53080,56.79570)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3355"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,41.50829,59.52603)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3357"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,43.32850,54.21707)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3359"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,35.74428,47.54295)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3361"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,51.06441,58.61592)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3363"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,56.37337,67.26193)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3365"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,45.75546,62.86308)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3367"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,24.51963,51.18338)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3369"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,51.97452,49.21148)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3371"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,70.78340,48.14969)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3373"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,80.79458,46.48116)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3375"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,95.81134,47.54295)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3377"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,60.46885,47.08790)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3379"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,65.62613,57.40244)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,60.16548,54.52044)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,53.18800,60.58782)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,47.12062,54.21707)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3387"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,44.84535,49.36316)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,73.05867,64.53161)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3391"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,96.26639,71.66079)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3393"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,109.3113,62.71140)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,83.82827,61.34624)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3397"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,84.58669,38.44188)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3399"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,70.02498,37.22840)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,95.50797,39.80704)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3403"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,105.5191,45.11600)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,53.03631,38.13851)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3407"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,27.70500,41.47557)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3409"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,13.75003,40.11041)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3411"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,64.86770,68.02036)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3413"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,78.97436,73.17763)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3415"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,68.96318,21.30153)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3417"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,40.59818,6.284765)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3419"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,64.10928,2.189284)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4134"
+ id="radialGradient4143"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.987734,1.012418)"
+ cx="651.55780"
+ cy="477.82614"
+ fx="651.55780"
+ fy="477.82614"
+ r="195.36795" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6847"
+ id="linearGradient6858"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.381402,0.723902)"
+ x1="31.486246"
+ y1="271.42126"
+ x2="554.00787"
+ y2="271.42126" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient6864"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012317,-0.268694,0.615328,0.970025,-318.7249,148.5209)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8737"
+ id="radialGradient8740"
+ gradientTransform="scale(2.154316,0.464185)"
+ cx="347.72696"
+ cy="1018.0652"
+ fx="347.72696"
+ fy="1018.0652"
+ r="80.600567"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9363"
+ id="radialGradient9366"
+ gradientTransform="scale(1.470760,0.679921)"
+ cx="393.44842"
+ cy="729.92766"
+ fx="393.44842"
+ fy="729.92766"
+ r="97.868379"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8737"
+ id="radialGradient11231"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.154316,-1.020908,0.000000,0.464185,-359.4387,434.7816)"
+ cx="347.72696"
+ cy="1018.0652"
+ fx="347.72696"
+ fy="1018.0652"
+ r="80.600567" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8737"
+ id="radialGradient11233"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.154316,-1.020908,0.000000,0.464185,-630.8869,578.0072)"
+ cx="347.72696"
+ cy="1018.0652"
+ fx="347.72696"
+ fy="1018.0652"
+ r="80.600567" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8737"
+ id="radialGradient11235"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.154316,0.000000,0.000000,0.464185,228.3615,58.97665)"
+ cx="347.72696"
+ cy="1018.0652"
+ fx="347.72696"
+ fy="1018.0652"
+ r="80.600567" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11858"
+ id="radialGradient11861"
+ gradientTransform="scale(1.431356,0.698638)"
+ cx="640.29669"
+ cy="715.48064"
+ fx="640.29669"
+ fy="715.48064"
+ r="27.752797"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12484"
+ id="linearGradient12491"
+ gradientTransform="scale(1.149762,0.869745)"
+ x1="875.55115"
+ y1="493.48654"
+ x2="807.70654"
+ y2="428.66379"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12484"
+ id="linearGradient12493"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.011473,0.546695,-0.413551,0.765135,0.000000,0.000000)"
+ x1="1023.0687"
+ y1="-241.42816"
+ x2="999.95947"
+ y2="-327.93689" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16306"
+ id="linearGradient16309"
+ gradientTransform="scale(1.165421,0.858059)"
+ x1="945.26428"
+ y1="601.43610"
+ x2="955.62598"
+ y2="610.90717"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16311"
+ id="radialGradient16314"
+ gradientTransform="scale(0.807042,1.239092)"
+ cx="1427.3757"
+ cy="391.50178"
+ fx="1427.3757"
+ fy="391.50178"
+ r="36.047479"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16323"
+ id="radialGradient16326"
+ gradientTransform="scale(0.952880,1.049450)"
+ cx="1145.5621"
+ cy="483.00604"
+ fx="1145.5621"
+ fy="483.00604"
+ r="26.520229"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16328"
+ id="linearGradient16331"
+ gradientTransform="scale(0.591090,1.691790)"
+ x1="1882.3138"
+ y1="295.38058"
+ x2="1882.3138"
+ y2="265.39999"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16328"
+ id="linearGradient16336"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.591090,0.000000,0.000000,1.691790,-13.69300,10.69440)"
+ x1="1882.3138"
+ y1="295.38058"
+ x2="1882.3138"
+ y2="265.39999" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4134"
+ id="radialGradient17593"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987734,0.000000,0.000000,1.012418,11.44915,17.40954)"
+ cx="651.55780"
+ cy="477.82614"
+ fx="651.55780"
+ fy="477.82614"
+ r="195.36795" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4134"
+ id="radialGradient17603"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987734,0.000000,0.000000,1.012418,9.558439,35.31861)"
+ cx="651.55780"
+ cy="477.82614"
+ fx="651.55780"
+ fy="477.82614"
+ r="195.36795" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4134"
+ id="radialGradient17605"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987734,0.000000,0.000000,1.012418,3.917300,54.12240)"
+ cx="651.55780"
+ cy="477.82614"
+ fx="651.55780"
+ fy="477.82614"
+ r="195.36795" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient18861"
+ id="radialGradient17607"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987734,0.000000,0.000000,1.012418,12.36990,12.27472)"
+ cx="659.99554"
+ cy="413.55933"
+ fx="659.99554"
+ fy="413.55933"
+ r="103.70863" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient18861"
+ id="radialGradient17609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987734,0.000000,0.000000,1.012418,15.26705,31.50123)"
+ cx="659.99554"
+ cy="413.55933"
+ fx="659.99554"
+ fy="413.55933"
+ r="103.70863" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient18861"
+ id="radialGradient17610"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987734,0.000000,0.000000,1.012418,-1.580261,-0.263377)"
+ cx="659.99554"
+ cy="413.55933"
+ fx="659.99554"
+ fy="413.55933"
+ r="103.70863" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient18234"
+ id="radialGradient18237"
+ gradientTransform="scale(0.593526,1.684847)"
+ cx="1118.4713"
+ cy="205.08790"
+ fx="1118.4713"
+ fy="205.08790"
+ r="20.634364"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient18234"
+ id="radialGradient18239"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.593526,1.684847)"
+ cx="1118.4713"
+ cy="205.08790"
+ fx="1118.4713"
+ fy="205.08790"
+ r="20.634364" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient20109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.752220,-0.640391,0.656181,0.770768,-124.5753,439.8346)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient20113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.752220,-0.640391,0.656181,0.770768,-135.3115,437.5400)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient20115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.973413,-0.168531,0.172686,0.997415,-59.56658,51.19465)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient20117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.752220,-0.640391,0.656181,0.770768,-141.3692,433.5893)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient20119"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.752220,-0.640391,0.656181,0.770768,-133.2045,435.1695)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient20121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.752220,-0.640391,0.656181,0.770768,-131.0974,445.1778)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient20127"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.752220,-0.640391,0.656181,0.770768,-115.8216,446.2313)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient27896"
+ id="linearGradient20129"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.752220,-0.640391,0.656181,0.770768,-106.0766,454.1326)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20139"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,-12.99311,29.54724)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20766"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,-15.51716,22.97124)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,-22.62834,15.06993)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,-19.46781,20.07409)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,-28.94938,6.115120)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20776"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.840119,-0.519744,0.532560,0.860835,-180.9311,344.6393)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20779"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,-36.32393,-4.156579)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,-10.77638,8.222131)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20783"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,10.29378,7.432000)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20785"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,-10.24962,32.97956)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20787"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,1.075584,14.80655)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20789"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,13.19092,27.71202)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20791"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,-23.41847,5.324989)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20793"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,-2.348316,25.86839)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4818"
+ id="linearGradient20795"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987437,-3.005222e-2,3.079281e-2,1.011785,24.77950,16.38681)"
+ x1="584.57037"
+ y1="453.69092"
+ x2="580.25800"
+ y2="445.05798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient20817"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-3.414257,37.30035)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21443"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-11.84231,30.71593)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21445"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-18.69011,25.71177)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21447"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-34.49273,3.324736)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21449"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,-31.06883,7.802143)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21451"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,60.32295,64.16480)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21453"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,49.26112,61.26765)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21455"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,42.67670,57.31700)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21457"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,45.31047,50.20582)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21459"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,56.89905,54.41985)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,61.63984,43.09465)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,74.80868,72.32948)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,69.80452,70.22246)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,62.69335,65.48168)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,87.18740,77.07026)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21471"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,105.3604,75.22662)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21473"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,107.9942,58.63388)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,97.45909,55.73674)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,82.97337,59.95077)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,87.18740,51.52271)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,97.98585,77.59702)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,110.8913,77.59702)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21485"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,116.4222,74.43649)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21487"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,124.8503,64.95493)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21489"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,123.7968,60.47752)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21491"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,115.3687,56.52687)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21493"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,113.2617,69.16896)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21495"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,102.1999,53.89310)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21497"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,119.5828,69.95909)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21499"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,100.0929,83.91806)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21501"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,83.23674,76.54351)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21503"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,50.84139,65.21830)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21505"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,59.26945,64.69155)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21507"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,25.29383,53.10297)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21509"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,15.81226,49.41569)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21511"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,6.857446,45.72841)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,0.799778,42.83127)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21515"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,12.38836,34.40321)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21517"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,21.34317,35.98347)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21519"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,40.83306,39.67075)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21521"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,61.90321,38.35386)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21523"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,75.33544,43.35802)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21525"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,76.91570,54.68323)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21527"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,90.08454,47.83543)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21529"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,95.87883,51.52271)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21531"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,82.44661,11.48942)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21533"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,100.6196,28.60892)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21535"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,16.07564,-12.21450)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21539"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,110.1012,54.94660)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,93.50844,81.02092)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21543"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,101.4097,84.97157)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21545"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,75.59881,73.64636)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21439"
+ id="linearGradient21547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.987575,0.000000,0.000000,1.012581,19.23616,50.46920)"
+ x1="629.39368"
+ y1="471.64603"
+ x2="624.75055"
+ y2="465.35226" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12484"
+ id="linearGradient21629"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.796302,-0.829371,0.627383,-0.602368,0.000000,0.000000)"
+ x1="-691.15564"
+ y1="30.686178"
+ x2="-754.20099"
+ y2="2.5523021" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#afafaf"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.078431373"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.240968"
+ inkscape:cx="447.05866"
+ inkscape:cy="294.43435"
+ inkscape:current-layer="layer2"
+ inkscape:window-width="1333"
+ inkscape:window-height="1112"
+ inkscape:window-x="0"
+ inkscape:window-y="31" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ rdf:about=""
+ id="Work6">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ id="type9"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title
+ id="title1820">Gearflowers</dc:title>
+ <dc:date
+ id="date1822">January 8, 2004</dc:date>
+ <dc:creator
+ id="creator1824">
+ <cc:Agent
+ id="Agent1825">
+ <dc:title
+ id="title1826">Alexandre Rostovtsev</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:description
+ id="description1828">Wallpaper design for the KDE SVG contest. Also, hummingbirds are cool.</dc:description>
+ <cc:license
+ id="license1830"
+ rdf:resource="http://creativecommons.org/licenses/LGPL/2.1/" />
+ <dc:subject
+ id="subject1838">
+ <rdf:Bag
+ id="Bag1839">
+ <rdf:li
+ id="li1974">gear</rdf:li>
+ <rdf:li
+ id="li1976">flower</rdf:li>
+ <rdf:li
+ id="li1978">hummingbird</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <dc:rights
+ id="rights4497">
+ <cc:Agent
+ id="Agent4498">
+ <dc:title
+ id="title4499">Alexandre Rostovtsev</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/LGPL/2.1/"
+ id="License21621">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction"
+ id="permits21622" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution"
+ id="permits21623" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice"
+ id="requires21624" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks"
+ id="permits21625" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike"
+ id="requires21626" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode"
+ id="requires21627" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Background">
+ <path
+ style="fill:url(#linearGradient15806);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M -6.2135922,331.39159 C 462.91262,273.39806 657.60518,-4.1423948 657.60518,-4.1423948 L 1286.2136,-5.1779935 C 1286.2136,-5.1779935 1285.1780,312.75081 1287.2492,457.73463 C 1168.1553,501.22977 1142.2654,764.27184 1034.5631,824.33657 C 926.86084,884.40129 668.99676,796.37540 532.29773,773.59223 C 395.59871,750.80906 -8.2847896,816.05178 -8.2847896,816.05178 L -6.2135922,331.39159 z "
+ id="path15180"
+ sodipodi:nodetypes="cccccccc" />
+ <g
+ id="Leaf"
+ transform="translate(501.6423,196.3455)">
+ <path
+ style="fill:url(#linearGradient9547);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 43.495157,164.66019 C 276.50486,388.34951 338.64079,376.95793 423.55988,385.24272 C 508.47898,393.52751 694.88669,258.89967 724.91909,252.68608 C 754.95149,246.47249 752.88029,251.65048 765.30749,256.82848 C 748.73789,210.22653 666.92559,97.346281 611.00319,62.135921 C 555.08089,26.925563 404.91910,-13.462777 280.64726,19.676373 C 198.83496,38.317153 115.98706,135.66343 43.495157,164.66019 z "
+ id="path8898"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#080762;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 449.21875,12.343750 C 372.55367,131.34626 351.03163,190.15459 345.31250,234.71875 C 296.43407,228.74167 250.88253,220.20102 210.06250,211.18750 C 210.18144,159.47011 307.03125,15.562500 307.03125,15.562500 C 231.73758,132.43627 211.35292,167.53740 205.28125,210.12500 C 111.44954,189.10115 46.625000,165.87500 46.625000,165.87500 C 95.278072,186.13432 149.62093,202.52998 204.53125,215.34375 C 205.73417,244.61892 210.49875,254.89076 234.81250,324.93750 C 212.11540,236.98624 209.34258,255.80079 209.75000,216.50000 C 255.62272,227.00430 301.69759,235.02520 345.12500,240.43750 C 346.64554,269.96362 353.89092,311.29960 377.53125,379.40625 C 355.00622,292.12181 351.03030,281.31222 351.31250,241.25000 C 399.42652,247.01704 443.95673,249.65958 480.81250,249.21875 C 482.09933,277.29978 486.10250,295.38014 509.81250,363.68750 C 486.91509,274.96003 484.85720,289.97427 485.34375,249.09375 C 521.11851,248.40068 549.34122,244.76072 565.71875,238.12500 C 576.82659,233.17150 593.20091,230.91691 611.78125,230.34375 C 609.02322,239.26769 604.15131,267.42325 620.50000,307.75000 C 605.49195,257.72323 612.64130,247.27739 614.87500,230.31250 C 668.07068,229.21004 737.88540,241.30570 757.40625,245.12500 C 735.98732,234.66460 664.92792,227.25580 615.21875,228.21875 C 615.22870,228.11904 615.24045,228.03777 615.25000,227.93750 C 616.41525,215.70752 675.84375,123.06250 675.84375,123.06250 C 614.59722,216.66570 616.91444,216.32105 612.43750,228.21875 C 605.01927,228.41116 598.05690,228.77061 591.93750,229.37500 C 561.08150,232.42251 544.14471,244.86783 485.50000,246.00000 C 481.12067,196.29050 582.62500,47.906250 582.62500,47.906250 C 504.83281,168.65828 486.07119,201.47841 480.75000,246.09375 C 450.57954,246.34478 409.84371,243.69470 351.53125,235.56250 C 347.17084,177.77103 449.21875,12.343750 449.21875,12.343750 z "
+ id="path9535"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
+ </g>
+ <g
+ id="g9552"
+ transform="matrix(0.463805,0.606522,-0.472462,0.595409,611.4504,236.7744)"
+ style="fill-opacity:1.0;fill:url(#linearGradient6858);">
+ <path
+ style="fill:url(#linearGradient6858);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 43.495157,164.66019 C 276.50486,388.34951 338.64079,376.95793 423.55988,385.24272 C 508.47898,393.52751 694.88669,258.89967 724.91909,252.68608 C 754.95149,246.47249 752.88029,251.65048 765.30749,256.82848 C 748.73789,210.22653 666.92559,97.346281 611.00319,62.135921 C 555.08089,26.925563 404.91910,-13.462777 280.64726,19.676373 C 198.83496,38.317153 115.98706,135.66343 43.495157,164.66019 z "
+ id="path9553"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:url(#linearGradient6858);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 449.21875,12.343750 C 372.55367,131.34626 351.03163,190.15459 345.31250,234.71875 C 296.43407,228.74167 250.88253,220.20102 210.06250,211.18750 C 210.18144,159.47011 307.03125,15.562500 307.03125,15.562500 C 231.73758,132.43627 211.35292,167.53740 205.28125,210.12500 C 111.44954,189.10115 46.625000,165.87500 46.625000,165.87500 C 95.278072,186.13432 149.62093,202.52998 204.53125,215.34375 C 205.73417,244.61892 210.49875,254.89076 234.81250,324.93750 C 212.11540,236.98624 209.34258,255.80079 209.75000,216.50000 C 255.62272,227.00430 301.69759,235.02520 345.12500,240.43750 C 346.64554,269.96362 353.89092,311.29960 377.53125,379.40625 C 355.00622,292.12181 351.03030,281.31222 351.31250,241.25000 C 399.42652,247.01704 443.95673,249.65958 480.81250,249.21875 C 482.09933,277.29978 486.10250,295.38014 509.81250,363.68750 C 486.91509,274.96003 484.85720,289.97427 485.34375,249.09375 C 521.11851,248.40068 549.34122,244.76072 565.71875,238.12500 C 576.82659,233.17150 593.20091,230.91691 611.78125,230.34375 C 609.02322,239.26769 604.15131,267.42325 620.50000,307.75000 C 605.49195,257.72323 612.64130,247.27739 614.87500,230.31250 C 668.07068,229.21004 737.88540,241.30570 757.40625,245.12500 C 735.98732,234.66460 664.92792,227.25580 615.21875,228.21875 C 615.22870,228.11904 615.24045,228.03777 615.25000,227.93750 C 616.41525,215.70752 675.84375,123.06250 675.84375,123.06250 C 614.59722,216.66570 616.91444,216.32105 612.43750,228.21875 C 605.01927,228.41116 598.05690,228.77061 591.93750,229.37500 C 561.08150,232.42251 544.14471,244.86783 485.50000,246.00000 C 481.12067,196.29050 582.62500,47.906250 582.62500,47.906250 C 504.83281,168.65828 486.07119,201.47841 480.75000,246.09375 C 450.57954,246.34478 409.84371,243.69470 351.53125,235.56250 C 347.17084,177.77103 449.21875,12.343750 449.21875,12.343750 z "
+ id="path9554"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
+ </g>
+ <g
+ id="g9556"
+ transform="matrix(-0.431666,-0.749539,0.761496,-0.424888,183.0256,690.0901)">
+ <path
+ style="fill:url(#linearGradient9559);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 43.495157,164.66019 C 276.50486,388.34951 338.64079,376.95793 423.55988,385.24272 C 508.47898,393.52751 694.88669,258.89967 724.91909,252.68608 C 754.95149,246.47249 752.88029,251.65048 765.30749,256.82848 C 748.73789,210.22653 666.92559,97.346281 611.00319,62.135921 C 555.08089,26.925563 404.91910,-13.462777 280.64726,19.676373 C 198.83496,38.317153 115.98706,135.66343 43.495157,164.66019 z "
+ id="path9557"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#080762;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 449.21875,12.343750 C 372.55367,131.34626 351.03163,190.15459 345.31250,234.71875 C 296.43407,228.74167 250.88253,220.20102 210.06250,211.18750 C 210.18144,159.47011 307.03125,15.562500 307.03125,15.562500 C 231.73758,132.43627 211.35292,167.53740 205.28125,210.12500 C 111.44954,189.10115 46.625000,165.87500 46.625000,165.87500 C 95.278072,186.13432 149.62093,202.52998 204.53125,215.34375 C 205.73417,244.61892 210.49875,254.89076 234.81250,324.93750 C 212.11540,236.98624 209.34258,255.80079 209.75000,216.50000 C 255.62272,227.00430 301.69759,235.02520 345.12500,240.43750 C 346.64554,269.96362 353.89092,311.29960 377.53125,379.40625 C 355.00622,292.12181 351.03030,281.31222 351.31250,241.25000 C 399.42652,247.01704 443.95673,249.65958 480.81250,249.21875 C 482.09933,277.29978 486.10250,295.38014 509.81250,363.68750 C 486.91509,274.96003 484.85720,289.97427 485.34375,249.09375 C 521.11851,248.40068 549.34122,244.76072 565.71875,238.12500 C 576.82659,233.17150 593.20091,230.91691 611.78125,230.34375 C 609.02322,239.26769 604.15131,267.42325 620.50000,307.75000 C 605.49195,257.72323 612.64130,247.27739 614.87500,230.31250 C 668.07068,229.21004 737.88540,241.30570 757.40625,245.12500 C 735.98732,234.66460 664.92792,227.25580 615.21875,228.21875 C 615.22870,228.11904 615.24045,228.03777 615.25000,227.93750 C 616.41525,215.70752 675.84375,123.06250 675.84375,123.06250 C 614.59722,216.66570 616.91444,216.32105 612.43750,228.21875 C 605.01927,228.41116 598.05690,228.77061 591.93750,229.37500 C 561.08150,232.42251 544.14471,244.86783 485.50000,246.00000 C 481.12067,196.29050 582.62500,47.906250 582.62500,47.906250 C 504.83281,168.65828 486.07119,201.47841 480.75000,246.09375 C 450.57954,246.34478 409.84371,243.69470 351.53125,235.56250 C 347.17084,177.77103 449.21875,12.343750 449.21875,12.343750 z "
+ id="path9558"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
+ </g>
+ <g
+ id="g1953"
+ transform="matrix(1.384075,0.161467,-0.304992,1.435028,-105.9261,-263.9710)">
+ <path
+ style="fill:url(#linearGradient1956);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 43.495157,164.66019 C 276.50486,388.34951 338.64079,376.95793 423.55988,385.24272 C 508.47898,393.52751 694.88669,258.89967 724.91909,252.68608 C 754.95149,246.47249 752.88029,251.65048 765.30749,256.82848 C 748.73789,210.22653 666.92559,97.346281 611.00319,62.135921 C 555.08089,26.925563 404.91910,-13.462777 280.64726,19.676373 C 198.83496,38.317153 115.98706,135.66343 43.495157,164.66019 z "
+ id="path1954"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#080762;fill-opacity:0.053475920;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 449.21875,12.343750 C 372.55367,131.34626 351.03163,190.15459 345.31250,234.71875 C 296.43407,228.74167 250.88253,220.20102 210.06250,211.18750 C 210.18144,159.47011 307.03125,15.562500 307.03125,15.562500 C 231.73758,132.43627 211.35292,167.53740 205.28125,210.12500 C 111.44954,189.10115 46.625000,165.87500 46.625000,165.87500 C 95.278072,186.13432 149.62093,202.52998 204.53125,215.34375 C 205.73417,244.61892 210.49875,254.89076 234.81250,324.93750 C 212.11540,236.98624 209.34258,255.80079 209.75000,216.50000 C 255.62272,227.00430 301.69759,235.02520 345.12500,240.43750 C 346.64554,269.96362 353.89092,311.29960 377.53125,379.40625 C 355.00622,292.12181 351.03030,281.31222 351.31250,241.25000 C 399.42652,247.01704 443.95673,249.65958 480.81250,249.21875 C 482.09933,277.29978 486.10250,295.38014 509.81250,363.68750 C 486.91509,274.96003 484.85720,289.97427 485.34375,249.09375 C 521.11851,248.40068 549.34122,244.76072 565.71875,238.12500 C 576.82659,233.17150 593.20091,230.91691 611.78125,230.34375 C 609.02322,239.26769 604.15131,267.42325 620.50000,307.75000 C 605.49195,257.72323 612.64130,247.27739 614.87500,230.31250 C 668.07068,229.21004 737.88540,241.30570 757.40625,245.12500 C 735.98732,234.66460 664.92792,227.25580 615.21875,228.21875 C 615.22870,228.11904 615.24045,228.03777 615.25000,227.93750 C 616.41525,215.70752 675.84375,123.06250 675.84375,123.06250 C 614.59722,216.66570 616.91444,216.32105 612.43750,228.21875 C 605.01927,228.41116 598.05690,228.77061 591.93750,229.37500 C 561.08150,232.42251 544.14471,244.86783 485.50000,246.00000 C 481.12067,196.29050 582.62500,47.906250 582.62500,47.906250 C 504.83281,168.65828 486.07119,201.47841 480.75000,246.09375 C 450.57954,246.34478 409.84371,243.69470 351.53125,235.56250 C 347.17084,177.77103 449.21875,12.343750 449.21875,12.343750 z "
+ id="path1955"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
+ </g>
+ <g
+ id="g2589"
+ transform="matrix(1.707376,0.139808,-0.376234,1.242534,219.8921,550.6217)">
+ <path
+ style="fill:url(#linearGradient2592);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 43.495157,164.66019 C 276.50486,388.34951 338.64079,376.95793 423.55988,385.24272 C 508.47898,393.52751 694.88669,258.89967 724.91909,252.68608 C 754.95149,246.47249 752.88029,251.65048 765.30749,256.82848 C 748.73789,210.22653 666.92559,97.346281 611.00319,62.135921 C 555.08089,26.925563 404.91910,-13.462777 280.64726,19.676373 C 198.83496,38.317153 115.98706,135.66343 43.495157,164.66019 z "
+ id="path2590"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#080762;fill-opacity:0.053475920;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 449.21875,12.343750 C 372.55367,131.34626 351.03163,190.15459 345.31250,234.71875 C 296.43407,228.74167 250.88253,220.20102 210.06250,211.18750 C 210.18144,159.47011 307.03125,15.562500 307.03125,15.562500 C 231.73758,132.43627 211.35292,167.53740 205.28125,210.12500 C 111.44954,189.10115 46.625000,165.87500 46.625000,165.87500 C 95.278072,186.13432 149.62093,202.52998 204.53125,215.34375 C 205.73417,244.61892 210.49875,254.89076 234.81250,324.93750 C 212.11540,236.98624 209.34258,255.80079 209.75000,216.50000 C 255.62272,227.00430 301.69759,235.02520 345.12500,240.43750 C 346.64554,269.96362 353.89092,311.29960 377.53125,379.40625 C 355.00622,292.12181 351.03030,281.31222 351.31250,241.25000 C 399.42652,247.01704 443.95673,249.65958 480.81250,249.21875 C 482.09933,277.29978 486.10250,295.38014 509.81250,363.68750 C 486.91509,274.96003 484.85720,289.97427 485.34375,249.09375 C 521.11851,248.40068 549.34122,244.76072 565.71875,238.12500 C 576.82659,233.17150 593.20091,230.91691 611.78125,230.34375 C 609.02322,239.26769 604.15131,267.42325 620.50000,307.75000 C 605.49195,257.72323 612.64130,247.27739 614.87500,230.31250 C 668.07068,229.21004 737.88540,241.30570 757.40625,245.12500 C 735.98732,234.66460 664.92792,227.25580 615.21875,228.21875 C 615.22870,228.11904 615.24045,228.03777 615.25000,227.93750 C 616.41525,215.70752 675.84375,123.06250 675.84375,123.06250 C 614.59722,216.66570 616.91444,216.32105 612.43750,228.21875 C 605.01927,228.41116 598.05690,228.77061 591.93750,229.37500 C 561.08150,232.42251 544.14471,244.86783 485.50000,246.00000 C 481.12067,196.29050 582.62500,47.906250 582.62500,47.906250 C 504.83281,168.65828 486.07119,201.47841 480.75000,246.09375 C 450.57954,246.34478 409.84371,243.69470 351.53125,235.56250 C 347.17084,177.77103 449.21875,12.343750 449.21875,12.343750 z "
+ id="path2591"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="Branch">
+ <path
+ style="fill:#6caed9;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M -10.355987,713.52750 C 268.22006,565.43690 466.01942,431.84467 603.75405,417.34628 C 733.23203,403.71702 911.06817,486.79900 1017.9935,514.69256 C 1208.5437,564.40130 1286.2136,507.44337 1286.2136,507.44337 L 1286.2136,541.61812 C 1286.2136,541.61812 1199.2233,577.86408 1106.0194,578.89968 C 1012.8155,579.93528 794.30421,486.73139 707.31392,488.80259 C 620.32362,490.87379 360.69725,629.64955 309.64401,660.71197 C 269.55650,685.10250 -15.533981,899.93527 -15.533981,899.93527 L -10.355987,713.52750 z "
+ id="MainBranch"
+ sodipodi:nodetypes="cssccccscc" />
+ <path
+ style="fill:#6cafd9;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 972.54425,392.72534 C 988.71695,445.48313 1153.5444,401.24832 1090.3101,562.13159 L 1021.0052,534.84027 C 1078.9987,512.05710 1095.4210,499.30642 1088.6859,472.56863 C 1077.7358,429.09776 979.53780,447.34492 962.77102,404.08200 L 972.54425,392.72534 z "
+ id="Flower2-3Stem"
+ sodipodi:nodetypes="cccscc" />
+ <path
+ style="fill:#6caed9;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 1149.9236,336.82506 C 1154.5681,377.97680 1241.0747,437.84689 1112.6604,542.44236 L 1066.9994,540.30374 C 1066.9994,540.30374 1155.4506,506.87686 1169.1226,433.08916 C 1176.2705,394.51228 1130.9803,362.12588 1133.7504,324.14329 L 1149.9236,336.82506 z "
+ id="Flower2-2Stem"
+ sodipodi:nodetypes="cccscc" />
+ <path
+ style="fill:#6cafd9;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 1031.8664,215.90582 C 1048.0391,268.66361 1169.3714,387.01780 1106.1371,547.90107 L 1036.8322,520.60975 C 1101.0393,518.53855 1133.7070,483.99653 1086.9077,353.74264 C 1048.3186,246.33980 1004.6852,259.13382 1003.4524,208.62171 L 1031.8664,215.90582 z "
+ id="Flower2-1Stem"
+ sodipodi:nodetypes="cccscc" />
+ <path
+ style="fill:url(#linearGradient4496);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 535.40453,600.64725 C 544.72492,518.83495 481.55340,540.58252 481.55340,540.58252 L 513.65696,520.90615 C 513.65696,520.90615 553.00970,517.79935 556.11650,547.83172 C 559.22330,577.86408 549.90291,591.32686 561.29450,592.36246 L 535.40453,600.64725 z "
+ id="Flower1-3Stem"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:url(#linearGradient2613);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M -20.194184,776.41276 C 258.38187,628.32216 502.09256,496.44749 571.13269,468.83995 C 636.16971,442.83316 928.38774,489.19085 1033.0097,530.97587 C 1083.7997,551.26093 1180.0647,559.97265 1283.6246,524.76229 L 1283.6246,542.36745 C 1283.6246,542.36745 1196.6343,578.61341 1103.4304,579.64901 C 1010.2265,580.68461 791.71521,487.48073 704.72492,489.55193 C 617.73462,491.62313 358.10825,630.39888 307.05501,661.46130 C 266.96750,685.85183 -18.122983,900.68460 -18.122983,900.68460 L -20.194184,776.41276 z "
+ id="path1980"
+ sodipodi:nodetypes="cssccccscc" />
+ <path
+ style="fill:url(#linearGradient3239);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M -8.8025931,708.06325 C 269.77345,559.97264 467.57282,426.38041 605.30745,411.88203 C 734.78543,398.25277 912.40411,482.18208 1019.5469,509.22830 C 1129.3711,536.95139 1088.4409,454.88378 1075.4994,447.53824 C 1070.7806,444.85986 1107.5122,466.94531 1095.7249,508.19631 C 1094.4398,510.53735 1106.0820,507.05651 1119.7859,470.54563 C 1121.1410,466.93525 1087.2648,579.10026 1165.1536,454.07742 C 1173.6069,440.50866 1111.6130,528.29066 1119.1060,529.59980 C 1149.0781,534.83637 1213.0428,533.82469 1286.2625,505.48965 L 1287.7670,518.54868 C 1287.7670,518.54868 1208.0259,550.65225 1114.8220,551.68785 C 1021.6181,552.72345 832.10357,463.66196 706.79613,453.30598 C 575.27508,420.16682 386.06941,591.04614 335.01617,622.10856 C 294.92866,646.49909 -24.336570,828.19270 -24.336570,828.19270 L -8.8025931,708.06325 z "
+ id="path2614"
+ sodipodi:nodetypes="cssscsssccccscc" />
+ <path
+ style="fill:url(#linearGradient3245);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M -18.122983,854.51236 C 251.13268,673.28261 537.69465,506.45517 622.91262,485.83924 C 755.18263,453.84049 918.03175,506.19014 1022.6537,547.97515 C 1073.4437,568.26021 1180.0647,562.47355 1283.6246,527.26319 L 1282.5890,538.65476 C 1282.5890,538.65476 1195.5987,574.90072 1102.3948,575.93632 C 1009.1909,576.97192 790.67961,483.76805 703.68932,485.83925 C 616.69902,487.91045 357.07265,626.68619 306.01941,657.74861 C 265.93190,682.13914 -19.158579,896.97196 -19.158579,896.97196 L -18.122983,854.51236 z "
+ id="path3244"
+ sodipodi:nodetypes="cssccccscc" />
+ <path
+ style="fill:url(#linearGradient4502);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 536.49655,602.47084 C 545.81694,520.65854 487.87480,545.30177 487.87480,545.30177 L 525.10497,533.08573 C 543.74574,542.40612 540.63893,529.97893 543.74573,560.01130 C 546.85253,590.04366 538.56775,595.22165 549.95934,596.25725 L 536.49655,602.47084 z "
+ id="path4501"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient6995);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path6370"
+ sodipodi:cx="543.74127"
+ sodipodi:cy="561.84027"
+ sodipodi:rx="4.9774647"
+ sodipodi:ry="18.600000"
+ d="M 548.71874 561.84027 A 4.9774647 18.600000 0 1 1 538.76381,561.84027 A 4.9774647 18.600000 0 1 1 548.71874 561.84027 z"
+ transform="matrix(1.000000,0.000000,0.000000,1.289738,5.987927,-162.2627)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient7628);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path6996"
+ sodipodi:cx="999.75043"
+ sodipodi:cy="410.09967"
+ sodipodi:rx="31.344069"
+ sodipodi:ry="2.7582781"
+ d="M 1031.0945 410.09967 A 31.344069 2.7582781 0 1 1 968.40636,410.09967 A 31.344069 2.7582781 0 1 1 1031.0945 410.09967 z"
+ transform="matrix(0.955049,0.296449,-0.296449,0.955049,196.6039,-258.3817)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient7630);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path7629"
+ sodipodi:cx="999.75043"
+ sodipodi:cy="410.09967"
+ sodipodi:rx="31.344069"
+ sodipodi:ry="2.7582781"
+ d="M 1031.0945 410.09967 A 31.344069 2.7582781 0 1 1 968.40636,410.09967 A 31.344069 2.7582781 0 1 1 1031.0945 410.09967 z"
+ transform="matrix(0.491225,0.196413,-0.152477,0.632771,634.1177,-14.67026)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient7632);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path7631"
+ sodipodi:cx="999.75043"
+ sodipodi:cy="410.09967"
+ sodipodi:rx="31.344069"
+ sodipodi:ry="2.7582781"
+ d="M 1031.0945 410.09967 A 31.344069 2.7582781 0 1 1 968.40636,410.09967 A 31.344069 2.7582781 0 1 1 1031.0945 410.09967 z"
+ transform="matrix(0.560824,0.992678,-1.087564,0.511894,935.2258,-944.2154)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient7634);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path7633"
+ sodipodi:cx="999.75043"
+ sodipodi:cy="410.09967"
+ sodipodi:rx="31.344069"
+ sodipodi:ry="2.7582781"
+ d="M 1031.0945 410.09967 A 31.344069 2.7582781 0 1 1 968.40636,410.09967 A 31.344069 2.7582781 0 1 1 1031.0945 410.09967 z"
+ transform="matrix(0.560824,0.992678,-1.087564,0.511894,958.5466,-903.3415)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient7636);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path7635"
+ sodipodi:cx="999.75043"
+ sodipodi:cy="410.09967"
+ sodipodi:rx="31.344069"
+ sodipodi:ry="2.7582781"
+ d="M 1031.0945 410.09967 A 31.344069 2.7582781 0 1 1 968.40636,410.09967 A 31.344069 2.7582781 0 1 1 1031.0945 410.09967 z"
+ transform="matrix(0.432680,1.054856,-1.142901,0.372301,1129.914,-868.1367)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient7638);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path7637"
+ sodipodi:cx="999.75043"
+ sodipodi:cy="410.09967"
+ sodipodi:rx="31.344069"
+ sodipodi:ry="2.7582781"
+ d="M 1031.0945 410.09967 A 31.344069 2.7582781 0 1 1 968.40636,410.09967 A 31.344069 2.7582781 0 1 1 1031.0945 410.09967 z"
+ transform="matrix(0.458086,1.044074,-1.133555,0.399856,1171.103,-831.5445)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient7640);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path7639"
+ sodipodi:cx="999.75043"
+ sodipodi:cy="410.09967"
+ sodipodi:rx="31.344069"
+ sodipodi:ry="2.7582781"
+ d="M 1031.0945 410.09967 A 31.344069 2.7582781 0 1 1 968.40636,410.09967 A 31.344069 2.7582781 0 1 1 1031.0945 410.09967 z"
+ transform="matrix(-0.414864,0.760461,-0.801062,-0.467697,1900.498,-97.93763)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient7642);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path7641"
+ sodipodi:cx="999.75043"
+ sodipodi:cy="410.09967"
+ sodipodi:rx="31.344069"
+ sodipodi:ry="2.7582781"
+ d="M 1031.0945 410.09967 A 31.344069 2.7582781 0 1 1 968.40636,410.09967 A 31.344069 2.7582781 0 1 1 1031.0945 410.09967 z"
+ transform="matrix(-0.791385,0.820758,-0.800937,-0.896287,2251.789,49.29901)" />
+ <path
+ style="fill:#45a1d9;fill-opacity:0.49197862;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 967.40045,403.38057 C 1006.6424,445.60675 1152.9831,436.86406 1076.1391,514.11073 L 1058.9908,518.41423 C 1081.6952,506.48041 1094.0557,500.30305 1088.0556,473.19376 C 1078.3681,429.42423 978.90755,447.97005 962.14077,404.70713 L 967.40045,403.38057 z "
+ id="path7643"
+ sodipodi:nodetypes="cccscc" />
+ <path
+ style="fill:url(#linearGradient7648);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 1012.6486,211.88647 C 1043.8664,237.56299 1184.2559,484.80399 1074.3816,529.33808 L 1035.1671,530.63255 C 1099.3742,528.56135 1134.5494,483.48772 1087.7501,353.23383 C 1049.1610,245.83099 1005.5276,258.62501 1004.2948,208.11290 L 1012.6486,211.88647 z "
+ id="path7644"
+ sodipodi:nodetypes="cccscc" />
+ <path
+ style="fill:url(#linearGradient16309);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 1114.8458,502.62735 C 1107.8247,517.17099 1094.7857,530.71164 1083.7525,536.22819 C 1111.8368,532.71765 1128.3864,507.64240 1129.3894,504.63337 C 1120.3623,512.15594 1112.3383,514.66347 1114.8458,502.62735 z "
+ id="path7649"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#radialGradient16314);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 1181.0445,440.44071 C 1174.5249,486.57918 1124.3744,529.70862 1124.3744,529.70862 C 1124.3744,529.70862 1118.8579,531.21313 1128.8880,519.67852 C 1138.9181,508.14390 1153.4617,506.63938 1181.0445,440.44071 z "
+ id="path7650"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#radialGradient8740);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 752.86699,478.58128 C 775.70673,479.67673 871.09360,512.63054 904.19704,506.00985 C 937.30049,499.38916 949.59606,506.95566 911.76355,478.58128 C 873.93104,450.20689 832.31527,457.77340 783.13300,440.74877 C 733.95074,423.72414 680.98522,450.20690 628.01970,458.71921 C 575.05419,467.23153 562.75862,521.14286 588.29557,507.90148 C 613.83251,494.66010 633.56963,486.94063 665.85222,479.52709 C 678.88870,476.53332 715.82257,476.80454 752.86699,478.58128 z "
+ id="path8108"
+ sodipodi:nodetypes="ccccccss" />
+ <path
+ style="fill:url(#radialGradient9366);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 651.66503,472.90641 C 672.47291,464.39409 766.10838,470.06897 778.40394,445.47784 C 790.69951,420.88670 713.14286,424.66995 650.71921,431.29064 C 588.29557,437.91133 568.43350,471.01478 531.54680,487.09360 C 494.66010,503.17241 418.04926,540.05911 443.58621,559.92118 C 469.12315,579.78325 630.85714,481.41872 651.66503,472.90641 z "
+ id="path8741"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:url(#radialGradient11231);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 399.10314,570.77430 C 419.20996,572.13485 511.65487,534.61003 544.75831,512.30197 C 577.86176,489.99390 563.67457,507.12100 525.84206,496.67505 C 488.00955,486.22909 472.87654,498.12953 423.69427,504.41186 C 374.51201,510.69418 321.54649,562.27674 268.58097,595.88885 C 215.61546,629.50097 203.31989,689.23904 228.85684,663.89597 C 254.39378,638.55290 259.94370,668.76718 292.22629,646.05526 C 305.26277,636.88364 369.62522,568.77965 399.10314,570.77430 z "
+ id="path11230"
+ sodipodi:nodetypes="ccccccss" />
+ <path
+ style="fill:url(#radialGradient11233);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 323.43811,609.63467 C 290.07969,591.06105 243.98984,625.27634 194.80757,631.55867 C 145.62531,637.84099 45.369152,689.42355 -7.5963711,723.03566 C -60.561881,756.64778 -68.128387,832.46467 -42.591437,807.12160 C -17.054497,781.77853 10.249118,853.60857 42.531711,830.89665 C 55.568191,821.72503 358.17821,628.97759 323.43811,609.63467 z "
+ id="path11232"
+ sodipodi:nodetypes="ccccss" />
+ <path
+ style="fill:url(#radialGradient11235);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 922.58815,526.20817 C 1026.7677,569.86520 1215.1277,574.40743 1209.1693,562.14906 C 1188.6040,519.83949 1099.4551,554.58256 926.37138,506.34610 C 876.23638,492.37405 822.06583,469.45940 770.31227,449.59733 C 723.51240,431.63640 706.52555,451.56844 723.02164,475.13428 C 736.26301,494.05054 788.33604,487.05233 817.60292,502.56285 C 831.58521,509.97302 888.38309,511.87435 922.58815,526.20817 z "
+ id="path11234"
+ sodipodi:nodetypes="cssssss" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient11861);fill-opacity:1.0000000;stroke:none;stroke-width:1.7500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path11236"
+ sodipodi:cx="916.49261"
+ sodipodi:cy="499.86206"
+ sodipodi:rx="39.724136"
+ sodipodi:ry="19.389162"
+ d="M 956.21675 499.86206 A 39.724136 19.389162 0 1 1 876.76848,499.86206 A 39.724136 19.389162 0 1 1 956.21675 499.86206 z"
+ transform="matrix(2.761905,0.514238,0.000000,1.799832,-1559.916,-842.7268)" />
+ <path
+ style="fill:url(#radialGradient16326);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 1118.1741,480.19244 C 1116.9031,486.86526 1117.5385,498.93989 1112.7722,505.61271 C 1108.0059,512.28553 1096.5668,528.80870 1086.0809,532.30399 C 1075.5951,535.79928 1061.9317,534.84602 1067.3335,531.03298 C 1072.7353,527.21994 1087.6697,522.77141 1094.9781,517.05183 C 1101.7158,511.77885 1109.2770,492.26705 1111.1835,486.54751 C 1114.1096,477.76920 1119.4451,473.51962 1118.1741,480.19244 z "
+ id="path16318"
+ sodipodi:nodetypes="ccccssc" />
+ <path
+ style="fill:url(#linearGradient16331);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 1110.2302,440.47328 C 1110.2302,470.02434 1101.3331,499.57540 1096.5668,506.56597 C 1117.5386,495.76235 1113.0900,497.66887 1114.0432,508.15473 C 1118.4918,501.79967 1121.3516,491.94932 1121.6694,482.73447 C 1123.8936,472.56636 1121.9871,454.13667 1120.3983,450.64138 C 1118.8095,447.14609 1113.4077,435.07147 1110.2302,440.47328 z "
+ id="path16327"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:url(#linearGradient16336);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 1068.8927,449.89667 C 1108.2941,482.62526 1081.6028,507.09227 1063.8086,515.98936 C 1092.4065,519.16688 1096.8550,479.76547 1100.0324,499.14842 C 1103.2100,488.02706 1102.5745,483.26077 1099.7148,474.04592 C 1092.0887,455.61622 1079.6963,449.89666 1078.1075,446.40137 C 1076.5187,442.90608 1072.0702,444.49486 1068.8927,449.89667 z "
+ id="path16335"
+ sodipodi:nodetypes="cccccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Flower1">
+ <g
+ id="Flower1-3Inner"
+ transform="matrix(-0.328665,1.215295,-1.019160,-0.492154,1176.196,381.5868)">
+ <path
+ style="fill:url(#linearGradient22753);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 372.48492,498.90673 C 414.14732,411.61407 356.13246,406.42348 386.55263,384.60031 C 416.97280,362.77715 431.37033,356.03636 447.24172,370.58514 C 463.11311,385.13391 484.73879,403.17864 484.73879,410.45303 C 484.73879,417.72741 376.68472,495.04283 372.48492,498.90673 z "
+ id="path18790"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#linearGradient22754);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 373.29953,498.91998 C 422.89763,399.72377 391.31920,406.68287 433.64292,413.95726 C 475.96663,421.23164 490.31841,408.26740 493.62495,438.02626 C 496.93149,467.78512 517.45929,484.83995 481.74866,494.09826 C 446.03802,503.35658 377.94616,497.96705 373.29953,498.91998 z "
+ id="path18791"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#linearGradient22755);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 372.31642,498.40699 C 428.52760,380.03286 430.30761,368.00419 393.27436,363.37504 C 356.24111,358.74588 330.64235,389.11395 340.56197,423.50196 C 350.48159,457.88998 355.78372,438.88927 361.73549,460.05113 C 367.68727,481.21299 369.74255,491.59934 372.31642,498.40699 z "
+ id="path18792"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#radialGradient22756);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 375.62296,499.06830 C 502.59410,475.26121 536.65615,491.32284 494.99374,518.43647 C 453.33133,545.55010 453.65731,567.84434 430.51153,548.00510 C 407.36575,528.16586 406.04313,514.27839 394.80089,506.34269 C 383.55866,498.40699 375.62296,499.06830 375.62296,499.06830 z "
+ id="path18793"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#radialGradient22757);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 378.92950,499.72961 C 423.89845,534.11763 447.04423,547.34379 443.73769,522.21408 C 440.43115,497.08438 442.41507,450.13151 411.33360,471.29337 C 380.25212,492.45522 378.92950,499.72961 378.92950,499.72961 z "
+ id="path18794" />
+ </g>
+ <path
+ style="fill:url(#linearGradient21629);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 602.07725,593.83555 C 595.55770,597.74694 582.39489,594.48477 556.15280,589.17838 C 555.27950,581.79199 556.30239,569.82763 556.50995,560.36116 C 552.65598,552.01160 540.46145,548.74405 537.25583,552.47910 C 534.05023,556.21414 534.93501,563.48533 535.84318,573.78688 C 536.75135,584.08841 536.09819,597.05546 535.36420,600.17016 C 529.68781,606.27733 519.95225,614.55252 513.34856,619.81909 C 492.32731,642.19307 504.87551,642.59078 518.75757,652.48559 C 532.63962,662.38040 655.58777,622.57080 602.07725,593.83555 z "
+ id="path21628"
+ sodipodi:nodetypes="ccccccccc" />
+ <g
+ id="Flower1-1Inner">
+ <path
+ style="fill:url(#linearGradient16178);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 363.71942,503.69746 C 405.38182,416.40480 363.71942,390.61379 394.13959,368.79062 C 424.55976,346.96746 444.39900,338.37045 460.27039,352.91923 C 476.14178,367.46800 484.73879,403.17864 484.73879,410.45303 C 484.73879,417.72741 363.71942,503.69746 363.71942,503.69746 z "
+ id="path11816" />
+ <path
+ style="fill:url(#linearGradient16173);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 367.02596,501.05223 C 416.62406,401.85602 441.75376,386.64594 484.07748,393.92033 C 526.40119,401.19471 537.64343,389.29117 540.94997,419.05003 C 544.25651,448.80889 543.59520,482.53560 507.88457,491.79391 C 472.17393,501.05223 367.02596,501.05223 367.02596,501.05223 z "
+ id="path11817" />
+ <path
+ style="fill:url(#linearGradient16182);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 372.31642,498.40699 C 428.52760,380.03286 430.51153,350.93530 393.47828,346.30615 C 356.44503,341.67699 324.04094,380.03286 333.96056,414.42087 C 343.88018,448.80889 355.78372,438.88927 361.73549,460.05113 C 367.68727,481.21299 372.31642,498.40699 372.31642,498.40699 z "
+ id="path11818" />
+ <path
+ style="fill:url(#radialGradient16191);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 375.62296,499.06830 C 502.59410,475.26121 558.80529,495.10045 517.14288,522.21408 C 475.48047,549.32771 453.65731,567.84434 430.51153,548.00510 C 407.36575,528.16586 406.04313,514.27839 394.80089,506.34269 C 383.55866,498.40699 375.62296,499.06830 375.62296,499.06830 z "
+ id="path11819" />
+ <path
+ style="fill:url(#radialGradient16186);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 378.92950,499.72961 C 423.89845,534.11763 447.04423,547.34379 443.73769,522.21408 C 440.43115,497.08438 442.41507,450.13151 411.33360,471.29337 C 380.25212,492.45522 378.92950,499.72961 378.92950,499.72961 z "
+ id="path11821" />
+ <path
+ style="fill:#29e569;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 355.12241,442.19581 C 388.84912,436.24404 421.25322,467.32552 411.33360,481.87429 C 401.41397,496.42307 377.60689,524.19801 372.31642,502.37484 C 367.02596,480.55168 355.12241,442.19581 355.12241,442.19581 z "
+ id="path11820" />
+ </g>
+ <g
+ id="Flower1-1Petals">
+ <path
+ style="fill:#5047dd;fill-opacity:0.84491980;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z "
+ id="Flower1Bottom" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="0.0000000"
+ inkscape:original="M 370.56250 305.90625 C 355.90456 305.38356 341.55481 308.54187 333.40625 315.62500 C 327.97388 320.34708 347.33067 340.30951 329.62500 358.15625 C 312.69793 375.21818 287.66656 347.56368 283.21875 354.84375 C 273.25755 371.14806 265.37524 399.59673 267.90625 419.25000 C 269.17176 429.07664 308.54541 414.73263 315.68750 440.15625 C 323.48351 467.90766 284.89523 475.15541 290.03125 485.43750 C 300.30331 506.00168 311.03251 519.94295 326.87500 536.84375 C 334.79624 545.29416 351.90911 508.22838 377.75000 529.43750 C 401.05114 548.56211 370.17897 574.05542 379.65625 579.75000 C 398.61081 591.13920 418.51671 599.28318 438.12500 603.31250 C 447.92915 605.32715 439.41058 564.23371 467.18750 561.43750 C 489.51695 559.18965 496.47318 597.74565 505.37500 595.15625 C 523.21009 589.96826 540.88473 571.83246 552.37500 559.75000 C 558.12014 553.70878 523.50061 541.31380 533.00000 519.28125 C 543.82177 494.18176 562.07926 511.83883 564.31250 503.56250 C 567.67279 491.10942 567.09229 482.38503 565.46875 464.25000 C 564.65698 455.18248 540.01389 464.92575 532.25000 442.96875 C 522.65141 415.82302 549.39077 413.22085 545.21875 404.56250 C 538.82970 391.27821 534.77490 386.96586 519.84375 371.59375 C 512.37815 363.90770 500.37158 387.44121 480.50000 372.06250 C 459.85357 356.08416 479.40003 342.40562 470.31250 336.03125 C 459.54164 328.47614 449.37353 322.48497 439.65625 321.37500 C 429.76884 320.24559 433.66906 341.25860 409.21875 337.34375 C 385.30054 333.51408 394.77072 309.66850 385.12500 307.65625 C 380.38656 306.66773 375.44848 306.08048 370.56250 305.90625 z M 404.37500 362.59375 C 442.37861 362.88532 485.68016 390.09716 503.87500 422.56250 C 524.74616 459.80323 517.44770 509.29724 480.65625 524.43750 C 443.92960 539.55112 390.71795 510.29037 365.28125 466.06250 C 339.84455 421.83464 347.42926 373.16413 388.50000 364.18750 C 393.62397 363.06758 398.94591 362.55210 404.37500 362.59375 z "
+ xlink:href="#path4825"
+ style="fill:#564ce2;fill-opacity:0.72192514;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path7333"
+ inkscape:href="#path4825"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z " />
+ <path
+ style="fill:url(#radialGradient11086);fill-opacity:1.0000000;stroke:#000000;stroke-width:1.7138077;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 380.12958,297.43595 C 365.86249,296.90326 351.89541,300.12208 343.96414,307.34090 C 338.67664,312.15342 357.51725,332.49828 340.28372,350.68690 C 323.80802,368.07567 299.44415,339.89140 295.11493,347.31096 C 285.41937,363.92759 277.74725,392.92123 280.21077,412.95101 C 281.44254,422.96589 319.76626,408.34710 326.71788,434.25775 C 334.30601,462.54078 296.74672,469.92735 301.74578,480.40644 C 311.74392,501.36456 322.18703,515.57289 337.60706,532.79745 C 345.31706,541.40974 361.97361,503.63391 387.12541,525.24932 C 409.80520,544.74031 379.75628,570.72197 388.98084,576.52564 C 407.42996,588.13303 426.80503,596.43301 445.89044,600.53952 C 455.43316,602.59276 447.14175,560.71211 474.17796,557.86234 C 495.91199,555.57142 502.68271,594.86602 511.34716,592.22703 C 528.70666,586.93964 545.90998,568.45644 557.09385,556.14252 C 562.68579,549.98555 528.98942,537.35313 538.23552,514.89853 C 548.76870,489.31821 566.53935,507.31354 568.71302,498.87865 C 571.98372,486.18700 571.41869,477.29549 569.83844,458.81305 C 569.04832,449.57183 545.06237,459.50174 537.50550,437.12411 C 528.16288,409.45836 554.18920,406.80636 550.12843,397.98214 C 543.90974,384.44336 539.96307,380.04841 525.43007,364.38181 C 518.16357,356.54852 506.47716,380.53287 487.13549,364.85955 C 467.03960,348.57510 486.06484,334.63454 477.21964,328.13807 C 466.73600,320.43822 456.83902,314.33228 447.38086,313.20105 C 437.75712,312.05000 441.55333,333.46555 417.75501,329.47570 C 394.47461,325.57267 403.69226,301.27029 394.30375,299.21948 C 389.69169,298.21202 384.88527,297.61353 380.12958,297.43595 z M 413.04042,355.20943 C 450.03063,355.50656 492.17750,383.23969 509.88715,416.32696 C 530.20177,454.28108 523.09793,504.72324 487.28757,520.15355 C 451.54027,535.55668 399.74756,505.73540 374.98916,460.66029 C 350.23075,415.58516 357.61321,365.98228 397.58875,356.83369 C 402.57609,355.69231 407.75611,355.16696 413.04042,355.20943 z "
+ id="Flower1Top" />
+ <path
+ style="fill:#638ae3;fill-opacity:0.53475934;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 378.47470,577.81411 C 378.41896,575.30523 385.62077,574.05338 386.68118,574.84545 C 392.70466,579.95068 411.33467,593.50542 447.38730,601.10327 C 443.61727,602.55639 444.73008,602.27386 440.53021,603.54017 C 435.26683,603.21121 387.98723,587.44481 378.47470,577.81411 z "
+ id="path11135"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#5492d5;fill-opacity:0.33155081;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 448.70315,329.05232 C 414.82014,343.52661 440.80808,340.23700 445.08458,347.80311 C 449.36107,355.36922 485.87577,370.17247 493.44188,381.68612 C 501.00799,393.19976 515.81124,405.70029 519.75878,420.50355 C 523.70631,435.30680 522.71943,465.90020 531.60138,459.97890 C 540.48334,454.05759 519.10086,423.13524 523.04839,401.75275 C 526.99593,380.37027 513.50852,380.04131 495.41565,372.47520 C 477.32278,364.90909 451.99276,352.73753 453.30861,343.52661 C 454.62445,334.31570 448.70315,329.05232 448.70315,329.05232 z "
+ id="path11115" />
+ <path
+ style="fill:url(#radialGradient11114);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 539.43027,532.41062 C 539.43027,539.40171 544.55840,574.25612 534.48034,574.25612 C 524.40229,574.25612 475.43149,576.39300 475.43149,569.40191 C 475.43149,562.41083 493.88434,522.82888 503.96239,522.82888 C 514.04045,522.82888 539.43027,525.41954 539.43027,532.41062 z "
+ id="path11088"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.624661,0.780896,-0.780896,0.624661,623.2822,-194.2138)" />
+ <path
+ style="fill:url(#radialGradient11102);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 466.62375,572.09687 C 466.62375,583.75974 447.16650,585.70506 438.72273,585.70506 C 430.27895,585.70506 413.31825,581.76117 413.31825,570.09830 C 389.07901,512.80764 422.08743,519.04264 443.58671,522.23015 C 466.15531,533.76777 473.08623,541.59775 466.62375,572.09687 z "
+ id="path11087"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.943927,0.330155,-0.357257,1.021414,211.1143,-156.7594)" />
+ <path
+ style="fill:#85c8ef;fill-opacity:0.14973260;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 317.44761,367.86974 C 306.92085,392.21288 316.46073,375.43585 330.93502,419.84562 C 345.40932,464.25539 329.61918,472.47942 364.81803,490.57229 C 400.01688,508.66516 393.76662,527.74491 425.01794,529.38972 C 456.26926,531.03453 452.32172,552.41701 489.16538,535.63998 C 526.00904,518.86296 555.28660,489.58540 552.98387,468.53188 C 551.01010,445.17564 536.20685,486.95372 518.44293,505.37555 C 491.79707,525.44218 455.94030,534.65310 426.33378,523.13946 C 396.72727,511.62581 379.62129,494.51983 369.75245,468.20293 C 359.88361,441.88603 345.40932,410.96367 352.97542,395.17353 C 360.54153,379.38339 362.51530,363.59325 384.88467,350.76376 C 407.25403,337.93427 404.62234,323.78894 385.21362,317.86763 C 365.80491,311.94633 372.05518,319.18348 355.93608,344.51350 C 339.81697,369.84351 325.34268,350.76375 317.44761,367.86974 z "
+ id="path10461"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ style="fill:#2d84e6;fill-opacity:0.54901963;fill-rule:evenodd;stroke:#000000;stroke-width:2.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 331.84343,317.12090 C 338.32897,332.25383 340.76105,348.73791 330.76251,355.22345 C 355.62374,348.46767 345.62521,323.87668 342.11221,308.47352 C 331.84343,311.44606 331.84343,318.47205 331.84343,317.12090 z "
+ id="path9836"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:#5d9ee5;fill-opacity:0.52406418;fill-rule:evenodd;stroke:#000000;stroke-width:2.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none;"
+ d="M 283.74235,353.60207 C 288.60651,349.54860 289.08108,347.82170 296.10708,346.74078 C 289.08108,355.65839 275.09497,401.43291 281.04004,416.29561 C 294.82181,422.78115 314.81889,411.16122 326.43882,432.77969 C 330.49228,463.58600 308.60359,464.93716 301.30736,477.36777 C 302.92874,491.14954 322.11512,518.71309 339.40990,534.92693 C 331.84343,540.87202 331.03274,536.27809 328.60066,537.35902 C 316.44028,525.73909 295.09205,498.71601 290.22789,482.77239 C 296.17296,468.72039 317.25097,469.53108 317.25097,443.04846 C 311.84635,416.56584 287.25535,425.75368 269.96058,421.97046 C 262.93457,407.37799 276.44612,368.19453 283.74235,353.60207 z "
+ id="Flower1Side1"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 561.48153,506.06814 C 566.60051,504.01792 566.31252,502.40826 568.14677,499.86067"
+ id="path14425"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none;"
+ d="M 433.39029,324.56271 C 438.81244,317.35852 437.00858,319.38696 444.90632,313.20127"
+ id="path14424"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 269.82763,421.63403 C 275.24978,421.09968 278.90306,418.27733 280.73731,415.72974"
+ id="path14426"
+ sodipodi:nodetypes="cc" />
+ <g
+ id="Flower1-1Pestils">
+ <path
+ style="fill:#78bb0b;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path16204"
+ d="M 395.87615,451.17702 C 402.94657,440.96346 403.10204,439.16578 407.83307,427.71470 C 413.62102,413.31065 418.11041,398.39296 421.31969,383.20749 C 422.27088,377.95644 423.54733,372.67183 423.48198,367.30475 C 423.47465,365.48261 424.20625,363.76225 424.60471,362.00104 C 424.72564,361.44833 424.80699,360.88841 424.90812,360.33209 L 433.49172,356.12720 C 433.40895,356.68512 433.33460,357.24429 433.24341,357.80095 C 432.95248,359.51019 432.42794,361.15542 432.16854,362.85892 C 432.07120,368.42576 430.40858,373.86257 429.41556,379.30073 C 425.94270,394.51893 421.51224,409.53306 415.76414,424.05417 C 411.16334,435.41613 407.55944,444.77969 400.84871,455.06865 C 399.48236,454.76498 395.67745,451.25404 395.87615,451.17702 z "
+ sodipodi:nodetypes="ccccccccccccc" />
+ <path
+ style="fill:#6a961f;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path16207"
+ d="M 413.05377,473.85434 C 424.05948,476.53937 430.17384,477.80057 441.18665,480.45644 C 452.67249,483.36392 464.43167,485.01220 476.28740,484.64621 C 486.90765,484.28304 497.02967,480.87902 506.58227,476.43214 C 508.12492,475.70792 509.63402,474.91663 511.14030,474.12062 L 503.85239,479.96854 C 502.36791,480.72539 500.88081,481.47770 499.36291,482.16624 C 489.74758,486.48999 479.59335,489.77005 468.96091,489.99771 C 457.07136,490.23505 445.29421,488.50954 433.78405,485.57076 C 422.71192,482.88327 422.96458,483.66872 411.84052,481.19840 C 413.12114,478.06319 413.18395,476.48007 413.05377,473.85434 z "
+ sodipodi:nodetypes="ccccccccccc" />
+ <path
+ style="fill:#789744;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path16205"
+ d="M 405.62917,459.17185 C 412.33225,454.41079 416.23635,451.48178 421.91223,445.57544 C 436.19796,430.44730 450.17285,415.02890 464.43804,399.88160 C 471.45366,391.96609 479.55942,385.05837 486.50024,377.08010 C 487.67395,375.82822 488.12803,374.85508 487.87723,373.26505 L 496.35996,368.52763 C 496.97328,370.45533 496.70314,371.78079 495.28480,373.35699 C 488.10977,381.56676 479.54058,388.47571 472.27621,396.61091 C 457.95901,411.58196 444.06746,426.95177 430.03261,442.18589 C 424.59302,448.01854 419.14837,453.96812 412.68316,458.69214 C 410.42654,460.33054 410.16941,461.03900 407.88268,462.57553 C 407.15463,460.99807 406.30728,460.73847 405.62917,459.17185 z "
+ sodipodi:nodetypes="cccccccccccc" />
+ </g>
+ <g
+ id="Flower1-2Inner">
+ <path
+ style="fill:url(#linearGradient22654);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 209.97044,727.33005 C 249.69458,536.27586 230.77833,522.08867 275.23153,536.27586 C 319.68473,550.46305 371.70443,592.07882 357.51724,628.96552 C 343.33005,665.85222 296.98522,654.50246 259.15271,679.09360 C 221.32020,703.68473 209.97044,727.33005 209.97044,727.33005 z "
+ id="path18882" />
+ <path
+ style="fill:url(#linearGradient19520);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.93750000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 206.18719,726.38424 C 251.58621,643.15271 307.38916,593.97044 341.43842,610.04926 C 375.48768,626.12808 432.23645,641.26108 430.34483,671.52709 C 428.45320,701.79310 409.53695,762.32512 366.97537,758.54187 C 324.41379,754.75862 206.18719,726.38424 206.18719,726.38424 z "
+ id="path18883" />
+ <path
+ style="fill:url(#radialGradient22029);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 219.42857,727.33005 C 253.47783,561.81281 293.20197,533.43842 240.23645,536.27586 C 187.27094,539.11330 114.44335,556.13793 129.57635,587.34975 C 144.70936,618.56158 220.37438,722.60099 220.37438,722.60099"
+ id="path18885" />
+ <path
+ style="fill:url(#linearGradient21403);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 222.26601,725.43842 C 193.89163,638.42365 151.33005,593.97044 120.11823,588.29557 C 88.906404,582.62069 48.236453,654.50246 69.044335,672.47291 C 89.852217,690.44335 97.418719,742.46305 111.60591,733.00493 C 125.79310,723.54680 213.75369,720.70936 213.75369,720.70936"
+ id="path18886" />
+ <path
+ style="fill:url(#linearGradient20778);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.93750000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 219.42857,717.87192 C 124.84729,697.06404 63.369458,713.14286 74.719212,749.08374 C 86.068966,785.02463 104.98522,832.31527 145.65517,821.91133 C 186.32512,811.50739 219.42857,717.87192 219.42857,717.87192 z "
+ id="path18887" />
+ <path
+ style="fill:url(#linearGradient20153);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.93750000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 233.61576,704.63054 C 101.20197,814.34483 107.82266,806.77833 135.25123,841.77340 C 162.67980,876.76847 174.02956,879.60591 219.42857,879.60591 C 264.82759,879.60591 296.03941,907.03448 280.90640,831.36946 C 265.77340,755.70443 233.61576,704.63054 233.61576,704.63054 z "
+ id="path18888" />
+ <path
+ style="fill:url(#linearGradient19524);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.93750000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 223.21182,718.81773 C 369.81281,718.81773 434.12808,735.84236 403.86207,781.24138 C 373.59606,826.64039 393.45813,877.71429 358.46305,880.55172 C 323.46798,883.38916 247.80296,850.28571 239.29064,825.69458 C 230.77833,801.10345 223.21182,718.81773 223.21182,718.81773 z "
+ id="path18884" />
+ </g>
+ <g
+ id="Flower1-3Petals"
+ transform="matrix(-0.282158,0.541211,-0.750396,-7.402685e-2,1045.228,511.3649)">
+ <path
+ style="fill:#5047dd;fill-opacity:0.84491980;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z "
+ id="path18819" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="0.0000000"
+ inkscape:original="M 370.56250 305.90625 C 355.90456 305.38356 341.55481 308.54187 333.40625 315.62500 C 327.97388 320.34708 347.33067 340.30951 329.62500 358.15625 C 312.69793 375.21818 287.66656 347.56368 283.21875 354.84375 C 273.25755 371.14806 265.37524 399.59673 267.90625 419.25000 C 269.17176 429.07664 308.54541 414.73263 315.68750 440.15625 C 323.48351 467.90766 284.89523 475.15541 290.03125 485.43750 C 300.30331 506.00168 311.03251 519.94295 326.87500 536.84375 C 334.79624 545.29416 351.90911 508.22838 377.75000 529.43750 C 401.05114 548.56211 370.17897 574.05542 379.65625 579.75000 C 398.61081 591.13920 418.51671 599.28318 438.12500 603.31250 C 447.92915 605.32715 439.41058 564.23371 467.18750 561.43750 C 489.51695 559.18965 496.47318 597.74565 505.37500 595.15625 C 523.21009 589.96826 540.88473 571.83246 552.37500 559.75000 C 558.12014 553.70878 523.50061 541.31380 533.00000 519.28125 C 543.82177 494.18176 562.07926 511.83883 564.31250 503.56250 C 567.67279 491.10942 567.09229 482.38503 565.46875 464.25000 C 564.65698 455.18248 540.01389 464.92575 532.25000 442.96875 C 522.65141 415.82302 549.39077 413.22085 545.21875 404.56250 C 538.82970 391.27821 534.77490 386.96586 519.84375 371.59375 C 512.37815 363.90770 500.37158 387.44121 480.50000 372.06250 C 459.85357 356.08416 479.40003 342.40562 470.31250 336.03125 C 459.54164 328.47614 449.37353 322.48497 439.65625 321.37500 C 429.76884 320.24559 433.66906 341.25860 409.21875 337.34375 C 385.30054 333.51408 394.77072 309.66850 385.12500 307.65625 C 380.38656 306.66773 375.44848 306.08048 370.56250 305.90625 z M 404.37500 362.59375 C 442.37861 362.88532 485.68016 390.09716 503.87500 422.56250 C 524.74616 459.80323 517.44770 509.29724 480.65625 524.43750 C 443.92960 539.55112 390.71795 510.29037 365.28125 466.06250 C 339.84455 421.83464 347.42926 373.16413 388.50000 364.18750 C 393.62397 363.06758 398.94591 362.55210 404.37500 362.59375 z "
+ xlink:href="#path4825"
+ style="fill:#564ce2;fill-opacity:0.72192514;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path18820"
+ inkscape:href="#path4825"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z " />
+ <path
+ style="fill:url(#radialGradient18829);fill-opacity:1.0000000;stroke:#000000;stroke-width:1.7138077;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 380.12958,297.43595 C 365.86249,296.90326 351.89541,300.12208 343.96414,307.34090 C 338.67664,312.15342 357.51725,332.49828 340.28372,350.68690 C 323.80802,368.07567 299.44415,339.89140 295.11493,347.31096 C 285.41937,363.92759 277.74725,392.92123 280.21077,412.95101 C 281.44254,422.96589 319.76626,408.34710 326.71788,434.25775 C 334.30601,462.54078 296.74672,469.92735 301.74578,480.40644 C 311.74392,501.36456 322.18703,515.57289 337.60706,532.79745 C 345.31706,541.40974 361.97361,503.63391 387.12541,525.24932 C 409.80520,544.74031 379.75628,570.72197 388.98084,576.52564 C 407.42996,588.13303 426.80503,596.43301 445.89044,600.53952 C 455.43316,602.59276 447.14175,560.71211 474.17796,557.86234 C 495.91199,555.57142 502.68271,594.86602 511.34716,592.22703 C 528.70666,586.93964 545.90998,568.45644 557.09385,556.14252 C 562.68579,549.98555 528.98942,537.35313 538.23552,514.89853 C 548.76870,489.31821 566.53935,507.31354 568.71302,498.87865 C 571.98372,486.18700 571.41869,477.29549 569.83844,458.81305 C 569.04832,449.57183 545.06237,459.50174 537.50550,437.12411 C 528.16288,409.45836 554.18920,406.80636 550.12843,397.98214 C 543.90974,384.44336 539.96307,380.04841 525.43007,364.38181 C 518.16357,356.54852 506.47716,380.53287 487.13549,364.85955 C 467.03960,348.57510 486.06484,334.63454 477.21964,328.13807 C 466.73600,320.43822 456.83902,314.33228 447.38086,313.20105 C 437.75712,312.05000 441.55333,333.46555 417.75501,329.47570 C 394.47461,325.57267 403.69226,301.27029 394.30375,299.21948 C 389.69169,298.21202 384.88527,297.61353 380.12958,297.43595 z M 413.04042,355.20943 C 450.03063,355.50656 492.17750,383.23969 509.88715,416.32696 C 530.20177,454.28108 523.09793,504.72324 487.28757,520.15355 C 451.54027,535.55668 399.74756,505.73540 374.98916,460.66029 C 350.23075,415.58516 357.61321,365.98228 397.58875,356.83369 C 402.57609,355.69231 407.75611,355.16696 413.04042,355.20943 z "
+ id="path18821" />
+ <path
+ style="fill:#638ae3;fill-opacity:0.53475934;fill-rule:evenodd;stroke:#000000;stroke-width:1.4538000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 378.47470,577.81411 C 378.41896,575.30523 385.62077,574.05338 386.68118,574.84545 C 392.70466,579.95068 411.33467,593.50542 447.38730,601.10327 C 443.61727,602.55639 444.73008,602.27386 440.53021,603.54017 C 435.26683,603.21121 387.98723,587.44481 378.47470,577.81411 z "
+ id="path18822"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#5492d5;fill-opacity:0.33155081;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 448.70315,329.05232 C 414.82014,343.52661 440.80808,340.23700 445.08458,347.80311 C 449.36107,355.36922 485.87577,370.17247 493.44188,381.68612 C 501.00799,393.19976 515.81124,405.70029 519.75878,420.50355 C 523.70631,435.30680 522.71943,465.90020 531.60138,459.97890 C 540.48334,454.05759 519.10086,423.13524 523.04839,401.75275 C 526.99593,380.37027 513.50852,380.04131 495.41565,372.47520 C 477.32278,364.90909 451.99276,352.73753 453.30861,343.52661 C 454.62445,334.31570 448.70315,329.05232 448.70315,329.05232 z "
+ id="path18823" />
+ <path
+ style="fill:url(#radialGradient18830);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 539.43027,532.41062 C 539.43027,539.40171 544.55840,574.25612 534.48034,574.25612 C 524.40229,574.25612 475.43149,576.39300 475.43149,569.40191 C 475.43149,562.41083 493.88434,522.82888 503.96239,522.82888 C 514.04045,522.82888 539.43027,525.41954 539.43027,532.41062 z "
+ id="path18824"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.624661,0.780896,-0.780896,0.624661,623.2822,-194.2138)" />
+ <path
+ style="fill:url(#radialGradient18831);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 466.62375,572.09687 C 466.62375,583.75974 447.16650,585.70506 438.72273,585.70506 C 430.27895,585.70506 413.31825,581.76117 413.31825,570.09830 C 389.07901,512.80764 422.08743,519.04264 443.58671,522.23015 C 466.15531,533.76777 473.08623,541.59775 466.62375,572.09687 z "
+ id="path18825"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.943927,0.330155,-0.357257,1.021414,211.1143,-156.7594)" />
+ <path
+ style="fill:#85c8ef;fill-opacity:0.14973260;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 317.44761,367.86974 C 306.92085,392.21288 316.46073,375.43585 330.93502,419.84562 C 345.40932,464.25539 329.61918,472.47942 364.81803,490.57229 C 400.01688,508.66516 393.76662,527.74491 425.01794,529.38972 C 456.26926,531.03453 452.32172,552.41701 489.16538,535.63998 C 526.00904,518.86296 555.28660,489.58540 552.98387,468.53188 C 551.01010,445.17564 536.20685,486.95372 518.44293,505.37555 C 491.79707,525.44218 455.94030,534.65310 426.33378,523.13946 C 396.72727,511.62581 379.62129,494.51983 369.75245,468.20293 C 359.88361,441.88603 345.40932,410.96367 352.97542,395.17353 C 360.54153,379.38339 362.51530,363.59325 384.88467,350.76376 C 407.25403,337.93427 404.62234,323.78894 385.21362,317.86763 C 365.80491,311.94633 372.05518,319.18348 355.93608,344.51350 C 339.81697,369.84351 325.34268,350.76375 317.44761,367.86974 z "
+ id="path18826"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ style="fill:#2d84e6;fill-opacity:0.54901963;fill-rule:evenodd;stroke:#000000;stroke-width:1.5303158;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 331.84343,317.12090 C 338.32897,332.25383 340.76105,348.73791 330.76251,355.22345 C 355.62374,348.46767 345.62521,323.87668 342.11221,308.47352 C 331.84343,311.44606 331.84343,318.47205 331.84343,317.12090 z "
+ id="path18827"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:#5d9ee5;fill-opacity:0.52406418;fill-rule:evenodd;stroke:#000000;stroke-width:1.6259605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none;"
+ d="M 283.74235,353.60207 C 288.60651,349.54860 288.54298,347.43906 295.56898,346.35814 C 288.54298,355.27575 275.09497,401.43291 281.04004,416.29561 C 294.82181,422.78115 314.81889,411.16122 326.43882,432.77969 C 330.49228,463.58600 308.60359,464.93716 301.30736,477.36777 C 302.92874,491.14954 322.11512,518.71309 339.40990,534.92693 C 331.84343,540.87202 329.51836,537.08182 327.08628,538.16275 C 314.92590,526.54282 295.09205,498.71601 290.22789,482.77239 C 296.17296,468.72039 317.25097,469.53108 317.25097,443.04846 C 311.84635,416.56584 287.25535,425.75368 269.96058,421.97046 C 262.93457,407.37799 276.44612,368.19453 283.74235,353.60207 z "
+ id="path18828"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none;"
+ d="M 601.82447,638.74165 C 604.78515,633.28436 601.75731,634.85749 601.48173,632.48572"
+ id="path14427"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 653.57402,632.76380 C 650.55685,628.18560 651.39703,629.58291 652.52800,626.15623"
+ id="path14428"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 684.69400,728.40941 C 681.32519,721.19393 680.05554,724.52525 679.77996,722.15348"
+ id="path14429"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 509.57814,781.15516 C 507.26424,780.26917 507.75279,779.73247 506.94975,778.41561"
+ id="path14430"
+ sodipodi:nodetypes="cc" />
+ <g
+ id="Flower1-2Petals"
+ transform="matrix(1.665396,0.955877,-1.165744,1.230002,25.78933,-246.9053)">
+ <path
+ style="fill:#5047dd;fill-opacity:0.84491980;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z "
+ id="path18797" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="0.0000000"
+ inkscape:original="M 370.56250 305.90625 C 355.90456 305.38356 341.55481 308.54187 333.40625 315.62500 C 327.97388 320.34708 347.33067 340.30951 329.62500 358.15625 C 312.69793 375.21818 287.66656 347.56368 283.21875 354.84375 C 273.25755 371.14806 265.37524 399.59673 267.90625 419.25000 C 269.17176 429.07664 308.54541 414.73263 315.68750 440.15625 C 323.48351 467.90766 284.89523 475.15541 290.03125 485.43750 C 300.30331 506.00168 311.03251 519.94295 326.87500 536.84375 C 334.79624 545.29416 351.90911 508.22838 377.75000 529.43750 C 401.05114 548.56211 370.17897 574.05542 379.65625 579.75000 C 398.61081 591.13920 418.51671 599.28318 438.12500 603.31250 C 447.92915 605.32715 439.41058 564.23371 467.18750 561.43750 C 489.51695 559.18965 496.47318 597.74565 505.37500 595.15625 C 523.21009 589.96826 540.88473 571.83246 552.37500 559.75000 C 558.12014 553.70878 523.50061 541.31380 533.00000 519.28125 C 543.82177 494.18176 562.07926 511.83883 564.31250 503.56250 C 567.67279 491.10942 567.09229 482.38503 565.46875 464.25000 C 564.65698 455.18248 540.01389 464.92575 532.25000 442.96875 C 522.65141 415.82302 549.39077 413.22085 545.21875 404.56250 C 538.82970 391.27821 534.77490 386.96586 519.84375 371.59375 C 512.37815 363.90770 500.37158 387.44121 480.50000 372.06250 C 459.85357 356.08416 479.40003 342.40562 470.31250 336.03125 C 459.54164 328.47614 449.37353 322.48497 439.65625 321.37500 C 429.76884 320.24559 433.66906 341.25860 409.21875 337.34375 C 385.30054 333.51408 394.77072 309.66850 385.12500 307.65625 C 380.38656 306.66773 375.44848 306.08048 370.56250 305.90625 z M 404.37500 362.59375 C 442.37861 362.88532 485.68016 390.09716 503.87500 422.56250 C 524.74616 459.80323 517.44770 509.29724 480.65625 524.43750 C 443.92960 539.55112 390.71795 510.29037 365.28125 466.06250 C 339.84455 421.83464 347.42926 373.16413 388.50000 364.18750 C 393.62397 363.06758 398.94591 362.55210 404.37500 362.59375 z "
+ xlink:href="#path4825"
+ style="fill:#564ce2;fill-opacity:0.72192514;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path18798"
+ inkscape:href="#path4825"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z " />
+ <path
+ style="fill:url(#radialGradient18810);fill-opacity:1.0000000;stroke:#000000;stroke-width:1.7138077;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 380.12958,297.43595 C 365.86249,296.90326 351.89541,300.12208 343.96414,307.34090 C 338.67664,312.15342 357.51725,332.49828 340.28372,350.68690 C 323.80802,368.07567 299.44415,339.89140 295.11493,347.31096 C 285.41937,363.92759 277.74725,392.92123 280.21077,412.95101 C 281.44254,422.96589 319.76626,408.34710 326.71788,434.25775 C 334.30601,462.54078 296.74672,469.92735 301.74578,480.40644 C 311.74392,501.36456 322.18703,515.57289 337.60706,532.79745 C 345.31706,541.40974 361.97361,503.63391 387.12541,525.24932 C 409.80520,544.74031 379.75628,570.72197 388.98084,576.52564 C 407.42996,588.13303 426.80503,596.43301 445.89044,600.53952 C 455.43316,602.59276 447.14175,560.71211 474.17796,557.86234 C 495.91199,555.57142 502.68271,594.86602 511.34716,592.22703 C 528.70666,586.93964 545.90998,568.45644 557.09385,556.14252 C 562.68579,549.98555 528.98942,537.35313 538.23552,514.89853 C 548.76870,489.31821 566.53935,507.31354 568.71302,498.87865 C 571.98372,486.18700 571.41869,477.29549 569.83844,458.81305 C 569.04832,449.57183 545.06237,459.50174 537.50550,437.12411 C 528.16288,409.45836 554.18920,406.80636 550.12843,397.98214 C 543.90974,384.44336 539.96307,380.04841 525.43007,364.38181 C 518.16357,356.54852 506.47716,380.53287 487.13549,364.85955 C 467.03960,348.57510 486.06484,334.63454 477.21964,328.13807 C 466.73600,320.43822 456.83902,314.33228 447.38086,313.20105 C 437.75712,312.05000 441.55333,333.46555 417.75501,329.47570 C 394.47461,325.57267 403.69226,301.27029 394.30375,299.21948 C 389.69169,298.21202 384.88527,297.61353 380.12958,297.43595 z M 413.04042,355.20943 C 450.03063,355.50656 492.17750,383.23969 509.88715,416.32696 C 530.20177,454.28108 523.09793,504.72324 487.28757,520.15355 C 451.54027,535.55668 399.74756,505.73540 374.98916,460.66029 C 350.23075,415.58516 357.61321,365.98228 397.58875,356.83369 C 402.57609,355.69231 407.75611,355.16696 413.04042,355.20943 z "
+ id="path18799" />
+ <path
+ style="fill:#638ae3;fill-opacity:0.53475934;fill-rule:evenodd;stroke:#000000;stroke-width:1.7150134;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 378.47470,577.81411 C 378.41896,575.30523 385.62077,574.05338 386.68118,574.84545 C 392.70466,579.95068 413.90520,592.34120 446.41145,601.02821 C 442.64142,602.48133 444.73008,602.27386 440.53021,603.54017 C 435.26683,603.21121 387.98723,587.44481 378.47470,577.81411 z "
+ id="path18800"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#5492d5;fill-opacity:0.33155081;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 448.70315,329.05232 C 414.82014,343.52661 440.80808,340.23700 445.08458,347.80311 C 449.36107,355.36922 485.87577,370.17247 493.44188,381.68612 C 501.00799,393.19976 515.81124,405.70029 519.75878,420.50355 C 523.70631,435.30680 522.71943,465.90020 531.60138,459.97890 C 540.48334,454.05759 519.10086,423.13524 523.04839,401.75275 C 526.99593,380.37027 513.50852,380.04131 495.41565,372.47520 C 477.32278,364.90909 451.99276,352.73753 453.30861,343.52661 C 454.62445,334.31570 448.70315,329.05232 448.70315,329.05232 z "
+ id="path18801" />
+ <path
+ style="fill:url(#radialGradient18811);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 539.43027,532.41062 C 539.43027,539.40171 544.55840,574.25612 534.48034,574.25612 C 524.40229,574.25612 475.43149,576.39300 475.43149,569.40191 C 475.43149,562.41083 493.88434,522.82888 503.96239,522.82888 C 514.04045,522.82888 539.43027,525.41954 539.43027,532.41062 z "
+ id="path18802"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.624661,0.780896,-0.780896,0.624661,623.2822,-194.2138)" />
+ <path
+ style="fill:url(#radialGradient18812);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 466.62375,572.09687 C 466.62375,583.75974 447.16650,585.70506 438.72273,585.70506 C 430.27895,585.70506 413.31825,581.76117 413.31825,570.09830 C 389.07901,512.80764 422.08743,519.04264 443.58671,522.23015 C 466.15531,533.76777 473.08623,541.59775 466.62375,572.09687 z "
+ id="path18803"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.943927,0.330155,-0.357257,1.021414,211.1143,-156.7594)" />
+ <path
+ style="fill:#85c8ef;fill-opacity:0.14973260;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 317.44761,367.86974 C 306.92085,392.21288 316.46073,375.43585 330.93502,419.84562 C 345.40932,464.25539 329.61918,472.47942 364.81803,490.57229 C 400.01688,508.66516 393.76662,527.74491 425.01794,529.38972 C 456.26926,531.03453 452.32172,552.41701 489.16538,535.63998 C 526.00904,518.86296 555.28660,489.58540 552.98387,468.53188 C 551.01010,445.17564 536.20685,486.95372 518.44293,505.37555 C 491.79707,525.44218 455.94030,534.65310 426.33378,523.13946 C 396.72727,511.62581 379.62129,494.51983 369.75245,468.20293 C 359.88361,441.88603 345.40932,410.96367 352.97542,395.17353 C 360.54153,379.38339 362.51530,363.59325 384.88467,350.76376 C 407.25403,337.93427 404.62234,323.78894 385.21362,317.86763 C 365.80491,311.94633 372.05518,319.18348 355.93608,344.51350 C 339.81697,369.84351 325.34268,350.76375 317.44761,367.86974 z "
+ id="path18804"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ style="fill:#2d84e6;fill-opacity:0.54901963;fill-rule:evenodd;stroke:#000000;stroke-width:1.7150134;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 331.84343,317.12090 C 338.32897,332.25383 340.76105,348.73791 330.76251,355.22345 C 355.62374,348.46767 345.62521,323.87668 342.11221,308.47352 C 331.84343,311.44606 331.84343,318.47205 331.84343,317.12090 z "
+ id="path18805"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:#5d9ee5;fill-opacity:0.52406418;fill-rule:evenodd;stroke:#000000;stroke-width:2.0242781;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none;"
+ d="M 283.74235,353.60207 C 288.60651,349.54860 288.47059,348.08490 295.49659,347.00398 C 288.47059,355.92159 275.09497,401.43291 281.04004,416.29561 C 294.82181,422.78115 314.81889,411.16122 326.43882,432.77969 C 330.49228,463.58600 308.60359,464.93716 301.30736,477.36777 C 302.92874,491.14954 322.11512,518.71309 339.40990,534.92693 C 331.84343,540.87202 331.03274,536.27809 328.60066,537.35902 C 316.44028,525.73909 295.09205,498.71601 290.22789,482.77239 C 296.17296,468.72039 317.25097,469.53108 317.25097,443.04846 C 311.84635,416.56584 287.25535,425.75368 269.96058,421.97046 C 262.93457,407.37799 276.44612,368.19453 283.74235,353.60207 z "
+ id="path18806"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+ <path
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.8125000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 372.11638,913.35731 C 383.39263,913.86987 387.49308,910.79453 387.49308,910.79453"
+ id="path14398"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.8125000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M -56.381265,623.47752 C -44.592458,621.42730 -36.391552,621.93986 -28.190640,627.57798"
+ id="path14419"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.8125000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M -18.195768,528.97789 C -7.4320755,533.59091 -1.7939544,536.15369 9.4823000,533.59090"
+ id="path14420"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.8125000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 369.29732,565.88199 C 381.08613,563.83177 391.33726,558.19365 399.53817,563.83177"
+ id="path14423"
+ sodipodi:nodetypes="cc" />
+ <g
+ id="Flower1-3Pestils"
+ transform="translate(1.891626,11.34975)">
+ <path
+ style="fill:#78bb0b;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path18807"
+ d="M 603.27927,666.47628 C 609.66972,677.12850 609.84624,674.89557 618.32858,683.92662 C 629.06556,695.13796 640.80583,705.37798 653.31781,714.56213 C 657.70974,717.59349 661.99817,720.93503 666.91489,723.08809 C 668.57801,723.83260 669.84377,725.20836 671.28408,726.29745 C 671.73779,726.63548 672.21438,726.94043 672.67953,727.26191 L 672.97185,736.81564 C 672.49767,736.51023 672.01888,736.21197 671.54932,735.89940 C 670.11202,734.92971 668.82935,733.77356 667.38428,732.83496 C 662.35263,730.45132 658.08474,726.69521 653.53958,723.54860 C 641.10645,714.11082 629.25402,703.88474 618.39396,692.66144 C 609.93913,683.78578 602.58476,678.57341 595.97733,668.21781 C 598.65124,667.77125 599.47798,667.05216 603.27927,666.47628 z "
+ sodipodi:nodetypes="ccccccccccccc" />
+ <path
+ style="fill:#6a961f;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path18808"
+ d="M 540.75331,765.89447 C 542.06714,763.06677 543.47163,760.26779 544.83577,757.45996 C 549.67833,747.21863 554.66382,737.04505 559.47924,726.79091 C 564.63623,716.12397 568.61466,704.93616 570.63934,693.24886 L 571.27240,674.80580 C 571.71540,676.41212 572.75043,674.58080 573.99547,674.35749 C 576.29811,684.64569 576.32315,691.04037 574.40886,701.50154 C 572.25135,713.19611 568.19365,724.38600 563.00112,735.07047 C 558.14280,745.37636 553.12855,755.60955 548.47253,766.00997 C 547.15796,768.89228 545.62901,771.79636 544.81786,774.85325 L 540.75331,765.89447 z "
+ sodipodi:nodetypes="ccccccccccc" />
+ <path
+ style="fill:#789744;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path18809"
+ d="M 566.21596,792.75252 C 567.07225,790.00841 568.23459,787.28724 569.25163,784.57374 C 572.16951,776.88707 573.60538,768.74718 575.03237,760.68095 C 578.47796,740.16094 581.50373,719.57285 584.92158,699.04836 C 586.34302,688.56725 591.45622,670.58068 590.36271,669.39944 C 592.98671,668.87464 595.21861,668.31694 598.32324,667.49699 C 596.93319,678.31130 591.11786,681.16577 589.61208,691.96786 C 586.05291,712.37489 583.06932,732.87622 579.89115,753.34460 C 578.61942,761.21808 577.40858,769.19151 574.66768,776.71499 C 573.70516,779.33229 572.71275,782.01875 571.66851,784.56819 L 566.21596,792.75252 z "
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+ <g
+ id="g9548"
+ transform="matrix(0.978021,0.208507,-0.208507,0.978021,-163.9946,644.1626)">
+ <path
+ style="fill:url(#linearGradient9551);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 43.495157,164.66019 C 276.50486,388.34951 338.64079,376.95793 423.55988,385.24272 C 508.47898,393.52751 694.88669,258.89967 724.91909,252.68608 C 754.95149,246.47249 752.88029,251.65048 765.30749,256.82848 C 748.73789,210.22653 666.92559,97.346281 611.00319,62.135921 C 555.08089,26.925563 404.91910,-13.462777 280.64726,19.676373 C 198.83496,38.317153 115.98706,135.66343 43.495157,164.66019 z "
+ id="path9549"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#1a15c0;fill-opacity:0.058823530;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 449.21875,12.343750 C 372.55367,131.34626 351.03163,190.15459 345.31250,234.71875 C 296.43407,228.74167 250.88253,220.20102 210.06250,211.18750 C 210.18144,159.47011 307.03125,15.562500 307.03125,15.562500 C 231.73758,132.43627 211.35292,167.53740 205.28125,210.12500 C 111.44954,189.10115 46.625000,165.87500 46.625000,165.87500 C 95.278072,186.13432 149.62093,202.52998 204.53125,215.34375 C 205.73417,244.61892 210.49875,254.89076 234.81250,324.93750 C 212.11540,236.98624 209.34258,255.80079 209.75000,216.50000 C 255.62272,227.00430 301.69759,235.02520 345.12500,240.43750 C 346.64554,269.96362 353.89092,311.29960 377.53125,379.40625 C 355.00622,292.12181 351.03030,281.31222 351.31250,241.25000 C 399.42652,247.01704 443.95673,249.65958 480.81250,249.21875 C 482.09933,277.29978 486.10250,295.38014 509.81250,363.68750 C 486.91509,274.96003 484.85720,289.97427 485.34375,249.09375 C 521.11851,248.40068 549.34122,244.76072 565.71875,238.12500 C 576.82659,233.17150 593.20091,230.91691 611.78125,230.34375 C 609.02322,239.26769 604.15131,267.42325 620.50000,307.75000 C 605.49195,257.72323 612.64130,247.27739 614.87500,230.31250 C 668.07068,229.21004 737.88540,241.30570 757.40625,245.12500 C 735.98732,234.66460 664.92792,227.25580 615.21875,228.21875 C 615.22870,228.11904 615.24045,228.03777 615.25000,227.93750 C 616.41525,215.70752 675.84375,123.06250 675.84375,123.06250 C 614.59722,216.66570 616.91444,216.32105 612.43750,228.21875 C 605.01927,228.41116 598.05690,228.77061 591.93750,229.37500 C 561.08150,232.42251 544.14471,244.86783 485.50000,246.00000 C 481.12067,196.29050 582.62500,47.906250 582.62500,47.906250 C 504.83281,168.65828 486.07119,201.47841 480.75000,246.09375 C 450.57954,246.34478 409.84371,243.69470 351.53125,235.56250 C 347.17084,177.77103 449.21875,12.343750 449.21875,12.343750 z "
+ id="path9550"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
+ </g>
+ <g
+ id="g13115"
+ transform="matrix(2.038847,0.000000,0.000000,1.923867,-602.1040,-176.4593)">
+ <path
+ style="fill:#78bb0b;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13116"
+ d="M 394.10576,452.65823 C 399.01928,447.68858 401.87654,446.98435 407.73687,436.13585 C 415.10216,422.50139 422.71500,395.32603 424.81725,386.39695 C 432.59894,353.34510 433.66820,323.26018 433.76933,322.70386 L 436.86582,346.10363 C 436.78305,346.66155 431.47654,380.00971 415.76414,424.05417 C 411.63846,435.61913 405.50952,449.12456 398.79879,459.41352 C 397.33926,458.31987 395.32750,454.93255 394.10576,452.65823 z "
+ sodipodi:nodetypes="cssccscc" />
+ <path
+ style="fill:#6a961f;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13117"
+ d="M 406.15858,472.17564 C 417.16429,474.86067 430.18789,477.73672 441.18665,480.45644 C 452.68654,483.30007 472.55231,485.56865 488.72130,479.40230 C 498.71939,475.58933 522.32168,464.29434 536.51561,456.90982 L 523.55784,470.94729 C 516.62703,471.11409 482.89229,486.01332 472.25970,486.23285 C 460.37030,486.47832 457.26549,487.57828 444.51517,485.28507 C 433.17761,483.24596 423.60892,478.34693 406.89416,481.20895 C 406.40439,477.18501 406.28876,474.80137 406.15858,472.17564 z "
+ sodipodi:nodetypes="cssccsscc" />
+ <path
+ style="fill:#789744;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13118"
+ d="M 411.04798,444.80297 C 418.78840,442.38627 461.51519,431.25353 479.40434,421.32526 C 488.33384,415.99783 490.41674,415.55663 499.29259,410.14559 C 500.76605,409.32339 510.29122,401.84518 510.50096,400.24850 L 519.93277,398.41882 C 519.97357,400.45269 508.64877,410.70313 506.85031,411.75720 C 497.68560,417.31484 498.25071,412.11766 489.02182,417.57580 C 471.13283,427.31940 453.53736,437.57850 435.84347,447.66267 C 429.00599,451.50260 408.63164,457.08887 406.01578,457.82964 C 407.76101,448.37975 406.36461,451.04408 411.04798,444.80297 z "
+ sodipodi:nodetypes="cccccccccc" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Flower2">
+ <g
+ id="Flower2-3Inner"
+ transform="matrix(-7.845077e-2,-1.074062,0.734145,4.891352e-2,630.8127,781.1565)">
+ <path
+ style="fill:url(#linearGradient22768);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 363.71942,503.69746 C 405.38182,416.40480 356.13246,406.42348 386.55263,384.60031 C 416.97280,362.77715 422.17091,378.87475 438.04230,393.42353 C 453.91369,407.97230 475.29202,424.27152 475.29202,431.54591 C 475.29202,438.82029 363.71942,503.69746 363.71942,503.69746 z "
+ id="path22763"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#linearGradient22769);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 367.02596,501.05223 C 416.62406,401.85602 391.31920,406.68287 433.64292,413.95726 C 475.96663,421.23164 474.65290,429.18691 485.58403,453.12983 C 488.89057,482.88869 517.45929,484.83995 481.74866,494.09826 C 446.03802,503.35658 367.02596,501.05223 367.02596,501.05223 z "
+ id="path22764"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#linearGradient22770);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 372.31642,498.40699 C 428.52760,380.03286 430.30761,368.00419 393.27436,363.37504 C 356.24111,358.74588 364.06386,389.49281 373.98348,423.88082 C 383.90310,458.26884 400.91057,482.51346 406.86234,503.67532 C 412.81412,524.83718 372.31642,498.40699 372.31642,498.40699 z "
+ id="path22765"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#radialGradient22771);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 375.62296,499.06830 C 502.59410,475.26121 536.65615,491.32284 494.99374,518.43647 C 453.33133,545.55010 458.86406,564.22584 430.51153,548.00510 C 407.36575,528.16586 406.04313,514.27839 394.80089,506.34269 C 383.55866,498.40699 375.62296,499.06830 375.62296,499.06830 z "
+ id="path22766"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#radialGradient22772);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 367.24532,504.86617 C 412.21427,539.25419 477.37338,542.48056 474.06684,517.35085 C 470.76030,492.22115 440.17838,408.38916 409.09691,429.55102 C 378.01543,450.71287 376.55763,466.07702 367.24532,504.86617 z "
+ id="path22767"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ id="Flower2-3Petals"
+ transform="matrix(5.603515e-2,-0.403873,0.459878,-0.321866,687.9418,640.9019)">
+ <path
+ style="fill:#5047dd;fill-opacity:0.84491980;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z "
+ id="path18862" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="0.0000000"
+ inkscape:original="M 370.56250 305.90625 C 355.90456 305.38356 341.55481 308.54187 333.40625 315.62500 C 327.97388 320.34708 347.33067 340.30951 329.62500 358.15625 C 312.69793 375.21818 287.66656 347.56368 283.21875 354.84375 C 273.25755 371.14806 265.37524 399.59673 267.90625 419.25000 C 269.17176 429.07664 308.54541 414.73263 315.68750 440.15625 C 323.48351 467.90766 284.89523 475.15541 290.03125 485.43750 C 300.30331 506.00168 311.03251 519.94295 326.87500 536.84375 C 334.79624 545.29416 351.90911 508.22838 377.75000 529.43750 C 401.05114 548.56211 370.17897 574.05542 379.65625 579.75000 C 398.61081 591.13920 418.51671 599.28318 438.12500 603.31250 C 447.92915 605.32715 439.41058 564.23371 467.18750 561.43750 C 489.51695 559.18965 496.47318 597.74565 505.37500 595.15625 C 523.21009 589.96826 540.88473 571.83246 552.37500 559.75000 C 558.12014 553.70878 523.50061 541.31380 533.00000 519.28125 C 543.82177 494.18176 562.07926 511.83883 564.31250 503.56250 C 567.67279 491.10942 567.09229 482.38503 565.46875 464.25000 C 564.65698 455.18248 540.01389 464.92575 532.25000 442.96875 C 522.65141 415.82302 549.39077 413.22085 545.21875 404.56250 C 538.82970 391.27821 534.77490 386.96586 519.84375 371.59375 C 512.37815 363.90770 500.37158 387.44121 480.50000 372.06250 C 459.85357 356.08416 479.40003 342.40562 470.31250 336.03125 C 459.54164 328.47614 449.37353 322.48497 439.65625 321.37500 C 429.76884 320.24559 433.66906 341.25860 409.21875 337.34375 C 385.30054 333.51408 394.77072 309.66850 385.12500 307.65625 C 380.38656 306.66773 375.44848 306.08048 370.56250 305.90625 z M 404.37500 362.59375 C 442.37861 362.88532 485.68016 390.09716 503.87500 422.56250 C 524.74616 459.80323 517.44770 509.29724 480.65625 524.43750 C 443.92960 539.55112 390.71795 510.29037 365.28125 466.06250 C 339.84455 421.83464 347.42926 373.16413 388.50000 364.18750 C 393.62397 363.06758 398.94591 362.55210 404.37500 362.59375 z "
+ xlink:href="#path4825"
+ style="fill:#564ce2;fill-opacity:0.72192514;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path18863"
+ inkscape:href="#path4825"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z " />
+ <path
+ style="fill:url(#radialGradient18872);fill-opacity:1.0000000;stroke:#000000;stroke-width:1.7138077;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 380.12958,297.43595 C 365.86249,296.90326 351.89541,300.12208 343.96414,307.34090 C 338.67664,312.15342 357.51725,332.49828 340.28372,350.68690 C 323.80802,368.07567 299.44415,339.89140 295.11493,347.31096 C 285.41937,363.92759 277.74725,392.92123 280.21077,412.95101 C 281.44254,422.96589 319.76626,408.34710 326.71788,434.25775 C 334.30601,462.54078 296.74672,469.92735 301.74578,480.40644 C 311.74392,501.36456 322.18703,515.57289 337.60706,532.79745 C 345.31706,541.40974 361.97361,503.63391 387.12541,525.24932 C 409.80520,544.74031 379.75628,570.72197 388.98084,576.52564 C 407.42996,588.13303 426.80503,596.43301 445.89044,600.53952 C 455.43316,602.59276 447.14175,560.71211 474.17796,557.86234 C 495.91199,555.57142 502.68271,594.86602 511.34716,592.22703 C 528.70666,586.93964 545.90998,568.45644 557.09385,556.14252 C 562.68579,549.98555 528.98942,537.35313 538.23552,514.89853 C 548.76870,489.31821 566.53935,507.31354 568.71302,498.87865 C 571.98372,486.18700 571.41869,477.29549 569.83844,458.81305 C 569.04832,449.57183 545.06237,459.50174 537.50550,437.12411 C 528.16288,409.45836 554.18920,406.80636 550.12843,397.98214 C 543.90974,384.44336 539.96307,380.04841 525.43007,364.38181 C 518.16357,356.54852 506.47716,380.53287 487.13549,364.85955 C 467.03960,348.57510 486.06484,334.63454 477.21964,328.13807 C 466.73600,320.43822 456.83902,314.33228 447.38086,313.20105 C 437.75712,312.05000 441.55333,333.46555 417.75501,329.47570 C 394.47461,325.57267 403.69226,301.27029 394.30375,299.21948 C 389.69169,298.21202 384.88527,297.61353 380.12958,297.43595 z M 413.04042,355.20943 C 450.03063,355.50656 492.17750,383.23969 509.88715,416.32696 C 530.20177,454.28108 523.09793,504.72324 487.28757,520.15355 C 451.54027,535.55668 399.74756,505.73540 374.98916,460.66029 C 350.23075,415.58516 357.61321,365.98228 397.58875,356.83369 C 402.57609,355.69231 407.75611,355.16696 413.04042,355.20943 z "
+ id="path18864" />
+ <path
+ style="fill:#638ae3;fill-opacity:0.53475934;fill-rule:evenodd;stroke:#000000;stroke-width:1.8314677;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 378.47470,577.81411 C 378.41896,575.30523 385.62077,574.05338 386.68118,574.84545 C 392.70466,579.95068 411.33467,593.50542 447.38730,601.10327 C 443.61727,602.55639 444.73008,602.27386 440.53021,603.54017 C 435.26683,603.21121 387.98723,587.44481 378.47470,577.81411 z "
+ id="path18865"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#5492d5;fill-opacity:0.33155081;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 448.70315,329.05232 C 414.82014,343.52661 440.80808,340.23700 445.08458,347.80311 C 449.36107,355.36922 485.87577,370.17247 493.44188,381.68612 C 501.00799,393.19976 515.81124,405.70029 519.75878,420.50355 C 523.70631,435.30680 522.71943,465.90020 531.60138,459.97890 C 540.48334,454.05759 519.10086,423.13524 523.04839,401.75275 C 526.99593,380.37027 513.50852,380.04131 495.41565,372.47520 C 477.32278,364.90909 451.99276,352.73753 453.30861,343.52661 C 454.62445,334.31570 448.70315,329.05232 448.70315,329.05232 z "
+ id="path18866" />
+ <path
+ style="fill:url(#radialGradient18873);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 539.43027,532.41062 C 539.43027,539.40171 544.55840,574.25612 534.48034,574.25612 C 524.40229,574.25612 475.43149,576.39300 475.43149,569.40191 C 475.43149,562.41083 493.88434,522.82888 503.96239,522.82888 C 514.04045,522.82888 539.43027,525.41954 539.43027,532.41062 z "
+ id="path18867"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.624661,0.780896,-0.780896,0.624661,623.2822,-194.2138)" />
+ <path
+ style="fill:url(#radialGradient18874);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 466.62375,572.09687 C 466.62375,583.75974 447.16650,585.70506 438.72273,585.70506 C 430.27895,585.70506 413.31825,581.76117 413.31825,570.09830 C 389.07901,512.80764 422.08743,519.04264 443.58671,522.23015 C 466.15531,533.76777 473.08623,541.59775 466.62375,572.09687 z "
+ id="path18868"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.943927,0.330155,-0.357257,1.021414,211.1143,-156.7594)" />
+ <path
+ style="fill:#85c8ef;fill-opacity:0.14973260;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 317.44761,367.86974 C 306.92085,392.21288 316.46073,375.43585 330.93502,419.84562 C 345.40932,464.25539 329.61918,472.47942 364.81803,490.57229 C 400.01688,508.66516 393.76662,527.74491 425.01794,529.38972 C 456.26926,531.03453 452.32172,552.41701 489.16538,535.63998 C 526.00904,518.86296 555.28660,489.58540 552.98387,468.53188 C 551.01010,445.17564 536.20685,486.95372 518.44293,505.37555 C 491.79707,525.44218 455.94030,534.65310 426.33378,523.13946 C 396.72727,511.62581 379.62129,494.51983 369.75245,468.20293 C 359.88361,441.88603 345.40932,410.96367 352.97542,395.17353 C 360.54153,379.38339 362.51530,363.59325 384.88467,350.76376 C 407.25403,337.93427 404.62234,323.78894 385.21362,317.86763 C 365.80491,311.94633 372.05518,319.18348 355.93608,344.51350 C 339.81697,369.84351 325.34268,350.76375 317.44761,367.86974 z "
+ id="path18869"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ style="fill:#2d84e6;fill-opacity:0.54901963;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 331.84343,317.12090 C 338.32897,332.25383 340.76105,348.73791 330.76251,355.22345 C 355.62374,348.46767 345.62521,323.87668 342.11221,308.47352 C 331.84343,311.44606 331.84343,318.47205 331.84343,317.12090 z "
+ id="path18870"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:#5d9ee5;fill-opacity:0.52406418;fill-rule:evenodd;stroke:#000000;stroke-width:1.5567476;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none;"
+ d="M 283.74235,353.60207 C 288.60651,349.54860 288.02148,348.39624 295.04748,347.31532 C 288.02148,356.23293 275.09497,401.43291 281.04004,416.29561 C 294.82181,422.78115 314.81889,411.16122 326.43882,432.77969 C 330.49228,463.58600 308.60359,464.93716 301.30736,477.36777 C 302.92874,491.14954 322.11512,518.71309 339.40990,534.92693 C 331.84343,540.87202 330.36636,537.11425 327.93428,538.19518 C 315.77390,526.57525 295.09205,498.71601 290.22789,482.77239 C 296.17296,468.72039 317.25097,469.53108 317.25097,443.04846 C 311.84635,416.56584 287.25535,425.75368 269.96058,421.97046 C 262.93457,407.37799 276.44612,368.19453 283.74235,353.60207 z "
+ id="path18871"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.75000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 925.02801,368.79454 C 923.46238,367.90933 923.69100,368.31474 923.28200,365.54276"
+ id="path15683"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.75000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 896.21103,397.09074 C 897.94373,395.16396 895.74200,394.70139 895.33300,393.14458"
+ id="path15682"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.75000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 861.49177,361.15630 C 859.57895,360.79189 859.80757,361.19730 857.31541,360.33488"
+ id="path15684"
+ sodipodi:nodetypes="cc" />
+ <g
+ id="Flower2-3Pestils">
+ <path
+ style="fill:#53c107;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13130"
+ d="M 926.18004,320.66940 C 919.79126,315.80464 916.18049,306.49503 911.86960,299.53113 C 882.73157,258.01740 857.30139,213.99246 835.42987,168.23589 C 832.79102,162.55482 830.29495,156.80994 827.82222,151.05534 L 834.62840,148.27110 C 836.18682,154.27839 837.89529,160.24225 839.99372,166.08851 C 857.97962,213.62925 884.26383,257.46764 918.31791,295.26795 C 921.12694,298.85739 935.34792,316.10638 932.99866,315.53021 L 926.18004,320.66940 z "
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="fill:#4e941e;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13131"
+ d="M 916.11430,331.81855 C 898.60767,321.80647 882.06441,307.50232 866.32291,294.85305 C 850.00966,282.39429 835.72638,267.75439 821.68975,252.86147 L 828.26599,247.79974 C 840.74190,263.62625 855.83906,277.11859 871.14993,290.11935 C 885.14831,301.84976 906.79970,318.32598 923.94753,323.29732 L 916.11430,331.81855 z "
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#76901e;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13132"
+ d="M 910.78342,347.08336 C 893.87611,342.41730 870.67395,342.02975 853.20725,340.96630 C 842.95336,340.93180 832.93428,339.33123 822.86290,337.70906 L 826.89475,329.43490 C 836.37420,331.92581 845.98974,333.51916 855.77550,334.28819 C 873.28519,335.87776 896.06862,337.20688 913.54359,337.88572 L 910.78342,347.08336 z "
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+ <path
+ style="fill:url(#linearGradient12491);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 927.83758,392.64573 C 956.91646,400.54760 948.06636,400.54760 969.08534,414.61293 C 974.45861,419.82816 982.51852,425.04340 991.21057,428.04611 C 999.90263,431.04882 1007.9625,430.89078 1007.4884,425.99162 C 1007.0143,421.09247 997.53207,418.56387 989.47216,412.08433 C 981.41226,405.60480 979.51581,405.13069 977.77740,402.44405 C 979.83188,394.85825 985.04711,381.58312 984.09889,373.20714 C 982.51852,342.54787 972.08805,346.97292 955.33608,350.13367 C 938.58412,353.29442 927.83758,392.64573 927.83758,392.64573 z "
+ id="Flower2-3Transition"
+ sodipodi:nodetypes="ccccccccc" />
+ <g
+ id="Flower2-2Inner"
+ transform="matrix(0.824589,-0.750320,0.579669,0.798557,551.4131,222.5662)">
+ <path
+ style="fill:url(#linearGradient22813);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 367.02596,501.05223 C 416.62406,401.85602 391.31920,406.68287 433.64292,413.95726 C 475.96663,421.23164 498.93877,433.47998 502.24531,463.23884 C 505.55185,492.99770 517.45929,484.83995 481.74866,494.09826 C 446.03802,503.35658 367.02596,501.05223 367.02596,501.05223 z "
+ id="path22808"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#linearGradient22812);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 363.71942,503.69746 C 405.38182,416.40480 356.13246,406.42348 386.55263,384.60031 C 416.97280,362.77715 433.42693,377.09495 449.29832,391.64373 C 465.16971,406.19250 475.53456,429.76291 475.53456,437.03730 C 475.53456,444.31168 363.71942,503.69746 363.71942,503.69746 z "
+ id="path22807"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#linearGradient22814);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 372.31642,498.40699 C 428.52760,380.03286 420.31562,335.76821 393.29291,357.35261 C 357.08951,386.27011 368.64007,381.53075 378.55969,415.91876 C 388.47931,450.30678 371.21340,457.41349 377.16517,478.57535 C 383.11695,499.73721 372.31642,498.40699 372.31642,498.40699 z "
+ id="path22809"
+ sodipodi:nodetypes="csccc" />
+ <path
+ style="fill:url(#radialGradient22815);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 375.62296,499.06830 C 502.59410,475.26121 528.60545,487.78502 486.94304,514.89865 C 445.28063,542.01228 460.36951,523.81892 437.22373,503.97968 C 414.07795,484.14044 406.04313,514.27839 394.80089,506.34269 C 383.55866,498.40699 375.62296,499.06830 375.62296,499.06830 z "
+ id="path22810"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#radialGradient22816);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.9743026;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 369.43275,500.81091 C 449.68566,524.22020 466.94604,529.70841 452.10192,493.78550 C 388.30049,442.06185 409.39950,357.95957 371.70918,409.77082 C 368.70439,496.18570 369.43275,500.81091 369.43275,500.81091 z "
+ id="path22811"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ id="Flower2-2Petals"
+ transform="matrix(0.461513,-0.218468,0.507505,0.388027,757.7875,160.0813)">
+ <path
+ style="fill:#5047dd;fill-opacity:0.84491980;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z "
+ id="path18848" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="0.0000000"
+ inkscape:original="M 370.56250 305.90625 C 355.90456 305.38356 341.55481 308.54187 333.40625 315.62500 C 327.97388 320.34708 347.33067 340.30951 329.62500 358.15625 C 312.69793 375.21818 287.66656 347.56368 283.21875 354.84375 C 273.25755 371.14806 265.37524 399.59673 267.90625 419.25000 C 269.17176 429.07664 308.54541 414.73263 315.68750 440.15625 C 323.48351 467.90766 284.89523 475.15541 290.03125 485.43750 C 300.30331 506.00168 311.03251 519.94295 326.87500 536.84375 C 334.79624 545.29416 351.90911 508.22838 377.75000 529.43750 C 401.05114 548.56211 370.17897 574.05542 379.65625 579.75000 C 398.61081 591.13920 418.51671 599.28318 438.12500 603.31250 C 447.92915 605.32715 439.41058 564.23371 467.18750 561.43750 C 489.51695 559.18965 496.47318 597.74565 505.37500 595.15625 C 523.21009 589.96826 540.88473 571.83246 552.37500 559.75000 C 558.12014 553.70878 523.50061 541.31380 533.00000 519.28125 C 543.82177 494.18176 562.07926 511.83883 564.31250 503.56250 C 567.67279 491.10942 567.09229 482.38503 565.46875 464.25000 C 564.65698 455.18248 540.01389 464.92575 532.25000 442.96875 C 522.65141 415.82302 549.39077 413.22085 545.21875 404.56250 C 538.82970 391.27821 534.77490 386.96586 519.84375 371.59375 C 512.37815 363.90770 500.37158 387.44121 480.50000 372.06250 C 459.85357 356.08416 479.40003 342.40562 470.31250 336.03125 C 459.54164 328.47614 449.37353 322.48497 439.65625 321.37500 C 429.76884 320.24559 433.66906 341.25860 409.21875 337.34375 C 385.30054 333.51408 394.77072 309.66850 385.12500 307.65625 C 380.38656 306.66773 375.44848 306.08048 370.56250 305.90625 z M 404.37500 362.59375 C 442.37861 362.88532 485.68016 390.09716 503.87500 422.56250 C 524.74616 459.80323 517.44770 509.29724 480.65625 524.43750 C 443.92960 539.55112 390.71795 510.29037 365.28125 466.06250 C 339.84455 421.83464 347.42926 373.16413 388.50000 364.18750 C 393.62397 363.06758 398.94591 362.55210 404.37500 362.59375 z "
+ xlink:href="#path4825"
+ style="fill:#564ce2;fill-opacity:0.72192514;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path18849"
+ inkscape:href="#path4825"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z " />
+ <path
+ style="fill:url(#radialGradient18858);fill-opacity:1.0000000;stroke:#000000;stroke-width:1.7138077;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 380.12958,297.43595 C 365.86249,296.90326 351.89541,300.12208 343.96414,307.34090 C 338.67664,312.15342 357.51725,332.49828 340.28372,350.68690 C 323.80802,368.07567 299.44415,339.89140 295.11493,347.31096 C 285.41937,363.92759 277.74725,392.92123 280.21077,412.95101 C 281.44254,422.96589 319.76626,408.34710 326.71788,434.25775 C 334.30601,462.54078 296.74672,469.92735 301.74578,480.40644 C 311.74392,501.36456 322.18703,515.57289 337.60706,532.79745 C 345.31706,541.40974 361.97361,503.63391 387.12541,525.24932 C 409.80520,544.74031 379.75628,570.72197 388.98084,576.52564 C 407.42996,588.13303 426.80503,596.43301 445.89044,600.53952 C 455.43316,602.59276 447.14175,560.71211 474.17796,557.86234 C 495.91199,555.57142 502.68271,594.86602 511.34716,592.22703 C 528.70666,586.93964 545.90998,568.45644 557.09385,556.14252 C 562.68579,549.98555 528.98942,537.35313 538.23552,514.89853 C 548.76870,489.31821 566.53935,507.31354 568.71302,498.87865 C 571.98372,486.18700 571.41869,477.29549 569.83844,458.81305 C 569.04832,449.57183 545.06237,459.50174 537.50550,437.12411 C 528.16288,409.45836 554.18920,406.80636 550.12843,397.98214 C 543.90974,384.44336 539.96307,380.04841 525.43007,364.38181 C 518.16357,356.54852 506.47716,380.53287 487.13549,364.85955 C 467.03960,348.57510 486.06484,334.63454 477.21964,328.13807 C 466.73600,320.43822 456.83902,314.33228 447.38086,313.20105 C 437.75712,312.05000 441.55333,333.46555 417.75501,329.47570 C 394.47461,325.57267 403.69226,301.27029 394.30375,299.21948 C 389.69169,298.21202 384.88527,297.61353 380.12958,297.43595 z M 413.04042,355.20943 C 450.03063,355.50656 492.17750,383.23969 509.88715,416.32696 C 530.20177,454.28108 523.09793,504.72324 487.28757,520.15355 C 451.54027,535.55668 399.74756,505.73540 374.98916,460.66029 C 350.23075,415.58516 357.61321,365.98228 397.58875,356.83369 C 402.57609,355.69231 407.75611,355.16696 413.04042,355.20943 z "
+ id="path18850" />
+ <path
+ style="fill:#638ae3;fill-opacity:0.53475934;fill-rule:evenodd;stroke:#000000;stroke-width:1.4624690;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 378.47470,577.81411 C 378.41896,575.30523 385.62077,574.05338 386.68118,574.84545 C 392.70466,579.95068 411.44551,591.58986 446.56562,600.64064 C 442.79559,602.09376 444.73008,602.27386 440.53021,603.54017 C 428.20303,603.58564 387.98723,587.44481 378.47470,577.81411 z "
+ id="path18851"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#5492d5;fill-opacity:0.33155081;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 448.70315,329.05232 C 414.82014,343.52661 440.80808,340.23700 445.08458,347.80311 C 449.36107,355.36922 485.87577,370.17247 493.44188,381.68612 C 501.00799,393.19976 515.81124,405.70029 519.75878,420.50355 C 523.70631,435.30680 522.71943,465.90020 531.60138,459.97890 C 540.48334,454.05759 519.10086,423.13524 523.04839,401.75275 C 526.99593,380.37027 513.50852,380.04131 495.41565,372.47520 C 477.32278,364.90909 451.99276,352.73753 453.30861,343.52661 C 454.62445,334.31570 448.70315,329.05232 448.70315,329.05232 z "
+ id="path18852" />
+ <path
+ style="fill:url(#radialGradient18859);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 539.43027,532.41062 C 539.43027,539.40171 544.55840,574.25612 534.48034,574.25612 C 524.40229,574.25612 475.43149,576.39300 475.43149,569.40191 C 475.43149,562.41083 493.88434,522.82888 503.96239,522.82888 C 514.04045,522.82888 539.43027,525.41954 539.43027,532.41062 z "
+ id="path18853"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.624661,0.780896,-0.780896,0.624661,623.2822,-194.2138)" />
+ <path
+ style="fill:url(#radialGradient18860);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 466.62375,572.09687 C 466.62375,583.75974 447.16650,585.70506 438.72273,585.70506 C 430.27895,585.70506 413.31825,581.76117 413.31825,570.09830 C 389.07901,512.80764 422.08743,519.04264 443.58671,522.23015 C 466.15531,533.76777 473.08623,541.59775 466.62375,572.09687 z "
+ id="path18854"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.943927,0.330155,-0.357257,1.021414,211.1143,-156.7594)" />
+ <path
+ style="fill:#85c8ef;fill-opacity:0.14973260;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 317.44761,367.86974 C 306.92085,392.21288 316.46073,375.43585 330.93502,419.84562 C 345.40932,464.25539 329.61918,472.47942 364.81803,490.57229 C 400.01688,508.66516 393.76662,527.74491 425.01794,529.38972 C 456.26926,531.03453 452.32172,552.41701 489.16538,535.63998 C 526.00904,518.86296 555.28660,489.58540 552.98387,468.53188 C 551.01010,445.17564 536.20685,486.95372 518.44293,505.37555 C 491.79707,525.44218 455.94030,534.65310 426.33378,523.13946 C 396.72727,511.62581 379.62129,494.51983 369.75245,468.20293 C 359.88361,441.88603 345.40932,410.96367 352.97542,395.17353 C 360.54153,379.38339 362.51530,363.59325 384.88467,350.76376 C 407.25403,337.93427 404.62234,323.78894 385.21362,317.86763 C 365.80491,311.94633 372.05518,319.18348 355.93608,344.51350 C 339.81697,369.84351 325.34268,350.76375 317.44761,367.86974 z "
+ id="path18855"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ style="fill:#2d84e6;fill-opacity:0.54901963;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 331.84343,317.12090 C 338.32897,332.25383 340.76105,348.73791 330.76251,355.22345 C 355.62374,348.46767 345.62521,323.87668 342.11221,308.47352 C 331.84343,311.44606 331.84343,318.47205 331.84343,317.12090 z "
+ id="path18856"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:#5d9ee5;fill-opacity:0.52406418;fill-rule:evenodd;stroke:#000000;stroke-width:1.4856828;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none;"
+ d="M 283.74235,353.60207 C 288.60651,349.54860 289.97177,347.25710 296.99777,346.17618 C 286.11578,356.48311 275.09497,401.43291 281.04004,416.29561 C 297.09769,420.10660 314.81889,411.16122 326.43882,432.77969 C 330.49228,463.58600 308.60359,464.93716 301.30736,477.36777 C 302.92874,491.14954 322.11512,518.71309 339.40990,534.92693 C 331.84343,540.87202 331.03274,536.27809 328.60066,537.35902 C 316.44028,525.73909 295.09205,498.71601 290.22789,482.77239 C 296.17296,468.72039 317.25097,469.53108 317.25097,443.04846 C 311.84635,416.56584 287.25535,425.75368 269.96058,421.97046 C 262.93457,407.37799 276.44612,368.19453 283.74235,353.60207 z "
+ id="path18857"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.75000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none;"
+ d="M 1096.1335,265.00825 C 1097.8662,263.08147 1099.1364,262.96609 1098.5538,259.67332"
+ id="path15678"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.75000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 1136.7700,284.65630 C 1137.4282,281.96202 1136.3959,280.92564 1139.1903,279.32137"
+ id="path15679"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.75000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 1273.0783,233.38717 C 1274.1970,231.46039 1274.2392,232.11251 1273.9636,230.20124"
+ id="path15680"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.75000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 1216.7437,199.61709 C 1216.4809,197.38330 1215.6021,197.11442 1215.4800,195.20316"
+ id="path15681"
+ sodipodi:nodetypes="cc" />
+ <g
+ id="Flower2-2Pestils">
+ <path
+ style="fill:#69bd2c;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13133"
+ d="M 1154.4277,252.78674 C 1162.8993,243.88809 1172.2735,228.77012 1178.0553,217.63868 C 1189.9362,194.40642 1190.0200,165.76692 1191.2441,140.17049 C 1191.7851,121.40427 1193.9977,102.91415 1193.2265,84.129869 L 1199.0920,82.754503 C 1199.1619,101.78871 1196.6113,120.73486 1195.8456,139.73994 C 1194.4414,165.88091 1194.9026,193.69601 1183.9552,217.96036 C 1178.2546,229.84365 1169.0161,244.54165 1162.2949,255.74981 L 1154.4277,252.78674 z "
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="fill:#479e35;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13134"
+ d="M 1177.5335,260.88068 C 1183.2699,245.61539 1196.1282,217.54204 1201.5671,202.16328 C 1210.2572,179.25574 1216.1572,155.59101 1219.2041,131.30987 C 1219.3416,129.99117 1219.4791,128.67247 1219.6166,127.35377 L 1227.4380,126.86311 C 1227.2147,128.20234 1226.9915,129.54157 1226.7682,130.88080 C 1222.7949,155.20619 1216.5626,178.98478 1209.7507,202.66228 C 1205.2636,218.00649 1188.1060,246.46598 1186.4680,262.59187 L 1177.5335,260.88068 z "
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="fill:#82a335;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13135"
+ d="M 1198.5919,264.88318 C 1208.2251,250.58402 1220.8793,218.06577 1229.5456,203.23101 C 1236.8545,193.62761 1244.7962,184.40425 1253.1819,175.71051 L 1260.4413,178.57275 C 1252.4554,187.07176 1245.4445,196.36443 1238.1475,205.44239 C 1228.3107,218.94669 1214.9223,250.25842 1208.8057,265.76135 L 1198.5919,264.88318 z "
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+ <path
+ style="fill:url(#linearGradient12493);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 1109.8468,293.73441 C 1131.6710,314.51247 1127.9231,320.74742 1137.4688,347.56312 C 1139.9727,354.59723 1146.5927,367.65837 1152.8116,374.43289 C 1159.0305,381.20737 1161.5022,380.20681 1163.4146,375.67148 C 1165.3270,371.13615 1162.0722,370.55364 1158.0626,361.02107 C 1154.0531,351.48851 1152.4482,348.06551 1151.8727,344.06613 C 1161.1716,339.34076 1194.0844,322.85845 1197.2329,315.03905 C 1210.4206,287.31591 1174.3763,292.88537 1158.1363,287.70067 C 1141.8963,282.51592 1109.8468,293.73441 1109.8468,293.73441 z "
+ id="Flower2-2Transition"
+ sodipodi:nodetypes="csccccccc" />
+ <g
+ id="Flower2-1Inner"
+ transform="matrix(0.812206,0.000000,0.000000,0.638130,755.1049,257.7198)">
+ <path
+ style="fill:url(#linearGradient22796);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.20535541pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 274.61097,-66.937326 C 266.07083,-215.05391 246.78491,-219.47999 287.85388,-222.73005 C 328.92287,-225.98009 382.53679,-211.95450 378.62605,-181.39859 C 374.71529,-150.84269 332.66280,-145.00164 305.85227,-116.10201 C 279.04172,-87.202396 274.61097,-66.937326 274.61097,-66.937326 z "
+ id="path22789" />
+ <path
+ style="fill:url(#linearGradient22797);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.77008289;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 271.17382,-66.474256 C 291.41712,-139.44487 328.09585,-191.27380 360.71030,-190.04826 C 393.32478,-188.82271 445.09192,-195.09454 450.19914,-172.95350 C 455.30633,-150.81247 452.61230,-101.98160 415.46714,-91.884636 C 378.32196,-81.787656 271.17382,-66.474256 271.17382,-66.474256 z "
+ id="path22790" />
+ <path
+ style="fill:url(#linearGradient22798);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.77008289;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 269.07621,-86.463326 C 375.35919,-169.24437 429.08827,-195.24788 426.08390,-150.65540 C 423.07950,-106.06290 449.46829,-101.16004 425.28112,-79.680508 C 390.61348,-81.915599 325.44237,-38.493324 309.01305,-48.583714 C 292.58376,-58.674104 269.07621,-86.463326 269.07621,-86.463326 z "
+ id="path22791"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:url(#radialGradient22799);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.20535541pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 282.67875,-69.780336 C 274.96861,-197.98938 302.55261,-230.15415 258.00305,-212.21092 C 213.45349,-194.26768 155.11191,-160.24206 174.95117,-142.54429 C 194.79044,-124.84652 282.43542,-73.435316 282.43542,-73.435316"
+ id="path22792" />
+ <path
+ style="fill:url(#linearGradient22800);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.20535541pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 284.67905,-71.981506 C 241.15347,-125.47323 194.97727,-144.36424 167.09341,-139.02714 C 139.20954,-133.69006 120.47986,-70.230626 142.21946,-63.676596 C 163.95907,-57.122576 181.96462,-22.319366 191.96607,-33.325246 C 201.96752,-44.331136 276.36792,-72.793496 276.36792,-72.793496"
+ id="path22793" />
+ <path
+ style="fill:url(#linearGradient22801);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.86946380;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 318.63642,-42.271896 C 254.38296,-109.22740 167.74096,-107.00535 155.08504,-77.850036 C 142.42910,-48.694726 200.20530,-34.325536 239.61867,-17.755486 C 279.03202,-1.1854357 318.63642,-42.271896 318.63642,-42.271896 z "
+ id="path22794"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient22802);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.64277321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 301.48024,-27.789386 C 411.03764,-112.56941 390.10354,-97.059886 364.25520,-109.85202 C 338.40681,-122.64414 326.34871,-114.07596 286.73054,-104.78959 C 247.11238,-95.503206 218.37600,-103.54253 235.71695,-66.848486 C 253.05788,-30.154446 301.48024,-27.789386 301.48024,-27.789386 z "
+ id="path22795"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+ <g
+ id="Flower2-1Petals"
+ transform="matrix(0.427857,-0.598088,0.893641,0.167574,403.5946,361.8838)">
+ <path
+ style="fill:#5047dd;fill-opacity:0.84491980;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z "
+ id="path18834" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="0.0000000"
+ inkscape:original="M 370.56250 305.90625 C 355.90456 305.38356 341.55481 308.54187 333.40625 315.62500 C 327.97388 320.34708 347.33067 340.30951 329.62500 358.15625 C 312.69793 375.21818 287.66656 347.56368 283.21875 354.84375 C 273.25755 371.14806 265.37524 399.59673 267.90625 419.25000 C 269.17176 429.07664 308.54541 414.73263 315.68750 440.15625 C 323.48351 467.90766 284.89523 475.15541 290.03125 485.43750 C 300.30331 506.00168 311.03251 519.94295 326.87500 536.84375 C 334.79624 545.29416 351.90911 508.22838 377.75000 529.43750 C 401.05114 548.56211 370.17897 574.05542 379.65625 579.75000 C 398.61081 591.13920 418.51671 599.28318 438.12500 603.31250 C 447.92915 605.32715 439.41058 564.23371 467.18750 561.43750 C 489.51695 559.18965 496.47318 597.74565 505.37500 595.15625 C 523.21009 589.96826 540.88473 571.83246 552.37500 559.75000 C 558.12014 553.70878 523.50061 541.31380 533.00000 519.28125 C 543.82177 494.18176 562.07926 511.83883 564.31250 503.56250 C 567.67279 491.10942 567.09229 482.38503 565.46875 464.25000 C 564.65698 455.18248 540.01389 464.92575 532.25000 442.96875 C 522.65141 415.82302 549.39077 413.22085 545.21875 404.56250 C 538.82970 391.27821 534.77490 386.96586 519.84375 371.59375 C 512.37815 363.90770 500.37158 387.44121 480.50000 372.06250 C 459.85357 356.08416 479.40003 342.40562 470.31250 336.03125 C 459.54164 328.47614 449.37353 322.48497 439.65625 321.37500 C 429.76884 320.24559 433.66906 341.25860 409.21875 337.34375 C 385.30054 333.51408 394.77072 309.66850 385.12500 307.65625 C 380.38656 306.66773 375.44848 306.08048 370.56250 305.90625 z M 404.37500 362.59375 C 442.37861 362.88532 485.68016 390.09716 503.87500 422.56250 C 524.74616 459.80323 517.44770 509.29724 480.65625 524.43750 C 443.92960 539.55112 390.71795 510.29037 365.28125 466.06250 C 339.84455 421.83464 347.42926 373.16413 388.50000 364.18750 C 393.62397 363.06758 398.94591 362.55210 404.37500 362.59375 z "
+ xlink:href="#path4825"
+ style="fill:#564ce2;fill-opacity:0.72192514;stroke:#000000;stroke-width:1.7207220;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path18835"
+ inkscape:href="#path4825"
+ d="M 370.56250,305.90625 C 355.90456,305.38356 341.55481,308.54187 333.40625,315.62500 C 327.97388,320.34708 347.33067,340.30951 329.62500,358.15625 C 312.69793,375.21818 287.66656,347.56368 283.21875,354.84375 C 273.25755,371.14806 265.37524,399.59673 267.90625,419.25000 C 269.17176,429.07664 308.54541,414.73263 315.68750,440.15625 C 323.48351,467.90766 284.89523,475.15541 290.03125,485.43750 C 300.30331,506.00168 311.03251,519.94295 326.87500,536.84375 C 334.79624,545.29416 351.90911,508.22838 377.75000,529.43750 C 401.05114,548.56211 370.17897,574.05542 379.65625,579.75000 C 398.61081,591.13920 418.51671,599.28318 438.12500,603.31250 C 447.92915,605.32715 439.41058,564.23371 467.18750,561.43750 C 489.51695,559.18965 496.47318,597.74565 505.37500,595.15625 C 523.21009,589.96826 540.88473,571.83246 552.37500,559.75000 C 558.12014,553.70878 523.50061,541.31380 533.00000,519.28125 C 543.82177,494.18176 562.07926,511.83883 564.31250,503.56250 C 567.67279,491.10942 567.09229,482.38503 565.46875,464.25000 C 564.65698,455.18248 540.01389,464.92575 532.25000,442.96875 C 522.65141,415.82302 549.39077,413.22085 545.21875,404.56250 C 538.82970,391.27821 534.77490,386.96586 519.84375,371.59375 C 512.37815,363.90770 500.37158,387.44121 480.50000,372.06250 C 459.85357,356.08416 479.40003,342.40562 470.31250,336.03125 C 459.54164,328.47614 449.37353,322.48497 439.65625,321.37500 C 429.76884,320.24559 433.66906,341.25860 409.21875,337.34375 C 385.30054,333.51408 394.77072,309.66850 385.12500,307.65625 C 380.38656,306.66773 375.44848,306.08048 370.56250,305.90625 z M 404.37500,362.59375 C 442.37861,362.88532 485.68016,390.09716 503.87500,422.56250 C 524.74616,459.80323 517.44770,509.29724 480.65625,524.43750 C 443.92960,539.55112 390.71795,510.29037 365.28125,466.06250 C 339.84455,421.83464 347.42926,373.16413 388.50000,364.18750 C 393.62397,363.06758 398.94591,362.55210 404.37500,362.59375 z " />
+ <path
+ style="fill:url(#radialGradient18844);fill-opacity:1.0000000;stroke:#000000;stroke-width:1.7138077;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 380.12958,297.43595 C 365.86249,296.90326 351.89541,300.12208 343.96414,307.34090 C 338.67664,312.15342 357.51725,332.49828 340.28372,350.68690 C 323.80802,368.07567 299.44415,339.89140 295.11493,347.31096 C 285.41937,363.92759 277.74725,392.92123 280.21077,412.95101 C 281.44254,422.96589 319.76626,408.34710 326.71788,434.25775 C 334.30601,462.54078 296.74672,469.92735 301.74578,480.40644 C 311.74392,501.36456 322.18703,515.57289 337.60706,532.79745 C 345.31706,541.40974 361.97361,503.63391 387.12541,525.24932 C 409.80520,544.74031 379.75628,570.72197 388.98084,576.52564 C 407.42996,588.13303 426.80503,596.43301 445.89044,600.53952 C 455.43316,602.59276 447.14175,560.71211 474.17796,557.86234 C 495.91199,555.57142 502.68271,594.86602 511.34716,592.22703 C 528.70666,586.93964 545.90998,568.45644 557.09385,556.14252 C 562.68579,549.98555 528.98942,537.35313 538.23552,514.89853 C 548.76870,489.31821 566.53935,507.31354 568.71302,498.87865 C 571.98372,486.18700 571.41869,477.29549 569.83844,458.81305 C 569.04832,449.57183 545.06237,459.50174 537.50550,437.12411 C 528.16288,409.45836 554.18920,406.80636 550.12843,397.98214 C 543.90974,384.44336 539.96307,380.04841 525.43007,364.38181 C 518.16357,356.54852 506.47716,380.53287 487.13549,364.85955 C 467.03960,348.57510 486.06484,334.63454 477.21964,328.13807 C 466.73600,320.43822 456.83902,314.33228 447.38086,313.20105 C 437.75712,312.05000 441.55333,333.46555 417.75501,329.47570 C 394.47461,325.57267 403.69226,301.27029 394.30375,299.21948 C 389.69169,298.21202 384.88527,297.61353 380.12958,297.43595 z M 413.04042,355.20943 C 450.03063,355.50656 492.17750,383.23969 509.88715,416.32696 C 530.20177,454.28108 523.09793,504.72324 487.28757,520.15355 C 451.54027,535.55668 399.74756,505.73540 374.98916,460.66029 C 350.23075,415.58516 357.61321,365.98228 397.58875,356.83369 C 402.57609,355.69231 407.75611,355.16696 413.04042,355.20943 z "
+ id="path18836" />
+ <path
+ style="fill:#638ae3;fill-opacity:0.53475934;fill-rule:evenodd;stroke:#000000;stroke-width:1.7499997;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 378.47470,577.81411 C 381.62759,574.99441 385.62077,574.05338 386.68118,574.84545 C 392.70466,579.95068 412.14182,591.15833 445.79306,600.64115 C 442.02303,602.09427 442.93405,602.39852 438.73418,603.66483 C 433.47080,603.33587 387.98723,587.44481 378.47470,577.81411 z "
+ id="path18837"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#5492d5;fill-opacity:0.33155081;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 448.70315,329.05232 C 414.82014,343.52661 440.80808,340.23700 445.08458,347.80311 C 449.36107,355.36922 485.87577,370.17247 493.44188,381.68612 C 501.00799,393.19976 515.81124,405.70029 519.75878,420.50355 C 523.70631,435.30680 522.71943,465.90020 531.60138,459.97890 C 540.48334,454.05759 519.10086,423.13524 523.04839,401.75275 C 526.99593,380.37027 513.50852,380.04131 495.41565,372.47520 C 477.32278,364.90909 451.99276,352.73753 453.30861,343.52661 C 454.62445,334.31570 448.70315,329.05232 448.70315,329.05232 z "
+ id="path18838" />
+ <path
+ style="fill:url(#radialGradient18845);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 539.43027,532.41062 C 539.43027,539.40171 544.55840,574.25612 534.48034,574.25612 C 524.40229,574.25612 475.43149,576.39300 475.43149,569.40191 C 475.43149,562.41083 493.88434,522.82888 503.96239,522.82888 C 514.04045,522.82888 539.43027,525.41954 539.43027,532.41062 z "
+ id="path18839"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.624661,0.780896,-0.780896,0.624661,623.2822,-194.2138)" />
+ <path
+ style="fill:url(#radialGradient18846);fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 466.62375,572.09687 C 466.62375,583.75974 447.16650,585.70506 438.72273,585.70506 C 430.27895,585.70506 413.31825,581.76117 413.31825,570.09830 C 389.07901,512.80764 422.08743,519.04264 443.58671,522.23015 C 466.15531,533.76777 473.08623,541.59775 466.62375,572.09687 z "
+ id="path18840"
+ sodipodi:nodetypes="ccccc"
+ transform="matrix(0.943927,0.330155,-0.357257,1.021414,211.1143,-156.7594)" />
+ <path
+ style="fill:#85c8ef;fill-opacity:0.14973260;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 317.44761,367.86974 C 306.92085,392.21288 316.46073,375.43585 330.93502,419.84562 C 345.40932,464.25539 329.61918,472.47942 364.81803,490.57229 C 400.01688,508.66516 393.76662,527.74491 425.01794,529.38972 C 456.26926,531.03453 452.32172,552.41701 489.16538,535.63998 C 526.00904,518.86296 555.28660,489.58540 552.98387,468.53188 C 551.01010,445.17564 536.20685,486.95372 518.44293,505.37555 C 491.79707,525.44218 455.94030,534.65310 426.33378,523.13946 C 396.72727,511.62581 379.62129,494.51983 369.75245,468.20293 C 359.88361,441.88603 345.40932,410.96367 352.97542,395.17353 C 360.54153,379.38339 362.51530,363.59325 384.88467,350.76376 C 407.25403,337.93427 404.62234,323.78894 385.21362,317.86763 C 365.80491,311.94633 372.05518,319.18348 355.93608,344.51350 C 339.81697,369.84351 325.34268,350.76375 317.44761,367.86974 z "
+ id="path18841"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ style="fill:#5d9ee5;fill-opacity:0.52406418;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 283.74235,353.60207 C 288.60651,349.54860 289.72783,347.75698 296.75383,346.67606 C 286.68068,357.78782 275.09497,401.43291 281.04004,416.29561 C 294.82181,422.78115 314.81889,411.16122 326.43882,432.77969 C 330.49228,463.58600 308.60359,464.93716 301.30736,477.36777 C 302.92874,491.14954 322.11512,518.71309 339.40990,534.92693 C 331.84343,540.87202 331.39601,537.57465 328.96393,538.65558 C 316.80355,527.03565 295.09205,498.71601 290.22789,482.77239 C 296.17296,468.72039 317.25097,469.53108 317.25097,443.04846 C 311.84635,416.56584 287.25535,425.75368 269.96058,421.97046 C 262.93457,407.37799 271.84513,371.37772 283.74235,353.60207 z "
+ id="path18843"
+ sodipodi:nodetypes="ccccccccccc" />
+ <path
+ style="fill:#2d84e6;fill-opacity:0.54901963;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 331.84343,317.12090 C 338.32897,332.25383 340.76105,348.73791 330.76251,355.22345 C 355.62374,348.46767 345.62521,323.87668 342.11221,308.47352 C 331.84343,311.44606 331.84343,318.47205 331.84343,317.12090 z "
+ id="path18842"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 895.07703,271.69924 C 898.03771,266.24195 896.32396,265.62493 896.04838,263.25316"
+ id="path15052"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 958.81024,269.50910 C 956.51458,264.92787 956.11491,263.43479 958.24849,260.84401"
+ id="path15053"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 1095.9133,109.84753 C 1095.5888,107.01842 1094.5321,108.37254 1094.2565,105.78175"
+ id="path15054"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 878.21292,156.49762 C 875.91725,152.79245 875.51759,152.83248 874.36595,149.14662"
+ id="path15055"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 1002.3941,104.59119 C 998.12734,100.22897 1000.1369,102.67816 997.67113,99.868360"
+ id="path15056"
+ sodipodi:nodetypes="cc" />
+ <g
+ id="Flower2-1Pestils">
+ <path
+ style="fill:#45a703;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13122"
+ d="M 966.32939,193.47933 C 961.88588,173.35541 949.51470,154.50453 936.90393,137.61148 C 894.07552,88.478864 832.35796,56.737044 771.47244,35.692005 C 757.72544,31.498420 764.29610,33.349915 751.78324,30.057299 L 754.36486,25.748627 C 766.09294,30.553600 759.90793,27.991607 772.91277,33.451786 C 832.63859,58.885218 895.94836,86.699309 940.96999,134.72662 C 955.35925,152.79024 967.10055,171.00323 976.23252,192.24903 L 966.32939,193.47933 z "
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="fill:#4c7229;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13123"
+ d="M 983.87462,191.09304 C 970.55670,173.78792 966.04080,145.04909 959.06360,123.49216 C 954.42897,100.15042 945.11151,77.049864 942.53257,53.319990 C 942.25253,49.639130 941.88082,45.988996 941.26701,42.351753 L 950.07750,40.063494 C 950.41409,43.809578 950.61381,47.564267 951.01580,51.304385 C 953.37274,74.980102 957.77282,98.569093 964.28262,121.44051 C 970.23301,140.12463 975.52790,166.67601 983.25276,179.86618 L 983.87462,191.09304 z "
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="fill:#7cb806;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="path13128"
+ d="M 1000.0165,188.24982 C 997.67401,178.73766 997.80935,177.98518 995.91916,170.47693 C 994.44301,165.16183 991.37111,161.27505 987.18215,157.93360 C 968.55381,147.16517 947.68275,140.89125 927.33656,134.21834 C 888.45059,122.68301 850.63783,108.01804 812.43318,94.482803 C 810.27076,93.743550 808.10833,93.004297 805.94590,92.265044 L 809.29214,86.969255 C 811.39799,87.818265 813.50384,88.667275 815.60968,89.516285 C 853.05304,104.82207 891.32040,118.22519 930.23796,129.25688 C 951.48169,135.76796 973.47131,141.11613 993.40940,151.08743 C 999.16424,155.12223 1002.6528,160.71077 1004.4693,167.52816 C 1005.4455,171.37985 1008.1787,175.19838 1010.5553,186.49266 L 1000.0165,188.24982 z "
+ sodipodi:nodetypes="ccccccccccccc" />
+ </g>
+ </g>
+ <g
+ id="layer1"
+ inkscape:label="Bird"
+ inkscape:groupmode="layer">
+ <g
+ id="BackWing"
+ transform="matrix(0.958504,0.285077,-0.285077,0.958504,152.9519,-164.5305)">
+ <path
+ style="fill:url(#linearGradient34091);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 616.40876,442.60376 C 585.14165,326.22063 611.19757,323.98726 616.65691,326.71693 C 633.72571,335.25133 666.28724,382.30290 670.00952,395.95125 C 673.73179,409.59959 664.30203,460.71883 664.30203,460.71883 L 616.40876,442.60376 z "
+ id="BackWingBase"
+ sodipodi:nodetypes="csccc" />
+ <g
+ id="BackWingLongFeathers"
+ transform="matrix(0.642675,-0.578389,0.661057,0.500660,-82.45126,598.6676)">
+ <path
+ style="fill:url(#linearGradient34092);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 677.75360,380.92767 C 722.37586,333.02415 744.86146,313.84053 750.53980,313.16678 C 756.21814,312.49303 716.19937,362.27979 708.40722,366.00757 C 700.61506,369.73535 677.75360,380.92767 677.75360,380.92767 z "
+ id="path33875" />
+ <path
+ style="fill:url(#linearGradient34093);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 676.54161,389.55630 C 727.76478,340.74543 752.39042,320.45462 757.61082,318.95423 C 762.83123,317.45382 715.25875,367.15910 707.42399,371.65358 C 699.58922,376.14805 676.54161,389.55630 676.54161,389.55630 z "
+ id="path33876" />
+ <path
+ style="fill:url(#linearGradient34094);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 678.53611,387.57209 C 726.40585,342.91359 750.18059,325.35299 755.89219,325.07885 C 761.60378,324.80470 718.19424,371.66444 710.15999,374.83696 C 702.12574,378.00948 678.53611,387.57209 678.53611,387.57209 z "
+ id="path33877" />
+ <path
+ style="fill:url(#linearGradient34095);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 623.81780,446.88904 C 689.24049,444.48784 718.70794,446.78621 723.20393,450.31942 C 727.69991,453.85264 664.20641,460.83827 656.05704,457.97441 C 647.90766,455.11055 623.81780,446.88904 623.81780,446.88904 z "
+ id="path33878" />
+ <path
+ style="fill:url(#linearGradient34096);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 629.44759,442.90897 C 694.75190,438.30008 724.28016,439.60213 728.89288,442.98153 C 733.50560,446.36091 670.28419,455.48648 662.04276,452.89944 C 653.80132,450.31238 629.44759,442.90897 629.44759,442.90897 z "
+ id="path33879" />
+ <path
+ style="fill:url(#linearGradient34097);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 634.60405,456.24577 C 684.92857,452.38278 707.65374,454.02190 711.17581,457.45374 C 714.69786,460.88557 665.93745,469.28871 659.61433,466.60773 C 653.29121,463.92675 634.60405,456.24577 634.60405,456.24577 z "
+ id="path33880" />
+ <path
+ style="fill:url(#linearGradient34098);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 653.08248,463.35514 C 687.75506,460.64601 703.55114,462.79967 706.12974,466.30511 C 708.70834,469.81056 675.30470,477.08671 670.81822,474.26686 C 666.33174,471.44700 653.08248,463.35514 653.08248,463.35514 z "
+ id="path33881" />
+ <path
+ style="fill:url(#linearGradient34099);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 672.87844,391.66688 C 727.79561,349.07999 754.65164,332.79378 760.74578,333.03548 C 766.83992,333.27717 716.46264,378.59651 707.63757,381.19156 C 698.81250,383.78662 672.87844,391.66688 672.87844,391.66688 z "
+ id="path33882" />
+ <path
+ style="fill:url(#linearGradient34100);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 668.95417,405.35129 C 724.45635,360.64669 751.57945,343.55855 757.71772,343.82092 C 763.85599,344.08330 712.91591,391.66711 704.01461,394.38381 C 695.11331,397.10050 668.95417,405.35129 668.95417,405.35129 z "
+ id="path33883" />
+ <path
+ style="fill:url(#linearGradient34101);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 665.63994,415.43670 C 721.14212,370.73210 748.26522,353.64396 754.40349,353.90633 C 760.54176,354.16871 709.60168,401.75252 700.70038,404.46922 C 691.79908,407.18591 665.63994,415.43670 665.63994,415.43670 z "
+ id="path33884" />
+ <path
+ style="fill:url(#linearGradient34102);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 664.60980,420.84491 C 720.11198,376.14031 747.23508,359.05217 753.37335,359.31454 C 759.51162,359.57692 708.57154,407.16073 699.67024,409.87743 C 690.76894,412.59412 664.60980,420.84491 664.60980,420.84491 z "
+ id="path33885" />
+ <path
+ style="fill:url(#linearGradient34103);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 663.32213,426.51065 C 718.82431,381.80605 745.94741,364.71791 752.08568,364.98028 C 758.22395,365.24266 707.28387,412.82647 698.38257,415.54317 C 689.48127,418.25986 663.32213,426.51065 663.32213,426.51065 z "
+ id="path33886" />
+ <path
+ style="fill:url(#linearGradient34104);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 661.26186,432.69145 C 716.76404,387.98685 743.88714,370.89871 750.02541,371.16108 C 756.16368,371.42346 705.22360,419.00727 696.32230,421.72397 C 687.42100,424.44066 661.26186,432.69145 661.26186,432.69145 z "
+ id="path33887" />
+ <path
+ style="fill:url(#linearGradient34105);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 655.34683,430.74313 C 715.38299,392.34193 744.20412,378.30592 750.27742,379.23452 C 756.35071,380.16312 700.53634,421.92275 691.39232,423.65496 C 682.24831,425.38716 655.34683,430.74313 655.34683,430.74313 z "
+ id="path33888" />
+ <path
+ style="fill:url(#linearGradient34106);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 651.61454,438.74758 C 711.84013,400.64414 740.73041,386.75103 746.79903,387.70969 C 752.86765,388.66835 696.84718,430.15109 687.69469,431.83799 C 678.54221,433.52488 651.61454,438.74758 651.61454,438.74758 z "
+ id="path33889" />
+ <path
+ style="fill:url(#linearGradient34107);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 649.19925,446.06157 C 710.34387,409.45106 739.56715,396.27278 745.61035,397.38042 C 751.65356,398.48807 694.62966,438.58029 685.43845,440.04155 C 676.24724,441.50281 649.19925,446.06157 649.19925,446.06157 z "
+ id="path33890" />
+ <path
+ style="fill:url(#linearGradient34108);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 656.63887,442.82942 C 713.54874,415.88969 740.18450,407.28373 745.19253,409.29279 C 750.20054,411.30186 696.34978,442.30658 688.32253,442.36066 C 680.29529,442.41472 656.63887,442.82942 656.63887,442.82942 z "
+ id="path33891" />
+ <path
+ style="fill:url(#linearGradient34109);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 658.99673,442.25801 C 710.79935,424.33474 734.64485,419.91322 738.76587,422.67680 C 742.88689,425.44039 693.31806,447.86431 686.38542,446.67989 C 679.45280,445.49546 658.99673,442.25801 658.99673,442.25801 z "
+ id="path33892" />
+ <path
+ style="fill:url(#linearGradient34110);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 657.46297,432.19015 C 708.16904,431.44160 730.85237,434.81269 734.16682,438.81875 C 737.48127,442.82482 688.05621,448.65877 681.88555,445.28178 C 675.71490,441.90479 657.46297,432.19015 657.46297,432.19015 z "
+ id="path33893" />
+ </g>
+ <g
+ id="BackWingShortFeathers">
+ <path
+ style="fill:url(#linearGradient34111);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 616.50953,416.08173 C 612.06946,406.87642 613.32566,402.90684 615.95141,403.00018 C 618.57716,403.09353 623.16087,402.80873 622.40138,405.85417 C 621.64189,408.89961 616.50953,416.08173 616.50953,416.08173 z "
+ id="path33917" />
+ <path
+ style="fill:url(#linearGradient34112);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 606.60917,405.19134 C 602.16910,395.98603 603.42530,392.01645 606.05105,392.10979 C 608.67680,392.20314 613.26051,391.91834 612.50102,394.96378 C 611.74153,398.00922 606.60917,405.19134 606.60917,405.19134 z "
+ id="path33919" />
+ <path
+ style="fill:url(#linearGradient34113);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 604.38159,397.02355 C 599.94152,387.81824 601.19772,383.84866 603.82347,383.94200 C 606.44922,384.03535 611.03293,383.75055 610.27344,386.79599 C 609.51395,389.84143 604.38159,397.02355 604.38159,397.02355 z "
+ id="path33921" />
+ <path
+ style="fill:url(#linearGradient34114);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 609.23904,414.64465 C 604.79897,405.43934 606.05517,401.46976 608.68092,401.56310 C 611.30667,401.65645 615.89038,401.37165 615.13089,404.41709 C 614.37140,407.46253 609.23904,414.64465 609.23904,414.64465 z "
+ id="path33913" />
+ <path
+ style="fill:url(#linearGradient34115);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 607.84672,397.27105 C 603.40665,388.06574 604.66285,384.09616 607.28860,384.18950 C 609.91435,384.28285 614.49806,383.99805 613.73857,387.04349 C 612.97908,390.08893 607.84672,397.27105 607.84672,397.27105 z "
+ id="path33923" />
+ <path
+ style="fill:url(#linearGradient34116);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 613.78693,406.67639 C 609.34686,397.47108 610.60306,393.50150 613.22881,393.59484 C 615.85456,393.68819 620.43827,393.40339 619.67878,396.44883 C 618.91929,399.49427 613.78693,406.67639 613.78693,406.67639 z "
+ id="path33925" />
+ <path
+ style="fill:url(#linearGradient34117);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 603.88657,389.10326 C 599.44650,379.89795 600.70270,375.92837 603.32845,376.02171 C 605.95420,376.11506 610.53791,375.83026 609.77842,378.87570 C 609.01893,381.92114 603.88657,389.10326 603.88657,389.10326 z "
+ id="path33927" />
+ <path
+ style="fill:url(#linearGradient34118);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 618.48960,419.79437 C 614.04953,410.58906 615.30573,406.61948 617.93148,406.71282 C 620.55723,406.80617 625.14094,406.52137 624.38145,409.56681 C 623.62196,412.61225 618.48960,419.79437 618.48960,419.79437 z "
+ id="path33929" />
+ </g>
+ </g>
+ <path
+ style="fill:url(#radialGradient17610);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 580.83968,395.97047 C 643.19962,312.61302 659.94642,299.14582 659.94642,299.14582 L 620.38528,421.64384 L 580.83968,395.97047 z "
+ id="path3512"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#radialGradient17607);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 604.27141,399.29038 C 666.63135,315.93293 671.52619,313.26419 673.10645,313.00081 L 634.33544,434.18194 L 604.27141,399.29038 z "
+ id="path17606"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#radialGradient17609);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 601.11089,431.42236 C 663.47083,348.06491 682.85140,333.28083 682.85140,333.28083 L 637.23259,453.40845 L 601.11089,431.42236 z "
+ id="path17608"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient18237);fill-opacity:1.0000000;stroke:none;stroke-width:1.8314677;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="BackWingHalo"
+ sodipodi:cx="663.84143"
+ sodipodi:cy="345.54175"
+ sodipodi:rx="12.247025"
+ sodipodi:ry="34.765747"
+ d="M 676.08846 345.54175 A 12.247025 34.765747 0 1 1 651.59441,345.54175 A 12.247025 34.765747 0 1 1 676.08846 345.54175 z"
+ transform="matrix(2.145401,-0.357956,0.671830,1.490337,-990.9290,63.71587)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient13930);fill-opacity:1.0000000;stroke:none;stroke-width:1.7500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.053475920"
+ id="HeadHalo"
+ sodipodi:cx="599.53973"
+ sodipodi:cy="448.49213"
+ sodipodi:rx="56.203156"
+ sodipodi:ry="49.103809"
+ d="M 655.74289 448.49213 A 56.203156 49.103809 0 1 1 543.33658,448.49213 A 56.203156 49.103809 0 1 1 655.74289 448.49213 z"
+ transform="matrix(1.223158,0.000000,0.000000,1.122892,-155.8000,-82.68502)" />
+ <g
+ id="Birdie">
+ <path
+ style="fill:#fffffa;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000058;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:0.053475935;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 458.04332,450.93245 C 457.11280,449.75570 522.73441,425.23650 539.48624,420.36763 C 548.77715,409.20630 551.85467,402.90231 573.33202,396.55508 C 600.98541,391.35156 720.34010,482.39140 734.31938,508.36094 C 748.29866,534.33048 725.23285,559.53621 713.35046,557.24478 C 701.46807,554.95334 617.12218,521.03538 600.34705,506.52299 C 583.57191,492.01060 548.39498,425.86946 540.70637,429.68851 C 519.43019,425.30660 467.66168,451.33268 458.04332,450.93245 z "
+ id="bird_outline"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="fill:#6c665e;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 680.50435,524.43517 C 690.31594,541.60546 697.67464,548.26333 708.18707,548.26333 C 718.69949,548.26333 723.60529,543.70795 719.04991,537.05008 C 714.49452,530.39221 706.78541,530.04180 708.53748,533.19552 C 710.28955,536.34925 715.54576,539.15256 711.69121,540.55422 C 707.83665,541.95588 698.37547,541.25505 696.62340,539.85339 C 694.87133,538.45174 689.26470,525.48641 686.81180,520.58061 C 684.35890,515.67481 680.50435,524.43517 680.50435,524.43517 z "
+ id="BirdFoot" />
+ <path
+ style="fill:url(#linearGradient3567);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 575.97381,396.37829 C 592.09877,396.47202 627.47152,418.31792 640.43902,428.60278 C 639.52405,436.38003 645.93825,483.25429 584.63524,487.14291 C 573.19469,471.12923 547.83846,424.28489 536.40133,429.54597 C 535.25762,422.68370 538.00254,427.25854 538.68876,421.76872 C 542.80613,414.44896 558.58937,397.06451 575.97381,396.37829 z "
+ id="head_base"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:url(#linearGradient1698);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 538.87716,420.66535 C 504.44737,432.14539 487.71845,437.90912 457.83107,450.82288 C 462.50029,452.69317 521.25627,425.48052 540.61484,429.59789 C 541.30106,426.85298 541.98360,419.62956 538.87716,420.66535 z "
+ id="beak"
+ sodipodi:nodetypes="cccs" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 541.15636,426.40968 C 497.42096,434.99068 496.59054,437.02059 490.13173,439.05050 C 477.58317,444.49436 458.66807,450.95317 458.66807,450.95317"
+ id="Lips"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:url(#linearGradient4193);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 637.96561,427.71688 C 633.84824,447.61748 621.27168,448.08438 626.08468,464.30800 C 630.89768,481.89894 620.70773,502.90478 635.57599,509.53832 C 650.44426,516.17185 694.96099,501.59903 708.21096,507.55488 C 718.72627,513.05496 724.88522,525.84659 731.51876,528.13402 C 738.15229,530.42144 737.69738,516.23855 733.35127,507.77507 C 730.60550,498.16703 691.26091,466.83015 683.71241,459.96787 C 674.56869,453.56137 640.25303,425.88694 637.96561,427.71688 z "
+ id="BackBase"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="fill:url(#linearGradient4821);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 545.10678,429.15093 C 567.77430,416.54734 573.67730,432.85787 594.45586,443.23729 C 615.23441,453.61673 614.76216,437.55332 624.67921,438.29471 C 634.59624,439.03609 628.22099,445.95572 626.09592,454.11098 C 623.97084,462.26625 591.15017,479.07104 579.34417,477.09400 C 572.02445,470.17438 553.37099,441.26026 553.37099,441.26026"
+ id="ThroatBase"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:url(#linearGradient18130);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 573.63547,411.66502 C 585.45813,405.99015 592.78818,408.35468 593.49754,410.00985 C 594.20690,411.66502 587.58621,417.57635 585.45813,418.75862 C 583.33005,419.94089 577.65517,421.12315 575.52709,418.75862 C 573.39902,416.39409 573.63547,411.66502 573.63547,411.66502 z "
+ id="EyeBase" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="EyeBall"
+ sodipodi:cx="573.63550"
+ sodipodi:cy="413.32019"
+ sodipodi:rx="4.0197043"
+ sodipodi:ry="3.5467980"
+ d="M 577.65520 413.32019 A 4.0197043 3.5467980 0 1 1 569.61579,413.32019 A 4.0197043 3.5467980 0 1 1 577.65520 413.32019 z"
+ transform="translate(4.256158,0.709360)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#efefef;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="EyeHighlight"
+ sodipodi:cx="579.19214"
+ sodipodi:cy="413.55664"
+ sodipodi:rx="1.3004926"
+ sodipodi:ry="0.94581282"
+ d="M 580.49263 413.55664 A 1.3004926 0.94581282 0 1 1 577.89165,413.55664 A 1.3004926 0.94581282 0 1 1 580.49263 413.55664 z" />
+ <path
+ style="fill:url(#radialGradient14558);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 602.02453,503.98535 C 627.10889,527.64984 683.43037,547.76465 695.26261,548.00130 C 707.09485,548.23794 725.07986,552.26090 720.58361,543.97833 C 716.08736,535.69576 713.24762,528.35977 683.43037,515.81759 C 653.61312,503.27542 638.94113,521.26043 626.39896,514.16108 C 613.85678,507.06173 610.78039,495.70278 603.68105,498.77916 C 596.58170,501.85555 602.02453,503.98535 602.02453,503.98535 z "
+ id="BellyShadows" />
+ <g
+ id="HeadFeathers">
+ <path
+ style="fill:url(#linearGradient20129);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 619.06928,426.21244 C 624.93688,434.25311 627.38557,434.44975 630.19177,432.38664 C 632.99795,430.32353 633.28654,424.53756 630.81744,422.40292 C 628.34834,420.26826 619.06928,426.21244 619.06928,426.21244 z "
+ id="path20128"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20127);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 609.32433,418.31113 C 615.19193,426.35180 617.64062,426.54844 620.44682,424.48533 C 623.25300,422.42222 623.54159,416.63625 621.07249,414.50161 C 618.60339,412.36695 609.32433,418.31113 609.32433,418.31113 z "
+ id="path20126"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20121);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 594.04847,417.25762 C 599.91607,425.29829 602.36476,425.49493 605.17096,423.43182 C 607.97714,421.36871 608.26573,415.58274 605.79663,413.44810 C 603.32753,411.31344 594.04847,417.25762 594.04847,417.25762 z "
+ id="path20120"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20119);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 591.94145,407.24930 C 597.80905,415.28997 600.25774,415.48661 603.06394,413.42350 C 605.87012,411.36039 606.15871,405.57442 603.68961,403.43978 C 601.22051,401.30512 591.94145,407.24930 591.94145,407.24930 z "
+ id="path20118"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20117);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 583.77678,405.66904 C 589.64438,413.70971 592.09307,413.90635 594.89927,411.84324 C 597.70545,409.78013 597.99404,403.99416 595.52494,401.85952 C 593.05584,399.72486 583.77678,405.66904 583.77678,405.66904 z "
+ id="path20116"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20115);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 578.89127,396.14067 C 579.85107,406.04824 581.85900,407.46351 585.32454,407.11535 C 588.79006,406.76719 591.98262,401.93311 590.94325,398.83910 C 589.90389,395.74508 578.89127,396.14067 578.89127,396.14067 z "
+ id="path20114"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20113);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 589.83445,409.61969 C 595.70205,417.66036 598.15074,417.85700 600.95694,415.79389 C 603.76312,413.73078 604.05171,407.94481 601.58261,405.81017 C 599.11351,403.67551 589.83445,409.61969 589.83445,409.61969 z "
+ id="path20112"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20109);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 600.57062,411.91439 C 606.43822,419.95506 608.88691,420.15170 611.69311,418.08859 C 614.49929,416.02548 614.78788,410.23951 612.31878,408.10487 C 609.84968,405.97021 600.57062,411.91439 600.57062,411.91439 z "
+ id="path20108"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27960);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 575.40066,413.05206 C 583.27804,420.33590 586.12819,420.23921 589.07770,417.85627 C 592.02719,415.47335 591.55899,409.69423 588.41703,407.86916 C 585.27509,406.04408 575.40066,413.05206 575.40066,413.05206 z "
+ id="path27959"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27958);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 602.06821,445.72338 C 610.69260,450.69339 613.01062,449.88003 614.73894,446.85611 C 616.46725,443.83220 614.38445,438.42640 611.26179,437.47658 C 608.13913,436.52674 602.06821,445.72338 602.06821,445.72338 z "
+ id="path27957"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27956);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 604.64225,431.21588 C 609.91325,440.93036 612.74918,442.12250 616.46004,441.41538 C 620.17089,440.70826 621.67510,435.58577 619.20552,432.62938 C 616.73595,429.67296 604.64225,431.21588 604.64225,431.21588 z "
+ id="path27955"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27952);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 606.19966,426.80387 C 613.10419,434.36636 616.16890,434.64818 619.81382,432.88895 C 623.45873,431.12972 624.15695,425.87740 621.17905,423.83140 C 618.20115,421.78539 606.19966,426.80387 606.19966,426.80387 z "
+ id="path27951"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27950);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 605.21579,413.22219 C 610.41440,421.71074 612.83919,422.10463 615.80294,420.27504 C 618.76667,418.44546 619.52190,412.70174 617.23338,410.37454 C 614.94487,408.04733 605.21579,413.22219 605.21579,413.22219 z "
+ id="path27949"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27948);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 601.15198,423.90805 C 609.77637,428.87806 612.09439,428.06470 613.82271,425.04078 C 615.55102,422.01687 613.46822,416.61107 610.34556,415.66125 C 607.22290,414.71141 601.15198,423.90805 601.15198,423.90805 z "
+ id="path27947"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27944);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 599.58670,439.51959 C 608.21109,444.48960 610.52911,443.67624 612.25743,440.65232 C 613.98574,437.62841 611.90294,432.22261 608.78028,431.27279 C 605.65762,430.32295 599.58670,439.51959 599.58670,439.51959 z "
+ id="path27943"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27920);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 578.24566,405.02651 C 586.87005,409.99652 589.18807,409.18316 590.91639,406.15924 C 592.64470,403.13533 590.56190,397.72953 587.43924,396.77971 C 584.31658,395.82987 578.24566,405.02651 578.24566,405.02651 z "
+ id="path27919"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27942);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 593.63106,444.97892 C 602.25545,449.94893 604.57347,449.13557 606.30179,446.11165 C 608.03010,443.08774 605.94730,437.68194 602.82464,436.73212 C 599.70198,435.78228 593.63106,444.97892 593.63106,444.97892 z "
+ id="path27941"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27940);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 585.44205,439.76774 C 594.06644,444.73775 596.38446,443.92439 598.11278,440.90047 C 599.84109,437.87656 597.75829,432.47076 594.63563,431.52094 C 591.51297,430.57110 585.44205,439.76774 585.44205,439.76774 z "
+ id="path27939"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27938);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 591.95039,428.68065 C 596.95598,438.27479 599.61628,438.91292 603.07887,437.20592 C 606.54144,435.49892 607.90564,429.38465 605.57338,426.67808 C 603.24114,423.97147 591.95039,428.68065 591.95039,428.68065 z "
+ id="path27937"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27932);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 585.93835,408.00433 C 594.56274,412.97434 596.88076,412.16098 598.60908,409.13706 C 600.33739,406.11315 598.25459,400.70735 595.13193,399.75753 C 592.00927,398.80769 585.93835,408.00433 585.93835,408.00433 z "
+ id="path27931"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27930);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 588.91617,413.46366 C 597.54056,418.43367 599.85858,417.62031 601.58690,414.59639 C 603.31521,411.57248 601.23241,406.16668 598.10975,405.21686 C 594.98709,404.26702 588.91617,413.46366 588.91617,413.46366 z "
+ id="path27929"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27928);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 584.94575,422.14897 C 593.57014,427.11898 595.88816,426.30562 597.61648,423.28170 C 599.34479,420.25779 597.26199,414.85199 594.13933,413.90217 C 591.01667,412.95233 584.94575,422.14897 584.94575,422.14897 z "
+ id="path27927"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27926);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 583.20869,428.84907 C 591.83308,433.81908 594.15110,433.00572 595.87942,429.98180 C 597.60773,426.95789 595.52493,421.55209 592.40227,420.60227 C 589.27961,419.65243 583.20869,428.84907 583.20869,428.84907 z "
+ id="path27925"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27922);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 575.01968,426.11940 C 583.64407,431.08941 585.96209,430.27605 587.69041,427.25213 C 589.41872,424.22822 587.33592,418.82242 584.21326,417.87260 C 581.09060,416.92276 575.01968,426.11940 575.01968,426.11940 z "
+ id="path27921"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27924);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 579.73456,435.54916 C 588.35895,440.51917 590.67697,439.70581 592.40529,436.68189 C 594.13360,433.65798 592.05080,428.25218 588.92814,427.30236 C 585.80548,426.35252 579.73456,435.54916 579.73456,435.54916 z "
+ id="path27923"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27918);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 572.75291,424.44253 C 576.40857,433.70089 578.72900,434.50734 581.96403,433.21669 C 585.19904,431.92603 586.93419,426.39883 585.08163,423.71160 C 583.22909,421.02435 572.75291,424.44253 572.75291,424.44253 z "
+ id="path27917"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27916);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 564.44388,422.38247 C 571.28725,429.61084 573.74106,429.49419 576.26181,427.09065 C 578.78255,424.68712 578.33229,418.91148 575.61155,417.10850 C 572.89082,415.30550 564.44388,422.38247 564.44388,422.38247 z "
+ id="path27915"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27914);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 570.87014,404.61391 C 579.49453,409.58392 581.81255,408.77056 583.54087,405.74664 C 585.26918,402.72273 583.18638,397.31693 580.06372,396.36711 C 576.94106,395.41727 570.87014,404.61391 570.87014,404.61391 z "
+ id="path27913"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27912);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 563.60470,406.72531 C 573.96922,412.71065 576.75494,411.73113 578.83199,408.08945 C 580.90901,404.44778 578.40597,397.93763 574.65326,396.79377 C 570.90054,395.64989 563.60470,406.72531 563.60470,406.72531 z "
+ id="path27911"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27906);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 558.14537,424.38234 C 566.76976,429.35235 569.08778,428.53899 570.81610,425.51507 C 572.54441,422.49116 570.46161,417.08536 567.33895,416.13554 C 564.21629,415.18570 558.14537,424.38234 558.14537,424.38234 z "
+ id="path27905"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27908);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 560.35672,416.37979 C 568.98111,421.34980 571.29913,420.53644 573.02745,417.51252 C 574.75576,414.48861 572.67296,409.08281 569.55030,408.13299 C 566.42764,407.18315 560.35672,416.37979 560.35672,416.37979 z "
+ id="path27907"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27904);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 547.72300,424.38234 C 556.34739,429.35235 558.66541,428.53899 560.39373,425.51507 C 562.12204,422.49116 560.03924,417.08536 556.91658,416.13554 C 553.79392,415.18570 547.72300,424.38234 547.72300,424.38234 z "
+ id="path27903"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27902);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 551.44527,421.40452 C 560.06966,426.37453 562.38768,425.56117 564.11600,422.53725 C 565.84431,419.51334 563.76151,414.10754 560.63885,413.15772 C 557.51619,412.20788 551.44527,421.40452 551.44527,421.40452 z "
+ id="path27901"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27900);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 546.48224,415.20072 C 555.10663,420.17073 557.42465,419.35737 559.15297,416.33345 C 560.88128,413.30954 558.79848,407.90374 555.67582,406.95392 C 552.55316,406.00408 546.48224,415.20072 546.48224,415.20072 z "
+ id="path27899"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27274);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 539.10925,422.27894 C 547.73364,427.24895 550.05166,426.43559 551.77998,423.41167 C 553.50829,420.38776 551.42549,414.98196 548.30283,414.03214 C 545.18017,413.08230 539.10925,422.27894 539.10925,422.27894 z "
+ id="path27273"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27910);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 555.66385,410.73399 C 564.28824,415.70400 566.60626,414.89064 568.33458,411.86672 C 570.06289,408.84281 567.98009,403.43701 564.85743,402.48719 C 561.73477,401.53735 555.66385,410.73399 555.66385,410.73399 z "
+ id="path27909"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27934);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 596.51591,409.10108 C 601.83252,417.51623 604.26258,417.87623 607.20049,416.00544 C 610.13839,414.13466 610.81336,408.38095 608.49258,406.08594 C 606.17180,403.79090 596.51591,409.10108 596.51591,409.10108 z "
+ id="path27933"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27936);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 592.67727,416.77620 C 596.88740,427.85112 599.54918,428.81144 603.25504,427.25936 C 606.96088,425.70728 608.93844,419.08704 606.80910,415.87429 C 604.67977,412.66151 592.67727,416.77620 592.67727,416.77620 z "
+ id="path27935"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27946);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 600.96254,430.15152 C 609.58693,435.12153 611.90495,434.30817 613.63327,431.28425 C 615.36158,428.26034 613.27878,422.85454 610.15612,421.90472 C 607.03346,420.95488 600.96254,430.15152 600.96254,430.15152 z "
+ id="path27945"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27954);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 607.16920,418.74594 C 617.26123,426.12996 620.97418,426.06984 624.86792,423.72497 C 628.76166,421.38012 628.28213,415.59564 624.23255,413.73050 C 620.18296,411.86533 607.16920,418.74594 607.16920,418.74594 z "
+ id="path27953"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29221);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 616.09287,427.85620 C 615.34841,437.78227 617.08547,439.51933 620.55960,439.76748 C 624.03372,440.01563 628.00415,435.79705 627.50784,432.57108 C 627.01154,429.34511 616.09287,427.85620 616.09287,427.85620 z "
+ id="path29220"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient6864);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 538.44681,423.50496 C 543.71781,433.21944 546.55374,434.41158 550.26460,433.70446 C 553.97545,432.99734 555.47966,427.87485 553.01008,424.91846 C 550.54051,421.96204 538.44681,423.50496 538.44681,423.50496 z "
+ id="path6863"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ id="NeckFeathers">
+ <path
+ style="fill:url(#linearGradient20795);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 608.42083,447.63959 C 607.97867,457.58372 609.76777,459.26714 613.24784,459.40949 C 616.72790,459.55184 620.56816,455.21443 619.97395,452.00506 C 619.37974,448.79567 608.42083,447.63959 608.42083,447.63959 z "
+ id="path20794"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20793);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 581.29301,457.12117 C 580.85085,467.06530 582.63995,468.74872 586.12002,468.89107 C 589.60008,469.03342 593.44034,464.69601 592.84613,461.48664 C 592.25192,458.27725 581.29301,457.12117 581.29301,457.12117 z "
+ id="path20792"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20791);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 560.22286,436.57777 C 559.78070,446.52190 561.56980,448.20532 565.04987,448.34767 C 568.52993,448.49002 572.37019,444.15261 571.77598,440.94324 C 571.18177,437.73385 560.22286,436.57777 560.22286,436.57777 z "
+ id="path20790"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20789);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 596.83225,458.96480 C 596.39009,468.90893 598.17919,470.59235 601.65926,470.73470 C 605.13932,470.87705 608.97958,466.53964 608.38537,463.33027 C 607.79116,460.12088 596.83225,458.96480 596.83225,458.96480 z "
+ id="path20788"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20787);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 584.71691,446.05933 C 584.27475,456.00346 586.06385,457.68688 589.54392,457.82923 C 593.02398,457.97158 596.86424,453.63417 596.27003,450.42480 C 595.67582,447.21541 584.71691,446.05933 584.71691,446.05933 z "
+ id="path20786"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20785);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 573.39171,464.23234 C 572.94955,474.17647 574.73865,475.85989 578.21872,476.00224 C 581.69878,476.14459 585.53904,471.80718 584.94483,468.59781 C 584.35062,465.38842 573.39171,464.23234 573.39171,464.23234 z "
+ id="path20784"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20783);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 593.93511,438.68478 C 593.49295,448.62891 595.28205,450.31233 598.76212,450.45468 C 602.24218,450.59703 606.08244,446.25962 605.48823,443.05025 C 604.89402,439.84086 593.93511,438.68478 593.93511,438.68478 z "
+ id="path20782"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20781);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 572.86495,439.47491 C 572.42279,449.41904 574.21189,451.10246 577.69196,451.24481 C 581.17202,451.38716 585.01228,447.04975 584.41807,443.84038 C 583.82386,440.63099 572.86495,439.47491 572.86495,439.47491 z "
+ id="path20780"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20779);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 547.31740,427.09620 C 546.87524,437.04033 548.66434,438.72375 552.14441,438.86610 C 555.62447,439.00845 559.46473,434.67104 558.87052,431.46167 C 558.27631,428.25228 547.31740,427.09620 547.31740,427.09620 z "
+ id="path20777"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20776);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 540.14349,426.29449 C 544.73263,435.12744 547.12375,435.69078 550.20875,434.07402 C 553.29375,432.45727 554.45080,426.78083 552.33152,424.29854 C 550.21222,421.81623 540.14349,426.29449 540.14349,426.29449 z "
+ id="path20775"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20774);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 554.69195,437.36790 C 554.24979,447.31203 556.03889,448.99545 559.51896,449.13780 C 562.99902,449.28015 566.83928,444.94274 566.24507,441.73337 C 565.65086,438.52398 554.69195,437.36790 554.69195,437.36790 z "
+ id="path20773"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20772);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 564.17352,451.32687 C 563.73136,461.27100 565.52046,462.95442 569.00053,463.09677 C 572.48059,463.23912 576.32085,458.90171 575.72664,455.69234 C 575.13243,452.48295 564.17352,451.32687 564.17352,451.32687 z "
+ id="path20771"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20770);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 561.01299,446.32271 C 560.57083,456.26684 562.35993,457.95026 565.84000,458.09261 C 569.32006,458.23496 573.16032,453.89755 572.56611,450.68818 C 571.97190,447.47879 561.01299,446.32271 561.01299,446.32271 z "
+ id="path20769"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20766);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 568.12417,454.22402 C 567.68201,464.16815 569.47111,465.85157 572.95118,465.99392 C 576.43124,466.13627 580.27150,461.79886 579.67729,458.58949 C 579.08308,455.38010 568.12417,454.22402 568.12417,454.22402 z "
+ id="path20765"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20139);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 570.64822,460.80002 C 570.20606,470.74415 571.99516,472.42757 575.47523,472.56992 C 578.95529,472.71227 582.79555,468.37486 582.20134,465.16549 C 581.60713,461.95610 570.64822,460.80002 570.64822,460.80002 z "
+ id="path20138"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27208);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 555.92368,423.73900 C 555.17922,433.66507 556.91628,435.40213 560.39041,435.65028 C 563.86453,435.89843 567.83496,431.67985 567.33865,428.45388 C 566.84235,425.22791 555.92368,423.73900 555.92368,423.73900 z "
+ id="path27207"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27214);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 566.84235,425.22791 C 566.09789,435.15398 567.83495,436.89104 571.30908,437.13919 C 574.78320,437.38734 578.75363,433.16876 578.25732,429.94279 C 577.76102,426.71682 566.84235,425.22791 566.84235,425.22791 z "
+ id="path27213"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27224);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 573.54245,428.45389 C 572.79799,438.37996 574.53505,440.11702 578.00918,440.36517 C 581.48330,440.61332 585.45373,436.39474 584.95742,433.16877 C 584.46112,429.94280 573.54245,428.45389 573.54245,428.45389 z "
+ id="path27223"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27228);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 570.81278,441.35777 C 570.06832,451.28384 571.80538,453.02090 575.27951,453.26905 C 578.75363,453.51720 582.72406,449.29862 582.22775,446.07265 C 581.73145,442.84668 570.81278,441.35777 570.81278,441.35777 z "
+ id="path27227"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27234);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 573.54245,448.80232 C 572.79799,458.72839 574.53505,460.46545 578.00918,460.71360 C 581.48330,460.96175 585.45373,456.74317 584.95742,453.51720 C 584.46112,450.29123 573.54245,448.80232 573.54245,448.80232 z "
+ id="path27233"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27240);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 589.67231,440.36517 C 588.92785,450.29124 590.66491,452.02830 594.13904,452.27645 C 597.61316,452.52460 601.58359,448.30602 601.08728,445.08005 C 600.59098,441.85408 589.67231,440.36517 589.67231,440.36517 z "
+ id="path27239"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27254);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 585.95003,450.78754 C 585.20557,460.71361 586.94263,462.45067 590.41676,462.69882 C 593.89088,462.94697 597.86131,458.72839 597.36500,455.50242 C 596.86870,452.27645 585.95003,450.78754 585.95003,450.78754 z "
+ id="path27253"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27258);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 600.34283,442.84668 C 599.59837,452.77275 601.33543,454.50981 604.80956,454.75796 C 608.28368,455.00611 612.25411,450.78753 611.75780,447.56156 C 611.26150,444.33559 600.34283,442.84668 600.34283,442.84668 z "
+ id="path27257"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27206);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 549.47173,426.46867 C 548.72727,436.39474 550.46433,438.13180 553.93846,438.37995 C 557.41258,438.62810 561.38301,434.40952 560.88670,431.18355 C 560.39040,427.95758 549.47173,426.46867 549.47173,426.46867 z "
+ id="Feather"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27210);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 552.69771,433.41692 C 551.95325,443.34299 553.69031,445.08005 557.16444,445.32820 C 560.63856,445.57635 564.60899,441.35777 564.11268,438.13180 C 563.61638,434.90583 552.69771,433.41692 552.69771,433.41692 z "
+ id="path27209"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27212);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 561.13486,430.68725 C 560.39040,440.61332 562.12746,442.35038 565.60159,442.59853 C 569.07571,442.84668 573.04614,438.62810 572.54983,435.40213 C 572.05353,432.17616 561.13486,430.68725 561.13486,430.68725 z "
+ id="path27211"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27216);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 569.82017,433.91322 C 569.07571,443.83929 570.81277,445.57635 574.28690,445.82450 C 577.76102,446.07265 581.73145,441.85407 581.23514,438.62810 C 580.73884,435.40213 569.82017,433.91322 569.82017,433.91322 z "
+ id="path27215"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27218);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 561.63117,438.13180 C 560.88671,448.05787 562.62377,449.79493 566.09790,450.04308 C 569.57202,450.29123 573.54245,446.07265 573.04614,442.84668 C 572.54984,439.62071 561.63117,438.13180 561.63117,438.13180 z "
+ id="path27217"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27222);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 557.66074,442.59853 C 556.91628,452.52460 558.65334,454.26166 562.12747,454.50981 C 565.60159,454.75796 569.57202,450.53938 569.07571,447.31341 C 568.57941,444.08744 557.66074,442.59853 557.66074,442.59853 z "
+ id="path27221"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27226);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 575.52766,435.15398 C 574.78320,445.08005 576.52026,446.81711 579.99439,447.06526 C 583.46851,447.31341 587.43894,443.09483 586.94263,439.86886 C 586.44633,436.64289 575.52766,435.15398 575.52766,435.15398 z "
+ id="path27225"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27230);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 564.85714,445.57635 C 564.11268,455.50242 565.84974,457.23948 569.32387,457.48763 C 572.79799,457.73578 576.76842,453.51720 576.27211,450.29123 C 575.77581,447.06526 564.85714,445.57635 564.85714,445.57635 z "
+ id="path27229"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27232);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 567.09050,451.53199 C 566.34604,461.45806 568.08310,463.19512 571.55723,463.44327 C 575.03135,463.69142 579.00178,459.47284 578.50547,456.24687 C 578.00917,453.02090 567.09050,451.53199 567.09050,451.53199 z "
+ id="path27231"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27236);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 576.76842,443.83929 C 576.02396,453.76536 577.76102,455.50242 581.23515,455.75057 C 584.70927,455.99872 588.67970,451.78014 588.18339,448.55417 C 587.68709,445.32820 576.76842,443.83929 576.76842,443.83929 z "
+ id="path27235"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27238);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 582.22776,437.63550 C 581.48330,447.56157 583.22036,449.29863 586.69449,449.54678 C 590.16861,449.79493 594.13904,445.57635 593.64273,442.35038 C 593.14643,439.12441 582.22776,437.63550 582.22776,437.63550 z "
+ id="path27237"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27242);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 585.70188,444.58374 C 584.95742,454.50981 586.69448,456.24687 590.16861,456.49502 C 593.64273,456.74317 597.61316,452.52459 597.11685,449.29862 C 596.62055,446.07265 585.70188,444.58374 585.70188,444.58374 z "
+ id="path27241"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27244);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 577.51287,449.79493 C 576.76841,459.72100 578.50547,461.45806 581.97960,461.70621 C 585.45372,461.95436 589.42415,457.73578 588.92784,454.50981 C 588.43154,451.28384 577.51287,449.79493 577.51287,449.79493 z "
+ id="path27243"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27246);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 571.80539,455.99872 C 571.06093,465.92479 572.79799,467.66185 576.27212,467.91000 C 579.74624,468.15815 583.71667,463.93957 583.22036,460.71360 C 582.72406,457.48763 571.80539,455.99872 571.80539,455.99872 z "
+ id="path27245"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27248);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 575.77581,462.45066 C 575.03135,472.37673 576.76841,474.11379 580.24254,474.36194 C 583.71666,474.61009 587.68709,470.39151 587.19078,467.16554 C 586.69448,463.93957 575.77581,462.45066 575.77581,462.45066 z "
+ id="path27247"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27252);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 581.97960,456.74318 C 581.23514,466.66925 582.97220,468.40631 586.44633,468.65446 C 589.92045,468.90261 593.89088,464.68403 593.39457,461.45806 C 592.89827,458.23209 581.97960,456.74318 581.97960,456.74318 z "
+ id="path27251"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27256);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 591.65752,446.56896 C 590.91306,456.49503 592.65012,458.23209 596.12425,458.48024 C 599.59837,458.72839 603.56880,454.50981 603.07249,451.28384 C 602.57619,448.05787 591.65752,446.56896 591.65752,446.56896 z "
+ id="path27255"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27260);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 606.79477,442.59853 C 606.05031,452.52460 607.78737,454.26166 611.26150,454.50981 C 614.73562,454.75796 618.70605,450.53938 618.20974,447.31341 C 617.71344,444.08744 606.79477,442.59853 606.79477,442.59853 z "
+ id="path27259"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27262);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 595.08761,449.33831 C 594.34315,459.26438 596.08021,461.00144 599.55434,461.24959 C 603.02846,461.49774 606.99889,457.27916 606.50258,454.05319 C 606.00628,450.82722 595.08761,449.33831 595.08761,449.33831 z "
+ id="path27261"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27264);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 588.43889,457.45094 C 587.69443,467.37701 589.43149,469.11407 592.90562,469.36222 C 596.37974,469.61037 600.35017,465.39179 599.85386,462.16582 C 599.35756,458.93985 588.43889,457.45094 588.43889,457.45094 z "
+ id="path27263"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27266);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 587.17313,468.56341 C 586.42867,478.48948 588.16573,480.22654 591.63986,480.47469 C 595.11398,480.72284 599.08441,476.50426 598.58810,473.27829 C 598.09180,470.05232 587.17313,468.56341 587.17313,468.56341 z "
+ id="path27265"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27268);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 577.05326,468.12146 C 576.30880,478.04753 578.04586,479.78459 581.51999,480.03274 C 584.99411,480.28089 588.96454,476.06231 588.46823,472.83634 C 587.97193,469.61037 577.05326,468.12146 577.05326,468.12146 z "
+ id="path27267"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient27272);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 609.30853,437.08621 C 611.73957,446.73873 613.93661,447.83771 617.31107,446.97507 C 620.68553,446.11243 623.11905,440.85518 621.62855,437.95146 C 620.13806,435.04773 609.30853,437.08621 609.30853,437.08621 z "
+ id="path27271"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29213);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 582.49585,474.99422 C 581.75139,484.92029 583.48845,486.65735 586.96258,486.90550 C 590.43670,487.15365 594.40713,482.93507 593.91082,479.70910 C 593.41452,476.48313 582.49585,474.99422 582.49585,474.99422 z "
+ id="path28584"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29217);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 593.09871,463.62488 C 592.35425,473.55095 594.09131,475.28801 597.56544,475.53616 C 601.03956,475.78431 605.00999,471.56573 604.51368,468.33976 C 604.01738,465.11379 593.09871,463.62488 593.09871,463.62488 z "
+ id="path29216"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ id="BellyFeathers">
+ <path
+ style="fill:url(#linearGradient21547);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 632.51863,519.20390 C 631.77417,529.12997 633.51123,530.86703 636.98536,531.11518 C 640.45948,531.36333 644.42991,527.14475 643.93360,523.91878 C 643.43730,520.69281 632.51863,519.20390 632.51863,519.20390 z "
+ id="path21546"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21545);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 688.88128,542.38106 C 688.13682,552.30713 689.87388,554.04419 693.34801,554.29234 C 696.82213,554.54049 700.79256,550.32191 700.29625,547.09594 C 699.79995,543.86997 688.88128,542.38106 688.88128,542.38106 z "
+ id="path21544"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21543);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 714.69221,553.70627 C 713.94775,563.63234 715.68481,565.36940 719.15894,565.61755 C 722.63306,565.86570 726.60349,561.64712 726.10718,558.42115 C 725.61088,555.19518 714.69221,553.70627 714.69221,553.70627 z "
+ id="path21542"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21541);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 706.79091,549.75562 C 706.04645,559.68169 707.78351,561.41875 711.25764,561.66690 C 714.73176,561.91505 718.70219,557.69647 718.20588,554.47050 C 717.70958,551.24453 706.79091,549.75562 706.79091,549.75562 z "
+ id="path21540"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21539);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 723.38365,523.68130 C 722.63919,533.60737 724.37625,535.34443 727.85038,535.59258 C 731.32450,535.84073 735.29493,531.62215 734.79862,528.39618 C 734.30232,525.17021 723.38365,523.68130 723.38365,523.68130 z "
+ id="path21538"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21535);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 629.35810,456.52020 C 628.61364,466.44627 630.35070,468.18333 633.82483,468.43148 C 637.29895,468.67963 641.26938,464.46105 640.77307,461.23508 C 640.27677,458.00911 629.35810,456.52020 629.35810,456.52020 z "
+ id="path21534"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21533);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 713.90208,497.34362 C 713.15762,507.26969 714.89468,509.00675 718.36881,509.25490 C 721.84293,509.50305 725.81336,505.28447 725.31705,502.05850 C 724.82075,498.83253 713.90208,497.34362 713.90208,497.34362 z "
+ id="path21532"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21531);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 695.72908,480.22412 C 694.98462,490.15019 696.72168,491.88725 700.19581,492.13540 C 703.66993,492.38355 707.64036,488.16497 707.14405,484.93900 C 706.64775,481.71303 695.72908,480.22412 695.72908,480.22412 z "
+ id="path21530"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21529);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 709.16130,520.25741 C 708.41684,530.18348 710.15390,531.92054 713.62803,532.16869 C 717.10215,532.41684 721.07258,528.19826 720.57627,524.97229 C 720.07997,521.74632 709.16130,520.25741 709.16130,520.25741 z "
+ id="path21528"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21527);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 703.36701,516.57013 C 702.62255,526.49620 704.35961,528.23326 707.83374,528.48141 C 711.30786,528.72956 715.27829,524.51098 714.78198,521.28501 C 714.28568,518.05904 703.36701,516.57013 703.36701,516.57013 z "
+ id="path21526"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21525);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 690.19816,523.41793 C 689.45370,533.34400 691.19076,535.08106 694.66489,535.32921 C 698.13901,535.57736 702.10944,531.35878 701.61313,528.13281 C 701.11683,524.90684 690.19816,523.41793 690.19816,523.41793 z "
+ id="path21524"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21523);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 688.61790,512.09272 C 687.87344,522.01879 689.61050,523.75585 693.08463,524.00400 C 696.55875,524.25215 700.52918,520.03357 700.03287,516.80760 C 699.53657,513.58163 688.61790,512.09272 688.61790,512.09272 z "
+ id="path21522"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21521);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 675.18568,507.08856 C 674.44122,517.01463 676.17828,518.75169 679.65241,518.99984 C 683.12653,519.24799 687.09696,515.02941 686.60065,511.80344 C 686.10435,508.57747 675.18568,507.08856 675.18568,507.08856 z "
+ id="path21520"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21519);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 654.11553,508.40545 C 653.37107,518.33152 655.10813,520.06858 658.58226,520.31673 C 662.05638,520.56488 666.02681,516.34630 665.53050,513.12033 C 665.03420,509.89436 654.11553,508.40545 654.11553,508.40545 z "
+ id="path21518"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21517);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 634.62564,504.71817 C 633.88118,514.64424 635.61824,516.38130 639.09237,516.62945 C 642.56649,516.87760 646.53692,512.65902 646.04061,509.43305 C 645.54431,506.20708 634.62564,504.71817 634.62564,504.71817 z "
+ id="path21516"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21515);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 625.67083,503.13791 C 624.92637,513.06398 626.66343,514.80104 630.13756,515.04919 C 633.61168,515.29734 637.58211,511.07876 637.08580,507.85279 C 636.58950,504.62682 625.67083,503.13791 625.67083,503.13791 z "
+ id="path21514"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21513);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 614.08225,511.56597 C 613.33779,521.49204 615.07485,523.22910 618.54898,523.47725 C 622.02310,523.72540 625.99353,519.50682 625.49722,516.28085 C 625.00092,513.05488 614.08225,511.56597 614.08225,511.56597 z "
+ id="path21512"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21511);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 620.13991,514.46311 C 619.39545,524.38918 621.13251,526.12624 624.60664,526.37439 C 628.08076,526.62254 632.05119,522.40396 631.55488,519.17799 C 631.05858,515.95202 620.13991,514.46311 620.13991,514.46311 z "
+ id="path21510"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21509);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 629.09473,518.15039 C 628.35027,528.07646 630.08733,529.81352 633.56146,530.06167 C 637.03558,530.30982 641.00601,526.09124 640.50970,522.86527 C 640.01340,519.63930 629.09473,518.15039 629.09473,518.15039 z "
+ id="path21508"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21507);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 638.57630,521.83767 C 637.83184,531.76374 639.56890,533.50080 643.04303,533.74895 C 646.51715,533.99710 650.48758,529.77852 649.99127,526.55255 C 649.49497,523.32658 638.57630,521.83767 638.57630,521.83767 z "
+ id="path21506"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21505);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 672.55191,533.42625 C 671.80745,543.35232 673.54451,545.08938 677.01864,545.33753 C 680.49276,545.58568 684.46319,541.36710 683.96688,538.14113 C 683.47058,534.91516 672.55191,533.42625 672.55191,533.42625 z "
+ id="path21504"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21503);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 664.12385,533.95300 C 663.37939,543.87907 665.11645,545.61613 668.59058,545.86428 C 672.06470,546.11243 676.03513,541.89385 675.53882,538.66788 C 675.04252,535.44191 664.12385,533.95300 664.12385,533.95300 z "
+ id="path21502"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21501);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 696.51921,545.27821 C 695.77475,555.20428 697.51181,556.94134 700.98594,557.18949 C 704.46006,557.43764 708.43049,553.21906 707.93418,549.99309 C 707.43788,546.76712 696.51921,545.27821 696.51921,545.27821 z "
+ id="path21500"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21499);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 713.37533,552.65276 C 712.63087,562.57883 714.36793,564.31589 717.84206,564.56404 C 721.31618,564.81219 725.28661,560.59361 724.79030,557.36764 C 724.29400,554.14167 713.37533,552.65276 713.37533,552.65276 z "
+ id="path21498"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21497);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 732.86522,538.69379 C 732.12076,548.61986 733.85782,550.35692 737.33195,550.60507 C 740.80607,550.85322 744.77650,546.63464 744.28019,543.40867 C 743.78389,540.18270 732.86522,538.69379 732.86522,538.69379 z "
+ id="path21496"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21495);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 715.48234,522.62780 C 714.73788,532.55387 716.47494,534.29093 719.94907,534.53908 C 723.42319,534.78723 727.39362,530.56865 726.89731,527.34268 C 726.40101,524.11671 715.48234,522.62780 715.48234,522.62780 z "
+ id="path21494"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21493);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 726.54417,537.90366 C 725.79971,547.82973 727.53677,549.56679 731.01090,549.81494 C 734.48502,550.06309 738.45545,545.84451 737.95914,542.61854 C 737.46284,539.39257 726.54417,537.90366 726.54417,537.90366 z "
+ id="path21492"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21491);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 728.65119,525.26157 C 727.90673,535.18764 729.64379,536.92470 733.11792,537.17285 C 736.59204,537.42100 740.56247,533.20242 740.06616,529.97645 C 739.56986,526.75048 728.65119,525.26157 728.65119,525.26157 z "
+ id="path21490"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21489);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 737.07925,529.21222 C 736.33479,539.13829 738.07185,540.87535 741.54598,541.12350 C 745.02010,541.37165 748.99053,537.15307 748.49422,533.92710 C 747.99792,530.70113 737.07925,529.21222 737.07925,529.21222 z "
+ id="path21488"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21487);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 738.13276,533.68963 C 737.38830,543.61570 739.12536,545.35276 742.59949,545.60091 C 746.07361,545.84906 750.04404,541.63048 749.54773,538.40451 C 749.05143,535.17854 738.13276,533.68963 738.13276,533.68963 z "
+ id="path21486"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21485);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 729.70470,543.17119 C 728.96024,553.09726 730.69730,554.83432 734.17143,555.08247 C 737.64555,555.33062 741.61598,551.11204 741.11967,547.88607 C 740.62337,544.66010 729.70470,543.17119 729.70470,543.17119 z "
+ id="path21484"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21483);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 724.17378,546.33172 C 723.42932,556.25779 725.16638,557.99485 728.64051,558.24300 C 732.11463,558.49115 736.08506,554.27257 735.58875,551.04660 C 735.09245,547.82063 724.17378,546.33172 724.17378,546.33172 z "
+ id="path21482"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21481);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 711.26831,546.33172 C 710.52385,556.25779 712.26091,557.99485 715.73504,558.24300 C 719.20916,558.49115 723.17959,554.27257 722.68328,551.04660 C 722.18698,547.82063 711.26831,546.33172 711.26831,546.33172 z "
+ id="path21480"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21479);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 700.46986,520.25741 C 699.72540,530.18348 701.46246,531.92054 704.93659,532.16869 C 708.41071,532.41684 712.38114,528.19826 711.88483,524.97229 C 711.38853,521.74632 700.46986,520.25741 700.46986,520.25741 z "
+ id="path21478"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21477);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 696.25583,528.68547 C 695.51137,538.61154 697.24843,540.34860 700.72256,540.59675 C 704.19668,540.84490 708.16711,536.62632 707.67080,533.40035 C 707.17450,530.17438 696.25583,528.68547 696.25583,528.68547 z "
+ id="path21476"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21475);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 710.74156,524.47144 C 709.99710,534.39751 711.73416,536.13457 715.20829,536.38272 C 718.68241,536.63087 722.65284,532.41229 722.15653,529.18632 C 721.66023,525.96035 710.74156,524.47144 710.74156,524.47144 z "
+ id="path21474"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21473);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 721.27664,527.36858 C 720.53218,537.29465 722.26924,539.03171 725.74337,539.27986 C 729.21749,539.52801 733.18792,535.30943 732.69161,532.08346 C 732.19531,528.85749 721.27664,527.36858 721.27664,527.36858 z "
+ id="path21472"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21471);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 718.64287,543.96132 C 717.89841,553.88739 719.63547,555.62445 723.10960,555.87260 C 726.58372,556.12075 730.55415,551.90217 730.05784,548.67620 C 729.56154,545.45023 718.64287,543.96132 718.64287,543.96132 z "
+ id="path21470"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21469);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 700.46986,545.80496 C 699.72540,555.73103 701.46246,557.46809 704.93659,557.71624 C 708.41071,557.96439 712.38114,553.74581 711.88483,550.51984 C 711.38853,547.29387 700.46986,545.80496 700.46986,545.80496 z "
+ id="path21468"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21467);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 675.97581,534.21638 C 675.23135,544.14245 676.96841,545.87951 680.44254,546.12766 C 683.91666,546.37581 687.88709,542.15723 687.39078,538.93126 C 686.89448,535.70529 675.97581,534.21638 675.97581,534.21638 z "
+ id="path21466"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21465);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 683.08699,538.95716 C 682.34253,548.88323 684.07959,550.62029 687.55372,550.86844 C 691.02784,551.11659 694.99827,546.89801 694.50196,543.67204 C 694.00566,540.44607 683.08699,538.95716 683.08699,538.95716 z "
+ id="path21464"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21463);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 688.09115,541.06418 C 687.34669,550.99025 689.08375,552.72731 692.55788,552.97546 C 696.03200,553.22361 700.00243,549.00503 699.50612,545.77906 C 699.00982,542.55309 688.09115,541.06418 688.09115,541.06418 z "
+ id="path21462"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21461);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 674.92230,511.82935 C 674.17784,521.75542 675.91490,523.49248 679.38903,523.74063 C 682.86315,523.98878 686.83358,519.77020 686.33727,516.54423 C 685.84097,513.31826 674.92230,511.82935 674.92230,511.82935 z "
+ id="path21460"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21459);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 670.18152,523.15455 C 669.43706,533.08062 671.17412,534.81768 674.64825,535.06583 C 678.12237,535.31398 682.09280,531.09540 681.59649,527.86943 C 681.10019,524.64346 670.18152,523.15455 670.18152,523.15455 z "
+ id="path21458"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21457);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 658.59294,518.94052 C 657.84848,528.86659 659.58554,530.60365 663.05967,530.85180 C 666.53379,531.09995 670.50422,526.88137 670.00791,523.65540 C 669.51161,520.42943 658.59294,518.94052 658.59294,518.94052 z "
+ id="path21456"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21455);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 655.95917,526.05170 C 655.21471,535.97777 656.95177,537.71483 660.42590,537.96298 C 663.90002,538.21113 667.87045,533.99255 667.37414,530.76658 C 666.87784,527.54061 655.95917,526.05170 655.95917,526.05170 z "
+ id="path21454"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21453);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 662.54359,530.00235 C 661.79913,539.92842 663.53619,541.66548 667.01032,541.91363 C 670.48444,542.16178 674.45487,537.94320 673.95856,534.71723 C 673.46226,531.49126 662.54359,530.00235 662.54359,530.00235 z "
+ id="path21452"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21451);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 673.60542,532.89950 C 672.86096,542.82557 674.59802,544.56263 678.07215,544.81078 C 681.54627,545.05893 685.51670,540.84035 685.02039,537.61438 C 684.52409,534.38841 673.60542,532.89950 673.60542,532.89950 z "
+ id="path21450"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21449);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 582.21364,476.53684 C 581.46918,486.46291 583.20624,488.19997 586.68037,488.44812 C 590.15449,488.69627 594.12492,484.47769 593.62861,481.25172 C 593.13231,478.02575 582.21364,476.53684 582.21364,476.53684 z "
+ id="path21448"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21447);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 578.78974,472.05944 C 578.04528,481.98551 579.78234,483.72257 583.25647,483.97072 C 586.73059,484.21887 590.70102,480.00029 590.20471,476.77432 C 589.70841,473.54835 578.78974,472.05944 578.78974,472.05944 z "
+ id="path21446"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21445);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 594.59235,494.44647 C 593.84789,504.37254 595.58495,506.10960 599.05908,506.35775 C 602.53320,506.60590 606.50363,502.38732 606.00732,499.16135 C 605.51102,495.93538 594.59235,494.44647 594.59235,494.44647 z "
+ id="path21444"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient21443);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 601.44016,499.45063 C 600.69570,509.37670 602.43276,511.11376 605.90689,511.36191 C 609.38101,511.61006 613.35144,507.39148 612.85513,504.16551 C 612.35883,500.93954 601.44016,499.45063 601.44016,499.45063 z "
+ id="path21442"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient20817);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 609.86821,506.03505 C 609.12375,515.96112 610.86081,517.69818 614.33494,517.94633 C 617.80906,518.19448 621.77949,513.97590 621.28318,510.74993 C 620.78688,507.52396 609.86821,506.03505 609.86821,506.03505 z "
+ id="path20816"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29225);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 626.05700,429.26140 C 625.31254,439.18747 627.04960,440.92453 630.52373,441.17268 C 633.99785,441.42083 637.96828,437.20225 637.47197,433.97628 C 636.97567,430.75031 626.05700,429.26140 626.05700,429.26140 z "
+ id="path29224"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29223);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 621.20268,419.29726 C 620.45822,429.22333 622.19528,430.96039 625.66941,431.20854 C 629.14353,431.45669 633.11396,427.23811 632.61765,424.01214 C 632.12135,420.78617 621.20268,419.29726 621.20268,419.29726 z "
+ id="path29222"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29227);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 628.99514,423.89609 C 628.25068,433.82216 629.98774,435.55922 633.46187,435.80737 C 636.93599,436.05552 640.90642,431.83694 640.41011,428.61097 C 639.91381,425.38500 628.99514,423.89609 628.99514,423.89609 z "
+ id="path29226"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29229);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 619.41424,438.33131 C 618.66978,448.25738 620.40684,449.99444 623.88097,450.24259 C 627.35509,450.49074 631.32552,446.27216 630.82921,443.04619 C 630.33291,439.82022 619.41424,438.33131 619.41424,438.33131 z "
+ id="path29228"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29233);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 602.29637,450.33937 C 601.55191,460.26544 603.28897,462.00250 606.76310,462.25065 C 610.23722,462.49880 614.20765,458.28022 613.71134,455.05425 C 613.21504,451.82828 602.29637,450.33937 602.29637,450.33937 z "
+ id="path29232"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29235);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 584.02879,482.78668 C 583.28433,492.71275 585.02139,494.44981 588.49552,494.69796 C 591.96964,494.94611 595.94007,490.72753 595.44376,487.50156 C 594.94746,484.27559 584.02879,482.78668 584.02879,482.78668 z "
+ id="path29234"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29239);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 592.45998,482.91443 C 591.71552,492.84050 593.45258,494.57756 596.92671,494.82571 C 600.40083,495.07386 604.37126,490.85528 603.87495,487.62931 C 603.37865,484.40334 592.45998,482.91443 592.45998,482.91443 z "
+ id="path29238"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29241);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 591.18253,478.18785 C 590.43807,488.11392 592.17513,489.85098 595.64926,490.09913 C 599.12338,490.34728 603.09381,486.12870 602.59750,482.90273 C 602.10120,479.67676 591.18253,478.18785 591.18253,478.18785 z "
+ id="path29240"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29243);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 596.03685,492.36758 C 595.29239,502.29365 597.02945,504.03071 600.50358,504.27886 C 603.97770,504.52701 607.94813,500.30843 607.45182,497.08246 C 606.95552,493.85649 596.03685,492.36758 596.03685,492.36758 z "
+ id="path29242"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29245);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 601.01892,488.53522 C 600.27446,498.46129 602.01152,500.19835 605.48565,500.44650 C 608.95977,500.69465 612.93020,496.47607 612.43389,493.25010 C 611.93759,490.02413 601.01892,488.53522 601.01892,488.53522 z "
+ id="path29244"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29247);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 589.77733,473.46127 C 589.03287,483.38734 590.76993,485.12440 594.24406,485.37255 C 597.71818,485.62070 601.68861,481.40212 601.19230,478.17615 C 600.69600,474.95018 589.77733,473.46127 589.77733,473.46127 z "
+ id="path29246"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29251);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 605.61775,503.22593 C 604.87329,513.15200 606.61035,514.88906 610.08448,515.13721 C 613.55860,515.38536 617.52903,511.16678 617.03272,507.94081 C 616.53642,504.71484 605.61775,503.22593 605.61775,503.22593 z "
+ id="path29250"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29253);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 606.25648,494.53925 C 605.51202,504.46532 607.24908,506.20238 610.72321,506.45053 C 614.19733,506.69868 618.16776,502.48010 617.67145,499.25413 C 617.17515,496.02816 606.25648,494.53925 606.25648,494.53925 z "
+ id="path29252"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29257);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 612.64374,499.26583 C 611.89928,509.19190 613.63634,510.92896 617.11047,511.17711 C 620.58459,511.42526 624.55502,507.20668 624.05871,503.98071 C 623.56241,500.75474 612.64374,499.26583 612.64374,499.26583 z "
+ id="path29256"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29259);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 595.78136,470.39539 C 595.03690,480.32146 596.77396,482.05852 600.24809,482.30667 C 603.72221,482.55482 607.69264,478.33624 607.19633,475.11027 C 606.70003,471.88430 595.78136,470.39539 595.78136,470.39539 z "
+ id="path29258"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29261);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 600.63568,463.75263 C 599.89122,473.67870 601.62828,475.41576 605.10241,475.66391 C 608.57653,475.91206 612.54696,471.69348 612.05065,468.46751 C 611.55435,465.24154 600.63568,463.75263 600.63568,463.75263 z "
+ id="path29260"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29265);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 622.86337,426.96198 C 622.11891,436.88805 623.85597,438.62511 627.33010,438.87326 C 630.80422,439.12141 634.77465,434.90283 634.27834,431.67686 C 633.78204,428.45089 622.86337,426.96198 622.86337,426.96198 z "
+ id="path29264"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29263);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 607.15069,455.57693 C 606.40623,465.50300 608.14329,467.24006 611.61742,467.48821 C 615.09154,467.73636 619.06197,463.51778 618.56566,460.29181 C 618.06936,457.06584 607.15069,455.57693 607.15069,455.57693 z "
+ id="path29262"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29267);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 620.81944,447.65672 C 620.07498,457.58279 621.81204,459.31985 625.28617,459.56800 C 628.76029,459.81615 632.73072,455.59757 632.23441,452.37160 C 631.73811,449.14563 620.81944,447.65672 620.81944,447.65672 z "
+ id="path29266"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29269);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 620.56395,457.36536 C 619.81949,467.29143 621.55655,469.02849 625.03068,469.27664 C 628.50480,469.52479 632.47523,465.30621 631.97892,462.08024 C 631.48262,458.85427 620.56395,457.36536 620.56395,457.36536 z "
+ id="path29268"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29219);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 597.95303,455.57693 C 597.20857,465.50300 598.94563,467.24006 602.41976,467.48821 C 605.89388,467.73636 609.86431,463.51778 609.36800,460.29181 C 608.87170,457.06584 597.95303,455.57693 597.95303,455.57693 z "
+ id="path29218"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29296);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 692.00661,539.69571 C 705.09653,554.61199 710.88469,557.91423 717.75370,559.58130 C 724.62272,561.24840 725.90336,556.26291 720.26641,551.14157 C 714.62947,546.02022 692.00661,539.69571 692.00661,539.69571 z "
+ id="path29270"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29275);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 706.00056,540.30987 C 719.96650,554.40930 725.94333,557.35634 732.90040,558.60599 C 739.85748,559.85566 740.83502,554.80200 734.89939,550.03005 C 728.96376,545.25809 706.00056,540.30987 706.00056,540.30987 z "
+ id="path29274"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29279);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 704.97859,529.57926 C 718.94453,543.67869 724.92136,546.62573 731.87843,547.87538 C 738.83551,549.12505 739.81305,544.07139 733.87742,539.29944 C 727.94179,534.52748 704.97859,529.57926 704.97859,529.57926 z "
+ id="path29278"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29291);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 707.79329,509.12898 C 719.53468,525.12839 725.01332,528.92208 731.71108,531.18094 C 738.40885,533.43981 740.11872,528.58478 734.94913,522.99206 C 729.77953,517.39933 707.79329,509.12898 707.79329,509.12898 z "
+ id="path29290"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29231);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 611.23854,446.37927 C 610.49408,456.30534 612.23114,458.04240 615.70527,458.29055 C 619.17939,458.53870 623.14982,454.32012 622.65351,451.09415 C 622.15721,447.86818 611.23854,446.37927 611.23854,446.37927 z "
+ id="path29230"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29237);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 589.77733,488.66297 C 589.03287,498.58904 590.76993,500.32610 594.24406,500.57425 C 597.71818,500.82240 601.68861,496.60382 601.19230,493.37785 C 600.69600,490.15188 589.77733,488.66297 589.77733,488.66297 z "
+ id="path29236"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29249);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 597.56980,497.98837 C 596.82534,507.91444 598.56240,509.65150 602.03653,509.89965 C 605.51065,510.14780 609.48108,505.92922 608.98477,502.70325 C 608.48847,499.47728 597.56980,497.98837 597.56980,497.98837 z "
+ id="path29248"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29255);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 613.28247,505.39760 C 612.53801,515.32367 614.27507,517.06073 617.74920,517.30888 C 621.22332,517.55703 625.19375,513.33845 624.69744,510.11248 C 624.20114,506.88651 613.28247,505.39760 613.28247,505.39760 z "
+ id="path29254"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29277);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 699.61329,533.53936 C 713.57923,547.63879 719.55606,550.58583 726.51313,551.83548 C 733.47021,553.08515 734.44775,548.03149 728.51212,543.25954 C 722.57649,538.48758 699.61329,533.53936 699.61329,533.53936 z "
+ id="path29276"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29281);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 713.16227,520.87603 C 725.43418,536.47223 731.03709,540.07985 737.80692,542.11257 C 744.57675,544.14531 746.12266,539.23561 740.76822,533.81960 C 735.41378,528.40358 713.16227,520.87603 713.16227,520.87603 z "
+ id="path29280"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29283);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 718.96262,513.49785 C 731.52364,528.86217 737.19294,532.36453 743.99954,534.27048 C 750.80615,536.17644 752.26011,531.23873 746.80546,525.92365 C 741.35081,520.60857 718.96262,513.49785 718.96262,513.49785 z "
+ id="path29282"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29285);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 711.58789,503.73989 C 724.09972,519.14429 729.75780,522.66476 736.55827,524.59245 C 743.35875,526.52017 744.82849,521.58712 739.39086,516.25464 C 733.95324,510.92214 711.58789,503.73989 711.58789,503.73989 z "
+ id="path29284"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29287);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 705.48957,518.33767 C 719.45551,532.43710 725.43234,535.38414 732.38941,536.63379 C 739.34649,537.88346 740.32403,532.82980 734.38840,528.05785 C 728.45277,523.28589 705.48957,518.33767 705.48957,518.33767 z "
+ id="path29286"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29289);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 692.45955,521.02032 C 706.42549,535.11975 712.40232,538.06679 719.35939,539.31644 C 726.31647,540.56611 727.29401,535.51245 721.35838,530.74050 C 715.42275,525.96854 692.45955,521.02032 692.45955,521.02032 z "
+ id="path29288"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29293);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 685.68905,526.13014 C 699.65499,540.22957 705.63182,543.17661 712.58889,544.42626 C 719.54597,545.67593 720.52351,540.62227 714.58788,535.85032 C 708.65225,531.07836 685.68905,526.13014 685.68905,526.13014 z "
+ id="path29292"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29295);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 678.02433,535.32780 C 691.99027,549.42723 697.96710,552.37427 704.92417,553.62392 C 711.88125,554.87359 712.85879,549.81993 706.92316,545.04798 C 700.98753,540.27602 678.02433,535.32780 678.02433,535.32780 z "
+ id="path29294"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient2596);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 717.39526,535.19875 C 729.13665,551.19816 734.61529,554.99185 741.31305,557.25071 C 748.01082,559.50958 749.72069,554.65455 744.55110,549.06183 C 739.38150,543.46910 717.39526,535.19875 717.39526,535.19875 z "
+ id="path2595"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient2598);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 703.28860,541.26613 C 715.02999,557.26554 720.50863,561.05923 727.20639,563.31809 C 733.90416,565.57696 735.61403,560.72193 730.44444,555.12921 C 725.27484,549.53648 703.28860,541.26613 703.28860,541.26613 z "
+ id="path2597"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient2602);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 731.19855,528.52463 C 742.93994,544.52404 748.41858,548.31773 755.11634,550.57659 C 761.81411,552.83546 763.52398,547.98043 758.35439,542.38771 C 753.18479,536.79498 731.19855,528.52463 731.19855,528.52463 z "
+ id="path2601"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient2600);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 721.64243,528.52463 C 733.38382,544.52404 738.86246,548.31773 745.56022,550.57659 C 752.25799,552.83546 753.96786,547.98043 748.79827,542.38771 C 743.62867,536.79498 721.64243,528.52463 721.64243,528.52463 z "
+ id="path2599"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient2604);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 690.69879,542.47960 C 702.44018,558.47901 707.91882,562.27270 714.61658,564.53156 C 721.31435,566.79043 723.02422,561.93540 717.85463,556.34268 C 712.68503,550.74995 690.69879,542.47960 690.69879,542.47960 z "
+ id="path2603"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient2606);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 721.94580,533.68190 C 733.68719,549.68131 739.16583,553.47500 745.86359,555.73386 C 752.56136,557.99273 754.27123,553.13770 749.10164,547.54498 C 743.93204,541.95225 721.94580,533.68190 721.94580,533.68190 z "
+ id="path2605"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient2719);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 615.04942,511.27207 C 614.30496,521.19814 616.04202,522.93520 619.51615,523.18335 C 622.99027,523.43150 626.96070,519.21292 626.46439,515.98695 C 625.96809,512.76098 615.04942,511.27207 615.04942,511.27207 z "
+ id="path2718"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient2721);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 622.78533,514.76081 C 622.04087,524.68688 623.77793,526.42394 627.25206,526.67209 C 630.72618,526.92024 634.69661,522.70166 634.20030,519.47569 C 633.70400,516.24972 622.78533,514.76081 622.78533,514.76081 z "
+ id="path2720"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient2723);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 635.83020,515.67092 C 635.08574,525.59699 636.82280,527.33405 640.29693,527.58220 C 643.77105,527.83035 647.74148,523.61177 647.24517,520.38580 C 646.74887,517.15983 635.83020,515.67092 635.83020,515.67092 z "
+ id="path2722"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient2725);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 644.02116,521.58662 C 643.27670,531.51269 645.01376,533.24975 648.48789,533.49790 C 651.96201,533.74605 655.93244,529.52747 655.43613,526.30150 C 654.93983,523.07553 644.02116,521.58662 644.02116,521.58662 z "
+ id="path2724"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3351);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 629.91450,517.94619 C 629.17004,527.87226 630.90710,529.60932 634.38123,529.85747 C 637.85535,530.10562 641.82578,525.88704 641.32947,522.66107 C 640.83317,519.43510 629.91450,517.94619 629.91450,517.94619 z "
+ id="path3350"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3353);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 647.81327,525.53041 C 647.06881,535.45648 648.80587,537.19354 652.28000,537.44169 C 655.75412,537.68984 659.72455,533.47126 659.22824,530.24529 C 658.73194,527.01932 647.81327,525.53041 647.81327,525.53041 z "
+ id="path3352"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3355);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 654.79076,528.26074 C 654.04630,538.18681 655.78336,539.92387 659.25749,540.17202 C 662.73161,540.42017 666.70204,536.20159 666.20573,532.97562 C 665.70943,529.74965 654.79076,528.26074 654.79076,528.26074 z "
+ id="path3354"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3357);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 656.61097,522.95178 C 655.86651,532.87785 657.60357,534.61491 661.07770,534.86306 C 664.55182,535.11121 668.52225,530.89263 668.02594,527.66666 C 667.52964,524.44069 656.61097,522.95178 656.61097,522.95178 z "
+ id="path3356"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3361);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 664.34688,527.35063 C 663.60242,537.27670 665.33948,539.01376 668.81361,539.26191 C 672.28773,539.51006 676.25816,535.29148 675.76185,532.06551 C 675.26555,528.83954 664.34688,527.35063 664.34688,527.35063 z "
+ id="path3360"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3363);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 669.65584,535.99664 C 668.91138,545.92271 670.64844,547.65977 674.12257,547.90792 C 677.59669,548.15607 681.56712,543.93749 681.07081,540.71152 C 680.57451,537.48555 669.65584,535.99664 669.65584,535.99664 z "
+ id="path3362"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3359);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 649.02675,516.27766 C 648.28229,526.20373 650.01935,527.94079 653.49348,528.18894 C 656.96760,528.43709 660.93803,524.21851 660.44172,520.99254 C 659.94542,517.76657 649.02675,516.27766 649.02675,516.27766 z "
+ id="path3358"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3419);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 677.39175,470.92399 C 676.64729,480.85006 678.38435,482.58712 681.85848,482.83527 C 685.33260,483.08342 689.30303,478.86484 688.80672,475.63887 C 688.31042,472.41290 677.39175,470.92399 677.39175,470.92399 z "
+ id="path3418"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3417);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 653.88065,475.01948 C 653.13619,484.94555 654.87325,486.68261 658.34738,486.93076 C 661.82150,487.17891 665.79193,482.96033 665.29562,479.73436 C 664.79932,476.50839 653.88065,475.01948 653.88065,475.01948 z "
+ id="path3416"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3415);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 682.24565,490.03624 C 681.50119,499.96231 683.23825,501.69937 686.71238,501.94752 C 690.18650,502.19567 694.15693,497.97709 693.66062,494.75112 C 693.16432,491.52515 682.24565,490.03624 682.24565,490.03624 z "
+ id="path3414"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3413);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 692.25683,541.91234 C 691.51237,551.83841 693.24943,553.57547 696.72356,553.82362 C 700.19768,554.07177 704.16811,549.85319 703.67180,546.62722 C 703.17550,543.40125 692.25683,541.91234 692.25683,541.91234 z "
+ id="path3412"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3411);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 678.15017,536.75507 C 677.40571,546.68114 679.14277,548.41820 682.61690,548.66635 C 686.09102,548.91450 690.06145,544.69592 689.56514,541.46995 C 689.06884,538.24398 678.15017,536.75507 678.15017,536.75507 z "
+ id="path3410"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3409);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 627.03250,508.84512 C 626.28804,518.77119 628.02510,520.50825 631.49923,520.75640 C 634.97335,521.00455 638.94378,516.78597 638.44747,513.56000 C 637.95117,510.33403 627.03250,508.84512 627.03250,508.84512 z "
+ id="path3408"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3407);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 640.98747,510.21028 C 640.24301,520.13635 641.98007,521.87341 645.45420,522.12156 C 648.92832,522.36971 652.89875,518.15113 652.40244,514.92516 C 651.90614,511.69919 640.98747,510.21028 640.98747,510.21028 z "
+ id="path3406"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3405);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 666.31878,506.87322 C 665.57432,516.79929 667.31138,518.53635 670.78551,518.78450 C 674.25963,519.03265 678.23006,514.81407 677.73375,511.58810 C 677.23745,508.36213 666.31878,506.87322 666.31878,506.87322 z "
+ id="path3404"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3403);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 718.80162,513.85071 C 718.05716,523.77678 719.79422,525.51384 723.26835,525.76199 C 726.74247,526.01014 730.71290,521.79156 730.21659,518.56559 C 729.72029,515.33962 718.80162,513.85071 718.80162,513.85071 z "
+ id="path3402"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3401);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 708.79044,508.54175 C 708.04598,518.46782 709.78304,520.20488 713.25717,520.45303 C 716.73129,520.70118 720.70172,516.48260 720.20541,513.25663 C 719.70911,510.03066 708.79044,508.54175 708.79044,508.54175 z "
+ id="path3400"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3399);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 683.30745,505.96311 C 682.56299,515.88918 684.30005,517.62624 687.77418,517.87439 C 691.24830,518.12254 695.21873,513.90396 694.72242,510.67799 C 694.22612,507.45202 683.30745,505.96311 683.30745,505.96311 z "
+ id="path3398"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3397);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 697.86916,507.17659 C 697.12470,517.10266 698.86176,518.83972 702.33589,519.08787 C 705.81001,519.33602 709.78044,515.11744 709.28413,511.89147 C 708.78783,508.66550 697.86916,507.17659 697.86916,507.17659 z "
+ id="path3396"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3395);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 697.11074,530.08095 C 696.36628,540.00702 698.10334,541.74408 701.57747,541.99223 C 705.05159,542.24038 709.02202,538.02180 708.52571,534.79583 C 708.02941,531.56986 697.11074,530.08095 697.11074,530.08095 z "
+ id="path3394"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3393);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 722.59373,531.44611 C 721.84927,541.37218 723.58633,543.10924 727.06046,543.35739 C 730.53458,543.60554 734.50501,539.38696 734.00870,536.16099 C 733.51240,532.93502 722.59373,531.44611 722.59373,531.44611 z "
+ id="path3392"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3391);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 709.54886,540.39550 C 708.80440,550.32157 710.54146,552.05863 714.01559,552.30678 C 717.48971,552.55493 721.46014,548.33635 720.96383,545.11038 C 720.46753,541.88441 709.54886,540.39550 709.54886,540.39550 z "
+ id="path3390"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3389);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 686.34114,533.26632 C 685.59668,543.19239 687.33374,544.92945 690.80787,545.17760 C 694.28199,545.42575 698.25242,541.20717 697.75611,537.98120 C 697.25981,534.75523 686.34114,533.26632 686.34114,533.26632 z "
+ id="path3388"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3387);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 658.12782,518.09787 C 657.38336,528.02394 659.12042,529.76100 662.59455,530.00915 C 666.06867,530.25730 670.03910,526.03872 669.54279,522.81275 C 669.04649,519.58678 658.12782,518.09787 658.12782,518.09787 z "
+ id="path3386"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3385);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 660.40309,522.95178 C 659.65863,532.87785 661.39569,534.61491 664.86982,534.86306 C 668.34394,535.11121 672.31437,530.89263 671.81806,527.66666 C 671.32176,524.44069 660.40309,522.95178 660.40309,522.95178 z "
+ id="path3384"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3383);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 666.47047,529.32253 C 665.72601,539.24860 667.46307,540.98566 670.93720,541.23381 C 674.41132,541.48196 678.38175,537.26338 677.88544,534.03741 C 677.38914,530.81144 666.47047,529.32253 666.47047,529.32253 z "
+ id="path3382"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3381);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 673.44795,523.25515 C 672.70349,533.18122 674.44055,534.91828 677.91468,535.16643 C 681.38880,535.41458 685.35923,531.19600 684.86292,527.97003 C 684.36662,524.74406 673.44795,523.25515 673.44795,523.25515 z "
+ id="path3380"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3379);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 678.90860,526.13715 C 678.16414,536.06322 679.90120,537.80028 683.37533,538.04843 C 686.84945,538.29658 690.81988,534.07800 690.32357,530.85203 C 689.82727,527.62606 678.90860,526.13715 678.90860,526.13715 z "
+ id="path3378"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3377);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 673.75132,515.82261 C 673.00686,525.74868 674.74392,527.48574 678.21805,527.73389 C 681.69217,527.98204 685.66260,523.76346 685.16629,520.53749 C 684.66999,517.31152 673.75132,515.82261 673.75132,515.82261 z "
+ id="path3376"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3375);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 709.09381,516.27766 C 708.34935,526.20373 710.08641,527.94079 713.56054,528.18894 C 717.03466,528.43709 721.00509,524.21851 720.50878,520.99254 C 720.01248,517.76657 709.09381,516.27766 709.09381,516.27766 z "
+ id="path3374"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3373);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 694.07705,515.21587 C 693.33259,525.14194 695.06965,526.87900 698.54378,527.12715 C 702.01790,527.37530 705.98833,523.15672 705.49202,519.93075 C 704.99572,516.70478 694.07705,515.21587 694.07705,515.21587 z "
+ id="path3372"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3371);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 684.06587,516.88440 C 683.32141,526.81047 685.05847,528.54753 688.53260,528.79568 C 692.00672,529.04383 695.97715,524.82525 695.48084,521.59928 C 694.98454,518.37331 684.06587,516.88440 684.06587,516.88440 z "
+ id="path3370"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3369);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 665.25699,517.94619 C 664.51253,527.87226 666.24959,529.60932 669.72372,529.85747 C 673.19784,530.10562 677.16827,525.88704 676.67196,522.66107 C 676.17566,519.43510 665.25699,517.94619 665.25699,517.94619 z "
+ id="path3368"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3367);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 637.80210,519.91809 C 637.05764,529.84416 638.79470,531.58122 642.26883,531.82937 C 645.74295,532.07752 649.71338,527.85894 649.21707,524.63297 C 648.72077,521.40700 637.80210,519.91809 637.80210,519.91809 z "
+ id="path3366"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient3365);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 659.03793,531.59779 C 658.29347,541.52386 660.03053,543.26092 663.50466,543.50907 C 666.97878,543.75722 670.94921,539.53864 670.45290,536.31267 C 669.95660,533.08670 659.03793,531.59779 659.03793,531.59779 z "
+ id="path3364"
+ sodipodi:nodetypes="cccc" />
+ <g
+ id="BackFeathers">
+ <path
+ style="fill:url(#linearGradient29925);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 627.37393,464.98290 C 626.62947,474.90897 628.36653,476.64603 631.84066,476.89418 C 635.31478,477.14233 639.28521,472.92375 638.78890,469.69778 C 638.29260,466.47181 627.37393,464.98290 627.37393,464.98290 z "
+ id="path29924"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29923);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 641.28074,483.78285 C 640.53628,493.70892 642.27334,495.44598 645.74747,495.69413 C 649.22159,495.94228 653.19202,491.72370 652.69571,488.49773 C 652.19941,485.27176 641.28074,483.78285 641.28074,483.78285 z "
+ id="path29297"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29927);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 625.31366,451.59116 C 624.56920,461.51723 626.30626,463.25429 629.78039,463.50244 C 633.25451,463.75059 637.22494,459.53201 636.72863,456.30604 C 636.23233,453.08007 625.31366,451.59116 625.31366,451.59116 z "
+ id="path29926"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29929);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 624.54106,446.95556 C 623.79660,456.88163 625.53366,458.61869 629.00779,458.86684 C 632.48191,459.11499 636.45234,454.89641 635.95603,451.67044 C 635.45973,448.44447 624.54106,446.95556 624.54106,446.95556 z "
+ id="path29928"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29933);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 645.91634,450.81856 C 645.17188,460.74463 646.90894,462.48169 650.38307,462.72984 C 653.85719,462.97799 657.82762,458.75941 657.33131,455.53344 C 656.83501,452.30747 645.91634,450.81856 645.91634,450.81856 z "
+ id="path29932"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29937);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 667.80670,459.83223 C 667.06224,469.75830 668.79930,471.49536 672.27343,471.74351 C 675.74755,471.99166 679.71798,467.77308 679.22167,464.54711 C 678.72537,461.32114 667.80670,459.83223 667.80670,459.83223 z "
+ id="path29936"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29943);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 635.61500,468.58837 C 634.87054,478.51444 636.60760,480.25150 640.08173,480.49965 C 643.55585,480.74780 647.52628,476.52922 647.02997,473.30325 C 646.53367,470.07728 635.61500,468.58837 635.61500,468.58837 z "
+ id="path29942"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29945);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 638.70540,457.51443 C 637.96094,467.44050 639.69800,469.17756 643.17213,469.42571 C 646.64625,469.67386 650.61668,465.45528 650.12037,462.22931 C 649.62407,459.00334 638.70540,457.51443 638.70540,457.51443 z "
+ id="path29944"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29951);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 684.54638,470.90618 C 683.80192,480.83225 685.53898,482.56931 689.01311,482.81746 C 692.48723,483.06561 696.45766,478.84703 695.96135,475.62106 C 695.46505,472.39509 684.54638,470.90618 684.54638,470.90618 z "
+ id="path29950"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29947);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 626.60133,491.25133 C 625.85687,501.17740 627.59393,502.91446 631.06806,503.16261 C 634.54218,503.41076 638.51261,499.19218 638.01630,495.96621 C 637.52000,492.74024 626.60133,491.25133 626.60133,491.25133 z "
+ id="path29946"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29953);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 699.48332,485.58559 C 698.73886,495.51166 700.47592,497.24872 703.95005,497.49687 C 707.42417,497.74502 711.39460,493.52644 710.89829,490.30047 C 710.40199,487.07450 699.48332,485.58559 699.48332,485.58559 z "
+ id="path29952"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29975);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 650.29441,489.44859 C 649.54995,499.37466 651.28701,501.11172 654.76114,501.35987 C 658.23526,501.60802 662.20569,497.38944 661.70938,494.16347 C 661.21308,490.93750 650.29441,489.44859 650.29441,489.44859 z "
+ id="path29974"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29955);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 681.19844,493.31160 C 680.45398,503.23767 682.19104,504.97473 685.66517,505.22288 C 689.13929,505.47103 693.10972,501.25245 692.61341,498.02648 C 692.11711,494.80051 681.19844,493.31160 681.19844,493.31160 z "
+ id="path29954"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29973);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 653.89988,498.97733 C 653.15542,508.90340 654.89248,510.64046 658.36661,510.88861 C 661.84073,511.13676 665.81116,506.91818 665.31485,503.69221 C 664.81855,500.46624 653.89988,498.97733 653.89988,498.97733 z "
+ id="path29972"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29967);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 704.63399,502.84034 C 703.88953,512.76641 705.62659,514.50347 709.10072,514.75162 C 712.57484,514.99977 716.54527,510.78119 716.04896,507.55522 C 715.55266,504.32925 704.63399,502.84034 704.63399,502.84034 z "
+ id="path29966"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29959);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 649.00675,503.35540 C 648.26229,513.28147 649.99935,515.01853 653.47348,515.26668 C 656.94760,515.51483 660.91803,511.29625 660.42172,508.07028 C 659.92542,504.84431 649.00675,503.35540 649.00675,503.35540 z "
+ id="path29958"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29961);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 663.68616,503.35540 C 662.94170,513.28147 664.67876,515.01853 668.15289,515.26668 C 671.62701,515.51483 675.59744,511.29625 675.10113,508.07028 C 674.60483,504.84431 663.68616,503.35540 663.68616,503.35540 z "
+ id="path29960"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29965);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 697.68059,500.52254 C 696.93613,510.44861 698.67319,512.18567 702.14732,512.43382 C 705.62144,512.68197 709.59187,508.46339 709.09556,505.23742 C 708.59926,502.01145 697.68059,500.52254 697.68059,500.52254 z "
+ id="path29964"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29963);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 679.39571,500.26500 C 678.65125,510.19107 680.38831,511.92813 683.86244,512.17628 C 687.33656,512.42443 691.30699,508.20585 690.81068,504.97988 C 690.31438,501.75391 679.39571,500.26500 679.39571,500.26500 z "
+ id="path29962"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29977);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 648.49168,473.22398 C 647.74722,483.15005 649.48428,484.88711 652.95841,485.13526 C 656.43253,485.38341 660.40296,481.16483 659.90665,477.93886 C 659.41035,474.71289 648.49168,473.22398 648.49168,473.22398 z "
+ id="path29976"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29979);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 673.47243,487.13079 C 672.72797,497.05686 674.46503,498.79392 677.93916,499.04207 C 681.41328,499.29022 685.38371,495.07164 684.88740,491.84567 C 684.39110,488.61970 673.47243,487.13079 673.47243,487.13079 z "
+ id="path29978"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29989);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 671.15463,493.05406 C 670.41017,502.98013 672.14723,504.71719 675.62136,504.96534 C 679.09548,505.21349 683.06591,500.99491 682.56960,497.76894 C 682.07330,494.54297 671.15463,493.05406 671.15463,493.05406 z "
+ id="path29988"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29991);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 694.33265,496.14446 C 693.58819,506.07053 695.32525,507.80759 698.79938,508.05574 C 702.27350,508.30389 706.24393,504.08531 705.74762,500.85934 C 705.25132,497.63337 694.33265,496.14446 694.33265,496.14446 z "
+ id="path29990"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29993);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 685.06144,495.88693 C 684.31698,505.81300 686.05404,507.55006 689.52817,507.79821 C 693.00229,508.04636 696.97272,503.82778 696.47641,500.60181 C 695.98011,497.37584 685.06144,495.88693 685.06144,495.88693 z "
+ id="path29992"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29995);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 668.83683,500.26500 C 668.09237,510.19107 669.82943,511.92813 673.30356,512.17628 C 676.77768,512.42443 680.74811,508.20585 680.25180,504.97988 C 679.75550,501.75391 668.83683,500.26500 668.83683,500.26500 z "
+ id="path29994"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29997);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 720.34354,497.68967 C 719.59908,507.61574 721.33614,509.35280 724.81027,509.60095 C 728.28439,509.84910 732.25482,505.63052 731.75851,502.40455 C 731.26221,499.17858 720.34354,497.68967 720.34354,497.68967 z "
+ id="path29996"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29999);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 683.00117,464.98290 C 682.25671,474.90897 683.99377,476.64603 687.46790,476.89418 C 690.94202,477.14233 694.91245,472.92375 694.41614,469.69778 C 693.91984,466.47181 683.00117,464.98290 683.00117,464.98290 z "
+ id="path29998"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30005);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 620.93559,475.28425 C 620.19113,485.21032 621.92819,486.94738 625.40232,487.19553 C 628.87644,487.44368 632.84687,483.22510 632.35056,479.99913 C 631.85426,476.77316 620.93559,475.28425 620.93559,475.28425 z "
+ id="path30004"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30003);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 626.85886,476.31438 C 626.11440,486.24045 627.85146,487.97751 631.32559,488.22566 C 634.79971,488.47381 638.77014,484.25523 638.27383,481.02926 C 637.77753,477.80329 626.85886,476.31438 626.85886,476.31438 z "
+ id="path30002"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30009);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 622.73832,488.93352 C 621.99386,498.85959 623.73092,500.59665 627.20505,500.84480 C 630.67917,501.09295 634.64960,496.87437 634.15329,493.64840 C 633.65699,490.42243 622.73832,488.93352 622.73832,488.93352 z "
+ id="path30008"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30011);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 651.58208,498.71980 C 650.83762,508.64587 652.57468,510.38293 656.04881,510.63108 C 659.52293,510.87923 663.49336,506.66065 662.99705,503.43468 C 662.50075,500.20871 651.58208,498.71980 651.58208,498.71980 z "
+ id="path30010"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30015);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 687.63678,500.00747 C 686.89232,509.93354 688.62938,511.67060 692.10351,511.91875 C 695.57763,512.16690 699.54806,507.94832 699.05175,504.72235 C 698.55545,501.49638 687.63678,500.00747 687.63678,500.00747 z "
+ id="path30014"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30025);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 621.19312,462.66510 C 620.44866,472.59117 622.18572,474.32823 625.65985,474.57638 C 629.13397,474.82453 633.10440,470.60595 632.60809,467.37998 C 632.11179,464.15401 621.19312,462.66510 621.19312,462.66510 z "
+ id="path30024"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30023);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 623.76846,439.74462 C 623.02400,449.67069 624.76106,451.40775 628.23519,451.65590 C 631.70931,451.90405 635.67974,447.68547 635.18343,444.45950 C 634.68713,441.23353 623.76846,439.74462 623.76846,439.74462 z "
+ id="path30022"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30021);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 629.94926,431.24601 C 629.20480,441.17208 630.94186,442.90914 634.41599,443.15729 C 637.89011,443.40544 641.86054,439.18686 641.36423,435.96089 C 640.86793,432.73492 629.94926,431.24601 629.94926,431.24601 z "
+ id="path30020"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30019);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 621.19312,483.26779 C 620.44866,493.19386 622.18572,494.93092 625.65985,495.17907 C 629.13397,495.42722 633.10440,491.20864 632.60809,487.98267 C 632.11179,484.75670 621.19312,483.26779 621.19312,483.26779 z "
+ id="path30018"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29931);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 636.64513,444.12269 C 635.90067,454.04876 637.63773,455.78582 641.11186,456.03397 C 644.58598,456.28212 648.55641,452.06354 648.06010,448.83757 C 647.56380,445.61160 636.64513,444.12269 636.64513,444.12269 z "
+ id="path29930"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29935);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 657.76289,456.74183 C 657.01843,466.66790 658.75549,468.40496 662.22962,468.65311 C 665.70374,468.90126 669.67417,464.68268 669.17786,461.45671 C 668.68156,458.23074 657.76289,456.74183 657.76289,456.74183 z "
+ id="path29934"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29939);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 678.10804,466.27057 C 677.36358,476.19664 679.10064,477.93370 682.57477,478.18185 C 686.04889,478.43000 690.01932,474.21142 689.52301,470.98545 C 689.02671,467.75948 678.10804,466.27057 678.10804,466.27057 z "
+ id="path29938"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29941);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 630.20680,480.43492 C 629.46234,490.36099 631.19940,492.09805 634.67353,492.34620 C 638.14765,492.59435 642.11808,488.37577 641.62177,485.14980 C 641.12547,481.92383 630.20680,480.43492 630.20680,480.43492 z "
+ id="path29940"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29949);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 634.84240,500.00747 C 634.09794,509.93354 635.83500,511.67060 639.30913,511.91875 C 642.78325,512.16690 646.75368,507.94832 646.25737,504.72235 C 645.76107,501.49638 634.84240,500.00747 634.84240,500.00747 z "
+ id="path29948"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29957);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 658.02042,479.91985 C 657.27596,489.84592 659.01302,491.58298 662.48715,491.83113 C 665.96127,492.07928 669.93170,487.86070 669.43539,484.63473 C 668.93909,481.40876 658.02042,479.91985 658.02042,479.91985 z "
+ id="path29956"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29969);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 643.08347,504.38554 C 642.33901,514.31161 644.07607,516.04867 647.55020,516.29682 C 651.02432,516.54497 654.99475,512.32639 654.49844,509.10042 C 654.00214,505.87445 643.08347,504.38554 643.08347,504.38554 z "
+ id="path29968"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29971);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 627.88899,498.46227 C 627.14453,508.38834 628.88159,510.12540 632.35572,510.37355 C 635.82984,510.62170 639.80027,506.40312 639.30396,503.17715 C 638.80766,499.95118 627.88899,498.46227 627.88899,498.46227 z "
+ id="path29970"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29981);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 659.82315,489.44859 C 659.07869,499.37466 660.81575,501.11172 664.28988,501.35987 C 667.76400,501.60802 671.73443,497.38944 671.23812,494.16347 C 670.74182,490.93750 659.82315,489.44859 659.82315,489.44859 z "
+ id="path29980"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29983);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 640.50814,491.25133 C 639.76368,501.17740 641.50074,502.91446 644.97487,503.16261 C 648.44899,503.41076 652.41942,499.19218 651.92311,495.96621 C 651.42681,492.74024 640.50814,491.25133 640.50814,491.25133 z "
+ id="path29982"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29985);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 644.37114,478.11712 C 643.62668,488.04319 645.36374,489.78025 648.83787,490.02840 C 652.31199,490.27655 656.28242,486.05797 655.78611,482.83200 C 655.28981,479.60603 644.37114,478.11712 644.37114,478.11712 z "
+ id="path29984"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient29987);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 646.17388,467.81577 C 645.42942,477.74184 647.16648,479.47890 650.64061,479.72705 C 654.11473,479.97520 658.08516,475.75662 657.58885,472.53065 C 657.09255,469.30468 646.17388,467.81577 646.17388,467.81577 z "
+ id="path29986"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30001);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 657.50535,451.59116 C 656.76089,461.51723 658.49795,463.25429 661.97208,463.50244 C 665.44620,463.75059 669.41663,459.53201 668.92032,456.30604 C 668.42402,453.08007 657.50535,451.59116 657.50535,451.59116 z "
+ id="path30000"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30007);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 621.19312,466.78564 C 620.44866,476.71171 622.18572,478.44877 625.65985,478.69692 C 629.13397,478.94507 633.10440,474.72649 632.60809,471.50052 C 632.11179,468.27455 621.19312,466.78564 621.19312,466.78564 z "
+ id="path30006"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30013);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 660.08069,504.64307 C 659.33623,514.56914 661.07329,516.30620 664.54742,516.55435 C 668.02154,516.80250 671.99197,512.58392 671.49566,509.35795 C 670.99936,506.13198 660.08069,504.64307 660.08069,504.64307 z "
+ id="path30012"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient30017);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 640.25060,476.82945 C 639.50614,486.75552 641.24320,488.49258 644.71733,488.74073 C 648.19145,488.98888 652.16188,484.77030 651.66557,481.54433 C 651.16927,478.31836 640.25060,476.82945 640.25060,476.82945 z "
+ id="path30016"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ </g>
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient18239);fill-opacity:1.0000000;stroke:none;stroke-width:1.8314677;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="FrontWingHalo"
+ sodipodi:cx="663.84143"
+ sodipodi:cy="345.54175"
+ sodipodi:rx="12.247025"
+ sodipodi:ry="34.765747"
+ d="M 676.08846 345.54175 A 12.247025 34.765747 0 1 1 651.59441,345.54175 A 12.247025 34.765747 0 1 1 676.08846 345.54175 z"
+ transform="matrix(2.338303,-0.399655,0.732237,1.663950,-1061.241,38.78233)" />
+ <g
+ id="FrontWing">
+ <path
+ style="fill:url(#linearGradient24706);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 631.80296,445.47783 C 698.00985,349.95074 729.48401,326.06151 745.56283,321.33245 C 761.64164,316.60339 741.53143,420.02030 731.12748,430.42424 C 718.49017,439.33927 686.55658,474.87744 686.55658,474.87744 L 631.80296,445.47783 z "
+ id="FrontWingBase"
+ sodipodi:nodetypes="ccccc" />
+ <g
+ id="FrontWingLongFeathers">
+ <path
+ style="fill:url(#linearGradient32560);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 679.03509,380.43065 C 723.65735,332.52713 746.14295,313.34351 751.82129,312.66976 C 757.49963,311.99601 717.48086,361.78277 709.68871,365.51055 C 701.89655,369.23833 679.03509,380.43065 679.03509,380.43065 z "
+ id="path31935" />
+ <path
+ style="fill:url(#linearGradient32562);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 671.04316,386.66475 C 723.61996,337.14797 749.78662,317.61301 756.11909,317.23904 C 762.45156,316.86505 714.84811,368.73440 705.97319,372.31194 C 697.09825,375.88946 671.04316,386.66475 671.04316,386.66475 z "
+ id="path32561" />
+ <path
+ style="fill:url(#linearGradient32564);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 678.53611,387.57209 C 726.40585,342.91359 750.18059,325.35299 755.89219,325.07885 C 761.60378,324.80470 718.19424,371.66444 710.15999,374.83696 C 702.12574,378.00948 678.53611,387.57209 678.53611,387.57209 z "
+ id="path32563" />
+ <path
+ style="fill:url(#linearGradient32566);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 623.81780,446.88904 C 689.24049,444.48784 718.70794,446.78621 723.20393,450.31942 C 727.69991,453.85264 664.20641,460.83827 656.05704,457.97441 C 647.90766,455.11055 623.81780,446.88904 623.81780,446.88904 z "
+ id="path32565" />
+ <path
+ style="fill:url(#linearGradient32568);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 629.44759,442.90897 C 694.75190,438.30008 724.28016,439.60213 728.89288,442.98153 C 733.50560,446.36091 670.28419,455.48648 662.04276,452.89944 C 653.80132,450.31238 629.44759,442.90897 629.44759,442.90897 z "
+ id="path32567" />
+ <path
+ style="fill:url(#linearGradient32570);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 634.60405,456.24577 C 684.92857,452.38278 707.65374,454.02190 711.17581,457.45374 C 714.69786,460.88557 665.93745,469.28871 659.61433,466.60773 C 653.29121,463.92675 634.60405,456.24577 634.60405,456.24577 z "
+ id="path32569" />
+ <path
+ style="fill:url(#linearGradient35362);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 653.08248,463.35514 C 687.75506,460.64601 703.55114,462.79967 706.12974,466.30511 C 708.70834,469.81056 675.30470,477.08671 670.81822,474.26686 C 666.33174,471.44700 653.08248,463.35514 653.08248,463.35514 z "
+ id="path32571" />
+ <path
+ style="fill:url(#linearGradient32574);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 672.87844,391.66688 C 727.79561,349.07999 754.65164,332.79378 760.74578,333.03548 C 766.83992,333.27717 716.46264,378.59651 707.63757,381.19156 C 698.81250,383.78662 672.87844,391.66688 672.87844,391.66688 z "
+ id="path32573" />
+ <path
+ style="fill:url(#linearGradient32576);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 668.95417,405.35129 C 724.45635,360.64669 751.57945,343.55855 757.71772,343.82092 C 763.85599,344.08330 712.91591,391.66711 704.01461,394.38381 C 695.11331,397.10050 668.95417,405.35129 668.95417,405.35129 z "
+ id="path32575" />
+ <path
+ style="fill:url(#linearGradient32578);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 665.63994,415.43670 C 721.14212,370.73210 748.26522,353.64396 754.40349,353.90633 C 760.54176,354.16871 709.60168,401.75252 700.70038,404.46922 C 691.79908,407.18591 665.63994,415.43670 665.63994,415.43670 z "
+ id="path32577" />
+ <path
+ style="fill:url(#linearGradient32580);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 664.60980,420.84491 C 720.11198,376.14031 747.23508,359.05217 753.37335,359.31454 C 759.51162,359.57692 708.57154,407.16073 699.67024,409.87743 C 690.76894,412.59412 664.60980,420.84491 664.60980,420.84491 z "
+ id="path32579" />
+ <path
+ style="fill:url(#linearGradient32582);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 663.32213,426.51065 C 718.82431,381.80605 745.94741,364.71791 752.08568,364.98028 C 758.22395,365.24266 707.28387,412.82647 698.38257,415.54317 C 689.48127,418.25986 663.32213,426.51065 663.32213,426.51065 z "
+ id="path32581" />
+ <path
+ style="fill:url(#linearGradient32584);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 661.26186,432.69145 C 716.76404,387.98685 743.88714,370.89871 750.02541,371.16108 C 756.16368,371.42346 705.22360,419.00727 696.32230,421.72397 C 687.42100,424.44066 661.26186,432.69145 661.26186,432.69145 z "
+ id="path32583" />
+ <path
+ style="fill:url(#linearGradient32586);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 655.34683,430.74313 C 715.38299,392.34193 744.20412,378.30592 750.27742,379.23452 C 756.35071,380.16312 700.53634,421.92275 691.39232,423.65496 C 682.24831,425.38716 655.34683,430.74313 655.34683,430.74313 z "
+ id="path32585" />
+ <path
+ style="fill:url(#linearGradient32588);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 651.61454,438.74758 C 711.84013,400.64414 740.73041,386.75103 746.79903,387.70969 C 752.86765,388.66835 696.84718,430.15109 687.69469,431.83799 C 678.54221,433.52488 651.61454,438.74758 651.61454,438.74758 z "
+ id="path32587" />
+ <path
+ style="fill:url(#linearGradient32590);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 649.19925,446.06157 C 710.34387,409.45106 739.56715,396.27278 745.61035,397.38042 C 751.65356,398.48807 694.62966,438.58029 685.43845,440.04155 C 676.24724,441.50281 649.19925,446.06157 649.19925,446.06157 z "
+ id="path32589" />
+ <path
+ style="fill:url(#linearGradient32592);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 656.63887,442.82942 C 713.54874,415.88969 740.18450,407.28373 745.19253,409.29279 C 750.20054,411.30186 696.34978,442.30658 688.32253,442.36066 C 680.29529,442.41472 656.63887,442.82942 656.63887,442.82942 z "
+ id="path32591" />
+ <path
+ style="fill:url(#linearGradient32594);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 658.99673,442.25801 C 710.79935,424.33474 734.64485,419.91322 738.76587,422.67680 C 742.88689,425.44039 693.31806,447.86431 686.38542,446.67989 C 679.45280,445.49546 658.99673,442.25801 658.99673,442.25801 z "
+ id="path32593" />
+ <path
+ style="fill:url(#linearGradient32596);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 657.46297,432.19015 C 708.16904,431.44160 730.85237,434.81269 734.16682,438.81875 C 737.48127,442.82482 688.05621,448.65877 681.88555,445.28178 C 675.71490,441.90479 657.46297,432.19015 657.46297,432.19015 z "
+ id="path32595" />
+ </g>
+ <g
+ id="FrontWingShortFeathers">
+ <path
+ style="fill:url(#linearGradient31675);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 655.51927,412.27597 C 661.48633,401.00567 666.45053,399.63230 668.33606,402.58435 C 670.22159,405.53640 673.96619,410.37900 670.31172,411.65725 C 666.65723,412.93549 655.51927,412.27597 655.51927,412.27597 z "
+ id="path31674" />
+ <path
+ style="fill:url(#linearGradient31673);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 649.96991,419.67871 C 658.72605,410.40750 663.87672,410.40750 664.90685,413.75544 C 665.93699,417.10337 668.25479,422.76911 664.39179,423.02665 C 660.52878,423.28418 649.96991,419.67871 649.96991,419.67871 z "
+ id="path31672" />
+ <path
+ style="fill:url(#linearGradient31671);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 651.00004,434.61565 C 659.75618,425.34444 664.90685,425.34444 665.93698,428.69238 C 666.96712,432.04031 669.28492,437.70605 665.42192,437.96359 C 661.55891,438.22112 651.00004,434.61565 651.00004,434.61565 z "
+ id="path31670" />
+ <path
+ style="fill:url(#linearGradient31667);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 642.75897,451.09780 C 651.51511,441.82659 656.66578,441.82659 657.69591,445.17453 C 658.72605,448.52246 661.04385,454.18820 657.18085,454.44574 C 653.31784,454.70327 642.75897,451.09780 642.75897,451.09780 z "
+ id="path31666" />
+ <path
+ style="fill:url(#linearGradient31663);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 644.30417,427.14718 C 653.06031,417.87597 658.21098,417.87597 659.24111,421.22391 C 660.27125,424.57184 662.58905,430.23758 658.72605,430.49512 C 654.86304,430.75265 644.30417,427.14718 644.30417,427.14718 z "
+ id="path31662" />
+ <path
+ style="fill:url(#linearGradient31659);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 640.69870,445.94713 C 649.45484,436.67592 654.60551,436.67592 655.63564,440.02386 C 656.66578,443.37179 658.98358,449.03753 655.12058,449.29507 C 651.25757,449.55260 640.69870,445.94713 640.69870,445.94713 z "
+ id="path31658" />
+ <path
+ style="fill:url(#linearGradient31657);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 630.18462,439.26715 C 638.94076,429.99594 644.09143,429.99594 645.12156,433.34388 C 646.15170,436.69181 648.46950,442.35755 644.60650,442.61509 C 640.74349,442.87262 630.18462,439.26715 630.18462,439.26715 z "
+ id="path30411" />
+ <path
+ style="fill:url(#linearGradient31691);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 657.95345,435.90332 C 666.70959,426.63211 671.86026,426.63211 672.89039,429.98005 C 673.92053,433.32798 676.23833,438.99372 672.37533,439.25126 C 668.51232,439.50879 657.95345,435.90332 657.95345,435.90332 z "
+ id="path31690" />
+ <path
+ style="fill:url(#linearGradient31693);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 653.31784,451.87040 C 662.07398,442.59919 667.22465,442.59919 668.25478,445.94713 C 669.28492,449.29506 671.60272,454.96080 667.73972,455.21834 C 663.87671,455.47587 653.31784,451.87040 653.31784,451.87040 z "
+ id="path31692" />
+ <path
+ style="fill:url(#linearGradient31695);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 648.16717,460.11148 C 656.92331,450.84027 662.07398,450.84027 663.10411,454.18821 C 664.13425,457.53614 666.45205,463.20188 662.58905,463.45942 C 658.72604,463.71695 648.16717,460.11148 648.16717,460.11148 z "
+ id="path31694" />
+ <path
+ style="fill:url(#linearGradient31697);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 676.77618,383.39852 C 682.39505,371.95065 687.31483,370.42579 689.28994,373.31868 C 691.26506,376.21156 695.15630,380.93713 691.54272,382.32677 C 687.92912,383.71640 676.77618,383.39852 676.77618,383.39852 z "
+ id="path31696" />
+ <path
+ style="fill:url(#linearGradient31661);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 640.95623,435.90332 C 649.71237,426.63211 654.86304,426.63211 655.89317,429.98005 C 656.92331,433.32798 659.24111,438.99372 655.37811,439.25126 C 651.51510,439.50879 640.95623,435.90332 640.95623,435.90332 z "
+ id="path31660" />
+ <path
+ style="fill:url(#linearGradient31665);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 638.12336,431.52525 C 646.87950,422.25404 652.03017,422.25404 653.06030,425.60198 C 654.09044,428.94991 656.40824,434.61565 652.54524,434.87319 C 648.68223,435.13072 638.12336,431.52525 638.12336,431.52525 z "
+ id="path31664" />
+ <path
+ style="fill:url(#linearGradient31669);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 654.34798,444.65946 C 663.10412,435.38825 668.25479,435.38825 669.28492,438.73619 C 670.31506,442.08412 672.63286,447.74986 668.76986,448.00740 C 664.90685,448.26493 654.34798,444.65946 654.34798,444.65946 z "
+ id="path31668" />
+ <path
+ style="fill:url(#linearGradient31677);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 662.68214,403.00236 C 666.94187,390.98237 671.65272,388.89976 673.94859,391.54529 C 676.24447,394.19081 680.65523,398.43557 677.22623,400.23308 C 673.79721,402.03059 662.68214,403.00236 662.68214,403.00236 z "
+ id="path31676" />
+ <path
+ style="fill:url(#linearGradient31679);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 670.87721,393.72162 C 674.67836,381.54884 679.30691,379.28920 681.70138,381.84582 C 684.09586,384.40244 688.66432,388.47700 685.30590,390.40317 C 681.94747,392.32933 670.87721,393.72162 670.87721,393.72162 z "
+ id="path31678" />
+ <path
+ style="fill:url(#linearGradient31681);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 659.75618,416.33077 C 668.51232,407.05956 673.66299,407.05956 674.69312,410.40750 C 675.72326,413.75543 678.04106,419.42117 674.17806,419.67871 C 670.31505,419.93624 659.75618,416.33077 659.75618,416.33077 z "
+ id="path31680" />
+ <path
+ style="fill:url(#linearGradient31683);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 666.45205,406.02943 C 675.20819,396.75822 680.35886,396.75822 681.38899,400.10616 C 682.41913,403.45409 684.73693,409.11983 680.87393,409.37737 C 677.01092,409.63490 666.45205,406.02943 666.45205,406.02943 z "
+ id="path31682" />
+ <path
+ style="fill:url(#linearGradient31685);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 672.63286,395.47055 C 681.38900,386.19934 686.53967,386.19934 687.56980,389.54728 C 688.59994,392.89521 690.91774,398.56095 687.05474,398.81849 C 683.19173,399.07602 672.63286,395.47055 672.63286,395.47055 z "
+ id="path31684" />
+ <path
+ style="fill:url(#linearGradient31687);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 658.21098,425.85951 C 666.96712,416.58830 672.11779,416.58830 673.14792,419.93624 C 674.17806,423.28417 676.49586,428.94991 672.63286,429.20745 C 668.76985,429.46498 658.21098,425.85951 658.21098,425.85951 z "
+ id="path31686" />
+ <path
+ style="fill:url(#linearGradient31699);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 683.31625,376.44614 C 688.08356,364.61829 692.87876,362.73800 695.05999,365.47883 C 697.24122,368.21964 701.46737,372.64823 697.96499,374.29821 C 694.46260,375.94819 683.31625,376.44614 683.31625,376.44614 z "
+ id="path31698" />
+ <path
+ style="fill:url(#linearGradient31701);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 678.04106,386.19934 C 686.79720,376.92813 691.94787,376.92813 692.97800,380.27607 C 694.00814,383.62400 696.32594,389.28974 692.46294,389.54728 C 688.59993,389.80481 678.04106,386.19934 678.04106,386.19934 z "
+ id="path31700" />
+ <path
+ style="fill:url(#linearGradient33239);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 632.57646,453.71217 C 638.54352,442.44187 643.50772,441.06850 645.39325,444.02055 C 647.27878,446.97260 651.02338,451.81520 647.36891,453.09345 C 643.71442,454.37169 632.57646,453.71217 632.57646,453.71217 z "
+ id="path33238" />
+ <path
+ style="fill:url(#linearGradient33241);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 626.39565,450.87930 C 632.36271,439.60900 637.32691,438.23563 639.21244,441.18768 C 641.09797,444.13973 644.84257,448.98233 641.18810,450.26058 C 637.53361,451.53882 626.39565,450.87930 626.39565,450.87930 z "
+ id="path33240" />
+ <path
+ style="fill:url(#linearGradient33243);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 635.40932,463.49844 C 641.37638,452.22814 646.34058,450.85477 648.22611,453.80682 C 650.11164,456.75887 653.85624,461.60147 650.20177,462.87972 C 646.54728,464.15796 635.40932,463.49844 635.40932,463.49844 z "
+ id="path33242" />
+ <path
+ style="fill:url(#linearGradient33245);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 644.16547,461.95324 C 650.13253,450.68294 655.09673,449.30957 656.98226,452.26162 C 658.86779,455.21367 662.61239,460.05627 658.95792,461.33452 C 655.30343,462.61276 644.16547,461.95324 644.16547,461.95324 z "
+ id="path33244" />
+ <path
+ style="fill:url(#linearGradient33247);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 646.74080,470.19432 C 652.70786,458.92402 657.67206,457.55065 659.55759,460.50270 C 661.44312,463.45475 665.18772,468.29735 661.53325,469.57560 C 657.87876,470.85384 646.74080,470.19432 646.74080,470.19432 z "
+ id="path33246" />
+ </g>
+ </g>
+ <g
+ id="FrontWingSwoosh">
+ <path
+ style="fill:url(#radialGradient4143);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 733.10739,293.85120 C 808.88563,341.05589 740.93444,476.67846 631.50566,498.52647 L 642.79758,429.45469 L 733.10739,293.85120 z "
+ id="path4142"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#radialGradient17593);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 745.08329,311.52412 C 809.02101,371.89671 767.70669,481.93255 645.37244,486.92444 L 654.24673,446.86423 L 745.08329,311.52412 z "
+ id="path17592"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#radialGradient17603);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 739.50530,339.44151 C 797.13436,374.89303 753.98501,466.59934 644.55623,488.44735 L 652.35602,464.77330 L 739.50530,339.44151 z "
+ id="path17602"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#radialGradient17605);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 726.20618,379.26109 C 762.97691,414.39148 764.99866,475.19535 655.56988,497.04336 L 657.45991,462.35566 L 726.20618,379.26109 z "
+ id="path17604"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ </g>
+ <g
+ id="g2585"
+ transform="matrix(0.984584,-0.803347,0.691693,1.069070,524.7468,788.9838)">
+ <path
+ style="fill:url(#linearGradient2588);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 43.495157,164.66019 C 276.50486,388.34951 338.64079,376.95793 423.55988,385.24272 C 508.47898,393.52751 694.88669,258.89967 724.91909,252.68608 C 754.95149,246.47249 752.88029,251.65048 765.30749,256.82848 C 748.73789,210.22653 666.92559,97.346281 611.00319,62.135921 C 555.08089,26.925563 404.91910,-13.462777 280.64726,19.676373 C 198.83496,38.317153 115.98706,135.66343 43.495157,164.66019 z "
+ id="path2586"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#080762;fill-opacity:0.053475920;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 449.21875,12.343750 C 372.55367,131.34626 351.03163,190.15459 345.31250,234.71875 C 296.43407,228.74167 250.88253,220.20102 210.06250,211.18750 C 210.18144,159.47011 307.03125,15.562500 307.03125,15.562500 C 231.73758,132.43627 211.35292,167.53740 205.28125,210.12500 C 111.44954,189.10115 46.625000,165.87500 46.625000,165.87500 C 95.278072,186.13432 149.62093,202.52998 204.53125,215.34375 C 205.73417,244.61892 210.49875,254.89076 234.81250,324.93750 C 212.11540,236.98624 209.34258,255.80079 209.75000,216.50000 C 255.62272,227.00430 301.69759,235.02520 345.12500,240.43750 C 346.64554,269.96362 353.89092,311.29960 377.53125,379.40625 C 355.00622,292.12181 351.03030,281.31222 351.31250,241.25000 C 399.42652,247.01704 443.95673,249.65958 480.81250,249.21875 C 482.09933,277.29978 486.10250,295.38014 509.81250,363.68750 C 486.91509,274.96003 484.85720,289.97427 485.34375,249.09375 C 521.11851,248.40068 549.34122,244.76072 565.71875,238.12500 C 576.82659,233.17150 593.20091,230.91691 611.78125,230.34375 C 609.02322,239.26769 604.15131,267.42325 620.50000,307.75000 C 605.49195,257.72323 612.64130,247.27739 614.87500,230.31250 C 668.07068,229.21004 737.88540,241.30570 757.40625,245.12500 C 735.98732,234.66460 664.92792,227.25580 615.21875,228.21875 C 615.22870,228.11904 615.24045,228.03777 615.25000,227.93750 C 616.41525,215.70752 675.84375,123.06250 675.84375,123.06250 C 614.59722,216.66570 616.91444,216.32105 612.43750,228.21875 C 605.01927,228.41116 598.05690,228.77061 591.93750,229.37500 C 561.08150,232.42251 544.14471,244.86783 485.50000,246.00000 C 481.12067,196.29050 582.62500,47.906250 582.62500,47.906250 C 504.83281,168.65828 486.07119,201.47841 480.75000,246.09375 C 450.57954,246.34478 409.84371,243.69470 351.53125,235.56250 C 347.17084,177.77103 449.21875,12.343750 449.21875,12.343750 z "
+ id="path2587"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/hereGear4.svg b/PerformanceTests/PageLoad/svg/files/hereGear4.svg
new file mode 100644
index 000000000..741554d69
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/hereGear4.svg
@@ -0,0 +1,2808 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- weAreGear version 0.4.2, Copyright (C) 2004 gg3po
+ weAreGear comes with ABSOLUTELY NO WARRANTY; for details
+ read the accompanying file named "LICENSE".
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; refer to the file "LICENSE"
+ for details. -->
+<svg
+ width="1024.0000pt"
+ height="768.00000pt"
+ id="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.40"
+ sodipodi:docbase="/home/troy/Gg3/art/wallpapers/hereGear/hereGear"
+ sodipodi:docname="hereGear4.svg"
+ inkscape:export-filename="/home/troy/Gg3/art/wallpapers/hereGear/hereGear4.png"
+ inkscape:export-xdpi="72.000000"
+ inkscape:export-ydpi="72.000000"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient7439">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="0.0000000"
+ id="stop7440" />
+ <stop
+ style="stop-color:#003eff;stop-opacity:0.39215687;"
+ offset="1.0000000"
+ id="stop7441" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2450">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.39215687;"
+ offset="0.0000000"
+ id="stop2451" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2452" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1961">
+ <stop
+ style="stop-color:#ebffe1;stop-opacity:0.49019608;"
+ offset="0.0000000"
+ id="stop1962" />
+ <stop
+ style="stop-color:#afafe1;stop-opacity:0.29411766;"
+ offset="1.0000000"
+ id="stop1963" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2945">
+ <stop
+ style="stop-color:#ffebff;stop-opacity:0.39215687;"
+ offset="0.0000000"
+ id="stop2946" />
+ <stop
+ style="stop-color:#ffeb9f;stop-opacity:0.19607843;"
+ offset="1.0000000"
+ id="stop2947" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2935">
+ <stop
+ style="stop-color:#3273af;stop-opacity:0.39215687;"
+ offset="0.0000000"
+ id="stop2936" />
+ <stop
+ style="stop-color:#c8ffc8;stop-opacity:0.39215687;"
+ offset="1.0000000"
+ id="stop2937" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2773">
+ <stop
+ style="stop-color:#59a1ff;stop-opacity:0.68627453;"
+ offset="0.0000000"
+ id="stop2774" />
+ <stop
+ style="stop-color:#afe1c8;stop-opacity:0.68627453;"
+ offset="0.25000000"
+ id="stop2776" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.49019608;"
+ offset="1.0000000"
+ id="stop2778" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2479">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.29411766;"
+ offset="0.0000000"
+ id="stop2480" />
+ <stop
+ style="stop-color:#e1fff6;stop-opacity:0.0000000;"
+ offset="0.25000000"
+ id="stop2483" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.19607843;"
+ offset="0.64999998"
+ id="stop2482" />
+ <stop
+ style="stop-color:#e1fff6;stop-opacity:0.0000000;"
+ offset="0.75000000"
+ id="stop2484" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2481" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2461">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.39215687;"
+ offset="0.0000000"
+ id="stop2462" />
+ <stop
+ style="stop-color:#fff5c8;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2463" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2454">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.39215687;"
+ offset="0.0000000"
+ id="stop2455" />
+ <stop
+ style="stop-color:#ffebff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2456" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2425">
+ <stop
+ style="stop-color:#96c8ff;stop-opacity:0.78431374;"
+ offset="0.0000000"
+ id="stop2426" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.78431374;"
+ offset="1.0000000"
+ id="stop2427" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2098">
+ <stop
+ style="stop-color:#7dafc8;stop-opacity:0.19607843;"
+ offset="0.0000000"
+ id="stop2099" />
+ <stop
+ style="stop-color:#ffebff;stop-opacity:0.29411766;"
+ offset="0.50000000"
+ id="stop2101" />
+ <stop
+ style="stop-color:#ffe1af;stop-opacity:0.19607843;"
+ offset="1.0000000"
+ id="stop2100" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2089">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.78431374;"
+ offset="0.0000000"
+ id="stop2090" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2091" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2053">
+ <stop
+ style="stop-color:#59a1ff;stop-opacity:0.68627453;"
+ offset="0.0000000"
+ id="stop2054" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.58823532;"
+ offset="0.079999998"
+ id="stop2059" />
+ <stop
+ style="stop-color:#afe1c8;stop-opacity:0.68627453;"
+ offset="0.25000000"
+ id="stop2055" />
+ <stop
+ style="stop-color:#7d96e1;stop-opacity:0.68627453;"
+ offset="0.89999998"
+ id="stop2058" />
+ <stop
+ style="stop-color:#00197d;stop-opacity:0.49019608;"
+ offset="1.0000000"
+ id="stop2056" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1881">
+ <stop
+ style="stop-color:#59a1ff;stop-opacity:0.78431374;"
+ offset="0.0000000"
+ id="stop1882" />
+ <stop
+ style="stop-color:#afe1c8;stop-opacity:0.68627453;"
+ offset="0.50000000"
+ id="stop1885" />
+ <stop
+ style="stop-color:#7d96e1;stop-opacity:0.78431374;"
+ offset="1.0000000"
+ id="stop1883" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1878">
+ <stop
+ style="stop-color:#003c00;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1879" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop1880" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1870">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1871" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1872" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient1873"
+ gradientTransform="matrix(-1.093807,-1.343851,-0.536088,0.414414,-74.70740,-56.93361)"
+ x1="-417.82932"
+ y1="-655.12543"
+ x2="-505.15543"
+ y2="-104.87656"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1881"
+ id="linearGradient1884"
+ gradientTransform="matrix(-1.844135,-2.265702,-0.909565,0.703121,1383.586,224.1969)"
+ x1="232.33205"
+ y1="605.40002"
+ x2="19.274563"
+ y2="600.41986"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1881"
+ id="linearGradient2044"
+ gradientTransform="matrix(0.956969,1.860867e-3,-2.617506e-3,1.346081,-53.95926,-119.1654)"
+ x1="427.97250"
+ y1="229.67618"
+ x2="819.98743"
+ y2="628.56323"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2052"
+ gradientTransform="matrix(0.931347,1.811017e-3,-2.689564e-3,1.383113,-140.1857,-119.3331)"
+ x1="619.25732"
+ y1="253.41089"
+ x2="758.96655"
+ y2="614.74774"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2068"
+ gradientTransform="matrix(0.939831,1.827546e-3,-2.665267e-3,1.370630,-140.1857,-119.3331)"
+ x1="539.24023"
+ y1="186.75479"
+ x2="794.31555"
+ y2="713.80432"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2080"
+ gradientTransform="matrix(-1.955129,-2.402071,-0.857928,0.663203,1383.588,224.1969)"
+ x1="50.277527"
+ y1="667.90436"
+ x2="159.20154"
+ y2="666.24957"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="radialGradient2088"
+ gradientTransform="scale(1.015478,0.984758)"
+ cx="-135.53165"
+ cy="126.23467"
+ fx="-135.53165"
+ fy="126.23467"
+ r="750.11346"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2098"
+ id="linearGradient2118"
+ gradientTransform="matrix(1.495686,0.000000,0.000000,0.729857,-45.18242,-37.84368)"
+ x1="697.90295"
+ y1="780.61786"
+ x2="-217.92227"
+ y2="1082.0833"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2168"
+ gradientTransform="matrix(-0.457973,-0.562666,-3.662576,2.831278,1383.588,224.1969)"
+ x1="364.50186"
+ y1="170.44592"
+ x2="363.42773"
+ y2="-7.4839907"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2256"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.816079,-1.002634,-2.055392,1.588877,1383.589,224.1971)"
+ x1="246.03835"
+ y1="316.28207"
+ x2="282.12076"
+ y2="-1.3935436" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2257"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.816080,-1.002634,-2.055392,1.588877,1383.589,224.1971)"
+ x1="246.03835"
+ y1="316.28207"
+ x2="282.12076"
+ y2="-1.3935436" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2258"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.816080,-1.002634,-2.055392,1.588877,1383.589,224.1971)"
+ x1="246.03835"
+ y1="316.28207"
+ x2="282.12076"
+ y2="-1.3935436" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2259"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.816080,-1.002634,-2.055392,1.588877,1383.589,224.1971)"
+ x1="246.03835"
+ y1="316.28207"
+ x2="282.12076"
+ y2="-1.3935436" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.816080,-1.002634,-2.055392,1.588877,1383.589,224.1971)"
+ x1="246.03835"
+ y1="316.28207"
+ x2="282.12076"
+ y2="-1.3935436" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.816080,-1.002634,-2.055392,1.588877,1383.589,224.1971)"
+ x1="246.03835"
+ y1="316.28207"
+ x2="282.12076"
+ y2="-1.3935436" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.816080,-1.002634,-2.055392,1.588877,1383.589,224.1971)"
+ x1="246.03835"
+ y1="316.28207"
+ x2="282.12076"
+ y2="-1.3935436" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2263"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.816080,-1.002634,-2.055392,1.588877,1383.589,224.1971)"
+ x1="246.03835"
+ y1="316.28207"
+ x2="282.12076"
+ y2="-1.3935436" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.816080,-1.002634,-2.055392,1.588877,1383.589,224.1971)"
+ x1="246.03835"
+ y1="316.28207"
+ x2="282.12076"
+ y2="-1.3935436" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2265"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.816080,-1.002634,-2.055392,1.588877,1383.589,224.1971)"
+ x1="246.03835"
+ y1="316.28207"
+ x2="282.12076"
+ y2="-1.3935436" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2425"
+ id="linearGradient2424"
+ gradientTransform="matrix(1.004430,1.953151e-3,-2.272290e-3,1.168532,-74.70750,-56.93363)"
+ x1="420.08694"
+ y1="220.40390"
+ x2="525.44885"
+ y2="220.40390"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2425"
+ id="linearGradient2431"
+ gradientTransform="matrix(1.401166,2.724638e-3,-1.628909e-3,0.837667,-74.70750,-56.93363)"
+ x1="313.42242"
+ y1="562.69238"
+ x2="410.00854"
+ y2="562.69238"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2425"
+ id="linearGradient2435"
+ gradientTransform="matrix(0.929701,1.807827e-3,-2.454864e-3,1.262456,-74.70750,-56.93363)"
+ x1="593.53979"
+ y1="484.41699"
+ x2="678.66858"
+ y2="484.41699"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2425"
+ id="linearGradient2439"
+ gradientTransform="matrix(1.039212,2.020791e-3,-2.196217e-3,1.129423,-74.70750,-56.93363)"
+ x1="771.60858"
+ y1="688.11121"
+ x2="669.71338"
+ y2="624.73291"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2425"
+ id="linearGradient2443"
+ gradientTransform="matrix(1.354480,2.633857e-3,-1.685025e-3,0.866540,-74.70750,-56.93363)"
+ x1="641.60443"
+ y1="795.35791"
+ x2="581.97894"
+ y2="774.56415"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2461"
+ id="radialGradient2472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.930605,1.074570)"
+ cx="148.64369"
+ cy="215.40688"
+ fx="148.64369"
+ fy="215.40688"
+ r="209.06158" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2454"
+ id="radialGradient2473"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.930605,1.074570)"
+ cx="148.64369"
+ cy="215.40688"
+ fx="148.64369"
+ fy="215.40688"
+ r="209.06158" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2516"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856399,0.000000,0.000000,1.281543,-59.77571,-58.22444)"
+ x1="539.24023"
+ y1="186.75479"
+ x2="794.31555"
+ y2="713.80432" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2518"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856399,0.000000,0.000000,1.281543,-59.77571,-58.22444)"
+ x1="539.24023"
+ y1="186.75479"
+ x2="794.31555"
+ y2="713.80432" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2520"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.897107,1.744473e-3,-2.544087e-3,1.308321,-74.70740,-56.93361)"
+ x1="537.61957"
+ y1="260.72821"
+ x2="494.64548"
+ y2="324.19504" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2522"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856399,0.000000,0.000000,1.281543,-59.77571,-58.22444)"
+ x1="539.24023"
+ y1="186.75479"
+ x2="794.31555"
+ y2="713.80432" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient2524"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856399,0.000000,0.000000,1.281543,-59.77571,-58.22444)"
+ x1="539.24023"
+ y1="186.75479"
+ x2="794.31555"
+ y2="713.80432" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2526"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.897107,1.744473e-3,-2.544087e-3,1.308321,-74.70740,-56.93361)"
+ x1="698.38739"
+ y1="466.00082"
+ x2="715.07495"
+ y2="552.34406" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient2772"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient2789"
+ gradientTransform="scale(1.045899,0.956115)"
+ x1="405.72488"
+ y1="618.38208"
+ x2="175.90352"
+ y2="845.90790"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2795"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.004430,1.953181e-3,-2.272257e-3,1.168530,-74.70740,-56.93361)"
+ x1="484.17929"
+ y1="175.13362"
+ x2="490.97473"
+ y2="218.25113" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2801"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.401165,2.724647e-3,-1.628897e-3,0.837666,-74.70740,-56.93361)"
+ x1="323.45706"
+ y1="523.94977"
+ x2="354.40897"
+ y2="564.62714" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2810"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.889011,1.728716e-3,-2.567249e-3,1.320238,-74.70740,-56.93361)"
+ x1="660.19598"
+ y1="331.22775"
+ x2="655.75122"
+ y2="409.65509" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2816"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.929701,1.807847e-3,-2.454883e-3,1.262455,-74.70740,-56.93361)"
+ x1="640.95593"
+ y1="442.72772"
+ x2="653.02649"
+ y2="476.42749" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2822"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.039211,2.020789e-3,-2.196205e-3,1.129420,-74.70740,-56.93361)"
+ x1="704.12708"
+ y1="681.46759"
+ x2="747.26471"
+ y2="643.74097" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2838"
+ gradientTransform="matrix(0.858948,1.670254e-3,-2.657117e-3,1.366446,-74.70740,-56.93361)"
+ x1="670.88617"
+ y1="136.72298"
+ x2="662.88580"
+ y2="169.31195"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2844"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.354477,2.633844e-3,-1.685045e-3,0.866539,-74.70740,-56.93361)"
+ x1="591.72113"
+ y1="817.44165"
+ x2="600.73022"
+ y2="790.72595" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2850"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.155982,-1.420239,-0.507255,0.392123,-74.70740,-56.93361)"
+ x1="-391.43439"
+ y1="-620.46088"
+ x2="-385.28995"
+ y2="-345.62100" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2856"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.270781,-0.332680,-2.165521,1.674009,-74.70740,-56.93361)"
+ x1="-1938.4592"
+ y1="-348.51263"
+ x2="-1957.5275"
+ y2="-169.78485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2872"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.482511,-0.592812,-1.215262,0.939432,-74.70740,-56.93361)"
+ x1="-912.24982"
+ y1="-519.59546"
+ x2="-1033.9797"
+ y2="-277.43573" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2878"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.482511,-0.592812,-1.215262,0.939432,-74.70740,-56.93361)"
+ x1="-756.69940"
+ y1="-569.70312"
+ x2="-865.30109"
+ y2="-379.86578" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2884"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.482511,-0.592812,-1.215262,0.939432,-74.70740,-56.93361)"
+ x1="-1035.4674"
+ y1="-349.59106"
+ x2="-1134.5068"
+ y2="-264.93951" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2890"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.482511,-0.592812,-1.215262,0.939432,-74.70740,-56.93361)"
+ x1="-1177.7841"
+ y1="-523.05115"
+ x2="-1275.1829"
+ y2="-347.83279" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2945"
+ id="linearGradient2948"
+ gradientTransform="scale(0.931408,1.073643)"
+ x1="179.74446"
+ y1="33.376884"
+ x2="24.688267"
+ y2="385.36835"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2964"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.930385,0.000000,0.000000,1.074824,-50.00000,-25.00000)"
+ x1="1079.8514"
+ y1="-45.454845"
+ x2="806.46643"
+ y2="196.44887" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient2980"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.026475,0.000000,0.000000,1.045569,-24.94386,82.77964)"
+ x1="1196.6853"
+ y1="51.133415"
+ x2="1048.9241"
+ y2="199.58394" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient3000"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.254041,0.000000,0.000000,1.145274,-2.775750,-176.7212)"
+ x1="231.04065"
+ y1="783.89014"
+ x2="125.59918"
+ y2="965.57831" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient3016"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.990265,0.000000,0.000000,1.009830,-15.00000,-2.500000)"
+ x1="203.43379"
+ y1="645.93927"
+ x2="142.48607"
+ y2="767.90222" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient3023"
+ gradientTransform="matrix(0.990887,0.000000,0.000000,1.009197,17.50000,100.0000)"
+ x1="1216.6559"
+ y1="152.53973"
+ x2="1160.8906"
+ y2="233.68979"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient3037"
+ gradientTransform="matrix(0.991082,0.000000,0.000000,1.008998,-50.00000,-50.00000)"
+ x1="766.41949"
+ y1="435.23752"
+ x2="700.17804"
+ y2="533.09308"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient3041"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.495738,0.000000,0.000000,0.505532,649.4962,-248.1511)"
+ x1="203.43379"
+ y1="645.93927"
+ x2="142.48607"
+ y2="767.90222" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient3051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.431533,0.698552)"
+ x1="561.57184"
+ y1="353.34991"
+ x2="374.40704"
+ y2="1088.2789" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient1949"
+ gradientTransform="scale(1.000003,0.999997)"
+ x1="790.23083"
+ y1="370.08109"
+ x2="557.50000"
+ y2="938.23468"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient1951"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.000003,0.000000,0.000000,0.999997,-150.0000,-200.0000)"
+ x1="577.44836"
+ y1="497.08014"
+ x2="504.30423"
+ y2="1051.8656" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1961"
+ id="linearGradient1960"
+ x1="423.47177"
+ y1="683.29407"
+ x2="442.15967"
+ y2="1119.3008"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2461"
+ id="radialGradient2019"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.930605,1.074570)"
+ cx="148.64369"
+ cy="215.40688"
+ fx="148.64369"
+ fy="215.40688"
+ r="209.06158" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2454"
+ id="radialGradient2020"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.930605,1.074570)"
+ cx="148.64369"
+ cy="215.40688"
+ fx="148.64369"
+ fy="215.40688"
+ r="209.06158" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2479"
+ id="radialGradient2021"
+ gradientUnits="userSpaceOnUse"
+ cx="687.95392"
+ cy="779.25073"
+ fx="687.95392"
+ fy="779.25073"
+ r="77.463974" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2479"
+ id="radialGradient6601"
+ gradientUnits="userSpaceOnUse"
+ cx="687.95392"
+ cy="779.25073"
+ fx="687.95392"
+ fy="779.25073"
+ r="77.463974" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2454"
+ id="radialGradient6602"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.930605,1.074570)"
+ cx="148.64369"
+ cy="215.40688"
+ fx="148.64369"
+ fy="215.40688"
+ r="209.06158" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5001"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5002"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5003"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5004"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5005"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5006"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5007"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5008"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5009"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5010"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.713086,1.402355)"
+ x1="264.96246"
+ y1="239.60381"
+ x2="219.03474"
+ y2="465.78464" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient5011"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.931347,1.811017e-3,-2.689564e-3,1.383113,-140.1857,-119.3331)"
+ x1="619.25732"
+ y1="253.41089"
+ x2="758.96655"
+ y2="614.74774" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient5012"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.931347,1.811017e-3,-2.689564e-3,1.383113,-140.1857,-119.3331)"
+ x1="619.25732"
+ y1="253.41089"
+ x2="758.96655"
+ y2="614.74774" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient5013"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.939831,1.827546e-3,-2.665267e-3,1.370630,-140.1857,-119.3331)"
+ x1="539.24023"
+ y1="186.75479"
+ x2="794.31555"
+ y2="713.80432" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient5014"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.939831,1.827546e-3,-2.665267e-3,1.370630,-140.1857,-119.3331)"
+ x1="539.24023"
+ y1="186.75479"
+ x2="794.31555"
+ y2="713.80432" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2053"
+ id="linearGradient5015"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.939831,1.827546e-3,-2.665267e-3,1.370630,-140.1857,-119.3331)"
+ x1="539.24023"
+ y1="186.75479"
+ x2="794.31555"
+ y2="713.80432" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5017"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.045899,0.956115)"
+ x1="405.72488"
+ y1="618.38208"
+ x2="175.90352"
+ y2="845.90790" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.045899,0.956115)"
+ x1="405.72488"
+ y1="618.38208"
+ x2="175.90352"
+ y2="845.90790" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient5019"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.045899,0.956115)"
+ x1="405.72488"
+ y1="618.38208"
+ x2="175.90352"
+ y2="845.90790" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2479"
+ id="radialGradient5041"
+ gradientUnits="userSpaceOnUse"
+ cx="687.95392"
+ cy="779.25073"
+ fx="687.95392"
+ fy="779.25073"
+ r="77.463974" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2461"
+ id="radialGradient5045"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.930605,1.074570)"
+ cx="148.64369"
+ cy="215.40688"
+ fx="148.64369"
+ fy="215.40688"
+ r="209.06158" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2479"
+ id="radialGradient5046"
+ gradientUnits="userSpaceOnUse"
+ cx="687.95392"
+ cy="779.25073"
+ fx="687.95392"
+ fy="779.25073"
+ r="77.463974" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="radialGradient6558"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.267811,0.788761)"
+ spreadMethod="reflect"
+ cx="1060.5597"
+ cy="1314.7985"
+ fx="1070.5283"
+ fy="1330.9014"
+ r="848.71191" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient6564"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.990606,0.000000,0.000000,1.009483,-25.00000,-25.00000)"
+ x1="445.78503"
+ y1="631.07172"
+ x2="409.34854"
+ y2="715.03717" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient6568"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.991082,0.000000,0.000000,1.008998,-50.00000,-50.00000)"
+ x1="766.41949"
+ y1="435.23752"
+ x2="700.17804"
+ y2="533.09308" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient6572"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.026475,0.000000,0.000000,1.045569,-24.94386,82.77964)"
+ x1="1196.6853"
+ y1="51.133415"
+ x2="1048.9241"
+ y2="199.58394" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2089"
+ id="linearGradient6576"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.990887,0.000000,0.000000,1.009197,17.50000,100.0000)"
+ x1="1216.6559"
+ y1="152.53973"
+ x2="1160.8906"
+ y2="233.68979" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2945"
+ id="linearGradient6580"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.931408,1.073643)"
+ x1="179.74446"
+ y1="33.376884"
+ x2="24.688267"
+ y2="385.36835" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient6581"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.930385,0.000000,0.000000,1.074824,-50.00000,-25.00000)"
+ x1="1079.8514"
+ y1="-45.454845"
+ x2="806.46643"
+ y2="196.44887" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6608"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.045899,0.956115)"
+ x1="405.72488"
+ y1="618.38208"
+ x2="175.90352"
+ y2="845.90790" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.045899,0.956115)"
+ x1="405.72488"
+ y1="618.38208"
+ x2="175.90352"
+ y2="845.90790" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6610"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.045899,0.956115)"
+ x1="405.72488"
+ y1="618.38208"
+ x2="175.90352"
+ y2="845.90790" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6611"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.045899,0.956115)"
+ x1="405.72488"
+ y1="618.38208"
+ x2="175.90352"
+ y2="845.90790" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6616"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6617"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6618"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6619"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6625"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6626"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6627"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6628"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6642"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,2.838008e-15,2.873353e-15)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6643"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,2.838008e-15,2.873353e-15)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6644"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,2.838008e-15,2.873353e-15)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6651"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6652"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6653"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6654"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,0.000000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6659"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,0.000000,-30.00000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient6660"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.645523,-1.042125,-0.630151,0.531823,10.00000,-50.00000)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2945"
+ id="linearGradient6663"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.931408,1.073643)"
+ x1="179.74446"
+ y1="33.376884"
+ x2="24.688267"
+ y2="385.36835" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2945"
+ id="linearGradient6667"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.931408,1.073643)"
+ x1="179.74446"
+ y1="33.376884"
+ x2="24.688267"
+ y2="385.36835" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient6668"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.930385,0.000000,0.000000,1.074824,-50.00000,-25.00000)"
+ x1="1079.8514"
+ y1="-45.454845"
+ x2="806.46643"
+ y2="196.44887" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2773"
+ id="linearGradient7446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.627983,-1.115746,-0.676795,0.523722,0.439028,-3.288130)"
+ x1="-534.20917"
+ y1="-188.12878"
+ x2="-573.49042"
+ y2="269.07101" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2461"
+ id="radialGradient7462"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.930605,1.074570)"
+ cx="148.64369"
+ cy="215.40688"
+ fx="148.64369"
+ fy="215.40688"
+ r="209.06158" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7539"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7543"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7545"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7548"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7549"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7552"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7553"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7554"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7556"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7557"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7558"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7583"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7584"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7585"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7586"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7587"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7589"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7590"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7591"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7593"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7594"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7595"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7596"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7597"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7600"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7601"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient7602"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.177105,0.849542)"
+ x1="77.118240"
+ y1="-786.07355"
+ x2="384.79922"
+ y2="-464.95483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.145568,0.466077)"
+ x1="326.04483"
+ y1="1675.3439"
+ x2="492.53156"
+ y2="1823.7002" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.145568,0.466077)"
+ x1="326.04483"
+ y1="1675.3439"
+ x2="492.53156"
+ y2="1823.7002" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2122"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.145568,0.466077)"
+ x1="326.04483"
+ y1="1675.3439"
+ x2="492.53156"
+ y2="1823.7002" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.145568,0.466077)"
+ x1="326.04483"
+ y1="1675.3439"
+ x2="492.53156"
+ y2="1823.7002" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2124"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.145568,0.466077)"
+ x1="326.04483"
+ y1="1675.3439"
+ x2="492.53156"
+ y2="1823.7002" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2071"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2072"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2073"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2074"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2075"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2082"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.145568,0.000000,0.000000,0.466077,0.000000,-5.000000)"
+ x1="238.11853"
+ y1="1646.6730"
+ x2="506.86792"
+ y2="1841.5736" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2083"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.145568,0.000000,0.000000,0.466077,0.000000,-5.000000)"
+ x1="238.11853"
+ y1="1646.6730"
+ x2="506.86792"
+ y2="1841.5736" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2084"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.145568,0.000000,0.000000,0.466077,0.000000,-5.000000)"
+ x1="238.11853"
+ y1="1646.6730"
+ x2="506.86792"
+ y2="1841.5736" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2085"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.145568,0.000000,0.000000,0.466077,0.000000,-5.000000)"
+ x1="238.11853"
+ y1="1646.6730"
+ x2="506.86792"
+ y2="1841.5736" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1870"
+ id="linearGradient2086"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.145568,0.000000,0.000000,0.466077,0.000000,-5.000000)"
+ x1="238.11853"
+ y1="1646.6730"
+ x2="506.86792"
+ y2="1841.5736" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2126"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2127"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2128"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2129"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2142"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2143"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2144"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2935"
+ id="linearGradient2145"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.083876,0.479875)"
+ x1="458.49658"
+ y1="1582.7689"
+ x2="458.49658"
+ y2="1863.2130" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.67773438"
+ inkscape:cx="512.00000"
+ inkscape:cy="384.00000"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="788"
+ inkscape:window-height="707"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ rdf:about=""
+ id="Work6">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ id="type9"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="bubblesBottom"
+ style="display:block">
+ <path
+ style="color:#000000;fill:url(#radialGradient2088);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M -2.3724520,-2.3724520 L -2.3724520,904.87371 C 427.08163,754.89784 770.46504,420.97077 933.17613,-2.3724520 L -2.3724520,-2.3724520 z "
+ id="path2640" />
+ <path
+ style="color:#000000;fill:url(#linearGradient2118);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.6120353;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 453.65101,446.32970 C 234.46460,446.32970 44.937081,573.63543 -45.182421,758.27201 L -45.182421,959.72523 L 1006.9128,959.72523 C 985.60681,672.78792 746.00314,446.32970 453.65101,446.32970 z "
+ id="path2628" />
+ <path
+ style="color:#000000;fill:url(#linearGradient1960);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#ffffff;stroke-width:2.1497591;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.49019608;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 595.43750,701.93750 C 421.51679,701.93750 272.92977,810.64285 213.65625,963.71875 L 977.21875,963.71875 C 917.94522,810.64286 769.35819,701.93752 595.43750,701.93750 z "
+ id="path1318" />
+ <path
+ style="color:#000000;fill:url(#linearGradient1949);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.49019608;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 589.65625,711.00000 C 583.57936,711.09017 577.50918,711.33930 571.43750,711.71875 C 454.69383,718.32450 342.23720,779.22265 273.34375,873.78125 C 252.84350,901.41066 236.19964,931.76837 223.56250,963.71875 L 497.06250,963.71875 C 609.99263,860.62171 700.82030,774.78927 843.43750,797.12500 C 771.91378,740.64145 680.80966,709.64745 589.65625,711.00000 z "
+ id="path1941" />
+ <path
+ style="color:#000000;fill:url(#radialGradient6558);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:5.0405970;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 1011.1770,163.18430 C 554.71088,163.18430 162.74935,440.76682 -5.1963971,836.19849 L -5.1963971,971.03445 L 1285.1964,971.03445 L 1285.1964,197.55487 C 1197.5668,175.14297 1105.7594,163.18430 1011.1770,163.18430 z "
+ id="path2629"
+ sodipodi:nodetypes="cccccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="gear"
+ style="display:block">
+ <path
+ d="M 466.63322,237.12134 L 455.83632,176.25677 L 502.36969,134.80595 L 519.80920,190.06458 L 466.63322,237.12134 z "
+ id="path1265"
+ style="fill:#96c8ff;fill-opacity:0.58823532;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608" />
+ <path
+ d="M 585.08337,304.13952 L 596.95921,283.19501 L 635.60321,261.70126 L 624.28328,277.28641 L 585.08337,304.13952 z "
+ id="path1267"
+ style="fill:#96c8ff;fill-opacity:0.58823532;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.29411766" />
+ <path
+ d="M 705.82984,515.70328 L 734.82072,513.92066 L 764.27062,491.15506 L 744.48721,490.47715 L 705.82984,515.70328 z "
+ id="path1269"
+ style="fill:#96c8ff;fill-opacity:0.58823532;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.29411766" />
+ <path
+ d="M 700.54103,628.67271 L 736.63731,662.80158 L 792.50949,643.08127 L 757.48520,604.94889 L 700.54103,628.67271 z "
+ id="path1271"
+ style="fill:url(#linearGradient2443);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.58823532;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 636.51923,596.55281 L 578.67912,624.36055"
+ id="path2056"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.58823532;display:block;stroke-miterlimit:4.0000000;stroke-dasharray:none;"
+ d="M 454.07992,288.66553 L 401.59788,325.49748"
+ id="path2075"
+ sodipodi:nodetypes="cc" />
+ <path
+ d="M 348.21837,180.11522 C 352.98205,173.52808 357.78727,174.43143 364.16244,170.09197 C 370.50390,165.78096 377.42137,162.77716 384.77397,160.93086 L 441.50373,224.16177 C 453.66862,221.19301 467.64639,222.63450 482.50824,227.67103 L 468.70900,177.16714 C 485.00429,185.57724 501.72679,196.61953 518.38041,209.77464 L 541.95745,262.68082 C 556.29964,274.31172 570.81942,288.23890 585.08598,304.13979 L 597.54983,288.88026 C 604.28186,297.08430 610.97131,305.62603 617.58596,314.52116 C 624.31387,323.56421 630.76405,332.68804 636.93553,341.84495 L 635.69206,370.83455 C 647.31868,388.88237 657.78213,407.39299 666.90848,425.80349 L 692.79371,440.48321 C 701.85140,459.92117 709.85951,479.48706 716.60745,498.72712 L 696.76603,500.25987 C 702.35773,518.73134 706.39323,536.88878 708.48634,553.99867 L 740.05062,597.87202 C 740.97306,606.81731 741.50532,615.62087 741.57615,624.21548 C 741.65253,633.27680 741.21868,641.80438 740.30320,649.81296 L 705.72995,615.19481 C 701.81889,628.86013 695.35268,639.39788 686.59417,646.48479 L 709.00365,717.16046 C 698.01791,725.93214 684.34280,730.89032 668.23952,731.41287 L 635.17074,654.33838 C 618.27200,650.04750 599.11813,640.49455 578.43692,625.22311 L 555.96655,684.39464 C 543.41652,674.79099 530.54685,663.72353 517.46048,651.10341 C 503.70200,637.84374 490.26817,623.41415 477.25520,608.02891 L 485.24256,546.44880 C 463.94417,517.39433 445.42023,486.06125 430.50841,454.44803 L 364.95627,422.92757 C 349.62639,384.78456 343.07553,352.94226 337.88294,319.66899 L 401.32638,325.72162 C 398.20814,300.57935 399.36701,278.88447 404.85429,261.86721 L 348.21837,180.11522 z M 557.06631,517.96020 C 612.13770,578.91495 658.47001,579.27775 664.10590,531.00014 C 668.97353,489.28500 641.78601,420.20178 601.47802,368.66814 C 558.14693,313.27193 506.93937,287.24101 487.55846,318.57040 C 464.58717,355.69306 496.43088,450.84469 557.06631,517.96020 z "
+ id="path1275"
+ style="fill:url(#linearGradient2044);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.29411766" />
+ <path
+ d="M 601.47802,368.66814 C 576.89378,337.23566 549.77392,315.26744 527.37026,307.85723 C 527.63748,299.38690 529.14479,292.09376 532.01879,286.32551 C 547.77687,254.70727 598.67060,285.26853 644.24350,346.47513 C 686.55026,403.29353 716.53688,476.35713 713.58649,517.44444 C 711.38665,548.04154 691.58329,555.89911 662.64555,539.19212 C 663.27516,536.63889 663.76550,533.91163 664.10590,531.00014 C 668.97468,489.28643 641.78892,420.19951 601.47802,368.66814 z "
+ id="path1279"
+ style="fill:url(#linearGradient2080);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:4.2561474;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608" />
+ <g
+ id="gSparks2"
+ transform="matrix(-1.082562,-1.330035,-1.364631,1.054899,1360.488,227.6833)"
+ style="fill:url(#linearGradient5001);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:0.77426684;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374">
+ <path
+ d="M 196.60000,552.76900 C 196.64600,553.83900 197.67200,554.59000 198.88200,554.44600 L 207.46300,553.40100 C 208.67300,553.25300 209.64000,552.25800 209.61900,551.18800 L 208.02600,475.87100 C 207.99900,474.52500 206.86100,473.54800 205.50000,473.70600 L 202.28200,474.08000 C 200.91900,474.23900 199.76700,473.26100 199.72500,471.89700 L 197.11200,392.10800 C 197.05600,390.42200 196.03400,389.14300 194.84100,389.27400 C 193.64600,389.40700 192.72200,390.90200 192.78500,392.59200 L 195.83400,472.35000 C 195.88800,473.71100 195.34700,474.88700 194.64000,474.97200 C 193.92700,475.05300 193.39000,476.22600 193.44800,477.57100 L 196.60000,552.76900 z "
+ id="path1283"
+ style="fill:url(#linearGradient5002)" />
+ <path
+ d="M 174.50100,404.54900 C 174.38400,402.69500 175.23500,401.06300 176.39400,400.92400 C 177.55100,400.78300 178.58700,402.19200 178.69400,404.04400 L 184.82500,508.57200 C 184.91100,510.01100 184.14900,511.29100 183.13600,511.42200 C 182.12500,511.54900 181.21900,510.48100 181.12500,509.04100 L 174.50100,404.54900 z "
+ id="path1285"
+ style="fill:url(#linearGradient5003)" />
+ <path
+ d="M 137.31000,375.57900 C 137.12200,373.79400 137.97500,372.21900 139.21400,372.08500 C 140.45100,371.95000 141.61200,373.30400 141.79100,375.08900 L 151.82400,474.86000 C 151.96300,476.22300 151.19400,477.43900 150.11900,477.56500 C 149.04200,477.69000 148.04300,476.67800 147.90200,475.31500 L 137.31000,375.57900 z "
+ id="path1287"
+ style="fill:url(#linearGradient5004)" />
+ <path
+ d="M 145.38800,556.23900 C 145.52000,557.31100 146.62800,558.06600 147.85400,557.91700 L 148.20000,557.87500 C 149.42000,557.73100 150.32000,556.73000 150.19600,555.65800 L 141.42900,480.19900 C 141.27000,478.84600 140.64100,477.79400 140.02500,477.86700 C 139.41400,477.93600 138.77600,476.88600 138.61300,475.51600 L 129.04500,395.36400 C 128.84600,393.66300 128.24500,392.31500 127.72600,392.37100 C 127.20000,392.43100 126.94000,393.87400 127.14900,395.57600 L 136.91000,475.71600 C 137.07700,477.08200 136.88000,478.23200 136.47500,478.28000 C 136.06800,478.32700 135.87500,479.47700 136.04200,480.82400 L 145.38800,556.23900 z "
+ id="path1289"
+ style="fill:url(#linearGradient5005)" />
+ <path
+ d="M 188.93600,515.99700 C 188.90500,515.39700 189.23600,514.86000 189.67400,514.80900 C 190.11100,514.75500 190.49000,515.20500 190.51900,515.80900 L 193.96300,586.55800 C 193.98800,587.03900 193.69000,587.47200 193.30100,587.52000 C 192.91300,587.56700 192.57100,587.21500 192.55000,586.73600 L 188.93600,515.99700 z "
+ id="path1291"
+ style="fill:url(#linearGradient5006)" />
+ <path
+ d="M 225.93200,375.40800 C 225.93400,374.53400 226.36400,373.76600 226.88900,373.71000 C 227.41000,373.65100 227.83100,374.32500 227.82900,375.19800 L 227.21900,475.90700 C 227.21900,476.57700 226.83800,477.16600 226.38300,477.22000 C 225.92800,477.27200 225.55900,476.77100 225.56200,476.09900 L 225.93200,375.40800 z "
+ id="path1293"
+ style="fill:url(#linearGradient5007)" />
+ <path
+ d="M 168.73300,595.76300 C 168.81800,596.70100 169.82400,597.35100 170.96400,597.20700 L 181.54900,595.89500 C 182.69000,595.75100 183.56800,594.87400 183.50300,593.93200 L 178.61500,521.05600 C 178.53600,519.86700 177.42000,519.01500 176.13100,519.17100 L 174.92400,519.31200 C 173.63800,519.46700 172.51000,518.61100 172.41700,517.41400 L 166.04800,433.64800 C 165.93100,432.12100 164.64000,431.00200 163.17900,431.16800 L 158.80600,431.66400 C 157.34800,431.83100 156.26200,433.21800 156.39800,434.74400 L 163.85500,518.43200 C 163.95900,519.63100 163.54300,520.67000 162.92800,520.74400 C 162.31000,520.81700 161.89600,521.85000 162.00600,523.03900 L 168.73300,595.76300 z "
+ id="path1295"
+ style="fill:url(#linearGradient5008)" />
+ <path
+ d="M 136.02700,610.42700 C 136.16600,611.32600 137.19800,611.94600 138.31900,611.80700 L 150.05200,610.34300 C 151.17300,610.20300 152.00100,609.35500 151.88800,608.45000 L 147.76700,575.15200 C 147.63800,574.13800 146.56100,573.42900 145.36400,573.57600 L 144.52100,573.68000 C 143.32500,573.82100 142.24200,573.11200 142.10500,572.09000 L 125.60600,447.61500 C 125.41100,446.13100 124.06200,445.04700 122.61400,445.21100 L 121.47800,445.34200 C 120.02900,445.50600 119.01300,446.86100 119.22200,448.34200 L 136.80700,572.74000 C 136.95400,573.75800 136.09200,574.70600 134.89700,574.85400 L 132.87300,575.10000 C 131.67700,575.24600 130.82700,576.19600 130.97800,577.20700 L 136.02700,610.42700 z "
+ id="path1297"
+ style="fill:url(#linearGradient5009)" />
+ <path
+ d="M 226.98600,580.68700 C 226.98200,581.65900 227.91400,582.33300 229.05800,582.19200 L 237.18200,581.18700 C 238.32500,581.04900 239.28600,580.13700 239.30900,579.16600 L 240.90400,520.33800 C 240.93400,519.16400 240.01900,518.31500 238.86900,518.44900 C 237.71700,518.58700 236.79500,517.73600 236.81600,516.54900 L 238.12100,454.05100 C 238.15200,452.62900 237.13700,451.57900 235.86800,451.72700 C 234.59900,451.87200 233.54500,453.16000 233.52400,454.58100 L 232.61600,517.05300 C 232.59800,518.23600 231.55000,519.32700 230.28700,519.47600 L 229.69800,519.54900 C 228.42700,519.70000 227.38600,520.78400 227.38300,521.95600 L 226.98600,580.68700 z "
+ id="path1299"
+ style="fill:url(#linearGradient5010)" />
+ <path
+ d="M 216.11400,543.40900 C 216.13300,545.05400 217.42900,546.23700 218.99500,546.04800 C 220.56200,545.85900 221.84700,544.36400 221.84400,542.71600 L 221.70900,467.35700 C 221.70700,465.28900 221.25400,463.64200 220.70800,463.70300 C 220.16100,463.76700 219.70900,462.11100 219.69900,460.01300 L 219.32100,376.39100 C 219.30700,373.76300 218.79500,371.65500 218.17600,371.72500 C 217.55800,371.79100 217.07200,374.01000 217.08900,376.63900 L 217.70000,460.24400 C 217.71500,462.34400 217.17000,464.11600 216.49600,464.19400 C 215.81800,464.27100 215.28400,466.03500 215.30700,468.09900 L 216.11400,543.40900 z "
+ id="path1301"
+ style="fill:url(#linearGradient2772)" />
+ </g>
+ <path
+ style="fill:url(#linearGradient2838);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190560;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 460.55109,177.79692 C 463.57024,194.79255 466.58941,211.78815 469.60860,228.78376 C 484.67841,215.43295 499.74826,202.08214 514.81807,188.73133 C 509.95537,173.31411 505.09264,157.89692 500.22996,142.47972 C 487.00366,154.25212 473.77738,166.02452 460.55109,177.79692 z "
+ id="path2832" />
+ <path
+ style="fill:url(#linearGradient2844);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190560;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 708.27267,630.08319 C 718.07433,639.33798 727.87601,648.59277 737.67770,657.84756 C 753.41820,652.30776 769.15874,646.76797 784.89926,641.22818 C 775.37414,630.84869 765.84904,620.46922 756.32390,610.08974 C 740.30681,616.75422 724.28974,623.41871 708.27267,630.08319 z "
+ id="path2839" />
+ <path
+ d="M 391.45990,141.36381 C 395.02726,134.50313 399.44407,128.78217 404.74642,124.30921 C 410.04296,119.84080 416.02785,116.77980 422.55274,114.96148 L 481.02652,184.63692 C 492.10700,181.94536 505.34453,184.04911 519.81033,190.06601 L 502.37085,134.80736 C 518.62566,144.49794 535.57228,157.11945 552.67740,172.09830 L 579.46796,230.45159 C 594.20341,243.69490 609.29734,259.43644 624.28618,277.28416 L 635.60612,261.69903 C 642.39066,262.65623 672.00666,305.84447 677.73919,320.94680 L 678.01526,351.45403 C 690.46941,371.30734 701.76321,391.49883 711.68801,411.40253 L 738.19870,429.05984 C 745.94782,437.48895 767.59878,482.78681 764.27089,491.15251 L 744.48750,490.47462 C 750.73470,509.68157 755.39962,528.29220 758.07599,545.53075 L 790.81114,592.76362 C 791.98150,601.62346 792.75246,610.26332 793.06144,618.60915 C 793.38517,627.37767 793.19000,635.52907 792.50949,643.08127 L 757.48520,604.94889 C 754.14877,617.55352 748.24776,626.73079 740.05098,632.24051 L 764.07720,701.85804 C 753.85511,708.26152 741.04083,710.68862 725.86195,708.66791 L 691.46479,632.45866 C 675.43910,626.11445 657.13475,614.58403 637.19461,597.55989 L 620.13502,649.21920 C 608.26040,638.71940 596.02079,626.86014 583.50885,613.57197 C 570.37044,599.61594 557.44270,584.63810 544.82369,568.83748 L 553.72537,503.51428 C 532.41291,473.47324 513.36258,441.44110 497.43739,409.33669 L 428.04860,376.34195 C 411.01320,337.89648 402.12896,305.75450 394.15181,272.14240 L 453.74946,288.25873 C 448.57194,262.43172 447.54177,240.16625 450.87944,222.78113 L 391.45990,141.36381 z M 611.01478,492.61077 C 666.07666,557.90220 710.23817,564.02988 713.58797,517.44331 C 716.53835,476.35601 686.55288,403.29382 644.24641,346.47287 C 598.67206,285.26739 547.77979,254.70502 532.02313,286.32212 C 513.78048,322.91808 550.45620,420.80179 611.01478,492.61077 z "
+ id="path1304"
+ style="fill:url(#linearGradient1884);fill-opacity:1.0000000;stroke:none;stroke-width:0.77426684;stroke-miterlimit:4.0000000" />
+ <path
+ d="M 676.02944,314.82673 C 676.03506,320.52086 676.06398,345.07502 676.06398,345.07502 L 679.76787,350.96738 C 691.56622,369.74137 702.41475,389.03949 712.13228,408.52846 L 715.16029,414.60619 C 715.16029,414.60619 736.60185,428.63181 741.55348,431.87176 C 748.99581,448.04445 755.72877,464.09358 761.67152,479.86462 C 757.95277,479.64996 741.70059,478.70597 741.70059,478.70597 L 743.55916,484.45010 C 749.62881,503.20322 753.96056,520.87768 756.40880,537.08500 L 757.19141,542.26395 C 757.19141,542.26395 783.66839,580.34690 789.95052,589.38362 C 790.69368,596.15855 791.24838,602.80671 791.43668,609.03386 C 791.63657,615.60990 791.44081,621.83378 791.01928,627.84430 C 784.48404,620.67955 756.41627,589.89192 756.41627,589.89192 L 755.42893,593.41435 C 752.16265,605.05735 746.49829,613.65223 738.41117,618.73779 L 735.80496,620.37610 C 735.80496,620.37610 757.47983,680.89774 762.20289,694.64924 C 753.86566,698.67667 744.00571,700.23078 732.68825,699.10644 C 726.12914,684.59226 696.49724,619.72284 696.49724,619.72284 L 691.83747,617.80195 C 676.30921,611.38493 659.00272,600.10831 640.43858,584.05000 L 634.46860,578.88657 C 634.46860,578.88657 620.79797,617.99996 617.20462,628.28645 C 608.01565,619.72122 598.69841,610.57632 589.46263,600.67577 C 579.71808,590.22875 569.94831,578.82226 560.21160,566.92377 C 561.82610,553.85389 568.04150,503.55818 568.04150,503.55818 L 562.00894,495.01431 C 542.35595,467.18390 524.50866,437.27884 509.27903,406.58779 L 504.53487,397.02487 C 504.53487,397.02487 451.65723,371.08432 437.62668,364.20219 C 425.37116,335.37513 416.67930,308.83369 409.79790,282.86922 C 422.52120,286.82972 469.58354,300.60194 469.58354,300.60194 L 467.97268,292.75222 C 462.86931,267.90696 461.84153,246.99499 464.71520,230.62887 L 465.59299,225.65338 C 465.59299,225.65338 414.41996,154.74322 402.92110,138.92176 C 405.81185,133.92791 409.03826,129.49198 412.84864,126.04999 C 416.72098,122.55322 421.24298,120.02044 426.02311,118.06389 C 437.70392,131.91139 489.10837,194.38582 489.10837,194.38582 L 492.38341,193.48195 C 502.55593,190.67031 514.84439,192.23083 528.73295,197.78887 L 532.92297,199.47023 C 532.92297,199.47023 518.94773,155.52593 515.62992,145.09590 C 528.13865,152.80348 541.02376,162.26582 554.09000,173.25753 C 559.25831,184.52909 580.77151,231.42731 580.77151,231.42731 L 585.33240,235.49114 C 599.65192,248.24090 614.03167,263.20687 628.17200,279.96266 L 632.51038,285.10361 C 632.51038,285.10361 641.41156,272.14095 643.46544,269.15171 C 649.01733,276.40932 654.50358,283.76386 659.83139,291.22933 C 665.31421,298.91439 670.72496,306.85142 676.02944,314.82673 z M 723.32745,522.33659 C 726.09129,478.04548 693.93412,399.87607 648.92048,339.20231 C 600.18915,273.51272 544.95555,239.61035 527.37003,272.89520 C 506.76055,311.89800 546.70588,419.06685 613.00098,497.16409 C 672.77435,567.58050 720.16542,573.01034 723.32745,522.33659 z "
+ id="path1306"
+ style="fill:url(#linearGradient1873);fill-opacity:1.0000000;stroke:none;stroke-width:0.77426684;stroke-miterlimit:4.0000000"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
+ <path
+ d="M 725.86342,708.66678 L 691.46626,632.45753 L 635.17045,654.34093 L 668.23921,731.41542 L 725.86342,708.66678 z "
+ id="path1308"
+ style="fill:url(#linearGradient2439);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608" />
+ <path
+ style="fill:url(#linearGradient5011);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 620.13648,649.21809 L 637.19461,597.55989 C 657.13332,614.58517 675.43764,626.11558 691.46626,632.45753 L 635.16898,654.34204 C 630.32572,653.11255 625.29498,651.44610 620.09453,649.33824 L 620.13648,649.21809 z "
+ id="path1273" />
+ <path
+ style="fill:url(#linearGradient5012);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 453.96178,288.09460 L 401.99913,274.04439 C 402.80062,269.70279 403.81688,265.57845 405.06453,261.70929 L 451.09173,222.61701 C 447.75552,240.00104 448.78832,262.26678 453.96178,288.09460 z "
+ id="path2803" />
+ <path
+ style="fill:url(#linearGradient2052);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 485.24080,546.45247 C 463.94243,517.39800 445.41992,486.06381 430.50665,454.45172 L 497.44029,409.33443 C 513.36287,441.43853 532.41580,473.47101 553.72829,503.51205 C 553.72829,503.51205 513.94724,530.83284 485.24080,546.45247 z "
+ id="path2802" />
+ <path
+ d="M 485.24080,546.45247 L 477.25345,608.03256 L 544.82545,568.83383 L 553.72713,503.51061 L 485.24080,546.45247 z "
+ id="path1314"
+ style="fill:url(#linearGradient2435);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608" />
+ <path
+ d="M 364.95452,422.93125 L 430.50665,454.45172 L 497.44029,409.33443 L 428.05005,376.34085 L 364.95452,422.93125 z "
+ id="path1316"
+ style="fill:url(#linearGradient2431);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608" />
+ <path
+ d="M 348.21837,180.11522 L 405.06338,261.70788 L 451.09058,222.61561 L 391.45731,141.36352 L 348.21837,180.11522 z "
+ id="path1320"
+ style="fill:url(#linearGradient2424);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608" />
+ <path
+ style="fill:url(#linearGradient5013);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.68627453"
+ d="M 620.13648,649.21809 C 620.13648,649.21809 620.08418,649.24697 619.99818,649.29265 C 617.65872,650.57470 583.26929,669.42832 555.96334,684.39943 C 543.41333,674.79579 530.54365,663.72834 517.45728,651.10818 C 503.69881,637.84853 490.26496,623.41896 477.25200,608.03370 L 544.82399,568.83494 C 557.44013,584.63780 570.36786,599.61563 583.50918,613.56941 C 596.02079,626.86014 608.25925,638.71800 620.13648,649.21809 z "
+ id="path1310" />
+ <path
+ style="fill:url(#linearGradient5014);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.68627453"
+ d="M 428.04860,376.34195 L 364.95307,422.93237 C 349.62318,384.78936 343.07233,352.94706 337.87974,319.67378 C 364.67410,297.04222 394.15150,272.14494 394.15150,272.14494 C 396.76514,283.14472 416.59337,350.48898 428.04860,376.34195 z "
+ id="path2513" />
+ <path
+ style="fill:url(#linearGradient5015);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:1.3542246;stroke-miterlimit:4.0000000;stroke-opacity:0.68627453"
+ d="M 348.21837,180.11522 L 363.40973,160.14733 L 404.74382,124.30897 C 404.74382,124.30897 396.90114,129.43874 391.45731,141.36352 C 348.21837,180.11522 348.21837,180.11522 348.21837,180.11522 z "
+ id="path2512" />
+ <path
+ style="fill:url(#linearGradient2068);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:1.3542246;stroke-miterlimit:4.0000000;stroke-opacity:0.68627453"
+ d="M 668.23778,731.41654 L 690.71518,728.32867 L 752.47337,707.06454 C 752.47337,707.06454 727.59522,712.50008 725.86342,708.66678 C 668.23778,731.41654 668.23778,731.41654 668.23778,731.41654 z "
+ id="path2511" />
+ <path
+ d="M 225.89356,665.96002 C 224.98557,666.71717 225.32741,669.63549 226.65296,672.44475 C 227.97550,675.25483 229.81241,676.95274 230.72916,676.22179 L 298.12827,622.24492 C 299.33570,621.27694 299.07910,617.83058 297.54918,614.58955 C 296.01924,611.34851 293.78665,609.51233 292.59291,610.50593 L 225.89356,665.96002 z "
+ id="path1326"
+ style="fill:url(#linearGradient6642);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-opacity:0.68627453;"
+ transform="matrix(1.039281,4.759603e-2,-4.116276e-2,1.041163,2.939028,-8.288130)" />
+ <path
+ d="M 276.24006,602.15757 C 275.64955,602.63276 275.84514,604.21115 276.66922,605.65790 C 277.49620,607.10684 278.65661,607.90573 279.24902,607.43358 L 375.45919,531.02812 C 376.35830,530.31335 376.26303,528.26312 375.24154,526.47291 C 374.22288,524.68729 372.65497,523.81730 371.76240,524.54510 L 276.24006,602.15757 z "
+ id="path1328"
+ style="fill:url(#linearGradient6643);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-opacity:0.68627453;"
+ transform="matrix(1.039281,4.759603e-2,-4.116276e-2,1.041163,2.939028,-8.288130)" />
+ <path
+ d="M 215.96892,704.98084 C 215.82214,705.08387 216.29325,706.14348 217.01733,707.32784 C 217.74141,708.51220 218.45546,709.39673 218.60321,709.29287 L 239.41330,694.78455 C 239.58150,694.66814 239.08830,693.54057 238.32033,692.28269 C 237.55139,691.02563 236.78507,690.09156 236.61789,690.20952 L 215.96892,704.98084 z "
+ id="path1330"
+ style="fill:url(#linearGradient6644);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.2500000;stroke-miterlimit:4.0000000;stroke-opacity:0.68627453;"
+ transform="matrix(1.039281,4.759603e-2,-4.116276e-2,1.041163,2.939028,-8.288130)" />
+ <path
+ d="M 274.60993,671.61968 C 274.20941,671.90491 274.95078,674.06931 276.25352,676.42058 C 277.55906,678.77301 278.95643,680.47325 279.36388,680.19605 L 338.92335,639.25369 C 339.43259,638.91060 338.64851,636.46399 337.18833,633.83265 C 335.72822,631.19790 334.12022,629.33286 333.61913,629.69308 L 274.60993,671.61968 z "
+ id="path1332"
+ style="fill:url(#linearGradient7446);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.3014536;stroke-miterlimit:4.0000000;stroke-opacity:0.68627453" />
+ <path
+ d="M 1212.5933,37.236009 C 1219.3737,32.777326 1227.2227,32.623278 1229.9790,36.929737 L 1258.8227,81.966320 C 1261.5832,86.274490 1258.0802,93.217060 1251.1031,97.361370 L 943.14219,280.28630 C 939.03689,282.72559 933.99655,282.03403 931.90405,278.77045 L 930.42525,276.46172 C 928.33420,273.19703 923.34097,272.54297 919.36115,274.98219 L 660.91355,433.46248 C 658.72076,434.81123 655.68106,433.93771 654.14147,431.53973 L 652.93945,429.66125 C 651.40538,427.26133 651.91663,424.17850 654.08663,422.79886 L 910.18630,260.65677 C 914.13099,258.15693 915.67707,253.42906 913.58748,250.16325 L 910.04987,244.64110 C 907.95884,241.37641 909.48173,236.57641 913.47016,233.95273 L 1212.5933,37.236009 z "
+ id="path1334"
+ style="fill:url(#linearGradient2168);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374319;stroke-miterlimit:4.0000000;stroke-opacity:0.58823532" />
+ <path
+ style="fill:url(#linearGradient2850);fill-opacity:1.0000000;stroke:none;stroke-width:3.9285836;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 546.60646,278.26501 C 533.64580,279.91082 529.99765,294.50258 529.37253,305.20341 C 566.13798,320.70726 592.48743,352.02058 614.61982,383.44398 C 640.28230,421.62314 660.29851,464.64133 665.71190,510.30570 C 666.61272,519.11756 666.37262,528.03951 664.69433,536.74981 C 675.07089,542.59976 691.69921,548.08594 700.22836,536.63061 C 710.32300,520.72150 706.33093,500.82637 702.91473,483.53096 C 689.21367,426.41077 659.07628,374.10949 621.54985,328.66419 C 604.82071,309.64074 585.92608,290.95723 562.05427,280.79740 C 557.19235,278.88987 551.85046,277.87824 546.60646,278.26501 z "
+ id="path2845" />
+ <path
+ d="M 688.30345,420.48876 L 710.95031,406.19384 L 723.10340,398.52164 C 725.91829,396.74972 727.51316,394.26767 726.63721,393.01684 C 725.76181,391.77251 727.35964,389.27664 730.20136,387.46780 L 940.65445,253.44712 C 944.62682,250.91435 949.53130,251.16832 951.53479,254.02275 L 965.74480,274.26659 C 967.74253,277.11391 966.06877,281.45789 962.03420,283.90255 L 748.33542,413.29529 C 745.44932,415.04374 741.72266,414.50502 740.03983,412.11153 L 736.06686,406.45030 C 734.38581,404.05318 730.68656,403.53941 727.86504,405.30029 L 714.76959,413.45626 L 691.63906,427.86416 L 603.15933,482.97353 C 601.62653,481.03212 600.11147,479.07466 598.61272,477.10232 L 688.30345,420.48876 z "
+ id="path1338"
+ style="fill:url(#linearGradient2256);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.0313370;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374" />
+ <path
+ d="M 672.20476,389.39362 L 694.05836,374.79061 L 782.56807,315.65202 C 785.73251,313.53828 789.48304,313.43978 790.88832,315.44285 C 792.29624,317.44618 790.83358,320.80961 787.65590,322.90125 L 698.10759,381.96299 L 676.14374,396.44798 L 613.57181,437.71792 C 611.24169,439.25593 608.36153,439.11106 607.16804,437.40609 C 605.96819,435.69909 606.87825,433.04220 609.20205,431.49060 L 672.20476,389.39362 z "
+ id="path1340"
+ style="fill:url(#linearGradient2257);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:1.3542246;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374" />
+ <path
+ d="M 636.64550,336.61578 L 659.93420,319.40720 C 662.58203,317.45042 665.83073,317.36116 667.14009,319.22594 C 668.44827,321.08934 667.32868,324.21065 664.66817,326.15185 L 641.60949,342.97941 L 554.97406,406.19908 C 553.86358,403.91501 552.78295,401.63560 551.73041,399.36448 L 636.64550,336.61578 z "
+ id="path1342"
+ style="fill:url(#linearGradient2258);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:1.3542246;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374" />
+ <path
+ d="M 658.37843,287.91276 L 848.11543,142.08793 C 851.79219,139.26187 856.44821,139.24842 858.43960,142.08216 L 858.99658,142.87997 C 860.98453,145.70947 859.56096,150.32877 855.86372,153.12682 L 664.76258,297.50557 L 659.49767,301.48315 C 656.84299,303.48681 654.07030,304.25403 653.32398,303.19161 C 652.58199,302.13738 649.82615,302.89619 647.20976,304.88873 L 624.47754,322.18433 L 544.60326,382.96201 C 544.18065,381.92183 543.76326,380.88217 543.35684,379.85023 L 622.13179,319.58755 L 645.16104,301.96999 C 647.77397,299.97321 649.51265,297.76098 649.02193,297.06205 C 648.53152,296.36055 650.28215,294.13679 652.91725,292.10904 L 658.37843,287.91276 z "
+ id="path1344"
+ style="fill:url(#linearGradient2259);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:1.8750000;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374;stroke-dasharray:none;" />
+ <path
+ d="M 809.26825,312.51617 C 807.62514,313.57392 807.00121,315.46469 807.87630,316.71156 C 808.75141,317.95845 810.81549,318.12229 812.45862,317.06453 L 1074.9515,149.32452 C 1077.3682,147.79108 1078.4737,145.28106 1077.4096,143.76445 C 1076.3481,142.25070 1073.4992,142.27803 1071.0969,143.83496 L 809.26825,312.51617 z "
+ id="path1346"
+ style="fill:url(#linearGradient2260);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.0313368;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374" />
+ <path
+ d="M 709.38182,479.03931 L 752.74123,454.37146 L 775.19790,441.59505 C 776.68941,440.74687 778.37917,440.72440 778.95230,441.54206 C 779.52657,442.36112 778.77761,443.72284 777.28524,444.56705 L 754.24224,457.59813 L 710.18495,482.51456 L 639.74718,522.35164 C 638.90673,521.61595 638.06695,520.86359 637.22228,520.09653 L 709.38182,479.03931 z "
+ id="path1348"
+ style="fill:url(#linearGradient2261);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374317;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374" />
+ <path
+ d="M 651.38128,356.39084 L 677.88782,337.54449 L 775.79989,267.93046 C 778.99052,265.66258 780.90394,262.77731 780.03229,261.53467 C 779.15690,260.29034 781.07212,257.38982 784.30233,255.07746 L 1057.1725,59.560147 C 1062.0260,56.078385 1067.8666,55.855656 1070.1200,59.066488 L 1091.1136,88.977660 C 1093.3715,92.194160 1091.1489,97.572110 1086.2008,100.91450 L 808.05581,288.92079 C 804.76449,291.14645 800.59048,290.82652 798.76478,288.22256 L 797.04713,285.77753 C 795.22259,283.17500 791.07254,282.87580 787.85023,285.09889 L 683.55504,357.07508 L 661.80525,372.08501 L 616.54477,403.32063 C 614.16439,404.95987 610.95341,404.48427 609.39339,402.25911 L 604.72828,395.61362 C 603.17027,393.39384 603.81355,390.21123 606.16886,388.53830 L 651.38128,356.39084 z "
+ id="path1350"
+ style="fill:url(#linearGradient2262);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374317;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374" />
+ <path
+ d="M 1078.2953,-53.751592 C 1080.6391,-50.412137 1082.3899,-37.828460 1077.2810,-33.909300 L 918.42542,88.172670 C 914.35405,91.296860 909.35143,91.425840 907.27529,88.470560 L 905.81007,86.382220 C 903.73542,83.425800 898.76634,83.572720 894.78864,86.686860 L 650.96841,277.63296 L 611.48964,308.55293 L 586.07498,328.45554 C 583.73378,330.28842 580.53010,329.94112 578.95077,327.68931 L 577.71404,325.92540 C 576.13210,323.67329 576.73379,320.31738 579.05913,318.46209 L 602.24227,299.95666 L 642.78342,267.59433 L 885.67074,73.700459 C 889.62138,70.547223 891.17821,65.538589 889.10093,62.581893 L 885.59159,57.580505 C 883.51664,54.626639 885.05599,49.564556 889.03950,46.312005 L 1011.3552,-52.586804 L 1078.2953,-53.751592 z "
+ id="path1352"
+ style="fill:url(#linearGradient2263);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.8374317;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374"
+ sodipodi:nodetypes="cccccccccccccccccccc" />
+ <path
+ d="M 741.65774,479.21744 L 759.29182,469.46020 L 892.90183,395.53181 C 896.45554,393.56741 897.85791,389.78648 896.00453,387.14853 L 895.13637,385.91016 C 893.28327,383.26962 894.68082,379.46242 898.26524,377.43966 L 1130.2612,246.45646 C 1135.2174,243.65962 1141.0934,243.91984 1143.2903,247.04964 L 1158.8890,269.27019 C 1161.0880,272.40282 1158.7453,277.17629 1153.7156,279.86832 L 918.26444,405.92832 C 914.62557,407.87541 910.28372,407.48897 908.59231,405.07908 C 906.90664,402.67628 902.58590,402.30123 899.02009,404.24494 L 762.51644,478.54456 L 747.08529,486.94520 C 744.29755,488.46525 740.80347,487.97070 739.31894,485.85574 C 737.83439,483.74077 738.88093,480.75674 741.65774,479.21744 z "
+ id="path1354"
+ style="fill:url(#linearGradient2264);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.7084491;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374" />
+ <path
+ d="M 704.98930,463.12968 L 730.47662,448.22064 C 734.66227,445.77237 737.43784,442.80248 736.62121,441.64201 C 735.80719,440.48181 738.59187,437.49105 742.84614,434.98742 L 742.93157,434.93522 L 947.26825,314.37053 C 953.15252,310.89779 960.08565,310.98974 962.62048,314.60174 C 965.15761,318.21657 962.34471,323.99299 956.42328,327.41133 L 750.65467,446.10903 C 750.12872,446.41169 749.60489,446.69658 749.09388,446.96230 C 745.44106,448.84858 742.27815,449.69813 741.70010,448.87736 C 741.04228,447.93815 737.05130,449.17613 732.85931,451.61083 L 706.19646,467.09845 L 628.79494,512.06243 C 627.89114,511.15864 626.98276,510.23764 626.07016,509.29685 L 704.98930,463.12968 z "
+ id="path1356"
+ style="fill:url(#linearGradient2265);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:1.8750000;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374;stroke-dasharray:none;" />
+ <path
+ style="fill:url(#linearGradient2520);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190560;stroke-miterlimit:4.0000000;stroke-opacity:0.68627453"
+ d="M 342.60753,321.28407 C 347.69773,353.53662 355.45750,385.35239 367.08115,415.98402 C 385.66118,402.26123 404.24120,388.53847 422.82123,374.81570 C 410.31994,343.83189 401.21586,311.73668 391.79802,279.76879 C 375.40120,293.60722 359.00436,307.44566 342.60753,321.28407 z "
+ id="path2515" />
+ <path
+ style="fill:url(#linearGradient2526);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190560;stroke-miterlimit:4.0000000;stroke-opacity:0.68627453"
+ d="M 483.99288,609.12568 C 506.03882,634.45031 529.98086,658.26944 556.45811,679.21976 C 575.24868,668.91761 594.03924,658.61549 612.82982,648.31336 C 587.83575,625.50255 565.10579,600.46905 543.76716,574.41574 C 523.84240,585.98574 503.91763,597.55569 483.99288,609.12568 z "
+ id="path2521" />
+ <path
+ style="fill:url(#linearGradient2795);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190560;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 353.99227,180.73142 C 371.29697,205.58679 388.60167,230.44220 405.90637,255.29758 C 419.00563,244.18222 432.10491,233.06689 445.20415,221.95154 C 427.05326,197.22822 408.90238,172.50487 390.75150,147.78153 C 378.49841,158.76484 366.24534,169.74812 353.99227,180.73142 z "
+ id="path2790" />
+ <path
+ style="fill:url(#linearGradient2801);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190560;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 373.24205,422.21257 C 392.17781,431.30686 411.11358,440.40117 430.04935,449.49547 C 449.61140,436.32050 469.17348,423.14554 488.73555,409.97058 C 468.66896,400.42843 448.60234,390.88631 428.53572,381.34417 C 410.10450,394.96696 391.67326,408.58976 373.24205,422.21257 z "
+ id="path2796" />
+ <path
+ style="fill:url(#linearGradient2810);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190560;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 436.14125,455.92441 C 450.48502,485.48819 467.38040,513.84776 486.56089,540.68152 C 507.35395,528.53294 527.73586,515.76467 547.67972,502.33113 C 528.46965,474.58448 511.06391,445.67827 495.85773,415.66625 C 475.95226,429.08563 456.04675,442.50502 436.14125,455.92441 z "
+ id="path2805" />
+ <path
+ style="fill:url(#linearGradient2816);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190560;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 489.35686,549.00915 C 487.15192,565.95004 484.94700,582.89091 482.74206,599.83182 C 502.09455,588.60607 521.44709,577.38035 540.79961,566.15461 C 543.24668,548.14468 545.69375,530.13474 548.14080,512.12481 C 528.54615,524.41959 508.95150,536.71436 489.35686,549.00915 z "
+ id="path2811" />
+ <path
+ style="fill:url(#linearGradient2822);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190560;stroke-miterlimit:4.0000000;stroke-opacity:0.49019608"
+ d="M 640.93505,656.69019 C 650.83563,679.74866 660.73621,702.80709 670.63679,725.86554 C 687.08794,719.36901 703.53907,712.87249 719.99021,706.37596 C 709.70049,683.56186 699.41078,660.74776 689.12105,637.93365 C 673.05906,644.18581 656.99705,650.43802 640.93505,656.69019 z "
+ id="path2817" />
+ <path
+ style="fill:url(#linearGradient2856);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190560;stroke-miterlimit:4.0000000;stroke-opacity:0.58823532"
+ d="M 1219.2450,38.797725 C 1178.2154,63.913399 1138.7876,91.442350 1098.3716,117.48581 C 1037.3693,157.51173 976.52144,197.76057 915.62548,237.93983 C 910.21640,244.03062 922.90522,250.73830 917.95313,257.60759 C 911.21103,268.46302 897.52848,272.33505 887.73057,280.01190 C 810.87344,328.66568 734.01631,377.31944 657.15918,425.97322 C 657.21503,433.54625 664.90723,425.63794 668.04196,424.07182 C 751.85194,372.71062 835.53689,321.06397 919.65078,270.23115 C 925.90501,267.08801 932.93642,271.59843 936.26383,276.78340 C 945.02828,277.12914 951.11150,269.09143 958.81142,265.95972 C 1055.9325,208.06849 1153.3626,150.58916 1250.2909,92.440740 C 1255.7502,89.487530 1256.2211,82.419900 1251.5426,78.628944 C 1242.6121,65.331621 1234.7072,50.835069 1224.8261,38.477145 C 1222.9780,37.920657 1221.0990,38.609225 1219.2450,38.797725 z "
+ id="path2851" />
+ <path
+ style="fill:url(#linearGradient2872);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190557;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374"
+ d="M 932.48629,155.98737 C 885.11453,189.93556 837.46776,223.98868 790.13691,258.08350 C 784.47617,262.10668 784.62700,269.98834 778.00974,272.84234 C 724.30780,312.28272 669.62624,350.60391 615.20923,389.05724 C 606.86273,393.62586 615.09929,401.15818 620.19655,393.80236 C 675.95076,355.17246 731.83020,316.62817 788.00498,278.63414 C 794.32296,275.15060 799.52163,281.14425 804.42155,284.04709 C 893.77359,223.95732 983.05925,163.68215 1072.1908,103.35886 C 1077.1065,100.30594 1085.8254,96.583070 1084.7441,90.092330 C 1078.7190,82.866140 1074.2032,74.688659 1068.9650,66.956266 C 1064.5596,59.830899 1058.3823,66.200507 1053.8842,69.567628 C 1013.4183,98.374210 972.95229,127.18079 932.48629,155.98737 z "
+ id="path2867" />
+ <path
+ style="fill:url(#linearGradient2878);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190557;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374"
+ d="M 1021.7483,-52.194550 C 982.45133,-20.508551 935.04520,16.732359 895.69189,48.295560 C 889.70180,52.348818 892.49723,56.743116 894.73260,61.882540 C 898.98704,71.305215 889.47476,78.461151 882.59936,83.253650 C 788.98568,158.50801 694.90746,233.25944 601.23023,308.40779 C 596.62284,313.80765 588.77180,315.72235 584.69212,321.55428 C 659.71482,264.34673 733.28651,205.31512 807.75816,147.41055 C 837.26240,124.49715 866.55888,101.05224 896.71770,79.112581 C 903.09965,75.588496 908.03969,82.424180 913.42081,84.259170 C 962.44274,47.097448 1011.2670,9.5863380 1059.9125,-27.956240 C 1066.8304,-32.462787 1076.4281,-43.745157 1074.0836,-53.229146 C 1053.8950,-52.889614 1041.9370,-52.534078 1021.7483,-52.194550 z "
+ id="path2873"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ style="fill:url(#linearGradient2884);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190557;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374"
+ d="M 849.79538,318.19278 C 811.74643,342.53113 773.20471,366.72605 735.32792,391.35344 C 730.61136,395.60211 729.32371,399.31376 736.53413,399.38962 C 740.97166,401.45288 743.27855,411.46369 748.95091,406.10422 C 815.47313,365.90097 881.90531,325.46677 948.47252,285.38975 C 952.45443,283.14262 960.12049,280.48076 959.23281,275.37397 C 953.94426,270.05268 952.50461,260.84510 945.01120,257.98358 C 913.27261,278.05331 881.53400,298.12305 849.79538,318.19278 z "
+ id="path2879" />
+ <path
+ style="fill:url(#linearGradient2890);fill-opacity:1.0000000;stroke:none;stroke-width:2.6190557;stroke-miterlimit:4.0000000;stroke-opacity:0.78431374"
+ d="M 1019.5586,315.44804 C 980.22116,337.70657 940.82624,359.89591 901.52427,382.19709 C 900.41547,387.14022 905.27714,393.67282 899.67682,397.53439 C 906.68535,395.32262 913.40055,404.19511 919.62581,398.10360 C 990.66863,360.94187 1061.2653,322.92550 1131.8370,284.93942 C 1138.4251,279.70916 1149.2324,279.39421 1152.9818,271.18879 C 1146.1519,265.14823 1145.2973,252.86952 1135.2913,250.69985 C 1096.7139,272.28260 1058.1362,293.86530 1019.5586,315.44804 z "
+ id="path2885" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="bubblesTop"
+ style="display:block">
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#eaf3ff;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:19.962790;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2180"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.125233,0.000000,0.000000,0.125233,142.3549,575.5940)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#f3f3ff;fill-opacity:0.49019608;fill-rule:evenodd;stroke:#ffffff;stroke-width:9.9387770;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2178"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.251540,0.000000,0.000000,0.251540,575.6360,250.5288)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#f0f9fe;fill-opacity:0.49019608;fill-rule:evenodd;stroke:#ffffff;stroke-width:5.0583224;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2177"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.494235,0.000000,0.000000,0.494235,494.4148,89.07510)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e1e1ff;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:5.0583224;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2175"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.494235,0.000000,0.000000,0.494235,-164.6846,801.3733)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e1f5ff;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2174"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="translate(-331.4121,672.0533)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#c8f5e1;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:9.4375238;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2176"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.264900,0.000000,0.000000,0.264900,50.04460,651.8244)" />
+ <path
+ style="color:#000000;fill:#c8f5eb;fill-opacity:0.29411766;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.9332886;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 1286.7396,171.15858 C 1253.6779,171.15858 1226.8451,143.84671 1226.8451,110.19456 C 1226.8451,76.542420 1253.6779,49.230534 1286.7396,49.230534"
+ id="path2187"
+ sodipodi:nodetypes="ccc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#afe1ff;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:4.7187619;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2183"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.264900,0.000000,0.000000,0.264900,325.5129,455.0088)" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;fill:#ffebff;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2490"
+ sodipodi:sides="6"
+ sodipodi:cx="267.43515"
+ sodipodi:cy="626.16718"
+ sodipodi:r1="26.854584"
+ sodipodi:r2="23.256752"
+ sodipodi:arg1="1.3089969"
+ sodipodi:arg2="1.8325957"
+ inkscape:flatsided="true"
+ inkscape:rounded="-2.7755576e-17"
+ inkscape:randomized="0.0000000"
+ d="M 274.38563,652.10671 L 248.44609,645.15623 L 241.49561,619.21670 L 260.48467,600.22764 L 286.42421,607.17812 L 293.37469,633.11765 L 274.38563,652.10671 z "
+ transform="translate(-40.00000,-30.00000)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient3041);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 682.00456,135.36397 C 683.88212,135.97552 685.75125,136.58562 687.69901,137.11611 C 690.48791,137.87569 693.33683,138.56504 696.25633,139.14984 C 699.17583,139.73464 702.15467,140.22043 705.18911,140.62038 C 708.22354,141.02033 711.31671,141.32274 714.45041,141.52774 C 717.58412,141.73276 720.76037,141.84063 723.97767,141.84063 C 727.19496,141.84063 730.37123,141.73276 733.50492,141.52774 C 736.63862,141.32274 739.73180,141.02033 742.76623,140.62038 C 745.80066,140.22043 748.77951,139.73464 751.69901,139.14984 C 754.61852,138.56504 757.48307,137.87569 760.27197,137.11611 C 763.06089,136.35654 765.77990,135.52167 768.42255,134.59741 C 770.24609,133.95962 771.97831,133.24452 773.72590,132.53239 C 771.93854,127.79275 769.44048,123.32451 766.13851,119.37570 C 756.00919,106.80555 739.47085,99.399650 723.30497,101.25983 C 704.29823,103.04731 687.82460,117.47525 682.00456,135.36397 z "
+ id="path3040" />
+ <g
+ id="g6664"
+ transform="translate(2.500000,2.500000)">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;fill:url(#linearGradient6667);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.3741045;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2489"
+ sodipodi:sides="6"
+ sodipodi:cx="123.57349"
+ sodipodi:cy="135.56197"
+ sodipodi:r1="110.72429"
+ sodipodi:r2="95.890045"
+ sodipodi:arg1="1.5707963"
+ sodipodi:arg2="2.0943951"
+ inkscape:flatsided="true"
+ inkscape:rounded="-2.7755576e-17"
+ inkscape:randomized="0.0000000"
+ d="M 123.57349,246.28625 L 27.683441,190.92411 L 27.683438,80.199824 L 123.57348,24.837677 L 219.46353,80.199819 L 219.46353,190.92411 L 123.57349,246.28625 z "
+ transform="matrix(1.111406,0.000000,0.000000,1.111406,691.2078,-76.14322)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient6668);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 719.43750,56.812500 C 719.57417,57.419978 719.63214,58.016677 719.78125,58.625000 C 720.59613,61.949570 721.60168,65.289770 722.78125,68.625000 C 723.96082,71.960230 725.31087,75.303770 726.84375,78.625000 C 728.37663,81.946230 730.09395,85.248670 731.96875,88.531250 C 733.84355,91.813830 735.88840,95.061980 738.09375,98.281250 C 740.29910,101.50052 742.66298,104.68120 745.18750,107.81250 C 747.71202,110.94380 750.38645,114.04382 753.21875,117.06250 C 756.05105,120.08118 759.05879,123.02486 762.18750,125.90625 C 765.31621,128.78764 768.58626,131.59304 772.00000,134.31250 C 775.41374,137.03196 778.96887,139.65464 782.65625,142.18750 C 786.34363,144.72036 790.14410,147.17839 794.09375,149.50000 C 798.04340,151.82161 802.02460,153.97905 806.03125,155.96875 C 810.03790,157.95845 814.08842,159.77765 818.12500,161.43750 C 822.16158,163.09735 826.21058,164.57421 830.25000,165.90625 C 834.28942,167.23829 838.29731,168.43121 842.31250,169.43750 C 845.38660,170.20793 848.45412,170.79446 851.50000,171.37500 C 868.73920,161.41601 885.97955,151.45900 903.21875,141.50000 C 903.21875,106.12500 903.21875,70.750000 903.21875,35.375000 C 872.58333,17.677083 841.94792,-0.020833000 811.31250,-17.718750 C 780.68750,-0.020833000 750.06250,17.677083 719.43750,35.375000 C 719.43750,42.520833 719.43750,49.666667 719.43750,56.812500 z "
+ id="path2938"
+ transform="matrix(1.111406,0.000000,0.000000,1.111406,-73.16410,-23.75981)" />
+ </g>
+ <g
+ id="g6569"
+ transform="translate(17.50000,-32.50000)">
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e1f8f2;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.8480482;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2184"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(1.009581,0.000000,0.000000,1.009581,612.4564,128.9082)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient6572);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.7500000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 1088.2866,266.84428 C 1141.4917,256.96399 1176.8932,282.14297 1173.3264,312.57248 C 1195.4906,279.72524 1197.4133,233.77686 1175.5927,200.13651 C 1156.1872,168.53875 1118.4374,148.92721 1081.2538,153.06426 L 1080.5740,153.09664 C 1034.4550,157.42995 995.35646,197.72130 991.44756,243.74470 C 998.76814,265.58619 1044.8244,274.91531 1088.2866,266.84428 z "
+ id="path2970"
+ sodipodi:nodetypes="ccccccs" />
+ </g>
+ <path
+ style="color:#000000;fill:url(#linearGradient3016);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 49.937500,763.59375 C 53.688060,764.81536 57.421740,766.03408 61.312500,767.09375 C 66.883510,768.61104 72.574370,769.98808 78.406250,771.15625 C 84.238130,772.32442 90.188540,773.29483 96.250000,774.09375 C 102.31146,774.89267 108.49026,775.49672 114.75000,775.90625 C 121.00974,776.31578 127.35451,776.53125 133.78125,776.53125 C 140.20799,776.53125 146.55276,776.31578 152.81250,775.90625 C 159.07224,775.49672 165.25104,774.89267 171.31250,774.09375 C 177.37396,773.29483 183.32437,772.32442 189.15625,771.15625 C 194.98813,769.98808 200.71024,768.61104 206.28125,767.09375 C 211.85226,765.57646 217.28365,763.90877 222.56250,762.06250 C 226.20512,760.78850 229.66534,759.36004 233.15625,757.93750 C 229.58590,748.46979 224.59587,739.54423 218.00000,731.65625 C 197.76610,706.54663 164.72978,691.75293 132.43750,695.46875 C 94.470420,699.03933 61.563400,727.85999 49.937500,763.59375 z "
+ id="path3001" />
+ <g
+ id="g6573"
+ transform="translate(35.00000,-77.50000)">
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e1e1ff;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.1794462;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2185"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.404567,0.000000,0.000000,0.404567,983.1642,262.5075)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient6576);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 1170.9375,273.37500 C 1147.6265,275.33211 1156.3898,293.50279 1163.2317,315.79052 C 1168.0217,336.79928 1166.1813,357.81723 1186.6193,350.67539 C 1209.4633,344.10485 1220.8334,314.89831 1209.3022,294.34978 C 1202.2331,280.39762 1186.5316,271.73147 1170.9375,273.37500 z "
+ id="path3017"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+ <g
+ id="g6553"
+ transform="translate(-8.321330,8.321330)">
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#f0ffe1;fill-opacity:0.49019608;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.4933209;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.78431374;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2179"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.385011,0.000000,0.000000,0.385011,201.3046,619.4503)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient6564);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.78431374;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 380.00000,629.87500 C 357.40472,631.77368 359.60898,653.27256 366.97875,674.65781 C 372.29641,695.36673 379.09885,711.19366 398.46147,701.87823 C 420.40453,693.07294 427.92083,661.99447 412.64798,644.01491 C 405.10762,634.01474 392.42320,628.70351 380.00000,629.87500 z "
+ id="path3024"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+ <g
+ id="g6565"
+ transform="translate(12.50000,7.500000)">
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#c6e8d8;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:5.2421889;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2182"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.476900,0.000000,0.000000,0.476900,435.0341,397.6021)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient6568);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 656.28125,410.06250 C 630.60417,412.39423 640.24697,431.39308 644.96166,456.71013 C 647.84144,480.84179 657.19613,503.06009 666.75747,503.60672 C 692.76248,505.09346 712.08345,473.34213 706.39176,448.03106 C 702.66652,424.89433 679.60896,407.34855 656.28125,410.06250 z "
+ id="path3031"
+ sodipodi:nodetypes="ccscc" />
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#d3e1ef;fill-opacity:0.49019608;fill-rule:evenodd;stroke:#ffffff;stroke-width:19.962790;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2181"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.125233,0.000000,0.000000,0.125233,710.5465,374.0234)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#f5ffc8;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:19.392975;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3.9000001;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2186"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(0.193369,0.000000,0.000000,0.193369,1086.428,210.2781)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#ffffe1;fill-opacity:0.58823532;fill-rule:evenodd;stroke:#ffffff;stroke-width:32.398746;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.78431374;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2190"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(7.716348e-2,0.000000,0.000000,7.716348e-2,834.7664,186.2753)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e1c8e1;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:32.398746;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2191"
+ sodipodi:cx="474.00577"
+ sodipodi:cy="124.49567"
+ sodipodi:rx="103.28530"
+ sodipodi:ry="105.12968"
+ d="M 577.29107 124.49567 A 103.28530 105.12968 0 1 1 370.72047,124.49567 A 103.28530 105.12968 0 1 1 577.29107 124.49567 z"
+ transform="matrix(7.716348e-2,0.000000,0.000000,7.716348e-2,408.1814,607.8603)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#ffebeb;fill-opacity:0.39215687;fill-rule:nonzero;stroke:#fcffff;stroke-width:5.0000000;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path6563"
+ sodipodi:cx="617.86743"
+ sodipodi:cy="-277.57925"
+ sodipodi:rx="177.06052"
+ sodipodi:ry="177.06052"
+ d="M 794.92795 -277.57925 A 177.06052 177.06052 0 1 1 440.80692,-277.57925 A 177.06052 177.06052 0 1 1 794.92795 -277.57925 z"
+ transform="matrix(0.958913,0.000000,0.000000,0.958913,562.1152,246.5635)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="text"
+ style="display:block">
+ <g
+ id="g2135">
+ <path
+ style="color:#000000;fill:url(#linearGradient2141);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 679.31250,779.75000 L 679.31250,813.75000 L 679.31250,821.43750 L 679.31250,821.53125 L 679.31250,829.21875 L 679.31250,888.21875 L 694.87500,888.21875 L 694.87500,829.31250 L 813.40625,829.31250 C 817.86493,829.31250 821.24991,832.66599 821.25000,837.12500 L 821.25000,863.21875 L 836.78125,863.21875 L 836.78125,837.12500 C 836.78100,824.30579 826.22527,813.75000 813.40625,813.75000 L 805.84375,813.75000 C 806.75212,811.26740 807.31245,808.62383 807.31250,805.84375 L 807.31250,799.40625 L 791.75000,799.40625 L 791.75000,805.84375 C 791.74992,810.30283 788.39618,813.65625 783.93750,813.65625 L 694.87500,813.65625 L 694.87500,779.75000 L 679.31250,779.75000 z "
+ id="path2133"
+ transform="translate(0.000000,-5.000000)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient2142);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 232.65625,734.00000 C 219.83732,734.00000 209.28126,744.55569 209.28125,757.37500 L 224.84375,757.37500 C 224.84375,752.91602 228.19780,749.56250 232.65625,749.56250 L 238.09375,749.56250 L 238.09375,734.00000 L 232.65625,734.00000 z "
+ id="path2138"
+ transform="translate(582.5000,12.50000)" />
+ <path
+ style="font-size:72.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:url(#linearGradient2143);fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.58823532;font-family:Sans;text-anchor:middle;writing-mode:lr"
+ d="M 164.78125,761.84375 L 164.78125,777.40625 L 373.34375,777.40625 C 383.39889,777.40631 390.72669,778.27052 394.46875,779.37500 L 394.50000,779.37500 L 394.53125,779.37500 C 398.54535,780.52883 401.66294,782.35732 404.40625,785.03125 L 404.43750,785.06250 C 406.91195,787.44270 408.62953,789.98800 409.78125,792.96875 C 410.94070,795.96991 411.59375,799.64528 411.59375,804.00000 C 411.59375,808.42543 410.95246,812.03924 409.78125,815.09375 C 408.62966,818.07423 406.91188,820.61972 404.43750,823.00000 C 401.65322,825.69149 398.41705,827.57102 394.37500,828.75000 C 390.53030,829.84850 383.29703,830.65627 373.34375,830.65625 L 284.15625,830.65625 L 284.15625,797.50000 L 268.59375,797.50000 L 268.59375,838.43750 L 268.59375,846.21875 L 276.37500,846.21875 L 373.34375,846.21875 C 384.03785,846.21878 392.20852,845.56991 398.68750,843.71875 L 398.71875,843.68750 L 398.75000,843.68750 C 405.03131,841.85538 410.66022,838.62433 415.25000,834.18750 C 419.22749,830.36129 422.32997,825.81858 424.31250,820.68750 L 424.31250,820.65625 C 426.27508,815.53787 427.15625,809.95983 427.15625,804.00000 C 427.15624,798.09253 426.28687,792.48550 424.31250,787.37500 C 422.33008,782.24430 419.19676,777.67025 415.21875,773.84375 C 410.64901,769.38957 405.09173,766.23345 398.84375,764.43750 C 392.38440,762.53099 384.18177,761.84381 373.34375,761.84375 L 164.78125,761.84375 z "
+ id="path2139"
+ transform="translate(582.5000,12.50000)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient2144);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 436.75000,761.06250 L 436.75000,768.84375 L 436.75000,838.46875 L 436.75000,846.25000 L 444.53125,846.25000 L 698.87500,846.25000 L 698.87500,830.68750 L 452.31250,830.68750 L 452.31250,776.62500 L 581.15625,776.62500 L 581.15625,761.06250 L 444.53125,761.06250 L 436.75000,761.06250 z "
+ id="path2143"
+ sodipodi:nodetypes="ccccccccccccc"
+ transform="translate(582.5000,12.50000)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient2145);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 458.46875,795.46875 L 458.46875,811.03125 L 510.81250,811.03125 L 510.81250,795.46875 L 458.46875,795.46875 z "
+ id="path2146"
+ transform="translate(582.5000,12.50000)" />
+ </g>
+ <g
+ id="g7463">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;fill:url(#radialGradient7462);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2448"
+ sodipodi:sides="6"
+ sodipodi:cx="138.32854"
+ sodipodi:cy="231.46974"
+ sodipodi:r1="224.65129"
+ sodipodi:r2="22.465130"
+ sodipodi:arg1="-0.52359878"
+ sodipodi:arg2="0.0000000"
+ inkscape:flatsided="false"
+ inkscape:rounded="-2.7755576e-17"
+ inkscape:randomized="0.0000000"
+ d="M 332.88226,119.14410 L 160.79367,231.46974 L 332.88226,343.79539 L 149.56110,250.92511 L 138.32854,456.12103 L 127.09597,250.92511 L -56.225187,343.79539 L 115.86341,231.46974 L -56.225188,119.14410 L 127.09597,212.01437 L 138.32854,6.8184509 L 149.56110,212.01437 L 332.88226,119.14410 z "
+ transform="matrix(0.537626,0.310399,-0.310399,0.537626,681.8665,611.4083)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:url(#radialGradient5041);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path2474"
+ sodipodi:cx="687.95392"
+ sodipodi:cy="779.25073"
+ sodipodi:rx="77.463974"
+ sodipodi:ry="77.463974"
+ d="M 765.41789 779.25073 A 77.463974 77.463974 0 1 1 610.48994,779.25073 A 77.463974 77.463974 0 1 1 765.41789 779.25073 z"
+ transform="matrix(1.666667,0.000000,0.000000,1.666667,-458.6360,-524.5005)" />
+ </g>
+ <path
+ style="color:#000000;fill:#ffebff;fill-opacity:0.39215687;fill-rule:evenodd;stroke:#ffffff;stroke-width:5.9921207;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 312.74687,978.22269 L 346.52745,909.72526 L 264.28559,783.70346 L 114.63237,794.41438 L 47.183560,931.10964 L 77.930631,978.22269"
+ id="path2503"
+ sodipodi:nodetypes="cccccc" />
+ <g
+ id="g2076">
+ <path
+ style="color:#000000;fill:url(#linearGradient2082);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 684.21875,778.81250 C 681.40260,782.30924 684.42847,788.97514 683.31250,793.75000 C 683.31250,822.26042 683.31250,850.77083 683.31250,879.28125 C 688.01287,880.19622 693.38668,879.00197 690.87500,873.21875 C 690.87500,855.58333 690.87500,837.94792 690.87500,820.31250 C 732.63386,820.43965 774.49458,819.91208 816.18948,820.83393 C 826.42214,822.75503 825.35041,835.27900 825.56250,843.15625 C 826.13130,847.11935 822.09595,854.90989 828.58968,854.62422 C 835.90374,855.65273 831.91303,846.34506 832.85477,842.18818 C 833.46405,831.75649 832.13733,818.27748 820.60486,814.34604 C 814.27631,811.90390 807.29793,813.12689 800.65625,812.71875 C 800.68062,808.41190 805.90445,801.09185 802.12500,798.40625 C 794.39191,795.30824 796.21450,803.82136 793.34704,807.76923 C 786.39942,816.06575 774.26421,811.47273 764.93750,812.65625 C 740.25000,812.65625 715.56250,812.65625 690.87500,812.65625 C 690.87500,801.33333 690.87500,790.01042 690.87500,778.68750 C 688.65032,778.44670 686.43944,778.64496 684.21875,778.81250 z "
+ id="path2892" />
+ <path
+ style="color:#000000;fill:url(#linearGradient2083);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 811.12500,750.93750 C 803.95975,752.61225 797.68014,758.56833 796.34375,765.90625 C 801.66292,767.11034 805.82964,765.29185 807.62500,760.25000 C 811.25925,757.48127 819.04254,760.32956 816.78125,753.12500 C 817.47799,748.57866 813.73505,751.04373 811.12500,750.93750 z "
+ id="path2893" />
+ <path
+ style="font-size:72.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:url(#linearGradient2084);fill-opacity:1.0000000;stroke:none;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.58823532;font-family:Sans;text-anchor:middle;writing-mode:lr"
+ d="M 925.31250,778.43750 C 867.30256,778.22914 809.29160,778.39869 751.28125,778.34375 C 748.51806,787.29527 755.67275,786.32594 762.28125,785.90296 C 830.53585,786.00172 898.81419,785.56893 967.05358,786.45472 C 981.37413,786.11429 996.54001,795.85480 997.65565,811.04689 C 1000.6398,826.05385 991.20809,843.74506 975.03106,845.39144 C 954.52373,848.82124 933.54967,846.36617 912.84375,847.15625 C 896.11458,847.15625 879.38542,847.15625 862.65625,847.15625 C 862.65625,836.08333 862.65625,825.01042 862.65625,813.93750 C 857.95588,813.02253 852.58207,814.21678 855.09375,820.00000 C 855.09375,831.57292 855.09375,843.14583 855.09375,854.71875 C 895.03181,854.37705 935.06393,855.78604 974.93570,853.51811 C 992.49380,851.14304 1006.5910,834.55915 1005.5078,816.72352 C 1006.7415,797.42480 990.10174,778.74328 970.37302,779.45423 C 955.42046,777.77167 940.32976,778.30119 925.31250,778.43750 z "
+ id="path2894" />
+ <path
+ style="color:#000000;fill:url(#linearGradient2085);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 1155.0625,777.53125 C 1111.1294,777.60420 1067.1868,777.54164 1023.2500,777.56250 C 1023.2500,803.29167 1023.2500,829.02083 1023.2500,854.75000 C 1107.9792,854.75000 1192.7083,854.75000 1277.4375,854.75000 C 1278.3525,850.04963 1277.1582,844.67582 1271.3750,847.18750 C 1191.1875,847.18750 1111.0000,847.18750 1030.8125,847.18750 C 1030.8125,826.50000 1030.8125,805.81250 1030.8125,785.12500 C 1073.7812,785.12500 1116.7500,785.12500 1159.7188,785.12500 C 1159.7541,781.64084 1160.9672,774.77739 1155.0625,777.53125 z "
+ id="path2895" />
+ <path
+ style="color:#000000;fill:url(#linearGradient2086);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 1084.7188,811.93750 C 1071.4732,812.01081 1058.2180,811.94762 1044.9688,811.96875 C 1042.2056,820.91944 1049.3602,819.95225 1055.9688,819.53125 C 1067.1042,819.53125 1078.2396,819.53125 1089.3750,819.53125 C 1089.4103,816.04709 1090.6234,809.18364 1084.7188,811.93750 z "
+ id="path2896" />
+ </g>
+ <path
+ style="color:#000000;fill:url(#linearGradient3000);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ d="M 118.19019,799.80729 C 102.82290,830.96632 87.455607,862.12535 72.088313,893.28438 C 122.88715,925.08784 183.32053,938.12949 242.59797,940.56915 C 270.95239,941.79062 299.42273,940.07947 327.46502,935.75353 C 331.67199,927.22725 335.87895,918.70095 340.08592,910.17467 C 313.85791,869.99000 287.62990,829.80534 261.40188,789.62068 C 213.66466,793.01621 165.92742,796.41176 118.19019,799.80729 z "
+ id="path2981" />
+ <g
+ id="g5042"
+ transform="matrix(1.265702,0.000000,0.000000,1.265702,-840.7340,-416.4842)">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;fill:url(#radialGradient5045);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.58823532;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path5043"
+ sodipodi:sides="6"
+ sodipodi:cx="138.32854"
+ sodipodi:cy="231.46974"
+ sodipodi:r1="224.65129"
+ sodipodi:r2="22.465130"
+ sodipodi:arg1="-0.52359878"
+ sodipodi:arg2="0.0000000"
+ inkscape:flatsided="false"
+ inkscape:rounded="-2.7755576e-17"
+ inkscape:randomized="0.0000000"
+ d="M 332.88226,119.14410 L 160.79367,231.46974 L 332.88226,343.79539 L 149.56110,250.92511 L 138.32854,456.12103 L 127.09597,250.92511 L -56.225187,343.79539 L 115.86341,231.46974 L -56.225188,119.14410 L 127.09597,212.01437 L 138.32854,6.8184509 L 149.56110,212.01437 L 332.88226,119.14410 z "
+ transform="matrix(0.668986,0.386239,-0.386239,0.668986,681.2505,785.5117)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:url(#radialGradient5046);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.68627453;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block"
+ id="path5044"
+ sodipodi:cx="687.95392"
+ sodipodi:cy="779.25073"
+ sodipodi:rx="77.463974"
+ sodipodi:ry="77.463974"
+ d="M 765.41789 779.25073 A 77.463974 77.463974 0 1 1 610.48994,779.25073 A 77.463974 77.463974 0 1 1 765.41789 779.25073 z"
+ transform="matrix(1.666667,0.000000,0.000000,1.666667,-458.6360,-309.5005)" />
+ </g>
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/mtsthelens.svg b/PerformanceTests/PageLoad/svg/files/mtsthelens.svg
new file mode 100644
index 000000000..8ea4f4c09
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/mtsthelens.svg
@@ -0,0 +1,1629 @@
+<?xml version="1.0" ?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" height="504.000000" width="576.000000" onmousemove='showCoords(evt)' onmouseover='showDatatip(evt)' onmouseout='hideDatatip(evt)' onzoom='updateCoords()' onscroll='updateCoords()' onresize='updateCoords()' viewBox="0 0 576 504" onload='initCoords(evt)'><title>mtsthelens / map8x11</title>
+<script type='text/ecmascript' >
+<![CDATA[
+ var ox, oy;
+ var newScale;
+ var distscale =1.000000;
+ var prevtarget;
+ var delaytime = 500;
+ var dttime;
+ var hcolor;
+function getElemTitle (elem) {
+var childs = elem.childNodes;
+var found = null;
+for (var i=0; i<childs.length; i++) {
+ if (childs.item(i).nodeType == 1 && childs.item(i).nodeName == "title") found = childs.item(i);
+ }
+if(found) {
+childs = found.childNodes;
+for (var i=0; childs && i<childs.length; i++)
+ if (childs.item(i).nodeType == 3) {
+ return childs.item(i).nodeValue;
+ }
+ }
+return "";
+ }
+ function Highlight (){ var mystyle = new String(prevtarget.getAttribute('style'));
+ var results;
+ if(prevtarget.getAttribute('fill')=='none'){
+ var now = new String('stroke:'+hcolor);
+ results = now;
+ if(mystyle && mystyle !="") {
+ results = mystyle.replace(/stroke:rgb\(\d+,\d+,\d+\)/gi,now);
+ } }
+ else {
+ var fill = new String('fill:'+hcolor);
+ results = fill;
+ if(mystyle&& mystyle !="") {
+ results = mystyle.replace(/fill:rgb\(\d+,\d+,\d+\)/gi,fill);
+ }
+ }
+ prevtarget.setAttribute('style',results);
+ }
+function showDatatip (evt) {
+var targ = evt.target;
+if(targ) {
+ var title = getElemTitle(targ);
+ var x = evt.clientX;
+ var y = evt.clientY;
+ if (title) {
+ prevtarget = targ;
+ prevstyle = targ.getAttribute('style');
+ Highlight();
+ if (dttime != null) clearTimeout(dttime);
+ var dtr = svgDoc.getElementById('DatatipRect');
+ dtr.setAttribute('x',x + 8);
+ dtr.setAttribute('y',y + 8);
+ dtr.setAttribute('width',title.length*6);
+ dtr.setAttribute('height',16);
+ var newtransform;
+ if(svgRoot.getScreenCTM) {
+ var matrix = svgRoot.getScreenCTM();
+ var inv = matrix.inverse();
+ newtransform = 'matrix('+inv.a+' '+inv.b+' '+inv.c+' '+inv.d+' '+inv.e+' '+inv.f+')';
+ }
+ else {
+ newtransform = 'translate('+ox+' '+oy+') scale('+newScale+')';
+ };
+ dtr.setAttribute('transform',newtransform);
+ var dt = svgDoc.getElementById('Datatip');
+ dt.firstChild.nodeValue = title;
+ dt.setAttribute( 'x',x+(title.length*3 + 8));
+ dt.setAttribute( 'y',y + 20);
+ dt.setAttribute( 'transform',newtransform);
+ dtr.setAttribute('visibility', 'visible');
+ dt.setAttribute('visibility', 'visible');
+ }
+ }
+ }
+function delayHide(){ svgDoc.getElementById('DatatipRect').setAttribute('visibility', 'hidden');
+ svgDoc.getElementById('Datatip').setAttribute('visibility', 'hidden');
+ }
+
+function hideDatatip (evt) {
+ if(prevtarget) {
+ if(prevstyle && prevstyle!=""){
+ prevtarget.setAttribute('style',prevstyle);
+ }
+ }
+ if(dttime != null)clearTimeout(dttime);
+ dttime = setTimeout('delayHide()',delaytime);
+ }
+
+// vars referencing SVG Object
+var textX;
+var textY;
+var svgRoot;
+var svgDoc;
+// vars used for maintaining non-zooming objects
+var coordElem;
+var origWidth;
+var origHeight;
+var origPixSize;
+var initLeft;
+var initTop;
+var pixSize;
+var show;
+function StaticElem(obj,x,y) {
+ this.obj = obj;
+ this.x = x;
+ this.y = y;
+}
+function initCoords(evt) {
+ if ( window.svgDocument == null )
+ svgDoc = evt.target.ownerDocument;
+ else svgDoc = svgDocument;
+ svgRoot = svgDoc.documentElement;
+ textX = svgDoc.getElementById("coordx");
+ textY = svgDoc.getElementById("coordy");
+ textX = textX.firstChild;
+ textY = textY.firstChild;
+ var viewboxes = svgRoot.getAttribute("viewBox").split(" ");
+ initLeft = parseFloat(viewboxes[0]);
+ initTop = parseFloat(viewboxes[1]);
+ var initHeight = viewboxes[3];
+ origWidth = svgRoot.getAttribute("width");
+ origHeight = svgRoot.getAttribute("height");
+ origPixSize = initHeight / origHeight;
+ var obj = svgDoc.getElementById('Coords');
+ var trans = getTranslate('Coords');
+ coordElem = new StaticElem(obj, trans.x/origWidth ,trans.y/origHeight);
+ updateCoords();
+ }
+function formatCoord(base){
+ if (base==null)return;
+ var degrees = Math.floor(base);
+ var minutes = Math.floor( t = (base - degrees)*60 );
+ var seconds = Math.floor( t2 = (t - minutes)*6000 );
+ seconds = seconds/100.00;
+ return "" + degrees + "\u00B0 " + minutes + "\u0027 " + seconds + "\u0022";
+}
+function makeLat(l){
+ var north;
+ if (l >0) {
+ north = "N ";
+ }
+ else {
+ north = "S "; l = -1 * l;
+ }
+ if (l>90) l=90;
+ lat = north + formatCoord(l);
+ return lat;
+}
+function makeLon(l){
+ l= -l;
+ var east="";
+ if (l >0){
+ east = "W ";
+ }
+ else {
+ east="E ";
+ l = -1 * l;
+ }
+ lon = east + formatCoord(l);
+ return lon;
+}
+ function showCoords(evt) {
+ var loc = new Point2D();
+ var loc2 = new Point2D();
+ var m_loc = new Point2D();
+ var x = evt.clientX;
+ var y = evt.clientY;
+ if(svgRoot.getScreenCTM) {
+ var matrix=svgRoot.getScreenCTM();
+ var inv = matrix.inverse();
+ loc.x= inv.a*x + inv.c*y + inv.e;
+ loc.y= inv.b*x - inv.d*y - inv.f;
+ }
+ else {
+ loc.x = ox + (x*newScale);
+ loc.y = - oy - (y*newScale);
+ }
+ var loc2 = transform2D(loc,DtoL);
+ var m_loc = transform2D(loc2,LtoG);
+ if(isLatLon) {
+ textY.data = makeLat(m_loc.y);
+ textX.data = makeLon(m_loc.x);
+ }
+ else {
+ textY.data = Math.round(m_loc.y);
+ textX.data = Math.round(m_loc.x);
+ }
+ }
+ function transform2D(pt,M){
+ var newpt = new Point2D();
+ newpt.x = pt.x * M[0][0] + pt.y * M[0][1] + M[0][2];
+ newpt.y = pt.x * M[1][0] + pt.y * M[1][1] + M[1][2];
+ return newpt;
+ }
+function updateCoords() {
+if(svgRoot.getScreenCTM) {
+ var matrix = svgRoot.getScreenCTM();
+ var inv = matrix.inverse();
+ var newtransform = "matrix("+inv.a+" "+inv.b+" "+inv.c+" "+inv.d+" "+inv.e+" "+inv.f+")";
+ coordElem.obj.setAttribute('transform',newtransform);
+ }
+else {
+ var scale = parseFloat(svgRoot.currentScale);
+ var trans = svgRoot.currentTranslate;
+ pixSize = origPixSize / scale;
+ ox = initLeft - (trans.x * pixSize); //pan settings.
+ oy = initTop - (trans.y * pixSize);
+ newScale = 1 / scale;
+ var height = origHeight * pixSize;
+ var width = origWidth * pixSize;
+ newtransform = "translate("+(ox + width * coordElem.x)+" "+ (oy + height * coordElem.y) + ") " + " scale(" + newScale + ")";
+ coordElem.obj.setAttribute('transform',newtransform);
+ newScale *= distscale; }
+ }
+function Point2D() { //initializes 2dpoint
+ this.x = 0;
+ this.y = 0;
+ }
+function getTranslate(myElement) {
+ element = svgDoc.getElementById(myElement);
+ var offset = new Point2D();
+ var curTransform = element.getAttribute("transform");
+ curTransform = new String(curTransform);
+ var translateRegExp=/translate\(([-+]?\d+)(\s*[\s,]\s*)([-+]?\d+)\)\s*/;
+ if (curTransform.length != 0) {
+ var result = curTransform.match(translateRegExp); //extract the translation-part from the transform
+ if (result != null && result.index != -1) {
+ offset.x = result[1];
+ offset.y = result[3];
+ }
+ }
+ return offset;
+}
+]]>
+</script>
+
+<defs><clipPath id ="masterclip" ><path d="M0,0L576,0L576,504L0,504" /></clipPath></defs><g style="clip-path:url(#masterclip)" ><g id="screen">
+ <rect width="100%" height="100%" opacity="0" />
+</g>
+
+<rect style="fill:rgb(254,254,254);" x="0" y="0" width="575" height="503" /><g id="L0" >
+<g id="L1" >
+<defs><clipPath id ="cp0" >
+<path d="M0,0v503h575v-503z " />
+</clipPath></defs>
+<image x="0" y="0" height="504" width="576" xlink:href="mtsthelens0.jpg" />
+</g>
+<g id="L2" >
+<path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-329,902v-1515" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-194,-614v1515" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-60,900v-1515" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M74,-616v1515" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M209,898v-1515" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M344,-619v1515" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,895v-1515" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M613,-622v1515" />
+<path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-373,858h1070" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M695,724h-1069" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-375,589h1069" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M692,454h-1068" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-376,320h1066" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M689,185h-1066" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-378,50h1065" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M685,-83h-1064" />
+<path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-380,-218h1063" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M682,-353h-1063" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-382,-488h1062" /><path style="stroke-width:0.653086;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M678,-622h-57" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-42,858h-337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-43,724h-337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-44,589h-336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-45,454h-336" />
+<path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-46,320h-336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-47,185h-336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-47,50h-337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-48,-85h-337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-49,-219h-336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-50,-354h-336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-51,-489h-336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-330,570v337" />
+<path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-195,569v337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-61,568v337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M74,567v337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M209,566v336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M344,565v336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,563v336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M613,561v337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M365,858h337" />
+<path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M364,724h336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M362,589h336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M360,454h337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,320h336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M357,185h336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M355,50h336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M353,-85h337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,-219h336" />
+<path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M350,-354h336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,-489h337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,-623h336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-330,-282v-337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-195,-283v-337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-61,-284v-337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M74,-285v-337" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M209,-287v-336" />
+<path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M344,-288v-336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,-290v-336" /><path style="stroke-width:1.306172;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M613,-291v-337" /><path style="stroke-width:5.224689;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-373,902l1071,-10" /><path style="stroke-width:5.224689;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M698,892l-20,-1515" /><path style="stroke-width:5.224689;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M678,-623l-1060,10" /><path style="stroke-width:5.224689;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-382,-613l9,1515" />
+</g>
+<g id="L3" >
+<defs><clipPath id ="cp1" >
+<path d="M0,0v503h575v-503z " />
+</clipPath></defs>
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,426l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,311l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,242h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,439l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,15h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M3,6l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,20l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,411h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,89h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,297z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M3,229l-3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,172l4,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M3,117l-1,-10" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,15l-5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M3,6l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M3,117h-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M0,123l12,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,133l-1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,175v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M0,494l6,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,280h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,248l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,242v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,223v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M1,89l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,97l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M0,153h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,229h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M6,226l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,251h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,297l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,303l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M5,500h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M7,419l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M1,313h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,241h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,224l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M6,185l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,175v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M3,153l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,133l4,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M3,90l16,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,98l11,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,19h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M14,124h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M8,128l-7,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M10,176l-1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M6,185l-6,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,219l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,224l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M6,253l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M6,253h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M5,313l3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M1,411l7,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,438l4,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M7,433l4,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M7,433l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M5,500v3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M6,491l-2,9" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,303l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,298l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,251l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M5,227l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M5,226h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M5,216l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M4,154l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M6,137l3,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M7,215l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,220l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,221z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,241l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,293l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M8,299l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M7,419l-3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,423v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,497l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M8,406l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M8,299l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,220l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M9,198l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,168l4,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M17,165l-11,-9" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M12,143v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M9,133z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,128v-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M14,124l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M9,130v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M11,145l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M12,146z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M11,148l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M7,183l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M10,185l8,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M8,201l1,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,221l2,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,233v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M9,311l-1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,394l6,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M0,378l10,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M9,405v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,423h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M10,421l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,401l-1,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,307l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,293h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M5,242h6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,233z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M14,124z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M9,130l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M10,198h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M14,230l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,233l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,242h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M10,253h-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,293v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M15,469l-3,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M14,501l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,471l1,12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,420l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M10,404h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M6,393l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M10,376l5,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,296l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,292l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,280l11,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M10,253h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,242l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,231l-1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M9,208l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,179l-3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M11,148h3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M11,145l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M19,138z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M14,134v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M9,131v2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M18,141l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M14,136l-2,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M8,172l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M17,165v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,179l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M10,198l7,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,210l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M18,215v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,234h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M16,232l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,279l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,290l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,307l-4,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,401l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,497l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,429l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,323l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,253l2,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M18,213v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M18,186h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M14,178h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,67h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,76z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M17,167l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M17,194v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M10,212l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M18,215l-5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M14,289l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M9,395l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M15,469v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,483l1,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M15,468l3,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M14,432l20,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M16,424l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M15,304l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M16,288l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M16,249l4,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M15,240h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M17,193h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,83l9,-16" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,81l3,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M19,193h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M18,230l2,-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M18,230l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,237l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,245z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M17,240h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,280z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M17,303l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,374h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,467l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,479v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M14,486v8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,467l-1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,327l2,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M17,202l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M19,151l-5,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M13,102l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,143l-2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M19,151h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,207l-2,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M23,458l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,479l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,481l2,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M19,473l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,459l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,415l7,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,374l-7,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,334l1,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,279l-7,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M16,249l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,245l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,235l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M19,186l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M15,178h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,143l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,128l-1,10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M15,129l-1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M9,131z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,145h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M21,151h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,245h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,237l-3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,245l5,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M19,302l4,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,348l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,424l7,-9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,466l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M18,475l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,493l-1,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,497v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,374h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M18,343l4,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M23,301h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,225h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,193l2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,185l3,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M22,165h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,145h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M14,105l9,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M2,107l16,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,15l7,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M4,5l9,-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M12,85l7,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M23,88l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M27,134v-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,145h-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M22,151l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M16,178l9,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,186z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M17,202l7,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M23,234h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M19,286l9,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,301l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,363l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,397z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,397z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M27,405l1,-8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M36,401z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,463l6,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,497l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,498l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,493v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M23,458l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,457h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,363l1,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,334l-3,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,304v3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,280l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,279l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,253l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,234l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,203l11,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,174l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M27,134l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M23,110l4,14" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M18,117l2,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,91l8,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M11,83l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,81l2,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M60,7l-41,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,67z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M26,75l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M27,124l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M20,123v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M29,137v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M26,165h-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,186l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M21,225h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M26,225l5,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,233l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,253l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M27,281h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,307v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M26,457z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M26,457h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,500l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,462h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,397v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M24,374l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M27,350l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,315l-3,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,289h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M27,246h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,185l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M32,171h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M29,161l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M25,150l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M26,126l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M32,107z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M22,67l26,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M26,75l9,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,110l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M27,128v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,145h-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M28,149h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M29,161l-3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M33,171l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,351l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,378v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M30,380l-2,14" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M36,389v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M17,425l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,375l2,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,373l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M29,357l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M25,312l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M27,281z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M29,255l5,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M29,246l-2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M32,171l-6,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M30,160z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M29,149h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,145l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M29,138h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,110h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,137l1,-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M30,138z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M30,144h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M30,149h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M31,149l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M31,160h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M27,248l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M29,281l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,280l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M29,364l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M30,378h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,500h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,380h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M36,389l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,367l3,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,258z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M33,153v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,144h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M32,132l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M32,110v14" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M32,107l1,-8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M32,124l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,137l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,137h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M32,144h4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M33,160h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,244v-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,277v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,277z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M29,289l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M30,354z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,396l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M37,398z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M30,457h4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M31,462h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M30,500h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,457z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,462h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M33,408l-6,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M36,401z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M30,354z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,301z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M32,294l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,240h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M33,160l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M33,153h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,138v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M33,128v2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M34,153l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M36,154h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M32,230l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,258z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M35,279l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,297v4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,301l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M30,354z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M35,500l7,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,430l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,410l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M38,407l-2,-6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,321v-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,305v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,277l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,276v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,258l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M33,249l2,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,226l-4,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,226v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,170h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M41,134v-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,113l4,-7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M44,120l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M39,152l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M35,198l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,212l-7,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,212h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M33,250l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,254z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,272h6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,309v-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M37,398l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,410l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M38,407l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M35,418l2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M37,412l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,457h6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M34,462h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M40,457l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M35,462l12,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M37,420l8,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M40,415l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,403v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M28,394l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M36,393l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M38,382l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M37,368l-3,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,341l2,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,309z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,307z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,254l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M33,249v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,225l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M37,196l4,-7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M35,170l6,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M35,162l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M38,153l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,138l-3,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M37,154l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M39,164z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M43,163l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,244l-3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,261l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,309z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,307l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,356l-1,-15" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M38,382l-1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,390l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,403z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M36,429h8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,395v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,293l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M37,262l10,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M41,234l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,224l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M42,144l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,123l-1,-10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M45,120h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,105l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M41,134l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M40,150l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M41,234l-2,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,249l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,292l3,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M42,378l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,403l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,457l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M39,408l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,405v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,401v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M40,381l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,321l2,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,290l-4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,264z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,258h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,212l3,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M43,163l-4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,258z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,272h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,290l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,369l-7,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,395l2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M47,431l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,486z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M46,406l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,397l-2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,390v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,384l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,369h6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,356h6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M40,331v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,309v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,309v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,272l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M47,245l1,-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,232h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,232l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,214h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M41,189l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M41,173l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M42,144l-1,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M43,141l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M40,125l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,124l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M39,123v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M45,120v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,72l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M35,77l9,11" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M45,124z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M45,124z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M46,127l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M49,129l-3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,150l1,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,172l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M50,184l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M45,223h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M45,231h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,230l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,294l3,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,310v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M38,311v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M40,332v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,325l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,384l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,429l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M45,430l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,486z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M42,411l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,406h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M45,383h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M55,340l3,-7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M46,297l6,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,274l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M56,233h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M47,223h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M47,214h-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M50,184l-5,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,106l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M45,119l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M46,162h6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M47,202l3,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M47,223l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M47,214l4,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,230h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,264l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M46,276v6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,314l2,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M45,376h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M47,383h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M45,422h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M42,416h7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,482l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,457v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,422h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,416l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M47,410h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,405l3,-6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,383l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M50,322l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,249l5,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M47,202l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M50,184z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,172l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M45,139l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,73l7,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M44,88l15,10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M49,118l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M52,162h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,173l3,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M52,202l-3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,252l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,306l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M49,376l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,376l-3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M50,377l3,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,384l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,397v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M53,407z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,405h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M49,410l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,422l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M51,417l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,486z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,503l-7,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,479l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,433l2,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M51,310l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M46,282v7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,264v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M46,258l6,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M47,245l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M50,226l-1,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M50,195l3,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,150l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,146l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M48,134v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M49,129l-1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M51,117z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,101l-12,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M43,103l18,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M51,117l5,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M51,151l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M51,182h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M50,196v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,233v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M49,265h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,259l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,265z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,260h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,301l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,304l1,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,304l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M45,356l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M53,407l-3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M50,443l6,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,486v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,458h-12" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M47,467h7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M47,431z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M53,407z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M48,405z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,397l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,396l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,321l-1,-11" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,265l14,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,260l6,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M50,253l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M56,233l-8,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,206l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M52,202l2,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M56,178l-4,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,174l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M51,145l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M53,162l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M54,160l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M55,163l4,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M54,193h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,205v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M54,200l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,254h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,376l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M53,379l6,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M55,392l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M55,392z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,394v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,395h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,404l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M55,402l3,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M50,424l5,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M56,421l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,482v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,487l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M55,427h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,422h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,394v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M55,392l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M46,361l11,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M50,369l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,322v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,293l1,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,215l-3,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,175l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,146v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,147l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,252l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,321v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,328z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,467l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M55,490l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,478l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M56,446l-1,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,430v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,404v2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M55,402l-2,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,388v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,328l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M60,320l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,305v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,267z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M60,261l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M59,190l-5,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M63,151v-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M56,156l3,-12" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M59,130l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M62,140h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,232h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,232l5,-10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,291l-6,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,307v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,305z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M55,340l4,9" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M61,399v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M58,399v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,409l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,457l-1,-10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,491l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,479h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,469h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,430l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,427l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,422h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,410l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,406v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M61,398v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M58,397l2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M59,382l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,387l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,305l-1,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,291l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,252l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M53,211l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,206l-4,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M61,143l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M58,157l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M64,203l-5,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M58,198l-2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M69,253l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,251l8,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,305z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,371l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M61,383v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,388z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,403l2,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M58,399z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M60,412l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M60,422h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M61,422l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,457h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M61,457l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M60,479h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M58,447l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,414z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M61,385h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M60,377l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,349l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M59,322l-2,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M59,190l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M60,161l5,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M61,132l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M62,133l4,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M59,167l6,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M68,186v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M62,189l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,305z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,378l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,392l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M64,388l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,414l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M63,415l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M61,431l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M61,495l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,496z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,450l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M67,391l-1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M64,388v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M64,380z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M63,385h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M57,354l8,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M52,368l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M60,320l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,305z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,288l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M64,203z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M58,198l6,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M62,171l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M63,151h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M56,156l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,146v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M59,144l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M56,125l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M66,137l-3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,146l-3,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M59,144z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M66,194l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M66,195v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M65,203h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M65,196h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M61,286l5,-18" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,288h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M63,350l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M65,359v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M54,369v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M64,380l3,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M64,385v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M64,387v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,392l-5,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M61,390l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M63,433l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,502l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M78,497l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,496h6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M60,469l6,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M63,453v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M65,434l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,364l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,305l7,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,268v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,282l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M65,203h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M64,151l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M68,144l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M60,7l4,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M67,121l-3,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M68,186l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M74,355l-9,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,364l5,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,388l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M64,386z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M64,424l3,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M67,428v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M67,429l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M70,439l-2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,440z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,468l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,479h6" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M74,491h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,440l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,417h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,388v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,388z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,388z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,357l3,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,267z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M69,253l-7,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M63,222l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M66,195l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M66,174l4,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M68,144l-2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M67,122l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M67,121v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,101l2,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M61,109l3,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,120h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M62,171l8,-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M70,178l-2,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M67,190l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M77,193l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M68,220l8,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M69,314l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M72,317l7,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M68,496l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M74,491l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,467h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M68,479h7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M75,491h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M67,417l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,316l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M76,217l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M70,166z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M67,156l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,120l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M74,135z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M74,135l-5,8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M76,143l3,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,149l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M70,158h4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M70,166l7,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M74,234l-3,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M75,290l-1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M70,418h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M70,499l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M76,493l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,500l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M78,497z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M70,439l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M68,436v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M72,431h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M71,418l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,282v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M75,151h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,124z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M72,126l1,-6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,107l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,124v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M72,126l2,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M62,305z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M72,343l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,431h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,441l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,284l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,267h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M72,252l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M66,247l9,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M74,151v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M76,109v4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M77,169z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M70,203h9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M85,237l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M75,239l6,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M81,243h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M67,267h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M74,280h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M75,290l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M78,294l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M80,435l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M74,431l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,435v3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,427l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M82,303v-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M74,234l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M77,169z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M75,151h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,149l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,125v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M74,131l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M56,78l37,-13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M76,143l-2,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M78,175l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M76,420l2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M80,435h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,438l-4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M78,422l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M80,320h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M75,251l7,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M80,243l-5,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,203l3,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M77,193l-6,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M77,169v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M78,151l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M75,133l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M76,113l3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M72,120h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,112v12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,120z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M74,158l6,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M79,179v-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M79,179v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M75,280l4,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M73,341l14,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M80,424l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M81,434v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,427l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M80,424v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,297l3,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,283l8,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M93,286l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M81,229l-10,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M80,187l-1,-7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M78,175l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M77,171v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,138l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M79,126l3,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M81,135l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M82,149l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M80,150l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M83,173l-1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M84,176l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M80,191l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M81,229h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M82,303l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M81,433l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M83,431v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M86,305l-6,15" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M82,248h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M82,211l-5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M82,170v-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M82,133v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M84,193l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M87,427v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M85,429l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M85,195l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M80,187l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M85,179v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M83,173v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M82,170v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M80,157l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M85,147z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M85,147l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M83,160l-1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M89,168v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M84,176l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M85,181h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M85,189h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M85,237l-4,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M97,473l-24,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M75,479l15,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M77,491h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M86,236l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M86,229l-5,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M92,213l-2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M86,189l5,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M89,167v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M87,149l6,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M93,155v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M87,181l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M87,196l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M88,200l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M89,228l2,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M89,229l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M87,427l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M72,343l18,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M87,247l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M92,215v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M88,182l3,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M89,168l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M89,165l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M90,173v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M91,174l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M91,186h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M87,235l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M87,247h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M90,483l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M78,491l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,476h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M89,228v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M91,225l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M89,205v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M92,186l4,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M91,174h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M92,179l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M90,173z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M93,155l-3,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M92,215l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M92,223l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M89,326l-2,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M98,330l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M97,338v-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M95,289l-2,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M91,247h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M90,236l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M89,236h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M92,230h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M93,217v4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M89,206l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M92,179h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M93,173l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M93,178l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M93,173h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M94,173z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M94,177l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M97,196v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M97,197v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M100,230l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M100,230h-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M95,293h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M87,423l11,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M96,293l1,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M95,289v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M87,277l9,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M94,284h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M94,173l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M98,175z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M93,65l3,16" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M98,168l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,245h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M97,238l-3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M96,274l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M96,284l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M104,291l-1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M97,297h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M98,297l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M100,351l-10,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M94,247l9,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M102,216v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M97,198l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M96,192l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M96,170l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M98,175z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M102,216l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M90,325l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M100,328l-2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M101,328l6,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,354l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,476l6,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M98,422h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,303l-2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M100,300z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M106,184v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M98,175l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M98,168v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M96,81l11,-24" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M99,166l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M101,165l2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,167l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M106,184z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M99,197h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M101,217h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M100,282l5,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M103,289l3,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M90,325l13,-6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M100,328z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M97,473l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M91,485l22,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M80,495l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M101,474h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M100,300l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M102,217h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M104,168l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M99,197l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M104,199h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,319l3,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M100,328h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M112,414l-12,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M102,474l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M113,492l-11,11" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M82,496l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M103,292l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M99,272l5,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M104,245z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M104,237l-7,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M102,215h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M106,124l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M106,124v3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M106,127l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M104,217l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M114,227h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M114,227l-8,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M106,268h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,303l3,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,353l-3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M106,345l-9,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M106,323h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M101,328z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M106,309l2,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M104,294l3,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M104,291l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M108,268h-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M104,229h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M104,199l6,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M106,184l-2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M109,174l-3,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M100,173l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M108,123l-3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M110,176v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,177l3,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M104,188l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M116,189v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M107,192l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M105,279l8,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M106,287l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M107,297l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M107,322l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,353z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M106,345l6,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M104,476z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M111,366l-5,-9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M107,322v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M108,316l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M116,239l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M107,132l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M108,134l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M110,177v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M104,245h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M116,239l-12,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M110,301l1,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M119,307z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M109,317v3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M113,320v-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M107,331l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M111,208l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M116,188l-6,-10" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M109,174l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,176v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M114,142l-4,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M112,123h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M117,150v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M119,161v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M116,189h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M109,195h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,354z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M112,350l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M103,353v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M112,343v7" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M110,330l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M114,312l-3,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M119,307z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M114,294h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M113,280z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M108,288l5,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M106,245l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M112,123h-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M111,208l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M109,247l1,12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M113,280z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M113,286h4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M114,294l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M115,295l2,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M109,320z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M114,323l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M117,338l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M114,349l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M109,482h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M113,492l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M113,492l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M115,483l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M113,415l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M111,366l4,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M115,326l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M114,212l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M115,126l-2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M117,150z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M117,150l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M119,152z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M114,199l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M110,204l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M118,202v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M112,205v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M115,294z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M115,343l-1,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,358l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M117,482l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M115,483l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M115,491l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M113,415l9,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,358v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M114,324l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M114,323v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M115,294z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M119,210l6,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M119,160z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M116,128l-1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M114,142l3,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M119,161z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M121,172l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M126,178v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M113,316v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M117,316v4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M117,320h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M120,325l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M115,368l7,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M116,490l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M116,495l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M115,341v2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M117,338l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M118,320l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M114,312l-1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M119,307l-2,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M117,301l2,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M118,295l-3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M108,268h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M118,203l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M110,195l4,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M119,161l2,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M119,152v8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M123,144v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M120,175l-2,13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M126,178l-1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M119,205h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M121,205l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M113,280z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M117,286l3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M120,285l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M123,289v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M122,298l-1,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M122,313l-2,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M120,325l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M119,336l4,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M118,481l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M120,497l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M122,487l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M121,480z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M122,298l-4,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M113,280l8,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M122,238h-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M116,128l5,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M121,129l6,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M110,259l11,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M121,278l7,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M121,305l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M122,479v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M121,480l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M122,487l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M123,334h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M122,313l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M135,243h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M125,212l6,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M123,206h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M118,188v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,182l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M123,144l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M123,142l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,147l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,153l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M127,162v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M126,183l-1,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M130,187l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M126,202v-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M124,206l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M115,227l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M123,317l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M123,360l-1,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,486h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M127,493l-1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M123,496l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M124,325l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,239l-3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M129,231l-10,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M127,162v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,147v3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,143h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,153l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,197l-1,-6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M130,194v-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M123,289l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M127,334l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,357l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,486l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M127,490l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M127,493v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M126,485l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M124,321v4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M127,291h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M128,284z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M126,204l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M127,164l2,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M127,156v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,150l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M127,158v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M110,268l11,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M128,284z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M128,291h10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M132,311h6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M136,317l-4,-6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M133,473l-11,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M128,484l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M128,354l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M129,170l-3,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M126,143l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M127,135l8,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M130,146z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M134,152l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M128,284l-5,-6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M133,326l-2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M132,352z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M141,338v-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M128,284z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M132,237l-7,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M132,230l-3,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M131,215l1,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M126,202v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,197l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M130,194l2,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M125,189l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M130,187v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M130,146l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M135,136l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M135,184l2,-8" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M135,184h-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M135,189l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M136,192l-4,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M132,210l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M134,238l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M142,233l-10,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M129,333l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M132,352z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M128,284z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M134,152v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M132,147l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M134,153h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M123,278l12,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M138,291v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M133,473l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M134,471l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M141,338l6,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M133,326l7,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M135,273l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M135,243l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M140,159v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M140,162l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M133,214l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M142,234l6,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M143,263z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M136,317l-5,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M132,334l8,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M139,223l-5,-6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M135,189h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M141,166v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M137,139l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M136,153l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M140,158l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M140,159v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M141,167v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M145,186l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M140,186l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M137,270h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M122,419l20,17" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M141,324l1,-6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M140,310l3,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M142,282l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M134,238l2,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M142,234v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M141,168l4,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M139,154z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M140,141l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M136,137l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M144,143l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M139,155v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M146,182l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M137,176l3,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M136,244h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M142,282h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M138,287l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M140,310l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M141,333l-1,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M142,436l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M141,335v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M145,271l-6,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M139,223l4,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M145,186l9,11" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M143,230l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M145,271l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M143,438l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M145,440l6,9" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M132,352h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M141,333z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M141,333z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M141,324l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M142,318l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M147,289h-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M154,197l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M139,0l-34,50" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M130,49l30,-43" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M156,48l11,-15" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M143,281v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M143,282l4,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M145,319l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M151,331v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M151,331z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M151,331z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M133,352l12,17" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M148,473h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M135,473h13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M145,369l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M147,289l-4,17" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M143,263l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M143,263l4,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M137,244z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M146,182v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M140,185v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M152,131l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M152,131v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M145,172v7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M137,244l11,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M148,240h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M149,249h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M153,242l-4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M147,258l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M147,266l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M153,331h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M149,288l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M143,282l8,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M153,129l-1,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M149,138l3,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M149,273l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M147,286l2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M151,331l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M151,449l2,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M147,372l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M149,315l2,-25" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M147,231l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M149,138l-3,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M151,283l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M151,330l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M159,463l-6,-9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M157,473h-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M160,481h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M147,372l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M154,335l-7,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M152,329l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M152,269l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M149,268l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M151,260l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M149,249l6,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M153,242h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M107,57l-2,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M138,75l-8,-26" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M159,57l-3,-9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M153,259h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M157,276h4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M160,333h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M160,333l5,12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M156,382l-7,-9" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M161,269l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M155,258l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M152,235l3,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M155,237l11,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M155,258l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M160,268l-4,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M149,315l1,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M159,333l-5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M155,199l3,-8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M160,481l-2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M159,463l-2,10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M160,268z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M161,269v7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M158,485l4,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M155,252l3,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M154,242l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M152,122l10,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M176,186l-18,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M156,265l10,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M162,491l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M163,481l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M168,311l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M157,276l-5,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M168,224v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M138,76l23,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M158,60l9,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M167,82l1,8" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M166,257z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M166,286l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M169,361v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M165,478l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M156,382l10,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M150,289l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M158,254h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M168,90l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M156,244l11,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M169,243h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M172,260l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M173,313h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M166,385l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M165,478l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M164,492l7,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M165,345l4,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M168,310l1,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M168,297l-2,-11" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M169,243l-2,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M168,224l-2,10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M168,223z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M169,287l-1,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M168,310v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M167,386v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M169,476h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M170,476l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M168,387l7,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M170,362l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M169,282l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M168,223l11,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M162,125l13,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M161,74l5,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M167,59l5,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M138,75v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M159,57l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M166,81l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M175,119v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M170,300l5,-6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M169,352v5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M170,362l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M174,469v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M172,473z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M167,387h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M169,302l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M166,257l6,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M171,243h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M175,118l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M179,85h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M179,85l-8,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M176,243h-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M171,278l3,-8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M173,361h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M174,469l-2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M174,463l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M175,365v-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M169,360v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M173,313l-4,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M177,58l2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M180,319l-5,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M173,361h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M175,365v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M176,378v-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M176,382l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M174,463v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M171,491l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M175,460v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M177,459l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M175,391l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M176,382l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M176,378l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M176,375l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M177,369v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M175,367l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M176,361l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M179,333v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M175,288l-6,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M160,6l18,23" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M167,33l6,8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M172,66l3,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M177,58l3,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M179,251l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M175,292v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M178,328z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M177,370v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M177,371z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M175,379v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M178,384v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M177,393z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M177,393l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M177,459l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M180,394l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M178,385h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M177,371z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M180,365l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M179,333z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M178,328l1,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M175,288h6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M171,278l-2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M174,270l5,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M179,251v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,93v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M178,29h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M173,41l7,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M176,243h3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M177,259l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M179,267z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,288l-6,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M180,319l-2,9" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M180,365h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M179,385z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M178,460l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M175,492l6,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,496l6,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,365v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,364v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M179,254l-1,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M185,245l-6,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,93l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M176,75l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M182,65h-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,29l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M180,40l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M180,52l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,86l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M182,76l-6,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M183,65h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,86l8,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M182,76l5,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M183,65l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M184,249l-4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M184,249l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M188,255h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M179,267l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M185,269l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M182,362l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,366l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M184,371v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,373l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M182,374l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M182,378v-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M180,385h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,461l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,486l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M180,385l3,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M182,374v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M182,368l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M180,333l5,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M200,209z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M187,261v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M180,333h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M182,362l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M184,371l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M182,378l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M184,379l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M187,473z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M182,462l1,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M185,380l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,345l-4,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M174,313h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M188,255l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M187,29l-3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,41l-10,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M195,53l-11,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M188,248v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M187,261l-2,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,274l4,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M175,313v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M185,336h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M183,361l4,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M183,386l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M184,467l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M188,489l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M187,473v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M186,470l1,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M183,465l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M181,396l7,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M187,358z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M186,336l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,299l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,241v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M184,51l-4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M188,13l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,3l7,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M176,186l13,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,255l8,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M203,258h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,255h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,305v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,358l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M187,358h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,372l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,376v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M187,474l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M188,407l7,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,299l-1,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M188,248h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,255h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M185,245h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,241z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,179l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,165l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M201,171l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M188,95l-9,23" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M178,0l10,13" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M188,0l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,14l13,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M197,8l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,165v8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M201,171v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M200,182l2,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M186,245l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,241l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M192,242z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M188,385l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M187,496v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,479l2,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M195,411l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M190,386l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,374v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,345l2,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,255z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M200,209l-21,10" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M187,79l6,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M184,66l12,-9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M192,237l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,358h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,376l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M200,416l-4,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M192,483l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M190,374v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,307l8,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M195,268l1,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M179,118l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M192,237l4,-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M192,242z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M194,284l-3,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M197,311l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M198,312v12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M193,351v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M193,370l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M188,489l-1,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M198,312z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M194,289l-2,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,173v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M201,173v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M198,246l-6,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M198,324l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M195,385l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M195,369h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,303v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,28l16,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M196,38l9,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M204,48l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M191,274v6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,303z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M200,370l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M197,384z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M197,384l7,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M200,370z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M194,284v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M198,246l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M196,232l4,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M200,228h10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M200,247l4,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M200,370l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M203,373l-2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M200,503l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M201,499l2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M210,376l-4,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M201,371z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M205,292v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M203,258l-7,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M200,182v27" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M203,326l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M203,373l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,374l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M205,493l-2,-12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,303v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M199,253l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,258z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,249z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M210,177l10,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M201,174l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M189,28l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M196,38l-5,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M204,48l-9,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M193,75l6,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M196,57l13,9" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M214,155l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M207,169h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M206,250l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M206,251v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,252h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,258l6,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,302l1,-10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,304l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M206,305l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M204,327l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M207,316l1,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M205,282l2,-12" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M212,283v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M193,162l21,-7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M202,170l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M203,16l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M199,9l9,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M205,15l18,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M208,7l5,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M205,284v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M207,331l2,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M212,467h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M205,252l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M210,257z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M223,20z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M214,8h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M209,339l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M205,493l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M204,388l16,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M210,341l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M214,298v-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M212,264l-4,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M223,20z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M214,8l5,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M205,22l18,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M205,35l11,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M206,47h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M205,284v-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M213,288l-1,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M207,316l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M214,428l-14,-12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M209,319l3,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M212,258l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M213,289l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M213,324l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M213,324h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M212,467l-2,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M210,477l-7,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M208,318l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M216,303l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M213,288v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M208,269l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M215,277l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M212,264h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M215,259l-3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M215,245l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M211,173l-1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,114v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M227,79l8,-12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,114l-48,-34" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M227,79l-18,-13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M216,246l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M217,247l2,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M226,253l-1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M215,259l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M215,264l3,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M218,265h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M225,268h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M217,306l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M211,343l4,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M217,351l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M214,428h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M215,428l6,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M219,352l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M215,347l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M211,343z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M218,288v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M215,245h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M210,228l16,-16" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M217,157z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M208,169l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M223,21h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M216,34l11,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M209,47l22,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,154l24,-40" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M226,212l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M217,245l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M225,249h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M216,324l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M218,325l2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M220,327v3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M222,398l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M221,430l10,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M217,310l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M214,298l2,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M218,288l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M215,277l10,-9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M218,257v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M223,259l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M220,264l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M223,286l-5,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M223,286l-4,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M225,297l-2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M225,356l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M222,398l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M224,399z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M220,330l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M218,314l3,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M216,309l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M221,315l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M219,352l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M222,353l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M226,341l-2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M219,333l5,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M224,316h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M223,286v7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M220,264v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M227,268l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M225,297l1,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M224,316v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,337v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,337z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M210,376l21,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M224,399l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M224,317l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M223,286h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,286l8,-12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M235,282l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M230,326l-2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,355l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M217,467l7,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,474l-9,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M226,341l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M219,255l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M226,253l-3,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M220,183l29,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M236,350l-6,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M231,379z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M230,344l-2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M232,291v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M228,265l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M220,242l13,-21" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M228,244l9,-13" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M237,246l3,-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M220,242l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M228,244l-2,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M237,246l-2,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M232,252l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M238,253l5,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,254z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M234,337v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M230,360l7,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M230,327l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M230,326v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M228,311l-2,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,310l-5,-19" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M217,157h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M235,282l-2,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M226,318l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M232,329l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M233,332v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M233,332l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M230,313l-2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M238,311l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M233,289l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M232,314l4,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M234,337l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M231,379l6,9" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M236,339v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,286z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M236,350l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,351v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,388l9,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,365l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,352l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M236,339l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M238,330l1,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M232,274l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M236,281l3,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M236,318l2,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M238,330l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M241,333l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M238,340l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M240,342l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,474l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M240,473l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,471h4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M226,400l7,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M241,333z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M239,331l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M238,322h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,319l-1,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M230,313l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M238,311l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M241,312l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,314l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M248,329z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M241,333z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M238,366l7,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M240,429l-9,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M254,443l-9,-11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,499l-2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,429v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M240,429h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M239,354l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M239,322v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,324z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,297l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,286l-1,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,286z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M232,252l-2,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M236,263l2,-10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,254z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M223,20h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M219,5l14,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M233,221l4,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,231l7,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M240,241l11,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M236,263l-1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,254l-2,14" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M251,267v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M244,282l-1,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M248,294z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M241,355l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M244,357l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,324l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M239,322z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,321l2,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M239,322z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,319v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,297l2,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M244,282l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M249,288z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M233,272l2,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M239,276l4,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M248,274l3,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,20z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M233,3l3,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M246,0l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,249l4,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,254z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M251,264h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M249,288z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M242,314v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,314v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M241,333l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M248,329h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M243,346l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M246,359l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,372l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M245,348h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M252,264z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,254h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M229,210h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,248z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,254h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,315v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,336l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M249,329l4,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M247,348l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M248,349l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M233,403l15,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M243,430l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,375l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M246,337l2,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M253,333z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,317h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,309l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,308v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M248,294l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M249,288l-1,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,279l3,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,248h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M249,254h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,280z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,277v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M250,292v-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M249,298l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M252,309v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M252,319l-3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M253,320l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M249,362z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M248,412l3,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,499l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M250,500l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,413l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M246,390h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M248,340l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M253,333l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M250,299l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,291l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M249,288l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,280z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M249,288z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M250,254l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M254,263h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M248,248h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,20z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M236,11l1,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M247,3l3,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,0l3,10" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M274,0l2,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,220l13,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M244,229l20,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,238l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M259,244l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,280z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,277z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M249,288z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,291l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M252,309l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M249,376l6,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M251,390l2,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M251,503v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M252,503h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M249,363v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M254,334l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M253,310l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M252,294v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M254,288l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,278z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,277v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,277z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,279v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M259,244h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M251,248l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M253,239l4,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M254,263l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M259,283z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M255,282l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,305l1,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M253,320l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M252,342l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,472l14,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M255,394l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M253,393l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M254,322h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,305z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,304v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M252,295l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M254,288v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M255,267l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M252,255l8,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M255,263l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M255,267l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,276l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M257,279v-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M256,295l-1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M255,299l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M254,311l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M250,363l7,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M257,368h3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M252,414l5,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M257,417h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M255,377l3,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M253,353h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M255,344l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M259,316z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M257,312l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M257,297h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M257,300h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M256,295l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M254,290l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M259,283l-1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M255,282v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M259,292l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M259,293v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M258,297l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M258,300v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M259,303l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M258,313l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M257,322l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M249,363h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M261,402l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,472h-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M254,443h6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M245,431v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M264,418l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M256,395l3,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M254,353l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M258,346l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M258,334l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M258,334h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,324z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M259,316h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M259,299l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M258,301z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M259,293l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M258,287v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M261,275l-1,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M257,274v-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M225,21h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M263,32l-36,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M231,50l16,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,262v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M256,264v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M259,283l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M256,281l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M258,288v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,294l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M259,303l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M261,306v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M261,306z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M258,323l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,324z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,334z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M261,380v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M264,418l-5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M252,503z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M259,397h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M258,378l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,368l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,334v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M261,306h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M260,304l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M261,301l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M258,301z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M265,290v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,276v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M257,279v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,266v-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,267v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M263,247l-3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M262,256l-7,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,266v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,269v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,281l1,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M265,284v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M265,284z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M261,295l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,299h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M262,302h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M260,316l3,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,329l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M262,369l6,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M261,381l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M263,405v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M263,406h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M262,403l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M261,402l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,397v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,335l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M260,324l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,299z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,303l-1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M263,298v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M263,247l6,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M262,256l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,234l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M252,239h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M265,290l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,299l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,303z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,325z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M256,354l9,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M266,386h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,405l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,406h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M266,471l-5,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,448l1,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,397l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M263,385l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M265,357l4,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M263,339l5,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,325l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M263,318l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M263,306l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M265,303l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,303h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M265,300l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M266,291v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M265,284v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,269l1,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M265,236l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M269,255l2,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,259l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,281l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M266,293h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M266,301z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,301h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M266,304h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M266,308l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,329v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,330h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M266,386z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M266,419l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M266,471l4,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,480h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,479v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M267,420l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,375z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M262,348h6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M266,319h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M268,309z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,301v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M267,304l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M267,293v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M265,276v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M247,49l36,17" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M270,265l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,289v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M267,294l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,302h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,305h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M268,309z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M268,309l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M269,362l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,375z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M266,405h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M270,424l-2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M271,426l-1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M271,431v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,448l-11,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,386z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,375l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M270,364l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M268,348l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M269,319l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M269,310l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M269,305l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M269,302l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M269,297l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M269,296v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,289l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,286v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,286z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M271,259l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M265,260l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,238l6,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M270,261v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,284l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,291l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,298l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,303l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,306l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,340h-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,349l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M271,431l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,478l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M271,426v3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M270,424v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,386l4,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,340h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M269,330l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M271,311l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,307l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,304v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,299h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,293z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,286l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,293l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,299l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,305h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,309h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M272,312h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M270,320l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,331l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M273,374l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M273,480l2,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,451l5,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M273,432l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M266,405v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,397l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,383h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,374h-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M272,365h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,340h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M273,312l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M273,305h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M273,300h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M274,294h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M275,270l-3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M277,205l-43,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M250,223l21,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M273,281z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,294z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M277,295l-1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,300h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M274,309h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M275,313h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,351l4,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M275,365z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,374l4,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,383z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M269,401v3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M280,424h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,443l3,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,478z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M275,430l5,-6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,383l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,352l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M272,351z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M273,340l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,332l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M272,321l5,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M276,313h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,309h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M276,305h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M276,300h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,294h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M274,280l-1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M276,268l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M276,240l13,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,280h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M277,295l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M277,300l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M279,301l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M279,306l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M277,309h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M277,313z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M277,313h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M277,322h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M277,333l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M276,364l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M277,382v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M276,476l3,-8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M284,414v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M270,400l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M279,373z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,371l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,339l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M278,305h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M278,296l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,280l4,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,113z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M271,65l-36,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,20l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,17l26,15" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M251,14l28,17" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M264,11l16,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M277,8l4,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M277,205l11,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M271,220l9,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M279,277l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,294z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M279,306h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M279,309z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M278,322h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M278,332h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,339l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M276,364v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,371l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M279,373z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M278,381h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,394l-3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M275,477v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,502l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,502l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M276,477h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M276,476v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,469l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M283,432l-1,-8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M282,406l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,394l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,370z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,338z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M279,332l5,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M280,322l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M278,313h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,309l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,306l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M279,309h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,302l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,294l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,294z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M276,268l5,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,20z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M237,17z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M250,13l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M263,10l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M276,7l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,286z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,294h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,301l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,307h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,310z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M281,313h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M281,321h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M282,321l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,338h-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,352l-4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,368h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,381h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,392l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M284,411l-2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,391z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,381l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,368l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M276,363l7,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M283,313z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,310h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,307z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M282,300h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M282,294h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,286z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M281,269l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M224,154l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M286,267l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,280l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,288z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M284,292v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,294l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,300l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,307h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,310h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M283,313h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,338h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,348l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M283,359h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,380h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,391l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,454l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M288,498v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,469l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M284,457l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M281,424h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M284,393l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M284,359l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,345h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,338h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M285,313z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M284,310h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,307v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,299z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M284,292v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,288l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,286v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,282v4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M284,281l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M286,267l-3,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M249,184l37,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M248,114z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,287h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,299l3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,306h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,306v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,308h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,310h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M288,311h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M285,313h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M285,320h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M284,329l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,337l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,379l5,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,396h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M290,428l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M290,428l-7,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M283,471l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,458l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M286,396l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,374h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,367l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M284,350h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,327z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M286,320l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,308l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,290l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,303z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M288,305v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M288,311l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M290,356h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,367l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,397l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M284,414v4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M288,498l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M284,418l4,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M286,407l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,396h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,327h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M286,309v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M289,311v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M288,305h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,308v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,303l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,303z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M288,298h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,287l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,279l2,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,278l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,242z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M288,182l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,242l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M294,250l1,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M301,250v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M294,251v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M301,250z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M290,264l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,268l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M291,292v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,298l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,303l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,307l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M289,310h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M290,356l-4,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,396l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,392l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M288,423h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M288,496h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M288,460l6,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M290,423z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,348l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M291,345h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M287,337l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M291,335h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M288,319l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M291,306l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M291,302l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,294v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M291,293l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,290l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,281v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,278z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M290,264h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,219l12,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M293,177l-5,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M247,113l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,203h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,214h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M293,214h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M292,264v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,282z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,297z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,297z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,301v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,301z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M293,303z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,304l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M291,309l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M291,335h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,335h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,345h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M285,379l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,390l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,392v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M286,474l6,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,496l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M290,423l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M289,408l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,392z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,366h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M293,335l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M293,317l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M291,309l3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,304v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,301z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M293,303l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,297l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,297v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,282l1,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M294,261l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M297,70l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,64l9,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,201l-9,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,281v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,278v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,292z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,296l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,301l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,302v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M294,308v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,326l8,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M293,356l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,374l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,386l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,392z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M291,495h6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M292,479l4,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,461l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M293,426l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M294,406l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,384l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,384l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,373h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,366h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M295,354l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,336h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M288,327z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M295,316l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M294,307z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M294,307l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,299l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,292v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,289l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,281v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,282z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,279l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,268l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M292,263z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M294,261l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,214l10,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M296,178l-3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M283,66l-12,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M279,31l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M280,21l9,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M281,10l15,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M283,33l8,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,25l13,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,17l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,241l10,-12" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M302,236l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M300,256l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,265v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,265v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M295,270l-3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,277v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,282l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,282z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,288v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,289v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,298l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M296,305l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M295,316h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M294,345l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,366h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,366h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,383z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M296,402v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,480z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,480l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,464z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M296,401l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,373h5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M297,353h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M297,353l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,334v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M289,326l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M298,309v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M297,306l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M297,297z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M297,297l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,286z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,285v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,282z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,282v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,276l4,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M294,251l1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M301,250v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M291,44l6,23" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,200l-1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,263l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,263v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,281z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,280l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M300,287v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,294l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,295z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M299,299l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M299,300v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M298,307z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M299,312l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M297,324h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,344h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M298,352h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M301,362h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M297,495h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,495l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M298,400h8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M296,383l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,365l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M300,344l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,335l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,334l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,324h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M299,312l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M299,300h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M300,298v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,294v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M300,286l-2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M296,69l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,64l1,-10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M297,70l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,64z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,292v-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M300,297l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M300,297z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M300,300h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,305z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M302,300h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,305z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,307h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,321v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M300,332h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M299,352l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,366v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M301,373h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M300,386l8,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M291,424l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,475z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,372l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M301,353z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M300,297z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M302,294v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M302,294v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M300,287l-1,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,280l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M303,282l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M300,256v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,262v-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M291,37v7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M302,31z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M301,19l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M302,2l-2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M328,2l-2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,6l-4,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M302,2l5,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M302,31l8,14" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M302,18l4,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,241z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M295,245l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M301,249l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M300,271l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,273l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,277v-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M303,283v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M302,292l1,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M302,293v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M301,345h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M301,353l6,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,462l-9,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M302,478l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,499z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,499h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,475l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,475z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,381l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,361l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,345l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M301,332l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,321l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,320l1,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,307v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,305l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,305z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M303,300l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M302,292z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M302,292z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M303,286v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M303,285v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M303,282v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,277z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M298,265l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,265l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,248l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M290,241z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M302,236l-3,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M300,229l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M304,234z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,200l10,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,48v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,220h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,228h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M304,234h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M308,236v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,247l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,273z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M302,278z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M306,281h-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M306,297l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,305l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M304,299h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,311l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,316l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,326v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,331l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,340v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M307,403l4,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,439z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,439z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,462l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,475h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,475l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M306,463l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M307,442v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,427h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M307,403v-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M306,400z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,372l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M310,352z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,339v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,326l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,313v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M305,299l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M303,277l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M306,277v4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M302,267l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,271l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M299,263h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,263l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M296,178l10,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M308,236l3,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M306,257l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M306,267l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,314v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M307,327l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,340l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M306,400l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,427l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,433l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M307,461l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,445l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M307,442l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,439l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M307,371h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M304,361l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,338h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M308,292l1,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M307,266l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M307,250l-2,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M306,234l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,50l-6,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,228h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M306,257l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,265h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,265z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M306,277l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,303l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M305,299z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,313v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,325l2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,338l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,371z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,435l-1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,448l1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,458l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,465l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,459z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,469z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,473z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,473v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,469v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,458z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,454v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,433l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,380h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,360l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M310,352l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M310,352l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,337z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,326l2,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,320l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,313l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,311l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,302l3,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M309,282v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M314,260h-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M308,252l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M307,250l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,228h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M306,173h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M321,66l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,62l2,-10" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M308,173l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M314,218l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M311,243l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M312,245h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,254l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M316,260l2,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,265l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M308,293v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,309v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,314v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M314,331l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,337z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M314,336l-3,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M311,351h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,371z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,380h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,432l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,467l-2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,499l6,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,502l5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,465v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M313,464z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,458v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,429l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,380h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M313,360l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M312,351h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,315h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,298l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M308,292v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M309,285v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M309,281v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M316,260h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,265h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M305,220l9,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M302,74l13,10" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M310,48v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,228l15,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,284v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,294l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M313,297l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M311,308l3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M314,331l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M316,345v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M314,349v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M313,373l-4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M313,380l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,427l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,462l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,462z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M311,402h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M313,373h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M313,360l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M316,345l-2,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M314,307l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,284z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M312,172l5,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M327,64z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M321,58v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M314,51v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,269z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M313,267v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,288v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,294v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,301l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,333l-1,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M314,350l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,373h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,458z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,458z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,462l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,458v2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M314,426l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M313,402l4,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M314,381l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,369z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,303l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,269z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M313,269l2,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,253h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M315,245l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M315,84l3,19" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M309,201l12,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M319,245l-2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,253l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M320,256l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M321,257l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,269l2,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,279h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M319,341l-3,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M319,341z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,371v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,385h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,460v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M316,501l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,502h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,467v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,458h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M317,399z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,385z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,369l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,358l-1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M320,339l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,326v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,323l2,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,315l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,303l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,288l-1,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,283l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,265l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M313,266v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M321,202l7,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M327,19l1,-17" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,44l3,-38" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M306,25l1,-15" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M318,103l16,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M321,257z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M327,269z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,300l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M316,305v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,317l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M320,339l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M320,368l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,385l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,425h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,460l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,467l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M320,468l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M320,503l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M320,503z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M322,469l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,462v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M321,425h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M317,399l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M321,386l4,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M321,368h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M319,341z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M321,336v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M330,311z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M322,311l1,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M320,298l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M316,279v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M321,257l4,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M319,254v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M321,66v8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M312,62v10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M326,239h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M321,275v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M322,279l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M330,281v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M322,279v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M322,297l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M323,329l-2,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,358l6,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M321,368l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M325,382l1,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M321,401l8,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M322,424l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,458z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M318,458z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M323,364l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M323,356h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M323,329l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M331,306z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M326,302l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M323,295l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M327,72l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M321,74l-1,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M327,72l55,31" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M320,79l17,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M325,286l-3,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M322,297z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M326,320v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M321,316v-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M324,356v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M324,356z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M324,363h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M322,424v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M325,363h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M324,356z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M324,356z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M324,328l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M335,300z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,295l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M324,288v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,65l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M322,62l-1,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M314,52v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M327,239l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M319,245l7,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M327,269v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M324,292z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M326,320l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M324,353l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M327,350l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M326,363l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M324,422h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M326,468h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M326,468h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M327,422h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M335,320z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M327,322v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,295l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M327,270l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,240z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M326,249z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,71v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,65z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M353,31l-26,33" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M334,39l-13,18" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M316,47l-2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M317,220l15,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M325,263l2,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M324,287v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M330,307l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M323,305l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M334,339z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M331,344l3,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M329,422h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,422z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,468z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,468h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M329,422h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M326,378z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M326,378l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,365l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M330,311l-4,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M322,311l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M329,294l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M325,286l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M334,269l-1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M326,249l4,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M317,173l16,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M330,254l3,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M330,281l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M322,280z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M331,283l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M329,348l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M330,366z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M330,366l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M332,376l-2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M332,376l5,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M330,419v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M333,467l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M332,418l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M331,398l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M331,398h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M335,320v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M327,324l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M330,307v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M323,305v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M333,287l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M332,223l5,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M353,31l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M327,19l7,20" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M315,44l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M329,276l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M335,300l-4,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M329,298l-2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M329,349v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M336,358l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M332,398l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M335,402v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M335,402h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M337,425l-1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M331,468l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M335,401l-2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M333,364l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M330,292l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M337,228l9,14" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M347,55l-19,10" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M329,274v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M333,334l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M336,362l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M335,363h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M334,466h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M332,418l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M337,355v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M334,330l-1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M335,322l-1,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M336,318l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M336,318v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M335,300l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M332,286l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M333,178l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M334,269l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M337,274v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M337,275v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M349,287v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M337,280l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M340,288l-2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M336,298l5,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M339,308l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M338,309l-1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M337,316l-1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M337,352l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M337,352v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M334,399h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M337,425h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M342,455l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M335,466l3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M342,456v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M334,419l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M338,402h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M337,377l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M336,358v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M338,351v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M341,289l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M336,177l10,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M340,168v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,242l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,240l10,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M339,308l3,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M338,350l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M338,378h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M345,394z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M341,460l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M338,465l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M341,460v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M342,448h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M339,378h2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M346,164l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M353,167z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M341,170l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,203l17,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M341,349l3,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M341,378l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M345,395v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M341,448l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M342,456v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M341,461l-2,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M342,458v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M342,457v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M342,448l-1,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M345,395l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M337,315v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M350,244l1,8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M338,245l4,19" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,301l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,327l2,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,340v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M344,377l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M342,447l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M344,451l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M344,451v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,428l-7,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M344,397l-5,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,326v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,301l-4,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,252l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M342,264v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M346,164l-6,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M341,289v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M344,377l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M345,394z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M344,453l6,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,435l-2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M349,373l-4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M347,336l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M347,325l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,311v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M349,296z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M341,170l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M352,169z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M349,287l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M338,282v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,318v-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,340v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M350,361v-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M345,394l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,428h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M347,440l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M347,428z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M348,395l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M345,394z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M350,361v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,341l-2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,310l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M349,296l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M342,171l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M352,169l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M347,55l10,-23" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M328,70l21,-12" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M351,161l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M350,292l-1,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M348,335l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,357l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M350,363l3,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,435l-4,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M350,443h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M350,452l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M352,443l-1,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M353,371l-4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,311v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M350,289v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M345,209l1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M350,320l-3,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M347,428l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M352,443h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,453h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M352,453l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M351,392l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M352,253l3,13" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M342,265l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M353,167l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M352,29h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M351,161l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M353,167l2,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M361,305v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,357l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M363,416l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M354,455l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M355,457h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,318l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M361,305l-8,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M361,205l8,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M344,173l2,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M354,171l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M353,29v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M355,164l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M357,163l9,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M356,170v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M355,172l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M355,266l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M343,268l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M358,298l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,435z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M362,417l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M353,390l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M353,353l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M364,335l-1,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M357,270l-1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,272v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M353,30v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M359,23l1,-12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M365,16v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M353,31l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M359,23l13,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M365,16l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M361,205l1,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,215v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M360,349l4,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M357,457l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M362,466l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M358,458l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M357,391h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M358,351l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M368,313l6,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M358,278l-1,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,272l3,13" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M362,187v-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M362,215l6,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M346,218l14,20" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M358,278l1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M363,327l2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M360,391h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M360,459v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M363,465l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M363,466h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M364,415z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M363,156l8,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M366,164l8,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M361,391l4,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M351,435l13,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M363,466h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M360,460l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M365,429l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M362,417l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M364,335v4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M358,298l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M359,284l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M371,187l1,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M362,187v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M360,10v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M365,10v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M362,179v3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M362,188l4,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M361,286l-1,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M375,295l-2,-12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M364,415z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M367,465l4,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M378,407l-14,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M370,386z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M352,159l11,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M360,10v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M365,10v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M356,170l18,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M369,453l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M369,453v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M369,454v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M364,418l1,9" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M370,386z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M371,300l3,9" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M368,223v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M360,238l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M363,178l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M349,58l33,32" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M380,139z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M376,153l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M364,339v7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M371,364v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M370,386l-5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M365,466l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M369,455l2,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M370,386z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M372,183l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M379,11l1,-11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M369,7l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M382,103l-3,10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M337,88l-3,12" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M377,221l-9,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M384,233l-22,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M375,210l5,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M383,222l6,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M372,367l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M370,386l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M371,385l4,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M375,374h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M374,494z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M374,494v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M365,427v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M375,371l-3,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M380,211h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M389,223h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M371,187l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M363,178l10,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M374,168v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M376,204l-4,-10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M366,193l3,8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M375,206v4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M369,202v5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M375,374v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M370,452l6,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M374,496l-2,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M372,501l1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M372,183l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M382,173l-9,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M375,167h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M379,144v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M375,167l5,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M378,182l-2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M375,494h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M375,494l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M375,494z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M376,450l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M368,313l-3,9" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M373,156l-2,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M378,160l-4,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M371,0l-11,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M365,9l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M376,204l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M369,201v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M371,364l4,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M377,451l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M377,495z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M387,456l-7,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M376,181h-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M379,11v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M368,10l1,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M376,153l-3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M379,159l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M379,159l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M380,455z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M379,494h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M378,495h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M390,457l-3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M375,363l6,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M384,187l9,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M378,182l10,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M379,12l-7,17" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M369,13l-2,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M384,104h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M392,324v-7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M382,360h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M391,399l-13,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M379,494l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M391,399h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M376,374l-1,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M379,144l-2,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M407,12l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M389,7l16,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M382,90l7,-22" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M384,193l1,9" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M382,360l6,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M383,494h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M385,493l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M386,494l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M382,173l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M375,167z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M380,139l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M383,104l-4,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M387,493l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M399,377h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M388,357l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M385,170l4,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M380,139l9,-6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M389,133z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M388,343l4,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M391,490l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M390,491l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M399,377l-1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M375,295l-4,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M398,179l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M394,173l5,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M390,167z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M391,165v-15" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M389,133l2,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M386,0l3,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M391,146l3,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M377,221l6,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M384,233l10,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M392,495l-5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M392,350v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M385,202h9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M386,208l14,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M402,216h3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M390,132l2,-23" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M391,146v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M394,235h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M395,235v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M401,290l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M386,285l12,-13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M370,280l24,-25" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M405,245l-3,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M395,241l1,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M391,490l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M393,488l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M390,457l4,17" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M392,351v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M391,165l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M391,138l3,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M384,104l9,-7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M394,141v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M395,238v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M398,378l-4,15" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M394,474l2,-13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M394,491v5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M394,393v6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M395,240v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M384,187v6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M394,141h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M386,208l-4,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M402,216l-12,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M401,290h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M386,285l9,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M370,280l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M394,496h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M402,495l-5,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M392,324l-4,19" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M398,179l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M394,173l-5,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M390,167l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M390,132l9,-7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M392,108v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M398,111v2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M393,97l5,-6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M392,108l6,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M398,111z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M398,91z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M398,101l9,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M398,111h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M398,113l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M395,141l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M396,181l-3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M389,177l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M397,199l8,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M407,200l3,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M400,377v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M392,353l-1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M393,316l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M393,316l7,-11" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M405,245v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M396,244l-1,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M407,12l-10,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M397,22l6,33" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M411,192l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M402,290v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M395,295l5,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M402,291z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M400,300l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M400,305l3,9" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M403,314l6,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M402,495z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M433,337l-3,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M399,125l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M404,118l-5,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M427,167v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M416,166l1,-10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M405,165l2,-18" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M453,419l17,-33" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M402,495l4,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M405,247v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M395,251z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M401,126l6,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M404,118h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M406,499v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M396,461l16,22" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M401,301l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M404,278l-2,11" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M399,266l-1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M395,254l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M412,229l2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M401,237l7,-18" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M407,183l14,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M401,177l11,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M399,169l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M399,111l6,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M402,239v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M402,291l5,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M410,289v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M407,295l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M410,289h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M408,296l7,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M406,500h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M406,303l7,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M424,267l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M415,254l9,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M413,247l9,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M397,199l-3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M407,200l-7,9" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M405,216l4,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M405,114l6,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M413,15l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M408,11h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M408,1l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M409,1h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M409,1l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M409,11l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M403,55l-14,13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M402,92l-4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M407,105l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M415,218l1,-10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M409,212l-1,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M424,267v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M415,254l-1,9" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M405,247v11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M395,251v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M407,500l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M407,127h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M405,118l7,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M412,229l2,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M401,237l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M414,491l3,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M414,490v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M414,234l3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M433,109v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M411,192l-6,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M415,198h-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M413,305l-4,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M411,501h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M414,490l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M421,0l-10,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M430,341l-2,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M415,489h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M424,317l6,13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M417,233l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M414,245l8,-6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M415,198l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M411,106l6,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M411,112l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M417,105l16,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M414,111l14,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M415,218l-1,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M408,218v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M424,268l-7,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M414,263l-10,15" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M405,258l-6,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M395,253v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M427,301z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M420,302v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M412,483l-12,-28" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M417,500l-5,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M417,279l-7,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M407,183l16,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M412,191l7,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M401,91l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M422,206v-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M416,199v4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M422,214v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M416,206v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M410,127l11,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M412,117l6,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M401,91l22,-20" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M423,182v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M419,190l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M414,245l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M433,312l-6,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M422,229l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M422,217h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M424,67z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M428,74l1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M427,167l-6,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M416,166l-4,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M405,165l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M422,206v8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M416,203v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M423,217l5,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M420,231l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M422,239l3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M411,289l14,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M415,297l5,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M425,268h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M424,261l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M422,254l8,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M426,63l-13,-48" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M425,238h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M427,310l-5,-6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M427,238l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M415,148l13,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M421,133l7,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M424,67l-1,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M428,74l-3,18" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M425,92l8,16" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M441,149l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M429,148l7,-7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M428,137l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M427,166h1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M417,156l12,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M415,148l-8,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M423,183l6,15" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M422,195v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M428,218l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M425,224l6,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M424,317l11,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M427,301l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M420,302l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M425,297l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M420,300v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M442,255l-1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M431,251v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M425,224v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M429,198v9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M422,197v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M429,166h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M437,156l-8,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M416,14l10,-14" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M428,115l-10,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M429,166l14,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M429,207l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M434,245l-6,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M432,293l3,-14" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M436,299l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M430,304l4,-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M431,248v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M432,206h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M441,150v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M428,149l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M427,63l-3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M434,206v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M432,215l5,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M439,214l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M426,268l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M435,263l-7,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M430,253z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M428,351l-28,25" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M432,218l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M436,222l-5,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M429,72l9,-15" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M433,312h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M436,337h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M440,329l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M436,337h-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M436,330h-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M435,312l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M434,301l2,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M434,245l-3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M436,203l4,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M435,279l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M430,269l9,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M435,322l9,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M436,337z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M440,329l-4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M432,293l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M432,215v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M439,214l-3,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M441,254l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M438,298l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M439,311l3,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M437,291l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M442,255l-7,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M431,252l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M472,85l-12,-22" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M438,57l14,25" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M436,203l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M443,277l-3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M439,271v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M439,297h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M442,297l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M445,300l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M444,316v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M452,237h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M445,241l2,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M441,150l-4,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M426,63h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M446,28l-4,-28" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M450,11l-1,-11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M441,290l6,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M443,277l2,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M440,268l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M440,268l5,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M453,231l2,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M435,205h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M437,209l11,-11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M440,213l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M435,133l13,-10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M481,0l-35,28" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M465,0l-15,11" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M447,146l-4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M453,136l-17,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M435,133l-5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M440,196l5,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M445,192l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M448,198l10,23" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M442,211l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M452,248l-1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M445,245l-2,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M457,276l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M445,271l3,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M439,311h-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M450,321l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M472,85l1,6" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M452,82l3,25" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M447,146l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M453,136l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M447,301l2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M442,306l6,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M437,337l10,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M449,345l-2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M449,345h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M450,321l-2,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M444,318l-3,10" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M449,303l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M448,309l7,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M447,288l3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M448,294l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M452,237v11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M445,241v4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M449,190v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M457,173v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M449,191h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M451,253l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M448,294h5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M455,308z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M448,326l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M441,328l2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M448,148l10,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M454,338v-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M451,331l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M452,299l1,-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M453,256l-8,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M443,168l14,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M478,69h-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M457,276h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,321v-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M455,308l-2,10" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M454,338l-1,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,499l-3,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M435,503l-19,-14" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,321l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M453,318l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M452,286l-2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M454,292h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M458,221l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M443,215l9,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M453,237l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M453,231l-6,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M452,299l-2,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M478,323l5,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M458,304l3,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M457,292h-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M469,241h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M455,236l8,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M454,191h3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M473,91l-1,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M455,107v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M457,173h4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M458,276h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M453,285l8,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,288l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M453,285l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,288v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M457,292l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M462,294h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M457,323l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M469,241l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M454,236h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M459,222l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M452,222l3,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M457,191l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M472,95l-16,36" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M455,108l-7,15" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M459,193h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M464,228l-4,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M463,229l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M459,275l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M448,268l15,-10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M462,500l-2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M478,323l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,325l6,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M458,304l-2,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,289l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M463,294l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M462,171l3,-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,154l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M460,274l14,-11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M463,258l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M462,294l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,318l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M456,307l7,6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M405,451l48,-32" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M463,501l-1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M463,501l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M469,302l-1,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M456,307z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M460,276z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M461,281l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M462,287l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M467,218l-5,-18" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M462,171l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M470,241v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M463,229v6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M464,293l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M469,302v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M466,294h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M472,480l-15,18" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M465,294h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M463,288l3,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M468,243l-1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M460,276h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M464,283l7,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M469,289h-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M480,492l-15,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M480,492v-10" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M473,313l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M468,306l-1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M476,261l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M465,257l2,-9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M467,218l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M479,224l-2,-6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M470,221l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M474,281l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M471,288l-2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M473,313l-11,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M467,311l-4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M486,320h-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M481,311h-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M470,294l-1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M456,131l34,-34" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M501,121l6,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M479,311v-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M476,303v-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M474,281h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M471,288l5,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M471,281l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M476,211l8,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M476,209v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M462,198v2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M461,276l15,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M476,303l-2,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M472,480l3,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M475,472v6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M486,320z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M481,311l2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M478,267l2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M479,224v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M471,224l-1,13" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M476,209l1,-16" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M463,193l-1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M479,194l-2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M476,261l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M465,257z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M475,281z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M478,287l-2,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M477,294l2,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M476,301l1,-7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M405,451l-5,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M478,267l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M479,194v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M454,137l14,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,63l20,21" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M485,77l-7,-8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M465,166l15,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M460,154l31,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M468,142l34,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M479,227l3,13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M482,328l-1,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M468,338l-2,-9" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M479,306l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M475,281l13,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M478,287l3,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M482,241l-5,16" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M477,209l6,-10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M489,201l1,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M484,218h-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M488,285l-2,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M481,288l-2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M501,295v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M486,290v6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M481,308h2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M505,345l2,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M475,478l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M506,350l-1,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M482,328l7,21" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M468,338l4,10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M489,258l3,-14" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M480,84l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M504,76l3,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M480,266l10,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M470,386h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M487,503l4,-12" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M501,295z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M486,296l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M482,240v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M479,193l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M480,84z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M485,77v1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M487,55l-10,14" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M490,220z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M496,214l6,10" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M491,222l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M484,197l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M490,197l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M482,85l12,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M490,240v-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M494,460v-3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M501,295z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M488,300l5,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M483,308l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M517,25l-3,-16" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M489,69l-2,-14" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M477,209l13,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M489,201l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M495,275l7,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M494,457h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M495,455l1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M490,219v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M491,202l5,12" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M483,199z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M490,197v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M504,76v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M488,75l-3,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M490,271l5,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M494,460l8,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M501,295l2,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M493,302l2,15" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M484,309v1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M491,445l5,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M495,455l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M496,452v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M498,445h-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M480,167l13,12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M491,156l8,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M502,144l4,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M505,437v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M498,445l4,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M495,317l-9,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M484,310h-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M509,422v-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M502,468l-5,10" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M492,227l-2,11" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M490,240l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M504,259l4,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M521,265v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M502,450l1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M503,456v2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M506,350v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M489,349l-1,20" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M472,348l-2,38" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M489,258l15,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M493,179h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M499,163l3,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M506,147l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M490,220l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M502,224l4,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M503,303l6,17" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M506,352l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M488,369l15,21" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M470,386h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M492,490l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M508,354l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M503,390l36,-19" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M502,286l-1,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M494,179l-3,17" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M502,162l-2,13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M510,145l-1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M505,437l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M508,442l2,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M509,320l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M516,251l5,-4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M506,232h3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M500,175l8,21" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M509,150l18,45" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M516,211l-9,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M517,212v13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M538,223v-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M509,335l-2,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M497,478l-3,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M503,458l7,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M509,422l-4,14" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M512,281l-4,-15" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M521,265z" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M501,121l10,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M494,90l-4,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M507,115l4,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M508,76v-1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M521,78l-2,-8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M511,112v-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M529,98v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M521,107l-3,-12" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M512,116l-1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M512,352l5,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M539,371h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M494,486l-1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M510,460l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M510,447l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M519,415l-10,3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M509,335l4,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M512,124l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M508,321l6,-3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M514,318l12,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M532,282l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M522,449l-9,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M513,463l7,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M493,487l-1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M507,210l10,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M517,25l-13,50" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M489,69l-1,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M517,225l3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M538,223l6,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M510,73l16,-49" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M529,98l2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M521,107l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M512,116z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M512,281l7,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M521,265z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M522,286l-3,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M531,282l-10,-17" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M508,76l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M516,89l5,-11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M520,260l1,4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M526,326l-13,17" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M520,88l-4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M531,100l-1,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M522,108l-1,15" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M512,116v8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M526,463l-6,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M526,463v5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M536,467v-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M557,118l-1,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M530,102l11,23" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M521,123l4,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M508,75l2,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M519,70l13,-11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M516,251l4,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M526,468l5,8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M536,467l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M531,503v-5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M517,349l19,-10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M543,371l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M529,97l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M518,95l12,-5" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M520,88l10,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M517,0l-3,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M530,96z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M530,90h1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M530,84l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M519,415l13,-7" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M522,286l6,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M534,284l-3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M508,196l8,15" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M527,195l4,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M530,96l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M531,90l1,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M531,83l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M533,60z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M533,60l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M556,25h4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M509,232l11,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M520,229l14,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M528,292l-5,18" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M532,59l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M526,24l12,16" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M522,449l16,-13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M531,476l10,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M538,469l6,4" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M538,436l-1,16" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M538,40l8,-11" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M531,498l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M545,490l-4,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M536,425l3,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M539,434l2,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M523,310l13,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M532,282l8,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M553,55l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M537,19l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M534,11l3,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M544,21l6,-6" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M520,238l1,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M534,236v15" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M541,253l1,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M547,238l3,18" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M544,270l9,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M551,260l11,14" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M536,316v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M536,454v6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M544,470l3,-2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M536,318l10,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M534,251l7,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M531,202l7,18" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M541,21l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M547,27l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M546,296l4,-11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M559,291l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M537,452l-1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M555,479z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M548,467l1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M544,412l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M531,417l5,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M546,232l4,-2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M534,11l10,-11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M544,230l2,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M544,270l-2,-12" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M551,260l-1,-4" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M574,418l-5,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M545,415l11,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M574,418l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M556,423l9,9" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M541,432l12,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M544,412l3,-16" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M532,408l-1,9" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M532,98l4,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M532,91l28,8" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M532,84l19,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M548,229l-2,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M548,229l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M517,349z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M543,371h-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M545,490l1,13" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M555,480v-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M547,396l4,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M545,299z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M558,292l9,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M551,216l-5,7" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M550,344l-14,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M549,370l-2,-1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M544,470v3" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M553,342h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M556,365h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M551,214v2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M553,342l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M556,365l-7,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M540,278l10,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M553,281l7,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M557,118l13,33" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M541,125l8,20" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M525,131l3,8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M551,214z" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M545,299l1,-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M558,292l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M555,479z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M548,467l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M555,480z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M571,219l3,2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M565,225l10,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M570,151l3,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M549,145l17,18" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M528,139l30,32" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M569,414l6,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M551,395l11,-13" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M575,427l-1,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M565,432l-10,47" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M553,443l-4,20" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M551,214l9,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M544,21h-3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M547,27l9,-2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M553,55l10,-7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M547,238h12" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M546,313l6,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M545,299l17,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M567,299l5,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M554,56l3,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M534,63l7,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M550,15h11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M557,59h9" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M541,73l32,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M555,480z" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M552,317l6,3" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M562,309l4,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M572,302l1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M571,218l1,-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M560,216l7,-4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M563,206l-3,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M556,117l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M536,99l27,11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M560,99l8,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M573,0l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M561,15l9,6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M558,118z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M563,110l12,9" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M568,102l7,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M573,160z" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M566,166l1,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M558,173l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M558,320l4,3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M566,311l9,7" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M573,303l2,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M571,219v-1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M565,225l-5,-9" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M562,325l-7,17" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M575,323l-18,42" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M562,274l13,-8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M565,200l-2,-18" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M575,440l-1,-6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M575,243l-16,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M567,33l3,5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M573,205l2,-11" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M565,200l-1,5" />
+<path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M551,89l22,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M573,160l1,2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M567,169l6,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M561,178l2,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M574,162h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M573,179l2,1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M573,154v6" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M566,163v3" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M558,171v2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M558,118l17,29" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M573,94l2,2" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M573,93v1" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M575,26l-5,-5" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M567,33l-7,-8" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M570,38l-7,10" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M574,221h1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M564,374l11,-16" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M562,323v2" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M575,213l-3,4" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M573,205l-6,7" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M564,205l-1,1" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M566,59h9" /><path style="clip-path:url(#cp1);stroke-width:0.650000;stroke-linecap:round;stroke:rgb(34,34,34);" fill="none" d="M573,72h2" /><path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M564,374l-2,8" />
+<path style="clip-path:url(#cp1);stroke-width:0.250000;stroke-linecap:round;stroke:rgb(51,51,51);" fill="none" d="M575,498l-20,-18" /></g>
+<g id="L4" >
+<defs><clipPath id ="cp2" >
+<path d="M0,0v503h575v-503z " />
+</clipPath></defs>
+<path style="fill:rgb(0,85,170);" d="M108,140l-11,1v-1l1,-3h4h2l1,1l2,2h1z"><title>Description: Marsh, wetland, swamp, bog</title></path><path style="clip-path:url(#cp2);stroke-width:0.125000;stroke-linecap:round;stroke:rgb(255,170,0);" fill="none" d="M108,140l-11,1v-1l1,-3h4h2l1,1l2,2h1z"><title>Description: Marsh, wetland, swamp, bog</title></path><path style="fill:rgb(0,85,170);" d="M307,0v1l1,1l1,2l2,-1h1l1,-1l4,-2h-10z"><title>Description: Lake or pond</title></path><path style="clip-path:url(#cp2);stroke-width:0.125000;stroke-linecap:round;stroke:rgb(255,170,0);" fill="none" d="M317,0l-4,2l-1,1h-1l-2,1l-1,-2l-1,-1v-1"><title>Description: Lake or pond</title></path><path style="fill:rgb(0,85,170);" d="M350,41h2l1,1l2,1l1,2l1,1l1,2l-1,3v2
+v3l1,5v4v3v2l3,5v-1l2,-2h1l2,1l2,2h1l1,-1l2,-2l5,-10l2,-2l4,-6l2,-5l3,-3l1,-1l4,-1h2l2,-1l1,-1l1,-2v-2l-2,-5v-1l-1,-2v-1l1,-2l2,-2l2,-1h2l2,1h2h1h3h1l2,-1v-1v-2l1,-1h1h1l1,-1v-2l1,-2l2,-3h1h2h1l-1,3l1,1h1h2v1l-1,1l-1,4l-1,1l-2,6l-1,7v4v1v4v1l2,1v1l-1,1v4l-2,8v5l-1,1l-1,1h-2l-2,1v1l-2,3l-2,2l-1,2l-1,1l-5,4l-1,1l-1,4l-3,3l-2,3l-2,1l-1,1l-3,5h-1l-3,-2h-1v-1v-2l-1,-1h-1l-2,-1l-2,-2l-1,-1h-3l-3,-1l-1,-1l-2,-1v-2h-5l-4,-1l-4,1l-5,1h-6l-3,1l-4,1l-1,1l-1,-1l-2,-9v-8l1,-5v-3l1,-3v-2l4,-9l7,-7l1,-1h1z"><title>Description: Lake or pond</title></path><path style="clip-path:url(#cp2);stroke-width:0.125000;stroke-linecap:round;stroke:rgb(255,170,0);" fill="none" d="M350,41h2l1,1l2,1l1,2l1,1l1,2l-1,3v2v3l1,5v4v3v2l3,5v-1l2,-2h1l2,1l2,2h1l1,-1l2,-2l5,-10l2,-2l4,-6l2,-5l3,-3l1,-1l4,-1h2l2,-1l1,-1l1,-2v-2l-2,-5v-1l-1,-2v-1l1,-2l2,-2l2,-1h2l2,1h2h1h3h1l2,-1v-1v-2l1,-1h1h1l1,-1v-2l1,-2l2,-3h1h2h1l-1,3l1,1h1h2v1l-1,1l-1,4l-1,1l-2,6l-1,7v4v1v4v1l2,1v1l-1,1v4l-2,8v5l-1,1l-1,1h-2l-2,1v1l-2,3l-2,2l-1,2l-1,1l-5,4l-1,1l-1,4l-3,3l-2,3l-2,1l-1,1l-3,5h-1l-3,-2h-1v-1v-2l-1,-1h-1l-2,-1l-2,-2l-1,-1h-3l-3,-1l-1,-1l-2,-1v-2h-5l-4,-1l-4,1l-5,1h-6l-3,1l-4,1l-1,1l-1,-1l-2,-9v-8l1,-5v-3l1,-3v-2l4,-9l7,-7l1,-1h1z"><title>Description: Lake or pond</title></path><path style="fill:rgb(0,85,170);" d="M108,141l4,3l1,2l4,5v1
+l1,1v1l1,5v2l-1,1l-1,2v1h-2l-3,-1l-2,-1l-3,-1l-3,-4l-1,-3h-1v-2l-2,-1l-1,-3v-2l-1,-3l-1,-3h11z"><title>Description: Marsh, wetland, swamp, bog</title></path><path style="clip-path:url(#cp2);stroke-width:0.125000;stroke-linecap:round;stroke:rgb(255,170,0);" fill="none" d="M108,141l4,3l1,2l4,5v1l1,1v1l1,5v2l-1,1l-1,2v1h-2l-3,-1l-2,-1l-3,-1l-3,-4l-1,-3h-1v-2l-2,-1l-1,-3v-2l-1,-3l-1,-3h11z"><title>Description: Marsh, wetland, swamp, bog</title></path><path style="fill:rgb(0,85,170);" d="M78,407l2,2v2l1,1v1l-1,1h-1l-1,1l-1,1l-1,-1v-1l-1,-1v-2l1,-3l2,-1z"><title>Description: Lake or pond</title></path><path style="clip-path:url(#cp2);stroke-width:0.125000;stroke-linecap:round;stroke:rgb(255,170,0);" fill="none" d="M78,407l2,2v2l1,1v1l-1,1h-1l-1,1l-1,1l-1,-1v-1l-1,-1v-2l1,-3l2,-1z"><title>Description: Lake or pond</title></path><path style="fill:rgb(0,85,170);" d="M136,473h-1
+v-1v-1l3,-3h1h1l2,1l1,2v1l-2,1h-3h-2z"><title>Description: Lake or pond</title></path><path style="clip-path:url(#cp2);stroke-width:0.125000;stroke-linecap:round;stroke:rgb(255,170,0);" fill="none" d="M136,473h-1v-1v-1l3,-3h1h1l2,1l1,2v1l-2,1h-3h-2z"><title>Description: Lake or pond</title></path><path style="fill:rgb(0,85,170);" d="M371,503v-1l1,-1v-2v-2l1,-1l1,-1l2,-2l5,-1l3,-3l3,-3h1v-1v-2v-2v-1l-1,-1l-1,-1h-2l-2,1l-2,1l-3,2l-4,3l-5,1l-5,1l-3,1l-4,1l-2,-1l-1,1l-3,1l-2,1v1l-1,2l1,1v1l3,4l1,1v2h19z"><title>Description: Marsh, wetland, swamp, bog</title></path><path style="clip-path:url(#cp2);stroke-width:0.125000;stroke-linecap:round;stroke:rgb(255,170,0);" fill="none" d="M352,503v-2l-1,-1l-3,-4v-1l-1,-1l1,-2v-1l2,-1l3,-1l1,-1l2,1l4,-1l3,-1l5,-1l5,-1l4,-3l3,-2l2,-1l2,-1h2l1,1l1,1v1v2v2v1h-1l-3,3l-3,3l-5,1l-2,2l-1,1l-1,1v2v2l-1,1v1"><title>Description: Marsh, wetland, swamp, bog</title></path><path style="fill:rgb(0,85,170);" d="M528,313v-1
+l2,-1l1,-1l1,1l3,2l2,1l1,2h-1l-2,-1l-2,-1l-2,-1h-2h-1z"><title>Description: Lake or pond</title></path><path style="clip-path:url(#cp2);stroke-width:0.125000;stroke-linecap:round;stroke:rgb(255,170,0);" fill="none" d="M528,313v-1l2,-1l1,-1l1,1l3,2l2,1l1,2h-1l-2,-1l-2,-1l-2,-1h-2h-1z"><title>Description: Lake or pond</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M120,23v-1l1,-1l4,-1l1,-1v-1l-1,-2v-1l1,-1l4,-2l3,-1h1v-1v-1l1,-1l2,-1h4h1v-1l1,-2v-1l2,-1l4,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M0,34l3,-1l1,-1l3,-2l1,-1h2h8l2,-1l2,-1l1,-2v-1v-2l-2,-4l-1,-4l-3,-3v-2v-2l-1,-1l-3,-6"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M149,38l-2,1l-15,4l-4,-1l-1,-1l-1,-2l-1,-1l-1,-1v-1v-1l1,-1l-1,-4l-2,-2l-1,-4l-1,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M45,40v-2v-1l2,-1l2,-1l1,-3h2l2,-1h1l2,-3l2,-1l2,-1h2l5,-1l1,-1h2h2l1,-2l4,-1l2,-2l2,-1l2,-2l1,-2l1,-4l1,-3v-1v-2l-1,-3l-1,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M97,40l-1,-1l-3,-2l-3,-2l-1,-1l-2,-2l-1,-1h-1l-1,1h-1h-2l-2,-2h-1l-7,1h-2l-1,1h-1l-3,1h-2l-3,3l-4,2l-1,1l-1,1l-3,-1l-2,-1l-2,1l-1,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M97,40h2h3h3h1l1,-1l2,-5l1,-2h1l2,-1h2l1,-1v-1v-1l2,-2v-2l1,-1h1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M42,41h1l2,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M0,44l1,-1l1,-1h1l3,-1l3,-1l1,-1h3h2l5,-1h2l3,1h2l2,-2h2l2,1l6,3h3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M150,95l-2,1h-2l-1,-1l-2,-1l-1,-1l-3,-2l-1,-1v-1l-1,-2l-1,-1l-1,-2l-1,-2l-1,-3l-2,-2v-2l-2,-1v-1l-1,-2h-1l-2,-1l-2,-2v-1l-1,-1v-2l-3,-4l-5,-3l-4,-3l-5,-4l-4,-3l-3,-2l-1,-3v-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M94,104v-2v-1v-2v-2h-1v-2l-1,-1l-2,-3l-1,-2v-1l-1,-2v-3l-5,-6l-1,-2l-2,-2l-1,-2v-1l-2,-2v-1l-4,-4l-1,-2l-3,-4l-1,-2v-1v-1v-2l-3,-5h-1l-1,-1l-5,2h-5l-6,-1l-2,-1l-2,-1l-1,-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M98,137v-1l-2,-2l-2,-1l-1,-3l-2,-2l-1,-1l-1,-4v-2v-4v-5v-1l1,-1l2,-1l1,-1v-2v-1v-1h1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M29,140l2,-1h1l1,-4v-1l-3,-5v-3v-1l1,-2l-1,-2v-1h-1l-1,-8l-1,-1l-1,-2l-2,-2l-3,-4l-5,-5l-6,-5l-5,-3l-2,-1l-3,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M142,140l-5,-5l-2,-2l-6,-3l-6,-3l-4,-3l-1,-1l-7,-7h-1h-1l-2,1h-2l-1,-1l-2,-1l-1,-2l-2,-3l-1,-1l-1,-2l-3,-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M97,141l11,-1" />
+<path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M108,140h-1l-2,-2l-1,-1h-2h-4"><title>Description: Apparent limit</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M97,141v-1l1,-3"><title>Description: Apparent limit</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M344,6l-1,-1l-6,-4l-2,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M344,6h1h1l2,-6"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M218,23l1,-2l2,-3l1,-2l9,-6l3,-2l1,-1l2,-2h2l4,-1l3,-1h2h2l2,1l4,2l2,3l2,1h2l8,-3l3,-1l3,-1l2,-2l1,-1l5,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M407,25v-1l-4,-7l-3,-3l-2,-2h-3l-1,-1v-1l-2,-2l-2,-3v-1v-4"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M149,38l1,-1h3l5,-1l5,-3l5,-2l6,-1h3l5,-2l6,-3l13,-2h11l3,-1h1l2,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M350,41l-1,-2v-1l-2,-3l-1,-2l-2,-3l-1,-2l-1,-3v-1v-2l1,-3v-2v-1l1,-2l2,-1v-2l-2,-3v-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M297,48l-7,-1l-4,-1h-2h-4h-5l-3,-2h-2l-6,-2l-3,1h-2h-2l-3,-1l-7,-3l-2,-3h-1l-3,-3l-6,-4l-4,-2l-3,-2l-10,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M233,99h-1h-1l-4,-2l-3,-1l-1,-1l-3,-1h-3l-4,-2h-5h-7h-1l-2,1l-4,1l-1,1h-1l-2,-1l-1,-1h-5l-1,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M281,108l2,-1l1,-1v-1l1,-3v-1l5,-2l3,-1h3l1,1l3,4h1h4l5,2h2l1,-1v-2v-1l1,-1h1h1l2,1l3,2l2,1h2h3l1,-1l1,-1l1,-1v-1l1,-2l1,-2l1,-1l3,-5l1,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M281,108l-3,-1l-2,-3l-6,-2h-2l-2,-1l-2,-2h-2l-7,-1l-8,1l-7,1l-7,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M384,135l-1,1h-2l-4,-1l-2,-1h-4l-1,-1l-2,-1v-1v-4l1,-6v-2l1,-4l1,-1l2,-3l2,-3l2,-3l2,-1l2,-1l1,-1v-3l2,-3v-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M303,139l-2,-5l-3,-4l-5,-6v-1l-2,-1l-1,-1l-2,-2l-4,-3l-3,-3l-1,-2l1,-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M240,139v-2v-3v-4l-1,-3l-1,-4l-1,-2v-4l1,-4v-2l-1,-2l-4,-3l-1,-1v-2v-2l1,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M182,140l1,-2h1l3,-1l2,-1l4,-3v-2v-6l1,-2l2,-2v-3l-1,-2v-1v-4v-1l-4,-6l-2,-2v-1l-2,-3l-4,-4"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M307,0v1l1,1l1,2l2,-1h1l1,-1l4,-2"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M350,41h2l1,1l2,1l1,2l1,1l1,2l-1,3v2v3l1,5v4v3v2l3,5v-1l2,-2h1l2,1l2,2h1l1,-1l2,-2l5,-10l2,-2l4,-6l2,-5l3,-3l1,-1l4,-1h2l2,-1l1,-1l1,-2v-2l-2,-5v-1l-1,-2v-1l1,-2l2,-2l2,-1h2l2,1h2"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M338,89l-1,-1l-2,-9v-8l1,-5v-3l1,-3v-2l4,-9l7,-7l1,-1h1"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M384,94l-2,-1l-2,-2l-1,-1h-3l-3,-1l-1,-1l-2,-1v-2h-5l-4,-1l-4,1l-5,1h-6l-3,1l-4,1l-1,1"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M562,9l-1,-1l-5,-2l-4,-2l-1,-2l-2,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M425,12l4,-1v-1l1,-2l2,-1l1,-1l1,-1v-4v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M545,17h-2l-3,3h-2l-5,-2l-2,-2h-2h-1l-1,2h-2l-5,-1l-1,-1l-2,-5l-3,-5v-2v-2l-1,-1v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M545,17v-1l6,-5h3v-1l1,-1h6h1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M575,14l-2,-1l-6,-2l-5,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M457,5l2,3l1,2l1,4v2l1,3v2l2,2v1v1l-1,1l-1,2l-1,5h-1l-3,4l-2,2v1v3l-2,2v1l-1,1h-2h-8l-2,-3v-1l-3,-2h-3h-2l-1,1l-4,1l-2,1l-3,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M529,61l-1,-1l-2,-3v-1v-3v-2l2,-1l3,-3l1,-1h3l1,-1l2,-1l2,-2l1,-2l4,-8v-1v-3v-3h-1v-3l1,-4v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M544,61l8,-2l5,-1l2,-1h7l6,-2h3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M566,136l-3,-4l-1,-1v-2v-2l-1,-1l-6,-7l-7,-7l-2,-1l-3,1l-1,-1l-1,-2l-2,-2l-1,-2l-1,-1l-1,-2l-7,-4h-2l-2,-1l-3,-3l-6,-3l-3,-4l-1,-1l-1,-1v-2l-1,-1l-1,-4l-1,-2l-1,-2v-2l-4,-3l-1,-1v-1l-1,-2l-2,-2v-2h-1l-2,-2l-3,-2l-3,-4l-1,-2l-1,-2l-2,-5v-1v-1v-1l-1,-2l-1,-3l1,-2l-1,-3v-2l1,-1v-1l-2,-2l-1,-2l-2,-1l-1,-2l-2,-7v-1v-1l-1,-3v-1l-2,-2l-1,-2v-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M574,135l1,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M575,125l-1,-2l-2,-3l-2,-4l-1,-2v-1v-3l-2,-4l-1,-5l1,-8v-4v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M481,137v-2l2,-6l1,-1v-1l2,-5v-2l2,-4v-4l2,-4v-3v-5l-1,-1v-1l-1,-2l-2,-2l-3,-2l-2,-4l-2,-1l-2,-1h-1h-5h-2l-7,4h-3h-2l-1,3l-1,1l-4,1l-2,2l-2,3l-3,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M446,137l-2,-2l-4,-4l-1,-3v-1h-1v-1v-2l-1,-2l-2,-2l-3,-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M407,25h1h3h1l2,-1v-1v-2l1,-1h1h1l1,-1v-2l1,-2l2,-3h1h2h1"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M422,45v-4v-1v-4l1,-7l2,-6l1,-1l1,-4l1,-1v-1h-2h-1l-1,-1l1,-3"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M384,94h1l1,1v2v1h1l3,2h1l3,-5l1,-1l2,-1l2,-3l3,-3l1,-4l1,-1l5,-4l1,-1l1,-2l2,-2l2,-3v-1l2,-1h2l1,-1l1,-1v-5l2,-8v-4l1,-1v-1l-2,-1v-1"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M115,165v-2h-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M125,209v-2l-1,-6l-1,-1v-2v-1l-3,-6l-1,-1v-2l2,-5v-3l-1,-1l-3,-2l-1,-2v-3v-2l-1,-2v-1v-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M0,211l2,-3l1,-4l6,-7l1,-2h2l6,-1l2,-1l5,-2l4,-1l1,-1l2,-2l3,-1l4,-2h1l2,1h2l3,-3l2,-1h2l1,1l3,2h2h4"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M1,265h-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M20,265l-4,-1h-4h-2l-2,1l-2,-1l-3,1h-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M20,265l2,-3l2,-3l2,-3l1,-2l2,-2l3,-4l1,-2l4,-4l2,-3l2,-4l4,-3l2,-1h4l2,-1l2,-2l1,-3l1,-1l4,-4l3,-3h1l1,1l1,-1l2,-1l1,-1h1h3l2,2l2,1h2l1,1l6,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M109,266h1l3,-1h7l1,-1h2l1,-1h8h6l6,-2l4,-2h3v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M7,269l-2,-1l-2,-1l-2,-1v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M52,274h-1h-4h-4h-3h-1l-4,-3l-3,-1l-9,-2l-2,-1l-1,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M52,274v-1h1l4,-2l5,-1h3l3,-1l2,-1l4,-3l2,-1l3,-1l2,-1l2,-1l6,-1l8,-3h2l5,1l12,-1h6l1,-1l1,-1v-2l1,-1l8,-7l3,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M52,274l2,1l8,2h3l4,1l3,-1l5,-1h3l6,-3l20,-6l3,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M45,287h-1l-1,-1l-2,-2l-7,-2h-2l-1,-1l-3,-3l-3,-1l-4,-1l-2,-1l-5,-4l-3,-1l-1,-1h-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M11,311l-1,-2v-1l-2,-4v-2v-5l-1,-5v-1l-1,-6l1,-3l1,-3l1,-2v-5l-2,-2v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M104,317v-1l-4,-4h-4l-3,-2l-3,-1l-3,-2h-1l-2,1l-1,1h-1h-1l-3,-2l-2,-2l-4,1l-1,-1l-1,-1l-1,-3l-3,-2v-2l-1,-2v-1l-2,-2v-1l-2,-2l-3,-1h-2l-3,1l-4,-2l-2,1l-2,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M78,407l-1,-2l-1,-3v-2l1,-4l2,-5v-3l1,-1l-1,-3l-2,-4v-2l-1,-5v-1l-3,-4l-1,-3l-2,-3l-1,-1l-5,-1h-1l-3,1l-1,1l-2,1h-1l-3,-2l-2,-1h-1l-1,-3v-4v-1v-4v-1v-2l1,-2l1,-2l1,-3v-5l1,-4l2,-7v-3v-5v-5l1,-5v-2l-2,-3l-1,-3l-1,-2l-4,-2l-2,-2l-1,-2v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M0,408h2h2h2l1,-1v-3l1,-1l2,-2l3,-2l2,-2h1l4,-1l2,-2l2,-1l3,-3v-2l1,-2v-2l-1,-1l-3,-3l-1,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M80,409l5,-2l4,-1l3,-1l4,-2l4,-2l2,-2l7,-2l4,-2l2,-1l3,-3l4,-2l7,-3l2,-2l2,-1v-1l-1,-6v-1l-2,-3l-1,-2v-3l2,-6l1,-3v-3v-3l-1,-2l3,-10l3,-7v-2l1,-2l2,-2v-2l2,-3h2l2,-1l4,-1h2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M1,467l10,-3l4,-2l4,-3l4,-2h7h2h2l14,1h5h3h2h1l5,3l8,1l4,1l4,1l5,1h3h3l1,1v2l1,3v1l1,1l1,1h2h3l3,-1h2l6,1l2,1h2h5l3,2h2h2l1,-1l2,-3l2,-3l2,-3l2,-4l1,-1l3,-2h1l1,-2l2,-1l2,-1l7,-5"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M1,467v-1l1,-1l3,-3l5,-4l4,-2l4,-2l3,-2l3,-4l2,-1l3,-1h2l2,1l1,1l2,1l3,1h4l2,1h3l3,-2h2l9,2l7,4h3l4,1h3l8,-1l9,-2l2,-2l4,-1l2,-2l4,-3l3,-6l7,-7l2,-4l4,-5l3,-6l2,-4l3,-4l1,-1l2,-1l3,-3l3,-2l4,-2l4,-2l3,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M97,141h11" />
+<path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M115,165l-3,-1l-2,-1l-3,-1l-3,-4l-1,-3h-1v-2l-2,-1l-1,-3v-2l-1,-3l-1,-3"><title>Description: Apparent limit</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M115,165h2v-1l1,-2l1,-1v-2l-1,-5v-1l-1,-1v-1l-4,-5l-1,-2l-4,-3"><title>Description: Apparent limit</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M80,409l-2,-2"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M78,407l-2,1l-1,3v2l1,1v1l1,1l1,-1l1,-1h1l1,-1v-1l-1,-1v-2"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M136,473h-1v-1v-1l3,-3h1h1l2,1l1,2v1l-2,1h-3h-2z"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M1,467v1l-1,1v4v3v1v1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M144,503v-2v-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M154,179v-1l-1,-2v-3v-7v-1l-1,-1v-3l-1,-4v-1v-1l-1,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M241,210v-3v-7l1,-1v-4v-2l1,-2v-3v-6v-3l-3,-5v-3v-2v-1v-3l2,-4l1,-1v-1l-1,-2l-1,-2v-2l1,-4v-2l-2,-2v-2v-4"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M187,229l-1,-2v-1l-3,-3l-1,-3l-1,-2l-2,-1h-3h-1l-2,-2l-2,-5l-3,-6v-1l-2,-4l-2,-5l-4,-5l-1,-2l-1,-2l-1,-2l-2,-4h-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M302,232l1,-3l2,-2l2,-3l1,-1l1,-3v-2l1,-5l1,-3l2,-2l2,-3l1,-3v-1l1,-1v-2v-1v-3l1,-3v-3l-1,-4v-4v-4l-2,-3l-1,-7l-4,-7l-2,-5v-1l-1,-3v-4l-1,-2l-2,-5h-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M223,235l-4,-5l-3,-3l-5,-4l-4,-2l-2,-2l-1,-2l-2,-1h-1l-1,-3l-4,-5l-4,-7l-1,-4v-5v-1v-6v-1l-1,-3v-4l-1,-2v-2l1,-1v-2l-1,-3l-1,-3l-1,-8h-1l-1,-3l-2,-3l-1,-2v-1v-2l-1,-1l1,-2v-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M175,240l-2,-1v-1l-1,-1l-1,-1h-2l-1,-1l-2,-2l-3,-3l-6,-12l-3,-4l-1,-1v-1l1,-2v-3l-1,-3l-1,-2l-1,-3v-3l1,-2v-2l1,-5v-7l1,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M220,261l-1,-1l-10,-4l-2,-1h-3l-7,-1l-5,-1l-7,-2h-3h-3l-4,1l-1,1l-4,2l-4,1l-7,2h-4h-4"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M152,304h-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M152,396l2,-1l6,-5l4,-3l2,-3l3,-3l4,-5l2,-4l1,-3l1,-2l4,-5l2,-1l4,-3l2,-2h2l6,-3v-1l1,-2l1,-1l2,-1l2,-1l1,-1v-1l1,-3l1,-1l4,-3l1,-1l4,-1l3,-2l3,-4v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M347,480v-2v-13l-1,-4v-1l-1,-2v-1v-1l-1,-3l-1,-2l-1,-2v-6l1,-2v-1l1,-3l3,-7l2,-3l3,-3l1,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M370,480l1,-2l4,-6l2,-3l4,-5l2,-2l3,-3l3,-5v-2v-2h-1l-1,-6l-1,-3l-1,-5v-2l-2,-3l-2,-1l-4,-3l-1,-1l-2,-2l-6,-7l-1,-1l-1,-2l-1,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M352,503v-2l-1,-1l-3,-4v-1l-1,-1l1,-2v-1l2,-1l3,-1l1,-1l2,1l4,-1l3,-1l5,-1l5,-1l4,-3l3,-2l2,-1l2,-1h2l1,1l1,1v1v2v2v1h-1l-3,3l-3,3l-5,1l-2,2l-1,1l-1,1v2v2l-1,1v1"><title>Description: Apparent limit</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M151,304l-7,-1l-5,-1l-1,-2l-1,-1l-3,-6v-2l-2,-1l-1,-2l-1,-5l-1,-1l-1,-2v-1l-1,-1l-2,-1l-5,-2h-1l-1,-1l-2,-2l-2,-1v-1l-1,-2l-1,-1l-3,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M150,154l-1,-2l-1,-2l-2,-5l-1,-2l-3,-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M150,95h2l3,1l4,-1l6,-1h2l2,1l2,1h2l3,-1l5,-1h2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M152,0l1,1l2,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M569,142l-1,-1l-2,-5"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M569,142l1,-2l4,-4v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M393,140l7,-1h1l3,2h3l3,2h2l4,3l3,3l1,1v1l2,4v2v2v1l1,1v1l6,6v1l2,2l1,1v2l1,1h2l10,2l1,1l1,1l3,3v1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M453,183v-2v-3l2,-5v-3l-1,-2l-1,-3l-4,-1l-3,-3v-2v-1l1,-1l2,-2l1,-3v-5v-2v-1l-1,-1l-3,-5v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M453,183h-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M454,184l-1,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M340,274l8,-6l2,-2l1,-1l2,-2h3l3,-1l2,-2l3,-3l5,-6l5,-6l3,-2l2,-2l1,-3l1,-1l1,-1l2,-3l1,-3v-6l1,-1v-1l-1,-2v-3l1,-4l2,-2v-3v-2l2,-2l4,-3l1,-2l2,-2l1,-2l6,-5l5,-4l1,-1l2,-1l13,-2l4,-1h7l12,2h2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M478,191l-5,-1l-3,-1l-1,-1l-1,1l-3,-2l-3,-1l-2,-1h-2l-3,-1h-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M478,191l-1,-2l-1,-1l-1,-1l-1,-3l1,-3v-3l2,-4l2,-6l1,-4v-3l2,-5l1,-5v-2l-1,-1v-4l-1,-2v-1v-3v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M481,201l1,-1l4,-2l4,-1l2,-1h3h2l5,-5l3,-2l4,-4v-2v-1h2v-1v-1l3,-2l3,-2l5,-1l2,-1h2l5,-4l7,-7"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M481,201l-1,-1v-2l-1,-4l-1,-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M575,152l-2,-3v-2l-2,-2l-1,-1l-1,-1v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M397,249l3,-1l7,-1h4l2,1h3l1,-1h2l1,-2v-1l1,-2v-2l2,-2l1,-2v-2l-1,-2l-2,-3v-2l2,-2l3,-2l2,-2l2,-1l1,-3v-2v-2l2,-4l2,-2v-1l1,-3l1,-3l4,-6l2,-2l1,-1l3,-3l4,-3l3,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M563,255l2,-4l7,-11l3,-3"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M497,258l-3,-4l-1,-2v-1v-6v-3l-3,-5l-1,-3v-1l-1,-3h1v-3h-1v-1v-2l-1,-6l-3,-7v-2l-1,-2l-1,-3l-1,-2v-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M497,258l1,-2l1,-2l4,-5l3,-2l2,-2l2,-1l6,-4l4,-1l4,-2l1,-1l2,-1h4l8,-2l3,-1l3,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M498,263v-2l-1,-1v-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M485,264l-3,-1l-2,-3v-1v-1l-2,-2l-2,-1h-2l-2,-1h-2l-2,1h-1h-3l-5,-2h-2l-11,2h-2l-2,-1l-1,-1h-3l-3,-1l-6,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M485,264l4,-1l2,-1h3l4,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M351,284l1,-1l6,-2l1,1l2,1l4,2l5,3l6,3l4,2l1,1l3,3l2,1l2,1h3h3l2,1l2,1l3,-3l5,-1h2l3,-3l4,-2l3,-1h8l12,-1l4,-2l10,-5l5,-2l5,-1l9,-5l4,-2l5,-5l5,-4"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M542,316v-1l-1,-1l-6,-5l-6,-4l-1,-3l-1,-2l-3,-1l-2,-2l-3,-3v-2l-4,-4l-2,-2v-2l-1,-1l-1,-2l-3,-3l-8,-7l-1,-1l-1,-1v-2v-4"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M542,316l-2,-1l-2,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M440,325l2,1l8,1h3l2,1h3l2,-1l5,-1l5,2h3l2,-1h2l2,-2h2h1h2l4,3h1h5l3,-1h2l6,-3h2l2,1h1l3,-2l3,-3l3,-1l8,-6h1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M562,336l-1,-1v-1l-1,-3v-1h-1l-4,-1h-1v-2l1,-2v-1l-1,-2l-2,-2l-2,-1l-4,-1l-1,-1l-3,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M562,336h-2l-7,1l-6,2l-3,1l-2,-1l-3,1h-6l-1,1h-1l-3,4l-2,1l-3,1l-2,1l-5,2l-2,1l-3,3l-1,3l-1,2v2l-3,2l-1,3v6l-1,2l-1,2l-1,2v3l-2,3l-4,5l-5,6h-1h-2h-2l-2,-2l-4,-2l-5,-1l-3,-1l-3,-2h-2l-1,-2l-1,-1v-2l1,-2l2,-2v-2v-2v-1v-4l-2,-3l-1,-1l-5,-5l-3,-1l-1,-2l-1,-1l-2,-2l-3,-2l-2,-1l-3,-2l-1,-1l-5,-2l-3,-1l-7,-2h-1h-2l-1,-3l-2,-3l-1,-1l-2,-3l-3,-2l-2,-1l-2,-2h-1l-1,-1l-1,-1l-2,-3l-2,-3l-1,-1l-1,-1h-4h-4l-4,1l-3,1l-7,2h-3l-7,-3l-3,-1h-4h-2l-4,-2h-2h-2l-5,2h-1h-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M569,350v-1l-1,-1l-1,-1l-1,-1v-1l-1,-4h-1v-2l-1,-3h-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M575,352h-2l-3,-2h-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M503,414h1l1,-2l1,-1l3,-2l2,-2l1,-3v-4l1,-2v-1l1,-1l4,-1l2,-1l2,-2l1,-2l1,-2l1,-2l1,-4l2,-5l2,-3l2,-4l2,-2l4,-2l1,-2l1,-1l2,-4l7,-4l3,-1l2,-1h3l3,-1l6,-1l3,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M531,426h1l2,-1l3,-1l2,-2l2,-2l2,-2l2,-2h1h4l3,-2l1,-1l1,-4l2,-1l2,-2l3,-2h2l3,-1l1,-1l1,-3l2,-2l1,-1h2h1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M548,442l1,-4v-1l1,-1l1,-2h1l2,-1l5,-2l3,-1l2,-1l1,-3l2,-3l1,-1v-1l2,-2l4,-2h1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M555,457v-1l3,-1l2,-1h3l2,-1l3,-2l7,-2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M575,479h-3h-2l-1,-1l-3,-2l-3,-1h-5l-4,-1l-2,-2l-2,-1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M350,368l3,2h3l1,2l2,1h1l7,-3h3l5,1l3,2l2,2l4,3l2,1l3,2l3,2l2,2l4,1l8,3l3,3l3,4l1,1l4,4l5,2l2,3l4,5l8,6l4,5l2,5l4,5l2,3l2,5v1v1l1,2v2v1l1,5v1l-3,6l-2,3v2l1,3v1v2l-2,4l-1,2v3v2h1l3,10v1l1,3l2,1v1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M407,490l2,-2l2,-2l2,-1h5h1l1,-1l1,-2l-2,-2v-1l-1,-2v-2v-1l3,-1l3,-1l1,-1h5l5,1l3,1l1,1l1,1l1,4l1,2v1l-2,2v1l2,3l2,2l1,2l1,1l2,4h2h2"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M486,503v-2l-1,-1l-2,-8l-1,-2v-1l-2,-4v-1l-1,-5v-1v-9v-4l-3,-5v-1l-2,-5l-1,-5l-1,-2l-2,-2l-1,-4l-2,-4l-2,-1l-1,-1l-2,-2l-3,-4l-1,-1l-1,-3l-5,-4l-4,-2l-1,-1l-1,-2l-1,-1l-4,-2l-1,-1l-4,-2l-3,-3l-3,-6l-4,-4l-2,-2l-4,-5l-1,-2l-3,-5l-1,-2l-2,-7v-6l-1,-6l-1,-1l-1,-2l-4,-2l-4,-3l-5,-4v-1h-5l-9,-4h-1l-5,-3l-3,-2h-3l-2,-1l-3,-3h-2l-6,-1l-3,-1h-3l-1,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M528,313v-1l2,-1l1,-1l1,1l3,2l2,1l1,2"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M538,316h-1l-2,-1l-2,-1l-2,-1h-2h-1"><title>Description: Shoreline</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M334,502h-1l-1,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M282,403v1l2,5l3,4l3,3l3,2l1,2l1,1l2,2l3,1l2,2l9,4l3,1l1,2l1,1l1,1l-1,1l-1,3l-1,1v3v3l2,6l1,2l2,5l-1,3v4l-2,5l-2,7v2l-1,7l-2,4l-2,3l-1,2l-6,7"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M452,497l4,1h2l5,3l1,1l2,1"><title>Description: Stream</title></path><path style="clip-path:url(#cp2);stroke-width:0.646555;stroke:rgb(0,170,170);" fill="none" d="M474,420l3,3l1,3l4,7l3,4v1l1,2l3,6l1,1l2,1l5,-1h1l1,2l1,1l1,4v2l1,2l1,5l1,2l2,2l2,1v1l3,2l1,1v1v1l1,1l2,1l1,1h1l2,-1h2h1l1,2v1l-1,3v3l2,1l2,1l1,1v1v2v2v2l1,1l-2,3v1v1l2,1l1,1"><title>Description: Stream</title></path></g>
+<g id="L5" >
+<defs><clipPath id ="cp3" >
+<path d="M0,0v503h575v-503z " />
+</clipPath></defs>
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M521,130h-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M520,130h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M149,207" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M149,207h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M146,207l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M144,208h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M143,208l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M141,207l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,205l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M137,202l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,198l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,197l-3,-7" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,190l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,186v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,185v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,183v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,180l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,179l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,177l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,175v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,174l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,170l2,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M138,162v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M138,159l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M137,158l-4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,154l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,153v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,150v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,147l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,145l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,142l-4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M125,140l-4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M121,137v-1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M151,207h-2h-3l-2,1h-1l-2,-1l-2,-2l-2,-3l-1,-4l-1,-1l-3,-7l-1,-4v-1v-2v-3l1,-1l2,-2l1,-2v-1l1,-4l2,-8v-3l-1,-1l-4,-4l-1,-1v-3v-3l-1,-2l-2,-3l-4,-2l-4,-3l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M3,136l3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M6,138l4,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M10,140l2,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M12,143l3,4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M15,147l4,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M19,151l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M21,152h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M24,152h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M25,152l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M27,151l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M29,149l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M30,148h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M32,148h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M33,148l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M35,149h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M36,149l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M38,148l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,145v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,144l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,143l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M45,142l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M46,141l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,140v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,139v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,137" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,137" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M2,136l4,2l4,2l2,3l3,4l4,4l2,1h3h1l2,-1l2,-2l1,-1h2h1l2,1h1l2,-1l2,-3v-1l3,-1l2,-1l1,-1l1,-1v-1v-2v-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,483v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,484v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,482v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,130h-2" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M521,130h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,488v-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,489v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,488v-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,489v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,484v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,483v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M152,393l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M151,392h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M150,392v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M150,391" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M150,391v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M150,390l-4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M146,386l-6,-7" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M140,379h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,379l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M137,376h-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M152,394l-1,-2h-1v-1v-1l-4,-4l-6,-7h-1l-2,-3l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M150,20l5,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M155,17l10,-6" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M165,11l5,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,8l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,7l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M175,6l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M178,5l5,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M183,2l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M184,1l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M186,0l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M188,-2l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M189,-3l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,-4l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M194,-5l7,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M201,-6l5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M206,-7l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M208,-8l5,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M213,-10l5,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M218,-15v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M218,-16l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M219,-17h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M222,-17l5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M227,-16h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M229,-16l5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M234,-17l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M235,-18l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M236,-20h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M237,-20l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M238,-21l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M241,-20l8,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M249,-21h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M253,-21h5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M258,-21l8,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M266,-20h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M270,-20l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M272,-21h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M274,-21h3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M277,-21l5,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M282,-18l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M284,-17l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M287,-16l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M288,-14l4,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M292,-10l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M293,-9l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M295,-10h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M296,-10l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M297,-11l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M299,-12l3,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M302,-18l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M304,-21l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M305,-23v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M305,-24l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M306,-25l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M308,-26h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M311,-26l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M314,-27l4,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M318,-25l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M319,-24l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M320,-23l1,2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M149,20l6,-3l10,-6l5,-3l3,-1l2,-1l3,-1l5,-3l1,-1l2,-1l2,-2l1,-1l1,-1l4,-1l7,-1l5,-1l2,-1l5,-2l5,-5v-1l1,-1h3l5,1h2l5,-1l1,-1l1,-2h1l1,-1l3,1l8,-1h4h5l8,1h4l2,-1h2h3l5,3l2,1l3,1l1,2l4,4l1,1l2,-1h1l1,-1l2,-1l3,-6l2,-3l1,-2v-1l1,-1l2,-1h3l3,-1l4,2l1,1l1,1l2,3v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,493v-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,495v-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M102,13" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M102,13l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M101,10l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M100,7v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M100,5l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M101,4l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M102,3l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,4v3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,7v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,8h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M104,8h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M105,8h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M108,8h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M109,8l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M110,6l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M111,4l1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M112,-1l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M113,-2v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M113,-3l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M116,-4l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M117,-6l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,-8v-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,-12l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M119,-15v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M119,-16l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M120,-19" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M120,-19l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M121,-20v-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M103,14l-1,-1l-1,-3l-1,-3v-2l1,-1l1,-1l1,1v3v1h1h1h3h1l1,-2l1,-2l1,-5l1,-1v-1l3,-1l1,-2l1,-2v-4l1,-3v-1l1,-3l1,-1v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M101,14l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M99,13v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M99,12l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M98,10v-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M98,3l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M97,2v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M97,0l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M96,-3v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M103,14l-4,-1v-1l-1,-2v-7l-1,-1v-2l-1,-3l-1,-2h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M120,22h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M121,22l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M123,23l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M124,22h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M125,22" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M125,22l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M126,24v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M126,25l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M127,26v4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M127,30l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M128,31l1,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,33h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M130,33l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,32h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,32v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,30l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,28l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,27l9,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M144,23l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M146,21h2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M118,22h3l2,1l1,-1h1l1,2v1l1,1v4l1,1l1,2h1l1,-1h1v-2l2,-2l1,-1l9,-4l2,-2l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M119,21v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M119,20v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M119,18l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,16" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,16v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,14l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M119,13l3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M122,10l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M123,9v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M123,8" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M123,8h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M121,8l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M119,10l-4,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M115,13l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M112,15l-2,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M110,18l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M107,20h-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M105,20l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M104,19v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M104,18l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,17v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,16" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,16" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M118,22l1,-2v-2l-1,-2v-2l1,-1l3,-3l1,-1v-1h-2l-2,2l-4,3l-3,2l-2,3l-3,2h-2l-1,-1v-1l-1,-1v-1v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M84,21l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M85,19l5,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,11l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M92,8l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M93,6l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M94,2v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M94,0v-4" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M84,22l1,-3l5,-8l2,-3l1,-2l1,-4v-2v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M99,36l-7,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M101,36l-11,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M100,35l-7,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M93,29l-4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M89,26l-4,-3" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M101,36l-8,-7l-4,-3l-5,-3v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M102,36h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M105,36l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M106,35l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M107,34l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M109,32l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M110,31l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M112,28l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M114,27l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M116,26l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,23" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M101,36h4l1,-1l1,-1l2,-2l1,-1l2,-3l2,-1l2,-1l2,-3v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M41,36l5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M46,35h7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M53,35l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M56,34h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M58,34l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M61,32l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M64,31l5,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M69,30h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M72,30h5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M77,30l10,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M87,34h2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M40,36l6,-1h7l3,-1h2l3,-2l3,-1l5,-1h3h5l10,4l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-39,43l10,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-29,41l14,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-15,38l15,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,34l7,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M7,31h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M10,31l20,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M30,29l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M33,30l4,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M37,31h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,31l11,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M51,29l8,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M59,26l7,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M66,22l7,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M73,21h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M77,21l6,1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M-40,44l11,-3l14,-3l15,-4l7,-3h3l20,-2l3,1l4,1h3l11,-2l8,-3l7,-4l7,-1h4l7,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-29,57l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-27,56l7,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-20,53l5,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-15,51l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-13,50l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-12,48" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-12,48l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,47l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-10,46l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-6,45l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-3,44l4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,41l4,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M5,40h23" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,40l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M32,39l5,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M37,37l2,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M-31,58l1,-1l3,-1l7,-3l5,-2l2,-1l1,-2l1,-1l1,-1l4,-1l3,-1l4,-3l4,-1h23l4,-1l5,-2l2,-1h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M148,76l-9,-8" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,68l-14,-12" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M125,56l-9,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M116,48l-8,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M108,42l-6,-5" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M149,77l-10,-9l-14,-12l-9,-8l-8,-6l-7,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M39,79v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M39,78l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M38,77l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M35,76l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M32,73l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M31,72l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M29,71h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,71h-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M25,71l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M23,72l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M22,73l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M20,75v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M20,77v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M20,79l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M21,81l2,3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M23,84l3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M26,87l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M27,88l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,90v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,92v4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,96" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,96v7" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,103l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M27,105" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M27,105h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M26,105l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M25,104l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M23,103l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M21,100l-4,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M17,96l-5,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M12,91l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M9,89l-7,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M2,85l-7,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-5,82l-4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-9,80l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,79h-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-13,79l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-14,78v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-14,76l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-13,73v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-13,70l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-14,67l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-16,65l-6,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,61l-4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-26,60l-4,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M40,80l-1,-2l-1,-1l-3,-1l-3,-3l-1,-1l-2,-1h-1h-3l-2,1l-1,1l-2,2v2v2l1,2l2,3l3,3l1,1l1,2v2v4v7l-1,2h-1l-1,-1l-2,-1l-2,-3l-4,-4l-5,-5l-3,-2l-7,-4l-7,-3l-4,-2l-2,-1h-2l-1,-1v-2l1,-3v-3l-1,-3l-2,-2l-6,-4l-4,-1l-4,-2h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M41,81l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,83l2,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M45,85l5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M50,86l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M51,87l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M52,88v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M52,89l1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M53,92v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M53,93l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M54,94l5,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M59,96l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M62,97l5,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M67,99l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M69,100h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M71,100v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M71,99v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M71,98l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M70,97" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M70,97l-4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M66,95v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M66,94l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M65,92v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M65,91l-2,-7" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M63,84v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M63,83l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M64,82l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M65,81l5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M70,82l6,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M76,86l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M78,87h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M80,87h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M81,87h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M82,87l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M83,85l1,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M84,79l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M83,78l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M80,74l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M79,71l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M77,68l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M75,64l-5,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M70,57l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M68,55l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M67,52l-3,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M64,45l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M63,44l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M62,43h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M60,43h-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M56,43h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M54,43h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M52,43l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M50,42l-4,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M46,41l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M44,40l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M41,38" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M40,80v1l3,2l2,2l5,1l1,1l1,1v1l1,3v1l1,1l5,2l3,1l5,2l2,1h2v-1v-1l-1,-1l-4,-2v-1l-1,-2v-1l-2,-7v-1l1,-1l1,-1l5,1l6,4l2,1h2h1h1l1,-2l1,-6l-1,-1l-3,-4l-1,-3l-2,-3l-2,-4l-5,-7l-2,-2l-1,-3l-3,-7l-1,-1l-1,-1h-2h-4h-2h-2l-2,-1l-4,-1l-2,-1l-3,-2l-1,-1v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,108v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,106v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,104l3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,100v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,99v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,95l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,94l-7,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M126,87l-8,-10" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,77l-12,-11" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M106,66l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M104,64l-5,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M99,59l-8,-9" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M91,50l-6,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M85,42l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M84,40l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M85,39l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M87,38l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,36" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M131,110v-4v-2l3,-4v-1v-4l-1,-1l-7,-7l-8,-10l-12,-11l-2,-2l-5,-5l-8,-9l-6,-8l-1,-2l1,-1l2,-1l3,-2v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M148,133l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M147,130v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M147,127l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M146,125l-4,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M142,120l-4,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M138,115l-6,-5" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M149,134l-2,-4v-3l-1,-2l-4,-5l-4,-5l-6,-5h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M119,134l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,132l-5,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M113,129l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M112,128v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M112,127l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M111,126l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M112,124l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M113,123h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M115,123l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M117,124l4,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M121,128l8,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,132h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M130,132h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,132l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,131l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,130l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,129l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M138,128l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,127v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,125v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,124l-2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M137,122l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,121l-6,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,119h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M128,119v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M128,117l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,116l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,114v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,113v-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M120,135v-1l-2,-2l-5,-3l-1,-1v-1l-1,-1l1,-2l1,-1h2l2,1l4,4l8,4h1h2l1,-1l1,-1l2,-1l2,-1l1,-1v-2v-1l-2,-2l-2,-1l-6,-2h-1v-2l1,-1l2,-2v-1v-2v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M668,113l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M667,111l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M664,110l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M663,109l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M660,107l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M659,106l-4,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M655,100" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M655,100l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M654,99v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M654,98l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M653,96v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M653,95l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M651,92l-2,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M649,85l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M650,82l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M651,78v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M651,76l-1,-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M650,71l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M649,70l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M648,69l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M647,67l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M646,64l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M644,62l-6,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M638,57l-5,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M633,56l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M632,55l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M631,54l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M630,53l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M629,51" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M629,51l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M628,49l-6,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M622,45l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M620,43l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M618,40l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M617,38l-8,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M609,33l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M606,29l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M605,27l-2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M603,25l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M600,23l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M597,20l-3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M594,21l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M592,20l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M591,18l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M590,17l-4,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M586,14h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M585,14h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M584,14h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M582,14l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M580,13l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M579,12l-13,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M566,8l-3,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M563,7l-6,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M557,5l-4,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M553,6h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M552,6l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M551,8h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M548,8l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M546,9l-2,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M544,11l-1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M543,14v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M543,16l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,17h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M541,17h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M540,17l-5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M535,16l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M534,15l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M533,14l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M530,12" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M530,12h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M529,12l-4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M525,10l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M524,9v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M524,7h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,7l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M522,5h-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M518,5l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M515,4l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M513,3l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M512,0v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M512,-2l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M511,-5l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M510,-7h-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M669,114l-2,-3l-3,-1l-1,-1l-3,-2l-1,-1l-4,-6l-1,-1v-1l-1,-2v-1l-2,-3l-2,-7l1,-3l1,-4v-2l-1,-5l-1,-1l-1,-1l-1,-2l-1,-3l-2,-2l-6,-5l-5,-1l-1,-1l-1,-1l-1,-1l-1,-2l-1,-2l-6,-4l-2,-2l-2,-3l-1,-2l-8,-5l-3,-4l-1,-2l-2,-2l-3,-2l-3,-3l-3,1l-2,-1l-1,-2l-1,-1l-4,-3h-1h-1h-2l-2,-1l-1,-1l-13,-4l-3,-1l-6,-2l-4,1h-1l-1,2h-3l-2,1l-2,2l-1,3v2l-1,1h-1h-1l-5,-1l-1,-1l-1,-1l-3,-2h-1l-4,-2l-1,-1v-2h-1l-1,-2h-4l-3,-1l-2,-1l-1,-3v-2l-1,-3l-1,-2h-1l-2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,484v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,134" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,134l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M48,133l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M51,131l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M52,128v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M52,127v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M52,125v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M52,124l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M51,122" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M51,122v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M51,118l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M50,116h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M49,116h-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M44,116l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,115l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M42,114l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M41,113v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M41,111l2,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,105l2,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M45,97v-9" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M45,88l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M44,87" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M44,87l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M42,86l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,84" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,84v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,83" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,83" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,83l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M39,82v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M47,135v-1l1,-1l3,-2l1,-3v-1v-2v-1l-1,-2v-4l-1,-2h-1h-5l-1,-1l-1,-1l-1,-1v-2l2,-6l2,-8v-9l-1,-1l-2,-1l-2,-2v-1l-1,-1v-2h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-5,136h5" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M-6,136h8" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M353,84l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M354,83h7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M361,83l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M364,84h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M366,84h2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M352,85v-1l2,-1h7l3,1h2h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,87l-7,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M165,86l-6,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M159,85l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M157,83l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M154,81l-4,-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M173,87l-8,-1l-6,-1l-2,-2l-3,-2l-5,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,86l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M347,86h1l3,-1h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,86" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M352,87v-1v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,87l-1,1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M351,88l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M350,88h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M349,88l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M351,88h-2l-2,-1v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M247,90l-11,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M236,91h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M234,91h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M232,91l-6,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M226,88l-7,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M219,86l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M217,85l-12,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M205,83h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M202,83l-8,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M194,86h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M192,86h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,86l-5,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M185,85h-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M181,85l-4,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M177,87h-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M248,90l-12,1h-2h-2l-6,-3l-7,-2l-2,-1l-12,-2h-3l-8,3h-2h-2l-5,-1h-4l-4,2h-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M249,89" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M249,89l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M251,88h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M253,88l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M255,87l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M254,86h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M253,86" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M253,86l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M252,85v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M252,84" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M252,84v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M252,83l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M251,81v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M251,80l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M250,78v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M250,77v-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M250,73l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M251,70v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M251,68l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M252,66l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M254,65h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M256,65l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M259,66l4,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M263,65l6,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M269,62h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M273,62h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M275,62l3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M278,64h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M279,64l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M281,62l2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M283,60l7,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M290,54h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M291,54l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M294,52l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M297,51h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M298,51h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M299,51l2,3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M301,54l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M302,56l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,57h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M305,57l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M307,56l6,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M313,51l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M314,49v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M314,48v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M314,44v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M314,42l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M313,40v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M313,39v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M313,38" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M313,38v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M313,37l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M312,35l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M310,32l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M309,31" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M309,31l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M308,30" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M308,30l-4,-6" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M304,24v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M304,23h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,23v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,20v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,18" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,18v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,15v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,14v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,11v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,10h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M304,10l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M308,9l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M309,7l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M310,6l4,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M314,2l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M315,1l1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M248,90v-1h1l2,-1h2l2,-1l-1,-1h-1l-1,-1v-1v-1l-1,-2v-1l-1,-2v-1v-4l1,-3v-2l1,-2l2,-1h2l3,1l4,-1l6,-3h4h2l3,2h1l2,-2l2,-2l7,-6h1l3,-2l3,-1h1h1l2,3l1,2l1,1h2l2,-1l6,-5l1,-2v-1v-4v-2l-1,-2v-1v-1v-1l-1,-2l-2,-3l-1,-1l-1,-1l-4,-6v-1h-1v-3v-2v-3v-1v-3v-1h1l4,-1l1,-2l1,-1l4,-4l1,-1l2,-1v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M368,89h-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M366,89h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M363,89h-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M358,89h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M357,89h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M355,89l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M369,90l-1,-1h-2h-3h-5h-1h-2l-3,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M369,89l1,-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M369,90l1,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M328,96h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M327,96h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M324,96h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M323,96l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M320,94l-4,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M316,92l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M315,91l-3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M312,92l-5,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M307,94h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M304,94h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,94h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M301,94l-7,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M294,91h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M292,91h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M289,91l-4,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M285,92l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M283,93l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M282,95v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M282,98h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M281,98h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M280,98h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M278,98l-8,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M270,93l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M268,92l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M265,91l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M262,90h-6" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M256,90h-6" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M328,95l-1,1h-3h-1l-3,-2l-4,-2l-1,-1l-3,1l-5,2h-3h-1h-2l-7,-3h-2h-3l-4,1l-2,1l-1,2v3h-1h-1h-2l-8,-5l-2,-1l-3,-1l-3,-1h-6h-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M329,93l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M330,91l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M331,88l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M332,86" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M332,86l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M331,83v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M331,82l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M330,81v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M330,80l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M329,77l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M328,76v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M328,74l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M327,73v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M327,71v-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M327,63l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M326,62v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M326,58l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M327,54l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M328,53v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M328,48l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M329,45v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M329,42l-1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M328,37l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M325,34l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M322,32v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M322,31v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M322,28h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M321,28l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M319,26l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M318,25" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M318,25l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M317,24v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M317,22v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M317,21l3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M320,18v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M320,17l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M319,14l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M318,13v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M318,10l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M319,9l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M320,8l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M321,7l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M320,6l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M319,4l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M318,1v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M328,95l1,-1l1,-3l1,-3l1,-2l-1,-3v-1l-1,-1v-1l-1,-3l-1,-1v-2l-1,-1v-2v-8l-1,-1v-4l1,-4l1,-1v-5l1,-3v-3l-1,-5l-3,-3l-3,-2v-1v-3h-1l-2,-2l-1,-1l-1,-1v-2v-1l3,-3v-1l-1,-3l-1,-1v-3l1,-1l1,-1l1,-1l-1,-1l-1,-2l-1,-3v-1l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M330,94" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M330,94l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M333,92l4,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,87l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M339,86h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M340,86h5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M345,86h1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M328,95l2,-1l3,-2l4,-5l2,-1h1h5h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M386,96h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,96h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M382,96l-4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M378,93l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M375,92l-4,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M371,91l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M387,95l-1,1h-2h-2l-4,-3l-3,-1l-4,-1l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M387,94l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,92l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M381,91l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M379,88l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M378,87h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M375,87l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M373,85l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M387,95v-1l-3,-2l-3,-1l-2,-3l-1,-1h-3l-2,-2l-2,-1h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M342,131l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M344,128v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M344,127v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M344,125l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M345,124v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M345,120v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M345,118l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,115l3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M350,112l6,-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M356,107l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M358,105l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M361,103l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M362,101l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M363,98l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M364,97l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M366,96l2,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M368,93l1,-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M342,132l2,-4v-1v-2l1,-1v-4v-2l2,-3l3,-3l6,-5l2,-2l3,-2l1,-2l1,-3l1,-1l2,-1l2,-3l1,-2v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,133v-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,125v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,120v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,119v-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,114l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,110v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,105v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,104l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M175,102v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M175,101l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M174,99v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M174,98l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,94v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,93l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,91h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M174,91l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M175,90v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M175,89l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M174,88" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M174,88" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M171,134v-9v-5v-1v-5l1,-4v-5v-1l3,-2v-1l-1,-2v-1l-3,-4v-1l1,-2h2l1,-1v-1l-1,-1l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,4v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,3l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,1v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,-1v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,-3l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,-6h-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M507,6l1,-1v-1v-1l1,-2v-2v-2l-1,-3l-1,-1v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M433,7h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M434,7l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M435,6v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M435,3l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,1l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M437,0" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M437,0h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,0v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,-2v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,-6l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M437,-9l1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M438,-14v-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M438,-22l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,-24l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M438,-25v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M438,-27v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M438,-28" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M438,-28h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,-28v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,-29v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,-31l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M440,-33v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M440,-34l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M441,-36l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M442,-38l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M444,-39l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M445,-40v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M445,-42l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M444,-43" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M444,-43l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M443,-45l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M444,-46h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M445,-46" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M445,-46l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M446,-45l1,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M447,-43l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M448,-42h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M449,-42v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M449,-43l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M448,-46v-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M431,8h1l2,-1l1,-1v-3l1,-2l1,-1h-1v-2v-4l1,-3l1,-5v-8l1,-2l-1,-1v-2v-1h1v-1v-2l1,-2v-1l1,-2l1,-2l2,-1l1,-1v-2l-1,-1l-1,-2l1,-1h1l1,1l1,2l1,1h1v-1l-1,-3v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M392,35l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M393,31l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M394,29v-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M394,23v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M394,22l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M395,19l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M396,18l2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M398,16l5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M403,15h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M404,15l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M405,13h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M406,13l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M407,14l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M408,15h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M409,15h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M410,15l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M412,13l3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M415,10l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M416,8v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M416,6l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M417,5l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M419,4l4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M423,1l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M424,0h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,0h5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M430,0h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M431,0v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M431,1v5" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M391,36l2,-5l1,-2v-6v-1l1,-3l1,-1l2,-2l5,-1h1l1,-2h1l1,1l1,1h1h1l2,-2l3,-3l1,-2v-2l1,-1l2,-1l4,-3l1,-1h1h5h1v1v7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,33l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,32l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,30l-4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,26" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,26l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M493,25l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M492,24v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M492,20l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M493,16v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M493,15l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M492,14l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,13h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,13l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,11v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,9l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M492,8l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,7l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,5h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M502,5l3,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M505,6h1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M501,34l-2,-2l-1,-2l-4,-4l-1,-1l-1,-1v-4l1,-4v-1l-1,-1l-2,-1h-1l1,-2v-2l2,-1l4,-1l3,-2h3l3,1h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M501,33v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M501,30" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M501,30v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M501,29h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,29l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,26v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,25v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,23v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,22l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,21v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,20l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M497,19" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M497,19v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M497,17v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M497,14l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,12v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,8l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M501,7h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M502,7l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M504,9h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M506,9v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M506,8l1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M501,34v-1v-3v-1h-1l-1,-3v-1v-2v-1l-1,-1v-1l-1,-1v-2v-3l3,-2v-4l1,-1h1l2,2h2v-1l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,35h-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,35h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M493,35l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,33l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,30v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,29l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,27v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,24v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,22v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,17l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M487,16l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,15l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M485,14l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M483,15" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M483,15l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M481,14h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,14h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,14v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,15" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,15v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,17l1,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,19" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,19v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,20l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,21l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M475,23l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,24l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,25h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,25v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,28l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M470,30l-1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M469,33" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M501,34l-1,1h-6h-1l-2,-2l-2,-3v-1l-1,-2v-3v-2v-5l-1,-1l-1,-1l-1,-1l-2,1l-2,-1h-3h-1v1v2l1,2v1l-1,1l-2,2l-2,1l-1,1h-1v3l-1,2l-1,3l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M518,51v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M518,49l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M517,48l-4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M513,44l-6,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,40l-5,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M502,35h-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M519,52l-1,-3l-1,-1l-4,-4l-6,-4l-5,-5l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M502,65v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M502,64l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,63l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,62l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,60l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,58l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,56v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,54v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,53l2,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,48v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,47v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,46l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M495,44l-4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,41l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,40v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,39v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,38h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,38l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,39h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M495,39l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,38h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M497,38h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,38l4,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M503,41l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M505,42l3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,45l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M510,46l3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M513,48l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M514,49" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M514,49l1,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M515,53v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M515,54l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M516,55h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M517,55" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M517,55l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M501,66l1,-1v-1l-2,-1l-1,-1l-1,-2l1,-2l-3,-2v-2v-1l2,-5v-1v-1l-3,-2l-4,-3l-1,-1v-1v-1h1l3,1h1l1,-1h1h2l4,3l2,1l3,3l2,1l3,2l1,1l1,4v1l1,1h1l1,-2l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,65l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,64l-5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,63l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M493,62l-3,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,59l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,58l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,57l-6,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,55l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M481,54l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,53l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,52v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,51l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M475,49l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,48v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,47" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,47v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,45l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,44v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,43" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,43l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,41l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M470,38v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M470,35l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M501,66l-2,-2l-5,-1l-1,-1l-3,-3l-1,-1l-1,-1l-6,-2l-1,-1l-3,-1l-1,-1v-1l-2,-2l-1,-1v-1v-2l-1,-1v-1l-1,-2l-2,-3v-3l-1,-1h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M413,67" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M413,67l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M415,64l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M416,63h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M418,63h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M420,63h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M421,63l2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M423,61v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M423,60v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M423,59v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M423,58l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M422,56l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M423,54l2,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,49v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,48v-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,40" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,40l-1,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M424,33v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M424,30v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M424,25l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,21l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,19l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M427,17l2,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M429,11l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M431,9" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M413,68v-1l2,-3l1,-1h2h2h1l2,-2v-1v-1v-1l-1,-2l1,-2l2,-5v-1v-8l-1,-7v-3v-5l1,-4l1,-2l1,-2l2,-6l2,-2v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M415,67l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M416,66l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M419,65h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M422,65l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M424,64l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,63h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M428,63v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M428,62v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M428,61l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,59l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,56v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,55l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,53" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,53l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M427,52l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M428,50v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M428,48l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M429,46l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M430,44h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M431,44h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M434,44l5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,45h6" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M445,45l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M447,46h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M449,46h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,46h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M452,46l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,44v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,43v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,42l5,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M459,37l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M460,36h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M462,36h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M463,36l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M465,35h2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M413,68h1l2,-2l3,-1h3l2,-1l2,-1h2v-1v-1l-2,-2l-1,-3v-1l1,-2l1,-1l1,-2v-2l1,-2l1,-2h1h3l5,1h6l2,1h2h2h1l2,-2v-1v-1l5,-5l1,-1h2h1l2,-1l3,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,69" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,69v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,67l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M497,66h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,66h2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M497,70v-1h-1v-2l1,-1h1h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M388,96h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M390,96h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M392,96v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M392,95l3,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M395,89l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M397,87l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M399,86l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M400,84l2,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M402,80l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M404,78l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M407,77h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M409,77h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M411,77l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M412,76v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M412,75v-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M412,70l1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M387,95l3,1h2v-1l3,-6l2,-2l2,-1l1,-2l2,-4l2,-2l3,-1h2h2l1,-1v-1v-5l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M389,131l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M388,130v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M388,129l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M390,127l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M392,126l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M394,123l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M396,120l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M397,118l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M398,117l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M399,116h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M401,116l2,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M403,117h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M404,117h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M405,117h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M406,117h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M408,117l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M409,119h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M410,119h3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M413,119l5,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M418,117h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M420,117l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M422,118l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M423,119l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,118v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,117v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,114v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,111l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,109l3,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M429,101l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M431,98l4,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M435,93l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,92v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,90v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,88v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,87v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,84l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M437,82l2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,78v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,76h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M440,76l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M441,72v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M441,68l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M442,64l2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M444,60l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M446,58h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M447,58l4,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,56l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M452,57l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M455,58h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M456,58l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M459,59l5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M464,60h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M466,60h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M468,60h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,60h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M475,60l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M476,59v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M476,58l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,55l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,51v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,49h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M470,49l-2,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M468,44" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M468,44v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M468,42l-1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M467,37l1,-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M389,132l-1,-2v-1l2,-2l2,-1l2,-3l2,-3l1,-2l1,-1l1,-1h2l2,1h1h1h1h2l1,2h1h3l5,-2h2l2,1l1,1l2,-1v-1v-3v-3l1,-2l3,-8l2,-3l4,-5l1,-1v-2v-2v-1v-3l1,-2l2,-4v-2h1l1,-4v-4l1,-4l2,-4l2,-2h1l4,-2l1,1l3,1h1l3,1l5,1h2h2h4h3l1,-1v-1l-2,-3l-3,-4v-2h-1l-2,-5v-2l-1,-5l1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M611,128l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M608,125l-4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M604,122l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M602,120l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M600,118l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M599,116l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M598,113v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M598,111l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M597,107l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M596,106l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M593,104l-4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M589,100l-3,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M586,99l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M585,97" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M585,97l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M582,93" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M582,93l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M581,92v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M581,91l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M580,89l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M579,87l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M578,83l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M577,81l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,80" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,80l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M574,78l-2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M572,77l-5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M567,76h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M564,76l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M562,75l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M559,74l-4,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M555,69l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M553,67l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M552,66l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M550,65l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M547,64h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M544,64l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M541,63l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M540,62l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M538,63l-3,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M535,64h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M532,64l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M529,63l-4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M525,61l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,60v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,59v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,58l-3,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M520,54v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M611,129l-3,-4l-4,-3l-2,-2l-2,-2l-1,-2l-1,-3v-2l-1,-4l-1,-1l-3,-2l-4,-4l-3,-1l-1,-2l-3,-4l-1,-1v-1l-1,-2l-1,-2l-1,-4l-1,-2l-1,-1l-2,-2l-2,-1l-5,-1h-3l-2,-1l-3,-1l-4,-5l-2,-2l-1,-1l-2,-1l-3,-1h-3l-3,-1l-1,-1l-2,1l-3,1h-3l-3,-1l-4,-2l-2,-1v-1v-1l-3,-4l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M521,130" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M523,130h-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M521,130" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M521,130" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M523,130h-2h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,129l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,128v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,126v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,124v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,122l-2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,120l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M505,118l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M503,116v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M503,115v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M503,113v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M503,112l3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M506,108l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,106l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,104v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,102" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,102v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,100l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,99v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,96v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,94l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M510,92v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M510,90v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M510,86l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,82l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,81l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M506,79l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M505,78l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M503,77l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M502,74l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,72l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,71l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M506,130h1l2,-2v-2v-2v-2l-2,-2l-2,-2l-2,-2v-1v-2v-1l3,-4l1,-2l1,-2v-2v-2l-1,-1v-3v-2l3,-2v-2v-4l-1,-4l-1,-1l-2,-2l-1,-1l-2,-1l-1,-3l-2,-2l-1,-1l-2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,130v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,129l5,-9" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M476,120l3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,116l3,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,111l1,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M483,105v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M483,102l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,101v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,100" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,100l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M480,98l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,97v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,96v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,95l1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M480,92l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,89v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,88l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M481,86l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M480,85l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,83l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M480,82l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M481,81h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,81h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M484,81h6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,81h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M492,81l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,80l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,79l1,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M497,75v-4" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M470,131l1,-2l5,-9l3,-4l3,-5l1,-6v-3l-1,-1v-1l-2,-2l-1,-1v-1v-1l1,-3l2,-3v-1l-1,-2l-1,-1l-1,-2l1,-1l1,-1h1h2h6h2l2,-1l2,-1l1,-4v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M521,130h-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M520,130h1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,484v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,483v1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,484v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,483" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,485v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,486v2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,485v4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M332,131" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M332,131l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M331,128v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M331,126v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M331,125l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M332,124l4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M336,122l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M338,119l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M339,118l13,-25" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,93v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,91l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M332,132v-1l-1,-3v-2v-1l1,-1l4,-2l2,-3l1,-1l13,-25v-2l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M152,497" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M152,497l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M151,495v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M151,493v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M151,491l2,-5" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,498l-1,-1l-1,-2v-2v-2l2,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M16,278" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M16,278l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M18,279l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M19,280l1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M20,283v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M20,285v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M20,287l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M21,288h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M22,288h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M25,288l4,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M29,287l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M32,288l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M33,289l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M34,290l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M35,292l3,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M38,296v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M38,297l3,5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M41,302l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M42,303" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M42,303l1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,306v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,307" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,307v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,309l1,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M44,311" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M44,311l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M45,312l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M46,311l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,310v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,308v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,306l-2,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M45,303v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M45,300l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M46,299l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M48,296l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M49,295l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M48,294h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,294h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M46,294l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M45,293l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M44,292l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,289v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,285l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M42,282l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M41,281l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,279l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M38,278l-7,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M31,277l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M30,276l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,275l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M26,273h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M25,273l-8,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M17,270l-16,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,263l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-2,262l-9,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,256l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-12,255l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-13,254v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-13,253l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-12,251l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,248v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M15,279l1,-1l2,1l1,1l1,3v2v2l1,1h1h3l4,-1l3,1l1,1l1,1l1,2l3,4v1l3,5l1,1l1,3v1v2l1,2l1,1l1,-1l1,-1v-2v-2l-2,-3v-3l1,-1l2,-3l1,-1l-1,-1h-1h-1l-1,-1l-1,-1l-1,-3v-4l-1,-3l-1,-1l-1,-2l-2,-1l-7,-1l-1,-1l-2,-1l-2,-2h-1l-8,-3l-16,-7l-3,-1l-9,-6l-1,-1l-1,-1v-1l1,-2l1,-3v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,353v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,351l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M89,349l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M87,348h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M85,348l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M84,349l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M81,351l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M79,352h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M78,352l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M77,351v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M77,350l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M78,348v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M78,347v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M78,346h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M76,346l-3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M73,349h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M72,349h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M69,349l-4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M65,347l-6,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M59,346h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M57,346l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M55,347l-4,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M51,349h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M50,349" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M50,349l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M49,348l1,-4" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M91,354h-1v-3l-1,-2l-2,-1h-2l-1,1l-3,2l-2,1h-1l-1,-1v-1l1,-2v-1v-1h-2l-3,3h-1h-3l-4,-2l-6,-1h-2l-2,1l-4,2h-1l-1,-1l1,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M92,353l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M93,349v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M93,347v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M93,346v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M93,344l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M91,343l-7,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M84,342l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M83,341v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M83,340l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M82,339h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M79,339h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M78,339l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M77,338v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M77,337l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M78,336l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M82,335l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M83,334l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M85,332v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M85,330l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M86,329l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M87,328h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M89,328l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,327l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M91,326l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M92,324v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M92,321l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,318l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M89,315l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,314v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,313" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,313h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M91,313h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M93,313l9,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M102,317h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,317h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M104,317l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M105,316v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M105,314l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M104,313v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M104,309l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,307l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M101,303l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M100,302v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M100,301l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M99,300" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M99,300l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M98,298l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M96,295l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M95,292l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M93,290l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M91,289l-6,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M85,286l-5,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M80,283l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M77,282h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M75,282l-5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M70,283h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M68,283h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M66,283l-2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M64,281l-5,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M59,277l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M58,276h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M57,276l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M54,278l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M52,279h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M50,279l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M49,278l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,277l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M46,273l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M43,270l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M42,268v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M42,264v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M42,263l-2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,261l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M39,260l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M36,259l-7,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M29,258l-12,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M17,255l-5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M12,254h-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M5,254l-4,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,253l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-2,251l-4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-6,249l-4,-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M91,354l2,-5v-2v-1v-2l-2,-1l-7,-1l-1,-1v-1l-1,-1h-3h-1l-1,-1v-1l1,-1l4,-1l1,-1l2,-2v-2l1,-1l1,-1h2l1,-1l1,-1l1,-2v-3l-2,-3l-1,-3l1,-1v-1h1h2l9,4h1h1l1,-1v-2l-1,-1v-4l-1,-2l-2,-4l-1,-1v-1l-1,-1l-1,-2l-2,-3l-1,-3l-2,-2l-2,-1l-6,-3l-5,-3l-3,-1h-2l-5,1h-2h-2l-2,-2l-5,-4l-1,-1h-1l-3,2l-2,1h-2l-1,-1l-2,-1l-1,-4l-3,-3l-1,-2v-4v-1l-2,-2l-1,-1l-3,-1l-7,-1l-12,-3l-5,-1h-7l-4,-1l-3,-2l-4,-2l-4,-3h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,374l-4,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M130,369l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M127,366l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M125,362v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M125,359l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M124,357" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M124,357v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M124,354" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M124,354l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M125,353l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M128,352h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,352v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,350v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,346l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M130,344l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,341v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,339l1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M130,334l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,330l3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,326l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,323v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,321l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,319v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,316l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,314l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,311l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,309l1,-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,304l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,301v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,298v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,297v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,296v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,293v-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,286" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,286l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,285l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,284l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,281v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,280l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,279l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M138,278" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M138,278l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,277h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M138,277l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,274v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,273v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,272v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,271l-3,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,270h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,270l-4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,268h-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M126,268l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M123,267l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M120,265h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,265v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,264l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M117,262l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M116,261l-1,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M115,255v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M115,253l3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,249l4,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M122,246l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M123,245l4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M127,242l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M128,241l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M130,240l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,238l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,237h3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,237l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,238v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,239l-3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,242v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,243h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,243h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,243l3,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M138,241l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M141,240h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M142,240h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M143,240l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M145,242l5,1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M135,375l-5,-6l-3,-3l-2,-4v-3l-1,-2v-3l1,-1l3,-1h1v-2v-4l1,-2l-1,-3v-2l1,-5l1,-4l3,-4l2,-3v-2l-2,-2v-3l-1,-2l-1,-3l-1,-2l1,-5l1,-3v-3v-1v-1v-3v-7l2,-1l-1,-1l1,-3v-1l1,-1l2,-1l1,-1h-1l1,-3v-1v-1v-1l-3,-1h-1l-4,-2h-5l-3,-1l-3,-2h-2v-1l-1,-2l-1,-1l-1,-6v-2l3,-4l4,-3l1,-1l4,-3l1,-1l2,-1l1,-2l1,-1h3l1,1v1l-3,3v1h1h1l3,-2l3,-1h1h1l2,2l6,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M23,385v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M23,383v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M23,382l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M24,380l3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M27,377v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M27,374l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,372" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,372l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M27,371l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M26,370" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M26,370h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M24,370v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M24,371l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M23,372v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M23,373l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M22,374l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M21,376l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M19,377h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M17,377l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M14,376l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M12,374l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M11,372l-2,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M9,367l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M8,366l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M7,365l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M4,364l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M2,362v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M2,361v-8" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M2,353v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M2,352l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,351l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-1,350l-4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-5,349h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-7,349l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-9,347l-1,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-10,343l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,340v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,338h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-12,338l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-13,337l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-15,338l-3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-18,339l-1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-19,340h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-21,340l-6,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-27,339h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-28,339l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-29,340l-1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-30,343v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-30,346v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-30,347l1,1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M23,386v-3v-1l1,-2l3,-3v-3l1,-2l-1,-1l-1,-1h-2v1l-1,1v1l-1,1l-1,2l-2,1h-2l-3,-1l-2,-2l-1,-2l-2,-5l-1,-1l-1,-1l-3,-1l-2,-2v-1v-8v-1l-2,-1l-1,-1l-4,-1h-2l-2,-2l-1,-4l-1,-3v-2h-1l-1,-1l-2,1l-3,1l-1,1h-2l-6,-1h-1l-1,1l-1,3v3v1l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M128,388" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M128,388l3,-10" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,378l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M130,375v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M130,373l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M128,371l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M126,369l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M123,368l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M121,367h-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M117,367h-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M112,367l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M110,366l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M109,364v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M109,363l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M108,360l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M107,358l-2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M105,357l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M104,356l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M102,355h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M101,355l-3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M98,356h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M97,356l-4,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M93,360h-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M91,360l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,359v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,357v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M128,390v-2l3,-10l-1,-3v-2l-2,-2l-2,-2l-3,-1l-2,-1h-4h-5l-2,-1l-1,-2v-1l-1,-3l-1,-2l-2,-1l-1,-1l-2,-1h-1l-3,1h-1l-4,4h-2l-1,-1v-2l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M129,389l3,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,382l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,381l1,-4" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M128,390l1,-1l3,-7l1,-1l2,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,439l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M105,438l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M107,435l4,-9" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M111,426l11,-19" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M122,407l4,-11" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M126,396l1,-5" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M102,440l3,-2l2,-3l4,-9l11,-19l4,-11l2,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M109,447l-5,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M104,442h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,442v-1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M110,448l-6,-6h-1l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,458l-11,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M120,455l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M117,454l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M114,452l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M132,458l-12,-3l-3,-1l-3,-2l-4,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M131,457l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M130,455l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M128,454l-4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M124,453l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M122,452l-10,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M112,449l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M132,458l-2,-3l-2,-1l-4,-1l-2,-1l-10,-3l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,493v-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,495v-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,458" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,458v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,457v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,456v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,455v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,453v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,451v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,448l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-21,445v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-21,442l-1,-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,437l1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-21,432v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-21,430l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,429v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,428" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,428l-1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-23,423v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-23,420v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-23,417v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-23,415v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-23,414h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-24,414" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-24,414l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-26,415h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-27,415v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-27,413l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-26,410l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-25,408l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-24,406v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-24,405v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-24,403l-2,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-26,400" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-26,400h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-25,400h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-23,400l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-21,402v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-21,404l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-19,405h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-18,405l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-16,404l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-15,403v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-15,401v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-15,399l-2,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-17,393v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-17,392l-2,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-19,389l-4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-23,385l-4,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-27,380l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-28,378v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-28,377" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-28,377l6,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-22,374h3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-19,374h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-17,374h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-16,374v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-16,375l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-15,377l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-14,378l1,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-13,382l2,4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,386l1,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-10,390l1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-9,393l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-8,395" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-8,395h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-6,395l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-4,393" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-4,393h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,393l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,392l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M3,390l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M5,389l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M6,387h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M8,387l2,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M10,388h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M12,388l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M13,387h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M15,387l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M18,388l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M19,387l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M21,386h1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M-20,459l-2,-1v-1v-1v-1v-2v-2v-3l1,-3v-3l-1,-5l1,-5v-2l-1,-1v-1l-1,-5v-3v-3v-2v-1h-1l-2,1h-1v-2l1,-3l1,-2l1,-2v-1v-2l-2,-3h1h2l2,2v2l2,1h1l2,-1l1,-1v-2v-2l-2,-6v-1l-2,-3l-4,-4l-4,-5l-1,-2v-1l6,-3h3h2h1v1l1,2l1,1l1,4l2,4l1,4l1,3l1,2h2l2,-2h4l1,-1l2,-2l2,-1l1,-2h2l2,1h2l1,-1h2l3,1l1,-1l2,-1h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-20,458l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-18,456v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-18,454v-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-18,450v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-18,448l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-16,445l2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-14,441l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-12,439l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-10,438l4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-6,436l3,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-3,434l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-2,432" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-2,432" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-2,432h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-4,432l-4,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-8,433h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-9,433l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-10,432h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,432v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,430l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-9,428v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-9,426v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-9,425l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,423v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,422l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-10,421l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-8,420l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-7,418v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-7,415h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-6,415h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-5,415h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-3,415h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-1,415h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,415l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,414l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M3,411l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M4,410l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M6,409h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M7,409h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M9,409h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M10,409l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M12,408v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M12,407l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M13,406l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M16,405h3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M19,405l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M21,404l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M22,403l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M23,401v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M23,396l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M24,394v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M24,390l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M-20,459l2,-3v-2v-4v-2l2,-3l2,-4l2,-2l2,-1l4,-2l3,-2l1,-2h-2l-4,1h-1l-1,-1h-1v-2l2,-2v-2v-1l-2,-2v-1l1,-1l2,-1l1,-2v-3h1h1h2h2h1l1,-1l2,-3l1,-1l2,-1h1h2h1l2,-1v-1l1,-1l3,-1h3l2,-1l1,-1l1,-2v-5l1,-2v-4l-1,-3v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M133,458l4,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M137,459h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M140,459l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M141,458l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M143,457" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M143,457l9,1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M132,458l5,1h3l1,-1l2,-1l10,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,445l7,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M97,444l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M99,445l10,3" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M88,445l9,-1l2,1l10,3h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-10,459v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-10,458l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-9,457l4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-5,455l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-4,454l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-3,452l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-2,451l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,450l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M3,449h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M7,449l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M10,448l9,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M19,443l3,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M22,439l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M25,437l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M28,435l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M31,433l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M35,432h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M38,432l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M40,433l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M41,434l3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M44,436l3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M47,438l4,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M51,440h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M53,440l4,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M57,441l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M59,440h3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M62,440l6,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M68,441l5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M73,442h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M76,442l5,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M81,444l9,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M90,443l7,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M97,442l3,-1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M-10,460v-1v-1l1,-1l4,-2l1,-1l1,-2l1,-1l2,-1l3,-1h4l3,-1l9,-5l3,-4l3,-2l3,-2l3,-2l4,-1h3l2,1l1,1l3,2l3,2l4,2h2l4,1l2,-1h3l6,1l5,1h3l5,2l9,-1l7,-1l5,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,461l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M135,460h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,460l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M137,461l-2,-1h-1l-1,-1l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M154,458l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M157,457h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M158,457l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M161,455l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M163,454h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M165,454l5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,455h3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,455l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M176,453l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M178,451h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M180,451h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M182,451l8,1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,458l4,-1h1l3,-2l2,-1h2l5,1h3l3,-2l2,-2h2h2l9,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,485l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,484l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M2,481l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M3,480v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M3,479h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M4,479v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M4,476l1,-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M5,471l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M6,467l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M7,465l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M8,462l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M9,461l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M11,459l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M12,458l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M11,457h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M10,457v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M10,456v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M10,455l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M12,453l6,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M18,450l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M19,449l3,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M22,448l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M26,447h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M30,447h7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M37,447l7,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M44,448" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M44,448l5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M49,449h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M50,449h7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M57,449h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M58,449l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M62,448l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M66,447l6,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M72,446h7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M79,446h4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M83,446l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M85,445h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M87,445" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M-1,486l1,-1l1,-1l1,-3l1,-1v-1h1v-3l1,-5l1,-4l1,-2l1,-3l1,-1l2,-2l1,-1l-1,-1h-1v-1v-1l2,-2l6,-3l1,-1l3,-1l4,-1h4h7l7,1l5,1h1h7h1l4,-1l4,-1l6,-1h7h4l2,-1h2h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-1,485" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-1,485l1,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,481l1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,476v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,471v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,469l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,468l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-2,466l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-4,464l-5,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-9,462l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M-1,486v-1l1,-4l1,-5v-5v-2l-1,-1l-2,-2l-2,-2l-5,-2l-1,-1v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M104,487l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,488" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,488v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,489v2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,491v4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M103,495l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M105,497l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M107,498v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M107,499v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M107,501h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M108,501v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M108,502l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M109,503" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M109,503h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M111,503l5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M116,502l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M117,501l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,499v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M118,498l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M120,497l6,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M126,496l6,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M132,495l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M134,494l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,493l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M137,492v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M137,490v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M137,488l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M136,484l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M137,483l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M139,481l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M140,480l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M142,479h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M143,479l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M145,480l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M147,481h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M148,481h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M152,481" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M105,487l-2,1v1v2v4l2,2l2,1v1v2h1v1l1,1h2l5,-1l1,-1l1,-2v-1l2,-1l6,-1l6,-1l2,-1l2,-1l1,-1v-2v-2l-1,-4l1,-1l2,-2l1,-1l2,-1h1l2,1l2,1h1h4h1v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,497v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,498v-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,482v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,483" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,485v-2v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-1,488v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-1,489l1,3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,492v5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,497l-1,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-1,501l-3,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-4,506l-3,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-7,510l-3,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-10,514l-5,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-15,519l-2,4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-17,523v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-17,524v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-17,526l3,7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-14,533l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-13,535l2,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,539" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,539" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,539v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,540" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,540v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-11,541l5,9" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M-6,550l6,8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M0,558l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,560v3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M1,563l1,6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M2,569v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M2,572" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M2,572l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M3,574l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M4,575v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M4,576l4,8" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M8,584l1,6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M9,590l2,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M11,594l3,3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M-1,486v3l1,3v5l-1,4l-3,5l-3,4l-3,4l-5,5l-2,4v1v2l3,7l1,2l2,4v1v1l5,9l6,8l1,2v3l1,6v3l1,2l1,1v1l4,8l1,6l2,4l4,3v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,132v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,133l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,134l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M510,135l6,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M516,132l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M518,131" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M506,130l1,3l1,1l2,1l6,-3l2,-1l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M155,499" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M155,499h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M156,499l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M157,500l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M158,501v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M158,502l1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M159,505v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M159,507l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M160,508l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M162,509l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M163,510h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M164,510l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M165,512l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M166,513h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M168,513l2,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,514h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,514l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,513l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,511l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M175,510h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M176,510" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M176,510l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M177,511v4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M177,515l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M178,517l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M179,518l2,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M181,522" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M181,522l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M182,523h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M183,523l5,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M188,521h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M189,521h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,521v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,522v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,524l-1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M189,527v3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M189,530l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,531l3,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,535" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,535l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M195,536v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M195,537l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M197,538v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M197,539l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M199,541l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M200,542v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M200,545v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M200,546l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M201,547h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M204,547h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M205,547l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M207,548l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M209,550l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M212,551h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M213,551l4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M217,548l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M221,547l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M222,548" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M222,548v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M222,549v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M222,550l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M220,551l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M217,553l-3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M214,556l-1,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M213,558l-1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M212,561v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M212,563l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M213,565h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M214,565l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M215,564l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M216,562l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M217,560l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M219,558h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M220,558l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M222,559l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M224,558h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M227,558h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M228,558v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M228,557v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M228,556v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M228,555h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M229,555l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M232,554l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M233,553v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M233,552l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M232,551l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M231,549l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M230,548v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M230,546" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M230,546l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M231,545l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M232,546h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M233,546l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M234,548" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M234,548" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M234,548l1,6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M235,554l1,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M236,558l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M235,559v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M235,560l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M234,561" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M234,561l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M232,563l-4,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M228,565l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M227,567v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M227,569l1,6" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M228,575l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M229,577l1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M230,580l3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M233,583h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M234,583l7,2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,498l1,1h1h1l1,1l1,1v1l1,3v2l1,1l2,1l1,1h1l1,2l1,1h2l2,1h1l1,-1l1,-2l2,-1h1l1,1v4l1,2l1,1l2,4l1,1h1l5,-2h1h1v1v2l-1,3v3l1,1l3,4l2,1v1l2,1v1l2,2l1,1v3v1l1,1h3h1l2,1l2,2l3,1h1l4,-3l4,-1l1,1v1v1l-2,1l-3,2l-3,3l-1,2l-1,3v2l1,2h1l1,-1l1,-2l1,-2l2,-2h1l2,1l2,-1h3h1v-1v-1v-1h1l3,-1l1,-1v-1l-1,-1l-1,-2l-1,-1v-2l1,-1l1,1h1l1,2l1,6l1,4l-1,1v1l-1,1l-2,2l-4,2l-1,2v2l1,6l1,2l1,3l3,3h1l8,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,153l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M334,152l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M332,151l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M330,149l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M328,145l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M327,143v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M327,141v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M327,139l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M328,138l3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M331,135v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M338,154l-1,-1l-3,-1l-2,-1l-2,-2l-2,-4l-1,-2v-2v-2l1,-1l3,-3l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M338,152v-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M338,147l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M339,145l1,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M340,139v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M340,137l1,-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M338,154v-7l1,-2l1,-6v-2l2,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,161l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,159v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,156l-1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,151l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,150v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,147v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,144l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,141v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,138v-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M171,162l1,-3v-3l-1,-5l-1,-1v-3v-3l1,-3v-3v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M363,187v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M363,186l-2,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M361,181l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,179v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,178v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,175l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M360,172v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M360,171l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M361,170l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M363,169h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M365,169h4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M369,169l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M370,168l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M372,165l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M373,164h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M374,164h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M375,164h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M378,164l3,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M381,163l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,162l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,160l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M385,159v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M385,158v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M385,154l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M386,153l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M387,151l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M388,149v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M388,148l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M387,145v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M387,142l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M388,140l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M389,139l3,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M392,137" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M392,137v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M392,136v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M392,135l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M363,188v-1v-1l-2,-5l-2,-2v-1v-3l1,-3v-1l1,-1l2,-1h2h4l1,-1l2,-3l1,-1h1h1h3l3,-1l2,-1l1,-2l1,-1v-1v-4l1,-1l1,-2l1,-2v-1l-1,-3v-3l1,-2l1,-1l3,-2v-1v-1l-3,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,188v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,187l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M358,185v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M358,184l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M357,182l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M356,180l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M354,178l-3,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M351,174l-5,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M346,170l-5,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M341,166v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M341,164l-1,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M340,156l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M339,155" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M359,189v-2l-1,-2v-1l-1,-2l-1,-2l-2,-2l-3,-4l-5,-4l-5,-4v-2l-1,-8l-1,-1l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M360,189h1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M359,189l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M350,201h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M349,201h-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M344,201l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M343,200l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M342,199v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M342,198l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M343,197l3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M346,194" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M346,194v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M346,190l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,189l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,187l3,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M351,186h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,186h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M353,186l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M354,187v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M354,190l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M355,192h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M356,192h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M358,192h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,192v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,191" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M351,202l-1,-1h-1h-5l-1,-1l-1,-1v-1l1,-1l3,-3v-4l1,-1l1,-2l3,-1h1h1l1,1v3l1,2h1h2h1v-1v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M350,203l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M349,204l-1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,205" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,205l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M349,206h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M350,206h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M351,206l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,205v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,204v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,202" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M351,202l-2,2l-1,1l1,1h1h1l1,-1v-1v-2h-1z" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M152,207l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M154,208l4,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M158,210l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M160,211l3,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M163,213h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M165,213h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M167,213l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M169,212l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,210" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,210v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,207l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M169,205l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M168,204l-4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M164,203h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M161,203l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M159,202l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M157,200l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M156,198v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M156,193v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M156,189l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M155,185l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,181l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M152,180v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M152,176l1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,173l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M155,170l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M156,166v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M156,162l-1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M155,157l-2,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,151l-1,-8" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M152,143l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M151,141v-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M151,207l3,1l4,2l2,1l3,2h2h2l2,-1l1,-2v-3l-1,-2l-1,-1l-4,-1h-3l-2,-1l-2,-2l-1,-2v-5v-4l-1,-4l-2,-4l-1,-1v-4l1,-3l2,-3l1,-4v-4l-1,-5l-2,-6l-1,-8l-1,-2v-3l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M367,235h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M365,235l-4,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M361,236h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,236l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M358,235l-4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M354,233h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M353,233l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,230v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,229l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M351,228l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M350,226l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M349,225l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,223l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,222" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,222v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,220l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,219v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,217h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,217v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,216v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,215" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,215v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M347,214l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M346,213" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M346,213v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M346,209v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M346,208l-5,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M341,203l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M340,202h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M339,202v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M339,201l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M338,200" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M338,200v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M338,198l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,197" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,197v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,196l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M336,194v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M336,192v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M336,189v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M336,187v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M336,184l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,182v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,179h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M336,179v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M336,177" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M336,177v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M336,176l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M335,174l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M334,171v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M334,170l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M333,168l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M332,165v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M332,164v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M332,163h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M334,163l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M335,162l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,160v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,159l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M338,157v-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M369,235h-2h-2l-4,1h-2l-1,-1l-4,-2h-1l-1,-3v-1l-1,-1l-1,-2l-1,-1l-1,-2l-1,-1v-2l1,-1v-2h-1v-1v-1v-1l-1,-1v-4v-1l-5,-5l-1,-1h-1v-1l-1,-1v-2l-1,-1v-1l-1,-2v-2v-3v-2v-3l1,-2v-3h-1v-2v-1l-1,-2l-1,-3v-1l-1,-2l-1,-3v-1v-1h2l1,-1l2,-2v-1l1,-2v-2v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M369,234v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M369,233l2,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M371,230v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M371,229v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M371,228l-3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M368,229l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M367,230h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M364,230l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M362,229l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M361,228l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M360,227l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,226v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M359,223l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M360,220l3,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M363,215l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M364,211l2,-6" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M366,205l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M367,201l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M369,198v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M369,197l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M367,196l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M364,194v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M364,192v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M364,191l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M363,190v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M369,235v-2l2,-3v-1v-1l-3,1l-1,1h-3l-2,-1l-1,-1l-1,-1l-1,-1v-3l1,-3l3,-5l1,-4l2,-6l1,-4l2,-3v-1l-2,-1l-3,-2v-2v-1l-1,-1v-1v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M152,243" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M152,243l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M155,244l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M156,243" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M156,243l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M155,242v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M155,241v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M155,240l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M158,239l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M159,238l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M160,237l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M163,236h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M167,236h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M169,236l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,235l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,234v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,235l5,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M178,234h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M179,234l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M180,232l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M181,230v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M181,229v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M181,226l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M180,224l-3,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M177,221l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M174,218l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,217v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,216v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,214l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M174,213l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M175,212" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M175,212v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M175,211h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,211l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,209v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,206l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,203l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,202v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M172,199l-1,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,192v-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,184v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,179l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,177" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,177v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M170,172l1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M151,243h1l3,1l1,-1l-1,-1v-1v-1l3,-1l1,-1l1,-1l3,-1h4h2l3,-1l1,-1v1l5,-1h1l1,-2l1,-2v-1v-3l-1,-2l-3,-3l-3,-3l-1,-1v-1v-2l1,-1l1,-1v-1h-2l-1,-2v-3l1,-3l-1,-1v-3l-1,-7v-8v-5l-1,-2v-5l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M382,260l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M381,257" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M381,257l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M380,255" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M380,255l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M379,253l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M377,251l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M376,250l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M375,248" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M375,248l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M374,246" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M374,246l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M372,244v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M372,242l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M371,240l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M369,237v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M383,261l-2,-4l-1,-2l-1,-2l-2,-2l-1,-1l-1,-2l-1,-2l-2,-2v-2l-1,-2l-2,-3v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M181,434l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M183,433l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M184,431l4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M188,428l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M189,426l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,424v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,423v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,421v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,419v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,417l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M191,416l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M192,414v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M192,411v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M192,410l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,409v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,408v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,406" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,406v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,404v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,403v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,399l1,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M194,395v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M194,393l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M195,390l3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M198,386l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M199,384l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M200,383" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M200,383v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M200,382v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M200,381v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M200,380l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M201,379h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M203,379l6,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M209,381h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M211,381h1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M180,435l3,-2l1,-2l4,-3l1,-2l1,-2v-1v-2v-2v-2l1,-1l1,-2v-3v-1l1,-1v-1v-2v-2v-1v-4l1,-4v-2l1,-3l3,-4l1,-2l1,-1v-1v-1v-1l1,-1h2l6,2h2l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M179,434l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M177,432l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M174,428l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M173,427l-7,-7" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M166,420l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M165,418l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M164,416v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M164,415l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M162,412v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M162,411v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M162,410l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M161,409l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M160,408v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M160,407l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M158,404l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M157,403v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M157,401h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M156,401v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M156,399l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M154,397" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M154,397l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M180,435v-1l-3,-2l-3,-4l-1,-1l-7,-7l-1,-2l-1,-2v-1l-2,-3v-1v-1l-1,-1l-1,-1v-1l-2,-3l-1,-1v-2h-1v-2l-2,-2l-1,-2l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M191,451l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,450v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,447v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M190,446l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M189,445l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M187,444v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M187,443l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M186,440l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M185,438l-2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M183,437l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M182,436h-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M191,452l-1,-2v-3v-1l-1,-1l-2,-1v-1l-1,-3l-1,-2l-2,-1l-1,-1l-1,-1h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M216,465l-8,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M208,457l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M206,455l-3,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M203,453l-7,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M196,452h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,452h-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M217,466l-9,-9l-2,-2l-3,-2l-7,-1h-3h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M218,465l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M219,464v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M219,463l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M218,460v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M218,459l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M219,456l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M222,454l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M224,453l8,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M232,446l3,-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M235,441l3,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M238,435l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M240,433l4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M244,431l3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M247,427l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M249,426h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M250,426h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M251,426h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M255,426l4,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M259,427" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M259,427l4,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M263,428l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M266,429h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M268,429" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M268,429h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M269,429l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M270,430v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M270,431h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M271,431h6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M277,431h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M280,431l2,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M282,432l3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M285,434l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M288,435l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M290,434h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M293,434l6,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M299,435h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M302,435h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M303,435l5,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M308,437h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M309,437l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M312,438l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M314,439h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M315,439l2,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M317,442h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M318,442l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M319,441h5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M324,441h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M328,441l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M330,440l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M331,439h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M333,439h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M335,439l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,438" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,438l3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M340,440h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M342,440l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M343,439v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M343,436l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M344,435l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M345,433l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M346,431l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,430l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M349,429l5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M354,428l4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M358,426h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M360,426h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M364,426l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M365,427l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M366,428l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M367,429l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M368,430l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M369,431v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M369,432l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M370,433h5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M375,433h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M376,433l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M377,435h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M378,435h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M379,435l3,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M382,434h5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M387,434l4,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M391,436l6,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M397,441l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M400,442l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M402,444" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M402,444" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M217,466l2,-2v-1l-1,-3v-1l1,-3l3,-2l2,-1l8,-7l3,-5l3,-6l2,-2l4,-2l3,-4l2,-1h1h1h4l4,1l4,1l3,1h2h1l1,1v1h1h6h3l2,1l3,2l3,1l2,-1h3l6,1h3h1l5,2h1l3,1l2,1h1l2,3h1l1,-1h5h4l2,-1l1,-1h2h2l2,-1l3,2h2l1,-1v-3l1,-1l1,-2l1,-2l2,-1l1,-1l5,-1l4,-2h2h4l1,1l1,1l1,1l1,1l1,1v1l1,1h5h1l1,2h1h1l3,-1h5l4,2l6,5l3,1l2,2l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M372,467" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M372,467l4,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M376,459l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M377,457l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M379,454l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M380,452l6,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M386,450l10,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M396,448l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M398,447l4,-2" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M372,469v-1v-1l4,-8l1,-2l2,-3l1,-2l6,-2l10,-2l2,-1l5,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M206,473l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M204,469l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M202,467" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M202,467l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M200,465l-4,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M196,463l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M194,462l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M193,461l-2,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M191,454" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M206,474l-2,-5l-2,-2l-2,-2l-4,-2l-2,-1l-1,-1l-2,-7v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M207,473v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M207,472l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M208,471l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M211,470h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M213,470l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M214,469l2,-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M206,474h1v-2l1,-1l3,-1h2l1,-1l3,-3" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,485v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M320,493l5,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M325,488l5,-9" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M330,479l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M332,477l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M333,473l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M334,472l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M335,471h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M337,471l6,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M343,473l5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,474l7,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M355,473h5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M360,473l10,-4" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M319,495l1,-1l5,-6l5,-9l2,-2l1,-4l1,-1l1,-1h2l6,2l5,1l7,-1h5l10,-4h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,497v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,498v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M288,504l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M290,502l2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M292,498l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M293,495v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M293,494l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M295,493l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M299,492l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M302,491l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M304,489h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M305,489h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M306,489h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M307,489v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M307,490v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M307,493l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M308,494h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M311,494l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M312,496h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M314,496h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M317,496l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M287,505l3,-3l2,-4l1,-3v-1l2,-1l4,-1l3,-1l2,-2h1h1h1v1v3l1,1h3l1,2h2h3l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M212,507v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M212,506v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M212,504l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M213,501l4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M217,497l2,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M219,493v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M219,491l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M217,488l-6,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M211,484l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M210,483l-1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M209,478l-2,-3" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M213,508l-1,-1v-1v-2l1,-3l4,-4l2,-4v-2l-2,-3l-6,-4l-1,-1l-1,-5l-2,-3l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M171,166v-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M171,168v-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M149,136v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M150,137l-1,-2v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,490v7" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,489v9" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M475,184" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M475,184v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M475,183l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,181l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,180l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M468,179h-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M466,179h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M464,179h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M463,179l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M461,177l-5,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M456,175l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,173v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,172l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M455,171v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M455,170l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M456,169h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M458,169h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M462,169h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M464,169l6,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M470,166l2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,164l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,161l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,159l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M475,156v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M475,154l-3,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,149v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,147" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,147l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,146l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,145" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,145l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,142v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,139l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,138h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,138" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,138v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,140l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M476,141" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M476,141h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M475,141l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,140v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,139l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,138l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,136l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,135v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,134l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M476,185l-1,-1v-1l-1,-2l-3,-1l-3,-1h-2h-2h-1l-2,-2l-5,-2l-2,-2v-1l1,-1v-1l1,-1h2h4h2l6,-3l2,-2l1,-3l1,-2l1,-3v-2l-3,-5v-2l1,-1l4,-1l2,-3v-3l-1,-1h-1v2l-1,1h-1l-1,-1v-1l-1,-1l-1,-2l-1,-1v-1l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,196v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,194l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,193v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,191l-2,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M476,186" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M480,197l-1,-3l-1,-1v-2l-2,-5v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M481,200l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M480,199v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M481,201v-1l-1,-1v-1v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M551,230v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M551,229v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M551,228l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M550,225v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M550,224l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M549,222l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M548,219l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M545,215l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M544,212l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M543,211l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,210l-1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M541,205l-2,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M539,200l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M538,197l1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M539,192l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M540,190v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M540,189l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M541,188l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M543,185v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M543,184l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M544,182v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M544,180v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M544,177" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M544,177v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M544,176l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M543,175l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,174l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M539,172l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M538,171v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M538,169h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M539,169l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M541,166l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,165v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,164l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M541,161v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M541,159l1,-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,154v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,150v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,148l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M540,146l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M539,145h-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M535,145h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M534,145v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M534,144v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M534,142h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M533,142l-5,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M528,139l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M527,138l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M526,136v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M526,134l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M525,133v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M525,132l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M552,231l-1,-2v-1l-1,-3v-1l-1,-2l-1,-3l-3,-4l-1,-3l-1,-1l-1,-1l-1,-5l-2,-5l-1,-3l1,-5l1,-2v-1l1,-1l2,-3v-1l1,-2v-2v-3v-1l-1,-1l-1,-1l-3,-2l-1,-1v-2h1l2,-3l1,-1v-1l-1,-3v-2l1,-5v-4v-2l-2,-2l-1,-1h-4h-1v-1v-2h-1l-5,-3l-1,-1l-1,-2v-2l-1,-1v-1l-2,-1v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M573,240l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,238v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,237l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M578,236l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M581,234l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M584,233l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M586,232l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M587,231l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M588,230l1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M589,228h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M590,228l2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M592,224l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M593,223h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M595,223h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M599,223l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M601,222l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M602,221v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M602,219v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M602,216l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M603,215h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M604,215h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M605,215l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M607,216h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M608,216l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M609,215l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M610,214h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M611,214l3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M614,211l5,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M619,209l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M620,207l3,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M623,205l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M626,204h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M627,204l3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M630,201v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M630,199l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M631,197l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M630,194v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M630,191l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M632,188l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M633,187l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M634,186l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M635,182v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M635,179v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M635,178l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M634,175h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M633,175" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M633,175v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M633,173l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M634,172v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M634,168l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M633,167v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M633,166h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M631,166v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M631,167l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M630,168v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M630,170h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M629,170h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M628,170v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M628,169h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M627,169h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M626,169h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M625,169v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M625,171" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M625,171h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M623,171l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M622,170" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M622,170h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M621,170h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M620,170l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M618,171" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M618,171l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M617,170l-1,-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M616,165l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M615,163l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M614,161v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M614,160l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M613,159" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M613,159l-1,-10" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M612,149l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M611,147l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M610,146l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M609,143l1,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M610,136v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M610,135l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M612,133v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M612,132v-2" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M572,241l4,-3v-1l2,-1l3,-2l3,-1l2,-1l1,-1l1,-1l1,-2h1l2,-4l1,-1h2h4l2,-1l1,-1v-2v-3l1,-1h1h1l2,1h1l1,-1l1,-1h1l3,-3l5,-2l1,-2l3,-2l3,-1h1l3,-3v-2l1,-2l-1,-3v-3l2,-3l1,-1l1,-1l1,-4v-3v-1l-1,-3h-1v-2l1,-1v-4l-1,-1v-1h-2v1l-1,1v2h-1h-1v-1h-1h-1h-1v2h-2l-1,-1h-1h-1l-2,1l-1,-1l-1,-5l-1,-2l-1,-2v-1l-1,-1l-1,-10l-1,-2l-1,-1l-1,-3l1,-7v-1l2,-2v-1v-2l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M568,242h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M566,242l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M564,240l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M563,237l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M560,234h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M559,234l-4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M555,233l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M569,243l-3,-1l-2,-2l-1,-3l-3,-3h-1l-4,-1l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M570,243h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M571,243v-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M569,243h2l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,261l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M386,260l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M389,259l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M391,258l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M393,257l3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M396,253h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M397,253v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M397,252l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M399,253l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M400,254h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M401,254l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M402,253l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M405,252l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M407,251h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M408,251h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M411,251h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M414,251l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M418,250l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M420,249l4,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M424,247l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,245l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M428,242l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M429,241l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M432,239l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M435,237v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M435,236l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,232l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M437,231l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,229h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M440,229l4,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M444,223l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M445,222l3,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M448,220" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M448,220l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M449,218l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M450,217v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M450,214l1,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,208l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,206l4,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M457,204l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M459,202l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M462,200l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M465,199l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M468,198h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M470,198v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M470,199h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,199v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,198v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,197l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,196h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M476,196l2,1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M383,261l3,-1l3,-1l2,-1l2,-1l3,-4h1v-1l2,1l1,1h1l1,-1l3,-1l2,-1h1h3h3l4,-1l2,-1l4,-2l2,-2l2,-3l1,-1l3,-2l3,-2v-1l1,-4l1,-1l2,-2h1l4,-6l1,-1l3,-2l1,-2l1,-1v-3l1,-6l2,-2l4,-2l2,-2l3,-2l3,-1l3,-1h2v1h2v-1v-1l1,-1h3l3,1h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M559,253" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M559,253l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M558,252l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M556,249v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M556,248v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M556,246v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M556,245v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M556,243l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M555,242l-2,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M553,237" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M553,237l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M552,234v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M552,233" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M552,233v-1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M561,254l-2,-1l-1,-1l-2,-3v-1v-2v-1v-2l-1,-1l-2,-5l-1,-3v-1v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M560,252" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M560,252v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M560,251l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M562,249h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M563,249l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M564,248l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M565,247v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M565,246l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M566,245l2,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M561,254l-1,-2v-1l2,-2h1l1,-1l1,-1v-1l1,-1l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,278" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,278l-4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M572,274l-4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M568,270" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M568,270v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M568,269v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M568,268v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M568,266l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M569,265l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M570,264l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M571,263l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M572,262v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M572,259l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M573,258v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M573,257v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M573,256l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M572,255l-4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M568,254h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M566,254h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M564,254h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M562,254" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M577,279h-1v-1l-4,-4l-4,-4v-1v-1v-2l1,-1l1,-1l1,-1l1,-1v-3l1,-1v-1v-1l-1,-1l-4,-1h-2h-2h-2h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M578,278v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M578,277v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M578,276l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M577,273" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M577,273l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,272l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M575,270v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M575,268v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M575,267v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M575,266l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,265l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M579,264l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M582,262l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M585,261l7,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M592,260h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M594,260l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M595,258l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M596,257" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M596,257l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M597,254l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M596,250l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M595,247v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M595,245l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M593,241v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M593,240l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M592,239l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M590,240l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M588,241h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M587,241l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M584,240h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M583,240l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M580,242h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M579,242l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M577,241h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M574,241" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M577,279l1,-2v-1l-1,-3l-1,-1l-1,-2v-2v-1v-1l1,-1l3,-1l3,-2l3,-1l7,-1h2l1,-2l1,-1l1,-3l-1,-4l-1,-3v-2l-2,-4v-1l-1,-1l-2,1l-2,1h-1l-3,-1h-1l-3,2h-1l-2,-1h-3h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,286h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M575,286l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M573,284l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M572,285l-1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M571,286" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M571,286v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M571,287" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M571,287l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M570,288h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M567,288l-5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M562,287l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M561,286l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M559,284v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M559,281l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M558,280l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M556,278l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M555,277" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M555,277l2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M557,275v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M557,274v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M557,272v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M557,271v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M557,270v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M557,268v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M557,267l-1,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M556,264l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M555,263h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M553,263l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M551,264l-3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M548,267l-4,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M544,270l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,269v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,268" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,268l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M543,266v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M543,265l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,264l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M540,263l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M539,262v-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M539,258v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M539,256l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M538,255l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M537,254h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M536,254h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M535,254l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M534,255l-1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M533,256v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M533,257l-1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M532,260l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M531,261l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M529,262h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M528,262h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M526,262l-2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M524,261v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M524,259v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M524,257l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M525,253v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M525,252v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M525,251v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M525,250l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M524,248v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M524,245l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,243l-3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M520,242l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M519,241l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M518,242l-1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M517,243h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M516,243h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M515,243h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M514,243l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M513,242l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M512,239l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M513,238v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M513,237h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M514,237l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M516,236l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M519,235l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M520,234v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M520,232v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M520,231" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M520,231l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M519,230l-5,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M514,231l-4,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M510,232l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,234l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M506,235h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M504,235l-2,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M502,236h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M501,236l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M499,235l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,233v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,231v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M498,229l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,225l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M495,224l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,221v-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,216l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M493,214l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M492,213l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,212l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,211l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,210l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,208" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,208v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,205l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M487,204" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M487,204l-2,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M485,202l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M484,201h-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M578,286h-1h-2l-2,-2l-1,1l-1,1v1l-1,1h-3l-5,-1l-1,-1l-2,-2v-3l-1,-1l-2,-2l-1,-1l2,-2v-1v-2v-1v-1v-2v-1l-1,-3l-1,-1h-2l-2,1l-3,3l-4,3l-2,-1v-1l1,-2v-1l-1,-1l-2,-1l-1,-1v-4v-2l-1,-1l-1,-1h-1h-1l-1,1l-1,1v1l-1,3l-1,1l-2,1h-1h-2l-2,-1v-2v-2l1,-4v-1v-1v-1l-1,-2v-3l-1,-2l-3,-1l-1,-1l-1,1l-1,1h-1h-1h-1l-1,-1l-1,-3l1,-1v-1h1l2,-1l3,-1l1,-1v-2v-1l-1,-1l-5,1l-4,1l-3,2l-1,1h-2l-2,1h-1l-2,-1l-1,-2v-2v-2l-2,-4l-1,-1l-1,-3v-5l-1,-2l-1,-1l-1,-1l-1,-1l-1,-1l-1,-2v-3l-1,-1l-2,-2l-1,-1h-2h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M547,319" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M547,319l-5,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M542,314l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M540,311l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M538,309l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M536,306l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M535,305l-3,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M532,303l-9,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,295l-4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M519,291l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M517,287" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M517,287l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M514,283l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M512,280v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M512,279l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M511,278l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M510,276" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M510,276l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,275l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,272h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M506,272l-6,-6" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,266l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M497,263l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,262v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,261v-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M496,255l-3,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M493,249l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M492,247l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,246v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,243v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,241v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,240v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,237l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,234l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,232v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,231l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M487,227l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,223l-1,-10" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M485,213l-2,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M483,208v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M483,207l-1,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,203l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M548,320v-1h-1l-5,-5l-2,-3l-2,-2l-2,-3l-1,-1l-3,-2l-9,-8l-4,-4l-2,-4l-3,-4l-2,-3v-1l-1,-1l-1,-2l-1,-1l-2,-3h-1l-6,-6l-3,-3l-1,-1v-1v-6l-3,-6l-1,-2l-1,-1v-3v-2v-1v-3l-1,-3l-1,-2v-1l-2,-4l-1,-4l-1,-10l-2,-5v-1l-1,-4l-1,-1v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M504,336l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M505,335l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,334l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,333v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,332l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,331" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,331l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M504,333h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M502,333h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M501,333l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,332v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,331v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,329v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,328l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M501,327l5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M506,326l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,325l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M509,324l9,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M518,320l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M520,318l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,316l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M526,315l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M528,314h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M529,314l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M530,315l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M531,316l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M532,317h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M533,317l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M534,318h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M537,318l4,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M541,319l5,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M546,321l1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M503,337l1,-1l1,-1l2,-1l1,-1v-1l-1,-1l-3,2h-2h-1l-1,-1v-1v-2v-1l1,-1l5,-1l1,-1l2,-1l9,-4l2,-2l3,-2l3,-1l2,-1h1l1,1l1,1l1,1h1l1,1h3l4,1l5,2l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,262v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,263v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,264v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,265" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,265v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,266h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,266v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,268v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,269h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M385,269v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M385,271" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M385,271l1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M386,274l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,276l-2,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M382,279l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M381,280v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M381,281v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M381,282v2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M381,284h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M382,284v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M382,285l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,286v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,287l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,288h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M385,288l1,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M386,290l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M388,292l5,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M393,294l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M395,296h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M398,296l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M400,298l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M402,300l2,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M404,302l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M405,304" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M405,304v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M405,305l-3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M402,308v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M402,309v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M402,310l-2,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M400,312v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M400,314" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M400,314l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M401,316l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M403,318l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M405,320l5,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M410,324v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M410,325" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M410,325v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M410,326l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M412,328l5,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M417,331l8,6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,337l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,338" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,338l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M427,339l5,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M432,344l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M434,346l3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M437,348l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M440,349l2,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M442,352v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M442,353l1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M443,356v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M443,357l3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M446,360l1,3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M383,261v2v1v1v1h1v2v1h1v2l1,3l-2,2l-2,3l-1,1v1v1v2h1v1l1,1v1l1,1h1l1,2l2,2l5,2l2,2h3l2,2l2,2l2,2l1,2v1l-3,3v1v1l-2,2v2l1,2l2,2l2,2l5,4v1v1l2,2l5,3l8,6l1,1l1,1l5,5l2,2l3,2l3,1l2,3v1l1,3v1l3,3l1,4h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M449,363h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,363h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,363l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,361l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M457,359l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M458,358l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M459,356l1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M460,355l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M463,354l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M464,352l2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M466,348v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M466,347h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M468,347h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,347h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,347h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,347" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,347h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M476,347l3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,349" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,349l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M481,346l4,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M485,345h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,345l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M492,343l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M495,342l6,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M501,338h1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M448,364l1,-1h2h2l1,-2l3,-2l1,-1l1,-2l1,-1l3,-1l1,-2l2,-4v-1h2h3h2h1h2l3,2l2,-3l4,-1h4l3,-2l3,-1l6,-4l1,-1h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M603,367l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M602,366l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M600,363l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M597,359l-6,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M591,354l-5,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M586,351l-8,-6" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M578,345l-9,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M569,338l-3,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M566,333l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M564,330l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M561,326l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M559,325l-6,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M553,324l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M551,323l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M604,368h-1l-1,-2l-2,-3l-3,-4l-6,-5l-5,-3l-8,-6l-9,-7l-3,-5l-2,-3l-3,-4l-2,-1l-6,-1l-2,-1l-2,-2l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,401v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,400l2,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,394v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,392l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,389l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,386l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,382v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,378h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,378v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,377v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,376v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,375l-1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M452,371l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,368" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,368l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M450,402l1,-2l2,-6v-2l1,-3l-1,-3l1,-4v-4h-1v-1v-1v-1l-1,-4l-1,-3l-3,-3v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,401v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,398l2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M480,394l4,-8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M484,386l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,384l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M487,381v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M487,379l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,377v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,375v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,373v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,371v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,368v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,365h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M485,365v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M485,364v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M485,362l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M487,360v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M487,357l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,355l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,353l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,352v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,351v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,349l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M495,347l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M497,346l4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M501,342l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M503,341v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M503,340v-2" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M478,403v-5l2,-4l4,-8l2,-2l1,-3v-2l-1,-2v-2v-2v-2v-3v-3h-1v-1v-2l2,-2v-3l1,-2l2,-2l4,-1v-1v-2l1,-2l2,-1l4,-4l2,-1v-1v-2v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M479,408v-4" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M479,409l-1,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M459,416l-3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M456,412l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M455,411" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M455,411v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M455,410l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,408v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,407l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M452,405v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M452,404l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M460,417l-4,-5l-1,-1v-1l-2,-2v-1l-1,-2v-1l-1,-2h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M460,416l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M461,415l1,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M462,410l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M463,408l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M465,407l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M466,406l7,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,404l4,-1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M460,417v-1l1,-1l1,-5l1,-2l2,-1l1,-1l7,-2l5,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M470,420l1,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,416v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M471,414l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,413l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M474,410h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M475,410l3,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M470,421v-1l1,-4v-2l1,-1l2,-3h1l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M469,421h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M467,421l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M466,422l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M465,421v-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M465,419" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M465,419h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M464,419h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M463,419h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M462,419h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M461,419l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M470,421h-3l-1,1l-1,-1v-2h-1h-1h-1h-1l-1,-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M427,450l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M429,447v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M429,445l1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M430,442l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M431,440l2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M433,436l3,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,431l2,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M438,430l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M440,427l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M441,426l3,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M444,422l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M445,421l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M447,418" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M447,418l3,-4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M450,414l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,413v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,411l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M450,409l-2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M448,406v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M448,404l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M449,403" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M427,452v-2l2,-3v-2l1,-3l1,-2l2,-4l3,-5l2,-1l2,-3l1,-1l3,-4l1,-1l2,-3l3,-4l1,-1v-2l-1,-2l-2,-3v-2l1,-1l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M428,451l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M431,449l6,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M437,443l2,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,440l5,-6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M444,434l5,-5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M449,429l4,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M453,426l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M455,424v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M455,421l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M456,419h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M457,419l1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M427,452l1,-1l3,-2l6,-6l2,-3l5,-6l5,-5l4,-3l2,-2v-3l1,-2h1l2,-2h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M404,445h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M405,445l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M406,446v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M406,447v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M406,449l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M407,450l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M408,451l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M409,452h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M410,452h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M411,452h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M413,452h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M414,452h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M415,452l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M416,453v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M416,454v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M416,455l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M418,456l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M420,457h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M422,457l2,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M403,445h1h1l1,1v1v2l1,1l1,1l1,1h1h1h2h1h1l1,1v1v1l2,1l2,1h2l3,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M404,444h5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M409,444h4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M413,444h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M414,444l4,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M418,447l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M420,448v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M420,449v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M420,450l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M421,451l3,4" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M403,445l1,-1h5h4h1l4,3l2,1v1v1l1,1l4,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,454" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,454l1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M425,456l1,-2l1,-1v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M373,468l10,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,467l6,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M389,468l9,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M398,467h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M401,467l5,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M406,465l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M409,464h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M410,464v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M410,463h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M411,463l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M412,462v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M412,460h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M413,460h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M415,460h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M417,460h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M420,460l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M421,459l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M423,458l1,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M372,469l11,-2l6,1l9,-1h3l5,-2l3,-1h1v-1h1l1,-1v-2h1h2h2h3l1,-1l2,-1l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M448,483" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M448,483l3,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M451,482l3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,479l3,-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M457,472l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M458,471v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M458,469l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M457,466v-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M457,463v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M457,461l3,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M460,456l4,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M464,452l3,-5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M467,447v-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M467,445v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M467,442v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M467,441v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M467,438v-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M467,435l-2,-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M465,431l-3,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M462,428l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M463,427" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M463,427h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M465,427l2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M467,425l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M469,424l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M470,423" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M446,483h2l3,-1l3,-3l3,-7l1,-1v-2l-1,-3v-3v-2l3,-5l4,-4l3,-5v-2v-3v-1v-3v-3l-2,-4l-3,-3l1,-1h2l2,-2l2,-1l1,-1v-1v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M446,482" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M446,482l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M445,481l-1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M444,479h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M443,479v-7" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M443,472l-1,-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M442,469v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M442,468l-1,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M441,467l-2,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,465l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M437,464h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M436,464l-10,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,463l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,462v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,461l1,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M426,459l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M427,458v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M427,457h-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M446,483v-1l-1,-1l-1,-2h-1v-7l-1,-3v-1l-1,-1l-2,-2l-2,-1h-1l-10,-1l-1,-1v-1l1,-2l1,-1v-1l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M218,467v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M218,468l5,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M223,472l2,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M225,476l3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M228,479l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M230,481l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M232,483l3,6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M235,489l1,4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M236,493l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M237,495l-4,10" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M233,505l-1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M232,508l-2,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M230,513v4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M230,517v2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M217,466l1,2l5,4l2,4l3,3l2,2l2,2l3,6l1,4l1,2l-4,10l-1,3l-2,5v4l1,3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M321,495l12,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M333,493l7,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M340,492h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M343,492l6,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M349,493l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M351,494l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,496v3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,499v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M352,500l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M354,502l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M355,503v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M355,506" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M355,506l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M354,508l-3,3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M351,511v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M351,513v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M351,516v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M351,517v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M351,520l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M350,521l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M348,523l-2,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M346,525l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M344,527" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M344,527l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M342,529v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M342,530v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M342,531" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M319,495h1l13,-2l7,-1h3l6,1l2,1l1,2v3v1l2,2l1,1v3l-1,2l-3,3v2v3v1v3l-1,1l-2,2l-2,2l-2,2l-2,2v1v1l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M445,483l-2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M443,482l-3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M440,480l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M439,479l-1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M438,478v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M438,477h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M435,477l-2,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M433,478l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M430,480l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M427,482l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,484v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M425,486l-2,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M423,490l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M422,492l-2,3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M420,495l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M419,496l-3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M416,497l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M414,498h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M412,498l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M410,499h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M408,499h-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M407,499h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M406,499h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M404,499l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M402,501l-2,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M400,504h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M399,504v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M399,505h-2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M397,505h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M396,505h-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M394,505" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M394,505l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M393,506l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M394,508v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M394,509" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M394,509v4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M394,513l-2,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M392,516l-2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M390,518l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M387,520v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M387,521l-2,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M385,526l-1,3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,529v4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,533v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,536" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,536v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,538v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M384,539l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M383,540l-4,3" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M446,483l-3,-1l-3,-2l-1,-1l-1,-1v-1h-3l-2,1l-3,2l-3,2l-2,2v2l-2,4l-1,2l-2,3l-1,1l-3,1l-2,1h-2l-2,1h-2h-1h-1h-2l-2,2l-2,3h-1v1h-2h-1h-2l-1,1l1,2v1v4l-2,3l-2,2l-3,2v1l-2,5l-1,3v4v3v2v1l-1,1l-5,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,488v-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,489v-4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,130h-2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M521,130h2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M446,485" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M446,485l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M447,487l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M449,488l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M450,489l4,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M454,488l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M457,489l5,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M462,491l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M463,492l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M465,494l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M467,495l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M470,496l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M472,498l1,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,503v1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M473,504l3,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M476,505l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M477,506l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M478,507l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M480,508l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,510h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M483,510l1,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M484,512v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M484,513l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M485,515l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,516h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M487,516l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,518l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,520l1,4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,524v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,527l-1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,530l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,532l-3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,534v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M486,536h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M487,536l2,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,537l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,538l2,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M492,542l3,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M495,545" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M495,545v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M495,547l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M494,548l-1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M493,549h-3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M490,549h-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,549l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,550v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,551v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M488,552h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M489,552v1" />
+<path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M446,483v2l1,2l2,1l1,1l4,-1l3,1l5,2l1,1l2,2l2,1l3,1l2,2l1,5v1l3,1l1,1l1,1l2,1l2,2h1l1,2v1l1,2l1,1h1l1,2l2,2l1,4v3l-1,3l-1,2l-3,2v2h1l2,1l1,1l2,4l3,3v2l-1,1l-1,1h-3h-1l-1,1v1v1h1l1,1v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M480,409h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M481,409l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M482,410l9,8" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M491,418l9,6" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M500,424l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M502,425l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M503,426v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M503,427l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M505,429v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M505,431v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M505,432" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M505,432v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M505,434h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M506,434l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,435l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,436" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M508,436l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,438" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M507,438l4,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M511,443v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M511,444l1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M512,447l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M513,448l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M514,447h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M515,447l7,-3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M522,444h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,444v-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M523,443l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M524,442l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M525,441l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M526,440l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M527,439h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M528,439h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M529,439v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M529,440l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M528,441v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M528,442l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M529,443h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M530,443h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M531,443h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M532,443h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M533,443v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M533,445l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M535,447l1,6" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M536,453l-1,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M535,458v2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M535,460v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M535,463l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M536,464" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M536,464l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M538,466v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M538,467l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M537,468v2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M537,470l2,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M539,473v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M539,474l1,5" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M540,479v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M540,480h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M541,480h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M544,480l2,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M546,481l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M547,482l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M549,483v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M549,484l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M550,483l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M551,482h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M552,482h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M553,482v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M553,483v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M553,485v4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M553,489l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M554,490h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M555,490l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M557,491l4,-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M561,490l6,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M567,492h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M569,492l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M572,490h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M573,490h3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,490l3,-2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M579,488h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M580,488h2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M582,488v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M582,489v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M582,491v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M582,492l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M583,493v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M583,495l-1,4" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M582,499l-2,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M580,502" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M580,502v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M580,503l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M578,504l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,505v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M576,507l-1,3" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M575,510l-3,4" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M572,514v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M572,515l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M574,517v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M574,519v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M574,520h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M575,520l4,2" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M579,522" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M579,522l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M581,521l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M582,520l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M584,521l2,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M586,523v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M586,524v5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M586,529l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M587,530l3,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M590,532h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M591,532v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M591,534l-1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M590,535l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M589,537l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M590,538l2,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M592,541l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M593,542l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M594,544v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M594,546v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M594,549v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M594,551v5" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M594,556l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M595,557l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M596,558v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M596,559h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M597,559l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M598,558l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M599,557v-1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M599,556h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M600,556l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M601,555l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M603,556l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M605,557l2,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M607,556l1,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M608,555l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M609,556l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M610,557l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M611,559l2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M613,560l1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M614,562h1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M615,562v1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M615,563l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M616,564v2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M616,566l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M615,568l-1,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M614,571l-2,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M612,572v3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M612,575l-1,2" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M611,577l1,1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M612,578l1,1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M613,579l5,3" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M618,582h2" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M479,409h2l1,1l9,8l9,6l2,1l1,1v1l2,2v2v1v2h1l1,1l1,1l-1,2l4,5v1l1,3l1,1l1,-1h1l7,-3h1v-1l1,-1l1,-1l1,-1l1,-1h1h1v1l-1,1v1l1,1h1h1h1h1v2l2,2l1,6l-1,5v2v3l1,1l2,2v1l-1,1v2l2,3v1l1,5v1h1h3l2,1l1,1l2,1v1l1,-1l1,-1h1h1v1v2v4l1,1h1l2,1l4,-1l6,2h2l3,-2h1h3l3,-2h1h2v1v2v1l1,1v2l-1,4l-2,3v1l-2,1l-2,1v2l-1,3l-3,4v1l2,2v2v1h1l4,2l2,-1l1,-1l2,1l2,2v1v5l1,1l3,2h1v2l-1,1l-1,2l1,1l2,3l1,1l1,2v2v3v2v5l1,1l1,1v1h1l1,-1l1,-1v-1h1l1,-1l2,1l2,1l2,-1l1,-1l1,1l1,1l1,2l2,1l1,2h1v1l1,1v2l-1,2l-1,3l-2,1v3l-1,2l1,1l1,1l5,3l2,1h1" />
+<path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M3,136l16,-1" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M2,136l19,-1" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M153,497v-7" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M153,498v-9" /><path style="clip-path:url(#cp3);stroke-width:2.693980;stroke-linecap:round;stroke:rgb(0,0,0);" fill="none" d="M521,130" /><path style="clip-path:url(#cp3);stroke-width:1.616388;stroke-linecap:round;stroke:rgb(255,0,0);" fill="none" d="M523,130h-4" /></g>
+</g>
+<g id="L6" >
+<text transform="translate(269.789597,270.759486)"><tspan style="font-family:ArialMT;font-size:32.255196;font-weight:800;stroke:rgb(255,255,255);stroke-width:0.806380;">Mt. Saint Helens</tspan>
+</text>
+
+</g>
+<g id="L7" >
+<text transform="translate(-212.261670,230.605621)"><tspan style="font-family:ArialMT;font-size:23.039427;font-weight:800;stroke:rgb(255,255,255);stroke-width:1.151971;">South Fork Toutle River</tspan>
+</text>
+
+</g>
+<g id="L8" >
+<text transform="translate(402.460777,52.193626)"><tspan style="font-family:ArialMT;font-size:23.039427;font-weight:800;stroke:rgb(255,255,255);stroke-width:1.151971;">Spirit Lake</tspan>
+</text>
+
+</g>
+<g id="L9" >
+<text transform="translate(130.236720,148.442064)"><tspan style="font-family:ArialMT;font-size:23.039427;font-weight:800;stroke:rgb(255,255,255);stroke-width:1.151971;">Castle Lake</tspan>
+</text>
+
+</g>
+</g>
+
+<g id="Coords" transform="translate(0 0)" >
+<script type="text/ecmascript">
+var isLatLon=false;
+var LtoG = new Array(); LtoG = [[6157.575758,0.000000,532627.032392],[0.000000,6157.575758,5085128.455647]];
+var DtoL = new Array(); DtoL = [[0.006028,0.000000,3.186566],[0.000000,0.006028,6.777752]];
+;
+</script>
+<defs><filter id="fc" filterUnits="objectBoundingBox" height="142%" width="142%" x="-22%" y="-22%">
+<feGaussianBlur in="SourceAlpha" stdDeviation="3" result="blur"/><feOffset in="blur" dx="3.200000" dy="3.200000" result="offsetBlur" /><feFlood style="flood-color:rgb(0,0,0);flood-opacity:.5;" result="flooded" /><feComposite in="flooded" in2="offsetBlur" operator="in" result="coloredShadow" /><feComposite in2="coloredShadow" in="SourceGraphic" operator="over" /></filter></defs><rect x="1.600000" y="1.600000" width="80.000000" height="19.200000" style="fill:white; filter:url('#fc')" />
+<rect x="84.800000" y="1.600000" width="80.000000" height="19.200000" style="fill:white; filter:url('#fc')" />
+<text x="171.200000" y="19.200000" style="font-size:16.000000;">Universal Transverse Mercator</text>
+<g id="coords" style="font-size:16.000000;">
+<text x="3.200000" y="17.600000">
+<tspan id="coordx" > </tspan>
+</text>
+<text x="86.400000" y="17.600000">
+<tspan id="coordy" > </tspan>
+</text>
+</g>
+</g>
+
+<script>hcolor = 'rgb(0,255,255)';</script><rect id='DatatipRect' visibility='hidden' x='0' y='0' width='100' stroke-width='1' height='16' rx='3' ry='3' style='fill:rgb(225,225,200);stroke:rgb(0,0,0);opacity:0.8;pointer-events:none'></rect>
+<text id ='Datatip' visibility='hidden' style='fill:rgb(0,0,0);font-weight:normal; font-family:"Arial";font-size:12;text-anchor:middle;pointer-events:none' x='0' y='0'>M</text>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/files/mtsthelens0.jpg b/PerformanceTests/PageLoad/svg/files/mtsthelens0.jpg
new file mode 100644
index 000000000..998d7c0cb
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/mtsthelens0.jpg
Binary files differ
diff --git a/PerformanceTests/PageLoad/svg/files/world-iso.svg b/PerformanceTests/PageLoad/svg/files/world-iso.svg
new file mode 100644
index 000000000..87e451bec
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/world-iso.svg
@@ -0,0 +1,288 @@
+<svg id="mainMap" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" xmlns="http://www.w3.org/2000/svg" height="100%" width="100%" viewBox="0 1200 5750 2800" onload="init(evt)">
+<!--Note: This file is part of GeoGraphs Corp. SVG MapGen and SVG MapViewer System.
+It was produced by SGV MapGen (Version 1.0 Evaluation)from MapInfo MID/MIF or ESRI Shape Files.
+You may copy, modify, and distribute this file freely, subject to include this notice.
+This file is provided 'as is' without warranties of any kind, including any implied warranties.-->
+<a onclick='AddCountry(evt)'>
+<path id="aw" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1759 2364 1758 2364 1756 2362 1756 2361 1756 2361 1758 2362 1759 2363 1759 2363 1759 2364 1759 2364 1759 2364" />
+<path id="ag" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1889 2282 1889 2282 1888 2282 1887 2282 1887 2282 1887 2282 1887 2280 1887 2280 1887 2279 1888 2280 1889 2281 1889 2281 1889 2281 1889 2282 1889 2282 M 1889 2291 1887 2291 1887 2291 1887 2290 1886 2289 1887 2289 1887 2288 1888 2288 1888 2288 1889 2289 1890 2290 1890 2290 1890 2291 1889 2291" />
+<path id="af" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3854 1994 3854 1993 3855 1993 3856 1995 3856 1995 3857 1995 3858 1996 3859 1996 3859 1996 3862 1997 3862 1997 3865 1996 3865 1996 3866 1996 3866 1997 3867 1997 3867 1998 3868 1998 3870 1999 3870 2000 3870 2001 3871 2001 3871 2000 3871 2000 3872 1999 3872 1999 3873 1999 3873 1999 3874 1999 3874 2000 3875 2000 3877 1999 3879 1998 3879 1998 3880 1997 3880 1997 3881 1997 3882 1997 3882 1997 3883 1997 3883 1996 3883 1995 3883 1995 3883 1993 3883 1993 3884 1993 3884 1991 3883 1990 3883 1990 3885 1990 3885 1990 3886 1990 3886 1990 3886 1990 3887 1990 3890 1989 3890 1989 3891 1988 3891 1988 3891 1988 3892 1988 3892 1988 3894 1988 3894 1988 3895 1987 3896 1987 3897 1987 3899 1986 3900 1985 3903 1984 3904 1984 3905 1983 3905 1983 3906 1983 3907 1982 3907 1981 3907 1981 3907 1980 3907 1980 3907 1979 3907 1978 3907 1978 3907 1977 3907 1977 3907 1976 3908 1976 3908 1975 3909 1975 3909 1974 3910 1973 3910 1973 3910 1972 3910 1971 3910 1971 3910 1971 3910 1970 3910 1970 3910 1969 3911 1969 3914 1968 3914 1968 3915 1968 3919 1968 3919 1968 3920 1968 3921 1968 3922 1968 3922 1967 3924 1966 3924 1965 3923 1965 3924 1964 3924 1964 3924 1963 3924 1963 3926 1963 3929 1964 3931 1965 3932 1966 3934 1966 3934 1966 3935 1966 3936 1966 3936 1966 3936 1966 3937 1966 3937 1966 3938 1966 3938 1966 3939 1966 3941 1966 3943 1966 3943 1966 3944 1965 3945 1965 3945 1965 3947 1966 3948 1968 3949 1968 3949 1968 3949 1969 3949 1969 3950 1968 3950 1968 3951 1968 3952 1968 3952 1968 3954 1967 3956 1968 3957 1968 3957 1968 3957 1968 3958 1969 3958 1970 3958 1970 3961 1973 3962 1973 3964 1971 3966 1971 3966 1970 3968 1970 3971 1968 3971 1968 3972 1967 3974 1966 3975 1966 3977 1966 3977 1967 3978 1967 3979 1969 3979 1969 3980 1970 3981 1970 3982 1970 3982 1970 3983 1969 3984 1969 3984 1968 3984 1968 3984 1967 3983 1966 3983 1966 3983 1965 3983 1965 3983 1964 3985 1962 3986 1962 3988 1962 3990 1962 3991 1962 3991 1962 3991 1962 3992 1962 3992 1962 3992 1962 3993 1963 3994 1963 3994 1963 3994 1963 3995 1963 3996 1963 3997 1962 3998 1960 3998 1960 3997 1959 3997 1958 3996 1958 3996 1958 3996 1958 3996 1957 3996 1957 3997 1956 3998 1956 3998 1956 3998 1956 3999 1955 4001 1953 4002 1952 4003 1951 4003 1950 4004 1949 4006 1949 4008 1948 4009 1948 4011 1949 4012 1950 4012 1950 4013 1951 4013 1951 4014 1951 4015 1952 4015 1952 4015 1953 4014 1953 4014 1954 4013 1956 4013 1957 4014 1957 4015 1957 4016 1957 4017 1956 4018 1956 4018 1957 4019 1958 4018 1958 4018 1959 4018 1959 4018 1960 4017 1962 4017 1963 4017 1965 4017 1966 4017 1967 4017 1967 4017 1967 4016 1968 4016 1968 4016 1969 4016 1970 4016 1972 4016 1973 4018 1975 4018 1976 4019 1976 4020 1977 4020 1977 4021 1977 4022 1977 4022 1977 4022 1976 4024 1976 4026 1974 4029 1972 4029 1972 4030 1972 4031 1972 4032 1971 4032 1971 4033 1971 4036 1971 4036 1970 4037 1970 4037 1969 4037 1969 4037 1968 4038 1968 4038 1968 4039 1968 4041 1967 4043 1966 4043 1965 4045 1964 4046 1964 4048 1964 4048 1964 4049 1964 4050 1964 4050 1964 4051 1965 4052 1965 4052 1965 4053 1965 4053 1965 4053 1966 4052 1967 4051 1967 4051 1967 4051 1968 4053 1968 4054 1968 4054 1968 4055 1967 4058 1967 4059 1966 4061 1965 4061 1965 4062 1965 4063 1965 4064 1965 4066 1965 4067 1965 4068 1965 4070 1966 4070 1966 4072 1968 4070 1968 4069 1967 4069 1967 4069 1967 4068 1967 4067 1968 4065 1968 4063 1969 4063 1969 4065 1971 4066 1971 4066 1971 4066 1972 4065 1972 4065 1972 4065 1971 4064 1972 4060 1973 4059 1974 4058 1974 4058 1974 4056 1974 4056 1974 4054 1973 4052 1973 4051 1973 4051 1973 4050 1973 4049 1973 4047 1973 4042 1974 4040 1974 4040 1974 4039 1974 4039 1974 4038 1974 4037 1974 4037 1974 4035 1974 4034 1974 4034 1974 4034 1975 4033 1975 4033 1975 4031 1975 4030 1975 4029 1976 4028 1976 4028 1977 4027 1977 4025 1979 4021 1981 4020 1981 4019 1980 4019 1980 4018 1981 4018 1982 4016 1983 4013 1985 4012 1987 4012 1987 4013 1987 4014 1988 4015 1989 4016 1990 4018 1992 4017 1993 4018 1994 4019 1995 4019 1997 4019 1997 4018 1998 4018 1998 4018 1999 4019 2000 4018 2002 4018 2002 4017 2004 4017 2004 4017 2004 4017 2004 4015 2005 4014 2006 4012 2008 4010 2009 4011 2009 4011 2010 4010 2010 4009 2011 4009 2011 4009 2011 4009 2012 4010 2013 4011 2013 4012 2014 4011 2017 4010 2019 4007 2020 4006 2020 4002 2020 4001 2020 3998 2020 3996 2020 3995 2019 3994 2019 3993 2019 3992 2019 3992 2019 3992 2019 3991 2019 3991 2020 3992 2022 3993 2023 3995 2024 3995 2024 3996 2025 3996 2026 3996 2026 3996 2027 3996 2027 3996 2028 3997 2028 3998 2029 3998 2029 3998 2030 3997 2031 3995 2032 3994 2033 3992 2034 3991 2034 3987 2034 3986 2034 3986 2034 3985 2035 3985 2035 3985 2036 3985 2037 3985 2037 3985 2038 3984 2039 3983 2039 3984 2040 3984 2040 3984 2041 3984 2042 3983 2042 3983 2042 3983 2042 3982 2043 3982 2043 3982 2043 3981 2043 3981 2044 3981 2044 3981 2045 3981 2045 3982 2046 3982 2046 3982 2047 3982 2048 3982 2048 3981 2049 3981 2049 3982 2051 3982 2052 3982 2053 3981 2054 3980 2054 3980 2055 3979 2056 3979 2056 3977 2057 3974 2058 3974 2058 3973 2056 3973 2056 3972 2055 3970 2054 3970 2054 3969 2054 3969 2054 3968 2055 3969 2055 3970 2055 3970 2056 3970 2056 3965 2055 3965 2054 3964 2054 3964 2054 3963 2054 3963 2055 3962 2056 3961 2057 3960 2057 3959 2057 3959 2057 3959 2058 3958 2058 3957 2059 3956 2059 3956 2059 3956 2059 3954 2059 3955 2060 3956 2061 3956 2061 3957 2061 3957 2061 3957 2061 3958 2061 3958 2062 3955 2063 3951 2064 3950 2064 3949 2064 3949 2064 3946 2064 3946 2063 3946 2063 3946 2062 3945 2062 3945 2062 3943 2063 3943 2063 3941 2064 3940 2065 3940 2066 3938 2068 3938 2068 3938 2068 3937 2068 3936 2068 3936 2068 3936 2068 3934 2074 3934 2075 3935 2075 3935 2076 3934 2080 3934 2080 3934 2081 3933 2082 3933 2083 3934 2083 3935 2084 3934 2085 3933 2086 3931 2086 3930 2086 3927 2087 3925 2088 3923 2088 3917 2090 3914 2091 3911 2090 3910 2090 3909 2090 3908 2090 3908 2090 3906 2090 3906 2090 3905 2090 3903 2090 3902 2091 3901 2091 3900 2092 3900 2092 3898 2093 3897 2092 3892 2092 3891 2091 3890 2091 3885 2092 3884 2092 3874 2093 3873 2093 3873 2093 3872 2092 3871 2092 3871 2092 3869 2092 3867 2091 3865 2091 3862 2090 3850 2086 3849 2086 3847 2086 3847 2085 3848 2085 3850 2083 3852 2080 3853 2080 3854 2079 3855 2077 3861 2071 3863 2067 3862 2065 3862 2064 3862 2063 3862 2062 3861 2062 3861 2061 3857 2061 3852 2060 3851 2060 3847 2059 3846 2057 3846 2055 3846 2052 3846 2051 3846 2051 3847 2050 3847 2048 3847 2048 3847 2047 3847 2046 3845 2041 3844 2038 3843 2035 3843 2035 3843 2034 3843 2034 3843 2033 3843 2032 3845 2030 3845 2030 3846 2029 3847 2028 3847 2027 3848 2027 3848 2027 3848 2027 3848 2027 3847 2026 3846 2026 3845 2026 3844 2026 3843 2026 3842 2026 3842 2025 3842 2025 3842 2025 3842 2024 3841 2024 3842 2023 3842 2023 3842 2022 3842 2020 3842 2019 3841 2018 3841 2018 3841 2017 3841 2017 3842 2017 3842 2016 3844 2014 3845 2014 3846 2014 3847 2014 3847 2014 3847 2014 3846 2012 3846 2012 3845 2011 3845 2011 3846 2011 3847 2010 3847 2010 3849 2009 3850 2007 3851 2005 3851 2003 3851 2002 3851 2001 3851 2001 3851 2001 3851 2000 3851 1999 3852 1998 3854 1995 3854 1995 3854 1994" />
+<path id="dz" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2793 2080 2793 2080 2794 2079 2794 2078 2795 2078 2795 2077 2795 2077 2796 2076 2796 2075 2796 2075 2801 2074 2804 2073 2804 2073 2805 2073 2805 2073 2805 2072 2806 2072 2807 2072 2808 2071 2808 2071 2809 2071 2809 2070 2811 2069 2811 2069 2811 2069 2812 2069 2813 2068 2814 2068 2814 2068 2815 2068 2816 2068 2817 2068 2817 2068 2817 2067 2818 2067 2817 2066 2816 2065 2815 2065 2814 2065 2814 2065 2814 2064 2814 2062 2814 2060 2814 2060 2814 2057 2814 2056 2814 2056 2814 2056 2816 2056 2816 2056 2817 2056 2817 2056 2818 2056 2818 2057 2819 2057 2819 2057 2820 2056 2821 2056 2822 2055 2823 2055 2825 2055 2826 2055 2827 2054 2827 2054 2828 2053 2828 2053 2828 2052 2828 2052 2828 2051 2828 2051 2829 2050 2829 2050 2836 2049 2836 2049 2838 2049 2838 2049 2839 2049 2840 2049 2841 2049 2841 2049 2843 2049 2844 2049 2845 2049 2848 2050 2851 2050 2851 2050 2854 2050 2854 2050 2855 2050 2855 2050 2856 2050 2856 2050 2856 2049 2856 2049 2855 2049 2855 2049 2854 2049 2855 2048 2855 2048 2855 2046 2856 2045 2856 2045 2857 2045 2857 2045 2858 2044 2858 2044 2859 2043 2855 2041 2853 2040 2850 2036 2851 2036 2851 2035 2851 2035 2851 2034 2851 2034 2850 2034 2850 2033 2849 2032 2848 2031 2848 2029 2849 2029 2849 2028 2849 2027 2849 2026 2849 2026 2849 2025 2848 2025 2847 2024 2848 2021 2848 2020 2849 2018 2849 2018 2848 2015 2847 2014 2846 2013 2847 2012 2848 2012 2847 2011 2845 2010 2846 2009 2846 2009 2847 2007 2846 2007 2845 2007 2842 2004 2840 2003 2840 2003 2840 2002 2840 2002 2841 2002 2841 2002 2842 2002 2843 2002 2843 2002 2844 2002 2845 2002 2847 2002 2847 2001 2848 2001 2850 1999 2851 1999 2851 1999 2852 1999 2852 1999 2853 1999 2853 1998 2853 1998 2853 1998 2854 1998 2855 1997 2855 1997 2855 1997 2855 1996 2855 1995 2856 1995 2856 1994 2857 1994 2858 1993 2859 1993 2861 1992 2862 1991 2864 1992 2865 1992 2865 1992 2867 1991 2867 1991 2867 1990 2867 1990 2869 1989 2870 1989 2870 1990 2870 1990 2871 1991 2873 1991 2873 1991 2873 1991 2873 1991 2874 1991 2875 1990 2876 1990 2876 1988 2877 1987 2877 1987 2878 1986 2880 1985 2884 1983 2885 1983 2886 1982 2887 1982 2887 1982 2887 1982 2888 1982 2889 1981 2890 1981 2890 1981 2890 1980 2891 1980 2894 1979 2897 1979 2899 1979 2900 1979 2901 1979 2901 1979 2902 1979 2903 1979 2903 1979 2904 1978 2905 1978 2906 1979 2907 1979 2908 1978 2909 1978 2910 1978 2910 1978 2912 1977 2912 1977 2913 1977 2913 1978 2913 1978 2914 1978 2915 1978 2915 1978 2916 1978 2916 1978 2917 1978 2919 1977 2920 1976 2920 1976 2921 1975 2922 1975 2922 1975 2923 1975 2923 1975 2924 1975 2924 1976 2925 1976 2925 1976 2926 1976 2926 1976 2927 1975 2928 1975 2929 1975 2931 1975 2932 1975 2933 1975 2933 1974 2934 1974 2934 1974 2935 1973 2936 1973 2937 1973 2938 1973 2938 1973 2939 1973 2940 1973 2941 1973 2943 1973 2944 1973 2945 1973 2948 1973 2949 1973 2949 1973 2950 1973 2950 1973 2951 1973 2951 1973 2954 1974 2956 1975 2956 1976 2956 1976 2957 1977 2958 1977 2959 1977 2960 1977 2960 1977 2962 1977 2962 1977 2962 1977 2963 1976 2964 1976 2964 1976 2964 1975 2966 1974 2967 1974 2967 1974 2968 1975 2969 1974 2971 1974 2971 1974 2973 1973 2975 1973 2975 1973 2975 1972 2975 1972 2975 1971 2977 1970 2977 1970 2978 1970 2979 1970 2979 1970 2979 1971 2980 1971 2980 1972 2986 1973 2986 1973 2989 1973 2990 1973 2990 1972 2991 1972 2991 1971 2991 1971 2990 1971 2990 1971 2990 1970 2990 1970 2991 1970 2991 1970 2991 1970 2994 1971 2996 1971 2996 1972 2996 1972 2997 1972 2998 1972 2999 1972 2999 1973 2999 1973 2999 1974 3000 1974 3001 1974 3002 1974 3002 1974 3004 1974 3005 1973 3006 1972 3009 1973 3011 1973 3013 1972 3013 1973 3013 1974 3010 1976 3010 1976 3010 1977 3008 1978 3007 1978 3006 1979 3006 1979 3006 1979 3006 1980 3006 1980 3007 1980 3007 1980 3009 1980 3009 1981 3009 1982 3009 1982 3008 1983 3008 1984 3008 1986 3007 1988 3007 1988 3007 1988 3007 1989 3007 1990 3007 1990 3007 1991 3007 1992 3008 1992 3008 1992 3008 1993 3008 1993 3008 1994 3008 1994 3008 1996 3008 1997 3008 1997 3008 1998 3008 1998 3008 1998 3008 1999 3009 2000 3008 2002 3007 2004 3007 2006 3007 2007 3007 2008 3007 2008 3007 2008 3006 2008 3007 2009 3007 2009 3005 2011 3004 2011 3004 2011 3003 2011 3001 2012 3000 2013 3000 2013 3000 2014 2999 2015 2999 2016 2998 2016 2998 2016 2998 2016 2997 2016 2997 2016 2995 2018 2995 2018 2995 2018 2995 2019 2995 2020 2995 2020 2995 2021 2995 2021 2995 2022 2996 2025 2998 2027 2998 2029 2998 2029 2998 2029 2998 2030 2998 2031 2998 2031 2999 2032 2999 2032 3003 2034 3004 2034 3004 2034 3005 2035 3007 2037 3008 2038 3008 2039 3008 2040 3008 2040 3008 2042 3008 2043 3008 2043 3009 2044 3012 2045 3014 2046 3017 2048 3019 2049 3020 2050 3020 2051 3020 2053 3022 2057 3022 2059 3024 2065 3024 2067 3025 2070 3026 2073 3026 2075 3027 2078 3027 2079 3027 2080 3027 2080 3025 2081 3024 2081 3024 2082 3024 2082 3025 2082 3025 2083 3025 2083 3025 2083 3026 2084 3028 2086 3028 2086 3028 2087 3029 2088 3029 2089 3030 2090 3030 2091 3031 2092 3031 2092 3032 2096 3032 2097 3032 2097 3032 2098 3032 2098 3033 2099 3033 2100 3033 2102 3033 2102 3033 2103 3032 2104 3032 2105 3032 2106 3032 2109 3032 2110 3031 2111 3031 2111 3032 2113 3032 2113 3033 2115 3034 2117 3034 2118 3034 2118 3033 2121 3033 2122 3032 2123 3031 2124 3030 2126 3031 2127 3032 2130 3032 2130 3032 2131 3032 2133 3033 2133 3034 2133 3033 2134 3033 2135 3033 2136 3033 2136 3033 2137 3033 2139 3031 2140 3029 2140 3027 2142 3026 2143 3025 2144 3025 2144 3025 2145 3026 2146 3026 2146 3031 2153 3032 2154 3035 2157 3035 2158 3035 2159 3035 2162 3035 2163 3036 2164 3036 2165 3036 2166 3037 2166 3038 2167 3038 2167 3038 2168 3039 2169 3039 2169 3040 2170 3041 2171 3042 2172 3044 2171 3045 2170 3046 2170 3047 2170 3048 2171 3050 2172 3051 2172 3052 2172 3055 2173 3056 2173 3058 2174 3058 2174 3060 2174 3062 2179 3063 2180 3065 2185 3066 2187 3063 2189 3062 2189 3052 2195 3048 2197 3047 2198 3045 2199 3040 2202 3037 2204 3031 2207 3026 2210 3019 2215 3014 2217 3012 2219 3004 2224 3001 2225 2998 2227 2997 2228 2994 2229 2986 2237 2981 2240 2978 2243 2976 2245 2971 2250 2970 2250 2968 2252 2967 2252 2965 2252 2964 2253 2960 2253 2953 2255 2947 2256 2945 2256 2943 2257 2940 2257 2938 2258 2937 2258 2935 2258 2928 2259 2926 2258 2925 2257 2925 2257 2925 2256 2925 2256 2926 2255 2927 2253 2927 2253 2927 2252 2927 2252 2926 2250 2926 2250 2926 2249 2927 2247 2927 2246 2923 2244 2923 2244 2921 2244 2918 2243 2916 2243 2915 2243 2914 2242 2913 2242 2913 2241 2913 2241 2913 2240 2912 2240 2912 2240 2911 2239 2911 2239 2910 2239 2910 2239 2909 2239 2908 2240 2905 2239 2904 2238 2904 2238 2902 2237 2902 2236 2902 2236 2902 2234 2901 2234 2900 2233 2899 2233 2899 2233 2897 2232 2894 2231 2894 2231 2894 2230 2894 2230 2894 2229 2894 2229 2894 2228 2894 2227 2894 2227 2894 2226 2894 2225 2887 2221 2881 2218 2879 2217 2877 2215 2875 2214 2875 2214 2873 2213 2868 2209 2863 2205 2857 2201 2852 2198 2847 2195 2842 2191 2836 2187 2830 2183 2823 2179 2820 2177 2814 2173 2809 2170 2803 2166 2798 2163 2798 2163 2797 2162 2796 2162 2791 2158 2785 2155 2782 2153 2781 2153 2775 2149 2774 2149 2769 2145 2767 2144 2763 2142 2760 2140 2759 2140 2752 2135 2752 2135 2745 2131 2744 2131 2737 2127 2737 2127 2737 2123 2737 2122 2737 2121 2737 2116 2737 2104 2737 2104 2738 2103 2738 2103 2739 2103 2739 2103 2741 2102 2741 2101 2741 2101 2741 2101 2744 2099 2744 2099 2745 2098 2747 2097 2750 2095 2752 2094 2753 2093 2753 2093 2753 2093 2754 2093 2754 2093 2755 2093 2755 2093 2755 2093 2756 2093 2756 2093 2758 2092 2758 2092 2758 2091 2758 2091 2760 2090 2761 2089 2762 2089 2766 2090 2767 2090 2767 2090 2768 2090 2769 2090 2770 2090 2770 2090 2771 2090 2771 2089 2771 2089 2771 2087 2773 2086 2776 2087 2776 2086 2777 2086 2777 2086 2777 2086 2778 2086 2778 2086 2779 2086 2779 2086 2780 2086 2781 2086 2783 2085 2783 2085 2784 2085 2785 2085 2786 2085 2787 2085 2789 2084 2790 2083 2790 2083 2791 2082 2792 2082 2792 2081 2793 2080" />
+<path id="az" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3618 1942 3618 1940 3618 1940 3618 1939 3618 1939 3618 1938 3618 1938 3617 1937 3617 1937 3617 1937 3616 1936 3617 1936 3618 1936 3618 1937 3620 1936 3620 1936 3619 1936 3619 1935 3616 1933 3616 1933 3616 1933 3616 1932 3617 1932 3618 1932 3618 1931 3618 1930 3615 1930 3615 1930 3615 1930 3614 1930 3613 1930 3613 1930 3611 1928 3610 1928 3610 1928 3610 1927 3609 1927 3609 1927 3608 1927 3608 1927 3607 1926 3607 1926 3607 1925 3606 1925 3606 1925 3606 1924 3605 1924 3605 1924 3603 1924 3603 1924 3604 1923 3604 1923 3605 1923 3605 1923 3606 1923 3607 1923 3607 1923 3608 1923 3608 1923 3609 1922 3610 1920 3609 1919 3608 1919 3608 1919 3604 1918 3604 1917 3602 1916 3600 1914 3600 1913 3600 1912 3601 1912 3601 1912 3602 1911 3603 1911 3603 1911 3604 1910 3604 1910 3599 1908 3595 1907 3595 1906 3595 1906 3596 1906 3597 1906 3597 1906 3597 1905 3597 1905 3597 1905 3596 1904 3594 1904 3594 1903 3595 1903 3596 1902 3597 1901 3598 1900 3598 1900 3599 1900 3599 1900 3604 1902 3605 1902 3605 1903 3605 1903 3606 1903 3607 1904 3607 1904 3608 1904 3608 1904 3608 1905 3609 1905 3610 1905 3610 1905 3611 1905 3611 1905 3612 1904 3614 1904 3614 1905 3614 1905 3615 1906 3615 1906 3616 1906 3618 1907 3618 1907 3620 1906 3620 1905 3621 1904 3621 1904 3621 1903 3620 1902 3619 1902 3619 1901 3618 1901 3615 1900 3613 1898 3613 1898 3613 1897 3613 1896 3613 1896 3613 1896 3613 1895 3614 1895 3614 1896 3615 1896 3615 1895 3616 1894 3617 1894 3617 1893 3618 1893 3619 1894 3620 1895 3622 1894 3622 1894 3622 1895 3623 1895 3623 1896 3625 1897 3626 1898 3627 1899 3628 1898 3628 1899 3630 1901 3630 1902 3630 1903 3632 1903 3635 1904 3635 1904 3636 1904 3636 1904 3637 1904 3638 1904 3638 1904 3639 1904 3640 1904 3640 1904 3640 1903 3641 1902 3643 1900 3643 1900 3644 1900 3645 1900 3645 1900 3646 1900 3648 1898 3648 1898 3648 1898 3649 1897 3650 1895 3651 1894 3651 1894 3652 1895 3653 1896 3654 1897 3655 1898 3656 1899 3656 1899 3658 1901 3658 1901 3658 1901 3660 1903 3660 1904 3660 1905 3661 1907 3661 1907 3661 1907 3662 1908 3664 1910 3665 1910 3665 1910 3666 1911 3666 1911 3666 1911 3666 1912 3666 1913 3666 1913 3667 1914 3669 1914 3670 1915 3671 1915 3671 1915 3672 1914 3673 1914 3674 1914 3674 1914 3677 1916 3679 1917 3679 1918 3679 1918 3679 1918 3680 1919 3679 1919 3679 1919 3678 1918 3677 1918 3676 1918 3673 1918 3671 1918 3667 1920 3666 1921 3666 1921 3664 1923 3665 1923 3665 1924 3664 1925 3664 1928 3664 1929 3663 1930 3662 1932 3662 1932 3663 1933 3664 1933 3664 1933 3664 1934 3663 1934 3663 1934 3662 1934 3662 1934 3662 1935 3661 1935 3661 1939 3661 1939 3661 1939 3660 1940 3660 1940 3659 1940 3659 1940 3659 1939 3659 1939 3660 1939 3660 1939 3660 1938 3660 1938 3658 1937 3658 1937 3657 1937 3657 1938 3657 1939 3657 1939 3657 1940 3656 1941 3656 1942 3656 1944 3656 1946 3656 1948 3656 1948 3655 1948 3654 1948 3654 1949 3652 1949 3652 1949 3651 1949 3651 1948 3649 1946 3648 1946 3647 1946 3647 1946 3646 1945 3646 1944 3645 1944 3644 1943 3644 1943 3643 1943 3642 1942 3642 1942 3642 1941 3643 1940 3644 1940 3645 1940 3645 1940 3646 1940 3646 1940 3647 1940 3647 1939 3647 1939 3646 1938 3646 1938 3645 1937 3644 1936 3644 1936 3644 1935 3644 1935 3645 1934 3646 1934 3646 1934 3647 1933 3647 1933 3647 1933 3646 1932 3646 1932 3645 1931 3644 1930 3643 1929 3643 1929 3642 1929 3642 1928 3641 1928 3639 1929 3638 1929 3638 1929 3634 1931 3633 1932 3632 1932 3631 1933 3631 1933 3630 1934 3629 1934 3628 1934 3627 1935 3626 1936 3626 1936 3625 1937 3624 1937 3624 1937 3623 1937 3622 1938 3622 1939 3620 1940 3619 1941 3618 1942 M 3602 1914 3603 1914 3603 1913 3603 1913 3602 1913 3602 1913 3602 1914 3602 1914 M 3594 1907 3594 1907 3593 1907 3594 1906 3594 1906 3595 1907 3595 1907 3594 1907 M 3597 1908 3597 1908 3597 1908 3598 1908 3597 1908 M 3601 1940 3601 1940 3601 1939 3600 1939 3599 1937 3599 1936 3598 1937 3597 1936 3596 1936 3596 1936 3596 1935 3596 1935 3595 1934 3594 1933 3593 1933 3593 1933 3593 1932 3592 1931 3592 1931 3592 1930 3592 1930 3591 1930 3591 1929 3591 1929 3590 1928 3590 1928 3591 1928 3592 1928 3593 1928 3593 1928 3594 1928 3594 1927 3595 1927 3595 1927 3598 1930 3599 1931 3601 1932 3602 1932 3602 1931 3603 1931 3603 1931 3604 1931 3606 1930 3606 1931 3607 1931 3607 1932 3607 1934 3609 1935 3610 1936 3610 1936 3609 1936 3609 1937 3611 1941 3612 1941 3613 1942 3611 1942 3609 1941 3607 1941 3603 1940 3602 1940 3602 1940 3601 1940" />
+<path id="al" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3207 1917 3207 1917 3207 1919 3206 1919 3206 1919 3206 1920 3205 1922 3204 1922 3204 1922 3204 1922 3203 1923 3202 1923 3202 1922 3202 1922 3201 1923 3199 1924 3200 1925 3200 1925 3201 1926 3201 1926 3201 1927 3200 1927 3199 1927 3199 1927 3199 1927 3200 1928 3198 1929 3198 1929 3197 1929 3197 1929 3196 1929 3195 1928 3195 1929 3194 1928 3194 1927 3194 1926 3193 1925 3192 1923 3192 1923 3192 1923 3191 1922 3190 1922 3188 1921 3187 1920 3186 1920 3185 1919 3183 1917 3184 1917 3184 1917 3185 1917 3185 1918 3185 1918 3185 1918 3186 1918 3186 1918 3186 1917 3186 1915 3185 1914 3185 1914 3184 1914 3183 1913 3184 1912 3185 1911 3185 1910 3186 1909 3186 1910 3187 1909 3187 1909 3187 1908 3186 1908 3185 1907 3186 1907 3187 1904 3187 1903 3186 1903 3186 1903 3186 1903 3186 1901 3187 1899 3188 1898 3188 1898 3188 1897 3188 1897 3188 1897 3188 1895 3188 1895 3187 1894 3186 1894 3186 1894 3185 1894 3184 1894 3184 1893 3184 1892 3184 1891 3185 1890 3185 1890 3184 1889 3183 1889 3187 1885 3188 1883 3188 1883 3189 1882 3189 1882 3190 1881 3191 1881 3191 1882 3190 1883 3191 1884 3191 1884 3192 1884 3193 1883 3195 1883 3196 1883 3196 1883 3197 1883 3198 1885 3198 1886 3198 1886 3200 1887 3201 1887 3202 1887 3203 1888 3203 1888 3204 1891 3204 1892 3204 1893 3204 1893 3204 1894 3204 1894 3203 1895 3203 1896 3203 1898 3202 1899 3202 1899 3202 1900 3203 1900 3203 1901 3203 1902 3203 1902 3202 1902 3202 1903 3203 1904 3204 1905 3204 1906 3205 1906 3206 1909 3207 1909 3208 1909 3208 1909 3210 1909 3210 1909 3210 1909 3210 1910 3210 1911 3211 1912 3211 1913 3211 1914 3211 1915 3210 1916 3209 1916 3208 1916 3207 1917" />
+<path id="am" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3618 1942 3618 1942 3617 1941 3616 1941 3615 1941 3614 1941 3614 1941 3614 1942 3613 1942 3613 1942 3612 1941 3611 1941 3609 1937 3609 1936 3610 1936 3610 1936 3609 1935 3607 1934 3607 1932 3607 1931 3606 1931 3606 1930 3604 1931 3603 1931 3603 1931 3602 1931 3602 1932 3601 1932 3599 1931 3598 1930 3595 1927 3595 1927 3594 1927 3594 1928 3593 1928 3593 1928 3592 1928 3591 1928 3590 1928 3590 1928 3590 1928 3588 1927 3587 1926 3587 1926 3587 1925 3586 1924 3584 1924 3583 1923 3582 1923 3578 1923 3577 1923 3577 1923 3576 1923 3572 1922 3572 1922 3572 1921 3573 1921 3572 1919 3571 1918 3571 1916 3571 1916 3572 1915 3573 1914 3574 1913 3574 1912 3574 1911 3573 1909 3571 1908 3571 1908 3570 1907 3569 1906 3569 1906 3571 1905 3571 1905 3571 1906 3572 1906 3574 1906 3574 1906 3574 1906 3575 1905 3575 1905 3576 1905 3578 1905 3580 1905 3580 1905 3581 1904 3582 1904 3583 1904 3585 1905 3586 1905 3587 1905 3589 1904 3591 1904 3591 1904 3592 1904 3593 1903 3594 1903 3594 1904 3596 1904 3597 1905 3597 1905 3597 1905 3597 1906 3597 1906 3596 1906 3595 1906 3595 1906 3595 1907 3599 1908 3604 1910 3604 1910 3603 1911 3603 1911 3602 1911 3601 1912 3601 1912 3600 1912 3600 1913 3600 1914 3602 1916 3604 1917 3604 1918 3608 1919 3608 1919 3609 1919 3610 1920 3609 1922 3608 1923 3608 1923 3607 1923 3607 1923 3606 1923 3605 1923 3605 1923 3604 1923 3604 1923 3603 1924 3603 1924 3605 1924 3605 1924 3606 1924 3606 1925 3606 1925 3607 1925 3607 1926 3607 1926 3608 1927 3608 1927 3609 1927 3609 1927 3610 1927 3610 1928 3610 1928 3611 1928 3613 1930 3613 1930 3614 1930 3615 1930 3615 1930 3615 1930 3618 1930 3618 1931 3618 1932 3617 1932 3616 1932 3616 1933 3616 1933 3616 1933 3619 1935 3619 1936 3620 1936 3620 1936 3618 1937 3618 1936 3617 1936 3616 1936 3617 1937 3617 1937 3617 1937 3618 1938 3618 1938 3618 1939 3618 1939 3618 1940 3618 1940 3618 1942 M 3594 1907 3595 1907 3595 1907 3594 1906 3594 1906 3593 1907 3594 1907 3594 1907 M 3597 1908 3598 1908 3597 1908 3597 1908 3597 1908 M 3602 1914 3602 1914 3602 1913 3602 1913 3603 1913 3603 1913 3603 1914 3602 1914" />
+<path id="ad" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2898 1882 2899 1881 2900 1881 2902 1882 2903 1882 2903 1883 2903 1883 2903 1883 2903 1883 2903 1884 2902 1884 2901 1884 2900 1885 2899 1885 2898 1885 2898 1884 2898 1883 2898 1882 2898 1882" />
+<path id="ao" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3084 2637 3084 2637 3084 2637 3083 2637 3080 2638 3080 2638 3078 2640 3078 2641 3076 2642 3076 2643 3075 2644 3075 2647 3075 2654 3074 2654 3073 2654 3071 2654 3070 2654 3070 2655 3069 2654 3069 2653 3069 2652 3069 2652 3070 2651 3070 2651 3070 2650 3070 2650 3069 2648 3069 2647 3069 2646 3068 2645 3068 2644 3067 2644 3067 2643 3067 2643 3069 2641 3070 2640 3070 2640 3070 2639 3071 2639 3071 2639 3072 2639 3073 2638 3073 2637 3073 2637 3073 2636 3074 2636 3077 2635 3077 2635 3078 2634 3079 2633 3079 2633 3079 2633 3081 2633 3081 2633 3081 2633 3081 2634 3081 2634 3083 2636 3083 2636 3084 2636 3084 2636 3084 2637 M 3226 2781 3226 2782 3226 2785 3226 2786 3226 2786 3226 2793 3226 2798 3226 2800 3226 2800 3226 2801 3226 2809 3226 2812 3226 2818 3226 2820 3226 2821 3227 2821 3227 2822 3228 2823 3228 2824 3228 2824 3229 2826 3229 2827 3230 2827 3231 2828 3234 2831 3238 2835 3239 2835 3243 2839 3246 2842 3250 2844 3250 2844 3247 2845 3247 2845 3242 2845 3241 2846 3240 2846 3235 2847 3231 2848 3222 2849 3216 2850 3215 2849 3214 2849 3213 2849 3213 2849 3211 2849 3210 2849 3209 2850 3208 2850 3207 2850 3206 2850 3205 2850 3204 2850 3203 2850 3202 2849 3202 2848 3200 2848 3199 2848 3198 2848 3197 2848 3196 2848 3195 2848 3194 2848 3194 2848 3193 2848 3192 2848 3191 2848 3190 2848 3187 2848 3186 2848 3185 2848 3184 2848 3183 2847 3182 2847 3181 2847 3181 2847 3180 2847 3179 2847 3179 2847 3178 2847 3177 2847 3175 2846 3175 2846 3173 2844 3172 2843 3171 2842 3170 2840 3169 2840 3166 2840 3164 2840 3163 2840 3158 2840 3155 2840 3155 2840 3151 2840 3140 2840 3131 2840 3130 2840 3124 2840 3123 2840 3114 2840 3109 2840 3106 2840 3104 2840 3102 2840 3102 2841 3101 2841 3100 2841 3099 2841 3099 2841 3099 2841 3097 2840 3096 2839 3094 2838 3093 2838 3091 2835 3091 2834 3090 2834 3089 2834 3088 2834 3088 2834 3087 2834 3086 2834 3085 2833 3085 2833 3083 2834 3082 2834 3081 2834 3081 2835 3080 2835 3080 2836 3076 2838 3076 2838 3074 2838 3074 2837 3071 2838 3070 2837 3070 2837 3068 2836 3067 2836 3066 2837 3066 2837 3065 2837 3065 2838 3064 2838 3063 2838 3063 2836 3063 2833 3063 2831 3064 2831 3064 2829 3064 2829 3064 2826 3064 2826 3064 2825 3064 2825 3064 2824 3064 2824 3063 2822 3063 2821 3063 2819 3063 2819 3064 2818 3064 2818 3064 2818 3063 2817 3063 2816 3062 2816 3063 2815 3063 2815 3064 2815 3064 2815 3064 2815 3065 2814 3067 2812 3067 2811 3067 2810 3067 2809 3067 2809 3067 2809 3068 2806 3068 2804 3069 2802 3070 2800 3071 2799 3071 2798 3071 2797 3071 2796 3071 2795 3072 2794 3072 2793 3072 2792 3072 2791 3072 2790 3072 2790 3072 2789 3072 2788 3072 2787 3073 2785 3074 2784 3075 2784 3075 2779 3075 2779 3075 2779 3075 2777 3075 2777 3079 2773 3080 2772 3082 2770 3082 2769 3082 2769 3081 2768 3082 2767 3082 2767 3085 2765 3086 2764 3086 2764 3088 2764 3089 2764 3090 2762 3090 2762 3090 2761 3090 2761 3090 2761 3091 2760 3091 2760 3092 2759 3092 2759 3093 2757 3095 2753 3095 2751 3095 2750 3095 2750 3095 2750 3095 2747 3095 2746 3095 2744 3096 2743 3096 2740 3096 2738 3096 2737 3096 2737 3095 2736 3094 2734 3094 2734 3095 2733 3095 2733 3095 2732 3093 2731 3091 2729 3091 2729 3091 2728 3091 2728 3091 2727 3090 2726 3090 2726 3090 2725 3088 2722 3088 2721 3088 2721 3088 2720 3087 2719 3087 2719 3086 2717 3086 2716 3085 2713 3085 2712 3085 2711 3082 2708 3083 2707 3083 2706 3084 2705 3085 2704 3084 2705 3084 2705 3084 2705 3084 2706 3083 2706 3083 2707 3083 2707 3083 2708 3084 2707 3084 2706 3086 2704 3087 2703 3088 2703 3089 2702 3089 2701 3089 2700 3089 2700 3088 2698 3088 2698 3089 2698 3089 2697 3089 2696 3088 2695 3088 2694 3087 2693 3086 2691 3086 2691 3086 2690 3085 2689 3084 2687 3084 2687 3084 2687 3084 2687 3084 2686 3083 2684 3082 2683 3082 2681 3081 2679 3080 2676 3080 2675 3080 2674 3080 2674 3077 2671 3076 2669 3076 2669 3075 2669 3075 2668 3074 2666 3072 2662 3072 2662 3072 2661 3071 2660 3071 2660 3071 2660 3071 2659 3072 2659 3072 2660 3073 2660 3075 2659 3076 2659 3078 2659 3079 2659 3080 2658 3081 2658 3082 2657 3082 2657 3082 2657 3082 2656 3084 2656 3084 2657 3085 2657 3085 2656 3085 2656 3087 2656 3089 2656 3090 2656 3091 2656 3091 2656 3095 2656 3098 2656 3098 2656 3099 2656 3100 2656 3102 2657 3104 2657 3108 2657 3110 2656 3111 2656 3112 2656 3116 2656 3126 2656 3128 2656 3129 2656 3132 2656 3133 2656 3134 2656 3136 2656 3136 2656 3139 2656 3140 2657 3140 2657 3140 2658 3140 2659 3142 2661 3142 2661 3142 2661 3142 2664 3142 2665 3142 2666 3143 2669 3144 2671 3144 2672 3145 2672 3145 2673 3146 2675 3146 2675 3145 2676 3146 2677 3146 2679 3148 2680 3148 2680 3148 2681 3149 2682 3150 2683 3151 2685 3151 2686 3153 2688 3153 2688 3154 2688 3155 2690 3155 2691 3155 2692 3155 2692 3157 2692 3157 2692 3159 2691 3161 2691 3161 2691 3162 2691 3162 2692 3163 2692 3163 2692 3164 2692 3164 2692 3164 2691 3166 2690 3168 2690 3169 2690 3171 2690 3171 2690 3171 2689 3175 2689 3175 2690 3175 2690 3178 2690 3184 2690 3184 2689 3184 2689 3184 2689 3184 2687 3184 2687 3185 2686 3185 2685 3185 2684 3184 2684 3184 2684 3185 2683 3186 2683 3187 2682 3187 2681 3186 2680 3186 2679 3186 2679 3186 2677 3187 2677 3187 2674 3194 2674 3199 2674 3200 2674 3200 2674 3200 2673 3205 2673 3204 2674 3204 2675 3203 2676 3203 2677 3203 2678 3203 2679 3214 2679 3220 2679 3223 2679 3223 2679 3224 2680 3224 2682 3224 2684 3224 2684 3224 2685 3223 2685 3223 2687 3223 2688 3222 2689 3222 2690 3223 2691 3223 2691 3224 2692 3224 2693 3224 2695 3225 2696 3225 2696 3225 2697 3225 2697 3225 2698 3225 2699 3225 2700 3225 2702 3224 2703 3224 2705 3224 2707 3224 2709 3224 2711 3223 2712 3223 2713 3224 2716 3224 2717 3224 2717 3227 2720 3227 2720 3228 2721 3229 2721 3229 2722 3230 2724 3230 2725 3230 2725 3231 2727 3231 2728 3231 2729 3231 2730 3231 2732 3231 2732 3231 2733 3231 2734 3230 2735 3230 2735 3229 2735 3229 2736 3229 2738 3230 2738 3230 2739 3231 2741 3230 2742 3231 2742 3234 2740 3234 2740 3234 2739 3235 2739 3235 2739 3236 2739 3236 2739 3237 2739 3237 2739 3238 2740 3239 2740 3239 2739 3240 2739 3240 2739 3241 2739 3241 2740 3243 2740 3244 2740 3246 2739 3246 2739 3247 2739 3248 2738 3249 2738 3249 2738 3250 2738 3250 2738 3250 2738 3251 2738 3251 2738 3252 2738 3252 2738 3253 2738 3256 2739 3257 2738 3258 2737 3258 2736 3258 2737 3258 2740 3259 2742 3260 2745 3259 2745 3259 2745 3258 2749 3258 2749 3258 2750 3259 2751 3258 2752 3258 2758 3258 2758 3259 2758 3259 2759 3259 2759 3259 2760 3258 2762 3258 2762 3257 2766 3257 2767 3257 2768 3257 2768 3258 2768 3258 2769 3258 2769 3259 2770 3256 2770 3252 2770 3249 2770 3247 2770 3242 2770 3234 2770 3226 2770 3226 2775 3226 2777 3226 2781" />
+<path id="as" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 148 2792 148 2792 147 2792 147 2791 147 2791 147 2791 149 2790 149 2790 151 2790 151 2790 150 2791 150 2791 148 2792" />
+<path id="ar" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1741 3145 1741 3145 1742 3145 1746 3144 1746 3144 1745 3143 1746 3142 1748 3140 1749 3140 1749 3140 1750 3140 1750 3140 1751 3139 1750 3137 1750 3136 1751 3135 1751 3135 1751 3134 1751 3133 1750 3132 1750 3132 1750 3131 1751 3130 1750 3127 1748 3126 1748 3126 1748 3126 1748 3125 1748 3125 1749 3125 1749 3125 1750 3125 1751 3124 1751 3124 1751 3123 1751 3123 1751 3122 1751 3122 1751 3121 1752 3119 1753 3116 1755 3114 1756 3112 1756 3111 1756 3110 1756 3110 1756 3110 1757 3110 1758 3110 1758 3110 1759 3110 1760 3109 1759 3107 1759 3104 1758 3103 1758 3102 1759 3098 1760 3097 1760 3096 1761 3096 1760 3094 1759 3093 1759 3093 1758 3093 1758 3094 1757 3094 1757 3094 1755 3092 1755 3092 1755 3092 1756 3091 1755 3090 1756 3090 1757 3089 1757 3088 1756 3087 1755 3086 1754 3084 1754 3083 1755 3082 1755 3082 1754 3081 1753 3079 1753 3079 1752 3078 1752 3078 1752 3077 1751 3075 1752 3074 1753 3074 1753 3073 1753 3073 1752 3072 1752 3072 1752 3072 1751 3072 1750 3072 1750 3072 1750 3071 1750 3071 1748 3067 1748 3066 1748 3065 1748 3063 1748 3061 1749 3060 1750 3059 1750 3059 1751 3059 1752 3058 1752 3058 1752 3057 1752 3057 1752 3056 1752 3055 1753 3053 1753 3052 1754 3051 1755 3049 1756 3048 1756 3048 1757 3048 1758 3048 1759 3047 1760 3045 1760 3044 1759 3044 1759 3043 1758 3042 1758 3041 1758 3040 1758 3038 1758 3037 1758 3037 1758 3037 1758 3037 1757 3036 1758 3036 1758 3035 1758 3035 1758 3034 1757 3032 1756 3032 1756 3031 1756 3030 1758 3029 1759 3028 1760 3028 1760 3028 1760 3027 1760 3027 1760 3026 1761 3024 1761 3022 1761 3022 1761 3022 1761 3021 1761 3020 1762 3019 1762 3019 1762 3018 1762 3016 1763 3016 1764 3015 1767 3013 1767 3012 1768 3011 1768 3011 1768 3010 1769 3009 1769 3009 1770 3009 1770 3009 1770 3009 1770 3008 1771 3006 1771 3005 1772 3004 1772 3003 1774 3000 1775 2998 1775 2998 1775 2997 1775 2997 1776 2996 1776 2995 1777 2995 1778 2996 1779 2996 1782 2995 1783 2995 1783 2994 1784 2994 1784 2992 1784 2992 1782 2989 1782 2989 1782 2989 1781 2988 1780 2987 1780 2986 1780 2986 1780 2986 1780 2985 1780 2985 1780 2984 1780 2983 1780 2983 1780 2982 1781 2982 1781 2982 1782 2981 1783 2980 1782 2976 1781 2974 1781 2973 1780 2972 1779 2970 1779 2969 1779 2969 1779 2969 1780 2967 1780 2967 1780 2966 1780 2966 1780 2966 1781 2965 1781 2965 1781 2964 1782 2964 1783 2964 1781 2960 1780 2960 1780 2959 1780 2958 1780 2957 1781 2957 1781 2955 1783 2954 1783 2954 1784 2954 1784 2953 1785 2952 1786 2952 1790 2950 1795 2948 1796 2948 1799 2946 1801 2942 1802 2938 1802 2936 1803 2936 1803 2934 1804 2932 1805 2930 1803 2928 1802 2927 1803 2925 1805 2924 1805 2923 1805 2922 1806 2922 1807 2921 1808 2921 1809 2920 1809 2918 1810 2917 1811 2917 1812 2917 1813 2916 1814 2916 1815 2916 1816 2915 1816 2914 1816 2914 1817 2912 1817 2911 1817 2910 1818 2911 1820 2911 1822 2913 1823 2914 1824 2915 1825 2916 1826 2916 1827 2915 1834 2915 1837 2915 1837 2916 1841 2917 1842 2917 1843 2917 1844 2918 1844 2918 1844 2920 1845 2922 1846 2923 1846 2924 1846 2924 1846 2925 1847 2926 1847 2926 1847 2927 1847 2927 1847 2928 1848 2928 1848 2927 1848 2926 1848 2926 1848 2924 1849 2923 1849 2923 1849 2922 1850 2922 1850 2921 1851 2920 1852 2918 1853 2915 1854 2914 1857 2914 1858 2914 1859 2914 1867 2914 1871 2914 1872 2914 1872 2914 1872 2915 1872 2915 1872 2916 1873 2916 1874 2918 1874 2918 1875 2918 1876 2920 1878 2921 1879 2921 1879 2921 1880 2922 1880 2922 1881 2922 1881 2923 1881 2923 1882 2926 1883 2927 1884 2928 1884 2928 1885 2929 1885 2929 1885 2930 1886 2931 1886 2931 1887 2931 1889 2933 1889 2933 1889 2934 1890 2934 1891 2934 1891 2935 1893 2937 1895 2937 1896 2938 1898 2939 1899 2940 1900 2942 1900 2942 1901 2943 1901 2943 1903 2943 1905 2944 1905 2944 1907 2944 1907 2945 1907 2945 1909 2946 1912 2946 1914 2946 1914 2946 1915 2946 1915 2946 1916 2946 1916 2946 1917 2947 1922 2950 1924 2951 1925 2951 1927 2953 1927 2953 1927 2954 1928 2954 1931 2956 1932 2956 1933 2956 1934 2957 1934 2957 1935 2957 1936 2958 1938 2959 1939 2959 1939 2959 1940 2959 1941 2960 1943 2961 1944 2961 1946 2961 1947 2962 1948 2962 1950 2963 1950 2963 1951 2963 1951 2963 1952 2965 1953 2965 1953 2966 1953 2966 1954 2967 1954 2967 1954 2968 1955 2968 1956 2969 1956 2969 1955 2971 1953 2974 1952 2974 1952 2974 1952 2975 1951 2976 1950 2977 1950 2977 1951 2978 1949 2979 1948 2980 1946 2981 1947 2982 1946 2983 1945 2984 1945 2986 1946 2987 1946 2987 1946 2988 1944 2992 1943 2992 1942 2992 1941 2994 1939 2996 1939 2996 1939 2996 1938 2996 1938 2997 1939 2997 1939 2998 1939 2999 1940 2999 1940 2998 1941 2998 1941 2998 1944 2998 1946 2998 1948 2998 1950 2998 1952 2998 1953 2999 1953 2999 1954 2999 1954 3000 1955 3000 1958 3000 1959 3001 1959 3001 1960 3001 1960 3001 1961 3001 1961 3001 1962 3001 1963 3002 1963 3002 1964 3001 1965 3001 1965 3001 1966 3000 1966 3000 1967 3001 1967 3001 1968 3001 1968 3002 1968 3002 1969 3002 1969 3001 1969 3001 1970 3001 1970 3001 1971 3001 1971 3001 1972 3001 1972 3001 1973 3001 1973 3002 1973 3002 1974 3003 1974 3003 1975 3003 1975 3003 1976 3001 1976 3001 1976 3001 1976 3000 1978 2999 1979 2999 1980 2999 1980 2999 1981 2999 1982 2999 1982 2999 1983 2999 1983 3000 1983 3000 1984 3001 1985 3001 1987 2999 1987 2999 1987 2998 1987 2998 1987 2997 1987 2996 1988 2996 1990 2994 1990 2993 1990 2993 1992 2993 1993 2993 1994 2992 1996 2991 1996 2990 1997 2990 1997 2990 1997 2990 1997 2990 1998 2989 1998 2988 1998 2988 1999 2988 2001 2985 2002 2982 2002 2982 2002 2981 2002 2981 2002 2980 2002 2977 2003 2977 2003 2974 2003 2972 2003 2971 2004 2971 2005 2972 2005 2972 2006 2971 2007 2971 2008 2971 2010 2971 2010 2970 2011 2970 2014 2972 2015 2973 2015 2975 2015 2975 2015 2976 2015 2977 2017 2979 2018 2981 2018 2981 2018 2982 2018 2982 2018 2982 2018 2983 2017 2983 2017 2984 2017 2986 2017 2988 2017 2989 2017 2990 2017 2992 2017 2992 2017 2993 2017 2994 2016 2996 2015 2996 2015 2996 2014 2996 2012 2997 2012 2997 2012 2998 2011 2998 2011 2998 2011 2998 2010 2998 2009 3000 2008 3001 2007 3001 2005 3001 2004 3002 2002 3002 2002 3003 2000 3003 2000 3003 2000 3002 2000 3002 1998 3004 1998 3005 1998 3005 1996 3007 1996 3007 1994 3007 1991 3008 1991 3009 1990 3010 1990 3010 1989 3011 1987 3012 1987 3012 1986 3012 1986 3013 1985 3013 1985 3013 1984 3013 1984 3014 1985 3014 1986 3015 1986 3015 1985 3016 1985 3016 1985 3016 1983 3015 1983 3015 1982 3016 1981 3018 1980 3019 1979 3020 1978 3021 1976 3022 1976 3022 1976 3023 1974 3026 1974 3027 1972 3027 1972 3027 1971 3028 1971 3028 1971 3028 1970 3029 1970 3029 1970 3030 1969 3031 1968 3033 1966 3035 1964 3037 1963 3037 1963 3038 1962 3038 1961 3038 1961 3038 1960 3038 1960 3039 1960 3039 1959 3040 1959 3040 1959 3041 1959 3042 1957 3044 1956 3044 1956 3044 1955 3045 1955 3045 1955 3045 1955 3046 1954 3046 1954 3047 1953 3048 1952 3049 1951 3050 1950 3050 1950 3050 1950 3051 1951 3052 1951 3052 1952 3053 1952 3054 1952 3054 1952 3054 1952 3055 1952 3056 1951 3059 1950 3062 1949 3064 1948 3065 1948 3065 1947 3065 1948 3066 1948 3066 1948 3066 1949 3066 1949 3067 1949 3068 1948 3070 1948 3071 1947 3071 1946 3071 1946 3071 1946 3071 1945 3072 1946 3073 1946 3074 1946 3075 1946 3075 1946 3076 1946 3076 1946 3077 1946 3077 1947 3078 1947 3078 1947 3079 1946 3079 1946 3080 1946 3080 1945 3081 1945 3081 1945 3081 1945 3081 1945 3082 1945 3083 1945 3085 1946 3087 1946 3089 1946 3090 1946 3091 1946 3091 1946 3091 1945 3091 1945 3091 1944 3091 1943 3091 1942 3091 1942 3091 1942 3094 1941 3095 1941 3095 1941 3096 1940 3097 1940 3098 1940 3100 1940 3101 1940 3101 1940 3102 1941 3103 1941 3103 1942 3105 1941 3106 1942 3106 1942 3106 1942 3106 1943 3109 1942 3109 1942 3110 1941 3110 1941 3111 1941 3112 1941 3113 1941 3114 1941 3114 1942 3115 1942 3115 1943 3115 1943 3116 1943 3116 1943 3116 1945 3117 1946 3117 1947 3118 1947 3118 1948 3118 1951 3119 1952 3120 1957 3122 1959 3124 1960 3124 1962 3127 1962 3128 1963 3128 1963 3129 1962 3129 1962 3130 1961 3131 1960 3133 1959 3133 1959 3134 1958 3134 1958 3135 1958 3136 1958 3136 1959 3137 1959 3137 1960 3139 1961 3140 1961 3141 1962 3142 1963 3142 1964 3143 1966 3143 1966 3143 1967 3143 1968 3142 1969 3143 1969 3144 1969 3144 1970 3147 1970 3151 1970 3152 1970 3152 1969 3153 1969 3153 1969 3153 1967 3155 1965 3157 1964 3159 1964 3160 1963 3161 1963 3161 1962 3162 1961 3163 1961 3163 1960 3163 1959 3164 1958 3166 1957 3167 1957 3167 1956 3168 1956 3168 1956 3168 1956 3169 1956 3170 1956 3171 1956 3171 1955 3172 1955 3172 1954 3172 1954 3173 1951 3174 1946 3176 1946 3177 1944 3177 1938 3179 1936 3179 1936 3179 1932 3180 1932 3181 1931 3181 1930 3181 1928 3181 1925 3182 1922 3182 1920 3183 1918 3183 1918 3183 1914 3184 1909 3184 1905 3185 1904 3185 1903 3185 1899 3185 1898 3185 1898 3185 1896 3185 1895 3185 1894 3185 1894 3185 1893 3185 1893 3186 1892 3186 1891 3186 1888 3185 1887 3185 1885 3185 1884 3185 1883 3184 1883 3184 1883 3183 1881 3182 1879 3182 1879 3182 1878 3183 1879 3183 1879 3184 1880 3184 1880 3185 1880 3186 1879 3187 1879 3188 1879 3190 1880 3190 1881 3190 1881 3190 1882 3190 1884 3191 1884 3191 1884 3192 1884 3192 1883 3191 1882 3191 1882 3191 1882 3190 1881 3190 1880 3191 1882 3192 1884 3194 1883 3196 1883 3197 1883 3197 1883 3198 1883 3199 1882 3199 1881 3199 1880 3200 1879 3202 1879 3203 1879 3203 1879 3204 1879 3205 1879 3205 1878 3205 1877 3206 1877 3206 1878 3208 1878 3209 1880 3210 1880 3210 1881 3211 1881 3211 1880 3211 1879 3211 1879 3212 1880 3212 1881 3212 1882 3211 1882 3212 1881 3212 1880 3214 1880 3215 1878 3216 1878 3216 1875 3217 1873 3218 1873 3218 1872 3218 1870 3219 1869 3219 1869 3220 1868 3220 1868 3220 1867 3220 1866 3220 1863 3220 1862 3220 1860 3220 1858 3220 1858 3220 1856 3220 1856 3220 1855 3220 1855 3219 1854 3219 1854 3219 1853 3218 1853 3218 1852 3218 1850 3218 1848 3217 1845 3216 1845 3216 1844 3216 1841 3215 1841 3214 1840 3213 1840 3213 1839 3213 1838 3213 1838 3213 1837 3213 1835 3215 1834 3216 1834 3217 1834 3219 1834 3219 1835 3221 1836 3224 1836 3225 1836 3225 1837 3225 1837 3226 1837 3226 1837 3227 1837 3227 1836 3228 1836 3228 1836 3229 1837 3229 1837 3230 1837 3230 1836 3231 1836 3231 1836 3232 1836 3233 1836 3233 1836 3233 1837 3235 1837 3235 1837 3236 1838 3236 1839 3236 1841 3237 1843 3237 1843 3237 1844 3237 1845 3237 1845 3238 1845 3238 1845 3238 1844 3238 1844 3239 1843 3240 1843 3240 1846 3240 1851 3240 1851 3240 1852 3240 1852 3239 1852 3238 1852 3238 1851 3238 1851 3237 1851 3237 1849 3237 1849 3238 1848 3238 1848 3237 1848 3237 1850 3237 1853 3236 1854 3235 1855 3235 1855 3235 1856 3235 1857 3235 1857 3235 1858 3236 1858 3236 1858 3237 1858 3237 1859 3238 1859 3238 1859 3238 1859 3239 1859 3243 1859 3246 1858 3246 1857 3247 1857 3247 1855 3247 1852 3247 1851 3248 1851 3247 1849 3246 1849 3245 1849 3244 1850 3244 1848 3242 1847 3242 1846 3242 1846 3241 1845 3241 1844 3241 1843 3242 1841 3242 1841 3243 1840 3243 1840 3243 1839 3243 1839 3244 1838 3244 1838 3244 1837 3245 1837 3246 1837 3246 1838 3246 1840 3247 1841 3247 1842 3248 1842 3248 1843 3248 1843 3248 1846 3249 1847 3249 1847 3249 1848 3249 1848 3249 1847 3250 1847 3250 1844 3251 1843 3251 1842 3251 1840 3252 1840 3252 1839 3252 1838 3253 1836 3254 1836 3255 1835 3257 1833 3258 1832 3259 1832 3260 1831 3261 1831 3261 1832 3263 1832 3263 1832 3263 1832 3264 1833 3265 1833 3265 1833 3265 1833 3267 1833 3267 1832 3267 1832 3268 1832 3269 1833 3270 1833 3270 1832 3272 1831 3272 1831 3274 1827 3275 1827 3275 1827 3276 1826 3277 1825 3278 1825 3278 1825 3279 1826 3279 1826 3279 1827 3279 1828 3280 1827 3282 1826 3282 1825 3282 1825 3281 1823 3281 1819 3281 1818 3281 1815 3282 1813 3283 1812 3283 1812 3284 1810 3284 1808 3285 1807 3285 1806 3285 1805 3286 1804 3287 1803 3288 1802 3290 1802 3290 1801 3290 1800 3291 1800 3291 1800 3291 1800 3292 1799 3294 1798 3294 1796 3296 1796 3297 1795 3298 1795 3299 1795 3300 1795 3301 1796 3302 1796 3302 1796 3304 1797 3305 1798 3306 1798 3306 1799 3307 1799 3307 1802 3308 1802 3309 1803 3309 1806 3311 1808 3313 1809 3314 1809 3314 1810 3314 1811 3314 1811 3314 1812 3314 1813 3314 1815 3314 1815 3314 1817 3315 1819 3315 1820 3314 1821 3314 1821 3314 1823 3315 1824 3316 1825 3318 1825 3319 1825 3319 1825 3321 1825 3322 1824 3323 1823 3325 1823 3325 1822 3325 1821 3325 1821 3325 1820 3325 1820 3326 1820 3326 1819 3326 1819 3326 1818 3326 1817 3327 1817 3327 1817 3327 1818 3327 1819 3327 1820 3326 1821 3326 1822 3326 1822 3326 1824 3328 1824 3329 1824 3329 1823 3329 1823 3328 1822 3328 1821 3329 1822 3330 1821 3331 1820 3331 1816 3333 1815 3334 1814 3335 1813 3336 1812 3336 1811 3336 1810 3336 1810 3336 1809 3337 1808 3338 1807 3338 1806 3338 1806 3339 1805 3339 1804 3339 1803 3339 1803 3340 1802 3341 1801 3342 1800 3342 1800 3343 1799 3343 1798 3343 1797 3345 1797 3345 1797 3345 1797 3345 1796 3345 1796 3346 1795 3347 1795 3347 1795 3348 1794 3349 1793 3350 1793 3350 1792 3350 1792 3351 1793 3351 1794 3351 1794 3350 1794 3349 1795 3349 1795 3349 1794 3352 1794 3353 1793 3355 1793 3356 1793 3357 1793 3358 1793 3358 1793 3359 1792 3359 1792 3360 1792 3360 1791 3361 1791 3361 1790 3361 1789 3362 1789 3362 1788 3362 1788 3362 1786 3363 1786 3363 1785 3363 1785 3363 1784 3363 1784 3363 1782 3362 1781 3361 1779 3360 1779 3360 1778 3361 1777 3361 1776 3361 1775 3361 1774 3361 1773 3361 1773 3361 1774 3361 1775 3361 1775 3361 1776 3361 1776 3361 1778 3361 1779 3361 1779 3361 1780 3361 1780 3361 1780 3362 1781 3362 1781 3362 1781 3362 1781 3363 1782 3363 1783 3363 1783 3364 1783 3364 1782 3364 1782 3364 1781 3364 1780 3365 1779 3365 1778 3365 1777 3366 1776 3366 1775 3366 1775 3366 1774 3367 1774 3368 1772 3369 1772 3370 1771 3371 1771 3373 1771 3374 1771 3375 1771 3375 1770 3376 1769 3377 1768 3377 1768 3377 1767 3378 1766 3378 1767 3378 1768 3377 1770 3377 1770 3377 1771 3378 1771 3378 1771 3379 1771 3379 1771 3380 1772 3382 1772 3383 1773 3384 1773 3384 1773 3385 1773 3385 1774 3386 1773 3386 1773 3386 1773 3386 1772 3386 1772 3386 1771 3387 1770 3387 1770 3387 1768 3386 1767 3386 1765 3386 1763 3387 1764 3387 1765 3387 1765 3387 1767 3387 1767 3387 1769 3387 1770 3387 1773 3387 1773 3387 1774 3388 1775 3390 1776 3391 1776 3391 1777 3392 1778 3393 1778 3394 1779 3395 1779 3395 1780 3395 1781 3396 1782 3397 1782 3398 1783 3398 1782 3399 1782 3399 1782 3398 1780 3398 1779 3398 1777 3398 1776 3398 1775 3397 1774 3397 1773 3396 1772 3396 1769 3395 1768 3395 1766 3395 1761 3394 1759 3393 1758 3393 1757 3393 1756 3393 1755 3393 1750 3393 1746 3393 1737 3393 1730 3393 1726 3393 1726 3392 1726 3391 1726 3391 1724 3389 1723 3389 1722 3389 1722 3389 1722 3388 1721 3388 1720 3388 1719 3385 1719 3385 1719 3385 1720 3383 1720 3383 1720 3382 1720 3382 1721 3381 1721 3381 1720 3380 1720 3380 1719 3380 1719 3380 1719 3379 1720 3378 1720 3378 1721 3377 1721 3375 1721 3374 1721 3374 1720 3374 1720 3373 1720 3373 1720 3372 1720 3372 1719 3371 1717 3371 1717 3371 1716 3371 1716 3371 1716 3372 1715 3372 1715 3372 1714 3372 1714 3372 1714 3371 1713 3371 1713 3371 1711 3372 1711 3372 1710 3372 1710 3372 1709 3373 1709 3373 1708 3373 1708 3373 1707 3373 1707 3373 1706 3373 1706 3373 1705 3371 1705 3369 1705 3367 1705 3366 1704 3365 1704 3365 1703 3365 1702 3364 1701 3364 1701 3363 1700 3363 1701 3363 1701 3362 1701 3362 1702 3361 1701 3361 1701 3361 1700 3360 1701 3359 1701 3358 1702 3358 1702 3358 1701 3355 1700 3354 1700 3354 1700 3352 1702 3350 1702 3350 1706 3350 1707 3350 1708 3349 1706 3349 1706 3349 1706 3349 1708 3346 1709 3345 1709 3345 1710 3345 1710 3344 1711 3344 1711 3344 1712 3344 1713 3344 1713 3344 1713 3344 1714 3344 1716 3342 1716 3342 1716 3342 1716 3341 1716 3340 1716 3340 1716 3339 1716 3338 1716 3338 1715 3337 1715 3337 1716 3336 1716 3336 1717 3336 1718 3336 1720 3335 1720 3332 1720 3330 1719 3329 1718 3329 1717 3329 1717 3329 1717 3328 1716 3328 1718 3325 1718 3325 1719 3324 1719 3324 1719 3323 1720 3323 1720 3323 1720 3321 1720 3321 1719 3321 1719 3320 1720 3320 1720 3320 1720 3320 1721 3320 1721 3320 1722 3320 1722 3320 1724 3319 1725 3318 1727 3317 1727 3317 1727 3316 1727 3315 1727 3315 1725 3314 1726 3310 1726 3310 1727 3310 1728 3310 1730 3308 1730 3308 1730 3308 1730 3306 1730 3305 1729 3304 1729 3302 1729 3301 1729 3301 1728 3301 1728 3300 1727 3300 1727 3299 1728 3299 1728 3299 1729 3299 1729 3299 1729 3298 1730 3298 1730 3297 1731 3297 1731 3297 1731 3297 1731 3296 1731 3295 1730 3295 1729 3295 1729 3295 1728 3293 1728 3292 1729 3290 1730 3290 1730 3290 1731 3290 1731 3290 1731 3290 1734 3289 1736 3286 1736 3285 1733 3282 1732 3281 1732 3281 1729 3280 1728 3280 1726 3280 1724 3280 1724 3278 1724 3278 1724 3277 1725 3277 1725 3278 1725 3278 1726 3278 1728 3278 1728 3278 1728 3277 1729 3277 1730 3277 1730 3278 1730 3278 1731 3278 1731 3278 1731 3278 1732 3277 1733 3277 1733 3277 1733 3277 1734 3277 1735 3278 1735 3278 1736 3278 1736 3278 1737 3278 1737 3277 1737 3277 1737 3276 1737 3276 1738 3275 1739 3275 1739 3274 1739 3274 1738 3272 1738 3272 1735 3272 1733 3272 1732 3272 1731 3272 1729 3272 1728 3272 1727 3271 1728 3271 1728 3271 1728 3269 1728 3268 1728 3268 1729 3267 1729 3266 1731 3265 1731 3264 1731 3264 1730 3263 1729 3262 1728 3261 1728 3261 1728 3261 1729 3261 1730 3260 1730 3260 1730 3259 1727 3257 1726 3257 1726 3255 1727 3255 1728 3254 1729 3254 1729 3254 1729 3254 1729 3252 1728 3251 1727 3251 1726 3251 1726 3251 1725 3251 1724 3251 1724 3251 1723 3250 1723 3249 1723 3249 1723 3248 1723 3248 1723 3247 1723 3247 1723 3245 1723 3245 1723 3244 1723 3243 1723 3242 1723 3242 1723 3242 1724 3239 1724 3239 1724 3239 1723 3238 1723 3238 1724 3236 1725 3235 1725 3235 1726 3235 1726 3236 1726 3236 1726 3236 1729 3235 1729 3235 1729 3234 1729 3233 1729 3232 1729 3232 1728 3231 1727 3230 1726 3228 1726 3227 1727 3227 1727 3226 1727 3224 1727 3224 1727 3224 1727 3223 1727 3222 1727 3222 1727 3221 1728 3218 1727 3218 1728 3217 1727 3216 1727 3216 1726 3214 1726 3213 1726 3213 1727 3212 1727 3212 1727 3212 1728 3211 1728 3211 1728 3210 1729 3208 1729 3208 1729 3208 1730 3208 1730 3208 1730 3207 1730 3206 1730 3206 1729 3206 1728 3205 1728 3205 1728 3203 1729 3203 1730 3202 1731 3201 1730 3199 1730 3197 1730 3195 1730 3195 1730 3194 1730 3194 1731 3195 1731 3195 1733 3195 1733 3195 1733 3194 1734 3192 1735 3191 1735 3189 1735 3187 1734 3186 1734 3186 1734 3186 1734 3185 1734 3184 1735 3184 1735 3184 1736 3183 1737 3183 1739 3182 1740 3181 1741 3181 1741 3181 1742 3181 1742 3181 1743 3180 1744 3179 1744 3178 1743 3178 1743 3177 1742 3177 1742 3177 1741 3176 1741 3174 1741 3173 1741 3173 1741 3172 1741 3171 1739 3168 1739 3167 1739 3166 1739 3166 1738 3165 1738 3165 1738 3164 1738 3163 1738 3163 1739 3163 1739 3161 1739 3160 1739 3160 1738 3160 1738 3158 1738 3158 1739 3157 1739 3157 1739 3155 1739 3153 1738 3151 1739 3149 1740 3146 1740 3145 1741 3145 M 1886 3189 1886 3189 1884 3188 1883 3187 1883 3187 1883 3187 1883 3187 1883 3187 1885 3187 1886 3187 1886 3188 1887 3188 1887 3189 1887 3189 1887 3189 1886 3189 M 1779 3403 1780 3404 1781 3405 1782 3406 1782 3407 1783 3407 1784 3407 1784 3408 1784 3408 1784 3408 1784 3408 1785 3409 1785 3409 1785 3409 1785 3411 1785 3411 1785 3411 1785 3411 1785 3410 1785 3410 1785 3410 1784 3409 1784 3409 1784 3409 1784 3409 1783 3409 1783 3409 1780 3411 1780 3411 1780 3412 1780 3412 1780 3412 1780 3412 1780 3413 1780 3413 1781 3413 1781 3413 1782 3414 1782 3414 1782 3414 1783 3414 1784 3414 1784 3414 1785 3414 1786 3414 1786 3414 1786 3414 1786 3414 1787 3415 1787 3415 1788 3415 1788 3415 1788 3416 1788 3417 1789 3418 1789 3418 1789 3418 1789 3419 1792 3420 1793 3421 1794 3422 1795 3422 1796 3422 1796 3423 1795 3423 1795 3423 1795 3423 1796 3423 1796 3424 1796 3424 1797 3424 1799 3425 1801 3426 1805 3428 1807 3429 1807 3429 1809 3429 1809 3429 1809 3430 1810 3430 1810 3430 1810 3430 1812 3431 1812 3432 1816 3433 1816 3433 1817 3433 1817 3434 1817 3434 1820 3434 1820 3434 1824 3436 1826 3436 1826 3436 1826 3436 1830 3435 1832 3435 1832 3435 1833 3435 1833 3435 1834 3435 1835 3435 1833 3438 1832 3439 1831 3440 1831 3440 1831 3440 1830 3440 1830 3440 1829 3439 1827 3440 1826 3440 1825 3440 1825 3439 1825 3439 1825 3439 1823 3439 1823 3439 1822 3439 1822 3440 1821 3440 1821 3440 1819 3441 1819 3441 1818 3441 1818 3441 1817 3441 1815 3441 1815 3441 1815 3441 1815 3441 1814 3442 1814 3442 1812 3442 1812 3442 1811 3441 1810 3441 1810 3441 1810 3441 1810 3441 1810 3441 1809 3441 1809 3440 1808 3440 1808 3440 1805 3440 1805 3440 1805 3439 1802 3439 1797 3439 1795 3439 1795 3439 1794 3439 1794 3439 1793 3439 1792 3439 1789 3439 1788 3439 1788 3439 1788 3439 1788 3439 1787 3438 1787 3438 1786 3438 1785 3438 1784 3438 1784 3438 1784 3438 1781 3439 1781 3439 1780 3439 1780 3439 1780 3438 1779 3438 1779 3434 1779 3431 1779 3430 1779 3425 1779 3422 1779 3417 1779 3414 1779 3414 1779 3413 1779 3411 1779 3406 1779 3405 1779 3403 1779 3403 M 1842 3439 1842 3439 1842 3439 1841 3438 1841 3438 1841 3438 1841 3438 1842 3437 1842 3437 1842 3437 1843 3438 1843 3438 1843 3438 1845 3438 1847 3437 1847 3437 1850 3437 1852 3437 1854 3436 1854 3436 1856 3437 1856 3437 1855 3438 1854 3438 1853 3438 1853 3437 1852 3438 1851 3438 1849 3438 1848 3438 1849 3438 1848 3438 1847 3438 1846 3438 1846 3439 1845 3439 1845 3439 1844 3439 1843 3439 1842 3439" />
+<path id="au" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5148 2726 5146 2726 5146 2726 5146 2725 5146 2725 5147 2725 5148 2724 5148 2725 5148 2725 5148 2725 5148 2725 5148 2726 5148 2726 M 5146 2735 5145 2734 5145 2734 5145 2733 5145 2733 5145 2733 5146 2732 5147 2732 5147 2733 5147 2734 5146 2734 5146 2734 5146 2734 5146 2735 M 5295 2947 5295 2947 5295 2947 5296 2947 5297 2947 5297 2946 5297 2945 5298 2946 5299 2947 5301 2949 5301 2949 5302 2949 5302 2950 5302 2951 5303 2952 5303 2952 5303 2953 5303 2953 5304 2954 5305 2956 5306 2956 5307 2957 5308 2957 5308 2958 5309 2958 5309 2958 5310 2958 5310 2959 5311 2959 5311 2960 5311 2960 5311 2961 5311 2961 5311 2962 5311 2962 5312 2963 5314 2966 5314 2966 5316 2966 5316 2966 5317 2966 5318 2969 5318 2970 5317 2971 5317 2973 5317 2974 5318 2974 5318 2974 5319 2975 5319 2976 5320 2976 5320 2976 5322 2977 5322 2977 5321 2979 5320 2981 5320 2981 5320 2983 5320 2983 5320 2984 5320 2986 5321 2988 5321 2989 5321 2989 5321 2993 5321 2995 5320 2995 5320 2996 5320 2996 5319 2996 5319 2997 5320 2999 5320 2999 5322 3000 5323 3001 5323 3002 5324 3003 5324 3004 5324 3004 5325 3006 5325 3006 5326 3007 5326 3008 5325 3009 5326 3011 5326 3011 5327 3012 5327 3012 5327 3013 5328 3013 5328 3013 5328 3014 5328 3016 5328 3016 5328 3017 5328 3017 5328 3018 5328 3018 5328 3019 5328 3019 5328 3020 5328 3020 5329 3020 5328 3023 5328 3024 5328 3024 5327 3025 5327 3025 5327 3025 5326 3026 5326 3026 5326 3027 5324 3030 5324 3030 5324 3031 5324 3031 5324 3032 5325 3032 5324 3034 5323 3038 5323 3041 5322 3043 5321 3045 5321 3046 5319 3050 5319 3051 5319 3051 5319 3053 5319 3054 5319 3055 5319 3055 5319 3056 5320 3056 5320 3057 5320 3058 5318 3062 5318 3063 5317 3066 5317 3067 5316 3068 5316 3069 5315 3071 5314 3072 5313 3072 5313 3072 5313 3073 5312 3073 5312 3074 5311 3076 5311 3078 5311 3080 5309 3082 5309 3082 5308 3082 5308 3082 5307 3083 5306 3084 5305 3085 5305 3085 5305 3086 5303 3087 5302 3087 5300 3088 5300 3088 5297 3091 5297 3092 5296 3093 5296 3094 5296 3094 5295 3094 5295 3094 5294 3095 5294 3095 5294 3096 5295 3096 5294 3098 5292 3100 5292 3104 5291 3105 5291 3105 5290 3105 5288 3106 5289 3106 5290 3106 5289 3108 5288 3108 5288 3109 5287 3109 5286 3110 5286 3110 5286 3111 5284 3114 5285 3115 5285 3115 5285 3116 5284 3118 5284 3118 5283 3118 5283 3119 5283 3119 5283 3120 5283 3121 5284 3122 5284 3123 5284 3123 5283 3123 5283 3122 5283 3122 5283 3122 5282 3122 5282 3123 5282 3124 5281 3124 5281 3125 5280 3125 5279 3125 5279 3126 5279 3127 5277 3130 5277 3131 5275 3133 5273 3137 5273 3139 5273 3142 5273 3143 5272 3143 5272 3144 5272 3144 5272 3146 5271 3148 5271 3150 5270 3150 5270 3151 5269 3152 5269 3155 5270 3155 5271 3156 5271 3157 5271 3158 5271 3158 5270 3158 5270 3160 5270 3160 5270 3161 5271 3161 5270 3162 5270 3162 5269 3162 5268 3162 5267 3162 5267 3163 5266 3165 5264 3165 5264 3165 5263 3166 5262 3166 5260 3166 5259 3166 5256 3166 5252 3166 5251 3166 5251 3166 5249 3167 5247 3166 5244 3167 5243 3167 5242 3167 5238 3168 5238 3168 5236 3169 5235 3169 5235 3169 5233 3170 5232 3171 5232 3171 5230 3173 5229 3173 5226 3175 5226 3176 5225 3177 5223 3179 5222 3179 5221 3180 5220 3180 5217 3180 5215 3181 5214 3181 5213 3181 5211 3181 5211 3181 5210 3181 5210 3182 5212 3184 5214 3183 5214 3183 5214 3182 5214 3182 5215 3187 5214 3188 5213 3188 5213 3188 5213 3188 5212 3187 5212 3187 5211 3185 5211 3185 5211 3184 5210 3184 5210 3184 5210 3183 5209 3183 5209 3183 5208 3183 5208 3183 5208 3183 5207 3183 5207 3183 5205 3183 5204 3181 5204 3181 5204 3181 5205 3181 5204 3180 5204 3180 5203 3180 5203 3180 5202 3180 5201 3180 5201 3180 5200 3180 5198 3178 5198 3178 5198 3177 5199 3176 5199 3176 5200 3175 5199 3173 5198 3173 5195 3173 5194 3175 5191 3177 5190 3178 5189 3178 5187 3175 5188 3175 5188 3176 5188 3176 5189 3175 5190 3175 5190 3175 5191 3175 5193 3172 5193 3172 5193 3171 5193 3170 5191 3168 5190 3167 5190 3167 5188 3168 5187 3169 5186 3170 5186 3170 5183 3171 5181 3171 5181 3171 5181 3172 5181 3172 5181 3172 5183 3172 5184 3172 5184 3172 5185 3172 5185 3172 5186 3172 5186 3172 5187 3172 5186 3173 5186 3174 5185 3174 5185 3174 5184 3174 5184 3174 5181 3174 5181 3175 5176 3177 5175 3178 5173 3180 5172 3181 5171 3181 5171 3181 5170 3181 5170 3181 5170 3182 5168 3183 5167 3183 5167 3183 5166 3182 5165 3182 5164 3182 5162 3181 5161 3180 5161 3180 5160 3180 5159 3179 5159 3179 5157 3179 5156 3179 5155 3178 5155 3178 5153 3177 5152 3176 5149 3175 5147 3176 5147 3176 5147 3176 5146 3176 5144 3175 5144 3175 5143 3174 5142 3174 5140 3174 5139 3174 5139 3174 5138 3174 5137 3175 5137 3175 5137 3175 5137 3176 5136 3176 5134 3175 5133 3174 5133 3174 5132 3173 5131 3173 5130 3172 5129 3172 5129 3171 5129 3171 5127 3171 5127 3171 5127 3170 5126 3170 5125 3170 5124 3170 5123 3171 5122 3171 5122 3171 5120 3170 5120 3169 5117 3167 5116 3167 5115 3164 5113 3162 5112 3162 5112 3161 5112 3161 5111 3161 5109 3159 5108 3158 5108 3158 5107 3157 5107 3156 5108 3156 5108 3155 5107 3154 5107 3152 5108 3152 5108 3151 5109 3151 5109 3151 5109 3150 5109 3150 5109 3149 5109 3148 5109 3148 5108 3147 5108 3146 5106 3142 5105 3141 5103 3138 5103 3138 5102 3137 5102 3137 5101 3136 5100 3135 5100 3135 5098 3134 5096 3132 5097 3132 5097 3133 5101 3135 5102 3136 5103 3137 5104 3139 5105 3140 5105 3140 5106 3141 5106 3140 5106 3140 5105 3138 5105 3138 5104 3137 5104 3137 5103 3136 5102 3136 5100 3134 5098 3132 5098 3132 5097 3132 5097 3131 5097 3130 5097 3130 5098 3130 5099 3130 5099 3131 5099 3132 5099 3133 5101 3133 5101 3131 5101 3129 5101 3128 5099 3127 5099 3127 5098 3127 5097 3128 5096 3128 5096 3128 5095 3128 5095 3128 5095 3128 5094 3128 5094 3129 5094 3129 5095 3129 5095 3129 5096 3130 5095 3130 5095 3130 5094 3130 5093 3130 5092 3130 5092 3130 5091 3130 5090 3131 5089 3131 5089 3131 5089 3131 5088 3132 5082 3132 5082 3132 5082 3132 5081 3132 5081 3131 5081 3130 5082 3130 5082 3130 5083 3130 5083 3129 5084 3129 5086 3127 5087 3125 5086 3124 5087 3123 5087 3123 5087 3123 5087 3122 5087 3122 5087 3122 5087 3120 5087 3120 5087 3119 5087 3118 5087 3117 5086 3116 5086 3116 5086 3115 5084 3114 5084 3113 5083 3113 5083 3112 5083 3111 5083 3111 5082 3109 5081 3108 5080 3108 5079 3110 5079 3110 5080 3110 5079 3111 5079 3112 5079 3112 5078 3112 5078 3112 5077 3114 5077 3115 5077 3116 5077 3117 5076 3119 5076 3120 5075 3122 5075 3123 5075 3124 5074 3124 5073 3124 5073 3124 5072 3124 5072 3124 5071 3123 5070 3123 5067 3124 5067 3125 5066 3125 5066 3125 5066 3125 5065 3125 5065 3125 5064 3125 5064 3125 5064 3125 5063 3125 5063 3126 5062 3126 5061 3126 5061 3126 5061 3126 5061 3125 5062 3125 5062 3124 5063 3123 5063 3122 5063 3121 5064 3120 5064 3120 5064 3120 5065 3120 5065 3120 5066 3120 5068 3120 5068 3120 5069 3121 5070 3121 5070 3121 5070 3120 5070 3120 5071 3116 5071 3113 5071 3110 5071 3109 5071 3109 5070 3108 5071 3108 5071 3108 5071 3108 5072 3107 5072 3107 5073 3105 5073 3104 5073 3103 5076 3101 5077 3099 5078 3099 5078 3099 5078 3099 5078 3098 5078 3097 5077 3095 5076 3094 5076 3093 5077 3093 5078 3092 5078 3092 5079 3092 5080 3092 5080 3091 5079 3090 5079 3090 5078 3090 5078 3086 5077 3085 5076 3084 5076 3083 5075 3082 5075 3082 5075 3083 5075 3085 5076 3085 5076 3085 5076 3085 5076 3087 5076 3089 5075 3090 5073 3090 5071 3092 5070 3093 5069 3094 5069 3095 5069 3095 5069 3096 5069 3096 5068 3099 5067 3100 5067 3100 5066 3101 5065 3101 5064 3101 5063 3101 5062 3100 5061 3102 5062 3102 5061 3102 5058 3104 5056 3104 5054 3106 5053 3107 5053 3108 5052 3109 5052 3109 5051 3110 5051 3110 5051 3111 5050 3111 5050 3111 5049 3111 5048 3113 5047 3114 5046 3114 5045 3116 5044 3119 5044 3119 5045 3119 5046 3118 5046 3118 5047 3117 5048 3118 5047 3121 5047 3122 5046 3121 5045 3120 5044 3119 5044 3119 5043 3119 5043 3119 5043 3120 5042 3120 5042 3121 5042 3121 5042 3121 5041 3120 5041 3120 5041 3119 5039 3118 5036 3116 5035 3115 5035 3115 5034 3115 5033 3115 5034 3114 5035 3113 5035 3113 5035 3114 5037 3115 5038 3116 5039 3115 5038 3115 5038 3115 5037 3114 5037 3114 5038 3113 5037 3110 5036 3109 5036 3107 5035 3106 5034 3104 5032 3102 5032 3102 5031 3101 5030 3101 5029 3100 5029 3099 5029 3099 5029 3098 5029 3098 5029 3097 5029 3096 5028 3095 5027 3092 5026 3092 5025 3092 5022 3092 5021 3092 5021 3093 5020 3092 5020 3091 5018 3089 5017 3087 5016 3085 5018 3085 5018 3086 5019 3087 5019 3086 5020 3085 5020 3084 5020 3083 5019 3082 5019 3082 5018 3081 5018 3081 5017 3081 5015 3082 5014 3082 5013 3082 5013 3081 5013 3080 5014 3080 5014 3080 5014 3080 5014 3079 5013 3078 5013 3078 5011 3077 5011 3077 5010 3077 5010 3076 5010 3075 5009 3075 5009 3075 5008 3076 5007 3077 5006 3077 5003 3077 5002 3077 5001 3077 5001 3076 5000 3076 5000 3075 4999 3075 4997 3074 4997 3073 4996 3073 4996 3073 4993 3073 4992 3073 4992 3073 4991 3073 4991 3073 4990 3074 4989 3074 4988 3074 4986 3074 4986 3074 4986 3073 4986 3073 4984 3072 4980 3070 4980 3069 4978 3068 4975 3067 4975 3067 4973 3066 4972 3066 4970 3065 4970 3065 4969 3065 4969 3065 4968 3066 4968 3066 4968 3066 4965 3067 4964 3067 4964 3067 4963 3067 4963 3067 4962 3067 4956 3067 4955 3067 4954 3067 4950 3067 4950 3067 4949 3067 4947 3068 4943 3068 4939 3068 4936 3069 4936 3069 4935 3069 4935 3069 4935 3069 4932 3070 4932 3070 4931 3071 4928 3072 4922 3074 4920 3075 4919 3075 4917 3076 4915 3076 4914 3076 4912 3077 4909 3078 4908 3078 4906 3078 4905 3078 4904 3078 4903 3078 4898 3079 4898 3079 4897 3079 4895 3078 4894 3078 4893 3078 4892 3078 4892 3078 4892 3078 4891 3078 4891 3077 4890 3077 4890 3077 4890 3078 4889 3078 4889 3078 4888 3078 4888 3078 4887 3078 4884 3079 4881 3081 4881 3082 4880 3082 4880 3082 4880 3082 4879 3083 4878 3083 4878 3083 4877 3083 4876 3083 4875 3084 4871 3085 4870 3086 4870 3087 4870 3087 4867 3088 4867 3088 4866 3088 4865 3088 4864 3089 4863 3089 4862 3089 4861 3089 4861 3089 4860 3089 4860 3089 4859 3090 4858 3091 4858 3091 4857 3092 4857 3092 4856 3096 4855 3098 4855 3099 4855 3099 4854 3099 4853 3099 4852 3100 4852 3101 4852 3101 4851 3102 4851 3102 4851 3103 4850 3103 4848 3104 4847 3104 4847 3104 4846 3104 4846 3104 4845 3104 4845 3104 4844 3105 4844 3105 4843 3106 4842 3106 4842 3105 4841 3104 4841 3104 4840 3103 4838 3104 4837 3104 4837 3104 4835 3104 4833 3104 4833 3104 4831 3104 4830 3104 4829 3104 4828 3104 4828 3105 4828 3106 4826 3106 4825 3106 4825 3105 4825 3104 4825 3104 4824 3103 4824 3103 4824 3103 4824 3103 4822 3103 4822 3103 4821 3104 4821 3104 4820 3104 4818 3103 4816 3103 4815 3103 4814 3103 4813 3103 4811 3103 4808 3103 4807 3103 4806 3103 4805 3103 4805 3103 4805 3104 4804 3104 4803 3104 4803 3104 4800 3104 4799 3105 4798 3105 4798 3105 4796 3105 4796 3105 4795 3105 4792 3104 4792 3104 4791 3105 4789 3105 4788 3105 4788 3106 4788 3106 4787 3106 4787 3107 4786 3107 4786 3107 4786 3107 4785 3108 4783 3110 4783 3111 4781 3113 4779 3114 4779 3113 4777 3113 4777 3113 4775 3113 4774 3113 4774 3113 4772 3114 4772 3114 4771 3115 4771 3115 4772 3115 4771 3116 4771 3116 4771 3116 4770 3116 4770 3117 4769 3117 4768 3117 4767 3117 4767 3117 4766 3118 4766 3118 4766 3119 4764 3120 4761 3121 4757 3122 4757 3122 4757 3123 4758 3123 4759 3123 4760 3123 4759 3124 4757 3123 4757 3123 4756 3123 4756 3122 4755 3122 4754 3122 4754 3123 4754 3123 4753 3124 4753 3123 4752 3123 4749 3122 4749 3122 4747 3122 4743 3122 4742 3122 4742 3122 4742 3122 4741 3122 4741 3122 4739 3122 4738 3122 4737 3122 4735 3122 4734 3121 4733 3120 4732 3120 4732 3120 4731 3119 4731 3119 4729 3119 4727 3119 4727 3118 4727 3118 4726 3117 4725 3115 4724 3115 4722 3113 4720 3112 4718 3111 4717 3110 4716 3110 4715 3110 4714 3111 4714 3111 4714 3111 4713 3111 4712 3110 4712 3109 4712 3109 4712 3108 4711 3106 4711 3103 4711 3101 4712 3098 4712 3098 4713 3099 4713 3099 4714 3100 4715 3100 4716 3100 4716 3100 4717 3100 4718 3100 4718 3100 4719 3099 4722 3095 4723 3094 4723 3094 4723 3094 4723 3093 4722 3089 4722 3088 4722 3087 4722 3086 4721 3084 4722 3083 4723 3082 4723 3082 4722 3083 4722 3083 4722 3084 4723 3086 4723 3086 4723 3086 4723 3085 4724 3084 4724 3083 4724 3081 4724 3079 4724 3078 4724 3077 4724 3075 4724 3073 4724 3072 4724 3072 4723 3069 4723 3069 4723 3068 4722 3067 4721 3065 4719 3062 4719 3062 4718 3061 4718 3060 4718 3059 4717 3057 4716 3056 4715 3055 4714 3054 4713 3051 4713 3050 4713 3049 4712 3046 4712 3044 4711 3043 4711 3043 4711 3037 4711 3036 4711 3036 4711 3035 4711 3034 4711 3034 4711 3033 4711 3031 4710 3030 4710 3030 4710 3029 4709 3027 4707 3025 4707 3025 4706 3024 4706 3024 4705 3023 4705 3022 4705 3022 4705 3021 4705 3021 4705 3020 4704 3018 4704 3018 4704 3018 4702 3015 4701 3013 4700 3013 4700 3013 4699 3012 4699 3012 4698 3011 4698 3011 4698 3009 4697 3007 4697 3007 4698 3006 4698 3006 4698 3005 4698 3004 4698 3003 4697 3002 4697 3001 4696 3000 4695 2997 4693 2993 4692 2993 4691 2991 4689 2989 4688 2988 4688 2987 4687 2987 4684 2984 4683 2982 4684 2981 4684 2980 4684 2980 4684 2979 4684 2979 4684 2978 4684 2978 4685 2980 4685 2980 4685 2981 4685 2982 4686 2981 4686 2980 4688 2982 4688 2983 4688 2984 4689 2986 4689 2987 4690 2988 4691 2988 4691 2988 4691 2988 4692 2987 4692 2987 4693 2987 4694 2986 4694 2986 4694 2985 4694 2983 4693 2982 4692 2982 4692 2981 4690 2980 4689 2979 4688 2978 4688 2976 4687 2974 4686 2974 4686 2973 4686 2973 4686 2972 4686 2972 4687 2972 4687 2970 4688 2971 4688 2972 4689 2973 4690 2974 4691 2975 4692 2976 4691 2978 4691 2978 4691 2980 4691 2981 4692 2981 4693 2980 4693 2980 4694 2979 4694 2978 4694 2980 4695 2981 4695 2982 4695 2983 4697 2985 4699 2984 4699 2982 4699 2982 4699 2982 4699 2981 4699 2981 4699 2978 4699 2978 4700 2978 4700 2977 4700 2975 4698 2973 4697 2972 4696 2972 4695 2970 4694 2969 4694 2967 4693 2966 4693 2965 4692 2964 4692 2964 4691 2964 4690 2962 4690 2960 4689 2959 4690 2959 4690 2958 4690 2958 4689 2957 4689 2956 4688 2956 4688 2955 4687 2955 4687 2954 4686 2953 4686 2953 4686 2953 4686 2950 4687 2948 4687 2946 4688 2944 4688 2942 4689 2940 4690 2939 4691 2939 4692 2938 4692 2937 4692 2937 4692 2935 4692 2933 4692 2932 4693 2931 4693 2931 4693 2930 4693 2929 4693 2928 4692 2927 4692 2927 4692 2926 4691 2926 4691 2925 4690 2924 4691 2922 4692 2921 4693 2919 4693 2918 4693 2918 4694 2916 4694 2915 4695 2914 4696 2912 4696 2912 4696 2911 4697 2911 4698 2911 4699 2911 4698 2911 4698 2912 4698 2912 4697 2917 4697 2917 4698 2918 4698 2919 4698 2920 4698 2922 4698 2922 4698 2922 4699 2922 4702 2921 4702 2920 4702 2919 4702 2919 4703 2917 4704 2915 4706 2913 4706 2912 4706 2912 4706 2911 4707 2911 4708 2911 4709 2910 4711 2909 4712 2909 4712 2909 4713 2909 4714 2908 4716 2907 4717 2907 4719 2906 4719 2906 4720 2905 4720 2905 4721 2904 4722 2903 4722 2903 4723 2903 4724 2902 4724 2902 4725 2902 4725 2901 4725 2901 4726 2900 4726 2900 4726 2899 4727 2899 4727 2899 4728 2898 4728 2898 4730 2898 4730 2897 4731 2897 4731 2896 4732 2896 4733 2896 4735 2895 4737 2894 4739 2892 4740 2893 4741 2893 4742 2893 4742 2893 4743 2893 4743 2893 4744 2892 4744 2892 4745 2892 4746 2892 4747 2893 4748 2893 4748 2894 4749 2894 4749 2894 4750 2894 4750 2894 4751 2893 4755 2893 4756 2892 4757 2892 4757 2892 4758 2891 4759 2890 4760 2889 4761 2888 4762 2888 4763 2888 4763 2888 4763 2888 4766 2888 4768 2887 4770 2887 4773 2887 4773 2886 4775 2884 4775 2883 4775 2883 4777 2881 4778 2881 4779 2881 4782 2882 4783 2882 4785 2883 4785 2883 4785 2883 4787 2882 4787 2882 4788 2881 4792 2881 4794 2881 4795 2881 4795 2880 4797 2880 4801 2879 4806 2877 4806 2876 4808 2876 4808 2875 4809 2875 4810 2874 4811 2873 4811 2873 4812 2872 4813 2872 4813 2871 4815 2868 4816 2868 4817 2866 4818 2863 4820 2860 4820 2860 4820 2859 4820 2858 4821 2857 4821 2858 4822 2858 4823 2857 4823 2857 4824 2856 4824 2856 4824 2856 4825 2855 4825 2855 4825 2855 4826 2855 4829 2853 4829 2852 4829 2852 4829 2851 4830 2851 4829 2850 4829 2850 4829 2850 4828 2849 4827 2848 4827 2845 4827 2845 4826 2845 4826 2843 4826 2843 4826 2842 4826 2840 4826 2838 4828 2836 4828 2835 4829 2834 4830 2834 4830 2834 4831 2833 4832 2833 4833 2833 4832 2832 4832 2832 4833 2831 4833 2831 4833 2831 4834 2831 4834 2831 4836 2830 4836 2830 4835 2829 4836 2828 4836 2827 4837 2827 4837 2827 4838 2826 4838 2826 4838 2825 4838 2825 4839 2824 4841 2825 4840 2826 4840 2826 4839 2826 4839 2827 4839 2828 4840 2829 4841 2829 4841 2829 4841 2831 4843 2833 4844 2836 4846 2838 4847 2840 4847 2841 4848 2842 4848 2842 4849 2844 4849 2843 4849 2842 4849 2842 4849 2841 4849 2840 4849 2837 4849 2835 4849 2835 4849 2834 4850 2834 4851 2835 4852 2836 4852 2836 4853 2837 4854 2838 4854 2837 4854 2837 4853 2836 4852 2835 4852 2834 4853 2833 4854 2832 4853 2832 4852 2832 4852 2832 4852 2832 4851 2831 4849 2829 4849 2827 4848 2827 4848 2827 4847 2827 4846 2826 4847 2826 4849 2826 4849 2827 4850 2827 4851 2825 4851 2824 4851 2823 4850 2823 4849 2823 4849 2823 4848 2821 4849 2821 4849 2821 4851 2820 4852 2821 4852 2822 4851 2822 4853 2824 4854 2824 4854 2823 4855 2822 4857 2822 4857 2822 4858 2823 4858 2823 4858 2823 4859 2824 4859 2825 4861 2825 4861 2824 4862 2824 4862 2824 4863 2824 4865 2825 4866 2824 4867 2824 4868 2824 4869 2825 4869 2825 4870 2825 4869 2825 4869 2824 4868 2824 4867 2824 4865 2823 4865 2823 4864 2823 4863 2824 4862 2824 4862 2823 4862 2823 4862 2822 4862 2821 4862 2820 4863 2820 4864 2820 4864 2821 4865 2820 4865 2818 4865 2817 4865 2817 4866 2816 4867 2815 4867 2815 4866 2815 4865 2815 4865 2816 4865 2816 4864 2816 4864 2817 4863 2817 4862 2816 4862 2814 4861 2813 4863 2810 4863 2810 4864 2810 4865 2810 4865 2810 4866 2810 4866 2809 4866 2808 4866 2806 4867 2806 4870 2808 4871 2808 4871 2809 4874 2810 4874 2810 4873 2809 4873 2809 4873 2809 4873 2809 4873 2808 4873 2807 4873 2807 4872 2807 4871 2807 4871 2807 4870 2807 4870 2807 4871 2806 4871 2805 4872 2806 4872 2805 4872 2805 4870 2805 4870 2806 4869 2806 4869 2805 4869 2804 4870 2804 4871 2804 4871 2804 4872 2803 4872 2803 4873 2802 4874 2805 4874 2805 4874 2804 4874 2803 4874 2803 4875 2803 4876 2803 4876 2804 4876 2804 4877 2805 4878 2805 4878 2804 4878 2804 4878 2804 4877 2804 4878 2803 4877 2803 4876 2802 4874 2801 4875 2801 4875 2801 4875 2800 4874 2798 4875 2796 4876 2795 4877 2794 4878 2795 4880 2795 4881 2795 4881 2794 4881 2793 4881 2791 4881 2790 4881 2790 4881 2790 4883 2790 4883 2792 4882 2796 4882 2796 4883 2794 4883 2793 4883 2793 4885 2794 4885 2795 4885 2796 4886 2796 4886 2796 4886 2796 4887 2795 4888 2794 4889 2792 4890 2789 4890 2788 4889 2786 4888 2785 4888 2785 4889 2785 4890 2785 4891 2786 4891 2787 4890 2787 4890 2787 4891 2789 4891 2789 4892 2790 4892 2790 4893 2789 4892 2788 4892 2788 4893 2787 4894 2786 4896 2786 4895 2786 4895 2787 4897 2790 4897 2790 4899 2788 4900 2786 4900 2784 4899 2783 4901 2782 4903 2782 4904 2783 4905 2784 4904 2784 4906 2786 4906 2785 4906 2785 4907 2784 4909 2785 4910 2785 4911 2786 4912 2787 4914 2789 4915 2790 4916 2791 4916 2791 4917 2794 4919 2795 4919 2795 4919 2795 4920 2795 4921 2797 4922 2797 4922 2798 4922 2799 4922 2800 4921 2802 4921 2804 4921 2804 4921 2805 4921 2808 4920 2809 4920 2809 4920 2810 4920 2810 4920 2810 4921 2810 4921 2809 4921 2809 4921 2809 4921 2808 4921 2807 4921 2806 4922 2806 4922 2806 4923 2806 4924 2807 4924 2808 4924 2808 4924 2808 4924 2807 4924 2807 4923 2806 4923 2805 4923 2803 4923 2803 4923 2802 4924 2801 4925 2801 4925 2801 4925 2802 4925 2803 4927 2803 4927 2802 4926 2801 4926 2801 4926 2801 4926 2799 4928 2798 4928 2798 4930 2799 4934 2800 4935 2800 4936 2800 4937 2800 4938 2802 4938 2805 4938 2805 4940 2804 4939 2802 4939 2800 4939 2800 4941 2800 4943 2801 4943 2801 4945 2804 4946 2805 4946 2805 4947 2805 4947 2804 4946 2804 4945 2802 4945 2801 4946 2801 4946 2800 4946 2799 4947 2800 4948 2800 4949 2800 4950 2799 4951 2798 4948 2799 4948 2799 4947 2799 4946 2798 4945 2797 4945 2796 4945 2796 4946 2796 4946 2796 4947 2796 4948 2795 4948 2795 4947 2795 4946 2795 4945 2795 4944 2795 4943 2794 4941 2793 4941 2791 4942 2790 4943 2788 4945 2787 4947 2786 4947 2786 4947 2786 4947 2786 4948 2782 4948 2781 4948 2781 4949 2778 4950 2777 4950 2778 4950 2779 4951 2779 4951 2779 4952 2778 4953 2778 4954 2777 4956 2775 4955 2775 4954 2773 4954 2773 4953 2773 4953 2772 4953 2771 4953 2770 4954 2769 4954 2769 4955 2769 4955 2769 4956 2769 4956 2769 4957 2768 4957 2768 4957 2768 4957 2766 4957 2765 4957 2765 4960 2764 4960 2765 4961 2765 4961 2766 4962 2765 4962 2765 4961 2765 4961 2764 4961 2763 4961 2763 4961 2762 4961 2761 4961 2761 4961 2760 4961 2760 4962 2760 4964 2761 4966 2764 4966 2764 4967 2763 4965 2762 4964 2761 4965 2761 4965 2760 4966 2760 4966 2760 4967 2760 4968 2760 4968 2759 4968 2758 4967 2757 4967 2757 4968 2757 4969 2757 4970 2757 4971 2758 4973 2758 4973 2758 4974 2759 4974 2759 4975 2759 4975 2759 4978 2759 4979 2759 4980 2759 4982 2758 4983 2759 4984 2759 4987 2757 4989 2757 4989 2758 4990 2759 4990 2759 4989 2760 4989 2760 4990 2760 4990 2759 4990 2759 4990 2758 4990 2758 4990 2757 4990 2757 4993 2756 4993 2756 4994 2756 4995 2756 4995 2756 4995 2756 4994 2755 4993 2755 4993 2751 4993 2750 4994 2750 4994 2749 4994 2748 4992 2747 4991 2746 4990 2745 4990 2745 4989 2745 4987 2746 4986 2746 4985 2747 4985 2747 4984 2746 4983 2745 4983 2744 4982 2743 4981 2743 4981 2743 4980 2743 4980 2743 4980 2743 4980 2743 4981 2741 4983 2740 4983 2740 4985 2742 4986 2745 4987 2745 4987 2744 4986 2742 4986 2741 4986 2740 4986 2740 4988 2741 4989 2740 4991 2742 4991 2742 4992 2743 4994 2746 4994 2746 4995 2746 4996 2746 4997 2745 4997 2744 4998 2744 4998 2744 4999 2745 5000 2746 5000 2747 5001 2748 5002 2749 5002 2749 5002 2750 5003 2750 5003 2750 5003 2750 5004 2749 5005 2749 5006 2751 5008 2751 5009 2752 5010 2751 5011 2750 5012 2750 5012 2750 5013 2750 5014 2750 5014 2750 5013 2751 5013 2751 5013 2752 5013 2752 5014 2753 5015 2752 5016 2752 5016 2752 5016 2752 5018 2753 5018 2754 5018 2755 5019 2755 5021 2755 5022 2755 5022 2755 5023 2755 5024 2755 5025 2755 5026 2754 5028 2754 5028 2755 5029 2756 5030 2756 5031 2757 5033 2758 5034 2759 5035 2759 5035 2759 5035 2758 5036 2757 5036 2756 5037 2756 5038 2756 5038 2756 5041 2756 5042 2755 5041 2755 5041 2755 5041 2755 5040 2755 5041 2753 5042 2753 5043 2753 5043 2753 5043 2753 5045 2752 5045 2752 5045 2751 5045 2750 5046 2750 5046 2751 5046 2751 5046 2752 5045 2752 5043 2754 5044 2755 5042 2757 5042 2757 5042 2758 5042 2758 5043 2759 5044 2758 5044 2758 5045 2757 5048 2756 5046 2758 5047 2758 5047 2758 5047 2758 5048 2758 5048 2758 5047 2760 5047 2761 5048 2762 5048 2762 5048 2762 5049 2761 5050 2761 5050 2762 5051 2761 5052 2761 5053 2759 5053 2758 5053 2757 5052 2757 5052 2758 5051 2758 5050 2757 5050 2757 5052 2755 5054 2753 5056 2753 5056 2754 5057 2757 5057 2757 5058 2759 5059 2759 5059 2758 5059 2758 5059 2758 5058 2758 5058 2757 5060 2757 5061 2758 5062 2759 5063 2760 5063 2760 5060 2762 5059 2763 5058 2765 5057 2767 5055 2767 5055 2768 5056 2769 5056 2771 5056 2773 5055 2774 5055 2774 5054 2774 5054 2774 5053 2774 5053 2773 5053 2771 5053 2771 5052 2771 5052 2772 5052 2773 5051 2773 5050 2774 5050 2774 5050 2773 5049 2773 5047 2774 5046 2775 5045 2776 5046 2776 5046 2776 5046 2777 5045 2778 5045 2779 5045 2780 5045 2782 5046 2782 5047 2782 5047 2782 5047 2782 5048 2781 5048 2782 5047 2784 5046 2786 5046 2787 5046 2788 5045 2789 5044 2790 5044 2790 5043 2790 5041 2793 5040 2795 5040 2795 5040 2795 5040 2796 5040 2796 5039 2797 5038 2798 5037 2798 5038 2799 5038 2800 5038 2801 5038 2801 5039 2802 5040 2802 5041 2803 5041 2803 5042 2803 5045 2805 5045 2805 5046 2806 5046 2806 5046 2806 5048 2807 5051 2808 5051 2809 5051 2810 5051 2811 5052 2811 5052 2812 5053 2812 5055 2813 5056 2814 5057 2814 5058 2815 5059 2816 5059 2817 5061 2817 5062 2817 5064 2817 5065 2818 5068 2819 5068 2819 5069 2820 5069 2820 5070 2821 5071 2821 5071 2821 5072 2821 5073 2821 5074 2821 5075 2822 5076 2823 5076 2823 5076 2824 5077 2825 5077 2825 5078 2826 5079 2826 5079 2827 5080 2828 5081 2829 5082 2829 5082 2829 5084 2830 5086 2830 5087 2831 5087 2831 5087 2831 5089 2831 5089 2831 5090 2831 5090 2831 5093 2832 5093 2832 5094 2832 5094 2832 5095 2832 5095 2832 5096 2833 5097 2835 5097 2836 5097 2836 5098 2837 5098 2837 5099 2839 5099 2839 5099 2839 5100 2840 5101 2840 5101 2840 5102 2840 5102 2840 5104 2841 5105 2842 5105 2842 5105 2843 5106 2843 5106 2843 5107 2843 5108 2843 5108 2843 5109 2844 5110 2845 5111 2845 5111 2845 5112 2846 5113 2846 5117 2845 5117 2845 5119 2844 5120 2844 5121 2843 5121 2843 5122 2843 5123 2842 5124 2841 5124 2841 5124 2841 5125 2841 5125 2840 5125 2840 5126 2836 5126 2836 5126 2835 5126 2834 5126 2834 5127 2834 5128 2832 5130 2830 5130 2829 5131 2829 5131 2827 5132 2826 5132 2825 5132 2824 5132 2823 5133 2822 5134 2820 5134 2819 5133 2817 5134 2814 5134 2813 5134 2813 5134 2811 5135 2810 5136 2807 5137 2804 5138 2803 5138 2802 5137 2801 5137 2801 5137 2800 5137 2800 5136 2798 5135 2794 5135 2793 5136 2792 5136 2792 5136 2791 5136 2791 5137 2790 5137 2789 5137 2788 5137 2788 5136 2787 5136 2787 5135 2786 5135 2786 5135 2785 5135 2785 5135 2784 5135 2784 5135 2783 5135 2783 5135 2782 5135 2781 5135 2781 5135 2780 5136 2779 5136 2778 5137 2777 5138 2775 5138 2774 5138 2774 5138 2773 5137 2773 5137 2773 5136 2770 5137 2769 5137 2769 5137 2769 5138 2768 5139 2768 5139 2767 5139 2767 5140 2766 5140 2765 5140 2765 5141 2765 5141 2766 5141 2767 5141 2767 5141 2768 5142 2769 5142 2768 5141 2765 5140 2765 5139 2763 5139 2762 5139 2762 5139 2762 5139 2761 5138 2761 5138 2762 5138 2763 5138 2763 5137 2763 5137 2763 5137 2763 5137 2762 5137 2762 5138 2761 5138 2760 5138 2759 5139 2758 5139 2758 5139 2757 5140 2755 5140 2755 5141 2754 5141 2754 5141 2754 5142 2756 5143 2755 5144 2755 5143 2754 5142 2754 5142 2753 5142 2752 5143 2751 5144 2747 5144 2746 5145 2745 5145 2744 5145 2744 5146 2741 5146 2740 5146 2740 5145 2739 5145 2739 5145 2738 5145 2737 5146 2737 5146 2737 5148 2737 5149 2737 5149 2735 5150 2735 5150 2735 5150 2734 5150 2734 5151 2734 5152 2734 5153 2734 5152 2735 5151 2736 5151 2737 5152 2737 5152 2736 5152 2736 5153 2736 5155 2738 5155 2738 5156 2739 5156 2741 5157 2744 5157 2744 5156 2746 5157 2748 5157 2750 5157 2750 5157 2751 5157 2752 5157 2752 5159 2753 5159 2753 5159 2753 5160 2753 5160 2753 5160 2753 5161 2753 5161 2753 5162 2754 5162 2755 5161 2755 5161 2756 5160 2758 5160 2759 5160 2760 5161 2760 5162 2760 5162 2760 5163 2760 5163 2760 5163 2761 5163 2761 5163 2762 5163 2762 5164 2763 5165 2763 5166 2764 5166 2764 5166 2765 5165 2766 5165 2766 5165 2767 5165 2767 5165 2768 5166 2768 5167 2768 5167 2768 5167 2768 5167 2770 5167 2771 5167 2771 5167 2772 5167 2774 5167 2775 5167 2776 5168 2776 5168 2776 5169 2777 5168 2779 5168 2779 5168 2780 5168 2782 5168 2783 5169 2785 5169 2785 5169 2786 5170 2786 5170 2786 5170 2787 5170 2788 5170 2789 5170 2790 5171 2791 5171 2792 5172 2793 5172 2793 5172 2793 5173 2794 5173 2794 5174 2794 5174 2794 5175 2794 5176 2793 5177 2792 5180 2791 5181 2791 5182 2790 5182 2790 5182 2789 5183 2789 5183 2789 5183 2789 5184 2790 5184 2790 5184 2791 5184 2792 5185 2794 5186 2795 5188 2796 5188 2796 5189 2796 5189 2796 5190 2797 5190 2798 5190 2798 5191 2798 5192 2799 5194 2800 5196 2801 5196 2802 5196 2803 5195 2803 5195 2803 5195 2804 5195 2804 5195 2805 5195 2805 5195 2806 5196 2807 5196 2807 5195 2809 5195 2810 5196 2811 5197 2814 5197 2814 5197 2815 5197 2816 5197 2817 5197 2817 5197 2817 5198 2817 5198 2819 5198 2819 5198 2823 5198 2823 5198 2823 5197 2825 5198 2826 5198 2826 5199 2827 5201 2829 5202 2830 5203 2831 5203 2832 5204 2833 5204 2832 5206 2832 5206 2832 5206 2834 5205 2834 5205 2835 5205 2835 5206 2837 5207 2840 5208 2843 5209 2845 5208 2847 5209 2848 5208 2849 5208 2850 5208 2850 5208 2851 5207 2852 5207 2853 5207 2854 5207 2854 5210 2858 5211 2858 5211 2858 5212 2858 5212 2859 5212 2859 5212 2860 5212 2860 5212 2861 5212 2861 5211 2862 5211 2864 5211 2864 5212 2865 5213 2866 5214 2866 5214 2867 5216 2868 5217 2869 5217 2869 5218 2869 5219 2869 5219 2869 5220 2870 5221 2871 5222 2871 5224 2871 5225 2872 5225 2872 5227 2873 5230 2873 5230 2872 5230 2872 5230 2871 5229 2871 5230 2871 5230 2872 5232 2875 5232 2875 5232 2876 5232 2877 5232 2878 5233 2878 5234 2879 5234 2879 5235 2879 5235 2879 5235 2878 5235 2877 5236 2877 5237 2878 5237 2879 5237 2880 5237 2880 5238 2881 5238 2881 5239 2881 5240 2881 5242 2881 5243 2882 5244 2883 5243 2883 5243 2883 5244 2884 5245 2885 5246 2885 5246 2884 5246 2884 5246 2883 5247 2883 5248 2884 5249 2885 5250 2885 5251 2886 5252 2886 5252 2888 5253 2889 5253 2889 5253 2889 5254 2890 5253 2890 5253 2890 5253 2890 5252 2890 5252 2889 5251 2890 5250 2891 5250 2892 5251 2893 5252 2895 5254 2896 5255 2897 5257 2898 5258 2899 5258 2900 5259 2902 5259 2903 5260 2903 5260 2905 5261 2906 5262 2907 5262 2908 5262 2910 5262 2912 5263 2915 5264 2918 5265 2919 5266 2919 5266 2920 5266 2921 5266 2922 5266 2922 5267 2921 5267 2921 5268 2920 5270 2923 5270 2923 5270 2923 5271 2924 5271 2923 5271 2921 5270 2920 5270 2919 5270 2919 5270 2917 5270 2917 5271 2916 5272 2916 5272 2916 5273 2918 5274 2919 5274 2920 5274 2920 5275 2920 5276 2921 5277 2921 5278 2922 5278 2922 5280 2923 5280 2923 5279 2921 5279 2920 5280 2919 5281 2919 5282 2921 5282 2922 5282 2923 5283 2924 5284 2926 5284 2926 5283 2928 5283 2929 5283 2932 5284 2934 5284 2935 5284 2935 5284 2936 5285 2938 5286 2939 5287 2939 5287 2939 5288 2940 5289 2940 5289 2941 5289 2942 5289 2943 5291 2943 5291 2943 5292 2944 5293 2945 5294 2945 5294 2946 5295 2946 5296 2946 5295 2947 M 5055 2745 5055 2745 5055 2745 5057 2742 5059 2739 5059 2739 5059 2738 5060 2739 5060 2739 5059 2741 5059 2741 5056 2745 5056 2745 5055 2745 M 4993 2744 4993 2744 4993 2743 4992 2743 4992 2742 4992 2740 4991 2739 4993 2739 4993 2739 4993 2740 4993 2741 4993 2742 4993 2743 4993 2744 M 4967 2753 4965 2752 4965 2752 4964 2752 4962 2751 4960 2749 4959 2748 4958 2745 4957 2742 4957 2742 4957 2741 4958 2741 4960 2743 4961 2744 4963 2744 4964 2744 4965 2744 4965 2744 4966 2743 4967 2743 4967 2744 4968 2743 4969 2742 4970 2742 4970 2743 4970 2743 4971 2745 4971 2744 4971 2744 4970 2743 4971 2742 4971 2742 4971 2741 4972 2741 4974 2742 4976 2744 4976 2745 4976 2746 4976 2746 4975 2747 4972 2750 4971 2750 4969 2751 4968 2752 4967 2753 4967 2753 M 4959 2752 4957 2751 4956 2751 4955 2751 4955 2751 4955 2751 4954 2751 4954 2751 4953 2751 4953 2752 4952 2751 4952 2751 4952 2751 4953 2749 4953 2749 4953 2749 4953 2749 4953 2749 4954 2749 4954 2749 4954 2749 4954 2749 4955 2749 4954 2747 4954 2746 4955 2744 4957 2743 4958 2745 4958 2745 4958 2747 4959 2749 4960 2749 4961 2750 4961 2750 4961 2750 4961 2750 4962 2751 4961 2751 4961 2751 4960 2751 4959 2752 M 5050 2749 5050 2749 5050 2748 5052 2747 5052 2747 5053 2747 5054 2747 5054 2746 5054 2746 5055 2746 5055 2746 5055 2746 5053 2748 5053 2748 5051 2749 5050 2749 5050 2749 M 5062 2789 5062 2789 5062 2789 5063 2789 5062 2791 5062 2791 5062 2791 5061 2791 5061 2791 5061 2791 5059 2790 5059 2790 5059 2790 5058 2790 5057 2791 5053 2790 5054 2787 5054 2786 5054 2784 5055 2784 5056 2783 5057 2783 5057 2783 5057 2783 5057 2782 5058 2781 5059 2781 5059 2781 5059 2781 5059 2781 5059 2782 5058 2782 5058 2782 5058 2782 5059 2784 5060 2784 5060 2784 5060 2784 5061 2783 5061 2783 5061 2783 5060 2783 5061 2782 5061 2782 5062 2782 5062 2782 5062 2783 5061 2784 5060 2785 5060 2785 5060 2785 5060 2785 5059 2785 5058 2787 5058 2788 5059 2789 5059 2789 5059 2789 5060 2789 5061 2789 5061 2789 5062 2789 5062 2789 5062 2789 M 5050 2784 5050 2783 5050 2783 5050 2783 5050 2782 5050 2782 5050 2783 5050 2783 5050 2783 5050 2783 5050 2784 5049 2783 5049 2783 5049 2782 5050 2781 5050 2781 5051 2781 5052 2781 5052 2782 5052 2783 5051 2784 5051 2784 5050 2784 M 4874 2796 4874 2796 4873 2796 4873 2796 4873 2795 4873 2794 4874 2793 4874 2793 4874 2793 4875 2794 4874 2796 4874 2796 4874 2796 M 4864 2809 4864 2809 4863 2808 4863 2807 4863 2807 4864 2806 4864 2806 4866 2808 4866 2809 4864 2809 M 5056 2812 5055 2812 5055 2812 5056 2811 5056 2810 5057 2810 5057 2811 5057 2812 5057 2812 5056 2812 5056 2812 M 5064 2815 5064 2815 5063 2815 5063 2815 5062 2814 5062 2813 5062 2813 5062 2812 5063 2812 5063 2812 5064 2812 5064 2813 5065 2814 5065 2815 5064 2815 5064 2815 M 5098 2830 5097 2830 5097 2829 5097 2829 5098 2828 5098 2828 5099 2826 5100 2826 5100 2826 5100 2825 5100 2825 5101 2825 5102 2825 5103 2825 5104 2825 5107 2825 5107 2825 5107 2826 5107 2826 5106 2826 5105 2827 5104 2826 5103 2827 5103 2827 5102 2829 5102 2829 5100 2829 5099 2830 5098 2830 5098 2830 M 5102 2836 5102 2836 5102 2836 5102 2836 5102 2835 5103 2834 5104 2834 5104 2835 5104 2836 5104 2836 5104 2836 5103 2836 5103 2836 5102 2836 5102 2836 5102 2836 5102 2836 5102 2836 M 5212 2858 5211 2858 5210 2857 5210 2857 5210 2857 5210 2857 5210 2857 5210 2856 5210 2856 5210 2856 5210 2856 5209 2855 5209 2855 5209 2855 5209 2855 5208 2854 5208 2854 5209 2854 5209 2854 5211 2854 5211 2855 5213 2857 5212 2858 5212 2858 5212 2858 M 4718 2896 4718 2896 4717 2896 4717 2896 4717 2896 4717 2896 4717 2895 4717 2895 4717 2895 4717 2894 4718 2893 4719 2893 4719 2893 4719 2893 4719 2894 4719 2894 4719 2894 4719 2894 4718 2896 4718 2896 4718 2896 M 5290 2942 5290 2942 5290 2942 5290 2942 5289 2941 5289 2940 5288 2940 5288 2939 5287 2939 5287 2938 5287 2937 5288 2937 5289 2938 5290 2938 5290 2939 5291 2941 5292 2942 5291 2942 5290 2942 M 5320 2975 5320 2975 5320 2975 5319 2974 5319 2974 5319 2973 5318 2972 5318 2971 5318 2971 5318 2971 5319 2969 5319 2969 5319 2969 5319 2968 5319 2968 5320 2968 5320 2967 5320 2966 5320 2966 5320 2965 5320 2964 5321 2964 5321 2963 5322 2963 5322 2963 5322 2962 5322 2962 5323 2962 5323 2962 5323 2961 5323 2961 5323 2961 5323 2960 5322 2960 5322 2959 5322 2959 5322 2959 5321 2959 5321 2959 5322 2958 5322 2958 5322 2958 5322 2958 5323 2957 5323 2957 5323 2957 5323 2957 5323 2958 5323 2958 5323 2959 5323 2959 5323 2959 5323 2960 5323 2960 5323 2960 5323 2961 5324 2961 5324 2961 5324 2961 5324 2961 5325 2961 5325 2962 5325 2962 5325 2962 5324 2965 5323 2966 5323 2967 5322 2968 5321 2970 5320 2972 5320 2972 5320 2973 5320 2973 5320 2973 5320 2974 5320 2974 5320 2974 5320 2974 5320 2975 M 4683 2980 4683 2980 4680 2977 4679 2974 4678 2972 4678 2971 4678 2971 4678 2970 4679 2970 4679 2970 4679 2970 4680 2970 4680 2970 4680 2970 4680 2970 4680 2971 4680 2971 4680 2972 4681 2974 4681 2975 4682 2976 4682 2977 4683 2978 4683 2978 4683 2978 4683 2978 4683 2980 4683 2980 4683 2980 M 5326 3000 5325 2999 5325 2998 5325 2998 5325 2997 5324 2997 5324 2995 5325 2995 5326 2994 5326 2994 5326 2994 5326 2995 5326 2995 5326 2995 5326 2995 5325 2997 5325 2997 5325 2997 5325 2997 5325 2997 5325 2998 5326 3000 M 5325 3005 5325 3005 5325 3005 5325 3005 5325 3004 5325 3003 5325 3002 5326 3000 5326 3000 5327 3000 5327 3001 5327 3001 5327 3002 5327 3003 5326 3004 5326 3004 5326 3005 5326 3005 5325 3005 M 5078 3133 5079 3133 5080 3133 5080 3134 5081 3135 5081 3135 5080 3136 5079 3136 5078 3136 5078 3136 5076 3135 5076 3135 5075 3135 5073 3136 5073 3137 5073 3137 5073 3138 5073 3138 5071 3139 5070 3139 5069 3138 5069 3138 5067 3137 5066 3137 5066 3138 5066 3138 5064 3138 5062 3138 5059 3138 5059 3138 5058 3138 5057 3137 5056 3137 5056 3136 5056 3136 5057 3134 5062 3133 5062 3132 5063 3132 5064 3132 5064 3132 5065 3132 5067 3132 5068 3131 5069 3131 5072 3131 5073 3132 5073 3133 5073 3133 5074 3134 5076 3134 5076 3134 5077 3134 5077 3134 5077 3134 5078 3133 M 5197 3176 5196 3176 5196 3176 5195 3175 5195 3175 5196 3174 5196 3174 5198 3175 5199 3175 5199 3175 5199 3175 5199 3175 5198 3175 5198 3175 5197 3176 5197 3176 5197 3176 M 5197 3179 5196 3178 5196 3178 5196 3178 5196 3178 5195 3178 5195 3178 5195 3178 5195 3178 5194 3178 5193 3178 5193 3178 5194 3177 5194 3177 5194 3177 5194 3177 5195 3177 5195 3177 5196 3177 5196 3177 5197 3178 5197 3179 M 5174 3204 5174 3204 5173 3203 5173 3202 5173 3202 5173 3201 5173 3201 5173 3201 5173 3201 5172 3200 5172 3200 5172 3199 5173 3197 5173 3197 5173 3196 5174 3196 5174 3196 5174 3196 5174 3196 5174 3196 5174 3195 5174 3195 5174 3195 5174 3195 5175 3195 5175 3195 5176 3195 5177 3196 5177 3196 5177 3198 5177 3199 5177 3200 5177 3201 5177 3202 5175 3203 5174 3203 5174 3204 M 5241 3206 5241 3206 5241 3206 5240 3205 5240 3205 5240 3205 5239 3204 5239 3204 5237 3201 5236 3200 5235 3200 5235 3199 5235 3199 5237 3197 5238 3197 5238 3197 5238 3197 5239 3197 5240 3199 5242 3200 5242 3200 5242 3201 5242 3201 5243 3201 5243 3201 5243 3201 5244 3204 5244 3205 5244 3205 5244 3205 5242 3205 5241 3206 M 5244 3209 5244 3209 5244 3209 5244 3208 5244 3208 5244 3208 5241 3209 5241 3209 5241 3209 5240 3209 5240 3209 5239 3208 5239 3208 5239 3208 5239 3208 5239 3207 5240 3207 5240 3207 5240 3207 5241 3207 5241 3207 5241 3207 5242 3207 5242 3207 5243 3207 5244 3206 5244 3206 5244 3206 5245 3206 5247 3208 5247 3208 5246 3208 5245 3209 5245 3209 5244 3209 M 5189 3213 5189 3213 5189 3213 5189 3212 5190 3211 5191 3212 5191 3212 5190 3213 5189 3213 M 5222 3259 5221 3259 5220 3260 5220 3259 5219 3259 5218 3259 5217 3258 5215 3258 5212 3258 5211 3258 5211 3257 5211 3257 5209 3258 5208 3257 5206 3255 5207 3255 5209 3255 5209 3255 5211 3256 5211 3254 5210 3254 5209 3254 5209 3255 5205 3254 5204 3254 5203 3252 5203 3251 5200 3249 5200 3249 5200 3249 5199 3249 5198 3248 5198 3247 5197 3246 5197 3244 5196 3243 5195 3243 5195 3241 5194 3238 5194 3237 5195 3237 5195 3238 5196 3238 5197 3239 5198 3239 5198 3240 5198 3241 5198 3241 5198 3242 5199 3242 5200 3239 5199 3238 5198 3239 5195 3236 5195 3236 5195 3235 5195 3235 5195 3234 5194 3232 5192 3231 5190 3229 5189 3226 5187 3224 5187 3222 5186 3221 5186 3220 5186 3219 5185 3218 5185 3218 5185 3216 5185 3216 5186 3216 5186 3215 5186 3215 5186 3214 5187 3213 5191 3213 5192 3214 5192 3214 5193 3215 5195 3214 5196 3215 5200 3216 5203 3217 5205 3218 5210 3220 5210 3220 5211 3220 5213 3220 5213 3220 5214 3220 5215 3220 5216 3220 5216 3220 5216 3220 5217 3219 5219 3218 5219 3219 5219 3219 5220 3219 5220 3220 5221 3220 5222 3220 5222 3220 5221 3219 5220 3219 5220 3219 5220 3218 5221 3218 5223 3217 5224 3217 5225 3217 5225 3217 5225 3218 5226 3218 5226 3217 5229 3217 5230 3218 5230 3217 5231 3217 5231 3217 5232 3216 5232 3215 5232 3215 5233 3215 5234 3215 5234 3215 5236 3216 5236 3216 5237 3215 5237 3215 5238 3215 5238 3215 5238 3214 5238 3214 5238 3213 5239 3213 5240 3214 5242 3215 5243 3216 5244 3217 5244 3217 5244 3217 5244 3219 5244 3219 5243 3219 5243 3220 5243 3221 5244 3222 5244 3223 5243 3224 5243 3225 5243 3226 5244 3226 5244 3227 5244 3227 5244 3229 5243 3230 5243 3230 5244 3234 5244 3234 5244 3235 5245 3235 5245 3237 5244 3237 5244 3238 5244 3238 5244 3238 5243 3237 5243 3237 5244 3237 5244 3236 5243 3233 5242 3232 5240 3235 5239 3242 5238 3242 5238 3243 5238 3244 5238 3245 5238 3245 5237 3245 5237 3246 5236 3247 5237 3248 5237 3247 5237 3247 5237 3247 5238 3247 5239 3248 5239 3249 5238 3249 5238 3251 5239 3251 5239 3252 5239 3253 5238 3253 5237 3252 5236 3253 5236 3253 5234 3252 5233 3250 5233 3250 5234 3248 5234 3248 5235 3249 5235 3249 5234 3249 5235 3250 5235 3250 5236 3250 5237 3250 5237 3250 5236 3248 5232 3247 5232 3247 5231 3247 5231 3248 5231 3248 5232 3249 5231 3250 5231 3250 5230 3250 5229 3249 5230 3249 5229 3248 5229 3247 5228 3247 5228 3248 5228 3249 5228 3249 5228 3250 5227 3250 5227 3251 5227 3252 5227 3253 5227 3253 5227 3254 5226 3254 5226 3254 5224 3253 5224 3252 5223 3252 5223 3252 5223 3251 5223 3251 5222 3251 5222 3252 5222 3252 5222 3253 5223 3253 5223 3253 5224 3253 5224 3254 5224 3255 5223 3256 5222 3258 5222 3259 5222 3259 M 5239 3245 5239 3245 5239 3244 5239 3243 5239 3243 5240 3243 5241 3243 5242 3244 5242 3244 5241 3244 5240 3244 5240 3245 5239 3245 M 5229 3254 5228 3252 5228 3251 5229 3251 5229 3251 5230 3253 5230 3253 5230 3253 5229 3254 M 5228 3258 5227 3257 5226 3257 5225 3256 5226 3255 5228 3254 5228 3254 5228 3254 5229 3255 5229 3255 5229 3256 5228 3257 5228 3257 5228 3258 M 5413 3437 5412 3437 5412 3437 5412 3436 5412 3436 5412 3435 5413 3433 5413 3433 5414 3433 5414 3434 5414 3434 5414 3434 5414 3435 5413 3435 5413 3436 5413 3436 5413 3436 5413 3436 5413 3437" />
+<path id="at" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3042 1814 3043 1813 3042 1812 3041 1812 3040 1812 3040 1813 3040 1813 3038 1814 3037 1814 3037 1814 3037 1814 3036 1814 3036 1814 3034 1813 3033 1813 3033 1812 3033 1812 3033 1811 3030 1811 3029 1811 3028 1811 3028 1811 3029 1810 3029 1810 3029 1809 3028 1808 3027 1807 3027 1807 3029 1806 3029 1806 3029 1806 3029 1804 3028 1804 3028 1804 3028 1803 3028 1803 3028 1803 3029 1803 3030 1803 3030 1803 3031 1803 3031 1802 3032 1802 3034 1803 3035 1804 3038 1806 3038 1807 3037 1807 3038 1807 3039 1807 3040 1807 3042 1805 3042 1805 3042 1804 3042 1803 3042 1803 3042 1802 3044 1803 3046 1803 3049 1804 3050 1805 3051 1805 3051 1805 3052 1805 3055 1805 3058 1804 3059 1804 3060 1804 3060 1803 3062 1802 3065 1802 3067 1802 3068 1802 3068 1802 3069 1802 3070 1802 3070 1802 3070 1801 3074 1801 3075 1802 3076 1802 3076 1802 3076 1801 3077 1801 3078 1801 3080 1802 3080 1802 3079 1802 3080 1803 3082 1804 3083 1804 3083 1804 3084 1802 3084 1801 3084 1801 3083 1800 3083 1800 3081 1800 3082 1799 3082 1799 3083 1798 3082 1797 3081 1797 3080 1796 3080 1796 3080 1795 3079 1795 3079 1795 3079 1794 3081 1793 3083 1792 3085 1791 3087 1791 3087 1791 3088 1791 3088 1791 3089 1790 3089 1790 3090 1789 3090 1788 3090 1787 3091 1786 3092 1787 3093 1787 3093 1787 3094 1788 3095 1787 3096 1786 3096 1784 3096 1783 3096 1784 3097 1784 3099 1784 3099 1785 3102 1786 3103 1787 3105 1786 3106 1786 3107 1786 3108 1786 3109 1786 3110 1787 3110 1786 3110 1786 3110 1785 3110 1785 3112 1783 3112 1783 3113 1783 3114 1783 3114 1781 3114 1780 3115 1780 3115 1780 3116 1780 3117 1780 3119 1780 3120 1780 3121 1780 3122 1781 3123 1781 3123 1781 3124 1781 3124 1781 3126 1782 3127 1782 3128 1782 3130 1783 3131 1783 3132 1784 3132 1784 3132 1784 3136 1784 3137 1784 3137 1784 3137 1783 3138 1783 3139 1783 3141 1783 3142 1784 3143 1784 3144 1784 3144 1784 3145 1784 3145 1785 3146 1786 3146 1787 3145 1787 3145 1788 3144 1788 3144 1789 3144 1790 3145 1791 3146 1791 3146 1792 3146 1793 3146 1793 3147 1794 3148 1794 3148 1794 3148 1795 3149 1796 3149 1796 3148 1796 3147 1798 3147 1798 3147 1799 3148 1800 3148 1800 3147 1800 3146 1801 3145 1801 3144 1801 3143 1801 3142 1801 3142 1800 3141 1800 3140 1800 3139 1800 3138 1801 3137 1801 3138 1801 3140 1802 3141 1802 3141 1802 3142 1803 3142 1803 3141 1804 3140 1805 3138 1805 3138 1805 3138 1806 3138 1807 3138 1808 3138 1808 3137 1808 3138 1809 3139 1810 3139 1812 3138 1812 3137 1812 3136 1812 3135 1812 3135 1812 3135 1812 3133 1814 3132 1814 3131 1814 3130 1814 3130 1816 3128 1816 3128 1816 3127 1816 3124 1817 3121 1817 3117 1817 3116 1817 3116 1817 3115 1817 3112 1818 3112 1819 3112 1819 3112 1820 3107 1821 3106 1821 3101 1821 3101 1820 3100 1820 3100 1820 3098 1820 3096 1819 3095 1819 3094 1819 3092 1819 3092 1819 3089 1819 3087 1819 3080 1818 3079 1817 3079 1817 3079 1817 3078 1818 3078 1817 3076 1817 3076 1817 3074 1817 3074 1817 3073 1817 3073 1816 3071 1814 3070 1814 3070 1813 3069 1813 3069 1812 3069 1812 3070 1811 3070 1811 3070 1811 3070 1810 3070 1810 3069 1810 3068 1811 3063 1812 3062 1812 3062 1812 3061 1812 3058 1812 3054 1812 3053 1813 3052 1813 3052 1814 3052 1815 3051 1815 3049 1815 3048 1815 3047 1815 3047 1815 3046 1814 3045 1814 3044 1814 3044 1814 3043 1814 3042 1814 3042 1814" />
+<path id="ai" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1866 2272 1866 2272 1866 2272 1868 2271 1868 2271 1869 2271 1869 2271 1869 2271 1868 2272 1868 2272 1868 2272 1867 2272 1866 2272 1866 2272" />
+<path id="aq" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2154 3533 2154 3533 2153 3533 2153 3532 2150 3532 2150 3532 2150 3532 2149 3531 2146 3531 2145 3531 2144 3531 2144 3530 2141 3531 2141 3531 2140 3531 2140 3531 2140 3530 2141 3529 2141 3529 2141 3529 2144 3529 2145 3529 2145 3529 2147 3530 2147 3530 2148 3530 2148 3529 2148 3529 2148 3529 2149 3530 2150 3530 2150 3530 2152 3531 2153 3531 2154 3532 2154 3533 M 2161 3533 2160 3533 2160 3533 2161 3533 2163 3532 2163 3532 2164 3532 2164 3532 2165 3532 2163 3533 2162 3533 2162 3533 2161 3533 M 1993 3541 1992 3541 1992 3541 1992 3541 1991 3541 1991 3541 1991 3540 1990 3540 1989 3539 1989 3539 1989 3538 1990 3538 1990 3538 1990 3538 1990 3538 1991 3538 1993 3538 1995 3538 1997 3538 1998 3538 2000 3538 2002 3538 2002 3538 2002 3538 2002 3538 2002 3538 2002 3539 2001 3539 2001 3539 2000 3539 2000 3539 1999 3539 1997 3539 1996 3539 1996 3539 1996 3539 1994 3540 1994 3541 1993 3541 M 2012 3541 2010 3541 2009 3541 2009 3541 2012 3538 2012 3538 2012 3538 2012 3538 2012 3540 2012 3540 2012 3540 2012 3541 2012 3541 2012 3541 2012 3541 M 1939 3557 1938 3557 1935 3556 1934 3556 1933 3556 1933 3556 1933 3556 1933 3556 1934 3555 1936 3554 1938 3553 1938 3553 1939 3553 1939 3553 1940 3553 1941 3552 1941 3552 1942 3552 1942 3552 1942 3552 1943 3552 1944 3552 1944 3552 1945 3552 1945 3552 1947 3552 1947 3552 1948 3551 1948 3551 1948 3551 1949 3551 1949 3551 1949 3551 1950 3552 1950 3552 1951 3552 1951 3552 1951 3552 1952 3552 1952 3552 1952 3552 1952 3552 1952 3551 1953 3551 1953 3551 1954 3551 1954 3551 1954 3551 1955 3551 1955 3551 1955 3553 1955 3553 1955 3553 1954 3553 1954 3553 1953 3553 1953 3553 1953 3553 1950 3554 1950 3554 1949 3554 1949 3554 1948 3554 1948 3554 1947 3554 1947 3554 1947 3554 1947 3554 1946 3555 1946 3555 1946 3555 1945 3555 1945 3556 1945 3556 1944 3556 1944 3555 1944 3555 1943 3555 1943 3555 1943 3555 1943 3555 1943 3554 1943 3554 1943 3554 1944 3554 1944 3554 1944 3554 1944 3554 1944 3554 1944 3554 1943 3554 1943 3554 1943 3554 1942 3554 1942 3554 1942 3554 1940 3555 1940 3555 1940 3555 1940 3555 1940 3555 1940 3555 1941 3555 1941 3555 1941 3555 1941 3555 1942 3555 1942 3555 1942 3555 1942 3556 1942 3556 1942 3556 1941 3556 1941 3556 1941 3556 1940 3557 1939 3557 M 1933 3558 1932 3558 1931 3558 1931 3558 1930 3558 1929 3558 1929 3557 1930 3557 1930 3557 1930 3557 1931 3557 1931 3557 1932 3557 1932 3557 1933 3557 1935 3557 1935 3557 1935 3557 1936 3558 1935 3558 1935 3558 1935 3558 1935 3558 1934 3558 1934 3558 1933 3558 M 1925 3560 1925 3560 1924 3560 1922 3559 1922 3559 1922 3558 1923 3558 1923 3558 1924 3558 1924 3558 1924 3558 1927 3559 1927 3559 1927 3559 1927 3559 1927 3560 1927 3560 1927 3560 1926 3560 1926 3560 1925 3560 M 1922 3562 1921 3562 1919 3561 1918 3561 1918 3561 1917 3560 1917 3560 1917 3560 1917 3560 1918 3560 1921 3560 1921 3560 1921 3560 1924 3560 1924 3561 1924 3561 1924 3561 1924 3561 1923 3561 1922 3562 1922 3562 1922 3562 M 1912 3565 1912 3565 1912 3565 1912 3565 1910 3564 1910 3564 1910 3564 1910 3563 1911 3563 1911 3563 1911 3563 1911 3563 1911 3563 1907 3563 1906 3563 1906 3563 1906 3563 1906 3563 1905 3563 1905 3563 1905 3563 1905 3563 1904 3563 1904 3563 1904 3563 1904 3563 1903 3563 1902 3563 1901 3563 1901 3563 1900 3563 1900 3563 1899 3563 1899 3563 1898 3563 1898 3562 1898 3562 1898 3562 1899 3562 1899 3562 1900 3562 1900 3562 1901 3562 1901 3562 1902 3562 1903 3562 1904 3562 1904 3561 1904 3561 1904 3560 1904 3560 1904 3560 1904 3560 1906 3560 1906 3561 1906 3561 1906 3561 1906 3561 1907 3561 1908 3562 1908 3562 1908 3562 1909 3562 1909 3562 1911 3561 1912 3561 1912 3561 1914 3561 1914 3561 1914 3560 1914 3560 1915 3560 1915 3560 1915 3560 1915 3560 1916 3561 1916 3561 1916 3561 1916 3562 1916 3562 1916 3562 1917 3563 1917 3563 1917 3563 1918 3562 1919 3562 1919 3562 1920 3563 1919 3563 1919 3563 1919 3563 1917 3564 1916 3564 1913 3565 1913 3565 1912 3565 M 1895 3566 1894 3566 1894 3566 1893 3566 1893 3565 1893 3565 1893 3565 1893 3565 1893 3565 1893 3565 1896 3564 1896 3564 1897 3564 1898 3564 1898 3564 1898 3564 1897 3565 1896 3566 1895 3566 1895 3566 1895 3566 M 1873 3570 1873 3570 1873 3570 1873 3570 1875 3569 1877 3568 1877 3568 1877 3567 1877 3567 1878 3567 1878 3567 1880 3567 1880 3567 1880 3567 1881 3567 1880 3567 1880 3567 1879 3569 1879 3569 1879 3569 1876 3570 1875 3570 1874 3570 1874 3570 1874 3570 1873 3570 M 1907 3569 1907 3569 1907 3569 1905 3569 1905 3568 1905 3568 1905 3568 1905 3568 1905 3567 1905 3567 1906 3567 1906 3567 1907 3567 1907 3567 1908 3567 1908 3567 1909 3567 1909 3567 1909 3567 1909 3567 1909 3568 1909 3568 1909 3568 1909 3568 1908 3568 1908 3568 1908 3568 1908 3568 1907 3567 1907 3567 1907 3567 1907 3567 1906 3567 1906 3568 1906 3568 1906 3568 1907 3568 1907 3568 1907 3568 1908 3569 1908 3569 1907 3569 M 1976 3571 1975 3571 1974 3571 1973 3570 1971 3570 1971 3569 1972 3569 1973 3569 1973 3569 1974 3568 1974 3568 1979 3569 1979 3569 1980 3569 1980 3569 1981 3569 1981 3569 1981 3570 1981 3570 1980 3570 1978 3571 1978 3571 1977 3571 1976 3571 1976 3571 M 1975 3576 1974 3576 1974 3576 1974 3576 1972 3575 1972 3575 1972 3575 1972 3574 1972 3574 1972 3574 1973 3573 1974 3573 1975 3572 1975 3572 1980 3571 1980 3571 1983 3571 1984 3571 1984 3571 1984 3571 1985 3571 1985 3571 1985 3571 1986 3571 1986 3571 1987 3571 1987 3571 1987 3571 1987 3571 1988 3571 1988 3571 1989 3571 1989 3571 1989 3571 1992 3572 1993 3572 1995 3572 1995 3572 1996 3572 1996 3572 1997 3573 1996 3573 1996 3574 1996 3574 1996 3574 1996 3574 1995 3574 1995 3574 1994 3575 1993 3575 1993 3575 1992 3575 1991 3575 1988 3574 1986 3574 1983 3574 1983 3574 1981 3574 1981 3574 1979 3575 1976 3576 1976 3576 1976 3576 1975 3576 M 638 3924 641 3924 644 3924 648 3924 649 3924 651 3924 653 3923 653 3923 654 3923 654 3922 654 3922 653 3922 653 3922 654 3921 655 3921 656 3921 658 3920 659 3920 661 3920 661 3920 661 3920 660 3920 658 3920 656 3919 654 3919 652 3919 646 3919 643 3919 641 3919 634 3918 631 3918 628 3918 623 3918 617 3918 614 3918 612 3918 604 3918 602 3918 600 3917 597 3917 594 3917 590 3917 587 3917 585 3917 578 3917 575 3917 573 3917 569 3916 554 3916 547 3916 543 3916 542 3916 539 3915 534 3915 530 3915 525 3915 521 3915 519 3915 517 3915 511 3914 506 3914 499 3914 490 3913 489 3913 487 3913 482 3913 478 3912 477 3912 474 3912 469 3911 468 3911 463 3911 462 3911 460 3910 458 3910 457 3910 452 3909 448 3908 446 3908 445 3908 442 3907 438 3906 437 3906 435 3905 433 3905 432 3905 431 3905 430 3904 429 3903 428 3903 428 3903 428 3902 428 3901 428 3901 428 3901 429 3901 429 3900 430 3900 431 3900 431 3900 432 3899 432 3899 432 3897 432 3897 432 3895 432 3894 432 3894 432 3894 432 3893 431 3892 431 3892 430 3891 431 3890 431 3890 431 3890 434 3888 435 3887 436 3887 437 3887 437 3887 438 3887 439 3886 440 3886 441 3886 441 3886 442 3885 443 3885 444 3885 445 3885 446 3884 447 3884 448 3884 448 3884 449 3883 450 3882 451 3882 451 3881 450 3881 450 3881 449 3881 448 3881 447 3880 446 3880 444 3880 442 3879 440 3879 436 3878 433 3878 431 3878 430 3877 425 3876 424 3876 423 3876 421 3875 420 3875 419 3875 418 3875 418 3875 416 3874 416 3874 415 3874 413 3874 410 3874 409 3873 408 3873 408 3873 408 3873 409 3872 408 3872 407 3872 407 3872 404 3871 404 3871 403 3871 402 3871 401 3871 403 3869 403 3869 404 3869 404 3869 405 3868 407 3868 409 3868 414 3867 415 3867 415 3866 414 3866 414 3866 412 3865 410 3865 409 3864 407 3864 402 3864 401 3863 398 3863 397 3863 396 3863 396 3863 395 3863 393 3862 393 3862 392 3862 385 3862 382 3862 382 3861 380 3861 379 3861 376 3861 375 3861 373 3861 372 3861 370 3861 369 3861 368 3861 368 3860 368 3860 371 3859 371 3859 371 3858 372 3858 374 3858 374 3858 375 3858 375 3858 377 3858 385 3857 387 3857 389 3857 390 3857 392 3857 394 3856 396 3856 399 3856 401 3856 402 3856 404 3856 411 3857 416 3857 418 3857 420 3857 422 3857 423 3857 425 3858 427 3858 427 3857 428 3857 430 3858 430 3858 432 3858 433 3858 434 3858 436 3858 438 3858 439 3858 440 3858 441 3858 444 3858 446 3858 450 3858 452 3858 453 3858 453 3859 454 3859 454 3859 455 3859 456 3859 457 3859 458 3860 459 3860 460 3860 462 3861 464 3861 465 3861 467 3861 468 3861 471 3862 472 3862 473 3862 475 3862 478 3862 479 3862 481 3862 483 3862 489 3862 492 3862 494 3862 497 3862 499 3862 501 3862 505 3862 504 3862 505 3861 505 3860 506 3860 507 3860 507 3859 508 3859 508 3859 509 3858 510 3858 510 3858 512 3857 514 3857 515 3857 516 3856 518 3856 520 3856 521 3855 522 3855 523 3855 524 3855 524 3854 527 3854 528 3854 531 3853 532 3853 537 3852 540 3851 541 3851 543 3851 544 3851 545 3850 546 3850 549 3849 549 3849 551 3848 551 3848 550 3846 549 3846 549 3845 548 3845 548 3845 547 3844 545 3844 544 3844 543 3843 542 3843 540 3842 539 3841 538 3841 538 3841 537 3841 537 3840 536 3840 535 3840 534 3839 533 3839 533 3839 531 3839 530 3838 528 3838 527 3838 518 3837 514 3836 508 3835 503 3835 503 3835 502 3835 501 3834 501 3834 500 3834 500 3834 499 3834 498 3834 498 3834 497 3834 494 3834 493 3834 492 3834 490 3834 489 3834 488 3834 487 3834 485 3833 483 3833 481 3833 479 3833 477 3832 476 3832 475 3832 474 3832 473 3832 471 3832 471 3832 470 3832 465 3831 464 3831 463 3831 460 3830 458 3830 456 3830 451 3829 449 3829 447 3828 446 3828 445 3828 443 3827 442 3827 442 3827 441 3827 438 3827 436 3827 435 3827 433 3827 432 3827 431 3827 430 3827 428 3827 426 3826 425 3826 424 3826 422 3826 421 3826 420 3826 418 3826 416 3826 415 3826 411 3825 410 3825 408 3825 406 3824 405 3824 404 3824 403 3823 402 3823 396 3822 395 3822 391 3821 390 3821 388 3820 386 3820 385 3820 384 3820 384 3819 383 3819 383 3819 384 3819 384 3818 391 3818 396 3817 403 3817 407 3817 410 3817 411 3816 412 3816 414 3816 415 3816 417 3815 417 3815 418 3815 419 3814 419 3814 419 3813 419 3813 419 3812 418 3812 418 3812 417 3811 416 3811 415 3811 415 3811 414 3811 412 3810 411 3810 410 3810 409 3810 408 3810 408 3810 407 3810 406 3810 404 3810 402 3810 402 3810 401 3811 400 3811 400 3811 399 3811 398 3811 397 3811 394 3811 391 3811 390 3811 389 3811 387 3811 386 3811 384 3811 384 3811 383 3811 383 3811 382 3811 381 3811 380 3811 380 3811 379 3812 379 3812 378 3813 378 3813 377 3813 376 3813 375 3813 374 3813 370 3813 370 3813 369 3812 368 3812 367 3812 366 3811 364 3811 363 3811 362 3810 361 3810 360 3810 359 3810 354 3809 353 3808 351 3808 350 3807 349 3807 349 3807 349 3806 349 3806 350 3805 351 3805 351 3805 351 3804 351 3804 350 3804 350 3803 350 3803 351 3803 351 3803 352 3802 353 3802 353 3802 354 3802 354 3802 355 3802 356 3802 356 3802 356 3801 356 3799 354 3798 354 3798 354 3797 354 3797 355 3797 355 3796 355 3796 356 3796 355 3796 355 3795 354 3795 354 3795 354 3794 355 3794 355 3794 356 3794 358 3794 358 3794 359 3794 359 3794 360 3794 360 3794 361 3794 361 3794 362 3794 362 3795 363 3795 364 3795 364 3796 366 3796 367 3796 368 3797 369 3797 369 3797 370 3797 370 3797 371 3797 371 3797 372 3798 372 3798 373 3798 375 3798 376 3798 376 3798 377 3798 377 3798 378 3797 381 3797 381 3797 382 3797 382 3797 382 3796 382 3796 381 3796 380 3795 380 3795 380 3795 381 3795 382 3794 383 3794 384 3794 386 3794 387 3794 388 3794 388 3794 389 3794 390 3794 391 3794 392 3794 393 3794 395 3794 396 3794 397 3794 397 3794 398 3794 398 3794 399 3794 400 3794 400 3794 401 3795 401 3795 402 3795 402 3795 403 3795 404 3794 405 3794 406 3794 407 3794 408 3795 409 3795 410 3795 411 3795 412 3795 412 3795 413 3795 413 3795 414 3795 416 3795 417 3795 418 3795 419 3795 419 3795 420 3795 421 3796 421 3796 422 3796 423 3796 425 3796 426 3796 427 3796 429 3797 429 3797 430 3797 431 3798 432 3798 431 3798 431 3799 430 3799 430 3799 429 3799 429 3799 428 3799 428 3799 427 3799 428 3800 428 3800 428 3800 429 3800 430 3800 430 3800 431 3800 435 3800 440 3800 442 3800 443 3800 443 3800 444 3799 444 3799 444 3799 444 3798 444 3798 445 3798 446 3798 446 3798 447 3798 447 3798 448 3798 449 3798 449 3798 450 3798 450 3798 451 3798 451 3798 453 3798 454 3798 455 3798 456 3798 458 3798 459 3799 460 3799 461 3799 461 3799 461 3799 462 3800 462 3800 464 3800 465 3800 466 3801 466 3801 468 3801 471 3802 472 3802 473 3802 474 3802 475 3802 476 3803 477 3803 478 3803 480 3804 481 3804 481 3804 483 3804 484 3804 485 3805 486 3805 488 3805 488 3805 488 3805 489 3804 490 3804 491 3804 492 3804 494 3803 493 3803 492 3803 490 3803 490 3803 487 3802 488 3802 488 3802 489 3801 489 3801 490 3801 491 3801 492 3802 495 3802 495 3802 496 3802 496 3802 497 3802 498 3802 499 3802 500 3802 501 3802 502 3802 502 3801 502 3801 501 3801 501 3801 502 3800 502 3800 505 3800 510 3800 510 3800 511 3800 512 3800 513 3800 514 3800 515 3800 516 3799 517 3799 518 3799 518 3799 519 3797 519 3797 520 3797 521 3797 524 3798 524 3798 524 3798 525 3798 525 3798 525 3798 526 3798 526 3798 525 3797 525 3796 526 3796 527 3796 527 3796 528 3796 528 3796 529 3796 529 3796 529 3796 530 3796 531 3796 534 3798 535 3798 537 3799 538 3799 538 3800 538 3800 539 3800 539 3800 543 3799 543 3799 543 3798 543 3798 543 3798 544 3798 544 3798 545 3797 545 3797 544 3797 543 3797 542 3797 541 3796 541 3796 540 3795 541 3795 542 3795 542 3795 543 3795 543 3795 546 3794 545 3794 545 3794 544 3794 544 3793 543 3793 540 3793 540 3793 539 3793 539 3793 538 3792 539 3792 539 3792 540 3792 540 3792 541 3792 542 3792 542 3792 543 3792 544 3792 546 3792 547 3792 548 3792 550 3793 552 3793 553 3793 554 3793 554 3793 554 3793 553 3792 552 3791 551 3791 551 3791 550 3791 549 3791 546 3791 542 3790 541 3790 542 3790 543 3790 543 3790 544 3790 545 3790 546 3790 547 3789 548 3789 549 3789 550 3789 551 3789 551 3789 552 3789 552 3789 551 3788 551 3788 547 3787 546 3787 546 3787 545 3787 544 3787 543 3787 542 3787 540 3787 539 3786 538 3786 538 3786 537 3786 536 3785 536 3785 535 3785 534 3785 533 3785 532 3784 531 3784 530 3784 529 3784 528 3784 527 3784 526 3784 525 3784 524 3784 523 3784 521 3783 520 3783 516 3783 514 3783 513 3783 512 3783 512 3783 511 3783 510 3783 509 3784 508 3784 508 3784 508 3784 507 3784 507 3784 506 3784 505 3784 502 3784 500 3784 499 3784 497 3784 495 3784 493 3784 492 3783 491 3783 489 3783 488 3783 487 3783 487 3782 487 3782 488 3782 488 3782 490 3781 491 3781 491 3781 492 3781 493 3781 495 3781 497 3781 500 3781 501 3780 501 3780 501 3779 502 3779 502 3779 503 3779 504 3778 506 3778 506 3778 507 3778 508 3778 509 3778 510 3778 511 3778 512 3778 512 3778 513 3779 514 3779 515 3779 521 3780 522 3780 524 3780 525 3780 525 3780 527 3781 528 3781 529 3781 532 3782 535 3782 536 3782 537 3782 543 3783 545 3783 546 3784 547 3784 549 3784 551 3784 551 3784 551 3783 552 3783 553 3783 553 3783 553 3782 552 3782 552 3781 551 3781 550 3781 548 3781 548 3781 547 3781 546 3781 545 3780 545 3780 544 3780 543 3780 541 3779 540 3778 539 3778 538 3778 538 3777 541 3775 541 3775 542 3775 543 3775 543 3775 544 3775 545 3775 546 3775 547 3775 548 3775 549 3775 555 3775 558 3775 561 3775 563 3774 563 3774 566 3774 567 3774 568 3774 569 3774 572 3774 572 3773 571 3773 571 3772 571 3772 571 3771 571 3771 572 3771 573 3771 574 3771 574 3771 576 3771 576 3771 577 3771 579 3770 580 3770 581 3770 583 3770 584 3770 585 3770 586 3770 586 3770 590 3770 593 3771 593 3771 594 3771 594 3771 595 3771 595 3771 596 3770 596 3770 597 3770 596 3769 597 3768 598 3768 598 3768 599 3768 600 3768 603 3768 604 3768 607 3768 608 3768 609 3768 610 3768 610 3768 612 3768 613 3768 616 3769 618 3769 619 3769 620 3769 620 3769 622 3769 623 3769 626 3768 629 3768 634 3768 634 3768 635 3768 637 3768 638 3767 639 3767 639 3767 640 3767 643 3765 645 3764 646 3763 647 3763 648 3763 648 3762 649 3762 650 3762 650 3762 651 3762 652 3762 654 3762 655 3762 656 3762 659 3762 659 3762 661 3762 662 3762 664 3762 668 3762 673 3762 675 3762 676 3762 677 3762 678 3762 678 3761 678 3761 679 3761 679 3761 680 3761 684 3761 685 3761 685 3761 686 3761 687 3761 688 3760 689 3760 689 3760 690 3760 691 3758 691 3757 691 3757 691 3756 692 3756 692 3756 693 3756 694 3756 695 3756 695 3756 696 3756 696 3756 697 3756 698 3756 699 3756 699 3756 700 3756 701 3756 702 3756 703 3756 704 3756 705 3756 705 3756 706 3756 707 3756 707 3756 708 3755 708 3755 709 3755 709 3754 710 3754 713 3754 714 3754 716 3754 718 3754 719 3754 721 3754 722 3754 723 3754 724 3754 725 3754 726 3754 728 3753 728 3753 729 3753 730 3753 730 3753 733 3755 732 3756 732 3756 733 3756 733 3756 734 3756 735 3756 736 3756 737 3756 738 3757 738 3757 739 3758 739 3758 741 3758 741 3758 742 3758 742 3758 743 3758 744 3758 746 3758 747 3758 747 3758 748 3758 752 3757 754 3757 755 3756 755 3756 756 3756 757 3756 757 3756 758 3756 759 3756 760 3757 760 3757 761 3757 761 3757 762 3757 763 3757 764 3757 764 3756 765 3756 766 3756 767 3756 769 3756 771 3756 771 3756 772 3756 773 3757 774 3757 775 3757 775 3757 776 3757 776 3757 777 3757 778 3757 781 3757 783 3757 783 3757 785 3757 785 3757 786 3757 790 3757 793 3757 794 3757 795 3757 797 3758 799 3758 800 3758 801 3758 802 3758 804 3758 805 3758 806 3758 807 3758 808 3758 808 3758 810 3758 810 3758 811 3758 812 3758 815 3757 816 3757 816 3757 817 3757 818 3757 819 3757 820 3757 820 3757 820 3757 821 3757 821 3757 822 3756 823 3756 824 3756 825 3756 826 3756 830 3756 831 3756 831 3756 832 3755 833 3755 833 3755 834 3755 835 3755 837 3755 840 3755 843 3755 843 3755 844 3755 845 3755 846 3755 846 3755 846 3755 847 3755 848 3755 849 3755 850 3755 851 3755 854 3755 855 3755 857 3755 862 3755 863 3755 865 3755 865 3755 866 3755 868 3755 870 3755 870 3755 872 3755 874 3755 876 3755 879 3755 880 3755 881 3755 882 3755 884 3755 885 3755 886 3755 888 3756 890 3756 891 3756 892 3756 893 3756 894 3756 895 3756 896 3756 897 3756 898 3756 899 3756 901 3756 901 3756 902 3756 903 3756 904 3756 906 3756 906 3756 907 3756 908 3756 909 3756 911 3755 912 3755 913 3755 914 3755 915 3755 916 3755 917 3755 917 3755 918 3755 920 3756 921 3756 922 3756 923 3756 925 3756 927 3756 927 3756 928 3756 929 3756 930 3756 934 3756 935 3756 936 3756 937 3756 938 3756 939 3756 940 3756 942 3756 944 3756 945 3756 947 3756 948 3756 949 3756 950 3756 951 3755 952 3755 952 3755 953 3755 954 3755 956 3755 957 3755 958 3755 960 3755 967 3754 971 3754 971 3754 972 3754 974 3754 975 3754 978 3754 980 3754 982 3754 982 3754 984 3754 984 3754 985 3754 985 3753 984 3753 984 3752 983 3752 983 3752 982 3752 982 3752 982 3751 982 3751 983 3751 983 3751 985 3751 985 3751 987 3751 987 3751 990 3750 992 3750 993 3750 994 3749 994 3749 995 3749 996 3749 996 3750 996 3750 996 3750 996 3751 996 3752 997 3752 997 3753 998 3753 999 3753 999 3753 1000 3753 1002 3753 1007 3753 1009 3753 1010 3753 1011 3753 1012 3753 1013 3753 1018 3753 1020 3753 1022 3753 1022 3753 1023 3753 1023 3753 1024 3753 1024 3752 1024 3752 1025 3751 1025 3751 1026 3751 1026 3751 1027 3751 1027 3751 1027 3751 1028 3751 1028 3751 1029 3752 1029 3752 1030 3752 1030 3752 1030 3752 1031 3752 1032 3752 1033 3752 1034 3752 1034 3752 1036 3752 1036 3752 1037 3752 1038 3752 1039 3752 1039 3752 1040 3752 1041 3752 1042 3752 1043 3752 1043 3752 1043 3752 1044 3752 1044 3752 1044 3750 1043 3749 1043 3749 1041 3747 1041 3747 1041 3747 1041 3746 1044 3745 1044 3744 1045 3744 1045 3744 1046 3744 1047 3744 1049 3744 1049 3744 1050 3744 1051 3743 1051 3743 1052 3743 1053 3743 1053 3743 1054 3743 1055 3743 1055 3743 1056 3743 1057 3743 1058 3743 1058 3744 1058 3744 1057 3745 1058 3745 1059 3745 1061 3745 1065 3746 1065 3746 1067 3747 1066 3748 1065 3748 1065 3748 1064 3748 1064 3748 1062 3749 1062 3750 1062 3751 1063 3752 1063 3752 1064 3752 1064 3752 1065 3752 1066 3752 1066 3752 1067 3752 1068 3751 1069 3751 1069 3751 1070 3751 1070 3751 1071 3751 1071 3752 1071 3752 1070 3752 1069 3753 1066 3754 1065 3754 1064 3754 1062 3754 1061 3755 1063 3756 1064 3756 1064 3756 1065 3756 1065 3756 1066 3756 1067 3756 1067 3756 1068 3756 1069 3756 1070 3756 1071 3756 1072 3756 1072 3756 1073 3756 1074 3756 1075 3755 1075 3755 1076 3755 1077 3756 1076 3756 1075 3757 1074 3757 1074 3757 1075 3758 1075 3758 1076 3758 1077 3758 1078 3758 1078 3758 1080 3758 1082 3758 1082 3758 1083 3758 1083 3758 1084 3758 1084 3758 1085 3758 1086 3758 1086 3758 1087 3757 1088 3757 1088 3757 1089 3757 1090 3757 1092 3757 1093 3757 1094 3757 1096 3757 1097 3757 1097 3756 1097 3756 1096 3756 1095 3756 1095 3755 1093 3755 1093 3755 1091 3754 1091 3754 1091 3753 1091 3753 1092 3753 1093 3752 1093 3752 1094 3752 1095 3752 1096 3752 1096 3752 1096 3752 1095 3751 1095 3751 1094 3751 1093 3751 1093 3750 1092 3749 1092 3749 1092 3748 1092 3748 1093 3748 1094 3748 1095 3747 1096 3747 1096 3747 1097 3747 1098 3747 1099 3747 1101 3747 1101 3747 1102 3747 1103 3747 1104 3747 1105 3748 1106 3748 1106 3748 1106 3748 1107 3749 1107 3749 1108 3749 1108 3749 1109 3749 1110 3748 1110 3748 1112 3748 1113 3748 1113 3748 1114 3749 1115 3749 1116 3749 1116 3749 1117 3751 1118 3751 1118 3752 1119 3753 1118 3754 1117 3755 1117 3755 1116 3755 1116 3755 1117 3756 1117 3756 1118 3756 1119 3756 1119 3756 1119 3757 1118 3757 1116 3757 1114 3758 1113 3758 1113 3758 1112 3758 1111 3759 1110 3759 1110 3759 1109 3760 1109 3760 1108 3760 1107 3760 1106 3760 1106 3760 1105 3760 1106 3760 1106 3760 1107 3760 1107 3760 1108 3760 1108 3760 1109 3760 1109 3761 1108 3761 1107 3761 1107 3762 1106 3762 1106 3762 1105 3762 1103 3762 1103 3763 1103 3763 1104 3763 1104 3763 1105 3764 1106 3764 1107 3764 1107 3764 1108 3764 1109 3764 1109 3765 1110 3765 1110 3765 1111 3765 1111 3765 1112 3765 1113 3765 1113 3765 1114 3765 1116 3765 1117 3765 1117 3765 1118 3765 1118 3764 1119 3764 1119 3764 1120 3764 1120 3764 1121 3764 1122 3763 1124 3763 1124 3763 1125 3762 1126 3762 1127 3762 1129 3763 1130 3763 1132 3762 1133 3762 1134 3762 1134 3763 1135 3763 1136 3763 1136 3763 1137 3763 1137 3763 1138 3763 1138 3764 1139 3764 1140 3764 1141 3764 1142 3764 1144 3764 1145 3764 1145 3764 1146 3764 1147 3764 1147 3764 1149 3764 1149 3764 1150 3764 1151 3765 1151 3765 1152 3765 1152 3766 1153 3766 1153 3766 1154 3766 1154 3766 1155 3765 1156 3765 1158 3765 1159 3765 1160 3765 1162 3765 1163 3765 1163 3765 1163 3766 1164 3766 1165 3766 1165 3766 1166 3766 1167 3766 1168 3766 1168 3765 1169 3765 1169 3765 1170 3765 1171 3765 1172 3765 1174 3765 1175 3765 1176 3765 1177 3765 1177 3765 1178 3765 1179 3764 1179 3764 1179 3764 1180 3763 1180 3763 1181 3763 1182 3763 1182 3763 1183 3763 1184 3763 1184 3762 1185 3762 1185 3762 1188 3762 1188 3762 1190 3762 1192 3762 1193 3762 1194 3762 1195 3762 1197 3762 1198 3762 1199 3761 1199 3761 1200 3761 1201 3761 1201 3761 1203 3761 1204 3761 1205 3761 1206 3761 1207 3761 1209 3761 1210 3761 1212 3761 1213 3761 1214 3761 1215 3761 1216 3761 1218 3761 1221 3761 1223 3761 1224 3761 1225 3761 1227 3761 1228 3761 1229 3761 1229 3761 1230 3761 1232 3761 1236 3761 1236 3761 1238 3761 1240 3761 1240 3761 1244 3761 1244 3762 1245 3762 1245 3762 1245 3763 1245 3764 1246 3764 1247 3764 1247 3764 1248 3764 1249 3764 1250 3764 1256 3765 1256 3765 1258 3765 1260 3765 1262 3765 1263 3765 1264 3765 1265 3765 1266 3765 1266 3765 1267 3765 1267 3764 1267 3764 1268 3764 1269 3764 1269 3764 1270 3764 1272 3764 1273 3764 1275 3764 1277 3765 1278 3765 1278 3765 1279 3765 1279 3764 1280 3764 1281 3764 1281 3764 1283 3763 1283 3763 1284 3763 1285 3762 1285 3762 1286 3762 1286 3762 1286 3761 1285 3761 1284 3760 1284 3760 1284 3760 1283 3759 1282 3759 1281 3759 1280 3759 1280 3759 1278 3759 1278 3759 1276 3759 1275 3759 1274 3759 1274 3759 1273 3759 1272 3759 1268 3758 1268 3758 1267 3758 1266 3758 1265 3758 1265 3758 1264 3758 1264 3757 1265 3757 1266 3757 1267 3757 1269 3757 1273 3757 1274 3757 1274 3757 1274 3757 1275 3757 1275 3756 1274 3756 1274 3756 1273 3756 1272 3756 1271 3756 1270 3755 1270 3755 1270 3755 1271 3755 1272 3755 1273 3755 1274 3755 1275 3754 1275 3754 1275 3754 1275 3754 1274 3754 1273 3754 1273 3753 1273 3753 1274 3753 1274 3752 1272 3752 1272 3752 1271 3751 1271 3751 1270 3751 1268 3751 1267 3751 1267 3751 1266 3751 1263 3752 1261 3752 1260 3752 1260 3752 1259 3752 1258 3752 1258 3752 1257 3752 1257 3752 1256 3752 1255 3752 1255 3751 1255 3750 1254 3749 1253 3749 1253 3749 1252 3748 1252 3748 1252 3748 1251 3747 1251 3746 1251 3745 1251 3745 1251 3745 1251 3744 1251 3744 1250 3744 1249 3744 1249 3744 1247 3744 1246 3744 1246 3744 1245 3744 1245 3744 1245 3743 1244 3743 1244 3743 1243 3743 1243 3743 1242 3743 1241 3744 1240 3744 1240 3744 1239 3744 1239 3743 1239 3743 1238 3743 1238 3743 1237 3743 1236 3743 1236 3743 1234 3743 1234 3743 1232 3743 1232 3743 1231 3742 1231 3742 1231 3742 1231 3741 1232 3741 1232 3741 1233 3740 1233 3740 1232 3740 1231 3739 1231 3739 1230 3739 1230 3739 1230 3739 1230 3738 1230 3738 1231 3738 1231 3738 1232 3738 1232 3738 1233 3738 1235 3738 1239 3738 1240 3738 1241 3738 1242 3738 1243 3738 1244 3738 1245 3738 1246 3738 1247 3738 1249 3738 1250 3738 1251 3739 1252 3739 1253 3739 1255 3739 1255 3739 1257 3739 1257 3740 1258 3740 1259 3740 1260 3740 1260 3740 1261 3740 1263 3740 1265 3740 1265 3740 1266 3740 1267 3740 1268 3740 1269 3740 1270 3740 1270 3740 1272 3740 1273 3740 1274 3740 1277 3740 1278 3740 1279 3740 1279 3740 1280 3740 1280 3740 1281 3739 1281 3739 1282 3739 1283 3739 1284 3739 1285 3739 1285 3739 1286 3739 1287 3739 1288 3739 1288 3739 1289 3739 1289 3739 1290 3739 1290 3739 1291 3738 1291 3738 1290 3738 1289 3738 1288 3738 1287 3738 1287 3738 1284 3737 1280 3736 1280 3736 1280 3735 1279 3735 1278 3735 1276 3735 1276 3735 1275 3735 1274 3735 1274 3735 1273 3735 1272 3735 1271 3734 1271 3734 1270 3734 1270 3734 1268 3734 1267 3734 1265 3734 1264 3734 1262 3734 1261 3734 1260 3734 1259 3734 1257 3734 1256 3734 1255 3734 1254 3734 1252 3734 1249 3734 1247 3734 1246 3734 1246 3734 1246 3734 1245 3734 1244 3734 1240 3734 1236 3734 1235 3734 1233 3734 1232 3734 1230 3734 1229 3734 1229 3733 1225 3732 1223 3731 1223 3730 1223 3730 1223 3729 1222 3729 1222 3728 1221 3728 1221 3727 1220 3727 1220 3727 1220 3726 1221 3726 1222 3725 1223 3725 1225 3724 1226 3724 1226 3724 1227 3724 1228 3724 1229 3724 1230 3724 1230 3724 1232 3724 1233 3725 1233 3725 1235 3725 1236 3724 1237 3724 1237 3725 1238 3725 1241 3725 1240 3727 1239 3728 1237 3728 1236 3728 1235 3729 1236 3729 1236 3729 1237 3729 1237 3729 1239 3729 1241 3729 1241 3729 1242 3729 1243 3729 1243 3729 1244 3729 1244 3729 1243 3730 1244 3730 1244 3730 1245 3730 1246 3730 1251 3729 1252 3729 1253 3729 1255 3729 1256 3729 1257 3728 1258 3728 1259 3728 1263 3729 1264 3729 1265 3729 1265 3729 1266 3729 1266 3729 1267 3729 1267 3730 1268 3730 1269 3730 1269 3730 1269 3730 1270 3730 1270 3730 1271 3730 1271 3730 1272 3730 1273 3729 1273 3729 1276 3729 1279 3729 1279 3729 1280 3729 1281 3729 1281 3729 1282 3729 1282 3729 1283 3729 1284 3729 1289 3728 1290 3728 1293 3728 1293 3728 1294 3728 1294 3728 1295 3728 1295 3728 1296 3728 1297 3728 1298 3728 1300 3728 1300 3728 1301 3728 1303 3728 1303 3728 1305 3729 1307 3729 1307 3729 1308 3729 1308 3729 1309 3729 1310 3729 1310 3729 1310 3730 1310 3730 1309 3730 1308 3730 1307 3730 1306 3731 1307 3731 1307 3731 1308 3731 1310 3731 1311 3731 1312 3731 1314 3731 1316 3731 1316 3731 1317 3731 1318 3731 1319 3731 1319 3732 1320 3732 1321 3732 1322 3732 1322 3732 1323 3732 1324 3732 1325 3732 1325 3732 1326 3733 1327 3733 1327 3733 1328 3733 1333 3733 1335 3733 1335 3733 1336 3733 1336 3733 1337 3733 1337 3733 1338 3733 1339 3733 1340 3734 1340 3734 1341 3734 1342 3733 1342 3733 1342 3733 1343 3733 1343 3733 1344 3733 1344 3733 1345 3732 1346 3732 1348 3732 1350 3732 1351 3732 1353 3732 1354 3732 1355 3732 1356 3732 1358 3732 1359 3732 1359 3732 1361 3732 1362 3732 1363 3732 1364 3732 1365 3732 1365 3733 1366 3733 1366 3733 1367 3733 1367 3733 1368 3733 1368 3734 1369 3734 1371 3734 1372 3733 1373 3733 1374 3733 1375 3733 1375 3733 1375 3732 1376 3732 1377 3732 1378 3732 1378 3732 1379 3732 1380 3732 1380 3732 1380 3732 1381 3731 1381 3731 1382 3731 1382 3731 1384 3731 1385 3731 1385 3731 1387 3732 1390 3732 1391 3732 1391 3732 1391 3732 1391 3731 1391 3731 1392 3731 1393 3731 1395 3731 1396 3731 1397 3731 1398 3731 1398 3731 1399 3731 1400 3731 1400 3731 1401 3731 1404 3731 1405 3732 1407 3732 1408 3732 1409 3732 1410 3732 1412 3732 1413 3732 1414 3732 1415 3732 1416 3732 1417 3733 1418 3733 1419 3733 1419 3733 1420 3733 1421 3733 1422 3733 1422 3734 1423 3734 1424 3734 1424 3734 1425 3734 1425 3733 1426 3733 1427 3733 1431 3731 1432 3731 1432 3731 1433 3731 1434 3731 1435 3731 1437 3731 1438 3731 1439 3731 1440 3731 1440 3731 1441 3731 1442 3731 1443 3731 1443 3731 1444 3731 1444 3730 1444 3730 1445 3730 1446 3730 1448 3730 1448 3729 1450 3727 1449 3725 1448 3724 1448 3724 1447 3723 1447 3723 1447 3723 1446 3723 1445 3723 1445 3723 1447 3723 1447 3723 1449 3723 1450 3723 1451 3723 1455 3723 1456 3723 1460 3724 1460 3724 1461 3724 1461 3724 1464 3726 1464 3726 1463 3726 1462 3727 1461 3727 1459 3728 1460 3728 1460 3728 1460 3729 1460 3729 1459 3729 1457 3730 1457 3730 1456 3730 1456 3731 1457 3731 1457 3731 1458 3731 1459 3731 1460 3732 1462 3732 1463 3732 1463 3732 1464 3732 1464 3732 1465 3731 1466 3731 1467 3731 1467 3731 1468 3731 1468 3731 1469 3731 1469 3731 1470 3731 1471 3731 1472 3731 1473 3731 1474 3731 1474 3731 1475 3731 1476 3731 1476 3731 1477 3732 1478 3732 1479 3733 1479 3733 1480 3733 1481 3733 1482 3734 1483 3734 1484 3734 1484 3734 1485 3734 1486 3734 1487 3734 1488 3734 1489 3734 1490 3734 1490 3734 1491 3733 1491 3733 1492 3733 1492 3733 1493 3733 1493 3732 1494 3732 1495 3732 1496 3732 1496 3732 1497 3732 1498 3732 1499 3732 1499 3731 1500 3731 1500 3730 1500 3730 1500 3729 1500 3729 1501 3729 1502 3729 1502 3729 1502 3730 1503 3731 1503 3732 1503 3732 1504 3732 1504 3732 1505 3733 1505 3733 1506 3733 1506 3733 1507 3733 1508 3733 1509 3733 1510 3734 1509 3734 1509 3734 1507 3736 1506 3736 1506 3736 1506 3736 1506 3737 1506 3737 1507 3737 1508 3737 1508 3738 1510 3738 1511 3738 1511 3738 1515 3739 1516 3739 1517 3739 1518 3739 1521 3739 1522 3739 1524 3739 1524 3739 1526 3739 1530 3739 1534 3739 1536 3739 1537 3739 1537 3739 1538 3739 1539 3739 1540 3739 1540 3740 1541 3740 1542 3740 1542 3740 1544 3741 1545 3741 1545 3741 1546 3741 1547 3741 1547 3742 1548 3742 1548 3742 1550 3742 1550 3742 1553 3742 1555 3742 1556 3742 1558 3742 1559 3742 1559 3742 1560 3742 1560 3743 1560 3743 1561 3743 1561 3743 1562 3743 1562 3743 1563 3744 1564 3744 1564 3743 1565 3743 1566 3743 1567 3743 1568 3743 1569 3742 1571 3742 1571 3742 1571 3742 1572 3742 1573 3742 1574 3742 1575 3742 1576 3742 1577 3742 1577 3742 1578 3742 1578 3741 1578 3741 1578 3741 1579 3740 1580 3740 1580 3740 1581 3740 1580 3739 1579 3738 1578 3738 1578 3737 1577 3737 1576 3737 1576 3736 1576 3735 1576 3735 1577 3734 1577 3734 1578 3734 1578 3734 1580 3734 1581 3734 1582 3734 1583 3734 1583 3735 1584 3735 1584 3735 1584 3735 1586 3736 1587 3736 1588 3736 1588 3736 1589 3736 1589 3735 1589 3735 1590 3734 1589 3733 1589 3733 1589 3732 1589 3732 1588 3732 1587 3732 1587 3732 1586 3731 1586 3731 1585 3731 1585 3730 1585 3730 1585 3730 1586 3729 1586 3729 1587 3729 1587 3729 1588 3729 1588 3729 1589 3730 1590 3730 1591 3730 1592 3730 1593 3730 1593 3730 1595 3730 1596 3730 1597 3730 1598 3730 1600 3730 1600 3731 1602 3731 1603 3731 1604 3732 1606 3733 1608 3733 1609 3734 1611 3734 1611 3734 1612 3734 1613 3734 1614 3735 1614 3735 1615 3735 1615 3736 1616 3736 1616 3737 1616 3737 1616 3738 1616 3738 1615 3739 1616 3739 1617 3740 1617 3740 1618 3740 1618 3740 1619 3739 1620 3739 1624 3739 1627 3738 1627 3738 1628 3738 1630 3738 1631 3738 1632 3738 1637 3737 1637 3737 1639 3737 1640 3737 1640 3737 1641 3737 1642 3737 1642 3737 1643 3737 1644 3737 1644 3737 1645 3737 1648 3737 1648 3737 1649 3737 1649 3737 1650 3737 1651 3737 1651 3738 1651 3738 1651 3738 1651 3739 1647 3740 1646 3740 1645 3741 1644 3741 1644 3742 1644 3742 1644 3742 1645 3742 1645 3742 1646 3742 1647 3742 1647 3742 1647 3742 1648 3742 1649 3742 1650 3742 1651 3741 1651 3741 1654 3741 1654 3741 1655 3741 1655 3741 1656 3742 1656 3742 1657 3742 1658 3742 1659 3742 1659 3742 1660 3742 1661 3741 1662 3741 1666 3740 1666 3740 1667 3740 1668 3740 1668 3740 1668 3740 1669 3740 1673 3739 1673 3739 1674 3739 1674 3739 1679 3739 1680 3739 1680 3739 1681 3739 1682 3740 1682 3740 1683 3740 1683 3740 1684 3740 1684 3740 1685 3740 1685 3740 1685 3740 1686 3740 1687 3739 1688 3739 1689 3739 1690 3739 1691 3739 1691 3739 1692 3739 1692 3739 1693 3740 1693 3740 1694 3740 1694 3740 1695 3740 1696 3739 1697 3739 1697 3738 1698 3738 1701 3737 1702 3737 1702 3737 1702 3737 1703 3737 1703 3737 1704 3737 1704 3738 1704 3738 1705 3738 1705 3738 1706 3737 1706 3737 1706 3737 1707 3736 1708 3736 1709 3736 1710 3736 1711 3736 1712 3736 1713 3736 1715 3736 1716 3736 1716 3736 1716 3736 1717 3736 1718 3735 1718 3735 1720 3735 1721 3735 1722 3735 1722 3735 1722 3735 1724 3735 1729 3735 1729 3735 1730 3735 1732 3735 1732 3735 1734 3734 1736 3734 1738 3733 1739 3733 1739 3733 1745 3733 1745 3733 1746 3733 1747 3733 1748 3733 1749 3733 1751 3733 1751 3733 1752 3733 1752 3733 1753 3733 1754 3733 1754 3733 1758 3732 1759 3732 1760 3732 1766 3732 1770 3731 1775 3730 1779 3729 1779 3729 1780 3729 1783 3728 1784 3728 1785 3728 1786 3727 1787 3727 1788 3727 1789 3727 1789 3727 1790 3726 1791 3726 1791 3726 1791 3726 1793 3726 1793 3726 1794 3726 1795 3726 1795 3726 1796 3725 1797 3725 1797 3725 1798 3725 1798 3724 1798 3724 1799 3723 1799 3723 1800 3722 1800 3722 1800 3722 1801 3722 1802 3721 1804 3721 1808 3719 1808 3719 1807 3718 1806 3717 1806 3716 1805 3712 1806 3712 1806 3711 1807 3711 1807 3711 1804 3708 1803 3708 1803 3708 1803 3708 1802 3708 1802 3708 1802 3708 1801 3708 1801 3707 1800 3707 1799 3707 1798 3706 1798 3706 1798 3705 1796 3704 1797 3701 1797 3701 1797 3701 1798 3700 1798 3700 1798 3700 1799 3699 1799 3698 1798 3697 1797 3695 1796 3694 1796 3693 1794 3692 1793 3691 1793 3691 1794 3690 1793 3690 1793 3690 1792 3688 1790 3685 1790 3685 1789 3685 1789 3684 1788 3684 1786 3684 1784 3683 1783 3683 1783 3682 1781 3680 1781 3679 1782 3679 1782 3679 1783 3678 1783 3678 1783 3678 1783 3677 1783 3677 1783 3676 1784 3676 1783 3675 1780 3673 1780 3673 1779 3673 1777 3672 1776 3671 1776 3671 1777 3671 1777 3671 1780 3671 1782 3671 1782 3671 1784 3671 1784 3671 1785 3671 1785 3670 1785 3670 1784 3669 1785 3669 1786 3669 1786 3669 1787 3669 1787 3669 1787 3670 1788 3670 1788 3670 1789 3670 1790 3670 1791 3671 1792 3671 1793 3671 1794 3671 1796 3671 1797 3670 1797 3670 1798 3670 1799 3670 1801 3670 1802 3669 1805 3668 1805 3668 1809 3666 1809 3666 1810 3666 1810 3665 1810 3665 1810 3664 1810 3664 1809 3664 1809 3664 1808 3664 1808 3664 1807 3664 1806 3664 1805 3664 1803 3664 1802 3664 1800 3663 1799 3663 1799 3663 1798 3663 1798 3662 1797 3662 1797 3662 1798 3661 1798 3661 1799 3661 1800 3661 1801 3661 1802 3661 1803 3661 1804 3661 1805 3661 1805 3661 1806 3661 1806 3660 1806 3660 1805 3659 1802 3657 1803 3656 1803 3656 1804 3656 1804 3656 1805 3656 1806 3656 1806 3655 1806 3655 1806 3655 1805 3654 1805 3654 1804 3654 1804 3654 1803 3654 1803 3654 1803 3654 1802 3653 1803 3653 1803 3653 1804 3653 1806 3653 1806 3653 1807 3654 1808 3654 1808 3653 1811 3652 1811 3652 1810 3652 1810 3651 1809 3652 1808 3652 1808 3652 1807 3652 1807 3652 1806 3652 1803 3650 1802 3649 1802 3649 1803 3648 1804 3648 1806 3648 1807 3647 1808 3647 1808 3647 1808 3647 1807 3646 1808 3646 1808 3646 1809 3646 1809 3645 1807 3645 1806 3645 1805 3645 1804 3645 1805 3645 1805 3645 1807 3645 1808 3645 1808 3645 1809 3645 1809 3645 1810 3644 1810 3644 1809 3644 1808 3644 1808 3644 1807 3644 1807 3644 1806 3644 1806 3643 1807 3643 1809 3642 1809 3642 1810 3642 1811 3642 1811 3642 1811 3642 1812 3642 1813 3642 1813 3642 1814 3641 1814 3641 1813 3641 1813 3641 1812 3641 1811 3641 1810 3641 1809 3641 1808 3641 1808 3641 1808 3641 1807 3641 1802 3640 1802 3641 1801 3641 1800 3641 1800 3641 1799 3641 1798 3641 1796 3642 1795 3642 1795 3641 1794 3640 1795 3639 1796 3639 1796 3638 1796 3638 1796 3637 1795 3636 1795 3635 1797 3634 1799 3634 1799 3634 1800 3634 1801 3633 1801 3633 1802 3632 1802 3632 1804 3631 1805 3631 1806 3631 1806 3631 1807 3631 1807 3633 1807 3634 1808 3633 1809 3633 1809 3633 1810 3632 1810 3632 1812 3632 1813 3631 1813 3631 1814 3631 1815 3631 1815 3630 1814 3630 1813 3630 1812 3629 1813 3627 1813 3626 1814 3626 1814 3626 1816 3626 1816 3626 1818 3625 1819 3626 1819 3626 1820 3625 1820 3625 1821 3624 1821 3623 1821 3623 1822 3622 1824 3621 1824 3621 1824 3621 1825 3621 1825 3621 1826 3620 1826 3619 1826 3619 1826 3619 1828 3618 1829 3618 1833 3619 1833 3619 1834 3619 1834 3619 1833 3618 1833 3618 1832 3617 1832 3617 1832 3616 1833 3616 1833 3616 1834 3616 1835 3616 1835 3616 1837 3616 1837 3616 1838 3616 1838 3616 1839 3616 1840 3616 1840 3616 1842 3617 1842 3617 1843 3617 1843 3617 1844 3617 1844 3617 1845 3617 1845 3617 1846 3616 1846 3616 1846 3615 1845 3615 1844 3615 1843 3615 1843 3614 1842 3614 1842 3613 1842 3613 1843 3612 1843 3612 1846 3613 1847 3613 1848 3613 1848 3612 1848 3612 1847 3611 1846 3611 1847 3611 1849 3611 1850 3611 1850 3611 1852 3611 1852 3611 1852 3611 1851 3610 1850 3610 1850 3609 1851 3609 1851 3609 1852 3609 1856 3609 1857 3609 1857 3609 1857 3609 1856 3608 1855 3608 1853 3608 1852 3608 1852 3607 1852 3605 1852 3604 1854 3601 1854 3601 1855 3601 1855 3601 1856 3601 1858 3601 1860 3602 1862 3602 1863 3602 1863 3602 1865 3602 1865 3602 1866 3603 1867 3603 1867 3603 1868 3602 1869 3602 1868 3601 1867 3601 1866 3600 1866 3600 1869 3599 1870 3599 1871 3599 1871 3599 1872 3599 1872 3598 1872 3598 1872 3598 1871 3598 1870 3598 1873 3597 1873 3598 1874 3598 1875 3598 1875 3598 1875 3599 1876 3599 1876 3599 1879 3599 1879 3598 1879 3598 1879 3598 1878 3598 1878 3598 1877 3598 1876 3598 1875 3597 1875 3597 1876 3597 1877 3597 1877 3596 1877 3596 1877 3596 1877 3595 1877 3594 1878 3594 1879 3594 1879 3595 1880 3597 1881 3597 1882 3597 1882 3596 1883 3596 1884 3596 1884 3596 1884 3596 1886 3596 1886 3596 1886 3595 1886 3595 1886 3594 1886 3594 1887 3594 1887 3594 1890 3594 1891 3594 1893 3593 1893 3593 1894 3593 1893 3593 1893 3593 1893 3593 1892 3592 1892 3592 1893 3591 1894 3591 1895 3590 1896 3590 1897 3591 1898 3591 1899 3590 1899 3590 1900 3590 1900 3589 1901 3589 1902 3589 1902 3588 1901 3588 1901 3587 1902 3587 1902 3587 1903 3587 1903 3587 1902 3586 1901 3586 1900 3586 1901 3585 1901 3585 1902 3585 1905 3585 1908 3585 1909 3584 1911 3584 1911 3584 1912 3583 1912 3583 1915 3584 1916 3584 1916 3584 1917 3584 1917 3583 1918 3583 1918 3582 1919 3581 1919 3581 1920 3581 1919 3582 1919 3582 1920 3582 1920 3583 1921 3582 1921 3582 1922 3582 1922 3583 1924 3583 1925 3583 1926 3583 1926 3583 1926 3582 1926 3582 1927 3580 1928 3580 1929 3580 1929 3580 1930 3580 1930 3580 1931 3580 1931 3580 1932 3580 1934 3579 1934 3578 1934 3577 1937 3577 1938 3577 1942 3576 1942 3576 1943 3576 1945 3576 1946 3576 1946 3576 1946 3576 1949 3575 1949 3574 1951 3574 1954 3573 1955 3573 1958 3572 1960 3572 1960 3572 1961 3572 1962 3572 1963 3572 1963 3572 1964 3573 1964 3573 1965 3573 1965 3575 1965 3576 1968 3577 1968 3577 1969 3578 1969 3578 1969 3578 1968 3579 1968 3579 1963 3579 1962 3579 1962 3578 1962 3578 1963 3577 1963 3577 1962 3576 1962 3576 1958 3576 1958 3577 1956 3577 1956 3577 1954 3578 1954 3578 1954 3578 1955 3578 1955 3579 1951 3579 1949 3580 1949 3579 1948 3579 1948 3579 1945 3580 1944 3581 1943 3582 1942 3582 1940 3583 1940 3584 1939 3584 1938 3584 1938 3585 1938 3585 1937 3586 1937 3586 1937 3587 1936 3587 1936 3587 1935 3588 1936 3589 1936 3590 1937 3592 1937 3592 1937 3592 1936 3593 1936 3593 1936 3593 1935 3593 1934 3593 1933 3593 1933 3593 1933 3592 1933 3592 1932 3592 1931 3592 1930 3592 1930 3592 1928 3592 1926 3590 1926 3590 1926 3590 1925 3590 1925 3590 1924 3590 1924 3590 1923 3590 1923 3591 1924 3591 1924 3592 1925 3593 1925 3593 1925 3593 1924 3593 1924 3593 1922 3593 1921 3593 1922 3593 1922 3591 1922 3591 1921 3591 1921 3591 1920 3591 1920 3591 1918 3591 1918 3591 1917 3592 1914 3593 1912 3594 1911 3594 1907 3596 1906 3596 1906 3597 1905 3597 1905 3598 1905 3598 1905 3598 1902 3599 1901 3600 1900 3600 1899 3601 1899 3601 1898 3600 1897 3601 1894 3601 1893 3602 1892 3602 1891 3603 1891 3603 1891 3604 1891 3604 1891 3604 1890 3604 1890 3604 1889 3604 1888 3604 1888 3604 1887 3604 1886 3604 1886 3603 1885 3604 1885 3604 1883 3605 1883 3608 1883 3608 1884 3608 1884 3608 1885 3609 1886 3609 1887 3609 1887 3609 1888 3609 1889 3609 1889 3609 1890 3609 1889 3610 1888 3610 1886 3610 1885 3610 1884 3610 1884 3610 1883 3610 1883 3610 1883 3611 1883 3611 1881 3612 1881 3612 1880 3613 1880 3613 1879 3613 1879 3613 1879 3613 1878 3614 1878 3614 1877 3615 1879 3617 1879 3617 1880 3617 1880 3617 1881 3617 1882 3617 1882 3617 1883 3617 1883 3617 1883 3618 1883 3618 1884 3619 1884 3619 1885 3619 1886 3619 1886 3619 1887 3619 1887 3619 1889 3619 1889 3619 1890 3618 1891 3617 1893 3618 1895 3618 1895 3618 1895 3617 1895 3616 1895 3616 1895 3615 1896 3615 1896 3615 1897 3615 1897 3615 1898 3616 1899 3616 1899 3617 1899 3617 1899 3618 1900 3618 1900 3617 1901 3617 1901 3617 1901 3616 1901 3615 1901 3615 1902 3615 1903 3616 1903 3616 1904 3616 1905 3616 1905 3616 1906 3615 1907 3616 1908 3616 1906 3617 1906 3618 1905 3618 1902 3620 1902 3621 1901 3621 1901 3621 1900 3621 1899 3622 1899 3622 1898 3622 1898 3622 1897 3621 1897 3621 1897 3620 1894 3619 1894 3619 1894 3619 1891 3620 1890 3622 1890 3622 1890 3623 1890 3624 1889 3624 1889 3624 1888 3624 1888 3623 1887 3623 1887 3623 1887 3622 1887 3622 1886 3621 1885 3621 1885 3620 1885 3620 1884 3620 1882 3620 1881 3620 1879 3620 1879 3620 1878 3620 1873 3620 1873 3620 1872 3620 1871 3621 1871 3621 1871 3621 1871 3622 1873 3622 1874 3622 1875 3622 1878 3624 1877 3624 1876 3624 1875 3624 1875 3625 1874 3625 1874 3625 1876 3627 1876 3627 1878 3627 1878 3628 1877 3628 1876 3628 1876 3628 1875 3628 1874 3628 1873 3628 1873 3628 1873 3628 1873 3627 1873 3627 1872 3626 1871 3625 1871 3625 1870 3624 1870 3624 1869 3624 1868 3623 1867 3623 1866 3622 1866 3621 1866 3621 1865 3621 1863 3621 1862 3621 1861 3620 1860 3620 1858 3620 1857 3620 1856 3621 1856 3621 1856 3622 1857 3622 1858 3622 1858 3622 1859 3622 1859 3623 1859 3623 1858 3623 1858 3623 1857 3623 1856 3623 1855 3623 1855 3623 1856 3624 1856 3624 1855 3624 1854 3624 1853 3624 1853 3625 1855 3625 1855 3625 1856 3625 1856 3626 1856 3626 1854 3626 1853 3626 1853 3626 1852 3626 1852 3626 1851 3626 1851 3626 1850 3628 1850 3629 1851 3629 1854 3629 1856 3629 1857 3630 1857 3631 1857 3631 1856 3631 1855 3631 1855 3631 1854 3631 1854 3632 1853 3631 1852 3631 1850 3631 1848 3631 1847 3631 1846 3631 1845 3631 1844 3631 1843 3631 1842 3631 1839 3632 1838 3633 1839 3634 1840 3634 1840 3634 1841 3634 1842 3634 1842 3635 1842 3635 1842 3635 1840 3635 1838 3636 1838 3636 1838 3636 1839 3637 1840 3637 1841 3637 1841 3637 1841 3638 1840 3638 1840 3638 1837 3638 1836 3638 1835 3638 1835 3638 1834 3638 1833 3638 1833 3639 1832 3639 1832 3638 1832 3638 1831 3638 1831 3638 1830 3638 1829 3639 1827 3642 1827 3642 1828 3642 1829 3642 1832 3643 1830 3644 1830 3644 1829 3644 1829 3644 1828 3645 1827 3647 1829 3648 1830 3648 1831 3648 1831 3648 1831 3649 1830 3649 1830 3649 1829 3649 1827 3650 1826 3650 1825 3650 1825 3651 1825 3651 1826 3651 1826 3651 1827 3651 1828 3651 1828 3651 1829 3651 1831 3651 1832 3651 1832 3651 1833 3651 1833 3651 1835 3650 1836 3650 1836 3650 1837 3649 1837 3649 1840 3650 1840 3650 1840 3650 1840 3651 1840 3651 1839 3652 1839 3652 1838 3652 1837 3652 1837 3652 1836 3652 1835 3652 1835 3652 1834 3652 1834 3652 1833 3653 1833 3653 1832 3653 1831 3653 1831 3653 1830 3653 1827 3654 1827 3655 1828 3655 1828 3655 1829 3655 1830 3655 1830 3655 1831 3655 1832 3655 1832 3655 1833 3655 1834 3655 1835 3655 1835 3656 1835 3656 1835 3656 1833 3657 1831 3657 1830 3658 1832 3660 1832 3660 1837 3660 1840 3660 1842 3660 1843 3660 1845 3660 1847 3660 1848 3661 1849 3661 1850 3661 1850 3661 1852 3662 1853 3662 1854 3662 1855 3662 1854 3661 1853 3661 1852 3661 1851 3661 1851 3661 1850 3661 1850 3660 1849 3660 1849 3660 1850 3660 1850 3660 1852 3660 1852 3661 1853 3660 1853 3660 1853 3660 1852 3660 1852 3659 1849 3659 1846 3658 1847 3657 1847 3657 1848 3657 1848 3657 1849 3657 1849 3656 1850 3656 1850 3656 1851 3655 1852 3655 1853 3655 1855 3655 1857 3654 1857 3654 1858 3654 1859 3654 1860 3654 1865 3654 1867 3654 1867 3654 1868 3654 1869 3654 1870 3654 1871 3655 1872 3655 1873 3655 1872 3656 1871 3656 1871 3656 1870 3656 1869 3656 1869 3656 1869 3656 1868 3655 1868 3655 1868 3655 1867 3655 1865 3655 1864 3655 1863 3655 1863 3655 1860 3655 1858 3656 1857 3656 1856 3656 1853 3657 1854 3658 1854 3659 1855 3659 1857 3659 1857 3659 1859 3659 1860 3659 1861 3660 1863 3660 1864 3660 1865 3661 1865 3661 1865 3661 1865 3662 1864 3662 1863 3661 1863 3661 1862 3661 1861 3661 1860 3661 1859 3660 1858 3660 1858 3660 1857 3661 1857 3662 1858 3662 1858 3662 1859 3662 1859 3662 1860 3663 1861 3663 1861 3663 1860 3663 1859 3663 1859 3663 1859 3663 1858 3663 1859 3664 1859 3665 1860 3665 1860 3665 1861 3665 1861 3665 1862 3665 1862 3665 1863 3665 1863 3666 1862 3666 1862 3666 1862 3666 1861 3667 1861 3667 1859 3667 1859 3667 1859 3668 1858 3668 1858 3668 1859 3668 1859 3668 1860 3668 1860 3668 1861 3668 1861 3668 1862 3668 1862 3668 1863 3667 1863 3667 1863 3667 1864 3667 1864 3667 1865 3667 1865 3667 1866 3668 1866 3668 1866 3669 1866 3669 1866 3670 1866 3670 1866 3670 1867 3670 1867 3671 1869 3670 1870 3670 1871 3670 1871 3670 1872 3670 1873 3670 1874 3671 1874 3671 1877 3672 1877 3674 1877 3675 1877 3675 1877 3676 1876 3677 1876 3678 1875 3678 1875 3678 1875 3679 1876 3679 1876 3679 1877 3679 1878 3679 1879 3680 1881 3681 1881 3681 1882 3681 1883 3682 1886 3684 1885 3685 1885 3685 1884 3685 1884 3685 1884 3685 1883 3685 1880 3685 1878 3684 1877 3684 1877 3684 1877 3686 1877 3687 1878 3687 1879 3687 1879 3688 1880 3688 1880 3688 1881 3689 1881 3689 1882 3689 1883 3689 1886 3689 1887 3689 1887 3689 1888 3689 1892 3689 1893 3689 1890 3690 1888 3690 1888 3690 1888 3691 1888 3691 1885 3692 1885 3692 1885 3692 1884 3692 1884 3692 1883 3692 1882 3692 1882 3692 1881 3692 1882 3692 1882 3692 1883 3692 1883 3693 1883 3693 1883 3693 1883 3694 1882 3694 1883 3694 1883 3694 1883 3695 1884 3695 1886 3695 1886 3695 1887 3695 1887 3695 1887 3695 1887 3694 1887 3694 1887 3693 1888 3693 1888 3693 1889 3693 1890 3693 1891 3693 1894 3694 1895 3694 1895 3694 1895 3695 1895 3695 1895 3696 1896 3696 1896 3696 1898 3697 1900 3698 1901 3699 1902 3699 1901 3699 1901 3699 1900 3699 1899 3700 1900 3701 1900 3701 1901 3701 1901 3702 1901 3702 1900 3702 1900 3702 1899 3702 1898 3702 1897 3702 1897 3702 1896 3702 1896 3702 1896 3702 1897 3703 1897 3703 1898 3703 1898 3703 1899 3703 1897 3704 1896 3704 1896 3704 1895 3703 1894 3703 1893 3703 1893 3704 1893 3704 1892 3704 1892 3704 1890 3705 1886 3707 1886 3707 1886 3707 1886 3707 1887 3707 1887 3707 1888 3707 1889 3707 1893 3706 1894 3706 1894 3706 1895 3706 1896 3705 1896 3705 1896 3705 1897 3705 1897 3705 1897 3705 1902 3707 1902 3708 1902 3708 1902 3709 1901 3709 1901 3709 1900 3709 1899 3709 1899 3709 1898 3709 1898 3710 1899 3710 1897 3710 1896 3710 1895 3710 1894 3711 1893 3710 1891 3710 1890 3710 1889 3710 1889 3710 1888 3711 1887 3711 1885 3711 1883 3711 1882 3711 1881 3711 1879 3711 1878 3711 1878 3711 1877 3711 1876 3711 1876 3711 1876 3712 1876 3712 1877 3712 1878 3712 1879 3712 1880 3712 1881 3712 1879 3713 1879 3713 1877 3713 1877 3713 1876 3713 1876 3713 1876 3713 1877 3714 1877 3714 1878 3714 1880 3714 1882 3714 1884 3713 1885 3713 1887 3713 1888 3713 1889 3713 1889 3713 1891 3713 1891 3713 1892 3714 1893 3714 1893 3714 1894 3714 1894 3715 1895 3715 1895 3715 1896 3714 1896 3714 1896 3713 1897 3713 1897 3713 1898 3713 1898 3713 1899 3713 1899 3713 1900 3713 1900 3713 1901 3713 1901 3713 1901 3713 1902 3713 1902 3712 1903 3713 1903 3713 1904 3713 1904 3714 1904 3714 1903 3714 1903 3714 1902 3715 1902 3715 1901 3715 1900 3715 1900 3715 1900 3715 1901 3715 1902 3716 1902 3716 1903 3716 1903 3716 1904 3716 1904 3717 1903 3717 1903 3717 1902 3717 1901 3717 1901 3717 1902 3717 1902 3717 1903 3718 1903 3719 1902 3719 1900 3719 1899 3719 1898 3720 1898 3720 1896 3719 1894 3719 1894 3719 1893 3719 1893 3719 1892 3719 1893 3720 1893 3720 1893 3720 1894 3720 1894 3721 1895 3721 1895 3722 1895 3722 1896 3723 1896 3723 1896 3724 1897 3724 1897 3724 1898 3723 1899 3723 1899 3723 1900 3723 1901 3722 1903 3722 1905 3722 1906 3722 1906 3722 1906 3723 1907 3723 1907 3723 1908 3724 1908 3725 1908 3727 1907 3728 1907 3728 1907 3728 1906 3729 1907 3729 1907 3729 1908 3729 1908 3729 1909 3728 1909 3728 1909 3728 1910 3728 1910 3728 1910 3728 1911 3728 1912 3728 1912 3728 1913 3728 1913 3728 1914 3728 1915 3728 1915 3728 1916 3727 1916 3727 1916 3726 1917 3726 1917 3726 1918 3726 1919 3726 1920 3726 1920 3727 1920 3727 1921 3728 1921 3728 1920 3729 1920 3729 1919 3729 1919 3730 1919 3730 1919 3731 1919 3732 1919 3732 1918 3732 1915 3733 1915 3733 1914 3733 1914 3733 1914 3733 1913 3733 1913 3733 1913 3733 1912 3732 1912 3732 1911 3732 1911 3731 1911 3731 1910 3731 1910 3731 1909 3731 1909 3731 1908 3731 1908 3732 1908 3732 1908 3733 1908 3733 1908 3734 1908 3734 1907 3734 1907 3734 1906 3734 1901 3733 1900 3733 1899 3733 1898 3732 1898 3732 1898 3732 1897 3731 1894 3731 1894 3731 1893 3731 1891 3731 1889 3730 1889 3730 1888 3730 1887 3730 1887 3730 1886 3731 1886 3731 1887 3731 1887 3731 1887 3731 1888 3731 1888 3732 1889 3732 1890 3732 1891 3732 1891 3732 1892 3732 1892 3732 1892 3732 1892 3732 1891 3732 1891 3732 1890 3732 1889 3732 1889 3732 1889 3732 1890 3733 1891 3733 1891 3733 1892 3733 1893 3734 1894 3734 1894 3734 1893 3734 1892 3734 1890 3734 1889 3734 1888 3734 1888 3734 1887 3734 1888 3735 1888 3735 1888 3735 1889 3735 1889 3735 1890 3735 1891 3736 1891 3737 1891 3737 1891 3737 1892 3737 1892 3737 1893 3736 1893 3736 1894 3736 1895 3736 1895 3736 1895 3736 1897 3736 1901 3737 1902 3737 1904 3737 1904 3737 1905 3737 1906 3737 1906 3738 1904 3739 1904 3739 1903 3739 1902 3739 1902 3739 1902 3740 1902 3740 1903 3740 1903 3740 1903 3740 1904 3740 1905 3740 1905 3739 1906 3739 1907 3739 1907 3739 1907 3740 1907 3740 1905 3741 1904 3742 1903 3743 1902 3743 1902 3744 1901 3744 1900 3744 1899 3744 1898 3744 1898 3744 1897 3744 1897 3743 1896 3743 1896 3743 1896 3743 1895 3742 1895 3742 1891 3742 1891 3743 1890 3743 1890 3743 1889 3743 1891 3744 1892 3745 1892 3745 1895 3745 1895 3745 1896 3745 1897 3745 1897 3745 1898 3746 1899 3746 1900 3746 1900 3746 1900 3746 1899 3747 1898 3747 1897 3748 1897 3748 1896 3748 1895 3748 1894 3748 1892 3749 1891 3749 1890 3749 1889 3749 1889 3749 1889 3749 1889 3750 1889 3750 1890 3751 1890 3751 1891 3751 1891 3752 1890 3752 1889 3752 1888 3752 1888 3753 1887 3753 1886 3753 1886 3753 1885 3754 1884 3755 1884 3755 1885 3755 1885 3755 1885 3755 1886 3756 1887 3757 1887 3758 1887 3758 1883 3759 1883 3760 1882 3760 1880 3760 1878 3760 1878 3760 1877 3760 1876 3760 1876 3760 1875 3760 1875 3760 1875 3759 1875 3759 1875 3759 1875 3758 1875 3758 1875 3757 1875 3757 1875 3757 1873 3756 1872 3756 1871 3756 1870 3755 1870 3755 1869 3755 1869 3755 1868 3755 1867 3755 1866 3754 1866 3754 1866 3754 1865 3754 1865 3754 1864 3755 1865 3756 1865 3756 1866 3756 1867 3757 1868 3757 1868 3758 1868 3758 1868 3759 1868 3759 1867 3759 1867 3759 1866 3759 1864 3759 1864 3759 1863 3759 1861 3759 1861 3759 1861 3759 1860 3759 1860 3759 1859 3759 1859 3760 1858 3760 1857 3760 1857 3760 1856 3760 1856 3760 1854 3760 1854 3760 1853 3760 1853 3760 1853 3761 1854 3761 1855 3761 1856 3761 1859 3761 1863 3761 1864 3761 1865 3761 1865 3761 1865 3761 1867 3763 1867 3763 1865 3763 1859 3763 1856 3763 1856 3763 1851 3764 1851 3764 1850 3764 1849 3764 1847 3765 1846 3765 1846 3765 1846 3766 1847 3766 1847 3766 1848 3766 1849 3766 1850 3766 1851 3766 1852 3766 1852 3766 1853 3766 1854 3765 1854 3765 1855 3765 1856 3765 1858 3765 1858 3765 1859 3765 1861 3765 1862 3765 1863 3765 1864 3765 1866 3765 1867 3765 1867 3766 1867 3766 1866 3766 1865 3767 1864 3767 1862 3768 1860 3768 1858 3769 1857 3769 1855 3769 1854 3770 1852 3770 1851 3770 1850 3770 1846 3771 1840 3772 1837 3773 1834 3773 1833 3773 1832 3773 1832 3774 1831 3774 1830 3774 1829 3774 1829 3775 1828 3775 1827 3775 1826 3775 1824 3775 1823 3775 1822 3775 1821 3776 1819 3776 1818 3776 1817 3777 1816 3777 1816 3777 1815 3777 1813 3777 1812 3777 1811 3777 1809 3777 1807 3777 1806 3777 1805 3777 1804 3778 1802 3778 1801 3778 1799 3778 1798 3778 1796 3779 1795 3779 1794 3779 1791 3779 1790 3779 1789 3779 1788 3779 1788 3779 1787 3779 1787 3780 1786 3780 1786 3780 1785 3780 1785 3780 1784 3780 1783 3780 1781 3780 1780 3780 1780 3780 1779 3780 1778 3780 1777 3780 1777 3781 1776 3781 1776 3781 1775 3781 1775 3781 1774 3781 1774 3781 1772 3781 1772 3781 1771 3781 1770 3781 1769 3781 1768 3781 1768 3781 1767 3781 1765 3781 1764 3782 1760 3782 1760 3783 1759 3783 1759 3783 1759 3784 1759 3784 1758 3785 1757 3786 1757 3786 1756 3787 1755 3787 1755 3787 1754 3787 1753 3787 1752 3787 1749 3788 1747 3788 1747 3788 1747 3788 1744 3788 1742 3787 1739 3787 1737 3787 1736 3787 1734 3787 1731 3787 1729 3787 1725 3787 1724 3787 1723 3787 1722 3787 1719 3787 1717 3787 1714 3787 1712 3786 1710 3786 1709 3786 1707 3786 1705 3787 1703 3787 1701 3787 1699 3787 1698 3787 1697 3787 1696 3787 1696 3787 1695 3787 1694 3786 1692 3786 1690 3786 1689 3786 1688 3786 1686 3785 1686 3785 1685 3785 1684 3785 1682 3786 1680 3786 1678 3786 1676 3785 1673 3785 1672 3785 1671 3785 1670 3785 1668 3785 1667 3785 1666 3784 1662 3784 1662 3784 1661 3783 1659 3783 1659 3783 1658 3782 1658 3782 1658 3782 1657 3781 1657 3781 1657 3780 1657 3780 1656 3778 1656 3778 1655 3778 1655 3777 1655 3777 1653 3777 1652 3777 1651 3777 1648 3777 1647 3777 1643 3777 1643 3777 1643 3777 1642 3777 1642 3777 1641 3777 1640 3776 1640 3776 1639 3776 1638 3776 1635 3775 1634 3775 1633 3775 1632 3775 1632 3776 1633 3776 1633 3776 1634 3777 1633 3777 1633 3777 1633 3777 1632 3777 1632 3777 1631 3777 1629 3778 1627 3778 1626 3778 1624 3778 1624 3778 1623 3779 1623 3779 1622 3780 1621 3780 1621 3780 1621 3781 1622 3781 1622 3781 1623 3781 1624 3782 1623 3782 1622 3782 1622 3783 1622 3783 1622 3784 1623 3784 1624 3784 1625 3784 1625 3784 1627 3785 1627 3785 1630 3786 1631 3786 1631 3786 1632 3786 1632 3787 1632 3787 1633 3787 1634 3788 1634 3789 1634 3789 1635 3789 1635 3789 1637 3790 1637 3790 1638 3790 1640 3791 1642 3791 1642 3792 1643 3792 1644 3793 1645 3793 1646 3794 1646 3794 1647 3794 1648 3794 1649 3794 1650 3795 1652 3795 1652 3795 1653 3795 1653 3795 1654 3795 1655 3796 1658 3797 1663 3799 1665 3800 1666 3800 1667 3800 1667 3800 1667 3801 1668 3801 1669 3801 1670 3801 1671 3801 1671 3801 1674 3800 1677 3800 1679 3800 1680 3800 1682 3800 1682 3800 1684 3800 1685 3800 1687 3800 1689 3800 1693 3800 1695 3800 1697 3800 1698 3800 1702 3801 1705 3801 1706 3801 1708 3801 1708 3802 1710 3802 1710 3802 1711 3802 1712 3803 1711 3803 1711 3803 1711 3803 1711 3803 1710 3804 1709 3804 1706 3806 1704 3807 1703 3807 1701 3807 1698 3808 1697 3808 1695 3809 1693 3809 1692 3809 1691 3810 1690 3810 1689 3810 1687 3810 1685 3810 1683 3810 1682 3811 1679 3811 1678 3811 1677 3810 1675 3810 1673 3810 1670 3810 1668 3810 1667 3809 1663 3809 1662 3809 1661 3808 1660 3808 1657 3808 1655 3808 1655 3808 1647 3807 1645 3807 1641 3807 1640 3807 1638 3807 1637 3807 1635 3807 1632 3807 1631 3807 1630 3807 1628 3807 1626 3807 1624 3807 1622 3807 1622 3807 1621 3806 1618 3806 1611 3806 1608 3805 1604 3805 1602 3805 1601 3805 1597 3805 1596 3804 1594 3804 1594 3804 1593 3804 1592 3804 1592 3804 1591 3803 1590 3803 1590 3803 1589 3803 1588 3802 1587 3802 1584 3802 1581 3802 1580 3802 1578 3802 1576 3802 1576 3802 1575 3802 1574 3802 1573 3803 1573 3803 1574 3803 1574 3804 1575 3804 1576 3804 1577 3804 1577 3805 1581 3805 1583 3806 1583 3806 1584 3806 1585 3806 1587 3806 1587 3807 1587 3807 1586 3807 1586 3807 1585 3807 1584 3807 1582 3807 1577 3806 1576 3806 1574 3806 1574 3806 1573 3806 1574 3807 1578 3808 1580 3808 1583 3808 1584 3808 1588 3809 1590 3809 1591 3809 1593 3810 1597 3810 1601 3810 1603 3811 1604 3811 1604 3811 1605 3811 1609 3811 1611 3811 1611 3811 1612 3811 1613 3811 1614 3811 1616 3812 1617 3812 1620 3812 1621 3812 1623 3812 1626 3813 1627 3813 1628 3813 1630 3813 1631 3814 1632 3814 1633 3814 1635 3815 1636 3815 1636 3815 1637 3816 1637 3817 1637 3817 1637 3818 1636 3818 1636 3818 1635 3819 1635 3819 1634 3819 1633 3819 1632 3819 1630 3820 1627 3820 1627 3820 1622 3821 1617 3821 1614 3821 1611 3821 1608 3822 1606 3822 1605 3822 1604 3822 1602 3822 1599 3822 1596 3821 1595 3821 1591 3821 1588 3821 1587 3821 1585 3821 1584 3821 1583 3821 1582 3821 1580 3821 1576 3820 1570 3819 1567 3818 1566 3818 1564 3818 1559 3817 1557 3816 1557 3816 1556 3816 1555 3816 1555 3815 1554 3815 1554 3815 1553 3815 1552 3814 1551 3814 1550 3813 1550 3813 1549 3813 1548 3813 1548 3813 1547 3813 1546 3813 1545 3813 1543 3813 1542 3813 1539 3813 1537 3813 1535 3813 1534 3813 1533 3813 1533 3814 1532 3814 1532 3814 1532 3815 1532 3815 1533 3815 1534 3815 1537 3816 1539 3817 1540 3817 1542 3818 1543 3819 1545 3821 1545 3822 1546 3822 1546 3822 1547 3823 1549 3823 1549 3824 1551 3824 1552 3825 1553 3825 1554 3825 1555 3826 1556 3826 1556 3826 1557 3826 1557 3827 1559 3827 1559 3827 1560 3827 1560 3827 1562 3827 1563 3827 1564 3826 1565 3826 1565 3826 1566 3826 1567 3826 1568 3826 1570 3826 1570 3827 1571 3827 1572 3827 1573 3827 1574 3827 1574 3828 1575 3828 1575 3829 1576 3829 1576 3829 1576 3830 1577 3830 1577 3830 1578 3830 1579 3831 1581 3831 1581 3832 1582 3832 1584 3832 1584 3832 1586 3833 1586 3833 1586 3834 1587 3834 1587 3834 1588 3834 1589 3834 1589 3834 1590 3834 1590 3834 1591 3834 1591 3833 1590 3832 1590 3831 1589 3830 1589 3830 1589 3830 1588 3829 1588 3829 1589 3828 1590 3828 1591 3828 1592 3828 1592 3828 1593 3828 1594 3828 1596 3828 1597 3828 1598 3828 1599 3828 1600 3828 1604 3828 1607 3829 1610 3829 1612 3829 1613 3829 1617 3829 1620 3829 1622 3829 1625 3829 1627 3829 1630 3829 1632 3828 1634 3828 1637 3828 1638 3828 1640 3828 1641 3828 1643 3829 1645 3829 1647 3829 1649 3829 1650 3829 1653 3830 1654 3830 1654 3830 1655 3831 1656 3831 1657 3831 1658 3832 1659 3833 1659 3833 1659 3834 1660 3834 1660 3835 1659 3835 1658 3836 1658 3836 1657 3837 1656 3837 1655 3837 1654 3838 1653 3838 1651 3838 1651 3839 1649 3839 1648 3839 1647 3840 1645 3840 1644 3840 1642 3840 1640 3840 1639 3841 1638 3841 1633 3841 1632 3841 1631 3841 1628 3841 1627 3841 1622 3841 1621 3841 1620 3841 1618 3841 1615 3840 1613 3840 1611 3840 1608 3840 1606 3839 1603 3839 1603 3839 1601 3839 1601 3839 1599 3839 1598 3839 1598 3839 1599 3839 1600 3840 1601 3840 1602 3840 1604 3840 1606 3840 1613 3842 1615 3842 1616 3842 1618 3842 1623 3843 1624 3843 1625 3843 1627 3843 1628 3843 1630 3843 1634 3843 1637 3843 1643 3843 1647 3843 1650 3842 1651 3843 1653 3843 1654 3843 1655 3843 1656 3843 1660 3843 1661 3844 1662 3844 1663 3844 1664 3844 1665 3845 1665 3845 1666 3846 1667 3846 1668 3846 1669 3846 1670 3847 1671 3847 1672 3847 1675 3849 1676 3849 1677 3850 1677 3850 1678 3851 1678 3851 1679 3851 1680 3851 1682 3851 1683 3851 1684 3852 1684 3852 1687 3852 1688 3852 1691 3852 1692 3852 1693 3852 1694 3853 1696 3853 1697 3853 1699 3853 1701 3854 1703 3854 1704 3854 1705 3854 1706 3854 1713 3855 1714 3855 1717 3856 1721 3856 1725 3856 1728 3857 1730 3857 1732 3857 1732 3857 1734 3857 1735 3857 1740 3858 1751 3858 1753 3858 1755 3858 1760 3858 1762 3859 1764 3859 1766 3859 1767 3859 1770 3860 1773 3860 1776 3860 1778 3861 1781 3861 1784 3861 1786 3861 1786 3861 1791 3862 1792 3862 1794 3862 1798 3863 1800 3863 1805 3864 1808 3864 1810 3865 1813 3865 1814 3865 1818 3866 1822 3866 1825 3867 1827 3867 1829 3868 1831 3868 1832 3868 1834 3868 1838 3869 1841 3869 1845 3870 1848 3870 1849 3870 1851 3870 1854 3871 1857 3871 1860 3872 1863 3872 1866 3873 1868 3873 1869 3873 1871 3873 1873 3873 1877 3874 1880 3874 1880 3874 1882 3875 1885 3875 1887 3875 1890 3876 1892 3876 1895 3876 1904 3877 1906 3878 1911 3878 1916 3878 1919 3879 1921 3879 1922 3879 1924 3879 1926 3880 1928 3880 1930 3880 1931 3881 1933 3881 1934 3882 1934 3882 1935 3882 1936 3883 1936 3883 1936 3884 1935 3884 1935 3884 1933 3885 1932 3885 1931 3886 1930 3886 1930 3887 1930 3887 1931 3887 1931 3888 1932 3888 1934 3888 1934 3888 1936 3889 1937 3889 1938 3889 1940 3889 1942 3889 1943 3889 1945 3889 1947 3889 1949 3888 1949 3888 1950 3888 1951 3888 1952 3888 1953 3887 1954 3887 1956 3886 1961 3885 1965 3884 1966 3884 1967 3884 1967 3884 1968 3883 1971 3883 1973 3882 1976 3882 1977 3881 1979 3881 1982 3880 1985 3879 1985 3879 1986 3879 1988 3878 1989 3878 1990 3878 1994 3877 1999 3877 2000 3877 2002 3877 2003 3876 2004 3876 2007 3876 2009 3876 2010 3875 2012 3875 2013 3875 2015 3875 2017 3875 2019 3874 2021 3874 2029 3874 2030 3874 2032 3874 2035 3873 2037 3873 2039 3873 2040 3873 2041 3873 2042 3873 2043 3873 2044 3873 2046 3873 2048 3873 2051 3873 2054 3872 2057 3872 2061 3872 2062 3872 2064 3872 2066 3871 2068 3871 2071 3871 2072 3871 2073 3871 2078 3871 2081 3871 2082 3870 2084 3870 2089 3870 2091 3870 2094 3870 2099 3870 2106 3870 2109 3869 2115 3869 2119 3869 2120 3869 2123 3869 2125 3869 2126 3869 2132 3869 2137 3869 2140 3869 2145 3869 2149 3869 2151 3870 2156 3870 2163 3870 2165 3870 2167 3870 2170 3870 2171 3870 2172 3870 2173 3870 2174 3870 2177 3870 2181 3870 2182 3870 2184 3870 2187 3870 2188 3870 2189 3870 2192 3869 2194 3869 2195 3869 2196 3868 2197 3868 2198 3868 2198 3868 2199 3867 2200 3867 2200 3866 2200 3866 2201 3865 2201 3865 2202 3864 2203 3864 2205 3863 2206 3863 2206 3863 2210 3863 2212 3862 2215 3862 2220 3862 2223 3861 2226 3861 2228 3861 2231 3861 2233 3861 2237 3860 2242 3860 2244 3860 2245 3860 2248 3859 2249 3859 2251 3859 2253 3859 2255 3859 2256 3859 2259 3859 2262 3858 2264 3858 2265 3858 2266 3858 2267 3858 2269 3857 2270 3857 2271 3857 2273 3857 2275 3857 2276 3856 2277 3856 2279 3856 2280 3856 2282 3856 2282 3856 2283 3856 2284 3856 2284 3856 2285 3856 2285 3855 2286 3855 2287 3855 2289 3855 2289 3855 2290 3855 2292 3855 2292 3855 2294 3855 2296 3855 2301 3855 2303 3855 2306 3855 2307 3855 2308 3855 2310 3855 2311 3854 2312 3854 2314 3854 2315 3854 2316 3854 2318 3853 2319 3853 2319 3853 2320 3853 2321 3853 2322 3852 2324 3852 2326 3852 2326 3852 2330 3852 2333 3852 2335 3852 2337 3852 2339 3852 2340 3852 2340 3852 2341 3852 2342 3852 2343 3851 2344 3851 2346 3851 2346 3851 2348 3851 2352 3851 2353 3851 2355 3851 2355 3851 2357 3851 2358 3851 2362 3851 2365 3850 2367 3850 2368 3850 2368 3849 2370 3849 2371 3849 2375 3849 2378 3849 2379 3849 2379 3849 2379 3848 2378 3848 2379 3848 2386 3847 2386 3847 2388 3847 2391 3847 2394 3847 2396 3847 2396 3847 2400 3847 2403 3847 2405 3847 2407 3846 2408 3846 2411 3846 2412 3846 2415 3846 2416 3846 2417 3846 2419 3845 2420 3845 2422 3845 2423 3845 2424 3844 2425 3844 2426 3843 2426 3843 2427 3842 2427 3842 2427 3841 2427 3841 2427 3840 2426 3840 2426 3840 2426 3840 2425 3840 2425 3839 2424 3839 2423 3839 2423 3839 2422 3839 2420 3838 2418 3838 2417 3838 2414 3838 2409 3837 2408 3837 2406 3837 2403 3837 2401 3836 2400 3836 2398 3836 2395 3835 2395 3835 2393 3835 2393 3835 2394 3834 2394 3834 2395 3834 2396 3834 2397 3834 2398 3834 2400 3834 2401 3833 2402 3833 2406 3832 2407 3832 2408 3832 2409 3832 2410 3831 2412 3831 2413 3830 2414 3830 2415 3830 2416 3830 2418 3829 2419 3829 2421 3828 2421 3828 2423 3828 2424 3828 2427 3827 2428 3827 2430 3827 2431 3827 2434 3826 2436 3826 2441 3825 2442 3825 2442 3825 2441 3824 2440 3824 2439 3824 2439 3824 2438 3824 2436 3824 2434 3824 2433 3825 2430 3825 2429 3825 2426 3825 2424 3825 2419 3826 2418 3826 2416 3826 2414 3826 2413 3826 2409 3826 2406 3826 2401 3827 2399 3827 2398 3827 2396 3827 2395 3827 2394 3827 2393 3828 2391 3828 2389 3828 2386 3828 2384 3829 2383 3829 2382 3829 2381 3829 2373 3830 2371 3830 2367 3830 2366 3831 2365 3831 2364 3831 2362 3831 2359 3831 2355 3831 2353 3831 2352 3832 2350 3832 2349 3832 2348 3832 2345 3831 2344 3831 2340 3831 2339 3831 2338 3831 2337 3831 2335 3830 2334 3830 2333 3830 2333 3830 2332 3830 2331 3829 2331 3829 2330 3829 2330 3828 2329 3828 2327 3828 2324 3827 2323 3827 2319 3827 2318 3827 2316 3826 2311 3826 2310 3826 2308 3826 2303 3825 2302 3825 2300 3825 2300 3825 2299 3824 2298 3824 2298 3824 2297 3824 2297 3823 2297 3823 2296 3823 2296 3822 2295 3822 2295 3821 2295 3821 2295 3820 2296 3818 2297 3818 2297 3818 2298 3816 2299 3816 2300 3816 2303 3814 2305 3813 2307 3812 2309 3811 2310 3811 2311 3811 2314 3810 2319 3809 2319 3808 2320 3808 2321 3808 2322 3808 2323 3808 2323 3807 2324 3807 2325 3807 2326 3806 2329 3805 2333 3803 2334 3803 2335 3803 2335 3803 2336 3803 2338 3802 2339 3802 2340 3802 2341 3802 2341 3802 2342 3802 2344 3801 2344 3800 2345 3800 2346 3800 2346 3800 2347 3800 2349 3800 2350 3800 2351 3800 2351 3800 2352 3799 2353 3799 2355 3799 2355 3798 2357 3798 2358 3798 2359 3798 2361 3798 2362 3798 2364 3798 2365 3798 2367 3798 2368 3798 2369 3798 2370 3798 2371 3798 2372 3797 2373 3797 2373 3797 2375 3796 2376 3795 2377 3795 2378 3795 2379 3794 2381 3794 2383 3794 2383 3794 2384 3794 2385 3794 2386 3794 2386 3794 2387 3793 2389 3793 2391 3793 2392 3793 2393 3793 2394 3792 2395 3792 2396 3792 2397 3792 2398 3791 2399 3791 2401 3790 2401 3790 2402 3790 2405 3790 2407 3790 2407 3789 2408 3789 2409 3789 2409 3789 2410 3789 2410 3789 2411 3788 2411 3788 2412 3788 2412 3787 2413 3787 2414 3787 2414 3787 2417 3787 2418 3786 2419 3786 2421 3786 2422 3786 2423 3785 2424 3785 2424 3785 2430 3785 2431 3785 2432 3785 2434 3785 2435 3784 2438 3785 2439 3785 2440 3785 2441 3784 2442 3784 2443 3784 2443 3784 2444 3783 2445 3783 2446 3783 2447 3783 2448 3783 2449 3783 2451 3783 2451 3783 2452 3783 2452 3782 2451 3782 2451 3782 2450 3782 2451 3781 2453 3781 2454 3781 2455 3781 2456 3781 2456 3781 2457 3782 2457 3782 2458 3782 2458 3782 2459 3782 2459 3782 2460 3782 2460 3782 2461 3781 2462 3781 2466 3780 2468 3780 2470 3779 2470 3779 2472 3779 2476 3779 2477 3779 2477 3779 2478 3779 2479 3778 2480 3778 2481 3778 2482 3778 2482 3778 2483 3778 2487 3778 2488 3778 2490 3778 2492 3777 2494 3777 2495 3777 2496 3777 2498 3777 2499 3777 2500 3777 2501 3777 2502 3777 2503 3777 2503 3777 2504 3777 2505 3777 2506 3777 2506 3777 2508 3777 2509 3777 2509 3777 2510 3776 2510 3776 2511 3776 2512 3776 2513 3776 2514 3776 2514 3776 2515 3776 2516 3776 2517 3776 2518 3776 2518 3776 2519 3776 2520 3776 2521 3776 2522 3775 2522 3775 2523 3775 2525 3775 2526 3775 2527 3775 2528 3775 2528 3775 2530 3775 2532 3776 2533 3776 2533 3776 2534 3776 2536 3776 2536 3776 2537 3776 2537 3776 2538 3776 2538 3776 2539 3776 2539 3776 2540 3776 2542 3776 2543 3776 2543 3776 2544 3776 2546 3776 2548 3775 2549 3775 2550 3775 2551 3774 2551 3774 2552 3774 2552 3773 2553 3773 2554 3773 2556 3773 2557 3773 2558 3773 2559 3772 2560 3773 2561 3773 2562 3773 2563 3773 2564 3773 2565 3773 2567 3773 2568 3773 2569 3773 2570 3773 2573 3773 2576 3773 2577 3773 2578 3773 2579 3773 2579 3773 2580 3773 2581 3773 2582 3773 2583 3773 2583 3773 2584 3773 2586 3773 2586 3773 2587 3773 2588 3773 2589 3773 2590 3772 2591 3772 2591 3772 2591 3772 2591 3772 2589 3771 2588 3771 2587 3771 2586 3771 2586 3770 2585 3770 2584 3770 2584 3769 2583 3769 2583 3768 2584 3768 2584 3768 2584 3768 2585 3768 2585 3767 2586 3767 2586 3767 2586 3767 2586 3766 2586 3766 2586 3765 2587 3765 2587 3765 2588 3765 2588 3765 2590 3765 2590 3765 2591 3764 2592 3764 2592 3764 2593 3764 2593 3763 2594 3763 2594 3763 2595 3763 2596 3762 2596 3762 2597 3762 2598 3761 2598 3761 2599 3761 2599 3760 2600 3759 2600 3758 2600 3758 2601 3757 2601 3757 2602 3757 2602 3756 2603 3756 2604 3756 2606 3756 2609 3755 2610 3755 2611 3755 2611 3754 2612 3754 2613 3754 2613 3754 2615 3754 2616 3754 2616 3754 2618 3753 2619 3753 2619 3753 2621 3753 2622 3752 2623 3752 2624 3752 2624 3751 2624 3751 2624 3751 2625 3750 2626 3750 2626 3750 2628 3750 2628 3750 2629 3750 2631 3749 2634 3748 2634 3748 2635 3748 2635 3748 2636 3748 2637 3747 2639 3747 2639 3747 2640 3747 2641 3747 2641 3747 2642 3747 2642 3747 2645 3746 2646 3746 2646 3746 2647 3746 2647 3746 2648 3746 2649 3746 2650 3746 2651 3745 2652 3745 2653 3744 2655 3744 2655 3744 2656 3744 2656 3743 2655 3743 2654 3743 2654 3743 2653 3743 2653 3743 2652 3743 2651 3743 2651 3743 2650 3743 2650 3743 2648 3743 2648 3743 2647 3743 2647 3743 2646 3743 2646 3743 2645 3743 2645 3743 2644 3743 2644 3743 2644 3742 2644 3742 2643 3742 2643 3741 2642 3741 2642 3741 2641 3741 2641 3742 2640 3742 2640 3742 2640 3742 2639 3742 2638 3743 2638 3743 2637 3743 2635 3744 2634 3744 2630 3745 2629 3745 2624 3745 2623 3745 2621 3746 2620 3746 2619 3746 2616 3746 2614 3745 2613 3745 2612 3745 2609 3745 2607 3745 2606 3745 2605 3744 2605 3744 2605 3744 2606 3744 2607 3744 2607 3744 2608 3744 2608 3744 2608 3744 2609 3744 2609 3744 2610 3744 2612 3743 2614 3742 2616 3741 2618 3741 2618 3741 2617 3740 2617 3740 2616 3740 2616 3740 2615 3740 2614 3741 2614 3741 2613 3741 2613 3741 2612 3741 2611 3741 2611 3741 2610 3741 2610 3741 2608 3742 2607 3742 2607 3742 2606 3742 2605 3741 2605 3741 2605 3741 2606 3741 2608 3739 2609 3739 2611 3739 2612 3738 2613 3738 2613 3738 2614 3738 2614 3738 2615 3737 2615 3736 2615 3735 2615 3735 2618 3734 2619 3734 2620 3733 2621 3733 2622 3733 2622 3733 2623 3733 2625 3733 2626 3733 2628 3732 2628 3732 2629 3732 2629 3732 2630 3732 2630 3732 2631 3731 2632 3731 2634 3731 2634 3732 2635 3732 2639 3732 2640 3732 2641 3732 2641 3732 2642 3732 2643 3732 2643 3732 2644 3732 2644 3732 2645 3732 2645 3732 2647 3731 2650 3731 2655 3729 2656 3729 2655 3729 2654 3729 2653 3729 2652 3728 2652 3728 2651 3728 2650 3728 2650 3727 2649 3727 2649 3727 2648 3727 2647 3727 2646 3726 2645 3726 2644 3726 2644 3726 2644 3725 2644 3725 2644 3725 2645 3725 2646 3725 2646 3725 2647 3725 2649 3725 2650 3725 2652 3725 2653 3725 2654 3725 2655 3725 2655 3725 2656 3725 2657 3725 2658 3726 2659 3726 2659 3726 2660 3726 2660 3726 2661 3726 2662 3725 2663 3725 2664 3724 2665 3724 2667 3724 2668 3724 2671 3723 2673 3723 2679 3722 2679 3721 2680 3721 2681 3721 2681 3720 2681 3720 2682 3720 2682 3719 2683 3719 2683 3719 2684 3719 2686 3719 2686 3719 2687 3718 2688 3718 2688 3718 2689 3718 2690 3717 2690 3717 2691 3717 2692 3716 2692 3716 2693 3715 2693 3715 2694 3714 2694 3714 2694 3713 2694 3712 2694 3712 2693 3711 2692 3710 2692 3710 2687 3708 2686 3708 2684 3708 2683 3707 2683 3707 2682 3707 2681 3707 2681 3707 2680 3706 2680 3706 2680 3706 2679 3704 2679 3703 2679 3703 2679 3702 2680 3702 2680 3702 2681 3702 2685 3701 2687 3701 2690 3701 2690 3701 2690 3702 2690 3702 2689 3703 2689 3704 2689 3704 2690 3705 2691 3706 2691 3706 2691 3706 2693 3707 2694 3707 2695 3707 2695 3707 2696 3707 2697 3707 2697 3707 2698 3707 2699 3707 2700 3707 2701 3707 2701 3706 2702 3706 2702 3706 2702 3705 2704 3704 2706 3702 2707 3702 2708 3702 2709 3701 2709 3701 2710 3701 2711 3700 2711 3700 2712 3700 2713 3700 2713 3699 2714 3699 2714 3698 2714 3698 2714 3698 2714 3698 2713 3698 2711 3698 2711 3697 2710 3697 2709 3697 2708 3697 2708 3696 2709 3696 2711 3696 2713 3695 2717 3695 2717 3695 2719 3695 2719 3695 2722 3695 2722 3695 2724 3695 2724 3696 2724 3696 2723 3696 2723 3696 2722 3696 2722 3696 2721 3697 2721 3697 2721 3697 2721 3697 2722 3697 2723 3697 2723 3697 2724 3698 2725 3698 2726 3698 2726 3698 2727 3698 2727 3698 2728 3698 2729 3699 2729 3699 2731 3699 2732 3700 2732 3700 2733 3701 2733 3701 2733 3701 2734 3702 2734 3702 2735 3703 2735 3703 2735 3704 2735 3705 2736 3706 2736 3707 2736 3708 2737 3708 2737 3709 2738 3709 2738 3709 2739 3709 2739 3709 2740 3710 2741 3710 2741 3710 2741 3710 2742 3710 2742 3710 2743 3710 2744 3709 2744 3709 2748 3708 2748 3708 2749 3708 2749 3708 2750 3708 2750 3708 2751 3708 2753 3708 2754 3708 2757 3708 2757 3708 2757 3708 2758 3708 2758 3707 2758 3707 2757 3706 2757 3706 2756 3706 2755 3705 2754 3705 2752 3704 2752 3704 2752 3704 2752 3703 2752 3703 2752 3703 2753 3702 2754 3702 2754 3702 2755 3702 2757 3700 2759 3699 2760 3698 2761 3698 2761 3697 2762 3697 2763 3696 2763 3696 2764 3696 2766 3696 2766 3695 2768 3695 2769 3695 2769 3695 2770 3694 2770 3694 2771 3694 2772 3693 2773 3693 2773 3693 2775 3692 2775 3692 2776 3692 2777 3692 2779 3692 2780 3692 2780 3692 2781 3692 2783 3692 2783 3692 2784 3692 2784 3692 2787 3693 2787 3694 2788 3694 2788 3695 2788 3695 2787 3695 2787 3696 2785 3696 2785 3696 2784 3696 2783 3697 2780 3698 2779 3698 2778 3698 2778 3699 2777 3700 2777 3700 2777 3702 2777 3702 2778 3703 2778 3703 2779 3703 2779 3703 2780 3703 2781 3703 2782 3703 2783 3703 2787 3703 2789 3703 2790 3703 2791 3703 2795 3702 2796 3702 2797 3702 2797 3702 2798 3701 2799 3701 2800 3701 2800 3701 2801 3701 2801 3701 2805 3702 2805 3702 2808 3702 2808 3702 2808 3702 2809 3702 2810 3701 2811 3701 2812 3701 2812 3701 2813 3701 2813 3701 2814 3701 2814 3701 2815 3702 2815 3702 2816 3702 2817 3702 2818 3702 2819 3702 2821 3702 2822 3701 2825 3701 2825 3701 2826 3701 2827 3701 2828 3701 2828 3701 2829 3700 2829 3700 2830 3700 2833 3700 2834 3700 2834 3700 2835 3700 2836 3700 2837 3700 2838 3699 2838 3699 2839 3699 2839 3700 2838 3701 2838 3702 2839 3702 2839 3702 2840 3703 2840 3703 2840 3704 2841 3704 2842 3704 2842 3704 2842 3704 2843 3703 2843 3703 2844 3703 2844 3703 2848 3703 2848 3703 2849 3703 2849 3703 2850 3703 2850 3704 2850 3703 2851 3703 2852 3703 2852 3703 2854 3702 2854 3702 2855 3701 2856 3701 2857 3701 2858 3701 2859 3701 2860 3701 2860 3701 2862 3702 2863 3703 2863 3703 2862 3704 2862 3704 2861 3705 2861 3705 2860 3706 2861 3706 2862 3706 2863 3706 2865 3706 2865 3706 2868 3707 2869 3707 2870 3707 2872 3706 2872 3706 2873 3705 2875 3704 2876 3704 2876 3704 2876 3704 2877 3703 2877 3703 2881 3701 2882 3701 2883 3701 2886 3700 2887 3700 2890 3699 2891 3699 2891 3699 2893 3699 2895 3699 2895 3699 2896 3698 2904 3697 2906 3697 2908 3696 2910 3696 2911 3696 2912 3695 2912 3695 2915 3695 2916 3695 2919 3694 2919 3694 2920 3694 2921 3694 2923 3694 2924 3694 2925 3694 2926 3694 2927 3694 2927 3694 2929 3694 2930 3694 2931 3694 2933 3693 2933 3693 2935 3693 2936 3693 2938 3692 2939 3692 2941 3692 2942 3692 2944 3692 2945 3691 2946 3691 2948 3691 2952 3691 2957 3691 2959 3691 2961 3691 2962 3691 2963 3691 2963 3691 2965 3690 2965 3690 2967 3690 2968 3690 2969 3690 2970 3690 2972 3690 2977 3690 2979 3690 2981 3690 2981 3690 2982 3690 2982 3690 2983 3690 2986 3689 2986 3689 2987 3689 2987 3689 2988 3688 2988 3688 2988 3688 2989 3688 2989 3687 2990 3686 2992 3685 2992 3684 2993 3684 2994 3683 2995 3683 2996 3683 2997 3683 2998 3683 2999 3683 3000 3683 3001 3683 3002 3683 3002 3683 3003 3684 3003 3684 3004 3684 3005 3685 3005 3686 3006 3686 3006 3686 3006 3687 3007 3687 3008 3688 3009 3688 3010 3688 3011 3688 3011 3688 3012 3688 3013 3688 3013 3688 3014 3688 3015 3688 3016 3688 3019 3686 3020 3686 3020 3686 3017 3684 3016 3684 3016 3684 3015 3683 3014 3683 3013 3682 3013 3682 3013 3682 3013 3682 3014 3682 3019 3682 3020 3682 3021 3682 3021 3682 3022 3682 3022 3682 3024 3682 3024 3683 3025 3683 3026 3683 3026 3683 3027 3684 3027 3684 3029 3684 3030 3684 3031 3685 3033 3685 3033 3686 3034 3686 3035 3686 3035 3687 3036 3687 3037 3687 3038 3687 3039 3687 3039 3687 3040 3688 3040 3688 3041 3689 3041 3689 3042 3690 3043 3690 3045 3691 3046 3691 3047 3691 3048 3691 3048 3691 3053 3692 3055 3692 3056 3692 3057 3692 3060 3692 3063 3692 3065 3692 3065 3692 3066 3692 3067 3692 3067 3692 3068 3692 3068 3692 3069 3691 3069 3691 3070 3690 3071 3690 3072 3689 3074 3688 3074 3687 3075 3687 3077 3686 3077 3685 3078 3685 3078 3685 3078 3685 3079 3685 3080 3685 3081 3685 3082 3685 3082 3685 3086 3685 3088 3685 3089 3685 3090 3685 3091 3685 3094 3684 3095 3684 3096 3684 3097 3684 3098 3683 3099 3683 3101 3683 3101 3683 3102 3683 3103 3683 3104 3683 3105 3684 3106 3684 3107 3684 3108 3684 3110 3685 3111 3685 3112 3685 3116 3685 3117 3685 3122 3685 3123 3685 3125 3685 3126 3685 3127 3685 3128 3685 3133 3684 3133 3684 3135 3684 3136 3684 3141 3683 3144 3683 3147 3682 3151 3682 3153 3681 3158 3681 3162 3680 3163 3680 3164 3680 3165 3680 3166 3680 3167 3681 3168 3681 3169 3682 3170 3682 3171 3682 3172 3682 3173 3682 3174 3682 3175 3682 3177 3682 3178 3682 3179 3683 3180 3683 3183 3683 3184 3683 3186 3683 3187 3683 3189 3684 3192 3684 3194 3684 3196 3685 3199 3685 3200 3685 3201 3686 3206 3686 3207 3687 3209 3687 3209 3687 3211 3687 3212 3687 3214 3687 3214 3687 3215 3687 3217 3687 3218 3687 3219 3687 3222 3687 3224 3687 3225 3687 3226 3687 3227 3687 3228 3688 3230 3688 3233 3689 3234 3689 3236 3689 3237 3689 3239 3689 3240 3689 3243 3689 3244 3689 3245 3689 3246 3689 3249 3689 3251 3689 3252 3689 3258 3688 3261 3688 3263 3688 3274 3687 3278 3686 3279 3686 3281 3686 3282 3686 3283 3685 3285 3685 3286 3685 3286 3685 3287 3685 3288 3685 3289 3685 3290 3685 3291 3685 3292 3685 3292 3685 3293 3684 3294 3684 3295 3684 3297 3684 3299 3684 3300 3684 3301 3683 3302 3683 3303 3683 3305 3683 3305 3683 3307 3683 3308 3683 3309 3683 3310 3683 3311 3683 3312 3683 3313 3683 3314 3683 3315 3683 3315 3683 3319 3682 3323 3682 3323 3681 3324 3681 3327 3681 3329 3681 3330 3681 3331 3681 3332 3681 3334 3680 3335 3680 3336 3680 3337 3680 3344 3678 3345 3678 3346 3678 3348 3678 3349 3678 3351 3678 3352 3678 3353 3678 3356 3678 3357 3678 3358 3678 3359 3678 3361 3677 3365 3677 3368 3677 3370 3677 3371 3677 3371 3677 3372 3677 3373 3676 3374 3676 3376 3676 3377 3675 3378 3675 3379 3675 3379 3675 3380 3674 3381 3674 3384 3673 3387 3673 3387 3673 3388 3673 3393 3671 3395 3671 3396 3671 3397 3670 3400 3669 3401 3669 3401 3669 3401 3669 3402 3668 3402 3667 3402 3666 3403 3665 3403 3665 3403 3665 3404 3665 3405 3665 3405 3665 3406 3664 3406 3664 3407 3664 3408 3664 3409 3664 3409 3664 3408 3663 3408 3663 3407 3662 3407 3661 3407 3660 3407 3660 3409 3659 3409 3659 3413 3657 3413 3657 3414 3657 3416 3657 3416 3657 3418 3657 3418 3656 3419 3656 3419 3656 3420 3656 3421 3656 3423 3656 3424 3656 3426 3657 3428 3657 3428 3657 3430 3659 3430 3659 3431 3660 3431 3660 3431 3661 3431 3661 3432 3662 3432 3663 3434 3663 3437 3664 3440 3665 3440 3666 3444 3667 3445 3667 3445 3667 3446 3668 3446 3668 3447 3668 3448 3668 3450 3668 3452 3668 3452 3668 3453 3669 3454 3669 3455 3669 3456 3669 3456 3669 3457 3670 3457 3670 3458 3670 3458 3671 3458 3671 3458 3671 3458 3672 3457 3672 3457 3672 3456 3672 3456 3672 3455 3672 3455 3672 3454 3671 3453 3671 3452 3671 3451 3671 3451 3671 3452 3672 3453 3672 3453 3672 3453 3673 3452 3673 3453 3673 3453 3673 3454 3673 3455 3673 3455 3673 3456 3674 3456 3674 3456 3674 3456 3675 3457 3675 3458 3675 3458 3675 3459 3675 3459 3675 3460 3676 3461 3676 3462 3676 3462 3675 3462 3675 3463 3675 3463 3674 3465 3674 3467 3672 3468 3671 3468 3671 3469 3671 3470 3671 3471 3670 3472 3670 3473 3670 3474 3670 3474 3670 3475 3670 3475 3669 3476 3669 3477 3669 3479 3669 3480 3668 3480 3669 3481 3669 3481 3669 3481 3671 3480 3672 3480 3673 3479 3673 3478 3673 3478 3673 3476 3673 3475 3673 3474 3673 3473 3673 3472 3673 3472 3674 3471 3674 3471 3674 3470 3675 3470 3675 3469 3675 3468 3675 3469 3675 3469 3676 3470 3676 3470 3676 3471 3676 3472 3676 3472 3675 3472 3675 3473 3675 3475 3675 3476 3675 3476 3676 3478 3676 3478 3676 3479 3676 3479 3676 3481 3676 3481 3676 3482 3677 3482 3677 3483 3677 3484 3678 3484 3678 3484 3679 3485 3680 3486 3680 3486 3679 3486 3679 3486 3678 3486 3677 3486 3677 3487 3677 3487 3676 3488 3676 3489 3674 3490 3673 3490 3673 3491 3673 3491 3673 3492 3673 3492 3673 3493 3673 3493 3674 3492 3674 3492 3675 3491 3675 3491 3675 3491 3676 3491 3676 3491 3678 3491 3679 3491 3679 3491 3680 3492 3680 3492 3680 3493 3680 3494 3680 3494 3680 3495 3679 3495 3679 3496 3679 3495 3679 3495 3679 3494 3678 3495 3678 3497 3677 3498 3677 3498 3676 3500 3676 3504 3675 3505 3675 3505 3675 3507 3675 3508 3675 3509 3675 3509 3675 3509 3674 3509 3673 3509 3673 3508 3672 3507 3672 3507 3672 3507 3672 3507 3671 3507 3671 3508 3671 3508 3671 3509 3672 3509 3672 3510 3672 3510 3672 3510 3672 3512 3671 3511 3671 3511 3670 3511 3670 3510 3670 3508 3668 3508 3668 3509 3668 3509 3667 3510 3668 3510 3668 3511 3667 3511 3667 3510 3666 3510 3666 3510 3664 3510 3664 3513 3662 3513 3662 3514 3662 3515 3662 3516 3662 3518 3662 3520 3661 3522 3660 3523 3660 3523 3660 3524 3660 3525 3659 3526 3659 3527 3659 3528 3659 3528 3659 3529 3659 3529 3659 3530 3658 3531 3658 3531 3657 3531 3657 3532 3657 3532 3657 3533 3657 3535 3657 3535 3657 3536 3657 3538 3656 3542 3655 3543 3655 3543 3655 3544 3655 3545 3655 3546 3655 3547 3655 3548 3655 3548 3655 3550 3655 3550 3654 3551 3654 3553 3653 3553 3653 3554 3653 3556 3652 3559 3651 3559 3650 3559 3650 3564 3649 3564 3649 3567 3649 3567 3649 3568 3649 3569 3649 3570 3649 3571 3649 3574 3650 3574 3649 3575 3649 3576 3649 3578 3648 3579 3648 3580 3648 3580 3648 3581 3648 3582 3649 3585 3648 3585 3648 3586 3648 3586 3648 3586 3648 3587 3647 3587 3647 3591 3645 3593 3645 3594 3644 3594 3644 3600 3644 3601 3644 3601 3644 3602 3644 3603 3644 3603 3644 3603 3645 3604 3645 3605 3645 3605 3645 3605 3645 3606 3644 3606 3644 3607 3643 3607 3643 3610 3643 3610 3643 3611 3643 3612 3643 3612 3643 3613 3643 3614 3643 3615 3643 3615 3643 3615 3643 3616 3642 3616 3642 3615 3641 3615 3641 3614 3641 3614 3639 3614 3638 3614 3638 3615 3638 3615 3638 3616 3637 3618 3637 3619 3637 3619 3637 3620 3637 3624 3637 3625 3637 3625 3637 3625 3638 3626 3638 3626 3638 3627 3638 3627 3638 3629 3638 3630 3638 3630 3638 3631 3639 3633 3639 3632 3640 3631 3640 3628 3641 3627 3641 3626 3641 3626 3641 3627 3642 3627 3642 3629 3642 3629 3642 3630 3642 3630 3643 3630 3643 3630 3643 3631 3644 3631 3644 3632 3644 3633 3644 3633 3644 3634 3644 3634 3644 3635 3644 3636 3644 3638 3644 3639 3644 3640 3644 3640 3643 3641 3643 3642 3643 3644 3643 3644 3643 3645 3643 3649 3642 3649 3642 3650 3641 3650 3641 3651 3641 3652 3640 3652 3640 3653 3640 3655 3640 3656 3640 3657 3640 3657 3640 3660 3639 3660 3638 3660 3638 3659 3638 3659 3638 3657 3638 3656 3638 3656 3638 3655 3639 3654 3639 3653 3639 3653 3639 3652 3638 3652 3637 3651 3637 3650 3637 3649 3637 3649 3637 3647 3636 3646 3636 3646 3636 3646 3635 3646 3635 3647 3634 3648 3634 3649 3634 3649 3634 3650 3633 3650 3633 3651 3633 3651 3633 3652 3632 3653 3632 3654 3632 3654 3632 3655 3632 3655 3632 3656 3632 3656 3632 3657 3632 3658 3632 3659 3632 3659 3631 3659 3631 3660 3631 3660 3630 3661 3631 3662 3631 3662 3631 3662 3632 3662 3632 3662 3633 3661 3633 3660 3633 3659 3633 3659 3633 3659 3634 3660 3634 3660 3634 3661 3634 3661 3634 3662 3634 3663 3634 3663 3634 3664 3634 3665 3634 3667 3633 3667 3633 3668 3633 3668 3633 3670 3633 3670 3633 3671 3633 3672 3633 3672 3633 3673 3634 3673 3634 3673 3635 3674 3635 3674 3635 3675 3635 3681 3636 3681 3636 3682 3636 3682 3636 3684 3636 3685 3636 3687 3635 3684 3634 3682 3634 3681 3634 3681 3633 3680 3633 3680 3632 3680 3632 3681 3632 3681 3631 3680 3631 3679 3631 3678 3630 3678 3630 3677 3630 3676 3628 3676 3627 3676 3627 3677 3626 3677 3626 3677 3625 3678 3625 3679 3624 3680 3624 3680 3624 3681 3624 3682 3623 3683 3623 3683 3623 3684 3623 3685 3622 3686 3622 3687 3622 3688 3622 3688 3622 3689 3622 3690 3622 3690 3622 3691 3622 3691 3621 3692 3621 3693 3621 3693 3621 3694 3621 3695 3621 3695 3620 3696 3620 3696 3620 3696 3619 3697 3619 3697 3619 3698 3619 3698 3618 3702 3617 3702 3617 3703 3617 3705 3616 3706 3616 3711 3616 3712 3616 3714 3616 3714 3616 3715 3616 3716 3616 3717 3616 3718 3616 3719 3616 3720 3616 3720 3616 3721 3615 3722 3615 3726 3615 3732 3614 3732 3614 3733 3614 3734 3614 3735 3614 3736 3614 3736 3614 3737 3614 3737 3615 3738 3615 3738 3615 3740 3615 3740 3615 3742 3615 3743 3615 3744 3615 3745 3615 3746 3615 3746 3615 3747 3615 3749 3615 3750 3615 3751 3615 3752 3615 3752 3615 3753 3615 3758 3615 3764 3617 3764 3617 3767 3619 3769 3620 3772 3622 3773 3622 3773 3622 3774 3623 3774 3623 3774 3623 3775 3623 3776 3623 3777 3623 3777 3623 3778 3623 3779 3623 3780 3623 3781 3623 3781 3623 3782 3623 3784 3624 3786 3624 3787 3625 3789 3625 3790 3625 3790 3626 3791 3628 3787 3628 3786 3628 3785 3628 3785 3628 3784 3628 3783 3628 3783 3628 3780 3630 3781 3631 3784 3632 3786 3632 3787 3632 3787 3632 3788 3632 3789 3632 3789 3632 3790 3632 3790 3633 3790 3633 3792 3633 3792 3633 3793 3633 3795 3633 3796 3633 3796 3633 3797 3633 3797 3633 3797 3633 3798 3633 3801 3634 3801 3634 3802 3634 3802 3634 3802 3634 3803 3634 3804 3634 3805 3634 3805 3634 3805 3635 3805 3635 3806 3635 3807 3635 3807 3635 3808 3636 3809 3636 3809 3636 3810 3635 3811 3635 3812 3635 3812 3635 3813 3635 3814 3635 3815 3635 3816 3636 3817 3636 3817 3636 3818 3637 3818 3638 3817 3638 3817 3638 3816 3637 3815 3638 3815 3638 3816 3638 3817 3639 3818 3639 3819 3639 3820 3639 3820 3639 3823 3639 3824 3638 3825 3639 3827 3639 3828 3639 3828 3639 3830 3639 3831 3639 3832 3639 3833 3639 3837 3639 3839 3639 3842 3639 3842 3639 3843 3639 3844 3639 3844 3639 3845 3639 3847 3640 3848 3640 3849 3640 3850 3640 3852 3640 3853 3640 3856 3640 3856 3641 3856 3641 3856 3641 3857 3641 3857 3641 3857 3641 3859 3641 3861 3641 3865 3641 3865 3641 3866 3641 3867 3641 3868 3642 3871 3642 3876 3643 3877 3643 3878 3643 3879 3643 3880 3642 3880 3642 3881 3642 3882 3642 3883 3641 3883 3641 3884 3641 3884 3641 3887 3641 3889 3641 3889 3641 3890 3641 3894 3641 3895 3641 3895 3641 3903 3642 3904 3642 3907 3642 3907 3643 3908 3643 3908 3643 3909 3643 3910 3643 3911 3643 3911 3643 3912 3643 3914 3643 3915 3643 3915 3643 3916 3643 3918 3643 3919 3643 3923 3644 3925 3644 3926 3644 3927 3644 3928 3644 3929 3644 3933 3644 3937 3645 3938 3645 3939 3645 3939 3645 3941 3645 3942 3645 3943 3645 3945 3645 3946 3645 3947 3645 3947 3645 3949 3645 3949 3645 3950 3645 3951 3645 3951 3645 3952 3645 3952 3646 3953 3646 3954 3646 3955 3646 3958 3646 3961 3646 3962 3646 3962 3646 3963 3646 3964 3646 3964 3646 3966 3646 3969 3647 3970 3647 3972 3647 3975 3647 3976 3647 3978 3646 3979 3646 3979 3646 3980 3646 3980 3646 3981 3645 3981 3645 3983 3645 3984 3645 3985 3644 3986 3644 3987 3644 3987 3645 3988 3645 3988 3647 3988 3647 3988 3648 3988 3648 3988 3649 3988 3650 3988 3651 3988 3652 3989 3652 3990 3653 3993 3655 3993 3655 3994 3656 3994 3656 3995 3657 3995 3657 3994 3658 3994 3658 3993 3658 3993 3658 3991 3658 3989 3658 3988 3659 3988 3659 3989 3660 3989 3660 3989 3660 3988 3661 3988 3661 3987 3661 3986 3661 3985 3662 3984 3662 3983 3662 3984 3663 3984 3663 3984 3663 3985 3663 3986 3663 3987 3663 3988 3663 3988 3663 3989 3663 3989 3663 3990 3663 3990 3663 3990 3664 3989 3664 3989 3664 3988 3664 3986 3665 3985 3665 3984 3665 3983 3666 3983 3666 3982 3666 3982 3666 3982 3667 3983 3667 3984 3667 3986 3667 3986 3667 3988 3668 3989 3668 3989 3668 3989 3669 3989 3670 3989 3670 3989 3671 3988 3671 3987 3671 3987 3671 3986 3670 3984 3670 3984 3670 3983 3670 3983 3670 3982 3670 3979 3670 3978 3670 3977 3670 3977 3670 3976 3670 3975 3671 3974 3673 3974 3673 3975 3673 3976 3673 3977 3673 3977 3674 3978 3674 3979 3674 3980 3674 3982 3674 3982 3675 3983 3675 3982 3675 3981 3676 3980 3676 3979 3676 3979 3676 3978 3676 3978 3677 3979 3677 3979 3677 3980 3678 3980 3678 3980 3678 3980 3679 3978 3680 3978 3680 3977 3680 3976 3680 3976 3681 3974 3681 3973 3681 3973 3681 3972 3681 3971 3681 3971 3681 3971 3680 3970 3680 3969 3680 3968 3679 3968 3679 3967 3679 3967 3678 3966 3678 3966 3678 3965 3678 3965 3678 3964 3678 3964 3678 3963 3679 3962 3679 3961 3679 3961 3680 3960 3680 3960 3681 3961 3681 3962 3681 3961 3682 3960 3682 3960 3682 3959 3682 3959 3682 3956 3684 3956 3685 3955 3687 3956 3687 3956 3687 3960 3689 3960 3689 3961 3689 3961 3689 3962 3689 3962 3689 3963 3688 3963 3688 3964 3688 3964 3687 3964 3687 3965 3687 3965 3688 3965 3688 3966 3688 3966 3689 3966 3689 3966 3689 3966 3691 3966 3691 3966 3691 3965 3691 3965 3692 3964 3692 3965 3693 3965 3693 3966 3693 3966 3693 3971 3693 3971 3693 3972 3693 3972 3692 3972 3692 3972 3691 3972 3691 3972 3691 3972 3690 3972 3690 3973 3690 3974 3690 3974 3689 3975 3689 3974 3688 3974 3688 3973 3688 3972 3687 3972 3687 3972 3686 3972 3686 3973 3686 3975 3686 3977 3686 3978 3686 3978 3686 3979 3686 3979 3686 3980 3686 3980 3686 3981 3687 3981 3687 3982 3687 3982 3688 3982 3688 3982 3689 3981 3691 3980 3692 3979 3694 3979 3695 3979 3695 3978 3696 3978 3696 3977 3696 3977 3697 3975 3697 3974 3698 3973 3698 3972 3699 3972 3699 3971 3699 3971 3699 3968 3700 3967 3700 3966 3700 3965 3700 3962 3702 3961 3703 3961 3703 3960 3703 3960 3704 3957 3705 3957 3705 3956 3705 3955 3706 3955 3707 3955 3707 3956 3707 3957 3707 3957 3706 3958 3706 3959 3706 3959 3706 3959 3707 3959 3708 3958 3708 3957 3708 3957 3709 3956 3710 3956 3710 3956 3711 3955 3711 3954 3712 3954 3712 3953 3713 3952 3713 3951 3713 3951 3713 3951 3714 3951 3714 3952 3715 3952 3715 3953 3715 3954 3715 3957 3716 3958 3717 3960 3717 3961 3717 3963 3718 3969 3719 3969 3719 3970 3719 3972 3719 3973 3719 3974 3719 3975 3719 3976 3719 3977 3719 3978 3719 3979 3719 3980 3719 3981 3719 3982 3718 3984 3718 3984 3718 3985 3718 3988 3717 3989 3716 3989 3716 3990 3716 3990 3716 3990 3715 3991 3715 3991 3714 3992 3714 3993 3714 3993 3714 3994 3714 3995 3714 3995 3714 3996 3714 3998 3713 3999 3713 4000 3713 4005 3712 4006 3712 4006 3712 4007 3711 4007 3711 4007 3710 4007 3710 4008 3710 4008 3710 4009 3710 4010 3709 4009 3709 4009 3709 4010 3707 4011 3707 4012 3706 4013 3706 4013 3706 4015 3706 4016 3706 4016 3705 4016 3705 4016 3704 4015 3704 4014 3704 4014 3703 4014 3703 4013 3703 4013 3703 4014 3702 4014 3702 4015 3702 4014 3701 4014 3701 4014 3700 4015 3699 4017 3697 4017 3697 4017 3697 4017 3696 4017 3696 4018 3695 4019 3695 4020 3695 4020 3695 4021 3695 4022 3694 4023 3694 4023 3694 4023 3693 4023 3693 4022 3693 4022 3693 4021 3692 4022 3692 4023 3692 4024 3691 4025 3691 4025 3691 4026 3691 4027 3691 4027 3691 4028 3691 4029 3691 4030 3691 4031 3691 4031 3691 4032 3691 4033 3691 4034 3690 4034 3690 4035 3690 4034 3689 4034 3689 4033 3689 4033 3688 4033 3688 4033 3688 4034 3688 4034 3687 4035 3687 4035 3687 4035 3687 4036 3688 4037 3688 4038 3688 4038 3688 4039 3687 4039 3687 4038 3686 4038 3686 4038 3686 4037 3685 4037 3685 4036 3685 4036 3685 4035 3685 4035 3684 4035 3684 4035 3684 4036 3683 4036 3683 4037 3683 4037 3682 4039 3681 4040 3681 4041 3681 4042 3680 4042 3680 4043 3680 4044 3680 4044 3680 4045 3680 4045 3679 4045 3679 4046 3679 4047 3679 4047 3679 4048 3678 4050 3678 4050 3678 4051 3678 4052 3678 4053 3678 4054 3678 4054 3678 4055 3678 4056 3677 4056 3677 4057 3677 4057 3677 4058 3677 4058 3677 4059 3677 4060 3676 4061 3676 4061 3677 4062 3677 4065 3677 4066 3677 4067 3677 4067 3676 4067 3676 4067 3676 4068 3676 4068 3675 4069 3675 4069 3675 4070 3676 4070 3676 4070 3676 4070 3677 4071 3677 4072 3677 4072 3677 4073 3677 4073 3676 4073 3676 4074 3676 4073 3675 4073 3675 4073 3674 4073 3674 4073 3674 4074 3674 4075 3673 4076 3673 4078 3673 4078 3673 4079 3673 4079 3674 4080 3674 4081 3674 4081 3674 4082 3674 4082 3673 4083 3673 4083 3673 4083 3673 4084 3674 4085 3674 4085 3674 4086 3674 4087 3674 4087 3674 4089 3672 4088 3671 4090 3671 4090 3671 4091 3671 4092 3671 4092 3671 4092 3671 4094 3671 4097 3671 4098 3671 4098 3671 4099 3670 4100 3669 4100 3669 4101 3669 4105 3668 4106 3668 4107 3668 4107 3668 4108 3668 4108 3668 4109 3668 4111 3668 4112 3668 4112 3667 4113 3667 4113 3667 4115 3667 4116 3667 4116 3667 4117 3666 4117 3666 4119 3666 4119 3666 4120 3664 4119 3663 4119 3663 4120 3662 4120 3662 4121 3662 4121 3662 4122 3661 4122 3661 4122 3661 4123 3661 4122 3661 4121 3660 4120 3660 4120 3660 4119 3660 4119 3660 4118 3659 4119 3658 4119 3658 4122 3656 4123 3656 4123 3656 4125 3655 4126 3655 4126 3656 4127 3655 4131 3654 4131 3653 4132 3653 4133 3652 4135 3651 4135 3651 4136 3651 4137 3651 4139 3650 4140 3650 4141 3650 4142 3650 4144 3650 4146 3649 4149 3649 4151 3648 4152 3648 4153 3648 4153 3648 4156 3647 4157 3647 4158 3647 4159 3647 4160 3647 4164 3647 4167 3647 4168 3646 4169 3646 4169 3646 4174 3646 4174 3645 4175 3645 4175 3645 4175 3645 4175 3645 4175 3643 4175 3643 4176 3643 4176 3643 4177 3643 4177 3643 4179 3643 4180 3643 4181 3643 4182 3644 4185 3643 4186 3643 4185 3643 4185 3643 4183 3642 4182 3642 4181 3642 4180 3641 4178 3641 4178 3641 4177 3641 4177 3641 4176 3641 4177 3640 4178 3640 4179 3640 4179 3640 4180 3639 4183 3638 4183 3638 4183 3638 4184 3637 4185 3637 4185 3637 4186 3637 4188 3636 4189 3636 4190 3636 4190 3636 4190 3636 4191 3637 4191 3637 4192 3638 4193 3638 4194 3639 4195 3639 4195 3639 4196 3639 4196 3639 4197 3638 4197 3638 4198 3637 4198 3637 4199 3637 4200 3637 4200 3636 4201 3636 4202 3636 4203 3636 4204 3636 4204 3635 4205 3635 4207 3635 4207 3635 4209 3635 4210 3635 4214 3635 4215 3635 4215 3635 4217 3635 4218 3635 4219 3635 4219 3635 4220 3635 4220 3635 4221 3635 4223 3635 4226 3635 4226 3635 4228 3635 4229 3635 4232 3635 4233 3635 4235 3635 4236 3635 4236 3635 4238 3636 4239 3636 4240 3636 4241 3636 4244 3635 4245 3635 4246 3635 4247 3635 4248 3635 4249 3634 4249 3634 4250 3634 4256 3633 4260 3633 4261 3633 4263 3633 4263 3633 4264 3633 4267 3632 4268 3632 4270 3631 4273 3631 4277 3630 4277 3630 4277 3629 4277 3629 4277 3629 4277 3628 4278 3628 4278 3627 4278 3627 4279 3627 4280 3627 4280 3627 4281 3627 4282 3627 4283 3623 4284 3619 4284 3618 4284 3617 4284 3617 4285 3617 4286 3617 4286 3617 4287 3617 4288 3618 4288 3618 4289 3620 4291 3622 4292 3623 4292 3623 4292 3624 4293 3624 4293 3624 4293 3624 4294 3625 4294 3625 4293 3626 4293 3626 4293 3626 4292 3628 4293 3628 4295 3629 4296 3629 4297 3629 4299 3629 4300 3629 4302 3628 4303 3628 4305 3628 4306 3628 4307 3628 4308 3628 4309 3628 4310 3628 4310 3628 4312 3628 4312 3627 4313 3627 4315 3627 4315 3627 4317 3627 4318 3627 4319 3627 4321 3627 4321 3627 4323 3627 4323 3626 4325 3626 4332 3625 4333 3625 4334 3625 4335 3625 4337 3625 4338 3625 4338 3625 4339 3625 4339 3625 4340 3625 4342 3625 4343 3625 4345 3625 4346 3625 4346 3625 4347 3626 4347 3626 4348 3626 4348 3626 4349 3626 4350 3627 4351 3627 4351 3627 4353 3627 4353 3627 4354 3627 4355 3627 4356 3627 4356 3626 4357 3626 4357 3626 4358 3626 4358 3626 4359 3626 4360 3626 4361 3626 4363 3626 4364 3626 4366 3626 4366 3626 4369 3626 4369 3626 4371 3626 4372 3626 4373 3626 4373 3626 4374 3626 4374 3626 4375 3627 4375 3627 4376 3627 4376 3627 4377 3627 4378 3627 4378 3627 4379 3627 4380 3627 4380 3627 4381 3627 4382 3627 4383 3627 4383 3626 4384 3626 4385 3626 4386 3626 4386 3625 4387 3625 4388 3626 4388 3626 4390 3626 4392 3626 4393 3626 4394 3626 4395 3626 4396 3626 4396 3626 4397 3627 4397 3627 4397 3627 4398 3627 4398 3627 4401 3628 4403 3628 4410 3627 4414 3627 4416 3627 4417 3627 4418 3627 4418 3627 4419 3627 4420 3627 4422 3626 4423 3626 4425 3625 4426 3625 4426 3625 4427 3626 4427 3626 4428 3626 4429 3626 4430 3626 4430 3626 4431 3626 4432 3626 4432 3626 4433 3626 4433 3627 4433 3628 4433 3628 4433 3628 4434 3628 4434 3628 4435 3628 4435 3627 4436 3627 4436 3627 4436 3626 4437 3626 4437 3626 4438 3626 4443 3625 4443 3625 4444 3625 4444 3625 4446 3625 4447 3625 4449 3625 4450 3625 4451 3625 4452 3625 4452 3625 4453 3625 4454 3626 4454 3626 4455 3626 4455 3627 4455 3627 4455 3627 4456 3628 4460 3630 4460 3631 4461 3631 4461 3631 4462 3630 4462 3630 4463 3630 4463 3630 4464 3629 4464 3629 4465 3628 4465 3628 4466 3627 4466 3627 4470 3625 4470 3625 4471 3625 4471 3625 4472 3624 4473 3624 4473 3624 4474 3624 4475 3624 4476 3624 4477 3624 4478 3624 4479 3623 4479 3623 4480 3623 4480 3622 4480 3622 4481 3621 4482 3621 4483 3620 4484 3620 4484 3620 4485 3620 4485 3619 4485 3619 4486 3619 4486 3619 4486 3618 4487 3618 4487 3618 4487 3618 4488 3618 4489 3618 4490 3618 4492 3618 4494 3618 4494 3618 4496 3618 4496 3618 4497 3617 4497 3617 4498 3617 4499 3617 4499 3616 4500 3616 4500 3616 4501 3616 4502 3616 4503 3616 4503 3616 4504 3616 4505 3616 4506 3616 4507 3616 4508 3616 4509 3616 4509 3616 4510 3616 4511 3616 4512 3615 4514 3615 4514 3615 4515 3615 4516 3615 4517 3615 4517 3615 4520 3615 4521 3615 4521 3616 4522 3616 4523 3616 4523 3616 4525 3616 4525 3616 4527 3617 4528 3617 4529 3617 4530 3617 4530 3617 4530 3617 4531 3617 4532 3617 4533 3616 4535 3616 4535 3616 4536 3617 4538 3617 4541 3617 4542 3617 4543 3617 4543 3618 4544 3618 4544 3618 4545 3618 4545 3619 4546 3619 4546 3619 4547 3619 4549 3619 4550 3619 4551 3619 4551 3619 4552 3619 4552 3619 4553 3619 4554 3619 4554 3619 4555 3619 4556 3619 4557 3619 4557 3619 4558 3620 4558 3620 4559 3620 4561 3620 4561 3621 4562 3621 4564 3621 4564 3621 4565 3621 4565 3622 4565 3622 4566 3622 4567 3622 4567 3622 4568 3622 4569 3622 4569 3621 4570 3621 4571 3622 4573 3622 4573 3622 4574 3622 4575 3623 4576 3623 4576 3623 4577 3623 4577 3623 4578 3623 4579 3623 4579 3623 4580 3623 4580 3623 4581 3623 4581 3623 4582 3623 4583 3623 4584 3623 4584 3623 4586 3623 4586 3623 4586 3623 4587 3623 4587 3624 4588 3624 4588 3624 4589 3624 4591 3624 4592 3624 4593 3624 4595 3623 4595 3623 4595 3623 4596 3623 4596 3623 4597 3623 4597 3623 4599 3623 4601 3624 4602 3624 4604 3626 4605 3626 4605 3627 4605 3627 4606 3627 4606 3628 4608 3628 4608 3628 4609 3628 4610 3628 4610 3628 4611 3628 4611 3629 4610 3629 4611 3629 4611 3630 4612 3630 4613 3630 4613 3630 4615 3629 4615 3629 4616 3629 4616 3629 4617 3629 4618 3629 4618 3629 4619 3629 4620 3629 4620 3629 4621 3628 4622 3628 4623 3628 4623 3628 4624 3628 4625 3627 4626 3627 4626 3628 4627 3628 4628 3628 4628 3628 4629 3628 4630 3628 4630 3628 4631 3628 4632 3628 4633 3627 4633 3627 4633 3627 4634 3627 4635 3626 4638 3625 4639 3625 4640 3625 4640 3625 4641 3625 4642 3624 4643 3624 4644 3624 4644 3623 4645 3623 4645 3623 4644 3622 4644 3622 4644 3622 4643 3621 4643 3621 4644 3619 4645 3618 4645 3618 4646 3618 4649 3617 4653 3616 4654 3616 4659 3615 4660 3615 4664 3615 4668 3615 4669 3615 4671 3615 4672 3615 4673 3614 4677 3613 4681 3613 4681 3612 4682 3612 4682 3612 4683 3612 4684 3612 4685 3612 4685 3612 4686 3612 4687 3612 4687 3612 4688 3612 4688 3613 4688 3613 4689 3614 4690 3614 4691 3615 4691 3615 4692 3615 4694 3616 4695 3617 4696 3617 4697 3617 4697 3617 4698 3617 4700 3618 4703 3620 4703 3620 4703 3621 4703 3621 4703 3621 4704 3621 4705 3622 4705 3622 4705 3622 4704 3623 4704 3623 4704 3624 4704 3624 4704 3624 4705 3624 4705 3624 4706 3624 4707 3624 4707 3624 4708 3624 4709 3625 4709 3625 4710 3625 4711 3624 4711 3624 4712 3624 4713 3624 4714 3624 4714 3624 4715 3624 4716 3624 4717 3623 4718 3623 4720 3623 4721 3623 4721 3622 4724 3622 4726 3622 4728 3622 4730 3622 4731 3623 4731 3623 4732 3623 4733 3623 4733 3624 4733 3624 4737 3625 4737 3625 4738 3625 4739 3626 4739 3626 4742 3628 4742 3629 4742 3629 4744 3630 4746 3631 4748 3631 4750 3632 4752 3632 4753 3632 4753 3632 4755 3632 4756 3632 4758 3632 4758 3632 4759 3632 4760 3632 4761 3632 4761 3632 4762 3632 4763 3632 4764 3632 4765 3632 4765 3632 4766 3632 4767 3631 4767 3631 4768 3631 4769 3631 4770 3631 4771 3631 4771 3631 4773 3631 4774 3631 4774 3631 4777 3631 4779 3631 4780 3631 4781 3631 4783 3632 4784 3632 4784 3632 4786 3631 4787 3631 4788 3631 4788 3631 4789 3630 4791 3630 4795 3630 4796 3630 4797 3630 4797 3630 4798 3630 4799 3630 4801 3630 4802 3629 4802 3629 4803 3630 4803 3630 4804 3630 4804 3630 4804 3630 4805 3630 4807 3630 4808 3630 4809 3630 4811 3629 4812 3628 4813 3628 4813 3628 4814 3628 4815 3628 4816 3627 4817 3627 4817 3627 4817 3627 4819 3627 4822 3626 4823 3626 4824 3626 4826 3625 4827 3625 4827 3626 4828 3626 4829 3626 4831 3626 4832 3626 4832 3626 4833 3626 4834 3626 4834 3626 4835 3626 4836 3626 4837 3626 4838 3627 4839 3627 4839 3627 4840 3627 4840 3628 4840 3628 4839 3628 4839 3628 4839 3629 4839 3629 4840 3629 4841 3629 4842 3629 4846 3628 4849 3627 4855 3626 4856 3625 4857 3625 4858 3625 4859 3625 4860 3625 4862 3625 4863 3625 4863 3625 4864 3625 4864 3625 4865 3625 4865 3626 4866 3626 4867 3626 4867 3627 4866 3627 4866 3628 4866 3628 4866 3628 4867 3629 4868 3629 4869 3629 4869 3629 4870 3629 4870 3629 4871 3628 4871 3628 4871 3628 4872 3628 4872 3628 4873 3628 4873 3628 4874 3628 4875 3628 4875 3628 4876 3628 4878 3626 4878 3626 4879 3624 4880 3624 4880 3623 4882 3623 4882 3623 4883 3623 4884 3623 4884 3623 4885 3623 4886 3623 4888 3622 4888 3622 4889 3621 4890 3621 4891 3621 4892 3621 4893 3621 4894 3621 4894 3621 4895 3622 4895 3622 4896 3622 4896 3622 4897 3623 4897 3623 4898 3623 4898 3623 4899 3623 4899 3623 4900 3624 4900 3624 4901 3624 4903 3624 4903 3624 4903 3624 4903 3624 4903 3625 4903 3625 4902 3626 4902 3630 4902 3630 4903 3630 4904 3630 4907 3631 4908 3631 4909 3631 4910 3631 4911 3631 4911 3631 4912 3631 4912 3632 4912 3632 4913 3632 4915 3633 4916 3633 4917 3633 4917 3633 4918 3633 4919 3633 4919 3633 4920 3633 4920 3633 4923 3633 4924 3633 4925 3633 4926 3633 4927 3634 4928 3634 4928 3634 4929 3634 4930 3634 4930 3635 4931 3635 4931 3635 4932 3635 4933 3635 4933 3635 4934 3635 4934 3635 4935 3634 4936 3634 4937 3634 4938 3634 4938 3634 4940 3633 4940 3633 4940 3633 4941 3631 4941 3631 4940 3630 4940 3630 4940 3629 4940 3629 4941 3628 4941 3628 4942 3628 4942 3627 4943 3627 4943 3626 4943 3626 4946 3624 4949 3623 4950 3622 4952 3622 4953 3621 4956 3621 4957 3620 4960 3620 4962 3620 4965 3620 4965 3620 4966 3620 4967 3620 4967 3620 4968 3620 4969 3621 4970 3621 4971 3621 4971 3620 4972 3620 4973 3620 4973 3620 4974 3620 4975 3620 4975 3620 4976 3620 4976 3620 4977 3620 4977 3620 4978 3620 4979 3620 4983 3620 4984 3620 4986 3619 4987 3619 4987 3619 4988 3619 4988 3619 4991 3619 4993 3619 4994 3619 4994 3619 4995 3619 4996 3619 4997 3619 4998 3619 4999 3619 5001 3619 5001 3619 5002 3618 5002 3618 5003 3618 5004 3618 5008 3618 5010 3618 5013 3618 5014 3618 5015 3618 5015 3619 5015 3619 5015 3619 5018 3620 5019 3620 5019 3620 5022 3618 5022 3617 5022 3617 5022 3616 5022 3616 5021 3615 5021 3614 5021 3613 5021 3613 5021 3612 5020 3612 5019 3612 5018 3612 5018 3612 5017 3611 5017 3611 5017 3611 5017 3610 5018 3610 5017 3609 5017 3608 5017 3608 5016 3607 5017 3607 5017 3606 5018 3606 5018 3606 5018 3605 5018 3604 5018 3604 5018 3604 5017 3603 5017 3603 5019 3601 5019 3600 5020 3600 5020 3600 5021 3600 5021 3600 5022 3600 5022 3600 5023 3600 5023 3600 5025 3600 5025 3601 5026 3601 5026 3601 5027 3602 5027 3602 5028 3602 5029 3602 5030 3601 5030 3601 5031 3601 5031 3601 5032 3602 5032 3602 5032 3603 5032 3604 5033 3605 5033 3606 5033 3606 5034 3606 5034 3607 5035 3607 5035 3607 5036 3608 5036 3608 5036 3609 5036 3610 5035 3610 5034 3613 5033 3613 5033 3614 5032 3614 5031 3615 5029 3617 5029 3618 5029 3618 5030 3618 5030 3618 5031 3618 5032 3618 5032 3618 5033 3618 5034 3618 5035 3618 5035 3618 5036 3618 5037 3617 5038 3618 5039 3618 5039 3618 5040 3618 5040 3618 5042 3619 5043 3619 5044 3620 5044 3620 5046 3620 5046 3620 5047 3621 5047 3621 5048 3621 5050 3621 5053 3621 5054 3622 5054 3622 5054 3622 5055 3622 5055 3622 5055 3622 5056 3622 5057 3622 5058 3622 5059 3622 5059 3622 5060 3622 5063 3622 5064 3622 5064 3622 5066 3622 5070 3622 5072 3622 5074 3623 5077 3623 5078 3623 5079 3624 5081 3624 5083 3624 5084 3624 5084 3624 5084 3625 5085 3625 5086 3625 5087 3625 5087 3625 5088 3625 5088 3625 5089 3625 5090 3625 5091 3625 5091 3625 5091 3625 5096 3625 5099 3625 5100 3625 5100 3625 5102 3626 5106 3626 5109 3627 5113 3627 5114 3627 5114 3628 5114 3628 5115 3628 5118 3628 5120 3628 5120 3628 5121 3628 5121 3628 5123 3628 5128 3629 5129 3629 5130 3629 5130 3629 5131 3629 5132 3630 5133 3630 5133 3630 5133 3630 5134 3630 5135 3629 5135 3629 5137 3629 5138 3629 5140 3629 5142 3629 5142 3629 5143 3629 5145 3629 5145 3629 5145 3629 5147 3630 5147 3630 5148 3631 5148 3631 5148 3631 5149 3632 5150 3632 5151 3632 5152 3632 5152 3633 5153 3633 5154 3633 5157 3633 5157 3633 5158 3632 5159 3632 5161 3632 5161 3631 5162 3631 5162 3631 5163 3631 5164 3630 5165 3630 5165 3630 5165 3630 5167 3630 5168 3631 5170 3631 5172 3632 5172 3632 5172 3633 5172 3634 5172 3634 5173 3634 5174 3634 5176 3634 5176 3634 5177 3634 5178 3633 5178 3633 5179 3633 5179 3633 5180 3633 5180 3633 5181 3633 5181 3633 5182 3633 5184 3634 5184 3634 5185 3635 5185 3635 5184 3636 5184 3636 5184 3637 5185 3637 5186 3636 5187 3636 5187 3636 5188 3636 5188 3635 5189 3635 5190 3635 5193 3634 5193 3634 5194 3633 5194 3633 5195 3633 5197 3633 5197 3633 5198 3633 5198 3634 5198 3634 5198 3634 5198 3634 5199 3635 5199 3635 5201 3635 5202 3635 5203 3635 5203 3635 5204 3635 5205 3635 5205 3635 5205 3636 5205 3636 5204 3636 5204 3637 5204 3637 5203 3637 5202 3638 5201 3638 5201 3638 5200 3639 5200 3639 5199 3640 5198 3640 5198 3641 5197 3641 5197 3641 5196 3642 5197 3643 5197 3643 5198 3643 5200 3643 5202 3643 5203 3643 5204 3643 5204 3643 5205 3643 5206 3643 5206 3642 5207 3642 5208 3642 5209 3642 5209 3642 5210 3642 5211 3643 5211 3643 5212 3643 5212 3643 5213 3644 5213 3644 5213 3644 5214 3644 5214 3644 5215 3644 5216 3644 5217 3644 5217 3644 5218 3644 5218 3645 5218 3645 5218 3645 5218 3646 5219 3646 5220 3646 5221 3646 5221 3646 5222 3646 5222 3646 5222 3646 5225 3648 5225 3648 5225 3649 5223 3649 5223 3649 5222 3650 5222 3650 5222 3651 5222 3651 5223 3651 5224 3651 5224 3650 5225 3650 5226 3649 5228 3649 5231 3648 5234 3648 5237 3647 5237 3647 5238 3646 5239 3646 5239 3646 5240 3646 5240 3646 5241 3647 5241 3647 5242 3647 5243 3647 5244 3647 5244 3647 5245 3647 5246 3647 5247 3648 5248 3648 5248 3648 5249 3648 5249 3649 5249 3649 5248 3649 5248 3649 5247 3649 5246 3649 5245 3649 5244 3650 5244 3650 5243 3650 5242 3650 5242 3651 5243 3651 5243 3651 5245 3651 5245 3651 5246 3652 5246 3652 5247 3652 5247 3653 5247 3653 5247 3653 5252 3654 5254 3654 5255 3655 5260 3655 5261 3655 5261 3654 5262 3654 5262 3654 5263 3654 5265 3653 5266 3653 5267 3653 5267 3653 5267 3654 5267 3654 5268 3655 5268 3655 5272 3656 5273 3656 5273 3656 5280 3656 5280 3656 5283 3656 5283 3655 5284 3655 5285 3655 5286 3655 5286 3655 5287 3655 5287 3655 5288 3655 5289 3656 5289 3657 5289 3658 5289 3658 5288 3659 5288 3659 5287 3660 5286 3662 5287 3663 5287 3663 5288 3664 5288 3664 5289 3664 5290 3664 5291 3664 5291 3664 5292 3664 5292 3664 5293 3663 5294 3663 5294 3663 5295 3663 5296 3663 5296 3662 5297 3662 5298 3662 5299 3662 5300 3663 5302 3663 5302 3663 5303 3663 5304 3662 5306 3662 5306 3662 5307 3661 5308 3661 5309 3661 5310 3661 5310 3661 5311 3661 5311 3661 5312 3661 5312 3661 5313 3661 5314 3662 5315 3662 5316 3662 5316 3662 5317 3662 5318 3663 5319 3663 5320 3663 5321 3663 5322 3663 5322 3663 5323 3663 5324 3664 5324 3664 5325 3664 5325 3664 5326 3664 5326 3664 5327 3664 5326 3663 5326 3663 5326 3663 5326 3662 5327 3662 5327 3662 5328 3662 5328 3663 5329 3663 5329 3663 5330 3663 5330 3663 5331 3663 5332 3663 5333 3663 5333 3663 5333 3661 5333 3660 5331 3659 5330 3659 5330 3659 5330 3658 5330 3658 5331 3658 5332 3658 5332 3659 5333 3659 5333 3658 5333 3658 5333 3657 5332 3657 5331 3657 5331 3657 5330 3657 5330 3656 5330 3656 5329 3656 5329 3655 5329 3655 5329 3654 5329 3654 5330 3654 5330 3654 5331 3654 5332 3654 5333 3655 5334 3655 5334 3655 5335 3655 5335 3656 5336 3656 5339 3657 5340 3657 5340 3657 5341 3657 5341 3657 5342 3657 5343 3657 5344 3658 5344 3658 5345 3658 5345 3658 5346 3659 5346 3659 5346 3659 5346 3660 5345 3660 5345 3660 5344 3660 5343 3660 5342 3659 5341 3659 5341 3659 5341 3660 5342 3660 5342 3660 5343 3661 5343 3661 5344 3661 5343 3662 5343 3662 5342 3662 5342 3662 5340 3662 5340 3662 5339 3662 5341 3663 5341 3663 5341 3663 5342 3663 5343 3663 5344 3664 5345 3664 5345 3665 5345 3665 5346 3665 5346 3665 5346 3665 5347 3666 5348 3666 5349 3666 5349 3666 5350 3666 5352 3666 5353 3666 5353 3666 5354 3666 5355 3666 5356 3666 5356 3666 5357 3667 5358 3667 5359 3667 5360 3668 5362 3668 5363 3668 5364 3668 5364 3668 5365 3668 5365 3668 5366 3668 5367 3667 5367 3667 5368 3667 5369 3667 5369 3667 5370 3667 5370 3668 5371 3668 5371 3668 5372 3668 5373 3668 5373 3668 5374 3668 5374 3668 5375 3667 5375 3667 5376 3667 5376 3668 5377 3668 5378 3668 5378 3668 5379 3668 5379 3668 5380 3667 5380 3667 5382 3667 5382 3667 5383 3667 5384 3667 5384 3667 5385 3667 5385 3667 5385 3666 5385 3666 5384 3666 5384 3666 5384 3665 5384 3664 5385 3664 5385 3664 5386 3664 5387 3664 5387 3664 5387 3665 5388 3665 5389 3666 5389 3667 5391 3668 5391 3668 5392 3669 5393 3669 5394 3669 5395 3669 5396 3669 5396 3669 5396 3669 5397 3668 5397 3668 5398 3668 5399 3669 5401 3669 5401 3669 5404 3670 5405 3670 5406 3670 5406 3670 5407 3671 5407 3671 5408 3671 5409 3671 5409 3671 5410 3671 5410 3671 5411 3671 5412 3672 5412 3672 5412 3673 5413 3673 5416 3674 5419 3674 5422 3674 5422 3675 5425 3675 5425 3675 5426 3675 5426 3676 5427 3676 5428 3676 5430 3676 5430 3677 5431 3677 5432 3677 5432 3678 5432 3679 5432 3679 5433 3679 5433 3679 5435 3680 5436 3680 5437 3680 5437 3680 5438 3680 5438 3681 5437 3681 5437 3681 5438 3682 5442 3683 5442 3683 5443 3683 5443 3684 5444 3684 5445 3684 5445 3684 5446 3685 5446 3685 5446 3685 5447 3685 5448 3685 5449 3684 5455 3684 5456 3684 5457 3684 5457 3684 5458 3684 5460 3685 5460 3686 5460 3686 5461 3686 5461 3686 5461 3686 5462 3685 5463 3684 5463 3684 5464 3684 5464 3684 5463 3685 5463 3685 5463 3686 5463 3686 5463 3687 5463 3687 5464 3687 5464 3687 5464 3686 5465 3686 5465 3686 5466 3685 5466 3685 5469 3685 5470 3685 5471 3685 5472 3685 5474 3685 5475 3685 5475 3685 5478 3687 5478 3688 5478 3689 5479 3689 5481 3689 5481 3690 5481 3690 5482 3690 5482 3691 5483 3691 5484 3691 5485 3691 5485 3691 5486 3691 5487 3691 5487 3691 5488 3691 5491 3691 5490 3690 5490 3690 5489 3690 5488 3690 5487 3688 5487 3688 5487 3688 5489 3688 5491 3689 5493 3689 5495 3689 5496 3688 5496 3688 5497 3688 5500 3688 5501 3688 5505 3689 5505 3689 5506 3689 5509 3690 5511 3690 5513 3689 5516 3689 5517 3689 5517 3690 5519 3690 5519 3690 5520 3691 5521 3691 5521 3691 5522 3691 5523 3691 5523 3692 5523 3692 5524 3692 5524 3692 5525 3692 5526 3691 5527 3691 5528 3691 5528 3691 5529 3691 5530 3690 5531 3690 5532 3690 5534 3690 5535 3690 5536 3690 5538 3690 5539 3690 5540 3691 5541 3692 5540 3692 5540 3692 5538 3692 5537 3691 5536 3691 5536 3691 5534 3692 5535 3692 5535 3692 5536 3693 5537 3693 5538 3693 5538 3693 5539 3693 5540 3693 5540 3693 5541 3693 5542 3693 5543 3693 5544 3693 5544 3692 5546 3692 5546 3692 5550 3692 5553 3693 5554 3693 5555 3693 5555 3693 5556 3693 5556 3694 5557 3694 5557 3695 5557 3695 5556 3696 5556 3695 5555 3696 5556 3696 5558 3697 5559 3697 5560 3698 5560 3698 5561 3698 5561 3699 5562 3699 5563 3699 5564 3699 5565 3699 5567 3700 5572 3700 5573 3700 5575 3701 5578 3702 5578 3702 5578 3703 5578 3703 5578 3703 5579 3704 5580 3703 5581 3703 5582 3703 5583 3703 5583 3704 5584 3704 5585 3705 5586 3704 5588 3704 5588 3705 5589 3705 5589 3706 5592 3706 5594 3707 5594 3707 5595 3707 5595 3707 5595 3706 5595 3706 5596 3705 5596 3705 5597 3705 5597 3704 5595 3703 5594 3701 5594 3701 5595 3701 5595 3701 5596 3702 5597 3702 5598 3702 5598 3702 5599 3704 5601 3705 5603 3707 5603 3707 5603 3707 5603 3708 5603 3708 5604 3708 5604 3709 5605 3709 5606 3710 5603 3712 5602 3712 5599 3712 5596 3713 5592 3713 5590 3715 5591 3717 5591 3717 5591 3718 5590 3718 5590 3718 5590 3718 5589 3718 5589 3718 5589 3718 5588 3719 5589 3719 5589 3719 5591 3719 5591 3719 5591 3719 5593 3718 5593 3718 5594 3717 5595 3717 5595 3717 5595 3718 5596 3718 5596 3720 5595 3722 5595 3722 5594 3722 5594 3722 5594 3722 5593 3722 5592 3722 5592 3722 5591 3722 5592 3723 5592 3723 5593 3723 5594 3723 5593 3724 5592 3724 5592 3724 5591 3724 5590 3724 5589 3725 5589 3726 5589 3726 5588 3727 5588 3727 5587 3727 5586 3727 5585 3728 5585 3728 5586 3729 5586 3729 5585 3729 5585 3730 5583 3730 5583 3730 5582 3730 5581 3730 5581 3730 5580 3730 5580 3730 5580 3730 5579 3730 5579 3730 5579 3730 5578 3730 5578 3731 5579 3731 5579 3731 5579 3732 5579 3732 5578 3732 5578 3733 5577 3733 5576 3733 5575 3734 5576 3735 5576 3735 5577 3735 5577 3735 5577 3736 5576 3737 5575 3737 5575 3737 5574 3737 5573 3737 5573 3737 5573 3737 5572 3737 5571 3737 5570 3736 5570 3736 5570 3736 5569 3735 5569 3735 5568 3735 5568 3736 5568 3737 5568 3737 5567 3737 5567 3738 5567 3738 5566 3738 5566 3738 5565 3738 5565 3738 5564 3738 5560 3738 5559 3738 5559 3737 5559 3737 5559 3737 5559 3736 5559 3736 5559 3735 5558 3735 5557 3735 5555 3735 5554 3735 5554 3735 5553 3735 5552 3735 5551 3735 5552 3735 5552 3735 5552 3736 5553 3736 5552 3736 5549 3737 5546 3738 5543 3738 5543 3738 5542 3738 5542 3738 5541 3738 5540 3738 5539 3739 5540 3739 5541 3739 5540 3739 5539 3740 5537 3740 5535 3740 5533 3741 5532 3741 5532 3741 5531 3741 5530 3741 5530 3741 5529 3741 5529 3741 5528 3741 5527 3742 5526 3742 5525 3742 5525 3742 5524 3742 5524 3743 5525 3743 5525 3743 5526 3743 5526 3743 5526 3743 5525 3743 5524 3743 5523 3743 5522 3743 5522 3743 5521 3743 5520 3743 5519 3743 5519 3744 5520 3744 5521 3744 5521 3744 5522 3744 5522 3744 5523 3744 5525 3744 5529 3745 5530 3745 5530 3745 5529 3746 5528 3747 5528 3747 5527 3747 5526 3747 5523 3746 5521 3746 5519 3746 5518 3745 5515 3745 5514 3745 5513 3745 5510 3746 5510 3747 5511 3747 5510 3747 5510 3747 5509 3747 5509 3747 5509 3747 5508 3747 5507 3747 5507 3747 5507 3748 5507 3748 5507 3748 5508 3748 5509 3749 5511 3750 5511 3751 5513 3752 5514 3753 5514 3753 5515 3753 5516 3753 5516 3753 5516 3753 5516 3754 5516 3755 5515 3755 5515 3755 5514 3755 5514 3755 5513 3755 5513 3754 5512 3754 5512 3754 5511 3754 5510 3754 5510 3754 5507 3754 5507 3754 5505 3754 5505 3754 5504 3754 5503 3754 5503 3754 5502 3755 5502 3755 5503 3755 5503 3756 5504 3756 5504 3757 5504 3757 5503 3757 5502 3757 5501 3756 5500 3756 5499 3755 5498 3755 5497 3754 5497 3754 5495 3755 5495 3755 5491 3756 5490 3756 5489 3757 5489 3757 5489 3758 5490 3758 5491 3759 5491 3759 5492 3759 5492 3760 5491 3760 5490 3760 5490 3760 5489 3760 5488 3761 5485 3761 5484 3761 5482 3761 5481 3761 5479 3761 5479 3761 5474 3761 5473 3761 5472 3762 5471 3762 5471 3764 5471 3765 5472 3765 5473 3766 5473 3766 5473 3766 5472 3767 5472 3767 5473 3768 5473 3768 5473 3768 5476 3768 5479 3769 5479 3769 5479 3769 5480 3770 5479 3770 5479 3770 5479 3771 5478 3771 5478 3771 5478 3772 5479 3772 5479 3773 5478 3773 5477 3775 5477 3775 5478 3775 5478 3775 5479 3775 5480 3775 5480 3775 5481 3775 5480 3776 5480 3776 5478 3775 5477 3775 5477 3775 5477 3775 5476 3775 5476 3776 5476 3776 5476 3776 5476 3777 5475 3777 5475 3777 5474 3778 5474 3778 5473 3778 5472 3778 5472 3778 5470 3778 5468 3779 5468 3779 5468 3779 5469 3780 5470 3780 5471 3780 5472 3780 5473 3780 5474 3780 5475 3780 5476 3780 5476 3780 5477 3781 5476 3781 5476 3781 5476 3781 5475 3781 5475 3782 5475 3782 5476 3782 5476 3782 5477 3783 5477 3784 5477 3786 5477 3786 5477 3786 5476 3786 5476 3786 5475 3786 5474 3786 5474 3786 5473 3786 5473 3786 5473 3786 5473 3787 5474 3787 5477 3787 5478 3787 5479 3787 5479 3788 5479 3788 5480 3788 5477 3790 5477 3790 5477 3790 5476 3790 5475 3790 5474 3790 5474 3790 5473 3790 5472 3791 5472 3791 5470 3791 5469 3791 5468 3792 5469 3792 5471 3792 5472 3792 5473 3792 5473 3792 5476 3793 5478 3793 5479 3793 5481 3793 5482 3793 5482 3793 5483 3794 5486 3795 5487 3796 5488 3797 5489 3798 5489 3798 5490 3798 5490 3799 5491 3799 5491 3799 5492 3799 5493 3800 5493 3800 5492 3800 5491 3801 5489 3801 5488 3801 5489 3802 5490 3802 5490 3802 5491 3802 5490 3803 5489 3803 5488 3803 5488 3803 5489 3804 5490 3804 5492 3803 5494 3803 5494 3803 5495 3803 5496 3803 5496 3803 5499 3803 5500 3803 5500 3803 5501 3803 5503 3804 5504 3804 5503 3805 5503 3805 5502 3805 5503 3806 5503 3806 5504 3807 5504 3807 5503 3808 5502 3809 5502 3810 5500 3810 5499 3810 5498 3810 5498 3810 5498 3811 5499 3811 5499 3811 5500 3811 5502 3810 5503 3810 5503 3810 5504 3810 5504 3810 5508 3809 5509 3809 5509 3809 5510 3809 5510 3809 5510 3810 5510 3810 5509 3810 5509 3811 5509 3812 5510 3812 5510 3812 5511 3812 5511 3812 5513 3812 5514 3812 5514 3811 5514 3811 5513 3811 5513 3810 5513 3810 5515 3810 5516 3810 5517 3809 5517 3809 5518 3809 5518 3808 5519 3808 5520 3809 5521 3809 5521 3809 5522 3810 5521 3810 5520 3811 5519 3811 5518 3811 5518 3811 5518 3811 5518 3812 5519 3812 5519 3812 5521 3812 5522 3813 5523 3813 5523 3813 5523 3814 5522 3814 5522 3814 5521 3815 5522 3815 5522 3815 5524 3815 5526 3815 5527 3815 5527 3816 5531 3816 5533 3816 5537 3816 5538 3816 5539 3816 5539 3816 5540 3816 5541 3816 5543 3816 5544 3816 5545 3816 5545 3817 5546 3817 5547 3818 5547 3818 5547 3819 5546 3819 5545 3819 5542 3819 5541 3819 5541 3819 5541 3819 5542 3819 5542 3818 5542 3818 5541 3818 5538 3817 5537 3817 5536 3817 5535 3817 5530 3817 5529 3817 5524 3817 5523 3817 5521 3817 5521 3818 5520 3818 5518 3818 5517 3818 5516 3818 5514 3818 5513 3818 5512 3818 5511 3818 5509 3817 5508 3817 5507 3817 5505 3818 5505 3818 5504 3818 5503 3818 5502 3817 5501 3818 5499 3818 5499 3818 5498 3818 5497 3818 5496 3818 5495 3819 5495 3819 5494 3819 5494 3819 5493 3819 5491 3819 5489 3819 5488 3819 5487 3820 5487 3820 5485 3820 5485 3820 5484 3820 5484 3821 5481 3821 5480 3821 5478 3821 5477 3821 5477 3821 5477 3821 5476 3822 5476 3822 5476 3823 5475 3823 5475 3823 5474 3824 5473 3824 5472 3823 5472 3823 5471 3823 5471 3823 5471 3823 5471 3822 5470 3822 5469 3822 5469 3822 5468 3822 5467 3822 5466 3822 5465 3822 5461 3822 5460 3822 5459 3822 5459 3823 5459 3823 5459 3824 5459 3824 5458 3824 5458 3824 5457 3824 5455 3824 5454 3824 5451 3824 5451 3824 5450 3824 5450 3824 5449 3824 5448 3825 5448 3825 5447 3825 5447 3825 5446 3825 5445 3825 5444 3825 5443 3825 5442 3825 5441 3825 5439 3825 5438 3825 5433 3826 5432 3826 5431 3827 5431 3827 5432 3827 5432 3827 5433 3827 5436 3827 5437 3827 5437 3827 5438 3828 5439 3828 5439 3829 5439 3829 5438 3829 5438 3829 5437 3829 5437 3830 5436 3830 5436 3830 5436 3830 5437 3830 5438 3830 5439 3830 5440 3830 5442 3831 5442 3832 5441 3832 5440 3832 5439 3832 5438 3832 5438 3832 5438 3833 5438 3833 5437 3833 5436 3834 5435 3834 5434 3834 5433 3834 5433 3834 5432 3835 5431 3836 5430 3837 5427 3838 5426 3838 5425 3838 5424 3838 5423 3839 5422 3839 5420 3839 5419 3839 5418 3839 5417 3839 5417 3840 5416 3840 5417 3840 5417 3840 5418 3840 5419 3840 5420 3840 5421 3840 5422 3840 5423 3840 5424 3840 5425 3840 5427 3840 5428 3840 5429 3840 5430 3840 5430 3840 5431 3840 5431 3839 5433 3839 5433 3839 5434 3839 5435 3839 5437 3839 5438 3839 5438 3839 5439 3839 5439 3839 5439 3840 5440 3840 5440 3841 5439 3841 5438 3841 5438 3841 5437 3842 5435 3842 5434 3842 5433 3842 5429 3843 5428 3843 5427 3843 5425 3843 5422 3843 5421 3843 5415 3844 5414 3844 5411 3844 5410 3844 5409 3844 5407 3844 5404 3844 5402 3845 5400 3845 5400 3845 5401 3845 5402 3845 5402 3846 5403 3846 5404 3846 5404 3846 5405 3847 5405 3847 5405 3848 5406 3848 5406 3848 5408 3848 5409 3848 5409 3848 5410 3848 5411 3848 5412 3848 5412 3848 5413 3848 5414 3848 5416 3847 5417 3847 5418 3847 5421 3847 5426 3847 5430 3847 5431 3847 5432 3847 5434 3847 5434 3847 5435 3846 5442 3846 5443 3846 5444 3846 5444 3846 5444 3846 5445 3846 5446 3847 5447 3848 5446 3848 5446 3848 5445 3848 5445 3848 5444 3848 5443 3848 5443 3848 5442 3848 5441 3848 5441 3849 5440 3849 5439 3849 5436 3849 5435 3849 5434 3849 5432 3849 5432 3849 5431 3849 5431 3849 5430 3849 5428 3849 5427 3849 5427 3849 5428 3850 5429 3850 5431 3850 5432 3850 5433 3851 5434 3851 5434 3851 5436 3851 5438 3851 5438 3850 5439 3850 5440 3850 5440 3850 5441 3850 5442 3850 5443 3850 5444 3850 5444 3850 5445 3850 5445 3850 5446 3850 5446 3850 5447 3850 5447 3850 5448 3850 5449 3850 5449 3850 5450 3851 5449 3851 5449 3851 5448 3851 5446 3851 5444 3852 5444 3852 5443 3852 5442 3852 5442 3853 5442 3853 5441 3853 5439 3853 5434 3852 5433 3852 5432 3852 5431 3853 5431 3853 5432 3853 5432 3853 5432 3853 5436 3854 5438 3854 5439 3855 5439 3855 5440 3855 5441 3855 5443 3854 5443 3854 5444 3855 5444 3855 5442 3855 5440 3855 5439 3855 5439 3855 5439 3856 5440 3857 5441 3857 5441 3857 5442 3857 5443 3857 5444 3858 5443 3858 5443 3858 5442 3858 5441 3858 5441 3858 5440 3858 5441 3858 5442 3859 5442 3859 5442 3859 5440 3859 5441 3860 5442 3860 5445 3860 5446 3860 5447 3860 5446 3860 5447 3860 5448 3860 5451 3860 5454 3860 5455 3860 5457 3860 5459 3860 5461 3860 5462 3860 5463 3859 5464 3859 5464 3860 5465 3860 5465 3860 5466 3860 5466 3861 5465 3861 5465 3861 5464 3862 5462 3862 5460 3862 5459 3862 5456 3862 5455 3862 5454 3862 5453 3863 5454 3863 5453 3863 5453 3864 5452 3864 5452 3864 5451 3864 5451 3864 5450 3864 5448 3864 5447 3864 5444 3864 5442 3864 5440 3864 5439 3864 5439 3864 5438 3864 5437 3864 5437 3865 5438 3865 5439 3865 5441 3865 5442 3866 5444 3866 5445 3866 5447 3866 5448 3866 5449 3865 5452 3865 5452 3865 5453 3865 5454 3865 5459 3866 5460 3866 5460 3866 5461 3866 5462 3866 5463 3867 5464 3867 5465 3867 5465 3867 5467 3867 5467 3867 5468 3868 5468 3868 5468 3868 5467 3869 5468 3869 5468 3869 5469 3869 5470 3869 5471 3869 5473 3869 5473 3869 5474 3869 5475 3869 5476 3869 5476 3869 5477 3870 5477 3870 5476 3870 5475 3870 5476 3871 5477 3871 5477 3871 5478 3871 5479 3871 5480 3871 5481 3871 5481 3871 5482 3872 5482 3872 5483 3872 5486 3872 5489 3873 5490 3873 5491 3873 5491 3874 5491 3874 5491 3874 5492 3874 5492 3875 5492 3875 5491 3876 5490 3876 5490 3876 5488 3876 5487 3876 5486 3876 5485 3876 5486 3877 5487 3877 5490 3877 5491 3877 5495 3878 5496 3878 5497 3878 5498 3878 5501 3878 5503 3878 5505 3878 5507 3878 5508 3878 5513 3879 5514 3879 5516 3879 5516 3879 5517 3879 5517 3879 5518 3880 5517 3880 5517 3880 5516 3881 5515 3881 5515 3881 5514 3881 5515 3881 5520 3882 5521 3882 5522 3882 5522 3882 5525 3882 5527 3882 5528 3882 5530 3883 5531 3883 5532 3883 5532 3883 5532 3883 5531 3883 5530 3883 5529 3883 5529 3884 5529 3884 5530 3884 5535 3885 5536 3885 5537 3885 5538 3885 5538 3885 5540 3885 5541 3884 5541 3884 5542 3884 5543 3884 5544 3884 5545 3884 5546 3884 5547 3885 5548 3885 5548 3885 5548 3885 5547 3885 5546 3885 5545 3885 5544 3885 5542 3885 5540 3885 5539 3885 5539 3886 5539 3886 5540 3886 5541 3886 5541 3886 5543 3886 5544 3887 5545 3887 5545 3887 5543 3887 5541 3887 5539 3887 5538 3888 5538 3888 5538 3888 5540 3888 5545 3888 5547 3888 5549 3888 5551 3888 5552 3888 5555 3888 5556 3888 5556 3888 5558 3888 5559 3888 5560 3888 5562 3888 5564 3888 5565 3888 5566 3888 5567 3889 5568 3890 5569 3890 5569 3891 5569 3891 5566 3892 5565 3892 5565 3892 5563 3892 5563 3892 5559 3892 5557 3893 5556 3893 5555 3893 5555 3893 5556 3893 5556 3893 5556 3894 5555 3894 5553 3894 5551 3894 5551 3894 5550 3894 5550 3895 5550 3895 5550 3895 5550 3895 5553 3895 5556 3896 5558 3896 5560 3896 5561 3896 5562 3896 5562 3896 5563 3895 5564 3895 5565 3895 5568 3894 5571 3894 5571 3894 5573 3893 5573 3893 5575 3893 5577 3893 5578 3893 5579 3894 5580 3894 5580 3894 5582 3894 5582 3894 5583 3894 5585 3894 5586 3894 5587 3894 5588 3894 5589 3894 5590 3895 5591 3895 5592 3895 5594 3895 5596 3895 5600 3895 5601 3895 5602 3896 5602 3896 5603 3896 5603 3896 5604 3896 5605 3896 5607 3896 5610 3896 5611 3896 5612 3896 5613 3896 5613 3896 5614 3896 5613 3897 5612 3897 5611 3897 5611 3897 5612 3897 5613 3897 5614 3897 5615 3897 5617 3897 5617 3897 5619 3897 5621 3897 5622 3897 5624 3897 5625 3897 5626 3897 5626 3897 5627 3897 5627 3898 5626 3898 5626 3899 5623 3899 5622 3899 5621 3899 5621 3900 5620 3900 5620 3900 5620 3901 5621 3901 5622 3901 5622 3901 5623 3901 5623 3900 5624 3900 5625 3900 5626 3900 5626 3900 5627 3900 5628 3900 5632 3901 5632 3901 5633 3902 5634 3902 5635 3902 5636 3902 5638 3902 5640 3902 5641 3902 5642 3902 5642 3903 5643 3903 5644 3903 5645 3903 5646 3903 5647 3902 5649 3902 5650 3902 5650 3902 5651 3902 5652 3902 5659 3901 5660 3901 5661 3901 5664 3901 5666 3901 5668 3902 5668 3902 5669 3902 5670 3902 5671 3902 5671 3902 5670 3903 5671 3903 5671 3903 5673 3903 5673 3903 5675 3903 5677 3903 5678 3903 5679 3903 5680 3904 5682 3904 5683 3904 5684 3904 5686 3904 5687 3904 5692 3904 5695 3904 5695 3904 5698 3905 5700 3905 5702 3905 5703 3905 5704 3906 5705 3906 5706 3906 5707 3906 5709 3906 5710 3906 5713 3906 5716 3906 5718 3906 5719 3906 5720 3906 5719 3906 5719 3907 5720 3907 5720 3907 5721 3907 5722 3907 5724 3907 5725 3907 5727 3907 5728 3907 5729 3907 5731 3907 5732 3907 5732 3907 5734 3907 5735 3907 5736 3906 5737 3906 5739 3906 5741 3907 5742 3907 5743 3907 5744 3907 5744 3907 5741 3908 5740 3908 5739 3908 5740 3908 5741 3908 5742 3909 5749 3909 5750 3909 5750 3925 5750 3941 5750 3957 5750 3973 5750 3989 5750 4000 5734 4000 5718 4000 5702 4000 5686 4000 5670 4000 5654 4000 5638 4000 5622 4000 5606 4000 5590 4000 5574 4000 5558 4000 5542 4000 5526 4000 5510 4000 5494 4000 5478 4000 5463 4000 5447 4000 5431 4000 5415 4000 5399 4000 5383 4000 5367 4000 5351 4000 5335 4000 5319 4000 5303 4000 5287 4000 5271 4000 5255 4000 5239 4000 5223 4000 5207 4000 5191 4000 5175 4000 5159 4000 5143 4000 5127 4000 5111 4000 5095 4000 5079 4000 5063 4000 5047 4000 5031 4000 5015 4000 4999 4000 4983 4000 4967 4000 4951 4000 4935 4000 4919 4000 4903 4000 4887 4000 4872 4000 4856 4000 4840 4000 4824 4000 4808 4000 4792 4000 4776 4000 4760 4000 4744 4000 4728 4000 4712 4000 4696 4000 4680 4000 4664 4000 4648 4000 4632 4000 4616 4000 4600 4000 4584 4000 4568 4000 4552 4000 4536 4000 4520 4000 4504 4000 4488 4000 4472 4000 4456 4000 4440 4000 4424 4000 4408 4000 4392 4000 4376 4000 4360 4000 4344 4000 4328 4000 4312 4000 4297 4000 4281 4000 4265 4000 4249 4000 4233 4000 4217 4000 4201 4000 4185 4000 4169 4000 4153 4000 4137 4000 4121 4000 4105 4000 4089 4000 4073 4000 4057 4000 4041 4000 4025 4000 4009 4000 3993 4000 3977 4000 3961 4000 3945 4000 3929 4000 3913 4000 3897 4000 3881 4000 3865 4000 3849 4000 3833 4000 3817 4000 3801 4000 3785 4000 3769 4000 3753 4000 3737 4000 3722 4000 3706 4000 3690 4000 3674 4000 3658 4000 3642 4000 3626 4000 3610 4000 3594 4000 3578 4000 3562 4000 3546 4000 3530 4000 3514 4000 3498 4000 3482 4000 3466 4000 3450 4000 3434 4000 3418 4000 3402 4000 3386 4000 3370 4000 3354 4000 3338 4000 3322 4000 3306 4000 3290 4000 3274 4000 3258 4000 3242 4000 3226 4000 3210 4000 3194 4000 3178 4000 3163 4000 3147 4000 3131 4000 3115 4000 3099 4000 3083 4000 3067 4000 3051 4000 3035 4000 3019 4000 3003 4000 2987 4000 2971 4000 2955 4000 2939 4000 2923 4000 2907 4000 2891 4000 2875 4000 2859 4000 2843 4000 2827 4000 2811 4000 2795 4000 2779 4000 2763 4000 2747 4000 2731 4000 2715 4000 2699 4000 2683 4000 2667 4000 2651 4000 2635 4000 2619 4000 2603 4000 2588 4000 2572 4000 2556 4000 2540 4000 2524 4000 2508 4000 2492 4000 2476 4000 2460 4000 2444 4000 2428 4000 2412 4000 2396 4000 2380 4000 2364 4000 2348 4000 2332 4000 2316 4000 2300 4000 2284 4000 2268 4000 2252 4000 2236 4000 2220 4000 2204 4000 2188 4000 2172 4000 2156 4000 2140 4000 2124 4000 2108 4000 2092 4000 2076 4000 2060 4000 2044 4000 2028 4000 2012 4000 1997 4000 1981 4000 1965 4000 1949 4000 1933 4000 1917 4000 1901 4000 1885 4000 1869 4000 1853 4000 1837 4000 1821 4000 1805 4000 1789 4000 1773 4000 1757 4000 1741 4000 1725 4000 1709 4000 1693 4000 1677 4000 1661 4000 1645 4000 1629 4000 1613 4000 1597 4000 1581 4000 1565 4000 1549 4000 1533 4000 1517 4000 1501 4000 1485 4000 1469 4000 1453 4000 1438 4000 1422 4000 1406 4000 1390 4000 1374 4000 1358 4000 1342 4000 1326 4000 1310 4000 1294 4000 1278 4000 1262 4000 1246 4000 1230 4000 1214 4000 1198 4000 1182 4000 1166 4000 1150 4000 1134 4000 1118 4000 1102 4000 1086 4000 1070 4000 1054 4000 1038 4000 1022 4000 1006 4000 990 4000 974 4000 958 4000 942 4000 926 4000 910 4000 894 4000 878 4000 863 4000 847 4000 831 4000 815 4000 799 4000 783 4000 767 4000 751 4000 735 4000 719 4000 703 4000 687 4000 671 4000 655 4000 639 4000 623 4000 607 4000 591 4000 575 4000 559 4000 543 4000 527 4000 511 4000 495 4000 479 4000 463 4000 447 4000 431 4000 415 4000 399 4000 383 4000 367 4000 351 4000 335 4000 319 4000 303 4000 287 4000 272 4000 256 4000 240 4000 224 4000 208 4000 192 4000 176 4000 160 4000 144 4000 128 4000 112 4000 96 4000 80 4000 64 4000 48 4000 32 4000 16 4000 00 4000 00 3984 00 3968 00 3952 00 3936 00 3920 00 3909 01 3909 03 3909 04 3909 05 3909 06 3909 07 3909 09 3909 10 3910 12 3910 13 3910 14 3910 15 3910 16 3910 17 3910 20 3910 21 3910 22 3910 23 3910 24 3910 26 3911 29 3911 32 3911 33 3911 33 3912 34 3912 34 3912 35 3912 35 3912 36 3912 38 3912 41 3912 44 3912 46 3912 50 3911 53 3911 58 3911 64 3911 66 3911 70 3911 73 3911 75 3911 77 3911 79 3911 85 3911 88 3911 90 3911 92 3911 94 3911 96 3911 97 3911 102 3912 104 3912 106 3912 112 3912 117 3912 118 3912 121 3913 126 3913 129 3913 131 3913 133 3913 134 3913 136 3913 138 3913 139 3913 141 3913 144 3914 146 3914 148 3914 151 3914 154 3914 155 3914 157 3914 165 3914 172 3915 174 3915 178 3915 180 3916 181 3916 182 3916 184 3916 184 3916 184 3917 184 3917 183 3917 182 3917 183 3917 184 3918 185 3918 186 3918 188 3918 189 3918 190 3918 191 3918 191 3917 191 3917 192 3917 193 3917 194 3917 197 3917 200 3917 201 3917 202 3917 204 3917 205 3917 206 3917 207 3917 206 3918 205 3918 204 3918 204 3918 204 3918 205 3918 206 3918 208 3918 211 3919 214 3919 216 3919 219 3919 222 3920 225 3920 232 3920 236 3920 239 3921 240 3921 242 3921 244 3921 247 3921 250 3921 253 3921 256 3921 257 3921 260 3921 263 3922 266 3922 268 3922 269 3922 270 3923 271 3923 271 3923 272 3923 274 3923 277 3924 277 3924 279 3924 282 3924 287 3924 288 3925 290 3925 292 3925 295 3925 296 3925 297 3925 298 3925 301 3925 303 3925 306 3925 312 3925 316 3925 319 3925 322 3925 326 3925 328 3925 330 3925 332 3925 335 3926 339 3926 341 3926 344 3926 347 3927 353 3927 356 3927 358 3927 360 3927 362 3927 364 3927 366 3927 369 3927 371 3927 374 3927 378 3926 383 3926 389 3926 392 3926 393 3926 396 3926 402 3925 406 3925 412 3925 415 3925 419 3925 425 3925 429 3925 434 3925 438 3925 441 3926 444 3926 447 3926 448 3926 450 3926 454 3927 455 3927 458 3927 459 3927 460 3927 463 3928 466 3928 467 3928 471 3928 475 3928 478 3927 481 3927 482 3927 483 3927 483 3927 483 3926 482 3926 483 3925 483 3925 484 3925 493 3923 494 3923 496 3922 497 3922 499 3922 500 3922 502 3922 505 3922 509 3922 511 3922 514 3922 515 3922 521 3922 523 3922 525 3922 526 3922 532 3922 535 3922 538 3922 546 3922 547 3922 551 3922 555 3922 563 3922 567 3922 568 3922 571 3922 582 3922 588 3923 594 3923 597 3923 598 3923 601 3923 605 3923 606 3923 608 3923 614 3924 620 3924 626 3924 630 3924 634 3924 637 3924 638 3924 M 1881 3574 1881 3574 1881 3573 1881 3573 1881 3572 1881 3572 1882 3572 1884 3572 1884 3572 1884 3572 1884 3572 1885 3573 1885 3573 1886 3573 1886 3573 1885 3574 1885 3574 1885 3574 1882 3574 1881 3574 M 1981 3578 1980 3578 1980 3578 1980 3578 1979 3577 1978 3577 1978 3577 1978 3577 1978 3577 1977 3576 1977 3576 1977 3576 1978 3576 1978 3576 1980 3575 1981 3575 1981 3575 1981 3575 1982 3575 1983 3575 1983 3575 1984 3575 1984 3575 1984 3575 1985 3575 1985 3576 1985 3576 1985 3576 1985 3576 1985 3577 1985 3577 1985 3577 1984 3577 1982 3578 1981 3578 1981 3578 1981 3578 M 1905 3583 1904 3583 1903 3583 1903 3582 1903 3582 1903 3582 1904 3580 1904 3579 1905 3579 1908 3579 1908 3579 1908 3579 1908 3579 1908 3580 1907 3580 1906 3581 1906 3581 1906 3581 1906 3582 1905 3583 M 1959 3583 1959 3583 1959 3583 1958 3583 1958 3583 1957 3583 1957 3583 1956 3583 1956 3583 1955 3583 1955 3583 1954 3582 1954 3582 1954 3581 1954 3581 1954 3581 1954 3581 1954 3581 1955 3581 1955 3581 1955 3581 1956 3581 1956 3581 1957 3581 1958 3581 1958 3581 1959 3581 1961 3581 1962 3581 1964 3582 1964 3582 1962 3583 1962 3583 1961 3583 1961 3583 1961 3583 1960 3583 1959 3583 M 1942 3587 1942 3587 1942 3586 1942 3586 1943 3585 1943 3585 1943 3585 1943 3585 1943 3585 1944 3585 1945 3585 1945 3585 1945 3585 1946 3584 1946 3584 1945 3584 1944 3584 1944 3584 1944 3584 1945 3583 1945 3583 1946 3583 1947 3583 1949 3582 1949 3582 1950 3582 1950 3581 1951 3581 1952 3582 1952 3583 1953 3583 1952 3583 1952 3584 1952 3584 1952 3584 1951 3584 1952 3586 1952 3586 1953 3586 1953 3586 1953 3586 1954 3586 1954 3586 1954 3586 1954 3586 1954 3585 1954 3585 1953 3585 1953 3585 1954 3585 1956 3584 1957 3583 1957 3583 1957 3583 1957 3583 1957 3584 1957 3584 1957 3585 1957 3585 1957 3585 1957 3585 1958 3585 1958 3585 1959 3586 1959 3586 1960 3585 1960 3586 1962 3586 1962 3586 1962 3586 1964 3587 1964 3587 1964 3588 1964 3588 1963 3588 1962 3588 1962 3588 1961 3589 1961 3589 1960 3589 1960 3589 1959 3589 1959 3590 1959 3590 1960 3590 1960 3590 1960 3590 1961 3590 1961 3591 1961 3591 1960 3591 1960 3591 1960 3591 1959 3591 1959 3591 1958 3591 1958 3591 1957 3591 1957 3591 1957 3591 1956 3591 1953 3591 1952 3591 1952 3591 1950 3592 1950 3592 1950 3592 1949 3592 1949 3592 1949 3592 1949 3591 1947 3591 1946 3591 1946 3591 1946 3590 1945 3590 1945 3590 1945 3590 1945 3590 1945 3589 1945 3589 1946 3589 1947 3588 1948 3587 1948 3586 1947 3586 1947 3586 1946 3586 1946 3586 1946 3586 1946 3586 1943 3587 1942 3587 M 1885 3586 1885 3586 1886 3585 1886 3585 1886 3585 1886 3585 1887 3584 1888 3584 1888 3584 1888 3584 1888 3584 1888 3585 1888 3585 1888 3585 1887 3586 1887 3586 1886 3586 1886 3586 1886 3586 1885 3586 M 1876 3593 1874 3593 1873 3592 1875 3591 1877 3590 1877 3589 1878 3589 1878 3589 1878 3588 1878 3588 1877 3588 1877 3587 1877 3586 1877 3585 1878 3585 1878 3585 1879 3585 1879 3585 1880 3585 1880 3585 1881 3585 1881 3585 1881 3585 1883 3587 1884 3587 1884 3588 1885 3588 1884 3588 1882 3590 1881 3591 1880 3592 1879 3592 1879 3592 1878 3592 1878 3592 1878 3592 1878 3592 1878 3592 1877 3592 1877 3592 1877 3592 1877 3592 1876 3593 M 1967 3590 1967 3590 1967 3590 1967 3589 1968 3589 1971 3588 1971 3588 1971 3588 1971 3589 1971 3589 1971 3589 1970 3589 1970 3589 1969 3590 1969 3590 1968 3590 1968 3590 1967 3590 M 1858 3598 1857 3597 1857 3597 1857 3597 1857 3597 1857 3597 1854 3597 1852 3597 1850 3596 1849 3595 1850 3594 1850 3594 1850 3594 1851 3594 1851 3594 1852 3593 1853 3593 1853 3593 1853 3593 1854 3593 1855 3593 1855 3593 1855 3593 1855 3593 1855 3593 1855 3592 1855 3592 1855 3592 1855 3592 1855 3592 1855 3592 1855 3592 1856 3592 1857 3591 1857 3591 1857 3592 1857 3592 1858 3592 1858 3592 1858 3591 1858 3591 1859 3591 1859 3591 1859 3591 1859 3590 1859 3590 1859 3590 1861 3589 1861 3589 1861 3589 1862 3589 1862 3589 1863 3589 1864 3589 1864 3589 1867 3589 1867 3589 1867 3590 1867 3590 1867 3590 1866 3590 1865 3591 1864 3591 1864 3591 1864 3592 1864 3592 1864 3592 1864 3592 1865 3592 1865 3591 1866 3591 1866 3591 1866 3591 1867 3591 1867 3591 1867 3591 1868 3592 1868 3592 1868 3592 1866 3593 1865 3593 1865 3593 1865 3594 1865 3594 1866 3594 1867 3594 1867 3594 1868 3593 1868 3593 1869 3593 1869 3593 1869 3593 1871 3593 1871 3593 1871 3593 1873 3594 1872 3594 1872 3594 1871 3594 1871 3594 1870 3594 1869 3594 1869 3595 1867 3595 1867 3595 1867 3595 1867 3595 1867 3595 1866 3596 1866 3596 1864 3597 1864 3597 1864 3597 1860 3597 1859 3598 1858 3598 M 1959 3594 1959 3594 1958 3594 1958 3593 1957 3593 1957 3593 1957 3593 1957 3593 1957 3592 1957 3592 1957 3592 1958 3592 1958 3592 1958 3592 1959 3592 1960 3592 1961 3592 1961 3591 1962 3591 1962 3591 1963 3591 1964 3591 1964 3591 1965 3591 1965 3590 1966 3590 1966 3590 1967 3590 1966 3591 1966 3592 1966 3592 1965 3592 1965 3592 1964 3593 1964 3593 1963 3593 1963 3593 1962 3593 1962 3593 1962 3593 1960 3594 1959 3594 M 1864 3599 1862 3599 1861 3599 1860 3599 1860 3599 1860 3598 1860 3598 1861 3598 1861 3598 1861 3597 1862 3597 1862 3597 1863 3597 1863 3597 1864 3597 1864 3597 1864 3597 1865 3597 1865 3597 1866 3597 1866 3596 1866 3596 1867 3596 1867 3596 1867 3597 1867 3597 1867 3597 1866 3597 1866 3597 1865 3598 1864 3599 1864 3599 1864 3599 M 1924 3603 1925 3603 1926 3604 1926 3604 1926 3604 1926 3604 1926 3604 1926 3605 1926 3605 1926 3605 1925 3605 1925 3605 1924 3605 1921 3604 1920 3603 1920 3603 1920 3603 1920 3603 1920 3603 1920 3602 1920 3602 1920 3602 1920 3602 1920 3602 1921 3602 1923 3602 1924 3602 1924 3602 1924 3603 1924 3603 M 4528 3608 4528 3608 4527 3608 4527 3608 4527 3608 4526 3608 4525 3608 4523 3607 4523 3607 4522 3607 4522 3607 4522 3607 4521 3607 4521 3606 4521 3606 4521 3606 4520 3606 4520 3606 4520 3605 4520 3605 4519 3605 4519 3605 4518 3605 4518 3605 4517 3603 4517 3603 4517 3603 4517 3603 4517 3603 4517 3602 4518 3602 4518 3602 4519 3602 4519 3602 4523 3603 4524 3604 4524 3604 4524 3604 4524 3605 4524 3605 4524 3605 4524 3605 4524 3606 4524 3606 4525 3606 4525 3606 4525 3607 4526 3607 4526 3607 4527 3607 4528 3608 M 4492 3609 4492 3609 4492 3609 4492 3609 4492 3610 4492 3610 4491 3611 4490 3611 4489 3611 4489 3611 4489 3611 4488 3611 4487 3611 4486 3611 4484 3612 4483 3612 4480 3612 4480 3612 4479 3611 4479 3611 4478 3611 4478 3611 4477 3611 4477 3611 4476 3611 4476 3610 4476 3610 4476 3610 4476 3610 4477 3609 4478 3609 4479 3608 4479 3608 4480 3608 4481 3608 4481 3607 4482 3607 4483 3607 4483 3607 4484 3607 4484 3607 4485 3607 4486 3607 4488 3607 4488 3607 4488 3607 4489 3607 4490 3607 4490 3607 4491 3608 4491 3608 4491 3608 4492 3608 4492 3608 4492 3608 4492 3608 4492 3609 M 1819 3615 1819 3615 1818 3615 1818 3615 1818 3614 1818 3614 1818 3614 1818 3613 1820 3612 1820 3611 1821 3611 1822 3611 1822 3611 1822 3610 1822 3610 1822 3609 1822 3609 1822 3609 1823 3609 1823 3609 1824 3609 1825 3609 1827 3609 1827 3610 1827 3610 1827 3611 1826 3612 1826 3612 1825 3612 1825 3612 1824 3612 1824 3612 1823 3612 1823 3612 1823 3612 1822 3612 1823 3612 1823 3612 1823 3613 1824 3613 1824 3614 1823 3614 1821 3615 1821 3615 1820 3615 1819 3615 M 4352 3614 4351 3614 4351 3614 4350 3613 4350 3613 4349 3613 4349 3613 4349 3613 4349 3612 4349 3612 4349 3612 4350 3612 4351 3612 4351 3611 4352 3611 4352 3611 4353 3611 4353 3612 4356 3612 4356 3612 4357 3613 4357 3613 4357 3613 4356 3613 4356 3613 4356 3613 4355 3614 4355 3614 4354 3613 4353 3614 4352 3614 M 4484 3614 4484 3614 4484 3614 4484 3614 4484 3614 4484 3614 4485 3614 4485 3613 4486 3613 4487 3613 4488 3613 4488 3614 4488 3614 4488 3614 4488 3614 4487 3614 4486 3614 4485 3614 4485 3614 4484 3614 M 4480 3619 4480 3619 4481 3618 4481 3618 4482 3617 4482 3617 4483 3617 4483 3617 4484 3617 4484 3618 4484 3618 4484 3618 4484 3618 4484 3618 4484 3618 4483 3619 4483 3619 4482 3619 4482 3619 4481 3619 4480 3619 M 1809 3622 1808 3622 1808 3622 1808 3622 1808 3621 1809 3618 1809 3618 1809 3618 1811 3618 1811 3618 1811 3618 1812 3618 1812 3618 1812 3618 1812 3620 1812 3620 1812 3620 1812 3620 1811 3620 1811 3621 1810 3621 1809 3622 1809 3622 1809 3622 M 4420 3621 4419 3621 4418 3621 4414 3620 4413 3620 4413 3620 4413 3620 4413 3620 4413 3619 4413 3619 4413 3619 4414 3619 4414 3619 4415 3618 4415 3618 4417 3618 4418 3618 4419 3618 4420 3618 4421 3618 4421 3618 4422 3619 4422 3619 4422 3619 4422 3619 4422 3619 4422 3620 4422 3620 4422 3620 4422 3620 4421 3621 4421 3621 4421 3621 4420 3621 M 5471 3624 5471 3623 5470 3623 5469 3623 5468 3622 5468 3622 5468 3621 5467 3621 5467 3620 5467 3620 5468 3619 5468 3619 5468 3619 5468 3619 5469 3620 5470 3620 5470 3621 5470 3621 5472 3622 5472 3622 5472 3623 5472 3623 5472 3623 5472 3624 5471 3624 M 4428 3624 4428 3624 4427 3624 4426 3624 4426 3624 4426 3623 4426 3623 4426 3623 4426 3623 4427 3623 4427 3623 4428 3623 4428 3623 4429 3623 4429 3623 4430 3623 4430 3623 4430 3624 4430 3624 4429 3624 4429 3624 4429 3624 4428 3624 4428 3624 M 4452 3625 4451 3625 4451 3624 4451 3624 4450 3624 4450 3624 4450 3624 4450 3624 4450 3624 4450 3624 4450 3623 4450 3623 4451 3623 4452 3623 4452 3623 4453 3624 4454 3624 4454 3624 4454 3624 4454 3624 4454 3624 4453 3624 4453 3624 4453 3625 4452 3625 M 4238 3627 4237 3627 4236 3627 4236 3627 4235 3627 4235 3626 4235 3626 4236 3625 4236 3625 4237 3625 4237 3625 4237 3625 4237 3625 4239 3626 4239 3626 4239 3627 4238 3627 4238 3627 4238 3627 M 5480 3629 5480 3629 5479 3629 5479 3629 5479 3628 5478 3627 5478 3626 5478 3626 5478 3626 5478 3626 5478 3626 5479 3626 5479 3626 5480 3626 5480 3626 5480 3626 5480 3627 5480 3627 5481 3628 5481 3628 5481 3628 5480 3629 5480 3629 5480 3629 M 4461 3629 4460 3629 4460 3628 4460 3628 4460 3628 4462 3626 4463 3626 4463 3626 4463 3626 4464 3626 4464 3626 4465 3626 4465 3626 4465 3627 4464 3627 4462 3628 4462 3628 4462 3628 4461 3629 4461 3629 M 1788 3628 1788 3628 1789 3627 1791 3627 1791 3627 1792 3626 1793 3626 1793 3626 1794 3626 1795 3626 1795 3627 1795 3627 1794 3628 1794 3628 1793 3629 1792 3629 1791 3629 1791 3630 1790 3630 1790 3631 1790 3633 1790 3633 1791 3634 1794 3635 1794 3635 1794 3635 1793 3636 1792 3636 1789 3637 1787 3638 1787 3638 1787 3639 1787 3639 1788 3639 1789 3639 1789 3639 1790 3639 1788 3641 1787 3641 1787 3642 1786 3641 1785 3641 1785 3641 1784 3641 1783 3641 1783 3642 1783 3642 1783 3643 1782 3643 1782 3643 1780 3644 1780 3645 1779 3645 1776 3645 1775 3645 1774 3645 1774 3645 1773 3644 1773 3644 1772 3644 1772 3643 1772 3643 1771 3643 1771 3643 1770 3643 1769 3641 1770 3641 1770 3641 1772 3640 1773 3639 1773 3639 1774 3639 1775 3638 1775 3638 1776 3638 1776 3638 1776 3637 1777 3637 1777 3637 1778 3635 1778 3635 1778 3635 1778 3634 1779 3633 1779 3633 1780 3633 1780 3632 1782 3631 1782 3631 1783 3631 1784 3630 1785 3630 1785 3629 1785 3629 1786 3628 1786 3628 1788 3628 M 4256 3629 4255 3629 4255 3629 4254 3629 4254 3629 4254 3629 4254 3628 4253 3628 4254 3628 4254 3628 4254 3627 4255 3627 4255 3627 4256 3627 4257 3627 4257 3627 4258 3627 4259 3627 4259 3627 4260 3627 4260 3628 4260 3628 4260 3628 4260 3629 4260 3629 4259 3629 4258 3629 4256 3629 4256 3629 M 1798 3631 1797 3631 1797 3631 1796 3631 1796 3631 1796 3630 1797 3630 1797 3629 1798 3629 1798 3629 1797 3629 1797 3629 1797 3629 1797 3629 1797 3628 1797 3628 1798 3628 1798 3628 1798 3628 1799 3628 1799 3628 1801 3628 1801 3629 1801 3629 1801 3629 1801 3629 1800 3631 1800 3631 1800 3631 1799 3631 1798 3631 1798 3631 M 4249 3633 4248 3633 4247 3633 4246 3633 4246 3632 4245 3632 4245 3632 4245 3632 4244 3632 4241 3631 4241 3630 4240 3630 4239 3630 4239 3630 4239 3629 4239 3629 4239 3629 4239 3628 4239 3628 4240 3628 4240 3628 4241 3628 4242 3628 4243 3628 4243 3628 4245 3629 4245 3629 4246 3629 4247 3629 4248 3630 4251 3631 4251 3631 4251 3631 4251 3631 4252 3632 4252 3632 4251 3632 4251 3632 4250 3632 4250 3633 4249 3633 M 3648 3631 3648 3631 3647 3631 3647 3631 3647 3631 3647 3630 3646 3630 3646 3630 3646 3630 3646 3629 3647 3629 3647 3629 3647 3629 3647 3629 3648 3629 3648 3629 3649 3629 3651 3629 3653 3629 3653 3629 3654 3629 3654 3629 3654 3629 3655 3629 3655 3629 3655 3630 3655 3630 3655 3630 3655 3630 3654 3630 3654 3630 3653 3630 3653 3630 3652 3630 3651 3630 3650 3630 3650 3630 3650 3630 3648 3631 M 1794 3637 1793 3637 1793 3637 1793 3637 1792 3637 1792 3637 1793 3637 1794 3636 1795 3636 1795 3636 1795 3636 1795 3636 1796 3636 1796 3636 1795 3636 1795 3637 1794 3637 1794 3637 M 5507 3642 5506 3642 5506 3642 5506 3642 5505 3642 5505 3641 5505 3641 5504 3641 5504 3641 5505 3640 5505 3640 5505 3639 5504 3638 5503 3637 5503 3637 5504 3637 5505 3637 5505 3637 5506 3637 5506 3637 5506 3637 5507 3638 5507 3638 5508 3639 5508 3640 5509 3641 5509 3641 5508 3641 5508 3642 5507 3642 5507 3642 5507 3642 M 1803 3642 1803 3642 1803 3642 1802 3642 1802 3642 1802 3642 1801 3642 1803 3641 1804 3641 1804 3641 1807 3641 1807 3641 1807 3641 1806 3642 1806 3642 1805 3642 1805 3642 1804 3642 1804 3642 1804 3642 1803 3642 M 3640 3642 3640 3642 3640 3642 3640 3643 3639 3643 3639 3643 3639 3643 3638 3643 3637 3643 3635 3643 3634 3643 3633 3643 3633 3643 3632 3643 3632 3643 3632 3642 3633 3642 3633 3642 3633 3642 3633 3641 3633 3641 3634 3641 3634 3641 3635 3641 3635 3641 3636 3641 3636 3641 3636 3642 3636 3642 3636 3642 3636 3642 3636 3642 3637 3642 3637 3642 3638 3642 3638 3642 3639 3642 3639 3642 3640 3642 3640 3642 3640 3642 M 1839 3643 1839 3643 1839 3643 1839 3642 1839 3642 1839 3642 1840 3642 1842 3642 1843 3642 1843 3642 1844 3642 1844 3642 1844 3643 1844 3643 1844 3643 1843 3643 1842 3643 1842 3643 1841 3643 1841 3643 1841 3643 1840 3643 1840 3643 1840 3643 1839 3643 M 1796 3646 1795 3646 1795 3646 1794 3645 1793 3645 1793 3645 1793 3645 1792 3644 1792 3643 1793 3643 1793 3643 1794 3643 1795 3642 1795 3642 1796 3642 1798 3642 1798 3642 1801 3642 1803 3643 1803 3643 1803 3643 1802 3643 1802 3644 1800 3644 1800 3645 1800 3645 1799 3645 1798 3645 1798 3645 1797 3646 1797 3646 1796 3646 M 1802 3647 1801 3647 1801 3647 1801 3647 1799 3646 1799 3646 1799 3646 1799 3646 1801 3645 1802 3645 1803 3646 1804 3646 1804 3646 1804 3646 1804 3646 1803 3647 1803 3647 1803 3647 1802 3647 1802 3647 1802 3647 M 1904 3659 1905 3660 1905 3660 1905 3660 1906 3660 1906 3661 1905 3661 1905 3661 1904 3661 1904 3661 1903 3661 1903 3661 1902 3660 1900 3660 1899 3660 1899 3659 1900 3659 1900 3659 1901 3659 1902 3659 1903 3659 1903 3659 1904 3659 1904 3659 1904 3659 M 1783 3693 1784 3693 1784 3693 1784 3694 1784 3695 1784 3696 1784 3696 1785 3697 1785 3698 1785 3698 1786 3699 1786 3701 1785 3702 1785 3702 1785 3703 1787 3705 1788 3706 1788 3707 1788 3707 1787 3707 1787 3710 1787 3711 1786 3711 1786 3711 1785 3711 1784 3711 1784 3711 1783 3712 1783 3712 1782 3712 1782 3713 1783 3713 1783 3713 1784 3714 1784 3714 1783 3716 1783 3716 1783 3716 1782 3716 1782 3716 1781 3716 1780 3717 1779 3717 1778 3717 1778 3717 1777 3717 1777 3717 1776 3718 1776 3718 1775 3718 1775 3718 1774 3718 1774 3718 1773 3718 1773 3718 1772 3718 1771 3719 1771 3719 1770 3720 1770 3720 1770 3720 1770 3721 1770 3721 1769 3721 1769 3722 1768 3722 1768 3722 1767 3722 1767 3722 1766 3722 1765 3722 1764 3722 1762 3722 1762 3722 1761 3722 1758 3723 1753 3723 1752 3723 1751 3723 1750 3723 1749 3724 1749 3724 1748 3723 1748 3723 1747 3723 1747 3723 1746 3723 1746 3723 1745 3723 1745 3723 1744 3723 1744 3723 1743 3723 1742 3723 1742 3723 1742 3723 1741 3723 1741 3723 1740 3723 1739 3723 1738 3723 1738 3723 1737 3723 1735 3723 1735 3723 1734 3723 1733 3723 1733 3723 1732 3723 1731 3723 1730 3723 1729 3723 1728 3723 1728 3723 1727 3723 1726 3723 1724 3723 1722 3724 1720 3724 1719 3724 1719 3724 1718 3724 1718 3724 1717 3724 1717 3723 1714 3722 1713 3722 1710 3722 1707 3720 1707 3720 1706 3720 1706 3719 1706 3719 1707 3719 1707 3719 1708 3718 1709 3718 1709 3718 1711 3718 1711 3718 1713 3717 1714 3717 1715 3717 1716 3717 1716 3717 1717 3717 1718 3718 1718 3718 1719 3718 1720 3718 1720 3718 1721 3718 1721 3718 1722 3718 1724 3718 1724 3718 1725 3718 1726 3718 1726 3718 1727 3719 1728 3719 1729 3719 1730 3719 1732 3719 1734 3719 1735 3719 1737 3719 1737 3719 1738 3719 1739 3719 1739 3719 1740 3719 1741 3719 1743 3719 1744 3719 1745 3719 1745 3718 1745 3718 1746 3717 1746 3717 1747 3717 1748 3716 1748 3716 1749 3716 1748 3716 1747 3715 1747 3715 1746 3715 1746 3716 1745 3716 1744 3716 1744 3716 1742 3717 1741 3717 1740 3717 1738 3717 1737 3717 1736 3717 1734 3717 1734 3717 1733 3717 1733 3717 1732 3717 1732 3717 1730 3716 1729 3716 1729 3716 1728 3716 1727 3716 1726 3716 1726 3716 1726 3716 1725 3716 1724 3716 1724 3715 1725 3715 1725 3715 1725 3715 1726 3715 1727 3715 1728 3715 1729 3715 1729 3715 1729 3714 1730 3714 1730 3714 1731 3714 1732 3714 1732 3714 1733 3714 1734 3714 1734 3714 1736 3714 1738 3714 1739 3714 1741 3714 1741 3714 1741 3713 1742 3713 1741 3713 1741 3712 1740 3712 1740 3712 1739 3712 1739 3713 1738 3713 1737 3713 1737 3713 1736 3713 1735 3713 1734 3713 1733 3713 1733 3712 1733 3712 1732 3712 1732 3712 1731 3712 1730 3712 1729 3712 1728 3711 1727 3711 1727 3711 1726 3711 1725 3710 1724 3709 1723 3709 1723 3708 1723 3708 1723 3708 1722 3707 1722 3707 1721 3707 1721 3707 1720 3707 1720 3707 1719 3707 1718 3707 1718 3708 1716 3708 1715 3708 1715 3709 1715 3709 1715 3709 1714 3710 1714 3711 1713 3711 1713 3711 1712 3711 1712 3711 1711 3711 1711 3711 1709 3712 1707 3712 1706 3712 1706 3712 1704 3711 1702 3711 1702 3711 1701 3710 1700 3710 1699 3710 1699 3710 1698 3710 1698 3710 1697 3710 1697 3710 1696 3710 1695 3710 1695 3710 1695 3710 1695 3711 1696 3711 1696 3711 1698 3712 1699 3713 1700 3713 1699 3714 1697 3714 1696 3714 1696 3715 1695 3715 1694 3715 1694 3715 1694 3716 1693 3716 1693 3716 1692 3716 1692 3716 1691 3716 1690 3716 1689 3716 1689 3716 1688 3715 1687 3715 1687 3715 1686 3714 1685 3714 1685 3714 1684 3713 1684 3713 1683 3713 1683 3713 1683 3714 1682 3714 1682 3714 1682 3714 1681 3714 1681 3714 1677 3713 1676 3713 1675 3713 1674 3713 1673 3712 1672 3712 1672 3712 1671 3712 1671 3712 1671 3712 1670 3711 1670 3710 1670 3710 1671 3710 1672 3710 1672 3710 1673 3710 1673 3709 1672 3709 1672 3709 1671 3709 1670 3709 1670 3708 1669 3708 1670 3708 1670 3708 1672 3707 1673 3706 1673 3706 1674 3706 1675 3706 1676 3706 1676 3706 1677 3706 1678 3706 1679 3706 1680 3706 1680 3707 1680 3707 1681 3707 1681 3708 1682 3708 1682 3708 1683 3707 1684 3707 1685 3707 1686 3708 1687 3707 1686 3707 1686 3707 1685 3705 1685 3704 1686 3704 1686 3704 1686 3704 1687 3703 1688 3703 1688 3703 1690 3703 1691 3703 1692 3704 1694 3704 1695 3704 1695 3705 1696 3705 1696 3705 1696 3706 1696 3706 1698 3706 1698 3707 1699 3707 1700 3707 1701 3707 1701 3707 1702 3706 1701 3705 1701 3705 1700 3705 1700 3705 1699 3704 1698 3704 1698 3704 1698 3703 1698 3702 1699 3702 1700 3702 1700 3702 1701 3702 1701 3702 1702 3702 1703 3702 1705 3702 1705 3702 1706 3702 1707 3702 1708 3703 1709 3703 1710 3703 1710 3703 1711 3704 1712 3704 1713 3704 1713 3704 1714 3703 1716 3703 1717 3702 1718 3702 1718 3702 1717 3701 1715 3701 1714 3701 1712 3701 1711 3701 1710 3700 1708 3700 1708 3700 1707 3700 1709 3699 1709 3698 1710 3698 1712 3698 1713 3698 1714 3698 1714 3698 1715 3698 1715 3698 1716 3698 1716 3698 1717 3698 1717 3698 1718 3698 1718 3698 1719 3698 1721 3698 1722 3699 1722 3699 1723 3699 1723 3699 1725 3699 1726 3699 1727 3699 1727 3699 1728 3699 1729 3699 1731 3699 1731 3699 1732 3699 1733 3699 1734 3699 1734 3699 1735 3699 1736 3698 1736 3698 1736 3698 1736 3697 1737 3697 1737 3697 1737 3697 1738 3697 1739 3697 1740 3697 1741 3697 1741 3697 1741 3698 1742 3698 1742 3699 1743 3699 1745 3699 1746 3699 1746 3699 1747 3699 1747 3699 1748 3699 1748 3698 1747 3698 1747 3697 1746 3697 1745 3696 1745 3696 1744 3696 1744 3696 1743 3696 1743 3696 1742 3695 1742 3695 1742 3694 1742 3694 1742 3694 1741 3694 1741 3693 1740 3693 1739 3693 1736 3692 1735 3692 1733 3692 1732 3692 1731 3692 1730 3692 1728 3692 1727 3692 1721 3691 1720 3691 1719 3691 1718 3690 1718 3690 1718 3690 1719 3688 1719 3688 1719 3688 1720 3687 1721 3687 1721 3687 1723 3687 1724 3687 1725 3687 1726 3687 1727 3687 1727 3687 1728 3687 1727 3686 1728 3686 1728 3686 1728 3686 1729 3686 1729 3686 1730 3686 1731 3686 1732 3686 1733 3685 1733 3685 1734 3685 1735 3684 1735 3684 1734 3684 1733 3684 1733 3683 1732 3683 1731 3683 1730 3683 1730 3682 1729 3682 1729 3681 1728 3681 1728 3680 1728 3679 1728 3679 1728 3679 1729 3678 1729 3678 1730 3678 1730 3678 1731 3677 1731 3677 1731 3677 1730 3676 1730 3675 1729 3675 1729 3675 1728 3675 1728 3674 1729 3674 1729 3674 1730 3674 1731 3673 1730 3673 1730 3672 1729 3672 1729 3672 1728 3672 1727 3672 1727 3672 1726 3672 1726 3671 1726 3671 1725 3671 1724 3671 1723 3671 1723 3671 1723 3671 1723 3670 1722 3669 1721 3668 1721 3668 1723 3666 1724 3666 1724 3665 1727 3665 1731 3664 1732 3663 1734 3663 1734 3663 1738 3662 1739 3662 1740 3662 1740 3662 1741 3662 1742 3662 1742 3662 1743 3662 1743 3662 1744 3662 1746 3661 1746 3661 1747 3661 1749 3661 1749 3661 1750 3661 1751 3661 1752 3661 1754 3662 1756 3663 1757 3666 1756 3666 1756 3669 1756 3669 1756 3669 1757 3669 1758 3669 1759 3669 1760 3669 1761 3669 1761 3669 1762 3670 1762 3670 1762 3670 1763 3671 1763 3671 1763 3671 1764 3672 1765 3672 1767 3674 1768 3675 1768 3676 1768 3676 1768 3678 1769 3680 1770 3680 1770 3680 1771 3681 1772 3681 1772 3681 1772 3682 1772 3683 1772 3683 1772 3684 1773 3684 1775 3685 1776 3685 1776 3685 1777 3685 1777 3685 1778 3686 1778 3686 1779 3686 1779 3686 1779 3687 1779 3687 1779 3688 1780 3688 1781 3689 1783 3691 1783 3692 1783 3692 1783 3692 1783 3693 M 1428 3663 1428 3663 1427 3663 1427 3663 1426 3662 1425 3662 1425 3662 1425 3661 1426 3661 1426 3661 1426 3661 1427 3661 1427 3661 1428 3661 1428 3661 1429 3661 1429 3661 1429 3661 1429 3662 1430 3662 1430 3662 1430 3662 1430 3663 1429 3663 1429 3663 1429 3663 1428 3663 1428 3663 M 5356 3664 5356 3664 5356 3665 5355 3665 5355 3665 5355 3665 5354 3665 5351 3665 5351 3665 5351 3665 5350 3665 5350 3665 5350 3665 5350 3664 5351 3664 5351 3664 5352 3663 5352 3663 5355 3664 5355 3664 5356 3664 5356 3664 M 5365 3666 5365 3666 5365 3666 5365 3666 5365 3667 5365 3667 5364 3667 5363 3667 5362 3667 5362 3667 5362 3667 5361 3666 5361 3666 5361 3666 5360 3666 5359 3666 5359 3666 5359 3666 5359 3665 5359 3665 5359 3665 5360 3664 5360 3665 5361 3665 5362 3665 5364 3665 5364 3665 5365 3665 5365 3666 M 1884 3676 1883 3676 1883 3676 1883 3676 1882 3676 1882 3676 1882 3675 1882 3675 1882 3675 1882 3674 1882 3674 1882 3674 1882 3673 1882 3671 1882 3671 1881 3671 1881 3671 1881 3671 1880 3670 1879 3670 1879 3670 1879 3669 1879 3669 1878 3668 1878 3668 1878 3668 1879 3666 1879 3666 1880 3666 1880 3666 1881 3666 1881 3666 1882 3666 1882 3666 1883 3667 1883 3667 1883 3667 1884 3667 1884 3668 1885 3669 1887 3670 1889 3672 1889 3672 1889 3672 1889 3672 1889 3673 1887 3673 1885 3675 1885 3676 1885 3676 1885 3676 1885 3676 1884 3676 1884 3676 1884 3676 M 1724 3675 1724 3676 1724 3676 1724 3676 1723 3676 1723 3676 1722 3677 1721 3677 1720 3677 1719 3677 1718 3677 1717 3677 1717 3677 1716 3677 1715 3676 1713 3676 1713 3676 1713 3676 1712 3676 1710 3674 1710 3674 1710 3674 1710 3674 1711 3673 1711 3673 1712 3673 1712 3673 1713 3673 1714 3673 1715 3672 1716 3672 1717 3672 1717 3672 1718 3672 1718 3673 1718 3673 1719 3673 1719 3673 1719 3673 1720 3673 1720 3674 1720 3674 1720 3674 1721 3674 1721 3674 1721 3675 1722 3675 1722 3675 1723 3675 1724 3675 1724 3675 1724 3675 M 1681 3683 1680 3683 1680 3683 1680 3683 1679 3683 1679 3683 1678 3683 1677 3683 1677 3683 1676 3683 1675 3683 1674 3683 1673 3683 1673 3683 1672 3683 1671 3683 1670 3683 1670 3683 1669 3683 1668 3683 1667 3683 1667 3683 1666 3683 1665 3682 1665 3682 1664 3682 1664 3682 1664 3682 1663 3682 1663 3681 1663 3681 1664 3681 1664 3681 1664 3680 1665 3680 1665 3680 1666 3680 1666 3680 1666 3679 1666 3679 1666 3679 1666 3679 1666 3678 1667 3678 1667 3678 1667 3678 1667 3678 1668 3678 1668 3678 1668 3678 1668 3678 1668 3678 1669 3679 1669 3679 1669 3679 1670 3679 1670 3679 1670 3679 1671 3679 1671 3679 1671 3679 1671 3679 1672 3678 1672 3678 1672 3678 1672 3678 1672 3678 1673 3678 1673 3678 1674 3678 1675 3678 1676 3678 1677 3678 1678 3678 1679 3678 1679 3678 1680 3678 1680 3678 1680 3678 1680 3678 1679 3679 1679 3679 1680 3679 1680 3679 1681 3679 1683 3680 1683 3680 1684 3680 1685 3680 1685 3680 1686 3681 1686 3681 1686 3681 1686 3681 1685 3681 1685 3681 1684 3681 1684 3682 1684 3681 1683 3681 1683 3681 1682 3681 1682 3681 1681 3681 1681 3681 1681 3682 1681 3682 1682 3682 1682 3683 1681 3683 1681 3683 M 3129 3683 3128 3683 3127 3683 3126 3683 3125 3683 3124 3683 3123 3683 3123 3683 3122 3682 3122 3682 3121 3682 3121 3682 3121 3682 3120 3681 3120 3681 3120 3681 3121 3681 3121 3680 3122 3680 3122 3680 3123 3679 3123 3679 3124 3679 3124 3679 3125 3679 3129 3678 3129 3678 3130 3678 3131 3678 3133 3679 3133 3679 3134 3679 3134 3679 3135 3680 3135 3680 3135 3680 3136 3680 3136 3680 3136 3681 3136 3681 3136 3681 3136 3681 3136 3682 3134 3682 3133 3683 3133 3683 3132 3683 3130 3683 3129 3683 M 1896 3680 1896 3680 1896 3680 1895 3681 1895 3681 1895 3681 1894 3681 1894 3681 1893 3681 1893 3680 1892 3680 1892 3680 1892 3680 1893 3680 1893 3679 1893 3679 1894 3679 1894 3679 1894 3679 1895 3679 1895 3679 1896 3679 1896 3679 1896 3680 1896 3680 1896 3680 1896 3680 M 3082 3681 3083 3681 3084 3681 3084 3681 3084 3681 3085 3682 3086 3682 3086 3682 3086 3683 3086 3683 3085 3683 3084 3683 3082 3683 3081 3684 3080 3684 3079 3684 3078 3684 3078 3684 3077 3683 3076 3683 3076 3683 3075 3683 3075 3683 3074 3683 3074 3682 3074 3682 3075 3682 3075 3681 3075 3681 3076 3681 3076 3681 3076 3681 3077 3681 3078 3681 3078 3681 3079 3681 3080 3681 3082 3681 M 4028 3690 4027 3690 4026 3690 4024 3690 4024 3690 4023 3690 4022 3689 4022 3689 4022 3689 4020 3686 4020 3686 4020 3686 4021 3685 4021 3685 4021 3685 4022 3685 4022 3685 4022 3685 4023 3685 4023 3685 4023 3685 4024 3685 4024 3685 4024 3685 4024 3686 4025 3686 4025 3686 4026 3687 4026 3688 4026 3688 4026 3688 4027 3688 4027 3688 4028 3689 4028 3689 4028 3689 4029 3689 4029 3689 4030 3690 4030 3690 4029 3690 4029 3690 4029 3690 4029 3690 4028 3690 M 2831 3685 2831 3685 2832 3685 2832 3685 2832 3686 2833 3687 2833 3687 2832 3688 2832 3688 2831 3688 2830 3688 2829 3688 2825 3689 2825 3689 2824 3689 2823 3689 2822 3689 2822 3688 2822 3688 2822 3687 2823 3687 2823 3686 2823 3686 2824 3686 2824 3686 2825 3686 2825 3685 2826 3685 2827 3685 2828 3685 2829 3685 2830 3685 2830 3685 2831 3685 2831 3685 M 2922 3691 2921 3691 2920 3690 2919 3690 2918 3690 2918 3690 2918 3690 2917 3690 2917 3690 2917 3689 2917 3689 2917 3689 2917 3689 2917 3688 2917 3688 2917 3688 2918 3688 2919 3687 2919 3687 2919 3687 2920 3687 2922 3687 2924 3687 2924 3687 2925 3687 2926 3687 2926 3687 2927 3687 2927 3687 2927 3687 2928 3688 2928 3688 2928 3688 2928 3688 2928 3688 2928 3689 2928 3689 2927 3689 2927 3689 2926 3690 2925 3690 2925 3690 2923 3690 2923 3690 2922 3691 2922 3691 M 2780 3687 2780 3687 2781 3689 2781 3689 2780 3689 2780 3690 2780 3690 2780 3690 2779 3690 2778 3690 2778 3690 2777 3690 2775 3690 2775 3689 2775 3689 2775 3689 2773 3688 2773 3688 2774 3688 2775 3688 2776 3687 2777 3687 2777 3687 2778 3687 2779 3687 2780 3687 M 1904 3691 1904 3691 1903 3691 1902 3691 1901 3691 1901 3691 1900 3691 1899 3691 1899 3691 1899 3691 1899 3690 1898 3690 1898 3690 1898 3690 1898 3689 1899 3689 1899 3689 1899 3689 1900 3689 1900 3688 1901 3688 1901 3688 1902 3688 1903 3688 1904 3688 1904 3688 1905 3688 1905 3688 1905 3688 1906 3689 1906 3689 1907 3689 1907 3690 1907 3690 1906 3690 1906 3690 1905 3691 1905 3691 1904 3691 1904 3691 M 2907 3692 2906 3692 2906 3692 2906 3691 2905 3691 2905 3691 2905 3691 2906 3691 2906 3690 2907 3690 2908 3690 2908 3690 2908 3690 2909 3690 2909 3690 2910 3690 2910 3690 2910 3690 2910 3691 2910 3691 2910 3691 2910 3691 2910 3691 2908 3692 2908 3692 2907 3692 M 1696 3695 1695 3695 1692 3696 1692 3696 1691 3696 1691 3696 1690 3696 1690 3696 1689 3696 1689 3697 1688 3697 1687 3697 1687 3697 1685 3697 1684 3697 1681 3697 1681 3697 1680 3697 1679 3697 1679 3697 1678 3697 1677 3697 1677 3697 1676 3698 1674 3698 1670 3698 1669 3699 1668 3699 1667 3699 1667 3699 1666 3699 1665 3699 1665 3699 1664 3699 1663 3699 1662 3699 1661 3699 1659 3699 1658 3699 1657 3699 1657 3699 1656 3700 1655 3700 1655 3700 1654 3700 1654 3700 1653 3700 1653 3699 1652 3699 1651 3698 1651 3698 1651 3697 1651 3697 1652 3697 1653 3696 1653 3696 1654 3696 1654 3696 1655 3696 1656 3696 1657 3696 1657 3695 1658 3695 1659 3695 1660 3695 1660 3695 1662 3695 1663 3695 1663 3695 1665 3695 1665 3695 1666 3695 1667 3695 1668 3695 1669 3695 1670 3695 1671 3694 1672 3694 1673 3694 1674 3694 1674 3693 1675 3693 1675 3693 1676 3692 1676 3692 1677 3691 1677 3691 1679 3692 1680 3692 1681 3692 1681 3693 1682 3693 1682 3693 1683 3693 1684 3694 1685 3694 1685 3693 1685 3693 1685 3693 1685 3692 1685 3691 1686 3691 1686 3691 1687 3691 1688 3691 1689 3691 1689 3692 1690 3692 1690 3692 1691 3691 1691 3691 1692 3691 1692 3691 1692 3690 1693 3691 1694 3691 1695 3691 1695 3691 1697 3691 1697 3691 1698 3691 1699 3692 1699 3692 1699 3692 1699 3693 1699 3693 1699 3694 1698 3694 1697 3695 1696 3695 1696 3695 M 2832 3697 2830 3697 2829 3697 2828 3697 2827 3697 2827 3696 2824 3696 2823 3695 2822 3695 2822 3695 2822 3694 2821 3694 2821 3693 2820 3693 2820 3692 2820 3692 2820 3692 2820 3692 2820 3691 2820 3691 2820 3691 2820 3691 2821 3691 2821 3691 2821 3691 2822 3691 2826 3691 2826 3691 2827 3691 2828 3691 2833 3691 2834 3692 2835 3692 2835 3692 2835 3692 2836 3692 2836 3692 2836 3692 2837 3693 2838 3693 2840 3693 2840 3693 2841 3693 2842 3693 2843 3693 2843 3693 2843 3693 2843 3694 2843 3694 2843 3694 2842 3694 2842 3694 2841 3694 2840 3694 2840 3694 2838 3695 2838 3695 2837 3695 2837 3695 2836 3695 2836 3696 2835 3696 2835 3696 2834 3697 2834 3697 2833 3697 2832 3697 2832 3697 2832 3697 M 2749 3692 2748 3692 2747 3692 2747 3692 2747 3692 2747 3692 2747 3691 2747 3691 2748 3691 2748 3691 2748 3691 2749 3691 2750 3691 2751 3692 2751 3692 2751 3692 2752 3692 2751 3692 2751 3692 2750 3692 2750 3692 2749 3692 2749 3692 M 1908 3697 1908 3697 1905 3697 1904 3697 1903 3697 1903 3697 1902 3696 1902 3696 1901 3696 1901 3695 1902 3695 1902 3695 1902 3695 1903 3695 1904 3695 1904 3694 1905 3694 1905 3694 1906 3695 1907 3695 1907 3695 1907 3695 1908 3695 1908 3695 1908 3696 1908 3696 1909 3697 1909 3697 1908 3697 1908 3697 1908 3697 M 2882 3698 2882 3698 2881 3698 2881 3698 2880 3698 2879 3698 2879 3698 2879 3697 2879 3697 2879 3697 2879 3697 2880 3697 2881 3697 2881 3696 2882 3696 2882 3697 2883 3697 2883 3697 2883 3697 2883 3697 2884 3697 2884 3697 2884 3698 2884 3698 2884 3698 2883 3698 2883 3698 2882 3698 M 1307 3716 1307 3716 1308 3715 1309 3715 1309 3715 1310 3714 1309 3714 1309 3714 1308 3713 1308 3713 1308 3712 1308 3712 1308 3711 1308 3711 1308 3711 1308 3711 1309 3711 1310 3711 1313 3711 1314 3713 1313 3714 1312 3714 1312 3714 1313 3715 1314 3715 1314 3715 1315 3715 1315 3715 1316 3715 1316 3715 1317 3715 1318 3714 1319 3714 1319 3714 1320 3713 1320 3712 1320 3711 1320 3710 1321 3710 1321 3710 1322 3710 1323 3710 1323 3710 1324 3710 1324 3710 1325 3711 1325 3711 1326 3711 1326 3711 1326 3711 1327 3711 1327 3711 1328 3711 1329 3710 1329 3710 1330 3710 1331 3710 1331 3710 1332 3711 1334 3711 1335 3711 1335 3711 1336 3712 1336 3712 1336 3713 1335 3713 1335 3713 1334 3713 1333 3713 1332 3713 1332 3713 1331 3713 1331 3713 1330 3713 1330 3713 1330 3714 1330 3714 1330 3714 1330 3714 1329 3714 1327 3715 1327 3715 1326 3715 1324 3715 1323 3715 1322 3716 1322 3716 1322 3716 1327 3717 1327 3717 1328 3717 1328 3717 1329 3716 1329 3716 1330 3716 1330 3716 1331 3715 1332 3715 1333 3715 1334 3715 1334 3715 1336 3715 1337 3715 1337 3715 1338 3715 1339 3715 1340 3714 1341 3714 1341 3714 1342 3714 1342 3714 1344 3715 1344 3715 1344 3716 1344 3716 1343 3716 1342 3716 1341 3716 1341 3717 1340 3716 1339 3716 1339 3716 1336 3716 1334 3717 1333 3717 1332 3717 1333 3717 1333 3717 1335 3717 1337 3717 1337 3717 1338 3717 1338 3718 1341 3718 1343 3718 1345 3718 1346 3718 1346 3718 1347 3718 1347 3718 1347 3718 1346 3719 1346 3719 1345 3719 1345 3719 1344 3719 1343 3719 1342 3719 1341 3719 1340 3719 1339 3720 1338 3720 1337 3720 1337 3720 1338 3721 1338 3721 1338 3721 1338 3721 1337 3721 1336 3721 1333 3721 1330 3721 1330 3721 1329 3721 1328 3721 1326 3721 1325 3722 1323 3722 1321 3722 1320 3722 1319 3722 1319 3721 1316 3721 1315 3721 1315 3720 1315 3720 1315 3720 1314 3720 1314 3720 1314 3720 1314 3721 1313 3721 1313 3721 1312 3721 1311 3721 1310 3721 1309 3721 1308 3721 1308 3721 1305 3721 1305 3721 1303 3721 1301 3722 1301 3722 1300 3722 1299 3722 1299 3722 1298 3721 1297 3721 1296 3721 1297 3720 1297 3720 1296 3720 1295 3720 1294 3720 1289 3720 1288 3720 1287 3720 1286 3720 1285 3720 1285 3720 1284 3720 1284 3720 1284 3719 1284 3719 1285 3719 1285 3719 1287 3719 1287 3719 1288 3719 1289 3719 1289 3718 1289 3718 1288 3718 1287 3718 1286 3718 1285 3718 1282 3718 1277 3718 1277 3718 1276 3718 1276 3718 1275 3718 1274 3718 1274 3718 1273 3718 1272 3718 1271 3718 1271 3718 1269 3718 1269 3717 1268 3717 1267 3717 1266 3717 1265 3717 1264 3717 1260 3717 1256 3717 1255 3717 1254 3716 1253 3716 1249 3716 1246 3716 1244 3716 1243 3716 1241 3716 1240 3716 1240 3716 1238 3715 1238 3715 1237 3715 1237 3714 1237 3714 1238 3714 1238 3714 1239 3714 1245 3713 1248 3713 1249 3712 1250 3712 1250 3712 1252 3712 1252 3712 1253 3712 1253 3712 1254 3712 1254 3712 1255 3712 1255 3712 1256 3712 1256 3712 1256 3712 1257 3712 1257 3712 1258 3712 1259 3712 1259 3712 1260 3712 1260 3712 1262 3712 1263 3712 1263 3712 1262 3712 1261 3712 1260 3712 1260 3713 1260 3713 1261 3713 1261 3713 1262 3713 1264 3713 1265 3712 1265 3712 1269 3711 1270 3711 1271 3711 1271 3711 1272 3711 1273 3711 1274 3711 1275 3711 1275 3711 1276 3711 1277 3712 1276 3712 1276 3712 1274 3712 1273 3712 1272 3712 1272 3712 1270 3712 1270 3713 1270 3713 1270 3713 1271 3713 1272 3713 1273 3713 1273 3713 1275 3713 1275 3713 1275 3713 1276 3713 1277 3713 1276 3713 1275 3714 1275 3714 1275 3714 1274 3714 1274 3715 1277 3714 1278 3714 1279 3714 1279 3714 1280 3714 1280 3713 1281 3713 1282 3712 1282 3712 1283 3712 1283 3712 1284 3712 1284 3712 1284 3713 1284 3713 1284 3714 1284 3714 1284 3715 1285 3715 1285 3714 1286 3714 1286 3714 1287 3713 1287 3713 1288 3713 1289 3714 1295 3715 1296 3715 1297 3714 1297 3714 1296 3714 1295 3713 1295 3713 1294 3713 1293 3713 1293 3713 1292 3712 1291 3712 1289 3712 1289 3712 1289 3711 1292 3709 1293 3709 1293 3709 1294 3709 1295 3709 1296 3709 1296 3709 1297 3709 1297 3709 1297 3709 1298 3709 1297 3710 1297 3710 1296 3710 1297 3711 1297 3711 1298 3711 1298 3711 1299 3711 1299 3710 1300 3710 1301 3710 1301 3710 1302 3710 1302 3710 1303 3710 1302 3710 1301 3711 1301 3711 1302 3711 1302 3711 1303 3711 1304 3710 1305 3710 1305 3711 1305 3711 1305 3712 1304 3712 1304 3712 1303 3712 1302 3712 1302 3712 1301 3715 1301 3715 1302 3715 1302 3715 1303 3715 1303 3714 1304 3714 1305 3714 1305 3714 1306 3714 1306 3715 1306 3715 1306 3715 1307 3716 M 3990 3713 3989 3713 3989 3713 3989 3713 3989 3712 3989 3712 3989 3712 3989 3711 3990 3711 3990 3711 3991 3711 3991 3711 3991 3711 3992 3711 3992 3711 3992 3711 3992 3711 3992 3711 3992 3711 3990 3713 3990 3713 3990 3713 3990 3713 3990 3713 M 3968 3717 3968 3717 3968 3717 3967 3717 3968 3716 3971 3714 3972 3714 3972 3714 3972 3714 3973 3714 3973 3714 3973 3714 3974 3714 3974 3715 3974 3715 3974 3715 3974 3715 3974 3716 3974 3716 3974 3716 3973 3716 3972 3716 3970 3717 3969 3717 3968 3717 M 1911 3717 1911 3717 1911 3717 1911 3717 1910 3717 1909 3717 1909 3716 1909 3716 1909 3716 1909 3716 1909 3715 1909 3715 1909 3715 1910 3715 1910 3715 1911 3715 1911 3715 1911 3716 1912 3716 1912 3716 1912 3716 1911 3717 M 1775 3720 1774 3720 1774 3720 1773 3720 1773 3720 1773 3720 1774 3720 1774 3719 1775 3719 1775 3719 1777 3719 1777 3718 1778 3718 1778 3718 1779 3718 1779 3718 1779 3719 1779 3719 1779 3719 1779 3719 1779 3719 1778 3720 1777 3720 1776 3720 1776 3720 1775 3720 M 1634 3720 1634 3720 1635 3720 1636 3721 1637 3721 1637 3721 1638 3722 1638 3722 1638 3722 1638 3723 1637 3723 1636 3724 1636 3724 1636 3724 1636 3725 1636 3726 1636 3726 1636 3727 1636 3727 1635 3727 1635 3727 1634 3727 1633 3727 1632 3727 1632 3727 1630 3727 1629 3728 1627 3728 1626 3728 1625 3728 1623 3729 1622 3729 1621 3729 1620 3730 1620 3730 1620 3730 1619 3730 1619 3730 1618 3731 1617 3731 1616 3731 1616 3731 1615 3731 1614 3731 1613 3731 1613 3731 1610 3730 1609 3730 1609 3729 1607 3728 1607 3728 1607 3727 1609 3727 1609 3727 1610 3727 1611 3727 1611 3727 1613 3727 1614 3726 1614 3726 1615 3726 1615 3725 1616 3725 1616 3725 1615 3724 1615 3724 1614 3723 1614 3723 1613 3722 1612 3722 1611 3722 1609 3722 1609 3722 1608 3722 1607 3722 1607 3722 1607 3722 1606 3722 1606 3721 1606 3721 1608 3720 1608 3720 1609 3719 1609 3719 1609 3719 1610 3719 1610 3719 1611 3719 1611 3719 1612 3719 1613 3719 1614 3719 1615 3719 1616 3719 1616 3719 1617 3719 1618 3720 1618 3720 1618 3720 1619 3721 1619 3721 1620 3721 1621 3721 1622 3721 1622 3722 1624 3722 1625 3722 1626 3722 1626 3722 1627 3722 1628 3722 1629 3721 1629 3721 1630 3721 1630 3721 1631 3720 1631 3720 1631 3720 1632 3720 1634 3720 M 1362 3722 1362 3722 1362 3722 1362 3722 1360 3723 1359 3723 1355 3723 1353 3723 1352 3723 1351 3723 1351 3723 1350 3723 1350 3723 1349 3723 1349 3723 1350 3723 1350 3722 1351 3722 1352 3722 1352 3722 1353 3722 1354 3721 1354 3721 1355 3721 1358 3721 1359 3720 1359 3720 1359 3720 1360 3721 1360 3721 1360 3721 1361 3721 1362 3722 1362 3722 M 1424 3723 1424 3723 1424 3724 1424 3725 1424 3725 1424 3725 1424 3726 1424 3727 1424 3727 1423 3728 1423 3728 1422 3728 1421 3729 1421 3729 1420 3729 1420 3729 1420 3730 1419 3730 1419 3730 1419 3730 1418 3731 1418 3731 1417 3731 1417 3731 1417 3731 1416 3731 1416 3731 1415 3731 1415 3731 1415 3731 1415 3731 1415 3730 1415 3730 1415 3729 1415 3729 1415 3728 1415 3728 1416 3728 1416 3728 1416 3727 1416 3727 1416 3727 1416 3727 1415 3726 1415 3725 1414 3725 1414 3724 1412 3722 1412 3722 1412 3722 1413 3722 1414 3721 1416 3721 1417 3721 1418 3721 1419 3721 1419 3721 1420 3721 1421 3721 1422 3721 1423 3721 1424 3722 1424 3722 1424 3722 1425 3722 1425 3722 1424 3723 M 1285 3725 1284 3725 1283 3725 1282 3725 1280 3725 1278 3725 1275 3725 1272 3725 1271 3725 1268 3724 1268 3724 1267 3724 1266 3724 1266 3724 1265 3724 1265 3723 1264 3723 1264 3723 1264 3723 1264 3723 1265 3722 1265 3722 1265 3722 1265 3722 1266 3722 1267 3722 1272 3721 1278 3722 1278 3722 1278 3722 1279 3722 1279 3722 1280 3722 1280 3722 1281 3722 1282 3722 1283 3722 1284 3722 1284 3722 1285 3722 1286 3722 1286 3722 1288 3722 1289 3722 1290 3722 1291 3722 1292 3722 1293 3722 1293 3722 1294 3723 1294 3723 1295 3723 1295 3723 1295 3723 1295 3724 1294 3724 1294 3724 1293 3724 1292 3725 1289 3725 1288 3725 1287 3725 1286 3725 1285 3725 M 1386 3721 1387 3722 1387 3722 1387 3722 1386 3722 1385 3723 1385 3723 1384 3723 1384 3723 1383 3723 1382 3723 1382 3723 1382 3723 1382 3722 1382 3722 1384 3722 1384 3722 1386 3721 1386 3721 1386 3721 M 1307 3724 1307 3724 1307 3724 1306 3724 1304 3724 1304 3724 1304 3723 1305 3723 1308 3723 1309 3723 1310 3723 1311 3723 1311 3723 1311 3723 1312 3723 1312 3723 1312 3723 1313 3723 1312 3723 1312 3723 1311 3724 1310 3724 1309 3724 1308 3724 1307 3724 M 1377 3727 1376 3727 1376 3727 1372 3726 1372 3726 1371 3726 1371 3726 1372 3726 1372 3726 1372 3726 1373 3725 1374 3725 1375 3725 1376 3725 1376 3725 1377 3726 1377 3726 1377 3726 1378 3726 1378 3726 1378 3727 1378 3727 1378 3727 1377 3727 1377 3727 M 1690 3729 1690 3730 1687 3732 1687 3732 1686 3732 1686 3733 1685 3734 1685 3735 1686 3735 1686 3736 1687 3736 1687 3736 1687 3736 1688 3736 1688 3737 1689 3737 1688 3737 1688 3738 1686 3739 1686 3739 1686 3739 1684 3739 1684 3739 1683 3739 1680 3738 1679 3738 1675 3737 1672 3736 1670 3736 1668 3735 1666 3735 1666 3735 1665 3735 1662 3734 1662 3734 1660 3732 1660 3731 1660 3731 1662 3730 1662 3730 1663 3730 1664 3730 1666 3731 1666 3731 1666 3731 1670 3730 1670 3730 1671 3729 1671 3729 1671 3728 1670 3728 1670 3728 1669 3728 1669 3728 1668 3728 1667 3728 1667 3728 1667 3728 1666 3728 1666 3728 1666 3727 1666 3727 1667 3727 1668 3727 1668 3727 1669 3726 1669 3726 1669 3726 1670 3726 1671 3726 1672 3725 1673 3725 1674 3725 1680 3726 1684 3727 1687 3727 1688 3728 1689 3728 1689 3728 1689 3728 1690 3729 1690 3729 1690 3729 M 1433 3730 1432 3730 1432 3730 1432 3730 1432 3729 1431 3729 1432 3729 1432 3728 1432 3728 1432 3728 1433 3728 1433 3728 1433 3727 1434 3727 1435 3728 1435 3728 1435 3728 1435 3728 1436 3728 1437 3728 1437 3728 1437 3728 1437 3728 1437 3728 1437 3727 1437 3727 1437 3727 1437 3727 1437 3727 1438 3726 1438 3726 1438 3726 1439 3726 1440 3726 1440 3726 1441 3726 1441 3726 1441 3726 1442 3726 1442 3727 1442 3727 1443 3726 1444 3726 1444 3726 1444 3726 1445 3727 1445 3727 1446 3727 1446 3727 1446 3727 1446 3727 1443 3729 1443 3729 1442 3729 1442 3729 1440 3730 1440 3730 1439 3730 1438 3730 1438 3730 1438 3729 1437 3729 1436 3729 1436 3729 1435 3730 1433 3730 M 1200 3732 1199 3732 1198 3732 1198 3732 1197 3732 1197 3732 1195 3730 1194 3730 1194 3730 1194 3729 1194 3729 1195 3728 1195 3728 1196 3728 1196 3728 1196 3728 1197 3728 1197 3728 1198 3728 1198 3728 1198 3728 1198 3728 1198 3729 1202 3730 1202 3731 1203 3731 1204 3731 1205 3731 1205 3731 1205 3732 1205 3732 1205 3732 1204 3732 1204 3732 1203 3732 1201 3732 1200 3732 1200 3732 M 1701 3731 1701 3731 1701 3731 1701 3732 1700 3732 1700 3733 1699 3733 1699 3734 1699 3734 1698 3734 1697 3735 1696 3735 1695 3735 1694 3735 1694 3735 1694 3735 1693 3735 1693 3734 1692 3734 1692 3734 1692 3734 1692 3733 1692 3733 1693 3733 1693 3733 1694 3733 1695 3733 1695 3733 1696 3732 1696 3732 1696 3732 1697 3732 1697 3731 1697 3731 1697 3731 1698 3731 1698 3731 1700 3731 1700 3731 1701 3731 1701 3731 1701 3731 1701 3731 M 1624 3733 1624 3733 1624 3732 1624 3732 1624 3732 1625 3732 1626 3732 1626 3732 1628 3732 1630 3732 1630 3732 1631 3732 1632 3732 1632 3732 1632 3732 1634 3733 1634 3733 1635 3733 1635 3733 1635 3734 1635 3734 1635 3734 1634 3734 1634 3734 1634 3734 1632 3735 1632 3735 1630 3735 1630 3735 1629 3736 1628 3736 1626 3736 1626 3736 1626 3736 1625 3735 1625 3735 1624 3735 1624 3735 1623 3735 1623 3735 1623 3734 1623 3734 1624 3733 1624 3733 M 877 3738 877 3738 877 3739 876 3739 876 3739 876 3739 876 3740 877 3740 878 3740 878 3740 879 3740 880 3740 881 3740 882 3740 883 3740 883 3740 884 3739 884 3739 885 3739 886 3739 887 3739 887 3739 888 3739 891 3739 892 3740 891 3740 892 3741 892 3741 893 3742 894 3742 894 3743 895 3743 897 3743 897 3744 898 3744 899 3744 899 3744 899 3745 899 3746 899 3746 898 3747 898 3747 897 3747 897 3747 896 3747 896 3747 895 3747 893 3747 892 3747 888 3747 886 3747 883 3746 880 3746 879 3746 877 3746 874 3745 874 3745 872 3745 869 3744 868 3744 868 3744 868 3743 867 3743 867 3743 866 3743 865 3743 865 3743 864 3742 864 3742 863 3742 862 3742 861 3741 859 3741 859 3741 858 3741 857 3741 856 3741 856 3741 856 3740 857 3740 856 3739 856 3739 855 3739 854 3739 852 3739 851 3739 850 3739 849 3739 847 3739 846 3739 845 3739 844 3739 844 3739 844 3738 844 3738 845 3737 845 3737 845 3737 844 3737 843 3737 841 3736 840 3735 841 3735 842 3735 842 3734 843 3734 843 3734 843 3733 843 3733 844 3733 844 3733 845 3733 850 3732 850 3732 851 3732 851 3732 852 3732 853 3732 853 3732 854 3732 854 3732 855 3732 856 3732 856 3732 857 3732 858 3732 858 3732 859 3732 860 3732 861 3733 861 3733 862 3733 863 3734 863 3734 864 3734 865 3734 868 3734 868 3734 869 3734 870 3734 871 3734 871 3735 870 3735 869 3736 869 3736 869 3736 870 3737 871 3737 871 3737 872 3737 874 3737 875 3737 876 3738 877 3738 M 5586 3738 5585 3738 5584 3738 5583 3738 5581 3737 5581 3737 5581 3737 5582 3737 5582 3737 5582 3736 5583 3736 5583 3736 5583 3736 5583 3735 5583 3735 5583 3734 5585 3733 5585 3733 5588 3733 5588 3733 5589 3733 5588 3734 5588 3734 5588 3734 5588 3735 5589 3736 5589 3737 5589 3737 5588 3738 5587 3738 5587 3738 5586 3738 M 981 3743 981 3743 981 3744 981 3744 980 3744 978 3745 978 3745 978 3745 977 3745 974 3745 973 3746 973 3746 972 3746 971 3746 971 3746 969 3747 969 3747 968 3747 967 3747 967 3747 965 3747 961 3747 960 3747 957 3748 957 3748 955 3748 954 3748 953 3748 951 3748 949 3748 948 3748 947 3748 946 3748 946 3748 945 3748 944 3749 943 3749 942 3749 940 3750 939 3750 937 3750 934 3750 934 3750 932 3750 931 3750 924 3750 921 3750 919 3750 917 3750 917 3750 917 3750 916 3749 916 3749 917 3749 917 3748 918 3748 919 3748 919 3747 919 3747 919 3747 919 3746 918 3746 918 3746 917 3745 918 3744 919 3744 920 3743 920 3742 919 3742 919 3742 918 3742 917 3742 917 3742 916 3742 915 3742 915 3742 914 3742 913 3742 912 3741 908 3740 908 3740 909 3739 909 3739 910 3738 911 3738 911 3738 912 3738 913 3738 914 3738 915 3738 916 3738 918 3738 920 3738 921 3738 921 3738 922 3738 923 3738 923 3738 924 3738 925 3739 926 3739 927 3739 927 3739 928 3739 930 3739 931 3739 934 3740 936 3740 938 3740 941 3740 942 3740 942 3740 943 3740 944 3740 945 3740 946 3741 948 3741 950 3741 950 3741 951 3741 952 3741 953 3741 954 3741 954 3741 955 3741 955 3741 955 3741 956 3741 957 3741 957 3741 958 3741 959 3741 959 3741 961 3741 961 3741 962 3741 963 3741 964 3741 964 3741 965 3741 965 3741 966 3741 967 3741 968 3741 968 3741 970 3741 971 3741 971 3741 972 3741 972 3741 973 3741 973 3741 973 3741 974 3741 974 3741 976 3741 977 3741 978 3741 979 3741 980 3741 980 3742 981 3742 981 3743 981 3743 981 3743 M 1024 3743 1024 3743 1024 3744 1023 3744 1023 3744 1022 3744 1022 3744 1021 3744 1021 3744 1021 3744 1020 3745 1020 3745 1020 3745 1019 3745 1019 3745 1019 3745 1019 3746 1018 3746 1018 3746 1017 3746 1017 3746 1018 3746 1018 3746 1018 3747 1018 3747 1018 3747 1016 3747 1015 3747 1015 3747 1014 3747 1013 3747 1013 3747 1012 3747 1011 3747 1011 3747 1011 3747 1010 3747 1010 3747 1009 3747 1007 3747 1005 3747 1003 3747 1002 3747 1003 3747 1003 3747 1004 3747 1004 3747 1004 3747 1004 3746 1004 3746 1004 3746 1004 3745 1005 3745 1006 3745 1006 3745 1007 3745 1008 3745 1009 3745 1009 3745 1009 3745 1010 3744 1010 3744 1010 3744 1011 3744 1011 3744 1012 3744 1014 3744 1014 3744 1015 3744 1015 3744 1015 3744 1016 3743 1016 3743 1016 3743 1017 3743 1018 3743 1018 3743 1020 3743 1021 3743 1022 3743 1022 3743 1023 3743 1023 3743 1023 3743 1024 3743 1024 3743 1024 3743 M 2549 3746 2549 3746 2550 3746 2550 3747 2550 3748 2550 3749 2549 3749 2549 3749 2548 3749 2548 3750 2546 3751 2546 3752 2546 3752 2546 3752 2547 3752 2547 3752 2550 3754 2551 3754 2552 3755 2553 3755 2553 3755 2553 3756 2554 3756 2554 3756 2554 3757 2554 3757 2554 3757 2554 3758 2554 3758 2554 3758 2553 3758 2553 3758 2552 3758 2552 3758 2551 3758 2549 3758 2549 3758 2548 3758 2548 3758 2548 3758 2548 3758 2548 3757 2547 3757 2547 3757 2547 3756 2546 3756 2546 3755 2546 3755 2544 3754 2544 3754 2543 3754 2543 3754 2543 3754 2542 3754 2542 3753 2535 3753 2534 3753 2534 3753 2533 3753 2531 3752 2531 3752 2530 3752 2530 3752 2530 3751 2530 3751 2531 3751 2531 3751 2531 3751 2532 3751 2532 3751 2534 3751 2535 3751 2536 3751 2536 3751 2537 3751 2539 3750 2540 3750 2541 3750 2544 3749 2544 3749 2545 3748 2545 3748 2545 3748 2546 3747 2546 3747 2547 3747 2547 3747 2547 3747 2548 3746 2548 3746 2549 3746 2549 3746 M 1004 3750 1003 3750 1003 3750 1003 3749 1004 3749 1004 3749 1004 3749 1007 3748 1008 3748 1008 3748 1009 3748 1009 3748 1010 3748 1010 3748 1010 3748 1010 3749 1010 3749 1010 3749 1006 3750 1006 3750 1005 3750 1004 3750 1004 3750 M 839 3754 839 3754 838 3754 838 3753 838 3753 838 3753 837 3753 837 3753 836 3753 834 3752 832 3751 831 3751 828 3749 828 3749 828 3748 829 3748 832 3748 833 3748 834 3749 835 3749 837 3749 838 3749 838 3750 839 3750 840 3750 841 3750 843 3750 843 3750 844 3750 845 3750 845 3750 846 3751 846 3751 846 3752 846 3752 845 3753 844 3753 843 3753 841 3754 840 3754 839 3754 M 786 3750 786 3750 786 3750 786 3751 787 3751 787 3751 787 3751 787 3752 786 3752 786 3752 786 3753 785 3753 785 3753 784 3753 783 3753 782 3753 781 3753 780 3753 780 3753 779 3753 779 3753 778 3752 778 3752 778 3752 778 3752 777 3752 777 3752 775 3752 775 3752 774 3752 772 3752 770 3752 769 3752 768 3752 768 3752 767 3752 767 3751 767 3751 767 3751 767 3751 767 3751 768 3750 769 3750 770 3749 770 3749 771 3749 771 3749 772 3749 773 3749 774 3749 775 3749 775 3749 776 3749 776 3750 776 3750 776 3750 776 3750 776 3750 777 3750 777 3750 778 3750 779 3750 780 3750 780 3750 781 3750 782 3750 783 3750 783 3750 784 3751 784 3751 785 3751 785 3751 785 3750 786 3750 M 763 3751 763 3751 763 3751 763 3752 762 3752 762 3752 761 3752 761 3752 760 3752 759 3752 759 3752 758 3752 757 3752 757 3751 756 3751 756 3751 756 3751 757 3751 757 3751 758 3750 759 3750 760 3750 760 3750 761 3750 762 3750 763 3750 763 3750 763 3751 763 3751 763 3751 763 3751 M 592 3769 591 3769 591 3769 589 3769 588 3769 588 3769 588 3769 587 3768 587 3768 586 3768 587 3768 587 3768 589 3768 590 3768 590 3768 590 3768 591 3768 591 3768 592 3769 M 550 3769 552 3770 553 3770 553 3770 555 3771 556 3771 556 3771 557 3771 557 3771 557 3772 557 3772 557 3772 557 3772 556 3772 556 3772 552 3772 551 3772 550 3772 549 3772 547 3771 547 3771 546 3771 545 3770 545 3770 545 3770 546 3769 546 3769 546 3769 547 3769 547 3769 548 3769 548 3769 549 3769 550 3769 550 3769 M 530 3774 529 3774 528 3774 528 3774 527 3774 527 3773 527 3773 528 3773 528 3773 529 3773 529 3773 529 3773 530 3773 531 3774 531 3774 530 3774 530 3774 M 533 3781 533 3781 532 3781 531 3781 530 3781 530 3781 528 3781 528 3780 528 3780 527 3780 527 3780 526 3780 525 3779 525 3779 524 3779 524 3779 524 3779 523 3779 523 3778 523 3778 523 3778 524 3778 524 3778 525 3778 525 3778 525 3778 526 3778 529 3778 530 3778 530 3778 531 3778 531 3778 534 3780 534 3780 534 3780 534 3781 534 3781 534 3781 534 3781 533 3781 M 5568 3780 5566 3780 5566 3780 5565 3780 5564 3779 5564 3779 5564 3779 5565 3779 5565 3779 5566 3779 5566 3779 5566 3779 5567 3779 5567 3779 5568 3780 5568 3780 M 526 3785 528 3785 528 3785 529 3785 530 3785 530 3785 531 3786 531 3786 531 3787 531 3787 531 3788 531 3788 530 3788 530 3788 526 3788 526 3788 526 3788 525 3787 525 3787 523 3786 523 3785 524 3785 526 3785 526 3785 526 3785 M 520 3787 520 3787 519 3787 515 3787 514 3787 513 3787 513 3786 512 3786 512 3786 512 3786 512 3786 512 3786 512 3785 513 3785 513 3785 514 3785 516 3786 518 3786 518 3786 518 3786 520 3787 520 3787 521 3787 521 3787 521 3787 521 3787 520 3787 M 504 3787 504 3787 501 3787 500 3787 500 3787 499 3787 499 3787 499 3787 499 3787 500 3786 500 3786 500 3786 501 3786 501 3786 505 3787 505 3787 505 3787 505 3787 505 3787 505 3787 505 3787 504 3787 M 473 3787 474 3787 474 3787 475 3787 475 3787 476 3787 477 3787 479 3787 480 3787 481 3787 481 3787 482 3787 482 3787 483 3788 483 3788 482 3788 482 3788 480 3788 480 3788 479 3788 475 3789 474 3789 473 3789 473 3789 472 3789 469 3788 468 3788 468 3788 468 3788 468 3788 468 3788 469 3787 470 3787 470 3787 471 3787 472 3787 473 3787 M 497 3790 497 3790 496 3790 495 3789 493 3789 493 3789 493 3789 493 3788 492 3788 493 3788 493 3788 493 3788 495 3788 496 3787 497 3787 498 3787 499 3788 500 3788 503 3788 503 3788 504 3788 505 3788 506 3788 507 3788 508 3788 508 3788 508 3788 509 3789 509 3789 508 3789 505 3789 505 3789 504 3789 504 3789 502 3789 501 3789 500 3789 499 3790 497 3790 M 530 3792 529 3792 529 3792 527 3791 527 3791 527 3790 527 3790 528 3790 528 3789 528 3789 529 3789 529 3789 530 3789 531 3789 532 3789 533 3789 537 3790 539 3790 539 3790 539 3790 539 3791 539 3791 539 3791 539 3791 538 3791 538 3791 538 3792 537 3792 532 3792 530 3792 M 479 3790 481 3790 482 3790 483 3790 485 3790 485 3790 486 3790 486 3790 487 3791 487 3791 488 3791 490 3792 494 3794 494 3794 494 3794 494 3794 493 3794 492 3794 491 3794 490 3794 489 3794 488 3794 486 3794 486 3794 485 3794 485 3794 485 3794 484 3794 482 3794 478 3794 477 3794 477 3794 476 3794 475 3793 474 3793 474 3793 474 3793 473 3792 471 3792 470 3792 468 3792 468 3792 468 3792 467 3792 467 3791 468 3791 468 3791 468 3791 469 3791 469 3791 471 3791 472 3791 473 3791 474 3791 476 3791 477 3791 477 3791 478 3790 479 3790 M 499 3793 498 3793 497 3793 493 3792 493 3792 492 3792 492 3792 492 3791 493 3791 493 3791 494 3791 495 3791 495 3791 496 3791 498 3791 498 3791 500 3791 500 3791 502 3791 503 3791 504 3791 507 3792 508 3792 508 3792 508 3792 506 3792 505 3792 503 3792 500 3793 499 3793 M 517 3794 516 3794 516 3794 515 3794 514 3794 514 3793 514 3793 514 3793 514 3793 515 3793 515 3793 516 3793 517 3793 517 3793 517 3794 517 3794 517 3794 517 3794 M 510 3799 510 3799 509 3799 508 3799 508 3799 508 3799 507 3799 507 3798 506 3798 506 3798 505 3798 503 3798 503 3798 498 3797 498 3797 497 3797 497 3797 498 3795 498 3794 498 3794 499 3794 499 3794 500 3794 502 3793 502 3793 503 3793 504 3793 505 3794 508 3794 508 3794 515 3795 516 3795 516 3795 516 3796 517 3796 517 3796 517 3796 517 3797 518 3798 517 3798 517 3798 516 3799 516 3799 516 3799 515 3799 515 3799 513 3799 510 3799 M 523 3796 522 3796 522 3796 522 3796 521 3796 519 3795 519 3795 519 3795 520 3795 520 3795 521 3795 522 3795 523 3795 524 3795 525 3795 525 3795 526 3795 526 3795 524 3796 523 3796 M 5581 3800 5582 3800 5582 3800 5581 3801 5581 3801 5579 3801 5578 3802 5573 3803 5573 3803 5572 3803 5568 3803 5567 3803 5566 3803 5565 3803 5563 3803 5563 3803 5562 3803 5562 3803 5561 3803 5561 3803 5560 3803 5559 3803 5557 3803 5555 3803 5555 3803 5554 3802 5553 3802 5552 3802 5552 3803 5551 3803 5548 3803 5548 3804 5547 3804 5547 3804 5544 3804 5543 3805 5542 3805 5541 3805 5541 3805 5540 3806 5540 3806 5539 3806 5539 3806 5538 3806 5537 3806 5537 3805 5538 3805 5539 3805 5540 3804 5540 3804 5539 3804 5538 3804 5536 3804 5535 3804 5536 3803 5538 3803 5539 3803 5539 3803 5540 3803 5540 3803 5540 3803 5540 3803 5537 3803 5536 3803 5536 3803 5535 3803 5534 3803 5534 3803 5532 3802 5532 3802 5530 3802 5530 3801 5531 3801 5531 3801 5533 3800 5536 3798 5536 3798 5535 3798 5534 3798 5533 3797 5533 3797 5532 3797 5533 3796 5536 3795 5536 3795 5537 3795 5538 3795 5539 3795 5541 3795 5541 3795 5542 3795 5543 3796 5544 3796 5545 3797 5545 3797 5545 3798 5546 3798 5547 3798 5548 3798 5548 3798 5550 3799 5554 3799 5555 3799 5557 3799 5559 3799 5559 3799 5560 3798 5561 3798 5562 3798 5563 3798 5564 3798 5566 3798 5567 3798 5572 3799 5576 3799 5579 3799 5580 3799 5580 3800 5580 3800 5581 3800 M 460 3797 460 3797 461 3796 461 3796 461 3796 464 3796 465 3796 466 3795 466 3795 467 3796 468 3796 472 3797 473 3797 474 3797 475 3797 476 3797 478 3798 478 3798 478 3798 478 3798 477 3798 477 3798 477 3798 476 3798 476 3798 475 3798 474 3798 471 3798 470 3798 466 3798 464 3798 463 3797 461 3797 461 3797 461 3797 460 3797 460 3797 460 3797 M 493 3798 492 3798 492 3798 491 3798 489 3797 488 3797 487 3797 487 3797 487 3797 487 3797 488 3797 488 3796 488 3796 489 3796 490 3796 491 3796 492 3796 492 3796 493 3796 493 3797 494 3797 497 3798 498 3798 498 3798 498 3798 498 3798 497 3798 496 3798 494 3798 493 3798 M 2055 3838 2055 3837 2056 3837 2058 3837 2059 3836 2059 3836 2061 3835 2062 3835 2062 3835 2064 3834 2065 3834 2065 3834 2066 3834 2066 3833 2067 3833 2067 3832 2067 3832 2066 3831 2066 3831 2065 3830 2065 3830 2065 3828 2065 3828 2066 3827 2066 3827 2067 3827 2068 3826 2068 3826 2069 3825 2068 3825 2068 3824 2068 3824 2068 3823 2068 3823 2069 3823 2070 3822 2070 3822 2071 3821 2072 3820 2072 3819 2073 3819 2074 3818 2076 3817 2077 3816 2078 3816 2080 3815 2080 3815 2081 3815 2083 3814 2084 3814 2087 3813 2088 3813 2090 3812 2091 3812 2097 3811 2098 3810 2104 3809 2107 3809 2109 3808 2111 3808 2113 3808 2116 3808 2119 3807 2120 3807 2121 3807 2122 3807 2125 3807 2126 3807 2127 3807 2130 3807 2134 3807 2135 3807 2136 3807 2137 3807 2139 3808 2140 3808 2140 3808 2142 3808 2145 3808 2147 3808 2147 3808 2149 3809 2150 3809 2151 3809 2153 3809 2155 3810 2156 3810 2158 3810 2159 3810 2160 3810 2162 3811 2165 3811 2169 3813 2171 3813 2173 3814 2174 3814 2174 3814 2174 3814 2174 3815 2174 3815 2174 3816 2174 3816 2174 3817 2174 3817 2173 3818 2173 3818 2172 3819 2172 3819 2171 3819 2170 3819 2170 3820 2169 3820 2168 3820 2166 3820 2164 3820 2163 3820 2162 3820 2160 3820 2158 3820 2156 3820 2155 3820 2153 3820 2152 3820 2151 3820 2151 3820 2150 3820 2149 3821 2148 3821 2147 3822 2147 3822 2147 3822 2148 3823 2149 3823 2150 3823 2151 3823 2152 3823 2153 3823 2154 3823 2156 3823 2157 3823 2158 3823 2161 3823 2162 3823 2164 3823 2165 3823 2167 3823 2168 3823 2170 3823 2171 3823 2171 3823 2172 3823 2174 3824 2175 3824 2175 3824 2176 3824 2176 3825 2176 3826 2175 3828 2175 3828 2174 3828 2174 3828 2174 3828 2173 3829 2172 3829 2170 3829 2169 3829 2169 3829 2167 3829 2165 3829 2165 3829 2164 3829 2164 3829 2163 3829 2163 3830 2163 3830 2164 3830 2164 3830 2165 3830 2167 3831 2169 3831 2170 3831 2172 3831 2174 3831 2177 3831 2178 3831 2178 3831 2180 3831 2180 3832 2181 3832 2181 3832 2182 3832 2182 3833 2183 3834 2183 3834 2183 3837 2182 3837 2182 3838 2182 3838 2181 3839 2181 3839 2179 3840 2179 3841 2178 3841 2178 3841 2177 3841 2176 3841 2175 3842 2174 3842 2173 3841 2172 3841 2172 3841 2171 3841 2170 3841 2169 3841 2167 3841 2165 3841 2164 3841 2164 3842 2163 3842 2163 3842 2164 3842 2165 3843 2167 3843 2168 3843 2169 3844 2170 3844 2171 3844 2171 3845 2170 3845 2170 3845 2169 3845 2169 3846 2168 3846 2167 3846 2162 3847 2157 3847 2155 3847 2154 3848 2153 3848 2150 3848 2144 3849 2139 3849 2138 3849 2135 3850 2134 3850 2131 3850 2128 3850 2124 3850 2122 3850 2119 3851 2117 3851 2114 3851 2113 3851 2110 3851 2106 3851 2099 3852 2096 3852 2093 3852 2092 3852 2091 3852 2090 3852 2090 3852 2086 3852 2083 3852 2079 3853 2074 3853 2064 3854 2062 3854 2059 3854 2056 3854 2055 3854 2054 3854 2049 3854 2044 3855 2043 3855 2038 3855 2037 3855 2033 3855 2030 3855 2025 3855 2016 3855 2012 3855 2011 3855 2008 3855 2007 3855 2006 3854 2005 3854 2003 3854 2002 3854 2002 3854 2001 3854 2000 3853 2000 3853 1999 3853 1998 3852 1998 3851 1998 3851 1999 3850 2005 3848 2007 3847 2007 3847 2010 3846 2011 3845 2011 3845 2012 3845 2012 3845 2013 3845 2014 3845 2015 3845 2018 3844 2019 3844 2020 3844 2022 3844 2023 3844 2025 3844 2027 3844 2029 3843 2031 3843 2033 3843 2035 3843 2037 3843 2038 3843 2038 3842 2039 3842 2040 3842 2041 3842 2042 3841 2043 3841 2045 3840 2046 3840 2046 3840 2047 3839 2050 3839 2051 3839 2053 3838 2054 3838 2055 3838 M 5544 3812 5543 3812 5542 3812 5541 3812 5541 3812 5540 3812 5540 3811 5541 3811 5542 3811 5543 3811 5545 3810 5545 3810 5547 3810 5548 3810 5548 3809 5548 3809 5548 3809 5549 3808 5549 3808 5549 3808 5550 3808 5550 3808 5551 3808 5552 3809 5552 3809 5553 3810 5553 3811 5552 3811 5551 3812 5551 3812 5550 3812 5550 3812 5547 3812 5544 3812 M 5531 3813 5531 3813 5529 3813 5528 3813 5528 3812 5529 3812 5529 3812 5529 3812 5530 3812 5529 3811 5529 3811 5529 3811 5528 3811 5528 3811 5528 3810 5527 3810 5528 3810 5528 3810 5529 3810 5531 3810 5533 3811 5536 3811 5537 3811 5538 3812 5539 3812 5538 3812 5536 3813 5534 3813 5533 3813 5533 3813 5532 3813 5532 3813 5531 3813 M 1739 3835 1738 3835 1736 3835 1735 3834 1733 3834 1732 3834 1731 3834 1730 3834 1729 3833 1729 3833 1728 3833 1728 3833 1727 3832 1727 3832 1727 3831 1728 3829 1728 3829 1729 3828 1729 3828 1730 3827 1731 3827 1733 3826 1733 3826 1735 3825 1736 3825 1737 3825 1738 3824 1739 3824 1745 3823 1749 3822 1752 3821 1753 3821 1755 3821 1756 3820 1758 3820 1759 3820 1761 3820 1762 3820 1763 3820 1765 3819 1766 3819 1769 3819 1772 3818 1772 3818 1774 3818 1777 3817 1786 3816 1787 3816 1788 3816 1789 3816 1791 3815 1792 3815 1793 3815 1795 3815 1796 3815 1798 3815 1799 3816 1799 3816 1799 3816 1800 3816 1800 3817 1799 3817 1799 3817 1799 3818 1797 3818 1796 3819 1795 3819 1794 3819 1793 3819 1792 3820 1791 3820 1789 3820 1788 3821 1785 3821 1784 3822 1783 3822 1781 3823 1780 3823 1778 3824 1777 3824 1775 3824 1772 3825 1770 3826 1769 3826 1768 3826 1764 3828 1764 3828 1764 3828 1763 3829 1761 3829 1760 3830 1760 3830 1758 3831 1754 3832 1753 3833 1752 3833 1751 3834 1750 3834 1748 3834 1747 3834 1746 3834 1745 3835 1744 3835 1743 3835 1742 3835 1739 3835 M 2269 3819 2268 3819 2267 3819 2263 3819 2260 3818 2260 3818 2258 3818 2257 3818 2255 3819 2254 3819 2254 3819 2253 3819 2252 3819 2251 3819 2250 3819 2250 3819 2249 3819 2249 3819 2248 3818 2247 3818 2246 3818 2245 3818 2245 3818 2243 3818 2242 3818 2240 3818 2239 3818 2238 3818 2235 3818 2232 3818 2232 3818 2229 3818 2228 3818 2228 3818 2227 3818 2226 3818 2224 3818 2223 3818 2221 3818 2220 3818 2219 3818 2218 3818 2216 3818 2213 3818 2212 3818 2210 3818 2205 3818 2205 3818 2206 3818 2208 3818 2210 3818 2211 3817 2212 3817 2212 3817 2213 3817 2213 3817 2215 3816 2216 3816 2217 3816 2218 3816 2219 3816 2220 3816 2221 3816 2223 3816 2225 3816 2231 3817 2232 3817 2235 3817 2237 3817 2238 3817 2240 3817 2241 3817 2244 3817 2247 3817 2249 3817 2250 3817 2256 3818 2257 3818 2258 3818 2259 3818 2262 3818 2264 3818 2264 3818 2265 3818 2265 3818 2267 3818 2273 3818 2274 3819 2277 3819 2276 3819 2272 3819 2269 3819 M 334 3838 333 3838 332 3838 332 3838 331 3838 330 3838 330 3838 329 3838 327 3838 325 3838 324 3838 323 3838 321 3838 320 3838 318 3838 315 3838 313 3838 311 3838 310 3838 304 3838 303 3838 302 3838 300 3837 299 3837 298 3837 298 3837 296 3836 294 3836 292 3836 291 3836 287 3835 286 3835 285 3835 280 3835 278 3834 276 3834 274 3833 273 3833 273 3833 272 3833 272 3833 268 3832 266 3831 266 3831 265 3831 265 3831 263 3830 262 3830 261 3830 261 3830 260 3829 260 3829 259 3828 258 3828 259 3827 259 3827 259 3826 259 3826 260 3826 261 3825 261 3825 262 3825 262 3825 264 3824 264 3824 265 3824 265 3823 266 3823 267 3823 268 3823 269 3823 269 3823 270 3822 271 3822 271 3822 272 3821 273 3821 274 3820 275 3820 276 3820 277 3820 279 3820 280 3820 281 3820 282 3820 283 3820 284 3820 285 3820 289 3820 290 3820 291 3820 292 3820 293 3820 293 3820 295 3821 298 3821 299 3821 300 3822 301 3822 301 3822 302 3822 302 3822 303 3823 304 3823 305 3823 307 3824 310 3825 310 3825 311 3825 311 3826 312 3826 315 3827 316 3827 319 3828 321 3828 323 3829 326 3829 328 3829 329 3829 331 3830 331 3830 335 3832 335 3832 336 3832 336 3833 339 3833 342 3834 342 3835 343 3835 343 3836 341 3837 340 3838 339 3838 338 3838 338 3838 337 3838 335 3838 334 3838 M 1914 3844 1914 3844 1913 3845 1913 3845 1913 3846 1912 3846 1912 3846 1912 3847 1911 3848 1909 3849 1908 3850 1908 3850 1905 3851 1902 3852 1901 3853 1901 3853 1900 3853 1899 3853 1898 3853 1896 3853 1892 3854 1891 3854 1889 3854 1887 3854 1884 3854 1883 3854 1883 3853 1881 3853 1879 3853 1878 3853 1876 3853 1875 3853 1873 3853 1870 3852 1865 3851 1861 3850 1860 3850 1858 3849 1856 3848 1856 3848 1855 3848 1854 3848 1852 3847 1852 3847 1850 3847 1849 3847 1846 3847 1845 3847 1844 3847 1842 3847 1841 3848 1840 3848 1840 3848 1837 3849 1836 3849 1835 3849 1835 3849 1833 3849 1832 3849 1830 3849 1828 3848 1826 3848 1824 3848 1822 3848 1820 3847 1816 3847 1815 3847 1814 3847 1813 3846 1812 3846 1810 3846 1807 3845 1806 3845 1806 3844 1805 3844 1805 3844 1804 3844 1804 3843 1805 3842 1805 3842 1805 3842 1806 3842 1807 3841 1808 3841 1810 3842 1811 3842 1812 3842 1812 3842 1813 3842 1816 3843 1817 3843 1819 3843 1823 3843 1826 3844 1827 3844 1834 3844 1836 3845 1838 3845 1845 3845 1846 3845 1848 3845 1850 3845 1852 3845 1853 3845 1857 3845 1861 3845 1869 3845 1873 3845 1875 3844 1876 3844 1878 3844 1880 3844 1882 3844 1884 3843 1886 3843 1887 3843 1887 3843 1888 3842 1888 3842 1889 3842 1889 3841 1889 3841 1889 3840 1889 3839 1890 3839 1890 3838 1891 3837 1892 3836 1893 3836 1893 3836 1894 3836 1895 3835 1897 3835 1899 3835 1900 3834 1901 3834 1902 3834 1904 3834 1906 3834 1907 3834 1908 3834 1910 3834 1911 3835 1912 3835 1913 3835 1913 3835 1914 3836 1914 3836 1914 3837 1914 3837 1914 3837 1914 3838 1913 3839 1913 3840 1913 3840 1913 3841 1913 3843 1914 3844" />
+<path id="bh" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3684 2143 3683 2143 3683 2143 3683 2143 3684 2143 3684 2143 3684 2143 3684 2143 3684 2143 M 3683 2145 3683 2145 3683 2145 3683 2145 3683 2146 3683 2146 3683 2146 3684 2148 3683 2148 3683 2149 3683 2150 3683 2150 3683 2150 3683 2150 3682 2150 3681 2148 3681 2148 3681 2148 3681 2148 3681 2147 3681 2147 3681 2147 3681 2147 3681 2146 3681 2146 3681 2146 3681 2145 3681 2144 3681 2144 3681 2144 3681 2143 3682 2143 3682 2143 3682 2143 3682 2144 3683 2143 3683 2143 3683 2144 3683 2144 3682 2144 3682 2144 3683 2144 3683 2145 M 3686 2154 3686 2154 3686 2154 3685 2154 3685 2152 3685 2152 3686 2152 3686 2152 3686 2152 3686 2152 3686 2152 3686 2152 3686 2152 3686 2153 3686 2154 3686 2154" />
+<path id="bb" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1924 2354 1924 2354 1924 2354 1923 2354 1923 2353 1922 2353 1922 2350 1922 2350 1922 2350 1922 2350 1923 2350 1923 2349 1923 2350 1924 2350 1924 2350 1924 2351 1924 2351 1924 2351 1925 2352 1925 2352 1926 2352 1926 2352 1926 2352 1926 2353 1926 2353 1926 2353 1925 2353 1925 2353 1925 2354 1924 2354 1924 2354" />
+<path id="bw" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3297 2956 3297 2956 3296 2956 3295 2956 3293 2956 3291 2957 3289 2958 3288 2958 3288 2959 3288 2960 3288 2962 3287 2965 3285 2969 3285 2969 3284 2971 3284 2972 3284 2972 3282 2973 3281 2974 3280 2974 3277 2974 3277 2974 3276 2974 3276 2974 3275 2973 3275 2974 3274 2974 3273 2975 3271 2975 3269 2975 3269 2975 3268 2975 3267 2974 3266 2974 3266 2974 3265 2974 3265 2974 3264 2974 3263 2973 3262 2973 3262 2972 3261 2972 3260 2972 3259 2972 3258 2972 3257 2972 3257 2971 3256 2971 3254 2969 3254 2969 3253 2969 3253 2969 3252 2968 3251 2967 3250 2966 3247 2966 3245 2966 3243 2967 3242 2967 3241 2968 3240 2970 3239 2971 3240 2972 3239 2973 3239 2973 3238 2974 3238 2975 3238 2975 3238 2977 3238 2978 3237 2978 3236 2979 3236 2980 3234 2981 3232 2982 3230 2983 3230 2984 3229 2985 3229 2986 3229 2986 3227 2988 3227 2988 3226 2988 3225 2988 3224 2988 3223 2988 3223 2989 3223 2990 3223 2990 3223 2990 3222 2991 3221 2991 3221 2992 3220 2992 3219 2991 3218 2991 3218 2991 3217 2991 3217 2991 3216 2991 3216 2991 3215 2991 3213 2992 3213 2992 3212 2992 3212 2992 3211 2991 3210 2991 3210 2991 3209 2991 3209 2990 3208 2991 3208 2991 3207 2991 3207 2992 3206 2992 3205 2991 3204 2990 3204 2986 3204 2986 3204 2985 3204 2985 3205 2985 3205 2984 3206 2983 3207 2983 3207 2982 3208 2980 3207 2976 3207 2975 3206 2974 3205 2973 3205 2972 3205 2971 3205 2969 3205 2969 3204 2968 3203 2967 3202 2964 3201 2962 3199 2961 3198 2960 3197 2960 3197 2960 3195 2959 3195 2959 3194 2958 3194 2958 3194 2957 3194 2955 3194 2952 3194 2950 3194 2945 3194 2944 3194 2942 3194 2940 3194 2937 3194 2935 3194 2932 3194 2929 3194 2929 3194 2929 3194 2925 3194 2922 3194 2918 3194 2915 3194 2914 3194 2914 3199 2914 3205 2914 3209 2914 3210 2914 3210 2913 3210 2913 3210 2907 3210 2903 3210 2898 3210 2898 3210 2895 3210 2885 3210 2882 3210 2869 3210 2861 3210 2858 3210 2855 3210 2855 3214 2855 3218 2855 3223 2854 3231 2852 3234 2852 3237 2851 3244 2850 3247 2850 3247 2850 3247 2850 3248 2851 3248 2851 3248 2852 3249 2853 3249 2853 3250 2853 3250 2854 3251 2854 3251 2855 3251 2856 3251 2857 3252 2858 3252 2858 3253 2858 3254 2857 3255 2856 3256 2855 3256 2855 3256 2854 3257 2854 3257 2854 3258 2853 3258 2853 3263 2850 3264 2849 3265 2849 3265 2849 3265 2850 3266 2850 3266 2851 3266 2851 3267 2851 3267 2851 3269 2849 3272 2847 3273 2847 3274 2847 3274 2847 3275 2847 3276 2847 3276 2847 3277 2847 3278 2847 3279 2847 3278 2848 3278 2848 3278 2849 3279 2850 3279 2851 3280 2852 3281 2852 3281 2854 3282 2854 3282 2855 3282 2856 3283 2856 3283 2856 3284 2858 3285 2859 3286 2859 3287 2861 3288 2863 3289 2864 3290 2865 3290 2865 3290 2866 3290 2866 3290 2867 3290 2868 3290 2869 3291 2869 3291 2870 3292 2872 3293 2874 3293 2874 3293 2875 3294 2875 3294 2875 3296 2876 3297 2877 3299 2878 3299 2879 3300 2879 3300 2879 3300 2880 3300 2880 3301 2880 3302 2881 3306 2882 3308 2882 3310 2883 3310 2884 3311 2885 3311 2886 3311 2887 3311 2888 3311 2889 3311 2890 3311 2890 3312 2889 3312 2889 3313 2889 3314 2890 3316 2889 3317 2890 3318 2890 3318 2891 3318 2894 3318 2895 3318 2895 3317 2896 3317 2897 3317 2899 3318 2900 3318 2900 3319 2901 3320 2902 3321 2903 3321 2904 3322 2905 3322 2907 3322 2907 3322 2907 3323 2907 3325 2907 3325 2907 3326 2907 3327 2907 3328 2908 3328 2908 3329 2908 3330 2908 3330 2908 3331 2908 3331 2908 3333 2908 3336 2910 3337 2910 3337 2910 3338 2910 3339 2911 3339 2911 3339 2912 3339 2912 3339 2913 3339 2913 3339 2914 3339 2914 3339 2915 3340 2915 3340 2915 3341 2915 3341 2915 3342 2915 3342 2915 3342 2915 3344 2917 3344 2917 3343 2917 3339 2917 3339 2917 3339 2918 3338 2919 3338 2920 3338 2920 3337 2920 3337 2921 3337 2921 3335 2922 3332 2923 3330 2923 3328 2923 3327 2924 3325 2925 3325 2925 3325 2925 3325 2925 3325 2926 3325 2926 3324 2927 3323 2928 3322 2929 3321 2930 3319 2933 3318 2933 3316 2933 3315 2934 3315 2935 3315 2935 3315 2936 3314 2936 3313 2936 3313 2936 3312 2936 3309 2938 3308 2939 3307 2940 3307 2940 3306 2940 3306 2941 3306 2942 3306 2942 3305 2945 3304 2947 3304 2950 3304 2950 3303 2951 3302 2951 3302 2951 3299 2953 3298 2954 3298 2954 3298 2954 3298 2955 3298 2955 3297 2956 3297 2956 3297 2956" />
+<path id="bm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1840 2047 1840 2047 1841 2046 1841 2046 1842 2045 1842 2045 1842 2046 1841 2046 1841 2047 1841 2047 1840 2047 1840 2047 1840 2047 1840 2047" />
+<path id="be" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2977 1759 2976 1759 2975 1759 2973 1760 2973 1761 2973 1762 2973 1762 2971 1761 2971 1761 2971 1761 2970 1761 2969 1762 2969 1763 2968 1764 2967 1765 2967 1765 2967 1767 2967 1767 2967 1767 2969 1768 2969 1769 2969 1769 2969 1770 2969 1771 2968 1771 2968 1771 2968 1771 2966 1771 2965 1771 2964 1771 2963 1772 2962 1772 2962 1771 2962 1770 2961 1770 2961 1770 2960 1769 2955 1767 2954 1767 2954 1767 2953 1767 2953 1767 2952 1764 2952 1763 2953 1762 2953 1762 2952 1761 2951 1762 2950 1763 2950 1763 2950 1764 2947 1765 2946 1765 2946 1765 2945 1765 2944 1764 2943 1764 2942 1765 2942 1764 2941 1764 2941 1764 2942 1762 2942 1760 2942 1759 2939 1758 2939 1758 2937 1758 2935 1758 2934 1758 2934 1757 2933 1757 2933 1756 2931 1756 2930 1756 2929 1756 2928 1756 2927 1755 2927 1753 2926 1752 2926 1752 2926 1752 2925 1751 2925 1751 2924 1751 2923 1752 2923 1752 2922 1752 2922 1752 2921 1753 2921 1752 2919 1752 2917 1751 2916 1749 2916 1748 2916 1746 2916 1746 2921 1745 2922 1744 2923 1744 2925 1743 2925 1743 2926 1743 2929 1742 2929 1743 2929 1744 2929 1744 2930 1744 2930 1744 2931 1744 2931 1743 2932 1743 2934 1743 2936 1744 2936 1744 2937 1745 2938 1744 2940 1744 2941 1743 2942 1743 2942 1743 2943 1742 2943 1743 2943 1743 2943 1743 2944 1743 2944 1744 2944 1744 2944 1744 2944 1743 2943 1743 2943 1742 2943 1742 2943 1742 2943 1742 2945 1742 2945 1742 2945 1742 2946 1742 2946 1742 2945 1741 2945 1741 2947 1740 2948 1740 2948 1741 2948 1741 2949 1741 2950 1741 2950 1740 2951 1740 2952 1740 2952 1740 2952 1740 2952 1741 2953 1741 2954 1741 2955 1741 2955 1740 2955 1740 2956 1740 2956 1741 2956 1742 2957 1743 2957 1743 2958 1743 2959 1743 2959 1744 2960 1744 2961 1744 2962 1743 2963 1743 2964 1744 2964 1744 2965 1745 2967 1745 2968 1745 2968 1746 2967 1748 2967 1748 2967 1749 2965 1750 2965 1750 2965 1751 2966 1751 2966 1751 2966 1751 2966 1751 2966 1752 2966 1752 2967 1752 2968 1752 2969 1752 2969 1752 2970 1752 2971 1752 2972 1752 2974 1753 2975 1754 2975 1754 2975 1756 2976 1756 2976 1756 2977 1757 2977 1759" />
+<path id="bs" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1630 2133 1630 2133 1631 2133 1632 2132 1632 2132 1633 2133 1634 2133 1635 2133 1635 2133 1635 2133 1636 2133 1636 2133 1636 2133 1637 2133 1637 2133 1638 2134 1638 2135 1640 2137 1641 2137 1642 2138 1643 2138 1644 2138 1644 2139 1644 2139 1644 2139 1645 2139 1645 2141 1644 2142 1644 2142 1643 2143 1643 2143 1643 2143 1643 2143 1642 2144 1642 2144 1642 2146 1642 2147 1642 2148 1642 2148 1642 2149 1642 2149 1642 2149 1641 2149 1641 2149 1641 2149 1641 2148 1641 2148 1640 2148 1640 2148 1640 2147 1639 2147 1640 2146 1642 2145 1642 2143 1641 2141 1642 2140 1642 2140 1642 2140 1643 2139 1643 2139 1643 2138 1642 2138 1642 2138 1642 2138 1642 2138 1641 2138 1640 2138 1640 2138 1640 2138 1640 2137 1637 2134 1637 2134 1636 2133 1636 2133 1636 2134 1635 2134 1635 2133 1634 2133 1634 2133 1633 2133 1632 2133 1632 2133 1631 2133 1631 2133 1630 2133 M 1618 2139 1618 2139 1617 2139 1617 2139 1616 2139 1616 2138 1614 2137 1614 2136 1615 2137 1616 2137 1616 2138 1616 2138 1618 2138 1618 2138 1618 2138 1618 2138 1619 2137 1620 2136 1620 2136 1621 2135 1623 2136 1623 2136 1624 2136 1624 2136 1624 2136 1625 2136 1626 2136 1627 2136 1627 2136 1629 2136 1630 2136 1630 2135 1630 2135 1630 2135 1631 2136 1630 2137 1630 2137 1630 2137 1629 2137 1625 2137 1624 2137 1623 2137 1620 2138 1620 2139 1618 2139 1618 2139 1618 2139 M 1649 2154 1650 2154 1650 2155 1653 2157 1655 2158 1656 2158 1656 2158 1656 2158 1656 2159 1659 2161 1659 2161 1659 2161 1659 2162 1659 2162 1659 2162 1659 2166 1658 2168 1658 2168 1656 2166 1656 2166 1656 2166 1658 2165 1659 2163 1659 2162 1659 2162 1659 2162 1659 2161 1658 2161 1658 2161 1658 2161 1657 2160 1657 2160 1656 2159 1656 2159 1656 2159 1656 2158 1655 2158 1655 2158 1655 2158 1655 2158 1653 2158 1653 2157 1653 2157 1652 2157 1652 2157 1652 2157 1652 2157 1652 2157 1652 2156 1651 2156 1651 2156 1651 2156 1650 2156 1649 2154 M 1626 2160 1626 2160 1629 2160 1629 2161 1630 2163 1631 2166 1632 2166 1632 2167 1632 2167 1633 2167 1633 2169 1634 2171 1634 2171 1633 2172 1632 2172 1631 2172 1631 2173 1629 2175 1628 2175 1628 2174 1628 2173 1628 2173 1626 2172 1625 2171 1624 2171 1624 2171 1623 2171 1623 2170 1622 2169 1624 2168 1624 2168 1625 2169 1624 2169 1624 2170 1625 2170 1626 2170 1626 2169 1625 2168 1625 2168 1624 2168 1624 2167 1625 2167 1625 2166 1626 2165 1626 2165 1627 2163 1627 2162 1626 2161 1626 2160 1626 2160 1626 2160 M 1638 2163 1638 2163 1636 2163 1636 2163 1636 2163 1636 2163 1637 2162 1637 2162 1638 2162 1638 2162 1639 2162 1640 2162 1641 2162 1641 2162 1641 2163 1640 2163 1638 2163 1638 2163 M 1670 2177 1669 2177 1669 2177 1669 2177 1669 2177 1670 2176 1670 2175 1669 2174 1669 2173 1669 2173 1668 2172 1668 2171 1668 2171 1667 2170 1666 2169 1666 2169 1665 2169 1665 2169 1665 2168 1666 2168 1666 2168 1667 2169 1667 2169 1667 2170 1668 2170 1669 2172 1670 2173 1670 2174 1670 2174 1670 2174 1671 2174 1671 2174 1672 2176 1672 2176 1672 2177 1672 2177 1672 2177 1670 2177 1670 2177 1670 2177 M 1634 2175 1634 2175 1634 2174 1635 2175 1635 2175 1635 2176 1635 2176 1635 2176 1634 2176 1633 2177 1633 2177 1633 2179 1633 2179 1634 2179 1634 2179 1634 2178 1634 2177 1635 2176 1635 2176 1635 2176 1635 2176 1636 2176 1636 2176 1636 2176 1636 2177 1636 2177 1637 2180 1637 2181 1637 2182 1636 2183 1636 2183 1636 2183 1635 2184 1633 2183 1633 2183 1634 2183 1634 2183 1634 2183 1636 2182 1636 2182 1636 2182 1635 2182 1635 2182 1634 2183 1634 2183 1633 2183 1632 2181 1631 2178 1632 2177 1634 2175 1634 2175 M 1685 2178 1685 2178 1685 2177 1686 2177 1686 2178 1686 2179 1685 2180 1685 2180 1684 2180 1684 2179 1685 2179 1685 2178 1685 2178 M 1661 2184 1661 2184 1662 2185 1665 2187 1664 2187 1663 2186 1662 2186 1662 2186 1662 2186 1661 2186 1661 2185 1661 2184 1661 2184 M 1672 2184 1672 2185 1673 2185 1673 2185 1675 2190 1676 2190 1676 2191 1676 2191 1676 2191 1676 2192 1676 2192 1676 2193 1676 2193 1676 2193 1677 2193 1677 2193 1677 2193 1678 2193 1678 2194 1679 2195 1680 2196 1680 2197 1680 2197 1680 2197 1679 2197 1679 2196 1679 2196 1678 2195 1678 2195 1678 2194 1677 2194 1677 2194 1677 2194 1676 2194 1676 2194 1676 2194 1676 2194 1675 2193 1674 2193 1675 2193 1675 2193 1675 2193 1675 2193 1676 2193 1676 2193 1676 2193 1675 2193 1675 2191 1675 2190 1675 2190 1675 2189 1675 2189 1674 2189 1673 2187 1672 2185 1672 2184 M 1692 2201 1690 2200 1690 2200 1689 2200 1688 2198 1688 2198 1688 2198 1688 2198 1690 2198 1693 2200 1692 2201 1692 2201 M 1689 2208 1689 2208 1689 2208 1690 2206 1692 2205 1694 2204 1694 2204 1695 2203 1695 2203 1695 2203 1695 2202 1695 2202 1695 2202 1695 2202 1695 2202 1694 2202 1694 2202 1694 2202 1693 2202 1693 2202 1693 2201 1692 2201 1693 2200 1694 2200 1694 2200 1694 2200 1695 2199 1696 2202 1695 2203 1695 2204 1693 2206 1693 2206 1693 2206 1691 2206 1691 2207 1690 2207 1690 2208 1689 2208 M 1712 2207 1712 2206 1711 2206 1711 2205 1711 2205 1711 2205 1709 2205 1709 2205 1709 2205 1709 2206 1708 2206 1708 2206 1708 2206 1706 2205 1706 2205 1707 2204 1708 2204 1708 2204 1709 2204 1712 2205 1713 2205 1713 2206 1713 2206 1713 2206 1713 2206 1713 2207 1712 2207 M 1698 2228 1698 2228 1698 2228 1698 2227 1699 2226 1699 2225 1701 2224 1702 2224 1703 2224 1704 2224 1704 2225 1705 2225 1707 2224 1707 2224 1708 2223 1708 2222 1708 2222 1708 2222 1709 2222 1709 2222 1709 2222 1709 2222 1709 2224 1708 2225 1707 2227 1707 2227 1707 2228 1706 2228 1704 2228 1702 2228 1702 2228 1701 2228 1700 2228 1699 2228 1699 2228 1698 2228" />
+<path id="bd" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4349 2184 4349 2184 4349 2184 4349 2186 4350 2188 4350 2189 4350 2190 4351 2191 4350 2191 4350 2191 4350 2192 4350 2196 4352 2199 4353 2200 4353 2202 4353 2202 4354 2205 4354 2206 4354 2208 4354 2209 4354 2210 4354 2211 4354 2212 4354 2212 4354 2213 4354 2213 4354 2214 4354 2217 4354 2217 4354 2220 4355 2220 4355 2221 4355 2221 4355 2222 4355 2222 4355 2222 4354 2223 4354 2223 4353 2221 4351 2220 4350 2220 4349 2220 4348 2221 4348 2222 4348 2224 4348 2225 4348 2225 4349 2226 4349 2227 4349 2227 4349 2228 4349 2228 4349 2229 4349 2230 4350 2231 4350 2231 4349 2231 4348 2229 4348 2228 4346 2226 4346 2225 4345 2224 4345 2224 4345 2223 4345 2223 4345 2223 4345 2222 4344 2221 4344 2221 4344 2220 4344 2220 4345 2219 4345 2217 4345 2217 4345 2216 4345 2216 4344 2217 4344 2216 4344 2215 4344 2215 4344 2214 4343 2215 4343 2213 4343 2212 4342 2209 4342 2209 4342 2209 4341 2208 4341 2207 4341 2207 4341 2206 4341 2205 4341 2205 4340 2205 4340 2203 4339 2203 4339 2202 4338 2200 4337 2200 4336 2198 4334 2200 4333 2201 4333 2201 4332 2202 4330 2202 4329 2202 4329 2202 4328 2202 4328 2202 4328 2202 4326 2200 4325 2199 4325 2199 4324 2198 4324 2197 4324 2196 4324 2196 4323 2195 4323 2195 4322 2194 4323 2192 4322 2190 4322 2189 4322 2188 4323 2187 4324 2188 4324 2187 4324 2186 4324 2186 4324 2187 4323 2187 4323 2187 4322 2187 4322 2186 4322 2186 4322 2186 4321 2186 4320 2186 4320 2186 4321 2186 4322 2187 4322 2188 4321 2189 4320 2189 4319 2189 4318 2188 4318 2188 4317 2188 4317 2189 4319 2190 4320 2190 4320 2190 4321 2190 4322 2191 4322 2191 4322 2192 4322 2192 4322 2193 4322 2194 4321 2194 4320 2194 4320 2194 4320 2194 4320 2196 4320 2197 4319 2199 4320 2199 4320 2200 4322 2203 4322 2204 4322 2204 4322 2205 4322 2206 4322 2206 4322 2207 4321 2208 4321 2208 4320 2208 4320 2209 4319 2210 4319 2210 4319 2209 4319 2208 4319 2207 4319 2207 4319 2208 4319 2208 4318 2210 4318 2210 4318 2211 4317 2212 4317 2213 4317 2213 4317 2214 4316 2214 4315 2214 4315 2214 4314 2214 4313 2213 4313 2212 4314 2211 4314 2210 4315 2209 4316 2209 4316 2209 4316 2208 4315 2209 4314 2210 4314 2211 4314 2211 4313 2211 4313 2211 4312 2211 4313 2209 4313 2209 4314 2209 4313 2209 4312 2211 4312 2211 4312 2212 4311 2211 4311 2211 4311 2210 4311 2209 4311 2209 4311 2208 4311 2208 4311 2207 4310 2207 4311 2205 4311 2205 4312 2205 4312 2204 4312 2204 4312 2203 4312 2204 4312 2204 4312 2204 4311 2205 4310 2206 4310 2207 4310 2207 4310 2208 4310 2208 4310 2209 4310 2209 4310 2210 4310 2211 4310 2212 4310 2212 4311 2213 4310 2214 4309 2214 4308 2215 4306 2216 4305 2216 4305 2215 4305 2214 4305 2214 4305 2213 4306 2213 4306 2210 4306 2207 4306 2206 4306 2207 4305 2208 4305 2208 4306 2209 4306 2209 4306 2209 4305 2211 4305 2211 4305 2210 4305 2210 4305 2209 4304 2208 4304 2207 4304 2207 4304 2206 4304 2208 4304 2209 4305 2209 4305 2210 4305 2210 4304 2211 4305 2212 4305 2213 4304 2215 4303 2216 4303 2216 4302 2215 4302 2215 4302 2214 4302 2214 4303 2213 4303 2213 4302 2212 4302 2212 4301 2215 4301 2216 4300 2217 4300 2217 4300 2216 4300 2216 4300 2215 4299 2215 4298 2214 4298 2213 4298 2212 4298 2211 4297 2210 4297 2210 4298 2209 4298 2209 4298 2209 4298 2208 4297 2208 4297 2207 4297 2207 4296 2206 4296 2205 4295 2197 4294 2196 4294 2195 4295 2194 4295 2193 4295 2193 4296 2192 4294 2191 4293 2192 4292 2191 4292 2191 4292 2190 4292 2190 4293 2188 4293 2187 4293 2188 4290 2185 4290 2185 4290 2183 4290 2181 4291 2181 4292 2181 4292 2180 4293 2179 4292 2178 4292 2178 4292 2177 4292 2177 4292 2176 4292 2176 4293 2176 4292 2175 4292 2175 4292 2175 4292 2174 4291 2174 4291 2174 4289 2174 4288 2174 4286 2173 4285 2172 4284 2172 4283 2171 4282 2171 4281 2168 4283 2166 4283 2166 4283 2165 4283 2165 4284 2164 4285 2165 4285 2165 4285 2165 4286 2165 4287 2164 4288 2163 4288 2162 4288 2161 4288 2160 4288 2160 4290 2160 4291 2160 4292 2160 4295 2160 4295 2161 4296 2160 4297 2159 4296 2158 4295 2158 4295 2158 4294 2157 4294 2157 4294 2156 4294 2156 4294 2156 4293 2155 4293 2155 4292 2155 4291 2155 4289 2155 4288 2154 4288 2153 4288 2153 4285 2150 4285 2150 4284 2150 4284 2150 4283 2151 4283 2151 4282 2150 4282 2149 4283 2146 4283 2145 4285 2144 4286 2144 4286 2143 4286 2143 4287 2142 4288 2142 4289 2141 4289 2141 4288 2140 4288 2140 4286 2139 4286 2140 4286 2140 4287 2138 4287 2137 4287 2138 4287 2138 4290 2140 4290 2140 4291 2141 4292 2141 4292 2142 4292 2143 4294 2143 4297 2143 4297 2143 4296 2142 4295 2142 4295 2141 4295 2140 4296 2140 4298 2141 4298 2142 4298 2144 4299 2145 4301 2146 4302 2147 4302 2147 4305 2147 4305 2147 4306 2146 4306 2146 4306 2145 4306 2145 4306 2144 4307 2144 4307 2144 4307 2145 4308 2145 4309 2146 4310 2147 4310 2149 4310 2149 4310 2150 4309 2150 4310 2152 4310 2153 4310 2154 4310 2154 4310 2155 4310 2156 4310 2157 4310 2158 4310 2159 4311 2159 4311 2158 4312 2158 4313 2159 4315 2160 4319 2161 4319 2161 4320 2161 4320 2161 4321 2160 4322 2161 4326 2161 4326 2161 4328 2161 4328 2160 4329 2160 4330 2160 4330 2160 4331 2160 4333 2160 4333 2160 4336 2161 4340 2161 4340 2161 4343 2160 4345 2160 4346 2160 4346 2160 4348 2161 4350 2162 4351 2163 4351 2163 4351 2163 4351 2164 4352 2164 4352 2165 4352 2165 4352 2165 4351 2166 4351 2166 4350 2165 4349 2165 4348 2165 4348 2166 4349 2166 4349 2166 4349 2167 4348 2167 4347 2170 4347 2170 4347 2171 4347 2171 4347 2171 4347 2172 4347 2173 4346 2173 4344 2174 4344 2174 4343 2174 4343 2175 4343 2176 4343 2177 4340 2177 4338 2178 4338 2178 4337 2178 4337 2178 4336 2178 4335 2177 4335 2177 4333 2180 4332 2181 4332 2181 4332 2182 4332 2183 4332 2183 4331 2183 4331 2184 4331 2185 4332 2187 4333 2188 4333 2189 4333 2190 4333 2191 4334 2192 4334 2192 4334 2193 4334 2194 4334 2194 4334 2194 4335 2194 4335 2194 4335 2193 4335 2192 4335 2192 4335 2191 4335 2191 4336 2191 4336 2192 4336 2193 4337 2195 4337 2195 4338 2196 4340 2195 4341 2195 4342 2194 4341 2193 4341 2192 4341 2191 4341 2191 4341 2191 4341 2190 4341 2190 4342 2189 4343 2188 4343 2188 4344 2187 4344 2186 4344 2186 4344 2185 4343 2184 4344 2184 4344 2184 4345 2185 4346 2185 4346 2184 4347 2183 4348 2184 4349 2184 M 4321 2200 4320 2199 4320 2199 4320 2199 4320 2199 4320 2197 4321 2197 4322 2197 4323 2197 4323 2197 4323 2197 4324 2198 4324 2198 4323 2198 4323 2198 4323 2198 4323 2199 4322 2199 4321 2199 4321 2199 4321 2200 4321 2200 M 4323 2211 4323 2211 4322 2211 4322 2209 4322 2209 4323 2208 4323 2208 4323 2207 4323 2207 4323 2207 4323 2206 4323 2205 4323 2204 4323 2203 4323 2203 4323 2202 4323 2202 4323 2202 4322 2202 4322 2202 4321 2201 4321 2201 4321 2201 4321 2201 4321 2200 4322 2199 4322 2199 4322 2199 4322 2199 4323 2199 4323 2199 4323 2199 4323 2199 4324 2199 4324 2199 4324 2200 4324 2200 4324 2200 4324 2201 4325 2202 4326 2203 4326 2203 4326 2203 4327 2204 4327 2204 4326 2206 4326 2207 4326 2207 4326 2209 4326 2209 4325 2210 4323 2211 M 4337 2206 4336 2206 4336 2205 4336 2205 4336 2205 4335 2204 4335 2204 4335 2203 4335 2203 4335 2203 4335 2203 4335 2201 4336 2201 4336 2201 4337 2203 4337 2203 4337 2204 4337 2204 4337 2204 4338 2205 4338 2205 4337 2205 4337 2205 4337 2205 4337 2206 4337 2206 M 4329 2210 4329 2208 4329 2208 4329 2207 4329 2206 4329 2206 4329 2205 4330 2203 4330 2203 4330 2203 4330 2203 4331 2205 4331 2206 4331 2206 4331 2207 4331 2207 4331 2208 4331 2208 4331 2208 4331 2208 4331 2209 4331 2209 4330 2209 4330 2209 4329 2210 4329 2210 4329 2210 M 4321 2211 4321 2211 4320 2211 4320 2211 4320 2211 4320 2210 4320 2210 4321 2209 4322 2209 4322 2209 4322 2209 4321 2211 4321 2211 4321 2211 4321 2211 4321 2211 M 4343 2220 4342 2219 4342 2219 4342 2219 4342 2219 4342 2219 4342 2216 4342 2216 4342 2215 4342 2215 4342 2215 4343 2215 4343 2215 4344 2216 4344 2217 4344 2217 4344 2217 4344 2218 4344 2219 4344 2219 4344 2219 4343 2219 4343 2220" />
+<path id="bz" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1465 2289 1465 2289 1465 2290 1466 2290 1466 2292 1466 2292 1465 2292 1465 2293 1465 2294 1465 2297 1464 2299 1464 2297 1463 2298 1463 2298 1463 2299 1463 2299 1461 2302 1459 2302 1458 2303 1458 2304 1457 2305 1456 2306 1455 2307 1455 2308 1455 2309 1454 2309 1453 2308 1451 2308 1450 2309 1450 2308 1450 2305 1451 2300 1451 2291 1451 2286 1451 2279 1451 2278 1451 2276 1452 2275 1452 2275 1453 2275 1454 2275 1454 2276 1456 2276 1456 2277 1457 2275 1458 2274 1458 2273 1459 2272 1460 2271 1460 2270 1461 2268 1461 2268 1462 2267 1463 2267 1464 2267 1464 2267 1465 2267 1465 2268 1464 2268 1464 2269 1466 2269 1468 2269 1468 2271 1468 2272 1468 2273 1467 2275 1467 2276 1467 2276 1466 2276 1466 2277 1466 2278 1466 2279 1466 2280 1466 2280 1465 2280 1465 2281 1465 2281 1465 2282 1465 2284 1465 2284 1465 2286 1465 2287 1465 2287 1465 2288 1465 2289 M 1471 2275 1471 2275 1471 2275 1471 2276 1470 2276 1470 2276 1470 2277 1470 2277 1470 2277 1469 2277 1471 2273 1472 2272 1472 2272 1472 2273 1471 2274 1471 2275 M 1471 2287 1471 2287 1470 2286 1470 2286 1471 2284 1472 2282 1472 2282 1473 2283 1473 2283 1473 2283 1472 2284 1472 2284 1472 2284 1472 2284 1472 2284 1471 2284 1471 2285 1471 2286 1471 2287" />
+<path id="ba" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3157 1877 3156 1877 3157 1876 3157 1875 3157 1875 3157 1875 3156 1874 3156 1874 3153 1873 3151 1871 3151 1871 3151 1870 3151 1869 3151 1869 3151 1868 3150 1868 3149 1868 3148 1868 3148 1867 3147 1867 3146 1866 3146 1866 3146 1866 3144 1864 3142 1862 3142 1862 3141 1861 3139 1859 3139 1859 3138 1859 3137 1859 3136 1858 3136 1858 3135 1857 3135 1857 3134 1857 3134 1857 3133 1857 3133 1857 3134 1855 3134 1854 3133 1852 3132 1852 3132 1851 3131 1851 3131 1850 3130 1849 3130 1848 3128 1848 3127 1847 3126 1847 3127 1845 3127 1843 3127 1843 3127 1841 3127 1841 3128 1840 3129 1840 3129 1840 3131 1840 3132 1842 3134 1843 3134 1843 3135 1844 3135 1844 3136 1844 3136 1843 3137 1842 3138 1841 3139 1840 3139 1840 3140 1840 3141 1840 3141 1840 3141 1840 3144 1841 3144 1841 3145 1840 3147 1840 3148 1841 3149 1841 3150 1841 3151 1841 3154 1842 3155 1842 3156 1842 3158 1842 3159 1842 3160 1843 3160 1843 3161 1843 3161 1842 3164 1842 3164 1842 3165 1843 3166 1842 3166 1842 3166 1842 3167 1842 3169 1842 3173 1842 3175 1844 3175 1845 3175 1845 3175 1845 3175 1845 3176 1846 3178 1846 3179 1846 3179 1846 3180 1845 3181 1845 3183 1845 3184 1846 3185 1846 3184 1847 3184 1848 3183 1848 3182 1851 3181 1851 3180 1854 3180 1854 3181 1855 3181 1855 3182 1855 3184 1856 3186 1858 3188 1859 3188 1859 3188 1859 3187 1860 3186 1860 3185 1860 3184 1860 3183 1860 3182 1860 3182 1860 3184 1862 3185 1863 3186 1863 3186 1864 3186 1864 3187 1864 3187 1865 3186 1866 3186 1867 3185 1866 3183 1867 3182 1867 3182 1867 3179 1867 3178 1868 3178 1868 3178 1868 3179 1869 3179 1869 3180 1871 3180 1872 3179 1872 3179 1872 3178 1871 3178 1871 3177 1870 3177 1870 3176 1870 3174 1872 3173 1873 3173 1874 3173 1874 3173 1875 3172 1875 3171 1875 3171 1875 3171 1876 3170 1876 3170 1878 3170 1879 3171 1880 3171 1880 3172 1881 3172 1881 3171 1882 3170 1883 3170 1883 3169 1882 3168 1882 3168 1882 3167 1882 3167 1882 3166 1881 3165 1881 3162 1879 3162 1879 3161 1879 3160 1878 3159 1877 3158 1877 3158 1877 3157 1877 3157 1877" />
+<path id="bo" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1882 2889 1880 2891 1880 2892 1880 2894 1881 2895 1881 2898 1881 2899 1879 2905 1877 2909 1877 2910 1877 2910 1876 2912 1875 2916 1875 2917 1874 2918 1874 2918 1873 2916 1872 2916 1872 2915 1872 2915 1872 2914 1872 2914 1871 2914 1867 2914 1859 2914 1858 2914 1857 2914 1854 2914 1853 2915 1852 2918 1851 2920 1850 2921 1850 2922 1849 2922 1849 2923 1849 2923 1848 2924 1848 2926 1848 2926 1848 2927 1848 2928 1847 2928 1847 2927 1847 2927 1847 2926 1847 2926 1846 2925 1846 2924 1846 2924 1846 2923 1845 2922 1844 2920 1844 2918 1844 2918 1843 2917 1842 2917 1841 2917 1837 2916 1837 2915 1834 2915 1827 2915 1826 2916 1825 2916 1824 2915 1823 2914 1822 2913 1820 2911 1818 2911 1817 2910 1817 2911 1817 2912 1816 2914 1816 2914 1816 2915 1815 2916 1814 2916 1813 2916 1812 2917 1811 2917 1810 2917 1809 2918 1809 2920 1808 2921 1807 2921 1806 2922 1805 2922 1805 2923 1805 2924 1803 2925 1802 2927 1800 2928 1797 2928 1796 2928 1792 2928 1791 2927 1791 2925 1791 2923 1791 2921 1790 2919 1790 2918 1790 2918 1790 2916 1789 2915 1789 2915 1788 2913 1787 2913 1788 2912 1787 2911 1787 2911 1787 2910 1787 2909 1787 2909 1786 2908 1786 2908 1786 2903 1785 2902 1782 2897 1782 2897 1781 2897 1781 2897 1780 2897 1780 2896 1780 2896 1780 2896 1780 2896 1780 2894 1780 2893 1781 2893 1781 2892 1781 2892 1781 2892 1780 2891 1780 2891 1779 2891 1779 2891 1778 2890 1778 2890 1777 2889 1777 2889 1777 2889 1777 2888 1777 2888 1778 2887 1777 2886 1777 2884 1776 2884 1776 2883 1778 2883 1779 2883 1780 2883 1781 2881 1780 2879 1779 2879 1778 2878 1778 2877 1779 2876 1780 2875 1780 2875 1782 2873 1781 2872 1780 2871 1780 2871 1779 2871 1779 2870 1778 2870 1777 2869 1776 2868 1775 2867 1773 2865 1774 2864 1774 2864 1773 2862 1773 2861 1772 2860 1772 2859 1773 2858 1773 2858 1772 2857 1772 2857 1772 2857 1772 2856 1772 2855 1771 2854 1771 2853 1771 2853 1771 2852 1771 2852 1771 2852 1772 2851 1772 2851 1772 2851 1772 2851 1771 2850 1768 2850 1768 2849 1768 2849 1768 2848 1768 2847 1768 2847 1767 2846 1767 2846 1765 2844 1765 2842 1765 2841 1765 2840 1764 2840 1763 2839 1762 2839 1763 2837 1763 2837 1764 2836 1765 2836 1766 2835 1767 2835 1768 2833 1770 2830 1771 2829 1772 2829 1773 2829 1773 2828 1772 2828 1772 2827 1772 2826 1773 2825 1776 2824 1776 2823 1775 2823 1773 2821 1772 2821 1772 2822 1771 2822 1770 2821 1770 2821 1766 2812 1768 2809 1769 2807 1770 2806 1770 2806 1771 2806 1771 2806 1770 2805 1770 2805 1768 2803 1767 2802 1767 2799 1767 2799 1768 2798 1769 2797 1769 2797 1769 2796 1769 2796 1771 2794 1773 2792 1773 2791 1773 2790 1773 2790 1774 2790 1774 2790 1775 2789 1775 2787 1774 2786 1774 2786 1773 2786 1773 2784 1773 2783 1772 2781 1773 2780 1773 2779 1774 2778 1774 2777 1774 2774 1773 2773 1773 2772 1774 2771 1773 2770 1773 2768 1774 2767 1775 2766 1776 2766 1777 2764 1777 2764 1778 2762 1778 2762 1778 2761 1777 2760 1777 2760 1776 2757 1775 2756 1774 2754 1774 2753 1773 2753 1773 2752 1772 2751 1772 2750 1770 2748 1769 2747 1769 2746 1766 2741 1765 2739 1764 2737 1764 2737 1764 2737 1765 2737 1766 2737 1766 2737 1769 2737 1772 2738 1775 2738 1777 2740 1778 2740 1778 2740 1779 2740 1780 2740 1780 2740 1781 2739 1782 2738 1783 2738 1784 2738 1784 2738 1785 2737 1787 2734 1787 2734 1787 2733 1788 2733 1788 2733 1789 2733 1791 2733 1791 2733 1792 2733 1792 2733 1793 2734 1794 2733 1794 2732 1795 2731 1796 2730 1796 2730 1797 2730 1798 2729 1800 2728 1800 2727 1800 2727 1801 2727 1802 2727 1804 2727 1804 2726 1805 2725 1806 2725 1806 2724 1807 2724 1809 2722 1809 2722 1810 2722 1810 2721 1811 2721 1811 2721 1811 2721 1812 2720 1813 2720 1814 2720 1815 2720 1818 2719 1820 2719 1821 2719 1823 2719 1824 2719 1825 2719 1827 2720 1828 2720 1829 2719 1829 2718 1829 2718 1830 2717 1830 2717 1831 2717 1831 2718 1832 2720 1832 2721 1831 2721 1832 2723 1832 2723 1832 2724 1832 2725 1832 2726 1832 2727 1832 2727 1831 2727 1831 2728 1831 2728 1830 2729 1830 2729 1831 2729 1830 2729 1830 2730 1830 2732 1831 2734 1832 2736 1832 2736 1832 2738 1831 2739 1831 2741 1830 2741 1831 2743 1831 2745 1832 2746 1832 2746 1833 2746 1833 2746 1834 2748 1834 2749 1834 2749 1833 2750 1834 2750 1834 2751 1835 2749 1836 2750 1836 2751 1836 2752 1837 2754 1837 2754 1837 2754 1838 2755 1839 2755 1840 2755 1840 2755 1841 2756 1841 2757 1843 2758 1845 2758 1845 2760 1846 2761 1846 2761 1847 2762 1848 2762 1849 2762 1850 2762 1852 2762 1852 2763 1854 2763 1854 2763 1855 2762 1855 2762 1856 2762 1858 2762 1861 2763 1861 2764 1862 2765 1862 2765 1864 2765 1865 2765 1865 2765 1866 2765 1867 2764 1868 2765 1868 2765 1868 2766 1869 2768 1869 2768 1870 2769 1871 2769 1872 2770 1874 2770 1874 2770 1874 2771 1878 2772 1879 2772 1879 2772 1880 2772 1881 2772 1881 2772 1883 2773 1883 2773 1883 2774 1885 2776 1885 2776 1886 2776 1887 2777 1887 2778 1887 2779 1888 2779 1889 2779 1891 2778 1891 2778 1891 2779 1892 2779 1893 2779 1897 2778 1900 2778 1901 2779 1901 2779 1904 2781 1904 2781 1905 2781 1906 2782 1907 2782 1909 2783 1911 2786 1910 2787 1910 2787 1909 2788 1909 2789 1909 2791 1910 2791 1911 2794 1912 2796 1912 2797 1912 2801 1913 2803 1913 2804 1912 2804 1911 2804 1908 2804 1910 2806 1913 2810 1914 2818 1914 2822 1915 2822 1917 2822 1924 2823 1925 2823 1933 2823 1940 2823 1942 2823 1942 2823 1942 2823 1942 2823 1943 2823 1943 2823 1943 2824 1943 2826 1943 2826 1942 2827 1942 2827 1942 2827 1941 2828 1941 2829 1941 2830 1941 2832 1941 2833 1942 2833 1942 2834 1942 2834 1942 2836 1942 2836 1942 2837 1942 2838 1942 2838 1943 2838 1943 2839 1943 2839 1944 2839 1945 2839 1947 2841 1947 2841 1947 2841 1948 2842 1949 2842 1950 2841 1951 2842 1952 2843 1953 2844 1952 2844 1952 2844 1952 2845 1953 2846 1953 2846 1953 2846 1953 2846 1953 2848 1955 2852 1956 2853 1956 2854 1956 2854 1955 2857 1952 2864 1953 2865 1953 2865 1953 2867 1952 2867 1952 2867 1951 2868 1951 2869 1949 2873 1947 2877 1947 2878 1947 2878 1951 2882 1950 2882 1947 2884 1946 2885 1946 2884 1946 2883 1947 2882 1946 2879 1945 2878 1944 2878 1940 2876 1936 2874 1931 2872 1930 2871 1926 2871 1923 2871 1917 2871 1916 2871 1916 2871 1910 2873 1908 2873 1907 2873 1904 2874 1895 2875 1890 2876 1889 2876 1888 2878 1887 2881 1886 2883 1883 2887 1882 2889" />
+<path id="mm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4408 2301 4409 2302 4409 2302 4409 2303 4408 2303 4407 2303 4407 2303 4404 2305 4404 2305 4403 2306 4403 2307 4403 2307 4403 2308 4403 2308 4402 2309 4401 2310 4400 2311 4400 2311 4399 2311 4399 2312 4397 2311 4397 2310 4397 2310 4397 2309 4397 2309 4398 2307 4398 2307 4398 2306 4398 2305 4398 2305 4398 2305 4398 2306 4398 2306 4398 2307 4398 2307 4398 2308 4397 2309 4396 2309 4396 2309 4397 2308 4397 2307 4396 2308 4396 2309 4396 2309 4396 2310 4396 2310 4395 2311 4395 2310 4394 2310 4394 2307 4394 2306 4394 2306 4394 2306 4395 2305 4395 2305 4396 2305 4395 2305 4395 2305 4394 2305 4393 2306 4393 2307 4394 2307 4394 2308 4393 2310 4393 2310 4392 2311 4390 2310 4390 2309 4390 2308 4391 2307 4390 2306 4390 2305 4390 2305 4390 2305 4391 2304 4391 2304 4392 2304 4392 2303 4391 2304 4390 2304 4390 2304 4390 2305 4390 2306 4390 2306 4390 2307 4388 2309 4388 2309 4388 2309 4387 2309 4387 2309 4386 2309 4386 2308 4387 2308 4387 2308 4387 2307 4388 2307 4389 2305 4389 2305 4389 2305 4388 2306 4388 2306 4388 2307 4386 2308 4386 2308 4385 2308 4385 2308 4386 2307 4386 2307 4386 2307 4387 2306 4387 2306 4387 2305 4387 2305 4387 2304 4387 2302 4386 2302 4385 2303 4385 2302 4385 2302 4385 2303 4385 2304 4384 2304 4383 2306 4382 2307 4380 2308 4380 2307 4380 2301 4381 2299 4382 2298 4383 2294 4383 2293 4383 2293 4384 2292 4385 2288 4385 2288 4385 2286 4385 2284 4385 2284 4385 2283 4386 2282 4386 2281 4386 2281 4385 2280 4384 2278 4384 2275 4384 2275 4384 2274 4383 2269 4382 2269 4380 2266 4380 2263 4379 2261 4378 2262 4377 2261 4377 2261 4377 2260 4377 2258 4377 2258 4377 2257 4377 2256 4377 2256 4377 2255 4377 2255 4377 2256 4377 2256 4376 2257 4376 2257 4376 2257 4375 2256 4374 2255 4375 2255 4375 2254 4376 2254 4376 2253 4376 2252 4375 2251 4374 2250 4372 2249 4371 2248 4370 2248 4370 2246 4371 2245 4371 2245 4372 2245 4372 2244 4372 2244 4370 2245 4370 2245 4369 2245 4369 2244 4369 2244 4368 2244 4368 2244 4367 2243 4367 2243 4366 2242 4365 2242 4365 2242 4363 2242 4363 2242 4363 2243 4363 2244 4364 2245 4364 2246 4364 2246 4363 2244 4363 2244 4363 2243 4362 2243 4362 2244 4363 2245 4363 2246 4362 2246 4360 2242 4360 2241 4361 2241 4362 2240 4362 2240 4362 2240 4361 2240 4361 2241 4360 2241 4360 2240 4361 2237 4362 2235 4362 2234 4361 2236 4361 2236 4361 2237 4361 2237 4361 2237 4361 2238 4359 2241 4358 2241 4357 2240 4357 2239 4358 2238 4359 2238 4358 2237 4357 2235 4356 2233 4355 2232 4355 2233 4356 2234 4356 2236 4356 2239 4356 2239 4356 2238 4355 2238 4354 2236 4352 2233 4352 2233 4351 2232 4351 2232 4351 2232 4350 2231 4349 2229 4349 2228 4349 2227 4349 2226 4348 2225 4348 2225 4348 2224 4348 2222 4348 2221 4349 2220 4350 2220 4351 2220 4353 2221 4354 2223 4354 2223 4355 2222 4355 2222 4355 2222 4355 2221 4355 2221 4355 2220 4354 2220 4354 2217 4354 2217 4354 2214 4354 2213 4354 2213 4354 2212 4354 2212 4354 2211 4354 2211 4355 2211 4356 2210 4356 2209 4357 2209 4358 2210 4358 2211 4359 2211 4359 2211 4360 2211 4360 2210 4361 2209 4361 2208 4362 2208 4362 2208 4362 2208 4363 2208 4364 2207 4364 2206 4363 2205 4363 2205 4363 2204 4363 2204 4362 2203 4362 2200 4362 2200 4362 2198 4362 2197 4363 2196 4362 2195 4363 2194 4363 2194 4364 2194 4364 2195 4364 2195 4365 2195 4365 2195 4366 2194 4367 2191 4366 2189 4367 2188 4367 2186 4367 2185 4367 2184 4367 2182 4366 2180 4366 2179 4366 2179 4366 2178 4366 2178 4367 2178 4367 2178 4367 2178 4368 2180 4368 2180 4369 2180 4370 2180 4370 2179 4370 2179 4371 2179 4373 2179 4373 2180 4373 2180 4374 2180 4374 2180 4375 2180 4377 2180 4378 2181 4379 2182 4379 2182 4380 2179 4380 2178 4381 2176 4381 2175 4382 2173 4384 2170 4384 2170 4386 2168 4386 2167 4387 2165 4388 2163 4388 2161 4388 2161 4387 2161 4387 2161 4386 2160 4386 2160 4386 2160 4386 2159 4386 2159 4386 2157 4387 2156 4387 2156 4387 2156 4388 2155 4389 2155 4389 2155 4391 2154 4392 2151 4393 2150 4393 2148 4394 2148 4394 2147 4395 2147 4395 2147 4395 2146 4394 2145 4394 2143 4393 2142 4393 2140 4395 2137 4396 2136 4396 2136 4397 2137 4399 2136 4399 2136 4399 2136 4400 2135 4400 2135 4400 2134 4401 2134 4401 2134 4402 2134 4403 2133 4405 2131 4406 2131 4406 2131 4407 2131 4407 2130 4408 2130 4408 2129 4408 2129 4409 2129 4409 2128 4410 2128 4411 2127 4411 2127 4412 2127 4415 2126 4416 2126 4418 2125 4420 2125 4421 2126 4421 2126 4421 2126 4422 2127 4422 2128 4422 2128 4423 2129 4424 2129 4424 2129 4425 2130 4426 2130 4427 2129 4425 2127 4425 2126 4424 2126 4424 2125 4423 2124 4422 2122 4423 2121 4423 2121 4424 2120 4425 2119 4426 2119 4430 2116 4430 2115 4430 2115 4429 2114 4430 2113 4430 2112 4430 2111 4431 2111 4431 2111 4432 2111 4432 2110 4432 2109 4433 2107 4436 2107 4436 2107 4436 2108 4436 2109 4437 2110 4438 2110 4438 2109 4439 2109 4441 2111 4441 2112 4442 2113 4443 2113 4443 2113 4443 2115 4443 2118 4444 2119 4444 2120 4445 2121 4445 2122 4445 2123 4446 2123 4446 2123 4447 2122 4447 2122 4447 2121 4448 2121 4449 2121 4451 2122 4451 2123 4451 2124 4451 2125 4452 2125 4452 2126 4452 2127 4451 2128 4451 2128 4452 2129 4452 2131 4452 2133 4453 2135 4453 2137 4453 2138 4452 2140 4452 2141 4452 2143 4452 2144 4452 2145 4451 2146 4451 2146 4451 2145 4451 2145 4450 2145 4449 2145 4449 2146 4450 2147 4451 2148 4452 2149 4452 2150 4450 2150 4450 2150 4449 2150 4448 2150 4448 2151 4447 2152 4446 2154 4446 2154 4445 2154 4444 2154 4443 2153 4443 2154 4443 2154 4442 2157 4442 2157 4441 2158 4439 2160 4439 2160 4438 2159 4438 2159 4438 2159 4437 2160 4437 2160 4437 2161 4436 2162 4436 2162 4436 2163 4436 2164 4435 2166 4435 2166 4434 2167 4433 2167 4433 2168 4433 2169 4433 2170 4433 2171 4433 2172 4435 2172 4436 2173 4436 2175 4436 2177 4436 2177 4436 2177 4435 2178 4435 2178 4433 2180 4433 2180 4434 2180 4434 2181 4435 2181 4435 2182 4435 2181 4437 2180 4438 2179 4439 2179 4439 2179 4441 2178 4441 2178 4443 2177 4444 2177 4447 2177 4448 2177 4449 2177 4450 2178 4454 2177 4454 2177 4455 2177 4455 2177 4455 2178 4454 2178 4454 2178 4452 2179 4452 2179 4451 2180 4451 2182 4453 2183 4454 2185 4453 2186 4454 2187 4454 2187 4454 2188 4455 2188 4455 2189 4455 2190 4455 2191 4455 2192 4458 2193 4459 2194 4460 2193 4460 2193 4462 2193 4464 2194 4465 2196 4465 2196 4464 2197 4463 2197 4462 2200 4462 2202 4462 2203 4462 2203 4462 2204 4462 2204 4462 2204 4461 2205 4459 2209 4460 2209 4462 2210 4463 2209 4463 2209 4464 2209 4466 2209 4467 2210 4467 2210 4468 2210 4468 2210 4471 2210 4472 2210 4472 2212 4472 2212 4472 2213 4471 2213 4471 2214 4472 2215 4472 2216 4474 2216 4474 2217 4474 2218 4474 2219 4475 2220 4476 2220 4477 2219 4478 2219 4478 2218 4479 2219 4480 2219 4480 2220 4481 2220 4482 2219 4484 2219 4485 2218 4485 2217 4486 2217 4490 2215 4490 2215 4491 2217 4491 2217 4491 2218 4491 2219 4490 2219 4490 2220 4488 2221 4486 2222 4486 2222 4485 2222 4485 2222 4484 2222 4483 2223 4483 2224 4483 2225 4482 2226 4482 2226 4481 2227 4481 2227 4481 2228 4481 2229 4481 2229 4481 2229 4482 2229 4482 2229 4482 2229 4482 2230 4482 2230 4481 2230 4481 2230 4480 2230 4480 2230 4479 2230 4478 2230 4477 2231 4476 2231 4476 2232 4475 2233 4475 2234 4474 2235 4474 2237 4474 2237 4474 2237 4474 2237 4473 2237 4472 2236 4472 2236 4472 2236 4470 2236 4470 2237 4470 2237 4469 2238 4469 2238 4467 2238 4466 2238 4465 2237 4464 2238 4465 2240 4465 2241 4464 2241 4464 2241 4463 2242 4462 2242 4461 2242 4461 2241 4460 2241 4459 2241 4459 2241 4458 2241 4457 2242 4457 2244 4457 2245 4457 2245 4457 2246 4456 2246 4455 2247 4455 2247 4454 2246 4451 2247 4449 2248 4448 2248 4447 2248 4446 2248 4444 2248 4444 2247 4443 2247 4443 2247 4441 2246 4441 2246 4441 2248 4441 2248 4441 2249 4440 2249 4439 2250 4438 2250 4438 2251 4437 2253 4437 2253 4438 2254 4438 2256 4438 2256 4438 2257 4437 2258 4436 2259 4435 2260 4436 2261 4436 2261 4437 2264 4437 2265 4437 2265 4437 2266 4436 2266 4435 2266 4434 2266 4433 2267 4432 2267 4431 2267 4430 2266 4430 2266 4430 2266 4430 2266 4430 2267 4431 2267 4431 2268 4431 2269 4431 2269 4432 2270 4432 2271 4433 2271 4433 2271 4433 2270 4434 2270 4434 2270 4435 2271 4434 2271 4434 2271 4435 2272 4435 2273 4436 2275 4436 2276 4436 2276 4435 2277 4437 2280 4437 2280 4438 2281 4439 2282 4440 2283 4441 2284 4442 2286 4443 2287 4444 2287 4445 2288 4445 2289 4446 2290 4447 2290 4447 2290 4448 2291 4448 2292 4449 2293 4449 2293 4448 2294 4448 2295 4449 2296 4449 2297 4451 2300 4451 2301 4451 2302 4452 2303 4453 2301 4453 2301 4454 2300 4455 2301 4455 2303 4454 2305 4453 2305 4453 2305 4451 2305 4451 2305 4450 2306 4450 2307 4449 2311 4449 2312 4449 2312 4449 2313 4449 2313 4449 2314 4449 2314 4450 2315 4450 2316 4450 2316 4450 2317 4450 2317 4449 2318 4449 2317 4448 2317 4447 2317 4447 2318 4447 2319 4444 2319 4444 2319 4444 2320 4443 2322 4444 2323 4444 2323 4444 2324 4444 2325 4444 2325 4444 2326 4445 2327 4447 2328 4447 2329 4447 2329 4448 2330 4449 2331 4449 2332 4449 2333 4450 2334 4452 2335 4453 2336 4454 2337 4455 2337 4456 2338 4456 2339 4457 2340 4458 2343 4459 2343 4459 2344 4459 2345 4459 2346 4459 2346 4460 2347 4460 2348 4460 2351 4460 2351 4459 2352 4459 2352 4458 2352 4458 2354 4460 2359 4461 2360 4463 2362 4463 2363 4463 2366 4464 2366 4464 2368 4465 2369 4465 2369 4465 2371 4466 2373 4466 2373 4467 2374 4466 2375 4465 2377 4464 2378 4462 2381 4461 2382 4460 2384 4460 2384 4460 2385 4459 2386 4459 2386 4458 2386 4458 2387 4457 2387 4455 2390 4455 2390 4454 2390 4453 2391 4453 2392 4453 2393 4453 2393 4453 2394 4453 2395 4453 2396 4452 2396 4452 2397 4452 2397 4452 2399 4451 2400 4450 2402 4449 2403 4449 2403 4448 2400 4448 2399 4449 2397 4448 2396 4448 2396 4448 2392 4448 2391 4448 2391 4449 2392 4449 2391 4450 2389 4452 2388 4452 2388 4452 2387 4452 2387 4451 2385 4452 2384 4452 2384 4452 2383 4452 2382 4452 2381 4451 2381 4452 2378 4452 2376 4454 2375 4454 2376 4454 2375 4453 2375 4452 2376 4451 2376 4451 2376 4450 2375 4450 2375 4450 2374 4451 2372 4452 2371 4452 2371 4451 2370 4451 2368 4452 2368 4452 2367 4451 2367 4450 2367 4450 2368 4449 2367 4449 2367 4449 2366 4450 2366 4451 2366 4452 2365 4451 2365 4451 2365 4450 2364 4450 2364 4450 2363 4450 2362 4451 2361 4451 2360 4450 2357 4450 2357 4450 2356 4450 2353 4450 2352 4450 2352 4449 2351 4448 2351 4448 2350 4448 2349 4447 2348 4447 2347 4447 2347 4445 2345 4445 2344 4444 2342 4444 2341 4444 2340 4444 2338 4443 2338 4443 2338 4443 2340 4443 2341 4443 2344 4443 2346 4443 2346 4442 2343 4442 2342 4442 2342 4442 2340 4442 2338 4442 2336 4441 2336 4441 2335 4440 2334 4440 2333 4438 2328 4438 2327 4438 2326 4437 2325 4437 2324 4437 2321 4437 2320 4437 2320 4437 2320 4436 2319 4436 2318 4436 2317 4437 2316 4437 2315 4436 2311 4436 2309 4436 2309 4435 2308 4435 2308 4434 2307 4433 2306 4433 2306 4434 2306 4434 2305 4435 2303 4435 2303 4434 2302 4434 2302 4434 2301 4434 2300 4434 2299 4435 2298 4436 2298 4436 2298 4436 2298 4435 2298 4434 2298 4432 2298 4431 2299 4430 2299 4430 2299 4428 2293 4428 2293 4427 2293 4427 2290 4427 2289 4425 2287 4424 2286 4424 2286 4423 2285 4423 2285 4422 2284 4422 2285 4422 2285 4422 2287 4422 2288 4422 2289 4422 2289 4422 2289 4423 2290 4423 2290 4422 2292 4422 2292 4421 2292 4421 2293 4421 2293 4422 2293 4422 2293 4421 2295 4421 2296 4421 2296 4419 2297 4418 2298 4418 2298 4416 2299 4416 2299 4415 2299 4414 2299 4413 2298 4413 2297 4412 2296 4412 2295 4412 2295 4412 2294 4413 2294 4412 2294 4411 2295 4412 2295 4412 2296 4412 2298 4412 2298 4413 2299 4413 2300 4413 2301 4411 2301 4410 2301 4408 2301 M 4357 2236 4357 2236 4357 2236 4358 2238 4358 2238 4358 2238 4358 2238 4357 2238 4357 2238 4357 2238 4357 2238 4357 2238 4357 2236 4357 2236 M 4367 2244 4367 2244 4368 2245 4368 2245 4368 2245 4368 2245 4369 2245 4369 2247 4369 2247 4368 2247 4368 2246 4367 2246 4367 2246 4367 2244 4367 2244 4367 2244 M 4376 2253 4376 2253 4375 2254 4375 2254 4374 2255 4374 2255 4373 2255 4373 2255 4371 2252 4371 2252 4371 2251 4371 2251 4371 2250 4371 2250 4372 2250 4375 2252 4376 2252 4376 2252 4376 2253 4376 2253 M 4374 2255 4375 2256 4376 2258 4376 2260 4376 2260 4375 2261 4375 2261 4374 2261 4372 2259 4371 2258 4371 2257 4370 2256 4368 2254 4368 2254 4368 2253 4368 2253 4368 2252 4369 2252 4369 2252 4370 2253 4371 2253 4371 2254 4371 2254 4372 2255 4373 2255 4373 2255 4374 2255 4374 2255 M 4371 2261 4371 2261 4371 2261 4372 2261 4372 2261 4372 2261 4373 2263 4372 2263 4372 2264 4372 2264 4372 2264 4372 2264 4371 2264 4371 2264 4371 2264 4371 2264 4369 2263 4369 2263 4368 2262 4368 2261 4368 2261 4369 2261 4369 2261 4369 2261 4371 2261 M 4433 2299 4434 2299 4434 2299 4434 2300 4434 2300 4433 2303 4433 2303 4433 2303 4433 2303 4433 2303 4432 2303 4432 2303 4432 2302 4431 2300 4432 2299 4432 2299 4433 2299 4433 2299 M 4387 2303 4387 2303 4387 2303 4387 2304 4387 2304 4387 2305 4387 2305 4386 2307 4383 2309 4383 2307 4382 2307 4383 2307 4383 2307 4383 2307 4384 2307 4384 2306 4384 2306 4384 2306 4385 2305 4386 2304 4386 2303 4386 2303 4387 2303 4387 2303 M 4445 2365 4445 2365 4446 2364 4446 2364 4446 2364 4445 2363 4445 2362 4445 2361 4445 2361 4445 2360 4446 2360 4447 2361 4447 2361 4448 2361 4448 2362 4448 2363 4448 2363 4448 2364 4447 2365 4446 2366 4446 2366 4445 2366 4445 2366 4445 2365 4445 2365 M 4440 2366 4439 2365 4439 2365 4439 2365 4440 2365 4440 2364 4442 2364 4442 2364 4442 2365 4442 2365 4440 2366 4440 2366 M 4441 2368 4441 2368 4441 2367 4441 2367 4441 2366 4442 2366 4442 2366 4442 2369 4441 2368 4441 2368 M 4449 2371 4449 2371 4449 2371 4451 2372 4451 2372 4448 2373 4448 2373 4448 2372 4447 2371 4447 2369 4447 2369 4448 2369 4449 2371 M 4447 2377 4446 2376 4446 2376 4446 2376 4446 2374 4446 2374 4447 2374 4449 2374 4449 2374 4449 2374 4449 2374 4449 2376 4449 2377 4449 2378 4448 2378 4447 2378 4447 2377 4447 2377 M 4443 2380 4443 2379 4444 2376 4445 2374 4445 2374 4445 2374 4445 2374 4445 2375 4445 2375 4445 2375 4445 2376 4445 2377 4445 2377 4445 2379 4445 2379 4444 2380 4443 2380 4443 2380 4443 2380 4443 2380 M 4445 2391 4445 2391 4445 2392 4444 2392 4444 2391 4444 2391 4444 2390 4444 2389 4443 2388 4443 2388 4442 2388 4442 2389 4442 2389 4442 2389 4443 2387 4443 2387 4444 2388 4444 2388 4444 2389 4445 2390 4445 2390 4445 2391 M 4445 2403 4443 2404 4443 2405 4442 2405 4442 2405 4442 2404 4442 2404 4443 2403 4443 2403 4444 2402 4444 2402 4445 2402 4445 2403 4445 2403" />
+<path id="bj" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2919 2440 2919 2440 2919 2441 2919 2447 2919 2449 2919 2449 2919 2452 2919 2452 2919 2454 2919 2456 2919 2458 2919 2459 2918 2459 2918 2461 2917 2461 2916 2461 2915 2461 2915 2461 2914 2461 2913 2461 2913 2461 2912 2461 2911 2462 2908 2462 2907 2462 2906 2462 2904 2463 2902 2463 2901 2463 2901 2463 2901 2463 2901 2463 2902 2463 2903 2462 2904 2462 2904 2462 2903 2460 2903 2459 2902 2458 2902 2457 2901 2458 2901 2458 2901 2457 2900 2456 2900 2455 2901 2454 2901 2452 2900 2452 2900 2452 2900 2451 2901 2451 2901 2445 2901 2444 2901 2444 2901 2442 2901 2442 2901 2442 2901 2441 2901 2439 2901 2435 2901 2429 2901 2429 2901 2428 2901 2425 2901 2423 2901 2421 2901 2418 2901 2417 2900 2416 2900 2416 2899 2415 2899 2415 2898 2414 2898 2414 2898 2414 2897 2413 2897 2413 2897 2412 2897 2411 2897 2411 2897 2411 2896 2410 2897 2409 2897 2409 2897 2404 2897 2403 2896 2402 2894 2401 2894 2401 2892 2400 2891 2399 2887 2397 2888 2394 2888 2394 2888 2394 2888 2393 2888 2393 2888 2392 2888 2392 2888 2391 2888 2391 2889 2390 2889 2389 2889 2388 2890 2387 2890 2386 2891 2386 2892 2385 2893 2383 2894 2383 2895 2383 2896 2382 2896 2381 2897 2380 2898 2380 2898 2380 2898 2379 2899 2379 2900 2379 2900 2380 2900 2380 2901 2381 2903 2380 2904 2380 2905 2380 2905 2380 2907 2380 2907 2380 2907 2380 2907 2380 2908 2380 2910 2377 2911 2376 2912 2376 2912 2375 2913 2373 2913 2372 2913 2372 2913 2369 2913 2369 2913 2368 2913 2367 2916 2366 2917 2366 2918 2366 2918 2365 2919 2365 2920 2364 2921 2365 2923 2367 2926 2369 2927 2371 2927 2371 2927 2372 2928 2372 2928 2373 2929 2373 2929 2373 2930 2373 2931 2374 2932 2374 2932 2375 2933 2376 2932 2376 2931 2378 2931 2380 2933 2383 2934 2385 2934 2385 2935 2385 2935 2386 2935 2386 2935 2386 2935 2388 2935 2389 2935 2390 2935 2390 2935 2391 2936 2391 2936 2392 2937 2393 2936 2396 2936 2396 2935 2396 2935 2396 2934 2396 2933 2396 2932 2398 2933 2400 2934 2400 2934 2400 2934 2401 2933 2404 2932 2405 2931 2405 2931 2405 2929 2406 2928 2406 2928 2407 2928 2407 2929 2408 2929 2408 2928 2409 2926 2411 2925 2412 2925 2412 2926 2413 2926 2414 2925 2416 2924 2417 2923 2418 2922 2417 2921 2417 2920 2418 2920 2418 2919 2418 2919 2422 2919 2422 2919 2423 2919 2425 2919 2426 2919 2426 2919 2426 2919 2427 2919 2427 2919 2428 2918 2429 2919 2431 2919 2431 2919 2432 2919 2433 2918 2435 2918 2436 2918 2437 2918 2437 2919 2438 2919 2438 2919 2439 2919 2440" />
+<path id="by" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3283 1733 3281 1733 3280 1733 3279 1733 3279 1733 3278 1733 3277 1733 3276 1733 3275 1733 3274 1733 3273 1734 3270 1734 3270 1734 3265 1734 3263 1735 3263 1735 3263 1736 3263 1736 3259 1738 3259 1738 3258 1738 3258 1739 3257 1738 3257 1738 3257 1738 3254 1738 3253 1738 3252 1738 3252 1739 3253 1740 3252 1739 3251 1739 3251 1738 3251 1737 3251 1737 3251 1737 3251 1736 3252 1733 3252 1733 3253 1732 3253 1731 3252 1730 3248 1729 3247 1729 3246 1728 3245 1728 3245 1727 3246 1726 3248 1724 3249 1724 3249 1724 3250 1723 3251 1723 3252 1722 3252 1722 3253 1722 3253 1722 3254 1722 3254 1722 3256 1721 3257 1721 3257 1720 3257 1720 3257 1720 3257 1720 3257 1718 3257 1717 3257 1716 3256 1713 3255 1711 3254 1709 3253 1708 3253 1707 3252 1706 3252 1706 3252 1705 3252 1705 3252 1704 3251 1703 3251 1702 3250 1701 3250 1701 3250 1701 3251 1701 3251 1701 3251 1701 3252 1701 3254 1701 3255 1701 3257 1701 3258 1701 3259 1701 3260 1701 3260 1701 3261 1701 3261 1701 3262 1701 3262 1701 3262 1701 3263 1701 3265 1702 3266 1701 3267 1701 3268 1700 3269 1700 3270 1700 3272 1700 3272 1700 3272 1699 3271 1699 3271 1698 3272 1698 3274 1697 3274 1698 3275 1698 3276 1698 3276 1698 3277 1697 3277 1697 3278 1697 3280 1696 3280 1696 3281 1696 3281 1696 3281 1695 3282 1695 3282 1695 3283 1696 3283 1697 3282 1697 3283 1698 3285 1698 3287 1698 3287 1697 3287 1696 3286 1695 3285 1695 3285 1695 3284 1695 3283 1695 3283 1695 3283 1694 3285 1692 3286 1691 3286 1691 3286 1691 3286 1690 3286 1690 3286 1689 3286 1687 3287 1686 3288 1685 3289 1685 3289 1685 3291 1685 3293 1684 3294 1684 3294 1683 3294 1682 3295 1682 3298 1682 3298 1682 3301 1681 3303 1680 3303 1680 3303 1679 3303 1679 3301 1679 3300 1679 3299 1679 3299 1679 3298 1679 3298 1679 3299 1677 3300 1674 3300 1674 3300 1673 3300 1673 3301 1673 3301 1673 3301 1673 3302 1673 3303 1673 3304 1673 3304 1672 3305 1672 3306 1671 3309 1671 3310 1671 3311 1671 3315 1671 3315 1671 3316 1671 3316 1671 3316 1671 3317 1669 3318 1669 3319 1668 3321 1667 3321 1666 3324 1665 3325 1665 3325 1666 3325 1666 3325 1666 3327 1667 3328 1667 3328 1667 3331 1666 3332 1666 3333 1667 3333 1668 3334 1668 3334 1669 3334 1669 3336 1669 3336 1668 3338 1668 3339 1668 3339 1668 3340 1668 3341 1668 3345 1669 3345 1669 3345 1670 3344 1671 3344 1672 3346 1673 3347 1673 3349 1672 3353 1671 3353 1670 3354 1670 3358 1670 3362 1671 3362 1671 3364 1673 3365 1673 3366 1674 3367 1675 3368 1674 3368 1674 3369 1674 3369 1674 3369 1675 3369 1676 3369 1678 3369 1678 3368 1678 3368 1678 3367 1679 3367 1679 3369 1681 3369 1681 3370 1682 3371 1683 3369 1685 3369 1685 3368 1685 3368 1685 3367 1687 3367 1687 3368 1688 3368 1688 3369 1688 3370 1689 3372 1690 3372 1691 3372 1691 3372 1692 3372 1692 3372 1692 3373 1693 3374 1693 3375 1695 3375 1695 3375 1696 3379 1698 3379 1698 3381 1698 3382 1698 3382 1698 3384 1699 3384 1700 3384 1700 3383 1702 3383 1702 3383 1703 3382 1703 3384 1704 3385 1703 3386 1703 3386 1703 3388 1703 3391 1704 3393 1704 3394 1705 3394 1705 3393 1706 3393 1706 3393 1707 3394 1707 3396 1708 3396 1708 3397 1708 3398 1709 3398 1709 3398 1710 3396 1711 3393 1713 3393 1713 3391 1714 3390 1714 3388 1715 3388 1715 3385 1714 3385 1714 3383 1714 3383 1713 3383 1713 3380 1712 3377 1713 3377 1713 3376 1714 3376 1714 3376 1714 3375 1715 3374 1716 3376 1717 3377 1718 3377 1718 3378 1718 3378 1718 3379 1718 3379 1719 3380 1719 3380 1720 3379 1721 3378 1721 3380 1722 3380 1724 3380 1726 3380 1727 3380 1727 3381 1728 3382 1729 3383 1729 3383 1730 3383 1730 3382 1730 3380 1730 3379 1730 3378 1730 3377 1730 3376 1730 3376 1730 3375 1730 3375 1731 3372 1731 3372 1731 3369 1731 3369 1731 3369 1731 3369 1732 3368 1732 3367 1733 3366 1734 3365 1735 3365 1735 3364 1737 3363 1738 3363 1739 3364 1740 3364 1742 3364 1743 3364 1743 3363 1743 3363 1744 3362 1743 3360 1742 3360 1742 3357 1740 3357 1740 3357 1740 3355 1740 3354 1740 3354 1740 3353 1740 3352 1741 3352 1741 3350 1741 3350 1741 3350 1740 3349 1740 3348 1740 3345 1741 3344 1742 3344 1742 3343 1742 3342 1740 3342 1739 3341 1738 3341 1738 3340 1738 3340 1738 3339 1738 3336 1739 3335 1739 3335 1740 3334 1740 3335 1741 3334 1741 3333 1741 3333 1740 3332 1740 3332 1739 3332 1739 3330 1739 3330 1739 3329 1739 3327 1739 3326 1737 3326 1737 3325 1738 3325 1738 3324 1739 3324 1739 3323 1739 3322 1739 3322 1739 3322 1739 3321 1738 3321 1738 3320 1738 3320 1738 3319 1738 3319 1739 3319 1739 3318 1740 3317 1740 3318 1739 3318 1739 3317 1738 3316 1738 3314 1738 3313 1738 3313 1738 3311 1738 3309 1737 3310 1736 3309 1736 3309 1736 3308 1736 3307 1736 3306 1736 3305 1736 3305 1736 3305 1736 3303 1736 3303 1735 3302 1735 3301 1735 3301 1735 3300 1735 3299 1735 3299 1735 3298 1735 3298 1735 3297 1735 3297 1734 3296 1734 3296 1734 3295 1734 3294 1734 3293 1734 3293 1734 3291 1733 3287 1733 3287 1733 3286 1733 3285 1733 3284 1733 3283 1733 3283 1733" />
+<path id="sb" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5390 2681 5390 2681 5389 2681 5388 2681 5387 2680 5385 2680 5382 2678 5381 2677 5380 2676 5380 2675 5378 2673 5377 2672 5377 2672 5376 2672 5375 2671 5374 2670 5374 2669 5374 2669 5374 2668 5375 2668 5377 2669 5377 2669 5378 2670 5378 2670 5379 2671 5379 2671 5380 2671 5382 2672 5383 2673 5384 2674 5385 2674 5385 2675 5385 2675 5385 2676 5386 2677 5388 2679 5390 2679 5390 2679 5391 2679 5391 2679 5391 2680 5391 2680 5391 2680 5390 2681 5390 2681 M 5363 2676 5362 2676 5361 2676 5362 2675 5362 2674 5362 2674 5363 2674 5364 2675 5364 2675 5365 2675 5364 2676 5364 2676 5364 2676 5363 2676 5363 2676 M 5428 2699 5429 2699 5429 2699 5428 2699 5428 2699 5427 2699 5426 2697 5425 2696 5424 2696 5424 2696 5423 2696 5418 2693 5415 2692 5412 2690 5412 2689 5412 2689 5409 2687 5408 2687 5408 2686 5408 2685 5408 2685 5407 2685 5407 2684 5406 2683 5409 2683 5411 2684 5413 2686 5415 2688 5416 2689 5416 2689 5418 2689 5421 2690 5423 2692 5423 2692 5428 2696 5428 2698 5428 2699 M 5407 2685 5406 2685 5405 2685 5405 2685 5404 2685 5404 2684 5404 2684 5404 2683 5405 2683 5406 2684 5406 2684 5407 2685 5407 2685 M 5378 2689 5376 2686 5375 2686 5375 2686 5375 2685 5375 2685 5375 2685 5375 2684 5375 2684 5376 2684 5376 2683 5377 2684 5379 2686 5380 2686 5380 2686 5380 2687 5379 2687 5379 2687 5379 2687 5378 2688 5378 2688 5378 2688 5378 2689 5378 2689 M 5385 2693 5385 2693 5383 2692 5383 2692 5383 2692 5382 2691 5382 2690 5382 2690 5382 2690 5382 2689 5382 2689 5383 2688 5384 2688 5384 2688 5385 2688 5385 2689 5385 2689 5386 2689 5386 2690 5386 2691 5386 2692 5386 2692 5385 2693 5385 2693 M 5376 2694 5376 2694 5375 2692 5375 2692 5375 2690 5375 2689 5376 2689 5376 2690 5376 2690 5376 2690 5376 2691 5376 2691 5376 2692 5377 2693 5376 2693 5376 2694 M 5396 2700 5395 2700 5395 2699 5395 2699 5394 2698 5394 2699 5394 2699 5393 2698 5393 2698 5392 2698 5392 2697 5392 2697 5392 2697 5392 2696 5392 2696 5392 2696 5392 2696 5392 2696 5393 2697 5393 2697 5393 2696 5392 2695 5392 2695 5391 2694 5388 2695 5388 2695 5388 2695 5387 2696 5387 2696 5386 2695 5386 2695 5386 2694 5386 2694 5386 2694 5386 2693 5388 2692 5388 2691 5389 2691 5389 2690 5390 2690 5390 2690 5391 2690 5392 2690 5392 2691 5392 2691 5392 2693 5392 2693 5393 2694 5393 2694 5394 2694 5394 2694 5394 2694 5395 2694 5397 2697 5397 2698 5397 2699 5396 2700 5396 2700 M 5450 2708 5450 2708 5450 2710 5451 2712 5452 2714 5453 2714 5453 2715 5453 2716 5453 2716 5451 2715 5451 2714 5450 2714 5450 2714 5450 2713 5450 2713 5445 2709 5445 2709 5443 2707 5443 2706 5443 2705 5443 2705 5442 2703 5442 2703 5442 2702 5441 2700 5441 2700 5441 2700 5442 2699 5442 2699 5441 2697 5440 2697 5440 2696 5440 2696 5442 2695 5443 2695 5444 2696 5444 2697 5444 2698 5445 2699 5446 2699 5446 2700 5447 2700 5447 2701 5446 2701 5446 2702 5445 2702 5446 2703 5446 2703 5446 2704 5447 2704 5448 2705 5449 2705 5449 2706 5450 2708 5450 2708 M 5425 2699 5425 2699 5425 2699 5423 2698 5423 2698 5423 2698 5423 2697 5423 2697 5424 2696 5424 2696 5425 2696 5425 2697 5426 2699 5426 2699 5425 2699 M 5389 2702 5388 2702 5388 2701 5386 2700 5386 2699 5386 2699 5386 2699 5386 2698 5387 2697 5388 2697 5388 2697 5389 2697 5389 2698 5389 2698 5389 2700 5388 2700 5388 2699 5388 2699 5388 2701 5388 2701 5388 2701 5389 2702 M 5398 2703 5398 2702 5397 2702 5397 2701 5397 2700 5397 2699 5398 2699 5398 2699 5399 2698 5399 2698 5400 2699 5401 2699 5401 2699 5400 2701 5400 2702 5399 2702 5399 2703 5398 2703 M 5393 2703 5392 2703 5392 2703 5391 2703 5391 2703 5391 2702 5390 2702 5390 2702 5390 2702 5392 2701 5392 2702 5393 2702 5393 2703 5393 2703 5393 2703 5393 2703 M 5416 2708 5416 2708 5415 2707 5415 2707 5416 2706 5417 2706 5418 2707 5417 2707 5417 2708 5417 2708 5416 2708 M 5435 2708 5434 2708 5434 2708 5433 2708 5433 2708 5432 2708 5432 2708 5432 2707 5433 2706 5434 2706 5434 2706 5435 2707 5435 2707 5435 2707 5435 2708 5435 2708 5435 2708 M 5434 2709 5434 2709 5434 2709 5434 2709 5434 2709 5435 2709 5435 2709 5435 2708 5435 2708 5435 2708 5435 2708 5435 2707 5436 2707 5436 2708 5436 2708 5437 2708 5437 2708 5437 2709 5436 2709 5436 2709 5435 2709 5435 2709 5435 2709 5435 2709 5434 2709 M 5444 2719 5444 2720 5443 2720 5441 2721 5440 2721 5438 2720 5436 2719 5436 2719 5434 2719 5434 2719 5433 2719 5432 2719 5431 2719 5428 2719 5426 2718 5424 2715 5424 2713 5424 2711 5425 2711 5425 2711 5425 2711 5426 2710 5426 2710 5427 2711 5428 2711 5428 2712 5429 2712 5429 2712 5429 2713 5429 2713 5431 2713 5433 2713 5433 2713 5436 2713 5437 2713 5440 2715 5441 2716 5441 2716 5442 2717 5443 2718 5444 2719 M 5455 2719 5455 2718 5454 2718 5454 2718 5453 2717 5453 2717 5453 2715 5453 2715 5453 2714 5453 2714 5453 2713 5452 2713 5452 2712 5452 2712 5453 2713 5454 2713 5455 2716 5455 2716 5455 2717 5456 2718 5456 2719 5456 2719 5455 2719 M 5467 2734 5467 2735 5468 2735 5469 2735 5467 2736 5464 2735 5461 2734 5459 2734 5457 2732 5455 2731 5455 2730 5454 2728 5454 2728 5453 2728 5452 2727 5452 2728 5451 2728 5451 2727 5451 2726 5452 2725 5453 2726 5453 2726 5454 2726 5455 2726 5455 2727 5458 2728 5458 2728 5458 2729 5460 2729 5463 2730 5463 2730 5464 2729 5464 2729 5465 2730 5465 2731 5467 2733 5467 2733 5467 2733 5467 2734 M 5525 2736 5524 2736 5523 2736 5523 2735 5523 2735 5523 2734 5523 2734 5525 2733 5525 2733 5527 2733 5529 2733 5529 2733 5529 2734 5528 2735 5527 2735 5526 2735 5526 2735 5526 2735 5525 2736 5525 2736 M 5439 2752 5438 2752 5437 2751 5437 2751 5437 2751 5437 2750 5437 2750 5436 2750 5435 2748 5435 2748 5434 2748 5434 2748 5434 2749 5433 2749 5431 2748 5431 2748 5431 2748 5430 2747 5430 2747 5430 2746 5431 2746 5432 2746 5437 2749 5438 2749 5439 2750 5439 2751 5439 2752 M 5540 2749 5540 2749 5539 2749 5539 2749 5538 2748 5539 2747 5539 2747 5539 2747 5539 2747 5540 2747 5540 2747 5540 2748 5541 2749 5541 2749 5541 2749 5540 2749 5540 2749 5540 2749" />
+<path id="br" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1747 2721 1747 2721 1747 2719 1747 2719 1747 2719 1748 2716 1747 2715 1748 2715 1748 2714 1749 2713 1748 2713 1748 2713 1747 2714 1744 2716 1743 2717 1743 2717 1741 2718 1741 2719 1741 2719 1739 2720 1738 2720 1738 2721 1736 2722 1735 2722 1734 2722 1731 2722 1726 2722 1725 2722 1725 2722 1724 2722 1723 2722 1722 2722 1722 2721 1723 2720 1722 2720 1722 2719 1721 2719 1721 2718 1721 2718 1721 2717 1721 2717 1720 2715 1719 2714 1719 2714 1715 2713 1713 2713 1712 2713 1711 2713 1709 2713 1706 2713 1706 2712 1707 2712 1707 2711 1709 2710 1710 2709 1710 2708 1710 2708 1710 2707 1710 2707 1710 2706 1709 2705 1708 2705 1707 2703 1707 2703 1707 2702 1707 2702 1706 2702 1706 2701 1706 2701 1705 2701 1705 2701 1704 2700 1703 2697 1701 2697 1701 2696 1700 2695 1700 2694 1700 2692 1699 2691 1698 2690 1697 2690 1697 2689 1697 2688 1697 2688 1698 2688 1698 2687 1698 2687 1697 2687 1697 2686 1696 2686 1696 2686 1695 2685 1695 2685 1694 2684 1693 2683 1693 2683 1693 2683 1693 2683 1694 2683 1694 2681 1694 2680 1697 2680 1698 2679 1698 2678 1697 2676 1696 2676 1696 2676 1697 2673 1697 2672 1698 2671 1700 2670 1703 2668 1704 2668 1704 2668 1705 2668 1706 2667 1706 2667 1706 2667 1707 2666 1707 2665 1707 2665 1707 2664 1706 2662 1706 2661 1705 2660 1705 2660 1706 2659 1706 2659 1707 2656 1708 2656 1708 2655 1709 2654 1710 2653 1710 2651 1710 2651 1710 2650 1710 2650 1710 2647 1711 2645 1711 2644 1712 2644 1713 2644 1715 2643 1717 2641 1719 2640 1719 2640 1719 2639 1719 2639 1720 2639 1720 2638 1721 2639 1721 2639 1721 2638 1723 2637 1725 2636 1727 2635 1727 2635 1729 2634 1729 2634 1731 2635 1735 2633 1736 2632 1738 2632 1740 2632 1740 2632 1742 2632 1743 2631 1743 2630 1744 2629 1744 2629 1745 2629 1747 2629 1748 2630 1749 2629 1750 2629 1750 2628 1752 2629 1752 2629 1752 2630 1752 2630 1752 2630 1753 2631 1754 2632 1757 2632 1757 2631 1758 2631 1758 2631 1758 2630 1758 2630 1759 2625 1760 2617 1763 2603 1763 2602 1763 2601 1763 2599 1765 2593 1766 2587 1767 2585 1767 2584 1767 2582 1766 2581 1766 2579 1766 2579 1766 2578 1765 2578 1765 2577 1763 2575 1763 2574 1763 2574 1764 2573 1764 2573 1763 2571 1763 2570 1762 2570 1761 2570 1761 2570 1758 2567 1757 2566 1756 2565 1756 2564 1756 2563 1756 2560 1756 2558 1756 2557 1756 2554 1756 2553 1757 2553 1758 2553 1760 2553 1761 2552 1762 2552 1766 2551 1768 2552 1768 2553 1770 2553 1771 2552 1770 2550 1771 2549 1769 2547 1769 2546 1768 2545 1767 2546 1766 2546 1763 2545 1761 2545 1759 2545 1759 2535 1759 2535 1760 2535 1762 2535 1764 2534 1766 2534 1767 2535 1767 2535 1769 2535 1771 2535 1776 2535 1786 2535 1786 2534 1786 2534 1785 2534 1785 2533 1785 2532 1785 2532 1786 2531 1786 2531 1787 2531 1787 2531 1787 2532 1788 2533 1788 2533 1788 2534 1789 2534 1789 2534 1789 2535 1790 2535 1790 2535 1791 2534 1792 2534 1793 2533 1794 2532 1794 2532 1794 2531 1796 2530 1796 2529 1797 2529 1798 2528 1799 2529 1800 2529 1800 2530 1800 2530 1801 2531 1801 2532 1802 2533 1802 2533 1803 2535 1804 2537 1804 2538 1804 2540 1804 2540 1804 2540 1803 2542 1803 2542 1804 2543 1804 2544 1804 2544 1807 2543 1807 2543 1808 2544 1815 2550 1816 2550 1816 2551 1819 2551 1821 2550 1822 2549 1822 2549 1822 2549 1823 2548 1825 2547 1826 2547 1827 2547 1828 2547 1828 2547 1828 2548 1829 2548 1829 2549 1829 2549 1828 2550 1828 2550 1828 2551 1828 2551 1828 2552 1828 2552 1828 2552 1829 2552 1830 2551 1830 2550 1830 2550 1830 2549 1831 2549 1832 2548 1832 2548 1833 2548 1833 2548 1834 2548 1834 2547 1834 2547 1834 2547 1834 2546 1834 2546 1834 2545 1835 2545 1835 2544 1837 2544 1838 2543 1840 2542 1840 2542 1841 2543 1841 2543 1842 2542 1843 2541 1844 2541 1844 2540 1844 2540 1844 2540 1846 2538 1847 2538 1849 2539 1851 2537 1852 2536 1852 2536 1852 2534 1852 2533 1852 2532 1852 2532 1853 2531 1853 2531 1854 2531 1856 2531 1857 2531 1857 2530 1859 2529 1860 2528 1861 2528 1862 2528 1863 2527 1863 2526 1863 2524 1863 2524 1859 2524 1856 2524 1856 2524 1852 2523 1852 2522 1852 2522 1853 2521 1853 2521 1853 2519 1852 2517 1851 2516 1850 2514 1850 2514 1849 2511 1849 2509 1849 2508 1849 2507 1850 2507 1850 2506 1850 2506 1850 2505 1848 2503 1847 2503 1846 2502 1846 2502 1845 2501 1843 2499 1843 2499 1842 2498 1842 2497 1842 2497 1841 2496 1841 2496 1840 2496 1840 2495 1840 2494 1840 2494 1841 2494 1841 2494 1842 2494 1842 2494 1842 2495 1843 2495 1843 2496 1843 2497 1844 2497 1845 2496 1846 2496 1846 2496 1847 2496 1847 2496 1849 2496 1849 2496 1851 2497 1851 2497 1851 2498 1852 2499 1852 2500 1852 2500 1853 2500 1853 2500 1854 2500 1854 2500 1855 2499 1858 2499 1859 2499 1859 2500 1860 2500 1860 2501 1860 2501 1861 2501 1861 2501 1862 2500 1862 2500 1862 2500 1862 2499 1863 2499 1863 2499 1863 2499 1864 2500 1865 2500 1866 2502 1869 2505 1870 2506 1870 2506 1871 2506 1872 2505 1873 2504 1873 2504 1873 2503 1873 2503 1873 2502 1873 2501 1872 2500 1872 2500 1873 2498 1873 2498 1874 2498 1875 2498 1876 2497 1878 2496 1878 2496 1880 2496 1880 2496 1881 2497 1881 2497 1882 2497 1882 2497 1883 2497 1883 2497 1884 2496 1885 2496 1885 2496 1886 2496 1887 2496 1888 2496 1888 2495 1889 2495 1890 2494 1890 2495 1891 2495 1892 2495 1892 2494 1893 2494 1893 2493 1893 2493 1893 2492 1893 2492 1896 2491 1898 2491 1900 2491 1901 2490 1901 2490 1901 2490 1902 2489 1902 2488 1903 2487 1903 2487 1903 2487 1905 2486 1906 2486 1906 2485 1907 2484 1907 2483 1907 2483 1906 2480 1906 2480 1906 2479 1905 2479 1905 2479 1906 2479 1907 2479 1908 2479 1908 2480 1912 2479 1912 2479 1913 2479 1913 2478 1915 2479 1915 2479 1915 2480 1915 2480 1916 2481 1917 2482 1917 2485 1916 2487 1916 2487 1916 2489 1915 2489 1915 2489 1914 2489 1914 2490 1915 2490 1916 2491 1917 2491 1918 2490 1920 2491 1921 2492 1922 2492 1922 2493 1921 2494 1921 2495 1921 2496 1921 2496 1923 2499 1924 2500 1922 2503 1920 2505 1919 2506 1920 2507 1920 2509 1919 2509 1919 2510 1919 2510 1918 2511 1917 2513 1917 2514 1917 2516 1917 2517 1917 2520 1917 2521 1918 2521 1918 2523 1918 2524 1918 2524 1918 2525 1919 2525 1920 2526 1921 2526 1921 2527 1921 2529 1921 2532 1921 2533 1921 2533 1923 2533 1922 2534 1922 2534 1922 2535 1923 2535 1925 2536 1925 2536 1926 2538 1929 2540 1931 2541 1933 2541 1933 2542 1934 2542 1934 2542 1934 2543 1935 2543 1935 2543 1936 2544 1937 2543 1937 2543 1937 2542 1938 2542 1939 2542 1940 2542 1941 2542 1941 2541 1941 2541 1941 2539 1942 2539 1944 2537 1944 2537 1947 2538 1948 2538 1949 2537 1949 2537 1951 2536 1952 2535 1953 2535 1954 2535 1954 2535 1954 2535 1956 2535 1956 2535 1956 2535 1957 2534 1958 2533 1958 2532 1959 2531 1960 2531 1960 2531 1961 2531 1961 2531 1962 2531 1963 2530 1963 2530 1964 2531 1964 2531 1965 2532 1967 2532 1968 2533 1969 2532 1969 2532 1971 2532 1971 2532 1971 2532 1972 2532 1973 2531 1974 2532 1975 2532 1977 2532 1979 2533 1979 2533 1980 2533 1981 2533 1981 2533 1981 2533 1982 2532 1982 2530 1980 2527 1979 2527 1979 2525 1981 2523 1981 2522 1981 2522 1981 2522 1982 2522 1982 2523 1983 2523 1985 2524 1988 2524 1995 2522 1995 2522 1997 2522 1999 2523 1999 2524 2000 2524 2000 2523 2000 2523 2001 2523 2001 2524 2001 2524 2002 2525 2002 2525 2003 2525 2003 2525 2003 2525 2004 2526 2004 2526 2004 2526 2005 2527 2007 2528 2011 2529 2014 2527 2014 2527 2014 2526 2016 2525 2016 2525 2017 2525 2017 2525 2017 2526 2020 2527 2021 2526 2023 2525 2023 2525 2023 2525 2024 2525 2025 2526 2025 2527 2025 2527 2027 2527 2027 2527 2027 2527 2028 2528 2029 2528 2029 2528 2030 2527 2030 2527 2032 2526 2034 2525 2035 2523 2035 2522 2036 2522 2036 2521 2036 2521 2036 2519 2037 2518 2038 2516 2038 2515 2039 2514 2039 2513 2039 2512 2039 2512 2040 2511 2040 2511 2041 2511 2042 2509 2043 2507 2045 2505 2045 2504 2045 2503 2046 2502 2046 2502 2047 2501 2048 2500 2048 2499 2048 2499 2048 2499 2049 2498 2049 2498 2049 2498 2050 2498 2050 2498 2051 2497 2051 2497 2052 2496 2052 2498 2053 2499 2053 2498 2053 2498 2052 2497 2052 2496 2052 2494 2052 2494 2051 2494 2051 2493 2051 2493 2052 2492 2055 2495 2056 2496 2057 2497 2057 2498 2058 2499 2058 2500 2058 2501 2059 2500 2059 2500 2059 2500 2059 2503 2059 2504 2059 2505 2059 2509 2059 2509 2060 2510 2060 2510 2060 2513 2060 2513 2061 2514 2062 2517 2063 2519 2063 2520 2063 2521 2064 2523 2066 2528 2067 2530 2068 2532 2069 2533 2069 2533 2069 2533 2070 2533 2071 2533 2073 2533 2076 2534 2076 2534 2077 2535 2078 2537 2078 2538 2078 2538 2078 2538 2078 2539 2078 2541 2077 2542 2076 2542 2076 2543 2075 2543 2075 2543 2075 2543 2076 2543 2077 2543 2078 2543 2078 2543 2078 2543 2078 2544 2078 2544 2077 2545 2077 2545 2073 2548 2071 2550 2071 2551 2070 2551 2070 2552 2069 2552 2069 2553 2069 2553 2068 2554 2067 2555 2067 2556 2067 2556 2066 2557 2064 2559 2064 2560 2064 2560 2063 2560 2063 2560 2062 2560 2061 2560 2061 2560 2061 2561 2060 2561 2060 2562 2059 2563 2059 2563 2059 2563 2059 2563 2059 2563 2058 2564 2058 2564 2057 2564 2057 2564 2057 2564 2056 2565 2056 2566 2055 2566 2055 2567 2055 2567 2055 2568 2054 2568 2054 2569 2053 2570 2053 2571 2052 2571 2051 2573 2049 2575 2049 2575 2049 2576 2049 2577 2049 2578 2049 2578 2049 2579 2047 2581 2046 2581 2046 2581 2046 2581 2045 2582 2046 2582 2046 2583 2046 2584 2044 2585 2044 2585 2043 2585 2043 2585 2042 2585 2042 2584 2041 2584 2041 2584 2037 2586 2037 2586 2035 2587 2035 2587 2034 2587 2033 2588 2033 2588 2036 2588 2040 2587 2040 2587 2041 2588 2041 2588 2041 2589 2041 2589 2040 2589 2040 2590 2041 2590 2041 2589 2042 2589 2042 2588 2042 2588 2043 2588 2044 2588 2044 2588 2045 2588 2046 2587 2047 2587 2047 2587 2050 2585 2050 2585 2051 2585 2051 2585 2053 2584 2053 2584 2056 2582 2057 2581 2058 2580 2059 2580 2059 2579 2060 2579 2061 2578 2060 2578 2060 2578 2060 2577 2062 2577 2063 2577 2063 2577 2064 2581 2064 2582 2063 2582 2063 2583 2063 2584 2063 2586 2064 2587 2065 2588 2065 2588 2065 2588 2066 2589 2066 2590 2066 2591 2064 2593 2063 2593 2062 2592 2061 2592 2059 2591 2058 2592 2056 2591 2056 2590 2056 2589 2056 2589 2055 2589 2054 2591 2053 2593 2052 2593 2052 2594 2052 2595 2052 2595 2053 2598 2053 2599 2054 2600 2054 2599 2054 2599 2053 2598 2053 2596 2053 2595 2054 2592 2055 2591 2057 2592 2058 2592 2058 2592 2059 2593 2060 2595 2061 2595 2060 2596 2060 2597 2060 2597 2060 2598 2060 2600 2060 2601 2060 2601 2061 2602 2062 2602 2062 2602 2063 2602 2063 2603 2063 2602 2062 2602 2062 2602 2061 2601 2060 2600 2060 2599 2060 2598 2061 2596 2062 2594 2063 2595 2064 2596 2064 2597 2065 2598 2065 2598 2065 2597 2064 2596 2064 2595 2063 2594 2063 2594 2064 2593 2066 2591 2067 2592 2069 2592 2070 2593 2069 2593 2069 2593 2069 2594 2070 2594 2070 2594 2071 2594 2071 2593 2072 2593 2072 2593 2076 2592 2077 2592 2078 2593 2079 2593 2082 2592 2083 2592 2084 2592 2084 2591 2084 2591 2085 2591 2085 2590 2087 2590 2088 2590 2088 2591 2088 2591 2086 2593 2086 2595 2086 2596 2085 2597 2085 2598 2084 2599 2084 2599 2085 2600 2085 2601 2085 2601 2085 2601 2085 2602 2085 2603 2085 2603 2085 2602 2085 2602 2085 2601 2086 2600 2086 2599 2087 2598 2087 2597 2088 2596 2088 2594 2089 2593 2090 2593 2090 2592 2091 2592 2092 2592 2092 2592 2093 2592 2094 2591 2095 2589 2096 2588 2097 2586 2097 2586 2098 2586 2098 2586 2098 2586 2099 2586 2100 2587 2100 2588 2100 2588 2102 2589 2102 2589 2101 2588 2101 2588 2101 2587 2102 2586 2103 2586 2105 2586 2105 2586 2104 2586 2104 2586 2103 2586 2102 2586 2101 2586 2101 2586 2101 2586 2100 2586 2100 2585 2101 2583 2101 2583 2102 2583 2102 2583 2103 2584 2104 2581 2104 2580 2103 2579 2103 2579 2103 2579 2103 2578 2104 2578 2105 2576 2107 2574 2108 2574 2108 2574 2109 2575 2109 2575 2110 2574 2111 2574 2112 2573 2112 2573 2113 2573 2113 2574 2113 2574 2114 2574 2114 2574 2115 2574 2115 2573 2115 2573 2116 2573 2116 2573 2117 2574 2118 2575 2118 2575 2118 2575 2117 2574 2117 2574 2117 2574 2117 2572 2117 2572 2117 2572 2120 2572 2121 2573 2122 2574 2123 2575 2125 2574 2125 2576 2125 2576 2125 2577 2126 2576 2126 2575 2127 2574 2127 2574 2127 2575 2127 2575 2128 2576 2128 2576 2130 2576 2131 2576 2131 2578 2131 2579 2131 2579 2131 2579 2132 2579 2133 2579 2134 2579 2136 2578 2137 2578 2137 2579 2136 2581 2136 2581 2138 2581 2138 2580 2139 2581 2139 2582 2140 2582 2140 2582 2140 2581 2140 2580 2141 2580 2142 2581 2142 2581 2142 2582 2142 2583 2144 2583 2145 2581 2145 2582 2145 2584 2146 2584 2146 2584 2146 2583 2147 2583 2147 2583 2149 2583 2150 2584 2148 2586 2149 2587 2149 2587 2149 2587 2150 2585 2151 2584 2151 2583 2151 2583 2151 2584 2151 2585 2151 2585 2151 2586 2151 2586 2150 2587 2150 2590 2151 2590 2151 2590 2152 2590 2153 2589 2152 2589 2152 2588 2152 2588 2153 2587 2154 2586 2155 2586 2156 2586 2157 2586 2159 2585 2159 2586 2159 2586 2158 2587 2158 2587 2157 2588 2157 2588 2158 2589 2158 2588 2159 2588 2159 2588 2160 2588 2159 2590 2161 2591 2161 2592 2162 2591 2163 2592 2164 2592 2164 2592 2164 2593 2164 2594 2164 2595 2163 2597 2162 2598 2162 2599 2162 2600 2162 2599 2162 2599 2164 2597 2165 2597 2165 2597 2166 2598 2166 2599 2166 2600 2166 2600 2166 2601 2166 2601 2165 2601 2164 2602 2163 2603 2163 2604 2163 2605 2162 2607 2161 2609 2161 2610 2161 2611 2162 2611 2162 2611 2160 2614 2160 2614 2160 2615 2160 2615 2162 2613 2162 2612 2163 2611 2165 2611 2165 2610 2165 2610 2165 2609 2166 2609 2166 2608 2166 2606 2166 2603 2167 2603 2168 2602 2168 2602 2169 2602 2170 2602 2170 2601 2171 2601 2171 2601 2172 2601 2172 2603 2172 2603 2170 2605 2170 2605 2169 2606 2169 2606 2168 2606 2167 2607 2167 2608 2168 2608 2168 2607 2168 2607 2169 2607 2169 2607 2169 2608 2169 2608 2169 2608 2170 2607 2172 2605 2172 2605 2173 2603 2174 2604 2175 2603 2177 2603 2179 2603 2181 2603 2181 2602 2181 2601 2181 2601 2181 2600 2183 2600 2183 2600 2184 2600 2185 2601 2186 2601 2188 2602 2188 2602 2189 2602 2189 2602 2190 2602 2191 2603 2192 2603 2193 2603 2193 2604 2194 2605 2196 2606 2197 2606 2199 2607 2199 2607 2200 2606 2200 2607 2200 2607 2200 2608 2200 2608 2201 2607 2202 2607 2203 2608 2204 2608 2205 2608 2205 2608 2205 2607 2205 2607 2205 2606 2206 2606 2207 2606 2207 2607 2207 2607 2207 2607 2209 2607 2209 2608 2209 2608 2209 2608 2209 2608 2209 2609 2210 2609 2212 2609 2212 2609 2213 2609 2214 2609 2215 2609 2216 2610 2216 2611 2216 2611 2216 2610 2216 2609 2217 2609 2222 2608 2223 2608 2226 2608 2226 2608 2226 2608 2227 2608 2228 2607 2229 2607 2231 2607 2233 2608 2236 2608 2238 2609 2239 2610 2240 2611 2241 2611 2243 2612 2244 2613 2246 2613 2249 2615 2251 2617 2252 2617 2252 2617 2253 2617 2253 2618 2254 2619 2257 2621 2258 2621 2260 2622 2260 2622 2263 2625 2263 2625 2263 2625 2264 2626 2265 2627 2265 2628 2266 2628 2266 2629 2267 2630 2268 2630 2269 2631 2271 2633 2272 2634 2273 2635 2274 2636 2275 2636 2275 2637 2276 2637 2277 2637 2279 2637 2279 2638 2279 2638 2280 2638 2280 2640 2280 2640 2281 2640 2281 2641 2282 2641 2282 2641 2283 2641 2285 2641 2286 2642 2287 2643 2287 2643 2288 2643 2289 2644 2290 2644 2291 2644 2292 2644 2293 2644 2295 2644 2295 2644 2298 2644 2299 2644 2300 2643 2300 2643 2301 2643 2302 2644 2305 2644 2306 2644 2306 2644 2308 2645 2308 2645 2309 2646 2310 2647 2311 2649 2312 2652 2313 2654 2313 2654 2314 2657 2314 2658 2314 2660 2314 2661 2315 2662 2315 2662 2316 2665 2316 2665 2316 2666 2317 2666 2317 2667 2317 2668 2317 2668 2317 2669 2317 2669 2318 2673 2318 2673 2318 2674 2318 2675 2318 2675 2318 2676 2318 2676 2318 2676 2318 2675 2319 2674 2319 2675 2319 2675 2319 2676 2319 2677 2319 2680 2319 2681 2319 2682 2319 2683 2318 2683 2319 2683 2319 2684 2319 2684 2319 2685 2318 2685 2318 2686 2318 2687 2318 2687 2318 2688 2318 2688 2319 2688 2319 2689 2319 2689 2319 2690 2318 2691 2318 2691 2318 2693 2317 2696 2315 2700 2315 2701 2314 2703 2314 2704 2314 2705 2313 2706 2313 2706 2313 2706 2312 2707 2311 2709 2311 2710 2310 2711 2310 2711 2306 2715 2305 2716 2303 2717 2302 2719 2302 2720 2301 2720 2299 2723 2298 2725 2297 2725 2296 2726 2296 2726 2295 2727 2295 2728 2294 2730 2294 2730 2293 2731 2292 2731 2291 2731 2290 2732 2289 2732 2286 2734 2285 2735 2285 2736 2284 2737 2284 2737 2284 2737 2283 2736 2284 2736 2283 2735 2283 2734 2282 2734 2282 2735 2283 2735 2283 2735 2283 2736 2283 2738 2282 2740 2281 2739 2281 2739 2281 2739 2280 2739 2280 2739 2280 2739 2280 2740 2281 2740 2281 2742 2280 2743 2280 2743 2279 2744 2279 2745 2278 2745 2278 2745 2278 2743 2279 2743 2279 2743 2279 2742 2279 2742 2279 2741 2279 2742 2278 2743 2278 2744 2277 2745 2278 2745 2277 2746 2277 2746 2277 2746 2276 2747 2277 2746 2277 2747 2277 2748 2275 2752 2275 2752 2274 2753 2274 2754 2274 2754 2273 2755 2273 2756 2273 2756 2271 2758 2270 2760 2269 2761 2269 2762 2268 2763 2267 2764 2263 2769 2262 2770 2260 2770 2260 2770 2260 2769 2260 2769 2260 2768 2260 2766 2259 2766 2258 2766 2258 2766 2258 2765 2258 2764 2257 2763 2257 2764 2256 2766 2256 2766 2256 2767 2255 2768 2254 2767 2254 2766 2254 2766 2254 2765 2254 2765 2254 2765 2254 2765 2253 2766 2254 2767 2254 2768 2255 2768 2255 2768 2256 2768 2256 2770 2255 2770 2255 2771 2254 2773 2253 2774 2253 2775 2253 2775 2253 2775 2253 2776 2253 2776 2252 2776 2251 2776 2251 2776 2251 2779 2251 2778 2252 2778 2252 2779 2252 2779 2252 2780 2252 2780 2253 2781 2252 2783 2252 2784 2252 2786 2252 2786 2252 2787 2252 2788 2251 2787 2251 2788 2251 2789 2253 2787 2253 2787 2253 2786 2252 2785 2252 2785 2253 2784 2253 2785 2253 2787 2253 2788 2252 2789 2252 2790 2252 2792 2252 2795 2251 2796 2251 2796 2251 2798 2251 2799 2251 2799 2252 2802 2252 2803 2252 2806 2253 2811 2253 2813 2254 2814 2254 2815 2254 2816 2253 2819 2252 2823 2251 2825 2251 2826 2251 2827 2251 2828 2251 2828 2250 2829 2250 2830 2250 2830 2250 2831 2250 2832 2250 2832 2250 2833 2249 2835 2249 2836 2249 2837 2249 2838 2249 2839 2249 2840 2249 2843 2249 2843 2249 2844 2250 2844 2250 2845 2250 2845 2248 2848 2247 2848 2247 2848 2246 2849 2245 2849 2245 2849 2244 2850 2242 2853 2242 2854 2242 2854 2241 2855 2241 2856 2241 2857 2240 2858 2240 2861 2240 2861 2240 2863 2240 2865 2240 2866 2241 2867 2241 2868 2241 2869 2241 2871 2241 2871 2241 2872 2241 2873 2241 2873 2240 2876 2239 2876 2238 2877 2238 2877 2237 2877 2236 2878 2236 2878 2236 2878 2234 2881 2234 2882 2233 2884 2233 2885 2232 2886 2231 2886 2231 2886 2230 2886 2230 2887 2231 2887 2232 2887 2231 2889 2231 2890 2230 2892 2229 2892 2226 2895 2226 2895 2224 2895 2224 2896 2223 2897 2223 2897 2223 2898 2223 2899 2223 2899 2222 2900 2222 2900 2221 2901 2221 2901 2221 2902 2221 2902 2221 2902 2221 2902 2221 2904 2220 2905 2220 2905 2219 2907 2220 2909 2221 2913 2221 2914 2220 2914 2220 2914 2220 2914 2217 2916 2216 2916 2216 2916 2215 2916 2215 2917 2214 2917 2212 2917 2211 2918 2211 2918 2210 2918 2209 2918 2209 2919 2208 2919 2207 2921 2205 2922 2204 2923 2204 2924 2204 2924 2204 2925 2205 2926 2204 2927 2204 2929 2202 2929 2197 2929 2195 2929 2195 2929 2194 2929 2194 2929 2193 2929 2189 2930 2187 2929 2186 2929 2186 2928 2187 2927 2187 2927 2188 2926 2188 2925 2188 2925 2187 2925 2184 2926 2184 2926 2184 2927 2184 2927 2185 2927 2186 2928 2186 2929 2185 2930 2185 2930 2184 2930 2183 2930 2182 2930 2178 2931 2174 2931 2173 2931 2173 2931 2172 2932 2172 2931 2172 2931 2172 2931 2173 2931 2174 2931 2175 2931 2176 2931 2176 2931 2177 2931 2179 2930 2176 2929 2174 2928 2172 2929 2171 2930 2171 2930 2170 2930 2169 2931 2168 2931 2167 2929 2167 2929 2166 2929 2165 2929 2165 2930 2164 2930 2163 2931 2162 2931 2161 2931 2161 2932 2161 2933 2161 2933 2162 2934 2163 2934 2164 2934 2163 2936 2163 2936 2162 2935 2161 2935 2161 2936 2161 2936 2159 2936 2159 2936 2158 2935 2157 2936 2156 2936 2156 2937 2156 2937 2155 2938 2155 2938 2152 2939 2150 2940 2149 2940 2149 2941 2150 2942 2150 2943 2150 2943 2148 2943 2148 2943 2147 2943 2146 2942 2146 2942 2143 2942 2142 2942 2142 2942 2141 2942 2139 2943 2138 2944 2137 2945 2137 2945 2138 2944 2138 2944 2138 2945 2137 2946 2136 2946 2135 2946 2135 2946 2136 2946 2136 2945 2135 2945 2134 2944 2133 2945 2134 2946 2133 2946 2133 2946 2131 2947 2127 2949 2127 2949 2126 2950 2126 2950 2125 2950 2125 2951 2125 2951 2124 2952 2121 2955 2119 2956 2118 2957 2117 2957 2116 2957 2115 2958 2113 2959 2112 2960 2111 2960 2109 2962 2108 2962 2107 2963 2108 2963 2109 2963 2110 2963 2110 2963 2110 2963 2110 2964 2109 2965 2109 2965 2109 2965 2108 2965 2108 2966 2107 2966 2107 2967 2107 2967 2106 2968 2105 2968 2105 2969 2105 2969 2104 2969 2104 2969 2105 2967 2105 2967 2106 2967 2106 2966 2105 2967 2104 2967 2103 2967 2103 2967 2102 2967 2101 2967 2101 2967 2101 2968 2101 2968 2102 2968 2101 2969 2101 2969 2099 2969 2098 2969 2097 2968 2097 2969 2097 2969 2097 2970 2098 2970 2099 2970 2099 2970 2100 2970 2102 2971 2103 2971 2102 2971 2102 2972 2101 2972 2100 2973 2100 2974 2099 2975 2096 2976 2096 2976 2098 2976 2099 2976 2099 2977 2099 2977 2099 2978 2099 2979 2099 2980 2099 2980 2099 2981 2098 2981 2098 2982 2097 2982 2097 2981 2096 2981 2096 2979 2096 2979 2096 2980 2096 2982 2098 2984 2099 2985 2098 2985 2098 2986 2098 2987 2097 2987 2097 2989 2097 2989 2097 2989 2098 2990 2098 2992 2099 2995 2099 2996 2099 2996 2100 2996 2100 2996 2100 2996 2101 2997 2100 2997 2100 2997 2098 2998 2098 3001 2099 3003 2098 3004 2098 3006 2099 3007 2099 3007 2099 3008 2098 3010 2098 3011 2098 3013 2096 3018 2096 3017 2095 3017 2096 3016 2095 3015 2094 3015 2094 3017 2095 3017 2096 3018 2095 3020 2094 3020 2093 3020 2089 3023 2089 3023 2086 3025 2085 3026 2082 3029 2082 3030 2081 3031 2081 3031 2080 3032 2080 3032 2078 3035 2077 3036 2076 3039 2075 3039 2075 3040 2074 3044 2073 3046 2073 3046 2073 3047 2072 3047 2072 3048 2071 3049 2070 3051 2070 3052 2069 3053 2066 3056 2066 3057 2066 3058 2065 3058 2064 3059 2063 3061 2062 3062 2060 3064 2059 3064 2058 3065 2057 3066 2053 3069 2051 3071 2050 3071 2050 3071 2047 3072 2046 3073 2046 3073 2045 3074 2045 3075 2043 3076 2043 3076 2043 3075 2044 3075 2044 3075 2044 3073 2044 3072 2043 3072 2043 3071 2043 3071 2044 3071 2044 3071 2045 3071 2045 3071 2045 3071 2046 3072 2046 3072 2047 3072 2049 3070 2050 3070 2050 3070 2052 3068 2053 3067 2054 3066 2054 3066 2055 3066 2055 3066 2056 3065 2056 3065 2057 3065 2057 3064 2058 3063 2058 3062 2058 3061 2058 3061 2058 3060 2058 3059 2059 3059 2060 3059 2061 3060 2061 3060 2061 3058 2061 3057 2062 3056 2062 3056 2064 3055 2064 3055 2065 3054 2065 3054 2065 3053 2066 3052 2066 3051 2065 3049 2066 3049 2067 3049 2067 3049 2067 3049 2068 3047 2068 3047 2068 3046 2068 3046 2067 3045 2066 3045 2066 3045 2066 3045 2066 3046 2066 3046 2065 3046 2064 3046 2062 3047 2062 3047 2061 3048 2061 3048 2060 3048 2060 3047 2060 3046 2059 3046 2059 3046 2058 3046 2058 3045 2057 3044 2057 3043 2057 3042 2056 3042 2055 3044 2056 3046 2057 3048 2057 3049 2056 3050 2056 3051 2056 3052 2056 3054 2056 3054 2056 3054 2055 3054 2056 3054 2056 3053 2055 3052 2055 3052 2054 3052 2054 3052 2054 3054 2053 3056 2053 3056 2053 3057 2053 3057 2053 3058 2053 3059 2052 3059 2051 3060 2051 3060 2050 3060 2050 3061 2050 3061 2046 3063 2045 3063 2045 3064 2044 3064 2044 3066 2044 3068 2043 3068 2043 3069 2042 3069 2042 3069 2041 3069 2041 3070 2041 3071 2041 3072 2042 3073 2041 3073 2040 3074 2041 3075 2042 3075 2042 3075 2043 3075 2043 3076 2042 3077 2041 3078 2040 3078 2040 3079 2038 3082 2038 3084 2037 3085 2037 3085 2037 3086 2036 3088 2036 3088 2034 3091 2034 3092 2033 3094 2030 3096 2029 3096 2026 3099 2025 3100 2025 3100 2024 3100 2024 3101 2022 3101 2022 3101 2020 3100 2020 3100 2020 3099 2020 3099 2020 3098 2020 3097 2020 3097 2020 3096 2020 3096 2020 3095 2020 3094 2020 3094 2020 3093 2020 3093 2020 3092 2020 3092 2020 3092 2020 3091 2021 3091 2021 3091 2022 3090 2024 3089 2025 3087 2026 3086 2027 3085 2026 3084 2025 3084 2024 3083 2023 3083 2022 3083 2022 3083 2020 3081 2020 3081 2020 3081 2019 3080 2018 3079 2018 3078 2018 3078 2018 3077 2017 3075 2014 3073 2014 3073 2011 3072 2011 3072 2010 3072 2008 3070 2007 3070 2006 3069 2006 3069 2005 3069 2005 3068 2005 3067 2003 3065 2001 3065 2001 3065 2000 3065 2000 3065 1999 3064 1999 3064 1998 3064 1997 3063 1997 3063 1996 3063 1995 3063 1993 3062 1993 3061 1991 3059 1991 3058 1990 3057 1988 3056 1987 3055 1986 3055 1986 3056 1986 3057 1984 3058 1983 3059 1982 3059 1982 3059 1981 3059 1980 3059 1980 3059 1980 3057 1981 3056 1981 3056 1981 3055 1981 3055 1981 3054 1979 3052 1977 3051 1976 3050 1976 3050 1974 3049 1972 3047 1972 3047 1972 3047 1971 3046 1970 3045 1968 3044 1968 3043 1967 3043 1966 3043 1963 3043 1963 3044 1962 3045 1962 3045 1962 3045 1961 3046 1961 3046 1961 3046 1960 3046 1960 3046 1959 3046 1959 3046 1957 3046 1956 3046 1956 3046 1956 3046 1956 3045 1955 3045 1955 3045 1955 3045 1956 3044 1956 3044 1957 3044 1959 3042 1959 3041 1959 3040 1959 3040 1960 3039 1960 3039 1960 3038 1961 3038 1961 3038 1962 3038 1963 3038 1963 3037 1964 3037 1966 3035 1968 3033 1969 3031 1970 3030 1970 3029 1970 3029 1971 3028 1971 3028 1971 3028 1972 3027 1972 3027 1974 3027 1974 3026 1976 3023 1976 3022 1976 3022 1978 3021 1979 3020 1980 3019 1981 3018 1982 3016 1983 3015 1983 3015 1985 3016 1985 3016 1985 3016 1986 3015 1986 3015 1985 3014 1984 3014 1984 3013 1985 3013 1985 3013 1986 3013 1986 3012 1987 3012 1987 3012 1989 3011 1990 3010 1990 3010 1991 3009 1991 3008 1994 3007 1996 3007 1996 3007 1998 3005 1998 3005 1998 3004 2000 3002 2000 3002 2000 3003 2000 3003 2002 3003 2002 3002 2004 3002 2005 3001 2007 3001 2008 3001 2009 3000 2010 2998 2011 2998 2011 2998 2011 2998 2012 2998 2012 2997 2012 2997 2014 2996 2015 2996 2015 2996 2016 2996 2017 2994 2017 2993 2017 2992 2017 2992 2017 2990 2017 2989 2017 2988 2017 2986 2017 2984 2017 2983 2018 2983 2018 2982 2018 2982 2018 2982 2018 2981 2018 2981 2017 2979 2015 2977 2015 2976 2015 2975 2015 2975 2015 2973 2014 2972 2011 2970 2010 2970 2010 2971 2008 2971 2007 2971 2006 2971 2005 2972 2005 2972 2004 2971 2003 2971 2003 2970 2003 2969 2003 2967 2004 2967 2004 2967 2004 2966 2006 2964 2006 2964 2005 2963 2005 2963 2005 2962 2006 2959 2006 2959 2007 2957 2007 2956 2007 2956 2008 2955 2007 2955 2007 2954 2007 2954 2007 2953 2008 2953 2008 2953 2008 2952 2009 2951 2008 2951 2008 2950 2008 2950 2007 2950 2007 2948 2007 2948 2008 2947 2008 2947 2009 2947 2008 2946 2006 2945 2004 2943 2003 2943 1998 2945 1998 2945 1998 2945 1996 2946 1994 2946 1994 2946 1993 2946 1991 2946 1991 2946 1990 2945 1990 2945 1990 2945 1990 2944 1990 2943 1990 2942 1989 2941 1989 2940 1989 2940 1988 2940 1988 2940 1988 2937 1989 2936 1988 2935 1988 2935 1988 2932 1987 2931 1987 2930 1986 2928 1986 2927 1986 2926 1987 2926 1987 2924 1987 2924 1986 2924 1986 2923 1985 2923 1985 2923 1985 2922 1985 2922 1985 2921 1985 2921 1985 2920 1983 2919 1981 2918 1980 2918 1979 2919 1978 2918 1977 2918 1976 2917 1975 2917 1975 2916 1975 2916 1974 2915 1973 2915 1973 2915 1972 2916 1972 2916 1972 2917 1971 2917 1970 2918 1970 2918 1969 2917 1968 2918 1968 2918 1968 2918 1967 2918 1965 2918 1962 2917 1961 2917 1961 2917 1959 2917 1959 2917 1955 2917 1954 2916 1952 2916 1952 2916 1951 2916 1950 2916 1950 2916 1949 2915 1949 2915 1949 2914 1949 2913 1950 2910 1950 2908 1950 2908 1949 2906 1950 2905 1950 2905 1951 2904 1951 2903 1952 2898 1951 2895 1951 2894 1950 2893 1950 2893 1949 2893 1949 2892 1948 2890 1948 2888 1947 2887 1946 2886 1946 2886 1946 2885 1947 2884 1950 2882 1951 2882 1947 2878 1947 2878 1947 2877 1949 2873 1951 2869 1951 2868 1952 2867 1952 2867 1953 2867 1953 2865 1953 2865 1952 2864 1955 2857 1956 2854 1956 2854 1956 2853 1955 2852 1953 2848 1953 2846 1953 2846 1953 2846 1953 2846 1952 2845 1952 2844 1952 2844 1953 2844 1952 2843 1951 2842 1950 2841 1949 2842 1948 2842 1947 2841 1947 2841 1947 2841 1945 2839 1944 2839 1943 2839 1943 2839 1943 2838 1942 2838 1942 2838 1942 2837 1942 2836 1942 2836 1942 2834 1942 2834 1942 2833 1941 2833 1941 2832 1941 2830 1941 2829 1941 2828 1942 2827 1942 2827 1942 2827 1943 2826 1943 2826 1943 2824 1943 2823 1943 2823 1942 2823 1942 2823 1942 2823 1942 2823 1940 2823 1933 2823 1925 2823 1924 2823 1917 2822 1915 2822 1914 2822 1914 2818 1913 2810 1910 2806 1908 2804 1911 2804 1912 2804 1913 2804 1913 2803 1912 2801 1912 2797 1912 2796 1911 2794 1910 2791 1909 2791 1909 2789 1909 2788 1910 2787 1910 2787 1911 2786 1909 2783 1907 2782 1906 2782 1905 2781 1904 2781 1904 2781 1901 2779 1901 2779 1900 2778 1897 2778 1893 2779 1892 2779 1891 2779 1891 2778 1891 2778 1889 2779 1888 2779 1887 2779 1887 2778 1887 2777 1886 2776 1885 2776 1885 2776 1883 2774 1883 2773 1883 2773 1881 2772 1881 2772 1880 2772 1879 2772 1879 2772 1878 2772 1874 2771 1874 2770 1874 2770 1872 2770 1871 2769 1870 2769 1869 2768 1869 2768 1868 2766 1868 2765 1868 2765 1867 2764 1866 2765 1865 2765 1865 2765 1864 2765 1862 2765 1862 2765 1861 2764 1861 2763 1858 2762 1856 2762 1855 2762 1855 2762 1854 2763 1854 2763 1852 2763 1852 2762 1850 2762 1849 2762 1848 2762 1847 2762 1846 2761 1846 2761 1845 2760 1845 2758 1843 2758 1841 2757 1841 2756 1840 2755 1840 2755 1839 2755 1838 2755 1837 2754 1837 2754 1837 2754 1836 2752 1836 2751 1836 2750 1835 2749 1834 2751 1834 2750 1833 2750 1834 2749 1834 2749 1834 2748 1833 2746 1833 2746 1832 2746 1832 2746 1831 2745 1831 2743 1830 2741 1831 2741 1831 2739 1832 2738 1832 2736 1832 2736 1831 2734 1830 2732 1830 2730 1830 2729 1831 2729 1830 2729 1830 2729 1831 2728 1831 2728 1831 2727 1832 2727 1832 2727 1832 2726 1832 2725 1832 2724 1832 2723 1832 2723 1831 2721 1832 2721 1832 2720 1831 2718 1831 2717 1830 2717 1830 2717 1829 2718 1829 2718 1829 2719 1828 2720 1827 2720 1825 2719 1824 2719 1823 2719 1821 2719 1820 2719 1818 2719 1815 2720 1814 2720 1813 2720 1812 2720 1811 2721 1811 2721 1811 2721 1810 2721 1810 2722 1809 2722 1809 2722 1807 2724 1806 2724 1806 2725 1805 2725 1804 2726 1804 2727 1802 2727 1801 2727 1800 2727 1800 2727 1800 2728 1798 2729 1797 2730 1796 2730 1796 2730 1795 2731 1794 2732 1794 2733 1793 2734 1792 2733 1792 2733 1791 2733 1791 2733 1789 2733 1788 2733 1788 2733 1787 2733 1787 2734 1787 2734 1785 2737 1784 2738 1784 2738 1783 2738 1782 2738 1781 2739 1780 2740 1780 2740 1779 2740 1778 2740 1778 2740 1777 2740 1775 2738 1772 2738 1769 2737 1766 2737 1766 2737 1765 2737 1764 2737 1764 2737 1764 2737 1762 2737 1762 2738 1761 2738 1760 2737 1758 2737 1758 2737 1757 2737 1757 2737 1756 2738 1754 2739 1754 2739 1753 2739 1752 2739 1751 2739 1751 2739 1750 2739 1750 2738 1749 2738 1749 2737 1749 2737 1748 2738 1747 2738 1747 2738 1747 2737 1747 2735 1747 2732 1747 2728 1747 2725 1747 2723 1747 2721 M 2069 2529 2068 2529 2068 2528 2068 2528 2068 2528 2068 2527 2068 2527 2069 2527 2069 2527 2070 2527 2070 2527 2070 2528 2070 2528 2070 2528 2070 2528 2069 2529 2069 2529 M 2070 2532 2070 2532 2069 2532 2068 2530 2068 2529 2068 2529 2069 2529 2070 2528 2070 2528 2071 2529 2071 2529 2072 2531 2072 2531 2072 2531 2072 2531 2071 2531 2071 2532 2070 2532 2070 2532 2070 2532 M 2076 2548 2075 2547 2075 2547 2076 2546 2076 2546 2076 2546 2077 2546 2077 2546 2077 2546 2077 2547 2077 2547 2077 2547 2076 2548 2076 2548 M 2072 2551 2072 2551 2072 2550 2072 2550 2072 2549 2073 2549 2073 2549 2073 2548 2073 2548 2074 2548 2074 2548 2075 2549 2075 2549 2075 2549 2076 2548 2076 2548 2076 2548 2076 2548 2076 2550 2076 2550 2075 2550 2075 2550 2075 2550 2074 2550 2074 2551 2072 2551 M 2072 2557 2072 2557 2072 2557 2071 2557 2071 2556 2071 2556 2071 2556 2071 2555 2071 2555 2071 2554 2072 2553 2073 2553 2075 2552 2075 2552 2076 2553 2076 2553 2076 2554 2076 2554 2074 2556 2073 2557 2072 2557 M 2069 2560 2069 2560 2068 2559 2068 2559 2068 2559 2068 2559 2068 2559 2068 2558 2069 2558 2069 2558 2069 2558 2069 2557 2069 2557 2069 2555 2069 2554 2070 2554 2070 2553 2071 2553 2071 2553 2071 2554 2071 2555 2071 2555 2071 2555 2071 2556 2071 2556 2071 2557 2071 2557 2071 2557 2071 2558 2071 2558 2071 2558 2071 2559 2070 2559 2070 2559 2070 2559 2069 2560 M 2076 2564 2076 2563 2075 2563 2075 2562 2075 2562 2074 2562 2074 2562 2074 2562 2073 2562 2073 2562 2073 2562 2072 2562 2072 2562 2072 2562 2071 2562 2071 2562 2071 2562 2071 2562 2070 2562 2070 2561 2070 2560 2070 2559 2070 2559 2072 2559 2072 2559 2073 2559 2074 2559 2074 2559 2074 2559 2074 2559 2074 2559 2075 2558 2075 2558 2076 2558 2076 2558 2077 2558 2078 2558 2079 2557 2081 2557 2081 2557 2081 2557 2081 2557 2082 2557 2082 2558 2082 2558 2082 2558 2082 2559 2082 2559 2082 2559 2082 2559 2082 2559 2081 2560 2080 2560 2079 2561 2079 2561 2079 2561 2079 2561 2079 2562 2078 2562 2078 2562 2078 2563 2078 2563 2078 2563 2077 2564 2076 2564 M 2068 2563 2068 2563 2068 2563 2067 2563 2067 2563 2067 2562 2066 2561 2066 2560 2066 2560 2066 2560 2067 2559 2067 2559 2069 2560 2069 2560 2069 2560 2069 2561 2069 2562 2069 2563 2069 2563 2069 2563 2069 2563 2068 2563 M 2081 2565 2081 2565 2079 2564 2079 2564 2079 2564 2079 2564 2080 2563 2080 2562 2081 2562 2082 2561 2083 2561 2083 2561 2084 2561 2084 2561 2085 2562 2086 2562 2086 2562 2086 2562 2086 2563 2086 2563 2086 2563 2086 2564 2086 2564 2085 2564 2085 2564 2084 2565 2083 2565 2083 2565 2082 2565 2082 2565 2082 2565 2081 2565 M 2062 2563 2062 2562 2063 2562 2063 2562 2064 2561 2064 2561 2065 2562 2065 2562 2065 2562 2065 2562 2065 2563 2063 2563 2063 2563 2063 2563 2062 2563 2062 2563 2062 2563 2061 2563 2061 2563 2062 2563 2062 2563 M 2063 2567 2062 2567 2062 2567 2062 2567 2062 2567 2060 2566 2060 2566 2060 2566 2060 2565 2060 2565 2060 2565 2061 2564 2061 2564 2061 2564 2062 2564 2063 2564 2064 2563 2064 2563 2065 2563 2065 2563 2065 2563 2066 2563 2067 2563 2067 2563 2067 2563 2066 2565 2065 2565 2065 2565 2064 2566 2064 2566 2063 2566 2063 2567 M 2094 2586 2094 2586 2093 2587 2090 2588 2086 2589 2084 2588 2083 2590 2082 2591 2081 2590 2080 2589 2080 2589 2080 2589 2080 2590 2080 2590 2080 2591 2080 2591 2079 2591 2078 2591 2078 2591 2077 2590 2076 2590 2075 2590 2075 2591 2072 2592 2070 2592 2069 2592 2067 2591 2066 2591 2066 2590 2066 2589 2066 2588 2065 2588 2065 2587 2064 2586 2064 2586 2063 2584 2064 2581 2065 2581 2065 2581 2066 2581 2066 2581 2067 2580 2067 2580 2066 2580 2065 2580 2065 2580 2064 2579 2064 2578 2064 2577 2064 2573 2064 2573 2065 2572 2065 2572 2065 2573 2065 2573 2067 2573 2067 2573 2067 2573 2067 2573 2066 2573 2066 2573 2065 2572 2065 2571 2065 2570 2065 2569 2065 2568 2066 2567 2066 2567 2067 2566 2067 2565 2068 2565 2068 2565 2069 2564 2070 2564 2071 2564 2071 2564 2074 2565 2075 2565 2079 2566 2081 2566 2082 2566 2086 2566 2086 2566 2087 2565 2087 2565 2089 2565 2090 2565 2092 2565 2095 2566 2098 2566 2102 2567 2102 2567 2103 2568 2102 2568 2102 2569 2102 2569 2101 2570 2101 2571 2101 2571 2101 2572 2101 2573 2100 2574 2100 2576 2100 2576 2100 2577 2099 2577 2099 2577 2098 2578 2098 2578 2098 2579 2098 2579 2098 2580 2096 2582 2095 2586 2095 2586 2094 2586 M 2054 2570 2054 2570 2054 2570 2054 2570 2054 2569 2054 2569 2055 2569 2056 2567 2056 2567 2056 2566 2056 2566 2057 2566 2057 2565 2057 2565 2057 2565 2059 2564 2059 2564 2059 2565 2059 2566 2058 2567 2057 2568 2056 2569 2055 2570 2055 2570 2054 2570 2054 2570 M 2063 2568 2062 2568 2062 2568 2062 2568 2064 2566 2064 2566 2064 2567 2064 2567 2064 2568 2064 2568 2064 2568 2063 2568 M 2059 2571 2058 2571 2058 2571 2058 2571 2058 2569 2060 2567 2060 2567 2061 2568 2061 2568 2061 2568 2061 2568 2060 2569 2060 2569 2060 2569 2059 2569 2059 2570 2059 2571 2059 2571 2059 2571 2059 2571 M 2061 2572 2061 2571 2062 2569 2062 2569 2063 2568 2063 2568 2064 2569 2064 2569 2064 2569 2064 2569 2064 2570 2064 2570 2064 2570 2064 2570 2064 2570 2063 2571 2061 2572 2061 2572 M 2059 2571 2059 2571 2059 2571 2059 2570 2059 2570 2059 2570 2060 2570 2061 2569 2061 2569 2062 2569 2062 2569 2062 2569 2061 2571 2060 2571 2060 2571 2059 2571 M 2046 2586 2046 2586 2045 2586 2045 2585 2046 2585 2046 2584 2046 2584 2046 2583 2046 2583 2046 2582 2046 2581 2047 2581 2047 2581 2048 2581 2049 2581 2049 2580 2050 2580 2050 2580 2050 2579 2050 2579 2050 2579 2050 2578 2050 2578 2050 2577 2050 2576 2051 2574 2052 2573 2052 2573 2052 2572 2054 2571 2056 2571 2057 2571 2057 2571 2058 2573 2058 2573 2057 2575 2057 2575 2057 2576 2057 2577 2056 2578 2056 2579 2055 2579 2055 2580 2054 2580 2054 2581 2053 2582 2053 2582 2053 2582 2053 2582 2052 2583 2050 2584 2049 2585 2048 2586 2046 2586 2046 2586 M 2058 2578 2058 2578 2058 2577 2058 2576 2059 2575 2059 2574 2059 2574 2059 2574 2059 2574 2061 2572 2062 2572 2062 2572 2063 2572 2063 2572 2063 2572 2063 2572 2063 2573 2063 2574 2063 2574 2063 2574 2062 2574 2062 2574 2062 2574 2061 2574 2061 2574 2061 2575 2060 2576 2059 2577 2058 2578 2058 2578 M 2061 2576 2061 2576 2061 2576 2061 2576 2061 2575 2062 2574 2062 2574 2062 2574 2063 2574 2063 2574 2063 2574 2063 2575 2063 2576 2062 2576 2061 2576 M 2054 2582 2054 2582 2054 2582 2054 2582 2054 2581 2055 2581 2055 2580 2056 2580 2056 2579 2056 2579 2056 2579 2057 2579 2057 2578 2057 2578 2057 2577 2057 2577 2057 2577 2057 2576 2057 2576 2057 2576 2057 2576 2058 2576 2058 2577 2058 2577 2058 2578 2058 2578 2057 2578 2057 2578 2057 2581 2056 2581 2056 2581 2056 2581 2056 2582 2055 2582 2054 2582 2054 2582 M 2061 2576 2062 2576 2061 2577 2060 2577 2060 2577 2060 2578 2060 2578 2060 2578 2060 2579 2059 2579 2058 2580 2058 2580 2057 2580 2058 2579 2058 2579 2058 2578 2059 2577 2060 2577 2060 2577 2060 2577 2060 2576 2060 2576 2061 2576 2061 2576 M 2132 2579 2132 2579 2132 2578 2132 2578 2132 2578 2132 2578 2132 2577 2133 2577 2133 2577 2133 2579 2132 2579 2132 2579 2132 2579 M 2103 2582 2102 2582 2102 2582 2101 2581 2101 2581 2102 2580 2102 2580 2103 2580 2103 2580 2103 2580 2103 2580 2103 2581 2103 2581 2103 2582 2103 2582 M 2145 2584 2145 2584 2146 2581 2146 2581 2146 2581 2147 2581 2147 2581 2147 2581 2146 2584 2145 2584 M 2156 2585 2156 2585 2156 2585 2156 2584 2156 2584 2156 2583 2157 2583 2158 2583 2158 2583 2158 2583 2158 2584 2157 2585 2157 2585 2156 2585 2156 2585 M 2038 2587 2038 2587 2037 2587 2037 2586 2037 2586 2038 2586 2041 2584 2042 2585 2042 2585 2041 2586 2040 2586 2038 2587 2038 2587 M 2041 2589 2041 2588 2041 2588 2041 2587 2042 2586 2044 2586 2044 2586 2045 2586 2045 2586 2045 2586 2045 2586 2046 2587 2046 2587 2046 2587 2045 2587 2044 2588 2044 2588 2043 2588 2043 2588 2042 2588 2042 2588 2042 2588 2041 2589 M 2160 2589 2160 2589 2160 2589 2160 2588 2160 2588 2160 2588 2161 2587 2161 2588 2162 2588 2162 2588 2162 2588 2162 2589 2161 2589 2160 2589 2160 2589 M 2093 2591 2093 2591 2092 2591 2092 2590 2092 2589 2092 2588 2093 2588 2094 2588 2094 2588 2094 2588 2094 2589 2093 2591 2093 2591 2093 2591 2093 2591 2093 2591 M 2090 2592 2090 2592 2090 2592 2090 2592 2091 2590 2091 2590 2091 2590 2092 2591 2092 2591 2092 2591 2092 2592 2092 2592 2091 2592 2090 2592 M 2063 2595 2062 2594 2062 2594 2061 2594 2061 2594 2061 2594 2060 2594 2060 2594 2059 2593 2058 2592 2058 2592 2058 2592 2059 2592 2061 2592 2061 2592 2063 2593 2063 2594 2063 2595 M 2163 2611 2163 2611 2163 2610 2163 2609 2163 2608 2163 2607 2163 2607 2163 2607 2164 2606 2164 2606 2164 2606 2165 2606 2165 2606 2165 2608 2164 2610 2164 2610 2164 2610 2164 2610 2163 2611 2163 2611 2163 2611 M 2256 2772 2255 2772 2255 2772 2255 2772 2255 2771 2256 2771 2256 2771 2256 2771 2256 2770 2257 2770 2257 2770 2257 2769 2257 2769 2257 2769 2257 2769 2257 2768 2257 2768 2258 2768 2258 2769 2259 2769 2259 2770 2259 2770 2257 2771 2256 2772 2256 2772 M 2253 2779 2252 2779 2252 2778 2253 2778 2252 2778 2251 2777 2252 2776 2253 2776 2254 2776 2254 2777 2254 2778 2254 2778 2253 2779 2253 2779 M 2167 2933 2167 2933 2166 2933 2166 2932 2169 2931 2170 2932 2171 2933 2171 2933 2169 2933 2168 2933 2168 2933 2168 2933 2167 2933 2167 2933 2167 2933 M 2152 2945 2152 2945 2151 2945 2151 2945 2150 2945 2150 2945 2150 2945 2149 2945 2149 2945 2149 2945 2149 2944 2149 2944 2149 2944 2150 2944 2150 2943 2150 2943 2150 2943 2151 2943 2151 2942 2151 2942 2151 2942 2151 2941 2151 2941 2152 2942 2152 2942 2153 2942 2153 2945 2153 2945 2153 2945 2152 2945 M 2099 2985 2098 2984 2097 2983 2100 2980 2100 2981 2100 2981 2101 2981 2101 2982 2100 2982 2100 2982 2100 2983 2100 2983 2099 2984 2099 2985 M 2099 3007 2099 3007 2099 3006 2100 3005 2100 3004 2100 3003 2100 3002 2100 3002 2100 3002 2100 3001 2100 3001 2102 3000 2102 3000 2102 3001 2102 3003 2102 3003 2101 3004 2101 3004 2100 3005 2100 3005 2100 3006 2100 3006 2101 3006 2101 3006 2101 3006 2100 3007 2100 3007 2099 3007" />
+<path id="bt" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4346 2133 4345 2133 4345 2134 4344 2134 4342 2133 4340 2134 4340 2134 4337 2134 4337 2134 4336 2133 4335 2133 4335 2134 4335 2134 4334 2134 4334 2135 4333 2135 4333 2135 4333 2135 4332 2134 4330 2134 4329 2135 4328 2135 4328 2135 4327 2135 4327 2135 4324 2135 4324 2135 4323 2135 4323 2135 4322 2134 4321 2134 4320 2134 4319 2133 4319 2133 4318 2133 4316 2134 4316 2134 4315 2134 4315 2135 4315 2135 4314 2135 4314 2135 4310 2136 4309 2136 4309 2136 4309 2136 4307 2136 4306 2136 4307 2135 4307 2135 4306 2135 4306 2134 4305 2134 4304 2134 4302 2133 4302 2133 4301 2134 4301 2134 4300 2134 4300 2134 4299 2134 4299 2134 4298 2134 4298 2134 4298 2133 4297 2132 4296 2132 4295 2132 4294 2130 4294 2130 4294 2129 4293 2129 4293 2129 4293 2129 4293 2128 4294 2127 4294 2127 4295 2127 4295 2127 4295 2126 4295 2126 4295 2126 4295 2125 4296 2125 4296 2124 4296 2124 4296 2123 4297 2123 4297 2123 4298 2123 4298 2122 4299 2122 4299 2121 4299 2120 4299 2120 4300 2119 4300 2119 4300 2118 4301 2118 4302 2117 4303 2117 4303 2116 4303 2116 4304 2115 4304 2115 4304 2115 4304 2114 4306 2113 4307 2113 4308 2113 4308 2112 4308 2112 4309 2112 4310 2111 4310 2111 4312 2110 4313 2110 4315 2110 4316 2111 4316 2111 4317 2111 4318 2111 4318 2111 4319 2111 4319 2112 4319 2113 4318 2113 4318 2113 4318 2114 4319 2114 4320 2114 4321 2114 4321 2114 4321 2114 4323 2114 4323 2114 4325 2114 4326 2115 4326 2114 4327 2115 4328 2115 4328 2115 4328 2115 4329 2116 4330 2116 4330 2116 4331 2116 4331 2115 4331 2115 4332 2114 4333 2114 4334 2114 4334 2115 4335 2115 4336 2115 4336 2115 4336 2115 4337 2115 4338 2116 4339 2116 4339 2116 4339 2116 4339 2117 4339 2117 4339 2118 4339 2119 4339 2119 4339 2119 4339 2119 4339 2120 4339 2120 4338 2120 4338 2121 4338 2121 4338 2122 4339 2123 4339 2123 4341 2124 4342 2124 4344 2124 4344 2124 4346 2125 4346 2126 4346 2127 4345 2128 4345 2129 4345 2130 4345 2130 4345 2130 4346 2131 4346 2131 4346 2132 4346 2132 4346 2133 4346 2133 4346 2133" />
+<path id="bg" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3322 1892 3322 1892 3321 1892 3320 1892 3320 1892 3318 1892 3316 1892 3316 1893 3315 1893 3313 1892 3313 1892 3313 1892 3312 1891 3312 1891 3311 1890 3311 1890 3310 1890 3307 1890 3307 1890 3306 1892 3305 1892 3300 1892 3299 1893 3299 1893 3299 1894 3299 1894 3299 1894 3298 1894 3297 1894 3296 1895 3296 1895 3296 1896 3296 1896 3296 1896 3295 1896 3295 1896 3294 1896 3293 1896 3292 1896 3292 1896 3291 1897 3291 1897 3292 1898 3292 1898 3293 1899 3293 1901 3293 1902 3290 1903 3289 1903 3288 1903 3287 1902 3285 1903 3283 1903 3282 1903 3280 1904 3279 1904 3278 1904 3277 1903 3277 1903 3277 1903 3275 1902 3275 1902 3273 1901 3271 1901 3271 1902 3271 1902 3271 1902 3268 1901 3267 1900 3266 1899 3263 1899 3262 1899 3262 1899 3262 1899 3261 1899 3260 1899 3259 1899 3259 1900 3258 1901 3257 1900 3255 1901 3254 1901 3252 1902 3252 1902 3251 1901 3249 1901 3247 1901 3246 1902 3246 1902 3246 1902 3245 1902 3244 1903 3244 1903 3242 1902 3241 1902 3242 1902 3242 1902 3242 1900 3242 1898 3242 1897 3242 1897 3243 1897 3243 1896 3243 1895 3242 1895 3241 1895 3241 1894 3240 1893 3240 1891 3237 1891 3236 1890 3235 1889 3233 1887 3232 1886 3233 1886 3234 1886 3235 1885 3235 1885 3235 1884 3235 1883 3235 1883 3234 1883 3234 1882 3233 1879 3235 1878 3236 1877 3236 1877 3237 1878 3238 1877 3242 1874 3242 1874 3242 1873 3241 1872 3241 1872 3240 1871 3240 1870 3239 1870 3238 1869 3237 1869 3236 1869 3235 1868 3233 1864 3232 1862 3233 1860 3235 1859 3236 1858 3236 1857 3237 1856 3237 1856 3237 1856 3237 1856 3241 1858 3242 1858 3242 1858 3243 1858 3243 1859 3243 1859 3242 1860 3242 1860 3241 1860 3240 1860 3240 1861 3240 1862 3240 1862 3241 1862 3242 1863 3243 1863 3245 1863 3245 1863 3246 1862 3246 1862 3247 1862 3247 1862 3249 1862 3249 1862 3251 1862 3251 1863 3251 1863 3252 1863 3252 1863 3255 1863 3258 1864 3259 1864 3260 1865 3261 1865 3261 1865 3262 1865 3262 1865 3263 1865 3263 1865 3263 1865 3264 1865 3265 1864 3265 1864 3266 1864 3266 1864 3267 1864 3267 1864 3268 1864 3269 1864 3270 1864 3271 1864 3272 1864 3275 1864 3278 1865 3279 1865 3279 1865 3280 1866 3280 1866 3281 1866 3282 1865 3283 1865 3284 1865 3285 1865 3286 1865 3287 1864 3287 1864 3288 1863 3289 1862 3292 1861 3292 1860 3292 1860 3295 1859 3296 1859 3297 1859 3297 1859 3298 1859 3301 1859 3303 1858 3304 1858 3304 1858 3305 1858 3307 1857 3308 1857 3309 1858 3309 1858 3310 1858 3310 1858 3311 1858 3311 1858 3311 1858 3313 1859 3314 1859 3316 1859 3317 1859 3317 1859 3317 1860 3318 1860 3318 1860 3319 1860 3320 1860 3320 1860 3321 1860 3321 1860 3322 1861 3322 1862 3323 1862 3324 1863 3325 1863 3326 1863 3326 1863 3329 1864 3330 1864 3332 1864 3331 1864 3331 1865 3331 1866 3332 1867 3332 1867 3332 1868 3331 1868 3331 1869 3331 1869 3330 1869 3329 1870 3329 1869 3329 1869 3328 1869 3328 1869 3327 1869 3325 1869 3324 1869 3324 1870 3323 1871 3323 1871 3322 1872 3321 1873 3320 1875 3320 1875 3321 1877 3321 1877 3321 1878 3320 1878 3321 1879 3321 1880 3319 1880 3319 1880 3318 1880 3316 1882 3314 1883 3314 1883 3313 1884 3314 1884 3314 1885 3315 1884 3316 1885 3317 1885 3317 1885 3317 1886 3318 1888 3319 1888 3320 1889 3321 1890 3321 1890 3322 1891 3322 1891 3323 1892 3322 1892" />
+<path id="bv" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2929 3432 2929 3432 2928 3432 2928 3432 2929 3432 2929 3431 2929 3431 2930 3431 2930 3431 2930 3431 2931 3431 2931 3432 2931 3432 2930 3432 2930 3432 2930 3432 2929 3432 2929 3432 2929 3432" />
+<path id="bn" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4697 2489 4697 2489 4698 2489 4698 2489 4699 2489 4699 2489 4699 2489 4700 2489 4701 2489 4704 2488 4704 2487 4705 2487 4705 2487 4705 2487 4705 2487 4705 2486 4706 2486 4706 2485 4706 2485 4707 2485 4707 2485 4708 2484 4710 2483 4711 2483 4711 2482 4711 2482 4712 2482 4712 2482 4713 2482 4713 2482 4713 2482 4713 2482 4713 2482 4712 2483 4712 2484 4712 2484 4712 2484 4712 2485 4711 2485 4711 2485 4711 2486 4710 2486 4710 2486 4710 2486 4710 2486 4709 2486 4708 2487 4708 2487 4708 2487 4708 2487 4708 2487 4709 2489 4709 2491 4709 2491 4709 2491 4709 2492 4710 2492 4710 2493 4709 2496 4709 2497 4707 2498 4707 2498 4706 2498 4706 2498 4706 2498 4706 2498 4706 2498 4703 2495 4702 2495 4701 2493 4701 2493 4701 2492 4700 2491 4700 2490 4700 2490 4699 2490 4699 2489 4698 2489 4698 2489 4697 2489 M 4714 2484 4715 2485 4715 2486 4716 2488 4716 2489 4716 2489 4716 2489 4716 2489 4716 2490 4716 2490 4716 2491 4716 2492 4716 2492 4717 2492 4717 2492 4717 2493 4717 2493 4718 2493 4718 2493 4717 2494 4717 2494 4717 2494 4714 2493 4713 2493 4713 2492 4713 2492 4712 2488 4712 2488 4712 2487 4712 2487 4712 2486 4712 2486 4713 2486 4713 2486 4714 2485 4714 2485 4714 2484" />
+<path id="bi" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3368 2610 3368 2610 3367 2612 3368 2613 3367 2615 3367 2615 3366 2615 3366 2615 3365 2616 3364 2616 3364 2616 3364 2616 3365 2616 3365 2617 3365 2617 3364 2618 3364 2618 3363 2618 3362 2618 3361 2619 3361 2621 3360 2622 3361 2623 3361 2623 3360 2623 3360 2623 3359 2623 3358 2625 3358 2626 3357 2628 3355 2631 3353 2632 3350 2633 3349 2634 3345 2634 3345 2634 3345 2632 3345 2631 3344 2630 3344 2630 3344 2629 3344 2629 3344 2627 3344 2627 3343 2626 3343 2626 3343 2626 3342 2626 3342 2625 3342 2625 3342 2623 3342 2622 3342 2622 3342 2622 3342 2621 3342 2620 3342 2618 3342 2618 3342 2617 3342 2617 3342 2616 3342 2615 3342 2615 3342 2615 3342 2614 3342 2613 3342 2612 3342 2611 3342 2611 3341 2611 3341 2610 3338 2607 3338 2607 3338 2607 3339 2606 3339 2606 3339 2606 3339 2605 3339 2604 3340 2604 3340 2604 3343 2605 3343 2605 3343 2605 3344 2606 3344 2606 3344 2607 3344 2608 3344 2608 3345 2607 3346 2607 3347 2608 3347 2607 3348 2607 3348 2607 3348 2607 3349 2607 3350 2607 3351 2607 3352 2607 3352 2606 3353 2606 3353 2605 3353 2605 3353 2603 3353 2600 3353 2600 3353 2599 3354 2600 3356 2601 3356 2601 3357 2601 3359 2600 3360 2600 3360 2599 3361 2600 3362 2600 3362 2601 3363 2601 3363 2601 3363 2602 3362 2604 3361 2608 3362 2610 3362 2610 3363 2609 3364 2609 3365 2610 3365 2610 3366 2610 3368 2610" />
+<path id="ca" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1526 1328 1526 1328 1526 1328 1525 1327 1524 1327 1524 1326 1524 1326 1525 1326 1525 1326 1525 1326 1526 1326 1526 1326 1527 1327 1528 1327 1529 1326 1531 1326 1532 1326 1533 1326 1534 1326 1534 1326 1535 1327 1537 1327 1541 1327 1541 1327 1542 1327 1542 1326 1540 1326 1539 1326 1538 1326 1537 1326 1536 1325 1537 1325 1537 1325 1538 1325 1539 1325 1540 1325 1542 1325 1543 1325 1544 1324 1546 1323 1549 1322 1551 1321 1555 1319 1555 1319 1557 1318 1557 1317 1556 1317 1556 1316 1557 1316 1557 1316 1558 1316 1559 1316 1559 1316 1560 1316 1557 1315 1557 1316 1555 1316 1555 1316 1554 1316 1553 1317 1553 1317 1554 1318 1553 1318 1552 1318 1550 1319 1547 1320 1547 1321 1546 1321 1543 1323 1542 1323 1541 1323 1539 1324 1538 1324 1535 1325 1535 1325 1535 1325 1531 1325 1530 1324 1530 1324 1527 1324 1527 1324 1526 1324 1525 1324 1524 1324 1524 1324 1521 1324 1520 1324 1519 1324 1520 1323 1520 1323 1521 1323 1522 1323 1523 1323 1523 1323 1525 1322 1526 1321 1526 1321 1526 1321 1525 1321 1525 1322 1525 1322 1522 1322 1519 1323 1518 1323 1518 1323 1515 1322 1512 1322 1512 1321 1514 1320 1516 1320 1517 1319 1515 1320 1513 1320 1512 1320 1511 1320 1511 1320 1511 1319 1512 1319 1512 1319 1513 1319 1514 1319 1514 1319 1519 1318 1520 1318 1522 1318 1523 1318 1524 1318 1525 1318 1526 1318 1527 1318 1528 1319 1528 1318 1527 1318 1527 1318 1524 1318 1523 1318 1523 1318 1520 1318 1520 1318 1516 1318 1515 1318 1514 1318 1513 1318 1513 1318 1512 1318 1511 1319 1511 1319 1510 1319 1509 1319 1507 1318 1510 1317 1513 1316 1516 1316 1517 1316 1517 1316 1518 1316 1519 1316 1520 1316 1521 1316 1521 1316 1522 1316 1522 1316 1522 1316 1523 1316 1524 1316 1525 1316 1525 1316 1528 1316 1528 1316 1529 1315 1528 1315 1527 1315 1525 1315 1524 1315 1523 1316 1523 1316 1522 1316 1521 1316 1521 1316 1520 1316 1519 1316 1517 1315 1516 1315 1517 1314 1519 1314 1520 1314 1521 1314 1521 1314 1522 1314 1522 1314 1523 1314 1523 1313 1525 1314 1526 1314 1528 1314 1529 1314 1530 1314 1530 1314 1531 1314 1531 1314 1526 1313 1526 1313 1525 1313 1522 1313 1522 1313 1521 1313 1519 1314 1519 1314 1518 1314 1518 1313 1518 1313 1520 1312 1520 1312 1521 1311 1522 1311 1523 1311 1523 1311 1524 1311 1524 1311 1524 1311 1523 1311 1523 1311 1522 1311 1522 1311 1521 1311 1520 1311 1519 1311 1521 1309 1522 1308 1522 1308 1523 1307 1523 1307 1520 1308 1518 1310 1518 1311 1517 1312 1514 1313 1511 1315 1510 1315 1510 1315 1509 1315 1508 1315 1506 1315 1505 1315 1503 1315 1501 1316 1499 1316 1499 1316 1499 1316 1498 1316 1497 1316 1497 1315 1498 1314 1499 1314 1500 1314 1502 1313 1502 1313 1504 1311 1504 1311 1504 1311 1504 1311 1503 1311 1500 1312 1500 1313 1497 1314 1497 1314 1496 1314 1494 1313 1494 1313 1493 1313 1493 1314 1492 1314 1490 1315 1489 1315 1484 1315 1484 1315 1482 1315 1478 1315 1477 1315 1477 1314 1478 1314 1479 1314 1479 1314 1480 1314 1480 1314 1481 1314 1483 1314 1484 1313 1481 1313 1481 1313 1480 1313 1479 1313 1479 1313 1478 1313 1477 1313 1477 1313 1478 1312 1477 1312 1477 1310 1477 1310 1478 1310 1481 1308 1483 1308 1485 1308 1487 1308 1488 1308 1487 1307 1486 1307 1485 1308 1484 1308 1484 1308 1483 1307 1486 1305 1488 1305 1491 1304 1492 1304 1495 1304 1499 1304 1500 1304 1501 1304 1507 1303 1508 1303 1508 1303 1512 1302 1512 1302 1513 1302 1513 1302 1516 1302 1516 1302 1517 1302 1517 1302 1520 1302 1521 1303 1521 1303 1522 1303 1522 1303 1524 1303 1527 1303 1530 1303 1531 1303 1536 1303 1537 1303 1538 1303 1539 1304 1539 1304 1540 1304 1540 1304 1541 1304 1541 1304 1542 1304 1542 1304 1543 1304 1544 1304 1544 1304 1545 1305 1546 1305 1548 1305 1549 1305 1550 1306 1551 1306 1552 1306 1552 1306 1554 1306 1556 1307 1557 1307 1559 1307 1559 1308 1560 1308 1560 1308 1561 1307 1561 1307 1560 1307 1559 1306 1557 1306 1557 1306 1556 1306 1556 1305 1558 1305 1558 1305 1559 1305 1560 1305 1561 1305 1561 1305 1562 1305 1561 1305 1561 1305 1560 1305 1559 1305 1558 1305 1558 1305 1557 1305 1557 1305 1556 1305 1555 1305 1555 1305 1553 1305 1553 1305 1552 1305 1552 1305 1551 1304 1548 1304 1548 1304 1546 1304 1545 1303 1546 1303 1546 1303 1548 1303 1548 1303 1549 1303 1552 1303 1554 1303 1555 1303 1555 1303 1558 1303 1558 1303 1561 1303 1561 1303 1563 1303 1564 1303 1566 1303 1567 1303 1569 1303 1568 1303 1569 1303 1570 1303 1571 1303 1570 1302 1570 1302 1569 1302 1570 1301 1572 1300 1574 1300 1573 1300 1572 1300 1571 1300 1567 1300 1567 1301 1566 1301 1565 1301 1564 1302 1560 1302 1557 1303 1556 1303 1554 1302 1552 1302 1552 1302 1551 1302 1548 1302 1547 1302 1545 1302 1541 1302 1540 1302 1539 1302 1538 1302 1537 1302 1536 1302 1533 1301 1531 1301 1530 1301 1529 1301 1528 1301 1527 1301 1526 1301 1526 1301 1524 1301 1523 1300 1522 1300 1522 1300 1521 1300 1521 1300 1521 1300 1523 1299 1525 1298 1525 1298 1526 1298 1531 1299 1531 1299 1532 1299 1533 1299 1533 1300 1534 1300 1535 1300 1537 1300 1540 1300 1541 1300 1542 1300 1542 1300 1543 1300 1543 1300 1543 1300 1542 1300 1541 1300 1541 1300 1541 1300 1538 1299 1534 1298 1533 1298 1533 1298 1533 1298 1534 1298 1534 1297 1534 1297 1533 1297 1533 1297 1532 1298 1531 1298 1531 1298 1530 1298 1528 1298 1528 1298 1528 1297 1528 1297 1527 1296 1526 1296 1526 1295 1526 1295 1525 1294 1524 1294 1524 1294 1523 1294 1522 1293 1520 1293 1519 1293 1518 1292 1517 1291 1516 1291 1513 1290 1511 1290 1509 1290 1509 1289 1508 1289 1506 1289 1505 1289 1502 1289 1498 1289 1495 1289 1495 1289 1494 1289 1494 1289 1493 1288 1494 1286 1494 1286 1495 1286 1495 1285 1496 1285 1497 1285 1497 1285 1498 1285 1500 1285 1503 1286 1504 1286 1505 1286 1506 1286 1507 1286 1509 1286 1510 1286 1511 1286 1511 1286 1512 1286 1513 1286 1513 1286 1510 1286 1507 1285 1498 1285 1497 1285 1496 1285 1495 1285 1494 1285 1494 1285 1492 1284 1491 1283 1491 1283 1493 1280 1494 1280 1494 1280 1494 1280 1496 1280 1500 1279 1500 1279 1503 1279 1505 1280 1506 1280 1507 1280 1508 1280 1509 1280 1510 1280 1512 1280 1513 1280 1513 1280 1516 1281 1518 1280 1519 1280 1521 1280 1522 1280 1524 1280 1530 1280 1533 1280 1534 1280 1535 1281 1536 1281 1537 1281 1538 1281 1539 1281 1540 1282 1542 1282 1543 1282 1543 1282 1545 1283 1547 1283 1549 1284 1551 1284 1552 1285 1554 1285 1556 1285 1561 1286 1563 1287 1564 1287 1564 1288 1565 1288 1566 1289 1567 1289 1568 1290 1568 1290 1569 1290 1570 1290 1570 1290 1571 1291 1571 1291 1570 1291 1570 1291 1569 1291 1569 1291 1569 1291 1570 1291 1570 1291 1570 1291 1571 1291 1572 1291 1572 1291 1573 1291 1573 1291 1574 1291 1574 1291 1575 1291 1577 1291 1577 1291 1581 1291 1586 1292 1587 1292 1588 1292 1587 1291 1588 1291 1588 1291 1589 1291 1596 1290 1596 1290 1597 1290 1598 1290 1598 1290 1599 1290 1601 1290 1597 1290 1592 1290 1591 1290 1590 1290 1590 1290 1589 1290 1587 1290 1587 1290 1585 1290 1584 1290 1583 1290 1582 1290 1582 1290 1580 1290 1579 1289 1578 1289 1577 1289 1575 1289 1574 1289 1573 1289 1572 1288 1572 1287 1572 1287 1571 1287 1571 1286 1571 1286 1573 1286 1573 1286 1575 1286 1575 1286 1575 1286 1572 1285 1572 1285 1571 1285 1570 1285 1569 1285 1568 1285 1565 1285 1563 1285 1562 1284 1561 1284 1560 1284 1555 1282 1550 1281 1547 1280 1547 1280 1546 1280 1547 1280 1547 1279 1550 1279 1552 1279 1553 1279 1554 1279 1556 1279 1561 1279 1565 1278 1565 1278 1567 1278 1570 1278 1576 1278 1578 1278 1580 1278 1581 1278 1584 1277 1587 1277 1590 1277 1591 1277 1591 1277 1592 1277 1592 1277 1592 1277 1594 1276 1594 1276 1595 1276 1595 1276 1596 1276 1598 1276 1604 1276 1605 1276 1608 1276 1609 1276 1610 1276 1613 1276 1616 1276 1620 1276 1622 1276 1624 1276 1628 1276 1628 1276 1629 1276 1629 1275 1628 1275 1623 1275 1617 1275 1616 1275 1614 1275 1613 1275 1611 1275 1609 1275 1608 1275 1607 1275 1604 1275 1603 1275 1599 1275 1598 1275 1598 1275 1599 1275 1600 1275 1604 1274 1608 1274 1609 1273 1610 1273 1613 1273 1616 1273 1619 1272 1620 1272 1621 1272 1625 1272 1631 1272 1632 1272 1633 1272 1635 1271 1641 1271 1646 1271 1648 1271 1649 1271 1650 1271 1652 1271 1652 1271 1653 1271 1653 1271 1653 1271 1651 1270 1651 1270 1650 1270 1649 1271 1648 1271 1648 1271 1642 1271 1642 1271 1640 1270 1638 1270 1638 1270 1636 1270 1633 1270 1629 1270 1622 1271 1616 1271 1615 1271 1615 1271 1615 1271 1614 1271 1614 1269 1616 1268 1616 1268 1617 1268 1619 1268 1621 1267 1621 1267 1622 1267 1622 1267 1623 1267 1622 1266 1622 1266 1623 1266 1625 1266 1625 1266 1626 1266 1627 1266 1628 1265 1629 1265 1630 1265 1631 1264 1632 1264 1635 1264 1636 1264 1637 1264 1639 1263 1641 1263 1643 1263 1646 1262 1649 1262 1648 1262 1647 1262 1646 1262 1645 1262 1642 1262 1641 1262 1638 1263 1636 1263 1635 1263 1632 1263 1631 1263 1626 1264 1626 1264 1625 1264 1624 1264 1624 1265 1623 1265 1623 1265 1622 1265 1621 1265 1620 1265 1619 1266 1618 1266 1618 1266 1618 1266 1617 1267 1618 1267 1618 1267 1616 1267 1615 1267 1615 1267 1614 1267 1614 1267 1613 1267 1612 1267 1611 1267 1610 1267 1609 1267 1607 1266 1606 1266 1605 1266 1609 1267 1610 1267 1610 1267 1612 1267 1611 1268 1610 1268 1609 1268 1608 1268 1608 1269 1609 1269 1609 1269 1610 1269 1610 1269 1611 1269 1609 1270 1603 1272 1599 1272 1596 1273 1593 1273 1589 1273 1587 1274 1586 1274 1584 1274 1583 1274 1582 1274 1576 1275 1573 1275 1572 1275 1568 1275 1566 1275 1560 1276 1558 1276 1553 1276 1551 1276 1550 1276 1549 1276 1548 1276 1547 1276 1547 1276 1547 1275 1548 1274 1548 1274 1553 1274 1557 1273 1558 1273 1561 1273 1562 1273 1563 1273 1565 1273 1566 1273 1567 1272 1569 1272 1566 1271 1565 1271 1564 1272 1564 1272 1563 1272 1562 1272 1560 1272 1557 1273 1557 1273 1556 1273 1556 1273 1550 1273 1544 1274 1544 1274 1541 1274 1541 1273 1540 1273 1541 1273 1542 1273 1543 1273 1543 1273 1545 1272 1547 1272 1547 1271 1546 1271 1545 1271 1545 1271 1544 1271 1544 1272 1543 1272 1543 1272 1541 1272 1540 1272 1540 1272 1539 1272 1539 1273 1538 1273 1536 1273 1536 1273 1536 1273 1536 1274 1537 1274 1537 1274 1538 1274 1538 1275 1537 1276 1536 1276 1536 1276 1535 1276 1534 1276 1534 1276 1528 1277 1527 1277 1526 1277 1525 1276 1522 1276 1521 1276 1520 1276 1519 1276 1518 1277 1517 1277 1516 1277 1514 1277 1512 1277 1512 1276 1511 1276 1510 1276 1508 1276 1504 1276 1504 1276 1504 1276 1506 1275 1507 1275 1508 1275 1508 1275 1508 1275 1507 1275 1506 1275 1505 1275 1505 1275 1504 1275 1503 1276 1503 1276 1502 1276 1502 1276 1501 1276 1501 1276 1500 1276 1499 1276 1499 1276 1495 1276 1491 1275 1490 1275 1490 1275 1491 1274 1491 1274 1491 1274 1493 1273 1494 1273 1495 1273 1496 1272 1498 1272 1499 1272 1501 1271 1502 1271 1504 1270 1505 1270 1506 1269 1508 1269 1508 1269 1517 1268 1518 1268 1522 1268 1527 1268 1527 1268 1530 1268 1531 1268 1533 1268 1535 1268 1536 1268 1541 1267 1544 1267 1547 1267 1547 1267 1548 1267 1550 1267 1551 1267 1552 1267 1553 1267 1553 1267 1553 1267 1554 1266 1555 1266 1556 1266 1557 1266 1557 1266 1558 1266 1559 1266 1559 1266 1559 1266 1558 1266 1557 1266 1556 1266 1555 1266 1552 1266 1551 1266 1551 1266 1550 1266 1550 1266 1547 1266 1542 1267 1537 1267 1531 1267 1527 1267 1524 1267 1521 1267 1516 1268 1514 1268 1513 1268 1513 1268 1511 1268 1510 1268 1508 1268 1506 1268 1505 1268 1504 1268 1502 1269 1499 1269 1496 1270 1496 1270 1484 1273 1484 1273 1483 1274 1483 1274 1482 1275 1482 1275 1481 1275 1480 1275 1478 1275 1478 1275 1476 1275 1476 1275 1475 1275 1473 1274 1472 1274 1470 1274 1467 1274 1466 1274 1466 1274 1464 1273 1463 1273 1462 1273 1460 1273 1458 1272 1454 1272 1453 1272 1451 1272 1449 1271 1448 1271 1447 1271 1446 1270 1447 1270 1450 1270 1450 1269 1455 1269 1456 1269 1457 1269 1460 1269 1461 1269 1465 1269 1468 1269 1469 1269 1472 1269 1473 1269 1474 1269 1475 1269 1476 1269 1477 1269 1478 1269 1481 1269 1483 1269 1484 1269 1484 1269 1484 1269 1485 1269 1486 1269 1486 1269 1489 1269 1490 1269 1491 1269 1491 1269 1493 1268 1495 1268 1500 1267 1503 1267 1503 1267 1508 1266 1510 1266 1511 1266 1513 1265 1514 1265 1517 1265 1518 1265 1519 1265 1520 1265 1521 1265 1521 1264 1522 1264 1519 1264 1518 1264 1518 1264 1517 1264 1513 1264 1512 1264 1505 1265 1502 1265 1501 1265 1500 1265 1499 1266 1498 1266 1497 1266 1497 1266 1496 1267 1495 1267 1494 1267 1494 1267 1493 1267 1491 1267 1486 1267 1484 1267 1481 1268 1475 1268 1475 1268 1474 1268 1472 1268 1468 1268 1466 1268 1464 1268 1462 1268 1460 1268 1459 1268 1458 1268 1455 1268 1454 1268 1453 1268 1450 1268 1449 1268 1448 1268 1443 1269 1442 1269 1441 1269 1440 1269 1440 1268 1437 1268 1436 1268 1436 1268 1435 1268 1434 1268 1432 1266 1432 1266 1432 1266 1433 1266 1436 1265 1437 1265 1437 1265 1438 1265 1440 1265 1442 1265 1443 1265 1443 1265 1444 1265 1445 1265 1446 1265 1446 1265 1448 1265 1449 1265 1451 1265 1452 1265 1453 1265 1454 1265 1454 1265 1454 1265 1451 1265 1450 1265 1449 1265 1449 1265 1448 1265 1446 1265 1442 1264 1441 1264 1440 1264 1439 1264 1438 1264 1439 1263 1439 1263 1442 1263 1443 1263 1450 1262 1453 1261 1455 1261 1456 1261 1458 1261 1461 1260 1462 1260 1463 1260 1464 1260 1467 1260 1469 1260 1470 1260 1470 1260 1470 1260 1471 1260 1473 1261 1475 1261 1478 1261 1479 1261 1479 1261 1480 1261 1480 1261 1481 1261 1481 1261 1481 1261 1480 1261 1479 1260 1478 1260 1475 1260 1474 1260 1473 1260 1471 1260 1465 1259 1465 1259 1464 1259 1463 1260 1462 1260 1461 1260 1459 1260 1459 1260 1457 1260 1456 1260 1455 1260 1454 1260 1452 1260 1451 1260 1449 1261 1445 1261 1444 1261 1442 1261 1437 1262 1432 1263 1430 1263 1430 1263 1430 1263 1429 1263 1429 1263 1430 1262 1429 1262 1427 1262 1427 1262 1426 1262 1425 1262 1425 1262 1424 1262 1425 1261 1425 1261 1428 1261 1429 1261 1433 1260 1435 1260 1440 1259 1441 1259 1443 1259 1443 1259 1444 1259 1441 1259 1440 1259 1439 1259 1438 1259 1436 1259 1436 1258 1434 1258 1433 1258 1433 1258 1432 1258 1432 1258 1432 1258 1432 1258 1429 1258 1428 1258 1427 1258 1427 1258 1426 1258 1426 1258 1425 1258 1425 1259 1424 1259 1423 1259 1423 1259 1422 1259 1422 1259 1422 1259 1422 1260 1420 1260 1420 1260 1418 1260 1417 1260 1415 1260 1414 1260 1415 1260 1415 1260 1414 1259 1414 1259 1411 1259 1410 1259 1408 1259 1407 1259 1407 1259 1406 1259 1406 1258 1407 1258 1407 1258 1408 1258 1408 1258 1409 1258 1409 1258 1410 1258 1410 1257 1414 1256 1415 1256 1416 1256 1417 1257 1417 1257 1418 1257 1421 1256 1420 1256 1420 1256 1419 1256 1420 1256 1421 1256 1422 1255 1424 1255 1426 1255 1426 1255 1427 1255 1428 1255 1428 1255 1431 1255 1432 1254 1434 1254 1435 1254 1438 1254 1441 1254 1442 1254 1442 1254 1443 1254 1443 1255 1443 1255 1446 1256 1447 1256 1448 1256 1450 1255 1450 1255 1448 1254 1448 1254 1447 1254 1447 1254 1448 1254 1448 1254 1449 1254 1449 1254 1451 1254 1452 1254 1453 1254 1453 1254 1454 1254 1453 1253 1453 1253 1453 1253 1454 1253 1457 1252 1459 1252 1460 1252 1461 1252 1462 1252 1465 1251 1465 1251 1467 1251 1468 1251 1468 1251 1469 1251 1471 1251 1474 1251 1475 1251 1475 1251 1476 1251 1477 1251 1479 1252 1480 1252 1481 1252 1482 1252 1482 1253 1482 1253 1481 1253 1481 1253 1481 1253 1483 1254 1484 1254 1484 1254 1486 1254 1487 1254 1488 1254 1489 1254 1489 1255 1490 1254 1488 1254 1488 1254 1487 1254 1484 1253 1484 1253 1483 1253 1486 1252 1487 1252 1487 1252 1488 1252 1489 1252 1492 1252 1496 1252 1497 1252 1498 1252 1498 1252 1499 1252 1501 1253 1502 1253 1503 1253 1504 1253 1505 1253 1506 1254 1507 1254 1510 1255 1511 1255 1511 1255 1511 1255 1511 1255 1510 1254 1510 1254 1508 1254 1507 1254 1506 1253 1506 1253 1507 1253 1508 1253 1513 1253 1514 1253 1514 1253 1515 1253 1515 1253 1516 1254 1517 1254 1518 1254 1519 1255 1520 1255 1520 1254 1519 1254 1517 1254 1517 1253 1517 1253 1516 1253 1517 1253 1518 1253 1519 1253 1520 1253 1520 1253 1520 1253 1521 1254 1521 1254 1522 1255 1523 1255 1523 1255 1524 1255 1522 1253 1521 1253 1520 1253 1520 1253 1519 1253 1518 1252 1517 1252 1515 1252 1511 1252 1507 1252 1505 1252 1504 1252 1503 1252 1501 1251 1500 1251 1500 1251 1497 1251 1494 1251 1492 1251 1491 1251 1490 1251 1490 1251 1489 1251 1488 1250 1488 1249 1489 1249 1491 1249 1491 1249 1492 1249 1493 1249 1496 1249 1498 1249 1498 1249 1499 1249 1502 1249 1502 1249 1504 1249 1505 1249 1505 1249 1506 1249 1507 1249 1507 1249 1508 1249 1508 1249 1508 1248 1509 1248 1511 1248 1512 1248 1511 1248 1510 1248 1510 1248 1509 1247 1509 1247 1509 1246 1509 1246 1507 1246 1504 1246 1503 1246 1504 1246 1505 1245 1505 1245 1506 1245 1509 1245 1513 1245 1517 1245 1517 1245 1522 1245 1523 1245 1523 1245 1523 1246 1521 1246 1519 1246 1518 1246 1519 1246 1519 1246 1522 1246 1524 1246 1526 1247 1526 1247 1527 1247 1527 1247 1528 1247 1528 1247 1530 1247 1530 1247 1531 1247 1532 1247 1533 1247 1534 1247 1535 1247 1536 1247 1537 1247 1540 1247 1541 1248 1543 1248 1543 1248 1543 1249 1544 1249 1544 1249 1545 1250 1546 1250 1547 1250 1548 1250 1549 1250 1549 1250 1550 1251 1550 1251 1550 1251 1549 1251 1548 1251 1547 1252 1548 1252 1550 1252 1551 1252 1553 1252 1553 1252 1555 1252 1555 1252 1559 1252 1561 1252 1562 1252 1563 1252 1564 1252 1566 1252 1566 1252 1567 1252 1566 1252 1566 1252 1565 1251 1564 1251 1564 1251 1561 1251 1559 1251 1557 1251 1556 1251 1555 1251 1555 1251 1554 1251 1554 1251 1554 1250 1553 1250 1552 1250 1551 1250 1550 1250 1550 1249 1549 1249 1549 1249 1549 1248 1549 1248 1554 1248 1554 1248 1555 1248 1555 1248 1557 1249 1558 1249 1561 1249 1561 1249 1562 1250 1563 1250 1564 1250 1565 1250 1567 1250 1572 1251 1574 1251 1576 1251 1577 1251 1579 1252 1580 1252 1583 1252 1587 1252 1590 1253 1594 1253 1595 1253 1596 1253 1597 1253 1599 1254 1603 1255 1604 1255 1604 1256 1605 1256 1605 1256 1609 1256 1606 1255 1605 1254 1605 1254 1604 1254 1602 1254 1600 1253 1600 1253 1600 1252 1599 1252 1599 1252 1594 1252 1592 1252 1591 1252 1587 1252 1587 1252 1586 1252 1585 1252 1584 1251 1583 1251 1582 1251 1582 1251 1582 1251 1582 1251 1582 1251 1583 1250 1583 1250 1583 1250 1580 1250 1579 1250 1577 1250 1576 1250 1574 1250 1568 1249 1568 1249 1567 1249 1563 1248 1558 1248 1557 1247 1555 1247 1554 1247 1554 1247 1554 1246 1554 1246 1557 1245 1557 1245 1558 1245 1559 1245 1560 1245 1564 1245 1571 1245 1573 1245 1570 1245 1569 1245 1568 1245 1567 1245 1566 1244 1566 1244 1561 1244 1560 1243 1560 1243 1559 1243 1559 1243 1560 1242 1561 1242 1561 1242 1562 1242 1563 1242 1564 1242 1566 1242 1566 1242 1573 1243 1574 1243 1576 1243 1576 1243 1579 1244 1581 1244 1582 1244 1583 1244 1588 1244 1588 1244 1583 1243 1581 1242 1580 1242 1580 1242 1580 1242 1579 1242 1578 1241 1576 1241 1574 1241 1573 1241 1572 1240 1572 1240 1573 1240 1573 1240 1574 1240 1575 1240 1576 1240 1581 1240 1582 1240 1584 1240 1589 1240 1591 1240 1591 1240 1592 1240 1593 1240 1595 1241 1595 1241 1594 1242 1595 1242 1596 1242 1597 1242 1598 1242 1599 1242 1600 1242 1600 1242 1598 1242 1598 1242 1599 1241 1600 1241 1601 1241 1601 1242 1602 1242 1603 1242 1606 1242 1607 1242 1611 1242 1616 1242 1620 1242 1621 1242 1621 1242 1620 1242 1616 1242 1615 1242 1614 1242 1609 1242 1608 1242 1607 1241 1603 1241 1600 1241 1599 1241 1599 1241 1598 1240 1597 1240 1598 1240 1598 1240 1602 1240 1600 1239 1599 1239 1597 1239 1595 1239 1595 1239 1594 1239 1594 1239 1593 1239 1591 1239 1590 1239 1591 1238 1596 1238 1599 1238 1601 1237 1606 1237 1607 1237 1607 1237 1610 1238 1612 1238 1614 1238 1616 1238 1617 1238 1617 1238 1618 1238 1618 1238 1619 1238 1620 1238 1621 1238 1621 1239 1621 1239 1620 1239 1621 1239 1624 1239 1626 1240 1627 1240 1627 1240 1627 1239 1626 1239 1625 1239 1627 1239 1628 1238 1629 1238 1630 1238 1631 1238 1632 1238 1633 1238 1634 1238 1635 1238 1637 1239 1638 1239 1639 1239 1640 1239 1643 1239 1644 1239 1646 1240 1646 1240 1647 1241 1648 1241 1648 1241 1649 1241 1649 1241 1650 1241 1650 1241 1651 1241 1651 1242 1652 1242 1653 1242 1655 1242 1660 1243 1660 1243 1662 1243 1663 1243 1662 1244 1662 1244 1662 1244 1660 1244 1658 1245 1657 1245 1657 1246 1658 1246 1659 1245 1661 1245 1662 1245 1663 1244 1664 1244 1665 1244 1666 1243 1667 1243 1667 1243 1669 1243 1670 1243 1670 1243 1671 1243 1670 1243 1670 1243 1669 1243 1668 1243 1667 1243 1666 1243 1664 1242 1659 1242 1657 1241 1657 1241 1657 1241 1656 1241 1657 1241 1657 1241 1658 1241 1660 1240 1661 1240 1661 1240 1658 1240 1657 1240 1657 1240 1655 1240 1654 1240 1653 1240 1653 1240 1652 1240 1652 1239 1651 1239 1650 1239 1650 1239 1649 1238 1648 1238 1647 1238 1645 1238 1644 1238 1643 1238 1640 1237 1639 1237 1640 1237 1641 1236 1641 1236 1642 1236 1642 1236 1643 1236 1642 1237 1643 1237 1647 1237 1652 1237 1655 1236 1657 1236 1658 1236 1659 1236 1660 1236 1661 1236 1661 1236 1662 1236 1668 1236 1672 1236 1676 1236 1677 1236 1678 1236 1680 1236 1682 1236 1686 1236 1687 1236 1689 1237 1690 1237 1692 1237 1693 1237 1695 1238 1695 1239 1696 1239 1699 1240 1700 1240 1705 1241 1705 1241 1706 1241 1708 1241 1710 1241 1711 1241 1712 1241 1713 1241 1714 1242 1714 1242 1715 1242 1715 1242 1717 1241 1715 1241 1714 1241 1710 1240 1709 1240 1709 1240 1706 1240 1705 1240 1703 1239 1702 1239 1702 1238 1701 1238 1700 1238 1699 1238 1699 1238 1699 1238 1705 1237 1708 1236 1710 1236 1710 1236 1715 1235 1715 1235 1716 1235 1717 1236 1717 1236 1718 1236 1719 1235 1719 1235 1720 1235 1721 1235 1723 1235 1725 1235 1728 1235 1730 1235 1731 1235 1732 1235 1731 1236 1730 1236 1729 1236 1729 1236 1728 1237 1732 1238 1733 1238 1736 1238 1737 1238 1739 1238 1740 1238 1741 1239 1742 1239 1743 1239 1743 1239 1743 1238 1742 1238 1740 1238 1736 1237 1733 1237 1734 1236 1739 1235 1743 1235 1746 1235 1748 1235 1749 1235 1751 1235 1753 1235 1754 1235 1755 1235 1757 1235 1760 1235 1761 1235 1762 1235 1762 1235 1762 1236 1761 1236 1761 1236 1761 1236 1762 1236 1763 1236 1765 1236 1766 1236 1765 1236 1764 1237 1764 1237 1769 1237 1770 1237 1771 1236 1771 1236 1772 1236 1773 1236 1773 1236 1773 1237 1774 1237 1778 1237 1778 1237 1779 1237 1780 1237 1780 1237 1781 1237 1781 1237 1782 1237 1783 1237 1784 1237 1786 1237 1786 1237 1786 1238 1787 1238 1787 1238 1788 1238 1791 1237 1794 1237 1795 1237 1796 1237 1797 1237 1797 1238 1798 1238 1800 1238 1801 1238 1802 1238 1803 1238 1803 1238 1803 1237 1804 1237 1805 1238 1806 1238 1808 1238 1810 1238 1816 1238 1816 1238 1815 1238 1815 1239 1808 1240 1807 1240 1807 1240 1806 1240 1803 1240 1800 1241 1799 1241 1798 1241 1797 1241 1795 1241 1795 1241 1792 1241 1790 1241 1788 1242 1788 1242 1787 1242 1785 1242 1784 1242 1783 1242 1782 1242 1779 1242 1778 1242 1778 1243 1778 1243 1779 1243 1780 1243 1781 1243 1782 1243 1784 1242 1790 1242 1792 1242 1795 1242 1797 1242 1797 1242 1798 1242 1799 1242 1800 1242 1800 1242 1801 1242 1801 1242 1805 1241 1806 1241 1810 1241 1810 1241 1819 1240 1819 1240 1824 1239 1825 1239 1825 1239 1828 1239 1829 1240 1829 1240 1828 1240 1829 1240 1830 1240 1834 1241 1834 1241 1833 1240 1831 1240 1833 1239 1835 1239 1834 1239 1832 1239 1832 1239 1833 1239 1835 1239 1837 1238 1839 1238 1839 1238 1841 1238 1842 1238 1842 1239 1841 1239 1841 1239 1840 1239 1840 1239 1839 1239 1838 1239 1839 1239 1839 1239 1841 1239 1841 1239 1841 1240 1841 1240 1842 1240 1845 1241 1846 1241 1846 1241 1848 1240 1850 1240 1851 1240 1851 1239 1852 1239 1853 1239 1858 1239 1859 1239 1860 1240 1861 1240 1862 1240 1863 1240 1863 1241 1861 1241 1860 1241 1859 1241 1858 1241 1856 1241 1855 1241 1857 1241 1858 1241 1858 1241 1860 1242 1861 1242 1862 1242 1864 1242 1865 1242 1865 1243 1865 1243 1864 1243 1863 1243 1863 1243 1863 1243 1864 1243 1864 1243 1865 1243 1867 1243 1868 1243 1868 1243 1869 1243 1869 1243 1870 1244 1869 1244 1868 1245 1867 1245 1867 1245 1865 1245 1864 1246 1863 1246 1863 1246 1864 1246 1864 1246 1866 1246 1868 1246 1868 1245 1869 1245 1870 1245 1872 1245 1874 1245 1876 1244 1877 1244 1880 1244 1881 1244 1882 1244 1879 1245 1879 1245 1880 1245 1880 1245 1881 1245 1883 1245 1887 1245 1890 1245 1891 1245 1892 1245 1893 1245 1894 1245 1895 1246 1896 1246 1898 1246 1899 1247 1899 1247 1899 1248 1899 1248 1899 1249 1899 1249 1899 1249 1898 1249 1898 1249 1896 1250 1896 1250 1894 1250 1894 1250 1893 1250 1892 1250 1891 1250 1888 1250 1887 1251 1883 1252 1883 1252 1881 1252 1880 1253 1880 1253 1879 1253 1877 1253 1876 1253 1870 1254 1868 1254 1864 1255 1863 1255 1858 1255 1857 1256 1857 1256 1856 1256 1855 1256 1854 1256 1853 1256 1853 1256 1852 1256 1851 1256 1851 1256 1851 1256 1850 1256 1849 1256 1848 1256 1848 1256 1849 1256 1849 1256 1851 1257 1849 1257 1847 1257 1845 1257 1843 1257 1841 1257 1841 1257 1840 1257 1839 1257 1839 1257 1838 1257 1837 1257 1833 1257 1831 1257 1830 1257 1827 1258 1826 1258 1825 1258 1824 1258 1822 1258 1821 1258 1820 1258 1821 1258 1824 1258 1827 1258 1829 1258 1830 1258 1831 1258 1831 1258 1830 1258 1828 1258 1827 1258 1824 1259 1823 1259 1822 1259 1821 1258 1820 1258 1820 1258 1819 1259 1819 1259 1818 1259 1817 1259 1815 1259 1815 1259 1814 1259 1813 1259 1812 1259 1809 1259 1808 1259 1807 1259 1802 1259 1797 1259 1796 1259 1793 1259 1792 1259 1787 1260 1786 1260 1785 1260 1785 1260 1784 1260 1784 1260 1783 1260 1782 1259 1782 1259 1778 1259 1777 1258 1773 1258 1772 1258 1771 1257 1770 1257 1769 1257 1768 1257 1769 1258 1769 1258 1771 1258 1773 1258 1774 1258 1779 1259 1782 1260 1783 1260 1782 1260 1781 1260 1780 1260 1779 1260 1777 1260 1776 1260 1775 1260 1776 1260 1776 1260 1780 1261 1780 1261 1782 1260 1783 1260 1784 1260 1787 1260 1788 1260 1789 1260 1790 1260 1792 1260 1793 1260 1799 1260 1802 1260 1802 1260 1803 1260 1804 1260 1807 1260 1808 1260 1809 1260 1811 1261 1809 1261 1807 1261 1805 1261 1804 1261 1801 1262 1798 1262 1793 1262 1792 1263 1789 1263 1785 1263 1783 1264 1782 1264 1781 1264 1779 1264 1776 1264 1772 1265 1768 1265 1767 1265 1767 1264 1767 1264 1766 1264 1766 1265 1766 1265 1767 1265 1768 1265 1764 1265 1758 1266 1757 1266 1754 1266 1754 1266 1755 1266 1756 1266 1758 1266 1758 1266 1759 1266 1761 1266 1763 1266 1760 1267 1759 1267 1758 1267 1757 1267 1757 1267 1757 1267 1758 1267 1758 1267 1760 1267 1763 1267 1763 1266 1764 1266 1766 1266 1766 1266 1767 1266 1775 1265 1777 1265 1783 1264 1785 1264 1787 1264 1788 1264 1791 1264 1792 1264 1792 1264 1794 1263 1795 1263 1799 1263 1801 1263 1803 1263 1805 1263 1811 1262 1815 1262 1816 1262 1818 1262 1819 1262 1820 1261 1821 1261 1824 1261 1825 1261 1827 1261 1828 1261 1829 1261 1833 1260 1837 1260 1843 1260 1844 1260 1844 1260 1846 1261 1845 1262 1845 1262 1844 1262 1843 1262 1842 1262 1841 1263 1840 1263 1839 1263 1837 1263 1836 1264 1834 1264 1832 1264 1832 1264 1830 1265 1829 1265 1828 1265 1828 1265 1825 1265 1822 1265 1821 1265 1821 1265 1818 1266 1817 1266 1817 1266 1814 1267 1814 1267 1813 1267 1813 1267 1812 1268 1811 1268 1810 1268 1809 1268 1806 1269 1802 1270 1802 1270 1800 1270 1800 1270 1799 1270 1798 1270 1796 1270 1795 1270 1796 1270 1796 1270 1796 1271 1795 1271 1791 1271 1790 1272 1789 1272 1789 1272 1788 1272 1787 1272 1787 1272 1786 1272 1785 1273 1778 1274 1777 1274 1776 1275 1774 1275 1771 1276 1770 1276 1769 1277 1768 1278 1768 1278 1768 1278 1767 1278 1766 1279 1765 1279 1764 1279 1763 1279 1761 1279 1757 1279 1756 1279 1753 1279 1752 1279 1752 1279 1752 1279 1753 1279 1753 1278 1753 1278 1753 1278 1752 1277 1749 1277 1748 1276 1746 1276 1746 1276 1745 1276 1744 1276 1744 1276 1744 1276 1745 1276 1745 1276 1746 1276 1747 1277 1748 1277 1749 1277 1750 1278 1750 1278 1750 1279 1749 1279 1750 1279 1750 1279 1750 1279 1751 1280 1752 1280 1753 1280 1755 1280 1756 1280 1757 1280 1758 1281 1757 1281 1755 1282 1754 1282 1753 1282 1753 1282 1752 1282 1747 1282 1747 1282 1744 1282 1739 1282 1738 1282 1737 1282 1735 1282 1734 1283 1734 1283 1733 1283 1731 1283 1730 1283 1729 1283 1729 1283 1728 1283 1728 1283 1728 1283 1727 1282 1726 1282 1726 1282 1725 1282 1724 1282 1724 1282 1723 1282 1722 1282 1722 1282 1721 1281 1721 1281 1720 1281 1720 1281 1719 1281 1719 1281 1718 1281 1722 1282 1723 1282 1724 1282 1724 1282 1725 1282 1725 1282 1727 1283 1726 1283 1726 1283 1723 1283 1721 1283 1719 1283 1719 1284 1720 1284 1722 1284 1723 1284 1724 1284 1726 1284 1727 1284 1727 1284 1730 1284 1731 1284 1733 1284 1735 1283 1736 1283 1738 1283 1741 1283 1743 1283 1744 1283 1745 1283 1747 1283 1747 1283 1749 1283 1749 1284 1748 1284 1747 1284 1747 1284 1746 1284 1746 1285 1745 1285 1745 1285 1742 1285 1742 1285 1740 1285 1737 1285 1737 1285 1734 1286 1734 1286 1734 1286 1734 1287 1735 1287 1735 1287 1738 1286 1739 1286 1740 1286 1742 1286 1742 1287 1741 1288 1739 1288 1739 1288 1738 1288 1738 1288 1735 1288 1735 1289 1735 1289 1734 1289 1733 1289 1730 1289 1729 1289 1728 1289 1728 1289 1726 1290 1725 1290 1723 1290 1722 1290 1721 1290 1720 1290 1720 1290 1719 1290 1719 1290 1718 1290 1718 1290 1716 1290 1715 1290 1714 1290 1714 1290 1713 1290 1713 1290 1710 1289 1710 1289 1708 1288 1709 1288 1709 1288 1710 1288 1710 1288 1708 1288 1708 1287 1706 1288 1706 1288 1704 1287 1703 1287 1703 1287 1703 1287 1702 1287 1700 1287 1698 1287 1697 1287 1697 1287 1695 1287 1696 1287 1697 1287 1697 1287 1695 1287 1694 1287 1693 1287 1691 1286 1691 1286 1689 1287 1689 1287 1688 1287 1687 1287 1686 1287 1684 1287 1682 1287 1680 1287 1680 1287 1682 1288 1682 1288 1683 1288 1685 1288 1686 1288 1687 1288 1687 1288 1688 1288 1689 1288 1691 1288 1694 1288 1698 1288 1701 1289 1703 1289 1703 1289 1704 1290 1705 1290 1706 1290 1706 1290 1707 1292 1706 1292 1705 1292 1704 1293 1703 1293 1702 1293 1699 1293 1698 1293 1697 1293 1697 1293 1696 1293 1696 1292 1696 1292 1695 1292 1694 1292 1694 1292 1693 1292 1694 1293 1694 1293 1693 1293 1693 1294 1692 1294 1691 1294 1690 1294 1690 1294 1684 1294 1683 1294 1682 1294 1678 1293 1678 1292 1677 1293 1676 1293 1677 1293 1678 1294 1679 1294 1679 1294 1679 1294 1678 1295 1677 1295 1676 1295 1674 1295 1672 1295 1671 1295 1669 1294 1666 1294 1664 1294 1663 1294 1662 1294 1662 1294 1661 1294 1660 1294 1659 1293 1659 1293 1658 1293 1658 1293 1657 1293 1656 1293 1651 1292 1650 1292 1650 1292 1648 1293 1648 1293 1647 1293 1647 1293 1644 1292 1644 1292 1644 1292 1643 1292 1643 1292 1642 1293 1643 1293 1644 1293 1647 1293 1647 1293 1651 1293 1655 1293 1658 1293 1658 1293 1659 1294 1658 1294 1659 1294 1659 1295 1660 1295 1660 1295 1663 1295 1660 1295 1659 1295 1656 1295 1650 1295 1650 1295 1648 1295 1648 1295 1647 1295 1647 1295 1646 1295 1645 1295 1644 1294 1643 1294 1642 1294 1640 1293 1639 1293 1639 1294 1641 1295 1642 1295 1642 1296 1641 1296 1641 1296 1640 1295 1639 1295 1639 1295 1638 1295 1636 1295 1635 1295 1634 1295 1633 1295 1633 1295 1632 1295 1631 1295 1630 1295 1628 1295 1629 1295 1631 1296 1631 1296 1632 1296 1632 1296 1633 1296 1634 1296 1635 1296 1635 1296 1637 1296 1637 1296 1640 1296 1640 1297 1638 1297 1638 1297 1637 1297 1638 1297 1639 1297 1642 1296 1645 1296 1650 1296 1657 1296 1658 1296 1659 1296 1659 1296 1660 1297 1660 1297 1661 1297 1662 1297 1664 1297 1665 1297 1665 1297 1666 1297 1667 1297 1667 1297 1670 1297 1671 1297 1676 1297 1679 1297 1680 1297 1681 1297 1685 1297 1685 1297 1686 1297 1685 1297 1684 1298 1683 1298 1681 1298 1680 1298 1680 1298 1680 1298 1681 1298 1682 1298 1683 1298 1686 1300 1686 1300 1685 1300 1684 1300 1684 1300 1683 1300 1681 1300 1678 1300 1675 1300 1673 1300 1667 1300 1667 1300 1665 1299 1663 1299 1663 1299 1663 1298 1662 1298 1660 1298 1660 1298 1660 1298 1659 1298 1656 1298 1653 1298 1647 1298 1646 1298 1644 1298 1644 1298 1643 1298 1642 1298 1642 1298 1641 1298 1639 1298 1637 1298 1636 1298 1635 1298 1634 1297 1633 1297 1633 1297 1632 1297 1627 1298 1626 1298 1625 1298 1626 1298 1626 1298 1628 1298 1628 1298 1629 1298 1629 1298 1631 1298 1632 1298 1638 1298 1641 1298 1642 1298 1642 1298 1645 1298 1648 1298 1650 1298 1651 1298 1651 1298 1653 1299 1654 1299 1656 1299 1657 1299 1657 1299 1658 1299 1659 1299 1659 1299 1660 1299 1659 1299 1659 1299 1658 1299 1658 1300 1657 1300 1655 1299 1653 1299 1652 1299 1651 1299 1650 1299 1648 1299 1645 1300 1644 1300 1643 1300 1642 1300 1640 1300 1639 1300 1638 1300 1638 1300 1637 1300 1637 1300 1634 1300 1634 1300 1633 1300 1632 1300 1632 1300 1630 1300 1629 1300 1628 1300 1627 1300 1627 1300 1626 1299 1625 1299 1624 1299 1622 1299 1618 1300 1616 1300 1615 1300 1615 1300 1618 1300 1620 1300 1623 1300 1625 1300 1625 1300 1627 1300 1627 1300 1628 1300 1630 1300 1631 1300 1632 1300 1632 1300 1634 1301 1632 1301 1632 1301 1630 1302 1629 1302 1627 1303 1625 1304 1625 1304 1625 1304 1626 1304 1627 1304 1627 1304 1627 1303 1629 1303 1631 1302 1633 1301 1634 1301 1634 1301 1637 1301 1639 1301 1641 1301 1642 1301 1643 1301 1644 1301 1645 1301 1646 1300 1649 1300 1650 1300 1650 1300 1654 1300 1655 1300 1661 1301 1665 1301 1665 1302 1664 1302 1664 1302 1663 1302 1663 1302 1660 1302 1657 1302 1657 1302 1656 1302 1656 1302 1655 1303 1654 1303 1654 1303 1655 1303 1655 1303 1656 1303 1657 1303 1658 1303 1658 1303 1659 1303 1659 1303 1660 1303 1662 1303 1664 1303 1670 1302 1672 1302 1672 1302 1674 1303 1678 1303 1681 1303 1681 1304 1682 1305 1681 1306 1680 1306 1680 1306 1679 1306 1679 1307 1680 1307 1680 1307 1679 1308 1677 1308 1676 1308 1676 1308 1675 1308 1675 1308 1674 1308 1674 1308 1673 1308 1673 1308 1672 1308 1669 1309 1664 1309 1663 1309 1662 1309 1661 1308 1661 1308 1660 1308 1660 1308 1659 1308 1659 1308 1655 1308 1654 1308 1654 1308 1651 1308 1650 1308 1651 1309 1652 1309 1654 1309 1655 1308 1656 1308 1656 1308 1657 1308 1659 1309 1660 1309 1660 1309 1665 1310 1667 1310 1669 1310 1670 1310 1671 1310 1673 1310 1676 1311 1677 1311 1676 1312 1676 1312 1674 1312 1674 1312 1673 1312 1673 1312 1672 1312 1671 1312 1671 1312 1671 1312 1669 1313 1669 1313 1668 1313 1667 1314 1667 1314 1666 1313 1665 1313 1663 1313 1661 1313 1659 1313 1658 1313 1658 1313 1656 1313 1656 1313 1655 1313 1655 1313 1654 1313 1653 1313 1652 1313 1652 1313 1651 1313 1651 1313 1648 1313 1647 1313 1647 1313 1647 1313 1647 1314 1650 1314 1650 1314 1651 1314 1653 1314 1661 1314 1665 1315 1665 1315 1667 1315 1668 1315 1668 1315 1666 1316 1666 1316 1665 1316 1664 1317 1664 1317 1662 1317 1662 1317 1659 1316 1658 1316 1657 1316 1657 1316 1656 1317 1654 1317 1654 1317 1653 1317 1653 1317 1652 1318 1652 1318 1650 1318 1650 1318 1649 1318 1649 1318 1649 1318 1648 1318 1647 1318 1646 1318 1646 1318 1645 1318 1645 1318 1644 1318 1643 1318 1643 1318 1642 1317 1641 1317 1641 1318 1640 1318 1640 1318 1632 1318 1629 1317 1629 1317 1627 1317 1627 1317 1625 1317 1625 1317 1623 1318 1624 1319 1625 1319 1625 1319 1626 1319 1627 1319 1630 1320 1630 1320 1630 1320 1629 1321 1630 1322 1631 1322 1631 1322 1633 1323 1634 1323 1631 1324 1630 1324 1630 1324 1630 1325 1629 1325 1625 1327 1624 1327 1618 1328 1617 1328 1617 1328 1616 1328 1616 1328 1617 1327 1618 1327 1617 1327 1616 1327 1616 1327 1615 1327 1615 1327 1614 1327 1614 1327 1614 1327 1613 1328 1612 1328 1611 1328 1610 1328 1610 1328 1609 1328 1608 1328 1607 1328 1605 1328 1603 1328 1603 1328 1602 1328 1600 1328 1599 1328 1599 1328 1598 1328 1598 1328 1597 1328 1597 1328 1597 1328 1590 1328 1585 1327 1585 1327 1583 1327 1581 1327 1581 1326 1580 1326 1579 1326 1579 1326 1578 1326 1577 1326 1577 1326 1576 1326 1576 1325 1575 1325 1574 1325 1573 1325 1572 1324 1572 1324 1571 1323 1568 1323 1568 1322 1568 1322 1567 1322 1566 1322 1566 1322 1567 1323 1568 1323 1568 1323 1570 1324 1571 1325 1570 1325 1570 1325 1569 1326 1570 1326 1573 1327 1574 1327 1574 1327 1576 1327 1577 1327 1578 1327 1578 1327 1579 1327 1577 1328 1574 1328 1573 1328 1567 1328 1566 1328 1564 1328 1563 1328 1564 1328 1565 1328 1566 1329 1567 1330 1567 1330 1568 1330 1569 1330 1569 1330 1570 1330 1571 1330 1572 1329 1575 1329 1579 1328 1582 1328 1588 1329 1589 1329 1593 1329 1593 1329 1594 1329 1595 1329 1595 1329 1595 1330 1593 1330 1591 1331 1591 1331 1592 1331 1594 1331 1595 1331 1595 1330 1596 1330 1596 1330 1597 1330 1598 1329 1601 1329 1602 1329 1603 1329 1603 1329 1606 1329 1606 1329 1609 1329 1610 1329 1613 1330 1613 1331 1613 1331 1611 1332 1608 1333 1607 1333 1607 1333 1607 1334 1608 1334 1608 1334 1609 1334 1610 1334 1613 1334 1614 1334 1614 1334 1615 1334 1615 1334 1615 1335 1617 1335 1618 1335 1620 1334 1620 1334 1623 1333 1624 1333 1624 1332 1624 1332 1626 1332 1627 1332 1628 1332 1631 1333 1633 1336 1632 1338 1633 1338 1632 1338 1632 1338 1631 1339 1630 1339 1630 1339 1629 1339 1629 1339 1628 1339 1626 1340 1626 1340 1625 1341 1623 1341 1622 1341 1622 1341 1622 1341 1621 1341 1620 1341 1619 1341 1620 1341 1619 1340 1619 1340 1617 1339 1617 1339 1615 1340 1615 1341 1615 1341 1614 1341 1614 1342 1613 1342 1612 1342 1612 1342 1611 1342 1610 1342 1610 1342 1609 1343 1609 1344 1608 1344 1608 1344 1607 1344 1607 1344 1606 1344 1605 1344 1605 1344 1604 1344 1604 1344 1600 1344 1598 1345 1596 1345 1596 1345 1596 1345 1595 1345 1595 1345 1594 1345 1594 1345 1594 1345 1593 1345 1593 1345 1592 1345 1591 1345 1591 1345 1591 1345 1589 1345 1588 1346 1587 1346 1587 1346 1587 1346 1586 1346 1582 1346 1580 1347 1580 1346 1580 1345 1581 1345 1583 1344 1585 1343 1585 1342 1585 1342 1581 1341 1578 1340 1577 1340 1576 1340 1576 1341 1575 1341 1575 1341 1574 1341 1573 1341 1573 1341 1571 1341 1570 1341 1569 1341 1567 1341 1564 1340 1564 1340 1565 1340 1565 1339 1564 1339 1566 1339 1567 1338 1568 1338 1568 1338 1569 1338 1568 1338 1568 1338 1567 1338 1564 1339 1563 1339 1563 1339 1562 1339 1561 1338 1560 1338 1559 1338 1558 1338 1558 1337 1556 1336 1554 1336 1554 1336 1553 1336 1554 1336 1554 1336 1555 1336 1556 1337 1556 1337 1557 1338 1558 1338 1558 1339 1559 1339 1560 1339 1562 1339 1564 1339 1564 1340 1562 1340 1562 1340 1562 1340 1562 1341 1563 1341 1563 1342 1563 1342 1562 1342 1561 1342 1561 1342 1560 1342 1558 1342 1554 1342 1552 1342 1549 1342 1548 1341 1548 1341 1548 1341 1548 1340 1547 1339 1546 1339 1544 1338 1543 1337 1543 1337 1543 1336 1541 1337 1541 1337 1541 1338 1544 1339 1544 1339 1544 1339 1545 1339 1545 1339 1546 1341 1546 1342 1546 1342 1545 1342 1545 1342 1542 1342 1539 1342 1538 1342 1538 1341 1535 1341 1534 1340 1533 1340 1533 1340 1532 1340 1532 1339 1532 1339 1532 1339 1531 1338 1529 1338 1529 1338 1528 1338 1529 1339 1530 1339 1530 1339 1530 1339 1529 1340 1530 1340 1530 1341 1530 1341 1530 1341 1530 1342 1526 1342 1525 1342 1524 1342 1523 1342 1523 1342 1521 1341 1520 1340 1518 1339 1518 1339 1517 1339 1517 1339 1517 1340 1517 1341 1518 1342 1519 1342 1522 1342 1526 1343 1527 1343 1527 1344 1527 1344 1525 1344 1522 1344 1521 1344 1519 1344 1519 1344 1515 1344 1514 1344 1512 1344 1509 1343 1509 1343 1506 1343 1502 1343 1502 1343 1501 1343 1500 1343 1499 1343 1497 1343 1496 1343 1495 1342 1495 1342 1495 1341 1495 1341 1495 1341 1496 1341 1497 1341 1497 1341 1498 1340 1493 1339 1492 1338 1491 1339 1492 1339 1493 1339 1496 1340 1496 1340 1493 1341 1491 1341 1491 1342 1490 1343 1489 1343 1484 1343 1483 1342 1482 1341 1479 1341 1478 1339 1477 1339 1476 1339 1476 1340 1477 1341 1477 1342 1478 1342 1479 1342 1479 1343 1476 1343 1475 1343 1474 1343 1473 1343 1473 1343 1472 1342 1472 1342 1471 1343 1470 1343 1469 1343 1464 1342 1463 1342 1463 1342 1463 1341 1464 1341 1464 1341 1464 1340 1462 1339 1461 1338 1461 1337 1462 1336 1462 1336 1461 1336 1461 1336 1458 1337 1459 1338 1460 1338 1462 1340 1462 1341 1460 1341 1460 1341 1460 1342 1459 1342 1459 1342 1458 1342 1459 1342 1459 1341 1459 1340 1458 1339 1458 1339 1458 1339 1457 1340 1457 1341 1455 1342 1454 1342 1454 1342 1451 1342 1450 1342 1448 1341 1447 1340 1446 1340 1445 1340 1445 1340 1443 1340 1444 1339 1444 1339 1445 1338 1446 1338 1446 1338 1447 1338 1447 1337 1446 1336 1446 1336 1445 1335 1447 1334 1449 1334 1450 1334 1451 1334 1454 1333 1455 1333 1457 1333 1458 1333 1458 1332 1461 1331 1462 1331 1461 1331 1463 1331 1465 1331 1465 1331 1467 1331 1467 1331 1470 1331 1474 1330 1475 1331 1475 1331 1475 1331 1476 1331 1478 1331 1480 1331 1480 1331 1478 1331 1479 1330 1479 1330 1480 1330 1480 1330 1480 1330 1484 1330 1485 1330 1486 1330 1487 1331 1488 1331 1489 1331 1490 1330 1489 1330 1486 1330 1483 1329 1482 1329 1482 1329 1483 1329 1483 1329 1485 1329 1486 1329 1486 1329 1487 1328 1486 1328 1486 1328 1485 1328 1484 1328 1484 1328 1483 1328 1482 1328 1482 1328 1481 1328 1484 1327 1484 1327 1485 1327 1486 1327 1486 1327 1487 1327 1488 1327 1486 1327 1484 1327 1484 1327 1482 1327 1481 1327 1481 1327 1480 1327 1480 1327 1479 1327 1479 1327 1474 1327 1473 1326 1474 1325 1475 1325 1475 1325 1474 1324 1472 1323 1468 1323 1467 1323 1466 1322 1466 1322 1467 1321 1468 1320 1472 1319 1475 1319 1481 1318 1482 1318 1483 1318 1487 1319 1488 1319 1491 1319 1494 1319 1495 1319 1495 1319 1498 1320 1498 1320 1502 1321 1503 1323 1506 1325 1505 1326 1505 1326 1505 1326 1509 1325 1509 1325 1509 1326 1510 1326 1511 1326 1511 1326 1513 1326 1513 1326 1515 1326 1518 1327 1518 1327 1519 1327 1520 1327 1521 1328 1522 1328 1523 1328 1524 1328 1525 1328 1526 1328 M 1622 1238 1623 1238 1623 1238 1623 1238 1623 1237 1624 1237 1625 1237 1626 1237 1627 1238 1627 1238 1627 1238 1626 1238 1624 1239 1623 1239 1623 1239 1622 1238 M 1409 1260 1409 1260 1408 1260 1408 1260 1406 1259 1406 1259 1407 1259 1407 1259 1408 1259 1408 1259 1409 1259 1410 1259 1412 1259 1412 1260 1412 1260 1411 1260 1411 1260 1410 1260 1409 1260 M 1811 1260 1808 1260 1807 1260 1806 1260 1806 1259 1807 1259 1809 1259 1812 1259 1814 1259 1816 1259 1816 1259 1815 1260 1814 1260 1813 1260 1811 1260 1811 1260 M 1403 1297 1402 1297 1402 1297 1397 1297 1396 1297 1395 1297 1396 1296 1396 1296 1396 1296 1397 1296 1398 1296 1399 1296 1401 1296 1401 1296 1403 1296 1406 1296 1406 1296 1407 1296 1407 1296 1408 1296 1408 1296 1409 1296 1410 1295 1411 1295 1412 1295 1413 1295 1414 1295 1414 1295 1417 1295 1418 1295 1419 1295 1420 1294 1419 1294 1418 1294 1418 1294 1415 1295 1413 1295 1412 1295 1410 1295 1410 1295 1409 1295 1409 1295 1408 1295 1408 1295 1407 1295 1403 1295 1403 1295 1402 1295 1401 1295 1400 1295 1399 1295 1397 1295 1396 1295 1398 1294 1399 1294 1401 1294 1402 1294 1401 1294 1400 1293 1399 1293 1396 1293 1396 1293 1395 1294 1395 1294 1393 1294 1393 1294 1392 1294 1392 1294 1391 1294 1391 1294 1390 1294 1390 1294 1389 1293 1389 1293 1388 1293 1387 1293 1388 1293 1388 1294 1388 1294 1389 1294 1389 1294 1389 1294 1388 1295 1385 1295 1385 1295 1386 1294 1386 1294 1385 1294 1384 1294 1384 1294 1383 1294 1382 1295 1379 1296 1377 1296 1377 1296 1376 1296 1375 1297 1374 1297 1374 1297 1373 1297 1370 1296 1371 1295 1372 1295 1372 1295 1373 1295 1370 1294 1368 1294 1366 1294 1366 1295 1366 1295 1367 1295 1367 1295 1366 1295 1365 1295 1364 1295 1363 1295 1363 1295 1362 1295 1362 1296 1361 1296 1358 1296 1358 1296 1357 1296 1356 1296 1355 1296 1353 1295 1353 1295 1353 1295 1351 1295 1350 1295 1347 1294 1345 1294 1345 1294 1346 1292 1347 1292 1347 1292 1349 1292 1353 1292 1355 1292 1357 1291 1360 1291 1361 1291 1362 1291 1367 1290 1368 1290 1368 1290 1369 1289 1368 1288 1368 1288 1367 1288 1364 1289 1364 1289 1362 1290 1361 1290 1361 1290 1360 1290 1358 1290 1358 1290 1356 1290 1355 1290 1355 1290 1352 1290 1351 1291 1350 1291 1346 1290 1345 1290 1344 1290 1343 1290 1343 1290 1342 1290 1342 1290 1341 1289 1337 1288 1336 1288 1336 1288 1336 1287 1334 1287 1332 1287 1332 1287 1333 1286 1334 1286 1335 1286 1335 1286 1339 1286 1339 1286 1339 1286 1339 1286 1338 1286 1337 1286 1336 1286 1335 1286 1334 1286 1333 1286 1333 1286 1332 1285 1332 1285 1331 1285 1332 1284 1334 1284 1335 1284 1335 1284 1335 1284 1334 1284 1333 1284 1333 1284 1332 1284 1332 1284 1331 1284 1331 1284 1330 1284 1329 1283 1329 1283 1330 1283 1330 1282 1331 1282 1335 1283 1336 1283 1336 1283 1337 1283 1339 1283 1340 1283 1341 1284 1344 1284 1349 1284 1351 1284 1352 1284 1355 1284 1357 1284 1357 1284 1357 1284 1358 1284 1358 1284 1359 1284 1359 1284 1360 1284 1360 1284 1362 1284 1364 1285 1365 1285 1367 1285 1367 1285 1367 1285 1366 1285 1365 1284 1364 1284 1363 1284 1362 1283 1362 1283 1364 1283 1364 1283 1365 1282 1366 1282 1367 1282 1367 1282 1369 1282 1372 1282 1372 1282 1372 1282 1371 1282 1370 1282 1368 1282 1366 1281 1363 1282 1362 1282 1362 1282 1361 1282 1357 1283 1356 1283 1353 1283 1352 1283 1352 1283 1351 1283 1347 1282 1347 1282 1348 1282 1348 1282 1349 1281 1350 1281 1351 1281 1352 1281 1352 1281 1353 1281 1353 1281 1354 1281 1353 1281 1352 1281 1351 1281 1350 1281 1350 1281 1349 1281 1348 1281 1347 1281 1347 1281 1346 1281 1344 1282 1343 1282 1342 1282 1338 1281 1335 1280 1334 1280 1332 1279 1331 1279 1331 1279 1332 1279 1332 1279 1335 1279 1335 1279 1336 1279 1338 1279 1338 1279 1338 1279 1337 1279 1338 1279 1340 1279 1341 1278 1342 1279 1346 1279 1346 1279 1347 1279 1348 1279 1349 1279 1349 1279 1349 1279 1350 1279 1350 1279 1351 1279 1350 1279 1350 1279 1349 1279 1348 1278 1347 1278 1347 1278 1346 1278 1344 1277 1342 1277 1341 1276 1342 1275 1343 1275 1347 1275 1349 1275 1350 1275 1351 1275 1353 1275 1354 1275 1355 1275 1356 1275 1357 1275 1357 1275 1358 1275 1358 1275 1359 1275 1360 1276 1360 1276 1361 1276 1362 1276 1363 1276 1365 1276 1368 1276 1370 1276 1373 1276 1374 1276 1375 1276 1376 1276 1376 1276 1377 1276 1377 1276 1375 1276 1374 1275 1374 1275 1374 1275 1372 1275 1369 1275 1367 1275 1366 1275 1366 1275 1365 1275 1365 1275 1363 1274 1364 1274 1364 1274 1365 1274 1365 1274 1367 1274 1368 1274 1370 1274 1370 1274 1372 1274 1372 1273 1372 1273 1371 1273 1369 1273 1367 1273 1366 1273 1366 1273 1365 1273 1363 1273 1363 1273 1362 1273 1359 1273 1357 1272 1357 1272 1354 1272 1353 1272 1352 1272 1351 1272 1350 1272 1350 1272 1349 1272 1350 1271 1351 1271 1352 1271 1354 1271 1355 1271 1355 1271 1355 1271 1353 1271 1351 1271 1350 1270 1351 1270 1352 1270 1353 1270 1353 1270 1353 1269 1354 1269 1354 1269 1355 1268 1359 1268 1361 1268 1363 1268 1364 1268 1365 1268 1366 1268 1366 1269 1366 1269 1367 1269 1367 1269 1368 1269 1368 1269 1371 1268 1372 1268 1375 1268 1373 1268 1373 1268 1371 1268 1368 1267 1368 1267 1369 1267 1369 1267 1370 1267 1370 1267 1370 1267 1371 1267 1372 1267 1374 1267 1374 1267 1375 1267 1375 1267 1376 1267 1377 1267 1379 1267 1381 1267 1385 1267 1385 1267 1387 1267 1388 1267 1388 1266 1388 1266 1385 1265 1383 1265 1381 1265 1379 1265 1378 1265 1376 1266 1375 1265 1373 1265 1371 1265 1370 1265 1369 1265 1369 1265 1367 1265 1368 1264 1369 1263 1370 1263 1370 1263 1371 1263 1373 1263 1373 1263 1377 1263 1378 1263 1378 1263 1379 1263 1380 1264 1380 1264 1381 1264 1381 1264 1382 1264 1381 1263 1381 1263 1381 1263 1384 1263 1387 1263 1389 1263 1391 1263 1392 1264 1394 1264 1397 1264 1402 1265 1403 1265 1404 1265 1405 1265 1406 1266 1408 1266 1409 1267 1408 1267 1407 1267 1407 1268 1408 1268 1409 1268 1410 1268 1413 1269 1413 1269 1413 1270 1414 1270 1417 1271 1419 1272 1420 1273 1420 1273 1421 1273 1422 1273 1423 1273 1425 1273 1425 1273 1426 1273 1427 1274 1428 1274 1427 1275 1426 1275 1426 1275 1425 1276 1426 1276 1426 1276 1428 1276 1428 1276 1431 1276 1434 1276 1434 1276 1435 1276 1437 1276 1437 1276 1438 1276 1438 1276 1440 1277 1440 1277 1441 1277 1441 1277 1441 1277 1441 1277 1442 1276 1444 1276 1445 1276 1446 1276 1446 1276 1448 1276 1448 1276 1449 1276 1450 1276 1453 1277 1452 1278 1452 1278 1451 1278 1450 1278 1450 1278 1450 1278 1450 1278 1451 1278 1451 1278 1452 1278 1452 1278 1452 1279 1451 1280 1451 1280 1450 1280 1450 1280 1449 1280 1451 1281 1452 1281 1452 1282 1452 1282 1457 1283 1457 1283 1461 1283 1461 1283 1462 1283 1463 1283 1464 1283 1466 1283 1467 1283 1465 1282 1465 1282 1464 1281 1463 1281 1462 1281 1461 1281 1460 1281 1459 1281 1459 1280 1459 1279 1459 1278 1460 1278 1461 1278 1462 1278 1462 1278 1463 1278 1463 1278 1465 1278 1468 1278 1471 1278 1474 1278 1475 1278 1475 1279 1476 1280 1476 1281 1476 1282 1475 1282 1474 1282 1470 1282 1470 1282 1469 1283 1470 1284 1471 1284 1472 1284 1472 1284 1473 1284 1474 1284 1475 1284 1475 1284 1480 1284 1481 1284 1481 1284 1482 1284 1485 1285 1484 1286 1480 1287 1480 1287 1480 1287 1478 1287 1478 1287 1478 1287 1478 1287 1479 1287 1480 1287 1482 1287 1483 1287 1484 1286 1485 1286 1485 1286 1486 1286 1486 1286 1485 1289 1483 1290 1483 1291 1481 1291 1480 1291 1479 1291 1478 1292 1478 1292 1478 1292 1479 1292 1480 1293 1480 1293 1480 1293 1481 1293 1481 1292 1482 1292 1483 1292 1484 1291 1485 1291 1485 1291 1486 1291 1486 1291 1488 1291 1488 1291 1488 1292 1488 1292 1489 1292 1490 1292 1490 1291 1489 1291 1489 1291 1489 1291 1490 1290 1491 1290 1492 1290 1492 1290 1493 1290 1496 1290 1497 1290 1497 1290 1497 1291 1500 1291 1501 1292 1501 1293 1501 1293 1499 1293 1499 1294 1500 1294 1500 1294 1501 1294 1501 1294 1502 1294 1502 1293 1503 1293 1503 1292 1504 1291 1505 1291 1505 1291 1506 1291 1507 1291 1508 1291 1509 1292 1510 1292 1511 1293 1512 1294 1513 1294 1515 1295 1515 1295 1517 1295 1519 1296 1519 1296 1518 1297 1516 1297 1515 1297 1514 1297 1514 1297 1513 1297 1513 1298 1508 1298 1505 1299 1503 1299 1501 1299 1499 1299 1497 1299 1496 1299 1495 1299 1494 1300 1493 1300 1492 1301 1492 1301 1491 1301 1490 1301 1490 1301 1489 1301 1489 1301 1488 1301 1487 1300 1487 1300 1486 1300 1486 1300 1485 1301 1486 1302 1486 1302 1486 1302 1485 1303 1485 1303 1485 1303 1483 1303 1481 1304 1480 1304 1480 1304 1477 1306 1477 1306 1476 1306 1476 1306 1475 1306 1474 1306 1471 1306 1470 1305 1470 1304 1469 1304 1470 1301 1471 1301 1472 1301 1472 1301 1473 1301 1474 1300 1473 1299 1473 1299 1473 1300 1472 1300 1471 1300 1471 1300 1471 1301 1469 1301 1469 1301 1468 1301 1468 1301 1467 1301 1466 1301 1466 1304 1466 1305 1467 1306 1469 1306 1469 1306 1470 1306 1471 1307 1471 1308 1471 1308 1470 1309 1469 1309 1469 1309 1466 1309 1466 1309 1463 1308 1460 1307 1458 1307 1457 1307 1458 1308 1458 1308 1459 1309 1460 1309 1461 1310 1461 1310 1461 1310 1460 1311 1460 1311 1459 1312 1458 1312 1458 1313 1457 1314 1457 1314 1456 1314 1456 1314 1454 1314 1453 1314 1452 1314 1452 1313 1450 1313 1449 1312 1448 1311 1445 1310 1443 1310 1441 1309 1439 1308 1439 1307 1438 1307 1438 1307 1437 1307 1437 1307 1436 1307 1436 1308 1436 1308 1438 1310 1438 1310 1439 1310 1439 1310 1440 1310 1441 1310 1441 1310 1442 1311 1444 1312 1446 1314 1445 1314 1445 1314 1445 1314 1444 1314 1443 1314 1443 1314 1443 1313 1442 1313 1442 1313 1441 1313 1440 1313 1439 1313 1439 1313 1438 1313 1438 1312 1437 1312 1437 1312 1435 1311 1434 1311 1434 1311 1433 1311 1432 1311 1431 1311 1430 1312 1429 1312 1428 1312 1428 1311 1427 1311 1426 1312 1426 1312 1428 1312 1428 1312 1429 1312 1430 1312 1431 1312 1432 1313 1433 1314 1433 1314 1432 1314 1432 1314 1431 1314 1430 1315 1430 1315 1428 1315 1426 1314 1422 1314 1421 1314 1418 1314 1416 1314 1414 1314 1413 1314 1412 1314 1411 1313 1410 1313 1409 1313 1408 1313 1408 1313 1407 1313 1407 1313 1406 1313 1406 1313 1406 1313 1405 1313 1405 1313 1404 1313 1404 1313 1401 1312 1397 1312 1396 1311 1390 1310 1390 1309 1390 1309 1392 1309 1395 1309 1395 1309 1396 1309 1396 1309 1396 1309 1397 1309 1398 1309 1397 1308 1397 1308 1402 1308 1402 1308 1404 1308 1405 1308 1406 1308 1407 1308 1410 1308 1411 1308 1411 1308 1411 1308 1411 1308 1406 1308 1403 1307 1400 1307 1397 1307 1396 1307 1394 1307 1394 1307 1393 1307 1393 1307 1392 1307 1391 1307 1391 1307 1390 1307 1387 1307 1386 1307 1386 1307 1385 1307 1383 1307 1377 1305 1377 1304 1379 1304 1379 1304 1380 1304 1381 1304 1383 1304 1384 1305 1384 1305 1385 1305 1386 1305 1387 1305 1387 1305 1388 1305 1389 1305 1388 1304 1387 1304 1385 1304 1384 1304 1384 1304 1383 1304 1383 1303 1381 1303 1380 1303 1379 1303 1378 1303 1377 1303 1376 1303 1376 1303 1375 1303 1375 1303 1375 1303 1374 1303 1373 1302 1372 1302 1370 1301 1369 1301 1369 1301 1370 1301 1374 1300 1375 1300 1376 1300 1376 1300 1377 1300 1377 1300 1380 1300 1382 1299 1382 1299 1384 1298 1384 1298 1385 1298 1385 1298 1386 1298 1390 1298 1391 1298 1392 1298 1392 1298 1393 1298 1393 1298 1394 1298 1397 1298 1398 1298 1399 1298 1401 1298 1402 1298 1407 1298 1410 1298 1415 1298 1418 1298 1421 1297 1425 1297 1428 1297 1428 1297 1429 1297 1430 1297 1431 1297 1432 1297 1431 1297 1430 1297 1429 1297 1426 1297 1423 1297 1419 1297 1418 1297 1414 1297 1408 1297 1405 1297 1405 1297 1404 1297 1403 1297 M 1357 1274 1357 1274 1357 1274 1358 1275 1358 1275 1358 1275 1355 1275 1354 1275 1350 1275 1348 1274 1347 1274 1346 1274 1346 1274 1345 1274 1344 1274 1344 1274 1341 1274 1340 1274 1339 1274 1339 1274 1340 1274 1341 1274 1342 1274 1350 1274 1351 1274 1354 1274 1355 1274 1356 1274 1356 1274 1357 1274 1357 1274 M 1296 1290 1296 1290 1295 1289 1294 1289 1292 1289 1290 1289 1289 1289 1289 1289 1289 1288 1289 1288 1289 1288 1289 1288 1289 1287 1289 1287 1289 1287 1288 1287 1285 1286 1284 1286 1284 1286 1283 1286 1283 1287 1283 1287 1282 1287 1281 1287 1278 1287 1277 1287 1277 1287 1276 1287 1276 1287 1275 1286 1275 1286 1275 1286 1275 1284 1276 1283 1277 1283 1277 1283 1281 1282 1281 1282 1282 1282 1282 1282 1284 1282 1284 1282 1285 1283 1286 1283 1287 1283 1287 1283 1289 1283 1292 1283 1292 1283 1292 1283 1296 1283 1296 1284 1297 1284 1298 1285 1299 1288 1299 1288 1299 1288 1297 1289 1296 1290 M 1217 1305 1219 1304 1218 1304 1216 1304 1215 1304 1216 1304 1215 1304 1215 1305 1214 1305 1214 1305 1213 1305 1213 1305 1211 1304 1211 1304 1211 1304 1212 1303 1213 1303 1214 1303 1216 1303 1217 1302 1216 1302 1214 1302 1214 1302 1213 1301 1213 1301 1212 1301 1211 1301 1211 1301 1210 1301 1210 1301 1206 1301 1206 1302 1205 1303 1205 1303 1201 1304 1201 1304 1200 1304 1199 1304 1198 1304 1198 1304 1197 1304 1198 1303 1201 1302 1203 1301 1203 1300 1202 1300 1199 1300 1198 1300 1198 1300 1196 1300 1196 1300 1195 1300 1192 1301 1191 1301 1190 1300 1190 1300 1189 1300 1189 1300 1188 1300 1188 1298 1190 1296 1191 1296 1191 1295 1191 1295 1192 1295 1193 1296 1195 1296 1195 1296 1196 1296 1198 1296 1199 1296 1200 1296 1202 1296 1205 1295 1205 1295 1206 1295 1207 1295 1211 1295 1214 1295 1214 1295 1215 1295 1217 1295 1218 1295 1219 1295 1220 1295 1220 1295 1223 1296 1225 1296 1226 1296 1228 1296 1228 1296 1229 1296 1231 1297 1232 1298 1234 1298 1236 1299 1236 1300 1235 1301 1235 1301 1235 1301 1234 1302 1236 1303 1237 1303 1237 1303 1240 1302 1240 1301 1239 1301 1240 1300 1241 1300 1244 1300 1245 1300 1246 1300 1246 1299 1247 1299 1247 1299 1248 1299 1251 1299 1252 1300 1253 1300 1253 1300 1257 1301 1258 1301 1259 1301 1259 1301 1259 1301 1260 1301 1262 1302 1262 1302 1260 1303 1259 1303 1259 1304 1259 1304 1262 1304 1264 1304 1265 1304 1265 1304 1267 1304 1268 1304 1268 1304 1269 1304 1269 1304 1272 1303 1273 1304 1273 1304 1274 1305 1276 1305 1277 1305 1278 1305 1279 1305 1279 1306 1279 1306 1278 1306 1277 1306 1277 1307 1278 1307 1278 1307 1278 1307 1279 1307 1280 1307 1281 1307 1285 1307 1285 1307 1283 1309 1282 1309 1281 1309 1280 1309 1280 1310 1281 1310 1281 1310 1281 1310 1282 1311 1281 1311 1281 1312 1282 1312 1283 1312 1284 1312 1285 1312 1285 1312 1286 1313 1287 1313 1287 1313 1287 1313 1291 1315 1294 1315 1294 1316 1295 1316 1294 1317 1294 1317 1293 1317 1292 1317 1293 1318 1293 1318 1290 1319 1287 1319 1285 1320 1285 1320 1282 1320 1280 1320 1279 1320 1274 1320 1273 1319 1270 1319 1268 1319 1266 1317 1265 1317 1265 1317 1264 1316 1264 1315 1264 1315 1262 1315 1262 1314 1261 1314 1261 1313 1260 1314 1258 1314 1257 1314 1257 1314 1256 1314 1255 1313 1254 1313 1254 1313 1248 1312 1244 1312 1243 1312 1243 1312 1241 1312 1240 1312 1240 1313 1238 1313 1238 1313 1237 1313 1236 1313 1236 1313 1236 1313 1234 1312 1233 1312 1233 1312 1233 1312 1234 1311 1235 1311 1235 1311 1235 1311 1234 1311 1233 1311 1233 1311 1232 1311 1232 1311 1231 1311 1230 1311 1229 1311 1228 1311 1227 1311 1226 1311 1226 1311 1226 1311 1224 1311 1223 1311 1222 1311 1221 1311 1221 1312 1219 1312 1218 1312 1217 1312 1217 1312 1217 1312 1216 1312 1215 1313 1215 1313 1214 1313 1214 1313 1214 1313 1213 1313 1213 1313 1212 1313 1211 1313 1209 1313 1208 1313 1207 1313 1206 1312 1206 1312 1201 1311 1198 1310 1197 1309 1198 1308 1199 1308 1200 1308 1201 1308 1201 1308 1203 1307 1203 1307 1208 1308 1208 1308 1209 1308 1210 1308 1210 1308 1211 1308 1212 1308 1212 1308 1213 1308 1215 1308 1216 1308 1217 1308 1218 1308 1219 1308 1220 1309 1221 1309 1222 1308 1224 1307 1223 1307 1223 1307 1222 1307 1218 1307 1214 1307 1214 1307 1213 1307 1214 1306 1216 1306 1217 1306 1218 1306 1219 1306 1220 1306 1221 1306 1222 1306 1222 1306 1222 1305 1222 1305 1223 1305 1223 1305 1224 1305 1224 1305 1225 1305 1223 1304 1223 1304 1222 1304 1220 1304 1219 1305 1219 1305 1217 1305 M 1503 1300 1503 1300 1504 1300 1506 1300 1507 1300 1512 1300 1513 1300 1514 1300 1514 1300 1514 1300 1515 1300 1515 1301 1514 1301 1514 1301 1514 1301 1513 1301 1513 1301 1510 1301 1509 1301 1505 1302 1501 1302 1498 1302 1497 1302 1497 1303 1496 1303 1495 1303 1495 1303 1494 1302 1494 1302 1494 1302 1494 1302 1495 1302 1496 1302 1496 1302 1496 1301 1497 1301 1497 1301 1501 1300 1502 1300 1503 1300 M 1327 1320 1327 1320 1327 1320 1325 1320 1325 1320 1324 1320 1324 1319 1324 1318 1325 1318 1326 1318 1323 1318 1321 1317 1321 1317 1320 1317 1320 1317 1319 1317 1318 1317 1318 1317 1317 1316 1316 1316 1315 1316 1314 1316 1315 1315 1316 1315 1317 1315 1317 1315 1319 1315 1321 1315 1321 1315 1325 1315 1326 1315 1327 1315 1327 1315 1328 1315 1328 1314 1326 1314 1325 1314 1323 1314 1323 1314 1323 1314 1322 1314 1321 1313 1321 1313 1320 1313 1319 1313 1316 1313 1312 1313 1312 1313 1313 1313 1313 1313 1312 1312 1311 1312 1311 1312 1310 1312 1309 1312 1309 1310 1307 1310 1307 1310 1307 1310 1304 1310 1304 1309 1303 1309 1305 1308 1307 1308 1309 1308 1309 1308 1309 1308 1308 1307 1308 1307 1307 1307 1307 1307 1306 1307 1305 1306 1304 1305 1304 1304 1307 1304 1307 1304 1309 1304 1313 1304 1315 1304 1316 1304 1318 1304 1318 1304 1319 1304 1320 1304 1320 1304 1321 1304 1323 1305 1324 1305 1325 1305 1326 1305 1326 1305 1327 1305 1327 1305 1329 1306 1330 1306 1331 1306 1332 1306 1332 1306 1333 1306 1334 1306 1334 1306 1335 1306 1336 1307 1337 1307 1337 1307 1337 1307 1338 1307 1338 1307 1339 1307 1339 1307 1338 1308 1339 1308 1342 1309 1344 1309 1345 1309 1346 1308 1346 1308 1347 1308 1347 1308 1348 1308 1349 1308 1350 1309 1351 1309 1354 1309 1356 1310 1359 1310 1360 1310 1360 1311 1359 1312 1358 1312 1356 1312 1352 1313 1351 1313 1352 1313 1352 1313 1354 1313 1354 1313 1356 1314 1356 1314 1357 1314 1358 1315 1359 1315 1359 1315 1359 1316 1357 1317 1357 1317 1356 1317 1356 1317 1355 1317 1355 1317 1355 1317 1354 1317 1354 1317 1353 1317 1353 1317 1352 1317 1351 1317 1351 1317 1350 1318 1349 1318 1346 1318 1344 1318 1343 1318 1339 1319 1337 1319 1337 1319 1336 1319 1335 1319 1335 1319 1335 1318 1334 1318 1333 1318 1330 1319 1330 1319 1331 1319 1332 1319 1333 1319 1333 1319 1334 1319 1333 1319 1333 1319 1332 1319 1331 1319 1330 1319 1330 1319 1328 1320 1328 1320 1327 1320 1327 1320 M 1688 1306 1687 1306 1686 1306 1683 1305 1682 1305 1683 1304 1683 1304 1683 1304 1684 1304 1684 1304 1687 1305 1688 1305 1689 1305 1690 1305 1690 1305 1689 1306 1689 1306 1689 1306 1688 1306 1688 1306 M 1094 1312 1093 1312 1092 1312 1090 1312 1090 1312 1089 1312 1089 1312 1088 1312 1088 1312 1087 1311 1087 1311 1084 1311 1083 1311 1079 1311 1077 1311 1075 1311 1074 1312 1074 1312 1072 1312 1071 1312 1070 1312 1069 1312 1068 1312 1067 1312 1067 1312 1066 1312 1065 1311 1067 1311 1068 1310 1070 1310 1075 1309 1076 1309 1080 1308 1081 1308 1082 1308 1084 1308 1086 1308 1088 1308 1088 1308 1088 1308 1089 1308 1090 1308 1091 1308 1092 1307 1092 1307 1093 1307 1095 1307 1096 1307 1096 1306 1100 1306 1103 1305 1105 1305 1108 1305 1111 1305 1111 1305 1111 1305 1112 1305 1114 1305 1115 1305 1117 1306 1118 1306 1120 1306 1123 1307 1124 1307 1125 1307 1126 1307 1128 1308 1129 1308 1130 1309 1130 1309 1129 1311 1128 1312 1127 1312 1125 1312 1122 1312 1121 1312 1120 1312 1120 1312 1119 1312 1119 1311 1118 1311 1118 1311 1115 1312 1114 1312 1114 1312 1113 1312 1112 1312 1111 1312 1110 1312 1109 1312 1108 1312 1107 1312 1105 1312 1104 1311 1102 1311 1102 1311 1100 1310 1099 1311 1098 1311 1098 1311 1097 1312 1096 1312 1095 1312 1095 1312 1094 1312 M 1469 1310 1469 1310 1469 1310 1469 1310 1469 1310 1467 1312 1466 1312 1466 1313 1465 1313 1465 1313 1464 1313 1463 1313 1463 1313 1463 1312 1463 1312 1463 1312 1466 1310 1468 1309 1468 1309 1468 1309 1469 1310 M 1365 1312 1366 1312 1368 1313 1368 1313 1369 1314 1369 1314 1368 1314 1368 1314 1367 1314 1366 1314 1365 1314 1363 1313 1363 1313 1363 1312 1363 1312 1363 1312 1363 1312 1364 1312 1364 1312 1365 1312 1365 1312 M 1231 1312 1233 1313 1233 1313 1233 1313 1233 1313 1233 1313 1233 1313 1233 1313 1232 1314 1231 1314 1231 1314 1230 1314 1230 1315 1229 1315 1229 1315 1228 1315 1227 1315 1226 1315 1226 1315 1226 1315 1225 1314 1225 1314 1226 1314 1226 1314 1226 1314 1227 1313 1228 1313 1229 1313 1229 1312 1230 1312 1231 1312 1231 1312 M 1251 1313 1251 1313 1252 1313 1252 1313 1252 1314 1252 1314 1252 1314 1252 1314 1251 1314 1251 1314 1248 1314 1248 1314 1249 1313 1250 1313 1250 1313 1251 1313 1251 1313 1251 1313 M 1085 1327 1084 1327 1083 1327 1080 1327 1079 1327 1078 1327 1078 1326 1077 1326 1077 1325 1076 1325 1076 1325 1075 1325 1074 1326 1074 1326 1073 1326 1071 1325 1071 1325 1071 1325 1070 1324 1070 1324 1069 1324 1068 1324 1067 1324 1067 1324 1066 1323 1068 1323 1067 1321 1066 1321 1066 1320 1065 1320 1065 1320 1065 1319 1066 1318 1067 1318 1068 1318 1069 1318 1069 1318 1069 1318 1071 1318 1073 1318 1074 1318 1074 1317 1077 1317 1079 1317 1081 1316 1084 1317 1086 1316 1090 1316 1090 1316 1090 1316 1091 1316 1092 1316 1097 1315 1097 1315 1097 1315 1101 1315 1101 1315 1102 1315 1102 1315 1104 1316 1104 1316 1105 1316 1105 1316 1106 1315 1106 1315 1107 1315 1109 1315 1111 1315 1114 1315 1116 1315 1119 1315 1121 1315 1123 1315 1124 1315 1124 1316 1125 1316 1125 1316 1123 1317 1123 1317 1122 1317 1121 1318 1121 1318 1120 1318 1118 1318 1116 1318 1115 1318 1115 1318 1115 1318 1114 1318 1110 1319 1108 1319 1108 1319 1105 1319 1105 1319 1104 1319 1104 1319 1104 1319 1106 1320 1107 1320 1108 1321 1108 1321 1108 1321 1110 1320 1111 1320 1112 1320 1112 1320 1113 1320 1115 1320 1116 1320 1116 1320 1117 1320 1117 1322 1117 1324 1116 1324 1115 1324 1114 1325 1114 1325 1113 1325 1110 1325 1105 1326 1104 1326 1104 1326 1103 1326 1102 1326 1101 1326 1100 1326 1099 1326 1097 1326 1095 1326 1092 1327 1089 1327 1086 1327 1085 1327 1085 1327 M 1051 1321 1051 1321 1050 1321 1049 1321 1048 1321 1046 1320 1044 1320 1043 1320 1043 1320 1041 1319 1037 1318 1036 1317 1037 1317 1037 1317 1038 1317 1039 1317 1041 1317 1041 1317 1042 1317 1042 1317 1044 1316 1048 1316 1048 1316 1049 1316 1049 1316 1050 1316 1053 1317 1055 1318 1055 1318 1055 1318 1055 1318 1056 1318 1057 1318 1059 1318 1059 1318 1061 1319 1061 1320 1061 1320 1060 1320 1060 1320 1058 1321 1056 1321 1055 1321 1052 1321 1051 1321 M 1251 1318 1252 1319 1253 1319 1255 1319 1256 1319 1258 1319 1258 1319 1259 1319 1259 1319 1262 1321 1263 1321 1263 1321 1262 1321 1260 1321 1258 1321 1258 1321 1257 1321 1254 1321 1253 1321 1253 1321 1252 1321 1252 1321 1252 1321 1251 1322 1249 1322 1249 1322 1246 1322 1245 1322 1244 1322 1239 1321 1238 1320 1237 1319 1238 1319 1238 1319 1239 1319 1239 1319 1239 1319 1240 1319 1244 1318 1244 1318 1245 1318 1247 1318 1249 1318 1249 1318 1250 1318 1250 1318 1251 1318 M 1634 1319 1635 1319 1636 1319 1636 1319 1636 1319 1636 1320 1636 1320 1635 1320 1635 1320 1634 1320 1632 1320 1631 1320 1631 1320 1630 1320 1630 1319 1630 1319 1631 1319 1631 1319 1632 1319 1634 1319 1634 1319 M 1387 1321 1388 1322 1387 1322 1387 1322 1386 1322 1386 1322 1386 1322 1385 1322 1385 1322 1384 1322 1384 1323 1383 1323 1382 1324 1382 1325 1382 1325 1382 1325 1381 1326 1381 1326 1380 1326 1375 1326 1375 1326 1370 1325 1369 1325 1368 1325 1366 1325 1361 1325 1357 1325 1356 1325 1354 1325 1354 1325 1353 1325 1352 1325 1350 1325 1349 1325 1346 1325 1344 1325 1344 1325 1344 1325 1343 1325 1342 1325 1341 1325 1340 1325 1340 1325 1338 1324 1337 1323 1336 1323 1338 1322 1338 1322 1339 1321 1340 1321 1343 1321 1343 1321 1343 1321 1344 1321 1344 1321 1346 1320 1348 1320 1348 1320 1349 1320 1349 1320 1349 1320 1350 1320 1350 1320 1351 1320 1351 1320 1351 1320 1351 1320 1351 1320 1351 1321 1351 1321 1352 1321 1352 1321 1356 1321 1356 1321 1357 1321 1357 1320 1357 1320 1358 1320 1358 1320 1362 1320 1362 1320 1364 1320 1364 1320 1365 1320 1365 1320 1366 1320 1366 1320 1368 1320 1370 1320 1372 1320 1373 1320 1374 1321 1375 1321 1376 1321 1377 1321 1377 1321 1377 1320 1379 1320 1379 1320 1380 1320 1381 1320 1386 1321 1387 1321 M 1188 1321 1189 1321 1190 1321 1190 1321 1192 1322 1195 1323 1195 1323 1197 1324 1197 1324 1198 1324 1199 1325 1199 1325 1199 1325 1198 1325 1198 1325 1198 1326 1198 1326 1199 1326 1199 1326 1201 1326 1202 1326 1202 1326 1205 1327 1206 1328 1208 1328 1208 1328 1208 1329 1207 1330 1207 1330 1207 1330 1206 1330 1206 1331 1206 1331 1202 1331 1201 1331 1201 1331 1200 1331 1200 1331 1200 1330 1200 1330 1199 1330 1199 1330 1199 1330 1198 1330 1197 1330 1196 1330 1196 1330 1196 1330 1195 1330 1194 1330 1191 1328 1191 1328 1190 1328 1190 1328 1189 1328 1189 1328 1189 1327 1187 1325 1187 1325 1185 1323 1184 1323 1184 1322 1184 1322 1183 1322 1183 1322 1182 1322 1182 1322 1181 1321 1180 1321 1181 1321 1181 1321 1182 1321 1183 1321 1183 1320 1187 1321 1188 1321 M 1432 1329 1431 1329 1427 1328 1426 1328 1426 1328 1424 1328 1423 1328 1422 1328 1419 1327 1419 1326 1418 1326 1418 1324 1419 1323 1419 1323 1419 1323 1420 1323 1423 1322 1423 1322 1424 1322 1425 1322 1426 1322 1427 1323 1428 1323 1429 1323 1430 1323 1430 1323 1431 1323 1431 1323 1432 1323 1434 1323 1434 1323 1434 1323 1434 1323 1435 1323 1437 1324 1439 1324 1439 1324 1440 1325 1441 1325 1441 1325 1442 1325 1443 1327 1443 1328 1442 1328 1440 1329 1439 1329 1439 1329 1437 1329 1436 1329 1436 1329 1435 1329 1433 1329 1432 1329 M 1513 1323 1514 1323 1516 1323 1517 1323 1517 1324 1520 1325 1520 1325 1520 1325 1520 1325 1518 1325 1518 1325 1517 1325 1516 1325 1515 1325 1515 1325 1515 1325 1515 1325 1515 1325 1515 1325 1515 1325 1515 1325 1515 1324 1513 1324 1513 1324 1512 1324 1512 1324 1511 1324 1509 1324 1512 1323 1512 1323 1513 1323 1513 1323 M 1017 1339 1016 1339 1011 1339 1010 1340 1007 1340 1006 1340 1006 1340 1006 1340 1005 1340 1005 1340 1005 1341 1006 1341 1007 1341 1007 1342 1007 1343 1005 1344 1004 1344 1001 1344 1001 1345 1000 1345 998 1344 997 1344 997 1344 996 1344 996 1344 996 1344 995 1343 995 1343 992 1343 992 1343 990 1342 990 1342 989 1342 990 1342 990 1341 991 1339 991 1338 992 1338 992 1337 993 1337 993 1337 994 1337 994 1336 993 1336 993 1335 992 1335 992 1336 992 1336 991 1336 990 1336 990 1336 989 1337 989 1337 988 1336 987 1336 986 1336 985 1336 982 1337 983 1338 983 1338 984 1338 985 1338 985 1338 985 1339 982 1340 982 1341 982 1341 981 1341 981 1341 980 1341 980 1341 979 1340 979 1340 978 1340 977 1340 977 1340 975 1340 975 1341 975 1341 977 1341 979 1341 980 1342 980 1342 981 1342 981 1343 980 1344 980 1344 979 1344 979 1344 978 1344 977 1344 976 1344 976 1344 976 1345 975 1345 976 1346 976 1346 975 1347 973 1347 973 1347 972 1347 971 1347 970 1347 970 1347 969 1346 970 1346 968 1345 966 1343 965 1344 964 1344 964 1345 964 1345 965 1345 965 1346 964 1347 962 1347 962 1347 962 1347 962 1347 962 1347 964 1347 964 1347 966 1348 967 1348 967 1349 967 1349 966 1349 966 1349 965 1349 965 1349 965 1349 964 1349 963 1349 965 1350 961 1351 960 1351 959 1351 959 1351 958 1351 958 1351 957 1351 956 1350 956 1350 956 1350 955 1351 955 1351 954 1351 954 1352 953 1352 953 1352 953 1352 952 1352 952 1352 951 1352 951 1351 951 1351 951 1350 952 1349 951 1349 951 1348 950 1349 949 1349 949 1349 949 1349 948 1349 947 1348 947 1348 946 1347 947 1347 947 1346 945 1345 944 1345 943 1346 942 1346 942 1348 942 1348 943 1348 943 1349 943 1350 942 1349 942 1349 942 1349 942 1349 941 1349 941 1349 938 1349 938 1350 937 1350 936 1350 935 1349 933 1349 929 1348 924 1348 924 1349 924 1349 921 1350 920 1350 920 1350 919 1350 919 1350 918 1350 917 1350 916 1349 915 1349 915 1349 916 1349 916 1349 917 1349 917 1348 919 1347 919 1347 917 1347 916 1347 916 1347 915 1347 917 1346 918 1346 917 1346 917 1346 916 1346 916 1346 916 1346 915 1346 915 1346 913 1347 912 1347 912 1347 910 1347 910 1347 911 1347 913 1345 915 1345 916 1344 916 1344 916 1343 917 1343 917 1343 920 1342 921 1342 926 1342 929 1342 930 1342 931 1342 934 1342 934 1342 936 1341 937 1339 937 1339 937 1339 939 1338 941 1338 941 1338 941 1338 944 1338 944 1337 945 1337 945 1337 945 1337 946 1337 948 1337 948 1337 949 1337 949 1337 952 1336 952 1336 952 1335 957 1333 957 1333 958 1332 958 1332 959 1332 959 1332 960 1332 961 1332 961 1331 962 1331 965 1330 967 1330 968 1330 968 1330 969 1329 969 1329 969 1329 970 1328 970 1328 971 1328 971 1328 972 1327 972 1327 973 1327 974 1328 975 1328 976 1327 976 1327 976 1327 978 1327 979 1327 980 1327 983 1327 987 1327 987 1327 988 1327 988 1327 989 1327 992 1326 993 1326 994 1327 994 1327 995 1327 996 1327 999 1328 1002 1328 1006 1328 1005 1327 1004 1327 1004 1327 1003 1327 1004 1327 1004 1327 1005 1327 1006 1327 1007 1327 1008 1328 1009 1328 1010 1328 1012 1326 1010 1326 1008 1326 1008 1326 1007 1326 1006 1326 1004 1325 1005 1325 1006 1325 1006 1325 1008 1325 1008 1325 1010 1325 1010 1324 1009 1324 1008 1324 1008 1324 1008 1324 1009 1324 1010 1324 1012 1324 1013 1324 1014 1324 1014 1324 1017 1324 1019 1324 1021 1325 1024 1326 1030 1327 1030 1327 1031 1327 1032 1328 1030 1328 1029 1328 1028 1329 1028 1329 1027 1329 1026 1329 1025 1329 1024 1329 1023 1329 1020 1330 1020 1330 1019 1330 1019 1330 1018 1330 1017 1330 1017 1331 1018 1332 1018 1332 1019 1332 1021 1333 1022 1333 1023 1333 1024 1333 1026 1333 1026 1334 1025 1334 1025 1334 1025 1334 1024 1334 1023 1334 1023 1334 1021 1334 1020 1334 1018 1334 1017 1334 1017 1334 1017 1334 1016 1334 1017 1334 1019 1335 1020 1335 1021 1335 1022 1336 1022 1336 1024 1337 1021 1339 1021 1339 1020 1339 1020 1339 1019 1339 1018 1339 1017 1339 M 1420 1329 1421 1329 1422 1329 1423 1329 1423 1329 1424 1329 1425 1329 1426 1329 1426 1329 1426 1330 1425 1330 1425 1330 1424 1330 1424 1330 1423 1330 1422 1330 1421 1330 1419 1330 1418 1330 1418 1330 1417 1330 1417 1329 1417 1329 1417 1329 1417 1329 1418 1329 1418 1329 1419 1329 1420 1329 1420 1329 1420 1329 M 1352 1329 1352 1329 1353 1329 1354 1329 1354 1329 1354 1330 1354 1330 1354 1330 1354 1330 1353 1330 1353 1330 1352 1330 1351 1330 1348 1329 1348 1329 1348 1329 1348 1329 1349 1329 1351 1329 1351 1329 1352 1329 M 1213 1330 1213 1330 1213 1330 1214 1330 1214 1330 1214 1331 1214 1331 1214 1331 1213 1331 1211 1331 1211 1331 1210 1331 1209 1331 1208 1331 1208 1331 1207 1331 1207 1331 1207 1331 1207 1331 1207 1331 1209 1330 1209 1330 1210 1330 1211 1330 1212 1330 1213 1330 M 1058 1331 1057 1331 1057 1331 1056 1331 1056 1331 1055 1331 1055 1331 1055 1330 1056 1330 1056 1330 1056 1330 1057 1330 1058 1330 1059 1330 1059 1330 1059 1330 1060 1331 1059 1331 1059 1331 1059 1331 1058 1331 1058 1331 M 1420 1351 1419 1351 1420 1351 1420 1351 1421 1351 1422 1350 1423 1350 1424 1349 1424 1349 1425 1349 1425 1349 1425 1349 1426 1349 1428 1349 1430 1349 1430 1349 1430 1349 1429 1350 1429 1350 1430 1350 1432 1349 1433 1349 1436 1349 1436 1349 1437 1348 1437 1348 1438 1348 1439 1349 1439 1349 1440 1350 1442 1350 1442 1351 1441 1351 1441 1351 1441 1352 1442 1352 1442 1352 1444 1351 1444 1351 1445 1351 1446 1351 1447 1351 1447 1352 1448 1352 1449 1352 1450 1352 1451 1352 1451 1353 1449 1355 1448 1355 1445 1355 1443 1355 1441 1355 1442 1355 1443 1355 1443 1355 1444 1355 1445 1355 1443 1356 1443 1356 1442 1356 1443 1356 1444 1356 1445 1356 1445 1356 1446 1356 1446 1355 1446 1355 1447 1355 1448 1355 1449 1355 1450 1355 1451 1355 1451 1356 1451 1356 1452 1357 1454 1358 1455 1358 1456 1358 1456 1358 1456 1358 1457 1358 1457 1358 1457 1357 1457 1356 1456 1355 1457 1354 1458 1354 1459 1354 1459 1354 1460 1354 1460 1354 1461 1354 1461 1355 1462 1355 1463 1355 1464 1355 1464 1356 1466 1356 1466 1356 1466 1356 1465 1357 1465 1357 1466 1357 1466 1357 1467 1357 1467 1357 1468 1356 1470 1356 1473 1355 1474 1355 1475 1356 1477 1357 1477 1357 1476 1357 1476 1357 1476 1357 1477 1357 1477 1357 1478 1357 1478 1357 1479 1357 1478 1356 1478 1356 1478 1356 1479 1355 1480 1355 1481 1355 1481 1355 1482 1355 1484 1355 1484 1356 1485 1356 1485 1356 1486 1356 1487 1357 1488 1357 1488 1357 1489 1357 1490 1357 1491 1357 1492 1357 1492 1357 1494 1357 1495 1358 1495 1358 1493 1358 1493 1358 1492 1359 1492 1359 1493 1359 1493 1359 1494 1359 1496 1359 1497 1358 1498 1358 1499 1358 1500 1358 1501 1358 1504 1358 1507 1358 1503 1357 1501 1357 1500 1357 1499 1357 1500 1356 1501 1356 1503 1356 1504 1356 1505 1356 1510 1356 1512 1356 1513 1355 1514 1355 1516 1354 1517 1354 1519 1354 1519 1354 1521 1354 1521 1354 1522 1354 1522 1354 1523 1355 1524 1355 1524 1355 1525 1355 1525 1354 1525 1354 1524 1354 1523 1354 1523 1354 1523 1354 1526 1353 1528 1353 1528 1353 1529 1353 1532 1352 1534 1352 1535 1352 1537 1351 1538 1351 1538 1352 1537 1352 1538 1352 1539 1352 1539 1352 1540 1352 1541 1352 1541 1352 1542 1352 1542 1352 1542 1353 1545 1353 1547 1353 1548 1353 1550 1353 1552 1352 1553 1352 1555 1352 1558 1351 1560 1351 1561 1351 1563 1351 1566 1352 1567 1352 1571 1352 1573 1352 1574 1352 1578 1352 1578 1353 1577 1354 1577 1354 1581 1354 1582 1354 1584 1354 1585 1354 1588 1354 1589 1354 1590 1354 1592 1355 1593 1355 1594 1355 1596 1355 1596 1355 1598 1356 1596 1356 1594 1357 1593 1357 1592 1357 1592 1357 1595 1357 1597 1357 1598 1357 1602 1357 1603 1357 1604 1357 1603 1357 1602 1358 1603 1358 1604 1358 1605 1358 1605 1359 1605 1359 1605 1359 1604 1359 1603 1360 1604 1360 1604 1360 1606 1360 1605 1361 1604 1361 1603 1362 1603 1362 1602 1362 1601 1362 1600 1362 1598 1362 1598 1363 1598 1363 1595 1363 1595 1364 1594 1364 1592 1364 1590 1364 1591 1364 1592 1365 1592 1365 1592 1365 1593 1365 1594 1365 1594 1365 1593 1365 1593 1365 1593 1365 1597 1365 1598 1365 1598 1364 1599 1364 1601 1364 1602 1364 1602 1364 1603 1364 1604 1364 1605 1365 1604 1365 1606 1366 1606 1366 1607 1366 1608 1366 1607 1367 1607 1367 1605 1367 1605 1367 1604 1367 1601 1367 1600 1368 1599 1368 1598 1368 1596 1367 1593 1367 1593 1366 1592 1366 1592 1366 1591 1366 1591 1366 1591 1366 1591 1367 1592 1367 1592 1367 1593 1367 1594 1367 1594 1367 1595 1367 1596 1367 1596 1368 1595 1369 1594 1369 1595 1370 1593 1371 1593 1371 1592 1371 1591 1371 1590 1371 1589 1371 1588 1372 1585 1372 1584 1372 1582 1372 1581 1371 1581 1371 1580 1371 1578 1371 1577 1372 1573 1372 1571 1373 1569 1373 1569 1373 1568 1373 1568 1373 1564 1373 1564 1373 1560 1372 1557 1372 1556 1372 1556 1372 1555 1372 1553 1372 1553 1372 1551 1372 1551 1372 1550 1372 1549 1371 1548 1371 1548 1370 1547 1370 1547 1369 1548 1369 1548 1368 1549 1368 1548 1367 1548 1367 1547 1367 1546 1367 1546 1367 1545 1367 1545 1367 1544 1367 1543 1367 1543 1367 1542 1366 1541 1366 1541 1366 1540 1366 1541 1367 1542 1368 1542 1368 1543 1368 1544 1368 1544 1368 1544 1369 1542 1371 1542 1371 1540 1372 1538 1372 1537 1372 1536 1372 1536 1372 1536 1372 1535 1372 1533 1372 1532 1372 1532 1372 1531 1372 1530 1372 1530 1372 1529 1373 1528 1373 1528 1372 1527 1372 1523 1372 1520 1373 1519 1373 1519 1373 1519 1372 1518 1371 1518 1371 1518 1370 1518 1370 1517 1369 1516 1370 1517 1371 1517 1372 1516 1372 1516 1373 1515 1373 1514 1373 1513 1373 1512 1373 1512 1372 1510 1370 1509 1370 1509 1370 1509 1370 1509 1371 1510 1372 1509 1372 1509 1372 1509 1373 1508 1373 1508 1373 1501 1373 1500 1373 1500 1373 1499 1373 1500 1372 1500 1372 1499 1371 1498 1371 1498 1371 1498 1371 1498 1371 1498 1372 1497 1372 1496 1373 1495 1373 1495 1373 1494 1373 1491 1372 1491 1372 1490 1372 1490 1372 1489 1371 1489 1371 1489 1371 1489 1372 1490 1373 1490 1373 1487 1373 1482 1373 1481 1373 1480 1373 1480 1373 1478 1373 1477 1373 1476 1373 1475 1373 1474 1373 1474 1373 1473 1373 1472 1373 1471 1373 1469 1373 1465 1373 1464 1373 1462 1373 1461 1373 1460 1372 1460 1371 1461 1371 1463 1369 1464 1368 1462 1367 1461 1366 1460 1366 1459 1367 1458 1368 1457 1369 1457 1369 1456 1370 1456 1370 1456 1370 1455 1370 1455 1369 1455 1369 1455 1368 1452 1367 1453 1368 1453 1368 1453 1369 1452 1369 1452 1369 1451 1369 1450 1369 1450 1368 1449 1368 1450 1369 1450 1369 1451 1369 1452 1369 1452 1370 1451 1371 1451 1371 1450 1371 1446 1372 1446 1372 1444 1372 1439 1372 1436 1372 1434 1372 1433 1371 1432 1371 1430 1371 1430 1371 1429 1371 1428 1371 1428 1371 1426 1370 1426 1370 1426 1369 1424 1369 1423 1370 1421 1369 1422 1369 1422 1369 1423 1369 1423 1368 1424 1368 1425 1367 1426 1367 1425 1366 1424 1366 1424 1367 1424 1367 1422 1368 1422 1368 1420 1368 1420 1369 1419 1369 1419 1368 1418 1369 1419 1370 1419 1370 1420 1370 1419 1371 1417 1371 1414 1370 1413 1370 1411 1370 1411 1370 1412 1369 1411 1369 1410 1369 1409 1369 1409 1369 1409 1369 1408 1369 1408 1369 1408 1369 1408 1369 1407 1369 1406 1368 1405 1368 1405 1368 1405 1368 1405 1367 1405 1367 1405 1366 1405 1366 1405 1365 1404 1365 1403 1365 1402 1364 1402 1363 1403 1363 1403 1363 1404 1363 1405 1363 1405 1363 1405 1362 1404 1362 1404 1362 1402 1362 1400 1362 1398 1361 1398 1360 1399 1358 1399 1358 1400 1357 1402 1356 1403 1356 1404 1356 1405 1355 1405 1355 1405 1354 1405 1354 1404 1353 1403 1353 1403 1353 1403 1353 1403 1352 1404 1352 1404 1352 1404 1351 1403 1351 1403 1350 1402 1350 1402 1350 1400 1350 1399 1350 1399 1350 1396 1348 1395 1347 1393 1345 1390 1345 1389 1344 1388 1344 1389 1343 1388 1343 1388 1343 1387 1343 1387 1343 1386 1343 1386 1343 1385 1343 1384 1343 1383 1343 1382 1343 1381 1344 1380 1344 1380 1344 1379 1344 1380 1344 1379 1343 1379 1343 1378 1344 1377 1344 1378 1344 1378 1344 1377 1345 1374 1344 1372 1344 1372 1344 1371 1344 1370 1344 1366 1344 1363 1344 1361 1344 1360 1344 1357 1345 1352 1345 1352 1345 1351 1344 1352 1344 1352 1344 1353 1344 1353 1344 1354 1344 1356 1344 1356 1344 1357 1344 1357 1343 1358 1343 1358 1343 1359 1343 1360 1343 1360 1344 1361 1344 1360 1343 1359 1343 1358 1343 1356 1343 1353 1343 1353 1343 1352 1343 1351 1343 1350 1343 1347 1342 1347 1342 1346 1342 1346 1342 1344 1342 1342 1342 1340 1341 1340 1341 1341 1340 1342 1340 1343 1340 1345 1340 1345 1340 1347 1340 1347 1340 1348 1339 1348 1339 1347 1339 1346 1339 1346 1340 1345 1340 1342 1340 1341 1340 1339 1339 1339 1339 1338 1339 1337 1339 1336 1339 1336 1338 1335 1338 1334 1338 1334 1338 1333 1338 1332 1337 1332 1337 1331 1337 1330 1337 1329 1338 1329 1337 1329 1337 1328 1337 1328 1337 1327 1337 1326 1337 1327 1336 1328 1336 1328 1336 1330 1336 1331 1336 1332 1336 1335 1337 1336 1337 1337 1337 1337 1336 1336 1336 1334 1336 1334 1336 1333 1335 1329 1335 1328 1334 1328 1334 1328 1334 1329 1334 1329 1334 1330 1334 1330 1334 1331 1333 1331 1333 1330 1333 1329 1333 1329 1333 1329 1333 1330 1333 1331 1333 1332 1333 1334 1333 1336 1333 1336 1332 1337 1332 1338 1332 1340 1332 1342 1332 1343 1332 1346 1332 1346 1332 1347 1332 1348 1332 1349 1332 1350 1332 1351 1332 1352 1332 1352 1332 1353 1332 1354 1333 1355 1333 1356 1333 1358 1333 1359 1333 1361 1333 1362 1333 1363 1333 1363 1333 1364 1333 1365 1333 1366 1333 1367 1334 1370 1334 1370 1334 1371 1334 1372 1334 1373 1334 1373 1334 1374 1334 1374 1334 1375 1334 1375 1334 1378 1334 1379 1334 1382 1335 1385 1336 1386 1337 1387 1338 1387 1338 1385 1340 1382 1341 1380 1341 1380 1341 1379 1342 1381 1342 1381 1342 1382 1342 1382 1342 1382 1342 1381 1342 1380 1342 1381 1342 1381 1341 1382 1341 1382 1341 1383 1341 1383 1341 1384 1341 1388 1339 1388 1339 1389 1339 1390 1339 1391 1339 1391 1339 1392 1339 1393 1339 1394 1339 1395 1339 1395 1339 1396 1339 1397 1339 1397 1339 1397 1339 1398 1339 1399 1339 1399 1339 1399 1339 1400 1339 1400 1339 1403 1339 1404 1338 1405 1338 1406 1338 1406 1338 1407 1338 1407 1338 1409 1338 1411 1338 1413 1338 1415 1338 1415 1338 1419 1338 1421 1338 1422 1338 1423 1339 1424 1339 1424 1339 1425 1339 1426 1339 1427 1339 1427 1340 1428 1340 1430 1340 1430 1341 1429 1341 1429 1341 1428 1341 1427 1341 1425 1341 1424 1341 1420 1341 1417 1341 1416 1340 1416 1340 1415 1340 1414 1340 1412 1341 1415 1341 1417 1341 1419 1341 1421 1341 1422 1341 1425 1342 1427 1342 1431 1342 1432 1342 1432 1342 1433 1342 1436 1343 1440 1343 1445 1344 1448 1344 1449 1344 1450 1344 1450 1344 1450 1345 1449 1345 1448 1346 1448 1346 1447 1346 1444 1346 1440 1346 1439 1346 1438 1346 1432 1346 1431 1346 1430 1346 1431 1346 1433 1346 1434 1346 1435 1346 1437 1346 1436 1347 1436 1347 1433 1346 1430 1346 1427 1346 1425 1346 1423 1346 1420 1346 1418 1345 1417 1345 1415 1345 1414 1345 1412 1344 1412 1344 1412 1345 1415 1345 1416 1345 1416 1346 1417 1346 1418 1346 1419 1346 1420 1346 1423 1346 1426 1347 1427 1347 1425 1347 1425 1347 1425 1347 1424 1347 1424 1348 1426 1348 1427 1347 1428 1347 1428 1347 1429 1347 1430 1347 1431 1347 1431 1347 1434 1348 1434 1348 1433 1348 1433 1348 1432 1348 1431 1348 1427 1348 1426 1348 1423 1348 1423 1348 1421 1348 1419 1348 1420 1349 1422 1349 1422 1350 1421 1350 1420 1350 1420 1350 1419 1350 1420 1351 M 1322 1332 1323 1332 1323 1332 1324 1332 1324 1333 1322 1333 1322 1333 1321 1333 1320 1333 1319 1333 1318 1333 1318 1333 1319 1333 1320 1332 1321 1332 1322 1332 M 1053 1337 1052 1337 1051 1337 1046 1337 1042 1337 1042 1337 1041 1337 1040 1337 1040 1336 1041 1336 1041 1336 1041 1336 1042 1335 1044 1335 1044 1335 1045 1335 1049 1335 1052 1334 1055 1334 1056 1334 1057 1334 1058 1334 1058 1335 1062 1335 1062 1335 1063 1336 1063 1336 1060 1337 1060 1337 1060 1337 1059 1337 1059 1337 1058 1337 1057 1337 1056 1337 1053 1337 M 1083 1352 1086 1352 1088 1351 1091 1351 1092 1351 1092 1351 1093 1351 1094 1351 1094 1351 1095 1351 1096 1353 1096 1354 1096 1355 1096 1355 1097 1356 1098 1356 1098 1356 1099 1356 1102 1356 1103 1356 1104 1356 1105 1356 1106 1356 1109 1355 1110 1355 1111 1356 1111 1356 1113 1356 1115 1356 1117 1356 1118 1356 1122 1356 1125 1356 1129 1356 1130 1356 1131 1356 1133 1357 1135 1357 1136 1357 1135 1356 1137 1355 1137 1354 1136 1354 1135 1354 1135 1353 1133 1353 1132 1353 1131 1352 1130 1352 1129 1352 1127 1352 1124 1352 1124 1351 1123 1351 1122 1351 1120 1351 1120 1351 1120 1351 1119 1351 1117 1350 1119 1350 1121 1350 1123 1350 1123 1349 1127 1348 1129 1347 1128 1346 1123 1345 1122 1345 1121 1345 1121 1345 1120 1345 1120 1345 1120 1345 1119 1345 1119 1345 1118 1345 1117 1345 1116 1344 1116 1344 1115 1344 1114 1344 1114 1344 1113 1344 1112 1344 1112 1344 1112 1342 1112 1342 1113 1342 1117 1341 1121 1341 1122 1341 1123 1340 1122 1340 1121 1340 1121 1340 1122 1339 1123 1339 1124 1339 1125 1338 1126 1337 1129 1336 1130 1336 1132 1336 1134 1335 1134 1336 1135 1336 1135 1336 1136 1336 1137 1335 1137 1335 1138 1335 1138 1335 1140 1336 1139 1336 1140 1336 1141 1336 1142 1336 1142 1337 1143 1337 1143 1337 1143 1338 1141 1338 1141 1338 1141 1338 1140 1338 1140 1338 1140 1338 1139 1338 1139 1338 1139 1339 1140 1339 1141 1341 1141 1342 1141 1342 1142 1342 1144 1342 1145 1342 1145 1342 1146 1343 1149 1344 1148 1344 1146 1345 1145 1346 1144 1346 1143 1346 1144 1348 1144 1348 1150 1348 1150 1348 1151 1348 1153 1348 1153 1348 1154 1348 1156 1349 1153 1350 1153 1350 1152 1350 1151 1350 1150 1351 1149 1352 1150 1352 1150 1352 1151 1352 1151 1352 1152 1352 1153 1351 1154 1351 1154 1351 1154 1351 1158 1350 1160 1350 1161 1350 1163 1350 1165 1350 1165 1351 1164 1351 1165 1352 1167 1353 1168 1353 1168 1352 1169 1352 1169 1352 1170 1352 1170 1352 1171 1352 1172 1352 1172 1352 1171 1352 1170 1352 1169 1352 1169 1352 1168 1351 1168 1351 1168 1350 1168 1349 1172 1348 1172 1348 1173 1348 1176 1348 1177 1348 1177 1348 1182 1348 1183 1348 1184 1349 1185 1349 1186 1349 1187 1349 1188 1350 1190 1351 1191 1351 1192 1353 1192 1354 1190 1356 1190 1356 1189 1356 1188 1356 1188 1356 1187 1356 1186 1357 1187 1357 1188 1357 1188 1359 1186 1360 1186 1360 1185 1360 1185 1360 1184 1360 1183 1361 1184 1362 1184 1362 1184 1362 1183 1362 1183 1362 1182 1362 1181 1363 1182 1363 1182 1364 1178 1364 1178 1364 1175 1364 1173 1365 1171 1365 1170 1365 1170 1365 1169 1365 1167 1366 1166 1366 1166 1366 1165 1366 1165 1366 1163 1366 1163 1366 1159 1366 1158 1366 1156 1365 1155 1365 1155 1365 1155 1364 1155 1364 1155 1363 1155 1363 1154 1363 1154 1363 1154 1364 1154 1364 1154 1364 1152 1365 1151 1366 1150 1366 1150 1366 1148 1366 1147 1366 1144 1366 1143 1366 1141 1366 1141 1365 1139 1365 1138 1365 1137 1365 1138 1365 1140 1365 1140 1365 1141 1365 1142 1365 1142 1365 1140 1364 1140 1364 1137 1363 1137 1363 1135 1364 1135 1364 1134 1365 1132 1365 1128 1366 1128 1366 1127 1366 1126 1367 1125 1367 1123 1367 1122 1367 1121 1367 1121 1367 1120 1367 1119 1367 1119 1367 1118 1367 1118 1367 1116 1367 1113 1367 1113 1367 1113 1367 1112 1367 1112 1367 1112 1368 1111 1368 1109 1368 1109 1369 1106 1370 1106 1370 1105 1370 1105 1370 1102 1371 1098 1371 1096 1372 1096 1372 1095 1372 1093 1372 1092 1373 1091 1373 1091 1373 1089 1373 1087 1373 1086 1373 1085 1373 1081 1374 1080 1374 1079 1374 1077 1374 1074 1374 1072 1374 1071 1374 1070 1374 1066 1374 1064 1374 1063 1374 1063 1374 1060 1374 1059 1373 1057 1373 1055 1373 1053 1372 1052 1372 1049 1371 1049 1371 1048 1371 1048 1370 1047 1370 1047 1369 1048 1369 1051 1368 1053 1368 1054 1368 1058 1367 1059 1367 1061 1367 1063 1367 1066 1367 1066 1367 1067 1366 1068 1366 1068 1366 1070 1365 1072 1365 1072 1365 1073 1365 1077 1365 1078 1365 1078 1365 1079 1365 1080 1365 1086 1365 1087 1365 1087 1365 1088 1365 1088 1365 1089 1365 1090 1365 1091 1365 1092 1365 1093 1364 1093 1364 1097 1363 1102 1362 1103 1361 1101 1360 1098 1360 1098 1361 1098 1361 1097 1361 1096 1362 1094 1362 1093 1362 1093 1362 1091 1362 1090 1362 1087 1362 1082 1363 1080 1363 1079 1363 1079 1362 1079 1362 1080 1362 1080 1362 1081 1361 1081 1361 1080 1361 1079 1361 1079 1361 1079 1362 1079 1362 1077 1362 1077 1362 1076 1361 1076 1361 1077 1361 1076 1360 1076 1360 1075 1360 1075 1361 1074 1361 1075 1362 1075 1362 1073 1363 1072 1363 1071 1363 1066 1363 1065 1363 1065 1363 1060 1364 1059 1364 1056 1364 1055 1364 1055 1364 1055 1363 1055 1362 1057 1359 1058 1359 1059 1359 1060 1359 1061 1359 1065 1358 1064 1358 1063 1358 1061 1358 1060 1358 1058 1358 1057 1359 1056 1359 1056 1359 1055 1358 1054 1358 1054 1357 1053 1357 1053 1358 1053 1358 1053 1359 1052 1361 1052 1361 1051 1361 1051 1361 1050 1361 1050 1361 1049 1361 1049 1361 1049 1360 1046 1360 1046 1360 1044 1360 1045 1360 1045 1360 1046 1360 1047 1360 1047 1360 1048 1361 1049 1362 1049 1362 1049 1363 1048 1363 1048 1363 1047 1363 1047 1364 1046 1364 1045 1364 1043 1364 1042 1365 1041 1365 1040 1365 1039 1365 1038 1365 1037 1365 1036 1365 1035 1365 1035 1364 1035 1363 1035 1363 1035 1362 1034 1362 1034 1362 1033 1363 1032 1363 1032 1363 1031 1363 1031 1363 1030 1363 1030 1363 1028 1363 1029 1363 1030 1364 1029 1364 1029 1365 1028 1365 1028 1365 1027 1365 1026 1365 1026 1365 1025 1365 1020 1364 1018 1363 1018 1362 1018 1362 1018 1361 1018 1361 1014 1362 1013 1362 1013 1362 1012 1362 1012 1363 1011 1363 1011 1363 1004 1362 1000 1362 1000 1362 999 1362 995 1361 996 1360 998 1359 999 1358 1000 1358 1001 1358 1001 1357 1002 1357 1002 1357 1003 1357 1004 1357 1005 1357 1006 1357 1008 1357 1008 1357 1010 1357 1020 1357 1022 1357 1023 1357 1023 1357 1025 1356 1027 1356 1028 1355 1028 1355 1029 1355 1030 1355 1030 1355 1031 1355 1032 1355 1034 1355 1035 1354 1037 1354 1037 1354 1038 1354 1038 1353 1038 1353 1037 1353 1037 1353 1037 1353 1036 1353 1035 1354 1034 1354 1033 1354 1032 1354 1031 1354 1030 1354 1029 1354 1028 1354 1027 1354 1024 1355 1021 1355 1020 1355 1017 1356 1016 1356 1015 1356 1014 1356 1009 1356 1003 1355 1003 1355 1002 1355 1002 1355 1003 1354 1005 1353 1006 1353 1006 1353 1006 1353 1007 1352 1007 1352 1008 1352 1008 1352 1009 1352 1010 1352 1011 1352 1013 1352 1014 1352 1017 1352 1021 1352 1022 1352 1025 1351 1025 1351 1026 1351 1026 1351 1027 1351 1027 1351 1028 1351 1028 1351 1029 1351 1030 1351 1032 1351 1032 1351 1032 1351 1033 1351 1036 1351 1037 1351 1037 1351 1038 1351 1039 1351 1039 1351 1040 1351 1041 1351 1041 1350 1041 1350 1040 1350 1040 1350 1038 1350 1037 1350 1037 1350 1035 1351 1034 1351 1032 1351 1030 1351 1027 1350 1026 1350 1025 1350 1024 1350 1022 1351 1021 1351 1021 1351 1020 1351 1015 1351 1012 1350 1012 1350 1011 1350 1011 1350 1011 1350 1011 1350 1011 1349 1011 1349 1011 1349 1012 1349 1013 1349 1013 1349 1014 1349 1014 1349 1015 1349 1014 1348 1013 1348 1012 1348 1012 1348 1011 1348 1011 1348 1012 1347 1014 1346 1017 1346 1017 1346 1019 1345 1020 1345 1021 1345 1021 1345 1023 1346 1024 1346 1024 1346 1025 1346 1028 1346 1029 1346 1031 1346 1033 1346 1034 1346 1036 1346 1036 1346 1038 1346 1040 1346 1041 1346 1042 1346 1043 1346 1043 1346 1043 1346 1041 1346 1041 1346 1040 1346 1039 1346 1038 1346 1037 1345 1037 1345 1036 1345 1034 1345 1032 1345 1029 1345 1026 1345 1026 1345 1025 1345 1025 1345 1024 1345 1024 1344 1024 1343 1024 1343 1028 1342 1028 1342 1030 1341 1031 1341 1034 1341 1038 1341 1039 1341 1039 1341 1039 1341 1040 1340 1042 1340 1043 1340 1043 1341 1044 1341 1047 1341 1049 1341 1050 1341 1051 1341 1051 1341 1052 1341 1052 1342 1053 1342 1052 1343 1052 1344 1053 1345 1054 1346 1055 1346 1059 1345 1059 1345 1060 1345 1060 1345 1062 1345 1064 1344 1065 1344 1066 1344 1070 1344 1071 1344 1072 1345 1072 1345 1074 1345 1075 1345 1076 1345 1077 1345 1078 1346 1079 1346 1079 1346 1078 1346 1078 1346 1078 1347 1079 1348 1080 1348 1081 1348 1084 1348 1085 1349 1085 1349 1086 1349 1090 1349 1090 1349 1090 1350 1090 1350 1088 1350 1087 1350 1086 1351 1085 1351 1085 1351 1083 1351 1083 1352 1083 1352 M 1438 1341 1438 1341 1437 1341 1436 1341 1435 1341 1435 1340 1434 1340 1434 1340 1431 1338 1430 1338 1429 1338 1428 1337 1428 1337 1428 1337 1428 1337 1428 1336 1428 1336 1429 1336 1429 1336 1430 1336 1434 1335 1436 1335 1437 1335 1438 1335 1439 1335 1440 1336 1440 1336 1441 1336 1443 1337 1442 1337 1442 1338 1442 1338 1442 1338 1441 1338 1440 1338 1440 1338 1440 1339 1440 1339 1440 1340 1441 1340 1441 1340 1442 1340 1442 1340 1443 1340 1443 1341 1441 1341 1441 1341 1439 1341 1438 1341 M 1273 1337 1273 1337 1273 1337 1270 1338 1266 1338 1263 1339 1259 1339 1257 1340 1257 1340 1256 1340 1255 1340 1255 1340 1253 1340 1253 1340 1252 1339 1251 1339 1253 1339 1253 1339 1256 1338 1257 1338 1258 1338 1261 1338 1261 1338 1261 1337 1262 1337 1262 1337 1262 1337 1263 1337 1266 1337 1267 1337 1269 1337 1270 1337 1270 1337 1273 1337 1274 1337 1274 1337 1273 1337 M 1285 1337 1287 1337 1287 1337 1285 1338 1285 1338 1284 1338 1284 1338 1283 1338 1282 1337 1280 1337 1279 1337 1279 1337 1278 1337 1277 1337 1277 1337 1276 1337 1276 1337 1276 1337 1276 1337 1277 1337 1277 1337 1278 1337 1278 1337 1278 1337 1278 1337 1280 1337 1281 1337 1282 1337 1282 1337 1283 1337 1283 1337 1284 1337 1285 1337 M 1317 1347 1317 1347 1316 1347 1315 1349 1315 1350 1316 1350 1316 1351 1315 1352 1315 1352 1312 1352 1311 1353 1311 1353 1312 1353 1312 1353 1315 1353 1319 1354 1319 1354 1320 1354 1319 1354 1319 1355 1319 1356 1319 1357 1319 1357 1320 1358 1320 1358 1320 1358 1321 1358 1321 1358 1320 1358 1319 1358 1318 1358 1318 1358 1318 1357 1317 1356 1314 1356 1314 1355 1313 1356 1313 1356 1314 1357 1314 1357 1313 1357 1313 1357 1312 1357 1312 1357 1311 1356 1311 1356 1310 1356 1309 1357 1310 1357 1310 1357 1311 1357 1311 1357 1313 1358 1313 1358 1311 1358 1310 1358 1309 1358 1310 1358 1311 1359 1312 1359 1311 1359 1310 1359 1309 1359 1309 1359 1308 1359 1308 1359 1307 1359 1307 1359 1308 1360 1308 1360 1309 1360 1311 1360 1312 1360 1314 1361 1314 1361 1314 1362 1315 1362 1316 1362 1316 1362 1317 1362 1316 1363 1315 1363 1314 1363 1312 1363 1312 1363 1309 1362 1309 1362 1309 1361 1309 1361 1308 1361 1307 1362 1308 1362 1308 1362 1309 1363 1310 1363 1310 1363 1311 1363 1311 1364 1310 1364 1310 1364 1308 1364 1305 1364 1305 1364 1304 1364 1303 1365 1302 1365 1300 1365 1298 1365 1297 1365 1294 1365 1293 1365 1288 1365 1288 1365 1287 1365 1288 1364 1288 1363 1289 1363 1289 1363 1289 1363 1288 1363 1287 1364 1286 1364 1286 1364 1287 1365 1285 1365 1285 1365 1284 1365 1284 1365 1283 1365 1278 1365 1277 1365 1275 1365 1274 1365 1274 1365 1272 1364 1272 1364 1271 1364 1272 1363 1272 1363 1271 1362 1271 1362 1271 1362 1270 1362 1270 1362 1269 1361 1270 1361 1271 1361 1271 1361 1273 1361 1273 1361 1273 1361 1274 1361 1274 1361 1277 1361 1278 1361 1276 1361 1275 1361 1274 1361 1273 1361 1272 1361 1272 1360 1271 1360 1272 1360 1273 1360 1273 1360 1274 1360 1273 1360 1272 1360 1272 1360 1270 1360 1269 1360 1268 1360 1265 1359 1267 1359 1267 1359 1268 1359 1267 1359 1267 1359 1268 1359 1268 1359 1268 1359 1271 1359 1269 1358 1268 1358 1267 1358 1266 1358 1267 1358 1267 1358 1271 1357 1272 1357 1273 1357 1275 1357 1276 1357 1277 1357 1278 1357 1276 1357 1275 1357 1274 1357 1273 1357 1276 1356 1277 1356 1278 1356 1280 1356 1279 1356 1279 1356 1278 1356 1277 1356 1281 1355 1281 1355 1282 1355 1282 1355 1283 1355 1281 1355 1280 1355 1280 1355 1281 1354 1281 1354 1286 1354 1290 1354 1291 1354 1292 1354 1293 1354 1294 1354 1295 1354 1295 1354 1295 1353 1295 1353 1294 1353 1288 1353 1285 1354 1284 1353 1283 1353 1282 1354 1280 1354 1277 1354 1274 1354 1272 1354 1271 1354 1269 1354 1268 1354 1267 1354 1265 1355 1265 1355 1258 1355 1258 1355 1257 1355 1256 1355 1254 1355 1254 1355 1250 1355 1247 1356 1246 1356 1246 1356 1245 1356 1244 1356 1243 1356 1243 1356 1240 1356 1239 1356 1239 1356 1238 1356 1237 1356 1235 1356 1232 1355 1233 1355 1235 1355 1235 1354 1237 1353 1237 1353 1240 1353 1240 1353 1241 1353 1242 1353 1243 1353 1245 1354 1245 1354 1245 1353 1246 1353 1244 1353 1244 1352 1242 1352 1241 1352 1240 1352 1240 1352 1240 1351 1241 1351 1241 1351 1242 1351 1243 1351 1244 1351 1248 1350 1249 1350 1249 1350 1249 1351 1250 1351 1253 1351 1254 1352 1255 1353 1255 1353 1257 1353 1258 1353 1259 1352 1259 1352 1258 1352 1257 1352 1256 1352 1257 1352 1256 1351 1256 1351 1256 1351 1255 1351 1254 1351 1253 1351 1253 1350 1253 1350 1254 1349 1255 1349 1256 1349 1257 1348 1257 1348 1256 1348 1255 1349 1252 1349 1252 1349 1251 1349 1250 1349 1249 1348 1248 1348 1248 1348 1247 1347 1248 1347 1250 1346 1250 1346 1251 1346 1252 1346 1253 1345 1254 1345 1254 1345 1256 1345 1255 1345 1254 1345 1251 1345 1250 1345 1249 1345 1245 1345 1244 1345 1244 1345 1243 1345 1244 1345 1245 1345 1245 1345 1246 1343 1245 1343 1245 1342 1246 1342 1248 1342 1248 1341 1249 1341 1249 1341 1251 1341 1255 1342 1255 1342 1255 1342 1257 1342 1257 1342 1257 1342 1258 1343 1259 1343 1260 1343 1261 1343 1260 1344 1262 1345 1262 1345 1263 1345 1264 1345 1265 1346 1266 1346 1266 1346 1268 1346 1271 1347 1273 1348 1276 1349 1277 1350 1278 1350 1280 1350 1282 1350 1282 1350 1283 1350 1284 1349 1286 1349 1286 1349 1287 1349 1286 1349 1283 1349 1281 1349 1281 1349 1280 1350 1279 1349 1276 1348 1276 1347 1275 1346 1276 1346 1276 1346 1277 1346 1277 1346 1280 1346 1282 1347 1283 1347 1283 1347 1284 1346 1285 1346 1286 1346 1287 1346 1287 1346 1286 1346 1285 1346 1283 1346 1283 1346 1282 1346 1280 1346 1279 1346 1279 1346 1275 1346 1275 1346 1275 1346 1274 1346 1271 1345 1270 1345 1270 1345 1270 1345 1270 1344 1271 1344 1271 1344 1272 1344 1273 1344 1275 1344 1276 1344 1279 1344 1280 1344 1280 1344 1277 1344 1273 1343 1273 1342 1273 1342 1272 1342 1272 1342 1270 1343 1269 1343 1267 1343 1267 1343 1263 1341 1262 1341 1262 1340 1263 1340 1264 1340 1265 1340 1265 1340 1266 1340 1266 1340 1267 1339 1270 1339 1272 1339 1272 1339 1273 1338 1274 1338 1275 1338 1277 1339 1278 1339 1279 1339 1280 1339 1280 1339 1281 1339 1281 1339 1282 1338 1283 1338 1285 1339 1288 1340 1290 1341 1291 1342 1291 1342 1292 1342 1292 1342 1292 1342 1292 1342 1292 1341 1294 1341 1294 1341 1295 1341 1295 1342 1296 1342 1296 1342 1296 1341 1295 1341 1294 1341 1293 1340 1293 1339 1294 1339 1294 1339 1296 1339 1298 1339 1300 1339 1300 1339 1301 1339 1301 1339 1302 1339 1302 1338 1301 1338 1300 1338 1300 1338 1299 1338 1298 1338 1297 1338 1296 1338 1297 1338 1298 1338 1298 1338 1302 1338 1302 1338 1303 1338 1303 1338 1303 1338 1304 1339 1305 1339 1307 1339 1306 1339 1305 1339 1305 1339 1305 1339 1304 1339 1303 1339 1304 1339 1304 1340 1305 1340 1308 1340 1311 1340 1311 1340 1313 1340 1314 1340 1315 1341 1315 1342 1314 1342 1314 1343 1314 1344 1315 1344 1315 1345 1316 1345 1316 1345 1317 1345 1318 1346 1318 1347 1317 1347 M 1212 1338 1213 1338 1213 1338 1214 1338 1215 1338 1215 1338 1215 1339 1215 1339 1215 1339 1213 1339 1213 1340 1213 1340 1216 1339 1216 1339 1216 1339 1216 1339 1217 1339 1217 1339 1217 1339 1221 1340 1220 1340 1221 1340 1223 1341 1224 1341 1225 1341 1226 1341 1229 1341 1229 1341 1230 1342 1230 1342 1230 1342 1229 1342 1229 1342 1228 1342 1227 1343 1227 1343 1225 1343 1224 1343 1221 1344 1219 1344 1218 1344 1216 1344 1213 1344 1212 1344 1209 1344 1208 1343 1208 1343 1207 1343 1208 1343 1208 1343 1208 1343 1208 1343 1209 1343 1208 1341 1207 1341 1207 1341 1206 1341 1206 1341 1206 1341 1205 1341 1203 1340 1204 1339 1205 1339 1205 1339 1207 1338 1207 1338 1208 1338 1208 1338 1209 1338 1210 1338 1210 1338 1212 1338 M 1532 1341 1533 1341 1533 1341 1534 1341 1535 1341 1535 1341 1534 1342 1534 1342 1533 1342 1532 1342 1531 1341 1531 1341 1531 1340 1532 1341 M 1235 1344 1236 1344 1236 1345 1236 1345 1237 1345 1237 1345 1237 1345 1237 1346 1236 1347 1235 1347 1235 1347 1234 1347 1233 1347 1233 1347 1232 1347 1231 1347 1224 1348 1224 1348 1219 1348 1217 1348 1216 1348 1215 1348 1214 1348 1214 1348 1215 1348 1216 1348 1216 1348 1214 1348 1213 1348 1212 1348 1212 1348 1208 1347 1207 1347 1206 1346 1206 1346 1207 1346 1209 1345 1209 1345 1210 1345 1210 1345 1211 1345 1212 1345 1213 1345 1215 1345 1215 1345 1216 1345 1220 1344 1224 1344 1228 1344 1228 1344 1229 1344 1232 1344 1233 1344 1234 1344 1234 1344 1235 1344 1235 1344 M 1360 1346 1360 1347 1360 1347 1360 1348 1359 1348 1359 1348 1359 1348 1358 1348 1357 1348 1357 1348 1357 1348 1356 1348 1356 1347 1355 1347 1356 1347 1356 1347 1356 1347 1357 1347 1357 1347 1357 1347 1358 1347 1360 1346 M 1615 1347 1616 1347 1616 1347 1616 1347 1616 1348 1616 1348 1615 1348 1614 1348 1613 1348 1612 1349 1612 1349 1611 1349 1611 1349 1610 1349 1610 1349 1610 1350 1611 1350 1611 1350 1613 1350 1613 1350 1613 1350 1614 1351 1614 1351 1615 1351 1615 1351 1615 1351 1615 1351 1614 1351 1612 1351 1612 1351 1612 1351 1613 1351 1613 1351 1613 1351 1612 1351 1609 1351 1608 1351 1608 1351 1607 1351 1607 1351 1606 1351 1606 1352 1604 1351 1603 1351 1602 1351 1602 1351 1601 1351 1601 1351 1604 1349 1604 1349 1607 1349 1607 1349 1609 1348 1611 1347 1611 1347 1611 1347 1612 1347 1614 1347 1615 1347 1615 1347 M 996 1347 998 1347 998 1347 999 1347 998 1348 997 1349 995 1350 995 1350 994 1350 994 1350 993 1351 991 1352 991 1352 991 1353 990 1353 989 1354 989 1354 988 1354 988 1354 987 1354 986 1355 986 1355 985 1355 985 1356 981 1357 981 1357 979 1357 979 1357 977 1356 976 1356 975 1356 975 1356 973 1356 972 1356 971 1356 971 1356 969 1355 968 1355 968 1355 968 1355 968 1355 968 1355 968 1355 970 1354 971 1353 972 1353 975 1352 978 1351 978 1351 979 1350 980 1350 981 1350 981 1350 984 1349 984 1349 985 1349 987 1349 988 1349 988 1349 988 1349 988 1349 989 1348 989 1348 989 1348 990 1348 990 1348 991 1348 991 1348 992 1348 992 1348 992 1347 994 1347 995 1347 995 1347 996 1347 996 1347 996 1347 M 1240 1347 1240 1348 1241 1348 1241 1348 1241 1348 1240 1348 1240 1349 1239 1349 1238 1349 1237 1349 1235 1349 1234 1349 1234 1349 1233 1349 1233 1349 1231 1349 1230 1350 1228 1350 1227 1350 1226 1350 1226 1350 1225 1350 1224 1350 1224 1350 1224 1350 1223 1350 1223 1350 1221 1350 1220 1350 1220 1350 1220 1350 1219 1350 1219 1350 1218 1350 1218 1350 1217 1350 1216 1350 1215 1350 1215 1350 1215 1350 1215 1350 1214 1350 1215 1350 1215 1350 1217 1349 1217 1349 1217 1349 1218 1349 1218 1349 1219 1349 1219 1349 1220 1349 1221 1349 1221 1349 1222 1349 1222 1349 1222 1349 1223 1349 1223 1349 1224 1349 1224 1348 1224 1348 1225 1348 1225 1348 1226 1348 1226 1348 1227 1348 1227 1348 1227 1348 1228 1348 1228 1348 1229 1348 1230 1348 1230 1348 1231 1348 1231 1348 1232 1348 1232 1348 1234 1347 1235 1347 1235 1347 1235 1347 1236 1347 1237 1347 1238 1347 1239 1347 1239 1347 1240 1347 1240 1347 1240 1347 1240 1347 M 1246 1350 1246 1350 1244 1350 1243 1350 1243 1350 1241 1350 1241 1350 1240 1350 1240 1351 1239 1351 1239 1351 1239 1351 1238 1351 1238 1352 1238 1352 1238 1352 1238 1352 1237 1352 1236 1352 1236 1352 1236 1352 1232 1353 1230 1353 1228 1353 1227 1353 1225 1353 1225 1353 1224 1353 1224 1352 1225 1352 1229 1350 1229 1350 1229 1350 1230 1350 1230 1350 1235 1349 1236 1349 1237 1349 1239 1349 1241 1349 1242 1349 1243 1349 1243 1349 1245 1349 1246 1349 1246 1350 M 1366 1349 1366 1349 1366 1349 1367 1350 1367 1351 1367 1351 1368 1351 1368 1352 1369 1352 1369 1352 1369 1352 1369 1352 1368 1352 1368 1353 1367 1353 1364 1353 1364 1353 1363 1353 1362 1353 1362 1352 1361 1352 1361 1352 1361 1352 1360 1352 1359 1350 1359 1350 1359 1350 1359 1350 1360 1349 1360 1349 1361 1349 1362 1349 1362 1349 1365 1349 1366 1349 M 944 1350 944 1351 944 1351 944 1351 944 1352 943 1352 942 1352 942 1353 942 1353 942 1353 941 1353 941 1353 940 1353 938 1353 938 1353 938 1352 940 1352 942 1352 942 1352 942 1351 942 1351 942 1351 942 1350 942 1350 942 1350 942 1350 943 1350 944 1350 944 1350 944 1350 M 916 1350 917 1350 918 1350 920 1350 921 1350 921 1350 921 1350 921 1351 921 1351 920 1351 916 1350 915 1350 915 1350 916 1350 M 1225 1351 1224 1351 1224 1351 1221 1351 1221 1351 1220 1351 1220 1351 1219 1351 1217 1351 1217 1351 1216 1351 1216 1351 1217 1351 1218 1351 1219 1351 1220 1351 1220 1351 1221 1351 1223 1350 1224 1350 1225 1351 1225 1351 M 1334 1352 1334 1352 1334 1352 1333 1353 1333 1353 1332 1353 1331 1353 1330 1353 1331 1352 1331 1352 1333 1351 1333 1351 1334 1351 1334 1351 1334 1351 1334 1352 M 1341 1355 1342 1355 1343 1355 1343 1355 1343 1356 1343 1356 1339 1357 1338 1357 1338 1357 1338 1357 1335 1356 1335 1356 1334 1356 1335 1356 1335 1356 1335 1356 1335 1356 1334 1356 1333 1356 1333 1356 1333 1357 1333 1357 1333 1357 1334 1357 1334 1357 1331 1358 1328 1359 1328 1359 1328 1359 1328 1359 1327 1359 1325 1357 1325 1357 1326 1356 1327 1356 1327 1356 1327 1356 1331 1356 1334 1355 1334 1355 1335 1355 1335 1354 1335 1354 1335 1354 1336 1354 1336 1354 1336 1354 1337 1354 1338 1355 1340 1355 1340 1355 1340 1355 1341 1355 M 1383 1366 1382 1369 1382 1370 1381 1370 1381 1370 1379 1370 1378 1370 1378 1370 1373 1370 1370 1370 1367 1370 1366 1371 1365 1371 1365 1371 1363 1371 1363 1371 1357 1370 1356 1370 1356 1369 1353 1368 1353 1368 1351 1368 1351 1368 1350 1368 1350 1368 1350 1368 1349 1368 1348 1368 1346 1367 1346 1367 1345 1367 1344 1367 1342 1367 1342 1367 1342 1367 1340 1366 1340 1365 1340 1365 1341 1364 1340 1364 1339 1364 1338 1365 1338 1366 1338 1366 1337 1366 1337 1366 1336 1366 1336 1366 1336 1366 1335 1366 1335 1365 1336 1365 1336 1365 1336 1365 1334 1365 1334 1365 1333 1365 1333 1365 1332 1365 1332 1365 1332 1364 1333 1363 1334 1361 1336 1361 1340 1360 1342 1360 1343 1360 1343 1360 1342 1360 1341 1360 1341 1360 1341 1360 1342 1359 1343 1359 1343 1359 1344 1359 1343 1358 1343 1358 1341 1358 1341 1358 1340 1358 1340 1359 1339 1359 1339 1358 1339 1358 1339 1358 1340 1358 1341 1358 1342 1358 1343 1358 1344 1358 1344 1358 1345 1358 1347 1358 1346 1358 1346 1358 1345 1358 1344 1357 1344 1357 1345 1357 1346 1356 1350 1356 1353 1355 1354 1355 1354 1355 1355 1355 1356 1355 1356 1355 1356 1355 1357 1355 1359 1354 1362 1355 1365 1355 1365 1355 1366 1355 1367 1355 1368 1355 1368 1355 1370 1356 1370 1356 1373 1358 1374 1358 1376 1358 1378 1359 1382 1360 1381 1362 1382 1363 1383 1365 1383 1366 M 1270 1356 1270 1356 1270 1356 1271 1356 1271 1356 1272 1356 1273 1355 1273 1355 1273 1355 1273 1355 1273 1355 1272 1355 1272 1355 1269 1355 1266 1356 1264 1356 1264 1356 1263 1356 1263 1356 1262 1356 1261 1356 1261 1356 1261 1355 1264 1355 1267 1355 1267 1355 1267 1355 1268 1355 1268 1355 1268 1355 1270 1355 1271 1355 1273 1355 1274 1355 1274 1355 1275 1355 1275 1355 1275 1355 1275 1355 1275 1355 1274 1355 1272 1356 1271 1356 1270 1356 M 1211 1358 1212 1358 1214 1358 1215 1358 1215 1358 1216 1359 1217 1359 1218 1360 1220 1362 1220 1362 1218 1363 1218 1363 1217 1363 1217 1363 1216 1364 1215 1364 1210 1364 1210 1364 1207 1364 1203 1364 1200 1363 1200 1362 1201 1362 1201 1362 1202 1361 1202 1360 1203 1359 1203 1359 1206 1358 1207 1358 1208 1358 1209 1358 1211 1358 1211 1358 M 1348 1370 1349 1370 1350 1371 1351 1371 1351 1371 1352 1371 1353 1371 1353 1372 1353 1372 1354 1372 1354 1372 1353 1372 1353 1372 1353 1373 1353 1373 1352 1373 1352 1373 1350 1373 1350 1373 1349 1372 1348 1372 1347 1372 1346 1372 1346 1372 1345 1372 1344 1372 1344 1371 1347 1370 1347 1370 1347 1370 1348 1370 1348 1370 M 1320 1371 1320 1371 1321 1371 1321 1371 1322 1371 1321 1372 1320 1372 1320 1372 1316 1373 1315 1373 1315 1373 1315 1373 1314 1373 1313 1373 1313 1373 1313 1373 1313 1372 1314 1372 1316 1372 1317 1371 1317 1371 1318 1371 1319 1371 1319 1371 1319 1371 1319 1371 1320 1371 M 903 1424 903 1424 902 1423 901 1422 900 1421 900 1420 897 1419 896 1418 895 1418 895 1418 894 1417 893 1417 893 1417 892 1417 888 1416 887 1416 885 1416 884 1416 884 1416 883 1416 881 1415 881 1415 877 1414 876 1414 875 1413 878 1413 879 1413 879 1413 879 1413 878 1413 875 1413 873 1413 872 1413 871 1413 869 1413 868 1413 868 1413 867 1413 866 1413 866 1413 864 1413 863 1413 864 1413 864 1413 865 1413 866 1413 866 1413 866 1412 867 1412 867 1412 867 1411 867 1411 867 1410 869 1409 870 1408 871 1407 872 1406 874 1405 874 1405 876 1404 876 1404 878 1403 878 1403 879 1401 879 1400 878 1399 879 1399 880 1399 882 1398 882 1398 883 1398 884 1398 884 1398 885 1398 887 1398 887 1397 885 1397 883 1396 882 1396 881 1396 881 1395 882 1394 883 1394 885 1393 885 1392 886 1391 887 1390 888 1390 890 1389 890 1389 891 1389 892 1389 892 1389 893 1388 894 1387 893 1387 893 1386 895 1386 897 1385 897 1385 898 1384 898 1384 897 1383 895 1383 895 1383 895 1383 894 1383 893 1383 892 1383 892 1383 891 1383 891 1383 889 1380 888 1380 888 1379 888 1378 885 1376 884 1376 883 1376 882 1375 882 1375 883 1375 888 1375 893 1374 896 1374 897 1374 900 1374 900 1374 901 1374 904 1374 907 1373 910 1373 915 1373 919 1373 921 1373 924 1373 925 1373 927 1372 930 1372 931 1372 932 1372 933 1372 933 1372 934 1372 937 1372 938 1372 940 1372 941 1373 941 1373 942 1373 943 1373 944 1374 947 1375 951 1375 955 1376 956 1376 961 1377 962 1377 963 1377 965 1377 964 1378 964 1378 963 1378 963 1378 962 1379 961 1379 961 1380 962 1380 963 1380 963 1380 964 1379 966 1377 967 1377 970 1377 972 1377 972 1377 972 1377 973 1378 973 1379 973 1379 973 1379 972 1379 972 1380 971 1381 972 1381 975 1381 977 1379 978 1379 977 1378 977 1378 976 1378 976 1378 977 1378 979 1377 980 1377 981 1377 982 1377 987 1376 988 1376 989 1376 990 1376 991 1376 992 1376 996 1377 998 1377 999 1377 1000 1377 1002 1377 1004 1378 1009 1379 1010 1380 1010 1380 1012 1381 1014 1381 1015 1382 1017 1383 1017 1383 1017 1383 1019 1383 1021 1384 1022 1384 1023 1384 1024 1385 1024 1385 1025 1385 1029 1386 1032 1387 1032 1388 1033 1388 1033 1388 1033 1389 1031 1390 1027 1391 1025 1391 1024 1391 1018 1392 1017 1392 1016 1392 1015 1392 1015 1392 1011 1393 1009 1394 1007 1395 1006 1395 1004 1395 1000 1396 999 1396 999 1396 995 1397 993 1398 992 1398 991 1398 991 1398 990 1398 988 1399 987 1399 986 1399 985 1399 984 1399 984 1399 983 1400 982 1400 982 1400 981 1401 980 1401 979 1401 978 1401 978 1401 972 1402 972 1402 972 1403 969 1406 969 1406 969 1407 968 1407 967 1407 966 1408 964 1408 964 1408 963 1408 962 1409 962 1409 961 1409 959 1409 956 1409 956 1408 956 1408 954 1408 954 1409 955 1409 955 1409 956 1410 956 1411 955 1411 953 1412 953 1413 952 1413 952 1413 951 1413 951 1414 951 1414 952 1414 952 1416 952 1417 952 1417 952 1417 951 1419 951 1419 950 1420 950 1420 949 1421 948 1421 946 1421 945 1421 944 1421 944 1422 940 1422 937 1422 936 1422 935 1422 933 1422 934 1422 934 1421 933 1421 933 1421 932 1421 932 1421 931 1421 930 1421 930 1421 929 1422 929 1422 928 1422 927 1423 925 1424 924 1424 924 1424 923 1425 922 1425 922 1425 921 1425 920 1425 918 1425 917 1426 916 1426 916 1426 915 1426 915 1427 914 1427 914 1427 913 1427 909 1427 908 1427 908 1427 907 1427 906 1426 906 1426 905 1426 905 1425 904 1425 904 1425 903 1424 M 1301 1375 1301 1375 1301 1375 1302 1376 1301 1376 1301 1376 1299 1376 1298 1376 1297 1376 1296 1376 1296 1376 1298 1375 1298 1375 1300 1375 1300 1375 1300 1375 1301 1375 M 1419 1391 1418 1392 1417 1392 1416 1393 1412 1396 1411 1396 1409 1398 1409 1398 1409 1399 1408 1399 1404 1400 1404 1401 1404 1401 1403 1401 1402 1401 1401 1401 1401 1401 1400 1401 1399 1401 1399 1401 1397 1401 1394 1401 1391 1401 1388 1400 1386 1400 1384 1400 1384 1400 1383 1400 1383 1400 1380 1400 1379 1400 1378 1400 1377 1400 1375 1400 1373 1400 1372 1400 1371 1400 1371 1400 1370 1400 1369 1400 1368 1400 1368 1401 1369 1401 1369 1401 1370 1401 1371 1401 1372 1401 1374 1401 1375 1401 1376 1401 1377 1401 1376 1402 1377 1402 1377 1403 1379 1403 1380 1403 1381 1403 1382 1404 1382 1405 1379 1407 1379 1407 1379 1407 1377 1407 1377 1407 1376 1408 1375 1409 1373 1410 1373 1410 1373 1411 1373 1411 1372 1411 1371 1412 1371 1412 1371 1412 1371 1412 1372 1412 1373 1412 1373 1413 1372 1413 1371 1413 1368 1412 1367 1412 1366 1412 1362 1412 1361 1412 1360 1413 1359 1413 1356 1413 1355 1413 1355 1413 1354 1413 1354 1411 1357 1410 1358 1410 1359 1410 1359 1410 1360 1410 1362 1410 1361 1410 1360 1410 1358 1410 1357 1410 1356 1410 1355 1410 1354 1410 1354 1409 1355 1409 1355 1408 1356 1405 1354 1404 1354 1404 1353 1404 1353 1404 1352 1403 1353 1403 1352 1402 1350 1402 1350 1402 1349 1402 1348 1401 1348 1401 1347 1400 1347 1399 1347 1398 1347 1398 1347 1396 1347 1395 1348 1394 1348 1394 1348 1392 1347 1391 1348 1391 1348 1391 1347 1390 1347 1389 1346 1388 1347 1387 1348 1387 1347 1386 1347 1386 1347 1385 1347 1385 1350 1384 1351 1384 1353 1384 1353 1384 1354 1385 1355 1385 1356 1385 1356 1386 1357 1386 1358 1386 1359 1386 1360 1386 1361 1386 1363 1386 1364 1386 1363 1386 1363 1386 1362 1386 1361 1386 1361 1386 1360 1386 1356 1384 1356 1384 1357 1383 1357 1383 1358 1383 1358 1383 1357 1383 1357 1383 1356 1383 1356 1383 1355 1383 1353 1383 1353 1382 1352 1382 1352 1381 1353 1381 1354 1380 1354 1380 1355 1380 1357 1380 1359 1380 1360 1380 1361 1379 1362 1379 1364 1379 1366 1379 1367 1379 1367 1379 1370 1378 1371 1378 1372 1378 1374 1378 1374 1378 1375 1378 1377 1379 1377 1378 1378 1378 1379 1378 1379 1378 1380 1378 1381 1378 1383 1378 1384 1378 1386 1378 1389 1378 1390 1378 1393 1379 1395 1379 1400 1380 1400 1380 1401 1380 1401 1380 1401 1381 1401 1381 1400 1381 1404 1381 1404 1381 1407 1380 1408 1380 1408 1380 1412 1380 1413 1380 1419 1380 1420 1380 1421 1380 1426 1381 1427 1381 1427 1381 1430 1382 1431 1382 1432 1382 1432 1382 1434 1382 1434 1382 1434 1383 1433 1383 1433 1383 1432 1384 1430 1385 1428 1386 1426 1387 1424 1388 1423 1389 1420 1390 1419 1391 1419 1391 1419 1391 M 1315 1379 1315 1379 1315 1379 1316 1379 1315 1380 1315 1380 1315 1380 1314 1380 1314 1380 1313 1381 1313 1381 1308 1382 1307 1383 1307 1383 1303 1383 1302 1383 1297 1384 1295 1384 1294 1384 1292 1384 1292 1383 1288 1383 1288 1383 1287 1382 1287 1382 1287 1382 1287 1382 1289 1382 1290 1382 1292 1381 1293 1381 1295 1381 1297 1380 1299 1380 1301 1380 1301 1380 1302 1380 1303 1380 1304 1380 1305 1379 1306 1379 1306 1379 1307 1379 1309 1379 1310 1379 1313 1379 1314 1379 1314 1379 1314 1379 1315 1379 1315 1379 M 1437 1381 1437 1381 1435 1381 1434 1380 1434 1380 1433 1380 1433 1380 1433 1380 1434 1380 1434 1380 1438 1379 1438 1380 1438 1380 1439 1380 1439 1380 1439 1380 1439 1380 1438 1381 1437 1381 M 1271 1390 1271 1390 1271 1389 1270 1389 1269 1389 1268 1389 1268 1388 1269 1388 1269 1387 1269 1387 1268 1387 1266 1387 1263 1387 1264 1386 1264 1386 1262 1386 1261 1386 1260 1385 1262 1384 1262 1384 1262 1384 1263 1384 1265 1384 1265 1384 1266 1384 1266 1384 1266 1383 1267 1383 1269 1383 1269 1383 1271 1383 1272 1383 1272 1383 1272 1383 1277 1384 1280 1383 1280 1383 1278 1383 1278 1383 1278 1383 1278 1383 1277 1383 1276 1383 1275 1383 1274 1383 1273 1383 1273 1382 1274 1382 1276 1382 1276 1382 1277 1381 1278 1381 1279 1381 1279 1381 1280 1382 1281 1382 1281 1382 1282 1383 1284 1383 1285 1383 1286 1383 1290 1385 1292 1385 1294 1385 1296 1385 1298 1384 1298 1384 1299 1384 1299 1384 1302 1384 1303 1384 1305 1384 1306 1384 1307 1384 1308 1384 1308 1384 1309 1383 1310 1383 1310 1383 1311 1383 1311 1382 1312 1382 1313 1382 1314 1382 1316 1382 1317 1382 1317 1383 1318 1383 1318 1383 1319 1383 1320 1383 1320 1383 1322 1383 1322 1383 1326 1385 1327 1385 1326 1386 1326 1387 1323 1388 1319 1388 1316 1388 1315 1389 1315 1389 1316 1389 1317 1389 1317 1389 1317 1389 1319 1389 1319 1389 1322 1389 1323 1389 1323 1389 1323 1390 1323 1390 1323 1391 1322 1391 1322 1391 1320 1391 1315 1391 1314 1392 1312 1392 1312 1393 1310 1394 1309 1394 1308 1394 1308 1394 1307 1394 1306 1395 1306 1395 1306 1395 1305 1396 1304 1396 1303 1396 1302 1397 1302 1398 1303 1399 1303 1399 1303 1398 1306 1397 1306 1397 1307 1397 1310 1396 1312 1396 1315 1396 1317 1396 1319 1397 1321 1397 1322 1397 1322 1398 1321 1399 1322 1399 1324 1400 1325 1401 1324 1401 1324 1401 1324 1402 1323 1402 1323 1402 1323 1403 1323 1403 1324 1403 1325 1403 1326 1402 1326 1402 1327 1402 1332 1401 1333 1401 1333 1402 1334 1403 1335 1404 1336 1404 1336 1405 1337 1406 1333 1407 1331 1408 1331 1408 1330 1407 1329 1407 1328 1407 1328 1407 1329 1408 1331 1408 1332 1408 1333 1408 1334 1410 1334 1411 1334 1411 1333 1411 1333 1411 1330 1412 1329 1412 1328 1412 1328 1412 1331 1412 1332 1412 1332 1412 1333 1412 1333 1412 1334 1412 1334 1412 1334 1413 1333 1413 1332 1413 1332 1413 1331 1413 1330 1414 1330 1414 1330 1414 1330 1414 1331 1414 1332 1414 1333 1414 1333 1414 1334 1414 1333 1415 1333 1415 1332 1415 1332 1416 1330 1416 1330 1416 1330 1415 1329 1415 1326 1416 1325 1417 1324 1417 1323 1418 1322 1418 1319 1419 1318 1419 1318 1419 1315 1419 1315 1419 1314 1418 1313 1418 1310 1418 1309 1418 1309 1418 1308 1418 1307 1418 1306 1418 1306 1418 1304 1417 1304 1417 1305 1416 1305 1415 1306 1415 1306 1415 1306 1414 1306 1414 1305 1414 1302 1416 1302 1416 1302 1417 1302 1417 1304 1418 1307 1419 1309 1420 1308 1421 1307 1422 1302 1423 1302 1424 1301 1424 1299 1424 1298 1424 1298 1424 1297 1424 1296 1424 1296 1423 1295 1423 1294 1422 1294 1422 1293 1423 1293 1423 1292 1423 1290 1423 1289 1422 1289 1421 1286 1419 1285 1419 1285 1419 1284 1418 1283 1417 1283 1416 1280 1415 1278 1415 1277 1415 1276 1414 1273 1413 1272 1412 1269 1410 1268 1410 1266 1409 1264 1409 1263 1409 1263 1410 1262 1410 1262 1409 1261 1409 1260 1408 1259 1407 1258 1407 1257 1407 1257 1407 1255 1408 1254 1408 1254 1408 1252 1408 1252 1408 1251 1408 1251 1408 1249 1408 1248 1407 1248 1407 1247 1405 1246 1405 1245 1404 1242 1404 1242 1404 1240 1403 1238 1403 1236 1402 1234 1401 1234 1400 1234 1400 1234 1399 1235 1399 1235 1399 1236 1399 1236 1398 1236 1398 1236 1397 1237 1397 1238 1396 1240 1396 1240 1395 1241 1395 1242 1395 1244 1395 1244 1395 1246 1395 1246 1395 1248 1396 1249 1397 1250 1398 1251 1398 1252 1398 1254 1399 1255 1400 1255 1401 1256 1401 1257 1401 1261 1401 1263 1402 1264 1401 1265 1401 1265 1401 1266 1400 1269 1400 1270 1401 1270 1401 1271 1401 1271 1401 1271 1401 1272 1400 1273 1400 1272 1399 1270 1397 1270 1397 1270 1396 1271 1396 1272 1396 1273 1396 1272 1396 1272 1397 1273 1398 1273 1399 1274 1398 1275 1398 1276 1398 1277 1398 1277 1398 1277 1397 1276 1396 1275 1395 1274 1394 1273 1394 1273 1394 1272 1394 1272 1395 1271 1395 1271 1395 1269 1395 1268 1394 1268 1394 1268 1394 1270 1393 1271 1392 1272 1392 1273 1392 1276 1393 1277 1394 1278 1394 1280 1393 1281 1393 1281 1393 1281 1393 1280 1393 1280 1393 1279 1393 1278 1393 1276 1392 1275 1392 1275 1391 1273 1391 1273 1390 1272 1390 1272 1390 1271 1391 1272 1391 1269 1392 1268 1392 1264 1392 1264 1392 1262 1392 1257 1391 1257 1390 1254 1390 1253 1389 1253 1389 1252 1389 1255 1388 1255 1388 1257 1388 1257 1388 1258 1387 1258 1387 1258 1387 1263 1387 1264 1387 1265 1388 1266 1388 1267 1389 1267 1389 1270 1390 1270 1390 1271 1390 M 1859 1496 1859 1495 1860 1495 1861 1495 1861 1494 1861 1494 1861 1494 1862 1494 1862 1495 1862 1496 1862 1497 1862 1497 1862 1497 1863 1497 1864 1495 1865 1494 1869 1493 1870 1493 1871 1493 1871 1493 1872 1495 1871 1496 1871 1496 1870 1498 1871 1498 1872 1497 1873 1496 1873 1495 1872 1495 1872 1494 1873 1494 1873 1493 1875 1493 1875 1493 1876 1493 1876 1493 1876 1494 1878 1495 1878 1496 1880 1497 1880 1496 1879 1495 1878 1495 1878 1494 1878 1494 1878 1493 1879 1493 1880 1493 1880 1493 1880 1492 1880 1492 1883 1491 1884 1492 1884 1492 1885 1492 1884 1493 1883 1494 1884 1494 1884 1494 1886 1493 1886 1493 1887 1493 1887 1493 1889 1493 1889 1493 1891 1494 1896 1497 1896 1498 1896 1498 1896 1499 1895 1499 1894 1499 1894 1499 1894 1500 1893 1500 1892 1500 1891 1500 1891 1499 1891 1499 1890 1498 1890 1498 1889 1498 1886 1498 1884 1498 1883 1498 1884 1498 1884 1498 1885 1498 1886 1498 1887 1498 1888 1499 1889 1499 1891 1501 1891 1501 1891 1501 1889 1501 1887 1501 1885 1502 1885 1502 1886 1502 1889 1502 1892 1502 1892 1502 1893 1502 1890 1503 1887 1504 1886 1504 1881 1503 1881 1502 1881 1502 1881 1502 1878 1502 1877 1502 1876 1501 1875 1502 1873 1502 1874 1502 1875 1502 1877 1502 1879 1503 1880 1503 1878 1504 1875 1505 1874 1505 1874 1505 1873 1504 1872 1504 1872 1503 1872 1503 1871 1503 1871 1503 1872 1505 1873 1505 1874 1505 1874 1505 1875 1505 1877 1505 1879 1506 1882 1506 1884 1507 1885 1508 1883 1508 1882 1508 1882 1508 1882 1508 1880 1509 1880 1509 1878 1508 1876 1508 1874 1508 1873 1508 1872 1508 1872 1508 1871 1507 1871 1507 1871 1507 1871 1506 1870 1506 1870 1506 1869 1506 1869 1506 1868 1506 1868 1506 1868 1507 1869 1506 1871 1507 1871 1508 1871 1508 1872 1508 1872 1508 1872 1508 1873 1508 1874 1508 1876 1508 1878 1509 1878 1509 1880 1511 1880 1511 1878 1512 1877 1512 1877 1512 1875 1511 1874 1511 1873 1511 1873 1511 1872 1510 1871 1510 1871 1510 1871 1510 1873 1511 1873 1511 1874 1512 1875 1512 1876 1512 1875 1513 1875 1513 1874 1513 1871 1512 1872 1513 1873 1513 1874 1513 1874 1513 1875 1514 1875 1514 1875 1515 1874 1515 1873 1515 1872 1515 1871 1514 1871 1513 1871 1513 1870 1512 1870 1512 1869 1512 1870 1513 1870 1513 1870 1514 1869 1515 1869 1515 1869 1514 1868 1514 1867 1514 1866 1514 1865 1514 1864 1513 1862 1511 1861 1511 1863 1513 1863 1513 1863 1514 1862 1513 1861 1513 1857 1513 1858 1514 1858 1514 1861 1514 1862 1514 1862 1514 1862 1514 1863 1514 1863 1514 1864 1515 1863 1515 1863 1516 1861 1516 1861 1516 1860 1515 1860 1515 1860 1515 1859 1515 1859 1516 1860 1516 1862 1517 1862 1517 1863 1517 1864 1517 1862 1518 1861 1517 1861 1517 1860 1517 1860 1517 1860 1517 1858 1517 1859 1517 1860 1517 1861 1518 1863 1520 1862 1521 1861 1521 1862 1522 1863 1523 1862 1524 1861 1524 1860 1525 1860 1526 1858 1526 1858 1525 1857 1525 1856 1525 1856 1524 1857 1524 1858 1524 1858 1524 1857 1524 1857 1524 1856 1524 1856 1524 1856 1524 1855 1524 1855 1524 1855 1523 1854 1523 1851 1524 1848 1523 1849 1522 1850 1522 1851 1521 1849 1521 1848 1522 1847 1522 1847 1521 1846 1521 1846 1520 1846 1520 1847 1519 1847 1519 1848 1519 1849 1518 1849 1517 1848 1518 1846 1519 1845 1520 1845 1520 1845 1520 1846 1521 1845 1521 1845 1522 1844 1523 1844 1522 1843 1522 1843 1522 1842 1522 1841 1521 1841 1520 1840 1521 1840 1521 1839 1520 1839 1520 1838 1519 1839 1519 1840 1519 1840 1519 1841 1519 1842 1519 1840 1519 1839 1519 1838 1519 1843 1517 1843 1517 1845 1518 1845 1518 1846 1518 1846 1517 1844 1517 1842 1517 1840 1518 1840 1518 1839 1518 1839 1518 1837 1518 1837 1518 1837 1518 1836 1518 1835 1517 1834 1517 1835 1516 1835 1516 1838 1516 1839 1515 1839 1515 1841 1514 1841 1514 1841 1514 1841 1514 1840 1514 1840 1514 1839 1514 1839 1514 1838 1514 1838 1515 1837 1516 1835 1516 1834 1516 1832 1516 1831 1515 1832 1514 1832 1514 1833 1514 1833 1514 1834 1514 1834 1514 1835 1514 1835 1514 1835 1514 1837 1513 1838 1513 1838 1513 1840 1513 1838 1513 1837 1513 1837 1513 1836 1513 1836 1513 1835 1513 1835 1514 1834 1514 1831 1514 1830 1513 1829 1512 1829 1513 1829 1512 1830 1511 1831 1510 1834 1509 1836 1509 1838 1508 1838 1508 1839 1508 1839 1509 1840 1509 1841 1509 1841 1509 1841 1509 1840 1508 1841 1505 1841 1505 1843 1504 1845 1504 1846 1503 1846 1503 1847 1503 1847 1503 1846 1503 1845 1503 1841 1504 1840 1505 1839 1505 1839 1506 1839 1506 1838 1507 1835 1508 1831 1509 1824 1509 1823 1509 1822 1509 1821 1508 1822 1507 1824 1506 1826 1506 1827 1506 1828 1505 1828 1504 1829 1503 1829 1502 1828 1503 1828 1504 1827 1504 1826 1505 1823 1506 1822 1507 1821 1507 1820 1506 1819 1506 1818 1505 1818 1505 1817 1504 1815 1505 1814 1505 1813 1505 1812 1505 1812 1503 1812 1502 1813 1502 1814 1502 1813 1502 1811 1502 1811 1502 1809 1502 1809 1502 1808 1501 1808 1500 1807 1499 1805 1498 1805 1498 1804 1498 1804 1498 1805 1499 1806 1499 1806 1499 1807 1499 1803 1501 1803 1501 1802 1500 1802 1500 1800 1499 1798 1499 1797 1499 1797 1499 1796 1499 1795 1499 1793 1499 1794 1499 1797 1500 1798 1500 1799 1500 1800 1500 1803 1501 1803 1502 1802 1503 1802 1503 1800 1502 1799 1502 1798 1502 1799 1502 1800 1502 1800 1502 1801 1503 1802 1503 1803 1503 1802 1504 1802 1504 1801 1503 1801 1504 1800 1504 1800 1504 1798 1504 1798 1503 1797 1503 1796 1502 1796 1502 1795 1502 1795 1502 1794 1501 1793 1501 1792 1501 1791 1501 1790 1500 1790 1500 1789 1500 1790 1501 1790 1501 1791 1501 1793 1503 1794 1504 1793 1504 1794 1505 1796 1505 1798 1506 1798 1506 1800 1507 1802 1508 1801 1509 1802 1510 1798 1510 1793 1510 1792 1510 1792 1510 1791 1510 1790 1510 1790 1510 1788 1508 1788 1507 1787 1506 1785 1505 1783 1505 1780 1505 1778 1505 1776 1505 1775 1505 1778 1505 1780 1505 1782 1506 1783 1506 1784 1507 1784 1507 1785 1507 1785 1507 1785 1506 1786 1506 1786 1506 1787 1507 1788 1507 1788 1508 1787 1509 1786 1509 1786 1509 1784 1508 1784 1508 1784 1508 1784 1510 1784 1510 1785 1510 1786 1510 1787 1510 1787 1511 1787 1512 1788 1512 1789 1512 1790 1512 1791 1511 1792 1512 1791 1513 1790 1514 1789 1514 1788 1515 1788 1515 1789 1515 1789 1515 1789 1515 1790 1515 1789 1517 1790 1516 1790 1516 1791 1515 1793 1514 1794 1514 1797 1514 1798 1513 1799 1514 1800 1514 1800 1514 1801 1515 1800 1515 1798 1516 1799 1517 1801 1517 1802 1517 1802 1517 1804 1517 1804 1518 1804 1518 1803 1519 1801 1519 1801 1519 1800 1519 1798 1519 1800 1519 1800 1519 1800 1519 1803 1519 1804 1520 1804 1521 1806 1521 1806 1522 1804 1523 1804 1523 1804 1523 1803 1523 1804 1523 1807 1523 1807 1522 1809 1521 1809 1521 1809 1522 1808 1523 1809 1524 1809 1525 1809 1526 1809 1527 1809 1527 1810 1528 1811 1528 1810 1526 1810 1524 1810 1524 1811 1524 1812 1524 1813 1525 1813 1525 1815 1526 1815 1526 1815 1525 1818 1526 1818 1526 1818 1528 1818 1528 1817 1528 1817 1529 1817 1529 1818 1529 1818 1529 1818 1529 1819 1528 1819 1528 1819 1527 1820 1527 1821 1527 1821 1528 1821 1529 1822 1530 1823 1529 1823 1529 1822 1526 1822 1526 1823 1526 1825 1527 1826 1527 1826 1528 1825 1528 1825 1528 1825 1529 1826 1529 1825 1529 1826 1528 1826 1528 1827 1528 1827 1528 1828 1529 1828 1530 1826 1531 1825 1531 1825 1532 1826 1533 1826 1532 1827 1532 1828 1532 1829 1532 1829 1533 1830 1532 1831 1532 1833 1532 1834 1532 1836 1533 1836 1533 1834 1535 1832 1536 1831 1536 1831 1535 1830 1535 1830 1535 1829 1535 1828 1535 1828 1535 1826 1535 1827 1536 1828 1536 1829 1535 1829 1535 1830 1536 1833 1537 1833 1537 1834 1538 1836 1539 1835 1539 1835 1540 1834 1540 1833 1540 1834 1540 1835 1540 1838 1540 1840 1540 1842 1540 1843 1541 1842 1541 1842 1541 1840 1541 1839 1542 1837 1543 1837 1543 1838 1544 1840 1544 1842 1544 1843 1545 1844 1545 1844 1545 1845 1546 1844 1546 1844 1547 1844 1548 1844 1548 1845 1549 1845 1551 1845 1551 1843 1551 1843 1551 1844 1551 1844 1552 1845 1552 1844 1552 1842 1552 1841 1551 1840 1549 1839 1548 1838 1546 1837 1546 1837 1546 1836 1546 1836 1546 1834 1544 1834 1544 1834 1543 1832 1543 1832 1544 1833 1544 1834 1545 1835 1545 1836 1546 1836 1547 1836 1547 1835 1547 1835 1548 1836 1550 1837 1550 1838 1551 1838 1552 1838 1552 1836 1552 1836 1552 1835 1552 1835 1552 1835 1553 1836 1553 1837 1553 1838 1553 1838 1553 1840 1554 1840 1554 1841 1555 1841 1555 1840 1557 1842 1557 1842 1557 1843 1558 1843 1558 1841 1558 1840 1558 1839 1558 1839 1558 1838 1558 1838 1558 1837 1558 1834 1557 1833 1557 1833 1557 1833 1557 1834 1558 1834 1559 1835 1559 1837 1561 1838 1562 1837 1562 1836 1563 1835 1563 1834 1563 1834 1563 1833 1563 1832 1562 1832 1561 1832 1561 1832 1562 1831 1562 1831 1561 1831 1559 1831 1559 1830 1559 1828 1559 1827 1559 1825 1558 1822 1557 1822 1557 1822 1557 1823 1556 1823 1556 1822 1556 1822 1556 1821 1557 1820 1557 1820 1556 1818 1555 1818 1555 1816 1554 1816 1554 1818 1556 1818 1556 1819 1556 1819 1556 1819 1557 1819 1557 1818 1557 1818 1557 1817 1557 1816 1556 1815 1556 1815 1556 1814 1556 1814 1556 1813 1556 1812 1555 1812 1553 1811 1552 1811 1551 1811 1551 1810 1550 1809 1552 1809 1552 1810 1552 1811 1552 1811 1553 1812 1555 1812 1556 1810 1556 1809 1555 1808 1554 1808 1553 1808 1552 1807 1552 1807 1553 1808 1553 1808 1554 1808 1554 1807 1554 1807 1554 1805 1552 1805 1550 1805 1550 1804 1551 1805 1551 1805 1552 1804 1552 1802 1552 1802 1552 1798 1550 1797 1549 1795 1547 1794 1546 1791 1545 1791 1544 1790 1544 1792 1547 1794 1549 1794 1549 1794 1550 1794 1550 1793 1550 1793 1550 1792 1550 1791 1549 1791 1549 1790 1548 1788 1548 1788 1548 1783 1546 1783 1546 1782 1545 1780 1545 1779 1544 1777 1544 1776 1545 1775 1544 1774 1544 1774 1544 1773 1544 1774 1545 1776 1546 1776 1546 1776 1547 1777 1547 1777 1548 1780 1549 1781 1550 1783 1551 1784 1551 1785 1552 1786 1553 1786 1553 1787 1554 1787 1554 1787 1554 1788 1554 1790 1554 1790 1554 1790 1555 1795 1555 1795 1555 1795 1555 1794 1555 1793 1555 1793 1556 1793 1557 1793 1557 1793 1556 1794 1556 1794 1556 1796 1555 1796 1556 1797 1556 1796 1556 1796 1556 1795 1556 1795 1557 1794 1557 1794 1557 1795 1557 1796 1557 1797 1556 1799 1557 1802 1558 1804 1560 1805 1560 1806 1561 1806 1562 1808 1561 1809 1562 1808 1562 1811 1563 1814 1565 1815 1565 1816 1566 1814 1567 1813 1567 1815 1568 1816 1568 1816 1568 1815 1567 1816 1567 1816 1567 1816 1567 1818 1567 1818 1568 1818 1568 1818 1568 1817 1568 1817 1568 1818 1568 1820 1569 1820 1569 1820 1568 1821 1568 1822 1569 1821 1569 1820 1570 1819 1571 1819 1572 1820 1573 1821 1573 1822 1574 1821 1574 1820 1574 1816 1574 1814 1574 1813 1574 1812 1574 1811 1574 1810 1573 1809 1572 1808 1572 1808 1572 1803 1572 1801 1571 1799 1570 1797 1570 1797 1570 1793 1570 1793 1570 1792 1570 1789 1569 1787 1569 1785 1569 1785 1569 1784 1569 1784 1568 1782 1568 1781 1568 1781 1568 1780 1568 1779 1568 1777 1567 1777 1567 1775 1566 1774 1566 1773 1566 1772 1566 1771 1566 1770 1565 1770 1565 1769 1565 1769 1565 1767 1564 1766 1563 1766 1563 1766 1563 1765 1563 1763 1562 1764 1561 1764 1560 1765 1560 1765 1560 1761 1560 1758 1560 1755 1560 1753 1560 1753 1560 1751 1560 1749 1559 1749 1558 1746 1558 1744 1558 1743 1558 1743 1558 1743 1557 1743 1557 1741 1556 1741 1556 1740 1557 1739 1557 1739 1556 1739 1556 1740 1556 1741 1556 1743 1554 1743 1554 1742 1554 1742 1554 1741 1554 1741 1554 1741 1555 1740 1555 1739 1555 1738 1556 1737 1556 1737 1556 1734 1555 1734 1555 1731 1554 1731 1554 1730 1553 1729 1552 1728 1551 1728 1550 1725 1550 1724 1550 1723 1549 1725 1549 1726 1549 1728 1549 1728 1549 1729 1549 1730 1549 1730 1550 1731 1550 1731 1549 1734 1548 1736 1548 1737 1547 1737 1546 1736 1546 1736 1547 1736 1547 1735 1547 1734 1547 1734 1547 1735 1547 1735 1546 1734 1546 1734 1547 1734 1547 1732 1547 1732 1546 1732 1545 1732 1545 1731 1545 1730 1545 1730 1545 1728 1544 1727 1543 1726 1543 1726 1543 1725 1544 1725 1544 1725 1544 1726 1544 1727 1544 1727 1545 1726 1546 1726 1546 1724 1545 1723 1545 1722 1544 1722 1545 1721 1546 1720 1546 1720 1545 1719 1544 1720 1544 1720 1544 1721 1544 1722 1542 1722 1542 1721 1541 1721 1541 1719 1543 1719 1543 1719 1544 1718 1544 1717 1544 1717 1543 1718 1543 1717 1543 1716 1543 1715 1543 1715 1542 1715 1542 1715 1541 1716 1540 1714 1539 1714 1539 1714 1540 1714 1540 1714 1541 1713 1541 1713 1540 1713 1540 1712 1540 1710 1539 1710 1539 1711 1539 1711 1538 1705 1535 1705 1536 1704 1536 1703 1536 1702 1534 1702 1533 1704 1533 1706 1531 1706 1531 1704 1530 1704 1530 1704 1531 1704 1531 1704 1531 1704 1532 1702 1532 1701 1532 1701 1531 1702 1531 1702 1530 1700 1530 1699 1530 1698 1531 1697 1532 1696 1531 1696 1531 1696 1531 1695 1531 1695 1531 1694 1531 1694 1531 1696 1532 1694 1533 1693 1533 1693 1535 1692 1535 1691 1534 1691 1532 1691 1532 1692 1532 1692 1531 1692 1529 1692 1528 1691 1528 1690 1530 1690 1531 1689 1531 1687 1531 1685 1530 1683 1529 1682 1529 1682 1528 1684 1527 1685 1527 1685 1527 1684 1526 1683 1526 1683 1526 1681 1527 1682 1527 1682 1528 1682 1528 1680 1528 1679 1528 1679 1528 1678 1528 1678 1527 1677 1528 1680 1529 1681 1529 1682 1529 1682 1530 1683 1530 1684 1531 1685 1531 1686 1531 1685 1532 1684 1533 1682 1534 1682 1534 1680 1534 1677 1534 1677 1533 1676 1533 1675 1533 1674 1533 1675 1533 1674 1533 1672 1533 1672 1533 1672 1532 1671 1532 1671 1532 1669 1532 1668 1531 1666 1531 1666 1531 1666 1531 1665 1531 1665 1531 1664 1530 1664 1531 1664 1531 1664 1531 1664 1532 1665 1532 1667 1533 1666 1533 1665 1533 1665 1533 1665 1533 1663 1533 1663 1532 1662 1533 1663 1533 1666 1534 1664 1534 1663 1534 1662 1534 1660 1534 1657 1535 1657 1535 1658 1535 1656 1536 1653 1536 1653 1536 1652 1535 1652 1535 1650 1535 1649 1536 1650 1537 1650 1537 1651 1537 1650 1537 1648 1537 1646 1536 1643 1536 1641 1536 1640 1536 1640 1536 1640 1536 1639 1536 1638 1535 1636 1534 1635 1534 1634 1535 1633 1535 1632 1534 1630 1533 1626 1531 1626 1530 1627 1529 1626 1529 1628 1527 1628 1527 1627 1526 1627 1526 1627 1525 1630 1524 1634 1522 1636 1522 1637 1522 1640 1521 1640 1521 1639 1520 1638 1520 1638 1520 1637 1519 1638 1518 1639 1518 1640 1519 1640 1519 1640 1518 1640 1518 1639 1518 1639 1517 1638 1517 1639 1517 1640 1517 1641 1517 1641 1517 1643 1517 1643 1517 1644 1518 1646 1518 1646 1517 1648 1517 1648 1518 1651 1518 1655 1519 1657 1519 1658 1520 1660 1520 1662 1520 1662 1520 1664 1521 1665 1521 1665 1522 1668 1522 1669 1523 1670 1523 1670 1523 1670 1524 1671 1524 1670 1525 1669 1525 1669 1525 1668 1525 1667 1525 1666 1525 1668 1526 1668 1527 1670 1527 1671 1529 1671 1529 1672 1529 1672 1529 1672 1528 1672 1528 1671 1527 1671 1526 1670 1526 1670 1526 1668 1526 1670 1525 1671 1525 1672 1525 1673 1525 1674 1523 1674 1523 1674 1523 1673 1523 1673 1523 1673 1523 1673 1524 1672 1524 1671 1524 1671 1524 1671 1523 1670 1523 1670 1523 1669 1522 1665 1521 1665 1521 1665 1520 1664 1520 1663 1520 1663 1520 1662 1520 1662 1519 1663 1519 1663 1519 1667 1520 1668 1520 1668 1520 1669 1520 1674 1520 1674 1520 1675 1520 1675 1520 1676 1520 1676 1519 1676 1519 1675 1518 1680 1518 1683 1519 1683 1519 1684 1519 1684 1519 1685 1519 1685 1519 1687 1518 1688 1517 1688 1517 1690 1516 1691 1516 1696 1516 1696 1516 1697 1516 1697 1516 1698 1517 1699 1517 1700 1517 1701 1517 1700 1515 1699 1514 1698 1514 1698 1513 1698 1512 1696 1511 1696 1511 1695 1511 1694 1511 1693 1511 1692 1510 1691 1510 1689 1508 1688 1508 1688 1508 1687 1507 1686 1507 1686 1507 1686 1506 1686 1506 1687 1505 1687 1505 1688 1505 1688 1505 1690 1504 1692 1504 1695 1502 1697 1501 1698 1501 1699 1500 1701 1500 1702 1500 1702 1499 1702 1499 1703 1499 1703 1498 1703 1498 1704 1498 1704 1498 1705 1498 1707 1497 1709 1495 1711 1493 1711 1493 1712 1492 1712 1492 1712 1492 1713 1491 1714 1491 1714 1491 1715 1491 1716 1491 1717 1491 1718 1491 1718 1491 1719 1491 1719 1491 1719 1490 1720 1490 1721 1490 1721 1488 1720 1488 1719 1487 1718 1485 1717 1483 1717 1482 1715 1482 1714 1481 1714 1481 1715 1481 1715 1480 1713 1479 1712 1479 1710 1478 1710 1477 1711 1477 1711 1476 1710 1475 1710 1475 1710 1475 1709 1474 1709 1473 1706 1473 1706 1472 1705 1472 1704 1472 1704 1472 1703 1472 1703 1472 1701 1472 1703 1471 1703 1471 1704 1471 1706 1470 1705 1470 1705 1470 1705 1470 1704 1470 1703 1471 1703 1471 1701 1472 1700 1472 1699 1472 1695 1471 1695 1470 1695 1469 1695 1469 1696 1468 1697 1468 1698 1466 1697 1465 1695 1465 1695 1465 1692 1465 1691 1465 1693 1466 1695 1467 1695 1468 1694 1468 1694 1468 1693 1469 1693 1468 1690 1468 1690 1468 1687 1468 1687 1468 1685 1467 1685 1466 1683 1465 1682 1465 1681 1465 1682 1464 1682 1464 1683 1464 1684 1464 1684 1464 1684 1463 1683 1463 1683 1463 1683 1463 1682 1463 1682 1463 1682 1463 1682 1463 1683 1464 1683 1464 1681 1464 1678 1463 1680 1463 1680 1463 1681 1462 1681 1462 1682 1461 1679 1461 1679 1461 1678 1461 1677 1461 1676 1462 1677 1461 1678 1461 1678 1461 1681 1460 1681 1460 1681 1460 1682 1460 1683 1460 1683 1460 1681 1459 1680 1459 1678 1460 1676 1460 1676 1461 1676 1462 1675 1462 1675 1462 1674 1462 1674 1462 1672 1461 1671 1461 1671 1461 1670 1460 1670 1460 1669 1460 1669 1460 1668 1461 1668 1461 1669 1461 1668 1462 1668 1462 1667 1462 1667 1463 1664 1463 1661 1464 1661 1464 1660 1464 1657 1465 1656 1465 1655 1465 1654 1466 1654 1466 1652 1466 1652 1466 1651 1465 1650 1465 1650 1465 1650 1464 1651 1464 1651 1464 1652 1463 1652 1463 1653 1462 1652 1462 1652 1462 1651 1462 1651 1462 1651 1462 1651 1460 1651 1460 1652 1460 1652 1460 1653 1460 1654 1460 1655 1460 1656 1460 1657 1460 1658 1460 1659 1460 1659 1460 1660 1460 1661 1460 1662 1460 1663 1460 1664 1459 1667 1459 1667 1459 1668 1458 1668 1457 1667 1457 1666 1456 1665 1456 1665 1455 1662 1455 1658 1454 1658 1454 1657 1454 1656 1454 1654 1453 1651 1452 1651 1452 1651 1451 1653 1450 1654 1450 1656 1450 1657 1450 1657 1450 1658 1450 1657 1450 1656 1450 1655 1450 1654 1449 1652 1449 1651 1450 1652 1450 1652 1450 1653 1450 1653 1450 1652 1450 1650 1451 1649 1451 1648 1451 1643 1450 1642 1450 1643 1450 1646 1449 1646 1450 1647 1450 1647 1449 1648 1449 1648 1449 1649 1449 1648 1447 1646 1447 1645 1447 1643 1447 1640 1447 1640 1447 1641 1446 1642 1446 1643 1446 1645 1445 1643 1446 1643 1446 1642 1446 1642 1446 1641 1446 1638 1447 1637 1447 1638 1448 1636 1449 1635 1449 1635 1448 1635 1448 1634 1447 1634 1445 1634 1445 1634 1444 1634 1444 1635 1443 1634 1443 1634 1443 1634 1442 1632 1441 1631 1440 1627 1441 1625 1441 1624 1441 1623 1441 1621 1440 1623 1439 1622 1439 1621 1439 1621 1439 1620 1439 1620 1439 1619 1439 1618 1438 1617 1437 1615 1437 1615 1437 1614 1437 1613 1437 1612 1437 1612 1437 1612 1436 1615 1435 1615 1435 1616 1435 1616 1435 1617 1436 1617 1436 1618 1436 1615 1434 1615 1435 1614 1434 1613 1434 1613 1434 1613 1434 1612 1434 1611 1435 1612 1435 1612 1435 1611 1437 1611 1437 1610 1438 1610 1438 1610 1438 1609 1437 1609 1437 1608 1437 1607 1437 1607 1437 1604 1438 1604 1438 1604 1438 1607 1439 1607 1439 1607 1439 1608 1439 1609 1439 1609 1439 1609 1439 1610 1439 1611 1440 1612 1440 1612 1439 1612 1439 1613 1439 1613 1439 1614 1439 1614 1439 1614 1440 1617 1441 1617 1441 1617 1442 1617 1443 1618 1444 1619 1444 1619 1445 1618 1445 1618 1446 1617 1446 1616 1446 1612 1446 1610 1446 1610 1446 1607 1446 1607 1446 1606 1446 1605 1446 1604 1447 1604 1447 1604 1447 1603 1447 1602 1447 1601 1446 1600 1446 1600 1445 1599 1445 1596 1444 1595 1444 1594 1444 1594 1444 1593 1444 1592 1445 1592 1445 1590 1444 1590 1444 1590 1444 1588 1444 1588 1444 1588 1444 1587 1444 1585 1444 1583 1443 1580 1443 1578 1443 1577 1443 1575 1443 1574 1443 1574 1443 1572 1443 1570 1442 1570 1442 1569 1442 1569 1443 1570 1443 1570 1443 1571 1443 1572 1444 1573 1444 1574 1444 1576 1444 1577 1444 1578 1445 1579 1445 1579 1445 1579 1445 1580 1446 1581 1446 1581 1446 1582 1447 1585 1448 1585 1448 1584 1449 1582 1449 1582 1449 1582 1449 1581 1448 1580 1448 1580 1448 1579 1448 1579 1447 1578 1447 1578 1447 1576 1446 1574 1446 1573 1446 1572 1445 1570 1445 1569 1445 1566 1444 1564 1443 1564 1443 1562 1442 1560 1442 1558 1442 1558 1442 1556 1441 1553 1441 1551 1440 1550 1440 1550 1440 1549 1440 1549 1440 1551 1440 1552 1441 1554 1441 1556 1442 1557 1442 1559 1442 1560 1443 1564 1443 1566 1444 1568 1445 1569 1445 1570 1445 1569 1446 1568 1447 1567 1447 1566 1447 1565 1446 1564 1447 1563 1447 1563 1448 1562 1448 1561 1448 1561 1447 1561 1447 1562 1447 1560 1447 1559 1447 1557 1447 1556 1447 1555 1446 1553 1446 1549 1445 1548 1444 1547 1444 1545 1444 1544 1445 1540 1445 1539 1445 1538 1445 1535 1445 1534 1445 1533 1445 1533 1445 1532 1445 1531 1445 1528 1445 1524 1445 1523 1444 1522 1444 1521 1444 1515 1443 1512 1443 1512 1443 1507 1443 1506 1443 1505 1443 1504 1443 1503 1443 1504 1444 1504 1444 1505 1444 1506 1443 1506 1443 1507 1443 1508 1443 1510 1444 1511 1444 1512 1444 1513 1445 1511 1444 1510 1444 1508 1444 1508 1444 1507 1444 1506 1445 1506 1445 1504 1444 1504 1444 1500 1443 1498 1443 1497 1443 1497 1443 1496 1442 1493 1441 1492 1439 1492 1438 1493 1438 1493 1438 1494 1438 1494 1438 1495 1437 1496 1437 1497 1437 1497 1436 1496 1436 1496 1436 1495 1436 1496 1437 1496 1437 1495 1437 1493 1438 1492 1438 1491 1438 1491 1439 1491 1439 1488 1439 1487 1439 1486 1438 1486 1437 1487 1437 1486 1437 1485 1437 1485 1437 1484 1437 1483 1437 1482 1438 1485 1438 1485 1439 1486 1439 1486 1440 1485 1440 1484 1440 1482 1440 1481 1440 1476 1439 1475 1439 1475 1440 1475 1440 1476 1440 1474 1440 1473 1441 1473 1441 1472 1441 1472 1441 1471 1441 1469 1440 1468 1440 1467 1440 1465 1439 1466 1439 1469 1439 1469 1439 1470 1439 1471 1440 1471 1439 1471 1439 1468 1438 1468 1438 1467 1438 1463 1438 1462 1437 1460 1437 1459 1437 1457 1437 1455 1436 1455 1436 1454 1435 1453 1434 1453 1434 1452 1433 1452 1433 1451 1433 1450 1433 1449 1432 1449 1432 1448 1432 1448 1431 1446 1430 1447 1430 1448 1430 1449 1430 1450 1429 1450 1429 1449 1429 1448 1429 1448 1428 1446 1428 1445 1427 1446 1427 1446 1427 1450 1427 1450 1428 1450 1428 1451 1428 1452 1428 1452 1428 1453 1428 1454 1428 1455 1428 1458 1428 1460 1428 1462 1428 1463 1428 1463 1428 1464 1429 1464 1429 1465 1429 1465 1429 1469 1430 1469 1430 1470 1430 1471 1430 1472 1429 1473 1429 1473 1429 1474 1429 1475 1429 1476 1429 1476 1429 1478 1429 1479 1429 1480 1429 1480 1429 1481 1429 1481 1428 1481 1428 1482 1428 1483 1428 1484 1429 1485 1429 1485 1429 1485 1429 1485 1428 1483 1428 1483 1428 1481 1428 1479 1428 1478 1427 1476 1427 1474 1426 1473 1426 1472 1425 1472 1425 1472 1424 1471 1424 1470 1424 1469 1425 1467 1425 1464 1425 1460 1425 1458 1425 1456 1424 1453 1424 1450 1424 1449 1424 1447 1424 1442 1423 1440 1423 1439 1423 1438 1422 1438 1421 1437 1419 1437 1419 1437 1418 1438 1418 1439 1418 1439 1418 1440 1417 1441 1417 1440 1416 1439 1416 1438 1415 1437 1414 1437 1413 1438 1411 1438 1411 1440 1411 1441 1411 1442 1411 1442 1411 1443 1411 1444 1410 1444 1410 1444 1410 1443 1410 1442 1410 1442 1410 1441 1410 1441 1410 1439 1409 1438 1408 1438 1408 1439 1406 1439 1405 1440 1405 1441 1405 1441 1405 1441 1404 1441 1404 1441 1403 1442 1403 1442 1403 1443 1402 1443 1402 1444 1403 1444 1403 1446 1402 1445 1401 1445 1401 1444 1401 1444 1401 1444 1400 1446 1400 1446 1400 1448 1400 1448 1400 1449 1400 1448 1397 1448 1397 1448 1397 1449 1396 1450 1395 1453 1392 1454 1392 1456 1391 1458 1390 1462 1389 1463 1388 1463 1388 1465 1387 1465 1387 1468 1387 1470 1386 1471 1386 1472 1385 1473 1385 1474 1385 1477 1385 1478 1384 1482 1384 1485 1384 1490 1383 1492 1383 1494 1383 1495 1383 1498 1383 1498 1383 1500 1383 1505 1383 1506 1383 1509 1383 1509 1383 1510 1383 1511 1383 1512 1383 1515 1384 1516 1384 1516 1384 1517 1384 1518 1384 1520 1385 1520 1385 1519 1386 1518 1386 1518 1386 1512 1388 1508 1389 1505 1390 1504 1390 1503 1391 1501 1392 1499 1393 1497 1395 1497 1395 1496 1396 1494 1397 1494 1397 1493 1397 1492 1398 1491 1398 1491 1399 1490 1399 1490 1401 1490 1402 1491 1402 1491 1403 1492 1403 1493 1403 1494 1404 1494 1404 1494 1404 1495 1404 1496 1404 1497 1405 1497 1405 1498 1406 1497 1406 1497 1407 1496 1407 1496 1407 1495 1407 1495 1408 1494 1408 1494 1409 1494 1412 1495 1412 1496 1413 1499 1415 1499 1416 1500 1416 1500 1416 1501 1416 1501 1416 1502 1417 1503 1417 1503 1418 1509 1420 1511 1421 1514 1421 1518 1422 1520 1423 1520 1424 1519 1424 1519 1424 1517 1424 1515 1424 1511 1425 1509 1426 1509 1426 1507 1425 1505 1425 1504 1425 1502 1426 1502 1426 1499 1427 1498 1427 1497 1428 1497 1428 1495 1428 1494 1428 1493 1428 1491 1428 1489 1428 1489 1428 1489 1428 1488 1429 1489 1429 1490 1429 1492 1429 1493 1429 1495 1429 1497 1428 1497 1428 1498 1428 1501 1427 1504 1426 1505 1426 1505 1426 1507 1426 1509 1426 1511 1426 1513 1426 1516 1426 1517 1426 1517 1425 1518 1425 1519 1426 1520 1426 1519 1427 1519 1427 1518 1427 1518 1427 1517 1427 1515 1427 1516 1427 1516 1427 1517 1427 1518 1427 1518 1429 1518 1429 1518 1429 1518 1430 1518 1430 1520 1430 1521 1429 1521 1428 1520 1428 1520 1427 1521 1426 1521 1425 1521 1424 1521 1424 1521 1422 1522 1422 1522 1422 1523 1422 1524 1421 1525 1421 1525 1421 1525 1421 1525 1420 1524 1420 1524 1419 1523 1419 1523 1419 1524 1418 1523 1418 1522 1418 1521 1418 1520 1418 1519 1418 1519 1418 1519 1418 1518 1418 1516 1418 1514 1418 1514 1418 1513 1418 1513 1418 1508 1416 1509 1416 1510 1416 1510 1416 1508 1414 1505 1413 1504 1413 1503 1413 1502 1413 1502 1413 1501 1413 1501 1413 1501 1413 1501 1412 1502 1412 1505 1412 1509 1412 1509 1411 1510 1410 1510 1410 1510 1410 1509 1410 1509 1408 1513 1408 1513 1408 1517 1409 1519 1409 1520 1409 1520 1409 1520 1410 1522 1410 1524 1410 1525 1411 1529 1412 1529 1412 1530 1413 1530 1413 1530 1414 1530 1414 1531 1414 1531 1413 1531 1412 1530 1412 1529 1412 1528 1412 1528 1411 1527 1411 1526 1410 1524 1410 1523 1410 1522 1409 1518 1408 1519 1408 1520 1407 1520 1407 1521 1407 1522 1407 1523 1407 1524 1407 1525 1407 1525 1407 1526 1406 1526 1406 1524 1407 1519 1407 1519 1406 1520 1406 1521 1406 1521 1405 1519 1406 1517 1406 1515 1407 1512 1406 1511 1406 1509 1405 1509 1405 1508 1404 1509 1404 1510 1403 1508 1403 1507 1403 1507 1403 1506 1402 1506 1401 1506 1398 1508 1397 1509 1397 1510 1397 1511 1397 1513 1397 1513 1397 1515 1397 1516 1398 1517 1398 1518 1398 1518 1398 1519 1398 1520 1398 1522 1399 1523 1399 1524 1399 1525 1399 1526 1399 1527 1399 1528 1400 1529 1400 1529 1400 1530 1400 1534 1401 1534 1401 1534 1400 1533 1400 1532 1400 1532 1400 1530 1400 1529 1400 1529 1400 1528 1399 1528 1399 1527 1399 1525 1398 1524 1398 1523 1398 1522 1398 1521 1398 1521 1398 1520 1398 1519 1397 1516 1397 1514 1396 1509 1396 1509 1396 1510 1395 1510 1395 1511 1394 1511 1394 1511 1395 1512 1395 1513 1395 1513 1395 1514 1396 1515 1395 1514 1395 1514 1395 1514 1394 1515 1394 1516 1394 1517 1394 1517 1395 1519 1395 1520 1395 1521 1395 1524 1395 1530 1396 1532 1396 1535 1396 1535 1396 1536 1396 1537 1396 1538 1397 1539 1397 1538 1396 1537 1396 1535 1396 1535 1396 1534 1396 1534 1396 1533 1396 1532 1396 1532 1396 1530 1395 1529 1395 1529 1395 1526 1395 1525 1395 1524 1395 1522 1394 1521 1394 1520 1394 1519 1394 1518 1394 1518 1393 1517 1393 1516 1393 1516 1393 1515 1393 1515 1393 1515 1392 1516 1392 1516 1391 1517 1391 1518 1391 1520 1390 1521 1390 1521 1390 1522 1391 1522 1391 1523 1392 1527 1393 1527 1393 1528 1393 1527 1392 1526 1392 1526 1392 1524 1391 1524 1391 1523 1390 1523 1390 1524 1390 1526 1390 1529 1389 1530 1389 1530 1389 1531 1389 1532 1389 1537 1390 1538 1390 1538 1391 1538 1391 1538 1391 1539 1392 1539 1392 1540 1392 1540 1392 1539 1390 1539 1390 1539 1389 1538 1389 1537 1389 1536 1389 1534 1389 1533 1388 1537 1387 1540 1387 1542 1387 1546 1386 1548 1386 1549 1386 1550 1385 1551 1385 1551 1385 1552 1385 1552 1385 1555 1385 1557 1385 1558 1385 1559 1385 1559 1385 1562 1385 1565 1385 1571 1385 1572 1385 1573 1385 1574 1385 1574 1385 1577 1387 1577 1388 1578 1388 1578 1389 1578 1390 1578 1391 1578 1392 1578 1392 1578 1392 1580 1393 1580 1393 1583 1393 1586 1394 1587 1394 1587 1394 1587 1394 1588 1394 1588 1395 1588 1396 1587 1396 1587 1397 1587 1397 1587 1397 1587 1398 1589 1399 1589 1399 1589 1399 1590 1399 1591 1400 1592 1400 1592 1400 1593 1400 1593 1401 1592 1401 1591 1401 1590 1402 1590 1402 1589 1402 1588 1403 1587 1404 1586 1404 1585 1404 1582 1405 1581 1406 1578 1408 1578 1408 1576 1408 1575 1409 1577 1409 1577 1408 1579 1408 1581 1407 1582 1406 1584 1405 1586 1405 1588 1404 1588 1404 1588 1404 1589 1404 1589 1405 1589 1405 1589 1406 1589 1407 1588 1407 1588 1407 1587 1407 1586 1407 1585 1408 1584 1408 1584 1409 1583 1410 1584 1410 1585 1410 1586 1410 1588 1411 1588 1411 1587 1411 1586 1411 1585 1411 1582 1411 1580 1412 1580 1412 1581 1412 1582 1412 1583 1412 1584 1412 1585 1412 1584 1413 1584 1413 1583 1414 1582 1414 1582 1414 1582 1414 1582 1414 1583 1414 1583 1414 1585 1414 1585 1413 1585 1413 1587 1412 1587 1412 1589 1412 1590 1412 1591 1412 1591 1412 1592 1411 1591 1411 1591 1411 1590 1410 1590 1410 1591 1409 1591 1410 1592 1410 1592 1410 1593 1409 1593 1409 1592 1408 1593 1408 1593 1408 1593 1408 1594 1408 1595 1408 1595 1408 1595 1409 1596 1409 1597 1409 1597 1410 1598 1410 1599 1410 1600 1410 1601 1410 1601 1410 1602 1410 1602 1410 1601 1410 1600 1410 1600 1410 1598 1409 1596 1409 1595 1407 1595 1407 1595 1407 1596 1406 1597 1406 1598 1406 1599 1405 1600 1405 1600 1404 1601 1405 1601 1405 1602 1405 1601 1406 1602 1406 1604 1407 1603 1408 1603 1408 1602 1408 1602 1408 1601 1409 1601 1409 1602 1409 1604 1408 1605 1407 1608 1406 1609 1407 1610 1407 1611 1407 1611 1407 1612 1407 1613 1408 1614 1409 1613 1411 1611 1412 1610 1413 1609 1413 1610 1413 1610 1413 1611 1413 1612 1413 1612 1413 1613 1413 1616 1414 1617 1414 1618 1414 1618 1414 1619 1414 1619 1414 1620 1415 1620 1415 1621 1415 1620 1414 1619 1413 1618 1413 1617 1413 1616 1413 1614 1412 1615 1410 1615 1410 1620 1411 1621 1411 1621 1411 1622 1411 1622 1412 1623 1413 1623 1413 1623 1413 1623 1414 1624 1414 1626 1415 1626 1415 1627 1416 1627 1416 1628 1416 1628 1416 1630 1416 1631 1416 1630 1416 1629 1416 1629 1416 1628 1415 1627 1415 1627 1415 1626 1415 1624 1414 1625 1413 1625 1413 1626 1413 1627 1413 1629 1414 1630 1415 1633 1416 1632 1415 1630 1414 1627 1413 1627 1413 1626 1413 1625 1413 1625 1413 1624 1413 1624 1412 1623 1412 1623 1411 1623 1411 1622 1411 1622 1411 1621 1410 1620 1410 1618 1410 1616 1409 1616 1409 1615 1409 1617 1407 1619 1407 1620 1407 1621 1407 1621 1408 1621 1409 1623 1410 1623 1410 1623 1409 1622 1409 1622 1407 1622 1407 1623 1407 1624 1407 1629 1408 1631 1408 1632 1409 1632 1409 1635 1409 1637 1410 1639 1410 1640 1410 1641 1410 1641 1410 1643 1410 1645 1410 1645 1410 1644 1410 1641 1409 1641 1409 1640 1409 1639 1409 1638 1409 1638 1409 1637 1409 1636 1409 1636 1409 1635 1409 1635 1409 1635 1409 1633 1408 1632 1408 1631 1408 1630 1408 1628 1408 1627 1407 1627 1407 1626 1407 1624 1407 1623 1407 1622 1406 1621 1406 1621 1406 1620 1405 1620 1404 1622 1403 1627 1402 1629 1402 1631 1401 1632 1401 1633 1401 1634 1401 1634 1401 1635 1401 1635 1401 1636 1400 1637 1400 1639 1400 1641 1400 1644 1400 1645 1401 1646 1401 1648 1401 1649 1401 1650 1401 1651 1402 1651 1402 1652 1402 1654 1403 1656 1403 1657 1403 1658 1403 1658 1403 1659 1403 1659 1404 1659 1404 1659 1405 1660 1405 1660 1405 1660 1404 1660 1404 1661 1403 1661 1403 1662 1403 1663 1403 1664 1403 1664 1403 1665 1403 1668 1404 1669 1404 1670 1404 1670 1404 1671 1404 1672 1404 1674 1405 1674 1405 1674 1405 1675 1406 1675 1406 1676 1407 1677 1407 1677 1408 1677 1408 1678 1408 1676 1409 1676 1410 1673 1411 1673 1411 1673 1411 1672 1410 1671 1410 1670 1410 1669 1410 1669 1410 1667 1410 1666 1410 1665 1410 1664 1411 1663 1411 1661 1411 1660 1411 1660 1412 1659 1412 1659 1413 1658 1413 1658 1413 1657 1413 1657 1413 1656 1414 1656 1414 1656 1414 1656 1414 1660 1413 1660 1413 1660 1412 1661 1412 1661 1412 1662 1411 1663 1411 1664 1411 1664 1411 1666 1411 1667 1411 1668 1411 1669 1411 1669 1411 1670 1411 1673 1411 1673 1412 1673 1412 1672 1412 1672 1412 1671 1412 1670 1412 1669 1412 1669 1412 1668 1412 1668 1412 1667 1413 1666 1414 1666 1415 1664 1416 1664 1417 1663 1417 1663 1417 1662 1417 1661 1417 1660 1417 1660 1417 1660 1417 1663 1417 1663 1417 1664 1417 1664 1417 1664 1417 1666 1416 1667 1415 1668 1414 1668 1414 1668 1413 1668 1413 1669 1413 1669 1412 1670 1413 1671 1413 1672 1413 1672 1413 1673 1412 1674 1412 1674 1412 1675 1412 1675 1411 1675 1411 1676 1411 1676 1411 1677 1410 1677 1410 1678 1411 1680 1411 1680 1411 1681 1411 1683 1411 1683 1411 1685 1411 1688 1411 1689 1411 1689 1411 1690 1412 1691 1413 1691 1413 1690 1415 1689 1415 1689 1415 1687 1416 1686 1416 1686 1416 1685 1415 1684 1416 1683 1416 1682 1417 1682 1417 1679 1417 1677 1417 1676 1417 1676 1417 1675 1417 1675 1417 1672 1417 1671 1417 1671 1418 1673 1418 1674 1417 1676 1417 1676 1417 1677 1417 1678 1418 1677 1418 1676 1419 1675 1419 1674 1419 1671 1420 1674 1420 1677 1419 1679 1418 1680 1418 1682 1417 1682 1417 1683 1418 1683 1418 1682 1419 1682 1419 1681 1419 1680 1420 1679 1420 1678 1420 1678 1420 1677 1420 1677 1420 1676 1420 1675 1421 1675 1421 1675 1421 1676 1421 1676 1420 1677 1420 1678 1420 1679 1420 1679 1420 1680 1420 1682 1422 1682 1422 1679 1424 1676 1425 1676 1426 1676 1426 1677 1425 1679 1424 1682 1423 1683 1422 1683 1422 1683 1422 1683 1422 1681 1421 1681 1420 1682 1420 1682 1420 1682 1420 1683 1420 1684 1419 1684 1418 1687 1418 1688 1417 1688 1417 1688 1417 1689 1417 1691 1417 1691 1417 1691 1418 1691 1418 1690 1418 1690 1418 1689 1418 1689 1418 1689 1419 1689 1419 1690 1420 1690 1420 1691 1418 1692 1417 1693 1417 1693 1416 1694 1416 1694 1416 1697 1416 1698 1416 1699 1416 1700 1416 1699 1417 1699 1417 1698 1417 1698 1417 1697 1418 1697 1418 1696 1418 1695 1419 1693 1420 1693 1421 1692 1421 1690 1421 1688 1422 1690 1422 1691 1422 1691 1421 1692 1421 1692 1421 1692 1423 1691 1424 1691 1424 1690 1425 1690 1425 1689 1425 1690 1425 1691 1425 1691 1425 1692 1424 1693 1423 1694 1422 1695 1420 1697 1419 1697 1419 1698 1419 1699 1419 1699 1419 1700 1419 1700 1420 1699 1420 1699 1420 1699 1421 1699 1423 1699 1423 1700 1423 1701 1422 1701 1422 1701 1422 1701 1422 1702 1421 1703 1422 1701 1423 1700 1424 1699 1424 1698 1424 1698 1425 1698 1426 1698 1426 1697 1427 1697 1427 1696 1427 1696 1427 1695 1428 1695 1428 1696 1427 1697 1427 1697 1427 1698 1427 1698 1427 1698 1426 1698 1426 1699 1425 1700 1424 1702 1424 1702 1423 1702 1423 1703 1423 1703 1423 1704 1423 1708 1424 1708 1424 1707 1425 1706 1425 1705 1425 1705 1425 1705 1425 1705 1426 1705 1426 1705 1426 1704 1427 1704 1427 1703 1428 1702 1428 1702 1428 1703 1429 1706 1426 1706 1425 1707 1425 1707 1425 1708 1425 1708 1425 1709 1425 1709 1425 1709 1424 1710 1423 1710 1423 1709 1422 1711 1422 1711 1422 1712 1422 1713 1422 1713 1421 1714 1420 1715 1420 1715 1419 1715 1419 1716 1418 1716 1418 1717 1418 1717 1418 1717 1418 1718 1418 1720 1419 1723 1419 1727 1420 1730 1420 1731 1420 1732 1420 1732 1420 1734 1421 1736 1422 1737 1423 1739 1424 1739 1425 1738 1425 1738 1425 1737 1425 1736 1426 1735 1426 1734 1427 1734 1427 1733 1427 1732 1427 1731 1427 1731 1427 1730 1427 1728 1427 1727 1427 1727 1427 1727 1427 1726 1427 1724 1427 1723 1428 1723 1428 1722 1429 1722 1429 1721 1429 1721 1429 1720 1429 1720 1430 1720 1430 1717 1431 1715 1431 1717 1431 1717 1431 1719 1431 1719 1431 1720 1431 1721 1431 1722 1431 1719 1433 1719 1434 1718 1434 1717 1434 1716 1434 1716 1434 1715 1434 1716 1435 1716 1435 1717 1434 1719 1434 1720 1434 1720 1434 1721 1433 1721 1433 1721 1433 1722 1432 1722 1432 1723 1432 1725 1432 1727 1432 1728 1431 1730 1431 1732 1431 1735 1430 1736 1430 1738 1428 1738 1428 1738 1428 1743 1427 1744 1427 1744 1427 1745 1427 1745 1427 1747 1427 1747 1428 1749 1430 1748 1430 1748 1430 1746 1431 1745 1432 1745 1433 1744 1433 1743 1433 1742 1434 1741 1434 1740 1434 1740 1434 1739 1434 1739 1435 1739 1435 1738 1435 1737 1435 1736 1435 1736 1435 1735 1435 1735 1435 1734 1435 1734 1435 1732 1435 1732 1435 1732 1436 1729 1437 1728 1438 1729 1438 1729 1438 1729 1439 1729 1439 1728 1439 1728 1440 1727 1440 1728 1440 1729 1439 1730 1439 1731 1437 1732 1436 1733 1436 1733 1436 1733 1435 1734 1435 1735 1435 1737 1436 1738 1436 1737 1438 1736 1440 1736 1440 1736 1440 1736 1441 1735 1442 1734 1442 1733 1443 1733 1444 1732 1444 1733 1444 1733 1444 1733 1443 1734 1443 1735 1443 1735 1443 1736 1442 1738 1440 1737 1440 1738 1439 1739 1438 1739 1437 1740 1436 1740 1436 1741 1435 1741 1434 1742 1434 1745 1434 1747 1433 1750 1432 1751 1432 1751 1432 1752 1432 1753 1432 1753 1432 1756 1431 1757 1431 1758 1430 1759 1430 1760 1430 1761 1431 1760 1431 1759 1432 1758 1432 1757 1433 1756 1433 1755 1434 1754 1434 1753 1434 1753 1434 1751 1434 1750 1434 1750 1434 1749 1435 1750 1435 1750 1435 1750 1436 1750 1436 1749 1437 1749 1437 1750 1437 1752 1436 1752 1436 1751 1436 1751 1435 1751 1435 1754 1435 1755 1435 1757 1435 1757 1434 1759 1434 1761 1434 1763 1433 1763 1432 1764 1432 1764 1432 1766 1432 1769 1432 1769 1432 1770 1432 1771 1433 1774 1433 1774 1434 1778 1434 1779 1435 1780 1435 1780 1435 1781 1435 1781 1435 1783 1435 1784 1435 1784 1436 1784 1436 1784 1437 1784 1437 1783 1437 1782 1438 1782 1438 1781 1439 1781 1438 1780 1438 1780 1438 1780 1437 1780 1437 1779 1437 1778 1438 1778 1438 1778 1438 1778 1439 1777 1439 1776 1439 1774 1440 1774 1440 1772 1440 1769 1440 1768 1440 1765 1441 1763 1441 1762 1441 1760 1442 1759 1443 1759 1443 1758 1443 1758 1443 1757 1443 1757 1443 1756 1443 1756 1443 1755 1444 1754 1444 1755 1444 1755 1444 1756 1444 1756 1444 1757 1444 1759 1444 1759 1444 1760 1444 1760 1445 1759 1445 1759 1445 1758 1445 1757 1445 1757 1445 1756 1445 1755 1445 1754 1445 1753 1446 1752 1446 1751 1447 1750 1447 1750 1447 1750 1447 1750 1447 1750 1447 1751 1447 1751 1447 1753 1446 1754 1446 1755 1445 1755 1445 1756 1445 1757 1445 1758 1445 1759 1445 1759 1445 1760 1445 1760 1445 1761 1445 1761 1445 1761 1444 1761 1444 1760 1444 1760 1443 1761 1443 1762 1442 1762 1442 1766 1442 1766 1442 1769 1441 1770 1441 1770 1441 1773 1442 1774 1441 1775 1441 1778 1441 1779 1442 1777 1443 1776 1444 1776 1444 1775 1444 1775 1444 1774 1444 1772 1445 1770 1445 1768 1446 1767 1447 1767 1447 1767 1447 1766 1447 1765 1447 1765 1447 1764 1447 1764 1447 1762 1447 1762 1447 1761 1447 1761 1447 1760 1447 1760 1447 1759 1448 1759 1448 1757 1450 1757 1451 1757 1451 1758 1450 1760 1449 1760 1448 1760 1448 1761 1448 1761 1448 1763 1447 1763 1447 1764 1448 1764 1448 1765 1448 1766 1448 1766 1448 1767 1448 1768 1447 1768 1447 1769 1447 1770 1446 1771 1446 1772 1446 1774 1445 1775 1445 1776 1445 1777 1445 1779 1445 1781 1444 1783 1443 1785 1443 1785 1443 1786 1443 1785 1442 1785 1442 1784 1442 1784 1442 1783 1442 1784 1441 1786 1440 1788 1440 1792 1440 1793 1441 1793 1441 1794 1441 1794 1441 1795 1441 1796 1442 1796 1442 1796 1442 1798 1443 1799 1444 1801 1445 1801 1445 1802 1447 1803 1449 1802 1449 1799 1449 1798 1449 1798 1449 1797 1449 1795 1448 1793 1448 1792 1448 1789 1448 1787 1448 1785 1449 1785 1450 1784 1450 1783 1450 1781 1450 1781 1450 1779 1450 1779 1450 1775 1451 1773 1451 1770 1452 1770 1452 1768 1452 1767 1452 1766 1452 1764 1451 1763 1451 1762 1451 1761 1451 1760 1451 1756 1452 1757 1452 1758 1452 1759 1452 1759 1452 1759 1452 1760 1452 1760 1452 1761 1452 1762 1452 1762 1452 1763 1452 1765 1452 1766 1452 1767 1452 1768 1452 1768 1452 1770 1452 1770 1452 1773 1452 1773 1452 1774 1451 1777 1451 1778 1451 1779 1451 1780 1451 1784 1452 1784 1452 1786 1452 1788 1453 1789 1453 1790 1453 1790 1453 1791 1453 1791 1453 1791 1453 1792 1453 1792 1453 1795 1453 1796 1453 1797 1453 1797 1453 1798 1453 1800 1453 1801 1453 1802 1453 1802 1453 1806 1454 1808 1455 1809 1455 1810 1456 1810 1457 1811 1457 1810 1457 1810 1458 1809 1458 1809 1458 1807 1458 1806 1458 1806 1458 1805 1458 1803 1458 1799 1457 1798 1458 1797 1458 1797 1458 1795 1458 1794 1458 1791 1457 1786 1455 1785 1455 1785 1455 1784 1456 1784 1456 1784 1456 1783 1456 1781 1456 1778 1455 1777 1455 1776 1455 1775 1455 1774 1455 1773 1455 1773 1455 1772 1455 1770 1455 1770 1456 1769 1456 1770 1456 1770 1456 1771 1456 1773 1455 1774 1455 1774 1455 1778 1456 1780 1456 1781 1456 1784 1456 1785 1456 1785 1456 1786 1456 1786 1456 1787 1456 1788 1457 1787 1457 1787 1457 1786 1457 1785 1457 1782 1457 1780 1457 1779 1457 1778 1457 1778 1457 1775 1457 1774 1457 1773 1457 1774 1457 1774 1457 1775 1457 1776 1457 1777 1457 1777 1457 1778 1457 1778 1457 1779 1457 1781 1457 1778 1458 1775 1458 1773 1459 1774 1459 1774 1459 1774 1460 1773 1461 1773 1461 1773 1461 1773 1461 1774 1461 1774 1460 1775 1460 1775 1459 1777 1459 1781 1458 1782 1458 1783 1458 1783 1458 1786 1458 1787 1458 1793 1460 1789 1461 1788 1461 1788 1461 1786 1461 1785 1460 1785 1460 1784 1460 1784 1460 1780 1461 1782 1461 1784 1461 1784 1461 1785 1461 1786 1461 1786 1461 1787 1461 1788 1461 1788 1461 1789 1463 1789 1463 1789 1463 1788 1463 1787 1463 1786 1462 1785 1462 1784 1462 1783 1462 1781 1462 1782 1462 1783 1462 1784 1462 1785 1462 1786 1463 1787 1463 1789 1463 1789 1463 1790 1463 1791 1463 1791 1464 1792 1464 1792 1464 1791 1464 1790 1464 1790 1464 1788 1464 1786 1463 1783 1463 1782 1463 1780 1463 1779 1463 1780 1463 1780 1464 1779 1464 1778 1464 1776 1464 1775 1463 1773 1463 1773 1463 1771 1463 1769 1462 1768 1462 1768 1462 1767 1462 1767 1463 1767 1463 1768 1463 1768 1463 1769 1463 1770 1463 1770 1463 1769 1463 1768 1463 1768 1463 1767 1463 1770 1464 1773 1464 1774 1464 1786 1465 1788 1466 1787 1466 1783 1466 1780 1466 1779 1466 1778 1466 1778 1466 1777 1466 1776 1466 1775 1467 1776 1467 1776 1467 1777 1467 1778 1466 1778 1466 1779 1466 1779 1466 1780 1466 1780 1466 1781 1467 1781 1467 1780 1467 1779 1467 1778 1467 1778 1467 1778 1467 1778 1467 1782 1467 1782 1467 1783 1467 1783 1467 1785 1467 1785 1467 1787 1467 1788 1468 1790 1468 1791 1468 1792 1468 1794 1467 1795 1467 1796 1468 1797 1468 1797 1468 1796 1468 1795 1468 1795 1470 1795 1470 1795 1470 1796 1470 1796 1469 1797 1469 1798 1468 1800 1468 1801 1469 1801 1469 1800 1470 1800 1470 1802 1470 1803 1470 1803 1469 1803 1469 1806 1469 1808 1469 1808 1469 1810 1469 1809 1470 1808 1470 1806 1470 1806 1470 1805 1471 1804 1471 1804 1471 1803 1470 1803 1470 1801 1470 1800 1470 1799 1470 1798 1470 1798 1471 1797 1471 1795 1471 1795 1471 1793 1471 1792 1471 1792 1471 1792 1471 1791 1471 1791 1472 1791 1472 1792 1472 1792 1472 1793 1471 1795 1471 1796 1471 1796 1472 1795 1472 1794 1472 1794 1473 1796 1472 1796 1472 1796 1472 1797 1471 1799 1471 1801 1471 1802 1471 1803 1471 1804 1471 1805 1471 1802 1472 1801 1472 1800 1472 1800 1472 1799 1473 1799 1473 1800 1473 1799 1474 1799 1474 1799 1474 1798 1474 1798 1474 1797 1474 1797 1474 1796 1474 1795 1474 1796 1474 1796 1474 1797 1474 1798 1474 1798 1474 1799 1474 1799 1474 1800 1474 1800 1473 1800 1473 1802 1472 1803 1472 1804 1472 1805 1472 1805 1472 1806 1472 1807 1472 1807 1472 1808 1473 1808 1473 1807 1475 1807 1475 1806 1475 1805 1476 1806 1476 1806 1476 1806 1476 1807 1475 1809 1474 1810 1474 1810 1474 1810 1474 1810 1476 1809 1476 1809 1477 1810 1477 1810 1476 1811 1475 1811 1475 1811 1474 1812 1474 1813 1474 1816 1474 1815 1475 1815 1475 1814 1475 1813 1475 1814 1475 1815 1475 1815 1475 1816 1475 1816 1475 1817 1475 1817 1475 1818 1476 1817 1476 1816 1477 1816 1477 1815 1477 1814 1478 1812 1479 1811 1478 1811 1478 1810 1478 1809 1478 1810 1479 1810 1479 1812 1479 1814 1479 1815 1479 1815 1479 1816 1478 1816 1478 1816 1477 1816 1477 1817 1477 1817 1477 1819 1477 1821 1476 1822 1476 1822 1475 1822 1474 1822 1474 1823 1474 1823 1475 1822 1476 1821 1476 1821 1477 1820 1477 1821 1478 1821 1479 1821 1479 1820 1481 1820 1482 1821 1482 1821 1481 1822 1481 1822 1480 1822 1480 1822 1479 1822 1479 1823 1479 1824 1479 1824 1479 1825 1478 1824 1477 1824 1477 1826 1477 1829 1476 1830 1477 1829 1478 1828 1479 1828 1479 1828 1479 1827 1480 1827 1480 1828 1480 1829 1481 1829 1481 1830 1481 1830 1481 1830 1482 1830 1482 1831 1482 1831 1483 1831 1483 1832 1483 1831 1481 1830 1481 1829 1481 1829 1480 1828 1480 1830 1478 1832 1477 1833 1477 1834 1477 1834 1477 1834 1477 1834 1476 1836 1476 1837 1476 1837 1476 1841 1477 1841 1477 1839 1477 1838 1478 1837 1479 1837 1479 1837 1480 1836 1480 1835 1480 1835 1480 1834 1481 1834 1481 1834 1482 1834 1482 1834 1481 1835 1481 1838 1480 1840 1480 1840 1480 1840 1481 1839 1481 1840 1481 1840 1481 1840 1481 1841 1480 1841 1479 1842 1479 1843 1479 1844 1479 1845 1479 1847 1480 1846 1481 1846 1481 1845 1481 1844 1481 1843 1481 1843 1482 1843 1482 1843 1482 1845 1481 1846 1481 1847 1481 1847 1481 1848 1481 1848 1481 1852 1483 1852 1484 1851 1485 1850 1485 1849 1485 1848 1485 1847 1485 1847 1485 1846 1485 1846 1485 1846 1485 1847 1485 1847 1485 1848 1485 1850 1485 1850 1485 1850 1485 1851 1485 1851 1485 1852 1485 1853 1485 1854 1486 1854 1488 1854 1488 1852 1487 1852 1487 1851 1487 1850 1487 1849 1487 1847 1487 1844 1487 1841 1487 1840 1487 1841 1487 1842 1487 1846 1488 1846 1488 1847 1488 1847 1488 1848 1488 1849 1488 1848 1488 1847 1488 1847 1488 1846 1488 1845 1488 1844 1488 1842 1489 1841 1489 1840 1489 1840 1489 1841 1489 1841 1489 1842 1489 1845 1489 1846 1489 1847 1489 1848 1489 1849 1489 1849 1488 1850 1488 1851 1488 1853 1488 1853 1488 1853 1488 1853 1489 1853 1489 1852 1489 1851 1489 1849 1489 1845 1490 1845 1490 1844 1490 1844 1490 1843 1490 1842 1491 1842 1491 1842 1492 1842 1492 1843 1492 1843 1492 1843 1491 1843 1491 1843 1491 1844 1490 1844 1490 1845 1490 1845 1490 1849 1490 1851 1489 1853 1489 1853 1489 1854 1489 1855 1489 1856 1489 1860 1489 1861 1489 1862 1490 1860 1491 1859 1491 1858 1491 1858 1491 1857 1492 1857 1492 1856 1492 1856 1492 1856 1493 1856 1492 1857 1492 1858 1492 1858 1492 1859 1491 1860 1491 1860 1491 1861 1491 1862 1490 1862 1489 1862 1489 1863 1488 1864 1488 1864 1487 1866 1487 1867 1487 1867 1487 1868 1487 1868 1488 1869 1488 1869 1489 1868 1489 1868 1490 1868 1490 1867 1490 1867 1490 1866 1490 1866 1490 1865 1490 1864 1491 1864 1491 1865 1491 1865 1492 1865 1492 1865 1493 1864 1493 1864 1493 1863 1493 1862 1494 1861 1494 1860 1494 1860 1494 1860 1494 1860 1495 1859 1495 1859 1495 1858 1495 1858 1495 1857 1495 1856 1495 1858 1496 1859 1496 M 1644 1399 1644 1399 1643 1399 1642 1399 1641 1399 1640 1399 1639 1399 1639 1399 1638 1398 1637 1398 1634 1398 1631 1398 1631 1398 1629 1398 1627 1398 1625 1398 1625 1398 1624 1398 1621 1399 1619 1399 1615 1400 1612 1400 1611 1401 1610 1401 1608 1401 1607 1401 1607 1401 1606 1401 1605 1401 1603 1400 1598 1399 1598 1399 1597 1399 1595 1397 1595 1396 1594 1396 1595 1396 1595 1395 1595 1395 1595 1394 1595 1393 1594 1393 1593 1393 1591 1393 1587 1392 1585 1392 1584 1392 1583 1391 1583 1390 1584 1389 1584 1386 1584 1385 1585 1385 1586 1384 1588 1384 1590 1384 1591 1384 1592 1384 1592 1385 1593 1385 1594 1385 1594 1385 1595 1385 1595 1385 1596 1385 1599 1385 1603 1386 1604 1386 1605 1386 1605 1386 1606 1386 1607 1386 1614 1386 1614 1386 1614 1386 1615 1386 1615 1386 1619 1386 1623 1386 1626 1386 1627 1386 1627 1386 1628 1386 1629 1386 1630 1386 1632 1387 1633 1387 1635 1387 1637 1387 1638 1388 1638 1388 1639 1388 1639 1388 1640 1388 1640 1388 1641 1388 1642 1388 1643 1389 1644 1391 1645 1391 1646 1391 1647 1391 1647 1391 1647 1391 1648 1391 1649 1391 1650 1391 1652 1393 1651 1394 1651 1394 1652 1394 1653 1395 1655 1395 1656 1395 1656 1396 1656 1397 1657 1397 1658 1397 1659 1397 1659 1398 1660 1398 1660 1398 1660 1399 1659 1399 1659 1399 1657 1399 1656 1399 1656 1399 1652 1400 1651 1400 1651 1399 1650 1399 1649 1399 1649 1399 1647 1399 1646 1399 1644 1399 M 1194 1398 1193 1397 1192 1397 1193 1398 1193 1398 1194 1398 1195 1399 1194 1399 1193 1399 1192 1399 1191 1398 1191 1398 1189 1397 1186 1396 1183 1394 1183 1394 1180 1393 1181 1393 1177 1391 1175 1390 1170 1389 1168 1389 1167 1389 1167 1389 1166 1389 1165 1389 1166 1388 1166 1388 1167 1388 1168 1388 1170 1386 1171 1386 1172 1385 1172 1385 1173 1385 1177 1385 1179 1385 1181 1385 1185 1385 1186 1385 1187 1385 1188 1385 1188 1385 1189 1384 1190 1384 1193 1384 1195 1384 1196 1384 1196 1385 1199 1386 1200 1386 1203 1386 1203 1387 1205 1387 1206 1387 1206 1388 1206 1389 1205 1390 1205 1391 1204 1392 1204 1392 1203 1392 1202 1393 1201 1394 1200 1394 1198 1395 1198 1396 1197 1396 1197 1397 1196 1397 1194 1398 M 890 1386 890 1387 890 1387 890 1387 890 1387 891 1387 891 1387 892 1387 892 1387 892 1387 892 1387 893 1387 892 1388 890 1388 889 1388 889 1388 889 1387 889 1386 889 1386 889 1386 890 1386 M 1156 1387 1155 1387 1154 1388 1152 1388 1151 1388 1151 1388 1150 1388 1150 1388 1150 1388 1149 1387 1149 1387 1149 1387 1149 1387 1149 1387 1150 1387 1152 1387 1152 1387 1153 1387 1153 1387 1155 1387 1156 1387 1156 1387 1157 1387 1157 1387 1156 1387 1156 1387 M 1101 1406 1102 1405 1104 1405 1105 1405 1105 1405 1105 1404 1106 1403 1107 1403 1107 1403 1110 1404 1110 1404 1109 1404 1109 1405 1109 1405 1110 1405 1112 1406 1113 1406 1112 1405 1110 1405 1110 1405 1112 1404 1112 1404 1113 1404 1113 1404 1115 1404 1115 1404 1116 1405 1117 1406 1118 1405 1118 1405 1119 1405 1119 1405 1121 1406 1121 1406 1121 1405 1121 1405 1117 1404 1114 1404 1114 1404 1115 1403 1116 1404 1117 1404 1117 1404 1118 1404 1118 1404 1119 1404 1120 1405 1121 1405 1122 1405 1119 1403 1117 1402 1116 1402 1115 1402 1115 1402 1114 1402 1114 1402 1115 1401 1115 1401 1117 1401 1117 1401 1118 1401 1120 1402 1121 1402 1122 1401 1121 1401 1118 1401 1115 1400 1115 1399 1114 1399 1113 1399 1112 1399 1110 1399 1110 1399 1109 1399 1106 1397 1106 1397 1107 1396 1107 1396 1108 1396 1110 1396 1111 1396 1112 1396 1115 1397 1117 1397 1119 1397 1123 1398 1124 1398 1123 1398 1123 1398 1122 1398 1122 1398 1124 1399 1128 1400 1130 1400 1133 1402 1134 1402 1133 1403 1133 1403 1136 1403 1136 1403 1137 1403 1139 1403 1139 1403 1140 1404 1140 1404 1141 1405 1140 1405 1140 1405 1140 1406 1140 1406 1139 1407 1139 1407 1142 1409 1143 1410 1143 1410 1144 1410 1144 1411 1144 1412 1145 1413 1147 1413 1147 1414 1146 1414 1145 1415 1145 1416 1146 1417 1147 1417 1147 1417 1148 1417 1148 1417 1149 1417 1150 1417 1150 1418 1151 1418 1151 1418 1153 1419 1154 1419 1154 1419 1154 1418 1154 1418 1153 1418 1153 1417 1153 1417 1154 1417 1156 1417 1158 1416 1159 1415 1160 1415 1161 1414 1162 1414 1159 1413 1156 1412 1156 1412 1156 1411 1156 1411 1156 1411 1155 1410 1154 1410 1154 1410 1154 1410 1153 1410 1154 1409 1152 1407 1152 1406 1152 1404 1152 1403 1151 1403 1150 1403 1150 1402 1150 1401 1149 1400 1148 1398 1148 1397 1147 1396 1146 1395 1145 1395 1145 1394 1146 1394 1146 1394 1147 1393 1148 1393 1149 1393 1150 1393 1151 1394 1152 1394 1152 1393 1151 1393 1150 1393 1149 1393 1149 1393 1148 1392 1148 1392 1149 1391 1149 1391 1150 1391 1151 1391 1154 1391 1155 1391 1156 1391 1160 1392 1161 1393 1162 1393 1163 1393 1163 1393 1164 1394 1165 1394 1165 1394 1166 1393 1165 1393 1165 1393 1164 1393 1166 1392 1168 1392 1168 1392 1170 1392 1170 1392 1171 1393 1171 1393 1172 1393 1172 1393 1173 1393 1176 1394 1178 1395 1181 1396 1181 1396 1183 1396 1183 1396 1184 1396 1184 1396 1185 1396 1185 1396 1185 1397 1186 1397 1186 1397 1187 1397 1188 1397 1189 1398 1191 1399 1193 1401 1192 1401 1192 1401 1192 1401 1191 1401 1191 1400 1190 1400 1190 1400 1191 1401 1192 1402 1192 1402 1193 1402 1194 1404 1195 1405 1195 1405 1194 1405 1194 1405 1193 1405 1194 1406 1194 1406 1195 1407 1195 1407 1196 1407 1197 1409 1198 1409 1198 1409 1199 1410 1198 1410 1198 1410 1197 1411 1198 1411 1199 1412 1200 1413 1201 1414 1201 1414 1201 1415 1201 1415 1203 1415 1203 1415 1205 1417 1208 1419 1208 1419 1208 1420 1208 1420 1207 1420 1208 1422 1208 1423 1208 1423 1207 1423 1206 1423 1206 1423 1206 1423 1207 1424 1207 1424 1207 1425 1207 1425 1206 1425 1206 1426 1205 1426 1205 1426 1205 1426 1204 1426 1204 1427 1204 1427 1205 1427 1205 1428 1206 1428 1207 1428 1208 1429 1210 1429 1212 1430 1212 1430 1213 1431 1213 1431 1213 1432 1214 1432 1214 1432 1214 1433 1215 1433 1217 1433 1218 1433 1220 1434 1220 1435 1221 1435 1222 1435 1222 1435 1223 1435 1223 1435 1224 1435 1225 1435 1226 1435 1226 1435 1227 1436 1227 1436 1228 1436 1228 1436 1230 1437 1230 1437 1231 1436 1230 1436 1229 1436 1229 1436 1228 1436 1228 1435 1228 1435 1227 1434 1228 1434 1229 1434 1229 1434 1230 1434 1232 1435 1232 1436 1234 1437 1236 1437 1238 1437 1239 1438 1239 1438 1241 1438 1241 1438 1244 1439 1246 1440 1247 1440 1248 1440 1248 1440 1248 1440 1249 1440 1249 1440 1250 1440 1251 1440 1252 1440 1252 1440 1252 1441 1251 1441 1252 1442 1253 1443 1253 1443 1256 1442 1256 1442 1257 1442 1258 1442 1258 1442 1260 1442 1260 1441 1261 1442 1262 1442 1262 1442 1262 1442 1262 1444 1263 1445 1264 1446 1264 1447 1264 1448 1264 1448 1263 1448 1263 1449 1263 1449 1263 1450 1262 1450 1261 1450 1257 1450 1257 1450 1255 1448 1255 1448 1254 1447 1255 1447 1255 1446 1255 1446 1254 1446 1254 1447 1253 1448 1253 1448 1252 1449 1251 1450 1251 1450 1250 1449 1248 1449 1247 1449 1247 1449 1247 1448 1245 1447 1245 1447 1242 1446 1242 1446 1240 1447 1238 1448 1236 1449 1236 1449 1235 1448 1235 1448 1235 1449 1236 1449 1237 1449 1237 1449 1238 1449 1238 1449 1238 1451 1238 1451 1236 1452 1233 1452 1231 1451 1228 1451 1227 1450 1227 1450 1226 1450 1226 1450 1225 1449 1223 1449 1222 1449 1222 1451 1225 1451 1228 1452 1229 1452 1229 1452 1230 1453 1230 1454 1230 1455 1230 1456 1229 1456 1229 1457 1228 1457 1227 1457 1227 1457 1227 1458 1227 1459 1228 1458 1228 1458 1229 1457 1229 1457 1230 1457 1230 1456 1231 1456 1232 1455 1233 1454 1233 1454 1234 1454 1234 1454 1238 1453 1238 1453 1238 1453 1241 1452 1244 1453 1245 1453 1247 1453 1247 1454 1245 1456 1243 1456 1243 1456 1242 1456 1242 1457 1244 1458 1244 1458 1245 1457 1245 1457 1245 1457 1246 1457 1247 1456 1247 1456 1249 1457 1250 1458 1249 1460 1248 1461 1247 1461 1247 1461 1246 1461 1246 1461 1245 1461 1245 1460 1244 1461 1244 1461 1244 1461 1243 1461 1241 1461 1240 1462 1238 1462 1237 1463 1236 1463 1236 1463 1236 1463 1234 1462 1233 1463 1232 1464 1230 1464 1229 1463 1227 1463 1227 1463 1225 1463 1224 1463 1224 1463 1223 1464 1222 1464 1217 1463 1212 1463 1212 1463 1209 1462 1207 1462 1207 1461 1207 1462 1206 1462 1206 1462 1206 1462 1205 1463 1205 1463 1200 1462 1196 1462 1195 1462 1195 1462 1194 1461 1195 1461 1196 1461 1197 1461 1197 1461 1199 1460 1199 1459 1197 1459 1196 1459 1196 1459 1195 1459 1190 1459 1190 1458 1189 1458 1189 1458 1188 1458 1186 1458 1185 1458 1184 1458 1183 1458 1181 1458 1179 1458 1178 1458 1177 1458 1175 1457 1175 1457 1176 1457 1177 1456 1177 1456 1178 1456 1177 1454 1174 1453 1174 1453 1173 1453 1173 1452 1172 1452 1170 1453 1170 1454 1168 1455 1167 1455 1167 1455 1166 1455 1167 1456 1167 1457 1167 1457 1167 1457 1165 1458 1164 1458 1163 1458 1163 1459 1162 1459 1162 1459 1162 1460 1161 1460 1161 1460 1160 1460 1159 1460 1158 1461 1157 1461 1156 1461 1155 1461 1154 1461 1151 1461 1150 1462 1147 1462 1147 1461 1146 1461 1145 1461 1143 1461 1142 1461 1142 1461 1141 1462 1141 1462 1141 1462 1140 1463 1139 1463 1135 1465 1134 1465 1132 1465 1131 1465 1130 1465 1130 1465 1129 1465 1129 1465 1128 1465 1128 1465 1127 1465 1126 1466 1126 1466 1125 1466 1124 1466 1124 1466 1123 1466 1122 1466 1119 1466 1116 1466 1115 1466 1115 1466 1115 1466 1114 1466 1114 1467 1113 1467 1113 1467 1112 1467 1112 1467 1111 1467 1111 1467 1109 1467 1109 1467 1108 1467 1108 1467 1107 1467 1104 1467 1103 1468 1103 1468 1102 1467 1102 1467 1103 1467 1104 1467 1104 1467 1104 1467 1102 1467 1101 1467 1101 1467 1100 1467 1099 1467 1098 1467 1098 1467 1097 1467 1096 1467 1096 1467 1097 1467 1098 1467 1099 1468 1099 1468 1098 1468 1096 1468 1096 1468 1095 1468 1094 1468 1092 1468 1088 1468 1085 1468 1083 1468 1082 1468 1080 1468 1080 1468 1078 1468 1076 1469 1075 1469 1074 1469 1074 1469 1073 1469 1069 1469 1069 1469 1067 1469 1066 1469 1065 1469 1066 1468 1067 1468 1069 1469 1069 1468 1068 1468 1068 1468 1067 1467 1066 1467 1065 1467 1064 1467 1063 1466 1062 1465 1059 1464 1059 1462 1060 1461 1061 1461 1061 1460 1060 1459 1060 1459 1059 1458 1059 1457 1060 1457 1060 1458 1062 1458 1062 1458 1061 1457 1061 1457 1060 1457 1056 1457 1050 1456 1049 1456 1048 1456 1047 1456 1047 1456 1046 1456 1046 1456 1043 1456 1042 1456 1037 1457 1034 1456 1032 1456 1028 1456 1025 1456 1023 1456 1023 1456 1022 1456 1022 1455 1022 1455 1021 1455 1019 1455 1019 1455 1014 1454 1013 1454 1012 1453 1013 1453 1013 1452 1013 1451 1012 1451 1011 1451 1010 1451 1010 1451 1008 1451 1008 1451 1009 1451 1009 1450 1007 1450 1006 1449 1006 1449 1006 1449 1005 1449 1004 1449 1002 1448 1002 1448 1001 1447 1000 1446 999 1445 1000 1444 1000 1444 1001 1444 1001 1444 1002 1443 1002 1443 1003 1443 1004 1443 1004 1443 1005 1443 1006 1443 1008 1442 1013 1442 1018 1441 1020 1441 1021 1441 1021 1441 1024 1441 1025 1441 1027 1441 1028 1441 1030 1440 1031 1440 1033 1440 1035 1440 1036 1440 1037 1440 1038 1440 1040 1440 1041 1440 1042 1440 1043 1440 1044 1440 1044 1440 1045 1439 1045 1439 1046 1439 1049 1439 1050 1439 1051 1439 1051 1439 1052 1440 1052 1440 1053 1440 1053 1440 1057 1440 1059 1440 1060 1440 1061 1440 1061 1440 1062 1440 1063 1440 1063 1440 1064 1440 1065 1440 1065 1440 1067 1440 1069 1440 1075 1441 1077 1441 1078 1441 1077 1441 1077 1441 1081 1440 1083 1440 1084 1440 1082 1440 1081 1440 1082 1440 1082 1440 1084 1440 1087 1440 1088 1440 1088 1440 1090 1440 1093 1440 1095 1440 1094 1439 1094 1439 1092 1439 1091 1439 1091 1439 1090 1439 1089 1439 1086 1439 1086 1438 1085 1438 1085 1438 1085 1437 1084 1437 1084 1437 1083 1436 1079 1436 1078 1436 1078 1436 1077 1436 1076 1436 1076 1436 1075 1436 1075 1435 1073 1435 1072 1435 1071 1435 1070 1435 1068 1435 1065 1434 1062 1434 1062 1434 1062 1434 1061 1434 1061 1434 1060 1434 1060 1434 1059 1434 1059 1433 1058 1433 1056 1433 1055 1433 1054 1433 1054 1433 1053 1433 1053 1433 1052 1434 1052 1434 1051 1434 1051 1434 1050 1434 1049 1434 1048 1434 1048 1434 1047 1434 1046 1434 1045 1434 1045 1434 1044 1435 1038 1435 1036 1435 1034 1435 1032 1435 1024 1435 1023 1435 1023 1435 1021 1435 1021 1435 1020 1434 1018 1434 1016 1434 1014 1434 1012 1435 1012 1435 1011 1435 1008 1435 1005 1435 1005 1435 1001 1435 1000 1434 998 1435 997 1435 996 1435 996 1434 995 1434 995 1434 995 1434 995 1433 994 1433 992 1432 991 1432 990 1432 990 1432 989 1432 988 1431 988 1431 987 1431 986 1430 985 1430 984 1429 984 1428 984 1428 985 1428 986 1428 991 1426 993 1426 994 1426 995 1426 995 1426 996 1426 998 1426 998 1426 1000 1425 1000 1425 1002 1425 1006 1425 1009 1424 1009 1424 1011 1424 1012 1424 1013 1423 1014 1423 1016 1423 1019 1423 1019 1423 1020 1423 1021 1423 1021 1423 1025 1423 1026 1423 1026 1423 1027 1422 1026 1422 1026 1422 1025 1422 1024 1422 1023 1422 1022 1422 1021 1421 1025 1421 1026 1421 1028 1421 1029 1421 1030 1421 1032 1421 1032 1421 1035 1421 1035 1421 1037 1420 1036 1420 1036 1420 1034 1421 1033 1421 1031 1421 1030 1420 1030 1420 1028 1420 1028 1420 1027 1420 1026 1420 1024 1420 1023 1420 1020 1420 1019 1421 1018 1421 1017 1421 1016 1421 1015 1421 1009 1422 1006 1422 1003 1422 1003 1422 1001 1422 1000 1422 1000 1422 1000 1421 999 1421 998 1421 998 1421 997 1420 996 1421 997 1421 998 1421 998 1421 999 1422 998 1422 997 1423 995 1422 994 1422 994 1423 993 1423 991 1422 990 1423 989 1423 988 1423 987 1422 986 1422 986 1422 985 1422 985 1421 986 1421 986 1421 987 1420 987 1420 988 1420 989 1420 989 1420 993 1420 995 1420 995 1420 996 1419 992 1419 992 1419 992 1418 995 1418 994 1418 990 1418 988 1418 987 1418 988 1419 987 1419 985 1419 985 1419 984 1419 984 1419 983 1418 983 1418 981 1418 981 1418 977 1418 976 1419 976 1419 976 1419 974 1418 973 1418 973 1418 972 1417 972 1416 973 1414 973 1414 975 1413 976 1412 977 1412 977 1412 978 1412 979 1412 979 1411 979 1411 979 1410 981 1410 981 1410 983 1410 984 1410 988 1409 988 1409 989 1409 988 1408 988 1407 988 1407 987 1407 986 1407 986 1407 985 1407 984 1407 984 1407 983 1407 982 1407 982 1407 981 1406 981 1406 981 1406 981 1405 981 1405 981 1405 982 1405 987 1403 988 1402 989 1402 992 1401 992 1401 996 1400 997 1400 998 1399 999 1399 999 1399 1000 1398 1000 1398 1000 1398 1001 1398 1001 1398 1002 1398 1004 1398 1007 1397 1008 1397 1008 1397 1009 1397 1010 1397 1011 1396 1012 1396 1013 1396 1014 1396 1017 1395 1018 1395 1019 1395 1020 1395 1024 1394 1028 1393 1031 1393 1033 1392 1033 1392 1036 1392 1037 1392 1038 1392 1039 1392 1040 1391 1040 1391 1041 1391 1041 1391 1043 1391 1044 1391 1045 1391 1046 1391 1046 1391 1049 1391 1049 1391 1050 1391 1051 1391 1051 1392 1052 1392 1052 1392 1053 1393 1054 1393 1055 1394 1055 1395 1054 1395 1054 1396 1053 1397 1053 1398 1053 1399 1055 1399 1054 1400 1053 1400 1052 1400 1051 1400 1050 1400 1049 1401 1049 1401 1048 1402 1047 1403 1046 1403 1046 1403 1045 1403 1045 1403 1045 1404 1047 1404 1048 1404 1049 1403 1052 1403 1053 1402 1053 1402 1054 1402 1056 1402 1056 1402 1056 1402 1057 1402 1058 1402 1059 1402 1059 1402 1060 1402 1061 1401 1061 1401 1062 1401 1061 1402 1061 1402 1060 1402 1060 1402 1059 1402 1059 1403 1059 1403 1059 1403 1060 1403 1063 1402 1063 1402 1064 1401 1063 1401 1062 1401 1061 1400 1060 1400 1061 1400 1064 1398 1065 1398 1065 1397 1066 1397 1068 1397 1069 1396 1070 1396 1070 1396 1073 1397 1073 1397 1074 1397 1075 1397 1076 1397 1077 1397 1077 1397 1078 1397 1079 1397 1079 1398 1080 1398 1080 1398 1080 1398 1082 1398 1082 1398 1084 1398 1085 1398 1085 1398 1087 1399 1090 1399 1091 1400 1093 1400 1094 1400 1098 1401 1099 1402 1098 1403 1095 1405 1094 1405 1092 1406 1091 1406 1090 1406 1090 1406 1089 1406 1088 1407 1088 1407 1088 1407 1091 1408 1094 1408 1095 1407 1095 1407 1095 1407 1094 1407 1094 1407 1093 1407 1093 1407 1092 1407 1093 1406 1096 1405 1096 1405 1097 1405 1098 1405 1098 1405 1099 1405 1098 1406 1098 1406 1097 1406 1098 1407 1100 1407 1101 1406 1101 1406 M 1329 1394 1330 1394 1331 1394 1332 1395 1332 1395 1333 1396 1333 1396 1333 1396 1331 1397 1331 1397 1331 1397 1330 1398 1329 1398 1329 1398 1327 1398 1326 1398 1326 1398 1326 1398 1325 1397 1325 1397 1325 1397 1324 1397 1324 1397 1323 1396 1323 1396 1323 1395 1323 1395 1324 1395 1325 1394 1325 1394 1325 1394 1326 1394 1327 1394 1327 1394 1328 1394 1329 1394 1329 1394 1329 1394 M 1331 1398 1331 1399 1331 1400 1331 1400 1331 1400 1331 1400 1330 1401 1330 1401 1330 1401 1329 1401 1326 1401 1326 1401 1326 1401 1326 1400 1327 1399 1327 1399 1329 1398 1330 1398 1330 1398 1330 1398 1330 1398 1331 1398 M 1597 1404 1599 1405 1598 1405 1598 1406 1598 1406 1598 1406 1597 1406 1597 1406 1597 1406 1595 1404 1595 1404 1595 1404 1596 1404 1597 1404 M 1604 1405 1605 1405 1605 1405 1605 1406 1606 1406 1606 1406 1606 1407 1606 1407 1606 1407 1605 1407 1605 1407 1604 1407 1604 1407 1604 1407 1604 1407 1603 1407 1603 1406 1602 1406 1604 1405 1604 1405 M 1614 1406 1616 1406 1616 1406 1617 1407 1617 1407 1617 1407 1616 1407 1616 1407 1616 1407 1615 1407 1615 1407 1615 1407 1614 1407 1614 1407 1612 1407 1612 1406 1612 1406 1612 1406 1613 1405 1614 1405 1614 1405 1614 1406 M 1500 1408 1501 1408 1504 1408 1504 1408 1504 1408 1504 1408 1504 1409 1503 1409 1503 1409 1503 1409 1502 1409 1501 1409 1500 1408 1500 1408 1500 1408 1500 1408 1500 1408 M 1682 1409 1681 1410 1681 1410 1681 1410 1680 1410 1680 1410 1678 1410 1678 1410 1678 1410 1678 1409 1679 1409 1679 1409 1679 1409 1680 1409 1681 1409 1682 1409 1682 1409 1682 1409 M 1547 1893 1547 1892 1547 1892 1547 1891 1547 1888 1547 1888 1547 1888 1548 1887 1548 1887 1548 1887 1549 1886 1549 1886 1550 1886 1550 1886 1552 1885 1552 1885 1553 1885 1554 1884 1554 1884 1555 1883 1555 1883 1556 1883 1557 1882 1557 1882 1558 1880 1558 1880 1558 1879 1558 1878 1558 1877 1559 1875 1559 1875 1560 1872 1561 1870 1562 1869 1563 1867 1563 1866 1562 1860 1560 1852 1558 1846 1557 1838 1555 1837 1555 1837 1550 1835 1548 1834 1548 1834 1545 1833 1541 1831 1540 1831 1541 1829 1542 1828 1542 1828 1542 1827 1540 1826 1540 1826 1539 1826 1539 1826 1536 1826 1535 1826 1535 1827 1534 1827 1532 1825 1532 1824 1532 1824 1531 1821 1531 1821 1531 1821 1531 1820 1531 1820 1531 1819 1530 1819 1527 1820 1526 1820 1526 1820 1526 1820 1525 1820 1524 1820 1521 1817 1521 1817 1520 1816 1520 1815 1520 1815 1520 1813 1519 1813 1512 1810 1510 1809 1506 1807 1504 1807 1501 1806 1501 1805 1494 1803 1492 1802 1487 1800 1482 1798 1480 1797 1478 1797 1466 1792 1464 1791 1459 1792 1458 1792 1454 1794 1448 1796 1448 1796 1446 1796 1446 1796 1444 1796 1444 1796 1441 1795 1440 1796 1440 1796 1439 1796 1438 1795 1437 1795 1436 1794 1435 1794 1433 1794 1426 1794 1425 1794 1424 1793 1424 1792 1424 1792 1423 1792 1423 1792 1422 1792 1420 1793 1419 1794 1418 1794 1418 1794 1417 1795 1416 1795 1416 1795 1415 1795 1415 1795 1414 1795 1412 1794 1411 1794 1411 1794 1410 1793 1409 1793 1408 1793 1407 1792 1406 1792 1406 1792 1405 1791 1405 1791 1405 1790 1403 1790 1403 1790 1401 1790 1401 1790 1401 1791 1401 1792 1401 1792 1400 1792 1400 1792 1399 1791 1398 1790 1396 1789 1394 1788 1394 1787 1390 1786 1386 1786 1385 1786 1383 1786 1382 1787 1382 1787 1382 1787 1379 1788 1378 1788 1377 1788 1377 1787 1377 1786 1376 1786 1376 1786 1375 1786 1373 1786 1372 1786 1371 1786 1370 1785 1369 1785 1369 1785 1367 1784 1367 1785 1366 1785 1366 1785 1365 1785 1364 1784 1363 1784 1363 1783 1362 1783 1362 1782 1362 1781 1362 1781 1362 1780 1362 1780 1362 1779 1361 1779 1361 1777 1361 1777 1361 1775 1359 1774 1358 1774 1358 1774 1357 1774 1356 1774 1356 1774 1355 1774 1355 1774 1355 1774 1355 1775 1355 1777 1355 1780 1353 1780 1322 1780 1318 1780 1316 1780 1313 1780 1310 1780 1305 1780 1302 1780 1296 1780 1288 1780 1280 1780 1278 1780 1270 1780 1261 1780 1257 1780 1256 1780 1254 1780 1243 1780 1240 1780 1237 1780 1234 1780 1229 1780 1227 1780 1226 1780 1223 1780 1221 1780 1218 1780 1213 1780 1212 1780 1209 1780 1201 1780 1198 1780 1194 1780 1187 1780 1183 1780 1181 1780 1180 1780 1178 1780 1174 1780 1170 1780 1161 1780 1159 1780 1156 1780 1154 1780 1153 1780 1147 1780 1145 1780 1141 1780 1139 1780 1137 1780 1129 1780 1124 1780 1121 1780 1119 1780 1118 1780 1116 1780 1115 1780 1113 1780 1112 1780 1110 1780 1107 1780 1106 1780 1096 1780 1089 1780 1086 1780 1083 1780 1082 1780 1081 1780 1079 1780 1078 1780 1077 1780 1071 1780 1070 1780 1066 1780 1064 1780 1061 1780 1054 1780 1053 1780 1049 1780 1047 1780 1046 1780 1044 1780 1040 1780 1038 1780 1036 1780 1032 1780 1031 1780 1029 1780 1029 1780 1026 1780 1021 1780 1006 1780 1006 1780 1005 1780 1003 1780 1003 1780 1001 1780 997 1780 993 1780 992 1780 990 1780 988 1780 984 1780 978 1780 975 1780 972 1780 970 1780 967 1780 960 1780 959 1780 958 1780 950 1780 941 1780 925 1780 921 1780 919 1780 917 1780 915 1780 914 1780 913 1780 912 1779 912 1779 913 1779 912 1778 911 1779 910 1779 910 1779 910 1780 910 1780 909 1780 909 1779 908 1778 907 1778 906 1776 909 1775 910 1775 911 1775 912 1775 912 1774 913 1773 912 1773 912 1773 912 1774 912 1774 912 1775 910 1775 910 1775 909 1775 907 1774 906 1774 906 1771 907 1770 908 1769 908 1769 906 1770 906 1770 905 1771 904 1771 904 1771 903 1772 903 1772 903 1773 903 1773 902 1774 902 1774 901 1773 900 1773 898 1773 897 1772 896 1772 895 1772 895 1771 893 1770 893 1769 894 1768 894 1768 895 1768 895 1768 895 1768 896 1769 897 1770 897 1771 898 1772 898 1772 898 1771 898 1771 899 1770 900 1770 900 1770 901 1770 902 1769 902 1769 902 1769 901 1769 900 1769 899 1770 898 1770 895 1767 896 1767 896 1767 896 1766 896 1765 896 1765 895 1765 895 1765 896 1764 896 1764 897 1764 898 1763 898 1763 897 1761 897 1761 895 1761 895 1761 896 1761 896 1761 896 1762 897 1762 897 1763 896 1763 895 1763 894 1764 895 1765 895 1765 895 1766 896 1766 896 1767 895 1767 894 1767 894 1766 894 1765 893 1766 893 1766 893 1767 892 1767 892 1768 890 1768 888 1768 888 1768 886 1767 886 1766 885 1766 885 1766 884 1765 883 1765 883 1765 882 1764 882 1764 881 1763 882 1763 883 1764 884 1763 885 1761 885 1760 884 1759 884 1759 883 1759 884 1758 884 1758 885 1757 885 1758 886 1758 886 1758 888 1757 888 1757 889 1756 888 1756 888 1757 886 1757 885 1757 883 1758 883 1758 882 1759 881 1759 881 1759 879 1759 877 1759 877 1759 877 1758 878 1756 878 1756 879 1756 880 1755 881 1754 881 1753 881 1752 881 1751 882 1750 882 1749 881 1749 880 1751 879 1752 880 1753 880 1754 880 1754 878 1755 877 1756 877 1756 877 1757 876 1757 875 1757 875 1757 873 1756 872 1756 871 1757 871 1757 870 1756 870 1754 870 1753 871 1753 871 1753 872 1753 871 1753 870 1753 870 1754 869 1754 869 1755 869 1755 869 1756 868 1757 867 1757 865 1756 864 1756 863 1756 861 1756 860 1756 859 1756 858 1756 859 1755 860 1755 859 1754 858 1754 858 1754 862 1753 864 1753 867 1753 867 1753 869 1752 870 1750 870 1749 870 1747 869 1747 869 1747 868 1746 868 1747 869 1748 869 1750 867 1752 867 1752 865 1753 863 1753 860 1753 859 1753 861 1752 859 1750 858 1750 856 1750 856 1750 856 1751 855 1751 854 1750 854 1750 854 1750 855 1749 855 1749 857 1749 859 1750 859 1749 860 1749 860 1749 859 1749 859 1749 859 1749 858 1749 856 1749 853 1749 852 1750 851 1750 850 1749 848 1749 846 1749 846 1749 845 1749 845 1749 844 1749 846 1750 846 1750 847 1750 846 1751 846 1751 845 1751 844 1750 843 1750 841 1749 840 1749 840 1749 838 1748 839 1746 839 1746 840 1747 840 1747 841 1747 841 1747 841 1747 843 1747 843 1747 845 1747 847 1747 847 1747 849 1747 849 1747 851 1746 852 1745 852 1745 852 1745 852 1745 851 1746 849 1746 848 1747 844 1747 843 1747 843 1747 841 1747 841 1747 840 1747 839 1746 838 1746 838 1746 836 1746 836 1746 834 1745 834 1745 834 1744 834 1744 837 1743 837 1743 838 1743 839 1743 840 1743 841 1744 843 1743 843 1743 844 1743 845 1742 845 1742 844 1742 844 1743 843 1743 843 1743 842 1743 841 1743 840 1743 839 1743 839 1742 838 1743 834 1743 834 1742 835 1742 836 1742 836 1741 838 1740 838 1739 838 1739 838 1738 839 1738 839 1738 841 1738 841 1738 843 1737 845 1737 847 1737 848 1738 851 1738 852 1738 853 1737 853 1736 852 1736 852 1735 852 1736 852 1736 852 1737 851 1737 848 1737 847 1737 846 1737 845 1737 844 1737 842 1737 840 1737 840 1737 840 1736 841 1736 841 1734 839 1736 837 1737 837 1737 838 1738 838 1739 837 1740 836 1741 836 1741 835 1741 835 1740 835 1740 834 1739 833 1737 832 1735 832 1734 833 1734 833 1733 834 1733 834 1733 835 1733 836 1733 836 1731 837 1730 837 1730 838 1730 839 1730 839 1730 839 1730 838 1730 838 1730 837 1730 837 1730 837 1731 837 1731 840 1730 839 1729 841 1728 841 1728 841 1728 842 1728 843 1728 843 1727 844 1727 846 1727 846 1727 847 1728 848 1728 849 1730 850 1731 851 1731 851 1732 852 1732 852 1731 851 1730 850 1730 849 1729 849 1729 848 1729 847 1727 848 1727 849 1726 849 1726 850 1726 851 1726 850 1726 850 1726 848 1726 847 1726 847 1726 846 1727 845 1727 844 1726 844 1726 843 1725 843 1724 843 1723 845 1722 846 1722 847 1722 848 1720 847 1719 846 1719 846 1719 847 1720 846 1722 844 1722 843 1723 842 1723 842 1724 842 1724 841 1725 840 1725 839 1726 839 1726 837 1727 835 1728 835 1728 834 1728 833 1728 833 1729 833 1728 832 1727 833 1724 832 1724 832 1725 832 1725 831 1727 830 1727 830 1726 829 1725 830 1724 830 1724 830 1724 831 1724 832 1723 832 1723 830 1723 829 1724 829 1725 828 1725 827 1727 826 1728 824 1727 825 1726 826 1726 826 1726 827 1724 827 1723 827 1723 828 1721 828 1720 829 1720 828 1718 828 1718 827 1719 826 1719 826 1719 825 1719 824 1719 824 1719 823 1718 822 1717 822 1716 822 1714 821 1713 820 1713 819 1713 818 1712 817 1712 817 1711 817 1711 816 1710 816 1709 816 1709 815 1708 815 1707 818 1707 819 1708 822 1709 822 1710 823 1709 824 1709 828 1709 828 1709 828 1709 829 1709 829 1710 830 1710 830 1710 831 1711 831 1712 831 1712 833 1712 832 1712 832 1711 832 1711 831 1710 829 1709 829 1709 829 1708 828 1708 826 1708 823 1708 823 1708 822 1708 818 1706 818 1706 818 1705 818 1704 818 1704 818 1703 820 1703 820 1703 821 1703 823 1703 823 1702 822 1702 821 1702 820 1702 820 1701 820 1701 820 1701 821 1700 820 1700 819 1701 818 1702 816 1703 816 1704 815 1704 813 1705 811 1706 811 1706 811 1707 811 1708 811 1709 811 1709 810 1710 810 1710 809 1710 809 1709 806 1708 805 1707 804 1706 801 1704 801 1704 800 1703 798 1702 797 1701 797 1699 797 1698 798 1698 801 1697 801 1696 802 1697 803 1697 804 1697 804 1697 805 1697 805 1697 807 1696 806 1696 806 1696 804 1696 802 1696 801 1696 801 1696 799 1697 799 1697 798 1697 797 1698 796 1697 795 1696 795 1695 794 1694 793 1695 792 1695 791 1695 791 1694 791 1694 791 1693 792 1692 792 1691 792 1690 792 1690 793 1690 793 1691 794 1692 795 1692 798 1695 798 1695 799 1695 799 1695 799 1695 798 1695 796 1693 794 1691 793 1690 793 1689 793 1689 793 1689 795 1689 796 1689 797 1689 798 1690 798 1690 799 1690 799 1690 799 1690 800 1690 799 1690 799 1690 798 1690 795 1688 796 1686 798 1685 798 1685 800 1684 800 1685 804 1684 805 1684 802 1684 801 1684 800 1684 799 1684 799 1683 799 1682 801 1681 803 1679 804 1677 804 1677 805 1677 805 1677 806 1677 806 1677 807 1677 805 1677 804 1677 803 1677 802 1675 802 1676 802 1676 802 1678 802 1679 800 1681 798 1683 797 1684 797 1684 797 1684 796 1683 797 1682 797 1681 798 1681 799 1679 799 1679 798 1678 797 1675 797 1672 797 1672 797 1671 798 1671 798 1671 799 1669 799 1669 798 1670 798 1669 798 1668 798 1667 797 1666 795 1667 793 1666 791 1665 791 1664 791 1664 790 1664 790 1664 789 1664 787 1663 787 1662 786 1662 785 1662 784 1662 782 1662 781 1661 780 1661 780 1661 779 1661 778 1660 778 1660 774 1658 773 1658 773 1658 769 1658 769 1657 769 1655 765 1654 765 1654 766 1653 766 1652 766 1652 763 1651 761 1651 762 1649 763 1649 761 1646 761 1646 759 1645 759 1645 759 1645 757 1643 754 1641 754 1640 754 1640 754 1639 753 1638 752 1638 751 1637 751 1637 750 1636 750 1636 750 1636 749 1635 749 1635 749 1634 748 1633 747 1633 747 1633 746 1632 745 1632 744 1630 744 1630 744 1630 744 1629 742 1628 739 1626 738 1625 737 1625 733 1623 731 1622 729 1621 730 1621 729 1619 727 1618 726 1618 726 1618 724 1617 724 1617 724 1616 723 1616 720 1616 717 1613 717 1613 718 1613 718 1613 718 1612 719 1612 719 1611 717 1610 717 1610 716 1610 716 1610 713 1609 711 1607 711 1607 706 1609 704 1609 702 1610 701 1610 700 1610 699 1610 698 1610 697 1611 698 1611 699 1611 699 1612 698 1613 697 1613 695 1613 695 1614 695 1614 695 1615 695 1616 694 1617 693 1618 693 1618 691 1617 690 1617 689 1618 688 1618 687 1619 686 1619 683 1620 682 1620 682 1620 681 1621 681 1621 680 1622 680 1622 679 1622 679 1622 679 1621 679 1621 679 1620 679 1619 678 1618 678 1617 677 1616 672 1614 669 1612 666 1610 663 1609 662 1608 661 1608 660 1607 660 1607 660 1606 660 1606 655 1605 654 1604 653 1604 652 1603 652 1603 652 1602 653 1601 654 1600 654 1599 647 1599 644 1599 643 1599 641 1600 640 1601 639 1601 639 1601 632 1599 631 1600 631 1600 631 1601 624 1599 623 1599 623 1598 623 1598 623 1589 623 1589 623 1561 623 1555 623 1543 623 1541 623 1537 623 1522 623 1522 623 1521 623 1513 623 1507 623 1500 623 1498 623 1494 623 1491 623 1488 623 1484 623 1481 623 1479 623 1475 623 1473 623 1468 623 1461 623 1454 623 1452 623 1450 623 1450 624 1450 626 1450 626 1450 627 1450 627 1451 629 1451 631 1451 633 1451 635 1451 635 1451 636 1451 637 1451 637 1451 640 1451 641 1451 642 1451 642 1451 645 1451 646 1451 644 1451 643 1451 643 1451 645 1451 646 1452 646 1452 649 1452 653 1452 653 1452 653 1453 654 1453 655 1454 656 1454 657 1454 658 1454 658 1455 659 1455 661 1456 661 1456 661 1456 664 1457 667 1457 667 1458 668 1458 669 1458 670 1458 670 1458 671 1459 676 1460 677 1460 680 1461 683 1461 683 1461 684 1461 685 1461 687 1462 690 1462 691 1462 692 1462 693 1462 693 1462 695 1462 695 1462 696 1462 696 1462 697 1462 699 1462 700 1462 701 1462 702 1462 703 1463 705 1463 705 1463 710 1464 710 1464 711 1465 712 1465 712 1466 713 1466 715 1466 716 1466 716 1466 715 1465 715 1465 713 1465 711 1463 711 1463 712 1463 712 1463 713 1463 712 1463 711 1463 710 1463 710 1463 709 1462 709 1462 713 1462 715 1462 715 1462 716 1462 717 1462 719 1462 720 1462 720 1462 721 1462 721 1462 722 1462 723 1462 723 1462 724 1462 724 1463 727 1465 727 1465 728 1465 728 1465 729 1465 729 1466 730 1466 730 1466 731 1465 731 1465 730 1464 730 1464 728 1463 726 1462 726 1461 725 1461 725 1460 726 1459 726 1459 727 1459 727 1459 729 1459 731 1457 731 1457 732 1456 733 1456 734 1456 734 1456 736 1456 736 1456 737 1455 740 1454 742 1454 744 1454 745 1454 746 1454 747 1454 747 1454 750 1453 751 1453 751 1452 751 1451 751 1451 752 1450 752 1450 753 1450 754 1450 754 1450 756 1450 757 1450 758 1450 760 1450 760 1450 761 1450 761 1450 759 1449 758 1450 758 1449 757 1449 758 1449 759 1448 760 1448 762 1449 763 1449 764 1449 764 1449 765 1449 765 1449 767 1448 769 1448 769 1448 770 1448 770 1447 772 1447 773 1446 775 1446 776 1445 777 1445 778 1445 779 1446 779 1446 779 1447 779 1447 780 1447 781 1446 782 1445 782 1445 782 1444 784 1443 784 1443 787 1443 788 1443 790 1442 791 1442 790 1442 790 1443 790 1443 791 1443 792 1442 792 1442 793 1442 793 1443 796 1444 799 1443 800 1443 800 1443 801 1442 801 1442 801 1441 802 1441 803 1440 804 1440 804 1440 805 1441 807 1442 808 1443 808 1443 807 1444 805 1444 805 1445 800 1446 799 1446 795 1447 791 1448 790 1449 789 1449 789 1449 788 1449 787 1449 787 1450 786 1450 785 1450 785 1451 785 1451 784 1451 784 1451 782 1451 782 1450 780 1450 780 1450 777 1451 776 1451 773 1451 771 1452 771 1451 771 1451 767 1452 766 1452 765 1453 765 1454 765 1454 765 1455 761 1455 758 1456 758 1456 757 1456 755 1456 755 1456 754 1456 752 1458 752 1460 752 1460 750 1460 749 1460 748 1460 747 1460 747 1460 748 1461 747 1461 747 1462 746 1462 745 1463 745 1463 744 1462 745 1462 744 1462 743 1462 743 1463 743 1463 743 1464 743 1464 744 1464 746 1464 748 1465 749 1465 750 1465 750 1465 751 1465 751 1465 752 1465 752 1465 752 1465 750 1465 750 1465 749 1465 748 1465 747 1464 746 1464 747 1464 747 1464 747 1464 748 1464 747 1464 747 1464 746 1464 745 1464 745 1464 745 1463 745 1463 746 1463 747 1463 748 1463 748 1463 749 1464 749 1464 750 1464 751 1463 751 1463 752 1463 753 1463 754 1463 755 1464 759 1464 760 1463 759 1462 758 1462 758 1462 758 1462 756 1463 756 1463 754 1463 753 1462 753 1461 753 1460 753 1459 754 1459 754 1459 756 1459 758 1458 759 1459 760 1459 760 1458 761 1458 761 1458 761 1457 762 1457 763 1457 763 1458 764 1457 765 1457 766 1457 767 1456 767 1456 769 1456 770 1455 771 1454 770 1454 767 1454 772 1453 773 1453 775 1453 776 1453 775 1454 775 1454 774 1455 775 1455 776 1455 776 1454 777 1454 777 1453 778 1452 779 1453 779 1453 779 1454 779 1454 779 1454 778 1454 778 1455 776 1455 776 1456 777 1455 780 1455 780 1454 780 1453 779 1452 779 1451 779 1451 779 1452 780 1452 781 1452 781 1453 781 1454 780 1454 780 1455 781 1454 781 1453 782 1453 782 1453 782 1452 781 1452 781 1452 781 1452 780 1451 780 1451 780 1451 781 1451 781 1451 782 1452 782 1453 782 1453 782 1454 782 1455 781 1455 782 1455 782 1454 783 1453 783 1452 783 1452 783 1452 784 1453 784 1454 783 1454 782 1455 782 1455 783 1455 783 1454 784 1454 784 1454 784 1455 784 1455 784 1456 783 1456 783 1456 782 1457 783 1458 784 1458 784 1458 784 1457 784 1456 786 1454 786 1454 787 1454 788 1454 788 1454 788 1453 787 1453 787 1453 790 1452 791 1451 792 1450 793 1450 794 1449 798 1449 804 1448 804 1448 804 1448 805 1447 805 1447 808 1447 810 1447 811 1447 812 1447 812 1447 813 1447 814 1446 814 1446 815 1445 815 1445 816 1445 816 1445 817 1445 816 1447 815 1447 814 1447 813 1447 813 1447 812 1447 812 1447 812 1449 813 1449 815 1450 816 1450 818 1448 820 1447 822 1446 823 1446 825 1445 826 1444 825 1444 825 1443 825 1443 826 1442 827 1442 829 1442 830 1442 831 1442 831 1442 833 1441 837 1441 837 1441 838 1441 838 1441 838 1441 837 1441 837 1440 835 1440 834 1440 833 1440 830 1440 829 1440 829 1439 830 1439 830 1439 831 1439 831 1439 832 1438 832 1438 831 1438 831 1438 830 1438 830 1438 828 1438 827 1438 828 1437 828 1437 828 1436 828 1436 831 1435 831 1435 832 1435 833 1436 836 1437 838 1438 840 1438 842 1439 843 1439 844 1440 845 1441 845 1441 846 1442 846 1442 848 1444 850 1446 851 1447 851 1448 852 1449 853 1449 853 1449 855 1450 858 1451 858 1452 861 1453 861 1453 862 1453 862 1453 863 1454 863 1454 864 1454 864 1454 865 1454 870 1455 872 1455 873 1455 872 1454 872 1454 875 1454 876 1454 876 1454 877 1454 877 1453 877 1453 871 1453 870 1453 869 1454 869 1453 871 1452 871 1452 874 1452 876 1453 876 1452 875 1452 874 1452 872 1450 873 1449 877 1449 878 1449 878 1449 879 1449 880 1450 880 1450 880 1450 880 1450 881 1449 881 1449 880 1448 878 1448 875 1448 874 1448 874 1448 875 1447 875 1447 876 1447 876 1447 876 1448 878 1448 878 1447 878 1447 879 1446 880 1445 882 1445 882 1444 881 1444 880 1444 879 1444 878 1444 878 1445 877 1445 877 1445 875 1445 875 1444 878 1443 879 1443 879 1443 879 1444 878 1444 880 1444 881 1444 879 1444 880 1444 881 1443 883 1443 884 1443 884 1443 885 1444 885 1444 887 1444 888 1444 887 1443 886 1443 886 1443 885 1443 884 1443 884 1443 883 1443 883 1442 883 1442 887 1442 888 1442 889 1443 888 1444 888 1445 887 1445 888 1447 887 1447 887 1448 886 1448 887 1449 887 1449 889 1449 890 1449 890 1449 891 1449 891 1449 893 1449 894 1449 894 1450 891 1451 891 1452 890 1452 889 1452 888 1452 888 1453 886 1454 887 1454 887 1455 889 1455 890 1455 891 1455 892 1455 893 1455 893 1455 894 1454 895 1454 897 1454 899 1454 899 1455 900 1455 902 1454 903 1454 904 1454 903 1454 903 1453 903 1453 904 1453 905 1452 905 1452 906 1452 906 1452 907 1453 908 1452 908 1451 909 1450 909 1448 909 1448 910 1447 911 1447 912 1447 912 1447 913 1448 913 1448 914 1448 914 1448 914 1448 916 1447 917 1447 917 1448 919 1448 923 1448 924 1448 926 1447 928 1448 931 1448 931 1448 935 1448 936 1448 936 1448 937 1449 938 1449 939 1449 940 1450 941 1450 942 1450 942 1450 943 1450 944 1450 945 1450 946 1451 946 1451 947 1451 947 1451 947 1452 948 1452 952 1453 954 1454 955 1454 959 1455 960 1455 964 1455 967 1456 969 1456 971 1456 975 1456 977 1456 978 1457 979 1457 980 1457 981 1458 982 1458 982 1458 983 1459 983 1459 987 1459 989 1460 990 1460 990 1460 992 1461 993 1461 994 1461 996 1461 997 1461 997 1461 1000 1461 1002 1462 1003 1462 1004 1462 1007 1462 1007 1462 1008 1462 1010 1462 1014 1463 1015 1463 1016 1462 1016 1462 1017 1462 1018 1463 1019 1463 1020 1463 1022 1464 1023 1464 1023 1463 1020 1462 1017 1461 1018 1461 1018 1461 1019 1461 1021 1461 1022 1461 1023 1461 1024 1462 1026 1461 1025 1461 1025 1461 1029 1461 1031 1461 1037 1463 1038 1463 1038 1463 1041 1463 1042 1464 1042 1464 1042 1464 1043 1464 1043 1465 1044 1465 1045 1465 1046 1465 1047 1465 1047 1466 1048 1467 1049 1467 1050 1467 1052 1468 1053 1468 1053 1469 1054 1472 1050 1473 1049 1473 1049 1473 1048 1472 1048 1472 1047 1472 1047 1472 1043 1472 1042 1473 1040 1474 1040 1474 1039 1474 1039 1474 1038 1474 1037 1474 1035 1474 1034 1473 1034 1476 1035 1476 1036 1476 1036 1476 1035 1477 1033 1477 1030 1477 1030 1478 1030 1478 1034 1479 1035 1479 1036 1480 1038 1480 1038 1480 1039 1480 1040 1480 1041 1479 1041 1479 1042 1479 1042 1479 1043 1479 1043 1480 1044 1480 1049 1481 1050 1481 1050 1481 1051 1481 1051 1481 1052 1481 1052 1481 1054 1481 1055 1481 1056 1481 1057 1481 1058 1481 1059 1481 1061 1481 1066 1481 1067 1481 1067 1481 1068 1481 1068 1482 1069 1482 1069 1482 1071 1482 1074 1482 1080 1482 1080 1481 1081 1481 1083 1481 1088 1480 1088 1480 1089 1480 1092 1481 1093 1480 1095 1480 1096 1480 1097 1479 1097 1479 1099 1479 1099 1479 1100 1479 1100 1480 1102 1480 1102 1480 1105 1480 1105 1479 1106 1479 1106 1479 1106 1479 1111 1477 1113 1477 1115 1477 1115 1476 1116 1476 1116 1476 1117 1476 1117 1476 1118 1477 1119 1477 1118 1478 1118 1478 1118 1478 1118 1479 1119 1479 1119 1479 1119 1479 1119 1478 1120 1478 1120 1478 1121 1479 1122 1479 1122 1480 1122 1480 1122 1481 1122 1481 1125 1481 1126 1481 1126 1481 1128 1481 1130 1481 1131 1481 1131 1481 1133 1481 1134 1482 1135 1484 1135 1484 1134 1484 1134 1485 1134 1485 1134 1485 1136 1486 1137 1487 1137 1487 1138 1486 1138 1485 1138 1485 1138 1483 1138 1483 1138 1483 1139 1482 1139 1482 1140 1482 1141 1483 1142 1485 1142 1485 1142 1487 1142 1487 1143 1487 1143 1487 1143 1486 1143 1485 1144 1485 1145 1485 1145 1486 1145 1486 1148 1487 1149 1487 1150 1488 1150 1488 1151 1489 1152 1490 1152 1492 1152 1492 1151 1491 1150 1491 1150 1491 1148 1491 1147 1492 1147 1492 1146 1492 1143 1491 1142 1491 1142 1491 1141 1490 1141 1490 1140 1490 1142 1492 1142 1492 1142 1491 1143 1491 1144 1492 1144 1492 1145 1493 1145 1493 1146 1493 1146 1493 1147 1493 1147 1493 1148 1493 1150 1495 1151 1496 1151 1496 1151 1497 1152 1498 1152 1498 1152 1497 1152 1496 1152 1496 1153 1497 1154 1497 1154 1498 1156 1499 1156 1499 1156 1500 1157 1500 1159 1501 1161 1502 1162 1503 1162 1503 1163 1503 1162 1502 1161 1501 1159 1500 1157 1499 1157 1498 1156 1498 1156 1497 1155 1496 1154 1494 1155 1493 1156 1492 1155 1491 1156 1491 1156 1491 1157 1492 1158 1492 1158 1494 1156 1494 1156 1493 1155 1493 1156 1494 1157 1495 1158 1495 1159 1495 1160 1494 1159 1493 1159 1493 1159 1493 1160 1493 1160 1493 1162 1494 1163 1494 1163 1494 1164 1495 1164 1495 1165 1495 1163 1494 1163 1493 1162 1493 1161 1492 1161 1490 1160 1490 1159 1490 1158 1490 1158 1489 1157 1489 1156 1487 1157 1485 1154 1483 1154 1483 1154 1483 1153 1483 1152 1482 1152 1482 1150 1482 1150 1481 1150 1481 1150 1480 1150 1480 1151 1479 1152 1479 1152 1479 1154 1478 1155 1478 1155 1478 1155 1477 1154 1477 1153 1477 1151 1477 1152 1475 1152 1475 1152 1475 1154 1475 1155 1475 1154 1476 1154 1475 1153 1476 1153 1476 1153 1476 1154 1476 1154 1476 1155 1476 1156 1475 1157 1475 1157 1475 1159 1476 1160 1476 1160 1476 1161 1476 1161 1475 1162 1475 1162 1475 1164 1474 1164 1474 1164 1475 1167 1475 1168 1475 1169 1473 1172 1472 1172 1472 1174 1473 1175 1474 1175 1474 1176 1473 1176 1473 1175 1473 1174 1473 1174 1473 1175 1471 1175 1471 1178 1470 1179 1470 1179 1470 1179 1470 1185 1470 1186 1470 1186 1470 1186 1470 1187 1469 1187 1468 1186 1467 1186 1467 1188 1466 1184 1466 1183 1466 1181 1467 1181 1467 1179 1467 1178 1467 1176 1468 1174 1468 1173 1468 1172 1469 1172 1469 1173 1470 1173 1470 1174 1470 1174 1470 1173 1472 1173 1472 1173 1472 1172 1471 1172 1471 1169 1470 1166 1471 1164 1472 1162 1472 1161 1472 1161 1472 1161 1471 1157 1471 1153 1471 1152 1471 1152 1472 1152 1472 1153 1473 1154 1473 1156 1474 1156 1474 1155 1474 1153 1473 1153 1474 1152 1474 1149 1474 1147 1474 1147 1474 1146 1474 1146 1474 1145 1474 1145 1475 1144 1475 1144 1475 1143 1474 1143 1474 1144 1474 1144 1474 1144 1474 1144 1474 1145 1474 1145 1473 1144 1472 1143 1471 1142 1472 1142 1472 1141 1472 1139 1473 1138 1473 1138 1473 1137 1472 1138 1471 1139 1471 1139 1471 1140 1470 1140 1470 1141 1470 1142 1469 1143 1468 1144 1467 1144 1467 1144 1467 1145 1467 1146 1467 1146 1466 1147 1466 1151 1466 1153 1466 1156 1466 1159 1465 1162 1465 1164 1464 1167 1464 1167 1464 1169 1463 1169 1463 1170 1463 1172 1463 1177 1462 1178 1462 1178 1461 1179 1461 1180 1461 1181 1462 1185 1462 1186 1462 1186 1463 1190 1465 1190 1465 1190 1466 1191 1468 1192 1469 1191 1469 1191 1469 1189 1469 1189 1470 1190 1470 1191 1470 1192 1470 1192 1470 1193 1471 1196 1472 1197 1472 1198 1472 1197 1471 1200 1471 1200 1471 1201 1471 1200 1472 1200 1472 1199 1472 1199 1473 1199 1473 1200 1473 1201 1472 1202 1472 1203 1472 1204 1472 1204 1473 1204 1473 1203 1474 1203 1474 1204 1475 1206 1476 1207 1476 1208 1476 1211 1476 1211 1476 1212 1476 1213 1476 1214 1476 1214 1476 1215 1476 1216 1476 1216 1476 1216 1476 1217 1476 1218 1476 1221 1475 1221 1475 1221 1475 1222 1474 1222 1474 1222 1474 1223 1474 1224 1474 1224 1474 1224 1475 1224 1475 1224 1476 1226 1477 1226 1477 1227 1477 1227 1477 1228 1477 1228 1478 1230 1478 1230 1478 1231 1478 1231 1478 1233 1479 1233 1479 1235 1480 1237 1480 1238 1480 1238 1480 1239 1480 1240 1480 1240 1480 1242 1481 1242 1481 1243 1480 1247 1480 1250 1481 1251 1481 1253 1482 1254 1482 1255 1481 1260 1481 1262 1480 1263 1480 1263 1480 1265 1480 1266 1479 1268 1479 1271 1479 1275 1479 1275 1479 1276 1479 1276 1479 1281 1480 1284 1480 1284 1480 1286 1480 1287 1480 1288 1480 1290 1481 1290 1481 1294 1481 1297 1481 1301 1480 1304 1480 1304 1480 1303 1479 1302 1479 1302 1479 1301 1478 1299 1478 1299 1477 1298 1477 1298 1476 1298 1475 1300 1475 1301 1475 1304 1477 1305 1478 1306 1478 1307 1479 1308 1480 1308 1480 1310 1481 1313 1481 1315 1482 1316 1483 1316 1483 1317 1483 1317 1483 1318 1483 1318 1483 1319 1483 1320 1482 1320 1482 1320 1482 1321 1482 1321 1482 1323 1482 1323 1482 1324 1480 1322 1478 1321 1478 1321 1478 1320 1478 1320 1478 1319 1478 1319 1478 1319 1478 1315 1476 1315 1476 1314 1476 1312 1477 1310 1477 1309 1477 1309 1478 1309 1478 1309 1479 1308 1479 1308 1479 1307 1478 1307 1478 1306 1478 1306 1477 1305 1477 1305 1477 1304 1477 1304 1476 1303 1476 1300 1474 1302 1473 1302 1473 1303 1474 1303 1474 1303 1475 1303 1475 1304 1475 1304 1475 1304 1475 1305 1474 1304 1474 1304 1473 1303 1473 1303 1473 1302 1473 1302 1473 1301 1473 1301 1472 1300 1472 1298 1471 1299 1470 1300 1470 1300 1470 1301 1471 1301 1471 1301 1471 1302 1471 1302 1470 1302 1470 1305 1471 1305 1471 1306 1472 1307 1472 1308 1471 1309 1471 1311 1470 1312 1470 1313 1471 1314 1471 1314 1470 1313 1470 1313 1470 1312 1470 1311 1470 1310 1468 1310 1468 1312 1468 1314 1468 1315 1468 1315 1468 1315 1469 1316 1469 1317 1470 1318 1470 1317 1469 1317 1469 1316 1469 1316 1469 1316 1469 1317 1468 1317 1468 1317 1468 1320 1468 1320 1469 1321 1469 1322 1469 1323 1470 1325 1471 1325 1472 1324 1472 1327 1473 1327 1473 1329 1472 1329 1472 1331 1472 1332 1472 1333 1472 1333 1472 1334 1472 1335 1471 1335 1471 1334 1473 1333 1473 1332 1475 1331 1475 1330 1475 1329 1475 1329 1476 1329 1476 1329 1476 1330 1476 1330 1476 1331 1476 1333 1476 1333 1476 1334 1476 1334 1476 1334 1475 1334 1475 1333 1475 1334 1474 1334 1474 1334 1474 1335 1474 1337 1473 1337 1473 1339 1473 1339 1473 1342 1472 1342 1473 1341 1474 1341 1474 1341 1474 1341 1475 1340 1476 1339 1478 1338 1479 1338 1481 1339 1481 1339 1482 1339 1482 1338 1482 1338 1482 1337 1482 1336 1483 1335 1484 1334 1484 1334 1485 1336 1485 1337 1485 1338 1486 1339 1486 1339 1485 1339 1485 1340 1485 1341 1485 1340 1486 1339 1487 1338 1487 1338 1488 1340 1489 1340 1489 1343 1488 1345 1487 1346 1486 1348 1486 1349 1486 1349 1487 1349 1487 1348 1488 1347 1488 1347 1488 1347 1488 1345 1489 1345 1489 1344 1490 1345 1490 1345 1490 1346 1490 1346 1489 1347 1489 1349 1489 1349 1489 1350 1489 1351 1489 1352 1490 1352 1492 1352 1493 1352 1493 1351 1493 1349 1493 1348 1493 1348 1493 1346 1493 1346 1493 1344 1493 1344 1493 1343 1493 1343 1493 1342 1492 1342 1492 1343 1491 1342 1491 1342 1492 1341 1492 1341 1493 1340 1493 1340 1493 1338 1493 1337 1493 1337 1492 1337 1492 1337 1492 1337 1491 1336 1491 1335 1491 1334 1491 1335 1492 1337 1493 1339 1494 1340 1494 1340 1495 1340 1495 1342 1496 1342 1496 1342 1496 1343 1496 1344 1496 1344 1496 1344 1496 1345 1498 1345 1498 1346 1498 1347 1498 1348 1497 1347 1497 1345 1497 1342 1495 1340 1494 1341 1493 1341 1493 1342 1493 1345 1493 1345 1493 1346 1494 1346 1494 1349 1494 1350 1494 1350 1494 1351 1494 1352 1494 1353 1494 1353 1494 1354 1493 1353 1492 1352 1491 1352 1490 1353 1489 1355 1488 1354 1487 1353 1487 1353 1487 1352 1487 1352 1485 1352 1484 1352 1484 1352 1483 1350 1482 1350 1482 1349 1482 1347 1481 1346 1481 1347 1480 1347 1480 1348 1480 1349 1480 1349 1479 1349 1479 1349 1478 1350 1477 1351 1476 1351 1476 1350 1475 1351 1475 1352 1475 1356 1475 1357 1476 1357 1476 1360 1476 1360 1476 1361 1476 1362 1475 1363 1475 1364 1474 1368 1473 1370 1472 1370 1472 1370 1471 1370 1471 1372 1470 1374 1469 1374 1469 1375 1469 1375 1469 1377 1469 1379 1468 1380 1468 1381 1467 1381 1467 1380 1466 1379 1466 1378 1466 1378 1464 1379 1464 1380 1463 1379 1461 1379 1461 1378 1461 1375 1461 1373 1462 1373 1462 1372 1463 1373 1463 1375 1463 1376 1462 1377 1462 1375 1463 1372 1464 1371 1464 1367 1465 1366 1465 1364 1464 1364 1463 1364 1463 1365 1463 1365 1462 1365 1462 1364 1462 1364 1461 1365 1461 1368 1460 1370 1460 1371 1460 1372 1458 1371 1458 1370 1458 1370 1459 1368 1458 1369 1456 1369 1455 1369 1455 1371 1455 1373 1455 1374 1455 1378 1454 1380 1454 1380 1453 1381 1454 1379 1455 1378 1455 1376 1456 1376 1458 1379 1456 1382 1455 1384 1454 1382 1455 1382 1455 1381 1454 1381 1454 1381 1454 1382 1454 1383 1453 1382 1452 1381 1452 1381 1452 1380 1452 1380 1452 1379 1452 1378 1452 1377 1453 1376 1453 1373 1453 1369 1453 1369 1453 1368 1453 1366 1452 1366 1452 1364 1450 1364 1450 1363 1450 1362 1450 1362 1450 1362 1450 1362 1451 1361 1451 1361 1451 1360 1451 1360 1451 1358 1451 1357 1451 1358 1451 1356 1451 1355 1450 1351 1450 1351 1449 1349 1449 1347 1448 1346 1448 1346 1448 1344 1448 1342 1448 1341 1447 1340 1447 1340 1446 1340 1446 1340 1445 1339 1445 1338 1445 1338 1445 1337 1445 1336 1444 1335 1444 1334 1443 1334 1443 1333 1442 1333 1441 1333 1441 1333 1440 1333 1439 1333 1439 1337 1436 1338 1435 1340 1435 1341 1435 1342 1436 1343 1436 1345 1436 1344 1436 1343 1435 1342 1435 1342 1435 1341 1435 1341 1434 1342 1434 1344 1433 1345 1433 1343 1433 1343 1433 1340 1434 1339 1434 1339 1435 1338 1435 1336 1434 1335 1433 1335 1433 1335 1433 1333 1432 1332 1432 1332 1432 1332 1431 1332 1431 1332 1430 1333 1430 1333 1430 1333 1429 1334 1429 1334 1428 1334 1428 1335 1428 1336 1427 1335 1427 1335 1427 1335 1427 1334 1427 1334 1427 1333 1427 1333 1426 1334 1426 1334 1425 1334 1424 1334 1424 1337 1423 1338 1423 1338 1422 1339 1422 1339 1422 1340 1422 1341 1422 1343 1422 1343 1422 1344 1422 1344 1423 1344 1423 1345 1423 1347 1424 1347 1424 1349 1424 1350 1423 1349 1421 1345 1420 1344 1420 1343 1420 1343 1419 1344 1419 1345 1419 1346 1419 1347 1418 1349 1417 1351 1417 1353 1417 1353 1416 1354 1415 1356 1415 1359 1415 1360 1415 1361 1415 1362 1415 1363 1415 1364 1415 1363 1415 1362 1415 1362 1415 1361 1415 1360 1415 1360 1415 1359 1415 1356 1415 1355 1415 1355 1415 1354 1415 1354 1415 1354 1415 1354 1414 1354 1413 1358 1413 1362 1413 1362 1413 1363 1413 1364 1413 1365 1413 1366 1413 1367 1414 1366 1415 1366 1415 1365 1415 1365 1415 1363 1415 1364 1417 1365 1417 1365 1416 1365 1416 1366 1415 1367 1415 1368 1416 1367 1417 1367 1418 1368 1418 1369 1417 1370 1416 1370 1416 1373 1416 1373 1416 1374 1416 1374 1417 1375 1417 1375 1417 1376 1416 1376 1416 1376 1416 1377 1416 1378 1416 1378 1416 1378 1417 1378 1417 1377 1418 1377 1418 1379 1419 1380 1419 1380 1420 1381 1420 1382 1420 1383 1420 1386 1421 1386 1421 1387 1422 1387 1422 1387 1423 1388 1423 1389 1423 1389 1423 1390 1423 1391 1424 1391 1425 1391 1425 1392 1426 1392 1426 1391 1427 1391 1430 1389 1431 1390 1431 1390 1431 1391 1431 1393 1432 1395 1432 1395 1433 1396 1434 1396 1433 1399 1434 1402 1435 1403 1435 1402 1435 1402 1435 1401 1436 1402 1437 1404 1437 1406 1438 1406 1439 1406 1439 1406 1440 1406 1440 1407 1440 1407 1439 1408 1439 1410 1439 1410 1439 1411 1441 1412 1441 1413 1442 1413 1442 1413 1442 1412 1442 1407 1443 1406 1443 1405 1443 1405 1442 1405 1442 1402 1441 1401 1441 1399 1442 1399 1443 1401 1443 1403 1443 1403 1443 1404 1443 1405 1443 1406 1444 1406 1444 1404 1445 1403 1445 1402 1446 1400 1447 1397 1448 1395 1448 1393 1449 1397 1449 1397 1449 1394 1450 1394 1450 1393 1450 1392 1450 1391 1450 1391 1450 1392 1450 1394 1450 1396 1450 1397 1449 1397 1449 1400 1449 1401 1450 1402 1450 1404 1450 1404 1451 1402 1450 1401 1450 1404 1452 1404 1452 1407 1452 1409 1452 1414 1450 1414 1450 1415 1450 1417 1450 1418 1450 1418 1450 1420 1450 1416 1452 1416 1452 1415 1452 1414 1452 1413 1452 1413 1452 1415 1452 1416 1452 1419 1451 1419 1452 1419 1452 1420 1452 1422 1452 1424 1453 1425 1453 1426 1452 1427 1452 1429 1452 1430 1452 1431 1453 1432 1453 1432 1454 1431 1454 1431 1453 1430 1453 1430 1453 1429 1454 1428 1453 1426 1453 1427 1454 1428 1454 1426 1454 1426 1454 1425 1455 1425 1455 1425 1456 1425 1456 1423 1456 1423 1456 1420 1456 1418 1456 1417 1455 1416 1455 1415 1455 1416 1456 1419 1457 1421 1457 1423 1458 1423 1458 1424 1458 1427 1459 1427 1460 1428 1462 1429 1462 1430 1462 1431 1462 1431 1463 1430 1464 1430 1464 1429 1465 1429 1465 1430 1465 1430 1468 1429 1469 1429 1469 1428 1469 1428 1469 1429 1470 1429 1470 1430 1470 1432 1470 1432 1470 1432 1471 1432 1471 1433 1473 1434 1473 1434 1473 1435 1473 1435 1472 1436 1472 1437 1471 1438 1470 1439 1469 1439 1468 1439 1467 1438 1467 1439 1466 1441 1465 1441 1465 1441 1465 1442 1465 1442 1464 1443 1463 1442 1463 1442 1462 1441 1461 1442 1460 1442 1460 1443 1460 1443 1460 1444 1459 1445 1459 1445 1459 1446 1459 1446 1458 1447 1457 1447 1457 1448 1456 1449 1456 1450 1456 1451 1456 1451 1456 1452 1456 1453 1456 1453 1456 1454 1457 1454 1457 1456 1458 1457 1459 1459 1460 1462 1460 1462 1461 1463 1461 1465 1461 1466 1462 1468 1463 1468 1463 1469 1463 1470 1464 1470 1465 1471 1466 1471 1466 1471 1466 1470 1467 1471 1467 1471 1469 1472 1470 1473 1470 1473 1471 1473 1471 1472 1472 1470 1473 1468 1473 1466 1471 1463 1472 1463 1472 1463 1472 1464 1473 1464 1473 1465 1475 1464 1475 1464 1475 1464 1476 1463 1476 1464 1477 1465 1479 1465 1480 1467 1482 1467 1482 1468 1482 1468 1482 1469 1482 1470 1483 1470 1483 1471 1483 1472 1484 1473 1484 1476 1486 1476 1486 1477 1486 1478 1487 1480 1488 1478 1489 1478 1489 1477 1489 1477 1491 1480 1490 1482 1489 1484 1489 1484 1489 1486 1488 1485 1488 1484 1487 1484 1487 1487 1486 1489 1486 1489 1486 1490 1486 1490 1486 1491 1487 1492 1487 1493 1487 1493 1486 1494 1485 1493 1484 1494 1484 1494 1483 1494 1483 1493 1482 1493 1481 1496 1479 1497 1478 1500 1477 1501 1476 1501 1476 1503 1476 1503 1475 1503 1473 1504 1471 1506 1470 1506 1469 1506 1467 1507 1465 1507 1465 1508 1465 1508 1465 1509 1465 1510 1464 1509 1464 1509 1464 1509 1464 1510 1464 1511 1464 1512 1464 1511 1464 1512 1465 1514 1465 1515 1464 1516 1464 1519 1464 1519 1465 1521 1465 1521 1465 1521 1464 1520 1463 1519 1463 1518 1463 1517 1463 1517 1463 1515 1463 1515 1463 1514 1463 1515 1462 1515 1462 1517 1463 1517 1462 1517 1462 1517 1462 1516 1462 1515 1461 1516 1461 1518 1461 1519 1461 1520 1462 1521 1461 1520 1461 1520 1461 1519 1461 1518 1461 1518 1460 1518 1460 1520 1460 1522 1460 1524 1460 1525 1460 1524 1460 1521 1460 1518 1459 1516 1459 1517 1458 1516 1458 1515 1458 1515 1458 1514 1458 1514 1458 1513 1458 1512 1458 1513 1458 1514 1458 1513 1457 1512 1457 1511 1457 1510 1456 1509 1455 1509 1454 1510 1454 1511 1454 1511 1454 1512 1453 1511 1453 1510 1453 1510 1453 1509 1453 1509 1453 1509 1453 1509 1450 1509 1448 1510 1448 1511 1448 1511 1448 1511 1448 1511 1448 1512 1448 1512 1447 1511 1447 1510 1447 1510 1447 1510 1447 1509 1447 1508 1447 1508 1447 1508 1447 1511 1447 1512 1447 1513 1447 1514 1448 1515 1448 1516 1448 1516 1448 1520 1447 1524 1447 1525 1447 1526 1447 1526 1447 1527 1447 1528 1447 1531 1447 1531 1448 1532 1448 1534 1448 1534 1449 1537 1449 1538 1449 1540 1449 1544 1450 1544 1450 1544 1449 1545 1449 1545 1449 1546 1449 1547 1449 1549 1450 1552 1449 1554 1449 1557 1450 1557 1450 1557 1450 1558 1450 1561 1450 1561 1450 1560 1450 1560 1451 1559 1451 1558 1450 1556 1450 1555 1450 1555 1451 1556 1451 1557 1452 1557 1452 1557 1453 1553 1452 1551 1452 1550 1452 1550 1452 1548 1452 1547 1452 1547 1452 1546 1452 1548 1452 1549 1452 1550 1452 1551 1452 1552 1452 1553 1453 1554 1453 1560 1454 1561 1454 1562 1454 1561 1456 1561 1457 1561 1457 1562 1457 1564 1457 1565 1457 1565 1456 1567 1456 1570 1456 1570 1456 1571 1456 1573 1457 1575 1457 1575 1457 1576 1457 1576 1457 1576 1458 1576 1459 1572 1461 1572 1461 1570 1461 1569 1461 1568 1461 1567 1462 1567 1462 1566 1462 1565 1462 1564 1462 1565 1462 1566 1462 1568 1462 1570 1462 1571 1462 1572 1463 1574 1462 1575 1463 1576 1463 1577 1464 1577 1466 1576 1467 1572 1468 1570 1468 1568 1469 1568 1469 1568 1469 1566 1470 1565 1470 1565 1469 1565 1469 1564 1468 1564 1468 1562 1468 1561 1468 1562 1468 1562 1469 1562 1469 1562 1469 1561 1469 1559 1469 1558 1469 1558 1469 1557 1468 1557 1468 1556 1468 1556 1468 1555 1468 1557 1469 1557 1470 1560 1471 1560 1471 1559 1471 1559 1471 1558 1471 1558 1471 1557 1471 1558 1472 1558 1472 1559 1472 1559 1472 1560 1472 1561 1472 1561 1472 1561 1472 1561 1473 1561 1473 1560 1473 1560 1474 1560 1474 1561 1474 1562 1474 1562 1475 1563 1475 1563 1474 1564 1474 1564 1474 1564 1473 1565 1473 1565 1473 1565 1473 1565 1474 1565 1474 1565 1474 1564 1475 1563 1475 1562 1476 1564 1478 1564 1478 1568 1480 1570 1481 1570 1481 1570 1481 1571 1481 1571 1481 1572 1482 1573 1482 1573 1482 1574 1482 1574 1483 1577 1485 1577 1485 1577 1486 1576 1486 1576 1488 1575 1489 1575 1489 1575 1489 1575 1490 1575 1491 1574 1491 1573 1492 1573 1493 1570 1493 1569 1493 1569 1493 1568 1492 1568 1492 1566 1493 1566 1493 1565 1493 1565 1494 1562 1496 1559 1497 1558 1498 1556 1499 1556 1499 1554 1499 1553 1499 1551 1499 1549 1500 1549 1500 1548 1501 1544 1503 1543 1503 1542 1503 1541 1503 1540 1502 1539 1502 1539 1501 1540 1501 1540 1502 1541 1502 1541 1502 1540 1501 1538 1500 1538 1500 1538 1500 1537 1500 1536 1500 1536 1500 1534 1499 1533 1498 1533 1497 1534 1497 1534 1497 1535 1495 1535 1495 1535 1495 1535 1494 1534 1495 1534 1495 1532 1497 1531 1497 1529 1497 1529 1497 1526 1495 1527 1493 1527 1493 1526 1493 1526 1493 1523 1492 1522 1492 1522 1492 1520 1492 1519 1492 1519 1491 1518 1491 1519 1493 1520 1493 1520 1492 1521 1492 1522 1492 1523 1493 1522 1493 1519 1493 1518 1493 1517 1493 1516 1493 1515 1493 1514 1494 1514 1495 1515 1495 1518 1495 1519 1494 1518 1494 1520 1493 1521 1493 1524 1493 1524 1494 1523 1494 1523 1494 1522 1494 1521 1494 1522 1494 1524 1495 1524 1495 1525 1495 1525 1495 1524 1495 1523 1495 1523 1495 1523 1495 1526 1496 1526 1497 1527 1497 1528 1497 1530 1497 1531 1497 1531 1498 1530 1499 1531 1499 1534 1501 1535 1501 1535 1501 1535 1502 1536 1503 1537 1504 1537 1504 1538 1505 1538 1505 1537 1506 1537 1506 1536 1506 1534 1505 1531 1504 1531 1504 1531 1503 1530 1503 1530 1503 1528 1504 1526 1502 1525 1502 1524 1502 1523 1503 1523 1503 1525 1504 1527 1505 1527 1505 1527 1505 1527 1506 1526 1506 1526 1506 1525 1505 1523 1505 1519 1504 1519 1504 1519 1504 1518 1504 1518 1504 1517 1504 1515 1504 1514 1504 1514 1504 1513 1504 1513 1503 1512 1502 1512 1501 1512 1501 1510 1499 1510 1499 1509 1499 1508 1499 1508 1499 1506 1500 1504 1500 1503 1500 1501 1500 1500 1500 1500 1500 1499 1500 1497 1500 1497 1500 1492 1500 1492 1500 1491 1500 1491 1500 1490 1500 1490 1500 1489 1500 1489 1500 1490 1501 1490 1501 1491 1501 1491 1501 1491 1501 1490 1501 1489 1501 1489 1501 1488 1501 1491 1503 1492 1503 1493 1504 1495 1504 1496 1504 1499 1505 1500 1505 1503 1505 1503 1506 1503 1506 1502 1507 1502 1508 1500 1508 1499 1509 1498 1509 1497 1509 1496 1510 1496 1510 1495 1510 1494 1511 1494 1511 1494 1512 1494 1512 1493 1513 1490 1514 1488 1515 1488 1515 1487 1515 1486 1516 1486 1516 1485 1517 1485 1517 1484 1517 1484 1517 1484 1517 1484 1517 1484 1518 1480 1519 1479 1519 1479 1519 1472 1519 1472 1519 1471 1519 1470 1519 1470 1519 1469 1519 1469 1519 1468 1519 1468 1519 1466 1518 1466 1517 1464 1517 1464 1516 1461 1515 1460 1515 1459 1515 1458 1515 1456 1514 1457 1514 1460 1514 1461 1514 1461 1514 1457 1514 1454 1513 1453 1513 1452 1513 1451 1513 1451 1512 1451 1512 1447 1511 1445 1510 1444 1510 1443 1509 1442 1509 1438 1509 1438 1509 1438 1509 1439 1509 1439 1509 1440 1510 1440 1510 1441 1510 1442 1510 1442 1511 1441 1511 1441 1511 1440 1511 1439 1511 1437 1510 1436 1510 1436 1510 1435 1510 1434 1510 1434 1511 1433 1511 1432 1511 1431 1510 1431 1510 1431 1510 1432 1510 1432 1510 1433 1510 1434 1510 1433 1510 1433 1510 1432 1510 1431 1510 1428 1510 1428 1510 1426 1510 1426 1510 1424 1510 1420 1509 1416 1509 1415 1509 1414 1509 1416 1510 1416 1510 1419 1511 1421 1511 1421 1511 1421 1511 1420 1510 1420 1510 1421 1510 1422 1510 1422 1510 1423 1510 1426 1510 1426 1510 1429 1510 1436 1511 1437 1512 1438 1512 1438 1512 1439 1512 1442 1513 1442 1513 1443 1513 1447 1516 1449 1517 1451 1518 1453 1519 1457 1519 1458 1519 1458 1519 1459 1519 1460 1519 1462 1520 1463 1520 1464 1520 1466 1520 1467 1520 1468 1520 1468 1520 1469 1520 1470 1520 1470 1520 1474 1520 1475 1520 1476 1520 1480 1520 1482 1520 1484 1521 1486 1522 1486 1522 1486 1523 1485 1524 1485 1524 1484 1524 1479 1529 1477 1530 1476 1531 1474 1532 1473 1532 1473 1532 1472 1533 1472 1534 1470 1537 1468 1538 1465 1539 1461 1540 1459 1541 1458 1541 1457 1541 1454 1540 1452 1540 1452 1540 1451 1539 1451 1539 1450 1539 1450 1538 1449 1538 1449 1538 1451 1540 1452 1541 1453 1541 1453 1541 1449 1541 1448 1540 1447 1540 1445 1539 1445 1539 1444 1540 1445 1540 1445 1541 1446 1541 1446 1541 1446 1541 1445 1541 1444 1540 1443 1539 1442 1539 1442 1540 1441 1539 1440 1539 1441 1538 1441 1538 1442 1538 1441 1537 1441 1536 1441 1537 1440 1538 1440 1538 1439 1538 1439 1538 1438 1538 1436 1538 1437 1539 1438 1539 1438 1539 1439 1540 1440 1540 1440 1541 1440 1541 1440 1541 1438 1542 1438 1541 1438 1541 1438 1541 1438 1541 1438 1541 1434 1540 1434 1540 1433 1540 1434 1540 1434 1540 1436 1541 1438 1543 1438 1544 1437 1544 1436 1545 1435 1546 1434 1546 1434 1547 1433 1547 1431 1546 1430 1546 1430 1545 1428 1545 1427 1545 1426 1546 1427 1546 1428 1546 1428 1545 1429 1546 1429 1546 1429 1547 1426 1547 1424 1547 1424 1547 1423 1547 1422 1547 1421 1547 1419 1546 1419 1546 1418 1546 1418 1546 1416 1546 1415 1546 1416 1545 1416 1545 1415 1545 1413 1545 1413 1545 1412 1545 1407 1544 1404 1544 1403 1544 1403 1544 1399 1543 1396 1543 1396 1543 1395 1543 1394 1543 1391 1542 1390 1541 1386 1541 1385 1541 1385 1541 1383 1540 1380 1539 1379 1538 1379 1538 1378 1537 1377 1537 1379 1539 1380 1540 1379 1540 1378 1540 1377 1541 1377 1541 1379 1542 1380 1542 1381 1543 1381 1543 1384 1543 1386 1543 1385 1543 1384 1542 1382 1541 1382 1541 1383 1541 1383 1541 1384 1541 1385 1541 1388 1542 1390 1543 1392 1543 1395 1544 1397 1543 1398 1543 1398 1543 1399 1544 1399 1544 1399 1545 1400 1545 1401 1544 1401 1544 1403 1545 1404 1545 1402 1546 1401 1546 1399 1547 1398 1547 1398 1548 1398 1548 1399 1548 1400 1547 1401 1547 1402 1547 1403 1546 1406 1545 1408 1545 1409 1545 1410 1545 1411 1545 1412 1546 1412 1547 1412 1547 1415 1548 1417 1548 1419 1549 1422 1549 1424 1550 1423 1550 1422 1550 1422 1550 1422 1550 1423 1550 1424 1550 1426 1550 1426 1553 1427 1555 1427 1556 1426 1557 1425 1557 1424 1557 1424 1557 1424 1557 1423 1557 1421 1557 1421 1557 1419 1558 1418 1558 1418 1559 1416 1560 1414 1560 1414 1560 1412 1559 1408 1559 1406 1559 1404 1559 1402 1559 1400 1559 1400 1559 1399 1559 1399 1559 1398 1559 1398 1559 1400 1561 1402 1561 1403 1562 1404 1562 1405 1562 1406 1562 1406 1562 1407 1562 1407 1562 1407 1563 1406 1564 1405 1564 1403 1563 1402 1563 1401 1563 1401 1563 1400 1564 1400 1564 1399 1564 1399 1564 1398 1564 1397 1564 1396 1565 1394 1565 1394 1565 1394 1567 1395 1567 1396 1567 1396 1567 1396 1567 1396 1568 1396 1568 1396 1569 1397 1569 1398 1570 1396 1570 1396 1569 1395 1569 1394 1568 1394 1568 1392 1567 1388 1567 1388 1567 1391 1568 1392 1568 1392 1568 1393 1568 1393 1569 1393 1569 1392 1569 1390 1569 1388 1569 1388 1570 1388 1570 1388 1571 1389 1570 1391 1570 1390 1571 1390 1571 1387 1572 1386 1572 1385 1572 1385 1571 1384 1571 1383 1572 1383 1572 1384 1572 1384 1572 1386 1573 1386 1573 1385 1574 1385 1574 1384 1574 1383 1574 1382 1573 1380 1573 1380 1574 1380 1574 1381 1575 1383 1575 1385 1576 1386 1576 1386 1576 1384 1577 1382 1577 1381 1578 1380 1578 1379 1578 1376 1579 1374 1581 1374 1582 1375 1582 1375 1582 1376 1582 1376 1583 1376 1583 1375 1583 1373 1585 1371 1587 1370 1589 1368 1590 1367 1591 1367 1592 1366 1593 1366 1595 1365 1596 1364 1596 1363 1596 1363 1597 1364 1598 1364 1598 1363 1601 1363 1601 1362 1603 1362 1603 1361 1603 1361 1604 1361 1604 1360 1605 1361 1606 1361 1609 1361 1610 1361 1612 1362 1613 1363 1614 1362 1615 1361 1615 1361 1616 1361 1619 1363 1621 1363 1621 1364 1622 1366 1623 1366 1624 1366 1624 1367 1625 1368 1625 1368 1625 1369 1624 1369 1624 1370 1624 1370 1625 1370 1626 1369 1628 1369 1629 1368 1631 1368 1632 1368 1633 1368 1633 1368 1633 1369 1630 1370 1630 1370 1629 1370 1628 1370 1627 1371 1624 1372 1624 1374 1624 1374 1624 1376 1624 1377 1624 1378 1624 1379 1624 1380 1624 1382 1624 1384 1624 1384 1624 1386 1624 1386 1624 1386 1624 1387 1624 1387 1625 1387 1626 1388 1628 1388 1628 1388 1629 1389 1630 1390 1632 1391 1633 1392 1634 1393 1635 1393 1635 1393 1636 1393 1637 1394 1638 1394 1639 1395 1640 1396 1641 1398 1645 1399 1647 1399 1648 1399 1648 1397 1651 1396 1651 1394 1653 1394 1653 1393 1653 1392 1653 1392 1654 1392 1654 1392 1654 1393 1653 1393 1653 1394 1653 1395 1653 1395 1653 1396 1653 1396 1652 1397 1652 1397 1652 1398 1652 1398 1651 1399 1651 1400 1651 1402 1651 1402 1651 1400 1652 1400 1653 1399 1653 1399 1653 1398 1653 1400 1653 1401 1653 1401 1652 1401 1652 1402 1652 1402 1652 1403 1652 1403 1651 1404 1651 1405 1651 1405 1651 1406 1651 1406 1651 1408 1651 1409 1650 1418 1649 1419 1648 1420 1648 1421 1648 1422 1648 1424 1648 1425 1648 1425 1648 1426 1648 1426 1648 1429 1649 1430 1649 1431 1649 1431 1649 1433 1650 1434 1650 1437 1652 1437 1652 1438 1652 1440 1652 1442 1653 1445 1653 1446 1653 1451 1654 1452 1654 1453 1655 1454 1655 1456 1655 1458 1656 1459 1657 1459 1657 1459 1657 1460 1657 1462 1658 1463 1659 1464 1659 1464 1659 1466 1660 1467 1660 1468 1660 1468 1661 1469 1661 1469 1661 1470 1661 1472 1663 1474 1665 1474 1665 1477 1667 1478 1668 1480 1668 1480 1668 1482 1669 1484 1669 1485 1669 1485 1669 1485 1669 1486 1669 1487 1670 1488 1670 1492 1671 1492 1671 1493 1671 1494 1671 1494 1671 1495 1672 1495 1672 1496 1672 1496 1672 1497 1672 1504 1674 1506 1674 1508 1675 1509 1676 1509 1676 1510 1677 1511 1678 1513 1678 1514 1678 1515 1678 1515 1679 1515 1679 1515 1679 1514 1680 1513 1681 1511 1682 1511 1683 1511 1683 1511 1684 1511 1684 1511 1684 1512 1683 1512 1683 1512 1682 1512 1682 1514 1680 1514 1680 1515 1680 1515 1680 1516 1679 1517 1679 1517 1679 1518 1679 1519 1680 1521 1680 1522 1680 1522 1680 1523 1680 1524 1680 1524 1680 1525 1680 1526 1680 1527 1680 1528 1679 1530 1679 1531 1680 1531 1680 1532 1680 1533 1679 1533 1679 1534 1679 1535 1679 1535 1679 1539 1680 1540 1681 1540 1682 1540 1682 1540 1681 1540 1680 1539 1680 1539 1680 1538 1680 1538 1680 1540 1680 1541 1680 1541 1680 1546 1681 1547 1681 1547 1681 1548 1680 1549 1680 1549 1680 1550 1680 1550 1680 1550 1680 1551 1681 1551 1681 1551 1682 1552 1682 1552 1682 1553 1682 1553 1682 1554 1682 1555 1681 1557 1682 1558 1682 1559 1682 1559 1683 1560 1683 1560 1682 1560 1682 1560 1682 1561 1682 1561 1683 1561 1683 1561 1683 1561 1685 1561 1686 1562 1687 1560 1691 1559 1693 1558 1694 1558 1695 1558 1697 1559 1697 1559 1698 1560 1698 1561 1699 1561 1699 1563 1702 1563 1703 1563 1703 1563 1704 1563 1704 1562 1705 1562 1705 1562 1706 1562 1706 1562 1707 1562 1708 1563 1709 1563 1709 1563 1710 1563 1710 1563 1711 1563 1711 1563 1712 1563 1712 1562 1712 1561 1713 1561 1713 1560 1715 1561 1716 1561 1717 1561 1717 1562 1717 1562 1717 1563 1718 1564 1718 1564 1718 1565 1719 1565 1719 1566 1719 1566 1720 1570 1723 1570 1723 1571 1724 1571 1724 1572 1725 1572 1725 1573 1727 1572 1727 1571 1727 1568 1728 1568 1728 1567 1729 1568 1729 1569 1728 1569 1728 1570 1728 1572 1728 1573 1728 1574 1728 1574 1729 1575 1730 1575 1730 1576 1730 1576 1731 1577 1731 1578 1731 1578 1731 1579 1731 1579 1731 1581 1732 1582 1732 1582 1733 1583 1734 1584 1734 1586 1735 1587 1736 1588 1737 1588 1737 1588 1738 1589 1740 1590 1740 1590 1740 1590 1742 1590 1742 1589 1743 1589 1743 1588 1743 1587 1743 1586 1744 1584 1745 1582 1747 1581 1747 1581 1747 1582 1747 1583 1747 1583 1746 1584 1746 1584 1746 1585 1746 1585 1746 1585 1746 1586 1745 1587 1744 1588 1744 1589 1743 1589 1743 1590 1743 1591 1743 1591 1743 1592 1743 1594 1743 1594 1743 1595 1743 1597 1744 1597 1744 1601 1745 1601 1746 1602 1747 1602 1747 1603 1748 1605 1749 1605 1749 1606 1750 1606 1750 1607 1750 1608 1752 1608 1752 1606 1750 1606 1750 1606 1749 1605 1749 1605 1748 1604 1748 1603 1747 1602 1747 1601 1745 1601 1745 1602 1744 1602 1744 1602 1743 1603 1742 1604 1741 1604 1741 1605 1740 1606 1739 1607 1738 1608 1737 1608 1737 1609 1738 1609 1739 1609 1739 1609 1739 1610 1740 1610 1740 1611 1739 1611 1739 1613 1740 1613 1741 1614 1742 1614 1743 1614 1744 1614 1744 1614 1745 1615 1745 1616 1745 1615 1744 1615 1742 1616 1741 1617 1740 1616 1740 1616 1739 1616 1739 1616 1738 1615 1738 1614 1737 1613 1736 1613 1735 1613 1735 1614 1735 1615 1735 1615 1735 1616 1735 1616 1734 1615 1734 1615 1733 1615 1733 1616 1733 1617 1732 1617 1732 1618 1732 1620 1730 1621 1729 1621 1728 1621 1727 1621 1726 1621 1725 1620 1724 1620 1723 1620 1723 1619 1723 1618 1723 1617 1723 1618 1723 1618 1722 1618 1722 1617 1721 1617 1720 1616 1720 1617 1720 1618 1719 1618 1719 1617 1718 1616 1718 1615 1718 1615 1718 1615 1717 1615 1717 1615 1716 1614 1715 1615 1712 1615 1712 1614 1710 1613 1709 1612 1709 1612 1708 1611 1708 1612 1708 1612 1707 1613 1707 1613 1708 1613 1708 1614 1708 1614 1707 1614 1706 1613 1706 1612 1705 1611 1705 1612 1703 1613 1703 1613 1703 1614 1703 1615 1703 1614 1702 1613 1702 1613 1702 1612 1702 1612 1702 1612 1700 1613 1700 1613 1700 1614 1700 1611 1699 1611 1698 1612 1697 1610 1697 1610 1697 1609 1697 1609 1697 1608 1697 1606 1695 1606 1694 1605 1693 1605 1693 1605 1691 1604 1690 1603 1690 1602 1690 1601 1690 1603 1689 1605 1688 1606 1688 1608 1688 1608 1688 1612 1687 1614 1687 1614 1686 1615 1686 1616 1685 1617 1685 1620 1684 1623 1684 1625 1683 1626 1682 1626 1682 1627 1682 1630 1681 1631 1680 1633 1679 1635 1678 1638 1676 1642 1675 1643 1674 1643 1673 1644 1673 1644 1672 1645 1671 1648 1669 1649 1668 1650 1668 1650 1667 1651 1667 1651 1666 1653 1663 1653 1663 1653 1662 1653 1661 1653 1661 1653 1660 1653 1658 1653 1657 1653 1656 1653 1656 1653 1656 1653 1655 1653 1655 1653 1654 1652 1652 1652 1651 1652 1651 1653 1651 1652 1649 1652 1648 1651 1647 1651 1646 1650 1645 1649 1644 1648 1642 1647 1641 1646 1640 1643 1636 1641 1635 1641 1635 1640 1635 1640 1634 1638 1634 1638 1633 1638 1633 1637 1633 1636 1632 1635 1632 1632 1631 1632 1631 1631 1631 1631 1631 1630 1630 1629 1630 1628 1629 1627 1629 1623 1627 1623 1626 1622 1626 1624 1628 1623 1627 1620 1626 1620 1626 1620 1625 1621 1625 1622 1625 1621 1624 1621 1623 1621 1622 1620 1621 1623 1621 1624 1621 1623 1622 1624 1622 1624 1621 1626 1619 1627 1618 1628 1618 1628 1617 1630 1616 1630 1616 1631 1616 1632 1616 1632 1616 1634 1614 1633 1613 1632 1614 1631 1614 1631 1614 1631 1612 1632 1612 1632 1612 1633 1612 1633 1612 1634 1612 1634 1611 1633 1610 1632 1609 1633 1609 1633 1609 1634 1609 1636 1609 1637 1610 1637 1610 1638 1611 1638 1611 1639 1611 1640 1611 1640 1611 1638 1610 1637 1609 1637 1608 1638 1608 1639 1608 1639 1608 1640 1608 1640 1607 1639 1606 1638 1606 1642 1603 1644 1603 1648 1603 1649 1602 1649 1602 1648 1602 1647 1602 1647 1602 1647 1602 1646 1602 1646 1602 1645 1602 1645 1602 1644 1602 1643 1602 1642 1602 1642 1602 1641 1603 1641 1604 1640 1604 1637 1603 1636 1603 1636 1603 1636 1602 1636 1602 1637 1602 1638 1601 1636 1599 1635 1598 1634 1598 1633 1598 1633 1597 1634 1597 1634 1597 1636 1596 1637 1596 1638 1595 1638 1595 1637 1595 1637 1595 1636 1595 1636 1595 1636 1595 1635 1595 1634 1595 1634 1595 1633 1595 1632 1594 1633 1593 1634 1593 1635 1592 1637 1591 1636 1591 1634 1591 1631 1592 1630 1592 1631 1591 1630 1591 1628 1591 1627 1591 1626 1592 1627 1590 1630 1588 1630 1588 1631 1588 1631 1587 1634 1585 1634 1584 1633 1583 1633 1583 1633 1582 1634 1581 1635 1581 1636 1581 1636 1580 1635 1580 1636 1579 1636 1579 1637 1580 1638 1580 1636 1579 1635 1579 1634 1579 1634 1579 1633 1578 1632 1577 1631 1577 1630 1577 1630 1577 1629 1577 1629 1576 1628 1574 1628 1573 1628 1573 1627 1572 1627 1572 1627 1570 1627 1568 1628 1567 1628 1567 1629 1566 1629 1566 1630 1566 1634 1565 1634 1565 1636 1564 1637 1563 1637 1563 1639 1563 1644 1564 1646 1564 1649 1564 1651 1565 1653 1565 1655 1565 1656 1566 1659 1566 1666 1567 1666 1568 1665 1568 1664 1569 1663 1570 1664 1570 1665 1569 1666 1569 1667 1569 1668 1568 1668 1568 1669 1567 1671 1567 1671 1567 1672 1567 1674 1568 1677 1568 1678 1568 1678 1568 1679 1568 1681 1570 1682 1570 1682 1570 1683 1571 1684 1571 1684 1571 1684 1571 1683 1570 1682 1570 1682 1570 1681 1569 1682 1568 1682 1568 1682 1568 1683 1568 1684 1568 1685 1568 1686 1568 1686 1568 1687 1568 1691 1567 1693 1566 1694 1566 1695 1565 1696 1565 1698 1565 1699 1565 1701 1566 1703 1566 1706 1567 1706 1568 1706 1568 1707 1569 1708 1569 1711 1570 1713 1570 1715 1570 1715 1571 1715 1573 1714 1573 1714 1574 1713 1575 1713 1575 1716 1575 1715 1574 1715 1574 1716 1573 1717 1573 1718 1574 1719 1574 1719 1574 1720 1574 1721 1574 1721 1574 1722 1574 1724 1577 1725 1577 1724 1578 1724 1579 1723 1579 1722 1579 1722 1578 1721 1578 1721 1578 1720 1579 1724 1579 1724 1579 1725 1579 1726 1578 1726 1577 1726 1577 1728 1577 1728 1577 1731 1578 1732 1578 1732 1579 1731 1579 1731 1580 1729 1580 1728 1580 1729 1581 1728 1581 1727 1581 1727 1582 1730 1582 1730 1582 1730 1583 1731 1584 1732 1585 1735 1586 1736 1586 1738 1586 1741 1586 1742 1586 1742 1587 1745 1587 1746 1587 1748 1588 1748 1587 1750 1587 1752 1587 1755 1587 1755 1587 1756 1589 1756 1590 1758 1591 1758 1591 1759 1591 1759 1591 1759 1591 1760 1590 1760 1590 1761 1590 1761 1590 1762 1590 1762 1590 1762 1590 1763 1590 1762 1590 1762 1589 1762 1588 1762 1587 1763 1587 1764 1587 1765 1587 1765 1588 1765 1588 1766 1589 1767 1590 1767 1591 1767 1592 1766 1592 1766 1592 1765 1592 1764 1592 1763 1592 1763 1593 1762 1593 1762 1594 1762 1595 1762 1595 1761 1596 1760 1596 1760 1597 1761 1597 1761 1598 1761 1599 1761 1599 1762 1600 1763 1601 1763 1601 1763 1601 1763 1603 1763 1603 1762 1603 1760 1604 1759 1604 1753 1604 1752 1604 1752 1604 1749 1604 1748 1604 1748 1604 1748 1604 1745 1604 1742 1603 1743 1604 1747 1604 1747 1604 1748 1605 1749 1605 1749 1605 1752 1605 1753 1604 1754 1605 1754 1605 1755 1605 1756 1605 1756 1605 1756 1605 1758 1605 1761 1605 1761 1605 1763 1607 1763 1608 1763 1609 1764 1609 1763 1611 1762 1611 1762 1611 1762 1611 1761 1612 1761 1612 1761 1612 1761 1612 1762 1612 1762 1613 1763 1613 1763 1614 1763 1614 1762 1614 1761 1615 1761 1615 1763 1615 1764 1615 1766 1614 1766 1614 1769 1615 1769 1616 1769 1616 1768 1617 1767 1617 1766 1617 1766 1617 1766 1617 1765 1617 1765 1617 1764 1617 1764 1618 1765 1618 1765 1618 1766 1618 1767 1618 1767 1619 1767 1619 1766 1620 1765 1619 1765 1620 1765 1621 1766 1622 1766 1622 1764 1623 1764 1623 1763 1623 1762 1623 1762 1623 1762 1622 1762 1622 1762 1621 1762 1621 1759 1619 1759 1620 1759 1620 1760 1621 1760 1623 1757 1623 1754 1624 1756 1624 1757 1624 1758 1624 1758 1625 1759 1626 1760 1627 1760 1627 1761 1625 1763 1624 1763 1624 1764 1624 1764 1624 1765 1624 1766 1623 1766 1623 1767 1622 1767 1622 1768 1622 1770 1622 1771 1622 1771 1622 1772 1622 1773 1622 1775 1622 1777 1622 1779 1622 1779 1622 1783 1623 1783 1624 1783 1625 1783 1626 1784 1627 1784 1627 1785 1628 1786 1629 1786 1629 1785 1630 1785 1631 1784 1631 1784 1632 1784 1632 1783 1634 1783 1634 1781 1635 1781 1636 1780 1636 1777 1636 1775 1637 1771 1638 1770 1638 1770 1638 1769 1638 1769 1639 1767 1640 1767 1640 1768 1639 1770 1639 1770 1639 1770 1638 1771 1638 1773 1637 1774 1637 1778 1636 1779 1636 1780 1636 1781 1636 1782 1636 1784 1634 1784 1634 1784 1633 1784 1633 1785 1632 1786 1630 1786 1629 1786 1629 1786 1629 1786 1628 1787 1628 1789 1627 1789 1627 1790 1627 1791 1628 1791 1629 1790 1629 1790 1630 1790 1630 1791 1631 1791 1632 1790 1632 1790 1632 1789 1633 1788 1633 1788 1634 1787 1634 1787 1635 1789 1634 1789 1634 1789 1633 1791 1632 1792 1631 1792 1631 1792 1630 1792 1629 1793 1629 1794 1629 1794 1630 1793 1631 1794 1632 1795 1632 1794 1633 1793 1636 1793 1637 1794 1636 1794 1634 1795 1634 1796 1633 1796 1633 1797 1632 1800 1631 1802 1630 1803 1630 1803 1630 1803 1631 1805 1629 1805 1629 1806 1628 1807 1628 1808 1629 1811 1628 1810 1627 1812 1625 1813 1623 1815 1623 1815 1623 1819 1625 1820 1626 1822 1626 1822 1627 1820 1628 1819 1630 1820 1631 1820 1631 1820 1630 1820 1630 1821 1630 1822 1629 1821 1628 1823 1627 1823 1626 1822 1625 1820 1625 1819 1624 1820 1623 1820 1623 1821 1623 1822 1623 1823 1623 1824 1622 1823 1622 1823 1622 1821 1622 1821 1622 1823 1620 1824 1620 1826 1619 1826 1619 1827 1620 1827 1620 1828 1620 1829 1620 1829 1620 1828 1620 1828 1619 1829 1619 1829 1619 1830 1619 1832 1619 1831 1619 1828 1619 1828 1619 1827 1619 1826 1619 1825 1618 1825 1617 1825 1616 1826 1616 1826 1616 1826 1616 1827 1617 1827 1616 1828 1614 1829 1615 1829 1615 1830 1615 1831 1616 1830 1614 1829 1613 1828 1612 1831 1612 1833 1613 1834 1613 1834 1613 1835 1614 1836 1614 1837 1614 1837 1614 1836 1614 1836 1614 1835 1613 1834 1613 1834 1613 1833 1612 1832 1612 1832 1612 1831 1612 1830 1612 1829 1611 1829 1610 1828 1609 1829 1608 1830 1607 1831 1607 1832 1607 1833 1607 1834 1607 1834 1608 1835 1608 1836 1608 1836 1608 1837 1608 1836 1608 1835 1607 1834 1607 1834 1607 1833 1606 1835 1605 1835 1604 1835 1603 1836 1603 1838 1601 1839 1599 1839 1598 1842 1599 1843 1599 1844 1599 1844 1599 1845 1600 1846 1600 1845 1600 1845 1600 1844 1600 1844 1600 1843 1600 1843 1600 1841 1600 1841 1600 1842 1600 1843 1600 1843 1600 1844 1600 1844 1600 1846 1601 1847 1602 1845 1603 1845 1603 1842 1603 1840 1604 1840 1604 1841 1604 1845 1603 1846 1602 1847 1602 1847 1604 1846 1605 1845 1605 1845 1606 1845 1606 1847 1605 1848 1604 1849 1603 1849 1604 1850 1604 1850 1604 1850 1607 1850 1608 1850 1608 1849 1608 1849 1608 1849 1608 1849 1609 1850 1609 1851 1609 1852 1610 1851 1612 1852 1611 1852 1611 1853 1610 1854 1610 1855 1610 1857 1612 1856 1613 1856 1613 1855 1613 1854 1613 1854 1613 1853 1614 1852 1614 1852 1614 1856 1614 1857 1614 1857 1615 1857 1615 1856 1616 1856 1616 1857 1616 1857 1616 1857 1615 1858 1614 1860 1615 1862 1616 1863 1617 1862 1618 1862 1618 1861 1618 1859 1619 1857 1619 1856 1619 1854 1619 1853 1619 1853 1619 1852 1620 1854 1620 1856 1620 1857 1620 1857 1620 1861 1619 1863 1619 1864 1619 1867 1619 1866 1620 1865 1620 1865 1620 1863 1620 1865 1620 1865 1620 1866 1621 1866 1621 1865 1622 1864 1622 1864 1623 1866 1622 1867 1622 1868 1622 1870 1623 1870 1623 1871 1625 1871 1626 1870 1627 1869 1627 1866 1628 1863 1629 1863 1630 1862 1630 1861 1630 1860 1630 1859 1631 1860 1631 1860 1631 1862 1630 1863 1630 1863 1629 1864 1629 1865 1629 1865 1629 1867 1629 1867 1629 1868 1629 1873 1628 1875 1628 1876 1628 1876 1628 1875 1630 1875 1631 1873 1632 1872 1632 1871 1632 1874 1632 1875 1632 1875 1632 1875 1633 1875 1633 1874 1633 1874 1633 1873 1633 1873 1633 1872 1633 1871 1633 1869 1634 1868 1634 1868 1634 1867 1635 1865 1635 1866 1635 1867 1635 1866 1636 1866 1636 1864 1636 1864 1636 1863 1636 1866 1636 1867 1636 1867 1636 1867 1636 1867 1635 1870 1634 1871 1634 1871 1634 1872 1634 1874 1634 1875 1634 1876 1634 1876 1633 1877 1633 1878 1633 1877 1634 1877 1634 1876 1635 1877 1635 1877 1635 1877 1635 1878 1634 1878 1634 1879 1634 1880 1636 1879 1636 1878 1636 1878 1636 1877 1636 1876 1636 1874 1637 1874 1637 1874 1637 1875 1637 1875 1637 1876 1637 1877 1637 1878 1637 1880 1637 1880 1637 1882 1637 1882 1637 1883 1637 1883 1637 1884 1638 1883 1638 1883 1639 1883 1639 1883 1640 1884 1640 1884 1640 1885 1640 1886 1641 1887 1642 1886 1642 1884 1643 1882 1644 1880 1644 1878 1644 1876 1644 1876 1644 1877 1645 1879 1645 1879 1645 1881 1645 1882 1645 1884 1645 1884 1645 1886 1646 1888 1646 1888 1646 1887 1648 1886 1648 1886 1648 1885 1648 1887 1649 1890 1650 1892 1650 1892 1650 1893 1650 1894 1650 1895 1650 1895 1651 1895 1652 1895 1652 1893 1652 1892 1653 1892 1653 1890 1654 1890 1655 1890 1655 1890 1655 1888 1655 1887 1655 1886 1655 1886 1657 1887 1656 1888 1656 1888 1656 1889 1656 1889 1657 1889 1657 1888 1657 1888 1657 1888 1657 1888 1657 1889 1657 1890 1658 1890 1658 1890 1658 1887 1658 1886 1658 1885 1657 1884 1657 1880 1656 1877 1655 1877 1655 1880 1655 1881 1655 1882 1655 1883 1655 1884 1655 1881 1655 1879 1655 1877 1654 1876 1655 1876 1655 1876 1655 1876 1656 1877 1656 1879 1657 1882 1657 1884 1658 1885 1658 1883 1658 1882 1658 1881 1658 1882 1658 1883 1659 1884 1659 1886 1659 1889 1659 1890 1659 1890 1660 1890 1660 1888 1660 1888 1660 1887 1660 1885 1660 1884 1660 1883 1660 1884 1660 1885 1660 1885 1661 1885 1661 1885 1661 1884 1661 1883 1661 1883 1661 1883 1661 1885 1661 1885 1661 1886 1661 1888 1662 1890 1664 1889 1664 1889 1664 1888 1663 1887 1663 1884 1663 1883 1663 1885 1664 1886 1665 1886 1665 1888 1665 1888 1665 1892 1665 1892 1665 1893 1665 1894 1665 1895 1664 1895 1665 1895 1665 1895 1665 1894 1665 1894 1666 1893 1667 1894 1667 1894 1667 1895 1667 1896 1667 1897 1667 1896 1668 1896 1668 1895 1668 1894 1668 1894 1668 1893 1668 1894 1669 1894 1669 1895 1669 1897 1669 1898 1669 1899 1669 1899 1669 1899 1670 1898 1670 1898 1670 1899 1671 1900 1671 1900 1670 1902 1670 1902 1670 1904 1670 1905 1670 1905 1671 1905 1671 1904 1672 1904 1672 1903 1672 1905 1672 1905 1672 1905 1672 1906 1671 1906 1671 1907 1671 1907 1671 1907 1672 1907 1673 1907 1674 1906 1675 1907 1674 1907 1674 1908 1672 1908 1672 1909 1671 1909 1671 1911 1672 1911 1672 1911 1673 1910 1673 1909 1673 1909 1674 1908 1674 1909 1674 1909 1674 1910 1674 1912 1675 1912 1676 1912 1676 1910 1677 1910 1677 1910 1678 1909 1678 1909 1678 1909 1678 1910 1678 1910 1677 1911 1676 1911 1676 1912 1676 1913 1676 1914 1677 1912 1677 1912 1677 1911 1678 1909 1679 1909 1680 1908 1681 1909 1680 1909 1680 1911 1680 1908 1682 1907 1683 1907 1683 1907 1683 1906 1683 1906 1684 1906 1684 1907 1683 1909 1682 1913 1680 1914 1680 1915 1680 1915 1681 1915 1682 1914 1682 1914 1682 1913 1682 1912 1683 1912 1684 1914 1682 1915 1682 1915 1682 1916 1681 1916 1681 1917 1680 1918 1680 1918 1680 1919 1679 1920 1679 1920 1679 1921 1680 1921 1681 1919 1681 1919 1682 1918 1682 1918 1682 1917 1682 1917 1682 1920 1682 1923 1682 1924 1681 1924 1681 1925 1681 1926 1682 1925 1683 1924 1683 1923 1684 1923 1684 1921 1685 1920 1686 1919 1686 1918 1688 1918 1688 1918 1688 1920 1687 1920 1687 1920 1686 1920 1686 1921 1686 1921 1686 1922 1685 1922 1685 1923 1685 1926 1683 1928 1681 1930 1680 1930 1681 1931 1681 1930 1682 1930 1682 1929 1682 1929 1682 1927 1684 1927 1684 1928 1684 1929 1683 1929 1683 1931 1682 1932 1682 1933 1682 1933 1682 1933 1683 1933 1683 1933 1684 1933 1684 1933 1684 1934 1685 1933 1685 1932 1686 1934 1687 1935 1687 1938 1687 1940 1688 1942 1688 1942 1687 1943 1687 1945 1687 1946 1687 1946 1688 1946 1688 1947 1688 1949 1688 1950 1688 1950 1688 1951 1688 1952 1689 1953 1690 1954 1690 1954 1690 1955 1690 1955 1690 1956 1689 1957 1690 1959 1691 1958 1692 1958 1692 1957 1692 1956 1692 1955 1692 1955 1692 1954 1692 1953 1693 1954 1693 1955 1693 1957 1692 1957 1693 1958 1693 1956 1693 1955 1694 1954 1694 1953 1694 1953 1694 1953 1694 1952 1694 1951 1694 1950 1694 1948 1694 1946 1694 1946 1694 1945 1695 1945 1695 1945 1695 1947 1695 1945 1696 1943 1696 1942 1696 1942 1696 1941 1696 1939 1697 1939 1697 1938 1697 1938 1698 1937 1698 1936 1698 1936 1698 1935 1698 1935 1698 1934 1698 1931 1698 1930 1699 1929 1699 1928 1699 1927 1699 1926 1699 1925 1699 1924 1699 1924 1699 1923 1699 1925 1700 1928 1700 1932 1699 1935 1698 1937 1698 1942 1696 1943 1696 1941 1698 1939 1699 1939 1699 1938 1699 1938 1700 1937 1700 1937 1699 1936 1699 1936 1699 1935 1699 1935 1699 1934 1699 1933 1699 1932 1700 1933 1700 1933 1700 1934 1700 1933 1700 1933 1701 1932 1701 1932 1701 1931 1701 1931 1701 1931 1701 1930 1701 1929 1701 1927 1702 1927 1702 1926 1702 1926 1703 1925 1703 1924 1703 1923 1703 1923 1703 1921 1703 1921 1703 1921 1703 1920 1702 1919 1703 1919 1703 1919 1703 1917 1704 1915 1704 1915 1706 1915 1707 1916 1707 1914 1708 1911 1706 1911 1705 1909 1705 1908 1704 1906 1704 1906 1704 1905 1704 1904 1704 1903 1703 1902 1704 1903 1705 1903 1704 1905 1705 1906 1705 1908 1705 1908 1705 1910 1706 1911 1706 1911 1707 1912 1707 1912 1707 1913 1707 1915 1708 1915 1709 1914 1709 1913 1709 1910 1710 1910 1711 1912 1711 1913 1710 1914 1710 1913 1711 1912 1711 1911 1711 1911 1712 1910 1712 1910 1712 1912 1712 1912 1712 1915 1711 1916 1710 1917 1709 1918 1709 1919 1708 1920 1708 1920 1708 1919 1708 1919 1708 1918 1708 1919 1707 1920 1708 1920 1708 1921 1708 1923 1708 1924 1707 1924 1707 1925 1707 1927 1706 1930 1705 1931 1705 1932 1705 1932 1704 1932 1704 1932 1703 1932 1703 1935 1702 1940 1700 1943 1699 1945 1699 1946 1699 1946 1699 1948 1699 1949 1699 1952 1699 1951 1698 1947 1698 1946 1698 1946 1698 1945 1698 1945 1698 1942 1698 1943 1697 1943 1697 1945 1696 1946 1696 1948 1696 1949 1696 1949 1696 1950 1697 1951 1697 1954 1697 1957 1697 1958 1697 1958 1698 1959 1698 1959 1699 1961 1701 1963 1703 1963 1703 1962 1704 1960 1705 1960 1705 1958 1705 1958 1706 1957 1706 1956 1706 1957 1706 1957 1706 1959 1706 1960 1707 1960 1708 1960 1708 1959 1708 1959 1709 1960 1709 1960 1709 1960 1708 1961 1708 1963 1706 1963 1706 1964 1705 1964 1705 1965 1704 1966 1704 1967 1704 1968 1704 1970 1704 1971 1704 1971 1704 1973 1703 1973 1704 1974 1704 1974 1704 1974 1705 1973 1705 1972 1705 1972 1705 1970 1705 1971 1706 1975 1707 1975 1707 1977 1707 1978 1707 1979 1707 1980 1707 1981 1707 1980 1708 1980 1707 1978 1707 1977 1707 1976 1707 1978 1708 1979 1708 1979 1708 1980 1709 1981 1709 1981 1710 1980 1710 1980 1710 1981 1710 1981 1710 1981 1710 1982 1710 1982 1710 1982 1710 1984 1711 1984 1711 1985 1712 1985 1714 1983 1714 1982 1715 1982 1716 1982 1716 1981 1716 1981 1716 1980 1715 1980 1715 1978 1715 1980 1716 1981 1716 1982 1716 1983 1717 1984 1718 1984 1719 1983 1719 1982 1719 1981 1719 1980 1720 1981 1721 1981 1721 1982 1721 1983 1721 1984 1721 1985 1722 1984 1722 1984 1722 1982 1722 1982 1722 1981 1722 1980 1721 1979 1721 1979 1722 1980 1722 1981 1722 1980 1723 1978 1723 1977 1723 1977 1723 1976 1723 1975 1723 1975 1723 1973 1722 1973 1722 1973 1723 1976 1723 1977 1724 1978 1724 1981 1724 1983 1724 1985 1724 1985 1724 1984 1725 1984 1725 1985 1725 1985 1725 1986 1725 1986 1725 1986 1726 1984 1727 1983 1726 1982 1726 1979 1725 1978 1725 1978 1725 1981 1726 1983 1727 1985 1728 1986 1729 1986 1730 1985 1731 1982 1733 1980 1734 1977 1735 1977 1735 1975 1736 1973 1737 1970 1738 1968 1739 1968 1740 1965 1741 1964 1741 1963 1741 1963 1741 1962 1741 1961 1740 1960 1740 1958 1740 1957 1741 1955 1741 1954 1741 1953 1741 1953 1740 1950 1742 1949 1742 1949 1743 1949 1743 1948 1743 1945 1744 1944 1744 1943 1744 1942 1743 1939 1744 1938 1744 1938 1744 1939 1745 1939 1745 1939 1746 1937 1746 1936 1747 1934 1747 1933 1748 1933 1748 1933 1751 1932 1752 1932 1752 1932 1752 1931 1751 1931 1751 1931 1751 1930 1752 1930 1752 1929 1752 1926 1753 1925 1754 1924 1755 1923 1756 1921 1757 1920 1757 1920 1757 1919 1758 1919 1759 1919 1758 1919 1759 1919 1759 1918 1759 1917 1760 1915 1760 1914 1760 1914 1759 1913 1760 1912 1760 1911 1760 1911 1760 1910 1760 1909 1760 1909 1760 1908 1760 1907 1761 1906 1760 1905 1760 1903 1760 1900 1760 1896 1761 1894 1761 1893 1761 1891 1762 1890 1762 1889 1762 1889 1762 1889 1762 1890 1762 1891 1762 1891 1761 1891 1761 1891 1761 1889 1762 1889 1761 1888 1761 1887 1760 1886 1760 1885 1760 1885 1760 1881 1760 1880 1760 1880 1759 1878 1759 1878 1759 1878 1760 1876 1760 1873 1759 1867 1759 1866 1760 1865 1760 1863 1760 1861 1760 1860 1760 1859 1760 1858 1760 1858 1759 1856 1759 1853 1759 1852 1759 1851 1760 1850 1760 1849 1760 1849 1760 1847 1759 1846 1759 1846 1759 1845 1759 1845 1759 1843 1759 1842 1759 1841 1760 1838 1760 1834 1759 1833 1759 1832 1759 1829 1759 1829 1759 1828 1759 1827 1759 1826 1760 1825 1760 1823 1760 1823 1760 1822 1759 1822 1759 1822 1759 1821 1759 1821 1760 1820 1760 1820 1760 1819 1761 1818 1761 1816 1761 1814 1760 1814 1760 1814 1760 1813 1760 1813 1760 1813 1760 1810 1762 1809 1763 1807 1764 1807 1764 1806 1764 1806 1764 1805 1764 1805 1765 1805 1765 1805 1765 1805 1766 1804 1766 1803 1766 1803 1767 1803 1767 1802 1767 1802 1768 1801 1771 1801 1771 1801 1772 1801 1772 1799 1775 1799 1775 1798 1775 1797 1775 1796 1775 1794 1775 1790 1775 1789 1775 1787 1776 1787 1776 1786 1778 1785 1778 1783 1779 1782 1778 1780 1779 1779 1779 1779 1779 1779 1779 1778 1781 1775 1782 1772 1784 1772 1784 1771 1785 1771 1785 1771 1786 1771 1786 1770 1786 1770 1786 1769 1786 1769 1787 1768 1788 1768 1788 1768 1789 1766 1791 1766 1791 1763 1793 1762 1794 1762 1794 1760 1793 1759 1793 1759 1793 1759 1792 1757 1791 1757 1791 1756 1792 1755 1792 1755 1791 1754 1791 1753 1791 1750 1790 1747 1790 1745 1789 1745 1789 1744 1789 1742 1788 1741 1788 1741 1788 1740 1789 1742 1789 1744 1790 1745 1790 1748 1790 1749 1790 1750 1790 1751 1791 1752 1791 1753 1791 1753 1791 1754 1792 1756 1792 1757 1792 1757 1792 1758 1792 1761 1794 1760 1796 1760 1797 1758 1800 1757 1801 1756 1801 1755 1802 1754 1802 1754 1803 1754 1803 1753 1804 1752 1804 1751 1804 1750 1805 1749 1806 1748 1807 1748 1807 1748 1807 1748 1808 1746 1810 1745 1810 1744 1811 1744 1811 1743 1811 1743 1811 1742 1811 1741 1812 1739 1813 1738 1814 1736 1816 1736 1816 1738 1815 1738 1815 1738 1815 1739 1814 1739 1814 1740 1814 1741 1814 1745 1813 1745 1813 1747 1812 1747 1812 1748 1812 1748 1812 1749 1811 1749 1811 1750 1811 1752 1809 1752 1809 1753 1808 1755 1806 1756 1806 1756 1806 1757 1804 1759 1803 1760 1802 1762 1800 1763 1800 1763 1799 1764 1798 1764 1798 1765 1797 1765 1797 1765 1796 1766 1796 1766 1796 1769 1795 1771 1793 1771 1793 1772 1792 1773 1792 1773 1791 1774 1791 1776 1790 1778 1790 1780 1789 1781 1788 1781 1788 1781 1788 1782 1787 1782 1787 1782 1787 1783 1787 1783 1787 1783 1787 1784 1786 1785 1786 1786 1786 1786 1786 1786 1785 1787 1785 1789 1785 1794 1783 1796 1782 1802 1781 1803 1780 1804 1780 1805 1780 1805 1780 1805 1780 1806 1779 1809 1778 1814 1777 1816 1777 1817 1777 1820 1776 1824 1776 1826 1776 1829 1776 1830 1776 1831 1776 1831 1776 1837 1776 1838 1777 1840 1777 1840 1777 1840 1777 1841 1778 1842 1778 1843 1778 1843 1778 1847 1780 1849 1781 1849 1782 1850 1784 1849 1783 1849 1783 1848 1783 1848 1783 1847 1782 1844 1782 1845 1783 1847 1783 1849 1784 1850 1786 1850 1786 1849 1786 1848 1786 1848 1787 1848 1787 1849 1787 1849 1787 1849 1788 1848 1789 1846 1789 1845 1790 1843 1790 1842 1790 1841 1791 1841 1792 1840 1793 1839 1793 1838 1793 1837 1794 1834 1795 1834 1795 1832 1796 1832 1796 1832 1796 1829 1796 1829 1796 1829 1795 1826 1794 1825 1794 1822 1793 1822 1793 1821 1793 1820 1794 1819 1794 1817 1794 1814 1794 1814 1794 1813 1794 1813 1794 1812 1795 1810 1795 1809 1796 1807 1796 1808 1796 1809 1796 1809 1796 1811 1796 1812 1795 1812 1795 1814 1795 1815 1795 1817 1796 1820 1797 1821 1797 1822 1797 1822 1797 1823 1797 1823 1797 1824 1797 1824 1798 1825 1798 1825 1798 1825 1799 1826 1800 1826 1802 1827 1802 1831 1800 1831 1800 1833 1799 1834 1799 1834 1799 1836 1798 1836 1798 1837 1798 1840 1799 1841 1800 1842 1800 1842 1801 1840 1802 1839 1803 1839 1803 1839 1804 1839 1804 1839 1805 1838 1806 1835 1809 1833 1810 1833 1810 1831 1810 1831 1810 1833 1811 1835 1811 1837 1810 1840 1811 1840 1812 1840 1812 1839 1813 1839 1813 1838 1813 1838 1814 1838 1814 1838 1814 1839 1815 1839 1815 1840 1816 1841 1817 1841 1817 1841 1817 1842 1818 1842 1820 1842 1820 1843 1821 1843 1822 1843 1822 1845 1824 1846 1824 1849 1824 1851 1825 1852 1825 1853 1825 1856 1825 1856 1826 1856 1826 1855 1827 1854 1827 1853 1827 1852 1827 1852 1827 1851 1827 1852 1828 1852 1828 1853 1828 1854 1828 1855 1829 1855 1829 1857 1830 1858 1831 1858 1830 1859 1830 1859 1830 1859 1830 1861 1830 1861 1830 1862 1830 1862 1831 1861 1831 1860 1831 1862 1831 1863 1831 1864 1831 1865 1831 1864 1831 1863 1832 1863 1832 1864 1832 1864 1832 1866 1832 1867 1832 1867 1831 1869 1831 1869 1831 1873 1832 1874 1832 1876 1833 1877 1834 1877 1834 1881 1832 1883 1831 1884 1831 1884 1830 1885 1830 1886 1830 1886 1830 1886 1830 1887 1833 1888 1834 1889 1834 1891 1834 1891 1834 1892 1833 1892 1833 1893 1833 1893 1833 1894 1834 1895 1835 1896 1835 1897 1836 1897 1836 1896 1837 1895 1837 1895 1837 1894 1837 1893 1838 1893 1838 1897 1838 1898 1838 1900 1838 1901 1839 1901 1839 1901 1839 1900 1840 1899 1840 1899 1840 1898 1840 1897 1840 1896 1840 1896 1840 1895 1841 1895 1841 1894 1841 1893 1841 1892 1841 1891 1842 1889 1842 1886 1843 1884 1844 1883 1844 1880 1845 1878 1845 1877 1845 1876 1846 1876 1847 1874 1847 1872 1847 1872 1848 1871 1848 1870 1848 1868 1847 1868 1848 1868 1848 1868 1848 1868 1849 1868 1849 1867 1848 1867 1849 1864 1850 1862 1850 1861 1850 1860 1850 1860 1849 1859 1849 1858 1848 1859 1849 1859 1849 1860 1850 1860 1850 1860 1852 1860 1852 1860 1852 1860 1852 1859 1853 1854 1852 1854 1852 1854 1851 1854 1850 1854 1849 1854 1849 1853 1849 1852 1850 1852 1850 1852 1851 1853 1852 1851 1852 1851 1852 1851 1851 1851 1851 1850 1851 1850 1850 1850 1851 1848 1851 1847 1853 1847 1854 1848 1854 1848 1854 1849 1854 1849 1855 1849 1855 1848 1856 1848 1855 1847 1855 1847 1856 1846 1856 1846 1857 1843 1858 1843 1859 1842 1860 1841 1861 1840 1861 1840 1861 1839 1861 1839 1862 1838 1863 1836 1864 1836 1865 1833 1865 1832 1865 1831 1867 1830 1867 1829 1868 1829 1868 1829 1868 1828 1867 1827 1867 1827 1867 1826 1868 1826 1868 1825 1868 1824 1867 1824 1866 1825 1866 1825 1865 1824 1865 1823 1863 1822 1863 1822 1863 1822 1863 1821 1864 1821 1865 1821 1865 1820 1864 1819 1863 1819 1864 1819 1863 1818 1862 1818 1861 1818 1861 1818 1860 1818 1859 1818 1858 1818 1857 1819 1854 1819 1854 1820 1853 1821 1852 1822 1852 1823 1851 1823 1850 1822 1850 1821 1851 1821 1851 1820 1852 1819 1853 1818 1854 1818 1853 1819 1852 1820 1851 1821 1850 1824 1849 1824 1850 1825 1850 1826 1850 1827 1849 1828 1848 1828 1848 1826 1849 1825 1848 1826 1848 1832 1845 1834 1844 1835 1844 1838 1842 1839 1842 1840 1841 1840 1841 1841 1841 1841 1841 1843 1840 1844 1840 1845 1840 1846 1840 1846 1839 1846 1839 1846 1839 1845 1839 1845 1838 1845 1838 1846 1838 1847 1839 1848 1839 1848 1839 1847 1840 1847 1842 1847 1842 1847 1842 1848 1842 1848 1841 1849 1842 1849 1842 1850 1843 1850 1844 1850 1844 1851 1844 1851 1843 1851 1843 1850 1842 1850 1842 1850 1841 1850 1841 1851 1840 1852 1840 1853 1840 1853 1840 1853 1840 1856 1839 1859 1839 1861 1839 1863 1838 1857 1837 1856 1837 1855 1838 1853 1838 1852 1837 1852 1837 1850 1837 1849 1837 1848 1837 1847 1838 1844 1837 1842 1838 1840 1838 1838 1838 1838 1838 1838 1837 1839 1836 1841 1836 1842 1835 1844 1834 1845 1833 1846 1832 1848 1832 1848 1831 1848 1831 1848 1831 1848 1830 1848 1830 1848 1830 1847 1830 1846 1831 1845 1832 1845 1831 1843 1829 1842 1827 1842 1827 1841 1826 1842 1828 1843 1829 1843 1830 1843 1831 1841 1834 1840 1834 1840 1834 1840 1834 1839 1834 1839 1834 1838 1834 1838 1834 1837 1834 1837 1835 1837 1835 1836 1835 1835 1835 1834 1836 1833 1836 1831 1836 1831 1837 1831 1837 1830 1837 1828 1838 1823 1840 1822 1840 1821 1840 1819 1839 1820 1838 1820 1838 1820 1838 1821 1837 1821 1837 1821 1836 1818 1838 1818 1839 1819 1840 1819 1840 1819 1840 1818 1841 1817 1841 1814 1842 1813 1842 1813 1841 1812 1841 1812 1842 1811 1842 1811 1842 1811 1842 1809 1843 1808 1843 1808 1842 1805 1841 1804 1841 1804 1842 1803 1841 1802 1841 1802 1841 1801 1841 1801 1841 1800 1841 1800 1841 1799 1841 1798 1841 1798 1840 1798 1840 1797 1839 1798 1838 1797 1836 1798 1835 1798 1834 1798 1834 1797 1834 1797 1834 1796 1834 1794 1834 1792 1833 1792 1832 1792 1831 1792 1830 1793 1828 1792 1823 1792 1815 1792 1813 1792 1811 1791 1810 1791 1810 1790 1809 1790 1809 1786 1806 1786 1806 1785 1806 1784 1806 1783 1806 1783 1806 1780 1807 1777 1808 1776 1808 1776 1808 1775 1809 1774 1808 1772 1808 1772 1807 1772 1807 1772 1807 1772 1806 1772 1806 1772 1805 1772 1805 1771 1804 1769 1804 1768 1805 1766 1807 1762 1811 1762 1812 1759 1814 1757 1816 1757 1817 1757 1818 1756 1820 1756 1820 1756 1821 1756 1821 1756 1821 1755 1821 1754 1822 1753 1823 1752 1825 1752 1827 1752 1828 1753 1828 1753 1828 1753 1829 1751 1831 1749 1832 1748 1833 1748 1833 1747 1834 1746 1835 1745 1835 1745 1836 1746 1836 1746 1836 1743 1840 1741 1839 1740 1839 1739 1840 1738 1840 1738 1839 1737 1839 1737 1839 1736 1839 1736 1839 1734 1840 1735 1840 1734 1842 1734 1842 1733 1843 1733 1843 1733 1843 1732 1843 1727 1843 1724 1843 1721 1843 1718 1843 1717 1843 1713 1843 1710 1843 1704 1844 1703 1844 1703 1844 1699 1844 1694 1844 1689 1844 1682 1844 1681 1844 1681 1844 1680 1843 1679 1843 1677 1844 1674 1845 1673 1846 1672 1846 1671 1847 1669 1849 1668 1849 1667 1850 1666 1850 1665 1851 1664 1852 1664 1852 1664 1853 1664 1853 1663 1853 1663 1854 1662 1854 1661 1854 1661 1854 1660 1854 1660 1854 1655 1857 1655 1858 1654 1858 1653 1860 1652 1861 1652 1861 1650 1863 1648 1866 1646 1866 1641 1866 1636 1865 1633 1865 1631 1865 1631 1865 1623 1865 1619 1866 1618 1866 1614 1867 1613 1867 1612 1868 1610 1868 1611 1870 1612 1871 1612 1872 1612 1873 1612 1873 1612 1874 1613 1876 1613 1876 1614 1876 1614 1876 1614 1877 1615 1877 1614 1878 1614 1878 1613 1879 1611 1879 1611 1880 1608 1880 1604 1882 1601 1883 1601 1883 1596 1885 1589 1886 1589 1886 1583 1887 1577 1888 1574 1889 1571 1891 1568 1892 1562 1895 1561 1895 1558 1897 1558 1897 1555 1897 1554 1897 1548 1894 1547 1893 M 1352 1415 1353 1415 1353 1415 1353 1415 1353 1415 1353 1417 1352 1417 1352 1417 1351 1417 1351 1417 1350 1417 1350 1417 1350 1415 1351 1415 1351 1415 1352 1415 1352 1415 1352 1415 M 1706 1417 1706 1417 1706 1417 1706 1417 1707 1418 1706 1418 1705 1418 1705 1418 1705 1418 1705 1418 1704 1419 1704 1419 1704 1419 1704 1419 1703 1420 1703 1420 1703 1420 1703 1420 1702 1420 1702 1419 1702 1419 1702 1419 1702 1419 1703 1418 1703 1418 1705 1417 1705 1417 1706 1417 M 1710 1418 1712 1418 1713 1418 1713 1418 1713 1418 1714 1418 1714 1418 1714 1418 1714 1419 1714 1419 1714 1419 1714 1420 1714 1420 1713 1420 1713 1420 1713 1420 1712 1420 1712 1420 1711 1420 1711 1420 1710 1420 1709 1420 1709 1420 1709 1419 1709 1419 1708 1419 1710 1418 1710 1418 1710 1418 M 1708 1424 1708 1423 1706 1423 1706 1423 1705 1423 1705 1423 1705 1422 1705 1422 1705 1422 1704 1421 1704 1421 1703 1421 1703 1421 1703 1421 1703 1420 1703 1420 1706 1419 1706 1419 1707 1419 1707 1420 1708 1420 1708 1420 1707 1421 1707 1421 1708 1421 1708 1421 1709 1420 1709 1420 1709 1420 1710 1420 1710 1420 1712 1421 1712 1421 1712 1422 1711 1422 1711 1422 1710 1422 1709 1422 1709 1422 1709 1422 1709 1423 1709 1423 1709 1423 1709 1424 1709 1424 1709 1424 1708 1424 M 1332 1424 1332 1424 1333 1424 1333 1424 1333 1424 1334 1425 1334 1425 1333 1425 1332 1425 1332 1425 1331 1425 1331 1424 1332 1424 M 1740 1426 1740 1427 1740 1427 1739 1427 1739 1427 1737 1427 1737 1427 1737 1427 1737 1427 1737 1427 1737 1427 1738 1426 1739 1426 1739 1426 1740 1426 1740 1426 1740 1426 1740 1426 M 1728 1428 1729 1428 1731 1428 1732 1428 1733 1428 1734 1428 1735 1428 1735 1428 1735 1428 1736 1428 1736 1429 1735 1430 1735 1430 1734 1430 1734 1430 1734 1430 1733 1430 1733 1430 1731 1430 1729 1430 1726 1431 1726 1431 1725 1431 1724 1431 1724 1432 1723 1432 1723 1431 1722 1430 1721 1430 1721 1430 1722 1430 1722 1429 1722 1429 1723 1429 1723 1430 1723 1430 1723 1430 1723 1430 1723 1430 1724 1430 1724 1430 1724 1429 1724 1429 1725 1429 1725 1428 1725 1428 1726 1427 1727 1427 1727 1427 1728 1427 1728 1428 M 1270 1434 1271 1434 1272 1435 1272 1435 1273 1435 1274 1435 1274 1437 1274 1437 1274 1437 1273 1437 1270 1437 1270 1436 1268 1436 1267 1436 1267 1435 1267 1435 1267 1435 1267 1435 1267 1434 1267 1434 1270 1434 1270 1434 1270 1434 1270 1434 1270 1434 M 829 1435 829 1435 829 1435 828 1435 825 1436 827 1434 827 1434 827 1434 828 1434 829 1434 829 1435 829 1435 829 1435 829 1435 M 1003 1436 1003 1436 1003 1436 1002 1436 1002 1436 1001 1435 1001 1435 1002 1435 1002 1435 1003 1435 1003 1435 1004 1435 1008 1436 1008 1436 1008 1436 1007 1436 1006 1436 1003 1436 M 1018 1436 1018 1436 1019 1436 1020 1436 1020 1436 1018 1436 1017 1436 1015 1436 1015 1436 1015 1436 1014 1436 1015 1436 1017 1436 1018 1436 1018 1436 M 1082 1439 1083 1439 1084 1439 1084 1439 1086 1439 1089 1439 1091 1440 1088 1440 1087 1440 1086 1440 1085 1440 1085 1440 1084 1440 1083 1440 1083 1439 1081 1439 1081 1439 1081 1439 1081 1439 1082 1439 M 1481 1443 1481 1443 1482 1443 1482 1443 1483 1443 1483 1443 1483 1443 1484 1443 1484 1442 1483 1442 1483 1442 1484 1442 1484 1442 1484 1442 1485 1442 1485 1442 1485 1443 1486 1443 1487 1443 1487 1443 1487 1443 1488 1443 1488 1443 1489 1443 1489 1443 1489 1443 1490 1443 1491 1443 1491 1443 1492 1443 1492 1443 1492 1443 1493 1443 1493 1443 1493 1443 1493 1444 1493 1444 1493 1444 1494 1444 1494 1444 1494 1444 1494 1444 1494 1445 1493 1445 1493 1445 1493 1445 1491 1445 1490 1445 1489 1445 1489 1445 1488 1445 1488 1445 1487 1445 1487 1445 1487 1445 1486 1445 1486 1444 1486 1444 1485 1444 1485 1444 1485 1444 1485 1445 1484 1445 1484 1445 1484 1445 1483 1445 1483 1444 1483 1444 1482 1444 1482 1444 1482 1444 1482 1444 1482 1444 1481 1444 1481 1444 1481 1444 1481 1443 1481 1443 1481 1443 1480 1443 1480 1443 1480 1443 1480 1443 1479 1443 1480 1443 1480 1443 1481 1443 1481 1443 1481 1443 1481 1443 M 1320 1446 1320 1446 1320 1446 1320 1446 1321 1446 1321 1446 1321 1446 1321 1446 1322 1446 1322 1446 1322 1447 1322 1447 1321 1447 1321 1447 1321 1447 1321 1447 1321 1447 1319 1446 1319 1446 1318 1446 1318 1446 1318 1446 1318 1446 1318 1445 1318 1445 1318 1445 1318 1445 1319 1445 1320 1445 1320 1445 1320 1446 M 1290 1463 1290 1463 1289 1463 1289 1463 1287 1462 1287 1462 1287 1462 1287 1461 1286 1461 1285 1461 1285 1460 1284 1460 1286 1459 1286 1458 1289 1458 1290 1458 1291 1458 1293 1458 1294 1458 1297 1458 1297 1458 1298 1457 1299 1457 1300 1456 1301 1456 1303 1456 1303 1456 1304 1455 1303 1455 1302 1454 1301 1454 1301 1454 1300 1454 1300 1453 1300 1453 1301 1453 1302 1453 1302 1453 1303 1453 1303 1453 1302 1453 1301 1452 1301 1452 1300 1452 1300 1452 1301 1451 1301 1451 1302 1451 1303 1451 1304 1451 1304 1452 1304 1452 1305 1452 1305 1452 1306 1453 1308 1454 1309 1454 1310 1453 1309 1453 1307 1452 1307 1452 1306 1452 1306 1451 1305 1451 1304 1451 1304 1451 1305 1449 1305 1448 1306 1448 1306 1448 1307 1448 1308 1447 1308 1447 1309 1447 1309 1446 1310 1446 1310 1446 1311 1446 1311 1446 1312 1446 1314 1447 1315 1447 1315 1448 1316 1448 1316 1448 1319 1448 1320 1449 1320 1449 1319 1449 1319 1449 1318 1449 1318 1450 1320 1451 1320 1450 1320 1450 1321 1449 1321 1449 1322 1450 1322 1450 1324 1451 1324 1451 1325 1451 1326 1452 1328 1453 1331 1453 1334 1454 1337 1455 1337 1455 1338 1456 1339 1456 1338 1457 1338 1457 1338 1458 1338 1459 1339 1460 1339 1460 1340 1460 1340 1460 1339 1459 1339 1458 1341 1457 1341 1457 1342 1458 1343 1459 1342 1459 1342 1460 1343 1460 1344 1462 1345 1462 1345 1462 1347 1463 1347 1463 1348 1463 1348 1463 1349 1463 1349 1463 1349 1463 1350 1463 1351 1462 1351 1462 1352 1462 1352 1462 1352 1462 1354 1463 1354 1463 1353 1464 1350 1465 1349 1465 1349 1465 1348 1464 1348 1464 1345 1465 1344 1466 1344 1466 1342 1466 1339 1467 1337 1469 1337 1469 1334 1469 1333 1469 1330 1469 1329 1469 1327 1468 1324 1468 1324 1468 1323 1468 1323 1468 1318 1468 1318 1468 1317 1467 1316 1467 1315 1467 1314 1466 1311 1466 1309 1465 1309 1465 1308 1466 1308 1466 1308 1466 1306 1465 1306 1465 1305 1464 1306 1464 1306 1463 1305 1463 1304 1463 1303 1463 1303 1463 1303 1464 1303 1464 1303 1464 1302 1464 1301 1464 1298 1464 1296 1463 1296 1463 1296 1462 1297 1462 1296 1461 1294 1461 1294 1461 1293 1462 1292 1462 1293 1462 1293 1463 1291 1463 1290 1463 1290 1463 M 1413 1449 1413 1449 1413 1449 1410 1448 1410 1448 1414 1446 1414 1446 1415 1446 1415 1446 1415 1446 1414 1448 1414 1448 1414 1448 1413 1449 1413 1449 M 1555 1447 1556 1447 1557 1447 1558 1447 1558 1447 1558 1448 1558 1448 1558 1448 1558 1448 1557 1448 1557 1448 1556 1448 1556 1448 1554 1447 1555 1446 1555 1446 1555 1447 M 1540 1448 1540 1448 1538 1448 1538 1448 1538 1449 1539 1449 1539 1449 1538 1449 1538 1449 1537 1449 1536 1449 1535 1448 1535 1448 1535 1448 1535 1448 1535 1448 1535 1447 1535 1447 1536 1447 1536 1447 1540 1448 1541 1448 1541 1448 1540 1448 M 1601 1448 1601 1448 1601 1448 1602 1447 1605 1448 1606 1448 1606 1448 1606 1448 1606 1448 1608 1449 1608 1449 1608 1449 1605 1450 1604 1450 1604 1451 1604 1451 1603 1451 1598 1450 1598 1450 1597 1450 1597 1450 1597 1450 1596 1450 1596 1450 1597 1451 1597 1451 1598 1452 1598 1452 1597 1453 1597 1453 1596 1452 1594 1452 1594 1451 1592 1451 1590 1450 1589 1450 1588 1450 1585 1450 1585 1450 1585 1450 1584 1450 1584 1449 1584 1449 1586 1448 1587 1448 1589 1449 1589 1448 1589 1448 1589 1448 1589 1448 1590 1448 1591 1448 1591 1448 1592 1448 1592 1448 1592 1448 1592 1448 1593 1448 1593 1448 1593 1448 1594 1448 1594 1448 1594 1448 1595 1448 1596 1448 1598 1449 1599 1449 1601 1448 M 1553 1448 1553 1448 1554 1448 1555 1448 1556 1448 1558 1448 1558 1449 1558 1449 1557 1449 1557 1449 1554 1449 1554 1449 1551 1448 1551 1448 1552 1448 1552 1448 1552 1448 1553 1448 M 1627 1449 1628 1449 1629 1449 1629 1449 1629 1449 1630 1449 1630 1450 1630 1450 1630 1450 1630 1450 1630 1450 1628 1451 1626 1451 1624 1452 1623 1452 1621 1453 1620 1452 1620 1452 1619 1452 1619 1452 1619 1452 1619 1452 1618 1452 1618 1453 1618 1453 1617 1453 1616 1453 1616 1453 1616 1453 1615 1453 1615 1453 1615 1453 1615 1453 1616 1452 1616 1452 1616 1452 1617 1452 1617 1452 1618 1452 1618 1452 1618 1451 1619 1451 1619 1451 1619 1451 1620 1450 1620 1450 1621 1450 1621 1450 1621 1450 1623 1450 1625 1450 1625 1450 1626 1450 1625 1449 1625 1449 1625 1449 1625 1449 1626 1448 1627 1448 1627 1448 1627 1449 M 708 1461 709 1461 710 1460 710 1460 707 1460 704 1459 704 1458 703 1457 704 1457 704 1456 704 1456 706 1457 707 1458 708 1458 710 1459 711 1459 709 1458 709 1458 706 1457 705 1456 705 1456 706 1455 710 1455 711 1455 712 1455 712 1455 713 1456 714 1456 715 1456 715 1456 716 1456 716 1456 715 1455 714 1454 716 1453 719 1453 720 1453 724 1453 725 1453 725 1453 726 1453 726 1453 727 1453 727 1453 728 1453 728 1453 728 1453 728 1452 727 1452 728 1450 728 1450 727 1449 730 1449 731 1450 732 1450 732 1451 731 1451 733 1452 733 1452 734 1452 734 1451 735 1452 735 1452 735 1452 736 1452 737 1452 738 1451 738 1451 739 1452 738 1453 738 1453 737 1453 737 1453 736 1454 736 1454 735 1454 733 1455 731 1456 730 1457 730 1457 728 1459 728 1459 727 1459 726 1459 726 1459 724 1460 724 1461 724 1461 725 1462 727 1462 727 1462 727 1463 727 1463 728 1464 728 1464 729 1464 729 1464 730 1464 731 1465 731 1465 730 1465 729 1465 729 1465 728 1465 727 1465 726 1464 724 1462 723 1461 723 1461 722 1461 722 1461 721 1461 720 1461 720 1461 720 1462 719 1462 719 1462 717 1462 716 1462 716 1461 715 1461 715 1461 713 1462 712 1462 712 1462 712 1461 706 1462 706 1462 705 1462 705 1462 704 1462 704 1462 703 1461 703 1460 703 1460 705 1460 705 1460 705 1460 706 1461 706 1461 708 1461 M 1791 1449 1792 1450 1792 1451 1790 1452 1790 1452 1790 1452 1789 1452 1788 1452 1785 1451 1785 1451 1788 1450 1789 1449 1790 1449 1790 1449 1791 1449 1791 1449 M 653 1452 653 1452 650 1451 650 1451 651 1451 651 1451 651 1450 652 1450 653 1450 653 1450 653 1450 653 1450 655 1450 656 1451 656 1451 657 1451 657 1451 657 1451 656 1451 656 1451 655 1451 655 1451 654 1451 654 1451 654 1451 653 1452 M 1350 1451 1350 1452 1352 1452 1352 1452 1352 1452 1351 1454 1349 1455 1349 1455 1349 1455 1348 1455 1348 1455 1348 1455 1347 1455 1346 1455 1346 1455 1346 1455 1346 1454 1346 1454 1347 1454 1347 1454 1347 1454 1347 1454 1347 1452 1347 1452 1347 1452 1346 1452 1346 1452 1346 1452 1345 1451 1344 1452 1344 1452 1345 1452 1345 1453 1345 1453 1344 1455 1344 1455 1343 1455 1342 1455 1342 1455 1342 1455 1342 1453 1343 1451 1343 1451 1345 1450 1345 1450 1348 1451 1348 1451 1350 1451 M 1797 1453 1796 1452 1796 1452 1795 1452 1795 1452 1795 1452 1793 1452 1793 1452 1793 1452 1793 1452 1794 1452 1794 1452 1794 1452 1794 1452 1796 1451 1796 1451 1796 1451 1797 1451 1798 1451 1799 1451 1799 1451 1800 1451 1800 1452 1800 1452 1799 1452 1799 1452 1797 1452 1797 1452 1796 1452 1796 1452 1797 1452 1797 1452 1797 1453 1797 1453 M 1339 1452 1340 1452 1340 1453 1340 1453 1340 1453 1339 1455 1339 1455 1338 1455 1338 1455 1337 1454 1337 1454 1337 1454 1336 1454 1336 1454 1336 1454 1336 1453 1335 1453 1335 1453 1334 1453 1334 1453 1333 1453 1333 1453 1332 1452 1331 1452 1330 1451 1330 1451 1331 1451 1331 1451 1331 1451 1333 1451 1334 1451 1335 1451 1336 1451 1336 1452 1336 1452 1336 1452 1337 1452 1337 1452 1338 1452 1338 1452 1339 1451 1339 1451 1339 1451 1339 1451 1340 1452 1339 1452 M 1261 1452 1262 1453 1262 1453 1260 1454 1258 1454 1258 1455 1258 1454 1257 1454 1258 1454 1258 1454 1258 1454 1259 1453 1258 1453 1258 1452 1258 1452 1258 1452 1257 1452 1256 1452 1256 1451 1256 1451 1257 1451 1258 1451 1261 1452 1261 1452 1261 1452 M 1643 1453 1644 1454 1644 1454 1645 1454 1645 1454 1646 1454 1646 1454 1647 1454 1648 1454 1649 1454 1649 1454 1649 1454 1649 1454 1650 1454 1650 1454 1651 1454 1651 1454 1651 1455 1650 1456 1650 1456 1650 1456 1649 1456 1648 1456 1646 1457 1646 1457 1646 1457 1646 1458 1643 1459 1643 1459 1642 1459 1642 1458 1641 1458 1641 1458 1641 1458 1640 1458 1640 1458 1639 1456 1639 1456 1639 1454 1640 1454 1641 1454 1641 1454 1642 1453 1643 1453 1643 1453 1643 1453 M 1434 1454 1435 1454 1435 1454 1435 1455 1433 1456 1433 1456 1432 1457 1432 1457 1432 1457 1429 1455 1429 1455 1429 1454 1430 1454 1433 1453 1434 1453 1434 1454 M 714 1456 713 1455 713 1455 713 1455 712 1455 712 1455 711 1455 711 1455 710 1454 710 1454 710 1454 710 1454 710 1454 711 1454 712 1454 713 1454 713 1454 714 1454 714 1455 714 1455 714 1455 714 1455 714 1456 M 1622 1454 1623 1454 1623 1454 1624 1454 1624 1454 1625 1454 1625 1455 1625 1455 1626 1456 1624 1457 1623 1457 1622 1457 1620 1459 1620 1459 1620 1459 1619 1459 1618 1460 1618 1460 1618 1461 1618 1461 1617 1461 1616 1462 1616 1462 1615 1462 1614 1462 1614 1462 1613 1462 1612 1462 1610 1463 1610 1463 1610 1463 1609 1463 1609 1463 1608 1463 1607 1463 1607 1463 1607 1463 1607 1462 1607 1462 1608 1461 1608 1461 1608 1461 1609 1460 1609 1460 1609 1459 1610 1459 1610 1459 1611 1459 1612 1459 1613 1459 1614 1459 1614 1459 1615 1458 1617 1456 1618 1455 1618 1455 1619 1454 1620 1454 1621 1454 1622 1454 1622 1454 M 1428 1457 1428 1457 1425 1456 1425 1455 1425 1455 1425 1455 1426 1455 1426 1454 1427 1454 1427 1454 1427 1454 1428 1455 1428 1455 1428 1455 1429 1455 1429 1455 1430 1456 1430 1456 1430 1457 1429 1457 1428 1457 M 1253 1457 1254 1458 1254 1458 1253 1459 1251 1459 1251 1459 1251 1459 1251 1459 1250 1458 1250 1457 1251 1457 1251 1457 1251 1457 1252 1457 1253 1457 1253 1457 1253 1457 M 1276 1459 1277 1459 1277 1459 1278 1460 1278 1460 1278 1461 1277 1461 1277 1461 1276 1461 1275 1461 1275 1461 1275 1461 1274 1460 1274 1460 1274 1460 1274 1459 1274 1459 1276 1458 1276 1459 M 1273 1460 1273 1461 1273 1461 1273 1461 1274 1462 1274 1462 1274 1462 1275 1462 1275 1462 1275 1462 1276 1462 1275 1464 1274 1464 1274 1464 1273 1464 1273 1464 1273 1464 1273 1464 1273 1464 1272 1465 1272 1465 1271 1465 1271 1465 1268 1464 1268 1464 1268 1464 1268 1462 1268 1460 1269 1460 1269 1460 1269 1460 1270 1460 1271 1460 1272 1460 1272 1460 1272 1460 1273 1460 1273 1460 M 1439 1462 1438 1462 1438 1461 1438 1461 1437 1461 1436 1461 1436 1461 1438 1460 1439 1460 1439 1460 1439 1462 1439 1462 M 1438 1466 1438 1465 1438 1465 1437 1465 1437 1464 1437 1464 1437 1464 1438 1463 1438 1463 1439 1463 1439 1463 1441 1464 1441 1464 1441 1465 1440 1465 1439 1465 1438 1466 1438 1466 M 1251 1464 1251 1465 1251 1466 1251 1466 1251 1466 1249 1467 1248 1467 1248 1467 1248 1467 1247 1467 1246 1467 1244 1466 1242 1466 1242 1466 1241 1466 1241 1465 1242 1465 1243 1465 1244 1465 1244 1465 1244 1464 1245 1464 1245 1464 1245 1464 1245 1464 1245 1463 1245 1463 1246 1463 1246 1463 1247 1463 1247 1463 1247 1463 1249 1464 1251 1464 M 1782 1463 1783 1463 1785 1464 1785 1464 1787 1464 1792 1465 1792 1465 1794 1465 1794 1465 1794 1465 1791 1465 1791 1465 1791 1465 1790 1465 1790 1465 1788 1465 1786 1464 1784 1464 1784 1464 1783 1464 1783 1464 1783 1464 1782 1464 1782 1464 1782 1464 1782 1463 1782 1463 1782 1463 M 1677 1466 1678 1467 1678 1467 1680 1468 1680 1468 1681 1469 1681 1469 1681 1470 1680 1471 1677 1471 1677 1471 1677 1471 1677 1470 1677 1470 1676 1470 1675 1470 1675 1470 1675 1470 1673 1469 1673 1469 1672 1469 1671 1469 1671 1468 1670 1468 1671 1467 1671 1466 1672 1465 1673 1465 1673 1465 1673 1465 1677 1466 1677 1466 M 1681 1466 1681 1466 1683 1466 1685 1467 1685 1468 1684 1468 1684 1468 1681 1468 1681 1467 1680 1467 1680 1467 1680 1467 1680 1467 1679 1467 1679 1467 1679 1466 1680 1466 1680 1466 1681 1466 1681 1466 1681 1466 M 1616 1469 1616 1469 1616 1469 1615 1469 1615 1469 1614 1469 1614 1468 1614 1468 1616 1468 1616 1468 1617 1468 1617 1468 1617 1468 1618 1468 1618 1468 1618 1467 1618 1467 1618 1467 1618 1467 1618 1467 1617 1467 1616 1466 1615 1466 1615 1466 1616 1466 1618 1466 1618 1466 1621 1466 1621 1466 1622 1466 1622 1467 1622 1468 1621 1468 1621 1468 1620 1468 1620 1468 1620 1468 1619 1468 1619 1467 1619 1467 1618 1468 1618 1468 1618 1468 1618 1468 1618 1468 1619 1468 1619 1468 1619 1468 1619 1468 1619 1469 1618 1469 1618 1469 1617 1469 1617 1469 1616 1469 M 1203 1467 1205 1468 1205 1468 1206 1468 1206 1468 1206 1468 1207 1469 1207 1469 1207 1469 1207 1469 1207 1470 1207 1470 1207 1470 1206 1470 1206 1470 1205 1470 1205 1470 1204 1470 1203 1470 1203 1470 1202 1470 1200 1469 1199 1469 1199 1469 1197 1468 1197 1467 1198 1467 1198 1467 1198 1467 1199 1467 1199 1467 1202 1467 1202 1467 1203 1467 1203 1467 M 1106 1469 1105 1469 1104 1469 1103 1469 1101 1469 1101 1469 1101 1469 1101 1468 1102 1468 1105 1468 1105 1468 1105 1468 1106 1468 1106 1468 1107 1469 1107 1469 1106 1469 M 1688 1469 1688 1469 1688 1469 1689 1469 1689 1469 1690 1470 1690 1470 1692 1471 1691 1472 1690 1472 1690 1473 1690 1473 1689 1472 1689 1472 1689 1472 1687 1470 1687 1470 1687 1469 1687 1469 1687 1469 1687 1469 1688 1469 M 1565 1471 1564 1471 1564 1472 1561 1471 1560 1471 1560 1471 1560 1471 1560 1470 1562 1470 1562 1470 1563 1470 1565 1471 1565 1471 1565 1471 M 1612 1471 1612 1471 1614 1471 1616 1472 1616 1472 1616 1472 1616 1472 1616 1473 1613 1474 1613 1474 1612 1474 1612 1474 1612 1474 1610 1473 1610 1473 1610 1472 1610 1471 1611 1471 1611 1471 1612 1471 M 1651 1489 1650 1489 1645 1488 1645 1488 1644 1488 1644 1488 1644 1487 1641 1485 1641 1484 1642 1484 1641 1483 1641 1483 1640 1481 1640 1481 1641 1479 1641 1479 1642 1479 1642 1478 1647 1474 1650 1473 1650 1472 1650 1472 1651 1472 1651 1472 1657 1471 1657 1471 1657 1472 1659 1472 1660 1472 1660 1472 1661 1472 1661 1471 1662 1471 1662 1471 1663 1471 1664 1471 1665 1471 1665 1471 1666 1471 1666 1471 1667 1471 1667 1471 1668 1472 1668 1472 1670 1472 1670 1472 1671 1472 1673 1472 1673 1472 1674 1472 1675 1473 1675 1473 1677 1474 1677 1474 1677 1475 1676 1476 1676 1476 1675 1477 1675 1477 1675 1479 1676 1480 1677 1482 1676 1484 1675 1485 1675 1485 1674 1485 1671 1487 1668 1487 1667 1487 1664 1488 1662 1488 1659 1488 1657 1488 1656 1488 1653 1489 1651 1489 M 1094 1472 1093 1472 1093 1472 1092 1472 1092 1472 1092 1472 1092 1473 1092 1473 1091 1473 1091 1473 1091 1473 1090 1473 1090 1473 1090 1473 1090 1473 1090 1472 1090 1472 1091 1472 1091 1472 1094 1471 1094 1471 1094 1472 1094 1472 M 1494 1474 1494 1475 1495 1475 1495 1476 1495 1477 1496 1477 1495 1477 1495 1479 1495 1479 1494 1480 1494 1480 1492 1481 1492 1481 1492 1481 1491 1481 1490 1481 1488 1480 1487 1479 1487 1479 1487 1479 1487 1478 1486 1478 1486 1478 1486 1477 1487 1477 1487 1477 1488 1477 1488 1477 1488 1477 1488 1476 1488 1476 1488 1476 1488 1476 1487 1476 1487 1476 1486 1476 1486 1476 1486 1475 1486 1475 1486 1475 1487 1473 1490 1472 1490 1472 1490 1472 1491 1471 1491 1472 1492 1472 1493 1472 1494 1472 1494 1473 1495 1473 1495 1473 1494 1474 M 1816 1474 1815 1474 1815 1474 1815 1474 1813 1474 1812 1474 1812 1473 1811 1473 1811 1473 1813 1473 1816 1472 1817 1473 1817 1474 1817 1474 1816 1474 1816 1474 1816 1474 M 1125 1473 1125 1473 1125 1473 1123 1474 1122 1474 1122 1474 1122 1474 1121 1474 1121 1474 1121 1474 1120 1474 1121 1474 1122 1473 1123 1473 1124 1473 1125 1472 1125 1472 1125 1473 M 1208 1473 1208 1473 1208 1474 1207 1474 1207 1475 1206 1475 1206 1475 1205 1474 1205 1474 1207 1473 1207 1473 1208 1473 1208 1473 M 1826 1474 1827 1474 1828 1474 1829 1474 1829 1474 1829 1474 1828 1475 1826 1475 1826 1475 1825 1475 1825 1474 1825 1474 1826 1473 1826 1474 1826 1474 1826 1474 M 1699 1476 1699 1476 1699 1476 1699 1476 1700 1476 1700 1476 1700 1476 1702 1477 1702 1477 1702 1477 1702 1477 1703 1479 1703 1479 1703 1480 1703 1480 1702 1480 1702 1480 1702 1480 1698 1480 1694 1480 1693 1480 1692 1480 1692 1480 1691 1480 1690 1480 1689 1480 1689 1480 1689 1480 1688 1480 1688 1480 1687 1480 1687 1480 1685 1480 1685 1480 1684 1479 1684 1479 1684 1479 1683 1479 1683 1479 1682 1478 1681 1477 1681 1477 1681 1476 1681 1476 1681 1476 1681 1476 1681 1475 1681 1475 1682 1475 1683 1475 1683 1475 1686 1475 1687 1474 1687 1474 1688 1474 1688 1474 1689 1474 1689 1474 1690 1474 1690 1474 1690 1475 1693 1476 1697 1476 1699 1476 M 1120 1475 1120 1475 1120 1475 1119 1475 1119 1475 1117 1476 1115 1476 1114 1476 1114 1476 1114 1476 1115 1475 1115 1475 1119 1474 1119 1474 1120 1474 1120 1474 1120 1474 1120 1475 M 1127 1475 1127 1475 1129 1476 1129 1476 1129 1476 1129 1477 1129 1477 1128 1477 1128 1477 1127 1476 1126 1476 1125 1476 1126 1475 1126 1475 1127 1475 M 1135 1477 1136 1477 1136 1477 1136 1478 1136 1478 1136 1478 1135 1478 1133 1478 1132 1478 1132 1478 1131 1477 1131 1477 1131 1477 1131 1477 1133 1477 1134 1477 1134 1477 1134 1477 1135 1477 M 1149 1477 1149 1478 1149 1478 1149 1478 1149 1478 1148 1478 1148 1478 1148 1478 1146 1478 1146 1478 1146 1477 1147 1477 1148 1477 1148 1477 1148 1477 1148 1477 1149 1477 1149 1477 1149 1477 1149 1477 M 1105 1477 1104 1478 1104 1478 1101 1479 1101 1479 1101 1479 1101 1479 1104 1477 1105 1477 1105 1477 1105 1477 1105 1477 M 1144 1478 1143 1478 1140 1478 1139 1478 1140 1478 1141 1478 1141 1478 1141 1478 1142 1478 1144 1478 1144 1478 1144 1478 1144 1478 M 1320 1481 1320 1481 1320 1482 1320 1482 1320 1482 1319 1482 1318 1482 1318 1482 1317 1482 1317 1482 1317 1482 1317 1482 1317 1481 1319 1481 1320 1481 1320 1481 1320 1481 1320 1481 M 1149 1485 1148 1485 1148 1484 1148 1484 1148 1482 1148 1482 1148 1482 1148 1482 1149 1482 1150 1482 1150 1482 1150 1482 1151 1483 1151 1484 1151 1484 1149 1485 1149 1485 M 1854 1482 1854 1482 1854 1483 1854 1483 1855 1483 1855 1483 1856 1483 1856 1484 1856 1484 1857 1484 1857 1484 1856 1484 1856 1484 1855 1484 1855 1484 1854 1484 1853 1484 1853 1484 1853 1484 1852 1484 1852 1484 1852 1484 1852 1483 1853 1482 1853 1482 1854 1482 1854 1482 1854 1482 M 1147 1485 1146 1485 1146 1485 1146 1485 1146 1485 1146 1483 1147 1483 1147 1484 1147 1484 1148 1485 1148 1485 1148 1485 1147 1485 M 1144 1485 1144 1485 1143 1485 1143 1485 1143 1485 1142 1484 1142 1483 1142 1483 1143 1483 1145 1483 1145 1483 1145 1484 1145 1484 1144 1485 1144 1485 1144 1485 M 1152 1485 1152 1487 1151 1487 1151 1487 1151 1487 1149 1486 1149 1486 1149 1485 1151 1485 1151 1485 1152 1485 1152 1485 1152 1485 M 1861 1488 1861 1488 1860 1488 1860 1488 1860 1488 1859 1488 1857 1488 1856 1488 1855 1488 1856 1488 1856 1488 1858 1487 1858 1487 1858 1487 1859 1487 1859 1487 1861 1487 1863 1488 1863 1488 1863 1488 1862 1488 1862 1488 1861 1488 M 1353 1489 1352 1489 1352 1489 1352 1489 1351 1489 1351 1489 1351 1489 1349 1489 1349 1489 1349 1489 1351 1488 1352 1488 1353 1488 1353 1488 1353 1489 M 1157 1489 1157 1489 1157 1489 1158 1490 1158 1490 1159 1490 1159 1490 1159 1491 1160 1491 1159 1491 1158 1491 1158 1491 1158 1491 1158 1491 1157 1491 1157 1491 1157 1491 1157 1490 1157 1490 1156 1489 1156 1489 1156 1489 1156 1489 1156 1489 1157 1489 M 1870 1491 1871 1491 1872 1491 1872 1491 1873 1490 1874 1490 1874 1490 1875 1490 1876 1489 1876 1489 1878 1489 1879 1490 1879 1490 1878 1490 1877 1490 1877 1490 1876 1491 1876 1491 1875 1491 1875 1491 1875 1491 1874 1492 1873 1492 1873 1492 1872 1492 1872 1492 1871 1492 1870 1491 1870 1491 M 1869 1491 1870 1492 1870 1492 1870 1492 1870 1492 1870 1492 1869 1492 1869 1492 1868 1492 1868 1492 1867 1492 1867 1492 1867 1491 1867 1491 1867 1491 1867 1491 1869 1491 1869 1491 1869 1491 M 1153 1493 1153 1493 1153 1494 1152 1495 1151 1495 1151 1495 1151 1495 1153 1492 1153 1492 1153 1492 1153 1492 1153 1493 M 1808 1502 1808 1502 1808 1502 1809 1503 1810 1503 1810 1503 1810 1503 1810 1503 1811 1503 1811 1503 1811 1503 1812 1503 1811 1504 1811 1504 1811 1504 1811 1504 1810 1504 1810 1504 1810 1504 1810 1504 1809 1503 1807 1503 1806 1502 1806 1502 1806 1502 1806 1502 1806 1502 1807 1502 1808 1502 1808 1502 M 1550 1504 1549 1505 1549 1505 1549 1505 1548 1505 1548 1505 1545 1504 1545 1504 1545 1504 1545 1503 1545 1503 1545 1503 1545 1503 1546 1503 1546 1503 1546 1503 1547 1504 1548 1504 1548 1504 1549 1504 1549 1504 1549 1504 1549 1504 1550 1504 1550 1504 1551 1504 1551 1504 1551 1504 1550 1504 1550 1504 M 1881 1504 1882 1505 1882 1505 1878 1505 1878 1505 1878 1505 1878 1505 1880 1504 1880 1504 1880 1504 1881 1504 1881 1504 1881 1504 M 1535 1508 1538 1509 1538 1509 1538 1510 1538 1510 1538 1510 1538 1511 1538 1511 1538 1511 1538 1511 1538 1512 1541 1513 1544 1513 1544 1513 1545 1513 1546 1513 1546 1513 1545 1514 1545 1514 1545 1514 1544 1514 1544 1514 1543 1514 1543 1514 1543 1514 1543 1514 1542 1514 1542 1514 1542 1514 1541 1514 1541 1514 1541 1514 1540 1514 1539 1514 1536 1514 1536 1514 1536 1514 1536 1513 1537 1513 1537 1513 1537 1513 1538 1512 1538 1512 1537 1512 1537 1512 1536 1512 1536 1512 1535 1512 1534 1512 1534 1512 1534 1512 1534 1513 1534 1513 1534 1513 1532 1512 1531 1512 1531 1512 1531 1512 1532 1512 1532 1511 1531 1510 1530 1509 1530 1509 1529 1508 1529 1508 1528 1508 1528 1508 1528 1508 1527 1508 1527 1508 1527 1508 1526 1508 1526 1507 1526 1507 1526 1506 1526 1506 1526 1506 1527 1506 1527 1506 1529 1507 1531 1507 1533 1507 1533 1508 1535 1508 M 1519 1508 1519 1509 1520 1510 1521 1511 1522 1511 1522 1511 1522 1512 1523 1513 1524 1513 1524 1513 1524 1514 1524 1514 1524 1514 1524 1515 1523 1515 1522 1516 1522 1516 1521 1516 1521 1515 1520 1515 1520 1515 1520 1515 1520 1515 1520 1515 1520 1514 1519 1514 1519 1514 1519 1513 1517 1513 1516 1513 1516 1513 1516 1512 1515 1512 1514 1509 1515 1508 1515 1508 1516 1508 1516 1508 1518 1508 1519 1508 1519 1508 M 1510 1509 1510 1510 1510 1510 1509 1511 1509 1511 1509 1511 1509 1512 1510 1512 1510 1512 1511 1511 1511 1511 1511 1511 1512 1511 1513 1511 1513 1511 1514 1511 1514 1512 1515 1512 1517 1514 1516 1515 1515 1515 1515 1515 1515 1515 1514 1515 1513 1515 1512 1516 1513 1516 1514 1516 1514 1517 1515 1517 1515 1517 1516 1517 1517 1517 1517 1518 1517 1518 1517 1518 1517 1519 1519 1521 1519 1521 1520 1521 1521 1521 1521 1519 1521 1519 1521 1519 1524 1517 1524 1517 1526 1517 1528 1518 1529 1518 1531 1519 1530 1520 1530 1520 1531 1521 1532 1521 1535 1522 1535 1522 1536 1522 1539 1522 1539 1522 1541 1522 1543 1522 1543 1522 1544 1523 1544 1524 1544 1524 1546 1525 1547 1525 1549 1526 1552 1526 1552 1527 1552 1527 1553 1528 1554 1528 1556 1528 1560 1528 1562 1529 1562 1529 1562 1529 1564 1530 1566 1531 1569 1532 1569 1533 1569 1535 1569 1535 1569 1535 1569 1536 1570 1536 1570 1536 1571 1537 1571 1537 1571 1537 1572 1537 1572 1538 1570 1539 1569 1539 1568 1539 1567 1539 1566 1539 1565 1540 1566 1540 1566 1540 1567 1540 1567 1540 1572 1540 1574 1539 1575 1539 1577 1539 1577 1539 1582 1540 1582 1540 1583 1540 1583 1540 1582 1540 1582 1539 1582 1538 1583 1538 1584 1539 1585 1539 1585 1539 1588 1540 1589 1541 1589 1542 1588 1542 1590 1543 1591 1543 1594 1543 1594 1543 1594 1543 1594 1544 1594 1544 1592 1545 1591 1545 1591 1545 1590 1545 1590 1545 1589 1545 1589 1545 1588 1546 1587 1546 1585 1547 1583 1548 1582 1548 1582 1549 1582 1549 1581 1549 1581 1549 1581 1549 1580 1549 1580 1549 1579 1549 1575 1548 1570 1547 1570 1546 1569 1546 1568 1546 1568 1546 1568 1546 1567 1546 1567 1546 1565 1546 1565 1546 1565 1545 1564 1545 1564 1545 1563 1545 1562 1545 1561 1546 1560 1546 1560 1546 1558 1545 1557 1545 1557 1544 1557 1544 1557 1544 1558 1543 1559 1543 1559 1543 1560 1543 1559 1542 1559 1541 1557 1541 1557 1541 1552 1541 1550 1541 1548 1541 1548 1541 1547 1541 1547 1540 1548 1540 1549 1539 1549 1539 1550 1538 1550 1538 1549 1537 1548 1537 1548 1537 1547 1537 1547 1538 1544 1538 1542 1538 1541 1538 1541 1539 1538 1540 1539 1540 1539 1541 1539 1541 1540 1541 1540 1543 1539 1544 1539 1544 1538 1544 1538 1544 1537 1544 1536 1544 1533 1546 1533 1546 1533 1546 1532 1546 1532 1547 1531 1547 1531 1547 1531 1546 1530 1546 1529 1546 1529 1546 1527 1547 1526 1549 1526 1549 1526 1550 1524 1551 1521 1552 1521 1552 1521 1552 1520 1552 1520 1553 1519 1553 1519 1553 1515 1554 1514 1554 1513 1554 1513 1554 1513 1554 1512 1554 1511 1554 1511 1554 1510 1554 1510 1554 1509 1554 1508 1554 1507 1552 1507 1551 1507 1550 1507 1549 1507 1549 1508 1548 1508 1546 1508 1546 1506 1545 1503 1545 1502 1545 1501 1545 1498 1546 1498 1546 1497 1546 1497 1546 1497 1546 1496 1546 1495 1546 1494 1546 1492 1546 1492 1546 1491 1546 1491 1546 1490 1546 1490 1547 1489 1547 1489 1547 1488 1547 1488 1547 1487 1547 1487 1547 1485 1547 1484 1547 1484 1547 1483 1547 1482 1547 1482 1546 1482 1546 1482 1546 1482 1545 1482 1545 1483 1544 1486 1542 1487 1542 1487 1541 1489 1541 1489 1541 1490 1541 1491 1541 1493 1540 1495 1540 1497 1539 1498 1539 1498 1539 1499 1538 1498 1537 1497 1537 1497 1537 1497 1537 1496 1536 1495 1534 1495 1533 1495 1531 1495 1530 1496 1529 1497 1528 1498 1527 1498 1527 1498 1527 1499 1525 1498 1525 1498 1525 1498 1524 1498 1524 1498 1523 1499 1523 1499 1523 1499 1521 1499 1521 1499 1520 1499 1520 1499 1518 1500 1516 1500 1516 1501 1513 1502 1513 1503 1512 1504 1511 1505 1511 1505 1511 1506 1510 1506 1510 1507 1510 1508 1509 1509 1509 1509 1509 1510 1509 M 1544 1511 1543 1511 1543 1511 1543 1511 1542 1511 1542 1511 1542 1511 1542 1512 1542 1512 1541 1511 1541 1511 1540 1511 1540 1511 1540 1511 1540 1511 1540 1510 1541 1510 1542 1510 1542 1510 1543 1510 1544 1511 1544 1511 1545 1511 1544 1511 1544 1511 1544 1511 1544 1511 M 1881 1513 1880 1513 1880 1513 1881 1513 1881 1513 1881 1513 1881 1513 1882 1513 1882 1513 1883 1514 1883 1514 1882 1514 1882 1515 1881 1515 1880 1514 1877 1514 1877 1514 1877 1513 1877 1513 1877 1512 1880 1512 1880 1512 1881 1512 1881 1513 M 1833 1529 1833 1530 1833 1530 1833 1530 1833 1530 1832 1531 1830 1531 1830 1532 1829 1532 1829 1532 1826 1532 1826 1532 1826 1532 1826 1532 1826 1532 1826 1531 1826 1531 1826 1531 1827 1531 1828 1530 1828 1530 1830 1529 1830 1529 1831 1529 1832 1529 1833 1529 1833 1529 M 1701 1531 1701 1532 1701 1533 1701 1533 1700 1535 1700 1535 1699 1535 1699 1535 1699 1535 1699 1535 1698 1533 1699 1533 1698 1532 1698 1532 1698 1532 1700 1531 1700 1531 1701 1531 1701 1531 M 1688 1532 1688 1533 1689 1533 1690 1533 1690 1533 1690 1533 1689 1534 1689 1534 1687 1534 1687 1533 1686 1533 1686 1533 1688 1532 1688 1532 M 1838 1534 1840 1534 1840 1535 1839 1535 1839 1535 1839 1535 1839 1535 1838 1535 1838 1534 1838 1534 1837 1534 1838 1534 1838 1534 1838 1534 1838 1534 M 1697 1534 1697 1534 1698 1535 1698 1536 1698 1536 1698 1536 1697 1536 1697 1536 1696 1535 1696 1535 1697 1534 1697 1534 1697 1534 1697 1534 M 1837 1535 1837 1535 1839 1536 1838 1536 1838 1537 1837 1537 1837 1537 1836 1537 1836 1537 1836 1536 1835 1536 1835 1535 1835 1535 1835 1535 1835 1535 1835 1535 1836 1534 1837 1535 1837 1535 M 1635 1540 1635 1540 1635 1541 1634 1541 1633 1541 1633 1541 1630 1541 1630 1541 1629 1541 1629 1540 1630 1540 1630 1540 1630 1540 1631 1540 1633 1540 1633 1540 1635 1540 1636 1540 1636 1540 1636 1540 1635 1540 M 1844 1542 1844 1542 1843 1543 1844 1544 1844 1544 1845 1544 1845 1544 1846 1544 1846 1544 1847 1544 1847 1545 1846 1545 1846 1545 1846 1545 1846 1546 1845 1545 1845 1545 1842 1544 1840 1544 1840 1544 1839 1544 1838 1544 1838 1543 1838 1543 1838 1543 1838 1543 1840 1542 1841 1542 1842 1542 1842 1542 1842 1542 1844 1542 1844 1542 M 1847 1543 1848 1543 1848 1543 1848 1543 1849 1543 1850 1543 1850 1542 1850 1543 1850 1544 1850 1544 1849 1544 1849 1544 1849 1544 1848 1543 1846 1543 1847 1542 1847 1543 M 1852 1544 1852 1545 1852 1545 1852 1545 1850 1545 1850 1545 1850 1545 1849 1545 1849 1545 1849 1545 1850 1544 1850 1544 1852 1544 1852 1544 M 1717 1545 1718 1545 1718 1545 1718 1546 1716 1546 1715 1546 1713 1546 1713 1546 1713 1546 1713 1545 1717 1545 1717 1545 1717 1545 1717 1545 M 1650 1549 1651 1549 1652 1549 1652 1549 1650 1550 1650 1550 1650 1550 1650 1550 1648 1550 1645 1550 1645 1549 1644 1549 1644 1549 1643 1549 1640 1547 1639 1547 1639 1547 1639 1547 1638 1547 1638 1547 1638 1546 1638 1546 1639 1545 1639 1545 1640 1545 1643 1545 1643 1545 1644 1546 1645 1546 1648 1547 1650 1547 1650 1548 1650 1548 1650 1549 M 1848 1546 1848 1547 1848 1547 1848 1547 1848 1547 1849 1550 1849 1550 1849 1550 1850 1550 1850 1551 1851 1551 1852 1552 1852 1552 1852 1552 1850 1552 1849 1551 1849 1551 1847 1550 1846 1549 1845 1547 1845 1546 1845 1546 1847 1545 1847 1545 1848 1546 1848 1546 M 1850 1546 1851 1547 1852 1548 1851 1548 1851 1549 1851 1549 1850 1548 1850 1548 1849 1547 1849 1547 1849 1546 1850 1546 1850 1546 1850 1546 M 1838 1547 1838 1548 1838 1548 1839 1549 1839 1549 1839 1550 1839 1550 1839 1550 1839 1550 1838 1550 1838 1550 1838 1549 1838 1549 1836 1548 1836 1548 1836 1547 1837 1547 1838 1547 1838 1547 M 1426 1548 1426 1548 1427 1548 1427 1548 1426 1548 1425 1548 1425 1548 1424 1548 1423 1548 1423 1548 1422 1547 1422 1547 1425 1547 1426 1547 1426 1548 M 1626 1548 1627 1549 1628 1549 1628 1549 1630 1549 1630 1549 1631 1549 1632 1549 1634 1549 1635 1550 1637 1552 1637 1552 1636 1553 1635 1554 1633 1554 1631 1555 1630 1555 1630 1555 1630 1555 1629 1554 1627 1554 1626 1553 1624 1552 1624 1552 1624 1552 1624 1552 1624 1551 1622 1551 1621 1550 1621 1550 1620 1550 1620 1549 1620 1549 1623 1549 1625 1548 1626 1548 1626 1548 M 1562 1557 1563 1557 1565 1557 1566 1557 1567 1557 1567 1557 1567 1558 1566 1560 1566 1561 1566 1561 1564 1562 1562 1563 1561 1563 1560 1563 1559 1564 1559 1564 1559 1565 1558 1565 1557 1565 1557 1565 1556 1566 1555 1566 1555 1566 1555 1566 1554 1567 1554 1567 1553 1567 1553 1568 1549 1569 1548 1569 1547 1569 1547 1569 1547 1569 1546 1569 1545 1568 1545 1568 1544 1568 1544 1568 1544 1568 1543 1568 1542 1569 1541 1569 1541 1569 1540 1569 1539 1570 1538 1570 1538 1570 1538 1570 1538 1569 1538 1568 1537 1567 1537 1567 1536 1567 1536 1567 1535 1566 1535 1566 1534 1565 1534 1565 1535 1565 1536 1564 1536 1564 1537 1563 1538 1563 1540 1561 1541 1561 1540 1561 1541 1559 1543 1558 1543 1558 1544 1557 1546 1558 1546 1558 1547 1559 1547 1559 1548 1559 1548 1559 1549 1559 1549 1559 1550 1559 1552 1558 1552 1558 1553 1558 1553 1557 1554 1557 1555 1557 1555 1557 1556 1557 1557 1557 1557 1557 1558 1557 1558 1557 1559 1557 1559 1557 1561 1557 1561 1556 1561 1556 1562 1557 M 1748 1560 1748 1560 1750 1561 1751 1561 1753 1563 1753 1563 1754 1563 1753 1563 1752 1563 1751 1564 1751 1564 1750 1564 1749 1564 1749 1564 1746 1563 1745 1563 1745 1563 1745 1563 1744 1563 1744 1562 1743 1561 1743 1560 1742 1559 1741 1559 1740 1559 1740 1559 1739 1559 1739 1560 1738 1559 1738 1559 1737 1558 1737 1558 1738 1558 1740 1558 1744 1559 1745 1559 1746 1559 1746 1559 1748 1560 M 1685 1560 1685 1560 1687 1561 1687 1561 1688 1561 1688 1561 1688 1561 1689 1561 1690 1561 1690 1561 1691 1561 1691 1561 1693 1562 1694 1562 1694 1563 1693 1563 1691 1563 1691 1563 1690 1563 1690 1563 1688 1562 1684 1562 1684 1562 1684 1561 1683 1561 1683 1561 1683 1561 1684 1560 1685 1560 1685 1560 M 1839 1563 1839 1563 1839 1563 1839 1563 1837 1564 1837 1564 1837 1564 1835 1564 1835 1564 1835 1564 1836 1563 1837 1563 1837 1563 1838 1563 1839 1563 1839 1563 M 1629 1563 1629 1563 1631 1563 1632 1563 1632 1563 1632 1563 1632 1564 1631 1564 1631 1564 1631 1564 1631 1564 1628 1563 1627 1563 1627 1563 1628 1563 1629 1563 1629 1563 M 1847 1564 1847 1564 1846 1565 1845 1566 1844 1566 1843 1566 1842 1566 1840 1566 1839 1566 1838 1566 1838 1565 1838 1565 1837 1565 1839 1563 1840 1563 1840 1563 1841 1563 1841 1563 1841 1563 1842 1564 1844 1564 1844 1563 1847 1564 1847 1564 M 1605 1575 1604 1576 1604 1576 1603 1576 1604 1577 1603 1578 1603 1578 1601 1579 1601 1579 1600 1579 1600 1579 1599 1578 1598 1577 1596 1576 1595 1576 1595 1576 1594 1576 1593 1575 1593 1573 1593 1572 1593 1570 1594 1569 1594 1569 1597 1566 1598 1566 1598 1566 1599 1566 1600 1566 1602 1566 1604 1566 1604 1566 1604 1566 1605 1566 1606 1566 1606 1566 1606 1567 1608 1568 1608 1568 1609 1568 1609 1570 1608 1572 1608 1572 1607 1573 1606 1574 1605 1575 1605 1575 M 1403 1566 1402 1567 1401 1567 1400 1567 1400 1567 1400 1566 1400 1566 1400 1566 1401 1566 1403 1566 1403 1566 1403 1566 M 1836 1573 1836 1574 1837 1574 1839 1575 1840 1576 1839 1576 1839 1576 1839 1577 1838 1577 1838 1577 1838 1577 1838 1577 1834 1576 1833 1575 1833 1574 1833 1574 1833 1574 1833 1574 1834 1573 1834 1573 1834 1573 1836 1573 1836 1573 M 1388 1575 1388 1574 1387 1574 1387 1574 1387 1574 1386 1574 1386 1574 1386 1574 1386 1574 1388 1573 1389 1573 1390 1574 1390 1575 1389 1575 1388 1575 1388 1575 M 1825 1575 1826 1576 1825 1576 1824 1576 1824 1576 1823 1576 1822 1576 1822 1576 1822 1576 1824 1574 1824 1574 1824 1574 1825 1574 1825 1575 1825 1575 M 1842 1579 1842 1579 1841 1579 1841 1580 1841 1580 1842 1580 1842 1580 1842 1581 1842 1581 1841 1581 1840 1583 1839 1583 1839 1583 1837 1583 1837 1582 1834 1581 1834 1581 1834 1580 1832 1580 1832 1580 1831 1580 1831 1580 1829 1579 1829 1579 1829 1578 1829 1578 1829 1578 1829 1578 1830 1578 1830 1578 1831 1577 1833 1577 1834 1577 1836 1577 1836 1577 1837 1577 1837 1577 1841 1578 1841 1578 1842 1579 1842 1579 M 1626 1591 1625 1592 1623 1592 1619 1593 1619 1593 1618 1593 1618 1593 1618 1593 1619 1592 1620 1592 1623 1591 1626 1591 1626 1591 1626 1591 M 1790 1595 1791 1596 1792 1597 1792 1597 1792 1597 1792 1597 1792 1597 1792 1597 1792 1597 1792 1598 1791 1598 1791 1598 1791 1599 1791 1599 1790 1599 1789 1599 1786 1600 1786 1600 1786 1600 1785 1600 1784 1601 1783 1601 1783 1601 1783 1600 1783 1600 1783 1600 1783 1600 1783 1599 1783 1599 1784 1598 1786 1596 1787 1595 1787 1595 1787 1595 1788 1595 1788 1595 1789 1595 1790 1595 1790 1595 M 1846 1598 1845 1598 1845 1598 1845 1599 1844 1599 1844 1599 1844 1599 1844 1599 1843 1599 1843 1598 1842 1598 1842 1598 1842 1598 1841 1598 1841 1598 1840 1598 1840 1598 1840 1597 1839 1597 1839 1597 1839 1597 1839 1596 1840 1596 1843 1596 1843 1597 1846 1598 1846 1598 1846 1598 M 1598 1606 1599 1607 1599 1607 1598 1607 1597 1608 1596 1608 1595 1608 1594 1608 1595 1607 1595 1607 1596 1607 1597 1606 1598 1606 1598 1606 M 1852 1607 1852 1607 1852 1608 1852 1608 1853 1608 1853 1608 1853 1609 1853 1609 1851 1609 1851 1609 1850 1609 1850 1609 1850 1608 1850 1608 1851 1607 1851 1606 1852 1606 1852 1606 1852 1607 M 1594 1609 1594 1610 1594 1610 1594 1610 1593 1610 1593 1610 1593 1610 1592 1610 1592 1610 1592 1610 1593 1609 1594 1609 1594 1609 1594 1609 1595 1609 1595 1609 1594 1609 M 1770 1618 1770 1619 1770 1619 1770 1619 1770 1620 1769 1621 1768 1621 1768 1621 1767 1621 1767 1621 1768 1620 1768 1619 1767 1618 1767 1618 1768 1618 1770 1618 1770 1618 1770 1618 M 1887 1638 1887 1639 1887 1639 1886 1639 1885 1640 1883 1639 1883 1639 1883 1639 1883 1639 1883 1639 1884 1638 1884 1638 1885 1638 1885 1638 1885 1638 1886 1638 1886 1638 1887 1638 M 1890 1640 1890 1640 1890 1640 1890 1641 1889 1641 1888 1641 1886 1640 1886 1640 1886 1640 1887 1639 1887 1639 1888 1639 1888 1639 1889 1639 1890 1639 1890 1640 1890 1640 M 1602 1643 1602 1643 1602 1643 1602 1644 1602 1644 1602 1644 1602 1644 1600 1645 1600 1645 1600 1643 1600 1643 1601 1643 1601 1642 1601 1642 1602 1642 1602 1643 1602 1643 M 1886 1645 1886 1645 1885 1645 1885 1644 1884 1644 1884 1644 1884 1643 1885 1643 1885 1643 1886 1643 1887 1643 1887 1643 1887 1643 1888 1643 1888 1643 1888 1644 1888 1644 1887 1645 1887 1645 1886 1645 M 1890 1644 1891 1644 1891 1645 1891 1646 1890 1646 1890 1646 1887 1646 1887 1645 1887 1645 1886 1645 1886 1645 1888 1645 1888 1644 1889 1644 1889 1644 1890 1644 1890 1644 M 1890 1646 1890 1646 1891 1647 1891 1647 1891 1647 1891 1647 1891 1647 1890 1647 1889 1647 1889 1647 1888 1647 1888 1647 1889 1646 1889 1646 1889 1646 1890 1646 M 1895 1654 1894 1654 1895 1654 1895 1654 1895 1654 1895 1655 1895 1655 1894 1655 1893 1655 1892 1656 1891 1656 1891 1656 1891 1656 1892 1656 1892 1656 1892 1656 1892 1656 1893 1655 1893 1655 1894 1656 1895 1656 1895 1656 1895 1657 1895 1657 1895 1657 1895 1658 1894 1658 1894 1658 1894 1658 1893 1658 1892 1657 1892 1657 1891 1657 1891 1657 1890 1656 1891 1656 1891 1655 1891 1654 1891 1654 1892 1654 1892 1653 1892 1653 1893 1653 1893 1653 1893 1653 1894 1653 1894 1653 1894 1653 1895 1653 1895 1653 1895 1653 1895 1654 M 1601 1653 1601 1654 1602 1655 1602 1655 1601 1656 1601 1656 1601 1655 1601 1655 1601 1654 1600 1654 1600 1654 1599 1654 1599 1654 1600 1653 1600 1653 1601 1653 1601 1653 M 1600 1654 1600 1654 1600 1655 1600 1655 1600 1655 1599 1656 1599 1656 1599 1656 1598 1656 1598 1656 1598 1655 1598 1655 1598 1655 1599 1654 1599 1654 1600 1654 M 1605 1656 1606 1657 1606 1657 1605 1658 1604 1658 1604 1658 1604 1656 1604 1655 1604 1655 1604 1655 1605 1656 1605 1656 M 1897 1659 1897 1659 1897 1658 1897 1658 1898 1657 1898 1657 1899 1657 1899 1657 1900 1658 1899 1658 1898 1659 1897 1659 M 1610 1669 1610 1670 1611 1668 1611 1667 1612 1666 1613 1665 1613 1665 1613 1664 1613 1664 1614 1663 1614 1663 1614 1663 1614 1662 1614 1662 1613 1662 1613 1662 1612 1663 1612 1663 1612 1664 1612 1664 1612 1665 1612 1665 1610 1669 1609 1669 1609 1670 1609 1670 1609 1670 1609 1670 1610 1669 1610 1667 1611 1666 1611 1666 1611 1665 1611 1665 1611 1664 1611 1664 1610 1664 1610 1665 1609 1666 1609 1666 1609 1666 1609 1667 1609 1667 1608 1667 1608 1667 1608 1668 1607 1668 1606 1670 1606 1670 1605 1670 1605 1670 1605 1670 1604 1670 1604 1670 1604 1670 1601 1671 1601 1671 1604 1668 1605 1667 1606 1666 1606 1666 1606 1666 1605 1666 1605 1666 1605 1666 1605 1666 1604 1666 1604 1666 1604 1667 1603 1667 1600 1670 1600 1670 1600 1670 1599 1670 1599 1670 1599 1671 1597 1670 1598 1669 1601 1666 1603 1665 1603 1665 1604 1664 1605 1663 1605 1663 1605 1663 1605 1662 1605 1662 1606 1661 1606 1660 1606 1660 1606 1660 1606 1659 1606 1659 1606 1659 1607 1660 1606 1661 1606 1662 1606 1663 1605 1665 1605 1665 1606 1665 1606 1665 1606 1665 1607 1665 1608 1661 1608 1661 1608 1661 1609 1660 1609 1660 1609 1659 1611 1659 1611 1659 1611 1660 1611 1660 1611 1660 1612 1661 1612 1661 1612 1661 1612 1661 1613 1661 1613 1661 1613 1661 1613 1661 1614 1661 1614 1661 1614 1661 1614 1662 1614 1662 1614 1663 1614 1664 1614 1664 1613 1665 1612 1666 1612 1666 1612 1667 1612 1667 1611 1668 1610 1669 M 1892 1659 1892 1659 1893 1659 1894 1659 1898 1660 1898 1661 1898 1661 1898 1661 1897 1661 1897 1661 1892 1661 1891 1661 1891 1661 1891 1660 1892 1660 1892 1660 1893 1660 1894 1660 1894 1660 1893 1660 1893 1660 1892 1660 1891 1660 1891 1660 1891 1659 1891 1659 1891 1659 1892 1659 1892 1659 M 1596 1665 1596 1665 1596 1665 1596 1664 1596 1663 1597 1663 1597 1663 1599 1662 1600 1662 1601 1662 1602 1662 1602 1662 1602 1662 1603 1662 1603 1662 1603 1661 1604 1661 1604 1661 1604 1661 1604 1660 1604 1660 1604 1660 1603 1662 1603 1662 1603 1662 1603 1663 1603 1663 1602 1663 1602 1663 1602 1663 1599 1664 1598 1665 1597 1665 1597 1665 1596 1665 M 1614 1666 1614 1666 1614 1666 1615 1665 1615 1665 1615 1665 1616 1664 1616 1664 1616 1664 1616 1663 1616 1663 1616 1662 1617 1661 1617 1661 1617 1661 1618 1661 1619 1661 1619 1663 1619 1664 1619 1664 1618 1665 1618 1665 1616 1666 1614 1666 M 1892 1662 1893 1662 1893 1662 1893 1662 1894 1662 1894 1663 1894 1663 1893 1663 1892 1663 1891 1663 1891 1663 1890 1662 1889 1662 1888 1661 1890 1662 1891 1662 1892 1662 M 1899 1665 1900 1666 1900 1666 1902 1667 1902 1668 1900 1668 1899 1668 1898 1668 1898 1668 1898 1668 1897 1667 1897 1667 1897 1667 1897 1667 1897 1666 1899 1665 M 1613 1667 1614 1667 1614 1667 1614 1668 1612 1670 1612 1671 1612 1671 1611 1671 1611 1671 1611 1671 1611 1671 1612 1671 1613 1669 1613 1668 1613 1668 1613 1667 M 1905 1669 1906 1669 1905 1670 1905 1670 1905 1670 1904 1670 1903 1670 1903 1670 1903 1670 1902 1670 1903 1669 1903 1669 1905 1669 1905 1669 M 796 1684 796 1684 796 1684 796 1685 796 1685 796 1685 794 1687 792 1688 792 1688 792 1688 791 1687 791 1687 792 1686 792 1686 793 1686 794 1685 795 1685 795 1684 795 1684 795 1684 796 1684 796 1684 796 1684 M 1612 1685 1612 1686 1611 1686 1609 1686 1605 1687 1603 1687 1601 1688 1601 1688 1601 1687 1602 1687 1602 1687 1602 1687 1603 1686 1606 1686 1606 1686 1606 1686 1608 1686 1611 1685 1612 1685 1613 1685 1613 1685 1613 1685 1612 1685 M 1950 1685 1949 1686 1949 1687 1949 1687 1949 1687 1949 1687 1950 1687 1951 1687 1951 1687 1951 1687 1948 1688 1948 1688 1947 1688 1946 1688 1946 1688 1946 1688 1946 1687 1946 1687 1945 1687 1945 1686 1945 1686 1945 1686 1948 1686 1949 1685 1950 1685 1950 1685 M 791 1687 791 1687 792 1688 792 1688 792 1688 791 1689 791 1689 790 1689 790 1689 789 1689 789 1688 789 1688 791 1687 791 1687 791 1687 M 787 1690 787 1690 787 1691 787 1691 786 1691 786 1691 785 1692 784 1693 783 1693 783 1693 783 1692 783 1692 783 1691 784 1690 784 1690 787 1690 787 1690 M 768 1710 767 1712 767 1712 766 1712 765 1712 764 1712 763 1712 762 1713 763 1713 763 1713 763 1713 765 1713 764 1713 764 1713 760 1714 759 1714 759 1713 758 1713 758 1713 757 1712 757 1712 756 1712 756 1712 756 1711 757 1711 758 1711 758 1711 756 1711 755 1711 755 1711 755 1710 758 1711 760 1711 760 1711 758 1709 758 1709 755 1709 753 1709 751 1707 751 1707 751 1706 752 1706 752 1707 753 1706 752 1706 752 1706 751 1705 751 1705 751 1705 751 1704 750 1704 749 1703 748 1702 748 1701 749 1701 749 1701 750 1699 750 1699 749 1698 750 1697 750 1697 752 1697 752 1698 754 1698 754 1698 755 1698 755 1698 755 1698 756 1698 758 1698 758 1699 758 1699 758 1700 757 1700 757 1700 756 1700 756 1701 756 1701 758 1700 758 1700 758 1700 760 1698 762 1698 763 1699 763 1699 764 1700 765 1702 765 1702 763 1704 759 1705 759 1705 758 1705 758 1705 757 1705 757 1705 756 1705 759 1706 760 1706 762 1705 762 1705 763 1705 764 1705 764 1703 765 1702 765 1701 765 1700 766 1700 766 1700 767 1700 769 1699 770 1699 771 1698 771 1698 771 1698 772 1698 772 1699 772 1699 772 1700 771 1701 771 1701 771 1701 770 1702 769 1703 769 1703 769 1703 768 1706 768 1708 768 1710 768 1710 M 793 1699 794 1699 794 1700 795 1700 795 1701 795 1701 795 1701 793 1703 793 1703 792 1703 791 1702 791 1702 792 1701 792 1701 793 1701 793 1701 793 1701 793 1700 793 1700 792 1700 792 1700 791 1701 791 1701 791 1701 791 1701 791 1701 790 1701 790 1701 790 1701 789 1701 789 1701 789 1701 789 1701 788 1701 788 1701 787 1701 788 1702 788 1702 788 1702 789 1702 789 1702 789 1702 789 1703 788 1703 787 1702 787 1702 787 1701 787 1701 788 1700 789 1700 790 1699 792 1698 793 1699 793 1699 M 806 1713 803 1711 802 1710 801 1710 801 1709 801 1708 801 1708 801 1707 801 1707 800 1707 800 1706 800 1706 800 1706 799 1707 799 1707 798 1707 798 1707 798 1707 798 1706 798 1706 798 1706 799 1706 799 1706 800 1706 799 1706 799 1706 799 1705 798 1706 797 1705 796 1704 794 1703 794 1702 794 1702 795 1702 795 1701 796 1701 797 1702 799 1703 801 1704 805 1707 806 1708 808 1709 808 1710 807 1710 807 1711 807 1712 806 1713 806 1713 M 794 1703 794 1703 795 1703 795 1703 797 1705 797 1707 797 1707 796 1707 795 1707 793 1706 793 1706 792 1705 792 1705 792 1705 794 1703 794 1703 794 1703 M 817 1705 817 1705 815 1707 815 1707 813 1708 813 1708 813 1708 813 1708 813 1709 813 1709 812 1710 812 1706 812 1706 812 1706 812 1706 812 1706 814 1705 814 1705 814 1705 815 1705 817 1705 817 1705 817 1705 817 1705 M 792 1706 793 1706 794 1707 795 1707 796 1708 799 1709 800 1709 800 1709 800 1709 800 1710 803 1713 803 1713 803 1713 803 1713 802 1713 801 1714 800 1713 800 1713 797 1711 797 1711 796 1710 795 1710 795 1710 794 1710 794 1710 794 1710 794 1710 792 1708 790 1707 790 1707 790 1706 790 1706 791 1706 791 1706 792 1706 792 1706 M 815 1708 815 1708 815 1708 815 1708 815 1708 815 1709 816 1709 816 1710 816 1711 816 1711 816 1711 813 1711 813 1711 812 1711 812 1710 812 1710 812 1710 813 1709 814 1709 814 1708 814 1708 814 1708 814 1707 815 1707 815 1707 815 1708 M 1982 1708 1983 1708 1984 1708 1984 1708 1985 1709 1985 1709 1984 1710 1984 1710 1981 1709 1981 1709 1981 1709 1981 1708 1981 1708 1982 1708 1982 1708 1982 1708 M 1598 1710 1599 1711 1599 1711 1598 1712 1598 1712 1597 1712 1597 1712 1596 1711 1596 1710 1596 1710 1597 1710 1598 1710 1598 1710 1598 1710 M 811 1711 811 1711 811 1711 812 1711 812 1711 812 1712 812 1714 812 1714 812 1714 810 1714 810 1714 810 1714 809 1714 809 1714 809 1714 809 1713 809 1713 810 1711 811 1711 811 1711 811 1711 M 821 1721 821 1721 821 1722 821 1722 821 1722 819 1722 819 1720 819 1718 820 1718 820 1718 820 1717 820 1717 820 1717 820 1716 820 1717 819 1719 818 1719 818 1720 818 1720 818 1721 818 1721 818 1721 817 1722 816 1722 815 1721 814 1720 814 1720 813 1720 813 1719 813 1719 813 1719 813 1719 813 1718 813 1718 813 1718 813 1718 813 1718 814 1717 815 1716 817 1716 817 1716 817 1715 817 1715 816 1715 815 1714 814 1714 814 1714 815 1714 815 1714 815 1714 815 1714 816 1715 817 1715 814 1717 813 1718 813 1718 813 1717 812 1717 812 1717 812 1717 812 1717 812 1716 812 1716 812 1715 812 1715 812 1715 813 1715 813 1715 813 1715 813 1714 813 1714 814 1712 814 1712 814 1712 813 1712 813 1712 813 1711 813 1711 814 1711 814 1711 814 1711 816 1711 817 1712 817 1712 817 1712 817 1712 818 1713 819 1713 820 1713 820 1713 820 1713 820 1713 821 1713 821 1714 821 1714 822 1716 822 1716 822 1717 822 1717 822 1717 822 1717 822 1718 822 1718 821 1721 821 1721 M 778 1730 778 1730 777 1729 776 1729 776 1728 774 1727 773 1726 773 1726 774 1726 774 1725 772 1724 771 1724 770 1724 768 1723 766 1721 765 1720 766 1720 767 1720 767 1720 768 1720 768 1720 768 1720 767 1719 766 1719 766 1719 765 1720 763 1719 762 1718 761 1717 762 1717 763 1717 764 1717 764 1717 765 1716 762 1715 762 1715 760 1715 759 1715 759 1715 758 1715 758 1714 758 1714 759 1714 759 1714 760 1714 761 1714 763 1714 766 1713 766 1713 767 1713 768 1712 770 1712 770 1713 773 1715 773 1715 773 1715 771 1715 770 1715 770 1715 768 1715 767 1715 768 1716 768 1716 769 1715 770 1715 772 1716 773 1716 773 1716 773 1717 773 1717 772 1718 772 1718 770 1718 769 1718 769 1718 769 1717 768 1717 768 1717 767 1718 767 1718 768 1718 769 1718 770 1721 771 1721 772 1722 772 1723 774 1723 775 1724 776 1725 776 1725 776 1726 777 1726 777 1725 778 1725 778 1725 779 1725 779 1726 778 1726 778 1727 777 1727 777 1727 778 1727 779 1727 780 1727 780 1727 781 1727 782 1728 782 1729 782 1729 781 1729 780 1730 778 1730 M 1580 1713 1581 1714 1582 1714 1584 1716 1585 1717 1587 1720 1587 1720 1586 1721 1585 1721 1585 1721 1584 1720 1583 1720 1583 1720 1583 1720 1581 1720 1581 1720 1579 1719 1578 1719 1577 1719 1577 1719 1575 1718 1575 1718 1572 1718 1571 1717 1569 1717 1568 1717 1568 1717 1567 1717 1566 1717 1566 1716 1564 1716 1564 1715 1566 1714 1567 1713 1567 1713 1568 1713 1568 1713 1570 1713 1573 1713 1575 1712 1577 1712 1579 1713 1580 1713 M 807 1713 808 1714 809 1715 810 1716 810 1716 810 1717 809 1716 808 1716 808 1715 808 1715 807 1714 806 1714 806 1714 806 1714 806 1714 806 1713 806 1713 806 1713 807 1713 807 1713 807 1713 M 1599 1713 1599 1713 1600 1713 1600 1714 1601 1714 1601 1714 1600 1715 1599 1715 1598 1715 1598 1715 1598 1714 1598 1714 1598 1714 1599 1713 1599 1713 1599 1713 1599 1713 M 823 1718 823 1718 823 1718 823 1719 823 1719 823 1722 822 1722 822 1721 822 1721 822 1720 822 1720 822 1718 822 1718 823 1718 M 811 1719 811 1719 813 1720 814 1721 815 1722 816 1722 816 1724 816 1724 816 1724 815 1724 815 1725 815 1725 813 1723 811 1722 810 1721 810 1720 810 1720 810 1719 810 1719 811 1719 811 1719 M 828 1719 828 1719 828 1720 827 1721 827 1722 826 1722 826 1722 826 1722 826 1721 825 1720 825 1720 826 1719 827 1719 828 1719 828 1719 M 825 1719 825 1720 825 1720 825 1722 826 1724 826 1725 826 1725 825 1726 824 1726 824 1726 824 1726 824 1726 823 1726 823 1726 824 1723 823 1722 824 1720 824 1719 825 1719 M 775 1720 775 1721 776 1721 776 1721 775 1722 775 1722 773 1723 773 1723 773 1722 773 1722 771 1721 772 1720 772 1720 775 1720 775 1720 775 1720 M 822 1722 822 1722 822 1722 822 1722 823 1723 823 1724 823 1724 823 1724 823 1724 823 1724 823 1725 823 1725 823 1725 823 1725 822 1725 821 1725 820 1724 818 1724 818 1724 818 1724 818 1723 819 1723 819 1722 821 1722 821 1722 822 1722 M 821 1725 821 1726 821 1726 821 1727 821 1727 820 1728 819 1727 819 1726 818 1725 818 1725 819 1724 820 1724 820 1724 820 1724 821 1725 821 1725 M 837 1730 836 1730 836 1731 835 1731 835 1731 835 1731 835 1732 835 1732 835 1732 835 1732 833 1733 832 1733 832 1733 832 1732 832 1732 832 1732 832 1731 833 1730 833 1730 833 1729 833 1729 834 1729 834 1728 835 1728 835 1728 836 1728 836 1728 837 1727 838 1727 839 1726 839 1726 840 1726 841 1725 842 1725 843 1725 843 1727 843 1727 843 1727 843 1727 842 1727 842 1727 842 1728 841 1728 841 1728 840 1728 839 1728 837 1729 837 1730 M 829 1725 829 1726 830 1726 830 1727 828 1727 828 1727 827 1727 828 1727 828 1727 829 1725 829 1725 829 1725 829 1725 M 831 1727 831 1727 831 1727 832 1729 832 1729 832 1729 832 1729 830 1729 830 1729 829 1729 829 1729 828 1728 828 1728 829 1727 830 1727 831 1727 831 1727 M 826 1730 826 1730 825 1729 825 1729 825 1728 825 1728 825 1728 825 1728 826 1728 827 1729 826 1730 826 1730 M 828 1729 828 1729 828 1730 828 1730 828 1730 828 1731 827 1732 827 1732 827 1732 827 1732 826 1730 826 1730 827 1729 827 1729 827 1729 828 1729 828 1729 828 1729 828 1729 M 830 1729 830 1729 832 1729 832 1729 832 1730 831 1731 831 1731 830 1731 830 1731 829 1731 829 1730 829 1730 829 1730 829 1730 830 1729 M 781 1730 782 1730 783 1731 783 1732 782 1733 782 1733 782 1733 781 1732 781 1732 781 1732 781 1731 781 1730 781 1730 781 1730 781 1730 781 1730 781 1730 781 1730 M 1608 1730 1609 1731 1609 1731 1609 1731 1608 1732 1607 1733 1607 1733 1606 1733 1606 1733 1605 1733 1604 1733 1604 1733 1603 1733 1603 1733 1603 1732 1603 1732 1603 1732 1604 1732 1604 1732 1604 1732 1604 1732 1605 1732 1607 1731 1607 1731 1607 1730 1608 1730 1608 1730 M 831 1731 831 1731 831 1732 830 1735 830 1736 830 1736 830 1736 829 1736 828 1736 827 1734 827 1733 827 1733 828 1732 828 1731 829 1731 830 1731 831 1731 831 1731 831 1731 831 1731 M 831 1737 831 1737 831 1737 831 1738 831 1738 832 1738 832 1738 832 1738 832 1739 833 1740 833 1741 832 1741 832 1741 832 1741 830 1741 829 1740 828 1738 828 1738 828 1738 828 1737 830 1736 831 1736 831 1737 M 2015 1800 2015 1801 2016 1802 2018 1803 2020 1803 2020 1802 2021 1800 2021 1799 2022 1798 2024 1796 2024 1796 2024 1796 2026 1795 2027 1795 2028 1795 2029 1794 2029 1794 2029 1794 2030 1793 2030 1793 2030 1793 2031 1794 2030 1795 2030 1794 2030 1795 2028 1797 2028 1798 2027 1798 2026 1801 2026 1801 2025 1802 2025 1802 2025 1802 2024 1802 2024 1803 2026 1805 2027 1805 2027 1804 2027 1804 2028 1804 2029 1804 2029 1803 2030 1803 2030 1803 2031 1802 2031 1801 2031 1801 2032 1799 2033 1800 2034 1801 2035 1804 2034 1804 2034 1805 2033 1806 2032 1807 2031 1808 2031 1809 2031 1810 2031 1811 2031 1811 2030 1812 2030 1813 2030 1814 2030 1815 2029 1815 2027 1818 2026 1818 2025 1818 2023 1817 2023 1816 2022 1816 2022 1817 2022 1817 2021 1817 2020 1818 2019 1818 2019 1818 2018 1817 2018 1816 2018 1815 2018 1815 2019 1813 2018 1812 2019 1810 2020 1810 2019 1809 2018 1810 2017 1811 2015 1812 2014 1813 2013 1814 2012 1815 2011 1815 2010 1815 2009 1814 2009 1814 2010 1812 2010 1812 2011 1811 2011 1811 2011 1810 2013 1808 2013 1807 2014 1807 2014 1806 2015 1805 2014 1805 2014 1804 2014 1803 2014 1803 2014 1802 2013 1800 2012 1799 2012 1799 2009 1798 2009 1800 2008 1800 2007 1802 2006 1804 2005 1805 2005 1805 2004 1806 2003 1806 2003 1806 2004 1805 2004 1805 2005 1804 2006 1802 2006 1802 2004 1804 2004 1804 2003 1805 2003 1805 2003 1805 2003 1806 2001 1806 2001 1806 1999 1806 2000 1806 2000 1805 1999 1806 1997 1807 1996 1808 1996 1809 1995 1810 1995 1811 1994 1812 1993 1812 1993 1813 1992 1813 1991 1814 1990 1814 1989 1814 1986 1814 1986 1814 1984 1814 1983 1814 1982 1814 1982 1813 1981 1813 1981 1813 1981 1812 1981 1812 1982 1811 1983 1811 1984 1810 1985 1810 1985 1810 1986 1810 1987 1810 1989 1810 1991 1808 1992 1807 1992 1807 1992 1805 1993 1805 1994 1804 1995 1804 1995 1804 1996 1804 1997 1804 1999 1803 1999 1803 1999 1802 1999 1802 1997 1802 1996 1802 1996 1801 1997 1800 1997 1799 1996 1800 1996 1801 1994 1802 1992 1801 1991 1801 1991 1800 1990 1800 1989 1802 1989 1802 1990 1802 1990 1802 1990 1802 1990 1804 1990 1804 1990 1804 1989 1805 1988 1805 1988 1805 1987 1805 1987 1804 1986 1804 1984 1804 1982 1805 1983 1804 1984 1803 1985 1802 1984 1803 1983 1803 1982 1803 1981 1804 1979 1804 1978 1804 1979 1804 1980 1803 1981 1803 1982 1803 1986 1801 1986 1801 1985 1801 1984 1801 1984 1802 1984 1802 1983 1802 1983 1802 1982 1801 1982 1801 1982 1801 1983 1800 1983 1800 1984 1799 1984 1799 1985 1797 1984 1797 1983 1798 1983 1798 1983 1799 1982 1799 1980 1801 1979 1800 1980 1799 1979 1800 1978 1801 1978 1802 1978 1802 1975 1802 1974 1802 1973 1802 1972 1802 1971 1802 1970 1802 1968 1803 1967 1803 1966 1803 1966 1803 1965 1803 1964 1802 1963 1803 1963 1803 1962 1803 1962 1803 1961 1802 1956 1802 1954 1802 1952 1802 1950 1801 1948 1801 1943 1801 1938 1802 1936 1802 1935 1802 1934 1802 1934 1802 1931 1803 1931 1803 1931 1803 1930 1803 1928 1802 1928 1801 1928 1800 1927 1799 1927 1798 1926 1798 1926 1797 1927 1797 1928 1797 1928 1796 1928 1796 1929 1796 1929 1795 1931 1794 1932 1794 1932 1794 1933 1793 1937 1791 1938 1791 1938 1790 1939 1789 1940 1789 1941 1789 1940 1789 1940 1789 1939 1789 1941 1789 1941 1789 1942 1788 1942 1788 1940 1787 1938 1787 1937 1787 1936 1787 1936 1787 1935 1788 1934 1788 1933 1788 1933 1788 1932 1788 1931 1788 1931 1788 1930 1788 1930 1788 1929 1788 1929 1787 1929 1787 1930 1786 1931 1786 1932 1786 1932 1786 1934 1785 1935 1784 1936 1784 1936 1783 1936 1784 1935 1784 1935 1785 1934 1785 1934 1785 1934 1785 1933 1786 1933 1786 1934 1787 1937 1787 1937 1787 1938 1786 1938 1786 1938 1785 1938 1784 1939 1783 1940 1782 1941 1781 1941 1780 1942 1778 1943 1777 1943 1778 1943 1779 1944 1779 1945 1779 1946 1779 1946 1779 1947 1780 1948 1780 1949 1780 1949 1781 1950 1781 1950 1780 1950 1780 1949 1780 1948 1780 1948 1780 1947 1779 1946 1779 1946 1778 1947 1778 1947 1778 1948 1778 1950 1778 1951 1777 1950 1777 1950 1778 1948 1778 1947 1777 1948 1777 1948 1777 1949 1777 1950 1776 1949 1776 1948 1776 1948 1776 1945 1776 1945 1775 1945 1775 1945 1774 1946 1773 1946 1772 1948 1771 1948 1771 1949 1771 1949 1771 1950 1771 1951 1772 1953 1773 1953 1772 1952 1772 1951 1771 1950 1770 1949 1769 1950 1768 1950 1768 1951 1766 1954 1763 1954 1762 1956 1759 1956 1758 1956 1758 1957 1757 1957 1756 1959 1754 1959 1754 1960 1754 1960 1754 1961 1754 1961 1754 1962 1754 1962 1754 1962 1754 1960 1754 1959 1753 1959 1753 1961 1752 1962 1752 1963 1751 1963 1751 1965 1750 1966 1749 1966 1747 1966 1747 1965 1747 1966 1747 1966 1747 1968 1745 1968 1745 1968 1744 1969 1743 1970 1742 1971 1742 1972 1741 1973 1741 1976 1740 1979 1740 1980 1739 1981 1738 1981 1738 1982 1738 1983 1738 1983 1738 1982 1739 1982 1740 1985 1740 1986 1740 1986 1740 1985 1739 1985 1739 1986 1738 1986 1739 1987 1739 1988 1739 1988 1738 1989 1738 1990 1739 1989 1741 1989 1742 1988 1742 1987 1743 1985 1743 1983 1742 1980 1742 1979 1742 1979 1743 1980 1744 1980 1745 1981 1745 1981 1745 1983 1744 1984 1744 1985 1745 1985 1746 1985 1747 1984 1747 1984 1747 1984 1748 1983 1749 1981 1751 1979 1752 1979 1752 1978 1752 1979 1750 1979 1750 1978 1750 1978 1750 1978 1753 1978 1753 1978 1754 1976 1756 1975 1757 1974 1758 1973 1760 1972 1761 1972 1761 1970 1762 1969 1764 1968 1764 1968 1765 1969 1765 1968 1766 1967 1767 1967 1767 1966 1768 1967 1768 1968 1768 1968 1769 1968 1770 1967 1771 1967 1771 1967 1771 1968 1770 1968 1770 1969 1769 1969 1769 1969 1769 1970 1768 1971 1767 1972 1766 1973 1766 1974 1766 1974 1765 1974 1765 1975 1763 1977 1762 1977 1762 1978 1762 1979 1761 1979 1762 1980 1763 1982 1763 1982 1763 1982 1763 1983 1764 1983 1764 1985 1765 1987 1764 1988 1764 1988 1764 1989 1764 1989 1765 1989 1765 1989 1765 1988 1765 1986 1766 1983 1767 1981 1768 1979 1770 1979 1770 1980 1769 1981 1769 1982 1768 1983 1769 1982 1771 1982 1771 1981 1771 1980 1772 1979 1772 1979 1773 1979 1773 1980 1772 1981 1772 1981 1772 1982 1772 1983 1772 1983 1771 1984 1772 1985 1772 1986 1774 1986 1774 1986 1773 1987 1772 1988 1772 1988 1772 1987 1773 1987 1774 1988 1774 1988 1774 1988 1773 1989 1773 1990 1772 1991 1772 1991 1772 1991 1773 1991 1774 1991 1774 1991 1775 1992 1774 1992 1773 1992 1772 1992 1771 1992 1771 1994 1771 1995 1772 1995 1772 1993 1776 1992 1776 1991 1776 1991 1777 1991 1777 1992 1778 1991 1778 1990 1779 1991 1779 1992 1778 1992 1777 1994 1776 1995 1775 1995 1774 1996 1775 1997 1775 1999 1776 2000 1775 2002 1774 2002 1773 2002 1773 2003 1772 2004 1771 2005 1771 2006 1772 2005 1773 2005 1774 2005 1776 2006 1775 2006 1774 2006 1774 2007 1773 2007 1773 2009 1774 2010 1774 2010 1774 2010 1773 2010 1773 2012 1772 2014 1773 2016 1774 2018 1774 2020 1775 2021 1776 2019 1779 2018 1779 2017 1779 2016 1780 2016 1780 2017 1780 2016 1780 2016 1780 2015 1781 2013 1782 2012 1783 2011 1783 2014 1782 2014 1782 2014 1782 2015 1783 2016 1783 2015 1784 2015 1784 2014 1784 2014 1784 2013 1785 2014 1786 2014 1786 2015 1786 2016 1785 2015 1785 2015 1785 2014 1785 2014 1785 2015 1785 2016 1784 2019 1785 2018 1786 2018 1786 2017 1786 2016 1786 2014 1787 2013 1787 2014 1787 2014 1787 2016 1787 2017 1787 2017 1788 2016 1788 2018 1787 2018 1787 2019 1787 2019 1788 2020 1788 2019 1789 2019 1789 2020 1789 2021 1788 2021 1787 2022 1786 2023 1786 2024 1786 2025 1787 2026 1786 2027 1785 2028 1785 2029 1786 2029 1787 2028 1789 2027 1789 2027 1789 2025 1790 2024 1790 2023 1790 2022 1791 2018 1793 2018 1793 2018 1793 2017 1793 2014 1792 2014 1792 2013 1793 2014 1794 2015 1795 2016 1795 2016 1795 2017 1795 2017 1795 2017 1795 2016 1795 2016 1795 2015 1795 2014 1795 2014 1795 2016 1796 2017 1796 2018 1795 2018 1795 2019 1795 2019 1796 2017 1798 2017 1799 2016 1799 2015 1799 2015 1799 2015 1800 M 901 1791 901 1791 899 1790 898 1790 897 1790 896 1790 895 1790 890 1788 888 1788 885 1787 883 1787 883 1786 882 1786 882 1786 881 1785 880 1785 878 1785 877 1784 877 1784 876 1783 878 1781 880 1780 881 1780 882 1778 882 1776 882 1776 881 1776 881 1777 881 1777 881 1778 880 1779 880 1780 879 1780 879 1780 877 1780 876 1780 875 1781 875 1781 873 1780 871 1781 870 1781 866 1779 866 1778 867 1778 867 1778 868 1777 869 1777 868 1777 867 1777 866 1777 866 1776 866 1775 865 1775 863 1776 862 1776 862 1775 863 1775 863 1775 864 1773 863 1774 863 1774 863 1774 862 1775 862 1775 861 1774 861 1774 861 1773 859 1773 858 1774 857 1773 855 1773 855 1774 854 1774 853 1773 853 1771 855 1770 856 1770 856 1770 857 1770 858 1770 859 1770 860 1769 861 1769 861 1769 859 1769 859 1769 858 1769 857 1770 856 1769 853 1769 852 1767 852 1766 850 1765 849 1766 849 1766 847 1766 847 1766 845 1766 844 1766 843 1765 843 1764 844 1764 844 1763 844 1763 844 1763 844 1762 842 1762 842 1763 841 1763 840 1763 840 1763 839 1763 839 1762 838 1762 836 1762 834 1763 832 1762 832 1762 833 1762 833 1761 834 1760 834 1759 833 1759 832 1759 832 1759 831 1759 831 1758 832 1757 834 1756 835 1756 837 1756 838 1757 839 1757 839 1758 839 1758 839 1758 839 1757 838 1756 838 1756 837 1756 838 1755 839 1755 839 1755 840 1755 837 1754 835 1754 833 1754 833 1754 834 1755 834 1755 835 1755 836 1755 836 1755 837 1755 837 1755 830 1757 828 1756 827 1755 825 1754 825 1753 824 1752 824 1752 825 1751 829 1750 830 1750 832 1750 832 1750 833 1750 836 1751 838 1752 839 1752 839 1752 841 1753 843 1754 847 1755 849 1755 850 1755 851 1755 852 1756 853 1756 855 1756 856 1756 857 1756 857 1756 859 1756 860 1757 861 1757 862 1757 862 1757 863 1758 863 1758 865 1758 869 1758 870 1758 871 1759 872 1759 872 1759 872 1760 872 1760 872 1761 873 1762 873 1762 874 1763 875 1764 875 1764 876 1765 877 1766 879 1767 880 1768 880 1769 880 1770 881 1771 881 1772 882 1772 885 1774 886 1774 886 1774 890 1775 892 1776 895 1776 897 1778 898 1779 898 1780 899 1781 901 1782 901 1783 901 1784 902 1786 903 1786 903 1785 904 1785 905 1787 906 1788 906 1789 906 1789 905 1789 905 1789 904 1789 903 1789 902 1790 902 1790 902 1791 901 1791 M 850 1752 850 1752 849 1751 849 1751 848 1751 848 1751 852 1750 852 1750 853 1751 853 1751 851 1752 850 1752 M 858 1751 858 1751 859 1751 859 1751 860 1752 858 1753 858 1753 858 1753 855 1754 853 1754 853 1754 853 1753 853 1753 854 1752 856 1751 856 1751 858 1751 858 1751 858 1751 M 1989 1751 1988 1752 1988 1752 1988 1753 1988 1753 1987 1753 1986 1752 1987 1751 1987 1751 1989 1751 1989 1751 1989 1751 M 848 1754 846 1754 846 1754 846 1754 845 1754 844 1754 844 1754 844 1753 845 1753 845 1753 848 1753 849 1753 849 1754 848 1754 848 1754 M 858 1754 858 1754 859 1755 858 1755 857 1756 857 1756 855 1756 853 1756 853 1755 853 1755 853 1755 853 1755 854 1755 854 1755 854 1755 855 1755 856 1755 858 1754 M 873 1757 873 1757 873 1757 873 1757 873 1757 872 1758 872 1758 872 1758 871 1758 870 1758 870 1758 871 1757 871 1757 872 1757 873 1757 M 874 1757 875 1757 875 1757 876 1758 877 1760 878 1760 878 1761 878 1761 877 1762 876 1762 876 1762 876 1762 876 1761 876 1760 875 1759 874 1759 873 1759 873 1759 873 1759 873 1759 872 1759 872 1759 872 1759 874 1757 874 1757 874 1757 M 883 1759 883 1759 884 1759 884 1760 884 1760 884 1760 884 1760 884 1761 883 1761 882 1760 882 1760 883 1759 883 1759 883 1759 M 880 1759 880 1759 881 1760 882 1761 882 1761 882 1762 881 1762 881 1762 879 1761 879 1760 879 1760 880 1759 880 1759 880 1759 M 873 1760 873 1760 874 1759 874 1759 875 1759 876 1760 876 1761 875 1762 876 1764 876 1764 876 1764 875 1763 875 1763 874 1762 873 1762 873 1761 873 1760 873 1760 873 1760 M 879 1760 880 1761 880 1762 880 1763 880 1763 879 1763 878 1763 877 1762 877 1762 878 1762 879 1761 879 1761 879 1760 M 1861 1766 1861 1766 1863 1767 1864 1767 1867 1767 1868 1768 1869 1768 1872 1769 1873 1769 1876 1770 1878 1771 1879 1772 1881 1773 1882 1773 1883 1774 1884 1774 1887 1774 1888 1775 1890 1778 1889 1778 1889 1778 1888 1779 1884 1779 1882 1779 1879 1778 1873 1777 1872 1777 1870 1777 1867 1776 1865 1776 1865 1775 1865 1775 1864 1775 1863 1774 1862 1774 1861 1774 1860 1774 1860 1774 1859 1773 1859 1772 1858 1771 1857 1771 1855 1770 1855 1769 1854 1769 1853 1769 1848 1767 1847 1767 1846 1767 1845 1766 1845 1766 1845 1766 1846 1765 1849 1765 1850 1765 1851 1765 1852 1765 1853 1766 1859 1766 1860 1766 1861 1766 M 850 1766 851 1766 851 1766 852 1767 852 1767 852 1768 853 1770 853 1770 853 1770 852 1770 852 1771 852 1771 851 1771 850 1770 850 1770 848 1769 847 1768 847 1768 847 1767 848 1766 850 1766 850 1766 850 1766 M 892 1772 892 1772 892 1772 892 1772 890 1771 888 1770 887 1770 887 1770 887 1769 886 1769 886 1769 885 1768 884 1768 884 1768 884 1767 885 1767 885 1767 885 1768 885 1768 887 1768 887 1768 888 1768 888 1768 888 1768 889 1769 889 1769 892 1772 892 1772 892 1772 M 894 1768 894 1768 893 1768 893 1768 893 1768 893 1769 893 1769 893 1769 893 1769 892 1769 892 1769 892 1769 891 1769 891 1769 891 1769 892 1768 893 1768 894 1767 894 1767 894 1768 M 2011 1768 2012 1769 2012 1769 2012 1770 2008 1771 2008 1771 2008 1771 2008 1770 2008 1769 2008 1768 2008 1768 2010 1768 2011 1768 2011 1768 2011 1768 M 2004 1770 2004 1770 2004 1771 2003 1771 2000 1772 2000 1772 1999 1772 1999 1772 1999 1772 1998 1771 1998 1770 2000 1770 2000 1771 2000 1771 2000 1771 2001 1771 2001 1771 2001 1771 2003 1770 2003 1770 2004 1769 2004 1769 2004 1769 2004 1770 M 905 1772 905 1772 905 1772 905 1772 905 1772 905 1773 905 1773 905 1773 904 1773 903 1773 903 1772 903 1772 903 1772 903 1772 904 1771 905 1771 905 1771 905 1772 M 860 1774 861 1774 861 1774 861 1774 861 1774 861 1774 862 1776 861 1776 861 1776 861 1776 859 1776 859 1775 859 1775 859 1774 859 1774 860 1774 860 1774 M 865 1776 865 1776 865 1776 866 1777 866 1777 866 1777 865 1778 865 1778 864 1777 864 1777 864 1776 864 1776 865 1776 M 900 1778 900 1779 901 1780 901 1780 902 1780 902 1781 903 1781 903 1781 903 1781 904 1781 904 1781 905 1782 905 1782 905 1782 904 1782 904 1782 902 1781 900 1779 899 1778 899 1778 900 1778 900 1778 M 901 1781 902 1781 903 1782 903 1782 905 1784 904 1784 904 1784 903 1785 903 1785 902 1784 902 1784 902 1784 901 1781 901 1781 901 1781 901 1781 901 1781 901 1781 M 2019 1793 2020 1793 2020 1793 2020 1793 2020 1793 2020 1794 2020 1794 2019 1794 2019 1795 2018 1795 2015 1794 2015 1794 2015 1794 2015 1794 2014 1793 2014 1793 2014 1793 2014 1792 2014 1793 2015 1793 2017 1793 2018 1793 2018 1793 2018 1793 2019 1793 2019 1793 2019 1793 2019 1793 M 1845 1797 1845 1798 1845 1799 1844 1799 1844 1799 1843 1800 1843 1800 1842 1800 1842 1800 1842 1799 1842 1798 1842 1798 1842 1798 1843 1798 1843 1798 1843 1798 1845 1797 1845 1797 M 1982 1801 1982 1801 1982 1802 1982 1802 1982 1802 1982 1802 1982 1802 1982 1802 1981 1802 1980 1802 1979 1802 1979 1801 1979 1801 1980 1801 1982 1801 1982 1801 M 2011 1802 2010 1803 2009 1805 2008 1806 2008 1806 2008 1806 2007 1805 2007 1805 2007 1805 2008 1805 2008 1804 2008 1804 2008 1804 2009 1803 2009 1803 2009 1802 2010 1801 2011 1801 2011 1802 M 1894 1802 1895 1802 1895 1802 1893 1803 1892 1803 1892 1803 1892 1803 1893 1802 1893 1802 1892 1802 1892 1802 1890 1803 1887 1805 1887 1805 1888 1805 1888 1805 1888 1805 1889 1804 1890 1804 1889 1804 1889 1805 1887 1806 1886 1806 1886 1806 1886 1806 1885 1807 1885 1808 1886 1808 1888 1808 1888 1808 1888 1808 1888 1808 1888 1808 1888 1808 1888 1808 1887 1808 1887 1808 1885 1808 1885 1808 1885 1808 1885 1808 1884 1808 1886 1806 1886 1805 1886 1805 1886 1805 1889 1804 1889 1803 1890 1803 1890 1803 1891 1802 1892 1802 1892 1802 1892 1802 1892 1802 1894 1802 1894 1802 M 1880 1822 1880 1822 1879 1822 1879 1822 1879 1822 1879 1823 1879 1823 1878 1824 1877 1824 1877 1824 1875 1825 1876 1826 1877 1826 1877 1826 1877 1825 1877 1825 1878 1826 1877 1827 1877 1828 1877 1828 1876 1828 1875 1828 1875 1828 1874 1828 1873 1829 1871 1828 1871 1828 1871 1828 1870 1827 1869 1827 1870 1826 1871 1826 1871 1825 1868 1825 1867 1824 1868 1823 1868 1823 1869 1823 1869 1823 1868 1823 1867 1823 1866 1824 1867 1825 1865 1826 1865 1826 1864 1825 1862 1825 1860 1824 1859 1824 1858 1824 1858 1823 1857 1823 1856 1823 1856 1822 1857 1822 1857 1821 1855 1821 1853 1821 1853 1821 1851 1821 1851 1819 1851 1819 1851 1818 1848 1818 1847 1818 1846 1817 1846 1817 1846 1816 1847 1816 1847 1815 1848 1815 1848 1815 1848 1815 1849 1814 1849 1813 1850 1813 1852 1811 1853 1812 1853 1813 1852 1815 1852 1815 1851 1815 1852 1816 1852 1816 1853 1816 1853 1816 1855 1818 1855 1819 1855 1820 1856 1821 1857 1821 1857 1821 1858 1820 1857 1820 1857 1820 1857 1819 1858 1819 1858 1819 1859 1819 1861 1819 1864 1820 1864 1821 1865 1821 1865 1821 1870 1821 1871 1821 1874 1821 1874 1820 1875 1820 1877 1820 1877 1820 1882 1820 1883 1820 1884 1820 1884 1820 1885 1821 1885 1821 1883 1822 1882 1822 1881 1822 1880 1822 M 1908 1834 1908 1834 1904 1834 1901 1834 1899 1835 1898 1835 1898 1835 1898 1834 1897 1834 1896 1835 1895 1835 1895 1834 1894 1833 1893 1832 1893 1831 1893 1830 1892 1828 1893 1826 1894 1825 1894 1825 1895 1825 1895 1824 1896 1824 1899 1821 1900 1819 1901 1818 1902 1815 1903 1815 1903 1815 1904 1815 1905 1814 1906 1813 1906 1813 1906 1813 1906 1812 1906 1812 1907 1811 1909 1812 1910 1812 1909 1813 1910 1814 1911 1814 1911 1814 1912 1814 1912 1815 1911 1816 1909 1822 1908 1823 1907 1824 1907 1825 1907 1824 1908 1824 1908 1824 1908 1823 1909 1823 1910 1823 1910 1823 1910 1823 1909 1824 1908 1825 1907 1826 1907 1826 1906 1826 1906 1826 1904 1827 1903 1827 1901 1828 1900 1828 1899 1829 1899 1829 1899 1829 1900 1829 1900 1829 1901 1828 1902 1828 1902 1828 1903 1827 1904 1827 1905 1827 1904 1829 1903 1829 1902 1829 1901 1829 1900 1830 1899 1830 1900 1830 1900 1830 1901 1830 1901 1830 1902 1830 1902 1831 1900 1831 1900 1831 1899 1832 1898 1833 1900 1833 1900 1833 1901 1832 1901 1832 1902 1832 1902 1832 1903 1832 1903 1832 1904 1832 1905 1831 1908 1829 1909 1829 1909 1829 1910 1828 1908 1829 1907 1829 1907 1829 1906 1829 1906 1830 1905 1830 1904 1829 1906 1828 1907 1827 1908 1827 1908 1827 1909 1826 1912 1824 1912 1824 1911 1824 1910 1824 1910 1825 1909 1825 1908 1826 1907 1827 1906 1827 1909 1824 1910 1823 1911 1823 1912 1823 1913 1824 1915 1824 1915 1824 1917 1825 1919 1825 1920 1826 1919 1826 1919 1828 1919 1829 1917 1829 1915 1830 1914 1830 1914 1832 1913 1833 1911 1833 1910 1834 1909 1834 1908 1834 M 1744 1812 1743 1813 1743 1813 1743 1813 1741 1814 1740 1814 1740 1814 1739 1814 1739 1814 1739 1814 1739 1813 1740 1813 1742 1812 1743 1812 1743 1811 1743 1811 1744 1811 1744 1811 1744 1812 1744 1812 M 1902 1835 1902 1835 1901 1835 1901 1836 1901 1836 1901 1836 1901 1836 1900 1836 1899 1835 1899 1835 1900 1835 1902 1835 1902 1835 1903 1835 1903 1835 1902 1835 M 1809 1847 1809 1847 1809 1848 1809 1848 1809 1848 1809 1849 1807 1850 1807 1850 1806 1850 1807 1849 1807 1848 1807 1847 1808 1847 1808 1847 1809 1847 1809 1847" />
+<path id="kh" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4565 2377 4565 2377 4566 2378 4566 2380 4566 2381 4566 2382 4567 2383 4567 2384 4570 2385 4571 2385 4571 2386 4571 2387 4571 2387 4571 2387 4570 2387 4570 2388 4571 2389 4571 2390 4569 2390 4567 2389 4566 2388 4565 2386 4564 2386 4564 2387 4563 2387 4562 2387 4561 2387 4561 2388 4561 2388 4560 2388 4559 2387 4558 2388 4558 2389 4557 2389 4556 2389 4555 2388 4555 2388 4554 2388 4553 2388 4553 2388 4553 2389 4553 2389 4553 2390 4554 2391 4554 2391 4553 2392 4552 2392 4551 2393 4551 2393 4551 2393 4551 2394 4550 2394 4550 2394 4550 2394 4549 2394 4548 2394 4548 2394 4548 2394 4547 2394 4547 2394 4546 2394 4545 2395 4545 2395 4544 2396 4543 2396 4542 2395 4541 2394 4540 2394 4539 2394 4538 2394 4538 2394 4537 2394 4536 2394 4535 2393 4533 2394 4533 2394 4532 2394 4532 2395 4530 2395 4528 2393 4528 2393 4529 2391 4530 2391 4531 2391 4531 2391 4531 2390 4531 2390 4532 2389 4532 2389 4532 2389 4532 2388 4531 2386 4529 2384 4528 2384 4528 2385 4527 2385 4527 2386 4527 2388 4526 2389 4523 2389 4523 2389 4522 2389 4522 2388 4522 2387 4522 2385 4522 2384 4522 2384 4522 2381 4521 2380 4521 2378 4520 2378 4520 2378 4520 2378 4520 2378 4520 2377 4520 2377 4520 2376 4520 2376 4520 2375 4521 2376 4521 2375 4521 2375 4520 2375 4520 2375 4520 2375 4520 2375 4519 2375 4519 2374 4519 2374 4518 2374 4519 2374 4519 2375 4519 2375 4520 2375 4519 2376 4519 2376 4520 2377 4519 2378 4519 2377 4519 2377 4519 2376 4519 2375 4519 2375 4519 2374 4518 2374 4518 2373 4516 2368 4516 2368 4516 2365 4517 2364 4517 2364 4514 2361 4513 2361 4513 2360 4512 2360 4512 2359 4512 2359 4513 2359 4513 2358 4512 2355 4511 2353 4510 2352 4510 2350 4510 2350 4510 2350 4510 2349 4510 2347 4510 2346 4511 2346 4511 2346 4512 2346 4513 2346 4513 2346 4514 2345 4513 2345 4513 2344 4514 2343 4516 2343 4516 2341 4517 2341 4517 2340 4517 2340 4517 2340 4518 2339 4519 2338 4519 2337 4519 2336 4519 2336 4520 2336 4520 2336 4521 2335 4521 2335 4521 2335 4522 2334 4522 2334 4523 2334 4524 2334 4525 2333 4525 2333 4526 2333 4528 2333 4528 2333 4529 2332 4531 2332 4531 2332 4532 2333 4535 2333 4537 2333 4537 2333 4537 2333 4538 2333 4541 2332 4543 2333 4543 2333 4544 2333 4545 2333 4545 2333 4546 2333 4546 2332 4549 2332 4550 2332 4551 2332 4552 2333 4552 2333 4552 2333 4552 2334 4552 2334 4553 2335 4553 2335 4554 2335 4554 2335 4555 2334 4555 2333 4555 2333 4555 2334 4557 2336 4558 2337 4559 2337 4560 2337 4561 2336 4564 2337 4565 2338 4565 2338 4565 2339 4566 2340 4567 2340 4567 2340 4569 2340 4570 2340 4571 2338 4571 2338 4570 2337 4569 2335 4568 2334 4568 2333 4570 2333 4570 2333 4571 2333 4572 2333 4572 2332 4572 2332 4572 2331 4573 2331 4573 2332 4573 2332 4575 2332 4575 2331 4575 2331 4576 2330 4577 2329 4578 2331 4578 2331 4579 2332 4580 2332 4580 2333 4581 2333 4582 2334 4586 2332 4587 2332 4588 2331 4588 2330 4590 2329 4592 2329 4593 2328 4593 2328 4593 2328 4593 2330 4592 2331 4592 2332 4591 2332 4591 2332 4591 2332 4590 2334 4590 2334 4590 2335 4590 2336 4590 2337 4590 2339 4590 2339 4592 2340 4592 2341 4591 2342 4593 2345 4594 2346 4594 2349 4594 2350 4592 2355 4592 2356 4592 2357 4592 2357 4593 2358 4594 2361 4594 2362 4593 2365 4593 2365 4591 2367 4591 2367 4590 2366 4590 2366 4590 2366 4589 2366 4588 2366 4587 2366 4587 2366 4586 2367 4585 2368 4585 2369 4584 2370 4583 2370 4583 2370 4582 2370 4581 2370 4580 2371 4580 2371 4579 2371 4578 2371 4575 2371 4575 2371 4575 2371 4575 2373 4575 2374 4575 2374 4575 2375 4575 2376 4575 2376 4573 2376 4572 2375 4569 2374 4569 2374 4568 2375 4568 2375 4567 2377 4567 2376 4566 2376 4566 2376 4566 2376 4565 2377" />
+<path id="td" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3102 2403 3106 2403 3106 2403 3109 2403 3111 2404 3113 2403 3115 2404 3115 2404 3116 2403 3116 2403 3117 2403 3117 2403 3118 2403 3119 2403 3121 2404 3123 2404 3124 2403 3125 2403 3125 2403 3125 2402 3124 2402 3123 2402 3123 2401 3121 2399 3119 2397 3118 2395 3117 2393 3117 2392 3116 2392 3116 2391 3116 2390 3116 2390 3116 2389 3116 2389 3116 2388 3115 2386 3115 2385 3115 2384 3115 2380 3116 2380 3116 2379 3116 2377 3116 2376 3116 2375 3115 2370 3114 2369 3114 2369 3113 2368 3113 2368 3113 2367 3113 2366 3113 2365 3112 2361 3110 2359 3109 2359 3108 2359 3107 2359 3107 2357 3107 2355 3107 2355 3106 2355 3106 2354 3106 2354 3106 2354 3101 2354 3100 2354 3097 2350 3095 2346 3093 2344 3093 2343 3092 2342 3092 2339 3090 2332 3090 2332 3090 2331 3091 2331 3091 2331 3091 2331 3092 2331 3093 2331 3093 2330 3093 2330 3094 2330 3094 2329 3095 2328 3095 2327 3095 2326 3095 2325 3095 2325 3096 2322 3099 2320 3100 2318 3102 2315 3103 2313 3105 2311 3108 2308 3113 2302 3117 2299 3118 2297 3120 2295 3122 2293 3122 2293 3122 2293 3122 2292 3123 2285 3124 2275 3124 2271 3124 2270 3124 2263 3124 2262 3125 2259 3126 2249 3126 2247 3127 2244 3127 2243 3129 2241 3130 2238 3131 2237 3125 2232 3125 2232 3124 2231 3124 2231 3123 2230 3123 2229 3123 2229 3124 2229 3124 2228 3124 2228 3124 2227 3123 2226 3119 2220 3118 2219 3118 2219 3118 2217 3118 2217 3118 2214 3118 2211 3117 2208 3115 2199 3115 2196 3115 2195 3117 2194 3120 2193 3131 2188 3136 2190 3146 2195 3157 2200 3158 2200 3163 2203 3168 2206 3175 2209 3178 2210 3183 2213 3192 2217 3201 2222 3210 2226 3217 2229 3223 2233 3232 2237 3243 2243 3250 2246 3258 2251 3258 2252 3258 2252 3258 2262 3258 2263 3258 2266 3258 2270 3258 2303 3258 2305 3258 2310 3258 2312 3258 2312 3258 2312 3256 2311 3255 2311 3253 2311 3252 2311 3251 2311 3251 2311 3250 2311 3250 2311 3249 2312 3249 2312 3248 2312 3248 2312 3248 2312 3247 2312 3246 2312 3245 2312 3245 2312 3244 2312 3244 2312 3241 2314 3241 2314 3241 2315 3241 2315 3241 2315 3242 2316 3242 2317 3242 2318 3242 2318 3242 2319 3242 2320 3241 2321 3241 2321 3240 2321 3240 2322 3239 2323 3238 2323 3237 2325 3237 2326 3237 2327 3238 2328 3234 2329 3234 2329 3233 2329 3233 2330 3233 2330 3233 2331 3233 2331 3234 2331 3234 2333 3234 2334 3235 2335 3235 2335 3235 2336 3235 2337 3233 2338 3232 2338 3231 2339 3230 2339 3230 2340 3228 2342 3229 2344 3230 2347 3231 2349 3231 2349 3231 2350 3229 2352 3227 2352 3227 2353 3225 2354 3225 2356 3224 2358 3225 2360 3225 2360 3225 2360 3226 2361 3226 2361 3226 2361 3227 2361 3228 2361 3228 2360 3229 2360 3229 2360 3230 2359 3230 2359 3232 2360 3234 2361 3233 2363 3233 2365 3234 2368 3235 2370 3236 2371 3236 2372 3236 2374 3235 2376 3235 2377 3236 2377 3236 2378 3236 2378 3237 2379 3239 2380 3241 2380 3242 2382 3242 2383 3241 2387 3240 2388 3240 2388 3237 2387 3234 2387 3233 2387 3233 2387 3232 2388 3232 2388 3230 2388 3226 2390 3226 2391 3225 2392 3224 2392 3223 2392 3222 2393 3222 2394 3222 2394 3222 2395 3222 2395 3222 2396 3222 2396 3222 2398 3221 2399 3221 2399 3220 2399 3220 2399 3219 2399 3219 2400 3218 2400 3218 2400 3218 2401 3218 2401 3217 2402 3217 2403 3216 2403 3216 2403 3215 2403 3215 2403 3214 2404 3211 2407 3210 2409 3209 2410 3208 2411 3208 2411 3208 2412 3207 2412 3207 2412 3202 2414 3202 2415 3202 2415 3202 2416 3201 2417 3200 2417 3200 2417 3199 2417 3197 2417 3195 2417 3194 2417 3193 2418 3193 2418 3192 2418 3188 2418 3185 2418 3182 2418 3180 2419 3180 2419 3179 2419 3178 2419 3177 2420 3177 2420 3176 2421 3176 2421 3177 2422 3178 2422 3179 2423 3180 2424 3180 2424 3180 2424 3179 2425 3178 2427 3177 2428 3177 2428 3177 2429 3176 2430 3175 2431 3175 2431 3174 2431 3173 2431 3173 2432 3173 2432 3173 2433 3173 2433 3172 2434 3172 2434 3171 2434 3169 2434 3166 2434 3163 2435 3161 2435 3158 2435 3157 2435 3157 2435 3156 2436 3155 2436 3154 2436 3152 2437 3151 2438 3150 2438 3150 2439 3149 2440 3147 2440 3146 2440 3145 2440 3144 2441 3144 2441 3144 2442 3144 2442 3144 2442 3143 2442 3140 2438 3140 2437 3140 2437 3139 2437 3139 2437 3137 2438 3137 2438 3137 2439 3137 2440 3134 2441 3133 2441 3132 2441 3132 2441 3131 2442 3131 2442 3130 2443 3129 2443 3127 2443 3126 2443 3126 2443 3126 2442 3125 2442 3124 2442 3124 2443 3123 2442 3123 2442 3123 2442 3123 2442 3123 2441 3124 2441 3124 2440 3124 2439 3124 2439 3123 2438 3123 2438 3122 2438 3122 2437 3122 2436 3121 2434 3121 2433 3121 2433 3120 2432 3120 2432 3119 2429 3118 2428 3118 2427 3116 2424 3113 2422 3113 2422 3112 2422 3112 2422 3109 2419 3108 2419 3104 2416 3104 2415 3104 2415 3099 2409 3098 2409 3098 2408 3099 2407 3099 2407 3100 2406 3100 2406 3100 2406 3101 2405 3101 2405 3101 2404 3102 2403" />
+<path id="lk" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4181 2456 4181 2456 4181 2457 4181 2457 4181 2457 4180 2459 4180 2459 4180 2459 4179 2460 4179 2460 4175 2463 4174 2463 4174 2464 4170 2465 4169 2465 4169 2465 4167 2466 4166 2466 4165 2466 4165 2467 4165 2467 4164 2467 4162 2468 4160 2468 4157 2467 4157 2467 4156 2466 4156 2466 4155 2465 4154 2464 4154 2463 4153 2461 4153 2460 4152 2458 4152 2457 4152 2456 4151 2455 4151 2455 4151 2454 4150 2453 4150 2452 4150 2451 4151 2451 4151 2451 4150 2449 4150 2448 4150 2446 4150 2446 4150 2444 4150 2444 4149 2441 4150 2441 4150 2440 4149 2439 4149 2437 4149 2436 4149 2436 4149 2436 4148 2435 4148 2435 4148 2435 4148 2435 4148 2434 4148 2433 4148 2432 4148 2431 4148 2431 4149 2430 4148 2433 4148 2434 4149 2435 4149 2435 4149 2435 4149 2435 4150 2435 4150 2435 4150 2435 4150 2435 4150 2435 4150 2434 4150 2434 4150 2431 4151 2426 4151 2426 4151 2426 4152 2425 4152 2423 4152 2423 4152 2421 4151 2420 4152 2419 4153 2419 4153 2419 4154 2418 4154 2418 4154 2416 4155 2416 4155 2415 4155 2414 4154 2414 4154 2414 4154 2412 4155 2412 4156 2411 4156 2411 4156 2411 4155 2410 4155 2410 4155 2410 4154 2410 4154 2409 4154 2409 4154 2409 4154 2409 4157 2410 4157 2411 4160 2411 4161 2411 4161 2411 4161 2411 4162 2412 4162 2412 4162 2412 4163 2412 4162 2411 4161 2411 4160 2410 4160 2410 4159 2410 4159 2410 4158 2410 4158 2410 4158 2409 4156 2409 4156 2408 4156 2408 4155 2408 4155 2409 4156 2409 4156 2409 4156 2409 4156 2409 4156 2409 4155 2409 4153 2408 4152 2408 4152 2408 4152 2407 4152 2406 4152 2406 4152 2406 4153 2406 4153 2406 4155 2406 4155 2406 4155 2406 4155 2406 4156 2407 4156 2407 4157 2407 4157 2407 4157 2408 4158 2408 4158 2409 4159 2409 4159 2409 4160 2410 4157 2407 4156 2406 4156 2406 4156 2406 4155 2406 4155 2406 4155 2406 4157 2406 4157 2406 4157 2406 4157 2406 4157 2406 4157 2406 4158 2408 4158 2408 4159 2409 4162 2411 4162 2411 4163 2411 4163 2411 4163 2412 4163 2412 4164 2413 4165 2413 4166 2414 4166 2415 4166 2415 4166 2415 4168 2418 4168 2419 4168 2419 4167 2420 4167 2420 4168 2420 4168 2420 4168 2420 4168 2420 4169 2420 4171 2423 4172 2424 4172 2424 4173 2426 4173 2426 4173 2426 4172 2426 4172 2426 4172 2426 4171 2426 4171 2427 4171 2427 4172 2427 4173 2427 4173 2427 4173 2427 4173 2427 4173 2427 4174 2426 4174 2427 4175 2427 4175 2429 4175 2429 4176 2431 4175 2432 4175 2432 4176 2433 4177 2435 4179 2438 4180 2439 4180 2439 4180 2439 4180 2439 4180 2439 4180 2440 4180 2440 4180 2440 4180 2441 4181 2441 4181 2442 4181 2442 4181 2443 4181 2443 4181 2444 4182 2444 4182 2443 4182 2443 4182 2444 4183 2445 4183 2445 4183 2446 4183 2446 4183 2448 4183 2450 4183 2451 4183 2451 4182 2453 4182 2454 4182 2455 4181 2456 4181 2456 M 4149 2417 4150 2417 4150 2417 4150 2418 4151 2418 4151 2418 4151 2419 4150 2419 4148 2417 4148 2417 4148 2417 4149 2417 4149 2417" />
+<path id="cg" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3129 2625 3129 2626 3128 2626 3128 2626 3127 2626 3126 2626 3124 2627 3124 2627 3123 2627 3123 2628 3123 2628 3122 2629 3122 2629 3122 2629 3122 2630 3122 2630 3122 2631 3121 2631 3121 2631 3120 2631 3120 2631 3120 2631 3119 2631 3119 2631 3118 2632 3118 2632 3117 2633 3117 2634 3116 2634 3116 2635 3115 2635 3113 2637 3113 2637 3113 2638 3113 2638 3112 2639 3110 2641 3109 2641 3109 2641 3108 2641 3108 2640 3106 2640 3105 2641 3105 2640 3105 2640 3105 2638 3105 2636 3104 2635 3105 2635 3105 2635 3106 2634 3106 2634 3106 2633 3105 2631 3105 2631 3103 2631 3099 2634 3098 2634 3097 2634 3096 2633 3096 2633 3095 2633 3094 2634 3094 2634 3094 2635 3094 2635 3094 2635 3094 2638 3092 2639 3092 2639 3091 2638 3091 2639 3091 2639 3089 2640 3086 2637 3086 2637 3085 2636 3085 2636 3085 2636 3084 2636 3084 2636 3084 2637 3084 2636 3084 2636 3083 2636 3083 2636 3081 2634 3081 2634 3081 2633 3081 2633 3081 2633 3079 2633 3079 2633 3079 2633 3078 2634 3077 2635 3077 2635 3074 2636 3073 2636 3073 2637 3073 2637 3073 2638 3072 2639 3071 2639 3071 2639 3070 2639 3070 2640 3070 2640 3069 2641 3067 2643 3067 2643 3066 2641 3064 2639 3064 2639 3063 2637 3063 2636 3063 2636 3063 2636 3063 2635 3063 2635 3062 2634 3062 2634 3061 2633 3060 2632 3057 2629 3057 2629 3056 2628 3056 2628 3056 2627 3054 2626 3053 2626 3053 2625 3053 2625 3053 2624 3054 2621 3056 2621 3059 2619 3059 2619 3060 2619 3060 2619 3061 2620 3061 2621 3063 2621 3064 2622 3065 2622 3065 2621 3065 2621 3065 2620 3065 2620 3064 2620 3064 2619 3065 2617 3065 2617 3066 2616 3066 2616 3066 2616 3066 2615 3063 2614 3063 2614 3063 2614 3062 2613 3062 2612 3062 2611 3062 2611 3063 2611 3064 2611 3063 2610 3061 2608 3060 2608 3060 2608 3059 2608 3059 2607 3059 2607 3060 2607 3060 2606 3060 2606 3061 2605 3061 2604 3061 2603 3060 2602 3060 2600 3060 2600 3061 2600 3062 2601 3062 2601 3063 2601 3063 2600 3066 2600 3066 2600 3067 2600 3067 2601 3067 2601 3068 2601 3074 2600 3075 2598 3075 2597 3074 2596 3074 2595 3074 2593 3074 2593 3074 2592 3074 2593 3075 2593 3075 2593 3076 2592 3077 2592 3078 2592 3079 2593 3079 2593 3080 2593 3080 2594 3080 2594 3081 2597 3082 2597 3082 2597 3083 2598 3083 2599 3083 2599 3083 2600 3083 2600 3086 2600 3087 2600 3088 2601 3089 2601 3090 2601 3091 2601 3092 2600 3092 2600 3094 2598 3094 2597 3094 2597 3095 2596 3096 2597 3097 2599 3096 2601 3097 2602 3097 2602 3100 2602 3100 2602 3101 2602 3101 2601 3102 2600 3102 2600 3102 2599 3103 2596 3103 2595 3103 2595 3103 2594 3104 2593 3104 2593 3105 2593 3105 2593 3105 2593 3105 2593 3105 2592 3105 2588 3106 2588 3106 2587 3106 2585 3106 2583 3106 2582 3106 2581 3105 2579 3105 2578 3105 2577 3106 2574 3107 2574 3107 2573 3107 2572 3106 2571 3106 2571 3105 2570 3104 2569 3102 2570 3102 2570 3101 2569 3101 2568 3101 2568 3101 2567 3100 2567 3098 2566 3098 2566 3097 2567 3096 2566 3096 2565 3096 2565 3097 2564 3098 2563 3098 2562 3097 2561 3097 2559 3097 2559 3098 2557 3100 2554 3100 2554 3101 2554 3101 2554 3102 2554 3103 2554 3104 2553 3106 2549 3106 2548 3106 2548 3105 2547 3104 2545 3103 2543 3103 2542 3103 2541 3102 2541 3102 2540 3101 2540 3100 2540 3100 2540 3100 2541 3098 2540 3097 2540 3095 2540 3095 2540 3092 2542 3090 2542 3088 2542 3088 2543 3087 2543 3086 2543 3086 2543 3085 2543 3086 2542 3086 2542 3087 2541 3087 2540 3086 2540 3086 2539 3086 2538 3085 2538 3085 2537 3085 2535 3085 2534 3086 2534 3086 2533 3086 2533 3086 2532 3086 2531 3087 2530 3087 2529 3087 2528 3088 2528 3093 2528 3095 2528 3101 2528 3103 2528 3106 2528 3108 2528 3110 2529 3111 2529 3112 2529 3113 2530 3115 2531 3116 2531 3117 2530 3117 2530 3118 2530 3118 2530 3119 2531 3122 2531 3122 2531 3123 2531 3125 2532 3126 2532 3127 2532 3129 2533 3130 2534 3131 2535 3131 2535 3131 2536 3132 2536 3133 2535 3133 2534 3133 2533 3132 2531 3132 2530 3132 2528 3132 2527 3133 2528 3134 2527 3134 2527 3135 2525 3135 2524 3137 2520 3138 2519 3138 2518 3139 2517 3138 2516 3138 2516 3138 2515 3138 2512 3138 2512 3139 2511 3139 2511 3139 2509 3140 2508 3140 2507 3140 2507 3141 2506 3141 2506 3142 2506 3145 2506 3146 2506 3148 2506 3152 2505 3153 2504 3154 2503 3154 2503 3155 2504 3156 2504 3156 2505 3157 2505 3157 2505 3159 2505 3160 2505 3160 2505 3160 2506 3161 2506 3163 2506 3164 2506 3164 2506 3165 2506 3165 2506 3165 2507 3166 2507 3166 2507 3166 2507 3167 2506 3167 2506 3170 2505 3170 2504 3171 2505 3172 2506 3172 2507 3172 2507 3172 2507 3173 2507 3173 2509 3173 2511 3172 2512 3172 2513 3172 2513 3171 2513 3171 2513 3170 2516 3169 2518 3169 2519 3168 2521 3168 2521 3167 2522 3167 2522 3166 2522 3166 2523 3166 2523 3166 2524 3166 2524 3165 2525 3165 2526 3164 2526 3164 2527 3164 2529 3164 2530 3164 2533 3164 2534 3164 2535 3164 2536 3164 2538 3164 2538 3162 2543 3162 2544 3162 2544 3161 2545 3161 2545 3161 2546 3161 2546 3160 2547 3161 2547 3161 2548 3161 2548 3161 2549 3161 2549 3161 2550 3161 2551 3161 2552 3161 2553 3161 2554 3162 2555 3162 2555 3162 2556 3162 2557 3162 2557 3161 2557 3161 2558 3160 2558 3160 2559 3159 2560 3159 2561 3159 2562 3158 2564 3158 2564 3158 2565 3158 2565 3158 2566 3158 2566 3158 2567 3158 2568 3158 2568 3158 2569 3158 2569 3158 2570 3158 2571 3158 2571 3158 2572 3157 2572 3156 2574 3155 2575 3155 2575 3153 2578 3152 2579 3151 2579 3151 2579 3151 2579 3150 2579 3149 2579 3148 2580 3146 2581 3146 2581 3145 2582 3144 2583 3143 2584 3143 2585 3142 2585 3142 2586 3142 2586 3141 2588 3141 2588 3141 2588 3141 2589 3141 2589 3140 2590 3139 2592 3139 2592 3139 2592 3139 2593 3138 2593 3137 2594 3136 2595 3136 2595 3135 2596 3134 2596 3134 2597 3134 2597 3134 2598 3133 2598 3133 2599 3134 2600 3134 2601 3134 2603 3134 2606 3134 2606 3134 2606 3133 2608 3133 2609 3134 2609 3134 2609 3134 2610 3134 2612 3134 2613 3134 2615 3134 2615 3134 2615 3134 2616 3134 2616 3134 2617 3133 2619 3132 2619 3132 2620 3131 2620 3130 2623 3129 2625 3129 2625" />
+<path id="cd" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3132 2656 3129 2656 3128 2656 3126 2656 3116 2656 3112 2656 3111 2656 3110 2656 3108 2657 3104 2657 3102 2657 3100 2656 3099 2656 3098 2656 3098 2656 3095 2656 3091 2656 3091 2656 3090 2656 3089 2656 3087 2656 3085 2656 3084 2656 3083 2656 3082 2656 3081 2655 3079 2656 3078 2657 3078 2658 3077 2658 3075 2658 3074 2659 3071 2656 3070 2655 3070 2655 3070 2654 3071 2654 3073 2654 3074 2654 3075 2654 3075 2647 3075 2644 3076 2643 3076 2642 3078 2641 3078 2640 3080 2638 3080 2638 3083 2637 3084 2637 3084 2637 3084 2637 3084 2636 3084 2636 3085 2636 3085 2636 3085 2636 3086 2637 3086 2637 3089 2640 3091 2639 3091 2639 3091 2638 3092 2639 3092 2639 3094 2638 3094 2635 3094 2635 3094 2635 3094 2634 3094 2634 3095 2633 3096 2633 3096 2633 3097 2634 3098 2634 3099 2634 3103 2631 3105 2631 3105 2631 3106 2633 3106 2634 3106 2634 3105 2635 3105 2635 3104 2635 3105 2636 3105 2638 3105 2640 3105 2640 3105 2641 3106 2640 3108 2640 3108 2641 3109 2641 3109 2641 3110 2641 3112 2639 3113 2638 3113 2638 3113 2637 3113 2637 3115 2635 3116 2635 3116 2634 3117 2634 3117 2633 3118 2632 3118 2632 3119 2631 3119 2631 3120 2631 3120 2631 3120 2631 3121 2631 3121 2631 3122 2631 3122 2630 3122 2630 3122 2629 3122 2629 3122 2629 3123 2628 3123 2628 3123 2627 3124 2627 3124 2627 3126 2626 3127 2626 3128 2626 3128 2626 3129 2626 3129 2625 3129 2625 3130 2623 3131 2620 3132 2620 3132 2619 3133 2619 3134 2617 3134 2616 3134 2616 3134 2615 3134 2615 3134 2615 3134 2613 3134 2612 3134 2610 3134 2609 3134 2609 3133 2609 3133 2608 3134 2606 3134 2606 3134 2606 3134 2603 3134 2601 3134 2600 3133 2599 3133 2598 3134 2598 3134 2597 3134 2597 3134 2596 3135 2596 3136 2595 3136 2595 3137 2594 3138 2593 3139 2593 3139 2592 3139 2592 3139 2592 3140 2590 3141 2589 3141 2589 3141 2588 3141 2588 3141 2588 3142 2586 3142 2586 3142 2585 3143 2585 3143 2584 3144 2583 3145 2582 3146 2581 3146 2581 3148 2580 3149 2579 3150 2579 3151 2579 3151 2579 3151 2579 3152 2579 3153 2578 3155 2575 3155 2575 3156 2574 3157 2572 3158 2572 3158 2571 3158 2571 3158 2570 3158 2569 3158 2569 3158 2568 3158 2568 3158 2567 3158 2566 3158 2566 3158 2565 3158 2565 3158 2564 3158 2564 3159 2562 3159 2561 3159 2560 3160 2559 3160 2558 3161 2558 3161 2557 3162 2557 3162 2557 3162 2556 3162 2555 3162 2555 3161 2554 3161 2553 3161 2552 3161 2551 3161 2550 3161 2549 3161 2549 3161 2548 3161 2548 3161 2547 3160 2547 3161 2546 3161 2546 3161 2545 3161 2545 3162 2544 3162 2544 3162 2543 3164 2538 3164 2538 3164 2536 3164 2535 3164 2534 3164 2533 3164 2530 3164 2529 3164 2527 3164 2526 3165 2526 3165 2525 3166 2524 3166 2524 3166 2523 3166 2523 3166 2522 3167 2522 3167 2522 3168 2521 3168 2521 3169 2519 3169 2518 3170 2516 3171 2513 3171 2513 3172 2513 3172 2513 3172 2512 3173 2511 3173 2509 3173 2507 3172 2507 3172 2506 3172 2504 3172 2503 3172 2503 3172 2502 3172 2501 3173 2499 3173 2499 3173 2498 3173 2498 3173 2496 3172 2495 3172 2494 3171 2494 3171 2494 3171 2493 3172 2493 3172 2493 3173 2493 3174 2493 3174 2493 3175 2492 3175 2492 3175 2491 3175 2491 3176 2490 3176 2489 3178 2487 3178 2487 3179 2486 3179 2484 3180 2484 3180 2484 3181 2484 3182 2483 3182 2483 3185 2481 3187 2480 3189 2480 3190 2480 3191 2481 3191 2481 3192 2481 3192 2482 3193 2482 3193 2483 3193 2483 3194 2483 3194 2483 3194 2483 3197 2485 3200 2486 3202 2489 3202 2490 3202 2490 3202 2491 3204 2492 3204 2492 3206 2492 3208 2491 3208 2491 3210 2492 3211 2492 3212 2492 3212 2493 3213 2494 3214 2494 3219 2495 3219 2495 3220 2495 3220 2494 3220 2494 3221 2494 3222 2494 3224 2494 3226 2495 3227 2495 3228 2495 3228 2495 3229 2496 3229 2496 3230 2496 3230 2496 3231 2497 3232 2497 3233 2497 3233 2496 3234 2496 3234 2496 3235 2495 3235 2493 3236 2492 3236 2491 3236 2491 3236 2491 3237 2491 3237 2491 3238 2489 3238 2488 3239 2487 3241 2486 3242 2485 3242 2486 3243 2487 3244 2487 3246 2488 3248 2489 3248 2489 3249 2489 3249 2489 3249 2488 3252 2487 3256 2486 3257 2485 3259 2484 3261 2484 3262 2483 3264 2482 3265 2482 3264 2482 3265 2481 3266 2481 3266 2481 3267 2481 3268 2482 3269 2483 3270 2484 3271 2484 3271 2484 3274 2483 3274 2483 3274 2483 3276 2483 3277 2483 3278 2483 3279 2482 3279 2482 3280 2481 3280 2480 3280 2480 3279 2480 3279 2480 3280 2478 3280 2478 3283 2477 3284 2477 3284 2478 3286 2478 3287 2479 3289 2480 3289 2480 3291 2480 3291 2479 3292 2479 3292 2479 3292 2479 3293 2479 3297 2481 3297 2481 3298 2482 3298 2482 3299 2482 3300 2482 3301 2481 3302 2481 3302 2481 3303 2482 3304 2482 3304 2482 3305 2481 3305 2480 3306 2480 3307 2480 3307 2479 3308 2479 3309 2480 3311 2481 3313 2481 3313 2482 3314 2482 3315 2484 3317 2484 3319 2486 3319 2487 3319 2487 3319 2488 3319 2489 3320 2490 3321 2490 3323 2491 3324 2492 3325 2493 3328 2494 3330 2493 3330 2493 3330 2493 3332 2492 3332 2492 3333 2492 3333 2491 3333 2491 3333 2490 3334 2490 3335 2490 3335 2490 3335 2491 3335 2491 3336 2491 3338 2491 3338 2491 3340 2492 3341 2492 3342 2493 3342 2493 3343 2492 3345 2490 3346 2489 3346 2488 3346 2488 3346 2488 3348 2488 3348 2488 3349 2489 3351 2490 3351 2491 3351 2491 3351 2492 3351 2493 3352 2493 3354 2494 3354 2495 3355 2497 3355 2497 3356 2497 3357 2497 3357 2498 3357 2499 3358 2499 3359 2499 3360 2500 3360 2500 3361 2500 3362 2501 3363 2501 3363 2501 3363 2503 3363 2504 3363 2504 3363 2505 3364 2505 3364 2505 3366 2504 3367 2504 3368 2506 3368 2507 3369 2506 3369 2506 3369 2508 3368 2509 3368 2510 3367 2511 3367 2513 3366 2514 3367 2514 3367 2514 3368 2515 3368 2516 3368 2517 3368 2518 3367 2519 3367 2520 3366 2521 3366 2523 3366 2523 3368 2525 3369 2525 3369 2525 3369 2524 3370 2524 3370 2524 3370 2524 3371 2525 3373 2527 3375 2528 3375 2529 3373 2531 3371 2534 3368 2537 3365 2539 3365 2539 3363 2541 3362 2543 3361 2543 3361 2543 3360 2543 3359 2544 3358 2544 3358 2545 3358 2546 3358 2547 3357 2548 3356 2548 3356 2548 3355 2549 3354 2549 3354 2549 3354 2549 3354 2549 3353 2549 3353 2550 3353 2553 3353 2554 3354 2555 3353 2556 3352 2557 3352 2558 3351 2560 3351 2560 3350 2561 3350 2561 3350 2562 3350 2563 3350 2564 3349 2566 3349 2567 3349 2570 3349 2570 3349 2572 3348 2573 3348 2574 3348 2575 3348 2577 3348 2577 3347 2577 3347 2581 3348 2582 3348 2584 3348 2585 3347 2585 3347 2585 3346 2586 3346 2586 3345 2587 3345 2587 3344 2587 3343 2588 3342 2589 3340 2591 3340 2592 3340 2593 3340 2594 3340 2594 3341 2595 3341 2596 3341 2596 3341 2597 3341 2597 3340 2597 3340 2598 3340 2598 3340 2599 3338 2600 3336 2600 3336 2601 3336 2603 3337 2605 3337 2605 3337 2605 3338 2606 3338 2606 3339 2606 3338 2607 3338 2607 3338 2607 3341 2610 3341 2611 3342 2611 3342 2611 3342 2612 3342 2613 3342 2614 3342 2615 3342 2615 3342 2615 3342 2616 3342 2617 3342 2617 3342 2618 3342 2618 3342 2620 3342 2621 3342 2622 3342 2622 3342 2622 3342 2623 3342 2625 3342 2625 3342 2626 3343 2626 3343 2626 3343 2626 3344 2627 3344 2627 3344 2629 3344 2629 3344 2630 3344 2630 3345 2631 3345 2632 3345 2634 3345 2634 3345 2634 3345 2635 3345 2636 3345 2636 3345 2637 3344 2638 3344 2638 3344 2639 3344 2639 3344 2640 3344 2641 3344 2641 3344 2642 3344 2642 3344 2642 3344 2643 3345 2644 3345 2644 3345 2645 3345 2645 3346 2646 3346 2647 3346 2649 3347 2649 3347 2650 3347 2650 3347 2650 3347 2651 3348 2652 3348 2653 3348 2654 3348 2654 3348 2655 3348 2656 3347 2656 3347 2657 3346 2657 3346 2657 3346 2658 3346 2658 3346 2659 3347 2663 3347 2663 3347 2664 3348 2665 3349 2668 3350 2668 3350 2668 3350 2669 3352 2670 3353 2671 3353 2671 3354 2671 3354 2671 3355 2671 3355 2672 3355 2672 3356 2673 3357 2673 3357 2674 3358 2675 3358 2675 3359 2677 3360 2677 3360 2678 3360 2679 3361 2680 3361 2681 3361 2681 3361 2682 3361 2682 3361 2683 3361 2683 3361 2684 3362 2684 3362 2685 3362 2685 3363 2687 3364 2688 3365 2688 3365 2689 3365 2690 3365 2690 3366 2693 3366 2693 3366 2693 3366 2693 3362 2694 3361 2694 3358 2695 3355 2695 3353 2695 3348 2696 3347 2696 3347 2696 3345 2697 3342 2697 3341 2697 3338 2698 3337 2698 3337 2698 3337 2698 3337 2699 3337 2700 3338 2700 3338 2701 3337 2701 3337 2702 3336 2703 3336 2704 3335 2705 3334 2706 3333 2707 3332 2708 3332 2708 3330 2709 3330 2709 3329 2710 3329 2710 3329 2710 3328 2710 3328 2711 3328 2711 3329 2711 3330 2712 3331 2712 3331 2714 3333 2718 3333 2719 3333 2720 3332 2721 3332 2721 3332 2722 3332 2725 3332 2726 3332 2731 3333 2731 3333 2733 3333 2734 3332 2734 3331 2735 3331 2736 3331 2736 3331 2737 3330 2741 3330 2742 3330 2742 3329 2744 3328 2745 3328 2746 3328 2747 3328 2747 3328 2747 3329 2748 3329 2748 3329 2749 3329 2750 3329 2751 3330 2752 3332 2753 3333 2754 3333 2754 3336 2756 3337 2757 3337 2757 3338 2759 3339 2760 3339 2760 3339 2760 3340 2760 3341 2760 3341 2760 3342 2760 3345 2761 3346 2761 3346 2762 3346 2761 3347 2761 3347 2760 3346 2760 3345 2760 3346 2758 3347 2757 3350 2757 3351 2757 3351 2757 3351 2758 3351 2762 3351 2763 3351 2767 3351 2773 3351 2777 3351 2777 3350 2777 3349 2777 3348 2777 3348 2776 3349 2775 3349 2775 3349 2774 3348 2774 3347 2774 3347 2774 3346 2774 3346 2775 3346 2775 3343 2776 3341 2777 3340 2776 3339 2776 3339 2776 3338 2777 3338 2776 3338 2775 3337 2775 3337 2774 3337 2773 3335 2771 3334 2769 3333 2768 3332 2768 3332 2768 3332 2768 3331 2768 3330 2766 3330 2766 3330 2765 3331 2765 3331 2765 3329 2763 3328 2761 3327 2761 3326 2761 3325 2761 3323 2760 3322 2759 3321 2759 3321 2759 3320 2758 3320 2758 3320 2758 3319 2759 3319 2759 3317 2759 3317 2759 3316 2758 3316 2758 3316 2758 3316 2758 3315 2758 3315 2757 3315 2757 3315 2757 3314 2755 3314 2754 3314 2754 3314 2754 3313 2753 3313 2753 3312 2752 3312 2752 3310 2751 3310 2751 3310 2751 3310 2750 3310 2750 3310 2749 3310 2748 3310 2747 3307 2748 3306 2750 3306 2752 3306 2752 3306 2753 3306 2753 3305 2754 3304 2754 3302 2754 3301 2754 3300 2754 3298 2753 3298 2753 3297 2753 3293 2753 3291 2753 3291 2753 3290 2753 3290 2753 3288 2751 3285 2750 3282 2750 3280 2748 3280 2747 3279 2746 3279 2744 3279 2743 3280 2743 3280 2741 3279 2741 3279 2742 3278 2742 3277 2742 3276 2742 3275 2742 3275 2742 3274 2742 3270 2743 3269 2744 3268 2745 3268 2745 3267 2746 3266 2746 3264 2745 3264 2744 3265 2743 3265 2742 3265 2740 3264 2740 3263 2739 3261 2739 3261 2738 3260 2737 3260 2736 3259 2736 3258 2736 3258 2736 3258 2737 3257 2738 3256 2739 3253 2738 3252 2738 3252 2738 3251 2738 3251 2738 3250 2738 3250 2738 3250 2738 3249 2738 3249 2738 3248 2738 3247 2739 3246 2739 3246 2739 3244 2740 3243 2740 3241 2740 3241 2739 3240 2739 3240 2739 3239 2739 3239 2740 3238 2740 3237 2739 3237 2739 3236 2739 3236 2739 3235 2739 3235 2739 3234 2739 3234 2740 3234 2740 3231 2742 3230 2742 3231 2741 3230 2739 3230 2738 3229 2738 3229 2736 3229 2735 3230 2735 3230 2735 3231 2734 3231 2733 3231 2732 3231 2732 3231 2730 3231 2729 3231 2728 3231 2727 3230 2725 3230 2725 3230 2724 3229 2722 3229 2721 3228 2721 3227 2720 3227 2720 3224 2717 3224 2717 3224 2716 3223 2713 3223 2712 3224 2711 3224 2709 3224 2707 3224 2705 3224 2703 3225 2702 3225 2700 3225 2699 3225 2698 3225 2697 3225 2697 3225 2696 3225 2696 3224 2695 3224 2693 3224 2692 3223 2691 3223 2691 3222 2690 3222 2689 3223 2688 3223 2687 3223 2685 3224 2685 3224 2684 3224 2684 3224 2682 3224 2680 3223 2679 3223 2679 3220 2679 3214 2679 3203 2679 3203 2678 3203 2677 3203 2676 3204 2675 3204 2674 3205 2673 3200 2673 3200 2674 3200 2674 3199 2674 3194 2674 3187 2674 3187 2677 3186 2677 3186 2679 3186 2679 3186 2680 3187 2681 3187 2682 3186 2683 3185 2683 3184 2684 3184 2684 3185 2684 3185 2685 3185 2686 3184 2687 3184 2687 3184 2689 3184 2689 3184 2689 3184 2690 3178 2690 3175 2690 3175 2690 3175 2689 3171 2689 3171 2690 3171 2690 3169 2690 3168 2690 3166 2690 3164 2691 3164 2692 3164 2692 3163 2692 3163 2692 3162 2692 3162 2691 3161 2691 3161 2691 3159 2691 3157 2692 3157 2692 3155 2692 3155 2692 3155 2691 3155 2690 3154 2688 3153 2688 3153 2688 3151 2686 3151 2685 3150 2683 3149 2682 3148 2681 3148 2680 3148 2680 3146 2679 3146 2677 3145 2676 3146 2675 3146 2675 3145 2673 3145 2672 3144 2672 3144 2671 3143 2669 3142 2666 3142 2665 3142 2664 3142 2661 3142 2661 3142 2661 3140 2659 3140 2658 3140 2657 3140 2657 3139 2656 3136 2656 3136 2656 3134 2656 3133 2656 3132 2656" />
+<path id="cn" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4234 2110 4234 2109 4235 2108 4236 2107 4236 2106 4234 2105 4234 2105 4233 2105 4233 2106 4232 2107 4230 2107 4230 2106 4228 2106 4228 2105 4227 2104 4226 2104 4224 2104 4224 2103 4224 2102 4223 2102 4223 2101 4222 2101 4221 2101 4220 2101 4220 2100 4220 2098 4219 2097 4219 2097 4220 2096 4220 2096 4219 2095 4216 2095 4215 2095 4213 2095 4212 2096 4212 2096 4212 2096 4211 2097 4211 2097 4211 2097 4210 2097 4209 2096 4207 2093 4207 2093 4207 2092 4207 2092 4206 2091 4205 2090 4204 2089 4203 2089 4203 2089 4202 2089 4201 2089 4201 2089 4199 2088 4199 2089 4197 2088 4195 2086 4194 2085 4191 2083 4188 2082 4188 2082 4187 2081 4186 2078 4184 2078 4182 2077 4182 2078 4180 2077 4179 2077 4179 2077 4178 2077 4178 2078 4177 2078 4177 2078 4176 2078 4176 2077 4176 2077 4175 2077 4175 2078 4175 2079 4175 2081 4174 2082 4173 2082 4173 2082 4173 2083 4172 2083 4172 2083 4171 2083 4171 2083 4170 2082 4170 2081 4169 2081 4169 2080 4169 2080 4169 2079 4168 2079 4167 2079 4166 2078 4165 2078 4165 2078 4165 2077 4163 2076 4162 2076 4161 2076 4159 2075 4158 2074 4157 2074 4156 2074 4156 2074 4156 2074 4157 2072 4156 2071 4152 2069 4152 2069 4152 2069 4151 2069 4151 2068 4151 2068 4149 2068 4147 2068 4147 2068 4147 2068 4146 2068 4144 2067 4143 2066 4142 2065 4142 2065 4141 2064 4140 2063 4140 2062 4139 2061 4138 2060 4138 2061 4137 2061 4135 2063 4134 2063 4133 2062 4132 2059 4132 2059 4133 2059 4134 2058 4133 2057 4132 2056 4132 2055 4133 2053 4133 2053 4133 2053 4133 2052 4133 2052 4133 2051 4132 2051 4131 2050 4130 2049 4130 2049 4130 2048 4129 2048 4128 2048 4129 2047 4128 2044 4127 2043 4127 2043 4127 2043 4127 2043 4129 2042 4129 2042 4130 2042 4131 2042 4131 2042 4132 2042 4132 2041 4133 2041 4133 2041 4133 2042 4133 2043 4133 2044 4133 2044 4134 2044 4136 2046 4136 2046 4138 2045 4139 2044 4139 2044 4140 2043 4140 2043 4140 2043 4141 2043 4142 2043 4144 2042 4144 2041 4145 2041 4145 2041 4145 2041 4145 2040 4145 2039 4144 2037 4143 2037 4143 2037 4143 2036 4143 2036 4143 2034 4143 2034 4141 2032 4141 2032 4140 2032 4140 2032 4140 2032 4139 2032 4138 2031 4137 2030 4136 2029 4136 2029 4135 2029 4134 2028 4134 2028 4134 2027 4134 2027 4134 2026 4134 2025 4134 2024 4134 2023 4134 2023 4134 2022 4134 2022 4133 2020 4133 2020 4133 2019 4133 2018 4133 2018 4133 2018 4134 2018 4134 2018 4134 2017 4135 2017 4136 2017 4136 2016 4137 2016 4137 2015 4137 2015 4137 2014 4137 2014 4136 2013 4132 2011 4131 2011 4131 2011 4131 2011 4130 2010 4129 2010 4128 2010 4127 2010 4127 2010 4126 2010 4126 2009 4125 2009 4125 2008 4125 2006 4124 2005 4124 2005 4124 2005 4124 2004 4124 2004 4123 2002 4122 2001 4122 2000 4121 1999 4121 1998 4121 1998 4122 1996 4122 1996 4122 1996 4121 1995 4121 1996 4120 1996 4119 1996 4119 1996 4119 1996 4118 1996 4118 1995 4117 1995 4117 1996 4116 1996 4116 1996 4115 1996 4114 1996 4113 1996 4113 1996 4113 1996 4112 1996 4112 1996 4111 1996 4109 1995 4107 1995 4103 1994 4101 1993 4101 1993 4101 1992 4100 1992 4100 1992 4099 1992 4098 1991 4098 1991 4098 1990 4098 1989 4096 1990 4095 1990 4094 1990 4093 1990 4092 1990 4091 1990 4091 1990 4091 1989 4091 1988 4091 1988 4090 1987 4090 1987 4089 1987 4089 1987 4089 1987 4088 1987 4088 1987 4088 1986 4088 1986 4088 1985 4089 1985 4090 1984 4089 1980 4089 1980 4087 1978 4087 1977 4086 1977 4086 1976 4085 1976 4084 1976 4084 1975 4083 1975 4082 1975 4081 1976 4080 1976 4080 1976 4080 1976 4080 1975 4080 1975 4080 1974 4080 1974 4079 1973 4079 1973 4078 1972 4077 1972 4077 1972 4076 1972 4076 1972 4075 1972 4073 1972 4073 1972 4070 1971 4068 1971 4068 1971 4066 1971 4065 1971 4063 1969 4063 1969 4065 1968 4067 1968 4068 1967 4069 1967 4069 1967 4069 1967 4070 1968 4072 1968 4072 1968 4074 1967 4074 1966 4076 1965 4074 1963 4074 1963 4072 1963 4072 1962 4072 1962 4071 1961 4072 1961 4072 1961 4073 1959 4072 1959 4072 1958 4071 1958 4071 1957 4072 1955 4071 1955 4071 1955 4070 1955 4070 1954 4070 1952 4070 1951 4070 1950 4070 1950 4070 1950 4071 1949 4071 1949 4071 1948 4070 1947 4068 1947 4063 1945 4063 1945 4059 1945 4059 1945 4058 1946 4058 1946 4058 1947 4056 1947 4056 1947 4054 1946 4054 1946 4054 1945 4054 1945 4053 1943 4053 1942 4052 1942 4052 1941 4053 1941 4053 1941 4053 1941 4054 1941 4054 1940 4055 1940 4054 1940 4053 1939 4053 1938 4051 1936 4051 1935 4051 1935 4052 1934 4052 1934 4051 1932 4054 1932 4054 1932 4055 1932 4056 1930 4056 1929 4055 1928 4055 1928 4054 1927 4055 1927 4057 1923 4057 1923 4060 1922 4061 1922 4061 1922 4062 1922 4062 1922 4063 1922 4063 1922 4064 1922 4064 1921 4065 1921 4066 1920 4067 1919 4069 1918 4069 1918 4070 1918 4071 1918 4071 1918 4071 1918 4071 1918 4070 1917 4070 1917 4070 1916 4070 1916 4071 1915 4071 1915 4071 1915 4072 1916 4072 1916 4073 1916 4073 1916 4074 1916 4077 1916 4077 1916 4078 1915 4081 1914 4081 1914 4082 1913 4083 1914 4083 1914 4083 1915 4083 1915 4084 1918 4084 1918 4084 1919 4084 1919 4087 1919 4088 1919 4088 1918 4089 1918 4090 1917 4090 1917 4090 1917 4092 1917 4094 1917 4094 1918 4096 1917 4097 1917 4097 1916 4097 1916 4097 1915 4098 1915 4098 1915 4098 1914 4099 1914 4099 1914 4099 1912 4099 1912 4102 1908 4103 1907 4103 1907 4104 1907 4105 1907 4106 1907 4107 1907 4107 1907 4109 1908 4110 1907 4111 1907 4112 1907 4112 1908 4113 1908 4114 1908 4116 1908 4117 1907 4118 1907 4119 1907 4121 1907 4121 1907 4122 1907 4122 1907 4123 1907 4124 1906 4124 1906 4125 1905 4125 1905 4125 1905 4125 1904 4125 1904 4126 1904 4126 1904 4127 1903 4127 1903 4127 1903 4127 1902 4127 1902 4127 1901 4129 1900 4132 1899 4132 1899 4132 1899 4133 1899 4136 1897 4138 1897 4139 1896 4142 1895 4145 1894 4147 1894 4148 1894 4148 1894 4149 1894 4149 1893 4150 1893 4150 1892 4150 1892 4151 1891 4151 1891 4152 1891 4152 1891 4153 1891 4154 1891 4155 1891 4156 1891 4156 1891 4157 1891 4157 1891 4157 1890 4157 1889 4157 1889 4157 1888 4157 1888 4157 1887 4157 1886 4157 1886 4155 1882 4156 1881 4157 1879 4157 1879 4157 1878 4158 1878 4158 1879 4159 1878 4162 1878 4162 1877 4162 1877 4161 1877 4161 1877 4160 1876 4159 1876 4159 1875 4163 1874 4163 1873 4164 1873 4164 1874 4165 1874 4165 1874 4166 1874 4166 1873 4166 1873 4165 1871 4165 1868 4164 1867 4163 1865 4162 1864 4162 1863 4161 1863 4161 1862 4161 1862 4161 1861 4161 1861 4160 1859 4159 1858 4159 1857 4159 1857 4159 1856 4159 1856 4159 1854 4158 1853 4158 1853 4159 1850 4161 1848 4161 1848 4160 1847 4157 1847 4157 1847 4156 1847 4155 1847 4154 1847 4153 1847 4153 1847 4151 1846 4151 1845 4154 1843 4155 1843 4155 1843 4155 1843 4156 1843 4157 1843 4159 1843 4160 1843 4161 1842 4165 1841 4165 1841 4167 1841 4169 1841 4171 1840 4173 1840 4175 1839 4176 1839 4177 1839 4177 1839 4178 1839 4178 1839 4178 1839 4179 1838 4180 1838 4180 1838 4181 1838 4181 1839 4181 1839 4182 1839 4182 1840 4182 1841 4184 1841 4184 1841 4185 1841 4185 1841 4186 1841 4187 1841 4187 1840 4188 1840 4189 1840 4189 1840 4190 1840 4190 1840 4192 1842 4192 1842 4193 1842 4193 1842 4194 1842 4194 1841 4194 1841 4195 1840 4195 1839 4195 1839 4195 1838 4195 1838 4195 1837 4195 1837 4194 1836 4194 1836 4194 1836 4193 1836 4192 1836 4191 1836 4190 1836 4190 1836 4190 1835 4190 1835 4190 1834 4191 1832 4191 1832 4192 1831 4192 1831 4192 1830 4193 1830 4193 1829 4193 1829 4193 1828 4194 1827 4194 1826 4194 1826 4194 1825 4194 1824 4195 1824 4195 1823 4195 1823 4196 1823 4196 1822 4197 1820 4197 1818 4198 1818 4198 1818 4198 1817 4199 1816 4199 1815 4200 1814 4200 1814 4200 1814 4201 1813 4201 1813 4201 1812 4201 1810 4201 1809 4201 1809 4202 1808 4203 1808 4203 1808 4204 1808 4204 1808 4204 1809 4205 1809 4205 1809 4206 1809 4206 1809 4207 1810 4208 1810 4208 1810 4210 1811 4210 1811 4212 1811 4212 1811 4213 1811 4213 1811 4214 1812 4214 1812 4215 1812 4216 1812 4218 1812 4218 1812 4219 1812 4220 1812 4220 1812 4221 1812 4222 1812 4226 1812 4227 1812 4227 1812 4228 1812 4229 1813 4229 1813 4229 1814 4229 1814 4229 1814 4229 1815 4232 1814 4232 1814 4232 1813 4233 1813 4234 1813 4234 1813 4234 1813 4234 1813 4235 1812 4236 1812 4236 1812 4236 1811 4237 1811 4237 1811 4239 1811 4241 1811 4242 1810 4244 1808 4244 1808 4244 1806 4244 1805 4243 1805 4243 1804 4242 1804 4242 1803 4242 1803 4243 1802 4243 1802 4242 1800 4242 1798 4241 1798 4241 1797 4241 1796 4242 1796 4242 1796 4242 1795 4242 1794 4242 1794 4243 1793 4244 1790 4245 1790 4245 1789 4245 1789 4246 1789 4246 1789 4247 1789 4249 1789 4250 1789 4251 1789 4251 1789 4252 1789 4252 1789 4253 1789 4254 1788 4254 1788 4254 1788 4255 1788 4255 1788 4256 1788 4256 1788 4258 1787 4258 1787 4259 1786 4259 1786 4260 1785 4261 1785 4261 1784 4262 1783 4261 1782 4261 1781 4260 1781 4260 1780 4261 1779 4263 1778 4267 1778 4267 1778 4268 1778 4270 1778 4270 1778 4271 1779 4271 1779 4272 1779 4272 1779 4273 1778 4273 1778 4276 1777 4277 1777 4278 1777 4278 1777 4278 1778 4279 1780 4279 1780 4279 1781 4278 1781 4278 1781 4277 1781 4277 1782 4278 1783 4279 1784 4280 1784 4280 1784 4281 1784 4282 1784 4282 1785 4281 1786 4280 1786 4280 1786 4280 1787 4281 1787 4281 1787 4284 1788 4284 1788 4284 1788 4286 1788 4289 1789 4290 1790 4290 1791 4290 1791 4290 1792 4290 1792 4291 1793 4294 1794 4296 1794 4296 1794 4297 1795 4297 1795 4298 1796 4298 1796 4300 1796 4301 1796 4303 1795 4305 1795 4306 1795 4306 1796 4306 1796 4307 1797 4309 1799 4311 1798 4312 1798 4312 1798 4312 1798 4314 1798 4314 1798 4314 1799 4314 1799 4314 1800 4315 1800 4317 1801 4318 1802 4319 1803 4319 1803 4320 1804 4320 1807 4321 1808 4322 1809 4324 1811 4325 1812 4325 1812 4326 1812 4326 1812 4327 1812 4327 1813 4328 1814 4329 1816 4329 1816 4329 1817 4329 1818 4330 1819 4329 1819 4329 1819 4328 1822 4327 1823 4327 1823 4328 1825 4328 1825 4328 1825 4329 1826 4329 1826 4329 1828 4329 1828 4328 1828 4328 1828 4326 1829 4326 1830 4324 1832 4323 1834 4323 1836 4324 1836 4325 1837 4325 1837 4325 1838 4327 1840 4329 1840 4329 1840 4331 1840 4331 1841 4332 1841 4332 1841 4332 1841 4333 1842 4335 1842 4335 1842 4336 1841 4336 1841 4336 1842 4337 1842 4337 1843 4342 1843 4345 1842 4345 1842 4346 1842 4346 1842 4349 1843 4352 1844 4355 1843 4356 1843 4357 1843 4357 1843 4359 1843 4359 1843 4360 1844 4362 1844 4363 1844 4363 1844 4363 1843 4364 1844 4365 1844 4365 1844 4365 1844 4366 1844 4369 1844 4369 1844 4370 1845 4371 1845 4371 1845 4372 1845 4372 1846 4372 1846 4374 1846 4374 1847 4375 1847 4376 1847 4378 1848 4378 1848 4380 1850 4381 1850 4382 1851 4382 1851 4383 1851 4385 1852 4386 1853 4387 1853 4387 1853 4388 1854 4388 1854 4393 1856 4395 1855 4396 1855 4397 1855 4399 1855 4399 1855 4399 1856 4398 1856 4398 1857 4398 1857 4398 1859 4398 1860 4398 1860 4399 1860 4400 1860 4401 1860 4402 1862 4403 1863 4403 1863 4403 1864 4403 1864 4403 1864 4404 1866 4404 1866 4405 1867 4405 1868 4406 1868 4406 1869 4406 1869 4406 1870 4406 1871 4406 1871 4407 1872 4407 1872 4410 1874 4414 1877 4414 1880 4415 1880 4417 1880 4420 1880 4420 1880 4422 1880 4424 1880 4424 1880 4427 1879 4430 1879 4431 1880 4432 1880 4433 1880 4434 1880 4436 1880 4438 1880 4441 1881 4443 1881 4444 1881 4445 1881 4446 1881 4448 1882 4453 1882 4458 1882 4460 1882 4461 1882 4464 1883 4472 1881 4473 1881 4474 1881 4476 1881 4477 1881 4483 1881 4486 1881 4488 1881 4492 1882 4495 1883 4498 1883 4501 1884 4504 1887 4505 1887 4505 1888 4511 1889 4512 1889 4512 1889 4513 1889 4516 1889 4518 1890 4522 1892 4526 1893 4527 1893 4534 1895 4537 1895 4545 1894 4545 1895 4544 1897 4547 1897 4550 1897 4551 1897 4552 1898 4556 1896 4558 1895 4560 1894 4561 1893 4566 1892 4570 1890 4576 1888 4581 1887 4582 1887 4584 1887 4584 1887 4588 1886 4588 1885 4592 1884 4592 1884 4592 1884 4593 1885 4593 1885 4599 1885 4604 1884 4604 1884 4605 1885 4608 1885 4611 1885 4614 1885 4616 1884 4618 1884 4621 1885 4621 1885 4622 1884 4624 1884 4625 1884 4627 1883 4628 1882 4631 1881 4632 1881 4634 1881 4634 1881 4638 1880 4639 1879 4639 1879 4639 1878 4640 1878 4641 1877 4642 1877 4642 1876 4643 1876 4643 1875 4644 1874 4646 1872 4648 1871 4649 1870 4652 1869 4653 1869 4656 1868 4658 1867 4660 1865 4660 1865 4662 1865 4663 1865 4663 1864 4664 1863 4663 1862 4662 1861 4661 1860 4659 1859 4659 1859 4657 1857 4656 1856 4655 1854 4655 1854 4655 1853 4655 1853 4655 1852 4656 1852 4656 1852 4656 1851 4657 1851 4657 1850 4657 1850 4657 1849 4657 1849 4658 1847 4660 1844 4660 1844 4662 1843 4664 1842 4665 1842 4665 1842 4665 1842 4665 1843 4668 1843 4670 1843 4671 1842 4672 1843 4673 1844 4673 1845 4674 1845 4678 1846 4682 1847 4684 1847 4688 1847 4689 1848 4690 1848 4691 1847 4692 1847 4693 1846 4695 1845 4695 1845 4696 1845 4696 1845 4697 1845 4698 1844 4698 1844 4700 1843 4701 1842 4702 1841 4703 1840 4704 1839 4705 1838 4705 1838 4708 1837 4709 1837 4711 1838 4711 1838 4715 1837 4717 1837 4718 1837 4719 1837 4723 1836 4725 1835 4727 1834 4728 1833 4729 1833 4730 1833 4730 1833 4731 1832 4731 1832 4732 1831 4732 1830 4732 1830 4732 1829 4732 1829 4732 1828 4734 1826 4734 1826 4734 1826 4735 1825 4736 1824 4737 1824 4737 1823 4739 1823 4740 1822 4740 1822 4741 1822 4741 1821 4742 1822 4745 1822 4750 1822 4750 1821 4750 1821 4750 1820 4751 1819 4751 1819 4753 1818 4754 1819 4755 1820 4757 1819 4758 1819 4758 1818 4758 1818 4759 1818 4762 1817 4764 1816 4765 1816 4766 1816 4767 1817 4767 1817 4772 1817 4772 1816 4773 1816 4774 1815 4774 1815 4775 1816 4776 1816 4776 1817 4777 1817 4777 1817 4780 1818 4781 1818 4782 1818 4782 1818 4783 1818 4783 1818 4784 1818 4786 1818 4787 1818 4787 1818 4788 1818 4789 1817 4790 1817 4791 1816 4790 1813 4790 1813 4788 1812 4788 1812 4788 1810 4788 1810 4787 1809 4786 1808 4786 1808 4784 1807 4783 1806 4782 1806 4781 1805 4781 1804 4780 1804 4778 1803 4778 1802 4778 1801 4777 1801 4775 1800 4773 1800 4772 1799 4770 1798 4769 1797 4768 1796 4766 1796 4763 1795 4761 1796 4758 1796 4757 1796 4757 1796 4754 1798 4754 1798 4754 1798 4750 1801 4749 1801 4749 1801 4746 1799 4742 1798 4740 1798 4739 1798 4737 1798 4736 1798 4734 1798 4732 1798 4730 1799 4729 1799 4728 1800 4727 1801 4727 1801 4721 1797 4721 1794 4722 1793 4725 1792 4725 1791 4725 1791 4725 1790 4725 1789 4725 1788 4727 1785 4727 1785 4729 1783 4729 1782 4730 1780 4732 1777 4733 1775 4735 1773 4736 1771 4737 1770 4738 1768 4739 1767 4739 1767 4740 1767 4743 1768 4743 1768 4743 1769 4746 1769 4747 1770 4747 1770 4748 1770 4748 1770 4749 1770 4749 1770 4751 1770 4752 1770 4752 1770 4753 1770 4756 1771 4756 1772 4758 1772 4761 1770 4762 1769 4763 1769 4766 1767 4767 1766 4768 1766 4768 1766 4769 1765 4770 1765 4770 1765 4771 1765 4774 1764 4774 1764 4775 1764 4776 1764 4777 1764 4777 1764 4778 1764 4778 1764 4779 1764 4781 1762 4781 1761 4781 1761 4781 1761 4781 1759 4781 1759 4781 1758 4780 1758 4780 1758 4779 1758 4779 1758 4778 1758 4778 1757 4779 1757 4779 1757 4780 1756 4780 1756 4780 1754 4781 1754 4783 1753 4784 1752 4784 1751 4784 1750 4784 1749 4785 1748 4786 1748 4786 1748 4787 1748 4787 1747 4788 1747 4788 1745 4788 1745 4788 1745 4789 1744 4789 1743 4791 1742 4791 1741 4791 1740 4791 1740 4793 1738 4793 1737 4794 1737 4795 1737 4795 1737 4797 1736 4800 1734 4801 1734 4802 1733 4802 1733 4803 1732 4804 1730 4804 1729 4804 1729 4803 1728 4802 1727 4802 1726 4802 1725 4803 1725 4803 1723 4799 1722 4799 1722 4796 1722 4796 1722 4795 1723 4795 1723 4794 1723 4793 1723 4792 1722 4792 1722 4792 1720 4794 1719 4794 1719 4794 1719 4796 1718 4797 1718 4797 1717 4799 1716 4801 1715 4803 1713 4805 1712 4806 1712 4809 1711 4809 1712 4810 1712 4811 1712 4811 1712 4812 1711 4813 1711 4813 1711 4814 1711 4814 1711 4815 1711 4816 1711 4816 1711 4817 1710 4818 1710 4820 1710 4821 1709 4821 1709 4823 1709 4823 1709 4824 1709 4825 1709 4828 1709 4831 1709 4833 1709 4835 1709 4836 1709 4837 1709 4837 1709 4838 1709 4838 1708 4841 1708 4842 1708 4842 1708 4843 1708 4843 1707 4844 1707 4844 1707 4845 1707 4845 1707 4846 1708 4847 1708 4847 1707 4848 1707 4849 1707 4853 1708 4854 1708 4854 1709 4855 1709 4856 1709 4856 1710 4857 1711 4858 1711 4858 1710 4859 1710 4859 1710 4860 1710 4860 1711 4861 1711 4861 1712 4862 1713 4863 1713 4864 1713 4864 1713 4865 1713 4866 1713 4867 1713 4869 1714 4870 1714 4870 1713 4871 1713 4871 1713 4873 1713 4874 1713 4874 1713 4876 1714 4877 1714 4878 1714 4879 1715 4881 1715 4881 1715 4883 1716 4883 1717 4883 1717 4882 1717 4882 1718 4882 1718 4883 1718 4883 1718 4885 1718 4886 1719 4887 1720 4888 1720 4889 1719 4889 1720 4888 1721 4887 1722 4887 1722 4887 1723 4888 1723 4888 1723 4889 1723 4890 1723 4891 1724 4891 1724 4891 1724 4891 1724 4891 1725 4891 1725 4892 1725 4893 1726 4893 1726 4893 1727 4893 1728 4892 1729 4893 1729 4893 1729 4894 1729 4895 1729 4895 1729 4896 1730 4896 1731 4896 1731 4895 1731 4895 1732 4895 1732 4895 1733 4897 1735 4899 1737 4899 1738 4900 1741 4901 1741 4902 1742 4902 1742 4902 1742 4901 1742 4901 1743 4900 1743 4901 1744 4901 1744 4902 1744 4902 1744 4902 1743 4902 1743 4903 1743 4903 1743 4902 1744 4902 1745 4902 1745 4902 1746 4902 1747 4904 1749 4905 1749 4906 1749 4906 1750 4907 1751 4908 1752 4908 1753 4908 1754 4909 1754 4909 1755 4909 1755 4909 1756 4908 1757 4909 1759 4909 1759 4909 1759 4910 1759 4910 1760 4911 1760 4912 1760 4913 1760 4913 1761 4913 1761 4913 1761 4913 1762 4912 1762 4912 1763 4911 1763 4911 1764 4912 1767 4912 1767 4912 1767 4912 1767 4913 1768 4914 1768 4914 1768 4914 1769 4914 1769 4915 1769 4917 1770 4917 1770 4921 1771 4922 1771 4923 1771 4923 1771 4926 1771 4928 1770 4930 1770 4931 1771 4932 1771 4932 1771 4933 1772 4935 1773 4936 1773 4936 1774 4936 1774 4937 1774 4937 1774 4938 1774 4938 1774 4938 1774 4942 1773 4942 1773 4943 1773 4944 1773 4944 1774 4944 1775 4944 1775 4945 1775 4945 1776 4946 1775 4946 1775 4947 1776 4947 1776 4947 1777 4947 1777 4948 1777 4950 1779 4950 1779 4953 1781 4955 1782 4955 1782 4956 1782 4957 1782 4957 1782 4958 1782 4959 1782 4959 1782 4959 1782 4960 1782 4960 1782 4960 1782 4961 1782 4962 1782 4962 1782 4962 1782 4962 1783 4961 1784 4960 1786 4960 1786 4961 1788 4963 1789 4965 1791 4965 1791 4963 1793 4962 1794 4962 1794 4962 1795 4963 1796 4964 1796 4965 1797 4966 1797 4966 1798 4966 1798 4966 1799 4966 1799 4966 1800 4966 1800 4967 1801 4967 1801 4968 1801 4969 1801 4970 1801 4971 1801 4971 1800 4972 1800 4974 1800 4974 1800 4975 1800 4976 1800 4976 1801 4977 1801 4980 1801 4982 1801 4985 1801 4987 1800 4987 1800 4988 1800 4989 1800 4989 1800 4990 1800 4990 1800 4991 1800 4992 1800 4992 1800 4993 1800 4994 1798 4997 1796 5001 1794 5002 1794 5004 1794 5006 1794 5006 1795 5007 1795 5008 1795 5008 1794 5008 1794 5008 1793 5009 1793 5011 1792 5013 1792 5015 1791 5016 1791 5016 1791 5019 1790 5022 1790 5022 1790 5023 1790 5023 1790 5026 1791 5027 1792 5027 1792 5027 1792 5026 1792 5026 1793 5026 1793 5026 1794 5025 1794 5025 1795 5025 1795 5024 1795 5024 1796 5025 1797 5026 1799 5027 1799 5028 1800 5027 1801 5024 1804 5023 1805 5023 1805 5022 1805 5021 1805 5021 1805 5020 1805 5020 1805 5018 1807 5018 1808 5018 1809 5019 1810 5019 1810 5018 1810 5017 1811 5017 1811 5016 1813 5016 1814 5016 1816 5016 1817 5015 1817 5015 1818 5015 1818 5015 1818 5014 1819 5013 1820 5013 1821 5014 1821 5014 1822 5014 1824 5013 1825 5011 1825 5011 1827 5010 1829 5009 1830 5008 1830 5008 1830 5007 1831 5007 1831 5007 1833 5007 1834 5006 1834 5005 1835 5004 1835 5003 1836 5003 1836 5002 1836 5002 1837 5001 1837 5001 1839 5001 1840 5001 1841 5001 1841 5001 1842 5000 1842 5000 1843 4999 1843 4998 1843 4997 1843 4996 1843 4992 1842 4989 1841 4988 1841 4986 1841 4985 1840 4983 1840 4983 1840 4982 1839 4982 1839 4982 1838 4981 1838 4981 1838 4979 1840 4978 1842 4978 1842 4977 1842 4975 1844 4973 1844 4972 1844 4972 1845 4971 1845 4970 1845 4970 1845 4969 1845 4969 1845 4968 1845 4967 1846 4967 1847 4968 1847 4968 1848 4969 1849 4969 1850 4971 1857 4972 1858 4972 1859 4972 1859 4971 1859 4971 1860 4971 1863 4970 1867 4971 1868 4971 1868 4972 1868 4972 1868 4972 1868 4972 1869 4972 1871 4970 1873 4969 1875 4969 1875 4969 1876 4969 1876 4969 1877 4969 1877 4968 1878 4966 1878 4965 1878 4965 1878 4964 1878 4964 1878 4962 1878 4960 1879 4959 1879 4958 1880 4958 1880 4959 1881 4959 1881 4960 1881 4961 1881 4961 1882 4961 1882 4961 1883 4961 1884 4961 1885 4961 1885 4960 1885 4960 1883 4960 1883 4957 1882 4957 1881 4955 1880 4955 1879 4955 1879 4955 1878 4955 1877 4954 1877 4952 1876 4951 1876 4950 1876 4950 1876 4949 1876 4949 1877 4948 1878 4947 1880 4947 1883 4947 1883 4947 1884 4947 1884 4947 1885 4944 1885 4943 1885 4941 1885 4939 1886 4939 1887 4939 1888 4938 1889 4937 1889 4936 1890 4936 1890 4935 1890 4935 1891 4934 1891 4934 1891 4933 1891 4930 1891 4929 1892 4927 1892 4927 1892 4927 1891 4926 1891 4925 1891 4925 1891 4924 1891 4920 1892 4920 1892 4920 1893 4921 1894 4921 1895 4922 1896 4923 1897 4923 1897 4924 1897 4924 1897 4924 1898 4924 1899 4923 1901 4923 1901 4922 1902 4921 1902 4920 1901 4920 1901 4918 1900 4917 1901 4917 1901 4915 1901 4913 1901 4908 1900 4906 1899 4906 1898 4905 1898 4904 1897 4904 1897 4904 1896 4902 1895 4902 1895 4901 1895 4901 1896 4900 1896 4899 1897 4898 1897 4897 1898 4897 1898 4897 1899 4896 1901 4895 1902 4895 1902 4894 1902 4894 1903 4893 1903 4892 1904 4892 1905 4892 1905 4889 1907 4888 1909 4886 1910 4883 1910 4883 1910 4882 1911 4881 1912 4880 1912 4879 1912 4878 1913 4877 1913 4877 1913 4876 1913 4874 1914 4872 1915 4872 1916 4872 1916 4871 1916 4870 1916 4869 1917 4867 1919 4867 1919 4866 1919 4864 1920 4862 1922 4862 1922 4862 1922 4861 1922 4861 1922 4861 1923 4861 1923 4861 1924 4860 1925 4858 1926 4856 1927 4855 1927 4852 1926 4851 1926 4851 1926 4848 1927 4846 1928 4846 1927 4843 1927 4843 1928 4844 1928 4844 1928 4843 1929 4842 1929 4840 1929 4839 1930 4837 1930 4836 1931 4833 1932 4831 1933 4830 1933 4830 1933 4829 1933 4828 1934 4828 1934 4827 1935 4826 1937 4823 1939 4822 1939 4819 1939 4818 1940 4818 1940 4818 1941 4818 1941 4819 1941 4819 1942 4815 1943 4815 1943 4814 1943 4814 1943 4813 1943 4813 1943 4812 1943 4811 1943 4811 1944 4810 1944 4810 1943 4809 1941 4810 1940 4811 1940 4811 1941 4815 1939 4816 1939 4817 1939 4817 1939 4818 1938 4818 1938 4819 1938 4818 1937 4817 1937 4817 1936 4820 1934 4818 1934 4818 1934 4816 1934 4816 1934 4815 1933 4815 1933 4815 1932 4815 1931 4814 1931 4813 1931 4813 1931 4813 1932 4811 1931 4812 1930 4815 1930 4816 1930 4816 1929 4816 1929 4815 1928 4815 1927 4816 1926 4819 1925 4819 1925 4820 1925 4820 1925 4822 1924 4824 1922 4825 1920 4827 1918 4828 1916 4828 1916 4828 1915 4826 1913 4824 1912 4823 1911 4820 1910 4819 1910 4818 1910 4817 1910 4817 1910 4816 1910 4816 1909 4813 1909 4811 1909 4810 1909 4809 1910 4809 1910 4808 1910 4807 1911 4807 1912 4807 1912 4808 1912 4808 1912 4806 1913 4806 1913 4805 1913 4805 1913 4803 1915 4800 1917 4800 1919 4800 1920 4799 1920 4798 1921 4796 1921 4794 1922 4792 1923 4791 1923 4790 1923 4789 1924 4789 1924 4786 1925 4785 1925 4784 1926 4781 1928 4780 1931 4780 1933 4779 1933 4779 1934 4778 1934 4777 1936 4776 1937 4775 1937 4774 1938 4774 1937 4775 1937 4775 1937 4773 1937 4772 1937 4772 1937 4771 1937 4770 1937 4769 1937 4768 1937 4768 1937 4768 1938 4766 1939 4766 1939 4765 1939 4764 1938 4763 1938 4763 1937 4763 1937 4762 1937 4762 1936 4761 1936 4760 1936 4760 1936 4758 1936 4757 1937 4757 1937 4757 1937 4756 1938 4755 1938 4755 1939 4754 1941 4753 1942 4753 1943 4753 1943 4752 1945 4752 1945 4752 1946 4752 1946 4753 1946 4754 1948 4754 1949 4754 1949 4754 1949 4755 1950 4755 1950 4756 1950 4757 1951 4757 1951 4758 1952 4760 1953 4761 1953 4763 1953 4765 1953 4767 1954 4767 1954 4769 1954 4771 1953 4772 1953 4773 1953 4775 1955 4776 1957 4776 1957 4776 1959 4776 1961 4776 1961 4775 1962 4775 1962 4775 1962 4775 1963 4775 1965 4775 1966 4775 1967 4775 1967 4778 1969 4778 1969 4779 1969 4780 1969 4780 1969 4782 1970 4783 1970 4783 1969 4784 1969 4784 1969 4785 1969 4786 1969 4787 1969 4788 1969 4788 1969 4789 1968 4790 1968 4790 1967 4790 1967 4789 1966 4789 1966 4792 1965 4792 1965 4793 1965 4794 1964 4795 1963 4797 1962 4797 1961 4797 1961 4797 1961 4798 1960 4800 1960 4801 1959 4802 1959 4803 1959 4803 1958 4803 1958 4806 1958 4807 1959 4807 1959 4807 1959 4810 1961 4810 1962 4810 1962 4814 1963 4815 1964 4817 1965 4818 1965 4818 1965 4819 1964 4821 1964 4823 1964 4823 1964 4824 1963 4825 1963 4826 1963 4826 1963 4826 1964 4826 1964 4826 1965 4827 1965 4833 1965 4833 1968 4832 1969 4832 1969 4831 1969 4831 1970 4831 1969 4830 1971 4830 1972 4831 1971 4832 1971 4832 1973 4832 1973 4829 1974 4829 1974 4827 1974 4826 1974 4826 1972 4824 1972 4823 1972 4822 1972 4823 1973 4819 1974 4817 1975 4816 1976 4816 1975 4816 1975 4817 1974 4817 1974 4816 1974 4815 1974 4815 1975 4814 1976 4813 1976 4812 1976 4811 1977 4810 1977 4810 1977 4809 1977 4809 1978 4809 1978 4808 1978 4807 1978 4807 1978 4806 1977 4805 1977 4805 1977 4804 1978 4804 1978 4803 1979 4804 1979 4804 1979 4805 1978 4805 1978 4805 1978 4807 1979 4807 1979 4806 1981 4806 1981 4805 1982 4805 1981 4805 1980 4804 1980 4804 1980 4803 1981 4803 1981 4802 1983 4803 1985 4798 1987 4797 1987 4796 1987 4797 1986 4797 1985 4797 1984 4797 1983 4796 1983 4796 1984 4794 1984 4794 1984 4793 1984 4793 1985 4793 1986 4795 1988 4795 1988 4794 1989 4793 1989 4793 1990 4790 1992 4790 1993 4789 1994 4787 1994 4786 1994 4786 1995 4786 1995 4785 1996 4784 1997 4784 1998 4783 1999 4782 1999 4782 1999 4782 2000 4782 2001 4782 2001 4782 2002 4781 2002 4780 2002 4779 2002 4779 2003 4779 2003 4779 2005 4779 2007 4779 2007 4780 2007 4780 2008 4781 2008 4781 2007 4782 2007 4783 2008 4783 2008 4783 2008 4783 2009 4784 2010 4786 2011 4788 2012 4789 2012 4789 2012 4790 2012 4790 2012 4791 2013 4796 2014 4797 2017 4797 2017 4798 2019 4798 2020 4799 2023 4800 2025 4800 2027 4801 2027 4801 2028 4802 2028 4802 2029 4802 2030 4802 2030 4803 2032 4804 2033 4804 2033 4806 2036 4806 2037 4806 2039 4805 2040 4805 2040 4805 2041 4805 2041 4807 2042 4809 2043 4810 2044 4812 2044 4812 2044 4813 2045 4814 2046 4814 2047 4814 2048 4815 2050 4815 2050 4816 2050 4817 2050 4818 2051 4818 2051 4819 2051 4819 2051 4821 2053 4821 2053 4822 2055 4822 2056 4822 2056 4822 2057 4821 2057 4819 2056 4818 2056 4817 2056 4817 2055 4815 2054 4815 2054 4812 2053 4809 2054 4807 2054 4806 2053 4806 2052 4805 2052 4805 2051 4805 2051 4804 2051 4803 2050 4803 2050 4802 2050 4801 2050 4800 2050 4799 2050 4799 2050 4797 2051 4797 2051 4797 2052 4796 2052 4795 2052 4795 2052 4795 2052 4793 2052 4793 2052 4792 2052 4791 2051 4790 2050 4790 2049 4790 2048 4789 2047 4789 2046 4788 2046 4788 2046 4787 2046 4787 2047 4786 2047 4785 2048 4786 2048 4786 2048 4787 2048 4787 2048 4788 2048 4788 2049 4788 2049 4789 2050 4790 2050 4790 2051 4790 2052 4792 2052 4793 2053 4794 2053 4795 2053 4795 2053 4796 2053 4798 2052 4799 2051 4800 2051 4803 2052 4803 2052 4804 2053 4804 2054 4803 2054 4803 2054 4803 2054 4804 2055 4805 2055 4806 2055 4807 2055 4807 2055 4809 2056 4811 2057 4812 2058 4813 2059 4813 2060 4815 2061 4817 2062 4818 2062 4818 2062 4819 2063 4819 2063 4819 2064 4820 2064 4820 2065 4821 2065 4822 2067 4822 2068 4822 2069 4822 2069 4821 2070 4820 2070 4820 2070 4819 2070 4819 2070 4818 2070 4817 2070 4815 2070 4815 2071 4814 2071 4813 2072 4813 2072 4812 2072 4812 2072 4811 2073 4808 2074 4807 2075 4807 2075 4807 2076 4807 2076 4807 2077 4806 2078 4805 2078 4804 2078 4804 2078 4803 2077 4803 2077 4802 2077 4799 2077 4798 2077 4794 2080 4797 2080 4798 2079 4799 2078 4799 2078 4800 2078 4800 2079 4800 2079 4801 2080 4801 2081 4801 2081 4801 2082 4802 2082 4804 2082 4804 2082 4805 2081 4809 2079 4810 2079 4810 2079 4811 2078 4811 2078 4812 2078 4812 2079 4813 2079 4814 2079 4815 2080 4816 2081 4816 2081 4817 2083 4818 2083 4818 2084 4819 2084 4820 2084 4821 2085 4823 2085 4824 2085 4825 2085 4825 2085 4826 2085 4825 2086 4824 2086 4823 2086 4823 2086 4821 2087 4820 2089 4819 2090 4818 2091 4816 2091 4816 2091 4815 2091 4815 2091 4814 2092 4815 2093 4815 2093 4815 2092 4819 2091 4820 2091 4820 2091 4820 2092 4820 2092 4821 2091 4821 2091 4820 2091 4819 2091 4820 2090 4822 2089 4823 2089 4823 2090 4822 2093 4822 2093 4822 2095 4822 2095 4823 2095 4823 2095 4823 2095 4823 2096 4821 2097 4821 2096 4820 2096 4821 2095 4820 2093 4820 2094 4820 2095 4820 2096 4818 2096 4818 2096 4817 2095 4817 2095 4816 2096 4815 2096 4814 2097 4814 2097 4815 2098 4815 2098 4816 2098 4816 2098 4817 2097 4818 2098 4819 2099 4819 2100 4819 2101 4817 2100 4816 2100 4816 2100 4815 2100 4816 2101 4816 2101 4817 2101 4818 2102 4818 2103 4817 2104 4816 2104 4816 2104 4814 2104 4813 2104 4812 2103 4810 2102 4810 2102 4812 2104 4814 2104 4815 2104 4815 2105 4816 2105 4816 2105 4816 2107 4816 2107 4817 2109 4818 2110 4817 2111 4817 2110 4816 2110 4816 2110 4815 2110 4814 2110 4814 2111 4814 2112 4813 2113 4812 2112 4812 2112 4812 2111 4812 2111 4811 2110 4811 2109 4810 2109 4809 2111 4809 2111 4809 2112 4809 2113 4807 2115 4807 2116 4805 2115 4803 2115 4801 2114 4801 2115 4803 2115 4805 2116 4805 2117 4804 2118 4803 2120 4802 2121 4802 2121 4802 2122 4801 2122 4801 2122 4801 2123 4801 2123 4802 2123 4802 2124 4802 2125 4801 2125 4800 2126 4800 2127 4800 2128 4800 2128 4799 2128 4799 2128 4799 2128 4798 2128 4798 2128 4798 2128 4797 2127 4797 2127 4797 2126 4796 2126 4795 2126 4795 2127 4794 2128 4795 2128 4795 2127 4796 2127 4797 2128 4798 2129 4798 2130 4797 2130 4796 2129 4796 2129 4795 2130 4795 2131 4795 2132 4795 2133 4794 2132 4792 2133 4792 2134 4792 2134 4793 2134 4793 2135 4794 2137 4793 2137 4792 2138 4791 2138 4790 2139 4789 2139 4789 2139 4789 2138 4789 2138 4790 2137 4791 2137 4791 2137 4793 2135 4791 2135 4790 2135 4790 2136 4790 2137 4790 2137 4788 2136 4788 2135 4787 2134 4786 2135 4787 2135 4787 2136 4787 2136 4787 2136 4787 2136 4786 2135 4786 2135 4786 2135 4785 2135 4784 2135 4784 2137 4785 2137 4785 2138 4786 2138 4786 2137 4787 2138 4788 2138 4789 2140 4788 2141 4788 2141 4787 2140 4786 2139 4785 2140 4785 2140 4786 2142 4787 2142 4787 2142 4788 2141 4788 2141 4789 2141 4791 2141 4791 2142 4790 2142 4789 2142 4789 2142 4788 2142 4788 2143 4788 2143 4786 2143 4786 2143 4785 2144 4784 2146 4782 2147 4782 2147 4781 2147 4779 2145 4777 2145 4780 2148 4781 2148 4783 2148 4783 2148 4784 2147 4784 2147 4784 2147 4785 2147 4787 2147 4787 2147 4787 2148 4786 2148 4785 2149 4785 2149 4785 2150 4786 2151 4785 2152 4784 2152 4783 2152 4783 2153 4783 2153 4783 2154 4784 2154 4785 2154 4786 2157 4786 2158 4786 2158 4786 2158 4785 2158 4785 2157 4785 2157 4785 2157 4784 2156 4782 2155 4782 2154 4781 2154 4781 2154 4781 2154 4780 2155 4779 2156 4778 2156 4777 2156 4777 2157 4778 2158 4780 2158 4780 2158 4781 2159 4780 2160 4778 2161 4777 2162 4776 2161 4776 2161 4777 2160 4777 2160 4777 2159 4776 2159 4775 2159 4774 2159 4774 2160 4774 2160 4775 2160 4775 2161 4774 2162 4773 2162 4773 2162 4774 2162 4775 2164 4776 2164 4775 2164 4771 2166 4771 2166 4771 2165 4771 2165 4771 2164 4770 2164 4769 2165 4770 2167 4770 2167 4771 2166 4772 2167 4772 2168 4770 2170 4770 2170 4769 2171 4769 2171 4769 2170 4769 2170 4768 2170 4767 2169 4767 2169 4766 2169 4765 2170 4764 2171 4763 2169 4763 2169 4762 2168 4760 2169 4759 2170 4759 2171 4760 2171 4761 2171 4760 2172 4759 2172 4758 2172 4758 2172 4757 2171 4757 2172 4756 2172 4757 2172 4758 2173 4759 2173 4760 2173 4761 2174 4762 2174 4762 2175 4760 2176 4759 2177 4758 2179 4756 2180 4755 2181 4755 2180 4756 2179 4756 2179 4756 2178 4755 2179 4754 2180 4754 2181 4751 2182 4750 2183 4749 2183 4748 2183 4748 2185 4747 2185 4747 2185 4746 2186 4745 2185 4744 2185 4742 2185 4742 2186 4742 2186 4742 2188 4741 2188 4741 2189 4740 2189 4738 2189 4737 2189 4737 2189 4736 2188 4736 2189 4736 2189 4737 2190 4737 2190 4738 2190 4740 2190 4740 2191 4740 2192 4740 2192 4736 2192 4736 2195 4736 2195 4735 2196 4734 2196 4733 2196 4733 2196 4731 2196 4731 2197 4730 2198 4729 2198 4729 2197 4726 2199 4725 2199 4725 2199 4724 2198 4722 2197 4722 2197 4721 2197 4720 2198 4721 2200 4720 2201 4718 2200 4715 2199 4716 2198 4714 2198 4713 2199 4711 2199 4710 2200 4711 2201 4710 2202 4710 2203 4710 2203 4710 2202 4709 2202 4708 2202 4708 2202 4707 2201 4707 2200 4707 2200 4708 2199 4708 2199 4709 2199 4708 2198 4707 2199 4705 2199 4704 2200 4704 2201 4704 2202 4705 2203 4706 2203 4704 2204 4703 2203 4703 2202 4702 2202 4702 2201 4702 2201 4701 2202 4700 2202 4700 2202 4699 2202 4699 2204 4700 2204 4701 2204 4702 2204 4702 2205 4701 2205 4701 2205 4700 2205 4700 2206 4701 2207 4701 2207 4699 2206 4696 2205 4695 2205 4694 2205 4694 2205 4695 2204 4696 2203 4696 2203 4696 2203 4695 2203 4695 2203 4694 2204 4693 2202 4693 2201 4692 2199 4690 2198 4689 2197 4689 2195 4689 2195 4688 2195 4688 2194 4689 2194 4690 2193 4691 2193 4693 2193 4693 2193 4691 2193 4691 2193 4688 2194 4688 2195 4688 2195 4688 2196 4687 2196 4686 2197 4686 2197 4687 2198 4688 2199 4687 2199 4687 2200 4688 2200 4689 2201 4689 2202 4689 2203 4688 2204 4688 2205 4689 2205 4689 2205 4689 2207 4689 2208 4688 2208 4688 2208 4688 2208 4687 2208 4687 2208 4684 2205 4684 2205 4684 2204 4683 2203 4683 2202 4682 2203 4682 2203 4683 2204 4684 2204 4685 2206 4686 2207 4686 2208 4686 2208 4685 2208 4685 2208 4684 2209 4684 2210 4684 2210 4683 2210 4682 2210 4682 2209 4682 2208 4681 2208 4681 2208 4680 2209 4680 2209 4680 2210 4680 2211 4680 2212 4680 2212 4680 2213 4679 2213 4678 2213 4678 2213 4677 2212 4677 2212 4676 2212 4675 2213 4675 2214 4674 2214 4674 2215 4673 2215 4673 2215 4672 2214 4670 2215 4670 2215 4669 2216 4668 2216 4668 2216 4665 2214 4663 2213 4663 2213 4662 2212 4662 2213 4662 2214 4662 2214 4663 2214 4663 2215 4663 2215 4662 2216 4662 2216 4661 2216 4661 2216 4661 2215 4659 2215 4659 2215 4660 2215 4660 2216 4660 2217 4660 2217 4659 2217 4659 2218 4658 2219 4655 2219 4654 2219 4653 2219 4650 2220 4649 2220 4649 2219 4648 2219 4648 2219 4648 2220 4648 2220 4648 2220 4649 2219 4648 2220 4646 2221 4645 2221 4645 2221 4645 2221 4644 2221 4643 2221 4643 2222 4643 2222 4642 2223 4642 2223 4642 2221 4643 2221 4643 2221 4644 2221 4644 2220 4642 2221 4642 2221 4642 2222 4642 2222 4642 2223 4642 2223 4640 2224 4640 2224 4639 2224 4639 2224 4639 2223 4639 2222 4639 2222 4639 2221 4638 2221 4638 2222 4638 2223 4638 2223 4638 2224 4637 2225 4637 2225 4635 2226 4634 2227 4634 2228 4634 2230 4635 2230 4636 2230 4637 2230 4637 2229 4638 2230 4638 2230 4638 2231 4638 2231 4638 2232 4638 2231 4638 2231 4637 2230 4637 2231 4637 2233 4638 2233 4638 2233 4638 2234 4639 2234 4640 2234 4640 2235 4640 2235 4640 2236 4639 2238 4638 2238 4637 2239 4636 2239 4635 2239 4634 2239 4634 2239 4633 2239 4633 2238 4632 2238 4631 2239 4631 2239 4630 2237 4631 2237 4632 2237 4632 2237 4632 2236 4632 2236 4631 2236 4630 2235 4628 2233 4628 2233 4627 2230 4627 2229 4627 2228 4627 2227 4627 2227 4627 2225 4628 2222 4629 2221 4630 2221 4630 2221 4631 2220 4631 2220 4630 2219 4629 2220 4629 2219 4629 2218 4628 2218 4628 2218 4628 2218 4628 2219 4628 2219 4628 2219 4628 2220 4627 2219 4626 2218 4625 2216 4625 2216 4625 2216 4624 2216 4625 2218 4625 2219 4625 2219 4624 2219 4623 2220 4622 2220 4622 2220 4621 2220 4620 2220 4619 2221 4618 2221 4617 2220 4617 2219 4618 2219 4618 2219 4618 2219 4618 2218 4618 2218 4617 2217 4616 2217 4615 2217 4614 2216 4614 2216 4614 2215 4615 2215 4614 2214 4613 2214 4613 2214 4613 2214 4614 2215 4613 2216 4613 2216 4614 2217 4613 2217 4613 2217 4612 2217 4612 2218 4611 2217 4610 2216 4610 2214 4610 2213 4610 2213 4607 2212 4607 2213 4607 2213 4608 2215 4609 2216 4608 2218 4607 2218 4606 2218 4606 2218 4606 2218 4607 2217 4607 2217 4605 2216 4605 2216 4605 2217 4605 2218 4605 2218 4604 2219 4603 2219 4604 2218 4603 2218 4602 2218 4601 2219 4600 2218 4600 2218 4600 2218 4600 2219 4599 2218 4599 2218 4598 2217 4597 2216 4596 2217 4596 2217 4595 2217 4595 2217 4593 2218 4590 2218 4590 2217 4590 2217 4589 2216 4589 2215 4588 2216 4588 2216 4587 2216 4584 2214 4584 2214 4585 2213 4585 2212 4584 2212 4582 2212 4582 2211 4580 2211 4579 2211 4579 2208 4579 2208 4579 2208 4578 2206 4578 2206 4577 2206 4577 2206 4577 2204 4577 2204 4577 2204 4578 2201 4578 2201 4580 2201 4581 2199 4580 2198 4580 2198 4579 2197 4578 2197 4576 2196 4576 2197 4576 2197 4574 2197 4573 2197 4572 2197 4572 2197 4572 2196 4572 2196 4571 2196 4570 2195 4569 2195 4568 2195 4568 2196 4568 2196 4566 2197 4565 2196 4565 2195 4564 2195 4562 2194 4561 2194 4561 2194 4561 2193 4561 2193 4561 2193 4561 2192 4558 2191 4558 2190 4556 2190 4551 2192 4549 2194 4550 2196 4548 2198 4547 2198 4547 2198 4545 2198 4545 2198 4544 2199 4543 2199 4542 2200 4542 2200 4540 2199 4540 2199 4540 2198 4538 2198 4537 2199 4537 2200 4536 2202 4536 2202 4536 2203 4536 2203 4535 2203 4534 2202 4533 2201 4533 2201 4531 2199 4530 2199 4529 2200 4529 2201 4529 2202 4528 2202 4528 2202 4528 2201 4527 2201 4527 2200 4526 2199 4526 2198 4525 2198 4523 2202 4521 2204 4521 2204 4519 2203 4518 2202 4518 2202 4515 2200 4512 2199 4512 2199 4512 2199 4511 2199 4511 2200 4510 2201 4508 2203 4507 2204 4506 2205 4506 2204 4505 2204 4503 2204 4501 2203 4501 2203 4500 2203 4499 2204 4499 2204 4499 2205 4499 2205 4498 2207 4497 2208 4498 2212 4499 2212 4500 2214 4500 2215 4501 2217 4500 2219 4500 2220 4500 2221 4500 2222 4500 2222 4501 2223 4502 2223 4502 2223 4502 2224 4501 2225 4500 2225 4499 2224 4499 2224 4498 2223 4497 2223 4496 2223 4494 2224 4494 2224 4493 2224 4492 2224 4492 2223 4492 2222 4492 2221 4491 2218 4491 2218 4491 2217 4491 2217 4490 2215 4490 2215 4486 2217 4485 2217 4485 2218 4484 2219 4482 2219 4481 2220 4480 2220 4480 2219 4479 2219 4478 2218 4478 2219 4477 2219 4476 2220 4475 2220 4474 2219 4474 2218 4474 2217 4474 2216 4472 2216 4472 2215 4471 2214 4471 2213 4472 2213 4472 2212 4472 2212 4472 2210 4471 2210 4468 2210 4468 2210 4467 2210 4467 2210 4466 2209 4464 2209 4463 2209 4463 2209 4462 2210 4460 2209 4459 2209 4461 2205 4462 2204 4462 2204 4462 2204 4462 2203 4462 2203 4462 2202 4462 2200 4463 2197 4464 2197 4465 2196 4465 2196 4464 2194 4462 2193 4460 2193 4460 2193 4459 2194 4458 2193 4455 2192 4455 2191 4455 2190 4455 2189 4455 2188 4454 2188 4454 2187 4454 2187 4453 2186 4454 2185 4453 2183 4451 2182 4451 2180 4452 2179 4452 2179 4454 2178 4454 2178 4455 2178 4455 2177 4455 2177 4454 2177 4454 2177 4450 2178 4449 2177 4448 2177 4447 2177 4444 2177 4443 2177 4441 2178 4441 2178 4439 2179 4439 2179 4438 2179 4437 2180 4435 2181 4435 2182 4435 2181 4434 2181 4434 2180 4433 2180 4433 2180 4435 2178 4435 2178 4436 2177 4436 2177 4436 2177 4436 2175 4436 2173 4435 2172 4433 2172 4433 2171 4433 2170 4433 2169 4433 2168 4433 2167 4434 2167 4435 2166 4435 2166 4436 2164 4436 2163 4436 2162 4436 2162 4437 2161 4437 2160 4437 2160 4438 2159 4438 2159 4438 2159 4439 2160 4439 2160 4441 2158 4442 2157 4442 2157 4443 2154 4443 2154 4443 2153 4444 2154 4445 2154 4446 2154 4446 2154 4447 2152 4448 2151 4448 2150 4449 2150 4450 2150 4450 2150 4452 2150 4452 2149 4451 2148 4450 2147 4449 2146 4449 2145 4450 2145 4451 2145 4451 2145 4451 2146 4451 2146 4452 2145 4452 2144 4452 2143 4452 2141 4452 2140 4453 2138 4453 2137 4453 2135 4452 2133 4452 2131 4452 2129 4451 2128 4451 2128 4452 2127 4452 2126 4452 2125 4451 2125 4451 2124 4451 2123 4451 2122 4449 2121 4448 2121 4447 2121 4447 2122 4447 2122 4446 2123 4446 2123 4445 2123 4445 2122 4445 2121 4444 2120 4444 2119 4443 2118 4443 2115 4443 2113 4443 2113 4442 2113 4441 2112 4441 2111 4439 2109 4438 2109 4438 2110 4437 2110 4436 2109 4436 2108 4436 2107 4436 2107 4433 2107 4432 2109 4432 2110 4432 2111 4431 2111 4431 2111 4430 2111 4430 2112 4429 2112 4428 2111 4428 2110 4427 2109 4426 2109 4426 2109 4425 2110 4425 2110 4424 2110 4421 2109 4421 2109 4420 2109 4420 2109 4419 2108 4419 2108 4418 2108 4416 2109 4415 2110 4414 2109 4414 2107 4415 2106 4415 2106 4418 2103 4418 2103 4418 2102 4417 2101 4416 2100 4416 2099 4416 2098 4414 2099 4413 2099 4413 2099 4413 2100 4413 2100 4412 2100 4412 2101 4411 2101 4411 2100 4411 2098 4412 2097 4412 2097 4413 2097 4413 2097 4414 2096 4415 2095 4414 2095 4414 2095 4413 2095 4413 2095 4412 2095 4412 2095 4411 2094 4411 2094 4411 2093 4410 2092 4409 2092 4409 2092 4408 2093 4407 2093 4405 2094 4402 2095 4401 2096 4401 2097 4400 2098 4399 2099 4399 2099 4398 2099 4394 2097 4392 2097 4390 2097 4389 2095 4388 2094 4387 2094 4386 2095 4386 2096 4385 2096 4384 2096 4383 2096 4381 2097 4380 2098 4379 2099 4379 2100 4379 2100 4378 2101 4377 2102 4377 2102 4376 2104 4376 2105 4375 2104 4374 2104 4372 2104 4371 2105 4371 2105 4370 2105 4369 2105 4369 2104 4368 2104 4367 2105 4367 2105 4366 2105 4366 2106 4366 2107 4365 2107 4364 2109 4364 2109 4364 2110 4364 2110 4362 2110 4361 2110 4359 2112 4359 2112 4358 2112 4358 2112 4356 2113 4356 2113 4355 2113 4355 2114 4355 2114 4356 2115 4356 2116 4356 2116 4355 2117 4353 2117 4352 2118 4350 2118 4350 2119 4349 2119 4349 2117 4349 2118 4347 2118 4347 2118 4346 2118 4346 2119 4345 2119 4345 2120 4344 2120 4343 2120 4342 2119 4339 2119 4339 2119 4339 2118 4339 2117 4339 2117 4339 2116 4339 2116 4339 2116 4338 2116 4337 2115 4336 2115 4336 2115 4336 2115 4335 2115 4334 2115 4334 2114 4333 2114 4332 2114 4331 2115 4331 2115 4331 2116 4330 2116 4330 2116 4329 2116 4328 2115 4328 2115 4328 2115 4327 2115 4326 2114 4326 2115 4325 2114 4323 2114 4323 2114 4321 2114 4321 2114 4321 2114 4320 2114 4319 2114 4318 2114 4318 2113 4318 2113 4319 2113 4319 2112 4319 2111 4318 2111 4318 2111 4317 2111 4316 2111 4316 2111 4315 2110 4313 2110 4312 2110 4310 2111 4310 2111 4309 2112 4308 2112 4308 2112 4308 2113 4307 2113 4306 2113 4304 2114 4304 2115 4304 2115 4304 2115 4303 2116 4303 2116 4303 2117 4302 2117 4301 2118 4300 2118 4300 2119 4300 2119 4299 2120 4299 2120 4299 2121 4299 2122 4298 2122 4298 2123 4297 2123 4297 2123 4296 2123 4296 2124 4296 2124 4296 2125 4295 2125 4295 2126 4295 2126 4295 2126 4294 2125 4293 2125 4293 2124 4293 2123 4293 2121 4294 2121 4294 2121 4294 2120 4295 2118 4295 2117 4294 2117 4294 2115 4293 2114 4292 2114 4291 2113 4289 2114 4289 2115 4287 2116 4286 2116 4283 2116 4283 2117 4283 2117 4283 2117 4282 2117 4281 2117 4281 2117 4281 2117 4280 2117 4279 2117 4278 2117 4278 2117 4277 2118 4277 2118 4277 2118 4276 2118 4275 2118 4275 2118 4274 2118 4273 2118 4271 2118 4270 2118 4269 2118 4268 2118 4267 2118 4266 2117 4266 2116 4265 2116 4264 2116 4263 2116 4261 2115 4261 2114 4261 2114 4260 2114 4260 2113 4258 2113 4258 2114 4257 2115 4257 2116 4257 2116 4256 2117 4254 2116 4252 2115 4252 2114 4252 2113 4252 2113 4250 2114 4250 2115 4251 2116 4251 2116 4250 2117 4250 2117 4249 2117 4248 2117 4248 2115 4247 2113 4247 2113 4246 2113 4246 2112 4245 2112 4244 2111 4244 2111 4242 2111 4240 2110 4240 2110 4239 2111 4239 2111 4239 2111 4237 2111 4236 2111 4235 2111 4234 2110 4234 2110 M 4814 1934 4814 1934 4812 1933 4812 1934 4812 1934 4812 1933 4812 1933 4813 1932 4814 1932 4814 1932 4815 1932 4815 1932 4815 1932 4815 1933 4814 1934 4814 1934 M 4787 2047 4787 2047 4787 2047 4788 2047 4788 2047 4788 2047 4788 2047 4789 2047 4789 2047 4789 2047 4790 2050 4788 2049 4789 2048 4788 2048 4788 2048 4787 2047 4787 2047 M 4811 2055 4811 2054 4811 2054 4812 2054 4813 2054 4813 2054 4814 2055 4815 2055 4815 2055 4815 2056 4815 2056 4815 2056 4815 2056 4816 2057 4817 2057 4817 2058 4818 2058 4820 2058 4820 2058 4820 2058 4820 2058 4821 2058 4821 2059 4821 2059 4822 2059 4822 2059 4822 2059 4821 2060 4821 2060 4821 2060 4820 2060 4820 2060 4819 2060 4816 2059 4814 2058 4814 2058 4813 2057 4813 2057 4813 2057 4812 2057 4811 2055 4811 2055 M 4825 2079 4825 2078 4825 2078 4825 2078 4826 2078 4827 2078 4827 2078 4827 2078 4827 2079 4827 2080 4827 2080 4826 2079 4826 2079 4825 2079 4825 2079 4825 2079 4825 2079 M 4823 2082 4823 2081 4823 2081 4824 2081 4825 2081 4826 2081 4828 2082 4829 2083 4829 2083 4828 2084 4828 2084 4828 2084 4828 2084 4827 2084 4826 2083 4825 2083 4825 2083 4824 2083 4824 2083 4823 2082 4823 2082 M 4826 2088 4825 2088 4825 2088 4824 2088 4824 2088 4824 2087 4825 2087 4825 2087 4827 2088 4827 2088 4826 2089 4826 2089 4826 2089 4826 2088 4826 2088 M 4810 2114 4810 2114 4810 2113 4811 2112 4811 2112 4812 2112 4811 2114 4811 2114 4811 2114 4810 2115 4810 2115 4810 2114 4810 2114 M 4787 2156 4787 2156 4787 2156 4786 2155 4787 2154 4787 2153 4788 2153 4788 2153 4789 2154 4789 2155 4789 2154 4789 2155 4788 2157 4788 2157 4788 2157 4787 2156 4787 2156 M 4761 2172 4761 2172 4761 2172 4761 2171 4761 2170 4763 2171 4763 2171 4762 2172 4762 2172 4761 2172 4761 2172 4761 2172 M 4751 2183 4751 2183 4752 2183 4752 2183 4752 2183 4752 2184 4750 2186 4750 2186 4749 2186 4749 2186 4749 2184 4750 2183 4750 2183 4750 2183 4751 2183 M 4746 2188 4746 2188 4746 2189 4745 2189 4744 2189 4743 2188 4743 2188 4743 2188 4743 2188 4745 2187 4746 2188 4746 2188 M 4690 2199 4689 2199 4689 2199 4689 2199 4689 2199 4689 2199 4687 2198 4687 2198 4687 2198 4686 2197 4686 2197 4687 2197 4687 2197 4688 2197 4689 2198 4689 2199 4690 2199 M 4697 2206 4696 2206 4696 2207 4696 2207 4695 2208 4694 2208 4694 2208 4693 2208 4693 2208 4693 2208 4693 2207 4693 2207 4693 2207 4694 2207 4694 2207 4697 2206 4697 2206 M 4677 2218 4676 2218 4676 2218 4676 2218 4676 2217 4675 2216 4675 2216 4676 2216 4676 2215 4677 2215 4678 2215 4678 2215 4677 2217 4677 2218 M 4661 2218 4661 2218 4661 2217 4662 2217 4662 2217 4663 2217 4664 2217 4664 2217 4664 2217 4664 2217 4664 2217 4663 2217 4661 2218 4661 2218 M 4640 2224 4642 2224 4641 2225 4641 2225 4641 2226 4639 2225 4639 2224 4639 2224 4640 2224 4640 2224 4640 2224 4639 2224 4639 2224 4640 2224 4640 2224 4640 2224 M 4639 2226 4640 2226 4640 2226 4641 2226 4641 2226 4641 2227 4640 2228 4640 2228 4640 2227 4639 2227 4639 2227 4639 2227 4638 2227 4637 2227 4637 2227 4637 2227 4637 2228 4636 2228 4636 2228 4636 2227 4636 2227 4636 2226 4637 2226 4638 2226 4639 2226 4639 2226 M 4627 2272 4627 2271 4626 2271 4626 2272 4625 2272 4625 2271 4624 2271 4623 2271 4623 2270 4621 2270 4621 2270 4620 2270 4617 2269 4615 2269 4614 2268 4613 2268 4613 2267 4612 2267 4612 2267 4611 2267 4611 2267 4611 2266 4611 2265 4611 2265 4611 2264 4611 2264 4610 2260 4610 2258 4610 2255 4610 2254 4611 2253 4612 2253 4612 2253 4615 2251 4616 2250 4616 2249 4617 2249 4619 2249 4621 2247 4621 2247 4620 2246 4620 2247 4619 2247 4619 2247 4619 2246 4619 2246 4620 2245 4621 2244 4623 2245 4623 2246 4624 2245 4624 2245 4624 2244 4625 2243 4626 2243 4627 2243 4627 2243 4628 2243 4629 2244 4629 2243 4631 2243 4632 2244 4632 2244 4633 2243 4634 2243 4634 2242 4634 2242 4638 2242 4640 2243 4641 2243 4641 2242 4641 2241 4643 2241 4643 2242 4643 2242 4644 2243 4646 2243 4646 2243 4646 2243 4647 2243 4647 2243 4647 2245 4648 2249 4647 2249 4647 2249 4646 2250 4646 2251 4645 2250 4644 2252 4643 2253 4641 2257 4641 2257 4640 2257 4640 2256 4640 2257 4640 2257 4641 2257 4641 2257 4641 2258 4640 2260 4640 2261 4640 2262 4640 2263 4638 2264 4636 2264 4636 2265 4635 2265 4634 2266 4633 2267 4633 2267 4633 2268 4633 2268 4633 2269 4632 2269 4631 2269 4631 2268 4629 2269 4628 2269 4627 2271 4628 2271 4628 2272 4627 2272 4627 2272" />
+<path id="cl" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1699 3387 1699 3387 1699 3387 1699 3386 1698 3384 1697 3381 1697 3380 1698 3381 1698 3381 1698 3380 1697 3379 1697 3380 1695 3381 1695 3381 1695 3381 1692 3380 1691 3380 1691 3378 1690 3378 1689 3378 1689 3376 1689 3376 1690 3375 1691 3375 1695 3375 1695 3375 1695 3376 1697 3374 1697 3372 1697 3372 1698 3371 1699 3371 1700 3372 1700 3372 1701 3373 1701 3372 1700 3371 1699 3371 1699 3371 1698 3370 1697 3370 1698 3369 1698 3369 1699 3369 1699 3369 1699 3369 1700 3368 1697 3369 1697 3370 1696 3371 1696 3372 1696 3373 1696 3373 1696 3373 1694 3374 1694 3374 1692 3374 1691 3373 1690 3372 1689 3371 1688 3369 1690 3369 1691 3369 1692 3369 1692 3369 1692 3369 1693 3370 1695 3370 1694 3369 1693 3369 1692 3369 1691 3368 1688 3368 1685 3367 1682 3364 1682 3364 1682 3364 1683 3363 1684 3363 1685 3362 1686 3363 1687 3363 1688 3363 1689 3364 1690 3365 1694 3366 1695 3366 1695 3366 1695 3366 1691 3364 1691 3364 1690 3364 1690 3364 1687 3361 1687 3360 1688 3360 1689 3360 1690 3360 1690 3361 1691 3361 1695 3362 1695 3362 1695 3361 1693 3361 1691 3360 1688 3359 1688 3359 1687 3358 1689 3357 1690 3357 1691 3357 1691 3357 1692 3357 1692 3357 1690 3357 1689 3357 1688 3357 1688 3356 1688 3355 1688 3355 1689 3354 1691 3354 1692 3354 1694 3354 1694 3354 1695 3355 1695 3356 1696 3356 1696 3356 1697 3357 1697 3358 1698 3357 1697 3357 1697 3356 1697 3356 1696 3356 1695 3356 1695 3355 1695 3354 1694 3353 1694 3353 1693 3353 1692 3353 1691 3353 1691 3352 1692 3350 1692 3349 1692 3349 1693 3350 1693 3350 1694 3350 1694 3351 1695 3351 1695 3351 1695 3350 1694 3350 1694 3350 1693 3349 1693 3347 1693 3346 1693 3346 1694 3346 1694 3346 1694 3346 1695 3346 1695 3346 1696 3346 1696 3346 1695 3345 1692 3345 1692 3346 1692 3348 1691 3349 1691 3350 1690 3351 1690 3353 1690 3354 1689 3354 1689 3354 1687 3352 1687 3351 1687 3348 1687 3345 1686 3344 1686 3344 1686 3343 1686 3342 1686 3342 1687 3341 1688 3341 1688 3341 1689 3341 1689 3341 1690 3341 1691 3341 1692 3341 1692 3341 1691 3341 1690 3340 1690 3340 1689 3341 1689 3341 1689 3341 1688 3341 1687 3340 1687 3339 1687 3338 1689 3337 1690 3337 1691 3337 1692 3338 1693 3338 1693 3336 1691 3335 1691 3335 1691 3335 1690 3335 1689 3335 1690 3334 1691 3334 1689 3334 1687 3332 1685 3331 1684 3331 1683 3331 1683 3330 1683 3330 1683 3329 1685 3328 1686 3329 1687 3330 1688 3330 1688 3330 1688 3331 1689 3332 1689 3332 1690 3333 1690 3333 1689 3331 1688 3330 1688 3329 1688 3329 1690 3329 1692 3329 1692 3329 1693 3330 1694 3330 1695 3330 1697 3330 1700 3331 1700 3332 1700 3333 1700 3332 1701 3332 1702 3332 1702 3332 1703 3332 1703 3332 1704 3332 1704 3332 1705 3331 1705 3331 1704 3330 1704 3331 1704 3331 1704 3331 1703 3332 1703 3332 1703 3332 1701 3331 1700 3330 1699 3329 1699 3328 1700 3328 1700 3328 1701 3329 1701 3329 1701 3329 1702 3329 1705 3329 1705 3329 1704 3329 1703 3329 1703 3329 1702 3329 1701 3329 1701 3328 1698 3326 1697 3325 1697 3324 1698 3324 1698 3324 1699 3323 1698 3322 1697 3322 1697 3323 1697 3323 1697 3323 1697 3326 1696 3326 1696 3326 1694 3327 1693 3327 1693 3326 1692 3326 1692 3326 1691 3326 1688 3325 1687 3325 1685 3325 1685 3326 1684 3326 1683 3326 1683 3325 1682 3325 1681 3325 1683 3322 1684 3322 1684 3322 1686 3322 1686 3322 1687 3323 1687 3323 1688 3324 1689 3325 1689 3325 1690 3325 1690 3325 1690 3325 1689 3325 1689 3325 1688 3324 1689 3323 1690 3323 1691 3323 1692 3323 1692 3323 1692 3322 1691 3322 1690 3323 1689 3323 1688 3323 1685 3320 1685 3320 1685 3319 1687 3318 1688 3317 1688 3317 1688 3317 1690 3316 1690 3317 1690 3317 1690 3318 1691 3319 1691 3319 1691 3319 1691 3318 1691 3317 1691 3317 1691 3316 1692 3316 1694 3314 1693 3313 1692 3313 1692 3313 1692 3313 1691 3313 1691 3313 1689 3311 1689 3310 1689 3310 1688 3309 1683 3310 1683 3311 1684 3311 1684 3311 1686 3311 1686 3311 1685 3312 1685 3312 1684 3312 1683 3311 1679 3310 1677 3309 1676 3308 1676 3307 1676 3307 1677 3306 1678 3305 1678 3304 1678 3305 1677 3305 1676 3306 1675 3307 1674 3307 1671 3308 1671 3308 1670 3308 1669 3308 1668 3308 1668 3308 1667 3309 1667 3310 1668 3309 1670 3308 1670 3308 1670 3309 1672 3311 1671 3312 1670 3312 1670 3312 1669 3312 1669 3313 1669 3312 1668 3312 1667 3311 1666 3310 1666 3309 1666 3307 1667 3306 1667 3306 1668 3306 1668 3306 1669 3306 1670 3305 1671 3305 1671 3304 1671 3304 1672 3303 1673 3303 1674 3304 1674 3304 1674 3303 1674 3302 1676 3301 1676 3301 1678 3301 1680 3299 1680 3298 1681 3296 1682 3295 1682 3294 1686 3294 1687 3294 1688 3294 1688 3295 1689 3294 1691 3294 1691 3294 1691 3295 1692 3296 1692 3298 1691 3299 1691 3299 1691 3299 1690 3299 1691 3299 1692 3299 1692 3298 1692 3298 1692 3297 1692 3297 1693 3298 1694 3298 1693 3299 1693 3299 1693 3299 1693 3300 1692 3300 1691 3300 1690 3301 1688 3301 1688 3301 1687 3301 1686 3301 1686 3300 1685 3300 1687 3301 1687 3301 1687 3301 1688 3301 1689 3301 1691 3301 1691 3301 1692 3300 1692 3300 1693 3302 1695 3303 1695 3303 1695 3303 1695 3303 1695 3302 1695 3302 1694 3302 1693 3301 1693 3300 1694 3300 1695 3299 1697 3301 1697 3302 1697 3303 1696 3303 1696 3303 1695 3304 1694 3305 1693 3306 1694 3307 1695 3307 1696 3307 1696 3306 1697 3305 1697 3305 1697 3304 1698 3303 1700 3302 1701 3300 1702 3298 1702 3298 1700 3300 1700 3301 1699 3301 1699 3302 1699 3302 1698 3302 1698 3302 1698 3301 1698 3301 1699 3300 1699 3300 1699 3299 1699 3299 1699 3298 1698 3297 1700 3294 1702 3293 1702 3293 1703 3292 1703 3292 1704 3292 1704 3292 1705 3292 1706 3292 1706 3292 1704 3291 1703 3291 1703 3292 1702 3292 1702 3293 1701 3293 1700 3294 1700 3294 1700 3292 1701 3289 1703 3287 1704 3286 1706 3286 1706 3286 1706 3287 1707 3287 1707 3288 1709 3288 1710 3289 1711 3289 1711 3289 1712 3288 1712 3288 1711 3288 1710 3288 1710 3288 1708 3287 1707 3287 1707 3286 1705 3285 1705 3285 1705 3285 1704 3286 1704 3286 1703 3286 1702 3286 1702 3286 1702 3286 1702 3285 1702 3284 1702 3284 1703 3284 1704 3284 1704 3284 1704 3283 1703 3282 1703 3282 1703 3281 1703 3281 1704 3281 1704 3281 1704 3281 1705 3281 1705 3281 1707 3280 1710 3279 1711 3279 1713 3277 1713 3276 1714 3275 1715 3273 1715 3271 1714 3272 1713 3273 1711 3272 1710 3271 1710 3270 1709 3270 1708 3270 1707 3270 1707 3269 1706 3269 1705 3268 1704 3268 1705 3267 1706 3266 1707 3266 1707 3265 1707 3264 1709 3262 1709 3262 1710 3262 1711 3262 1711 3261 1711 3261 1711 3261 1711 3261 1710 3261 1708 3261 1708 3260 1708 3259 1707 3257 1707 3256 1708 3254 1708 3254 1709 3254 1709 3254 1710 3253 1710 3253 1710 3253 1710 3252 1710 3251 1710 3251 1711 3250 1711 3250 1712 3250 1713 3250 1713 3248 1713 3247 1712 3247 1712 3247 1711 3246 1711 3245 1711 3245 1711 3242 1712 3241 1712 3241 1714 3241 1714 3241 1714 3242 1716 3242 1716 3242 1716 3242 1716 3242 1715 3242 1715 3241 1714 3241 1711 3238 1712 3237 1713 3237 1715 3236 1716 3236 1716 3237 1716 3237 1718 3241 1718 3241 1718 3240 1718 3239 1718 3237 1717 3236 1717 3235 1717 3235 1717 3234 1717 3234 1718 3233 1718 3233 1717 3233 1717 3233 1716 3233 1715 3234 1713 3233 1712 3233 1711 3232 1711 3232 1712 3231 1715 3229 1715 3229 1716 3229 1717 3229 1719 3228 1719 3228 1720 3228 1720 3224 1719 3224 1719 3227 1719 3228 1717 3228 1716 3229 1715 3229 1715 3229 1714 3228 1714 3227 1713 3227 1712 3226 1712 3225 1710 3225 1709 3225 1708 3226 1707 3227 1708 3227 1708 3228 1708 3228 1707 3229 1706 3230 1705 3230 1704 3230 1704 3230 1703 3230 1702 3230 1702 3230 1701 3230 1701 3230 1700 3230 1698 3229 1697 3229 1697 3228 1698 3227 1698 3227 1699 3227 1699 3227 1700 3227 1701 3226 1701 3226 1700 3227 1700 3227 1699 3227 1698 3227 1697 3226 1695 3225 1695 3224 1695 3224 1695 3223 1695 3222 1695 3221 1694 3221 1694 3221 1694 3220 1693 3219 1693 3217 1694 3215 1696 3211 1696 3211 1697 3210 1697 3209 1697 3208 1697 3204 1698 3203 1698 3203 1698 3202 1698 3202 1698 3201 1698 3201 1698 3201 1698 3200 1701 3199 1703 3200 1703 3199 1703 3197 1704 3195 1704 3194 1705 3193 1705 3192 1705 3192 1706 3191 1705 3189 1705 3187 1703 3184 1702 3180 1701 3179 1701 3178 1701 3178 1700 3176 1700 3176 1701 3175 1701 3175 1701 3174 1701 3173 1701 3173 1701 3173 1702 3170 1702 3170 1701 3169 1700 3167 1699 3166 1698 3165 1698 3163 1698 3163 1699 3162 1699 3162 1700 3161 1699 3160 1699 3160 1699 3160 1698 3159 1698 3159 1699 3157 1699 3156 1700 3156 1700 3157 1701 3157 1702 3157 1703 3157 1703 3157 1703 3157 1704 3157 1705 3157 1705 3156 1706 3156 1706 3156 1706 3154 1707 3151 1707 3148 1708 3149 1708 3149 1708 3149 1709 3149 1709 3149 1709 3149 1710 3147 1710 3146 1711 3144 1712 3143 1712 3139 1712 3137 1713 3137 1713 3137 1714 3136 1715 3135 1716 3134 1716 3134 1716 3133 1715 3132 1715 3131 1715 3131 1715 3130 1716 3130 1717 3129 1718 3127 1718 3126 1719 3125 1719 3125 1720 3125 1720 3124 1721 3123 1722 3123 1722 3122 1722 3122 1722 3121 1722 3121 1722 3120 1723 3118 1723 3118 1724 3117 1724 3117 1724 3116 1724 3114 1724 3113 1724 3112 1724 3112 1725 3111 1725 3111 1725 3110 1725 3109 1725 3109 1725 3108 1725 3108 1727 3105 1727 3104 1727 3104 1728 3103 1728 3102 1729 3102 1729 3102 1730 3102 1730 3101 1730 3100 1731 3100 1731 3100 1731 3098 1730 3097 1730 3096 1730 3094 1729 3091 1729 3091 1730 3091 1732 3090 1733 3088 1733 3086 1734 3085 1734 3084 1734 3084 1734 3081 1734 3080 1733 3078 1733 3078 1732 3077 1732 3075 1733 3074 1733 3074 1733 3073 1733 3072 1733 3070 1733 3070 1732 3069 1732 3067 1732 3066 1732 3066 1731 3063 1730 3061 1730 3060 1730 3060 1730 3059 1731 3059 1731 3057 1730 3057 1730 3056 1730 3056 1730 3054 1730 3052 1730 3051 1730 3050 1730 3047 1731 3046 1731 3046 1731 3046 1732 3046 1732 3046 1733 3046 1734 3045 1735 3044 1736 3040 1736 3039 1736 3039 1736 3038 1736 3034 1736 3033 1736 3033 1736 3032 1736 3031 1735 3031 1735 3030 1734 3030 1734 3029 1733 3029 1733 3029 1733 3029 1733 3027 1733 3025 1733 3024 1733 3024 1734 3023 1735 3022 1736 3020 1736 3020 1736 3019 1737 3018 1737 3017 1738 3015 1738 3013 1738 3012 1739 3009 1739 3007 1740 3006 1740 3005 1741 3005 1742 3004 1742 3004 1743 3002 1742 3001 1742 2999 1742 2997 1742 2996 1742 2996 1742 2996 1743 2995 1744 2994 1744 2994 1744 2993 1744 2992 1744 2992 1745 2989 1746 2987 1746 2987 1746 2985 1747 2983 1746 2981 1746 2980 1746 2979 1747 2978 1747 2978 1747 2978 1747 2977 1746 2976 1746 2976 1745 2975 1746 2973 1746 2972 1747 2971 1748 2970 1748 2969 1750 2968 1750 2966 1750 2965 1750 2964 1749 2963 1749 2961 1748 2960 1748 2959 1748 2957 1748 2955 1748 2952 1748 2951 1748 2951 1748 2950 1749 2949 1749 2949 1749 2948 1749 2947 1749 2946 1749 2945 1749 2943 1749 2942 1749 2942 1750 2941 1750 2941 1750 2940 1751 2940 1751 2940 1751 2939 1751 2938 1750 2938 1750 2938 1750 2937 1749 2937 1749 2937 1748 2938 1747 2938 1747 2936 1747 2934 1748 2931 1748 2930 1749 2930 1749 2931 1749 2931 1750 2931 1751 2931 1751 2931 1751 2930 1752 2930 1752 2929 1752 2928 1752 2928 1752 2927 1752 2927 1752 2924 1753 2921 1753 2919 1753 2916 1754 2915 1754 2914 1755 2910 1754 2910 1754 2909 1755 2908 1755 2907 1756 2906 1756 2905 1756 2904 1755 2903 1756 2903 1755 2900 1755 2899 1754 2898 1755 2897 1755 2897 1755 2896 1754 2895 1754 2895 1754 2895 1754 2888 1755 2887 1755 2886 1754 2885 1755 2884 1755 2884 1755 2883 1755 2882 1755 2882 1755 2880 1754 2879 1754 2876 1754 2874 1753 2872 1753 2871 1752 2871 1752 2869 1753 2869 1753 2868 1752 2864 1752 2864 1752 2863 1751 2860 1752 2859 1752 2857 1752 2856 1751 2856 1751 2856 1750 2856 1751 2855 1751 2855 1752 2855 1753 2855 1754 2855 1754 2855 1755 2855 1757 2854 1758 2854 1759 2853 1759 2852 1760 2851 1760 2850 1761 2850 1761 2849 1760 2847 1760 2847 1760 2846 1759 2846 1759 2845 1760 2845 1760 2844 1761 2845 1761 2845 1762 2845 1763 2844 1765 2842 1765 2844 1767 2846 1767 2846 1768 2847 1768 2847 1768 2848 1768 2849 1768 2849 1768 2850 1771 2850 1772 2851 1772 2851 1772 2851 1772 2851 1771 2852 1771 2852 1771 2852 1771 2853 1771 2853 1771 2854 1772 2855 1772 2856 1772 2857 1772 2857 1772 2857 1773 2858 1773 2858 1772 2859 1772 2860 1773 2861 1773 2862 1774 2864 1774 2864 1773 2865 1775 2867 1776 2868 1777 2869 1778 2870 1779 2870 1779 2871 1780 2871 1780 2871 1781 2872 1782 2873 1780 2875 1780 2875 1779 2876 1778 2877 1778 2878 1779 2879 1780 2879 1781 2881 1780 2883 1779 2883 1778 2883 1776 2883 1776 2884 1777 2884 1777 2886 1778 2887 1777 2888 1777 2888 1777 2889 1777 2889 1777 2889 1778 2890 1778 2890 1779 2891 1779 2891 1780 2891 1780 2891 1781 2892 1781 2892 1781 2892 1781 2893 1780 2893 1780 2894 1780 2896 1780 2896 1780 2896 1780 2896 1780 2897 1781 2897 1781 2897 1782 2897 1782 2897 1785 2902 1786 2903 1786 2908 1786 2908 1787 2909 1787 2909 1787 2910 1787 2911 1787 2911 1788 2912 1787 2913 1788 2913 1789 2915 1789 2915 1790 2916 1790 2918 1790 2918 1790 2919 1791 2921 1791 2923 1791 2925 1791 2927 1792 2928 1796 2928 1797 2928 1800 2928 1802 2927 1803 2928 1805 2930 1804 2932 1803 2934 1803 2936 1802 2936 1802 2938 1801 2942 1799 2946 1796 2948 1795 2948 1790 2950 1786 2952 1785 2952 1784 2953 1784 2954 1783 2954 1783 2954 1781 2955 1781 2957 1780 2957 1780 2958 1780 2959 1780 2960 1781 2960 1783 2964 1782 2964 1781 2964 1781 2965 1781 2965 1780 2966 1780 2966 1780 2966 1780 2967 1780 2967 1779 2969 1779 2969 1779 2969 1779 2970 1780 2972 1781 2973 1781 2974 1782 2976 1783 2980 1782 2981 1781 2982 1781 2982 1780 2982 1780 2983 1780 2983 1780 2984 1780 2985 1780 2985 1780 2986 1780 2986 1780 2986 1780 2987 1781 2988 1782 2989 1782 2989 1782 2989 1784 2992 1784 2992 1784 2994 1783 2994 1783 2995 1782 2995 1779 2996 1778 2996 1777 2995 1776 2995 1776 2996 1775 2997 1775 2997 1775 2998 1775 2998 1774 3000 1772 3003 1772 3004 1771 3005 1771 3006 1770 3008 1770 3009 1770 3009 1770 3009 1769 3009 1769 3009 1768 3010 1768 3011 1768 3011 1767 3012 1767 3013 1764 3015 1763 3016 1762 3016 1762 3018 1762 3019 1762 3019 1761 3020 1761 3021 1761 3022 1761 3022 1761 3022 1761 3024 1760 3026 1760 3027 1760 3027 1760 3028 1760 3028 1759 3028 1758 3029 1756 3030 1756 3031 1756 3032 1757 3032 1758 3034 1758 3035 1758 3035 1758 3036 1757 3036 1758 3037 1758 3037 1758 3037 1758 3037 1758 3038 1758 3040 1758 3041 1758 3042 1759 3043 1759 3044 1760 3044 1760 3045 1759 3047 1758 3048 1757 3048 1756 3048 1756 3048 1755 3049 1754 3051 1753 3052 1753 3053 1752 3055 1752 3056 1752 3057 1752 3057 1752 3058 1752 3058 1751 3059 1750 3059 1750 3059 1749 3060 1748 3061 1748 3063 1748 3065 1748 3066 1748 3067 1750 3071 1750 3071 1750 3072 1750 3072 1751 3072 1752 3072 1752 3072 1752 3072 1753 3073 1753 3073 1753 3074 1752 3074 1751 3075 1752 3077 1752 3078 1752 3078 1753 3079 1753 3079 1754 3081 1755 3082 1755 3082 1754 3083 1754 3084 1755 3086 1756 3087 1757 3088 1757 3089 1756 3090 1755 3090 1756 3091 1755 3092 1755 3092 1755 3092 1757 3094 1757 3094 1758 3094 1758 3093 1759 3093 1759 3093 1760 3094 1761 3096 1760 3096 1760 3097 1759 3098 1758 3102 1758 3103 1759 3104 1759 3107 1760 3109 1759 3110 1758 3110 1758 3110 1757 3110 1756 3110 1756 3110 1756 3110 1756 3111 1756 3112 1755 3114 1753 3116 1752 3119 1751 3121 1751 3122 1751 3122 1751 3123 1751 3123 1751 3124 1751 3124 1750 3125 1749 3125 1749 3125 1748 3125 1748 3125 1748 3126 1748 3126 1748 3126 1750 3127 1751 3130 1750 3131 1750 3132 1750 3132 1751 3133 1751 3134 1751 3135 1751 3135 1750 3136 1750 3137 1751 3139 1750 3140 1750 3140 1749 3140 1749 3140 1748 3140 1746 3142 1745 3143 1746 3144 1746 3144 1742 3145 1741 3145 1741 3145 1740 3145 1740 3146 1739 3149 1738 3151 1739 3153 1739 3155 1739 3157 1739 3157 1738 3158 1738 3158 1738 3160 1739 3160 1739 3160 1739 3161 1739 3163 1738 3163 1738 3163 1738 3164 1738 3165 1738 3165 1739 3166 1739 3166 1739 3167 1739 3168 1741 3171 1741 3172 1741 3173 1741 3173 1741 3174 1741 3176 1742 3177 1742 3177 1743 3177 1743 3178 1744 3178 1744 3179 1743 3180 1742 3181 1742 3181 1741 3181 1741 3181 1740 3181 1739 3182 1737 3183 1736 3183 1735 3184 1735 3184 1734 3184 1734 3185 1734 3186 1734 3186 1734 3186 1735 3187 1735 3189 1735 3191 1734 3192 1733 3194 1733 3195 1733 3195 1731 3195 1731 3195 1730 3194 1730 3194 1730 3195 1730 3195 1730 3197 1730 3199 1731 3201 1730 3202 1729 3203 1728 3203 1728 3205 1728 3205 1729 3206 1730 3206 1730 3206 1730 3207 1730 3208 1730 3208 1729 3208 1729 3208 1729 3208 1728 3210 1728 3211 1728 3211 1727 3212 1727 3212 1727 3212 1726 3213 1726 3213 1726 3214 1727 3216 1727 3216 1728 3217 1727 3218 1728 3218 1727 3221 1727 3222 1727 3222 1727 3223 1727 3224 1727 3224 1727 3224 1727 3226 1727 3227 1726 3227 1726 3228 1727 3230 1728 3231 1729 3232 1729 3232 1729 3233 1729 3234 1729 3235 1729 3235 1726 3236 1726 3236 1726 3236 1726 3235 1725 3235 1725 3235 1724 3236 1723 3238 1723 3238 1724 3239 1724 3239 1724 3239 1723 3242 1723 3242 1723 3242 1723 3243 1723 3244 1723 3245 1723 3245 1723 3247 1723 3247 1723 3248 1723 3248 1723 3249 1723 3249 1723 3250 1724 3251 1724 3251 1725 3251 1726 3251 1726 3251 1727 3251 1728 3251 1729 3252 1729 3254 1729 3254 1729 3254 1728 3254 1727 3255 1726 3255 1726 3257 1727 3257 1730 3259 1730 3260 1730 3260 1729 3261 1728 3261 1728 3261 1728 3261 1729 3262 1730 3263 1731 3264 1731 3264 1731 3265 1729 3266 1729 3267 1728 3268 1728 3268 1728 3269 1728 3271 1728 3271 1727 3271 1728 3272 1729 3272 1731 3272 1732 3272 1733 3272 1735 3272 1738 3272 1738 3272 1739 3274 1739 3274 1739 3275 1738 3275 1737 3276 1737 3276 1737 3277 1737 3277 1737 3278 1736 3278 1736 3278 1735 3278 1735 3278 1734 3277 1733 3277 1733 3277 1733 3277 1732 3277 1731 3278 1731 3278 1731 3278 1730 3278 1730 3278 1730 3277 1729 3277 1728 3277 1728 3278 1728 3278 1726 3278 1725 3278 1725 3278 1725 3277 1724 3277 1724 3278 1724 3278 1724 3280 1726 3280 1728 3280 1729 3280 1732 3281 1732 3281 1733 3282 1736 3285 1736 3286 1734 3289 1731 3290 1731 3290 1731 3290 1730 3290 1730 3290 1729 3290 1728 3292 1728 3293 1729 3295 1729 3295 1730 3295 1731 3295 1731 3296 1731 3297 1731 3297 1731 3297 1730 3297 1730 3298 1729 3298 1729 3299 1729 3299 1728 3299 1728 3299 1727 3299 1727 3300 1728 3300 1728 3301 1729 3301 1729 3301 1729 3302 1729 3304 1730 3305 1730 3306 1730 3308 1730 3308 1730 3308 1728 3310 1727 3310 1726 3310 1726 3310 1725 3314 1727 3315 1727 3315 1727 3316 1727 3317 1727 3317 1725 3318 1724 3319 1722 3320 1722 3320 1721 3320 1721 3320 1720 3320 1720 3320 1720 3320 1719 3320 1719 3321 1720 3321 1720 3321 1720 3323 1720 3323 1719 3323 1719 3324 1719 3324 1718 3325 1718 3325 1716 3328 1717 3328 1717 3329 1717 3329 1718 3329 1719 3329 1720 3330 1720 3332 1720 3335 1718 3336 1717 3336 1716 3336 1716 3336 1715 3337 1715 3337 1716 3338 1716 3338 1716 3339 1716 3340 1716 3340 1716 3341 1716 3342 1716 3342 1716 3342 1714 3344 1713 3344 1713 3344 1713 3344 1712 3344 1711 3344 1711 3344 1710 3344 1710 3345 1709 3345 1709 3345 1708 3346 1706 3349 1706 3349 1706 3349 1708 3349 1707 3350 1706 3350 1702 3350 1702 3350 1700 3352 1700 3354 1700 3354 1701 3355 1702 3358 1702 3358 1701 3358 1701 3359 1700 3360 1701 3361 1701 3361 1702 3361 1701 3362 1701 3362 1701 3363 1700 3363 1701 3363 1701 3364 1702 3364 1703 3365 1704 3365 1704 3365 1705 3366 1705 3367 1705 3369 1705 3371 1706 3373 1706 3373 1707 3373 1707 3373 1708 3373 1708 3373 1709 3373 1709 3373 1710 3372 1710 3372 1711 3372 1711 3372 1713 3371 1713 3371 1714 3371 1714 3372 1714 3372 1715 3372 1715 3372 1716 3372 1716 3371 1716 3371 1717 3371 1717 3371 1719 3371 1720 3372 1720 3372 1720 3373 1720 3373 1720 3374 1721 3374 1721 3374 1721 3375 1721 3377 1720 3378 1720 3378 1719 3379 1719 3380 1719 3380 1720 3380 1720 3380 1721 3381 1721 3381 1720 3382 1720 3382 1720 3383 1720 3383 1719 3385 1719 3385 1719 3385 1720 3388 1721 3388 1722 3388 1722 3389 1722 3389 1723 3389 1724 3389 1726 3391 1726 3391 1726 3392 1726 3393 1730 3393 1737 3393 1746 3393 1750 3393 1755 3393 1756 3393 1757 3393 1758 3393 1759 3393 1761 3394 1766 3395 1768 3395 1769 3395 1772 3396 1773 3396 1774 3397 1775 3397 1776 3398 1777 3398 1779 3398 1780 3398 1782 3398 1782 3399 1781 3398 1781 3398 1778 3398 1776 3398 1776 3398 1774 3398 1773 3398 1773 3397 1773 3397 1772 3397 1772 3397 1771 3397 1770 3396 1770 3396 1770 3396 1769 3396 1766 3397 1765 3397 1765 3398 1765 3398 1765 3399 1764 3400 1764 3401 1763 3401 1762 3401 1762 3401 1760 3401 1760 3401 1758 3401 1755 3402 1754 3402 1749 3404 1749 3404 1746 3405 1744 3405 1743 3407 1744 3408 1744 3408 1744 3409 1743 3411 1742 3411 1742 3412 1742 3412 1742 3413 1741 3415 1741 3416 1741 3416 1741 3417 1742 3417 1742 3418 1742 3418 1742 3419 1742 3419 1741 3421 1741 3422 1740 3422 1737 3423 1736 3423 1734 3422 1733 3422 1733 3422 1732 3422 1731 3422 1731 3422 1730 3422 1727 3421 1726 3421 1724 3420 1723 3420 1720 3418 1719 3417 1719 3417 1718 3416 1718 3415 1718 3414 1720 3413 1723 3413 1724 3414 1724 3414 1724 3415 1723 3415 1722 3416 1721 3416 1722 3416 1723 3416 1724 3416 1725 3415 1725 3415 1725 3414 1725 3414 1725 3413 1725 3413 1725 3413 1727 3413 1728 3413 1728 3416 1728 3416 1728 3416 1727 3417 1726 3417 1725 3417 1725 3418 1725 3418 1725 3418 1726 3418 1728 3417 1728 3417 1729 3416 1729 3415 1729 3415 1729 3414 1729 3412 1733 3411 1734 3411 1734 3411 1735 3411 1735 3411 1735 3411 1736 3411 1739 3407 1739 3407 1738 3406 1737 3406 1735 3406 1731 3407 1728 3408 1727 3409 1726 3409 1725 3411 1724 3411 1723 3411 1723 3411 1722 3411 1722 3410 1722 3410 1721 3410 1720 3409 1717 3410 1716 3410 1718 3410 1719 3410 1722 3412 1722 3412 1722 3412 1720 3413 1719 3413 1718 3412 1717 3412 1716 3412 1717 3413 1717 3413 1718 3413 1718 3413 1717 3415 1716 3415 1715 3415 1715 3414 1715 3414 1715 3415 1716 3416 1717 3416 1717 3415 1719 3417 1719 3417 1719 3418 1717 3418 1717 3418 1716 3417 1713 3416 1711 3415 1710 3415 1710 3414 1708 3414 1708 3414 1707 3413 1707 3413 1706 3413 1704 3412 1708 3412 1709 3412 1710 3412 1711 3412 1713 3414 1713 3414 1714 3414 1714 3413 1713 3412 1712 3412 1713 3411 1714 3411 1715 3411 1714 3411 1713 3411 1712 3411 1712 3411 1711 3411 1710 3411 1710 3410 1711 3410 1711 3409 1710 3409 1710 3408 1710 3407 1710 3406 1714 3405 1716 3406 1718 3406 1718 3406 1720 3405 1722 3404 1722 3403 1725 3403 1726 3404 1727 3404 1727 3404 1728 3404 1729 3404 1730 3404 1731 3404 1731 3404 1733 3403 1733 3402 1732 3402 1732 3402 1731 3402 1731 3402 1729 3402 1726 3402 1723 3401 1721 3401 1720 3401 1720 3402 1719 3402 1718 3404 1716 3402 1717 3402 1717 3402 1718 3402 1719 3401 1718 3401 1717 3401 1716 3402 1715 3402 1712 3402 1711 3403 1711 3403 1712 3403 1714 3403 1714 3404 1713 3405 1712 3405 1711 3406 1710 3406 1710 3406 1709 3406 1709 3407 1709 3408 1710 3409 1710 3409 1709 3410 1708 3410 1708 3410 1707 3411 1706 3411 1704 3410 1702 3409 1704 3408 1705 3407 1703 3407 1700 3406 1701 3405 1702 3406 1703 3406 1705 3406 1705 3405 1705 3405 1707 3401 1708 3401 1709 3401 1710 3401 1711 3401 1710 3401 1709 3401 1708 3401 1708 3401 1707 3401 1706 3401 1706 3402 1706 3402 1705 3404 1704 3404 1704 3404 1704 3403 1704 3403 1703 3402 1703 3403 1701 3403 1700 3404 1700 3405 1699 3405 1698 3405 1698 3403 1699 3402 1700 3402 1700 3402 1700 3402 1699 3402 1699 3401 1698 3400 1698 3399 1699 3399 1699 3399 1700 3399 1700 3398 1700 3397 1699 3396 1697 3395 1697 3394 1697 3394 1698 3393 1698 3394 1698 3394 1700 3396 1701 3396 1702 3396 1704 3397 1704 3397 1705 3397 1705 3396 1706 3396 1706 3395 1707 3394 1709 3394 1709 3394 1709 3395 1709 3396 1710 3397 1711 3397 1712 3397 1713 3395 1712 3394 1712 3394 1711 3395 1711 3396 1711 3396 1710 3396 1710 3394 1711 3392 1712 3392 1714 3393 1714 3394 1714 3394 1715 3395 1715 3395 1716 3396 1716 3396 1716 3398 1715 3399 1713 3399 1710 3400 1711 3400 1712 3400 1715 3399 1716 3399 1717 3398 1718 3396 1717 3396 1716 3395 1715 3394 1714 3393 1715 3392 1717 3392 1717 3392 1717 3392 1718 3392 1718 3390 1717 3389 1714 3387 1714 3386 1713 3386 1713 3386 1712 3386 1710 3386 1708 3385 1708 3384 1707 3384 1706 3384 1705 3384 1705 3385 1705 3385 1706 3385 1706 3385 1707 3385 1708 3385 1709 3386 1711 3387 1714 3388 1714 3388 1715 3388 1716 3389 1716 3389 1716 3390 1715 3390 1714 3390 1712 3390 1712 3389 1709 3389 1706 3387 1705 3387 1704 3387 1705 3388 1706 3389 1707 3389 1707 3389 1708 3389 1708 3389 1709 3389 1709 3390 1708 3391 1708 3391 1707 3391 1706 3391 1708 3391 1709 3390 1709 3390 1710 3390 1710 3391 1710 3391 1709 3391 1708 3392 1707 3392 1707 3393 1706 3395 1706 3395 1705 3394 1705 3394 1704 3392 1704 3390 1704 3389 1704 3388 1703 3388 1703 3388 1704 3389 1704 3390 1705 3395 1704 3396 1704 3396 1703 3396 1700 3394 1700 3394 1700 3393 1700 3393 1699 3392 1699 3390 1699 3390 1700 3390 1701 3392 1702 3393 1703 3393 1701 3392 1700 3389 1700 3389 1701 3389 1701 3388 1699 3389 1698 3390 1697 3388 1696 3387 1695 3387 1695 3387 1694 3384 1694 3384 1695 3383 1696 3383 1698 3385 1698 3385 1699 3387 1699 3387 M 1127 2997 1127 2997 1127 2997 1127 2995 1127 2995 1127 2995 1128 2995 1128 2995 1131 2995 1131 2995 1130 2996 1130 2996 1129 2996 1129 2996 1129 2996 1128 2997 1127 2997 1127 2997 M 1700 3249 1700 3249 1701 3250 1701 3251 1701 3251 1701 3251 1697 3251 1697 3251 1697 3253 1697 3253 1698 3253 1698 3254 1698 3255 1697 3255 1695 3256 1695 3255 1694 3255 1694 3255 1692 3255 1691 3255 1689 3254 1687 3254 1687 3254 1687 3253 1688 3251 1689 3250 1689 3249 1690 3249 1690 3248 1691 3244 1691 3243 1690 3242 1690 3242 1690 3241 1690 3240 1690 3237 1690 3237 1691 3236 1691 3236 1691 3236 1692 3236 1692 3234 1693 3232 1692 3231 1692 3231 1692 3230 1693 3230 1694 3230 1695 3231 1695 3231 1694 3231 1694 3231 1693 3231 1693 3231 1694 3231 1695 3232 1695 3231 1696 3231 1698 3230 1699 3230 1700 3230 1701 3231 1701 3233 1702 3234 1702 3235 1701 3235 1701 3235 1701 3236 1702 3236 1703 3236 1703 3237 1703 3238 1703 3238 1701 3239 1700 3238 1700 3238 1699 3239 1698 3239 1698 3239 1698 3241 1698 3241 1699 3241 1699 3241 1697 3242 1697 3241 1697 3241 1696 3241 1696 3242 1696 3243 1699 3245 1700 3245 1701 3246 1701 3246 1701 3247 1701 3247 1700 3247 1699 3247 1699 3248 1699 3248 1699 3249 1700 3249 M 1702 3242 1702 3242 1702 3242 1702 3241 1701 3241 1700 3241 1700 3241 1699 3241 1699 3240 1699 3240 1699 3239 1699 3239 1699 3239 1700 3239 1700 3239 1701 3240 1702 3242 1702 3242 1702 3242 M 1681 3260 1680 3260 1680 3260 1680 3259 1679 3259 1679 3259 1679 3258 1679 3258 1681 3258 1681 3258 1682 3258 1682 3258 1683 3259 1683 3259 1683 3259 1682 3259 1682 3259 1682 3259 1681 3259 1681 3259 1681 3260 M 1693 3264 1693 3264 1691 3264 1691 3264 1690 3263 1690 3263 1691 3262 1691 3262 1691 3262 1692 3262 1692 3262 1694 3262 1695 3262 1696 3262 1697 3263 1697 3264 1695 3264 1695 3263 1695 3263 1695 3263 1695 3263 1695 3263 1695 3263 1695 3263 1694 3263 1694 3263 1694 3263 1694 3264 1694 3264 1694 3264 1693 3264 1693 3264 M 1706 3266 1706 3266 1705 3265 1704 3265 1704 3265 1704 3264 1705 3264 1705 3264 1706 3263 1706 3263 1706 3263 1707 3263 1707 3264 1707 3264 1707 3266 1706 3266 M 1699 3267 1697 3266 1697 3265 1697 3265 1697 3265 1697 3264 1697 3264 1698 3264 1699 3265 1699 3267 1699 3267 1699 3267 1699 3267 M 1695 3268 1694 3268 1693 3268 1693 3268 1693 3268 1693 3268 1693 3268 1693 3267 1694 3267 1694 3267 1694 3267 1695 3267 1696 3268 1696 3268 1696 3268 1695 3268 1695 3268 M 1693 3271 1693 3271 1692 3271 1692 3270 1692 3270 1691 3268 1692 3268 1692 3268 1693 3269 1694 3269 1693 3269 1693 3270 1693 3270 1693 3271 M 1695 3271 1694 3270 1694 3270 1693 3270 1696 3270 1696 3270 1696 3270 1696 3270 1696 3271 1696 3271 1696 3271 1695 3271 M 1694 3272 1692 3272 1692 3271 1691 3270 1692 3270 1694 3271 1694 3272 1694 3272 1694 3272 1694 3272 M 1711 3277 1711 3277 1710 3278 1710 3278 1708 3279 1708 3279 1708 3279 1708 3279 1707 3280 1706 3280 1705 3280 1705 3280 1705 3280 1704 3280 1703 3279 1703 3279 1703 3278 1703 3278 1704 3278 1704 3278 1705 3278 1705 3278 1706 3278 1706 3278 1705 3278 1704 3277 1704 3278 1703 3278 1703 3278 1703 3278 1703 3278 1703 3278 1702 3277 1702 3277 1702 3276 1702 3275 1702 3275 1703 3275 1703 3275 1705 3275 1705 3274 1705 3273 1705 3273 1705 3273 1705 3272 1705 3272 1706 3272 1706 3272 1708 3271 1709 3271 1709 3271 1711 3272 1712 3273 1713 3273 1713 3274 1714 3274 1713 3274 1712 3275 1712 3275 1712 3276 1712 3276 1711 3275 1710 3275 1710 3275 1709 3275 1709 3275 1710 3275 1711 3276 1711 3276 1712 3276 1712 3276 1712 3277 1711 3277 1711 3277 M 1687 3274 1685 3274 1685 3274 1684 3273 1684 3273 1684 3273 1685 3272 1685 3272 1688 3272 1689 3272 1689 3272 1690 3273 1690 3273 1689 3273 1688 3273 1687 3273 1686 3273 1687 3274 M 1692 3274 1692 3274 1691 3274 1691 3274 1691 3274 1691 3274 1691 3272 1693 3273 1693 3273 1693 3273 1694 3273 1694 3273 1694 3273 1694 3273 1694 3274 1694 3274 1694 3274 1693 3274 1693 3274 1692 3274 M 1688 3275 1688 3275 1688 3274 1687 3274 1687 3274 1687 3274 1687 3274 1688 3273 1690 3273 1691 3274 1690 3274 1688 3274 1688 3275 M 1697 3277 1697 3277 1696 3276 1696 3275 1696 3274 1696 3274 1698 3274 1698 3274 1698 3274 1698 3274 1699 3275 1700 3276 1700 3277 1699 3277 1698 3277 1697 3277 M 1681 3276 1680 3276 1680 3276 1680 3276 1680 3275 1680 3275 1680 3274 1680 3274 1680 3274 1680 3274 1681 3274 1681 3275 1681 3275 1681 3275 1681 3276 1681 3276 1681 3276 1681 3276 M 1689 3278 1689 3278 1688 3278 1688 3278 1688 3278 1687 3278 1687 3277 1686 3276 1686 3276 1686 3275 1687 3275 1689 3275 1689 3275 1690 3275 1691 3275 1693 3275 1694 3275 1694 3275 1694 3275 1694 3275 1695 3276 1695 3276 1695 3276 1695 3276 1693 3277 1690 3278 1690 3278 1689 3278 M 1686 3276 1685 3276 1683 3276 1682 3276 1682 3276 1682 3276 1683 3275 1683 3275 1684 3275 1684 3275 1684 3275 1685 3275 1686 3276 1686 3276 1686 3276 M 1687 3279 1687 3279 1686 3279 1685 3277 1685 3277 1685 3277 1685 3277 1686 3277 1686 3277 1688 3279 1688 3279 1687 3279 1687 3279 M 1698 3279 1697 3278 1697 3278 1697 3278 1697 3277 1699 3277 1699 3277 1699 3277 1699 3277 1699 3279 1699 3279 1699 3279 1698 3279 1698 3279 M 1696 3281 1695 3280 1695 3280 1694 3280 1694 3280 1694 3279 1694 3278 1694 3278 1694 3278 1695 3278 1695 3278 1695 3278 1696 3278 1696 3278 1697 3280 1697 3280 1697 3280 1697 3281 1696 3281 1696 3281 1696 3281 1696 3281 1696 3281 M 1692 3279 1692 3279 1690 3278 1690 3278 1690 3278 1691 3278 1691 3278 1692 3278 1692 3278 1692 3278 1693 3278 1693 3278 1694 3278 1694 3278 1694 3279 1693 3279 1693 3279 1693 3279 1692 3279 M 1676 3280 1676 3280 1675 3280 1675 3279 1675 3279 1675 3279 1675 3278 1675 3278 1675 3278 1676 3278 1676 3278 1677 3279 1677 3280 1676 3280 1676 3280 M 1689 3282 1688 3282 1687 3282 1687 3281 1687 3281 1690 3279 1690 3279 1690 3279 1691 3279 1694 3280 1694 3280 1694 3280 1694 3281 1694 3281 1694 3281 1693 3281 1692 3281 1692 3281 1691 3281 1690 3281 1690 3281 1690 3281 1689 3282 M 1697 3286 1696 3286 1696 3285 1695 3285 1694 3285 1694 3285 1693 3285 1693 3285 1693 3285 1693 3285 1691 3284 1691 3284 1690 3284 1689 3284 1689 3284 1689 3283 1689 3283 1689 3283 1689 3282 1689 3282 1690 3282 1690 3282 1691 3282 1691 3282 1691 3282 1691 3282 1692 3282 1693 3282 1694 3282 1694 3281 1694 3281 1694 3281 1695 3281 1695 3281 1695 3281 1696 3281 1696 3282 1697 3282 1697 3282 1697 3282 1698 3283 1698 3283 1698 3284 1698 3284 1698 3284 1697 3286 M 1688 3286 1687 3286 1687 3285 1686 3285 1686 3285 1686 3285 1687 3284 1687 3284 1687 3284 1687 3284 1689 3285 1688 3286 1688 3286 1688 3286 1688 3286 M 1693 3287 1693 3287 1691 3286 1691 3286 1690 3285 1691 3285 1692 3285 1692 3285 1692 3285 1692 3285 1692 3285 1693 3285 1693 3285 1693 3285 1693 3285 1693 3286 1694 3286 1694 3286 1695 3285 1695 3285 1696 3285 1696 3286 1696 3286 1696 3286 1696 3286 1697 3287 1696 3287 1696 3287 1695 3287 1694 3287 1693 3287 M 1687 3288 1685 3287 1685 3287 1685 3287 1685 3286 1685 3286 1685 3286 1685 3286 1685 3286 1686 3286 1686 3286 1687 3286 1687 3286 1687 3286 1687 3286 1687 3286 1688 3288 1688 3288 1688 3288 1687 3288 1687 3288 1687 3288 M 1694 3288 1693 3288 1693 3288 1693 3288 1693 3287 1693 3287 1694 3287 1694 3287 1696 3287 1696 3287 1696 3287 1696 3288 1695 3288 1695 3288 1694 3288 M 1691 3291 1691 3290 1691 3290 1691 3290 1691 3290 1691 3290 1691 3289 1691 3289 1691 3289 1691 3289 1692 3289 1692 3288 1692 3288 1692 3288 1692 3288 1693 3288 1693 3288 1693 3288 1693 3288 1694 3288 1694 3288 1694 3288 1694 3289 1695 3289 1695 3289 1695 3289 1695 3289 1696 3288 1696 3289 1696 3289 1696 3289 1696 3289 1696 3290 1695 3290 1695 3290 1695 3290 1695 3290 1695 3290 1695 3290 1694 3290 1694 3290 1694 3290 1694 3290 1693 3290 1693 3290 1693 3290 1692 3290 1692 3290 1692 3290 1692 3290 1691 3290 1691 3290 1691 3290 1691 3291 M 1699 3293 1698 3293 1698 3293 1697 3292 1696 3290 1696 3290 1696 3290 1697 3290 1697 3289 1698 3288 1698 3288 1698 3288 1698 3288 1700 3289 1700 3289 1700 3289 1699 3292 1699 3293 1699 3293 1699 3293 1699 3293 M 1686 3294 1685 3294 1685 3293 1685 3293 1685 3293 1685 3293 1686 3292 1686 3292 1686 3292 1686 3291 1686 3290 1686 3290 1686 3290 1686 3290 1686 3289 1686 3289 1686 3289 1686 3288 1687 3288 1688 3289 1688 3289 1689 3289 1689 3289 1689 3290 1689 3290 1690 3291 1690 3291 1689 3292 1689 3292 1687 3293 1687 3294 1686 3294 M 1693 3293 1693 3293 1692 3293 1692 3293 1692 3292 1691 3291 1691 3291 1692 3290 1693 3290 1693 3290 1694 3290 1694 3291 1695 3291 1695 3291 1695 3292 1694 3292 1693 3293 M 1682 3293 1682 3293 1682 3292 1682 3292 1682 3292 1682 3291 1682 3291 1682 3291 1683 3291 1683 3291 1683 3291 1684 3290 1684 3290 1684 3291 1684 3291 1684 3292 1684 3293 1684 3293 1683 3293 1683 3293 1683 3293 1682 3293 1682 3293 1682 3293 M 1693 3296 1692 3295 1692 3294 1691 3294 1692 3294 1692 3293 1692 3293 1693 3293 1694 3293 1694 3294 1694 3295 1694 3295 1693 3296 1693 3296 1693 3296 M 1695 3297 1694 3297 1694 3297 1694 3296 1694 3296 1694 3296 1694 3296 1695 3295 1695 3295 1697 3294 1697 3294 1698 3294 1698 3294 1698 3295 1698 3296 1698 3295 1697 3295 1697 3295 1697 3295 1696 3295 1696 3296 1695 3297 1695 3297 M 1676 3299 1676 3299 1676 3298 1675 3298 1676 3298 1676 3298 1678 3297 1678 3297 1678 3297 1677 3297 1677 3297 1676 3297 1676 3297 1676 3297 1675 3295 1675 3295 1676 3295 1676 3295 1677 3295 1678 3296 1678 3296 1679 3295 1680 3294 1681 3294 1682 3294 1682 3294 1682 3295 1682 3295 1681 3297 1681 3297 1681 3297 1680 3298 1679 3299 1678 3299 1677 3299 1677 3299 1676 3299 1676 3299 M 1698 3298 1698 3298 1696 3297 1696 3297 1696 3297 1696 3297 1697 3296 1697 3296 1697 3296 1698 3296 1698 3298 1698 3298 M 1697 3301 1696 3300 1696 3300 1694 3298 1694 3298 1694 3298 1695 3298 1695 3297 1695 3297 1696 3297 1697 3298 1698 3298 1698 3298 1698 3299 1698 3299 1697 3300 1697 3301 1697 3301 1697 3301 M 1690 3316 1690 3316 1689 3315 1689 3315 1689 3315 1690 3314 1690 3314 1690 3314 1690 3314 1690 3313 1693 3314 1693 3314 1692 3315 1692 3316 1692 3316 1691 3316 1691 3316 1690 3316 M 1686 3316 1685 3315 1685 3315 1685 3315 1686 3314 1687 3314 1687 3314 1688 3314 1688 3314 1688 3314 1688 3314 1688 3315 1688 3315 1686 3316 1686 3316 1686 3316 1686 3316 M 1677 3326 1677 3326 1676 3325 1676 3325 1676 3324 1676 3324 1676 3324 1678 3324 1678 3324 1678 3325 1679 3325 1679 3325 1678 3326 1678 3326 1677 3326 M 1674 3327 1674 3326 1674 3326 1674 3326 1673 3326 1673 3326 1673 3326 1672 3326 1672 3326 1673 3325 1675 3324 1675 3324 1676 3325 1676 3325 1676 3326 1676 3326 1676 3326 1676 3326 1675 3327 1675 3327 1674 3327 1674 3327 M 1688 3329 1687 3329 1686 3328 1685 3328 1685 3328 1685 3328 1686 3327 1687 3327 1687 3327 1688 3326 1689 3326 1692 3327 1694 3327 1695 3327 1695 3327 1695 3327 1695 3327 1696 3327 1696 3327 1696 3327 1696 3327 1696 3327 1696 3328 1696 3328 1696 3328 1695 3329 1695 3329 1694 3329 1693 3329 1692 3329 1692 3328 1692 3328 1691 3328 1691 3328 1688 3329 1688 3329 1688 3329 M 1679 3330 1679 3330 1678 3330 1677 3330 1677 3330 1676 3330 1677 3329 1676 3329 1676 3329 1676 3329 1675 3329 1675 3329 1675 3330 1674 3330 1674 3330 1673 3330 1673 3330 1673 3330 1674 3329 1674 3329 1674 3328 1675 3328 1676 3328 1676 3328 1678 3327 1679 3326 1680 3326 1680 3326 1680 3327 1680 3327 1680 3328 1680 3330 1679 3330 1679 3330 1679 3330 M 1674 3340 1674 3340 1673 3341 1673 3339 1672 3339 1672 3337 1672 3337 1672 3336 1671 3335 1670 3336 1670 3336 1669 3336 1669 3336 1669 3336 1669 3336 1668 3336 1668 3336 1668 3335 1668 3335 1669 3335 1669 3335 1669 3335 1670 3335 1670 3335 1670 3335 1671 3335 1671 3334 1671 3334 1672 3334 1671 3334 1671 3334 1668 3334 1668 3334 1668 3331 1668 3331 1668 3330 1669 3330 1671 3329 1672 3329 1672 3329 1673 3332 1673 3332 1673 3333 1673 3333 1673 3334 1674 3335 1674 3335 1674 3335 1675 3336 1676 3337 1676 3339 1676 3339 1676 3339 1674 3340 1674 3340 M 1677 3336 1676 3336 1676 3336 1674 3333 1673 3331 1673 3330 1674 3330 1675 3330 1676 3331 1677 3331 1677 3331 1678 3332 1680 3332 1680 3332 1680 3332 1680 3333 1680 3335 1680 3335 1679 3335 1679 3335 1678 3336 1678 3336 1677 3336 1677 3336 M 1685 3335 1685 3335 1684 3333 1683 3333 1683 3333 1683 3332 1683 3332 1684 3331 1684 3331 1685 3331 1685 3331 1685 3332 1687 3333 1687 3333 1687 3334 1686 3334 1685 3335 M 1683 3340 1681 3339 1681 3339 1681 3339 1680 3339 1680 3339 1678 3339 1677 3339 1677 3339 1677 3339 1677 3337 1677 3337 1677 3337 1677 3337 1678 3336 1678 3336 1679 3336 1680 3336 1680 3336 1680 3336 1680 3337 1680 3337 1681 3337 1682 3336 1682 3336 1682 3336 1681 3336 1681 3336 1680 3335 1680 3335 1680 3334 1680 3334 1680 3334 1681 3332 1681 3331 1681 3331 1681 3331 1681 3331 1682 3332 1682 3332 1682 3332 1682 3332 1682 3333 1682 3334 1684 3336 1683 3336 1683 3337 1683 3338 1684 3338 1684 3339 1685 3339 1685 3339 1685 3339 1685 3339 1685 3338 1685 3338 1685 3338 1685 3339 1685 3339 1685 3339 1685 3339 1685 3340 1685 3340 1685 3340 1684 3340 1684 3340 1683 3340 1683 3340 M 1689 3337 1688 3336 1688 3336 1688 3336 1687 3336 1687 3336 1686 3335 1686 3335 1685 3335 1685 3335 1687 3334 1688 3334 1688 3334 1688 3334 1688 3334 1688 3334 1688 3335 1688 3335 1688 3335 1689 3336 1689 3336 1689 3336 1690 3336 1690 3336 1689 3336 1689 3337 1689 3337 M 1692 3337 1692 3337 1692 3337 1690 3336 1689 3336 1689 3335 1689 3335 1689 3335 1690 3335 1690 3335 1690 3335 1692 3336 1692 3336 1692 3336 1692 3336 1692 3337 M 1686 3338 1686 3337 1685 3336 1685 3336 1685 3336 1685 3336 1685 3336 1685 3336 1686 3336 1687 3336 1688 3336 1688 3337 1688 3337 1688 3337 1688 3337 1688 3337 1687 3338 1686 3338 1686 3338 1686 3338 M 1667 3340 1668 3340 1668 3340 1668 3340 1669 3340 1669 3340 1669 3340 1670 3339 1670 3339 1670 3339 1670 3339 1670 3339 1669 3339 1669 3339 1669 3339 1669 3339 1667 3339 1667 3339 1667 3339 1666 3339 1667 3337 1667 3336 1667 3336 1671 3336 1672 3336 1672 3336 1672 3339 1672 3339 1671 3339 1671 3339 1670 3340 1669 3340 1669 3340 1669 3340 1668 3340 1668 3340 1668 3340 1667 3340 M 1667 3342 1667 3342 1667 3342 1667 3342 1667 3341 1667 3340 1667 3340 1668 3341 1669 3341 1669 3341 1669 3341 1669 3341 1670 3340 1672 3339 1672 3340 1672 3340 1672 3340 1673 3340 1673 3341 1672 3341 1672 3341 1669 3342 1667 3342 M 1675 3342 1675 3342 1673 3342 1673 3341 1674 3341 1676 3339 1676 3339 1676 3340 1676 3340 1676 3340 1676 3340 1676 3340 1676 3342 1675 3342 1675 3342 1675 3342 M 1677 3341 1677 3341 1676 3341 1676 3341 1677 3340 1677 3340 1679 3340 1679 3340 1680 3340 1678 3341 1678 3341 1678 3341 1677 3341 1677 3341 M 1674 3353 1674 3353 1674 3352 1673 3352 1673 3352 1673 3351 1672 3350 1672 3349 1673 3349 1673 3350 1674 3350 1674 3351 1675 3350 1676 3349 1676 3349 1676 3348 1676 3349 1677 3350 1678 3351 1679 3350 1680 3347 1679 3346 1678 3345 1678 3345 1678 3345 1677 3344 1676 3343 1676 3342 1677 3341 1680 3340 1681 3340 1684 3341 1685 3341 1685 3344 1685 3344 1686 3345 1685 3347 1686 3348 1686 3349 1686 3350 1686 3352 1685 3353 1685 3353 1685 3354 1685 3354 1684 3355 1684 3356 1684 3357 1685 3356 1685 3356 1685 3355 1686 3355 1686 3355 1686 3356 1686 3357 1686 3360 1685 3360 1684 3361 1683 3362 1683 3362 1681 3362 1681 3362 1679 3362 1679 3361 1680 3361 1680 3360 1681 3360 1682 3360 1682 3360 1682 3360 1682 3360 1681 3360 1681 3360 1679 3360 1679 3360 1678 3360 1679 3359 1679 3358 1678 3356 1679 3354 1680 3353 1681 3353 1683 3351 1682 3351 1681 3352 1679 3353 1678 3354 1678 3353 1678 3353 1677 3353 1677 3354 1677 3355 1677 3355 1677 3356 1678 3356 1677 3358 1677 3360 1676 3359 1675 3359 1674 3357 1672 3355 1673 3354 1672 3353 1672 3353 1671 3352 1671 3352 1670 3352 1670 3352 1670 3351 1670 3350 1670 3350 1671 3350 1671 3350 1672 3351 1672 3351 1673 3352 1674 3353 1674 3353 1674 3353 M 1674 3345 1673 3345 1672 3342 1673 3342 1673 3342 1674 3342 1674 3342 1675 3343 1675 3343 1675 3343 1676 3343 1676 3343 1676 3344 1676 3344 1676 3345 1676 3345 1674 3345 1674 3345 1674 3345 M 1673 3346 1672 3345 1672 3344 1670 3345 1670 3346 1670 3346 1669 3346 1669 3346 1667 3345 1667 3345 1667 3345 1667 3344 1667 3344 1667 3344 1667 3344 1667 3344 1667 3343 1667 3343 1668 3343 1671 3343 1671 3343 1672 3343 1672 3343 1673 3343 1674 3346 1674 3346 1673 3346 1673 3346 1673 3346 M 1669 3349 1669 3349 1667 3349 1667 3349 1667 3349 1667 3349 1667 3347 1668 3347 1669 3347 1669 3347 1670 3347 1670 3346 1670 3346 1671 3345 1671 3345 1671 3345 1672 3345 1672 3345 1672 3346 1673 3347 1672 3347 1672 3347 1672 3347 1670 3349 1669 3349 M 1678 3350 1676 3348 1674 3348 1673 3348 1673 3347 1673 3347 1674 3347 1674 3347 1674 3346 1675 3346 1677 3346 1678 3346 1679 3346 1679 3346 1679 3347 1679 3347 1678 3350 1678 3350 1678 3350 M 1686 3355 1686 3354 1686 3353 1686 3352 1686 3352 1686 3352 1687 3353 1688 3353 1688 3353 1688 3354 1688 3354 1686 3355 1686 3355 M 1674 3360 1674 3359 1673 3359 1673 3358 1673 3359 1673 3359 1673 3359 1673 3359 1672 3359 1672 3359 1672 3359 1671 3358 1671 3358 1671 3358 1670 3357 1668 3359 1668 3358 1668 3358 1668 3358 1667 3356 1668 3355 1671 3355 1671 3355 1671 3355 1672 3355 1672 3356 1674 3358 1674 3358 1674 3359 1674 3360 M 1676 3366 1676 3366 1674 3368 1674 3368 1673 3368 1672 3368 1672 3368 1672 3368 1672 3368 1672 3367 1673 3367 1673 3367 1674 3366 1674 3366 1673 3366 1672 3367 1670 3367 1670 3367 1670 3367 1670 3367 1670 3366 1670 3366 1670 3365 1671 3364 1671 3364 1671 3363 1671 3363 1672 3363 1672 3363 1673 3364 1673 3364 1673 3364 1673 3364 1672 3364 1672 3364 1671 3364 1672 3365 1672 3365 1673 3365 1674 3365 1675 3365 1675 3364 1675 3364 1673 3364 1672 3363 1671 3362 1671 3362 1672 3361 1672 3361 1675 3362 1675 3362 1677 3363 1676 3364 1676 3364 1676 3364 1677 3364 1679 3364 1680 3363 1679 3363 1680 3363 1680 3363 1680 3363 1680 3364 1680 3365 1677 3366 1677 3366 1676 3366 M 1681 3369 1681 3369 1680 3369 1681 3367 1682 3367 1682 3367 1682 3367 1683 3367 1684 3367 1684 3367 1684 3368 1683 3368 1682 3369 1681 3369 1681 3369 M 1690 3375 1689 3374 1689 3374 1689 3374 1688 3374 1688 3374 1687 3374 1685 3373 1685 3373 1684 3372 1684 3372 1684 3371 1684 3371 1685 3370 1686 3370 1685 3369 1685 3369 1685 3369 1684 3369 1684 3369 1682 3369 1683 3368 1684 3368 1684 3368 1684 3368 1684 3368 1685 3368 1687 3369 1689 3371 1689 3372 1690 3373 1690 3374 1690 3374 1690 3375 1690 3375 1690 3375 M 1672 3374 1670 3373 1670 3373 1670 3373 1669 3372 1669 3371 1670 3371 1670 3371 1670 3371 1671 3371 1671 3371 1671 3370 1671 3370 1670 3369 1670 3369 1670 3369 1670 3369 1671 3369 1674 3369 1675 3369 1676 3369 1676 3369 1674 3371 1674 3371 1674 3371 1673 3371 1673 3371 1673 3370 1673 3371 1673 3372 1673 3373 1673 3374 1672 3374 1672 3374 1672 3374 M 1676 3374 1676 3374 1676 3374 1675 3373 1675 3373 1676 3372 1676 3372 1677 3372 1677 3372 1677 3372 1677 3374 1677 3374 1677 3374 1676 3374 M 1682 3375 1681 3375 1680 3375 1678 3375 1678 3375 1678 3373 1678 3373 1678 3373 1679 3372 1680 3372 1680 3372 1681 3372 1682 3374 1682 3374 1682 3375 1682 3375 1682 3375 M 1682 3379 1679 3378 1678 3377 1678 3377 1678 3376 1678 3376 1678 3375 1678 3375 1679 3375 1681 3376 1682 3376 1683 3375 1683 3374 1683 3374 1683 3374 1683 3373 1682 3373 1682 3373 1682 3373 1682 3373 1683 3373 1683 3373 1684 3373 1685 3374 1687 3374 1687 3375 1687 3375 1687 3377 1687 3378 1687 3379 1686 3378 1686 3378 1686 3378 1686 3377 1685 3377 1685 3377 1683 3378 1683 3378 1683 3379 1682 3379 1682 3379 M 1689 3381 1688 3378 1688 3378 1687 3376 1688 3376 1688 3376 1688 3376 1688 3376 1689 3378 1690 3380 1690 3380 1689 3381 1689 3381 1689 3381 1689 3381 1689 3381 1689 3381 M 1686 3380 1684 3380 1684 3380 1683 3379 1683 3378 1685 3378 1685 3377 1686 3378 1686 3378 1687 3379 1687 3379 1687 3379 1687 3380 1687 3380 1686 3380 1686 3380 M 1677 3385 1677 3385 1677 3385 1677 3384 1678 3384 1679 3383 1679 3383 1680 3382 1680 3382 1680 3382 1679 3383 1678 3383 1678 3383 1678 3383 1678 3382 1678 3382 1678 3382 1680 3380 1682 3380 1683 3380 1684 3381 1684 3381 1684 3382 1684 3383 1684 3383 1684 3384 1683 3384 1683 3384 1683 3384 1682 3382 1682 3383 1681 3383 1681 3384 1680 3384 1680 3384 1679 3384 1678 3384 1678 3384 1677 3385 M 1692 3383 1692 3383 1691 3383 1691 3382 1691 3382 1691 3381 1691 3381 1692 3381 1692 3381 1693 3381 1694 3381 1694 3381 1694 3382 1694 3382 1692 3383 1692 3383 M 1696 3383 1695 3383 1695 3383 1695 3383 1694 3382 1695 3382 1695 3381 1696 3381 1696 3381 1696 3381 1696 3381 1697 3381 1697 3381 1697 3382 1697 3382 1697 3382 1697 3383 1697 3383 1696 3383 M 1672 3387 1672 3387 1672 3386 1673 3385 1673 3385 1674 3384 1674 3383 1674 3382 1674 3382 1674 3382 1674 3382 1675 3381 1675 3381 1675 3381 1677 3382 1677 3383 1677 3383 1677 3384 1677 3384 1677 3384 1676 3384 1676 3384 1676 3384 1675 3385 1675 3385 1675 3386 1675 3386 1675 3386 1675 3386 1672 3387 1672 3387 1672 3387 M 1691 3384 1690 3384 1689 3384 1689 3384 1689 3383 1689 3382 1689 3382 1690 3382 1690 3382 1691 3383 1691 3383 1691 3384 1691 3384 1691 3384 1691 3384 M 1693 3390 1692 3390 1692 3390 1690 3389 1690 3389 1689 3388 1689 3388 1689 3388 1690 3388 1691 3388 1692 3387 1691 3386 1691 3386 1692 3386 1692 3386 1692 3386 1694 3389 1694 3389 1694 3390 1694 3390 1693 3390 1693 3390 1693 3390 1693 3390 M 1678 3395 1677 3395 1676 3393 1678 3390 1678 3390 1678 3390 1678 3391 1678 3391 1678 3391 1679 3391 1679 3391 1679 3391 1680 3391 1679 3389 1679 3388 1678 3388 1678 3388 1678 3387 1678 3387 1679 3387 1679 3387 1679 3387 1680 3387 1680 3387 1681 3388 1681 3389 1681 3390 1681 3390 1680 3392 1679 3394 1678 3395 1678 3395 1678 3395 1678 3395 M 1696 3390 1696 3390 1696 3390 1695 3390 1695 3390 1694 3388 1694 3388 1694 3388 1694 3388 1695 3388 1696 3389 1697 3389 1697 3390 1696 3390 M 1690 3392 1689 3392 1687 3391 1686 3391 1685 3388 1687 3389 1690 3391 1692 3391 1692 3391 1691 3392 1691 3392 1690 3392 M 1675 3391 1675 3391 1675 3391 1676 3390 1676 3389 1676 3389 1676 3389 1677 3389 1677 3388 1677 3389 1678 3389 1678 3389 1678 3390 1677 3390 1677 3391 1677 3391 1677 3391 1676 3391 1676 3391 1675 3391 M 1695 3391 1694 3391 1694 3391 1694 3390 1694 3390 1694 3390 1695 3390 1695 3390 1695 3390 1695 3390 1696 3391 1696 3391 1696 3391 1695 3391 M 1679 3395 1679 3395 1679 3395 1680 3391 1680 3391 1681 3391 1681 3391 1681 3390 1681 3390 1683 3391 1683 3391 1681 3394 1681 3395 1679 3395 1679 3395 M 1707 3394 1707 3394 1707 3393 1707 3393 1707 3393 1708 3392 1708 3392 1710 3392 1711 3391 1711 3392 1709 3394 1709 3394 1708 3394 1708 3394 1707 3394 1707 3394 M 1697 3397 1697 3397 1697 3396 1696 3395 1695 3395 1695 3394 1694 3394 1693 3394 1692 3393 1692 3393 1691 3393 1691 3392 1692 3392 1692 3392 1692 3392 1693 3392 1695 3393 1695 3393 1696 3394 1697 3394 1697 3394 1698 3395 1698 3396 1698 3397 1698 3397 1698 3397 1697 3397 M 1681 3394 1682 3394 1682 3394 1682 3393 1684 3392 1685 3392 1685 3392 1685 3393 1685 3393 1684 3394 1682 3394 1682 3394 1681 3394 1681 3394 M 1681 3396 1680 3396 1680 3396 1680 3396 1680 3395 1680 3395 1683 3394 1683 3394 1682 3396 1681 3396 1681 3396 1681 3396 M 1691 3399 1690 3399 1689 3398 1689 3397 1689 3397 1690 3397 1690 3397 1690 3397 1691 3397 1691 3397 1691 3397 1691 3397 1691 3396 1691 3396 1690 3396 1689 3396 1688 3396 1688 3396 1687 3396 1687 3396 1686 3395 1686 3395 1687 3395 1688 3394 1688 3394 1688 3394 1688 3394 1689 3395 1689 3395 1690 3395 1691 3396 1692 3396 1694 3398 1694 3398 1693 3399 1691 3399 1691 3399 1691 3399 M 1696 3399 1695 3399 1694 3398 1693 3397 1692 3396 1692 3396 1692 3396 1692 3395 1692 3395 1692 3395 1693 3396 1694 3396 1695 3397 1696 3397 1696 3397 1697 3397 1697 3398 1697 3399 1697 3399 1697 3399 1696 3399 1696 3399 1696 3399 M 1681 3398 1680 3398 1680 3397 1682 3396 1683 3396 1683 3396 1683 3397 1682 3398 1682 3398 1681 3398 1681 3398 M 1694 3405 1694 3405 1694 3405 1694 3404 1692 3403 1692 3403 1692 3403 1692 3402 1692 3402 1693 3401 1696 3400 1697 3400 1697 3399 1697 3400 1697 3400 1698 3400 1698 3401 1697 3403 1696 3404 1696 3404 1696 3404 1696 3404 1696 3404 1695 3404 1695 3404 1694 3405 M 1753 3439 1752 3439 1752 3438 1752 3438 1752 3438 1752 3437 1752 3437 1753 3436 1753 3436 1753 3436 1752 3437 1751 3438 1751 3438 1751 3438 1751 3438 1750 3438 1747 3438 1745 3438 1745 3438 1745 3438 1744 3438 1744 3438 1744 3438 1744 3437 1745 3437 1745 3437 1746 3437 1746 3437 1747 3437 1748 3436 1749 3436 1750 3435 1750 3435 1750 3435 1749 3435 1748 3435 1748 3435 1747 3436 1747 3436 1748 3436 1747 3436 1747 3436 1745 3437 1744 3437 1743 3437 1742 3436 1742 3436 1743 3436 1744 3436 1745 3436 1744 3436 1744 3436 1744 3436 1744 3436 1743 3436 1742 3436 1741 3437 1741 3437 1740 3437 1740 3437 1740 3437 1740 3437 1741 3437 1741 3437 1741 3436 1741 3436 1741 3435 1741 3435 1741 3435 1740 3435 1740 3435 1740 3435 1740 3436 1738 3436 1738 3436 1737 3436 1736 3436 1736 3436 1736 3435 1736 3435 1737 3435 1737 3435 1737 3434 1736 3433 1735 3433 1735 3434 1733 3436 1733 3436 1733 3436 1733 3436 1730 3435 1730 3435 1730 3435 1729 3435 1728 3435 1728 3435 1728 3435 1726 3436 1726 3436 1726 3435 1726 3435 1726 3435 1725 3435 1725 3434 1725 3433 1725 3432 1725 3432 1725 3432 1726 3432 1727 3433 1727 3433 1727 3433 1728 3434 1728 3434 1729 3434 1730 3434 1730 3434 1732 3434 1730 3433 1729 3432 1729 3432 1729 3433 1728 3433 1728 3432 1728 3432 1727 3432 1728 3431 1729 3431 1729 3431 1729 3431 1730 3432 1730 3432 1731 3433 1731 3433 1731 3433 1732 3433 1733 3433 1733 3433 1733 3433 1732 3433 1732 3433 1732 3432 1732 3432 1731 3432 1731 3432 1731 3431 1732 3431 1734 3432 1735 3432 1734 3431 1734 3431 1735 3431 1735 3431 1738 3432 1741 3433 1742 3432 1742 3431 1742 3431 1742 3431 1742 3431 1742 3431 1743 3430 1743 3430 1744 3430 1745 3430 1746 3430 1746 3430 1747 3430 1747 3431 1746 3431 1746 3432 1745 3433 1745 3434 1745 3434 1747 3435 1746 3434 1746 3434 1746 3433 1746 3433 1746 3432 1746 3432 1747 3432 1747 3432 1748 3431 1748 3431 1748 3432 1748 3432 1750 3433 1750 3433 1751 3433 1751 3433 1752 3433 1752 3433 1752 3434 1752 3434 1752 3434 1753 3434 1753 3434 1755 3434 1753 3433 1753 3433 1752 3433 1752 3433 1751 3432 1751 3432 1750 3432 1750 3432 1750 3432 1749 3431 1749 3430 1749 3430 1749 3430 1748 3430 1748 3430 1748 3430 1747 3429 1747 3429 1746 3429 1745 3429 1744 3429 1744 3429 1743 3429 1743 3429 1743 3429 1742 3427 1743 3427 1743 3427 1744 3428 1745 3428 1747 3429 1751 3430 1754 3431 1754 3432 1755 3432 1756 3431 1756 3431 1756 3431 1755 3431 1754 3431 1754 3430 1754 3430 1754 3430 1755 3429 1755 3429 1755 3429 1756 3429 1756 3429 1756 3429 1757 3429 1757 3430 1759 3432 1760 3434 1761 3434 1761 3434 1761 3433 1760 3431 1759 3430 1759 3430 1759 3430 1759 3430 1759 3430 1760 3430 1760 3430 1762 3430 1762 3430 1763 3431 1767 3431 1769 3432 1769 3432 1769 3432 1769 3432 1769 3433 1768 3434 1768 3434 1767 3434 1767 3434 1766 3435 1766 3435 1767 3436 1767 3436 1767 3435 1768 3435 1768 3434 1768 3434 1768 3434 1769 3433 1769 3433 1769 3433 1770 3434 1770 3434 1770 3434 1770 3434 1771 3434 1770 3433 1770 3433 1770 3433 1770 3433 1770 3432 1771 3432 1771 3432 1772 3432 1772 3432 1773 3433 1773 3433 1773 3432 1773 3432 1773 3432 1773 3432 1772 3431 1769 3430 1766 3430 1766 3430 1765 3429 1765 3429 1764 3429 1764 3429 1764 3429 1764 3429 1762 3428 1762 3428 1761 3428 1761 3428 1761 3428 1760 3428 1759 3428 1756 3427 1756 3426 1756 3426 1755 3424 1754 3422 1754 3422 1754 3422 1754 3421 1754 3421 1755 3421 1758 3419 1758 3419 1759 3419 1759 3420 1759 3420 1760 3419 1761 3419 1767 3417 1767 3417 1767 3417 1768 3417 1768 3416 1768 3416 1767 3415 1767 3415 1767 3414 1764 3414 1763 3414 1759 3415 1759 3415 1759 3415 1758 3415 1757 3415 1757 3415 1757 3415 1756 3416 1756 3416 1756 3416 1754 3417 1753 3417 1753 3417 1753 3417 1753 3416 1752 3416 1750 3415 1750 3415 1750 3415 1749 3414 1749 3414 1749 3413 1749 3412 1750 3410 1750 3409 1750 3409 1750 3409 1751 3408 1751 3408 1751 3408 1751 3409 1751 3409 1752 3410 1752 3410 1753 3409 1754 3409 1754 3409 1754 3409 1754 3409 1755 3409 1755 3409 1755 3409 1755 3408 1755 3408 1755 3408 1755 3407 1755 3407 1754 3407 1754 3407 1753 3406 1753 3406 1753 3406 1752 3406 1752 3405 1751 3405 1751 3405 1751 3405 1750 3406 1750 3406 1750 3405 1751 3405 1751 3405 1754 3405 1754 3405 1755 3405 1755 3405 1755 3405 1755 3405 1756 3405 1756 3406 1756 3406 1757 3406 1757 3406 1758 3406 1758 3406 1758 3406 1761 3405 1761 3405 1762 3405 1763 3403 1763 3403 1763 3403 1763 3402 1764 3401 1764 3401 1766 3401 1766 3400 1767 3401 1767 3401 1767 3401 1767 3402 1767 3402 1768 3402 1769 3403 1769 3403 1770 3404 1770 3404 1770 3404 1770 3404 1771 3404 1771 3404 1772 3404 1773 3403 1775 3403 1776 3403 1776 3402 1776 3402 1778 3403 1779 3403 1779 3403 1779 3405 1779 3406 1779 3411 1779 3413 1779 3414 1779 3414 1779 3417 1779 3422 1779 3425 1779 3430 1779 3431 1779 3434 1779 3438 1779 3438 1779 3439 1779 3439 1779 3439 1778 3439 1778 3439 1778 3439 1777 3439 1777 3439 1777 3438 1775 3438 1775 3438 1775 3439 1776 3439 1776 3439 1777 3439 1777 3439 1777 3440 1776 3440 1774 3440 1772 3440 1772 3440 1771 3440 1771 3440 1765 3439 1764 3439 1762 3438 1762 3438 1762 3438 1763 3437 1763 3437 1763 3436 1763 3436 1761 3437 1761 3438 1761 3438 1756 3439 1754 3439 1753 3439 M 1703 3413 1704 3413 1704 3413 1706 3414 1707 3414 1708 3415 1707 3415 1707 3415 1707 3415 1705 3415 1701 3414 1701 3414 1701 3414 1700 3413 1699 3413 1698 3412 1697 3412 1696 3411 1695 3410 1693 3410 1693 3410 1692 3411 1688 3411 1688 3411 1687 3410 1686 3409 1686 3409 1685 3409 1684 3408 1684 3408 1684 3408 1684 3407 1684 3407 1684 3406 1683 3406 1683 3406 1682 3406 1682 3406 1681 3405 1682 3405 1682 3405 1683 3405 1685 3406 1686 3407 1687 3408 1687 3408 1689 3408 1689 3408 1690 3408 1691 3408 1693 3408 1695 3409 1696 3410 1696 3410 1698 3410 1699 3410 1699 3410 1699 3410 1700 3411 1700 3411 1700 3411 1700 3412 1700 3412 1700 3412 1700 3413 1701 3413 1701 3413 1702 3413 1701 3412 1701 3412 1701 3411 1701 3411 1701 3411 1702 3411 1702 3411 1704 3413 1704 3413 1703 3413 M 1702 3408 1702 3408 1702 3408 1701 3408 1701 3408 1701 3408 1702 3408 1702 3408 1701 3407 1701 3407 1699 3407 1699 3407 1698 3407 1697 3407 1697 3407 1698 3407 1700 3407 1702 3407 1702 3407 1703 3408 1703 3408 1702 3408 M 1692 3413 1692 3413 1691 3414 1691 3414 1690 3414 1690 3414 1689 3414 1689 3414 1689 3414 1690 3413 1691 3413 1691 3413 1692 3413 1692 3413 1692 3413 1692 3413 M 1702 3415 1703 3415 1703 3416 1702 3417 1703 3417 1703 3418 1701 3418 1701 3418 1699 3417 1697 3416 1697 3416 1696 3416 1696 3416 1697 3416 1697 3416 1698 3416 1698 3417 1698 3417 1698 3417 1699 3417 1700 3416 1700 3416 1700 3416 1700 3416 1700 3416 1700 3415 1702 3415 1702 3415 1702 3415 M 1704 3422 1705 3422 1705 3420 1703 3420 1702 3421 1702 3421 1701 3421 1700 3421 1701 3421 1701 3421 1701 3420 1701 3420 1701 3420 1700 3420 1700 3420 1699 3419 1699 3419 1699 3418 1700 3418 1700 3418 1701 3418 1701 3418 1702 3418 1702 3418 1702 3418 1704 3418 1704 3419 1704 3419 1705 3419 1705 3420 1706 3420 1707 3420 1708 3420 1710 3420 1710 3419 1709 3419 1709 3419 1708 3420 1707 3419 1706 3419 1705 3419 1705 3419 1703 3417 1702 3417 1703 3416 1704 3417 1704 3417 1707 3417 1707 3416 1706 3416 1708 3415 1709 3416 1710 3416 1711 3418 1711 3418 1710 3419 1711 3420 1712 3418 1712 3418 1712 3417 1711 3416 1712 3417 1713 3417 1714 3419 1716 3418 1717 3418 1718 3418 1719 3419 1719 3420 1718 3420 1718 3420 1717 3420 1718 3421 1718 3421 1719 3420 1721 3421 1721 3421 1723 3422 1722 3422 1722 3422 1722 3423 1721 3423 1721 3423 1719 3423 1718 3423 1718 3424 1719 3425 1719 3425 1720 3425 1720 3426 1718 3426 1716 3427 1716 3427 1716 3427 1715 3426 1714 3426 1712 3427 1711 3427 1709 3427 1709 3426 1709 3426 1711 3426 1713 3425 1713 3423 1712 3422 1712 3422 1711 3423 1710 3423 1709 3423 1709 3423 1709 3422 1708 3422 1707 3424 1707 3424 1707 3425 1705 3425 1705 3424 1704 3423 1704 3422 1704 3422 M 1696 3418 1695 3418 1695 3418 1695 3416 1695 3416 1696 3416 1698 3417 1698 3417 1698 3418 1698 3418 1696 3418 1696 3418 1696 3418 1696 3418 M 1749 3429 1748 3429 1747 3428 1746 3428 1746 3428 1746 3428 1744 3427 1744 3427 1743 3426 1743 3424 1743 3424 1743 3423 1743 3423 1744 3423 1744 3422 1745 3422 1746 3423 1746 3423 1746 3423 1747 3423 1747 3423 1747 3423 1747 3423 1747 3422 1747 3422 1747 3422 1747 3422 1746 3422 1746 3422 1746 3421 1746 3420 1746 3420 1746 3420 1746 3420 1747 3420 1747 3420 1747 3420 1747 3419 1747 3419 1748 3419 1748 3419 1748 3418 1748 3418 1748 3418 1748 3418 1749 3418 1749 3418 1749 3419 1749 3419 1749 3420 1749 3420 1749 3420 1749 3420 1749 3421 1750 3423 1751 3424 1751 3425 1751 3425 1751 3426 1751 3426 1750 3426 1750 3426 1750 3426 1749 3426 1749 3425 1748 3425 1748 3425 1748 3425 1746 3424 1746 3424 1746 3424 1746 3425 1746 3425 1747 3425 1747 3425 1747 3425 1747 3425 1748 3426 1748 3427 1748 3427 1749 3428 1749 3429 M 1730 3424 1729 3425 1730 3425 1730 3425 1731 3426 1730 3427 1730 3427 1729 3428 1729 3428 1729 3428 1728 3427 1728 3427 1728 3427 1728 3427 1726 3426 1726 3426 1726 3426 1726 3425 1726 3425 1726 3425 1726 3425 1726 3426 1726 3426 1726 3427 1727 3427 1727 3427 1728 3428 1729 3429 1729 3429 1729 3429 1728 3430 1728 3430 1727 3430 1726 3430 1726 3430 1726 3429 1726 3429 1725 3428 1723 3428 1722 3427 1722 3426 1722 3426 1721 3426 1721 3424 1721 3424 1721 3424 1722 3424 1722 3424 1722 3424 1723 3424 1723 3424 1723 3424 1724 3424 1725 3423 1725 3423 1726 3423 1726 3423 1729 3423 1730 3424 1730 3424 1730 3424 M 1736 3425 1737 3426 1738 3426 1740 3426 1741 3426 1741 3427 1741 3428 1741 3429 1739 3431 1739 3431 1739 3431 1738 3431 1738 3431 1737 3430 1735 3430 1734 3428 1734 3428 1734 3428 1734 3428 1735 3428 1735 3428 1735 3427 1734 3427 1733 3428 1732 3429 1732 3429 1732 3429 1731 3429 1730 3429 1730 3428 1730 3428 1730 3428 1730 3428 1730 3427 1731 3427 1730 3425 1731 3425 1731 3424 1731 3424 1732 3424 1733 3424 1735 3424 1736 3425 1736 3425 1736 3425 M 1705 3427 1704 3427 1702 3426 1702 3426 1703 3425 1703 3425 1704 3425 1705 3426 1705 3426 1706 3426 1706 3426 1706 3427 1706 3427 1706 3427 1705 3427 M 1751 3427 1751 3427 1751 3427 1750 3427 1749 3427 1749 3426 1749 3426 1749 3426 1749 3426 1752 3426 1752 3426 1752 3426 1752 3426 1752 3427 1752 3427 1752 3427 1751 3427 M 1720 3426 1721 3427 1722 3427 1721 3428 1720 3429 1720 3429 1718 3429 1718 3429 1717 3429 1717 3429 1717 3428 1719 3426 1719 3426 1720 3426 1720 3426 1720 3426 1720 3426 M 1752 3429 1752 3429 1752 3429 1750 3429 1749 3429 1749 3428 1749 3428 1749 3428 1749 3428 1749 3427 1749 3427 1749 3427 1752 3428 1753 3428 1753 3429 1753 3429 1753 3429 1753 3429 1753 3429 1752 3429 M 1718 3432 1717 3432 1717 3431 1716 3431 1718 3430 1719 3430 1720 3430 1720 3431 1720 3431 1719 3431 1719 3431 1718 3432 M 1740 3440 1740 3440 1739 3440 1738 3439 1736 3440 1736 3440 1734 3440 1734 3439 1735 3438 1735 3438 1738 3439 1739 3439 1739 3439 1740 3439 1740 3439 1741 3439 1741 3439 1741 3439 1742 3439 1742 3440 1742 3440 1741 3440 1740 3440 M 1750 3438 1750 3438 1750 3439 1751 3439 1750 3439 1750 3439 1747 3439 1746 3439 1745 3439 1745 3439 1745 3439 1746 3439 1748 3438 1749 3438 1749 3438 1750 3438 M 1758 3442 1759 3441 1759 3441 1758 3441 1758 3441 1758 3440 1758 3439 1758 3439 1759 3439 1759 3439 1761 3439 1762 3439 1766 3439 1767 3440 1770 3440 1770 3440 1770 3440 1769 3440 1766 3441 1765 3441 1763 3441 1761 3442 1758 3442 M 1751 3439 1752 3439 1752 3439 1750 3440 1749 3440 1749 3440 1749 3440 1749 3441 1749 3441 1747 3441 1747 3441 1746 3441 1746 3441 1746 3441 1745 3441 1745 3441 1747 3441 1749 3442 1751 3441 1751 3441 1752 3441 1752 3442 1752 3442 1753 3443 1752 3443 1752 3443 1752 3443 1751 3443 1751 3443 1751 3442 1751 3442 1750 3442 1750 3443 1750 3443 1750 3443 1750 3443 1751 3443 1751 3443 1751 3443 1751 3444 1748 3444 1748 3444 1748 3444 1748 3444 1748 3444 1748 3443 1748 3443 1747 3442 1746 3443 1745 3443 1742 3442 1741 3442 1741 3440 1741 3440 1741 3440 1743 3440 1744 3440 1745 3440 1746 3440 1748 3441 1748 3440 1748 3440 1747 3440 1747 3440 1749 3440 1749 3439 1750 3439 1751 3439 M 1788 3445 1788 3445 1787 3445 1787 3445 1787 3445 1787 3444 1786 3444 1786 3443 1786 3442 1786 3441 1785 3441 1784 3441 1783 3441 1783 3440 1783 3440 1784 3440 1786 3440 1786 3440 1788 3439 1789 3439 1791 3440 1792 3440 1795 3440 1796 3440 1796 3440 1798 3440 1798 3440 1799 3440 1800 3440 1800 3440 1801 3440 1801 3440 1802 3440 1802 3441 1802 3441 1804 3442 1804 3443 1804 3443 1804 3444 1803 3444 1803 3444 1801 3446 1801 3446 1800 3446 1800 3446 1798 3446 1798 3446 1798 3445 1798 3445 1798 3445 1798 3445 1798 3445 1798 3445 1798 3444 1798 3444 1798 3444 1797 3444 1797 3444 1796 3444 1796 3444 1796 3444 1795 3444 1795 3444 1795 3444 1795 3444 1795 3445 1795 3445 1794 3445 1794 3445 1792 3445 1792 3445 1792 3445 1791 3445 1791 3445 1791 3445 1791 3444 1791 3444 1790 3444 1788 3445 1788 3445 M 1754 3441 1754 3441 1754 3441 1754 3441 1754 3441 1754 3441 1754 3440 1756 3440 1757 3440 1757 3440 1757 3440 1757 3440 1757 3440 1757 3441 1755 3441 1754 3441 M 1788 3448 1787 3449 1788 3450 1789 3450 1789 3450 1789 3452 1788 3452 1788 3452 1788 3452 1787 3452 1787 3452 1787 3452 1785 3451 1785 3450 1785 3450 1783 3449 1783 3449 1782 3449 1781 3449 1780 3448 1779 3448 1777 3448 1777 3449 1776 3449 1775 3449 1775 3449 1774 3448 1773 3448 1774 3447 1775 3447 1775 3447 1776 3447 1776 3447 1777 3446 1775 3447 1774 3446 1775 3446 1775 3445 1776 3444 1776 3444 1773 3445 1772 3445 1771 3445 1770 3445 1770 3445 1769 3444 1769 3443 1767 3443 1766 3443 1766 3444 1767 3444 1768 3444 1769 3445 1767 3445 1767 3446 1768 3447 1768 3448 1770 3448 1771 3448 1771 3449 1770 3449 1768 3449 1766 3449 1765 3448 1765 3447 1766 3447 1767 3447 1765 3446 1765 3446 1764 3447 1763 3446 1762 3446 1762 3445 1762 3445 1764 3444 1764 3444 1764 3444 1765 3444 1764 3444 1763 3444 1762 3445 1760 3445 1759 3445 1758 3445 1759 3444 1759 3444 1758 3444 1757 3444 1756 3444 1757 3443 1758 3442 1759 3442 1760 3442 1761 3442 1763 3442 1767 3441 1770 3441 1773 3441 1776 3441 1776 3441 1777 3440 1777 3440 1778 3440 1781 3440 1782 3440 1783 3441 1784 3442 1783 3442 1780 3443 1780 3443 1779 3443 1777 3443 1776 3443 1775 3443 1775 3442 1774 3442 1773 3441 1772 3441 1772 3442 1773 3443 1775 3443 1776 3444 1779 3444 1782 3444 1783 3444 1784 3445 1786 3445 1785 3446 1781 3446 1780 3446 1779 3446 1779 3446 1779 3446 1778 3445 1778 3445 1778 3445 1777 3445 1779 3447 1780 3446 1781 3446 1781 3446 1782 3446 1782 3446 1783 3447 1786 3447 1787 3448 1786 3448 1786 3448 1787 3449 1788 3448 M 1805 3441 1805 3441 1807 3441 1807 3442 1808 3443 1808 3443 1807 3443 1804 3441 1804 3441 1804 3441 1804 3441 1804 3441 1805 3441 1805 3441 M 1812 3446 1811 3445 1811 3445 1811 3445 1811 3445 1811 3444 1812 3444 1813 3444 1813 3444 1814 3444 1814 3444 1813 3445 1812 3446 1812 3446 M 1807 3445 1807 3445 1808 3446 1807 3446 1807 3446 1807 3446 1806 3446 1805 3446 1804 3446 1804 3446 1804 3445 1804 3445 1805 3445 1806 3445 1806 3445 1807 3445 1807 3445 1807 3445 M 1793 3451 1793 3451 1794 3449 1794 3449 1794 3449 1794 3449 1795 3449 1795 3449 1795 3449 1795 3449 1795 3450 1795 3450 1795 3451 1794 3451 1794 3451 1793 3451 M 1799 3454 1799 3453 1799 3453 1798 3453 1798 3453 1796 3453 1796 3452 1796 3452 1798 3450 1799 3450 1799 3450 1801 3452 1801 3453 1801 3453 1800 3453 1800 3454 1799 3454 M 1795 3455 1795 3455 1794 3455 1793 3455 1792 3455 1792 3455 1791 3455 1791 3455 1791 3454 1791 3454 1792 3454 1792 3454 1793 3454 1793 3454 1793 3454 1795 3454 1796 3454 1796 3454 1797 3454 1797 3454 1797 3455 1796 3455 1796 3455 1795 3455 1795 3455 M 1801 3455 1799 3455 1798 3454 1798 3454 1799 3454 1799 3454 1800 3454 1801 3454 1801 3455 1802 3455 1801 3455" />
+<path id="ky" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1575 2254 1575 2254 1576 2254 1576 2254 1576 2254 1576 2254 1577 2254 1577 2254 1577 2253 1579 2253 1579 2253 1580 2254 1580 2254 1580 2254 1580 2254 1577 2255 1575 2255 1575 2254 1575 2254 1575 2254" />
+<path id="cx" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4422 2757 4422 2757 4421 2757 4421 2757 4421 2756 4422 2757 4422 2757" />
+<path id="cm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3024 2500 3024 2500 3022 2499 3020 2498 3019 2498 3018 2497 3018 2496 3018 2496 3019 2495 3018 2495 3018 2494 3018 2494 3017 2493 3017 2491 3017 2491 3018 2490 3018 2490 3017 2489 3016 2488 3016 2489 3017 2489 3017 2490 3015 2490 3014 2489 3013 2488 3013 2488 3014 2489 3014 2490 3014 2490 3014 2490 3014 2491 3011 2491 3011 2490 3011 2490 3011 2489 3011 2488 3012 2486 3012 2486 3012 2486 3013 2485 3013 2485 3013 2485 3013 2484 3014 2483 3014 2482 3016 2480 3016 2480 3016 2478 3016 2477 3016 2477 3017 2475 3017 2474 3017 2474 3017 2473 3017 2473 3017 2472 3016 2471 3017 2469 3018 2468 3018 2468 3020 2466 3022 2464 3024 2462 3025 2461 3025 2461 3026 2461 3026 2461 3026 2460 3027 2460 3028 2459 3029 2458 3029 2458 3030 2458 3031 2456 3031 2454 3031 2454 3033 2454 3036 2451 3037 2450 3038 2451 3038 2451 3038 2452 3038 2452 3038 2452 3038 2453 3039 2453 3043 2453 3044 2450 3045 2450 3046 2451 3048 2451 3048 2451 3049 2452 3049 2453 3049 2453 3049 2454 3050 2454 3050 2454 3051 2454 3051 2455 3052 2455 3052 2456 3052 2456 3052 2457 3052 2458 3052 2459 3052 2459 3053 2460 3054 2460 3054 2460 3055 2460 3056 2460 3057 2459 3057 2459 3057 2458 3058 2457 3058 2457 3059 2457 3060 2456 3060 2455 3060 2455 3060 2454 3060 2454 3060 2453 3061 2452 3062 2451 3063 2451 3064 2449 3065 2449 3063 2447 3063 2446 3063 2446 3064 2445 3064 2444 3065 2444 3065 2444 3067 2441 3067 2441 3067 2440 3067 2440 3067 2439 3067 2439 3068 2439 3068 2438 3068 2438 3068 2437 3068 2437 3069 2437 3069 2436 3070 2435 3070 2434 3070 2433 3070 2433 3070 2433 3070 2432 3071 2432 3071 2432 3071 2431 3071 2431 3071 2430 3070 2430 3071 2429 3071 2428 3071 2428 3071 2428 3072 2428 3072 2428 3073 2428 3073 2427 3073 2426 3073 2426 3073 2425 3074 2425 3075 2425 3075 2425 3076 2425 3078 2424 3079 2422 3080 2422 3080 2421 3080 2418 3080 2418 3080 2418 3081 2413 3082 2411 3083 2411 3084 2411 3084 2411 3085 2411 3086 2410 3086 2410 3087 2409 3087 2407 3086 2405 3086 2404 3087 2402 3087 2402 3087 2401 3088 2401 3089 2401 3089 2401 3090 2400 3090 2400 3090 2399 3090 2399 3091 2395 3091 2393 3092 2393 3092 2392 3092 2392 3092 2391 3093 2391 3093 2390 3093 2390 3094 2389 3094 2389 3094 2389 3095 2388 3095 2387 3096 2386 3097 2384 3098 2383 3099 2382 3100 2383 3100 2383 3101 2383 3102 2383 3102 2383 3104 2381 3105 2381 3105 2380 3106 2380 3106 2380 3108 2379 3109 2378 3109 2376 3108 2376 3108 2375 3108 2374 3109 2373 3109 2371 3109 2370 3109 2369 3109 2368 3107 2367 3107 2366 3106 2365 3106 2365 3105 2365 3105 2365 3104 2365 3102 2365 3101 2364 3102 2364 3102 2363 3102 2363 3101 2361 3100 2356 3100 2354 3100 2354 3101 2354 3106 2354 3106 2354 3106 2354 3106 2355 3107 2355 3107 2355 3107 2357 3107 2359 3108 2359 3109 2359 3110 2359 3112 2361 3113 2365 3113 2366 3113 2367 3113 2368 3113 2368 3114 2369 3114 2369 3115 2370 3116 2375 3116 2376 3116 2377 3116 2379 3116 2380 3115 2380 3115 2384 3115 2385 3115 2386 3116 2388 3116 2389 3116 2389 3116 2390 3116 2390 3116 2391 3116 2392 3117 2392 3117 2393 3118 2395 3119 2397 3121 2399 3123 2401 3123 2402 3124 2402 3125 2402 3125 2403 3125 2403 3124 2403 3123 2404 3121 2404 3119 2403 3118 2403 3117 2403 3117 2403 3116 2403 3116 2403 3115 2404 3115 2404 3113 2403 3111 2404 3109 2403 3106 2403 3106 2403 3102 2403 3101 2404 3101 2405 3101 2405 3100 2406 3100 2406 3100 2406 3099 2407 3099 2407 3098 2408 3098 2409 3099 2409 3104 2415 3104 2415 3104 2416 3108 2419 3109 2419 3112 2422 3112 2422 3113 2422 3113 2422 3116 2424 3118 2427 3118 2428 3119 2429 3120 2432 3120 2432 3121 2433 3121 2433 3121 2434 3122 2436 3122 2437 3122 2438 3123 2438 3123 2438 3124 2439 3124 2439 3124 2440 3124 2441 3123 2441 3123 2442 3123 2442 3122 2444 3121 2445 3119 2446 3119 2446 3119 2447 3118 2447 3118 2448 3117 2450 3117 2451 3117 2451 3115 2454 3115 2455 3114 2455 3114 2456 3112 2460 3111 2460 3111 2461 3110 2462 3108 2464 3106 2465 3105 2465 3105 2466 3105 2467 3106 2468 3107 2468 3108 2468 3108 2468 3108 2468 3109 2469 3109 2471 3109 2474 3108 2475 3108 2476 3108 2477 3107 2477 3107 2478 3107 2478 3108 2479 3108 2479 3109 2479 3109 2479 3109 2480 3110 2481 3110 2482 3109 2482 3109 2482 3110 2483 3110 2485 3110 2486 3110 2487 3110 2488 3110 2489 3111 2490 3113 2491 3113 2491 3115 2492 3116 2494 3116 2494 3116 2495 3116 2496 3117 2497 3115 2498 3116 2499 3116 2500 3117 2501 3117 2501 3118 2503 3119 2504 3119 2504 3119 2504 3124 2509 3127 2512 3128 2513 3128 2513 3129 2513 3130 2513 3132 2515 3132 2516 3132 2517 3132 2517 3132 2518 3132 2518 3132 2522 3132 2523 3132 2524 3132 2524 3133 2525 3133 2526 3134 2527 3134 2527 3134 2527 3133 2528 3132 2527 3132 2528 3132 2530 3132 2531 3133 2533 3133 2534 3133 2535 3132 2536 3131 2536 3131 2535 3131 2535 3130 2534 3129 2533 3127 2532 3126 2532 3125 2532 3123 2531 3122 2531 3122 2531 3119 2531 3118 2530 3118 2530 3117 2530 3117 2530 3116 2531 3115 2531 3113 2530 3112 2529 3111 2529 3110 2529 3108 2528 3106 2528 3103 2528 3101 2528 3095 2528 3093 2528 3088 2528 3087 2528 3087 2528 3087 2527 3087 2526 3085 2526 3085 2526 3083 2526 3080 2527 3079 2527 3077 2527 3076 2526 3075 2526 3075 2526 3074 2526 3072 2525 3071 2526 3070 2526 3063 2526 3062 2526 3060 2526 3057 2526 3056 2527 3056 2528 3054 2528 3052 2528 3045 2528 3044 2528 3043 2528 3042 2528 3041 2528 3041 2528 3040 2528 3040 2528 3038 2528 3036 2528 3035 2528 3034 2528 3034 2527 3033 2527 3032 2526 3032 2526 3032 2525 3032 2525 3032 2524 3032 2523 3032 2523 3032 2522 3032 2522 3033 2517 3033 2515 3033 2515 3034 2514 3034 2514 3034 2514 3034 2513 3034 2513 3034 2512 3034 2512 3033 2511 3034 2510 3033 2510 3032 2509 3032 2508 3030 2507 3030 2506 3029 2506 3031 2505 3031 2505 3030 2505 3029 2505 3029 2505 3029 2504 3028 2502 3027 2502 3029 2501 3030 2501 3030 2501 3030 2500 3029 2499 3027 2498 3027 2498 3027 2497 3027 2497 3026 2497 3026 2497 3026 2498 3027 2498 3027 2499 3026 2500 3026 2500 3025 2500 3025 2500 3024 2500 3024 2500" />
+<path id="km" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3569 2753 3569 2753 3566 2752 3566 2752 3566 2751 3565 2750 3565 2750 3565 2750 3565 2750 3566 2749 3566 2749 3566 2749 3566 2747 3566 2746 3566 2745 3566 2745 3566 2745 3566 2744 3566 2744 3567 2744 3567 2744 3568 2744 3568 2744 3568 2745 3568 2745 3568 2745 3568 2747 3568 2748 3568 2748 3569 2750 3569 2750 3570 2752 3570 2753 3569 2753 3569 2753 M 3586 2760 3586 2760 3586 2760 3585 2759 3584 2758 3583 2758 3583 2758 3582 2757 3581 2757 3581 2757 3581 2757 3581 2757 3582 2757 3583 2757 3583 2757 3584 2757 3584 2757 3584 2757 3584 2757 3584 2756 3584 2756 3584 2756 3585 2755 3585 2755 3585 2755 3585 2755 3586 2756 3586 2758 3586 2760 3586 2760 3586 2760 3586 2760 M 3575 2760 3574 2760 3574 2760 3573 2760 3573 2760 3572 2760 3572 2760 3572 2759 3572 2759 3572 2759 3572 2758 3572 2758 3573 2758 3574 2759 3575 2759 3575 2760 3575 2760 3576 2760 3576 2760 3575 2760" />
+<path id="co" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1570 2363 1570 2363 1570 2362 1570 2362 1570 2362 1570 2361 1570 2361 1570 2362 1570 2363 1570 2363 1570 2363 M 1630 2521 1630 2520 1631 2521 1631 2521 1631 2522 1633 2521 1633 2521 1633 2520 1633 2518 1634 2517 1636 2514 1636 2514 1638 2510 1639 2510 1638 2510 1638 2509 1638 2509 1639 2508 1641 2506 1642 2505 1643 2504 1643 2503 1643 2502 1645 2500 1644 2500 1643 2500 1643 2501 1642 2501 1641 2501 1641 2501 1641 2501 1640 2500 1641 2499 1641 2499 1642 2499 1642 2498 1642 2497 1641 2497 1640 2498 1640 2498 1640 2499 1640 2499 1639 2500 1638 2499 1638 2498 1638 2496 1638 2496 1640 2495 1641 2495 1641 2495 1641 2494 1641 2494 1640 2494 1639 2493 1640 2492 1640 2491 1640 2491 1640 2490 1640 2488 1640 2487 1640 2486 1640 2485 1639 2485 1639 2484 1639 2481 1639 2480 1639 2479 1640 2479 1639 2478 1639 2475 1637 2475 1637 2474 1637 2473 1638 2473 1639 2473 1639 2473 1640 2473 1641 2471 1641 2471 1641 2470 1640 2467 1639 2465 1638 2465 1638 2464 1637 2464 1638 2462 1639 2463 1639 2462 1639 2460 1640 2458 1639 2456 1638 2455 1638 2455 1634 2453 1635 2451 1635 2451 1634 2450 1632 2448 1631 2447 1632 2443 1633 2443 1633 2443 1633 2443 1634 2442 1633 2442 1633 2441 1633 2441 1633 2440 1633 2440 1633 2439 1635 2440 1635 2441 1635 2442 1636 2442 1636 2442 1640 2439 1640 2439 1639 2438 1640 2437 1640 2436 1642 2436 1642 2435 1642 2433 1641 2432 1641 2432 1640 2431 1640 2430 1639 2430 1639 2429 1639 2429 1639 2428 1639 2428 1638 2427 1638 2427 1638 2426 1638 2426 1638 2426 1639 2424 1639 2424 1640 2424 1640 2425 1641 2426 1641 2427 1642 2428 1642 2428 1643 2428 1643 2428 1643 2429 1644 2430 1646 2431 1646 2432 1646 2432 1647 2433 1648 2433 1648 2433 1648 2433 1648 2434 1647 2434 1647 2434 1646 2434 1646 2435 1646 2436 1647 2436 1648 2436 1649 2436 1649 2436 1649 2434 1649 2433 1649 2432 1649 2429 1649 2428 1648 2427 1647 2426 1646 2426 1646 2426 1647 2425 1648 2425 1650 2424 1654 2421 1654 2420 1654 2420 1655 2420 1655 2420 1656 2420 1657 2419 1658 2416 1658 2415 1659 2414 1660 2413 1660 2413 1662 2412 1664 2412 1665 2412 1666 2412 1667 2412 1667 2412 1667 2411 1668 2410 1668 2410 1668 2409 1668 2409 1668 2409 1667 2408 1667 2408 1667 2407 1667 2406 1668 2403 1668 2403 1668 2402 1668 2402 1668 2401 1668 2401 1669 2400 1669 2399 1669 2396 1669 2395 1669 2394 1669 2393 1671 2392 1672 2391 1673 2391 1673 2391 1673 2391 1673 2391 1673 2391 1673 2391 1673 2390 1673 2390 1674 2390 1676 2388 1677 2388 1677 2387 1678 2386 1679 2385 1679 2385 1680 2385 1685 2387 1685 2387 1686 2387 1686 2387 1687 2387 1688 2387 1688 2387 1688 2387 1688 2387 1688 2387 1687 2387 1686 2387 1686 2387 1684 2389 1683 2390 1684 2390 1685 2390 1686 2391 1686 2391 1687 2391 1687 2391 1687 2390 1688 2389 1688 2387 1689 2387 1689 2385 1689 2384 1689 2383 1690 2383 1690 2382 1691 2382 1692 2381 1693 2381 1694 2381 1694 2382 1695 2382 1696 2383 1698 2383 1699 2382 1700 2382 1700 2382 1700 2382 1701 2382 1703 2382 1704 2382 1704 2382 1704 2382 1705 2382 1706 2381 1706 2381 1707 2380 1708 2379 1713 2376 1713 2376 1717 2374 1717 2374 1718 2374 1718 2374 1721 2373 1721 2373 1721 2372 1723 2369 1723 2369 1723 2368 1722 2367 1722 2367 1723 2367 1725 2367 1726 2367 1725 2367 1725 2368 1725 2368 1726 2368 1726 2368 1727 2367 1728 2366 1730 2365 1731 2364 1731 2364 1730 2364 1729 2364 1729 2364 1730 2363 1730 2363 1732 2364 1733 2364 1737 2365 1737 2366 1737 2366 1739 2369 1739 2370 1739 2370 1739 2371 1738 2371 1737 2372 1736 2372 1736 2373 1736 2373 1735 2374 1733 2374 1731 2375 1729 2375 1729 2376 1726 2376 1724 2379 1722 2383 1720 2384 1719 2384 1717 2385 1717 2385 1716 2386 1715 2388 1714 2390 1712 2393 1712 2394 1711 2396 1710 2396 1710 2397 1710 2401 1710 2401 1709 2403 1709 2404 1709 2406 1708 2409 1707 2410 1705 2412 1703 2415 1703 2416 1704 2416 1705 2416 1706 2416 1707 2415 1709 2414 1709 2415 1710 2416 1710 2416 1711 2417 1713 2417 1713 2420 1714 2424 1718 2428 1719 2429 1719 2429 1719 2429 1719 2429 1720 2432 1720 2433 1720 2434 1719 2434 1719 2434 1718 2436 1717 2440 1717 2443 1718 2444 1719 2444 1719 2444 1720 2444 1721 2444 1723 2445 1722 2446 1722 2447 1723 2448 1723 2448 1723 2448 1724 2449 1724 2450 1724 2450 1725 2450 1726 2451 1727 2451 1728 2451 1728 2451 1730 2450 1731 2450 1731 2450 1732 2450 1733 2450 1734 2450 1736 2450 1737 2451 1738 2451 1741 2451 1741 2451 1741 2451 1742 2450 1743 2449 1743 2449 1744 2449 1745 2449 1748 2450 1750 2451 1751 2451 1751 2451 1751 2451 1752 2452 1752 2452 1753 2452 1753 2451 1753 2451 1754 2451 1755 2451 1761 2459 1766 2465 1766 2465 1767 2464 1768 2464 1768 2465 1769 2465 1769 2465 1770 2465 1770 2464 1771 2464 1772 2463 1772 2463 1773 2463 1776 2464 1777 2464 1778 2464 1778 2464 1779 2465 1780 2464 1781 2464 1782 2464 1782 2464 1783 2464 1784 2464 1784 2464 1785 2463 1786 2463 1786 2463 1787 2463 1787 2463 1788 2463 1788 2463 1789 2463 1790 2463 1790 2463 1792 2462 1794 2462 1795 2462 1796 2462 1796 2463 1797 2463 1797 2464 1798 2464 1797 2464 1797 2465 1797 2465 1797 2466 1798 2466 1798 2467 1798 2467 1797 2467 1797 2468 1796 2468 1795 2469 1795 2470 1795 2471 1794 2472 1794 2472 1795 2473 1795 2473 1795 2474 1794 2475 1794 2475 1793 2476 1793 2476 1792 2477 1791 2478 1792 2481 1792 2481 1792 2482 1792 2483 1792 2485 1792 2486 1792 2487 1791 2490 1792 2493 1792 2494 1792 2494 1792 2495 1792 2496 1793 2497 1794 2498 1794 2499 1794 2500 1795 2502 1795 2502 1795 2503 1796 2503 1796 2503 1797 2503 1797 2503 1798 2504 1798 2505 1799 2506 1799 2507 1799 2507 1799 2507 1800 2507 1800 2508 1799 2510 1799 2510 1798 2511 1797 2512 1794 2514 1792 2517 1792 2517 1793 2517 1795 2518 1795 2518 1795 2518 1796 2520 1797 2520 1800 2523 1800 2524 1801 2524 1801 2524 1802 2524 1802 2525 1802 2526 1802 2526 1801 2526 1801 2527 1802 2527 1802 2528 1802 2528 1803 2530 1805 2535 1806 2539 1806 2542 1807 2543 1807 2543 1807 2543 1807 2543 1804 2544 1804 2544 1804 2543 1803 2542 1803 2542 1804 2540 1804 2540 1804 2540 1804 2538 1804 2537 1803 2535 1802 2533 1802 2533 1801 2532 1801 2531 1800 2530 1800 2530 1800 2529 1799 2529 1798 2528 1797 2529 1796 2529 1796 2530 1794 2531 1794 2532 1794 2532 1793 2533 1792 2534 1791 2534 1790 2535 1790 2535 1789 2535 1789 2534 1789 2534 1788 2534 1788 2533 1788 2533 1787 2532 1787 2531 1787 2531 1786 2531 1786 2531 1785 2532 1785 2532 1785 2533 1785 2534 1786 2534 1786 2534 1786 2535 1776 2535 1771 2535 1769 2535 1767 2535 1767 2535 1766 2534 1764 2534 1762 2535 1760 2535 1759 2535 1759 2535 1759 2545 1761 2545 1763 2545 1766 2546 1767 2546 1768 2545 1769 2546 1769 2547 1771 2549 1770 2550 1771 2552 1770 2553 1768 2553 1768 2552 1766 2551 1762 2552 1761 2552 1760 2553 1758 2553 1757 2553 1756 2553 1756 2554 1756 2557 1756 2558 1756 2560 1756 2563 1756 2564 1756 2565 1757 2566 1758 2567 1761 2570 1761 2570 1762 2570 1763 2570 1763 2571 1764 2573 1764 2573 1763 2574 1763 2574 1763 2575 1765 2577 1765 2578 1766 2578 1766 2579 1766 2579 1766 2581 1767 2582 1767 2584 1767 2585 1766 2587 1765 2593 1763 2599 1763 2601 1763 2602 1763 2603 1760 2617 1759 2625 1758 2630 1758 2630 1758 2630 1757 2629 1757 2629 1756 2629 1755 2628 1755 2627 1755 2627 1755 2626 1754 2626 1754 2625 1753 2624 1752 2623 1751 2623 1751 2623 1750 2623 1750 2623 1749 2624 1749 2624 1749 2624 1747 2624 1745 2623 1746 2622 1747 2620 1748 2619 1750 2616 1750 2615 1756 2607 1755 2606 1755 2606 1754 2605 1754 2604 1753 2604 1752 2602 1752 2602 1751 2602 1751 2603 1748 2602 1748 2602 1747 2601 1746 2600 1743 2598 1741 2599 1739 2599 1738 2600 1735 2600 1734 2599 1733 2598 1732 2598 1730 2598 1730 2598 1730 2597 1730 2597 1729 2597 1728 2598 1727 2600 1727 2600 1726 2600 1725 2600 1724 2601 1721 2602 1720 2602 1720 2602 1718 2601 1716 2601 1714 2601 1712 2602 1711 2603 1711 2602 1710 2601 1709 2601 1709 2601 1708 2600 1707 2600 1707 2600 1707 2598 1707 2598 1708 2598 1708 2597 1708 2593 1707 2592 1706 2591 1705 2592 1704 2592 1702 2592 1701 2591 1701 2590 1701 2589 1701 2589 1702 2588 1701 2587 1701 2586 1700 2586 1700 2585 1700 2584 1699 2583 1698 2583 1697 2583 1696 2583 1695 2582 1692 2580 1690 2579 1689 2579 1689 2578 1689 2577 1689 2577 1689 2576 1688 2575 1688 2575 1688 2574 1687 2573 1687 2572 1687 2572 1687 2571 1684 2569 1683 2569 1683 2569 1682 2568 1682 2568 1682 2567 1682 2567 1681 2567 1681 2566 1681 2566 1680 2566 1680 2566 1680 2566 1679 2566 1678 2566 1678 2565 1677 2564 1675 2563 1674 2563 1674 2564 1673 2564 1673 2564 1673 2564 1672 2564 1672 2564 1671 2564 1671 2564 1670 2563 1669 2563 1668 2562 1666 2562 1665 2562 1665 2562 1663 2560 1661 2558 1661 2557 1660 2557 1659 2557 1657 2556 1655 2556 1655 2558 1654 2559 1652 2559 1652 2559 1652 2559 1651 2558 1650 2558 1649 2558 1649 2559 1648 2559 1647 2559 1645 2558 1644 2557 1642 2557 1642 2557 1640 2557 1639 2556 1638 2556 1638 2554 1638 2553 1638 2553 1638 2552 1637 2552 1637 2552 1637 2552 1636 2552 1636 2552 1635 2551 1635 2551 1635 2551 1635 2550 1635 2550 1634 2549 1634 2549 1633 2549 1632 2550 1632 2550 1631 2549 1630 2549 1629 2548 1629 2548 1628 2548 1628 2548 1626 2547 1625 2546 1625 2546 1625 2546 1624 2546 1624 2546 1624 2545 1622 2544 1622 2544 1622 2543 1621 2543 1620 2543 1620 2543 1619 2542 1619 2542 1618 2542 1616 2540 1615 2538 1614 2537 1614 2537 1613 2537 1613 2537 1612 2536 1614 2535 1615 2533 1616 2533 1617 2533 1617 2534 1619 2534 1620 2534 1620 2532 1620 2532 1620 2530 1619 2530 1619 2530 1618 2528 1618 2527 1619 2526 1620 2524 1620 2524 1620 2524 1621 2524 1621 2524 1622 2523 1622 2523 1622 2522 1623 2523 1623 2523 1624 2524 1625 2522 1627 2523 1627 2523 1629 2522 1630 2522 1630 2521 M 1639 2493 1639 2494 1639 2494 1640 2495 1640 2495 1637 2495 1636 2495 1637 2495 1638 2493 1638 2493 1639 2493 1639 2493 M 1627 2523 1627 2523 1626 2521 1626 2521 1626 2521 1626 2521 1626 2520 1627 2520 1627 2520 1627 2520 1627 2521 1628 2521 1628 2522 1628 2522 1627 2523 1627 2523" />
+<path id="mp" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5203 2322 5203 2322 5202 2321 5202 2321 5202 2321 5202 2320 5203 2319 5204 2319 5204 2319 5204 2319 5203 2321 5203 2322 M 5201 2324 5201 2324 5200 2323 5200 2322 5201 2322 5201 2322 5201 2322 5202 2323 5202 2323 5202 2323 5201 2324 5201 2324" />
+<path id="cr" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1550 2418 1551 2418 1553 2419 1554 2420 1554 2420 1553 2421 1552 2421 1552 2421 1551 2422 1551 2423 1551 2423 1551 2423 1551 2424 1552 2425 1552 2426 1552 2427 1551 2428 1551 2428 1550 2428 1549 2429 1549 2430 1549 2430 1550 2430 1550 2430 1550 2431 1551 2433 1551 2434 1551 2434 1551 2434 1551 2433 1550 2432 1550 2431 1549 2431 1549 2430 1548 2430 1547 2429 1547 2429 1547 2429 1547 2428 1548 2428 1546 2425 1546 2425 1544 2424 1544 2423 1544 2423 1543 2423 1543 2423 1542 2423 1542 2425 1543 2425 1543 2426 1544 2426 1544 2426 1545 2426 1545 2427 1545 2428 1545 2429 1545 2429 1544 2429 1543 2428 1543 2428 1542 2428 1542 2428 1541 2428 1540 2427 1538 2425 1538 2425 1538 2425 1538 2424 1539 2424 1540 2421 1540 2421 1540 2419 1539 2418 1538 2417 1538 2417 1537 2416 1534 2414 1533 2413 1532 2413 1531 2413 1531 2413 1531 2412 1530 2411 1527 2411 1526 2410 1525 2410 1523 2409 1523 2409 1523 2408 1523 2408 1523 2407 1523 2407 1523 2407 1522 2404 1521 2403 1520 2403 1519 2403 1519 2402 1517 2401 1516 2400 1514 2399 1513 2400 1514 2401 1514 2401 1514 2402 1515 2402 1515 2402 1515 2403 1517 2404 1518 2404 1519 2406 1518 2407 1515 2409 1514 2407 1513 2406 1512 2405 1511 2405 1510 2405 1509 2405 1509 2405 1508 2405 1507 2405 1507 2404 1506 2403 1505 2402 1505 2402 1505 2401 1504 2400 1504 2399 1504 2397 1505 2396 1507 2393 1507 2393 1506 2390 1506 2390 1506 2390 1504 2389 1503 2389 1503 2388 1504 2388 1504 2388 1506 2388 1506 2388 1506 2387 1507 2386 1506 2386 1506 2386 1508 2383 1508 2383 1509 2384 1511 2385 1512 2385 1513 2385 1514 2386 1515 2386 1515 2386 1515 2386 1515 2386 1516 2387 1519 2388 1523 2386 1528 2388 1529 2388 1530 2390 1530 2390 1531 2390 1531 2391 1532 2391 1533 2390 1533 2391 1534 2391 1535 2391 1535 2391 1536 2391 1537 2390 1537 2390 1537 2390 1538 2390 1539 2390 1539 2390 1539 2389 1539 2388 1539 2388 1539 2388 1540 2389 1540 2389 1540 2390 1540 2391 1540 2392 1541 2394 1542 2395 1543 2396 1544 2398 1548 2403 1548 2403 1549 2404 1550 2404 1551 2405 1552 2407 1553 2408 1554 2409 1555 2409 1556 2409 1556 2410 1556 2410 1556 2411 1555 2411 1554 2411 1554 2410 1553 2409 1552 2409 1552 2409 1551 2409 1550 2411 1550 2416 1550 2418" />
+<path id="cf" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3202 2490 3202 2489 3200 2486 3197 2485 3194 2483 3194 2483 3194 2483 3193 2483 3193 2483 3193 2482 3192 2482 3192 2481 3191 2481 3191 2481 3190 2480 3189 2480 3187 2480 3185 2481 3182 2483 3182 2483 3181 2484 3180 2484 3180 2484 3179 2484 3179 2486 3178 2487 3178 2487 3176 2489 3176 2490 3175 2491 3175 2491 3175 2492 3175 2492 3174 2493 3174 2493 3173 2493 3172 2493 3172 2493 3171 2493 3171 2494 3171 2494 3172 2494 3172 2495 3173 2496 3173 2498 3173 2498 3173 2499 3173 2499 3172 2501 3172 2502 3172 2503 3172 2503 3172 2504 3172 2506 3172 2507 3172 2507 3172 2507 3172 2506 3171 2505 3170 2504 3170 2505 3167 2506 3167 2506 3166 2507 3166 2507 3166 2507 3165 2507 3165 2506 3165 2506 3164 2506 3164 2506 3163 2506 3161 2506 3160 2506 3160 2505 3160 2505 3159 2505 3157 2505 3157 2505 3156 2505 3156 2504 3155 2504 3154 2503 3154 2503 3153 2504 3152 2505 3148 2506 3146 2506 3145 2506 3142 2506 3141 2506 3141 2506 3140 2507 3140 2507 3140 2508 3139 2509 3139 2511 3139 2511 3138 2512 3138 2512 3138 2515 3138 2516 3138 2516 3139 2517 3138 2518 3138 2519 3137 2520 3135 2524 3135 2525 3134 2527 3134 2527 3133 2526 3133 2525 3132 2524 3132 2524 3132 2523 3132 2522 3132 2518 3132 2518 3132 2517 3132 2517 3132 2516 3132 2515 3130 2513 3129 2513 3128 2513 3128 2513 3127 2512 3124 2509 3119 2504 3119 2504 3119 2504 3118 2503 3117 2501 3117 2501 3116 2500 3116 2499 3115 2498 3117 2497 3116 2496 3116 2495 3116 2494 3116 2494 3115 2492 3113 2491 3113 2491 3111 2490 3110 2489 3110 2488 3110 2487 3110 2486 3110 2485 3110 2483 3109 2482 3109 2482 3110 2482 3110 2481 3109 2480 3109 2479 3109 2479 3108 2479 3108 2479 3107 2478 3107 2478 3107 2477 3108 2477 3108 2476 3108 2475 3109 2474 3109 2471 3109 2469 3108 2468 3108 2468 3108 2468 3107 2468 3106 2468 3105 2467 3105 2466 3105 2465 3106 2465 3108 2464 3110 2462 3111 2461 3111 2460 3112 2460 3114 2456 3114 2455 3115 2455 3115 2454 3117 2451 3117 2451 3117 2450 3118 2448 3118 2447 3119 2447 3119 2446 3119 2446 3121 2445 3122 2444 3123 2442 3123 2442 3123 2442 3124 2443 3124 2442 3125 2442 3126 2442 3126 2443 3126 2443 3127 2443 3129 2443 3130 2443 3131 2442 3131 2442 3132 2441 3132 2441 3133 2441 3134 2441 3137 2440 3137 2439 3137 2438 3137 2438 3139 2437 3139 2437 3140 2437 3140 2437 3140 2438 3143 2442 3144 2442 3144 2442 3144 2442 3144 2441 3144 2441 3145 2440 3146 2440 3147 2440 3149 2440 3150 2439 3150 2438 3151 2438 3152 2437 3154 2436 3155 2436 3156 2436 3157 2435 3157 2435 3158 2435 3161 2435 3163 2435 3166 2434 3169 2434 3171 2434 3172 2434 3172 2434 3173 2433 3173 2433 3173 2432 3173 2432 3173 2431 3174 2431 3175 2431 3175 2431 3176 2430 3177 2429 3177 2428 3177 2428 3178 2427 3179 2425 3180 2424 3180 2424 3180 2424 3179 2423 3178 2422 3177 2422 3176 2421 3176 2421 3177 2420 3177 2420 3178 2419 3179 2419 3180 2419 3180 2419 3182 2418 3185 2418 3188 2418 3192 2418 3193 2418 3193 2418 3194 2417 3195 2417 3197 2417 3199 2417 3200 2417 3200 2417 3201 2417 3202 2416 3202 2415 3202 2415 3202 2414 3207 2412 3207 2412 3208 2412 3208 2411 3208 2411 3209 2410 3210 2409 3211 2407 3214 2404 3215 2403 3215 2403 3216 2403 3216 2403 3217 2403 3217 2402 3218 2401 3218 2401 3218 2400 3218 2400 3219 2400 3219 2399 3220 2399 3220 2399 3221 2399 3221 2399 3222 2398 3222 2396 3222 2396 3222 2395 3222 2395 3222 2394 3222 2394 3222 2393 3223 2392 3224 2392 3225 2392 3226 2391 3226 2390 3230 2388 3232 2388 3232 2388 3233 2387 3233 2387 3234 2387 3237 2387 3240 2388 3240 2388 3240 2388 3241 2389 3241 2390 3243 2392 3243 2392 3247 2396 3248 2396 3251 2401 3253 2405 3253 2408 3253 2409 3253 2409 3252 2410 3253 2412 3253 2412 3253 2414 3251 2416 3251 2416 3250 2416 3250 2416 3250 2417 3250 2418 3250 2419 3250 2419 3251 2419 3251 2419 3251 2419 3252 2419 3252 2420 3251 2421 3251 2421 3250 2422 3250 2422 3251 2423 3251 2423 3254 2423 3255 2423 3255 2423 3256 2423 3257 2423 3259 2423 3259 2424 3260 2424 3261 2424 3261 2424 3262 2424 3263 2425 3262 2426 3262 2426 3261 2427 3261 2429 3261 2429 3261 2429 3261 2430 3262 2430 3262 2430 3262 2430 3264 2431 3266 2431 3268 2431 3269 2431 3270 2431 3271 2432 3272 2432 3272 2432 3273 2433 3273 2434 3273 2434 3274 2435 3275 2435 3275 2436 3276 2436 3276 2436 3277 2436 3277 2436 3278 2437 3278 2437 3279 2438 3279 2440 3279 2440 3279 2441 3278 2441 3277 2441 3277 2441 3278 2442 3278 2443 3279 2443 3280 2444 3280 2444 3280 2445 3280 2445 3282 2446 3284 2447 3286 2448 3288 2449 3290 2450 3291 2451 3291 2452 3291 2452 3292 2453 3292 2453 3295 2455 3295 2455 3296 2456 3297 2456 3297 2457 3296 2457 3295 2459 3295 2459 3295 2460 3296 2461 3298 2462 3299 2463 3299 2464 3299 2464 3298 2464 3298 2465 3297 2465 3297 2465 3299 2466 3300 2466 3301 2467 3301 2466 3302 2467 3303 2467 3303 2467 3304 2468 3304 2468 3305 2469 3306 2469 3308 2470 3309 2470 3309 2471 3310 2472 3311 2473 3311 2474 3310 2475 3310 2476 3310 2477 3311 2478 3311 2479 3311 2479 3312 2480 3313 2480 3314 2481 3314 2482 3314 2482 3313 2482 3313 2481 3311 2481 3309 2480 3308 2479 3307 2479 3307 2480 3306 2480 3305 2480 3305 2481 3304 2482 3304 2482 3303 2482 3302 2481 3302 2481 3301 2481 3300 2482 3299 2482 3298 2482 3298 2482 3297 2481 3297 2481 3293 2479 3292 2479 3292 2479 3292 2479 3291 2479 3291 2480 3289 2480 3289 2480 3287 2479 3286 2478 3284 2478 3284 2477 3283 2477 3280 2478 3280 2478 3279 2480 3279 2480 3280 2480 3280 2480 3280 2481 3279 2482 3279 2482 3278 2483 3277 2483 3276 2483 3274 2483 3274 2483 3274 2483 3271 2484 3271 2484 3270 2484 3269 2483 3268 2482 3267 2481 3266 2481 3266 2481 3265 2481 3264 2482 3265 2482 3264 2482 3262 2483 3261 2484 3259 2484 3257 2485 3256 2486 3252 2487 3249 2488 3249 2489 3249 2489 3248 2489 3248 2489 3246 2488 3244 2487 3243 2487 3242 2486 3242 2485 3241 2486 3239 2487 3238 2488 3238 2489 3237 2491 3237 2491 3236 2491 3236 2491 3236 2491 3236 2492 3235 2493 3235 2495 3234 2496 3234 2496 3233 2496 3233 2497 3232 2497 3231 2497 3230 2496 3230 2496 3229 2496 3229 2496 3228 2495 3228 2495 3227 2495 3226 2495 3224 2494 3222 2494 3221 2494 3220 2494 3220 2494 3220 2495 3219 2495 3219 2495 3214 2494 3213 2494 3212 2493 3212 2492 3211 2492 3210 2492 3208 2491 3208 2491 3206 2492 3204 2492 3204 2492 3202 2491 3202 2490 3202 2490" />
+<path id="cu" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1646 2220 1647 2220 1647 2221 1647 2222 1647 2222 1647 2222 1648 2222 1648 2221 1651 2221 1652 2223 1652 2223 1652 2223 1652 2223 1652 2223 1652 2223 1651 2223 1651 2224 1653 2224 1653 2224 1654 2224 1654 2223 1653 2223 1653 2223 1653 2223 1653 2223 1653 2223 1655 2223 1656 2223 1656 2223 1657 2224 1657 2224 1658 2224 1658 2224 1659 2224 1659 2225 1660 2225 1661 2226 1662 2226 1663 2225 1664 2225 1665 2225 1666 2225 1667 2226 1667 2226 1668 2227 1668 2227 1667 2230 1665 2230 1665 2230 1665 2231 1665 2231 1665 2232 1665 2232 1666 2232 1668 2232 1670 2232 1670 2232 1670 2232 1670 2232 1670 2231 1670 2231 1670 2231 1671 2231 1673 2232 1677 2232 1678 2232 1681 2234 1682 2234 1682 2234 1683 2235 1683 2235 1684 2236 1684 2236 1684 2236 1684 2237 1685 2237 1687 2238 1688 2238 1688 2238 1689 2238 1689 2238 1691 2239 1691 2240 1691 2240 1691 2240 1691 2240 1691 2240 1689 2242 1689 2242 1689 2242 1689 2242 1688 2242 1688 2242 1688 2242 1687 2242 1687 2242 1685 2242 1683 2242 1682 2242 1682 2242 1682 2242 1681 2242 1680 2242 1680 2243 1680 2243 1678 2244 1678 2244 1678 2244 1677 2244 1677 2245 1677 2245 1676 2245 1676 2244 1676 2244 1675 2244 1675 2243 1676 2243 1676 2243 1676 2242 1674 2243 1674 2243 1674 2243 1675 2244 1675 2244 1675 2244 1674 2244 1673 2244 1674 2245 1672 2245 1671 2245 1671 2245 1671 2245 1669 2245 1668 2245 1668 2245 1667 2245 1667 2244 1666 2244 1666 2244 1666 2244 1666 2244 1663 2244 1662 2244 1659 2243 1659 2243 1658 2243 1657 2243 1654 2244 1654 2244 1654 2244 1653 2244 1653 2244 1652 2244 1651 2244 1648 2244 1647 2245 1646 2245 1645 2245 1645 2245 1645 2245 1644 2245 1643 2245 1642 2245 1640 2245 1640 2245 1640 2245 1640 2245 1640 2245 1640 2245 1635 2246 1634 2246 1634 2246 1633 2245 1633 2245 1634 2244 1636 2242 1639 2240 1639 2240 1639 2240 1640 2240 1640 2239 1640 2239 1641 2239 1642 2238 1642 2238 1643 2237 1644 2236 1644 2236 1642 2233 1641 2232 1640 2232 1640 2232 1640 2232 1639 2232 1639 2232 1638 2232 1637 2232 1634 2232 1633 2232 1633 2232 1633 2232 1632 2232 1631 2231 1631 2231 1631 2231 1631 2232 1630 2232 1630 2232 1628 2232 1628 2232 1627 2230 1626 2230 1625 2229 1624 2228 1621 2227 1621 2224 1621 2222 1620 2221 1620 2220 1620 2219 1619 2219 1619 2219 1619 2219 1618 2217 1617 2217 1617 2217 1616 2217 1615 2217 1615 2218 1615 2218 1614 2218 1613 2218 1611 2218 1611 2218 1610 2218 1610 2218 1610 2218 1609 2218 1609 2218 1609 2218 1606 2218 1606 2217 1603 2216 1603 2216 1601 2216 1599 2215 1597 2216 1596 2214 1596 2214 1594 2214 1594 2214 1594 2214 1593 2213 1593 2213 1593 2213 1591 2212 1591 2211 1591 2211 1590 2210 1590 2210 1591 2210 1591 2210 1591 2209 1590 2208 1589 2208 1589 2208 1589 2209 1588 2210 1588 2210 1587 2210 1585 2210 1584 2210 1584 2210 1584 2210 1583 2210 1583 2210 1583 2210 1581 2210 1581 2210 1580 2210 1580 2210 1579 2210 1579 2209 1579 2209 1579 2209 1578 2209 1578 2210 1576 2210 1576 2210 1575 2209 1575 2209 1575 2209 1575 2208 1575 2208 1575 2208 1571 2208 1571 2208 1571 2208 1569 2208 1568 2208 1568 2208 1565 2206 1564 2206 1563 2205 1563 2205 1563 2205 1563 2205 1563 2205 1563 2204 1563 2204 1564 2204 1564 2204 1566 2204 1568 2204 1569 2204 1570 2204 1571 2203 1571 2202 1571 2202 1569 2201 1569 2201 1569 2201 1568 2201 1568 2200 1567 2200 1566 2200 1562 2200 1559 2200 1555 2200 1555 2200 1554 2200 1554 2200 1553 2200 1553 2200 1553 2200 1553 2200 1553 2201 1553 2201 1552 2201 1552 2202 1552 2202 1549 2203 1549 2203 1548 2203 1548 2204 1548 2204 1547 2205 1547 2205 1547 2206 1546 2206 1546 2206 1545 2206 1544 2207 1543 2208 1543 2208 1542 2208 1541 2208 1541 2208 1540 2208 1539 2208 1537 2208 1536 2208 1536 2208 1535 2208 1535 2208 1534 2209 1534 2209 1534 2209 1534 2209 1533 2210 1533 2211 1533 2212 1533 2212 1533 2212 1533 2212 1532 2212 1532 2212 1532 2212 1531 2212 1530 2213 1529 2213 1529 2213 1529 2213 1528 2213 1528 2213 1527 2214 1527 2214 1526 2215 1526 2215 1526 2215 1525 2215 1525 2215 1525 2215 1525 2214 1526 2213 1526 2213 1526 2213 1526 2212 1526 2212 1525 2212 1524 2212 1524 2212 1524 2212 1523 2212 1522 2213 1522 2213 1521 2213 1521 2213 1521 2214 1520 2214 1520 2214 1520 2214 1519 2214 1519 2214 1518 2214 1518 2214 1518 2213 1518 2213 1518 2213 1518 2213 1519 2212 1519 2213 1519 2213 1520 2213 1525 2211 1525 2211 1525 2210 1525 2210 1527 2210 1528 2211 1528 2211 1528 2211 1528 2210 1527 2209 1526 2208 1527 2206 1527 2205 1529 2204 1530 2202 1532 2201 1533 2200 1536 2199 1538 2198 1542 2197 1546 2195 1546 2195 1548 2195 1549 2195 1549 2195 1550 2196 1550 2195 1550 2195 1551 2195 1551 2195 1552 2195 1552 2195 1553 2195 1553 2195 1554 2195 1554 2195 1556 2194 1556 2194 1557 2194 1557 2194 1557 2194 1557 2194 1559 2193 1560 2192 1561 2192 1562 2192 1562 2192 1562 2192 1563 2192 1564 2192 1564 2192 1565 2192 1565 2192 1565 2192 1565 2192 1566 2192 1566 2193 1566 2193 1568 2193 1569 2193 1569 2193 1570 2193 1570 2193 1571 2193 1571 2193 1572 2193 1572 2193 1572 2193 1573 2193 1573 2193 1573 2194 1573 2194 1573 2194 1575 2193 1576 2193 1578 2193 1577 2193 1577 2193 1577 2193 1578 2195 1579 2195 1579 2195 1580 2194 1582 2194 1585 2194 1587 2194 1587 2194 1588 2194 1588 2194 1589 2195 1590 2196 1591 2196 1591 2196 1593 2197 1593 2197 1594 2197 1595 2196 1597 2196 1597 2196 1597 2196 1597 2197 1597 2197 1598 2197 1598 2197 1600 2198 1602 2199 1602 2199 1603 2200 1604 2201 1604 2202 1605 2202 1605 2202 1605 2203 1605 2203 1606 2204 1607 2204 1608 2204 1608 2205 1609 2205 1611 2205 1612 2205 1612 2205 1612 2205 1613 2205 1613 2205 1613 2205 1614 2205 1614 2205 1614 2205 1615 2205 1617 2205 1620 2206 1623 2207 1624 2208 1624 2208 1624 2208 1627 2210 1627 2210 1628 2210 1628 2210 1628 2210 1629 2211 1630 2212 1631 2213 1631 2213 1633 2214 1633 2214 1635 2215 1636 2215 1637 2215 1638 2215 1638 2215 1638 2215 1638 2215 1638 2215 1638 2215 1638 2216 1638 2216 1638 2217 1639 2217 1639 2217 1640 2217 1640 2217 1640 2216 1639 2215 1638 2214 1638 2214 1637 2214 1637 2214 1637 2214 1636 2214 1635 2213 1636 2213 1636 2212 1636 2212 1636 2212 1637 2213 1637 2213 1637 2213 1637 2213 1637 2213 1637 2214 1637 2214 1638 2214 1641 2216 1642 2217 1643 2217 1643 2217 1643 2217 1643 2218 1643 2218 1642 2218 1642 2218 1642 2218 1642 2218 1641 2217 1641 2217 1640 2217 1639 2217 1641 2219 1641 2220 1642 2220 1643 2219 1643 2219 1643 2218 1644 2218 1644 2218 1644 2218 1644 2218 1645 2219 1646 2219 1646 2220 M 1608 2201 1607 2201 1606 2200 1605 2200 1603 2199 1603 2198 1604 2198 1604 2198 1604 2198 1605 2199 1605 2199 1605 2199 1605 2199 1606 2200 1607 2200 1608 2201 1608 2201 1608 2201 M 1622 2205 1623 2204 1623 2204 1622 2204 1622 2204 1622 2204 1621 2204 1621 2204 1619 2203 1618 2203 1618 2203 1618 2203 1618 2202 1619 2202 1620 2202 1620 2203 1620 2203 1620 2203 1621 2203 1622 2203 1622 2203 1622 2202 1623 2202 1623 2202 1624 2202 1624 2203 1625 2204 1624 2204 1623 2204 1622 2205 M 1629 2207 1628 2207 1627 2206 1626 2206 1626 2206 1626 2205 1626 2205 1625 2205 1625 2205 1625 2205 1624 2205 1625 2204 1626 2204 1627 2204 1627 2205 1628 2205 1628 2205 1628 2205 1629 2207 1629 2207 M 1631 2210 1631 2210 1630 2209 1629 2209 1628 2208 1629 2207 1631 2208 1632 2209 1632 2209 1631 2210 M 1634 2213 1633 2212 1632 2212 1631 2211 1630 2210 1630 2210 1630 2210 1630 2210 1630 2209 1631 2210 1631 2210 1631 2210 1632 2210 1632 2209 1633 2210 1635 2210 1635 2210 1635 2211 1635 2212 1634 2212 1634 2212 1634 2213 M 1551 2220 1550 2220 1549 2220 1548 2220 1547 2219 1547 2218 1546 2217 1547 2218 1548 2218 1548 2218 1548 2218 1548 2218 1549 2218 1550 2218 1550 2218 1550 2218 1550 2218 1550 2217 1549 2216 1548 2215 1548 2215 1548 2214 1548 2214 1548 2214 1550 2212 1551 2212 1552 2212 1554 2213 1554 2214 1555 2214 1555 2215 1556 2215 1556 2215 1556 2215 1557 2218 1557 2218 1556 2218 1555 2219 1554 2219 1554 2219 1553 2220 1551 2220 1551 2220" />
+<path id="cv" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2471 2292 2471 2292 2471 2292 2470 2290 2470 2290 2470 2290 2470 2289 2472 2288 2474 2288 2474 2288 2475 2288 2476 2289 2476 2290 2476 2290 2475 2291 2474 2291 2474 2291 2473 2292 2473 2292 2473 2292 2473 2292 2472 2292 2471 2292 M 2476 2294 2475 2294 2474 2294 2474 2293 2475 2293 2476 2292 2477 2292 2477 2292 2478 2293 2478 2294 2478 2294 2477 2294 2477 2294 2476 2294 M 2509 2298 2509 2297 2509 2297 2508 2296 2508 2295 2508 2294 2508 2294 2508 2294 2509 2293 2509 2294 2510 2296 2509 2297 2509 2298 M 2487 2299 2485 2297 2485 2297 2485 2297 2485 2296 2486 2296 2486 2296 2488 2297 2490 2297 2490 2297 2491 2297 2491 2298 2491 2298 2491 2298 2490 2298 2490 2298 2490 2298 2489 2298 2489 2298 2488 2297 2488 2297 2487 2298 2487 2298 2487 2298 2487 2299 2487 2299 2487 2299 2487 2299 M 2511 2307 2510 2307 2508 2307 2508 2306 2508 2305 2509 2304 2510 2304 2511 2303 2511 2303 2512 2304 2512 2304 2513 2305 2513 2305 2513 2306 2512 2306 2511 2307 M 2505 2321 2505 2321 2504 2321 2504 2321 2504 2320 2504 2319 2504 2318 2505 2318 2506 2318 2506 2319 2506 2320 2506 2320 2506 2321 2505 2321 M 2499 2325 2498 2324 2497 2324 2497 2324 2497 2324 2496 2323 2495 2322 2495 2322 2495 2322 2495 2319 2497 2318 2497 2319 2498 2320 2498 2320 2499 2321 2500 2322 2501 2323 2500 2323 2499 2325 M 2485 2326 2485 2326 2485 2326 2485 2326 2484 2325 2484 2325 2484 2325 2483 2324 2483 2324 2484 2323 2484 2323 2485 2323 2486 2322 2486 2322 2487 2323 2487 2323 2487 2324 2487 2325 2487 2325 2487 2325 2487 2325 2486 2326 2486 2326 2485 2326" />
+<path id="ck" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 226 2736 226 2736 226 2736 226 2736 M 269 2851 269 2851 269 2851 269 2851 269 2851 269 2851 M 356 2880 356 2880 356 2879 356 2879 356 2878 356 2879 356 2880 356 2880 M 350 2882 349 2882 349 2882 349 2882 350 2881 350 2882 350 2882 350 2882 350 2882 350 2882 350 2882 M 323 2902 323 2902 322 2902 322 2902 322 2901 322 2901 323 2901 323 2901 324 2902 324 2902 323 2902 M 353 2913 352 2913 352 2913 352 2912 352 2912 352 2912 353 2912 353 2913 353 2913 353 2913" />
+<path id="cy" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3406 2008 3406 2008 3405 2008 3404 2008 3404 2008 3404 2008 3403 2009 3403 2009 3400 2009 3399 2009 3398 2009 3398 2009 3398 2009 3398 2009 3397 2009 3397 2009 3396 2009 3394 2008 3394 2008 3393 2007 3392 2006 3391 2005 3391 2003 3390 2002 3390 2002 3391 2002 3391 2002 3391 2002 3391 2002 3391 2002 3392 2003 3392 2003 3392 2003 3392 2003 3393 2003 3393 2003 3393 2002 3394 2002 3394 2002 3394 2001 3394 2001 3395 2001 3395 2001 3396 2001 3397 2000 3398 2001 3398 2001 3399 2001 3399 2001 3399 2001 3400 2001 3400 2001 3400 2001 3401 2001 3401 2000 3401 2000 3401 1999 3401 1998 3402 1998 3406 1998 3408 1998 3408 1998 3408 1998 3409 1998 3410 1998 3412 1998 3413 1998 3413 1997 3414 1997 3414 1997 3415 1997 3416 1997 3416 1997 3418 1997 3423 1994 3423 1994 3423 1994 3424 1994 3424 1994 3424 1994 3424 1994 3427 1993 3427 1992 3427 1993 3424 1995 3423 1996 3422 1996 3422 1996 3420 1997 3417 1998 3417 1999 3417 1999 3417 1999 3417 1999 3417 2000 3416 2000 3416 2000 3416 2001 3418 2002 3419 2003 3419 2003 3419 2003 3419 2004 3419 2004 3419 2004 3419 2004 3418 2004 3418 2004 3417 2004 3417 2004 3417 2004 3417 2004 3416 2004 3416 2004 3416 2004 3416 2004 3416 2004 3415 2004 3415 2004 3415 2004 3414 2004 3413 2004 3413 2004 3413 2004 3412 2004 3412 2005 3412 2005 3412 2005 3412 2006 3412 2006 3410 2007 3408 2008 3407 2008 3406 2008" />
+<path id="dk" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3009 1657 3010 1657 3011 1657 3011 1657 3011 1657 3012 1657 3012 1658 3012 1658 3011 1659 3010 1658 3010 1658 3009 1657 3009 1657 3007 1657 3007 1656 3007 1656 3007 1655 3007 1655 3007 1654 3008 1654 3009 1653 3010 1652 3012 1651 3013 1650 3013 1650 3014 1650 3015 1650 3015 1650 3016 1650 3016 1650 3017 1650 3019 1650 3020 1650 3021 1650 3022 1650 3023 1650 3023 1650 3025 1650 3026 1649 3027 1649 3027 1649 3028 1648 3029 1647 3030 1646 3030 1646 3031 1645 3031 1645 3034 1643 3035 1643 3035 1643 3036 1643 3037 1643 3037 1643 3038 1643 3038 1642 3039 1642 3039 1642 3041 1641 3042 1641 3043 1640 3043 1640 3044 1640 3044 1640 3045 1640 3045 1640 3045 1640 3044 1641 3043 1641 3043 1641 3042 1642 3042 1642 3042 1642 3042 1643 3042 1643 3042 1644 3043 1645 3043 1649 3042 1649 3041 1650 3040 1652 3039 1652 3038 1652 3038 1652 3037 1652 3037 1651 3035 1651 3035 1651 3027 1651 3023 1652 3023 1652 3023 1652 3022 1652 3022 1652 3022 1652 3021 1652 3021 1651 3021 1651 3021 1651 3019 1652 3017 1652 3016 1653 3015 1653 3014 1653 3014 1653 3013 1654 3013 1654 3012 1655 3011 1655 3011 1655 3011 1656 3010 1657 3009 1657 M 3050 1649 3050 1648 3050 1648 3050 1648 3049 1648 3049 1648 3049 1648 3049 1648 3049 1648 3048 1648 3049 1647 3051 1647 3053 1647 3054 1647 3054 1647 3052 1648 3052 1648 3051 1648 3051 1649 3050 1649 M 3006 1672 3006 1672 3005 1670 3005 1670 3005 1669 3005 1669 3005 1668 3005 1668 3005 1669 3005 1669 3006 1670 3006 1671 3006 1671 3007 1671 3008 1670 3009 1670 3009 1669 3008 1668 3008 1667 3007 1667 3006 1667 3005 1666 3005 1667 3005 1668 3005 1668 3004 1667 3004 1666 3005 1662 3005 1661 3005 1659 3005 1658 3006 1657 3006 1657 3006 1657 3007 1657 3006 1658 3006 1658 3007 1658 3008 1659 3009 1659 3009 1659 3010 1659 3011 1659 3012 1660 3013 1660 3015 1660 3015 1659 3015 1659 3014 1659 3014 1658 3016 1657 3017 1656 3018 1655 3020 1655 3021 1655 3021 1657 3020 1658 3019 1659 3020 1659 3020 1659 3020 1658 3022 1658 3022 1658 3023 1658 3023 1658 3023 1659 3023 1659 3024 1660 3025 1659 3024 1659 3024 1657 3024 1657 3024 1657 3023 1657 3021 1657 3021 1654 3022 1653 3024 1652 3025 1652 3025 1652 3026 1652 3027 1652 3028 1652 3030 1651 3031 1651 3032 1651 3032 1651 3034 1651 3034 1651 3037 1652 3037 1652 3038 1652 3038 1652 3039 1652 3040 1652 3039 1653 3039 1653 3039 1655 3039 1655 3040 1656 3039 1657 3037 1657 3033 1658 3033 1658 3034 1658 3035 1658 3036 1657 3038 1657 3040 1657 3040 1657 3040 1657 3041 1658 3040 1658 3040 1658 3039 1659 3039 1659 3038 1659 3038 1661 3038 1660 3038 1660 3038 1659 3040 1659 3040 1659 3041 1659 3041 1660 3043 1660 3043 1660 3044 1660 3045 1660 3047 1660 3047 1660 3048 1660 3049 1660 3050 1661 3049 1663 3049 1663 3047 1665 3046 1665 3046 1665 3045 1664 3045 1664 3044 1665 3044 1666 3044 1666 3043 1666 3043 1666 3041 1665 3040 1665 3042 1665 3042 1665 3043 1664 3042 1663 3041 1663 3039 1665 3038 1666 3039 1666 3039 1667 3039 1668 3039 1669 3038 1671 3037 1671 3037 1670 3036 1670 3036 1670 3035 1670 3034 1670 3033 1671 3033 1671 3033 1671 3034 1671 3035 1671 3035 1671 3035 1672 3035 1673 3032 1673 3032 1673 3030 1673 3030 1673 3029 1673 3028 1673 3028 1673 3029 1673 3029 1673 3030 1674 3032 1674 3030 1676 3028 1677 3028 1678 3028 1678 3028 1678 3029 1680 3030 1680 3030 1680 3030 1681 3029 1681 3029 1681 3028 1681 3027 1682 3026 1682 3027 1683 3028 1684 3029 1684 3030 1684 3031 1685 3031 1686 3030 1687 3029 1686 3029 1686 3029 1686 3029 1685 3028 1685 3027 1686 3026 1687 3026 1687 3025 1687 3025 1687 3024 1687 3023 1687 3022 1687 3022 1686 3021 1686 3018 1686 3017 1685 3016 1685 3015 1686 3015 1686 3014 1686 3014 1686 3013 1685 3013 1684 3014 1682 3012 1683 3011 1683 3010 1683 3010 1682 3010 1681 3011 1681 3012 1681 3012 1681 3012 1681 3012 1682 3013 1682 3014 1682 3014 1681 3013 1681 3013 1680 3013 1679 3013 1678 3013 1677 3012 1677 3011 1677 3010 1677 3010 1677 3008 1675 3007 1676 3004 1675 3005 1674 3005 1674 3006 1673 3006 1672 M 3013 1657 3013 1657 3012 1656 3012 1656 3011 1656 3011 1656 3011 1656 3012 1655 3013 1655 3013 1654 3013 1654 3014 1654 3015 1654 3016 1654 3016 1653 3016 1653 3016 1653 3017 1653 3017 1653 3018 1653 3017 1655 3016 1656 3015 1657 3015 1657 3015 1657 3013 1657 M 3059 1681 3058 1681 3058 1681 3057 1681 3057 1681 3056 1681 3056 1681 3056 1681 3055 1681 3055 1681 3055 1681 3054 1679 3054 1678 3054 1677 3053 1675 3053 1675 3052 1673 3052 1673 3051 1673 3049 1672 3049 1672 3050 1672 3050 1672 3053 1673 3053 1673 3053 1673 3053 1673 3054 1673 3054 1673 3054 1673 3056 1672 3058 1671 3059 1670 3059 1670 3059 1670 3059 1670 3059 1669 3059 1669 3058 1669 3058 1669 3057 1669 3056 1669 3055 1668 3055 1668 3056 1668 3057 1669 3060 1669 3061 1669 3062 1669 3063 1669 3063 1669 3063 1669 3063 1669 3063 1669 3061 1670 3061 1671 3062 1671 3062 1671 3063 1672 3063 1672 3063 1673 3063 1673 3064 1673 3064 1673 3064 1672 3065 1669 3065 1669 3065 1669 3066 1669 3066 1669 3067 1670 3067 1670 3067 1671 3067 1671 3068 1672 3068 1672 3067 1672 3067 1673 3067 1673 3066 1673 3066 1673 3066 1674 3068 1674 3068 1673 3068 1673 3068 1672 3068 1672 3068 1672 3067 1669 3067 1669 3066 1669 3066 1669 3065 1669 3065 1669 3064 1669 3064 1669 3064 1669 3065 1668 3069 1666 3070 1666 3071 1666 3071 1666 3071 1666 3072 1666 3072 1666 3075 1667 3075 1667 3077 1667 3076 1668 3076 1668 3076 1668 3075 1669 3075 1669 3075 1669 3076 1670 3076 1670 3076 1671 3076 1671 3076 1672 3076 1672 3076 1672 3076 1673 3076 1673 3075 1674 3075 1674 3075 1674 3075 1674 3075 1674 3074 1674 3074 1674 3073 1674 3073 1674 3073 1674 3073 1674 3072 1675 3072 1675 3071 1675 3071 1675 3071 1675 3070 1676 3070 1676 3070 1677 3070 1677 3070 1677 3070 1677 3071 1678 3072 1678 3072 1678 3073 1678 3073 1678 3074 1678 3074 1678 3074 1679 3074 1679 3074 1680 3073 1680 3073 1680 3072 1680 3072 1680 3071 1680 3071 1680 3071 1680 3070 1680 3069 1681 3067 1681 3067 1681 3067 1682 3068 1682 3068 1682 3068 1682 3069 1682 3069 1682 3069 1682 3070 1682 3069 1684 3069 1684 3068 1685 3067 1685 3067 1685 3067 1684 3066 1684 3066 1684 3066 1684 3065 1684 3065 1684 3065 1684 3064 1684 3064 1684 3062 1683 3063 1682 3063 1682 3063 1681 3062 1681 3062 1681 3062 1681 3062 1681 3061 1681 3060 1681 3060 1681 3059 1681 3059 1681 M 3045 1670 3045 1670 3044 1672 3044 1672 3044 1672 3043 1672 3043 1672 3043 1671 3043 1669 3043 1668 3043 1668 3044 1668 3044 1668 3044 1669 3044 1669 3045 1670 3045 1670 3045 1670 3045 1670 3045 1670 M 3035 1675 3036 1675 3037 1675 3037 1675 3037 1675 3038 1674 3039 1674 3040 1674 3041 1675 3042 1676 3042 1676 3042 1676 3041 1677 3042 1677 3042 1677 3044 1676 3045 1676 3045 1675 3045 1674 3045 1675 3047 1676 3047 1678 3048 1679 3048 1681 3047 1682 3046 1683 3045 1683 3045 1683 3044 1683 3043 1684 3043 1684 3043 1684 3037 1683 3037 1682 3037 1682 3036 1681 3035 1681 3033 1680 3033 1679 3032 1677 3031 1677 3030 1676 3030 1676 3031 1675 3032 1675 3032 1676 3033 1676 3033 1676 3034 1676 3035 1675 M 3115 1684 3114 1684 3113 1684 3111 1683 3110 1683 3109 1682 3110 1681 3111 1679 3111 1679 3111 1680 3112 1680 3112 1680 3112 1680 3113 1680 3115 1681 3116 1681 3116 1682 3117 1682 3117 1682 3117 1682 3117 1683 3116 1684 3116 1684 3115 1684 3115 1684 M 3046 1688 3046 1688 3046 1688 3046 1688 3045 1687 3045 1687 3046 1685 3046 1685 3046 1685 3047 1684 3047 1684 3048 1683 3049 1682 3049 1682 3050 1682 3050 1681 3050 1681 3050 1682 3050 1683 3050 1683 3049 1684 3049 1684 3049 1684 3049 1684 3048 1685 3048 1685 3047 1687 3047 1688 3046 1688 M 3035 1684 3035 1684 3035 1685 3036 1686 3036 1686 3036 1686 3035 1686 3034 1686 3034 1686 3034 1686 3033 1686 3032 1686 3031 1685 3031 1685 3031 1685 3031 1684 3031 1685 3032 1685 3032 1685 3032 1685 3032 1684 3031 1684 3031 1684 3031 1684 3030 1684 3030 1684 3030 1684 3029 1683 3029 1683 3029 1683 3030 1683 3031 1683 3031 1683 3031 1683 3034 1684 3035 1684 M 3044 1685 3044 1685 3043 1684 3043 1684 3045 1683 3046 1684 3045 1684 3045 1685 3044 1685 M 3070 1686 3069 1686 3069 1686 3069 1686 3069 1685 3070 1684 3072 1683 3073 1684 3074 1684 3075 1684 3075 1684 3076 1685 3075 1685 3075 1685 3075 1685 3075 1685 3074 1685 3073 1685 3073 1685 3072 1685 3072 1685 3072 1685 3071 1685 3070 1686 M 3041 1687 3041 1687 3039 1686 3038 1685 3038 1684 3039 1685 3040 1685 3042 1686 3042 1687 3041 1687 M 3064 1685 3065 1685 3067 1686 3067 1686 3067 1686 3068 1686 3068 1686 3068 1686 3068 1686 3069 1686 3069 1686 3069 1687 3069 1687 3069 1687 3068 1687 3068 1687 3068 1687 3068 1688 3066 1689 3066 1689 3066 1689 3066 1689 3066 1690 3066 1690 3066 1690 3066 1691 3066 1691 3066 1691 3066 1691 3065 1691 3065 1690 3065 1689 3065 1689 3065 1689 3065 1689 3064 1688 3064 1687 3063 1687 3063 1686 3063 1686 3062 1685 3062 1685 3063 1685 3063 1685 3064 1685 3064 1685 M 3051 1687 3051 1687 3051 1686 3051 1685 3051 1685 3052 1685 3052 1685 3053 1685 3053 1685 3053 1685 3054 1685 3055 1685 3055 1685 3055 1685 3056 1685 3056 1686 3056 1686 3057 1686 3057 1686 3059 1687 3060 1687 3061 1686 3061 1686 3061 1686 3062 1686 3062 1686 3064 1688 3064 1688 3064 1689 3064 1689 3064 1689 3063 1690 3062 1690 3062 1690 3062 1690 3061 1689 3060 1689 3059 1690 3058 1690 3058 1690 3057 1690 3056 1689 3056 1689 3055 1689 3055 1689 3055 1689 3054 1688 3053 1688 3053 1688 3052 1688 3051 1688 3051 1688 3051 1687 3051 1687" />
+<path id="dj" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3565 2380 3565 2381 3564 2383 3563 2384 3561 2386 3561 2386 3561 2387 3560 2387 3559 2387 3558 2387 3558 2386 3558 2386 3558 2386 3556 2385 3556 2385 3554 2386 3552 2386 3551 2387 3549 2387 3548 2387 3547 2387 3546 2388 3546 2388 3545 2388 3545 2388 3544 2387 3543 2387 3543 2387 3542 2387 3543 2386 3543 2385 3543 2384 3543 2383 3543 2381 3542 2379 3543 2377 3543 2375 3544 2374 3545 2374 3546 2372 3547 2371 3548 2369 3549 2369 3550 2367 3551 2366 3551 2366 3551 2365 3551 2364 3552 2364 3552 2363 3553 2362 3554 2362 3554 2363 3554 2363 3555 2363 3556 2364 3556 2364 3557 2365 3558 2365 3559 2364 3559 2363 3559 2362 3561 2361 3564 2360 3564 2360 3565 2361 3565 2361 3566 2363 3567 2363 3567 2363 3567 2364 3568 2366 3568 2367 3568 2367 3569 2369 3568 2370 3568 2370 3568 2371 3566 2371 3566 2371 3565 2372 3565 2372 3564 2372 3563 2373 3563 2374 3562 2374 3562 2374 3560 2374 3559 2375 3558 2375 3557 2376 3557 2377 3557 2378 3557 2378 3556 2378 3555 2378 3554 2378 3554 2378 3554 2378 3554 2379 3555 2379 3556 2379 3557 2379 3556 2379 3557 2378 3557 2378 3559 2378 3560 2377 3560 2378 3560 2378 3561 2377 3562 2378 3562 2378 3564 2378 3564 2378 3566 2379 3566 2379 3565 2380 3565 2380" />
+<path id="dm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1895 2320 1895 2320 1895 2319 1895 2319 1895 2319 1894 2317 1894 2316 1893 2316 1893 2315 1893 2315 1893 2314 1893 2314 1893 2313 1893 2313 1893 2313 1894 2313 1896 2314 1896 2314 1896 2315 1897 2316 1897 2318 1897 2318 1896 2319 1896 2319 1896 2319 1895 2320" />
+<path id="ck" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 319 2569 319 2569 319 2569 319 2569 319 2568 319 2568 319 2569 319 2569 319 2569" />
+<path id="do" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1774 2269 1773 2269 1772 2269 1772 2269 1772 2269 1770 2268 1770 2268 1767 2268 1765 2268 1765 2269 1764 2268 1762 2268 1761 2268 1761 2268 1759 2268 1758 2268 1758 2268 1758 2268 1758 2268 1757 2268 1757 2268 1757 2268 1756 2270 1756 2270 1754 2271 1754 2271 1754 2271 1754 2271 1753 2271 1752 2271 1751 2271 1751 2271 1750 2271 1750 2272 1749 2272 1749 2272 1749 2272 1748 2272 1748 2271 1748 2271 1748 2271 1748 2271 1748 2270 1748 2269 1748 2269 1747 2268 1747 2268 1747 2268 1746 2268 1746 2268 1746 2268 1746 2269 1746 2269 1746 2269 1745 2269 1745 2269 1745 2269 1745 2269 1743 2270 1742 2271 1741 2270 1741 2270 1740 2270 1740 2270 1740 2270 1740 2270 1739 2271 1739 2271 1739 2271 1740 2272 1740 2272 1740 2272 1740 2273 1740 2274 1738 2276 1738 2276 1738 2276 1737 2277 1737 2277 1737 2277 1735 2281 1734 2281 1734 2281 1731 2278 1730 2276 1730 2276 1730 2275 1730 2275 1729 2275 1729 2274 1729 2274 1729 2274 1729 2273 1729 2272 1729 2272 1729 2270 1730 2270 1730 2270 1730 2270 1729 2270 1729 2269 1728 2269 1727 2268 1726 2268 1726 2268 1727 2267 1727 2267 1726 2266 1725 2266 1725 2265 1725 2265 1725 2265 1726 2265 1726 2265 1727 2265 1727 2265 1728 2265 1728 2265 1728 2264 1729 2264 1729 2264 1729 2264 1729 2264 1729 2264 1729 2264 1730 2263 1730 2263 1730 2262 1730 2261 1729 2260 1729 2259 1731 2257 1731 2257 1731 2256 1731 2256 1731 2256 1730 2255 1730 2255 1730 2255 1730 2255 1730 2255 1729 2254 1729 2253 1730 2253 1730 2251 1730 2251 1730 2250 1730 2250 1730 2250 1729 2250 1729 2250 1729 2249 1729 2249 1729 2249 1729 2248 1729 2248 1729 2248 1729 2248 1729 2248 1729 2247 1729 2247 1729 2247 1729 2247 1729 2247 1730 2245 1731 2245 1732 2245 1733 2245 1733 2245 1734 2245 1734 2245 1735 2245 1735 2245 1735 2245 1737 2246 1737 2246 1737 2246 1739 2245 1739 2245 1740 2245 1740 2244 1740 2244 1741 2244 1741 2244 1741 2244 1743 2245 1744 2245 1744 2245 1744 2246 1746 2246 1747 2247 1748 2247 1749 2247 1749 2247 1749 2247 1750 2247 1751 2247 1751 2247 1751 2248 1752 2248 1752 2249 1752 2249 1753 2249 1754 2249 1755 2249 1755 2249 1755 2249 1756 2249 1756 2249 1756 2248 1756 2248 1756 2248 1757 2248 1758 2248 1758 2248 1759 2249 1759 2249 1759 2249 1759 2249 1759 2251 1759 2252 1759 2252 1760 2253 1760 2253 1760 2253 1761 2254 1761 2254 1761 2254 1761 2254 1762 2254 1762 2254 1764 2254 1765 2254 1766 2254 1768 2254 1768 2254 1769 2253 1769 2253 1769 2253 1770 2254 1770 2255 1770 2255 1769 2256 1769 2256 1769 2256 1767 2256 1764 2255 1763 2255 1763 2256 1763 2257 1763 2257 1763 2258 1763 2258 1764 2258 1764 2258 1765 2257 1765 2257 1766 2257 1766 2257 1766 2257 1766 2257 1767 2257 1767 2258 1767 2258 1767 2258 1767 2258 1767 2258 1769 2259 1770 2259 1770 2259 1773 2259 1773 2259 1774 2259 1774 2259 1775 2259 1777 2260 1777 2260 1777 2260 1778 2260 1778 2261 1779 2262 1780 2262 1780 2263 1782 2264 1783 2265 1783 2265 1784 2265 1784 2265 1784 2266 1782 2269 1781 2269 1781 2269 1781 2270 1780 2269 1780 2269 1780 2269 1779 2269 1779 2269 1779 2271 1779 2272 1779 2272 1778 2272 1777 2272 1777 2271 1777 2271 1777 2271 1776 2271 1776 2270 1776 2269 1775 2269 1775 2269 1775 2269 1775 2269 1775 2269 1774 2269 1774 2269 M 1780 2273 1779 2273 1779 2273 1779 2273 1778 2273 1778 2273 1778 2273 1778 2273 1777 2273 1777 2273 1776 2272 1776 2272 1776 2272 1779 2272 1779 2272 1780 2273 1780 2273 1780 2273 1780 2273" />
+<path id="ec" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1618 2636 1618 2636 1617 2636 1617 2636 1616 2637 1615 2637 1615 2637 1615 2638 1614 2638 1614 2639 1614 2640 1613 2642 1613 2642 1612 2642 1612 2642 1610 2642 1610 2642 1609 2642 1609 2642 1607 2641 1606 2639 1606 2639 1605 2636 1605 2636 1605 2635 1603 2634 1603 2633 1603 2633 1602 2634 1601 2634 1600 2634 1597 2632 1597 2632 1596 2631 1596 2631 1595 2631 1594 2631 1594 2632 1594 2632 1593 2633 1592 2634 1591 2634 1591 2634 1591 2634 1590 2633 1590 2633 1590 2633 1590 2631 1591 2631 1591 2631 1592 2630 1591 2630 1591 2630 1590 2630 1590 2630 1590 2629 1589 2628 1589 2627 1589 2627 1590 2626 1591 2626 1591 2626 1592 2626 1592 2627 1593 2626 1594 2625 1595 2625 1594 2624 1594 2622 1594 2622 1594 2621 1594 2620 1593 2618 1593 2617 1592 2616 1592 2616 1593 2616 1593 2616 1595 2616 1597 2615 1598 2614 1598 2613 1598 2613 1598 2612 1599 2611 1599 2611 1599 2611 1599 2609 1600 2607 1601 2605 1601 2605 1601 2604 1602 2604 1602 2603 1601 2602 1601 2602 1601 2602 1600 2600 1600 2599 1600 2598 1600 2597 1600 2596 1601 2595 1601 2595 1600 2595 1599 2596 1599 2596 1599 2597 1599 2597 1599 2598 1599 2598 1599 2598 1599 2599 1599 2601 1599 2601 1599 2603 1599 2603 1598 2604 1598 2604 1597 2604 1596 2604 1596 2604 1597 2601 1597 2600 1598 2600 1598 2599 1597 2600 1596 2601 1596 2602 1596 2603 1594 2604 1594 2604 1593 2606 1593 2606 1592 2606 1590 2605 1588 2603 1587 2602 1587 2601 1586 2601 1586 2601 1585 2601 1584 2600 1583 2600 1582 2598 1582 2597 1582 2598 1584 2597 1585 2596 1585 2596 1585 2596 1586 2593 1586 2593 1585 2591 1585 2590 1584 2589 1584 2588 1584 2588 1584 2587 1584 2586 1584 2586 1585 2586 1585 2584 1584 2582 1584 2582 1583 2581 1583 2579 1583 2579 1584 2577 1585 2577 1586 2577 1587 2577 1588 2577 1589 2576 1589 2575 1589 2574 1589 2573 1590 2572 1591 2572 1591 2572 1591 2573 1592 2573 1593 2572 1592 2572 1592 2572 1591 2572 1591 2572 1590 2571 1589 2569 1589 2568 1591 2566 1592 2565 1593 2565 1593 2565 1593 2565 1595 2563 1595 2563 1596 2562 1596 2560 1597 2560 1597 2559 1597 2559 1596 2558 1597 2558 1597 2557 1597 2557 1597 2557 1597 2557 1597 2556 1597 2556 1597 2555 1597 2555 1597 2554 1597 2554 1597 2553 1597 2553 1596 2552 1596 2552 1596 2552 1596 2551 1596 2550 1596 2549 1597 2549 1598 2549 1600 2549 1600 2548 1600 2548 1601 2548 1601 2547 1601 2547 1603 2547 1603 2547 1604 2547 1604 2547 1605 2546 1606 2546 1606 2545 1608 2545 1609 2545 1609 2545 1610 2545 1610 2545 1611 2545 1611 2544 1612 2544 1613 2544 1614 2543 1615 2543 1615 2541 1616 2540 1616 2540 1618 2542 1619 2542 1619 2542 1620 2543 1620 2543 1621 2543 1622 2543 1622 2544 1622 2544 1624 2545 1624 2546 1624 2546 1625 2546 1625 2546 1625 2546 1626 2547 1628 2548 1628 2548 1629 2548 1629 2548 1630 2549 1631 2549 1632 2550 1632 2550 1633 2549 1634 2549 1634 2549 1635 2550 1635 2550 1635 2551 1635 2551 1635 2551 1636 2552 1636 2552 1637 2552 1637 2552 1637 2552 1638 2552 1638 2553 1638 2553 1638 2554 1638 2556 1639 2556 1640 2557 1642 2557 1642 2557 1644 2557 1645 2558 1647 2559 1648 2559 1649 2559 1649 2558 1650 2558 1651 2558 1652 2559 1652 2559 1652 2559 1654 2559 1655 2558 1655 2556 1657 2556 1659 2557 1660 2557 1661 2557 1661 2558 1663 2560 1665 2562 1665 2562 1666 2562 1668 2562 1669 2563 1670 2563 1671 2564 1671 2564 1672 2564 1672 2564 1673 2564 1672 2565 1671 2565 1670 2565 1669 2565 1669 2564 1667 2564 1667 2565 1668 2565 1669 2566 1670 2567 1670 2567 1670 2568 1670 2569 1670 2569 1671 2570 1671 2570 1672 2570 1673 2571 1673 2571 1673 2573 1673 2573 1673 2573 1673 2573 1672 2574 1673 2576 1674 2578 1672 2578 1671 2578 1671 2578 1671 2577 1670 2579 1670 2580 1670 2581 1669 2582 1668 2587 1668 2587 1668 2587 1667 2588 1666 2590 1665 2591 1661 2595 1660 2597 1655 2601 1651 2604 1647 2605 1644 2606 1642 2607 1638 2608 1632 2610 1632 2610 1631 2610 1630 2611 1629 2613 1628 2614 1627 2615 1627 2615 1626 2615 1626 2616 1626 2616 1626 2617 1626 2617 1626 2618 1626 2618 1625 2619 1625 2619 1625 2618 1625 2617 1625 2617 1624 2617 1624 2617 1624 2617 1624 2618 1623 2619 1623 2619 1623 2620 1623 2621 1623 2622 1623 2622 1623 2623 1622 2623 1622 2624 1621 2625 1621 2625 1620 2626 1620 2627 1620 2627 1620 2628 1620 2628 1619 2631 1619 2631 1618 2631 1618 2632 1618 2632 1619 2633 1619 2634 1619 2635 1618 2636 1618 2636 M 1412 2563 1413 2562 1415 2561 1416 2561 1417 2561 1417 2562 1417 2562 1417 2563 1418 2563 1418 2563 1418 2564 1418 2564 1418 2565 1419 2566 1419 2566 1420 2567 1420 2568 1421 2568 1421 2568 1422 2569 1422 2569 1422 2571 1422 2571 1423 2573 1423 2573 1424 2573 1425 2574 1424 2577 1423 2578 1419 2579 1418 2579 1418 2579 1417 2579 1416 2579 1416 2579 1416 2579 1415 2579 1414 2578 1414 2577 1414 2577 1414 2576 1414 2576 1414 2575 1417 2573 1418 2573 1418 2573 1419 2573 1420 2572 1420 2571 1419 2571 1416 2567 1415 2566 1415 2566 1415 2565 1415 2564 1415 2563 1415 2563 1414 2563 1413 2563 1413 2563 1412 2563 1412 2563 1412 2563 M 1428 2568 1427 2568 1426 2568 1426 2568 1426 2568 1424 2568 1424 2567 1424 2565 1425 2565 1425 2565 1426 2565 1427 2565 1427 2566 1427 2566 1428 2566 1428 2566 1428 2566 1429 2567 1429 2567 1428 2568 1428 2568 1428 2568 M 1414 2570 1413 2570 1412 2570 1411 2569 1411 2569 1411 2568 1411 2567 1414 2566 1414 2566 1415 2567 1415 2567 1415 2568 1415 2570 1415 2570 1415 2570 1414 2570 M 1432 2575 1431 2575 1429 2574 1429 2573 1429 2572 1429 2572 1429 2571 1430 2571 1430 2571 1432 2571 1433 2570 1435 2571 1435 2572 1434 2573 1434 2573 1433 2574 1432 2575 M 1445 2578 1445 2578 1443 2577 1443 2577 1444 2577 1444 2577 1444 2576 1445 2576 1445 2576 1446 2575 1446 2575 1446 2575 1446 2574 1447 2574 1448 2574 1448 2574 1448 2573 1448 2573 1449 2574 1450 2574 1449 2574 1449 2575 1449 2575 1447 2577 1446 2577 1445 2578 M 1430 2584 1430 2584 1430 2584 1430 2584 1429 2583 1429 2583 1430 2582 1430 2582 1431 2582 1432 2583 1432 2583 1432 2583 1431 2584 1431 2584 1431 2584 1430 2584 M 1594 2611 1594 2611 1593 2611 1593 2611 1593 2608 1593 2608 1593 2608 1593 2608 1593 2607 1594 2606 1596 2605 1597 2605 1597 2605 1597 2605 1599 2606 1599 2606 1598 2607 1595 2609 1596 2610 1595 2610 1595 2611 1594 2611 1594 2611" />
+<path id="eg" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3396 2087 3396 2086 3395 2085 3395 2084 3395 2083 3394 2084 3393 2085 3394 2085 3393 2087 3393 2087 3392 2088 3392 2090 3392 2091 3393 2091 3393 2091 3395 2093 3396 2094 3396 2096 3396 2097 3397 2097 3397 2097 3397 2098 3396 2098 3396 2100 3397 2101 3398 2102 3398 2102 3399 2103 3399 2103 3399 2103 3399 2104 3399 2104 3400 2105 3401 2107 3402 2108 3402 2108 3403 2109 3404 2111 3405 2112 3406 2112 3407 2114 3409 2115 3409 2115 3410 2115 3410 2116 3410 2116 3411 2117 3411 2118 3411 2118 3411 2119 3411 2118 3410 2118 3410 2118 3410 2118 3410 2121 3411 2122 3412 2123 3413 2124 3413 2125 3413 2126 3413 2126 3414 2126 3414 2127 3414 2127 3415 2127 3415 2127 3415 2128 3415 2129 3415 2129 3417 2132 3417 2134 3417 2136 3417 2137 3417 2137 3418 2137 3418 2137 3419 2139 3420 2141 3421 2142 3421 2143 3421 2144 3422 2144 3423 2147 3425 2150 3426 2151 3426 2151 3427 2151 3427 2152 3428 2154 3428 2154 3429 2155 3430 2159 3431 2160 3432 2161 3432 2162 3433 2162 3433 2163 3434 2164 3435 2168 3436 2171 3436 2171 3438 2172 3438 2173 3439 2173 3439 2174 3440 2175 3441 2175 3441 2176 3441 2176 3442 2177 3444 2178 3445 2179 3446 2179 3446 2179 3447 2180 3447 2181 3444 2180 3443 2180 3443 2179 3442 2179 3442 2180 3442 2180 3442 2182 3442 2183 3442 2184 3442 2184 3442 2186 3442 2187 3442 2188 3443 2189 3443 2189 3443 2190 3443 2190 3443 2191 3443 2192 3444 2192 3444 2193 3444 2193 3445 2194 3445 2195 3445 2196 3446 2197 3448 2199 3448 2199 3449 2200 3450 2200 3451 2200 3452 2200 3454 2201 3454 2202 3456 2204 3456 2205 3457 2206 3457 2206 3458 2206 3459 2206 3462 2209 3463 2209 3464 2210 3464 2210 3464 2211 3464 2211 3464 2211 3464 2211 3463 2211 3462 2211 3461 2211 3459 2211 3457 2211 3455 2211 3454 2211 3450 2211 3449 2211 3447 2211 3441 2211 3440 2211 3436 2211 3434 2211 3434 2211 3433 2211 3432 2211 3429 2211 3429 2211 3424 2211 3420 2211 3420 2211 3419 2211 3417 2211 3416 2211 3415 2211 3414 2211 3414 2211 3409 2211 3408 2211 3405 2211 3405 2211 3396 2211 3394 2211 3394 2211 3394 2211 3393 2211 3392 2211 3392 2211 3386 2211 3379 2211 3378 2211 3377 2211 3378 2211 3378 2209 3378 2208 3378 2208 3377 2207 3377 2207 3376 2208 3375 2209 3375 2210 3375 2211 3373 2211 3373 2211 3366 2211 3365 2211 3364 2211 3362 2211 3362 2211 3360 2211 3359 2211 3356 2211 3348 2211 3347 2211 3342 2211 3341 2211 3341 2211 3340 2211 3340 2211 3340 2211 3339 2211 3338 2211 3332 2211 3327 2211 3326 2211 3326 2211 3318 2211 3313 2211 3312 2211 3311 2211 3311 2211 3308 2211 3308 2211 3306 2211 3305 2211 3304 2211 3301 2211 3301 2211 3296 2211 3287 2211 3281 2211 3278 2211 3276 2211 3274 2211 3274 2210 3274 2207 3274 2186 3274 2179 3274 2174 3274 2167 3274 2163 3274 2156 3274 2148 3274 2139 3274 2138 3274 2136 3274 2132 3274 2131 3274 2130 3274 2124 3274 2122 3274 2121 3274 2119 3274 2117 3274 2115 3274 2113 3274 2111 3274 2100 3274 2095 3273 2092 3273 2092 3272 2091 3272 2090 3272 2086 3272 2086 3272 2086 3272 2085 3271 2085 3271 2084 3271 2083 3270 2081 3270 2081 3270 2081 3270 2080 3270 2080 3271 2078 3271 2078 3272 2077 3272 2077 3273 2075 3274 2073 3275 2071 3274 2070 3274 2069 3273 2067 3273 2067 3272 2065 3272 2061 3273 2061 3274 2060 3274 2060 3275 2059 3275 2058 3275 2058 3276 2058 3276 2057 3277 2057 3277 2057 3277 2057 3277 2059 3279 2059 3281 2059 3282 2059 3283 2059 3285 2058 3287 2058 3288 2058 3288 2057 3289 2057 3290 2058 3290 2058 3292 2058 3293 2058 3295 2059 3296 2059 3296 2059 3298 2059 3301 2060 3303 2060 3305 2060 3307 2061 3309 2061 3310 2061 3311 2061 3311 2061 3312 2061 3312 2062 3312 2063 3312 2063 3313 2063 3313 2064 3313 2064 3314 2064 3315 2064 3317 2065 3319 2064 3320 2063 3320 2064 3320 2064 3321 2065 3321 2066 3321 2066 3325 2066 3327 2066 3328 2066 3329 2066 3329 2066 3331 2067 3334 2068 3334 2068 3335 2068 3335 2069 3337 2069 3338 2070 3339 2070 3339 2070 3340 2070 3341 2070 3341 2070 3342 2070 3342 2070 3344 2069 3346 2068 3347 2068 3347 2067 3348 2067 3348 2067 3348 2067 3349 2066 3350 2066 3351 2065 3354 2063 3355 2062 3355 2062 3356 2063 3356 2064 3358 2064 3359 2064 3359 2063 3359 2062 3360 2060 3360 2060 3360 2060 3360 2059 3360 2059 3361 2060 3361 2060 3362 2060 3362 2060 3363 2060 3364 2060 3365 2059 3366 2059 3366 2059 3367 2059 3368 2059 3369 2058 3365 2060 3363 2061 3363 2061 3364 2061 3366 2061 3369 2061 3370 2060 3370 2060 3372 2060 3372 2059 3372 2059 3371 2058 3371 2058 3370 2058 3370 2058 3372 2058 3372 2058 3373 2058 3374 2058 3374 2058 3376 2059 3376 2059 3377 2060 3378 2060 3379 2060 3379 2060 3380 2060 3381 2060 3382 2060 3383 2059 3384 2059 3384 2059 3384 2059 3385 2059 3385 2059 3386 2060 3386 2060 3386 2061 3387 2061 3387 2061 3387 2062 3388 2062 3389 2063 3389 2063 3388 2062 3388 2062 3387 2062 3387 2062 3386 2061 3386 2061 3386 2060 3385 2059 3385 2059 3384 2059 3383 2063 3383 2063 3384 2063 3385 2064 3385 2064 3386 2064 3387 2064 3387 2064 3387 2065 3387 2065 3387 2065 3387 2066 3388 2066 3388 2066 3388 2066 3388 2066 3389 2065 3390 2066 3390 2066 3391 2065 3391 2065 3391 2065 3391 2064 3390 2063 3390 2063 3390 2063 3390 2063 3390 2063 3391 2063 3391 2063 3393 2064 3393 2065 3394 2065 3394 2066 3395 2066 3396 2066 3397 2067 3397 2067 3399 2067 3403 2065 3404 2064 3404 2066 3404 2066 3405 2066 3406 2066 3407 2066 3409 2065 3409 2065 3410 2065 3411 2065 3411 2066 3412 2066 3412 2066 3413 2065 3414 2065 3415 2065 3416 2065 3417 2064 3418 2064 3419 2064 3420 2063 3421 2062 3422 2062 3422 2063 3422 2064 3423 2065 3424 2070 3426 2072 3427 2076 3427 2076 3427 2077 3428 2078 3430 2082 3430 2083 3432 2087 3432 2089 3432 2089 3432 2090 3432 2091 3432 2092 3432 2092 3432 2092 3430 2094 3430 2095 3429 2097 3429 2099 3428 2102 3428 2103 3428 2104 3428 2104 3427 2105 3427 2106 3426 2106 3425 2108 3425 2110 3425 2112 3425 2112 3425 2112 3425 2115 3425 2115 3425 2116 3423 2117 3423 2118 3422 2118 3422 2119 3422 2119 3422 2120 3422 2119 3421 2119 3420 2119 3418 2117 3415 2116 3415 2115 3414 2115 3413 2114 3412 2112 3412 2111 3411 2111 3410 2110 3409 2110 3409 2109 3407 2108 3407 2107 3406 2106 3406 2106 3405 2105 3405 2102 3405 2100 3405 2100 3405 2099 3401 2096 3401 2096 3400 2096 3398 2092 3398 2091 3397 2089 3397 2089 3397 2088 3397 2087 3396 2087" />
+<path id="ie" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2731 1714 2731 1713 2732 1713 2732 1714 2732 1712 2732 1712 2731 1712 2730 1712 2730 1712 2729 1712 2728 1712 2728 1712 2726 1712 2724 1712 2724 1712 2723 1712 2722 1712 2721 1712 2721 1712 2722 1711 2722 1711 2722 1711 2722 1710 2721 1710 2721 1710 2720 1710 2720 1711 2719 1711 2719 1711 2717 1711 2717 1710 2718 1710 2718 1710 2718 1710 2719 1710 2718 1709 2718 1709 2717 1709 2717 1710 2716 1710 2715 1710 2712 1709 2712 1707 2712 1707 2715 1706 2715 1706 2717 1706 2718 1706 2719 1706 2720 1706 2720 1706 2719 1706 2719 1706 2718 1706 2718 1706 2717 1706 2717 1706 2716 1705 2717 1704 2717 1704 2718 1704 2720 1703 2721 1704 2722 1704 2722 1703 2722 1703 2722 1703 2722 1703 2721 1703 2721 1703 2722 1703 2722 1703 2722 1702 2722 1702 2722 1702 2720 1702 2720 1702 2719 1702 2719 1702 2719 1702 2718 1702 2718 1702 2717 1702 2717 1702 2716 1702 2717 1701 2717 1701 2717 1701 2718 1701 2718 1701 2718 1701 2719 1701 2719 1701 2718 1700 2718 1700 2716 1699 2716 1698 2716 1698 2716 1697 2715 1697 2714 1698 2714 1698 2714 1699 2714 1699 2714 1699 2713 1698 2713 1698 2713 1696 2714 1696 2714 1696 2715 1695 2717 1696 2717 1696 2717 1696 2716 1696 2716 1697 2716 1696 2716 1696 2716 1696 2716 1697 2716 1697 2717 1697 2717 1697 2717 1696 2718 1696 2718 1695 2718 1695 2718 1695 2719 1695 2719 1695 2722 1695 2723 1695 2726 1695 2727 1695 2728 1696 2728 1696 2729 1697 2729 1697 2729 1697 2729 1697 2730 1696 2731 1695 2731 1695 2732 1695 2733 1696 2735 1696 2737 1696 2740 1696 2739 1695 2739 1695 2738 1695 2738 1695 2737 1695 2737 1695 2737 1695 2737 1694 2737 1694 2740 1693 2741 1693 2741 1693 2742 1692 2743 1692 2743 1692 2744 1691 2745 1691 2744 1690 2741 1690 2738 1690 2738 1690 2737 1690 2736 1690 2736 1690 2735 1690 2735 1689 2734 1689 2735 1688 2737 1688 2737 1688 2739 1687 2739 1687 2741 1687 2742 1687 2742 1686 2742 1686 2742 1686 2741 1686 2741 1686 2741 1686 2741 1686 2740 1686 2740 1685 2740 1685 2741 1685 2741 1685 2741 1685 2740 1685 2740 1684 2742 1682 2744 1682 2747 1681 2748 1681 2748 1681 2749 1681 2749 1681 2749 1680 2751 1680 2750 1681 2750 1681 2750 1681 2751 1681 2752 1681 2752 1682 2752 1682 2752 1682 2752 1683 2753 1682 2752 1681 2752 1681 2752 1681 2752 1681 2752 1681 2752 1681 2751 1681 2751 1681 2751 1681 2751 1681 2751 1680 2751 1680 2752 1680 2752 1680 2753 1680 2753 1680 2755 1682 2755 1682 2755 1682 2755 1683 2754 1683 2754 1683 2754 1683 2753 1683 2753 1683 2752 1685 2753 1685 2753 1685 2753 1684 2754 1684 2754 1684 2755 1684 2755 1683 2756 1683 2756 1683 2756 1683 2756 1683 2756 1682 2755 1681 2755 1681 2754 1681 2754 1681 2755 1680 2757 1679 2758 1679 2757 1678 2757 1678 2759 1678 2760 1679 2762 1680 2764 1680 2764 1680 2764 1681 2764 1681 2762 1681 2761 1682 2761 1682 2760 1682 2760 1682 2759 1683 2758 1683 2757 1685 2756 1686 2756 1686 2755 1687 2754 1688 2751 1689 2750 1688 2750 1688 2748 1689 2749 1689 2749 1689 2750 1690 2751 1690 2751 1691 2750 1691 2748 1691 2746 1692 2744 1693 2745 1693 2746 1694 2746 1694 2746 1694 2747 1694 2748 1695 2749 1695 2749 1695 2749 1696 2749 1696 2749 1697 2750 1697 2750 1697 2751 1697 2752 1697 2753 1697 2753 1698 2753 1698 2754 1698 2758 1698 2758 1698 2759 1698 2761 1696 2761 1696 2760 1695 2761 1695 2762 1693 2763 1693 2764 1694 2764 1694 2765 1694 2765 1695 2766 1695 2767 1697 2769 1699 2769 1699 2769 1699 2769 1699 2769 1699 2770 1699 2772 1699 2773 1698 2774 1698 2774 1698 2775 1698 2775 1698 2775 1698 2775 1698 2775 1699 2776 1699 2777 1700 2777 1700 2777 1700 2777 1700 2777 1700 2777 1700 2777 1700 2777 1700 2776 1700 2775 1700 2774 1700 2774 1700 2774 1700 2773 1700 2773 1701 2773 1701 2773 1702 2773 1702 2774 1702 2774 1702 2774 1702 2775 1702 2775 1703 2775 1703 2775 1704 2775 1704 2775 1705 2775 1705 2776 1706 2777 1707 2777 1707 2778 1707 2778 1707 2778 1707 2778 1708 2777 1710 2777 1710 2776 1710 2776 1711 2776 1711 2777 1712 2779 1714 2779 1717 2778 1718 2777 1719 2777 1719 2777 1719 2777 1719 2777 1720 2777 1720 2776 1721 2776 1721 2776 1722 2776 1722 2776 1722 2776 1722 2776 1723 2776 1723 2776 1723 2776 1723 2775 1724 2775 1724 2773 1726 2772 1726 2772 1726 2771 1726 2773 1727 2773 1728 2774 1728 2774 1728 2774 1728 2773 1729 2773 1729 2773 1729 2773 1729 2772 1729 2769 1729 2767 1728 2766 1729 2766 1729 2765 1729 2765 1729 2765 1729 2764 1728 2763 1727 2763 1728 2763 1728 2764 1728 2764 1728 2764 1729 2763 1730 2763 1730 2762 1730 2761 1730 2757 1730 2756 1730 2754 1730 2753 1731 2754 1731 2754 1731 2754 1731 2754 1732 2752 1733 2752 1733 2750 1733 2750 1733 2750 1732 2750 1733 2750 1733 2749 1734 2747 1735 2746 1735 2745 1735 2743 1735 2743 1735 2744 1735 2744 1735 2744 1734 2744 1734 2743 1734 2741 1734 2741 1734 2740 1734 2741 1734 2741 1734 2742 1734 2742 1734 2742 1734 2742 1735 2742 1735 2742 1736 2742 1736 2742 1736 2741 1737 2739 1737 2739 1738 2738 1738 2736 1739 2735 1739 2733 1739 2732 1739 2729 1739 2729 1740 2728 1740 2726 1740 2725 1740 2725 1740 2724 1739 2721 1740 2720 1740 2720 1741 2719 1741 2718 1741 2718 1741 2718 1740 2718 1740 2719 1740 2720 1740 2720 1739 2720 1739 2721 1739 2722 1738 2722 1738 2720 1739 2719 1739 2718 1739 2718 1739 2718 1739 2719 1739 2719 1738 2722 1738 2722 1737 2723 1737 2723 1737 2724 1737 2724 1737 2724 1737 2724 1737 2724 1736 2723 1736 2722 1736 2721 1737 2721 1737 2719 1737 2718 1737 2716 1738 2716 1738 2715 1738 2715 1738 2713 1738 2713 1738 2714 1738 2715 1737 2716 1737 2715 1737 2716 1736 2717 1736 2719 1735 2722 1734 2722 1734 2721 1734 2720 1734 2720 1734 2716 1735 2714 1736 2714 1736 2712 1735 2713 1735 2712 1735 2712 1734 2712 1734 2711 1735 2710 1735 2710 1734 2709 1734 2711 1732 2711 1732 2713 1732 2714 1731 2714 1731 2714 1731 2715 1731 2718 1730 2719 1730 2718 1730 2718 1730 2717 1730 2717 1730 2716 1730 2715 1730 2714 1730 2714 1730 2712 1730 2711 1730 2710 1730 2709 1730 2709 1730 2708 1730 2708 1730 2708 1730 2708 1730 2708 1729 2710 1728 2711 1728 2711 1728 2712 1727 2713 1727 2713 1728 2716 1728 2717 1728 2717 1728 2719 1728 2719 1728 2719 1728 2718 1727 2718 1726 2719 1725 2720 1724 2720 1723 2721 1723 2721 1723 2721 1723 2725 1723 2726 1723 2726 1723 2728 1723 2732 1722 2734 1721 2734 1721 2732 1720 2731 1720 2731 1720 2730 1721 2730 1721 2729 1722 2729 1722 2729 1722 2728 1722 2727 1722 2724 1722 2722 1722 2720 1722 2720 1723 2720 1723 2719 1723 2717 1723 2717 1723 2716 1723 2717 1723 2718 1723 2718 1723 2718 1722 2720 1722 2722 1720 2723 1719 2725 1718 2725 1717 2724 1717 2724 1717 2727 1714 2727 1714 2727 1714 2728 1714 2728 1714 2728 1714 2729 1714 2730 1714 2731 1714 M 2713 1700 2714 1700 2716 1700 2716 1700 2716 1701 2716 1701 2716 1702 2716 1702 2716 1702 2714 1701 2714 1701 2713 1701 2712 1701 2711 1700 2712 1700 2713 1700 2713 1700 2713 1700" />
+<path id="gq" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3017 2506 3016 2507 3016 2508 3015 2509 3015 2509 3015 2510 3014 2511 3014 2511 3011 2511 3010 2511 3010 2510 3010 2510 3010 2509 3010 2509 3010 2509 3010 2509 3010 2508 3010 2508 3010 2508 3010 2507 3010 2507 3011 2507 3011 2507 3011 2507 3012 2507 3012 2507 3012 2507 3012 2507 3013 2506 3013 2505 3013 2504 3013 2504 3013 2504 3014 2503 3015 2502 3017 2503 3018 2503 3018 2503 3018 2503 3018 2504 3018 2504 3018 2504 3018 2505 3018 2505 3017 2505 3017 2506 3017 2506 M 3056 2535 3056 2535 3056 2537 3056 2539 3056 2546 3055 2546 3050 2546 3049 2546 3047 2546 3043 2546 3043 2546 3041 2546 3040 2546 3039 2546 3039 2546 3038 2546 3035 2546 3035 2546 3035 2546 3034 2547 3034 2548 3033 2547 3033 2547 3032 2546 3032 2546 3032 2546 3032 2545 3031 2545 3031 2545 3030 2545 3030 2545 3028 2545 3027 2545 3027 2544 3026 2544 3025 2545 3025 2544 3025 2544 3026 2542 3026 2540 3027 2540 3028 2539 3029 2537 3029 2536 3029 2536 3029 2535 3030 2535 3030 2534 3031 2532 3032 2532 3032 2531 3031 2529 3031 2525 3032 2525 3032 2526 3032 2526 3033 2527 3034 2527 3034 2528 3035 2528 3036 2528 3038 2528 3040 2528 3040 2528 3041 2528 3041 2528 3042 2528 3043 2528 3044 2528 3045 2528 3052 2528 3054 2528 3056 2528 3056 2528 3056 2530 3056 2531 3056 2532 3056 2533 3056 2535" />
+<path id="ee" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3312 1644 3311 1644 3307 1643 3307 1643 3307 1642 3306 1642 3306 1642 3305 1642 3304 1642 3301 1643 3300 1643 3300 1644 3299 1644 3298 1644 3295 1642 3295 1642 3294 1641 3291 1639 3289 1638 3288 1638 3288 1638 3287 1638 3284 1637 3282 1636 3281 1636 3279 1635 3279 1635 3279 1635 3279 1636 3278 1636 3278 1636 3278 1636 3278 1635 3277 1635 3277 1635 3276 1635 3276 1635 3275 1635 3275 1635 3275 1635 3270 1637 3267 1637 3265 1638 3265 1638 3265 1638 3264 1638 3264 1638 3263 1638 3264 1637 3264 1637 3265 1636 3265 1636 3265 1635 3266 1635 3266 1634 3266 1634 3266 1633 3266 1632 3266 1632 3267 1632 3267 1631 3267 1631 3267 1630 3266 1630 3265 1630 3265 1630 3264 1630 3264 1630 3263 1630 3263 1631 3262 1632 3260 1632 3259 1632 3259 1631 3258 1631 3258 1631 3257 1631 3256 1630 3255 1631 3254 1630 3253 1629 3252 1628 3251 1627 3250 1627 3250 1625 3251 1624 3251 1624 3252 1624 3254 1624 3256 1624 3256 1623 3255 1623 3252 1624 3250 1623 3249 1622 3249 1621 3250 1621 3250 1621 3252 1621 3253 1621 3252 1620 3252 1620 3251 1619 3252 1620 3251 1620 3251 1620 3250 1620 3249 1620 3249 1620 3249 1619 3250 1619 3250 1617 3250 1617 3252 1616 3254 1616 3254 1616 3254 1616 3254 1616 3254 1616 3256 1616 3256 1616 3257 1616 3257 1616 3259 1616 3259 1614 3259 1614 3260 1614 3260 1614 3260 1614 3261 1614 3261 1615 3262 1615 3263 1613 3264 1613 3264 1613 3265 1613 3267 1613 3270 1613 3271 1612 3271 1611 3271 1611 3272 1611 3273 1612 3273 1612 3275 1612 3276 1612 3277 1612 3278 1612 3279 1612 3279 1612 3280 1612 3281 1612 3282 1611 3282 1610 3284 1611 3284 1611 3285 1611 3286 1611 3286 1611 3285 1610 3285 1610 3286 1610 3287 1610 3288 1611 3290 1610 3291 1610 3292 1611 3294 1611 3297 1611 3298 1611 3298 1612 3299 1612 3299 1611 3300 1611 3301 1611 3301 1611 3302 1612 3303 1612 3303 1612 3304 1613 3304 1613 3305 1613 3306 1613 3307 1613 3308 1613 3309 1613 3312 1613 3313 1613 3313 1613 3314 1613 3314 1613 3315 1613 3320 1614 3320 1614 3321 1613 3321 1613 3322 1613 3322 1613 3322 1612 3323 1613 3323 1613 3324 1613 3325 1614 3325 1614 3325 1615 3325 1615 3325 1615 3324 1616 3323 1616 3323 1616 3322 1616 3322 1616 3321 1616 3320 1616 3320 1618 3319 1619 3319 1619 3318 1620 3317 1620 3316 1621 3315 1622 3314 1622 3314 1622 3313 1623 3313 1623 3313 1624 3313 1625 3314 1627 3314 1627 3315 1628 3315 1629 3315 1630 3315 1630 3315 1630 3315 1631 3314 1631 3314 1631 3314 1633 3315 1634 3315 1634 3316 1634 3317 1635 3317 1635 3317 1637 3319 1638 3319 1638 3319 1638 3319 1639 3318 1639 3317 1639 3317 1639 3316 1639 3315 1639 3315 1639 3313 1641 3312 1643 3312 1643 3312 1644 M 3235 1625 3235 1625 3235 1625 3235 1625 3234 1625 3234 1625 3234 1624 3234 1623 3233 1622 3233 1622 3233 1622 3232 1622 3232 1622 3231 1622 3230 1622 3230 1622 3229 1622 3229 1622 3227 1621 3227 1621 3227 1621 3227 1621 3227 1621 3229 1621 3232 1621 3233 1621 3234 1620 3234 1620 3235 1620 3236 1619 3238 1619 3238 1620 3238 1620 3238 1620 3238 1620 3239 1620 3240 1620 3240 1620 3241 1620 3242 1621 3243 1623 3243 1623 3243 1623 3242 1623 3242 1623 3242 1623 3241 1623 3240 1623 3241 1623 3241 1624 3240 1624 3239 1624 3239 1624 3239 1624 3239 1623 3239 1623 3239 1623 3240 1623 3239 1623 3239 1623 3239 1623 3238 1623 3238 1624 3238 1624 3237 1624 3237 1625 3237 1625 3237 1625 3236 1625 3236 1625 3235 1625 M 3245 1619 3248 1620 3248 1620 3248 1620 3248 1620 3249 1620 3249 1620 3248 1621 3248 1621 3247 1621 3247 1621 3245 1621 3245 1621 3245 1621 3245 1621 3244 1620 3244 1620 3244 1620 3245 1620 3245 1619 3245 1619 3245 1619 M 3246 1625 3247 1625 3247 1626 3248 1626 3249 1627 3249 1627 3248 1628 3248 1628 3246 1628 3246 1628 3244 1627 3243 1627 3243 1626 3243 1626 3245 1625 3245 1625 3245 1625 3245 1625 3246 1625 3246 1625 3246 1625 M 3227 1638 3227 1638 3226 1637 3226 1637 3228 1635 3228 1635 3229 1635 3229 1634 3229 1634 3228 1633 3224 1632 3224 1631 3225 1631 3226 1631 3226 1630 3226 1630 3225 1629 3224 1629 3224 1628 3224 1628 3225 1628 3226 1628 3228 1628 3229 1627 3232 1627 3234 1626 3236 1627 3239 1626 3239 1626 3240 1626 3241 1626 3242 1627 3244 1627 3247 1628 3247 1628 3248 1629 3246 1629 3246 1629 3246 1629 3245 1629 3244 1630 3243 1630 3243 1630 3238 1632 3237 1632 3236 1632 3235 1632 3234 1632 3232 1633 3231 1633 3231 1634 3231 1635 3230 1636 3228 1637 3228 1637 3227 1638 3227 1638" />
+<path id="er" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3547 2344 3547 2344 3549 2346 3549 2346 3549 2345 3549 2344 3549 2344 3549 2344 3549 2345 3550 2346 3551 2346 3551 2348 3551 2348 3551 2349 3552 2351 3553 2352 3554 2352 3555 2352 3557 2354 3558 2354 3558 2356 3558 2357 3559 2357 3560 2358 3561 2358 3561 2358 3562 2358 3562 2357 3563 2358 3563 2358 3564 2359 3564 2360 3561 2361 3559 2362 3559 2363 3559 2364 3558 2365 3557 2365 3556 2364 3556 2364 3555 2363 3554 2363 3554 2363 3554 2362 3553 2362 3552 2363 3552 2363 3551 2362 3551 2362 3551 2362 3551 2361 3550 2360 3549 2359 3549 2359 3548 2358 3548 2358 3547 2358 3547 2358 3547 2358 3546 2357 3546 2357 3545 2357 3545 2357 3545 2356 3544 2356 3543 2353 3543 2353 3543 2352 3543 2352 3542 2351 3542 2351 3540 2349 3539 2349 3539 2349 3539 2349 3538 2348 3537 2347 3534 2345 3533 2345 3533 2344 3532 2343 3532 2342 3531 2342 3531 2341 3531 2340 3530 2340 3529 2338 3528 2338 3527 2336 3526 2336 3526 2336 3525 2336 3524 2336 3524 2336 3523 2336 3523 2335 3521 2335 3521 2334 3520 2334 3519 2333 3519 2333 3519 2332 3518 2332 3518 2332 3517 2332 3516 2331 3516 2331 3514 2332 3513 2332 3512 2332 3512 2332 3512 2331 3510 2331 3510 2331 3510 2331 3509 2331 3508 2331 3506 2330 3506 2331 3504 2331 3502 2331 3501 2331 3501 2330 3501 2330 3500 2329 3500 2329 3500 2329 3499 2329 3498 2328 3498 2329 3497 2330 3496 2331 3495 2331 3491 2332 3489 2332 3487 2331 3487 2329 3486 2328 3486 2328 3485 2328 3484 2328 3483 2327 3482 2327 3482 2326 3482 2326 3481 2326 3481 2325 3481 2325 3479 2327 3477 2333 3475 2337 3474 2337 3473 2335 3472 2333 3471 2332 3471 2332 3469 2332 3468 2332 3468 2333 3467 2333 3467 2333 3467 2334 3467 2334 3466 2335 3465 2334 3464 2334 3463 2334 3462 2334 3460 2334 3459 2334 3459 2335 3459 2334 3458 2332 3457 2322 3457 2321 3458 2320 3459 2319 3459 2318 3460 2316 3460 2315 3461 2312 3461 2311 3462 2310 3463 2307 3464 2305 3465 2303 3465 2303 3466 2302 3465 2300 3465 2300 3464 2299 3464 2299 3464 2298 3465 2297 3465 2296 3466 2296 3466 2295 3466 2294 3466 2291 3466 2290 3466 2290 3468 2290 3468 2291 3470 2291 3472 2290 3473 2290 3474 2289 3474 2288 3474 2287 3474 2287 3474 2286 3475 2285 3476 2285 3478 2285 3480 2284 3481 2284 3481 2283 3482 2282 3483 2282 3483 2282 3484 2283 3486 2282 3488 2280 3489 2277 3489 2277 3490 2276 3492 2275 3492 2276 3493 2277 3493 2279 3494 2279 3495 2281 3496 2284 3497 2285 3498 2288 3499 2290 3499 2293 3500 2294 3500 2295 3500 2296 3500 2297 3500 2298 3501 2298 3501 2299 3501 2300 3501 2301 3501 2301 3501 2301 3501 2302 3501 2303 3501 2304 3502 2305 3502 2307 3503 2309 3504 2309 3505 2311 3505 2313 3505 2313 3505 2315 3506 2315 3506 2315 3507 2314 3507 2314 3507 2315 3508 2315 3509 2318 3509 2319 3509 2320 3509 2320 3509 2321 3509 2322 3510 2322 3510 2322 3511 2322 3512 2320 3511 2319 3511 2318 3511 2319 3510 2317 3511 2316 3511 2315 3512 2315 3514 2317 3515 2318 3514 2319 3515 2320 3515 2320 3516 2323 3516 2323 3517 2323 3519 2324 3519 2324 3520 2323 3521 2323 3521 2323 3523 2324 3525 2324 3526 2326 3526 2326 3527 2328 3527 2327 3528 2327 3533 2329 3535 2331 3536 2333 3537 2335 3538 2336 3540 2338 3540 2339 3540 2339 3541 2340 3541 2340 3543 2341 3544 2341 3545 2341 3546 2342 3547 2343 3547 2344 M 3514 2309 3514 2309 3515 2309 3516 2310 3516 2311 3516 2311 3516 2311 3516 2312 3516 2312 3516 2312 3517 2313 3518 2313 3518 2312 3518 2312 3517 2312 3517 2312 3518 2312 3518 2312 3518 2312 3518 2312 3519 2312 3519 2312 3520 2313 3520 2313 3521 2314 3520 2314 3519 2314 3518 2313 3516 2313 3516 2314 3515 2314 3515 2314 3514 2313 3513 2313 3513 2312 3514 2312 3514 2313 3514 2313 3515 2313 3515 2312 3515 2312 3514 2311 3514 2311 3513 2311 3513 2311 3513 2311 3513 2311 3513 2310 3514 2310 3514 2310 3515 2310 3515 2310 3514 2309" />
+<path id="sv" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1438 2344 1438 2344 1436 2343 1436 2342 1436 2342 1436 2341 1437 2340 1439 2338 1440 2338 1440 2338 1442 2338 1442 2338 1442 2337 1442 2337 1443 2336 1443 2336 1443 2336 1444 2336 1444 2336 1445 2335 1445 2334 1444 2334 1444 2334 1444 2333 1444 2332 1445 2332 1446 2332 1447 2332 1448 2332 1448 2332 1448 2332 1449 2332 1450 2333 1451 2333 1452 2334 1453 2334 1453 2334 1454 2335 1454 2335 1454 2335 1454 2336 1455 2336 1455 2336 1455 2336 1456 2336 1456 2337 1456 2337 1456 2337 1457 2337 1457 2337 1457 2337 1458 2337 1458 2337 1458 2338 1459 2339 1459 2339 1461 2339 1462 2339 1461 2340 1462 2341 1462 2341 1463 2341 1463 2341 1463 2341 1464 2341 1464 2341 1464 2341 1465 2340 1466 2340 1466 2339 1467 2339 1467 2339 1468 2339 1469 2340 1469 2341 1470 2341 1470 2341 1471 2341 1471 2341 1473 2341 1473 2341 1474 2342 1474 2342 1474 2342 1474 2343 1473 2346 1473 2346 1473 2347 1474 2347 1474 2347 1474 2347 1473 2348 1472 2348 1472 2348 1472 2349 1472 2349 1472 2349 1472 2350 1473 2350 1473 2351 1472 2351 1470 2352 1470 2352 1469 2352 1468 2352 1468 2352 1467 2352 1466 2352 1466 2352 1463 2352 1462 2351 1461 2350 1460 2350 1458 2351 1459 2351 1460 2351 1460 2351 1461 2352 1461 2352 1460 2351 1459 2351 1458 2351 1457 2351 1456 2351 1456 2351 1456 2350 1455 2350 1454 2349 1452 2348 1451 2348 1451 2348 1451 2348 1450 2348 1449 2347 1447 2347 1446 2347 1444 2347 1443 2346 1443 2346 1441 2346 1440 2346 1440 2346 1440 2345 1439 2345 1439 2344 1438 2344" />
+<path id="et" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3602 2475 3600 2477 3595 2482 3594 2483 3594 2483 3593 2484 3586 2484 3585 2484 3582 2484 3581 2483 3579 2483 3577 2483 3577 2483 3577 2484 3576 2484 3575 2484 3575 2484 3575 2484 3574 2484 3574 2484 3573 2484 3571 2485 3571 2485 3570 2485 3568 2486 3567 2487 3565 2488 3564 2488 3563 2489 3562 2490 3561 2491 3561 2491 3561 2491 3561 2492 3561 2493 3560 2494 3560 2494 3559 2494 3558 2494 3558 2494 3557 2494 3556 2494 3556 2494 3554 2495 3552 2495 3552 2495 3550 2495 3550 2495 3549 2495 3548 2495 3548 2496 3547 2496 3547 2496 3546 2496 3545 2497 3545 2498 3545 2498 3544 2499 3544 2499 3543 2499 3543 2499 3542 2499 3541 2499 3540 2499 3538 2499 3538 2499 3537 2499 3534 2500 3533 2500 3532 2499 3532 2499 3532 2499 3531 2499 3531 2498 3531 2498 3530 2497 3528 2495 3528 2495 3526 2494 3525 2495 3520 2497 3520 2497 3517 2498 3514 2500 3512 2501 3510 2504 3507 2507 3507 2508 3506 2508 3506 2508 3506 2507 3505 2507 3505 2507 3503 2507 3503 2507 3503 2507 3503 2507 3502 2507 3501 2507 3500 2506 3499 2506 3499 2506 3497 2506 3497 2506 3495 2506 3494 2506 3492 2505 3490 2505 3489 2505 3487 2505 3484 2505 3483 2504 3482 2503 3482 2503 3470 2496 3468 2494 3468 2493 3467 2493 3464 2492 3461 2492 3461 2492 3460 2491 3457 2492 3454 2492 3453 2491 3451 2491 3449 2490 3449 2489 3449 2488 3446 2486 3446 2481 3447 2481 3447 2480 3447 2480 3447 2479 3447 2479 3447 2478 3447 2477 3447 2477 3446 2477 3446 2477 3446 2477 3442 2476 3442 2476 3441 2476 3441 2476 3440 2477 3439 2477 3439 2477 3438 2476 3438 2475 3439 2475 3439 2475 3436 2473 3436 2472 3434 2470 3434 2469 3434 2467 3434 2466 3434 2466 3434 2465 3433 2465 3433 2465 3432 2463 3432 2462 3432 2462 3432 2461 3430 2457 3429 2456 3429 2455 3429 2455 3428 2455 3428 2455 3427 2455 3427 2455 3426 2453 3426 2452 3425 2452 3424 2451 3423 2451 3423 2451 3423 2451 3422 2450 3422 2450 3421 2449 3421 2448 3420 2448 3418 2447 3419 2446 3419 2446 3418 2445 3416 2442 3413 2440 3412 2440 3410 2439 3409 2439 3406 2438 3404 2438 3403 2438 3402 2437 3402 2437 3402 2436 3403 2435 3404 2433 3405 2433 3405 2432 3405 2431 3405 2430 3405 2429 3405 2428 3406 2427 3407 2427 3408 2428 3410 2427 3412 2427 3413 2428 3413 2428 3414 2429 3414 2429 3415 2429 3415 2428 3416 2428 3416 2428 3417 2428 3418 2428 3418 2427 3419 2426 3420 2426 3420 2425 3420 2425 3420 2425 3420 2422 3420 2419 3420 2413 3420 2412 3420 2412 3420 2411 3419 2410 3420 2407 3421 2404 3422 2403 3422 2402 3423 2401 3424 2399 3424 2398 3423 2397 3423 2394 3423 2393 3424 2393 3425 2390 3428 2389 3429 2389 3429 2390 3430 2391 3431 2391 3432 2391 3434 2389 3434 2388 3433 2387 3434 2385 3434 2384 3434 2384 3434 2383 3434 2383 3433 2383 3434 2382 3434 2382 3434 2381 3434 2381 3435 2378 3436 2378 3435 2377 3435 2377 3435 2376 3435 2375 3435 2375 3435 2374 3436 2373 3436 2373 3436 2373 3437 2373 3437 2373 3438 2372 3438 2372 3438 2372 3439 2371 3440 2368 3444 2361 3445 2361 3445 2361 3445 2360 3449 2359 3450 2359 3451 2359 3451 2359 3451 2360 3452 2360 3452 2359 3453 2357 3452 2356 3452 2356 3452 2355 3453 2355 3453 2354 3454 2349 3456 2347 3456 2347 3456 2346 3457 2345 3457 2345 3457 2345 3457 2344 3457 2344 3458 2342 3458 2341 3457 2340 3459 2335 3459 2335 3459 2334 3460 2334 3462 2334 3463 2334 3464 2334 3465 2334 3466 2335 3467 2334 3467 2334 3467 2333 3467 2333 3468 2333 3468 2332 3469 2332 3471 2332 3471 2332 3472 2333 3473 2335 3474 2337 3475 2337 3477 2333 3479 2327 3481 2325 3481 2325 3481 2326 3482 2326 3482 2326 3482 2327 3483 2327 3484 2328 3485 2328 3486 2328 3486 2328 3487 2329 3487 2331 3489 2332 3491 2332 3495 2331 3496 2331 3497 2330 3498 2329 3498 2328 3499 2329 3500 2329 3500 2329 3500 2329 3501 2330 3501 2330 3501 2331 3502 2331 3504 2331 3506 2331 3506 2330 3508 2331 3509 2331 3510 2331 3510 2331 3510 2331 3512 2331 3512 2332 3512 2332 3513 2332 3514 2332 3516 2331 3516 2331 3517 2332 3518 2332 3518 2332 3519 2332 3519 2333 3519 2333 3520 2334 3521 2334 3521 2335 3523 2335 3523 2336 3524 2336 3524 2336 3525 2336 3526 2336 3526 2336 3527 2336 3528 2338 3529 2338 3530 2340 3531 2340 3531 2341 3531 2342 3532 2342 3532 2343 3533 2344 3533 2345 3534 2345 3537 2347 3538 2348 3539 2349 3539 2349 3539 2349 3540 2349 3542 2351 3542 2351 3543 2352 3543 2352 3543 2353 3543 2353 3544 2356 3545 2356 3545 2357 3545 2357 3546 2357 3546 2357 3547 2358 3547 2358 3547 2358 3548 2358 3548 2358 3549 2359 3549 2359 3550 2360 3551 2361 3551 2362 3551 2362 3551 2362 3552 2363 3552 2363 3552 2364 3551 2364 3551 2365 3551 2366 3551 2366 3550 2367 3549 2369 3548 2369 3547 2371 3546 2372 3545 2374 3544 2374 3543 2375 3543 2377 3542 2379 3543 2381 3543 2383 3543 2384 3543 2385 3543 2386 3542 2387 3543 2387 3543 2387 3544 2387 3545 2388 3545 2388 3546 2388 3546 2388 3547 2387 3548 2387 3549 2387 3551 2387 3552 2386 3554 2386 3556 2385 3556 2385 3558 2386 3558 2386 3558 2386 3558 2387 3559 2387 3560 2387 3561 2387 3560 2388 3559 2389 3559 2389 3558 2390 3556 2393 3557 2393 3557 2394 3557 2395 3558 2395 3558 2396 3559 2396 3559 2397 3559 2397 3559 2398 3559 2399 3560 2400 3560 2400 3561 2400 3561 2401 3561 2401 3562 2401 3562 2402 3562 2403 3563 2403 3563 2404 3563 2404 3564 2404 3564 2404 3565 2404 3565 2404 3565 2405 3566 2406 3566 2407 3566 2408 3566 2408 3566 2408 3566 2409 3567 2409 3567 2409 3568 2410 3569 2411 3569 2411 3569 2412 3569 2412 3571 2413 3571 2413 3572 2413 3573 2415 3578 2419 3588 2422 3594 2424 3597 2425 3600 2426 3604 2427 3611 2430 3615 2431 3619 2432 3622 2434 3626 2435 3626 2435 3627 2435 3635 2435 3638 2435 3639 2435 3640 2435 3641 2435 3641 2435 3640 2436 3638 2438 3636 2440 3635 2441 3626 2450 3619 2457 3612 2464 3610 2466 3609 2467 3605 2471 3602 2475" />
+<path id="cz" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3165 1778 3165 1778 3164 1779 3164 1779 3161 1780 3160 1781 3159 1782 3158 1782 3157 1782 3157 1782 3155 1782 3153 1783 3153 1783 3152 1782 3150 1782 3150 1782 3148 1783 3147 1784 3147 1784 3146 1785 3146 1786 3145 1785 3145 1784 3144 1784 3144 1784 3143 1784 3142 1784 3141 1783 3139 1783 3138 1783 3137 1783 3137 1784 3137 1784 3136 1784 3132 1784 3132 1784 3132 1784 3131 1783 3130 1783 3128 1782 3127 1782 3126 1782 3124 1781 3124 1781 3123 1781 3123 1781 3122 1781 3121 1780 3120 1780 3119 1780 3117 1780 3116 1780 3115 1780 3115 1780 3114 1780 3114 1781 3114 1783 3113 1783 3112 1783 3112 1783 3110 1785 3110 1785 3110 1786 3110 1786 3110 1787 3109 1786 3108 1786 3107 1786 3106 1786 3105 1786 3103 1787 3102 1786 3099 1785 3099 1784 3097 1784 3096 1784 3096 1783 3096 1783 3096 1783 3095 1783 3095 1782 3095 1782 3094 1782 3094 1782 3093 1782 3093 1781 3093 1781 3092 1781 3092 1780 3091 1780 3089 1780 3089 1779 3088 1778 3085 1777 3083 1775 3082 1775 3081 1774 3079 1774 3077 1773 3076 1771 3076 1771 3076 1770 3075 1769 3074 1769 3074 1769 3074 1767 3075 1765 3075 1764 3074 1764 3074 1764 3072 1763 3071 1763 3070 1762 3070 1762 3070 1761 3069 1759 3068 1759 3070 1759 3071 1760 3072 1761 3072 1760 3073 1759 3074 1758 3075 1758 3077 1757 3077 1757 3078 1757 3079 1757 3080 1757 3080 1757 3081 1757 3081 1757 3082 1757 3082 1757 3083 1757 3083 1757 3084 1756 3086 1756 3086 1756 3086 1755 3087 1754 3089 1754 3089 1754 3090 1754 3090 1754 3091 1754 3091 1753 3091 1753 3092 1753 3093 1752 3093 1752 3094 1752 3097 1752 3097 1751 3098 1751 3101 1750 3104 1750 3104 1749 3104 1749 3103 1748 3103 1747 3104 1747 3106 1747 3108 1748 3108 1748 3109 1749 3109 1750 3109 1750 3109 1750 3110 1751 3110 1751 3111 1751 3111 1751 3112 1750 3112 1750 3114 1750 3115 1750 3115 1749 3115 1748 3117 1748 3118 1748 3119 1748 3119 1749 3119 1749 3119 1750 3120 1750 3120 1750 3121 1751 3122 1751 3124 1752 3127 1752 3130 1753 3131 1754 3132 1754 3132 1753 3133 1753 3134 1753 3136 1753 3136 1754 3137 1754 3138 1755 3137 1756 3136 1756 3136 1756 3134 1757 3134 1757 3135 1758 3135 1758 3136 1758 3138 1759 3138 1759 3139 1760 3140 1761 3140 1761 3140 1762 3140 1762 3141 1762 3142 1762 3143 1762 3143 1761 3144 1761 3144 1761 3145 1760 3146 1760 3147 1760 3146 1759 3146 1758 3144 1757 3145 1757 3145 1757 3146 1757 3147 1757 3148 1758 3150 1758 3150 1758 3151 1759 3153 1759 3153 1760 3157 1760 3157 1760 3158 1759 3158 1759 3158 1759 3159 1759 3159 1760 3159 1761 3158 1761 3157 1761 3156 1761 3157 1762 3160 1764 3161 1764 3161 1764 3163 1764 3163 1763 3164 1763 3167 1765 3168 1765 3171 1765 3172 1765 3172 1767 3173 1768 3175 1769 3175 1769 3176 1770 3176 1771 3176 1771 3176 1772 3175 1772 3173 1772 3172 1772 3171 1772 3169 1775 3167 1775 3167 1775 3166 1775 3165 1776 3165 1777 3165 1777 3165 1778" />
+<path id="gf" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2003 2525 2005 2525 2006 2524 2007 2523 2007 2522 2007 2521 2007 2521 2008 2519 2009 2518 2009 2518 2009 2518 2010 2515 2010 2514 2009 2513 2009 2513 2009 2512 2010 2511 2011 2510 2011 2510 2011 2510 2012 2507 2013 2505 2013 2505 2010 2502 2010 2502 2009 2502 2008 2500 2007 2498 2007 2496 2006 2495 2006 2493 2005 2492 2005 2490 2005 2490 2006 2490 2006 2489 2005 2488 2005 2487 2005 2487 2005 2485 2005 2483 2005 2482 2006 2481 2006 2481 2007 2480 2007 2479 2008 2479 2009 2478 2009 2478 2010 2477 2010 2477 2010 2477 2011 2476 2011 2476 2012 2476 2012 2474 2012 2473 2012 2473 2012 2472 2013 2472 2013 2472 2013 2471 2014 2471 2015 2471 2016 2471 2018 2472 2020 2473 2020 2473 2021 2473 2021 2474 2022 2474 2024 2474 2025 2475 2027 2475 2029 2475 2029 2475 2030 2476 2032 2477 2032 2477 2033 2478 2035 2481 2035 2481 2038 2483 2039 2483 2040 2484 2043 2487 2044 2488 2044 2488 2045 2489 2045 2489 2045 2491 2045 2491 2045 2492 2045 2492 2044 2493 2044 2493 2044 2493 2045 2493 2045 2493 2046 2492 2046 2492 2046 2491 2046 2491 2046 2490 2046 2490 2046 2489 2046 2488 2046 2488 2047 2488 2048 2489 2048 2490 2048 2491 2048 2491 2048 2491 2049 2492 2049 2494 2049 2494 2050 2495 2050 2495 2050 2495 2050 2496 2050 2496 2050 2497 2050 2498 2049 2498 2049 2498 2049 2498 2048 2499 2048 2499 2048 2499 2048 2500 2047 2501 2046 2502 2046 2502 2045 2503 2045 2504 2045 2505 2043 2507 2042 2509 2041 2511 2040 2511 2040 2511 2039 2512 2039 2512 2039 2513 2039 2514 2038 2515 2038 2516 2037 2518 2036 2519 2036 2521 2036 2521 2036 2522 2035 2522 2035 2523 2034 2525 2032 2526 2030 2527 2030 2527 2029 2528 2029 2528 2028 2528 2027 2527 2027 2527 2027 2527 2025 2527 2025 2527 2025 2526 2024 2525 2023 2525 2023 2525 2023 2525 2021 2526 2020 2527 2017 2526 2017 2525 2017 2525 2016 2525 2016 2525 2014 2526 2014 2527 2014 2527 2011 2529 2007 2528 2005 2527 2004 2526 2004 2526 2004 2526 2003 2525 2003 2525 2003 2525" />
+<path id="fi" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3354 1544 3354 1545 3357 1546 3358 1547 3359 1547 3360 1547 3360 1547 3361 1548 3362 1549 3365 1549 3366 1549 3369 1551 3373 1552 3374 1553 3374 1553 3376 1555 3378 1557 3379 1558 3378 1559 3378 1559 3378 1559 3377 1560 3375 1562 3375 1563 3375 1563 3375 1564 3374 1564 3371 1566 3370 1567 3367 1568 3367 1568 3365 1569 3364 1570 3360 1572 3359 1573 3357 1574 3357 1575 3356 1575 3354 1576 3351 1579 3349 1580 3349 1580 3346 1581 3344 1582 3344 1583 3343 1583 3343 1583 3343 1584 3342 1584 3342 1584 3341 1584 3339 1585 3338 1586 3335 1587 3334 1587 3333 1588 3333 1589 3332 1589 3331 1589 3331 1589 3330 1589 3328 1590 3328 1590 3327 1591 3327 1591 3327 1591 3326 1591 3324 1593 3320 1595 3319 1595 3319 1595 3319 1595 3318 1595 3318 1596 3318 1596 3317 1596 3316 1596 3314 1596 3314 1597 3311 1596 3311 1596 3310 1595 3307 1596 3306 1597 3305 1597 3303 1597 3302 1597 3301 1597 3299 1597 3298 1597 3298 1597 3299 1595 3300 1595 3300 1594 3301 1594 3301 1595 3302 1595 3302 1594 3301 1594 3301 1594 3300 1594 3299 1595 3299 1595 3298 1596 3298 1597 3298 1597 3297 1598 3293 1598 3291 1597 3292 1599 3292 1599 3291 1599 3290 1599 3289 1598 3288 1598 3288 1598 3289 1598 3289 1600 3288 1600 3288 1600 3286 1599 3287 1600 3288 1600 3287 1600 3286 1600 3285 1600 3285 1599 3285 1599 3285 1599 3285 1598 3284 1599 3283 1599 3282 1600 3280 1600 3277 1600 3277 1601 3277 1601 3277 1601 3275 1602 3274 1602 3272 1602 3270 1602 3268 1602 3268 1603 3268 1603 3266 1604 3265 1604 3265 1604 3264 1603 3264 1603 3263 1603 3262 1604 3260 1604 3255 1605 3254 1605 3252 1605 3251 1605 3251 1605 3249 1605 3250 1604 3251 1604 3251 1604 3251 1603 3250 1603 3248 1605 3246 1607 3245 1607 3241 1607 3241 1607 3244 1606 3244 1606 3245 1606 3246 1605 3247 1605 3248 1604 3248 1604 3247 1604 3247 1604 3247 1604 3246 1605 3246 1605 3244 1605 3244 1605 3245 1604 3246 1604 3246 1604 3246 1604 3245 1603 3245 1603 3244 1603 3244 1604 3244 1604 3243 1604 3242 1603 3242 1603 3243 1603 3243 1602 3243 1602 3242 1602 3241 1602 3240 1602 3240 1601 3241 1601 3241 1600 3242 1600 3243 1600 3244 1599 3243 1599 3241 1599 3239 1600 3239 1600 3238 1600 3238 1601 3237 1601 3235 1601 3234 1600 3234 1600 3234 1600 3235 1599 3236 1598 3234 1598 3231 1598 3231 1598 3230 1598 3229 1597 3228 1597 3228 1597 3227 1597 3226 1596 3226 1596 3224 1596 3224 1596 3224 1597 3223 1596 3223 1595 3224 1595 3224 1594 3223 1595 3221 1595 3220 1596 3220 1595 3219 1595 3219 1595 3218 1595 3218 1595 3217 1595 3216 1594 3216 1593 3217 1593 3217 1592 3216 1591 3216 1590 3217 1589 3217 1588 3218 1586 3218 1584 3219 1584 3219 1583 3219 1581 3219 1580 3218 1579 3218 1579 3220 1579 3221 1580 3220 1579 3219 1578 3218 1576 3218 1575 3217 1574 3216 1573 3215 1573 3215 1573 3214 1572 3215 1571 3215 1570 3216 1570 3216 1569 3217 1569 3216 1568 3216 1567 3215 1566 3213 1566 3212 1565 3212 1564 3212 1563 3211 1563 3212 1560 3213 1560 3215 1558 3216 1559 3216 1558 3217 1558 3217 1557 3218 1557 3218 1556 3217 1556 3218 1555 3219 1555 3219 1556 3220 1556 3221 1556 3221 1556 3221 1556 3221 1555 3220 1555 3220 1555 3219 1554 3218 1554 3218 1553 3219 1553 3219 1553 3221 1553 3221 1553 3224 1552 3225 1553 3226 1553 3228 1553 3229 1553 3230 1552 3232 1552 3232 1551 3232 1551 3232 1550 3231 1550 3231 1550 3230 1550 3229 1549 3231 1548 3232 1548 3232 1548 3233 1549 3233 1548 3234 1547 3234 1547 3234 1546 3236 1545 3237 1545 3238 1545 3238 1546 3238 1546 3239 1546 3240 1546 3241 1545 3241 1544 3241 1543 3243 1543 3245 1542 3246 1542 3247 1542 3248 1541 3248 1540 3249 1540 3249 1539 3251 1540 3252 1539 3252 1539 3253 1538 3253 1538 3254 1538 3254 1537 3256 1536 3257 1536 3257 1536 3258 1534 3260 1533 3262 1533 3263 1532 3264 1532 3264 1532 3264 1531 3264 1530 3265 1529 3267 1528 3267 1528 3270 1527 3271 1526 3274 1526 3276 1526 3276 1526 3277 1526 3277 1527 3278 1527 3278 1527 3279 1527 3279 1527 3280 1527 3280 1527 3280 1526 3280 1526 3279 1526 3278 1525 3277 1525 3278 1524 3279 1525 3280 1525 3281 1525 3281 1525 3281 1524 3280 1523 3280 1523 3279 1523 3279 1522 3279 1520 3279 1520 3279 1519 3280 1518 3280 1517 3280 1517 3279 1516 3278 1515 3277 1515 3277 1515 3276 1515 3276 1515 3276 1515 3276 1515 3273 1514 3271 1514 3271 1514 3270 1514 3269 1514 3267 1513 3267 1512 3267 1512 3268 1511 3269 1510 3268 1510 3267 1511 3267 1512 3266 1512 3265 1512 3262 1512 3261 1512 3261 1511 3261 1511 3259 1508 3258 1507 3258 1507 3257 1506 3257 1506 3257 1506 3256 1506 3255 1506 3254 1505 3254 1505 3253 1504 3253 1503 3253 1501 3253 1501 3254 1500 3255 1500 3256 1500 3256 1499 3257 1499 3257 1497 3257 1497 3257 1496 3257 1496 3258 1496 3257 1494 3256 1493 3255 1493 3254 1492 3254 1492 3253 1492 3252 1490 3252 1489 3252 1488 3252 1488 3253 1488 3254 1488 3254 1488 3255 1487 3255 1486 3254 1486 3252 1485 3251 1485 3251 1485 3250 1485 3250 1485 3250 1485 3249 1485 3250 1483 3250 1482 3250 1481 3250 1479 3250 1478 3251 1478 3251 1478 3252 1478 3253 1478 3253 1477 3253 1477 3251 1477 3249 1476 3248 1475 3248 1475 3243 1472 3242 1471 3241 1471 3241 1471 3240 1471 3240 1470 3237 1470 3236 1470 3234 1469 3233 1469 3232 1469 3229 1469 3227 1469 3227 1468 3226 1468 3226 1468 3225 1468 3225 1467 3224 1467 3223 1467 3223 1467 3222 1467 3222 1467 3221 1466 3220 1466 3220 1466 3219 1466 3218 1466 3218 1465 3217 1465 3214 1463 3212 1463 3211 1462 3211 1462 3210 1462 3210 1462 3209 1462 3209 1462 3209 1461 3209 1461 3209 1461 3208 1460 3208 1460 3207 1460 3206 1460 3205 1460 3204 1460 3204 1459 3204 1459 3205 1459 3206 1459 3206 1459 3207 1459 3208 1459 3209 1459 3210 1460 3211 1460 3211 1460 3212 1460 3212 1459 3212 1458 3211 1458 3211 1458 3211 1457 3211 1457 3216 1455 3221 1456 3226 1459 3227 1460 3230 1461 3231 1462 3232 1463 3232 1464 3233 1465 3234 1465 3235 1465 3239 1465 3240 1465 3243 1465 3244 1466 3245 1466 3245 1466 3245 1466 3247 1466 3247 1466 3248 1466 3249 1466 3250 1465 3251 1465 3252 1465 3253 1465 3254 1465 3254 1465 3255 1464 3255 1464 3256 1463 3256 1463 3257 1463 3258 1463 3259 1463 3259 1463 3260 1464 3260 1464 3262 1464 3264 1465 3265 1465 3266 1465 3267 1465 3268 1465 3268 1465 3269 1466 3270 1466 3271 1466 3271 1466 3272 1467 3272 1467 3273 1467 3276 1466 3276 1466 3276 1466 3277 1464 3277 1464 3277 1464 3278 1463 3278 1463 3280 1462 3280 1462 3281 1462 3281 1462 3282 1462 3282 1462 3283 1462 3284 1462 3284 1462 3285 1462 3285 1462 3285 1462 3285 1461 3286 1461 3287 1460 3286 1459 3286 1457 3286 1456 3286 1455 3286 1455 3287 1455 3287 1455 3288 1454 3288 1453 3290 1451 3290 1451 3290 1450 3289 1450 3290 1449 3290 1449 3290 1449 3292 1449 3292 1449 3293 1449 3293 1448 3296 1447 3297 1447 3297 1446 3297 1446 3298 1445 3300 1445 3303 1445 3304 1445 3305 1446 3307 1446 3307 1446 3310 1446 3311 1445 3311 1445 3311 1445 3313 1444 3315 1443 3316 1443 3320 1443 3321 1443 3321 1443 3322 1444 3322 1444 3322 1444 3324 1445 3325 1446 3325 1446 3326 1446 3327 1446 3327 1446 3328 1446 3328 1447 3328 1447 3329 1447 3333 1448 3334 1448 3337 1449 3337 1449 3338 1449 3340 1449 3340 1449 3341 1450 3343 1453 3343 1453 3342 1453 3340 1454 3339 1455 3339 1455 3338 1455 3337 1456 3337 1456 3335 1457 3335 1457 3335 1458 3335 1458 3335 1459 3335 1459 3336 1459 3336 1459 3338 1460 3337 1460 3336 1460 3336 1460 3334 1460 3329 1462 3329 1462 3329 1462 3330 1462 3330 1462 3331 1462 3333 1462 3334 1462 3335 1463 3335 1463 3335 1463 3334 1464 3334 1465 3333 1466 3330 1467 3330 1468 3331 1470 3333 1473 3333 1473 3335 1474 3341 1475 3344 1475 3344 1475 3347 1477 3349 1479 3350 1480 3353 1481 3355 1481 3354 1483 3354 1484 3353 1484 3353 1484 3352 1485 3350 1486 3347 1488 3341 1492 3340 1492 3340 1493 3339 1493 3339 1494 3339 1494 3340 1495 3340 1495 3342 1496 3342 1496 3343 1497 3343 1497 3344 1498 3344 1498 3345 1499 3347 1501 3347 1501 3347 1502 3348 1502 3348 1503 3351 1505 3351 1505 3351 1506 3352 1506 3352 1506 3353 1506 3353 1507 3353 1508 3355 1510 3356 1511 3356 1511 3356 1513 3356 1514 3355 1514 3355 1513 3354 1513 3351 1514 3352 1515 3351 1516 3350 1516 3350 1516 3350 1517 3350 1517 3350 1518 3350 1519 3349 1519 3349 1519 3348 1520 3348 1520 3348 1521 3349 1521 3350 1521 3351 1521 3351 1521 3352 1521 3352 1521 3352 1522 3352 1523 3351 1523 3351 1523 3350 1523 3349 1523 3349 1523 3348 1523 3348 1524 3348 1526 3349 1526 3349 1526 3350 1527 3350 1527 3350 1527 3351 1527 3351 1528 3352 1528 3352 1528 3353 1528 3353 1528 3355 1528 3355 1528 3356 1528 3356 1528 3357 1530 3357 1530 3356 1530 3355 1531 3355 1531 3354 1531 3354 1531 3354 1532 3355 1532 3355 1532 3356 1533 3356 1533 3355 1534 3356 1534 3357 1535 3357 1535 3359 1535 3360 1535 3360 1535 3363 1536 3363 1537 3364 1539 3364 1539 3364 1540 3363 1540 3363 1540 3362 1541 3361 1541 3358 1543 3358 1543 3356 1544 3356 1544 3355 1544 3355 1544 3354 1544 3354 1544 M 3274 1524 3274 1524 3272 1524 3271 1525 3270 1525 3270 1525 3270 1525 3268 1525 3268 1525 3267 1524 3267 1524 3267 1524 3268 1523 3269 1523 3269 1523 3270 1523 3271 1523 3272 1523 3272 1523 3275 1524 3275 1524 3275 1524 3274 1524 M 3240 1544 3240 1544 3239 1544 3239 1544 3238 1544 3238 1544 3237 1544 3237 1543 3238 1543 3239 1542 3240 1542 3240 1542 3241 1542 3241 1543 3241 1543 3241 1543 3240 1543 3240 1544 M 3214 1554 3214 1554 3213 1553 3213 1553 3213 1553 3213 1553 3213 1553 3213 1553 3212 1552 3212 1552 3215 1552 3216 1552 3216 1552 3217 1552 3217 1553 3215 1554 3215 1554 3214 1554 M 3226 1599 3226 1599 3226 1599 3225 1599 3223 1598 3223 1598 3223 1598 3223 1598 3223 1597 3223 1597 3224 1597 3225 1597 3225 1598 3226 1598 3226 1599 3226 1599 3226 1599 M 3194 1603 3193 1603 3193 1603 3193 1603 3193 1603 3193 1603 3192 1603 3192 1603 3192 1603 3191 1603 3190 1603 3190 1602 3190 1602 3189 1600 3190 1599 3191 1599 3191 1600 3191 1600 3191 1601 3191 1601 3193 1600 3193 1600 3193 1599 3193 1599 3193 1599 3192 1599 3192 1599 3192 1599 3191 1599 3191 1598 3192 1598 3192 1598 3192 1598 3193 1598 3196 1599 3199 1600 3198 1601 3197 1602 3196 1601 3196 1601 3196 1601 3196 1600 3195 1599 3195 1599 3195 1599 3195 1599 3193 1601 3193 1601 3194 1601 3194 1601 3195 1602 3195 1603 3195 1603 3195 1603 3194 1603 3194 1603 3194 1603 3194 1603 3194 1603 M 3230 1600 3230 1600 3230 1600 3229 1600 3229 1600 3229 1600 3229 1600 3228 1600 3228 1600 3228 1600 3228 1599 3230 1599 3230 1599 3230 1599 3231 1599 3232 1600 3232 1600 3232 1600 3231 1600 3231 1600 3231 1600 3230 1600 3230 1600 M 3188 1602 3187 1602 3187 1602 3187 1602 3187 1601 3187 1601 3188 1600 3188 1600 3188 1600 3188 1600 3188 1600 3189 1601 3189 1601 3189 1602 3188 1602 3188 1602 M 3236 1604 3236 1604 3236 1604 3235 1604 3235 1604 3234 1604 3234 1603 3233 1602 3233 1602 3233 1601 3234 1601 3234 1601 3234 1601 3236 1601 3237 1601 3238 1601 3240 1601 3240 1601 3240 1602 3240 1603 3238 1604 3237 1604 3237 1604 3236 1604 M 3222 1602 3222 1602 3222 1602 3222 1602 3222 1601 3222 1601 3224 1601 3224 1601 3224 1601 3225 1601 3224 1602 3223 1602 3222 1602 3222 1602 M 3196 1603 3196 1603 3197 1603 3198 1603 3198 1603 3198 1604 3198 1605 3197 1604 3194 1603 3195 1603 3196 1603 3196 1603 3196 1603 M 3243 1606 3243 1606 3241 1606 3241 1606 3241 1606 3240 1606 3240 1605 3239 1605 3239 1605 3240 1605 3240 1605 3240 1605 3241 1605 3242 1605 3242 1605 3243 1605 3243 1605 3243 1606 3243 1606 M 3249 1606 3249 1606 3248 1606 3248 1606 3248 1605 3251 1605 3251 1605 3251 1605 3254 1605 3254 1605 3253 1605 3252 1605 3252 1605 3250 1606 3249 1606" />
+<path id="fj" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5750 2821 5750 2821 5749 2821 5748 2822 5748 2823 5747 2824 5746 2825 5745 2826 5744 2826 5743 2827 5742 2829 5742 2830 5743 2830 5743 2830 5744 2830 5744 2829 5745 2828 5746 2828 5747 2827 5748 2826 5749 2826 5749 2826 5749 2827 5748 2827 5748 2828 5748 2829 5749 2830 5748 2830 5748 2830 5748 2830 5747 2830 5746 2830 5746 2830 5745 2830 5745 2830 5743 2831 5741 2831 5739 2831 5740 2830 5740 2830 5738 2829 5737 2829 5737 2830 5735 2831 5734 2832 5735 2832 5735 2832 5734 2833 5733 2832 5733 2832 5733 2832 5732 2832 5731 2833 5731 2833 5731 2834 5730 2834 5730 2834 5730 2834 5729 2834 5729 2834 5729 2833 5728 2831 5727 2831 5726 2831 5726 2831 5726 2830 5726 2829 5728 2828 5729 2829 5730 2828 5730 2828 5731 2827 5732 2827 5732 2827 5733 2826 5734 2826 5738 2824 5739 2825 5739 2825 5740 2825 5740 2824 5740 2824 5741 2823 5742 2822 5745 2822 5746 2821 5747 2821 5748 2821 5749 2821 5749 2821 5750 2821 5750 2821 M 00 2831 01 2829 01 2829 02 2829 02 2829 02 2829 03 2831 02 2832 01 2832 00 2833 00 2833 00 2833 00 2831 M 5750 2831 5750 2833 5750 2834 5749 2834 5749 2834 5749 2834 5749 2834 5748 2834 5748 2833 5748 2833 5748 2833 5749 2832 5749 2832 5749 2832 5749 2832 5750 2832 5750 2831 M 5722 2853 5722 2853 5721 2853 5721 2854 5721 2854 5718 2854 5717 2854 5716 2854 5712 2853 5710 2852 5710 2853 5707 2852 5707 2851 5706 2850 5706 2849 5706 2848 5707 2848 5708 2847 5709 2846 5709 2845 5708 2845 5708 2844 5710 2842 5712 2841 5715 2840 5715 2840 5716 2841 5717 2841 5720 2840 5721 2839 5721 2839 5721 2839 5722 2839 5722 2839 5722 2840 5723 2840 5723 2841 5724 2842 5728 2844 5728 2845 5728 2845 5728 2847 5728 2848 5729 2850 5729 2851 5729 2851 5729 2851 5727 2852 5727 2852 5727 2851 5724 2852 5724 2852 5722 2852 5722 2853 M 5730 2846 5730 2846 5730 2845 5730 2844 5730 2844 5730 2844 5731 2844 5731 2844 5731 2844 5732 2845 5732 2845 5732 2845 5732 2845 5732 2845 5731 2846 5731 2846 5730 2846 M 5739 2852 5739 2852 5738 2851 5738 2850 5738 2849 5738 2849 5738 2849 5739 2849 5739 2849 5740 2850 5740 2851 5740 2852 5740 2852 5739 2852 M 5720 2869 5719 2869 5719 2868 5718 2869 5718 2869 5717 2868 5717 2868 5718 2868 5719 2867 5721 2866 5721 2866 5723 2865 5724 2865 5724 2865 5726 2865 5726 2866 5726 2866 5726 2866 5726 2866 5725 2867 5725 2867 5724 2867 5723 2867 5723 2866 5723 2866 5723 2866 5721 2867 5721 2867 5721 2867 5720 2868 5720 2869" />
+<path id="fk" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1920 3381 1921 3381 1923 3381 1925 3381 1925 3381 1925 3382 1926 3382 1925 3382 1925 3382 1924 3382 1924 3382 1923 3382 1920 3381 1920 3381 1920 3381 1920 3381 M 1912 3383 1912 3383 1912 3382 1912 3381 1912 3381 1912 3381 1915 3382 1916 3382 1916 3382 1916 3383 1915 3384 1913 3384 1912 3383 1912 3383 1912 3383 M 1927 3399 1927 3398 1923 3396 1921 3395 1924 3392 1924 3391 1928 3389 1929 3389 1931 3388 1932 3388 1932 3389 1932 3390 1933 3390 1933 3390 1933 3390 1932 3388 1931 3387 1930 3386 1931 3385 1931 3386 1932 3386 1932 3386 1932 3386 1933 3385 1932 3385 1931 3385 1931 3384 1933 3384 1935 3383 1934 3382 1935 3382 1937 3382 1937 3382 1939 3382 1939 3382 1940 3382 1941 3382 1942 3382 1943 3383 1943 3384 1943 3384 1942 3384 1941 3384 1941 3383 1941 3383 1940 3384 1940 3385 1941 3385 1942 3386 1943 3386 1943 3386 1944 3387 1945 3387 1945 3387 1946 3387 1946 3386 1945 3386 1944 3385 1943 3385 1944 3384 1945 3383 1945 3383 1949 3383 1950 3383 1950 3383 1951 3383 1952 3385 1952 3386 1952 3386 1951 3386 1950 3386 1950 3386 1949 3386 1949 3385 1949 3385 1948 3385 1946 3386 1947 3386 1948 3387 1948 3387 1949 3386 1951 3387 1952 3387 1952 3387 1953 3388 1951 3389 1949 3389 1948 3389 1947 3389 1945 3389 1945 3389 1945 3390 1946 3390 1945 3390 1945 3390 1943 3390 1943 3390 1944 3390 1944 3390 1945 3390 1942 3391 1942 3391 1939 3391 1936 3391 1934 3391 1934 3390 1934 3390 1934 3390 1933 3390 1933 3391 1934 3391 1935 3392 1937 3392 1938 3392 1939 3393 1938 3394 1938 3395 1937 3394 1936 3394 1935 3394 1935 3394 1934 3395 1933 3394 1932 3393 1930 3393 1929 3393 1928 3393 1928 3393 1929 3393 1929 3393 1930 3394 1931 3394 1932 3395 1932 3397 1931 3397 1930 3396 1929 3396 1928 3396 1927 3395 1925 3395 1926 3396 1926 3397 1927 3397 1927 3398 1927 3399 M 1911 3391 1912 3390 1913 3389 1913 3390 1914 3389 1914 3388 1913 3388 1913 3388 1911 3388 1911 3389 1910 3389 1908 3389 1907 3389 1906 3388 1907 3388 1907 3388 1908 3388 1908 3388 1909 3388 1909 3388 1910 3388 1910 3388 1911 3388 1911 3388 1913 3388 1914 3388 1912 3387 1910 3386 1910 3385 1910 3385 1910 3384 1909 3384 1908 3384 1907 3384 1906 3383 1907 3383 1909 3383 1910 3384 1911 3384 1912 3384 1913 3385 1913 3385 1915 3385 1917 3385 1916 3384 1916 3384 1916 3383 1918 3383 1919 3383 1919 3384 1919 3384 1920 3384 1921 3384 1924 3384 1925 3384 1926 3384 1926 3384 1926 3384 1925 3383 1926 3382 1929 3384 1926 3387 1926 3387 1925 3387 1923 3388 1922 3389 1919 3391 1918 3393 1917 3393 1916 3392 1914 3393 1912 3394 1912 3394 1912 3395 1912 3395 1911 3396 1907 3397 1907 3397 1906 3397 1905 3396 1903 3395 1901 3394 1902 3394 1904 3394 1905 3393 1904 3393 1903 3392 1904 3392 1905 3392 1906 3393 1906 3393 1908 3393 1909 3393 1910 3392 1910 3392 1910 3392 1909 3391 1909 3390 1910 3390 1911 3389 1911 3390 1911 3390 1911 3391 M 1901 3393 1900 3392 1899 3391 1898 3391 1898 3390 1899 3390 1900 3390 1901 3390 1901 3390 1902 3390 1902 3390 1901 3390 1901 3390 1900 3391 1900 3391 1900 3391 1901 3391 1902 3391 1902 3391 1902 3390 1902 3390 1903 3391 1903 3392 1903 3392 1902 3392 1901 3392 1901 3393" />
+<path id="fm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5402 2454 5402 2454 5401 2454 5401 2454 5401 2452 5401 2452 5401 2452 5402 2451 5403 2451 5403 2452 5404 2452 5404 2453 5404 2454 5403 2454 5402 2454 M 5479 2478 5477 2478 5477 2478 5478 2477 5478 2477 5479 2477 5479 2478 5479 2478 5479 2478 5479 2478 5479 2478" />
+<path id="fo" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2771 1570 2771 1569 2770 1569 2770 1569 2770 1569 2770 1568 2770 1568 2770 1567 2770 1567 2771 1567 2771 1567 2771 1567 2771 1568 2772 1568 2773 1568 2773 1568 2773 1569 2771 1570 M 2769 1571 2768 1571 2767 1571 2764 1570 2764 1569 2764 1569 2763 1569 2763 1568 2762 1567 2762 1567 2764 1567 2764 1567 2766 1568 2767 1568 2770 1569 2770 1570 2769 1571 2769 1571 M 2768 1573 2768 1573 2767 1573 2765 1572 2764 1571 2763 1570 2761 1570 2759 1569 2759 1569 2760 1568 2760 1567 2761 1567 2762 1568 2762 1568 2762 1568 2762 1568 2762 1568 2763 1568 2763 1569 2764 1569 2764 1570 2765 1570 2766 1570 2767 1572 2768 1572 2768 1573 2768 1573 2768 1573 M 2760 1572 2760 1572 2760 1571 2760 1571 2759 1571 2759 1572 2758 1571 2757 1571 2756 1570 2756 1570 2760 1570 2761 1570 2762 1571 2763 1571 2762 1571 2762 1571 2761 1572 2760 1572 2760 1572 M 2769 1576 2768 1576 2766 1575 2765 1575 2765 1574 2765 1574 2767 1574 2769 1574 2769 1575 2770 1575 2769 1576 2769 1576 2769 1576 M 2769 1582 2768 1582 2768 1582 2766 1581 2764 1579 2764 1578 2764 1578 2764 1578 2765 1578 2765 1578 2768 1579 2768 1579 2769 1581 2769 1582 2769 1582 2769 1582" />
+<path id="pf" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 636 2706 636 2706 636 2705 635 2705 635 2705 635 2703 635 2703 635 2703 635 2703 635 2703 635 2703 638 2703 638 2704 639 2704 639 2704 639 2704 639 2705 638 2705 637 2705 637 2705 637 2705 636 2705 636 2705 636 2706 M 654 2720 653 2720 653 2720 653 2720 653 2720 652 2719 652 2719 652 2719 652 2718 654 2717 655 2717 655 2718 655 2718 656 2718 657 2718 657 2718 657 2718 658 2718 658 2718 658 2718 658 2718 658 2719 657 2719 657 2719 656 2719 655 2719 655 2719 655 2719 654 2719 654 2719 654 2719 654 2720 M 456 2833 456 2832 456 2832 455 2832 455 2831 455 2830 455 2830 456 2830 456 2830 458 2832 458 2832 457 2832 456 2833 M 481 2843 481 2843 481 2843 480 2842 480 2842 480 2842 480 2842 480 2842 481 2842 482 2841 483 2842 483 2842 482 2842 482 2843 481 2843 M 492 2848 491 2848 491 2848 491 2847 490 2847 489 2846 489 2846 488 2846 488 2846 487 2846 486 2845 485 2844 485 2844 485 2843 485 2843 485 2843 485 2843 486 2842 487 2842 488 2842 489 2842 489 2842 489 2843 490 2843 490 2843 490 2843 490 2844 490 2845 490 2845 490 2845 490 2845 490 2845 491 2846 492 2846 492 2846 492 2846 493 2846 493 2846 493 2847 493 2847 493 2847 493 2848 492 2848 492 2848 492 2848" />
+<path id="fr" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2975 1823 2975 1823 2975 1822 2976 1821 2976 1821 2979 1821 2979 1820 2981 1820 2982 1821 2983 1821 2984 1821 2984 1821 2984 1822 2983 1825 2985 1826 2986 1827 2987 1828 2987 1828 2987 1829 2987 1830 2986 1830 2986 1830 2985 1830 2985 1830 2984 1830 2984 1831 2984 1832 2986 1834 2987 1835 2988 1836 2989 1837 2989 1838 2989 1840 2988 1840 2986 1841 2984 1841 2983 1841 2982 1841 2981 1842 2981 1842 2981 1842 2981 1843 2983 1845 2983 1845 2984 1846 2985 1846 2986 1846 2986 1846 2987 1846 2987 1846 2987 1848 2986 1849 2986 1849 2984 1851 2984 1851 2985 1854 2986 1855 2987 1856 2992 1858 2994 1858 2994 1858 2995 1857 2997 1857 2997 1857 2997 1858 2998 1858 2998 1859 2997 1860 2996 1860 2995 1862 2995 1863 2995 1863 2995 1863 2995 1863 2994 1864 2994 1863 2993 1864 2993 1864 2992 1864 2991 1864 2989 1865 2988 1867 2985 1869 2984 1869 2984 1869 2981 1871 2981 1871 2982 1871 2981 1873 2980 1873 2979 1873 2977 1873 2974 1874 2973 1875 2973 1875 2973 1875 2973 1875 2972 1874 2970 1874 2970 1874 2969 1875 2968 1875 2967 1874 2968 1874 2966 1873 2963 1872 2961 1872 2961 1872 2961 1872 2961 1871 2961 1870 2960 1870 2960 1870 2959 1870 2958 1870 2956 1870 2955 1870 2956 1869 2956 1869 2957 1869 2958 1869 2959 1868 2959 1868 2955 1867 2955 1867 2955 1868 2956 1868 2955 1869 2955 1869 2955 1869 2954 1869 2954 1869 2953 1869 2953 1869 2952 1869 2952 1869 2951 1869 2951 1869 2951 1868 2951 1867 2950 1867 2951 1869 2951 1869 2951 1870 2949 1870 2949 1870 2948 1870 2948 1870 2948 1869 2948 1869 2947 1868 2947 1868 2946 1868 2946 1868 2946 1868 2944 1868 2944 1868 2943 1868 2943 1868 2943 1868 2944 1868 2942 1868 2941 1868 2941 1868 2941 1867 2941 1867 2940 1867 2938 1867 2938 1867 2936 1868 2934 1869 2932 1871 2930 1871 2928 1871 2928 1872 2927 1872 2925 1873 2924 1875 2924 1875 2924 1876 2923 1878 2922 1878 2922 1879 2923 1879 2923 1879 2924 1880 2924 1882 2924 1883 2925 1883 2925 1883 2925 1884 2926 1885 2926 1885 2926 1885 2925 1885 2924 1885 2924 1884 2922 1884 2919 1885 2918 1885 2917 1886 2918 1886 2915 1886 2915 1886 2914 1886 2912 1885 2911 1885 2909 1885 2909 1885 2908 1886 2908 1886 2907 1886 2907 1886 2907 1886 2906 1885 2905 1885 2905 1884 2903 1884 2903 1884 2903 1883 2903 1883 2903 1883 2903 1883 2903 1882 2902 1882 2900 1881 2899 1881 2898 1882 2898 1881 2897 1881 2897 1880 2896 1880 2894 1880 2893 1880 2893 1879 2892 1879 2889 1879 2888 1878 2886 1878 2886 1878 2886 1878 2885 1879 2886 1880 2886 1880 2886 1880 2886 1881 2886 1881 2885 1881 2884 1881 2883 1881 2882 1881 2879 1880 2878 1880 2877 1880 2877 1880 2875 1881 2874 1880 2873 1880 2873 1879 2872 1879 2872 1879 2871 1879 2870 1878 2870 1878 2870 1878 2869 1879 2866 1879 2864 1878 2863 1877 2863 1877 2863 1877 2863 1876 2862 1876 2862 1877 2860 1876 2859 1876 2858 1876 2856 1875 2854 1875 2853 1875 2853 1875 2852 1875 2852 1874 2852 1874 2853 1872 2853 1872 2852 1871 2851 1871 2849 1871 2848 1871 2847 1871 2847 1870 2847 1870 2847 1870 2848 1870 2850 1869 2851 1868 2851 1867 2852 1865 2852 1865 2852 1865 2852 1863 2854 1859 2854 1858 2854 1857 2855 1853 2855 1852 2855 1852 2855 1851 2856 1850 2857 1849 2857 1849 2858 1849 2858 1849 2858 1848 2857 1848 2856 1847 2855 1848 2855 1849 2855 1848 2856 1844 2856 1840 2857 1838 2857 1837 2857 1837 2857 1836 2858 1835 2858 1835 2858 1835 2858 1835 2859 1836 2859 1836 2860 1836 2860 1837 2862 1838 2863 1839 2863 1839 2863 1840 2863 1841 2864 1842 2864 1842 2866 1845 2866 1844 2866 1843 2865 1843 2865 1843 2865 1842 2864 1842 2864 1839 2864 1838 2863 1837 2863 1836 2862 1836 2861 1835 2859 1834 2858 1833 2856 1833 2855 1832 2855 1831 2856 1831 2857 1831 2857 1830 2858 1829 2858 1828 2858 1827 2857 1826 2857 1825 2857 1824 2857 1823 2856 1823 2856 1823 2856 1823 2855 1823 2852 1822 2849 1821 2846 1820 2846 1819 2845 1818 2844 1817 2843 1816 2843 1815 2842 1815 2842 1815 2841 1815 2841 1815 2841 1814 2841 1813 2842 1813 2843 1812 2843 1811 2843 1811 2843 1811 2842 1810 2841 1810 2840 1810 2841 1808 2841 1807 2842 1807 2843 1807 2844 1807 2844 1808 2845 1808 2846 1808 2847 1808 2847 1808 2845 1807 2844 1807 2843 1807 2843 1807 2841 1807 2840 1807 2839 1808 2836 1808 2835 1807 2834 1807 2835 1806 2835 1805 2836 1805 2837 1805 2836 1805 2835 1805 2835 1804 2836 1804 2837 1804 2837 1804 2835 1803 2834 1803 2832 1804 2830 1804 2830 1804 2829 1803 2830 1803 2831 1803 2831 1803 2832 1802 2832 1802 2832 1802 2829 1802 2828 1803 2826 1802 2825 1802 2825 1803 2825 1804 2826 1804 2825 1804 2825 1803 2825 1803 2825 1803 2825 1802 2824 1802 2824 1801 2819 1800 2817 1799 2814 1799 2814 1799 2813 1799 2813 1798 2811 1798 2809 1798 2809 1798 2808 1799 2808 1799 2808 1799 2807 1799 2807 1799 2805 1799 2805 1799 2806 1798 2806 1798 2805 1797 2805 1797 2804 1796 2804 1796 2803 1796 2803 1796 2802 1796 2800 1795 2800 1795 2800 1795 2805 1794 2806 1794 2806 1794 2807 1794 2807 1793 2806 1793 2804 1792 2804 1792 2803 1792 2803 1793 2802 1793 2801 1791 2802 1791 2803 1790 2802 1791 2803 1791 2805 1791 2807 1791 2808 1791 2806 1791 2805 1791 2804 1790 2801 1790 2800 1790 2799 1790 2799 1790 2798 1789 2799 1788 2799 1787 2799 1787 2800 1787 2801 1787 2802 1787 2802 1787 2802 1787 2802 1786 2802 1786 2805 1785 2808 1785 2811 1784 2812 1784 2812 1785 2812 1785 2813 1786 2813 1785 2813 1785 2814 1784 2814 1784 2816 1784 2816 1785 2817 1785 2818 1785 2819 1784 2818 1784 2818 1783 2819 1783 2819 1782 2820 1782 2821 1783 2823 1782 2825 1782 2826 1783 2829 1785 2830 1786 2832 1787 2832 1788 2832 1788 2836 1786 2836 1785 2838 1785 2839 1785 2841 1786 2842 1786 2843 1788 2844 1787 2844 1787 2843 1786 2843 1786 2843 1785 2844 1785 2845 1785 2846 1785 2845 1785 2845 1786 2846 1786 2846 1786 2846 1786 2847 1786 2849 1786 2849 1786 2850 1786 2851 1786 2852 1786 2853 1786 2852 1785 2851 1785 2850 1784 2850 1782 2850 1782 2850 1781 2850 1780 2850 1780 2849 1779 2849 1778 2849 1776 2848 1775 2848 1775 2847 1774 2847 1774 2846 1774 2846 1772 2846 1771 2846 1770 2845 1770 2845 1769 2844 1769 2844 1769 2844 1768 2844 1768 2846 1768 2848 1769 2848 1769 2849 1769 2851 1769 2851 1769 2851 1769 2852 1769 2853 1769 2854 1769 2854 1769 2855 1769 2855 1769 2855 1770 2855 1770 2854 1771 2854 1771 2854 1771 2855 1772 2855 1772 2856 1773 2857 1774 2858 1774 2859 1774 2860 1774 2861 1774 2861 1774 2862 1774 2863 1774 2865 1774 2866 1774 2867 1774 2868 1774 2869 1775 2870 1775 2871 1775 2873 1775 2874 1775 2874 1775 2875 1775 2876 1774 2876 1774 2877 1774 2877 1773 2878 1773 2879 1773 2879 1773 2880 1773 2881 1773 2882 1773 2882 1772 2883 1772 2882 1772 2881 1773 2881 1773 2880 1773 2879 1773 2878 1772 2877 1772 2876 1772 2878 1769 2878 1769 2878 1768 2879 1768 2880 1768 2882 1767 2884 1766 2884 1766 2885 1766 2886 1766 2886 1766 2892 1765 2894 1764 2895 1764 2897 1763 2897 1763 2898 1762 2898 1762 2899 1761 2900 1759 2900 1758 2900 1758 2901 1758 2900 1757 2900 1755 2900 1753 2900 1753 2901 1751 2901 1750 2903 1749 2903 1749 2904 1749 2906 1748 2911 1747 2913 1747 2913 1747 2914 1747 2915 1747 2915 1747 2916 1746 2916 1748 2916 1749 2917 1751 2919 1752 2921 1752 2921 1753 2922 1752 2922 1752 2923 1752 2923 1752 2924 1751 2925 1751 2925 1751 2926 1752 2926 1752 2926 1752 2927 1753 2927 1755 2928 1756 2929 1756 2930 1756 2931 1756 2933 1756 2933 1757 2934 1757 2934 1758 2935 1758 2937 1758 2939 1758 2939 1758 2942 1759 2942 1760 2942 1762 2941 1764 2941 1764 2942 1764 2942 1765 2943 1764 2944 1764 2945 1765 2946 1765 2946 1765 2947 1765 2950 1764 2950 1763 2950 1763 2951 1762 2952 1761 2953 1762 2953 1762 2952 1763 2952 1764 2953 1767 2953 1767 2954 1767 2954 1767 2955 1767 2960 1769 2961 1770 2961 1770 2962 1770 2962 1771 2962 1772 2963 1772 2964 1771 2965 1771 2966 1771 2968 1771 2968 1771 2968 1771 2968 1772 2969 1772 2971 1773 2972 1773 2973 1772 2973 1772 2975 1772 2975 1772 2976 1772 2976 1772 2977 1773 2977 1772 2978 1772 2979 1773 2979 1773 2980 1774 2982 1776 2982 1777 2982 1777 2984 1777 2985 1777 2984 1776 2986 1776 2987 1777 2988 1778 2989 1778 2991 1778 2993 1777 2993 1777 2993 1777 2994 1777 2995 1777 2997 1779 2997 1779 2997 1779 2999 1779 3000 1779 3002 1779 3004 1780 3005 1780 3006 1780 3006 1781 3005 1782 3005 1782 3005 1782 3004 1783 3004 1783 3002 1784 3001 1785 3000 1787 2999 1789 2999 1790 2999 1790 2999 1790 2998 1791 2997 1793 2996 1794 2996 1794 2996 1795 2996 1795 2997 1796 2997 1796 2996 1797 2996 1798 2995 1799 2995 1801 2995 1801 2996 1802 2996 1802 2996 1802 2996 1802 2996 1803 2996 1803 2995 1803 2995 1803 2995 1804 2995 1804 2994 1804 2994 1804 2993 1805 2993 1805 2993 1805 2992 1805 2992 1805 2992 1805 2991 1805 2991 1805 2990 1805 2989 1804 2987 1804 2987 1804 2985 1806 2986 1806 2986 1806 2987 1806 2986 1807 2984 1809 2984 1809 2984 1810 2982 1811 2982 1811 2981 1812 2980 1812 2979 1812 2978 1813 2978 1814 2978 1815 2978 1816 2977 1816 2975 1817 2973 1818 2973 1819 2972 1821 2972 1821 2973 1821 2973 1822 2973 1823 2973 1823 2973 1824 2972 1824 2971 1824 2971 1824 2971 1824 2970 1824 2971 1825 2973 1825 2974 1825 2975 1824 2975 1824 2975 1823 M 2818 1783 2818 1783 2818 1783 2818 1783 2818 1783 2818 1783 2818 1783 2818 1783 2818 1783 2818 1783 M 2826 1807 2825 1807 2825 1807 2824 1807 2824 1807 2824 1807 2824 1807 2823 1807 2823 1806 2823 1806 2826 1807 2826 1807 2826 1807 M 2854 1825 2854 1825 2854 1825 2851 1825 2851 1824 2851 1824 2850 1824 2851 1824 2851 1824 2851 1824 2854 1825 2855 1825 2854 1825 M 2856 1831 2855 1830 2855 1830 2854 1829 2854 1829 2854 1829 2853 1829 2853 1828 2853 1827 2853 1827 2853 1827 2855 1828 2855 1828 2856 1830 2856 1830 2856 1831 2856 1831 M 3013 1892 3015 1891 3014 1890 3013 1890 3012 1890 3012 1889 3012 1888 3013 1888 3013 1888 3014 1887 3013 1886 3013 1886 3012 1886 3012 1886 3013 1884 3014 1883 3017 1882 3020 1881 3020 1880 3021 1880 3021 1880 3023 1880 3023 1881 3023 1881 3024 1881 3024 1880 3024 1879 3024 1878 3024 1876 3025 1876 3025 1876 3026 1876 3027 1879 3026 1879 3026 1880 3026 1881 3026 1881 3026 1882 3027 1883 3027 1882 3026 1882 3026 1881 3027 1882 3027 1882 3027 1883 3027 1883 3028 1887 3028 1889 3028 1890 3026 1892 3026 1892 3025 1893 3025 1894 3025 1894 3025 1894 3025 1896 3025 1897 3024 1898 3023 1899 3023 1900 3023 1901 3022 1902 3022 1902 3021 1901 3021 1901 3018 1900 3018 1900 3017 1900 3015 1899 3015 1898 3016 1898 3017 1897 3017 1897 3017 1896 3016 1896 3016 1896 3014 1896 3014 1896 3015 1895 3015 1894 3016 1893 3015 1893 3015 1893 3014 1893 3013 1893 3013 1893 3012 1892 3013 1892 3013 1892 3013 1892 3013 1892" />
+<path id="crozet-kerguelen" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3702 3305 3701 3304 3701 3304 3700 3304 3700 3303 3700 3303 3701 3302 3702 3302 3702 3303 3703 3303 3703 3304 3703 3304 3703 3304 3703 3304 3702 3305 M 3709 3305 3708 3305 3707 3304 3707 3304 3707 3304 3707 3304 3708 3303 3708 3303 3709 3303 3710 3303 3710 3303 3710 3304 3710 3304 3710 3304 3710 3305 3709 3305 M 3981 3347 3981 3347 3982 3347 3982 3347 3983 3346 3984 3346 3986 3344 3986 3344 3987 3345 3988 3346 3987 3347 3986 3347 3985 3347 3985 3347 3984 3347 3983 3347 3982 3348 3983 3348 3985 3348 3984 3349 3985 3350 3986 3350 3987 3350 3988 3350 3991 3349 3991 3349 3992 3348 3992 3348 3994 3347 3994 3347 3995 3347 3997 3347 3997 3346 3998 3346 3998 3346 4000 3346 4000 3346 4001 3347 4002 3349 4002 3349 4002 3350 4001 3350 4001 3351 4000 3351 4000 3351 3999 3351 3999 3351 3999 3351 3998 3351 3998 3352 3999 3352 4000 3352 4000 3352 4000 3352 4000 3352 4000 3352 3999 3352 3998 3352 3998 3352 3998 3352 3997 3351 3996 3351 3996 3351 3995 3351 3995 3351 3994 3351 3994 3351 3993 3351 3992 3351 3992 3351 3990 3351 3991 3351 3991 3351 3992 3351 3992 3352 3991 3352 3991 3352 3990 3351 3989 3351 3990 3353 3990 3353 3990 3353 3991 3354 3993 3355 3994 3354 3994 3354 3995 3353 3996 3353 3998 3354 3998 3354 3998 3355 3998 3356 3997 3356 3994 3356 3991 3356 3991 3356 3990 3355 3990 3354 3989 3354 3987 3353 3988 3354 3988 3354 3989 3354 3989 3355 3988 3356 3987 3356 3985 3355 3984 3355 3983 3354 3981 3353 3978 3354 3978 3354 3979 3355 3979 3355 3979 3356 3978 3356 3977 3357 3977 3357 3976 3357 3974 3357 3973 3356 3973 3355 3974 3354 3975 3353 3974 3353 3975 3352 3974 3351 3973 3349 3973 3346 3974 3343 3975 3342 3976 3341 3976 3341 3976 3340 3978 3340 3978 3340 3978 3340 3978 3341 3977 3342 3976 3343 3978 3342 3979 3342 3979 3341 3980 3341 3980 3341 3980 3342 3980 3342 3980 3343 3979 3343 3978 3344 3977 3346 3977 3347 3978 3347 3978 3347 3978 3346 3979 3345 3979 3345 3980 3345 3981 3347 M 3981 3347 3980 3347 3980 3345 3981 3345 3981 3344 3982 3344 3983 3343 3983 3343 3984 3344 3984 3344 3982 3346 3981 3347 3981 3347" />
+<path id="gm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2631 2347 2631 2347 2630 2348 2630 2348 2629 2347 2628 2347 2627 2346 2625 2347 2624 2347 2622 2348 2618 2348 2618 2348 2617 2348 2616 2348 2616 2348 2615 2349 2614 2349 2613 2350 2612 2349 2611 2349 2611 2349 2611 2348 2611 2346 2610 2345 2617 2345 2618 2345 2621 2345 2625 2345 2626 2345 2628 2345 2628 2345 2628 2344 2628 2344 2628 2343 2629 2343 2630 2342 2630 2342 2631 2342 2631 2343 2631 2343 2632 2343 2633 2342 2634 2342 2637 2342 2637 2342 2638 2342 2638 2342 2638 2343 2638 2343 2639 2344 2639 2344 2639 2344 2640 2345 2640 2345 2641 2344 2641 2344 2641 2344 2642 2344 2642 2344 2643 2344 2643 2345 2644 2345 2644 2346 2644 2346 2644 2346 2645 2347 2645 2347 2645 2347 2646 2348 2648 2347 2648 2347 2648 2347 2649 2346 2650 2346 2652 2346 2653 2346 2653 2346 2653 2347 2654 2347 2654 2347 2655 2348 2655 2348 2655 2349 2654 2349 2654 2350 2654 2350 2653 2350 2652 2350 2651 2350 2650 2350 2649 2351 2649 2351 2648 2351 2648 2351 2646 2351 2645 2351 2643 2350 2643 2349 2641 2349 2640 2349 2640 2349 2640 2349 2639 2348 2639 2348 2638 2348 2637 2348 2636 2347 2636 2347 2636 2347 2635 2346 2634 2346 2634 2345 2633 2345 2633 2346 2632 2346 2632 2347 2632 2347 2632 2348 2632 2348 2631 2349 2631 2349 2631 2349 2630 2349 2630 2349 2629 2349 2623 2349 2622 2351 2622 2352 2622 2352 2621 2352 2619 2352 2610 2352 2608 2352 2607 2354 2607 2353 2606 2350 2606 2350 2606 2349 2607 2349 2608 2348 2608 2348 2608 2347 2609 2347 2610 2347 2610 2347 2610 2347 2610 2348 2610 2348 2610 2348 2610 2348 2610 2348 2610 2349 2610 2350 2611 2350 2613 2351 2613 2350 2615 2350 2616 2350 2616 2351 2616 2351 2617 2351 2617 2350 2617 2350 2616 2351 2616 2350 2616 2349 2616 2349 2617 2348 2617 2348 2618 2348 2619 2348 2623 2348 2625 2348 2627 2347 2628 2347 2629 2348 2630 2348 2630 2348 2631 2348 2631 2347 2631 2347" />
+<path id="ga" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3083 2600 3083 2599 3083 2599 3083 2598 3082 2597 3082 2597 3081 2597 3080 2594 3080 2594 3080 2593 3079 2593 3079 2593 3078 2592 3077 2592 3076 2592 3075 2593 3075 2593 3074 2593 3074 2592 3074 2593 3074 2593 3074 2595 3074 2596 3075 2597 3075 2598 3074 2600 3068 2601 3067 2601 3067 2601 3067 2600 3066 2600 3066 2600 3063 2600 3063 2601 3062 2601 3062 2601 3061 2600 3060 2600 3060 2600 3060 2602 3061 2603 3061 2604 3061 2605 3060 2606 3060 2606 3060 2607 3059 2607 3059 2607 3059 2608 3060 2608 3060 2608 3061 2608 3063 2610 3064 2611 3063 2611 3062 2611 3062 2611 3062 2612 3062 2613 3063 2614 3063 2614 3063 2614 3066 2615 3066 2616 3066 2616 3066 2616 3065 2617 3065 2617 3064 2619 3064 2620 3065 2620 3065 2620 3065 2621 3065 2621 3065 2622 3064 2622 3063 2621 3061 2621 3061 2620 3060 2619 3060 2619 3059 2619 3059 2619 3056 2621 3054 2621 3053 2624 3053 2625 3053 2625 3051 2624 3051 2623 3050 2622 3050 2622 3050 2622 3050 2621 3050 2621 3048 2619 3048 2619 3047 2618 3046 2618 3045 2616 3045 2615 3044 2615 3043 2613 3042 2612 3040 2610 3038 2609 3037 2609 3036 2607 3035 2607 3035 2606 3034 2606 3034 2606 3033 2605 3031 2602 3030 2602 3031 2602 3031 2602 3032 2602 3032 2602 3034 2604 3034 2604 3035 2605 3037 2604 3037 2603 3036 2602 3035 2603 3034 2603 3034 2603 3033 2602 3033 2601 3032 2601 3031 2602 3031 2602 3030 2601 3029 2601 3029 2601 3029 2600 3028 2600 3028 2599 3028 2599 3028 2598 3028 2597 3027 2597 3027 2596 3026 2596 3026 2595 3025 2595 3024 2593 3024 2593 3026 2593 3026 2594 3027 2595 3027 2596 3028 2595 3028 2595 3027 2593 3026 2592 3025 2592 3024 2592 3024 2592 3023 2592 3023 2591 3023 2591 3023 2590 3022 2588 3022 2588 3022 2587 3022 2587 3021 2586 3020 2585 3020 2584 3019 2584 3019 2583 3019 2582 3019 2583 3019 2583 3019 2584 3020 2584 3021 2585 3022 2587 3023 2589 3025 2589 3025 2589 3025 2589 3026 2588 3026 2588 3027 2588 3027 2588 3026 2587 3026 2587 3025 2587 3024 2588 3024 2588 3023 2588 3023 2586 3023 2586 3024 2585 3024 2584 3024 2584 3024 2583 3024 2583 3024 2584 3024 2584 3024 2585 3022 2585 3022 2585 3019 2584 3019 2583 3019 2583 3019 2582 3019 2581 3017 2579 3016 2576 3015 2575 3014 2573 3014 2572 3014 2572 3015 2572 3015 2573 3015 2573 3017 2574 3018 2575 3019 2575 3020 2573 3020 2573 3020 2572 3021 2572 3021 2571 3021 2571 3022 2571 3023 2569 3024 2568 3024 2568 3024 2567 3024 2567 3024 2566 3024 2566 3024 2565 3024 2565 3024 2564 3024 2564 3024 2563 3024 2563 3024 2563 3024 2562 3024 2561 3024 2560 3024 2558 3024 2557 3024 2557 3025 2557 3025 2559 3026 2560 3027 2560 3028 2560 3030 2560 3031 2561 3031 2560 3033 2560 3032 2560 3032 2560 3031 2560 3031 2560 3030 2559 3028 2558 3028 2558 3027 2558 3026 2557 3026 2556 3025 2555 3025 2555 3024 2554 3024 2554 3024 2554 3024 2553 3024 2553 3027 2552 3027 2552 3028 2552 3028 2553 3028 2553 3028 2554 3028 2555 3028 2555 3029 2554 3029 2553 3029 2550 3029 2549 3028 2549 3028 2547 3028 2547 3028 2546 3030 2546 3031 2546 3031 2546 3032 2546 3032 2546 3033 2547 3033 2547 3034 2548 3034 2547 3035 2546 3035 2546 3035 2546 3038 2546 3039 2546 3039 2546 3040 2546 3041 2546 3043 2546 3043 2546 3047 2546 3049 2546 3050 2546 3055 2546 3056 2546 3056 2539 3056 2537 3056 2535 3056 2535 3056 2533 3056 2532 3056 2531 3056 2530 3056 2528 3056 2528 3056 2527 3057 2526 3060 2526 3062 2526 3063 2526 3070 2526 3071 2526 3072 2525 3074 2526 3075 2526 3075 2526 3076 2526 3077 2527 3079 2527 3080 2527 3083 2526 3085 2526 3085 2526 3087 2526 3087 2527 3087 2528 3087 2528 3087 2529 3087 2530 3086 2531 3086 2532 3086 2533 3086 2533 3086 2534 3085 2534 3085 2535 3085 2537 3085 2538 3086 2538 3086 2539 3086 2540 3087 2540 3087 2541 3086 2542 3086 2542 3085 2543 3086 2543 3086 2543 3087 2543 3088 2543 3088 2542 3090 2542 3092 2542 3095 2540 3095 2540 3097 2540 3098 2540 3100 2541 3100 2540 3100 2540 3101 2540 3102 2540 3102 2541 3103 2541 3103 2542 3103 2543 3104 2545 3105 2547 3106 2548 3106 2548 3106 2549 3104 2553 3103 2554 3102 2554 3101 2554 3101 2554 3100 2554 3100 2554 3098 2557 3097 2559 3097 2559 3097 2561 3098 2562 3098 2563 3097 2564 3096 2565 3096 2565 3096 2566 3097 2567 3098 2566 3098 2566 3100 2567 3101 2567 3101 2568 3101 2568 3101 2569 3102 2570 3102 2570 3104 2569 3105 2570 3106 2571 3106 2571 3107 2572 3107 2573 3107 2574 3106 2574 3105 2577 3105 2578 3105 2579 3106 2581 3106 2582 3106 2583 3106 2585 3106 2587 3106 2588 3105 2588 3105 2592 3105 2593 3105 2593 3105 2593 3105 2593 3104 2593 3104 2593 3103 2594 3103 2595 3103 2595 3103 2596 3102 2599 3102 2600 3102 2600 3101 2601 3101 2602 3100 2602 3100 2602 3097 2602 3097 2602 3096 2601 3097 2599 3096 2597 3095 2596 3094 2597 3094 2597 3094 2598 3092 2600 3092 2600 3091 2601 3090 2601 3089 2601 3088 2601 3087 2600 3086 2600 3083 2600 3083 2600 M 3019 2575 3019 2575 3018 2575 3018 2574 3018 2574 3018 2573 3018 2573 3018 2573 3018 2572 3019 2572 3019 2573 3019 2573 3019 2574 3019 2575 3019 2575 3019 2575" />
+<path id="ge" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3542 1893 3542 1892 3540 1890 3540 1889 3540 1889 3540 1888 3540 1887 3539 1886 3539 1885 3538 1884 3538 1884 3538 1883 3538 1883 3538 1882 3538 1881 3537 1881 3537 1880 3537 1880 3537 1880 3536 1880 3533 1879 3533 1879 3532 1879 3531 1878 3531 1877 3531 1877 3530 1876 3530 1876 3529 1876 3529 1876 3528 1876 3528 1875 3528 1875 3527 1875 3527 1874 3525 1874 3524 1874 3520 1873 3518 1872 3518 1871 3517 1871 3516 1870 3515 1870 3514 1870 3514 1869 3514 1869 3515 1867 3515 1867 3516 1867 3517 1866 3517 1866 3518 1866 3519 1866 3519 1867 3520 1867 3522 1867 3522 1868 3523 1868 3523 1868 3524 1867 3524 1867 3525 1867 3525 1867 3525 1867 3526 1868 3527 1868 3527 1868 3528 1868 3528 1868 3529 1869 3530 1869 3531 1870 3531 1870 3532 1870 3533 1870 3533 1870 3533 1870 3537 1871 3539 1872 3539 1872 3546 1873 3548 1873 3549 1872 3549 1872 3550 1872 3552 1872 3552 1872 3553 1872 3553 1872 3554 1872 3554 1873 3556 1873 3556 1873 3557 1873 3557 1873 3558 1873 3559 1873 3561 1874 3562 1875 3564 1876 3565 1877 3565 1877 3568 1877 3568 1877 3569 1877 3570 1878 3571 1878 3571 1878 3572 1878 3572 1879 3573 1879 3573 1879 3574 1879 3575 1880 3575 1880 3575 1880 3574 1881 3574 1881 3574 1882 3576 1882 3581 1882 3581 1881 3582 1881 3584 1880 3586 1880 3586 1880 3587 1880 3587 1880 3588 1880 3588 1880 3588 1880 3589 1880 3589 1880 3590 1881 3590 1881 3591 1881 3592 1880 3592 1880 3593 1880 3593 1880 3593 1880 3594 1880 3594 1881 3595 1881 3595 1881 3596 1880 3596 1880 3596 1880 3597 1881 3598 1881 3599 1882 3599 1883 3599 1883 3600 1883 3601 1883 3602 1883 3602 1883 3603 1883 3603 1883 3605 1883 3605 1884 3606 1884 3606 1884 3606 1884 3605 1886 3605 1887 3604 1888 3604 1888 3604 1888 3610 1891 3611 1891 3614 1892 3616 1893 3617 1893 3617 1893 3617 1893 3617 1894 3616 1894 3615 1895 3615 1896 3614 1896 3614 1895 3613 1895 3613 1896 3613 1896 3613 1896 3613 1897 3613 1898 3613 1898 3615 1900 3618 1901 3619 1901 3619 1902 3620 1902 3621 1903 3621 1904 3621 1904 3620 1905 3620 1906 3618 1907 3618 1907 3616 1906 3615 1906 3615 1906 3614 1905 3614 1905 3614 1904 3612 1904 3611 1905 3611 1905 3610 1905 3610 1905 3609 1905 3608 1905 3608 1904 3608 1904 3607 1904 3607 1904 3606 1903 3605 1903 3605 1903 3605 1902 3604 1902 3599 1900 3599 1900 3598 1900 3598 1900 3597 1901 3596 1902 3595 1903 3594 1903 3593 1903 3592 1904 3591 1904 3591 1904 3589 1904 3587 1905 3586 1905 3585 1905 3583 1904 3582 1904 3581 1904 3580 1905 3580 1905 3578 1905 3576 1905 3575 1905 3575 1905 3574 1906 3574 1906 3574 1906 3572 1906 3571 1906 3571 1905 3571 1905 3569 1906 3569 1905 3569 1905 3569 1905 3568 1904 3567 1904 3566 1905 3564 1903 3562 1902 3562 1901 3560 1900 3559 1898 3557 1898 3556 1898 3555 1898 3555 1898 3555 1900 3554 1901 3553 1901 3553 1901 3552 1900 3551 1900 3550 1900 3549 1900 3547 1900 3546 1899 3545 1899 3544 1900 3544 1900 3543 1901 3542 1900 3541 1900 3539 1899 3538 1899 3540 1898 3540 1897 3541 1897 3542 1896 3542 1895 3542 1894 3542 1893" />
+<path id="gh" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2880 2466 2881 2466 2881 2466 2882 2466 2882 2466 2883 2466 2883 2466 2884 2467 2884 2467 2885 2468 2885 2469 2885 2469 2886 2471 2882 2470 2881 2470 2881 2470 2881 2470 2880 2470 2879 2471 2877 2471 2876 2472 2876 2473 2874 2473 2872 2474 2871 2474 2870 2475 2869 2475 2868 2476 2867 2477 2866 2477 2866 2477 2865 2477 2864 2478 2864 2478 2863 2478 2862 2479 2861 2479 2859 2480 2858 2479 2858 2480 2857 2480 2856 2480 2856 2481 2856 2481 2855 2481 2854 2481 2852 2482 2850 2482 2850 2482 2850 2482 2849 2482 2847 2484 2844 2486 2842 2487 2842 2487 2841 2487 2839 2485 2839 2484 2838 2484 2837 2484 2837 2484 2836 2484 2835 2483 2834 2483 2834 2483 2831 2483 2830 2482 2829 2482 2827 2482 2826 2482 2826 2481 2825 2481 2825 2481 2826 2481 2827 2481 2828 2481 2831 2481 2831 2481 2831 2480 2831 2480 2831 2479 2831 2478 2831 2477 2831 2476 2831 2473 2830 2473 2830 2473 2829 2473 2829 2473 2828 2473 2828 2473 2827 2471 2827 2469 2826 2467 2826 2465 2826 2464 2825 2463 2824 2463 2824 2462 2824 2462 2824 2460 2823 2458 2823 2457 2823 2456 2824 2456 2824 2455 2823 2454 2825 2451 2826 2450 2827 2450 2828 2447 2828 2444 2828 2441 2829 2439 2830 2439 2831 2437 2831 2436 2833 2434 2833 2433 2834 2432 2835 2432 2835 2431 2834 2424 2834 2423 2834 2422 2834 2422 2833 2422 2833 2422 2834 2422 2833 2420 2833 2419 2831 2418 2831 2418 2831 2417 2832 2416 2832 2415 2832 2413 2832 2411 2832 2411 2832 2411 2832 2410 2831 2410 2831 2410 2831 2409 2831 2409 2831 2408 2831 2408 2831 2408 2830 2407 2831 2406 2831 2403 2830 2402 2830 2400 2831 2399 2830 2398 2830 2397 2829 2394 2828 2393 2828 2392 2828 2391 2829 2391 2830 2389 2830 2387 2830 2387 2831 2387 2838 2387 2843 2387 2847 2387 2850 2387 2850 2386 2852 2386 2853 2387 2858 2387 2859 2387 2861 2387 2862 2387 2864 2387 2864 2387 2864 2387 2865 2388 2869 2385 2870 2384 2872 2384 2873 2385 2873 2385 2873 2385 2874 2385 2874 2385 2875 2385 2876 2386 2876 2386 2876 2387 2875 2389 2874 2390 2874 2392 2874 2392 2874 2392 2874 2393 2875 2393 2876 2393 2877 2394 2879 2396 2880 2396 2880 2397 2881 2399 2881 2400 2881 2401 2881 2401 2881 2401 2881 2402 2881 2402 2881 2402 2880 2407 2879 2408 2879 2410 2878 2411 2879 2412 2879 2412 2880 2412 2880 2412 2881 2411 2882 2411 2882 2411 2883 2411 2884 2412 2884 2413 2883 2415 2883 2416 2883 2416 2882 2418 2882 2418 2883 2420 2883 2421 2883 2421 2883 2421 2883 2422 2881 2423 2881 2423 2882 2424 2883 2425 2884 2426 2885 2427 2885 2427 2886 2429 2887 2430 2887 2430 2886 2430 2886 2431 2885 2431 2885 2431 2885 2433 2885 2436 2884 2439 2883 2441 2883 2442 2883 2442 2883 2443 2884 2444 2884 2445 2885 2445 2885 2444 2885 2445 2885 2446 2885 2447 2885 2450 2884 2451 2883 2452 2884 2454 2885 2455 2885 2455 2885 2456 2885 2456 2886 2457 2886 2457 2887 2457 2887 2458 2887 2458 2887 2458 2887 2459 2887 2460 2888 2460 2889 2461 2891 2461 2892 2463 2893 2464 2893 2464 2894 2464 2894 2465 2894 2465 2894 2465 2893 2466 2893 2466 2892 2466 2891 2467 2891 2468 2891 2469 2891 2469 2891 2469 2890 2470 2890 2470 2890 2470 2888 2471 2886 2471 2886 2470 2886 2470 2885 2469 2886 2469 2886 2469 2885 2468 2885 2468 2884 2467 2883 2466 2882 2465 2881 2465 2881 2466 2880 2466 2879 2465 2879 2465 2879 2465 2878 2465 2878 2465 2879 2465 2879 2465 2880 2466 2880 2466 2880 2466" />
+<path id="gi" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2790 1985 2790 1985 2790 1985 2790 1986 2790 1986 2789 1985 2789 1985 2790 1985 2789 1985 2790 1985" />
+<path id="gd" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1891 2367 1891 2367 1891 2368 1891 2369 1891 2370 1891 2370 1890 2370 1890 2370 1890 2371 1889 2371 1889 2371 1888 2371 1889 2368 1889 2368 1890 2367 1890 2367 1890 2367 1891 2367 1891 2367" />
+<path id="guernsey" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2834 1773 2834 1773 2833 1773 2832 1773 2833 1773 2834 1772 2834 1772 2835 1772 2835 1773 2834 1773 2834 1773" />
+<path id="gl" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2506 1447 2506 1447 2507 1447 2508 1447 2508 1447 2509 1447 2509 1447 2509 1448 2509 1448 2508 1448 2508 1448 2507 1448 2507 1448 2506 1448 2504 1448 2504 1448 2504 1447 2504 1447 2503 1447 2503 1447 2502 1447 2502 1447 2501 1447 2501 1447 2501 1447 2502 1447 2502 1447 2503 1447 2503 1447 2503 1448 2504 1448 2504 1448 2504 1448 2503 1448 2503 1448 2502 1448 2501 1448 2500 1448 2497 1449 2496 1449 2493 1448 2493 1448 2493 1449 2495 1449 2496 1449 2496 1449 2496 1449 2497 1449 2498 1450 2498 1451 2497 1451 2497 1452 2495 1452 2495 1452 2495 1452 2495 1452 2494 1452 2494 1452 2490 1452 2488 1451 2488 1451 2487 1451 2487 1451 2486 1451 2486 1451 2486 1451 2487 1451 2487 1451 2488 1452 2488 1452 2489 1452 2489 1452 2490 1452 2490 1452 2490 1452 2490 1452 2490 1452 2490 1453 2489 1454 2486 1454 2486 1454 2485 1455 2485 1455 2484 1455 2484 1455 2481 1454 2481 1454 2481 1455 2481 1455 2482 1455 2482 1456 2482 1456 2482 1456 2481 1456 2481 1456 2481 1457 2479 1457 2479 1457 2479 1457 2477 1456 2476 1456 2475 1456 2475 1456 2474 1456 2474 1456 2474 1456 2472 1456 2472 1456 2471 1457 2472 1457 2473 1457 2474 1457 2474 1457 2474 1457 2475 1457 2475 1457 2475 1457 2476 1457 2476 1457 2476 1457 2476 1458 2475 1459 2472 1460 2471 1460 2471 1460 2470 1460 2467 1459 2467 1459 2466 1459 2466 1459 2466 1459 2466 1459 2465 1459 2467 1460 2468 1461 2469 1461 2469 1461 2469 1461 2468 1461 2468 1461 2468 1461 2467 1461 2466 1461 2465 1461 2465 1461 2464 1461 2464 1462 2466 1462 2466 1462 2466 1462 2466 1462 2466 1462 2466 1462 2466 1463 2463 1463 2462 1463 2461 1464 2461 1464 2460 1464 2459 1464 2457 1464 2456 1465 2455 1465 2455 1465 2454 1466 2453 1466 2453 1466 2452 1466 2449 1466 2449 1466 2448 1466 2448 1466 2445 1466 2444 1467 2444 1467 2443 1467 2443 1467 2443 1467 2442 1467 2441 1467 2439 1467 2439 1467 2438 1467 2438 1467 2438 1467 2439 1467 2440 1467 2440 1467 2440 1468 2440 1468 2440 1468 2439 1468 2438 1468 2436 1468 2436 1468 2435 1468 2436 1467 2436 1467 2435 1467 2435 1467 2435 1467 2434 1467 2433 1468 2432 1468 2434 1468 2434 1469 2434 1469 2431 1469 2431 1469 2430 1468 2429 1468 2429 1468 2429 1468 2429 1468 2429 1467 2429 1467 2428 1467 2428 1467 2427 1468 2427 1469 2428 1469 2428 1469 2428 1469 2424 1470 2421 1469 2421 1469 2420 1469 2418 1470 2418 1470 2414 1470 2414 1471 2414 1471 2413 1471 2413 1471 2409 1470 2409 1470 2409 1470 2408 1470 2409 1471 2409 1471 2409 1471 2410 1471 2410 1471 2410 1471 2410 1472 2410 1472 2409 1472 2409 1472 2409 1472 2408 1472 2408 1472 2407 1471 2407 1471 2406 1472 2406 1472 2406 1472 2406 1472 2406 1473 2405 1473 2405 1473 2404 1473 2404 1473 2404 1473 2402 1473 2399 1471 2399 1471 2399 1471 2399 1471 2399 1471 2398 1470 2398 1470 2398 1470 2396 1470 2393 1473 2393 1473 2394 1473 2394 1473 2394 1473 2396 1474 2396 1474 2395 1475 2395 1475 2392 1475 2390 1475 2390 1475 2390 1475 2390 1475 2389 1474 2389 1474 2389 1474 2390 1474 2390 1473 2390 1473 2389 1473 2389 1473 2385 1472 2384 1472 2384 1472 2383 1472 2383 1472 2385 1473 2387 1473 2388 1474 2388 1474 2388 1474 2389 1475 2389 1475 2389 1475 2388 1475 2388 1475 2385 1475 2385 1475 2385 1475 2384 1475 2382 1475 2382 1475 2381 1475 2380 1476 2380 1476 2378 1476 2375 1475 2373 1475 2373 1474 2373 1474 2373 1474 2373 1474 2374 1474 2374 1474 2374 1474 2374 1474 2374 1474 2373 1474 2373 1474 2372 1474 2372 1474 2372 1474 2372 1475 2372 1475 2373 1475 2373 1475 2373 1475 2373 1475 2372 1475 2371 1475 2371 1475 2371 1475 2369 1475 2369 1474 2369 1474 2369 1473 2368 1473 2369 1473 2369 1473 2370 1473 2370 1473 2371 1473 2371 1473 2371 1473 2370 1472 2370 1472 2370 1472 2367 1472 2365 1472 2365 1472 2365 1472 2364 1472 2364 1472 2364 1472 2364 1472 2363 1471 2363 1471 2360 1470 2360 1470 2360 1470 2359 1469 2359 1469 2359 1468 2358 1467 2358 1467 2357 1467 2357 1466 2357 1466 2356 1466 2356 1467 2356 1467 2356 1467 2356 1467 2357 1468 2357 1468 2357 1468 2357 1468 2356 1469 2356 1469 2355 1468 2355 1469 2355 1469 2356 1470 2357 1470 2357 1470 2359 1471 2359 1471 2361 1471 2362 1472 2362 1473 2361 1473 2360 1473 2358 1473 2357 1473 2358 1473 2358 1473 2358 1473 2359 1473 2359 1473 2361 1474 2363 1474 2363 1474 2363 1474 2364 1475 2364 1475 2364 1476 2364 1476 2363 1476 2363 1476 2362 1477 2362 1479 2362 1479 2361 1479 2361 1479 2361 1479 2360 1479 2360 1479 2359 1478 2359 1478 2359 1478 2358 1478 2356 1478 2355 1479 2355 1479 2355 1479 2355 1479 2355 1479 2351 1481 2350 1481 2350 1481 2349 1481 2348 1482 2347 1482 2346 1481 2346 1481 2346 1481 2345 1481 2345 1481 2345 1481 2345 1482 2345 1482 2345 1482 2345 1482 2345 1482 2346 1482 2346 1482 2346 1482 2346 1482 2347 1482 2347 1482 2346 1483 2345 1483 2345 1484 2344 1484 2344 1484 2344 1485 2344 1486 2343 1487 2342 1487 2342 1487 2342 1487 2341 1487 2341 1487 2340 1486 2339 1486 2338 1486 2339 1487 2340 1487 2340 1487 2341 1487 2341 1487 2341 1487 2342 1488 2340 1489 2339 1491 2338 1491 2338 1491 2337 1491 2337 1491 2336 1492 2336 1493 2335 1493 2334 1493 2334 1493 2333 1493 2333 1492 2332 1493 2332 1493 2332 1494 2331 1497 2330 1497 2328 1499 2328 1499 2327 1499 2328 1498 2327 1498 2326 1499 2326 1499 2326 1498 2326 1498 2326 1498 2326 1498 2325 1497 2325 1496 2325 1497 2324 1498 2324 1498 2325 1499 2325 1499 2325 1500 2325 1500 2322 1502 2322 1502 2320 1503 2320 1503 2319 1503 2317 1504 2316 1504 2316 1504 2316 1504 2314 1503 2314 1503 2314 1503 2314 1503 2314 1502 2314 1502 2314 1502 2314 1502 2314 1502 2312 1503 2312 1503 2313 1503 2313 1504 2315 1504 2315 1504 2315 1504 2315 1505 2314 1505 2313 1505 2312 1504 2310 1504 2308 1504 2306 1503 2304 1502 2304 1502 2304 1501 2303 1501 2302 1501 2302 1502 2302 1502 2305 1504 2307 1504 2306 1505 2307 1506 2307 1507 2306 1507 2306 1507 2306 1506 2305 1506 2304 1506 2303 1507 2302 1508 2299 1509 2299 1509 2298 1510 2296 1509 2296 1509 2295 1510 2294 1510 2294 1510 2294 1510 2294 1509 2294 1508 2294 1508 2294 1507 2295 1507 2294 1507 2294 1507 2294 1507 2291 1507 2291 1507 2291 1507 2291 1507 2291 1508 2292 1508 2292 1508 2292 1508 2290 1509 2288 1509 2287 1510 2286 1510 2284 1511 2284 1511 2283 1511 2283 1511 2283 1509 2283 1508 2283 1508 2283 1508 2283 1507 2283 1507 2283 1507 2281 1508 2282 1509 2283 1511 2282 1511 2281 1512 2281 1512 2281 1512 2281 1512 2280 1512 2280 1512 2280 1512 2279 1512 2279 1511 2279 1511 2278 1511 2278 1511 2278 1511 2276 1510 2276 1510 2275 1510 2275 1510 2275 1510 2274 1509 2273 1509 2272 1510 2271 1508 2271 1508 2271 1507 2272 1507 2272 1507 2272 1507 2273 1507 2273 1507 2275 1506 2275 1506 2275 1506 2276 1505 2279 1504 2279 1504 2279 1504 2279 1504 2280 1504 2280 1504 2281 1503 2281 1503 2281 1503 2281 1503 2280 1503 2280 1503 2280 1503 2279 1503 2278 1503 2278 1503 2275 1503 2274 1503 2271 1502 2269 1502 2267 1502 2266 1502 2266 1502 2266 1502 2266 1503 2266 1503 2266 1503 2267 1503 2267 1503 2267 1503 2269 1503 2270 1503 2272 1504 2272 1504 2272 1504 2273 1504 2273 1504 2272 1505 2272 1505 2272 1505 2271 1505 2271 1505 2271 1505 2271 1504 2270 1504 2269 1504 2269 1504 2268 1504 2268 1505 2269 1505 2270 1505 2270 1505 2270 1506 2270 1506 2268 1507 2268 1507 2268 1507 2268 1507 2268 1509 2268 1509 2268 1509 2268 1509 2267 1510 2267 1510 2267 1510 2267 1509 2267 1509 2267 1509 2265 1509 2265 1509 2265 1509 2265 1509 2266 1509 2266 1510 2266 1510 2265 1510 2265 1510 2264 1510 2264 1510 2264 1510 2263 1510 2263 1510 2263 1509 2263 1509 2262 1508 2261 1508 2261 1508 2260 1508 2261 1510 2261 1510 2264 1511 2265 1511 2265 1511 2265 1511 2266 1511 2266 1512 2265 1513 2265 1514 2264 1514 2264 1514 2261 1514 2261 1514 2261 1514 2261 1513 2260 1513 2259 1513 2259 1514 2259 1514 2259 1514 2259 1514 2257 1514 2256 1514 2256 1513 2256 1513 2255 1514 2256 1514 2256 1514 2256 1514 2256 1514 2257 1514 2257 1514 2257 1514 2258 1514 2258 1514 2258 1515 2258 1515 2256 1515 2254 1515 2254 1515 2253 1515 2251 1515 2251 1515 2251 1515 2251 1515 2250 1514 2250 1514 2250 1514 2250 1514 2248 1513 2247 1513 2247 1513 2249 1515 2249 1515 2249 1515 2249 1515 2247 1516 2246 1516 2245 1516 2245 1516 2243 1515 2243 1514 2243 1514 2242 1514 2242 1513 2241 1513 2241 1514 2240 1514 2240 1514 2239 1515 2239 1515 2240 1516 2239 1516 2239 1516 2238 1516 2238 1516 2238 1516 2236 1516 2236 1515 2236 1515 2236 1515 2235 1515 2235 1515 2235 1515 2233 1516 2233 1516 2233 1517 2233 1517 2234 1517 2235 1517 2236 1517 2236 1517 2237 1517 2237 1517 2237 1517 2238 1517 2239 1518 2240 1518 2239 1518 2239 1518 2239 1518 2238 1518 2238 1518 2237 1518 2238 1519 2238 1519 2239 1520 2239 1520 2240 1520 2240 1520 2240 1521 2237 1521 2237 1522 2236 1522 2234 1522 2234 1523 2233 1524 2232 1524 2230 1524 2229 1524 2228 1523 2227 1522 2225 1523 2220 1523 2220 1524 2219 1525 2218 1525 2218 1525 2218 1525 2218 1525 2218 1525 2218 1525 2219 1526 2219 1526 2220 1527 2221 1527 2222 1528 2223 1528 2225 1529 2226 1529 2227 1529 2227 1530 2227 1531 2227 1531 2227 1532 2227 1532 2227 1532 2227 1532 2227 1532 2226 1532 2226 1533 2226 1533 2226 1533 2227 1533 2228 1533 2228 1533 2229 1534 2229 1534 2230 1534 2230 1534 2230 1535 2230 1535 2229 1535 2228 1535 2227 1535 2226 1534 2224 1534 2223 1534 2223 1534 2222 1535 2222 1535 2222 1535 2221 1535 2221 1535 2219 1535 2219 1535 2218 1535 2215 1535 2212 1535 2212 1535 2211 1536 2211 1536 2211 1536 2211 1536 2214 1537 2214 1538 2216 1538 2219 1538 2221 1538 2222 1538 2222 1538 2224 1538 2224 1538 2225 1538 2227 1539 2227 1539 2227 1539 2227 1539 2227 1539 2226 1540 2223 1541 2223 1541 2223 1541 2223 1541 2224 1541 2225 1541 2225 1541 2226 1541 2226 1542 2228 1545 2228 1545 2228 1545 2228 1545 2227 1545 2227 1545 2227 1545 2226 1545 2223 1545 2222 1545 2221 1545 2220 1545 2215 1544 2214 1544 2214 1543 2214 1543 2213 1543 2212 1543 2210 1544 2210 1544 2210 1544 2210 1544 2211 1544 2211 1544 2211 1544 2211 1544 2212 1544 2212 1544 2213 1544 2213 1544 2213 1544 2215 1545 2218 1545 2219 1545 2221 1546 2222 1546 2222 1546 2223 1547 2224 1547 2224 1547 2224 1548 2224 1548 2224 1548 2224 1548 2224 1548 2223 1548 2222 1548 2221 1548 2220 1548 2219 1548 2219 1548 2220 1549 2220 1549 2220 1549 2219 1549 2219 1549 2219 1549 2219 1549 2218 1548 2218 1548 2218 1548 2217 1548 2218 1549 2218 1549 2219 1549 2219 1549 2220 1549 2220 1550 2218 1550 2217 1550 2217 1550 2216 1549 2216 1549 2215 1548 2214 1547 2214 1547 2215 1549 2216 1550 2216 1550 2216 1550 2215 1550 2215 1550 2213 1549 2213 1549 2213 1548 2212 1548 2211 1548 2211 1548 2211 1549 2212 1549 2213 1549 2217 1551 2218 1551 2218 1551 2218 1551 2218 1551 2215 1550 2214 1550 2212 1549 2212 1549 2211 1549 2211 1549 2209 1548 2209 1548 2209 1548 2208 1548 2206 1549 2206 1549 2206 1549 2206 1550 2206 1550 2207 1550 2209 1551 2213 1553 2212 1554 2213 1554 2212 1555 2211 1555 2211 1555 2211 1555 2211 1555 2211 1554 2211 1554 2210 1554 2210 1554 2208 1553 2204 1552 2204 1553 2204 1553 2205 1553 2208 1554 2210 1554 2210 1554 2210 1555 2210 1555 2211 1556 2212 1556 2211 1556 2211 1556 2209 1556 2209 1556 2208 1556 2207 1556 2205 1555 2204 1555 2204 1555 2204 1554 2203 1554 2203 1554 2203 1554 2203 1553 2202 1553 2202 1553 2202 1553 2201 1553 2202 1554 2202 1555 2204 1556 2207 1556 2208 1556 2208 1556 2208 1556 2210 1556 2210 1557 2210 1557 2210 1557 2210 1558 2208 1559 2207 1559 2207 1559 2206 1559 2206 1559 2205 1559 2204 1559 2204 1559 2204 1560 2204 1560 2204 1560 2203 1559 2202 1559 2201 1559 2201 1559 2201 1559 2200 1559 2199 1559 2199 1559 2199 1559 2198 1559 2198 1558 2199 1558 2199 1558 2199 1558 2200 1557 2199 1557 2199 1557 2199 1557 2197 1558 2197 1558 2197 1558 2197 1559 2197 1559 2198 1559 2196 1561 2194 1560 2193 1560 2193 1560 2193 1561 2191 1561 2188 1561 2187 1561 2187 1561 2186 1560 2186 1560 2186 1560 2186 1561 2187 1561 2187 1561 2188 1561 2188 1561 2189 1561 2189 1561 2190 1562 2192 1562 2192 1562 2193 1562 2192 1562 2193 1563 2193 1563 2193 1563 2193 1563 2193 1562 2194 1562 2194 1562 2195 1562 2195 1562 2198 1563 2198 1563 2199 1564 2199 1565 2199 1565 2198 1565 2196 1565 2195 1565 2198 1565 2198 1565 2199 1565 2199 1565 2200 1565 2202 1566 2200 1566 2199 1566 2196 1566 2195 1565 2195 1565 2194 1565 2193 1564 2193 1564 2192 1564 2189 1564 2189 1564 2189 1564 2189 1565 2189 1565 2189 1565 2189 1565 2190 1565 2192 1565 2193 1566 2193 1566 2194 1566 2194 1566 2194 1567 2196 1567 2197 1567 2198 1567 2198 1567 2199 1567 2200 1568 2200 1569 2200 1569 2199 1571 2197 1572 2196 1573 2196 1573 2195 1573 2196 1573 2196 1573 2196 1573 2197 1573 2198 1572 2198 1572 2199 1572 2199 1572 2200 1572 2202 1572 2202 1572 2202 1572 2202 1572 2202 1572 2201 1573 2201 1574 2201 1574 2200 1574 2200 1574 2199 1573 2199 1573 2198 1574 2198 1574 2198 1574 2199 1574 2201 1574 2201 1574 2201 1575 2200 1576 2199 1576 2199 1576 2197 1576 2196 1576 2195 1577 2195 1576 2195 1576 2194 1576 2193 1576 2192 1575 2192 1575 2192 1575 2192 1575 2191 1576 2190 1576 2190 1576 2191 1576 2191 1576 2191 1576 2192 1576 2192 1576 2192 1576 2193 1576 2194 1577 2195 1577 2197 1577 2198 1578 2199 1578 2199 1578 2199 1578 2197 1579 2197 1579 2194 1579 2192 1579 2191 1579 2190 1579 2190 1579 2189 1579 2188 1579 2187 1579 2187 1579 2187 1579 2187 1579 2187 1579 2188 1579 2189 1579 2190 1580 2192 1580 2192 1580 2194 1580 2196 1580 2196 1580 2196 1581 2196 1581 2196 1581 2196 1581 2197 1581 2197 1581 2197 1582 2196 1583 2194 1584 2194 1584 2194 1584 2193 1584 2192 1583 2192 1583 2192 1583 2191 1583 2191 1583 2191 1583 2191 1583 2190 1583 2190 1583 2186 1583 2185 1583 2184 1583 2185 1583 2185 1583 2186 1583 2187 1583 2187 1583 2188 1583 2190 1583 2191 1583 2192 1584 2192 1584 2191 1584 2191 1584 2191 1584 2190 1584 2190 1584 2190 1584 2190 1584 2192 1584 2193 1584 2193 1584 2194 1584 2195 1585 2195 1585 2193 1585 2191 1585 2189 1585 2187 1585 2187 1585 2191 1586 2193 1586 2193 1586 2193 1586 2194 1587 2190 1587 2188 1586 2185 1586 2180 1586 2179 1586 2179 1586 2179 1586 2178 1586 2179 1586 2183 1587 2184 1587 2185 1587 2186 1587 2188 1587 2193 1587 2193 1587 2194 1588 2194 1588 2194 1588 2193 1588 2191 1589 2188 1590 2188 1590 2187 1590 2187 1590 2187 1590 2186 1590 2185 1590 2184 1589 2181 1589 2181 1589 2181 1589 2180 1589 2181 1590 2181 1590 2182 1590 2184 1590 2184 1590 2185 1590 2186 1590 2190 1591 2192 1591 2192 1591 2192 1591 2191 1591 2190 1592 2190 1592 2188 1591 2188 1591 2187 1591 2185 1591 2182 1591 2180 1591 2180 1591 2180 1591 2184 1591 2186 1591 2186 1591 2189 1592 2189 1592 2192 1592 2192 1592 2192 1593 2192 1593 2191 1593 2190 1594 2190 1594 2189 1594 2189 1594 2187 1594 2187 1593 2186 1594 2187 1594 2187 1594 2189 1594 2190 1594 2190 1594 2190 1594 2191 1593 2191 1593 2192 1593 2192 1593 2192 1593 2191 1594 2191 1595 2191 1595 2189 1595 2190 1595 2191 1595 2191 1595 2187 1596 2187 1596 2186 1596 2186 1596 2185 1596 2183 1595 2183 1595 2183 1596 2184 1596 2184 1596 2184 1596 2185 1596 2185 1596 2185 1596 2186 1596 2186 1596 2186 1597 2185 1597 2185 1597 2184 1597 2180 1596 2180 1596 2179 1596 2179 1595 2178 1595 2178 1594 2178 1594 2178 1594 2178 1593 2178 1593 2177 1593 2177 1593 2177 1593 2177 1593 2177 1594 2177 1594 2177 1594 2177 1594 2178 1595 2178 1595 2178 1595 2178 1595 2178 1595 2178 1595 2178 1595 2178 1595 2175 1595 2173 1595 2172 1595 2172 1595 2171 1595 2171 1595 2171 1595 2170 1595 2170 1594 2170 1594 2170 1594 2170 1594 2169 1594 2169 1594 2169 1595 2169 1595 2170 1595 2171 1595 2171 1595 2178 1596 2180 1596 2181 1596 2183 1597 2183 1597 2183 1597 2183 1597 2181 1598 2179 1599 2179 1599 2179 1599 2179 1599 2179 1599 2181 1598 2182 1598 2182 1598 2183 1598 2183 1598 2184 1598 2185 1598 2185 1598 2185 1598 2186 1598 2187 1599 2187 1600 2186 1600 2186 1600 2185 1600 2183 1601 2184 1601 2186 1601 2186 1601 2186 1601 2186 1601 2186 1601 2187 1602 2187 1603 2187 1603 2186 1603 2186 1603 2182 1602 2181 1602 2178 1602 2178 1602 2175 1602 2170 1601 2171 1600 2172 1599 2172 1599 2171 1598 2171 1598 2171 1598 2171 1598 2171 1598 2171 1599 2171 1599 2171 1600 2171 1600 2170 1600 2169 1600 2169 1601 2168 1601 2168 1602 2167 1602 2167 1602 2167 1602 2167 1602 2166 1602 2166 1602 2165 1602 2165 1602 2165 1602 2165 1602 2164 1603 2164 1603 2164 1603 2164 1603 2164 1603 2164 1604 2163 1604 2163 1604 2163 1604 2163 1604 2162 1604 2162 1604 2159 1604 2157 1604 2157 1604 2157 1604 2156 1603 2156 1602 2155 1603 2154 1603 2155 1603 2155 1603 2154 1603 2154 1603 2154 1603 2154 1603 2154 1603 2155 1602 2155 1602 2155 1602 2156 1602 2157 1601 2159 1601 2159 1601 2161 1600 2161 1599 2163 1597 2163 1597 2164 1597 2164 1597 2165 1596 2165 1595 2164 1595 2159 1600 2158 1600 2158 1600 2158 1600 2158 1601 2158 1601 2157 1601 2157 1601 2156 1601 2156 1601 2156 1601 2155 1601 2155 1601 2155 1601 2154 1602 2154 1602 2154 1602 2153 1602 2153 1602 2153 1602 2153 1602 2153 1602 2154 1602 2153 1601 2153 1601 2153 1601 2154 1601 2154 1600 2155 1600 2155 1600 2156 1599 2157 1599 2158 1598 2160 1594 2160 1594 2160 1594 2160 1593 2161 1593 2161 1593 2162 1593 2162 1593 2162 1593 2162 1592 2162 1592 2161 1593 2161 1593 2159 1593 2159 1593 2159 1594 2159 1594 2159 1594 2159 1594 2159 1595 2158 1595 2158 1596 2156 1596 2156 1597 2153 1597 2153 1597 2153 1597 2153 1597 2152 1597 2152 1597 2152 1596 2152 1596 2153 1595 2154 1595 2154 1594 2155 1594 2153 1594 2153 1595 2153 1595 2153 1595 2152 1595 2150 1596 2149 1596 2149 1596 2148 1596 2150 1594 2150 1594 2152 1594 2152 1594 2151 1593 2150 1593 2149 1594 2149 1594 2147 1596 2147 1596 2147 1597 2147 1597 2145 1595 2145 1594 2145 1594 2145 1594 2145 1594 2144 1594 2144 1594 2144 1595 2144 1595 2143 1595 2142 1595 2141 1595 2141 1595 2143 1594 2145 1594 2145 1593 2145 1593 2145 1594 2144 1594 2143 1593 2143 1593 2145 1592 2146 1592 2147 1592 2147 1592 2150 1590 2150 1590 2150 1590 2151 1590 2152 1590 2152 1590 2152 1589 2151 1588 2150 1588 2150 1588 2150 1588 2150 1588 2150 1589 2149 1589 2149 1590 2145 1592 2145 1592 2143 1592 2143 1592 2142 1592 2142 1592 2142 1592 2144 1591 2144 1591 2144 1591 2144 1591 2144 1591 2143 1591 2142 1591 2141 1591 2141 1591 2140 1592 2140 1592 2140 1592 2140 1592 2140 1593 2140 1593 2139 1593 2139 1593 2138 1593 2137 1592 2137 1592 2137 1592 2137 1592 2137 1592 2137 1592 2139 1591 2140 1591 2141 1590 2140 1591 2140 1591 2138 1591 2138 1591 2137 1591 2137 1591 2138 1591 2139 1591 2139 1590 2140 1590 2141 1590 2142 1589 2142 1589 2143 1589 2144 1589 2144 1589 2144 1589 2145 1589 2145 1589 2146 1589 2146 1589 2147 1589 2148 1588 2148 1588 2149 1588 2149 1588 2149 1588 2149 1588 2149 1588 2151 1587 2151 1587 2152 1587 2152 1586 2153 1585 2153 1585 2152 1585 2152 1585 2152 1586 2152 1586 2151 1586 2151 1586 2151 1587 2151 1587 2151 1587 2150 1587 2150 1587 2149 1586 2148 1584 2148 1585 2148 1585 2148 1586 2148 1586 2149 1586 2147 1588 2146 1588 2146 1588 2146 1588 2143 1589 2143 1589 2143 1589 2141 1589 2141 1589 2141 1589 2140 1590 2140 1590 2140 1590 2139 1590 2139 1589 2139 1589 2139 1588 2141 1588 2144 1587 2146 1586 2145 1585 2143 1585 2142 1585 2142 1585 2143 1584 2143 1584 2144 1584 2144 1583 2144 1583 2145 1583 2144 1583 2144 1583 2143 1583 2140 1584 2140 1585 2142 1585 2143 1585 2143 1585 2143 1586 2143 1586 2142 1587 2138 1588 2138 1588 2137 1589 2136 1589 2136 1588 2136 1588 2136 1588 2136 1587 2135 1587 2135 1587 2134 1587 2134 1587 2134 1587 2134 1587 2134 1587 2134 1588 2133 1588 2133 1588 2132 1588 2131 1589 2131 1589 2131 1590 2130 1590 2127 1589 2127 1589 2127 1590 2129 1590 2129 1591 2128 1591 2127 1591 2126 1591 2125 1590 2125 1590 2126 1589 2125 1589 2125 1589 2124 1589 2124 1589 2124 1589 2122 1589 2120 1589 2119 1589 2117 1589 2116 1590 2117 1590 2117 1590 2116 1590 2115 1590 2115 1590 2115 1590 2112 1590 2112 1590 2111 1590 2111 1590 2115 1590 2117 1590 2119 1590 2119 1590 2119 1591 2117 1591 2115 1591 2114 1591 2112 1591 2110 1591 2108 1591 2108 1591 2107 1591 2107 1591 2107 1591 2105 1591 2105 1591 2105 1591 2104 1591 2105 1591 2105 1590 2106 1590 2106 1590 2108 1590 2108 1590 2110 1589 2113 1589 2113 1588 2113 1588 2110 1588 2108 1588 2107 1589 2106 1589 2106 1589 2105 1589 2104 1588 2104 1588 2104 1588 2104 1588 2103 1588 2103 1589 2102 1589 2102 1588 2102 1588 2102 1588 2103 1588 2105 1588 2107 1588 2109 1588 2110 1588 2111 1588 2111 1588 2111 1588 2111 1587 2110 1586 2109 1587 2109 1587 2107 1587 2107 1587 2105 1585 2105 1585 2105 1585 2105 1585 2107 1584 2107 1583 2108 1583 2109 1583 2109 1583 2109 1583 2110 1583 2109 1583 2109 1583 2108 1583 2106 1583 2104 1584 2104 1585 2104 1585 2104 1585 2105 1586 2105 1586 2104 1586 2104 1586 2103 1586 2103 1586 2102 1586 2102 1586 2101 1586 2101 1586 2102 1585 2103 1585 2103 1585 2103 1585 2103 1585 2103 1585 2101 1585 2101 1585 2098 1585 2098 1584 2099 1584 2099 1584 2099 1584 2099 1584 2100 1584 2101 1584 2101 1583 2102 1583 2102 1583 2102 1582 2101 1582 2098 1582 2098 1582 2096 1582 2095 1582 2093 1583 2091 1582 2092 1582 2093 1581 2095 1581 2095 1581 2095 1581 2096 1581 2097 1581 2102 1580 2104 1580 2104 1580 2105 1580 2103 1579 2103 1579 2102 1579 2102 1579 2101 1579 2101 1579 2100 1579 2100 1580 2095 1580 2093 1581 2091 1580 2088 1579 2088 1579 2088 1579 2089 1579 2091 1579 2092 1579 2092 1579 2093 1579 2094 1579 2097 1579 2097 1578 2098 1578 2099 1578 2099 1578 2098 1578 2098 1578 2098 1578 2097 1578 2097 1578 2097 1578 2096 1578 2093 1579 2093 1579 2093 1579 2093 1579 2092 1578 2091 1578 2091 1577 2092 1577 2092 1577 2091 1577 2090 1577 2090 1575 2090 1575 2091 1575 2094 1573 2094 1573 2095 1573 2096 1573 2096 1573 2096 1573 2096 1573 2096 1573 2096 1573 2096 1573 2096 1572 2096 1572 2096 1572 2095 1572 2094 1572 2094 1573 2093 1573 2093 1573 2092 1573 2090 1574 2089 1575 2089 1575 2089 1575 2089 1575 2089 1576 2089 1576 2089 1577 2089 1577 2088 1577 2087 1576 2088 1575 2089 1574 2088 1574 2087 1575 2087 1575 2087 1575 2087 1575 2086 1575 2086 1575 2085 1575 2086 1573 2088 1573 2088 1573 2088 1573 2089 1573 2089 1573 2089 1573 2090 1573 2090 1573 2090 1573 2091 1572 2092 1571 2094 1572 2094 1571 2095 1571 2095 1571 2093 1571 2091 1571 2091 1571 2091 1571 2091 1571 2091 1570 2091 1570 2092 1569 2092 1569 2092 1569 2092 1569 2092 1569 2092 1569 2091 1569 2091 1570 2090 1571 2090 1571 2090 1571 2090 1571 2090 1571 2090 1572 2090 1572 2090 1572 2087 1572 2086 1572 2086 1572 2083 1572 2082 1572 2082 1572 2082 1572 2081 1572 2081 1570 2081 1570 2082 1570 2083 1570 2083 1570 2083 1570 2084 1570 2084 1571 2085 1571 2086 1571 2086 1571 2088 1570 2088 1569 2087 1569 2086 1569 2086 1569 2086 1569 2085 1570 2085 1570 2085 1570 2085 1570 2082 1570 2083 1569 2083 1569 2083 1569 2085 1568 2086 1568 2086 1568 2084 1568 2081 1568 2081 1568 2079 1568 2079 1568 2079 1568 2078 1568 2078 1567 2077 1567 2076 1567 2073 1565 2071 1564 2073 1562 2073 1561 2075 1560 2077 1559 2077 1558 2075 1560 2072 1561 2072 1561 2071 1560 2073 1559 2074 1557 2074 1557 2075 1557 2077 1557 2078 1557 2078 1556 2079 1556 2079 1556 2079 1556 2081 1556 2081 1555 2081 1555 2080 1555 2080 1555 2079 1555 2078 1556 2077 1556 2077 1556 2076 1557 2075 1557 2075 1557 2074 1557 2073 1557 2071 1559 2071 1559 2071 1559 2071 1560 2071 1560 2070 1560 2070 1560 2070 1559 2070 1558 2071 1557 2073 1557 2074 1556 2074 1556 2074 1556 2073 1556 2072 1556 2072 1557 2072 1557 2070 1557 2067 1557 2067 1556 2067 1555 2068 1554 2069 1554 2069 1554 2070 1554 2070 1554 2069 1554 2069 1554 2070 1553 2070 1553 2071 1553 2071 1553 2073 1553 2074 1553 2075 1553 2075 1553 2075 1553 2075 1553 2075 1553 2073 1553 2071 1553 2070 1553 2070 1553 2069 1553 2069 1553 2068 1553 2068 1553 2068 1553 2067 1553 2065 1553 2064 1553 2063 1554 2062 1554 2062 1554 2062 1554 2062 1554 2062 1553 2063 1553 2063 1553 2063 1553 2064 1552 2064 1552 2063 1552 2063 1553 2062 1553 2061 1553 2061 1553 2061 1554 2061 1554 2060 1554 2060 1554 2060 1554 2060 1553 2059 1553 2059 1551 2059 1551 2060 1551 2060 1551 2061 1551 2061 1551 2063 1551 2063 1551 2067 1550 2068 1550 2072 1550 2071 1550 2070 1550 2070 1550 2069 1550 2069 1550 2068 1550 2067 1550 2067 1550 2064 1550 2060 1550 2058 1550 2058 1550 2058 1550 2058 1550 2057 1549 2058 1549 2058 1548 2058 1548 2061 1548 2063 1548 2064 1548 2064 1548 2064 1547 2064 1547 2064 1547 2061 1548 2060 1548 2060 1548 2059 1548 2059 1548 2058 1547 2058 1547 2058 1547 2058 1546 2060 1546 2061 1546 2062 1546 2062 1546 2065 1546 2067 1546 2067 1546 2068 1547 2068 1546 2068 1546 2068 1546 2068 1546 2068 1546 2066 1546 2065 1546 2064 1546 2063 1546 2062 1546 2062 1546 2061 1546 2061 1546 2060 1546 2060 1546 2059 1546 2057 1546 2057 1547 2058 1547 2058 1547 2058 1548 2058 1548 2058 1548 2058 1548 2058 1548 2057 1548 2055 1546 2054 1546 2053 1546 2053 1546 2053 1546 2052 1546 2052 1545 2052 1545 2052 1544 2052 1544 2052 1544 2052 1544 2057 1543 2058 1543 2059 1542 2060 1542 2061 1542 2061 1542 2062 1541 2061 1541 2060 1541 2058 1542 2058 1542 2057 1543 2056 1543 2056 1543 2056 1543 2055 1543 2055 1543 2054 1543 2053 1543 2053 1543 2053 1543 2053 1543 2053 1543 2053 1543 2054 1543 2054 1543 2054 1542 2055 1541 2054 1541 2054 1541 2054 1541 2053 1541 2053 1541 2053 1541 2053 1541 2052 1541 2052 1541 2051 1540 2051 1540 2050 1540 2050 1540 2050 1540 2051 1540 2051 1540 2051 1540 2056 1539 2056 1539 2061 1539 2062 1539 2062 1539 2062 1539 2063 1539 2064 1538 2064 1538 2065 1538 2065 1538 2066 1538 2069 1538 2070 1538 2070 1538 2072 1537 2073 1537 2074 1537 2074 1537 2075 1537 2075 1537 2075 1538 2076 1537 2075 1537 2074 1537 2074 1536 2074 1536 2073 1537 2072 1537 2071 1537 2070 1537 2070 1537 2068 1537 2068 1537 2068 1537 2069 1536 2069 1536 2067 1536 2067 1537 2063 1538 2061 1538 2059 1538 2059 1538 2058 1538 2057 1539 2057 1539 2056 1539 2055 1539 2053 1539 2051 1539 2050 1539 2050 1538 2051 1538 2051 1538 2052 1538 2052 1538 2053 1538 2054 1538 2054 1538 2054 1538 2054 1538 2054 1538 2054 1538 2052 1537 2052 1537 2051 1537 2051 1538 2050 1538 2050 1538 2049 1538 2049 1538 2048 1537 2048 1537 2051 1537 2051 1537 2053 1537 2053 1537 2054 1537 2054 1537 2054 1537 2055 1537 2055 1537 2056 1537 2056 1538 2056 1538 2057 1537 2061 1537 2061 1537 2063 1536 2063 1536 2062 1536 2062 1536 2062 1536 2061 1536 2061 1536 2061 1536 2061 1536 2060 1536 2060 1536 2060 1536 2061 1535 2062 1534 2062 1534 2063 1534 2063 1534 2064 1533 2064 1533 2064 1534 2064 1534 2065 1534 2066 1534 2066 1534 2067 1534 2067 1534 2069 1534 2071 1534 2071 1534 2071 1534 2072 1534 2072 1534 2074 1533 2073 1533 2073 1533 2073 1533 2073 1533 2072 1533 2071 1533 2070 1533 2070 1534 2068 1533 2067 1533 2066 1533 2066 1533 2066 1532 2067 1532 2067 1532 2068 1532 2068 1532 2069 1532 2069 1532 2069 1532 2069 1532 2067 1532 2066 1532 2066 1532 2066 1532 2066 1532 2066 1532 2065 1532 2065 1531 2063 1531 2062 1531 2062 1531 2062 1531 2062 1530 2063 1530 2064 1530 2064 1530 2064 1530 2065 1530 2066 1530 2066 1530 2066 1530 2067 1530 2067 1530 2069 1530 2069 1530 2069 1530 2069 1530 2069 1529 2068 1529 2068 1529 2068 1529 2068 1530 2067 1530 2067 1530 2067 1530 2066 1529 2066 1529 2068 1529 2069 1529 2071 1529 2072 1530 2072 1530 2072 1530 2072 1530 2072 1530 2072 1531 2072 1531 2073 1532 2073 1532 2074 1532 2074 1532 2074 1533 2075 1533 2076 1533 2079 1534 2080 1534 2081 1535 2081 1535 2082 1535 2082 1535 2083 1535 2083 1535 2083 1535 2082 1533 2081 1533 2080 1533 2080 1533 2079 1533 2077 1532 2076 1532 2075 1532 2074 1530 2074 1530 2075 1530 2075 1530 2075 1530 2076 1530 2076 1529 2077 1529 2077 1529 2076 1529 2075 1529 2075 1529 2075 1529 2074 1529 2074 1529 2074 1529 2073 1529 2073 1529 2073 1528 2074 1527 2074 1527 2075 1527 2075 1527 2075 1527 2076 1527 2076 1527 2076 1527 2076 1526 2076 1526 2076 1526 2074 1527 2074 1527 2073 1527 2073 1527 2073 1528 2073 1528 2072 1528 2072 1528 2072 1528 2071 1528 2068 1528 2067 1528 2065 1526 2065 1525 2065 1524 2064 1524 2063 1523 2063 1522 2061 1521 2061 1521 2061 1522 2061 1523 2062 1525 2062 1525 2063 1525 2063 1525 2063 1525 2064 1524 2064 1524 2064 1524 2064 1524 2065 1524 2065 1524 2065 1526 2065 1527 2066 1527 2066 1528 2065 1528 2065 1528 2063 1529 2061 1530 2060 1530 2060 1530 2060 1530 2058 1530 2058 1530 2057 1530 2057 1530 2058 1529 2058 1529 2059 1528 2059 1528 2059 1528 2060 1528 2060 1528 2060 1528 2059 1528 2058 1528 2058 1528 2058 1528 2057 1528 2057 1528 2056 1528 2056 1529 2056 1529 2054 1530 2054 1531 2054 1531 2054 1531 2053 1532 2053 1532 2053 1533 2051 1534 2051 1534 2050 1534 2050 1534 2050 1535 2050 1535 2048 1537 2047 1537 2047 1537 2047 1537 2045 1537 2044 1537 2044 1537 2044 1536 2044 1536 2044 1536 2044 1534 2044 1534 2043 1534 2043 1534 2043 1534 2043 1533 2043 1531 2044 1531 2043 1530 2042 1529 2043 1529 2044 1528 2045 1528 2046 1527 2047 1527 2047 1527 2050 1526 2052 1527 2052 1527 2052 1526 2053 1526 2054 1525 2054 1525 2055 1525 2055 1525 2056 1525 2056 1524 2056 1524 2056 1524 2056 1524 2054 1524 2053 1525 2051 1526 2051 1526 2050 1526 2050 1526 2050 1526 2049 1526 2050 1525 2050 1525 2050 1525 2051 1525 2051 1525 2051 1525 2051 1524 2050 1524 2050 1524 2050 1524 2049 1524 2049 1524 2047 1525 2047 1526 2046 1527 2047 1527 2046 1527 2045 1527 2045 1528 2044 1528 2043 1528 2043 1528 2043 1528 2043 1527 2043 1527 2044 1527 2044 1527 2044 1527 2045 1527 2045 1527 2045 1526 2044 1526 2044 1526 2044 1526 2044 1527 2043 1527 2042 1527 2042 1527 2041 1527 2041 1527 2041 1527 2041 1527 2041 1526 2041 1526 2042 1525 2043 1525 2044 1525 2044 1525 2043 1524 2043 1524 2043 1524 2042 1524 2042 1524 2042 1524 2040 1523 2040 1523 2040 1523 2043 1520 2042 1520 2042 1521 2041 1521 2041 1521 2040 1521 2040 1521 2039 1521 2040 1521 2040 1521 2040 1521 2041 1520 2041 1520 2041 1520 2041 1519 2041 1519 2041 1519 2041 1519 2039 1520 2038 1520 2037 1521 2037 1521 2036 1521 2036 1521 2036 1521 2035 1519 2036 1519 2038 1518 2038 1518 2042 1517 2043 1517 2046 1516 2047 1515 2048 1515 2049 1515 2049 1515 2048 1515 2048 1515 2048 1515 2047 1515 2047 1515 2046 1515 2046 1514 2046 1514 2046 1514 2049 1513 2049 1513 2052 1513 2053 1513 2054 1512 2055 1512 2056 1512 2057 1512 2060 1512 2061 1512 2061 1512 2062 1512 2062 1512 2063 1513 2063 1513 2063 1513 2064 1513 2064 1513 2065 1513 2065 1513 2065 1513 2065 1514 2067 1513 2068 1513 2068 1513 2065 1513 2065 1512 2061 1512 2057 1512 2057 1512 2056 1512 2055 1512 2053 1512 2049 1513 2045 1514 2045 1514 2045 1515 2046 1515 2045 1516 2045 1516 2044 1516 2043 1516 2043 1516 2041 1517 2039 1517 2037 1518 2037 1518 2037 1518 2035 1517 2035 1516 2035 1516 2035 1515 2035 1515 2036 1515 2036 1515 2036 1515 2036 1515 2037 1514 2036 1514 2035 1515 2035 1515 2035 1516 2034 1516 2033 1516 2033 1516 2032 1516 2032 1516 2032 1515 2032 1515 2034 1514 2034 1514 2035 1514 2034 1514 2032 1514 2032 1514 2032 1514 2033 1514 2033 1513 2033 1513 2034 1512 2033 1511 2033 1511 2033 1512 2033 1512 2033 1512 2033 1513 2032 1513 2032 1513 2031 1514 2031 1514 2031 1514 2031 1513 2031 1513 2030 1513 2030 1513 2028 1514 2027 1514 2026 1514 2026 1514 2025 1513 2025 1513 2026 1513 2026 1513 2027 1513 2027 1513 2028 1513 2028 1512 2031 1512 2030 1511 2030 1511 2030 1511 2029 1512 2029 1512 2029 1512 2029 1512 2027 1512 2027 1512 2025 1513 2024 1512 2025 1512 2025 1512 2027 1512 2027 1511 2027 1511 2028 1511 2028 1511 2028 1511 2033 1509 2033 1509 2033 1509 2034 1509 2034 1509 2034 1509 2034 1510 2035 1510 2035 1510 2036 1510 2037 1510 2037 1510 2039 1510 2040 1510 2040 1510 2040 1510 2041 1509 2041 1509 2041 1509 2042 1509 2044 1508 2045 1508 2045 1508 2046 1508 2046 1508 2046 1508 2046 1508 2047 1509 2047 1509 2047 1507 2046 1508 2043 1508 2042 1508 2041 1508 2041 1509 2041 1509 2040 1509 2040 1509 2040 1509 2040 1510 2040 1510 2039 1510 2036 1510 2036 1510 2036 1510 2035 1510 2035 1509 2035 1509 2033 1509 2031 1510 2029 1510 2027 1511 2026 1511 2026 1511 2026 1511 2025 1511 2025 1511 2025 1510 2025 1510 2025 1510 2028 1509 2029 1508 2030 1508 2030 1508 2030 1508 2030 1508 2030 1508 2029 1508 2029 1508 2028 1508 2028 1508 2027 1509 2027 1509 2027 1509 2026 1509 2025 1509 2024 1509 2023 1509 2023 1509 2022 1509 2021 1509 2021 1509 2021 1509 2022 1508 2023 1508 2023 1508 2023 1508 2023 1508 2024 1508 2025 1508 2026 1508 2026 1508 2026 1508 2026 1508 2026 1508 2024 1508 2024 1508 2024 1508 2023 1508 2023 1508 2022 1508 2022 1508 2021 1508 2021 1508 2021 1508 2022 1507 2022 1507 2023 1507 2024 1507 2025 1506 2026 1506 2027 1506 2028 1506 2029 1506 2029 1505 2031 1505 2032 1505 2032 1504 2033 1504 2033 1504 2033 1504 2034 1503 2035 1503 2038 1502 2038 1501 2039 1501 2039 1501 2039 1501 2040 1501 2042 1501 2043 1501 2044 1500 2044 1500 2044 1500 2045 1499 2046 1498 2046 1498 2046 1498 2046 1498 2051 1497 2052 1496 2052 1496 2056 1495 2058 1494 2058 1494 2059 1494 2059 1494 2060 1494 2060 1495 2061 1495 2061 1495 2062 1495 2063 1495 2064 1495 2067 1495 2068 1495 2068 1495 2070 1495 2071 1495 2071 1495 2071 1495 2070 1495 2070 1495 2066 1494 2066 1494 2065 1495 2065 1495 2064 1495 2064 1495 2063 1495 2060 1494 2060 1494 2061 1493 2061 1493 2065 1492 2066 1492 2067 1492 2068 1493 2069 1493 2069 1493 2070 1492 2073 1493 2074 1493 2075 1493 2076 1493 2076 1493 2075 1492 2075 1492 2074 1493 2073 1493 2073 1493 2073 1493 2072 1492 2071 1492 2071 1492 2071 1492 2070 1492 2070 1492 2070 1492 2069 1492 2069 1492 2068 1492 2066 1492 2066 1492 2067 1492 2067 1492 2068 1492 2068 1492 2069 1492 2070 1492 2072 1491 2071 1491 2071 1491 2070 1491 2068 1492 2067 1492 2062 1493 2061 1493 2061 1493 2061 1493 2060 1493 2059 1494 2058 1494 2058 1494 2057 1494 2057 1494 2056 1494 2053 1495 2051 1496 2051 1496 2050 1497 2049 1497 2048 1497 2048 1497 2047 1497 2046 1498 2045 1498 2045 1498 2044 1498 2044 1499 2044 1499 2044 1499 2043 1499 2043 1500 2042 1500 2042 1500 2042 1500 2041 1500 2039 1501 2037 1501 2036 1502 2033 1503 2033 1503 2033 1503 2032 1503 2032 1504 2032 1504 2031 1504 2031 1504 2030 1505 2029 1505 2028 1505 2028 1505 2024 1506 2024 1506 2023 1507 2022 1507 2021 1507 2020 1507 2020 1507 2019 1506 2019 1506 2018 1506 2019 1505 2020 1505 2021 1505 2021 1504 2022 1504 2022 1504 2023 1504 2023 1504 2026 1504 2027 1504 2025 1504 2023 1504 2021 1504 2019 1504 2019 1504 2018 1504 2017 1503 2017 1503 2018 1500 2020 1500 2023 1500 2023 1500 2025 1500 2025 1500 2025 1500 2024 1500 2023 1500 2023 1500 2024 1500 2025 1500 2026 1500 2026 1500 2027 1500 2028 1500 2029 1500 2029 1500 2029 1500 2029 1500 2030 1500 2031 1500 2032 1500 2032 1500 2032 1500 2032 1500 2033 1500 2034 1500 2036 1500 2037 1500 2037 1500 2038 1500 2038 1500 2037 1500 2037 1500 2036 1500 2035 1500 2034 1500 2033 1499 2031 1499 2031 1499 2031 1499 2029 1499 2029 1499 2029 1499 2029 1499 2028 1500 2027 1500 2026 1500 2026 1500 2025 1500 2024 1500 2023 1499 2021 1499 2021 1498 2021 1498 2024 1497 2024 1497 2025 1497 2027 1497 2029 1498 2030 1497 2034 1497 2035 1497 2035 1497 2035 1497 2031 1496 2031 1497 2030 1497 2030 1497 2029 1497 2029 1497 2028 1497 2028 1497 2025 1496 2025 1496 2026 1496 2026 1496 2026 1496 2027 1496 2029 1496 2029 1496 2029 1496 2031 1496 2031 1496 2031 1496 2031 1496 2029 1496 2028 1496 2028 1496 2028 1496 2028 1496 2027 1496 2027 1496 2027 1496 2027 1496 2028 1495 2027 1495 2027 1495 2028 1495 2029 1495 2029 1495 2029 1495 2032 1495 2035 1495 2036 1495 2036 1495 2037 1495 2038 1495 2038 1495 2038 1495 2039 1495 2039 1495 2040 1495 2040 1495 2040 1495 2041 1495 2040 1495 2039 1495 2039 1495 2039 1495 2037 1494 2037 1494 2037 1494 2036 1494 2035 1494 2035 1494 2032 1494 2032 1494 2032 1494 2031 1494 2031 1494 2031 1494 2027 1494 2025 1494 2022 1494 2021 1494 2020 1494 2018 1494 2018 1494 2018 1494 2018 1494 2016 1493 2015 1493 2015 1493 2015 1493 2016 1492 2017 1492 2017 1492 2019 1493 2023 1493 2024 1493 2024 1493 2024 1493 2025 1493 2025 1493 2025 1492 2022 1492 2021 1492 2020 1492 2019 1492 2018 1492 2016 1492 2016 1492 2016 1492 2015 1492 2015 1492 2015 1491 2015 1491 2016 1491 2017 1491 2018 1491 2019 1491 2020 1491 2020 1491 2022 1491 2022 1491 2022 1491 2021 1491 2021 1491 2018 1491 2013 1491 2013 1491 2014 1490 2015 1490 2015 1490 2016 1489 2017 1489 2018 1489 2019 1489 2019 1489 2021 1489 2021 1489 2022 1489 2022 1489 2022 1489 2021 1489 2021 1489 2020 1489 2020 1489 2019 1489 2020 1489 2021 1489 2024 1488 2026 1488 2027 1488 2029 1488 2030 1488 2032 1488 2035 1487 2039 1487 2041 1487 2041 1486 2042 1486 2042 1487 2043 1487 2043 1487 2043 1487 2043 1487 2044 1487 2044 1487 2045 1487 2046 1487 2049 1487 2051 1487 2052 1487 2052 1487 2052 1487 2053 1488 2053 1488 2053 1488 2054 1488 2054 1488 2054 1488 2055 1490 2056 1490 2057 1490 2057 1490 2057 1490 2058 1490 2058 1490 2059 1490 2060 1490 2061 1490 2062 1490 2062 1490 2063 1490 2063 1489 2064 1489 2064 1489 2066 1489 2067 1489 2067 1489 2068 1490 2069 1490 2069 1490 2070 1490 2070 1490 2071 1490 2071 1489 2071 1489 2069 1489 2068 1489 2068 1489 2067 1489 2065 1489 2064 1489 2063 1489 2062 1490 2061 1490 2060 1490 2059 1490 2059 1490 2059 1490 2058 1490 2058 1490 2058 1490 2057 1490 2056 1490 2054 1488 2054 1488 2052 1487 2052 1487 2052 1487 2053 1487 2054 1486 2055 1486 2056 1486 2056 1486 2058 1486 2058 1486 2059 1486 2058 1486 2058 1486 2058 1486 2055 1486 2051 1487 2051 1487 2051 1487 2046 1487 2044 1486 2041 1486 2034 1487 2031 1487 2029 1488 2029 1488 2028 1488 2027 1488 2027 1488 2026 1488 2026 1488 2025 1488 2025 1488 2024 1487 2021 1488 2018 1489 2017 1489 2016 1489 2016 1489 2016 1489 2015 1489 2014 1488 2015 1487 2015 1486 2016 1486 2017 1485 2019 1485 2019 1485 2021 1484 2023 1484 2026 1482 2027 1482 2027 1482 2029 1482 2029 1482 2030 1482 2030 1481 2030 1481 2029 1481 2029 1482 2028 1482 2028 1482 2027 1482 2027 1482 2027 1482 2027 1482 2028 1481 2028 1481 2029 1481 2030 1481 2031 1481 2031 1481 2031 1481 2031 1481 2032 1481 2032 1481 2032 1481 2032 1481 2033 1481 2033 1481 2034 1481 2034 1481 2035 1481 2036 1481 2035 1481 2035 1481 2034 1481 2034 1481 2034 1481 2033 1481 2033 1481 2033 1481 2032 1481 2031 1481 2032 1480 2032 1480 2037 1480 2037 1480 2038 1480 2038 1480 2038 1480 2040 1481 2042 1481 2043 1481 2043 1481 2043 1481 2044 1481 2046 1482 2046 1482 2046 1482 2046 1482 2046 1482 2047 1482 2048 1482 2049 1482 2053 1482 2054 1482 2054 1482 2054 1482 2055 1482 2056 1482 2058 1482 2059 1483 2061 1483 2062 1483 2062 1483 2063 1484 2064 1484 2064 1484 2065 1484 2065 1485 2067 1485 2067 1485 2068 1485 2069 1485 2070 1485 2072 1485 2072 1485 2073 1485 2075 1484 2075 1484 2075 1484 2074 1484 2071 1484 2071 1484 2070 1484 2070 1484 2069 1484 2068 1484 2067 1484 2066 1484 2065 1484 2064 1484 2064 1483 2063 1483 2063 1483 2064 1482 2064 1482 2065 1482 2065 1482 2066 1482 2067 1482 2069 1481 2071 1481 2072 1481 2072 1481 2072 1481 2074 1481 2075 1481 2075 1481 2075 1481 2075 1481 2076 1481 2077 1481 2077 1481 2077 1481 2075 1481 2075 1481 2072 1480 2072 1480 2072 1480 2071 1481 2070 1481 2069 1481 2067 1482 2066 1482 2066 1482 2064 1482 2062 1482 2061 1482 2061 1482 2060 1482 2058 1482 2057 1481 2057 1481 2059 1481 2060 1481 2060 1481 2061 1481 2064 1480 2064 1480 2064 1480 2064 1480 2066 1479 2066 1479 2066 1479 2067 1479 2068 1479 2070 1479 2070 1479 2069 1479 2065 1478 2064 1478 2064 1478 2064 1478 2063 1478 2063 1478 2063 1479 2063 1479 2063 1479 2063 1479 2064 1478 2064 1478 2064 1478 2064 1478 2065 1478 2065 1479 2066 1479 2065 1479 2065 1479 2064 1479 2064 1479 2063 1479 2063 1479 2061 1480 2060 1480 2058 1480 2058 1480 2057 1480 2057 1480 2057 1480 2055 1478 2055 1478 2057 1478 2059 1478 2059 1478 2059 1478 2059 1478 2060 1478 2060 1478 2060 1478 2060 1478 2061 1478 2061 1478 2061 1478 2060 1477 2059 1477 2059 1477 2058 1477 2057 1477 2057 1477 2057 1477 2056 1477 2056 1477 2056 1477 2055 1478 2055 1478 2055 1478 2054 1478 2054 1478 2054 1478 2054 1478 2053 1477 2053 1477 2053 1477 2052 1477 2051 1477 2051 1478 2053 1478 2055 1479 2055 1479 2055 1479 2054 1480 2054 1480 2053 1481 2053 1481 2052 1481 2052 1481 2052 1481 2053 1481 2053 1480 2053 1480 2052 1480 2052 1480 2051 1480 2051 1480 2050 1481 2050 1481 2050 1481 2049 1481 2049 1481 2049 1481 2048 1481 2048 1481 2047 1481 2047 1481 2047 1481 2047 1480 2047 1480 2048 1480 2049 1480 2049 1480 2050 1480 2050 1480 2050 1480 2050 1480 2050 1480 2050 1480 2050 1480 2049 1480 2047 1480 2047 1480 2045 1480 2042 1480 2041 1480 2040 1480 2040 1480 2039 1479 2039 1479 2040 1479 2041 1478 2042 1478 2042 1478 2044 1478 2044 1478 2045 1478 2046 1478 2046 1478 2046 1478 2049 1478 2051 1477 2051 1477 2051 1477 2051 1477 2051 1477 2051 1477 2048 1477 2047 1477 2047 1477 2047 1478 2046 1478 2046 1478 2045 1478 2044 1478 2043 1478 2043 1478 2042 1478 2041 1478 2039 1478 2038 1479 2038 1479 2037 1479 2037 1479 2037 1479 2037 1479 2034 1480 2032 1480 2032 1480 2031 1480 2029 1480 2028 1480 2028 1481 2026 1481 2026 1482 2025 1482 2025 1482 2025 1482 2023 1483 2019 1484 2019 1484 2019 1484 2018 1484 2018 1484 2017 1484 2016 1483 2017 1483 2018 1482 2019 1482 2019 1482 2020 1481 2020 1481 2019 1480 2018 1480 2018 1479 2020 1479 2021 1479 2021 1479 2021 1479 2021 1479 2021 1479 2021 1479 2020 1479 2021 1480 2022 1480 2023 1480 2023 1480 2024 1479 2023 1479 2023 1479 2023 1479 2022 1479 2022 1479 2021 1478 2021 1478 2021 1478 2022 1478 2022 1478 2022 1478 2022 1478 2024 1478 2024 1478 2024 1479 2024 1479 2024 1479 2024 1479 2024 1479 2024 1479 2024 1479 2024 1479 2026 1478 2026 1478 2026 1478 2027 1478 2027 1478 2027 1478 2028 1478 2027 1478 2027 1478 2026 1478 2026 1478 2025 1478 2024 1478 2024 1478 2024 1478 2024 1477 2025 1477 2027 1477 2028 1477 2028 1477 2029 1477 2029 1477 2029 1477 2028 1477 2027 1477 2026 1477 2025 1477 2025 1477 2024 1477 2025 1476 2025 1476 2025 1476 2027 1475 2027 1475 2028 1476 2029 1476 2030 1476 2032 1477 2032 1477 2032 1477 2033 1477 2036 1477 2036 1477 2036 1477 2041 1477 2041 1478 2041 1478 2041 1478 2041 1478 2042 1478 2042 1477 2043 1477 2043 1477 2043 1477 2043 1477 2043 1477 2042 1477 2042 1477 2042 1477 2041 1477 2041 1477 2036 1477 2035 1477 2034 1477 2033 1477 2033 1477 2032 1477 2031 1476 2030 1476 2027 1475 2026 1474 2024 1474 2024 1474 2024 1474 2021 1474 2022 1474 2023 1473 2026 1473 2026 1473 2027 1473 2030 1474 2031 1474 2032 1475 2033 1475 2038 1475 2038 1475 2038 1475 2035 1474 2034 1474 2032 1474 2032 1474 2032 1474 2032 1473 2032 1473 2033 1473 2033 1473 2035 1473 2035 1473 2036 1473 2036 1474 2039 1474 2042 1475 2045 1476 2045 1476 2047 1476 2047 1476 2048 1476 2049 1476 2050 1476 2051 1475 2051 1475 2052 1475 2052 1476 2052 1476 2053 1476 2053 1476 2055 1475 2056 1475 2057 1475 2057 1475 2058 1475 2058 1475 2060 1476 2060 1476 2066 1478 2067 1478 2067 1478 2068 1478 2069 1478 2069 1478 2070 1478 2071 1478 2071 1478 2073 1478 2074 1477 2074 1477 2074 1477 2073 1477 2072 1477 2072 1477 2071 1477 2068 1477 2066 1476 2066 1476 2064 1476 2061 1476 2061 1476 2060 1475 2059 1475 2056 1474 2055 1474 2054 1474 2054 1474 2053 1473 2054 1473 2054 1473 2055 1473 2056 1473 2056 1473 2057 1473 2057 1473 2057 1473 2058 1473 2059 1473 2061 1474 2061 1474 2061 1473 2061 1473 2060 1473 2060 1473 2060 1473 2057 1472 2057 1472 2058 1472 2058 1471 2058 1471 2058 1470 2058 1470 2057 1470 2058 1470 2058 1470 2059 1470 2059 1469 2060 1469 2063 1469 2063 1469 2064 1469 2064 1469 2063 1468 2063 1468 2063 1468 2058 1469 2058 1470 2056 1470 2054 1470 2052 1470 2052 1470 2052 1470 2051 1470 2051 1470 2050 1470 2050 1470 2052 1471 2053 1471 2053 1471 2054 1471 2055 1471 2055 1471 2055 1471 2056 1471 2056 1471 2057 1471 2057 1471 2057 1471 2057 1472 2057 1472 2056 1472 2055 1472 2055 1472 2054 1472 2054 1472 2053 1472 2053 1472 2052 1472 2052 1472 2051 1472 2050 1472 2048 1472 2047 1473 2046 1473 2045 1473 2043 1473 2041 1473 2038 1473 2038 1474 2037 1474 2037 1473 2037 1473 2037 1473 2037 1473 2037 1473 2037 1473 2036 1472 2034 1472 2034 1472 2033 1472 2033 1472 2033 1472 2033 1472 2034 1472 2034 1472 2034 1472 2034 1472 2034 1473 2033 1473 2033 1473 2033 1473 2032 1473 2030 1473 2029 1472 2030 1472 2030 1472 2030 1472 2031 1472 2031 1472 2032 1472 2032 1472 2032 1472 2033 1471 2033 1471 2032 1471 2030 1472 2030 1472 2029 1472 2027 1472 2027 1472 2026 1472 2026 1472 2025 1472 2023 1472 2023 1472 2023 1472 2023 1472 2023 1472 2023 1472 2022 1471 2022 1471 2024 1471 2025 1471 2025 1471 2025 1471 2026 1471 2027 1471 2031 1470 2035 1469 2035 1468 2035 1468 2035 1468 2034 1468 2034 1468 2036 1468 2037 1468 2038 1468 2041 1467 2043 1468 2045 1467 2045 1467 2046 1467 2047 1467 2047 1467 2047 1467 2047 1467 2046 1467 2045 1467 2045 1467 2045 1468 2045 1468 2047 1468 2047 1468 2047 1468 2047 1468 2048 1468 2048 1468 2049 1468 2049 1468 2049 1468 2050 1468 2050 1468 2051 1468 2051 1468 2052 1468 2052 1468 2053 1467 2055 1468 2058 1467 2060 1467 2060 1467 2060 1466 2061 1466 2062 1467 2062 1467 2062 1467 2063 1467 2063 1466 2063 1466 2063 1466 2063 1466 2062 1466 2062 1466 2062 1466 2061 1465 2061 1465 2062 1464 2063 1464 2064 1464 2066 1463 2066 1463 2066 1463 2065 1463 2064 1463 2063 1463 2063 1463 2062 1464 2061 1464 2060 1464 2060 1464 2060 1464 2058 1465 2057 1465 2056 1464 2057 1463 2057 1463 2058 1463 2059 1463 2059 1462 2061 1462 2061 1461 2060 1462 2060 1462 2059 1462 2059 1462 2059 1460 2059 1458 2064 1458 2064 1459 2063 1459 2063 1459 2062 1459 2062 1459 2061 1460 2061 1460 2062 1460 2062 1460 2062 1460 2062 1460 2064 1459 2065 1459 2065 1459 2066 1459 2067 1460 2068 1460 2068 1460 2068 1460 2068 1461 2070 1462 2071 1462 2071 1462 2071 1462 2071 1462 2071 1461 2070 1461 2069 1461 2069 1461 2069 1461 2069 1461 2069 1461 2069 1461 2069 1460 2069 1460 2069 1460 2071 1460 2072 1460 2072 1460 2072 1460 2072 1460 2072 1460 2072 1461 2072 1461 2072 1461 2072 1461 2073 1461 2073 1461 2073 1461 2074 1460 2073 1460 2073 1460 2073 1459 2073 1459 2072 1459 2072 1459 2072 1459 2071 1459 2070 1460 2070 1460 2069 1460 2069 1459 2067 1459 2066 1459 2065 1458 2066 1458 2066 1458 2068 1458 2069 1458 2071 1458 2072 1458 2073 1458 2074 1458 2074 1458 2074 1458 2074 1457 2074 1457 2074 1457 2074 1457 2074 1457 2074 1457 2073 1457 2073 1457 2073 1457 2072 1457 2072 1457 2072 1457 2070 1457 2069 1457 2069 1457 2069 1456 2069 1456 2070 1455 2070 1455 2070 1455 2070 1455 2070 1455 2069 1455 2069 1455 2069 1455 2068 1455 2067 1456 2067 1456 2066 1457 2065 1457 2062 1458 2061 1458 2060 1458 2059 1457 2058 1457 2059 1457 2060 1456 2061 1456 2062 1454 2063 1453 2063 1453 2063 1453 2065 1453 2068 1453 2070 1452 2070 1452 2071 1452 2071 1452 2072 1453 2072 1453 2073 1452 2073 1452 2073 1452 2073 1452 2073 1452 2069 1452 2068 1452 2068 1452 2068 1452 2067 1453 2067 1453 2065 1452 2063 1453 2062 1453 2062 1453 2062 1452 2063 1452 2063 1452 2063 1452 2064 1452 2064 1451 2063 1451 2063 1450 2064 1450 2064 1450 2064 1450 2066 1450 2068 1451 2069 1451 2070 1451 2070 1451 2070 1451 2070 1451 2069 1450 2067 1450 2066 1450 2065 1450 2065 1450 2065 1450 2064 1450 2064 1450 2063 1450 2063 1449 2063 1449 2064 1449 2064 1449 2064 1449 2065 1449 2065 1449 2066 1449 2066 1448 2066 1448 2067 1448 2067 1448 2067 1448 2067 1448 2068 1448 2071 1448 2073 1448 2073 1448 2073 1448 2071 1447 2070 1446 2070 1446 2070 1446 2069 1446 2068 1446 2067 1446 2067 1446 2067 1445 2067 1445 2067 1445 2068 1445 2070 1445 2071 1445 2071 1445 2072 1445 2073 1444 2073 1444 2073 1444 2073 1444 2073 1444 2073 1444 2072 1444 2072 1444 2070 1444 2069 1444 2069 1444 2067 1444 2066 1444 2061 1445 2061 1445 2058 1445 2056 1445 2059 1444 2059 1444 2059 1444 2060 1444 2060 1444 2060 1444 2060 1444 2061 1445 2061 1445 2062 1444 2062 1444 2063 1444 2062 1444 2062 1444 2060 1443 2059 1443 2059 1443 2057 1443 2056 1443 2056 1443 2056 1444 2056 1444 2055 1444 2055 1444 2054 1445 2053 1445 2053 1445 2053 1445 2052 1445 2051 1445 2051 1444 2047 1444 2047 1444 2047 1444 2046 1444 2046 1444 2045 1444 2045 1444 2045 1444 2044 1444 2044 1444 2042 1444 2042 1444 2041 1444 2039 1444 2039 1444 2039 1444 2036 1442 2035 1442 2035 1441 2035 1441 2034 1441 2033 1441 2031 1440 2030 1440 2027 1439 2025 1439 2025 1439 2023 1439 2020 1439 2015 1438 2014 1438 2014 1438 2012 1438 2012 1438 2010 1437 2010 1437 2010 1437 2009 1437 2009 1436 2008 1436 2008 1435 2007 1435 2004 1434 2004 1434 2004 1434 2003 1434 2003 1434 2002 1434 2003 1433 2004 1433 2007 1432 2008 1432 2008 1432 2009 1431 2010 1431 2010 1431 2010 1431 2011 1431 2011 1431 2012 1431 2017 1432 2019 1432 2019 1432 2019 1432 2020 1432 2021 1432 2022 1432 2023 1432 2025 1432 2027 1432 2029 1432 2033 1433 2037 1433 2037 1433 2038 1434 2038 1434 2041 1435 2044 1436 2046 1436 2048 1437 2051 1437 2053 1438 2055 1438 2057 1438 2058 1438 2059 1438 2061 1439 2063 1439 2064 1439 2064 1439 2064 1439 2065 1439 2065 1439 2066 1439 2066 1439 2067 1439 2067 1439 2067 1439 2067 1439 2068 1439 2068 1439 2068 1438 2067 1438 2067 1438 2067 1438 2067 1438 2066 1438 2066 1438 2066 1438 2066 1438 2066 1438 2067 1437 2067 1437 2067 1437 2068 1437 2068 1436 2069 1436 2068 1436 2068 1436 2068 1436 2067 1436 2067 1436 2067 1436 2066 1437 2066 1437 2065 1438 2064 1438 2064 1438 2064 1438 2063 1438 2061 1438 2060 1438 2060 1438 2059 1437 2059 1437 2059 1437 2060 1437 2061 1437 2061 1437 2061 1437 2059 1436 2059 1436 2059 1436 2058 1436 2057 1436 2055 1436 2055 1435 2055 1435 2055 1435 2057 1435 2058 1435 2060 1436 2062 1436 2062 1436 2062 1436 2065 1436 2064 1436 2064 1436 2063 1435 2062 1435 2061 1435 2061 1435 2061 1435 2061 1434 2062 1434 2062 1434 2062 1434 2063 1434 2063 1434 2064 1434 2065 1434 2065 1434 2065 1434 2065 1435 2066 1435 2066 1435 2066 1435 2066 1435 2067 1434 2066 1434 2066 1434 2064 1434 2063 1434 2063 1434 2062 1434 2062 1434 2061 1434 2061 1434 2060 1434 2059 1434 2059 1434 2058 1433 2057 1433 2057 1433 2054 1433 2054 1433 2054 1433 2053 1433 2053 1433 2054 1432 2055 1432 2056 1432 2056 1432 2056 1432 2056 1432 2056 1432 2056 1432 2056 1431 2057 1431 2061 1432 2064 1433 2064 1433 2064 1433 2065 1433 2066 1433 2066 1433 2066 1433 2066 1433 2064 1432 2064 1432 2063 1432 2062 1432 2062 1432 2062 1431 2062 1431 2062 1431 2062 1431 2063 1431 2063 1431 2063 1431 2063 1430 2062 1430 2062 1431 2061 1431 2060 1431 2060 1431 2059 1431 2059 1431 2058 1431 2058 1431 2058 1431 2057 1431 2057 1431 2057 1430 2056 1430 2055 1430 2055 1430 2053 1430 2051 1430 2051 1430 2050 1429 2050 1429 2050 1429 2050 1429 2049 1429 2047 1429 2045 1428 2046 1428 2046 1427 2047 1427 2047 1427 2047 1427 2048 1427 2048 1428 2049 1428 2051 1428 2052 1428 2052 1428 2053 1428 2054 1429 2055 1429 2055 1429 2056 1429 2056 1429 2057 1429 2057 1429 2058 1429 2061 1429 2061 1429 2061 1429 2062 1429 2062 1428 2061 1428 2061 1428 2059 1428 2058 1428 2056 1428 2054 1428 2053 1428 2053 1428 2053 1427 2053 1427 2054 1427 2054 1427 2055 1427 2055 1426 2056 1426 2056 1426 2057 1426 2057 1426 2057 1426 2056 1426 2056 1426 2054 1426 2053 1426 2053 1427 2052 1427 2051 1427 2050 1427 2049 1427 2049 1427 2049 1426 2049 1426 2048 1426 2047 1426 2047 1426 2046 1426 2045 1427 2045 1427 2044 1427 2044 1427 2043 1427 2042 1427 2042 1427 2041 1427 2041 1427 2041 1426 2041 1426 2042 1426 2042 1426 2043 1426 2043 1426 2043 1425 2044 1425 2044 1425 2044 1425 2044 1425 2046 1424 2047 1424 2047 1424 2049 1424 2050 1424 2050 1424 2051 1424 2051 1424 2052 1424 2052 1424 2052 1424 2050 1423 2050 1423 2049 1423 2048 1423 2048 1423 2047 1423 2046 1424 2046 1424 2043 1425 2040 1426 2038 1426 2038 1426 2037 1426 2037 1426 2037 1426 2036 1426 2036 1426 2036 1426 2036 1426 2036 1426 2036 1425 2036 1425 2037 1425 2037 1425 2037 1425 2038 1425 2039 1425 2039 1425 2039 1425 2040 1424 2040 1424 2040 1424 2041 1424 2040 1424 2040 1423 2040 1423 2040 1423 2040 1423 2040 1423 2041 1422 2042 1422 2044 1422 2047 1422 2050 1421 2051 1421 2052 1421 2053 1421 2053 1421 2054 1421 2054 1421 2054 1421 2055 1421 2055 1421 2052 1420 2052 1420 2051 1420 2049 1420 2049 1420 2045 1421 2042 1422 2040 1422 2040 1422 2039 1422 2038 1422 2038 1422 2037 1422 2037 1422 2035 1423 2034 1422 2033 1422 2030 1422 2029 1422 2029 1422 2029 1422 2029 1422 2029 1421 2030 1421 2032 1420 2033 1420 2034 1420 2037 1420 2038 1419 2039 1419 2041 1419 2044 1419 2047 1419 2047 1419 2048 1419 2048 1419 2048 1419 2049 1419 2049 1418 2049 1418 2050 1418 2050 1417 2050 1417 2050 1417 2049 1417 2048 1417 2048 1417 2048 1417 2048 1417 2047 1417 2047 1417 2047 1418 2047 1418 2047 1418 2046 1418 2045 1418 2042 1419 2042 1419 2042 1419 2038 1418 2035 1418 2034 1418 2032 1418 2031 1418 2029 1418 2027 1417 2026 1417 2025 1417 2024 1417 2024 1417 2025 1417 2025 1417 2026 1416 2027 1416 2028 1416 2029 1416 2029 1416 2030 1416 2030 1415 2031 1415 2031 1415 2031 1415 2030 1415 2030 1414 2030 1414 2032 1413 2032 1413 2032 1413 2033 1413 2033 1413 2033 1413 2033 1412 2033 1412 2033 1412 2032 1412 2032 1412 2029 1413 2028 1414 2028 1414 2029 1415 2028 1415 2025 1416 2023 1415 2023 1414 2022 1413 2022 1413 2022 1412 2022 1412 2022 1412 2022 1412 2022 1412 2022 1412 2021 1411 2021 1411 2020 1411 2020 1411 2019 1411 2018 1411 2017 1411 2017 1411 2017 1410 2017 1410 2016 1409 2015 1408 2015 1407 2015 1407 2015 1407 2015 1407 2016 1407 2018 1407 2019 1407 2020 1407 2019 1407 2019 1407 2015 1407 2015 1407 2014 1407 2013 1407 2013 1407 2013 1407 2014 1408 2014 1408 2015 1409 2015 1410 2015 1410 2016 1410 2016 1410 2016 1411 2017 1411 2017 1411 2018 1411 2018 1411 2019 1412 2019 1412 2020 1412 2020 1413 2022 1415 2022 1415 2022 1415 2021 1416 2020 1416 2020 1416 2019 1417 2018 1417 2018 1417 2017 1417 2016 1417 2014 1417 2014 1417 2014 1417 2014 1417 2014 1417 2014 1417 2016 1417 2016 1417 2016 1417 2016 1417 2017 1417 2017 1418 2017 1418 2017 1418 2017 1418 2017 1418 2016 1418 2016 1418 2015 1418 2014 1418 2014 1418 2014 1418 2013 1418 2013 1418 2013 1418 2013 1418 2013 1417 2012 1417 2012 1417 2012 1417 2012 1417 2011 1417 2011 1417 2011 1417 2011 1418 2012 1419 2012 1419 2012 1419 2013 1419 2014 1419 2015 1419 2015 1420 2015 1420 2015 1420 2015 1420 2015 1421 2014 1421 2014 1421 2014 1421 2014 1421 2010 1422 2009 1422 2007 1423 2006 1423 2006 1423 2004 1423 2004 1423 2003 1423 2003 1423 2003 1423 2002 1423 2000 1423 1999 1423 1999 1423 1998 1423 1995 1422 1994 1421 1994 1421 1993 1421 1993 1421 1993 1421 1992 1421 1992 1421 1993 1421 1993 1421 1994 1422 1995 1422 1995 1422 1994 1422 1994 1422 1993 1422 1992 1422 1991 1422 1991 1422 1990 1422 1989 1422 1989 1421 1988 1421 1988 1421 1988 1421 1986 1419 1986 1419 1986 1418 1987 1419 1987 1418 1987 1418 1986 1418 1984 1418 1982 1418 1982 1418 1982 1417 1983 1417 1983 1417 1984 1417 1984 1417 1985 1417 1988 1416 1989 1416 1990 1415 1991 1415 1991 1414 1992 1414 1993 1414 1995 1414 1995 1414 1996 1414 1996 1414 1998 1414 1998 1414 1999 1414 1999 1414 2002 1413 2003 1412 2003 1412 2004 1412 2004 1412 2004 1412 2004 1411 2004 1411 2004 1411 2005 1409 2006 1409 2006 1409 2006 1409 2006 1409 2006 1409 2004 1410 2004 1410 2002 1411 2002 1412 2002 1412 1999 1413 1999 1413 1998 1414 1998 1414 1997 1414 1997 1414 1996 1414 1995 1414 1994 1414 1993 1414 1993 1414 1992 1414 1992 1414 1989 1413 1987 1413 1987 1413 1988 1412 1988 1412 1990 1411 1993 1410 1993 1410 1998 1409 1997 1408 1997 1407 1997 1407 1998 1407 2000 1407 2000 1407 2001 1407 2002 1407 2001 1407 2001 1407 2001 1407 2000 1407 2000 1407 2000 1407 1998 1406 1998 1406 1997 1406 1997 1406 1997 1406 1997 1406 1998 1406 1998 1406 1998 1406 1998 1406 1996 1406 1995 1406 1994 1406 1993 1407 1993 1407 1993 1407 1993 1407 1992 1407 1992 1407 1992 1406 1990 1406 1989 1406 1988 1406 1987 1406 1987 1406 1986 1406 1986 1405 1987 1405 1987 1405 1989 1404 1989 1404 1989 1404 1990 1404 1990 1404 1991 1404 1992 1405 1997 1405 2004 1405 2004 1405 2006 1405 2006 1405 2006 1405 2006 1405 2007 1405 2007 1405 2007 1405 2007 1405 2008 1405 2008 1405 2006 1404 2006 1404 2006 1404 2005 1404 2004 1404 2004 1405 2004 1405 2003 1405 2003 1405 2003 1405 2001 1405 2000 1404 2000 1404 2000 1404 1997 1404 1996 1404 1996 1404 1996 1404 1996 1404 1997 1403 1998 1403 2000 1403 2001 1403 2001 1403 2002 1403 2002 1403 2002 1402 2002 1402 2002 1402 2001 1403 2001 1403 2001 1403 1999 1402 1999 1402 1999 1402 1998 1402 2001 1401 2001 1401 2002 1401 2002 1400 2000 1400 1999 1400 1998 1400 1998 1400 1998 1400 1999 1400 2000 1400 2001 1400 2001 1400 2002 1400 2003 1399 2002 1398 1999 1397 1999 1396 1999 1396 1998 1396 1998 1396 1996 1396 1995 1396 1993 1396 1991 1396 1991 1396 1990 1396 1990 1396 1990 1395 1989 1395 1988 1395 1988 1395 1988 1396 1987 1396 1986 1396 1986 1396 1986 1396 1986 1396 1985 1396 1985 1395 1986 1395 1986 1395 1986 1395 1987 1395 1988 1395 1988 1395 1989 1395 1989 1395 1989 1394 1991 1394 1994 1394 1994 1394 1994 1393 1993 1393 1992 1393 1992 1393 1992 1393 1991 1393 1990 1393 1989 1392 1992 1390 1992 1390 1993 1390 1993 1390 1993 1391 1993 1391 1994 1391 1994 1391 1994 1391 1995 1391 1995 1391 1995 1391 1994 1390 1994 1390 1994 1390 1993 1390 1992 1390 1990 1389 1990 1389 1989 1389 1988 1389 1988 1389 1988 1389 1988 1388 1986 1387 1986 1387 1986 1387 1985 1387 1981 1387 1980 1386 1980 1386 1979 1386 1979 1386 1980 1386 1980 1386 1981 1386 1981 1386 1983 1386 1983 1386 1982 1386 1982 1386 1982 1386 1981 1386 1981 1386 1980 1386 1980 1386 1980 1386 1981 1384 1981 1384 1982 1384 1982 1385 1983 1385 1984 1385 1986 1385 1986 1385 1987 1385 1987 1385 1986 1385 1986 1385 1986 1385 1985 1385 1985 1385 1985 1385 1985 1385 1982 1384 1981 1383 1982 1383 1984 1383 1985 1383 1985 1383 1985 1383 1986 1383 1986 1383 1986 1383 1986 1383 1986 1383 1986 1382 1985 1382 1983 1382 1982 1382 1979 1381 1979 1380 1979 1380 1979 1380 1980 1380 1980 1380 1980 1380 1981 1380 1981 1380 1981 1380 1981 1380 1981 1380 1980 1380 1980 1380 1977 1380 1977 1380 1975 1380 1974 1379 1974 1379 1975 1379 1975 1379 1976 1379 1978 1377 1979 1376 1978 1376 1978 1376 1978 1376 1977 1376 1977 1376 1976 1377 1972 1378 1971 1378 1971 1378 1970 1378 1968 1378 1968 1378 1966 1378 1966 1378 1964 1379 1963 1379 1962 1379 1960 1379 1960 1379 1959 1379 1960 1378 1960 1378 1960 1378 1960 1378 1961 1378 1961 1378 1964 1378 1966 1377 1966 1377 1967 1377 1967 1377 1968 1377 1969 1377 1969 1377 1970 1377 1971 1377 1971 1377 1971 1377 1972 1376 1972 1376 1974 1376 1975 1376 1976 1376 1976 1376 1975 1376 1975 1376 1974 1376 1974 1376 1973 1376 1972 1376 1972 1376 1972 1376 1971 1376 1969 1375 1970 1375 1970 1375 1973 1375 1974 1375 1975 1375 1978 1375 1978 1375 1978 1374 1978 1374 1978 1374 1977 1374 1977 1374 1976 1374 1976 1374 1974 1374 1974 1374 1972 1374 1971 1374 1968 1374 1968 1373 1969 1373 1970 1373 1971 1373 1972 1373 1975 1373 1977 1373 1977 1372 1977 1372 1977 1372 1976 1372 1975 1372 1975 1372 1974 1372 1971 1371 1971 1371 1970 1370 1967 1369 1967 1369 1966 1369 1966 1369 1965 1369 1965 1370 1965 1370 1965 1370 1964 1370 1963 1369 1962 1368 1962 1368 1963 1368 1963 1368 1963 1368 1963 1368 1964 1368 1964 1368 1965 1368 1965 1368 1967 1368 1966 1367 1965 1366 1964 1366 1964 1366 1963 1366 1962 1366 1962 1366 1961 1366 1960 1366 1960 1366 1960 1366 1959 1366 1959 1366 1958 1365 1955 1365 1952 1364 1952 1364 1951 1364 1951 1364 1951 1364 1950 1364 1950 1364 1950 1364 1948 1364 1947 1364 1947 1364 1947 1364 1947 1364 1946 1364 1946 1364 1946 1363 1947 1363 1949 1362 1949 1362 1950 1362 1950 1362 1950 1362 1950 1362 1949 1362 1945 1361 1943 1360 1943 1360 1943 1360 1944 1359 1944 1358 1944 1358 1943 1358 1943 1358 1942 1358 1942 1358 1941 1358 1941 1359 1941 1359 1941 1359 1940 1359 1940 1359 1938 1359 1938 1359 1938 1359 1937 1359 1938 1359 1939 1358 1940 1358 1942 1358 1944 1358 1944 1358 1945 1358 1946 1356 1946 1356 1946 1356 1943 1356 1943 1356 1943 1356 1942 1356 1942 1356 1942 1356 1942 1355 1942 1355 1942 1355 1943 1355 1943 1355 1943 1355 1943 1354 1944 1354 1943 1354 1943 1354 1942 1354 1941 1354 1941 1354 1941 1354 1940 1354 1939 1354 1939 1354 1939 1354 1940 1354 1940 1353 1940 1353 1941 1353 1941 1353 1942 1353 1942 1353 1942 1353 1942 1353 1942 1353 1940 1353 1940 1353 1939 1353 1938 1353 1937 1353 1936 1353 1936 1353 1936 1353 1935 1353 1932 1353 1932 1353 1931 1353 1929 1352 1929 1352 1930 1351 1930 1351 1930 1351 1930 1351 1930 1351 1929 1351 1928 1351 1925 1351 1924 1351 1924 1351 1924 1351 1923 1351 1923 1351 1923 1352 1923 1352 1921 1352 1921 1352 1920 1352 1920 1352 1920 1352 1920 1351 1920 1351 1921 1351 1921 1351 1922 1350 1922 1350 1922 1350 1923 1350 1923 1350 1922 1349 1921 1349 1921 1349 1920 1349 1920 1349 1920 1349 1919 1350 1918 1350 1917 1350 1917 1350 1917 1350 1915 1349 1915 1349 1915 1349 1915 1348 1915 1348 1915 1348 1913 1348 1912 1348 1909 1348 1909 1348 1909 1348 1909 1348 1908 1348 1907 1348 1905 1349 1905 1349 1905 1349 1903 1348 1903 1347 1903 1347 1903 1346 1903 1346 1903 1346 1902 1346 1902 1346 1896 1346 1895 1346 1895 1346 1894 1346 1894 1346 1892 1346 1890 1346 1890 1346 1889 1346 1886 1345 1886 1345 1886 1345 1885 1345 1885 1345 1884 1345 1883 1345 1883 1345 1882 1345 1882 1345 1882 1345 1882 1345 1882 1345 1882 1345 1882 1344 1881 1344 1881 1344 1881 1344 1880 1344 1880 1344 1879 1344 1879 1345 1879 1345 1878 1345 1877 1345 1876 1345 1876 1344 1875 1344 1873 1344 1873 1345 1872 1345 1873 1345 1873 1345 1873 1345 1873 1345 1873 1345 1872 1346 1872 1345 1871 1345 1871 1345 1872 1344 1872 1344 1872 1344 1871 1344 1871 1344 1871 1344 1868 1343 1866 1343 1866 1343 1863 1343 1863 1343 1862 1343 1861 1343 1861 1343 1861 1343 1861 1343 1861 1343 1861 1344 1857 1346 1856 1346 1856 1346 1853 1346 1853 1346 1852 1346 1851 1346 1851 1346 1850 1346 1849 1345 1849 1344 1849 1344 1850 1344 1850 1343 1849 1343 1848 1343 1847 1343 1846 1343 1846 1343 1846 1343 1847 1344 1847 1344 1847 1345 1846 1345 1845 1345 1844 1345 1844 1345 1843 1345 1843 1344 1843 1344 1843 1344 1842 1344 1842 1344 1842 1345 1842 1346 1842 1346 1842 1346 1842 1346 1843 1346 1843 1346 1843 1347 1843 1347 1842 1347 1842 1347 1842 1347 1841 1347 1841 1346 1840 1346 1840 1346 1839 1346 1839 1346 1838 1346 1837 1346 1837 1346 1836 1346 1836 1346 1835 1347 1834 1347 1834 1347 1833 1346 1833 1346 1834 1346 1833 1346 1833 1346 1832 1346 1831 1346 1831 1347 1831 1347 1832 1347 1832 1347 1832 1347 1832 1348 1831 1348 1830 1348 1829 1348 1829 1348 1828 1348 1827 1348 1826 1348 1824 1347 1823 1347 1823 1347 1823 1347 1823 1347 1823 1347 1824 1347 1824 1347 1825 1346 1825 1346 1826 1346 1826 1345 1825 1345 1825 1345 1825 1345 1825 1345 1825 1345 1825 1345 1826 1345 1828 1345 1828 1345 1828 1345 1827 1345 1826 1344 1825 1344 1825 1344 1824 1344 1822 1344 1818 1344 1818 1344 1818 1344 1818 1344 1815 1346 1815 1347 1815 1347 1815 1347 1815 1347 1814 1347 1813 1347 1813 1347 1813 1347 1812 1347 1808 1345 1808 1345 1806 1344 1805 1344 1805 1344 1804 1344 1803 1345 1803 1345 1803 1345 1803 1345 1800 1346 1800 1346 1800 1346 1800 1346 1801 1346 1802 1346 1802 1346 1803 1346 1804 1346 1804 1346 1804 1347 1805 1347 1805 1347 1805 1347 1806 1348 1807 1348 1807 1348 1808 1348 1809 1348 1810 1349 1813 1349 1813 1350 1814 1350 1813 1350 1813 1350 1812 1350 1812 1350 1811 1350 1811 1350 1811 1350 1810 1350 1810 1350 1809 1349 1804 1349 1801 1349 1800 1349 1799 1348 1797 1348 1795 1348 1793 1348 1791 1348 1791 1348 1786 1347 1784 1347 1783 1347 1783 1347 1783 1347 1782 1347 1781 1347 1781 1347 1780 1347 1780 1347 1780 1347 1780 1347 1781 1346 1782 1346 1782 1346 1782 1346 1781 1346 1781 1346 1780 1346 1779 1346 1777 1346 1776 1346 1776 1346 1777 1346 1776 1346 1776 1345 1774 1345 1774 1345 1773 1344 1772 1344 1772 1344 1771 1344 1769 1344 1769 1344 1768 1344 1768 1344 1766 1344 1763 1343 1763 1343 1763 1342 1764 1342 1764 1342 1765 1342 1765 1342 1768 1341 1769 1341 1771 1341 1772 1341 1773 1341 1774 1340 1776 1340 1776 1340 1777 1339 1778 1339 1778 1339 1779 1339 1780 1339 1781 1339 1782 1339 1782 1339 1783 1339 1788 1339 1788 1339 1789 1339 1789 1339 1789 1339 1789 1339 1789 1338 1789 1338 1787 1337 1787 1337 1787 1338 1786 1338 1784 1338 1783 1338 1780 1338 1780 1338 1779 1338 1777 1338 1776 1338 1775 1338 1775 1338 1772 1338 1770 1338 1767 1338 1766 1337 1763 1337 1763 1337 1761 1337 1758 1337 1757 1337 1757 1336 1756 1336 1756 1336 1755 1336 1756 1335 1756 1335 1757 1335 1758 1335 1758 1335 1759 1335 1759 1335 1759 1334 1760 1334 1760 1333 1761 1333 1761 1333 1762 1333 1762 1333 1763 1333 1764 1333 1764 1333 1764 1333 1764 1333 1764 1333 1762 1332 1761 1332 1761 1332 1761 1333 1761 1333 1760 1333 1760 1333 1757 1334 1755 1335 1751 1336 1751 1336 1750 1336 1750 1336 1749 1336 1749 1336 1748 1336 1746 1336 1744 1335 1744 1335 1741 1334 1741 1334 1741 1334 1744 1334 1746 1334 1746 1334 1744 1334 1743 1334 1743 1334 1742 1334 1742 1333 1741 1333 1741 1333 1740 1333 1740 1333 1739 1333 1739 1334 1738 1334 1738 1333 1737 1333 1736 1333 1735 1333 1735 1332 1735 1332 1735 1332 1735 1332 1735 1332 1738 1331 1741 1330 1743 1330 1744 1330 1743 1330 1742 1330 1742 1330 1742 1330 1749 1329 1751 1329 1755 1329 1757 1329 1758 1329 1758 1329 1760 1329 1762 1329 1764 1329 1767 1329 1771 1329 1773 1330 1775 1330 1776 1330 1778 1330 1778 1330 1779 1330 1780 1330 1783 1330 1785 1330 1787 1330 1787 1330 1788 1330 1789 1330 1790 1329 1791 1329 1791 1329 1792 1329 1793 1330 1798 1330 1801 1330 1804 1330 1806 1331 1806 1331 1809 1331 1814 1331 1814 1330 1815 1330 1816 1330 1817 1330 1818 1330 1818 1330 1818 1330 1818 1330 1815 1330 1810 1330 1810 1330 1809 1330 1807 1330 1806 1330 1806 1330 1806 1330 1805 1330 1804 1330 1803 1330 1798 1330 1797 1330 1797 1330 1795 1329 1795 1329 1794 1329 1791 1329 1790 1329 1789 1329 1789 1329 1788 1329 1787 1329 1787 1329 1786 1329 1784 1329 1781 1329 1780 1329 1778 1329 1775 1329 1774 1329 1772 1329 1772 1329 1771 1328 1771 1328 1772 1328 1773 1328 1773 1328 1775 1328 1778 1327 1779 1327 1781 1327 1784 1327 1785 1327 1785 1327 1787 1327 1789 1327 1790 1327 1792 1327 1793 1326 1794 1326 1795 1326 1797 1326 1800 1327 1804 1327 1808 1327 1809 1327 1809 1327 1809 1327 1810 1327 1810 1328 1811 1328 1812 1328 1812 1328 1812 1328 1813 1328 1817 1329 1817 1329 1817 1329 1818 1329 1818 1329 1818 1328 1817 1328 1817 1328 1817 1328 1816 1328 1815 1328 1814 1328 1814 1328 1813 1328 1813 1328 1812 1327 1810 1326 1811 1326 1812 1326 1813 1326 1813 1326 1815 1326 1816 1326 1817 1326 1818 1326 1819 1326 1819 1326 1819 1326 1820 1325 1820 1325 1820 1325 1818 1324 1817 1323 1816 1323 1816 1323 1812 1322 1809 1322 1804 1322 1803 1322 1803 1322 1803 1322 1802 1323 1802 1323 1801 1323 1801 1323 1800 1324 1800 1324 1796 1324 1796 1324 1793 1325 1792 1325 1792 1325 1790 1324 1787 1325 1785 1325 1783 1325 1783 1325 1783 1325 1783 1324 1783 1324 1783 1324 1783 1324 1783 1323 1782 1323 1779 1322 1778 1322 1778 1322 1777 1322 1777 1322 1776 1322 1776 1322 1776 1322 1777 1323 1777 1323 1778 1323 1778 1323 1779 1324 1779 1324 1779 1324 1779 1324 1779 1325 1778 1325 1778 1325 1777 1325 1775 1325 1774 1325 1772 1325 1771 1325 1770 1325 1770 1325 1770 1325 1769 1325 1768 1325 1766 1325 1765 1325 1763 1325 1758 1324 1757 1324 1757 1324 1756 1324 1753 1324 1752 1324 1752 1324 1753 1323 1755 1323 1756 1323 1757 1323 1758 1323 1760 1322 1765 1322 1765 1322 1765 1321 1765 1321 1765 1321 1764 1321 1764 1321 1763 1321 1762 1321 1762 1321 1761 1322 1760 1322 1759 1322 1758 1322 1758 1322 1757 1322 1756 1322 1756 1322 1755 1322 1752 1322 1752 1322 1751 1322 1747 1322 1747 1321 1749 1321 1751 1320 1752 1320 1753 1320 1753 1320 1753 1320 1754 1320 1754 1320 1755 1320 1757 1320 1757 1319 1757 1319 1757 1319 1756 1319 1751 1319 1750 1319 1749 1319 1749 1319 1748 1319 1747 1320 1747 1320 1747 1320 1746 1320 1746 1320 1742 1320 1741 1320 1740 1320 1739 1320 1738 1321 1737 1321 1737 1321 1736 1320 1736 1320 1734 1320 1734 1320 1734 1320 1735 1320 1736 1319 1737 1319 1737 1319 1738 1319 1737 1319 1737 1319 1737 1319 1736 1319 1735 1319 1735 1319 1734 1319 1734 1319 1733 1319 1733 1319 1732 1319 1731 1319 1732 1318 1731 1318 1731 1318 1729 1318 1729 1318 1729 1318 1728 1318 1728 1318 1728 1318 1727 1318 1727 1319 1726 1319 1726 1318 1726 1318 1725 1318 1725 1318 1724 1318 1723 1318 1721 1318 1719 1317 1719 1316 1720 1316 1720 1316 1720 1316 1720 1316 1719 1316 1717 1316 1715 1315 1711 1314 1711 1314 1710 1314 1710 1314 1709 1314 1708 1314 1708 1314 1708 1314 1709 1314 1709 1314 1710 1314 1710 1314 1711 1314 1711 1314 1712 1314 1713 1314 1713 1313 1713 1313 1712 1313 1712 1313 1712 1313 1714 1312 1714 1312 1715 1312 1715 1312 1715 1312 1717 1312 1718 1312 1717 1312 1716 1312 1716 1312 1714 1312 1713 1312 1712 1312 1712 1312 1711 1312 1712 1311 1712 1311 1713 1311 1714 1311 1714 1311 1715 1310 1716 1310 1716 1310 1715 1309 1715 1309 1715 1309 1715 1309 1716 1308 1716 1308 1719 1308 1721 1308 1723 1308 1723 1308 1727 1308 1727 1308 1728 1307 1728 1307 1730 1307 1730 1307 1731 1307 1732 1307 1732 1307 1735 1306 1737 1306 1737 1306 1738 1307 1738 1307 1739 1307 1741 1307 1743 1307 1744 1306 1744 1306 1745 1306 1746 1305 1748 1305 1751 1305 1754 1305 1757 1305 1758 1304 1757 1304 1757 1304 1758 1304 1758 1304 1759 1304 1759 1304 1762 1304 1763 1304 1766 1304 1768 1303 1769 1303 1770 1303 1771 1303 1773 1303 1774 1303 1774 1303 1775 1303 1775 1303 1775 1303 1776 1303 1776 1303 1776 1303 1775 1303 1774 1302 1773 1302 1772 1302 1771 1302 1771 1302 1770 1302 1771 1302 1771 1301 1771 1301 1771 1301 1772 1301 1772 1301 1775 1301 1776 1301 1777 1300 1783 1300 1784 1300 1787 1300 1788 1300 1788 1300 1789 1300 1789 1300 1790 1300 1791 1300 1793 1300 1793 1300 1794 1300 1794 1300 1793 1300 1793 1300 1793 1300 1793 1299 1793 1299 1797 1299 1798 1299 1800 1299 1801 1299 1801 1299 1803 1299 1805 1299 1808 1299 1809 1299 1811 1298 1815 1298 1815 1298 1816 1299 1817 1299 1818 1299 1819 1299 1819 1299 1820 1299 1821 1299 1821 1299 1821 1299 1823 1298 1822 1298 1823 1298 1826 1297 1826 1297 1827 1297 1828 1296 1830 1296 1830 1295 1830 1295 1831 1295 1831 1295 1833 1295 1834 1295 1835 1295 1834 1294 1836 1294 1836 1293 1836 1293 1836 1293 1837 1293 1838 1293 1839 1293 1839 1293 1839 1293 1839 1292 1840 1292 1840 1291 1840 1291 1839 1291 1839 1291 1838 1290 1838 1290 1837 1290 1836 1289 1836 1287 1836 1286 1837 1286 1836 1285 1836 1285 1836 1284 1836 1284 1841 1284 1847 1284 1847 1284 1848 1283 1848 1283 1849 1283 1850 1283 1850 1283 1850 1283 1851 1283 1851 1283 1852 1283 1852 1283 1853 1283 1854 1283 1855 1283 1856 1283 1856 1282 1855 1282 1854 1282 1854 1282 1853 1282 1850 1282 1850 1282 1850 1282 1850 1281 1850 1281 1850 1281 1850 1281 1849 1281 1849 1281 1848 1281 1848 1282 1848 1282 1847 1283 1845 1283 1845 1283 1844 1283 1844 1283 1843 1283 1839 1284 1839 1284 1838 1284 1838 1284 1837 1284 1834 1283 1834 1283 1833 1283 1833 1283 1833 1283 1832 1283 1831 1283 1830 1284 1829 1284 1828 1284 1828 1284 1825 1284 1825 1285 1824 1285 1822 1285 1821 1285 1820 1285 1820 1284 1819 1284 1819 1284 1819 1284 1819 1284 1819 1284 1818 1284 1814 1283 1814 1283 1813 1283 1813 1283 1812 1283 1811 1284 1809 1284 1804 1284 1804 1284 1804 1284 1804 1284 1803 1283 1803 1282 1802 1282 1802 1282 1802 1282 1801 1282 1801 1282 1801 1282 1800 1282 1799 1282 1798 1282 1797 1282 1797 1282 1797 1280 1797 1279 1798 1279 1798 1279 1799 1279 1802 1279 1804 1278 1808 1277 1808 1277 1809 1277 1809 1277 1809 1276 1808 1276 1808 1276 1808 1276 1809 1276 1809 1276 1810 1276 1811 1276 1814 1276 1814 1276 1814 1276 1815 1275 1816 1275 1817 1275 1818 1275 1819 1275 1820 1275 1820 1275 1820 1274 1820 1274 1820 1274 1821 1274 1822 1274 1822 1274 1823 1274 1825 1274 1827 1274 1828 1274 1829 1274 1829 1274 1828 1274 1826 1274 1826 1274 1825 1274 1826 1273 1826 1273 1826 1273 1830 1273 1832 1273 1833 1273 1834 1272 1834 1272 1834 1272 1835 1272 1836 1272 1836 1272 1837 1271 1837 1271 1836 1271 1836 1271 1837 1270 1838 1270 1839 1270 1840 1270 1840 1270 1841 1270 1841 1270 1841 1270 1841 1270 1841 1270 1840 1270 1840 1269 1840 1269 1840 1269 1840 1269 1841 1269 1841 1269 1843 1269 1844 1269 1844 1269 1844 1269 1845 1269 1845 1269 1845 1268 1846 1268 1848 1268 1849 1268 1853 1268 1854 1268 1854 1268 1854 1268 1855 1268 1855 1267 1855 1267 1856 1267 1856 1267 1857 1267 1858 1266 1858 1266 1859 1266 1860 1266 1860 1267 1861 1267 1861 1267 1862 1267 1862 1268 1862 1268 1862 1268 1864 1270 1864 1270 1865 1270 1869 1272 1869 1272 1869 1272 1870 1272 1872 1273 1872 1273 1873 1273 1873 1272 1873 1272 1873 1272 1872 1272 1871 1272 1869 1271 1866 1270 1866 1269 1865 1269 1863 1268 1863 1267 1863 1266 1863 1266 1864 1266 1865 1266 1868 1265 1868 1265 1869 1265 1871 1265 1872 1265 1872 1265 1872 1265 1873 1265 1873 1266 1874 1266 1877 1266 1878 1266 1879 1266 1880 1266 1880 1266 1881 1266 1883 1266 1885 1266 1887 1267 1891 1268 1892 1268 1892 1268 1893 1268 1893 1267 1892 1267 1892 1267 1893 1267 1897 1267 1897 1267 1899 1267 1899 1267 1900 1267 1901 1266 1902 1266 1902 1266 1901 1266 1900 1266 1900 1266 1899 1265 1899 1265 1896 1263 1897 1263 1900 1262 1901 1262 1901 1262 1902 1262 1903 1262 1904 1261 1904 1261 1904 1261 1904 1261 1904 1261 1904 1261 1904 1260 1903 1260 1903 1260 1902 1260 1900 1260 1898 1259 1895 1258 1895 1258 1893 1257 1893 1257 1894 1257 1894 1256 1895 1256 1896 1256 1897 1256 1899 1255 1902 1255 1903 1255 1904 1255 1906 1254 1907 1254 1909 1254 1911 1254 1914 1254 1915 1254 1916 1254 1916 1254 1917 1254 1919 1254 1922 1254 1923 1254 1924 1254 1925 1254 1928 1255 1931 1255 1932 1255 1933 1255 1934 1255 1935 1255 1936 1255 1936 1255 1936 1255 1936 1256 1937 1256 1937 1257 1936 1257 1936 1257 1937 1257 1937 1258 1937 1258 1937 1258 1938 1258 1938 1258 1939 1258 1942 1259 1950 1259 1951 1259 1952 1259 1952 1259 1953 1259 1954 1259 1954 1259 1955 1259 1956 1260 1956 1260 1956 1260 1957 1260 1957 1260 1958 1261 1959 1261 1961 1261 1962 1261 1962 1261 1961 1261 1960 1261 1960 1261 1960 1262 1961 1262 1961 1262 1962 1262 1963 1262 1966 1262 1969 1263 1969 1263 1969 1263 1971 1263 1971 1263 1972 1263 1972 1263 1973 1263 1973 1263 1972 1263 1971 1263 1971 1262 1970 1262 1970 1262 1967 1262 1965 1262 1964 1262 1964 1262 1963 1262 1962 1261 1962 1260 1962 1260 1961 1260 1959 1260 1955 1259 1953 1259 1953 1258 1953 1258 1952 1258 1949 1258 1948 1258 1947 1258 1945 1257 1943 1257 1943 1257 1941 1255 1941 1255 1941 1255 1941 1255 1941 1255 1940 1255 1936 1254 1934 1254 1933 1254 1932 1254 1930 1254 1928 1253 1926 1253 1926 1253 1925 1253 1926 1253 1927 1253 1928 1252 1929 1252 1933 1252 1938 1251 1942 1251 1943 1251 1943 1251 1944 1251 1951 1250 1953 1250 1956 1250 1959 1250 1960 1250 1963 1250 1965 1250 1967 1249 1970 1249 1971 1249 1972 1249 1973 1249 1974 1249 1974 1249 1975 1250 1975 1250 1975 1250 1976 1250 1976 1250 1976 1250 1978 1250 1978 1249 1979 1249 1979 1249 1980 1249 1982 1248 1983 1249 1983 1249 1983 1249 1984 1249 1985 1249 1987 1249 1988 1249 1989 1249 1989 1249 1991 1249 1992 1249 1992 1249 1993 1249 1993 1249 1993 1249 1992 1249 1991 1249 1991 1249 1991 1250 1992 1250 1994 1250 1995 1250 1995 1250 1995 1250 1995 1250 1994 1249 1993 1249 1993 1249 1992 1248 1992 1248 1992 1248 1991 1248 1988 1248 1987 1248 1987 1248 1987 1248 1988 1248 1994 1248 1998 1247 2001 1247 2003 1247 2004 1247 2005 1247 2006 1247 2006 1247 2011 1248 2011 1248 2015 1249 2016 1249 2019 1251 2020 1251 2020 1251 2020 1254 2021 1254 2020 1254 2020 1254 2020 1255 2019 1256 2019 1256 2019 1256 2018 1256 2018 1256 2018 1256 2017 1257 2017 1257 2016 1257 2016 1257 2015 1258 2016 1260 2016 1260 2017 1260 2018 1260 2018 1261 2019 1261 2020 1261 2021 1261 2020 1260 2020 1258 2020 1258 2020 1258 2023 1257 2024 1257 2024 1257 2024 1257 2025 1256 2025 1256 2026 1256 2027 1256 2027 1256 2029 1255 2029 1255 2029 1255 2030 1255 2030 1254 2029 1254 2029 1253 2029 1253 2028 1253 2028 1253 2028 1253 2028 1253 2028 1252 2029 1252 2029 1252 2029 1252 2030 1252 2031 1252 2032 1252 2032 1252 2036 1253 2037 1253 2038 1253 2039 1253 2044 1254 2046 1254 2049 1254 2051 1254 2053 1254 2055 1255 2056 1255 2057 1255 2058 1255 2060 1255 2063 1256 2064 1256 2064 1256 2065 1256 2067 1257 2068 1257 2069 1257 2070 1257 2071 1257 2071 1257 2072 1257 2073 1257 2073 1258 2073 1258 2073 1258 2073 1258 2073 1259 2074 1259 2077 1259 2078 1259 2079 1259 2079 1259 2082 1259 2082 1258 2081 1258 2080 1258 2080 1258 2079 1258 2078 1258 2078 1258 2078 1258 2078 1258 2078 1258 2078 1257 2077 1257 2076 1257 2075 1257 2074 1257 2071 1257 2069 1256 2069 1256 2068 1256 2068 1256 2067 1256 2067 1256 2066 1256 2066 1255 2066 1255 2066 1255 2065 1255 2063 1255 2062 1255 2062 1255 2060 1254 2060 1254 2059 1254 2060 1254 2060 1254 2060 1254 2061 1254 2062 1254 2063 1254 2063 1254 2064 1254 2065 1254 2069 1254 2073 1254 2074 1254 2076 1255 2076 1255 2078 1255 2079 1255 2079 1255 2080 1255 2081 1255 2083 1254 2085 1254 2084 1254 2084 1253 2083 1253 2081 1253 2079 1253 2077 1253 2075 1252 2074 1252 2074 1252 2074 1252 2073 1252 2071 1251 2069 1251 2066 1250 2065 1250 2065 1250 2065 1250 2064 1249 2064 1249 2064 1248 2064 1248 2064 1248 2064 1248 2063 1247 2063 1247 2063 1247 2062 1247 2062 1247 2061 1246 2060 1246 2060 1246 2060 1246 2059 1245 2059 1245 2059 1245 2060 1245 2064 1245 2067 1245 2068 1245 2070 1244 2071 1244 2072 1245 2073 1245 2076 1245 2079 1245 2079 1245 2080 1245 2083 1245 2087 1245 2089 1245 2090 1245 2093 1246 2093 1246 2094 1246 2094 1246 2095 1246 2095 1246 2095 1247 2096 1247 2097 1247 2098 1247 2102 1248 2103 1248 2104 1248 2105 1248 2106 1248 2108 1248 2109 1248 2111 1248 2113 1249 2114 1249 2115 1249 2115 1249 2115 1250 2117 1250 2118 1250 2119 1250 2121 1250 2122 1250 2124 1250 2124 1250 2125 1251 2126 1251 2128 1251 2131 1251 2132 1251 2133 1251 2134 1251 2135 1251 2137 1252 2138 1252 2140 1252 2141 1253 2141 1253 2141 1253 2139 1254 2140 1254 2142 1254 2144 1254 2144 1254 2147 1254 2148 1254 2150 1255 2150 1255 2150 1255 2151 1255 2151 1255 2154 1256 2155 1256 2156 1256 2156 1256 2156 1256 2158 1256 2159 1256 2160 1256 2161 1257 2161 1257 2161 1257 2162 1257 2165 1256 2168 1256 2168 1255 2169 1255 2169 1255 2169 1255 2166 1255 2166 1255 2164 1255 2163 1255 2163 1254 2161 1254 2161 1254 2162 1254 2162 1254 2164 1254 2164 1254 2164 1254 2165 1253 2165 1253 2164 1253 2164 1253 2163 1253 2160 1253 2158 1253 2157 1253 2157 1252 2158 1252 2159 1252 2160 1252 2160 1252 2162 1252 2162 1252 2164 1251 2164 1251 2163 1251 2162 1251 2160 1250 2161 1249 2162 1249 2162 1248 2163 1248 2164 1248 2165 1248 2167 1248 2168 1248 2169 1248 2170 1248 2171 1248 2172 1248 2173 1248 2174 1248 2180 1249 2181 1249 2182 1249 2183 1249 2184 1249 2187 1249 2188 1249 2188 1249 2190 1249 2191 1249 2192 1249 2193 1249 2193 1249 2194 1249 2195 1249 2197 1249 2198 1249 2199 1249 2199 1249 2199 1249 2199 1249 2198 1249 2193 1248 2192 1248 2191 1248 2189 1248 2188 1248 2188 1248 2186 1248 2185 1248 2183 1248 2181 1248 2179 1248 2177 1248 2175 1247 2175 1247 2174 1247 2174 1247 2174 1247 2175 1247 2176 1247 2176 1247 2176 1246 2177 1246 2176 1246 2176 1246 2170 1245 2167 1245 2165 1245 2163 1244 2163 1244 2162 1244 2161 1244 2160 1244 2159 1243 2157 1243 2156 1243 2155 1243 2155 1243 2155 1242 2155 1242 2154 1242 2151 1242 2151 1242 2150 1242 2149 1242 2147 1241 2146 1241 2145 1241 2144 1241 2144 1240 2145 1240 2145 1240 2147 1240 2153 1240 2156 1240 2157 1240 2159 1240 2162 1240 2165 1241 2169 1241 2170 1241 2172 1241 2175 1240 2177 1240 2178 1240 2183 1240 2186 1240 2187 1240 2189 1240 2190 1240 2193 1240 2195 1240 2196 1240 2201 1241 2202 1241 2203 1241 2203 1241 2203 1241 2203 1241 2203 1241 2202 1241 2202 1241 2202 1241 2201 1241 2202 1242 2202 1242 2203 1242 2203 1242 2205 1242 2206 1242 2206 1242 2207 1242 2207 1242 2207 1243 2207 1243 2207 1244 2208 1245 2209 1245 2209 1245 2210 1245 2210 1245 2211 1245 2211 1245 2211 1244 2211 1244 2210 1243 2210 1242 2210 1242 2208 1242 2206 1241 2206 1241 2206 1241 2206 1241 2207 1241 2207 1241 2208 1241 2208 1241 2209 1241 2211 1241 2213 1241 2214 1241 2215 1241 2216 1242 2221 1242 2223 1243 2224 1243 2225 1243 2225 1243 2226 1244 2226 1244 2226 1244 2227 1244 2228 1244 2230 1244 2232 1244 2232 1244 2233 1244 2235 1245 2235 1246 2235 1246 2235 1246 2235 1246 2237 1247 2238 1247 2238 1247 2239 1247 2239 1247 2240 1247 2240 1247 2240 1247 2240 1246 2240 1246 2238 1245 2236 1244 2236 1244 2236 1244 2237 1243 2237 1243 2238 1243 2238 1243 2238 1243 2238 1243 2238 1242 2237 1242 2237 1242 2236 1242 2234 1241 2234 1241 2232 1241 2231 1241 2229 1241 2228 1241 2227 1241 2226 1241 2226 1241 2226 1241 2225 1241 2225 1241 2220 1240 2218 1240 2217 1240 2216 1240 2210 1240 2208 1239 2203 1239 2201 1239 2200 1239 2198 1239 2197 1239 2193 1239 2189 1239 2182 1239 2179 1239 2175 1239 2170 1239 2167 1239 2164 1239 2162 1239 2161 1239 2160 1239 2160 1239 2159 1239 2159 1239 2159 1239 2158 1238 2157 1238 2156 1238 2156 1238 2155 1238 2155 1238 2156 1239 2156 1239 2158 1239 2158 1239 2157 1239 2157 1239 2156 1239 2154 1239 2150 1239 2145 1239 2143 1239 2141 1239 2140 1239 2140 1239 2139 1239 2134 1239 2134 1239 2132 1239 2131 1238 2129 1238 2127 1238 2126 1237 2127 1237 2127 1237 2133 1237 2134 1237 2135 1238 2137 1238 2137 1238 2138 1238 2138 1238 2139 1238 2140 1238 2140 1238 2140 1238 2139 1238 2139 1238 2137 1237 2137 1237 2137 1237 2136 1237 2135 1237 2133 1237 2131 1237 2130 1237 2129 1237 2129 1237 2129 1237 2132 1236 2133 1236 2133 1236 2134 1236 2135 1236 2138 1236 2139 1236 2139 1236 2140 1235 2141 1235 2141 1235 2141 1235 2142 1236 2143 1236 2145 1236 2146 1236 2149 1237 2150 1237 2153 1237 2153 1237 2154 1237 2155 1237 2155 1237 2155 1238 2154 1238 2155 1238 2156 1238 2156 1238 2158 1238 2160 1237 2160 1237 2161 1237 2162 1237 2163 1238 2164 1238 2170 1238 2172 1238 2175 1238 2176 1238 2179 1238 2181 1238 2182 1238 2182 1238 2182 1238 2182 1238 2181 1238 2180 1238 2179 1238 2178 1238 2177 1238 2174 1238 2173 1238 2172 1238 2170 1238 2169 1238 2167 1237 2165 1237 2162 1237 2160 1237 2158 1237 2155 1236 2155 1236 2154 1236 2153 1236 2149 1235 2148 1235 2148 1235 2149 1235 2150 1234 2150 1234 2150 1235 2150 1235 2150 1235 2151 1235 2151 1235 2152 1235 2152 1235 2153 1235 2155 1234 2156 1235 2157 1235 2159 1235 2160 1235 2161 1235 2161 1235 2161 1235 2160 1234 2161 1234 2162 1234 2168 1234 2170 1234 2173 1235 2174 1235 2175 1235 2176 1235 2176 1235 2177 1235 2178 1235 2178 1235 2178 1235 2179 1235 2182 1235 2184 1235 2185 1235 2186 1235 2188 1235 2188 1235 2189 1235 2189 1235 2190 1235 2190 1235 2191 1235 2188 1235 2184 1234 2183 1234 2182 1234 2180 1234 2179 1234 2176 1234 2173 1234 2173 1234 2172 1234 2173 1234 2176 1233 2177 1233 2179 1233 2183 1233 2187 1234 2188 1234 2189 1234 2189 1234 2190 1233 2187 1233 2184 1233 2184 1233 2183 1233 2184 1233 2185 1233 2186 1233 2187 1232 2189 1232 2192 1232 2193 1232 2194 1232 2194 1233 2195 1233 2196 1233 2196 1233 2197 1233 2197 1233 2198 1233 2199 1233 2200 1233 2203 1233 2205 1233 2208 1234 2208 1234 2209 1234 2209 1234 2209 1234 2208 1234 2208 1234 2207 1235 2206 1235 2205 1235 2205 1235 2207 1235 2207 1235 2208 1235 2209 1235 2209 1235 2210 1235 2211 1235 2212 1235 2213 1235 2215 1235 2216 1235 2216 1235 2216 1236 2217 1236 2219 1236 2219 1236 2221 1236 2223 1236 2223 1237 2224 1237 2224 1237 2224 1237 2225 1237 2225 1237 2225 1237 2226 1237 2227 1237 2227 1237 2228 1237 2235 1238 2239 1237 2241 1237 2244 1237 2245 1237 2252 1239 2252 1239 2252 1239 2253 1240 2254 1240 2254 1240 2255 1240 2256 1240 2257 1240 2257 1240 2258 1240 2258 1241 2258 1241 2258 1241 2259 1241 2259 1241 2259 1240 2259 1240 2259 1240 2258 1240 2258 1240 2257 1240 2256 1240 2256 1239 2256 1239 2256 1239 2256 1239 2256 1239 2256 1238 2255 1238 2253 1238 2253 1238 2252 1238 2252 1238 2250 1237 2250 1237 2250 1237 2251 1237 2251 1237 2252 1237 2253 1237 2254 1237 2257 1237 2258 1237 2260 1237 2264 1237 2267 1237 2271 1236 2273 1236 2274 1236 2275 1236 2277 1237 2279 1237 2279 1237 2280 1237 2279 1237 2272 1236 2272 1236 2271 1236 2266 1236 2263 1236 2263 1236 2259 1236 2257 1236 2257 1236 2256 1236 2256 1236 2255 1236 2256 1236 2258 1236 2261 1235 2262 1235 2266 1235 2268 1235 2271 1235 2274 1235 2279 1235 2281 1235 2282 1235 2284 1235 2285 1235 2285 1235 2286 1234 2286 1234 2285 1234 2282 1234 2280 1235 2278 1235 2276 1234 2275 1234 2274 1234 2274 1234 2271 1234 2269 1234 2268 1234 2266 1234 2260 1234 2259 1234 2259 1234 2258 1234 2257 1234 2257 1233 2254 1233 2254 1233 2255 1231 2254 1230 2254 1230 2255 1230 2255 1230 2259 1230 2266 1230 2267 1231 2267 1231 2269 1231 2270 1231 2271 1231 2271 1231 2272 1231 2272 1231 2272 1231 2271 1231 2271 1230 2270 1230 2268 1230 2267 1230 2267 1230 2269 1229 2269 1229 2273 1229 2274 1229 2275 1229 2276 1229 2276 1229 2277 1229 2279 1229 2280 1230 2281 1230 2283 1230 2285 1230 2286 1230 2287 1230 2287 1230 2288 1230 2288 1230 2288 1230 2289 1231 2290 1231 2292 1231 2292 1231 2293 1231 2293 1231 2294 1231 2293 1231 2293 1231 2291 1231 2291 1231 2289 1230 2289 1230 2290 1230 2291 1230 2290 1230 2288 1229 2286 1229 2286 1229 2287 1229 2288 1228 2288 1228 2289 1228 2292 1228 2295 1228 2299 1228 2301 1228 2302 1228 2303 1228 2305 1228 2307 1228 2308 1228 2310 1228 2312 1228 2313 1228 2316 1228 2317 1228 2317 1228 2318 1228 2318 1227 2318 1227 2319 1227 2320 1227 2320 1227 2321 1227 2322 1227 2322 1227 2323 1228 2323 1228 2323 1228 2324 1228 2324 1228 2325 1228 2325 1228 2325 1228 2325 1227 2325 1227 2326 1227 2326 1227 2327 1227 2327 1227 2327 1228 2327 1228 2327 1228 2329 1228 2333 1230 2334 1230 2334 1230 2335 1230 2335 1229 2336 1229 2336 1229 2336 1229 2335 1229 2335 1229 2333 1229 2332 1228 2331 1228 2331 1228 2331 1228 2331 1228 2331 1228 2333 1227 2334 1227 2335 1227 2337 1227 2341 1227 2346 1227 2349 1227 2355 1227 2356 1227 2359 1227 2360 1227 2361 1227 2360 1227 2360 1227 2359 1227 2359 1228 2359 1228 2360 1228 2361 1228 2361 1228 2365 1227 2366 1227 2369 1227 2369 1227 2372 1228 2373 1228 2376 1228 2377 1228 2381 1228 2382 1228 2384 1228 2385 1227 2385 1227 2385 1227 2386 1227 2386 1227 2389 1227 2390 1227 2391 1227 2392 1227 2398 1228 2399 1228 2401 1228 2405 1228 2408 1228 2408 1228 2408 1229 2408 1229 2408 1229 2408 1229 2409 1229 2409 1229 2410 1229 2411 1229 2411 1229 2411 1229 2411 1229 2414 1229 2415 1229 2415 1229 2418 1229 2419 1229 2419 1229 2419 1229 2420 1229 2419 1229 2419 1229 2417 1229 2417 1229 2414 1229 2413 1229 2413 1229 2416 1230 2417 1230 2418 1230 2419 1230 2423 1230 2425 1230 2425 1230 2422 1230 2421 1230 2421 1230 2422 1229 2425 1229 2426 1229 2427 1229 2428 1229 2428 1229 2429 1229 2430 1229 2432 1229 2437 1229 2441 1230 2448 1230 2454 1231 2456 1231 2457 1231 2458 1231 2463 1232 2463 1232 2465 1232 2465 1232 2465 1232 2465 1232 2464 1232 2459 1234 2458 1234 2455 1234 2448 1234 2446 1234 2444 1235 2442 1235 2440 1235 2438 1235 2434 1235 2432 1235 2427 1235 2425 1235 2424 1234 2423 1234 2420 1234 2418 1234 2415 1234 2406 1234 2403 1234 2402 1234 2399 1234 2397 1234 2395 1234 2393 1234 2390 1234 2388 1234 2387 1234 2386 1235 2385 1235 2384 1235 2384 1235 2383 1235 2382 1235 2381 1235 2380 1235 2379 1235 2378 1235 2375 1235 2372 1236 2371 1236 2370 1236 2370 1236 2369 1236 2365 1236 2364 1236 2362 1236 2359 1236 2358 1236 2358 1235 2356 1235 2356 1235 2351 1235 2347 1235 2344 1234 2343 1234 2342 1234 2340 1234 2344 1235 2345 1235 2346 1235 2348 1235 2348 1235 2350 1235 2352 1235 2354 1235 2354 1236 2356 1236 2356 1236 2356 1236 2356 1236 2356 1236 2353 1236 2352 1236 2349 1237 2343 1237 2339 1237 2338 1237 2336 1237 2336 1237 2335 1237 2333 1238 2332 1238 2330 1238 2329 1238 2327 1238 2325 1238 2323 1238 2321 1238 2320 1238 2317 1238 2313 1238 2311 1238 2309 1238 2308 1238 2307 1238 2306 1238 2306 1238 2306 1238 2307 1238 2308 1238 2309 1238 2310 1238 2311 1239 2311 1239 2311 1239 2310 1239 2309 1239 2307 1240 2307 1241 2307 1241 2308 1241 2308 1241 2309 1241 2310 1241 2310 1240 2311 1239 2311 1239 2312 1239 2315 1239 2316 1238 2318 1238 2319 1238 2321 1238 2322 1238 2325 1238 2327 1238 2331 1238 2332 1238 2333 1238 2333 1238 2334 1238 2334 1238 2334 1239 2335 1239 2335 1239 2335 1239 2335 1240 2335 1240 2333 1240 2333 1240 2333 1240 2333 1240 2334 1240 2335 1240 2336 1240 2337 1240 2337 1239 2337 1239 2337 1239 2337 1239 2336 1239 2336 1238 2337 1238 2337 1238 2337 1238 2339 1238 2339 1238 2340 1238 2342 1237 2345 1237 2348 1237 2349 1237 2351 1237 2355 1237 2358 1237 2361 1237 2361 1237 2363 1237 2364 1237 2365 1237 2366 1237 2367 1237 2368 1237 2368 1237 2368 1237 2368 1238 2369 1238 2369 1238 2370 1238 2370 1238 2370 1238 2371 1238 2372 1237 2372 1237 2372 1237 2372 1237 2373 1237 2373 1237 2374 1237 2376 1236 2378 1236 2379 1236 2381 1236 2382 1236 2382 1236 2383 1236 2385 1236 2387 1236 2388 1236 2389 1236 2390 1236 2391 1235 2391 1235 2392 1235 2393 1235 2394 1235 2395 1235 2398 1235 2402 1235 2403 1235 2405 1235 2407 1235 2409 1235 2413 1235 2416 1235 2419 1235 2420 1235 2424 1236 2424 1236 2424 1236 2425 1236 2426 1236 2426 1236 2427 1236 2427 1236 2428 1236 2428 1236 2429 1236 2430 1236 2431 1236 2432 1236 2434 1236 2439 1236 2441 1236 2449 1236 2450 1236 2450 1236 2451 1236 2451 1236 2451 1235 2452 1235 2454 1235 2456 1235 2459 1235 2463 1235 2466 1235 2471 1234 2473 1234 2473 1234 2475 1234 2475 1234 2476 1234 2476 1234 2477 1235 2478 1235 2478 1235 2477 1235 2476 1235 2476 1235 2476 1236 2477 1236 2477 1236 2477 1236 2478 1236 2479 1236 2479 1237 2480 1237 2480 1237 2479 1237 2479 1237 2477 1238 2476 1238 2475 1238 2474 1238 2474 1238 2474 1239 2474 1239 2472 1239 2470 1239 2467 1240 2467 1240 2466 1240 2464 1240 2463 1240 2462 1240 2461 1240 2462 1240 2462 1240 2463 1240 2464 1240 2466 1240 2467 1240 2468 1240 2469 1240 2470 1240 2471 1240 2472 1240 2472 1240 2474 1240 2476 1240 2478 1239 2479 1239 2480 1239 2481 1239 2482 1238 2482 1238 2483 1238 2484 1238 2485 1238 2485 1239 2486 1239 2487 1239 2488 1239 2488 1239 2489 1239 2489 1239 2489 1238 2490 1238 2491 1238 2492 1238 2492 1238 2494 1238 2494 1238 2494 1239 2492 1239 2492 1239 2491 1239 2491 1241 2492 1241 2493 1241 2494 1241 2495 1240 2496 1240 2496 1240 2496 1240 2496 1240 2497 1239 2500 1239 2501 1239 2502 1239 2503 1239 2503 1239 2505 1240 2505 1240 2505 1240 2505 1240 2505 1240 2506 1240 2506 1240 2508 1240 2509 1240 2509 1240 2510 1240 2510 1241 2510 1241 2513 1240 2513 1240 2514 1240 2515 1240 2517 1241 2519 1241 2522 1241 2523 1241 2523 1241 2527 1242 2531 1242 2533 1243 2534 1243 2534 1243 2535 1243 2534 1243 2534 1244 2533 1244 2533 1244 2526 1245 2524 1245 2524 1245 2523 1245 2522 1245 2521 1245 2520 1246 2519 1246 2519 1246 2519 1246 2520 1246 2520 1247 2520 1247 2520 1247 2518 1247 2516 1247 2516 1247 2516 1248 2515 1248 2513 1248 2508 1248 2507 1248 2505 1248 2499 1248 2498 1248 2497 1248 2497 1248 2497 1248 2495 1248 2489 1249 2489 1249 2488 1249 2487 1249 2485 1249 2483 1250 2482 1250 2480 1250 2477 1250 2475 1250 2475 1250 2473 1250 2469 1250 2465 1250 2461 1250 2458 1250 2457 1250 2451 1250 2449 1250 2447 1250 2444 1250 2441 1250 2437 1250 2437 1250 2432 1250 2430 1250 2428 1250 2428 1250 2426 1250 2426 1250 2424 1250 2424 1250 2422 1250 2420 1250 2419 1250 2417 1250 2413 1250 2410 1250 2408 1251 2407 1251 2406 1251 2404 1251 2403 1250 2403 1250 2402 1250 2400 1251 2399 1251 2399 1251 2398 1251 2398 1251 2398 1250 2397 1250 2397 1250 2397 1250 2396 1250 2394 1250 2391 1250 2391 1250 2390 1250 2388 1250 2385 1250 2384 1250 2381 1250 2379 1249 2377 1249 2377 1250 2375 1250 2374 1250 2373 1250 2373 1250 2371 1249 2370 1249 2370 1250 2371 1250 2371 1250 2373 1250 2380 1250 2386 1250 2389 1250 2393 1250 2394 1250 2395 1251 2395 1251 2397 1251 2397 1251 2397 1251 2393 1252 2391 1252 2390 1252 2388 1252 2384 1252 2380 1253 2378 1253 2378 1253 2377 1253 2377 1253 2376 1253 2374 1253 2372 1253 2369 1254 2366 1254 2365 1254 2362 1254 2361 1254 2360 1254 2357 1255 2353 1255 2352 1255 2349 1255 2349 1255 2348 1256 2347 1256 2347 1256 2346 1256 2347 1258 2347 1258 2348 1258 2348 1258 2349 1258 2350 1258 2353 1258 2354 1258 2355 1258 2355 1258 2356 1258 2356 1257 2356 1257 2357 1257 2358 1257 2359 1257 2364 1256 2367 1256 2368 1256 2370 1255 2370 1255 2371 1255 2374 1255 2376 1255 2377 1255 2379 1255 2380 1255 2383 1255 2384 1255 2386 1255 2386 1255 2387 1255 2390 1254 2398 1254 2400 1254 2400 1254 2401 1254 2401 1254 2400 1254 2399 1254 2400 1255 2400 1255 2401 1255 2402 1255 2402 1255 2404 1254 2405 1254 2404 1254 2404 1254 2404 1254 2404 1254 2405 1254 2405 1253 2412 1253 2413 1253 2414 1253 2417 1253 2418 1253 2421 1253 2422 1253 2427 1253 2431 1253 2435 1252 2437 1252 2438 1252 2442 1252 2445 1252 2450 1253 2452 1253 2453 1253 2455 1253 2459 1253 2465 1253 2468 1253 2469 1253 2470 1253 2472 1253 2472 1253 2472 1253 2472 1256 2471 1256 2471 1256 2471 1256 2470 1257 2469 1257 2468 1257 2467 1257 2467 1257 2465 1257 2463 1258 2463 1258 2462 1258 2461 1258 2457 1258 2456 1258 2454 1259 2452 1259 2450 1259 2449 1259 2446 1260 2446 1260 2445 1260 2441 1260 2436 1260 2436 1261 2435 1261 2434 1261 2434 1261 2434 1261 2434 1261 2435 1261 2435 1261 2436 1262 2437 1262 2437 1262 2438 1262 2439 1261 2439 1261 2440 1261 2440 1262 2441 1262 2440 1262 2439 1263 2438 1262 2437 1262 2436 1262 2436 1262 2435 1262 2435 1263 2435 1263 2436 1263 2439 1263 2439 1263 2443 1262 2444 1262 2445 1262 2446 1262 2447 1262 2447 1262 2448 1262 2448 1262 2448 1261 2449 1261 2450 1261 2450 1261 2451 1261 2452 1261 2454 1261 2455 1261 2459 1260 2467 1259 2470 1259 2474 1258 2474 1258 2475 1258 2475 1258 2476 1258 2477 1258 2477 1258 2479 1258 2480 1258 2480 1258 2481 1258 2481 1257 2481 1257 2482 1257 2482 1257 2483 1257 2484 1257 2486 1257 2487 1257 2488 1257 2488 1257 2489 1257 2489 1257 2490 1257 2490 1256 2489 1255 2490 1254 2491 1253 2491 1253 2492 1253 2497 1252 2498 1252 2499 1252 2506 1252 2510 1252 2510 1252 2511 1252 2515 1252 2517 1251 2518 1251 2519 1251 2519 1252 2520 1252 2522 1253 2523 1253 2523 1254 2523 1254 2523 1254 2524 1256 2524 1257 2522 1260 2520 1261 2520 1261 2519 1262 2516 1263 2516 1263 2515 1263 2515 1264 2514 1264 2513 1264 2512 1264 2512 1264 2509 1264 2508 1264 2508 1264 2508 1264 2509 1264 2510 1264 2511 1265 2508 1266 2508 1266 2508 1266 2506 1266 2505 1267 2503 1267 2502 1267 2502 1268 2502 1268 2502 1268 2502 1268 2501 1268 2500 1269 2499 1269 2498 1269 2497 1269 2497 1269 2494 1271 2494 1271 2494 1271 2494 1271 2495 1272 2492 1273 2492 1273 2491 1273 2489 1273 2485 1274 2485 1274 2485 1274 2485 1274 2486 1274 2486 1274 2487 1274 2488 1274 2489 1274 2489 1274 2490 1274 2491 1274 2489 1274 2489 1274 2487 1275 2483 1276 2483 1276 2483 1276 2484 1276 2485 1276 2486 1276 2487 1276 2488 1275 2489 1275 2491 1275 2493 1274 2494 1274 2495 1274 2497 1273 2497 1273 2497 1273 2498 1272 2498 1272 2499 1272 2499 1272 2499 1272 2500 1272 2500 1272 2499 1271 2499 1271 2498 1271 2498 1271 2499 1271 2499 1270 2500 1270 2502 1270 2502 1270 2503 1270 2506 1270 2507 1270 2507 1270 2511 1269 2511 1269 2512 1269 2512 1268 2511 1268 2512 1268 2512 1268 2513 1268 2516 1267 2517 1267 2517 1267 2518 1267 2522 1265 2523 1265 2523 1265 2526 1265 2527 1265 2527 1265 2527 1265 2528 1265 2527 1265 2527 1264 2527 1264 2527 1264 2528 1264 2528 1264 2529 1264 2530 1264 2530 1264 2531 1264 2531 1264 2532 1263 2532 1263 2532 1263 2533 1262 2532 1262 2533 1262 2534 1262 2535 1262 2536 1262 2537 1261 2538 1261 2540 1260 2543 1259 2544 1259 2546 1259 2547 1259 2552 1258 2556 1258 2557 1258 2557 1258 2555 1259 2555 1259 2554 1259 2554 1259 2554 1259 2553 1259 2552 1259 2552 1260 2552 1260 2551 1262 2551 1262 2552 1262 2552 1262 2554 1262 2554 1262 2556 1261 2556 1261 2556 1261 2557 1261 2563 1260 2568 1260 2570 1260 2572 1260 2572 1260 2572 1260 2572 1261 2573 1261 2574 1261 2574 1261 2575 1261 2575 1261 2575 1261 2575 1261 2575 1260 2575 1260 2576 1260 2576 1260 2576 1260 2576 1260 2579 1261 2579 1261 2580 1261 2580 1261 2580 1261 2581 1262 2583 1262 2584 1262 2587 1261 2587 1261 2587 1260 2588 1260 2590 1260 2591 1260 2591 1260 2594 1259 2594 1259 2592 1259 2591 1259 2591 1259 2590 1259 2589 1259 2589 1258 2590 1257 2590 1257 2590 1257 2591 1257 2593 1257 2594 1257 2595 1257 2595 1257 2595 1258 2596 1258 2596 1258 2597 1258 2598 1258 2598 1257 2596 1257 2595 1257 2595 1257 2595 1257 2595 1255 2595 1255 2595 1255 2596 1255 2596 1255 2596 1255 2597 1255 2597 1255 2598 1255 2598 1255 2599 1255 2599 1255 2599 1255 2601 1255 2603 1255 2604 1255 2605 1255 2605 1255 2605 1255 2606 1255 2606 1255 2606 1255 2605 1254 2605 1254 2608 1254 2608 1254 2609 1254 2611 1254 2611 1254 2612 1254 2612 1254 2615 1254 2617 1254 2620 1254 2624 1254 2625 1254 2625 1254 2626 1254 2628 1254 2631 1254 2633 1254 2634 1254 2636 1254 2638 1254 2639 1254 2642 1254 2642 1254 2643 1255 2644 1255 2645 1255 2646 1255 2648 1255 2648 1255 2649 1255 2649 1255 2650 1255 2650 1255 2650 1255 2653 1256 2653 1256 2654 1256 2657 1256 2662 1256 2663 1256 2664 1256 2665 1256 2669 1257 2670 1257 2671 1257 2674 1258 2674 1258 2674 1258 2674 1258 2674 1258 2675 1259 2675 1259 2676 1259 2677 1259 2678 1259 2679 1259 2680 1259 2681 1259 2681 1259 2681 1259 2678 1260 2677 1260 2675 1261 2674 1261 2674 1261 2671 1261 2670 1262 2668 1262 2666 1262 2666 1262 2665 1262 2664 1263 2664 1263 2664 1263 2664 1263 2664 1263 2664 1264 2663 1264 2662 1264 2661 1264 2661 1264 2660 1264 2659 1264 2659 1264 2658 1264 2657 1264 2657 1264 2656 1265 2655 1265 2652 1266 2651 1266 2650 1267 2649 1267 2647 1267 2645 1267 2641 1267 2637 1267 2636 1267 2633 1267 2636 1269 2636 1269 2637 1269 2637 1269 2638 1269 2639 1269 2641 1270 2641 1270 2641 1270 2639 1270 2638 1270 2637 1271 2636 1271 2635 1271 2634 1271 2631 1271 2626 1271 2625 1271 2625 1271 2622 1271 2621 1272 2619 1273 2619 1273 2619 1273 2618 1273 2617 1273 2616 1273 2614 1273 2613 1273 2613 1273 2612 1273 2609 1273 2609 1273 2608 1273 2607 1273 2607 1273 2606 1273 2602 1273 2601 1273 2600 1273 2596 1273 2594 1273 2593 1273 2593 1273 2592 1273 2592 1273 2592 1273 2590 1272 2588 1272 2587 1272 2587 1273 2587 1273 2588 1273 2587 1273 2587 1273 2586 1273 2586 1273 2585 1274 2584 1274 2583 1274 2582 1274 2581 1274 2581 1274 2580 1274 2580 1275 2579 1275 2578 1275 2577 1275 2576 1275 2574 1275 2574 1275 2573 1275 2572 1275 2570 1275 2566 1274 2565 1274 2564 1274 2562 1274 2562 1274 2559 1274 2555 1274 2554 1274 2554 1274 2553 1274 2552 1274 2549 1275 2549 1275 2549 1275 2548 1275 2548 1275 2548 1275 2547 1275 2546 1275 2545 1275 2543 1276 2542 1276 2540 1275 2539 1275 2538 1275 2537 1275 2537 1275 2536 1275 2536 1276 2536 1276 2537 1276 2538 1276 2539 1276 2540 1276 2541 1276 2542 1276 2542 1276 2543 1276 2542 1276 2542 1276 2542 1277 2542 1277 2543 1277 2543 1277 2544 1277 2544 1277 2544 1277 2545 1276 2545 1276 2545 1276 2548 1276 2550 1276 2550 1276 2551 1275 2551 1275 2552 1275 2553 1275 2553 1275 2553 1275 2553 1274 2554 1274 2554 1274 2557 1274 2559 1274 2561 1275 2563 1275 2563 1275 2563 1275 2563 1275 2564 1275 2564 1275 2568 1275 2568 1275 2569 1275 2570 1275 2571 1275 2573 1275 2573 1275 2576 1276 2577 1276 2579 1276 2584 1276 2585 1276 2585 1276 2587 1276 2588 1276 2589 1276 2590 1276 2592 1275 2595 1275 2595 1275 2596 1275 2596 1275 2598 1275 2599 1275 2600 1275 2602 1275 2604 1276 2607 1276 2611 1276 2611 1276 2616 1276 2616 1276 2617 1276 2618 1277 2617 1277 2616 1277 2615 1277 2615 1278 2614 1278 2613 1278 2612 1278 2612 1278 2611 1278 2611 1279 2611 1279 2610 1279 2610 1279 2609 1279 2608 1279 2609 1279 2609 1278 2610 1278 2609 1278 2609 1278 2608 1278 2607 1278 2607 1278 2607 1279 2608 1279 2608 1279 2609 1279 2610 1279 2610 1279 2610 1279 2610 1280 2607 1280 2606 1280 2605 1281 2604 1281 2602 1281 2601 1281 2599 1281 2597 1281 2594 1281 2592 1281 2590 1281 2588 1281 2588 1281 2587 1281 2586 1281 2585 1281 2583 1281 2581 1281 2580 1281 2579 1281 2578 1281 2576 1281 2576 1281 2575 1281 2574 1281 2572 1281 2570 1281 2570 1281 2569 1281 2568 1281 2566 1280 2564 1280 2562 1280 2561 1280 2560 1280 2558 1280 2558 1280 2556 1281 2556 1281 2555 1281 2555 1281 2554 1281 2554 1282 2554 1282 2554 1282 2553 1282 2553 1282 2552 1282 2552 1282 2551 1283 2550 1283 2548 1283 2547 1283 2547 1283 2547 1283 2548 1283 2549 1283 2550 1283 2549 1284 2548 1284 2547 1284 2547 1284 2546 1284 2546 1284 2548 1285 2548 1285 2548 1285 2548 1285 2546 1286 2544 1286 2544 1287 2544 1287 2544 1287 2544 1287 2544 1287 2546 1287 2548 1287 2549 1287 2550 1288 2550 1288 2550 1288 2550 1289 2551 1288 2552 1288 2552 1288 2552 1288 2553 1288 2553 1288 2553 1288 2554 1288 2555 1288 2556 1288 2557 1287 2557 1287 2558 1287 2557 1287 2556 1287 2554 1288 2553 1288 2553 1288 2553 1288 2552 1288 2551 1287 2554 1285 2555 1285 2555 1285 2556 1285 2557 1285 2557 1285 2558 1284 2560 1284 2562 1284 2563 1284 2564 1284 2564 1284 2564 1284 2564 1284 2565 1283 2565 1283 2566 1283 2567 1283 2568 1283 2568 1283 2571 1283 2573 1283 2576 1283 2580 1283 2581 1283 2585 1282 2587 1282 2588 1282 2589 1282 2591 1283 2592 1283 2592 1283 2593 1283 2594 1283 2595 1283 2596 1284 2594 1285 2594 1285 2592 1286 2590 1286 2590 1287 2590 1287 2588 1288 2587 1288 2584 1289 2584 1289 2583 1289 2583 1289 2582 1289 2581 1289 2580 1289 2578 1289 2577 1289 2575 1288 2574 1288 2572 1288 2569 1288 2568 1288 2568 1288 2567 1288 2567 1288 2566 1288 2565 1289 2564 1289 2563 1289 2562 1290 2561 1290 2561 1290 2562 1291 2562 1291 2562 1291 2562 1292 2562 1292 2562 1292 2561 1292 2561 1292 2560 1292 2560 1292 2560 1292 2559 1293 2560 1294 2561 1294 2561 1294 2561 1295 2561 1295 2561 1296 2560 1296 2560 1296 2559 1296 2559 1297 2558 1298 2558 1298 2558 1298 2558 1298 2558 1298 2559 1298 2561 1297 2561 1296 2562 1296 2562 1296 2562 1295 2562 1295 2563 1295 2563 1295 2568 1296 2568 1296 2570 1296 2570 1296 2569 1297 2569 1297 2568 1297 2568 1297 2569 1298 2569 1297 2569 1297 2569 1297 2570 1297 2570 1297 2570 1297 2570 1298 2567 1298 2567 1298 2567 1297 2567 1296 2567 1296 2568 1296 2568 1296 2568 1296 2568 1296 2568 1296 2568 1296 2566 1296 2566 1296 2565 1296 2565 1296 2562 1297 2563 1298 2563 1298 2563 1298 2563 1298 2563 1298 2563 1299 2562 1299 2562 1299 2562 1299 2561 1299 2561 1299 2560 1299 2558 1299 2557 1299 2554 1300 2554 1300 2555 1300 2556 1300 2557 1301 2557 1301 2557 1302 2557 1302 2557 1302 2557 1302 2556 1302 2556 1302 2556 1303 2555 1303 2555 1303 2554 1303 2553 1303 2552 1303 2551 1303 2550 1303 2548 1303 2546 1302 2546 1302 2545 1302 2545 1302 2544 1303 2543 1303 2543 1303 2543 1303 2542 1303 2542 1303 2541 1303 2541 1303 2540 1303 2540 1303 2539 1303 2537 1304 2537 1304 2538 1304 2538 1304 2538 1304 2539 1305 2540 1305 2541 1306 2538 1306 2538 1306 2536 1306 2535 1306 2533 1306 2533 1306 2533 1306 2534 1307 2534 1307 2534 1307 2535 1307 2536 1307 2537 1306 2537 1306 2540 1306 2540 1306 2541 1306 2541 1306 2541 1306 2541 1307 2541 1307 2541 1307 2540 1307 2538 1308 2535 1311 2534 1312 2534 1312 2534 1312 2534 1312 2534 1313 2534 1313 2535 1313 2535 1313 2535 1313 2535 1313 2533 1314 2533 1314 2532 1315 2531 1315 2530 1314 2529 1314 2529 1314 2529 1314 2528 1314 2528 1314 2527 1315 2531 1315 2531 1315 2532 1315 2532 1315 2533 1315 2533 1315 2532 1315 2531 1316 2530 1316 2530 1316 2528 1316 2528 1317 2526 1318 2527 1318 2527 1318 2528 1318 2528 1318 2528 1318 2529 1317 2529 1317 2529 1317 2530 1317 2530 1317 2530 1317 2530 1317 2529 1318 2528 1319 2527 1319 2527 1319 2525 1320 2523 1321 2523 1322 2523 1322 2525 1322 2526 1322 2526 1322 2527 1322 2531 1322 2531 1322 2532 1322 2533 1322 2533 1322 2533 1322 2531 1323 2529 1324 2528 1324 2528 1324 2530 1324 2531 1324 2533 1322 2533 1322 2533 1322 2533 1321 2533 1321 2533 1321 2533 1320 2533 1320 2533 1320 2534 1320 2534 1319 2534 1319 2537 1318 2538 1318 2538 1317 2539 1317 2541 1317 2541 1316 2541 1316 2542 1316 2542 1316 2542 1316 2546 1317 2546 1317 2546 1317 2546 1318 2546 1318 2550 1319 2551 1319 2554 1319 2557 1320 2558 1320 2562 1320 2562 1320 2564 1320 2565 1320 2566 1320 2567 1320 2568 1320 2568 1321 2570 1321 2571 1322 2571 1322 2572 1323 2572 1323 2571 1323 2571 1323 2570 1323 2569 1323 2569 1323 2568 1323 2568 1323 2567 1323 2567 1323 2567 1323 2566 1323 2566 1323 2565 1323 2563 1323 2562 1323 2562 1323 2556 1321 2555 1321 2554 1321 2553 1321 2552 1321 2551 1321 2551 1321 2551 1321 2551 1321 2550 1321 2550 1321 2549 1321 2549 1321 2549 1321 2548 1321 2548 1321 2547 1321 2545 1321 2542 1322 2541 1322 2541 1322 2545 1323 2547 1323 2547 1323 2548 1323 2549 1323 2550 1323 2550 1323 2551 1324 2552 1324 2551 1324 2551 1324 2550 1324 2550 1324 2549 1324 2548 1324 2547 1324 2546 1324 2546 1324 2545 1324 2546 1324 2547 1324 2548 1324 2549 1324 2549 1324 2550 1324 2550 1324 2550 1324 2549 1325 2549 1325 2548 1325 2548 1325 2547 1325 2546 1324 2543 1324 2542 1324 2541 1324 2540 1324 2539 1324 2539 1324 2541 1324 2544 1325 2546 1325 2550 1325 2554 1325 2555 1325 2555 1325 2555 1326 2555 1326 2554 1326 2553 1326 2552 1326 2551 1326 2551 1326 2550 1326 2549 1326 2548 1326 2547 1326 2547 1326 2547 1326 2544 1326 2544 1326 2544 1326 2543 1326 2544 1326 2544 1326 2545 1326 2548 1326 2549 1326 2550 1326 2551 1327 2552 1327 2552 1327 2554 1326 2554 1326 2558 1326 2558 1326 2559 1326 2560 1326 2561 1327 2563 1327 2563 1327 2564 1327 2564 1327 2565 1328 2565 1328 2565 1328 2564 1328 2564 1328 2564 1329 2564 1329 2565 1329 2565 1329 2566 1329 2566 1329 2566 1328 2567 1328 2567 1328 2568 1329 2569 1329 2571 1329 2571 1329 2571 1329 2571 1328 2571 1328 2571 1328 2571 1328 2570 1328 2570 1327 2571 1327 2572 1327 2573 1327 2573 1327 2574 1327 2576 1327 2577 1327 2578 1327 2579 1327 2581 1327 2581 1327 2583 1328 2584 1328 2584 1328 2585 1331 2586 1334 2585 1334 2585 1335 2583 1336 2582 1336 2581 1336 2581 1336 2581 1336 2580 1336 2580 1336 2580 1336 2580 1336 2579 1336 2579 1336 2579 1336 2579 1336 2580 1336 2580 1337 2580 1337 2580 1337 2579 1336 2579 1336 2579 1336 2575 1335 2573 1335 2572 1335 2572 1335 2569 1335 2567 1335 2565 1335 2564 1334 2563 1334 2560 1334 2558 1333 2557 1333 2555 1333 2555 1333 2555 1333 2555 1333 2554 1333 2554 1334 2554 1334 2553 1334 2553 1334 2551 1333 2549 1333 2544 1333 2544 1333 2540 1333 2540 1333 2539 1334 2539 1334 2540 1334 2540 1333 2542 1333 2544 1333 2544 1333 2546 1334 2546 1334 2546 1334 2546 1334 2543 1335 2543 1335 2542 1335 2542 1335 2541 1334 2541 1334 2538 1334 2537 1334 2536 1334 2533 1334 2532 1334 2531 1334 2530 1334 2528 1334 2528 1335 2528 1335 2532 1335 2532 1335 2536 1335 2538 1335 2539 1335 2539 1335 2539 1335 2540 1335 2541 1335 2540 1335 2539 1336 2539 1336 2538 1336 2538 1336 2538 1336 2537 1336 2537 1336 2536 1336 2536 1336 2535 1336 2535 1336 2535 1336 2534 1337 2533 1337 2530 1338 2530 1338 2529 1338 2528 1338 2528 1338 2526 1337 2526 1337 2525 1337 2525 1336 2521 1335 2521 1335 2520 1335 2519 1335 2519 1335 2518 1335 2517 1335 2518 1336 2518 1336 2517 1337 2515 1337 2514 1337 2514 1337 2513 1337 2513 1337 2512 1337 2512 1337 2512 1338 2512 1338 2512 1338 2512 1338 2513 1338 2513 1338 2514 1338 2516 1339 2517 1340 2518 1340 2519 1340 2519 1340 2519 1340 2518 1340 2518 1339 2520 1339 2520 1338 2521 1338 2521 1338 2522 1338 2525 1339 2525 1339 2526 1339 2527 1339 2529 1340 2528 1340 2528 1340 2527 1340 2526 1341 2524 1341 2524 1341 2523 1341 2523 1341 2525 1341 2526 1341 2526 1341 2528 1341 2528 1341 2529 1341 2528 1341 2528 1342 2527 1342 2526 1342 2525 1342 2525 1342 2524 1342 2521 1342 2521 1342 2520 1342 2520 1341 2519 1341 2519 1341 2519 1341 2519 1341 2519 1341 2518 1341 2517 1341 2517 1341 2516 1341 2516 1342 2516 1342 2517 1342 2517 1342 2518 1342 2520 1342 2521 1342 2521 1342 2528 1342 2528 1342 2529 1342 2529 1342 2529 1342 2530 1342 2530 1342 2530 1342 2530 1342 2531 1342 2531 1343 2530 1343 2530 1343 2530 1343 2529 1343 2529 1343 2528 1345 2529 1345 2529 1345 2531 1345 2531 1345 2532 1345 2534 1344 2536 1344 2537 1344 2538 1344 2538 1344 2538 1344 2539 1344 2539 1345 2539 1345 2539 1345 2540 1345 2541 1345 2544 1346 2546 1346 2546 1346 2547 1346 2549 1346 2545 1345 2543 1345 2542 1345 2540 1345 2539 1344 2539 1344 2538 1344 2539 1344 2539 1344 2539 1344 2540 1344 2540 1344 2541 1344 2541 1344 2542 1344 2543 1344 2543 1344 2545 1344 2546 1345 2548 1345 2549 1345 2549 1345 2550 1345 2551 1345 2552 1345 2552 1345 2553 1345 2553 1345 2556 1344 2557 1344 2557 1345 2558 1345 2558 1345 2559 1345 2559 1345 2559 1345 2561 1347 2561 1347 2560 1348 2560 1348 2560 1348 2559 1348 2559 1348 2558 1348 2558 1348 2557 1348 2557 1348 2556 1348 2555 1348 2555 1348 2555 1348 2554 1348 2554 1348 2554 1348 2553 1348 2552 1349 2551 1349 2550 1349 2549 1349 2549 1349 2544 1349 2542 1349 2541 1349 2535 1349 2535 1349 2534 1349 2534 1349 2533 1349 2533 1349 2529 1349 2529 1349 2528 1349 2527 1349 2526 1349 2526 1349 2526 1349 2526 1349 2526 1348 2525 1348 2525 1348 2525 1348 2524 1348 2524 1349 2524 1349 2526 1349 2526 1349 2530 1349 2532 1349 2533 1349 2534 1349 2535 1349 2536 1349 2537 1349 2538 1349 2542 1349 2544 1349 2546 1349 2546 1349 2547 1349 2548 1349 2549 1350 2549 1350 2550 1350 2550 1350 2550 1350 2551 1350 2552 1350 2552 1350 2553 1350 2556 1350 2557 1350 2558 1350 2559 1350 2559 1350 2560 1351 2560 1351 2563 1352 2563 1353 2562 1353 2562 1353 2562 1354 2562 1354 2563 1355 2565 1355 2565 1356 2565 1356 2566 1356 2566 1358 2566 1358 2566 1359 2566 1359 2566 1360 2565 1360 2565 1360 2565 1361 2564 1361 2564 1361 2562 1362 2562 1362 2562 1362 2561 1362 2557 1362 2557 1362 2557 1362 2556 1362 2556 1362 2555 1361 2555 1361 2555 1360 2556 1360 2556 1360 2556 1360 2554 1359 2553 1359 2553 1359 2553 1359 2551 1359 2550 1359 2549 1359 2549 1360 2549 1360 2548 1360 2547 1360 2546 1360 2545 1360 2545 1360 2545 1360 2544 1360 2540 1359 2537 1358 2537 1358 2537 1358 2536 1358 2536 1357 2536 1357 2536 1357 2535 1357 2532 1356 2532 1356 2529 1355 2529 1355 2528 1355 2527 1355 2526 1355 2525 1355 2523 1354 2522 1354 2522 1354 2521 1354 2520 1354 2519 1354 2519 1354 2519 1354 2520 1354 2520 1354 2521 1355 2522 1355 2523 1355 2525 1355 2526 1355 2530 1356 2531 1356 2531 1357 2533 1357 2533 1357 2532 1357 2532 1357 2530 1357 2528 1357 2526 1357 2524 1357 2522 1357 2522 1357 2519 1357 2518 1357 2517 1356 2516 1356 2516 1356 2516 1356 2516 1356 2516 1356 2516 1356 2515 1356 2515 1356 2516 1356 2516 1356 2517 1357 2518 1357 2522 1357 2523 1357 2524 1357 2525 1357 2526 1357 2530 1357 2531 1358 2532 1358 2533 1358 2533 1358 2533 1358 2534 1358 2534 1358 2534 1359 2534 1359 2534 1359 2535 1359 2536 1359 2536 1359 2539 1359 2539 1360 2540 1360 2541 1360 2542 1360 2542 1361 2542 1361 2544 1361 2545 1361 2546 1361 2546 1361 2547 1362 2547 1362 2547 1362 2547 1362 2547 1362 2547 1362 2547 1362 2545 1363 2545 1363 2544 1363 2543 1363 2543 1362 2542 1362 2541 1362 2541 1362 2541 1362 2540 1362 2537 1363 2536 1363 2535 1363 2534 1364 2533 1364 2533 1364 2533 1364 2532 1364 2531 1364 2529 1365 2528 1365 2527 1365 2526 1364 2526 1364 2526 1364 2526 1364 2525 1364 2525 1363 2522 1363 2521 1362 2518 1362 2517 1362 2517 1362 2517 1362 2517 1362 2517 1362 2519 1363 2520 1363 2521 1363 2521 1363 2524 1364 2524 1364 2525 1364 2524 1364 2524 1364 2525 1364 2525 1365 2526 1365 2526 1365 2527 1365 2527 1365 2528 1365 2529 1365 2529 1365 2531 1365 2531 1365 2532 1365 2532 1365 2533 1365 2534 1364 2535 1364 2536 1364 2536 1364 2537 1363 2537 1363 2538 1363 2538 1363 2538 1363 2539 1363 2540 1363 2540 1364 2541 1364 2542 1364 2544 1363 2544 1363 2545 1363 2545 1364 2545 1364 2545 1364 2545 1364 2545 1366 2544 1367 2543 1367 2543 1367 2544 1367 2544 1368 2544 1368 2545 1368 2545 1368 2546 1369 2546 1369 2545 1369 2544 1370 2543 1370 2542 1370 2541 1370 2540 1370 2539 1370 2538 1370 2538 1370 2538 1370 2538 1370 2538 1370 2539 1370 2540 1370 2541 1370 2541 1370 2541 1370 2542 1370 2545 1370 2546 1370 2547 1370 2547 1370 2552 1370 2553 1370 2555 1370 2555 1370 2555 1371 2558 1371 2559 1371 2560 1371 2560 1371 2561 1371 2561 1371 2564 1370 2565 1370 2565 1370 2565 1370 2566 1370 2566 1370 2567 1370 2567 1370 2567 1370 2567 1370 2567 1371 2567 1371 2567 1371 2566 1371 2567 1372 2567 1372 2568 1372 2569 1373 2571 1373 2571 1373 2572 1373 2570 1374 2569 1374 2569 1374 2569 1375 2569 1375 2569 1375 2566 1376 2565 1376 2562 1377 2562 1377 2561 1377 2558 1377 2553 1376 2552 1376 2552 1375 2550 1374 2550 1373 2550 1373 2548 1373 2548 1373 2546 1373 2544 1373 2541 1373 2539 1373 2535 1373 2534 1373 2533 1373 2531 1373 2530 1373 2530 1373 2529 1373 2528 1373 2527 1373 2527 1373 2526 1373 2526 1372 2525 1372 2525 1372 2523 1371 2523 1371 2522 1371 2522 1371 2522 1371 2522 1371 2523 1372 2525 1372 2527 1374 2527 1374 2527 1374 2526 1375 2525 1375 2524 1375 2524 1375 2523 1376 2522 1376 2520 1376 2517 1376 2517 1376 2516 1376 2516 1376 2516 1376 2518 1376 2519 1376 2519 1376 2520 1376 2520 1376 2520 1376 2521 1376 2521 1376 2522 1376 2522 1376 2523 1376 2523 1376 2523 1377 2523 1377 2522 1377 2520 1378 2520 1378 2521 1379 2521 1379 2521 1379 2520 1379 2520 1379 2520 1379 2519 1379 2518 1379 2517 1379 2517 1379 2516 1379 2516 1379 2516 1379 2516 1379 2519 1380 2520 1380 2521 1380 2522 1380 2522 1380 2522 1380 2523 1380 2524 1381 2526 1382 2526 1383 2527 1383 2526 1383 2526 1384 2526 1386 2526 1386 2527 1386 2527 1386 2528 1386 2528 1386 2528 1385 2527 1383 2527 1382 2527 1382 2527 1382 2526 1382 2525 1382 2525 1381 2525 1380 2525 1380 2525 1380 2526 1380 2528 1380 2528 1380 2528 1380 2529 1380 2531 1380 2531 1380 2532 1380 2533 1380 2535 1381 2535 1381 2539 1382 2543 1382 2544 1382 2545 1382 2545 1382 2546 1382 2547 1382 2548 1382 2549 1382 2550 1382 2551 1382 2551 1382 2551 1383 2551 1383 2551 1384 2551 1384 2550 1384 2550 1384 2549 1384 2548 1384 2548 1384 2548 1384 2547 1385 2547 1385 2547 1385 2547 1386 2548 1386 2548 1386 2548 1386 2548 1387 2548 1387 2547 1387 2547 1387 2547 1388 2547 1388 2548 1388 2548 1388 2549 1388 2549 1388 2550 1388 2549 1389 2549 1389 2548 1389 2548 1389 2548 1389 2547 1389 2547 1389 2547 1389 2546 1389 2545 1389 2545 1389 2545 1389 2543 1389 2543 1389 2541 1389 2538 1389 2537 1389 2536 1389 2533 1389 2533 1389 2533 1389 2532 1389 2532 1389 2531 1389 2531 1389 2530 1389 2530 1389 2529 1390 2527 1391 2525 1391 2525 1391 2524 1391 2524 1391 2523 1392 2523 1392 2522 1392 2521 1392 2521 1393 2520 1393 2520 1393 2519 1393 2518 1393 2517 1392 2516 1392 2516 1392 2515 1392 2515 1392 2514 1392 2514 1392 2514 1392 2512 1391 2511 1391 2510 1391 2509 1391 2509 1391 2506 1391 2506 1391 2505 1391 2505 1391 2505 1390 2504 1390 2503 1390 2502 1390 2502 1390 2500 1389 2500 1389 2499 1389 2499 1389 2499 1389 2499 1389 2498 1389 2496 1388 2492 1387 2492 1387 2492 1387 2491 1386 2491 1385 2491 1385 2492 1385 2492 1385 2492 1385 2494 1385 2496 1385 2498 1385 2498 1385 2499 1385 2500 1385 2500 1385 2500 1385 2502 1386 2505 1386 2506 1387 2507 1387 2509 1387 2510 1388 2510 1388 2511 1388 2513 1388 2513 1388 2515 1388 2517 1387 2520 1387 2520 1387 2520 1387 2521 1387 2520 1386 2520 1386 2519 1387 2519 1387 2517 1387 2516 1387 2516 1387 2516 1387 2515 1387 2513 1387 2513 1388 2512 1388 2512 1388 2511 1387 2510 1387 2510 1387 2509 1387 2509 1387 2505 1386 2500 1385 2499 1385 2499 1385 2496 1385 2495 1385 2495 1385 2494 1385 2493 1385 2493 1384 2493 1384 2492 1384 2492 1384 2491 1384 2491 1384 2489 1384 2486 1384 2484 1385 2484 1386 2484 1386 2484 1386 2484 1386 2484 1387 2485 1387 2485 1387 2485 1387 2486 1388 2486 1388 2485 1388 2485 1388 2484 1388 2484 1388 2484 1388 2483 1388 2483 1388 2482 1387 2481 1387 2481 1387 2481 1387 2480 1387 2478 1387 2477 1387 2476 1387 2476 1387 2476 1386 2476 1386 2476 1386 2476 1386 2476 1386 2476 1385 2476 1385 2475 1385 2473 1385 2473 1385 2473 1385 2469 1383 2469 1383 2469 1383 2468 1383 2468 1382 2468 1382 2468 1382 2467 1382 2465 1381 2465 1381 2465 1381 2464 1381 2464 1381 2464 1382 2464 1382 2465 1382 2466 1383 2467 1383 2467 1383 2467 1383 2467 1383 2467 1384 2467 1384 2470 1385 2471 1385 2472 1385 2474 1385 2474 1385 2474 1386 2474 1386 2474 1386 2474 1387 2475 1387 2475 1387 2477 1387 2478 1388 2481 1388 2481 1388 2481 1389 2480 1389 2477 1389 2474 1389 2472 1389 2471 1389 2471 1389 2470 1389 2468 1390 2468 1391 2464 1392 2464 1392 2463 1392 2463 1393 2462 1393 2462 1393 2460 1393 2458 1393 2457 1393 2457 1393 2457 1393 2456 1392 2456 1392 2456 1392 2455 1392 2455 1392 2453 1391 2453 1391 2452 1391 2452 1391 2452 1391 2451 1391 2451 1391 2451 1391 2450 1391 2448 1391 2448 1391 2447 1391 2447 1391 2446 1391 2445 1391 2444 1390 2443 1390 2441 1389 2441 1389 2440 1389 2440 1389 2440 1389 2440 1389 2439 1389 2438 1389 2438 1389 2437 1389 2436 1389 2441 1391 2442 1391 2446 1392 2446 1392 2446 1392 2449 1392 2451 1392 2452 1392 2452 1392 2452 1392 2453 1392 2453 1392 2453 1393 2453 1393 2453 1393 2452 1393 2452 1393 2451 1393 2451 1393 2450 1393 2450 1393 2450 1393 2450 1394 2449 1394 2448 1394 2448 1394 2448 1394 2446 1394 2445 1394 2443 1394 2443 1394 2442 1394 2442 1393 2440 1394 2438 1394 2435 1394 2434 1394 2434 1394 2433 1394 2433 1394 2432 1394 2432 1394 2432 1395 2433 1395 2433 1395 2434 1395 2435 1394 2435 1394 2435 1394 2436 1394 2436 1394 2437 1394 2437 1395 2437 1395 2437 1395 2438 1396 2438 1397 2437 1397 2436 1397 2436 1397 2436 1397 2435 1398 2436 1398 2436 1398 2437 1398 2438 1397 2439 1397 2439 1397 2439 1396 2439 1395 2439 1395 2439 1395 2440 1395 2441 1394 2441 1394 2441 1394 2442 1394 2442 1394 2443 1394 2444 1395 2444 1395 2446 1395 2448 1395 2448 1395 2449 1395 2449 1395 2450 1395 2450 1395 2451 1394 2451 1394 2452 1394 2452 1394 2452 1393 2453 1393 2453 1393 2453 1393 2455 1394 2455 1394 2456 1393 2458 1393 2459 1393 2460 1393 2460 1393 2460 1393 2462 1394 2462 1394 2463 1394 2463 1394 2463 1394 2463 1394 2463 1394 2464 1394 2466 1395 2469 1395 2470 1395 2472 1395 2473 1395 2474 1395 2475 1395 2475 1395 2476 1396 2476 1396 2475 1397 2474 1398 2473 1398 2473 1398 2471 1398 2471 1398 2470 1398 2469 1398 2467 1398 2465 1398 2465 1398 2464 1398 2464 1398 2463 1399 2463 1399 2462 1399 2462 1399 2462 1399 2461 1399 2461 1400 2460 1400 2459 1400 2457 1400 2456 1400 2456 1400 2455 1400 2451 1399 2451 1399 2450 1399 2450 1399 2449 1399 2449 1399 2448 1399 2448 1399 2447 1399 2445 1399 2442 1399 2442 1399 2442 1399 2441 1399 2440 1399 2440 1399 2439 1399 2439 1399 2438 1399 2438 1399 2438 1399 2438 1399 2438 1399 2438 1399 2438 1399 2438 1399 2441 1400 2442 1400 2442 1400 2443 1400 2445 1399 2448 1399 2449 1399 2449 1399 2453 1400 2453 1400 2452 1400 2452 1401 2451 1401 2450 1401 2449 1401 2449 1401 2447 1401 2448 1401 2448 1401 2448 1401 2449 1401 2451 1401 2454 1401 2454 1401 2455 1401 2455 1401 2454 1402 2453 1403 2453 1403 2452 1403 2452 1403 2452 1403 2452 1403 2453 1403 2454 1403 2455 1403 2456 1402 2458 1401 2458 1401 2459 1401 2459 1401 2461 1401 2462 1401 2462 1401 2463 1400 2464 1400 2465 1399 2466 1399 2466 1399 2467 1399 2467 1399 2468 1399 2468 1399 2473 1400 2474 1401 2478 1401 2478 1401 2480 1402 2480 1402 2480 1402 2480 1402 2480 1402 2480 1402 2480 1403 2481 1403 2482 1404 2482 1404 2481 1405 2480 1405 2477 1405 2474 1406 2474 1406 2473 1406 2472 1406 2471 1406 2470 1406 2470 1406 2469 1406 2468 1406 2468 1406 2466 1406 2463 1406 2463 1406 2462 1406 2461 1406 2461 1406 2461 1406 2463 1406 2464 1406 2464 1406 2465 1406 2465 1406 2466 1406 2467 1406 2468 1406 2468 1406 2470 1406 2471 1406 2471 1406 2471 1406 2471 1407 2470 1407 2468 1408 2468 1409 2468 1409 2468 1409 2467 1411 2467 1411 2468 1411 2468 1410 2469 1410 2469 1410 2469 1410 2469 1410 2469 1410 2469 1410 2469 1409 2470 1408 2470 1408 2472 1407 2473 1407 2473 1407 2474 1407 2477 1406 2479 1406 2482 1406 2483 1406 2483 1406 2484 1406 2484 1406 2484 1406 2485 1407 2485 1407 2485 1407 2486 1407 2491 1408 2493 1408 2494 1408 2495 1408 2496 1409 2496 1409 2496 1409 2496 1410 2497 1410 2500 1410 2504 1411 2506 1411 2506 1411 2506 1412 2506 1412 2506 1412 2505 1412 2505 1412 2505 1412 2506 1413 2506 1413 2506 1413 2507 1412 2507 1412 2507 1412 2510 1413 2511 1413 2512 1413 2513 1413 2514 1414 2515 1414 2515 1414 2516 1414 2516 1414 2516 1414 2515 1414 2515 1415 2514 1415 2512 1415 2512 1416 2511 1416 2511 1416 2509 1416 2509 1416 2508 1417 2508 1417 2507 1417 2506 1418 2506 1418 2506 1418 2506 1418 2506 1418 2507 1418 2508 1418 2508 1418 2508 1418 2510 1418 2512 1417 2516 1416 2517 1416 2517 1416 2517 1416 2517 1416 2517 1416 2517 1417 2515 1417 2514 1418 2514 1418 2513 1418 2513 1418 2513 1418 2513 1419 2514 1419 2514 1419 2517 1418 2519 1417 2519 1417 2519 1417 2520 1416 2520 1416 2521 1416 2525 1417 2525 1417 2524 1418 2523 1418 2523 1418 2522 1418 2521 1418 2521 1418 2520 1418 2521 1419 2521 1419 2522 1419 2522 1419 2522 1419 2522 1419 2521 1419 2521 1419 2520 1419 2517 1419 2516 1419 2516 1420 2516 1420 2515 1420 2515 1421 2515 1421 2516 1422 2516 1424 2516 1425 2517 1425 2518 1424 2518 1424 2518 1424 2518 1424 2518 1423 2518 1423 2519 1422 2519 1422 2521 1421 2522 1421 2522 1421 2522 1421 2522 1421 2523 1421 2527 1420 2528 1421 2529 1422 2528 1422 2527 1422 2527 1423 2527 1423 2527 1423 2528 1423 2528 1423 2530 1423 2530 1423 2527 1424 2527 1424 2526 1424 2525 1424 2524 1424 2525 1425 2525 1425 2526 1425 2526 1425 2526 1425 2526 1424 2527 1424 2527 1424 2528 1425 2529 1425 2529 1426 2528 1426 2527 1427 2524 1427 2523 1427 2522 1427 2518 1428 2519 1428 2521 1428 2521 1428 2522 1428 2524 1427 2527 1427 2527 1427 2528 1427 2528 1427 2529 1427 2530 1429 2528 1431 2528 1432 2528 1432 2527 1432 2526 1432 2526 1432 2526 1432 2526 1432 2525 1431 2525 1431 2525 1432 2525 1432 2526 1432 2526 1432 2527 1432 2528 1432 2528 1432 2529 1432 2529 1432 2529 1432 2529 1432 2531 1433 2531 1433 2529 1433 2529 1433 2528 1433 2527 1433 2528 1433 2529 1434 2527 1435 2527 1435 2527 1435 2527 1435 2528 1435 2528 1435 2530 1435 2532 1436 2532 1436 2531 1436 2531 1437 2531 1437 2529 1437 2529 1438 2528 1438 2528 1438 2527 1438 2525 1438 2524 1438 2524 1438 2524 1438 2524 1438 2524 1438 2524 1438 2524 1438 2524 1437 2525 1437 2525 1437 2524 1437 2524 1437 2523 1437 2523 1436 2523 1436 2522 1437 2522 1437 2520 1437 2520 1437 2519 1437 2519 1437 2518 1437 2518 1437 2517 1437 2517 1437 2517 1437 2517 1436 2517 1436 2517 1436 2517 1435 2517 1435 2517 1434 2517 1434 2516 1434 2516 1433 2516 1432 2517 1432 2517 1432 2517 1432 2517 1431 2516 1431 2516 1431 2516 1431 2515 1431 2514 1432 2514 1432 2513 1433 2513 1433 2513 1434 2514 1434 2514 1434 2514 1435 2515 1435 2515 1435 2514 1437 2514 1437 2514 1437 2514 1437 2513 1437 2513 1438 2512 1438 2512 1438 2511 1438 2510 1438 2508 1438 2508 1438 2507 1438 2506 1438 2505 1438 2502 1437 2502 1437 2502 1437 2500 1437 2494 1435 2493 1435 2491 1434 2491 1434 2491 1434 2489 1432 2489 1432 2488 1430 2488 1430 2488 1429 2488 1429 2488 1429 2489 1429 2489 1428 2488 1428 2487 1427 2487 1427 2486 1426 2485 1426 2484 1426 2484 1426 2483 1425 2483 1425 2481 1424 2480 1423 2480 1423 2478 1424 2478 1424 2478 1424 2475 1424 2474 1424 2474 1424 2474 1424 2472 1423 2472 1423 2471 1422 2470 1422 2469 1421 2468 1421 2467 1421 2467 1420 2467 1420 2466 1420 2466 1420 2465 1420 2463 1420 2454 1419 2452 1419 2451 1420 2451 1420 2450 1420 2449 1420 2448 1420 2448 1420 2447 1420 2447 1420 2445 1419 2444 1419 2444 1419 2441 1418 2441 1418 2441 1417 2441 1417 2440 1417 2440 1417 2439 1416 2439 1416 2438 1416 2438 1416 2436 1416 2436 1416 2434 1415 2434 1414 2434 1414 2434 1414 2433 1414 2432 1413 2431 1413 2430 1413 2428 1413 2428 1413 2427 1413 2426 1413 2424 1413 2424 1413 2424 1412 2424 1412 2424 1412 2423 1412 2423 1412 2419 1410 2418 1410 2418 1410 2418 1411 2417 1411 2417 1411 2417 1411 2417 1411 2418 1411 2419 1411 2419 1411 2420 1411 2420 1412 2422 1412 2422 1412 2422 1412 2422 1413 2421 1413 2421 1413 2420 1413 2420 1413 2420 1413 2420 1413 2420 1413 2420 1414 2421 1414 2424 1414 2426 1414 2427 1414 2428 1414 2429 1414 2430 1414 2431 1414 2431 1414 2431 1414 2431 1415 2430 1415 2434 1416 2435 1416 2435 1416 2437 1417 2437 1417 2438 1417 2438 1417 2439 1417 2438 1418 2437 1418 2437 1418 2437 1418 2436 1418 2435 1418 2435 1418 2434 1418 2433 1418 2433 1418 2433 1418 2432 1418 2432 1418 2432 1418 2432 1419 2431 1419 2428 1419 2428 1419 2427 1419 2425 1419 2422 1419 2422 1419 2422 1419 2421 1419 2421 1419 2421 1419 2420 1419 2420 1419 2420 1419 2420 1420 2420 1420 2421 1420 2421 1420 2422 1420 2427 1420 2427 1420 2427 1420 2428 1420 2429 1419 2432 1419 2433 1419 2433 1419 2434 1419 2434 1419 2435 1419 2438 1419 2438 1419 2442 1419 2442 1419 2441 1420 2440 1420 2440 1420 2440 1420 2439 1420 2439 1420 2439 1420 2439 1420 2440 1421 2441 1421 2441 1420 2441 1420 2442 1420 2443 1420 2443 1420 2444 1420 2444 1420 2446 1420 2449 1421 2451 1421 2451 1421 2452 1421 2453 1420 2455 1421 2457 1421 2459 1421 2460 1420 2461 1420 2462 1420 2464 1421 2464 1421 2465 1421 2465 1421 2465 1422 2466 1422 2466 1422 2467 1422 2467 1422 2467 1422 2468 1423 2468 1423 2468 1422 2469 1423 2469 1423 2469 1424 2467 1425 2467 1425 2466 1425 2466 1425 2464 1424 2464 1424 2463 1424 2464 1425 2465 1425 2466 1425 2466 1426 2466 1426 2465 1426 2460 1428 2460 1428 2459 1428 2458 1428 2456 1428 2455 1428 2454 1428 2453 1429 2452 1429 2452 1429 2447 1430 2447 1430 2444 1429 2441 1429 2440 1430 2439 1430 2436 1429 2436 1429 2435 1429 2435 1429 2435 1429 2435 1428 2434 1428 2432 1427 2432 1427 2432 1427 2432 1426 2431 1426 2431 1426 2431 1426 2429 1426 2429 1427 2430 1428 2431 1428 2431 1428 2431 1428 2432 1428 2433 1429 2433 1429 2434 1429 2434 1429 2434 1429 2433 1429 2432 1429 2432 1429 2432 1429 2431 1429 2431 1429 2431 1429 2430 1429 2427 1429 2427 1429 2426 1429 2423 1429 2423 1429 2421 1429 2421 1429 2422 1429 2422 1429 2422 1429 2423 1429 2425 1429 2426 1429 2426 1430 2429 1430 2429 1431 2429 1431 2427 1433 2427 1433 2423 1436 2421 1436 2421 1436 2418 1436 2418 1436 2418 1436 2417 1436 2417 1436 2417 1436 2416 1436 2416 1436 2415 1436 2413 1437 2409 1437 2408 1437 2408 1437 2409 1438 2410 1438 2412 1438 2412 1438 2412 1438 2413 1438 2413 1437 2413 1437 2414 1437 2415 1437 2416 1437 2416 1437 2417 1437 2417 1437 2418 1437 2419 1437 2419 1437 2419 1437 2420 1437 2420 1436 2420 1436 2423 1436 2423 1436 2423 1437 2423 1437 2423 1437 2422 1437 2422 1438 2422 1438 2423 1438 2423 1438 2424 1438 2424 1439 2424 1439 2424 1439 2425 1438 2430 1438 2435 1438 2440 1437 2442 1437 2443 1437 2443 1437 2443 1437 2445 1437 2445 1437 2446 1437 2447 1437 2447 1437 2448 1437 2449 1437 2450 1437 2451 1437 2452 1437 2452 1437 2455 1438 2454 1439 2454 1439 2451 1440 2450 1440 2449 1440 2448 1440 2448 1440 2448 1440 2446 1440 2446 1440 2445 1439 2445 1439 2445 1439 2444 1439 2443 1440 2442 1440 2440 1440 2439 1441 2439 1441 2438 1441 2438 1441 2436 1442 2432 1442 2432 1443 2432 1443 2431 1443 2431 1443 2431 1443 2431 1443 2430 1443 2430 1443 2429 1443 2428 1443 2428 1443 2428 1443 2428 1443 2427 1442 2426 1442 2426 1442 2425 1442 2425 1442 2424 1442 2424 1442 2424 1442 2423 1442 2422 1443 2419 1443 2418 1443 2419 1444 2419 1444 2419 1444 2420 1444 2422 1444 2422 1444 2422 1444 2425 1443 2425 1443 2426 1443 2426 1443 2426 1444 2427 1444 2428 1444 2428 1444 2429 1444 2430 1444 2431 1444 2431 1444 2434 1444 2434 1444 2435 1444 2435 1444 2435 1444 2435 1444 2435 1445 2435 1445 2435 1445 2436 1445 2436 1445 2437 1445 2437 1445 2438 1445 2439 1445 2439 1445 2439 1445 2439 1445 2441 1443 2441 1443 2441 1443 2441 1443 2441 1442 2441 1442 2441 1442 2442 1441 2443 1441 2445 1440 2446 1440 2446 1440 2447 1440 2448 1440 2449 1440 2449 1441 2450 1441 2450 1441 2450 1441 2450 1441 2451 1441 2451 1441 2452 1441 2454 1441 2454 1441 2455 1441 2455 1441 2458 1440 2460 1440 2464 1439 2466 1439 2471 1438 2471 1438 2472 1438 2472 1438 2472 1438 2473 1438 2472 1438 2472 1438 2472 1438 2470 1439 2470 1439 2470 1439 2470 1440 2470 1440 2470 1440 2471 1440 2472 1440 2472 1440 2472 1440 2473 1440 2474 1439 2475 1439 2475 1439 2476 1439 2476 1439 2479 1439 2483 1440 2493 1442 2495 1442 2498 1443 2498 1443 2499 1443 2505 1443 2510 1443 2511 1443 2513 1443 2514 1443 2515 1443 2516 1443 2518 1443 2519 1442 2520 1442 2520 1442 2520 1442 2520 1442 2521 1442 2522 1442 2522 1442 2522 1442 2522 1443 2522 1443 2521 1443 2519 1444 2519 1444 2518 1445 2518 1445 2518 1445 2517 1445 2516 1445 2516 1445 2514 1445 2514 1445 2513 1446 2513 1445 2512 1445 2511 1445 2510 1445 2510 1445 2510 1445 2509 1445 2509 1445 2509 1446 2510 1446 2510 1446 2511 1446 2511 1446 2511 1446 2511 1446 2511 1446 2511 1446 2511 1446 2510 1446 2510 1446 2509 1446 2509 1446 2508 1446 2508 1446 2508 1446 2508 1446 2508 1445 2507 1445 2507 1445 2507 1445 2506 1446 2506 1446 2507 1446 2507 1446 2507 1446 2507 1447 2506 1447 2506 1447 2506 1447 2505 1446 2505 1446 2504 1446 2503 1447 2503 1447 2504 1447 2504 1447 2506 1447 M 2243 1231 2245 1231 2245 1230 2246 1230 2246 1230 2249 1230 2249 1231 2251 1231 2251 1231 2254 1232 2252 1232 2249 1232 2248 1232 2247 1232 2243 1232 2242 1231 2242 1231 2242 1231 2243 1231 M 2253 1235 2251 1235 2250 1235 2249 1235 2244 1234 2243 1234 2239 1234 2238 1233 2237 1233 2236 1233 2235 1233 2235 1233 2234 1233 2234 1233 2233 1233 2232 1233 2229 1233 2228 1233 2226 1233 2225 1232 2225 1232 2225 1232 2226 1232 2226 1232 2226 1231 2228 1231 2231 1231 2232 1231 2232 1231 2232 1231 2232 1232 2233 1232 2235 1232 2235 1232 2236 1232 2238 1232 2240 1232 2240 1232 2241 1232 2241 1232 2242 1233 2242 1233 2242 1233 2243 1233 2243 1233 2244 1233 2245 1233 2246 1234 2246 1234 2249 1234 2251 1234 2253 1234 2254 1234 2255 1234 2255 1234 2258 1235 2257 1235 2255 1235 2254 1235 2253 1235 2253 1235 M 2216 1232 2214 1232 2212 1232 2210 1232 2209 1232 2209 1232 2212 1232 2213 1232 2214 1232 2216 1232 2216 1232 2216 1232 M 2198 1233 2197 1233 2198 1233 2198 1232 2199 1232 2202 1233 2203 1233 2203 1233 2205 1233 2204 1233 2203 1233 2202 1233 2198 1233 2198 1233 2198 1233 M 2211 1233 2211 1233 2211 1233 2212 1233 2213 1233 2217 1233 2218 1233 2219 1233 2220 1233 2220 1233 2220 1233 2218 1234 2215 1233 2212 1233 2211 1233 2211 1233 M 2259 1235 2258 1234 2258 1234 2258 1234 2258 1234 2258 1234 2258 1234 2260 1234 2264 1234 2265 1234 2266 1234 2267 1234 2267 1234 2268 1234 2268 1234 2268 1234 2267 1235 2265 1235 2263 1235 2262 1235 2261 1235 2260 1235 2259 1235 M 2238 1237 2238 1237 2237 1237 2233 1237 2233 1237 2229 1237 2227 1237 2226 1237 2223 1236 2219 1236 2219 1235 2219 1235 2218 1235 2217 1235 2217 1235 2216 1235 2214 1234 2213 1234 2212 1234 2213 1234 2214 1234 2215 1234 2220 1234 2222 1234 2223 1234 2223 1234 2224 1235 2224 1235 2224 1235 2225 1235 2228 1236 2229 1236 2229 1236 2231 1236 2234 1236 2235 1236 2238 1237 2238 1237 2238 1237 M 2242 1237 2241 1237 2239 1237 2238 1237 2238 1236 2237 1236 2237 1236 2237 1236 2236 1236 2235 1236 2235 1236 2234 1236 2231 1236 2230 1235 2230 1235 2228 1235 2227 1234 2228 1234 2228 1234 2228 1234 2229 1234 2231 1234 2233 1234 2234 1234 2236 1234 2237 1234 2237 1235 2238 1235 2238 1235 2240 1235 2242 1235 2244 1235 2247 1235 2247 1235 2248 1235 2247 1236 2246 1236 2244 1237 2244 1237 2243 1237 2242 1237 M 2128 1239 2126 1239 2124 1239 2122 1238 2121 1238 2120 1238 2121 1238 2121 1238 2124 1238 2126 1238 2126 1238 2127 1238 2128 1239 2129 1239 2131 1239 2133 1239 2134 1239 2133 1239 2132 1240 2130 1240 2129 1239 2129 1239 2128 1239 2128 1239 M 2103 1240 2103 1240 2102 1240 2102 1240 2102 1239 2102 1239 2102 1239 2102 1239 2102 1239 2103 1239 2104 1239 2104 1239 2105 1239 2106 1239 2111 1239 2112 1239 2113 1239 2113 1239 2114 1239 2115 1239 2117 1240 2117 1240 2117 1240 2116 1240 2115 1240 2114 1240 2112 1240 2110 1240 2109 1240 2108 1240 2107 1240 2106 1240 2105 1240 2104 1240 2103 1240 M 2156 1252 2155 1252 2154 1252 2154 1252 2152 1251 2152 1251 2151 1251 2151 1251 2151 1250 2151 1250 2151 1250 2150 1250 2149 1250 2147 1250 2146 1249 2145 1249 2141 1249 2138 1248 2138 1248 2135 1248 2133 1248 2132 1248 2131 1248 2126 1247 2125 1247 2125 1247 2124 1247 2124 1246 2124 1246 2124 1246 2124 1246 2122 1245 2121 1245 2121 1245 2120 1245 2119 1244 2118 1244 2118 1244 2116 1243 2112 1243 2113 1243 2115 1242 2122 1242 2122 1242 2123 1242 2127 1243 2127 1242 2127 1242 2128 1242 2129 1242 2130 1242 2134 1242 2136 1242 2138 1242 2139 1242 2139 1242 2140 1242 2141 1243 2143 1243 2144 1243 2151 1244 2154 1244 2157 1245 2158 1245 2159 1245 2159 1245 2160 1246 2161 1246 2163 1246 2164 1246 2165 1246 2165 1246 2165 1247 2166 1247 2165 1247 2165 1247 2165 1247 2164 1247 2162 1248 2160 1248 2158 1248 2157 1249 2157 1249 2155 1249 2155 1249 2155 1250 2156 1250 2157 1250 2158 1250 2159 1251 2160 1251 2160 1251 2160 1251 2160 1252 2159 1252 2156 1252 M 2104 1246 2104 1246 2104 1246 2103 1246 2102 1245 2101 1245 2099 1245 2097 1245 2097 1245 2096 1244 2095 1244 2095 1244 2095 1244 2095 1244 2095 1244 2096 1244 2096 1244 2099 1244 2100 1244 2103 1244 2104 1244 2106 1245 2106 1245 2107 1245 2108 1245 2108 1245 2106 1246 2106 1246 2105 1246 2105 1246 2105 1246 2104 1246 2104 1246 2104 1246 M 2057 1253 2056 1253 2055 1253 2053 1253 2051 1253 2050 1253 2049 1253 2045 1253 2043 1253 2040 1253 2040 1252 2038 1252 2036 1252 2035 1252 2035 1252 2034 1252 2031 1252 2027 1251 2026 1251 2025 1251 2025 1251 2023 1250 2023 1250 2023 1249 2023 1249 2023 1249 2023 1248 2024 1248 2025 1248 2026 1248 2026 1248 2027 1248 2027 1248 2028 1248 2030 1248 2031 1248 2032 1248 2032 1248 2035 1248 2036 1248 2035 1249 2036 1249 2036 1249 2036 1250 2037 1250 2038 1250 2039 1250 2039 1250 2040 1250 2041 1250 2042 1250 2043 1250 2044 1250 2045 1250 2046 1250 2047 1251 2047 1251 2055 1252 2056 1252 2056 1253 2057 1253 2057 1253 2057 1253 2057 1253 2057 1253 M 2041 1249 2041 1249 2041 1249 2040 1249 2040 1249 2040 1248 2040 1248 2041 1248 2042 1248 2043 1248 2045 1248 2045 1248 2046 1249 2048 1249 2047 1249 2046 1249 2044 1249 2043 1249 2042 1249 2042 1249 2041 1249 M 2571 1253 2572 1253 2572 1252 2571 1252 2571 1252 2570 1252 2569 1251 2568 1251 2568 1251 2567 1251 2566 1251 2565 1250 2565 1249 2565 1249 2566 1249 2567 1249 2567 1249 2568 1250 2568 1250 2569 1250 2571 1251 2573 1252 2573 1252 2575 1253 2574 1253 2574 1253 2573 1253 2572 1253 2571 1253 2571 1253 M 2552 1254 2552 1254 2548 1253 2544 1252 2544 1252 2543 1251 2543 1251 2543 1251 2543 1250 2544 1250 2544 1250 2544 1250 2545 1250 2545 1250 2546 1250 2547 1250 2547 1250 2548 1250 2548 1250 2550 1251 2551 1251 2551 1251 2552 1251 2553 1252 2553 1252 2553 1252 2553 1252 2554 1252 2555 1252 2557 1253 2558 1253 2560 1254 2560 1255 2559 1255 2558 1255 2556 1255 2555 1255 2553 1255 2553 1255 2552 1254 M 2578 1258 2578 1258 2577 1258 2577 1258 2575 1258 2572 1257 2569 1257 2569 1257 2568 1257 2568 1257 2568 1257 2568 1256 2568 1256 2569 1256 2571 1256 2572 1256 2573 1256 2574 1256 2575 1256 2575 1256 2577 1257 2579 1257 2581 1258 2582 1258 2583 1258 2582 1258 2580 1258 2579 1258 2578 1258 M 2541 1259 2543 1259 2543 1259 2543 1258 2543 1258 2543 1258 2541 1258 2540 1257 2541 1257 2541 1257 2542 1257 2543 1257 2543 1257 2546 1258 2546 1258 2546 1258 2547 1258 2548 1258 2551 1258 2552 1258 2552 1258 2553 1258 2552 1258 2548 1259 2547 1259 2546 1259 2544 1259 2541 1259 M 1807 1275 1807 1274 1807 1274 1807 1274 1808 1274 1809 1274 1809 1274 1812 1275 1812 1275 1811 1275 1810 1275 1809 1275 1808 1275 1807 1275 1807 1275 1807 1275 M 2570 1282 2566 1283 2566 1283 2563 1283 2559 1284 2557 1284 2557 1284 2556 1284 2555 1283 2557 1282 2557 1282 2558 1281 2558 1281 2559 1281 2559 1281 2560 1281 2561 1281 2562 1281 2563 1281 2564 1281 2564 1281 2570 1282 2571 1282 2571 1282 2571 1282 2570 1282 M 2567 1297 2567 1297 2566 1298 2566 1299 2566 1299 2565 1299 2565 1299 2565 1299 2564 1298 2564 1298 2564 1298 2564 1298 2564 1297 2565 1297 2566 1297 2566 1297 2566 1297 2567 1297 M 2592 1297 2594 1298 2594 1298 2595 1298 2595 1298 2594 1299 2594 1299 2594 1299 2592 1300 2592 1300 2590 1300 2588 1301 2588 1301 2587 1301 2587 1301 2586 1301 2586 1301 2586 1301 2586 1300 2586 1299 2586 1299 2589 1297 2590 1297 2590 1297 2590 1297 2590 1297 2591 1297 2591 1297 2592 1297 2592 1297 M 2565 1305 2564 1305 2563 1305 2563 1305 2563 1305 2560 1304 2560 1304 2560 1304 2559 1304 2560 1304 2560 1304 2561 1303 2565 1302 2566 1302 2566 1302 2567 1302 2568 1301 2568 1301 2569 1301 2568 1303 2567 1303 2566 1303 2566 1304 2566 1304 2566 1304 2567 1304 2568 1304 2568 1304 2568 1304 2569 1304 2568 1304 2568 1304 2568 1304 2567 1304 2567 1304 2566 1304 2566 1304 2565 1304 2565 1304 2565 1304 2566 1304 2566 1304 2567 1304 2569 1304 2569 1304 2567 1305 2566 1305 2565 1305 M 2583 1305 2582 1304 2582 1304 2582 1303 2583 1303 2583 1303 2583 1303 2583 1303 2584 1303 2584 1303 2584 1303 2585 1303 2585 1303 2585 1303 2586 1304 2586 1304 2586 1304 2586 1304 2585 1304 2584 1304 2584 1305 2583 1305 M 2582 1306 2582 1306 2582 1306 2582 1306 2578 1307 2578 1308 2578 1307 2577 1307 2576 1307 2576 1307 2576 1307 2578 1306 2578 1306 2579 1306 2580 1306 2580 1306 2580 1306 2582 1306 2582 1306 2582 1306 M 2568 1310 2568 1310 2569 1310 2570 1311 2569 1311 2568 1312 2567 1312 2567 1312 2567 1312 2566 1312 2566 1312 2566 1311 2565 1310 2565 1310 2566 1310 2566 1310 2567 1310 2567 1310 2568 1310 M 2562 1311 2563 1311 2563 1311 2564 1311 2564 1312 2563 1312 2563 1312 2563 1312 2562 1312 2561 1312 2561 1312 2561 1312 2560 1312 2560 1312 2560 1312 2560 1311 2561 1311 2561 1310 2561 1310 2562 1311 M 2568 1313 2568 1313 2567 1313 2567 1313 2567 1313 2566 1312 2566 1312 2566 1312 2570 1311 2571 1311 2571 1311 2573 1312 2573 1312 2573 1312 2569 1313 2568 1313 M 2550 1313 2549 1314 2549 1314 2548 1314 2548 1314 2547 1314 2547 1314 2546 1314 2546 1314 2546 1314 2543 1314 2543 1314 2545 1313 2547 1313 2547 1313 2548 1313 2550 1313 2551 1313 2550 1313 2550 1313 M 2574 1314 2573 1314 2573 1314 2573 1314 2572 1315 2572 1315 2572 1315 2571 1315 2571 1315 2571 1315 2570 1315 2570 1315 2569 1315 2569 1315 2569 1315 2569 1315 2573 1314 2573 1314 2574 1314 2574 1314 2574 1314 2574 1314 M 2538 1317 2537 1317 2536 1317 2537 1317 2535 1318 2535 1318 2535 1318 2534 1319 2534 1319 2533 1318 2533 1318 2533 1318 2533 1318 2533 1318 2533 1318 2533 1317 2534 1317 2534 1317 2536 1317 2536 1317 2536 1317 2537 1316 2538 1316 2538 1317 2538 1317 M 2559 1318 2559 1318 2560 1318 2560 1319 2561 1319 2562 1319 2563 1319 2564 1318 2565 1318 2565 1318 2566 1318 2566 1318 2567 1319 2567 1319 2568 1319 2568 1319 2568 1320 2567 1320 2567 1320 2566 1320 2564 1320 2559 1319 2558 1319 2555 1319 2550 1318 2549 1318 2548 1318 2548 1317 2548 1317 2548 1317 2549 1317 2549 1317 2550 1317 2550 1317 2556 1317 2556 1317 2557 1317 2556 1317 2555 1317 2555 1317 2554 1317 2555 1318 2558 1318 2559 1318 M 2593 1318 2594 1319 2594 1319 2594 1320 2592 1321 2591 1322 2590 1322 2590 1322 2589 1322 2587 1322 2586 1322 2586 1322 2584 1322 2586 1321 2586 1320 2586 1320 2587 1320 2588 1319 2588 1319 2589 1319 2589 1319 2589 1318 2590 1318 2591 1318 2591 1318 2592 1318 2593 1318 2593 1318 2593 1318 M 2554 1322 2554 1322 2554 1323 2555 1323 2555 1323 2555 1323 2555 1323 2555 1323 2555 1323 2554 1323 2554 1323 2554 1323 2553 1323 2553 1323 2552 1323 2552 1323 2551 1323 2551 1323 2550 1323 2550 1323 2549 1323 2549 1323 2549 1323 2549 1322 2550 1322 2551 1322 2552 1322 2553 1322 2553 1322 2554 1322 2554 1322 2554 1322 M 2558 1324 2558 1324 2558 1324 2558 1325 2558 1325 2557 1325 2557 1324 2557 1324 2555 1324 2555 1324 2555 1324 2555 1323 2555 1323 2556 1323 2556 1323 2556 1323 2556 1323 2558 1324 2558 1324 2558 1324 M 1817 1325 1814 1325 1811 1325 1810 1325 1810 1325 1810 1325 1809 1325 1809 1325 1809 1325 1809 1324 1816 1324 1816 1324 1817 1324 1818 1325 1817 1325 1817 1325 M 1737 1325 1738 1325 1740 1325 1743 1325 1745 1325 1746 1325 1746 1325 1746 1325 1747 1326 1748 1326 1750 1326 1752 1326 1752 1326 1753 1326 1754 1326 1755 1326 1755 1326 1756 1326 1756 1326 1756 1326 1755 1326 1752 1326 1747 1327 1742 1327 1741 1327 1740 1327 1740 1327 1739 1327 1739 1327 1736 1325 1737 1325 1737 1325 M 1721 1325 1722 1325 1724 1326 1726 1326 1730 1326 1731 1326 1734 1326 1735 1326 1735 1327 1735 1327 1735 1327 1735 1327 1732 1327 1730 1328 1729 1328 1726 1328 1725 1328 1723 1328 1723 1328 1723 1328 1720 1327 1718 1327 1717 1326 1717 1326 1716 1326 1716 1326 1716 1326 1716 1326 1719 1325 1721 1325 1721 1325 M 2561 1335 2562 1336 2562 1336 2562 1336 2562 1336 2561 1336 2560 1336 2560 1336 2559 1336 2559 1336 2559 1336 2559 1335 2560 1335 2560 1335 2560 1335 2561 1335 M 2577 1346 2577 1346 2577 1346 2578 1347 2578 1347 2579 1348 2579 1348 2579 1348 2579 1349 2579 1349 2578 1350 2578 1350 2578 1350 2577 1350 2577 1350 2577 1350 2577 1350 2577 1349 2577 1349 2577 1349 2577 1348 2577 1348 2576 1348 2576 1348 2575 1347 2575 1347 2574 1346 2573 1345 2573 1345 2573 1345 2573 1345 2573 1344 2573 1344 2573 1344 2573 1344 2572 1343 2571 1342 2570 1341 2569 1341 2569 1341 2569 1340 2569 1340 2570 1340 2570 1339 2570 1339 2571 1339 2571 1339 2572 1339 2572 1339 2573 1339 2574 1339 2575 1339 2575 1339 2575 1339 2575 1339 2575 1339 2574 1339 2572 1339 2570 1337 2570 1337 2570 1337 2571 1337 2571 1337 2571 1336 2572 1336 2572 1336 2572 1337 2573 1337 2575 1337 2576 1338 2576 1338 2577 1338 2577 1339 2577 1339 2577 1339 2577 1340 2576 1340 2576 1341 2576 1343 2577 1344 2577 1344 2578 1345 2578 1345 2577 1346 M 2560 1337 2561 1337 2562 1337 2562 1337 2561 1337 2560 1337 2560 1337 2558 1337 2558 1337 2558 1337 2558 1337 2559 1337 2559 1337 2560 1337 M 2537 1340 2536 1340 2535 1340 2533 1340 2533 1340 2533 1339 2532 1339 2531 1339 2531 1339 2531 1339 2532 1338 2533 1338 2533 1338 2539 1338 2540 1339 2540 1339 2539 1339 2538 1339 2538 1339 2538 1340 2538 1340 2537 1340 2537 1340 M 1763 1339 1763 1339 1764 1339 1764 1339 1765 1339 1765 1339 1765 1340 1765 1340 1764 1340 1763 1340 1762 1340 1761 1340 1761 1340 1758 1340 1757 1340 1757 1340 1756 1340 1757 1339 1757 1339 1758 1339 1759 1339 1760 1339 1762 1339 1762 1339 1763 1339 1763 1339 M 2544 1340 2544 1340 2544 1341 2544 1341 2544 1342 2544 1342 2544 1342 2543 1342 2542 1342 2541 1342 2540 1342 2538 1342 2538 1342 2538 1342 2537 1342 2537 1341 2542 1340 2543 1340 2543 1340 2543 1340 2544 1340 2544 1340 M 1757 1341 1758 1341 1758 1342 1759 1342 1758 1342 1758 1342 1758 1342 1757 1342 1757 1342 1755 1342 1755 1342 1754 1342 1754 1342 1754 1341 1755 1341 1757 1341 1757 1341 M 2553 1342 2554 1342 2554 1342 2554 1342 2553 1342 2553 1342 2552 1342 2551 1342 2550 1342 2546 1343 2547 1342 2547 1342 2550 1342 2550 1342 2551 1342 2552 1341 2553 1342 M 2540 1343 2540 1343 2540 1343 2541 1343 2541 1343 2541 1343 2542 1343 2544 1343 2547 1344 2548 1344 2548 1344 2549 1345 2548 1345 2548 1345 2547 1345 2547 1345 2546 1344 2544 1344 2543 1344 2542 1343 2541 1343 2541 1343 2540 1343 2540 1343 2539 1343 2539 1343 2539 1343 2539 1343 2539 1343 2540 1343 2540 1343 2540 1343 M 2553 1343 2552 1343 2551 1344 2550 1344 2550 1344 2549 1344 2549 1344 2549 1344 2549 1344 2548 1344 2548 1344 2548 1344 2548 1344 2547 1344 2546 1343 2545 1343 2545 1343 2546 1343 2548 1343 2548 1343 2552 1343 2553 1343 2553 1343 2553 1343 2553 1343 M 1836 1347 1837 1347 1837 1348 1838 1348 1837 1348 1836 1348 1836 1348 1836 1348 1835 1348 1835 1348 1834 1348 1833 1348 1833 1348 1834 1348 1834 1348 1835 1348 1835 1347 1836 1347 1836 1347 1836 1347 M 2556 1349 2555 1349 2555 1349 2554 1349 2554 1349 2553 1349 2551 1349 2551 1349 2550 1350 2550 1350 2550 1350 2550 1349 2550 1349 2550 1349 2550 1349 2551 1349 2554 1349 2554 1349 2555 1349 2555 1349 2556 1349 2556 1349 2556 1349 M 2588 1358 2588 1358 2590 1359 2590 1359 2591 1360 2590 1360 2590 1360 2588 1360 2588 1360 2588 1361 2587 1361 2587 1361 2586 1360 2585 1360 2585 1360 2584 1361 2584 1361 2588 1362 2589 1363 2590 1363 2591 1363 2592 1363 2592 1363 2592 1363 2594 1363 2594 1363 2594 1363 2595 1362 2596 1362 2597 1362 2597 1362 2597 1362 2598 1362 2598 1362 2598 1362 2597 1364 2595 1365 2594 1366 2594 1366 2593 1366 2594 1365 2594 1365 2594 1365 2590 1364 2590 1364 2587 1364 2587 1364 2586 1364 2585 1364 2584 1364 2582 1365 2582 1365 2581 1365 2580 1365 2579 1365 2579 1365 2578 1365 2578 1365 2577 1365 2576 1365 2576 1365 2574 1365 2574 1365 2573 1365 2573 1364 2573 1363 2573 1363 2573 1363 2574 1362 2574 1362 2574 1361 2574 1361 2574 1360 2574 1360 2574 1359 2576 1359 2576 1359 2578 1359 2579 1359 2579 1359 2580 1359 2580 1359 2581 1359 2581 1360 2581 1360 2582 1360 2582 1360 2583 1360 2584 1360 2585 1359 2585 1359 2585 1359 2585 1359 2585 1359 2586 1358 2586 1358 2586 1358 2588 1358 2588 1358 2588 1358 M 2552 1364 2552 1364 2553 1364 2555 1364 2556 1364 2556 1365 2556 1365 2556 1365 2556 1365 2555 1365 2555 1365 2554 1365 2554 1365 2554 1366 2553 1366 2552 1366 2553 1366 2553 1366 2553 1366 2553 1366 2553 1366 2554 1366 2555 1366 2555 1366 2556 1366 2559 1366 2560 1367 2560 1367 2560 1367 2560 1367 2558 1368 2555 1369 2555 1369 2554 1369 2554 1369 2553 1369 2552 1369 2548 1369 2548 1369 2545 1368 2545 1367 2545 1367 2546 1367 2546 1367 2546 1367 2546 1367 2547 1366 2547 1366 2547 1366 2547 1366 2547 1365 2546 1365 2546 1365 2546 1365 2546 1365 2547 1364 2547 1364 2548 1364 2548 1364 2549 1364 2549 1364 2550 1364 2550 1364 2551 1364 2552 1364 2552 1364 M 2582 1369 2582 1370 2582 1370 2582 1370 2582 1370 2582 1370 2582 1371 2581 1371 2580 1371 2580 1371 2578 1369 2579 1369 2579 1369 2579 1369 2580 1369 2581 1369 2581 1369 2581 1369 2582 1369 2583 1369 2582 1369 M 2576 1371 2576 1371 2576 1371 2576 1372 2575 1372 2574 1372 2574 1372 2574 1372 2571 1372 2569 1372 2568 1371 2568 1371 2568 1371 2569 1371 2570 1370 2571 1370 2572 1370 2574 1370 2574 1370 2575 1370 2576 1370 2576 1371 2576 1371 2576 1371 M 1965 1371 1966 1371 1966 1371 1966 1371 1967 1371 1967 1371 1967 1371 1967 1372 1966 1372 1966 1372 1966 1372 1965 1372 1964 1372 1963 1372 1963 1372 1963 1371 1963 1371 1964 1371 1965 1371 1965 1371 M 1959 1372 1960 1372 1961 1372 1961 1372 1967 1372 1968 1372 1968 1372 1969 1372 1969 1372 1969 1372 1972 1372 1972 1372 1973 1373 1973 1373 1971 1373 1971 1373 1970 1373 1969 1373 1966 1373 1965 1373 1961 1373 1957 1373 1956 1373 1956 1373 1956 1373 1958 1372 1958 1372 1959 1372 1959 1372 M 2540 1373 2541 1374 2541 1374 2541 1374 2542 1374 2542 1374 2543 1374 2547 1374 2548 1375 2548 1375 2549 1375 2549 1375 2548 1375 2548 1376 2549 1376 2550 1377 2551 1377 2552 1377 2553 1377 2554 1377 2553 1378 2553 1378 2553 1378 2552 1378 2552 1378 2552 1378 2550 1378 2547 1378 2544 1379 2543 1379 2543 1379 2538 1379 2538 1379 2536 1379 2535 1379 2535 1379 2534 1379 2534 1379 2533 1378 2533 1378 2529 1378 2529 1378 2528 1378 2527 1378 2524 1377 2524 1377 2524 1377 2524 1376 2524 1376 2526 1375 2526 1375 2529 1374 2530 1374 2531 1374 2533 1374 2534 1373 2534 1373 2535 1373 2537 1373 2539 1373 2540 1373 2540 1373 M 1975 1384 1975 1384 1975 1384 1975 1384 1975 1383 1975 1383 1975 1383 1975 1383 1974 1383 1973 1383 1972 1383 1971 1384 1971 1384 1970 1383 1970 1383 1968 1383 1968 1382 1969 1382 1970 1382 1970 1382 1971 1382 1973 1382 1974 1382 1977 1382 1978 1382 1978 1383 1980 1383 1981 1383 1981 1383 1981 1383 1981 1383 1981 1384 1981 1384 1981 1384 1980 1384 1980 1384 1979 1383 1979 1383 1978 1383 1978 1383 1978 1383 1977 1384 1977 1384 1977 1384 1977 1384 1976 1384 1976 1384 1975 1384 M 1973 1386 1973 1385 1973 1385 1974 1385 1974 1385 1974 1385 1975 1385 1975 1386 1975 1386 1975 1386 1971 1387 1970 1387 1967 1387 1967 1387 1965 1386 1966 1386 1966 1386 1967 1386 1967 1386 1967 1386 1968 1386 1968 1386 1969 1386 1969 1386 1970 1386 1972 1386 1973 1386 M 1974 1388 1974 1388 1973 1388 1972 1388 1972 1387 1972 1387 1975 1386 1976 1386 1977 1386 1977 1386 1978 1387 1975 1388 1975 1388 1975 1388 1974 1388 M 1981 1387 1982 1388 1983 1388 1983 1388 1985 1388 1985 1388 1987 1389 1988 1389 1988 1389 1989 1389 1989 1390 1987 1390 1987 1390 1987 1390 1985 1390 1985 1390 1985 1390 1985 1390 1985 1390 1986 1389 1983 1389 1979 1388 1979 1388 1980 1387 1980 1387 1981 1387 M 1981 1389 1983 1389 1984 1389 1984 1390 1984 1390 1984 1390 1983 1390 1980 1389 1980 1389 1980 1389 1980 1389 1980 1389 1980 1389 1981 1389 M 2485 1390 2486 1390 2489 1390 2494 1391 2496 1391 2497 1391 2499 1392 2503 1392 2504 1393 2504 1393 2504 1393 2504 1393 2503 1393 2498 1393 2497 1393 2496 1393 2495 1393 2492 1392 2491 1392 2490 1392 2488 1392 2488 1392 2488 1392 2487 1392 2486 1392 2485 1392 2484 1392 2481 1392 2479 1391 2478 1391 2477 1391 2477 1391 2476 1391 2476 1391 2476 1392 2476 1392 2476 1392 2476 1392 2477 1392 2477 1391 2477 1391 2478 1392 2479 1392 2481 1392 2483 1392 2485 1392 2487 1392 2488 1392 2489 1393 2489 1393 2489 1393 2491 1393 2493 1393 2494 1393 2496 1393 2498 1394 2498 1394 2499 1394 2500 1394 2501 1393 2503 1394 2506 1394 2506 1394 2509 1394 2509 1394 2508 1395 2508 1395 2508 1395 2507 1395 2507 1395 2506 1395 2506 1395 2504 1395 2502 1395 2502 1395 2502 1395 2500 1395 2498 1395 2495 1396 2493 1396 2493 1396 2493 1396 2492 1396 2492 1396 2489 1396 2488 1396 2485 1396 2485 1396 2481 1396 2479 1395 2476 1395 2476 1395 2475 1395 2475 1395 2475 1395 2474 1395 2473 1395 2473 1395 2472 1395 2469 1395 2468 1395 2468 1395 2466 1394 2465 1394 2464 1394 2464 1393 2469 1392 2470 1392 2471 1391 2471 1391 2471 1391 2471 1391 2471 1391 2471 1391 2471 1390 2471 1390 2471 1390 2472 1390 2472 1390 2472 1390 2473 1390 2475 1390 2475 1390 2477 1390 2478 1390 2480 1390 2481 1390 2484 1390 2485 1390 M 1988 1391 1987 1391 1987 1391 1990 1390 1991 1390 1991 1390 1991 1390 1991 1390 1991 1391 1990 1391 1988 1391 1988 1391 1988 1391 M 1981 1390 1982 1390 1983 1390 1983 1391 1982 1392 1982 1392 1981 1392 1979 1392 1979 1392 1978 1392 1978 1392 1979 1391 1980 1390 1981 1390 1981 1390 1981 1390 M 1985 1391 1986 1391 1986 1391 1986 1391 1986 1392 1986 1392 1986 1392 1986 1392 1985 1392 1984 1392 1984 1392 1983 1391 1984 1391 1984 1391 1984 1391 1985 1391 M 1983 1393 1984 1393 1983 1393 1983 1393 1982 1393 1981 1394 1981 1394 1981 1395 1979 1395 1978 1395 1979 1395 1979 1395 1979 1395 1980 1395 1980 1394 1980 1394 1980 1394 1980 1394 1980 1393 1980 1393 1980 1393 1981 1393 1982 1392 1982 1392 1983 1392 1983 1393 M 2525 1402 2524 1402 2523 1402 2523 1401 2519 1401 2516 1401 2515 1401 2513 1401 2511 1400 2509 1399 2508 1399 2506 1399 2506 1399 2505 1399 2501 1399 2500 1399 2497 1398 2496 1398 2495 1398 2494 1398 2491 1398 2491 1398 2489 1398 2488 1398 2487 1398 2486 1398 2484 1398 2484 1398 2483 1398 2483 1398 2483 1398 2482 1397 2482 1397 2483 1397 2483 1397 2489 1397 2491 1396 2493 1396 2495 1396 2498 1396 2500 1396 2501 1396 2502 1396 2503 1396 2504 1395 2505 1396 2506 1396 2506 1396 2507 1396 2509 1396 2512 1396 2515 1396 2515 1396 2516 1396 2516 1397 2516 1397 2519 1397 2520 1397 2521 1397 2521 1398 2522 1398 2522 1398 2522 1398 2523 1398 2524 1398 2524 1398 2525 1398 2525 1398 2523 1399 2523 1399 2522 1399 2521 1399 2521 1399 2521 1400 2521 1400 2522 1400 2523 1400 2523 1400 2524 1400 2524 1400 2526 1401 2525 1402 2525 1402 M 1992 1398 1991 1398 1990 1397 1990 1397 1989 1397 1989 1397 1988 1397 1987 1397 1986 1397 1986 1396 1986 1396 1987 1396 1987 1396 1988 1396 1988 1396 1988 1396 1993 1396 1993 1397 1994 1397 1995 1397 1995 1397 1995 1397 1994 1398 1994 1398 1993 1398 1993 1398 1992 1398 M 2479 1398 2478 1399 2478 1399 2478 1400 2478 1400 2477 1400 2477 1400 2475 1400 2475 1400 2472 1399 2472 1399 2473 1398 2473 1398 2474 1398 2476 1398 2477 1398 2479 1398 2479 1398 2479 1398 M 1988 1398 1988 1398 1988 1398 1991 1399 1991 1399 1991 1399 1990 1399 1990 1399 1989 1399 1988 1399 1988 1399 1988 1399 1987 1399 1987 1398 1987 1398 1988 1398 M 2519 1411 2518 1411 2518 1411 2516 1410 2515 1410 2515 1410 2512 1410 2508 1409 2508 1408 2507 1408 2507 1408 2506 1408 2505 1407 2503 1407 2499 1406 2494 1405 2492 1405 2492 1405 2491 1404 2490 1404 2489 1404 2489 1404 2486 1403 2486 1403 2484 1399 2485 1399 2487 1399 2487 1399 2489 1399 2492 1399 2492 1399 2492 1399 2493 1399 2495 1399 2497 1399 2498 1399 2499 1399 2499 1399 2502 1399 2505 1399 2506 1399 2506 1400 2507 1400 2507 1400 2507 1401 2508 1401 2509 1401 2510 1401 2512 1402 2512 1402 2513 1402 2514 1403 2514 1403 2516 1403 2519 1403 2521 1404 2524 1405 2524 1405 2525 1405 2525 1406 2524 1406 2524 1406 2523 1406 2523 1406 2522 1406 2520 1406 2519 1405 2519 1406 2518 1406 2515 1405 2514 1405 2514 1405 2513 1405 2512 1405 2511 1406 2512 1406 2513 1407 2515 1407 2516 1407 2521 1408 2522 1410 2521 1410 2521 1410 2519 1411 2519 1411 M 1993 1399 1994 1399 1994 1399 1996 1399 1997 1399 1997 1399 1997 1400 1995 1401 1994 1401 1994 1401 1993 1401 1993 1401 1993 1401 1992 1401 1992 1402 1991 1403 1989 1403 1988 1404 1988 1404 1988 1404 1987 1403 1987 1403 1988 1403 1988 1403 1988 1403 1989 1403 1989 1403 1987 1402 1986 1403 1986 1403 1985 1403 1985 1403 1985 1403 1983 1403 1983 1403 1983 1402 1984 1402 1985 1402 1986 1402 1986 1402 1987 1401 1987 1401 1987 1401 1987 1401 1987 1400 1987 1400 1990 1400 1993 1399 1993 1399 M 1986 1400 1985 1401 1985 1401 1984 1402 1984 1402 1983 1401 1982 1402 1981 1402 1980 1402 1980 1402 1978 1402 1978 1402 1977 1401 1977 1401 1978 1401 1978 1401 1979 1401 1979 1401 1981 1401 1982 1400 1984 1400 1986 1400 1986 1400 1986 1400 M 1997 1400 1999 1400 1999 1400 1999 1401 2000 1401 2000 1401 2000 1401 1999 1401 1999 1401 1996 1401 1996 1401 1996 1401 1997 1400 1997 1400 1997 1400 M 1997 1402 1997 1402 1997 1402 1996 1403 1996 1403 1995 1403 1995 1403 1994 1403 1992 1403 1993 1402 1993 1402 1995 1402 1995 1401 1996 1401 1997 1402 M 1996 1403 1996 1404 1995 1404 1994 1404 1993 1404 1991 1404 1991 1404 1990 1404 1991 1404 1993 1403 1993 1403 1994 1403 1995 1403 1996 1403 1996 1403 M 1996 1406 1996 1407 1996 1408 1995 1408 1993 1408 1993 1409 1993 1409 1993 1409 1993 1409 1992 1409 1992 1410 1991 1410 1991 1410 1989 1410 1988 1410 1986 1410 1986 1410 1986 1409 1986 1409 1986 1409 1988 1408 1990 1408 1992 1407 1994 1407 1995 1406 1995 1406 1996 1406 1996 1406 1996 1406 M 1988 1414 1989 1414 1990 1414 1990 1414 1990 1414 1989 1415 1988 1415 1988 1415 1988 1415 1988 1415 1987 1415 1986 1415 1986 1415 1985 1415 1985 1415 1984 1415 1984 1414 1984 1414 1985 1414 1986 1414 1987 1414 1988 1414 1988 1414 M 2025 1420 2025 1420 2022 1420 2022 1420 2021 1419 2021 1419 2021 1418 2022 1418 2022 1418 2023 1418 2024 1418 2024 1418 2026 1418 2030 1418 2031 1418 2031 1418 2032 1418 2032 1418 2032 1418 2031 1419 2030 1419 2029 1419 2027 1420 2027 1420 2026 1420 2026 1420 2025 1420 M 2026 1423 2026 1423 2026 1423 2027 1423 2028 1422 2029 1422 2030 1422 2030 1422 2033 1423 2034 1423 2034 1423 2035 1423 2036 1423 2037 1423 2038 1423 2038 1423 2038 1423 2039 1424 2039 1424 2039 1424 2039 1424 2038 1424 2038 1424 2037 1424 2037 1424 2035 1425 2035 1425 2035 1425 2034 1425 2034 1425 2034 1426 2029 1426 2029 1426 2027 1425 2027 1425 2027 1425 2026 1424 2026 1423 2026 1423 2026 1423 M 2019 1424 2020 1424 2020 1424 2020 1425 2021 1425 2021 1425 2021 1425 2022 1426 2022 1426 2022 1426 2022 1426 2022 1427 2022 1427 2022 1427 2021 1428 2021 1428 2020 1428 2020 1428 2020 1428 2018 1428 2018 1428 2018 1428 2017 1428 2015 1427 2014 1427 2013 1427 2013 1427 2013 1426 2013 1426 2013 1426 2015 1425 2018 1424 2018 1423 2019 1423 2019 1423 2019 1424 2019 1424 M 2468 1427 2469 1427 2470 1428 2471 1428 2470 1428 2470 1428 2469 1428 2469 1428 2467 1427 2467 1427 2466 1427 2467 1427 2468 1427 2468 1427 M 2458 1436 2458 1436 2458 1436 2458 1436 2457 1437 2457 1437 2456 1437 2456 1437 2456 1437 2455 1437 2454 1437 2454 1436 2455 1436 2456 1436 2456 1436 2456 1435 2457 1435 2458 1436 2457 1436 2457 1435 2457 1435 2457 1435 2457 1435 2457 1435 2456 1435 2456 1435 2456 1435 2452 1436 2452 1436 2451 1436 2448 1436 2447 1436 2445 1436 2444 1436 2444 1436 2444 1436 2443 1436 2440 1437 2434 1437 2431 1438 2430 1438 2427 1438 2427 1438 2426 1438 2426 1437 2426 1437 2426 1437 2427 1435 2427 1435 2427 1435 2429 1434 2429 1434 2430 1434 2431 1434 2432 1434 2432 1434 2433 1434 2433 1434 2433 1434 2434 1434 2434 1434 2434 1433 2435 1433 2435 1433 2437 1432 2438 1432 2438 1432 2438 1432 2439 1432 2439 1432 2440 1432 2440 1431 2440 1431 2440 1431 2441 1431 2441 1430 2443 1430 2443 1430 2444 1430 2446 1430 2446 1430 2449 1430 2450 1430 2453 1430 2454 1430 2455 1430 2455 1429 2457 1429 2459 1428 2461 1428 2461 1428 2463 1428 2464 1427 2464 1427 2464 1427 2465 1427 2465 1427 2465 1428 2466 1429 2467 1429 2468 1429 2468 1429 2469 1430 2470 1431 2471 1433 2471 1434 2471 1434 2471 1434 2471 1434 2468 1434 2465 1435 2463 1435 2459 1436 2459 1436 2459 1436 2459 1436 2459 1436 2458 1436 M 2045 1429 2046 1429 2047 1429 2049 1430 2051 1430 2051 1430 2051 1430 2051 1431 2051 1431 2051 1431 2050 1431 2050 1431 2047 1431 2045 1431 2045 1431 2043 1431 2043 1431 2043 1431 2042 1431 2042 1431 2042 1430 2042 1430 2042 1430 2042 1430 2042 1429 2042 1429 2043 1429 2043 1429 2043 1429 2044 1429 2044 1429 2044 1429 2045 1429 M 2439 1430 2439 1430 2439 1431 2439 1431 2437 1432 2435 1432 2433 1433 2433 1433 2432 1433 2432 1433 2432 1433 2432 1432 2432 1431 2432 1431 2432 1430 2432 1430 2432 1430 2434 1430 2434 1430 2439 1430 2439 1430 M 2052 1434 2052 1434 2049 1434 2047 1433 2047 1433 2047 1433 2047 1433 2048 1433 2049 1433 2050 1433 2050 1433 2051 1433 2052 1433 2052 1434 2052 1434 2052 1434 2052 1434 M 2056 1437 2056 1437 2055 1436 2054 1436 2051 1436 2050 1436 2050 1435 2050 1435 2050 1435 2050 1435 2051 1435 2051 1435 2051 1435 2052 1435 2053 1435 2055 1436 2056 1437 M 1997 1437 1998 1437 1998 1437 1999 1437 1999 1437 2001 1438 2002 1438 2002 1438 2002 1438 2002 1438 2002 1438 1999 1439 1998 1439 1998 1438 1998 1438 1997 1438 1997 1438 1997 1438 1996 1438 1996 1437 1996 1437 1996 1437 1997 1437 M 2036 1454 2035 1454 2034 1454 2032 1455 2032 1455 2030 1455 2030 1455 2029 1455 2026 1455 2022 1456 2020 1457 2019 1457 2015 1456 2015 1456 2014 1455 2014 1455 2013 1455 2011 1455 2010 1455 2010 1455 2009 1455 2008 1454 2008 1454 2008 1454 2009 1453 2014 1453 2015 1454 2015 1454 2016 1454 2016 1454 2018 1453 2019 1453 2021 1453 2021 1453 2021 1453 2022 1453 2022 1453 2022 1453 2021 1453 2021 1453 2020 1453 2019 1453 2019 1452 2020 1452 2020 1452 2021 1451 2021 1451 2022 1451 2023 1451 2021 1451 2020 1451 2020 1451 2019 1452 2019 1452 2019 1453 2018 1453 2017 1453 2016 1453 2015 1453 2016 1453 2017 1452 2016 1452 2015 1452 2015 1452 2013 1453 2013 1452 2013 1452 2014 1452 2014 1452 2015 1451 2013 1451 2013 1451 2013 1451 2012 1452 2011 1452 2011 1452 2005 1452 2005 1451 2002 1451 2001 1451 2001 1451 1999 1451 1997 1449 1997 1449 1998 1449 1998 1448 1999 1448 2002 1448 2002 1449 2003 1449 2003 1449 2006 1450 2006 1450 2005 1449 2002 1448 2002 1448 2001 1448 2000 1448 1999 1448 1999 1448 1998 1448 1998 1447 1998 1447 1998 1447 1999 1445 1999 1445 2000 1445 2000 1445 2001 1445 2002 1445 2003 1445 2003 1445 2004 1445 2006 1446 2006 1446 2007 1446 2009 1446 2008 1446 2008 1445 2006 1445 2005 1445 2003 1445 2001 1444 2000 1444 1999 1443 1999 1443 1999 1442 1999 1441 2000 1441 2000 1441 2002 1440 2004 1440 2006 1439 2008 1439 2013 1440 2015 1440 2016 1440 2018 1440 2018 1441 2019 1441 2020 1441 2021 1441 2024 1441 2025 1441 2027 1442 2028 1443 2029 1443 2029 1443 2029 1444 2030 1444 2030 1444 2032 1445 2033 1446 2033 1446 2034 1446 2036 1446 2037 1447 2039 1447 2040 1447 2041 1447 2043 1447 2044 1447 2044 1448 2045 1448 2046 1448 2046 1449 2045 1449 2045 1450 2044 1450 2045 1450 2046 1450 2047 1450 2046 1450 2046 1450 2047 1450 2047 1450 2045 1452 2045 1452 2044 1452 2043 1452 2042 1453 2040 1453 2040 1453 2036 1454 2036 1454 M 2060 1446 2060 1446 2061 1446 2061 1446 2062 1446 2062 1446 2062 1446 2064 1446 2066 1447 2066 1447 2066 1447 2065 1448 2065 1448 2064 1448 2063 1448 2063 1448 2063 1448 2062 1448 2062 1448 2061 1449 2061 1449 2061 1449 2061 1450 2061 1451 2061 1451 2061 1451 2061 1451 2061 1452 2061 1452 2059 1452 2058 1452 2058 1452 2058 1452 2057 1452 2056 1452 2056 1452 2055 1449 2055 1449 2055 1449 2054 1449 2054 1449 2054 1449 2055 1449 2056 1448 2057 1448 2058 1447 2058 1447 2058 1447 2059 1447 2060 1447 2060 1446 2060 1446 2060 1446 2059 1446 2059 1447 2058 1447 2058 1447 2058 1447 2058 1447 2057 1447 2057 1447 2057 1447 2055 1447 2055 1447 2057 1446 2057 1446 2057 1446 2058 1446 2059 1446 2060 1446 2060 1446 2060 1446 M 2504 1449 2504 1449 2504 1450 2504 1450 2504 1450 2503 1450 2503 1450 2502 1450 2501 1450 2500 1450 2500 1450 2499 1450 2499 1450 2499 1450 2498 1449 2499 1449 2500 1449 2500 1449 2501 1449 2503 1449 2503 1449 2503 1449 2504 1449 M 2042 1465 2040 1466 2040 1466 2040 1466 2039 1466 2039 1466 2039 1466 2033 1466 2030 1467 2029 1467 2028 1467 2027 1467 2027 1467 2027 1467 2027 1467 2027 1466 2028 1466 2028 1466 2028 1466 2029 1466 2029 1466 2030 1466 2031 1466 2032 1466 2032 1466 2032 1466 2031 1466 2031 1466 2031 1466 2034 1465 2034 1465 2035 1465 2036 1465 2037 1465 2037 1465 2037 1465 2037 1465 2036 1465 2036 1465 2036 1465 2036 1465 2036 1465 2039 1465 2041 1465 2041 1465 2042 1465 2042 1465 2042 1465 M 2047 1466 2047 1466 2048 1466 2045 1467 2044 1467 2042 1467 2042 1467 2042 1467 2041 1467 2040 1467 2038 1467 2038 1467 2038 1467 2038 1467 2038 1467 2038 1467 2041 1466 2041 1466 2042 1466 2044 1466 2044 1466 2044 1467 2043 1467 2043 1467 2043 1467 2043 1467 2043 1467 2045 1466 2045 1466 2046 1466 2046 1466 2047 1466 2047 1466 M 2029 1469 2029 1469 2030 1469 2031 1469 2031 1470 2031 1470 2030 1470 2029 1470 2029 1471 2029 1471 2027 1471 2025 1470 2025 1470 2025 1470 2025 1470 2028 1469 2028 1469 2028 1468 2028 1468 2029 1469 2029 1469 2029 1469 M 2040 1474 2042 1473 2042 1473 2043 1473 2043 1473 2047 1473 2051 1472 2051 1472 2053 1472 2053 1472 2053 1473 2053 1473 2052 1473 2052 1473 2051 1473 2049 1473 2048 1473 2048 1474 2048 1474 2048 1474 2047 1474 2047 1474 2046 1474 2044 1474 2043 1475 2043 1475 2042 1475 2042 1474 2039 1474 2040 1474 2040 1474 M 2400 1473 2401 1473 2401 1473 2401 1473 2400 1474 2400 1474 2398 1474 2398 1474 2397 1474 2397 1474 2396 1474 2396 1474 2396 1473 2396 1473 2396 1473 2396 1473 2397 1473 2397 1473 2398 1473 2398 1473 2399 1473 2400 1473 M 2368 1473 2368 1473 2368 1473 2369 1474 2368 1474 2368 1474 2367 1474 2367 1474 2365 1474 2365 1473 2365 1473 2365 1473 2365 1473 2365 1473 2367 1473 2367 1473 2368 1473 2368 1473 2368 1473 M 2045 1475 2046 1475 2047 1475 2047 1475 2047 1475 2048 1475 2053 1474 2054 1474 2054 1474 2055 1474 2057 1474 2057 1474 2056 1475 2055 1475 2054 1475 2053 1475 2053 1475 2053 1475 2052 1475 2052 1475 2051 1475 2049 1475 2047 1475 2046 1475 2046 1475 2045 1475 2045 1475 2044 1475 2045 1475 2045 1475 2045 1475 M 2021 1475 2021 1475 2022 1475 2022 1475 2022 1475 2023 1475 2023 1475 2024 1475 2024 1475 2025 1475 2024 1476 2023 1476 2023 1476 2022 1476 2021 1476 2021 1475 M 2018 1482 2018 1481 2017 1481 2017 1481 2017 1481 2016 1481 2016 1480 2016 1480 2017 1480 2017 1480 2017 1480 2018 1480 2018 1480 2018 1480 2019 1481 2019 1481 2019 1481 2019 1481 2018 1481 2018 1482 2018 1482 M 2031 1494 2029 1494 2029 1494 2028 1494 2028 1494 2027 1494 2025 1495 2024 1495 2021 1496 2021 1495 2022 1495 2022 1495 2023 1494 2023 1494 2024 1494 2025 1494 2025 1494 2029 1494 2030 1494 2031 1494 M 2018 1508 2018 1507 2018 1507 2018 1507 2019 1507 2021 1507 2022 1507 2020 1508 2019 1508 2019 1508 2018 1508 2018 1508 M 2289 1512 2289 1512 2288 1511 2288 1510 2288 1510 2289 1509 2290 1509 2290 1509 2291 1509 2291 1509 2292 1509 2292 1509 2292 1509 2292 1510 2291 1511 2290 1512 2289 1512 M 2294 1511 2294 1511 2294 1511 2294 1510 2294 1510 2294 1510 2295 1510 2296 1510 2296 1510 2296 1510 2296 1510 2297 1510 2297 1511 2297 1511 2295 1511 2294 1511 M 2272 1515 2272 1515 2270 1515 2270 1515 2269 1515 2269 1515 2269 1515 2268 1513 2269 1512 2271 1510 2271 1510 2271 1510 2273 1510 2273 1510 2274 1510 2274 1510 2275 1510 2275 1510 2275 1510 2276 1511 2276 1511 2276 1511 2278 1511 2280 1512 2280 1512 2278 1512 2278 1512 2277 1512 2277 1512 2276 1512 2276 1511 2276 1512 2277 1513 2278 1513 2278 1513 2278 1513 2278 1513 2279 1513 2279 1514 2278 1514 2278 1514 2276 1515 2275 1515 2275 1515 2274 1514 2274 1514 2273 1514 2273 1514 2273 1514 2273 1514 2273 1514 2273 1514 2274 1514 2274 1515 2273 1515 2273 1515 2272 1515 2272 1515 M 2287 1513 2285 1512 2285 1511 2287 1510 2287 1510 2287 1510 2287 1510 2288 1511 2288 1511 2288 1511 2287 1512 2287 1512 2287 1513 M 2284 1515 2283 1515 2282 1515 2282 1515 2281 1514 2281 1513 2281 1513 2283 1513 2283 1513 2283 1513 2284 1513 2285 1514 2285 1514 2284 1515 2284 1515 2284 1515 M 2025 1515 2025 1515 2025 1515 2025 1515 2025 1514 2026 1514 2028 1514 2029 1514 2029 1514 2030 1514 2031 1514 2031 1514 2031 1514 2031 1515 2030 1515 2029 1516 2028 1516 2026 1515 2025 1515 M 2030 1518 2029 1518 2029 1517 2028 1517 2028 1517 2028 1517 2027 1517 2027 1516 2027 1516 2029 1516 2029 1516 2029 1516 2031 1516 2030 1517 2030 1517 2030 1518 M 2242 1520 2241 1519 2241 1519 2240 1519 2240 1519 2240 1519 2239 1519 2239 1519 2240 1519 2240 1518 2240 1518 2240 1518 2244 1519 2244 1519 2244 1519 2244 1520 2244 1520 2244 1520 2243 1520 2243 1520 2243 1520 2242 1520 M 2233 1533 2233 1533 2233 1533 2232 1533 2232 1533 2230 1533 2229 1533 2229 1533 2228 1532 2228 1532 2228 1531 2227 1531 2227 1530 2227 1529 2227 1529 2225 1528 2224 1528 2224 1527 2223 1527 2223 1527 2222 1526 2222 1526 2223 1526 2223 1525 2224 1525 2224 1525 2224 1525 2225 1526 2227 1526 2227 1527 2229 1528 2228 1529 2230 1531 2231 1531 2231 1532 2232 1532 2232 1532 2232 1532 2234 1532 2234 1533 2233 1533 2233 1533 M 2059 1531 2058 1532 2058 1532 2058 1532 2058 1532 2058 1533 2057 1533 2057 1533 2057 1534 2056 1534 2056 1534 2056 1534 2055 1534 2055 1534 2055 1534 2055 1534 2054 1534 2054 1534 2054 1534 2054 1534 2055 1532 2055 1532 2056 1532 2057 1531 2058 1531 2058 1531 2059 1531 2059 1531 M 2063 1532 2063 1532 2063 1532 2063 1533 2063 1533 2063 1533 2063 1533 2062 1533 2062 1533 2061 1533 2061 1534 2060 1534 2058 1535 2058 1536 2058 1536 2058 1536 2058 1536 2057 1537 2056 1537 2056 1537 2056 1537 2055 1536 2055 1536 2055 1536 2056 1536 2057 1535 2058 1534 2059 1533 2060 1532 2060 1532 2060 1532 2060 1531 2060 1531 2061 1531 2061 1531 2063 1531 2063 1532 2063 1532 M 2055 1535 2054 1536 2051 1536 2051 1536 2051 1536 2051 1536 2051 1536 2053 1535 2054 1534 2054 1534 2054 1535 2055 1535 2055 1535 M 2217 1536 2216 1536 2216 1536 2215 1536 2215 1536 2214 1536 2214 1536 2214 1536 2215 1535 2215 1535 2215 1535 2215 1535 2216 1535 2218 1536 2218 1536 2218 1536 2217 1536 2217 1536 M 2220 1537 2220 1537 2219 1537 2219 1537 2219 1536 2221 1536 2221 1536 2222 1535 2222 1535 2223 1535 2224 1535 2224 1535 2224 1535 2225 1535 2225 1536 2225 1536 2225 1537 2224 1537 2222 1537 2221 1537 2221 1537 2220 1537 2220 1537 M 2218 1553 2218 1553 2217 1553 2216 1553 2216 1553 2213 1553 2213 1552 2212 1552 2212 1552 2212 1552 2212 1551 2210 1551 2209 1550 2209 1550 2208 1550 2208 1550 2207 1550 2207 1550 2207 1549 2206 1549 2206 1549 2206 1549 2206 1549 2206 1549 2207 1549 2207 1548 2208 1548 2208 1548 2209 1548 2209 1548 2209 1548 2210 1548 2210 1549 2211 1550 2213 1550 2216 1551 2216 1551 2216 1551 2217 1551 2217 1551 2218 1552 2218 1552 2218 1552 2219 1553 2218 1553 M 2217 1554 2216 1554 2215 1554 2215 1554 2215 1554 2214 1554 2214 1554 2213 1554 2213 1554 2213 1553 2213 1553 2213 1553 2214 1553 2215 1553 2216 1553 2216 1553 2216 1554 2217 1554 2217 1554 2217 1554 2217 1554 M 2068 1553 2069 1554 2069 1554 2069 1554 2068 1554 2066 1554 2066 1554 2066 1554 2066 1554 2066 1554 2066 1554 2067 1553 2067 1553 2068 1553 2068 1553 M 2064 1553 2065 1554 2065 1554 2065 1555 2064 1555 2064 1555 2064 1555 2063 1555 2063 1555 2063 1555 2062 1555 2062 1554 2062 1554 2064 1553 2064 1553 2064 1553 2064 1553 M 2212 1555 2212 1555 2212 1555 2212 1555 2212 1555 2213 1555 2213 1555 2213 1555 2214 1554 2214 1555 2215 1555 2215 1555 2215 1555 2215 1555 2215 1555 2214 1556 2214 1556 2213 1555 2212 1555 M 2211 1558 2211 1558 2210 1558 2211 1556 2211 1556 2212 1556 2212 1556 2212 1556 2213 1556 2213 1557 2212 1557 2211 1558 2211 1558 M 2198 1561 2198 1561 2197 1561 2197 1560 2197 1560 2198 1560 2199 1559 2200 1559 2202 1559 2204 1560 2204 1560 2205 1560 2205 1560 2206 1560 2206 1560 2206 1561 2206 1561 2205 1561 2205 1561 2205 1561 2205 1561 2204 1560 2204 1560 2204 1560 2203 1560 2201 1561 2201 1561 2201 1561 2201 1561 2202 1561 2202 1561 2203 1561 2203 1561 2203 1561 2203 1561 2204 1561 2204 1561 2203 1561 2203 1561 2202 1561 2202 1561 2202 1561 2202 1561 2202 1561 2201 1561 2201 1561 2201 1561 2199 1561 2199 1561 2198 1561 2198 1561 2198 1561 M 2201 1565 2201 1564 2201 1564 2200 1564 2200 1564 2199 1563 2200 1563 2200 1563 2201 1563 2202 1563 2202 1563 2202 1563 2202 1563 2202 1564 2202 1564 2201 1565 2201 1565 M 2086 1574 2086 1574 2085 1574 2085 1574 2084 1574 2084 1574 2083 1574 2082 1573 2082 1573 2083 1573 2084 1573 2086 1573 2086 1574 M 2200 1576 2200 1576 2201 1576 2201 1575 2201 1575 2201 1575 2202 1575 2202 1574 2202 1574 2203 1574 2203 1574 2203 1575 2202 1576 2202 1576 2202 1576 2200 1576 2200 1576 2200 1576 M 2100 1583 2100 1583 2100 1583 2100 1583 2099 1583 2098 1583 2095 1583 2095 1583 2096 1583 2096 1582 2096 1582 2097 1582 2097 1582 2098 1582 2100 1582 2100 1582 2100 1583 M 2105 1587 2107 1587 2107 1587 2108 1587 2107 1587 2107 1587 2106 1587 2103 1587 2103 1587 2103 1587 2102 1587 2103 1587 2104 1587 2104 1587 2105 1587 M 2137 1590 2137 1590 2136 1590 2135 1591 2132 1591 2131 1592 2128 1592 2128 1592 2127 1592 2127 1592 2127 1592 2127 1592 2128 1591 2129 1591 2133 1590 2133 1590 2135 1589 2136 1589 2137 1589 2137 1589 2137 1589 2138 1589 2138 1590 2137 1590 2137 1590 M 2189 1590 2190 1590 2191 1590 2192 1590 2192 1590 2193 1590 2194 1590 2194 1590 2192 1591 2192 1591 2191 1590 2190 1590 2190 1590 2189 1590 2189 1590 M 2112 1591 2111 1592 2111 1592 2111 1592 2112 1592 2112 1592 2113 1592 2114 1592 2113 1592 2113 1593 2110 1593 2108 1593 2107 1593 2107 1593 2106 1592 2105 1591 2105 1591 2105 1591 2105 1591 2106 1591 2106 1591 2106 1591 2108 1591 2109 1591 2109 1591 2109 1591 2112 1591 2112 1591 M 2136 1592 2136 1592 2135 1594 2133 1593 2132 1593 2132 1593 2133 1592 2134 1592 2135 1592 2136 1592 M 2141 1593 2142 1593 2141 1593 2141 1593 2140 1593 2139 1594 2139 1594 2138 1594 2137 1593 2137 1593 2140 1593 2141 1593 2141 1593 M 2144 1594 2144 1594 2144 1594 2143 1594 2141 1594 2141 1594 2140 1594 2140 1594 2141 1593 2141 1593 2143 1593 2144 1594 2144 1594 M 2154 1598 2154 1598 2154 1599 2154 1599 2153 1600 2153 1600 2151 1601 2150 1601 2150 1601 2151 1598 2151 1598 2153 1598 2153 1598 2154 1598 M 2179 1606 2179 1605 2177 1605 2176 1605 2175 1605 2175 1605 2174 1604 2174 1604 2173 1603 2173 1603 2170 1603 2170 1602 2170 1602 2171 1601 2172 1601 2176 1602 2176 1602 2177 1602 2178 1602 2183 1603 2184 1603 2186 1603 2186 1603 2186 1604 2186 1604 2185 1604 2185 1604 2184 1604 2183 1604 2181 1603 2181 1603 2180 1603 2179 1603 2179 1603 2179 1603 2180 1603 2181 1603 2180 1604 2180 1604 2180 1605 2179 1605 2179 1606 M 2169 1602 2170 1602 2170 1603 2170 1603 2171 1603 2171 1603 2171 1603 2172 1603 2172 1604 2171 1604 2171 1604 2171 1604 2170 1604 2170 1604 2170 1603 2168 1602 2168 1602 2168 1602 2169 1602 2169 1601 2169 1601 2169 1601 2169 1602 M 2168 1602 2169 1603 2169 1604 2167 1605 2166 1605 2165 1605 2164 1604 2164 1604 2165 1603 2165 1602 2165 1602 2166 1602 2166 1602 2168 1602 2168 1602 2168 1602 M 2180 1606 2180 1606 2180 1604 2181 1604 2181 1604 2181 1604 2183 1604 2182 1605 2182 1605 2180 1606 M 2170 1606 2169 1606 2167 1606 2167 1606 2166 1606 2166 1606 2168 1604 2168 1604 2169 1604 2169 1604 2171 1604 2172 1604 2172 1604 2172 1604 2171 1605 2171 1605 2170 1606 2170 1606 M 2174 1608 2173 1607 2172 1607 2171 1607 2171 1607 2171 1607 2170 1607 2170 1607 2170 1606 2171 1606 2173 1605 2173 1604 2173 1605 2174 1605 2176 1605 2177 1606 2178 1606 2178 1606 2178 1606 2178 1607 2175 1607 2174 1608" />
+<path id="de" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2993 1777 2993 1777 2991 1778 2989 1778 2988 1778 2987 1777 2986 1776 2984 1776 2985 1777 2984 1777 2982 1777 2982 1777 2982 1776 2980 1774 2979 1773 2979 1773 2978 1772 2977 1772 2977 1773 2977 1772 2977 1771 2978 1769 2978 1769 2979 1769 2979 1767 2979 1767 2978 1767 2977 1767 2976 1766 2976 1766 2975 1766 2975 1766 2974 1765 2973 1764 2973 1764 2973 1763 2973 1762 2973 1762 2973 1762 2973 1761 2973 1760 2975 1759 2976 1759 2977 1759 2977 1757 2976 1756 2976 1756 2975 1756 2975 1754 2975 1754 2974 1753 2972 1752 2971 1752 2971 1751 2971 1750 2972 1750 2972 1750 2972 1749 2971 1748 2970 1748 2969 1748 2969 1748 2969 1747 2969 1747 2971 1747 2972 1746 2972 1745 2972 1744 2972 1744 2973 1743 2974 1742 2974 1740 2974 1740 2973 1739 2973 1739 2972 1738 2971 1737 2970 1736 2971 1736 2970 1735 2971 1735 2973 1734 2974 1734 2976 1734 2978 1734 2979 1734 2980 1734 2982 1733 2982 1734 2983 1733 2983 1733 2984 1732 2984 1732 2982 1731 2983 1731 2983 1730 2985 1730 2985 1730 2985 1729 2986 1729 2987 1728 2988 1728 2987 1728 2987 1727 2988 1727 2988 1726 2988 1726 2987 1725 2986 1725 2983 1725 2982 1724 2982 1723 2982 1723 2983 1723 2982 1722 2982 1722 2982 1722 2983 1722 2985 1722 2987 1722 2988 1722 2988 1720 2988 1720 2988 1719 2988 1719 2988 1719 2989 1718 2990 1717 2990 1717 2990 1716 2990 1713 2990 1712 2991 1711 2992 1711 2992 1711 2992 1711 2990 1711 2990 1711 2989 1711 2988 1711 2988 1711 2987 1710 2987 1709 2987 1709 2987 1708 2988 1707 2990 1706 2991 1705 2992 1705 2992 1705 2994 1705 2995 1705 2996 1705 2998 1705 3000 1705 3001 1705 3001 1704 3002 1705 3002 1705 3003 1705 3003 1705 3004 1706 3005 1707 3005 1707 3005 1708 3005 1708 3004 1708 3004 1708 3004 1708 3004 1709 3006 1710 3007 1710 3007 1710 3007 1709 3008 1709 3008 1708 3008 1708 3007 1708 3007 1708 3007 1707 3007 1707 3007 1706 3008 1706 3008 1706 3011 1707 3011 1708 3011 1708 3011 1709 3011 1709 3011 1710 3011 1710 3011 1709 3011 1709 3011 1708 3012 1708 3012 1708 3011 1706 3011 1706 3011 1705 3012 1703 3012 1702 3012 1702 3013 1702 3014 1702 3014 1702 3015 1702 3015 1703 3016 1703 3016 1703 3017 1703 3019 1702 3020 1702 3021 1702 3022 1702 3023 1702 3024 1703 3024 1703 3025 1704 3025 1704 3028 1706 3028 1707 3029 1707 3030 1707 3031 1707 3032 1707 3032 1707 3031 1707 3031 1707 3030 1707 3030 1707 3029 1707 3028 1706 3028 1706 3026 1704 3025 1704 3025 1703 3025 1703 3024 1702 3023 1702 3022 1702 3022 1702 3020 1702 3018 1702 3018 1701 3018 1701 3017 1701 3017 1701 3016 1700 3016 1699 3017 1699 3018 1699 3018 1700 3018 1700 3019 1700 3019 1699 3019 1699 3018 1698 3016 1698 3016 1698 3016 1697 3016 1697 3016 1696 3017 1695 3016 1695 3014 1696 3013 1696 3013 1696 3013 1695 3012 1695 3013 1694 3013 1694 3015 1693 3016 1693 3016 1694 3017 1693 3019 1693 3019 1692 3019 1692 3018 1691 3018 1691 3017 1691 3016 1690 3016 1689 3015 1689 3015 1688 3014 1688 3013 1687 3013 1687 3012 1686 3011 1686 3009 1686 3008 1686 3007 1687 3008 1688 3007 1688 3007 1688 3007 1687 3007 1686 3008 1685 3009 1683 3009 1683 3009 1683 3010 1683 3010 1684 3009 1684 3009 1684 3008 1685 3009 1685 3010 1686 3011 1686 3012 1685 3013 1685 3014 1686 3014 1686 3015 1686 3015 1686 3016 1685 3017 1685 3018 1686 3021 1686 3022 1686 3022 1687 3023 1687 3024 1687 3025 1687 3025 1687 3026 1687 3026 1687 3028 1687 3029 1687 3031 1687 3033 1687 3034 1688 3034 1688 3035 1689 3035 1690 3035 1691 3035 1692 3034 1692 3033 1692 3033 1692 3032 1692 3033 1693 3033 1693 3035 1692 3036 1692 3037 1692 3041 1693 3044 1694 3045 1695 3046 1695 3047 1695 3047 1695 3048 1695 3049 1694 3050 1694 3050 1694 3050 1694 3050 1694 3051 1694 3051 1694 3052 1694 3052 1697 3052 1697 3049 1699 3048 1699 3048 1699 3047 1699 3047 1699 3047 1700 3047 1700 3048 1700 3048 1700 3049 1700 3049 1701 3049 1701 3048 1702 3049 1701 3049 1701 3050 1700 3051 1700 3052 1700 3052 1700 3054 1700 3055 1701 3057 1701 3058 1701 3059 1700 3059 1699 3059 1700 3060 1700 3060 1699 3061 1699 3061 1698 3062 1698 3063 1698 3066 1697 3069 1697 3072 1695 3072 1695 3074 1694 3074 1693 3075 1692 3075 1693 3077 1693 3077 1693 3078 1693 3079 1693 3081 1693 3081 1693 3081 1693 3079 1693 3078 1693 3078 1693 3077 1693 3077 1693 3074 1694 3073 1694 3073 1695 3073 1696 3073 1696 3074 1696 3073 1696 3073 1696 3074 1695 3075 1694 3076 1694 3077 1694 3078 1694 3079 1694 3083 1694 3085 1696 3086 1696 3087 1696 3089 1697 3090 1698 3090 1699 3091 1699 3090 1698 3094 1697 3095 1698 3095 1699 3095 1699 3096 1700 3096 1702 3096 1702 3096 1702 3098 1704 3102 1705 3103 1705 3103 1705 3104 1707 3105 1711 3105 1711 3105 1714 3105 1714 3104 1715 3103 1716 3102 1716 3102 1716 3101 1716 3101 1717 3101 1718 3102 1719 3104 1720 3105 1720 3106 1721 3106 1722 3107 1722 3107 1722 3108 1722 3109 1723 3109 1724 3108 1725 3108 1725 3107 1725 3107 1726 3108 1727 3108 1728 3109 1728 3110 1728 3110 1728 3111 1731 3110 1733 3110 1734 3109 1734 3108 1734 3108 1735 3109 1736 3110 1737 3110 1737 3111 1737 3111 1738 3110 1739 3110 1740 3112 1740 3113 1740 3114 1740 3114 1741 3114 1742 3114 1742 3114 1743 3115 1743 3115 1743 3115 1744 3114 1746 3114 1747 3114 1747 3113 1748 3113 1749 3112 1750 3112 1750 3112 1750 3111 1751 3111 1751 3110 1751 3110 1751 3109 1750 3109 1750 3109 1750 3109 1749 3108 1748 3108 1748 3106 1747 3104 1747 3103 1747 3103 1748 3104 1749 3104 1749 3104 1750 3101 1750 3098 1751 3097 1751 3097 1752 3094 1752 3093 1752 3093 1752 3092 1753 3091 1753 3091 1753 3091 1754 3090 1754 3090 1754 3089 1754 3089 1754 3087 1754 3086 1755 3086 1756 3086 1756 3084 1756 3083 1757 3083 1757 3082 1757 3082 1757 3081 1757 3081 1757 3080 1757 3080 1757 3079 1757 3078 1757 3077 1757 3077 1757 3075 1758 3074 1758 3073 1759 3072 1760 3072 1761 3071 1760 3070 1759 3068 1759 3069 1759 3070 1761 3070 1762 3070 1762 3071 1763 3072 1763 3074 1764 3074 1764 3075 1764 3075 1765 3074 1767 3074 1769 3074 1769 3075 1769 3076 1770 3076 1771 3076 1771 3077 1773 3079 1774 3081 1774 3082 1775 3083 1775 3085 1777 3088 1778 3089 1779 3089 1780 3091 1780 3092 1780 3092 1781 3093 1781 3093 1781 3093 1782 3094 1782 3094 1782 3095 1782 3095 1782 3095 1783 3096 1783 3096 1783 3096 1783 3096 1784 3096 1786 3095 1787 3094 1788 3093 1787 3093 1787 3092 1787 3091 1786 3090 1787 3090 1788 3090 1789 3089 1790 3089 1790 3088 1791 3088 1791 3087 1791 3087 1791 3085 1791 3083 1792 3081 1793 3079 1794 3079 1795 3079 1795 3080 1795 3080 1796 3080 1796 3081 1797 3082 1797 3083 1798 3082 1799 3082 1799 3081 1800 3083 1800 3083 1800 3084 1801 3084 1801 3084 1802 3083 1804 3083 1804 3082 1804 3080 1803 3079 1802 3080 1802 3080 1802 3078 1801 3077 1801 3076 1801 3076 1802 3076 1802 3075 1802 3074 1801 3070 1801 3070 1802 3070 1802 3069 1802 3068 1802 3068 1802 3067 1802 3065 1802 3062 1802 3060 1803 3060 1804 3059 1804 3058 1804 3055 1805 3052 1805 3051 1805 3051 1805 3050 1805 3049 1804 3046 1803 3044 1803 3042 1802 3042 1803 3042 1803 3042 1804 3042 1805 3042 1805 3040 1807 3039 1807 3038 1807 3037 1807 3038 1807 3038 1806 3035 1804 3034 1803 3032 1802 3031 1802 3031 1803 3030 1803 3030 1803 3029 1803 3028 1803 3028 1803 3028 1803 3026 1803 3023 1801 3020 1801 3019 1801 3019 1801 3018 1801 3018 1801 3018 1801 3017 1801 3017 1801 3016 1801 3016 1800 3016 1800 3015 1800 3016 1801 3015 1801 3014 1801 3014 1800 3015 1800 3014 1799 3013 1799 3013 1799 3012 1799 3010 1799 3009 1801 3009 1801 3011 1801 3011 1801 3011 1801 3012 1801 3013 1801 3013 1801 3012 1802 3012 1802 3012 1802 3012 1802 3011 1802 3010 1802 3010 1803 3009 1803 3007 1802 3007 1802 3006 1802 3004 1803 3003 1803 3001 1803 2999 1803 2998 1803 2997 1803 2997 1803 2997 1803 2998 1802 2997 1802 2996 1802 2996 1802 2996 1802 2995 1801 2995 1801 2995 1799 2996 1798 2996 1797 2997 1796 2997 1796 2996 1795 2996 1795 2996 1794 2996 1794 2997 1793 2998 1791 2999 1790 2999 1790 2999 1790 2999 1789 3000 1787 3001 1785 3002 1784 3004 1783 3004 1783 3005 1782 3005 1782 3005 1782 3006 1781 3006 1780 3005 1780 3004 1780 3002 1779 3000 1779 2999 1779 2997 1779 2997 1779 2997 1779 2995 1777 2994 1777 2993 1777 2993 1777 M 3012 1689 3011 1689 3010 1689 3009 1689 3009 1688 3010 1688 3010 1688 3010 1688 3011 1688 3012 1688 3012 1688 3012 1688 3012 1689 3012 1689 3012 1689 M 3087 1696 3087 1696 3085 1695 3085 1695 3085 1694 3085 1694 3086 1694 3086 1694 3086 1694 3087 1694 3086 1693 3086 1693 3085 1693 3086 1693 3086 1692 3085 1692 3085 1691 3086 1691 3087 1691 3087 1691 3088 1691 3089 1691 3089 1691 3089 1691 3089 1692 3090 1692 3090 1692 3091 1692 3091 1692 3091 1691 3090 1691 3089 1691 3089 1691 3089 1690 3088 1690 3088 1691 3088 1691 3087 1691 3087 1691 3086 1690 3087 1690 3087 1689 3087 1689 3087 1689 3088 1689 3089 1689 3089 1689 3090 1689 3089 1689 3089 1690 3089 1690 3089 1690 3089 1691 3090 1691 3090 1691 3090 1691 3091 1691 3092 1691 3093 1691 3093 1691 3093 1691 3093 1691 3093 1692 3093 1692 3093 1692 3092 1692 3092 1693 3092 1693 3092 1693 3093 1694 3093 1694 3093 1694 3093 1694 3094 1694 3094 1694 3094 1694 3095 1695 3094 1696 3094 1696 3094 1695 3094 1695 3094 1695 3094 1694 3091 1695 3090 1695 3088 1696 3088 1696 3089 1696 3089 1696 3089 1696 3089 1696 3089 1696 3088 1696 3087 1696 M 3055 1693 3056 1693 3056 1693 3053 1694 3053 1694 3051 1693 3051 1693 3051 1693 3051 1692 3051 1692 3051 1692 3051 1692 3052 1691 3054 1692 3054 1692 3055 1692 3055 1693 M 3050 1694 3051 1694 3051 1694 3051 1694 3050 1694 M 3102 1701 3102 1702 3102 1702 3102 1702 3100 1702 3099 1702 3099 1702 3098 1702 3097 1703 3096 1702 3097 1702 3097 1702 3098 1701 3098 1701 3098 1701 3099 1701 3099 1701 3100 1700 3099 1700 3099 1700 3099 1699 3098 1699 3098 1699 3097 1699 3097 1699 3097 1700 3096 1700 3096 1699 3096 1699 3096 1698 3095 1698 3095 1697 3096 1697 3096 1698 3096 1698 3097 1699 3097 1699 3098 1699 3099 1699 3100 1700 3102 1701 3102 1701 3102 1701 M 3014 1801 3014 1801 3014 1800 3014 1801 3014 1801" />
+<path id="gp" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1892 2302 1893 2301 1892 2301 1892 2300 1892 2300 1892 2300 1892 2300 1893 2299 1893 2299 1894 2299 1894 2299 1894 2300 1894 2300 1894 2301 1894 2301 1895 2301 1895 2301 1895 2302 1895 2302 1896 2302 1896 2302 1896 2302 1897 2302 1897 2303 1897 2303 1893 2304 1893 2304 1893 2304 1893 2304 1892 2303 1892 2303 1892 2303 1892 2303 1891 2304 1891 2304 1892 2305 1892 2306 1892 2306 1892 2306 1892 2307 1891 2307 1890 2307 1890 2308 1889 2307 1889 2306 1888 2303 1888 2303 1888 2302 1888 2302 1889 2301 1889 2301 1889 2301 1890 2302 1891 2302 1891 2303 1892 2302 1892 2302 M 1897 2309 1896 2309 1896 2309 1896 2309 1895 2308 1896 2307 1896 2307 1896 2307 1897 2307 1898 2308 1898 2308 1898 2308 1897 2309 1897 2309 1897 2309" />
+<path id="gu" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5186 2351 5186 2351 5186 2351 5186 2351 5186 2351 5185 2350 5185 2349 5185 2348 5185 2348 5186 2347 5186 2347 5187 2347 5187 2347 5187 2347 5187 2347 5188 2346 5188 2346 5188 2346 5188 2345 5188 2345 5189 2345 5189 2344 5190 2345 5190 2345 5190 2346 5190 2346 5189 2347 5189 2347 5189 2347 5188 2348 5188 2348 5188 2348 5187 2348 5187 2348 5187 2349 5187 2349 5187 2350 5187 2350 5187 2350 5187 2350 5187 2351 5187 2351 5187 2351 5187 2351 5186 2351" />
+<path id="gr" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3212 1939 3211 1939 3209 1939 3208 1938 3207 1938 3207 1939 3207 1940 3208 1940 3206 1940 3206 1940 3206 1939 3206 1939 3205 1938 3203 1937 3202 1935 3201 1935 3200 1935 3199 1934 3198 1933 3198 1933 3198 1931 3197 1930 3195 1929 3195 1929 3195 1928 3196 1929 3197 1929 3197 1929 3198 1929 3198 1929 3200 1928 3199 1927 3199 1927 3199 1927 3200 1927 3201 1927 3201 1926 3201 1926 3200 1925 3200 1925 3199 1924 3201 1923 3202 1922 3202 1922 3202 1923 3203 1923 3204 1922 3204 1922 3204 1922 3205 1922 3206 1920 3206 1919 3206 1919 3207 1919 3207 1917 3207 1917 3208 1916 3209 1916 3210 1916 3211 1915 3211 1914 3211 1913 3211 1912 3210 1911 3210 1910 3212 1910 3213 1910 3215 1910 3216 1910 3216 1910 3217 1909 3219 1909 3219 1909 3220 1910 3220 1910 3223 1909 3225 1907 3225 1906 3226 1906 3230 1905 3231 1905 3231 1905 3232 1905 3233 1906 3234 1906 3236 1906 3238 1905 3238 1904 3239 1904 3239 1903 3239 1902 3239 1902 3241 1902 3241 1902 3242 1902 3244 1903 3244 1903 3245 1902 3246 1902 3246 1902 3246 1902 3247 1901 3249 1901 3251 1901 3252 1902 3252 1902 3254 1901 3255 1901 3257 1900 3258 1901 3259 1900 3259 1899 3260 1899 3261 1899 3262 1899 3262 1899 3262 1899 3263 1899 3266 1899 3267 1900 3268 1901 3271 1902 3271 1902 3271 1902 3271 1901 3273 1901 3275 1902 3275 1902 3277 1903 3277 1903 3277 1903 3278 1904 3279 1904 3280 1904 3282 1903 3283 1903 3285 1903 3287 1902 3288 1903 3289 1903 3290 1903 3293 1902 3293 1901 3293 1899 3292 1898 3292 1898 3291 1897 3291 1897 3292 1896 3292 1896 3293 1896 3294 1896 3295 1896 3295 1896 3296 1896 3297 1897 3299 1898 3299 1898 3300 1899 3300 1901 3300 1902 3300 1902 3300 1902 3297 1903 3296 1904 3295 1904 3295 1906 3296 1907 3296 1908 3295 1909 3294 1909 3294 1910 3293 1911 3292 1912 3292 1912 3291 1912 3291 1912 3291 1912 3291 1911 3291 1911 3291 1910 3289 1910 3287 1910 3287 1910 3286 1910 3286 1910 3285 1910 3284 1910 3282 1909 3281 1909 3280 1909 3279 1909 3278 1909 3277 1909 3276 1908 3277 1908 3277 1907 3275 1908 3275 1908 3273 1909 3272 1909 3271 1910 3271 1910 3268 1910 3268 1909 3267 1908 3266 1908 3265 1909 3265 1909 3264 1909 3263 1910 3263 1910 3261 1912 3260 1912 3259 1912 3258 1912 3258 1912 3257 1912 3257 1911 3256 1911 3254 1912 3253 1912 3253 1913 3255 1914 3255 1916 3256 1916 3256 1917 3256 1917 3257 1917 3258 1918 3258 1917 3261 1918 3262 1919 3264 1921 3265 1921 3263 1922 3263 1922 3263 1921 3261 1919 3260 1919 3260 1919 3259 1919 3259 1919 3258 1919 3258 1918 3258 1918 3257 1918 3257 1918 3256 1918 3254 1918 3254 1918 3253 1919 3254 1919 3254 1920 3255 1921 3256 1921 3257 1921 3258 1922 3258 1922 3259 1923 3258 1924 3257 1925 3257 1925 3257 1924 3256 1923 3255 1922 3255 1922 3254 1921 3254 1921 3253 1920 3253 1920 3249 1919 3248 1919 3248 1920 3248 1920 3248 1921 3250 1923 3250 1923 3252 1924 3253 1924 3254 1925 3254 1925 3253 1925 3252 1925 3249 1924 3248 1924 3248 1922 3248 1921 3247 1920 3247 1920 3247 1920 3245 1919 3244 1919 3241 1917 3240 1916 3240 1916 3241 1916 3241 1915 3242 1915 3242 1915 3241 1914 3241 1913 3240 1914 3240 1914 3239 1915 3238 1915 3237 1915 3236 1916 3236 1917 3236 1917 3236 1919 3235 1921 3235 1923 3236 1923 3236 1924 3236 1924 3238 1924 3240 1927 3240 1928 3240 1928 3241 1930 3241 1930 3241 1930 3243 1931 3244 1932 3245 1933 3247 1934 3247 1935 3248 1936 3248 1937 3247 1937 3246 1938 3245 1938 3244 1938 3244 1938 3243 1938 3244 1937 3244 1937 3244 1938 3245 1938 3246 1937 3246 1937 3245 1936 3245 1935 3244 1935 3242 1934 3241 1934 3240 1935 3239 1936 3240 1936 3240 1937 3240 1937 3240 1937 3241 1937 3242 1938 3242 1938 3242 1939 3243 1939 3244 1939 3243 1939 3243 1940 3241 1941 3240 1941 3238 1942 3237 1942 3237 1941 3236 1941 3235 1942 3235 1942 3236 1942 3236 1942 3237 1942 3238 1942 3239 1943 3242 1944 3243 1945 3244 1945 3244 1946 3244 1945 3245 1945 3247 1945 3247 1945 3248 1946 3247 1946 3248 1947 3249 1947 3250 1948 3251 1948 3252 1948 3252 1949 3253 1950 3253 1950 3255 1950 3256 1951 3257 1951 3258 1951 3260 1952 3259 1953 3258 1954 3259 1956 3259 1958 3259 1958 3260 1959 3260 1959 3259 1961 3259 1961 3257 1961 3257 1960 3257 1959 3257 1959 3256 1959 3255 1958 3255 1958 3251 1956 3252 1955 3252 1955 3252 1955 3251 1955 3250 1955 3249 1956 3249 1956 3248 1956 3246 1956 3245 1956 3245 1957 3244 1957 3244 1957 3243 1957 3243 1957 3242 1957 3243 1958 3243 1958 3244 1958 3244 1958 3245 1959 3245 1962 3245 1962 3247 1963 3248 1963 3248 1963 3248 1962 3248 1962 3249 1962 3249 1963 3249 1963 3250 1964 3251 1964 3251 1965 3250 1965 3249 1965 3249 1965 3248 1965 3247 1965 3246 1965 3246 1967 3245 1967 3245 1967 3243 1966 3244 1965 3244 1965 3245 1965 3244 1964 3242 1963 3241 1963 3239 1962 3238 1962 3238 1963 3238 1964 3239 1965 3239 1966 3241 1969 3241 1969 3241 1970 3241 1970 3241 1970 3242 1970 3242 1971 3243 1972 3243 1973 3243 1974 3244 1974 3244 1975 3244 1976 3243 1976 3243 1976 3243 1977 3243 1977 3244 1978 3244 1979 3246 1980 3245 1981 3244 1980 3242 1979 3242 1979 3241 1977 3239 1975 3238 1975 3236 1975 3236 1975 3236 1975 3235 1977 3234 1978 3234 1979 3234 1980 3234 1980 3234 1981 3234 1981 3233 1980 3232 1979 3232 1976 3231 1974 3230 1974 3229 1973 3229 1972 3229 1971 3228 1971 3227 1971 3227 1971 3226 1971 3226 1972 3225 1972 3225 1974 3225 1975 3226 1975 3225 1975 3224 1976 3224 1975 3224 1975 3223 1975 3223 1975 3222 1974 3221 1974 3221 1973 3222 1973 3222 1972 3221 1971 3220 1971 3220 1971 3219 1969 3220 1968 3220 1968 3220 1968 3221 1967 3222 1966 3221 1966 3221 1965 3221 1964 3220 1963 3220 1963 3219 1963 3219 1962 3217 1961 3215 1959 3214 1959 3213 1958 3213 1958 3212 1958 3212 1957 3213 1957 3213 1957 3213 1957 3214 1956 3215 1956 3215 1955 3216 1954 3216 1953 3217 1952 3218 1952 3218 1953 3219 1953 3220 1953 3221 1953 3221 1953 3222 1952 3222 1952 3222 1951 3223 1951 3224 1950 3226 1950 3227 1951 3227 1951 3229 1952 3230 1953 3232 1953 3234 1953 3235 1954 3237 1954 3238 1955 3239 1955 3239 1956 3240 1957 3241 1957 3242 1956 3242 1956 3242 1956 3241 1955 3240 1955 3240 1955 3242 1954 3242 1954 3243 1955 3243 1955 3244 1955 3244 1955 3244 1955 3245 1954 3246 1954 3246 1953 3244 1952 3243 1952 3242 1952 3241 1952 3241 1953 3241 1952 3240 1952 3239 1952 3237 1950 3236 1950 3235 1950 3235 1950 3234 1949 3233 1948 3232 1949 3233 1950 3232 1950 3229 1950 3229 1950 3228 1950 3227 1949 3226 1949 3226 1949 3222 1950 3221 1950 3221 1950 3220 1950 3219 1951 3218 1950 3216 1949 3216 1949 3215 1950 3214 1950 3213 1951 3212 1950 3212 1950 3213 1949 3212 1949 3212 1949 3212 1948 3212 1948 3210 1945 3209 1944 3207 1943 3207 1943 3206 1943 3206 1941 3207 1941 3210 1941 3211 1941 3211 1941 3211 1941 3212 1942 3213 1941 3213 1940 3213 1939 3212 1939 3212 1939 M 3269 1914 3269 1914 3268 1914 3268 1914 3267 1914 3267 1914 3267 1913 3266 1913 3267 1913 3267 1912 3267 1912 3267 1912 3268 1911 3268 1911 3269 1911 3269 1911 3269 1911 3270 1911 3270 1912 3271 1912 3271 1914 3271 1914 3269 1914 3269 1914 M 3285 1916 3285 1916 3285 1917 3285 1917 3284 1917 3283 1917 3283 1917 3282 1917 3282 1916 3281 1916 3282 1916 3283 1916 3283 1915 3283 1915 3283 1915 3285 1916 M 3281 1924 3281 1924 3280 1925 3280 1926 3280 1926 3280 1926 3280 1926 3280 1927 3280 1927 3280 1927 3279 1927 3279 1927 3279 1926 3279 1925 3279 1925 3278 1925 3278 1925 3277 1926 3278 1926 3278 1927 3277 1927 3275 1926 3275 1926 3275 1924 3275 1924 3276 1924 3278 1924 3279 1924 3280 1924 3282 1923 3281 1923 3281 1924 M 3192 1927 3192 1927 3193 1927 3194 1927 3194 1927 3194 1928 3193 1928 3193 1928 3192 1928 3192 1928 3192 1929 3192 1929 3193 1932 3195 1933 3195 1933 3195 1933 3195 1932 3196 1932 3196 1934 3196 1934 3196 1934 3193 1932 3192 1932 3192 1931 3192 1931 3192 1931 3192 1930 3191 1930 3190 1930 3189 1929 3189 1928 3189 1927 3189 1927 3189 1927 3190 1927 3191 1927 3191 1927 3192 1927 M 3297 1934 3297 1934 3297 1935 3296 1935 3296 1935 3297 1936 3298 1936 3299 1937 3300 1939 3300 1939 3300 1939 3300 1939 3299 1940 3297 1940 3297 1940 3295 1940 3293 1939 3292 1939 3292 1938 3292 1938 3293 1938 3295 1937 3295 1937 3295 1937 3294 1936 3294 1936 3293 1936 3293 1936 3293 1937 3293 1937 3293 1937 3292 1938 3292 1938 3291 1938 3291 1938 3290 1938 3289 1937 3288 1937 3288 1937 3288 1936 3288 1935 3289 1935 3289 1935 3289 1935 3289 1935 3290 1935 3293 1934 3293 1934 3293 1934 3293 1934 3294 1933 3295 1934 3297 1934 3297 1934 M 3254 1938 3254 1938 3253 1938 3252 1936 3252 1936 3255 1938 3255 1938 3254 1938 3254 1938 3254 1938 M 3259 1950 3259 1949 3258 1949 3258 1949 3257 1949 3257 1949 3255 1949 3255 1949 3253 1949 3253 1949 3252 1948 3253 1947 3252 1947 3252 1946 3250 1945 3248 1944 3246 1942 3245 1942 3244 1942 3244 1942 3240 1942 3240 1942 3241 1941 3244 1940 3244 1940 3247 1939 3247 1939 3248 1940 3249 1942 3250 1942 3251 1943 3252 1943 3255 1944 3256 1945 3258 1945 3258 1945 3261 1945 3261 1946 3261 1949 3262 1952 3263 1953 3264 1953 3265 1953 3266 1953 3267 1953 3268 1955 3268 1955 3268 1955 3267 1956 3267 1956 3266 1956 3265 1956 3264 1955 3262 1953 3261 1952 3260 1951 3259 1950 M 3267 1943 3267 1943 3267 1943 3266 1941 3266 1941 3266 1940 3266 1940 3266 1940 3266 1940 3268 1941 3269 1942 3269 1943 3269 1943 3269 1943 3269 1943 3268 1943 3268 1943 3268 1943 3267 1943 3267 1943 M 3206 1942 3206 1942 3206 1943 3206 1946 3205 1946 3203 1947 3203 1946 3203 1945 3204 1943 3205 1942 3205 1942 3206 1942 M 3291 1953 3290 1953 3290 1953 3289 1952 3288 1952 3288 1952 3288 1951 3289 1951 3289 1951 3289 1951 3290 1950 3290 1949 3289 1948 3289 1948 3288 1948 3288 1948 3288 1948 3288 1947 3287 1947 3288 1946 3288 1946 3288 1946 3288 1946 3290 1946 3292 1947 3293 1947 3293 1947 3292 1949 3292 1949 3293 1950 3293 1950 3293 1951 3292 1952 3291 1952 3291 1953 3291 1953 M 3206 1951 3206 1951 3206 1950 3205 1950 3205 1949 3204 1948 3205 1948 3205 1948 3206 1948 3206 1950 3207 1950 3206 1951 3206 1951 M 3204 1948 3204 1949 3205 1951 3207 1954 3207 1955 3206 1955 3203 1954 3203 1954 3200 1953 3200 1953 3200 1952 3200 1952 3201 1950 3202 1950 3202 1951 3202 1950 3203 1950 3203 1950 3203 1950 3203 1949 3203 1949 3203 1949 3203 1948 3203 1948 3204 1948 M 3250 1956 3250 1956 3251 1956 3251 1956 3251 1957 3251 1957 3250 1957 3250 1957 3249 1957 3249 1957 3249 1957 3249 1956 3250 1956 3250 1956 M 3274 1961 3273 1960 3273 1960 3272 1959 3272 1959 3271 1958 3270 1957 3270 1957 3270 1958 3269 1957 3269 1956 3269 1956 3270 1956 3270 1956 3271 1956 3271 1956 3274 1958 3274 1959 3274 1960 3274 1961 M 3208 1961 3208 1961 3207 1961 3206 1960 3206 1960 3204 1959 3204 1958 3204 1958 3204 1958 3205 1957 3205 1957 3206 1957 3207 1958 3208 1958 3209 1959 3209 1959 3210 1960 3210 1960 3210 1960 3210 1960 3209 1960 3209 1960 3208 1960 3208 1961 3208 1961 M 3303 1961 3302 1960 3302 1960 3301 1960 3301 1960 3300 1961 3300 1961 3300 1961 3300 1961 3299 1960 3300 1959 3301 1959 3302 1959 3302 1959 3306 1959 3307 1959 3307 1960 3307 1960 3307 1960 3305 1961 3303 1961 M 3290 1963 3290 1963 3290 1963 3290 1963 3291 1962 3291 1961 3292 1961 3295 1961 3296 1961 3296 1961 3295 1961 3295 1962 3295 1962 3294 1963 3291 1963 3290 1963 M 3263 1963 3263 1963 3263 1962 3263 1962 3263 1961 3263 1961 3264 1961 3264 1961 3264 1961 3265 1961 3265 1961 3265 1962 3264 1962 3264 1962 3263 1963 3263 1963 3263 1963 M 3275 1961 3276 1961 3276 1961 3277 1961 3278 1961 3278 1962 3278 1962 3278 1962 3278 1963 3278 1963 3277 1963 3277 1963 3276 1963 3274 1961 3274 1961 3274 1961 3274 1961 3275 1961 3275 1961 M 3265 1964 3265 1964 3265 1965 3266 1965 3266 1965 3266 1965 3265 1966 3265 1966 3265 1967 3264 1967 3264 1967 3264 1965 3265 1964 3265 1964 3265 1964 3265 1964 M 3282 1973 3281 1973 3280 1970 3280 1970 3282 1968 3283 1968 3283 1969 3284 1969 3284 1969 3284 1969 3284 1970 3284 1970 3284 1971 3284 1971 3284 1971 3283 1972 3282 1973 3282 1973 3282 1973 M 3277 1972 3277 1972 3277 1972 3276 1972 3276 1971 3276 1971 3276 1971 3276 1970 3277 1970 3277 1970 3278 1969 3279 1969 3279 1969 3279 1971 3279 1971 3278 1971 3277 1972 M 3306 1973 3306 1973 3305 1973 3305 1973 3305 1972 3304 1970 3306 1971 3306 1971 3307 1972 3307 1972 3306 1973 M 3306 1977 3306 1977 3305 1977 3305 1976 3305 1975 3307 1974 3309 1973 3309 1973 3311 1973 3312 1973 3312 1974 3312 1974 3312 1974 3311 1974 3311 1974 3310 1974 3310 1974 3307 1975 3306 1975 3306 1976 3306 1976 3306 1977 3306 1977 M 3280 1977 3280 1977 3278 1976 3279 1975 3279 1975 3279 1975 3280 1975 3281 1976 3281 1977 3280 1977 M 3264 1977 3264 1977 3263 1977 3264 1976 3264 1976 3267 1975 3267 1975 3267 1975 3267 1976 3267 1977 3266 1977 3265 1977 3264 1977 M 3298 1978 3297 1978 3296 1979 3296 1979 3295 1979 3295 1979 3295 1979 3295 1979 3294 1978 3296 1977 3297 1977 3298 1978 3298 1978 3298 1978 M 3326 1980 3326 1980 3326 1980 3326 1981 3326 1982 3325 1983 3324 1984 3324 1985 3323 1986 3322 1986 3322 1987 3321 1987 3321 1987 3321 1988 3321 1988 3321 1988 3320 1989 3320 1989 3319 1989 3319 1989 3319 1989 3318 1989 3318 1989 3318 1988 3318 1988 3318 1986 3318 1985 3319 1983 3319 1983 3320 1982 3321 1982 3321 1982 3323 1981 3324 1981 3326 1980 M 3242 1981 3242 1982 3242 1982 3242 1983 3243 1983 3244 1983 3244 1984 3244 1984 3243 1985 3243 1985 3242 1985 3242 1985 3241 1985 3241 1985 3241 1984 3241 1984 3241 1982 3241 1981 3242 1981 3242 1981 M 3309 1997 3308 1997 3307 1994 3307 1994 3308 1993 3309 1992 3309 1992 3309 1991 3309 1991 3310 1990 3310 1990 3310 1991 3310 1992 3309 1994 3309 1996 3309 1996 3309 1997 M 3253 2000 3252 2000 3251 1999 3251 1995 3252 1994 3252 1994 3252 1994 3252 1994 3252 1995 3253 1996 3254 1995 3254 1995 3254 1994 3254 1994 3254 1993 3254 1993 3255 1993 3255 1994 3255 1994 3255 1995 3256 1995 3258 1995 3258 1995 3259 1995 3259 1995 3260 1994 3260 1994 3261 1994 3262 1995 3261 1995 3261 1995 3260 1995 3260 1996 3261 1996 3263 1998 3264 1998 3264 1998 3266 1998 3266 1998 3268 1997 3268 1997 3271 1997 3274 1997 3275 1997 3275 1998 3278 1998 3279 1998 3279 1998 3280 1998 3281 1998 3281 1999 3282 1999 3282 1999 3283 1998 3284 1998 3285 1998 3287 1998 3286 1999 3286 1999 3286 1999 3286 2000 3286 2000 3286 2001 3286 2001 3286 2001 3286 2001 3287 2002 3287 2002 3288 2001 3289 2001 3291 2000 3292 2000 3292 2000 3294 2000 3295 1999 3295 2001 3295 2002 3294 2003 3294 2003 3292 2004 3292 2003 3290 2003 3284 2003 3283 2004 3282 2004 3280 2004 3277 2004 3275 2005 3273 2005 3271 2004 3270 2004 3271 2003 3270 2003 3270 2002 3270 2002 3269 2002 3269 2002 3268 2002 3267 2002 3267 2002 3267 2001 3265 2000 3261 2000 3261 2000 3260 2000 3259 2000 3259 2000 3257 2000 3257 2000 3255 2000 3254 2000 3253 2000" />
+<path id="gt" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1403 2331 1402 2331 1402 2330 1402 2330 1402 2330 1402 2330 1403 2329 1403 2328 1403 2328 1403 2327 1403 2327 1403 2326 1403 2325 1403 2324 1404 2323 1404 2322 1402 2319 1404 2316 1408 2308 1409 2308 1410 2306 1410 2306 1413 2306 1422 2306 1425 2306 1428 2306 1430 2306 1430 2306 1430 2306 1431 2305 1431 2304 1430 2304 1430 2303 1430 2302 1431 2302 1431 2301 1431 2301 1431 2300 1430 2300 1429 2299 1429 2299 1428 2299 1428 2299 1427 2299 1427 2298 1427 2297 1427 2297 1427 2296 1426 2295 1426 2295 1425 2294 1424 2294 1423 2294 1422 2293 1422 2293 1421 2292 1419 2290 1417 2289 1416 2288 1415 2287 1415 2287 1422 2287 1422 2282 1422 2278 1422 2278 1422 2278 1423 2278 1425 2278 1428 2278 1434 2278 1438 2278 1442 2278 1447 2278 1451 2278 1451 2279 1451 2286 1451 2291 1451 2300 1450 2305 1450 2308 1450 2309 1451 2308 1453 2308 1454 2309 1455 2309 1456 2309 1456 2309 1456 2309 1457 2309 1457 2310 1459 2310 1459 2312 1460 2312 1460 2312 1462 2309 1461 2309 1460 2308 1461 2308 1463 2310 1465 2311 1466 2311 1466 2311 1466 2312 1464 2312 1464 2313 1462 2315 1461 2316 1459 2317 1457 2318 1456 2319 1454 2321 1451 2322 1451 2322 1451 2322 1451 2322 1451 2323 1451 2323 1451 2324 1451 2324 1450 2325 1450 2325 1450 2325 1451 2327 1451 2327 1451 2328 1450 2330 1450 2330 1448 2331 1448 2332 1447 2332 1446 2332 1445 2332 1444 2332 1444 2333 1444 2334 1444 2334 1445 2334 1445 2335 1444 2336 1444 2336 1443 2336 1443 2336 1443 2336 1442 2337 1442 2337 1442 2338 1442 2338 1440 2338 1440 2338 1439 2338 1437 2340 1436 2341 1436 2342 1436 2342 1436 2343 1436 2343 1435 2343 1434 2342 1434 2342 1432 2341 1431 2341 1430 2341 1430 2340 1428 2340 1428 2340 1427 2340 1427 2340 1425 2340 1423 2340 1422 2340 1421 2340 1420 2340 1420 2340 1419 2340 1417 2340 1415 2339 1414 2338 1413 2338 1413 2338 1412 2338 1412 2337 1411 2337 1411 2337 1411 2337 1410 2336 1409 2336 1409 2336 1407 2334 1406 2334 1406 2333 1404 2332 1403 2331" />
+<path id="gn" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2674 2409 2673 2409 2673 2410 2673 2411 2672 2412 2671 2414 2670 2414 2670 2414 2669 2414 2668 2414 2668 2415 2668 2416 2667 2417 2667 2417 2666 2418 2666 2418 2665 2418 2664 2417 2663 2418 2663 2418 2663 2418 2662 2418 2662 2418 2663 2417 2663 2416 2662 2415 2661 2414 2659 2411 2659 2411 2659 2410 2659 2410 2659 2411 2659 2411 2657 2410 2658 2407 2658 2407 2658 2406 2657 2405 2657 2406 2657 2407 2656 2407 2656 2407 2655 2407 2655 2406 2656 2405 2656 2405 2656 2404 2656 2404 2656 2404 2656 2404 2656 2405 2655 2405 2654 2405 2654 2405 2653 2404 2652 2404 2650 2402 2649 2402 2648 2401 2644 2398 2643 2396 2643 2395 2643 2395 2642 2395 2642 2395 2641 2395 2641 2394 2641 2392 2642 2392 2643 2390 2643 2389 2642 2390 2642 2391 2641 2392 2640 2393 2640 2392 2640 2391 2639 2389 2639 2389 2638 2390 2638 2388 2638 2388 2639 2388 2640 2387 2640 2386 2639 2387 2638 2387 2637 2388 2637 2388 2636 2390 2636 2390 2635 2390 2635 2390 2634 2389 2634 2389 2634 2388 2635 2388 2635 2387 2636 2387 2637 2386 2638 2384 2638 2383 2638 2383 2638 2382 2639 2381 2639 2381 2640 2379 2641 2379 2641 2379 2642 2379 2642 2379 2643 2379 2643 2379 2644 2378 2645 2378 2646 2377 2647 2376 2649 2376 2650 2377 2650 2377 2650 2377 2651 2377 2655 2376 2656 2375 2656 2374 2656 2371 2655 2370 2655 2370 2653 2369 2653 2368 2652 2368 2652 2368 2654 2366 2655 2366 2654 2367 2656 2367 2656 2366 2656 2366 2657 2366 2657 2364 2657 2363 2657 2363 2656 2362 2656 2362 2656 2361 2656 2361 2656 2361 2656 2360 2657 2360 2662 2360 2662 2360 2664 2360 2666 2361 2667 2361 2666 2362 2666 2362 2666 2363 2667 2363 2668 2363 2668 2362 2669 2362 2669 2362 2670 2363 2671 2363 2673 2364 2674 2365 2674 2365 2675 2365 2676 2365 2676 2365 2677 2365 2677 2365 2678 2366 2680 2365 2681 2365 2681 2365 2681 2365 2683 2364 2685 2364 2686 2365 2687 2365 2688 2365 2688 2365 2689 2364 2689 2364 2691 2364 2692 2364 2692 2364 2693 2364 2693 2365 2692 2367 2692 2367 2691 2368 2691 2368 2692 2369 2692 2369 2693 2369 2693 2369 2694 2370 2694 2370 2695 2371 2696 2371 2697 2370 2697 2370 2698 2369 2699 2368 2700 2367 2700 2367 2701 2367 2701 2368 2702 2369 2703 2371 2704 2372 2704 2372 2705 2373 2706 2371 2708 2369 2710 2368 2710 2368 2710 2367 2714 2368 2717 2369 2717 2370 2719 2370 2720 2370 2721 2370 2721 2369 2721 2369 2721 2368 2721 2368 2722 2368 2725 2367 2725 2367 2726 2367 2726 2367 2726 2366 2727 2365 2726 2364 2725 2364 2726 2363 2726 2363 2727 2363 2729 2363 2730 2364 2730 2364 2732 2365 2732 2365 2732 2365 2732 2366 2732 2366 2732 2367 2732 2368 2732 2368 2734 2371 2735 2372 2735 2373 2734 2376 2735 2377 2735 2377 2736 2376 2736 2377 2736 2377 2736 2378 2737 2378 2737 2379 2738 2379 2738 2379 2738 2379 2739 2379 2739 2380 2739 2380 2740 2380 2741 2381 2741 2381 2742 2382 2741 2382 2741 2382 2740 2382 2740 2382 2740 2382 2737 2385 2736 2387 2736 2387 2738 2387 2739 2387 2740 2386 2742 2386 2743 2387 2743 2389 2742 2391 2743 2394 2743 2395 2744 2396 2744 2396 2745 2396 2748 2398 2748 2399 2748 2400 2747 2401 2747 2401 2747 2402 2746 2402 2746 2402 2745 2403 2745 2404 2745 2405 2746 2405 2746 2406 2745 2406 2745 2406 2745 2409 2745 2410 2745 2410 2745 2411 2745 2411 2746 2412 2746 2412 2747 2413 2748 2413 2749 2413 2749 2415 2748 2415 2749 2416 2750 2417 2751 2417 2751 2418 2750 2418 2749 2418 2749 2419 2748 2419 2748 2420 2748 2422 2748 2422 2748 2422 2749 2422 2749 2422 2751 2423 2751 2423 2752 2425 2752 2426 2752 2428 2753 2428 2753 2429 2752 2429 2751 2429 2751 2428 2751 2427 2750 2427 2748 2427 2744 2427 2743 2428 2743 2430 2744 2430 2744 2431 2744 2432 2745 2432 2746 2432 2747 2432 2747 2432 2748 2434 2748 2434 2747 2434 2746 2434 2746 2434 2746 2435 2746 2436 2745 2437 2745 2437 2746 2438 2746 2438 2744 2441 2744 2441 2744 2442 2744 2442 2743 2441 2741 2441 2741 2441 2740 2442 2739 2442 2738 2441 2738 2440 2738 2440 2738 2440 2737 2440 2736 2440 2736 2440 2736 2442 2736 2442 2736 2442 2736 2442 2735 2444 2734 2446 2734 2446 2733 2447 2732 2447 2731 2447 2730 2447 2729 2448 2730 2447 2728 2445 2727 2445 2726 2444 2725 2444 2724 2444 2724 2445 2723 2445 2724 2444 2725 2443 2725 2442 2725 2441 2725 2440 2725 2440 2726 2439 2726 2439 2725 2439 2725 2437 2724 2436 2724 2435 2725 2435 2725 2434 2724 2432 2724 2429 2721 2427 2721 2427 2719 2427 2718 2427 2717 2427 2717 2427 2716 2427 2713 2427 2712 2427 2711 2427 2710 2427 2709 2427 2709 2428 2708 2428 2707 2429 2707 2430 2706 2430 2704 2430 2704 2429 2705 2426 2706 2425 2707 2425 2707 2423 2706 2422 2706 2421 2706 2419 2706 2419 2706 2418 2706 2418 2706 2418 2704 2418 2704 2418 2703 2417 2704 2416 2704 2415 2705 2415 2705 2414 2704 2413 2703 2413 2702 2411 2701 2409 2700 2407 2699 2407 2699 2406 2698 2406 2698 2405 2697 2403 2696 2403 2692 2403 2692 2403 2690 2403 2690 2403 2685 2403 2685 2403 2685 2404 2682 2405 2682 2405 2681 2405 2681 2405 2680 2404 2680 2404 2676 2405 2675 2405 2674 2408 2674 2409" />
+<path id="gy" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1915 2480 1915 2480 1915 2479 1915 2479 1913 2478 1913 2479 1912 2479 1912 2479 1908 2480 1908 2479 1907 2479 1906 2479 1905 2479 1905 2479 1904 2479 1903 2477 1899 2473 1894 2468 1895 2467 1895 2467 1896 2467 1896 2466 1896 2465 1896 2465 1898 2464 1898 2462 1898 2460 1898 2458 1897 2457 1898 2456 1899 2455 1900 2455 1900 2455 1902 2455 1902 2454 1904 2454 1905 2455 1906 2454 1906 2454 1906 2454 1906 2453 1907 2453 1908 2453 1909 2452 1909 2452 1910 2452 1912 2450 1912 2449 1912 2449 1912 2448 1911 2448 1911 2448 1909 2448 1909 2448 1908 2448 1908 2449 1907 2448 1907 2447 1907 2447 1907 2446 1907 2446 1907 2445 1907 2445 1906 2444 1906 2443 1905 2443 1905 2442 1906 2442 1906 2442 1907 2440 1907 2439 1908 2438 1908 2438 1912 2437 1913 2436 1913 2436 1915 2434 1915 2434 1916 2434 1916 2434 1917 2432 1917 2432 1918 2432 1918 2431 1918 2431 1919 2431 1920 2430 1920 2430 1918 2428 1917 2426 1917 2426 1917 2427 1918 2427 1918 2428 1918 2428 1919 2428 1919 2429 1919 2429 1920 2429 1920 2429 1920 2429 1920 2428 1922 2429 1922 2429 1927 2432 1930 2434 1931 2434 1931 2434 1931 2435 1931 2435 1934 2437 1936 2439 1936 2440 1937 2441 1937 2441 1938 2442 1941 2445 1941 2445 1941 2449 1941 2449 1941 2451 1941 2451 1940 2451 1940 2451 1940 2452 1940 2452 1939 2454 1939 2454 1939 2456 1939 2459 1938 2460 1939 2460 1939 2460 1939 2459 1939 2459 1939 2458 1939 2458 1939 2457 1940 2456 1941 2454 1941 2453 1942 2453 1942 2453 1944 2452 1945 2453 1945 2453 1946 2454 1946 2453 1948 2454 1949 2454 1949 2454 1950 2455 1950 2455 1950 2455 1950 2456 1950 2456 1952 2458 1954 2459 1955 2460 1956 2462 1956 2462 1957 2461 1957 2461 1959 2462 1959 2462 1960 2463 1961 2464 1961 2464 1962 2465 1962 2466 1962 2467 1962 2472 1962 2473 1961 2474 1961 2475 1960 2476 1960 2477 1959 2478 1960 2479 1960 2479 1961 2478 1961 2479 1962 2480 1961 2480 1961 2480 1960 2480 1960 2480 1959 2481 1959 2482 1958 2483 1957 2483 1955 2483 1954 2483 1954 2482 1951 2484 1950 2485 1950 2485 1950 2486 1950 2486 1950 2486 1951 2488 1951 2489 1950 2491 1949 2493 1949 2494 1949 2494 1949 2495 1948 2495 1948 2496 1947 2496 1948 2499 1948 2499 1949 2500 1949 2500 1950 2500 1951 2502 1951 2502 1951 2502 1951 2503 1951 2504 1951 2504 1952 2504 1952 2505 1953 2505 1954 2506 1954 2506 1954 2507 1954 2508 1954 2509 1955 2509 1956 2509 1958 2509 1960 2509 1960 2509 1960 2510 1960 2512 1960 2512 1961 2513 1961 2514 1961 2514 1961 2515 1961 2517 1961 2517 1963 2518 1965 2523 1966 2524 1967 2526 1968 2527 1968 2528 1970 2530 1970 2530 1971 2530 1972 2530 1973 2531 1973 2531 1972 2532 1971 2532 1971 2532 1971 2532 1969 2532 1969 2532 1968 2533 1967 2532 1965 2532 1964 2531 1964 2531 1963 2530 1963 2530 1962 2531 1961 2531 1961 2531 1960 2531 1960 2531 1959 2531 1958 2532 1958 2533 1957 2534 1956 2535 1956 2535 1956 2535 1954 2535 1954 2535 1954 2535 1953 2535 1952 2535 1951 2536 1949 2537 1949 2537 1948 2538 1947 2538 1944 2537 1944 2537 1942 2539 1941 2539 1941 2541 1941 2541 1941 2542 1940 2542 1939 2542 1938 2542 1937 2542 1937 2543 1937 2543 1936 2544 1935 2543 1935 2543 1934 2543 1934 2542 1934 2542 1933 2542 1933 2541 1931 2541 1929 2540 1926 2538 1925 2536 1925 2536 1923 2535 1922 2535 1922 2534 1922 2534 1923 2533 1921 2533 1921 2533 1921 2532 1921 2529 1921 2527 1921 2526 1920 2526 1919 2525 1918 2525 1918 2524 1918 2524 1918 2523 1918 2521 1917 2521 1917 2520 1917 2517 1917 2516 1917 2514 1917 2513 1918 2511 1919 2510 1919 2510 1919 2509 1920 2509 1920 2507 1919 2506 1920 2505 1922 2503 1924 2500 1923 2499 1921 2496 1921 2496 1921 2495 1921 2494 1922 2493 1922 2492 1921 2492 1920 2491 1918 2490 1917 2491 1916 2491 1915 2490 1914 2490 1914 2489 1915 2489 1915 2489 1916 2489 1916 2487 1916 2487 1917 2485 1917 2482 1916 2481 1915 2480" />
+<path id="gaza" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3422 2062 3422 2062 3422 2061 3424 2060 3425 2059 3426 2058 3426 2058 3427 2059 3427 2059 3426 2059 3426 2060 3424 2061 3424 2062 3424 2063 3423 2063 3422 2064 3422 2063 3422 2062" />
+<path id="ht" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1715 2243 1714 2243 1711 2243 1710 2242 1710 2242 1710 2242 1710 2242 1710 2242 1711 2242 1712 2242 1712 2242 1714 2242 1714 2243 1715 2243 1715 2243 1715 2243 M 1686 2270 1686 2269 1686 2268 1686 2265 1687 2265 1689 2264 1689 2264 1690 2264 1691 2264 1691 2265 1692 2265 1692 2265 1693 2265 1693 2265 1696 2266 1697 2266 1697 2266 1697 2266 1698 2266 1698 2266 1699 2266 1700 2266 1700 2266 1699 2266 1699 2266 1698 2266 1698 2266 1698 2266 1698 2267 1699 2267 1699 2267 1700 2267 1701 2267 1701 2267 1702 2267 1703 2267 1703 2267 1703 2267 1706 2267 1708 2268 1708 2268 1709 2268 1709 2268 1710 2268 1710 2268 1711 2268 1713 2268 1714 2268 1714 2268 1714 2268 1714 2267 1714 2267 1715 2267 1715 2266 1715 2266 1716 2266 1716 2266 1718 2266 1718 2266 1719 2266 1719 2267 1719 2266 1720 2264 1720 2264 1719 2264 1719 2264 1718 2264 1718 2264 1716 2263 1716 2262 1716 2262 1716 2262 1716 2262 1715 2261 1715 2261 1715 2260 1714 2260 1713 2260 1712 2258 1713 2256 1712 2255 1713 2255 1713 2253 1713 2252 1709 2249 1708 2249 1707 2249 1707 2249 1707 2249 1703 2249 1703 2249 1703 2249 1702 2249 1702 2248 1702 2248 1702 2248 1702 2248 1702 2247 1702 2246 1703 2246 1703 2246 1703 2246 1704 2246 1704 2246 1704 2245 1705 2245 1706 2245 1707 2244 1708 2244 1709 2244 1711 2244 1712 2244 1712 2244 1712 2244 1712 2244 1714 2244 1714 2244 1716 2245 1716 2246 1717 2246 1720 2247 1722 2247 1722 2247 1723 2247 1724 2248 1725 2247 1728 2248 1729 2248 1729 2248 1729 2248 1729 2248 1729 2249 1729 2249 1729 2249 1729 2250 1729 2250 1730 2250 1730 2250 1730 2250 1730 2251 1730 2251 1730 2253 1729 2253 1729 2254 1730 2255 1730 2255 1730 2255 1730 2255 1730 2255 1731 2256 1731 2256 1731 2256 1731 2257 1731 2257 1729 2259 1729 2260 1730 2261 1730 2262 1730 2263 1730 2263 1729 2264 1729 2264 1729 2264 1729 2264 1729 2264 1729 2264 1728 2264 1728 2265 1728 2265 1727 2265 1727 2265 1726 2265 1726 2265 1725 2265 1725 2265 1725 2265 1725 2266 1726 2266 1727 2267 1727 2267 1726 2268 1726 2268 1727 2268 1728 2269 1729 2269 1729 2270 1730 2270 1730 2270 1730 2270 1729 2270 1729 2272 1729 2272 1729 2273 1729 2274 1729 2274 1728 2274 1728 2274 1728 2274 1728 2274 1728 2273 1727 2272 1726 2272 1724 2271 1724 2271 1723 2271 1722 2271 1721 2272 1720 2271 1720 2271 1719 2271 1719 2271 1717 2272 1716 2272 1714 2272 1714 2272 1714 2272 1713 2272 1713 2272 1713 2273 1712 2273 1712 2273 1712 2273 1711 2273 1709 2272 1709 2272 1709 2272 1707 2272 1705 2271 1704 2271 1703 2271 1702 2271 1701 2271 1696 2272 1696 2272 1696 2273 1696 2273 1696 2273 1696 2273 1696 2273 1696 2273 1696 2274 1696 2274 1696 2274 1696 2274 1696 2275 1696 2275 1695 2275 1695 2274 1695 2274 1694 2274 1694 2274 1694 2273 1694 2273 1692 2272 1691 2271 1690 2270 1689 2270 1689 2270 1689 2270 1688 2270 1688 2270 1687 2270 1687 2270 1686 2270 M 1712 2264 1711 2263 1710 2263 1708 2263 1706 2262 1705 2261 1704 2261 1704 2261 1704 2260 1704 2260 1704 2260 1705 2260 1705 2260 1706 2260 1708 2260 1709 2261 1711 2262 1711 2262 1712 2262 1712 2262 1712 2263 1712 2263 1712 2264 1712 2264" />
+<path id="hm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4053 3411 4053 3411 4052 3411 4052 3411 4052 3411 4051 3412 4051 3412 4051 3412 4050 3412 4050 3412 4049 3412 4049 3412 4049 3412 4048 3412 4048 3412 4047 3411 4047 3410 4046 3409 4045 3409 4045 3409 4045 3409 4046 3408 4047 3409 4047 3409 4048 3410 4048 3410 4048 3409 4049 3409 4049 3409 4050 3409 4051 3410 4051 3410 4051 3410 4052 3410 4052 3410 4052 3411 4052 3411 4053 3411 4053 3411" />
+<path id="hn" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1491 2303 1491 2303 1491 2302 1491 2302 1492 2302 1492 2302 1492 2301 1494 2300 1495 2300 1496 2300 1497 2300 1497 2300 1497 2300 1496 2300 1495 2301 1492 2302 1492 2302 1491 2303 M 1462 2339 1461 2339 1459 2339 1459 2339 1458 2338 1458 2337 1458 2337 1457 2337 1457 2337 1457 2337 1456 2337 1456 2337 1456 2337 1456 2336 1455 2336 1455 2336 1455 2336 1454 2336 1454 2335 1454 2335 1454 2335 1453 2334 1453 2334 1452 2334 1451 2333 1450 2333 1449 2332 1448 2332 1448 2332 1448 2332 1448 2331 1450 2330 1450 2330 1451 2328 1451 2327 1451 2327 1450 2325 1450 2325 1450 2325 1451 2324 1451 2324 1451 2323 1451 2323 1451 2322 1451 2322 1451 2322 1451 2322 1454 2321 1456 2319 1457 2318 1459 2317 1461 2316 1462 2315 1464 2313 1464 2312 1466 2312 1466 2311 1466 2311 1466 2312 1467 2312 1467 2312 1468 2312 1469 2310 1471 2309 1472 2309 1473 2309 1473 2309 1474 2308 1474 2308 1475 2309 1476 2309 1477 2310 1478 2310 1478 2310 1479 2310 1480 2310 1481 2310 1483 2310 1486 2311 1486 2311 1487 2311 1488 2311 1489 2310 1490 2310 1494 2310 1494 2310 1495 2311 1495 2311 1496 2311 1497 2310 1497 2310 1498 2309 1498 2309 1499 2309 1500 2309 1501 2309 1501 2309 1502 2309 1502 2308 1503 2308 1503 2308 1503 2307 1502 2307 1502 2307 1501 2307 1503 2307 1504 2307 1505 2307 1507 2308 1507 2308 1508 2308 1508 2308 1509 2309 1511 2309 1513 2309 1515 2308 1516 2308 1516 2308 1516 2308 1517 2307 1517 2307 1517 2307 1519 2307 1523 2309 1523 2310 1523 2310 1524 2311 1525 2310 1526 2310 1525 2309 1526 2309 1529 2310 1531 2312 1533 2313 1536 2316 1535 2315 1534 2315 1533 2314 1531 2314 1530 2314 1530 2315 1532 2317 1532 2317 1535 2319 1536 2319 1535 2318 1534 2317 1534 2317 1533 2317 1533 2317 1533 2316 1534 2316 1535 2317 1536 2318 1537 2318 1537 2320 1537 2320 1539 2319 1540 2319 1541 2319 1541 2319 1541 2319 1541 2320 1540 2319 1540 2319 1539 2320 1539 2320 1540 2320 1541 2320 1541 2319 1541 2318 1541 2318 1540 2318 1539 2317 1541 2318 1542 2319 1543 2319 1544 2319 1544 2320 1544 2321 1544 2321 1545 2322 1545 2322 1546 2322 1546 2323 1547 2323 1547 2323 1546 2323 1544 2323 1544 2323 1543 2323 1542 2323 1541 2324 1540 2324 1536 2326 1535 2326 1534 2327 1534 2327 1533 2327 1530 2327 1529 2328 1526 2329 1522 2328 1521 2326 1520 2326 1519 2326 1518 2327 1517 2327 1517 2328 1517 2329 1517 2330 1516 2330 1516 2330 1515 2331 1514 2332 1514 2333 1515 2333 1515 2334 1514 2334 1514 2334 1513 2334 1513 2334 1513 2334 1512 2334 1511 2335 1511 2336 1511 2337 1510 2337 1509 2338 1508 2338 1506 2339 1505 2341 1506 2341 1506 2342 1506 2342 1505 2341 1504 2341 1502 2340 1501 2339 1501 2339 1501 2338 1500 2338 1499 2338 1499 2339 1496 2343 1495 2343 1494 2343 1492 2342 1490 2342 1489 2343 1489 2344 1489 2346 1490 2347 1490 2348 1490 2349 1490 2350 1490 2351 1489 2351 1489 2350 1488 2350 1488 2350 1487 2351 1487 2352 1487 2352 1487 2354 1486 2354 1485 2355 1485 2355 1484 2355 1481 2355 1480 2354 1480 2353 1480 2353 1478 2352 1477 2350 1477 2350 1478 2349 1479 2349 1479 2349 1479 2348 1478 2348 1478 2349 1478 2349 1477 2349 1477 2349 1476 2349 1476 2348 1476 2348 1475 2348 1475 2348 1475 2349 1475 2349 1474 2349 1474 2349 1473 2349 1472 2348 1473 2348 1474 2347 1474 2347 1474 2347 1473 2347 1473 2346 1473 2346 1474 2343 1474 2342 1474 2342 1474 2342 1473 2341 1473 2341 1471 2341 1471 2341 1470 2341 1470 2341 1469 2341 1469 2340 1468 2339 1467 2339 1467 2339 1466 2339 1466 2340 1465 2340 1464 2341 1464 2341 1464 2341 1463 2341 1463 2341 1463 2341 1462 2341 1462 2341 1461 2340 1462 2339" />
+<path id="hr" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3179 1846 3179 1846 3178 1846 3176 1846 3175 1845 3175 1845 3175 1845 3175 1845 3175 1844 3173 1842 3169 1842 3167 1842 3166 1842 3166 1842 3166 1842 3165 1843 3164 1842 3164 1842 3161 1842 3161 1843 3160 1843 3160 1843 3159 1842 3158 1842 3156 1842 3155 1842 3154 1842 3151 1841 3150 1841 3149 1841 3148 1841 3147 1840 3145 1840 3144 1841 3144 1841 3141 1840 3141 1840 3141 1840 3140 1840 3139 1840 3139 1840 3138 1841 3137 1842 3136 1843 3136 1844 3135 1844 3135 1844 3134 1843 3134 1843 3132 1842 3131 1840 3129 1840 3129 1840 3128 1840 3127 1841 3127 1841 3127 1843 3127 1843 3127 1845 3126 1847 3127 1847 3128 1848 3130 1848 3130 1849 3131 1850 3131 1851 3132 1851 3132 1852 3133 1852 3134 1854 3134 1855 3133 1857 3133 1857 3134 1857 3134 1857 3135 1857 3135 1857 3136 1858 3136 1858 3137 1859 3138 1859 3139 1859 3139 1859 3141 1861 3142 1862 3142 1862 3144 1864 3146 1866 3146 1866 3146 1866 3147 1867 3148 1867 3148 1868 3149 1868 3150 1868 3151 1868 3151 1869 3151 1869 3151 1870 3151 1871 3151 1871 3153 1873 3156 1874 3156 1874 3157 1875 3157 1875 3157 1875 3157 1876 3156 1877 3155 1876 3154 1876 3154 1876 3154 1875 3154 1875 3152 1874 3151 1873 3150 1873 3149 1873 3149 1873 3148 1872 3147 1871 3146 1870 3145 1869 3144 1869 3144 1869 3144 1869 3143 1869 3142 1869 3141 1869 3140 1869 3139 1868 3138 1867 3137 1867 3136 1867 3136 1867 3134 1868 3133 1868 3132 1868 3131 1868 3130 1868 3129 1867 3129 1866 3130 1866 3130 1865 3127 1864 3126 1863 3124 1862 3123 1862 3123 1861 3122 1861 3122 1861 3121 1860 3119 1859 3118 1858 3117 1857 3116 1855 3117 1855 3118 1856 3119 1856 3119 1855 3120 1855 3120 1855 3121 1855 3121 1856 3123 1856 3123 1855 3122 1855 3122 1855 3119 1854 3117 1853 3117 1852 3116 1851 3115 1851 3114 1850 3114 1850 3113 1849 3113 1849 3113 1848 3113 1847 3113 1846 3113 1846 3113 1845 3113 1844 3112 1842 3111 1842 3111 1842 3110 1841 3109 1841 3108 1840 3106 1839 3106 1839 3104 1838 3103 1839 3103 1840 3103 1841 3102 1841 3102 1841 3102 1842 3101 1843 3101 1843 3101 1844 3101 1844 3100 1844 3099 1845 3098 1846 3098 1847 3099 1847 3099 1847 3097 1847 3096 1846 3096 1846 3095 1844 3094 1843 3092 1841 3092 1840 3092 1839 3091 1837 3091 1836 3092 1836 3092 1836 3092 1836 3093 1837 3093 1837 3094 1837 3097 1837 3098 1836 3098 1836 3101 1836 3105 1836 3105 1836 3107 1835 3107 1834 3108 1833 3108 1833 3108 1834 3109 1834 3110 1835 3112 1836 3112 1836 3113 1836 3114 1836 3116 1836 3117 1837 3117 1837 3119 1836 3119 1835 3119 1834 3119 1834 3120 1833 3120 1832 3119 1833 3119 1832 3120 1832 3120 1832 3123 1830 3124 1830 3125 1830 3125 1831 3126 1830 3126 1829 3126 1827 3125 1827 3125 1826 3124 1826 3124 1825 3124 1825 3125 1824 3126 1824 3127 1824 3131 1823 3132 1822 3132 1822 3132 1822 3133 1821 3135 1821 3135 1820 3135 1820 3135 1819 3136 1819 3137 1819 3138 1819 3138 1820 3139 1820 3140 1820 3140 1820 3140 1820 3141 1820 3141 1820 3143 1822 3144 1822 3145 1822 3145 1823 3145 1823 3145 1823 3145 1824 3146 1824 3146 1824 3147 1824 3149 1825 3149 1825 3150 1826 3151 1827 3151 1827 3152 1828 3152 1829 3153 1829 3153 1829 3154 1829 3156 1829 3157 1829 3157 1830 3157 1830 3157 1830 3161 1831 3163 1831 3165 1831 3166 1831 3166 1831 3166 1831 3168 1832 3169 1832 3169 1832 3171 1831 3172 1831 3172 1830 3174 1829 3175 1829 3175 1829 3176 1829 3176 1830 3177 1831 3177 1831 3178 1831 3178 1833 3177 1834 3177 1834 3177 1835 3177 1835 3178 1835 3178 1835 3179 1835 3180 1835 3180 1836 3179 1836 3179 1836 3178 1836 3178 1838 3180 1839 3181 1839 3182 1839 3183 1840 3183 1840 3184 1840 3184 1840 3185 1840 3185 1840 3185 1840 3185 1841 3184 1841 3182 1841 3182 1840 3181 1840 3181 1840 3180 1842 3180 1843 3179 1845 3179 1845 3179 1846 3179 1846 M 3110 1845 3110 1845 3110 1845 3109 1844 3106 1843 3106 1843 3106 1843 3105 1842 3107 1840 3107 1840 3108 1840 3109 1842 3110 1843 3111 1844 3111 1844 3112 1844 3111 1844 3111 1845 3110 1845 M 3106 1850 3106 1850 3106 1850 3105 1849 3104 1846 3104 1845 3104 1845 3105 1845 3105 1844 3104 1843 3104 1843 3104 1843 3104 1843 3103 1842 3103 1842 3104 1841 3104 1841 3104 1841 3104 1841 3104 1841 3104 1842 3104 1842 3104 1842 3105 1843 3105 1844 3105 1844 3105 1844 3106 1847 3106 1848 3107 1849 3107 1850 3107 1850 3106 1850 3106 1850 M 3107 1852 3107 1852 3104 1850 3104 1849 3104 1848 3105 1849 3105 1849 3105 1849 3105 1849 3105 1850 3105 1850 3105 1850 3105 1850 3106 1851 3106 1851 3107 1851 3107 1852 3107 1852 3107 1852 3107 1852 M 3111 1849 3113 1850 3113 1850 3113 1850 3114 1850 3115 1851 3116 1852 3116 1852 3115 1852 3114 1851 3115 1852 3115 1852 3115 1852 3115 1852 3116 1852 3116 1853 3118 1854 3119 1854 3118 1855 3117 1855 3117 1855 3117 1855 3116 1855 3116 1854 3115 1853 3115 1853 3113 1852 3111 1849 3110 1849 3110 1849 3111 1849 M 3118 1862 3118 1862 3117 1861 3117 1861 3116 1861 3116 1861 3116 1860 3115 1860 3115 1860 3115 1860 3115 1860 3114 1859 3114 1859 3113 1858 3113 1858 3113 1857 3112 1857 3112 1857 3114 1858 3115 1859 3115 1860 3116 1860 3117 1860 3118 1861 3118 1861 3118 1861 3118 1862 M 3142 1872 3141 1872 3140 1871 3139 1871 3138 1871 3137 1871 3137 1870 3137 1869 3140 1870 3142 1870 3143 1870 3143 1870 3143 1870 3145 1871 3145 1871 3144 1871 3144 1871 3143 1871 3142 1871 3142 1871 3142 1872 M 3147 1874 3145 1874 3141 1874 3141 1874 3139 1873 3138 1873 3137 1873 3137 1873 3138 1872 3138 1872 3140 1872 3140 1872 3141 1872 3144 1873 3146 1873 3148 1874 3148 1874 3147 1874 M 3132 1876 3132 1876 3131 1875 3132 1875 3132 1874 3132 1874 3132 1874 3133 1874 3134 1874 3134 1874 3135 1875 3134 1875 3132 1876 M 3157 1877 3157 1877 3158 1877 3158 1877 3159 1877 3160 1878 3161 1879 3162 1879 3162 1879 3165 1881 3166 1881 3167 1882 3167 1882 3168 1882 3168 1882 3169 1882 3170 1883 3170 1883 3170 1884 3170 1884 3170 1884 3171 1884 3171 1885 3171 1885 3168 1884 3166 1882 3163 1881 3161 1879 3158 1879 3155 1878 3154 1878 3152 1877 3150 1876 3149 1876 3149 1876 3148 1876 3147 1876 3147 1875 3151 1876 3151 1876 3154 1876 3155 1877 3157 1878 3157 1877 M 3144 1877 3144 1877 3142 1877 3141 1877 3141 1876 3141 1876 3142 1876 3142 1876 3142 1876 3143 1876 3143 1876 3144 1876 3144 1876 3145 1876 3145 1876 3145 1876 3146 1876 3146 1876 3147 1876 3147 1876 3149 1876 3149 1877 3149 1877 3149 1877 3146 1877 3144 1877 M 3158 1881 3158 1881 3158 1880 3158 1880 3157 1880 3156 1880 3155 1880 3152 1880 3152 1880 3152 1879 3152 1879 3152 1879 3153 1879 3153 1879 3157 1880 3158 1880 3158 1880 3158 1881 3158 1881" />
+<path id="hu" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3218 1817 3218 1817 3216 1818 3215 1818 3215 1819 3215 1820 3214 1821 3214 1821 3213 1822 3213 1823 3213 1823 3212 1824 3211 1824 3210 1824 3208 1823 3208 1823 3208 1823 3207 1824 3207 1824 3207 1824 3206 1825 3206 1825 3206 1825 3205 1825 3204 1826 3204 1825 3203 1825 3203 1825 3202 1825 3200 1825 3199 1826 3199 1826 3199 1826 3198 1825 3196 1825 3194 1825 3192 1825 3190 1825 3190 1825 3189 1825 3188 1825 3187 1826 3187 1826 3186 1827 3183 1828 3181 1828 3181 1827 3180 1827 3179 1828 3176 1829 3176 1829 3176 1829 3175 1829 3175 1829 3174 1829 3172 1830 3172 1831 3171 1831 3169 1832 3169 1832 3168 1832 3166 1831 3166 1831 3166 1831 3165 1831 3163 1831 3161 1831 3157 1830 3157 1830 3157 1830 3157 1829 3156 1829 3154 1829 3153 1829 3153 1829 3152 1829 3152 1828 3151 1827 3151 1827 3150 1826 3149 1825 3149 1825 3147 1824 3146 1824 3146 1824 3145 1824 3145 1823 3145 1823 3145 1823 3145 1822 3144 1822 3143 1822 3141 1820 3141 1820 3140 1820 3139 1820 3137 1817 3137 1817 3137 1816 3136 1816 3136 1816 3136 1815 3136 1815 3136 1814 3135 1814 3135 1814 3134 1814 3133 1814 3133 1814 3132 1814 3133 1814 3135 1812 3135 1812 3135 1812 3136 1812 3137 1812 3138 1812 3139 1812 3139 1810 3138 1809 3137 1808 3138 1808 3138 1808 3138 1807 3138 1806 3138 1805 3138 1805 3140 1805 3141 1804 3142 1803 3142 1803 3141 1802 3141 1802 3140 1802 3138 1801 3137 1801 3138 1801 3139 1800 3140 1800 3141 1800 3142 1800 3142 1801 3143 1801 3144 1801 3145 1801 3146 1801 3147 1800 3148 1800 3148 1800 3147 1799 3147 1798 3147 1798 3148 1796 3149 1796 3149 1796 3149 1796 3150 1795 3151 1795 3151 1796 3152 1796 3152 1796 3153 1797 3154 1797 3154 1798 3154 1798 3158 1799 3159 1800 3161 1800 3161 1800 3162 1800 3164 1800 3165 1800 3166 1800 3167 1800 3168 1800 3169 1800 3169 1800 3170 1800 3171 1800 3172 1800 3173 1800 3173 1800 3173 1800 3174 1799 3175 1799 3175 1799 3176 1799 3176 1799 3176 1798 3175 1798 3175 1797 3175 1796 3176 1795 3176 1795 3177 1795 3178 1795 3178 1795 3178 1795 3179 1795 3181 1795 3182 1795 3186 1794 3186 1794 3187 1793 3187 1792 3189 1792 3189 1792 3191 1792 3191 1793 3193 1794 3193 1794 3194 1793 3195 1793 3195 1793 3196 1793 3197 1792 3198 1791 3199 1792 3200 1792 3200 1791 3200 1791 3201 1790 3201 1789 3201 1789 3202 1789 3202 1788 3202 1788 3203 1787 3205 1787 3206 1787 3208 1787 3208 1787 3208 1787 3210 1787 3212 1788 3213 1788 3214 1787 3215 1787 3217 1787 3219 1787 3220 1788 3220 1789 3222 1790 3223 1790 3224 1790 3224 1790 3225 1790 3226 1790 3227 1790 3227 1790 3228 1790 3229 1789 3229 1789 3229 1789 3230 1789 3231 1789 3231 1790 3232 1791 3232 1792 3234 1792 3234 1792 3236 1793 3236 1794 3236 1794 3236 1794 3237 1794 3237 1794 3238 1794 3239 1794 3240 1795 3240 1795 3240 1796 3241 1797 3239 1798 3237 1799 3237 1799 3236 1800 3235 1800 3234 1799 3234 1799 3234 1799 3232 1800 3231 1800 3230 1801 3229 1802 3229 1802 3229 1802 3229 1802 3228 1803 3227 1803 3227 1804 3227 1804 3227 1805 3227 1805 3227 1806 3226 1806 3226 1806 3225 1806 3224 1807 3224 1808 3224 1809 3223 1810 3222 1810 3222 1811 3221 1811 3221 1811 3221 1812 3221 1812 3220 1814 3219 1815 3218 1816 3219 1816 3218 1817 3218 1817" />
+<path id="is" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2523 1534 2523 1533 2524 1532 2527 1531 2528 1531 2529 1531 2529 1531 2529 1531 2530 1531 2530 1531 2532 1531 2531 1531 2530 1531 2530 1531 2529 1530 2529 1530 2529 1530 2530 1530 2531 1530 2531 1530 2530 1530 2528 1530 2524 1531 2523 1532 2522 1533 2521 1533 2521 1533 2520 1533 2518 1531 2517 1530 2518 1529 2519 1529 2519 1529 2518 1528 2517 1527 2515 1527 2513 1528 2513 1527 2510 1527 2510 1527 2508 1528 2507 1528 2505 1528 2505 1527 2504 1527 2504 1527 2503 1527 2503 1527 2501 1527 2499 1527 2498 1528 2498 1528 2497 1528 2497 1528 2494 1529 2494 1529 2493 1528 2493 1528 2493 1528 2491 1527 2491 1527 2491 1526 2493 1526 2494 1526 2494 1525 2495 1526 2495 1526 2496 1526 2496 1526 2497 1526 2497 1526 2497 1526 2498 1526 2499 1526 2499 1525 2499 1525 2500 1525 2502 1525 2504 1524 2504 1524 2504 1524 2505 1524 2508 1524 2508 1524 2514 1524 2514 1524 2515 1524 2515 1523 2518 1523 2518 1523 2519 1524 2520 1524 2521 1524 2521 1524 2524 1524 2526 1524 2527 1523 2528 1522 2528 1522 2528 1521 2527 1521 2527 1521 2527 1521 2526 1521 2526 1521 2526 1522 2526 1522 2525 1522 2524 1522 2523 1523 2522 1523 2519 1522 2515 1522 2515 1522 2516 1521 2517 1520 2518 1520 2519 1520 2519 1519 2520 1519 2520 1519 2521 1519 2523 1519 2523 1518 2524 1518 2525 1518 2526 1518 2527 1518 2527 1518 2527 1517 2528 1517 2528 1517 2527 1517 2526 1517 2525 1517 2524 1516 2523 1516 2522 1517 2521 1517 2520 1517 2520 1518 2520 1518 2519 1517 2518 1517 2518 1516 2519 1516 2519 1516 2519 1516 2520 1516 2520 1516 2521 1516 2521 1516 2522 1515 2522 1515 2521 1515 2521 1515 2521 1515 2520 1516 2520 1516 2519 1516 2519 1516 2516 1516 2516 1516 2514 1516 2513 1516 2512 1516 2512 1516 2511 1516 2510 1515 2509 1515 2507 1516 2507 1516 2506 1516 2505 1516 2504 1516 2504 1516 2504 1517 2504 1517 2503 1517 2502 1516 2498 1517 2497 1517 2496 1518 2496 1518 2496 1518 2494 1518 2493 1518 2492 1518 2492 1518 2492 1517 2492 1517 2491 1517 2489 1516 2487 1516 2485 1517 2484 1517 2484 1516 2483 1516 2484 1516 2485 1516 2486 1515 2486 1515 2486 1515 2486 1515 2487 1514 2487 1514 2489 1515 2489 1515 2489 1515 2490 1515 2491 1515 2491 1515 2493 1516 2494 1516 2494 1516 2495 1516 2493 1515 2491 1515 2491 1514 2491 1514 2490 1514 2491 1514 2492 1514 2493 1514 2493 1514 2495 1515 2495 1514 2494 1514 2494 1514 2493 1514 2493 1514 2492 1514 2492 1514 2491 1514 2491 1513 2491 1513 2491 1513 2490 1513 2490 1512 2490 1512 2490 1512 2490 1511 2491 1512 2493 1512 2494 1513 2496 1513 2497 1513 2498 1513 2498 1513 2498 1513 2499 1514 2499 1514 2499 1514 2501 1514 2502 1514 2502 1514 2501 1514 2500 1514 2499 1513 2499 1513 2500 1513 2500 1513 2500 1513 2501 1513 2502 1513 2504 1513 2504 1512 2505 1512 2504 1512 2504 1512 2504 1512 2503 1512 2501 1512 2499 1512 2499 1512 2498 1512 2496 1512 2496 1512 2496 1512 2495 1512 2494 1511 2494 1511 2494 1510 2494 1510 2494 1510 2494 1510 2494 1510 2495 1510 2495 1510 2497 1510 2497 1510 2501 1510 2504 1511 2504 1511 2504 1511 2503 1511 2502 1510 2501 1510 2499 1510 2498 1510 2498 1510 2496 1509 2495 1508 2495 1508 2495 1508 2495 1507 2495 1507 2495 1507 2496 1507 2497 1508 2498 1508 2499 1508 2501 1508 2501 1508 2502 1509 2501 1508 2501 1508 2499 1507 2499 1507 2499 1507 2498 1507 2498 1507 2498 1507 2497 1507 2498 1506 2499 1505 2500 1505 2501 1505 2502 1505 2503 1506 2505 1506 2507 1507 2508 1507 2508 1507 2508 1508 2511 1508 2511 1507 2512 1507 2513 1508 2514 1508 2514 1508 2514 1509 2514 1509 2514 1509 2514 1510 2514 1510 2514 1510 2513 1511 2513 1511 2513 1511 2513 1511 2515 1510 2515 1509 2516 1509 2517 1510 2517 1510 2517 1510 2517 1510 2516 1511 2516 1511 2516 1511 2517 1511 2517 1511 2517 1511 2517 1510 2517 1510 2517 1510 2517 1510 2517 1509 2517 1509 2516 1507 2514 1507 2514 1507 2513 1506 2512 1506 2512 1506 2511 1506 2510 1506 2510 1506 2509 1506 2509 1505 2508 1505 2508 1505 2508 1505 2508 1505 2509 1505 2510 1504 2510 1504 2511 1504 2512 1504 2513 1504 2514 1505 2515 1505 2516 1504 2517 1504 2516 1504 2516 1504 2515 1504 2515 1504 2513 1504 2512 1504 2510 1503 2509 1504 2508 1504 2507 1504 2507 1503 2506 1503 2506 1503 2505 1503 2505 1503 2505 1503 2505 1503 2506 1503 2507 1502 2506 1501 2509 1501 2509 1501 2510 1501 2512 1501 2514 1501 2517 1501 2519 1503 2520 1504 2522 1504 2524 1504 2527 1505 2528 1505 2528 1506 2529 1507 2529 1508 2529 1508 2530 1507 2531 1507 2533 1508 2533 1509 2531 1509 2531 1509 2530 1509 2530 1509 2530 1509 2531 1509 2531 1509 2532 1509 2533 1509 2533 1509 2534 1509 2535 1509 2535 1510 2535 1510 2535 1511 2534 1513 2533 1513 2533 1513 2532 1513 2530 1513 2529 1513 2529 1512 2529 1512 2529 1512 2528 1512 2527 1512 2529 1514 2530 1514 2530 1514 2530 1514 2531 1514 2532 1514 2532 1514 2532 1514 2533 1514 2533 1514 2535 1515 2535 1515 2535 1515 2535 1516 2535 1517 2536 1517 2537 1518 2537 1519 2538 1521 2538 1522 2538 1522 2539 1521 2538 1521 2538 1517 2538 1517 2538 1517 2539 1517 2539 1517 2539 1517 2540 1517 2540 1517 2540 1517 2540 1517 2540 1516 2541 1515 2541 1515 2541 1515 2542 1514 2544 1514 2545 1513 2545 1513 2546 1514 2545 1514 2545 1515 2545 1516 2548 1517 2548 1517 2548 1516 2550 1514 2551 1513 2551 1513 2551 1512 2551 1512 2551 1511 2550 1510 2549 1509 2549 1508 2549 1508 2549 1507 2553 1506 2554 1506 2556 1508 2557 1509 2557 1509 2558 1510 2558 1510 2559 1510 2559 1510 2560 1510 2560 1510 2560 1511 2561 1512 2561 1512 2561 1512 2561 1512 2562 1512 2564 1513 2565 1513 2565 1512 2565 1511 2565 1510 2564 1510 2564 1509 2564 1509 2564 1509 2564 1507 2565 1507 2565 1507 2567 1507 2568 1507 2569 1507 2570 1507 2570 1506 2570 1506 2570 1506 2570 1506 2572 1505 2572 1505 2574 1505 2575 1505 2577 1506 2577 1506 2577 1506 2579 1507 2579 1507 2579 1508 2579 1508 2579 1509 2579 1509 2580 1509 2581 1509 2582 1509 2582 1509 2582 1509 2583 1510 2584 1511 2585 1513 2586 1514 2586 1514 2586 1514 2587 1514 2587 1511 2586 1511 2586 1510 2585 1510 2585 1510 2585 1510 2585 1510 2584 1509 2583 1508 2582 1507 2582 1506 2583 1506 2584 1505 2584 1506 2585 1506 2586 1506 2587 1506 2588 1506 2588 1506 2589 1506 2591 1507 2592 1507 2592 1507 2594 1509 2597 1509 2598 1507 2598 1507 2599 1506 2600 1505 2600 1505 2601 1505 2602 1505 2603 1505 2603 1505 2604 1505 2604 1505 2605 1506 2608 1507 2610 1507 2609 1506 2608 1506 2611 1505 2611 1505 2611 1505 2612 1505 2612 1505 2613 1504 2613 1504 2613 1504 2611 1502 2610 1501 2610 1500 2611 1500 2611 1500 2612 1500 2613 1500 2614 1500 2616 1500 2617 1500 2619 1500 2620 1500 2621 1501 2622 1502 2622 1502 2624 1502 2624 1502 2625 1503 2624 1503 2624 1503 2624 1504 2623 1504 2624 1504 2624 1505 2626 1505 2629 1506 2630 1506 2630 1506 2630 1505 2630 1505 2632 1504 2633 1504 2633 1504 2634 1504 2634 1504 2635 1503 2635 1503 2636 1502 2636 1502 2636 1502 2637 1502 2637 1502 2637 1502 2638 1502 2638 1502 2640 1502 2640 1503 2639 1503 2636 1504 2636 1504 2635 1504 2636 1504 2636 1504 2636 1505 2636 1505 2636 1505 2636 1505 2636 1505 2636 1506 2635 1506 2634 1506 2633 1506 2633 1506 2633 1507 2633 1507 2635 1508 2636 1508 2638 1508 2639 1507 2639 1507 2640 1507 2640 1507 2640 1507 2641 1508 2641 1508 2642 1508 2642 1509 2642 1509 2641 1510 2641 1510 2640 1511 2639 1511 2639 1511 2639 1511 2638 1511 2638 1512 2638 1512 2638 1513 2638 1513 2638 1513 2639 1513 2639 1513 2641 1512 2641 1512 2645 1512 2645 1512 2646 1512 2646 1512 2646 1512 2646 1514 2645 1515 2643 1515 2643 1516 2643 1516 2643 1516 2642 1516 2643 1516 2646 1514 2647 1514 2647 1514 2648 1514 2651 1515 2652 1515 2652 1515 2652 1515 2653 1515 2654 1515 2656 1516 2658 1516 2658 1517 2657 1518 2657 1518 2656 1519 2657 1519 2658 1520 2658 1520 2658 1520 2658 1521 2657 1521 2657 1521 2657 1521 2656 1521 2655 1521 2655 1521 2654 1521 2651 1521 2651 1521 2652 1521 2652 1521 2653 1521 2653 1521 2654 1521 2657 1521 2657 1521 2657 1522 2658 1522 2659 1523 2659 1523 2658 1524 2658 1524 2658 1524 2658 1524 2657 1525 2657 1525 2657 1525 2655 1524 2655 1524 2654 1524 2654 1524 2653 1524 2653 1524 2652 1523 2651 1524 2653 1525 2655 1525 2655 1525 2656 1525 2656 1526 2656 1526 2655 1526 2654 1526 2652 1526 2651 1525 2651 1526 2651 1526 2651 1526 2652 1526 2652 1526 2653 1526 2654 1526 2654 1526 2655 1526 2655 1526 2655 1526 2655 1527 2654 1527 2653 1528 2653 1528 2651 1528 2651 1528 2651 1528 2651 1528 2652 1528 2651 1529 2650 1529 2650 1529 2648 1529 2647 1529 2646 1529 2646 1529 2646 1528 2645 1528 2644 1528 2644 1528 2644 1528 2644 1528 2643 1528 2644 1528 2645 1529 2646 1530 2646 1530 2645 1531 2644 1531 2644 1531 2643 1531 2643 1531 2642 1531 2642 1531 2642 1531 2642 1531 2643 1531 2643 1532 2644 1532 2644 1532 2644 1532 2643 1534 2642 1534 2642 1534 2640 1534 2637 1535 2637 1535 2637 1536 2637 1536 2636 1536 2636 1536 2634 1536 2634 1536 2632 1536 2631 1535 2629 1534 2629 1535 2629 1535 2630 1535 2630 1535 2629 1536 2628 1536 2628 1536 2627 1536 2625 1537 2625 1537 2624 1537 2623 1537 2619 1538 2619 1538 2619 1539 2617 1540 2616 1540 2616 1540 2616 1540 2615 1540 2614 1540 2613 1542 2612 1542 2612 1542 2612 1542 2610 1542 2607 1543 2605 1542 2604 1542 2604 1542 2603 1543 2603 1543 2603 1544 2602 1544 2601 1544 2600 1544 2600 1543 2599 1544 2599 1544 2598 1544 2592 1545 2590 1545 2590 1545 2590 1545 2588 1546 2588 1546 2588 1547 2589 1547 2590 1547 2590 1547 2589 1548 2589 1548 2588 1548 2586 1549 2585 1549 2585 1549 2583 1549 2578 1550 2576 1550 2576 1550 2575 1550 2570 1550 2567 1549 2565 1549 2562 1548 2562 1548 2560 1548 2559 1548 2558 1548 2558 1548 2555 1548 2554 1548 2554 1548 2554 1548 2553 1548 2553 1548 2552 1548 2552 1547 2548 1546 2547 1545 2547 1545 2547 1545 2547 1545 2547 1544 2548 1544 2548 1544 2549 1544 2549 1544 2549 1544 2550 1544 2550 1545 2551 1545 2550 1544 2550 1544 2549 1544 2548 1544 2547 1544 2547 1544 2546 1544 2546 1545 2545 1545 2544 1544 2544 1544 2545 1544 2545 1544 2546 1544 2545 1543 2545 1543 2544 1543 2543 1544 2542 1544 2542 1543 2541 1543 2540 1543 2539 1543 2539 1543 2538 1543 2538 1543 2537 1542 2537 1542 2536 1541 2537 1541 2537 1541 2537 1541 2538 1541 2539 1541 2537 1541 2537 1541 2536 1541 2535 1541 2535 1542 2534 1542 2534 1542 2533 1543 2530 1543 2529 1543 2529 1543 2529 1543 2528 1543 2526 1543 2525 1543 2524 1543 2523 1543 2521 1543 2520 1543 2518 1543 2517 1543 2513 1543 2513 1543 2512 1543 2512 1541 2512 1539 2512 1539 2512 1539 2513 1539 2513 1539 2513 1539 2513 1539 2513 1539 2514 1540 2515 1540 2515 1540 2515 1540 2515 1541 2516 1541 2517 1541 2517 1541 2517 1540 2518 1540 2520 1540 2520 1540 2520 1540 2520 1540 2521 1540 2523 1540 2524 1539 2525 1539 2525 1538 2524 1538 2524 1538 2526 1538 2526 1538 2528 1538 2528 1537 2527 1537 2526 1537 2526 1537 2526 1537 2526 1536 2527 1535 2528 1535 2529 1534 2530 1534 2530 1534 2530 1534 2531 1534 2532 1534 2533 1534 2534 1534 2534 1534 2532 1534 2530 1534 2529 1534 2529 1534 2528 1534 2528 1534 2527 1535 2527 1535 2527 1535 2525 1535 2524 1536 2523 1536 2522 1535 2523 1534" />
+<path id="id" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4398 2469 4398 2470 4398 2470 4398 2470 4397 2470 4397 2470 4396 2469 4396 2468 4396 2468 4396 2468 4398 2468 4398 2469 4398 2469 M 4514 2560 4514 2559 4514 2559 4515 2559 4515 2559 4517 2559 4517 2558 4518 2558 4518 2558 4518 2558 4519 2558 4523 2556 4523 2556 4523 2556 4523 2555 4523 2555 4523 2555 4523 2555 4524 2555 4526 2554 4526 2554 4526 2554 4526 2554 4527 2554 4527 2555 4528 2555 4532 2558 4532 2558 4532 2558 4532 2558 4532 2559 4532 2559 4532 2559 4532 2560 4533 2562 4533 2562 4533 2562 4533 2563 4533 2563 4533 2563 4532 2563 4531 2563 4530 2563 4530 2563 4529 2564 4527 2566 4527 2566 4526 2566 4526 2566 4525 2566 4525 2566 4525 2566 4525 2566 4524 2567 4525 2567 4525 2567 4526 2567 4527 2566 4528 2566 4528 2566 4528 2566 4528 2566 4527 2568 4527 2568 4527 2568 4526 2568 4527 2569 4528 2569 4529 2569 4529 2569 4530 2569 4530 2570 4530 2570 4529 2570 4528 2571 4527 2572 4526 2574 4527 2574 4528 2575 4528 2575 4529 2576 4531 2578 4531 2578 4532 2578 4532 2578 4534 2579 4534 2579 4534 2578 4535 2578 4535 2578 4535 2578 4536 2578 4538 2579 4538 2579 4540 2580 4540 2579 4542 2579 4542 2579 4542 2579 4542 2579 4542 2579 4543 2581 4543 2581 4543 2581 4543 2581 4542 2582 4542 2582 4543 2582 4543 2583 4543 2583 4543 2583 4543 2583 4543 2583 4543 2584 4543 2584 4543 2584 4543 2584 4543 2585 4543 2585 4543 2585 4543 2586 4543 2586 4543 2587 4543 2587 4543 2588 4544 2588 4544 2589 4544 2589 4544 2590 4545 2590 4545 2590 4545 2591 4545 2591 4545 2591 4545 2591 4544 2591 4544 2592 4544 2592 4544 2592 4544 2593 4544 2593 4544 2593 4544 2593 4544 2593 4544 2593 4545 2592 4545 2592 4545 2592 4545 2592 4546 2593 4546 2593 4548 2594 4548 2594 4549 2594 4549 2594 4549 2595 4550 2595 4550 2595 4550 2596 4550 2596 4550 2597 4550 2597 4550 2597 4550 2597 4550 2598 4548 2601 4548 2601 4548 2602 4548 2603 4547 2604 4547 2604 4547 2604 4546 2604 4546 2604 4546 2605 4545 2605 4545 2605 4545 2605 4545 2606 4545 2606 4545 2607 4545 2607 4545 2607 4545 2606 4545 2606 4545 2606 4546 2605 4546 2605 4547 2605 4547 2604 4547 2604 4548 2604 4548 2604 4548 2604 4548 2604 4548 2602 4548 2602 4548 2602 4549 2601 4550 2599 4550 2599 4550 2599 4552 2600 4552 2600 4552 2600 4553 2600 4553 2600 4554 2600 4555 2600 4555 2600 4555 2600 4556 2600 4556 2600 4556 2600 4557 2600 4557 2600 4557 2600 4558 2600 4560 2601 4562 2601 4562 2601 4562 2601 4562 2601 4562 2601 4562 2602 4562 2602 4562 2602 4562 2602 4562 2603 4562 2603 4562 2603 4562 2603 4562 2603 4562 2604 4562 2604 4562 2604 4562 2605 4563 2605 4563 2605 4563 2605 4564 2605 4564 2605 4564 2605 4565 2606 4565 2606 4565 2606 4565 2607 4565 2607 4565 2608 4565 2608 4565 2608 4565 2609 4565 2609 4565 2609 4565 2609 4566 2609 4566 2610 4566 2610 4566 2610 4567 2610 4567 2610 4567 2610 4568 2610 4568 2610 4568 2610 4568 2610 4569 2610 4569 2610 4569 2611 4569 2611 4569 2614 4569 2614 4569 2615 4569 2615 4569 2615 4568 2615 4568 2615 4568 2615 4568 2615 4567 2616 4567 2616 4567 2617 4566 2617 4566 2617 4566 2618 4566 2618 4565 2621 4565 2621 4565 2621 4565 2622 4565 2622 4565 2622 4566 2622 4566 2623 4567 2623 4567 2623 4567 2623 4567 2624 4567 2624 4567 2624 4567 2625 4567 2625 4566 2626 4566 2626 4566 2627 4566 2627 4566 2627 4566 2628 4565 2629 4565 2629 4565 2630 4565 2630 4565 2630 4565 2631 4565 2631 4565 2631 4565 2632 4565 2632 4566 2633 4566 2634 4567 2634 4567 2635 4566 2637 4566 2638 4566 2639 4566 2639 4566 2639 4566 2640 4566 2640 4566 2641 4566 2642 4566 2645 4565 2651 4565 2651 4565 2651 4565 2652 4565 2652 4565 2652 4565 2653 4565 2655 4565 2655 4565 2655 4565 2656 4564 2657 4562 2655 4558 2651 4557 2650 4556 2649 4556 2650 4555 2652 4555 2653 4556 2654 4556 2655 4555 2655 4554 2655 4553 2654 4552 2654 4550 2653 4549 2652 4548 2652 4548 2651 4548 2651 4548 2651 4547 2651 4547 2650 4547 2650 4547 2650 4546 2650 4546 2650 4545 2650 4545 2650 4545 2650 4545 2651 4545 2651 4545 2652 4545 2652 4545 2652 4545 2653 4546 2653 4546 2653 4546 2654 4546 2654 4547 2655 4547 2655 4547 2656 4548 2657 4547 2657 4547 2657 4547 2657 4546 2657 4545 2657 4545 2657 4545 2656 4545 2656 4545 2656 4545 2656 4543 2654 4542 2653 4541 2652 4541 2652 4541 2652 4541 2652 4540 2651 4540 2651 4539 2650 4538 2649 4536 2648 4536 2647 4535 2644 4534 2644 4532 2642 4531 2642 4531 2642 4530 2641 4530 2641 4529 2641 4529 2641 4527 2640 4527 2640 4526 2639 4525 2638 4525 2638 4525 2638 4524 2638 4524 2637 4522 2636 4522 2636 4521 2635 4521 2635 4518 2633 4518 2633 4517 2632 4516 2631 4515 2630 4514 2630 4514 2630 4513 2629 4513 2629 4512 2628 4511 2628 4510 2627 4509 2626 4509 2626 4509 2626 4509 2625 4509 2625 4509 2625 4508 2623 4508 2621 4508 2621 4508 2621 4507 2621 4506 2620 4504 2619 4502 2617 4499 2615 4498 2614 4498 2614 4498 2614 4496 2611 4496 2611 4496 2611 4496 2610 4495 2609 4493 2606 4493 2606 4493 2606 4493 2606 4492 2605 4492 2605 4491 2605 4491 2605 4490 2604 4490 2604 4490 2604 4490 2604 4490 2604 4489 2602 4489 2602 4488 2602 4487 2600 4487 2600 4486 2597 4486 2597 4486 2597 4486 2596 4486 2596 4486 2596 4486 2596 4486 2595 4486 2594 4486 2594 4486 2593 4486 2593 4486 2593 4486 2593 4484 2590 4483 2589 4483 2589 4483 2589 4483 2589 4483 2588 4482 2586 4482 2585 4482 2585 4481 2584 4481 2584 4479 2582 4478 2580 4478 2579 4478 2576 4478 2576 4477 2576 4477 2575 4476 2574 4475 2574 4475 2573 4474 2573 4474 2572 4474 2572 4474 2572 4474 2571 4473 2571 4472 2570 4472 2570 4472 2570 4471 2569 4469 2567 4469 2567 4468 2565 4468 2565 4468 2565 4468 2564 4469 2564 4468 2564 4468 2563 4468 2563 4468 2563 4467 2562 4466 2561 4466 2561 4466 2561 4462 2559 4462 2559 4461 2559 4461 2559 4461 2559 4461 2559 4460 2559 4460 2559 4460 2559 4460 2559 4459 2559 4459 2559 4458 2558 4458 2558 4459 2557 4458 2557 4458 2557 4458 2556 4458 2556 4458 2554 4458 2553 4457 2550 4457 2550 4456 2548 4454 2544 4454 2542 4453 2540 4452 2538 4452 2538 4452 2538 4452 2537 4452 2537 4452 2538 4452 2538 4452 2538 4452 2538 4453 2538 4453 2537 4453 2536 4453 2536 4453 2535 4452 2534 4452 2534 4452 2534 4449 2532 4449 2532 4449 2532 4448 2531 4448 2531 4447 2531 4444 2529 4443 2528 4442 2528 4442 2528 4442 2527 4441 2527 4439 2526 4439 2526 4439 2526 4439 2526 4439 2527 4439 2527 4438 2527 4436 2526 4436 2526 4435 2524 4435 2524 4435 2524 4435 2524 4435 2523 4435 2523 4435 2522 4435 2521 4435 2521 4435 2520 4434 2519 4434 2518 4434 2518 4434 2517 4434 2517 4434 2517 4434 2517 4433 2516 4433 2517 4433 2517 4431 2516 4431 2516 4430 2515 4430 2515 4430 2514 4429 2514 4429 2514 4429 2513 4429 2513 4429 2513 4429 2512 4429 2512 4429 2512 4428 2511 4428 2511 4428 2511 4427 2511 4427 2511 4426 2508 4425 2507 4425 2507 4424 2506 4422 2504 4422 2504 4421 2503 4421 2503 4420 2503 4419 2503 4418 2503 4418 2503 4418 2503 4417 2503 4417 2503 4417 2503 4417 2503 4416 2502 4416 2502 4415 2501 4415 2501 4415 2501 4414 2500 4414 2500 4413 2499 4413 2499 4413 2499 4413 2498 4413 2498 4411 2497 4411 2497 4411 2497 4411 2496 4411 2496 4410 2496 4409 2495 4409 2495 4408 2495 4407 2494 4407 2493 4406 2492 4403 2489 4403 2489 4402 2488 4401 2488 4399 2485 4397 2481 4397 2480 4397 2480 4397 2480 4396 2478 4396 2476 4396 2476 4396 2476 4396 2475 4396 2475 4396 2474 4397 2474 4398 2473 4399 2472 4399 2472 4399 2472 4402 2473 4402 2473 4404 2473 4406 2474 4407 2475 4407 2475 4407 2475 4407 2475 4407 2476 4407 2476 4408 2477 4409 2478 4409 2478 4410 2478 4410 2478 4414 2479 4415 2479 4415 2479 4417 2479 4418 2479 4419 2479 4419 2479 4420 2479 4420 2479 4420 2479 4421 2478 4421 2478 4421 2478 4421 2478 4422 2478 4424 2478 4425 2478 4426 2479 4426 2479 4427 2479 4427 2479 4427 2479 4427 2480 4427 2480 4427 2480 4427 2480 4428 2480 4428 2480 4428 2480 4428 2480 4430 2479 4431 2479 4431 2479 4432 2479 4432 2479 4433 2479 4433 2479 4433 2479 4434 2480 4434 2480 4434 2481 4435 2481 4435 2482 4437 2483 4439 2484 4439 2484 4439 2485 4439 2485 4440 2486 4440 2486 4440 2486 4440 2487 4440 2487 4440 2487 4440 2488 4441 2490 4441 2490 4442 2490 4443 2490 4443 2491 4445 2492 4445 2492 4445 2493 4445 2494 4445 2496 4445 2496 4446 2497 4447 2497 4448 2498 4449 2498 4449 2499 4450 2500 4451 2501 4452 2502 4452 2502 4453 2503 4453 2503 4454 2503 4454 2504 4455 2504 4455 2504 4456 2504 4457 2505 4459 2506 4460 2506 4460 2506 4460 2506 4460 2506 4465 2510 4465 2511 4465 2511 4465 2511 4466 2511 4467 2511 4468 2512 4471 2514 4472 2515 4472 2515 4472 2516 4472 2517 4472 2518 4472 2518 4472 2518 4472 2518 4472 2519 4472 2519 4472 2520 4472 2521 4473 2521 4473 2521 4472 2520 4472 2520 4472 2519 4472 2519 4472 2519 4472 2519 4473 2519 4473 2519 4473 2519 4473 2519 4473 2519 4473 2520 4473 2520 4473 2521 4474 2521 4474 2521 4474 2522 4474 2522 4474 2522 4474 2522 4474 2522 4474 2522 4474 2521 4474 2521 4474 2520 4474 2520 4474 2520 4474 2520 4475 2519 4475 2519 4475 2519 4475 2519 4476 2520 4477 2521 4477 2522 4477 2522 4478 2524 4478 2524 4478 2525 4478 2525 4479 2525 4479 2526 4479 2526 4479 2526 4480 2527 4480 2527 4481 2528 4481 2528 4482 2528 4482 2529 4482 2529 4482 2529 4483 2529 4483 2529 4483 2529 4483 2529 4485 2530 4486 2531 4486 2531 4486 2531 4486 2532 4486 2532 4486 2532 4486 2532 4486 2532 4487 2533 4487 2533 4487 2533 4487 2533 4487 2533 4487 2532 4487 2530 4486 2530 4486 2530 4486 2530 4485 2529 4485 2529 4485 2528 4485 2528 4485 2528 4485 2527 4485 2527 4485 2527 4485 2527 4485 2526 4486 2526 4486 2526 4486 2526 4487 2526 4489 2526 4489 2526 4489 2526 4489 2527 4489 2527 4489 2527 4491 2529 4492 2529 4493 2529 4493 2530 4493 2530 4493 2530 4493 2530 4493 2531 4493 2531 4493 2531 4493 2532 4493 2532 4494 2532 4494 2534 4494 2534 4494 2535 4495 2535 4495 2535 4495 2535 4495 2535 4497 2536 4497 2536 4497 2536 4498 2536 4498 2536 4498 2536 4498 2536 4499 2536 4499 2536 4500 2536 4500 2536 4500 2536 4500 2536 4501 2536 4502 2538 4504 2539 4504 2540 4505 2540 4505 2540 4506 2540 4506 2540 4506 2541 4507 2543 4507 2544 4507 2545 4507 2545 4507 2545 4507 2545 4507 2546 4507 2546 4508 2546 4508 2547 4508 2547 4511 2550 4512 2550 4512 2550 4512 2551 4512 2551 4513 2551 4513 2551 4513 2551 4514 2551 4514 2551 4516 2551 4518 2551 4518 2551 4519 2551 4519 2551 4519 2551 4519 2552 4520 2552 4520 2552 4521 2553 4521 2554 4521 2554 4522 2554 4522 2555 4522 2555 4522 2555 4521 2555 4521 2556 4521 2556 4519 2557 4517 2558 4516 2558 4514 2560 4514 2560 4513 2560 4513 2560 4513 2559 4512 2559 4512 2559 4512 2559 4512 2559 4511 2559 4513 2560 4513 2560 4513 2560 4513 2560 4514 2560 M 4899 2499 4899 2499 4899 2497 4899 2497 4899 2497 4900 2495 4900 2495 4900 2495 4899 2494 4899 2494 4899 2494 4899 2493 4899 2493 4899 2491 4899 2490 4899 2490 4900 2490 4901 2490 4901 2491 4902 2494 4902 2494 4901 2495 4900 2498 4900 2498 4900 2499 4899 2499 M 4647 2609 4647 2609 4647 2609 4647 2609 4645 2609 4645 2610 4644 2610 4644 2610 4644 2611 4643 2611 4643 2611 4643 2612 4643 2612 4642 2612 4642 2612 4642 2611 4642 2611 4642 2611 4642 2611 4642 2609 4642 2609 4642 2609 4641 2609 4641 2608 4641 2608 4641 2608 4641 2608 4640 2608 4640 2609 4638 2610 4638 2610 4637 2610 4637 2610 4637 2610 4636 2611 4636 2610 4636 2610 4636 2610 4635 2609 4635 2609 4636 2608 4636 2608 4636 2607 4636 2607 4636 2607 4636 2607 4636 2606 4635 2603 4634 2599 4634 2599 4634 2599 4634 2599 4634 2598 4633 2598 4633 2597 4633 2597 4634 2597 4634 2597 4634 2596 4634 2595 4634 2595 4634 2595 4633 2594 4633 2594 4633 2593 4633 2593 4632 2593 4631 2593 4631 2592 4631 2592 4631 2592 4630 2592 4630 2591 4631 2591 4631 2591 4631 2591 4631 2591 4632 2590 4632 2590 4632 2590 4632 2590 4632 2589 4633 2589 4633 2586 4633 2585 4633 2584 4633 2584 4633 2584 4633 2584 4633 2583 4632 2583 4632 2583 4631 2581 4630 2580 4628 2578 4627 2578 4626 2578 4626 2578 4625 2577 4625 2577 4625 2577 4625 2576 4623 2576 4623 2576 4623 2576 4623 2576 4623 2576 4623 2576 4623 2577 4623 2577 4622 2577 4622 2577 4622 2577 4621 2577 4620 2576 4620 2576 4620 2576 4620 2574 4620 2574 4620 2573 4620 2573 4624 2574 4624 2574 4624 2574 4624 2574 4623 2572 4622 2572 4622 2572 4622 2572 4621 2572 4620 2572 4620 2572 4619 2571 4618 2571 4618 2571 4618 2571 4618 2571 4618 2569 4617 2567 4617 2566 4617 2566 4617 2566 4617 2566 4617 2566 4618 2566 4619 2566 4619 2566 4619 2565 4619 2562 4619 2561 4618 2559 4618 2559 4618 2559 4617 2558 4617 2558 4617 2558 4617 2558 4616 2558 4616 2558 4616 2558 4615 2558 4615 2558 4615 2558 4615 2557 4615 2557 4615 2557 4615 2556 4615 2556 4615 2556 4615 2553 4615 2552 4614 2550 4614 2550 4614 2550 4614 2550 4614 2550 4614 2549 4614 2549 4614 2549 4615 2549 4615 2549 4615 2548 4615 2548 4615 2548 4616 2547 4616 2547 4616 2547 4616 2547 4616 2546 4616 2546 4615 2546 4615 2544 4617 2543 4617 2543 4618 2543 4619 2542 4619 2542 4620 2540 4620 2540 4620 2540 4619 2541 4619 2542 4618 2542 4618 2542 4617 2543 4616 2543 4616 2543 4616 2543 4616 2542 4616 2542 4616 2542 4617 2541 4617 2541 4617 2541 4617 2540 4617 2540 4617 2539 4617 2539 4617 2539 4617 2538 4617 2538 4617 2538 4617 2538 4617 2538 4618 2537 4618 2537 4619 2537 4619 2537 4619 2537 4619 2536 4620 2536 4620 2536 4620 2535 4620 2535 4621 2534 4621 2534 4621 2532 4623 2531 4625 2531 4626 2529 4626 2530 4625 2532 4625 2533 4625 2534 4625 2534 4626 2534 4626 2534 4627 2535 4627 2537 4627 2537 4627 2537 4628 2538 4628 2538 4629 2539 4631 2540 4632 2541 4632 2542 4632 2542 4633 2543 4633 2543 4634 2543 4634 2543 4634 2543 4634 2544 4635 2544 4635 2544 4635 2544 4637 2546 4639 2548 4640 2549 4641 2549 4641 2549 4641 2549 4642 2549 4643 2548 4645 2548 4645 2548 4645 2548 4645 2547 4646 2546 4646 2546 4647 2546 4648 2546 4648 2546 4648 2546 4651 2546 4651 2545 4652 2545 4653 2546 4654 2546 4654 2546 4655 2546 4657 2547 4658 2546 4658 2546 4659 2546 4659 2546 4659 2546 4659 2546 4660 2546 4661 2547 4661 2547 4661 2547 4661 2546 4662 2546 4662 2546 4662 2546 4662 2545 4663 2544 4663 2544 4663 2544 4664 2544 4665 2544 4665 2544 4665 2544 4666 2544 4666 2544 4667 2541 4667 2540 4667 2540 4667 2540 4667 2540 4667 2540 4667 2539 4669 2539 4671 2537 4672 2537 4675 2538 4678 2537 4679 2537 4680 2537 4680 2538 4681 2538 4682 2540 4685 2541 4686 2541 4686 2541 4687 2542 4689 2542 4690 2543 4690 2543 4690 2543 4690 2543 4692 2542 4693 2541 4694 2541 4694 2540 4694 2540 4695 2539 4695 2539 4695 2539 4696 2539 4696 2539 4696 2539 4697 2539 4700 2539 4700 2539 4702 2538 4702 2538 4702 2538 4703 2538 4703 2539 4703 2539 4703 2539 4704 2539 4704 2539 4704 2540 4705 2540 4705 2540 4705 2539 4705 2539 4707 2536 4707 2534 4708 2533 4709 2532 4710 2532 4710 2532 4710 2530 4710 2530 4710 2530 4709 2530 4709 2530 4709 2530 4708 2528 4708 2528 4708 2527 4709 2527 4709 2526 4710 2526 4710 2526 4711 2526 4711 2526 4711 2526 4712 2525 4713 2524 4715 2523 4715 2523 4715 2523 4715 2522 4716 2522 4715 2521 4715 2521 4715 2521 4714 2521 4714 2521 4714 2521 4713 2521 4713 2521 4714 2517 4714 2516 4714 2516 4716 2514 4717 2514 4717 2514 4717 2515 4717 2515 4718 2515 4720 2514 4720 2514 4720 2514 4720 2512 4720 2512 4720 2511 4720 2511 4720 2510 4720 2509 4720 2509 4721 2509 4721 2508 4721 2508 4721 2508 4721 2508 4722 2508 4722 2508 4722 2507 4721 2506 4721 2505 4721 2505 4721 2505 4721 2504 4721 2503 4721 2503 4722 2501 4722 2497 4722 2497 4722 2497 4723 2496 4723 2496 4724 2495 4724 2495 4725 2493 4726 2493 4726 2493 4726 2493 4727 2493 4728 2493 4728 2493 4728 2494 4729 2494 4729 2494 4729 2494 4730 2493 4730 2493 4733 2493 4735 2494 4735 2494 4735 2494 4735 2494 4736 2494 4736 2493 4738 2493 4739 2493 4741 2493 4742 2493 4742 2493 4742 2493 4743 2493 4743 2493 4744 2493 4747 2493 4747 2493 4747 2493 4747 2493 4747 2493 4748 2493 4748 2493 4750 2495 4750 2495 4750 2495 4751 2495 4751 2495 4751 2496 4751 2496 4752 2496 4752 2496 4753 2496 4752 2496 4752 2497 4750 2496 4750 2496 4750 2497 4750 2497 4750 2497 4751 2497 4752 2498 4754 2499 4753 2500 4753 2500 4752 2500 4752 2500 4754 2501 4754 2501 4754 2501 4755 2501 4755 2501 4755 2501 4756 2502 4756 2502 4756 2503 4756 2503 4757 2503 4757 2503 4756 2504 4756 2504 4755 2505 4752 2505 4749 2504 4747 2504 4746 2504 4745 2504 4745 2504 4744 2505 4745 2505 4745 2505 4745 2505 4745 2505 4746 2505 4747 2505 4747 2505 4747 2506 4747 2506 4747 2506 4747 2506 4747 2507 4748 2507 4749 2508 4749 2508 4750 2507 4751 2508 4751 2508 4751 2508 4751 2509 4751 2509 4749 2510 4749 2511 4748 2510 4748 2510 4748 2511 4749 2512 4751 2512 4754 2513 4755 2515 4754 2517 4754 2518 4755 2518 4755 2518 4756 2518 4756 2518 4756 2519 4756 2519 4756 2520 4756 2520 4757 2520 4757 2520 4757 2521 4757 2521 4757 2521 4758 2522 4759 2523 4759 2523 4760 2524 4761 2525 4761 2526 4761 2526 4761 2526 4761 2526 4761 2527 4761 2527 4759 2529 4758 2529 4757 2529 4757 2529 4757 2529 4757 2529 4758 2530 4758 2532 4758 2533 4758 2533 4761 2535 4762 2536 4762 2536 4764 2538 4764 2538 4766 2539 4767 2540 4768 2541 4768 2541 4769 2541 4769 2541 4769 2541 4771 2542 4772 2543 4772 2544 4772 2544 4772 2544 4773 2545 4774 2545 4774 2545 4775 2546 4776 2546 4776 2546 4776 2547 4776 2547 4776 2547 4775 2548 4775 2548 4775 2548 4773 2550 4773 2550 4772 2550 4772 2550 4772 2550 4772 2549 4771 2549 4771 2549 4770 2549 4770 2549 4768 2549 4765 2549 4763 2549 4762 2548 4762 2548 4761 2548 4761 2548 4761 2548 4761 2548 4760 2547 4760 2547 4760 2546 4760 2546 4760 2545 4759 2545 4758 2545 4758 2545 4758 2545 4758 2545 4758 2545 4759 2546 4759 2548 4760 2549 4760 2549 4760 2549 4760 2550 4760 2550 4760 2550 4760 2550 4760 2550 4759 2550 4759 2550 4759 2549 4759 2549 4759 2549 4758 2549 4758 2549 4757 2549 4757 2550 4756 2550 4756 2551 4755 2551 4755 2551 4755 2552 4755 2552 4755 2552 4754 2556 4753 2556 4753 2556 4752 2558 4751 2560 4751 2561 4751 2561 4752 2562 4752 2562 4752 2562 4752 2563 4752 2563 4752 2564 4752 2564 4751 2564 4751 2565 4751 2565 4751 2565 4751 2566 4751 2566 4751 2567 4751 2567 4751 2568 4751 2568 4751 2569 4751 2571 4752 2570 4752 2570 4753 2569 4753 2569 4754 2569 4754 2569 4754 2570 4753 2573 4753 2573 4754 2574 4754 2575 4754 2575 4754 2575 4754 2575 4751 2576 4749 2576 4748 2575 4748 2576 4748 2576 4747 2578 4746 2579 4746 2579 4745 2580 4744 2582 4744 2582 4744 2582 4744 2582 4744 2582 4743 2583 4742 2583 4741 2583 4741 2583 4740 2580 4740 2580 4740 2579 4740 2579 4740 2579 4740 2579 4739 2579 4739 2579 4739 2580 4739 2580 4739 2580 4739 2581 4739 2581 4740 2581 4740 2581 4740 2582 4740 2584 4740 2584 4740 2584 4740 2584 4739 2585 4738 2585 4738 2585 4738 2585 4737 2585 4737 2586 4736 2586 4736 2586 4736 2587 4736 2587 4736 2587 4737 2587 4737 2587 4737 2588 4737 2588 4737 2588 4737 2588 4736 2588 4736 2589 4734 2589 4733 2590 4731 2591 4731 2591 4732 2591 4732 2591 4732 2591 4733 2591 4733 2591 4733 2591 4733 2591 4734 2591 4734 2591 4735 2591 4735 2591 4735 2593 4735 2595 4735 2595 4735 2596 4734 2596 4734 2596 4733 2597 4734 2598 4734 2598 4735 2598 4735 2597 4736 2597 4736 2597 4736 2597 4736 2597 4737 2597 4737 2598 4737 2598 4737 2599 4737 2599 4737 2600 4737 2600 4737 2601 4737 2602 4736 2602 4736 2603 4736 2603 4736 2603 4736 2603 4735 2603 4735 2603 4735 2603 4735 2603 4735 2602 4735 2602 4735 2602 4733 2603 4733 2604 4734 2605 4734 2608 4734 2608 4734 2608 4733 2609 4733 2609 4732 2610 4732 2610 4732 2611 4732 2611 4731 2611 4731 2610 4731 2610 4731 2610 4731 2610 4731 2609 4731 2609 4730 2608 4730 2607 4730 2608 4730 2609 4730 2609 4730 2610 4731 2611 4731 2612 4731 2613 4731 2613 4731 2613 4729 2615 4729 2615 4729 2615 4728 2617 4728 2617 4728 2618 4728 2618 4728 2618 4728 2619 4728 2620 4728 2620 4727 2620 4727 2620 4727 2620 4727 2620 4726 2620 4726 2620 4725 2620 4725 2620 4725 2621 4725 2621 4725 2621 4724 2621 4724 2622 4724 2622 4724 2622 4724 2622 4721 2623 4718 2624 4717 2625 4716 2625 4715 2625 4712 2626 4712 2627 4711 2627 4711 2627 4710 2627 4710 2627 4709 2628 4708 2629 4707 2629 4707 2629 4706 2629 4706 2629 4706 2629 4706 2629 4706 2628 4706 2628 4706 2625 4706 2622 4706 2622 4706 2621 4705 2621 4705 2621 4705 2620 4704 2619 4704 2618 4703 2618 4703 2618 4703 2618 4703 2618 4702 2618 4701 2617 4701 2617 4701 2617 4700 2617 4699 2617 4697 2616 4696 2616 4694 2617 4694 2618 4693 2618 4692 2618 4692 2618 4691 2618 4691 2618 4691 2618 4690 2618 4690 2618 4690 2618 4690 2617 4690 2617 4690 2617 4690 2616 4690 2616 4690 2615 4690 2615 4690 2614 4690 2614 4690 2614 4690 2613 4690 2613 4688 2613 4687 2613 4687 2613 4687 2614 4687 2614 4687 2614 4687 2614 4686 2615 4685 2614 4684 2613 4684 2613 4682 2611 4681 2610 4680 2610 4679 2611 4679 2612 4679 2612 4679 2612 4679 2612 4679 2613 4679 2613 4679 2614 4679 2614 4677 2615 4677 2615 4676 2616 4675 2616 4675 2617 4675 2617 4674 2617 4674 2617 4674 2617 4673 2618 4672 2618 4672 2617 4671 2617 4671 2617 4671 2616 4671 2616 4670 2616 4669 2616 4669 2615 4669 2615 4668 2615 4668 2615 4667 2616 4667 2616 4667 2616 4666 2616 4666 2616 4665 2617 4663 2619 4663 2619 4663 2620 4662 2620 4662 2620 4662 2620 4662 2619 4661 2619 4661 2619 4661 2618 4661 2618 4661 2618 4661 2617 4661 2617 4661 2616 4661 2616 4661 2616 4661 2615 4661 2615 4661 2615 4661 2614 4661 2613 4661 2612 4661 2612 4661 2612 4661 2611 4661 2611 4661 2611 4661 2610 4661 2610 4661 2610 4660 2609 4660 2609 4660 2609 4660 2607 4660 2607 4660 2607 4660 2606 4660 2606 4659 2607 4659 2607 4659 2607 4659 2609 4659 2609 4659 2610 4657 2611 4657 2611 4657 2611 4657 2611 4657 2611 4656 2611 4656 2610 4656 2610 4656 2610 4656 2610 4655 2609 4655 2609 4655 2609 4653 2609 4653 2609 4653 2609 4652 2610 4651 2610 4650 2611 4650 2611 4649 2611 4649 2611 4649 2612 4647 2612 4647 2612 4647 2612 4646 2612 4644 2611 4644 2611 4644 2611 4644 2610 4644 2610 4645 2610 4645 2610 4645 2610 4646 2609 4646 2609 4647 2609 4647 2609 M 4601 2501 4601 2501 4601 2500 4600 2499 4600 2498 4600 2498 4601 2497 4601 2497 4601 2497 4603 2496 4603 2495 4604 2496 4604 2496 4604 2497 4604 2497 4606 2498 4606 2499 4606 2499 4606 2501 4606 2501 4606 2502 4606 2502 4605 2504 4605 2504 4603 2504 4602 2504 4602 2503 4602 2503 4602 2503 4603 2502 4603 2502 4603 2502 4603 2502 4601 2501 M 4755 2496 4755 2496 4757 2496 4758 2496 4758 2496 4758 2496 4758 2496 4759 2498 4758 2498 4758 2498 4758 2498 4758 2498 4758 2498 4757 2498 4757 2498 4757 2498 4757 2498 4755 2496 4755 2496 M 4754 2497 4754 2497 4754 2497 4754 2496 4754 2496 4754 2496 4756 2497 4756 2498 4756 2498 4755 2499 4755 2499 4755 2499 4755 2499 4754 2499 4753 2498 4753 2498 4753 2498 4753 2497 4753 2497 4754 2497 M 4899 2502 4899 2502 4898 2502 4897 2499 4897 2498 4897 2498 4898 2498 4899 2500 4899 2500 4899 2502 4899 2502 M 4886 2509 4885 2509 4884 2508 4883 2506 4882 2504 4882 2504 4882 2504 4882 2503 4882 2503 4882 2503 4882 2503 4883 2503 4884 2503 4884 2503 4884 2504 4884 2504 4886 2507 4886 2508 4886 2509 4886 2509 4886 2509 M 4748 2505 4748 2505 4748 2505 4748 2505 4750 2506 4752 2507 4752 2507 4752 2507 4752 2507 4751 2507 4751 2507 4751 2507 4750 2507 4750 2507 4750 2507 4750 2507 4749 2507 4749 2507 4749 2507 4748 2507 4748 2507 4748 2507 4748 2507 4748 2506 4747 2506 4747 2506 4747 2506 4747 2505 4748 2505 M 4753 2508 4753 2508 4754 2508 4754 2508 4754 2508 4754 2508 4755 2508 4755 2508 4755 2508 4754 2510 4754 2510 4753 2510 4752 2509 4752 2508 4752 2508 4752 2508 4752 2508 4753 2508 M 4563 2517 4563 2517 4563 2514 4563 2514 4563 2514 4565 2515 4566 2515 4565 2516 4564 2517 4564 2517 4564 2517 4563 2517 M 4612 2516 4613 2516 4613 2516 4613 2516 4613 2516 4613 2515 4613 2515 4613 2515 4614 2515 4614 2515 4614 2515 4614 2515 4614 2515 4614 2516 4613 2517 4613 2517 4612 2516 4612 2516 M 4416 2525 4416 2525 4416 2525 4415 2525 4415 2525 4414 2525 4413 2525 4413 2525 4413 2524 4413 2524 4409 2521 4409 2521 4409 2521 4406 2520 4406 2520 4405 2520 4404 2518 4403 2518 4403 2518 4403 2517 4404 2517 4405 2516 4406 2516 4406 2516 4407 2516 4407 2516 4407 2516 4408 2518 4408 2518 4409 2518 4409 2518 4409 2518 4410 2518 4410 2519 4410 2519 4410 2519 4411 2520 4412 2520 4413 2521 4414 2522 4415 2522 4415 2523 4416 2523 4416 2524 4416 2524 4416 2525 M 4879 2519 4878 2519 4878 2519 4878 2519 4878 2520 4878 2520 4878 2520 4878 2520 4878 2520 4878 2520 4878 2521 4878 2521 4878 2520 4877 2519 4877 2519 4877 2519 4878 2518 4878 2518 4878 2518 4878 2518 4879 2518 4879 2518 4879 2518 4879 2519 M 4924 2530 4923 2529 4923 2529 4923 2527 4923 2526 4924 2524 4924 2524 4925 2523 4926 2521 4927 2521 4928 2520 4929 2521 4930 2523 4931 2523 4931 2523 4931 2524 4930 2524 4930 2526 4930 2526 4929 2527 4929 2527 4929 2529 4928 2530 4927 2530 4927 2530 4927 2530 4926 2530 4926 2530 4926 2530 4925 2530 4924 2530 M 4430 2530 4430 2530 4429 2530 4429 2530 4429 2529 4429 2529 4429 2529 4428 2528 4428 2528 4427 2528 4427 2527 4426 2527 4426 2527 4426 2527 4427 2527 4429 2527 4429 2528 4430 2528 4430 2529 4430 2530 4430 2530 M 4918 2570 4918 2569 4918 2569 4917 2569 4917 2568 4916 2568 4916 2568 4915 2567 4915 2567 4914 2566 4914 2565 4915 2561 4914 2559 4914 2557 4913 2557 4913 2556 4912 2554 4912 2553 4912 2551 4913 2551 4913 2550 4913 2549 4913 2549 4913 2549 4912 2548 4911 2548 4912 2547 4911 2546 4911 2546 4910 2546 4910 2546 4910 2546 4910 2544 4910 2543 4910 2543 4910 2542 4911 2542 4911 2541 4912 2540 4912 2539 4912 2539 4912 2539 4912 2538 4913 2535 4914 2533 4914 2532 4915 2532 4918 2528 4919 2527 4920 2527 4920 2528 4920 2529 4920 2529 4919 2531 4918 2531 4918 2531 4917 2532 4917 2533 4917 2534 4918 2534 4918 2534 4919 2534 4919 2534 4919 2535 4920 2535 4920 2538 4919 2541 4918 2543 4918 2543 4917 2544 4914 2546 4914 2547 4913 2547 4914 2548 4914 2548 4916 2550 4916 2550 4916 2550 4917 2550 4917 2549 4918 2549 4918 2548 4918 2547 4919 2545 4920 2545 4921 2545 4922 2545 4922 2544 4922 2544 4923 2543 4922 2543 4922 2543 4922 2543 4922 2542 4922 2541 4922 2540 4923 2540 4925 2538 4926 2538 4927 2538 4927 2538 4928 2537 4929 2537 4930 2537 4930 2537 4931 2537 4931 2538 4931 2545 4930 2546 4927 2548 4926 2548 4926 2548 4925 2548 4925 2548 4924 2548 4923 2550 4923 2550 4923 2551 4924 2552 4925 2552 4925 2552 4925 2552 4927 2553 4929 2554 4930 2554 4930 2554 4931 2556 4930 2556 4930 2557 4931 2557 4932 2557 4933 2558 4933 2558 4934 2559 4933 2559 4933 2559 4932 2558 4932 2558 4931 2558 4930 2558 4929 2558 4928 2557 4927 2557 4927 2556 4927 2556 4925 2556 4925 2556 4924 2556 4923 2556 4922 2556 4922 2555 4921 2555 4919 2555 4919 2555 4918 2555 4918 2556 4918 2558 4918 2558 4918 2560 4918 2561 4918 2561 4918 2561 4918 2562 4918 2563 4918 2563 4919 2567 4920 2569 4920 2569 4921 2570 4921 2571 4922 2572 4922 2572 4923 2574 4924 2575 4925 2576 4926 2577 4924 2577 4923 2576 4923 2576 4923 2576 4922 2575 4920 2574 4920 2574 4920 2573 4919 2572 4919 2571 4918 2570 M 4501 2532 4500 2532 4500 2533 4500 2533 4500 2533 4500 2533 4500 2534 4500 2534 4500 2534 4499 2535 4498 2535 4498 2535 4498 2535 4498 2535 4497 2535 4497 2535 4497 2535 4496 2535 4496 2535 4496 2535 4495 2534 4495 2534 4494 2532 4494 2532 4495 2531 4495 2530 4495 2530 4495 2530 4495 2530 4495 2529 4498 2529 4498 2529 4499 2529 4499 2529 4499 2529 4499 2529 4501 2531 4501 2531 4501 2531 4501 2532 M 4450 2537 4449 2537 4448 2537 4448 2537 4447 2536 4447 2536 4447 2536 4447 2536 4447 2535 4448 2535 4448 2535 4449 2536 4450 2536 4450 2537 4450 2537 4450 2537 M 4823 2589 4823 2589 4822 2589 4821 2590 4820 2590 4820 2591 4820 2591 4820 2591 4820 2591 4820 2592 4819 2592 4819 2593 4818 2593 4818 2593 4817 2593 4817 2593 4816 2593 4816 2593 4816 2593 4816 2593 4815 2592 4813 2591 4813 2591 4812 2591 4812 2591 4812 2592 4812 2592 4813 2594 4813 2594 4814 2594 4815 2595 4816 2597 4817 2597 4817 2597 4817 2597 4818 2597 4818 2597 4818 2597 4818 2597 4818 2597 4819 2597 4819 2597 4821 2599 4823 2603 4824 2605 4826 2607 4826 2607 4829 2609 4829 2609 4829 2609 4829 2609 4828 2610 4828 2610 4828 2611 4828 2611 4828 2611 4828 2611 4830 2612 4830 2613 4830 2613 4830 2612 4831 2613 4831 2613 4831 2614 4830 2614 4829 2614 4829 2614 4829 2614 4828 2615 4828 2617 4828 2617 4828 2617 4828 2618 4828 2619 4828 2619 4828 2619 4827 2619 4827 2619 4827 2619 4827 2620 4827 2620 4827 2620 4827 2621 4828 2621 4829 2622 4831 2623 4833 2625 4833 2626 4834 2628 4835 2629 4835 2629 4837 2629 4837 2628 4836 2628 4836 2628 4836 2628 4836 2627 4836 2627 4836 2627 4837 2627 4837 2627 4837 2628 4838 2628 4838 2628 4838 2629 4838 2630 4838 2631 4838 2632 4838 2633 4838 2633 4837 2633 4836 2634 4836 2634 4834 2634 4834 2634 4834 2634 4834 2633 4834 2633 4834 2633 4833 2633 4833 2633 4832 2633 4832 2633 4831 2633 4829 2634 4828 2634 4827 2634 4825 2635 4825 2635 4825 2635 4825 2636 4825 2636 4824 2637 4824 2637 4824 2637 4824 2638 4824 2638 4824 2638 4825 2638 4825 2639 4825 2639 4825 2639 4825 2639 4825 2639 4825 2640 4825 2640 4823 2640 4823 2640 4822 2640 4819 2640 4816 2638 4816 2638 4815 2637 4815 2636 4815 2635 4816 2634 4817 2630 4817 2630 4817 2630 4817 2629 4818 2629 4818 2628 4818 2628 4818 2628 4817 2627 4817 2627 4817 2627 4817 2627 4816 2627 4815 2626 4814 2626 4814 2626 4813 2626 4813 2626 4813 2626 4813 2625 4813 2625 4812 2623 4811 2623 4811 2623 4810 2622 4807 2620 4806 2620 4806 2619 4806 2619 4806 2618 4805 2618 4805 2618 4806 2617 4806 2617 4806 2617 4806 2617 4807 2615 4808 2614 4809 2614 4809 2609 4809 2609 4809 2607 4809 2606 4809 2606 4808 2605 4807 2605 4805 2604 4804 2604 4803 2605 4802 2605 4801 2606 4798 2608 4795 2610 4796 2613 4797 2614 4798 2614 4798 2614 4798 2615 4798 2615 4798 2615 4798 2616 4798 2619 4798 2619 4798 2619 4798 2620 4798 2620 4799 2622 4799 2622 4799 2622 4798 2623 4798 2624 4798 2624 4797 2625 4797 2625 4797 2626 4797 2628 4797 2628 4797 2629 4798 2629 4798 2629 4798 2629 4798 2631 4797 2632 4797 2633 4797 2633 4798 2633 4798 2633 4798 2634 4798 2634 4798 2636 4798 2637 4798 2639 4797 2640 4797 2640 4797 2640 4797 2641 4797 2642 4797 2642 4797 2642 4796 2643 4796 2644 4796 2645 4796 2645 4797 2647 4798 2648 4799 2650 4799 2652 4799 2652 4799 2652 4798 2652 4798 2651 4798 2651 4797 2651 4797 2651 4797 2651 4797 2651 4797 2651 4797 2651 4795 2651 4795 2651 4795 2651 4794 2652 4794 2652 4793 2652 4793 2652 4793 2652 4793 2652 4792 2652 4792 2652 4791 2651 4791 2651 4791 2651 4790 2651 4789 2652 4789 2653 4789 2653 4789 2653 4789 2653 4788 2654 4788 2654 4788 2654 4787 2654 4786 2654 4786 2653 4786 2653 4786 2653 4786 2653 4786 2652 4785 2652 4784 2652 4783 2651 4782 2649 4782 2649 4781 2649 4781 2648 4781 2648 4782 2645 4782 2645 4782 2645 4782 2644 4783 2643 4784 2641 4784 2640 4784 2640 4784 2640 4784 2639 4784 2639 4784 2638 4784 2638 4784 2638 4784 2637 4785 2636 4785 2635 4786 2632 4786 2632 4786 2629 4785 2627 4785 2626 4784 2624 4783 2622 4783 2621 4783 2620 4784 2620 4784 2620 4784 2620 4784 2619 4784 2618 4781 2617 4781 2617 4780 2617 4780 2618 4779 2618 4779 2618 4779 2618 4779 2618 4778 2618 4777 2618 4776 2619 4776 2619 4775 2619 4775 2619 4775 2620 4775 2620 4775 2620 4773 2617 4773 2616 4773 2616 4773 2612 4773 2611 4773 2611 4774 2609 4774 2608 4774 2608 4774 2608 4773 2608 4773 2608 4773 2608 4772 2608 4772 2608 4772 2607 4772 2607 4772 2605 4772 2605 4772 2605 4773 2605 4773 2604 4773 2605 4774 2605 4774 2605 4774 2605 4774 2605 4776 2604 4778 2602 4778 2601 4778 2601 4778 2601 4778 2600 4778 2600 4778 2599 4778 2598 4779 2595 4779 2595 4779 2594 4779 2594 4780 2594 4780 2594 4781 2594 4781 2594 4781 2594 4781 2594 4781 2593 4782 2592 4781 2592 4781 2592 4781 2591 4781 2591 4780 2590 4780 2589 4781 2589 4781 2588 4781 2588 4781 2587 4780 2586 4780 2585 4781 2583 4781 2582 4781 2582 4781 2581 4782 2581 4783 2580 4783 2580 4783 2580 4783 2579 4783 2579 4783 2579 4783 2578 4784 2577 4784 2576 4784 2576 4785 2576 4785 2576 4786 2575 4786 2574 4787 2574 4787 2573 4787 2573 4787 2573 4788 2574 4788 2575 4788 2575 4788 2575 4788 2575 4788 2576 4789 2576 4789 2576 4789 2576 4789 2577 4789 2576 4789 2576 4789 2576 4790 2576 4790 2575 4790 2575 4789 2574 4789 2574 4789 2573 4789 2573 4789 2573 4788 2573 4788 2571 4788 2570 4788 2570 4788 2569 4788 2568 4788 2567 4788 2567 4788 2566 4788 2566 4789 2566 4789 2565 4788 2564 4788 2564 4787 2564 4787 2565 4787 2564 4787 2564 4787 2564 4786 2564 4786 2564 4786 2563 4786 2563 4786 2562 4786 2562 4787 2562 4787 2562 4787 2562 4787 2563 4788 2563 4788 2563 4788 2563 4788 2564 4788 2564 4789 2564 4789 2564 4789 2564 4789 2563 4789 2563 4790 2562 4790 2562 4790 2561 4790 2561 4790 2561 4790 2561 4789 2561 4789 2560 4789 2560 4789 2560 4789 2560 4788 2559 4788 2559 4788 2559 4788 2559 4790 2555 4790 2555 4790 2555 4791 2555 4791 2555 4791 2555 4792 2555 4792 2555 4792 2554 4792 2554 4792 2554 4792 2554 4792 2553 4792 2553 4792 2553 4792 2553 4792 2552 4792 2552 4792 2551 4792 2551 4793 2551 4793 2551 4793 2551 4793 2551 4794 2551 4794 2550 4795 2550 4795 2550 4795 2550 4795 2550 4795 2549 4795 2549 4795 2548 4795 2548 4796 2547 4796 2547 4796 2547 4796 2547 4797 2547 4797 2547 4797 2547 4797 2547 4797 2547 4797 2548 4797 2548 4797 2548 4797 2549 4797 2549 4798 2550 4798 2550 4799 2550 4801 2550 4801 2550 4801 2549 4801 2548 4801 2548 4802 2547 4803 2547 4804 2546 4804 2545 4805 2543 4805 2543 4805 2543 4805 2542 4805 2542 4805 2542 4805 2541 4807 2541 4807 2541 4808 2541 4808 2541 4809 2541 4809 2541 4810 2541 4810 2542 4810 2542 4810 2542 4811 2542 4811 2543 4811 2543 4812 2543 4812 2543 4814 2543 4814 2543 4815 2544 4815 2544 4815 2544 4816 2545 4816 2545 4816 2545 4817 2546 4817 2546 4817 2546 4820 2545 4822 2545 4822 2545 4823 2545 4823 2546 4823 2546 4823 2546 4823 2546 4824 2546 4824 2546 4824 2546 4825 2546 4825 2546 4825 2546 4825 2546 4827 2546 4828 2546 4829 2546 4830 2546 4831 2547 4834 2547 4834 2548 4834 2548 4836 2549 4837 2549 4837 2549 4837 2549 4837 2549 4838 2549 4838 2549 4839 2548 4840 2547 4843 2547 4843 2547 4846 2548 4847 2548 4848 2549 4849 2549 4849 2548 4849 2548 4851 2549 4853 2549 4853 2549 4854 2549 4855 2548 4858 2547 4860 2546 4860 2546 4861 2546 4861 2545 4861 2545 4861 2544 4861 2544 4862 2544 4862 2543 4863 2543 4863 2543 4865 2544 4865 2543 4865 2543 4865 2543 4865 2542 4865 2542 4865 2542 4864 2542 4864 2542 4864 2542 4864 2542 4864 2541 4864 2541 4864 2541 4865 2540 4865 2540 4866 2540 4866 2540 4866 2540 4866 2540 4867 2540 4867 2540 4867 2540 4869 2539 4869 2539 4869 2539 4869 2539 4869 2538 4869 2538 4869 2538 4869 2538 4869 2537 4869 2537 4871 2535 4872 2535 4874 2536 4874 2536 4874 2537 4874 2537 4874 2537 4874 2537 4874 2537 4874 2538 4875 2538 4875 2538 4876 2538 4875 2539 4875 2539 4875 2539 4875 2539 4875 2539 4875 2540 4874 2540 4874 2540 4874 2540 4873 2541 4873 2541 4873 2541 4873 2542 4873 2542 4873 2542 4872 2543 4872 2543 4871 2545 4871 2545 4870 2547 4869 2547 4869 2547 4869 2548 4867 2549 4866 2550 4865 2552 4865 2552 4865 2552 4864 2553 4863 2555 4861 2556 4859 2557 4859 2557 4859 2557 4859 2557 4857 2557 4855 2557 4853 2557 4852 2558 4850 2558 4849 2558 4846 2558 4846 2558 4845 2558 4845 2558 4844 2558 4844 2558 4844 2557 4844 2557 4843 2557 4843 2557 4842 2556 4842 2556 4842 2555 4841 2555 4841 2554 4840 2555 4840 2555 4840 2555 4839 2555 4839 2555 4836 2555 4833 2555 4832 2555 4831 2555 4830 2555 4830 2555 4829 2555 4829 2555 4827 2555 4824 2555 4824 2555 4824 2555 4824 2555 4824 2555 4823 2555 4822 2556 4821 2556 4820 2556 4820 2556 4820 2555 4819 2555 4819 2554 4819 2554 4819 2554 4819 2554 4816 2554 4816 2554 4816 2554 4816 2554 4816 2555 4816 2555 4816 2555 4815 2555 4813 2555 4813 2555 4813 2555 4812 2555 4812 2555 4812 2555 4811 2555 4810 2555 4810 2556 4810 2556 4810 2556 4809 2556 4809 2556 4805 2555 4804 2555 4803 2554 4802 2554 4802 2554 4800 2554 4800 2554 4800 2554 4799 2554 4798 2555 4798 2555 4797 2556 4797 2556 4796 2556 4796 2557 4794 2559 4794 2560 4794 2560 4793 2561 4793 2561 4793 2561 4793 2562 4793 2563 4793 2563 4793 2563 4792 2563 4792 2563 4792 2564 4792 2566 4792 2566 4792 2566 4792 2567 4792 2568 4793 2572 4793 2573 4793 2573 4793 2574 4794 2575 4795 2575 4796 2577 4796 2577 4796 2577 4797 2577 4797 2578 4797 2578 4797 2577 4797 2577 4798 2577 4798 2577 4798 2577 4798 2577 4798 2577 4800 2578 4800 2578 4801 2580 4801 2580 4801 2580 4801 2580 4801 2581 4801 2581 4801 2583 4802 2584 4802 2584 4802 2585 4803 2585 4803 2584 4804 2584 4805 2584 4805 2584 4805 2584 4805 2585 4805 2585 4806 2585 4808 2585 4809 2585 4809 2585 4809 2585 4810 2584 4810 2584 4810 2583 4810 2583 4811 2583 4811 2582 4811 2582 4815 2577 4815 2577 4816 2576 4816 2576 4817 2575 4818 2575 4818 2575 4818 2575 4818 2576 4818 2576 4818 2576 4818 2576 4818 2577 4818 2577 4819 2577 4819 2578 4819 2578 4820 2578 4822 2578 4825 2577 4825 2577 4826 2577 4826 2577 4826 2577 4826 2576 4826 2576 4826 2576 4826 2575 4826 2575 4827 2575 4827 2575 4827 2575 4831 2574 4833 2575 4834 2575 4836 2575 4838 2575 4839 2574 4839 2574 4838 2574 4837 2574 4837 2574 4836 2574 4836 2573 4835 2573 4835 2573 4837 2572 4838 2572 4839 2572 4839 2572 4839 2572 4840 2572 4840 2572 4840 2572 4840 2572 4841 2571 4841 2571 4843 2572 4843 2572 4844 2572 4844 2572 4844 2572 4845 2572 4846 2573 4847 2575 4847 2576 4846 2576 4846 2576 4846 2577 4846 2577 4846 2577 4846 2578 4846 2579 4846 2579 4845 2579 4845 2579 4845 2579 4845 2579 4844 2579 4844 2579 4843 2579 4842 2578 4842 2577 4841 2577 4837 2577 4837 2577 4837 2577 4836 2577 4836 2578 4836 2578 4836 2578 4836 2579 4836 2579 4835 2580 4834 2582 4833 2583 4831 2585 4830 2586 4830 2586 4829 2587 4828 2588 4826 2588 4825 2588 4824 2589 4823 2589 M 4512 2540 4512 2541 4512 2542 4512 2542 4512 2542 4512 2542 4512 2542 4512 2542 4511 2542 4510 2541 4510 2540 4509 2540 4509 2540 4509 2540 4509 2540 4508 2540 4508 2540 4508 2540 4507 2540 4507 2539 4507 2539 4506 2539 4506 2539 4506 2539 4506 2539 4505 2538 4505 2538 4505 2538 4504 2538 4504 2537 4504 2537 4504 2537 4504 2537 4505 2537 4505 2537 4505 2537 4505 2537 4506 2537 4506 2537 4507 2537 4507 2537 4508 2538 4509 2538 4509 2538 4510 2538 4511 2538 4511 2538 4511 2538 4512 2538 4512 2539 4512 2539 4512 2539 4512 2539 4512 2540 M 4437 2554 4435 2553 4435 2553 4435 2553 4435 2551 4434 2550 4434 2549 4434 2549 4431 2546 4430 2546 4430 2545 4429 2544 4428 2542 4427 2541 4426 2540 4427 2540 4428 2540 4428 2540 4429 2539 4430 2539 4431 2539 4432 2539 4433 2540 4433 2540 4433 2540 4435 2544 4436 2544 4437 2544 4439 2546 4439 2547 4439 2548 4439 2548 4439 2549 4438 2550 4438 2551 4438 2551 4438 2552 4438 2553 4437 2554 4437 2554 M 4512 2543 4511 2544 4511 2545 4511 2546 4511 2546 4511 2546 4512 2546 4512 2547 4512 2547 4512 2547 4511 2548 4510 2548 4510 2548 4509 2546 4509 2546 4508 2546 4508 2546 4508 2545 4508 2545 4507 2542 4507 2542 4507 2540 4508 2540 4508 2540 4508 2540 4508 2540 4509 2540 4509 2540 4509 2540 4512 2542 4512 2543 4512 2543 4512 2543 4512 2543 M 4547 2546 4546 2547 4546 2548 4546 2549 4545 2549 4545 2549 4545 2549 4545 2549 4544 2549 4544 2548 4543 2547 4542 2546 4541 2547 4541 2547 4541 2547 4540 2546 4540 2546 4540 2545 4540 2545 4541 2544 4543 2543 4545 2544 4546 2545 4546 2545 4547 2545 4547 2546 4547 2546 4547 2546 M 4539 2544 4539 2545 4538 2546 4538 2547 4537 2547 4537 2547 4536 2546 4535 2546 4535 2546 4535 2546 4535 2546 4535 2545 4535 2545 4536 2544 4537 2544 4538 2544 4538 2544 4538 2544 4538 2544 4538 2544 4539 2544 4539 2544 M 4519 2545 4520 2545 4521 2546 4521 2546 4522 2547 4523 2548 4523 2548 4523 2548 4523 2549 4523 2549 4523 2549 4522 2549 4522 2549 4522 2549 4522 2549 4522 2549 4521 2549 4519 2548 4517 2547 4516 2546 4516 2546 4515 2546 4515 2546 4515 2544 4516 2544 4516 2544 4516 2544 4517 2544 4517 2544 4517 2544 4517 2544 4518 2544 4518 2544 4519 2545 M 4520 2551 4519 2550 4519 2550 4519 2550 4519 2550 4518 2550 4518 2550 4518 2550 4515 2550 4515 2550 4515 2550 4514 2550 4514 2550 4513 2550 4513 2550 4513 2550 4512 2550 4512 2550 4512 2549 4511 2549 4511 2548 4511 2548 4511 2548 4511 2548 4512 2548 4512 2547 4512 2547 4512 2547 4512 2547 4512 2547 4512 2546 4512 2546 4512 2545 4512 2545 4512 2545 4512 2545 4512 2544 4512 2544 4513 2544 4513 2544 4513 2545 4513 2545 4514 2546 4514 2546 4514 2547 4515 2547 4516 2546 4516 2546 4517 2547 4518 2548 4519 2548 4520 2549 4521 2549 4521 2549 4521 2550 4521 2550 4521 2550 4521 2550 4521 2550 4521 2551 4521 2551 4521 2551 4520 2551 4520 2551 M 4527 2546 4527 2547 4527 2547 4526 2546 4525 2546 4525 2546 4525 2545 4525 2545 4526 2545 4526 2545 4526 2544 4526 2545 4526 2545 4526 2545 4526 2545 4527 2546 4527 2546 M 4539 2550 4539 2549 4539 2549 4538 2549 4538 2549 4538 2548 4538 2548 4538 2547 4538 2547 4540 2549 4540 2549 4540 2549 4540 2549 4539 2550 M 4528 2551 4528 2551 4528 2551 4528 2552 4528 2552 4527 2552 4527 2552 4527 2552 4527 2552 4527 2552 4526 2551 4526 2550 4526 2550 4526 2550 4526 2549 4526 2549 4526 2548 4526 2548 4527 2549 4528 2550 4528 2550 4528 2551 4528 2551 M 4525 2553 4525 2553 4525 2554 4525 2554 4525 2554 4524 2554 4523 2554 4523 2554 4523 2554 4523 2554 4522 2554 4522 2554 4522 2553 4522 2553 4522 2553 4523 2552 4523 2552 4523 2552 4523 2552 4523 2551 4523 2551 4524 2551 4524 2551 4524 2552 4525 2552 4525 2552 4525 2553 4525 2553 M 4547 2562 4547 2562 4547 2562 4547 2562 4546 2561 4545 2560 4545 2560 4544 2559 4545 2559 4547 2562 4547 2562 4547 2562 4547 2562 M 4453 2561 4452 2561 4450 2561 4449 2561 4449 2561 4449 2561 4448 2560 4449 2560 4449 2560 4449 2560 4450 2560 4452 2560 4453 2560 4453 2560 4453 2561 4454 2561 4454 2561 4453 2561 M 4944 2566 4943 2565 4941 2563 4940 2562 4940 2562 4940 2562 4941 2562 4941 2562 4944 2565 4944 2565 4944 2566 4944 2566 4944 2566 M 4551 2568 4550 2567 4550 2567 4549 2567 4548 2566 4547 2566 4547 2566 4547 2566 4546 2566 4546 2566 4545 2567 4545 2567 4543 2566 4543 2566 4543 2566 4543 2565 4543 2565 4543 2565 4543 2565 4544 2565 4544 2564 4544 2564 4544 2564 4544 2563 4544 2563 4544 2563 4544 2563 4544 2562 4545 2562 4545 2562 4546 2563 4546 2563 4546 2563 4547 2563 4547 2563 4548 2565 4549 2566 4550 2566 4551 2566 4551 2567 4551 2568 M 4449 2569 4448 2567 4448 2567 4446 2564 4445 2563 4445 2563 4446 2562 4446 2562 4447 2562 4447 2563 4447 2563 4448 2564 4448 2564 4448 2564 4448 2564 4448 2565 4448 2565 4448 2566 4448 2566 4448 2566 4449 2566 4449 2567 4449 2567 4449 2567 4449 2567 4449 2567 4449 2568 4449 2569 M 4965 2570 4964 2570 4964 2570 4964 2570 4963 2570 4963 2569 4962 2568 4962 2567 4962 2568 4961 2568 4960 2568 4960 2567 4959 2567 4958 2567 4957 2567 4955 2566 4955 2566 4955 2566 4956 2566 4958 2566 4958 2566 4958 2565 4957 2565 4957 2565 4957 2565 4956 2565 4956 2565 4956 2564 4957 2564 4958 2564 4962 2563 4963 2563 4963 2563 4964 2563 4963 2563 4964 2563 4965 2563 4965 2563 4965 2563 4968 2564 4970 2564 4972 2565 4972 2565 4972 2566 4973 2567 4972 2567 4972 2568 4972 2568 4971 2569 4971 2569 4970 2568 4969 2568 4968 2568 4967 2568 4967 2568 4966 2567 4965 2567 4964 2566 4963 2564 4962 2564 4961 2564 4961 2565 4963 2566 4965 2567 4966 2567 4966 2568 4966 2568 4966 2569 4966 2569 4966 2569 4965 2570 4965 2570 M 4532 2567 4532 2567 4532 2567 4532 2567 4532 2568 4532 2568 4532 2568 4532 2568 4530 2569 4529 2569 4529 2569 4528 2568 4527 2568 4528 2567 4528 2567 4528 2567 4529 2566 4529 2566 4529 2566 4530 2566 4530 2566 4532 2567 M 4448 2570 4448 2571 4446 2572 4445 2571 4445 2571 4446 2568 4446 2568 4447 2566 4447 2566 4447 2567 4447 2567 4448 2567 4448 2568 4448 2568 4448 2569 4448 2570 M 4907 2567 4908 2567 4908 2569 4908 2570 4908 2570 4907 2571 4907 2571 4906 2571 4906 2571 4905 2571 4905 2570 4905 2567 4906 2567 4906 2567 4906 2567 4907 2567 4907 2567 4907 2567 4907 2567 M 4912 2567 4913 2568 4914 2569 4914 2570 4914 2570 4914 2570 4914 2571 4914 2571 4914 2571 4914 2571 4913 2571 4913 2572 4913 2572 4913 2572 4913 2572 4913 2572 4913 2573 4914 2574 4914 2574 4914 2574 4914 2574 4915 2574 4915 2574 4916 2574 4917 2574 4917 2574 4918 2575 4918 2575 4917 2576 4917 2576 4916 2576 4916 2577 4915 2577 4914 2576 4914 2576 4913 2575 4912 2575 4911 2576 4911 2576 4911 2575 4911 2575 4910 2575 4910 2575 4910 2574 4910 2572 4909 2572 4908 2571 4908 2570 4908 2570 4909 2568 4909 2568 4909 2568 4910 2568 4910 2568 4911 2568 4912 2567 M 4824 2569 4824 2569 4824 2569 4824 2569 4822 2569 4822 2569 4822 2569 4821 2568 4821 2568 4822 2568 4822 2568 4822 2568 4823 2568 4823 2567 4824 2568 4824 2569 M 4544 2568 4545 2568 4545 2570 4546 2570 4546 2570 4546 2570 4544 2572 4544 2573 4542 2572 4540 2570 4541 2569 4541 2569 4541 2568 4544 2568 4544 2568 4544 2568 M 5127 2708 5126 2708 5126 2708 5126 2708 5126 2708 5125 2707 5125 2707 5125 2707 5125 2707 5124 2707 5124 2706 5123 2705 5123 2705 5122 2704 5121 2704 5121 2703 5121 2703 5121 2703 5120 2702 5119 2700 5119 2700 5116 2698 5115 2697 5114 2696 5113 2695 5112 2695 5112 2695 5112 2695 5112 2694 5111 2694 5111 2693 5111 2693 5111 2692 5111 2692 5111 2692 5112 2692 5112 2691 5113 2689 5113 2688 5112 2689 5112 2690 5112 2691 5112 2691 5112 2691 5112 2691 5111 2691 5111 2692 5110 2692 5110 2692 5109 2692 5108 2692 5107 2692 5107 2692 5105 2692 5105 2692 5105 2692 5104 2693 5104 2693 5104 2693 5104 2693 5103 2693 5102 2694 5101 2694 5101 2694 5101 2694 5100 2693 5100 2693 5100 2693 5099 2693 5099 2692 5099 2692 5099 2692 5096 2693 5095 2694 5095 2694 5095 2694 5094 2695 5094 2695 5094 2695 5093 2693 5093 2693 5093 2693 5093 2692 5093 2692 5094 2691 5094 2689 5094 2689 5094 2689 5094 2689 5094 2689 5095 2688 5095 2688 5095 2688 5095 2688 5095 2687 5095 2687 5095 2687 5095 2687 5095 2686 5096 2685 5096 2684 5096 2684 5096 2684 5097 2684 5097 2684 5097 2683 5097 2683 5096 2683 5096 2683 5095 2683 5095 2683 5094 2682 5094 2681 5094 2680 5093 2680 5093 2680 5093 2680 5093 2679 5092 2679 5091 2679 5090 2678 5090 2678 5090 2678 5090 2678 5090 2678 5090 2677 5094 2678 5094 2678 5094 2678 5095 2678 5095 2678 5095 2678 5096 2678 5096 2678 5096 2678 5097 2678 5097 2678 5098 2678 5098 2678 5098 2678 5099 2677 5098 2677 5098 2678 5097 2678 5097 2678 5096 2678 5093 2677 5091 2676 5091 2676 5088 2674 5088 2673 5088 2673 5088 2673 5088 2673 5088 2673 5089 2672 5089 2672 5089 2672 5090 2672 5090 2673 5091 2673 5091 2673 5091 2673 5091 2673 5092 2672 5092 2672 5093 2672 5094 2672 5094 2672 5095 2672 5095 2672 5095 2672 5095 2673 5096 2673 5096 2673 5096 2674 5097 2674 5097 2674 5097 2674 5097 2674 5098 2674 5098 2674 5097 2674 5097 2674 5097 2674 5097 2673 5096 2673 5096 2673 5096 2672 5095 2672 5095 2672 5095 2672 5094 2672 5094 2672 5094 2672 5093 2672 5092 2671 5090 2670 5090 2670 5090 2670 5090 2669 5090 2669 5090 2669 5090 2669 5090 2669 5090 2668 5088 2666 5087 2665 5087 2665 5087 2665 5086 2664 5086 2663 5086 2663 5085 2663 5085 2662 5085 2662 5085 2662 5085 2661 5085 2661 5085 2660 5085 2660 5084 2659 5084 2658 5084 2656 5084 2656 5083 2656 5082 2656 5082 2655 5082 2655 5082 2655 5082 2655 5082 2654 5083 2654 5085 2653 5085 2653 5084 2653 5083 2653 5083 2653 5082 2654 5082 2654 5081 2654 5080 2654 5080 2653 5080 2653 5080 2652 5080 2652 5080 2652 5080 2651 5080 2649 5080 2649 5080 2649 5080 2649 5080 2650 5078 2649 5076 2647 5075 2647 5074 2646 5073 2646 5073 2646 5072 2645 5072 2645 5072 2645 5073 2645 5071 2645 5070 2644 5069 2644 5068 2643 5067 2642 5067 2642 5067 2643 5063 2642 5060 2641 5060 2641 5060 2641 5057 2640 5056 2639 5055 2638 5053 2637 5052 2637 5051 2637 5050 2637 5048 2636 5047 2635 5047 2635 5047 2635 5047 2635 5046 2634 5046 2634 5044 2634 5043 2634 5043 2634 5043 2634 5042 2634 5041 2634 5041 2634 5040 2634 5038 2633 5037 2633 5037 2633 5037 2633 5036 2634 5035 2634 5035 2634 5035 2634 5035 2634 5035 2634 5034 2634 5033 2633 5032 2633 5031 2632 5028 2630 5027 2630 5026 2628 5026 2628 5026 2626 5026 2626 5026 2625 5027 2625 5029 2626 5029 2626 5030 2626 5030 2626 5030 2626 5031 2626 5031 2625 5030 2625 5027 2625 5027 2625 5026 2625 5025 2626 5025 2626 5025 2626 5025 2626 5025 2627 5024 2627 5024 2627 5023 2626 5022 2625 5022 2625 5021 2625 5021 2625 5021 2626 5021 2626 5020 2627 5019 2626 5018 2625 5018 2625 5018 2624 5018 2624 5018 2624 5018 2623 5018 2623 5018 2623 5017 2622 5016 2623 5016 2623 5014 2622 5013 2620 5012 2620 5012 2620 5012 2620 5012 2621 5012 2621 5012 2621 5011 2621 5011 2621 5010 2619 5009 2618 5009 2618 5010 2618 5010 2618 5010 2618 5010 2617 5010 2617 5010 2617 5011 2616 5010 2615 5010 2615 5010 2615 5011 2613 5012 2613 5013 2612 5013 2612 5013 2611 5013 2611 5013 2610 5011 2611 5011 2612 5010 2612 5010 2613 5010 2613 5010 2613 5010 2615 5010 2616 5010 2616 5010 2617 5009 2617 5008 2617 5008 2618 5008 2618 5009 2619 5009 2619 5008 2620 5008 2620 5007 2621 5006 2622 5006 2622 5006 2622 5006 2623 5006 2623 5006 2624 5006 2624 5007 2624 5007 2624 5004 2627 5003 2628 5003 2628 5003 2628 5002 2628 5001 2627 5000 2627 5000 2627 5000 2628 4999 2628 4999 2628 4998 2628 4998 2628 4997 2627 4996 2625 4997 2625 4996 2625 4996 2624 4996 2623 4995 2622 4996 2621 4998 2620 4998 2620 4998 2619 4998 2619 4997 2618 4997 2618 4997 2618 4996 2618 4996 2616 4996 2616 4996 2616 4996 2616 4996 2615 4996 2615 4996 2615 4996 2615 4995 2615 4995 2615 4995 2615 4995 2616 4995 2616 4995 2616 4994 2616 4994 2616 4994 2615 4993 2614 4993 2613 4992 2612 4992 2612 4991 2611 4991 2611 4988 2610 4988 2609 4988 2609 4987 2609 4986 2609 4986 2610 4985 2610 4985 2610 4983 2607 4983 2607 4985 2606 4986 2606 4986 2605 4986 2605 4987 2605 4987 2605 4988 2605 4991 2606 4992 2606 4993 2606 4993 2606 4994 2607 4994 2607 4994 2607 4994 2607 4995 2607 4995 2607 4995 2607 4995 2607 4996 2607 4997 2606 4997 2606 4998 2605 4998 2604 4999 2603 4999 2603 5000 2602 5000 2602 5001 2602 5001 2602 5002 2601 5003 2601 5004 2602 5004 2602 5005 2603 5007 2603 5008 2603 5009 2603 5010 2603 5010 2604 5010 2604 5010 2605 5010 2606 5010 2606 5010 2606 5011 2603 5011 2603 5011 2603 5011 2603 5011 2603 5011 2603 5011 2603 5011 2603 5012 2604 5012 2605 5012 2605 5012 2604 5012 2603 5012 2603 5012 2602 5012 2602 5013 2601 5013 2601 5014 2601 5015 2600 5015 2598 5015 2598 5014 2598 5014 2599 5013 2599 5012 2599 5012 2599 5012 2599 5012 2598 5012 2598 5013 2598 5014 2598 5014 2597 5014 2596 5013 2596 5012 2597 5010 2598 5008 2598 5006 2598 5006 2598 5006 2598 5004 2598 5003 2598 5001 2598 4999 2599 4999 2599 4998 2599 4998 2599 4998 2599 4997 2599 4997 2599 4997 2598 4996 2598 4996 2598 4996 2599 4996 2599 4994 2599 4994 2599 4994 2599 4993 2599 4993 2599 4993 2598 4993 2598 4993 2598 4993 2598 4993 2597 4992 2598 4992 2598 4992 2598 4991 2598 4991 2598 4990 2598 4990 2598 4990 2598 4990 2599 4989 2599 4989 2599 4988 2599 4988 2599 4988 2599 4988 2598 4986 2597 4986 2597 4985 2597 4984 2596 4983 2594 4982 2593 4982 2592 4982 2591 4983 2591 4983 2590 4981 2589 4980 2588 4979 2588 4979 2588 4979 2587 4979 2587 4977 2586 4977 2586 4972 2585 4972 2585 4972 2585 4972 2585 4972 2585 4973 2585 4973 2586 4973 2586 4972 2586 4972 2586 4972 2586 4971 2587 4970 2586 4970 2586 4970 2586 4969 2586 4969 2586 4968 2586 4967 2585 4968 2584 4968 2583 4968 2582 4969 2582 4969 2582 4970 2582 4970 2582 4970 2582 4970 2582 4971 2580 4971 2580 4972 2577 4972 2577 4971 2576 4974 2575 4974 2575 4976 2574 4976 2574 4976 2574 4977 2575 4980 2574 4980 2574 4981 2574 4981 2574 4981 2574 4981 2573 4982 2573 4982 2573 4982 2572 4985 2570 4986 2569 4986 2569 4986 2569 4988 2569 4990 2568 4990 2568 4992 2568 4995 2568 4995 2569 4996 2569 4997 2570 5001 2571 5002 2571 5002 2571 5003 2572 5004 2573 5005 2573 5005 2574 5005 2574 5006 2574 5006 2574 5006 2574 5007 2574 5008 2575 5011 2575 5011 2574 5011 2574 5015 2574 5015 2574 5015 2574 5017 2576 5017 2577 5016 2577 5016 2578 5017 2580 5017 2581 5018 2581 5018 2582 5018 2582 5019 2582 5019 2582 5020 2584 5020 2584 5019 2585 5019 2585 5019 2585 5019 2585 5019 2586 5019 2587 5019 2587 5018 2588 5017 2589 5017 2589 5017 2593 5018 2593 5017 2595 5018 2600 5018 2601 5018 2601 5019 2601 5019 2601 5019 2601 5020 2603 5021 2604 5021 2605 5023 2608 5023 2608 5023 2608 5023 2608 5024 2608 5024 2607 5024 2607 5023 2607 5023 2606 5023 2604 5023 2604 5023 2603 5023 2603 5023 2603 5024 2602 5024 2602 5025 2603 5026 2603 5026 2603 5026 2603 5026 2604 5026 2605 5026 2606 5026 2606 5026 2607 5026 2608 5026 2610 5027 2610 5027 2610 5027 2610 5027 2610 5028 2610 5028 2610 5028 2609 5028 2609 5029 2609 5029 2609 5029 2609 5029 2609 5029 2610 5029 2611 5029 2611 5029 2611 5028 2611 5028 2612 5029 2614 5029 2615 5031 2616 5031 2616 5033 2616 5037 2617 5037 2617 5039 2616 5039 2616 5039 2616 5040 2616 5040 2616 5040 2616 5040 2615 5040 2615 5040 2615 5040 2614 5040 2614 5041 2614 5041 2613 5042 2613 5043 2613 5043 2613 5043 2612 5043 2612 5043 2612 5043 2612 5043 2611 5045 2611 5045 2611 5046 2610 5046 2610 5046 2610 5046 2610 5046 2609 5046 2609 5047 2607 5048 2606 5048 2606 5048 2606 5049 2605 5050 2605 5050 2605 5051 2604 5051 2604 5051 2604 5051 2604 5051 2603 5052 2603 5052 2603 5053 2600 5053 2600 5053 2600 5053 2599 5053 2599 5053 2599 5053 2598 5054 2598 5054 2598 5055 2598 5056 2598 5056 2598 5056 2598 5057 2598 5057 2598 5058 2599 5059 2598 5060 2598 5060 2598 5061 2598 5063 2597 5064 2596 5065 2596 5065 2596 5065 2596 5066 2596 5066 2596 5067 2596 5067 2595 5067 2594 5066 2594 5066 2594 5066 2593 5065 2593 5065 2592 5065 2592 5065 2591 5065 2591 5065 2591 5066 2591 5067 2591 5067 2590 5069 2590 5071 2589 5071 2588 5071 2588 5073 2588 5073 2587 5074 2587 5074 2587 5075 2587 5075 2587 5076 2586 5077 2586 5077 2586 5077 2586 5078 2586 5078 2587 5078 2587 5079 2587 5080 2588 5085 2590 5086 2590 5088 2591 5088 2591 5089 2591 5089 2591 5089 2591 5090 2591 5090 2591 5090 2592 5091 2592 5091 2592 5091 2592 5091 2593 5092 2593 5092 2593 5092 2593 5093 2594 5093 2594 5093 2594 5093 2594 5094 2594 5094 2594 5094 2594 5094 2594 5095 2594 5095 2594 5096 2594 5101 2597 5102 2597 5102 2597 5102 2597 5104 2599 5107 2600 5108 2600 5108 2600 5108 2600 5109 2600 5109 2600 5110 2600 5112 2600 5113 2600 5113 2600 5114 2600 5114 2600 5114 2600 5114 2600 5114 2601 5116 2602 5116 2602 5117 2602 5117 2601 5119 2601 5120 2602 5121 2602 5122 2602 5123 2602 5123 2602 5123 2603 5123 2603 5123 2603 5123 2603 5122 2604 5122 2604 5122 2604 5123 2605 5123 2605 5123 2604 5124 2604 5124 2604 5127 2604 5127 2604 5127 2604 5127 2641 5127 2658 5127 2664 5127 2664 5127 2664 5126 2665 5126 2666 5126 2666 5126 2666 5126 2666 5125 2668 5125 2668 5125 2669 5125 2670 5125 2671 5125 2671 5126 2672 5126 2673 5127 2673 5127 2673 5127 2673 5127 2673 5127 2708 M 4822 2570 4822 2570 4822 2570 4822 2571 4822 2571 4822 2571 4822 2571 4821 2570 4821 2570 4819 2570 4819 2571 4819 2571 4819 2571 4818 2571 4818 2571 4818 2571 4819 2570 4819 2569 4821 2569 4821 2569 4822 2569 4822 2569 4822 2570 4822 2570 4822 2570 4822 2570 M 4962 2569 4962 2569 4962 2570 4962 2570 4962 2571 4962 2571 4962 2571 4961 2571 4961 2571 4961 2571 4959 2571 4959 2570 4959 2570 4961 2569 4961 2569 4962 2569 M 4907 2572 4908 2572 4908 2574 4909 2575 4908 2575 4906 2575 4906 2575 4906 2575 4906 2575 4906 2575 4906 2574 4906 2573 4907 2572 4907 2572 4907 2572 4907 2572 M 5039 2573 5039 2573 5040 2573 5041 2573 5042 2573 5043 2574 5044 2574 5044 2574 5045 2574 5045 2574 5048 2576 5049 2578 5050 2579 5051 2579 5051 2579 5053 2580 5053 2580 5053 2581 5052 2581 5051 2582 5050 2582 5049 2582 5049 2582 5048 2582 5048 2581 5048 2581 5047 2581 5047 2581 5046 2582 5045 2581 5045 2581 5044 2578 5044 2577 5044 2577 5043 2576 5043 2576 5043 2576 5041 2576 5041 2576 5040 2575 5040 2575 5039 2575 5039 2575 5039 2575 5038 2575 5038 2574 5037 2573 5037 2573 5039 2573 M 4965 2575 4966 2575 4966 2575 4966 2576 4965 2576 4965 2576 4964 2576 4962 2577 4961 2577 4960 2577 4959 2577 4958 2577 4958 2577 4958 2577 4958 2577 4959 2576 4959 2576 4961 2576 4963 2576 4964 2575 4965 2575 M 4968 2577 4968 2577 4969 2578 4969 2580 4968 2580 4968 2582 4968 2582 4967 2584 4967 2584 4967 2584 4967 2584 4965 2584 4965 2583 4963 2582 4963 2582 4963 2581 4963 2581 4962 2580 4963 2580 4963 2580 4963 2579 4962 2579 4962 2579 4962 2578 4962 2578 4962 2578 4962 2578 4965 2577 4965 2577 4965 2577 4966 2577 4966 2577 4966 2577 4967 2577 4967 2577 4968 2577 M 4461 2590 4460 2589 4460 2589 4460 2588 4459 2589 4460 2589 4460 2590 4460 2590 4460 2591 4458 2591 4458 2591 4457 2591 4457 2591 4454 2589 4453 2588 4454 2588 4453 2587 4453 2587 4452 2585 4452 2585 4451 2584 4450 2583 4450 2582 4450 2581 4450 2581 4450 2580 4451 2580 4451 2579 4451 2578 4451 2578 4451 2578 4452 2578 4453 2578 4454 2577 4454 2577 4455 2578 4456 2580 4457 2582 4457 2583 4458 2584 4460 2588 4460 2588 4461 2588 4461 2590 4461 2590 4461 2590 M 5030 2578 5030 2578 5031 2579 5031 2580 5031 2580 5031 2580 5030 2581 5030 2581 5030 2581 5029 2581 5029 2581 5028 2579 5028 2579 5028 2578 5029 2578 5029 2578 5029 2578 5030 2578 M 4628 2579 4628 2580 4628 2580 4628 2581 4628 2581 4627 2582 4624 2583 4624 2583 4623 2583 4623 2583 4623 2583 4623 2583 4623 2583 4623 2583 4623 2582 4623 2582 4623 2582 4623 2581 4623 2580 4623 2580 4623 2579 4623 2579 4624 2578 4625 2578 4626 2578 4627 2579 4627 2578 4628 2579 4628 2579 4628 2579 M 4949 2581 4951 2581 4950 2582 4949 2582 4947 2582 4947 2582 4947 2581 4948 2581 4949 2581 4949 2581 4949 2581 M 4848 2583 4848 2584 4848 2584 4848 2585 4848 2586 4847 2587 4846 2587 4845 2587 4845 2586 4845 2586 4845 2586 4845 2585 4845 2585 4844 2585 4844 2585 4844 2585 4844 2586 4844 2586 4844 2586 4844 2587 4843 2587 4844 2588 4842 2588 4842 2588 4841 2588 4841 2588 4841 2588 4841 2587 4842 2587 4842 2587 4842 2587 4843 2586 4842 2586 4842 2584 4842 2584 4841 2584 4841 2584 4840 2585 4840 2586 4840 2586 4839 2587 4839 2587 4838 2588 4838 2588 4838 2588 4838 2588 4837 2588 4836 2586 4836 2585 4836 2585 4836 2585 4836 2584 4837 2583 4837 2583 4837 2583 4838 2582 4838 2581 4838 2581 4843 2581 4843 2581 4843 2582 4843 2582 4843 2582 4843 2582 4843 2583 4843 2583 4843 2583 4843 2585 4844 2585 4845 2583 4845 2583 4845 2583 4845 2582 4846 2582 4846 2582 4847 2582 4848 2583 4848 2583 4848 2583 M 4913 2581 4913 2581 4913 2582 4914 2582 4914 2582 4913 2583 4911 2583 4911 2583 4911 2582 4911 2582 4912 2581 4912 2581 4912 2581 4912 2581 4912 2581 4913 2581 M 4922 2588 4922 2588 4922 2588 4922 2589 4922 2589 4922 2589 4922 2589 4921 2590 4921 2590 4921 2590 4921 2590 4920 2590 4919 2590 4917 2590 4915 2589 4914 2590 4914 2590 4914 2590 4914 2590 4912 2590 4912 2590 4912 2590 4912 2590 4911 2590 4910 2589 4910 2589 4910 2589 4910 2589 4910 2588 4910 2588 4910 2588 4910 2587 4910 2586 4910 2586 4911 2585 4911 2585 4912 2584 4913 2584 4913 2584 4914 2584 4914 2584 4914 2584 4915 2584 4918 2585 4921 2587 4922 2588 M 4570 2608 4570 2608 4570 2608 4568 2608 4568 2608 4568 2607 4567 2606 4567 2606 4566 2605 4566 2604 4567 2603 4567 2603 4567 2602 4567 2602 4567 2602 4566 2602 4566 2601 4565 2601 4565 2599 4565 2597 4565 2597 4564 2597 4560 2596 4559 2596 4558 2596 4554 2596 4554 2595 4554 2594 4555 2593 4555 2593 4556 2593 4557 2593 4558 2592 4558 2591 4558 2591 4558 2590 4558 2590 4557 2590 4558 2589 4558 2588 4559 2588 4561 2587 4562 2587 4562 2589 4562 2590 4563 2590 4563 2591 4563 2591 4565 2591 4565 2591 4564 2589 4563 2587 4564 2587 4566 2586 4567 2586 4568 2588 4569 2588 4569 2588 4568 2589 4569 2589 4570 2591 4570 2592 4571 2593 4571 2594 4571 2594 4571 2595 4571 2597 4572 2599 4572 2600 4572 2600 4573 2601 4574 2602 4574 2602 4578 2603 4581 2604 4580 2604 4580 2605 4579 2605 4579 2606 4579 2606 4578 2607 4578 2607 4578 2608 4578 2609 4578 2610 4579 2610 4579 2610 4579 2610 4580 2610 4580 2612 4580 2612 4576 2612 4575 2611 4575 2610 4575 2610 4573 2609 4573 2609 4571 2609 4570 2608 M 4615 2588 4615 2588 4615 2588 4615 2588 4615 2589 4615 2589 4614 2589 4613 2589 4613 2589 4613 2588 4613 2587 4614 2587 4615 2587 4615 2587 4615 2588 M 5039 2588 5040 2588 5040 2588 5044 2589 5046 2589 5047 2589 5049 2589 5050 2589 5052 2589 5055 2590 5055 2590 5056 2590 5059 2590 5060 2590 5060 2590 5061 2591 5062 2591 5062 2591 5061 2592 5061 2592 5061 2592 5058 2592 5056 2593 5055 2593 5051 2592 5048 2592 5047 2592 5047 2591 5046 2591 5045 2591 5043 2590 5042 2590 5041 2590 5041 2590 5041 2590 5039 2589 5038 2588 5039 2588 5039 2588 5039 2588 M 4862 2589 4864 2589 4865 2589 4866 2589 4866 2589 4871 2590 4872 2590 4873 2590 4876 2590 4877 2591 4877 2593 4876 2593 4874 2592 4872 2593 4872 2593 4872 2593 4872 2594 4871 2593 4870 2593 4869 2593 4868 2593 4867 2594 4867 2594 4865 2594 4864 2595 4862 2595 4861 2593 4861 2592 4861 2590 4862 2589 4862 2589 4862 2589 M 4957 2589 4957 2590 4958 2591 4958 2591 4958 2591 4958 2591 4958 2592 4958 2592 4958 2594 4958 2594 4957 2595 4955 2595 4954 2595 4953 2596 4950 2595 4949 2594 4947 2593 4947 2593 4947 2592 4947 2592 4947 2592 4948 2592 4949 2592 4951 2591 4951 2591 4951 2591 4951 2591 4952 2590 4952 2590 4952 2590 4957 2589 4957 2589 M 4878 2591 4878 2591 4878 2591 4878 2591 4882 2592 4883 2592 4883 2591 4883 2591 4884 2591 4886 2591 4887 2591 4888 2591 4888 2591 4890 2591 4892 2591 4893 2592 4893 2592 4893 2592 4893 2592 4892 2592 4892 2592 4892 2592 4887 2593 4885 2593 4879 2593 4879 2593 4877 2593 4877 2592 4877 2592 4877 2592 4877 2591 4878 2591 4878 2591 4878 2591 M 4887 2594 4887 2594 4887 2594 4888 2595 4888 2595 4888 2595 4887 2595 4887 2596 4887 2596 4887 2596 4887 2597 4887 2597 4887 2597 4887 2598 4887 2598 4887 2598 4888 2599 4889 2601 4889 2601 4889 2602 4889 2602 4888 2602 4888 2602 4888 2602 4887 2602 4887 2601 4887 2601 4887 2601 4887 2600 4887 2600 4887 2600 4887 2599 4887 2599 4887 2599 4886 2599 4886 2598 4886 2598 4886 2598 4885 2596 4885 2596 4885 2595 4885 2595 4886 2595 4886 2594 4886 2594 4886 2594 4887 2594 4887 2594 M 4470 2600 4469 2600 4469 2600 4468 2600 4468 2600 4466 2598 4465 2598 4465 2597 4465 2597 4465 2595 4465 2595 4466 2595 4466 2595 4466 2595 4466 2595 4467 2596 4467 2596 4467 2596 4468 2596 4468 2597 4468 2597 4468 2598 4469 2598 4469 2599 4469 2599 4469 2599 4470 2600 4470 2600 4470 2600 M 4475 2607 4475 2607 4475 2607 4475 2607 4475 2607 4474 2607 4474 2608 4473 2608 4472 2608 4472 2608 4472 2606 4472 2603 4472 2603 4472 2602 4472 2602 4472 2602 4472 2602 4475 2604 4475 2605 4476 2605 4476 2606 4476 2606 4476 2606 4475 2607 M 4595 2603 4596 2603 4597 2603 4600 2604 4601 2604 4604 2606 4605 2608 4605 2608 4604 2609 4603 2610 4603 2611 4603 2612 4602 2613 4601 2614 4600 2614 4600 2614 4600 2613 4600 2613 4598 2612 4598 2611 4598 2611 4597 2612 4597 2612 4597 2613 4597 2613 4594 2614 4594 2614 4593 2611 4593 2610 4594 2609 4594 2607 4594 2606 4594 2606 4594 2604 4595 2603 4595 2603 M 4480 2616 4479 2616 4479 2615 4478 2614 4478 2614 4478 2613 4478 2613 4478 2612 4477 2612 4477 2612 4476 2611 4475 2610 4475 2610 4475 2610 4475 2607 4475 2607 4475 2607 4476 2607 4476 2607 4476 2607 4476 2607 4478 2609 4478 2609 4480 2611 4480 2611 4480 2611 4480 2612 4480 2612 4480 2613 4479 2613 4479 2613 4478 2613 4479 2614 4479 2614 4479 2615 4479 2615 4480 2615 4480 2615 4480 2616 4480 2616 M 4965 2624 4964 2624 4961 2623 4961 2623 4960 2622 4958 2621 4958 2621 4956 2620 4955 2620 4954 2619 4952 2618 4951 2618 4951 2618 4951 2617 4951 2617 4951 2616 4950 2616 4950 2616 4950 2616 4948 2616 4946 2615 4944 2615 4943 2615 4944 2616 4944 2616 4944 2617 4944 2617 4944 2618 4944 2618 4943 2618 4943 2618 4940 2617 4939 2617 4939 2617 4938 2616 4937 2616 4937 2616 4935 2616 4935 2616 4935 2615 4935 2614 4935 2614 4934 2614 4934 2614 4932 2615 4930 2616 4930 2617 4929 2617 4927 2618 4927 2618 4926 2618 4926 2617 4925 2616 4924 2615 4923 2614 4923 2612 4922 2612 4922 2612 4921 2612 4921 2613 4921 2613 4920 2614 4920 2614 4920 2615 4920 2615 4920 2616 4920 2616 4919 2617 4918 2618 4918 2619 4918 2619 4918 2618 4918 2618 4918 2618 4918 2617 4918 2616 4918 2616 4918 2616 4918 2615 4918 2615 4917 2613 4918 2613 4919 2612 4921 2610 4922 2608 4924 2608 4926 2608 4928 2608 4933 2608 4933 2608 4934 2608 4936 2609 4937 2609 4937 2610 4938 2610 4939 2610 4941 2608 4941 2608 4941 2607 4942 2607 4944 2607 4945 2607 4948 2608 4948 2609 4951 2610 4952 2610 4952 2610 4953 2610 4954 2610 4955 2610 4957 2610 4957 2610 4958 2610 4961 2613 4961 2614 4962 2615 4961 2615 4961 2616 4962 2616 4962 2616 4962 2617 4963 2617 4963 2617 4964 2617 4964 2617 4965 2618 4965 2620 4965 2620 4965 2621 4965 2621 4965 2624 4965 2624 M 4581 2609 4582 2609 4583 2609 4583 2610 4582 2611 4582 2611 4581 2611 4580 2610 4580 2609 4581 2609 4581 2609 4581 2609 M 4890 2612 4890 2613 4890 2613 4891 2613 4891 2613 4891 2612 4892 2612 4894 2612 4897 2611 4898 2611 4899 2611 4901 2612 4903 2613 4905 2614 4905 2614 4905 2615 4905 2615 4904 2615 4904 2615 4904 2616 4905 2616 4905 2616 4906 2616 4908 2616 4907 2620 4907 2620 4907 2621 4906 2621 4906 2621 4905 2621 4904 2622 4903 2622 4901 2623 4899 2624 4899 2624 4896 2623 4894 2622 4891 2620 4888 2618 4888 2617 4888 2616 4888 2613 4888 2613 4889 2612 4889 2612 4889 2612 4890 2612 M 4915 2613 4915 2613 4916 2613 4916 2613 4916 2614 4916 2614 4916 2614 4915 2614 4914 2614 4914 2614 4914 2614 4914 2614 4915 2613 4915 2613 M 4732 2615 4732 2616 4732 2617 4732 2619 4732 2620 4733 2621 4733 2623 4733 2625 4730 2627 4730 2627 4730 2627 4729 2627 4729 2627 4729 2627 4729 2627 4729 2626 4729 2626 4729 2626 4729 2625 4729 2624 4729 2623 4729 2623 4728 2623 4728 2622 4728 2622 4728 2622 4728 2621 4728 2621 4728 2621 4728 2621 4728 2621 4729 2618 4730 2616 4730 2616 4732 2614 4732 2614 4732 2614 4732 2615 M 4913 2615 4913 2615 4914 2616 4914 2616 4914 2616 4913 2616 4912 2616 4912 2616 4911 2615 4911 2615 4912 2615 4912 2615 4913 2615 4913 2615 M 4735 2617 4735 2617 4735 2618 4734 2620 4734 2620 4734 2621 4734 2621 4733 2619 4733 2618 4734 2617 4734 2617 4734 2616 4735 2617 4735 2617 M 4929 2618 4929 2619 4930 2619 4930 2619 4930 2618 4931 2618 4931 2619 4931 2619 4931 2619 4931 2620 4931 2620 4930 2620 4929 2620 4929 2620 4928 2619 4928 2619 4929 2618 4929 2618 M 4920 2620 4921 2620 4922 2619 4923 2619 4923 2619 4923 2619 4924 2619 4924 2619 4925 2619 4925 2619 4925 2620 4925 2620 4924 2621 4923 2622 4922 2623 4921 2623 4921 2623 4922 2622 4923 2621 4923 2621 4923 2621 4923 2621 4921 2622 4919 2623 4919 2623 4919 2623 4919 2623 4918 2623 4918 2622 4918 2622 4918 2622 4918 2621 4918 2621 4918 2621 4919 2621 4919 2621 4920 2620 4920 2620 4920 2620 M 4926 2619 4927 2619 4927 2619 4928 2619 4928 2619 4928 2619 4928 2620 4928 2620 4928 2620 4928 2620 4926 2621 4926 2621 4926 2620 4926 2619 4926 2619 4926 2619 4926 2619 M 4840 2626 4841 2626 4841 2627 4841 2627 4842 2627 4842 2626 4842 2626 4843 2626 4843 2626 4843 2627 4843 2627 4844 2627 4844 2628 4844 2628 4844 2628 4842 2630 4842 2630 4841 2630 4841 2630 4840 2630 4840 2629 4839 2628 4839 2628 4839 2628 4839 2627 4840 2626 4840 2626 4840 2626 4840 2626 M 5005 2628 5005 2628 5006 2629 5007 2630 5008 2630 5008 2630 5008 2630 5008 2630 5009 2631 5009 2631 5006 2630 5005 2629 5004 2629 5004 2628 5004 2628 5005 2628 M 4841 2633 4841 2633 4841 2634 4841 2634 4842 2634 4843 2636 4843 2636 4843 2638 4843 2638 4843 2639 4843 2640 4843 2640 4843 2639 4842 2639 4842 2638 4840 2638 4840 2640 4839 2642 4839 2643 4839 2644 4840 2645 4840 2645 4843 2647 4843 2647 4842 2648 4842 2649 4840 2649 4840 2649 4840 2649 4838 2649 4838 2650 4837 2650 4838 2650 4838 2651 4838 2651 4837 2653 4836 2653 4834 2653 4833 2652 4833 2651 4833 2650 4834 2648 4835 2646 4836 2644 4837 2642 4837 2639 4837 2639 4837 2638 4837 2637 4837 2637 4837 2636 4837 2636 4838 2634 4838 2634 4839 2634 4839 2633 4840 2633 4840 2633 4841 2632 4841 2633 4841 2633 M 4835 2636 4835 2637 4836 2638 4836 2640 4836 2641 4836 2642 4835 2643 4834 2643 4833 2645 4833 2645 4834 2646 4834 2647 4834 2647 4834 2648 4833 2649 4832 2649 4831 2649 4829 2649 4828 2648 4828 2648 4829 2645 4829 2644 4829 2644 4830 2644 4830 2643 4830 2642 4829 2641 4829 2640 4829 2640 4830 2638 4830 2638 4830 2638 4831 2638 4831 2638 4832 2638 4832 2638 4833 2637 4833 2637 4835 2636 4835 2636 M 4823 2644 4824 2645 4825 2646 4824 2649 4824 2650 4824 2650 4824 2650 4824 2650 4823 2650 4821 2648 4821 2647 4821 2647 4821 2646 4821 2644 4821 2644 4822 2644 4822 2643 4822 2643 4823 2643 4823 2644 M 4849 2646 4849 2646 4849 2647 4850 2647 4850 2647 4850 2647 4850 2648 4849 2648 4849 2648 4849 2648 4848 2648 4848 2648 4848 2647 4848 2647 4848 2647 4848 2647 4848 2646 4848 2646 4849 2646 M 4510 2650 4509 2650 4508 2650 4506 2648 4506 2647 4507 2647 4507 2647 4508 2647 4510 2648 4510 2648 4511 2649 4511 2649 4510 2650 4510 2650 M 5002 2647 5002 2648 5002 2648 5002 2648 5001 2651 5001 2652 5001 2652 5001 2652 5001 2652 5000 2653 5000 2653 5000 2653 4999 2653 4999 2653 4999 2654 4999 2655 4998 2655 4998 2655 4998 2656 4999 2656 4999 2656 4999 2656 4997 2658 4997 2658 4997 2658 4997 2656 4997 2656 4998 2653 4998 2653 4999 2653 4999 2653 4999 2653 4999 2652 5000 2651 5001 2647 5001 2647 5001 2647 5002 2647 5002 2647 5002 2647 5002 2647 M 5024 2649 5024 2649 5025 2650 5026 2651 5026 2652 5027 2654 5027 2656 5027 2656 5027 2657 5027 2658 5027 2658 5026 2658 5026 2657 5026 2657 5025 2657 5024 2658 5023 2658 5023 2658 5023 2658 5023 2658 5022 2658 5022 2659 5022 2659 5021 2659 5021 2659 5021 2659 5020 2659 5020 2657 5020 2657 5021 2656 5021 2655 5021 2655 5020 2655 5020 2655 5019 2655 5019 2654 5019 2654 5019 2654 5019 2654 5019 2653 5019 2653 5019 2653 5020 2653 5020 2654 5020 2654 5021 2654 5022 2652 5023 2650 5023 2649 5023 2649 5024 2649 M 4995 2653 4996 2655 4996 2655 4996 2656 4996 2656 4996 2656 4996 2657 4996 2657 4995 2658 4994 2657 4994 2657 4994 2657 4994 2656 4994 2656 4994 2654 4994 2653 4993 2652 4993 2652 4995 2652 4995 2653 4995 2653 4995 2653 M 4675 2654 4675 2654 4676 2655 4676 2655 4676 2656 4675 2656 4675 2656 4674 2656 4673 2656 4673 2655 4673 2655 4674 2654 4675 2654 4675 2654 4675 2654 M 4800 2655 4800 2656 4800 2656 4800 2658 4801 2658 4801 2659 4800 2662 4800 2665 4799 2666 4799 2666 4799 2665 4799 2664 4799 2664 4799 2664 4799 2663 4799 2661 4799 2659 4799 2657 4799 2657 4799 2656 4799 2655 4799 2655 4799 2655 4799 2655 4800 2655 4800 2655 M 4633 2689 4633 2689 4631 2688 4627 2687 4625 2687 4624 2687 4622 2686 4621 2685 4620 2685 4618 2685 4618 2685 4617 2685 4617 2686 4617 2686 4616 2686 4614 2685 4614 2685 4614 2685 4614 2685 4613 2685 4612 2685 4611 2685 4609 2685 4609 2685 4608 2685 4608 2686 4608 2686 4608 2686 4608 2686 4608 2687 4608 2687 4607 2687 4607 2687 4606 2687 4603 2687 4603 2687 4602 2687 4601 2686 4599 2686 4597 2685 4597 2685 4597 2685 4595 2684 4594 2684 4594 2684 4593 2683 4593 2683 4592 2682 4590 2682 4589 2682 4587 2682 4585 2681 4579 2681 4577 2681 4577 2681 4577 2681 4575 2680 4575 2680 4574 2679 4574 2679 4574 2678 4574 2678 4575 2677 4575 2676 4576 2676 4576 2676 4576 2676 4576 2676 4577 2676 4577 2675 4577 2675 4577 2674 4577 2674 4576 2674 4576 2674 4575 2674 4575 2674 4575 2674 4574 2674 4574 2674 4574 2674 4573 2674 4573 2674 4571 2673 4570 2673 4570 2672 4570 2672 4569 2672 4569 2672 4568 2672 4568 2672 4567 2672 4567 2672 4563 2672 4562 2672 4562 2672 4561 2672 4561 2672 4560 2672 4560 2672 4559 2672 4558 2671 4558 2671 4557 2671 4557 2671 4556 2671 4556 2671 4556 2671 4556 2671 4556 2671 4557 2670 4559 2670 4559 2671 4559 2671 4560 2671 4560 2671 4560 2671 4562 2669 4562 2668 4562 2668 4562 2667 4562 2666 4562 2666 4562 2666 4562 2666 4563 2666 4563 2666 4563 2666 4563 2666 4563 2667 4563 2667 4564 2666 4565 2666 4565 2666 4565 2666 4565 2665 4565 2665 4565 2663 4565 2663 4565 2663 4565 2662 4565 2662 4565 2662 4566 2660 4566 2660 4568 2657 4568 2657 4569 2657 4569 2656 4569 2656 4570 2657 4570 2657 4570 2657 4570 2657 4570 2658 4570 2658 4570 2658 4570 2658 4570 2658 4571 2659 4571 2659 4571 2659 4571 2658 4572 2658 4572 2658 4572 2658 4572 2657 4572 2657 4573 2657 4573 2657 4573 2658 4575 2659 4576 2659 4576 2659 4576 2659 4576 2659 4577 2658 4579 2659 4579 2659 4580 2659 4580 2659 4580 2660 4580 2660 4580 2660 4581 2660 4582 2660 4583 2660 4583 2660 4584 2660 4584 2660 4584 2660 4584 2659 4584 2659 4584 2658 4584 2657 4584 2657 4585 2657 4586 2657 4586 2657 4586 2658 4586 2658 4586 2658 4587 2658 4587 2658 4587 2658 4587 2658 4588 2658 4588 2658 4588 2658 4589 2658 4589 2658 4589 2658 4589 2658 4590 2658 4590 2658 4590 2659 4591 2659 4591 2660 4593 2661 4594 2662 4594 2662 4595 2662 4595 2662 4596 2662 4596 2662 4598 2662 4601 2664 4601 2664 4602 2664 4602 2664 4602 2664 4603 2664 4603 2664 4603 2663 4603 2663 4603 2663 4604 2662 4605 2662 4605 2663 4605 2663 4606 2663 4607 2665 4607 2665 4607 2665 4607 2665 4607 2666 4608 2666 4608 2666 4608 2666 4609 2666 4609 2666 4609 2667 4609 2667 4609 2669 4609 2669 4609 2669 4609 2670 4609 2670 4610 2670 4610 2670 4610 2671 4610 2671 4611 2671 4612 2671 4612 2671 4613 2671 4613 2671 4613 2671 4614 2671 4616 2672 4620 2672 4621 2672 4621 2672 4622 2672 4623 2672 4623 2672 4623 2672 4623 2672 4623 2672 4624 2672 4626 2672 4628 2673 4629 2673 4630 2673 4631 2673 4632 2673 4632 2673 4633 2673 4634 2673 4634 2673 4634 2673 4634 2673 4635 2673 4635 2673 4637 2674 4638 2674 4638 2674 4638 2674 4639 2674 4640 2673 4640 2673 4640 2673 4641 2672 4641 2672 4642 2670 4642 2670 4642 2669 4642 2669 4642 2668 4643 2668 4643 2668 4643 2667 4643 2667 4643 2666 4644 2666 4644 2665 4646 2665 4647 2665 4648 2665 4649 2666 4649 2667 4649 2667 4649 2668 4649 2668 4649 2668 4650 2668 4650 2669 4650 2669 4650 2669 4651 2670 4654 2670 4654 2670 4654 2670 4654 2670 4655 2670 4655 2669 4655 2669 4655 2669 4655 2669 4656 2668 4656 2668 4657 2669 4658 2669 4658 2669 4658 2670 4658 2670 4658 2670 4659 2670 4659 2670 4659 2671 4659 2671 4660 2671 4663 2671 4663 2671 4663 2671 4663 2671 4664 2671 4664 2672 4665 2672 4665 2672 4665 2672 4665 2673 4665 2673 4665 2673 4666 2673 4666 2673 4666 2673 4667 2673 4667 2673 4668 2673 4669 2672 4669 2672 4671 2672 4673 2673 4674 2675 4675 2677 4675 2677 4675 2677 4675 2678 4674 2678 4674 2677 4674 2677 4674 2678 4674 2678 4674 2678 4675 2678 4675 2678 4675 2678 4675 2678 4675 2678 4675 2678 4676 2678 4676 2678 4676 2678 4676 2678 4676 2678 4677 2678 4677 2678 4677 2678 4677 2679 4677 2681 4677 2681 4676 2681 4676 2681 4676 2682 4676 2682 4676 2683 4677 2684 4677 2684 4677 2684 4679 2685 4681 2686 4682 2686 4683 2686 4685 2687 4685 2687 4685 2687 4686 2687 4686 2686 4686 2686 4686 2686 4688 2686 4688 2685 4689 2686 4689 2686 4691 2686 4692 2686 4692 2686 4695 2685 4695 2685 4695 2685 4696 2684 4696 2684 4696 2684 4697 2684 4697 2685 4697 2685 4697 2685 4698 2685 4698 2686 4698 2686 4701 2686 4702 2686 4702 2686 4703 2687 4703 2687 4703 2687 4703 2688 4703 2688 4702 2694 4702 2694 4702 2695 4702 2695 4702 2695 4702 2696 4702 2696 4702 2697 4702 2699 4703 2700 4703 2700 4704 2700 4705 2701 4706 2701 4706 2702 4706 2702 4706 2702 4706 2703 4705 2703 4705 2703 4705 2703 4705 2703 4704 2703 4703 2702 4702 2702 4702 2702 4702 2701 4702 2701 4702 2701 4702 2701 4702 2701 4701 2701 4701 2700 4700 2700 4700 2700 4700 2700 4700 2700 4699 2701 4697 2701 4697 2700 4695 2700 4694 2699 4692 2699 4691 2699 4690 2698 4690 2698 4690 2698 4690 2698 4690 2697 4689 2697 4687 2696 4685 2695 4685 2695 4684 2695 4684 2695 4683 2695 4683 2695 4682 2695 4682 2695 4681 2695 4680 2695 4680 2695 4679 2696 4679 2696 4679 2696 4679 2697 4679 2697 4678 2697 4674 2697 4672 2697 4670 2696 4669 2696 4667 2695 4663 2695 4662 2695 4660 2694 4659 2695 4659 2696 4659 2696 4658 2696 4655 2695 4654 2695 4650 2694 4649 2694 4649 2694 4649 2694 4648 2694 4647 2694 4645 2693 4644 2693 4644 2693 4643 2693 4639 2692 4638 2691 4638 2691 4635 2690 4634 2689 4633 2689 4633 2689 M 5023 2658 5023 2658 5023 2658 5024 2658 5025 2658 5026 2658 5027 2659 5027 2659 5027 2659 5028 2660 5028 2660 5027 2662 5027 2662 5027 2663 5027 2663 5026 2664 5026 2664 5025 2664 5024 2664 5024 2664 5024 2664 5023 2663 5022 2663 5022 2662 5021 2662 5020 2661 5020 2660 5020 2660 5020 2659 5020 2659 5020 2659 5021 2659 5022 2659 5022 2658 5023 2658 M 5019 2659 5019 2659 5019 2660 5019 2660 5019 2660 5019 2661 5021 2662 5021 2662 5021 2662 5022 2663 5021 2663 5021 2664 5019 2662 5017 2661 5017 2660 5017 2660 5017 2660 5017 2659 5017 2659 5018 2659 5018 2659 5018 2659 5018 2659 5019 2659 M 5017 2661 5018 2662 5019 2662 5020 2663 5020 2663 5020 2663 5020 2664 5020 2664 5021 2665 5022 2665 5022 2665 5023 2665 5023 2666 5024 2668 5023 2668 5023 2669 5023 2669 5023 2669 5022 2669 5022 2670 5021 2671 5021 2671 5021 2671 5021 2671 5020 2672 5018 2673 5018 2673 5016 2672 5016 2671 5016 2671 5017 2667 5017 2665 5017 2664 5017 2663 5017 2663 5017 2662 5017 2662 5017 2662 5017 2661 5017 2661 5017 2661 M 5023 2663 5023 2663 5023 2663 5024 2664 5024 2664 5025 2665 5025 2665 5025 2665 5025 2665 5024 2667 5024 2667 5023 2667 5023 2666 5023 2665 5022 2665 5021 2665 5021 2665 5021 2664 5021 2663 5022 2663 5022 2663 5023 2663 M 5029 2663 5029 2664 5029 2664 5029 2666 5028 2666 5028 2666 5028 2665 5028 2665 5028 2664 5029 2663 5029 2663 5029 2663 5029 2663 5029 2663 M 4556 2667 4556 2667 4556 2668 4556 2669 4555 2669 4555 2669 4554 2668 4554 2668 4555 2667 4555 2667 4556 2667 4556 2667 M 5027 2668 5027 2668 5027 2668 5027 2668 5027 2668 5027 2668 5027 2669 5026 2671 5026 2671 5025 2670 5025 2670 5026 2668 5026 2668 5026 2668 5027 2668 5027 2668 M 5089 2670 5090 2670 5090 2670 5090 2670 5091 2671 5091 2671 5091 2671 5091 2671 5091 2671 5092 2672 5091 2672 5091 2672 5091 2672 5090 2672 5090 2672 5089 2671 5089 2670 5089 2670 5089 2670 5089 2670 5089 2670 5089 2670 M 4716 2672 4717 2672 4717 2672 4717 2672 4718 2672 4719 2672 4719 2672 4720 2672 4720 2672 4721 2673 4721 2673 4721 2673 4721 2674 4720 2673 4719 2673 4719 2673 4718 2673 4717 2673 4717 2673 4718 2674 4718 2674 4718 2674 4718 2674 4718 2674 4717 2674 4716 2674 4715 2673 4715 2673 4715 2673 4715 2673 4716 2672 4716 2672 4716 2672 4716 2672 M 4679 2673 4680 2673 4681 2672 4685 2673 4689 2673 4692 2673 4694 2672 4694 2672 4695 2672 4695 2672 4696 2672 4698 2673 4698 2674 4698 2674 4697 2674 4696 2675 4694 2675 4694 2675 4693 2676 4692 2676 4691 2676 4691 2676 4690 2676 4689 2677 4689 2677 4688 2678 4687 2678 4686 2678 4683 2678 4682 2677 4680 2677 4678 2677 4677 2677 4676 2677 4676 2677 4675 2677 4675 2676 4675 2675 4675 2675 4676 2675 4676 2674 4677 2674 4677 2673 4679 2673 4679 2673 M 4802 2675 4803 2675 4804 2676 4804 2675 4804 2675 4804 2675 4804 2676 4804 2676 4804 2676 4802 2677 4802 2676 4802 2676 4802 2676 4802 2675 4802 2675 M 4701 2675 4701 2675 4702 2675 4702 2675 4702 2676 4702 2676 4702 2676 4703 2677 4702 2677 4702 2677 4701 2677 4701 2676 4701 2676 4701 2676 4701 2675 4701 2675 M 4929 2675 4931 2676 4931 2676 4930 2677 4930 2678 4930 2678 4929 2678 4928 2677 4928 2677 4928 2676 4928 2676 4929 2676 4929 2675 4929 2675 4929 2675 M 4982 2676 4982 2676 4983 2677 4983 2677 4983 2678 4983 2678 4983 2678 4982 2678 4982 2678 4982 2677 4982 2677 4982 2677 4981 2677 4981 2677 4980 2677 4980 2677 4980 2677 4979 2677 4979 2677 4979 2677 4979 2676 4979 2676 4982 2676 M 4978 2676 4978 2676 4979 2677 4979 2678 4979 2678 4978 2678 4978 2678 4978 2681 4978 2681 4978 2682 4977 2684 4977 2686 4975 2687 4974 2688 4973 2688 4973 2689 4973 2690 4973 2690 4973 2691 4972 2691 4970 2690 4969 2690 4969 2688 4970 2685 4970 2685 4970 2684 4971 2684 4971 2682 4972 2681 4973 2681 4974 2680 4975 2679 4976 2677 4977 2676 4978 2676 M 4805 2679 4805 2679 4806 2679 4807 2679 4807 2679 4808 2679 4808 2679 4808 2679 4809 2679 4809 2679 4808 2680 4808 2680 4808 2680 4808 2680 4805 2679 4804 2679 4804 2679 4804 2679 4804 2679 4805 2678 4805 2679 4805 2679 M 5088 2680 5089 2680 5089 2680 5090 2680 5091 2680 5092 2680 5092 2681 5093 2682 5093 2682 5093 2682 5094 2683 5095 2683 5095 2683 5096 2684 5095 2687 5094 2688 5093 2691 5093 2692 5092 2693 5091 2693 5090 2693 5090 2693 5090 2693 5089 2694 5089 2694 5086 2696 5086 2697 5085 2697 5084 2697 5084 2697 5083 2697 5083 2697 5082 2697 5077 2696 5076 2696 5074 2697 5074 2697 5073 2697 5073 2697 5073 2696 5075 2693 5075 2692 5077 2688 5078 2687 5079 2684 5080 2684 5080 2683 5081 2683 5082 2682 5083 2682 5083 2682 5085 2681 5086 2681 5086 2681 5087 2681 5087 2681 5088 2680 5088 2680 M 4968 2681 4970 2681 4970 2681 4970 2681 4970 2682 4969 2682 4968 2682 4967 2682 4967 2682 4967 2682 4967 2681 4968 2681 4968 2681 4968 2681 M 4910 2682 4911 2683 4911 2683 4911 2683 4911 2684 4911 2684 4911 2684 4910 2685 4910 2685 4909 2685 4909 2685 4909 2684 4909 2684 4909 2683 4909 2682 4910 2682 4910 2682 4910 2682 M 4887 2685 4888 2685 4889 2686 4890 2686 4893 2685 4893 2685 4893 2685 4894 2685 4894 2684 4895 2684 4896 2684 4897 2683 4898 2683 4898 2684 4898 2684 4898 2684 4899 2685 4899 2685 4900 2685 4900 2686 4900 2686 4899 2686 4898 2686 4897 2687 4896 2687 4896 2688 4896 2688 4896 2688 4896 2688 4894 2689 4892 2689 4890 2688 4889 2688 4888 2688 4887 2689 4886 2689 4886 2689 4885 2690 4884 2691 4884 2691 4884 2690 4885 2688 4886 2686 4887 2685 M 4946 2687 4946 2687 4946 2687 4947 2687 4949 2687 4949 2688 4949 2689 4949 2689 4949 2689 4949 2690 4948 2691 4948 2691 4947 2691 4947 2691 4946 2691 4945 2689 4945 2689 4945 2689 4945 2688 4945 2688 4945 2687 4945 2687 4945 2687 4945 2687 4946 2687 M 4703 2692 4704 2692 4707 2693 4708 2693 4708 2693 4709 2693 4710 2693 4712 2693 4712 2693 4712 2693 4713 2692 4714 2692 4714 2691 4714 2691 4715 2691 4718 2692 4718 2692 4719 2693 4720 2693 4720 2693 4721 2694 4723 2696 4723 2696 4723 2697 4723 2697 4722 2698 4720 2699 4719 2699 4718 2700 4718 2700 4717 2700 4717 2701 4716 2702 4715 2702 4715 2702 4715 2703 4715 2703 4715 2703 4716 2703 4715 2704 4714 2704 4714 2704 4713 2704 4713 2703 4714 2703 4715 2703 4715 2702 4715 2702 4714 2701 4714 2701 4713 2700 4711 2698 4711 2698 4710 2697 4708 2697 4708 2697 4707 2697 4706 2697 4706 2697 4706 2697 4705 2696 4704 2695 4704 2694 4704 2694 4703 2694 4703 2693 4703 2692 4703 2692 M 4788 2702 4789 2701 4789 2700 4788 2700 4789 2699 4789 2699 4790 2698 4792 2697 4793 2697 4795 2695 4796 2695 4800 2694 4802 2695 4804 2696 4805 2696 4806 2696 4808 2697 4808 2697 4809 2697 4810 2697 4811 2697 4812 2698 4812 2698 4813 2699 4813 2699 4814 2700 4814 2700 4816 2700 4817 2699 4817 2699 4818 2698 4820 2698 4822 2698 4822 2698 4824 2697 4825 2699 4827 2700 4828 2701 4828 2701 4829 2700 4829 2700 4830 2700 4831 2698 4831 2698 4833 2697 4834 2696 4835 2696 4836 2696 4838 2695 4839 2694 4838 2693 4837 2694 4836 2694 4835 2694 4836 2692 4837 2691 4839 2692 4839 2693 4840 2695 4840 2695 4839 2696 4838 2696 4836 2697 4836 2698 4836 2698 4837 2698 4837 2699 4837 2699 4837 2699 4837 2700 4837 2700 4837 2700 4836 2700 4835 2700 4834 2700 4833 2701 4832 2702 4832 2702 4831 2702 4830 2702 4828 2702 4827 2702 4826 2702 4822 2703 4820 2704 4820 2705 4818 2704 4817 2703 4814 2703 4814 2703 4814 2704 4814 2704 4813 2705 4813 2705 4812 2705 4812 2705 4811 2705 4810 2705 4810 2705 4810 2705 4809 2705 4808 2705 4808 2705 4808 2705 4806 2705 4805 2704 4804 2704 4803 2704 4802 2704 4802 2703 4801 2703 4800 2703 4799 2703 4798 2703 4797 2703 4797 2704 4796 2704 4795 2703 4793 2703 4793 2703 4791 2704 4790 2704 4789 2703 4789 2703 4788 2702 4788 2702 M 4779 2701 4779 2702 4778 2702 4777 2702 4775 2702 4775 2702 4774 2701 4774 2701 4773 2702 4772 2702 4771 2702 4771 2703 4772 2703 4773 2703 4774 2703 4775 2703 4775 2704 4774 2704 4773 2704 4772 2703 4772 2703 4771 2703 4771 2703 4770 2703 4769 2704 4767 2704 4767 2704 4766 2704 4766 2704 4766 2703 4766 2703 4766 2702 4767 2702 4767 2701 4767 2700 4766 2700 4766 2700 4763 2703 4763 2704 4762 2704 4762 2704 4762 2704 4761 2704 4760 2704 4760 2704 4759 2705 4758 2705 4756 2705 4756 2705 4755 2705 4754 2705 4754 2706 4753 2706 4752 2706 4751 2707 4750 2707 4749 2707 4749 2707 4748 2707 4748 2707 4747 2707 4746 2707 4746 2708 4745 2708 4745 2708 4741 2707 4740 2706 4740 2706 4740 2706 4740 2704 4740 2703 4740 2701 4741 2700 4741 2699 4742 2699 4743 2699 4744 2698 4745 2697 4745 2697 4746 2696 4746 2696 4747 2696 4748 2697 4751 2698 4751 2697 4753 2697 4753 2697 4753 2698 4753 2698 4754 2699 4756 2701 4757 2702 4758 2701 4759 2702 4759 2702 4759 2702 4760 2702 4760 2701 4761 2701 4761 2701 4762 2701 4762 2701 4763 2701 4763 2701 4764 2701 4764 2701 4764 2700 4764 2700 4763 2699 4761 2698 4760 2698 4760 2698 4760 2698 4757 2696 4755 2694 4755 2693 4755 2693 4756 2693 4757 2692 4758 2692 4759 2692 4761 2692 4762 2692 4762 2693 4762 2694 4763 2695 4764 2696 4765 2696 4766 2696 4766 2695 4767 2695 4767 2694 4767 2694 4769 2695 4770 2695 4771 2696 4771 2697 4771 2697 4770 2698 4770 2699 4771 2698 4771 2698 4771 2697 4771 2697 4771 2696 4772 2695 4772 2695 4774 2695 4774 2695 4775 2695 4775 2695 4776 2695 4776 2698 4776 2699 4776 2699 4776 2700 4776 2700 4777 2701 4778 2700 4778 2701 4779 2701 M 4964 2696 4964 2696 4965 2694 4965 2694 4965 2694 4966 2694 4967 2693 4968 2692 4968 2692 4970 2692 4970 2692 4970 2693 4970 2693 4968 2694 4967 2694 4966 2695 4966 2695 4966 2695 4965 2696 4964 2696 4964 2696 M 4916 2692 4916 2692 4917 2692 4917 2692 4918 2692 4918 2692 4918 2692 4919 2692 4919 2693 4920 2693 4921 2693 4921 2692 4921 2692 4921 2693 4921 2693 4921 2693 4921 2693 4920 2695 4920 2695 4920 2694 4917 2694 4916 2693 4916 2693 4916 2692 4916 2692 4916 2692 4916 2692 M 4863 2692 4864 2692 4864 2692 4865 2692 4866 2693 4869 2693 4870 2693 4870 2693 4873 2693 4873 2693 4874 2694 4874 2694 4874 2695 4874 2696 4873 2696 4872 2696 4872 2696 4869 2697 4865 2697 4862 2698 4861 2698 4861 2698 4861 2697 4861 2697 4861 2697 4862 2694 4863 2693 4863 2692 4863 2692 M 4777 2692 4777 2693 4778 2693 4778 2693 4778 2693 4778 2694 4778 2694 4777 2694 4777 2694 4777 2695 4777 2695 4777 2695 4776 2694 4776 2694 4776 2694 4776 2694 4776 2693 4776 2693 4776 2693 4777 2692 4777 2692 4777 2692 M 4882 2693 4881 2695 4881 2695 4881 2695 4881 2695 4880 2695 4880 2695 4879 2695 4879 2695 4880 2694 4881 2693 4882 2693 4882 2693 M 4752 2697 4752 2696 4752 2696 4751 2696 4751 2694 4751 2693 4751 2693 4752 2693 4753 2693 4753 2693 4754 2693 4755 2693 4755 2693 4755 2693 4755 2693 4754 2694 4754 2694 4754 2694 4753 2695 4753 2696 4753 2696 4752 2696 4752 2697 M 5092 2693 5092 2694 5093 2696 5094 2696 5094 2696 5094 2696 5094 2697 5093 2697 5093 2697 5093 2697 5092 2697 5091 2697 5088 2696 5088 2696 5088 2696 5088 2696 5088 2695 5090 2693 5092 2693 5092 2693 5092 2693 M 4933 2693 4933 2693 4934 2693 4935 2693 4935 2693 4935 2693 4936 2694 4936 2694 4936 2694 4936 2695 4936 2695 4934 2694 4934 2694 4934 2694 4933 2694 4933 2694 4933 2694 4933 2693 4933 2693 M 4855 2696 4855 2696 4856 2695 4856 2695 4857 2695 4857 2695 4857 2696 4857 2696 4858 2695 4858 2695 4859 2694 4859 2693 4860 2693 4860 2693 4860 2693 4860 2693 4860 2694 4860 2694 4860 2695 4860 2695 4860 2696 4859 2698 4858 2699 4858 2699 4858 2699 4857 2699 4857 2699 4856 2699 4856 2699 4856 2698 4856 2698 4856 2698 4856 2697 4856 2697 4855 2697 4855 2697 4855 2697 4855 2698 4855 2698 4854 2698 4854 2698 4854 2697 4855 2696 4855 2696 4855 2696 M 4846 2700 4846 2699 4844 2699 4844 2699 4843 2699 4843 2699 4845 2697 4845 2697 4846 2697 4846 2697 4847 2696 4847 2696 4847 2696 4847 2696 4847 2696 4847 2695 4846 2695 4846 2695 4846 2695 4845 2695 4845 2695 4846 2695 4846 2695 4846 2695 4848 2694 4848 2694 4849 2694 4849 2695 4848 2695 4848 2695 4848 2696 4848 2696 4848 2696 4848 2696 4849 2696 4849 2696 4850 2695 4852 2693 4852 2693 4852 2693 4854 2694 4854 2694 4855 2694 4855 2695 4854 2695 4854 2695 4853 2695 4852 2696 4850 2697 4848 2699 4847 2699 4846 2700 M 4733 2694 4734 2694 4735 2694 4738 2695 4739 2696 4740 2696 4740 2697 4739 2699 4737 2702 4737 2703 4737 2704 4737 2704 4737 2705 4736 2705 4735 2705 4735 2704 4736 2704 4735 2704 4734 2704 4734 2705 4732 2705 4731 2705 4730 2704 4729 2704 4729 2704 4728 2704 4728 2705 4726 2703 4725 2702 4726 2702 4726 2702 4727 2703 4727 2703 4729 2702 4729 2700 4729 2700 4729 2699 4729 2699 4729 2697 4732 2694 4733 2694 4733 2694 M 4841 2695 4842 2694 4842 2694 4843 2694 4844 2694 4845 2695 4845 2695 4845 2696 4845 2696 4845 2697 4844 2697 4844 2697 4844 2697 4841 2697 4840 2697 4840 2696 4840 2696 4840 2696 4840 2695 4841 2695 4841 2695 4841 2695 M 4871 2705 4871 2705 4873 2702 4873 2702 4873 2702 4873 2701 4873 2701 4873 2701 4874 2701 4874 2701 4874 2701 4874 2700 4875 2700 4875 2700 4878 2699 4881 2699 4883 2699 4883 2699 4884 2698 4884 2698 4884 2698 4885 2698 4885 2698 4885 2698 4885 2698 4886 2698 4886 2698 4887 2698 4887 2698 4887 2698 4888 2699 4888 2699 4889 2699 4891 2698 4891 2698 4892 2698 4893 2697 4893 2697 4893 2697 4894 2697 4894 2697 4895 2697 4896 2698 4896 2698 4896 2698 4896 2698 4896 2698 4900 2697 4901 2696 4902 2696 4902 2696 4904 2695 4907 2696 4908 2697 4908 2697 4908 2697 4908 2697 4908 2697 4908 2698 4908 2698 4906 2699 4905 2699 4905 2700 4904 2700 4904 2701 4902 2702 4900 2702 4900 2702 4900 2702 4899 2703 4898 2703 4897 2703 4896 2704 4896 2704 4896 2704 4896 2705 4895 2705 4895 2705 4895 2706 4893 2706 4892 2706 4891 2706 4891 2706 4890 2706 4890 2706 4890 2706 4890 2706 4889 2706 4889 2707 4887 2708 4886 2708 4886 2708 4886 2708 4885 2708 4885 2708 4884 2709 4880 2710 4878 2711 4878 2711 4877 2711 4877 2711 4876 2712 4875 2713 4875 2713 4875 2713 4875 2713 4875 2713 4874 2713 4874 2713 4873 2713 4872 2714 4872 2715 4871 2715 4871 2715 4871 2715 4871 2716 4871 2716 4871 2716 4871 2716 4871 2717 4871 2717 4871 2717 4870 2717 4868 2720 4866 2721 4865 2722 4865 2722 4864 2723 4864 2723 4864 2723 4864 2723 4864 2724 4864 2724 4863 2724 4863 2725 4863 2725 4862 2725 4862 2725 4862 2725 4861 2725 4860 2725 4860 2725 4858 2725 4857 2725 4857 2725 4857 2726 4857 2726 4856 2727 4856 2727 4855 2727 4855 2727 4855 2727 4854 2727 4854 2727 4853 2728 4853 2728 4853 2728 4853 2728 4853 2728 4849 2728 4848 2728 4847 2727 4847 2726 4848 2725 4849 2725 4849 2725 4850 2725 4850 2725 4850 2725 4850 2725 4851 2724 4851 2724 4852 2724 4852 2724 4852 2723 4852 2723 4852 2723 4851 2723 4851 2723 4850 2723 4850 2723 4849 2723 4849 2723 4849 2723 4849 2723 4849 2722 4849 2721 4849 2721 4849 2721 4850 2721 4850 2720 4850 2720 4850 2720 4850 2718 4850 2717 4850 2717 4850 2717 4850 2717 4850 2716 4852 2715 4855 2712 4855 2712 4856 2712 4857 2712 4858 2711 4858 2711 4858 2711 4858 2711 4858 2710 4860 2710 4862 2709 4863 2709 4864 2709 4864 2709 4864 2709 4865 2709 4866 2708 4866 2708 4867 2707 4868 2706 4869 2706 4869 2706 4869 2706 4870 2706 4871 2705 M 4782 2702 4782 2702 4782 2701 4782 2701 4782 2700 4782 2697 4783 2697 4783 2697 4783 2697 4784 2698 4784 2698 4784 2698 4785 2698 4785 2699 4785 2700 4785 2700 4784 2700 4784 2700 4784 2700 4784 2699 4784 2699 4783 2700 4783 2701 4783 2702 4783 2702 4783 2702 4783 2702 4782 2702 4782 2702 4782 2702 M 4838 2700 4838 2700 4838 2700 4838 2700 4838 2699 4838 2699 4838 2699 4838 2699 4838 2698 4839 2698 4840 2698 4840 2697 4842 2697 4842 2697 4842 2697 4842 2698 4842 2698 4842 2698 4842 2698 4841 2698 4841 2698 4839 2699 4838 2700 M 4786 2702 4786 2701 4786 2700 4786 2700 4787 2701 4787 2702 4787 2702 4787 2702 4787 2703 4787 2703 4785 2703 4785 2702 4786 2702 4786 2702 M 4721 2703 4721 2703 4721 2703 4721 2703 4720 2703 4720 2703 4719 2702 4719 2702 4719 2702 4720 2701 4720 2701 4720 2701 4721 2701 4721 2701 4721 2702 4722 2702 4722 2702 4722 2702 4721 2703 4721 2703 M 4779 2718 4779 2718 4778 2718 4777 2718 4777 2718 4776 2717 4775 2715 4775 2714 4776 2713 4776 2713 4778 2713 4780 2712 4781 2712 4782 2712 4785 2712 4786 2712 4786 2712 4787 2712 4789 2712 4789 2712 4790 2711 4791 2711 4792 2712 4792 2712 4793 2713 4793 2713 4794 2714 4794 2714 4795 2714 4795 2714 4796 2716 4796 2716 4796 2717 4797 2717 4797 2717 4798 2717 4799 2716 4801 2718 4802 2719 4802 2719 4802 2721 4803 2721 4804 2721 4804 2721 4804 2721 4805 2722 4805 2722 4805 2723 4805 2723 4805 2724 4803 2725 4803 2726 4802 2726 4800 2726 4798 2726 4795 2726 4794 2726 4793 2725 4792 2724 4792 2724 4792 2723 4791 2722 4791 2722 4791 2722 4788 2721 4787 2720 4787 2720 4787 2720 4787 2719 4786 2719 4783 2718 4779 2718 4779 2718 M 4846 2725 4846 2725 4847 2724 4848 2725 4846 2728 4845 2728 4845 2727 4845 2727 4845 2727 4845 2726 4846 2725 4846 2725 M 4819 2731 4820 2731 4821 2730 4821 2729 4822 2729 4822 2729 4822 2729 4822 2729 4823 2729 4824 2729 4824 2729 4824 2730 4824 2730 4823 2731 4822 2732 4821 2732 4821 2732 4820 2732 4819 2732 4819 2732 4819 2731 4819 2731 4819 2731 M 4837 2734 4839 2734 4841 2733 4841 2733 4842 2732 4844 2731 4846 2729 4846 2729 4846 2729 4846 2732 4846 2733 4845 2733 4844 2734 4843 2735 4843 2735 4843 2735 4843 2735 4842 2735 4842 2735 4842 2735 4842 2735 4840 2736 4839 2736 4839 2736 4837 2737 4837 2737 4837 2737 4837 2735 4837 2735 4837 2734 4837 2734 4837 2734" />
+<path id="isle-of-man" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2799 1699 2799 1699 2800 1697 2800 1696 2801 1696 2801 1696 2802 1696 2802 1695 2802 1695 2802 1695 2802 1695 2802 1694 2803 1694 2803 1694 2804 1694 2805 1693 2805 1693 2806 1695 2806 1696 2805 1697 2805 1697 2804 1698 2803 1698 2802 1698 2801 1699 2800 1699 2800 1699 2800 1699 2799 1699" />
+<path id="in" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4349 2184 4348 2184 4347 2183 4346 2184 4346 2185 4345 2185 4344 2184 4344 2184 4343 2184 4344 2185 4344 2186 4344 2186 4344 2187 4343 2188 4343 2188 4342 2189 4341 2190 4341 2190 4341 2191 4341 2191 4341 2191 4341 2192 4341 2193 4342 2194 4341 2195 4340 2195 4338 2196 4337 2195 4337 2195 4336 2193 4336 2192 4336 2191 4335 2191 4335 2191 4335 2192 4335 2192 4335 2193 4335 2194 4335 2194 4334 2194 4334 2194 4334 2194 4334 2193 4334 2192 4334 2192 4333 2191 4333 2190 4333 2189 4333 2188 4332 2187 4331 2185 4331 2184 4331 2183 4332 2183 4332 2183 4332 2182 4332 2181 4332 2181 4333 2180 4335 2177 4335 2177 4336 2178 4337 2178 4337 2178 4338 2178 4338 2178 4340 2177 4343 2177 4343 2176 4343 2175 4343 2174 4344 2174 4344 2174 4346 2173 4347 2173 4347 2172 4347 2171 4347 2171 4347 2171 4347 2170 4347 2170 4348 2167 4349 2167 4349 2166 4349 2166 4348 2166 4348 2165 4349 2165 4350 2165 4351 2166 4351 2166 4352 2165 4352 2165 4352 2165 4352 2164 4351 2164 4351 2163 4351 2163 4351 2163 4350 2162 4348 2161 4346 2160 4346 2160 4345 2160 4343 2160 4340 2161 4340 2161 4336 2161 4333 2160 4333 2160 4331 2160 4330 2160 4330 2160 4329 2160 4328 2160 4328 2161 4326 2161 4326 2161 4322 2161 4321 2160 4320 2161 4320 2161 4319 2161 4319 2161 4315 2160 4313 2159 4312 2158 4311 2158 4311 2159 4310 2159 4310 2158 4310 2157 4310 2156 4310 2155 4310 2154 4310 2154 4310 2153 4310 2152 4309 2150 4310 2150 4310 2149 4310 2149 4310 2147 4309 2146 4308 2145 4307 2145 4307 2144 4307 2144 4306 2144 4306 2145 4306 2145 4306 2146 4306 2146 4305 2147 4305 2147 4302 2147 4302 2147 4301 2146 4299 2145 4298 2144 4298 2142 4298 2141 4296 2140 4295 2140 4295 2141 4295 2142 4296 2142 4297 2143 4297 2143 4294 2143 4292 2143 4292 2142 4292 2141 4291 2141 4290 2140 4290 2140 4287 2138 4287 2138 4287 2137 4287 2138 4286 2140 4286 2140 4286 2139 4288 2140 4288 2140 4289 2141 4289 2141 4288 2142 4287 2142 4286 2143 4286 2143 4286 2144 4285 2144 4283 2145 4283 2146 4282 2149 4282 2150 4283 2151 4283 2151 4284 2150 4284 2150 4285 2150 4285 2150 4288 2153 4288 2153 4288 2154 4289 2155 4291 2155 4292 2155 4293 2155 4293 2155 4294 2156 4294 2156 4294 2156 4294 2157 4294 2157 4295 2158 4295 2158 4296 2158 4297 2159 4296 2160 4295 2161 4295 2160 4292 2160 4291 2160 4290 2160 4288 2160 4288 2160 4288 2161 4288 2162 4288 2163 4287 2164 4286 2165 4285 2165 4285 2165 4285 2165 4284 2164 4283 2165 4283 2165 4283 2166 4283 2166 4281 2168 4282 2171 4283 2171 4284 2172 4285 2172 4286 2173 4288 2174 4289 2174 4291 2174 4291 2174 4292 2174 4292 2175 4292 2175 4292 2175 4293 2176 4292 2176 4292 2176 4292 2177 4292 2177 4292 2178 4292 2178 4293 2179 4292 2180 4292 2181 4291 2181 4290 2181 4290 2183 4290 2185 4290 2185 4293 2188 4293 2187 4293 2188 4292 2190 4292 2190 4292 2191 4292 2191 4293 2192 4294 2191 4296 2192 4295 2193 4295 2193 4295 2194 4294 2195 4294 2196 4295 2197 4296 2205 4296 2206 4297 2207 4297 2207 4297 2208 4298 2208 4298 2209 4298 2209 4298 2209 4297 2209 4297 2210 4297 2210 4297 2211 4298 2211 4297 2212 4297 2213 4297 2213 4298 2217 4298 2217 4297 2217 4297 2217 4295 2217 4294 2217 4293 2218 4292 2218 4292 2218 4291 2216 4292 2214 4292 2212 4292 2212 4292 2211 4293 2211 4293 2210 4292 2210 4292 2211 4291 2212 4291 2212 4291 2212 4291 2211 4291 2210 4291 2210 4291 2209 4291 2209 4291 2208 4291 2208 4291 2209 4290 2210 4290 2210 4291 2210 4290 2211 4290 2212 4290 2213 4290 2213 4289 2214 4290 2215 4290 2215 4291 2215 4291 2216 4290 2217 4290 2218 4289 2219 4289 2219 4289 2219 4288 2219 4288 2218 4288 2218 4289 2218 4289 2217 4289 2214 4289 2212 4289 2212 4288 2213 4288 2215 4288 2216 4288 2217 4288 2217 4287 2218 4285 2217 4285 2217 4285 2216 4285 2215 4285 2215 4285 2214 4285 2215 4285 2215 4285 2216 4285 2218 4285 2218 4284 2217 4283 2216 4284 2216 4284 2214 4284 2214 4283 2213 4283 2213 4283 2212 4283 2211 4284 2211 4284 2210 4284 2210 4284 2209 4283 2208 4283 2208 4282 2208 4281 2208 4281 2207 4280 2207 4280 2206 4280 2205 4280 2204 4279 2204 4280 2207 4280 2207 4280 2208 4281 2208 4282 2208 4282 2208 4283 2208 4283 2209 4283 2209 4283 2210 4282 2210 4282 2211 4281 2212 4280 2213 4280 2214 4278 2215 4278 2216 4277 2216 4275 2217 4273 2217 4272 2217 4272 2217 4270 2218 4268 2218 4266 2219 4266 2219 4265 2220 4265 2220 4264 2221 4263 2223 4262 2224 4262 2224 4262 2225 4262 2225 4263 2228 4264 2230 4264 2230 4264 2231 4263 2231 4264 2232 4264 2232 4265 2232 4265 2233 4262 2234 4262 2234 4261 2235 4261 2235 4260 2236 4260 2237 4260 2237 4261 2237 4261 2236 4262 2237 4261 2237 4261 2238 4260 2239 4259 2239 4259 2239 4258 2239 4257 2240 4256 2240 4256 2241 4255 2243 4255 2243 4254 2243 4253 2242 4252 2242 4253 2243 4253 2243 4254 2244 4253 2244 4251 2245 4249 2246 4248 2246 4247 2246 4247 2246 4244 2247 4243 2247 4240 2248 4240 2248 4240 2248 4240 2248 4240 2248 4240 2247 4241 2247 4241 2247 4242 2247 4242 2246 4242 2246 4241 2245 4240 2245 4240 2245 4238 2246 4238 2246 4236 2247 4236 2248 4235 2249 4235 2249 4235 2250 4235 2251 4235 2251 4236 2250 4236 2250 4236 2249 4237 2249 4237 2249 4238 2249 4238 2248 4239 2248 4239 2248 4239 2249 4238 2249 4238 2249 4237 2249 4237 2250 4238 2250 4237 2250 4237 2250 4236 2251 4235 2252 4234 2252 4231 2255 4230 2256 4229 2257 4229 2257 4228 2257 4228 2257 4229 2258 4229 2258 4229 2258 4228 2259 4227 2260 4227 2260 4227 2260 4226 2261 4225 2263 4222 2266 4221 2267 4219 2270 4219 2270 4218 2271 4216 2271 4215 2272 4213 2273 4210 2275 4209 2276 4207 2279 4206 2280 4204 2282 4204 2282 4203 2282 4201 2283 4199 2284 4198 2285 4197 2285 4195 2286 4193 2287 4193 2287 4192 2288 4191 2289 4190 2290 4189 2291 4189 2292 4189 2293 4189 2293 4191 2294 4191 2293 4191 2293 4191 2294 4190 2296 4190 2298 4188 2299 4188 2299 4186 2300 4185 2300 4184 2301 4181 2302 4180 2302 4180 2302 4179 2302 4178 2301 4177 2301 4176 2301 4175 2301 4174 2301 4174 2301 4173 2302 4173 2302 4171 2306 4171 2307 4170 2308 4169 2309 4169 2310 4169 2310 4169 2310 4167 2309 4167 2308 4167 2307 4167 2307 4167 2307 4167 2307 4167 2308 4167 2309 4166 2311 4166 2310 4166 2310 4166 2309 4165 2309 4164 2309 4164 2309 4162 2309 4159 2310 4159 2311 4158 2311 4158 2311 4157 2312 4157 2312 4156 2313 4156 2314 4155 2317 4155 2317 4154 2318 4154 2321 4154 2322 4154 2325 4155 2327 4155 2328 4156 2329 4156 2330 4156 2333 4155 2335 4155 2336 4155 2337 4155 2338 4156 2340 4156 2341 4157 2342 4157 2342 4157 2343 4156 2343 4156 2344 4156 2344 4157 2346 4157 2346 4158 2348 4158 2348 4157 2347 4157 2346 4157 2345 4155 2343 4154 2344 4154 2345 4154 2345 4154 2346 4155 2347 4155 2347 4156 2347 4157 2347 4158 2348 4158 2348 4158 2349 4158 2352 4158 2353 4157 2354 4157 2356 4157 2357 4157 2358 4157 2358 4156 2360 4155 2363 4155 2364 4154 2365 4153 2366 4152 2368 4152 2368 4152 2369 4151 2370 4151 2370 4151 2370 4151 2371 4151 2371 4150 2372 4150 2373 4150 2373 4150 2373 4150 2374 4150 2374 4150 2374 4149 2374 4149 2375 4149 2375 4149 2376 4149 2378 4149 2380 4150 2381 4150 2384 4150 2386 4150 2387 4150 2387 4150 2388 4150 2388 4150 2388 4150 2389 4150 2390 4150 2390 4150 2390 4150 2394 4151 2396 4151 2397 4151 2398 4150 2398 4149 2398 4149 2398 4149 2398 4148 2398 4149 2398 4149 2399 4148 2399 4146 2398 4145 2398 4143 2398 4142 2398 4141 2399 4141 2400 4141 2400 4141 2401 4141 2402 4141 2403 4140 2403 4140 2404 4140 2404 4139 2404 4139 2405 4137 2407 4137 2408 4136 2409 4135 2411 4135 2412 4136 2412 4136 2413 4137 2413 4138 2414 4138 2414 4139 2414 4140 2414 4140 2414 4142 2415 4144 2416 4143 2416 4143 2416 4142 2415 4142 2415 4142 2415 4140 2415 4140 2415 4137 2414 4136 2414 4135 2415 4135 2415 4134 2415 4131 2416 4128 2417 4128 2417 4127 2417 4127 2417 4125 2419 4124 2420 4124 2420 4124 2421 4123 2425 4123 2425 4123 2427 4122 2429 4121 2429 4121 2429 4121 2429 4120 2430 4117 2432 4115 2432 4115 2432 4114 2433 4114 2433 4113 2434 4113 2433 4112 2433 4110 2433 4108 2432 4108 2431 4106 2430 4106 2430 4106 2429 4105 2429 4104 2428 4104 2428 4104 2428 4102 2426 4102 2425 4100 2422 4098 2421 4098 2420 4098 2420 4099 2419 4099 2419 4099 2419 4099 2419 4098 2419 4097 2419 4096 2416 4095 2415 4095 2414 4094 2413 4094 2412 4094 2411 4094 2411 4094 2410 4094 2410 4094 2410 4094 2409 4093 2408 4093 2406 4093 2404 4093 2403 4093 2404 4093 2404 4093 2405 4093 2405 4094 2406 4095 2406 4095 2409 4095 2409 4095 2410 4095 2411 4096 2411 4097 2410 4096 2410 4096 2409 4096 2408 4095 2406 4095 2405 4095 2404 4094 2404 4093 2401 4092 2401 4092 2401 4093 2402 4093 2403 4093 2403 4092 2402 4092 2402 4092 2401 4092 2400 4090 2396 4089 2394 4088 2391 4087 2390 4087 2389 4087 2387 4084 2381 4084 2380 4083 2379 4083 2379 4082 2378 4082 2377 4082 2377 4081 2376 4079 2373 4077 2371 4077 2371 4076 2371 4076 2370 4075 2368 4073 2364 4072 2361 4071 2359 4071 2359 4071 2359 4070 2357 4070 2357 4069 2354 4069 2351 4068 2347 4068 2345 4067 2342 4067 2341 4066 2340 4065 2338 4065 2337 4064 2335 4064 2334 4063 2333 4063 2332 4063 2332 4064 2331 4063 2330 4062 2330 4062 2331 4062 2331 4061 2329 4061 2328 4061 2327 4061 2327 4060 2327 4059 2326 4059 2325 4058 2324 4056 2322 4056 2320 4055 2318 4055 2317 4054 2317 4054 2317 4054 2316 4056 2317 4056 2317 4056 2317 4056 2317 4056 2316 4054 2316 4054 2316 4054 2316 4053 2315 4052 2312 4052 2311 4052 2311 4051 2311 4051 2311 4051 2310 4051 2309 4050 2309 4050 2308 4049 2308 4049 2307 4049 2307 4048 2306 4047 2303 4046 2300 4046 2299 4046 2299 4047 2299 4046 2297 4045 2293 4045 2291 4045 2290 4045 2290 4045 2290 4045 2289 4045 2288 4044 2285 4044 2284 4044 2283 4043 2281 4043 2281 4043 2280 4043 2280 4043 2279 4043 2278 4042 2277 4041 2275 4041 2272 4040 2270 4040 2269 4040 2269 4039 2268 4039 2267 4039 2267 4039 2264 4039 2263 4039 2262 4040 2262 4041 2263 4041 2263 4041 2262 4040 2261 4040 2260 4041 2260 4042 2259 4040 2258 4040 2258 4039 2259 4038 2260 4037 2260 4038 2259 4038 2258 4038 2256 4038 2257 4037 2255 4037 2254 4039 2254 4041 2255 4041 2256 4042 2256 4042 2255 4041 2254 4040 2254 4039 2254 4038 2254 4037 2253 4036 2250 4036 2248 4036 2247 4036 2246 4036 2246 4036 2245 4036 2244 4036 2243 4037 2242 4037 2241 4037 2241 4037 2240 4037 2238 4037 2238 4038 2237 4038 2237 4038 2237 4038 2236 4039 2236 4039 2235 4040 2231 4040 2231 4040 2230 4039 2230 4039 2230 4038 2229 4039 2227 4039 2226 4038 2225 4037 2225 4037 2226 4035 2226 4035 2225 4035 2225 4036 2224 4036 2224 4035 2223 4035 2223 4035 2223 4034 2221 4034 2221 4035 2221 4036 2220 4037 2220 4036 2219 4036 2220 4036 2220 4034 2220 4035 2220 4035 2219 4036 2219 4038 2217 4039 2217 4039 2217 4039 2217 4043 2215 4043 2215 4042 2215 4041 2216 4041 2216 4040 2216 4037 2216 4037 2216 4035 2216 4034 2216 4034 2216 4033 2216 4033 2216 4034 2215 4034 2214 4034 2214 4034 2214 4035 2212 4035 2212 4036 2212 4036 2212 4037 2211 4035 2212 4035 2212 4034 2212 4034 2213 4033 2212 4033 2210 4034 2209 4034 2208 4034 2208 4035 2208 4035 2208 4036 2208 4037 2208 4037 2208 4038 2208 4038 2207 4039 2207 4039 2208 4040 2208 4040 2207 4038 2207 4038 2207 4036 2207 4034 2207 4034 2207 4033 2207 4032 2207 4031 2207 4031 2206 4029 2206 4028 2206 4027 2207 4028 2207 4029 2207 4030 2207 4030 2208 4030 2209 4030 2210 4029 2211 4029 2211 4028 2212 4027 2212 4026 2212 4027 2212 4027 2212 4028 2214 4026 2214 4025 2214 4025 2213 4025 2214 4025 2215 4026 2215 4028 2214 4028 2215 4028 2216 4029 2216 4030 2217 4029 2219 4029 2220 4028 2220 4028 2221 4027 2222 4027 2223 4027 2224 4026 2225 4025 2225 4022 2226 4018 2227 4017 2229 4016 2229 4015 2229 4013 2230 4012 2231 4011 2231 4008 2232 4006 2232 4005 2231 4002 2230 4001 2230 3998 2228 3997 2228 3996 2227 3994 2225 3994 2225 3993 2224 3991 2222 3991 2221 3990 2220 3990 2220 3987 2217 3987 2217 3987 2217 3986 2217 3986 2217 3984 2215 3982 2213 3981 2212 3980 2211 3979 2210 3977 2208 3977 2208 3977 2207 3976 2207 3976 2206 3976 2206 3977 2205 3977 2204 3977 2204 3978 2203 3980 2205 3980 2205 3980 2206 3981 2207 3981 2207 3982 2207 3985 2206 3988 2205 3991 2204 3992 2203 3993 2203 3993 2202 3994 2202 3995 2202 3995 2202 3996 2202 3996 2202 3996 2201 3998 2198 3999 2197 3999 2197 4000 2196 4001 2196 4001 2196 4001 2195 4001 2194 4001 2194 4001 2193 4000 2194 3999 2194 3999 2194 4000 2195 3999 2196 3999 2196 3998 2196 3998 2196 3997 2196 3991 2197 3990 2198 3989 2198 3988 2199 3988 2199 3984 2198 3981 2198 3981 2198 3979 2197 3979 2197 3978 2196 3977 2195 3976 2195 3976 2195 3973 2194 3972 2193 3970 2191 3968 2188 3968 2187 3968 2185 3971 2183 3973 2182 3973 2182 3971 2182 3968 2184 3967 2184 3967 2185 3967 2185 3966 2186 3965 2186 3964 2186 3963 2185 3964 2185 3964 2183 3964 2182 3965 2181 3966 2180 3967 2180 3971 2180 3972 2180 3973 2180 3973 2179 3973 2178 3973 2174 3973 2174 3974 2174 3974 2174 3976 2174 3976 2174 3976 2174 3977 2175 3977 2175 3978 2174 3981 2175 3983 2175 3986 2175 3987 2175 3987 2175 3988 2176 3989 2176 3993 2176 3993 2176 3994 2176 3994 2175 3995 2174 3995 2174 3996 2174 3997 2174 3998 2173 4000 2173 4002 2172 4002 2172 4003 2173 4002 2173 4002 2174 4002 2175 4003 2175 4005 2175 4006 2175 4007 2175 4007 2174 4008 2173 4008 2173 4009 2173 4009 2173 4009 2173 4011 2172 4011 2172 4010 2172 4009 2172 4009 2170 4009 2170 4009 2169 4010 2168 4010 2168 4009 2165 4009 2165 4008 2165 4008 2164 4008 2164 4008 2163 4007 2162 4007 2162 4007 2161 4007 2161 4007 2160 4007 2160 4006 2160 4006 2159 4005 2159 4004 2157 4004 2156 4004 2154 4004 2154 4004 2153 4004 2153 4004 2152 4004 2152 4003 2152 4003 2152 4002 2152 4002 2152 4001 2152 3999 2152 3999 2152 3998 2152 3998 2152 3995 2149 3994 2147 3995 2146 3995 2146 3995 2145 3995 2145 3996 2144 3996 2144 3996 2143 3996 2141 3996 2141 3996 2139 3996 2138 3995 2138 3995 2138 3995 2138 3994 2138 3994 2138 3992 2138 3991 2138 3990 2138 3990 2138 3989 2137 3989 2137 3989 2137 3988 2136 3987 2136 3987 2136 3986 2136 3986 2135 3985 2135 3985 2135 3985 2135 3985 2134 3985 2131 3986 2128 3988 2127 3989 2126 3989 2126 3991 2125 3994 2122 3994 2122 3994 2121 3994 2120 3994 2120 3994 2120 3995 2119 3995 2118 3996 2117 3997 2117 3999 2115 4001 2115 4001 2115 4002 2115 4002 2115 4003 2116 4004 2117 4004 2117 4004 2117 4004 2118 4005 2119 4005 2120 4005 2120 4006 2120 4006 2120 4007 2120 4007 2120 4008 2120 4008 2120 4009 2119 4010 2119 4010 2119 4011 2118 4012 2118 4012 2118 4013 2118 4013 2118 4015 2117 4015 2117 4016 2117 4017 2117 4017 2117 4018 2117 4019 2117 4019 2117 4020 2117 4023 2116 4023 2115 4024 2113 4025 2112 4026 2111 4027 2110 4028 2109 4028 2109 4029 2106 4030 2105 4031 2103 4034 2102 4035 2101 4035 2101 4037 2100 4038 2099 4040 2099 4041 2097 4042 2096 4042 2095 4045 2090 4045 2090 4046 2087 4047 2084 4048 2084 4050 2083 4052 2083 4053 2082 4054 2082 4056 2081 4056 2080 4056 2079 4056 2079 4056 2078 4055 2078 4055 2078 4055 2077 4057 2075 4058 2074 4059 2073 4060 2072 4061 2071 4062 2070 4063 2069 4066 2067 4067 2067 4068 2066 4068 2066 4068 2066 4067 2065 4067 2066 4066 2066 4066 2066 4066 2065 4065 2065 4066 2062 4066 2061 4066 2061 4067 2061 4067 2061 4067 2060 4066 2058 4066 2057 4065 2057 4065 2056 4065 2056 4067 2053 4068 2053 4069 2052 4071 2051 4071 2051 4072 2050 4072 2051 4073 2051 4074 2051 4076 2050 4077 2050 4078 2049 4079 2048 4079 2048 4079 2047 4079 2047 4078 2047 4078 2046 4078 2046 4077 2045 4074 2044 4073 2044 4071 2044 4069 2044 4068 2044 4068 2043 4067 2042 4068 2040 4067 2039 4067 2039 4065 2039 4063 2039 4062 2039 4062 2038 4063 2038 4063 2037 4062 2036 4062 2035 4062 2035 4061 2035 4061 2035 4061 2035 4060 2035 4060 2035 4058 2033 4057 2032 4057 2032 4057 2032 4057 2031 4058 2031 4058 2031 4059 2030 4059 2030 4060 2028 4060 2027 4060 2027 4060 2027 4059 2026 4059 2026 4058 2026 4058 2026 4057 2025 4057 2025 4057 2024 4057 2024 4057 2023 4057 2022 4058 2022 4058 2022 4058 2022 4059 2022 4059 2022 4060 2022 4060 2022 4061 2021 4061 2021 4061 2021 4062 2020 4061 2019 4061 2019 4058 2019 4058 2019 4057 2019 4057 2019 4056 2019 4056 2019 4056 2018 4055 2018 4056 2018 4056 2017 4056 2017 4057 2017 4057 2017 4057 2016 4057 2015 4056 2014 4055 2014 4055 2014 4055 2014 4054 2014 4054 2014 4054 2013 4055 2011 4055 2011 4056 2009 4056 2009 4057 2009 4058 2008 4059 2008 4059 2008 4060 2008 4061 2007 4062 2007 4062 2007 4063 2007 4063 2007 4064 2007 4065 2007 4065 2008 4066 2008 4067 2008 4068 2008 4068 2008 4074 2009 4075 2009 4075 2009 4076 2009 4077 2009 4078 2010 4079 2011 4083 2011 4083 2011 4086 2011 4086 2011 4087 2011 4087 2010 4088 2010 4089 2009 4089 2009 4090 2009 4090 2009 4090 2010 4091 2010 4091 2010 4092 2010 4093 2010 4093 2009 4093 2008 4094 2008 4096 2007 4096 2007 4096 2007 4097 2007 4099 2008 4100 2007 4101 2008 4101 2008 4101 2009 4102 2009 4102 2009 4103 2009 4103 2009 4104 2007 4104 2006 4105 2004 4106 2003 4106 2003 4106 2002 4106 2002 4106 2002 4109 2000 4110 2000 4111 1999 4114 1998 4117 1996 4118 1996 4118 1995 4118 1996 4119 1996 4119 1996 4119 1996 4120 1996 4121 1996 4121 1995 4122 1996 4122 1996 4122 1996 4121 1998 4121 1998 4121 1999 4122 2000 4122 2001 4123 2002 4124 2004 4124 2004 4124 2005 4124 2005 4124 2005 4125 2006 4125 2008 4125 2009 4126 2009 4126 2010 4127 2010 4127 2010 4128 2010 4129 2010 4130 2010 4131 2011 4131 2011 4131 2011 4132 2011 4136 2013 4137 2014 4137 2014 4137 2015 4137 2015 4137 2016 4136 2016 4136 2017 4135 2017 4134 2017 4134 2018 4134 2018 4133 2018 4133 2018 4133 2018 4133 2019 4133 2020 4133 2020 4134 2022 4134 2022 4134 2023 4134 2023 4134 2024 4134 2025 4134 2026 4134 2027 4134 2027 4134 2028 4134 2028 4135 2029 4136 2029 4136 2029 4137 2030 4138 2031 4139 2032 4140 2032 4140 2032 4140 2032 4141 2032 4141 2032 4143 2034 4143 2034 4143 2036 4143 2036 4143 2037 4143 2037 4144 2037 4145 2039 4145 2040 4145 2041 4145 2041 4145 2041 4144 2041 4144 2042 4142 2043 4141 2043 4140 2043 4140 2043 4140 2043 4139 2044 4139 2044 4138 2045 4136 2046 4136 2046 4134 2044 4133 2044 4133 2044 4133 2043 4133 2042 4133 2041 4133 2041 4132 2041 4132 2042 4131 2042 4131 2042 4130 2042 4129 2042 4129 2042 4127 2043 4127 2043 4127 2043 4127 2043 4128 2044 4129 2047 4128 2048 4129 2048 4130 2048 4130 2049 4130 2049 4131 2050 4132 2051 4133 2051 4133 2052 4133 2052 4133 2053 4133 2053 4133 2053 4132 2055 4132 2056 4133 2057 4134 2058 4133 2059 4132 2059 4132 2059 4133 2062 4134 2063 4135 2063 4137 2061 4138 2061 4138 2060 4139 2061 4140 2062 4140 2063 4141 2064 4142 2065 4142 2065 4143 2066 4144 2067 4146 2068 4147 2068 4147 2068 4147 2068 4149 2068 4151 2068 4151 2068 4151 2069 4152 2069 4152 2069 4152 2069 4156 2071 4157 2072 4156 2074 4156 2074 4156 2074 4157 2074 4158 2074 4159 2075 4161 2076 4162 2076 4163 2076 4165 2077 4165 2078 4165 2078 4166 2078 4167 2079 4168 2079 4169 2079 4169 2080 4169 2080 4168 2080 4167 2081 4165 2083 4164 2084 4163 2084 4163 2084 4162 2084 4162 2085 4161 2086 4160 2087 4160 2087 4159 2087 4159 2087 4159 2088 4159 2089 4159 2089 4159 2090 4158 2091 4158 2091 4157 2092 4157 2093 4157 2094 4158 2094 4158 2095 4157 2096 4157 2097 4156 2097 4154 2100 4154 2101 4154 2101 4154 2102 4155 2103 4157 2103 4158 2104 4159 2105 4160 2106 4161 2105 4161 2105 4161 2105 4161 2104 4162 2105 4164 2106 4168 2108 4169 2109 4170 2109 4171 2109 4171 2109 4172 2109 4172 2109 4172 2110 4174 2113 4175 2113 4176 2114 4178 2115 4180 2116 4181 2117 4183 2118 4184 2117 4184 2117 4185 2117 4185 2117 4186 2117 4187 2117 4189 2119 4190 2119 4191 2120 4192 2120 4192 2121 4192 2121 4194 2120 4194 2120 4195 2120 4195 2120 4196 2120 4196 2120 4196 2121 4197 2122 4197 2122 4197 2123 4200 2124 4201 2124 4202 2124 4203 2124 4204 2124 4205 2125 4205 2125 4205 2126 4206 2126 4206 2126 4206 2126 4207 2125 4207 2125 4207 2124 4209 2124 4210 2124 4211 2124 4213 2125 4213 2125 4213 2125 4214 2125 4214 2126 4215 2125 4215 2124 4215 2124 4216 2124 4217 2124 4217 2124 4219 2123 4221 2125 4222 2125 4223 2125 4225 2126 4226 2126 4227 2126 4227 2127 4228 2128 4228 2128 4228 2129 4227 2130 4227 2130 4227 2131 4228 2131 4229 2131 4229 2131 4229 2131 4230 2131 4232 2132 4236 2134 4236 2135 4236 2135 4238 2135 4238 2135 4238 2135 4240 2135 4241 2134 4241 2134 4242 2134 4243 2133 4244 2134 4244 2135 4244 2136 4244 2136 4244 2136 4245 2137 4246 2138 4248 2137 4248 2137 4249 2137 4250 2137 4250 2137 4250 2137 4251 2138 4252 2138 4252 2138 4254 2138 4256 2138 4259 2140 4260 2141 4262 2140 4263 2140 4263 2139 4264 2139 4264 2139 4265 2139 4266 2139 4267 2141 4269 2141 4270 2141 4271 2141 4272 2140 4272 2140 4273 2141 4273 2141 4275 2141 4275 2141 4276 2140 4277 2140 4279 2140 4279 2140 4279 2140 4280 2141 4281 2141 4282 2140 4282 2139 4282 2139 4282 2138 4283 2137 4283 2136 4284 2136 4284 2135 4283 2133 4282 2131 4282 2131 4281 2130 4280 2129 4281 2129 4281 2128 4281 2128 4281 2127 4281 2123 4281 2123 4282 2122 4282 2121 4283 2120 4284 2119 4284 2118 4283 2117 4283 2117 4283 2117 4283 2117 4283 2116 4286 2116 4287 2116 4289 2115 4289 2114 4291 2113 4292 2114 4293 2114 4294 2115 4294 2117 4295 2117 4295 2118 4294 2120 4294 2121 4294 2121 4293 2121 4293 2123 4293 2124 4293 2125 4294 2125 4295 2126 4295 2126 4295 2126 4295 2127 4295 2127 4294 2127 4294 2127 4293 2128 4293 2129 4293 2129 4293 2129 4294 2129 4294 2130 4294 2130 4295 2132 4296 2132 4297 2132 4298 2133 4298 2134 4298 2134 4299 2134 4299 2134 4300 2134 4300 2134 4301 2134 4301 2134 4302 2133 4302 2133 4304 2134 4305 2134 4306 2134 4306 2135 4307 2135 4307 2135 4306 2136 4307 2136 4309 2136 4309 2136 4309 2136 4310 2136 4314 2135 4314 2135 4315 2135 4315 2135 4315 2134 4316 2134 4316 2134 4318 2133 4319 2133 4319 2133 4320 2134 4321 2134 4322 2134 4323 2135 4323 2135 4324 2135 4324 2135 4327 2135 4327 2135 4328 2135 4328 2135 4329 2135 4330 2134 4332 2134 4333 2135 4333 2135 4333 2135 4334 2135 4334 2134 4335 2134 4335 2134 4335 2133 4336 2133 4337 2134 4337 2134 4340 2134 4340 2134 4342 2133 4344 2134 4345 2134 4345 2133 4346 2133 4346 2133 4346 2133 4346 2132 4346 2132 4346 2131 4346 2131 4345 2130 4345 2130 4345 2130 4345 2129 4345 2128 4346 2127 4346 2126 4346 2125 4344 2124 4344 2124 4342 2124 4341 2124 4339 2123 4339 2123 4338 2122 4338 2121 4338 2121 4338 2120 4339 2120 4339 2120 4339 2119 4339 2119 4339 2119 4342 2119 4343 2120 4344 2120 4345 2120 4345 2119 4346 2119 4346 2118 4347 2118 4347 2118 4349 2118 4349 2117 4349 2119 4350 2119 4350 2118 4352 2118 4353 2117 4355 2117 4356 2116 4356 2116 4356 2115 4355 2114 4355 2114 4355 2113 4356 2113 4356 2113 4358 2112 4358 2112 4359 2112 4359 2112 4361 2110 4362 2110 4364 2110 4364 2110 4364 2109 4364 2109 4365 2107 4366 2107 4366 2106 4366 2105 4367 2105 4367 2105 4368 2104 4369 2104 4369 2105 4370 2105 4371 2105 4371 2105 4372 2104 4374 2104 4375 2104 4376 2105 4376 2104 4377 2102 4377 2102 4378 2101 4379 2100 4379 2100 4379 2099 4380 2098 4381 2097 4383 2096 4384 2096 4385 2096 4386 2096 4386 2095 4387 2094 4388 2094 4389 2095 4390 2097 4392 2097 4394 2097 4398 2099 4399 2099 4399 2099 4400 2098 4401 2097 4401 2096 4402 2095 4405 2094 4407 2093 4408 2093 4409 2092 4409 2092 4410 2092 4411 2093 4411 2094 4411 2094 4412 2095 4412 2095 4413 2095 4413 2095 4414 2095 4414 2095 4415 2095 4414 2096 4413 2097 4413 2097 4412 2097 4412 2097 4411 2098 4411 2100 4411 2101 4412 2101 4412 2100 4413 2100 4413 2100 4413 2099 4413 2099 4414 2099 4416 2098 4416 2099 4416 2100 4417 2101 4418 2102 4418 2103 4418 2103 4415 2106 4415 2106 4414 2107 4414 2109 4415 2110 4416 2109 4418 2108 4419 2108 4419 2108 4420 2109 4420 2109 4421 2109 4421 2109 4424 2110 4425 2110 4425 2110 4426 2109 4426 2109 4427 2109 4428 2110 4428 2111 4429 2112 4430 2112 4430 2113 4429 2114 4430 2115 4430 2115 4430 2116 4426 2119 4425 2119 4424 2120 4423 2121 4423 2121 4422 2122 4423 2124 4424 2125 4424 2126 4425 2126 4425 2127 4427 2129 4426 2130 4425 2130 4424 2129 4424 2129 4423 2129 4422 2128 4422 2128 4422 2127 4421 2126 4421 2126 4421 2126 4420 2125 4418 2125 4416 2126 4415 2126 4412 2127 4411 2127 4411 2127 4410 2128 4409 2128 4409 2129 4408 2129 4408 2129 4408 2130 4407 2130 4407 2131 4406 2131 4406 2131 4405 2131 4403 2133 4402 2134 4401 2134 4401 2134 4400 2134 4400 2135 4400 2135 4399 2136 4399 2136 4399 2136 4397 2137 4396 2136 4396 2136 4395 2137 4393 2140 4393 2142 4394 2143 4394 2145 4395 2146 4395 2147 4395 2147 4394 2147 4394 2148 4393 2148 4393 2150 4392 2151 4391 2154 4389 2155 4389 2155 4388 2155 4387 2156 4387 2156 4387 2156 4386 2157 4386 2159 4386 2159 4386 2160 4386 2160 4386 2160 4387 2161 4387 2161 4388 2161 4388 2161 4388 2163 4387 2165 4386 2167 4386 2168 4384 2170 4384 2170 4382 2173 4381 2175 4381 2176 4380 2178 4380 2179 4379 2182 4379 2182 4378 2181 4377 2180 4375 2180 4374 2180 4374 2180 4373 2180 4373 2180 4373 2179 4371 2179 4370 2179 4370 2179 4370 2180 4369 2180 4368 2180 4368 2180 4367 2178 4367 2178 4367 2178 4366 2178 4366 2178 4366 2179 4366 2179 4366 2180 4367 2182 4367 2184 4367 2185 4367 2186 4367 2188 4366 2189 4367 2191 4366 2194 4365 2195 4365 2195 4364 2195 4364 2195 4364 2194 4363 2194 4363 2194 4362 2195 4363 2196 4362 2197 4362 2198 4362 2200 4362 2200 4362 2203 4363 2204 4363 2204 4363 2205 4363 2205 4364 2206 4364 2207 4363 2208 4362 2208 4362 2208 4362 2208 4361 2208 4361 2209 4360 2210 4360 2211 4359 2211 4359 2211 4358 2211 4358 2210 4357 2209 4356 2209 4356 2210 4355 2211 4354 2211 4354 2211 4354 2210 4354 2209 4354 2208 4354 2206 4354 2205 4353 2202 4353 2202 4353 2200 4352 2199 4350 2196 4350 2192 4350 2191 4350 2191 4351 2191 4350 2190 4350 2189 4350 2188 4349 2186 4349 2184 4349 2184 4349 2184 M 4283 2213 4283 2213 4283 2214 4283 2214 4283 2215 4283 2215 4283 2215 4283 2217 4282 2217 4281 2217 4281 2217 4281 2217 4281 2216 4281 2216 4282 2214 4282 2214 4282 2213 4283 2213 4283 2213 4283 2213 M 4359 2356 4358 2357 4358 2356 4358 2357 4358 2356 4357 2356 4357 2356 4357 2354 4357 2354 4357 2354 4358 2352 4358 2350 4358 2349 4359 2349 4359 2348 4359 2347 4360 2346 4361 2346 4361 2346 4361 2346 4362 2348 4361 2351 4361 2354 4361 2354 4361 2354 4361 2354 4360 2354 4360 2354 4360 2354 4360 2354 4359 2354 4358 2356 4359 2356 M 4358 2366 4358 2366 4358 2366 4357 2366 4357 2366 4357 2366 4357 2366 4356 2366 4356 2365 4356 2365 4356 2364 4356 2360 4356 2358 4356 2358 4356 2358 4357 2357 4358 2356 4358 2357 4358 2357 4358 2357 4359 2356 4359 2356 4359 2356 4359 2356 4360 2357 4360 2360 4360 2362 4360 2363 4359 2364 4359 2364 4359 2364 4358 2364 4358 2365 4358 2365 4358 2365 4359 2365 4359 2366 4358 2366 M 4356 2370 4356 2369 4357 2369 4357 2368 4357 2368 4357 2368 4357 2368 4357 2367 4356 2367 4357 2366 4357 2366 4357 2366 4357 2366 4357 2366 4357 2366 4357 2366 4358 2366 4358 2366 4358 2366 4359 2366 4359 2367 4358 2368 4357 2369 4356 2370 M 4356 2370 4357 2370 4357 2372 4357 2372 4357 2373 4357 2377 4356 2379 4356 2379 4355 2379 4355 2378 4354 2377 4353 2373 4353 2372 4354 2372 4354 2373 4354 2372 4355 2370 4355 2369 4355 2369 4355 2369 4355 2368 4355 2367 4356 2367 4356 2367 4356 2368 4356 2368 4356 2368 4356 2368 4357 2368 4357 2368 4357 2369 4357 2369 4356 2369 4356 2370 4356 2370 M 4354 2381 4354 2381 4354 2381 4354 2379 4355 2379 4355 2379 4355 2379 4355 2379 4355 2379 4356 2380 4356 2381 4355 2381 4355 2381 4354 2381 M 4037 2384 4037 2384 4037 2383 4038 2383 4037 2384 4037 2384 M 4353 2390 4354 2391 4354 2392 4354 2392 4353 2394 4353 2394 4353 2394 4352 2394 4352 2395 4350 2394 4350 2394 4350 2392 4350 2391 4350 2390 4350 2390 4351 2389 4352 2389 4352 2388 4353 2389 4353 2389 4353 2390 M 4028 2389 4028 2389 4028 2390 4028 2390 4028 2389 4028 2389 4028 2389 4028 2389 M 4035 2394 4035 2394 4035 2394 4035 2394 4035 2394 M 4051 2401 4051 2402 4051 2402 4051 2402 4051 2401 4051 2401 M 4357 2415 4357 2415 4357 2415 4357 2416 4357 2416 4357 2416 4357 2417 4357 2417 4357 2417 4356 2417 4356 2417 4356 2416 4356 2416 4356 2416 4356 2416 4356 2416 4356 2415 4357 2415 4357 2415 4357 2415 M 4042 2430 4042 2430 4042 2431 4042 2431 4041 2431 4041 2431 4042 2430 4042 2430 M 4369 2431 4369 2432 4369 2433 4369 2433 4369 2434 4369 2434 4369 2434 4368 2435 4368 2435 4368 2433 4368 2432 4368 2431 4368 2431 4368 2431 4369 2431 4369 2431 4369 2431 M 4367 2435 4368 2436 4368 2436 4368 2436 4368 2437 4368 2437 4366 2437 4366 2437 4365 2436 4365 2436 4365 2435 4365 2435 4366 2435 4366 2434 4367 2434 4367 2435 M 4372 2444 4372 2445 4372 2446 4371 2447 4370 2447 4370 2447 4370 2446 4370 2445 4370 2445 4371 2445 4371 2444 4371 2444 4372 2444 4372 2444 M 4374 2448 4374 2448 4375 2450 4375 2451 4375 2452 4375 2454 4374 2455 4373 2455 4373 2453 4373 2452 4373 2452 4372 2451 4371 2450 4371 2450 4371 2450 4371 2449 4371 2449 4371 2449 4371 2448 4373 2447 4373 2447 4374 2447 4374 2447 4374 2448 4374 2448" />
+<path id="chagos" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4032 2681 4032 2681 4031 2679 4031 2679 4031 2678 4032 2679 4032 2680 4032 2680 4032 2680 4032 2681 4033 2680 4032 2679 4032 2678 4033 2679 4033 2679 4033 2680 4032 2681 4032 2681" />
+<path id="ir" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3846 2051 3846 2052 3846 2055 3846 2057 3847 2059 3851 2060 3852 2060 3857 2061 3861 2061 3861 2062 3862 2062 3862 2063 3862 2064 3862 2065 3863 2067 3861 2071 3855 2077 3854 2079 3853 2080 3852 2080 3850 2083 3848 2085 3847 2085 3847 2086 3850 2088 3854 2092 3854 2093 3855 2095 3855 2095 3856 2097 3857 2098 3858 2100 3859 2101 3859 2102 3860 2103 3862 2105 3864 2106 3864 2107 3864 2107 3869 2108 3870 2108 3872 2109 3873 2110 3874 2111 3875 2112 3875 2111 3876 2111 3878 2111 3878 2112 3878 2113 3878 2114 3877 2115 3877 2116 3878 2116 3878 2118 3878 2119 3878 2119 3878 2119 3879 2124 3879 2124 3878 2125 3878 2127 3878 2127 3880 2128 3881 2128 3882 2127 3884 2127 3886 2128 3887 2129 3887 2129 3886 2129 3885 2130 3885 2130 3885 2132 3885 2134 3884 2137 3884 2137 3882 2137 3882 2137 3881 2137 3879 2137 3878 2137 3877 2137 3877 2138 3875 2138 3874 2138 3873 2138 3872 2138 3870 2139 3870 2141 3870 2141 3870 2142 3869 2141 3868 2141 3867 2141 3867 2142 3867 2142 3866 2142 3863 2143 3863 2144 3863 2144 3863 2144 3862 2145 3862 2148 3862 2149 3862 2150 3861 2150 3861 2150 3860 2150 3860 2154 3860 2155 3860 2157 3860 2158 3860 2158 3859 2160 3859 2160 3858 2161 3857 2161 3856 2162 3856 2162 3853 2161 3852 2161 3852 2160 3849 2160 3849 2160 3846 2159 3845 2159 3844 2159 3843 2159 3843 2158 3843 2158 3843 2157 3843 2157 3843 2157 3842 2156 3842 2156 3842 2156 3841 2156 3841 2156 3840 2157 3840 2157 3840 2157 3840 2158 3840 2158 3841 2159 3840 2159 3838 2158 3838 2158 3836 2157 3835 2157 3833 2157 3831 2157 3830 2157 3829 2157 3828 2157 3828 2157 3827 2157 3827 2157 3826 2157 3826 2156 3825 2156 3825 2156 3824 2156 3823 2156 3821 2156 3820 2157 3819 2157 3818 2157 3818 2157 3817 2157 3817 2156 3816 2155 3816 2155 3814 2154 3814 2154 3814 2154 3813 2154 3809 2154 3808 2154 3807 2154 3807 2154 3807 2154 3804 2155 3803 2155 3803 2154 3802 2154 3802 2154 3802 2153 3801 2153 3801 2152 3801 2152 3799 2152 3799 2153 3798 2153 3798 2152 3798 2151 3797 2151 3796 2151 3796 2151 3794 2151 3791 2151 3790 2150 3790 2150 3790 2149 3790 2149 3789 2147 3789 2147 3789 2147 3788 2146 3788 2146 3787 2141 3787 2140 3787 2139 3787 2139 3787 2138 3787 2137 3786 2136 3786 2135 3786 2134 3786 2134 3786 2134 3786 2133 3783 2131 3783 2131 3783 2130 3783 2130 3782 2129 3780 2129 3780 2129 3779 2129 3779 2129 3778 2129 3775 2128 3775 2128 3772 2129 3771 2129 3769 2130 3769 2131 3767 2131 3766 2131 3764 2131 3764 2131 3764 2132 3763 2132 3763 2133 3763 2134 3763 2134 3763 2134 3761 2135 3761 2135 3760 2135 3759 2135 3759 2135 3758 2135 3757 2135 3756 2136 3751 2139 3750 2139 3749 2139 3745 2138 3743 2137 3743 2136 3742 2136 3742 2136 3741 2136 3741 2136 3740 2136 3740 2136 3740 2136 3739 2136 3739 2136 3736 2136 3735 2136 3733 2136 3732 2136 3732 2135 3729 2134 3729 2133 3729 2133 3729 2132 3729 2132 3729 2132 3728 2131 3726 2131 3725 2131 3724 2130 3723 2130 3722 2129 3719 2128 3719 2127 3718 2127 3717 2126 3716 2126 3715 2126 3715 2125 3715 2125 3716 2124 3714 2122 3714 2122 3712 2121 3711 2121 3710 2120 3709 2120 3709 2120 3708 2120 3708 2120 3708 2119 3708 2119 3706 2118 3706 2118 3705 2118 3703 2118 3702 2118 3702 2118 3701 2118 3699 2118 3699 2118 3696 2116 3695 2115 3694 2113 3693 2111 3692 2109 3691 2107 3691 2106 3691 2106 3691 2104 3691 2104 3690 2103 3690 2103 3690 2102 3689 2102 3688 2102 3688 2102 3688 2102 3687 2102 3686 2100 3686 2100 3687 2099 3687 2100 3688 2100 3688 2099 3688 2099 3688 2098 3688 2098 3687 2097 3685 2097 3685 2097 3684 2097 3684 2096 3684 2095 3684 2093 3684 2092 3684 2092 3684 2091 3681 2089 3681 2089 3680 2089 3680 2089 3678 2086 3677 2086 3677 2085 3677 2085 3676 2085 3676 2084 3676 2084 3676 2084 3676 2083 3676 2082 3675 2081 3675 2081 3675 2080 3674 2080 3674 2080 3674 2080 3674 2080 3672 2080 3672 2080 3672 2080 3671 2081 3669 2082 3667 2083 3667 2083 3666 2082 3666 2082 3666 2081 3665 2081 3665 2081 3664 2081 3663 2081 3663 2081 3661 2080 3658 2079 3657 2077 3659 2077 3659 2077 3661 2078 3661 2077 3662 2076 3661 2076 3661 2076 3659 2075 3658 2075 3657 2075 3657 2075 3656 2078 3655 2078 3656 2079 3656 2079 3657 2080 3657 2081 3657 2082 3656 2083 3656 2083 3654 2083 3653 2083 3652 2083 3652 2084 3652 2084 3651 2084 3650 2084 3649 2084 3649 2083 3648 2082 3648 2081 3648 2080 3646 2078 3644 2077 3644 2076 3643 2076 3643 2076 3642 2075 3642 2074 3642 2073 3642 2068 3642 2067 3640 2067 3639 2067 3637 2067 3637 2066 3637 2064 3637 2064 3637 2064 3637 2062 3637 2061 3637 2060 3638 2059 3638 2057 3639 2056 3640 2055 3639 2054 3638 2053 3637 2052 3636 2051 3635 2050 3634 2048 3632 2046 3633 2045 3631 2044 3630 2044 3630 2044 3629 2044 3628 2044 3628 2044 3627 2043 3627 2043 3625 2042 3625 2042 3624 2041 3624 2041 3623 2041 3623 2041 3622 2039 3621 2039 3621 2039 3620 2039 3619 2038 3618 2037 3617 2037 3616 2036 3616 2036 3615 2036 3614 2036 3614 2036 3613 2036 3613 2036 3612 2036 3611 2036 3611 2035 3612 2034 3612 2033 3613 2033 3613 2032 3613 2031 3612 2031 3611 2029 3611 2029 3610 2028 3610 2028 3610 2028 3609 2028 3609 2028 3608 2027 3608 2027 3609 2027 3608 2025 3607 2025 3606 2026 3606 2026 3606 2025 3605 2025 3604 2024 3604 2023 3603 2021 3602 2020 3601 2020 3601 2020 3601 2020 3600 2020 3601 2018 3602 2017 3603 2017 3603 2015 3603 2014 3603 2014 3602 2014 3602 2014 3601 2013 3601 2012 3603 2010 3604 2010 3605 2011 3605 2010 3605 2009 3605 2008 3604 2008 3604 2008 3605 2006 3605 2006 3606 2006 3606 2006 3606 2005 3607 2005 3608 2005 3608 2004 3608 2003 3608 2003 3609 2002 3610 2002 3610 2003 3612 2002 3613 2000 3612 2000 3612 1999 3612 1999 3611 1997 3611 1997 3610 1996 3609 1994 3610 1992 3611 1992 3611 1992 3612 1992 3613 1992 3614 1992 3615 1991 3615 1990 3615 1990 3614 1990 3614 1990 3613 1991 3612 1991 3612 1990 3612 1990 3611 1990 3608 1990 3608 1990 3606 1990 3606 1990 3605 1990 3605 1989 3605 1989 3604 1988 3604 1988 3602 1987 3602 1987 3601 1987 3600 1988 3599 1986 3599 1985 3599 1984 3598 1981 3598 1981 3597 1981 3597 1981 3596 1981 3596 1981 3595 1981 3595 1981 3595 1980 3595 1979 3594 1979 3594 1979 3594 1978 3595 1977 3595 1977 3594 1976 3593 1975 3592 1975 3592 1975 3591 1975 3591 1974 3592 1974 3592 1973 3592 1973 3592 1971 3591 1971 3591 1971 3590 1970 3590 1970 3590 1969 3590 1969 3591 1967 3591 1967 3591 1966 3588 1965 3588 1965 3587 1964 3587 1962 3587 1960 3588 1960 3587 1959 3582 1958 3581 1957 3582 1956 3583 1954 3584 1952 3585 1950 3585 1950 3585 1949 3583 1949 3583 1949 3583 1948 3583 1948 3583 1947 3583 1946 3583 1945 3582 1944 3583 1943 3583 1942 3582 1942 3582 1942 3581 1941 3581 1940 3580 1940 3581 1939 3581 1937 3579 1934 3579 1934 3578 1934 3578 1933 3579 1933 3581 1933 3581 1933 3583 1933 3583 1933 3584 1933 3585 1933 3585 1929 3585 1928 3587 1927 3590 1928 3591 1930 3592 1930 3592 1930 3592 1931 3592 1931 3593 1932 3593 1933 3593 1933 3594 1933 3595 1934 3596 1935 3596 1935 3596 1936 3596 1936 3597 1936 3598 1937 3599 1936 3599 1937 3600 1939 3601 1939 3601 1940 3601 1940 3602 1940 3602 1940 3603 1940 3607 1941 3609 1941 3611 1942 3613 1942 3613 1942 3614 1942 3614 1941 3614 1941 3615 1941 3616 1941 3617 1941 3618 1942 3618 1942 3619 1941 3620 1940 3622 1939 3622 1938 3623 1937 3624 1937 3624 1937 3625 1937 3626 1936 3626 1936 3627 1935 3628 1934 3629 1934 3630 1934 3631 1933 3631 1933 3632 1932 3633 1932 3634 1931 3638 1929 3638 1929 3639 1929 3641 1928 3642 1928 3642 1929 3643 1929 3643 1929 3644 1930 3645 1931 3646 1932 3646 1932 3647 1933 3647 1933 3647 1933 3646 1934 3646 1934 3645 1934 3644 1935 3644 1935 3644 1936 3644 1936 3645 1937 3646 1938 3646 1938 3647 1939 3647 1939 3647 1940 3646 1940 3646 1940 3645 1940 3645 1940 3644 1940 3643 1940 3642 1941 3642 1942 3642 1942 3643 1943 3644 1943 3644 1943 3645 1944 3646 1944 3646 1945 3647 1946 3647 1946 3648 1946 3649 1946 3651 1948 3651 1949 3652 1949 3652 1949 3654 1949 3654 1948 3655 1948 3656 1948 3656 1949 3656 1950 3656 1951 3656 1955 3657 1957 3657 1959 3658 1959 3658 1960 3659 1961 3659 1961 3660 1962 3662 1963 3663 1963 3664 1964 3665 1964 3665 1964 3668 1964 3672 1964 3673 1964 3676 1965 3677 1965 3677 1966 3677 1966 3677 1967 3677 1967 3678 1969 3679 1969 3679 1969 3679 1970 3681 1971 3683 1972 3683 1972 3684 1972 3688 1974 3688 1974 3689 1975 3689 1975 3690 1975 3690 1975 3691 1976 3692 1976 3693 1976 3693 1976 3694 1976 3696 1977 3697 1977 3698 1977 3699 1977 3704 1978 3705 1978 3705 1978 3706 1978 3707 1978 3707 1978 3707 1978 3708 1978 3708 1978 3709 1977 3710 1977 3710 1977 3712 1977 3713 1977 3713 1976 3715 1976 3718 1976 3719 1976 3721 1975 3722 1975 3722 1975 3725 1974 3729 1973 3729 1973 3730 1973 3733 1973 3735 1973 3737 1973 3738 1972 3737 1973 3735 1974 3733 1974 3732 1974 3732 1973 3731 1974 3732 1974 3732 1974 3733 1974 3736 1975 3737 1975 3738 1974 3738 1974 3738 1974 3738 1972 3738 1971 3737 1968 3736 1966 3741 1966 3743 1966 3744 1965 3744 1965 3745 1965 3746 1965 3746 1964 3747 1964 3747 1964 3748 1964 3748 1964 3750 1964 3750 1963 3750 1962 3750 1962 3750 1961 3750 1960 3751 1960 3751 1959 3752 1959 3752 1959 3753 1959 3754 1958 3754 1957 3755 1957 3756 1956 3756 1956 3757 1956 3759 1955 3760 1955 3760 1954 3760 1954 3761 1954 3762 1954 3764 1954 3765 1954 3765 1954 3766 1954 3766 1954 3767 1954 3767 1954 3769 1954 3770 1954 3771 1954 3771 1954 3772 1954 3773 1954 3775 1954 3775 1953 3775 1953 3775 1953 3775 1952 3776 1952 3776 1952 3777 1951 3777 1951 3778 1951 3779 1951 3781 1951 3782 1951 3782 1951 3782 1952 3783 1952 3783 1952 3784 1952 3786 1952 3788 1952 3788 1951 3788 1951 3788 1951 3789 1951 3789 1951 3791 1954 3791 1954 3791 1956 3791 1956 3793 1957 3794 1957 3795 1957 3797 1957 3804 1959 3805 1959 3805 1960 3805 1960 3805 1961 3808 1961 3809 1961 3809 1961 3812 1961 3812 1961 3813 1961 3814 1961 3816 1961 3817 1961 3818 1961 3819 1962 3819 1962 3821 1963 3821 1963 3822 1963 3822 1963 3822 1963 3823 1963 3823 1964 3823 1964 3823 1965 3823 1965 3824 1966 3824 1966 3825 1968 3826 1968 3829 1969 3830 1970 3834 1971 3834 1971 3835 1972 3835 1972 3835 1973 3836 1973 3836 1974 3839 1977 3839 1977 3841 1977 3844 1977 3844 1977 3846 1977 3848 1977 3850 1977 3852 1977 3852 1977 3852 1978 3852 1981 3852 1983 3853 1985 3853 1985 3853 1986 3853 1986 3853 1988 3853 1989 3853 1989 3853 1990 3853 1992 3853 1993 3853 1993 3854 1994 3854 1995 3854 1995 3852 1998 3851 1999 3851 2000 3851 2001 3851 2001 3851 2001 3851 2002 3851 2003 3851 2005 3850 2007 3849 2009 3847 2010 3847 2010 3846 2011 3845 2011 3845 2011 3846 2012 3846 2012 3847 2014 3847 2014 3847 2014 3846 2014 3845 2014 3844 2014 3842 2016 3842 2017 3841 2017 3841 2017 3841 2018 3841 2018 3842 2019 3842 2020 3842 2022 3842 2023 3842 2023 3841 2024 3842 2024 3842 2025 3842 2025 3842 2025 3842 2026 3843 2026 3844 2026 3845 2026 3846 2026 3847 2026 3848 2027 3848 2027 3848 2027 3848 2027 3847 2027 3847 2028 3846 2029 3845 2030 3845 2030 3843 2032 3843 2033 3843 2034 3843 2034 3843 2035 3843 2035 3844 2038 3845 2041 3847 2046 3847 2047 3847 2048 3847 2048 3847 2050 3846 2051 3846 2051 M 3774 2132 3773 2132 3772 2133 3772 2134 3772 2134 3772 2134 3771 2134 3770 2135 3769 2136 3768 2136 3767 2136 3765 2136 3764 2136 3764 2136 3762 2137 3759 2138 3758 2139 3758 2138 3758 2137 3758 2137 3758 2137 3759 2137 3759 2137 3759 2137 3762 2136 3763 2136 3764 2135 3764 2135 3764 2135 3764 2135 3765 2135 3765 2135 3765 2135 3766 2135 3766 2134 3766 2133 3766 2133 3765 2133 3765 2133 3765 2132 3766 2132 3766 2132 3767 2132 3767 2133 3769 2132 3769 2132 3771 2131 3772 2131 3773 2131 3773 2131 3774 2132 3774 2132 3774 2132 3774 2132 M 3765 2134 3764 2135 3764 2135 3764 2135 3764 2135 3764 2135 3763 2134 3764 2133 3765 2132 3765 2133 3765 2133 3765 2134 3765 2134 3765 2134 3765 2134" />
+<path id="il" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3429 2053 3429 2052 3430 2051 3430 2051 3430 2049 3431 2049 3431 2048 3431 2047 3432 2045 3432 2045 3432 2043 3433 2040 3433 2039 3433 2038 3434 2038 3434 2038 3435 2038 3435 2038 3435 2037 3435 2037 3435 2036 3435 2036 3435 2035 3436 2034 3436 2034 3436 2034 3438 2034 3439 2034 3440 2034 3440 2034 3441 2034 3442 2034 3442 2034 3442 2033 3443 2032 3443 2031 3444 2031 3444 2031 3445 2031 3445 2031 3445 2032 3445 2032 3445 2032 3444 2033 3444 2034 3444 2035 3444 2035 3444 2036 3444 2037 3444 2037 3444 2037 3444 2038 3444 2038 3445 2039 3445 2039 3444 2040 3444 2040 3444 2040 3444 2040 3444 2041 3443 2041 3443 2045 3443 2045 3442 2045 3441 2044 3441 2043 3440 2043 3439 2043 3439 2043 3438 2043 3437 2043 3437 2043 3435 2044 3435 2044 3435 2045 3435 2045 3435 2045 3435 2046 3434 2048 3434 2049 3434 2049 3434 2051 3434 2051 3434 2052 3434 2052 3433 2054 3433 2054 3434 2054 3434 2054 3435 2054 3436 2054 3436 2054 3437 2055 3437 2055 3436 2056 3434 2057 3434 2057 3433 2058 3433 2058 3433 2058 3433 2059 3433 2060 3433 2060 3432 2061 3432 2061 3433 2062 3433 2062 3436 2062 3438 2061 3438 2061 3438 2061 3440 2060 3440 2059 3441 2059 3442 2059 3442 2060 3442 2061 3442 2061 3441 2062 3441 2064 3441 2064 3441 2065 3441 2065 3441 2066 3440 2068 3440 2069 3440 2069 3439 2069 3439 2071 3439 2071 3438 2072 3438 2073 3437 2074 3437 2076 3437 2077 3437 2078 3437 2081 3437 2081 3436 2082 3436 2082 3436 2083 3435 2084 3435 2085 3435 2085 3435 2085 3434 2089 3434 2090 3434 2090 3434 2091 3433 2091 3433 2090 3433 2091 3432 2092 3432 2091 3432 2090 3432 2089 3432 2089 3432 2087 3430 2083 3430 2082 3428 2078 3427 2077 3427 2076 3427 2076 3426 2072 3424 2070 3423 2065 3422 2064 3423 2063 3424 2063 3424 2062 3424 2061 3426 2060 3426 2059 3427 2059 3427 2059 3426 2058 3426 2058 3426 2057 3427 2056 3427 2056 3429 2053 M 3438 2054 3438 2055 3438 2055 3438 2055 3438 2055 3438 2055 3438 2055 3438 2054 3438 2054 3438 2054" />
+<path id="it" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3079 1860 3079 1860 3080 1860 3081 1861 3084 1862 3085 1863 3085 1864 3086 1864 3087 1865 3088 1865 3089 1866 3090 1866 3091 1866 3092 1867 3093 1867 3093 1868 3094 1870 3096 1874 3096 1876 3097 1876 3097 1877 3097 1877 3097 1877 3097 1878 3098 1879 3098 1880 3099 1881 3100 1882 3100 1882 3101 1883 3102 1884 3107 1887 3108 1888 3108 1888 3109 1888 3109 1889 3110 1889 3110 1889 3110 1890 3110 1890 3111 1890 3111 1890 3112 1891 3113 1891 3114 1891 3115 1892 3115 1892 3116 1892 3116 1893 3117 1893 3117 1893 3121 1893 3121 1893 3122 1893 3123 1893 3124 1893 3125 1893 3127 1893 3128 1893 3129 1893 3131 1893 3131 1893 3132 1893 3133 1893 3134 1894 3134 1895 3133 1896 3133 1896 3131 1897 3130 1897 3130 1897 3129 1898 3129 1898 3129 1898 3129 1899 3129 1899 3129 1900 3130 1901 3131 1901 3132 1901 3134 1902 3138 1904 3141 1905 3143 1905 3147 1906 3149 1907 3151 1908 3151 1908 3152 1909 3154 1910 3154 1911 3159 1912 3161 1913 3163 1913 3163 1914 3163 1914 3163 1915 3164 1915 3165 1916 3167 1917 3169 1919 3170 1919 3170 1920 3171 1921 3171 1922 3170 1923 3170 1923 3169 1924 3169 1925 3169 1925 3169 1927 3168 1927 3168 1927 3168 1927 3167 1926 3167 1926 3166 1926 3166 1926 3165 1926 3165 1926 3164 1925 3163 1925 3162 1924 3163 1923 3163 1922 3161 1920 3160 1919 3159 1919 3159 1919 3157 1919 3157 1919 3155 1919 3155 1919 3153 1918 3150 1917 3150 1916 3151 1916 3151 1916 3152 1916 3148 1915 3147 1915 3147 1916 3147 1916 3146 1916 3145 1916 3145 1917 3144 1917 3143 1919 3143 1920 3142 1920 3142 1921 3141 1922 3141 1922 3140 1922 3140 1923 3140 1924 3140 1925 3139 1926 3139 1926 3138 1927 3138 1927 3138 1928 3139 1929 3139 1929 3140 1930 3141 1930 3142 1930 3144 1931 3146 1932 3147 1932 3149 1933 3149 1934 3148 1935 3148 1935 3148 1938 3149 1939 3149 1939 3149 1940 3149 1940 3149 1941 3148 1941 3146 1941 3146 1941 3145 1941 3144 1941 3142 1942 3140 1942 3140 1943 3140 1943 3139 1944 3139 1944 3139 1945 3140 1946 3140 1947 3140 1947 3140 1948 3140 1949 3139 1949 3139 1950 3138 1950 3138 1950 3138 1950 3137 1950 3136 1951 3136 1951 3133 1954 3133 1954 3133 1955 3133 1955 3132 1956 3132 1956 3131 1957 3130 1957 3130 1957 3129 1957 3128 1957 3127 1957 3127 1957 3127 1957 3127 1957 3126 1957 3125 1956 3125 1955 3125 1955 3125 1952 3125 1952 3125 1952 3126 1951 3126 1951 3127 1951 3127 1951 3128 1951 3129 1948 3129 1948 3129 1947 3129 1947 3129 1946 3129 1946 3128 1946 3128 1946 3128 1945 3130 1944 3131 1944 3131 1944 3132 1944 3132 1944 3133 1944 3133 1944 3134 1943 3134 1943 3134 1942 3134 1942 3134 1941 3134 1941 3133 1940 3132 1939 3132 1938 3131 1937 3131 1936 3131 1935 3131 1934 3130 1932 3129 1931 3129 1931 3128 1930 3127 1929 3127 1928 3127 1927 3127 1926 3127 1925 3127 1925 3126 1924 3126 1924 3125 1923 3125 1923 3124 1923 3124 1922 3124 1922 3123 1922 3122 1923 3121 1924 3120 1924 3120 1923 3119 1922 3117 1921 3116 1921 3115 1920 3114 1920 3113 1919 3114 1918 3114 1918 3114 1917 3114 1916 3113 1915 3112 1914 3111 1913 3111 1913 3109 1913 3107 1914 3105 1914 3104 1914 3105 1913 3106 1912 3106 1912 3104 1910 3103 1910 3102 1911 3101 1911 3100 1910 3099 1910 3099 1909 3099 1909 3098 1908 3097 1906 3096 1905 3095 1905 3095 1904 3094 1904 3094 1904 3093 1903 3092 1904 3092 1904 3087 1903 3086 1903 3085 1903 3085 1903 3085 1904 3083 1903 3083 1903 3082 1902 3082 1902 3082 1902 3081 1902 3081 1901 3080 1901 3077 1900 3076 1900 3075 1899 3074 1898 3074 1898 3072 1897 3070 1895 3070 1895 3070 1894 3069 1893 3069 1893 3067 1892 3065 1891 3065 1891 3064 1891 3064 1891 3064 1891 3063 1889 3062 1889 3062 1888 3061 1887 3059 1886 3059 1886 3058 1886 3057 1885 3055 1885 3054 1885 3054 1885 3054 1885 3054 1886 3052 1885 3052 1885 3052 1885 3053 1885 3053 1885 3054 1884 3054 1883 3053 1883 3052 1882 3050 1880 3050 1880 3049 1880 3048 1879 3047 1878 3047 1877 3046 1877 3046 1877 3044 1876 3043 1875 3043 1874 3043 1873 3043 1873 3043 1872 3043 1872 3041 1869 3041 1869 3040 1868 3040 1868 3039 1867 3039 1866 3039 1865 3039 1864 3039 1864 3039 1863 3039 1862 3038 1862 3038 1861 3038 1861 3037 1860 3036 1859 3036 1859 3035 1859 3034 1859 3030 1858 3029 1857 3025 1855 3024 1855 3022 1854 3016 1853 3015 1853 3013 1854 3011 1855 3010 1855 3009 1857 3008 1857 3008 1857 3007 1857 3007 1858 3005 1860 3005 1860 3004 1861 3002 1862 3001 1862 2999 1863 2999 1863 2997 1863 2997 1863 2996 1863 2995 1863 2995 1863 2995 1862 2996 1860 2997 1860 2998 1859 2998 1858 2997 1858 2997 1857 2997 1857 2995 1857 2994 1858 2994 1858 2992 1858 2987 1856 2986 1855 2985 1854 2984 1851 2984 1851 2986 1849 2986 1849 2987 1848 2987 1846 2987 1846 2986 1846 2986 1846 2985 1846 2984 1846 2983 1845 2983 1845 2981 1843 2981 1842 2981 1842 2981 1842 2982 1841 2983 1841 2984 1841 2986 1841 2988 1840 2989 1840 2989 1838 2989 1837 2988 1836 2987 1835 2986 1834 2984 1832 2984 1831 2984 1830 2985 1830 2985 1830 2986 1830 2986 1830 2987 1830 2987 1829 2988 1829 2988 1830 2990 1830 2990 1829 2992 1829 2992 1829 2993 1829 2994 1829 2994 1829 2995 1828 2997 1828 2998 1829 2999 1829 2999 1829 3000 1829 3001 1829 3001 1828 3001 1828 3002 1828 3002 1828 3003 1828 3005 1825 3005 1825 3005 1824 3008 1821 3008 1821 3009 1821 3010 1820 3010 1821 3010 1822 3010 1823 3010 1823 3010 1824 3010 1824 3013 1826 3014 1826 3014 1826 3014 1826 3015 1826 3016 1826 3016 1826 3016 1827 3016 1827 3016 1828 3017 1829 3018 1829 3018 1830 3018 1830 3019 1831 3019 1830 3020 1829 3020 1829 3019 1829 3019 1828 3019 1827 3019 1827 3020 1826 3021 1825 3021 1825 3022 1825 3023 1824 3023 1823 3023 1823 3023 1822 3023 1821 3023 1821 3023 1820 3025 1820 3026 1820 3026 1821 3026 1822 3027 1823 3027 1823 3028 1823 3029 1823 3030 1823 3031 1822 3032 1822 3032 1822 3033 1822 3034 1822 3035 1822 3034 1822 3035 1823 3036 1824 3037 1824 3038 1824 3037 1822 3036 1821 3036 1821 3035 1820 3036 1819 3037 1818 3038 1818 3039 1818 3039 1818 3039 1818 3040 1819 3040 1819 3042 1819 3042 1819 3042 1819 3042 1818 3042 1818 3042 1818 3042 1816 3042 1814 3042 1814 3043 1814 3044 1814 3044 1814 3045 1814 3046 1814 3047 1815 3047 1815 3048 1815 3049 1815 3051 1815 3052 1815 3052 1814 3052 1813 3053 1813 3054 1812 3058 1812 3061 1812 3062 1812 3062 1812 3063 1812 3068 1811 3069 1810 3070 1810 3070 1810 3070 1811 3070 1811 3070 1811 3069 1812 3069 1812 3069 1813 3070 1813 3070 1814 3071 1814 3073 1816 3073 1817 3074 1817 3074 1817 3076 1817 3076 1817 3078 1817 3078 1818 3079 1817 3079 1817 3079 1817 3080 1818 3087 1819 3089 1819 3092 1819 3092 1819 3094 1819 3094 1819 3094 1820 3094 1821 3093 1821 3091 1822 3090 1822 3089 1823 3089 1824 3090 1824 3090 1824 3091 1824 3093 1825 3093 1825 3092 1826 3092 1826 3091 1827 3091 1827 3090 1828 3091 1828 3091 1828 3092 1828 3092 1828 3093 1828 3093 1829 3092 1829 3092 1830 3092 1830 3092 1831 3094 1831 3095 1832 3096 1832 3097 1834 3096 1834 3096 1834 3095 1834 3094 1834 3095 1834 3094 1833 3093 1832 3093 1831 3092 1831 3091 1831 3091 1832 3091 1832 3091 1832 3089 1833 3089 1833 3089 1833 3089 1832 3089 1832 3086 1831 3086 1831 3085 1831 3084 1832 3084 1833 3084 1834 3084 1834 3083 1834 3081 1834 3080 1834 3079 1835 3078 1835 3077 1836 3077 1836 3076 1836 3073 1837 3074 1836 3075 1836 3076 1835 3074 1835 3073 1835 3071 1836 3069 1839 3069 1840 3070 1841 3072 1843 3074 1844 3075 1844 3075 1844 3075 1844 3074 1846 3074 1847 3073 1846 3074 1846 3073 1845 3073 1846 3073 1847 3072 1847 3071 1846 3071 1847 3071 1848 3071 1849 3071 1852 3071 1853 3072 1855 3073 1856 3073 1857 3074 1857 3075 1858 3075 1858 3078 1860 3078 1860 3078 1860 3079 1860 M 3075 1861 3075 1861 3075 1860 3074 1860 3073 1860 3073 1860 3073 1861 3074 1861 3075 1861 3075 1861 M 3041 1880 3040 1880 3040 1879 3040 1880 3038 1880 3038 1880 3037 1880 3037 1880 3037 1880 3037 1880 3037 1880 3036 1879 3036 1879 3037 1879 3037 1879 3037 1879 3038 1879 3038 1879 3038 1879 3038 1879 3040 1879 3041 1878 3041 1878 3041 1878 3042 1878 3042 1880 3041 1880 M 3009 1936 3010 1935 3010 1935 3009 1934 3009 1934 3009 1934 3009 1932 3009 1932 3010 1929 3010 1929 3010 1927 3011 1928 3011 1928 3011 1927 3012 1927 3012 1926 3012 1926 3011 1925 3010 1925 3010 1925 3009 1925 3009 1924 3009 1924 3010 1921 3010 1920 3010 1918 3009 1916 3008 1914 3006 1914 3005 1914 3005 1914 3006 1913 3006 1913 3005 1912 3005 1912 3006 1909 3006 1909 3006 1909 3007 1910 3008 1910 3008 1910 3010 1910 3010 1911 3011 1910 3011 1910 3012 1910 3012 1910 3013 1910 3013 1909 3014 1909 3015 1909 3015 1909 3016 1909 3016 1908 3017 1908 3019 1906 3019 1906 3021 1905 3021 1904 3022 1904 3027 1905 3028 1906 3029 1908 3027 1909 3028 1909 3029 1909 3029 1910 3031 1913 3031 1913 3031 1914 3031 1914 3032 1915 3032 1915 3032 1916 3032 1917 3031 1917 3030 1918 3030 1918 3029 1919 3029 1919 3029 1920 3029 1921 3029 1921 3030 1922 3030 1923 3030 1925 3030 1927 3029 1927 3029 1928 3030 1928 3029 1931 3029 1932 3029 1933 3028 1934 3028 1936 3028 1937 3028 1937 3027 1938 3026 1938 3025 1937 3025 1937 3025 1937 3024 1936 3024 1936 3023 1936 3019 1935 3019 1938 3019 1938 3019 1938 3019 1939 3019 1940 3017 1941 3016 1942 3014 1941 3013 1941 3013 1941 3012 1939 3012 1939 3011 1939 3010 1939 3010 1940 3010 1940 3009 1940 3009 1939 3008 1938 3008 1938 3010 1938 3010 1938 3010 1938 3010 1937 3009 1936 3009 1936 M 3116 1977 3115 1977 3115 1976 3113 1976 3112 1976 3112 1976 3111 1976 3110 1976 3107 1975 3106 1974 3106 1974 3105 1973 3105 1972 3105 1972 3104 1972 3103 1971 3103 1971 3101 1970 3100 1970 3099 1970 3098 1970 3098 1970 3097 1970 3094 1969 3093 1968 3093 1968 3092 1967 3091 1967 3091 1967 3089 1966 3088 1966 3087 1965 3087 1965 3086 1964 3085 1964 3084 1964 3082 1963 3082 1963 3081 1962 3079 1962 3079 1962 3078 1962 3078 1963 3077 1963 3075 1961 3074 1960 3074 1959 3074 1959 3074 1958 3074 1958 3074 1957 3075 1955 3076 1955 3078 1953 3080 1954 3081 1955 3081 1955 3082 1955 3083 1955 3084 1954 3084 1953 3084 1953 3088 1952 3088 1953 3089 1953 3089 1954 3089 1954 3094 1956 3095 1956 3095 1956 3096 1956 3097 1956 3097 1955 3098 1955 3099 1955 3101 1955 3102 1955 3104 1955 3104 1955 3107 1955 3109 1954 3111 1953 3113 1953 3114 1953 3116 1954 3117 1953 3119 1952 3123 1951 3123 1951 3125 1951 3124 1952 3124 1952 3124 1952 3123 1953 3123 1954 3121 1956 3120 1956 3118 1959 3118 1959 3118 1960 3118 1961 3117 1963 3117 1963 3116 1963 3116 1964 3116 1964 3116 1966 3118 1969 3118 1969 3118 1970 3119 1970 3119 1970 3120 1971 3120 1971 3119 1972 3118 1972 3117 1973 3117 1973 3116 1974 3116 1975 3116 1976 3117 1977 3116 1977 3116 1977" />
+<path id="ci" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2790 2480 2790 2480 2790 2480 2790 2480 2789 2480 2789 2480 2789 2480 2789 2481 2791 2481 2791 2480 2791 2479 2792 2480 2793 2480 2794 2480 2794 2480 2794 2480 2795 2480 2795 2481 2790 2481 2789 2481 2789 2481 2788 2481 2787 2481 2782 2482 2781 2482 2781 2482 2780 2483 2778 2483 2778 2484 2776 2485 2775 2485 2775 2485 2774 2485 2773 2485 2770 2486 2770 2487 2770 2487 2769 2487 2768 2488 2767 2488 2767 2488 2766 2488 2765 2488 2765 2488 2764 2488 2763 2490 2762 2490 2761 2490 2760 2490 2760 2490 2758 2491 2757 2492 2757 2493 2756 2493 2756 2493 2755 2493 2755 2493 2754 2493 2754 2491 2754 2490 2754 2489 2754 2487 2754 2486 2754 2486 2754 2485 2754 2484 2754 2482 2755 2481 2757 2477 2757 2477 2756 2476 2756 2476 2757 2475 2757 2474 2757 2474 2757 2473 2757 2472 2756 2471 2756 2471 2756 2470 2756 2470 2756 2469 2756 2469 2755 2469 2754 2469 2753 2468 2752 2468 2751 2468 2751 2467 2751 2466 2751 2466 2750 2463 2749 2463 2749 2462 2747 2462 2746 2462 2745 2462 2745 2462 2745 2462 2741 2461 2740 2460 2739 2459 2738 2459 2738 2458 2738 2458 2738 2458 2739 2458 2739 2457 2739 2457 2740 2457 2740 2457 2740 2456 2740 2456 2741 2456 2741 2455 2741 2455 2742 2454 2742 2454 2742 2453 2743 2450 2743 2448 2742 2447 2742 2447 2741 2446 2741 2445 2741 2444 2741 2443 2741 2443 2740 2442 2740 2442 2741 2441 2741 2441 2743 2441 2744 2442 2744 2442 2744 2441 2744 2441 2746 2438 2746 2438 2745 2437 2745 2437 2746 2436 2746 2435 2746 2434 2746 2434 2747 2434 2748 2434 2748 2434 2747 2432 2747 2432 2746 2432 2745 2432 2744 2432 2744 2431 2744 2430 2743 2430 2743 2428 2744 2427 2748 2427 2750 2427 2751 2427 2751 2428 2751 2429 2752 2429 2753 2429 2753 2428 2752 2428 2752 2426 2752 2425 2751 2423 2751 2423 2749 2422 2749 2422 2748 2422 2748 2422 2748 2422 2748 2420 2748 2419 2749 2419 2749 2418 2750 2418 2751 2418 2751 2417 2750 2417 2749 2416 2748 2415 2749 2415 2749 2413 2748 2413 2747 2413 2746 2412 2746 2412 2745 2411 2745 2411 2745 2410 2745 2410 2745 2409 2745 2406 2745 2406 2746 2406 2746 2405 2745 2405 2745 2404 2745 2403 2746 2402 2746 2402 2747 2402 2747 2401 2747 2401 2748 2400 2748 2400 2748 2400 2749 2400 2750 2400 2751 2399 2751 2398 2751 2397 2752 2397 2752 2396 2753 2396 2756 2396 2757 2397 2758 2398 2759 2399 2760 2399 2761 2399 2762 2400 2762 2400 2763 2400 2763 2401 2763 2400 2764 2400 2764 2400 2764 2399 2764 2399 2763 2399 2764 2397 2764 2397 2768 2397 2769 2397 2769 2397 2769 2396 2769 2396 2768 2395 2768 2395 2768 2393 2768 2393 2769 2392 2769 2392 2770 2393 2770 2393 2771 2394 2772 2394 2773 2393 2773 2393 2773 2392 2775 2391 2776 2391 2776 2393 2776 2394 2776 2395 2776 2396 2776 2396 2776 2397 2776 2399 2776 2399 2777 2399 2777 2400 2778 2400 2779 2400 2780 2399 2780 2399 2780 2398 2781 2397 2782 2396 2783 2396 2783 2396 2784 2396 2784 2396 2784 2396 2786 2395 2787 2396 2787 2396 2788 2397 2789 2398 2789 2398 2790 2398 2790 2398 2791 2398 2791 2398 2793 2398 2795 2402 2796 2404 2798 2405 2799 2406 2799 2406 2798 2406 2799 2407 2800 2408 2801 2408 2801 2407 2803 2408 2804 2408 2806 2409 2806 2409 2806 2409 2807 2408 2807 2408 2807 2407 2809 2406 2811 2406 2812 2405 2813 2405 2813 2404 2813 2404 2815 2404 2816 2404 2817 2404 2821 2404 2824 2404 2825 2405 2827 2407 2828 2408 2828 2409 2828 2410 2829 2411 2830 2412 2831 2412 2831 2412 2831 2412 2832 2411 2832 2411 2832 2413 2832 2415 2832 2416 2831 2417 2831 2418 2831 2418 2833 2419 2833 2420 2834 2422 2833 2422 2833 2422 2834 2422 2834 2422 2834 2423 2834 2424 2835 2431 2835 2432 2834 2432 2833 2433 2833 2434 2831 2436 2831 2437 2830 2439 2829 2439 2828 2441 2828 2444 2828 2447 2827 2450 2826 2450 2825 2451 2823 2454 2824 2455 2824 2456 2823 2456 2823 2457 2823 2458 2824 2460 2824 2462 2824 2462 2824 2463 2825 2463 2826 2464 2826 2465 2826 2467 2827 2469 2827 2471 2828 2473 2828 2473 2829 2473 2829 2473 2830 2473 2830 2473 2831 2473 2831 2476 2831 2477 2831 2478 2831 2479 2831 2480 2831 2480 2831 2481 2831 2481 2828 2481 2828 2481 2829 2481 2829 2480 2830 2480 2829 2480 2828 2480 2827 2481 2825 2480 2824 2479 2824 2479 2824 2478 2825 2478 2825 2477 2825 2477 2823 2477 2823 2477 2823 2478 2823 2479 2823 2480 2822 2481 2821 2481 2821 2481 2820 2481 2820 2480 2819 2480 2818 2480 2816 2480 2815 2480 2814 2480 2812 2479 2811 2479 2811 2479 2812 2478 2813 2478 2814 2478 2815 2479 2815 2478 2816 2478 2815 2477 2815 2477 2814 2477 2814 2477 2815 2477 2815 2478 2814 2478 2814 2478 2813 2478 2810 2478 2806 2478 2804 2478 2803 2478 2803 2479 2801 2479 2799 2479 2798 2479 2798 2479 2798 2480 2799 2480 2798 2480 2798 2480 2797 2481 2796 2481 2795 2481 2795 2480 2795 2479 2795 2479 2794 2479 2793 2480 2793 2479 2792 2479 2791 2479 2791 2479 2791 2479 2790 2479 2790 2479 2790 2479 2790 2480 M 2799 2480 2799 2480 2799 2479 2800 2479 2802 2479 2803 2479 2804 2479 2804 2479 2805 2479 2806 2479 2808 2479 2809 2478 2809 2478 2810 2478 2810 2478 2811 2479 2808 2479 2807 2479 2807 2479 2806 2479 2801 2480 2801 2480 2800 2480 2799 2480 2799 2480 2799 2480 M 2825 2481 2825 2481 2824 2481 2825 2481 2825 2481" />
+<path id="iq" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3501 2049 3503 2048 3502 2046 3499 2047 3498 2044 3499 2043 3495 2029 3495 2029 3497 2028 3504 2025 3507 2023 3511 2022 3514 2020 3517 2019 3517 2019 3524 2015 3530 2013 3530 2012 3531 2010 3533 2007 3533 2005 3533 2002 3533 2002 3533 2000 3533 2000 3533 2000 3533 1999 3534 1999 3534 1998 3534 1998 3534 1997 3534 1996 3534 1996 3534 1996 3535 1995 3536 1993 3536 1990 3536 1989 3534 1987 3534 1987 3534 1982 3536 1980 3536 1979 3543 1978 3552 1971 3552 1971 3552 1970 3552 1970 3552 1970 3554 1969 3555 1969 3555 1969 3557 1966 3558 1966 3558 1965 3559 1966 3560 1966 3561 1966 3561 1966 3562 1966 3564 1966 3570 1968 3572 1968 3575 1968 3576 1968 3577 1968 3577 1967 3578 1966 3579 1966 3579 1966 3579 1966 3580 1966 3581 1967 3582 1968 3582 1968 3582 1969 3581 1969 3581 1970 3582 1972 3583 1972 3583 1971 3583 1971 3585 1971 3585 1970 3586 1970 3587 1969 3587 1969 3587 1969 3588 1969 3590 1969 3590 1969 3590 1969 3590 1970 3590 1970 3591 1971 3591 1971 3592 1971 3592 1973 3592 1973 3592 1974 3591 1974 3591 1975 3592 1975 3592 1975 3593 1975 3594 1976 3595 1977 3595 1977 3594 1978 3594 1979 3594 1979 3595 1979 3595 1980 3595 1981 3595 1981 3596 1981 3596 1981 3597 1981 3597 1981 3598 1981 3598 1981 3599 1984 3599 1985 3599 1986 3600 1988 3601 1987 3602 1987 3602 1987 3604 1988 3604 1988 3605 1989 3605 1989 3605 1990 3606 1990 3606 1990 3608 1990 3608 1990 3611 1990 3612 1990 3612 1990 3612 1991 3613 1991 3614 1990 3614 1990 3615 1990 3615 1990 3615 1991 3614 1992 3613 1992 3612 1992 3611 1992 3611 1992 3610 1992 3609 1994 3610 1996 3611 1997 3611 1997 3612 1999 3612 1999 3612 2000 3613 2000 3612 2002 3610 2003 3610 2002 3609 2002 3608 2003 3608 2003 3608 2004 3608 2005 3607 2005 3606 2005 3606 2006 3606 2006 3605 2006 3605 2006 3604 2008 3604 2008 3605 2008 3605 2009 3605 2010 3605 2011 3604 2010 3603 2010 3601 2012 3601 2013 3602 2014 3602 2014 3603 2014 3603 2014 3603 2015 3603 2017 3602 2017 3601 2018 3600 2020 3601 2020 3601 2020 3601 2020 3602 2020 3603 2021 3604 2023 3604 2024 3605 2025 3606 2025 3606 2026 3606 2026 3607 2025 3608 2025 3609 2027 3608 2027 3608 2027 3609 2028 3609 2028 3610 2028 3610 2028 3610 2028 3611 2029 3611 2029 3612 2031 3613 2031 3613 2032 3613 2033 3612 2033 3612 2034 3611 2035 3611 2036 3612 2036 3613 2036 3613 2036 3614 2036 3614 2036 3615 2036 3616 2036 3616 2036 3617 2037 3618 2037 3619 2038 3620 2039 3621 2039 3621 2039 3622 2039 3623 2041 3623 2041 3624 2041 3624 2041 3625 2042 3625 2042 3627 2043 3627 2043 3628 2044 3628 2044 3629 2044 3630 2044 3630 2044 3631 2044 3633 2045 3632 2046 3634 2048 3635 2050 3636 2051 3637 2052 3638 2053 3639 2054 3640 2055 3639 2056 3638 2057 3638 2059 3637 2060 3637 2061 3637 2062 3637 2064 3637 2064 3637 2064 3637 2066 3637 2067 3639 2067 3640 2067 3642 2067 3642 2068 3642 2073 3642 2074 3642 2075 3643 2076 3643 2076 3644 2076 3644 2077 3646 2078 3648 2080 3648 2081 3648 2082 3649 2083 3649 2084 3650 2084 3651 2084 3650 2085 3649 2084 3648 2084 3647 2084 3647 2084 3646 2084 3646 2083 3645 2083 3645 2083 3644 2083 3643 2083 3643 2083 3641 2083 3641 2083 3641 2083 3637 2082 3633 2082 3632 2082 3631 2082 3629 2083 3628 2083 3628 2083 3628 2084 3628 2084 3627 2085 3626 2087 3625 2089 3625 2090 3624 2090 3623 2092 3623 2092 3622 2094 3621 2095 3621 2096 3620 2096 3620 2096 3619 2097 3619 2097 3619 2097 3618 2098 3618 2098 3617 2098 3612 2098 3589 2096 3575 2085 3563 2077 3561 2075 3547 2066 3537 2061 3520 2052 3515 2051 3506 2050 3501 2049" />
+<path id="jp" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5181 1860 5182 1861 5183 1861 5184 1861 5185 1861 5185 1861 5186 1861 5187 1861 5187 1861 5188 1861 5189 1860 5190 1860 5190 1859 5191 1859 5191 1858 5192 1857 5193 1857 5194 1857 5194 1856 5195 1856 5196 1854 5196 1854 5197 1855 5197 1856 5196 1857 5195 1859 5195 1859 5194 1859 5194 1860 5194 1860 5193 1861 5193 1861 5192 1863 5192 1864 5193 1865 5193 1865 5193 1865 5194 1866 5194 1866 5195 1866 5195 1866 5196 1866 5196 1866 5197 1867 5196 1867 5196 1867 5195 1866 5195 1866 5194 1866 5195 1867 5195 1869 5196 1870 5195 1870 5195 1870 5195 1871 5196 1871 5197 1871 5197 1872 5198 1872 5199 1872 5199 1871 5201 1870 5203 1870 5204 1870 5203 1870 5202 1871 5201 1871 5201 1871 5200 1872 5200 1872 5199 1873 5199 1873 5198 1873 5198 1873 5197 1873 5196 1873 5193 1874 5193 1874 5193 1874 5193 1875 5191 1876 5191 1876 5189 1876 5189 1876 5188 1876 5188 1875 5188 1875 5187 1875 5187 1875 5187 1876 5187 1876 5186 1877 5183 1877 5182 1877 5181 1877 5181 1876 5181 1876 5180 1876 5180 1876 5178 1876 5177 1876 5175 1877 5175 1877 5173 1878 5173 1879 5172 1879 5172 1880 5169 1881 5169 1881 5168 1882 5168 1882 5168 1883 5166 1884 5166 1885 5165 1886 5165 1886 5165 1887 5164 1887 5164 1888 5164 1889 5164 1891 5163 1893 5162 1893 5162 1892 5161 1892 5161 1891 5158 1890 5158 1890 5157 1890 5156 1890 5156 1889 5154 1889 5154 1889 5151 1888 5148 1886 5148 1886 5147 1886 5145 1884 5144 1884 5143 1884 5142 1883 5142 1883 5141 1882 5140 1882 5140 1882 5139 1882 5138 1882 5138 1882 5137 1882 5136 1882 5136 1882 5134 1883 5134 1883 5130 1885 5129 1885 5129 1886 5128 1886 5127 1886 5127 1887 5126 1887 5126 1887 5126 1885 5125 1885 5125 1885 5123 1883 5123 1883 5122 1882 5119 1882 5119 1882 5119 1883 5118 1883 5118 1883 5117 1884 5117 1884 5116 1885 5116 1886 5116 1886 5116 1887 5116 1887 5116 1888 5116 1888 5117 1888 5117 1888 5118 1889 5119 1889 5119 1889 5120 1890 5120 1890 5122 1890 5122 1890 5123 1890 5123 1890 5124 1891 5124 1891 5125 1892 5127 1893 5127 1893 5127 1893 5128 1894 5128 1894 5129 1894 5129 1894 5130 1895 5128 1896 5127 1896 5127 1896 5123 1895 5122 1895 5122 1894 5121 1895 5121 1895 5121 1896 5119 1897 5118 1897 5118 1897 5118 1898 5118 1899 5118 1899 5118 1899 5116 1900 5115 1900 5115 1900 5115 1901 5114 1901 5112 1901 5112 1901 5112 1900 5111 1899 5111 1898 5111 1897 5111 1896 5112 1896 5113 1895 5113 1893 5113 1892 5112 1890 5112 1890 5111 1890 5111 1890 5110 1890 5110 1889 5108 1888 5107 1887 5108 1886 5108 1886 5108 1885 5109 1885 5109 1884 5109 1884 5109 1883 5109 1883 5108 1882 5108 1882 5109 1881 5109 1881 5110 1881 5111 1881 5111 1881 5112 1881 5113 1880 5115 1879 5116 1879 5116 1878 5117 1877 5118 1877 5118 1876 5119 1876 5120 1876 5119 1874 5118 1873 5117 1873 5117 1873 5117 1873 5116 1872 5117 1871 5119 1870 5119 1870 5121 1871 5124 1872 5124 1873 5127 1873 5130 1873 5130 1873 5131 1873 5132 1873 5133 1872 5133 1872 5133 1871 5134 1871 5134 1870 5134 1870 5134 1869 5133 1867 5132 1864 5133 1863 5134 1863 5134 1863 5135 1863 5135 1862 5136 1862 5137 1862 5137 1861 5137 1861 5137 1860 5138 1860 5138 1859 5138 1859 5138 1856 5138 1856 5138 1855 5138 1855 5139 1854 5139 1853 5140 1850 5140 1850 5140 1849 5140 1849 5140 1848 5140 1848 5139 1846 5139 1846 5139 1845 5138 1844 5138 1844 5138 1844 5137 1842 5137 1842 5136 1841 5136 1841 5136 1840 5136 1840 5138 1837 5140 1837 5140 1837 5141 1837 5143 1836 5143 1836 5144 1837 5144 1838 5145 1838 5145 1838 5146 1838 5147 1839 5148 1840 5148 1841 5149 1841 5149 1841 5150 1842 5150 1842 5151 1843 5151 1843 5152 1843 5152 1845 5153 1845 5153 1846 5155 1847 5155 1848 5155 1848 5156 1848 5159 1850 5159 1851 5161 1852 5161 1852 5165 1854 5165 1855 5165 1855 5166 1855 5167 1855 5170 1856 5170 1856 5170 1857 5171 1858 5171 1858 5173 1858 5175 1858 5176 1858 5178 1858 5180 1860 5181 1860 5181 1860 M 5127 1837 5128 1837 5128 1837 5128 1837 5128 1839 5128 1839 5128 1839 5128 1839 5127 1838 5127 1836 5127 1836 5127 1837 M 5130 1840 5130 1840 5130 1840 5131 1840 5132 1840 5132 1841 5132 1841 5132 1841 5132 1841 5132 1841 5132 1842 5132 1842 5131 1842 5131 1842 5131 1842 5130 1842 5129 1842 5129 1841 5129 1841 5129 1840 5130 1840 5130 1840 5130 1840 M 5102 1888 5102 1888 5103 1888 5104 1888 5104 1888 5104 1888 5104 1888 5103 1890 5103 1890 5102 1891 5102 1891 5102 1889 5102 1889 5102 1889 5102 1888 5102 1888 5102 1888 M 4978 2009 4979 2009 4980 2009 4980 2008 4981 2008 4981 2008 4984 2006 4985 2005 4985 2005 4985 2004 4987 2003 4987 2003 4988 2003 4988 2003 4988 2003 4989 2002 4990 2001 4990 2001 4990 2001 4992 2000 4993 1999 4993 1999 4993 1999 4993 1999 4994 1999 4994 1999 4994 1999 4994 1998 4994 1998 4994 1998 4994 1997 4994 1997 4994 1997 4993 1997 4993 1997 4994 1996 4997 1996 4997 1996 4997 1996 4997 1996 4998 1996 4999 1996 5000 1995 5000 1994 5001 1994 5001 1994 5003 1995 5003 1995 5003 1995 5004 1996 5004 1996 5004 1996 5005 1996 5005 1996 5005 1996 5005 1996 5006 1996 5006 1996 5006 1996 5006 1996 5007 1996 5007 1996 5007 1996 5008 1995 5008 1995 5008 1995 5008 1995 5009 1995 5009 1995 5009 1995 5010 1995 5010 1996 5011 1996 5011 1996 5012 1996 5012 1996 5017 1995 5017 1995 5019 1995 5020 1995 5020 1994 5020 1994 5021 1994 5021 1994 5021 1994 5022 1994 5024 1993 5024 1993 5028 1993 5028 1993 5028 1993 5028 1993 5030 1993 5030 1993 5032 1993 5032 1992 5032 1992 5033 1992 5034 1991 5034 1991 5035 1991 5035 1991 5036 1992 5036 1992 5036 1993 5036 1993 5036 1993 5036 1993 5035 1993 5035 1994 5034 1994 5034 1995 5034 1995 5034 1995 5037 1996 5037 1996 5038 1996 5038 1995 5037 1996 5037 1995 5037 1995 5037 1995 5037 1995 5038 1994 5039 1994 5039 1995 5039 1995 5039 1996 5040 1996 5041 1996 5043 1996 5043 1996 5043 1996 5044 1995 5045 1995 5047 1993 5047 1992 5047 1992 5047 1992 5048 1992 5048 1992 5048 1992 5048 1993 5048 1993 5048 1993 5048 1993 5049 1993 5049 1992 5049 1991 5049 1991 5049 1991 5049 1991 5048 1990 5048 1990 5048 1990 5048 1990 5047 1990 5047 1988 5047 1988 5048 1986 5049 1984 5050 1984 5051 1983 5053 1982 5054 1981 5056 1979 5056 1979 5057 1978 5057 1978 5058 1977 5058 1977 5058 1976 5059 1975 5059 1975 5059 1974 5059 1974 5060 1973 5059 1972 5059 1972 5059 1970 5058 1969 5058 1969 5058 1969 5058 1968 5059 1966 5059 1966 5060 1966 5060 1966 5061 1965 5061 1965 5061 1965 5062 1965 5062 1965 5064 1965 5064 1964 5065 1964 5065 1964 5065 1964 5065 1964 5065 1964 5067 1963 5067 1963 5068 1963 5068 1963 5068 1963 5069 1963 5069 1963 5069 1964 5069 1965 5069 1965 5067 1966 5066 1967 5064 1968 5064 1969 5064 1969 5063 1969 5062 1968 5062 1968 5061 1969 5061 1970 5061 1970 5061 1970 5063 1971 5063 1971 5063 1971 5064 1971 5064 1972 5064 1972 5063 1973 5063 1974 5063 1974 5063 1974 5064 1975 5065 1975 5066 1976 5066 1976 5068 1976 5068 1976 5068 1975 5069 1975 5069 1975 5070 1975 5070 1974 5070 1974 5070 1974 5070 1973 5070 1973 5070 1973 5071 1973 5071 1972 5071 1972 5072 1972 5072 1972 5073 1972 5073 1972 5075 1971 5076 1971 5076 1971 5078 1971 5078 1971 5078 1970 5078 1970 5080 1970 5083 1969 5083 1969 5083 1969 5084 1968 5088 1965 5091 1963 5091 1962 5091 1962 5091 1962 5091 1961 5092 1961 5092 1961 5092 1961 5092 1960 5092 1960 5092 1960 5092 1960 5092 1959 5092 1959 5093 1959 5093 1958 5093 1958 5094 1958 5094 1958 5095 1957 5095 1957 5096 1957 5096 1957 5096 1957 5097 1956 5097 1956 5099 1956 5099 1955 5100 1955 5100 1955 5100 1955 5101 1954 5101 1954 5102 1953 5102 1952 5102 1951 5102 1951 5102 1950 5102 1950 5102 1950 5103 1949 5103 1949 5103 1949 5104 1946 5105 1945 5105 1945 5105 1945 5106 1944 5107 1943 5107 1943 5107 1943 5108 1942 5109 1939 5110 1937 5111 1935 5111 1935 5111 1934 5111 1934 5111 1934 5112 1933 5112 1932 5112 1932 5112 1931 5112 1930 5112 1930 5112 1929 5112 1928 5112 1928 5112 1928 5112 1928 5112 1927 5112 1927 5112 1927 5112 1926 5111 1926 5111 1926 5111 1926 5110 1926 5110 1925 5110 1925 5110 1925 5109 1925 5109 1925 5109 1926 5109 1926 5108 1926 5107 1926 5107 1925 5106 1925 5106 1925 5106 1924 5106 1924 5106 1924 5107 1924 5107 1924 5108 1924 5108 1924 5109 1924 5109 1924 5109 1924 5109 1924 5110 1924 5110 1923 5110 1923 5111 1922 5111 1921 5111 1920 5112 1919 5112 1919 5112 1919 5111 1918 5111 1918 5110 1917 5110 1916 5110 1916 5110 1916 5110 1915 5110 1915 5110 1915 5109 1914 5109 1914 5109 1914 5111 1912 5111 1912 5112 1912 5112 1912 5112 1912 5112 1912 5113 1912 5113 1912 5113 1912 5114 1912 5115 1911 5115 1911 5115 1911 5115 1911 5115 1911 5116 1911 5116 1910 5116 1910 5116 1909 5117 1907 5116 1906 5116 1905 5116 1904 5116 1904 5117 1904 5117 1904 5118 1904 5118 1904 5118 1904 5118 1905 5118 1905 5119 1905 5119 1905 5119 1904 5119 1904 5120 1904 5120 1904 5121 1904 5121 1905 5121 1905 5121 1905 5121 1905 5121 1906 5121 1906 5121 1906 5121 1906 5122 1909 5122 1909 5122 1909 5122 1910 5122 1910 5122 1910 5123 1910 5123 1911 5124 1911 5124 1910 5124 1910 5124 1910 5124 1910 5125 1910 5125 1909 5125 1909 5125 1909 5125 1909 5125 1908 5125 1908 5126 1908 5126 1908 5126 1908 5127 1909 5127 1909 5128 1910 5129 1910 5129 1910 5129 1910 5130 1910 5130 1910 5130 1909 5130 1909 5130 1909 5131 1908 5131 1908 5131 1907 5132 1905 5131 1905 5131 1905 5131 1904 5131 1904 5131 1904 5130 1904 5130 1903 5130 1903 5129 1904 5130 1904 5129 1904 5128 1905 5128 1905 5128 1905 5127 1905 5127 1905 5125 1905 5124 1905 5124 1906 5124 1906 5124 1906 5124 1906 5123 1905 5123 1905 5123 1905 5125 1901 5126 1899 5126 1899 5128 1900 5129 1900 5129 1901 5130 1901 5130 1901 5130 1901 5130 1901 5130 1902 5130 1902 5130 1902 5131 1902 5131 1902 5131 1902 5132 1902 5132 1902 5132 1902 5133 1902 5133 1902 5133 1902 5134 1902 5134 1902 5134 1904 5134 1905 5134 1905 5133 1905 5133 1905 5133 1909 5134 1910 5134 1910 5134 1912 5134 1912 5134 1912 5134 1913 5134 1914 5135 1914 5135 1914 5135 1915 5135 1915 5136 1915 5136 1915 5137 1916 5137 1916 5137 1916 5138 1916 5138 1916 5138 1917 5138 1917 5138 1917 5140 1919 5141 1920 5141 1921 5141 1922 5141 1922 5140 1922 5140 1922 5140 1922 5141 1923 5141 1923 5141 1923 5142 1924 5142 1924 5142 1924 5143 1927 5143 1929 5144 1930 5144 1931 5144 1931 5144 1932 5144 1933 5143 1933 5143 1933 5142 1933 5142 1934 5141 1935 5141 1936 5141 1937 5141 1938 5141 1939 5141 1939 5139 1939 5137 1940 5137 1940 5137 1940 5137 1941 5137 1941 5137 1941 5137 1941 5136 1942 5136 1943 5135 1945 5136 1946 5136 1947 5136 1949 5136 1951 5135 1951 5134 1951 5134 1950 5134 1950 5134 1949 5133 1949 5133 1949 5132 1949 5132 1949 5131 1949 5129 1950 5128 1950 5128 1950 5128 1950 5126 1953 5126 1954 5126 1955 5126 1955 5126 1956 5126 1956 5126 1957 5126 1957 5126 1957 5126 1959 5127 1959 5127 1959 5127 1960 5127 1960 5127 1960 5128 1962 5128 1964 5128 1966 5128 1966 5127 1969 5127 1972 5127 1972 5126 1972 5126 1973 5125 1973 5124 1973 5124 1973 5124 1974 5124 1974 5124 1974 5123 1975 5123 1975 5123 1975 5121 1979 5121 1981 5120 1983 5120 1984 5120 1984 5120 1984 5120 1985 5121 1986 5121 1986 5121 1986 5121 1987 5121 1987 5124 1990 5124 1992 5124 1992 5122 1993 5122 1993 5121 1993 5121 1993 5121 1993 5120 1994 5120 1994 5120 1994 5119 1995 5119 1995 5118 1995 5118 1996 5118 1997 5118 1997 5117 1997 5117 1998 5117 1998 5117 1998 5118 1998 5118 1998 5118 1999 5118 2000 5118 2000 5118 2000 5117 2001 5117 2001 5116 2001 5115 2002 5115 2002 5113 2002 5111 2003 5111 2003 5111 2004 5111 2005 5110 2005 5110 2005 5110 2005 5109 2005 5109 2005 5109 2005 5107 2004 5107 2004 5108 2004 5108 2004 5108 2004 5109 2004 5109 2004 5109 2003 5109 2002 5108 2001 5108 2001 5109 1999 5110 1997 5111 1997 5112 1996 5113 1995 5113 1995 5113 1994 5112 1994 5112 1993 5112 1993 5111 1993 5111 1993 5110 1993 5108 1993 5107 1994 5107 1994 5107 1994 5107 1994 5108 1995 5108 1995 5107 1996 5107 1996 5106 1996 5106 1996 5105 1996 5105 1997 5106 1999 5106 1999 5106 1999 5106 1999 5107 1999 5107 1999 5106 2001 5106 2001 5105 2001 5105 2001 5105 2001 5105 2001 5105 2001 5105 2000 5105 2000 5104 1999 5104 1999 5102 1999 5102 1999 5102 1999 5101 1999 5100 1999 5100 1999 5099 1999 5099 1999 5098 1999 5098 2000 5098 2000 5097 2000 5097 2001 5097 2002 5097 2002 5097 2002 5097 2003 5097 2004 5097 2004 5097 2004 5097 2004 5097 2004 5098 2005 5097 2005 5097 2005 5096 2007 5096 2007 5095 2009 5094 2010 5093 2010 5093 2010 5092 2010 5092 2010 5091 2009 5091 2008 5091 2008 5091 2007 5091 2006 5091 2005 5091 2004 5092 2004 5092 2004 5092 2003 5092 2003 5093 2003 5093 2003 5094 2003 5093 2002 5092 2002 5092 2002 5091 2002 5091 2002 5091 2001 5091 2001 5090 2002 5088 2002 5088 2002 5084 2006 5083 2008 5082 2009 5082 2009 5082 2009 5082 2010 5082 2010 5083 2010 5082 2010 5080 2009 5079 2009 5079 2009 5078 2009 5077 2009 5077 2009 5076 2009 5076 2009 5073 2009 5073 2009 5072 2009 5070 2009 5069 2009 5068 2009 5068 2009 5067 2010 5066 2010 5065 2010 5065 2010 5064 2010 5064 2010 5064 2009 5064 2009 5065 2009 5065 2009 5066 2009 5069 2008 5069 2008 5068 2007 5068 2007 5068 2007 5068 2007 5068 2007 5067 2007 5066 2007 5065 2007 5064 2007 5064 2007 5063 2007 5063 2007 5063 2007 5063 2006 5063 2006 5063 2005 5063 2005 5063 2005 5063 2005 5062 2006 5062 2006 5062 2007 5062 2007 5062 2007 5062 2008 5063 2008 5063 2008 5063 2008 5063 2009 5062 2008 5062 2008 5061 2008 5061 2008 5061 2008 5061 2008 5060 2005 5060 2005 5060 2005 5060 2005 5061 2004 5061 2004 5061 2004 5061 2004 5061 2003 5062 2003 5062 2003 5061 2002 5061 2002 5060 2002 5059 2003 5059 2003 5058 2003 5058 2004 5058 2004 5058 2004 5057 2004 5058 2005 5058 2005 5058 2006 5057 2006 5057 2006 5057 2006 5057 2007 5056 2007 5056 2007 5056 2008 5056 2008 5056 2008 5056 2009 5056 2010 5056 2010 5057 2010 5057 2010 5057 2010 5057 2010 5058 2011 5059 2011 5060 2012 5060 2012 5061 2012 5061 2012 5062 2013 5062 2013 5062 2015 5061 2016 5061 2016 5060 2016 5060 2015 5060 2015 5060 2015 5059 2015 5058 2015 5057 2015 5055 2016 5053 2016 5053 2016 5053 2016 5052 2017 5052 2017 5051 2019 5052 2020 5052 2020 5051 2020 5051 2020 5050 2021 5050 2021 5050 2021 5049 2021 5049 2022 5049 2022 5048 2022 5048 2022 5048 2023 5048 2023 5048 2023 5048 2024 5047 2024 5047 2024 5047 2025 5046 2026 5046 2026 5046 2027 5045 2027 5044 2028 5041 2027 5040 2027 5039 2027 5038 2026 5038 2026 5037 2025 5037 2025 5037 2025 5037 2025 5038 2024 5037 2024 5036 2023 5036 2023 5034 2023 5032 2021 5032 2021 5033 2020 5033 2019 5034 2017 5033 2016 5033 2016 5033 2015 5033 2014 5034 2014 5035 2014 5036 2013 5037 2012 5037 2012 5038 2011 5038 2011 5039 2010 5039 2009 5038 2008 5037 2008 5036 2008 5035 2009 5034 2009 5034 2009 5034 2009 5034 2009 5032 2010 5032 2010 5031 2009 5030 2009 5030 2009 5029 2008 5027 2007 5027 2007 5027 2007 5026 2007 5026 2007 5026 2007 5023 2007 5022 2008 5021 2008 5020 2008 5020 2008 5019 2008 5019 2008 5019 2008 5018 2009 5017 2010 5017 2010 5017 2010 5016 2010 5016 2010 5016 2010 5016 2010 5015 2010 5014 2010 5014 2010 5014 2010 5014 2011 5014 2011 5015 2010 5015 2010 5015 2010 5015 2010 5016 2010 5016 2010 5016 2011 5014 2012 5014 2012 5014 2012 5013 2012 5012 2012 5011 2011 5011 2011 5010 2011 5010 2011 5007 2013 5005 2014 5004 2014 5004 2014 5004 2014 5004 2013 5003 2013 5003 2013 5003 2013 5003 2014 5003 2014 5002 2015 5000 2015 5000 2015 5000 2014 4998 2014 4996 2015 4996 2015 4996 2015 4996 2015 4996 2016 4996 2016 4994 2016 4994 2016 4993 2016 4992 2016 4992 2016 4991 2015 4991 2014 4990 2014 4990 2014 4989 2014 4989 2014 4989 2014 4988 2014 4987 2016 4987 2016 4987 2017 4987 2017 4987 2017 4987 2020 4986 2020 4986 2020 4985 2020 4985 2021 4986 2022 4986 2022 4986 2022 4984 2023 4984 2023 4984 2023 4984 2023 4984 2021 4981 2019 4981 2019 4980 2019 4979 2019 4977 2019 4974 2020 4973 2020 4973 2020 4971 2021 4970 2021 4970 2020 4970 2020 4970 2020 4969 2019 4969 2019 4968 2019 4968 2019 4967 2019 4967 2020 4967 2020 4966 2021 4966 2021 4966 2021 4966 2020 4966 2017 4966 2017 4966 2017 4966 2017 4966 2016 4966 2016 4966 2016 4966 2015 4965 2015 4966 2013 4966 2013 4967 2013 4967 2013 4970 2013 4971 2013 4971 2014 4972 2013 4972 2013 4974 2013 4974 2012 4976 2010 4977 2009 4977 2009 4977 2009 4978 2009 M 5087 1951 5087 1952 5087 1952 5087 1952 5087 1953 5086 1954 5086 1954 5086 1954 5086 1955 5086 1955 5088 1954 5088 1954 5088 1954 5088 1954 5088 1954 5088 1955 5088 1955 5088 1955 5087 1957 5087 1957 5085 1958 5085 1958 5084 1959 5083 1959 5083 1959 5083 1959 5083 1959 5083 1958 5083 1958 5083 1958 5084 1958 5084 1958 5084 1956 5085 1956 5084 1956 5084 1956 5084 1956 5084 1956 5084 1956 5083 1956 5083 1956 5083 1956 5083 1955 5083 1955 5083 1954 5084 1953 5086 1951 5087 1951 5087 1951 5087 1950 5087 1950 5087 1951 5087 1951 M 5004 1982 5004 1982 5004 1982 5005 1983 5005 1983 5005 1984 5005 1985 5003 1985 5003 1985 5002 1984 5002 1984 5002 1983 5002 1983 5003 1983 5003 1982 5004 1982 5004 1982 5004 1982 M 4943 2008 4943 2009 4943 2009 4943 2009 4943 2011 4943 2011 4942 2014 4941 2014 4941 2015 4941 2015 4941 2015 4939 2014 4939 2014 4940 2011 4941 2009 4942 2009 4943 2008 4943 2008 M 5027 2016 5027 2016 5027 2016 5026 2016 5026 2015 5026 2015 5026 2015 5026 2015 5028 2012 5029 2011 5031 2010 5031 2010 5032 2010 5032 2010 5032 2010 5031 2011 5031 2012 5030 2012 5030 2013 5030 2013 5030 2013 5030 2014 5030 2014 5030 2014 5030 2015 5030 2015 5030 2015 5030 2015 5030 2015 5028 2016 5027 2016 M 5021 2011 5021 2012 5021 2013 5018 2012 5018 2011 5020 2011 5021 2011 5021 2011 5021 2011 M 5009 2019 5009 2019 5010 2018 5010 2017 5010 2016 5011 2015 5014 2014 5015 2014 5017 2014 5017 2014 5017 2013 5018 2013 5019 2014 5019 2015 5021 2015 5022 2016 5023 2016 5024 2016 5025 2016 5025 2017 5025 2018 5025 2018 5025 2019 5025 2020 5026 2020 5026 2021 5027 2022 5026 2023 5025 2023 5025 2023 5021 2025 5021 2027 5020 2027 5020 2027 5020 2028 5019 2028 5019 2029 5019 2030 5018 2031 5018 2031 5018 2032 5017 2031 5016 2030 5016 2029 5014 2028 5014 2028 5013 2028 5011 2027 5011 2027 5010 2027 5009 2027 5009 2027 5009 2028 5006 2029 5005 2029 5004 2030 5003 2030 5003 2031 5004 2031 5003 2032 5003 2032 5002 2034 5001 2035 5000 2035 5000 2035 5000 2035 4999 2036 4999 2038 4999 2039 4999 2040 4998 2039 4998 2039 4997 2039 4996 2040 4994 2039 4993 2039 4994 2038 4994 2038 4995 2037 4995 2037 4994 2037 4994 2037 4993 2037 4992 2037 4991 2037 4991 2035 4991 2033 4992 2032 4992 2032 4991 2031 4991 2031 4990 2031 4989 2030 4990 2029 4989 2028 4988 2028 4986 2029 4986 2030 4985 2030 4984 2030 4985 2029 4988 2028 4988 2028 4990 2027 4992 2025 4993 2025 4993 2025 4994 2025 4994 2024 4994 2023 4995 2023 4995 2021 4996 2020 4998 2018 4998 2018 4999 2018 5000 2019 5000 2020 5000 2020 5001 2021 5002 2021 5002 2021 5003 2021 5003 2020 5004 2020 5004 2020 5005 2020 5006 2020 5007 2020 5008 2020 5008 2020 5009 2019 M 4941 2016 4941 2016 4940 2017 4940 2018 4939 2018 4939 2018 4938 2018 4938 2017 4938 2016 4939 2015 4939 2014 4939 2014 4940 2015 4941 2015 4941 2016 M 4991 2015 4991 2016 4991 2016 4991 2017 4990 2018 4990 2016 4990 2016 4990 2016 4990 2015 4991 2015 4991 2015 4991 2015 M 4990 2021 4989 2022 4987 2022 4986 2021 4986 2021 4986 2021 4986 2020 4987 2020 4987 2020 4988 2020 4988 2021 4989 2021 4989 2021 4989 2021 4990 2020 4990 2021 4991 2021 4990 2021 4990 2021 4990 2021 M 4947 2042 4948 2041 4949 2040 4949 2040 4948 2039 4947 2039 4946 2038 4946 2036 4946 2036 4946 2034 4947 2034 4947 2035 4948 2035 4949 2036 4949 2037 4948 2036 4948 2037 4948 2037 4948 2038 4949 2038 4951 2038 4951 2038 4950 2035 4950 2035 4950 2035 4947 2034 4946 2032 4945 2032 4944 2032 4945 2030 4949 2031 4949 2030 4949 2029 4949 2029 4949 2029 4948 2028 4949 2027 4950 2027 4951 2027 4951 2028 4951 2028 4951 2028 4952 2028 4952 2028 4952 2028 4954 2026 4955 2025 4955 2026 4956 2026 4957 2026 4958 2026 4958 2025 4959 2023 4959 2023 4959 2023 4959 2022 4960 2021 4963 2020 4964 2021 4965 2021 4967 2021 4967 2022 4968 2024 4968 2025 4969 2026 4970 2026 4971 2026 4972 2026 4973 2026 4974 2026 4975 2026 4975 2025 4975 2025 4976 2025 4977 2025 4978 2025 4978 2025 4978 2025 4979 2026 4979 2027 4979 2028 4979 2029 4977 2030 4976 2030 4976 2030 4975 2030 4975 2030 4976 2031 4976 2031 4976 2031 4977 2032 4979 2032 4980 2032 4981 2032 4981 2032 4982 2031 4981 2032 4981 2033 4980 2034 4982 2036 4983 2037 4983 2038 4982 2039 4981 2040 4981 2040 4981 2041 4980 2040 4980 2041 4979 2042 4978 2043 4978 2043 4979 2044 4978 2045 4977 2046 4977 2048 4976 2049 4975 2052 4974 2053 4975 2054 4975 2054 4975 2055 4975 2057 4974 2060 4973 2061 4973 2061 4971 2061 4971 2061 4971 2060 4970 2060 4969 2060 4969 2060 4968 2061 4968 2061 4967 2062 4968 2062 4968 2062 4969 2062 4969 2063 4967 2065 4966 2065 4966 2066 4965 2066 4965 2066 4963 2067 4963 2067 4963 2067 4962 2067 4962 2066 4963 2066 4964 2065 4964 2063 4964 2062 4964 2061 4962 2059 4961 2059 4961 2058 4961 2058 4962 2058 4962 2057 4963 2058 4963 2058 4963 2059 4964 2058 4964 2058 4964 2057 4964 2056 4964 2056 4962 2056 4962 2056 4961 2056 4961 2057 4960 2058 4960 2059 4960 2060 4960 2060 4960 2061 4960 2062 4961 2062 4961 2063 4962 2063 4962 2063 4962 2064 4962 2064 4961 2065 4960 2065 4960 2064 4959 2064 4959 2064 4957 2063 4955 2063 4955 2063 4955 2062 4955 2061 4956 2061 4956 2060 4956 2059 4957 2059 4957 2057 4955 2056 4955 2056 4954 2055 4954 2055 4954 2054 4955 2053 4954 2051 4954 2050 4955 2049 4956 2049 4956 2050 4956 2050 4957 2050 4957 2049 4959 2046 4960 2045 4960 2045 4960 2044 4961 2043 4961 2042 4961 2041 4959 2041 4959 2041 4960 2040 4961 2040 4961 2039 4961 2038 4960 2038 4960 2037 4959 2037 4958 2036 4958 2036 4958 2035 4958 2034 4957 2033 4955 2033 4954 2034 4954 2035 4954 2035 4955 2036 4954 2037 4954 2037 4953 2037 4953 2038 4953 2038 4954 2038 4954 2038 4955 2038 4955 2038 4956 2038 4956 2038 4957 2038 4957 2039 4957 2039 4957 2040 4957 2041 4955 2042 4954 2042 4954 2041 4954 2041 4954 2040 4955 2040 4954 2039 4953 2039 4951 2040 4951 2040 4950 2040 4950 2041 4950 2041 4949 2042 4948 2042 4947 2042 4947 2042 M 4947 2024 4947 2024 4946 2024 4946 2023 4946 2022 4946 2022 4947 2022 4948 2022 4948 2023 4947 2024 4947 2024 M 4944 2031 4944 2031 4943 2032 4943 2032 4943 2032 4943 2032 4943 2032 4942 2033 4942 2033 4942 2033 4942 2033 4941 2033 4943 2030 4944 2029 4944 2029 4945 2029 4944 2030 4944 2031 M 4937 2034 4937 2035 4937 2035 4937 2036 4937 2036 4937 2036 4938 2036 4938 2036 4938 2035 4938 2036 4938 2036 4938 2036 4937 2038 4936 2038 4936 2036 4936 2036 4937 2034 4937 2033 4937 2034 4937 2034 4937 2034 M 4930 2040 4930 2040 4930 2039 4930 2039 4930 2039 4932 2039 4932 2039 4933 2039 4934 2040 4934 2041 4931 2042 4930 2042 4930 2042 4929 2042 4929 2042 4929 2041 4930 2040 M 4951 2048 4951 2048 4951 2047 4951 2046 4951 2045 4951 2045 4952 2043 4952 2043 4953 2043 4954 2043 4954 2043 4955 2044 4955 2044 4955 2045 4955 2046 4953 2048 4953 2048 4952 2048 4952 2048 4951 2048 M 4955 2044 4955 2044 4956 2044 4957 2043 4957 2043 4959 2043 4958 2045 4957 2045 4957 2045 4957 2045 4955 2045 4955 2045 4955 2044 4955 2044 4955 2044 M 4969 2070 4969 2071 4969 2071 4969 2072 4969 2072 4968 2073 4967 2077 4966 2078 4965 2078 4965 2077 4965 2077 4965 2076 4965 2076 4965 2076 4966 2076 4966 2075 4966 2075 4967 2074 4967 2074 4967 2074 4967 2073 4966 2072 4967 2071 4968 2070 4968 2070 4968 2070 4969 2070 M 4960 2076 4960 2076 4961 2077 4962 2077 4962 2077 4962 2077 4962 2077 4962 2078 4962 2078 4962 2079 4961 2079 4960 2080 4960 2080 4959 2079 4958 2079 4958 2078 4958 2077 4957 2077 4958 2077 4959 2076 4959 2076 4960 2076 4960 2076 4960 2076 M 4946 2107 4947 2107 4947 2108 4947 2108 4947 2108 4947 2109 4946 2109 4946 2109 4945 2109 4945 2109 4944 2111 4943 2112 4941 2113 4938 2112 4938 2111 4940 2110 4941 2110 4945 2108 4945 2108 4945 2108 4946 2108 4946 2107 M 4934 2117 4934 2117 4935 2117 4935 2117 4936 2119 4936 2119 4936 2120 4935 2120 4935 2120 4934 2120 4934 2120 4934 2120 4934 2118 4934 2118 4934 2117 4934 2117 4934 2117 4934 2117 M 4924 2134 4924 2134 4924 2134 4925 2134 4925 2134 4925 2135 4925 2135 4924 2137 4923 2137 4923 2137 4922 2138 4919 2140 4917 2140 4917 2140 4917 2140 4917 2140 4916 2143 4916 2144 4917 2144 4916 2145 4916 2145 4916 2145 4915 2146 4915 2146 4915 2146 4914 2146 4914 2146 4914 2144 4914 2144 4915 2143 4915 2142 4915 2142 4915 2141 4915 2141 4915 2140 4916 2140 4916 2140 4919 2138 4919 2138 4919 2138 4919 2138 4918 2138 4918 2137 4917 2137 4918 2137 4918 2136 4919 2136 4919 2136 4919 2136 4919 2137 4919 2137 4919 2137 4920 2137 4921 2137 4921 2137 4921 2136 4921 2136 4921 2136 4923 2134 4924 2134 M 4876 2165 4877 2166 4877 2167 4877 2167 4878 2167 4878 2167 4879 2167 4879 2167 4879 2167 4877 2168 4877 2168 4876 2168 4876 2168 4876 2168 4876 2167 4876 2165 4876 2165 4876 2165 M 4857 2172 4858 2172 4859 2172 4859 2172 4859 2171 4860 2170 4861 2170 4861 2170 4861 2170 4861 2170 4860 2171 4860 2171 4860 2171 4860 2172 4860 2172 4860 2173 4860 2173 4859 2174 4859 2174 4859 2174 4858 2174 4858 2174 4858 2174 4858 2174 4858 2174 4857 2172 4857 2172 4857 2172 M 4852 2173 4854 2173 4854 2173 4855 2174 4854 2174 4854 2175 4854 2175 4853 2175 4851 2175 4850 2174 4852 2173 4852 2173 4852 2173" />
+<path id="jersey" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2842 1777 2842 1777 2841 1777 2841 1777 2841 1777 2840 1777 2840 1777 2840 1777 2839 1777 2839 1776 2839 1776 2841 1776 2842 1776 2843 1776 2843 1776 2843 1777 2842 1777 2842 1777" />
+<path id="ky" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1651 2276 1650 2276 1650 2276 1649 2276 1649 2276 1649 2276 1648 2276 1648 2275 1648 2275 1648 2275 1648 2275 1647 2277 1647 2277 1646 2278 1646 2278 1645 2277 1645 2277 1644 2277 1644 2277 1644 2277 1643 2277 1643 2277 1643 2277 1642 2279 1643 2279 1643 2279 1643 2280 1643 2280 1643 2280 1642 2280 1642 2280 1642 2280 1642 2279 1641 2279 1640 2278 1639 2277 1639 2277 1638 2277 1637 2278 1637 2278 1637 2278 1636 2277 1635 2277 1634 2277 1633 2277 1632 2277 1632 2276 1632 2275 1632 2275 1632 2275 1631 2275 1631 2275 1630 2275 1630 2275 1630 2274 1630 2274 1629 2274 1628 2272 1628 2272 1628 2272 1628 2272 1627 2272 1626 2272 1626 2272 1625 2272 1625 2272 1624 2272 1623 2271 1623 2271 1623 2271 1623 2271 1623 2271 1624 2270 1624 2270 1624 2269 1626 2268 1629 2268 1629 2268 1630 2267 1630 2267 1631 2267 1631 2267 1632 2267 1633 2267 1634 2267 1634 2267 1635 2267 1635 2267 1636 2267 1636 2267 1637 2267 1638 2268 1638 2268 1639 2268 1640 2268 1640 2268 1641 2268 1642 2268 1642 2268 1643 2268 1643 2268 1644 2269 1644 2268 1644 2268 1646 2269 1647 2269 1647 2269 1648 2270 1649 2271 1650 2271 1650 2271 1651 2271 1651 2271 1652 2272 1653 2272 1654 2272 1655 2272 1655 2272 1656 2273 1656 2274 1657 2274 1657 2274 1657 2275 1657 2276 1658 2277 1657 2277 1656 2277 1656 2277 1653 2277 1652 2277 1651 2277 1651 2276" />
+<path id="sj" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2731 1432 2730 1432 2730 1432 2729 1431 2729 1431 2732 1430 2733 1430 2733 1430 2735 1429 2738 1429 2739 1428 2739 1428 2740 1428 2740 1427 2740 1427 2741 1427 2742 1426 2742 1426 2742 1426 2745 1426 2745 1426 2747 1426 2747 1426 2748 1426 2748 1426 2748 1426 2748 1426 2747 1428 2747 1428 2747 1428 2745 1428 2743 1429 2741 1429 2741 1429 2741 1429 2740 1429 2740 1429 2739 1429 2738 1429 2737 1429 2737 1429 2732 1431 2732 1431 2732 1431 2731 1431 2731 1432 2731 1432" />
+<path id="jo" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3442 2059 3442 2059 3442 2058 3442 2058 3442 2057 3442 2056 3443 2056 3443 2055 3443 2054 3443 2053 3442 2051 3442 2051 3443 2048 3443 2048 3443 2045 3443 2045 3443 2045 3443 2041 3444 2041 3444 2040 3444 2040 3445 2040 3446 2039 3447 2040 3449 2040 3450 2041 3450 2042 3451 2043 3452 2043 3453 2043 3453 2043 3455 2044 3456 2044 3456 2045 3458 2045 3458 2046 3460 2046 3462 2046 3463 2046 3464 2046 3468 2043 3474 2040 3474 2040 3474 2040 3476 2039 3481 2036 3487 2033 3490 2032 3493 2030 3495 2029 3499 2043 3498 2044 3499 2047 3502 2046 3503 2048 3501 2049 3499 2050 3498 2051 3490 2053 3482 2055 3481 2055 3477 2056 3474 2057 3469 2058 3466 2059 3471 2064 3474 2067 3475 2068 3482 2075 3477 2078 3474 2083 3473 2084 3467 2085 3462 2085 3458 2091 3454 2094 3451 2096 3443 2095 3437 2094 3433 2094 3433 2093 3433 2092 3434 2092 3434 2091 3434 2091 3434 2090 3434 2090 3434 2089 3435 2085 3435 2085 3435 2085 3435 2084 3436 2083 3436 2082 3436 2082 3437 2081 3437 2081 3437 2078 3437 2077 3437 2076 3437 2074 3438 2073 3438 2072 3439 2071 3439 2071 3439 2069 3440 2069 3440 2069 3440 2068 3441 2066 3441 2065 3441 2065 3441 2064 3441 2064 3441 2062 3442 2061 3442 2061 3442 2060 3442 2059" />
+<path id="tz" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3417 2579 3417 2578 3417 2570 3417 2567 3418 2565 3418 2564 3417 2563 3417 2563 3417 2562 3417 2561 3417 2561 3418 2559 3419 2558 3420 2556 3421 2553 3421 2552 3422 2552 3422 2552 3425 2549 3425 2549 3426 2547 3426 2547 3426 2546 3426 2546 3426 2545 3426 2545 3427 2545 3428 2544 3429 2543 3430 2543 3430 2543 3431 2543 3431 2543 3431 2542 3431 2542 3431 2541 3431 2541 3431 2540 3431 2540 3432 2540 3432 2539 3432 2538 3432 2538 3432 2538 3433 2538 3433 2537 3433 2537 3434 2536 3434 2532 3434 2529 3433 2527 3433 2526 3432 2525 3432 2525 3432 2524 3433 2522 3432 2521 3431 2520 3431 2519 3431 2518 3430 2517 3429 2517 3429 2517 3429 2517 3428 2516 3427 2514 3427 2513 3427 2513 3427 2513 3426 2512 3425 2511 3425 2508 3424 2507 3425 2507 3425 2506 3425 2505 3425 2504 3424 2503 3424 2503 3422 2502 3421 2501 3420 2499 3419 2497 3419 2496 3419 2496 3418 2495 3418 2495 3420 2493 3424 2489 3424 2489 3425 2489 3426 2489 3429 2489 3430 2489 3431 2489 3433 2489 3436 2489 3442 2489 3443 2489 3443 2489 3444 2489 3444 2489 3445 2489 3445 2489 3445 2489 3445 2489 3448 2489 3449 2489 3449 2490 3451 2491 3453 2491 3454 2492 3457 2492 3460 2491 3461 2492 3461 2492 3464 2492 3467 2493 3468 2493 3468 2494 3470 2496 3482 2503 3482 2503 3483 2504 3484 2505 3487 2505 3489 2505 3490 2505 3492 2505 3494 2506 3495 2506 3497 2506 3497 2506 3499 2506 3499 2506 3500 2506 3501 2507 3502 2507 3503 2507 3503 2507 3503 2507 3503 2507 3505 2507 3505 2507 3506 2507 3506 2508 3506 2508 3507 2508 3507 2507 3510 2504 3512 2501 3514 2500 3517 2498 3520 2497 3520 2497 3525 2495 3526 2494 3528 2495 3528 2495 3530 2497 3531 2498 3531 2498 3531 2499 3532 2499 3532 2499 3532 2499 3533 2500 3534 2500 3537 2499 3538 2499 3538 2499 3540 2499 3541 2499 3542 2499 3543 2499 3543 2499 3544 2499 3544 2499 3544 2499 3543 2501 3535 2512 3534 2513 3530 2517 3530 2519 3530 2526 3530 2542 3530 2563 3530 2576 3532 2580 3536 2584 3539 2588 3539 2589 3538 2589 3538 2590 3537 2591 3537 2591 3537 2592 3536 2592 3535 2594 3534 2594 3533 2594 3532 2594 3530 2595 3528 2595 3528 2596 3529 2598 3529 2598 3530 2599 3529 2599 3529 2599 3529 2599 3528 2598 3528 2598 3527 2598 3526 2599 3526 2600 3527 2600 3527 2601 3527 2601 3524 2603 3523 2603 3523 2603 3522 2603 3522 2603 3521 2603 3520 2604 3519 2604 3519 2604 3518 2605 3518 2605 3517 2606 3517 2607 3517 2609 3517 2609 3517 2610 3516 2612 3516 2613 3516 2614 3516 2615 3516 2615 3515 2615 3514 2616 3513 2616 3513 2618 3512 2620 3512 2621 3512 2621 3512 2622 3511 2623 3511 2623 3511 2624 3510 2625 3509 2627 3509 2627 3509 2628 3506 2633 3504 2637 3503 2637 3503 2636 3502 2636 3501 2637 3500 2637 3499 2635 3493 2632 3492 2630 3490 2629 3489 2628 3480 2622 3478 2621 3478 2620 3478 2620 3478 2619 3478 2619 3477 2619 3476 2619 3476 2618 3476 2617 3476 2617 3477 2615 3477 2615 3477 2615 3477 2613 3477 2611 3476 2610 3474 2610 3474 2609 3473 2609 3470 2608 3470 2607 3469 2607 3461 2602 3455 2599 3452 2598 3451 2597 3448 2595 3445 2593 3438 2590 3430 2585 3426 2583 3425 2582 3419 2579 3418 2578 3417 2578 3417 2579 M 3530 2598 3530 2598 3529 2597 3529 2596 3530 2596 3531 2595 3531 2595 3531 2595 3532 2595 3532 2596 3533 2596 3532 2596 3532 2596 3531 2597 3531 2597 3530 2597 3530 2597 3530 2598" />
+<path id="kg" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4070 1916 4070 1916 4070 1917 4070 1917 4071 1918 4071 1918 4071 1918 4071 1918 4070 1918 4069 1918 4069 1918 4067 1919 4066 1920 4065 1921 4064 1921 4064 1922 4063 1922 4063 1922 4062 1922 4062 1922 4061 1922 4061 1922 4060 1922 4057 1923 4057 1923 4055 1927 4054 1927 4055 1928 4055 1928 4056 1929 4056 1930 4055 1932 4054 1932 4054 1932 4051 1932 4051 1932 4049 1932 4049 1932 4047 1933 4047 1933 4044 1934 4044 1934 4039 1934 4038 1934 4037 1934 4036 1933 4035 1933 4035 1933 4035 1934 4033 1934 4032 1934 4032 1934 4031 1934 4030 1935 4030 1935 4030 1935 4029 1936 4027 1935 4027 1934 4026 1934 4025 1934 4024 1934 4023 1935 4023 1935 4021 1935 4021 1935 4021 1934 4021 1934 4021 1933 4021 1933 4021 1932 4020 1932 4020 1932 4019 1932 4019 1932 4018 1932 4018 1932 4017 1932 4017 1931 4018 1931 4018 1930 4017 1930 4017 1930 4016 1930 4014 1930 4012 1931 4011 1931 4010 1932 4010 1932 4010 1933 4009 1933 4009 1933 4007 1933 4005 1933 4004 1932 4004 1931 4004 1931 4004 1931 4003 1930 4001 1930 4001 1930 3999 1930 3998 1931 3997 1930 3996 1930 3993 1931 3991 1931 3990 1931 3990 1931 3990 1930 3989 1930 3988 1930 3988 1930 3987 1930 3986 1930 3986 1931 3985 1931 3982 1931 3982 1931 3982 1931 3982 1930 3982 1930 3982 1929 3982 1929 3982 1928 3981 1928 3981 1927 3981 1927 3981 1926 3982 1925 3982 1924 3984 1925 3984 1925 3985 1925 3985 1925 3985 1924 3985 1923 3985 1922 3986 1922 3986 1922 3987 1922 3987 1922 3988 1921 3990 1921 3993 1920 3994 1920 3998 1921 3998 1922 3998 1922 3999 1922 4000 1922 4001 1923 4002 1923 4002 1923 4002 1924 4001 1924 4001 1924 4001 1925 4001 1925 4003 1924 4003 1924 4003 1924 4004 1923 4004 1923 4004 1922 4007 1921 4008 1921 4008 1921 4009 1921 4009 1920 4009 1920 4009 1919 4010 1919 4011 1919 4011 1919 4013 1919 4014 1919 4015 1919 4017 1919 4017 1920 4017 1920 4017 1920 4020 1921 4022 1921 4022 1921 4023 1920 4026 1919 4025 1918 4027 1917 4028 1916 4028 1916 4029 1916 4029 1916 4030 1916 4031 1917 4031 1917 4032 1917 4032 1917 4032 1917 4032 1916 4032 1916 4031 1916 4031 1915 4031 1914 4031 1914 4034 1915 4035 1915 4035 1915 4036 1915 4036 1914 4038 1913 4039 1913 4039 1913 4040 1912 4043 1911 4043 1911 4044 1910 4043 1910 4042 1910 4039 1910 4037 1910 4036 1910 4036 1910 4035 1909 4035 1909 4034 1908 4033 1907 4031 1907 4030 1907 4028 1908 4028 1907 4028 1905 4027 1904 4027 1905 4024 1905 4023 1904 4023 1904 4023 1903 4023 1903 4023 1902 4023 1902 4020 1899 4019 1899 4019 1900 4019 1900 4019 1900 4020 1901 4019 1901 4019 1902 4019 1903 4018 1903 4018 1903 4017 1903 4016 1902 4016 1902 4016 1904 4016 1904 4016 1905 4016 1905 4016 1906 4015 1906 4013 1905 4012 1905 4012 1905 4009 1904 4006 1904 4006 1902 4006 1902 4005 1901 4004 1900 4004 1900 4003 1900 4003 1901 4002 1901 4001 1901 4001 1901 4000 1900 4000 1900 3999 1900 3999 1900 3998 1899 3998 1899 3997 1899 3996 1899 3996 1899 3996 1898 3996 1898 3997 1898 3998 1898 3998 1898 4001 1896 4001 1896 4001 1896 4001 1895 4002 1895 4004 1893 4005 1893 4006 1893 4007 1893 4007 1892 4007 1891 4007 1891 4008 1891 4008 1891 4009 1891 4013 1889 4013 1889 4013 1889 4013 1888 4013 1888 4013 1888 4012 1888 4011 1887 4010 1887 4010 1887 4009 1887 4009 1888 4008 1888 4008 1887 4007 1887 4007 1887 4008 1886 4008 1885 4008 1885 4010 1882 4010 1882 4012 1882 4012 1881 4013 1880 4016 1879 4017 1879 4017 1879 4018 1879 4019 1879 4019 1879 4020 1879 4020 1879 4021 1879 4022 1878 4023 1878 4024 1879 4025 1879 4028 1879 4029 1879 4030 1879 4031 1880 4032 1880 4035 1881 4037 1881 4038 1881 4038 1882 4038 1882 4039 1883 4039 1883 4040 1883 4040 1883 4041 1883 4043 1883 4046 1884 4046 1884 4047 1885 4049 1885 4049 1885 4049 1885 4049 1884 4049 1884 4048 1883 4048 1883 4048 1882 4048 1882 4048 1880 4049 1880 4049 1879 4049 1878 4050 1877 4050 1875 4051 1875 4052 1874 4054 1874 4056 1874 4056 1873 4058 1873 4061 1872 4062 1872 4062 1872 4063 1873 4066 1874 4067 1874 4068 1875 4069 1876 4069 1876 4070 1876 4071 1876 4071 1876 4074 1877 4076 1878 4077 1878 4078 1878 4082 1878 4082 1878 4083 1879 4084 1879 4085 1878 4085 1878 4085 1877 4086 1877 4086 1877 4086 1877 4087 1877 4091 1877 4093 1877 4094 1877 4095 1877 4096 1877 4099 1877 4101 1877 4102 1876 4102 1876 4105 1876 4107 1876 4107 1876 4108 1877 4109 1877 4111 1877 4113 1877 4116 1877 4116 1877 4120 1877 4120 1878 4121 1878 4122 1878 4123 1878 4123 1878 4124 1878 4128 1877 4129 1878 4129 1878 4132 1878 4137 1880 4138 1879 4139 1879 4139 1879 4140 1879 4140 1879 4140 1880 4140 1880 4140 1880 4140 1881 4141 1881 4141 1882 4142 1882 4142 1882 4143 1882 4143 1883 4143 1883 4144 1884 4144 1884 4144 1884 4145 1884 4145 1884 4146 1884 4147 1884 4148 1884 4148 1884 4151 1885 4152 1885 4155 1887 4155 1888 4156 1888 4156 1888 4156 1888 4157 1889 4157 1889 4157 1890 4157 1891 4157 1891 4156 1891 4156 1891 4155 1891 4154 1891 4153 1891 4152 1891 4152 1891 4151 1891 4151 1891 4150 1892 4150 1892 4150 1893 4149 1893 4149 1894 4148 1894 4148 1894 4147 1894 4145 1894 4142 1895 4139 1896 4138 1897 4136 1897 4133 1899 4132 1899 4132 1899 4132 1899 4129 1900 4127 1901 4127 1902 4127 1902 4127 1903 4127 1903 4127 1903 4126 1904 4126 1904 4125 1904 4125 1904 4125 1905 4125 1905 4125 1905 4124 1906 4124 1906 4123 1907 4122 1907 4122 1907 4121 1907 4121 1907 4119 1907 4118 1907 4117 1907 4116 1908 4114 1908 4113 1908 4112 1908 4112 1907 4111 1907 4110 1907 4109 1908 4107 1907 4107 1907 4106 1907 4105 1907 4104 1907 4103 1907 4103 1907 4102 1908 4099 1912 4099 1912 4099 1914 4099 1914 4098 1914 4098 1915 4098 1915 4097 1915 4097 1916 4097 1916 4097 1917 4096 1917 4094 1918 4094 1917 4092 1917 4090 1917 4090 1917 4090 1917 4089 1918 4088 1918 4088 1919 4087 1919 4084 1919 4084 1919 4084 1918 4084 1918 4083 1915 4083 1915 4083 1914 4083 1914 4082 1913 4081 1914 4081 1914 4078 1915 4077 1916 4077 1916 4074 1916 4073 1916 4073 1916 4072 1916 4072 1916 4071 1915 4071 1915 4071 1915 4070 1916" />
+<path id="kp" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4882 1945 4880 1944 4879 1944 4878 1944 4877 1944 4876 1944 4875 1944 4874 1943 4874 1942 4875 1941 4875 1940 4876 1939 4876 1938 4876 1937 4877 1936 4877 1936 4878 1936 4878 1935 4878 1935 4878 1934 4877 1933 4877 1933 4877 1932 4878 1931 4879 1930 4879 1930 4877 1931 4877 1931 4876 1931 4873 1931 4872 1930 4871 1929 4869 1928 4867 1927 4867 1928 4868 1929 4867 1930 4866 1930 4866 1929 4866 1929 4865 1927 4864 1927 4864 1926 4863 1926 4862 1926 4861 1926 4861 1925 4862 1923 4862 1922 4862 1922 4862 1922 4864 1920 4866 1919 4867 1919 4867 1919 4869 1917 4870 1916 4871 1916 4872 1916 4872 1916 4872 1915 4874 1914 4876 1913 4877 1913 4877 1913 4878 1913 4879 1912 4880 1912 4881 1912 4882 1911 4883 1910 4883 1910 4886 1910 4888 1909 4889 1907 4892 1905 4892 1905 4892 1904 4893 1903 4894 1903 4894 1902 4895 1902 4895 1902 4896 1901 4897 1899 4897 1898 4897 1898 4898 1897 4899 1897 4900 1896 4901 1896 4901 1895 4902 1895 4902 1895 4904 1896 4904 1897 4904 1897 4905 1898 4906 1898 4906 1899 4908 1900 4913 1901 4915 1901 4917 1901 4917 1901 4918 1900 4920 1901 4920 1901 4921 1902 4922 1902 4923 1901 4923 1901 4924 1899 4924 1898 4924 1897 4924 1897 4923 1897 4923 1897 4922 1896 4921 1895 4921 1894 4920 1893 4920 1892 4920 1892 4924 1891 4925 1891 4925 1891 4926 1891 4927 1891 4927 1892 4927 1892 4929 1892 4930 1891 4933 1891 4934 1891 4934 1891 4935 1891 4935 1890 4936 1890 4936 1890 4937 1889 4938 1889 4939 1888 4939 1887 4939 1886 4941 1885 4943 1885 4944 1885 4947 1885 4947 1884 4947 1884 4947 1883 4947 1883 4947 1880 4948 1878 4949 1877 4949 1876 4950 1876 4950 1876 4951 1876 4952 1876 4954 1877 4955 1877 4955 1878 4955 1879 4955 1879 4955 1880 4957 1881 4957 1882 4960 1883 4960 1883 4960 1885 4961 1885 4961 1885 4961 1885 4962 1886 4962 1886 4962 1887 4963 1887 4962 1887 4961 1888 4961 1887 4961 1887 4959 1886 4959 1886 4958 1887 4955 1889 4953 1891 4951 1892 4951 1894 4949 1896 4948 1895 4948 1896 4948 1896 4947 1897 4946 1898 4946 1899 4946 1899 4946 1900 4946 1900 4947 1901 4947 1901 4947 1901 4948 1902 4948 1902 4948 1903 4947 1905 4947 1905 4947 1906 4947 1908 4947 1908 4947 1908 4947 1909 4947 1910 4947 1910 4946 1910 4945 1910 4944 1910 4939 1913 4938 1914 4938 1915 4938 1915 4938 1915 4937 1916 4937 1916 4936 1916 4935 1916 4934 1917 4934 1917 4934 1918 4933 1918 4932 1918 4932 1918 4930 1919 4929 1921 4925 1923 4922 1923 4922 1923 4921 1923 4920 1923 4919 1923 4918 1924 4918 1925 4917 1925 4915 1926 4913 1927 4912 1927 4912 1928 4912 1928 4912 1929 4912 1932 4912 1933 4912 1934 4912 1935 4912 1935 4912 1934 4912 1934 4912 1933 4911 1933 4911 1933 4910 1933 4910 1933 4909 1934 4909 1936 4910 1936 4911 1937 4912 1937 4914 1938 4916 1938 4916 1939 4917 1940 4918 1940 4920 1942 4920 1942 4920 1942 4921 1942 4921 1942 4922 1943 4923 1944 4923 1944 4924 1944 4924 1944 4925 1944 4925 1945 4925 1946 4924 1946 4924 1947 4924 1947 4924 1948 4924 1948 4924 1949 4924 1949 4923 1949 4923 1949 4923 1950 4922 1950 4922 1950 4922 1950 4921 1951 4920 1951 4920 1951 4919 1951 4918 1951 4914 1950 4912 1951 4911 1951 4909 1950 4907 1950 4907 1951 4906 1951 4905 1951 4905 1951 4904 1952 4904 1952 4903 1952 4903 1953 4903 1953 4902 1954 4901 1955 4900 1956 4900 1956 4899 1956 4898 1958 4897 1959 4897 1959 4895 1958 4894 1958 4894 1957 4894 1957 4893 1957 4891 1958 4890 1958 4890 1959 4890 1959 4890 1960 4889 1960 4889 1959 4888 1958 4887 1957 4887 1957 4887 1958 4887 1958 4886 1958 4885 1956 4884 1956 4883 1956 4882 1955 4881 1955 4881 1955 4881 1956 4881 1956 4882 1956 4883 1957 4882 1958 4881 1959 4880 1959 4878 1960 4877 1961 4877 1961 4877 1960 4878 1959 4879 1958 4879 1958 4880 1957 4879 1957 4878 1957 4878 1957 4877 1958 4876 1957 4875 1957 4875 1957 4874 1958 4874 1958 4873 1958 4872 1957 4871 1957 4873 1955 4874 1955 4875 1955 4875 1955 4875 1955 4876 1955 4876 1954 4874 1954 4873 1954 4873 1954 4872 1954 4872 1955 4869 1954 4868 1954 4868 1954 4866 1954 4866 1953 4867 1953 4867 1953 4869 1953 4869 1952 4869 1951 4869 1950 4871 1948 4871 1946 4872 1946 4874 1945 4876 1945 4877 1945 4878 1945 4879 1944 4880 1945 4881 1945 4881 1945 4882 1946 4882 1946 4882 1946 4882 1946 4882 1945 4882 1945" />
+<path id="ki" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 364 2535 362 2534 360 2534 358 2533 358 2533 358 2532 358 2532 359 2532 359 2532 359 2532 359 2532 359 2532 359 2532 359 2532 359 2533 360 2533 360 2533 361 2533 361 2532 362 2532 362 2532 362 2531 360 2531 360 2531 359 2531 359 2530 359 2530 360 2530 360 2530 360 2530 362 2531 362 2532 362 2532 362 2532 362 2533 362 2533 362 2533 362 2533 362 2533 363 2534 364 2534 364 2534 365 2535 365 2535 365 2535 364 2535 364 2535" />
+<path id="kr" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4901 1987 4901 1987 4899 1987 4899 1987 4896 1985 4896 1984 4895 1981 4895 1980 4895 1978 4896 1978 4896 1977 4895 1976 4895 1976 4893 1976 4892 1976 4893 1977 4893 1978 4892 1978 4892 1977 4892 1976 4891 1977 4891 1977 4890 1977 4890 1976 4890 1975 4890 1975 4891 1974 4890 1973 4892 1972 4892 1972 4893 1973 4892 1974 4892 1975 4892 1975 4893 1975 4894 1974 4894 1973 4894 1973 4894 1973 4893 1972 4893 1972 4894 1971 4894 1971 4895 1973 4895 1973 4895 1974 4895 1974 4895 1974 4896 1972 4895 1972 4895 1971 4896 1971 4897 1971 4897 1972 4898 1972 4900 1972 4901 1973 4901 1973 4901 1974 4901 1975 4902 1974 4903 1973 4903 1973 4902 1973 4901 1972 4900 1971 4900 1970 4901 1969 4901 1969 4901 1969 4900 1969 4899 1969 4899 1969 4899 1970 4898 1969 4898 1968 4899 1967 4900 1968 4901 1967 4901 1967 4900 1967 4900 1967 4899 1966 4899 1965 4899 1965 4898 1965 4898 1964 4898 1964 4898 1963 4898 1962 4898 1962 4897 1962 4896 1961 4896 1960 4896 1959 4898 1959 4898 1961 4898 1958 4899 1956 4900 1956 4900 1956 4901 1955 4902 1954 4903 1953 4903 1953 4903 1952 4904 1952 4904 1952 4905 1951 4905 1951 4906 1951 4907 1951 4907 1950 4909 1950 4911 1951 4912 1951 4914 1950 4918 1951 4919 1951 4920 1951 4920 1951 4921 1951 4922 1950 4922 1950 4922 1950 4923 1950 4923 1949 4923 1949 4924 1949 4924 1949 4924 1948 4924 1948 4924 1947 4924 1947 4924 1946 4925 1946 4926 1946 4928 1950 4929 1953 4930 1954 4933 1958 4934 1958 4935 1960 4936 1961 4936 1961 4936 1961 4938 1963 4938 1964 4940 1966 4941 1967 4941 1968 4941 1969 4941 1969 4942 1971 4942 1971 4942 1972 4942 1973 4942 1974 4943 1975 4943 1975 4943 1976 4943 1977 4942 1977 4942 1977 4942 1978 4942 1979 4943 1979 4942 1981 4942 1982 4942 1982 4942 1983 4942 1987 4942 1988 4943 1988 4943 1987 4944 1987 4944 1986 4945 1987 4945 1987 4943 1993 4943 1993 4943 1994 4943 1995 4942 1996 4941 1998 4940 1999 4939 2000 4939 2000 4938 2001 4938 2002 4935 2002 4935 2001 4934 2002 4932 2002 4931 2002 4931 2002 4929 2001 4929 2001 4929 2001 4926 2003 4925 2003 4926 2003 4927 2003 4927 2003 4927 2005 4927 2006 4926 2006 4925 2006 4925 2005 4925 2005 4925 2004 4923 2005 4923 2005 4922 2005 4922 2005 4921 2005 4920 2004 4920 2004 4918 2004 4917 2004 4917 2004 4916 2004 4914 2005 4914 2005 4913 2005 4913 2004 4913 2005 4913 2005 4913 2006 4914 2006 4914 2006 4914 2006 4915 2006 4916 2006 4916 2007 4915 2008 4914 2010 4913 2009 4912 2009 4912 2008 4913 2007 4912 2006 4911 2006 4910 2006 4910 2007 4909 2007 4910 2008 4910 2009 4911 2009 4912 2010 4910 2012 4909 2012 4907 2011 4906 2011 4906 2011 4905 2011 4907 2009 4907 2010 4907 2010 4909 2009 4909 2008 4909 2008 4908 2008 4907 2008 4905 2009 4905 2009 4904 2010 4904 2010 4903 2011 4903 2011 4902 2012 4902 2012 4902 2013 4901 2012 4900 2012 4900 2012 4900 2011 4900 2010 4900 2010 4900 2010 4898 2013 4897 2015 4896 2015 4896 2014 4895 2014 4895 2012 4894 2011 4893 2010 4892 2010 4892 2009 4892 2009 4892 2008 4893 2008 4893 2008 4894 2010 4895 2010 4894 2010 4895 2009 4896 2010 4897 2010 4896 2008 4895 2008 4895 2007 4897 2007 4898 2007 4898 2007 4897 2005 4896 2005 4896 2007 4896 2007 4893 2007 4894 2005 4894 2004 4893 2004 4893 2005 4892 2004 4891 2002 4892 2001 4893 2001 4893 2001 4893 2002 4893 2002 4894 2003 4895 2002 4895 2002 4894 2002 4894 2002 4894 2001 4893 2001 4893 2000 4894 1998 4894 1998 4894 1997 4895 1997 4895 1996 4895 1995 4896 1995 4897 1995 4898 1995 4898 1994 4898 1994 4896 1994 4896 1994 4895 1994 4895 1994 4895 1993 4898 1992 4899 1991 4899 1991 4900 1990 4900 1989 4899 1989 4897 1989 4897 1989 4898 1988 4899 1988 4900 1988 4901 1987 4901 1987 4901 1987 M 4895 1959 4895 1959 4896 1959 4896 1959 4896 1962 4896 1962 4896 1962 4895 1962 4894 1962 4894 1962 4894 1962 4893 1962 4893 1960 4893 1959 4894 1958 4894 1958 4894 1958 4895 1959 M 4894 1981 4894 1981 4893 1981 4893 1981 4893 1978 4893 1978 4893 1978 4893 1978 4894 1978 4894 1981 4894 1981 M 4931 2004 4931 2004 4931 2005 4931 2005 4931 2007 4930 2008 4930 2008 4929 2008 4929 2008 4929 2007 4929 2007 4929 2006 4928 2006 4928 2006 4928 2007 4927 2006 4927 2006 4927 2006 4927 2006 4927 2005 4928 2005 4930 2004 4930 2004 4931 2004 4931 2004 M 4918 2005 4918 2006 4918 2006 4918 2006 4919 2007 4919 2006 4919 2006 4920 2006 4920 2006 4921 2007 4920 2008 4920 2008 4919 2008 4918 2008 4917 2008 4917 2008 4917 2006 4917 2006 4917 2005 4917 2005 4918 2005 4918 2005 4918 2005 4918 2005 4918 2005 4918 2005 M 4894 2012 4894 2012 4893 2012 4893 2013 4892 2014 4891 2014 4890 2014 4890 2014 4890 2014 4889 2013 4889 2013 4889 2013 4889 2013 4889 2013 4891 2010 4892 2010 4892 2010 4892 2011 4893 2011 4894 2012 4894 2012 M 4901 2027 4902 2027 4903 2028 4902 2029 4902 2029 4902 2029 4901 2030 4900 2031 4899 2031 4897 2032 4897 2032 4897 2032 4896 2032 4895 2032 4895 2032 4894 2032 4893 2032 4892 2032 4892 2032 4892 2032 4892 2032 4891 2032 4891 2032 4890 2031 4890 2031 4890 2031 4890 2031 4890 2030 4890 2030 4890 2030 4892 2029 4893 2028 4893 2028 4898 2027 4899 2027 4900 2027 4901 2027 4901 2027 4901 2027 4901 2027" />
+<path id="cc" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4563 2730 4563 2730 4562 2730 4562 2729 4563 2729 4564 2728 4564 2728 4564 2729 4564 2730 4564 2730 4563 2730" />
+<path id="kw" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3633 2100 3633 2099 3626 2098 3623 2098 3619 2098 3618 2098 3618 2098 3618 2098 3619 2097 3619 2097 3619 2097 3620 2096 3620 2096 3621 2096 3621 2095 3622 2094 3623 2092 3623 2092 3624 2090 3625 2090 3625 2089 3626 2087 3627 2085 3628 2084 3628 2084 3628 2083 3628 2083 3629 2083 3631 2082 3632 2082 3633 2082 3637 2082 3641 2083 3641 2083 3641 2084 3641 2086 3642 2086 3642 2086 3642 2087 3643 2088 3643 2088 3644 2089 3644 2090 3644 2091 3643 2090 3643 2090 3642 2089 3641 2089 3641 2089 3637 2093 3637 2093 3639 2094 3639 2094 3639 2094 3640 2094 3640 2094 3641 2093 3641 2093 3642 2093 3642 2094 3643 2095 3643 2096 3644 2098 3644 2099 3644 2100 3645 2100 3646 2102 3647 2103 3648 2104 3648 2104 3648 2105 3648 2107 3646 2107 3637 2107 3636 2105 3635 2105 3635 2104 3635 2104 3635 2103 3635 2103 3634 2102 3634 2101 3633 2100 M 3645 2084 3645 2084 3645 2084 3646 2085 3647 2087 3647 2087 3647 2087 3647 2087 3647 2088 3647 2088 3647 2088 3647 2088 3647 2089 3647 2089 3646 2089 3646 2090 3646 2090 3646 2090 3645 2090 3645 2090 3645 2090 3644 2090 3644 2090 3644 2089 3643 2087 3644 2084 3644 2084 3644 2084 3644 2083 3644 2084 3645 2084" />
+<path id="kz" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3810 1835 3810 1835 3806 1836 3802 1837 3798 1837 3795 1838 3792 1839 3786 1840 3782 1841 3782 1841 3781 1841 3781 1841 3780 1841 3776 1842 3774 1843 3769 1844 3769 1848 3769 1852 3769 1861 3769 1862 3769 1866 3769 1870 3769 1874 3769 1876 3769 1880 3769 1884 3769 1888 3769 1890 3769 1893 3769 1898 3769 1902 3769 1902 3768 1902 3768 1902 3767 1903 3767 1903 3766 1903 3764 1903 3762 1903 3761 1903 3760 1903 3760 1902 3760 1902 3760 1901 3759 1901 3759 1901 3758 1901 3757 1900 3757 1900 3757 1899 3757 1899 3756 1898 3755 1897 3754 1896 3754 1895 3753 1895 3753 1895 3753 1894 3753 1893 3752 1893 3750 1891 3749 1890 3747 1889 3743 1887 3741 1887 3741 1887 3741 1886 3740 1886 3738 1886 3738 1886 3737 1886 3736 1886 3736 1886 3736 1886 3734 1887 3732 1887 3732 1887 3731 1887 3730 1887 3729 1887 3728 1888 3727 1888 3727 1888 3722 1889 3721 1890 3720 1890 3718 1891 3713 1895 3713 1896 3712 1896 3713 1894 3713 1894 3713 1893 3713 1893 3713 1892 3713 1892 3712 1892 3712 1890 3713 1889 3713 1889 3714 1888 3714 1888 3715 1887 3715 1886 3716 1885 3717 1882 3717 1881 3717 1880 3715 1879 3715 1879 3714 1879 3714 1879 3713 1878 3712 1878 3712 1878 3711 1878 3709 1878 3708 1878 3707 1878 3706 1878 3705 1878 3705 1878 3704 1878 3703 1877 3702 1876 3702 1876 3702 1876 3700 1873 3700 1873 3696 1873 3695 1873 3694 1873 3694 1873 3694 1873 3694 1872 3694 1872 3695 1871 3695 1870 3695 1869 3695 1869 3694 1867 3693 1866 3692 1866 3691 1865 3690 1863 3690 1863 3689 1862 3688 1860 3687 1859 3687 1857 3687 1857 3687 1856 3686 1856 3685 1856 3684 1855 3683 1855 3682 1855 3681 1855 3680 1855 3678 1854 3677 1854 3677 1853 3677 1852 3677 1851 3679 1849 3680 1849 3682 1850 3685 1850 3686 1850 3688 1850 3688 1850 3688 1850 3689 1851 3690 1852 3691 1852 3692 1852 3692 1852 3696 1851 3696 1852 3699 1852 3699 1851 3698 1851 3697 1850 3696 1850 3695 1850 3695 1850 3694 1850 3694 1850 3694 1848 3693 1848 3693 1848 3692 1848 3691 1847 3691 1847 3690 1847 3690 1847 3689 1846 3689 1844 3689 1844 3690 1844 3693 1843 3693 1842 3694 1841 3695 1840 3696 1838 3697 1838 3697 1838 3698 1838 3699 1838 3699 1838 3701 1838 3701 1837 3702 1837 3704 1838 3705 1838 3707 1838 3713 1837 3714 1837 3714 1837 3716 1838 3718 1838 3719 1839 3723 1839 3725 1838 3725 1838 3724 1838 3724 1838 3720 1836 3717 1835 3717 1835 3717 1834 3717 1833 3720 1831 3720 1831 3720 1831 3721 1830 3723 1828 3723 1827 3723 1826 3724 1823 3724 1823 3724 1822 3724 1822 3724 1821 3723 1820 3722 1820 3722 1820 3722 1819 3722 1819 3722 1819 3723 1819 3725 1818 3725 1817 3725 1816 3724 1816 3723 1815 3723 1815 3723 1814 3722 1814 3720 1813 3719 1813 3718 1813 3716 1813 3715 1813 3714 1812 3713 1812 3712 1812 3712 1813 3709 1815 3709 1815 3708 1815 3707 1815 3703 1814 3702 1813 3701 1812 3700 1812 3700 1811 3698 1811 3695 1810 3694 1810 3694 1810 3693 1810 3693 1810 3690 1811 3689 1811 3687 1812 3687 1812 3686 1813 3685 1813 3685 1813 3684 1813 3683 1813 3682 1814 3681 1813 3679 1814 3678 1815 3677 1816 3677 1816 3676 1816 3675 1817 3673 1818 3671 1819 3671 1819 3670 1819 3668 1819 3667 1819 3665 1820 3664 1819 3663 1819 3664 1820 3664 1821 3663 1821 3662 1821 3662 1821 3661 1822 3661 1822 3660 1822 3656 1820 3656 1820 3655 1820 3654 1820 3654 1819 3654 1819 3653 1819 3652 1819 3652 1819 3651 1819 3650 1817 3650 1817 3650 1816 3650 1816 3650 1816 3651 1815 3652 1815 3652 1815 3653 1816 3653 1816 3653 1816 3654 1817 3657 1817 3658 1815 3657 1815 3653 1810 3652 1807 3651 1806 3649 1805 3648 1804 3647 1803 3646 1802 3646 1801 3645 1801 3645 1801 3644 1800 3643 1800 3643 1799 3642 1799 3640 1799 3638 1799 3637 1799 3637 1800 3636 1800 3636 1799 3635 1799 3634 1799 3633 1799 3633 1798 3632 1798 3632 1799 3632 1799 3632 1801 3630 1800 3629 1799 3628 1799 3628 1797 3628 1794 3628 1792 3628 1792 3628 1791 3625 1791 3623 1790 3620 1790 3618 1789 3618 1788 3619 1787 3619 1786 3620 1785 3622 1781 3623 1781 3623 1780 3624 1780 3624 1780 3625 1780 3625 1780 3626 1779 3626 1779 3626 1778 3627 1778 3627 1777 3627 1777 3626 1776 3626 1776 3625 1775 3624 1775 3624 1775 3624 1775 3623 1775 3623 1774 3623 1774 3623 1770 3625 1766 3625 1766 3625 1766 3626 1765 3626 1765 3627 1765 3628 1765 3628 1765 3629 1765 3630 1764 3631 1763 3631 1763 3631 1762 3631 1762 3631 1762 3631 1761 3630 1761 3631 1759 3631 1759 3632 1759 3633 1758 3633 1758 3633 1758 3633 1757 3634 1757 3635 1757 3635 1757 3635 1757 3636 1757 3638 1758 3641 1760 3642 1761 3643 1762 3644 1763 3644 1763 3644 1764 3644 1764 3646 1766 3648 1767 3649 1767 3649 1767 3650 1766 3651 1766 3652 1766 3653 1765 3654 1765 3654 1765 3655 1765 3655 1764 3656 1763 3656 1762 3655 1761 3654 1760 3653 1759 3653 1758 3653 1757 3653 1756 3653 1754 3653 1754 3655 1754 3655 1754 3658 1753 3658 1753 3659 1752 3660 1752 3660 1751 3660 1751 3661 1751 3662 1751 3663 1751 3664 1750 3664 1750 3665 1750 3665 1749 3664 1749 3664 1749 3663 1748 3664 1747 3665 1746 3666 1746 3667 1746 3670 1746 3671 1746 3671 1745 3673 1745 3673 1744 3674 1744 3675 1744 3676 1744 3677 1744 3678 1743 3679 1743 3679 1742 3680 1741 3681 1741 3682 1740 3682 1740 3682 1739 3683 1739 3683 1738 3684 1738 3685 1738 3685 1738 3685 1739 3685 1739 3686 1739 3687 1738 3687 1738 3687 1738 3686 1737 3686 1737 3686 1736 3686 1736 3686 1736 3687 1736 3687 1736 3687 1736 3688 1736 3688 1737 3689 1737 3692 1737 3693 1737 3694 1737 3696 1738 3696 1738 3696 1739 3694 1739 3694 1739 3694 1740 3696 1740 3698 1740 3700 1740 3700 1741 3701 1741 3702 1740 3702 1739 3702 1739 3702 1738 3704 1737 3704 1737 3704 1737 3705 1737 3706 1737 3706 1737 3707 1737 3707 1737 3708 1737 3708 1736 3711 1735 3711 1735 3711 1736 3713 1739 3713 1739 3713 1739 3714 1740 3714 1740 3714 1740 3715 1741 3716 1741 3717 1740 3718 1740 3719 1740 3720 1740 3721 1740 3722 1740 3724 1740 3725 1740 3726 1740 3727 1740 3727 1740 3728 1740 3732 1742 3731 1742 3731 1743 3732 1744 3734 1744 3736 1745 3736 1745 3737 1745 3740 1746 3740 1747 3740 1748 3741 1748 3742 1749 3743 1750 3744 1750 3746 1750 3746 1751 3745 1751 3745 1752 3744 1754 3744 1754 3744 1754 3745 1755 3745 1755 3746 1755 3747 1755 3748 1754 3749 1754 3749 1754 3748 1753 3748 1752 3748 1751 3748 1750 3748 1749 3747 1749 3746 1749 3746 1748 3748 1747 3748 1747 3749 1747 3751 1748 3753 1750 3755 1751 3755 1751 3758 1753 3759 1753 3760 1753 3761 1753 3761 1753 3762 1753 3762 1754 3762 1754 3764 1755 3764 1755 3765 1755 3766 1755 3766 1754 3767 1754 3767 1754 3768 1754 3768 1754 3769 1753 3770 1753 3771 1752 3771 1752 3772 1751 3772 1750 3772 1749 3773 1749 3773 1749 3774 1750 3775 1750 3775 1749 3777 1748 3777 1748 3776 1747 3777 1747 3777 1747 3778 1747 3778 1747 3779 1747 3779 1748 3779 1748 3781 1748 3781 1748 3781 1747 3781 1747 3781 1747 3782 1746 3782 1747 3783 1747 3783 1747 3786 1747 3787 1747 3787 1747 3789 1747 3790 1748 3791 1749 3791 1749 3792 1750 3792 1750 3793 1750 3794 1750 3794 1750 3794 1749 3794 1749 3795 1749 3796 1749 3797 1749 3797 1749 3797 1749 3798 1749 3798 1748 3797 1748 3797 1747 3797 1747 3798 1746 3799 1746 3804 1747 3804 1747 3805 1746 3805 1746 3806 1746 3807 1745 3807 1746 3811 1747 3811 1747 3811 1747 3811 1748 3811 1749 3810 1749 3811 1750 3812 1751 3816 1753 3816 1753 3817 1753 3819 1753 3820 1753 3821 1753 3823 1754 3825 1754 3825 1754 3827 1755 3827 1755 3826 1755 3825 1755 3825 1755 3826 1756 3826 1756 3827 1756 3827 1756 3828 1755 3829 1755 3829 1755 3829 1755 3830 1755 3832 1754 3832 1753 3832 1752 3832 1751 3833 1751 3833 1750 3834 1750 3834 1750 3835 1750 3836 1751 3836 1751 3836 1752 3837 1752 3838 1753 3838 1753 3839 1753 3844 1753 3845 1753 3846 1753 3848 1753 3850 1752 3851 1752 3852 1752 3852 1752 3854 1752 3854 1752 3855 1751 3855 1751 3856 1751 3856 1751 3857 1750 3857 1750 3857 1748 3858 1745 3858 1744 3858 1744 3859 1744 3859 1744 3860 1744 3860 1744 3860 1744 3860 1744 3859 1743 3858 1743 3857 1741 3855 1741 3853 1740 3852 1740 3852 1741 3850 1740 3849 1740 3848 1739 3848 1738 3848 1738 3848 1738 3847 1738 3842 1738 3839 1737 3840 1737 3841 1736 3841 1735 3841 1735 3841 1735 3837 1734 3836 1734 3835 1734 3835 1734 3834 1734 3833 1733 3833 1732 3834 1732 3837 1732 3840 1730 3841 1730 3841 1729 3842 1729 3843 1730 3844 1730 3844 1730 3845 1729 3845 1729 3846 1728 3846 1728 3847 1728 3848 1728 3848 1728 3850 1727 3850 1726 3849 1725 3849 1724 3847 1723 3847 1722 3847 1722 3846 1722 3845 1722 3844 1721 3844 1721 3845 1720 3845 1720 3847 1719 3850 1718 3851 1717 3851 1716 3852 1716 3853 1716 3853 1716 3853 1716 3854 1716 3854 1716 3855 1716 3855 1716 3856 1716 3856 1716 3856 1716 3857 1716 3857 1716 3860 1716 3863 1716 3864 1717 3865 1717 3867 1716 3867 1716 3867 1715 3868 1715 3867 1714 3867 1714 3866 1714 3865 1714 3863 1713 3862 1713 3862 1713 3861 1713 3861 1713 3859 1712 3859 1712 3858 1713 3858 1713 3857 1712 3857 1712 3857 1712 3856 1712 3856 1712 3855 1712 3855 1712 3854 1712 3854 1712 3853 1711 3853 1711 3852 1711 3852 1711 3852 1710 3853 1708 3854 1708 3854 1708 3855 1708 3855 1709 3856 1709 3856 1709 3858 1708 3858 1706 3857 1706 3856 1706 3855 1707 3855 1707 3854 1707 3854 1707 3853 1707 3852 1707 3851 1706 3850 1706 3850 1706 3849 1706 3848 1706 3848 1705 3848 1705 3849 1705 3849 1706 3850 1706 3853 1703 3853 1703 3851 1702 3851 1702 3850 1702 3849 1702 3849 1701 3849 1701 3850 1701 3851 1701 3851 1701 3853 1700 3855 1699 3856 1699 3857 1699 3857 1700 3859 1700 3860 1700 3862 1700 3863 1701 3866 1701 3866 1700 3866 1700 3866 1700 3867 1700 3871 1700 3872 1701 3872 1701 3874 1702 3874 1702 3874 1701 3874 1699 3876 1699 3876 1699 3877 1699 3880 1699 3880 1699 3883 1698 3884 1698 3884 1698 3883 1697 3884 1697 3884 1697 3885 1697 3886 1697 3887 1697 3887 1697 3888 1697 3890 1697 3892 1696 3893 1696 3893 1696 3894 1696 3895 1696 3896 1697 3897 1697 3898 1696 3897 1696 3897 1695 3897 1695 3899 1695 3901 1695 3902 1694 3902 1694 3903 1695 3903 1695 3903 1695 3904 1695 3906 1694 3909 1695 3909 1694 3910 1694 3911 1694 3912 1693 3913 1693 3913 1694 3913 1694 3914 1694 3914 1694 3915 1695 3915 1695 3917 1695 3917 1694 3917 1694 3917 1694 3916 1693 3917 1692 3919 1691 3921 1690 3921 1690 3922 1690 3922 1690 3924 1690 3924 1690 3925 1690 3925 1690 3926 1690 3926 1690 3926 1690 3927 1689 3929 1689 3929 1689 3929 1690 3931 1690 3931 1690 3933 1689 3934 1689 3934 1689 3936 1689 3936 1689 3937 1689 3937 1688 3938 1688 3938 1688 3939 1688 3940 1688 3941 1688 3941 1688 3942 1688 3942 1688 3943 1688 3944 1688 3946 1688 3949 1687 3949 1687 3950 1686 3950 1686 3950 1686 3951 1686 3951 1686 3954 1686 3954 1686 3956 1686 3957 1686 3958 1685 3958 1685 3958 1685 3959 1684 3960 1684 3962 1685 3962 1685 3964 1685 3966 1683 3966 1683 3966 1683 3965 1682 3965 1682 3964 1681 3965 1681 3965 1681 3966 1681 3969 1681 3969 1681 3971 1681 3971 1681 3973 1678 3973 1678 3973 1678 3975 1678 3975 1679 3976 1679 3976 1679 3977 1679 3977 1679 3977 1679 3977 1678 3977 1678 3976 1678 3976 1677 3976 1677 3978 1677 3980 1678 3980 1679 3981 1679 3983 1678 3985 1678 3988 1678 3991 1679 3991 1680 3992 1681 3994 1681 3996 1681 3997 1682 3997 1681 3998 1681 4000 1680 4001 1679 4001 1679 4002 1680 4002 1680 4003 1679 4003 1679 4004 1679 4006 1679 4006 1679 4006 1680 4006 1680 4006 1680 4009 1682 4009 1683 4009 1683 4009 1684 4009 1684 4009 1684 4009 1686 4009 1687 4011 1688 4013 1688 4013 1689 4014 1689 4014 1690 4013 1690 4013 1690 4012 1690 4012 1690 4012 1692 4012 1692 4013 1693 4012 1695 4011 1695 4010 1695 4010 1695 4009 1695 4009 1696 4010 1696 4010 1697 4010 1697 4011 1697 4012 1698 4013 1698 4013 1698 4014 1697 4017 1697 4017 1698 4017 1698 4019 1698 4020 1698 4021 1698 4021 1696 4021 1696 4023 1696 4024 1696 4026 1697 4027 1698 4028 1698 4028 1698 4028 1697 4028 1697 4027 1697 4027 1696 4026 1694 4028 1694 4028 1694 4031 1696 4031 1696 4030 1697 4030 1697 4031 1697 4033 1698 4033 1698 4032 1699 4031 1701 4031 1701 4032 1701 4032 1701 4033 1701 4033 1701 4034 1701 4034 1701 4036 1701 4037 1701 4036 1700 4036 1700 4036 1699 4035 1699 4034 1699 4034 1699 4034 1698 4034 1698 4035 1698 4037 1698 4039 1698 4041 1698 4041 1698 4041 1699 4042 1700 4046 1701 4047 1701 4049 1701 4050 1701 4050 1700 4050 1700 4051 1699 4052 1699 4053 1699 4053 1700 4052 1702 4051 1702 4049 1702 4048 1702 4047 1703 4046 1705 4045 1705 4045 1706 4045 1707 4045 1707 4047 1707 4048 1708 4047 1709 4048 1709 4050 1708 4051 1707 4052 1706 4053 1706 4056 1706 4058 1706 4061 1706 4061 1707 4061 1708 4063 1708 4064 1708 4065 1707 4064 1706 4064 1705 4067 1705 4067 1705 4068 1704 4070 1703 4070 1702 4072 1703 4073 1703 4076 1702 4079 1700 4080 1700 4080 1700 4079 1699 4081 1698 4082 1698 4083 1698 4084 1698 4087 1697 4092 1696 4092 1695 4093 1694 4095 1695 4097 1695 4099 1694 4100 1694 4100 1693 4100 1693 4102 1693 4103 1695 4103 1695 4102 1696 4101 1697 4100 1698 4100 1698 4099 1698 4099 1698 4099 1698 4098 1697 4098 1697 4097 1697 4097 1697 4096 1697 4095 1697 4096 1698 4096 1698 4096 1699 4097 1699 4097 1700 4098 1700 4101 1702 4103 1703 4105 1704 4109 1706 4111 1707 4113 1708 4114 1708 4117 1710 4118 1710 4119 1711 4119 1711 4119 1712 4120 1712 4121 1713 4122 1714 4122 1714 4122 1715 4126 1718 4127 1720 4128 1721 4131 1724 4133 1726 4136 1729 4141 1735 4142 1737 4143 1738 4145 1740 4145 1741 4148 1744 4149 1745 4149 1746 4152 1750 4152 1750 4153 1751 4153 1751 4153 1751 4154 1752 4154 1752 4154 1752 4154 1751 4154 1751 4154 1750 4157 1749 4158 1749 4159 1749 4159 1749 4160 1749 4160 1748 4160 1748 4161 1748 4161 1747 4160 1747 4160 1746 4160 1745 4161 1744 4162 1745 4163 1745 4163 1744 4163 1744 4163 1743 4164 1743 4164 1743 4165 1743 4166 1744 4167 1744 4168 1744 4169 1745 4170 1745 4171 1745 4172 1745 4172 1745 4171 1746 4171 1746 4171 1746 4170 1747 4170 1748 4170 1748 4170 1749 4172 1749 4172 1749 4173 1749 4173 1748 4173 1748 4174 1748 4175 1748 4176 1750 4176 1751 4176 1752 4176 1752 4177 1752 4178 1752 4178 1752 4179 1752 4180 1752 4180 1752 4182 1752 4183 1751 4185 1752 4186 1752 4186 1752 4187 1752 4187 1753 4188 1753 4188 1752 4189 1752 4189 1752 4190 1752 4192 1752 4192 1752 4193 1752 4193 1752 4193 1752 4195 1751 4196 1751 4196 1751 4196 1750 4196 1750 4197 1749 4197 1749 4198 1749 4199 1750 4199 1750 4201 1750 4202 1749 4202 1749 4202 1749 4203 1748 4205 1748 4208 1748 4214 1750 4214 1750 4216 1751 4216 1752 4216 1752 4216 1753 4217 1753 4217 1753 4218 1754 4219 1754 4219 1754 4219 1754 4220 1756 4220 1756 4220 1757 4221 1760 4223 1760 4225 1760 4228 1761 4230 1762 4232 1762 4233 1763 4234 1764 4233 1764 4232 1764 4232 1765 4232 1765 4233 1766 4234 1766 4236 1768 4236 1769 4236 1769 4237 1770 4237 1771 4238 1770 4238 1770 4239 1770 4240 1770 4241 1770 4241 1770 4241 1770 4243 1770 4245 1771 4246 1771 4248 1771 4252 1772 4252 1772 4253 1772 4253 1771 4253 1771 4254 1770 4255 1770 4255 1770 4256 1770 4257 1769 4257 1768 4259 1767 4259 1767 4261 1767 4261 1769 4261 1769 4260 1769 4259 1770 4258 1770 4259 1771 4259 1771 4260 1771 4260 1771 4260 1771 4262 1772 4262 1772 4262 1773 4263 1774 4265 1776 4266 1776 4267 1776 4268 1776 4268 1776 4269 1776 4269 1777 4270 1777 4270 1778 4270 1778 4270 1778 4270 1778 4268 1778 4267 1778 4267 1778 4263 1778 4261 1779 4260 1780 4260 1781 4261 1781 4261 1782 4262 1783 4261 1784 4261 1785 4260 1785 4259 1786 4259 1786 4258 1787 4258 1787 4256 1788 4256 1788 4255 1788 4255 1788 4254 1788 4254 1788 4254 1788 4253 1789 4252 1789 4252 1789 4251 1789 4251 1789 4250 1789 4249 1789 4247 1789 4246 1789 4246 1789 4245 1789 4245 1789 4245 1790 4244 1790 4243 1793 4242 1794 4242 1794 4242 1795 4242 1796 4242 1796 4241 1796 4241 1797 4241 1798 4242 1798 4242 1800 4243 1802 4243 1802 4242 1803 4242 1803 4242 1804 4243 1804 4243 1805 4244 1805 4244 1806 4244 1808 4244 1808 4242 1810 4241 1811 4239 1811 4237 1811 4237 1811 4236 1811 4236 1812 4236 1812 4235 1812 4234 1813 4234 1813 4234 1813 4234 1813 4233 1813 4232 1813 4232 1814 4232 1814 4229 1815 4229 1814 4229 1814 4229 1814 4229 1813 4229 1813 4228 1812 4227 1812 4227 1812 4226 1812 4222 1812 4221 1812 4220 1812 4220 1812 4219 1812 4218 1812 4218 1812 4216 1812 4215 1812 4214 1812 4214 1812 4213 1811 4213 1811 4212 1811 4212 1811 4210 1811 4210 1811 4208 1810 4208 1810 4207 1810 4206 1809 4206 1809 4205 1809 4205 1809 4204 1809 4204 1808 4204 1808 4203 1808 4203 1808 4202 1808 4201 1809 4201 1809 4201 1810 4201 1812 4201 1813 4201 1813 4200 1814 4200 1814 4200 1814 4199 1815 4199 1816 4198 1817 4198 1818 4198 1818 4197 1818 4197 1820 4196 1822 4196 1823 4195 1823 4195 1823 4195 1824 4194 1824 4194 1825 4194 1826 4194 1826 4194 1827 4193 1828 4193 1829 4193 1829 4193 1830 4192 1830 4192 1831 4192 1831 4191 1832 4191 1832 4190 1834 4190 1835 4190 1835 4190 1836 4190 1836 4191 1836 4192 1836 4193 1836 4194 1836 4194 1836 4194 1836 4195 1837 4195 1837 4195 1838 4195 1838 4195 1839 4195 1839 4195 1840 4194 1841 4194 1841 4194 1842 4193 1842 4193 1842 4192 1842 4192 1842 4190 1840 4190 1840 4189 1840 4189 1840 4188 1840 4187 1840 4187 1841 4186 1841 4185 1841 4185 1841 4184 1841 4184 1841 4182 1841 4182 1840 4182 1839 4181 1839 4181 1839 4181 1838 4180 1838 4180 1838 4179 1838 4178 1839 4178 1839 4178 1839 4177 1839 4177 1839 4176 1839 4175 1839 4173 1840 4171 1840 4169 1841 4167 1841 4165 1841 4165 1841 4161 1842 4160 1843 4159 1843 4157 1843 4156 1843 4155 1843 4155 1843 4155 1843 4154 1843 4151 1845 4151 1846 4153 1847 4153 1847 4154 1847 4155 1847 4156 1847 4157 1847 4157 1847 4160 1847 4161 1848 4161 1848 4159 1850 4158 1853 4158 1853 4159 1854 4159 1856 4159 1856 4159 1857 4159 1857 4159 1858 4160 1859 4161 1861 4161 1861 4161 1862 4161 1862 4161 1863 4162 1863 4162 1864 4163 1865 4164 1867 4165 1868 4165 1871 4166 1873 4166 1873 4166 1874 4165 1874 4165 1874 4164 1874 4164 1873 4163 1873 4163 1874 4159 1875 4159 1876 4160 1876 4161 1877 4161 1877 4162 1877 4162 1877 4162 1878 4159 1878 4158 1879 4158 1878 4157 1878 4157 1879 4157 1879 4156 1881 4155 1882 4157 1886 4157 1886 4157 1887 4157 1888 4157 1888 4157 1889 4156 1888 4156 1888 4156 1888 4155 1888 4155 1887 4152 1885 4151 1885 4148 1884 4148 1884 4147 1884 4146 1884 4145 1884 4145 1884 4144 1884 4144 1884 4144 1884 4143 1883 4143 1883 4143 1882 4142 1882 4142 1882 4141 1882 4141 1881 4140 1881 4140 1880 4140 1880 4140 1880 4140 1879 4140 1879 4139 1879 4139 1879 4138 1879 4137 1880 4132 1878 4129 1878 4129 1878 4128 1877 4124 1878 4123 1878 4123 1878 4122 1878 4121 1878 4120 1878 4120 1877 4116 1877 4116 1877 4113 1877 4111 1877 4109 1877 4108 1877 4107 1876 4107 1876 4105 1876 4102 1876 4102 1876 4101 1877 4099 1877 4096 1877 4095 1877 4094 1877 4093 1877 4091 1877 4087 1877 4086 1877 4086 1877 4086 1877 4085 1877 4085 1878 4085 1878 4084 1879 4083 1879 4082 1878 4082 1878 4078 1878 4077 1878 4076 1878 4074 1877 4071 1876 4071 1876 4070 1876 4069 1876 4069 1876 4068 1875 4067 1874 4066 1874 4063 1873 4062 1872 4062 1872 4061 1872 4058 1873 4056 1873 4056 1874 4054 1874 4052 1874 4051 1875 4050 1875 4050 1877 4049 1878 4049 1879 4049 1880 4048 1880 4048 1882 4048 1882 4048 1883 4048 1883 4049 1884 4049 1884 4049 1885 4049 1885 4049 1885 4047 1885 4046 1884 4046 1884 4043 1883 4041 1883 4040 1883 4040 1883 4039 1883 4039 1883 4038 1882 4038 1882 4038 1881 4037 1881 4035 1881 4032 1880 4031 1880 4030 1879 4029 1879 4028 1879 4025 1879 4024 1879 4023 1878 4022 1878 4021 1879 4020 1879 4020 1879 4019 1879 4019 1879 4018 1879 4017 1879 4017 1879 4016 1879 4013 1880 4012 1881 4012 1882 4010 1882 4010 1882 4008 1885 4008 1885 4008 1886 4007 1887 4007 1887 4008 1887 4008 1888 4009 1888 4008 1888 4008 1888 4007 1888 4006 1889 4006 1888 4005 1888 4004 1890 4004 1890 4003 1891 4003 1891 4002 1891 4002 1891 4001 1890 4001 1890 4000 1890 3999 1891 3999 1891 3998 1891 3997 1892 3996 1894 3996 1894 3995 1894 3994 1895 3992 1896 3991 1896 3990 1896 3989 1896 3987 1897 3985 1898 3983 1900 3981 1900 3981 1900 3978 1902 3978 1902 3978 1903 3978 1904 3978 1904 3975 1906 3974 1906 3973 1907 3973 1907 3973 1908 3973 1908 3972 1908 3971 1908 3971 1908 3971 1909 3971 1909 3970 1910 3971 1912 3971 1912 3972 1913 3971 1914 3971 1914 3969 1914 3968 1914 3966 1913 3965 1913 3965 1913 3965 1913 3965 1912 3962 1911 3962 1910 3962 1910 3963 1910 3963 1909 3963 1908 3964 1907 3963 1907 3963 1907 3961 1906 3960 1905 3957 1905 3955 1905 3954 1905 3953 1905 3952 1905 3951 1905 3948 1905 3946 1905 3943 1905 3942 1905 3941 1905 3941 1905 3939 1900 3938 1896 3938 1896 3938 1894 3938 1893 3938 1892 3930 1892 3930 1891 3930 1887 3930 1886 3930 1885 3930 1885 3931 1882 3931 1881 3931 1879 3931 1876 3926 1878 3925 1876 3923 1873 3921 1871 3921 1870 3917 1869 3917 1868 3914 1865 3912 1864 3911 1864 3907 1866 3905 1867 3898 1867 3897 1867 3894 1866 3890 1866 3888 1866 3885 1866 3878 1866 3875 1867 3873 1867 3871 1867 3866 1868 3866 1868 3865 1867 3862 1865 3859 1862 3854 1858 3852 1857 3852 1856 3828 1844 3811 1835 3810 1835 M 3722 1824 3722 1824 3721 1824 3721 1824 3721 1824 3721 1823 3722 1822 3722 1822 3722 1822 3723 1823 3723 1824 3722 1824 3722 1824 M 3676 1847 3676 1847 3675 1847 3675 1846 3673 1845 3673 1845 3673 1844 3674 1843 3674 1843 3674 1843 3675 1843 3675 1843 3676 1843 3675 1843 3675 1843 3675 1843 3675 1843 3674 1843 3674 1844 3674 1844 3674 1844 3674 1845 3675 1846 3675 1846 3675 1846 3676 1846 3676 1846 3676 1846 3676 1846 3676 1846 3677 1846 3676 1846 3676 1847 3676 1847" />
+<path id="la" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4540 2277 4540 2276 4540 2275 4539 2275 4538 2273 4538 2273 4537 2272 4537 2271 4536 2270 4535 2270 4534 2270 4532 2270 4530 2269 4528 2268 4527 2268 4526 2268 4526 2268 4525 2268 4525 2269 4524 2269 4524 2270 4524 2271 4522 2272 4522 2273 4521 2273 4521 2275 4521 2275 4520 2275 4520 2275 4519 2275 4518 2275 4518 2276 4516 2277 4515 2278 4514 2277 4514 2276 4514 2276 4513 2275 4513 2275 4512 2275 4511 2275 4509 2274 4508 2274 4508 2273 4507 2272 4507 2272 4506 2272 4506 2272 4505 2272 4505 2272 4504 2273 4503 2274 4502 2274 4502 2274 4501 2274 4500 2274 4500 2275 4499 2277 4498 2277 4497 2277 4497 2278 4497 2278 4496 2279 4494 2280 4493 2281 4492 2282 4491 2284 4489 2283 4489 2282 4488 2282 4488 2282 4487 2282 4487 2282 4487 2281 4487 2281 4487 2281 4488 2279 4488 2279 4488 2279 4488 2278 4489 2277 4489 2276 4490 2276 4490 2276 4490 2275 4491 2274 4491 2272 4491 2269 4490 2269 4490 2269 4489 2268 4489 2268 4490 2267 4491 2266 4491 2266 4492 2265 4492 2264 4492 2263 4492 2261 4492 2261 4493 2259 4493 2259 4494 2259 4494 2258 4493 2258 4493 2257 4491 2253 4491 2253 4492 2252 4492 2251 4493 2251 4493 2250 4492 2250 4492 2250 4490 2250 4489 2249 4489 2249 4488 2249 4487 2249 4486 2249 4486 2250 4486 2250 4485 2251 4485 2251 4484 2251 4483 2251 4482 2250 4482 2250 4482 2251 4481 2251 4480 2251 4480 2250 4479 2249 4479 2247 4479 2247 4479 2247 4479 2246 4480 2245 4480 2245 4481 2243 4481 2242 4481 2241 4481 2240 4481 2241 4480 2240 4479 2239 4478 2238 4478 2238 4478 2237 4478 2237 4477 2237 4477 2237 4476 2237 4476 2237 4475 2238 4474 2238 4474 2237 4474 2237 4474 2237 4474 2235 4475 2234 4475 2233 4476 2232 4476 2231 4477 2231 4478 2230 4479 2230 4480 2230 4480 2230 4481 2230 4481 2230 4482 2230 4482 2230 4482 2229 4482 2229 4482 2229 4481 2229 4481 2229 4481 2229 4481 2228 4481 2227 4481 2227 4482 2226 4482 2226 4483 2225 4483 2224 4483 2223 4484 2222 4485 2222 4485 2222 4486 2222 4486 2222 4488 2221 4490 2220 4490 2219 4491 2219 4491 2218 4491 2218 4492 2221 4492 2222 4492 2223 4492 2224 4493 2224 4494 2224 4494 2224 4496 2223 4497 2223 4498 2223 4499 2224 4499 2224 4500 2225 4501 2225 4502 2224 4502 2223 4502 2223 4501 2223 4500 2222 4500 2222 4500 2221 4500 2220 4500 2219 4501 2217 4500 2215 4500 2214 4499 2212 4498 2212 4497 2208 4498 2207 4499 2205 4499 2205 4499 2204 4499 2204 4500 2203 4501 2203 4501 2203 4503 2204 4505 2204 4506 2204 4506 2205 4507 2205 4507 2206 4507 2206 4508 2207 4509 2208 4509 2208 4511 2209 4511 2210 4512 2212 4513 2212 4513 2212 4514 2212 4514 2212 4515 2213 4515 2215 4515 2215 4515 2215 4515 2217 4516 2216 4518 2216 4520 2215 4520 2216 4520 2217 4520 2218 4520 2218 4519 2219 4518 2220 4518 2220 4519 2220 4519 2221 4518 2223 4519 2223 4519 2224 4519 2224 4521 2226 4522 2228 4522 2229 4523 2230 4523 2230 4524 2230 4525 2230 4526 2230 4527 2230 4530 2231 4530 2232 4531 2232 4531 2233 4532 2232 4532 2231 4533 2231 4534 2229 4538 2227 4539 2228 4540 2228 4541 2229 4541 2229 4542 2230 4543 2231 4544 2232 4546 2232 4546 2232 4546 2233 4546 2233 4546 2234 4544 2235 4543 2235 4542 2236 4542 2236 4543 2236 4544 2237 4545 2236 4546 2236 4547 2238 4548 2238 4550 2239 4551 2240 4552 2241 4552 2243 4551 2243 4550 2243 4550 2244 4549 2245 4549 2245 4549 2245 4550 2246 4549 2246 4548 2247 4548 2247 4547 2248 4547 2248 4547 2249 4546 2249 4545 2249 4544 2249 4543 2249 4543 2248 4540 2248 4540 2248 4539 2248 4539 2248 4538 2248 4538 2248 4537 2248 4537 2248 4536 2248 4537 2249 4537 2249 4537 2250 4538 2250 4538 2251 4538 2251 4537 2252 4536 2253 4534 2254 4536 2255 4537 2255 4539 2256 4540 2257 4540 2257 4541 2257 4545 2259 4545 2260 4545 2261 4547 2262 4548 2262 4551 2263 4553 2263 4554 2264 4554 2264 4555 2265 4555 2265 4554 2265 4554 2267 4554 2267 4554 2268 4555 2270 4556 2271 4557 2271 4557 2271 4557 2272 4557 2272 4558 2272 4558 2272 4560 2272 4561 2274 4562 2275 4563 2278 4564 2280 4565 2281 4565 2281 4566 2281 4566 2282 4567 2283 4568 2284 4569 2284 4569 2285 4570 2286 4571 2287 4572 2287 4573 2288 4575 2290 4575 2291 4575 2291 4576 2291 4577 2291 4577 2292 4577 2293 4577 2296 4577 2297 4579 2300 4579 2300 4580 2300 4581 2300 4581 2299 4581 2299 4582 2298 4582 2298 4582 2299 4584 2302 4584 2302 4584 2302 4585 2302 4586 2302 4586 2303 4586 2303 4586 2304 4587 2304 4587 2304 4589 2306 4590 2306 4590 2306 4591 2306 4592 2307 4592 2307 4591 2307 4590 2308 4588 2309 4588 2309 4587 2309 4587 2310 4587 2311 4588 2313 4590 2314 4591 2315 4592 2315 4594 2317 4595 2318 4595 2319 4595 2319 4595 2319 4595 2320 4594 2321 4594 2322 4593 2322 4592 2322 4592 2323 4592 2323 4593 2324 4593 2325 4593 2327 4593 2328 4592 2329 4590 2329 4588 2330 4588 2331 4587 2332 4586 2332 4582 2334 4581 2333 4580 2333 4580 2332 4579 2332 4578 2331 4578 2331 4577 2329 4576 2330 4575 2331 4575 2331 4575 2332 4573 2332 4573 2332 4573 2331 4572 2331 4572 2332 4572 2332 4572 2333 4571 2333 4570 2333 4570 2333 4568 2333 4568 2334 4569 2335 4570 2337 4571 2338 4571 2338 4570 2340 4569 2340 4567 2340 4567 2340 4566 2340 4565 2339 4565 2338 4565 2338 4564 2337 4561 2336 4560 2337 4559 2337 4558 2337 4557 2336 4555 2334 4555 2333 4556 2333 4557 2333 4558 2332 4559 2332 4560 2331 4560 2330 4561 2330 4561 2329 4561 2329 4560 2326 4561 2325 4561 2325 4561 2324 4562 2323 4560 2322 4560 2321 4560 2320 4561 2317 4561 2316 4561 2316 4562 2316 4562 2316 4562 2315 4562 2314 4562 2313 4562 2312 4562 2311 4561 2311 4560 2311 4560 2311 4559 2311 4558 2310 4558 2310 4558 2308 4558 2307 4558 2307 4559 2307 4559 2307 4557 2306 4556 2306 4556 2306 4556 2306 4555 2306 4553 2305 4553 2305 4553 2305 4553 2304 4552 2303 4552 2303 4552 2303 4552 2302 4551 2302 4551 2301 4548 2299 4548 2298 4548 2297 4548 2296 4548 2296 4548 2295 4548 2295 4548 2292 4548 2292 4548 2291 4548 2291 4548 2290 4548 2290 4549 2289 4549 2289 4549 2288 4549 2287 4549 2286 4549 2285 4549 2285 4549 2284 4548 2283 4547 2283 4546 2282 4543 2281 4543 2280 4543 2279 4541 2278 4541 2277 4540 2277 4540 2277" />
+<path id="lb" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3447 2030 3446 2030 3444 2031 3444 2031 3443 2031 3443 2032 3442 2033 3442 2034 3442 2034 3441 2034 3440 2034 3440 2034 3439 2034 3438 2034 3436 2034 3436 2034 3436 2033 3437 2032 3437 2032 3437 2031 3438 2031 3438 2029 3438 2028 3439 2028 3439 2027 3440 2027 3440 2026 3440 2025 3441 2024 3441 2024 3441 2023 3442 2023 3442 2022 3442 2022 3442 2022 3442 2021 3442 2021 3443 2021 3443 2021 3444 2019 3444 2018 3444 2017 3444 2016 3444 2016 3444 2015 3445 2014 3447 2013 3448 2012 3450 2011 3450 2011 3450 2010 3450 2009 3450 2009 3451 2009 3452 2009 3452 2009 3452 2009 3455 2009 3456 2009 3457 2009 3457 2010 3456 2011 3456 2011 3456 2011 3457 2011 3457 2012 3458 2013 3459 2014 3459 2016 3460 2016 3458 2018 3456 2019 3456 2019 3455 2020 3455 2021 3455 2021 3456 2021 3456 2022 3456 2022 3456 2022 3454 2022 3451 2022 3450 2023 3450 2024 3449 2025 3449 2025 3450 2026 3451 2026 3451 2027 3449 2028 3448 2029 3448 2029 3447 2029 3447 2029 3447 2030 3447 2030" />
+<path id="lv" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3212 1661 3211 1660 3211 1658 3211 1658 3211 1657 3211 1657 3211 1656 3211 1656 3211 1655 3211 1655 3213 1654 3214 1654 3215 1653 3216 1652 3217 1652 3217 1651 3217 1651 3217 1651 3217 1650 3217 1648 3217 1648 3217 1647 3218 1647 3218 1647 3220 1645 3221 1644 3221 1644 3221 1644 3222 1643 3222 1643 3222 1643 3224 1643 3225 1643 3225 1643 3226 1643 3227 1642 3227 1642 3228 1642 3231 1641 3234 1640 3236 1640 3236 1640 3236 1641 3236 1642 3237 1643 3237 1643 3238 1644 3241 1645 3241 1645 3243 1646 3243 1646 3244 1646 3244 1646 3245 1646 3245 1647 3246 1649 3246 1650 3246 1650 3247 1651 3248 1651 3248 1651 3252 1652 3253 1653 3255 1653 3255 1653 3256 1652 3256 1652 3258 1652 3258 1652 3261 1651 3262 1650 3264 1649 3265 1648 3265 1648 3265 1646 3264 1643 3264 1641 3263 1640 3263 1639 3263 1639 3263 1638 3264 1638 3264 1638 3265 1638 3265 1638 3265 1638 3267 1637 3270 1637 3275 1635 3275 1635 3275 1635 3276 1635 3276 1635 3277 1635 3277 1635 3278 1635 3278 1636 3278 1636 3278 1636 3279 1636 3279 1635 3279 1635 3279 1635 3281 1636 3282 1636 3284 1637 3287 1638 3288 1638 3288 1638 3289 1638 3291 1639 3294 1641 3295 1642 3295 1642 3298 1644 3299 1644 3300 1644 3300 1643 3301 1643 3304 1642 3305 1642 3306 1642 3306 1642 3307 1642 3307 1643 3307 1643 3311 1644 3312 1644 3313 1644 3313 1644 3314 1644 3315 1644 3315 1644 3315 1645 3315 1645 3316 1646 3317 1646 3319 1647 3320 1647 3320 1648 3320 1649 3319 1651 3317 1653 3318 1654 3318 1654 3319 1654 3320 1654 3320 1654 3321 1655 3321 1655 3321 1657 3322 1658 3324 1660 3325 1661 3325 1662 3326 1664 3325 1665 3325 1665 3325 1666 3325 1665 3324 1665 3321 1666 3321 1667 3319 1668 3318 1669 3317 1669 3316 1671 3316 1671 3316 1671 3315 1671 3315 1671 3311 1671 3310 1671 3309 1671 3306 1671 3305 1672 3304 1672 3304 1673 3303 1673 3302 1673 3301 1673 3301 1673 3301 1673 3300 1673 3300 1673 3300 1673 3299 1673 3298 1673 3296 1673 3296 1672 3295 1672 3295 1672 3294 1671 3294 1671 3293 1670 3291 1669 3290 1669 3289 1668 3289 1668 3286 1667 3284 1666 3281 1665 3280 1665 3278 1665 3277 1665 3277 1665 3277 1665 3276 1665 3276 1665 3274 1663 3274 1663 3274 1662 3274 1662 3273 1662 3273 1661 3273 1661 3269 1662 3268 1663 3268 1663 3267 1663 3266 1664 3266 1664 3265 1664 3264 1663 3264 1663 3263 1663 3261 1664 3261 1664 3259 1664 3258 1663 3258 1663 3256 1663 3254 1662 3252 1662 3252 1663 3251 1663 3251 1663 3250 1663 3248 1662 3248 1662 3247 1662 3245 1662 3245 1663 3244 1663 3243 1663 3243 1663 3243 1662 3242 1662 3242 1662 3242 1661 3241 1661 3241 1662 3240 1662 3240 1662 3237 1662 3237 1662 3237 1662 3236 1662 3236 1662 3235 1662 3235 1662 3234 1662 3231 1662 3229 1661 3227 1661 3227 1661 3225 1662 3222 1663 3219 1663 3218 1664 3217 1664 3217 1664 3216 1664 3215 1665 3214 1665 3214 1666 3214 1666 3214 1667 3213 1667 3212 1667 3212 1667 3211 1667 3211 1667 3211 1666 3211 1666 3211 1665 3210 1665 3210 1664 3210 1662 3210 1660 3211 1660 3211 1661 3212 1661" />
+<path id="lt" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3239 1694 3239 1694 3238 1693 3238 1693 3238 1693 3237 1692 3237 1692 3238 1689 3238 1689 3239 1688 3240 1688 3240 1687 3240 1687 3240 1686 3240 1686 3238 1685 3237 1685 3237 1685 3236 1683 3235 1683 3231 1683 3231 1683 3229 1683 3229 1683 3228 1683 3228 1684 3227 1684 3222 1682 3221 1681 3219 1681 3217 1680 3216 1679 3216 1680 3215 1680 3215 1680 3215 1680 3215 1679 3214 1677 3214 1675 3213 1673 3212 1673 3212 1672 3211 1672 3211 1670 3211 1669 3211 1669 3211 1668 3211 1667 3211 1667 3211 1667 3212 1667 3212 1667 3213 1667 3214 1667 3214 1666 3214 1666 3214 1665 3215 1665 3216 1664 3217 1664 3217 1664 3218 1664 3219 1663 3222 1663 3225 1662 3227 1661 3227 1661 3229 1661 3231 1662 3234 1662 3235 1662 3235 1662 3236 1662 3236 1662 3237 1662 3237 1662 3237 1662 3240 1662 3240 1662 3241 1662 3241 1661 3242 1661 3242 1662 3242 1662 3243 1662 3243 1663 3243 1663 3244 1663 3245 1663 3245 1662 3247 1662 3248 1662 3248 1662 3250 1663 3251 1663 3251 1663 3252 1663 3252 1662 3254 1662 3256 1663 3258 1663 3258 1663 3259 1664 3261 1664 3261 1664 3263 1663 3264 1663 3264 1663 3265 1664 3266 1664 3266 1664 3267 1663 3268 1663 3268 1663 3269 1662 3273 1661 3273 1661 3273 1662 3274 1662 3274 1662 3274 1663 3274 1663 3276 1665 3276 1665 3277 1665 3277 1665 3277 1665 3278 1665 3280 1665 3281 1665 3284 1666 3286 1667 3289 1668 3289 1668 3290 1669 3291 1669 3293 1670 3294 1671 3294 1671 3295 1672 3295 1672 3296 1672 3296 1673 3298 1673 3299 1673 3300 1673 3300 1673 3300 1674 3300 1674 3299 1677 3298 1679 3298 1679 3299 1679 3299 1679 3300 1679 3301 1679 3303 1679 3303 1679 3303 1680 3303 1680 3301 1681 3298 1682 3298 1682 3295 1682 3294 1682 3294 1683 3294 1684 3293 1684 3291 1685 3289 1685 3289 1685 3288 1685 3287 1686 3286 1687 3286 1689 3286 1690 3286 1690 3286 1691 3286 1691 3286 1691 3285 1692 3283 1694 3283 1695 3283 1695 3284 1695 3285 1695 3285 1695 3286 1695 3287 1696 3287 1697 3287 1698 3285 1698 3283 1698 3282 1697 3283 1697 3283 1696 3282 1695 3282 1695 3281 1695 3281 1696 3281 1696 3280 1696 3280 1696 3278 1697 3277 1697 3277 1697 3276 1698 3276 1698 3275 1698 3274 1698 3274 1697 3272 1698 3271 1698 3271 1699 3272 1699 3272 1700 3272 1700 3270 1700 3269 1700 3268 1700 3267 1701 3266 1701 3265 1702 3263 1701 3262 1701 3262 1701 3262 1701 3261 1701 3261 1701 3260 1701 3260 1701 3259 1701 3258 1701 3257 1701 3255 1701 3254 1701 3252 1701 3251 1701 3251 1701 3251 1701 3250 1701 3250 1701 3251 1699 3250 1698 3250 1698 3250 1697 3248 1696 3248 1696 3246 1695 3244 1695 3242 1694 3240 1693 3240 1694 3239 1694 3239 1694 M 3210 1680 3210 1679 3210 1679 3210 1678 3211 1677 3211 1677 3212 1676 3212 1675 3212 1675 3212 1673 3212 1673 3212 1673 3212 1673 3213 1674 3212 1675 3212 1677 3211 1679 3210 1680" />
+<path id="lr" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2705 2463 2705 2463 2704 2463 2703 2462 2702 2462 2703 2461 2702 2460 2702 2460 2702 2460 2702 2459 2701 2459 2701 2459 2700 2458 2698 2457 2694 2456 2693 2455 2693 2454 2693 2454 2693 2453 2692 2452 2691 2452 2692 2452 2693 2452 2693 2450 2694 2449 2694 2449 2694 2448 2694 2447 2695 2447 2695 2447 2696 2447 2697 2445 2697 2445 2697 2445 2698 2445 2701 2443 2701 2442 2702 2442 2702 2442 2702 2442 2703 2440 2704 2439 2704 2439 2704 2439 2705 2439 2706 2438 2706 2437 2706 2434 2707 2433 2707 2433 2708 2432 2708 2432 2710 2432 2710 2432 2711 2432 2711 2427 2711 2427 2712 2427 2713 2427 2716 2427 2717 2427 2717 2427 2718 2427 2719 2427 2721 2427 2721 2427 2724 2429 2724 2432 2725 2434 2725 2435 2724 2435 2724 2436 2725 2437 2725 2439 2726 2439 2726 2439 2725 2440 2725 2440 2725 2441 2725 2442 2725 2443 2724 2444 2723 2445 2724 2445 2724 2444 2725 2444 2726 2444 2727 2445 2728 2445 2730 2447 2729 2448 2730 2447 2731 2447 2732 2447 2733 2447 2734 2446 2734 2446 2735 2444 2736 2442 2736 2442 2736 2442 2736 2442 2736 2440 2736 2440 2737 2440 2738 2440 2738 2440 2738 2440 2738 2441 2739 2442 2740 2442 2740 2442 2741 2443 2741 2443 2741 2444 2741 2445 2741 2446 2742 2447 2742 2447 2743 2448 2743 2450 2742 2453 2742 2454 2742 2454 2741 2455 2741 2455 2741 2456 2740 2456 2740 2456 2740 2457 2740 2457 2739 2457 2739 2457 2739 2458 2738 2458 2738 2458 2738 2458 2738 2459 2739 2459 2740 2460 2741 2461 2745 2462 2745 2462 2745 2462 2746 2462 2747 2462 2749 2462 2749 2463 2750 2463 2751 2466 2751 2466 2751 2467 2751 2468 2752 2468 2753 2468 2754 2469 2755 2469 2756 2469 2756 2469 2756 2470 2756 2470 2756 2471 2756 2471 2757 2472 2757 2473 2757 2474 2757 2474 2757 2475 2756 2476 2756 2476 2757 2477 2757 2477 2755 2481 2754 2482 2754 2484 2754 2485 2754 2486 2754 2486 2754 2487 2754 2489 2754 2490 2754 2491 2754 2493 2755 2493 2755 2493 2754 2493 2752 2493 2751 2492 2750 2492 2750 2491 2749 2491 2748 2491 2746 2490 2744 2490 2743 2489 2742 2488 2739 2487 2737 2486 2736 2486 2736 2486 2736 2485 2734 2484 2733 2484 2731 2483 2730 2483 2729 2482 2727 2481 2726 2479 2725 2479 2725 2478 2724 2478 2724 2478 2724 2477 2723 2476 2722 2475 2720 2473 2719 2473 2715 2469 2714 2468 2711 2466 2711 2466 2710 2465 2710 2465 2709 2465 2709 2464 2709 2464 2708 2463 2708 2464 2706 2463 2705 2463" />
+<path id="sk" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3178 1795 3178 1795 3178 1795 3177 1795 3176 1795 3176 1795 3175 1796 3175 1797 3175 1798 3176 1798 3176 1799 3176 1799 3175 1799 3175 1799 3174 1799 3173 1800 3173 1800 3173 1800 3172 1800 3171 1800 3170 1800 3169 1800 3169 1800 3168 1800 3167 1800 3166 1800 3165 1800 3164 1800 3162 1800 3161 1800 3161 1800 3159 1800 3158 1799 3154 1798 3154 1798 3154 1797 3153 1797 3152 1796 3152 1796 3151 1796 3151 1795 3150 1795 3149 1796 3149 1796 3148 1795 3148 1794 3148 1794 3147 1794 3146 1793 3146 1793 3146 1792 3146 1791 3145 1791 3144 1790 3144 1789 3144 1788 3145 1788 3145 1787 3146 1787 3146 1786 3146 1785 3147 1784 3147 1784 3148 1783 3150 1782 3150 1782 3152 1782 3153 1783 3153 1783 3155 1782 3157 1782 3157 1782 3158 1782 3159 1782 3160 1781 3161 1780 3164 1779 3164 1779 3165 1778 3165 1778 3165 1777 3165 1777 3165 1776 3166 1775 3167 1775 3167 1775 3169 1775 3171 1772 3172 1772 3173 1772 3175 1772 3176 1772 3178 1772 3178 1773 3178 1773 3179 1774 3181 1773 3182 1773 3182 1773 3182 1772 3183 1771 3186 1770 3186 1770 3187 1771 3187 1771 3188 1773 3189 1773 3190 1774 3191 1773 3191 1774 3192 1775 3191 1776 3191 1776 3191 1776 3191 1777 3192 1777 3192 1777 3193 1776 3193 1776 3194 1776 3194 1776 3195 1777 3195 1777 3196 1777 3196 1777 3196 1776 3197 1775 3198 1774 3200 1774 3200 1774 3204 1774 3206 1774 3207 1775 3209 1775 3210 1775 3210 1775 3211 1774 3211 1773 3212 1773 3215 1773 3217 1773 3217 1773 3218 1773 3218 1773 3219 1773 3220 1773 3224 1774 3226 1774 3227 1775 3227 1776 3227 1776 3230 1777 3232 1778 3232 1778 3235 1778 3235 1779 3235 1779 3235 1780 3234 1781 3233 1782 3233 1783 3232 1785 3230 1786 3229 1786 3229 1787 3229 1789 3229 1789 3228 1790 3227 1790 3227 1790 3226 1790 3225 1790 3224 1790 3224 1790 3223 1790 3222 1790 3220 1789 3220 1788 3219 1787 3217 1787 3215 1787 3214 1787 3213 1788 3212 1788 3210 1787 3208 1787 3208 1787 3208 1787 3206 1787 3205 1787 3203 1787 3202 1788 3202 1788 3202 1789 3201 1789 3201 1789 3201 1790 3200 1791 3200 1791 3200 1792 3199 1792 3198 1791 3197 1792 3196 1793 3195 1793 3195 1793 3194 1793 3193 1794 3193 1794 3191 1793 3191 1792 3189 1792 3189 1792 3187 1792 3187 1793 3186 1794 3186 1794 3182 1795 3181 1795 3179 1795 3178 1795" />
+<path id="li" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3026 1811 3027 1810 3027 1809 3027 1809 3026 1809 3027 1808 3027 1807 3028 1808 3029 1809 3029 1810 3029 1810 3028 1811 3028 1811 3027 1811 3027 1811 3027 1811 3026 1811" />
+<path id="ls" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3339 3042 3337 3043 3336 3043 3335 3043 3333 3044 3332 3044 3331 3044 3329 3044 3328 3044 3328 3045 3327 3046 3326 3047 3325 3050 3325 3050 3323 3052 3323 3052 3322 3052 3321 3052 3318 3051 3316 3049 3315 3049 3315 3048 3314 3047 3313 3047 3312 3047 3312 3045 3311 3042 3310 3042 3310 3041 3309 3040 3309 3039 3308 3037 3307 3037 3307 3036 3306 3036 3309 3035 3310 3035 3310 3034 3311 3034 3311 3034 3311 3034 3312 3033 3313 3030 3314 3030 3315 3029 3316 3027 3317 3027 3316 3027 3316 3026 3319 3024 3321 3024 3322 3023 3323 3023 3324 3022 3325 3021 3325 3021 3327 3021 3328 3021 3328 3020 3329 3020 3330 3020 3330 3019 3330 3019 3331 3019 3332 3019 3333 3019 3333 3019 3335 3021 3335 3022 3336 3022 3336 3022 3337 3022 3337 3023 3337 3024 3338 3024 3341 3026 3343 3027 3343 3027 3345 3030 3345 3031 3345 3033 3345 3033 3344 3033 3344 3033 3343 3033 3343 3034 3343 3035 3343 3036 3343 3036 3342 3036 3342 3036 3341 3036 3341 3037 3340 3038 3340 3038 3340 3039 3340 3039 3341 3039 3341 3040 3340 3041 3339 3041 3339 3042" />
+<path id="lu" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2977 1771 2977 1772 2977 1773 2976 1772 2976 1772 2975 1772 2975 1772 2973 1772 2973 1772 2972 1773 2971 1773 2969 1772 2968 1772 2968 1771 2968 1771 2968 1771 2969 1771 2969 1770 2969 1769 2969 1769 2969 1768 2967 1767 2967 1767 2967 1767 2967 1765 2967 1765 2968 1764 2969 1763 2969 1762 2970 1761 2971 1761 2971 1761 2971 1761 2973 1762 2973 1762 2973 1762 2973 1762 2973 1763 2973 1764 2973 1764 2974 1765 2975 1766 2975 1766 2976 1766 2976 1766 2977 1767 2978 1767 2979 1767 2979 1767 2979 1769 2978 1769 2978 1769 2977 1771" />
+<path id="ly" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3274 2121 3274 2122 3274 2124 3274 2130 3274 2131 3274 2132 3274 2136 3274 2138 3274 2139 3274 2148 3274 2156 3274 2163 3274 2167 3274 2174 3274 2179 3274 2186 3274 2207 3274 2210 3274 2211 3274 2227 3274 2243 3274 2243 3274 2243 3271 2243 3268 2243 3268 2243 3266 2243 3261 2243 3259 2243 3258 2243 3258 2245 3258 2251 3258 2251 3250 2246 3243 2243 3232 2237 3223 2233 3217 2229 3210 2226 3201 2222 3192 2217 3183 2213 3178 2210 3175 2209 3168 2206 3163 2203 3158 2200 3157 2200 3146 2195 3136 2190 3131 2188 3120 2193 3117 2194 3115 2195 3114 2195 3112 2196 3112 2197 3107 2199 3105 2200 3104 2200 3102 2201 3097 2197 3092 2193 3092 2193 3092 2193 3091 2192 3090 2192 3089 2192 3089 2192 3088 2191 3084 2191 3081 2190 3076 2189 3074 2188 3073 2188 3072 2188 3071 2188 3067 2187 3066 2187 3065 2185 3063 2180 3062 2179 3060 2174 3058 2174 3058 2174 3056 2173 3055 2173 3052 2172 3051 2172 3050 2172 3048 2171 3047 2170 3046 2170 3045 2170 3044 2171 3042 2172 3041 2171 3040 2170 3039 2169 3039 2169 3038 2168 3038 2167 3038 2167 3037 2166 3036 2166 3036 2165 3036 2164 3035 2163 3035 2162 3035 2159 3035 2158 3035 2157 3032 2154 3031 2153 3026 2146 3026 2146 3025 2145 3025 2144 3025 2144 3026 2143 3027 2142 3029 2140 3031 2140 3033 2139 3033 2137 3033 2136 3033 2136 3033 2135 3033 2134 3034 2133 3033 2133 3032 2133 3032 2131 3032 2130 3032 2130 3031 2127 3030 2126 3031 2124 3032 2123 3033 2122 3033 2121 3034 2118 3034 2118 3034 2117 3033 2115 3032 2113 3032 2113 3031 2111 3031 2111 3032 2110 3032 2109 3032 2106 3032 2105 3032 2104 3033 2103 3033 2102 3033 2102 3033 2100 3033 2099 3032 2098 3032 2098 3032 2097 3032 2097 3032 2096 3031 2092 3031 2092 3030 2091 3030 2090 3029 2089 3029 2088 3028 2087 3028 2086 3028 2086 3026 2084 3025 2083 3025 2083 3025 2083 3025 2082 3024 2082 3024 2082 3024 2081 3025 2081 3027 2080 3027 2080 3029 2079 3030 2078 3032 2078 3033 2078 3033 2078 3034 2076 3036 2074 3038 2072 3038 2071 3039 2069 3039 2069 3039 2066 3038 2064 3037 2062 3037 2061 3037 2059 3039 2056 3040 2056 3040 2056 3041 2056 3041 2056 3042 2056 3042 2056 3043 2056 3043 2055 3045 2054 3046 2052 3048 2051 3048 2051 3048 2050 3049 2049 3051 2048 3053 2047 3054 2047 3056 2046 3057 2046 3058 2045 3059 2045 3059 2045 3060 2044 3060 2044 3060 2043 3060 2043 3059 2042 3059 2042 3059 2042 3058 2041 3058 2041 3058 2038 3058 2036 3059 2035 3059 2034 3059 2034 3059 2033 3059 2033 3059 2033 3060 2034 3061 2034 3063 2034 3063 2034 3065 2034 3065 2035 3067 2035 3067 2036 3068 2036 3069 2037 3071 2038 3071 2038 3072 2038 3073 2038 3075 2038 3076 2039 3079 2039 3079 2039 3080 2039 3080 2039 3081 2038 3083 2038 3083 2038 3084 2037 3085 2037 3085 2037 3085 2037 3086 2037 3087 2037 3088 2037 3088 2037 3090 2038 3091 2038 3091 2038 3092 2039 3092 2039 3093 2039 3094 2039 3095 2039 3095 2039 3097 2039 3097 2039 3097 2039 3098 2039 3099 2040 3099 2040 3099 2040 3100 2040 3101 2040 3101 2040 3102 2040 3104 2041 3105 2042 3106 2043 3106 2043 3106 2043 3107 2043 3109 2044 3109 2044 3110 2044 3111 2044 3114 2044 3117 2045 3117 2045 3118 2045 3119 2046 3120 2049 3120 2051 3120 2051 3120 2051 3120 2051 3120 2052 3121 2053 3121 2054 3122 2057 3124 2060 3126 2060 3127 2061 3128 2062 3129 2062 3130 2063 3132 2063 3132 2063 3133 2064 3134 2064 3135 2064 3139 2064 3139 2064 3140 2064 3140 2064 3141 2064 3142 2064 3142 2064 3143 2064 3145 2064 3146 2065 3147 2065 3147 2065 3148 2065 3149 2065 3151 2066 3152 2066 3153 2066 3153 2067 3154 2067 3154 2067 3155 2067 3156 2067 3156 2067 3159 2069 3161 2069 3161 2070 3163 2070 3165 2071 3166 2071 3166 2072 3167 2073 3168 2073 3169 2074 3172 2076 3174 2077 3175 2077 3175 2078 3177 2079 3177 2079 3178 2079 3178 2079 3179 2079 3181 2079 3182 2079 3184 2079 3184 2079 3188 2077 3190 2075 3191 2075 3192 2073 3195 2070 3195 2070 3196 2068 3196 2068 3197 2067 3197 2066 3197 2066 3197 2065 3197 2064 3197 2064 3196 2063 3196 2062 3196 2062 3195 2062 3195 2061 3195 2061 3194 2060 3194 2059 3194 2058 3193 2056 3193 2056 3193 2055 3193 2054 3194 2052 3194 2052 3195 2050 3195 2049 3196 2048 3200 2045 3203 2043 3204 2042 3206 2042 3208 2040 3209 2040 3209 2040 3209 2040 3210 2040 3212 2039 3212 2039 3213 2039 3214 2039 3215 2039 3216 2039 3216 2039 3217 2039 3217 2039 3218 2038 3218 2038 3219 2038 3219 2037 3220 2036 3222 2036 3222 2037 3223 2037 3224 2037 3225 2037 3226 2037 3226 2037 3226 2037 3227 2037 3230 2037 3231 2037 3232 2037 3232 2038 3233 2038 3235 2039 3235 2039 3236 2039 3239 2040 3240 2040 3240 2040 3241 2041 3241 2041 3242 2041 3242 2041 3244 2041 3244 2042 3244 2046 3244 2046 3245 2047 3246 2047 3246 2048 3247 2048 3250 2048 3250 2048 3251 2048 3253 2048 3254 2049 3255 2049 3258 2050 3258 2050 3258 2050 3258 2051 3259 2051 3260 2051 3260 2051 3267 2052 3267 2052 3268 2051 3269 2051 3270 2051 3271 2051 3272 2052 3273 2052 3274 2052 3274 2052 3275 2053 3275 2053 3275 2054 3275 2055 3276 2055 3276 2056 3277 2057 3277 2057 3277 2057 3276 2057 3276 2058 3275 2058 3275 2058 3275 2059 3274 2060 3274 2060 3273 2061 3272 2061 3272 2065 3273 2067 3273 2067 3274 2069 3274 2070 3275 2071 3274 2073 3273 2075 3272 2077 3272 2077 3271 2078 3271 2078 3270 2080 3270 2080 3270 2081 3270 2081 3270 2081 3271 2083 3271 2084 3271 2085 3272 2085 3272 2086 3272 2086 3272 2086 3272 2090 3272 2091 3273 2092 3273 2092 3274 2095 3274 2100 3274 2111 3274 2113 3274 2115 3274 2117 3274 2119 3274 2121" />
+<path id="mg" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3615 2812 3615 2812 3615 2812 3615 2812 3617 2810 3617 2810 3617 2810 3619 2809 3621 2808 3623 2806 3623 2806 3623 2806 3624 2806 3624 2806 3625 2805 3625 2805 3625 2805 3625 2805 3627 2807 3627 2808 3627 2808 3626 2808 3626 2808 3626 2809 3625 2810 3625 2810 3625 2811 3625 2811 3625 2811 3625 2811 3626 2810 3627 2810 3628 2809 3628 2809 3629 2809 3629 2809 3629 2809 3629 2809 3629 2809 3629 2808 3627 2807 3627 2806 3627 2806 3627 2805 3627 2805 3627 2805 3627 2804 3627 2804 3629 2802 3631 2801 3630 2800 3630 2800 3630 2800 3631 2799 3631 2799 3632 2798 3633 2797 3633 2797 3634 2797 3634 2799 3634 2800 3634 2800 3633 2800 3633 2801 3633 2801 3632 2802 3632 2802 3632 2803 3632 2804 3632 2804 3633 2804 3633 2804 3633 2804 3633 2803 3634 2803 3635 2801 3635 2800 3636 2799 3636 2799 3636 2799 3637 2797 3637 2797 3639 2796 3641 2796 3641 2796 3641 2796 3642 2797 3642 2797 3642 2797 3642 2798 3641 2798 3641 2798 3642 2798 3642 2798 3642 2798 3642 2797 3642 2796 3642 2796 3641 2795 3641 2795 3640 2795 3640 2795 3640 2795 3640 2795 3639 2796 3638 2796 3637 2795 3637 2793 3637 2793 3637 2793 3637 2792 3637 2792 3638 2790 3639 2790 3639 2790 3640 2790 3641 2790 3641 2790 3641 2790 3641 2789 3641 2789 3641 2788 3640 2788 3640 2788 3640 2788 3640 2788 3641 2788 3641 2788 3642 2788 3642 2788 3642 2788 3642 2789 3642 2789 3641 2790 3641 2791 3641 2791 3641 2791 3642 2791 3642 2791 3642 2789 3643 2788 3642 2787 3642 2787 3642 2787 3642 2787 3642 2787 3641 2787 3641 2786 3641 2786 3641 2786 3641 2786 3641 2786 3641 2786 3642 2785 3641 2785 3641 2785 3640 2785 3640 2784 3640 2784 3640 2783 3640 2783 3640 2783 3640 2781 3640 2780 3640 2780 3640 2780 3640 2780 3641 2780 3641 2780 3641 2780 3642 2779 3642 2779 3642 2779 3642 2779 3642 2779 3642 2779 3642 2778 3642 2778 3643 2778 3643 2779 3644 2780 3644 2781 3644 2782 3645 2782 3646 2783 3646 2783 3646 2783 3647 2783 3647 2783 3647 2782 3647 2780 3647 2779 3647 2779 3647 2779 3647 2779 3648 2779 3650 2778 3650 2777 3650 2777 3652 2777 3652 2777 3652 2777 3653 2777 3653 2777 3653 2777 3654 2776 3654 2776 3655 2775 3655 2774 3655 2773 3655 2772 3655 2771 3655 2771 3656 2770 3656 2769 3657 2768 3657 2768 3657 2767 3657 2767 3656 2765 3656 2763 3655 2762 3654 2762 3654 2761 3654 2761 3653 2761 3654 2761 3654 2761 3655 2761 3655 2761 3656 2761 3656 2761 3656 2761 3656 2762 3656 2762 3656 2762 3657 2762 3657 2762 3657 2761 3657 2760 3657 2760 3659 2759 3659 2759 3660 2758 3660 2758 3660 2758 3661 2757 3661 2756 3660 2756 3660 2756 3660 2755 3661 2754 3662 2753 3662 2753 3662 2753 3662 2754 3663 2754 3663 2754 3663 2755 3663 2756 3664 2757 3664 2757 3663 2757 3663 2757 3663 2757 3663 2757 3662 2756 3662 2757 3662 2757 3661 2758 3662 2759 3663 2759 3663 2759 3663 2759 3664 2759 3664 2759 3663 2758 3664 2759 3666 2760 3666 2760 3667 2762 3667 2762 3667 2762 3667 2763 3667 2763 3667 2763 3667 2763 3667 2764 3667 2764 3667 2764 3667 2765 3667 2765 3668 2765 3670 2767 3672 2769 3672 2769 3673 2771 3673 2771 3673 2772 3673 2772 3673 2772 3673 2773 3673 2774 3673 2776 3674 2777 3674 2778 3674 2778 3674 2778 3674 2778 3674 2778 3674 2779 3675 2779 3675 2779 3675 2779 3675 2780 3676 2782 3676 2782 3676 2783 3676 2783 3676 2784 3676 2784 3676 2784 3676 2786 3676 2786 3676 2786 3676 2787 3676 2787 3676 2788 3676 2789 3676 2790 3676 2790 3676 2790 3676 2790 3677 2790 3677 2790 3677 2791 3677 2791 3677 2792 3677 2792 3677 2793 3677 2793 3677 2793 3677 2795 3677 2797 3678 2799 3678 2801 3679 2802 3680 2804 3681 2804 3681 2805 3682 2806 3682 2806 3682 2807 3682 2807 3681 2809 3681 2811 3679 2815 3678 2816 3677 2818 3677 2818 3676 2818 3676 2817 3675 2817 3674 2816 3674 2816 3674 2815 3674 2815 3673 2813 3672 2811 3672 2811 3672 2810 3671 2809 3671 2809 3670 2809 3669 2809 3669 2809 3669 2810 3668 2810 3668 2810 3668 2811 3668 2811 3668 2811 3668 2811 3668 2813 3668 2813 3668 2814 3669 2817 3669 2817 3669 2817 3669 2817 3669 2818 3669 2819 3669 2819 3669 2820 3669 2820 3669 2820 3669 2820 3669 2820 3670 2821 3670 2821 3670 2820 3671 2821 3671 2821 3671 2822 3671 2822 3671 2822 3671 2823 3671 2823 3671 2824 3671 2824 3671 2824 3671 2825 3671 2825 3671 2825 3671 2825 3671 2826 3671 2827 3671 2827 3670 2828 3670 2828 3670 2829 3670 2829 3670 2829 3669 2829 3669 2829 3669 2830 3669 2830 3669 2831 3670 2831 3670 2831 3670 2831 3670 2831 3670 2831 3668 2832 3668 2832 3667 2832 3667 2832 3667 2833 3667 2833 3666 2835 3664 2839 3664 2839 3664 2839 3664 2840 3664 2840 3665 2840 3665 2841 3665 2842 3665 2843 3666 2845 3666 2845 3666 2845 3666 2846 3666 2847 3665 2847 3665 2849 3665 2849 3665 2850 3664 2851 3664 2853 3664 2855 3664 2855 3664 2856 3662 2859 3661 2861 3660 2864 3660 2865 3660 2866 3659 2867 3659 2867 3659 2867 3658 2869 3658 2869 3658 2870 3658 2870 3658 2871 3658 2872 3657 2872 3657 2873 3656 2874 3656 2875 3656 2876 3656 2876 3656 2876 3655 2877 3655 2878 3655 2878 3655 2879 3655 2881 3654 2883 3654 2883 3654 2884 3653 2885 3653 2885 3653 2885 3652 2887 3652 2887 3652 2888 3651 2889 3651 2889 3651 2890 3650 2892 3650 2893 3649 2897 3649 2898 3648 2903 3647 2906 3645 2910 3644 2913 3644 2913 3643 2914 3642 2916 3642 2917 3642 2917 3640 2921 3640 2921 3640 2922 3640 2922 3640 2925 3639 2926 3639 2927 3639 2927 3639 2928 3639 2928 3639 2929 3639 2930 3638 2932 3637 2935 3636 2939 3636 2940 3636 2940 3635 2940 3635 2943 3635 2943 3635 2944 3634 2946 3633 2946 3633 2948 3632 2949 3631 2951 3631 2952 3631 2953 3631 2953 3631 2954 3630 2955 3629 2958 3628 2959 3628 2959 3628 2959 3628 2960 3628 2960 3628 2960 3628 2960 3628 2961 3627 2961 3624 2963 3621 2964 3621 2965 3620 2965 3619 2965 3618 2965 3618 2964 3618 2964 3616 2964 3615 2965 3614 2965 3614 2965 3613 2965 3612 2965 3609 2967 3608 2967 3608 2967 3606 2968 3606 2969 3605 2969 3605 2969 3604 2970 3604 2970 3603 2971 3603 2971 3602 2971 3602 2971 3601 2971 3597 2971 3596 2971 3596 2970 3595 2970 3592 2968 3591 2967 3590 2967 3590 2967 3590 2967 3589 2967 3587 2966 3586 2966 3585 2966 3583 2966 3583 2966 3583 2964 3583 2964 3583 2965 3583 2965 3584 2965 3584 2966 3584 2965 3584 2965 3584 2965 3584 2965 3583 2964 3581 2963 3581 2963 3580 2963 3580 2963 3580 2963 3580 2963 3580 2963 3580 2963 3579 2963 3578 2962 3578 2961 3578 2961 3578 2961 3578 2961 3578 2960 3578 2960 3578 2960 3578 2959 3577 2959 3577 2959 3577 2958 3576 2958 3576 2957 3577 2957 3577 2957 3577 2956 3576 2955 3575 2954 3575 2954 3575 2953 3574 2953 3574 2953 3574 2953 3574 2953 3573 2952 3573 2952 3573 2951 3572 2951 3572 2949 3572 2947 3572 2944 3572 2943 3572 2943 3572 2942 3572 2940 3572 2940 3572 2940 3573 2940 3573 2939 3574 2939 3574 2939 3574 2937 3574 2937 3574 2937 3573 2936 3572 2936 3572 2936 3572 2935 3572 2935 3572 2935 3571 2934 3571 2934 3571 2933 3571 2932 3571 2932 3571 2931 3571 2931 3571 2931 3571 2931 3570 2930 3570 2930 3570 2930 3570 2930 3568 2928 3568 2928 3568 2928 3568 2928 3568 2927 3567 2927 3567 2924 3566 2922 3566 2918 3566 2917 3566 2916 3566 2916 3566 2915 3566 2912 3567 2912 3567 2911 3567 2910 3567 2910 3569 2909 3569 2909 3569 2908 3569 2909 3569 2907 3569 2906 3569 2905 3569 2904 3569 2904 3570 2904 3570 2903 3571 2903 3571 2902 3571 2902 3572 2902 3572 2902 3573 2902 3573 2902 3573 2902 3573 2902 3574 2902 3574 2902 3574 2902 3575 2902 3575 2902 3575 2901 3575 2900 3576 2899 3576 2898 3576 2897 3576 2896 3576 2896 3576 2896 3577 2895 3577 2894 3578 2894 3578 2894 3578 2894 3578 2894 3578 2894 3578 2893 3579 2892 3579 2892 3579 2891 3581 2889 3582 2887 3583 2884 3583 2884 3584 2884 3584 2884 3584 2884 3584 2883 3585 2883 3585 2883 3585 2882 3585 2881 3585 2881 3585 2880 3585 2879 3585 2879 3584 2879 3584 2879 3584 2879 3584 2878 3585 2875 3585 2875 3585 2875 3585 2875 3585 2874 3585 2874 3585 2873 3585 2872 3585 2872 3583 2870 3583 2870 3582 2869 3582 2868 3582 2868 3581 2867 3581 2867 3581 2866 3582 2865 3582 2864 3582 2863 3582 2863 3582 2862 3581 2862 3581 2861 3580 2859 3580 2859 3580 2858 3579 2858 3579 2858 3579 2857 3579 2857 3579 2857 3578 2857 3578 2857 3578 2855 3579 2854 3578 2853 3578 2853 3578 2852 3578 2852 3578 2851 3578 2850 3578 2849 3578 2849 3578 2849 3578 2849 3578 2848 3578 2848 3578 2848 3578 2847 3578 2846 3578 2846 3578 2845 3578 2845 3577 2845 3577 2844 3577 2844 3577 2844 3577 2844 3577 2843 3577 2843 3577 2842 3577 2842 3577 2842 3577 2841 3577 2841 3577 2841 3578 2839 3580 2837 3581 2836 3581 2835 3582 2833 3583 2831 3583 2831 3584 2831 3584 2830 3584 2830 3584 2830 3585 2829 3585 2829 3585 2826 3585 2826 3585 2826 3585 2826 3585 2825 3585 2825 3585 2825 3584 2824 3584 2824 3584 2824 3584 2824 3585 2821 3585 2821 3585 2821 3585 2821 3586 2821 3586 2821 3587 2821 3588 2821 3591 2821 3592 2821 3594 2820 3594 2820 3595 2820 3595 2820 3595 2819 3595 2819 3596 2818 3596 2818 3597 2817 3598 2817 3598 2817 3598 2817 3598 2817 3598 2819 3598 2819 3598 2820 3598 2820 3599 2820 3599 2820 3599 2820 3600 2819 3600 2819 3600 2819 3600 2818 3600 2819 3600 2818 3600 2818 3600 2818 3603 2817 3603 2818 3603 2818 3603 2818 3603 2818 3603 2819 3603 2819 3604 2819 3604 2819 3604 2817 3604 2816 3604 2816 3605 2815 3606 2815 3607 2815 3607 2815 3607 2815 3608 2815 3608 2815 3608 2814 3608 2814 3609 2815 3609 2815 3609 2815 3609 2816 3609 2816 3611 2816 3611 2816 3611 2815 3611 2815 3611 2815 3611 2815 3610 2815 3610 2815 3610 2815 3610 2815 3610 2815 3610 2815 3610 2814 3610 2814 3611 2814 3611 2814 3611 2814 3612 2813 3612 2813 3612 2813 3613 2813 3613 2813 3614 2814 3613 2815 3614 2816 3614 2816 3614 2816 3614 2817 3614 2817 3615 2817 3615 2818 3615 2818 3617 2817 3617 2816 3616 2816 3616 2815 3615 2815 3615 2813 3615 2813 3615 2813 3615 2812 M 3647 2777 3645 2777 3645 2776 3645 2776 3645 2776 3645 2775 3645 2774 3646 2773 3646 2773 3646 2773 3647 2773 3647 2774 3647 2776 3647 2777 3647 2777 3647 2777 M 3671 2836 3671 2835 3671 2835 3671 2833 3671 2832 3673 2830 3674 2830 3673 2832 3673 2833 3672 2833 3671 2835 3671 2836" />
+<path id="mq" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1903 2332 1903 2331 1901 2331 1901 2331 1900 2331 1898 2328 1897 2326 1897 2326 1897 2325 1898 2325 1898 2325 1898 2325 1898 2325 1899 2325 1900 2326 1902 2327 1902 2327 1902 2328 1903 2329 1903 2330 1904 2331 1904 2332 1903 2332 1903 2332 1903 2332 1903 2332" />
+<path id="mo" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4688 2208 4688 2208 4689 2208 4689 2208 4688 2208" />
+<path id="md" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3324 1826 3324 1825 3325 1823 3326 1821 3326 1818 3326 1817 3325 1817 3325 1816 3324 1814 3324 1814 3324 1814 3324 1813 3323 1812 3323 1812 3322 1811 3321 1811 3320 1810 3319 1809 3319 1809 3318 1808 3318 1807 3317 1807 3316 1807 3315 1806 3314 1804 3313 1803 3312 1802 3311 1802 3311 1801 3311 1801 3310 1799 3310 1798 3309 1797 3309 1796 3306 1793 3306 1793 3303 1792 3302 1792 3300 1792 3300 1791 3301 1791 3301 1790 3303 1791 3306 1790 3310 1790 3314 1789 3315 1788 3315 1788 3318 1789 3320 1789 3320 1790 3320 1790 3321 1790 3321 1790 3322 1791 3322 1791 3323 1791 3324 1791 3324 1792 3326 1793 3326 1793 3326 1792 3327 1792 3328 1792 3328 1792 3328 1793 3328 1793 3329 1794 3330 1794 3331 1793 3332 1793 3334 1794 3335 1794 3335 1794 3336 1796 3336 1796 3337 1796 3338 1797 3338 1797 3338 1797 3339 1797 3339 1797 3339 1796 3340 1796 3341 1796 3341 1797 3342 1800 3341 1802 3341 1803 3340 1803 3340 1804 3341 1805 3342 1805 3342 1804 3343 1805 3344 1806 3344 1806 3344 1807 3345 1807 3346 1807 3346 1807 3346 1806 3347 1806 3348 1807 3348 1807 3347 1810 3348 1811 3347 1813 3350 1814 3352 1814 3353 1815 3354 1816 3354 1819 3353 1819 3353 1819 3353 1820 3354 1820 3355 1821 3355 1821 3356 1821 3356 1821 3356 1821 3356 1822 3355 1822 3354 1822 3354 1822 3353 1822 3352 1822 3351 1822 3350 1821 3349 1822 3348 1822 3348 1822 3346 1821 3346 1820 3344 1820 3343 1821 3343 1821 3342 1822 3342 1822 3341 1822 3342 1821 3342 1820 3342 1819 3341 1819 3341 1819 3339 1820 3338 1820 3338 1820 3337 1821 3337 1823 3339 1824 3339 1825 3338 1828 3337 1828 3335 1828 3335 1828 3334 1828 3334 1829 3334 1830 3333 1831 3332 1831 3331 1832 3330 1833 3331 1833 3331 1835 3330 1836 3330 1836 3329 1836 3328 1835 3328 1835 3327 1835 3327 1835 3326 1835 3326 1836 3326 1836 3326 1836 3326 1837 3326 1837 3325 1836 3323 1834 3324 1834 3325 1834 3325 1833 3325 1832 3324 1829 3324 1828 3324 1828 3324 1827 3324 1826" />
+<path id="yt" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3596 2770 3596 2770 3595 2770 3595 2769 3595 2768 3595 2768 3595 2769 3596 2769 3596 2768 3595 2767 3595 2766 3594 2766 3594 2766 3594 2765 3595 2765 3597 2766 3597 2766 3597 2766 3597 2768 3597 2769 3597 2770 3596 2770" />
+<path id="mn" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4739 1823 4737 1823 4737 1824 4736 1824 4735 1825 4734 1826 4734 1826 4734 1826 4732 1828 4732 1829 4732 1829 4732 1830 4732 1830 4732 1831 4731 1832 4731 1832 4730 1833 4730 1833 4729 1833 4728 1833 4727 1834 4725 1835 4723 1836 4719 1837 4718 1837 4717 1837 4715 1837 4711 1838 4711 1838 4709 1837 4708 1837 4705 1838 4705 1838 4704 1839 4703 1840 4702 1841 4701 1842 4700 1843 4698 1844 4698 1844 4697 1845 4696 1845 4696 1845 4695 1845 4695 1845 4693 1846 4692 1847 4691 1847 4690 1848 4689 1848 4688 1847 4684 1847 4682 1847 4678 1846 4674 1845 4673 1845 4673 1844 4672 1843 4671 1842 4670 1843 4668 1843 4665 1843 4665 1842 4665 1842 4665 1842 4664 1842 4662 1843 4660 1844 4660 1844 4658 1847 4657 1849 4657 1849 4657 1850 4657 1850 4657 1851 4656 1851 4656 1852 4656 1852 4655 1852 4655 1853 4655 1853 4655 1854 4655 1854 4656 1856 4657 1857 4659 1859 4659 1859 4661 1860 4662 1861 4663 1862 4664 1863 4663 1864 4663 1865 4662 1865 4660 1865 4660 1865 4658 1867 4656 1868 4653 1869 4652 1869 4649 1870 4648 1871 4646 1872 4644 1874 4643 1875 4643 1876 4642 1876 4642 1877 4641 1877 4640 1878 4639 1878 4639 1879 4639 1879 4638 1880 4634 1881 4634 1881 4632 1881 4631 1881 4628 1882 4627 1883 4625 1884 4624 1884 4622 1884 4621 1885 4621 1885 4618 1884 4616 1884 4614 1885 4611 1885 4608 1885 4605 1885 4604 1884 4604 1884 4599 1885 4593 1885 4593 1885 4592 1884 4592 1884 4592 1884 4588 1885 4588 1886 4584 1887 4584 1887 4582 1887 4581 1887 4576 1888 4570 1890 4566 1892 4561 1893 4560 1894 4558 1895 4556 1896 4552 1898 4551 1897 4550 1897 4547 1897 4544 1897 4545 1895 4545 1894 4537 1895 4534 1895 4527 1893 4526 1893 4522 1892 4518 1890 4516 1889 4513 1889 4512 1889 4512 1889 4511 1889 4505 1888 4505 1887 4504 1887 4501 1884 4498 1883 4495 1883 4492 1882 4488 1881 4486 1881 4483 1881 4477 1881 4476 1881 4474 1881 4473 1881 4472 1881 4464 1883 4461 1882 4460 1882 4458 1882 4453 1882 4448 1882 4446 1881 4445 1881 4444 1881 4443 1881 4441 1881 4438 1880 4436 1880 4434 1880 4433 1880 4432 1880 4431 1880 4430 1879 4427 1879 4424 1880 4424 1880 4422 1880 4420 1880 4420 1880 4417 1880 4415 1880 4414 1880 4414 1877 4410 1874 4407 1872 4407 1872 4406 1871 4406 1871 4406 1870 4406 1869 4406 1869 4406 1868 4405 1868 4405 1867 4404 1866 4404 1866 4403 1864 4403 1864 4403 1864 4403 1863 4403 1863 4402 1862 4401 1860 4400 1860 4399 1860 4398 1860 4398 1860 4398 1859 4398 1857 4398 1857 4398 1856 4399 1856 4399 1855 4399 1855 4397 1855 4396 1855 4395 1855 4393 1856 4388 1854 4388 1854 4387 1853 4387 1853 4386 1853 4385 1852 4383 1851 4382 1851 4382 1851 4381 1850 4380 1850 4378 1848 4378 1848 4376 1847 4375 1847 4374 1847 4374 1846 4372 1846 4372 1846 4372 1845 4371 1845 4371 1845 4370 1845 4369 1844 4369 1844 4366 1844 4365 1844 4365 1844 4365 1844 4364 1844 4363 1843 4363 1844 4363 1844 4362 1844 4360 1844 4359 1843 4359 1843 4357 1843 4357 1843 4356 1843 4355 1843 4352 1844 4349 1843 4346 1842 4346 1842 4345 1842 4345 1842 4342 1843 4337 1843 4337 1842 4336 1842 4336 1841 4336 1841 4335 1842 4335 1842 4333 1842 4332 1841 4332 1841 4332 1841 4331 1841 4331 1840 4329 1840 4329 1840 4327 1840 4325 1838 4325 1837 4325 1837 4324 1836 4323 1836 4323 1834 4324 1832 4326 1830 4326 1829 4328 1828 4328 1828 4329 1828 4329 1828 4329 1826 4329 1826 4328 1825 4328 1825 4328 1825 4327 1823 4327 1823 4328 1822 4329 1819 4329 1819 4330 1819 4329 1818 4329 1817 4329 1816 4329 1816 4328 1814 4327 1813 4327 1812 4326 1812 4326 1812 4325 1812 4325 1812 4324 1811 4322 1809 4321 1808 4320 1807 4320 1804 4319 1803 4319 1803 4318 1802 4317 1801 4315 1800 4314 1800 4314 1799 4314 1799 4314 1798 4314 1798 4312 1798 4312 1798 4312 1798 4311 1798 4309 1799 4307 1797 4306 1796 4306 1796 4306 1795 4305 1795 4303 1795 4301 1796 4300 1796 4298 1796 4298 1796 4297 1795 4297 1795 4296 1794 4296 1794 4294 1794 4291 1793 4290 1792 4290 1792 4290 1791 4290 1791 4290 1790 4289 1789 4286 1788 4284 1788 4284 1788 4284 1788 4281 1787 4281 1787 4280 1787 4280 1786 4280 1786 4281 1786 4282 1785 4282 1784 4281 1784 4280 1784 4280 1784 4279 1784 4278 1783 4277 1782 4277 1781 4278 1781 4278 1781 4279 1781 4279 1780 4279 1780 4278 1778 4278 1777 4278 1777 4279 1777 4280 1777 4283 1776 4283 1775 4283 1775 4283 1774 4283 1773 4284 1773 4284 1772 4286 1772 4287 1772 4290 1772 4292 1773 4294 1773 4295 1773 4295 1772 4295 1771 4295 1771 4296 1772 4296 1772 4297 1772 4299 1772 4300 1772 4300 1772 4300 1771 4300 1771 4300 1770 4300 1770 4300 1770 4301 1770 4301 1770 4302 1770 4302 1771 4303 1770 4304 1770 4304 1770 4306 1769 4306 1769 4307 1769 4308 1768 4308 1768 4308 1768 4308 1767 4307 1767 4307 1766 4307 1765 4307 1765 4307 1765 4308 1765 4308 1765 4309 1765 4309 1765 4310 1765 4310 1765 4311 1765 4312 1764 4313 1764 4313 1764 4313 1763 4313 1763 4313 1763 4314 1762 4314 1762 4315 1762 4316 1762 4316 1762 4317 1762 4317 1761 4318 1761 4319 1761 4321 1760 4321 1760 4321 1760 4322 1760 4323 1761 4323 1760 4324 1760 4324 1760 4327 1758 4327 1758 4328 1758 4328 1757 4329 1757 4329 1757 4330 1757 4331 1757 4331 1757 4334 1756 4336 1756 4338 1755 4339 1754 4339 1754 4339 1754 4340 1753 4340 1753 4341 1753 4342 1753 4343 1752 4343 1752 4344 1752 4345 1753 4345 1753 4346 1753 4346 1753 4347 1753 4347 1753 4348 1753 4349 1752 4349 1752 4350 1751 4350 1751 4352 1751 4352 1751 4355 1753 4355 1753 4356 1753 4356 1753 4357 1752 4357 1752 4357 1751 4357 1751 4359 1751 4360 1751 4360 1752 4360 1752 4360 1753 4360 1753 4361 1754 4362 1754 4362 1754 4363 1754 4366 1754 4367 1754 4367 1754 4368 1754 4368 1754 4370 1754 4372 1755 4375 1755 4376 1755 4380 1755 4380 1755 4381 1755 4381 1755 4382 1757 4382 1758 4382 1758 4382 1759 4382 1760 4383 1760 4383 1761 4383 1761 4384 1761 4385 1762 4386 1762 4386 1763 4387 1763 4388 1763 4389 1763 4389 1763 4392 1763 4392 1763 4393 1764 4393 1764 4394 1765 4395 1765 4396 1765 4396 1765 4397 1765 4398 1765 4399 1765 4399 1765 4400 1765 4401 1766 4404 1765 4405 1764 4405 1764 4405 1764 4406 1764 4406 1763 4407 1764 4407 1764 4407 1764 4407 1764 4408 1765 4408 1765 4409 1764 4409 1764 4409 1764 4410 1764 4412 1764 4413 1765 4413 1765 4413 1765 4414 1765 4414 1765 4414 1766 4415 1766 4415 1765 4416 1765 4417 1765 4417 1765 4417 1765 4418 1766 4418 1766 4418 1766 4419 1766 4419 1765 4420 1765 4420 1765 4421 1765 4424 1766 4427 1767 4427 1768 4427 1768 4428 1768 4429 1768 4429 1768 4430 1768 4432 1767 4433 1767 4434 1766 4434 1766 4436 1765 4436 1765 4437 1764 4437 1764 4437 1765 4439 1765 4441 1763 4442 1763 4442 1763 4442 1763 4443 1761 4445 1759 4446 1756 4445 1756 4445 1755 4445 1755 4445 1755 4444 1755 4444 1755 4443 1755 4443 1755 4441 1754 4441 1754 4440 1752 4440 1751 4440 1750 4439 1749 4439 1749 4438 1749 4438 1748 4438 1747 4438 1747 4439 1746 4440 1744 4440 1744 4440 1742 4441 1741 4442 1740 4442 1740 4442 1740 4443 1740 4444 1741 4444 1740 4444 1740 4444 1739 4444 1739 4444 1739 4445 1737 4446 1736 4446 1736 4447 1736 4448 1736 4450 1736 4450 1735 4451 1735 4451 1735 4452 1735 4452 1734 4453 1734 4453 1733 4454 1731 4454 1731 4454 1731 4454 1730 4455 1730 4455 1730 4455 1730 4457 1731 4458 1732 4461 1732 4461 1733 4462 1733 4465 1734 4466 1734 4467 1734 4468 1734 4468 1734 4469 1735 4470 1735 4470 1736 4471 1736 4471 1736 4472 1736 4473 1736 4476 1736 4478 1736 4479 1736 4480 1736 4481 1736 4481 1736 4483 1737 4485 1737 4486 1738 4487 1738 4489 1739 4490 1739 4492 1739 4492 1739 4493 1740 4493 1740 4494 1741 4494 1741 4495 1741 4495 1740 4496 1740 4497 1740 4497 1740 4498 1740 4500 1741 4501 1741 4502 1741 4504 1742 4505 1742 4505 1742 4505 1742 4508 1743 4508 1743 4507 1743 4507 1744 4507 1746 4507 1747 4508 1747 4508 1748 4508 1748 4508 1750 4508 1750 4508 1751 4509 1751 4510 1752 4510 1752 4510 1753 4509 1753 4509 1754 4509 1754 4509 1754 4509 1755 4510 1755 4510 1755 4510 1755 4511 1755 4512 1755 4513 1756 4514 1757 4514 1757 4514 1757 4515 1757 4516 1758 4517 1758 4517 1758 4518 1758 4518 1759 4519 1759 4519 1759 4520 1759 4520 1759 4521 1759 4522 1759 4523 1759 4523 1759 4524 1759 4524 1759 4524 1760 4525 1760 4525 1761 4526 1761 4529 1761 4530 1762 4531 1762 4531 1762 4532 1762 4532 1761 4532 1761 4533 1761 4533 1761 4534 1761 4535 1761 4535 1761 4537 1762 4537 1762 4538 1762 4538 1761 4540 1761 4540 1761 4541 1760 4542 1759 4543 1759 4543 1759 4544 1759 4545 1759 4546 1759 4547 1759 4547 1758 4547 1758 4552 1757 4552 1757 4552 1758 4553 1758 4554 1758 4554 1758 4555 1757 4555 1757 4555 1757 4556 1757 4557 1756 4557 1756 4557 1756 4558 1756 4560 1757 4564 1757 4565 1757 4568 1757 4568 1757 4569 1758 4569 1758 4569 1758 4572 1759 4572 1759 4573 1759 4573 1759 4575 1759 4576 1758 4577 1758 4578 1758 4578 1758 4579 1758 4580 1759 4580 1759 4581 1759 4581 1759 4584 1761 4585 1762 4585 1762 4585 1763 4587 1763 4588 1764 4591 1764 4593 1764 4596 1764 4596 1764 4597 1765 4598 1765 4600 1765 4600 1767 4599 1769 4601 1770 4601 1770 4602 1771 4602 1771 4603 1771 4605 1772 4606 1773 4608 1774 4609 1775 4610 1775 4610 1775 4610 1775 4611 1774 4615 1774 4616 1774 4616 1774 4617 1775 4618 1774 4619 1774 4621 1774 4621 1774 4624 1776 4624 1776 4625 1776 4625 1776 4626 1776 4629 1776 4633 1777 4635 1777 4635 1777 4636 1777 4636 1777 4637 1777 4637 1777 4638 1776 4640 1777 4642 1777 4643 1778 4643 1778 4644 1778 4645 1777 4647 1777 4647 1777 4648 1777 4648 1776 4648 1776 4649 1776 4650 1775 4651 1775 4653 1774 4655 1774 4656 1774 4656 1774 4657 1774 4657 1774 4657 1774 4658 1773 4659 1773 4660 1773 4661 1773 4661 1774 4662 1773 4663 1773 4663 1773 4666 1773 4667 1773 4671 1772 4672 1771 4672 1771 4673 1771 4674 1772 4675 1772 4675 1772 4676 1772 4676 1772 4677 1772 4677 1772 4681 1770 4681 1769 4683 1767 4683 1767 4684 1767 4686 1766 4687 1765 4688 1764 4689 1764 4689 1764 4691 1763 4692 1763 4693 1763 4694 1762 4694 1762 4695 1762 4695 1762 4696 1761 4696 1761 4699 1760 4699 1760 4700 1760 4701 1759 4701 1759 4702 1760 4702 1760 4703 1760 4703 1760 4704 1760 4705 1760 4705 1760 4706 1760 4706 1760 4708 1760 4709 1760 4710 1760 4712 1761 4712 1762 4713 1762 4713 1763 4715 1764 4716 1764 4718 1765 4718 1766 4720 1766 4721 1765 4721 1765 4722 1765 4722 1765 4723 1766 4723 1766 4724 1766 4724 1766 4725 1765 4726 1765 4729 1764 4729 1764 4729 1764 4730 1764 4731 1763 4732 1763 4732 1764 4733 1764 4735 1764 4735 1765 4736 1765 4738 1765 4739 1766 4739 1767 4738 1768 4737 1770 4736 1771 4735 1773 4733 1775 4732 1777 4730 1780 4729 1782 4729 1783 4727 1785 4727 1785 4725 1788 4725 1789 4725 1790 4725 1791 4725 1791 4725 1792 4722 1793 4721 1794 4721 1797 4727 1801 4727 1801 4728 1800 4729 1799 4730 1799 4732 1798 4734 1798 4736 1798 4737 1798 4739 1798 4740 1798 4742 1798 4746 1799 4749 1801 4749 1801 4750 1801 4754 1798 4754 1798 4754 1798 4757 1796 4757 1796 4758 1796 4761 1796 4763 1795 4766 1796 4768 1796 4769 1797 4770 1798 4772 1799 4773 1800 4775 1800 4777 1801 4778 1801 4778 1802 4778 1803 4780 1804 4781 1804 4781 1805 4782 1806 4783 1806 4784 1807 4786 1808 4786 1808 4787 1809 4788 1810 4788 1810 4788 1812 4788 1812 4790 1813 4790 1813 4791 1816 4790 1817 4789 1817 4788 1818 4787 1818 4787 1818 4786 1818 4784 1818 4783 1818 4783 1818 4782 1818 4782 1818 4781 1818 4780 1818 4777 1817 4777 1817 4776 1817 4776 1816 4775 1816 4774 1815 4774 1815 4773 1816 4772 1816 4772 1817 4767 1817 4767 1817 4766 1816 4765 1816 4764 1816 4762 1817 4759 1818 4758 1818 4758 1818 4758 1819 4757 1819 4755 1820 4754 1819 4753 1818 4751 1819 4751 1819 4750 1820 4750 1821 4750 1821 4750 1822 4745 1822 4742 1822 4741 1821 4741 1822 4740 1822 4740 1822 4739 1823" />
+<path id="ms" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1882 2296 1882 2296 1881 2296 1881 2296 1881 2296 1881 2295 1881 2294 1882 2294 1882 2295 1883 2296 1882 2296 1882 2296 1882 2296" />
+<path id="mw" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3406 2786 3405 2786 3405 2786 3405 2785 3403 2786 3402 2785 3400 2783 3399 2781 3399 2780 3398 2780 3397 2780 3397 2780 3397 2779 3398 2779 3399 2779 3399 2779 3400 2777 3401 2776 3402 2774 3402 2772 3402 2772 3402 2771 3402 2770 3402 2770 3402 2770 3403 2769 3403 2769 3403 2768 3402 2768 3401 2766 3403 2764 3403 2764 3404 2763 3405 2764 3406 2764 3408 2763 3410 2761 3410 2761 3410 2760 3411 2760 3411 2760 3411 2760 3410 2759 3409 2760 3409 2760 3408 2760 3408 2759 3408 2759 3406 2756 3407 2755 3407 2754 3407 2753 3407 2750 3407 2748 3407 2747 3406 2747 3406 2747 3406 2745 3407 2744 3408 2743 3408 2742 3408 2741 3409 2741 3408 2740 3408 2739 3406 2736 3406 2736 3408 2735 3408 2735 3409 2735 3409 2735 3410 2735 3411 2734 3411 2734 3412 2733 3412 2732 3413 2732 3413 2731 3413 2731 3413 2731 3412 2730 3411 2728 3411 2728 3411 2727 3411 2727 3411 2726 3411 2726 3411 2726 3409 2725 3407 2723 3407 2722 3408 2721 3407 2719 3407 2719 3406 2718 3406 2718 3406 2717 3406 2717 3406 2716 3405 2716 3404 2716 3404 2716 3403 2716 3402 2716 3402 2716 3401 2714 3401 2714 3401 2713 3401 2713 3401 2713 3402 2712 3402 2712 3402 2713 3403 2713 3404 2714 3405 2714 3406 2714 3407 2714 3408 2715 3409 2715 3409 2716 3410 2716 3411 2716 3411 2716 3411 2716 3414 2716 3416 2717 3416 2717 3417 2718 3417 2717 3417 2716 3417 2716 3417 2715 3417 2715 3417 2715 3418 2714 3419 2714 3419 2714 3420 2715 3421 2716 3421 2716 3423 2718 3424 2719 3425 2720 3426 2721 3426 2722 3426 2722 3427 2723 3427 2728 3427 2728 3427 2729 3427 2730 3427 2731 3427 2731 3427 2731 3428 2732 3428 2733 3429 2733 3429 2734 3429 2734 3428 2736 3428 2737 3428 2737 3428 2738 3428 2739 3428 2740 3428 2740 3429 2741 3431 2743 3432 2744 3432 2744 3433 2746 3433 2746 3433 2747 3433 2747 3432 2747 3429 2747 3428 2747 3428 2748 3428 2748 3428 2749 3428 2749 3428 2750 3428 2750 3428 2751 3427 2752 3426 2753 3426 2754 3425 2755 3424 2756 3424 2757 3424 2757 3424 2758 3424 2758 3425 2759 3425 2761 3425 2762 3425 2763 3426 2764 3426 2764 3426 2765 3426 2766 3427 2766 3427 2767 3427 2768 3427 2769 3427 2770 3427 2770 3427 2771 3427 2775 3427 2775 3427 2776 3427 2776 3429 2778 3431 2778 3432 2778 3432 2778 3436 2781 3437 2783 3437 2784 3442 2789 3442 2789 3442 2790 3443 2790 3447 2796 3448 2797 3448 2797 3448 2798 3448 2800 3449 2800 3448 2802 3447 2805 3447 2807 3448 2808 3448 2809 3448 2809 3448 2809 3448 2810 3447 2816 3447 2818 3447 2819 3446 2819 3445 2820 3443 2821 3442 2820 3441 2820 3441 2820 3439 2822 3438 2823 3438 2824 3438 2826 3437 2826 3436 2827 3437 2828 3437 2828 3437 2828 3438 2828 3438 2829 3438 2829 3439 2831 3439 2832 3439 2833 3439 2834 3439 2835 3439 2836 3439 2836 3438 2836 3436 2836 3435 2836 3435 2834 3435 2834 3436 2834 3436 2833 3436 2833 3436 2831 3436 2831 3435 2831 3435 2831 3434 2831 3434 2831 3431 2828 3430 2827 3430 2826 3429 2825 3428 2824 3427 2823 3427 2823 3426 2823 3426 2823 3426 2823 3425 2823 3425 2822 3425 2821 3425 2820 3425 2820 3425 2819 3425 2819 3423 2817 3423 2817 3423 2817 3422 2817 3422 2816 3422 2815 3422 2815 3423 2815 3423 2814 3423 2814 3424 2814 3424 2813 3425 2813 3425 2812 3425 2811 3425 2810 3425 2810 3425 2810 3426 2808 3427 2807 3427 2807 3427 2807 3428 2806 3427 2806 3427 2806 3427 2805 3427 2804 3427 2803 3427 2802 3427 2798 3427 2796 3427 2796 3426 2795 3426 2795 3426 2795 3425 2794 3425 2793 3425 2793 3424 2792 3424 2792 3420 2793 3416 2794 3414 2794 3413 2795 3412 2795 3411 2793 3409 2791 3408 2789 3407 2788 3406 2787 3406 2786 M 3428 2755 3428 2754 3428 2755 3428 2755 M 3430 2756 3429 2756 3430 2755 3430 2755 3430 2756 3430 2756" />
+<path id="mk" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3208 1909 3207 1909 3206 1909 3205 1906 3204 1906 3204 1905 3203 1904 3202 1903 3202 1902 3203 1902 3203 1902 3203 1901 3203 1900 3202 1900 3202 1899 3202 1899 3203 1898 3203 1896 3203 1895 3204 1894 3204 1894 3204 1894 3206 1894 3206 1894 3207 1893 3207 1892 3207 1891 3207 1890 3209 1890 3212 1888 3213 1888 3214 1889 3215 1889 3216 1889 3218 1887 3220 1888 3221 1888 3222 1888 3222 1888 3223 1887 3223 1887 3224 1886 3227 1887 3228 1887 3230 1887 3230 1886 3232 1886 3232 1886 3233 1887 3235 1889 3236 1890 3237 1891 3240 1891 3240 1893 3241 1894 3241 1895 3242 1895 3243 1895 3243 1896 3243 1897 3242 1897 3242 1897 3242 1898 3242 1900 3242 1902 3242 1902 3241 1902 3241 1902 3239 1902 3239 1902 3239 1903 3239 1904 3238 1904 3238 1905 3236 1906 3234 1906 3233 1906 3232 1905 3231 1905 3231 1905 3230 1905 3226 1906 3225 1906 3225 1907 3223 1909 3220 1910 3220 1910 3219 1909 3219 1909 3217 1909 3216 1910 3216 1910 3215 1910 3213 1910 3212 1910 3210 1910 3210 1909 3210 1909 3210 1909 3208 1909 3208 1909" />
+<path id="ml" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2717 2370 2717 2369 2714 2368 2710 2367 2710 2368 2710 2368 2708 2369 2706 2371 2705 2373 2704 2372 2704 2372 2703 2371 2702 2369 2701 2368 2701 2367 2700 2367 2700 2367 2699 2368 2698 2369 2697 2370 2697 2370 2696 2371 2695 2371 2694 2370 2694 2370 2693 2369 2693 2369 2692 2369 2692 2369 2691 2368 2691 2368 2692 2367 2692 2367 2693 2365 2693 2364 2693 2364 2693 2362 2693 2362 2693 2360 2693 2358 2693 2356 2693 2355 2692 2353 2691 2353 2691 2353 2690 2351 2691 2351 2690 2350 2690 2349 2689 2349 2688 2348 2687 2348 2687 2349 2686 2350 2685 2349 2685 2348 2684 2346 2683 2346 2683 2345 2682 2344 2682 2344 2683 2343 2683 2343 2684 2343 2684 2342 2684 2342 2684 2342 2684 2341 2684 2341 2684 2340 2684 2340 2684 2340 2683 2339 2683 2339 2683 2338 2684 2336 2684 2336 2683 2334 2681 2333 2680 2333 2680 2331 2680 2330 2680 2329 2679 2327 2679 2327 2681 2327 2682 2327 2682 2327 2684 2327 2685 2325 2686 2325 2686 2324 2687 2323 2686 2322 2686 2322 2686 2321 2686 2320 2687 2318 2687 2316 2687 2315 2688 2315 2688 2315 2688 2314 2689 2315 2690 2314 2691 2313 2691 2313 2692 2313 2693 2313 2693 2314 2694 2315 2694 2315 2695 2316 2695 2316 2696 2316 2696 2317 2697 2317 2699 2319 2700 2319 2700 2320 2701 2321 2701 2321 2702 2320 2703 2318 2704 2317 2704 2317 2704 2316 2704 2316 2705 2316 2706 2316 2706 2316 2708 2316 2710 2316 2711 2316 2712 2316 2713 2317 2714 2317 2714 2317 2715 2317 2718 2317 2719 2317 2719 2316 2720 2316 2721 2316 2725 2316 2725 2315 2724 2313 2726 2312 2726 2312 2726 2314 2726 2315 2728 2315 2728 2315 2730 2315 2731 2315 2731 2315 2738 2315 2739 2315 2739 2315 2746 2315 2747 2315 2753 2315 2755 2315 2757 2315 2763 2315 2769 2315 2772 2315 2774 2315 2774 2315 2780 2315 2786 2315 2787 2315 2787 2315 2787 2314 2788 2309 2789 2306 2789 2305 2790 2302 2786 2299 2785 2295 2784 2285 2783 2278 2783 2273 2782 2270 2782 2265 2782 2262 2781 2258 2781 2256 2780 2253 2780 2248 2780 2245 2779 2241 2778 2234 2778 2231 2777 2227 2777 2224 2777 2221 2776 2218 2776 2213 2776 2210 2774 2200 2774 2197 2774 2197 2774 2195 2773 2191 2772 2181 2772 2177 2771 2172 2771 2170 2771 2169 2770 2163 2771 2163 2773 2163 2774 2163 2777 2163 2783 2163 2796 2163 2797 2163 2798 2163 2803 2166 2809 2170 2814 2173 2820 2177 2823 2179 2830 2183 2836 2187 2842 2191 2847 2195 2852 2198 2857 2201 2863 2205 2868 2209 2873 2213 2875 2214 2875 2214 2877 2215 2879 2217 2881 2218 2887 2221 2894 2225 2894 2226 2894 2227 2894 2227 2894 2228 2894 2229 2894 2229 2894 2230 2894 2230 2894 2231 2894 2231 2897 2232 2899 2233 2899 2233 2900 2233 2901 2234 2902 2234 2902 2236 2902 2236 2902 2237 2904 2238 2904 2238 2905 2239 2908 2240 2909 2239 2910 2239 2910 2239 2911 2239 2911 2239 2912 2240 2912 2240 2913 2240 2913 2241 2913 2241 2913 2242 2914 2242 2915 2243 2916 2243 2918 2243 2921 2244 2923 2244 2923 2244 2927 2246 2927 2247 2926 2249 2926 2250 2926 2250 2927 2252 2927 2252 2927 2253 2927 2253 2926 2255 2925 2256 2925 2256 2925 2257 2925 2257 2926 2258 2928 2259 2935 2258 2937 2258 2938 2258 2940 2257 2943 2257 2943 2258 2943 2261 2943 2264 2943 2265 2943 2275 2943 2281 2943 2283 2943 2286 2943 2291 2942 2292 2942 2294 2942 2295 2942 2301 2942 2301 2941 2301 2941 2301 2940 2302 2940 2302 2939 2306 2938 2308 2937 2311 2937 2311 2937 2312 2937 2312 2936 2312 2936 2312 2935 2312 2935 2312 2932 2315 2931 2316 2931 2317 2931 2317 2928 2317 2923 2316 2923 2316 2923 2317 2921 2317 2917 2317 2915 2317 2907 2318 2905 2318 2896 2318 2892 2322 2891 2323 2891 2323 2890 2323 2887 2323 2887 2324 2886 2324 2885 2324 2885 2323 2883 2323 2882 2323 2881 2324 2880 2323 2879 2323 2879 2323 2879 2324 2879 2324 2875 2323 2871 2322 2869 2323 2868 2322 2863 2322 2863 2322 2859 2325 2858 2326 2858 2326 2854 2327 2853 2328 2848 2331 2847 2331 2845 2331 2843 2331 2843 2332 2843 2333 2843 2333 2843 2334 2843 2336 2841 2336 2841 2336 2839 2335 2838 2335 2837 2335 2836 2334 2833 2336 2833 2336 2830 2338 2830 2339 2829 2342 2829 2343 2829 2344 2828 2345 2828 2345 2825 2344 2824 2344 2823 2344 2823 2346 2823 2347 2823 2349 2823 2350 2823 2350 2821 2350 2821 2350 2820 2350 2820 2351 2820 2351 2820 2351 2820 2352 2820 2352 2820 2352 2819 2352 2818 2352 2818 2352 2817 2351 2815 2349 2813 2348 2812 2347 2812 2347 2811 2347 2809 2350 2808 2350 2807 2351 2806 2352 2806 2353 2807 2355 2807 2355 2808 2355 2808 2356 2808 2358 2808 2359 2808 2359 2807 2359 2806 2359 2804 2359 2804 2359 2804 2360 2804 2361 2804 2361 2805 2362 2805 2363 2804 2363 2804 2364 2804 2366 2803 2366 2802 2368 2801 2369 2801 2369 2801 2370 2800 2370 2796 2371 2794 2371 2793 2371 2793 2372 2792 2372 2791 2373 2791 2374 2791 2376 2792 2377 2792 2378 2792 2379 2791 2383 2790 2385 2790 2385 2789 2385 2789 2385 2788 2385 2787 2386 2787 2386 2787 2387 2788 2388 2788 2389 2789 2389 2788 2391 2788 2391 2788 2392 2788 2393 2787 2394 2787 2396 2786 2395 2784 2396 2784 2396 2784 2396 2783 2396 2783 2396 2782 2396 2781 2397 2780 2398 2780 2399 2780 2399 2779 2400 2778 2400 2777 2400 2777 2399 2776 2399 2776 2399 2776 2397 2776 2396 2776 2396 2776 2395 2776 2394 2776 2393 2776 2391 2775 2391 2773 2392 2773 2393 2773 2393 2772 2394 2771 2394 2770 2393 2770 2393 2769 2392 2769 2392 2768 2393 2768 2393 2768 2395 2768 2395 2769 2396 2769 2396 2769 2397 2769 2397 2768 2397 2764 2397 2764 2397 2763 2399 2764 2399 2764 2399 2764 2400 2764 2400 2763 2400 2763 2401 2763 2400 2762 2400 2762 2400 2761 2399 2760 2399 2759 2399 2758 2398 2757 2397 2756 2396 2753 2396 2752 2396 2752 2397 2751 2397 2751 2398 2751 2399 2750 2400 2749 2400 2748 2400 2748 2400 2748 2400 2748 2399 2748 2398 2745 2396 2744 2396 2744 2396 2743 2395 2743 2394 2742 2391 2743 2389 2743 2387 2742 2386 2740 2386 2739 2387 2738 2387 2736 2387 2736 2387 2737 2385 2740 2382 2740 2382 2740 2382 2741 2382 2741 2382 2742 2382 2741 2381 2741 2381 2740 2380 2739 2380 2739 2380 2739 2379 2738 2379 2738 2379 2738 2379 2737 2379 2737 2378 2736 2378 2736 2377 2736 2377 2736 2376 2735 2377 2735 2377 2734 2376 2735 2373 2735 2372 2734 2371 2732 2368 2732 2368 2732 2367 2732 2366 2732 2366 2732 2365 2732 2365 2732 2365 2730 2364 2730 2364 2729 2363 2727 2363 2726 2363 2726 2363 2725 2364 2726 2364 2727 2365 2726 2366 2726 2367 2726 2367 2725 2367 2725 2367 2722 2368 2721 2368 2721 2368 2721 2369 2721 2369 2721 2370 2720 2370 2719 2370 2717 2370" />
+<path id="mc" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2993 1864 2993 1864 2994 1863 2994 1864 2994 1864 2993 1864" />
+<path id="ma" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2821 2056 2820 2056 2819 2057 2819 2057 2818 2057 2818 2056 2817 2056 2817 2056 2816 2056 2816 2056 2814 2056 2814 2056 2814 2056 2814 2057 2814 2060 2814 2060 2814 2062 2814 2064 2814 2065 2814 2065 2815 2065 2816 2065 2817 2066 2818 2067 2817 2067 2817 2068 2817 2068 2816 2068 2815 2068 2814 2068 2814 2068 2813 2068 2812 2069 2811 2069 2811 2069 2811 2069 2809 2070 2809 2071 2808 2071 2808 2071 2807 2072 2806 2072 2805 2072 2805 2073 2805 2073 2804 2073 2804 2073 2801 2074 2796 2075 2796 2075 2796 2076 2795 2077 2795 2077 2795 2078 2794 2078 2794 2079 2793 2080 2793 2080 2792 2081 2792 2082 2791 2082 2790 2083 2790 2083 2789 2084 2787 2085 2786 2085 2785 2085 2784 2085 2783 2085 2783 2085 2781 2086 2780 2086 2779 2086 2779 2086 2778 2086 2778 2086 2777 2086 2777 2086 2777 2086 2776 2086 2776 2087 2773 2086 2771 2087 2771 2089 2771 2089 2771 2090 2770 2090 2770 2090 2769 2090 2768 2090 2767 2090 2767 2090 2766 2090 2762 2089 2761 2089 2760 2090 2758 2091 2758 2091 2758 2092 2758 2092 2756 2093 2756 2093 2755 2093 2755 2093 2755 2093 2754 2093 2754 2093 2753 2093 2753 2093 2753 2093 2752 2094 2750 2095 2747 2097 2745 2098 2744 2099 2744 2099 2741 2101 2741 2101 2741 2101 2741 2102 2739 2103 2739 2103 2738 2103 2738 2103 2737 2104 2737 2104 2737 2116 2737 2121 2726 2121 2726 2121 2721 2121 2718 2121 2716 2121 2715 2121 2715 2121 2714 2121 2713 2121 2710 2121 2670 2121 2666 2121 2665 2121 2665 2121 2665 2120 2665 2120 2666 2120 2666 2119 2667 2119 2667 2119 2667 2118 2668 2118 2668 2117 2668 2117 2669 2116 2670 2116 2671 2116 2672 2116 2674 2115 2677 2115 2682 2114 2684 2113 2688 2112 2689 2111 2691 2111 2691 2110 2692 2110 2694 2107 2695 2106 2697 2105 2698 2104 2698 2104 2698 2103 2700 2102 2704 2101 2705 2100 2705 2100 2706 2099 2707 2099 2707 2099 2708 2098 2708 2097 2709 2097 2710 2096 2710 2095 2711 2095 2711 2095 2712 2094 2713 2092 2714 2091 2714 2091 2714 2090 2714 2090 2717 2087 2718 2086 2718 2086 2719 2085 2719 2085 2719 2084 2721 2082 2721 2081 2722 2077 2722 2077 2720 2075 2719 2074 2718 2073 2718 2072 2718 2071 2718 2071 2718 2070 2718 2069 2718 2068 2718 2066 2718 2065 2718 2064 2718 2063 2718 2063 2718 2062 2718 2061 2718 2060 2719 2059 2720 2058 2720 2057 2720 2057 2720 2056 2721 2055 2721 2055 2724 2052 2725 2051 2726 2051 2727 2048 2727 2048 2727 2046 2727 2043 2727 2043 2728 2042 2729 2041 2729 2041 2730 2040 2730 2040 2731 2039 2732 2038 2734 2037 2735 2036 2737 2034 2737 2033 2738 2032 2739 2031 2739 2031 2740 2031 2740 2031 2741 2031 2742 2030 2742 2030 2742 2029 2743 2029 2744 2029 2745 2029 2748 2028 2749 2027 2750 2027 2752 2026 2754 2026 2755 2025 2757 2024 2760 2023 2760 2022 2762 2022 2762 2022 2763 2022 2764 2021 2764 2020 2766 2019 2766 2018 2768 2016 2769 2015 2769 2014 2770 2013 2770 2013 2771 2011 2773 2008 2773 2007 2774 2007 2774 2006 2775 2005 2775 2003 2776 2002 2776 2001 2777 1998 2778 1996 2779 1994 2780 1993 2780 1991 2780 1991 2782 1991 2783 1991 2786 1990 2786 1990 2787 1990 2787 1989 2788 1989 2789 1989 2789 1989 2789 1989 2789 1990 2789 1990 2790 1990 2790 1990 2790 1991 2790 1992 2790 1992 2791 1994 2792 1995 2796 1998 2796 1998 2798 1999 2799 2000 2800 2000 2801 2000 2803 2001 2804 2001 2805 2001 2806 2001 2807 2000 2808 2000 2809 2000 2810 2000 2810 2000 2811 2000 2812 1999 2813 2000 2813 2000 2814 2000 2814 2000 2815 2000 2817 1999 2818 2000 2821 2000 2821 2000 2822 2000 2822 2000 2824 2000 2826 1999 2827 1998 2827 1997 2828 1998 2828 1998 2828 1998 2828 1999 2828 1999 2828 1999 2829 1999 2829 2000 2828 2000 2829 2001 2829 2001 2830 2001 2831 2002 2830 2001 2830 2001 2829 2000 2829 2000 2830 2001 2831 2001 2831 2001 2832 2002 2833 2002 2834 2002 2835 2002 2835 2002 2838 2001 2839 2002 2840 2002 2840 2002 2840 2003 2840 2003 2842 2004 2845 2007 2846 2007 2847 2007 2846 2009 2846 2009 2845 2010 2847 2011 2848 2012 2847 2012 2846 2013 2847 2014 2848 2015 2849 2018 2849 2018 2848 2020 2848 2021 2847 2024 2848 2025 2849 2025 2849 2026 2849 2026 2849 2027 2849 2028 2849 2029 2848 2029 2848 2031 2849 2032 2850 2033 2850 2034 2851 2034 2851 2034 2851 2035 2851 2035 2851 2036 2850 2036 2853 2040 2855 2041 2859 2043 2858 2044 2858 2044 2857 2045 2857 2045 2856 2045 2856 2045 2855 2046 2855 2048 2855 2048 2854 2049 2855 2049 2855 2049 2856 2049 2856 2049 2856 2050 2856 2050 2855 2050 2855 2050 2854 2050 2854 2050 2851 2050 2851 2050 2848 2050 2845 2049 2844 2049 2843 2049 2841 2049 2841 2049 2840 2049 2839 2049 2838 2049 2838 2049 2836 2049 2836 2049 2829 2050 2829 2050 2828 2051 2828 2051 2828 2052 2828 2052 2828 2053 2828 2053 2827 2054 2827 2054 2826 2055 2825 2055 2823 2055 2822 2055 2821 2056" />
+<path id="mu" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3889 2877 3889 2877 3889 2877 3889 2878 3887 2878 3887 2878 3887 2878 3887 2877 3887 2877 3888 2877 3889 2877 3889 2877 M 3794 2890 3793 2890 3792 2890 3790 2889 3790 2889 3791 2886 3792 2886 3792 2885 3792 2885 3794 2882 3795 2882 3795 2882 3796 2882 3796 2882 3798 2886 3798 2886 3798 2887 3797 2889 3797 2889 3796 2890 3796 2890 3795 2890 3794 2890" />
+<path id="mr" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2774 2195 2774 2197 2774 2197 2774 2200 2776 2210 2776 2213 2776 2218 2777 2221 2777 2224 2777 2227 2778 2231 2778 2234 2779 2241 2780 2245 2780 2248 2780 2253 2781 2256 2781 2258 2782 2262 2782 2265 2782 2270 2783 2273 2783 2278 2784 2285 2785 2295 2786 2299 2790 2302 2789 2305 2789 2306 2788 2309 2787 2314 2787 2315 2787 2315 2786 2315 2780 2315 2774 2315 2774 2315 2772 2315 2769 2315 2763 2315 2757 2315 2755 2315 2753 2315 2747 2315 2746 2315 2739 2315 2739 2315 2738 2315 2731 2315 2731 2315 2730 2315 2728 2315 2728 2315 2726 2315 2726 2314 2726 2312 2726 2312 2724 2313 2725 2315 2725 2316 2721 2316 2720 2316 2719 2316 2719 2317 2718 2317 2715 2317 2714 2317 2714 2317 2713 2317 2712 2316 2711 2316 2710 2316 2708 2316 2706 2316 2706 2316 2705 2316 2704 2316 2704 2316 2704 2317 2704 2317 2703 2318 2702 2320 2701 2321 2701 2321 2700 2320 2700 2319 2699 2319 2697 2317 2696 2317 2696 2316 2695 2316 2695 2316 2694 2315 2694 2315 2693 2314 2693 2313 2692 2313 2691 2313 2691 2313 2690 2314 2689 2315 2688 2314 2688 2315 2688 2315 2687 2315 2687 2316 2687 2318 2686 2320 2686 2321 2686 2322 2686 2322 2687 2323 2686 2324 2686 2325 2685 2325 2684 2327 2682 2327 2682 2327 2681 2327 2679 2327 2679 2326 2677 2325 2676 2324 2676 2324 2676 2323 2673 2321 2673 2321 2672 2322 2672 2321 2671 2321 2670 2320 2669 2319 2670 2319 2670 2318 2670 2318 2669 2318 2669 2317 2668 2317 2668 2317 2668 2315 2666 2315 2666 2315 2666 2315 2664 2313 2663 2312 2662 2308 2661 2306 2659 2305 2658 2305 2657 2305 2657 2305 2656 2305 2656 2304 2656 2304 2654 2305 2652 2303 2652 2302 2651 2301 2648 2298 2646 2297 2645 2297 2644 2297 2643 2297 2641 2297 2639 2297 2638 2297 2637 2297 2636 2297 2636 2296 2636 2296 2636 2296 2635 2296 2635 2297 2634 2297 2632 2298 2630 2298 2628 2298 2627 2298 2626 2299 2625 2299 2624 2299 2623 2299 2622 2299 2621 2299 2621 2299 2620 2299 2619 2299 2618 2299 2618 2298 2617 2298 2615 2299 2615 2299 2614 2300 2614 2301 2614 2302 2614 2303 2613 2303 2611 2305 2611 2306 2611 2305 2611 2302 2611 2302 2611 2301 2612 2301 2612 2299 2612 2299 2612 2298 2612 2298 2612 2297 2612 2296 2613 2295 2613 2294 2614 2292 2615 2291 2615 2290 2615 2290 2616 2288 2616 2287 2617 2285 2618 2283 2618 2283 2618 2282 2618 2281 2619 2279 2619 2276 2619 2274 2619 2272 2619 2272 2619 2271 2618 2269 2619 2269 2619 2268 2618 2268 2618 2267 2618 2267 2618 2266 2617 2264 2617 2263 2617 2261 2617 2260 2616 2260 2616 2259 2616 2258 2615 2258 2615 2257 2615 2257 2614 2256 2614 2256 2612 2255 2611 2254 2611 2253 2612 2253 2613 2253 2614 2252 2614 2252 2615 2252 2615 2250 2614 2251 2613 2251 2613 2252 2612 2252 2612 2252 2612 2252 2613 2250 2613 2250 2613 2250 2614 2249 2616 2246 2616 2245 2616 2243 2616 2239 2616 2238 2614 2237 2614 2236 2613 2235 2613 2233 2612 2232 2612 2231 2611 2231 2611 2232 2611 2233 2611 2234 2610 2234 2610 2233 2609 2232 2605 2225 2605 2225 2605 2225 2604 2226 2603 2227 2604 2227 2603 2230 2603 2231 2603 2231 2602 2229 2602 2228 2603 2227 2603 2227 2604 2225 2604 2222 2604 2222 2610 2222 2617 2222 2619 2222 2621 2222 2624 2222 2632 2222 2635 2222 2640 2222 2644 2222 2647 2222 2647 2222 2653 2222 2661 2222 2667 2222 2667 2220 2667 2214 2667 2211 2667 2210 2666 2208 2666 2206 2666 2203 2666 2203 2666 2202 2665 2199 2665 2198 2666 2197 2667 2196 2667 2195 2671 2192 2673 2191 2674 2191 2674 2190 2677 2190 2680 2189 2682 2188 2683 2188 2683 2182 2683 2179 2683 2174 2683 2173 2683 2167 2683 2166 2683 2165 2683 2160 2683 2159 2683 2158 2683 2153 2683 2153 2683 2151 2683 2147 2688 2147 2695 2147 2704 2147 2707 2147 2713 2147 2715 2147 2716 2147 2717 2147 2720 2147 2721 2147 2722 2147 2725 2147 2737 2147 2737 2146 2737 2145 2737 2141 2737 2134 2737 2132 2737 2127 2737 2127 2744 2131 2745 2131 2752 2135 2752 2135 2759 2140 2760 2140 2763 2142 2767 2144 2769 2145 2774 2149 2775 2149 2781 2153 2782 2153 2785 2155 2791 2158 2796 2162 2797 2162 2798 2163 2798 2163 2797 2163 2796 2163 2783 2163 2777 2163 2774 2163 2773 2163 2771 2163 2770 2163 2771 2169 2771 2170 2771 2172 2772 2177 2772 2181 2773 2191 2774 2195 M 2613 2249 2612 2249 2612 2249 2612 2248 2613 2246 2614 2245 2614 2245 2614 2245 2614 2246 2614 2246 2614 2247 2613 2248 2613 2249 2613 2249 2613 2249 2613 2249 2613 2249 2613 2249" />
+<path id="mt" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3107 1991 3105 1990 3105 1990 3104 1990 3104 1990 3104 1989 3104 1989 3104 1988 3104 1988 3105 1988 3106 1988 3107 1989 3107 1989 3108 1989 3108 1990 3108 1990 3107 1991" />
+<path id="om" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3774 2153 3773 2153 3772 2153 3772 2153 3772 2153 3772 2151 3772 2150 3772 2149 3772 2147 3772 2146 3771 2146 3771 2146 3771 2145 3772 2144 3773 2143 3773 2144 3774 2144 3775 2144 3775 2144 3776 2144 3776 2143 3775 2143 3775 2144 3774 2144 3775 2143 3775 2142 3776 2141 3776 2143 3777 2143 3777 2143 3777 2145 3775 2144 3775 2144 3775 2145 3775 2145 3775 2146 3776 2146 3776 2148 3776 2149 3776 2149 3775 2150 3775 2151 3774 2151 3774 2152 3774 2153 3774 2153 M 3806 2237 3806 2237 3805 2237 3805 2236 3805 2236 3805 2235 3806 2234 3806 2234 3805 2233 3805 2233 3803 2234 3803 2234 3802 2235 3802 2236 3801 2237 3799 2239 3799 2240 3799 2240 3799 2240 3799 2241 3799 2242 3798 2243 3798 2245 3797 2246 3796 2247 3796 2248 3796 2248 3797 2251 3798 2252 3798 2253 3798 2253 3798 2254 3797 2254 3797 2255 3798 2257 3799 2259 3798 2259 3797 2260 3796 2260 3795 2260 3794 2260 3793 2260 3791 2260 3790 2260 3788 2261 3788 2261 3786 2261 3784 2262 3784 2262 3782 2263 3782 2263 3781 2264 3781 2265 3780 2265 3780 2266 3780 2266 3780 2268 3779 2270 3779 2271 3778 2271 3778 2272 3778 2273 3778 2273 3778 2273 3777 2274 3777 2274 3776 2275 3775 2276 3775 2276 3774 2276 3774 2276 3773 2276 3773 2276 3770 2276 3769 2276 3767 2277 3766 2277 3764 2277 3762 2277 3761 2277 3760 2278 3760 2278 3760 2279 3760 2280 3759 2280 3759 2280 3759 2281 3758 2281 3757 2282 3757 2283 3757 2283 3758 2284 3758 2284 3758 2285 3758 2285 3757 2287 3757 2288 3755 2290 3755 2290 3754 2291 3753 2291 3752 2292 3750 2292 3749 2292 3749 2291 3748 2291 3748 2291 3747 2290 3747 2290 3746 2290 3744 2290 3744 2290 3739 2291 3738 2291 3736 2292 3735 2293 3733 2293 3733 2294 3732 2294 3731 2295 3731 2295 3730 2295 3729 2295 3727 2295 3724 2296 3724 2296 3723 2297 3719 2286 3718 2285 3706 2259 3753 2243 3760 2223 3764 2211 3757 2200 3757 2198 3757 2198 3757 2198 3757 2197 3757 2196 3757 2195 3757 2193 3758 2193 3758 2192 3759 2191 3759 2191 3759 2190 3760 2187 3761 2185 3762 2183 3762 2181 3762 2181 3762 2180 3764 2179 3764 2179 3766 2179 3767 2179 3770 2178 3770 2178 3769 2175 3768 2175 3768 2176 3767 2176 3766 2175 3766 2174 3767 2173 3766 2172 3766 2170 3766 2170 3767 2169 3767 2168 3766 2168 3766 2165 3766 2165 3767 2164 3767 2164 3768 2164 3768 2164 3769 2163 3769 2163 3769 2164 3770 2164 3770 2164 3770 2165 3770 2165 3769 2165 3769 2165 3770 2167 3771 2167 3771 2167 3772 2167 3772 2167 3772 2166 3773 2166 3774 2166 3774 2165 3774 2165 3774 2165 3775 2165 3775 2165 3775 2164 3775 2164 3775 2164 3775 2164 3775 2164 3775 2164 3776 2165 3777 2168 3778 2169 3778 2170 3779 2171 3779 2172 3780 2172 3780 2172 3781 2173 3782 2174 3782 2175 3783 2175 3783 2176 3784 2177 3785 2178 3786 2179 3787 2180 3788 2180 3794 2182 3799 2183 3799 2184 3800 2184 3800 2184 3800 2184 3801 2184 3802 2184 3803 2184 3803 2184 3804 2184 3804 2184 3805 2184 3805 2185 3806 2185 3806 2185 3807 2185 3808 2185 3808 2185 3809 2185 3809 2185 3811 2185 3811 2185 3814 2188 3815 2189 3816 2190 3817 2192 3818 2193 3818 2193 3818 2193 3819 2194 3819 2195 3820 2195 3820 2195 3821 2196 3822 2198 3822 2198 3822 2199 3824 2200 3824 2201 3825 2201 3826 2202 3827 2202 3828 2202 3830 2203 3831 2203 3831 2204 3831 2206 3831 2206 3830 2208 3830 2208 3829 2210 3828 2212 3827 2213 3826 2214 3826 2215 3825 2215 3825 2215 3825 2216 3825 2217 3823 2220 3822 2220 3822 2221 3821 2221 3820 2221 3819 2222 3816 2225 3815 2226 3815 2226 3814 2227 3813 2230 3813 2231 3813 2231 3813 2231 3812 2232 3811 2233 3811 2233 3810 2234 3810 2236 3809 2237 3808 2237 3806 2237 3806 2237 M 3812 2240 3812 2240 3812 2239 3812 2239 3812 2239 3812 2238 3812 2237 3812 2237 3813 2236 3813 2236 3813 2236 3813 2236 3813 2236 3814 2236 3814 2236 3815 2234 3815 2232 3816 2232 3816 2232 3817 2235 3816 2235 3816 2235 3816 2236 3815 2236 3815 2236 3815 2236 3815 2236 3814 2237 3814 2237 3814 2238 3814 2238 3814 2239 3813 2240 3812 2240 3812 2240" />
+<path id="mv" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4041 2450 4041 2450 4041 2450 4041 2450 M 4044 2454 4043 2455 4043 2455 4043 2455 4043 2455 4044 2454 4044 2454 M 4042 2460 4042 2460 4042 2460 4042 2460 M 4040 2467 4040 2467 4040 2467 4040 2467 M 4047 2471 4047 2471 4047 2471 4047 2471 4047 2471 M 4051 2476 4051 2476 4051 2476 4051 2476 4051 2476 4051 2476 M 4041 2484 4040 2485 4041 2484 4041 2484 M 4040 2492 4040 2492 4040 2492 4040 2492 4040 2492 4040 2492 M 4049 2496 4049 2496 4049 2496 4049 2496 4049 2496 M 4050 2509 4050 2509 4050 2509 4050 2509 4050 2509 4050 2509 4050 2509 4050 2509 4050 2509 M 4041 2513 4041 2513 4041 2513 4041 2513 4041 2513 4041 2513 4041 2513 4041 2513 4041 2513 4041 2513 M 4039 2515 4039 2515 4039 2515 4039 2515 M 4050 2515 4050 2515 4050 2515 4050 2515 M 4047 2524 4047 2524 4047 2524 4047 2524 4047 2524 4047 2524 M 4050 2532 4050 2532 4050 2532 4050 2532 4050 2532 4050 2532 M 4049 2556 4049 2556 4049 2556 4049 2556 M 4042 2559 4043 2559 4043 2559 4043 2559 4042 2559 M 4048 2567 4048 2567 4048 2567 4048 2567 4048 2567 M 4043 2572 4043 2572 4043 2573 4042 2572 4042 2572 4043 2572 4043 2572" />
+<path id="montenegro" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3170 1883 3170 1883 3171 1882 3172 1881 3172 1881 3171 1880 3171 1880 3170 1879 3170 1878 3170 1876 3171 1876 3171 1875 3171 1875 3172 1875 3173 1875 3173 1874 3173 1874 3173 1873 3174 1872 3176 1870 3177 1870 3177 1870 3178 1871 3178 1871 3179 1872 3179 1872 3180 1872 3180 1871 3179 1869 3179 1869 3178 1868 3178 1868 3178 1868 3179 1867 3182 1867 3182 1867 3183 1868 3183 1869 3186 1870 3187 1871 3187 1871 3188 1872 3189 1873 3189 1873 3190 1873 3191 1873 3193 1874 3194 1874 3195 1875 3195 1876 3197 1876 3197 1876 3199 1877 3199 1877 3200 1877 3200 1878 3198 1880 3196 1879 3196 1879 3195 1879 3195 1880 3194 1880 3194 1880 3195 1881 3195 1881 3196 1881 3196 1881 3196 1883 3195 1883 3193 1883 3192 1884 3191 1884 3191 1884 3190 1883 3191 1882 3191 1881 3190 1881 3189 1882 3189 1882 3188 1883 3188 1883 3187 1885 3183 1889 3184 1889 3185 1890 3185 1890 3184 1891 3184 1892 3184 1893 3184 1894 3183 1893 3183 1893 3182 1893 3181 1893 3181 1892 3181 1892 3181 1891 3181 1891 3180 1890 3179 1889 3179 1889 3178 1889 3177 1887 3176 1887 3175 1887 3173 1886 3172 1886 3172 1885 3171 1885 3172 1885 3172 1885 3174 1885 3174 1885 3173 1884 3171 1884 3171 1884 3170 1884 3170 1884 3170 1884 3170 1883 3170 1883" />
+<path id="mx" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1313 2207 1313 2208 1313 2209 1313 2209 1314 2210 1315 2212 1315 2213 1316 2213 1316 2214 1317 2214 1317 2215 1317 2215 1317 2215 1319 2217 1320 2218 1320 2218 1321 2218 1321 2219 1321 2219 1320 2220 1320 2220 1319 2223 1318 2221 1318 2220 1319 2220 1319 2220 1320 2219 1320 2218 1319 2218 1319 2218 1318 2217 1318 2217 1317 2216 1316 2214 1315 2212 1315 2212 1314 2211 1314 2211 1314 2212 1314 2212 1314 2213 1314 2213 1315 2215 1315 2216 1315 2217 1316 2218 1317 2219 1317 2219 1318 2220 1318 2222 1320 2225 1320 2226 1320 2226 1321 2228 1322 2229 1322 2230 1322 2230 1323 2230 1323 2231 1323 2231 1323 2232 1323 2233 1324 2234 1325 2234 1329 2239 1330 2239 1331 2241 1332 2243 1334 2245 1334 2245 1335 2245 1335 2247 1335 2247 1335 2248 1335 2249 1336 2250 1337 2254 1337 2254 1338 2254 1338 2255 1338 2255 1339 2255 1339 2255 1340 2257 1340 2257 1341 2258 1341 2258 1342 2259 1343 2260 1343 2261 1343 2261 1343 2262 1345 2263 1349 2264 1351 2264 1352 2264 1353 2264 1354 2264 1355 2264 1357 2265 1357 2266 1359 2266 1359 2266 1360 2267 1361 2267 1361 2267 1362 2268 1362 2269 1365 2272 1365 2272 1365 2273 1366 2273 1367 2273 1369 2272 1371 2272 1371 2272 1373 2271 1376 2271 1377 2271 1380 2269 1380 2268 1380 2268 1380 2269 1377 2270 1377 2270 1376 2270 1376 2270 1377 2269 1380 2268 1382 2268 1383 2268 1387 2268 1387 2268 1387 2269 1388 2270 1388 2269 1388 2269 1390 2268 1391 2268 1391 2268 1392 2267 1393 2267 1394 2266 1395 2267 1396 2265 1398 2265 1398 2264 1399 2264 1401 2264 1403 2264 1405 2263 1406 2263 1406 2264 1408 2265 1407 2266 1406 2265 1405 2266 1405 2266 1406 2266 1406 2266 1406 2266 1407 2266 1408 2267 1408 2267 1408 2268 1408 2268 1409 2269 1409 2269 1409 2268 1411 2268 1411 2268 1414 2268 1414 2268 1414 2267 1415 2266 1417 2266 1419 2265 1417 2263 1417 2263 1416 2262 1416 2263 1416 2263 1415 2262 1416 2261 1416 2261 1415 2261 1415 2261 1415 2261 1416 2260 1417 2260 1417 2259 1419 2259 1421 2257 1423 2256 1425 2254 1426 2253 1426 2251 1426 2249 1426 2248 1427 2247 1427 2246 1428 2246 1428 2245 1429 2245 1429 2245 1429 2245 1430 2243 1430 2243 1430 2242 1430 2242 1430 2240 1430 2238 1430 2234 1430 2231 1430 2231 1431 2230 1431 2230 1432 2230 1432 2229 1432 2228 1432 2228 1432 2228 1431 2229 1431 2230 1431 2230 1431 2230 1431 2229 1431 2228 1432 2228 1432 2227 1432 2227 1433 2226 1434 2226 1436 2225 1439 2223 1440 2223 1440 2223 1441 2223 1441 2223 1442 2222 1445 2222 1448 2222 1448 2222 1450 2222 1452 2221 1456 2220 1458 2220 1458 2220 1459 2219 1460 2219 1460 2219 1462 2218 1463 2218 1464 2218 1465 2218 1465 2218 1468 2218 1467 2218 1466 2218 1466 2218 1466 2218 1467 2218 1467 2217 1468 2217 1470 2217 1470 2218 1474 2219 1473 2219 1472 2218 1473 2219 1473 2219 1475 2219 1475 2219 1476 2219 1477 2219 1478 2219 1480 2220 1481 2220 1482 2220 1483 2219 1483 2219 1483 2218 1483 2218 1482 2218 1482 2218 1481 2219 1479 2219 1479 2219 1480 2218 1480 2218 1481 2218 1481 2218 1482 2218 1483 2217 1484 2217 1485 2218 1485 2218 1485 2218 1485 2218 1487 2220 1487 2220 1488 2220 1488 2221 1488 2221 1488 2222 1488 2222 1488 2224 1489 2225 1488 2227 1488 2228 1487 2230 1484 2233 1483 2234 1483 2234 1482 2235 1482 2235 1481 2236 1481 2237 1479 2239 1478 2240 1478 2240 1478 2242 1478 2243 1478 2244 1478 2244 1478 2245 1478 2245 1478 2245 1478 2245 1478 2244 1478 2244 1478 2244 1478 2245 1477 2246 1477 2246 1476 2246 1475 2248 1474 2248 1474 2249 1474 2249 1474 2250 1475 2250 1475 2251 1475 2251 1476 2250 1477 2250 1479 2249 1479 2250 1479 2251 1478 2251 1478 2252 1477 2253 1476 2253 1477 2253 1477 2252 1475 2253 1475 2253 1475 2253 1475 2254 1474 2255 1475 2255 1475 2256 1476 2255 1476 2255 1476 2254 1477 2254 1477 2254 1478 2254 1477 2257 1476 2258 1476 2260 1476 2260 1475 2261 1475 2263 1475 2263 1474 2264 1474 2264 1474 2265 1473 2267 1473 2268 1473 2268 1473 2269 1472 2270 1472 2270 1472 2271 1472 2272 1471 2270 1471 2270 1471 2269 1471 2268 1470 2268 1469 2267 1468 2267 1468 2267 1468 2266 1469 2264 1469 2262 1469 2261 1468 2261 1468 2262 1467 2263 1466 2264 1467 2264 1465 2267 1465 2267 1465 2267 1464 2267 1464 2267 1463 2267 1462 2267 1461 2268 1461 2268 1460 2270 1460 2271 1459 2272 1458 2273 1458 2274 1457 2275 1456 2277 1456 2276 1454 2276 1454 2275 1453 2275 1452 2275 1452 2275 1451 2276 1451 2278 1447 2278 1442 2278 1438 2278 1434 2278 1428 2278 1425 2278 1423 2278 1422 2278 1422 2278 1422 2278 1422 2282 1422 2287 1415 2287 1415 2287 1416 2288 1417 2289 1419 2290 1421 2292 1422 2293 1422 2293 1423 2294 1424 2294 1425 2294 1426 2295 1426 2295 1427 2296 1427 2297 1427 2297 1427 2298 1427 2299 1428 2299 1428 2299 1429 2299 1429 2299 1430 2300 1431 2300 1431 2301 1431 2301 1431 2302 1430 2302 1430 2303 1430 2304 1431 2304 1431 2305 1430 2306 1430 2306 1430 2306 1428 2306 1425 2306 1422 2306 1413 2306 1410 2306 1410 2306 1409 2308 1408 2308 1404 2316 1402 2319 1404 2322 1404 2323 1403 2324 1403 2325 1403 2326 1403 2327 1403 2327 1403 2328 1403 2328 1403 2329 1402 2330 1402 2330 1402 2330 1401 2330 1401 2330 1399 2328 1397 2326 1397 2325 1396 2325 1396 2325 1395 2324 1394 2323 1394 2322 1393 2321 1393 2321 1394 2321 1394 2321 1393 2320 1392 2320 1391 2320 1390 2319 1388 2317 1388 2317 1387 2316 1386 2315 1385 2314 1383 2313 1382 2312 1381 2311 1379 2310 1378 2309 1377 2308 1376 2307 1375 2305 1373 2305 1372 2305 1372 2305 1372 2304 1370 2304 1369 2303 1368 2303 1368 2302 1367 2302 1367 2302 1367 2303 1367 2304 1367 2304 1368 2304 1368 2305 1369 2305 1368 2304 1369 2304 1370 2304 1371 2305 1372 2305 1372 2305 1372 2305 1373 2306 1373 2306 1373 2306 1372 2306 1370 2305 1368 2304 1367 2304 1367 2304 1366 2304 1364 2304 1363 2304 1362 2304 1363 2303 1363 2303 1364 2303 1364 2303 1364 2302 1364 2302 1364 2302 1363 2301 1363 2302 1362 2302 1361 2303 1361 2302 1361 2302 1361 2302 1361 2301 1360 2300 1360 2300 1359 2300 1357 2302 1357 2303 1357 2303 1359 2303 1360 2303 1359 2304 1356 2304 1354 2305 1354 2305 1352 2306 1352 2307 1351 2307 1351 2307 1350 2308 1349 2308 1348 2308 1348 2308 1346 2309 1346 2309 1342 2310 1341 2311 1339 2312 1338 2312 1337 2312 1337 2312 1336 2312 1335 2312 1334 2313 1333 2312 1328 2311 1325 2309 1324 2309 1324 2309 1323 2308 1322 2308 1317 2308 1315 2308 1315 2308 1314 2308 1313 2307 1313 2307 1312 2307 1312 2307 1311 2306 1308 2304 1308 2304 1306 2303 1303 2303 1303 2303 1301 2302 1301 2302 1301 2302 1300 2301 1300 2301 1300 2301 1299 2300 1298 2299 1298 2299 1298 2298 1297 2298 1293 2297 1290 2297 1287 2296 1285 2296 1285 2296 1283 2296 1282 2295 1280 2294 1280 2294 1280 2293 1280 2293 1278 2293 1274 2291 1273 2291 1273 2291 1271 2290 1270 2290 1267 2289 1265 2288 1264 2288 1263 2287 1262 2287 1261 2286 1261 2286 1260 2286 1260 2285 1260 2285 1258 2284 1256 2283 1255 2282 1253 2281 1252 2280 1251 2280 1251 2279 1249 2277 1249 2277 1247 2276 1247 2276 1247 2275 1246 2275 1245 2275 1245 2275 1244 2276 1244 2276 1244 2276 1243 2276 1243 2276 1242 2276 1241 2276 1239 2275 1237 2274 1236 2274 1236 2274 1235 2274 1234 2274 1234 2274 1233 2273 1231 2273 1231 2273 1231 2272 1229 2272 1229 2272 1228 2272 1224 2271 1223 2270 1222 2270 1222 2269 1222 2269 1222 2269 1221 2268 1221 2267 1221 2267 1219 2265 1218 2264 1218 2264 1218 2264 1217 2264 1216 2263 1215 2261 1214 2261 1214 2261 1213 2261 1213 2260 1212 2260 1211 2260 1209 2259 1209 2258 1209 2258 1209 2258 1208 2257 1206 2257 1204 2257 1203 2256 1201 2255 1200 2254 1199 2254 1198 2254 1198 2253 1197 2251 1196 2250 1196 2250 1195 2249 1195 2249 1194 2248 1193 2247 1193 2247 1193 2247 1192 2245 1191 2245 1191 2245 1191 2244 1190 2243 1190 2243 1189 2242 1189 2242 1188 2239 1187 2237 1187 2237 1187 2236 1188 2236 1188 2235 1189 2235 1190 2235 1191 2235 1193 2235 1194 2234 1194 2233 1194 2232 1194 2232 1193 2231 1192 2231 1192 2231 1191 2231 1189 2230 1193 2227 1193 2226 1194 2226 1194 2226 1194 2226 1194 2225 1195 2223 1194 2222 1195 2220 1194 2219 1193 2219 1191 2217 1191 2217 1191 2217 1191 2216 1190 2214 1189 2213 1189 2213 1188 2213 1188 2212 1188 2212 1188 2211 1187 2211 1187 2210 1188 2209 1188 2208 1188 2208 1188 2207 1188 2207 1188 2206 1188 2206 1187 2205 1187 2204 1187 2204 1186 2203 1186 2202 1185 2201 1185 2201 1183 2199 1182 2198 1182 2198 1181 2197 1180 2196 1180 2196 1178 2194 1176 2192 1174 2190 1174 2189 1174 2189 1174 2189 1171 2187 1169 2185 1169 2185 1169 2184 1168 2183 1168 2182 1167 2181 1167 2181 1166 2180 1166 2180 1165 2179 1165 2179 1160 2176 1159 2175 1158 2174 1157 2174 1157 2173 1157 2173 1156 2173 1155 2172 1154 2172 1155 2172 1156 2172 1156 2172 1156 2172 1157 2172 1156 2171 1156 2171 1156 2171 1155 2172 1154 2171 1154 2171 1153 2170 1152 2169 1151 2169 1152 2170 1152 2170 1153 2171 1151 2170 1151 2170 1150 2169 1150 2168 1150 2167 1150 2167 1150 2164 1150 2163 1149 2163 1149 2164 1150 2164 1149 2166 1148 2166 1148 2166 1147 2164 1146 2163 1147 2163 1148 2164 1148 2163 1150 2163 1150 2163 1150 2162 1149 2162 1149 2162 1148 2161 1148 2161 1146 2161 1144 2161 1144 2161 1144 2160 1144 2159 1143 2159 1143 2159 1143 2159 1141 2158 1140 2158 1138 2157 1138 2156 1138 2155 1138 2155 1137 2154 1136 2154 1136 2155 1136 2155 1136 2156 1135 2156 1134 2156 1133 2155 1132 2155 1133 2155 1133 2154 1134 2154 1134 2154 1135 2154 1136 2153 1136 2152 1137 2151 1136 2151 1136 2152 1133 2153 1133 2154 1132 2154 1132 2153 1131 2153 1129 2151 1128 2151 1127 2150 1127 2148 1127 2147 1127 2147 1128 2146 1129 2144 1129 2145 1130 2143 1130 2142 1131 2142 1131 2142 1131 2142 1131 2143 1132 2144 1132 2144 1132 2143 1132 2142 1132 2141 1130 2139 1127 2136 1126 2135 1125 2135 1124 2136 1123 2136 1123 2136 1123 2136 1122 2136 1122 2136 1121 2135 1120 2134 1120 2134 1120 2133 1120 2133 1120 2132 1119 2130 1119 2130 1118 2129 1118 2129 1117 2130 1114 2129 1113 2129 1113 2128 1111 2126 1110 2125 1108 2122 1108 2121 1108 2121 1108 2119 1109 2118 1110 2118 1109 2117 1105 2117 1104 2118 1103 2117 1101 2116 1101 2116 1100 2116 1099 2115 1098 2114 1098 2114 1097 2113 1097 2112 1097 2112 1095 2109 1094 2109 1093 2109 1092 2108 1091 2108 1091 2108 1091 2107 1090 2107 1090 2106 1090 2106 1089 2105 1089 2105 1089 2105 1087 2103 1087 2103 1087 2103 1086 2101 1084 2100 1084 2100 1083 2098 1083 2097 1083 2095 1083 2095 1083 2094 1082 2094 1082 2094 1081 2094 1080 2093 1080 2092 1080 2091 1079 2090 1079 2090 1079 2090 1078 2090 1077 2088 1075 2085 1074 2084 1074 2083 1074 2081 1074 2081 1074 2080 1074 2080 1072 2077 1071 2075 1070 2074 1069 2073 1069 2073 1069 2072 1069 2072 1068 2070 1068 2070 1069 2069 1069 2067 1070 2066 1070 2065 1069 2064 1068 2064 1068 2064 1065 2063 1063 2063 1062 2063 1061 2062 1060 2062 1060 2061 1060 2060 1060 2060 1060 2060 1060 2059 1059 2059 1057 2058 1055 2057 1055 2058 1055 2058 1055 2059 1054 2059 1054 2059 1053 2059 1052 2059 1051 2059 1051 2059 1050 2059 1047 2057 1046 2057 1046 2056 1046 2056 1045 2055 1044 2055 1043 2055 1041 2054 1041 2054 1039 2053 1038 2052 1038 2052 1038 2053 1039 2053 1039 2053 1039 2053 1041 2056 1042 2057 1042 2057 1041 2058 1041 2058 1041 2059 1041 2059 1041 2059 1040 2061 1040 2064 1040 2065 1040 2065 1041 2067 1042 2068 1042 2068 1043 2068 1043 2069 1043 2070 1043 2071 1043 2072 1043 2073 1043 2073 1043 2074 1044 2074 1044 2074 1044 2076 1044 2078 1044 2079 1044 2080 1044 2081 1045 2083 1045 2083 1047 2085 1048 2086 1048 2087 1049 2087 1050 2087 1051 2087 1053 2089 1053 2089 1054 2090 1056 2091 1056 2092 1057 2092 1057 2093 1059 2095 1060 2095 1061 2098 1062 2099 1061 2100 1062 2101 1063 2101 1063 2100 1063 2100 1064 2100 1064 2100 1065 2101 1065 2101 1066 2102 1066 2102 1067 2102 1067 2103 1068 2105 1068 2106 1068 2108 1070 2108 1070 2108 1070 2108 1071 2108 1071 2108 1072 2109 1072 2110 1072 2111 1072 2111 1072 2111 1073 2112 1073 2112 1073 2113 1073 2114 1074 2115 1074 2115 1075 2115 1074 2116 1074 2118 1075 2120 1077 2121 1078 2121 1078 2121 1081 2123 1081 2123 1082 2128 1085 2129 1086 2131 1086 2131 1087 2133 1087 2134 1088 2134 1088 2135 1087 2135 1088 2136 1088 2137 1090 2138 1090 2138 1091 2138 1091 2138 1091 2137 1090 2137 1089 2136 1089 2135 1088 2134 1089 2133 1089 2133 1090 2134 1091 2134 1092 2135 1093 2135 1093 2136 1093 2137 1093 2137 1093 2138 1093 2138 1094 2139 1096 2142 1096 2142 1096 2143 1096 2143 1096 2144 1096 2145 1097 2147 1096 2148 1097 2150 1097 2151 1099 2154 1100 2154 1101 2155 1102 2155 1102 2156 1102 2156 1102 2157 1103 2159 1104 2160 1104 2162 1105 2162 1105 2162 1106 2163 1106 2163 1107 2165 1107 2166 1107 2166 1107 2167 1107 2167 1107 2168 1106 2168 1106 2169 1106 2169 1106 2170 1106 2171 1107 2171 1107 2171 1107 2172 1107 2172 1107 2173 1108 2174 1108 2175 1110 2176 1111 2176 1111 2176 1113 2176 1113 2176 1113 2177 1112 2176 1112 2176 1112 2177 1112 2177 1113 2177 1114 2176 1114 2176 1113 2175 1113 2174 1113 2174 1114 2173 1115 2174 1115 2174 1117 2176 1118 2176 1118 2177 1118 2177 1118 2178 1120 2179 1121 2179 1121 2179 1121 2180 1121 2180 1121 2181 1122 2181 1122 2182 1123 2182 1123 2182 1123 2183 1123 2183 1123 2184 1123 2184 1123 2185 1124 2185 1125 2185 1125 2185 1125 2185 1126 2186 1126 2186 1128 2188 1128 2189 1127 2192 1126 2193 1126 2193 1125 2193 1125 2194 1124 2194 1124 2194 1123 2194 1123 2195 1123 2195 1123 2195 1121 2197 1120 2197 1119 2197 1119 2197 1118 2197 1118 2197 1118 2197 1117 2195 1117 2195 1116 2194 1116 2193 1116 2193 1116 2192 1116 2192 1115 2190 1113 2186 1112 2185 1112 2185 1111 2185 1110 2184 1109 2184 1108 2183 1107 2182 1105 2181 1102 2178 1101 2177 1101 2177 1099 2176 1095 2174 1094 2173 1094 2172 1093 2172 1093 2172 1092 2172 1092 2171 1092 2171 1092 2170 1091 2170 1089 2170 1089 2169 1089 2168 1088 2168 1087 2167 1087 2167 1086 2167 1085 2167 1084 2165 1085 2164 1084 2163 1084 2164 1084 2164 1084 2165 1083 2165 1083 2164 1084 2160 1084 2160 1085 2159 1085 2159 1085 2157 1085 2154 1085 2154 1084 2155 1084 2154 1084 2153 1084 2152 1085 2152 1084 2151 1083 2148 1083 2148 1083 2147 1082 2147 1081 2146 1081 2145 1080 2144 1080 2143 1080 2143 1080 2143 1079 2143 1079 2143 1079 2143 1075 2142 1074 2141 1072 2140 1072 2139 1071 2138 1070 2138 1069 2137 1068 2137 1068 2136 1067 2136 1067 2136 1067 2136 1067 2135 1067 2134 1067 2134 1068 2133 1068 2133 1068 2132 1067 2132 1067 2132 1067 2133 1067 2133 1067 2134 1066 2135 1064 2134 1063 2134 1063 2134 1063 2134 1062 2135 1061 2135 1059 2134 1058 2134 1058 2133 1058 2133 1057 2132 1057 2132 1056 2131 1056 2131 1055 2131 1055 2132 1054 2132 1053 2131 1053 2130 1053 2130 1053 2130 1052 2129 1052 2129 1051 2129 1051 2129 1050 2129 1050 2129 1049 2129 1047 2127 1047 2127 1047 2126 1046 2125 1046 2125 1044 2123 1043 2123 1042 2122 1040 2120 1039 2120 1038 2120 1038 2119 1037 2118 1038 2118 1039 2118 1041 2118 1042 2118 1043 2119 1044 2119 1046 2119 1046 2119 1047 2119 1047 2118 1049 2119 1049 2119 1050 2119 1051 2120 1054 2120 1054 2120 1055 2120 1054 2119 1054 2119 1053 2119 1052 2120 1052 2120 1051 2119 1051 2118 1050 2118 1049 2117 1050 2116 1050 2116 1051 2115 1051 2115 1052 2115 1052 2115 1052 2115 1052 2115 1052 2115 1052 2115 1052 2114 1052 2114 1052 2113 1052 2112 1052 2112 1052 2110 1052 2109 1053 2109 1053 2108 1053 2108 1053 2107 1053 2106 1051 2105 1051 2104 1050 2104 1049 2103 1048 2102 1048 2101 1047 2101 1047 2101 1046 2100 1045 2100 1043 2097 1039 2093 1039 2093 1037 2093 1035 2092 1035 2092 1035 2092 1034 2091 1034 2091 1033 2091 1030 2089 1027 2087 1026 2084 1026 2082 1026 2080 1025 2079 1025 2079 1025 2079 1025 2078 1025 2078 1025 2077 1023 2076 1023 2075 1022 2076 1022 2077 1022 2077 1022 2076 1022 2076 1022 2075 1022 2074 1022 2074 1022 2072 1021 2071 1018 2068 1017 2065 1017 2065 1017 2065 1017 2064 1017 2064 1015 2061 1013 2060 1011 2058 1012 2058 1013 2055 1013 2054 1013 2054 1012 2054 1012 2053 1011 2053 1009 2052 1008 2051 1008 2051 1008 2050 1008 2050 1008 2049 1008 2048 1008 2048 1007 2047 1007 2047 1006 2047 1006 2047 1006 2047 1005 2046 1004 2044 1004 2044 1004 2043 1005 2043 1008 2043 1011 2042 1014 2042 1018 2042 1024 2041 1029 2041 1032 2041 1035 2040 1038 2040 1040 2040 1043 2040 1043 2040 1043 2040 1042 2040 1042 2042 1041 2043 1041 2043 1045 2044 1049 2046 1053 2047 1056 2048 1059 2049 1065 2050 1069 2052 1072 2053 1078 2055 1081 2056 1087 2057 1095 2060 1101 2062 1113 2062 1114 2062 1120 2062 1126 2062 1133 2062 1133 2062 1137 2062 1137 2062 1137 2062 1138 2062 1147 2062 1147 2062 1147 2060 1147 2059 1147 2058 1147 2056 1147 2055 1147 2055 1151 2055 1155 2055 1156 2055 1157 2055 1158 2055 1159 2055 1160 2055 1161 2055 1162 2055 1162 2055 1163 2055 1164 2055 1165 2055 1172 2055 1173 2055 1174 2055 1174 2055 1175 2055 1175 2055 1175 2055 1176 2055 1177 2056 1177 2057 1177 2058 1178 2058 1179 2060 1180 2060 1181 2061 1182 2061 1182 2061 1184 2063 1184 2063 1185 2063 1185 2064 1186 2065 1187 2065 1188 2066 1189 2066 1189 2067 1190 2068 1192 2070 1194 2071 1194 2070 1195 2071 1196 2071 1197 2072 1198 2073 1199 2074 1200 2074 1200 2075 1200 2076 1201 2077 1201 2078 1203 2080 1203 2080 1203 2081 1203 2082 1203 2082 1203 2083 1203 2084 1205 2089 1207 2090 1207 2090 1208 2091 1209 2091 1209 2091 1210 2091 1210 2091 1211 2092 1211 2093 1213 2094 1213 2094 1213 2094 1214 2094 1214 2094 1216 2095 1218 2096 1221 2097 1222 2098 1222 2098 1223 2099 1224 2099 1225 2099 1225 2099 1227 2100 1229 2098 1231 2096 1232 2095 1232 2094 1233 2092 1235 2087 1237 2087 1238 2087 1240 2086 1241 2085 1242 2085 1242 2086 1244 2086 1244 2086 1245 2087 1245 2087 1246 2086 1248 2086 1249 2086 1249 2087 1250 2087 1251 2087 1252 2087 1253 2087 1255 2087 1255 2087 1256 2088 1256 2089 1257 2089 1258 2091 1260 2091 1260 2092 1261 2092 1261 2092 1263 2094 1265 2095 1267 2098 1268 2099 1268 2100 1268 2100 1268 2101 1269 2101 1269 2102 1270 2104 1270 2104 1270 2104 1271 2105 1271 2106 1272 2107 1272 2107 1273 2108 1272 2109 1273 2111 1274 2111 1275 2112 1276 2113 1277 2113 1277 2113 1278 2116 1279 2116 1280 2117 1280 2118 1280 2118 1280 2119 1281 2119 1281 2119 1281 2119 1282 2120 1282 2120 1282 2120 1282 2121 1283 2121 1283 2121 1284 2121 1285 2122 1286 2122 1286 2124 1287 2127 1286 2131 1289 2133 1289 2133 1290 2134 1290 2134 1291 2136 1292 2139 1292 2140 1294 2141 1295 2141 1297 2142 1298 2142 1299 2143 1300 2143 1300 2143 1303 2144 1304 2144 1304 2145 1305 2145 1305 2146 1307 2146 1309 2147 1309 2146 1310 2146 1312 2146 1313 2146 1315 2147 1315 2147 1316 2147 1317 2148 1317 2149 1319 2150 1320 2150 1320 2149 1320 2149 1321 2149 1321 2148 1323 2148 1323 2148 1323 2148 1323 2148 1323 2151 1323 2152 1322 2155 1321 2156 1321 2156 1321 2157 1320 2157 1319 2159 1319 2160 1318 2160 1318 2161 1317 2162 1316 2167 1316 2168 1315 2171 1315 2173 1315 2173 1315 2174 1315 2175 1314 2178 1314 2180 1314 2181 1314 2182 1314 2186 1314 2188 1314 2189 1314 2189 1313 2190 1313 2190 1313 2191 1314 2192 1314 2193 1314 2194 1314 2194 1314 2195 1314 2195 1314 2197 1314 2197 1313 2198 1313 2199 1312 2199 1312 2201 1312 2201 1312 2202 1312 2202 1313 2206 1313 2206 1313 2207 M 1068 2099 1067 2099 1067 2099 1066 2098 1066 2098 1064 2097 1064 2096 1062 2094 1061 2093 1061 2092 1061 2092 1061 2090 1062 2090 1062 2090 1063 2091 1064 2092 1064 2092 1064 2093 1064 2093 1064 2093 1064 2093 1064 2094 1064 2094 1064 2094 1064 2094 1065 2095 1066 2095 1066 2095 1067 2096 1067 2097 1067 2097 1067 2097 1067 2098 1068 2098 1068 2098 1068 2098 1068 2099 1068 2099 1068 2099 1068 2099 M 1081 2103 1081 2103 1080 2103 1079 2102 1078 2102 1077 2101 1077 2101 1078 2097 1079 2096 1079 2096 1079 2096 1080 2096 1081 2096 1081 2096 1082 2096 1083 2098 1083 2099 1083 2099 1083 2100 1083 2100 1082 2103 1082 2103 1081 2103 M 985 2101 985 2101 985 2100 985 2100 985 2099 985 2099 985 2098 985 2098 984 2098 984 2098 984 2098 984 2097 984 2097 984 2096 984 2096 985 2096 985 2096 986 2098 986 2099 986 2099 986 2100 986 2101 986 2101 986 2101 985 2101 985 2101 M 1035 2115 1034 2114 1033 2114 1033 2113 1033 2113 1033 2113 1034 2112 1034 2112 1034 2112 1034 2111 1034 2110 1034 2110 1034 2110 1034 2109 1034 2109 1035 2109 1035 2110 1035 2110 1036 2112 1036 2113 1035 2115 1035 2115 M 1099 2150 1099 2150 1099 2147 1100 2146 1101 2146 1101 2146 1100 2147 1100 2147 1099 2149 1099 2150 1099 2150 M 1084 2159 1084 2159 1084 2159 1084 2159 1084 2160 1084 2160 1084 2161 1083 2162 1083 2162 1083 2165 1083 2165 1083 2166 1083 2166 1083 2166 1083 2167 1085 2171 1085 2171 1085 2171 1085 2171 1085 2171 1084 2169 1083 2169 1083 2168 1084 2168 1084 2168 1084 2167 1084 2167 1084 2167 1083 2167 1083 2167 1083 2166 1083 2166 1082 2166 1083 2163 1083 2163 1084 2160 1084 2160 1084 2159 M 1107 2162 1107 2162 1108 2162 1108 2162 1108 2163 1109 2163 1109 2163 1109 2163 1110 2165 1109 2165 1109 2165 1109 2165 1108 2164 1107 2163 1107 2162 1107 2162 1107 2162 M 1113 2173 1113 2173 1112 2172 1112 2170 1112 2170 1112 2170 1112 2170 1113 2171 1113 2172 1113 2172 1113 2173 1113 2173 M 1091 2174 1090 2174 1090 2173 1090 2173 1089 2172 1087 2171 1086 2171 1086 2171 1089 2171 1091 2173 1091 2173 1091 2173 1091 2174 1091 2174 M 1121 2177 1121 2177 1120 2177 1120 2176 1120 2176 1120 2176 1120 2175 1119 2174 1119 2173 1120 2174 1120 2174 1120 2174 1121 2176 1121 2176 1122 2177 1122 2177 1121 2177 M 1172 2218 1172 2218 1172 2217 1172 2217 1172 2216 1172 2216 1173 2216 1173 2216 1174 2216 1174 2217 1174 2218 1174 2219 1174 2219 1173 2218 1172 2218 1172 2218 M 1176 2220 1174 2220 1174 2220 1174 2220 1174 2220 1174 2219 1174 2219 1174 2219 1175 2219 1175 2219 1177 2219 1177 2220 1176 2220 1176 2220 M 1486 2239 1485 2239 1485 2238 1485 2238 1485 2238 1485 2237 1485 2237 1485 2237 1485 2236 1485 2236 1486 2235 1486 2234 1487 2234 1487 2234 1487 2234 1487 2234 1488 2234 1488 2234 1489 2234 1489 2234 1489 2234 1489 2234 1490 2234 1489 2235 1487 2237 1486 2238 1486 2238 1486 2239 1486 2239 1486 2239 M 1102 2264 1102 2263 1102 2263 1102 2263 1102 2263 1101 2263 1101 2263 1101 2263 1101 2262 1101 2262 1102 2261 1102 2261 1103 2262 1103 2262 1103 2262 1103 2263 1104 2263 1103 2263 1102 2264 M 1408 2265 1408 2265 1408 2265 1408 2264 1409 2264 1411 2263 1413 2262 1413 2262 1413 2262 1413 2263 1413 2263 1413 2263 1412 2263 1409 2265 1408 2265 1408 2265" />
+<path id="my" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4741 2448 4741 2448 4742 2446 4742 2446 4744 2445 4744 2445 4744 2446 4744 2446 4743 2447 4742 2447 4742 2447 4741 2448 M 4745 2446 4746 2445 4747 2445 4748 2445 4748 2445 4748 2446 4748 2447 4748 2447 4748 2447 4748 2448 4747 2448 4747 2448 4746 2448 4746 2448 4746 2448 4745 2449 4745 2449 4745 2449 4745 2449 4745 2448 4745 2446 4745 2446 4745 2446 4745 2446 M 4766 2489 4767 2489 4767 2489 4767 2489 4768 2490 4767 2490 4768 2491 4768 2490 4769 2490 4770 2491 4770 2492 4770 2492 4770 2492 4769 2493 4768 2493 4768 2493 4768 2493 4766 2493 4763 2494 4762 2494 4761 2494 4760 2495 4760 2495 4758 2495 4758 2495 4758 2494 4758 2494 4756 2493 4755 2493 4754 2493 4754 2494 4754 2494 4754 2494 4753 2495 4753 2496 4752 2496 4752 2496 4751 2496 4751 2496 4751 2495 4751 2495 4750 2495 4750 2495 4750 2495 4748 2493 4748 2493 4747 2493 4747 2493 4747 2493 4747 2493 4747 2493 4744 2493 4743 2493 4743 2493 4742 2493 4742 2493 4742 2493 4741 2493 4739 2493 4738 2493 4736 2493 4736 2494 4735 2494 4735 2494 4735 2494 4735 2494 4733 2493 4730 2493 4730 2493 4729 2494 4729 2494 4729 2494 4728 2494 4728 2493 4728 2493 4727 2493 4726 2493 4726 2493 4726 2493 4725 2493 4724 2495 4724 2495 4723 2496 4723 2496 4722 2497 4722 2497 4722 2497 4722 2501 4721 2503 4721 2503 4721 2504 4721 2505 4721 2505 4721 2505 4721 2506 4722 2507 4722 2508 4722 2508 4721 2508 4721 2508 4721 2508 4721 2508 4721 2509 4720 2509 4720 2509 4720 2510 4720 2511 4720 2511 4720 2512 4720 2512 4720 2514 4720 2514 4720 2514 4718 2515 4717 2515 4717 2515 4717 2514 4717 2514 4716 2514 4714 2516 4714 2516 4714 2517 4713 2521 4713 2521 4714 2521 4714 2521 4714 2521 4715 2521 4715 2521 4715 2521 4716 2522 4715 2522 4715 2523 4715 2523 4715 2523 4713 2524 4712 2525 4711 2526 4711 2526 4711 2526 4710 2526 4710 2526 4709 2526 4709 2527 4708 2527 4708 2528 4708 2528 4709 2530 4709 2530 4709 2530 4710 2530 4710 2530 4710 2530 4710 2532 4710 2532 4709 2532 4708 2533 4707 2534 4707 2536 4705 2539 4705 2539 4705 2540 4705 2540 4704 2540 4704 2539 4704 2539 4703 2539 4703 2539 4703 2539 4703 2538 4702 2538 4702 2538 4702 2538 4700 2539 4700 2539 4697 2539 4696 2539 4696 2539 4696 2539 4695 2539 4695 2539 4695 2539 4694 2540 4694 2540 4694 2541 4693 2541 4692 2542 4690 2543 4690 2543 4690 2543 4690 2543 4689 2542 4687 2542 4686 2541 4686 2541 4685 2541 4682 2540 4681 2538 4680 2538 4680 2537 4679 2537 4678 2537 4675 2538 4672 2537 4671 2537 4669 2539 4667 2539 4667 2540 4667 2540 4667 2540 4667 2540 4667 2540 4667 2541 4666 2544 4666 2544 4665 2544 4665 2544 4665 2544 4664 2544 4663 2544 4663 2544 4663 2544 4662 2545 4662 2546 4662 2546 4662 2546 4661 2546 4661 2547 4661 2547 4661 2547 4660 2546 4659 2546 4659 2546 4659 2546 4659 2546 4658 2546 4658 2546 4657 2547 4655 2546 4654 2546 4654 2546 4653 2546 4652 2545 4651 2545 4651 2546 4648 2546 4648 2546 4648 2546 4647 2546 4646 2546 4646 2546 4645 2547 4645 2548 4645 2548 4645 2548 4643 2548 4642 2549 4641 2549 4641 2549 4641 2549 4640 2549 4639 2548 4637 2546 4635 2544 4635 2544 4635 2544 4634 2544 4634 2543 4634 2543 4634 2543 4633 2543 4633 2543 4632 2542 4632 2542 4632 2541 4631 2540 4629 2539 4628 2538 4628 2538 4627 2537 4627 2537 4627 2537 4627 2535 4626 2534 4626 2534 4625 2534 4625 2534 4625 2533 4625 2532 4626 2530 4626 2529 4626 2530 4626 2531 4626 2531 4626 2532 4627 2532 4627 2532 4627 2533 4627 2533 4628 2533 4628 2533 4630 2535 4631 2535 4632 2536 4636 2535 4637 2534 4637 2534 4637 2534 4637 2534 4637 2534 4640 2536 4640 2537 4640 2537 4641 2537 4642 2537 4643 2538 4643 2538 4644 2538 4644 2538 4644 2539 4644 2539 4643 2539 4643 2539 4643 2539 4643 2539 4643 2539 4644 2539 4644 2539 4644 2539 4644 2539 4644 2539 4644 2538 4644 2538 4644 2538 4644 2538 4644 2538 4645 2537 4645 2537 4645 2538 4647 2538 4648 2539 4648 2539 4648 2539 4648 2540 4649 2540 4649 2540 4650 2541 4653 2541 4653 2541 4654 2541 4654 2541 4654 2541 4653 2540 4653 2540 4652 2540 4652 2540 4652 2540 4651 2540 4651 2540 4651 2540 4651 2540 4650 2540 4649 2539 4648 2538 4648 2538 4648 2538 4648 2537 4648 2537 4648 2536 4648 2536 4649 2536 4649 2536 4651 2532 4651 2531 4651 2530 4651 2529 4652 2529 4652 2529 4652 2529 4653 2529 4653 2529 4653 2529 4653 2529 4654 2528 4654 2528 4654 2528 4652 2528 4651 2528 4651 2528 4651 2526 4651 2525 4651 2524 4651 2524 4652 2524 4652 2524 4653 2524 4654 2525 4654 2525 4655 2525 4655 2524 4655 2524 4654 2523 4655 2521 4655 2520 4655 2520 4655 2519 4656 2519 4658 2517 4658 2517 4659 2517 4660 2517 4661 2517 4661 2517 4661 2517 4662 2517 4663 2516 4663 2516 4665 2516 4666 2516 4667 2516 4668 2515 4672 2514 4674 2514 4675 2514 4675 2514 4678 2513 4679 2513 4679 2513 4679 2512 4680 2512 4680 2512 4680 2512 4680 2512 4681 2512 4681 2511 4681 2511 4681 2511 4681 2511 4684 2507 4685 2506 4686 2504 4686 2504 4686 2504 4688 2502 4689 2501 4691 2500 4692 2499 4692 2498 4695 2495 4695 2495 4695 2494 4695 2493 4696 2492 4696 2492 4696 2491 4696 2491 4696 2491 4696 2491 4696 2490 4695 2490 4695 2490 4695 2490 4695 2489 4695 2489 4696 2489 4696 2489 4696 2489 4697 2489 4697 2489 4698 2489 4698 2489 4699 2489 4699 2490 4700 2490 4700 2490 4700 2491 4701 2492 4701 2493 4701 2493 4702 2495 4703 2495 4706 2498 4706 2498 4706 2498 4706 2498 4706 2498 4707 2498 4707 2498 4709 2497 4709 2496 4710 2493 4710 2492 4709 2492 4709 2491 4709 2491 4709 2491 4709 2489 4708 2487 4708 2487 4708 2487 4708 2487 4708 2487 4709 2486 4710 2486 4710 2486 4710 2486 4710 2486 4711 2486 4711 2485 4711 2485 4712 2485 4712 2484 4712 2485 4712 2486 4712 2487 4712 2487 4712 2488 4712 2488 4713 2492 4713 2492 4713 2493 4714 2493 4717 2494 4717 2494 4717 2494 4718 2493 4718 2493 4717 2493 4717 2493 4717 2492 4717 2492 4716 2492 4716 2492 4716 2491 4716 2490 4716 2490 4716 2489 4716 2489 4716 2489 4716 2489 4716 2488 4715 2486 4715 2485 4714 2484 4715 2483 4715 2483 4716 2484 4717 2484 4717 2484 4718 2484 4718 2484 4718 2484 4718 2484 4719 2483 4719 2483 4719 2482 4720 2482 4721 2482 4721 2482 4721 2481 4721 2481 4721 2481 4721 2480 4721 2479 4720 2479 4720 2479 4720 2479 4720 2479 4718 2478 4718 2477 4718 2477 4718 2476 4720 2474 4721 2474 4724 2474 4724 2474 4724 2474 4725 2474 4725 2474 4725 2474 4725 2474 4725 2473 4726 2473 4726 2472 4726 2472 4726 2471 4726 2471 4726 2471 4727 2471 4727 2470 4728 2470 4728 2470 4728 2469 4729 2469 4729 2469 4729 2468 4729 2467 4730 2465 4733 2461 4733 2460 4734 2460 4736 2459 4736 2459 4736 2459 4736 2458 4736 2458 4737 2457 4738 2456 4738 2456 4738 2455 4738 2455 4738 2455 4738 2455 4738 2455 4738 2454 4738 2453 4738 2453 4739 2451 4740 2451 4740 2450 4740 2450 4741 2451 4741 2452 4741 2452 4742 2454 4741 2454 4741 2454 4741 2455 4741 2455 4741 2455 4741 2455 4741 2455 4740 2456 4740 2456 4740 2457 4740 2457 4740 2457 4741 2457 4741 2457 4741 2457 4741 2457 4742 2457 4743 2455 4745 2453 4745 2453 4745 2453 4744 2453 4744 2452 4744 2452 4744 2452 4745 2451 4745 2451 4745 2451 4746 2451 4746 2451 4747 2451 4748 2452 4748 2452 4748 2452 4748 2453 4748 2453 4748 2454 4748 2456 4748 2456 4749 2457 4751 2458 4751 2458 4751 2458 4753 2458 4754 2458 4755 2459 4755 2460 4756 2460 4755 2462 4755 2462 4755 2463 4755 2463 4755 2463 4754 2463 4754 2463 4754 2463 4753 2464 4753 2464 4754 2465 4754 2465 4754 2465 4755 2467 4755 2467 4754 2467 4754 2467 4754 2468 4753 2468 4753 2468 4752 2468 4753 2468 4756 2468 4758 2468 4758 2467 4759 2467 4759 2466 4760 2466 4760 2466 4760 2466 4760 2466 4761 2467 4762 2469 4762 2469 4761 2470 4761 2470 4760 2470 4759 2470 4759 2470 4758 2470 4758 2470 4758 2471 4759 2472 4762 2472 4762 2470 4762 2470 4763 2470 4764 2469 4766 2470 4766 2470 4767 2470 4767 2470 4767 2470 4767 2471 4768 2471 4769 2472 4770 2472 4770 2473 4771 2473 4772 2474 4775 2476 4777 2476 4777 2476 4777 2476 4777 2476 4778 2476 4778 2476 4779 2476 4779 2476 4779 2476 4779 2476 4779 2476 4780 2476 4780 2477 4780 2477 4780 2477 4780 2479 4780 2479 4780 2480 4780 2480 4779 2480 4779 2480 4779 2481 4778 2481 4778 2481 4777 2482 4776 2482 4776 2482 4775 2482 4775 2482 4774 2482 4773 2483 4772 2483 4772 2483 4771 2483 4771 2484 4769 2483 4767 2483 4767 2482 4766 2482 4766 2482 4765 2482 4765 2482 4763 2483 4762 2484 4762 2485 4762 2485 4762 2485 4763 2487 4764 2488 4766 2489 M 4749 2456 4750 2456 4750 2456 4751 2456 4751 2456 4751 2455 4751 2455 4751 2455 4750 2455 4750 2455 4750 2455 4751 2455 4752 2455 4752 2455 4752 2456 4752 2456 4752 2456 4751 2456 4751 2457 4751 2457 4751 2457 4750 2457 4749 2456 4749 2456 4749 2456 4749 2456 M 4479 2481 4479 2480 4479 2480 4479 2480 4479 2478 4478 2474 4478 2474 4478 2474 4478 2473 4478 2472 4478 2472 4478 2470 4478 2469 4478 2468 4478 2467 4478 2467 4478 2466 4477 2465 4476 2463 4476 2463 4476 2463 4475 2463 4475 2462 4475 2462 4475 2462 4474 2460 4474 2460 4474 2460 4475 2459 4475 2457 4475 2457 4475 2457 4475 2456 4475 2455 4476 2455 4476 2455 4477 2455 4478 2457 4478 2457 4478 2458 4478 2458 4478 2458 4479 2458 4483 2460 4483 2459 4484 2459 4484 2459 4485 2460 4486 2462 4486 2462 4486 2462 4486 2463 4487 2463 4488 2462 4490 2463 4490 2464 4490 2465 4490 2466 4490 2467 4490 2468 4489 2468 4489 2468 4488 2470 4488 2470 4489 2471 4490 2473 4491 2472 4491 2472 4492 2472 4492 2471 4493 2470 4495 2469 4496 2469 4497 2468 4498 2468 4499 2469 4499 2470 4499 2470 4499 2470 4500 2470 4501 2470 4501 2471 4501 2471 4503 2469 4503 2468 4503 2468 4503 2467 4503 2467 4504 2466 4504 2466 4506 2464 4506 2463 4506 2463 4507 2464 4507 2463 4508 2463 4509 2464 4509 2464 4510 2464 4510 2465 4511 2466 4511 2466 4512 2468 4512 2469 4513 2469 4513 2469 4514 2470 4514 2470 4514 2470 4515 2471 4518 2473 4518 2474 4519 2474 4520 2474 4521 2475 4521 2475 4522 2476 4522 2477 4523 2478 4523 2479 4524 2479 4524 2480 4524 2480 4524 2481 4525 2481 4526 2483 4527 2485 4527 2486 4527 2489 4527 2491 4528 2492 4528 2493 4528 2493 4528 2494 4528 2494 4528 2495 4527 2496 4527 2496 4526 2497 4526 2497 4527 2498 4527 2498 4527 2499 4526 2501 4526 2503 4526 2504 4526 2505 4527 2505 4527 2506 4528 2506 4528 2507 4527 2507 4527 2508 4527 2508 4527 2509 4527 2509 4527 2510 4527 2510 4527 2510 4527 2511 4527 2512 4527 2512 4527 2513 4527 2514 4527 2515 4527 2516 4527 2516 4528 2517 4528 2517 4528 2518 4528 2518 4529 2519 4530 2519 4530 2520 4530 2520 4531 2520 4532 2520 4532 2521 4533 2521 4533 2522 4533 2523 4533 2523 4534 2524 4536 2527 4536 2528 4537 2530 4538 2531 4539 2534 4540 2535 4540 2536 4541 2540 4541 2541 4539 2541 4539 2541 4539 2541 4538 2541 4537 2539 4537 2538 4536 2536 4535 2536 4536 2537 4536 2538 4536 2538 4536 2539 4536 2540 4536 2540 4535 2540 4534 2539 4534 2539 4533 2539 4531 2539 4529 2541 4528 2542 4528 2542 4527 2541 4527 2541 4527 2539 4527 2539 4526 2538 4526 2538 4526 2538 4525 2537 4525 2537 4524 2537 4524 2537 4523 2537 4520 2535 4518 2533 4517 2533 4517 2533 4517 2533 4516 2533 4515 2533 4515 2533 4513 2530 4512 2529 4512 2529 4512 2529 4512 2529 4511 2529 4509 2528 4507 2527 4507 2527 4506 2526 4504 2525 4504 2524 4503 2524 4502 2523 4501 2521 4500 2521 4500 2521 4500 2521 4499 2521 4497 2520 4496 2520 4496 2519 4496 2519 4495 2518 4495 2518 4495 2518 4494 2517 4493 2517 4493 2517 4493 2516 4493 2516 4493 2515 4494 2515 4494 2515 4494 2514 4494 2514 4494 2513 4493 2513 4493 2511 4493 2511 4493 2511 4493 2510 4492 2509 4491 2509 4490 2507 4490 2507 4489 2506 4489 2506 4489 2505 4489 2505 4489 2505 4486 2503 4486 2502 4486 2502 4485 2502 4485 2502 4485 2501 4486 2501 4485 2501 4484 2501 4484 2501 4484 2501 4483 2500 4483 2500 4483 2499 4484 2499 4484 2499 4485 2499 4486 2498 4483 2496 4483 2496 4482 2496 4482 2495 4481 2494 4481 2493 4482 2492 4482 2489 4482 2487 4482 2486 4480 2484 4479 2484 4479 2483 4478 2482 4478 2481 4479 2481 M 4470 2459 4470 2460 4470 2460 4471 2460 4471 2460 4471 2461 4470 2462 4468 2463 4467 2461 4467 2461 4467 2461 4467 2460 4467 2460 4467 2460 4468 2460 4468 2460 4468 2460 4468 2460 4469 2460 4470 2459 M 4477 2476 4477 2476 4477 2477 4477 2477 4477 2479 4475 2478 4475 2478 4475 2476 4475 2475 4476 2475 4476 2475 4477 2475 4477 2475 4477 2475 4477 2476 M 4766 2488 4767 2488 4769 2488 4769 2488 4769 2489 4768 2489 4765 2488 4766 2488 M 4755 2496 4754 2495 4754 2495 4754 2495 4755 2494 4755 2494 4756 2494 4756 2495 4756 2495 4756 2495 4758 2496 4758 2496 4757 2496 4755 2496 4755 2496 M 4539 2517 4539 2517 4539 2517 4539 2517 4540 2518 4540 2518 4540 2519 4539 2519 4539 2519 4539 2519 4538 2519 4538 2519 4538 2518 4538 2518 4539 2516 4539 2517 4539 2517 M 4653 2523 4653 2521 4653 2520 4653 2519 4653 2519 4653 2518 4653 2518 4653 2518 4653 2518 4654 2518 4654 2519 4654 2519 4654 2520 4654 2520 4654 2521 4654 2522 4654 2523 4654 2523 4654 2523 4654 2524 4654 2524 4654 2525 4654 2525 4654 2525 4653 2523 4653 2523 4653 2523" />
+<path id="mz" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3403 2840 3403 2839 3402 2839 3402 2839 3402 2838 3402 2838 3402 2838 3402 2837 3402 2836 3401 2835 3401 2835 3400 2833 3400 2832 3401 2832 3401 2832 3401 2832 3401 2831 3401 2831 3402 2830 3402 2830 3402 2829 3401 2829 3399 2830 3398 2830 3398 2829 3397 2828 3395 2827 3393 2826 3392 2826 3392 2825 3391 2825 3390 2825 3390 2825 3389 2825 3387 2825 3387 2825 3386 2825 3385 2825 3385 2824 3383 2822 3382 2821 3381 2821 3379 2821 3379 2821 3378 2821 3377 2821 3377 2820 3376 2820 3376 2819 3375 2819 3375 2818 3373 2818 3371 2818 3367 2818 3361 2818 3361 2812 3361 2812 3361 2812 3360 2810 3360 2807 3359 2807 3359 2807 3359 2806 3358 2806 3358 2804 3358 2804 3358 2802 3360 2802 3362 2800 3363 2800 3364 2800 3367 2799 3369 2798 3371 2798 3372 2797 3372 2797 3375 2797 3378 2796 3378 2796 3378 2796 3379 2796 3381 2794 3382 2794 3383 2794 3383 2794 3383 2794 3384 2794 3384 2793 3385 2793 3388 2792 3390 2792 3392 2791 3392 2791 3402 2788 3406 2786 3406 2787 3407 2788 3408 2789 3409 2791 3411 2793 3412 2795 3413 2795 3414 2794 3416 2794 3420 2793 3424 2792 3424 2792 3425 2793 3425 2793 3425 2794 3426 2795 3426 2795 3426 2795 3427 2796 3427 2796 3427 2798 3427 2802 3427 2803 3427 2804 3427 2805 3427 2806 3427 2806 3428 2806 3427 2807 3427 2807 3427 2807 3426 2808 3425 2810 3425 2810 3425 2810 3425 2811 3425 2812 3425 2813 3424 2813 3424 2814 3423 2814 3423 2814 3423 2815 3422 2815 3422 2815 3422 2816 3422 2817 3423 2817 3423 2817 3423 2817 3425 2819 3425 2819 3425 2820 3425 2820 3425 2821 3425 2822 3425 2823 3426 2823 3426 2823 3426 2823 3427 2823 3427 2823 3428 2824 3429 2825 3430 2826 3430 2827 3431 2828 3434 2831 3434 2831 3435 2831 3435 2831 3436 2831 3436 2831 3436 2833 3436 2833 3436 2834 3435 2834 3435 2834 3435 2836 3436 2836 3438 2836 3439 2836 3439 2836 3439 2835 3439 2834 3439 2833 3439 2832 3439 2831 3438 2829 3438 2829 3438 2828 3437 2828 3437 2828 3437 2828 3436 2827 3437 2826 3438 2826 3438 2824 3438 2823 3439 2822 3441 2820 3441 2820 3442 2820 3443 2821 3445 2820 3446 2819 3447 2819 3447 2818 3447 2816 3448 2810 3448 2809 3448 2809 3448 2809 3448 2808 3447 2807 3447 2805 3448 2802 3449 2800 3448 2800 3448 2798 3448 2797 3448 2797 3447 2796 3443 2790 3442 2790 3442 2789 3442 2789 3437 2784 3437 2783 3436 2781 3432 2778 3432 2778 3431 2778 3429 2778 3427 2776 3427 2776 3427 2775 3427 2775 3427 2771 3427 2770 3427 2770 3427 2769 3427 2768 3427 2767 3427 2766 3426 2766 3426 2765 3426 2764 3426 2764 3425 2763 3425 2762 3425 2761 3425 2759 3424 2758 3424 2758 3424 2757 3424 2757 3424 2756 3425 2755 3426 2754 3426 2753 3427 2752 3428 2751 3428 2750 3428 2750 3428 2749 3428 2749 3428 2748 3428 2748 3428 2747 3429 2747 3432 2747 3433 2747 3433 2747 3434 2747 3438 2747 3441 2748 3443 2748 3444 2748 3445 2747 3446 2746 3447 2745 3449 2745 3453 2748 3453 2748 3453 2749 3453 2749 3454 2750 3455 2749 3455 2749 3456 2749 3458 2750 3459 2750 3461 2750 3462 2749 3462 2749 3462 2748 3463 2748 3463 2747 3466 2748 3468 2749 3469 2749 3470 2749 3472 2750 3474 2750 3476 2748 3477 2748 3479 2747 3479 2747 3479 2746 3479 2746 3479 2745 3480 2744 3480 2743 3481 2743 3481 2743 3482 2742 3483 2742 3485 2743 3487 2744 3488 2744 3488 2744 3489 2745 3490 2745 3490 2744 3491 2744 3492 2743 3492 2743 3493 2743 3496 2741 3497 2741 3500 2740 3501 2741 3501 2741 3502 2741 3502 2741 3503 2741 3503 2740 3504 2739 3506 2738 3506 2738 3509 2737 3509 2737 3510 2737 3511 2737 3511 2736 3511 2736 3512 2736 3512 2736 3513 2735 3513 2735 3514 2735 3516 2733 3519 2731 3520 2731 3521 2730 3521 2730 3521 2730 3522 2730 3523 2732 3523 2733 3523 2733 3522 2735 3523 2735 3524 2735 3524 2736 3524 2736 3523 2736 3522 2737 3522 2737 3522 2738 3522 2739 3522 2738 3523 2739 3523 2739 3522 2741 3521 2742 3521 2743 3520 2743 3522 2745 3521 2747 3521 2747 3521 2749 3521 2750 3521 2751 3522 2753 3522 2759 3522 2761 3521 2762 3522 2762 3523 2763 3524 2765 3524 2766 3524 2767 3522 2768 3522 2768 3521 2769 3521 2769 3520 2770 3521 2770 3522 2771 3522 2770 3522 2770 3522 2769 3523 2770 3523 2773 3523 2775 3523 2775 3523 2776 3523 2778 3522 2778 3523 2779 3523 2779 3523 2780 3523 2780 3523 2781 3524 2784 3524 2785 3524 2785 3524 2786 3524 2787 3524 2788 3523 2788 3523 2789 3522 2789 3523 2789 3523 2790 3524 2790 3524 2789 3525 2789 3525 2789 3525 2789 3526 2790 3526 2792 3525 2792 3524 2793 3524 2794 3525 2794 3525 2793 3525 2793 3526 2793 3527 2793 3527 2793 3527 2793 3527 2797 3527 2798 3527 2799 3527 2799 3526 2800 3526 2801 3526 2802 3525 2803 3524 2804 3523 2804 3522 2804 3522 2805 3522 2805 3523 2805 3524 2805 3524 2805 3525 2805 3525 2806 3525 2807 3523 2810 3523 2810 3523 2810 3523 2811 3522 2811 3521 2812 3520 2812 3520 2813 3520 2814 3519 2814 3518 2815 3516 2817 3516 2818 3516 2818 3515 2819 3514 2821 3514 2822 3513 2822 3512 2822 3512 2822 3511 2823 3510 2823 3511 2824 3511 2825 3509 2827 3509 2827 3506 2828 3505 2829 3503 2830 3502 2830 3501 2831 3500 2832 3500 2832 3500 2833 3499 2834 3496 2835 3495 2835 3493 2835 3492 2836 3488 2837 3487 2837 3486 2838 3485 2838 3485 2838 3483 2839 3483 2839 3482 2839 3481 2840 3481 2840 3481 2840 3480 2840 3480 2840 3478 2841 3476 2842 3473 2844 3469 2846 3467 2848 3467 2848 3467 2849 3466 2849 3466 2850 3466 2850 3465 2849 3465 2849 3464 2848 3464 2848 3464 2848 3463 2848 3464 2850 3465 2850 3466 2851 3465 2852 3464 2853 3462 2855 3460 2857 3458 2859 3458 2859 3457 2861 3456 2862 3455 2863 3454 2864 3453 2864 3452 2864 3452 2863 3452 2863 3452 2863 3452 2863 3451 2864 3450 2865 3448 2866 3447 2866 3446 2867 3445 2868 3445 2868 3444 2869 3443 2870 3441 2873 3440 2874 3439 2875 3436 2877 3432 2880 3432 2880 3431 2879 3431 2878 3428 2876 3428 2876 3428 2877 3429 2878 3430 2878 3430 2878 3430 2879 3430 2879 3430 2880 3430 2881 3430 2881 3430 2883 3430 2883 3430 2885 3429 2888 3429 2888 3430 2891 3432 2892 3433 2893 3434 2893 3434 2894 3434 2894 3434 2895 3435 2897 3436 2897 3436 2897 3436 2898 3435 2899 3435 2899 3435 2903 3436 2905 3437 2906 3437 2907 3438 2907 3438 2907 3438 2908 3438 2909 3438 2909 3438 2911 3439 2912 3439 2914 3439 2915 3439 2916 3439 2918 3439 2919 3439 2919 3439 2920 3439 2920 3440 2921 3440 2921 3441 2921 3440 2919 3440 2919 3440 2918 3440 2917 3441 2917 3441 2916 3442 2915 3443 2918 3443 2920 3443 2921 3443 2921 3442 2922 3442 2922 3442 2923 3442 2924 3442 2927 3442 2929 3443 2929 3444 2929 3443 2930 3443 2931 3443 2931 3442 2931 3442 2933 3442 2933 3442 2934 3442 2934 3442 2935 3442 2935 3441 2936 3441 2938 3441 2938 3441 2940 3441 2940 3440 2941 3439 2944 3439 2945 3440 2945 3441 2944 3442 2943 3442 2943 3442 2943 3443 2944 3442 2945 3442 2945 3442 2947 3442 2947 3442 2947 3441 2949 3440 2950 3440 2950 3439 2952 3439 2952 3438 2952 3437 2954 3437 2954 3436 2955 3436 2955 3436 2955 3435 2956 3435 2956 3434 2956 3434 2957 3431 2958 3429 2958 3428 2959 3428 2959 3426 2960 3425 2960 3424 2960 3423 2960 3423 2961 3422 2961 3420 2962 3418 2962 3414 2964 3408 2966 3406 2967 3406 2967 3404 2968 3404 2968 3403 2969 3401 2970 3400 2970 3399 2972 3398 2973 3398 2973 3398 2974 3398 2975 3397 2975 3397 2975 3397 2976 3397 2976 3396 2977 3396 2977 3395 2977 3396 2978 3398 2981 3399 2982 3400 2982 3400 2982 3400 2982 3400 2981 3400 2980 3401 2979 3401 2979 3401 2980 3401 2981 3401 2982 3401 2983 3401 2989 3400 2991 3400 2991 3398 2991 3397 2991 3392 2992 3392 2992 3389 2991 3389 2991 3388 2991 3388 2991 3388 2986 3388 2985 3387 2984 3387 2982 3388 2980 3387 2978 3386 2978 3386 2977 3385 2975 3386 2973 3386 2972 3386 2970 3386 2970 3386 2969 3386 2967 3386 2964 3386 2962 3386 2961 3386 2959 3386 2957 3386 2953 3386 2953 3386 2951 3385 2950 3384 2949 3384 2948 3384 2945 3384 2945 3384 2944 3382 2944 3382 2942 3381 2941 3381 2940 3381 2940 3381 2939 3380 2938 3379 2937 3379 2937 3379 2935 3379 2934 3379 2933 3378 2931 3375 2921 3375 2921 3375 2920 3376 2920 3377 2919 3381 2915 3385 2911 3393 2903 3393 2903 3394 2903 3394 2903 3394 2903 3393 2901 3392 2900 3392 2900 3394 2898 3394 2897 3394 2896 3394 2895 3394 2893 3394 2892 3395 2891 3397 2891 3399 2888 3400 2886 3400 2886 3400 2885 3401 2884 3402 2882 3402 2881 3403 2878 3402 2877 3400 2876 3400 2874 3400 2874 3399 2874 3399 2873 3399 2872 3400 2871 3400 2870 3400 2868 3399 2866 3399 2866 3398 2866 3398 2866 3397 2865 3397 2863 3399 2863 3399 2862 3400 2863 3400 2863 3401 2862 3401 2861 3401 2860 3400 2859 3400 2858 3401 2858 3401 2858 3402 2858 3402 2857 3403 2856 3403 2855 3402 2855 3402 2854 3402 2853 3402 2852 3402 2852 3402 2851 3401 2851 3401 2850 3401 2848 3402 2847 3402 2846 3403 2844 3403 2844 3403 2843 3402 2843 3401 2842 3403 2840 M 3430 2756 3430 2756 3430 2755 3430 2755 3429 2756 3430 2756 M 3428 2755 3428 2755 3428 2754 3428 2755 M 3512 2825 3511 2825 3511 2825 3511 2824 3511 2823 3511 2823 3511 2823 3512 2822 3512 2822 3512 2822 3513 2823 3512 2825 3512 2825 M 3441 2910 3441 2910 3441 2910 3441 2910 3441 2910 3441 2910 3441 2908 3442 2906 3442 2906 3442 2907 3442 2907 3442 2908 3442 2909 3441 2910" />
+<path id="nc" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5541 2920 5541 2920 5540 2919 5540 2919 5539 2919 5539 2920 5538 2920 5537 2919 5537 2918 5534 2918 5534 2919 5533 2918 5532 2917 5531 2917 5530 2916 5529 2915 5529 2914 5529 2913 5528 2913 5527 2913 5526 2913 5524 2911 5523 2910 5522 2909 5521 2910 5520 2910 5519 2909 5519 2909 5515 2907 5515 2907 5515 2907 5513 2905 5510 2903 5509 2902 5508 2901 5507 2899 5506 2899 5506 2899 5506 2899 5504 2897 5504 2897 5503 2896 5502 2896 5501 2894 5500 2893 5498 2891 5498 2891 5498 2891 5497 2890 5497 2889 5497 2888 5497 2888 5497 2887 5497 2887 5494 2884 5494 2884 5494 2883 5495 2883 5495 2884 5495 2884 5496 2885 5498 2886 5498 2887 5500 2887 5499 2886 5499 2886 5499 2886 5500 2886 5503 2887 5504 2888 5504 2888 5505 2889 5506 2890 5508 2891 5508 2892 5511 2893 5511 2894 5512 2894 5513 2894 5513 2894 5514 2894 5514 2895 5515 2895 5515 2896 5517 2899 5517 2899 5517 2900 5518 2900 5519 2900 5520 2901 5520 2901 5520 2902 5520 2902 5522 2903 5523 2903 5526 2904 5530 2908 5531 2908 5532 2909 5533 2910 5534 2910 5534 2910 5535 2911 5536 2912 5538 2914 5540 2914 5540 2914 5542 2915 5543 2918 5543 2918 5543 2919 5542 2919 5541 2920 5541 2920 M 5534 2893 5535 2893 5535 2892 5535 2892 5535 2892 5535 2891 5535 2891 5536 2890 5536 2890 5536 2890 5536 2889 5536 2889 5536 2888 5535 2889 5535 2888 5536 2888 5536 2888 5536 2888 5537 2889 5537 2889 5537 2889 5536 2890 5536 2890 5536 2890 5536 2891 5536 2891 5536 2891 5536 2892 5536 2892 5536 2892 5536 2893 5536 2893 5535 2893 5535 2893 5534 2893 5534 2893 M 5548 2901 5548 2901 5545 2899 5545 2899 5544 2899 5544 2899 5544 2899 5544 2898 5543 2898 5543 2898 5543 2897 5543 2897 5544 2897 5544 2897 5544 2896 5544 2896 5545 2896 5545 2896 5545 2895 5545 2895 5545 2895 5545 2894 5544 2894 5544 2894 5543 2894 5543 2894 5543 2894 5543 2893 5544 2893 5545 2893 5546 2893 5546 2893 5546 2893 5547 2893 5547 2894 5547 2894 5547 2894 5547 2895 5547 2896 5547 2897 5548 2897 5548 2897 5548 2897 5550 2899 5549 2900 5549 2901 5548 2901 5548 2901 M 5558 2908 5558 2908 5558 2908 5556 2907 5556 2906 5555 2904 5555 2904 5556 2904 5557 2904 5558 2904 5558 2904 5558 2904 5558 2905 5558 2905 5558 2905 5559 2905 5560 2905 5560 2906 5560 2908 5560 2908 5560 2908 5559 2908 5558 2908 M 5550 2925 5550 2925 5550 2925 5549 2924 5549 2923 5549 2923 5549 2923 5550 2923 5550 2923 5551 2923 5551 2924 5551 2924 5551 2924 5550 2925 5550 2925" />
+<path id="nu" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 161 2868 161 2868 160 2867 161 2866 161 2865 162 2865 162 2865 163 2865 163 2867 163 2867 163 2868 162 2868 162 2868 162 2868 161 2868" />
+<path id="nf" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5558 3027 5557 3027 5557 3026 5557 3026 5557 3026 5557 3026 5558 3026 5558 3027 5558 3027" />
+<path id="ne" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2987 2355 2986 2355 2984 2353 2983 2352 2982 2349 2980 2348 2978 2345 2977 2345 2975 2344 2975 2344 2975 2344 2973 2344 2971 2344 2970 2343 2969 2343 2966 2342 2965 2341 2964 2341 2963 2341 2961 2341 2960 2342 2959 2343 2958 2343 2955 2343 2954 2343 2953 2342 2949 2343 2947 2344 2943 2347 2941 2347 2941 2348 2941 2350 2941 2352 2941 2355 2940 2356 2938 2359 2937 2359 2933 2362 2933 2364 2934 2367 2933 2367 2933 2369 2934 2371 2934 2371 2933 2372 2933 2374 2934 2374 2934 2375 2933 2376 2932 2375 2932 2374 2931 2374 2930 2373 2929 2373 2929 2373 2928 2373 2928 2372 2927 2372 2927 2371 2927 2371 2926 2369 2923 2367 2921 2365 2920 2364 2919 2365 2918 2365 2918 2366 2917 2366 2916 2366 2913 2367 2913 2368 2913 2369 2913 2369 2913 2372 2913 2372 2913 2372 2912 2371 2908 2365 2908 2365 2910 2364 2911 2364 2911 2363 2910 2361 2910 2361 2909 2360 2909 2359 2907 2359 2906 2360 2905 2361 2900 2361 2896 2357 2893 2355 2891 2354 2891 2354 2891 2353 2891 2349 2891 2349 2891 2349 2892 2349 2892 2349 2893 2350 2894 2350 2895 2349 2895 2349 2894 2349 2894 2349 2893 2348 2891 2347 2891 2347 2891 2346 2891 2346 2888 2344 2885 2344 2885 2344 2883 2341 2882 2340 2881 2337 2881 2336 2882 2335 2881 2334 2880 2333 2880 2333 2879 2332 2878 2331 2878 2331 2879 2328 2879 2327 2878 2325 2878 2325 2879 2325 2879 2324 2879 2324 2879 2323 2879 2323 2880 2323 2881 2324 2882 2323 2883 2323 2885 2323 2885 2324 2886 2324 2887 2324 2887 2323 2890 2323 2891 2323 2891 2323 2892 2322 2896 2318 2905 2318 2907 2318 2915 2317 2917 2317 2921 2317 2923 2317 2923 2316 2923 2316 2928 2317 2931 2317 2931 2317 2931 2316 2932 2315 2935 2312 2935 2312 2936 2312 2936 2312 2937 2312 2937 2312 2937 2311 2937 2311 2938 2308 2939 2306 2940 2302 2940 2302 2941 2301 2941 2301 2942 2301 2942 2301 2942 2295 2942 2294 2942 2292 2943 2291 2943 2286 2943 2283 2943 2281 2943 2275 2943 2265 2943 2264 2943 2261 2943 2258 2943 2257 2945 2256 2947 2256 2953 2255 2960 2253 2964 2253 2965 2252 2967 2252 2968 2252 2970 2250 2971 2250 2976 2245 2978 2243 2981 2240 2986 2237 2994 2229 2997 2228 2998 2227 3001 2225 3004 2224 3012 2219 3014 2217 3019 2215 3026 2210 3031 2207 3037 2204 3040 2202 3045 2199 3047 2198 3048 2197 3052 2195 3062 2189 3063 2189 3066 2187 3067 2187 3071 2188 3072 2188 3073 2188 3074 2188 3076 2189 3081 2190 3084 2191 3088 2191 3089 2192 3089 2192 3090 2192 3091 2192 3092 2193 3092 2193 3092 2193 3097 2197 3102 2201 3104 2200 3105 2200 3107 2199 3112 2197 3112 2196 3114 2195 3115 2195 3115 2196 3115 2199 3117 2208 3118 2211 3118 2214 3118 2217 3118 2217 3118 2219 3118 2219 3119 2220 3123 2226 3124 2227 3124 2228 3124 2228 3124 2229 3123 2229 3123 2229 3123 2230 3124 2231 3124 2231 3125 2232 3125 2232 3131 2237 3130 2238 3129 2241 3127 2243 3127 2244 3126 2247 3126 2249 3125 2259 3124 2262 3124 2263 3124 2270 3124 2271 3124 2275 3123 2285 3122 2292 3122 2293 3122 2293 3122 2293 3120 2295 3118 2297 3117 2299 3113 2302 3108 2308 3105 2311 3103 2313 3102 2315 3100 2318 3099 2320 3096 2322 3095 2325 3095 2325 3095 2326 3095 2327 3095 2328 3094 2329 3094 2330 3093 2330 3093 2330 3093 2331 3092 2331 3091 2331 3091 2331 3091 2331 3090 2331 3090 2332 3090 2332 3092 2339 3092 2342 3093 2343 3088 2343 3087 2345 3086 2346 3085 2347 3084 2347 3084 2346 3083 2346 3081 2347 3081 2347 3079 2349 3079 2349 3077 2350 3076 2351 3076 2351 3076 2351 3075 2352 3075 2352 3075 2353 3074 2354 3074 2354 3073 2354 3069 2353 3067 2352 3065 2351 3064 2351 3059 2349 3059 2349 3058 2349 3058 2349 3057 2349 3056 2349 3055 2349 3055 2349 3054 2349 3053 2349 3053 2349 3052 2349 3052 2349 3051 2349 3051 2349 3050 2349 3050 2349 3049 2349 3049 2349 3048 2349 3047 2349 3047 2349 3046 2349 3045 2349 3044 2349 3043 2349 3042 2350 3042 2350 3041 2350 3040 2350 3040 2350 3038 2350 3038 2351 3037 2351 3035 2352 3034 2352 3034 2353 3033 2354 3030 2357 3029 2358 3029 2358 3026 2358 3023 2358 3021 2357 3020 2357 3019 2357 3019 2357 3019 2357 3016 2357 3013 2356 3013 2355 3013 2355 3013 2354 3012 2354 3011 2354 3011 2354 3010 2354 3010 2354 3009 2353 3008 2353 3007 2352 3007 2351 3006 2351 3005 2350 3005 2350 3003 2350 3000 2349 2993 2353 2992 2353 2990 2353 2989 2354 2988 2355 2987 2355" />
+<path id="vu" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5550 2785 5550 2784 5550 2784 5549 2784 5549 2783 5549 2782 5549 2782 5549 2782 5549 2782 5550 2781 5550 2781 5550 2782 5551 2782 5552 2784 5552 2784 5550 2785 5550 2785 M 5551 2791 5549 2791 5549 2791 5549 2790 5549 2789 5549 2789 5549 2789 5551 2789 5552 2789 5552 2789 5552 2790 5552 2790 5552 2790 5551 2791 5551 2791 5551 2791 5551 2791 5551 2791 M 5544 2804 5544 2804 5545 2805 5545 2806 5545 2806 5545 2807 5545 2808 5546 2809 5546 2810 5546 2810 5545 2810 5545 2810 5544 2812 5543 2811 5542 2811 5541 2811 5541 2811 5540 2812 5540 2813 5539 2813 5539 2813 5539 2812 5537 2809 5536 2808 5536 2808 5537 2807 5537 2806 5537 2806 5536 2802 5535 2800 5535 2800 5535 2799 5535 2798 5535 2797 5536 2796 5536 2797 5537 2798 5537 2798 5537 2799 5538 2799 5538 2799 5538 2800 5539 2801 5539 2803 5539 2803 5539 2804 5539 2804 5539 2805 5540 2805 5541 2805 5542 2804 5542 2803 5542 2802 5542 2801 5542 2801 5543 2801 5543 2801 5543 2803 5544 2804 5544 2804 M 5561 2808 5560 2808 5560 2803 5560 2801 5560 2801 5560 2801 5560 2801 5560 2801 5561 2801 5561 2806 5561 2806 5561 2806 5561 2808 5561 2808 5561 2808 M 5556 2810 5554 2810 5553 2809 5553 2809 5553 2809 5554 2808 5555 2807 5555 2807 5555 2807 5557 2807 5557 2807 5558 2807 5558 2807 5558 2807 5558 2807 5557 2809 5557 2809 5557 2809 5556 2810 5556 2810 M 5562 2818 5561 2818 5561 2816 5561 2815 5561 2815 5561 2815 5560 2814 5560 2814 5560 2813 5560 2812 5560 2812 5561 2810 5561 2810 5562 2811 5562 2811 5562 2811 5561 2812 5561 2812 5562 2814 5562 2814 5562 2814 5562 2815 5563 2816 5563 2816 5563 2817 5563 2817 5563 2818 5562 2818 5562 2818 5562 2818 M 5545 2814 5545 2814 5545 2814 5545 2814 5544 2814 5544 2813 5544 2813 5543 2813 5543 2813 5544 2812 5544 2812 5544 2812 5544 2812 5545 2812 5546 2812 5546 2812 5546 2813 5546 2814 5546 2814 5546 2814 5546 2814 5545 2814 M 5550 2828 5550 2827 5549 2827 5549 2827 5548 2824 5548 2822 5548 2821 5548 2820 5547 2820 5547 2820 5547 2820 5546 2821 5546 2821 5546 2821 5545 2820 5545 2820 5545 2819 5545 2819 5545 2819 5545 2817 5545 2816 5545 2816 5546 2816 5546 2816 5546 2816 5548 2817 5549 2818 5549 2819 5548 2819 5549 2820 5549 2820 5552 2822 5554 2823 5556 2825 5556 2825 5555 2827 5554 2827 5554 2826 5554 2826 5553 2826 5552 2826 5550 2828 M 5561 2824 5560 2824 5559 2823 5559 2823 5559 2823 5557 2822 5557 2822 5557 2822 5558 2821 5559 2821 5559 2821 5560 2821 5560 2820 5560 2820 5560 2820 5560 2820 5561 2820 5561 2819 5561 2820 5561 2820 5562 2821 5562 2822 5563 2822 5563 2822 5563 2823 5564 2823 5563 2823 5563 2823 5563 2824 5563 2824 5562 2824 5562 2824 5562 2824 5561 2824 5561 2824 M 5566 2832 5564 2831 5564 2831 5564 2831 5563 2831 5563 2831 5563 2831 5562 2831 5562 2831 5562 2831 5561 2831 5561 2831 5561 2830 5560 2829 5560 2829 5560 2829 5561 2827 5561 2827 5561 2828 5563 2829 5564 2830 5565 2831 5565 2830 5565 2830 5565 2830 5566 2830 5566 2831 5566 2832 5566 2832 M 5564 2847 5564 2847 5563 2845 5563 2845 5562 2845 5562 2845 5562 2845 5561 2846 5561 2846 5561 2846 5561 2846 5561 2845 5561 2844 5562 2843 5563 2843 5563 2843 5565 2843 5565 2843 5568 2845 5568 2845 5567 2847 5567 2847 5566 2847 5566 2847 5565 2847 5564 2847 M 5579 2866 5578 2866 5576 2865 5576 2865 5574 2864 5574 2864 5574 2864 5574 2861 5574 2861 5574 2860 5575 2860 5575 2860 5575 2860 5576 2860 5576 2860 5577 2860 5577 2861 5577 2862 5577 2863 5578 2863 5578 2863 5578 2863 5578 2863 5579 2864 5579 2864 5579 2864 5579 2864 5580 2864 5580 2865 5580 2865 5579 2865 5579 2866 5579 2866 M 5581 2876 5581 2876 5581 2876 5580 2876 5579 2875 5578 2874 5578 2874 5578 2874 5578 2873 5578 2872 5578 2871 5579 2871 5579 2871 5580 2871 5580 2871 5581 2874 5582 2874 5582 2874 5582 2875 5581 2876 M 5588 2886 5587 2886 5586 2886 5586 2885 5586 2885 5586 2885 5586 2884 5586 2884 5587 2884 5588 2884 5588 2884 5588 2884 5589 2885 5589 2885 5589 2885 5588 2886 5588 2886 5588 2886 5588 2886 5588 2886" />
+<path id="ng" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3063 2446 3063 2446 3063 2447 3065 2449 3064 2449 3063 2451 3062 2451 3061 2452 3060 2453 3060 2454 3060 2454 3060 2455 3060 2455 3060 2456 3059 2457 3058 2457 3058 2457 3057 2458 3057 2459 3057 2459 3056 2460 3055 2460 3054 2460 3054 2460 3053 2460 3052 2459 3052 2459 3052 2458 3052 2457 3052 2456 3052 2456 3052 2455 3051 2455 3051 2454 3050 2454 3050 2454 3049 2454 3049 2453 3049 2453 3049 2452 3048 2451 3048 2451 3046 2451 3045 2450 3044 2450 3043 2453 3039 2453 3038 2453 3038 2452 3038 2452 3038 2452 3038 2451 3038 2451 3037 2450 3036 2451 3033 2454 3031 2454 3031 2454 3031 2456 3030 2458 3029 2458 3029 2458 3028 2459 3027 2460 3026 2460 3026 2461 3026 2461 3025 2461 3025 2461 3024 2462 3022 2464 3020 2466 3018 2468 3018 2468 3017 2469 3016 2471 3017 2472 3017 2473 3017 2473 3017 2474 3017 2474 3017 2475 3016 2477 3016 2477 3016 2478 3016 2480 3016 2480 3014 2482 3014 2483 3013 2484 3013 2485 3013 2485 3013 2485 3012 2486 3012 2486 3012 2486 3012 2486 3011 2486 3011 2487 3011 2487 3011 2487 3011 2487 3010 2487 3009 2487 3008 2486 3007 2485 3007 2485 3007 2485 3007 2486 3008 2486 3008 2486 3009 2489 3007 2490 3007 2490 3005 2490 3003 2490 2999 2490 2998 2491 2998 2491 2998 2491 2996 2490 2995 2490 2995 2489 2995 2488 2996 2487 2996 2487 2995 2488 2995 2489 2995 2489 2995 2490 2994 2490 2991 2490 2991 2490 2990 2489 2988 2487 2988 2487 2988 2488 2989 2488 2989 2488 2990 2489 2990 2489 2990 2491 2989 2491 2988 2492 2987 2492 2987 2491 2987 2489 2987 2489 2987 2488 2987 2487 2986 2487 2985 2488 2985 2488 2986 2491 2987 2491 2987 2492 2987 2492 2987 2492 2987 2493 2986 2493 2985 2492 2984 2490 2983 2486 2984 2491 2984 2491 2984 2492 2984 2493 2984 2493 2984 2493 2983 2493 2982 2493 2982 2491 2982 2491 2982 2490 2983 2490 2983 2489 2983 2489 2981 2491 2981 2492 2982 2492 2982 2493 2981 2493 2980 2493 2979 2493 2977 2494 2976 2494 2975 2494 2975 2493 2975 2493 2976 2492 2975 2491 2975 2492 2974 2494 2974 2494 2973 2494 2972 2494 2970 2493 2969 2493 2967 2491 2966 2490 2964 2488 2964 2488 2964 2488 2963 2487 2963 2486 2963 2485 2962 2484 2961 2481 2961 2480 2962 2481 2962 2481 2962 2481 2963 2480 2962 2480 2962 2480 2961 2480 2961 2480 2960 2477 2962 2477 2963 2476 2965 2475 2965 2474 2964 2475 2963 2475 2963 2476 2963 2476 2962 2476 2961 2476 2959 2476 2958 2475 2958 2474 2958 2473 2959 2473 2960 2473 2961 2474 2963 2473 2963 2473 2962 2472 2961 2472 2958 2473 2957 2473 2956 2471 2956 2471 2955 2469 2954 2468 2953 2466 2951 2464 2950 2464 2947 2462 2947 2462 2946 2461 2946 2461 2946 2461 2945 2461 2945 2461 2944 2461 2944 2461 2940 2460 2939 2460 2938 2460 2936 2460 2935 2460 2934 2460 2932 2460 2931 2460 2930 2460 2930 2460 2929 2460 2930 2459 2931 2459 2932 2459 2935 2458 2937 2457 2936 2457 2935 2457 2934 2457 2933 2458 2931 2458 2931 2458 2931 2457 2930 2457 2929 2458 2929 2460 2929 2460 2928 2461 2925 2461 2924 2461 2924 2461 2923 2461 2922 2460 2922 2460 2921 2461 2921 2461 2918 2461 2918 2459 2919 2459 2919 2458 2919 2456 2919 2454 2919 2452 2919 2452 2919 2449 2919 2449 2919 2447 2919 2441 2919 2440 2919 2440 2919 2439 2919 2438 2919 2438 2918 2437 2918 2437 2918 2436 2918 2435 2919 2433 2919 2432 2919 2431 2919 2431 2918 2429 2919 2428 2919 2427 2919 2427 2919 2426 2919 2426 2919 2426 2919 2425 2919 2423 2919 2422 2919 2422 2919 2418 2920 2418 2920 2418 2921 2417 2922 2417 2923 2418 2924 2417 2925 2416 2926 2414 2926 2413 2925 2412 2925 2412 2926 2411 2928 2409 2929 2408 2929 2408 2928 2407 2928 2407 2928 2406 2929 2406 2931 2405 2931 2405 2932 2405 2933 2404 2934 2401 2934 2400 2934 2400 2933 2400 2932 2398 2933 2396 2934 2396 2935 2396 2935 2396 2936 2396 2936 2396 2937 2393 2936 2392 2936 2391 2935 2391 2935 2390 2935 2390 2935 2389 2935 2388 2935 2386 2935 2386 2935 2386 2935 2385 2934 2385 2934 2385 2933 2383 2931 2380 2931 2378 2932 2376 2933 2376 2934 2375 2934 2374 2933 2374 2933 2372 2934 2371 2934 2371 2933 2369 2933 2367 2934 2367 2933 2364 2933 2362 2937 2359 2938 2359 2940 2356 2941 2355 2941 2352 2941 2350 2941 2348 2941 2347 2943 2347 2947 2344 2949 2343 2953 2342 2954 2343 2955 2343 2958 2343 2959 2343 2960 2342 2961 2341 2963 2341 2964 2341 2965 2341 2966 2342 2969 2343 2970 2343 2971 2344 2973 2344 2975 2344 2975 2344 2975 2344 2977 2345 2978 2345 2980 2348 2982 2349 2983 2352 2984 2353 2986 2355 2987 2355 2988 2355 2989 2354 2990 2353 2992 2353 2993 2353 3000 2349 3003 2350 3005 2350 3005 2350 3006 2351 3007 2351 3007 2352 3008 2353 3009 2353 3010 2354 3010 2354 3011 2354 3011 2354 3012 2354 3013 2354 3013 2355 3013 2355 3013 2356 3016 2357 3019 2357 3019 2357 3019 2357 3020 2357 3021 2357 3023 2358 3026 2358 3029 2358 3029 2358 3030 2357 3033 2354 3034 2353 3034 2352 3035 2352 3037 2351 3038 2351 3038 2350 3040 2350 3040 2350 3041 2350 3042 2350 3042 2350 3043 2349 3044 2349 3045 2349 3046 2349 3047 2349 3047 2349 3048 2349 3049 2349 3049 2349 3050 2349 3050 2349 3051 2349 3051 2349 3052 2349 3052 2349 3053 2349 3053 2349 3054 2349 3055 2349 3055 2349 3056 2349 3057 2349 3058 2349 3058 2349 3059 2349 3059 2349 3064 2351 3065 2351 3067 2352 3069 2353 3073 2354 3074 2354 3074 2354 3075 2353 3075 2352 3075 2352 3076 2351 3076 2351 3076 2351 3077 2350 3079 2349 3079 2349 3081 2347 3081 2347 3083 2346 3084 2346 3084 2347 3085 2347 3086 2346 3087 2345 3088 2343 3093 2343 3093 2344 3095 2346 3097 2350 3100 2354 3100 2354 3100 2356 3101 2361 3102 2363 3102 2363 3102 2364 3101 2364 3102 2365 3104 2365 3105 2365 3105 2365 3106 2365 3106 2365 3107 2366 3107 2367 3109 2368 3109 2369 3109 2370 3109 2371 3109 2373 3108 2374 3108 2375 3108 2376 3109 2376 3109 2378 3108 2379 3106 2380 3106 2380 3105 2380 3105 2381 3104 2381 3102 2383 3102 2383 3101 2383 3100 2383 3100 2383 3099 2382 3098 2383 3097 2384 3096 2386 3095 2387 3095 2388 3094 2389 3094 2389 3094 2389 3093 2390 3093 2390 3093 2391 3092 2391 3092 2392 3092 2392 3092 2393 3091 2393 3091 2395 3090 2399 3090 2399 3090 2400 3090 2400 3089 2401 3089 2401 3088 2401 3087 2401 3087 2402 3087 2402 3086 2404 3086 2405 3087 2407 3087 2409 3086 2410 3086 2410 3085 2411 3084 2411 3084 2411 3083 2411 3082 2411 3081 2413 3080 2418 3080 2418 3080 2418 3080 2421 3080 2422 3079 2422 3078 2424 3076 2425 3075 2425 3075 2425 3074 2425 3073 2425 3073 2426 3073 2426 3073 2427 3073 2428 3072 2428 3072 2428 3071 2428 3071 2428 3071 2428 3071 2429 3070 2430 3071 2430 3071 2431 3071 2431 3071 2432 3071 2432 3070 2432 3070 2433 3070 2433 3070 2433 3070 2434 3070 2435 3069 2436 3069 2437 3068 2437 3068 2437 3068 2438 3068 2438 3068 2439 3067 2439 3067 2439 3067 2440 3067 2440 3067 2441 3067 2441 3065 2444 3065 2444 3064 2444 3064 2445 3063 2446 M 2990 2493 2989 2493 2989 2493 2989 2492 2990 2490 2991 2490 2991 2491 2992 2491 2992 2492 2992 2492 2990 2492 2990 2493 2990 2493" />
+<path id="nl" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2942 1739 2942 1738 2942 1738 2941 1738 2941 1738 2941 1738 2941 1738 2940 1738 2940 1738 2939 1738 2938 1738 2937 1738 2935 1737 2934 1737 2934 1737 2934 1737 2934 1736 2935 1736 2936 1736 2936 1736 2937 1736 2938 1736 2939 1737 2940 1737 2941 1737 2941 1737 2941 1737 2942 1737 2941 1737 2940 1736 2939 1735 2939 1735 2938 1735 2937 1735 2937 1735 2939 1734 2939 1735 2940 1734 2939 1732 2940 1732 2940 1732 2941 1732 2941 1732 2945 1729 2945 1729 2946 1728 2946 1728 2947 1727 2947 1726 2948 1726 2948 1725 2948 1725 2949 1725 2950 1725 2952 1725 2953 1726 2953 1726 2954 1726 2955 1726 2957 1727 2959 1727 2960 1727 2960 1728 2960 1728 2961 1728 2961 1728 2962 1728 2963 1728 2964 1727 2964 1727 2964 1727 2965 1726 2966 1726 2966 1726 2967 1726 2967 1725 2968 1725 2968 1725 2969 1724 2969 1724 2968 1723 2969 1722 2967 1722 2966 1722 2964 1721 2964 1720 2965 1719 2965 1719 2966 1719 2966 1719 2965 1718 2964 1719 2961 1718 2961 1718 2961 1717 2962 1717 2961 1715 2961 1715 2960 1715 2960 1715 2959 1715 2958 1716 2956 1717 2956 1718 2957 1719 2958 1720 2958 1720 2959 1720 2960 1721 2959 1721 2959 1721 2958 1722 2958 1722 2957 1722 2957 1722 2956 1722 2955 1722 2956 1723 2956 1723 2956 1724 2956 1725 2956 1725 2956 1726 2955 1726 2954 1726 2953 1725 2952 1725 2950 1725 2950 1725 2948 1724 2948 1724 2949 1722 2949 1722 2949 1721 2949 1720 2951 1717 2951 1717 2952 1717 2952 1717 2952 1717 2953 1718 2953 1718 2954 1718 2956 1717 2958 1716 2958 1716 2958 1715 2959 1715 2960 1715 2960 1715 2961 1715 2961 1714 2961 1714 2961 1714 2961 1713 2962 1713 2962 1712 2964 1711 2964 1711 2969 1710 2971 1710 2972 1709 2974 1709 2974 1709 2974 1709 2976 1710 2978 1709 2982 1709 2982 1709 2983 1709 2983 1709 2985 1709 2985 1710 2986 1711 2988 1712 2990 1712 2990 1712 2990 1713 2990 1716 2990 1717 2990 1717 2989 1718 2988 1719 2988 1719 2988 1719 2988 1720 2988 1720 2988 1722 2987 1722 2985 1722 2983 1722 2982 1722 2982 1722 2982 1722 2983 1723 2982 1723 2982 1723 2982 1724 2983 1725 2986 1725 2987 1725 2988 1726 2988 1726 2988 1727 2987 1727 2987 1728 2988 1728 2987 1728 2986 1729 2985 1729 2985 1730 2985 1730 2983 1730 2983 1731 2982 1731 2984 1732 2984 1732 2983 1733 2983 1733 2982 1734 2982 1733 2980 1734 2979 1734 2978 1734 2976 1734 2974 1734 2973 1734 2971 1735 2970 1735 2971 1736 2970 1736 2971 1737 2972 1738 2973 1739 2973 1739 2974 1740 2974 1740 2974 1742 2973 1743 2972 1744 2972 1744 2972 1745 2972 1746 2971 1747 2969 1747 2969 1747 2969 1748 2969 1748 2970 1748 2971 1748 2972 1749 2972 1750 2972 1750 2971 1750 2971 1751 2971 1752 2970 1752 2969 1752 2969 1752 2968 1752 2967 1752 2966 1752 2966 1752 2966 1751 2966 1751 2966 1751 2966 1751 2965 1751 2965 1750 2965 1750 2967 1749 2967 1748 2967 1748 2968 1746 2968 1745 2967 1745 2965 1745 2964 1744 2964 1744 2963 1743 2962 1743 2961 1744 2960 1744 2959 1744 2959 1743 2958 1743 2957 1743 2957 1743 2956 1742 2956 1741 2956 1740 2955 1740 2955 1740 2955 1741 2954 1741 2953 1741 2952 1741 2952 1740 2952 1740 2952 1740 2951 1740 2950 1740 2950 1741 2949 1741 2948 1741 2948 1741 2948 1740 2947 1740 2945 1741 2945 1741 2946 1742 2946 1742 2945 1742 2945 1742 2945 1742 2943 1742 2943 1742 2942 1741 2940 1741 2938 1741 2937 1742 2936 1742 2932 1741 2932 1741 2930 1739 2930 1739 2931 1739 2931 1739 2932 1738 2934 1738 2936 1738 2937 1738 2937 1739 2937 1739 2936 1739 2936 1739 2937 1739 2937 1739 2938 1739 2939 1740 2940 1740 2940 1740 2940 1740 2941 1741 2941 1741 2941 1741 2943 1741 2943 1741 2943 1741 2944 1740 2943 1740 2943 1740 2943 1740 2942 1740 2940 1739 2939 1738 2940 1738 2940 1738 2942 1738 2942 1738 2942 1739 M 2958 1710 2958 1710 2958 1710 2958 1710 2958 1710 2958 1710 2959 1710 2963 1709 2964 1709 2964 1709 2964 1709 2964 1709 2961 1710 2960 1710 2958 1710 2958 1710 M 2951 1716 2951 1716 2950 1716 2950 1716 2950 1716 2950 1715 2950 1715 2950 1715 2951 1715 2953 1713 2953 1713 2953 1713 2953 1714 2953 1714 2953 1715 2953 1715 2953 1715 2952 1716 2951 1716 2951 1716 2951 1716 M 2957 1724 2956 1724 2956 1723 2956 1723 2955 1722 2956 1722 2957 1722 2957 1722 2957 1722 2958 1722 2959 1722 2959 1721 2960 1721 2960 1721 2961 1721 2962 1722 2962 1722 2963 1723 2962 1723 2962 1723 2962 1724 2962 1724 2961 1724 2960 1725 2958 1725 2957 1726 2957 1726 2956 1726 2956 1725 2956 1725 2956 1725 2957 1725 2957 1724 M 2965 1726 2964 1726 2964 1726 2964 1727 2963 1727 2962 1728 2961 1728 2961 1727 2960 1727 2960 1727 2959 1727 2959 1727 2958 1727 2958 1727 2957 1726 2957 1726 2958 1726 2958 1725 2960 1725 2961 1724 2961 1724 2962 1724 2962 1724 2962 1723 2964 1723 2965 1722 2968 1723 2969 1723 2968 1724 2968 1725 2968 1725 2967 1725 2966 1725 2966 1725 2965 1726 2965 1726 M 2929 1742 2929 1742 2931 1741 2932 1741 2933 1742 2935 1742 2935 1742 2937 1742 2938 1742 2942 1742 2943 1742 2942 1743 2942 1743 2941 1743 2940 1744 2938 1744 2937 1745 2936 1744 2936 1744 2934 1743 2932 1743 2931 1743 2931 1744 2930 1744 2930 1744 2929 1744 2929 1744 2929 1743 2929 1742" />
+<path id="no" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3284 1430 3283 1430 3283 1430 3283 1430 3281 1429 3281 1429 3281 1429 3283 1428 3283 1428 3283 1428 3283 1428 3283 1428 3282 1428 3281 1428 3281 1428 3280 1428 3280 1428 3279 1428 3279 1428 3279 1428 3279 1427 3280 1427 3281 1427 3282 1427 3284 1427 3284 1427 3285 1426 3287 1426 3287 1426 3287 1427 3288 1427 3288 1427 3289 1427 3289 1427 3290 1427 3290 1427 3290 1427 3291 1427 3291 1427 3291 1427 3291 1427 3291 1427 3290 1427 3290 1428 3289 1428 3289 1428 3289 1428 3290 1429 3291 1429 3291 1429 3291 1428 3292 1428 3292 1428 3292 1428 3292 1428 3293 1428 3293 1428 3293 1428 3293 1428 3294 1428 3294 1428 3293 1428 3293 1428 3292 1429 3291 1429 3289 1429 3289 1429 3288 1429 3286 1429 3284 1430 3284 1430 3284 1430 3284 1430 M 3054 1535 3055 1535 3056 1534 3058 1533 3058 1532 3059 1532 3059 1531 3060 1531 3060 1532 3061 1531 3062 1531 3062 1531 3060 1531 3059 1531 3059 1531 3058 1531 3058 1531 3057 1530 3057 1529 3058 1529 3060 1528 3060 1528 3061 1528 3061 1528 3062 1528 3063 1528 3064 1528 3063 1527 3063 1527 3062 1527 3061 1527 3061 1527 3062 1526 3066 1525 3068 1525 3068 1525 3069 1525 3069 1525 3070 1525 3070 1525 3069 1525 3069 1525 3068 1525 3067 1525 3065 1525 3065 1525 3063 1526 3058 1528 3057 1528 3056 1528 3056 1529 3055 1529 3055 1528 3057 1527 3056 1527 3054 1527 3055 1527 3057 1527 3058 1527 3058 1527 3059 1526 3062 1526 3061 1526 3061 1526 3056 1527 3055 1527 3056 1526 3056 1526 3058 1526 3059 1525 3061 1525 3062 1525 3062 1525 3063 1525 3064 1524 3065 1524 3066 1523 3066 1523 3066 1523 3067 1523 3067 1523 3067 1524 3067 1524 3067 1523 3069 1524 3071 1523 3073 1523 3077 1522 3082 1519 3080 1520 3078 1521 3077 1521 3074 1522 3073 1522 3073 1522 3073 1521 3075 1520 3077 1520 3077 1520 3077 1520 3074 1520 3073 1520 3072 1520 3071 1521 3071 1521 3072 1520 3074 1519 3075 1518 3075 1518 3074 1517 3075 1517 3076 1518 3077 1518 3076 1517 3076 1516 3075 1516 3075 1516 3074 1516 3073 1516 3073 1516 3072 1515 3072 1514 3074 1513 3075 1513 3075 1513 3076 1513 3076 1514 3077 1514 3079 1514 3079 1514 3077 1513 3076 1513 3076 1512 3076 1511 3077 1510 3077 1510 3078 1509 3079 1509 3079 1509 3080 1509 3080 1509 3081 1509 3081 1509 3084 1510 3085 1511 3085 1510 3085 1509 3084 1509 3082 1509 3082 1509 3081 1509 3082 1508 3081 1507 3081 1508 3079 1508 3078 1508 3077 1507 3080 1506 3081 1506 3081 1506 3082 1506 3082 1506 3084 1506 3085 1506 3086 1505 3087 1505 3087 1505 3088 1505 3092 1505 3092 1505 3091 1505 3091 1507 3091 1507 3092 1505 3093 1505 3094 1505 3095 1505 3095 1505 3096 1505 3096 1505 3097 1505 3099 1504 3101 1503 3100 1503 3098 1504 3095 1504 3094 1504 3093 1505 3093 1505 3092 1504 3090 1504 3089 1504 3086 1505 3085 1505 3085 1505 3084 1506 3083 1505 3086 1504 3088 1504 3089 1504 3090 1504 3091 1503 3090 1503 3088 1503 3087 1504 3086 1504 3086 1504 3085 1504 3083 1503 3083 1503 3083 1503 3083 1503 3084 1502 3085 1502 3085 1501 3084 1500 3083 1500 3082 1500 3084 1500 3084 1500 3085 1500 3086 1500 3087 1500 3090 1499 3090 1499 3091 1499 3092 1499 3093 1499 3093 1499 3094 1499 3093 1499 3091 1499 3090 1499 3090 1499 3089 1499 3087 1500 3086 1500 3086 1499 3085 1498 3086 1498 3089 1498 3090 1498 3091 1498 3091 1498 3090 1498 3089 1497 3088 1497 3087 1497 3086 1497 3087 1497 3089 1497 3091 1497 3091 1497 3092 1497 3094 1497 3096 1497 3097 1497 3094 1497 3094 1497 3093 1497 3092 1497 3092 1497 3091 1496 3092 1496 3092 1496 3093 1496 3094 1496 3093 1496 3092 1496 3092 1496 3091 1496 3091 1496 3092 1496 3092 1495 3095 1496 3098 1496 3098 1496 3097 1496 3096 1496 3096 1496 3094 1495 3091 1494 3091 1494 3092 1493 3092 1493 3095 1493 3097 1494 3098 1494 3101 1493 3102 1493 3102 1493 3103 1492 3103 1492 3105 1491 3107 1492 3107 1492 3108 1492 3108 1492 3105 1491 3105 1491 3103 1491 3103 1491 3104 1490 3104 1490 3106 1490 3108 1490 3109 1490 3110 1490 3110 1490 3110 1490 3111 1490 3110 1490 3110 1490 3108 1490 3107 1490 3107 1489 3108 1489 3111 1489 3114 1489 3113 1490 3113 1490 3114 1491 3115 1491 3114 1490 3114 1490 3114 1490 3114 1490 3115 1489 3116 1489 3119 1489 3120 1490 3121 1490 3121 1490 3121 1491 3122 1491 3122 1491 3122 1490 3121 1489 3121 1489 3122 1489 3123 1489 3124 1489 3124 1489 3126 1490 3126 1490 3126 1489 3121 1489 3119 1489 3119 1489 3118 1489 3118 1489 3116 1488 3116 1488 3117 1488 3117 1487 3115 1488 3112 1488 3112 1488 3110 1489 3110 1489 3109 1489 3109 1489 3107 1488 3104 1489 3106 1488 3108 1487 3108 1486 3109 1486 3109 1486 3111 1486 3111 1486 3112 1486 3113 1486 3113 1486 3113 1485 3112 1485 3110 1485 3112 1484 3113 1483 3114 1483 3115 1483 3116 1483 3117 1484 3115 1485 3114 1485 3114 1485 3114 1485 3115 1485 3115 1485 3116 1484 3120 1485 3121 1485 3122 1485 3122 1485 3123 1486 3124 1487 3125 1488 3125 1488 3126 1488 3124 1487 3123 1486 3123 1485 3123 1485 3124 1484 3124 1484 3126 1484 3127 1484 3127 1484 3128 1484 3129 1483 3128 1483 3126 1483 3126 1484 3125 1484 3125 1484 3124 1484 3123 1484 3120 1484 3119 1484 3118 1484 3117 1482 3119 1481 3120 1481 3122 1481 3123 1482 3125 1482 3124 1481 3124 1481 3123 1481 3123 1481 3122 1481 3121 1481 3122 1481 3123 1481 3124 1481 3124 1481 3125 1481 3127 1481 3127 1482 3128 1482 3127 1481 3126 1480 3125 1480 3124 1480 3121 1480 3117 1481 3116 1481 3115 1482 3113 1482 3112 1482 3112 1482 3111 1482 3110 1482 3111 1481 3113 1481 3114 1481 3115 1481 3115 1480 3114 1480 3112 1480 3112 1480 3111 1480 3111 1480 3111 1479 3115 1479 3115 1479 3116 1479 3116 1479 3115 1479 3115 1479 3114 1479 3113 1479 3113 1479 3112 1479 3113 1478 3114 1478 3114 1478 3115 1478 3117 1478 3118 1478 3119 1479 3120 1478 3123 1478 3126 1477 3126 1477 3127 1477 3127 1477 3128 1478 3128 1478 3129 1477 3130 1477 3130 1476 3128 1476 3127 1476 3127 1476 3125 1476 3124 1476 3123 1476 3122 1476 3122 1476 3121 1477 3120 1476 3119 1476 3120 1475 3121 1475 3122 1474 3123 1475 3124 1475 3124 1474 3125 1474 3126 1474 3126 1475 3126 1475 3125 1475 3125 1476 3125 1476 3128 1475 3129 1475 3129 1474 3129 1473 3130 1473 3131 1473 3131 1473 3132 1474 3132 1475 3134 1477 3134 1477 3134 1478 3134 1478 3137 1479 3137 1479 3138 1480 3138 1480 3139 1480 3138 1479 3137 1479 3137 1479 3136 1478 3135 1478 3134 1476 3134 1476 3136 1476 3137 1477 3137 1477 3138 1477 3138 1477 3139 1477 3138 1476 3137 1476 3137 1476 3136 1476 3137 1475 3138 1475 3139 1475 3139 1475 3141 1476 3142 1475 3139 1475 3139 1475 3138 1475 3137 1475 3136 1475 3135 1475 3135 1474 3137 1474 3138 1473 3138 1473 3137 1473 3136 1473 3136 1473 3135 1473 3134 1473 3134 1473 3133 1473 3133 1473 3134 1473 3135 1473 3136 1473 3135 1472 3135 1472 3132 1472 3133 1471 3133 1471 3139 1472 3139 1473 3140 1473 3141 1474 3142 1474 3143 1474 3143 1474 3142 1474 3141 1473 3140 1473 3138 1472 3137 1472 3134 1471 3134 1471 3135 1471 3136 1471 3139 1470 3140 1470 3142 1470 3142 1470 3144 1470 3145 1471 3144 1471 3144 1471 3145 1471 3146 1471 3147 1471 3147 1471 3149 1471 3149 1471 3152 1472 3152 1473 3152 1474 3152 1474 3153 1473 3153 1472 3152 1472 3152 1472 3151 1472 3150 1471 3150 1470 3151 1470 3152 1470 3153 1470 3153 1470 3154 1471 3155 1471 3156 1471 3155 1470 3154 1470 3152 1470 3153 1470 3154 1470 3156 1470 3156 1469 3155 1468 3155 1468 3152 1468 3152 1469 3151 1469 3151 1469 3150 1469 3149 1469 3148 1469 3147 1469 3147 1469 3147 1469 3148 1469 3148 1469 3147 1468 3146 1468 3146 1469 3145 1469 3144 1469 3144 1469 3141 1469 3139 1469 3139 1469 3138 1468 3139 1468 3140 1468 3140 1468 3141 1468 3140 1467 3140 1467 3140 1467 3141 1466 3143 1466 3144 1466 3146 1465 3149 1465 3151 1465 3152 1465 3153 1465 3153 1466 3153 1466 3154 1466 3157 1466 3157 1466 3156 1465 3155 1465 3154 1465 3151 1465 3150 1464 3153 1463 3154 1463 3154 1463 3155 1464 3156 1464 3159 1464 3159 1464 3159 1464 3158 1464 3158 1464 3157 1464 3157 1464 3154 1463 3154 1463 3157 1462 3158 1462 3158 1462 3159 1462 3160 1463 3160 1462 3158 1462 3157 1462 3157 1462 3156 1462 3155 1462 3154 1462 3154 1462 3153 1462 3154 1461 3157 1459 3158 1459 3158 1459 3161 1458 3164 1458 3165 1458 3163 1457 3162 1457 3162 1456 3163 1456 3163 1455 3164 1455 3165 1455 3165 1454 3165 1454 3165 1454 3166 1453 3167 1453 3167 1453 3167 1453 3168 1453 3170 1454 3171 1455 3171 1456 3174 1456 3174 1456 3173 1456 3175 1455 3176 1455 3177 1455 3178 1456 3178 1456 3179 1456 3178 1455 3177 1455 3176 1455 3175 1455 3175 1455 3173 1455 3173 1454 3172 1454 3170 1453 3170 1452 3170 1452 3173 1452 3176 1452 3177 1453 3179 1454 3180 1455 3180 1455 3181 1455 3181 1455 3182 1455 3183 1455 3184 1455 3184 1455 3184 1455 3184 1456 3184 1456 3183 1456 3182 1456 3181 1456 3183 1457 3184 1457 3186 1457 3186 1456 3186 1455 3185 1455 3184 1454 3183 1454 3183 1454 3182 1454 3181 1454 3180 1454 3178 1453 3179 1452 3180 1452 3181 1452 3182 1452 3182 1452 3182 1452 3182 1451 3182 1451 3180 1452 3179 1452 3179 1452 3178 1452 3178 1451 3178 1451 3178 1451 3178 1450 3180 1449 3181 1449 3182 1448 3183 1448 3190 1447 3190 1447 3191 1448 3191 1448 3190 1449 3189 1450 3190 1450 3190 1451 3190 1451 3188 1452 3187 1454 3189 1454 3190 1453 3190 1452 3192 1449 3193 1448 3194 1448 3195 1448 3196 1447 3197 1445 3199 1445 3199 1445 3201 1446 3201 1446 3201 1447 3200 1448 3200 1449 3200 1450 3199 1451 3199 1453 3199 1453 3197 1454 3197 1454 3196 1454 3195 1455 3195 1455 3194 1455 3193 1456 3194 1456 3195 1455 3197 1455 3198 1454 3199 1454 3200 1453 3200 1453 3202 1451 3202 1451 3203 1451 3203 1452 3204 1452 3206 1452 3208 1453 3208 1452 3205 1452 3203 1451 3202 1450 3203 1448 3204 1448 3206 1448 3207 1448 3207 1448 3208 1447 3207 1447 3209 1446 3211 1445 3212 1445 3211 1446 3211 1446 3211 1446 3210 1446 3209 1447 3210 1447 3210 1448 3211 1448 3213 1447 3214 1445 3214 1444 3215 1444 3216 1444 3216 1444 3217 1444 3217 1444 3219 1445 3220 1445 3220 1446 3220 1446 3221 1446 3222 1446 3222 1446 3223 1446 3225 1447 3225 1448 3226 1448 3226 1449 3227 1449 3227 1449 3228 1449 3227 1447 3225 1445 3223 1444 3224 1444 3225 1444 3226 1444 3227 1443 3228 1443 3227 1443 3226 1443 3226 1443 3222 1444 3222 1444 3218 1443 3217 1442 3216 1442 3215 1442 3215 1442 3214 1441 3214 1441 3215 1441 3219 1440 3220 1440 3220 1440 3222 1441 3223 1441 3224 1440 3226 1439 3229 1440 3230 1440 3231 1440 3231 1440 3231 1442 3232 1442 3235 1442 3235 1442 3234 1442 3233 1442 3232 1442 3232 1440 3233 1440 3235 1440 3236 1441 3237 1441 3240 1441 3241 1441 3242 1441 3242 1441 3241 1442 3240 1443 3239 1443 3238 1443 3235 1443 3235 1443 3234 1443 3233 1443 3233 1443 3232 1444 3231 1444 3231 1444 3232 1444 3233 1444 3234 1443 3234 1443 3235 1443 3236 1443 3237 1443 3239 1443 3240 1443 3242 1443 3243 1444 3245 1445 3247 1445 3250 1445 3251 1444 3251 1444 3250 1444 3249 1444 3249 1444 3248 1444 3248 1444 3247 1444 3246 1444 3245 1443 3247 1443 3248 1443 3248 1442 3248 1441 3248 1441 3248 1441 3251 1441 3250 1440 3249 1440 3249 1440 3250 1439 3252 1438 3253 1438 3253 1438 3255 1437 3256 1437 3257 1436 3258 1436 3259 1436 3262 1437 3263 1437 3263 1437 3263 1437 3264 1437 3262 1436 3262 1436 3261 1435 3263 1434 3264 1434 3264 1433 3266 1434 3266 1434 3268 1435 3269 1435 3269 1435 3270 1435 3270 1434 3270 1434 3270 1434 3267 1433 3267 1433 3266 1433 3265 1432 3262 1432 3263 1431 3265 1431 3265 1431 3266 1431 3268 1432 3268 1432 3269 1432 3268 1431 3268 1430 3268 1429 3269 1429 3270 1429 3271 1429 3272 1430 3272 1430 3274 1430 3274 1429 3274 1429 3274 1429 3275 1429 3275 1429 3277 1430 3278 1430 3278 1431 3278 1431 3279 1431 3280 1431 3281 1430 3280 1430 3280 1430 3280 1429 3280 1429 3281 1429 3281 1429 3282 1429 3283 1430 3283 1430 3284 1430 3288 1430 3289 1430 3289 1431 3288 1431 3287 1432 3285 1432 3285 1433 3284 1433 3283 1434 3280 1435 3278 1436 3276 1436 3277 1436 3277 1436 3278 1437 3279 1438 3279 1438 3278 1438 3277 1438 3277 1438 3276 1439 3276 1439 3276 1439 3276 1440 3275 1441 3274 1441 3274 1441 3273 1442 3273 1443 3274 1443 3274 1443 3275 1443 3275 1443 3275 1443 3275 1442 3276 1442 3276 1442 3276 1443 3276 1443 3277 1443 3278 1443 3278 1443 3281 1441 3283 1440 3283 1440 3282 1440 3282 1439 3281 1439 3282 1439 3282 1438 3284 1438 3287 1436 3290 1435 3290 1435 3291 1434 3294 1432 3296 1431 3296 1431 3299 1430 3299 1430 3299 1429 3301 1429 3302 1430 3302 1430 3301 1433 3301 1433 3301 1433 3300 1433 3300 1433 3299 1433 3299 1434 3298 1434 3298 1434 3296 1434 3296 1434 3297 1434 3297 1434 3298 1434 3299 1434 3301 1434 3300 1436 3299 1436 3298 1438 3298 1439 3299 1439 3299 1439 3300 1438 3302 1438 3303 1437 3303 1437 3304 1437 3305 1437 3306 1437 3307 1437 3306 1436 3306 1435 3306 1435 3307 1435 3308 1435 3310 1435 3310 1435 3310 1435 3310 1435 3309 1434 3308 1433 3308 1433 3310 1432 3311 1432 3311 1431 3312 1431 3313 1431 3314 1432 3315 1432 3314 1431 3314 1430 3312 1430 3311 1430 3311 1430 3310 1430 3309 1430 3308 1430 3308 1429 3310 1428 3310 1428 3314 1428 3315 1427 3315 1427 3317 1427 3318 1427 3319 1428 3320 1428 3322 1428 3322 1427 3323 1427 3326 1427 3326 1427 3326 1427 3326 1428 3328 1428 3328 1428 3330 1429 3330 1429 3331 1429 3331 1429 3331 1430 3329 1431 3328 1431 3326 1432 3326 1432 3324 1432 3322 1432 3319 1432 3319 1432 3319 1432 3320 1432 3321 1432 3324 1433 3324 1433 3323 1433 3320 1434 3317 1435 3318 1435 3318 1435 3319 1435 3320 1435 3324 1434 3325 1434 3325 1433 3326 1433 3327 1433 3327 1433 3327 1434 3326 1435 3326 1435 3325 1435 3325 1435 3324 1435 3322 1436 3322 1436 3321 1436 3321 1436 3320 1437 3320 1437 3320 1437 3321 1437 3322 1437 3323 1437 3324 1437 3325 1436 3325 1436 3324 1437 3324 1437 3324 1437 3323 1437 3324 1437 3325 1437 3325 1437 3326 1436 3327 1436 3327 1436 3327 1437 3326 1437 3325 1438 3325 1438 3325 1439 3325 1441 3325 1441 3325 1442 3325 1442 3324 1443 3324 1443 3324 1443 3323 1443 3323 1443 3324 1443 3324 1443 3325 1443 3325 1442 3326 1442 3326 1442 3325 1441 3325 1440 3326 1438 3328 1437 3330 1434 3330 1434 3331 1433 3331 1433 3334 1431 3335 1431 3335 1430 3336 1430 3336 1430 3337 1430 3339 1430 3342 1431 3343 1432 3344 1433 3344 1434 3347 1433 3348 1433 3349 1433 3349 1433 3351 1433 3351 1433 3351 1434 3350 1434 3350 1434 3349 1434 3351 1434 3352 1434 3352 1434 3353 1433 3354 1433 3354 1433 3355 1433 3356 1433 3357 1434 3360 1435 3359 1435 3358 1436 3355 1436 3354 1436 3355 1436 3356 1436 3357 1436 3358 1436 3359 1436 3359 1436 3360 1436 3360 1436 3361 1436 3361 1436 3362 1436 3364 1436 3364 1437 3367 1438 3369 1437 3370 1438 3371 1439 3371 1440 3369 1440 3368 1440 3366 1440 3363 1441 3360 1442 3360 1442 3360 1442 3359 1443 3356 1443 3356 1443 3353 1443 3353 1443 3352 1443 3351 1443 3351 1443 3346 1443 3342 1443 3339 1442 3335 1442 3334 1442 3333 1442 3333 1442 3332 1442 3332 1442 3333 1442 3333 1442 3334 1442 3333 1442 3333 1443 3332 1443 3336 1443 3338 1444 3341 1444 3342 1444 3344 1444 3347 1445 3348 1445 3349 1445 3348 1446 3347 1446 3346 1446 3345 1446 3344 1447 3345 1447 3345 1447 3346 1446 3347 1446 3350 1446 3350 1446 3351 1447 3350 1448 3349 1448 3348 1448 3346 1450 3347 1450 3347 1450 3347 1449 3349 1449 3349 1449 3350 1449 3353 1448 3355 1449 3356 1449 3357 1449 3356 1449 3356 1448 3357 1448 3357 1448 3357 1447 3357 1446 3359 1446 3359 1446 3361 1447 3361 1448 3361 1449 3361 1449 3360 1450 3360 1450 3361 1450 3361 1450 3362 1449 3361 1448 3361 1447 3363 1447 3364 1447 3364 1447 3366 1448 3367 1448 3368 1448 3369 1449 3369 1449 3369 1450 3369 1451 3369 1451 3369 1452 3368 1452 3367 1452 3367 1452 3366 1452 3363 1452 3362 1452 3361 1451 3360 1451 3360 1451 3360 1451 3359 1450 3357 1450 3357 1450 3356 1450 3356 1450 3355 1450 3356 1450 3356 1450 3357 1451 3356 1452 3355 1453 3353 1454 3349 1454 3348 1455 3347 1455 3347 1455 3346 1455 3345 1455 3343 1455 3343 1456 3343 1456 3343 1457 3343 1457 3342 1459 3342 1459 3341 1459 3341 1459 3340 1460 3340 1460 3339 1460 3339 1460 3338 1460 3338 1460 3336 1459 3336 1459 3335 1459 3335 1459 3335 1458 3335 1458 3335 1457 3335 1457 3337 1456 3337 1456 3338 1455 3339 1455 3339 1455 3340 1454 3342 1453 3343 1453 3343 1453 3341 1450 3340 1449 3340 1449 3338 1449 3337 1449 3337 1449 3334 1448 3333 1448 3329 1447 3328 1447 3328 1447 3328 1446 3327 1446 3327 1446 3326 1446 3325 1446 3325 1446 3324 1445 3322 1444 3322 1444 3322 1444 3321 1443 3321 1443 3320 1443 3316 1443 3315 1443 3313 1444 3311 1445 3311 1445 3311 1445 3310 1446 3307 1446 3307 1446 3305 1446 3304 1445 3303 1445 3300 1445 3298 1445 3297 1446 3297 1446 3297 1447 3296 1447 3293 1448 3293 1449 3292 1449 3292 1449 3290 1449 3290 1449 3290 1449 3289 1450 3290 1450 3290 1451 3290 1451 3288 1453 3288 1454 3287 1455 3287 1455 3286 1455 3286 1455 3286 1456 3286 1457 3286 1459 3287 1460 3286 1461 3285 1461 3285 1462 3285 1462 3285 1462 3284 1462 3284 1462 3283 1462 3282 1462 3282 1462 3281 1462 3281 1462 3280 1462 3280 1462 3278 1463 3278 1463 3277 1464 3277 1464 3277 1464 3276 1466 3276 1466 3276 1466 3273 1467 3272 1467 3272 1467 3271 1466 3271 1466 3270 1466 3269 1466 3268 1465 3268 1465 3267 1465 3266 1465 3265 1465 3264 1465 3262 1464 3260 1464 3260 1464 3259 1463 3259 1463 3258 1463 3257 1463 3256 1463 3256 1463 3255 1464 3255 1464 3254 1465 3254 1465 3253 1465 3252 1465 3251 1465 3250 1465 3249 1466 3248 1466 3247 1466 3247 1466 3245 1466 3245 1466 3245 1466 3244 1466 3243 1465 3240 1465 3239 1465 3235 1465 3234 1465 3233 1465 3232 1464 3232 1463 3231 1462 3230 1461 3227 1460 3226 1459 3221 1456 3216 1455 3211 1457 3211 1457 3211 1458 3211 1458 3212 1458 3212 1459 3212 1460 3211 1460 3211 1460 3210 1460 3209 1459 3208 1459 3207 1459 3206 1459 3206 1459 3205 1459 3204 1459 3204 1459 3203 1460 3196 1460 3198 1461 3199 1462 3200 1464 3199 1464 3198 1465 3198 1466 3197 1466 3195 1467 3194 1468 3196 1468 3198 1469 3197 1469 3196 1470 3195 1470 3195 1470 3194 1471 3194 1471 3193 1471 3193 1471 3192 1471 3190 1470 3187 1470 3185 1470 3178 1469 3172 1469 3168 1468 3165 1468 3164 1468 3164 1468 3163 1469 3163 1470 3164 1471 3164 1471 3164 1472 3165 1474 3165 1474 3162 1476 3161 1477 3160 1477 3160 1477 3159 1477 3158 1477 3157 1476 3157 1476 3156 1476 3151 1475 3151 1475 3150 1475 3150 1476 3142 1478 3141 1479 3140 1481 3140 1481 3140 1482 3139 1483 3137 1484 3137 1484 3134 1484 3132 1486 3132 1486 3133 1486 3133 1487 3134 1487 3135 1487 3136 1488 3136 1489 3137 1490 3136 1492 3131 1494 3126 1497 3125 1499 3123 1499 3120 1501 3121 1501 3121 1502 3122 1503 3122 1504 3115 1506 3114 1506 3110 1506 3107 1506 3107 1507 3107 1508 3108 1509 3108 1509 3108 1510 3109 1511 3109 1512 3108 1512 3108 1512 3108 1513 3107 1513 3107 1515 3107 1516 3107 1517 3107 1518 3106 1519 3105 1520 3104 1521 3104 1522 3104 1522 3104 1522 3103 1523 3102 1524 3100 1525 3098 1527 3097 1528 3096 1529 3094 1530 3094 1530 3093 1531 3093 1531 3096 1532 3097 1532 3099 1532 3100 1533 3101 1535 3101 1537 3098 1540 3087 1539 3086 1539 3086 1539 3085 1539 3083 1539 3082 1539 3082 1539 3080 1540 3079 1540 3078 1541 3077 1541 3075 1542 3074 1543 3072 1545 3069 1547 3070 1548 3070 1548 3069 1549 3068 1550 3067 1551 3066 1552 3067 1553 3067 1553 3069 1556 3069 1556 3069 1556 3068 1557 3068 1558 3067 1558 3067 1559 3068 1559 3068 1560 3068 1561 3067 1562 3067 1563 3068 1564 3069 1565 3070 1565 3070 1566 3071 1567 3071 1567 3071 1567 3071 1568 3071 1568 3071 1570 3070 1572 3070 1573 3070 1574 3069 1574 3069 1575 3069 1577 3069 1577 3073 1579 3074 1579 3074 1579 3075 1579 3079 1582 3080 1582 3080 1583 3079 1584 3079 1585 3077 1587 3077 1587 3077 1587 3076 1587 3076 1587 3075 1587 3074 1587 3074 1587 3073 1587 3073 1587 3071 1588 3071 1588 3070 1588 3070 1589 3071 1589 3072 1590 3072 1591 3072 1591 3072 1592 3073 1592 3073 1593 3075 1594 3076 1596 3076 1597 3076 1597 3076 1598 3076 1598 3075 1599 3075 1601 3075 1601 3075 1602 3075 1602 3074 1603 3072 1605 3070 1606 3069 1606 3069 1606 3068 1606 3067 1606 3067 1606 3066 1606 3065 1606 3064 1606 3064 1607 3065 1607 3065 1608 3065 1608 3065 1608 3065 1609 3064 1610 3063 1610 3061 1611 3063 1613 3063 1615 3063 1615 3063 1616 3063 1616 3063 1617 3063 1617 3063 1617 3063 1618 3063 1619 3061 1622 3060 1622 3060 1622 3059 1622 3058 1622 3058 1622 3057 1621 3058 1620 3058 1620 3057 1619 3056 1618 3055 1618 3054 1618 3052 1618 3051 1618 3050 1618 3049 1618 3047 1617 3047 1617 3045 1614 3045 1613 3046 1613 3046 1612 3045 1612 3045 1612 3045 1611 3045 1610 3045 1610 3044 1609 3044 1608 3044 1607 3045 1606 3045 1607 3046 1607 3047 1607 3047 1607 3047 1606 3046 1606 3045 1606 3045 1606 3044 1606 3044 1606 3043 1606 3043 1606 3042 1607 3042 1607 3043 1608 3043 1608 3043 1608 3043 1609 3044 1609 3044 1610 3044 1610 3044 1611 3044 1611 3044 1611 3043 1612 3042 1612 3042 1612 3041 1612 3042 1611 3041 1609 3041 1609 3039 1608 3038 1608 3039 1609 3040 1609 3040 1609 3041 1610 3041 1611 3041 1612 3040 1612 3039 1611 3039 1611 3039 1612 3040 1613 3041 1613 3042 1613 3043 1615 3042 1616 3042 1616 3041 1616 3040 1617 3038 1620 3037 1620 3037 1620 3037 1619 3035 1620 3035 1620 3034 1621 3033 1621 3032 1621 3032 1620 3032 1620 3032 1620 3031 1620 3029 1618 3028 1618 3029 1619 3030 1620 3030 1620 3028 1621 3027 1622 3025 1623 3024 1624 3024 1624 3022 1626 3020 1626 3019 1626 3019 1627 3018 1627 3016 1628 3016 1629 3015 1629 3014 1629 3014 1629 3014 1630 3011 1632 3009 1632 3007 1633 3007 1633 3006 1634 3005 1634 3005 1635 3002 1635 3000 1635 2997 1635 2997 1636 2996 1636 2995 1636 2995 1636 2993 1636 2991 1636 2990 1635 2989 1635 2988 1636 2988 1636 2987 1636 2986 1635 2985 1635 2983 1634 2983 1634 2982 1635 2980 1635 2980 1635 2980 1634 2980 1634 2981 1633 2982 1633 2983 1632 2981 1632 2977 1632 2976 1632 2975 1631 2974 1631 2973 1631 2971 1630 2971 1630 2970 1630 2970 1629 2970 1629 2970 1629 2969 1629 2968 1629 2967 1628 2967 1628 2965 1627 2965 1627 2963 1625 2962 1624 2963 1623 2964 1622 2964 1622 2964 1621 2963 1620 2964 1620 2966 1621 2966 1621 2967 1621 2968 1621 2968 1621 2968 1621 2969 1621 2970 1621 2971 1622 2972 1622 2973 1623 2973 1623 2974 1623 2974 1623 2974 1623 2974 1623 2973 1623 2972 1622 2972 1622 2972 1622 2972 1621 2973 1621 2974 1620 2974 1620 2975 1620 2977 1620 2979 1620 2980 1619 2981 1619 2979 1619 2977 1620 2977 1620 2974 1620 2973 1620 2973 1620 2972 1621 2971 1622 2970 1621 2970 1620 2970 1620 2969 1619 2969 1619 2969 1619 2970 1618 2971 1618 2972 1617 2973 1616 2974 1616 2976 1615 2976 1615 2977 1615 2977 1615 2978 1615 2978 1615 2977 1615 2977 1615 2976 1615 2975 1615 2975 1616 2973 1616 2971 1615 2971 1614 2972 1614 2972 1614 2974 1613 2975 1612 2977 1612 2978 1611 2978 1611 2978 1611 2978 1611 2975 1611 2974 1612 2974 1613 2973 1613 2973 1613 2973 1613 2972 1614 2970 1614 2969 1614 2969 1613 2969 1613 2970 1613 2971 1613 2973 1612 2973 1612 2969 1613 2968 1613 2966 1613 2966 1614 2966 1613 2967 1613 2967 1613 2968 1613 2969 1614 2968 1615 2966 1615 2965 1615 2965 1615 2964 1614 2964 1614 2964 1615 2963 1616 2963 1616 2963 1616 2962 1616 2961 1615 2959 1615 2958 1613 2958 1612 2958 1612 2960 1610 2962 1609 2963 1609 2963 1609 2963 1609 2963 1610 2962 1611 2962 1612 2963 1612 2963 1611 2963 1611 2963 1611 2963 1610 2964 1610 2964 1609 2966 1609 2967 1609 2968 1609 2969 1608 2970 1608 2972 1608 2976 1607 2974 1607 2973 1607 2973 1607 2973 1608 2972 1608 2971 1608 2968 1608 2968 1608 2966 1607 2966 1606 2967 1606 2967 1605 2968 1605 2969 1605 2969 1605 2970 1605 2971 1605 2970 1604 2971 1604 2971 1603 2971 1603 2973 1602 2972 1601 2974 1599 2976 1598 2978 1598 2979 1597 2979 1597 2980 1597 2981 1597 2981 1598 2981 1598 2980 1599 2979 1600 2979 1602 2979 1602 2979 1603 2979 1602 2979 1602 2979 1602 2980 1600 2981 1599 2981 1598 2983 1597 2983 1597 2984 1597 2984 1597 2986 1596 2986 1596 2987 1597 2988 1597 2988 1597 2988 1596 2986 1596 2986 1595 2987 1595 2986 1595 2986 1595 2985 1595 2985 1596 2985 1596 2984 1596 2982 1597 2981 1597 2981 1597 2980 1597 2980 1597 2978 1597 2977 1597 2976 1598 2976 1598 2975 1598 2975 1598 2974 1598 2974 1599 2973 1600 2973 1600 2971 1600 2969 1602 2969 1603 2969 1604 2968 1604 2967 1604 2967 1604 2966 1604 2966 1603 2965 1602 2965 1602 2964 1602 2964 1602 2965 1599 2966 1598 2966 1598 2966 1598 2965 1598 2964 1600 2962 1601 2961 1602 2961 1602 2961 1602 2960 1601 2958 1601 2960 1600 2957 1600 2957 1598 2958 1598 2959 1597 2959 1597 2959 1596 2959 1596 2960 1596 2960 1596 2961 1596 2961 1597 2962 1597 2963 1597 2963 1598 2965 1598 2965 1598 2966 1597 2966 1596 2966 1593 2966 1593 2965 1593 2965 1593 2964 1593 2963 1594 2961 1595 2960 1595 2959 1595 2959 1595 2958 1595 2956 1594 2957 1594 2958 1594 2958 1594 2957 1593 2957 1593 2956 1593 2955 1592 2954 1591 2955 1591 2956 1592 2958 1592 2959 1593 2960 1593 2960 1594 2961 1594 2962 1594 2962 1594 2961 1593 2961 1593 2960 1592 2959 1592 2959 1592 2960 1591 2961 1590 2962 1590 2962 1590 2963 1590 2963 1590 2962 1590 2960 1590 2960 1591 2960 1591 2959 1591 2957 1591 2957 1591 2957 1591 2957 1591 2956 1591 2956 1591 2955 1589 2955 1588 2955 1588 2956 1587 2957 1587 2957 1587 2958 1587 2959 1587 2959 1588 2960 1588 2962 1588 2962 1588 2963 1587 2965 1587 2966 1587 2968 1587 2968 1586 2970 1586 2973 1586 2975 1587 2975 1587 2976 1587 2977 1587 2977 1587 2979 1587 2980 1586 2981 1586 2984 1586 2984 1586 2986 1587 2987 1588 2989 1590 2989 1590 2988 1590 2989 1590 2989 1590 2989 1590 2989 1590 2989 1589 2988 1589 2988 1589 2987 1588 2987 1587 2987 1587 2988 1587 2988 1587 2990 1586 2992 1586 2994 1585 2993 1585 2993 1585 2992 1585 2992 1584 2993 1582 2994 1581 2994 1581 2995 1581 2996 1581 2994 1581 2994 1581 2992 1582 2992 1582 2991 1583 2991 1584 2992 1584 2992 1585 2991 1586 2989 1586 2986 1586 2986 1586 2986 1586 2985 1586 2984 1585 2984 1585 2983 1585 2982 1585 2980 1585 2980 1585 2980 1584 2981 1584 2981 1584 2982 1583 2982 1582 2980 1584 2979 1584 2979 1585 2979 1586 2978 1586 2976 1586 2976 1586 2975 1586 2970 1586 2967 1586 2964 1586 2963 1586 2963 1587 2962 1587 2961 1587 2961 1587 2960 1587 2959 1586 2957 1586 2957 1586 2956 1586 2956 1585 2957 1585 2958 1585 2958 1586 2958 1586 2959 1585 2958 1585 2957 1585 2957 1585 2956 1585 2955 1585 2955 1585 2954 1584 2958 1583 2961 1582 2962 1582 2963 1582 2963 1582 2964 1582 2965 1582 2964 1582 2962 1582 2961 1582 2959 1582 2958 1583 2957 1583 2957 1583 2956 1583 2956 1583 2955 1583 2954 1582 2954 1581 2956 1581 2958 1581 2960 1581 2963 1581 2965 1581 2967 1581 2968 1581 2967 1581 2967 1580 2966 1580 2966 1580 2965 1580 2965 1580 2964 1581 2964 1581 2962 1581 2958 1580 2957 1580 2957 1579 2959 1579 2959 1579 2959 1579 2958 1579 2957 1579 2958 1579 2959 1579 2960 1579 2959 1579 2960 1579 2960 1579 2960 1579 2960 1579 2959 1579 2959 1578 2958 1578 2957 1578 2959 1578 2958 1578 2957 1578 2955 1578 2954 1578 2954 1577 2954 1577 2955 1576 2956 1576 2959 1575 2961 1574 2962 1574 2964 1574 2966 1574 2966 1574 2967 1575 2971 1575 2972 1575 2975 1575 2975 1575 2976 1575 2976 1575 2976 1575 2977 1575 2978 1575 2979 1575 2980 1575 2980 1575 2980 1574 2981 1574 2981 1574 2982 1574 2982 1574 2983 1574 2983 1574 2982 1574 2981 1574 2980 1574 2980 1574 2980 1574 2979 1574 2979 1575 2978 1575 2977 1575 2976 1575 2974 1575 2970 1574 2969 1574 2968 1575 2967 1574 2966 1574 2967 1574 2968 1574 2968 1574 2969 1574 2968 1574 2967 1574 2963 1573 2962 1573 2961 1573 2960 1574 2959 1574 2957 1574 2957 1574 2957 1573 2958 1573 2958 1573 2961 1572 2959 1571 2958 1571 2958 1571 2957 1571 2956 1570 2956 1570 2956 1569 2957 1569 2958 1569 2959 1569 2962 1571 2962 1572 2962 1572 2962 1572 2963 1572 2964 1571 2963 1571 2962 1571 2962 1571 2961 1570 2962 1569 2962 1569 2963 1569 2966 1569 2968 1569 2969 1569 2969 1569 2970 1570 2970 1570 2970 1571 2972 1571 2975 1571 2976 1571 2977 1571 2975 1571 2974 1571 2973 1571 2972 1571 2970 1569 2970 1568 2970 1568 2971 1567 2972 1567 2976 1566 2976 1566 2978 1568 2980 1570 2980 1570 2979 1570 2980 1570 2980 1570 2979 1568 2978 1568 2978 1567 2977 1567 2977 1566 2978 1566 2982 1565 2985 1566 2985 1566 2985 1567 2986 1567 2986 1568 2987 1568 2987 1568 2987 1569 2987 1570 2986 1570 2986 1570 2986 1571 2987 1571 2987 1571 2987 1571 2988 1571 2988 1571 2988 1571 2987 1571 2987 1571 2987 1571 2986 1570 2987 1570 2987 1570 2987 1569 2987 1569 2987 1568 2988 1568 2992 1568 2992 1568 2993 1568 2993 1569 2993 1569 2993 1568 2993 1568 2992 1568 2992 1568 2991 1568 2991 1568 2990 1568 2990 1568 2986 1567 2986 1566 2986 1566 2985 1566 2984 1565 2983 1565 2982 1565 2981 1565 2980 1565 2979 1565 2977 1566 2975 1565 2977 1564 2978 1564 2979 1564 2980 1564 2981 1564 2981 1564 2981 1564 2980 1564 2979 1564 2978 1564 2976 1564 2975 1564 2975 1563 2976 1563 2976 1563 2980 1562 2980 1563 2982 1562 2983 1562 2983 1562 2986 1562 2988 1562 2993 1563 2995 1564 2995 1564 2996 1563 2998 1563 2999 1563 2998 1563 2996 1563 2996 1563 2996 1563 2995 1563 2995 1563 2994 1563 2994 1563 2993 1563 2993 1562 2995 1562 2996 1561 2997 1561 2999 1561 3000 1561 3001 1561 3003 1560 3004 1561 3005 1561 3005 1561 3005 1561 3004 1560 3003 1560 2998 1561 2997 1561 2996 1561 2995 1561 2995 1561 2993 1561 2993 1561 2994 1560 2995 1560 2995 1560 2996 1560 2997 1560 2998 1560 2997 1560 2997 1560 2994 1560 2994 1560 2993 1560 2992 1560 2990 1560 2986 1561 2986 1561 2986 1559 2987 1559 2986 1558 2986 1557 2987 1557 2988 1557 2989 1556 2991 1556 2992 1556 2993 1557 2994 1558 2994 1558 2995 1558 2996 1557 2996 1557 2997 1557 2998 1557 2998 1557 2999 1557 2999 1557 2999 1557 2998 1557 2998 1558 2998 1558 3001 1557 3002 1557 3002 1557 3003 1557 3003 1557 3004 1557 3004 1557 3005 1558 3005 1559 3006 1559 3006 1560 3007 1560 3008 1560 3011 1561 3011 1561 3011 1561 3012 1562 3012 1561 3012 1561 3008 1559 3008 1559 3007 1559 3006 1559 3006 1558 3005 1557 3003 1556 3002 1556 3002 1556 3001 1556 3001 1556 3002 1555 3003 1555 3004 1555 3004 1555 3005 1555 3005 1555 3008 1557 3008 1558 3008 1558 3011 1559 3011 1559 3011 1558 3009 1557 3010 1557 3010 1557 3011 1557 3012 1557 3012 1557 3013 1557 3011 1557 3010 1557 3009 1557 3006 1556 3005 1554 3007 1554 3008 1554 3011 1554 3012 1554 3012 1554 3013 1553 3014 1553 3015 1553 3016 1553 3018 1553 3017 1553 3016 1553 3013 1553 3010 1552 3011 1551 3012 1551 3013 1551 3013 1551 3014 1551 3015 1551 3014 1551 3013 1550 3014 1550 3015 1550 3015 1550 3018 1549 3019 1549 3020 1549 3021 1550 3021 1550 3022 1551 3025 1550 3025 1550 3026 1550 3025 1550 3022 1550 3021 1550 3021 1548 3023 1548 3024 1548 3025 1548 3026 1547 3027 1547 3027 1547 3029 1546 3030 1546 3034 1549 3034 1550 3034 1551 3035 1551 3037 1551 3039 1552 3039 1552 3039 1551 3039 1551 3038 1551 3037 1551 3037 1551 3036 1550 3035 1550 3036 1550 3036 1549 3037 1549 3037 1549 3039 1549 3040 1549 3042 1549 3043 1549 3044 1549 3044 1549 3047 1549 3048 1549 3049 1549 3049 1549 3049 1549 3048 1549 3047 1549 3047 1548 3047 1548 3048 1548 3049 1548 3049 1547 3049 1547 3049 1547 3046 1547 3046 1548 3045 1548 3046 1547 3047 1546 3049 1545 3050 1545 3051 1545 3052 1545 3053 1545 3054 1545 3054 1544 3055 1544 3055 1544 3056 1544 3057 1544 3058 1544 3058 1543 3055 1542 3055 1542 3054 1542 3054 1543 3053 1543 3052 1543 3052 1542 3055 1541 3056 1541 3057 1541 3058 1540 3057 1540 3056 1540 3056 1539 3056 1538 3054 1540 3054 1540 3054 1540 3053 1540 3052 1541 3052 1541 3051 1541 3050 1541 3049 1542 3048 1542 3047 1542 3046 1542 3046 1543 3044 1543 3045 1543 3047 1543 3048 1542 3049 1542 3051 1542 3052 1543 3050 1544 3049 1545 3049 1545 3048 1545 3048 1545 3045 1546 3045 1546 3043 1546 3041 1547 3040 1547 3039 1547 3038 1547 3037 1548 3036 1548 3035 1548 3035 1548 3033 1548 3032 1546 3031 1546 3032 1545 3032 1545 3033 1545 3035 1545 3036 1544 3036 1544 3035 1544 3033 1544 3030 1545 3028 1546 3027 1546 3027 1544 3028 1544 3029 1543 3030 1543 3032 1542 3033 1542 3037 1541 3037 1541 3038 1541 3037 1541 3037 1541 3036 1541 3034 1540 3035 1539 3037 1537 3039 1537 3040 1536 3042 1535 3042 1535 3042 1535 3043 1534 3044 1534 3044 1535 3045 1535 3044 1534 3043 1534 3042 1534 3043 1534 3043 1533 3044 1533 3045 1533 3045 1534 3047 1534 3048 1534 3048 1534 3048 1533 3047 1533 3047 1533 3046 1533 3046 1533 3045 1533 3046 1533 3048 1532 3048 1532 3049 1532 3050 1531 3050 1531 3051 1531 3052 1531 3052 1532 3052 1532 3055 1533 3055 1534 3054 1535 M 3271 1428 3270 1428 3269 1428 3269 1428 3269 1428 3269 1427 3270 1427 3270 1427 3270 1427 3271 1427 3272 1427 3272 1427 3271 1428 3271 1428 3271 1428 M 3259 1430 3259 1430 3257 1429 3256 1429 3257 1428 3257 1428 3258 1428 3258 1428 3259 1428 3260 1428 3262 1429 3262 1429 3261 1430 3260 1430 3259 1430 3259 1430 M 3229 1437 3229 1437 3229 1437 3229 1436 3229 1436 3230 1436 3230 1436 3231 1435 3230 1435 3229 1435 3228 1435 3228 1435 3227 1435 3226 1434 3226 1434 3226 1434 3229 1434 3229 1434 3229 1434 3230 1434 3231 1434 3232 1434 3232 1433 3233 1433 3233 1433 3235 1433 3235 1433 3235 1433 3236 1433 3237 1434 3236 1434 3236 1434 3236 1434 3236 1434 3238 1434 3239 1434 3239 1434 3240 1434 3239 1433 3239 1433 3238 1433 3238 1433 3239 1432 3240 1433 3241 1433 3241 1434 3242 1434 3242 1434 3242 1434 3244 1433 3245 1432 3247 1432 3247 1432 3248 1432 3248 1432 3248 1431 3247 1431 3248 1431 3248 1431 3248 1431 3248 1431 3248 1431 3249 1431 3250 1432 3249 1433 3249 1433 3248 1433 3247 1433 3245 1434 3244 1435 3241 1436 3239 1436 3239 1436 3239 1436 3238 1436 3238 1436 3237 1435 3236 1436 3236 1436 3237 1436 3236 1436 3234 1437 3234 1437 3232 1437 3232 1437 3231 1437 3231 1437 3230 1436 3229 1437 M 3256 1436 3255 1436 3255 1436 3254 1436 3254 1436 3254 1436 3252 1433 3253 1433 3254 1433 3254 1433 3255 1433 3256 1433 3256 1433 3258 1433 3259 1433 3259 1434 3260 1435 3260 1435 3260 1435 3260 1435 3258 1436 3257 1436 3257 1436 3256 1436 3256 1436 M 3245 1440 3244 1440 3244 1440 3240 1438 3241 1437 3241 1437 3245 1436 3245 1436 3246 1436 3246 1436 3246 1436 3246 1436 3249 1436 3249 1435 3249 1435 3249 1435 3250 1435 3250 1435 3251 1435 3252 1435 3253 1436 3253 1437 3253 1437 3253 1437 3251 1438 3248 1440 3246 1440 3246 1440 3245 1440 M 3242 1441 3241 1440 3240 1440 3240 1440 3239 1440 3239 1440 3237 1440 3236 1440 3234 1440 3233 1440 3233 1440 3232 1439 3232 1439 3234 1438 3234 1438 3237 1438 3237 1438 3237 1438 3238 1439 3240 1439 3241 1439 3241 1439 3242 1439 3243 1440 3243 1440 3243 1440 3242 1441 M 3222 1440 3222 1440 3222 1440 3222 1440 3221 1440 3221 1439 3221 1439 3222 1438 3222 1438 3222 1438 3222 1438 3224 1439 3224 1439 3224 1439 3224 1439 3223 1440 3222 1440 M 3193 1444 3193 1444 3192 1443 3191 1443 3191 1443 3191 1443 3190 1443 3190 1443 3190 1443 3190 1442 3190 1442 3189 1441 3189 1441 3189 1441 3188 1441 3188 1441 3187 1441 3187 1441 3188 1440 3188 1440 3189 1440 3189 1440 3191 1441 3191 1441 3192 1442 3194 1442 3196 1442 3196 1443 3196 1443 3195 1443 3194 1444 3193 1444 M 3181 1443 3179 1442 3181 1441 3182 1440 3182 1440 3182 1440 3182 1441 3183 1442 3182 1442 3182 1442 3182 1442 3181 1442 3181 1443 M 3204 1444 3203 1443 3203 1443 3203 1444 3202 1444 3202 1443 3202 1443 3201 1443 3201 1443 3201 1443 3201 1443 3201 1443 3201 1442 3201 1442 3201 1442 3203 1441 3204 1441 3205 1441 3206 1441 3206 1441 3207 1441 3207 1441 3207 1441 3208 1441 3208 1441 3207 1443 3207 1444 3206 1444 3205 1444 3204 1444 M 3188 1443 3187 1443 3186 1443 3184 1442 3184 1442 3184 1442 3184 1442 3185 1442 3185 1442 3185 1442 3186 1442 3188 1442 3188 1442 3188 1443 3188 1443 3188 1443 M 3174 1445 3173 1445 3173 1444 3173 1444 3174 1442 3174 1442 3174 1442 3175 1442 3175 1443 3175 1443 3178 1443 3178 1443 3178 1443 3178 1444 3178 1444 3178 1444 3177 1444 3177 1444 3176 1444 3176 1444 3175 1444 3175 1444 3174 1444 3174 1445 3174 1445 M 3181 1448 3180 1448 3180 1448 3180 1448 3179 1447 3179 1447 3179 1447 3178 1447 3177 1446 3177 1446 3176 1446 3175 1446 3175 1446 3174 1446 3174 1445 3176 1444 3176 1444 3177 1444 3178 1444 3179 1444 3179 1444 3180 1443 3181 1443 3182 1443 3182 1443 3183 1443 3183 1444 3183 1444 3184 1444 3184 1444 3185 1445 3185 1445 3185 1445 3185 1444 3185 1444 3186 1444 3186 1444 3186 1444 3187 1444 3187 1444 3187 1444 3187 1444 3189 1444 3189 1444 3189 1444 3190 1444 3189 1445 3187 1446 3185 1447 3185 1447 3184 1447 3183 1448 3181 1448 3181 1448 M 3208 1445 3208 1445 3208 1445 3207 1445 3207 1445 3207 1445 3207 1444 3207 1444 3207 1444 3207 1444 3208 1444 3208 1444 3209 1444 3210 1444 3211 1444 3212 1444 3210 1445 3209 1445 3209 1445 3208 1445 M 3186 1447 3186 1447 3187 1446 3187 1446 3191 1444 3191 1444 3192 1444 3192 1445 3192 1445 3193 1445 3191 1447 3191 1447 3190 1447 3188 1447 3186 1447 M 3351 1448 3350 1448 3350 1448 3350 1448 3351 1447 3351 1447 3351 1446 3351 1446 3352 1446 3352 1446 3352 1446 3354 1446 3354 1446 3355 1447 3355 1448 3354 1448 3352 1448 3351 1448 3351 1448 M 3204 1448 3204 1448 3203 1447 3203 1447 3204 1446 3204 1446 3204 1446 3204 1446 3206 1446 3206 1447 3206 1447 3205 1448 3204 1448 M 3168 1449 3169 1449 3172 1449 3173 1449 3172 1449 3171 1449 3170 1449 3169 1449 3168 1449 3168 1449 3168 1448 3168 1448 3168 1448 3169 1448 3169 1448 3170 1448 3173 1448 3173 1449 3173 1449 3173 1449 3174 1449 3174 1450 3174 1450 3175 1449 3175 1448 3175 1448 3174 1448 3173 1447 3173 1447 3173 1446 3174 1446 3175 1446 3176 1446 3176 1446 3178 1447 3179 1447 3179 1448 3179 1448 3180 1448 3179 1448 3179 1448 3179 1449 3177 1449 3177 1449 3177 1449 3175 1450 3175 1450 3175 1450 3175 1450 3175 1450 3176 1450 3176 1451 3175 1451 3175 1451 3174 1452 3174 1452 3174 1451 3172 1451 3171 1452 3169 1452 3169 1452 3168 1452 3166 1452 3166 1452 3166 1452 3165 1452 3163 1451 3163 1451 3162 1451 3163 1450 3165 1450 3165 1450 3167 1451 3167 1450 3165 1449 3166 1449 3167 1449 3168 1449 M 3145 1457 3145 1457 3145 1457 3146 1457 3147 1457 3147 1457 3148 1457 3148 1457 3148 1457 3149 1456 3148 1456 3147 1456 3145 1456 3145 1456 3145 1455 3145 1455 3145 1455 3147 1455 3148 1455 3148 1455 3148 1455 3148 1455 3147 1455 3147 1455 3147 1455 3146 1455 3146 1455 3145 1455 3145 1455 3145 1455 3145 1454 3147 1454 3150 1454 3151 1454 3153 1454 3154 1454 3154 1454 3154 1454 3154 1453 3153 1453 3153 1453 3152 1453 3151 1453 3150 1453 3150 1453 3150 1452 3150 1452 3150 1452 3151 1453 3151 1453 3151 1453 3152 1453 3152 1453 3152 1452 3151 1452 3152 1452 3152 1452 3153 1452 3154 1452 3155 1453 3156 1453 3156 1453 3156 1453 3155 1452 3155 1452 3155 1452 3155 1452 3154 1452 3154 1452 3154 1451 3154 1451 3154 1451 3155 1451 3155 1451 3155 1451 3156 1451 3156 1452 3156 1452 3157 1452 3157 1452 3158 1452 3157 1452 3157 1451 3157 1451 3160 1451 3160 1451 3162 1452 3164 1454 3164 1454 3164 1455 3164 1455 3163 1455 3162 1455 3162 1455 3161 1455 3161 1455 3161 1457 3162 1457 3162 1457 3162 1457 3163 1457 3162 1457 3161 1458 3160 1458 3156 1458 3155 1457 3153 1458 3150 1459 3150 1459 3149 1459 3149 1459 3149 1460 3149 1460 3150 1460 3150 1460 3150 1460 3149 1460 3148 1460 3147 1460 3147 1460 3147 1460 3148 1460 3149 1459 3149 1459 3149 1459 3148 1459 3146 1459 3145 1460 3145 1460 3144 1460 3143 1459 3143 1459 3143 1459 3143 1459 3144 1459 3144 1459 3145 1458 3147 1458 3149 1458 3149 1457 3149 1457 3149 1457 3148 1457 3148 1458 3148 1458 3148 1458 3147 1458 3146 1457 3145 1457 M 3122 1462 3122 1462 3122 1462 3121 1462 3121 1461 3124 1459 3124 1459 3125 1458 3125 1458 3126 1458 3126 1458 3127 1458 3127 1458 3127 1458 3127 1458 3128 1458 3128 1457 3128 1457 3130 1456 3130 1456 3132 1455 3133 1455 3133 1456 3133 1456 3133 1456 3132 1458 3131 1458 3131 1458 3131 1458 3131 1459 3130 1459 3130 1459 3129 1460 3129 1460 3128 1460 3128 1460 3126 1460 3126 1461 3125 1461 3123 1462 3122 1462 M 3152 1461 3152 1461 3152 1460 3152 1460 3153 1460 3153 1459 3156 1459 3155 1460 3154 1460 3153 1460 3152 1461 M 3107 1467 3106 1467 3106 1467 3105 1466 3105 1466 3105 1465 3106 1464 3106 1464 3107 1464 3107 1464 3109 1463 3109 1463 3109 1463 3109 1463 3110 1464 3113 1464 3113 1464 3114 1464 3114 1464 3114 1463 3114 1463 3113 1463 3114 1463 3114 1463 3115 1463 3116 1463 3116 1463 3116 1463 3116 1463 3117 1463 3117 1463 3117 1463 3117 1463 3116 1462 3115 1462 3115 1461 3115 1461 3115 1461 3115 1461 3115 1461 3115 1460 3116 1460 3117 1460 3117 1460 3117 1461 3117 1461 3118 1462 3119 1462 3121 1463 3121 1465 3121 1465 3121 1466 3121 1466 3120 1466 3120 1466 3116 1467 3116 1467 3115 1467 3113 1467 3112 1467 3112 1467 3111 1467 3112 1466 3112 1466 3113 1466 3116 1466 3117 1465 3117 1465 3117 1464 3117 1464 3116 1464 3115 1464 3115 1464 3115 1464 3115 1464 3116 1465 3115 1465 3115 1465 3113 1466 3113 1466 3112 1466 3110 1466 3110 1466 3109 1466 3107 1466 3107 1467 M 3139 1462 3139 1462 3138 1462 3137 1462 3137 1462 3135 1461 3135 1461 3135 1461 3135 1461 3136 1461 3136 1461 3139 1461 3140 1461 3140 1461 3140 1461 3140 1461 3140 1462 3140 1462 3139 1462 3139 1462 M 3139 1468 3136 1468 3136 1468 3134 1468 3134 1468 3133 1468 3132 1468 3132 1469 3131 1469 3130 1470 3129 1470 3129 1471 3129 1471 3128 1471 3128 1470 3128 1469 3127 1470 3126 1471 3124 1472 3123 1471 3123 1471 3121 1471 3120 1471 3120 1471 3120 1471 3120 1471 3121 1470 3122 1470 3123 1470 3123 1470 3124 1469 3124 1469 3124 1468 3124 1468 3123 1468 3123 1469 3124 1469 3123 1469 3122 1470 3121 1470 3121 1470 3120 1470 3119 1471 3118 1471 3118 1471 3116 1472 3116 1472 3115 1472 3115 1472 3115 1472 3114 1472 3114 1472 3115 1472 3116 1471 3118 1469 3120 1469 3119 1468 3119 1468 3118 1468 3118 1468 3118 1467 3118 1467 3120 1467 3120 1467 3122 1466 3122 1466 3122 1465 3122 1465 3122 1465 3122 1465 3124 1465 3124 1465 3125 1465 3125 1465 3125 1465 3125 1465 3126 1465 3126 1465 3125 1465 3125 1465 3124 1465 3124 1465 3123 1465 3123 1465 3123 1465 3123 1465 3123 1465 3122 1464 3122 1464 3122 1464 3125 1461 3125 1461 3126 1461 3128 1461 3129 1461 3129 1461 3129 1461 3129 1462 3129 1464 3130 1464 3130 1464 3130 1464 3130 1464 3130 1465 3130 1465 3130 1465 3128 1466 3128 1466 3128 1466 3127 1466 3127 1466 3127 1467 3126 1468 3127 1468 3128 1467 3128 1467 3128 1467 3128 1467 3128 1467 3128 1466 3128 1466 3130 1466 3132 1465 3132 1464 3132 1464 3132 1464 3132 1463 3132 1463 3132 1463 3133 1463 3134 1463 3136 1463 3138 1463 3138 1463 3138 1463 3139 1464 3140 1465 3140 1466 3139 1466 3139 1466 3139 1466 3139 1467 3138 1467 3138 1467 3139 1468 M 3150 1464 3150 1464 3150 1464 3150 1464 3148 1462 3148 1462 3148 1462 3151 1462 3152 1462 3152 1462 3152 1462 3153 1462 3153 1463 3153 1463 3151 1464 3151 1464 3150 1464 M 3144 1465 3144 1465 3144 1464 3146 1463 3146 1463 3147 1463 3147 1463 3149 1464 3148 1464 3148 1464 3148 1464 3147 1464 3147 1464 3146 1465 3145 1465 3144 1465 M 3132 1470 3132 1470 3132 1470 3133 1469 3133 1468 3134 1468 3134 1468 3136 1468 3136 1468 3137 1468 3137 1468 3137 1468 3137 1468 3138 1469 3137 1470 3137 1470 3137 1470 3136 1470 3136 1470 3135 1470 3135 1470 3134 1470 3134 1470 3132 1470 M 3102 1474 3102 1474 3102 1473 3103 1472 3104 1471 3104 1471 3104 1471 3105 1471 3105 1472 3106 1472 3107 1472 3106 1471 3105 1471 3106 1470 3107 1470 3108 1470 3109 1470 3109 1470 3111 1470 3111 1470 3111 1470 3111 1470 3112 1470 3111 1470 3111 1470 3111 1471 3111 1471 3111 1471 3112 1470 3112 1470 3113 1470 3113 1469 3117 1469 3117 1469 3117 1469 3117 1469 3116 1470 3115 1471 3112 1472 3112 1472 3111 1472 3111 1472 3107 1473 3107 1473 3105 1473 3102 1474 3102 1474 M 3102 1473 3101 1473 3101 1472 3099 1472 3099 1472 3100 1471 3100 1471 3101 1471 3102 1472 3102 1472 3102 1472 3102 1472 3102 1472 3102 1473 3102 1473 M 3091 1476 3091 1476 3090 1476 3090 1476 3090 1475 3090 1475 3091 1474 3091 1473 3091 1473 3091 1473 3092 1472 3093 1472 3093 1472 3095 1472 3097 1472 3097 1472 3098 1473 3098 1473 3099 1473 3099 1472 3099 1472 3099 1472 3100 1472 3100 1472 3101 1472 3101 1473 3101 1473 3099 1474 3099 1474 3099 1474 3098 1474 3096 1474 3096 1474 3096 1474 3096 1475 3096 1475 3094 1475 3094 1475 3094 1475 3093 1475 3093 1475 3092 1475 3091 1476 M 3086 1477 3086 1476 3086 1476 3086 1476 3086 1476 3086 1476 3085 1476 3085 1476 3087 1474 3088 1474 3088 1474 3088 1474 3089 1474 3089 1474 3089 1474 3090 1475 3089 1476 3088 1476 3087 1477 3087 1477 3086 1477 M 3079 1479 3079 1479 3081 1477 3082 1476 3084 1475 3084 1475 3084 1475 3085 1475 3085 1477 3083 1478 3080 1479 3079 1479 M 3124 1477 3123 1477 3123 1477 3123 1476 3123 1476 3123 1476 3124 1476 3125 1476 3125 1476 3126 1476 3126 1476 3128 1476 3128 1476 3129 1476 3129 1477 3129 1477 3128 1477 3125 1477 3124 1477 M 3117 1478 3115 1478 3114 1478 3114 1478 3114 1478 3114 1477 3115 1477 3116 1477 3119 1478 3119 1478 3118 1478 3118 1478 3117 1478 M 3101 1492 3101 1492 3101 1492 3100 1491 3100 1491 3100 1491 3099 1491 3099 1491 3099 1491 3099 1491 3100 1490 3102 1490 3103 1490 3102 1492 3102 1492 3101 1492 3101 1492 M 3071 1508 3071 1508 3072 1507 3074 1506 3074 1506 3074 1505 3076 1505 3076 1505 3076 1505 3076 1505 3077 1507 3077 1507 3075 1507 3074 1508 3073 1508 3072 1508 3071 1508 M 3074 1511 3074 1510 3074 1510 3074 1510 3073 1510 3073 1510 3074 1509 3074 1509 3075 1508 3075 1508 3076 1508 3076 1508 3076 1508 3077 1508 3077 1508 3081 1508 3081 1508 3081 1508 3081 1508 3080 1508 3080 1509 3079 1509 3078 1509 3077 1509 3076 1510 3076 1510 3075 1510 3075 1510 3074 1510 3074 1510 3074 1511 M 3065 1515 3065 1515 3064 1515 3064 1515 3063 1515 3063 1515 3063 1515 3063 1514 3063 1514 3063 1514 3064 1514 3064 1513 3064 1513 3065 1513 3065 1513 3067 1513 3067 1513 3066 1514 3065 1515 M 3068 1521 3068 1521 3068 1520 3068 1520 3069 1520 3069 1518 3070 1517 3070 1516 3071 1515 3071 1515 3071 1515 3071 1515 3073 1516 3074 1517 3075 1518 3074 1518 3073 1519 3071 1520 3070 1520 3069 1521 3068 1521 3068 1521 3068 1521 M 3069 1524 3067 1523 3066 1523 3068 1521 3069 1521 3069 1521 3070 1521 3070 1521 3070 1521 3071 1522 3071 1522 3072 1523 3071 1523 3071 1523 3071 1523 3070 1523 3070 1523 3069 1523 3069 1524 M 3047 1527 3046 1526 3047 1526 3047 1526 3047 1526 3047 1526 3049 1525 3050 1525 3051 1525 3051 1525 3051 1525 3051 1525 3052 1525 3052 1525 3052 1525 3053 1525 3048 1526 3047 1527 3047 1527 M 3053 1527 3052 1527 3050 1526 3049 1527 3049 1527 3048 1527 3048 1527 3048 1527 3049 1526 3052 1525 3055 1526 3054 1527 3054 1527 3053 1527 3053 1527 M 3057 1533 3057 1533 3055 1532 3055 1532 3055 1532 3054 1532 3054 1532 3054 1532 3054 1532 3053 1532 3051 1531 3051 1530 3051 1530 3052 1530 3052 1530 3055 1531 3058 1532 3057 1533 M 3008 1546 3008 1546 3007 1545 3007 1545 3008 1545 3008 1545 3009 1545 3009 1545 3010 1545 3011 1545 3011 1545 3014 1544 3014 1544 3014 1543 3015 1543 3016 1543 3016 1543 3016 1545 3016 1545 3016 1545 3016 1545 3015 1545 3015 1545 3013 1545 3010 1546 3010 1546 3010 1545 3009 1546 3009 1546 3008 1546 3008 1546 M 3010 1549 3010 1549 3009 1549 3007 1549 3007 1549 3007 1549 3007 1548 3007 1548 3008 1548 3009 1548 3010 1547 3010 1547 3010 1547 3011 1547 3013 1547 3013 1547 3016 1546 3018 1546 3018 1546 3018 1546 3022 1547 3021 1547 3020 1548 3020 1548 3018 1548 3018 1548 3017 1549 3015 1549 3015 1549 3014 1549 3014 1549 3013 1549 3012 1549 3012 1549 3011 1549 3011 1549 3011 1549 3011 1549 3010 1549 M 3003 1551 3003 1551 3003 1551 3002 1551 3001 1551 3000 1550 2999 1550 2999 1550 2999 1550 3003 1549 3003 1549 3004 1549 3004 1549 3006 1550 3006 1550 3005 1551 3005 1551 3004 1551 3004 1551 3003 1551 M 3012 1551 3011 1551 3011 1551 3010 1551 3010 1551 3011 1550 3011 1550 3011 1550 3011 1550 3012 1550 3013 1550 3014 1551 3013 1551 3013 1551 3013 1551 3012 1551 M 3009 1554 3009 1554 3009 1554 3008 1554 3007 1553 3007 1552 3010 1552 3010 1552 3010 1552 3012 1553 3012 1553 3012 1553 3012 1553 3012 1554 3011 1554 3011 1554 3009 1554 M 3003 1554 3002 1554 3002 1554 3002 1553 3004 1553 3004 1553 3004 1552 3004 1552 3004 1552 3005 1553 3005 1553 3005 1553 3006 1553 3006 1554 3006 1554 3005 1554 3004 1554 3004 1554 3003 1554 M 2999 1556 2999 1556 2998 1556 2998 1555 2998 1555 2998 1555 2998 1555 3000 1555 3000 1555 3001 1555 3001 1555 3001 1555 3001 1555 3000 1556 3000 1556 2999 1556 M 2995 1557 2994 1557 2994 1557 2994 1557 2994 1557 2993 1557 2993 1557 2993 1557 2993 1556 2993 1555 2996 1555 2997 1555 2998 1556 2998 1556 2996 1557 2995 1557 M 2982 1562 2981 1562 2981 1561 2982 1561 2982 1561 2982 1561 2985 1560 2985 1560 2985 1560 2986 1561 2985 1561 2985 1561 2985 1561 2983 1561 2983 1562 2983 1562 2982 1562 M 2974 1566 2974 1566 2973 1566 2973 1566 2972 1566 2972 1566 2972 1566 2971 1565 2974 1565 2974 1565 2976 1566 2976 1566 2976 1566 2975 1566 2975 1566 2974 1566 M 2968 1568 2968 1568 2968 1567 2968 1567 2968 1566 2968 1566 2968 1566 2969 1566 2969 1565 2969 1565 2970 1565 2970 1565 2970 1565 2970 1566 2971 1567 2971 1567 2970 1568 2970 1568 2969 1568 2969 1568 2968 1568 2968 1568 M 2965 1569 2964 1569 2963 1569 2963 1569 2963 1568 2964 1568 2964 1568 2964 1568 2966 1568 2966 1568 2968 1568 2968 1569 2967 1569 2967 1569 2967 1569 2966 1569 2965 1569 2965 1569 M 2954 1576 2953 1576 2952 1575 2953 1574 2953 1574 2953 1574 2954 1574 2954 1574 2954 1574 2958 1575 2958 1575 2958 1575 2955 1576 2954 1576 2954 1576 M 2952 1587 2952 1587 2952 1586 2952 1585 2954 1585 2954 1585 2954 1585 2955 1586 2955 1587 2954 1587 2954 1587 2953 1587 2953 1587 2953 1587 2953 1587 2952 1587 2952 1587 M 2957 1595 2957 1595 2956 1595 2956 1595 2955 1594 2955 1594 2954 1593 2953 1593 2953 1593 2953 1592 2953 1592 2954 1593 2955 1593 2957 1594 2957 1594 2957 1595 2957 1595 M 2963 1597 2963 1597 2963 1597 2962 1597 2962 1597 2961 1596 2961 1595 2962 1595 2963 1594 2964 1594 2964 1594 2964 1594 2964 1594 2964 1593 2965 1593 2965 1593 2965 1593 2966 1593 2966 1593 2966 1594 2966 1597 2965 1597 2964 1597 2963 1597 M 2958 1596 2956 1596 2956 1596 2955 1595 2955 1595 2954 1595 2955 1595 2955 1595 2957 1595 2957 1595 2957 1595 2958 1595 2958 1596 2958 1596 2958 1596 2958 1596 M 2957 1598 2957 1598 2955 1596 2955 1596 2956 1596 2957 1596 2958 1596 2958 1597 2958 1597 2958 1597 2958 1598 2957 1598 M 2957 1601 2955 1601 2954 1600 2954 1600 2954 1600 2954 1597 2954 1597 2956 1599 2956 1599 2956 1599 2956 1600 2957 1601 2957 1601 2957 1601 2957 1601 M 2963 1606 2963 1606 2961 1604 2962 1603 2963 1603 2963 1603 2965 1603 2965 1603 2965 1603 2965 1604 2965 1604 2965 1604 2964 1605 2963 1606 2963 1606 M 2961 1608 2961 1608 2961 1608 2960 1608 2959 1606 2959 1606 2959 1605 2959 1605 2960 1605 2961 1605 2962 1605 2962 1605 2962 1606 2963 1606 2963 1607 2963 1607 2963 1607 2963 1607 2962 1608 2962 1608 2961 1608 2961 1608 M 2957 1611 2957 1610 2956 1608 2957 1606 2957 1606 2957 1606 2957 1606 2959 1607 2960 1608 2960 1608 2960 1609 2960 1609 2959 1609 2959 1609 2959 1609 2960 1609 2960 1608 2958 1608 2958 1608 2958 1609 2958 1609 2958 1610 2958 1610 2958 1610 2958 1611 2958 1611 2957 1611 2957 1611 M 2957 1618 2957 1618 2957 1617 2957 1617 2957 1616 2958 1614 2958 1614 2958 1614 2958 1614 2959 1615 2960 1616 2960 1616 2959 1617 2959 1618 2959 1618 2958 1618 2958 1618 2957 1618" />
+<path id="np" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4196 2120 4195 2120 4195 2120 4194 2120 4194 2120 4192 2121 4192 2121 4192 2120 4191 2120 4190 2119 4189 2119 4187 2117 4186 2117 4185 2117 4185 2117 4184 2117 4184 2117 4183 2118 4181 2117 4180 2116 4178 2115 4176 2114 4175 2113 4174 2113 4172 2110 4172 2109 4172 2109 4171 2109 4171 2109 4170 2109 4169 2109 4168 2108 4164 2106 4162 2105 4161 2104 4161 2105 4161 2105 4161 2105 4160 2106 4159 2105 4158 2104 4157 2103 4155 2103 4154 2102 4154 2101 4154 2101 4154 2100 4156 2097 4157 2097 4157 2096 4158 2095 4158 2094 4157 2094 4157 2093 4157 2092 4158 2091 4158 2091 4159 2090 4159 2089 4159 2089 4159 2088 4159 2087 4159 2087 4160 2087 4160 2087 4161 2086 4162 2085 4162 2084 4163 2084 4163 2084 4164 2084 4165 2083 4167 2081 4168 2080 4169 2080 4169 2081 4170 2081 4170 2082 4171 2083 4171 2083 4172 2083 4172 2083 4173 2083 4173 2082 4173 2082 4174 2082 4175 2081 4175 2079 4175 2078 4175 2077 4176 2077 4176 2077 4176 2078 4177 2078 4177 2078 4178 2078 4178 2077 4179 2077 4179 2077 4180 2077 4182 2078 4182 2077 4184 2078 4186 2078 4187 2081 4188 2082 4188 2082 4191 2083 4194 2085 4195 2086 4197 2088 4199 2089 4199 2088 4201 2089 4201 2089 4202 2089 4203 2089 4203 2089 4204 2089 4205 2090 4206 2091 4207 2092 4207 2092 4207 2093 4207 2093 4209 2096 4210 2097 4211 2097 4211 2097 4211 2097 4212 2096 4212 2096 4212 2096 4213 2095 4215 2095 4216 2095 4219 2095 4220 2096 4220 2096 4219 2097 4219 2097 4220 2098 4220 2100 4220 2101 4221 2101 4222 2101 4223 2101 4223 2102 4224 2102 4224 2103 4224 2104 4226 2104 4227 2104 4228 2105 4228 2106 4230 2106 4230 2107 4232 2107 4233 2106 4233 2105 4234 2105 4234 2105 4236 2106 4236 2107 4235 2108 4234 2109 4234 2110 4234 2110 4235 2111 4236 2111 4237 2111 4239 2111 4239 2111 4239 2111 4240 2110 4240 2110 4242 2111 4244 2111 4244 2111 4245 2112 4246 2112 4246 2113 4247 2113 4247 2113 4248 2115 4248 2117 4249 2117 4250 2117 4250 2117 4251 2116 4251 2116 4250 2115 4250 2114 4252 2113 4252 2113 4252 2114 4252 2115 4254 2116 4256 2117 4257 2116 4257 2116 4257 2115 4258 2114 4258 2113 4260 2113 4260 2114 4261 2114 4261 2114 4261 2115 4263 2116 4264 2116 4265 2116 4266 2116 4266 2117 4267 2118 4268 2118 4269 2118 4270 2118 4271 2118 4273 2118 4274 2118 4275 2118 4275 2118 4276 2118 4277 2118 4277 2118 4277 2118 4278 2117 4278 2117 4279 2117 4280 2117 4281 2117 4281 2117 4281 2117 4282 2117 4283 2117 4283 2117 4284 2118 4284 2119 4283 2120 4282 2121 4282 2122 4281 2123 4281 2123 4281 2127 4281 2128 4281 2128 4281 2129 4280 2129 4281 2130 4282 2131 4282 2131 4283 2133 4284 2135 4284 2136 4283 2136 4283 2137 4282 2138 4282 2139 4282 2139 4282 2140 4281 2141 4280 2141 4279 2140 4279 2140 4279 2140 4277 2140 4276 2140 4275 2141 4275 2141 4273 2141 4273 2141 4272 2140 4272 2140 4271 2141 4270 2141 4269 2141 4267 2141 4266 2139 4265 2139 4264 2139 4264 2139 4263 2139 4263 2140 4262 2140 4260 2141 4259 2140 4256 2138 4254 2138 4252 2138 4252 2138 4251 2138 4250 2137 4250 2137 4250 2137 4249 2137 4248 2137 4248 2137 4246 2138 4245 2137 4244 2136 4244 2136 4244 2136 4244 2135 4244 2134 4243 2133 4242 2134 4241 2134 4241 2134 4240 2135 4238 2135 4238 2135 4238 2135 4236 2135 4236 2135 4236 2134 4232 2132 4230 2131 4229 2131 4229 2131 4229 2131 4228 2131 4227 2131 4227 2130 4227 2130 4228 2129 4228 2128 4228 2128 4227 2127 4227 2126 4226 2126 4225 2126 4223 2125 4222 2125 4221 2125 4219 2123 4217 2124 4217 2124 4216 2124 4215 2124 4215 2124 4215 2125 4214 2126 4214 2125 4213 2125 4213 2125 4213 2125 4211 2124 4210 2124 4209 2124 4207 2124 4207 2125 4207 2125 4206 2126 4206 2126 4206 2126 4205 2126 4205 2125 4205 2125 4204 2124 4203 2124 4202 2124 4201 2124 4200 2124 4197 2123 4197 2122 4197 2122 4196 2121 4196 2120 4196 2120" />
+<path id="ki" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5541 2571 5541 2571 5541 2571 5541 2571 5541 2571 5541 2570 5541 2570 5542 2570 5542 2571 5541 2571 5541 2571" />
+<path id="sr" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2011 2510 2011 2510 2010 2511 2009 2512 2009 2513 2009 2513 2010 2514 2010 2515 2009 2518 2009 2518 2009 2518 2008 2519 2007 2521 2007 2521 2007 2522 2007 2523 2006 2524 2005 2525 2003 2525 2002 2525 2002 2525 2001 2524 2001 2524 2001 2523 2000 2523 2000 2523 2000 2524 1999 2524 1999 2523 1997 2522 1995 2522 1995 2522 1988 2524 1985 2524 1983 2523 1982 2523 1982 2522 1981 2522 1981 2522 1981 2522 1981 2523 1979 2525 1979 2527 1980 2527 1982 2530 1982 2532 1981 2533 1981 2533 1981 2533 1980 2533 1979 2533 1979 2533 1977 2532 1975 2532 1974 2532 1973 2531 1973 2531 1972 2530 1971 2530 1970 2530 1970 2530 1968 2528 1968 2527 1967 2526 1966 2524 1965 2523 1963 2518 1961 2517 1961 2517 1961 2515 1961 2514 1961 2514 1961 2513 1960 2512 1960 2512 1960 2510 1960 2509 1960 2509 1958 2509 1956 2509 1955 2509 1954 2509 1954 2508 1954 2507 1954 2506 1954 2506 1953 2505 1952 2505 1952 2504 1951 2504 1951 2504 1951 2503 1951 2502 1951 2502 1951 2502 1950 2500 1949 2500 1949 2500 1948 2499 1948 2499 1947 2496 1948 2496 1948 2495 1949 2495 1949 2494 1949 2494 1949 2493 1950 2491 1951 2489 1951 2488 1950 2486 1950 2486 1950 2486 1950 2485 1950 2485 1951 2484 1954 2482 1954 2483 1955 2483 1957 2483 1958 2483 1959 2482 1959 2481 1960 2480 1960 2480 1961 2480 1961 2480 1962 2480 1961 2479 1961 2478 1960 2479 1960 2479 1959 2478 1960 2477 1960 2476 1961 2475 1962 2474 1962 2474 1962 2472 1962 2472 1962 2470 1963 2468 1965 2467 1965 2467 1969 2467 1971 2468 1972 2467 1973 2468 1976 2468 1980 2470 1982 2470 1982 2471 1982 2472 1982 2472 1982 2472 1983 2471 1982 2470 1982 2469 1983 2467 1983 2467 1984 2467 1987 2467 1988 2467 1990 2467 1991 2467 1991 2467 1992 2468 1992 2468 1993 2468 1994 2468 1995 2469 1995 2469 1994 2470 1995 2469 1996 2469 1997 2469 1999 2469 1998 2469 1997 2469 1997 2469 1995 2468 1994 2468 1994 2467 1996 2467 1997 2467 1998 2467 2000 2467 2001 2467 2002 2467 2007 2468 2008 2468 2009 2469 2010 2469 2012 2470 2013 2471 2012 2471 2012 2472 2012 2473 2012 2474 2011 2475 2011 2475 2011 2476 2010 2476 2010 2477 2010 2477 2009 2478 2009 2478 2008 2479 2007 2479 2007 2480 2006 2481 2006 2481 2005 2482 2005 2483 2005 2485 2005 2487 2005 2487 2005 2488 2006 2489 2006 2490 2005 2490 2005 2490 2005 2492 2006 2493 2006 2495 2007 2496 2007 2498 2008 2500 2009 2502 2010 2502 2010 2502 2013 2505 2013 2505 2012 2507 2011 2510 2011 2510" />
+<path id="tt" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1777 2370 1776 2370 1776 2370 1776 2370 1773 2369 1772 2368 1771 2366 1770 2366 1770 2365 1771 2365 1771 2365 1772 2365 1772 2366 1772 2366 1772 2366 1772 2367 1772 2367 1772 2367 1773 2367 1773 2368 1773 2368 1774 2368 1775 2368 1775 2368 1775 2368 1776 2368 1776 2368 1777 2370 1777 2370 M 1785 2371 1785 2370 1784 2370 1784 2370 1784 2369 1784 2369 1784 2368 1784 2368 1784 2368 1784 2367 1784 2367 1783 2367 1783 2367 1783 2367 1782 2367 1782 2367 1782 2366 1783 2366 1783 2366 1783 2366 1786 2367 1786 2368 1786 2369 1785 2370 1785 2370 1785 2371" />
+<path id="ni" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1506 2386 1506 2385 1505 2385 1505 2384 1504 2384 1503 2382 1501 2380 1499 2379 1499 2379 1497 2378 1495 2376 1495 2376 1493 2375 1493 2375 1493 2374 1493 2373 1491 2371 1491 2371 1491 2371 1491 2371 1490 2370 1490 2369 1489 2368 1489 2368 1489 2368 1487 2366 1486 2366 1485 2365 1484 2364 1483 2364 1483 2364 1483 2363 1482 2363 1480 2361 1478 2359 1476 2357 1475 2357 1474 2356 1475 2355 1476 2354 1477 2354 1477 2354 1477 2355 1478 2355 1478 2356 1479 2356 1479 2356 1479 2356 1481 2356 1480 2356 1480 2355 1481 2355 1484 2355 1485 2355 1485 2355 1486 2354 1487 2354 1487 2352 1487 2352 1487 2351 1488 2350 1488 2350 1489 2350 1489 2351 1490 2351 1490 2350 1490 2349 1490 2348 1490 2347 1489 2346 1489 2344 1489 2343 1490 2342 1492 2342 1494 2343 1495 2343 1496 2343 1499 2339 1499 2338 1500 2338 1501 2338 1501 2339 1501 2339 1502 2340 1504 2341 1505 2341 1506 2342 1506 2342 1506 2341 1505 2341 1506 2339 1508 2338 1509 2338 1510 2337 1511 2337 1511 2336 1511 2335 1512 2334 1513 2334 1513 2334 1513 2334 1514 2334 1514 2334 1515 2334 1515 2333 1514 2333 1514 2332 1515 2331 1516 2330 1516 2330 1517 2330 1517 2329 1517 2328 1517 2327 1518 2327 1519 2326 1520 2326 1521 2326 1522 2328 1526 2329 1529 2328 1530 2327 1533 2327 1534 2327 1534 2327 1535 2326 1536 2326 1540 2324 1541 2324 1542 2323 1543 2323 1544 2323 1544 2323 1546 2323 1547 2323 1547 2323 1546 2324 1544 2324 1544 2324 1543 2325 1543 2325 1543 2326 1543 2327 1544 2327 1544 2327 1545 2329 1545 2330 1546 2332 1546 2333 1546 2333 1546 2334 1546 2334 1546 2335 1545 2336 1544 2338 1543 2338 1543 2339 1542 2339 1542 2340 1542 2342 1542 2342 1541 2343 1541 2345 1541 2348 1540 2349 1540 2349 1540 2350 1540 2351 1540 2352 1540 2352 1541 2354 1541 2356 1541 2357 1541 2358 1541 2358 1541 2360 1541 2361 1541 2362 1541 2362 1541 2363 1542 2363 1542 2364 1541 2365 1540 2365 1540 2364 1539 2363 1539 2363 1539 2362 1540 2362 1540 2361 1541 2359 1541 2358 1540 2358 1540 2358 1539 2358 1539 2359 1539 2359 1540 2360 1540 2361 1538 2362 1538 2363 1538 2366 1539 2366 1539 2367 1538 2370 1538 2370 1537 2370 1537 2371 1537 2372 1537 2372 1536 2373 1537 2374 1537 2374 1537 2374 1537 2374 1538 2373 1538 2373 1539 2375 1539 2375 1539 2376 1539 2377 1538 2377 1537 2378 1536 2380 1536 2381 1535 2381 1535 2381 1535 2382 1536 2383 1536 2384 1536 2386 1537 2386 1537 2387 1537 2387 1538 2388 1539 2388 1539 2388 1539 2389 1539 2390 1539 2390 1538 2390 1537 2390 1537 2390 1537 2390 1536 2391 1535 2391 1535 2391 1534 2391 1533 2391 1533 2390 1532 2391 1531 2391 1531 2390 1530 2390 1530 2390 1529 2388 1528 2388 1523 2386 1519 2388 1516 2387 1515 2386 1515 2386 1515 2386 1515 2386 1514 2386 1513 2385 1512 2385 1511 2385 1509 2384 1508 2383 1508 2383 1506 2386" />
+<path id="nz" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5717 3185 5717 3185 5716 3186 5716 3186 5717 3186 5717 3187 5717 3187 5718 3187 5718 3187 5718 3187 5717 3190 5716 3190 5716 3190 5716 3190 5716 3189 5715 3189 5715 3189 5715 3188 5716 3188 5715 3187 5715 3187 5713 3187 5712 3187 5709 3186 5708 3187 5706 3187 5705 3188 5704 3188 5703 3189 5701 3191 5701 3192 5700 3192 5700 3192 5701 3196 5702 3196 5704 3196 5704 3196 5704 3196 5703 3197 5703 3197 5703 3197 5703 3198 5702 3198 5700 3202 5700 3202 5700 3203 5700 3203 5699 3204 5699 3205 5699 3205 5697 3207 5696 3207 5696 3208 5695 3209 5694 3210 5694 3210 5693 3211 5693 3212 5692 3212 5692 3212 5691 3214 5690 3216 5690 3216 5689 3216 5689 3217 5689 3217 5688 3217 5688 3217 5688 3218 5688 3218 5688 3219 5688 3219 5687 3219 5687 3220 5686 3221 5685 3221 5683 3223 5682 3224 5679 3225 5678 3226 5677 3226 5675 3227 5674 3227 5674 3227 5673 3226 5673 3226 5673 3225 5673 3225 5673 3224 5673 3224 5671 3224 5671 3223 5671 3223 5671 3223 5670 3224 5670 3224 5670 3224 5669 3224 5669 3224 5669 3225 5668 3224 5668 3224 5668 3223 5668 3223 5668 3222 5668 3222 5669 3222 5669 3221 5669 3221 5668 3221 5667 3221 5667 3221 5667 3221 5667 3222 5667 3222 5667 3222 5667 3222 5667 3222 5667 3223 5667 3223 5666 3223 5665 3223 5665 3223 5665 3223 5664 3222 5664 3222 5664 3222 5664 3221 5664 3221 5664 3221 5665 3221 5665 3221 5665 3221 5665 3221 5666 3221 5667 3219 5668 3218 5668 3218 5668 3218 5669 3217 5669 3217 5669 3217 5669 3217 5670 3215 5672 3213 5672 3213 5672 3213 5672 3213 5673 3211 5673 3211 5673 3211 5673 3210 5674 3207 5674 3206 5673 3204 5673 3204 5673 3204 5673 3203 5671 3201 5671 3201 5670 3201 5670 3200 5670 3200 5670 3200 5669 3200 5669 3200 5667 3199 5667 3199 5667 3199 5666 3199 5666 3199 5666 3199 5663 3199 5663 3199 5663 3199 5663 3198 5661 3197 5661 3197 5660 3196 5660 3196 5660 3195 5659 3195 5658 3195 5655 3194 5654 3194 5654 3194 5654 3194 5652 3193 5652 3193 5652 3193 5651 3192 5651 3192 5651 3192 5651 3192 5650 3191 5650 3191 5650 3190 5650 3190 5650 3190 5651 3188 5651 3188 5651 3188 5652 3188 5652 3187 5652 3187 5654 3187 5656 3186 5657 3185 5658 3185 5658 3185 5658 3185 5658 3185 5659 3185 5659 3185 5659 3185 5660 3185 5660 3185 5660 3185 5661 3184 5663 3183 5663 3183 5663 3183 5664 3183 5664 3182 5664 3182 5664 3182 5664 3180 5664 3179 5665 3176 5666 3172 5668 3172 5668 3172 5669 3171 5669 3171 5669 3171 5668 3170 5668 3169 5668 3169 5668 3169 5667 3169 5667 3169 5667 3169 5667 3169 5667 3169 5667 3169 5667 3169 5667 3167 5667 3167 5667 3167 5668 3167 5668 3166 5668 3166 5669 3166 5669 3166 5670 3166 5670 3165 5670 3165 5669 3165 5669 3165 5669 3166 5668 3166 5668 3166 5667 3165 5666 3162 5666 3161 5666 3161 5666 3160 5666 3160 5666 3160 5666 3160 5666 3160 5666 3159 5667 3158 5668 3158 5667 3158 5667 3158 5667 3158 5666 3159 5666 3159 5666 3159 5666 3159 5666 3159 5665 3159 5665 3159 5665 3158 5664 3157 5664 3157 5664 3156 5663 3155 5663 3155 5663 3155 5663 3155 5663 3155 5663 3154 5664 3154 5665 3155 5665 3155 5665 3155 5665 3157 5666 3157 5666 3156 5668 3155 5668 3154 5667 3154 5667 3153 5667 3153 5667 3153 5667 3153 5666 3152 5665 3153 5665 3153 5665 3153 5664 3153 5664 3153 5664 3153 5664 3154 5663 3154 5662 3154 5662 3154 5662 3154 5662 3154 5662 3153 5661 3152 5661 3152 5661 3152 5661 3151 5661 3151 5661 3151 5661 3150 5661 3150 5661 3150 5661 3150 5660 3149 5660 3148 5659 3148 5659 3147 5658 3147 5658 3147 5658 3146 5657 3145 5657 3145 5657 3145 5657 3144 5657 3144 5658 3145 5658 3145 5659 3146 5660 3147 5660 3148 5661 3148 5661 3148 5662 3147 5662 3146 5661 3144 5661 3143 5660 3144 5660 3144 5659 3144 5659 3144 5659 3143 5658 3143 5658 3143 5659 3143 5659 3143 5659 3143 5660 3143 5661 3142 5662 3142 5662 3142 5662 3141 5661 3142 5660 3142 5660 3142 5660 3142 5660 3142 5659 3142 5660 3142 5661 3140 5660 3140 5660 3140 5660 3141 5660 3141 5660 3141 5660 3141 5659 3140 5659 3139 5658 3139 5658 3139 5657 3140 5657 3140 5657 3140 5657 3140 5658 3140 5658 3140 5659 3141 5659 3141 5658 3142 5658 3142 5655 3140 5654 3139 5654 3139 5653 3137 5653 3136 5653 3136 5653 3136 5653 3135 5653 3136 5653 3138 5654 3139 5654 3140 5656 3142 5657 3142 5657 3143 5657 3143 5657 3144 5656 3144 5656 3144 5655 3144 5655 3144 5655 3143 5655 3143 5655 3143 5655 3143 5655 3142 5654 3142 5651 3138 5650 3136 5650 3136 5648 3134 5645 3131 5645 3130 5645 3129 5646 3128 5646 3128 5647 3128 5648 3127 5649 3127 5647 3126 5647 3126 5647 3126 5647 3127 5647 3127 5647 3127 5647 3127 5645 3128 5645 3128 5644 3128 5645 3129 5644 3129 5644 3130 5643 3129 5642 3127 5641 3126 5640 3125 5640 3125 5640 3124 5640 3124 5640 3125 5641 3125 5641 3124 5641 3124 5641 3124 5641 3124 5641 3123 5641 3123 5641 3122 5641 3122 5641 3122 5641 3121 5641 3121 5641 3121 5640 3120 5637 3117 5635 3115 5635 3115 5634 3113 5634 3113 5637 3112 5637 3112 5639 3112 5639 3113 5639 3114 5639 3114 5638 3114 5638 3114 5638 3113 5638 3113 5637 3114 5637 3114 5637 3115 5638 3115 5639 3116 5639 3116 5640 3118 5640 3119 5640 3119 5640 3119 5641 3119 5642 3119 5642 3120 5643 3121 5642 3121 5642 3121 5642 3122 5643 3122 5643 3122 5644 3121 5644 3121 5644 3120 5645 3119 5645 3119 5645 3118 5646 3119 5645 3120 5645 3120 5645 3120 5645 3120 5645 3120 5645 3120 5645 3121 5645 3121 5645 3121 5645 3121 5646 3121 5646 3121 5647 3121 5647 3121 5647 3121 5647 3120 5648 3120 5652 3122 5656 3123 5656 3124 5656 3124 5655 3124 5655 3124 5654 3125 5654 3125 5654 3125 5656 3125 5656 3127 5657 3127 5658 3127 5658 3126 5659 3125 5660 3127 5662 3129 5662 3129 5663 3131 5663 3131 5663 3132 5663 3132 5662 3132 5662 3132 5662 3132 5662 3133 5663 3134 5663 3134 5664 3135 5664 3135 5663 3135 5663 3135 5663 3135 5662 3134 5662 3134 5660 3133 5660 3133 5660 3135 5660 3135 5660 3135 5660 3135 5660 3135 5661 3135 5662 3135 5662 3135 5663 3135 5663 3135 5662 3136 5662 3136 5662 3137 5662 3138 5663 3138 5664 3138 5664 3138 5664 3138 5664 3139 5664 3139 5664 3139 5665 3141 5667 3142 5667 3143 5666 3143 5666 3146 5665 3146 5666 3147 5667 3149 5667 3150 5668 3151 5668 3152 5670 3151 5671 3152 5671 3152 5671 3152 5672 3152 5673 3153 5674 3152 5675 3153 5675 3153 5675 3154 5675 3154 5675 3154 5675 3155 5675 3155 5675 3156 5675 3156 5676 3157 5676 3157 5677 3157 5679 3157 5680 3156 5679 3154 5679 3154 5679 3153 5679 3153 5679 3153 5678 3152 5678 3152 5678 3152 5677 3151 5678 3150 5678 3150 5678 3148 5678 3147 5676 3147 5676 3146 5676 3146 5676 3146 5676 3145 5676 3145 5679 3146 5680 3147 5680 3149 5682 3149 5684 3150 5682 3150 5681 3151 5681 3151 5682 3152 5682 3152 5682 3151 5682 3151 5682 3151 5682 3151 5683 3151 5683 3151 5684 3151 5684 3152 5685 3155 5685 3155 5684 3155 5684 3156 5684 3157 5685 3157 5685 3158 5685 3158 5685 3158 5686 3160 5686 3161 5687 3161 5687 3161 5688 3162 5689 3163 5687 3163 5687 3163 5687 3163 5687 3163 5688 3163 5687 3162 5686 3162 5686 3162 5685 3162 5685 3162 5685 3162 5686 3164 5687 3164 5688 3164 5690 3165 5690 3164 5694 3166 5694 3166 5695 3166 5695 3166 5697 3167 5697 3167 5697 3167 5698 3168 5699 3168 5699 3168 5699 3168 5700 3168 5701 3168 5701 3168 5703 3169 5704 3169 5705 3170 5709 3169 5710 3169 5711 3168 5711 3168 5712 3167 5712 3166 5714 3164 5714 3164 5715 3164 5716 3164 5716 3164 5718 3163 5718 3163 5718 3162 5719 3162 5721 3162 5723 3162 5723 3163 5723 3163 5723 3163 5723 3163 5724 3163 5724 3164 5725 3164 5726 3164 5726 3164 5726 3164 5727 3164 5727 3165 5727 3165 5726 3167 5725 3167 5725 3167 5725 3168 5724 3170 5724 3170 5724 3170 5724 3170 5724 3171 5724 3171 5724 3172 5723 3173 5723 3174 5723 3176 5723 3178 5723 3178 5721 3180 5719 3181 5719 3181 5719 3181 5717 3181 5717 3182 5717 3184 5717 3185 M 5678 3143 5678 3143 5678 3143 5676 3141 5676 3139 5676 3139 5676 3139 5676 3139 5677 3139 5679 3140 5679 3143 5679 3143 5678 3143 M 5673 3151 5673 3151 5672 3151 5670 3150 5670 3150 5670 3150 5673 3149 5674 3150 5673 3151 5673 3151 M 5609 3280 5609 3280 5609 3280 5609 3281 5609 3281 5609 3281 5609 3281 5608 3282 5607 3283 5606 3284 5606 3284 5605 3285 5604 3287 5604 3287 5604 3288 5604 3289 5602 3291 5601 3293 5600 3295 5599 3295 5599 3296 5600 3296 5600 3295 5601 3295 5602 3294 5603 3294 5603 3294 5603 3295 5603 3295 5603 3295 5601 3296 5601 3296 5599 3296 5599 3296 5598 3296 5598 3296 5597 3296 5596 3297 5596 3297 5595 3297 5595 3297 5595 3298 5594 3298 5594 3298 5594 3299 5594 3299 5594 3300 5594 3300 5594 3300 5593 3300 5593 3300 5591 3301 5589 3303 5588 3303 5588 3303 5588 3304 5588 3304 5588 3305 5588 3305 5586 3306 5584 3307 5582 3307 5579 3308 5576 3308 5576 3308 5576 3308 5576 3308 5575 3307 5575 3308 5574 3308 5572 3308 5572 3307 5572 3307 5572 3306 5571 3306 5570 3306 5569 3307 5568 3307 5568 3307 5567 3307 5567 3307 5566 3307 5565 3307 5565 3307 5565 3306 5566 3306 5566 3306 5566 3307 5567 3307 5567 3307 5567 3306 5565 3306 5564 3306 5564 3306 5564 3307 5564 3307 5564 3307 5564 3307 5564 3307 5563 3306 5563 3306 5563 3306 5563 3306 5563 3306 5564 3306 5564 3306 5565 3305 5565 3305 5565 3305 5564 3304 5564 3304 5562 3304 5562 3303 5561 3303 5561 3303 5560 3303 5559 3303 5558 3303 5557 3303 5556 3304 5556 3304 5554 3303 5555 3302 5555 3302 5555 3302 5554 3301 5552 3300 5551 3300 5551 3300 5551 3300 5550 3300 5550 3300 5550 3300 5549 3300 5549 3300 5548 3301 5547 3302 5547 3301 5546 3301 5544 3301 5542 3301 5542 3301 5542 3301 5541 3301 5540 3301 5540 3301 5540 3301 5539 3301 5538 3301 5538 3300 5537 3300 5537 3300 5538 3299 5538 3299 5539 3299 5539 3298 5539 3298 5540 3297 5540 3297 5541 3297 5541 3296 5541 3296 5540 3297 5539 3297 5539 3297 5539 3298 5538 3298 5537 3299 5536 3299 5536 3298 5537 3297 5537 3297 5536 3297 5534 3297 5534 3297 5534 3297 5534 3295 5534 3294 5534 3294 5535 3294 5536 3294 5537 3294 5538 3294 5541 3294 5542 3293 5542 3293 5541 3293 5541 3293 5541 3293 5540 3293 5540 3293 5539 3293 5539 3292 5539 3292 5539 3291 5540 3291 5541 3291 5541 3291 5541 3291 5542 3290 5542 3290 5542 3290 5543 3290 5543 3289 5542 3290 5541 3290 5539 3290 5539 3290 5538 3290 5538 3290 5538 3288 5539 3287 5540 3286 5540 3286 5540 3286 5542 3287 5543 3287 5545 3288 5545 3289 5546 3289 5546 3289 5546 3289 5545 3288 5545 3288 5544 3287 5544 3287 5544 3287 5544 3287 5543 3287 5543 3287 5544 3286 5544 3286 5544 3286 5545 3286 5545 3286 5546 3286 5546 3287 5546 3287 5547 3287 5547 3287 5547 3286 5547 3286 5545 3286 5545 3286 5544 3286 5542 3284 5542 3284 5545 3281 5546 3281 5546 3280 5546 3280 5547 3280 5547 3279 5549 3279 5549 3280 5549 3280 5549 3280 5549 3280 5550 3281 5550 3281 5551 3281 5550 3280 5550 3279 5550 3279 5550 3279 5550 3278 5550 3278 5552 3276 5554 3275 5556 3273 5556 3273 5558 3272 5558 3272 5559 3271 5560 3270 5561 3270 5561 3270 5560 3269 5561 3269 5561 3269 5561 3269 5563 3268 5564 3267 5564 3267 5564 3267 5564 3266 5564 3266 5565 3266 5569 3265 5569 3265 5570 3265 5570 3265 5571 3265 5572 3265 5572 3265 5572 3265 5574 3264 5576 3263 5577 3262 5578 3261 5579 3261 5580 3260 5582 3260 5583 3259 5584 3259 5585 3259 5585 3259 5586 3258 5586 3258 5587 3258 5587 3257 5588 3256 5588 3256 5590 3255 5591 3255 5591 3255 5591 3254 5592 3253 5595 3251 5597 3250 5599 3249 5600 3249 5601 3249 5602 3248 5602 3248 5603 3248 5603 3248 5607 3244 5608 3243 5609 3242 5609 3241 5610 3240 5610 3240 5610 3240 5610 3239 5610 3239 5611 3239 5611 3238 5611 3238 5611 3238 5611 3237 5611 3237 5611 3237 5611 3236 5611 3236 5612 3236 5612 3235 5612 3234 5614 3231 5614 3230 5615 3230 5615 3230 5615 3230 5617 3230 5617 3229 5617 3229 5619 3228 5620 3228 5620 3227 5621 3226 5623 3224 5623 3224 5623 3224 5624 3222 5624 3221 5624 3220 5624 3216 5624 3216 5624 3215 5625 3214 5626 3214 5626 3214 5626 3214 5627 3214 5627 3213 5628 3213 5628 3213 5629 3212 5630 3211 5631 3211 5631 3211 5631 3211 5631 3211 5632 3211 5632 3211 5632 3210 5632 3210 5632 3210 5632 3210 5632 3210 5632 3210 5633 3209 5634 3209 5635 3209 5636 3209 5638 3210 5638 3210 5637 3210 5637 3210 5635 3210 5634 3210 5633 3212 5633 3213 5636 3215 5636 3215 5637 3215 5637 3214 5638 3214 5638 3214 5638 3214 5639 3214 5639 3215 5639 3217 5639 3217 5639 3218 5639 3222 5640 3222 5640 3222 5641 3222 5641 3222 5641 3222 5643 3222 5643 3221 5644 3221 5644 3220 5644 3220 5645 3220 5648 3218 5648 3219 5649 3218 5650 3218 5650 3218 5650 3218 5650 3218 5650 3218 5649 3218 5649 3218 5649 3218 5649 3218 5649 3217 5650 3217 5651 3217 5653 3216 5654 3216 5655 3216 5655 3216 5655 3216 5653 3217 5651 3217 5651 3217 5651 3218 5650 3219 5651 3219 5651 3219 5651 3219 5651 3218 5652 3218 5653 3218 5653 3218 5653 3219 5652 3219 5652 3220 5651 3221 5650 3222 5651 3222 5651 3222 5651 3222 5655 3221 5656 3221 5656 3220 5654 3220 5654 3220 5654 3221 5654 3221 5653 3221 5653 3221 5652 3220 5652 3220 5652 3220 5653 3219 5655 3217 5656 3218 5658 3218 5658 3218 5659 3217 5659 3217 5659 3218 5658 3221 5657 3221 5656 3221 5655 3221 5655 3221 5655 3221 5658 3222 5659 3221 5659 3221 5659 3221 5659 3222 5658 3223 5658 3223 5657 3223 5657 3222 5657 3222 5656 3223 5655 3224 5655 3224 5655 3225 5655 3225 5656 3226 5656 3226 5656 3225 5656 3226 5656 3226 5657 3226 5657 3227 5657 3227 5657 3227 5657 3227 5657 3228 5659 3229 5659 3229 5659 3230 5658 3231 5658 3231 5657 3231 5657 3232 5657 3232 5656 3232 5656 3233 5654 3234 5654 3234 5654 3235 5654 3235 5653 3235 5653 3235 5653 3236 5653 3237 5652 3237 5652 3237 5652 3238 5651 3238 5647 3241 5647 3241 5647 3242 5647 3242 5646 3243 5646 3243 5646 3244 5646 3244 5645 3244 5644 3246 5644 3247 5643 3248 5643 3248 5643 3249 5640 3250 5640 3250 5639 3251 5638 3251 5637 3251 5637 3251 5637 3251 5636 3252 5635 3252 5635 3252 5635 3253 5634 3253 5634 3256 5635 3259 5637 3259 5637 3259 5639 3260 5640 3260 5640 3261 5640 3262 5640 3263 5640 3263 5639 3263 5638 3263 5638 3263 5638 3262 5638 3261 5637 3261 5637 3261 5637 3262 5637 3263 5637 3263 5637 3263 5637 3264 5636 3264 5635 3263 5634 3263 5634 3262 5634 3262 5632 3262 5630 3261 5630 3261 5630 3261 5630 3261 5629 3261 5629 3261 5628 3262 5628 3262 5628 3262 5628 3262 5629 3263 5628 3263 5628 3263 5627 3263 5627 3263 5627 3263 5625 3264 5623 3265 5622 3265 5622 3265 5621 3266 5619 3267 5617 3267 5616 3268 5615 3268 5615 3268 5612 3270 5612 3270 5611 3270 5611 3271 5611 3271 5611 3271 5611 3271 5611 3272 5611 3272 5611 3272 5611 3272 5610 3273 5610 3273 5610 3274 5609 3274 5609 3274 5609 3276 5609 3276 5610 3276 5610 3277 5610 3279 5609 3280 5609 3280 M 5651 3216 5651 3215 5651 3214 5651 3214 5651 3213 5654 3213 5654 3213 5654 3213 5654 3214 5653 3215 5651 3216 5651 3216 5651 3216 5651 3216 5651 3216 M 53 3265 54 3265 54 3265 55 3265 56 3264 56 3264 56 3264 55 3263 55 3263 55 3263 55 3262 54 3262 54 3262 53 3262 53 3262 53 3263 51 3263 51 3263 50 3262 50 3262 52 3262 54 3261 55 3261 56 3261 56 3261 57 3261 58 3261 58 3261 59 3261 60 3262 59 3262 58 3262 58 3262 58 3262 58 3261 57 3261 57 3261 56 3261 55 3261 55 3262 55 3262 56 3263 57 3265 58 3265 58 3266 56 3267 56 3267 55 3267 55 3267 55 3267 54 3267 54 3267 54 3267 54 3266 53 3265 M 5542 3284 5542 3284 5542 3285 5542 3285 5543 3286 5542 3286 5542 3286 5541 3286 5541 3286 5541 3285 5541 3285 5542 3284 5542 3284 5542 3284 M 5538 3291 5538 3292 5538 3292 5538 3292 5538 3292 5538 3293 5538 3293 5538 3293 5537 3293 5534 3293 5535 3293 5535 3292 5535 3292 5536 3291 5536 3291 5538 3291 5538 3291 5538 3291 M 5559 3309 5559 3310 5560 3310 5561 3311 5561 3312 5561 3312 5561 3312 5559 3312 5562 3313 5562 3313 5562 3314 5562 3314 5561 3315 5561 3315 5560 3315 5560 3315 5559 3315 5559 3315 5558 3315 5558 3316 5557 3316 5557 3316 5556 3316 5555 3316 5555 3316 5555 3315 5554 3316 5553 3316 5552 3317 5553 3317 5553 3317 5553 3317 5554 3317 5554 3317 5554 3317 5553 3317 5552 3318 5551 3318 5551 3318 5551 3317 5551 3317 5551 3316 5551 3316 5552 3315 5554 3313 5555 3312 5555 3312 5555 3312 5555 3311 5555 3311 5555 3311 5555 3311 5555 3310 5554 3310 5554 3309 5555 3308 5555 3308 5557 3308 5558 3309 5559 3309 M 5731 3356 5731 3357 5731 3357 5731 3357 5730 3357 5730 3357 5730 3356 5729 3356 5730 3356 5730 3356 5730 3355 5730 3355 5731 3355 5731 3355 5731 3355 5731 3355 5731 3356 5731 3356 M 5531 3370 5530 3371 5530 3371 5529 3372 5529 3373 5530 3373 5530 3374 5530 3375 5530 3375 5530 3375 5530 3375 5530 3375 5529 3375 5527 3374 5527 3375 5526 3375 5525 3375 5525 3374 5525 3373 5525 3373 5526 3373 5526 3373 5527 3372 5527 3372 5527 3372 5528 3372 5528 3370 5528 3370 5528 3370 5528 3370 5528 3370 5529 3370 5529 3370 5530 3370 5530 3370 5531 3370 5531 3370 M 5529 3376 5528 3376 5528 3376 5526 3376 5526 3376 5525 3375 5525 3375 5528 3375 5529 3375 5530 3375 5529 3376 M 5578 3400 5578 3401 5578 3401 5578 3402 5578 3402 5578 3402 5577 3402 5577 3402 5576 3402 5576 3402 5575 3402 5575 3402 5574 3402 5574 3401 5574 3401 5577 3400 5577 3400 5578 3400 5578 3400 5578 3400" />
+<path id="py" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1954 2967 1953 2966 1953 2966 1953 2965 1952 2965 1951 2963 1951 2963 1950 2963 1950 2963 1948 2962 1947 2962 1946 2961 1944 2961 1943 2961 1941 2960 1940 2959 1939 2959 1939 2959 1938 2959 1936 2958 1935 2957 1934 2957 1934 2957 1933 2956 1932 2956 1931 2956 1928 2954 1927 2954 1927 2953 1927 2953 1925 2951 1924 2951 1922 2950 1917 2947 1916 2946 1916 2946 1915 2946 1915 2946 1914 2946 1914 2946 1912 2946 1909 2946 1907 2945 1907 2945 1907 2944 1905 2944 1905 2944 1903 2943 1901 2943 1901 2943 1900 2942 1900 2942 1899 2940 1898 2939 1896 2938 1895 2937 1893 2937 1891 2935 1891 2934 1890 2934 1889 2934 1889 2933 1889 2933 1887 2931 1886 2931 1886 2931 1885 2930 1885 2929 1885 2929 1884 2928 1884 2928 1883 2927 1882 2926 1881 2923 1881 2923 1881 2922 1880 2922 1880 2922 1879 2921 1879 2921 1878 2921 1876 2920 1875 2918 1874 2918 1875 2917 1875 2916 1876 2912 1877 2910 1877 2910 1877 2909 1879 2905 1881 2899 1881 2898 1881 2895 1880 2894 1880 2892 1880 2891 1882 2889 1883 2887 1886 2883 1887 2881 1888 2878 1889 2876 1890 2876 1895 2875 1904 2874 1907 2873 1908 2873 1910 2873 1916 2871 1916 2871 1917 2871 1923 2871 1926 2871 1930 2871 1931 2872 1936 2874 1940 2876 1944 2878 1945 2878 1946 2879 1947 2882 1946 2883 1946 2884 1946 2885 1946 2886 1946 2886 1947 2887 1948 2888 1948 2890 1949 2892 1949 2893 1950 2893 1950 2893 1951 2894 1951 2895 1952 2898 1951 2903 1951 2904 1950 2905 1950 2905 1949 2906 1950 2908 1950 2908 1950 2910 1949 2913 1949 2914 1949 2915 1949 2915 1950 2916 1950 2916 1951 2916 1952 2916 1952 2916 1954 2916 1955 2917 1959 2917 1959 2917 1961 2917 1961 2917 1962 2917 1965 2918 1967 2918 1968 2918 1968 2918 1968 2918 1969 2917 1970 2918 1970 2918 1971 2917 1972 2917 1972 2916 1972 2916 1973 2915 1973 2915 1974 2915 1975 2916 1975 2916 1975 2917 1976 2917 1977 2918 1978 2918 1979 2919 1980 2918 1981 2918 1983 2919 1985 2920 1985 2921 1985 2921 1985 2922 1985 2922 1985 2923 1985 2923 1986 2923 1986 2924 1987 2924 1987 2924 1987 2926 1986 2926 1986 2927 1986 2928 1987 2930 1987 2931 1988 2932 1988 2935 1988 2935 1989 2936 1988 2937 1988 2940 1988 2940 1989 2940 1989 2940 1989 2941 1990 2942 1990 2943 1990 2944 1990 2945 1990 2945 1990 2945 1991 2946 1991 2946 1993 2946 1994 2946 1994 2946 1996 2946 1998 2945 1998 2945 1998 2945 2003 2943 2004 2943 2006 2945 2008 2946 2009 2947 2008 2947 2008 2947 2007 2948 2007 2948 2007 2950 2008 2950 2008 2950 2008 2951 2009 2951 2008 2952 2008 2953 2008 2953 2007 2953 2007 2954 2007 2954 2007 2955 2008 2955 2007 2956 2007 2956 2007 2957 2006 2959 2006 2959 2005 2962 2005 2963 2005 2963 2006 2964 2006 2964 2004 2966 2004 2967 2004 2967 2003 2967 2003 2969 2003 2970 2003 2971 2003 2972 2003 2974 2003 2977 2002 2977 2002 2980 2002 2981 2002 2981 2002 2982 2002 2982 2001 2985 1999 2988 1998 2988 1998 2988 1998 2989 1997 2990 1997 2990 1997 2990 1997 2990 1996 2990 1996 2991 1994 2992 1993 2993 1992 2993 1990 2993 1990 2993 1990 2994 1988 2996 1987 2996 1987 2997 1987 2998 1987 2998 1987 2999 1987 2999 1985 3001 1984 3001 1983 3000 1983 3000 1983 2999 1982 2999 1982 2999 1981 2999 1980 2999 1980 2999 1979 2999 1978 2999 1976 3000 1976 3001 1976 3001 1976 3001 1975 3003 1975 3003 1974 3003 1974 3003 1973 3002 1973 3002 1973 3001 1972 3001 1972 3001 1971 3001 1971 3001 1970 3001 1970 3001 1969 3001 1969 3001 1969 3002 1968 3002 1968 3002 1968 3001 1967 3001 1967 3001 1966 3000 1966 3000 1965 3001 1965 3001 1964 3001 1963 3002 1963 3002 1962 3001 1961 3001 1961 3001 1960 3001 1960 3001 1959 3001 1959 3001 1958 3000 1955 3000 1954 3000 1954 2999 1953 2999 1953 2999 1952 2998 1950 2998 1948 2998 1946 2998 1944 2998 1941 2998 1941 2998 1940 2998 1940 2999 1939 2999 1939 2998 1939 2997 1938 2997 1938 2996 1939 2996 1939 2996 1939 2996 1941 2994 1942 2992 1943 2992 1944 2992 1946 2988 1946 2987 1946 2987 1945 2986 1945 2984 1946 2983 1947 2982 1946 2981 1948 2980 1949 2979 1951 2978 1950 2977 1950 2977 1951 2976 1952 2975 1952 2974 1952 2974 1953 2974 1955 2971 1956 2969 1956 2969 1955 2968 1954 2968 1954 2967 1954 2967" />
+<path id="easterisland" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 825 2951 825 2951 826 2951 826 2951 826 2951 826 2952 826 2952 826 2952 826 2952 826 2952 825 2952 825 2952 825 2951 825 2951 825 2951 825 2951 M 797 2963 797 2963 797 2963 797 2963 797 2963 798 2963 797 2963 797 2963" />
+<path id="pe" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1764 2737 1764 2737 1765 2739 1766 2741 1769 2746 1769 2747 1770 2748 1772 2750 1772 2751 1773 2752 1773 2753 1774 2753 1774 2754 1775 2756 1776 2757 1777 2760 1777 2760 1778 2761 1778 2762 1778 2762 1777 2764 1777 2764 1776 2766 1775 2766 1774 2767 1773 2768 1773 2770 1774 2771 1773 2772 1773 2773 1774 2774 1774 2777 1774 2778 1773 2779 1773 2780 1772 2781 1773 2783 1773 2784 1773 2786 1774 2786 1774 2786 1775 2787 1775 2789 1774 2790 1774 2790 1773 2790 1773 2790 1773 2791 1773 2792 1771 2794 1769 2796 1769 2796 1769 2797 1769 2797 1768 2798 1767 2799 1767 2799 1767 2802 1768 2803 1770 2805 1770 2805 1771 2806 1771 2806 1770 2806 1770 2806 1769 2807 1768 2809 1766 2812 1770 2821 1770 2821 1771 2822 1772 2822 1772 2821 1773 2821 1775 2823 1776 2823 1776 2824 1773 2825 1772 2826 1772 2827 1772 2828 1773 2828 1773 2829 1772 2829 1771 2829 1770 2830 1768 2833 1767 2835 1766 2835 1765 2836 1764 2836 1763 2837 1763 2837 1762 2839 1763 2839 1764 2840 1765 2840 1765 2841 1765 2842 1763 2844 1762 2845 1761 2845 1761 2845 1760 2844 1760 2845 1759 2845 1759 2846 1760 2846 1760 2847 1760 2847 1761 2849 1761 2850 1760 2850 1760 2851 1759 2852 1759 2853 1758 2854 1757 2854 1755 2855 1754 2855 1754 2855 1753 2855 1752 2855 1751 2855 1751 2855 1750 2856 1750 2855 1749 2854 1748 2854 1747 2853 1747 2853 1747 2853 1745 2852 1743 2850 1742 2849 1742 2849 1741 2848 1739 2848 1738 2847 1738 2847 1738 2846 1738 2846 1736 2845 1735 2844 1735 2843 1735 2842 1735 2840 1734 2840 1733 2839 1733 2839 1733 2839 1732 2838 1730 2838 1730 2838 1729 2837 1728 2837 1728 2837 1727 2836 1726 2836 1726 2835 1725 2835 1725 2835 1724 2834 1723 2834 1721 2832 1720 2831 1720 2831 1719 2830 1718 2829 1717 2829 1716 2829 1715 2829 1715 2829 1714 2829 1714 2828 1713 2828 1712 2828 1712 2828 1711 2827 1711 2827 1711 2827 1710 2827 1709 2826 1705 2825 1704 2824 1703 2823 1702 2823 1699 2822 1699 2822 1696 2821 1694 2819 1693 2819 1692 2818 1690 2816 1689 2816 1688 2816 1687 2815 1686 2815 1686 2815 1686 2814 1685 2814 1685 2813 1683 2813 1682 2812 1680 2811 1679 2811 1677 2810 1676 2810 1676 2809 1675 2809 1675 2807 1673 2806 1673 2805 1673 2805 1672 2805 1671 2803 1669 2801 1669 2801 1668 2800 1668 2800 1667 2800 1666 2799 1664 2798 1662 2797 1662 2796 1662 2795 1661 2794 1660 2792 1660 2792 1659 2791 1659 2790 1658 2789 1657 2789 1657 2787 1656 2785 1656 2785 1655 2785 1655 2784 1655 2783 1656 2783 1656 2783 1657 2784 1657 2782 1657 2782 1658 2780 1658 2779 1658 2777 1658 2777 1657 2775 1657 2775 1657 2775 1655 2773 1655 2772 1654 2772 1654 2771 1653 2771 1653 2771 1653 2770 1653 2770 1653 2769 1651 2767 1651 2766 1649 2763 1649 2761 1648 2760 1648 2760 1647 2759 1646 2758 1644 2756 1644 2756 1644 2756 1643 2755 1643 2754 1643 2753 1643 2752 1642 2751 1642 2750 1642 2749 1640 2746 1639 2745 1637 2744 1636 2744 1636 2744 1636 2743 1635 2743 1635 2742 1635 2742 1635 2742 1635 2741 1634 2737 1634 2736 1633 2734 1632 2733 1631 2732 1631 2732 1631 2731 1630 2731 1629 2729 1628 2727 1626 2724 1625 2721 1625 2720 1625 2719 1625 2719 1624 2717 1623 2716 1623 2715 1623 2713 1622 2712 1621 2712 1621 2710 1621 2709 1620 2708 1619 2707 1618 2706 1619 2706 1619 2706 1619 2705 1618 2704 1617 2702 1617 2701 1617 2701 1617 2700 1617 2700 1616 2698 1614 2697 1615 2697 1614 2696 1613 2694 1611 2691 1610 2691 1610 2690 1610 2690 1608 2689 1608 2689 1608 2689 1607 2688 1606 2686 1606 2685 1606 2685 1605 2684 1605 2683 1604 2683 1604 2682 1604 2681 1604 2681 1604 2680 1603 2679 1603 2678 1603 2678 1602 2677 1602 2677 1602 2676 1602 2676 1600 2674 1600 2674 1599 2673 1598 2673 1598 2672 1598 2671 1598 2671 1595 2669 1595 2668 1594 2668 1592 2667 1590 2666 1589 2665 1588 2665 1588 2664 1588 2664 1587 2663 1583 2662 1580 2661 1579 2660 1578 2660 1578 2658 1578 2658 1578 2657 1579 2656 1579 2656 1580 2656 1581 2656 1581 2656 1582 2656 1582 2656 1582 2656 1583 2656 1583 2655 1583 2655 1583 2655 1583 2654 1583 2653 1583 2651 1582 2650 1582 2649 1582 2649 1580 2648 1580 2647 1579 2647 1579 2647 1578 2646 1578 2644 1579 2643 1579 2643 1580 2643 1580 2643 1580 2643 1580 2642 1579 2642 1578 2640 1576 2638 1576 2638 1576 2637 1576 2637 1576 2637 1576 2635 1577 2633 1577 2632 1577 2631 1577 2631 1577 2630 1579 2628 1580 2628 1581 2626 1581 2626 1582 2625 1583 2625 1583 2624 1584 2624 1584 2623 1584 2623 1584 2622 1586 2621 1587 2621 1588 2620 1588 2619 1588 2619 1589 2619 1589 2618 1590 2618 1591 2618 1591 2618 1591 2618 1591 2618 1592 2617 1592 2616 1593 2617 1593 2618 1594 2620 1594 2621 1594 2622 1594 2622 1594 2624 1595 2625 1594 2625 1593 2626 1592 2627 1592 2626 1591 2626 1591 2626 1590 2626 1589 2627 1589 2627 1589 2628 1590 2629 1590 2630 1590 2630 1591 2630 1591 2630 1592 2630 1591 2631 1591 2631 1590 2631 1590 2633 1590 2633 1590 2633 1591 2634 1591 2634 1591 2634 1592 2634 1593 2633 1594 2632 1594 2632 1594 2631 1595 2631 1596 2631 1596 2631 1597 2632 1597 2632 1600 2634 1601 2634 1602 2634 1603 2633 1603 2633 1603 2634 1605 2635 1605 2636 1605 2636 1606 2639 1606 2639 1607 2641 1609 2642 1609 2642 1610 2642 1610 2642 1612 2642 1612 2642 1613 2642 1613 2642 1614 2640 1614 2639 1614 2638 1615 2638 1615 2637 1615 2637 1616 2637 1617 2636 1617 2636 1618 2636 1618 2636 1618 2636 1619 2635 1619 2634 1619 2633 1618 2632 1618 2632 1618 2631 1619 2631 1619 2631 1620 2628 1620 2628 1620 2627 1620 2627 1620 2626 1621 2625 1621 2625 1622 2624 1622 2623 1623 2623 1623 2622 1623 2622 1623 2621 1623 2620 1623 2619 1623 2619 1624 2618 1624 2617 1624 2617 1624 2617 1625 2617 1625 2617 1625 2618 1625 2619 1625 2619 1626 2618 1626 2618 1626 2617 1626 2617 1626 2616 1626 2616 1626 2615 1627 2615 1627 2615 1628 2614 1629 2613 1630 2611 1631 2610 1632 2610 1632 2610 1638 2608 1642 2607 1644 2606 1647 2605 1651 2604 1655 2601 1660 2597 1661 2595 1665 2591 1666 2590 1667 2588 1668 2587 1668 2587 1668 2587 1669 2582 1670 2581 1670 2580 1670 2579 1671 2577 1671 2578 1671 2578 1672 2578 1674 2578 1673 2576 1672 2574 1673 2573 1673 2573 1673 2573 1673 2573 1673 2571 1673 2571 1672 2570 1671 2570 1671 2570 1670 2569 1670 2569 1670 2568 1670 2567 1670 2567 1669 2566 1668 2565 1667 2565 1667 2564 1669 2564 1669 2565 1670 2565 1671 2565 1672 2565 1673 2564 1673 2564 1673 2564 1674 2564 1674 2563 1675 2563 1677 2564 1678 2565 1678 2566 1679 2566 1680 2566 1680 2566 1680 2566 1681 2566 1681 2566 1681 2567 1682 2567 1682 2567 1682 2568 1682 2568 1683 2569 1683 2569 1684 2569 1687 2571 1687 2572 1687 2572 1687 2573 1688 2574 1688 2575 1688 2575 1689 2576 1689 2577 1689 2577 1689 2578 1689 2579 1690 2579 1692 2580 1695 2582 1696 2583 1697 2583 1698 2583 1699 2583 1700 2584 1700 2585 1700 2586 1701 2586 1701 2587 1702 2588 1701 2589 1701 2589 1701 2590 1701 2591 1702 2592 1704 2592 1705 2592 1706 2591 1707 2592 1708 2593 1708 2597 1708 2598 1707 2598 1707 2598 1707 2600 1707 2600 1708 2600 1709 2601 1709 2601 1710 2601 1711 2602 1711 2603 1712 2602 1714 2601 1716 2601 1718 2601 1720 2602 1720 2602 1721 2602 1724 2601 1725 2600 1726 2600 1727 2600 1727 2600 1728 2598 1729 2597 1730 2597 1730 2597 1730 2598 1730 2598 1732 2598 1733 2598 1734 2599 1735 2600 1738 2600 1739 2599 1741 2599 1743 2598 1746 2600 1747 2601 1748 2602 1748 2602 1751 2603 1751 2602 1752 2602 1752 2602 1753 2604 1754 2604 1754 2605 1755 2606 1755 2606 1756 2607 1750 2615 1750 2616 1748 2619 1747 2620 1746 2622 1745 2623 1747 2624 1749 2624 1749 2624 1749 2624 1750 2623 1750 2623 1751 2623 1751 2623 1752 2623 1753 2624 1754 2625 1754 2626 1755 2626 1755 2627 1755 2627 1755 2628 1756 2629 1757 2629 1757 2629 1758 2630 1758 2630 1758 2631 1758 2631 1757 2631 1757 2632 1754 2632 1753 2631 1752 2630 1752 2630 1752 2630 1752 2629 1752 2629 1750 2628 1750 2629 1749 2629 1748 2630 1747 2629 1745 2629 1744 2629 1744 2629 1743 2630 1743 2631 1742 2632 1740 2632 1740 2632 1738 2632 1736 2632 1735 2633 1731 2635 1729 2634 1729 2634 1727 2635 1727 2635 1725 2636 1723 2637 1721 2638 1721 2639 1721 2639 1720 2638 1720 2639 1719 2639 1719 2639 1719 2640 1719 2640 1717 2641 1715 2643 1713 2644 1712 2644 1711 2644 1711 2645 1710 2647 1710 2650 1710 2650 1710 2651 1710 2651 1710 2653 1709 2654 1708 2655 1708 2656 1707 2656 1706 2659 1706 2659 1705 2660 1705 2660 1706 2661 1706 2662 1707 2664 1707 2665 1707 2665 1707 2666 1706 2667 1706 2667 1706 2667 1705 2668 1704 2668 1704 2668 1703 2668 1700 2670 1698 2671 1697 2672 1697 2673 1696 2676 1696 2676 1697 2676 1698 2678 1698 2679 1697 2680 1694 2680 1694 2681 1694 2683 1693 2683 1693 2683 1693 2683 1693 2683 1694 2684 1695 2685 1695 2685 1696 2686 1696 2686 1697 2686 1697 2687 1698 2687 1698 2687 1698 2688 1697 2688 1697 2688 1697 2689 1697 2690 1698 2690 1699 2691 1700 2692 1700 2694 1700 2695 1701 2696 1701 2697 1703 2697 1704 2700 1705 2701 1705 2701 1706 2701 1706 2701 1706 2702 1707 2702 1707 2702 1707 2703 1707 2703 1708 2705 1709 2705 1710 2706 1710 2707 1710 2707 1710 2708 1710 2708 1710 2709 1709 2710 1707 2711 1707 2712 1706 2712 1706 2713 1709 2713 1711 2713 1712 2713 1713 2713 1715 2713 1719 2714 1719 2714 1720 2715 1721 2717 1721 2717 1721 2718 1721 2718 1721 2719 1722 2719 1722 2720 1723 2720 1722 2721 1722 2722 1723 2722 1724 2722 1725 2722 1725 2722 1726 2722 1731 2722 1734 2722 1735 2722 1736 2722 1738 2721 1738 2720 1739 2720 1741 2719 1741 2719 1741 2718 1743 2717 1743 2717 1744 2716 1747 2714 1748 2713 1748 2713 1749 2713 1748 2714 1748 2715 1747 2715 1748 2716 1747 2719 1747 2719 1747 2719 1747 2721 1747 2721 1747 2723 1747 2725 1747 2728 1747 2732 1747 2735 1747 2737 1747 2738 1747 2738 1748 2738 1749 2737 1749 2737 1749 2738 1750 2738 1750 2739 1751 2739 1751 2739 1752 2739 1753 2739 1754 2739 1754 2739 1756 2738 1757 2737 1757 2737 1758 2737 1758 2737 1760 2737 1761 2738 1762 2738 1762 2737 1764 2737 1764 2737" />
+<path id="pk" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3885 2092 3890 2091 3891 2091 3892 2092 3897 2092 3898 2093 3900 2092 3900 2092 3901 2091 3902 2091 3903 2090 3905 2090 3906 2090 3906 2090 3908 2090 3908 2090 3909 2090 3910 2090 3911 2090 3914 2091 3917 2090 3923 2088 3925 2088 3927 2087 3930 2086 3931 2086 3933 2086 3934 2085 3935 2084 3934 2083 3933 2083 3933 2082 3934 2081 3934 2080 3934 2080 3935 2076 3935 2075 3934 2075 3934 2074 3936 2068 3936 2068 3936 2068 3937 2068 3938 2068 3938 2068 3938 2068 3940 2066 3940 2065 3941 2064 3943 2063 3943 2063 3945 2062 3945 2062 3946 2062 3946 2063 3946 2063 3946 2064 3949 2064 3949 2064 3950 2064 3951 2064 3955 2063 3958 2062 3958 2061 3957 2061 3957 2061 3957 2061 3956 2061 3956 2061 3955 2060 3954 2059 3956 2059 3956 2059 3956 2059 3957 2059 3958 2058 3959 2058 3959 2057 3959 2057 3960 2057 3961 2057 3962 2056 3963 2055 3963 2054 3964 2054 3964 2054 3965 2054 3965 2055 3970 2056 3970 2056 3970 2055 3969 2055 3968 2055 3969 2054 3969 2054 3970 2054 3970 2054 3972 2055 3973 2056 3973 2056 3974 2058 3974 2058 3977 2057 3979 2056 3979 2056 3980 2055 3980 2054 3981 2054 3982 2053 3982 2052 3982 2051 3981 2049 3981 2049 3982 2048 3982 2048 3982 2047 3982 2046 3982 2046 3981 2045 3981 2045 3981 2044 3981 2044 3981 2043 3982 2043 3982 2043 3982 2043 3983 2042 3983 2042 3983 2042 3984 2042 3984 2041 3984 2040 3984 2040 3983 2039 3984 2039 3985 2038 3985 2037 3985 2037 3985 2036 3985 2035 3985 2035 3986 2034 3986 2034 3987 2034 3991 2034 3992 2034 3994 2033 3995 2032 3997 2031 3998 2030 3998 2029 3998 2029 3997 2028 3996 2028 3996 2027 3996 2027 3996 2026 3996 2026 3996 2025 3995 2024 3995 2024 3993 2023 3992 2022 3991 2020 3991 2019 3992 2019 3992 2019 3992 2019 3993 2019 3994 2019 3995 2019 3996 2020 3998 2020 4001 2020 4002 2020 4006 2020 4007 2020 4010 2019 4011 2017 4012 2014 4011 2013 4010 2013 4009 2012 4009 2011 4009 2011 4009 2011 4010 2010 4011 2010 4011 2009 4010 2009 4012 2008 4014 2006 4015 2005 4017 2004 4017 2004 4017 2004 4017 2004 4018 2002 4018 2002 4019 2000 4018 1999 4018 1998 4018 1998 4019 1997 4019 1997 4019 1995 4018 1994 4017 1993 4018 1992 4016 1990 4015 1989 4014 1988 4013 1987 4012 1987 4012 1987 4013 1985 4016 1983 4018 1982 4018 1981 4019 1980 4019 1980 4020 1981 4021 1981 4025 1979 4027 1977 4028 1977 4028 1976 4029 1976 4030 1975 4031 1975 4033 1975 4033 1975 4034 1975 4034 1974 4034 1974 4035 1974 4037 1974 4037 1974 4038 1974 4039 1974 4039 1974 4040 1974 4040 1974 4042 1974 4047 1973 4049 1973 4050 1973 4051 1973 4051 1973 4052 1973 4054 1973 4056 1974 4056 1974 4058 1974 4058 1974 4059 1974 4060 1973 4064 1972 4065 1971 4065 1972 4065 1972 4066 1972 4066 1971 4066 1971 4068 1971 4068 1971 4070 1971 4073 1972 4073 1972 4075 1972 4076 1972 4076 1972 4077 1972 4077 1972 4078 1972 4079 1973 4079 1973 4080 1974 4080 1974 4080 1975 4080 1975 4080 1976 4080 1976 4080 1976 4081 1976 4082 1975 4083 1975 4084 1975 4084 1976 4085 1976 4086 1976 4086 1977 4087 1977 4087 1978 4089 1980 4089 1980 4090 1984 4089 1985 4088 1985 4088 1986 4088 1986 4088 1987 4088 1987 4089 1987 4089 1987 4089 1987 4090 1987 4090 1987 4091 1988 4091 1988 4091 1989 4091 1990 4091 1990 4092 1990 4093 1990 4094 1990 4095 1990 4096 1990 4098 1989 4098 1990 4098 1991 4098 1991 4099 1992 4100 1992 4100 1992 4101 1992 4101 1993 4101 1993 4103 1994 4107 1995 4109 1995 4111 1996 4112 1996 4112 1996 4113 1996 4113 1996 4113 1996 4114 1996 4115 1996 4116 1996 4116 1996 4117 1996 4117 1995 4118 1995 4118 1996 4117 1996 4114 1998 4111 1999 4110 2000 4109 2000 4106 2002 4106 2002 4106 2002 4106 2003 4106 2003 4105 2004 4104 2006 4104 2007 4103 2009 4103 2009 4102 2009 4102 2009 4101 2009 4101 2008 4101 2008 4100 2007 4099 2008 4097 2007 4096 2007 4096 2007 4096 2007 4094 2008 4093 2008 4093 2009 4093 2010 4092 2010 4091 2010 4091 2010 4090 2010 4090 2009 4090 2009 4089 2009 4089 2009 4088 2010 4087 2010 4087 2011 4086 2011 4086 2011 4083 2011 4083 2011 4079 2011 4078 2010 4077 2009 4076 2009 4075 2009 4075 2009 4074 2009 4068 2008 4068 2008 4067 2008 4066 2008 4065 2008 4065 2007 4064 2007 4063 2007 4063 2007 4062 2007 4062 2007 4061 2007 4060 2008 4059 2008 4059 2008 4058 2008 4057 2009 4056 2009 4056 2009 4055 2011 4055 2011 4054 2013 4054 2014 4054 2014 4055 2014 4055 2014 4055 2014 4056 2014 4057 2015 4057 2016 4057 2017 4057 2017 4056 2017 4056 2017 4056 2018 4055 2018 4056 2018 4056 2019 4056 2019 4057 2019 4057 2019 4058 2019 4058 2019 4061 2019 4061 2019 4062 2020 4061 2021 4061 2021 4061 2021 4060 2022 4060 2022 4059 2022 4059 2022 4058 2022 4058 2022 4058 2022 4057 2022 4057 2023 4057 2024 4057 2024 4057 2025 4057 2025 4058 2026 4058 2026 4059 2026 4059 2026 4060 2027 4060 2027 4060 2027 4060 2028 4059 2030 4059 2030 4058 2031 4058 2031 4057 2031 4057 2032 4057 2032 4057 2032 4058 2033 4060 2035 4060 2035 4061 2035 4061 2035 4061 2035 4062 2035 4062 2035 4062 2036 4063 2037 4063 2038 4062 2038 4062 2039 4063 2039 4065 2039 4067 2039 4067 2039 4068 2040 4067 2042 4068 2043 4068 2044 4069 2044 4071 2044 4073 2044 4074 2044 4077 2045 4078 2046 4078 2046 4078 2047 4079 2047 4079 2047 4079 2048 4079 2048 4078 2049 4077 2050 4076 2050 4074 2051 4073 2051 4072 2051 4072 2050 4071 2051 4071 2051 4069 2052 4068 2053 4067 2053 4065 2056 4065 2056 4065 2057 4066 2057 4066 2058 4067 2060 4067 2061 4067 2061 4066 2061 4066 2061 4066 2062 4065 2065 4066 2065 4066 2066 4066 2066 4067 2066 4067 2065 4068 2066 4068 2066 4068 2066 4067 2067 4066 2067 4063 2069 4062 2070 4061 2071 4060 2072 4059 2073 4058 2074 4057 2075 4055 2077 4055 2078 4055 2078 4056 2078 4056 2079 4056 2079 4056 2080 4056 2081 4054 2082 4053 2082 4052 2083 4050 2083 4048 2084 4047 2084 4046 2087 4045 2090 4045 2090 4042 2095 4042 2096 4041 2097 4040 2099 4038 2099 4037 2100 4035 2101 4035 2101 4034 2102 4031 2103 4030 2105 4029 2106 4028 2109 4028 2109 4027 2110 4026 2111 4025 2112 4024 2113 4023 2115 4023 2116 4020 2117 4019 2117 4019 2117 4018 2117 4017 2117 4017 2117 4016 2117 4015 2117 4015 2117 4013 2118 4013 2118 4012 2118 4012 2118 4011 2118 4010 2119 4010 2119 4009 2119 4008 2120 4008 2120 4007 2120 4007 2120 4006 2120 4006 2120 4005 2120 4005 2120 4005 2119 4004 2118 4004 2117 4004 2117 4004 2117 4003 2116 4002 2115 4002 2115 4001 2115 4001 2115 3999 2115 3997 2117 3996 2117 3995 2118 3995 2119 3994 2120 3994 2120 3994 2120 3994 2121 3994 2122 3994 2122 3991 2125 3989 2126 3989 2126 3988 2127 3986 2128 3985 2131 3985 2134 3985 2135 3985 2135 3985 2135 3986 2135 3986 2136 3987 2136 3987 2136 3988 2136 3989 2137 3989 2137 3989 2137 3990 2138 3990 2138 3991 2138 3992 2138 3994 2138 3994 2138 3995 2138 3995 2138 3995 2138 3996 2138 3996 2139 3996 2141 3996 2141 3996 2143 3996 2144 3996 2144 3995 2145 3995 2145 3995 2146 3995 2146 3994 2147 3995 2149 3998 2152 3998 2152 3999 2152 3999 2152 4001 2152 4002 2152 4002 2152 4003 2152 4003 2152 4004 2152 4004 2152 4004 2153 4004 2153 4004 2154 4004 2154 4004 2156 4004 2157 4005 2159 4006 2159 4006 2160 4007 2160 4007 2160 4007 2161 4007 2161 4007 2162 4007 2162 4008 2163 4008 2164 4008 2164 4008 2165 4009 2165 4009 2165 4010 2168 4010 2168 4009 2169 4009 2170 4009 2170 4009 2172 4010 2172 4011 2172 4011 2172 4009 2173 4009 2173 4009 2173 4008 2173 4008 2173 4007 2174 4007 2175 4006 2175 4005 2175 4003 2175 4002 2175 4002 2174 4002 2173 4003 2173 4002 2172 4002 2172 4000 2173 3998 2173 3997 2174 3996 2174 3995 2174 3995 2174 3994 2175 3994 2176 3993 2176 3993 2176 3989 2176 3988 2176 3987 2175 3987 2175 3986 2175 3983 2175 3981 2175 3978 2174 3977 2175 3977 2175 3976 2174 3976 2174 3976 2174 3974 2174 3974 2174 3973 2174 3973 2174 3973 2178 3973 2179 3973 2180 3972 2180 3971 2180 3967 2180 3966 2180 3965 2181 3964 2182 3964 2183 3964 2183 3964 2182 3964 2182 3964 2181 3963 2183 3964 2184 3963 2184 3962 2184 3962 2183 3962 2182 3962 2181 3961 2180 3962 2181 3962 2182 3961 2183 3960 2182 3960 2182 3960 2181 3959 2181 3959 2181 3959 2182 3959 2182 3956 2183 3956 2182 3955 2182 3955 2182 3954 2181 3953 2181 3953 2181 3954 2180 3953 2180 3953 2178 3953 2178 3952 2178 3951 2178 3951 2178 3950 2176 3950 2176 3950 2175 3950 2174 3950 2172 3949 2172 3949 2171 3948 2169 3948 2169 3948 2168 3949 2168 3949 2167 3949 2167 3947 2166 3945 2166 3943 2166 3941 2166 3941 2166 3940 2166 3940 2166 3940 2165 3940 2165 3940 2165 3940 2164 3940 2162 3941 2161 3941 2161 3941 2160 3941 2160 3940 2159 3940 2159 3939 2158 3938 2157 3938 2156 3938 2155 3936 2154 3935 2153 3933 2154 3933 2154 3932 2154 3932 2154 3931 2155 3932 2155 3933 2155 3933 2155 3934 2154 3937 2155 3937 2157 3935 2157 3935 2156 3934 2156 3933 2156 3931 2156 3928 2157 3926 2157 3924 2158 3923 2158 3922 2157 3921 2157 3919 2157 3917 2157 3916 2158 3916 2158 3916 2158 3915 2159 3915 2158 3914 2158 3912 2158 3910 2158 3909 2158 3909 2158 3908 2159 3908 2159 3908 2160 3908 2160 3908 2160 3908 2161 3907 2160 3907 2160 3907 2159 3907 2159 3906 2159 3905 2159 3903 2159 3899 2158 3899 2157 3899 2156 3899 2156 3900 2156 3899 2156 3898 2156 3898 2156 3897 2157 3897 2157 3898 2157 3898 2157 3898 2157 3898 2158 3897 2158 3896 2158 3896 2158 3895 2157 3894 2157 3893 2157 3893 2157 3892 2157 3891 2157 3890 2157 3890 2158 3890 2158 3889 2159 3889 2159 3888 2160 3886 2160 3886 2160 3885 2159 3885 2159 3884 2159 3884 2159 3883 2159 3883 2159 3881 2160 3881 2160 3881 2160 3879 2159 3879 2159 3878 2159 3877 2159 3875 2159 3874 2159 3874 2159 3873 2159 3871 2160 3870 2160 3870 2160 3870 2160 3869 2160 3869 2160 3868 2160 3867 2160 3867 2160 3867 2160 3866 2161 3866 2161 3864 2161 3864 2161 3863 2162 3863 2162 3863 2163 3861 2163 3861 2163 3861 2162 3861 2162 3861 2162 3862 2160 3860 2160 3859 2160 3859 2160 3860 2158 3860 2158 3860 2157 3860 2155 3860 2154 3860 2150 3861 2150 3861 2150 3862 2150 3862 2149 3862 2148 3862 2145 3863 2144 3863 2144 3863 2144 3863 2143 3866 2142 3867 2142 3867 2142 3867 2141 3868 2141 3869 2141 3870 2142 3870 2141 3870 2141 3870 2139 3872 2138 3873 2138 3874 2138 3875 2138 3877 2138 3877 2137 3878 2137 3879 2137 3881 2137 3882 2137 3882 2137 3884 2137 3884 2137 3885 2134 3885 2132 3885 2130 3885 2130 3886 2129 3887 2129 3887 2129 3886 2128 3884 2127 3882 2127 3881 2128 3880 2128 3878 2127 3878 2127 3878 2125 3879 2124 3879 2124 3878 2119 3878 2119 3878 2119 3878 2118 3878 2116 3877 2116 3877 2115 3878 2114 3878 2113 3878 2112 3878 2111 3876 2111 3875 2111 3875 2112 3874 2111 3873 2110 3872 2109 3870 2108 3869 2108 3864 2107 3864 2107 3864 2106 3862 2105 3860 2103 3859 2102 3859 2101 3858 2100 3857 2098 3856 2097 3855 2095 3855 2095 3854 2093 3854 2092 3850 2088 3847 2086 3849 2086 3850 2086 3862 2090 3865 2091 3867 2091 3869 2092 3871 2092 3871 2092 3872 2092 3873 2093 3873 2093 3874 2093 3884 2092 3885 2092" />
+<path id="pl" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3132 1753 3132 1754 3131 1754 3130 1753 3127 1752 3124 1752 3122 1751 3121 1751 3120 1750 3120 1750 3119 1750 3119 1749 3119 1749 3119 1748 3118 1748 3117 1748 3115 1748 3115 1749 3115 1750 3114 1750 3112 1750 3112 1750 3113 1749 3113 1748 3114 1747 3114 1747 3114 1746 3115 1744 3115 1743 3115 1743 3114 1743 3114 1742 3114 1742 3114 1741 3114 1740 3113 1740 3112 1740 3110 1740 3110 1739 3111 1738 3111 1737 3110 1737 3110 1737 3109 1736 3108 1735 3108 1734 3109 1734 3110 1734 3110 1733 3111 1731 3110 1728 3110 1728 3109 1728 3108 1728 3108 1727 3107 1726 3107 1725 3108 1725 3108 1725 3109 1724 3109 1723 3108 1722 3107 1722 3107 1722 3106 1722 3106 1721 3105 1720 3104 1720 3102 1719 3101 1718 3101 1717 3101 1716 3102 1716 3102 1716 3103 1716 3104 1715 3105 1714 3105 1714 3105 1711 3105 1711 3104 1707 3103 1705 3104 1705 3105 1705 3107 1705 3107 1705 3109 1704 3108 1703 3108 1702 3107 1702 3106 1702 3105 1702 3104 1703 3103 1703 3103 1703 3102 1702 3102 1702 3102 1701 3103 1701 3104 1701 3104 1701 3105 1701 3105 1701 3106 1701 3107 1701 3108 1700 3111 1700 3112 1699 3114 1699 3118 1698 3119 1698 3120 1698 3121 1697 3121 1697 3122 1697 3125 1697 3127 1697 3127 1696 3128 1696 3129 1696 3131 1696 3132 1696 3133 1696 3133 1696 3134 1696 3136 1694 3135 1694 3136 1694 3137 1693 3138 1692 3138 1692 3139 1691 3139 1691 3140 1691 3141 1691 3141 1691 3142 1691 3143 1691 3145 1691 3145 1690 3146 1690 3147 1690 3147 1689 3148 1689 3151 1688 3152 1688 3153 1688 3155 1688 3156 1688 3157 1687 3159 1687 3161 1687 3161 1687 3163 1687 3168 1687 3168 1687 3170 1687 3171 1688 3172 1688 3172 1688 3174 1689 3174 1689 3175 1689 3176 1690 3176 1691 3175 1690 3175 1690 3175 1690 3174 1689 3174 1689 3172 1688 3171 1688 3170 1688 3170 1688 3169 1688 3170 1689 3171 1690 3171 1691 3172 1691 3172 1692 3172 1693 3172 1693 3174 1694 3175 1694 3176 1694 3177 1694 3177 1694 3178 1694 3178 1694 3179 1695 3179 1695 3181 1694 3182 1694 3184 1694 3185 1694 3185 1694 3187 1693 3187 1693 3188 1693 3188 1693 3189 1693 3189 1693 3187 1694 3185 1694 3185 1694 3184 1694 3183 1694 3182 1695 3183 1696 3184 1696 3186 1695 3188 1694 3189 1694 3190 1694 3191 1693 3192 1693 3195 1693 3196 1693 3197 1693 3199 1694 3200 1694 3200 1694 3200 1694 3201 1694 3206 1694 3209 1694 3212 1695 3213 1695 3214 1695 3215 1695 3216 1695 3217 1695 3217 1695 3219 1695 3220 1695 3220 1695 3220 1695 3222 1695 3224 1695 3226 1695 3229 1695 3231 1695 3231 1695 3233 1694 3234 1694 3236 1694 3237 1694 3239 1694 3239 1694 3239 1694 3240 1694 3240 1693 3242 1694 3244 1695 3246 1695 3248 1696 3248 1696 3250 1697 3250 1698 3250 1698 3251 1699 3250 1701 3250 1701 3250 1701 3250 1701 3251 1702 3251 1703 3252 1704 3252 1705 3252 1705 3252 1706 3252 1706 3253 1707 3253 1708 3254 1709 3255 1711 3256 1713 3257 1716 3257 1717 3257 1718 3257 1720 3257 1720 3257 1720 3257 1720 3257 1721 3256 1721 3254 1722 3254 1722 3253 1722 3253 1722 3252 1722 3252 1722 3251 1723 3250 1723 3249 1724 3249 1724 3248 1724 3246 1726 3245 1727 3245 1728 3246 1728 3247 1729 3248 1729 3252 1730 3253 1731 3253 1732 3252 1733 3252 1733 3251 1736 3251 1737 3251 1737 3251 1737 3251 1738 3251 1739 3252 1739 3252 1740 3253 1740 3253 1741 3253 1742 3253 1743 3254 1744 3254 1745 3255 1745 3257 1747 3257 1748 3258 1749 3258 1749 3259 1750 3259 1750 3260 1750 3261 1750 3260 1751 3260 1751 3259 1751 3259 1751 3258 1751 3258 1751 3258 1751 3259 1752 3259 1753 3260 1754 3260 1754 3260 1755 3258 1757 3258 1757 3257 1757 3256 1757 3256 1757 3255 1757 3255 1757 3254 1758 3254 1758 3253 1758 3253 1759 3252 1760 3251 1760 3251 1760 3250 1760 3248 1761 3248 1762 3248 1762 3247 1762 3246 1763 3245 1764 3244 1765 3239 1769 3238 1770 3237 1771 3237 1771 3237 1771 3237 1773 3238 1774 3239 1775 3238 1776 3238 1777 3239 1777 3240 1778 3240 1778 3240 1779 3241 1780 3240 1780 3238 1779 3236 1778 3235 1778 3235 1779 3235 1778 3232 1778 3232 1778 3230 1777 3227 1776 3227 1776 3227 1775 3226 1774 3224 1774 3220 1773 3219 1773 3218 1773 3218 1773 3217 1773 3217 1773 3215 1773 3212 1773 3211 1773 3211 1774 3210 1775 3210 1775 3209 1775 3207 1775 3206 1774 3204 1774 3200 1774 3200 1774 3198 1774 3197 1775 3196 1776 3196 1777 3196 1777 3195 1777 3195 1777 3194 1776 3194 1776 3193 1776 3193 1776 3192 1777 3192 1777 3191 1777 3191 1776 3191 1776 3191 1776 3192 1775 3191 1774 3191 1773 3190 1774 3189 1773 3188 1773 3187 1771 3187 1771 3186 1770 3186 1770 3183 1771 3182 1772 3182 1773 3182 1773 3181 1773 3179 1774 3178 1773 3178 1773 3178 1772 3176 1772 3176 1771 3176 1771 3176 1770 3175 1769 3175 1769 3173 1768 3172 1767 3172 1765 3171 1765 3168 1765 3167 1765 3164 1763 3163 1763 3163 1764 3161 1764 3161 1764 3160 1764 3157 1762 3156 1761 3157 1761 3158 1761 3159 1761 3159 1760 3159 1759 3158 1759 3158 1759 3158 1759 3157 1760 3157 1760 3153 1760 3153 1759 3151 1759 3150 1758 3150 1758 3148 1758 3147 1757 3146 1757 3145 1757 3145 1757 3144 1757 3146 1758 3146 1759 3147 1760 3146 1760 3145 1760 3144 1761 3144 1761 3143 1761 3143 1762 3142 1762 3141 1762 3140 1762 3140 1762 3140 1761 3140 1761 3139 1760 3138 1759 3138 1759 3136 1758 3135 1758 3135 1758 3134 1757 3134 1757 3136 1756 3136 1756 3137 1756 3138 1755 3137 1754 3136 1754 3136 1753 3134 1753 3133 1753 3132 1753" />
+<path id="pa" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1590 2433 1590 2433 1590 2434 1591 2435 1591 2435 1591 2435 1592 2435 1592 2436 1592 2436 1595 2439 1596 2440 1597 2442 1597 2443 1597 2443 1596 2444 1595 2444 1594 2444 1593 2444 1593 2444 1592 2444 1591 2445 1591 2446 1590 2447 1588 2447 1587 2447 1587 2447 1586 2447 1586 2447 1584 2447 1584 2447 1583 2447 1582 2447 1583 2446 1583 2445 1583 2444 1582 2442 1582 2441 1581 2441 1581 2440 1580 2439 1580 2437 1580 2437 1579 2437 1579 2437 1578 2437 1578 2438 1579 2438 1578 2440 1578 2440 1578 2441 1577 2441 1576 2440 1576 2440 1574 2440 1573 2440 1572 2439 1572 2438 1572 2437 1572 2436 1571 2435 1571 2435 1571 2435 1571 2435 1570 2434 1570 2434 1570 2434 1570 2433 1569 2432 1566 2432 1564 2431 1563 2432 1562 2432 1562 2431 1562 2430 1561 2430 1561 2430 1560 2430 1559 2430 1559 2430 1558 2430 1557 2430 1557 2430 1556 2430 1556 2430 1555 2430 1554 2430 1553 2430 1552 2430 1552 2430 1551 2431 1551 2432 1552 2433 1552 2434 1551 2434 1551 2434 1551 2434 1551 2434 1551 2433 1550 2431 1550 2430 1550 2430 1549 2430 1549 2430 1549 2429 1550 2428 1551 2428 1551 2428 1552 2427 1552 2426 1552 2425 1551 2424 1551 2423 1551 2423 1551 2423 1551 2422 1552 2421 1552 2421 1553 2421 1554 2420 1554 2420 1553 2419 1551 2418 1550 2418 1550 2416 1550 2411 1551 2409 1552 2409 1552 2409 1553 2409 1554 2410 1554 2411 1555 2411 1556 2411 1556 2410 1556 2410 1556 2410 1557 2410 1559 2412 1559 2414 1559 2414 1560 2416 1561 2417 1561 2419 1564 2420 1564 2420 1566 2420 1568 2420 1569 2419 1568 2418 1567 2417 1567 2416 1567 2416 1567 2416 1569 2418 1570 2419 1571 2419 1571 2420 1571 2421 1572 2421 1573 2422 1577 2422 1578 2422 1578 2422 1579 2422 1580 2422 1582 2421 1582 2421 1583 2421 1583 2421 1583 2421 1584 2421 1584 2420 1585 2420 1585 2419 1587 2418 1588 2418 1589 2417 1591 2417 1592 2416 1593 2416 1595 2416 1595 2415 1596 2415 1596 2415 1597 2414 1597 2414 1598 2413 1598 2413 1600 2412 1601 2412 1602 2411 1602 2410 1603 2409 1604 2409 1605 2409 1606 2410 1609 2410 1611 2410 1612 2410 1612 2410 1613 2410 1614 2410 1613 2410 1613 2410 1612 2411 1612 2411 1612 2412 1613 2412 1618 2412 1620 2412 1621 2412 1622 2413 1623 2413 1623 2413 1625 2414 1627 2415 1629 2415 1630 2416 1631 2417 1632 2417 1632 2418 1633 2419 1633 2420 1634 2421 1635 2421 1636 2423 1637 2423 1637 2424 1637 2424 1638 2424 1639 2424 1639 2424 1639 2424 1638 2426 1638 2426 1638 2426 1638 2427 1638 2427 1639 2428 1639 2428 1639 2429 1639 2429 1639 2430 1640 2430 1640 2431 1641 2432 1641 2432 1642 2433 1642 2435 1642 2436 1640 2436 1640 2437 1639 2438 1640 2439 1640 2439 1636 2442 1636 2442 1635 2442 1635 2441 1635 2440 1633 2439 1633 2440 1633 2440 1633 2441 1633 2441 1633 2442 1634 2442 1633 2443 1633 2443 1633 2443 1632 2443 1631 2447 1631 2447 1629 2445 1627 2443 1626 2442 1627 2442 1625 2440 1625 2439 1625 2439 1624 2437 1623 2437 1623 2436 1623 2435 1622 2434 1622 2433 1623 2433 1623 2434 1623 2434 1624 2434 1624 2434 1625 2433 1625 2432 1625 2432 1625 2431 1624 2431 1625 2430 1626 2429 1627 2428 1628 2430 1629 2431 1629 2431 1630 2431 1631 2431 1632 2432 1632 2432 1633 2433 1633 2432 1631 2431 1631 2431 1631 2431 1629 2430 1629 2430 1628 2429 1627 2427 1627 2428 1625 2429 1625 2428 1623 2428 1623 2429 1623 2429 1623 2429 1621 2427 1621 2427 1621 2425 1621 2425 1620 2424 1619 2424 1619 2424 1618 2423 1617 2422 1615 2420 1613 2419 1612 2419 1612 2419 1612 2418 1613 2417 1614 2417 1613 2417 1613 2417 1611 2417 1611 2418 1611 2418 1611 2419 1610 2419 1609 2418 1609 2418 1607 2418 1607 2419 1606 2419 1606 2419 1605 2419 1605 2420 1604 2421 1603 2421 1602 2421 1601 2421 1601 2422 1601 2423 1601 2423 1601 2425 1598 2428 1597 2428 1597 2428 1596 2429 1596 2429 1595 2429 1594 2430 1592 2430 1591 2430 1590 2430 1590 2431 1590 2432 1590 2432 1590 2433 M 1615 2427 1616 2428 1616 2428 1616 2429 1616 2429 1616 2430 1616 2430 1614 2430 1614 2430 1614 2428 1614 2428 1615 2427 1615 2427 M 1569 2440 1570 2441 1570 2442 1570 2443 1570 2443 1570 2444 1570 2444 1570 2444 1571 2445 1571 2444 1572 2445 1572 2445 1572 2445 1571 2446 1571 2446 1569 2445 1569 2445 1568 2444 1568 2444 1567 2443 1567 2443 1567 2442 1569 2441 1569 2440" />
+<path id="pt" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2755 1929 2755 1929 2755 1930 2757 1932 2758 1933 2758 1934 2759 1936 2761 1938 2761 1938 2762 1938 2762 1938 2763 1938 2763 1938 2764 1939 2764 1939 2762 1942 2762 1942 2761 1943 2760 1944 2759 1944 2759 1944 2758 1948 2758 1949 2759 1949 2760 1950 2760 1951 2761 1952 2761 1952 2762 1953 2762 1953 2763 1952 2763 1952 2764 1952 2764 1952 2764 1953 2764 1953 2763 1955 2761 1955 2760 1956 2759 1956 2759 1956 2759 1957 2759 1958 2758 1959 2757 1959 2756 1960 2756 1960 2755 1963 2755 1963 2755 1963 2755 1964 2756 1964 2756 1964 2756 1965 2756 1966 2756 1967 2757 1969 2756 1969 2756 1969 2754 1969 2754 1969 2753 1970 2751 1971 2749 1971 2748 1971 2747 1971 2747 1971 2746 1971 2745 1970 2744 1970 2741 1970 2741 1970 2740 1970 2739 1970 2737 1970 2734 1970 2732 1971 2731 1971 2732 1971 2732 1970 2732 1969 2733 1969 2734 1967 2734 1965 2735 1964 2735 1963 2735 1960 2734 1959 2735 1958 2735 1958 2734 1957 2734 1957 2734 1955 2734 1954 2735 1954 2735 1953 2735 1953 2735 1952 2735 1951 2735 1951 2735 1950 2735 1950 2734 1950 2736 1949 2736 1949 2735 1947 2733 1947 2733 1947 2731 1948 2730 1949 2730 1949 2728 1949 2728 1948 2728 1948 2728 1947 2728 1947 2728 1946 2728 1946 2727 1945 2727 1945 2728 1945 2729 1945 2730 1945 2731 1944 2731 1944 2732 1943 2733 1943 2733 1943 2732 1943 2732 1942 2732 1942 2731 1941 2731 1941 2730 1942 2730 1942 2730 1943 2730 1943 2730 1944 2729 1944 2728 1945 2726 1945 2724 1945 2724 1944 2723 1943 2724 1942 2724 1942 2725 1941 2725 1940 2725 1940 2724 1939 2725 1938 2725 1938 2725 1937 2726 1936 2726 1935 2726 1935 2726 1934 2727 1933 2728 1933 2729 1931 2730 1930 2730 1929 2730 1928 2731 1927 2731 1926 2732 1924 2733 1923 2733 1923 2733 1922 2733 1921 2733 1920 2734 1919 2734 1918 2734 1916 2735 1916 2735 1915 2735 1915 2735 1915 2736 1913 2736 1913 2737 1913 2736 1911 2736 1912 2736 1913 2736 1912 2736 1912 2736 1911 2736 1910 2737 1909 2737 1908 2737 1907 2737 1907 2736 1904 2735 1901 2735 1900 2735 1900 2734 1899 2734 1898 2733 1896 2733 1896 2733 1894 2733 1894 2734 1893 2735 1893 2735 1893 2735 1892 2735 1892 2737 1891 2737 1891 2739 1890 2740 1890 2740 1890 2742 1890 2743 1889 2744 1889 2746 1891 2746 1891 2746 1891 2745 1892 2745 1892 2744 1893 2744 1893 2744 1894 2745 1894 2745 1894 2745 1895 2745 1895 2746 1895 2746 1895 2746 1895 2747 1894 2748 1894 2749 1894 2749 1894 2751 1893 2752 1893 2754 1894 2753 1894 2757 1894 2758 1894 2759 1894 2760 1894 2760 1894 2760 1893 2760 1893 2760 1892 2761 1892 2762 1892 2762 1892 2762 1892 2763 1892 2763 1892 2764 1892 2765 1893 2768 1893 2770 1892 2770 1893 2771 1894 2770 1895 2770 1897 2771 1897 2772 1897 2772 1897 2774 1897 2774 1897 2775 1897 2776 1898 2776 1899 2774 1901 2773 1902 2772 1903 2771 1903 2770 1904 2770 1904 2769 1904 2769 1904 2768 1904 2767 1905 2767 1906 2767 1907 2766 1907 2766 1907 2764 1907 2764 1907 2765 1908 2765 1908 2766 1910 2766 1912 2766 1915 2766 1917 2766 1919 2765 1919 2765 1919 2765 1920 2764 1919 2763 1920 2763 1921 2763 1921 2763 1922 2764 1922 2764 1922 2765 1923 2765 1923 2763 1928 2763 1929 2762 1929 2761 1929 2760 1929 2759 1929 2758 1929 2758 1929 2757 1929 2755 1929 M 2376 1934 2376 1934 2376 1934 2375 1933 2375 1933 2375 1932 2376 1932 2376 1931 2376 1931 2377 1931 2377 1932 2378 1932 2378 1932 2378 1933 2377 1934 2377 1934 2377 1934 2376 1934 M 2442 1946 2441 1945 2440 1945 2439 1945 2439 1945 2439 1945 2438 1945 2438 1944 2438 1944 2438 1944 2438 1943 2438 1943 2438 1943 2438 1943 2439 1943 2439 1943 2440 1943 2440 1943 2441 1943 2441 1943 2442 1943 2443 1943 2443 1944 2443 1944 2443 1944 2443 1945 2442 1945 2442 1946 M 2431 1947 2430 1947 2425 1945 2425 1945 2423 1944 2423 1944 2423 1944 2423 1944 2423 1944 2428 1945 2431 1947 2432 1947 2431 1947 2431 1947 M 2418 1947 2416 1947 2416 1947 2414 1946 2414 1946 2414 1946 2416 1945 2418 1946 2418 1946 2418 1947 2418 1947 M 2424 1950 2423 1949 2423 1949 2422 1949 2421 1949 2420 1949 2419 1949 2419 1948 2419 1948 2419 1947 2419 1947 2419 1947 2419 1947 2420 1947 2420 1947 2421 1947 2421 1947 2422 1947 2422 1947 2423 1947 2423 1947 2424 1948 2425 1948 2426 1948 2426 1948 2426 1948 2426 1948 2427 1948 2427 1949 2427 1949 2427 1949 2426 1949 2425 1949 2425 1949 2425 1949 2424 1950 M 2468 1960 2467 1960 2465 1960 2464 1960 2464 1959 2463 1959 2462 1958 2462 1958 2462 1957 2462 1957 2463 1957 2463 1957 2464 1957 2464 1957 2465 1958 2465 1958 2465 1958 2466 1958 2466 1958 2467 1958 2469 1958 2469 1958 2470 1958 2470 1958 2473 1958 2473 1958 2473 1958 2473 1958 2473 1958 2474 1958 2474 1959 2473 1959 2473 1959 2473 1960 2473 1960 2472 1960 2470 1960 2468 1960 M 2475 1973 2475 1973 2474 1972 2473 1972 2473 1972 2473 1972 2472 1972 2473 1972 2473 1971 2474 1971 2474 1971 2474 1971 2475 1971 2475 1972 2475 1972 2475 1972 2475 1973 M 2604 2041 2604 2041 2602 2041 2602 2040 2601 2040 2600 2040 2600 2040 2600 2039 2600 2039 2599 2038 2600 2038 2601 2037 2601 2038 2601 2038 2601 2038 2601 2038 2602 2038 2603 2038 2603 2038 2603 2038 2604 2038 2605 2038 2605 2038 2608 2039 2608 2039 2606 2041 2606 2041 2604 2041" />
+<path id="pg" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5267 2588 5266 2588 5266 2587 5266 2587 5266 2588 5265 2588 5264 2586 5263 2586 5263 2586 5264 2585 5264 2584 5264 2584 5265 2584 5265 2585 5266 2585 5267 2588 5267 2588 M 5229 2594 5229 2594 5230 2594 5230 2595 5230 2595 5230 2596 5227 2596 5227 2597 5227 2597 5227 2597 5226 2597 5223 2598 5221 2597 5220 2597 5220 2597 5219 2597 5216 2598 5215 2598 5215 2597 5215 2597 5216 2594 5217 2594 5220 2594 5221 2594 5221 2594 5224 2594 5225 2594 5226 2594 5226 2594 5228 2595 5230 2595 5230 2595 5230 2595 5229 2594 M 5277 2605 5277 2605 5276 2605 5275 2605 5275 2605 5275 2605 5274 2605 5273 2604 5270 2602 5270 2602 5270 2602 5272 2601 5274 2600 5274 2600 5274 2600 5275 2601 5277 2602 5278 2602 5278 2603 5278 2603 5278 2605 5278 2605 5278 2605 5277 2605 5277 2605 5277 2605 M 5311 2624 5309 2622 5309 2622 5308 2621 5307 2620 5306 2619 5305 2618 5303 2618 5302 2618 5302 2618 5299 2616 5298 2615 5298 2614 5297 2613 5296 2613 5295 2613 5295 2612 5294 2612 5294 2612 5293 2611 5293 2611 5291 2610 5291 2610 5290 2609 5289 2609 5289 2608 5289 2608 5287 2607 5286 2607 5285 2607 5285 2607 5284 2607 5283 2607 5282 2606 5283 2606 5284 2606 5285 2606 5285 2605 5285 2605 5284 2605 5284 2605 5283 2604 5284 2603 5284 2604 5285 2605 5286 2605 5288 2606 5290 2608 5291 2608 5292 2608 5294 2609 5294 2609 5296 2611 5297 2611 5298 2612 5300 2614 5301 2613 5302 2614 5302 2614 5304 2614 5304 2615 5305 2617 5306 2618 5307 2618 5307 2618 5308 2619 5308 2619 5309 2619 5309 2620 5309 2621 5311 2621 5312 2622 5312 2623 5312 2623 5312 2624 5312 2624 5313 2624 5313 2624 5314 2625 5315 2625 5315 2625 5317 2626 5319 2628 5319 2628 5321 2630 5321 2631 5321 2633 5320 2633 5320 2633 5320 2634 5319 2634 5320 2635 5320 2635 5320 2636 5318 2639 5317 2640 5315 2637 5314 2635 5314 2635 5313 2634 5314 2634 5314 2633 5314 2632 5314 2629 5312 2626 5312 2626 5311 2625 5311 2624 5311 2624 M 5127 2641 5127 2604 5127 2604 5128 2604 5128 2604 5130 2604 5131 2604 5131 2605 5131 2605 5132 2605 5133 2606 5133 2606 5133 2606 5134 2606 5134 2606 5134 2606 5136 2607 5137 2607 5138 2608 5141 2609 5141 2610 5141 2610 5142 2610 5142 2610 5142 2610 5143 2610 5143 2610 5143 2610 5143 2610 5144 2611 5144 2611 5145 2611 5147 2612 5152 2614 5154 2614 5158 2616 5159 2616 5160 2616 5160 2616 5160 2616 5161 2616 5161 2616 5162 2616 5162 2616 5162 2616 5163 2616 5163 2617 5163 2617 5164 2617 5165 2617 5165 2617 5166 2617 5166 2617 5167 2617 5168 2618 5168 2618 5169 2619 5169 2619 5169 2619 5169 2619 5171 2620 5171 2620 5172 2620 5174 2622 5174 2623 5175 2623 5175 2623 5175 2623 5179 2624 5179 2624 5179 2624 5179 2623 5180 2623 5181 2623 5183 2624 5184 2624 5184 2624 5184 2625 5184 2625 5184 2625 5184 2626 5184 2626 5184 2626 5184 2626 5185 2627 5185 2627 5185 2627 5186 2627 5187 2627 5187 2627 5189 2628 5189 2628 5191 2630 5191 2630 5191 2630 5191 2631 5191 2631 5192 2632 5192 2632 5192 2632 5193 2633 5195 2633 5195 2632 5196 2632 5196 2632 5196 2633 5198 2634 5198 2634 5199 2636 5201 2638 5202 2639 5202 2639 5203 2639 5203 2641 5204 2643 5204 2646 5203 2647 5203 2647 5203 2649 5203 2649 5203 2650 5203 2650 5203 2650 5204 2650 5205 2650 5206 2650 5206 2650 5207 2650 5208 2651 5210 2651 5210 2651 5212 2652 5213 2652 5214 2652 5214 2652 5215 2653 5216 2653 5217 2654 5217 2654 5217 2654 5218 2654 5218 2655 5218 2655 5219 2655 5219 2655 5220 2656 5221 2656 5221 2656 5222 2656 5222 2656 5222 2657 5222 2657 5223 2657 5223 2657 5224 2657 5225 2658 5227 2658 5227 2658 5227 2657 5227 2657 5230 2658 5230 2658 5231 2658 5232 2659 5232 2659 5233 2661 5235 2663 5236 2664 5236 2664 5236 2665 5237 2666 5237 2666 5237 2669 5237 2669 5236 2669 5236 2670 5236 2670 5235 2670 5235 2670 5232 2670 5230 2670 5228 2670 5226 2670 5226 2670 5226 2670 5226 2670 5226 2670 5225 2670 5224 2670 5222 2670 5222 2670 5222 2671 5222 2671 5222 2672 5222 2673 5222 2674 5222 2674 5223 2675 5224 2675 5225 2678 5225 2678 5225 2678 5225 2678 5225 2678 5225 2679 5225 2679 5225 2680 5225 2680 5226 2682 5226 2682 5228 2682 5228 2682 5228 2682 5230 2683 5230 2684 5233 2687 5234 2687 5234 2688 5234 2688 5234 2688 5234 2689 5234 2689 5235 2689 5235 2689 5235 2689 5235 2689 5236 2689 5237 2689 5237 2689 5237 2689 5237 2689 5237 2690 5238 2690 5238 2690 5239 2691 5239 2691 5239 2691 5239 2691 5239 2691 5241 2691 5241 2691 5242 2694 5242 2695 5242 2695 5242 2695 5242 2696 5242 2697 5242 2698 5242 2699 5243 2699 5243 2699 5243 2700 5244 2700 5244 2700 5244 2700 5245 2700 5246 2701 5247 2702 5247 2702 5247 2704 5247 2704 5247 2706 5247 2706 5248 2707 5249 2708 5249 2708 5250 2708 5250 2708 5251 2708 5251 2708 5252 2708 5256 2707 5257 2706 5258 2706 5259 2706 5260 2707 5260 2707 5260 2708 5260 2709 5260 2709 5260 2709 5258 2712 5258 2712 5258 2712 5258 2713 5258 2713 5258 2714 5259 2714 5259 2714 5259 2714 5259 2714 5260 2714 5260 2715 5262 2715 5262 2716 5262 2716 5262 2716 5265 2716 5267 2716 5267 2716 5267 2716 5269 2717 5269 2717 5270 2717 5270 2716 5271 2716 5271 2716 5272 2717 5272 2718 5272 2718 5271 2718 5270 2719 5269 2719 5268 2719 5268 2719 5267 2719 5267 2719 5266 2719 5266 2720 5266 2720 5267 2721 5269 2722 5269 2723 5270 2723 5270 2723 5271 2724 5271 2723 5271 2723 5274 2724 5275 2724 5275 2725 5276 2725 5276 2725 5276 2725 5277 2725 5277 2726 5280 2726 5281 2727 5281 2727 5283 2726 5284 2726 5284 2726 5284 2726 5284 2726 5285 2726 5285 2726 5285 2726 5285 2726 5282 2727 5281 2728 5280 2728 5280 2728 5279 2727 5278 2727 5278 2727 5277 2727 5277 2727 5277 2728 5276 2728 5276 2729 5280 2730 5281 2730 5281 2730 5282 2731 5282 2731 5282 2731 5280 2732 5280 2732 5279 2732 5279 2732 5278 2732 5278 2733 5278 2733 5277 2733 5275 2733 5274 2733 5273 2733 5272 2733 5272 2732 5271 2732 5271 2731 5269 2731 5269 2731 5269 2731 5268 2731 5269 2730 5269 2730 5270 2730 5270 2730 5270 2730 5271 2730 5271 2730 5271 2730 5272 2730 5272 2730 5271 2729 5269 2729 5268 2728 5267 2728 5267 2728 5267 2728 5266 2728 5266 2728 5265 2728 5265 2728 5264 2728 5263 2728 5260 2727 5258 2727 5258 2726 5258 2726 5257 2726 5257 2726 5256 2726 5256 2726 5255 2726 5255 2726 5255 2727 5254 2726 5252 2726 5250 2725 5250 2725 5249 2725 5246 2725 5245 2725 5245 2725 5244 2725 5244 2725 5244 2725 5244 2724 5244 2724 5241 2723 5241 2724 5241 2724 5241 2724 5240 2724 5240 2725 5239 2725 5238 2725 5238 2724 5238 2724 5237 2723 5237 2723 5235 2723 5235 2723 5233 2722 5233 2722 5232 2721 5231 2720 5231 2720 5231 2720 5231 2719 5231 2719 5231 2719 5229 2716 5228 2715 5228 2715 5227 2714 5225 2713 5224 2713 5225 2713 5225 2714 5224 2714 5224 2714 5223 2713 5223 2712 5222 2711 5222 2711 5221 2711 5221 2709 5221 2708 5222 2708 5222 2708 5223 2707 5223 2707 5222 2707 5222 2707 5222 2707 5222 2707 5222 2708 5220 2708 5217 2707 5217 2707 5216 2706 5216 2706 5216 2705 5216 2705 5216 2704 5216 2703 5216 2702 5215 2702 5214 2700 5214 2700 5214 2700 5213 2700 5213 2700 5213 2700 5213 2699 5212 2698 5211 2697 5211 2697 5211 2696 5211 2696 5211 2696 5211 2695 5211 2695 5211 2695 5210 2695 5209 2693 5209 2692 5208 2692 5207 2691 5207 2691 5206 2691 5206 2691 5205 2691 5205 2691 5204 2691 5204 2690 5204 2690 5202 2690 5201 2690 5201 2689 5201 2689 5199 2689 5199 2689 5199 2689 5198 2689 5198 2689 5198 2689 5198 2689 5195 2688 5194 2688 5194 2687 5194 2687 5194 2688 5192 2687 5191 2687 5189 2687 5188 2686 5189 2686 5189 2686 5189 2685 5189 2684 5188 2684 5188 2685 5188 2685 5188 2685 5185 2685 5184 2685 5184 2684 5184 2684 5184 2683 5184 2683 5183 2682 5183 2682 5183 2682 5183 2684 5182 2683 5182 2683 5182 2683 5182 2685 5182 2686 5181 2686 5181 2686 5181 2686 5181 2686 5181 2686 5181 2685 5181 2685 5180 2684 5179 2684 5179 2685 5179 2685 5179 2686 5179 2687 5178 2687 5177 2687 5177 2687 5174 2685 5173 2685 5173 2684 5172 2684 5172 2684 5172 2684 5172 2684 5172 2683 5171 2683 5171 2682 5171 2682 5170 2682 5170 2682 5171 2684 5172 2686 5173 2686 5173 2687 5173 2687 5173 2687 5173 2687 5173 2688 5174 2690 5174 2690 5173 2691 5173 2691 5172 2691 5171 2691 5171 2691 5171 2690 5170 2690 5169 2690 5169 2690 5169 2690 5168 2690 5168 2690 5168 2690 5167 2690 5167 2690 5167 2690 5166 2689 5166 2689 5166 2689 5166 2689 5165 2689 5165 2689 5166 2690 5168 2691 5169 2693 5169 2694 5169 2694 5169 2694 5169 2694 5168 2694 5168 2694 5167 2694 5167 2694 5165 2694 5164 2694 5163 2695 5162 2695 5160 2695 5160 2695 5160 2695 5160 2695 5159 2695 5159 2696 5159 2696 5159 2696 5158 2696 5158 2696 5158 2695 5157 2695 5157 2695 5157 2695 5156 2695 5155 2695 5154 2695 5154 2695 5153 2695 5153 2695 5152 2695 5152 2695 5152 2695 5152 2695 5151 2696 5151 2696 5151 2696 5151 2696 5150 2696 5150 2695 5150 2695 5149 2695 5149 2694 5149 2694 5149 2694 5149 2693 5148 2693 5148 2693 5148 2693 5147 2693 5146 2693 5145 2694 5145 2694 5145 2694 5146 2694 5146 2694 5146 2694 5146 2694 5147 2693 5148 2693 5148 2693 5148 2693 5149 2694 5149 2694 5149 2695 5149 2695 5149 2695 5150 2696 5150 2696 5150 2696 5151 2696 5151 2696 5151 2696 5151 2696 5152 2696 5152 2696 5152 2695 5153 2695 5153 2695 5155 2695 5155 2696 5156 2696 5156 2696 5158 2697 5158 2697 5158 2697 5159 2697 5160 2697 5160 2698 5161 2698 5161 2698 5162 2699 5163 2700 5164 2700 5165 2702 5165 2703 5165 2703 5165 2706 5165 2706 5165 2706 5164 2707 5164 2707 5164 2707 5164 2707 5163 2707 5163 2707 5163 2707 5162 2707 5160 2708 5159 2708 5157 2709 5157 2710 5156 2710 5156 2710 5156 2710 5155 2711 5155 2711 5155 2711 5154 2711 5154 2712 5153 2712 5153 2712 5152 2712 5152 2711 5152 2711 5152 2711 5151 2711 5151 2710 5151 2710 5150 2710 5146 2709 5144 2709 5142 2710 5139 2710 5137 2710 5135 2710 5135 2710 5135 2709 5134 2709 5134 2709 5134 2709 5133 2709 5133 2709 5132 2709 5132 2709 5132 2709 5132 2709 5131 2709 5131 2710 5130 2710 5130 2710 5130 2710 5129 2710 5129 2710 5129 2710 5128 2709 5127 2708 5127 2708 5127 2673 5127 2673 5127 2673 5127 2673 5126 2673 5126 2672 5125 2671 5125 2671 5125 2670 5125 2669 5125 2668 5125 2668 5126 2666 5126 2666 5126 2666 5126 2666 5126 2665 5127 2664 5127 2664 5127 2664 5127 2658 5127 2641 M 5283 2610 5283 2610 5283 2610 5283 2610 5285 2609 5285 2609 5286 2609 5287 2610 5287 2610 5285 2610 5285 2610 5285 2610 5284 2610 5283 2610 M 5313 2614 5313 2614 5312 2614 5312 2613 5311 2612 5311 2612 5312 2612 5312 2611 5312 2611 5313 2611 5313 2612 5313 2613 5313 2614 5313 2614 5313 2614 M 5258 2652 5259 2652 5260 2652 5262 2651 5264 2651 5264 2651 5264 2651 5265 2651 5266 2651 5266 2651 5266 2651 5269 2651 5269 2651 5269 2651 5270 2650 5270 2650 5270 2650 5271 2649 5271 2649 5270 2649 5270 2649 5270 2648 5270 2648 5270 2647 5270 2647 5271 2645 5271 2643 5271 2643 5271 2643 5272 2642 5273 2643 5273 2643 5274 2643 5274 2643 5274 2644 5274 2644 5273 2644 5273 2644 5273 2644 5272 2644 5272 2645 5272 2645 5272 2645 5272 2645 5272 2645 5272 2647 5272 2648 5273 2651 5273 2651 5273 2651 5274 2651 5275 2651 5276 2651 5276 2651 5276 2651 5276 2651 5277 2650 5278 2650 5279 2649 5279 2650 5280 2650 5280 2650 5280 2651 5281 2651 5281 2651 5281 2651 5282 2651 5282 2651 5285 2650 5286 2650 5286 2649 5287 2649 5287 2649 5287 2649 5287 2649 5287 2648 5287 2648 5287 2647 5287 2647 5287 2646 5288 2646 5288 2645 5288 2645 5288 2645 5288 2645 5291 2642 5293 2642 5294 2641 5295 2641 5297 2642 5297 2642 5297 2641 5298 2641 5298 2641 5298 2640 5298 2639 5297 2636 5297 2634 5296 2633 5296 2632 5295 2630 5295 2630 5295 2630 5295 2629 5299 2630 5300 2630 5300 2630 5301 2630 5301 2631 5301 2631 5301 2631 5301 2631 5301 2632 5302 2632 5303 2632 5305 2630 5305 2629 5305 2629 5305 2629 5305 2629 5305 2629 5306 2629 5306 2629 5307 2630 5307 2630 5307 2630 5306 2630 5306 2630 5306 2630 5306 2630 5306 2630 5305 2630 5306 2631 5306 2631 5306 2631 5307 2632 5307 2632 5308 2632 5308 2632 5309 2636 5309 2636 5309 2637 5309 2637 5309 2639 5309 2639 5309 2639 5308 2640 5307 2641 5307 2642 5307 2642 5305 2642 5305 2642 5305 2642 5304 2642 5304 2642 5303 2642 5302 2642 5302 2642 5302 2642 5302 2643 5302 2644 5302 2645 5302 2645 5303 2645 5304 2646 5305 2647 5305 2647 5305 2648 5305 2648 5305 2648 5305 2649 5305 2649 5304 2650 5302 2651 5300 2652 5300 2652 5300 2652 5299 2652 5299 2651 5298 2651 5295 2651 5294 2651 5294 2651 5294 2652 5293 2654 5293 2655 5292 2656 5289 2658 5287 2659 5286 2659 5285 2659 5284 2660 5284 2660 5284 2660 5283 2661 5283 2660 5282 2661 5282 2661 5281 2661 5281 2661 5281 2661 5279 2662 5279 2662 5278 2663 5278 2663 5277 2663 5274 2663 5274 2663 5274 2662 5274 2662 5272 2663 5271 2663 5271 2664 5271 2663 5271 2663 5270 2663 5269 2663 5268 2663 5266 2663 5265 2663 5265 2663 5264 2663 5264 2662 5263 2661 5263 2661 5263 2660 5262 2660 5262 2660 5260 2659 5260 2659 5259 2659 5257 2660 5257 2661 5257 2661 5256 2661 5256 2661 5256 2661 5256 2661 5256 2661 5256 2661 5256 2660 5256 2660 5256 2659 5255 2659 5255 2659 5254 2658 5254 2658 5253 2658 5253 2657 5251 2656 5250 2656 5248 2656 5247 2656 5245 2655 5245 2655 5245 2654 5244 2654 5244 2653 5244 2653 5244 2652 5245 2650 5245 2650 5246 2650 5246 2650 5247 2650 5247 2650 5249 2650 5253 2650 5254 2650 5254 2650 5255 2650 5255 2650 5257 2651 5258 2651 5258 2652 5258 2652 M 5206 2639 5206 2639 5206 2639 5206 2638 5205 2638 5205 2637 5205 2637 5205 2636 5205 2636 5206 2636 5206 2635 5207 2635 5207 2635 5207 2635 5208 2636 5208 2637 5208 2638 5207 2638 5207 2638 5206 2639 5206 2639 M 5345 2650 5345 2649 5344 2648 5344 2647 5343 2644 5343 2644 5343 2644 5343 2644 5344 2644 5344 2643 5345 2643 5345 2643 5345 2643 5345 2643 5346 2646 5346 2646 5346 2649 5346 2649 5346 2649 5345 2650 M 5225 2650 5225 2649 5223 2648 5223 2647 5223 2646 5223 2646 5225 2645 5225 2645 5225 2645 5226 2646 5226 2647 5227 2648 5226 2649 5225 2650 5225 2650 M 5357 2658 5357 2660 5358 2660 5358 2661 5359 2661 5360 2662 5361 2662 5363 2664 5364 2664 5364 2665 5365 2667 5366 2670 5366 2671 5365 2671 5365 2671 5364 2671 5364 2671 5363 2671 5363 2672 5362 2672 5361 2672 5360 2672 5358 2672 5358 2671 5356 2670 5355 2668 5354 2667 5354 2667 5354 2666 5354 2665 5354 2664 5354 2664 5354 2663 5354 2663 5353 2663 5352 2663 5352 2662 5351 2662 5350 2661 5349 2660 5348 2659 5347 2658 5346 2655 5346 2653 5347 2651 5347 2650 5349 2651 5349 2651 5350 2651 5352 2651 5353 2654 5354 2656 5355 2657 5357 2658 5357 2658 5357 2658 M 5239 2656 5239 2655 5238 2655 5238 2655 5238 2655 5237 2654 5236 2653 5236 2653 5235 2652 5235 2652 5235 2651 5235 2650 5236 2650 5236 2650 5237 2650 5239 2652 5239 2652 5240 2652 5240 2652 5240 2653 5240 2653 5240 2653 5240 2653 5240 2654 5240 2654 5240 2654 5240 2655 5240 2655 5239 2656 5239 2656 5239 2656 M 5168 2698 5168 2698 5167 2698 5167 2698 5165 2697 5164 2697 5164 2696 5164 2696 5164 2696 5165 2696 5167 2696 5168 2696 5169 2698 5169 2698 5168 2698 5168 2698 M 5169 2702 5169 2701 5168 2701 5167 2700 5165 2699 5163 2698 5163 2698 5163 2698 5163 2698 5162 2697 5162 2697 5163 2697 5163 2697 5163 2698 5163 2698 5163 2698 5164 2698 5165 2698 5166 2698 5166 2699 5169 2701 5169 2701 5169 2701 5169 2702 5169 2702 M 5289 2704 5288 2703 5288 2700 5288 2699 5287 2699 5287 2699 5287 2699 5287 2698 5287 2698 5288 2697 5288 2697 5289 2697 5289 2700 5288 2702 5288 2702 5288 2702 5289 2702 5289 2704 M 5316 2710 5316 2710 5314 2708 5313 2707 5312 2707 5312 2707 5311 2707 5311 2707 5311 2706 5313 2706 5313 2706 5316 2706 5318 2707 5318 2707 5319 2708 5319 2709 5319 2709 5316 2710 M 5276 2715 5276 2715 5274 2713 5274 2713 5273 2712 5272 2712 5272 2711 5273 2711 5273 2710 5273 2710 5274 2710 5274 2710 5275 2710 5276 2711 5277 2712 5277 2714 5276 2715 5276 2715 M 5284 2718 5284 2717 5284 2717 5283 2717 5282 2717 5281 2717 5281 2717 5279 2716 5279 2716 5278 2713 5278 2713 5278 2713 5278 2713 5278 2712 5278 2712 5278 2712 5279 2712 5279 2712 5279 2712 5280 2712 5280 2712 5281 2713 5281 2713 5281 2713 5282 2713 5283 2713 5283 2713 5283 2713 5283 2713 5284 2713 5284 2714 5285 2715 5286 2717 5286 2717 5286 2717 5285 2717 5285 2717 5285 2717 5284 2718 M 5290 2725 5290 2725 5289 2725 5288 2724 5288 2724 5287 2724 5287 2724 5287 2724 5286 2724 5286 2724 5286 2724 5285 2722 5285 2721 5284 2720 5283 2719 5283 2718 5283 2718 5283 2718 5283 2718 5284 2718 5284 2718 5285 2719 5286 2720 5286 2721 5287 2722 5287 2722 5288 2722 5288 2723 5289 2723 5289 2723 5289 2723 5289 2723 5289 2722 5289 2722 5290 2721 5290 2721 5291 2721 5291 2721 5292 2721 5292 2722 5292 2722 5291 2723 5291 2724 5291 2724 5290 2725 5290 2725 5290 2725 M 5285 2733 5285 2733 5284 2732 5283 2732 5283 2732 5284 2731 5285 2731 5285 2731 5285 2731 5285 2733 5285 2733 M 5315 2734 5314 2734 5314 2733 5312 2733 5312 2733 5311 2732 5312 2732 5312 2732 5313 2732 5314 2733 5315 2732 5315 2732 5316 2732 5317 2733 5317 2733 5317 2733 5316 2733 5316 2733 5315 2734 M 5337 2745 5336 2745 5336 2745 5335 2744 5335 2744 5336 2743 5337 2743 5338 2743 5339 2744 5339 2744 5339 2744 5339 2745 5339 2745 5339 2745 5338 2745 5337 2745 5337 2745 M 5328 2748 5327 2748 5326 2747 5325 2747 5325 2747 5325 2747 5325 2747 5325 2746 5324 2746 5323 2746 5322 2744 5322 2744 5322 2743 5322 2743 5323 2744 5325 2745 5325 2745 5326 2745 5326 2745 5327 2746 5328 2746 5328 2746 5329 2746 5330 2747 5331 2747 5331 2748 5331 2748 5330 2748 5328 2748 5328 2748 5328 2748" />
+<path id="pw" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5024 2445 5024 2445 5023 2444 5024 2441 5024 2441 5024 2441 5025 2441 5025 2441 5025 2441 5025 2441 5026 2441 5026 2440 5025 2440 5025 2440 5025 2439 5025 2439 5025 2439 5025 2439 5026 2439 5026 2439 5026 2440 5026 2440 5026 2440 5026 2441 5026 2441 5025 2443 5024 2445 5024 2445" />
+<path id="gw" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2637 2375 2637 2375 2636 2375 2635 2374 2634 2373 2635 2372 2636 2372 2636 2372 2635 2371 2634 2371 2633 2372 2633 2372 2632 2372 2632 2372 2630 2372 2630 2371 2630 2371 2629 2371 2629 2371 2628 2372 2627 2372 2626 2373 2625 2374 2625 2374 2624 2374 2622 2375 2620 2375 2620 2374 2621 2373 2622 2371 2622 2371 2623 2371 2623 2371 2624 2371 2624 2371 2624 2371 2624 2371 2623 2371 2623 2371 2622 2371 2621 2371 2621 2371 2620 2372 2620 2372 2620 2372 2618 2373 2616 2372 2615 2372 2615 2371 2614 2371 2614 2370 2614 2369 2614 2368 2615 2367 2616 2367 2616 2367 2617 2366 2618 2366 2616 2366 2615 2367 2614 2368 2612 2368 2612 2368 2611 2367 2611 2367 2610 2366 2609 2365 2608 2366 2608 2365 2608 2365 2609 2365 2611 2365 2611 2365 2613 2365 2616 2363 2618 2363 2618 2363 2619 2363 2619 2363 2619 2364 2620 2364 2621 2364 2622 2364 2624 2364 2626 2363 2629 2362 2630 2361 2630 2361 2632 2360 2637 2360 2637 2360 2641 2360 2643 2360 2645 2360 2646 2360 2649 2360 2651 2360 2654 2360 2656 2360 2656 2361 2656 2361 2656 2361 2656 2362 2656 2362 2657 2363 2657 2363 2657 2364 2657 2366 2656 2366 2656 2366 2656 2367 2654 2367 2655 2366 2654 2366 2652 2368 2652 2368 2653 2368 2653 2369 2655 2370 2655 2370 2656 2371 2656 2374 2656 2375 2655 2376 2651 2377 2650 2377 2650 2377 2650 2377 2649 2376 2647 2376 2646 2377 2645 2378 2644 2378 2643 2379 2643 2379 2642 2379 2642 2379 2641 2379 2641 2379 2640 2379 2639 2381 2639 2381 2638 2382 2638 2383 2638 2383 2638 2384 2637 2386 2636 2387 2635 2387 2635 2388 2635 2388 2634 2388 2634 2387 2634 2386 2634 2385 2635 2385 2635 2384 2634 2385 2633 2385 2633 2386 2633 2386 2632 2387 2632 2387 2631 2386 2632 2386 2632 2385 2632 2385 2632 2383 2632 2383 2632 2384 2632 2384 2632 2385 2631 2385 2631 2385 2630 2385 2629 2384 2629 2382 2629 2382 2629 2381 2630 2381 2630 2381 2630 2381 2631 2380 2631 2380 2631 2380 2630 2381 2630 2381 2629 2380 2629 2381 2628 2381 2627 2381 2628 2379 2630 2377 2631 2377 2632 2377 2634 2377 2634 2378 2635 2378 2635 2377 2634 2377 2633 2376 2631 2376 2630 2377 2630 2376 2630 2376 2629 2377 2629 2377 2629 2378 2628 2378 2628 2377 2628 2377 2629 2376 2629 2376 2629 2376 2628 2376 2627 2376 2627 2376 2627 2375 2627 2374 2628 2373 2628 2373 2629 2373 2630 2373 2630 2373 2631 2373 2632 2373 2632 2373 2633 2373 2634 2373 2634 2374 2636 2375 2636 2375 2637 2375 2637 2375 M 2618 2375 2618 2375 2617 2374 2617 2373 2617 2373 2620 2372 2620 2373 2620 2373 2619 2375 2618 2375 M 2619 2380 2618 2380 2619 2378 2620 2378 2620 2377 2621 2377 2621 2378 2621 2378 2621 2379 2621 2380 2620 2380 2619 2380 M 2614 2379 2614 2379 2614 2379 2614 2379 2613 2379 2613 2379 2613 2379 2613 2378 2613 2378 2615 2378 2616 2378 2616 2378 2616 2378 2615 2378 2615 2379 2615 2379 2614 2379 M 2623 2384 2623 2384 2623 2384 2623 2383 2623 2382 2624 2382 2624 2382 2625 2382 2625 2383 2625 2383 2624 2384 2623 2384 M 2617 2386 2617 2386 2616 2386 2616 2386 2616 2386 2616 2385 2616 2385 2616 2385 2617 2384 2618 2384 2618 2384 2619 2384 2618 2384 2618 2385 2619 2385 2619 2385 2619 2385 2619 2386 2618 2386 2618 2386 2617 2386" />
+<path id="qa" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3697 2167 3697 2169 3695 2170 3695 2170 3695 2170 3695 2169 3695 2169 3694 2169 3693 2169 3693 2169 3693 2169 3692 2170 3691 2170 3689 2170 3687 2168 3687 2167 3687 2167 3687 2167 3687 2165 3687 2165 3686 2162 3686 2161 3686 2161 3686 2160 3686 2159 3686 2156 3686 2155 3686 2155 3687 2155 3687 2156 3687 2156 3687 2155 3687 2154 3687 2154 3688 2154 3689 2154 3689 2153 3689 2153 3688 2153 3688 2153 3688 2152 3688 2152 3688 2151 3688 2150 3689 2151 3689 2150 3689 2150 3689 2150 3689 2150 3689 2149 3690 2148 3690 2147 3692 2145 3693 2145 3695 2145 3695 2146 3695 2146 3695 2147 3696 2148 3696 2148 3697 2148 3698 2148 3699 2149 3699 2151 3699 2151 3699 2152 3698 2153 3698 2153 3698 2153 3697 2154 3697 2154 3697 2155 3697 2156 3698 2156 3698 2156 3698 2157 3698 2158 3698 2158 3698 2159 3699 2159 3699 2159 3699 2159 3699 2160 3699 2160 3699 2163 3699 2164 3698 2165 3698 2166 3697 2167 3697 2167" />
+<path id="re" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3765 2898 3765 2899 3766 2900 3766 2900 3767 2900 3767 2900 3767 2900 3767 2901 3767 2903 3766 2903 3766 2904 3765 2904 3764 2904 3764 2904 3762 2904 3760 2903 3759 2902 3759 2902 3758 2901 3757 2899 3757 2899 3757 2898 3758 2897 3760 2896 3760 2896 3761 2896 3763 2896 3763 2896 3764 2896 3764 2896 3764 2897 3765 2897 3765 2897 3765 2897 3765 2898" />
+<path id="mh" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5574 2330 5574 2330 5574 2329 5574 2329 5574 2330 5574 2330 M 5468 2381 5468 2381 5468 2381 5468 2381 M 5590 2396 5590 2396 5589 2396 5590 2396 5590 2396 5590 2396 M 5519 2416 5519 2416 5519 2415 5519 2416 5519 2416 M 5554 2423 5554 2423 5554 2423 5554 2423 5554 2423 5554 2423 M 5571 2446 5571 2446 5570 2446 5569 2446 5569 2446 5569 2445 5571 2446 5571 2446 M 5560 2473 5560 2473 5560 2473 5560 2472 5560 2473 5560 2473 5560 2473" />
+<path id="ro" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3237 1856 3237 1855 3237 1855 3237 1855 3236 1855 3236 1855 3235 1854 3235 1854 3234 1852 3234 1852 3236 1851 3236 1851 3237 1851 3237 1851 3238 1851 3238 1851 3239 1851 3238 1850 3237 1850 3237 1850 3236 1850 3236 1850 3235 1849 3235 1849 3234 1849 3234 1848 3233 1848 3231 1849 3231 1850 3231 1850 3231 1850 3229 1852 3229 1852 3228 1852 3227 1851 3227 1850 3227 1850 3226 1850 3225 1849 3223 1849 3222 1849 3221 1849 3220 1849 3220 1848 3220 1848 3219 1847 3219 1847 3218 1847 3218 1847 3217 1847 3216 1846 3216 1846 3217 1846 3218 1846 3218 1846 3218 1846 3219 1845 3219 1845 3219 1845 3218 1844 3218 1844 3217 1844 3217 1844 3216 1844 3217 1843 3219 1841 3218 1841 3218 1841 3217 1840 3216 1840 3215 1840 3211 1839 3210 1838 3207 1836 3207 1836 3207 1834 3207 1834 3207 1833 3207 1832 3207 1831 3206 1832 3206 1832 3205 1831 3205 1831 3204 1829 3203 1829 3203 1829 3200 1828 3200 1828 3199 1827 3199 1826 3199 1826 3200 1825 3202 1825 3203 1825 3203 1825 3204 1825 3204 1826 3205 1825 3206 1825 3206 1825 3206 1825 3207 1824 3207 1824 3207 1824 3208 1823 3208 1823 3208 1823 3210 1824 3211 1824 3212 1824 3213 1823 3213 1823 3213 1822 3214 1821 3214 1821 3215 1820 3215 1819 3215 1818 3216 1818 3218 1817 3218 1817 3218 1817 3219 1816 3218 1816 3219 1815 3220 1814 3221 1812 3221 1812 3221 1811 3221 1811 3222 1811 3222 1810 3223 1810 3224 1809 3224 1808 3224 1807 3225 1806 3226 1806 3226 1806 3227 1806 3227 1805 3227 1805 3227 1804 3227 1804 3227 1803 3228 1803 3229 1802 3229 1802 3229 1802 3229 1802 3230 1801 3231 1800 3232 1800 3234 1799 3234 1799 3234 1799 3235 1800 3236 1800 3237 1799 3237 1799 3239 1798 3241 1797 3241 1797 3241 1796 3243 1796 3244 1796 3244 1795 3244 1795 3244 1794 3245 1794 3245 1794 3247 1794 3247 1795 3247 1795 3248 1795 3249 1796 3250 1796 3251 1796 3251 1796 3256 1796 3258 1796 3259 1797 3260 1797 3260 1797 3262 1797 3264 1797 3265 1797 3266 1796 3267 1797 3267 1797 3268 1797 3268 1797 3269 1798 3269 1798 3269 1798 3270 1798 3271 1799 3271 1799 3271 1799 3272 1800 3273 1800 3273 1800 3274 1800 3274 1800 3274 1800 3275 1800 3275 1800 3276 1800 3276 1800 3277 1799 3277 1799 3278 1798 3278 1798 3280 1797 3282 1797 3283 1797 3283 1797 3284 1797 3285 1797 3287 1797 3287 1797 3288 1796 3289 1796 3291 1796 3292 1796 3292 1796 3293 1796 3293 1796 3295 1795 3295 1793 3298 1792 3298 1792 3299 1793 3299 1792 3300 1792 3302 1792 3303 1792 3306 1793 3306 1793 3309 1796 3309 1797 3310 1798 3310 1799 3311 1801 3311 1801 3311 1802 3312 1802 3313 1803 3314 1804 3315 1806 3316 1807 3317 1807 3318 1807 3318 1808 3319 1809 3319 1809 3320 1810 3321 1811 3322 1811 3323 1812 3323 1812 3324 1813 3324 1814 3324 1814 3324 1814 3325 1816 3325 1817 3326 1817 3326 1818 3326 1821 3325 1823 3324 1825 3324 1826 3324 1827 3324 1828 3324 1828 3324 1829 3325 1832 3325 1833 3325 1834 3324 1834 3323 1834 3325 1836 3326 1837 3326 1837 3326 1837 3327 1837 3327 1837 3327 1838 3327 1838 3328 1839 3328 1839 3331 1840 3333 1840 3335 1840 3336 1839 3338 1839 3342 1837 3343 1837 3345 1837 3346 1837 3347 1838 3348 1838 3348 1838 3349 1839 3349 1839 3349 1839 3349 1840 3348 1840 3348 1841 3349 1842 3348 1844 3348 1846 3347 1847 3345 1847 3344 1847 3344 1847 3342 1847 3342 1847 3339 1847 3339 1846 3339 1845 3339 1845 3340 1844 3339 1844 3338 1844 3337 1844 3336 1845 3336 1846 3336 1846 3337 1847 3337 1847 3337 1848 3336 1848 3335 1848 3335 1849 3335 1849 3335 1849 3335 1849 3336 1849 3337 1849 3337 1849 3337 1848 3337 1849 3338 1849 3338 1849 3338 1849 3337 1850 3338 1849 3338 1849 3335 1850 3335 1850 3334 1850 3334 1851 3335 1851 3337 1850 3337 1850 3336 1851 3336 1852 3335 1852 3335 1852 3334 1853 3333 1854 3332 1855 3332 1855 3332 1857 3333 1860 3333 1860 3332 1862 3332 1862 3332 1863 3331 1864 3332 1864 3330 1864 3329 1864 3326 1863 3326 1863 3325 1863 3324 1863 3323 1862 3322 1862 3322 1861 3321 1860 3321 1860 3320 1860 3320 1860 3319 1860 3318 1860 3318 1860 3317 1860 3317 1859 3317 1859 3316 1859 3314 1859 3313 1859 3311 1858 3311 1858 3311 1858 3310 1858 3310 1858 3309 1858 3309 1858 3308 1857 3307 1857 3305 1858 3304 1858 3304 1858 3303 1858 3301 1859 3298 1859 3297 1859 3297 1859 3296 1859 3295 1859 3292 1860 3292 1860 3292 1861 3289 1862 3288 1863 3287 1864 3287 1864 3286 1865 3285 1865 3284 1865 3283 1865 3282 1865 3281 1866 3280 1866 3280 1866 3279 1865 3279 1865 3278 1865 3275 1864 3272 1864 3271 1864 3270 1864 3269 1864 3268 1864 3267 1864 3267 1864 3266 1864 3266 1864 3265 1864 3265 1864 3264 1865 3263 1865 3263 1865 3263 1865 3262 1865 3262 1865 3261 1865 3261 1865 3260 1865 3259 1864 3258 1864 3255 1863 3252 1863 3252 1863 3251 1863 3251 1863 3251 1862 3249 1862 3249 1862 3247 1862 3247 1862 3246 1862 3246 1862 3245 1863 3245 1863 3243 1863 3242 1863 3241 1862 3240 1862 3240 1862 3240 1861 3240 1860 3241 1860 3242 1860 3242 1860 3243 1859 3243 1859 3243 1858 3242 1858 3242 1858 3241 1858 3237 1856 3237 1856" />
+<path id="ph" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4816 2255 4814 2254 4814 2254 4814 2253 4814 2253 4814 2253 4816 2253 4816 2253 4816 2254 4816 2255 4816 2255 4816 2255 M 4821 2262 4821 2262 4821 2261 4821 2261 4822 2259 4822 2259 4822 2259 4823 2259 4823 2259 4824 2260 4823 2260 4822 2262 4821 2262 M 4841 2344 4842 2344 4844 2343 4845 2342 4845 2342 4845 2342 4844 2340 4844 2340 4843 2339 4843 2339 4843 2339 4844 2338 4845 2338 4845 2338 4846 2338 4846 2339 4847 2339 4849 2340 4850 2341 4854 2342 4855 2343 4855 2343 4855 2343 4855 2344 4853 2344 4852 2344 4852 2344 4851 2344 4849 2343 4849 2343 4849 2343 4849 2344 4848 2344 4848 2345 4848 2346 4848 2346 4850 2347 4850 2347 4850 2347 4851 2348 4851 2349 4852 2350 4852 2350 4853 2350 4853 2350 4853 2351 4853 2351 4853 2351 4853 2351 4853 2351 4853 2351 4853 2351 4853 2351 4853 2351 4852 2351 4852 2351 4852 2351 4852 2352 4852 2352 4852 2352 4852 2353 4852 2354 4852 2354 4852 2354 4852 2354 4853 2354 4853 2353 4853 2353 4854 2353 4854 2353 4855 2353 4855 2353 4856 2354 4856 2354 4856 2354 4857 2355 4857 2355 4857 2354 4857 2354 4857 2354 4858 2354 4858 2354 4859 2354 4859 2354 4859 2354 4859 2355 4858 2355 4858 2356 4858 2357 4858 2358 4858 2360 4858 2360 4857 2362 4857 2362 4856 2362 4856 2362 4855 2362 4855 2362 4854 2360 4853 2360 4853 2359 4853 2358 4853 2357 4854 2357 4854 2357 4855 2357 4856 2357 4856 2357 4856 2357 4856 2356 4856 2356 4856 2356 4856 2355 4854 2355 4854 2355 4854 2356 4853 2357 4853 2357 4852 2357 4851 2357 4850 2357 4849 2356 4848 2355 4847 2355 4847 2354 4846 2354 4846 2354 4846 2354 4845 2355 4845 2355 4845 2355 4845 2354 4844 2354 4844 2353 4844 2353 4845 2352 4844 2350 4843 2349 4843 2348 4843 2348 4843 2348 4842 2348 4842 2347 4841 2347 4840 2347 4840 2347 4840 2347 4839 2347 4838 2346 4837 2345 4837 2345 4837 2344 4837 2344 4837 2344 4837 2343 4836 2342 4833 2341 4833 2340 4832 2340 4832 2341 4831 2344 4831 2344 4832 2345 4833 2346 4833 2347 4834 2347 4834 2348 4834 2348 4834 2348 4834 2349 4835 2351 4835 2351 4835 2351 4834 2352 4833 2352 4833 2352 4833 2352 4833 2352 4832 2351 4832 2350 4832 2350 4832 2350 4832 2349 4831 2348 4830 2347 4829 2346 4829 2345 4828 2345 4828 2345 4827 2345 4826 2344 4825 2343 4825 2342 4822 2341 4821 2341 4821 2340 4821 2340 4821 2340 4820 2339 4819 2339 4819 2340 4815 2342 4815 2342 4815 2342 4815 2343 4815 2343 4814 2344 4813 2344 4813 2345 4812 2345 4811 2345 4811 2345 4810 2345 4810 2345 4809 2344 4809 2343 4808 2343 4808 2343 4808 2343 4808 2342 4807 2343 4807 2342 4806 2341 4806 2341 4806 2341 4806 2340 4806 2340 4804 2340 4804 2340 4803 2340 4803 2340 4803 2340 4802 2341 4802 2342 4802 2342 4802 2342 4802 2342 4802 2343 4802 2342 4802 2341 4802 2340 4802 2339 4801 2337 4801 2337 4801 2335 4801 2335 4802 2335 4802 2334 4802 2334 4802 2334 4802 2334 4803 2334 4804 2334 4804 2334 4805 2333 4806 2332 4807 2331 4807 2331 4808 2331 4808 2330 4807 2330 4807 2329 4807 2329 4807 2328 4807 2328 4806 2328 4806 2328 4806 2327 4805 2327 4804 2327 4804 2327 4804 2327 4803 2327 4801 2326 4801 2326 4800 2326 4800 2327 4800 2328 4801 2328 4801 2328 4801 2331 4801 2331 4801 2331 4801 2332 4801 2332 4801 2332 4800 2332 4800 2332 4799 2332 4798 2332 4798 2331 4798 2331 4798 2330 4797 2329 4797 2329 4796 2328 4796 2328 4796 2327 4796 2327 4796 2326 4796 2326 4796 2325 4795 2326 4795 2326 4795 2327 4795 2327 4795 2327 4794 2327 4794 2327 4794 2327 4793 2326 4793 2325 4793 2324 4793 2324 4793 2323 4793 2323 4793 2322 4793 2321 4792 2320 4792 2319 4792 2318 4791 2317 4791 2317 4790 2316 4790 2316 4790 2316 4790 2315 4790 2315 4791 2315 4790 2313 4790 2312 4790 2310 4790 2309 4790 2309 4789 2308 4789 2308 4789 2308 4788 2308 4788 2308 4788 2304 4788 2302 4788 2302 4788 2301 4789 2301 4790 2301 4791 2301 4791 2301 4791 2302 4790 2302 4791 2303 4792 2304 4793 2305 4793 2305 4793 2306 4794 2306 4794 2306 4795 2306 4795 2306 4795 2306 4795 2306 4796 2306 4796 2306 4797 2306 4798 2305 4798 2305 4798 2305 4798 2304 4798 2304 4798 2304 4798 2303 4798 2303 4798 2302 4797 2300 4797 2298 4797 2297 4798 2293 4798 2293 4798 2293 4799 2291 4799 2291 4799 2291 4799 2291 4799 2290 4799 2290 4799 2288 4798 2288 4799 2285 4799 2285 4799 2284 4798 2283 4798 2282 4798 2282 4798 2282 4797 2282 4797 2282 4797 2281 4798 2280 4798 2280 4798 2280 4799 2279 4799 2278 4799 2276 4799 2274 4800 2272 4800 2272 4800 2272 4801 2271 4801 2270 4801 2270 4801 2269 4801 2269 4801 2268 4801 2268 4801 2268 4801 2267 4801 2267 4801 2267 4802 2266 4802 2266 4803 2266 4803 2267 4803 2267 4803 2267 4804 2266 4804 2266 4804 2266 4806 2265 4806 2266 4806 2266 4807 2266 4807 2266 4807 2266 4807 2266 4808 2265 4808 2265 4809 2265 4810 2265 4810 2265 4810 2265 4811 2265 4811 2266 4812 2266 4814 2267 4817 2269 4818 2269 4820 2270 4821 2270 4822 2271 4823 2271 4823 2271 4823 2271 4824 2270 4824 2270 4826 2269 4826 2268 4826 2268 4826 2267 4826 2267 4827 2267 4827 2267 4829 2269 4829 2269 4829 2270 4829 2271 4829 2271 4828 2272 4828 2272 4828 2272 4827 2272 4827 2273 4827 2273 4826 2274 4827 2274 4827 2275 4827 2275 4827 2276 4826 2277 4826 2278 4826 2278 4826 2278 4826 2281 4826 2281 4827 2283 4827 2285 4828 2285 4828 2286 4829 2286 4829 2286 4830 2287 4830 2288 4830 2289 4831 2289 4831 2289 4832 2289 4832 2289 4832 2289 4832 2289 4832 2290 4831 2293 4830 2294 4829 2298 4828 2298 4828 2299 4828 2299 4827 2300 4827 2300 4827 2300 4827 2301 4827 2301 4827 2301 4827 2303 4827 2303 4827 2303 4826 2304 4826 2304 4826 2304 4825 2305 4825 2305 4825 2305 4824 2306 4824 2306 4824 2306 4824 2306 4824 2306 4824 2306 4824 2305 4824 2305 4825 2305 4825 2304 4825 2304 4825 2304 4826 2303 4825 2303 4825 2303 4825 2303 4825 2304 4824 2304 4823 2305 4823 2305 4820 2306 4820 2306 4820 2306 4818 2307 4817 2308 4817 2308 4817 2309 4816 2309 4816 2309 4816 2310 4816 2310 4817 2310 4817 2311 4817 2311 4817 2311 4817 2311 4818 2311 4818 2311 4818 2312 4817 2313 4816 2315 4814 2317 4814 2317 4814 2317 4814 2318 4814 2318 4814 2318 4814 2319 4814 2319 4815 2320 4815 2320 4815 2320 4816 2323 4817 2324 4817 2325 4817 2325 4817 2326 4818 2326 4818 2326 4819 2328 4817 2328 4817 2328 4817 2329 4817 2329 4818 2331 4818 2333 4819 2333 4819 2334 4820 2335 4820 2335 4820 2336 4820 2336 4819 2336 4819 2336 4820 2337 4820 2337 4822 2339 4823 2339 4823 2339 4824 2340 4824 2340 4825 2340 4826 2340 4826 2340 4827 2340 4827 2341 4828 2340 4828 2340 4829 2339 4829 2339 4828 2338 4827 2338 4827 2338 4827 2337 4826 2337 4826 2336 4828 2335 4828 2335 4828 2335 4828 2336 4828 2336 4828 2336 4828 2337 4828 2337 4829 2337 4829 2337 4829 2337 4829 2337 4829 2336 4829 2336 4829 2336 4829 2336 4829 2335 4830 2335 4831 2334 4831 2333 4832 2333 4832 2334 4833 2334 4834 2333 4835 2333 4835 2333 4836 2334 4837 2334 4837 2335 4838 2336 4840 2338 4841 2339 4841 2341 4841 2341 4841 2341 4841 2341 4840 2342 4840 2342 4840 2342 4840 2343 4841 2343 4841 2343 4842 2343 4842 2344 4841 2344 M 4823 2329 4823 2329 4822 2329 4822 2329 4822 2328 4822 2328 4822 2327 4822 2328 4823 2328 4823 2327 4823 2327 4822 2327 4822 2326 4822 2325 4821 2324 4821 2324 4821 2324 4821 2323 4821 2323 4821 2322 4821 2322 4823 2322 4823 2322 4824 2322 4824 2322 4824 2323 4824 2323 4825 2324 4824 2324 4824 2323 4824 2323 4824 2323 4824 2324 4823 2324 4823 2325 4823 2325 4823 2325 4824 2326 4824 2326 4824 2328 4824 2328 4824 2328 4823 2329 4823 2329 4823 2329 M 4828 2327 4827 2327 4826 2327 4825 2326 4825 2326 4825 2326 4827 2325 4827 2325 4828 2326 4828 2327 4828 2327 M 4826 2339 4826 2339 4826 2339 4824 2337 4823 2337 4822 2336 4823 2335 4826 2337 4826 2338 4826 2338 4827 2339 4827 2339 4826 2339 4826 2339 M 4859 2347 4859 2347 4858 2346 4856 2345 4856 2344 4856 2344 4857 2344 4857 2344 4857 2344 4858 2343 4858 2342 4858 2340 4858 2340 4858 2340 4858 2339 4858 2339 4858 2338 4858 2338 4859 2337 4860 2338 4860 2339 4860 2340 4861 2340 4861 2340 4862 2341 4862 2341 4862 2341 4862 2342 4861 2346 4861 2346 4861 2345 4860 2345 4860 2345 4860 2345 4859 2345 4859 2346 4859 2346 4859 2347 M 4796 2344 4796 2344 4795 2343 4795 2343 4794 2343 4793 2342 4793 2342 4793 2342 4793 2341 4793 2341 4793 2341 4794 2341 4795 2342 4795 2342 4796 2342 4796 2343 4796 2344 4796 2344 M 4824 2352 4824 2352 4824 2352 4823 2352 4822 2350 4821 2350 4821 2349 4821 2348 4821 2348 4822 2346 4824 2346 4824 2346 4825 2347 4826 2348 4826 2348 4826 2348 4826 2348 4826 2349 4826 2349 4826 2349 4825 2351 4824 2352 M 4809 2366 4807 2364 4807 2363 4806 2362 4807 2362 4807 2361 4806 2360 4805 2359 4805 2359 4804 2359 4804 2358 4804 2358 4804 2356 4804 2355 4804 2354 4803 2354 4803 2353 4802 2352 4801 2351 4801 2351 4800 2351 4798 2349 4797 2349 4797 2349 4797 2348 4797 2348 4797 2347 4797 2347 4798 2347 4798 2347 4798 2346 4802 2347 4803 2347 4803 2347 4804 2347 4806 2347 4807 2347 4807 2347 4808 2347 4808 2348 4808 2348 4809 2348 4810 2348 4811 2348 4811 2348 4812 2349 4816 2352 4816 2354 4816 2354 4815 2355 4815 2359 4816 2359 4816 2359 4816 2360 4816 2360 4817 2361 4816 2362 4815 2362 4815 2363 4815 2363 4814 2364 4814 2365 4815 2365 4814 2365 4813 2366 4811 2367 4810 2367 4809 2366 4809 2366 4810 2366 4809 2365 4809 2366 M 4845 2360 4845 2359 4843 2358 4840 2355 4839 2355 4839 2354 4838 2353 4839 2352 4840 2353 4840 2353 4841 2353 4842 2355 4843 2356 4844 2357 4846 2359 4846 2360 4845 2360 M 4824 2369 4823 2368 4823 2368 4822 2366 4822 2366 4822 2366 4823 2365 4823 2364 4823 2364 4824 2364 4824 2363 4824 2363 4824 2362 4823 2362 4824 2361 4824 2361 4826 2360 4826 2361 4826 2362 4825 2364 4824 2368 4824 2369 M 4852 2365 4851 2365 4851 2364 4851 2364 4850 2362 4849 2361 4849 2360 4849 2360 4850 2360 4851 2361 4851 2361 4851 2361 4851 2361 4852 2363 4852 2365 4852 2365 4852 2365 M 4857 2375 4856 2374 4855 2374 4854 2373 4853 2372 4853 2372 4852 2372 4849 2369 4849 2369 4849 2368 4848 2368 4847 2367 4847 2368 4845 2369 4844 2371 4843 2372 4842 2372 4842 2372 4842 2372 4842 2372 4843 2370 4844 2369 4844 2367 4844 2365 4843 2361 4844 2361 4845 2362 4847 2363 4848 2364 4850 2365 4852 2367 4854 2367 4854 2368 4856 2371 4857 2373 4857 2375 4857 2375 M 4884 2387 4883 2387 4883 2386 4883 2386 4882 2385 4883 2385 4882 2385 4881 2384 4880 2385 4879 2385 4876 2385 4875 2384 4874 2383 4874 2382 4874 2382 4873 2382 4872 2381 4871 2380 4871 2380 4870 2379 4869 2379 4869 2379 4869 2379 4870 2378 4870 2378 4871 2378 4871 2377 4872 2375 4872 2375 4872 2374 4869 2374 4868 2372 4867 2371 4866 2370 4866 2370 4865 2370 4864 2369 4863 2369 4863 2369 4863 2369 4863 2368 4862 2368 4861 2366 4860 2363 4860 2362 4860 2362 4861 2362 4863 2363 4866 2363 4867 2363 4868 2363 4869 2362 4870 2362 4872 2362 4873 2362 4873 2362 4874 2362 4874 2362 4875 2362 4876 2364 4877 2364 4876 2365 4876 2365 4876 2366 4877 2367 4877 2366 4878 2366 4879 2367 4880 2368 4880 2368 4879 2368 4879 2369 4879 2369 4880 2370 4879 2370 4879 2371 4879 2371 4878 2372 4878 2372 4879 2374 4879 2376 4879 2377 4879 2377 4880 2380 4881 2380 4881 2380 4882 2381 4882 2382 4881 2382 4881 2382 4880 2383 4880 2383 4880 2384 4881 2384 4881 2383 4882 2384 4882 2384 4883 2386 4884 2386 4884 2387 M 4834 2367 4832 2365 4832 2365 4832 2365 4831 2365 4831 2365 4831 2365 4831 2364 4831 2364 4830 2364 4830 2364 4831 2363 4831 2363 4832 2363 4833 2363 4833 2363 4834 2363 4834 2363 4835 2364 4835 2364 4835 2364 4835 2365 4835 2365 4835 2366 4834 2366 4834 2367 M 4795 2371 4794 2370 4794 2370 4794 2371 4794 2371 4793 2371 4793 2371 4793 2371 4793 2371 4793 2371 4792 2371 4792 2371 4792 2371 4791 2370 4791 2370 4789 2367 4790 2366 4790 2366 4790 2366 4790 2366 4791 2366 4793 2368 4794 2368 4794 2369 4795 2369 4795 2369 4796 2368 4797 2369 4797 2370 4797 2371 4797 2371 4797 2371 4795 2371 4795 2371 M 4791 2376 4791 2376 4791 2375 4790 2373 4789 2372 4790 2371 4790 2371 4790 2371 4792 2372 4792 2372 4793 2373 4792 2373 4792 2373 4792 2374 4793 2374 4793 2374 4793 2375 4792 2375 4792 2376 4792 2376 4791 2376 4791 2376 M 4841 2383 4842 2384 4842 2384 4839 2386 4838 2386 4836 2387 4835 2388 4836 2388 4836 2389 4836 2390 4835 2390 4834 2390 4833 2391 4831 2392 4830 2392 4828 2392 4827 2393 4825 2394 4825 2394 4825 2395 4825 2395 4824 2395 4824 2396 4823 2396 4823 2396 4822 2396 4822 2396 4822 2395 4823 2394 4823 2394 4823 2393 4823 2392 4823 2392 4823 2391 4823 2390 4823 2389 4823 2388 4824 2388 4824 2387 4824 2386 4824 2385 4824 2385 4824 2384 4824 2383 4824 2382 4824 2380 4825 2379 4825 2377 4825 2376 4825 2376 4825 2375 4823 2375 4823 2375 4822 2375 4822 2375 4821 2375 4822 2372 4823 2372 4823 2372 4824 2372 4824 2373 4825 2373 4825 2374 4826 2374 4827 2374 4827 2374 4830 2376 4832 2377 4833 2378 4835 2378 4836 2377 4837 2377 4838 2378 4838 2379 4837 2380 4838 2380 4838 2380 4840 2379 4841 2378 4841 2378 4842 2378 4842 2377 4842 2378 4842 2380 4842 2381 4841 2383 M 4869 2378 4869 2378 4868 2378 4868 2378 4867 2376 4867 2375 4869 2377 4869 2378 4869 2378 4869 2378 M 4863 2379 4863 2379 4863 2379 4862 2378 4861 2376 4862 2375 4863 2376 4863 2376 4864 2376 4865 2378 4865 2378 4865 2378 4865 2379 4865 2379 4865 2379 4865 2379 4863 2379 M 4874 2394 4874 2394 4875 2396 4875 2396 4876 2397 4876 2397 4876 2398 4876 2399 4873 2400 4873 2399 4873 2399 4872 2398 4872 2397 4872 2397 4872 2397 4871 2397 4871 2399 4872 2400 4872 2401 4872 2402 4872 2402 4871 2402 4869 2401 4868 2400 4868 2398 4868 2398 4868 2397 4867 2397 4867 2396 4867 2395 4868 2395 4868 2394 4868 2394 4868 2392 4868 2391 4868 2391 4868 2390 4868 2390 4867 2388 4866 2388 4865 2387 4865 2387 4865 2387 4864 2387 4864 2387 4864 2388 4864 2388 4864 2389 4864 2389 4863 2389 4862 2388 4862 2387 4862 2385 4862 2383 4861 2382 4861 2382 4860 2379 4860 2378 4861 2378 4864 2380 4864 2381 4865 2382 4866 2382 4867 2382 4867 2382 4868 2381 4868 2381 4869 2380 4871 2380 4871 2381 4871 2381 4871 2383 4872 2384 4872 2387 4872 2387 4872 2388 4872 2388 4872 2389 4872 2390 4872 2391 4872 2391 4873 2391 4874 2393 4874 2394 M 4789 2381 4789 2381 4788 2380 4788 2380 4787 2380 4787 2379 4789 2378 4789 2379 4790 2379 4790 2379 4790 2380 4790 2380 4789 2380 4789 2381 4789 2381 M 4773 2401 4773 2401 4772 2400 4773 2400 4773 2399 4774 2400 4774 2400 4776 2398 4776 2397 4775 2397 4775 2397 4776 2396 4777 2396 4778 2397 4778 2396 4781 2393 4781 2393 4781 2391 4781 2390 4780 2390 4779 2389 4779 2388 4780 2388 4782 2391 4783 2391 4783 2391 4783 2391 4783 2390 4782 2389 4782 2389 4781 2389 4781 2388 4781 2388 4781 2387 4781 2387 4781 2385 4781 2386 4782 2386 4782 2386 4782 2386 4783 2385 4783 2383 4782 2383 4782 2382 4783 2381 4783 2380 4784 2380 4784 2381 4784 2381 4784 2381 4784 2382 4784 2381 4785 2382 4785 2382 4785 2383 4785 2383 4784 2387 4784 2387 4783 2389 4784 2390 4784 2390 4785 2389 4785 2390 4785 2391 4786 2392 4787 2394 4787 2395 4787 2395 4785 2396 4783 2397 4783 2397 4782 2397 4781 2398 4780 2398 4780 2399 4780 2399 4779 2400 4779 2401 4779 2402 4779 2402 4778 2402 4775 2403 4775 2403 4774 2403 4774 2403 4772 2404 4771 2407 4771 2407 4771 2408 4772 2408 4771 2408 4770 2411 4767 2414 4765 2416 4765 2416 4763 2416 4762 2416 4761 2418 4760 2420 4760 2421 4759 2421 4758 2421 4758 2422 4757 2423 4756 2423 4756 2424 4754 2424 4752 2426 4751 2427 4750 2427 4749 2427 4748 2429 4747 2429 4747 2429 4747 2426 4748 2426 4748 2426 4748 2425 4749 2423 4750 2423 4751 2422 4751 2421 4752 2420 4754 2418 4756 2416 4758 2415 4759 2414 4759 2415 4760 2415 4762 2413 4765 2409 4765 2409 4767 2407 4767 2407 4767 2407 4768 2407 4769 2405 4770 2404 4770 2403 4770 2403 4772 2401 4772 2402 4772 2402 4772 2402 4772 2403 4772 2403 4773 2402 4773 2401 M 4846 2402 4846 2402 4847 2401 4848 2400 4848 2399 4849 2397 4850 2397 4850 2396 4851 2395 4851 2394 4851 2394 4852 2392 4852 2392 4853 2391 4853 2390 4854 2389 4854 2388 4855 2385 4855 2385 4855 2384 4855 2384 4856 2382 4856 2382 4857 2383 4856 2383 4856 2385 4856 2386 4856 2387 4856 2389 4856 2390 4856 2393 4856 2396 4856 2396 4856 2397 4856 2397 4855 2398 4852 2399 4852 2399 4851 2400 4850 2402 4850 2402 4850 2403 4850 2404 4849 2405 4849 2405 4848 2406 4848 2407 4848 2408 4847 2410 4847 2410 4846 2412 4845 2412 4845 2412 4844 2412 4844 2411 4844 2410 4845 2406 4846 2405 4846 2405 4846 2404 4846 2404 4846 2403 4846 2402 M 4833 2412 4833 2412 4832 2411 4831 2410 4830 2408 4830 2407 4830 2406 4831 2403 4832 2403 4832 2403 4833 2403 4833 2403 4833 2403 4834 2403 4835 2403 4836 2402 4837 2402 4837 2402 4837 2401 4837 2401 4837 2400 4837 2398 4837 2396 4837 2394 4837 2394 4837 2394 4838 2394 4838 2393 4839 2392 4839 2391 4839 2390 4839 2390 4839 2389 4839 2389 4839 2389 4839 2388 4840 2388 4843 2387 4843 2387 4843 2387 4848 2388 4849 2389 4849 2389 4849 2390 4847 2395 4847 2395 4846 2395 4846 2395 4846 2395 4846 2396 4845 2396 4845 2396 4845 2396 4845 2396 4845 2398 4845 2399 4844 2401 4844 2401 4843 2402 4843 2403 4843 2403 4843 2404 4842 2404 4842 2404 4842 2405 4842 2406 4842 2407 4842 2407 4842 2408 4842 2408 4842 2408 4842 2408 4841 2408 4841 2409 4842 2410 4843 2411 4843 2412 4844 2413 4845 2413 4845 2414 4845 2414 4844 2415 4844 2415 4844 2416 4843 2416 4843 2417 4842 2418 4842 2418 4840 2418 4839 2418 4839 2418 4838 2417 4838 2416 4838 2415 4838 2415 4838 2414 4838 2414 4837 2414 4836 2413 4836 2413 4835 2413 4835 2413 4835 2413 4834 2413 4834 2412 4833 2412 4833 2412 M 4884 2392 4884 2392 4882 2391 4882 2391 4882 2390 4882 2390 4883 2390 4883 2390 4885 2391 4885 2391 4885 2392 4884 2392 4884 2392 M 4832 2396 4832 2396 4831 2395 4831 2395 4832 2393 4832 2393 4832 2393 4833 2391 4834 2391 4834 2391 4835 2391 4835 2392 4835 2393 4835 2393 4835 2395 4834 2395 4834 2396 4833 2396 4833 2396 4833 2396 4832 2396 M 4789 2396 4788 2396 4788 2394 4788 2394 4788 2394 4788 2394 4789 2393 4790 2393 4792 2393 4792 2394 4792 2394 4791 2395 4790 2396 4789 2396 4789 2396 M 4882 2406 4881 2406 4881 2405 4881 2404 4881 2404 4880 2402 4879 2401 4879 2401 4879 2401 4880 2398 4881 2395 4882 2395 4882 2395 4882 2396 4882 2397 4882 2399 4882 2400 4882 2401 4882 2401 4883 2402 4883 2404 4883 2405 4883 2405 4882 2405 4882 2406 4882 2406 M 4864 2402 4864 2402 4865 2402 4865 2403 4865 2404 4865 2405 4864 2405 4864 2405 4864 2406 4865 2406 4865 2407 4865 2407 4864 2407 4864 2407 4862 2408 4861 2409 4861 2409 4860 2409 4860 2409 4857 2409 4857 2409 4855 2409 4853 2409 4852 2407 4852 2406 4852 2405 4854 2404 4855 2404 4855 2403 4856 2403 4858 2401 4858 2401 4858 2400 4859 2400 4859 2400 4861 2400 4862 2400 4862 2401 4863 2402 4863 2402 4864 2402 M 4876 2404 4876 2404 4874 2402 4874 2401 4873 2401 4873 2400 4874 2400 4875 2401 4876 2403 4876 2404 4876 2404 4876 2404 4876 2404 M 4888 2407 4887 2405 4887 2405 4888 2402 4888 2402 4888 2402 4889 2402 4889 2403 4889 2404 4889 2405 4890 2405 4890 2406 4890 2406 4890 2406 4889 2407 4888 2407 M 4846 2445 4846 2445 4846 2445 4845 2444 4844 2443 4844 2443 4844 2443 4844 2442 4844 2442 4843 2442 4843 2442 4843 2443 4843 2443 4843 2443 4842 2443 4842 2443 4841 2442 4841 2442 4842 2442 4842 2441 4842 2441 4843 2441 4843 2441 4842 2439 4841 2439 4841 2440 4840 2440 4840 2441 4840 2441 4840 2441 4840 2442 4840 2443 4839 2443 4839 2443 4838 2443 4837 2444 4837 2444 4836 2443 4836 2440 4836 2440 4836 2439 4837 2439 4837 2439 4837 2439 4836 2438 4835 2438 4834 2438 4834 2438 4832 2439 4832 2440 4832 2440 4831 2441 4831 2441 4829 2443 4829 2443 4829 2444 4829 2444 4829 2444 4830 2444 4829 2445 4829 2446 4829 2446 4829 2445 4828 2445 4828 2446 4828 2446 4828 2447 4828 2448 4828 2449 4827 2451 4826 2452 4826 2452 4826 2452 4825 2452 4824 2452 4823 2451 4823 2451 4823 2451 4822 2451 4822 2449 4822 2448 4822 2448 4822 2448 4823 2447 4824 2445 4824 2445 4824 2444 4825 2443 4825 2442 4826 2442 4826 2440 4826 2440 4826 2440 4825 2439 4825 2439 4825 2438 4826 2437 4827 2435 4828 2435 4828 2434 4829 2434 4829 2434 4831 2434 4831 2434 4831 2434 4831 2434 4832 2434 4836 2433 4836 2433 4837 2433 4838 2432 4838 2432 4839 2432 4840 2431 4839 2429 4839 2428 4840 2427 4841 2426 4842 2426 4843 2426 4843 2426 4844 2427 4844 2427 4844 2427 4844 2426 4845 2426 4845 2424 4846 2423 4846 2423 4846 2423 4847 2423 4848 2425 4848 2425 4850 2424 4851 2425 4851 2425 4852 2426 4853 2427 4853 2428 4853 2431 4853 2431 4853 2432 4853 2432 4853 2432 4852 2434 4852 2434 4851 2434 4851 2434 4851 2434 4851 2434 4850 2434 4850 2435 4850 2435 4850 2435 4850 2435 4850 2435 4851 2435 4852 2435 4852 2434 4852 2434 4853 2433 4855 2432 4856 2432 4856 2432 4857 2432 4857 2432 4857 2432 4858 2432 4858 2432 4859 2431 4860 2430 4860 2430 4859 2430 4860 2429 4860 2428 4860 2428 4860 2428 4860 2428 4860 2427 4861 2426 4862 2425 4863 2425 4863 2425 4864 2426 4865 2426 4866 2427 4867 2427 4867 2427 4867 2427 4867 2427 4868 2427 4868 2425 4868 2425 4867 2424 4867 2424 4867 2424 4867 2424 4868 2422 4868 2420 4868 2420 4868 2419 4868 2419 4868 2419 4869 2419 4870 2418 4871 2419 4872 2420 4872 2421 4873 2421 4873 2422 4873 2421 4874 2421 4874 2421 4876 2419 4878 2419 4879 2419 4879 2419 4879 2419 4880 2419 4880 2418 4880 2418 4880 2418 4880 2417 4880 2416 4880 2414 4880 2414 4879 2411 4878 2409 4878 2408 4878 2407 4878 2407 4878 2406 4879 2406 4879 2406 4880 2406 4880 2407 4881 2407 4881 2409 4882 2409 4882 2409 4884 2410 4884 2410 4884 2410 4885 2410 4886 2411 4887 2412 4886 2412 4886 2412 4888 2415 4888 2415 4889 2415 4890 2415 4890 2415 4890 2415 4890 2417 4890 2417 4891 2418 4891 2418 4891 2419 4891 2419 4891 2419 4892 2419 4892 2419 4892 2419 4892 2419 4892 2419 4893 2420 4893 2421 4893 2422 4892 2422 4892 2422 4891 2424 4890 2424 4889 2424 4889 2425 4889 2425 4889 2426 4890 2426 4890 2426 4891 2426 4891 2426 4891 2426 4891 2426 4891 2426 4893 2426 4894 2427 4894 2427 4893 2428 4893 2429 4893 2429 4893 2431 4894 2431 4894 2431 4895 2431 4895 2431 4895 2431 4895 2433 4895 2433 4894 2433 4893 2436 4893 2437 4894 2437 4894 2437 4894 2438 4894 2438 4895 2438 4896 2439 4896 2440 4897 2442 4897 2443 4897 2443 4897 2444 4897 2444 4896 2444 4896 2445 4896 2446 4896 2446 4897 2446 4896 2448 4895 2450 4893 2451 4893 2451 4893 2451 4892 2452 4892 2452 4892 2452 4892 2453 4893 2453 4893 2453 4893 2454 4893 2454 4892 2454 4892 2454 4892 2454 4892 2453 4892 2453 4892 2452 4892 2452 4891 2452 4891 2452 4890 2452 4890 2453 4890 2453 4891 2453 4891 2454 4891 2454 4891 2454 4891 2454 4892 2455 4891 2455 4891 2456 4891 2456 4891 2457 4891 2460 4891 2462 4891 2462 4891 2462 4890 2461 4890 2461 4890 2460 4889 2459 4889 2458 4889 2458 4889 2456 4889 2456 4889 2455 4889 2455 4889 2453 4889 2453 4888 2453 4888 2453 4888 2453 4887 2452 4887 2452 4887 2452 4887 2451 4887 2451 4887 2451 4887 2450 4887 2450 4887 2450 4886 2449 4886 2449 4886 2449 4885 2447 4885 2446 4885 2446 4885 2445 4885 2445 4885 2445 4885 2445 4884 2445 4884 2446 4883 2446 4883 2446 4882 2447 4882 2447 4882 2448 4882 2448 4882 2449 4882 2449 4882 2449 4882 2449 4881 2450 4881 2450 4880 2450 4880 2450 4879 2451 4879 2452 4879 2452 4879 2452 4879 2453 4878 2454 4878 2454 4878 2455 4878 2457 4878 2457 4879 2457 4879 2457 4879 2458 4881 2459 4883 2463 4883 2464 4883 2465 4883 2466 4883 2467 4882 2467 4882 2468 4882 2469 4881 2469 4880 2470 4880 2471 4880 2471 4879 2472 4879 2472 4878 2473 4878 2474 4878 2474 4878 2474 4878 2474 4877 2474 4876 2473 4876 2473 4876 2473 4876 2472 4876 2472 4876 2471 4876 2471 4875 2471 4875 2470 4874 2469 4875 2469 4876 2468 4876 2467 4876 2467 4876 2466 4876 2465 4876 2465 4874 2465 4874 2465 4874 2465 4873 2469 4873 2469 4873 2469 4872 2469 4871 2469 4869 2469 4869 2468 4867 2468 4864 2466 4862 2465 4862 2465 4861 2465 4861 2465 4860 2464 4858 2463 4857 2461 4856 2460 4856 2459 4856 2458 4857 2458 4856 2457 4856 2455 4855 2454 4855 2454 4855 2454 4855 2454 4855 2454 4855 2452 4855 2451 4855 2450 4856 2450 4856 2449 4856 2449 4857 2448 4857 2448 4857 2448 4857 2448 4858 2448 4858 2448 4860 2445 4860 2445 4860 2444 4859 2444 4859 2444 4858 2444 4858 2444 4858 2444 4858 2443 4858 2443 4857 2442 4856 2441 4856 2440 4854 2440 4854 2440 4853 2440 4852 2440 4851 2439 4851 2439 4851 2438 4851 2438 4851 2438 4850 2438 4849 2437 4849 2437 4849 2437 4848 2437 4847 2438 4847 2439 4847 2439 4847 2439 4847 2440 4847 2440 4847 2440 4847 2441 4847 2441 4846 2441 4846 2441 4846 2441 4845 2442 4845 2442 4845 2442 4846 2443 4847 2444 4847 2444 4847 2445 4846 2445 M 4887 2410 4886 2410 4886 2409 4886 2407 4886 2407 4887 2407 4887 2407 4887 2408 4887 2408 4887 2408 4887 2410 4887 2410 4887 2410 4887 2410 M 4849 2417 4849 2417 4848 2417 4847 2416 4847 2416 4847 2416 4847 2415 4847 2415 4848 2415 4848 2415 4849 2415 4849 2415 4849 2415 4849 2414 4849 2414 4850 2414 4850 2414 4850 2415 4851 2416 4851 2417 4851 2417 4850 2417 4849 2417 4849 2417 M 4868 2418 4867 2417 4866 2417 4866 2417 4866 2416 4866 2416 4866 2416 4866 2415 4866 2415 4866 2415 4866 2415 4867 2415 4867 2415 4868 2415 4868 2416 4868 2416 4868 2417 4868 2417 4868 2418 4868 2418 M 4748 2432 4748 2432 4748 2431 4748 2431 4748 2430 4748 2430 4748 2430 4749 2429 4749 2430 4749 2430 4749 2431 4749 2432 4749 2432 4748 2432 M 4744 2438 4744 2438 4743 2437 4743 2436 4743 2436 4743 2434 4743 2434 4743 2434 4745 2433 4745 2434 4745 2436 4745 2437 4745 2437 4745 2437 4744 2438 4744 2438 M 4837 2446 4837 2446 4837 2446 4836 2445 4836 2445 4836 2444 4836 2444 4836 2444 4837 2444 4838 2444 4838 2444 4839 2444 4839 2445 4838 2446 4837 2446 4837 2446 M 4884 2452 4884 2452 4884 2452 4882 2449 4882 2449 4883 2448 4883 2448 4884 2448 4884 2449 4884 2449 4884 2452 4884 2452 M 4823 2460 4823 2460 4823 2460 4822 2459 4822 2459 4820 2457 4820 2457 4820 2456 4821 2456 4821 2456 4821 2456 4821 2456 4822 2456 4822 2456 4823 2456 4823 2455 4823 2455 4824 2455 4824 2455 4825 2455 4825 2455 4826 2456 4827 2456 4827 2456 4827 2457 4827 2459 4826 2459 4825 2460 4824 2460 4824 2460 4823 2460 M 4800 2463 4800 2463 4799 2463 4801 2461 4801 2461 4801 2460 4801 2461 4801 2463 4801 2463 4800 2463 M 4812 2469 4812 2469 4811 2468 4811 2468 4811 2467 4811 2468 4809 2468 4807 2468 4806 2468 4806 2468 4806 2468 4806 2467 4806 2467 4806 2466 4808 2465 4810 2465 4810 2465 4810 2465 4811 2466 4812 2466 4814 2467 4814 2467 4814 2467 4814 2467 4814 2468 4814 2468 4813 2468 4813 2468 4812 2469 4812 2469 M 4789 2482 4789 2482 4789 2482 4789 2481 4789 2480 4789 2480 4789 2480 4790 2480 4792 2479 4793 2479 4793 2478 4794 2478 4794 2477 4795 2477 4795 2477 4795 2478 4795 2478 4796 2478 4796 2478 4796 2479 4795 2481 4795 2481 4795 2480 4794 2480 4793 2480 4792 2480 4792 2480 4792 2480 4792 2480 4792 2481 4792 2481 4791 2481 4791 2481 4791 2481 4791 2481 4791 2481 4790 2481 4789 2482" />
+<path id="pr" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1823 2274 1823 2274 1823 2275 1823 2275 1822 2275 1822 2275 1822 2276 1818 2276 1817 2276 1816 2276 1815 2276 1815 2276 1814 2275 1812 2276 1811 2276 1810 2276 1810 2276 1809 2275 1808 2275 1808 2276 1808 2276 1807 2276 1806 2276 1806 2276 1806 2276 1804 2276 1803 2276 1802 2276 1802 2276 1802 2274 1802 2273 1802 2272 1802 2272 1802 2271 1802 2271 1802 2271 1801 2270 1801 2270 1801 2270 1801 2270 1801 2270 1801 2269 1802 2267 1802 2267 1803 2267 1803 2267 1803 2267 1804 2267 1804 2267 1804 2267 1804 2267 1805 2267 1809 2267 1810 2267 1812 2267 1813 2267 1816 2268 1818 2268 1818 2268 1819 2268 1819 2268 1819 2267 1820 2268 1821 2268 1821 2268 1821 2268 1822 2268 1823 2268 1824 2268 1827 2269 1827 2269 1827 2271 1827 2271 1827 2271 1827 2271 1826 2272 1824 2274 1823 2274 M 1828 2274 1828 2274 1828 2273 1828 2273 1828 2273 1829 2273 1829 2273 1830 2272 1830 2272 1832 2273 1832 2273 1831 2273 1830 2274 1828 2274" />
+<path id="ru" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3802 1258 3801 1258 3800 1258 3800 1258 3800 1257 3800 1256 3801 1256 3801 1256 3802 1256 3803 1256 3811 1255 3813 1255 3819 1255 3820 1255 3821 1255 3821 1255 3824 1256 3824 1256 3823 1257 3823 1257 3822 1257 3821 1257 3820 1257 3819 1257 3816 1257 3813 1257 3812 1257 3811 1257 3811 1257 3809 1257 3807 1257 3805 1258 3805 1258 3804 1258 3802 1258 M 3868 1258 3868 1258 3869 1258 3869 1258 3871 1257 3876 1257 3877 1257 3877 1257 3878 1257 3878 1257 3878 1257 3877 1258 3881 1257 3883 1257 3885 1257 3886 1257 3887 1257 3889 1257 3891 1258 3891 1258 3892 1258 3893 1258 3894 1258 3894 1258 3894 1258 3894 1259 3893 1259 3893 1259 3892 1259 3890 1259 3889 1259 3889 1259 3888 1259 3887 1259 3884 1259 3882 1259 3882 1259 3877 1259 3876 1259 3875 1259 3874 1259 3873 1258 3872 1258 3870 1258 3869 1258 3868 1258 3867 1258 3867 1258 3868 1258 M 3806 1259 3806 1259 3806 1259 3807 1259 3807 1259 3810 1259 3812 1259 3812 1259 3813 1259 3813 1259 3812 1259 3809 1260 3809 1260 3808 1260 3806 1260 3805 1260 3806 1259 M 3862 1259 3863 1259 3865 1259 3867 1259 3868 1259 3868 1260 3868 1260 3868 1260 3868 1260 3867 1260 3867 1260 3865 1260 3865 1260 3864 1260 3864 1260 3863 1260 3860 1259 3860 1259 3860 1259 3862 1259 M 3803 1263 3802 1263 3799 1263 3798 1263 3796 1262 3795 1262 3794 1262 3794 1262 3793 1262 3792 1262 3792 1262 3791 1262 3791 1262 3787 1262 3783 1262 3782 1262 3782 1262 3781 1262 3781 1261 3782 1261 3783 1261 3784 1261 3785 1260 3785 1260 3786 1260 3789 1260 3792 1260 3793 1260 3793 1260 3796 1260 3797 1260 3797 1260 3798 1260 3798 1260 3799 1260 3798 1260 3799 1261 3799 1261 3800 1261 3802 1261 3803 1261 3807 1261 3807 1261 3808 1261 3808 1261 3809 1261 3810 1262 3811 1262 3810 1262 3807 1263 3806 1263 3805 1263 3803 1263 M 3809 1263 3809 1263 3813 1263 3814 1263 3815 1262 3817 1262 3817 1262 3819 1262 3819 1262 3822 1263 3822 1263 3823 1263 3823 1263 3823 1264 3823 1264 3823 1264 3822 1264 3818 1264 3817 1264 3812 1264 3809 1264 3809 1264 3809 1263 3809 1263 M 3762 1265 3762 1265 3763 1265 3763 1264 3763 1264 3762 1264 3761 1264 3760 1264 3761 1264 3761 1264 3767 1264 3768 1264 3771 1264 3773 1264 3777 1265 3778 1265 3779 1265 3779 1265 3779 1264 3777 1264 3777 1264 3777 1264 3776 1264 3775 1263 3775 1263 3776 1263 3780 1263 3781 1263 3781 1263 3786 1263 3787 1263 3788 1263 3788 1263 3790 1263 3793 1264 3793 1264 3794 1264 3794 1264 3795 1264 3795 1264 3796 1264 3796 1264 3800 1264 3800 1264 3800 1264 3799 1264 3798 1264 3797 1264 3796 1264 3794 1264 3792 1264 3791 1264 3787 1265 3787 1265 3783 1265 3782 1265 3779 1266 3779 1266 3778 1266 3778 1266 3777 1266 3777 1266 3776 1266 3776 1266 3776 1266 3776 1266 3776 1265 3775 1265 3775 1265 3774 1265 3774 1265 3773 1265 3773 1265 3772 1265 3770 1266 3768 1266 3767 1266 3763 1266 3763 1266 3763 1265 3762 1265 M 3742 1264 3742 1264 3741 1264 3739 1263 3740 1263 3741 1263 3741 1263 3742 1263 3742 1263 3744 1264 3744 1264 3743 1264 3743 1264 3742 1264 3742 1264 3742 1264 M 3831 1264 3832 1264 3833 1264 3835 1264 3836 1264 3840 1264 3841 1264 3842 1264 3843 1264 3843 1264 3843 1264 3843 1265 3843 1265 3841 1265 3841 1265 3839 1265 3839 1265 3837 1265 3836 1265 3835 1264 3834 1264 3833 1264 3831 1264 3831 1264 3829 1264 3829 1264 3829 1264 3830 1264 3831 1264 M 4365 1281 4365 1280 4365 1280 4364 1280 4363 1280 4358 1280 4357 1280 4356 1280 4355 1280 4353 1280 4352 1280 4351 1280 4348 1280 4346 1280 4345 1280 4344 1280 4341 1280 4338 1280 4337 1280 4335 1280 4336 1279 4337 1279 4339 1279 4340 1279 4340 1279 4341 1279 4342 1279 4342 1279 4345 1278 4346 1278 4346 1278 4347 1278 4348 1278 4350 1278 4351 1279 4353 1279 4353 1279 4354 1278 4353 1278 4353 1278 4351 1278 4350 1278 4346 1278 4346 1278 4345 1278 4344 1278 4343 1277 4349 1277 4350 1277 4350 1277 4351 1277 4353 1277 4355 1277 4356 1277 4357 1276 4357 1276 4357 1275 4357 1275 4357 1275 4358 1274 4359 1274 4362 1273 4364 1272 4365 1272 4366 1272 4365 1272 4364 1272 4363 1272 4363 1272 4362 1272 4359 1273 4355 1273 4353 1273 4352 1272 4353 1272 4355 1272 4355 1271 4355 1271 4356 1271 4359 1270 4360 1270 4361 1270 4361 1270 4363 1270 4362 1269 4362 1269 4361 1269 4363 1269 4368 1268 4371 1268 4372 1268 4374 1268 4374 1268 4375 1268 4377 1268 4378 1268 4378 1268 4379 1267 4380 1267 4382 1267 4383 1267 4383 1267 4385 1267 4387 1267 4388 1267 4389 1267 4390 1267 4391 1266 4392 1266 4393 1266 4395 1265 4395 1265 4396 1265 4397 1265 4399 1265 4401 1265 4401 1265 4400 1265 4397 1265 4395 1265 4394 1265 4393 1265 4393 1265 4393 1265 4394 1264 4394 1264 4395 1264 4400 1264 4401 1264 4403 1264 4404 1264 4404 1264 4405 1264 4406 1264 4408 1265 4408 1265 4411 1266 4413 1266 4417 1268 4417 1268 4419 1269 4420 1270 4421 1270 4424 1270 4431 1271 4432 1271 4433 1271 4433 1271 4436 1272 4438 1273 4440 1273 4436 1274 4432 1274 4429 1274 4427 1274 4426 1274 4425 1275 4425 1276 4426 1277 4426 1277 4427 1277 4428 1278 4428 1278 4427 1279 4428 1279 4428 1279 4429 1279 4429 1279 4430 1279 4431 1280 4431 1280 4430 1280 4427 1281 4424 1281 4422 1281 4421 1281 4421 1281 4419 1281 4414 1281 4410 1281 4408 1281 4407 1281 4401 1282 4400 1282 4400 1282 4399 1282 4398 1282 4394 1283 4393 1283 4390 1282 4389 1283 4389 1283 4388 1283 4387 1283 4387 1283 4386 1283 4384 1283 4384 1283 4383 1284 4381 1284 4379 1284 4378 1284 4376 1284 4374 1285 4373 1285 4372 1285 4372 1285 4371 1285 4367 1284 4365 1284 4363 1284 4360 1283 4360 1283 4359 1283 4358 1283 4357 1283 4357 1283 4355 1282 4354 1282 4353 1282 4349 1282 4346 1282 4346 1282 4346 1282 4347 1282 4348 1282 4354 1282 4354 1282 4355 1282 4356 1282 4357 1282 4357 1282 4358 1282 4359 1282 4358 1282 4357 1282 4356 1282 4356 1282 4355 1282 4354 1282 4352 1281 4351 1281 4350 1281 4349 1281 4346 1280 4347 1280 4349 1280 4350 1280 4351 1280 4352 1280 4353 1280 4354 1280 4356 1280 4358 1280 4359 1280 4361 1280 4362 1280 4363 1280 4364 1280 4365 1281 M 3787 1266 3788 1266 3793 1265 3797 1265 3799 1265 3800 1265 3801 1265 3801 1265 3802 1265 3803 1265 3802 1266 3798 1266 3797 1267 3796 1267 3794 1267 3794 1267 3791 1267 3788 1266 3785 1266 3786 1266 3786 1266 3787 1266 M 4329 1268 4327 1268 4326 1268 4323 1268 4314 1267 4313 1267 4312 1267 4312 1267 4312 1267 4311 1267 4311 1266 4314 1265 4315 1265 4315 1265 4320 1265 4321 1265 4327 1265 4329 1265 4330 1265 4333 1265 4334 1265 4334 1265 4335 1266 4336 1266 4338 1266 4338 1267 4337 1267 4336 1267 4334 1267 4334 1267 4334 1267 4334 1268 4333 1268 4332 1268 4331 1268 4330 1268 4329 1268 M 3818 1265 3819 1265 3820 1265 3824 1265 3828 1265 3828 1265 3829 1265 3830 1265 3830 1266 3831 1266 3831 1266 3830 1266 3830 1266 3829 1266 3827 1266 3825 1266 3819 1266 3818 1266 3818 1265 3818 1265 M 3874 1271 3874 1271 3880 1270 3881 1270 3881 1270 3881 1270 3882 1270 3883 1269 3883 1269 3886 1269 3887 1269 3887 1269 3892 1269 3894 1269 3896 1269 3896 1269 3897 1269 3898 1269 3899 1269 3899 1269 3900 1269 3900 1269 3900 1268 3901 1268 3900 1268 3899 1267 3899 1267 3901 1266 3901 1266 3901 1266 3902 1266 3904 1266 3905 1266 3906 1266 3908 1266 3908 1266 3910 1266 3911 1266 3914 1266 3914 1266 3916 1266 3917 1267 3917 1267 3917 1267 3918 1267 3918 1267 3919 1268 3920 1268 3921 1270 3920 1270 3919 1270 3917 1271 3914 1272 3914 1272 3913 1272 3913 1272 3912 1272 3910 1272 3908 1272 3908 1272 3907 1273 3907 1273 3902 1273 3901 1273 3900 1273 3900 1273 3896 1273 3893 1273 3891 1273 3889 1274 3887 1274 3885 1274 3884 1274 3883 1274 3883 1274 3883 1274 3881 1273 3880 1273 3877 1272 3874 1272 3873 1272 3873 1272 3874 1271 3874 1271 M 3680 1268 3681 1268 3681 1268 3681 1268 3681 1268 3680 1268 3680 1267 3679 1267 3679 1267 3679 1267 3681 1266 3682 1266 3682 1266 3685 1266 3686 1266 3687 1266 3688 1267 3689 1267 3689 1267 3689 1267 3689 1267 3689 1267 3689 1267 3688 1267 3686 1267 3683 1268 3681 1269 3680 1269 3680 1269 3680 1268 3680 1268 3680 1268 3680 1268 M 3805 1267 3807 1267 3807 1266 3807 1266 3808 1266 3809 1266 3810 1266 3811 1266 3812 1267 3812 1267 3812 1267 3811 1267 3811 1267 3809 1267 3809 1267 3808 1267 3807 1267 3807 1267 3805 1267 3804 1267 3804 1267 3804 1267 3805 1267 M 3835 1269 3836 1269 3837 1268 3837 1268 3840 1268 3843 1267 3844 1267 3845 1267 3850 1267 3852 1267 3853 1267 3855 1267 3857 1267 3858 1267 3860 1267 3860 1267 3859 1268 3859 1268 3859 1268 3855 1269 3852 1270 3851 1270 3850 1270 3849 1270 3848 1270 3847 1270 3841 1270 3840 1270 3839 1270 3834 1269 3834 1269 3834 1269 3834 1269 3834 1269 3835 1269 3835 1269 M 3744 1268 3745 1268 3745 1268 3747 1267 3748 1267 3749 1267 3749 1267 3753 1267 3753 1267 3755 1268 3756 1268 3758 1268 3760 1268 3761 1269 3761 1269 3762 1269 3763 1269 3763 1269 3767 1268 3769 1268 3770 1268 3770 1268 3771 1268 3771 1268 3776 1269 3777 1269 3779 1269 3779 1269 3779 1269 3780 1270 3780 1270 3781 1270 3782 1270 3783 1270 3784 1271 3786 1271 3787 1271 3788 1271 3789 1271 3790 1271 3794 1271 3795 1272 3795 1272 3797 1272 3797 1272 3794 1273 3794 1273 3791 1273 3789 1273 3788 1274 3788 1274 3787 1274 3786 1274 3786 1274 3785 1273 3784 1273 3783 1273 3780 1272 3780 1272 3778 1272 3777 1272 3774 1272 3773 1271 3772 1271 3771 1271 3770 1271 3769 1271 3766 1271 3766 1271 3766 1271 3766 1271 3765 1271 3764 1271 3764 1271 3763 1271 3762 1271 3762 1270 3760 1270 3760 1270 3759 1270 3760 1269 3760 1269 3759 1269 3759 1269 3758 1269 3757 1269 3757 1270 3756 1270 3755 1270 3753 1270 3753 1270 3752 1269 3752 1269 3751 1269 3751 1269 3750 1269 3749 1269 3748 1269 3747 1269 3745 1269 3745 1269 3744 1269 3744 1269 3744 1268 3744 1268 M 3771 1267 3771 1267 3771 1267 3772 1267 3772 1267 3773 1267 3774 1267 3775 1267 3775 1267 3776 1267 3776 1267 3780 1267 3780 1267 3781 1267 3782 1267 3783 1267 3783 1267 3784 1268 3784 1268 3785 1268 3785 1268 3787 1268 3789 1268 3789 1268 3790 1268 3793 1268 3794 1268 3796 1269 3796 1269 3797 1269 3797 1269 3798 1269 3799 1269 3800 1270 3801 1270 3802 1270 3804 1270 3805 1270 3806 1270 3806 1270 3805 1270 3803 1270 3799 1271 3798 1271 3797 1271 3795 1271 3794 1271 3792 1271 3789 1270 3789 1270 3789 1270 3789 1270 3789 1270 3789 1270 3788 1270 3788 1269 3786 1269 3785 1269 3784 1269 3784 1269 3784 1269 3783 1269 3782 1268 3780 1268 3776 1268 3773 1267 3772 1267 3771 1267 3771 1267 3771 1267 M 3799 1268 3799 1268 3802 1267 3802 1267 3803 1267 3807 1267 3807 1267 3812 1268 3812 1268 3813 1268 3811 1269 3810 1269 3810 1269 3808 1270 3806 1270 3805 1269 3805 1269 3799 1268 3799 1268 M 4140 1269 4140 1269 4143 1270 4144 1270 4144 1270 4145 1269 4146 1269 4146 1269 4147 1269 4147 1269 4148 1269 4149 1269 4151 1269 4151 1269 4152 1270 4154 1270 4155 1270 4155 1270 4157 1270 4159 1270 4159 1270 4160 1270 4159 1271 4158 1271 4157 1271 4157 1271 4154 1271 4151 1272 4150 1272 4142 1272 4140 1272 4139 1272 4138 1272 4138 1272 4137 1272 4137 1272 4136 1271 4136 1271 4137 1271 4137 1271 4138 1270 4139 1270 4140 1269 M 3621 1280 3620 1280 3620 1280 3621 1280 3625 1279 3626 1279 3626 1279 3627 1279 3628 1279 3628 1279 3628 1279 3629 1279 3629 1279 3631 1280 3633 1280 3636 1280 3639 1280 3640 1280 3641 1280 3642 1280 3645 1279 3644 1279 3641 1279 3640 1279 3639 1279 3637 1279 3636 1279 3636 1278 3636 1278 3637 1278 3638 1278 3642 1278 3645 1278 3645 1278 3644 1277 3643 1277 3637 1277 3636 1277 3633 1278 3633 1278 3632 1278 3632 1277 3639 1276 3639 1276 3642 1276 3642 1276 3643 1276 3644 1276 3644 1276 3645 1276 3645 1276 3646 1276 3646 1276 3647 1276 3647 1276 3648 1276 3649 1276 3650 1276 3654 1277 3654 1277 3655 1277 3655 1277 3656 1277 3656 1276 3657 1276 3658 1276 3660 1276 3661 1276 3661 1276 3660 1276 3662 1275 3662 1275 3663 1275 3664 1275 3664 1275 3663 1275 3663 1275 3662 1275 3663 1274 3665 1274 3665 1274 3666 1274 3666 1274 3667 1275 3668 1275 3668 1274 3669 1273 3668 1273 3668 1273 3667 1273 3667 1273 3666 1273 3664 1274 3661 1274 3661 1274 3661 1273 3662 1273 3663 1273 3663 1273 3662 1273 3661 1273 3660 1273 3660 1273 3659 1273 3659 1273 3658 1273 3657 1273 3660 1272 3663 1272 3663 1272 3664 1272 3665 1271 3666 1271 3667 1271 3667 1271 3668 1271 3668 1271 3670 1271 3670 1271 3671 1270 3674 1270 3677 1270 3677 1270 3678 1270 3678 1270 3680 1270 3681 1270 3680 1270 3679 1270 3678 1270 3677 1270 3676 1271 3675 1271 3674 1271 3676 1271 3676 1271 3684 1271 3685 1270 3686 1270 3687 1270 3687 1270 3688 1270 3690 1271 3690 1271 3685 1272 3685 1272 3684 1272 3683 1272 3682 1272 3682 1272 3681 1272 3682 1272 3682 1272 3680 1273 3680 1273 3679 1273 3678 1273 3678 1273 3678 1273 3679 1273 3679 1273 3680 1273 3680 1273 3681 1273 3683 1273 3684 1273 3688 1272 3690 1272 3692 1272 3694 1272 3695 1272 3697 1273 3697 1273 3698 1273 3699 1273 3701 1273 3701 1273 3702 1273 3701 1274 3701 1274 3698 1274 3696 1275 3695 1275 3695 1275 3693 1275 3693 1275 3692 1275 3692 1275 3691 1275 3691 1275 3690 1276 3690 1276 3689 1276 3688 1276 3688 1276 3687 1276 3686 1276 3683 1276 3679 1276 3677 1276 3676 1276 3675 1276 3675 1277 3674 1277 3671 1277 3670 1277 3669 1277 3669 1277 3669 1277 3670 1277 3671 1278 3671 1278 3670 1278 3668 1279 3667 1279 3667 1279 3665 1279 3664 1279 3664 1279 3662 1279 3662 1279 3661 1279 3656 1279 3656 1279 3655 1279 3654 1279 3652 1280 3652 1280 3652 1280 3653 1280 3655 1280 3656 1280 3656 1280 3657 1280 3658 1281 3659 1282 3657 1282 3657 1282 3656 1282 3654 1282 3654 1282 3653 1282 3653 1282 3652 1282 3651 1282 3651 1282 3650 1282 3650 1282 3650 1282 3650 1282 3650 1282 3650 1283 3649 1283 3648 1283 3648 1283 3647 1283 3647 1283 3646 1283 3645 1283 3644 1283 3643 1283 3643 1283 3642 1283 3642 1283 3640 1283 3637 1284 3637 1284 3636 1284 3636 1284 3635 1283 3636 1283 3638 1282 3638 1282 3638 1282 3641 1282 3642 1282 3643 1282 3643 1282 3642 1281 3640 1282 3639 1281 3641 1281 3641 1281 3640 1281 3640 1281 3639 1281 3637 1281 3633 1281 3633 1281 3628 1282 3628 1282 3625 1282 3624 1282 3624 1282 3624 1281 3624 1281 3621 1281 3621 1280 M 3801 1271 3802 1271 3803 1271 3803 1271 3804 1271 3805 1271 3810 1271 3812 1270 3813 1270 3813 1270 3814 1270 3815 1271 3816 1271 3817 1271 3817 1271 3818 1272 3817 1272 3816 1272 3816 1272 3816 1272 3815 1272 3814 1272 3813 1272 3812 1272 3812 1272 3811 1272 3811 1273 3811 1273 3810 1273 3810 1273 3809 1273 3809 1273 3808 1273 3808 1273 3807 1273 3807 1273 3806 1273 3805 1272 3805 1272 3804 1272 3803 1272 3803 1272 3802 1272 3800 1272 3799 1272 3799 1272 3798 1272 3799 1272 3799 1272 3799 1272 3801 1271 M 3738 1272 3738 1271 3738 1271 3739 1271 3742 1271 3743 1271 3744 1271 3745 1271 3750 1271 3753 1271 3753 1271 3754 1270 3754 1270 3756 1270 3756 1270 3758 1271 3758 1271 3758 1271 3761 1271 3763 1271 3764 1271 3766 1272 3769 1272 3769 1272 3768 1272 3767 1272 3762 1272 3759 1273 3758 1273 3756 1273 3755 1273 3755 1273 3754 1273 3752 1273 3751 1273 3750 1273 3748 1273 3748 1273 3749 1272 3748 1272 3748 1272 3747 1272 3746 1272 3744 1272 3742 1272 3741 1272 3740 1272 3739 1272 3739 1272 3738 1272 3737 1272 3737 1272 3737 1272 3738 1272 M 3822 1276 3823 1276 3823 1276 3822 1275 3821 1275 3821 1274 3822 1274 3823 1273 3826 1272 3827 1272 3828 1272 3828 1272 3828 1271 3829 1271 3831 1271 3832 1271 3835 1271 3835 1271 3836 1271 3837 1271 3837 1271 3837 1271 3837 1272 3836 1272 3835 1272 3834 1272 3834 1272 3833 1272 3833 1272 3833 1272 3835 1272 3836 1272 3838 1272 3838 1272 3839 1272 3842 1272 3848 1272 3851 1271 3855 1271 3856 1271 3857 1271 3858 1271 3858 1271 3859 1271 3863 1271 3864 1271 3866 1271 3867 1271 3867 1271 3868 1272 3869 1272 3870 1272 3870 1273 3869 1273 3869 1273 3868 1273 3868 1274 3867 1274 3866 1274 3866 1274 3866 1274 3867 1274 3867 1274 3867 1275 3868 1275 3867 1275 3866 1275 3864 1275 3863 1275 3862 1275 3862 1275 3861 1275 3861 1275 3859 1276 3855 1277 3855 1277 3855 1277 3854 1277 3853 1278 3851 1278 3850 1278 3850 1278 3849 1278 3849 1278 3843 1278 3841 1277 3840 1277 3840 1277 3840 1277 3839 1277 3837 1277 3837 1277 3836 1277 3836 1277 3836 1277 3835 1277 3832 1278 3832 1278 3831 1278 3828 1278 3827 1278 3826 1277 3826 1277 3826 1277 3825 1277 3824 1277 3823 1277 3822 1277 3822 1276 3821 1276 3821 1276 3822 1276 3822 1276 M 3611 1278 3611 1278 3610 1278 3610 1277 3610 1277 3610 1277 3610 1277 3610 1276 3611 1276 3611 1276 3611 1276 3610 1276 3610 1276 3606 1276 3604 1276 3603 1276 3602 1276 3602 1276 3601 1276 3601 1276 3601 1276 3601 1276 3600 1276 3600 1276 3599 1275 3598 1275 3598 1275 3596 1275 3595 1275 3593 1275 3592 1275 3592 1275 3592 1275 3592 1275 3594 1275 3596 1274 3597 1274 3601 1274 3602 1274 3605 1274 3609 1274 3610 1274 3614 1274 3615 1274 3616 1274 3618 1273 3617 1273 3616 1273 3617 1273 3618 1273 3621 1273 3622 1273 3623 1273 3623 1273 3626 1273 3626 1273 3629 1272 3629 1272 3629 1272 3628 1272 3628 1272 3627 1272 3627 1272 3627 1271 3629 1271 3633 1271 3634 1271 3636 1271 3638 1272 3640 1272 3641 1272 3641 1272 3642 1272 3643 1272 3644 1272 3645 1272 3645 1272 3646 1272 3646 1272 3647 1272 3650 1272 3652 1272 3652 1273 3652 1273 3651 1273 3651 1273 3650 1273 3650 1273 3649 1273 3649 1273 3649 1273 3649 1273 3650 1273 3650 1273 3651 1273 3651 1273 3652 1274 3654 1274 3654 1274 3654 1275 3654 1275 3653 1275 3653 1275 3651 1275 3650 1275 3647 1274 3646 1274 3644 1274 3643 1274 3643 1274 3642 1274 3642 1274 3640 1273 3638 1273 3638 1272 3636 1273 3636 1273 3635 1273 3635 1273 3635 1273 3634 1273 3632 1274 3632 1274 3631 1274 3631 1274 3631 1274 3631 1274 3631 1275 3632 1275 3633 1275 3633 1275 3632 1275 3632 1275 3631 1275 3631 1275 3630 1275 3630 1275 3629 1275 3628 1275 3627 1275 3626 1275 3626 1275 3626 1276 3626 1276 3626 1276 3623 1276 3621 1276 3620 1276 3620 1276 3621 1276 3620 1277 3618 1276 3618 1277 3618 1277 3618 1277 3618 1277 3618 1277 3618 1277 3618 1277 3618 1277 3617 1277 3615 1277 3614 1277 3613 1278 3612 1278 3611 1278 M 3761 1273 3762 1273 3766 1273 3768 1273 3775 1272 3777 1272 3778 1272 3778 1272 3782 1273 3784 1274 3785 1274 3784 1274 3784 1274 3781 1275 3781 1275 3776 1275 3775 1275 3775 1274 3774 1274 3774 1274 3773 1274 3772 1274 3771 1275 3770 1275 3768 1275 3766 1275 3764 1274 3763 1274 3763 1274 3764 1274 3764 1274 3764 1274 3765 1274 3765 1274 3764 1273 3764 1273 3762 1273 3761 1273 3760 1273 3761 1273 3761 1273 M 3725 1276 3725 1276 3725 1276 3725 1276 3725 1276 3726 1275 3726 1275 3726 1275 3726 1275 3724 1275 3723 1275 3723 1275 3724 1274 3724 1274 3725 1274 3725 1274 3728 1275 3730 1276 3730 1276 3729 1277 3728 1277 3728 1277 3727 1277 3726 1277 3726 1277 3725 1277 3725 1276 M 3810 1275 3811 1275 3814 1274 3815 1274 3815 1274 3814 1275 3814 1275 3810 1275 3810 1275 3810 1275 M 3790 1275 3790 1275 3791 1275 3792 1275 3792 1275 3792 1274 3795 1275 3799 1274 3801 1274 3802 1274 3802 1275 3802 1275 3802 1275 3800 1276 3800 1276 3799 1276 3798 1276 3794 1276 3793 1276 3790 1275 3789 1275 3789 1275 3789 1275 3790 1275 3790 1275 M 3735 1277 3737 1276 3737 1276 3737 1276 3736 1276 3736 1276 3735 1276 3735 1276 3735 1276 3735 1275 3735 1275 3735 1275 3736 1275 3737 1275 3738 1275 3741 1275 3742 1275 3742 1276 3742 1276 3741 1276 3741 1276 3740 1276 3740 1276 3740 1276 3741 1276 3742 1276 3744 1276 3744 1276 3745 1277 3745 1277 3743 1278 3742 1278 3742 1278 3741 1278 3741 1278 3740 1278 3740 1278 3740 1278 3739 1278 3738 1278 3737 1277 3735 1277 3734 1277 3734 1277 3734 1277 3735 1277 3735 1277 3735 1277 M 3748 1276 3748 1276 3748 1276 3748 1276 3748 1276 3749 1276 3751 1276 3752 1276 3752 1276 3753 1276 3753 1276 3754 1276 3755 1276 3756 1277 3756 1277 3754 1277 3754 1277 3753 1277 3751 1277 3751 1277 3748 1277 3748 1276 M 3796 1283 3795 1283 3794 1283 3792 1283 3792 1283 3790 1282 3789 1279 3790 1279 3790 1278 3789 1278 3788 1278 3787 1277 3785 1277 3785 1277 3785 1277 3790 1277 3791 1277 3792 1277 3795 1277 3797 1277 3798 1277 3798 1277 3800 1277 3801 1277 3802 1277 3808 1277 3809 1277 3810 1277 3812 1278 3814 1278 3820 1279 3821 1279 3821 1279 3822 1279 3821 1280 3821 1280 3814 1279 3813 1279 3812 1279 3811 1279 3811 1280 3811 1280 3810 1280 3808 1280 3808 1280 3807 1280 3804 1280 3804 1280 3803 1281 3803 1281 3803 1281 3803 1281 3804 1281 3805 1281 3807 1281 3809 1281 3809 1281 3808 1282 3808 1282 3808 1282 3807 1282 3804 1282 3802 1282 3802 1282 3802 1282 3801 1282 3800 1282 3800 1282 3800 1282 3800 1282 3801 1282 3801 1282 3802 1283 3801 1283 3801 1283 3800 1283 3797 1283 3797 1283 3796 1283 3796 1283 3796 1283 M 3745 1278 3745 1278 3746 1277 3747 1277 3748 1277 3749 1277 3749 1277 3751 1278 3751 1278 3751 1278 3751 1278 3750 1278 3748 1278 3748 1278 3747 1278 3745 1278 3744 1278 3743 1278 3744 1278 3745 1278 M 3755 1278 3755 1278 3756 1278 3756 1278 3757 1278 3757 1278 3758 1278 3758 1278 3759 1278 3759 1278 3759 1278 3758 1278 3758 1279 3757 1279 3756 1279 3753 1278 3753 1278 3754 1278 3755 1278 M 3766 1278 3767 1278 3767 1278 3768 1278 3770 1278 3773 1278 3774 1278 3774 1278 3775 1278 3774 1279 3774 1279 3773 1279 3769 1279 3767 1278 3766 1278 3766 1278 3766 1278 M 3711 1281 3710 1281 3710 1281 3708 1280 3709 1280 3711 1280 3711 1280 3712 1280 3712 1280 3714 1280 3715 1280 3716 1280 3716 1279 3716 1279 3717 1279 3717 1279 3718 1279 3720 1278 3720 1278 3720 1278 3724 1278 3725 1278 3726 1278 3726 1278 3727 1278 3727 1279 3727 1279 3727 1279 3727 1279 3728 1279 3728 1279 3729 1280 3731 1280 3731 1280 3732 1280 3734 1280 3735 1280 3735 1280 3735 1281 3735 1281 3734 1281 3734 1281 3734 1281 3733 1281 3732 1281 3732 1281 3732 1281 3731 1281 3731 1281 3730 1281 3730 1281 3730 1282 3730 1282 3729 1282 3728 1282 3728 1282 3727 1282 3727 1282 3727 1282 3724 1282 3723 1282 3720 1282 3717 1282 3716 1282 3716 1282 3715 1282 3715 1282 3714 1282 3713 1282 3711 1282 3711 1281 3711 1281 M 3766 1283 3767 1283 3767 1283 3769 1282 3770 1282 3770 1282 3769 1281 3769 1281 3769 1280 3769 1279 3770 1279 3770 1279 3772 1279 3774 1279 3777 1279 3778 1280 3780 1279 3781 1279 3781 1279 3782 1279 3784 1279 3785 1279 3786 1279 3787 1279 3787 1279 3787 1280 3787 1280 3787 1281 3787 1282 3787 1283 3788 1283 3788 1283 3787 1283 3786 1284 3786 1284 3785 1284 3785 1284 3782 1284 3780 1284 3778 1284 3778 1284 3773 1284 3771 1284 3770 1284 3769 1284 3768 1284 3765 1283 3766 1283 3766 1283 M 3752 1281 3752 1280 3752 1280 3753 1280 3754 1280 3755 1280 3755 1280 3755 1280 3758 1279 3759 1279 3759 1279 3762 1280 3762 1280 3762 1280 3762 1280 3762 1280 3759 1281 3758 1281 3756 1281 3755 1281 3754 1281 3751 1281 3751 1281 3752 1281 M 3740 1281 3741 1281 3740 1280 3740 1280 3740 1280 3741 1280 3741 1279 3741 1279 3742 1279 3743 1280 3744 1280 3744 1280 3745 1280 3745 1281 3744 1281 3744 1281 3744 1281 3741 1281 3740 1281 3740 1281 3740 1281 M 3672 1284 3671 1283 3669 1283 3667 1283 3666 1282 3666 1282 3666 1282 3667 1282 3667 1282 3668 1282 3672 1281 3672 1281 3673 1281 3674 1281 3675 1281 3676 1281 3677 1281 3677 1281 3678 1281 3679 1282 3679 1282 3679 1282 3679 1282 3678 1282 3678 1282 3677 1282 3677 1282 3676 1282 3676 1282 3675 1283 3675 1283 3675 1283 3674 1283 3675 1284 3675 1284 3674 1284 3674 1284 3673 1284 3673 1284 3672 1284 3672 1284 M 3832 1282 3832 1282 3832 1282 3833 1281 3833 1281 3834 1281 3835 1281 3836 1282 3836 1282 3837 1282 3838 1282 3838 1282 3838 1282 3837 1282 3836 1282 3836 1282 3835 1282 3835 1282 3832 1282 3832 1282 3832 1282 M 4466 1296 4466 1296 4464 1297 4462 1297 4461 1296 4461 1296 4460 1296 4459 1296 4459 1296 4458 1296 4458 1296 4457 1296 4457 1296 4463 1298 4463 1298 4464 1298 4464 1298 4466 1298 4465 1298 4464 1298 4464 1299 4465 1299 4465 1299 4467 1299 4468 1299 4469 1299 4470 1299 4471 1301 4471 1302 4471 1302 4470 1302 4470 1302 4469 1302 4468 1302 4467 1302 4467 1303 4465 1303 4464 1303 4463 1304 4463 1304 4462 1304 4461 1303 4460 1303 4459 1303 4459 1304 4457 1304 4454 1304 4451 1304 4450 1304 4449 1304 4450 1304 4449 1304 4446 1304 4445 1304 4444 1304 4444 1304 4443 1304 4441 1304 4438 1304 4436 1304 4435 1303 4434 1303 4433 1303 4431 1303 4429 1303 4429 1303 4428 1303 4426 1303 4425 1302 4424 1302 4422 1301 4419 1301 4417 1301 4414 1301 4413 1301 4413 1301 4413 1301 4414 1300 4413 1300 4413 1300 4412 1300 4411 1300 4411 1300 4410 1301 4408 1301 4408 1301 4407 1301 4403 1301 4403 1301 4403 1300 4403 1300 4401 1299 4401 1299 4400 1299 4400 1299 4399 1299 4399 1299 4398 1299 4398 1299 4397 1300 4395 1300 4394 1300 4394 1300 4392 1300 4392 1300 4389 1299 4388 1299 4387 1298 4386 1298 4385 1297 4384 1297 4384 1297 4383 1297 4382 1297 4382 1297 4381 1295 4381 1294 4382 1294 4382 1294 4382 1293 4382 1293 4381 1293 4381 1293 4380 1293 4378 1293 4377 1293 4378 1294 4377 1294 4376 1294 4376 1294 4375 1294 4375 1294 4372 1293 4373 1293 4375 1293 4376 1293 4376 1293 4375 1293 4374 1293 4371 1292 4372 1292 4372 1292 4373 1292 4374 1291 4374 1291 4373 1291 4373 1291 4372 1291 4372 1291 4369 1292 4368 1293 4368 1293 4366 1293 4366 1294 4364 1294 4364 1294 4364 1294 4363 1294 4362 1293 4364 1293 4364 1293 4365 1293 4365 1292 4364 1292 4363 1292 4361 1292 4358 1292 4359 1292 4360 1292 4361 1292 4362 1292 4362 1292 4363 1292 4363 1292 4365 1292 4365 1292 4371 1291 4373 1290 4373 1290 4374 1289 4378 1288 4378 1288 4381 1288 4382 1288 4383 1288 4385 1288 4386 1288 4386 1287 4385 1287 4383 1287 4382 1287 4380 1286 4382 1286 4383 1285 4384 1285 4386 1285 4387 1285 4388 1285 4389 1285 4391 1284 4391 1283 4391 1283 4392 1283 4392 1283 4394 1284 4396 1284 4397 1284 4397 1284 4398 1284 4398 1284 4398 1284 4399 1283 4399 1283 4400 1283 4402 1283 4408 1283 4410 1283 4411 1283 4411 1283 4414 1283 4415 1283 4420 1283 4423 1283 4425 1282 4426 1282 4426 1282 4427 1282 4427 1282 4429 1282 4432 1282 4433 1282 4434 1282 4436 1282 4438 1283 4441 1284 4440 1285 4438 1286 4435 1287 4434 1288 4433 1289 4431 1289 4431 1289 4429 1289 4428 1289 4428 1289 4428 1289 4428 1290 4433 1289 4435 1289 4436 1288 4436 1288 4437 1287 4438 1287 4438 1287 4439 1286 4439 1286 4440 1286 4441 1286 4442 1286 4443 1287 4444 1287 4445 1287 4445 1287 4446 1287 4447 1287 4447 1286 4450 1285 4449 1285 4449 1285 4447 1285 4448 1284 4448 1284 4449 1284 4449 1284 4450 1284 4450 1284 4451 1284 4451 1284 4452 1284 4453 1284 4453 1284 4455 1284 4457 1284 4457 1284 4459 1284 4459 1284 4460 1284 4460 1284 4462 1285 4463 1285 4464 1286 4465 1286 4466 1286 4467 1286 4467 1286 4469 1286 4472 1288 4473 1288 4473 1289 4472 1289 4471 1289 4469 1291 4468 1292 4467 1293 4467 1295 4468 1295 4467 1296 4467 1296 4466 1296 M 3814 1285 3814 1284 3814 1284 3814 1284 3816 1284 3816 1284 3818 1284 3823 1283 3823 1283 3825 1283 3826 1283 3830 1283 3830 1283 3831 1283 3831 1284 3831 1285 3829 1285 3829 1285 3828 1286 3827 1286 3826 1286 3824 1286 3824 1286 3823 1286 3821 1286 3820 1286 3820 1286 3821 1286 3820 1285 3820 1285 3819 1285 3818 1285 3818 1285 3816 1285 3815 1285 3814 1285 M 3675 1285 3675 1285 3678 1285 3678 1285 3679 1285 3679 1285 3680 1285 3681 1285 3682 1285 3682 1285 3683 1285 3683 1285 3683 1285 3684 1284 3684 1284 3685 1284 3685 1284 3686 1284 3687 1284 3688 1284 3688 1284 3688 1283 3689 1283 3689 1283 3690 1283 3690 1283 3693 1284 3696 1285 3698 1286 3697 1286 3697 1286 3697 1286 3696 1286 3695 1286 3691 1286 3689 1286 3688 1286 3687 1286 3686 1286 3685 1286 3684 1286 3683 1286 3682 1286 3682 1286 3678 1286 3676 1285 3675 1285 3674 1285 3674 1285 3675 1285 3675 1285 M 3663 1284 3663 1284 3663 1284 3665 1283 3665 1283 3666 1283 3667 1283 3667 1284 3668 1284 3669 1284 3668 1284 3665 1284 3665 1284 3664 1284 3664 1284 3664 1284 3663 1284 M 4330 1284 4329 1284 4327 1284 4327 1284 4326 1284 4326 1284 4327 1284 4329 1284 4330 1284 4331 1284 4332 1284 4334 1284 4336 1284 4337 1284 4338 1284 4340 1284 4342 1284 4343 1284 4344 1284 4345 1284 4348 1284 4351 1284 4351 1284 4352 1284 4352 1284 4353 1285 4354 1285 4358 1284 4358 1284 4359 1284 4361 1285 4364 1285 4369 1285 4372 1286 4373 1286 4373 1286 4373 1286 4373 1287 4372 1287 4372 1287 4371 1287 4370 1288 4369 1288 4368 1288 4367 1288 4367 1288 4367 1288 4366 1288 4366 1288 4366 1288 4363 1289 4361 1289 4361 1289 4359 1290 4358 1290 4357 1290 4355 1290 4354 1290 4353 1290 4351 1290 4349 1290 4348 1290 4343 1290 4343 1289 4343 1289 4344 1289 4344 1289 4347 1289 4348 1289 4348 1289 4348 1289 4348 1289 4349 1289 4349 1289 4350 1289 4350 1289 4350 1289 4350 1289 4349 1289 4348 1288 4347 1288 4346 1288 4346 1288 4345 1288 4345 1288 4344 1288 4344 1288 4342 1288 4336 1288 4333 1288 4330 1287 4330 1287 4330 1287 4329 1287 4330 1287 4330 1287 4331 1286 4332 1286 4332 1286 4331 1285 4331 1284 4331 1284 4330 1284 4330 1284 M 4376 1285 4377 1285 4377 1285 4379 1284 4380 1284 4380 1284 4380 1284 4381 1284 4381 1284 4382 1284 4381 1284 4379 1285 4379 1285 4377 1285 4377 1285 4376 1285 4375 1285 4375 1285 4376 1285 4376 1285 M 3807 1286 3808 1286 3808 1286 3809 1286 3809 1285 3811 1285 3812 1285 3812 1285 3812 1286 3812 1286 3813 1286 3814 1286 3814 1286 3815 1286 3816 1286 3817 1286 3817 1286 3816 1287 3815 1287 3815 1287 3814 1287 3814 1287 3813 1287 3813 1286 3812 1286 3810 1286 3809 1286 3809 1286 3806 1286 3806 1286 3807 1286 M 4338 1290 4338 1290 4336 1290 4335 1290 4332 1290 4331 1289 4331 1289 4330 1289 4331 1289 4331 1289 4332 1289 4332 1289 4333 1289 4333 1289 4334 1289 4337 1289 4339 1289 4340 1289 4341 1289 4342 1290 4342 1290 4342 1290 4341 1290 4341 1290 4340 1290 4339 1290 4338 1290 M 4471 1291 4471 1291 4471 1290 4471 1290 4472 1290 4473 1290 4473 1289 4477 1290 4475 1290 4475 1290 4473 1291 4473 1291 4472 1291 4471 1291 M 4099 1292 4098 1292 4097 1292 4095 1292 4093 1292 4092 1292 4092 1292 4091 1292 4091 1291 4090 1291 4090 1291 4090 1291 4090 1290 4090 1290 4090 1290 4091 1290 4092 1290 4093 1290 4092 1290 4092 1291 4091 1291 4092 1291 4093 1291 4093 1291 4094 1291 4095 1291 4095 1291 4096 1291 4096 1290 4097 1290 4097 1291 4098 1291 4103 1291 4105 1291 4107 1292 4108 1292 4108 1292 4109 1292 4110 1292 4112 1292 4114 1292 4114 1292 4115 1292 4115 1293 4115 1293 4114 1293 4113 1293 4112 1293 4112 1293 4111 1293 4108 1293 4103 1293 4101 1293 4100 1293 4099 1292 4099 1292 M 4342 1294 4342 1294 4343 1294 4343 1294 4344 1294 4345 1294 4345 1294 4346 1294 4346 1294 4347 1294 4348 1294 4349 1294 4350 1294 4352 1294 4349 1295 4349 1295 4348 1295 4348 1295 4344 1294 4341 1294 4342 1294 M 4354 1294 4354 1294 4354 1294 4356 1294 4357 1294 4359 1294 4359 1294 4360 1294 4360 1294 4359 1294 4359 1294 4357 1295 4356 1295 4355 1295 4355 1295 4354 1294 4354 1294 M 4556 1309 4556 1309 4555 1309 4554 1310 4552 1310 4551 1311 4551 1311 4550 1311 4549 1311 4549 1311 4548 1311 4548 1311 4547 1311 4546 1311 4543 1311 4542 1311 4540 1311 4539 1312 4538 1312 4536 1312 4536 1312 4535 1312 4534 1312 4533 1312 4532 1313 4531 1313 4529 1313 4525 1313 4523 1313 4523 1313 4521 1313 4521 1313 4520 1313 4520 1313 4519 1313 4518 1313 4517 1314 4516 1314 4515 1314 4515 1314 4515 1313 4514 1313 4514 1313 4513 1313 4512 1313 4511 1313 4506 1313 4504 1313 4504 1313 4501 1313 4500 1313 4500 1314 4499 1314 4496 1314 4496 1314 4494 1314 4493 1314 4493 1314 4491 1314 4490 1314 4490 1314 4489 1314 4489 1315 4488 1315 4487 1315 4481 1316 4478 1316 4474 1317 4472 1317 4472 1317 4471 1317 4471 1317 4470 1317 4469 1317 4468 1317 4468 1317 4467 1317 4466 1317 4466 1317 4465 1318 4465 1318 4464 1318 4463 1317 4462 1316 4462 1316 4463 1316 4463 1315 4464 1315 4465 1314 4465 1314 4469 1312 4471 1312 4472 1311 4472 1311 4474 1310 4475 1309 4475 1309 4474 1309 4476 1306 4478 1305 4479 1305 4481 1304 4482 1304 4482 1304 4487 1304 4487 1305 4489 1305 4490 1305 4491 1305 4490 1304 4490 1304 4488 1304 4488 1304 4487 1304 4486 1304 4485 1303 4485 1302 4486 1301 4488 1300 4489 1300 4489 1300 4491 1300 4491 1300 4493 1300 4494 1301 4495 1301 4496 1301 4497 1301 4498 1301 4498 1301 4498 1301 4497 1301 4496 1301 4495 1301 4494 1301 4492 1300 4492 1300 4491 1300 4489 1300 4489 1300 4488 1300 4489 1299 4491 1297 4492 1297 4493 1297 4494 1297 4494 1297 4495 1297 4496 1297 4496 1297 4497 1297 4497 1296 4497 1296 4497 1295 4497 1295 4498 1295 4501 1295 4501 1295 4502 1295 4503 1296 4504 1296 4503 1296 4504 1297 4507 1297 4508 1297 4508 1297 4508 1296 4507 1296 4507 1296 4506 1295 4506 1295 4507 1294 4507 1294 4508 1294 4509 1294 4509 1294 4510 1294 4511 1294 4511 1294 4513 1294 4515 1294 4517 1295 4518 1295 4519 1295 4519 1295 4520 1295 4520 1295 4522 1295 4522 1295 4523 1296 4522 1296 4521 1296 4520 1296 4520 1296 4519 1296 4518 1297 4517 1297 4516 1298 4515 1299 4515 1300 4514 1301 4513 1301 4513 1302 4512 1302 4511 1303 4511 1303 4512 1303 4513 1303 4513 1303 4514 1303 4515 1303 4517 1301 4518 1301 4518 1300 4519 1300 4519 1300 4520 1300 4521 1300 4522 1300 4523 1300 4524 1299 4525 1299 4527 1299 4528 1299 4528 1299 4528 1299 4530 1298 4535 1299 4536 1299 4536 1299 4536 1300 4537 1301 4538 1301 4538 1301 4539 1301 4539 1301 4540 1301 4541 1301 4541 1301 4542 1301 4543 1301 4544 1302 4544 1302 4544 1303 4547 1304 4546 1304 4546 1304 4547 1304 4547 1304 4548 1304 4548 1304 4548 1303 4548 1303 4551 1303 4552 1303 4552 1303 4553 1303 4555 1304 4555 1304 4556 1304 4559 1308 4558 1309 4557 1309 4556 1309 M 4571 1314 4571 1314 4568 1313 4568 1313 4568 1313 4569 1312 4569 1312 4571 1312 4572 1313 4573 1313 4573 1312 4574 1312 4574 1312 4574 1312 4574 1312 4575 1312 4575 1311 4575 1311 4575 1311 4576 1311 4577 1311 4577 1311 4578 1311 4580 1312 4580 1312 4580 1312 4579 1313 4579 1313 4579 1313 4578 1312 4578 1312 4576 1312 4576 1312 4575 1313 4576 1313 4576 1313 4576 1313 4576 1313 4572 1314 4571 1314 M 4372 1314 4371 1314 4370 1314 4370 1314 4369 1314 4369 1314 4369 1313 4369 1313 4369 1313 4370 1313 4370 1313 4371 1313 4372 1314 4372 1314 4372 1314 M 4591 1316 4591 1315 4588 1315 4585 1315 4581 1315 4580 1315 4576 1315 4576 1314 4577 1314 4579 1314 4582 1314 4586 1314 4588 1314 4588 1314 4589 1314 4589 1314 4590 1314 4590 1314 4591 1314 4592 1314 4593 1314 4594 1314 4594 1314 4594 1314 4595 1314 4595 1315 4595 1315 4595 1315 4594 1315 4593 1316 4593 1316 4592 1316 4592 1316 4591 1316 M 3354 1544 3354 1544 3355 1544 3355 1544 3356 1544 3356 1544 3358 1543 3358 1543 3361 1541 3362 1541 3363 1540 3363 1540 3364 1540 3364 1539 3364 1539 3363 1537 3363 1536 3360 1535 3360 1535 3359 1535 3357 1535 3357 1535 3356 1534 3355 1534 3356 1533 3356 1533 3355 1532 3355 1532 3354 1532 3354 1531 3354 1531 3355 1531 3355 1531 3356 1530 3357 1530 3357 1530 3356 1528 3356 1528 3355 1528 3355 1528 3353 1528 3353 1528 3352 1528 3352 1528 3351 1528 3351 1527 3350 1527 3350 1527 3350 1527 3349 1526 3349 1526 3348 1526 3348 1524 3348 1523 3349 1523 3349 1523 3350 1523 3351 1523 3351 1523 3352 1523 3352 1522 3352 1521 3352 1521 3351 1521 3351 1521 3350 1521 3349 1521 3348 1521 3348 1520 3348 1520 3349 1519 3349 1519 3350 1519 3350 1518 3350 1517 3350 1517 3350 1516 3350 1516 3351 1516 3352 1515 3351 1514 3354 1513 3355 1513 3355 1514 3356 1514 3356 1513 3356 1511 3356 1511 3355 1510 3353 1508 3353 1507 3353 1506 3352 1506 3352 1506 3351 1506 3351 1505 3351 1505 3348 1503 3348 1502 3347 1502 3347 1501 3347 1501 3345 1499 3344 1498 3344 1498 3343 1497 3343 1497 3342 1496 3342 1496 3340 1495 3340 1495 3339 1494 3339 1494 3339 1493 3340 1493 3340 1492 3341 1492 3347 1488 3350 1486 3352 1485 3353 1484 3353 1484 3354 1484 3354 1483 3355 1481 3353 1481 3350 1480 3349 1479 3347 1477 3344 1475 3344 1475 3341 1475 3335 1474 3333 1473 3333 1473 3331 1470 3330 1468 3330 1467 3333 1466 3334 1465 3334 1464 3335 1463 3335 1463 3335 1463 3334 1462 3333 1462 3331 1462 3330 1462 3330 1462 3329 1462 3329 1462 3329 1462 3334 1460 3336 1460 3336 1460 3337 1460 3338 1460 3338 1460 3339 1460 3339 1460 3340 1460 3340 1460 3341 1459 3341 1459 3342 1459 3342 1459 3343 1457 3343 1457 3343 1456 3343 1456 3343 1455 3345 1455 3346 1455 3347 1455 3347 1455 3348 1455 3349 1454 3353 1454 3355 1453 3356 1452 3357 1451 3356 1450 3356 1450 3355 1450 3356 1450 3356 1450 3357 1450 3357 1450 3359 1450 3360 1451 3360 1451 3360 1451 3361 1451 3362 1452 3363 1452 3366 1452 3367 1452 3367 1452 3368 1452 3369 1452 3369 1451 3369 1451 3369 1450 3369 1449 3369 1449 3368 1448 3369 1448 3374 1448 3377 1449 3379 1449 3382 1450 3382 1450 3383 1449 3382 1449 3382 1449 3381 1449 3382 1447 3382 1447 3383 1447 3383 1447 3384 1447 3384 1447 3386 1447 3386 1448 3387 1448 3388 1448 3387 1447 3386 1447 3386 1447 3385 1446 3385 1445 3386 1445 3387 1445 3387 1445 3388 1445 3390 1446 3392 1446 3392 1446 3394 1447 3394 1447 3395 1448 3396 1448 3396 1448 3397 1448 3397 1448 3397 1448 3401 1448 3401 1448 3404 1448 3404 1449 3404 1449 3404 1450 3403 1450 3403 1451 3401 1451 3400 1451 3400 1451 3399 1451 3396 1451 3394 1450 3391 1450 3389 1450 3388 1450 3387 1450 3387 1451 3388 1451 3390 1451 3392 1451 3393 1451 3393 1451 3394 1452 3390 1453 3389 1454 3390 1454 3390 1454 3391 1454 3392 1453 3393 1453 3394 1453 3397 1452 3399 1453 3403 1453 3402 1453 3401 1454 3401 1454 3399 1455 3399 1455 3399 1456 3401 1455 3401 1455 3401 1454 3402 1454 3405 1454 3407 1453 3409 1453 3410 1454 3410 1455 3408 1456 3407 1456 3406 1456 3406 1456 3408 1456 3409 1456 3410 1456 3411 1457 3410 1458 3407 1459 3406 1459 3406 1459 3405 1459 3404 1459 3403 1459 3403 1459 3402 1460 3402 1461 3403 1461 3403 1461 3403 1460 3403 1459 3404 1459 3407 1459 3409 1459 3409 1459 3411 1457 3411 1457 3411 1456 3411 1455 3412 1455 3412 1455 3414 1455 3416 1455 3418 1455 3421 1455 3424 1455 3425 1456 3425 1456 3428 1456 3431 1457 3433 1457 3435 1457 3435 1457 3436 1457 3436 1457 3436 1457 3437 1458 3438 1457 3437 1456 3437 1456 3439 1456 3441 1456 3443 1457 3447 1457 3450 1458 3454 1459 3458 1460 3459 1460 3460 1460 3466 1462 3468 1463 3471 1464 3474 1465 3476 1465 3477 1465 3478 1466 3479 1466 3481 1467 3483 1468 3487 1469 3488 1470 3489 1471 3491 1471 3492 1471 3490 1471 3490 1471 3492 1470 3492 1470 3497 1472 3497 1472 3500 1473 3502 1474 3505 1475 3506 1475 3506 1475 3507 1475 3510 1476 3512 1476 3511 1474 3510 1474 3509 1474 3510 1474 3510 1474 3511 1474 3512 1474 3513 1475 3513 1475 3514 1476 3514 1476 3516 1477 3517 1477 3518 1478 3520 1478 3520 1479 3520 1479 3519 1479 3520 1480 3521 1480 3522 1480 3522 1480 3525 1480 3527 1481 3527 1481 3528 1481 3528 1481 3529 1481 3530 1481 3531 1482 3531 1482 3531 1483 3530 1483 3530 1485 3531 1485 3531 1485 3532 1485 3532 1486 3532 1487 3532 1487 3532 1488 3532 1489 3532 1489 3533 1489 3534 1489 3534 1489 3534 1489 3535 1489 3535 1489 3536 1489 3536 1490 3535 1493 3534 1494 3534 1494 3534 1494 3533 1495 3532 1496 3532 1496 3531 1496 3531 1496 3529 1497 3526 1499 3525 1499 3525 1500 3523 1501 3521 1502 3521 1502 3520 1502 3520 1502 3519 1502 3519 1502 3517 1503 3516 1503 3516 1504 3515 1504 3511 1505 3507 1505 3504 1506 3504 1506 3503 1506 3502 1506 3500 1507 3498 1507 3495 1507 3495 1507 3492 1507 3491 1508 3490 1507 3485 1507 3482 1507 3481 1507 3481 1507 3477 1506 3474 1506 3472 1505 3472 1505 3471 1505 3470 1505 3468 1504 3466 1504 3466 1504 3465 1504 3462 1504 3461 1504 3460 1504 3460 1504 3459 1504 3456 1504 3455 1503 3454 1503 3449 1503 3446 1502 3443 1502 3443 1502 3442 1502 3441 1502 3440 1502 3440 1502 3437 1501 3435 1500 3434 1500 3434 1499 3432 1499 3432 1499 3430 1499 3430 1499 3429 1499 3429 1499 3429 1499 3427 1500 3426 1500 3426 1500 3425 1500 3424 1499 3424 1498 3424 1498 3425 1498 3423 1498 3422 1498 3421 1498 3417 1497 3416 1497 3415 1497 3415 1497 3414 1496 3414 1496 3412 1495 3410 1495 3411 1496 3411 1496 3412 1496 3412 1496 3411 1497 3410 1497 3406 1496 3405 1495 3405 1495 3403 1495 3401 1494 3401 1493 3399 1493 3399 1492 3399 1492 3399 1492 3399 1491 3397 1491 3397 1490 3396 1490 3395 1490 3394 1490 3394 1490 3393 1490 3393 1490 3392 1490 3392 1490 3390 1490 3387 1490 3387 1490 3386 1490 3385 1490 3384 1490 3384 1490 3385 1490 3387 1491 3388 1491 3388 1490 3388 1490 3389 1490 3390 1490 3390 1490 3392 1491 3394 1492 3394 1492 3395 1492 3395 1493 3395 1493 3394 1494 3397 1495 3400 1496 3401 1496 3401 1497 3399 1497 3399 1497 3401 1497 3402 1497 3403 1497 3404 1497 3405 1497 3405 1497 3406 1497 3407 1498 3407 1498 3405 1498 3405 1498 3404 1498 3404 1499 3403 1499 3403 1499 3402 1499 3402 1499 3401 1499 3400 1499 3400 1499 3400 1499 3400 1499 3403 1499 3403 1499 3405 1499 3406 1498 3407 1499 3409 1499 3409 1499 3410 1500 3410 1500 3409 1500 3408 1500 3408 1500 3407 1499 3405 1499 3405 1499 3405 1500 3404 1500 3404 1500 3403 1500 3401 1500 3403 1500 3403 1500 3404 1500 3404 1500 3405 1500 3405 1500 3406 1500 3407 1500 3407 1501 3409 1501 3409 1501 3411 1501 3411 1501 3412 1501 3412 1501 3414 1502 3413 1502 3411 1502 3409 1503 3408 1503 3407 1503 3410 1503 3411 1503 3412 1503 3414 1504 3415 1504 3416 1504 3420 1504 3421 1505 3424 1506 3425 1506 3426 1507 3427 1507 3427 1507 3429 1508 3432 1510 3432 1510 3433 1513 3433 1513 3432 1513 3431 1513 3431 1512 3430 1512 3429 1512 3429 1512 3429 1513 3430 1514 3430 1515 3429 1517 3428 1517 3427 1517 3426 1517 3425 1518 3424 1518 3426 1520 3427 1520 3427 1520 3428 1520 3428 1520 3429 1521 3429 1523 3430 1523 3431 1524 3430 1525 3431 1526 3433 1527 3433 1530 3431 1531 3431 1531 3431 1532 3432 1532 3433 1532 3433 1532 3433 1533 3436 1534 3439 1535 3440 1535 3441 1535 3443 1535 3443 1534 3444 1534 3444 1534 3447 1535 3448 1535 3448 1536 3448 1536 3450 1537 3450 1537 3452 1537 3454 1538 3454 1539 3454 1540 3455 1540 3458 1541 3458 1541 3458 1541 3459 1541 3460 1541 3463 1541 3463 1542 3466 1542 3467 1542 3468 1542 3469 1542 3469 1542 3470 1543 3470 1543 3471 1543 3472 1543 3472 1543 3473 1543 3474 1543 3475 1543 3475 1543 3475 1542 3476 1541 3477 1542 3478 1542 3479 1542 3479 1542 3480 1542 3481 1541 3482 1541 3482 1541 3483 1540 3483 1540 3483 1540 3483 1539 3483 1538 3483 1538 3482 1538 3482 1538 3482 1537 3481 1537 3480 1537 3481 1536 3482 1535 3480 1535 3479 1534 3479 1534 3477 1534 3475 1534 3472 1535 3472 1535 3471 1535 3469 1534 3469 1534 3468 1534 3468 1534 3466 1532 3466 1532 3465 1532 3465 1531 3464 1530 3462 1529 3462 1529 3461 1529 3461 1529 3460 1528 3459 1528 3457 1526 3457 1525 3458 1525 3458 1525 3459 1525 3459 1525 3460 1526 3460 1526 3463 1524 3464 1523 3464 1522 3464 1522 3463 1522 3464 1521 3466 1521 3467 1521 3468 1521 3472 1522 3474 1522 3477 1523 3478 1524 3478 1524 3478 1525 3478 1525 3481 1526 3482 1526 3482 1526 3482 1526 3483 1527 3484 1527 3484 1527 3485 1527 3486 1527 3487 1527 3488 1527 3488 1527 3488 1527 3486 1528 3486 1528 3485 1528 3485 1528 3483 1528 3483 1528 3483 1530 3483 1530 3484 1530 3485 1529 3485 1529 3487 1528 3488 1528 3490 1528 3491 1528 3491 1528 3492 1528 3493 1528 3494 1528 3495 1528 3495 1528 3496 1528 3497 1528 3502 1530 3504 1531 3506 1531 3507 1531 3508 1531 3510 1531 3513 1531 3512 1530 3512 1531 3511 1531 3511 1531 3511 1530 3511 1530 3512 1530 3514 1530 3515 1530 3515 1530 3516 1531 3517 1531 3517 1531 3521 1532 3522 1532 3522 1532 3522 1531 3522 1531 3522 1530 3521 1530 3520 1529 3521 1528 3521 1528 3521 1528 3521 1527 3520 1527 3520 1527 3520 1526 3518 1524 3518 1524 3517 1524 3517 1524 3516 1524 3516 1523 3515 1522 3514 1522 3513 1521 3513 1520 3512 1520 3511 1520 3511 1520 3510 1519 3510 1519 3509 1518 3509 1518 3509 1517 3509 1517 3509 1516 3510 1516 3510 1515 3511 1515 3512 1515 3512 1514 3513 1514 3513 1514 3514 1514 3514 1514 3517 1513 3520 1512 3520 1512 3521 1512 3521 1511 3523 1511 3523 1510 3524 1510 3524 1509 3524 1509 3525 1509 3525 1509 3526 1509 3526 1509 3528 1508 3528 1508 3529 1508 3530 1508 3533 1508 3535 1508 3536 1507 3537 1507 3540 1505 3542 1504 3543 1504 3543 1504 3544 1503 3546 1502 3547 1501 3547 1501 3548 1500 3549 1500 3549 1500 3550 1500 3551 1500 3552 1500 3555 1501 3555 1501 3556 1501 3556 1502 3557 1502 3558 1502 3559 1502 3560 1502 3561 1502 3562 1502 3563 1502 3566 1501 3566 1502 3567 1502 3567 1502 3569 1503 3570 1503 3570 1503 3571 1503 3572 1504 3572 1504 3573 1504 3573 1505 3573 1505 3572 1505 3572 1505 3571 1505 3570 1505 3569 1506 3567 1507 3567 1508 3570 1509 3570 1508 3570 1508 3569 1507 3569 1507 3568 1507 3568 1507 3569 1506 3569 1506 3570 1506 3573 1505 3573 1505 3576 1506 3577 1506 3579 1507 3579 1507 3578 1508 3578 1508 3581 1510 3580 1508 3579 1506 3579 1506 3579 1505 3580 1504 3580 1503 3580 1503 3580 1503 3580 1502 3581 1502 3581 1502 3581 1502 3581 1502 3582 1501 3582 1501 3582 1501 3583 1501 3584 1500 3584 1499 3584 1498 3585 1498 3585 1498 3585 1498 3585 1497 3584 1496 3584 1496 3585 1495 3585 1495 3586 1495 3586 1494 3585 1493 3584 1492 3583 1492 3583 1492 3582 1491 3580 1490 3580 1490 3580 1490 3579 1490 3578 1489 3578 1490 3577 1490 3577 1490 3576 1490 3576 1490 3574 1489 3574 1489 3574 1488 3574 1488 3574 1487 3574 1487 3574 1486 3575 1486 3575 1486 3575 1485 3577 1483 3578 1482 3579 1481 3579 1481 3580 1481 3580 1480 3580 1479 3579 1479 3579 1478 3580 1478 3580 1478 3581 1478 3582 1478 3581 1477 3581 1477 3580 1478 3580 1478 3580 1476 3581 1475 3581 1474 3581 1473 3582 1472 3581 1472 3581 1472 3581 1471 3580 1471 3579 1470 3578 1470 3576 1470 3575 1469 3574 1469 3573 1469 3573 1469 3572 1469 3572 1469 3571 1468 3567 1467 3567 1467 3567 1467 3566 1466 3566 1466 3567 1465 3568 1465 3568 1465 3568 1465 3569 1465 3570 1466 3573 1466 3574 1467 3575 1467 3577 1467 3577 1468 3579 1468 3579 1468 3580 1468 3580 1468 3581 1468 3581 1468 3586 1468 3589 1467 3590 1467 3591 1467 3592 1467 3593 1467 3596 1467 3598 1467 3598 1467 3600 1467 3602 1468 3608 1469 3609 1469 3609 1469 3609 1470 3610 1471 3614 1473 3615 1473 3615 1473 3616 1473 3618 1474 3618 1474 3618 1475 3618 1476 3619 1476 3619 1476 3620 1477 3621 1478 3621 1479 3621 1479 3620 1480 3620 1479 3616 1479 3614 1479 3614 1479 3613 1480 3612 1480 3607 1480 3605 1480 3604 1480 3604 1480 3602 1480 3602 1480 3601 1480 3601 1480 3600 1481 3599 1481 3599 1481 3599 1481 3599 1482 3599 1482 3599 1483 3598 1483 3598 1483 3598 1483 3597 1483 3596 1483 3596 1483 3595 1484 3594 1484 3594 1484 3593 1485 3593 1485 3592 1485 3592 1487 3593 1487 3594 1487 3596 1488 3596 1488 3600 1489 3600 1489 3601 1489 3602 1489 3603 1489 3603 1490 3604 1490 3604 1491 3604 1491 3605 1492 3605 1492 3607 1494 3607 1494 3610 1495 3614 1495 3614 1495 3615 1495 3616 1495 3617 1495 3617 1494 3618 1494 3618 1494 3619 1494 3619 1495 3619 1495 3618 1495 3616 1496 3618 1496 3618 1496 3619 1495 3619 1495 3620 1495 3622 1495 3624 1495 3627 1494 3629 1494 3630 1494 3631 1494 3631 1494 3632 1494 3632 1494 3633 1494 3633 1494 3634 1494 3635 1493 3637 1493 3637 1492 3638 1492 3638 1490 3638 1490 3637 1490 3637 1489 3639 1486 3640 1486 3641 1486 3641 1485 3641 1485 3640 1485 3640 1484 3639 1484 3639 1483 3639 1483 3640 1483 3642 1482 3643 1482 3644 1482 3645 1482 3646 1482 3647 1481 3648 1481 3648 1482 3649 1482 3650 1482 3651 1481 3652 1481 3652 1481 3655 1481 3657 1482 3657 1482 3658 1482 3659 1482 3659 1482 3658 1482 3656 1481 3654 1479 3654 1479 3654 1479 3653 1478 3652 1478 3651 1478 3651 1477 3652 1477 3652 1478 3653 1478 3654 1478 3654 1478 3655 1478 3656 1479 3656 1479 3657 1479 3657 1479 3658 1479 3659 1479 3661 1478 3661 1478 3667 1477 3668 1477 3669 1476 3670 1476 3670 1476 3671 1476 3672 1475 3672 1475 3673 1475 3674 1475 3673 1475 3672 1476 3672 1476 3671 1476 3672 1476 3673 1476 3674 1476 3674 1475 3675 1475 3675 1474 3677 1474 3677 1474 3678 1473 3679 1473 3680 1473 3682 1472 3682 1472 3683 1472 3684 1472 3684 1472 3684 1471 3685 1471 3686 1470 3686 1471 3687 1471 3688 1471 3689 1471 3691 1471 3698 1470 3698 1470 3699 1469 3698 1469 3698 1469 3699 1469 3700 1469 3700 1469 3701 1469 3702 1469 3703 1468 3706 1468 3707 1468 3709 1468 3708 1468 3711 1468 3711 1469 3711 1469 3710 1470 3710 1470 3709 1470 3708 1470 3708 1470 3709 1471 3710 1471 3712 1471 3713 1471 3714 1470 3714 1470 3715 1470 3716 1470 3716 1470 3717 1470 3717 1469 3717 1469 3717 1468 3716 1468 3716 1468 3715 1468 3714 1468 3713 1467 3714 1467 3714 1467 3715 1467 3715 1466 3716 1466 3715 1466 3714 1466 3714 1466 3713 1467 3712 1467 3711 1467 3711 1467 3710 1467 3710 1467 3711 1466 3712 1466 3714 1466 3715 1465 3717 1465 3720 1464 3721 1464 3722 1464 3723 1463 3724 1463 3725 1463 3726 1462 3727 1462 3728 1462 3729 1462 3729 1462 3732 1461 3734 1461 3735 1461 3738 1461 3739 1461 3744 1460 3745 1460 3746 1460 3746 1460 3746 1460 3746 1461 3743 1461 3741 1461 3737 1462 3735 1462 3735 1462 3734 1462 3734 1462 3731 1462 3731 1462 3732 1463 3733 1463 3733 1462 3733 1462 3734 1462 3736 1462 3737 1462 3737 1463 3738 1463 3738 1463 3737 1463 3736 1463 3735 1465 3735 1465 3735 1465 3734 1466 3733 1466 3733 1466 3733 1467 3734 1467 3735 1468 3736 1468 3736 1468 3736 1469 3737 1470 3734 1471 3734 1471 3733 1470 3732 1470 3732 1470 3731 1470 3731 1470 3731 1470 3732 1470 3732 1471 3732 1471 3731 1471 3731 1471 3730 1471 3729 1471 3729 1471 3728 1471 3727 1471 3725 1472 3725 1472 3725 1472 3727 1473 3727 1473 3728 1472 3730 1472 3733 1472 3735 1472 3735 1473 3735 1473 3737 1473 3737 1473 3738 1473 3739 1472 3740 1472 3741 1473 3741 1473 3744 1472 3744 1472 3745 1472 3745 1472 3746 1472 3746 1472 3747 1472 3747 1473 3747 1473 3748 1473 3748 1474 3749 1474 3750 1474 3751 1474 3751 1474 3751 1473 3752 1473 3752 1472 3751 1471 3752 1470 3753 1470 3753 1469 3757 1468 3759 1468 3761 1467 3762 1467 3763 1467 3764 1467 3764 1467 3766 1467 3767 1467 3767 1467 3768 1466 3769 1466 3769 1466 3770 1466 3770 1466 3772 1466 3773 1467 3773 1467 3774 1467 3775 1467 3776 1467 3777 1466 3778 1466 3779 1466 3779 1466 3780 1466 3780 1466 3782 1467 3782 1467 3783 1467 3783 1467 3786 1468 3787 1468 3787 1468 3788 1468 3790 1468 3791 1467 3792 1467 3792 1467 3792 1467 3793 1466 3795 1465 3795 1465 3796 1465 3798 1465 3800 1464 3800 1464 3801 1464 3801 1463 3801 1463 3801 1463 3804 1462 3805 1462 3805 1463 3805 1463 3807 1465 3808 1465 3808 1465 3808 1464 3808 1464 3807 1464 3806 1464 3806 1464 3806 1463 3806 1463 3806 1462 3809 1461 3811 1461 3814 1461 3815 1460 3816 1460 3816 1460 3820 1460 3821 1461 3820 1461 3820 1461 3818 1461 3818 1461 3817 1461 3816 1461 3817 1462 3818 1462 3818 1462 3819 1462 3822 1463 3822 1463 3824 1464 3824 1464 3824 1465 3824 1465 3823 1465 3822 1465 3822 1465 3821 1465 3821 1465 3820 1465 3818 1466 3818 1467 3819 1470 3819 1470 3819 1470 3820 1470 3821 1470 3826 1471 3827 1471 3828 1471 3828 1471 3829 1471 3831 1470 3831 1470 3832 1470 3833 1469 3832 1468 3831 1467 3831 1467 3830 1467 3830 1467 3830 1466 3830 1466 3830 1465 3831 1465 3832 1465 3832 1465 3833 1465 3833 1465 3833 1465 3834 1465 3835 1465 3835 1465 3837 1465 3839 1465 3840 1465 3841 1465 3841 1465 3842 1465 3842 1465 3843 1464 3844 1464 3845 1463 3845 1463 3845 1463 3846 1462 3846 1462 3847 1462 3847 1462 3848 1462 3848 1461 3848 1461 3848 1459 3848 1458 3847 1458 3846 1458 3845 1458 3845 1458 3845 1459 3844 1459 3844 1459 3843 1458 3843 1458 3843 1457 3843 1456 3842 1456 3842 1455 3840 1455 3838 1453 3838 1453 3838 1453 3837 1452 3836 1451 3836 1450 3837 1450 3838 1450 3838 1450 3839 1450 3840 1450 3840 1450 3841 1450 3842 1450 3844 1450 3844 1449 3844 1449 3844 1448 3845 1447 3845 1447 3846 1447 3847 1447 3848 1447 3849 1447 3849 1447 3850 1447 3852 1447 3853 1447 3855 1447 3856 1448 3858 1448 3860 1448 3861 1448 3862 1448 3864 1448 3865 1449 3865 1449 3867 1449 3869 1449 3871 1449 3871 1449 3872 1449 3873 1449 3874 1449 3875 1449 3876 1449 3878 1449 3880 1449 3881 1449 3883 1449 3885 1449 3886 1449 3888 1450 3889 1450 3892 1450 3900 1452 3902 1452 3903 1452 3903 1453 3905 1453 3905 1453 3906 1453 3907 1454 3908 1454 3909 1454 3910 1455 3912 1455 3913 1455 3913 1456 3913 1456 3912 1456 3911 1456 3911 1456 3911 1456 3910 1457 3909 1458 3910 1458 3910 1458 3911 1458 3912 1457 3912 1457 3912 1456 3913 1456 3914 1456 3914 1456 3915 1456 3915 1456 3916 1457 3918 1457 3918 1457 3919 1457 3921 1458 3922 1458 3923 1458 3924 1458 3925 1458 3927 1458 3927 1459 3926 1459 3925 1459 3925 1459 3925 1458 3924 1459 3924 1459 3924 1459 3925 1459 3926 1459 3927 1459 3928 1460 3931 1460 3931 1460 3932 1460 3933 1461 3934 1461 3935 1461 3935 1461 3938 1462 3939 1462 3940 1462 3941 1462 3942 1462 3943 1462 3944 1462 3945 1463 3946 1463 3947 1463 3946 1463 3946 1463 3946 1464 3948 1465 3949 1465 3949 1465 3952 1466 3955 1467 3955 1467 3957 1468 3958 1468 3957 1468 3956 1468 3957 1469 3958 1469 3958 1469 3959 1469 3962 1469 3964 1470 3965 1471 3964 1472 3964 1473 3965 1473 3966 1473 3968 1473 3969 1472 3970 1472 3970 1471 3970 1471 3970 1471 3970 1470 3972 1469 3972 1469 3973 1469 3974 1468 3975 1467 3976 1467 3976 1466 3979 1463 3979 1463 3978 1462 3977 1462 3977 1462 3976 1462 3976 1462 3977 1462 3978 1462 3979 1462 3981 1461 3980 1461 3977 1461 3975 1461 3975 1462 3974 1462 3974 1462 3973 1462 3972 1462 3972 1462 3970 1461 3969 1461 3968 1461 3968 1460 3968 1460 3967 1459 3966 1459 3966 1459 3965 1458 3963 1457 3962 1456 3962 1456 3961 1455 3962 1455 3963 1454 3963 1452 3962 1452 3962 1452 3961 1452 3962 1453 3961 1453 3960 1453 3958 1452 3958 1452 3958 1452 3956 1452 3955 1451 3955 1451 3953 1451 3953 1450 3952 1450 3951 1451 3951 1451 3950 1450 3948 1450 3947 1450 3947 1450 3946 1449 3946 1449 3945 1449 3945 1449 3944 1450 3944 1452 3944 1452 3944 1452 3943 1452 3942 1451 3941 1448 3943 1444 3944 1444 3944 1444 3944 1444 3945 1444 3945 1444 3945 1444 3945 1445 3945 1445 3945 1445 3948 1445 3949 1444 3949 1444 3950 1444 3950 1443 3950 1443 3950 1442 3949 1442 3949 1442 3947 1441 3947 1441 3947 1441 3948 1438 3949 1437 3949 1436 3949 1435 3950 1434 3951 1433 3951 1432 3950 1432 3950 1432 3949 1431 3949 1431 3948 1431 3948 1431 3947 1431 3946 1431 3946 1431 3945 1432 3940 1432 3940 1432 3939 1431 3939 1430 3940 1430 3940 1430 3941 1430 3941 1429 3942 1428 3943 1427 3942 1427 3941 1428 3941 1428 3940 1428 3940 1428 3940 1428 3939 1428 3939 1428 3939 1427 3940 1427 3941 1427 3942 1426 3942 1426 3942 1426 3943 1425 3943 1425 3944 1424 3944 1424 3945 1424 3947 1424 3950 1423 3951 1423 3952 1423 3955 1421 3958 1421 3961 1420 3963 1419 3963 1419 3966 1417 3969 1415 3969 1414 3970 1413 3972 1411 3972 1410 3973 1409 3973 1408 3976 1403 3977 1401 3977 1401 3978 1401 3979 1400 3980 1400 3980 1400 3981 1400 3982 1399 3982 1398 3982 1398 3982 1398 3982 1397 3983 1397 3985 1397 3986 1397 3986 1397 3989 1397 3989 1397 3990 1397 3990 1397 3988 1398 3986 1398 3986 1398 3987 1398 3987 1399 3988 1399 3989 1398 3990 1398 3991 1398 3991 1398 3997 1398 3998 1398 4000 1398 4001 1398 4002 1398 4003 1398 4005 1398 4006 1398 4007 1398 4008 1398 4009 1398 4011 1398 4011 1398 4012 1398 4014 1398 4017 1398 4017 1398 4018 1398 4018 1398 4018 1398 4020 1398 4021 1399 4021 1399 4022 1399 4023 1399 4024 1399 4024 1399 4025 1399 4024 1399 4024 1399 4023 1399 4023 1399 4022 1400 4023 1400 4023 1400 4024 1400 4025 1400 4026 1399 4026 1399 4029 1400 4034 1400 4035 1400 4037 1401 4038 1401 4038 1402 4038 1402 4037 1403 4037 1403 4038 1405 4038 1406 4038 1407 4039 1408 4039 1408 4039 1408 4038 1409 4037 1409 4037 1409 4034 1412 4034 1413 4034 1414 4033 1414 4033 1414 4032 1414 4031 1414 4031 1415 4030 1415 4030 1415 4030 1416 4030 1416 4031 1416 4031 1417 4028 1419 4026 1419 4024 1419 4023 1420 4022 1420 4022 1421 4022 1421 4022 1422 4023 1422 4026 1424 4027 1424 4027 1424 4028 1425 4030 1425 4033 1426 4033 1426 4034 1426 4034 1426 4034 1426 4035 1426 4036 1427 4036 1427 4036 1427 4035 1428 4035 1428 4036 1429 4038 1430 4038 1431 4038 1431 4037 1433 4036 1435 4036 1435 4037 1435 4037 1436 4037 1436 4037 1438 4037 1438 4036 1438 4035 1438 4034 1439 4034 1439 4033 1439 4032 1439 4032 1440 4032 1440 4032 1441 4033 1441 4033 1441 4034 1441 4034 1441 4035 1442 4035 1442 4034 1443 4034 1443 4033 1443 4033 1444 4033 1445 4034 1445 4034 1445 4035 1446 4036 1446 4036 1447 4036 1448 4036 1448 4035 1448 4035 1449 4034 1449 4034 1449 4034 1450 4034 1451 4034 1451 4035 1452 4035 1453 4035 1453 4035 1455 4034 1456 4034 1457 4033 1457 4033 1458 4033 1458 4033 1458 4034 1461 4034 1461 4035 1462 4035 1462 4036 1463 4037 1463 4038 1463 4038 1464 4039 1464 4040 1464 4041 1464 4042 1464 4042 1465 4043 1465 4043 1465 4045 1465 4045 1466 4046 1466 4047 1466 4048 1467 4049 1467 4049 1467 4050 1468 4051 1468 4051 1469 4051 1469 4051 1469 4051 1470 4050 1469 4051 1469 4050 1469 4049 1469 4048 1469 4048 1469 4048 1470 4048 1471 4047 1471 4045 1472 4043 1473 4042 1475 4042 1475 4043 1475 4044 1476 4044 1477 4044 1477 4044 1479 4044 1479 4043 1479 4042 1479 4041 1481 4039 1481 4039 1482 4039 1482 4038 1482 4036 1482 4035 1482 4035 1482 4034 1482 4034 1483 4034 1483 4034 1484 4034 1484 4033 1484 4032 1485 4032 1485 4031 1485 4032 1485 4032 1486 4032 1487 4032 1487 4031 1487 4029 1487 4029 1487 4029 1487 4028 1487 4026 1488 4026 1488 4028 1489 4028 1489 4029 1490 4028 1490 4028 1490 4028 1490 4027 1489 4026 1490 4025 1491 4025 1491 4023 1493 4021 1493 4020 1493 4018 1493 4016 1493 4015 1494 4017 1496 4018 1497 4018 1497 4019 1497 4018 1498 4018 1498 4015 1498 4015 1498 4013 1498 4010 1498 4010 1498 4010 1499 4010 1499 4010 1499 4009 1500 4005 1500 4004 1500 4004 1500 4001 1500 4001 1500 3998 1499 3998 1499 3998 1498 3998 1498 4000 1498 4001 1498 4002 1497 4003 1497 4004 1497 4005 1496 4004 1496 4003 1496 4002 1496 4002 1497 4001 1497 3999 1498 3998 1498 3998 1497 3997 1497 3996 1497 3995 1497 3994 1496 3993 1496 3991 1495 3991 1495 3990 1495 3987 1496 3985 1496 3984 1495 3984 1495 3983 1495 3980 1495 3979 1495 3978 1495 3977 1495 3977 1495 3977 1496 3978 1496 3978 1496 3979 1496 3979 1497 3979 1497 3979 1498 3979 1498 3979 1499 3980 1499 3981 1499 3983 1500 3984 1500 3985 1500 3986 1500 3987 1500 3987 1501 3988 1501 3989 1501 3990 1501 3993 1502 3994 1502 3995 1502 3997 1503 3998 1503 3999 1503 4000 1503 4000 1503 4002 1503 4003 1503 4004 1503 4007 1503 4009 1502 4009 1502 4013 1503 4014 1503 4016 1503 4016 1503 4020 1503 4020 1503 4021 1504 4021 1504 4022 1504 4022 1505 4023 1505 4023 1505 4024 1504 4024 1504 4025 1505 4025 1505 4025 1505 4026 1505 4028 1504 4030 1504 4030 1504 4030 1504 4031 1503 4031 1503 4031 1502 4031 1501 4031 1500 4031 1500 4033 1499 4033 1499 4034 1498 4035 1498 4036 1498 4037 1498 4038 1498 4040 1498 4040 1498 4041 1497 4041 1497 4044 1496 4044 1496 4047 1495 4049 1495 4049 1495 4051 1494 4052 1493 4053 1493 4053 1493 4054 1493 4055 1493 4055 1492 4056 1491 4056 1489 4056 1488 4055 1488 4058 1486 4058 1486 4058 1486 4059 1485 4061 1485 4061 1484 4063 1484 4064 1484 4066 1483 4067 1482 4068 1482 4068 1482 4069 1481 4069 1481 4069 1480 4069 1480 4070 1480 4070 1479 4070 1478 4070 1477 4069 1474 4068 1474 4067 1473 4067 1472 4066 1472 4065 1472 4064 1471 4063 1471 4062 1470 4062 1470 4063 1469 4064 1469 4064 1469 4064 1468 4064 1468 4064 1467 4064 1467 4064 1467 4064 1465 4065 1465 4065 1465 4066 1464 4067 1464 4068 1464 4069 1464 4070 1464 4073 1463 4074 1463 4075 1463 4080 1462 4081 1462 4081 1462 4084 1462 4086 1461 4086 1461 4090 1461 4092 1461 4094 1461 4097 1461 4098 1461 4098 1461 4099 1461 4100 1462 4100 1463 4099 1463 4099 1464 4099 1464 4100 1464 4101 1465 4102 1465 4103 1465 4108 1467 4109 1468 4110 1468 4110 1470 4109 1471 4108 1471 4108 1471 4107 1472 4108 1472 4109 1472 4110 1473 4111 1473 4110 1474 4109 1475 4108 1477 4109 1477 4110 1478 4109 1479 4108 1479 4108 1479 4107 1479 4107 1479 4107 1479 4106 1479 4106 1479 4106 1480 4107 1480 4109 1481 4110 1481 4111 1481 4112 1482 4113 1482 4116 1483 4116 1483 4117 1483 4118 1483 4119 1483 4120 1483 4121 1484 4122 1484 4123 1484 4123 1483 4124 1483 4125 1483 4125 1483 4126 1483 4126 1483 4127 1484 4129 1484 4129 1484 4129 1483 4130 1483 4131 1483 4132 1483 4133 1483 4134 1483 4134 1483 4135 1483 4136 1483 4136 1483 4137 1483 4137 1483 4135 1482 4133 1482 4133 1482 4132 1482 4132 1482 4131 1483 4131 1483 4130 1483 4129 1483 4128 1482 4129 1482 4129 1482 4130 1482 4130 1482 4131 1482 4130 1482 4128 1481 4126 1482 4123 1482 4123 1482 4122 1482 4121 1481 4120 1481 4117 1481 4116 1481 4115 1481 4114 1481 4114 1481 4113 1481 4113 1480 4112 1480 4112 1480 4112 1477 4113 1475 4113 1475 4114 1474 4114 1474 4114 1474 4115 1474 4115 1473 4116 1473 4117 1473 4118 1473 4119 1473 4119 1473 4121 1473 4123 1472 4124 1472 4122 1471 4121 1470 4120 1470 4120 1470 4120 1469 4120 1469 4120 1469 4120 1468 4119 1468 4118 1468 4118 1468 4117 1468 4116 1467 4116 1466 4117 1466 4117 1465 4117 1465 4116 1462 4116 1462 4115 1462 4115 1462 4114 1462 4113 1462 4113 1462 4112 1462 4111 1462 4111 1461 4110 1461 4110 1461 4108 1461 4107 1461 4105 1460 4104 1460 4104 1460 4103 1460 4102 1460 4102 1459 4102 1459 4102 1459 4100 1458 4099 1458 4099 1458 4098 1458 4098 1458 4097 1458 4095 1458 4095 1458 4093 1458 4090 1457 4090 1457 4089 1457 4088 1457 4088 1457 4087 1457 4086 1457 4085 1457 4084 1457 4083 1456 4082 1456 4081 1456 4081 1456 4080 1456 4079 1457 4076 1458 4076 1458 4075 1458 4075 1459 4073 1459 4070 1459 4069 1459 4068 1459 4068 1459 4067 1459 4066 1459 4065 1458 4064 1458 4062 1458 4060 1458 4060 1458 4059 1459 4056 1459 4056 1459 4055 1459 4054 1458 4053 1458 4053 1458 4053 1458 4053 1457 4054 1456 4054 1456 4055 1455 4055 1455 4055 1454 4055 1454 4055 1453 4054 1453 4053 1452 4053 1451 4052 1451 4052 1451 4051 1451 4051 1450 4051 1450 4050 1449 4049 1449 4050 1448 4051 1446 4053 1443 4053 1443 4052 1443 4052 1442 4052 1442 4055 1440 4056 1440 4057 1440 4057 1440 4058 1439 4058 1439 4058 1438 4060 1438 4060 1438 4061 1437 4062 1437 4062 1436 4062 1436 4062 1435 4062 1434 4062 1434 4062 1433 4061 1433 4061 1433 4060 1433 4058 1432 4058 1432 4057 1431 4056 1431 4056 1431 4056 1430 4056 1430 4055 1429 4055 1429 4055 1429 4054 1428 4054 1428 4053 1428 4053 1428 4052 1427 4052 1427 4052 1426 4051 1426 4051 1426 4050 1425 4050 1425 4049 1424 4049 1424 4049 1424 4048 1424 4047 1423 4046 1423 4045 1423 4044 1422 4043 1422 4043 1422 4042 1422 4041 1422 4042 1421 4043 1421 4044 1420 4046 1419 4047 1419 4049 1418 4049 1418 4049 1417 4049 1417 4049 1417 4049 1416 4049 1415 4050 1415 4051 1415 4052 1415 4052 1415 4053 1415 4056 1414 4059 1414 4063 1413 4064 1413 4065 1413 4070 1411 4072 1411 4072 1411 4073 1411 4073 1410 4074 1410 4074 1409 4074 1409 4075 1407 4075 1406 4074 1405 4074 1403 4074 1403 4074 1403 4073 1402 4073 1402 4072 1401 4071 1400 4070 1400 4070 1399 4073 1398 4073 1398 4074 1398 4074 1398 4075 1399 4077 1399 4079 1400 4081 1400 4081 1401 4080 1401 4080 1401 4079 1402 4081 1402 4083 1403 4083 1403 4084 1403 4084 1404 4084 1404 4083 1404 4083 1404 4082 1404 4082 1404 4082 1405 4084 1407 4084 1408 4085 1408 4085 1408 4085 1408 4085 1408 4084 1409 4083 1409 4082 1409 4081 1410 4080 1412 4080 1413 4080 1413 4079 1413 4078 1413 4077 1413 4076 1415 4076 1416 4077 1417 4079 1417 4079 1417 4080 1418 4080 1418 4080 1418 4081 1418 4081 1420 4080 1421 4078 1421 4077 1421 4077 1421 4077 1422 4077 1423 4078 1423 4079 1423 4080 1424 4086 1424 4091 1425 4092 1425 4093 1425 4094 1425 4095 1425 4096 1425 4097 1425 4098 1425 4099 1425 4099 1425 4102 1425 4103 1426 4104 1427 4104 1427 4104 1427 4104 1427 4104 1426 4104 1426 4105 1426 4106 1426 4107 1426 4111 1426 4114 1426 4116 1426 4117 1426 4117 1426 4118 1426 4119 1427 4119 1427 4119 1428 4119 1428 4119 1429 4120 1429 4120 1429 4121 1429 4121 1429 4123 1429 4125 1429 4126 1430 4126 1430 4127 1430 4127 1430 4128 1430 4130 1430 4131 1430 4132 1430 4133 1430 4135 1430 4136 1430 4137 1430 4138 1429 4139 1428 4138 1428 4135 1428 4135 1429 4134 1429 4134 1429 4133 1430 4132 1430 4130 1429 4129 1429 4129 1428 4129 1427 4129 1427 4129 1427 4128 1427 4128 1427 4126 1427 4128 1428 4128 1428 4129 1428 4128 1428 4127 1428 4127 1428 4125 1427 4125 1427 4125 1426 4126 1426 4126 1425 4126 1425 4126 1424 4125 1424 4122 1424 4120 1424 4120 1424 4119 1424 4120 1423 4121 1423 4121 1423 4121 1423 4117 1423 4117 1424 4116 1424 4115 1424 4115 1424 4115 1424 4114 1424 4114 1423 4113 1423 4113 1423 4112 1423 4112 1423 4112 1423 4113 1423 4113 1424 4112 1424 4110 1423 4110 1423 4108 1423 4108 1422 4107 1422 4106 1422 4105 1422 4105 1422 4103 1422 4101 1421 4100 1421 4099 1420 4099 1420 4098 1420 4097 1420 4096 1420 4095 1420 4094 1420 4094 1420 4093 1419 4093 1419 4093 1419 4092 1417 4090 1414 4090 1414 4094 1413 4095 1412 4095 1412 4096 1412 4098 1412 4099 1412 4101 1412 4101 1412 4102 1412 4103 1412 4104 1412 4104 1412 4108 1413 4109 1413 4112 1414 4112 1415 4113 1415 4114 1415 4115 1415 4115 1415 4116 1415 4117 1415 4118 1415 4121 1415 4123 1414 4123 1414 4124 1414 4124 1414 4124 1413 4124 1413 4124 1413 4124 1412 4123 1412 4122 1411 4121 1411 4121 1411 4120 1411 4120 1411 4119 1411 4118 1411 4118 1411 4117 1411 4115 1411 4115 1411 4114 1411 4113 1411 4113 1412 4112 1411 4111 1411 4111 1411 4112 1409 4112 1409 4113 1409 4113 1409 4114 1409 4114 1409 4115 1410 4115 1410 4116 1409 4117 1409 4117 1409 4117 1409 4119 1408 4120 1407 4122 1407 4124 1407 4125 1407 4125 1407 4126 1407 4126 1406 4128 1406 4128 1406 4129 1406 4129 1406 4129 1406 4129 1406 4130 1406 4133 1406 4134 1407 4134 1407 4136 1407 4137 1407 4139 1406 4141 1406 4142 1406 4143 1406 4144 1407 4145 1407 4145 1407 4147 1407 4148 1408 4149 1408 4149 1408 4150 1408 4150 1409 4151 1409 4155 1410 4155 1410 4157 1410 4158 1410 4160 1410 4160 1410 4162 1411 4164 1411 4165 1411 4166 1411 4166 1411 4166 1411 4166 1412 4166 1412 4165 1412 4166 1411 4165 1411 4164 1411 4163 1411 4163 1412 4163 1412 4168 1413 4171 1414 4173 1415 4173 1415 4173 1416 4173 1416 4174 1416 4175 1416 4179 1417 4181 1417 4185 1417 4187 1417 4188 1417 4189 1417 4197 1416 4198 1416 4198 1416 4199 1416 4200 1417 4200 1417 4201 1417 4203 1417 4204 1417 4205 1417 4205 1417 4206 1418 4205 1418 4203 1419 4203 1419 4203 1419 4202 1420 4201 1420 4201 1420 4200 1421 4198 1422 4196 1423 4196 1423 4194 1423 4191 1424 4190 1424 4189 1424 4189 1424 4189 1426 4190 1426 4190 1427 4190 1427 4190 1427 4190 1428 4189 1428 4188 1428 4188 1429 4188 1429 4189 1429 4189 1430 4190 1430 4191 1432 4191 1433 4190 1433 4189 1433 4188 1433 4188 1434 4188 1434 4186 1435 4187 1437 4188 1439 4188 1439 4188 1440 4190 1441 4190 1441 4190 1441 4189 1439 4187 1435 4188 1435 4189 1435 4192 1435 4193 1432 4193 1432 4192 1431 4194 1430 4195 1429 4196 1429 4197 1429 4199 1429 4202 1430 4203 1430 4203 1431 4203 1432 4202 1433 4202 1434 4201 1435 4201 1436 4202 1436 4201 1438 4201 1438 4198 1439 4195 1440 4195 1441 4195 1442 4198 1443 4200 1443 4202 1443 4202 1443 4203 1443 4204 1443 4204 1442 4204 1442 4203 1441 4202 1441 4201 1440 4200 1439 4200 1439 4201 1439 4201 1439 4202 1439 4203 1439 4204 1439 4206 1439 4207 1439 4209 1439 4211 1438 4213 1437 4213 1436 4212 1435 4212 1434 4210 1433 4209 1432 4209 1431 4209 1430 4208 1430 4207 1428 4206 1428 4205 1427 4203 1425 4203 1424 4204 1424 4204 1424 4205 1424 4207 1423 4207 1422 4207 1422 4207 1421 4207 1421 4208 1421 4209 1421 4209 1421 4210 1420 4210 1420 4211 1419 4211 1418 4209 1417 4209 1417 4207 1416 4207 1415 4207 1415 4205 1415 4204 1415 4203 1414 4201 1414 4199 1414 4198 1414 4197 1414 4197 1414 4196 1414 4195 1413 4194 1413 4193 1412 4192 1412 4190 1412 4190 1411 4189 1411 4188 1411 4189 1411 4190 1410 4190 1409 4189 1409 4188 1408 4187 1408 4187 1408 4187 1408 4186 1408 4184 1408 4184 1408 4182 1408 4182 1407 4181 1407 4180 1407 4176 1407 4174 1407 4172 1407 4171 1407 4167 1405 4166 1405 4164 1404 4164 1404 4164 1404 4165 1404 4165 1403 4166 1403 4165 1402 4165 1402 4164 1402 4164 1402 4163 1401 4163 1401 4164 1401 4165 1400 4166 1399 4166 1398 4166 1397 4165 1396 4164 1396 4164 1396 4163 1395 4162 1395 4161 1395 4160 1395 4160 1395 4161 1395 4162 1395 4162 1395 4162 1394 4161 1394 4160 1394 4160 1394 4159 1394 4157 1394 4157 1394 4157 1394 4158 1393 4158 1393 4159 1393 4161 1393 4161 1393 4162 1393 4162 1392 4162 1392 4161 1392 4160 1392 4160 1392 4159 1392 4158 1392 4157 1392 4157 1391 4158 1391 4159 1390 4159 1390 4162 1390 4163 1389 4164 1389 4163 1388 4163 1388 4162 1388 4162 1389 4161 1389 4161 1389 4161 1387 4162 1387 4162 1387 4164 1387 4165 1387 4167 1387 4170 1387 4174 1387 4176 1386 4177 1386 4181 1386 4184 1386 4185 1386 4189 1386 4192 1386 4192 1386 4194 1386 4196 1386 4197 1386 4199 1386 4205 1386 4207 1386 4208 1386 4209 1386 4210 1386 4211 1386 4212 1386 4212 1386 4213 1385 4214 1385 4217 1385 4222 1385 4223 1385 4224 1385 4225 1385 4226 1385 4226 1385 4227 1385 4228 1384 4229 1384 4229 1384 4230 1384 4230 1384 4230 1385 4232 1385 4233 1385 4236 1385 4237 1385 4240 1385 4240 1385 4240 1385 4241 1384 4242 1384 4242 1384 4242 1383 4244 1383 4245 1383 4245 1383 4246 1383 4246 1383 4247 1383 4247 1383 4249 1383 4249 1383 4249 1383 4250 1383 4254 1383 4257 1382 4261 1382 4261 1382 4265 1383 4265 1383 4266 1383 4265 1384 4264 1384 4263 1384 4262 1384 4262 1385 4261 1385 4258 1386 4258 1386 4257 1386 4257 1386 4256 1386 4255 1387 4254 1387 4253 1387 4253 1387 4251 1387 4250 1387 4246 1388 4245 1389 4245 1391 4246 1391 4246 1391 4247 1392 4248 1392 4249 1392 4252 1392 4253 1393 4253 1393 4253 1393 4254 1394 4254 1394 4255 1394 4256 1394 4257 1394 4257 1394 4258 1394 4259 1395 4259 1395 4260 1395 4260 1396 4261 1396 4261 1397 4261 1396 4261 1395 4261 1395 4260 1394 4259 1394 4255 1393 4254 1392 4253 1392 4252 1392 4251 1392 4248 1392 4248 1391 4247 1391 4247 1391 4246 1391 4246 1389 4246 1389 4247 1389 4248 1388 4249 1388 4253 1388 4256 1387 4257 1387 4258 1387 4259 1387 4261 1387 4261 1387 4262 1387 4264 1387 4265 1387 4266 1387 4267 1387 4268 1387 4269 1386 4270 1385 4270 1385 4269 1386 4269 1385 4269 1385 4271 1384 4272 1384 4272 1384 4273 1384 4274 1384 4274 1383 4275 1383 4275 1382 4275 1382 4274 1382 4274 1382 4273 1382 4273 1383 4272 1383 4271 1383 4270 1383 4269 1383 4268 1383 4268 1383 4267 1382 4267 1382 4267 1382 4265 1381 4264 1380 4264 1380 4265 1380 4268 1380 4269 1380 4269 1380 4270 1380 4270 1380 4271 1380 4271 1380 4270 1380 4270 1380 4269 1380 4267 1380 4267 1380 4266 1379 4265 1379 4264 1379 4263 1379 4263 1379 4262 1379 4261 1379 4261 1378 4261 1377 4260 1377 4258 1377 4257 1377 4257 1377 4255 1376 4252 1376 4250 1376 4249 1376 4249 1376 4248 1376 4247 1375 4248 1375 4248 1375 4249 1375 4250 1375 4252 1375 4252 1375 4253 1376 4254 1375 4253 1374 4252 1374 4251 1374 4251 1374 4250 1374 4250 1374 4250 1374 4254 1373 4256 1373 4256 1373 4257 1373 4257 1374 4258 1374 4259 1374 4260 1374 4261 1374 4262 1374 4263 1374 4263 1375 4263 1375 4261 1375 4261 1375 4260 1375 4260 1376 4260 1376 4262 1376 4262 1376 4263 1376 4263 1375 4264 1375 4265 1375 4266 1375 4267 1375 4266 1375 4265 1374 4265 1374 4262 1374 4262 1374 4261 1374 4260 1373 4257 1372 4258 1372 4260 1372 4259 1372 4254 1371 4252 1371 4250 1371 4249 1371 4248 1371 4248 1371 4247 1371 4245 1370 4246 1369 4246 1369 4247 1369 4247 1369 4248 1369 4248 1369 4249 1369 4249 1369 4250 1369 4250 1369 4251 1368 4250 1368 4250 1368 4249 1368 4250 1367 4252 1368 4252 1368 4253 1368 4253 1368 4252 1368 4254 1369 4254 1369 4255 1369 4256 1369 4257 1369 4258 1369 4258 1370 4260 1371 4260 1371 4263 1371 4264 1370 4263 1370 4263 1370 4262 1370 4261 1370 4261 1370 4261 1369 4263 1369 4263 1369 4264 1369 4265 1368 4265 1367 4266 1367 4267 1367 4267 1367 4268 1366 4270 1366 4271 1365 4270 1365 4270 1365 4269 1365 4269 1365 4267 1365 4268 1365 4269 1365 4270 1364 4271 1365 4271 1365 4272 1365 4272 1365 4274 1366 4277 1364 4276 1364 4274 1364 4274 1364 4273 1364 4272 1364 4271 1364 4270 1364 4269 1363 4266 1363 4265 1363 4265 1363 4264 1363 4263 1363 4263 1363 4263 1363 4264 1362 4264 1362 4265 1362 4266 1362 4266 1362 4267 1362 4268 1362 4269 1362 4274 1362 4274 1362 4277 1363 4278 1363 4279 1363 4279 1363 4280 1363 4280 1363 4281 1363 4281 1363 4284 1362 4285 1362 4286 1362 4286 1361 4286 1361 4290 1359 4290 1359 4294 1358 4296 1358 4298 1357 4299 1357 4299 1357 4300 1357 4300 1357 4301 1357 4301 1357 4302 1357 4303 1358 4304 1358 4305 1357 4306 1357 4307 1357 4307 1357 4309 1356 4311 1356 4312 1356 4311 1356 4311 1356 4312 1355 4313 1355 4314 1355 4317 1355 4318 1355 4319 1355 4323 1355 4323 1355 4323 1354 4324 1354 4326 1354 4326 1354 4326 1354 4327 1354 4327 1354 4327 1355 4328 1355 4330 1354 4331 1354 4332 1355 4332 1355 4333 1355 4334 1355 4334 1354 4334 1354 4335 1354 4336 1354 4336 1354 4337 1354 4338 1354 4338 1354 4339 1354 4339 1354 4338 1354 4339 1353 4340 1353 4340 1353 4341 1353 4341 1353 4345 1353 4345 1353 4346 1353 4347 1353 4347 1353 4348 1353 4350 1353 4351 1353 4351 1353 4352 1352 4352 1352 4353 1352 4356 1352 4356 1352 4357 1352 4359 1352 4360 1352 4361 1352 4364 1351 4366 1351 4367 1351 4368 1351 4369 1351 4371 1351 4371 1351 4372 1351 4375 1350 4378 1350 4379 1350 4379 1349 4376 1350 4374 1350 4374 1350 4372 1350 4371 1350 4371 1350 4370 1350 4370 1350 4369 1349 4369 1349 4368 1350 4368 1350 4368 1351 4367 1351 4367 1351 4365 1350 4365 1349 4365 1349 4365 1349 4364 1349 4361 1349 4361 1350 4361 1350 4362 1350 4362 1350 4361 1350 4361 1350 4360 1350 4359 1350 4358 1349 4359 1348 4361 1348 4361 1348 4362 1348 4364 1348 4364 1348 4364 1347 4363 1347 4363 1347 4363 1347 4367 1347 4367 1347 4367 1347 4366 1347 4367 1348 4367 1348 4367 1348 4368 1348 4368 1348 4370 1348 4372 1348 4375 1348 4376 1348 4376 1348 4376 1347 4375 1347 4374 1347 4371 1347 4371 1347 4371 1347 4371 1347 4372 1347 4372 1347 4377 1347 4379 1347 4382 1347 4382 1347 4383 1347 4383 1347 4383 1348 4384 1348 4384 1348 4386 1348 4386 1348 4388 1347 4388 1346 4387 1346 4386 1346 4385 1346 4385 1346 4386 1346 4386 1346 4387 1346 4389 1346 4389 1346 4390 1346 4390 1347 4391 1347 4393 1347 4393 1347 4396 1347 4398 1346 4398 1346 4399 1346 4402 1346 4404 1346 4411 1347 4411 1347 4411 1347 4409 1348 4407 1349 4405 1350 4402 1350 4402 1350 4404 1351 4404 1351 4405 1350 4406 1350 4407 1349 4408 1349 4410 1349 4411 1349 4413 1349 4414 1349 4414 1349 4416 1349 4417 1348 4417 1348 4419 1349 4418 1349 4418 1350 4417 1350 4415 1351 4417 1351 4422 1350 4424 1349 4425 1349 4428 1348 4428 1348 4429 1348 4430 1348 4431 1348 4429 1348 4428 1349 4428 1349 4427 1349 4427 1350 4428 1350 4430 1350 4429 1349 4430 1349 4430 1349 4433 1349 4433 1349 4433 1349 4434 1349 4436 1349 4437 1349 4438 1349 4437 1348 4436 1348 4435 1348 4435 1348 4434 1348 4433 1348 4433 1348 4434 1348 4436 1347 4436 1347 4438 1347 4438 1348 4439 1348 4439 1348 4441 1348 4443 1347 4444 1347 4442 1347 4441 1347 4441 1347 4440 1347 4439 1347 4441 1346 4441 1346 4443 1346 4444 1346 4445 1346 4446 1346 4446 1346 4448 1346 4448 1345 4450 1345 4452 1344 4452 1344 4453 1344 4453 1344 4453 1344 4453 1345 4452 1345 4452 1345 4452 1345 4454 1346 4455 1345 4455 1345 4456 1345 4460 1345 4461 1345 4461 1345 4460 1346 4458 1346 4458 1346 4459 1346 4459 1347 4460 1347 4460 1347 4461 1346 4464 1346 4466 1346 4466 1347 4465 1347 4464 1347 4464 1347 4465 1348 4466 1348 4466 1347 4467 1347 4467 1348 4468 1348 4468 1348 4467 1351 4466 1351 4466 1351 4464 1352 4464 1352 4463 1352 4462 1352 4461 1352 4461 1352 4460 1352 4460 1352 4458 1354 4458 1355 4458 1356 4458 1356 4459 1356 4459 1356 4462 1356 4466 1357 4468 1358 4468 1358 4468 1359 4469 1359 4470 1359 4471 1359 4472 1360 4472 1360 4473 1360 4475 1362 4475 1362 4475 1362 4473 1360 4472 1359 4470 1359 4470 1359 4469 1359 4469 1358 4469 1357 4469 1357 4468 1357 4467 1357 4467 1357 4466 1357 4466 1357 4464 1357 4463 1356 4462 1356 4462 1356 4460 1356 4460 1356 4459 1356 4459 1356 4460 1354 4460 1354 4461 1353 4461 1352 4461 1352 4462 1352 4463 1352 4463 1352 4465 1352 4465 1352 4466 1352 4466 1352 4467 1352 4467 1351 4468 1351 4469 1351 4470 1350 4470 1350 4471 1350 4471 1350 4470 1347 4469 1346 4468 1346 4467 1346 4466 1345 4466 1345 4466 1345 4466 1344 4465 1344 4464 1344 4463 1344 4463 1344 4462 1344 4462 1344 4461 1343 4461 1343 4460 1343 4460 1343 4459 1343 4458 1343 4457 1343 4457 1343 4457 1343 4455 1342 4455 1341 4454 1341 4453 1341 4454 1341 4454 1340 4454 1340 4455 1340 4455 1340 4457 1341 4458 1341 4461 1341 4463 1341 4464 1341 4467 1341 4470 1341 4470 1341 4471 1341 4472 1341 4476 1341 4477 1341 4478 1341 4483 1341 4483 1341 4484 1340 4485 1340 4486 1340 4486 1340 4489 1341 4490 1341 4491 1341 4493 1341 4493 1341 4494 1341 4494 1341 4495 1341 4496 1341 4496 1341 4497 1341 4498 1341 4499 1341 4499 1341 4500 1342 4501 1342 4501 1342 4502 1342 4502 1342 4507 1343 4508 1343 4508 1343 4507 1342 4507 1342 4506 1342 4505 1342 4504 1342 4501 1341 4501 1341 4495 1341 4495 1341 4493 1340 4492 1340 4491 1340 4489 1340 4489 1340 4486 1340 4487 1340 4488 1340 4488 1340 4489 1339 4489 1339 4490 1339 4490 1337 4492 1337 4492 1336 4491 1336 4491 1336 4490 1336 4489 1336 4489 1336 4488 1336 4488 1336 4486 1335 4486 1335 4486 1334 4487 1333 4487 1333 4487 1333 4488 1333 4489 1333 4490 1333 4490 1333 4491 1333 4491 1333 4491 1333 4492 1333 4492 1332 4492 1332 4491 1332 4491 1332 4491 1331 4492 1331 4496 1330 4502 1328 4502 1328 4505 1327 4505 1327 4506 1326 4506 1326 4507 1326 4507 1326 4508 1327 4508 1327 4509 1327 4511 1326 4511 1326 4511 1325 4513 1325 4515 1324 4518 1324 4518 1324 4519 1323 4522 1323 4523 1322 4524 1322 4524 1322 4525 1322 4525 1323 4526 1323 4528 1323 4529 1323 4530 1322 4533 1322 4534 1322 4536 1321 4537 1321 4541 1321 4541 1321 4541 1321 4541 1321 4541 1321 4540 1322 4541 1322 4542 1322 4543 1322 4544 1322 4544 1322 4545 1322 4546 1321 4546 1321 4547 1321 4548 1321 4548 1322 4549 1322 4549 1322 4549 1323 4551 1323 4552 1323 4553 1323 4553 1323 4555 1324 4556 1324 4558 1324 4558 1324 4560 1324 4561 1324 4562 1324 4563 1324 4565 1324 4566 1324 4567 1325 4567 1325 4568 1326 4568 1326 4568 1326 4569 1326 4570 1326 4573 1327 4571 1327 4571 1327 4570 1327 4570 1327 4569 1327 4569 1327 4566 1327 4565 1327 4565 1327 4564 1327 4564 1327 4563 1327 4561 1328 4560 1329 4559 1329 4556 1329 4555 1329 4551 1330 4550 1330 4549 1330 4549 1330 4549 1330 4548 1330 4548 1330 4547 1330 4545 1330 4545 1331 4544 1331 4543 1331 4542 1331 4542 1330 4542 1331 4539 1331 4538 1331 4539 1331 4542 1331 4544 1331 4544 1331 4546 1331 4546 1331 4547 1331 4549 1331 4549 1331 4550 1331 4550 1331 4551 1331 4552 1331 4558 1331 4558 1331 4559 1331 4560 1331 4561 1331 4561 1331 4562 1331 4563 1331 4564 1331 4565 1331 4565 1331 4566 1331 4567 1330 4567 1331 4566 1331 4564 1332 4564 1332 4563 1332 4562 1332 4561 1332 4560 1332 4559 1332 4559 1333 4563 1333 4567 1333 4567 1333 4568 1332 4570 1332 4571 1332 4571 1332 4572 1332 4573 1332 4576 1332 4577 1332 4578 1333 4579 1333 4580 1333 4580 1333 4580 1333 4580 1332 4579 1332 4578 1332 4581 1332 4581 1332 4582 1332 4583 1332 4584 1332 4585 1332 4586 1332 4588 1332 4589 1333 4589 1333 4589 1333 4590 1334 4592 1334 4592 1334 4590 1334 4589 1334 4588 1335 4589 1335 4588 1335 4588 1336 4587 1336 4587 1336 4586 1336 4585 1336 4585 1336 4585 1337 4583 1337 4581 1338 4578 1339 4577 1339 4576 1339 4576 1339 4575 1339 4575 1339 4574 1339 4574 1339 4574 1340 4574 1340 4575 1341 4577 1341 4581 1341 4581 1341 4582 1341 4582 1341 4584 1341 4586 1340 4589 1340 4590 1340 4591 1340 4592 1340 4592 1341 4593 1341 4593 1341 4594 1341 4595 1340 4598 1340 4599 1340 4600 1338 4600 1338 4599 1338 4599 1338 4599 1337 4599 1337 4600 1337 4603 1337 4605 1337 4606 1337 4609 1337 4610 1337 4613 1337 4615 1337 4618 1337 4620 1337 4622 1337 4625 1337 4625 1337 4626 1337 4627 1337 4630 1337 4632 1338 4633 1338 4634 1337 4635 1337 4636 1337 4637 1337 4638 1337 4640 1337 4641 1336 4642 1336 4642 1337 4642 1337 4643 1337 4644 1337 4645 1337 4646 1337 4647 1337 4649 1337 4650 1337 4650 1337 4651 1337 4652 1337 4656 1338 4657 1338 4656 1338 4655 1339 4656 1339 4657 1339 4658 1339 4659 1339 4660 1339 4662 1339 4662 1340 4663 1340 4663 1340 4664 1340 4664 1340 4665 1340 4665 1340 4667 1341 4665 1342 4662 1343 4664 1343 4664 1343 4666 1342 4668 1341 4668 1341 4669 1342 4673 1343 4674 1343 4676 1343 4676 1344 4675 1345 4674 1345 4673 1345 4673 1345 4672 1345 4673 1345 4674 1346 4674 1346 4675 1346 4675 1346 4675 1346 4676 1345 4677 1346 4678 1346 4677 1347 4676 1348 4675 1348 4674 1348 4674 1348 4673 1348 4673 1348 4674 1348 4675 1348 4676 1348 4677 1348 4678 1348 4678 1348 4679 1348 4680 1347 4681 1347 4680 1346 4680 1346 4681 1346 4681 1346 4682 1346 4683 1346 4683 1346 4684 1346 4684 1346 4682 1345 4681 1345 4680 1345 4680 1345 4679 1345 4679 1345 4681 1345 4682 1345 4682 1345 4683 1344 4683 1344 4684 1344 4684 1344 4686 1345 4687 1346 4687 1346 4687 1347 4687 1347 4687 1348 4687 1348 4688 1348 4688 1348 4689 1349 4688 1350 4689 1351 4690 1350 4690 1350 4690 1350 4692 1350 4693 1350 4693 1350 4694 1350 4694 1351 4693 1352 4692 1353 4692 1353 4691 1354 4691 1354 4691 1355 4689 1356 4688 1356 4688 1356 4687 1356 4687 1356 4688 1355 4689 1355 4690 1354 4689 1354 4688 1354 4682 1353 4681 1353 4675 1351 4674 1351 4674 1351 4673 1351 4673 1351 4670 1351 4670 1351 4669 1351 4672 1352 4673 1352 4674 1352 4675 1352 4677 1353 4677 1353 4678 1353 4678 1355 4677 1355 4677 1356 4678 1356 4679 1356 4679 1356 4680 1356 4680 1356 4680 1356 4680 1355 4680 1355 4682 1354 4683 1354 4684 1354 4684 1354 4684 1354 4685 1355 4684 1355 4684 1355 4685 1356 4688 1356 4688 1357 4689 1357 4689 1357 4689 1356 4690 1356 4690 1356 4691 1357 4691 1357 4691 1358 4691 1358 4691 1358 4691 1358 4690 1358 4689 1358 4689 1358 4688 1358 4689 1359 4689 1359 4690 1358 4690 1358 4691 1359 4690 1360 4689 1360 4686 1361 4685 1362 4683 1362 4680 1364 4678 1365 4678 1365 4676 1365 4675 1365 4673 1366 4672 1366 4669 1366 4669 1366 4668 1366 4667 1366 4667 1366 4666 1367 4665 1367 4665 1367 4665 1367 4665 1368 4665 1368 4662 1369 4660 1370 4660 1370 4660 1370 4659 1370 4658 1370 4657 1370 4656 1369 4655 1369 4654 1370 4654 1370 4652 1370 4651 1370 4651 1371 4648 1371 4649 1371 4648 1372 4647 1372 4646 1372 4645 1372 4645 1372 4643 1372 4642 1373 4642 1373 4641 1373 4640 1373 4640 1373 4639 1373 4639 1373 4638 1373 4637 1373 4637 1373 4636 1373 4637 1373 4638 1374 4638 1374 4635 1375 4635 1375 4634 1375 4633 1375 4633 1375 4632 1375 4632 1375 4632 1375 4631 1375 4631 1375 4631 1375 4628 1375 4628 1375 4626 1375 4625 1376 4626 1376 4626 1376 4627 1376 4627 1376 4628 1376 4629 1376 4629 1376 4631 1376 4631 1376 4631 1376 4631 1377 4631 1377 4630 1377 4629 1378 4629 1378 4628 1378 4624 1379 4622 1379 4621 1379 4620 1380 4618 1380 4617 1380 4612 1382 4612 1382 4610 1383 4609 1383 4609 1384 4608 1384 4607 1384 4606 1385 4605 1385 4604 1386 4603 1386 4602 1386 4601 1386 4601 1386 4600 1386 4599 1386 4599 1386 4598 1386 4598 1386 4596 1387 4596 1387 4595 1387 4595 1387 4594 1386 4589 1387 4587 1387 4586 1387 4586 1387 4587 1388 4585 1389 4582 1390 4581 1391 4581 1391 4579 1392 4578 1392 4578 1392 4578 1392 4577 1392 4575 1391 4573 1391 4572 1391 4571 1392 4569 1392 4569 1392 4569 1393 4569 1393 4568 1394 4568 1394 4567 1395 4566 1395 4566 1395 4566 1395 4565 1396 4563 1398 4562 1398 4557 1399 4555 1400 4555 1400 4558 1400 4559 1400 4559 1400 4560 1400 4562 1400 4563 1399 4565 1399 4567 1398 4568 1398 4568 1397 4569 1397 4569 1397 4570 1397 4571 1397 4572 1397 4573 1397 4572 1397 4572 1397 4571 1397 4571 1396 4571 1395 4571 1394 4574 1394 4574 1394 4575 1394 4576 1394 4579 1394 4580 1394 4580 1394 4581 1394 4583 1394 4583 1394 4584 1394 4585 1394 4585 1394 4587 1394 4587 1394 4588 1394 4589 1394 4589 1394 4589 1394 4590 1394 4591 1394 4594 1394 4595 1394 4596 1394 4597 1394 4597 1394 4598 1394 4599 1393 4599 1393 4600 1393 4601 1393 4601 1393 4601 1393 4602 1393 4603 1393 4604 1393 4604 1393 4605 1393 4606 1393 4606 1393 4606 1392 4606 1392 4605 1392 4604 1392 4604 1392 4603 1392 4604 1392 4604 1392 4606 1392 4608 1392 4609 1392 4610 1391 4611 1391 4612 1391 4613 1391 4614 1391 4617 1391 4618 1391 4619 1390 4620 1390 4620 1390 4619 1389 4620 1389 4621 1389 4621 1390 4622 1390 4623 1390 4622 1389 4621 1389 4620 1389 4620 1389 4619 1388 4619 1388 4619 1388 4622 1389 4623 1389 4623 1389 4624 1389 4624 1389 4625 1389 4625 1389 4626 1389 4627 1389 4628 1389 4629 1389 4630 1389 4634 1388 4634 1388 4636 1387 4638 1387 4639 1387 4640 1386 4642 1386 4645 1386 4646 1386 4646 1385 4647 1385 4646 1385 4646 1384 4645 1384 4643 1384 4643 1384 4642 1384 4642 1384 4638 1385 4636 1385 4636 1385 4635 1385 4635 1385 4632 1385 4630 1385 4628 1386 4628 1386 4628 1386 4627 1386 4627 1386 4626 1386 4626 1385 4625 1384 4624 1384 4624 1383 4625 1383 4626 1383 4626 1383 4627 1383 4629 1383 4629 1382 4630 1382 4630 1381 4631 1381 4632 1381 4632 1380 4633 1380 4634 1380 4635 1380 4638 1380 4638 1380 4640 1381 4641 1381 4642 1381 4643 1381 4643 1381 4646 1382 4647 1382 4648 1382 4648 1382 4648 1382 4649 1382 4649 1381 4649 1381 4649 1381 4650 1380 4650 1380 4651 1380 4651 1380 4652 1380 4653 1380 4654 1380 4655 1380 4656 1380 4657 1380 4657 1380 4656 1380 4654 1381 4654 1381 4654 1381 4653 1381 4653 1381 4652 1381 4652 1381 4651 1381 4651 1381 4651 1382 4652 1382 4653 1383 4653 1383 4654 1383 4657 1384 4658 1384 4660 1385 4664 1385 4665 1385 4668 1385 4668 1385 4670 1385 4671 1385 4674 1385 4675 1385 4676 1385 4676 1385 4677 1385 4678 1384 4679 1384 4679 1384 4679 1383 4678 1382 4678 1381 4682 1383 4682 1383 4683 1384 4684 1384 4685 1385 4685 1385 4686 1385 4686 1386 4687 1386 4687 1387 4686 1387 4685 1387 4685 1387 4685 1387 4684 1388 4682 1389 4684 1391 4684 1391 4685 1391 4686 1391 4687 1391 4687 1391 4688 1391 4688 1395 4688 1395 4688 1396 4687 1396 4687 1397 4687 1397 4685 1398 4685 1398 4683 1399 4683 1399 4682 1399 4682 1399 4681 1399 4683 1401 4684 1401 4685 1402 4686 1402 4687 1402 4688 1402 4690 1403 4690 1403 4690 1403 4691 1403 4692 1403 4693 1403 4694 1403 4696 1403 4696 1403 4697 1403 4697 1403 4697 1403 4696 1403 4695 1403 4693 1402 4693 1402 4692 1402 4692 1402 4692 1402 4691 1402 4691 1402 4687 1402 4686 1402 4685 1402 4683 1401 4683 1400 4683 1400 4683 1400 4682 1399 4682 1399 4683 1399 4684 1399 4685 1398 4686 1398 4688 1397 4688 1397 4689 1395 4688 1394 4688 1394 4688 1393 4689 1393 4691 1392 4691 1391 4692 1391 4692 1391 4693 1392 4693 1392 4694 1392 4696 1391 4696 1391 4696 1391 4696 1391 4695 1391 4695 1391 4695 1391 4694 1391 4693 1391 4692 1391 4690 1390 4688 1390 4688 1389 4687 1389 4688 1388 4689 1388 4690 1388 4693 1388 4693 1388 4695 1388 4695 1388 4696 1387 4696 1387 4697 1387 4699 1387 4700 1387 4701 1387 4702 1387 4702 1387 4703 1387 4704 1387 4706 1387 4710 1387 4710 1387 4711 1387 4711 1386 4711 1386 4714 1386 4714 1386 4716 1385 4718 1385 4719 1385 4721 1385 4725 1385 4725 1385 4726 1385 4728 1386 4729 1386 4730 1386 4730 1386 4732 1386 4732 1386 4733 1386 4734 1386 4735 1386 4736 1386 4737 1386 4737 1386 4739 1386 4744 1387 4745 1387 4746 1387 4747 1387 4748 1387 4748 1387 4749 1387 4753 1387 4755 1387 4757 1387 4757 1387 4759 1387 4766 1387 4767 1387 4770 1387 4770 1387 4773 1388 4775 1388 4775 1389 4775 1389 4774 1389 4771 1389 4770 1389 4769 1389 4768 1389 4767 1389 4766 1390 4765 1390 4765 1392 4766 1393 4767 1393 4770 1394 4770 1394 4773 1394 4776 1395 4780 1395 4780 1395 4783 1395 4783 1395 4783 1395 4784 1396 4784 1396 4785 1396 4785 1397 4788 1397 4789 1398 4790 1398 4790 1398 4791 1398 4792 1398 4793 1398 4795 1398 4795 1398 4796 1398 4797 1398 4798 1398 4799 1398 4801 1398 4799 1398 4798 1398 4796 1398 4794 1398 4793 1398 4791 1397 4790 1397 4790 1397 4789 1397 4789 1397 4788 1397 4788 1397 4788 1396 4789 1396 4790 1396 4794 1397 4797 1397 4799 1397 4799 1397 4801 1397 4801 1397 4801 1397 4802 1397 4803 1397 4804 1397 4805 1397 4806 1398 4806 1398 4807 1398 4808 1398 4809 1398 4810 1398 4810 1398 4811 1397 4812 1397 4814 1397 4815 1397 4820 1397 4821 1397 4821 1397 4823 1397 4823 1397 4822 1398 4824 1398 4824 1398 4824 1398 4826 1398 4827 1399 4828 1399 4829 1399 4830 1399 4830 1399 4830 1399 4831 1399 4831 1399 4832 1399 4834 1400 4836 1400 4837 1400 4839 1400 4840 1400 4840 1400 4841 1400 4842 1400 4843 1401 4845 1401 4846 1401 4846 1401 4847 1401 4847 1401 4849 1401 4850 1400 4850 1400 4851 1400 4852 1400 4853 1401 4857 1401 4858 1401 4859 1402 4859 1402 4860 1402 4861 1402 4862 1402 4862 1402 4863 1402 4864 1402 4866 1402 4867 1402 4867 1403 4868 1403 4869 1403 4871 1404 4871 1404 4872 1404 4873 1404 4873 1404 4874 1404 4874 1404 4875 1405 4875 1405 4875 1405 4876 1405 4876 1405 4877 1405 4877 1406 4878 1406 4879 1406 4880 1406 4880 1407 4881 1407 4882 1407 4882 1407 4883 1407 4884 1407 4884 1407 4885 1407 4885 1407 4886 1407 4886 1407 4887 1408 4888 1408 4889 1408 4890 1408 4891 1408 4892 1408 4893 1407 4893 1407 4894 1407 4896 1408 4897 1410 4900 1410 4900 1411 4900 1412 4900 1412 4902 1413 4903 1414 4903 1414 4903 1414 4904 1414 4905 1415 4906 1415 4905 1416 4905 1416 4905 1417 4906 1419 4907 1419 4907 1420 4907 1421 4907 1422 4907 1422 4908 1422 4908 1422 4908 1422 4908 1422 4908 1421 4908 1421 4908 1420 4908 1419 4907 1419 4907 1418 4906 1417 4907 1416 4907 1415 4908 1415 4908 1415 4909 1414 4909 1414 4908 1414 4908 1413 4907 1413 4907 1413 4905 1413 4905 1413 4904 1412 4904 1412 4903 1412 4902 1410 4902 1409 4902 1408 4901 1407 4899 1406 4902 1406 4903 1406 4904 1406 4906 1406 4907 1406 4908 1407 4911 1407 4911 1407 4911 1407 4912 1407 4913 1407 4914 1407 4914 1407 4915 1407 4916 1408 4916 1408 4917 1408 4918 1409 4920 1410 4924 1411 4926 1412 4926 1413 4927 1414 4928 1414 4928 1414 4929 1414 4930 1415 4930 1416 4931 1416 4934 1417 4935 1417 4937 1416 4938 1416 4938 1416 4938 1415 4938 1415 4938 1415 4937 1414 4937 1414 4937 1414 4936 1413 4937 1412 4940 1414 4940 1415 4940 1415 4940 1415 4940 1416 4943 1417 4944 1417 4942 1417 4942 1417 4940 1417 4939 1417 4937 1417 4936 1417 4935 1417 4934 1417 4934 1417 4933 1418 4932 1418 4933 1419 4933 1419 4934 1419 4934 1419 4936 1419 4936 1419 4937 1419 4938 1419 4938 1419 4939 1420 4940 1421 4941 1422 4941 1422 4942 1423 4942 1423 4945 1424 4945 1424 4946 1424 4947 1425 4948 1426 4947 1427 4948 1427 4950 1427 4953 1427 4954 1428 4955 1429 4955 1429 4954 1429 4955 1429 4956 1430 4957 1430 4959 1430 4960 1430 4961 1431 4961 1431 4962 1431 4962 1430 4963 1430 4963 1430 4963 1429 4963 1429 4964 1429 4966 1431 4966 1432 4966 1432 4966 1432 4966 1433 4967 1433 4968 1433 4969 1433 4970 1433 4971 1433 4972 1432 4972 1432 4973 1432 4975 1431 4976 1430 4976 1430 4977 1429 4978 1429 4979 1427 4980 1426 4981 1425 4981 1425 4983 1425 4984 1425 4985 1425 4986 1425 4986 1425 4985 1425 4985 1425 4984 1425 4984 1425 4983 1424 4982 1424 4982 1424 4985 1421 4985 1420 4987 1418 4991 1415 4992 1414 4993 1414 4994 1414 4995 1413 4995 1414 4995 1415 4995 1415 4995 1416 4995 1416 4995 1416 4996 1416 4998 1417 4998 1417 4998 1417 4999 1418 4999 1418 5001 1419 5002 1419 5005 1420 5005 1420 5007 1421 5007 1421 5009 1421 5009 1421 5010 1422 5014 1422 5015 1422 5020 1423 5023 1423 5026 1422 5028 1421 5028 1421 5032 1420 5032 1420 5035 1420 5035 1420 5036 1420 5036 1420 5037 1420 5037 1420 5038 1420 5037 1420 5037 1419 5038 1419 5041 1419 5044 1418 5045 1418 5047 1418 5047 1418 5049 1419 5050 1419 5050 1419 5051 1419 5052 1419 5053 1419 5054 1419 5055 1419 5055 1419 5056 1420 5057 1420 5058 1420 5059 1420 5060 1420 5060 1420 5061 1421 5061 1421 5064 1422 5065 1422 5066 1422 5066 1422 5067 1422 5068 1422 5070 1423 5071 1423 5070 1424 5070 1424 5072 1425 5073 1425 5073 1424 5074 1425 5075 1426 5076 1426 5076 1427 5077 1427 5077 1426 5078 1426 5078 1426 5079 1427 5080 1426 5079 1426 5078 1425 5076 1425 5075 1425 5076 1425 5076 1424 5077 1425 5078 1425 5079 1425 5080 1425 5082 1425 5083 1424 5082 1424 5081 1424 5080 1424 5080 1424 5079 1424 5081 1423 5082 1423 5083 1423 5082 1423 5082 1423 5081 1423 5079 1423 5077 1423 5076 1422 5077 1422 5078 1422 5078 1422 5079 1421 5080 1421 5080 1420 5080 1420 5080 1419 5081 1419 5083 1419 5085 1419 5087 1419 5086 1419 5086 1419 5086 1419 5086 1420 5086 1420 5089 1420 5089 1419 5088 1419 5089 1419 5090 1418 5090 1418 5091 1418 5092 1419 5095 1419 5096 1419 5096 1419 5097 1421 5097 1422 5098 1422 5099 1422 5101 1422 5101 1421 5102 1421 5102 1421 5104 1421 5105 1421 5107 1421 5110 1421 5110 1420 5109 1419 5108 1419 5107 1418 5106 1417 5106 1416 5107 1415 5105 1414 5105 1414 5105 1414 5104 1414 5101 1414 5101 1413 5101 1413 5101 1413 5102 1413 5102 1413 5103 1413 5104 1413 5105 1413 5105 1413 5106 1413 5107 1412 5106 1412 5107 1411 5107 1411 5109 1410 5109 1410 5110 1410 5110 1410 5110 1410 5111 1410 5111 1410 5112 1410 5112 1410 5112 1410 5114 1410 5115 1410 5114 1409 5114 1409 5112 1409 5111 1409 5110 1409 5109 1409 5107 1409 5107 1409 5105 1409 5104 1409 5103 1409 5101 1410 5100 1410 5100 1410 5099 1410 5099 1410 5098 1410 5098 1410 5097 1409 5097 1409 5097 1408 5098 1407 5100 1406 5103 1405 5103 1405 5104 1405 5105 1405 5106 1404 5108 1404 5109 1405 5112 1405 5113 1405 5117 1405 5121 1405 5122 1404 5124 1404 5127 1403 5127 1403 5127 1402 5127 1401 5127 1401 5124 1400 5122 1400 5120 1399 5121 1398 5121 1398 5121 1398 5122 1398 5123 1398 5126 1398 5133 1399 5133 1399 5133 1399 5134 1399 5135 1400 5135 1400 5136 1400 5136 1400 5141 1401 5141 1401 5143 1401 5143 1401 5148 1401 5151 1401 5154 1401 5156 1401 5157 1401 5160 1401 5161 1402 5163 1401 5164 1401 5165 1401 5165 1401 5166 1401 5167 1401 5168 1401 5168 1402 5168 1402 5169 1402 5171 1402 5172 1402 5172 1402 5173 1402 5174 1402 5174 1402 5176 1402 5177 1402 5177 1402 5180 1402 5182 1402 5183 1403 5184 1403 5185 1403 5186 1403 5192 1403 5195 1403 5198 1404 5199 1404 5204 1405 5206 1405 5207 1405 5207 1405 5208 1405 5210 1405 5211 1405 5212 1406 5215 1406 5217 1406 5218 1407 5218 1407 5219 1407 5220 1407 5220 1407 5219 1407 5218 1407 5216 1407 5214 1407 5210 1407 5209 1407 5206 1407 5204 1407 5198 1407 5196 1407 5195 1406 5195 1406 5194 1406 5191 1406 5190 1406 5190 1406 5189 1406 5189 1406 5188 1406 5187 1406 5187 1406 5186 1407 5185 1408 5184 1408 5184 1409 5182 1408 5181 1408 5180 1408 5177 1408 5178 1409 5179 1409 5180 1409 5181 1410 5182 1410 5183 1410 5185 1410 5185 1410 5185 1409 5186 1409 5186 1409 5187 1409 5187 1409 5188 1409 5192 1408 5193 1408 5194 1408 5195 1408 5199 1408 5200 1408 5200 1408 5202 1408 5204 1408 5207 1408 5208 1408 5213 1408 5214 1408 5214 1408 5216 1408 5218 1408 5222 1408 5220 1409 5220 1409 5218 1410 5217 1410 5214 1412 5213 1412 5212 1413 5211 1413 5210 1413 5208 1414 5208 1414 5207 1415 5207 1415 5206 1415 5206 1415 5207 1412 5208 1412 5208 1412 5209 1412 5209 1412 5211 1411 5212 1411 5211 1410 5210 1410 5208 1410 5208 1411 5207 1411 5206 1411 5206 1411 5206 1411 5206 1410 5205 1409 5204 1409 5203 1409 5202 1408 5202 1408 5201 1409 5202 1409 5202 1409 5203 1409 5203 1409 5203 1410 5202 1410 5201 1411 5201 1411 5201 1412 5202 1412 5202 1412 5203 1412 5204 1412 5204 1412 5204 1413 5204 1414 5203 1414 5203 1414 5202 1414 5202 1414 5199 1414 5197 1415 5196 1415 5196 1414 5194 1414 5191 1413 5190 1413 5190 1414 5192 1414 5192 1415 5193 1415 5194 1415 5194 1415 5192 1416 5191 1416 5190 1416 5190 1416 5189 1416 5189 1417 5190 1417 5191 1417 5192 1417 5195 1418 5195 1418 5196 1418 5196 1418 5197 1418 5199 1417 5200 1417 5200 1417 5201 1417 5202 1417 5204 1417 5208 1416 5210 1415 5212 1414 5215 1413 5216 1412 5218 1411 5224 1408 5225 1407 5226 1407 5227 1407 5232 1407 5237 1407 5241 1407 5243 1407 5247 1408 5248 1408 5249 1408 5250 1408 5253 1409 5255 1409 5258 1409 5259 1409 5260 1410 5261 1410 5263 1410 5266 1411 5270 1412 5271 1413 5272 1414 5272 1414 5272 1414 5271 1415 5271 1415 5267 1416 5266 1416 5266 1416 5265 1416 5264 1416 5261 1414 5261 1414 5260 1414 5260 1414 5258 1415 5258 1416 5257 1416 5257 1416 5256 1416 5254 1416 5252 1416 5253 1416 5254 1416 5254 1416 5255 1416 5255 1417 5254 1417 5253 1417 5253 1417 5252 1418 5255 1418 5256 1418 5256 1418 5257 1417 5259 1418 5262 1418 5263 1418 5266 1418 5267 1418 5268 1418 5269 1418 5270 1418 5272 1419 5271 1419 5271 1419 5270 1419 5270 1419 5269 1421 5269 1421 5269 1421 5270 1421 5272 1420 5273 1420 5273 1420 5274 1420 5275 1420 5275 1420 5280 1420 5281 1420 5282 1421 5281 1421 5279 1423 5279 1423 5278 1423 5278 1423 5277 1423 5276 1424 5274 1424 5273 1424 5272 1425 5271 1425 5272 1425 5272 1425 5273 1425 5273 1425 5274 1425 5274 1424 5275 1424 5275 1424 5276 1424 5276 1424 5276 1424 5277 1424 5280 1423 5280 1423 5281 1422 5281 1422 5282 1422 5282 1422 5282 1422 5281 1423 5281 1423 5281 1424 5281 1424 5282 1424 5282 1423 5284 1423 5285 1423 5287 1422 5287 1422 5289 1422 5290 1423 5291 1423 5292 1423 5294 1423 5294 1423 5297 1424 5299 1425 5299 1425 5300 1426 5301 1426 5304 1428 5304 1428 5305 1428 5305 1429 5303 1429 5303 1429 5301 1429 5300 1429 5297 1429 5298 1429 5299 1429 5300 1429 5302 1429 5303 1430 5304 1430 5304 1430 5305 1430 5306 1430 5308 1431 5311 1431 5313 1431 5315 1431 5317 1431 5319 1431 5320 1431 5323 1431 5324 1431 5324 1430 5326 1430 5329 1430 5330 1431 5331 1430 5335 1430 5338 1429 5340 1429 5343 1429 5346 1428 5348 1428 5349 1428 5351 1428 5352 1428 5357 1428 5358 1428 5359 1428 5362 1427 5364 1427 5364 1427 5366 1427 5369 1427 5370 1427 5372 1427 5375 1427 5376 1427 5377 1427 5378 1427 5379 1427 5380 1427 5388 1427 5392 1427 5392 1427 5393 1427 5397 1428 5400 1428 5406 1429 5409 1430 5410 1430 5411 1430 5413 1430 5414 1430 5415 1431 5417 1431 5419 1431 5419 1432 5422 1432 5423 1433 5425 1434 5427 1435 5428 1435 5429 1436 5431 1438 5432 1440 5432 1441 5430 1442 5427 1442 5427 1443 5429 1443 5428 1445 5427 1445 5426 1445 5426 1446 5426 1446 5426 1446 5426 1446 5426 1447 5427 1448 5431 1449 5432 1449 5433 1449 5435 1449 5442 1450 5445 1450 5447 1451 5446 1451 5446 1452 5445 1452 5445 1453 5446 1454 5446 1454 5446 1455 5447 1456 5447 1456 5447 1458 5447 1458 5446 1458 5446 1459 5447 1459 5447 1459 5448 1460 5450 1460 5450 1460 5451 1460 5452 1460 5453 1461 5453 1461 5453 1461 5453 1462 5452 1462 5452 1462 5451 1463 5450 1464 5450 1465 5450 1465 5448 1467 5448 1467 5447 1468 5444 1468 5443 1467 5443 1468 5444 1468 5445 1468 5446 1468 5447 1468 5447 1468 5449 1467 5449 1467 5451 1466 5451 1465 5452 1464 5454 1463 5455 1462 5456 1462 5456 1460 5455 1460 5455 1459 5454 1459 5454 1458 5453 1457 5453 1457 5453 1454 5454 1454 5455 1454 5456 1454 5457 1453 5457 1453 5459 1452 5460 1452 5460 1452 5461 1452 5461 1452 5462 1452 5463 1452 5465 1450 5466 1450 5468 1450 5469 1450 5469 1450 5470 1450 5471 1450 5471 1450 5472 1450 5473 1450 5474 1450 5474 1450 5476 1450 5476 1450 5478 1450 5480 1449 5481 1449 5482 1449 5483 1449 5484 1449 5485 1449 5486 1449 5487 1450 5487 1450 5488 1450 5489 1449 5490 1449 5491 1449 5493 1449 5493 1449 5494 1448 5494 1448 5495 1448 5495 1448 5496 1448 5496 1448 5497 1449 5497 1449 5498 1450 5500 1450 5501 1450 5502 1451 5503 1451 5507 1451 5508 1451 5510 1451 5510 1451 5512 1451 5513 1451 5514 1451 5514 1451 5515 1451 5516 1451 5516 1451 5517 1451 5518 1451 5519 1451 5520 1451 5524 1451 5525 1451 5525 1452 5526 1452 5527 1452 5528 1452 5529 1452 5532 1452 5532 1452 5533 1452 5536 1452 5537 1452 5538 1452 5538 1452 5540 1453 5541 1453 5541 1452 5546 1451 5549 1450 5549 1450 5550 1449 5551 1449 5551 1449 5552 1449 5552 1449 5553 1448 5554 1448 5554 1448 5555 1448 5555 1448 5556 1448 5558 1449 5558 1449 5558 1450 5559 1451 5559 1451 5560 1451 5562 1451 5562 1452 5562 1452 5562 1453 5562 1454 5561 1454 5562 1456 5563 1457 5563 1457 5564 1457 5565 1457 5566 1457 5568 1457 5570 1457 5572 1458 5573 1458 5575 1458 5578 1459 5578 1459 5580 1459 5580 1459 5580 1459 5581 1460 5581 1460 5581 1462 5581 1462 5581 1463 5582 1463 5582 1463 5584 1464 5585 1464 5586 1464 5587 1464 5591 1464 5594 1464 5594 1463 5595 1463 5595 1463 5596 1463 5596 1463 5598 1464 5599 1464 5599 1464 5600 1464 5599 1463 5597 1463 5598 1463 5600 1462 5600 1462 5601 1462 5602 1464 5602 1463 5602 1462 5602 1461 5605 1460 5607 1460 5607 1460 5606 1459 5606 1458 5605 1457 5605 1456 5604 1455 5602 1453 5601 1452 5600 1451 5600 1451 5600 1451 5599 1451 5598 1451 5598 1451 5597 1451 5596 1451 5595 1451 5594 1451 5593 1451 5593 1451 5592 1451 5592 1450 5593 1450 5593 1450 5593 1449 5594 1449 5595 1449 5595 1449 5596 1449 5597 1449 5597 1449 5598 1449 5598 1448 5599 1448 5599 1448 5599 1446 5599 1446 5599 1446 5599 1444 5599 1444 5599 1443 5599 1443 5598 1443 5597 1443 5597 1443 5597 1442 5597 1442 5598 1442 5599 1442 5599 1442 5600 1443 5600 1443 5602 1443 5603 1443 5603 1443 5604 1443 5605 1443 5606 1443 5609 1443 5612 1443 5612 1443 5613 1443 5614 1444 5617 1444 5618 1444 5620 1444 5621 1444 5622 1445 5623 1445 5624 1445 5625 1445 5626 1445 5626 1445 5627 1445 5629 1445 5630 1445 5631 1445 5632 1445 5635 1446 5635 1446 5635 1446 5636 1446 5639 1447 5641 1447 5641 1447 5641 1448 5641 1448 5644 1448 5646 1447 5646 1447 5645 1447 5643 1446 5643 1446 5642 1446 5641 1446 5641 1446 5642 1446 5645 1445 5646 1445 5646 1445 5649 1446 5650 1447 5653 1447 5654 1447 5654 1447 5655 1446 5656 1446 5659 1446 5660 1446 5661 1447 5661 1447 5664 1447 5666 1447 5668 1447 5671 1447 5673 1447 5674 1447 5675 1447 5675 1447 5676 1447 5677 1447 5678 1447 5678 1447 5678 1446 5682 1446 5682 1446 5685 1446 5687 1446 5688 1446 5690 1447 5690 1448 5691 1448 5693 1448 5695 1449 5696 1449 5696 1449 5697 1449 5697 1450 5698 1450 5702 1450 5703 1450 5705 1450 5707 1451 5709 1451 5712 1451 5713 1452 5713 1452 5714 1452 5716 1452 5721 1453 5722 1453 5723 1453 5723 1453 5724 1453 5725 1453 5726 1453 5729 1454 5730 1454 5732 1454 5734 1455 5735 1455 5735 1455 5734 1455 5733 1455 5732 1455 5732 1455 5731 1455 5730 1454 5730 1454 5729 1455 5729 1455 5728 1455 5729 1456 5729 1456 5730 1456 5731 1456 5731 1456 5732 1456 5732 1456 5736 1456 5739 1456 5739 1457 5740 1457 5740 1457 5743 1458 5746 1459 5748 1460 5749 1460 5749 1461 5748 1460 5747 1460 5747 1460 5746 1460 5745 1459 5744 1459 5743 1459 5743 1459 5743 1459 5745 1460 5746 1460 5746 1461 5747 1461 5748 1461 5749 1461 5750 1461 5750 1477 5750 1493 5750 1509 5750 1518 5750 1523 5748 1524 5747 1524 5747 1524 5746 1524 5746 1525 5744 1526 5741 1527 5741 1527 5740 1527 5738 1527 5737 1528 5735 1528 5734 1529 5733 1529 5733 1529 5732 1529 5731 1530 5728 1531 5727 1531 5726 1531 5726 1531 5726 1531 5726 1531 5726 1530 5728 1530 5729 1530 5729 1530 5730 1530 5730 1529 5729 1529 5728 1529 5727 1530 5724 1530 5722 1530 5722 1529 5720 1529 5717 1529 5714 1529 5712 1529 5710 1527 5710 1527 5709 1526 5709 1525 5707 1525 5707 1525 5706 1525 5706 1525 5705 1525 5705 1524 5705 1524 5701 1523 5700 1523 5700 1523 5699 1523 5698 1523 5697 1524 5696 1524 5694 1523 5693 1523 5691 1524 5691 1524 5694 1524 5695 1524 5696 1524 5697 1524 5697 1524 5698 1524 5700 1524 5700 1524 5701 1524 5701 1524 5702 1524 5702 1524 5704 1525 5704 1525 5705 1525 5706 1526 5707 1527 5706 1527 5706 1527 5705 1528 5705 1528 5703 1528 5701 1528 5700 1527 5700 1527 5696 1526 5696 1526 5695 1527 5693 1527 5693 1527 5693 1527 5689 1526 5687 1525 5687 1525 5686 1525 5685 1526 5685 1527 5684 1527 5684 1527 5682 1528 5682 1528 5681 1528 5681 1528 5680 1528 5680 1528 5679 1528 5678 1528 5677 1528 5676 1528 5675 1528 5673 1528 5672 1528 5671 1528 5671 1528 5669 1529 5669 1529 5668 1529 5666 1529 5665 1529 5665 1529 5663 1529 5662 1529 5661 1529 5662 1530 5662 1530 5664 1530 5666 1530 5667 1529 5668 1529 5668 1529 5669 1529 5670 1529 5670 1529 5671 1528 5672 1528 5673 1529 5675 1529 5677 1528 5680 1528 5681 1528 5682 1528 5683 1528 5685 1527 5685 1527 5686 1526 5687 1526 5687 1526 5688 1526 5689 1526 5691 1527 5693 1529 5692 1530 5691 1530 5690 1530 5689 1530 5689 1530 5688 1530 5688 1531 5688 1531 5688 1532 5688 1531 5690 1530 5690 1530 5691 1530 5691 1530 5692 1530 5692 1530 5693 1530 5693 1529 5694 1529 5695 1529 5696 1530 5697 1530 5698 1531 5698 1531 5699 1531 5699 1531 5700 1530 5700 1530 5702 1529 5702 1529 5707 1528 5708 1528 5708 1528 5710 1528 5709 1530 5709 1531 5708 1531 5708 1532 5708 1532 5709 1533 5709 1533 5712 1535 5713 1535 5715 1536 5716 1537 5717 1537 5718 1537 5719 1537 5720 1537 5721 1537 5721 1537 5720 1537 5720 1537 5719 1536 5723 1535 5723 1535 5724 1536 5724 1536 5725 1537 5726 1538 5726 1539 5725 1539 5724 1540 5724 1540 5724 1541 5725 1541 5726 1541 5726 1541 5729 1541 5729 1542 5730 1545 5730 1546 5730 1546 5728 1545 5727 1546 5726 1546 5724 1546 5723 1546 5722 1547 5723 1548 5724 1548 5724 1548 5725 1547 5726 1547 5726 1547 5729 1547 5730 1548 5730 1549 5729 1549 5728 1550 5729 1550 5729 1550 5730 1550 5730 1550 5731 1549 5730 1549 5730 1548 5730 1548 5730 1547 5730 1547 5731 1547 5731 1548 5731 1549 5732 1549 5733 1550 5734 1551 5734 1551 5734 1551 5733 1551 5733 1551 5733 1551 5732 1550 5732 1550 5731 1550 5731 1550 5731 1551 5731 1551 5732 1551 5732 1551 5732 1551 5733 1551 5733 1552 5733 1552 5737 1552 5738 1553 5738 1553 5739 1553 5739 1553 5741 1554 5741 1555 5740 1555 5740 1555 5739 1555 5739 1555 5738 1556 5738 1556 5738 1557 5739 1558 5740 1558 5741 1558 5742 1558 5743 1559 5744 1560 5744 1561 5743 1562 5742 1562 5741 1563 5740 1564 5740 1564 5739 1564 5738 1564 5738 1564 5737 1564 5737 1564 5736 1565 5736 1565 5736 1565 5736 1567 5736 1568 5735 1567 5734 1567 5734 1567 5733 1567 5730 1566 5730 1566 5726 1565 5723 1565 5721 1564 5720 1564 5719 1564 5718 1564 5718 1563 5714 1563 5713 1563 5713 1563 5712 1563 5711 1563 5710 1563 5710 1563 5708 1563 5707 1563 5707 1563 5707 1560 5708 1560 5708 1560 5708 1560 5709 1560 5709 1559 5709 1559 5708 1559 5707 1559 5707 1560 5706 1560 5706 1560 5706 1561 5706 1561 5705 1561 5704 1561 5704 1560 5705 1560 5704 1559 5702 1558 5702 1558 5702 1558 5701 1561 5701 1562 5701 1562 5703 1563 5703 1563 5703 1563 5704 1563 5705 1563 5706 1563 5706 1563 5705 1563 5704 1563 5703 1563 5703 1563 5700 1564 5699 1564 5698 1564 5697 1564 5696 1564 5696 1565 5691 1567 5689 1567 5688 1568 5687 1568 5686 1568 5684 1568 5683 1569 5679 1570 5675 1571 5674 1571 5674 1572 5673 1572 5669 1573 5669 1573 5668 1573 5667 1573 5667 1573 5666 1574 5666 1573 5666 1573 5664 1573 5664 1573 5664 1573 5665 1573 5666 1574 5665 1574 5665 1575 5664 1575 5662 1575 5662 1575 5661 1575 5661 1575 5659 1575 5657 1575 5656 1575 5656 1575 5655 1575 5654 1575 5654 1576 5655 1576 5654 1577 5654 1577 5652 1577 5651 1577 5651 1577 5648 1576 5648 1576 5647 1576 5647 1576 5647 1577 5646 1578 5646 1579 5646 1579 5646 1579 5644 1579 5644 1579 5643 1580 5643 1580 5643 1580 5643 1581 5641 1582 5640 1582 5640 1582 5639 1582 5639 1582 5638 1581 5638 1581 5636 1581 5636 1581 5635 1581 5635 1581 5634 1581 5634 1582 5635 1582 5636 1582 5637 1582 5637 1583 5637 1583 5637 1583 5637 1584 5636 1584 5636 1584 5635 1584 5635 1583 5634 1583 5633 1583 5633 1583 5634 1583 5634 1583 5635 1584 5633 1585 5631 1585 5630 1585 5629 1585 5629 1585 5628 1585 5628 1585 5628 1586 5628 1587 5629 1587 5630 1587 5629 1588 5628 1588 5628 1588 5627 1588 5626 1588 5626 1588 5624 1587 5623 1587 5623 1587 5624 1588 5625 1588 5625 1588 5625 1589 5625 1589 5625 1589 5624 1589 5623 1590 5623 1591 5622 1590 5622 1590 5622 1589 5622 1589 5621 1589 5621 1590 5621 1590 5621 1591 5620 1591 5619 1591 5619 1591 5617 1591 5616 1591 5616 1592 5616 1592 5616 1592 5616 1593 5613 1593 5612 1594 5609 1595 5606 1596 5604 1596 5603 1597 5602 1597 5601 1597 5601 1598 5601 1597 5600 1598 5601 1599 5601 1599 5600 1599 5600 1599 5599 1599 5599 1600 5598 1600 5598 1600 5598 1601 5598 1601 5598 1601 5598 1602 5597 1603 5597 1604 5597 1604 5597 1605 5596 1605 5594 1606 5594 1605 5592 1605 5592 1604 5591 1604 5591 1603 5590 1603 5589 1603 5586 1600 5586 1599 5586 1598 5585 1597 5585 1597 5584 1597 5583 1597 5581 1596 5581 1596 5580 1596 5579 1595 5580 1595 5580 1595 5580 1595 5579 1595 5579 1594 5579 1594 5578 1594 5578 1595 5577 1595 5574 1595 5570 1595 5568 1595 5567 1595 5566 1595 5566 1595 5565 1595 5563 1595 5561 1595 5560 1595 5560 1595 5554 1596 5552 1597 5550 1597 5547 1598 5546 1598 5546 1599 5545 1599 5543 1599 5539 1601 5538 1602 5537 1603 5536 1603 5535 1604 5532 1606 5531 1607 5531 1607 5530 1607 5529 1607 5529 1607 5528 1607 5528 1607 5528 1607 5528 1606 5529 1604 5529 1602 5531 1600 5530 1598 5531 1598 5532 1598 5532 1598 5532 1597 5532 1596 5531 1596 5530 1596 5528 1597 5527 1597 5526 1597 5526 1597 5526 1598 5525 1598 5523 1600 5521 1600 5519 1601 5518 1601 5517 1601 5517 1602 5514 1603 5513 1603 5513 1602 5510 1602 5511 1603 5511 1603 5511 1603 5512 1603 5512 1603 5513 1604 5513 1604 5511 1606 5510 1607 5508 1608 5507 1607 5507 1607 5507 1606 5506 1605 5506 1605 5505 1604 5503 1603 5503 1603 5502 1602 5502 1602 5502 1602 5500 1603 5500 1603 5500 1604 5498 1605 5497 1605 5497 1605 5497 1606 5497 1606 5495 1606 5495 1606 5495 1605 5496 1605 5496 1605 5495 1604 5494 1604 5491 1603 5490 1603 5489 1603 5488 1604 5489 1604 5489 1605 5490 1605 5490 1605 5490 1606 5489 1606 5489 1606 5487 1606 5487 1606 5487 1606 5484 1607 5484 1608 5484 1609 5485 1610 5485 1610 5484 1610 5484 1611 5483 1611 5483 1611 5481 1611 5481 1612 5482 1612 5482 1612 5483 1613 5484 1614 5484 1614 5483 1615 5483 1616 5483 1616 5483 1616 5482 1616 5483 1616 5483 1615 5481 1615 5480 1616 5480 1616 5479 1616 5480 1617 5480 1617 5481 1618 5481 1618 5482 1618 5482 1619 5481 1619 5481 1620 5481 1619 5481 1619 5479 1618 5478 1618 5477 1618 5477 1618 5478 1619 5478 1620 5479 1620 5479 1620 5479 1620 5479 1621 5478 1621 5477 1621 5476 1621 5476 1622 5475 1622 5474 1622 5475 1622 5475 1623 5474 1623 5473 1624 5472 1624 5471 1624 5471 1624 5469 1625 5465 1629 5463 1632 5462 1634 5462 1635 5462 1635 5463 1637 5463 1638 5464 1638 5466 1639 5466 1639 5467 1639 5468 1639 5468 1641 5468 1641 5469 1641 5470 1640 5470 1639 5470 1639 5470 1638 5470 1638 5471 1637 5471 1637 5471 1637 5472 1637 5473 1637 5474 1637 5476 1637 5476 1638 5478 1638 5478 1638 5478 1639 5479 1639 5480 1639 5481 1639 5481 1639 5482 1639 5483 1640 5481 1643 5480 1644 5479 1644 5478 1645 5478 1645 5477 1645 5476 1645 5475 1646 5474 1646 5475 1646 5475 1647 5474 1648 5474 1648 5475 1649 5475 1649 5475 1650 5475 1650 5476 1651 5476 1651 5476 1652 5476 1652 5475 1653 5475 1654 5475 1654 5475 1655 5476 1656 5476 1656 5476 1656 5477 1657 5477 1657 5477 1657 5478 1656 5480 1656 5482 1656 5482 1657 5482 1658 5482 1658 5483 1660 5484 1662 5484 1662 5484 1663 5484 1665 5483 1665 5482 1666 5480 1667 5480 1667 5479 1668 5477 1668 5476 1667 5474 1666 5473 1665 5473 1664 5474 1663 5480 1660 5480 1660 5478 1659 5478 1659 5477 1660 5477 1660 5477 1661 5477 1661 5476 1661 5475 1660 5474 1660 5474 1660 5473 1660 5473 1660 5472 1661 5470 1661 5469 1662 5469 1662 5470 1662 5470 1663 5471 1663 5472 1664 5471 1664 5470 1665 5468 1665 5467 1665 5466 1665 5466 1665 5464 1666 5463 1667 5463 1668 5463 1669 5461 1671 5460 1673 5458 1674 5458 1676 5458 1678 5459 1681 5459 1681 5460 1682 5460 1683 5461 1683 5462 1684 5465 1686 5464 1688 5462 1689 5461 1690 5459 1691 5459 1691 5459 1692 5458 1692 5458 1692 5457 1692 5456 1692 5454 1692 5453 1692 5452 1692 5451 1692 5451 1692 5450 1692 5450 1692 5450 1691 5450 1691 5449 1691 5448 1691 5447 1691 5447 1691 5446 1691 5445 1691 5443 1691 5442 1692 5440 1693 5438 1693 5437 1694 5437 1695 5436 1695 5435 1696 5434 1696 5433 1696 5432 1697 5431 1698 5430 1698 5429 1700 5428 1702 5428 1705 5428 1706 5429 1706 5429 1706 5429 1706 5429 1705 5429 1706 5430 1706 5430 1707 5430 1708 5430 1708 5429 1708 5429 1708 5428 1708 5428 1707 5427 1708 5428 1709 5430 1712 5431 1712 5431 1714 5431 1714 5429 1714 5427 1712 5425 1712 5424 1712 5422 1712 5422 1713 5421 1713 5421 1713 5420 1714 5419 1714 5416 1714 5415 1715 5413 1716 5412 1716 5410 1718 5410 1718 5410 1718 5409 1717 5409 1716 5408 1715 5408 1715 5407 1715 5406 1716 5405 1716 5405 1717 5406 1718 5407 1717 5406 1717 5407 1717 5409 1717 5409 1718 5409 1718 5408 1719 5408 1720 5408 1721 5407 1722 5407 1722 5407 1722 5406 1722 5406 1722 5405 1722 5406 1722 5406 1723 5407 1723 5407 1726 5407 1727 5407 1727 5407 1728 5406 1728 5405 1728 5404 1730 5403 1731 5403 1732 5403 1732 5403 1732 5403 1733 5397 1738 5395 1739 5394 1739 5394 1739 5393 1739 5392 1740 5391 1740 5389 1742 5387 1744 5386 1745 5385 1745 5384 1745 5380 1748 5379 1749 5378 1749 5378 1750 5377 1750 5377 1750 5377 1750 5377 1749 5378 1749 5378 1749 5378 1748 5379 1748 5379 1747 5378 1745 5377 1744 5377 1744 5377 1744 5376 1744 5376 1744 5375 1743 5375 1743 5374 1740 5374 1740 5374 1739 5374 1739 5374 1738 5375 1737 5375 1735 5375 1733 5374 1730 5374 1729 5374 1729 5373 1729 5373 1727 5372 1726 5372 1724 5371 1724 5372 1724 5373 1724 5373 1725 5373 1724 5374 1724 5374 1724 5373 1724 5372 1724 5372 1724 5371 1723 5370 1722 5370 1721 5369 1721 5369 1719 5368 1718 5368 1717 5368 1714 5367 1711 5366 1705 5366 1703 5365 1700 5364 1699 5364 1698 5364 1697 5363 1697 5362 1693 5362 1692 5362 1691 5361 1688 5360 1685 5360 1682 5359 1679 5359 1679 5359 1678 5360 1676 5360 1674 5361 1672 5361 1671 5361 1671 5361 1671 5361 1669 5362 1668 5362 1667 5362 1667 5362 1666 5363 1666 5363 1665 5363 1664 5364 1662 5364 1662 5365 1660 5366 1658 5366 1658 5366 1658 5367 1656 5367 1656 5368 1655 5368 1655 5369 1655 5369 1655 5369 1655 5368 1656 5368 1656 5368 1657 5370 1654 5372 1654 5373 1653 5373 1653 5374 1653 5374 1652 5375 1652 5375 1651 5375 1650 5377 1651 5378 1650 5379 1649 5382 1646 5382 1645 5382 1645 5382 1644 5382 1643 5382 1642 5381 1641 5381 1641 5381 1641 5380 1640 5380 1640 5379 1640 5379 1640 5382 1638 5383 1639 5384 1639 5385 1640 5386 1640 5387 1640 5388 1640 5389 1640 5390 1639 5390 1639 5391 1639 5391 1638 5392 1638 5393 1636 5395 1636 5396 1636 5397 1636 5399 1636 5400 1636 5402 1636 5403 1635 5404 1634 5406 1633 5408 1632 5409 1632 5410 1631 5411 1631 5415 1629 5417 1628 5417 1628 5418 1627 5420 1626 5422 1625 5423 1625 5426 1623 5426 1622 5427 1621 5426 1621 5426 1620 5426 1620 5427 1619 5428 1618 5429 1618 5429 1617 5433 1616 5435 1615 5436 1614 5437 1613 5438 1613 5438 1613 5438 1612 5438 1611 5439 1611 5441 1611 5444 1610 5444 1610 5448 1608 5450 1607 5451 1606 5452 1605 5454 1603 5455 1603 5457 1603 5458 1602 5459 1602 5460 1601 5461 1600 5461 1600 5461 1600 5461 1599 5461 1599 5461 1597 5462 1597 5465 1596 5468 1595 5470 1595 5472 1594 5475 1594 5475 1594 5475 1593 5476 1592 5477 1592 5478 1592 5479 1592 5480 1592 5481 1591 5482 1591 5483 1591 5484 1591 5485 1591 5486 1591 5487 1590 5488 1590 5489 1590 5490 1589 5488 1589 5487 1588 5487 1587 5488 1586 5489 1586 5490 1585 5491 1585 5492 1585 5494 1583 5495 1583 5495 1582 5494 1581 5493 1581 5492 1581 5491 1581 5491 1581 5491 1581 5490 1581 5492 1578 5492 1578 5494 1577 5494 1577 5495 1577 5495 1577 5496 1576 5496 1573 5495 1571 5496 1569 5496 1568 5496 1568 5498 1567 5499 1567 5499 1567 5500 1567 5501 1566 5501 1566 5502 1565 5503 1565 5503 1565 5504 1565 5506 1565 5507 1565 5507 1565 5509 1565 5510 1566 5510 1566 5511 1566 5511 1565 5512 1566 5514 1566 5515 1567 5515 1567 5516 1567 5515 1567 5514 1566 5513 1566 5512 1565 5512 1565 5512 1565 5513 1565 5516 1565 5517 1565 5518 1565 5519 1565 5520 1565 5519 1565 5517 1564 5516 1564 5515 1564 5514 1564 5513 1564 5512 1564 5511 1564 5507 1563 5506 1563 5505 1563 5505 1562 5504 1561 5503 1561 5500 1561 5500 1561 5498 1561 5497 1562 5496 1562 5496 1562 5494 1562 5491 1562 5488 1563 5485 1563 5484 1563 5483 1563 5483 1564 5482 1564 5481 1565 5482 1566 5483 1566 5483 1566 5483 1566 5484 1566 5484 1566 5484 1567 5482 1567 5480 1568 5480 1569 5480 1570 5481 1571 5480 1573 5479 1573 5478 1575 5478 1575 5478 1576 5479 1576 5479 1576 5480 1576 5482 1576 5483 1577 5483 1577 5483 1578 5482 1578 5480 1578 5480 1578 5480 1579 5480 1579 5480 1579 5479 1580 5478 1579 5477 1577 5477 1577 5477 1577 5476 1577 5475 1577 5474 1577 5473 1577 5473 1578 5473 1578 5474 1578 5474 1578 5475 1578 5475 1578 5474 1579 5473 1578 5472 1578 5472 1578 5472 1578 5471 1578 5471 1578 5470 1578 5469 1577 5468 1578 5466 1580 5463 1581 5462 1582 5460 1583 5460 1583 5459 1583 5456 1584 5456 1585 5455 1585 5454 1585 5454 1585 5453 1585 5453 1586 5452 1586 5452 1587 5449 1588 5449 1588 5448 1589 5448 1589 5447 1589 5446 1590 5445 1590 5444 1591 5443 1592 5443 1592 5443 1592 5442 1592 5442 1592 5441 1592 5437 1592 5436 1593 5435 1594 5434 1595 5433 1595 5433 1594 5433 1593 5434 1592 5434 1592 5434 1591 5433 1591 5434 1590 5435 1590 5436 1589 5437 1588 5436 1587 5433 1587 5432 1588 5430 1589 5429 1589 5428 1589 5428 1589 5427 1589 5427 1589 5428 1588 5429 1588 5429 1588 5429 1587 5430 1587 5430 1586 5430 1586 5429 1584 5429 1584 5428 1584 5428 1583 5430 1583 5431 1582 5433 1580 5436 1576 5437 1576 5436 1573 5436 1573 5434 1574 5432 1574 5430 1575 5429 1575 5429 1576 5428 1577 5428 1577 5427 1577 5424 1577 5424 1577 5423 1577 5423 1578 5422 1577 5421 1574 5420 1574 5419 1573 5418 1573 5416 1573 5414 1574 5413 1574 5413 1574 5412 1574 5410 1575 5408 1575 5405 1575 5405 1575 5403 1575 5403 1575 5402 1576 5402 1576 5400 1576 5399 1577 5398 1576 5397 1576 5397 1576 5395 1576 5393 1576 5392 1575 5392 1575 5391 1575 5390 1575 5390 1576 5389 1576 5387 1577 5386 1577 5385 1577 5383 1578 5383 1578 5382 1579 5381 1579 5380 1580 5380 1580 5379 1580 5379 1580 5378 1580 5378 1580 5377 1581 5377 1581 5377 1582 5377 1583 5377 1585 5377 1585 5377 1585 5376 1585 5375 1585 5374 1585 5373 1585 5372 1586 5368 1588 5366 1589 5366 1590 5366 1590 5365 1590 5365 1591 5365 1592 5365 1592 5363 1593 5362 1594 5361 1594 5360 1594 5357 1596 5354 1597 5350 1598 5350 1598 5349 1599 5349 1599 5349 1599 5348 1599 5348 1600 5348 1600 5345 1602 5343 1603 5343 1604 5343 1604 5342 1605 5342 1605 5341 1606 5339 1606 5339 1606 5338 1606 5338 1608 5338 1608 5338 1609 5339 1609 5339 1610 5338 1611 5336 1612 5336 1612 5336 1612 5336 1613 5337 1613 5339 1613 5339 1613 5339 1613 5340 1612 5341 1613 5341 1613 5343 1613 5342 1613 5342 1613 5342 1612 5341 1611 5342 1611 5346 1612 5347 1612 5348 1613 5349 1613 5350 1612 5350 1612 5350 1612 5351 1613 5351 1613 5352 1614 5353 1614 5353 1614 5354 1614 5353 1617 5352 1617 5351 1617 5349 1617 5348 1617 5347 1618 5347 1618 5345 1618 5345 1618 5344 1617 5343 1617 5343 1617 5342 1617 5340 1617 5340 1617 5340 1618 5339 1619 5339 1619 5338 1619 5338 1619 5337 1619 5335 1619 5335 1619 5333 1619 5333 1619 5332 1618 5332 1618 5332 1618 5331 1617 5331 1617 5329 1617 5327 1617 5326 1616 5325 1616 5325 1616 5324 1617 5323 1618 5323 1619 5322 1619 5322 1619 5321 1619 5321 1619 5320 1619 5320 1619 5319 1619 5318 1619 5317 1621 5317 1621 5315 1621 5312 1621 5310 1620 5308 1620 5306 1620 5306 1620 5305 1620 5305 1621 5305 1621 5304 1622 5304 1622 5303 1622 5298 1622 5297 1623 5296 1623 5296 1623 5295 1622 5295 1622 5295 1622 5294 1622 5293 1622 5292 1623 5292 1623 5292 1622 5292 1622 5291 1621 5291 1621 5290 1621 5289 1620 5288 1618 5289 1618 5289 1619 5289 1619 5291 1618 5292 1618 5294 1618 5297 1617 5300 1618 5304 1618 5304 1618 5304 1617 5305 1617 5305 1617 5306 1617 5307 1617 5307 1617 5307 1617 5305 1615 5304 1615 5304 1616 5303 1616 5302 1616 5299 1615 5298 1614 5297 1613 5296 1613 5293 1611 5291 1611 5290 1611 5289 1611 5288 1611 5288 1611 5285 1611 5285 1611 5285 1612 5286 1612 5286 1613 5285 1613 5285 1613 5282 1613 5282 1613 5282 1613 5282 1612 5282 1612 5281 1612 5280 1612 5280 1612 5278 1612 5278 1612 5278 1612 5278 1612 5279 1612 5279 1612 5280 1612 5281 1612 5282 1611 5282 1611 5282 1611 5282 1611 5281 1611 5280 1611 5280 1611 5279 1611 5279 1611 5278 1611 5277 1610 5276 1610 5275 1610 5272 1609 5270 1609 5268 1608 5268 1608 5265 1608 5264 1608 5263 1608 5261 1608 5260 1608 5257 1609 5255 1610 5256 1611 5257 1612 5258 1612 5258 1612 5258 1613 5257 1613 5257 1612 5256 1612 5255 1613 5255 1613 5253 1613 5253 1612 5252 1612 5252 1612 5253 1612 5253 1611 5252 1611 5251 1612 5251 1612 5250 1613 5250 1613 5250 1613 5250 1614 5250 1614 5251 1614 5252 1614 5252 1614 5253 1614 5254 1614 5254 1616 5253 1616 5253 1616 5253 1616 5252 1616 5252 1616 5250 1616 5249 1616 5248 1616 5246 1616 5245 1616 5245 1614 5245 1614 5243 1614 5243 1613 5242 1613 5242 1613 5237 1614 5237 1614 5236 1614 5236 1614 5235 1615 5236 1615 5236 1616 5235 1616 5235 1616 5234 1616 5234 1616 5233 1615 5233 1615 5232 1616 5232 1616 5232 1616 5231 1616 5230 1616 5229 1616 5229 1615 5228 1615 5227 1615 5227 1615 5226 1615 5225 1615 5224 1614 5223 1614 5222 1614 5221 1614 5221 1614 5221 1614 5220 1614 5219 1614 5218 1614 5218 1613 5216 1613 5215 1613 5215 1613 5214 1613 5213 1613 5212 1614 5212 1614 5212 1615 5212 1616 5212 1617 5212 1617 5209 1617 5207 1618 5207 1618 5206 1618 5204 1616 5204 1616 5204 1615 5205 1615 5205 1615 5206 1615 5206 1614 5205 1614 5205 1614 5204 1614 5202 1613 5199 1614 5198 1614 5197 1614 5197 1614 5196 1614 5196 1614 5195 1613 5194 1613 5194 1614 5193 1614 5192 1614 5192 1614 5190 1614 5189 1614 5189 1614 5188 1614 5188 1614 5187 1614 5185 1614 5185 1614 5186 1614 5184 1614 5184 1614 5182 1614 5182 1614 5181 1614 5180 1614 5177 1614 5175 1614 5174 1614 5174 1614 5173 1614 5173 1614 5172 1614 5172 1614 5171 1614 5170 1614 5170 1614 5169 1614 5168 1615 5168 1615 5167 1615 5166 1615 5165 1614 5164 1614 5164 1614 5162 1614 5161 1614 5160 1615 5159 1615 5155 1616 5152 1616 5152 1617 5148 1618 5147 1618 5147 1619 5146 1619 5144 1620 5143 1621 5142 1621 5142 1622 5141 1623 5140 1623 5139 1625 5138 1625 5137 1626 5136 1626 5136 1626 5135 1627 5132 1628 5131 1628 5131 1628 5130 1629 5129 1629 5129 1629 5129 1629 5127 1629 5126 1630 5124 1631 5122 1632 5121 1634 5119 1637 5119 1638 5119 1639 5119 1639 5117 1640 5116 1640 5116 1640 5115 1640 5112 1641 5111 1641 5111 1641 5110 1642 5109 1643 5109 1643 5109 1644 5109 1644 5108 1644 5108 1644 5107 1644 5107 1644 5106 1644 5105 1645 5105 1645 5104 1645 5104 1646 5103 1647 5103 1647 5102 1647 5102 1647 5099 1648 5098 1648 5097 1649 5096 1649 5095 1651 5094 1652 5092 1652 5090 1652 5090 1652 5089 1653 5089 1653 5089 1654 5088 1654 5088 1654 5087 1655 5086 1656 5085 1656 5085 1656 5084 1657 5084 1657 5083 1658 5083 1658 5082 1658 5082 1658 5081 1659 5081 1659 5081 1660 5082 1660 5081 1661 5080 1662 5079 1662 5078 1663 5078 1663 5077 1663 5077 1664 5075 1665 5073 1666 5072 1666 5072 1667 5071 1667 5068 1669 5067 1670 5066 1670 5063 1671 5061 1672 5060 1673 5059 1673 5058 1673 5058 1674 5057 1674 5056 1674 5055 1675 5054 1675 5054 1675 5053 1675 5052 1676 5052 1677 5052 1677 5050 1679 5049 1679 5049 1679 5048 1679 5047 1680 5046 1680 5043 1682 5043 1682 5042 1682 5042 1682 5041 1682 5040 1682 5038 1683 5036 1684 5035 1685 5034 1686 5034 1686 5034 1687 5034 1687 5035 1688 5036 1689 5038 1689 5039 1689 5042 1690 5042 1690 5043 1691 5043 1691 5044 1691 5045 1691 5047 1691 5048 1691 5049 1690 5051 1690 5051 1690 5053 1690 5056 1691 5059 1690 5059 1690 5060 1690 5061 1691 5060 1692 5059 1693 5059 1697 5060 1697 5060 1698 5060 1698 5059 1699 5059 1700 5058 1700 5058 1701 5058 1701 5058 1703 5059 1704 5060 1704 5061 1703 5061 1703 5062 1702 5063 1702 5064 1702 5064 1703 5064 1703 5065 1703 5065 1703 5066 1703 5066 1702 5067 1700 5068 1699 5067 1699 5067 1699 5066 1699 5066 1699 5064 1698 5066 1697 5068 1696 5069 1695 5070 1695 5071 1695 5071 1695 5071 1695 5072 1695 5074 1695 5074 1695 5075 1695 5073 1696 5071 1698 5070 1698 5070 1698 5069 1698 5068 1698 5068 1699 5068 1699 5069 1699 5069 1699 5069 1699 5070 1699 5071 1700 5071 1700 5071 1700 5072 1701 5073 1701 5074 1701 5077 1701 5076 1701 5076 1702 5075 1702 5075 1702 5075 1702 5074 1702 5074 1702 5073 1703 5072 1704 5072 1704 5071 1705 5070 1705 5070 1705 5069 1705 5069 1705 5068 1706 5067 1706 5067 1706 5067 1707 5067 1707 5068 1707 5069 1708 5069 1708 5069 1708 5074 1707 5074 1707 5078 1707 5078 1706 5081 1705 5082 1705 5084 1704 5084 1703 5085 1702 5085 1701 5088 1700 5088 1701 5089 1702 5088 1703 5087 1704 5087 1704 5086 1704 5085 1705 5085 1705 5083 1707 5083 1708 5086 1708 5086 1708 5087 1708 5087 1707 5088 1707 5088 1706 5089 1705 5090 1704 5090 1704 5090 1703 5091 1701 5091 1700 5092 1700 5092 1699 5091 1696 5091 1696 5090 1696 5090 1695 5090 1695 5091 1695 5092 1695 5093 1696 5094 1696 5095 1696 5095 1696 5096 1697 5098 1697 5099 1697 5101 1697 5104 1696 5105 1696 5106 1696 5106 1695 5106 1695 5107 1695 5107 1695 5108 1695 5108 1696 5108 1696 5108 1697 5111 1698 5112 1698 5112 1698 5113 1699 5113 1699 5114 1699 5115 1699 5115 1700 5115 1702 5115 1702 5116 1703 5117 1704 5117 1704 5118 1704 5118 1704 5119 1704 5120 1705 5120 1705 5120 1706 5120 1706 5124 1707 5126 1708 5127 1708 5126 1708 5126 1709 5128 1710 5129 1710 5131 1711 5131 1711 5131 1711 5132 1711 5133 1711 5134 1711 5134 1714 5133 1714 5131 1715 5131 1715 5130 1715 5131 1715 5131 1716 5130 1716 5130 1716 5130 1716 5129 1716 5126 1715 5125 1714 5125 1714 5124 1714 5123 1714 5123 1714 5124 1715 5126 1716 5126 1717 5128 1718 5130 1718 5132 1721 5132 1721 5132 1723 5131 1723 5131 1723 5131 1724 5130 1724 5130 1724 5129 1724 5129 1725 5129 1725 5129 1725 5130 1726 5132 1727 5133 1728 5134 1729 5135 1729 5135 1729 5135 1729 5133 1730 5133 1730 5132 1731 5132 1732 5132 1732 5133 1732 5134 1733 5134 1733 5133 1733 5133 1733 5131 1734 5131 1735 5130 1735 5130 1735 5128 1737 5127 1737 5127 1737 5126 1738 5126 1739 5126 1740 5125 1740 5124 1740 5124 1741 5124 1741 5125 1741 5125 1742 5124 1743 5124 1743 5123 1742 5123 1743 5122 1743 5122 1743 5122 1745 5122 1745 5122 1746 5122 1747 5122 1747 5122 1749 5121 1749 5121 1749 5120 1749 5120 1750 5118 1753 5119 1754 5118 1755 5118 1756 5119 1756 5119 1757 5120 1758 5120 1760 5119 1761 5119 1761 5120 1762 5121 1763 5121 1762 5122 1762 5122 1763 5120 1764 5119 1764 5118 1766 5118 1767 5119 1767 5120 1768 5120 1771 5118 1774 5117 1776 5117 1780 5117 1780 5117 1780 5117 1781 5116 1782 5115 1782 5115 1782 5115 1784 5114 1785 5114 1787 5114 1788 5114 1789 5111 1791 5109 1792 5106 1794 5106 1794 5106 1795 5103 1796 5103 1797 5102 1797 5102 1797 5101 1798 5100 1799 5099 1799 5097 1803 5096 1804 5096 1805 5096 1805 5096 1806 5095 1806 5093 1807 5093 1808 5091 1809 5091 1809 5090 1810 5089 1810 5089 1811 5088 1811 5088 1812 5085 1816 5085 1816 5085 1817 5085 1817 5085 1818 5085 1818 5085 1818 5085 1819 5084 1819 5084 1820 5084 1820 5083 1820 5083 1820 5082 1821 5082 1822 5081 1823 5081 1824 5081 1824 5080 1825 5078 1827 5077 1828 5076 1829 5076 1829 5074 1830 5074 1831 5074 1831 5072 1833 5070 1833 5069 1834 5069 1835 5068 1835 5067 1836 5066 1837 5065 1838 5064 1838 5063 1839 5061 1840 5060 1842 5058 1843 5058 1843 5057 1844 5056 1845 5056 1845 5055 1846 5054 1847 5053 1847 5051 1849 5051 1849 5051 1850 5051 1850 5050 1852 5049 1852 5048 1853 5047 1853 5045 1853 5045 1854 5045 1855 5044 1855 5044 1856 5043 1856 5042 1857 5041 1858 5041 1859 5041 1859 5041 1860 5040 1860 5039 1861 5039 1862 5039 1862 5039 1862 5039 1863 5038 1864 5037 1864 5036 1865 5035 1865 5033 1868 5033 1868 5032 1868 5031 1868 5029 1869 5028 1870 5026 1872 5025 1872 5022 1873 5021 1874 5020 1874 5020 1874 5018 1874 5017 1875 5014 1877 5014 1878 5008 1879 5006 1879 5005 1880 5003 1880 5002 1880 5002 1881 5001 1881 5000 1881 4999 1880 5000 1880 5000 1879 4999 1879 4998 1879 4998 1879 4998 1879 4997 1880 4997 1880 4997 1880 4996 1880 4996 1879 4996 1879 4996 1878 4994 1878 4993 1878 4991 1877 4991 1877 4990 1877 4989 1877 4989 1878 4988 1878 4988 1878 4988 1876 4988 1875 4989 1874 4989 1873 4989 1872 4989 1871 4988 1871 4988 1871 4987 1872 4986 1872 4986 1872 4985 1873 4985 1873 4984 1873 4984 1874 4983 1875 4981 1874 4982 1873 4982 1872 4983 1872 4983 1872 4984 1871 4984 1871 4980 1870 4980 1871 4980 1871 4979 1872 4978 1874 4977 1875 4976 1876 4975 1877 4975 1878 4973 1879 4972 1879 4972 1879 4971 1881 4971 1882 4971 1882 4971 1882 4971 1883 4971 1883 4970 1882 4970 1882 4969 1881 4967 1882 4967 1882 4966 1881 4964 1881 4963 1881 4962 1881 4963 1882 4964 1883 4965 1883 4965 1883 4963 1886 4963 1887 4963 1887 4962 1887 4962 1886 4962 1886 4961 1885 4961 1885 4961 1884 4961 1883 4961 1882 4961 1882 4961 1881 4960 1881 4959 1881 4959 1881 4958 1880 4958 1880 4959 1879 4960 1879 4962 1878 4964 1878 4964 1878 4965 1878 4965 1878 4966 1878 4968 1878 4969 1877 4969 1877 4969 1876 4969 1876 4969 1875 4969 1875 4970 1873 4972 1871 4972 1869 4972 1868 4972 1868 4972 1868 4971 1868 4971 1868 4970 1867 4971 1863 4971 1860 4971 1859 4972 1859 4972 1859 4972 1858 4971 1857 4969 1850 4969 1849 4968 1848 4968 1847 4967 1847 4967 1846 4968 1845 4969 1845 4969 1845 4970 1845 4970 1845 4971 1845 4972 1845 4972 1844 4973 1844 4975 1844 4977 1842 4978 1842 4978 1842 4979 1840 4981 1838 4981 1838 4982 1838 4982 1839 4982 1839 4983 1840 4983 1840 4985 1840 4986 1841 4988 1841 4989 1841 4992 1842 4996 1843 4997 1843 4998 1843 4999 1843 5000 1843 5000 1842 5001 1842 5001 1841 5001 1841 5001 1840 5001 1839 5001 1837 5002 1837 5002 1836 5003 1836 5003 1836 5004 1835 5005 1835 5006 1834 5007 1834 5007 1833 5007 1831 5007 1831 5008 1830 5008 1830 5009 1830 5010 1829 5011 1827 5011 1825 5013 1825 5014 1824 5014 1822 5014 1821 5013 1821 5013 1820 5014 1819 5015 1818 5015 1818 5015 1818 5015 1817 5016 1817 5016 1816 5016 1814 5016 1813 5017 1811 5017 1811 5018 1810 5019 1810 5019 1810 5018 1809 5018 1808 5018 1807 5020 1805 5020 1805 5021 1805 5021 1805 5022 1805 5023 1805 5023 1805 5024 1804 5027 1801 5028 1800 5027 1799 5026 1799 5025 1797 5024 1796 5024 1795 5025 1795 5025 1795 5025 1794 5026 1794 5026 1793 5026 1793 5026 1792 5027 1792 5027 1792 5027 1792 5026 1791 5023 1790 5023 1790 5022 1790 5022 1790 5019 1790 5016 1791 5016 1791 5015 1791 5013 1792 5011 1792 5009 1793 5008 1793 5008 1794 5008 1794 5008 1795 5007 1795 5006 1795 5006 1794 5004 1794 5002 1794 5001 1794 4997 1796 4994 1798 4993 1800 4992 1800 4992 1800 4991 1800 4990 1800 4990 1800 4989 1800 4989 1800 4988 1800 4987 1800 4987 1800 4985 1801 4982 1801 4980 1801 4977 1801 4976 1801 4976 1800 4975 1800 4974 1800 4974 1800 4972 1800 4971 1800 4971 1801 4970 1801 4969 1801 4968 1801 4967 1801 4967 1801 4966 1800 4966 1800 4966 1799 4966 1799 4966 1798 4966 1798 4966 1797 4965 1797 4964 1796 4963 1796 4962 1795 4962 1794 4962 1794 4963 1793 4965 1791 4965 1791 4963 1789 4961 1788 4960 1786 4960 1786 4961 1784 4962 1783 4962 1782 4962 1782 4962 1782 4961 1782 4960 1782 4960 1782 4960 1782 4959 1782 4959 1782 4959 1782 4958 1782 4957 1782 4957 1782 4956 1782 4955 1782 4955 1782 4953 1781 4950 1779 4950 1779 4948 1777 4947 1777 4947 1777 4947 1776 4947 1776 4946 1775 4946 1775 4945 1776 4945 1775 4944 1775 4944 1775 4944 1774 4944 1773 4943 1773 4942 1773 4942 1773 4938 1774 4938 1774 4938 1774 4937 1774 4937 1774 4936 1774 4936 1774 4936 1773 4935 1773 4933 1772 4932 1771 4932 1771 4931 1771 4930 1770 4928 1770 4926 1771 4923 1771 4923 1771 4922 1771 4921 1771 4917 1770 4917 1770 4915 1769 4914 1769 4914 1769 4914 1768 4914 1768 4913 1768 4912 1767 4912 1767 4912 1767 4912 1767 4911 1764 4911 1763 4912 1763 4912 1762 4913 1762 4913 1761 4913 1761 4913 1761 4913 1760 4912 1760 4911 1760 4910 1760 4910 1759 4909 1759 4909 1759 4909 1759 4908 1757 4909 1756 4909 1755 4909 1755 4909 1754 4908 1754 4908 1753 4908 1752 4907 1751 4906 1750 4906 1749 4905 1749 4904 1749 4902 1747 4902 1746 4902 1745 4902 1745 4902 1744 4903 1743 4903 1743 4902 1743 4902 1743 4902 1744 4902 1744 4901 1744 4901 1744 4900 1743 4901 1743 4901 1742 4902 1742 4902 1742 4902 1742 4901 1741 4900 1741 4899 1738 4899 1737 4897 1735 4895 1733 4895 1732 4895 1732 4895 1731 4896 1731 4896 1731 4896 1730 4895 1729 4895 1729 4894 1729 4893 1729 4893 1729 4892 1729 4893 1728 4893 1727 4893 1726 4893 1726 4892 1725 4891 1725 4891 1725 4891 1724 4891 1724 4891 1724 4891 1724 4890 1723 4889 1723 4888 1723 4888 1723 4887 1723 4887 1722 4887 1722 4888 1721 4889 1720 4889 1719 4888 1720 4887 1720 4886 1719 4885 1718 4883 1718 4883 1718 4882 1718 4882 1718 4882 1717 4883 1717 4883 1717 4883 1716 4881 1715 4881 1715 4879 1715 4878 1714 4877 1714 4876 1714 4874 1713 4874 1713 4873 1713 4871 1713 4871 1713 4870 1713 4870 1714 4869 1714 4867 1713 4866 1713 4865 1713 4864 1713 4864 1713 4863 1713 4862 1713 4861 1712 4861 1711 4860 1711 4860 1710 4859 1710 4859 1710 4858 1710 4858 1711 4857 1711 4856 1710 4856 1709 4855 1709 4854 1709 4854 1708 4853 1708 4849 1707 4848 1707 4847 1707 4847 1708 4846 1708 4845 1707 4845 1707 4844 1707 4844 1707 4843 1707 4843 1708 4842 1708 4842 1708 4841 1708 4838 1708 4838 1709 4837 1709 4837 1709 4836 1709 4835 1709 4833 1709 4831 1709 4828 1709 4825 1709 4824 1709 4823 1709 4823 1709 4821 1709 4821 1709 4820 1710 4818 1710 4817 1710 4816 1711 4816 1711 4815 1711 4814 1711 4814 1711 4813 1711 4813 1711 4812 1711 4811 1712 4811 1712 4810 1712 4809 1712 4809 1711 4806 1712 4805 1712 4803 1713 4801 1715 4799 1716 4797 1717 4797 1718 4796 1718 4794 1719 4794 1719 4794 1719 4792 1720 4792 1722 4792 1722 4793 1723 4794 1723 4795 1723 4795 1723 4796 1722 4796 1722 4799 1722 4799 1722 4803 1723 4803 1725 4802 1725 4802 1726 4802 1727 4803 1728 4804 1729 4804 1729 4804 1730 4803 1732 4802 1733 4802 1733 4801 1734 4800 1734 4797 1736 4795 1737 4795 1737 4794 1737 4793 1737 4793 1738 4791 1740 4791 1740 4791 1741 4791 1742 4789 1743 4789 1744 4788 1745 4788 1745 4788 1745 4788 1747 4787 1747 4787 1748 4786 1748 4786 1748 4785 1748 4784 1749 4784 1750 4784 1751 4784 1752 4783 1753 4781 1754 4780 1754 4780 1756 4780 1756 4779 1757 4779 1757 4778 1757 4778 1758 4779 1758 4779 1758 4780 1758 4780 1758 4781 1758 4781 1759 4781 1759 4781 1761 4781 1761 4781 1761 4781 1762 4779 1764 4778 1764 4778 1764 4777 1764 4777 1764 4776 1764 4775 1764 4774 1764 4774 1764 4771 1765 4770 1765 4770 1765 4769 1765 4768 1766 4768 1766 4767 1766 4766 1767 4763 1769 4762 1769 4761 1770 4758 1772 4756 1772 4756 1771 4753 1770 4752 1770 4752 1770 4751 1770 4749 1770 4749 1770 4748 1770 4748 1770 4747 1770 4747 1770 4746 1769 4743 1769 4743 1768 4743 1768 4740 1767 4739 1767 4739 1767 4739 1766 4738 1765 4736 1765 4735 1765 4735 1764 4733 1764 4732 1764 4732 1763 4731 1763 4730 1764 4729 1764 4729 1764 4729 1764 4726 1765 4725 1765 4724 1766 4724 1766 4723 1766 4723 1766 4722 1765 4722 1765 4721 1765 4721 1765 4720 1766 4718 1766 4718 1765 4716 1764 4715 1764 4713 1763 4713 1762 4712 1762 4712 1761 4710 1760 4709 1760 4708 1760 4706 1760 4706 1760 4705 1760 4705 1760 4704 1760 4703 1760 4703 1760 4702 1760 4702 1760 4701 1759 4701 1759 4700 1760 4699 1760 4699 1760 4696 1761 4696 1761 4695 1762 4695 1762 4694 1762 4694 1762 4693 1763 4692 1763 4691 1763 4689 1764 4689 1764 4688 1764 4687 1765 4686 1766 4684 1767 4683 1767 4683 1767 4681 1769 4681 1770 4677 1772 4677 1772 4676 1772 4676 1772 4675 1772 4675 1772 4674 1772 4673 1771 4672 1771 4672 1771 4671 1772 4667 1773 4666 1773 4663 1773 4663 1773 4662 1773 4661 1774 4661 1773 4660 1773 4659 1773 4658 1773 4657 1774 4657 1774 4657 1774 4656 1774 4656 1774 4655 1774 4653 1774 4651 1775 4650 1775 4649 1776 4648 1776 4648 1776 4648 1777 4647 1777 4647 1777 4645 1777 4644 1778 4643 1778 4643 1778 4642 1777 4640 1777 4638 1776 4637 1777 4637 1777 4636 1777 4636 1777 4635 1777 4635 1777 4633 1777 4629 1776 4626 1776 4625 1776 4625 1776 4624 1776 4624 1776 4621 1774 4621 1774 4619 1774 4618 1774 4617 1775 4616 1774 4616 1774 4615 1774 4611 1774 4610 1775 4610 1775 4610 1775 4609 1775 4608 1774 4606 1773 4605 1772 4603 1771 4602 1771 4602 1771 4601 1770 4601 1770 4599 1769 4600 1767 4600 1765 4598 1765 4597 1765 4596 1764 4596 1764 4593 1764 4591 1764 4588 1764 4587 1763 4585 1763 4585 1762 4585 1762 4584 1761 4581 1759 4581 1759 4580 1759 4580 1759 4579 1758 4578 1758 4578 1758 4577 1758 4576 1758 4575 1759 4573 1759 4573 1759 4572 1759 4572 1759 4569 1758 4569 1758 4569 1758 4568 1757 4568 1757 4565 1757 4564 1757 4560 1757 4558 1756 4557 1756 4557 1756 4557 1756 4556 1757 4555 1757 4555 1757 4555 1757 4554 1758 4554 1758 4553 1758 4552 1758 4552 1757 4552 1757 4547 1758 4547 1758 4547 1759 4546 1759 4545 1759 4544 1759 4543 1759 4543 1759 4542 1759 4541 1760 4540 1761 4540 1761 4538 1761 4538 1762 4537 1762 4537 1762 4535 1761 4535 1761 4534 1761 4533 1761 4533 1761 4532 1761 4532 1761 4532 1762 4531 1762 4531 1762 4530 1762 4529 1761 4526 1761 4525 1761 4525 1760 4524 1760 4524 1759 4524 1759 4523 1759 4523 1759 4522 1759 4521 1759 4520 1759 4520 1759 4519 1759 4519 1759 4518 1759 4518 1758 4517 1758 4517 1758 4516 1758 4515 1757 4514 1757 4514 1757 4514 1757 4513 1756 4512 1755 4511 1755 4510 1755 4510 1755 4510 1755 4509 1755 4509 1754 4509 1754 4509 1754 4509 1753 4510 1753 4510 1752 4510 1752 4509 1751 4508 1751 4508 1750 4508 1750 4508 1748 4508 1748 4508 1747 4507 1747 4507 1746 4507 1744 4507 1743 4508 1743 4508 1743 4505 1742 4505 1742 4505 1742 4504 1742 4502 1741 4501 1741 4500 1741 4498 1740 4497 1740 4497 1740 4496 1740 4495 1740 4495 1741 4494 1741 4494 1741 4493 1740 4493 1740 4492 1739 4492 1739 4490 1739 4489 1739 4487 1738 4486 1738 4485 1737 4483 1737 4481 1736 4481 1736 4480 1736 4479 1736 4478 1736 4476 1736 4473 1736 4472 1736 4471 1736 4471 1736 4470 1736 4470 1735 4469 1735 4468 1734 4468 1734 4467 1734 4466 1734 4465 1734 4462 1733 4461 1733 4461 1732 4458 1732 4457 1731 4455 1730 4455 1730 4455 1730 4454 1730 4454 1731 4454 1731 4454 1731 4453 1733 4453 1734 4452 1734 4452 1735 4451 1735 4451 1735 4450 1735 4450 1736 4448 1736 4447 1736 4446 1736 4446 1736 4445 1737 4444 1739 4444 1739 4444 1739 4444 1740 4444 1740 4444 1741 4443 1740 4442 1740 4442 1740 4442 1740 4441 1741 4440 1742 4440 1744 4440 1744 4439 1746 4438 1747 4438 1747 4438 1748 4438 1749 4439 1749 4439 1749 4440 1750 4440 1751 4440 1752 4441 1754 4441 1754 4443 1755 4443 1755 4444 1755 4444 1755 4445 1755 4445 1755 4445 1755 4445 1756 4446 1756 4445 1759 4443 1761 4442 1763 4442 1763 4442 1763 4441 1763 4439 1765 4437 1765 4437 1764 4437 1764 4436 1765 4436 1765 4434 1766 4434 1766 4433 1767 4432 1767 4430 1768 4429 1768 4429 1768 4428 1768 4427 1768 4427 1768 4427 1767 4424 1766 4421 1765 4420 1765 4420 1765 4419 1765 4419 1766 4418 1766 4418 1766 4418 1766 4417 1765 4417 1765 4417 1765 4416 1765 4415 1765 4415 1766 4414 1766 4414 1765 4414 1765 4413 1765 4413 1765 4413 1765 4412 1764 4410 1764 4409 1764 4409 1764 4409 1764 4408 1765 4408 1765 4407 1764 4407 1764 4407 1764 4407 1764 4406 1763 4406 1764 4405 1764 4405 1764 4405 1764 4404 1765 4401 1766 4400 1765 4399 1765 4399 1765 4398 1765 4397 1765 4396 1765 4396 1765 4395 1765 4394 1765 4393 1764 4393 1764 4392 1763 4392 1763 4389 1763 4389 1763 4388 1763 4387 1763 4386 1763 4386 1762 4385 1762 4384 1761 4383 1761 4383 1761 4383 1760 4382 1760 4382 1759 4382 1758 4382 1758 4382 1757 4381 1755 4381 1755 4380 1755 4380 1755 4376 1755 4375 1755 4372 1755 4370 1754 4368 1754 4368 1754 4367 1754 4367 1754 4366 1754 4363 1754 4362 1754 4362 1754 4361 1754 4360 1753 4360 1753 4360 1752 4360 1752 4360 1751 4359 1751 4357 1751 4357 1751 4357 1752 4357 1752 4356 1753 4356 1753 4355 1753 4355 1753 4352 1751 4352 1751 4350 1751 4350 1751 4349 1752 4349 1752 4348 1753 4347 1753 4347 1753 4346 1753 4346 1753 4345 1753 4345 1753 4344 1752 4343 1752 4343 1752 4342 1753 4341 1753 4340 1753 4340 1753 4339 1754 4339 1754 4339 1754 4338 1755 4336 1756 4334 1756 4331 1757 4331 1757 4330 1757 4329 1757 4329 1757 4328 1757 4328 1758 4327 1758 4327 1758 4324 1760 4324 1760 4323 1760 4323 1761 4322 1760 4321 1760 4321 1760 4321 1760 4319 1761 4318 1761 4317 1761 4317 1762 4316 1762 4316 1762 4315 1762 4314 1762 4314 1762 4313 1763 4313 1763 4313 1763 4313 1764 4313 1764 4312 1764 4311 1765 4310 1765 4310 1765 4309 1765 4309 1765 4308 1765 4308 1765 4307 1765 4307 1765 4307 1765 4307 1766 4307 1767 4308 1767 4308 1768 4308 1768 4308 1768 4307 1769 4306 1769 4306 1769 4304 1770 4304 1770 4303 1770 4302 1771 4302 1770 4301 1770 4301 1770 4300 1770 4300 1770 4300 1770 4300 1771 4300 1771 4300 1772 4300 1772 4299 1772 4297 1772 4296 1772 4296 1772 4295 1771 4295 1771 4295 1772 4295 1773 4294 1773 4292 1773 4290 1772 4287 1772 4286 1772 4284 1772 4284 1773 4283 1773 4283 1774 4283 1775 4283 1775 4283 1776 4280 1777 4279 1777 4278 1777 4278 1777 4278 1777 4277 1777 4276 1777 4273 1778 4273 1778 4272 1779 4272 1779 4271 1779 4271 1779 4270 1778 4270 1778 4270 1778 4270 1777 4269 1777 4269 1776 4268 1776 4268 1776 4267 1776 4266 1776 4265 1776 4263 1774 4262 1773 4262 1772 4262 1772 4260 1771 4260 1771 4260 1771 4259 1771 4259 1771 4258 1770 4259 1770 4260 1769 4261 1769 4261 1769 4261 1767 4259 1767 4259 1767 4257 1768 4257 1769 4256 1770 4255 1770 4255 1770 4254 1770 4253 1771 4253 1771 4253 1772 4252 1772 4252 1772 4248 1771 4246 1771 4245 1771 4243 1770 4241 1770 4241 1770 4241 1770 4240 1770 4239 1770 4238 1770 4238 1770 4237 1771 4237 1770 4236 1769 4236 1769 4236 1768 4234 1766 4233 1766 4232 1765 4232 1765 4232 1764 4233 1764 4234 1764 4233 1763 4232 1762 4230 1762 4228 1761 4225 1760 4223 1760 4221 1760 4220 1757 4220 1756 4220 1756 4219 1754 4219 1754 4219 1754 4218 1754 4217 1753 4217 1753 4216 1753 4216 1752 4216 1752 4216 1751 4214 1750 4214 1750 4208 1748 4205 1748 4203 1748 4202 1749 4202 1749 4202 1749 4201 1750 4199 1750 4199 1750 4198 1749 4197 1749 4197 1749 4196 1750 4196 1750 4196 1751 4196 1751 4195 1751 4193 1752 4193 1752 4193 1752 4192 1752 4192 1752 4190 1752 4189 1752 4189 1752 4188 1752 4188 1753 4187 1753 4187 1752 4186 1752 4186 1752 4185 1752 4183 1751 4182 1752 4180 1752 4180 1752 4179 1752 4178 1752 4178 1752 4177 1752 4176 1752 4176 1752 4176 1751 4176 1750 4175 1748 4174 1748 4173 1748 4173 1748 4173 1749 4172 1749 4172 1749 4170 1749 4170 1748 4170 1748 4170 1747 4171 1746 4171 1746 4171 1746 4172 1745 4172 1745 4171 1745 4170 1745 4169 1745 4168 1744 4167 1744 4166 1744 4165 1743 4164 1743 4164 1743 4163 1743 4163 1744 4163 1744 4163 1745 4162 1745 4161 1744 4160 1745 4160 1746 4160 1747 4161 1747 4161 1748 4160 1748 4160 1748 4160 1749 4159 1749 4159 1749 4158 1749 4157 1749 4154 1750 4154 1751 4154 1751 4154 1752 4154 1752 4154 1752 4153 1751 4153 1751 4153 1751 4152 1750 4152 1750 4149 1746 4149 1745 4148 1744 4145 1741 4145 1740 4143 1738 4142 1737 4141 1735 4136 1729 4133 1726 4131 1724 4128 1721 4127 1720 4126 1718 4122 1715 4122 1714 4122 1714 4121 1713 4120 1712 4119 1712 4119 1711 4119 1711 4118 1710 4117 1710 4114 1708 4113 1708 4111 1707 4109 1706 4105 1704 4103 1703 4101 1702 4098 1700 4097 1700 4097 1699 4096 1699 4096 1698 4096 1698 4095 1697 4096 1697 4097 1697 4097 1697 4098 1697 4098 1697 4099 1698 4099 1698 4099 1698 4100 1698 4100 1698 4101 1697 4102 1696 4103 1695 4103 1695 4102 1693 4100 1693 4100 1693 4100 1694 4099 1694 4097 1695 4095 1695 4093 1694 4092 1695 4092 1696 4087 1697 4084 1698 4083 1698 4082 1698 4081 1698 4079 1699 4080 1700 4080 1700 4079 1700 4076 1702 4073 1703 4072 1703 4070 1702 4070 1703 4068 1704 4067 1705 4067 1705 4064 1705 4064 1706 4065 1707 4064 1708 4063 1708 4061 1708 4061 1707 4061 1706 4058 1706 4056 1706 4053 1706 4052 1706 4051 1707 4050 1708 4048 1709 4047 1709 4048 1708 4047 1707 4045 1707 4045 1707 4045 1706 4045 1705 4046 1705 4047 1703 4048 1702 4049 1702 4051 1702 4052 1702 4053 1700 4053 1699 4052 1699 4051 1699 4050 1700 4050 1700 4050 1701 4049 1701 4047 1701 4046 1701 4042 1700 4041 1699 4041 1698 4041 1698 4039 1698 4037 1698 4035 1698 4034 1698 4034 1698 4034 1699 4034 1699 4035 1699 4036 1699 4036 1700 4036 1700 4037 1701 4036 1701 4034 1701 4034 1701 4033 1701 4033 1701 4032 1701 4032 1701 4031 1701 4031 1701 4032 1699 4033 1698 4033 1698 4031 1697 4030 1697 4030 1697 4031 1696 4031 1696 4028 1694 4028 1694 4026 1694 4027 1696 4027 1697 4028 1697 4028 1697 4028 1698 4028 1698 4027 1698 4026 1697 4024 1696 4023 1696 4021 1696 4021 1696 4021 1698 4020 1698 4019 1698 4017 1698 4017 1698 4017 1697 4014 1697 4013 1698 4013 1698 4012 1698 4011 1697 4010 1697 4010 1697 4010 1696 4009 1696 4009 1695 4010 1695 4010 1695 4011 1695 4012 1695 4013 1693 4012 1692 4012 1692 4012 1690 4012 1690 4013 1690 4013 1690 4014 1690 4014 1689 4013 1689 4013 1688 4011 1688 4009 1687 4009 1686 4009 1684 4009 1684 4009 1684 4009 1683 4009 1683 4009 1682 4006 1680 4006 1680 4006 1680 4006 1679 4006 1679 4004 1679 4003 1679 4003 1679 4002 1680 4002 1680 4001 1679 4001 1679 4000 1680 3998 1681 3997 1681 3997 1682 3996 1681 3994 1681 3992 1681 3991 1680 3991 1679 3988 1678 3985 1678 3983 1678 3981 1679 3980 1679 3980 1678 3978 1677 3976 1677 3976 1677 3976 1678 3977 1678 3977 1678 3977 1679 3977 1679 3977 1679 3976 1679 3976 1679 3975 1679 3975 1678 3973 1678 3973 1678 3973 1678 3971 1681 3971 1681 3969 1681 3969 1681 3966 1681 3965 1681 3965 1681 3964 1681 3965 1682 3965 1682 3966 1683 3966 1683 3966 1683 3964 1685 3962 1685 3962 1685 3960 1684 3959 1684 3958 1685 3958 1685 3958 1685 3957 1686 3956 1686 3954 1686 3954 1686 3951 1686 3951 1686 3950 1686 3950 1686 3950 1686 3949 1687 3949 1687 3946 1688 3944 1688 3943 1688 3942 1688 3942 1688 3941 1688 3941 1688 3940 1688 3939 1688 3938 1688 3938 1688 3937 1688 3937 1689 3936 1689 3936 1689 3934 1689 3934 1689 3933 1689 3931 1690 3931 1690 3929 1690 3929 1689 3929 1689 3927 1689 3926 1690 3926 1690 3926 1690 3925 1690 3925 1690 3924 1690 3924 1690 3922 1690 3922 1690 3921 1690 3921 1690 3919 1691 3917 1692 3916 1693 3917 1694 3917 1694 3917 1694 3917 1695 3915 1695 3915 1695 3914 1694 3914 1694 3913 1694 3913 1694 3913 1693 3912 1693 3911 1694 3910 1694 3909 1694 3909 1695 3906 1694 3904 1695 3903 1695 3903 1695 3903 1695 3902 1694 3902 1694 3901 1695 3899 1695 3897 1695 3897 1695 3897 1696 3898 1696 3897 1697 3896 1697 3895 1696 3894 1696 3893 1696 3893 1696 3892 1696 3890 1697 3888 1697 3887 1697 3887 1697 3886 1697 3885 1697 3884 1697 3884 1697 3883 1697 3884 1698 3884 1698 3883 1698 3880 1699 3880 1699 3877 1699 3876 1699 3876 1699 3874 1699 3874 1701 3874 1702 3874 1702 3872 1701 3872 1701 3871 1700 3867 1700 3866 1700 3866 1700 3866 1700 3866 1701 3863 1701 3862 1700 3860 1700 3859 1700 3857 1700 3857 1699 3856 1699 3855 1699 3853 1700 3851 1701 3851 1701 3850 1701 3849 1701 3849 1701 3849 1702 3850 1702 3851 1702 3851 1702 3853 1703 3853 1703 3850 1706 3849 1706 3849 1705 3848 1705 3848 1705 3848 1706 3849 1706 3850 1706 3850 1706 3851 1706 3852 1707 3853 1707 3854 1707 3854 1707 3855 1707 3855 1707 3856 1706 3857 1706 3858 1706 3858 1708 3856 1709 3856 1709 3855 1709 3855 1708 3854 1708 3854 1708 3853 1708 3852 1710 3852 1711 3852 1711 3853 1711 3853 1711 3854 1712 3854 1712 3855 1712 3855 1712 3856 1712 3856 1712 3857 1712 3857 1712 3857 1712 3858 1713 3858 1713 3859 1712 3859 1712 3861 1713 3861 1713 3862 1713 3862 1713 3863 1713 3865 1714 3866 1714 3867 1714 3867 1714 3868 1715 3867 1715 3867 1716 3867 1716 3865 1717 3864 1717 3863 1716 3860 1716 3857 1716 3857 1716 3856 1716 3856 1716 3856 1716 3855 1716 3855 1716 3854 1716 3854 1716 3853 1716 3853 1716 3853 1716 3852 1716 3851 1716 3851 1717 3850 1718 3847 1719 3845 1720 3845 1720 3844 1721 3844 1721 3845 1722 3846 1722 3847 1722 3847 1722 3847 1723 3849 1724 3849 1725 3850 1726 3850 1727 3848 1728 3848 1728 3847 1728 3846 1728 3846 1728 3845 1729 3845 1729 3844 1730 3844 1730 3843 1730 3842 1729 3841 1729 3841 1730 3840 1730 3837 1732 3834 1732 3833 1732 3833 1733 3834 1734 3835 1734 3835 1734 3836 1734 3837 1734 3841 1735 3841 1735 3841 1735 3841 1736 3840 1737 3839 1737 3842 1738 3847 1738 3848 1738 3848 1738 3848 1738 3848 1739 3849 1740 3850 1740 3852 1741 3852 1740 3853 1740 3855 1741 3857 1741 3858 1743 3859 1743 3860 1744 3860 1744 3860 1744 3860 1744 3859 1744 3859 1744 3858 1744 3858 1744 3858 1745 3857 1748 3857 1750 3857 1750 3856 1751 3856 1751 3855 1751 3855 1751 3854 1752 3854 1752 3852 1752 3852 1752 3851 1752 3850 1752 3848 1753 3846 1753 3845 1753 3844 1753 3839 1753 3838 1753 3838 1753 3837 1752 3836 1752 3836 1751 3836 1751 3835 1750 3834 1750 3834 1750 3833 1750 3833 1751 3832 1751 3832 1752 3832 1753 3832 1754 3830 1755 3829 1755 3829 1755 3829 1755 3828 1755 3827 1756 3827 1756 3826 1756 3826 1756 3825 1755 3825 1755 3826 1755 3827 1755 3827 1755 3825 1754 3825 1754 3823 1754 3821 1753 3820 1753 3819 1753 3817 1753 3816 1753 3816 1753 3812 1751 3811 1750 3810 1749 3811 1749 3811 1748 3811 1747 3811 1747 3811 1747 3807 1746 3807 1745 3806 1746 3805 1746 3805 1746 3804 1747 3804 1747 3799 1746 3798 1746 3797 1747 3797 1747 3797 1748 3798 1748 3798 1749 3797 1749 3797 1749 3797 1749 3796 1749 3795 1749 3794 1749 3794 1749 3794 1750 3794 1750 3793 1750 3792 1750 3792 1750 3791 1749 3791 1749 3790 1748 3789 1747 3787 1747 3787 1747 3786 1747 3783 1747 3783 1747 3782 1747 3782 1746 3781 1747 3781 1747 3781 1747 3781 1748 3781 1748 3779 1748 3779 1748 3779 1747 3778 1747 3778 1747 3777 1747 3777 1747 3776 1747 3777 1748 3777 1748 3775 1749 3775 1750 3774 1750 3773 1749 3773 1749 3772 1749 3772 1750 3772 1751 3771 1752 3771 1752 3770 1753 3769 1753 3768 1754 3768 1754 3767 1754 3767 1754 3766 1754 3766 1755 3765 1755 3764 1755 3764 1755 3762 1754 3762 1754 3762 1753 3761 1753 3761 1753 3760 1753 3759 1753 3758 1753 3755 1751 3755 1751 3753 1750 3751 1748 3749 1747 3748 1747 3748 1747 3746 1748 3746 1749 3747 1749 3748 1749 3748 1750 3748 1751 3748 1752 3748 1753 3749 1754 3749 1754 3748 1754 3747 1755 3746 1755 3745 1755 3745 1755 3744 1754 3744 1754 3744 1754 3745 1752 3745 1751 3746 1751 3746 1750 3744 1750 3743 1750 3742 1749 3741 1748 3740 1748 3740 1747 3740 1746 3737 1745 3736 1745 3736 1745 3734 1744 3732 1744 3731 1743 3731 1742 3732 1742 3728 1740 3727 1740 3727 1740 3726 1740 3725 1740 3724 1740 3722 1740 3721 1740 3720 1740 3719 1740 3718 1740 3717 1740 3716 1741 3715 1741 3714 1740 3714 1740 3714 1740 3713 1739 3713 1739 3713 1739 3711 1736 3711 1735 3711 1735 3708 1736 3708 1737 3707 1737 3707 1737 3706 1737 3706 1737 3705 1737 3704 1737 3704 1737 3704 1737 3702 1738 3702 1739 3702 1739 3702 1740 3701 1741 3700 1741 3700 1740 3698 1740 3696 1740 3694 1740 3694 1739 3694 1739 3696 1739 3696 1738 3696 1738 3694 1737 3693 1737 3692 1737 3689 1737 3688 1737 3688 1736 3687 1736 3687 1736 3687 1736 3686 1736 3686 1736 3686 1736 3686 1737 3686 1737 3687 1738 3687 1738 3687 1738 3686 1739 3685 1739 3685 1739 3685 1738 3685 1738 3684 1738 3683 1738 3683 1739 3682 1739 3682 1740 3682 1740 3681 1741 3680 1741 3679 1742 3679 1743 3678 1743 3677 1744 3676 1744 3675 1744 3674 1744 3673 1744 3673 1745 3671 1745 3671 1746 3670 1746 3667 1746 3666 1746 3665 1746 3664 1747 3663 1748 3664 1749 3664 1749 3665 1749 3665 1750 3664 1750 3664 1750 3663 1751 3662 1751 3661 1751 3660 1751 3660 1751 3660 1752 3659 1752 3658 1753 3658 1753 3655 1754 3655 1754 3653 1754 3653 1754 3653 1756 3653 1757 3653 1758 3653 1759 3654 1760 3655 1761 3656 1762 3656 1763 3655 1764 3655 1765 3654 1765 3654 1765 3653 1765 3652 1766 3651 1766 3650 1766 3649 1767 3649 1767 3648 1767 3646 1766 3644 1764 3644 1764 3644 1763 3644 1763 3643 1762 3642 1761 3641 1760 3638 1758 3636 1757 3635 1757 3635 1757 3635 1757 3634 1757 3633 1757 3633 1758 3633 1758 3633 1758 3632 1759 3631 1759 3631 1759 3630 1761 3631 1761 3631 1762 3631 1762 3631 1762 3631 1763 3631 1763 3630 1764 3629 1765 3628 1765 3628 1765 3627 1765 3626 1765 3626 1765 3625 1766 3625 1766 3625 1766 3623 1770 3623 1774 3623 1774 3623 1775 3624 1775 3624 1775 3624 1775 3625 1775 3626 1776 3626 1776 3627 1777 3627 1777 3627 1778 3626 1778 3626 1779 3626 1779 3625 1780 3625 1780 3624 1780 3624 1780 3623 1780 3623 1781 3622 1781 3620 1785 3619 1786 3619 1787 3618 1788 3618 1789 3620 1790 3623 1790 3625 1791 3628 1791 3628 1792 3628 1792 3628 1794 3628 1797 3628 1799 3629 1799 3630 1800 3632 1801 3632 1799 3632 1799 3632 1798 3633 1798 3633 1799 3634 1799 3635 1799 3636 1799 3636 1800 3637 1800 3637 1799 3638 1799 3640 1799 3642 1799 3643 1799 3643 1800 3644 1800 3645 1801 3645 1801 3646 1801 3646 1802 3647 1803 3648 1804 3649 1805 3651 1806 3652 1807 3653 1810 3657 1815 3658 1815 3657 1817 3654 1817 3653 1816 3653 1816 3653 1816 3652 1815 3652 1815 3651 1815 3650 1816 3650 1816 3650 1816 3650 1817 3650 1817 3651 1819 3652 1819 3652 1819 3653 1819 3654 1819 3654 1819 3654 1820 3655 1820 3656 1820 3656 1820 3660 1822 3661 1822 3661 1823 3662 1823 3662 1824 3661 1823 3660 1823 3658 1825 3656 1826 3654 1826 3653 1826 3652 1826 3652 1826 3653 1827 3653 1827 3653 1828 3654 1830 3653 1830 3652 1829 3651 1829 3651 1828 3649 1829 3648 1830 3647 1830 3646 1831 3645 1832 3645 1832 3644 1832 3641 1832 3639 1832 3639 1833 3636 1832 3635 1832 3635 1831 3635 1832 3635 1832 3636 1832 3636 1834 3636 1834 3636 1835 3636 1835 3635 1834 3635 1834 3634 1832 3633 1832 3632 1832 3632 1833 3633 1833 3634 1834 3635 1834 3635 1835 3634 1835 3633 1835 3634 1835 3634 1835 3634 1836 3633 1837 3632 1838 3632 1840 3630 1843 3628 1845 3628 1846 3627 1847 3626 1846 3626 1847 3625 1847 3625 1847 3624 1848 3623 1848 3622 1849 3621 1850 3621 1851 3621 1853 3621 1853 3622 1853 3623 1854 3623 1853 3626 1854 3626 1854 3626 1854 3627 1855 3627 1855 3627 1856 3628 1856 3629 1856 3630 1857 3631 1859 3634 1863 3634 1863 3633 1865 3632 1866 3632 1866 3632 1866 3632 1868 3633 1868 3633 1867 3633 1867 3633 1866 3634 1864 3634 1863 3634 1863 3634 1862 3634 1862 3635 1861 3635 1861 3636 1861 3637 1862 3636 1862 3636 1863 3635 1863 3635 1864 3635 1865 3635 1865 3634 1866 3634 1867 3633 1868 3633 1869 3634 1870 3634 1871 3635 1870 3635 1871 3635 1871 3634 1872 3634 1872 3633 1872 3633 1874 3633 1875 3634 1876 3636 1877 3636 1877 3636 1878 3637 1878 3637 1878 3637 1879 3637 1880 3637 1880 3637 1881 3638 1882 3638 1882 3639 1882 3640 1882 3640 1883 3640 1883 3640 1883 3640 1884 3641 1884 3642 1885 3642 1886 3643 1886 3643 1886 3647 1890 3647 1891 3647 1891 3648 1892 3648 1893 3648 1893 3649 1893 3649 1893 3650 1893 3650 1894 3651 1894 3650 1895 3649 1897 3648 1898 3648 1898 3648 1898 3646 1900 3645 1900 3645 1900 3644 1900 3643 1900 3643 1900 3641 1902 3640 1903 3640 1904 3640 1904 3639 1904 3638 1904 3638 1904 3637 1904 3636 1904 3636 1904 3635 1904 3635 1904 3632 1903 3630 1903 3630 1902 3630 1901 3628 1899 3628 1898 3627 1899 3626 1898 3625 1897 3623 1896 3623 1895 3622 1895 3622 1894 3622 1894 3620 1895 3619 1894 3618 1893 3617 1893 3617 1893 3617 1893 3616 1893 3614 1892 3611 1891 3610 1891 3604 1888 3604 1888 3604 1888 3605 1887 3605 1886 3606 1884 3606 1884 3606 1884 3605 1884 3605 1883 3603 1883 3603 1883 3602 1883 3602 1883 3601 1883 3600 1883 3599 1883 3599 1883 3599 1882 3598 1881 3597 1881 3596 1880 3596 1880 3596 1880 3595 1881 3595 1881 3594 1881 3594 1880 3593 1880 3593 1880 3593 1880 3592 1880 3592 1880 3591 1881 3590 1881 3590 1881 3589 1880 3589 1880 3588 1880 3588 1880 3588 1880 3587 1880 3587 1880 3586 1880 3586 1880 3584 1880 3582 1881 3581 1881 3581 1882 3576 1882 3574 1882 3574 1881 3574 1881 3575 1880 3575 1880 3575 1880 3574 1879 3573 1879 3573 1879 3572 1879 3572 1878 3571 1878 3571 1878 3570 1878 3569 1877 3568 1877 3568 1877 3565 1877 3565 1877 3564 1876 3562 1875 3561 1874 3559 1873 3558 1873 3557 1873 3557 1873 3556 1873 3556 1873 3554 1873 3554 1872 3553 1872 3553 1872 3552 1872 3552 1872 3550 1872 3549 1872 3549 1872 3548 1873 3546 1873 3539 1872 3539 1872 3537 1871 3533 1870 3533 1870 3533 1870 3532 1870 3531 1870 3531 1870 3530 1869 3529 1869 3528 1868 3528 1868 3527 1868 3527 1868 3526 1868 3525 1867 3525 1867 3525 1867 3524 1867 3524 1867 3523 1868 3523 1868 3522 1868 3522 1867 3520 1867 3519 1867 3519 1866 3518 1866 3517 1866 3517 1866 3516 1867 3515 1867 3515 1867 3514 1869 3514 1869 3514 1870 3513 1869 3513 1869 3512 1868 3512 1868 3511 1868 3509 1866 3507 1865 3505 1864 3505 1863 3505 1863 3504 1862 3504 1862 3502 1861 3499 1858 3497 1857 3497 1857 3496 1857 3496 1857 3495 1857 3495 1856 3494 1856 3494 1855 3492 1854 3491 1854 3489 1854 3488 1854 3487 1854 3485 1854 3485 1854 3485 1853 3484 1853 3484 1853 3484 1852 3484 1852 3480 1849 3478 1848 3479 1849 3479 1849 3479 1850 3478 1850 3475 1849 3474 1849 3472 1848 3471 1846 3471 1846 3471 1845 3470 1845 3469 1844 3464 1842 3461 1842 3460 1842 3459 1841 3461 1840 3461 1841 3462 1841 3463 1840 3464 1840 3465 1839 3465 1839 3462 1838 3461 1838 3461 1838 3461 1838 3461 1838 3462 1837 3462 1837 3463 1837 3464 1837 3467 1838 3467 1840 3468 1840 3468 1840 3470 1840 3471 1839 3469 1839 3469 1839 3471 1839 3472 1839 3473 1839 3473 1838 3474 1838 3474 1838 3476 1839 3477 1839 3478 1839 3478 1838 3477 1835 3476 1834 3476 1835 3476 1835 3476 1837 3476 1837 3476 1837 3475 1837 3475 1834 3476 1833 3476 1833 3476 1834 3477 1834 3477 1834 3477 1834 3477 1833 3477 1833 3477 1833 3479 1832 3479 1832 3480 1831 3480 1831 3480 1830 3480 1830 3480 1829 3481 1828 3481 1828 3481 1827 3483 1827 3483 1827 3483 1827 3483 1829 3483 1829 3485 1826 3485 1826 3485 1826 3485 1826 3486 1826 3487 1826 3488 1827 3488 1827 3489 1827 3491 1827 3491 1827 3491 1826 3490 1826 3489 1825 3487 1825 3487 1824 3486 1824 3486 1823 3485 1822 3483 1822 3483 1821 3482 1821 3482 1822 3482 1822 3480 1821 3479 1820 3478 1817 3478 1817 3479 1818 3479 1818 3480 1818 3482 1818 3482 1818 3483 1818 3484 1817 3484 1817 3486 1816 3487 1817 3487 1817 3488 1817 3489 1818 3491 1817 3491 1817 3491 1816 3490 1816 3489 1816 3488 1816 3488 1816 3488 1816 3488 1815 3489 1814 3490 1814 3492 1814 3493 1814 3493 1814 3494 1814 3495 1814 3497 1813 3498 1812 3498 1812 3499 1811 3501 1811 3502 1812 3502 1812 3503 1811 3502 1808 3502 1808 3502 1808 3499 1807 3499 1807 3497 1808 3497 1808 3495 1809 3494 1809 3492 1810 3491 1810 3490 1810 3490 1810 3490 1809 3491 1808 3492 1808 3493 1808 3494 1808 3494 1808 3493 1808 3492 1808 3491 1808 3491 1808 3490 1808 3490 1809 3489 1810 3488 1810 3487 1810 3487 1810 3486 1810 3486 1810 3485 1809 3486 1808 3486 1808 3487 1807 3486 1806 3486 1804 3487 1803 3488 1802 3489 1802 3490 1802 3491 1802 3491 1802 3492 1802 3494 1801 3494 1800 3495 1799 3495 1798 3495 1798 3496 1798 3496 1798 3497 1798 3499 1798 3500 1798 3500 1798 3501 1798 3502 1798 3504 1798 3504 1798 3504 1799 3505 1799 3506 1798 3508 1798 3508 1799 3509 1799 3510 1799 3510 1799 3510 1798 3511 1798 3511 1796 3511 1796 3510 1795 3512 1793 3513 1793 3513 1792 3514 1791 3513 1790 3512 1788 3511 1787 3511 1787 3511 1787 3510 1787 3510 1787 3508 1786 3509 1784 3510 1784 3510 1783 3511 1783 3511 1783 3512 1783 3514 1783 3515 1783 3515 1782 3515 1782 3515 1782 3514 1782 3513 1782 3510 1781 3509 1780 3509 1780 3509 1779 3511 1779 3513 1779 3513 1779 3513 1778 3513 1778 3513 1778 3514 1777 3515 1777 3515 1777 3517 1776 3517 1775 3517 1774 3516 1774 3516 1773 3515 1773 3515 1772 3515 1772 3515 1771 3516 1771 3516 1771 3516 1771 3516 1770 3515 1770 3515 1770 3514 1770 3513 1770 3513 1771 3513 1771 3512 1771 3512 1771 3511 1771 3508 1770 3508 1770 3508 1769 3507 1768 3505 1768 3505 1768 3504 1768 3504 1768 3504 1768 3503 1768 3503 1768 3502 1768 3502 1767 3502 1767 3501 1766 3501 1766 3500 1766 3499 1767 3499 1767 3497 1767 3497 1767 3497 1767 3496 1766 3496 1766 3495 1766 3493 1765 3492 1765 3492 1764 3491 1764 3491 1765 3490 1765 3488 1764 3488 1764 3488 1764 3487 1763 3487 1763 3487 1763 3485 1763 3484 1765 3482 1765 3482 1765 3482 1764 3481 1763 3479 1763 3479 1763 3478 1763 3476 1761 3473 1757 3473 1757 3471 1757 3471 1757 3470 1758 3470 1758 3469 1758 3468 1758 3467 1758 3466 1758 3466 1758 3464 1759 3463 1759 3461 1760 3461 1760 3461 1760 3460 1760 3460 1760 3459 1760 3459 1760 3459 1760 3458 1759 3457 1759 3456 1759 3456 1759 3455 1759 3455 1759 3454 1759 3453 1758 3453 1758 3453 1758 3452 1757 3451 1757 3451 1757 3450 1757 3450 1757 3449 1757 3448 1757 3448 1757 3447 1757 3446 1758 3445 1758 3445 1758 3444 1758 3444 1758 3441 1756 3441 1756 3440 1754 3442 1753 3441 1752 3440 1749 3439 1749 3439 1748 3440 1748 3440 1748 3440 1747 3439 1747 3438 1747 3438 1747 3437 1747 3437 1747 3436 1747 3436 1745 3436 1745 3436 1745 3435 1744 3434 1744 3433 1744 3433 1745 3431 1745 3431 1745 3430 1745 3430 1745 3429 1745 3429 1745 3427 1744 3425 1744 3424 1744 3422 1741 3422 1740 3422 1739 3421 1738 3420 1738 3420 1737 3421 1737 3422 1737 3424 1736 3425 1736 3425 1736 3425 1735 3424 1734 3423 1734 3422 1733 3420 1732 3419 1731 3419 1731 3419 1730 3420 1730 3419 1729 3415 1726 3414 1726 3413 1726 3412 1726 3412 1727 3410 1727 3409 1726 3408 1726 3405 1726 3403 1727 3402 1728 3401 1728 3401 1728 3398 1728 3398 1728 3397 1728 3396 1727 3396 1727 3395 1727 3395 1727 3395 1727 3393 1727 3392 1727 3392 1727 3391 1729 3391 1730 3390 1731 3388 1731 3386 1731 3385 1731 3385 1730 3384 1730 3383 1730 3383 1730 3383 1730 3383 1729 3382 1729 3381 1728 3380 1727 3380 1727 3380 1726 3380 1724 3380 1722 3378 1721 3379 1721 3380 1720 3380 1719 3379 1719 3379 1718 3378 1718 3378 1718 3377 1718 3377 1718 3376 1717 3374 1716 3375 1715 3376 1714 3376 1714 3376 1714 3377 1713 3377 1713 3380 1712 3383 1713 3383 1713 3383 1714 3385 1714 3385 1714 3388 1715 3388 1715 3390 1714 3391 1714 3393 1713 3393 1713 3396 1711 3398 1710 3398 1709 3398 1709 3397 1708 3396 1708 3396 1708 3394 1707 3393 1707 3393 1706 3393 1706 3394 1705 3394 1705 3393 1704 3391 1704 3388 1703 3386 1703 3386 1703 3385 1703 3384 1704 3382 1703 3383 1703 3383 1702 3383 1702 3384 1700 3384 1700 3384 1699 3382 1698 3382 1698 3381 1698 3379 1698 3379 1698 3375 1696 3375 1695 3375 1695 3374 1693 3373 1693 3372 1692 3372 1692 3372 1692 3372 1691 3372 1691 3372 1690 3370 1689 3369 1688 3368 1688 3368 1688 3367 1687 3367 1687 3368 1685 3368 1685 3369 1685 3369 1685 3371 1683 3370 1682 3369 1681 3369 1681 3367 1679 3367 1679 3368 1678 3368 1678 3369 1678 3369 1678 3369 1676 3369 1675 3369 1674 3369 1674 3368 1674 3368 1674 3367 1675 3366 1674 3365 1673 3364 1673 3362 1671 3362 1671 3358 1670 3354 1670 3353 1670 3353 1671 3349 1672 3347 1673 3346 1673 3344 1672 3344 1671 3345 1670 3345 1669 3345 1669 3341 1668 3340 1668 3339 1668 3339 1668 3338 1668 3336 1668 3336 1669 3334 1669 3334 1669 3334 1668 3333 1668 3333 1667 3332 1666 3331 1666 3328 1667 3328 1667 3327 1667 3325 1666 3325 1666 3325 1666 3325 1665 3325 1665 3326 1664 3325 1662 3325 1661 3324 1660 3322 1658 3321 1657 3321 1655 3321 1655 3320 1654 3320 1654 3319 1654 3318 1654 3318 1654 3317 1653 3319 1651 3320 1649 3320 1648 3320 1647 3319 1647 3317 1646 3316 1646 3315 1645 3315 1645 3315 1644 3315 1644 3314 1644 3313 1644 3313 1644 3312 1644 3312 1643 3312 1643 3313 1641 3315 1639 3315 1639 3316 1639 3317 1639 3317 1639 3318 1639 3319 1639 3319 1638 3319 1638 3319 1638 3317 1637 3317 1635 3317 1635 3316 1634 3315 1634 3315 1634 3314 1633 3314 1631 3314 1631 3315 1631 3315 1630 3315 1630 3315 1630 3315 1629 3315 1628 3314 1627 3314 1627 3313 1625 3313 1624 3313 1623 3313 1623 3314 1622 3314 1622 3315 1622 3316 1621 3317 1620 3318 1620 3319 1619 3319 1619 3320 1618 3320 1616 3321 1616 3322 1616 3322 1616 3323 1616 3323 1616 3324 1616 3325 1615 3325 1615 3325 1615 3325 1614 3325 1614 3324 1613 3323 1613 3323 1613 3322 1612 3323 1612 3323 1612 3323 1611 3323 1611 3323 1611 3323 1610 3322 1609 3322 1609 3322 1608 3323 1607 3324 1607 3325 1608 3325 1608 3325 1609 3326 1609 3326 1609 3328 1610 3328 1609 3329 1609 3329 1609 3329 1608 3329 1608 3329 1608 3329 1607 3330 1606 3331 1606 3333 1607 3333 1607 3334 1608 3336 1608 3338 1607 3338 1607 3339 1606 3339 1606 3339 1605 3339 1605 3340 1604 3341 1604 3346 1605 3350 1605 3351 1605 3353 1606 3354 1606 3355 1606 3355 1606 3357 1606 3357 1606 3358 1606 3358 1605 3358 1604 3357 1604 3355 1604 3355 1604 3354 1604 3353 1604 3352 1603 3353 1602 3352 1602 3352 1602 3351 1601 3350 1601 3350 1601 3349 1601 3347 1601 3347 1601 3346 1601 3346 1601 3345 1601 3345 1602 3341 1601 3339 1601 3339 1601 3338 1601 3338 1601 3336 1600 3336 1599 3335 1599 3334 1599 3334 1599 3332 1598 3332 1598 3329 1595 3330 1595 3331 1596 3331 1596 3332 1596 3333 1597 3333 1597 3333 1597 3333 1595 3332 1595 3332 1595 3331 1595 3331 1594 3331 1594 3332 1594 3332 1594 3333 1594 3334 1593 3334 1593 3333 1592 3330 1593 3329 1594 3328 1594 3328 1594 3328 1595 3325 1596 3323 1596 3319 1596 3319 1595 3320 1595 3324 1593 3326 1591 3327 1591 3327 1591 3327 1591 3328 1590 3328 1590 3330 1589 3331 1589 3331 1589 3332 1589 3333 1589 3333 1588 3334 1587 3335 1587 3338 1586 3339 1585 3341 1584 3342 1584 3342 1584 3343 1584 3343 1583 3343 1583 3344 1583 3344 1582 3346 1581 3349 1580 3349 1580 3351 1579 3354 1576 3356 1575 3357 1575 3357 1574 3359 1573 3360 1572 3364 1570 3365 1569 3367 1568 3367 1568 3370 1567 3371 1566 3374 1564 3375 1564 3375 1563 3375 1563 3375 1562 3377 1560 3378 1559 3378 1559 3378 1559 3379 1558 3378 1557 3376 1555 3374 1553 3374 1553 3373 1552 3369 1551 3366 1549 3365 1549 3362 1549 3361 1548 3360 1547 3360 1547 3359 1547 3358 1547 3357 1546 3354 1545 3354 1544 M 4343 1323 4343 1323 4342 1323 4341 1323 4341 1323 4340 1323 4340 1322 4340 1322 4341 1322 4341 1322 4341 1322 4342 1322 4342 1322 4343 1322 4345 1323 4345 1323 4345 1323 4344 1323 4343 1323 M 4187 1324 4188 1324 4188 1324 4189 1324 4191 1324 4192 1324 4192 1325 4193 1325 4194 1325 4194 1325 4194 1325 4193 1325 4193 1325 4188 1325 4187 1325 4187 1325 4187 1325 4187 1324 4187 1324 M 4576 1326 4576 1326 4577 1326 4577 1326 4580 1325 4580 1325 4581 1325 4581 1325 4582 1325 4582 1326 4582 1326 4582 1326 4578 1327 4578 1327 4578 1327 4576 1326 M 4590 1329 4589 1329 4588 1329 4588 1329 4587 1329 4589 1327 4590 1327 4590 1327 4591 1327 4595 1327 4595 1328 4593 1329 4590 1329 M 4299 1330 4299 1330 4299 1329 4299 1329 4299 1329 4299 1328 4300 1328 4301 1328 4301 1328 4301 1328 4303 1328 4304 1328 4304 1328 4306 1328 4306 1328 4307 1328 4307 1328 4307 1328 4307 1328 4307 1328 4306 1328 4306 1328 4306 1328 4305 1328 4305 1328 4306 1328 4306 1329 4307 1329 4307 1329 4307 1329 4307 1329 4306 1329 4306 1329 4306 1330 4304 1330 4304 1330 4303 1330 4303 1330 4302 1330 4302 1330 4301 1330 4301 1330 4299 1329 4299 1330 M 4417 1329 4417 1330 4418 1330 4418 1331 4416 1332 4415 1332 4413 1332 4411 1333 4407 1333 4404 1334 4403 1333 4405 1333 4405 1333 4407 1333 4407 1333 4407 1333 4407 1333 4407 1332 4407 1332 4406 1332 4406 1332 4405 1332 4405 1333 4404 1333 4403 1333 4403 1333 4402 1333 4400 1333 4397 1333 4396 1333 4396 1333 4396 1333 4397 1332 4397 1332 4399 1332 4400 1332 4401 1332 4402 1331 4402 1331 4405 1331 4410 1331 4411 1331 4412 1330 4413 1330 4413 1330 4414 1330 4414 1330 4415 1329 4415 1329 4416 1329 4416 1329 4417 1329 M 4295 1330 4296 1331 4296 1331 4295 1331 4294 1331 4292 1331 4291 1331 4291 1331 4291 1331 4291 1331 4292 1331 4292 1331 4293 1331 4293 1331 4294 1331 4293 1332 4293 1333 4293 1333 4292 1332 4291 1332 4291 1332 4291 1332 4291 1331 4291 1331 4291 1331 4291 1331 4291 1331 4292 1330 4292 1330 4292 1330 4293 1330 4293 1330 4294 1330 4295 1330 4295 1330 4295 1330 M 5375 1330 5376 1330 5376 1330 5377 1330 5377 1330 5378 1330 5378 1331 5378 1331 5378 1331 5378 1331 5377 1331 5377 1331 5376 1331 5376 1331 5375 1331 5374 1331 5374 1331 5374 1331 5374 1330 5375 1330 M 3943 1348 3940 1348 3940 1348 3940 1348 3938 1348 3937 1349 3936 1349 3936 1349 3932 1349 3930 1349 3929 1349 3925 1350 3920 1351 3917 1351 3916 1351 3916 1351 3915 1352 3914 1352 3913 1352 3913 1352 3912 1352 3911 1352 3909 1352 3906 1353 3903 1353 3900 1353 3899 1353 3899 1353 3895 1354 3895 1354 3894 1354 3893 1354 3892 1353 3892 1353 3891 1353 3891 1353 3890 1353 3891 1353 3891 1354 3890 1354 3889 1355 3886 1355 3886 1355 3886 1355 3885 1355 3884 1355 3883 1355 3883 1355 3882 1355 3881 1355 3881 1356 3878 1356 3878 1356 3877 1356 3875 1356 3874 1357 3874 1357 3871 1357 3870 1358 3869 1358 3869 1358 3868 1357 3868 1357 3866 1358 3863 1358 3860 1359 3860 1359 3860 1360 3860 1360 3858 1361 3857 1361 3857 1361 3856 1361 3856 1361 3855 1361 3856 1360 3855 1359 3854 1359 3854 1360 3853 1361 3852 1361 3852 1361 3851 1361 3849 1362 3847 1362 3847 1362 3847 1362 3846 1362 3845 1363 3846 1363 3846 1363 3845 1364 3845 1364 3845 1364 3844 1364 3844 1364 3843 1364 3843 1364 3842 1364 3843 1363 3842 1363 3841 1363 3840 1364 3840 1364 3841 1364 3840 1364 3838 1365 3836 1365 3835 1365 3835 1365 3834 1365 3833 1365 3832 1365 3835 1365 3835 1365 3836 1365 3838 1365 3840 1365 3843 1365 3843 1365 3843 1365 3844 1365 3844 1366 3843 1367 3842 1367 3842 1367 3842 1367 3841 1367 3840 1367 3837 1367 3837 1367 3838 1367 3839 1368 3839 1368 3838 1368 3838 1369 3837 1369 3834 1369 3833 1369 3833 1369 3832 1369 3829 1369 3827 1368 3827 1368 3826 1368 3826 1368 3827 1369 3827 1369 3828 1369 3829 1369 3829 1369 3829 1369 3830 1369 3831 1370 3831 1371 3830 1371 3829 1371 3828 1371 3828 1371 3827 1371 3827 1371 3826 1371 3825 1371 3824 1370 3823 1370 3821 1369 3820 1369 3820 1369 3821 1370 3822 1370 3820 1371 3820 1372 3819 1372 3819 1373 3820 1374 3818 1374 3818 1374 3816 1373 3814 1373 3813 1373 3813 1373 3813 1373 3812 1372 3810 1372 3808 1372 3808 1372 3807 1372 3805 1371 3805 1371 3804 1371 3804 1372 3806 1372 3807 1372 3808 1373 3811 1374 3811 1374 3811 1375 3812 1375 3813 1376 3813 1376 3813 1377 3811 1378 3809 1378 3809 1378 3807 1378 3807 1377 3807 1377 3806 1377 3806 1377 3805 1377 3806 1378 3806 1378 3807 1378 3808 1378 3807 1379 3806 1379 3805 1378 3805 1378 3805 1378 3804 1378 3804 1378 3804 1379 3804 1380 3805 1380 3805 1380 3804 1381 3803 1381 3801 1381 3800 1380 3797 1380 3797 1380 3796 1379 3795 1378 3794 1378 3794 1378 3794 1378 3793 1378 3792 1378 3793 1378 3794 1379 3794 1379 3794 1379 3793 1379 3793 1379 3792 1379 3792 1379 3791 1379 3791 1379 3790 1379 3790 1379 3790 1379 3790 1379 3791 1379 3794 1380 3794 1380 3795 1380 3795 1380 3796 1381 3797 1381 3798 1381 3798 1381 3800 1382 3800 1382 3800 1384 3800 1384 3798 1385 3797 1385 3797 1385 3795 1385 3795 1384 3795 1384 3794 1383 3793 1383 3792 1383 3792 1383 3790 1383 3788 1383 3786 1383 3785 1383 3784 1383 3782 1383 3782 1383 3781 1383 3780 1382 3779 1382 3780 1383 3781 1383 3781 1383 3783 1383 3785 1383 3786 1383 3787 1383 3789 1383 3790 1383 3791 1383 3791 1384 3793 1384 3795 1385 3795 1386 3795 1387 3795 1387 3791 1388 3791 1388 3788 1387 3787 1387 3786 1387 3785 1387 3783 1386 3782 1386 3782 1386 3782 1386 3781 1386 3782 1387 3782 1387 3784 1387 3785 1388 3787 1388 3788 1388 3789 1389 3789 1389 3786 1391 3785 1391 3784 1392 3783 1391 3782 1391 3782 1391 3781 1391 3781 1393 3781 1393 3779 1392 3778 1392 3778 1392 3777 1392 3776 1392 3774 1392 3773 1392 3773 1392 3773 1392 3772 1392 3771 1392 3771 1392 3770 1392 3770 1391 3770 1391 3770 1390 3770 1390 3769 1390 3768 1389 3767 1390 3768 1390 3769 1390 3769 1391 3769 1391 3768 1392 3768 1392 3767 1391 3767 1391 3766 1391 3765 1391 3764 1391 3763 1391 3763 1391 3762 1391 3761 1391 3760 1391 3760 1391 3759 1391 3758 1391 3758 1391 3757 1390 3757 1390 3756 1390 3754 1390 3753 1390 3753 1389 3752 1389 3751 1390 3750 1390 3746 1390 3746 1390 3745 1390 3744 1391 3743 1391 3743 1391 3742 1391 3741 1391 3738 1391 3738 1390 3738 1390 3739 1390 3741 1390 3741 1390 3742 1390 3742 1390 3743 1389 3742 1389 3741 1389 3741 1388 3743 1388 3743 1387 3745 1387 3747 1387 3748 1387 3748 1387 3749 1386 3750 1386 3751 1386 3756 1385 3753 1385 3751 1385 3746 1385 3745 1385 3745 1386 3744 1386 3744 1386 3742 1387 3740 1387 3738 1387 3737 1387 3736 1386 3734 1385 3734 1385 3732 1385 3732 1384 3732 1384 3732 1384 3733 1384 3733 1384 3734 1384 3735 1384 3735 1384 3736 1384 3737 1384 3738 1383 3739 1383 3739 1383 3741 1382 3741 1382 3743 1382 3744 1382 3745 1381 3745 1381 3746 1381 3746 1381 3750 1381 3750 1381 3750 1381 3749 1381 3748 1381 3748 1381 3747 1380 3749 1379 3749 1379 3754 1378 3756 1378 3756 1378 3757 1378 3757 1378 3757 1378 3758 1378 3759 1378 3760 1378 3764 1379 3766 1379 3767 1379 3767 1379 3766 1378 3766 1378 3765 1378 3765 1378 3764 1378 3764 1378 3763 1378 3763 1377 3762 1377 3758 1377 3758 1377 3757 1377 3757 1377 3756 1377 3756 1377 3756 1377 3755 1376 3757 1376 3758 1376 3758 1376 3758 1376 3760 1376 3762 1376 3764 1376 3765 1376 3765 1376 3764 1375 3762 1375 3760 1375 3759 1375 3758 1375 3757 1375 3759 1374 3759 1374 3760 1374 3760 1374 3768 1373 3770 1373 3772 1373 3773 1373 3774 1373 3774 1373 3773 1373 3773 1373 3772 1373 3770 1373 3771 1372 3770 1372 3770 1372 3768 1372 3765 1372 3762 1372 3761 1371 3762 1370 3763 1370 3764 1370 3764 1370 3766 1370 3766 1370 3767 1370 3767 1370 3768 1370 3768 1370 3769 1370 3769 1370 3770 1370 3772 1369 3774 1369 3776 1369 3776 1369 3777 1370 3779 1370 3779 1370 3782 1370 3782 1370 3785 1370 3785 1369 3784 1369 3784 1369 3783 1369 3782 1369 3782 1370 3781 1370 3779 1369 3779 1369 3779 1369 3779 1369 3778 1369 3777 1368 3775 1368 3774 1368 3773 1368 3773 1368 3772 1368 3771 1368 3770 1368 3769 1368 3768 1368 3768 1368 3767 1368 3767 1367 3768 1367 3775 1366 3775 1366 3776 1366 3776 1366 3777 1366 3778 1366 3780 1365 3780 1365 3780 1365 3779 1365 3778 1365 3778 1365 3777 1365 3776 1365 3774 1365 3775 1365 3776 1365 3776 1365 3777 1365 3777 1364 3777 1364 3776 1364 3773 1364 3771 1364 3771 1365 3770 1365 3770 1365 3769 1365 3768 1365 3767 1365 3768 1364 3768 1364 3768 1363 3768 1363 3767 1363 3766 1363 3766 1363 3765 1363 3765 1363 3765 1363 3766 1362 3768 1361 3770 1361 3770 1361 3771 1361 3771 1361 3771 1362 3772 1362 3772 1362 3772 1362 3773 1362 3773 1362 3774 1362 3775 1362 3775 1362 3776 1362 3777 1363 3777 1363 3777 1364 3778 1364 3780 1363 3780 1363 3782 1362 3782 1361 3783 1361 3783 1361 3784 1361 3784 1360 3783 1360 3783 1360 3783 1360 3782 1360 3782 1360 3781 1360 3781 1360 3782 1360 3783 1359 3783 1359 3786 1358 3786 1358 3787 1358 3790 1359 3792 1359 3794 1359 3794 1359 3795 1359 3797 1359 3797 1359 3797 1359 3796 1358 3795 1358 3794 1357 3794 1357 3795 1356 3795 1356 3796 1356 3801 1356 3803 1355 3804 1355 3804 1355 3804 1355 3804 1355 3803 1355 3803 1355 3802 1355 3801 1355 3801 1355 3800 1355 3800 1354 3801 1354 3801 1354 3802 1354 3803 1354 3803 1354 3805 1354 3810 1353 3810 1352 3810 1352 3814 1351 3814 1351 3816 1351 3816 1351 3817 1351 3818 1351 3819 1351 3819 1351 3820 1351 3820 1351 3822 1350 3823 1350 3823 1350 3824 1350 3824 1350 3824 1350 3825 1350 3827 1350 3828 1350 3828 1350 3829 1350 3830 1350 3833 1349 3833 1349 3834 1349 3834 1349 3836 1349 3836 1349 3837 1349 3838 1349 3838 1349 3839 1349 3839 1348 3838 1348 3837 1348 3836 1348 3835 1348 3835 1348 3834 1348 3834 1348 3834 1348 3837 1347 3838 1347 3838 1347 3841 1347 3841 1347 3842 1347 3846 1347 3847 1347 3845 1347 3844 1347 3841 1348 3843 1349 3844 1349 3844 1349 3845 1349 3845 1349 3845 1348 3846 1348 3846 1348 3846 1348 3847 1348 3848 1348 3850 1347 3851 1347 3852 1347 3851 1346 3850 1346 3849 1346 3849 1346 3848 1346 3848 1346 3849 1345 3850 1344 3850 1344 3851 1344 3852 1344 3854 1344 3859 1344 3859 1344 3860 1344 3860 1344 3861 1344 3861 1344 3862 1344 3862 1344 3865 1345 3866 1345 3868 1345 3870 1344 3871 1345 3872 1346 3872 1346 3873 1346 3873 1346 3874 1345 3876 1345 3877 1344 3877 1344 3878 1344 3879 1344 3879 1345 3879 1345 3880 1345 3881 1345 3882 1345 3884 1345 3887 1344 3890 1344 3892 1343 3893 1343 3895 1343 3897 1343 3898 1344 3898 1344 3899 1344 3899 1344 3900 1344 3900 1343 3900 1343 3902 1343 3905 1342 3908 1342 3909 1341 3910 1341 3912 1341 3913 1341 3913 1341 3914 1341 3914 1341 3915 1341 3916 1341 3919 1341 3919 1340 3919 1340 3920 1340 3922 1339 3922 1339 3922 1339 3923 1340 3928 1340 3928 1340 3929 1340 3929 1340 3928 1339 3927 1338 3926 1338 3926 1338 3925 1338 3927 1337 3928 1337 3928 1337 3929 1337 3930 1337 3930 1337 3932 1336 3935 1335 3936 1335 3936 1335 3936 1335 3937 1335 3939 1335 3939 1335 3940 1334 3940 1334 3944 1334 3945 1333 3945 1333 3946 1333 3947 1333 3950 1333 3950 1333 3951 1333 3954 1332 3954 1332 3955 1332 3956 1332 3956 1332 3960 1333 3960 1333 3961 1333 3962 1333 3962 1333 3962 1333 3963 1333 3963 1333 3965 1333 3967 1333 3968 1333 3969 1333 3972 1335 3973 1335 3976 1336 3975 1338 3975 1338 3974 1339 3974 1339 3975 1339 3975 1340 3967 1343 3965 1343 3966 1344 3966 1344 3966 1344 3965 1344 3964 1344 3963 1344 3961 1344 3960 1345 3956 1345 3954 1346 3953 1346 3952 1346 3952 1346 3951 1346 3949 1347 3947 1347 3946 1347 3944 1347 3943 1347 3943 1348 M 4414 1334 4414 1334 4413 1334 4413 1334 4412 1334 4409 1334 4409 1334 4408 1334 4407 1334 4408 1334 4409 1334 4411 1334 4412 1334 4413 1334 4414 1334 4414 1334 M 4438 1336 4436 1336 4436 1336 4436 1335 4436 1335 4437 1335 4437 1335 4439 1335 4439 1335 4439 1335 4439 1336 4439 1336 4438 1336 4438 1336 M 4431 1337 4430 1337 4430 1337 4430 1337 4428 1337 4427 1337 4426 1336 4426 1336 4432 1336 4433 1336 4434 1336 4434 1337 4433 1337 4433 1337 4432 1337 4431 1337 M 5245 1338 5245 1338 5246 1338 5246 1338 5246 1338 5247 1338 5250 1337 5251 1337 5255 1337 5257 1337 5260 1336 5260 1337 5258 1338 5258 1338 5258 1338 5257 1338 5257 1338 5256 1338 5256 1338 5255 1338 5255 1338 5251 1338 5249 1338 5247 1338 5245 1338 M 4433 1339 4429 1339 4430 1338 4430 1337 4431 1337 4431 1337 4431 1337 4432 1337 4434 1339 4434 1339 4433 1339 4433 1339 4433 1339 M 4403 1338 4403 1338 4404 1338 4404 1338 4405 1338 4406 1338 4404 1338 4403 1338 4401 1338 4400 1338 4400 1338 4400 1338 4399 1338 4399 1337 4399 1337 4400 1337 4401 1337 4401 1337 4401 1338 4402 1338 4402 1338 4402 1338 4402 1338 4403 1338 M 4394 1337 4394 1337 4394 1337 4396 1338 4396 1338 4398 1338 4397 1338 4397 1338 4397 1338 4396 1338 4396 1338 4394 1338 4393 1338 4392 1338 4391 1338 4390 1339 4390 1339 4390 1339 4390 1338 4389 1338 4389 1338 4390 1338 4390 1338 4392 1338 4392 1338 4392 1338 4393 1338 4393 1338 4394 1338 4394 1338 4394 1337 M 4416 1337 4416 1338 4414 1339 4412 1339 4412 1339 4411 1339 4411 1339 4408 1339 4408 1339 4408 1339 4407 1339 4407 1339 4407 1338 4407 1338 4407 1338 4407 1338 4408 1338 4408 1338 4409 1338 4409 1338 4410 1338 4410 1338 4411 1338 4411 1338 4413 1337 4415 1337 4416 1337 M 4673 1342 4672 1341 4671 1341 4671 1341 4670 1341 4669 1340 4669 1340 4669 1340 4668 1340 4667 1340 4667 1340 4666 1340 4666 1340 4665 1340 4663 1339 4663 1339 4664 1339 4665 1338 4666 1338 4666 1339 4667 1339 4668 1339 4668 1339 4669 1339 4669 1339 4669 1338 4669 1338 4669 1338 4670 1338 4672 1339 4672 1339 4673 1340 4675 1340 4675 1340 4675 1340 4674 1341 4673 1342 4673 1342 M 4376 1339 4377 1339 4381 1339 4382 1339 4382 1339 4382 1339 4382 1340 4379 1339 4375 1339 4374 1339 4375 1339 4375 1339 4375 1339 4376 1339 M 4682 1343 4682 1343 4682 1342 4683 1342 4683 1342 4684 1342 4684 1342 4684 1342 4685 1342 4685 1342 4684 1342 4684 1342 4685 1343 4686 1343 4687 1343 4687 1343 4687 1343 4687 1343 4685 1343 4682 1343 4682 1343 M 4420 1346 4420 1346 4420 1346 4420 1345 4420 1345 4420 1345 4422 1343 4422 1343 4422 1343 4422 1343 4425 1343 4425 1343 4425 1344 4425 1344 4424 1344 4424 1344 4423 1344 4422 1344 4422 1344 4422 1344 4422 1344 4422 1345 4422 1345 4422 1345 4422 1345 4423 1345 4423 1345 4423 1345 4425 1345 4425 1345 4425 1345 4422 1345 4420 1346 M 4414 1347 4414 1347 4413 1347 4412 1347 4412 1346 4411 1346 4411 1346 4408 1346 4408 1346 4406 1346 4405 1346 4404 1346 4404 1346 4403 1346 4402 1345 4401 1345 4401 1345 4400 1345 4399 1345 4398 1345 4398 1345 4397 1345 4397 1345 4397 1345 4397 1344 4397 1344 4398 1344 4398 1344 4400 1344 4400 1344 4401 1345 4401 1345 4404 1344 4404 1344 4405 1344 4405 1344 4409 1344 4412 1344 4413 1344 4413 1344 4414 1344 4414 1344 4419 1344 4419 1345 4418 1346 4417 1346 4417 1346 4417 1346 4417 1346 4417 1345 4417 1345 4417 1345 4416 1344 4416 1344 4415 1344 4415 1344 4414 1344 4414 1344 4414 1345 4413 1346 4414 1346 4415 1346 4415 1346 4414 1347 4414 1347 M 4388 1345 4389 1345 4390 1344 4390 1344 4391 1344 4391 1344 4391 1344 4391 1344 4392 1344 4390 1346 4390 1346 4387 1346 4384 1346 4384 1346 4383 1345 4383 1345 4384 1345 4384 1345 4385 1345 4385 1345 4387 1345 4389 1345 4389 1345 4389 1345 4389 1345 4388 1345 M 5151 1368 5150 1368 5149 1368 5149 1367 5149 1367 5144 1366 5143 1366 5143 1366 5143 1365 5143 1365 5144 1365 5144 1365 5145 1365 5145 1365 5147 1366 5147 1366 5148 1366 5148 1366 5148 1366 5149 1366 5147 1365 5146 1365 5146 1365 5143 1365 5140 1365 5138 1365 5136 1365 5136 1366 5135 1366 5134 1366 5131 1366 5129 1366 5128 1366 5127 1366 5126 1366 5124 1366 5123 1366 5122 1367 5121 1367 5121 1367 5118 1367 5116 1367 5112 1367 5111 1366 5109 1366 5107 1365 5106 1365 5106 1365 5105 1365 5104 1365 5103 1366 5103 1367 5103 1367 5103 1367 5104 1367 5104 1368 5103 1368 5101 1369 5101 1370 5100 1370 5099 1370 5098 1370 5098 1370 5097 1370 5096 1370 5096 1370 5096 1370 5095 1370 5094 1370 5093 1370 5093 1369 5092 1369 5091 1369 5091 1369 5090 1369 5087 1369 5083 1368 5082 1368 5082 1368 5082 1368 5081 1368 5081 1368 5080 1368 5080 1368 5077 1367 5076 1366 5076 1366 5076 1365 5076 1365 5075 1365 5075 1365 5074 1364 5073 1364 5073 1364 5072 1364 5071 1364 5071 1364 5068 1363 5065 1362 5065 1362 5063 1361 5062 1360 5061 1359 5061 1359 5062 1359 5062 1359 5063 1358 5063 1358 5064 1358 5064 1358 5064 1359 5065 1359 5065 1359 5066 1359 5066 1359 5067 1359 5067 1359 5069 1359 5070 1359 5070 1359 5070 1358 5069 1358 5069 1358 5068 1358 5068 1358 5067 1358 5067 1358 5066 1358 5066 1358 5066 1358 5065 1358 5065 1357 5066 1357 5067 1356 5068 1355 5067 1354 5066 1354 5065 1354 5064 1355 5063 1355 5063 1355 5064 1355 5064 1356 5063 1355 5063 1355 5063 1355 5064 1354 5064 1354 5066 1354 5066 1354 5066 1353 5065 1353 5065 1353 5064 1353 5066 1352 5066 1352 5067 1352 5068 1352 5071 1352 5072 1352 5073 1352 5073 1352 5074 1353 5075 1353 5075 1353 5075 1352 5074 1352 5073 1352 5070 1351 5070 1350 5070 1349 5071 1349 5072 1349 5074 1349 5075 1348 5075 1348 5076 1348 5078 1348 5078 1348 5079 1348 5079 1348 5080 1348 5081 1348 5081 1347 5080 1347 5080 1348 5079 1348 5079 1348 5081 1347 5082 1347 5083 1347 5085 1346 5085 1347 5085 1347 5086 1348 5086 1348 5087 1347 5087 1347 5087 1346 5088 1346 5088 1346 5089 1345 5090 1345 5091 1345 5092 1345 5092 1345 5093 1345 5094 1345 5094 1346 5095 1346 5096 1347 5097 1347 5098 1347 5100 1348 5101 1348 5101 1348 5101 1348 5103 1348 5103 1348 5104 1348 5104 1349 5105 1349 5106 1349 5106 1349 5107 1349 5108 1349 5108 1349 5109 1349 5109 1349 5110 1350 5109 1350 5109 1350 5108 1350 5108 1350 5110 1351 5112 1352 5114 1352 5115 1351 5115 1351 5115 1351 5117 1352 5118 1352 5119 1352 5120 1352 5120 1353 5119 1353 5118 1353 5118 1354 5118 1354 5119 1354 5121 1355 5125 1355 5125 1355 5126 1355 5126 1355 5127 1355 5128 1354 5128 1354 5127 1354 5125 1353 5125 1352 5126 1351 5125 1350 5126 1349 5126 1349 5126 1348 5127 1348 5127 1348 5127 1348 5128 1348 5130 1348 5130 1348 5133 1348 5135 1348 5136 1348 5136 1348 5136 1349 5137 1348 5135 1348 5133 1346 5132 1346 5132 1346 5133 1346 5134 1346 5136 1347 5139 1347 5143 1348 5145 1349 5149 1350 5149 1350 5150 1350 5150 1350 5151 1351 5152 1351 5154 1351 5155 1351 5157 1351 5157 1351 5159 1352 5160 1352 5161 1352 5162 1352 5163 1352 5165 1351 5165 1351 5166 1351 5168 1351 5168 1351 5169 1351 5170 1351 5173 1351 5174 1351 5175 1352 5179 1352 5183 1353 5183 1353 5185 1353 5185 1353 5186 1353 5187 1354 5187 1354 5188 1354 5188 1354 5189 1355 5191 1355 5193 1355 5193 1355 5194 1355 5195 1355 5196 1355 5197 1356 5197 1356 5195 1356 5195 1356 5194 1356 5192 1357 5192 1357 5191 1357 5190 1357 5189 1357 5188 1357 5187 1358 5187 1358 5186 1358 5186 1358 5186 1359 5186 1359 5188 1360 5188 1360 5189 1360 5189 1360 5190 1360 5190 1360 5188 1361 5187 1361 5186 1361 5186 1362 5186 1362 5185 1362 5185 1362 5184 1362 5183 1363 5182 1363 5181 1364 5181 1364 5180 1364 5180 1364 5179 1364 5179 1364 5179 1364 5178 1364 5177 1364 5176 1364 5175 1364 5175 1364 5175 1364 5174 1364 5173 1364 5173 1364 5172 1364 5171 1363 5171 1363 5169 1363 5168 1363 5168 1363 5167 1363 5167 1363 5166 1363 5166 1363 5165 1364 5165 1364 5164 1363 5164 1363 5164 1363 5163 1363 5162 1363 5160 1363 5159 1363 5158 1363 5158 1363 5157 1362 5157 1362 5157 1362 5156 1361 5156 1361 5156 1361 5155 1361 5155 1361 5154 1361 5154 1360 5154 1360 5153 1360 5153 1359 5152 1359 5152 1359 5151 1359 5151 1357 5153 1356 5154 1356 5155 1356 5156 1356 5157 1355 5158 1355 5159 1355 5160 1355 5160 1354 5159 1354 5159 1354 5158 1353 5158 1353 5157 1353 5154 1353 5153 1353 5152 1353 5150 1353 5150 1354 5149 1354 5149 1354 5147 1354 5145 1355 5145 1357 5145 1359 5146 1359 5148 1360 5148 1360 5149 1360 5150 1360 5152 1362 5153 1363 5153 1363 5154 1363 5155 1363 5156 1363 5157 1364 5157 1364 5158 1363 5160 1364 5161 1364 5162 1364 5165 1364 5165 1365 5166 1365 5166 1365 5167 1364 5168 1364 5168 1364 5168 1364 5169 1364 5169 1365 5170 1365 5170 1366 5169 1366 5166 1366 5166 1366 5164 1366 5163 1366 5162 1366 5161 1366 5158 1366 5155 1366 5155 1366 5154 1366 5154 1366 5153 1367 5153 1367 5154 1367 5152 1368 5152 1368 5151 1368 M 5312 1347 5311 1347 5310 1346 5310 1346 5311 1346 5311 1345 5311 1345 5315 1345 5315 1345 5316 1346 5315 1347 5315 1347 5315 1347 5313 1347 5313 1347 5313 1347 5312 1347 M 3832 1346 3834 1346 3840 1346 3841 1346 3841 1346 3841 1346 3841 1346 3841 1346 3840 1346 3838 1346 3838 1346 3838 1346 3838 1347 3837 1347 3836 1347 3831 1347 3831 1347 3831 1347 3832 1347 3832 1347 3832 1346 M 5125 1348 5125 1347 5125 1347 5126 1347 5126 1346 5126 1346 5127 1346 5127 1346 5128 1346 5128 1347 5128 1347 5128 1347 5126 1347 5126 1347 5126 1348 5125 1348 M 4430 1347 4430 1347 4429 1347 4426 1348 4426 1348 4425 1349 4425 1349 4423 1349 4423 1349 4421 1349 4420 1349 4420 1349 4420 1349 4419 1348 4420 1348 4420 1348 4421 1348 4428 1347 4430 1347 M 4199 1350 4198 1350 4197 1349 4192 1349 4192 1350 4191 1350 4191 1350 4190 1349 4189 1349 4189 1349 4189 1349 4189 1349 4190 1349 4190 1349 4193 1349 4193 1349 4194 1349 4195 1349 4195 1349 4197 1349 4198 1349 4198 1349 4199 1349 4200 1349 4202 1349 4203 1349 4204 1349 4205 1349 4205 1349 4205 1349 4205 1350 4205 1350 4205 1350 4204 1350 4204 1350 4204 1350 4203 1350 4202 1350 4201 1350 4201 1350 4200 1350 4199 1350 4199 1350 M 3814 1350 3815 1350 3815 1350 3821 1349 3821 1349 3822 1349 3822 1349 3821 1349 3821 1349 3821 1350 3820 1350 3815 1350 3815 1350 3813 1350 3813 1350 3812 1350 3813 1350 3814 1350 M 4179 1350 4181 1350 4181 1350 4184 1350 4187 1350 4189 1351 4189 1351 4188 1351 4188 1351 4185 1351 4182 1351 4178 1350 4178 1350 4178 1350 4178 1350 4178 1350 4179 1350 4179 1350 M 5038 1359 5038 1357 5039 1357 5039 1357 5040 1357 5041 1356 5041 1355 5041 1355 5040 1355 5040 1355 5040 1354 5040 1354 5041 1352 5042 1351 5043 1351 5044 1352 5044 1352 5044 1352 5044 1353 5045 1353 5045 1353 5045 1354 5046 1354 5046 1354 5048 1354 5048 1354 5050 1355 5050 1355 5050 1355 5050 1355 5049 1355 5049 1355 5047 1356 5047 1356 5046 1357 5047 1357 5047 1357 5047 1357 5047 1357 5048 1358 5048 1358 5047 1358 5046 1358 5046 1358 5045 1358 5044 1359 5044 1359 5044 1359 5042 1359 5042 1359 5039 1359 5039 1359 5039 1359 5038 1359 M 5123 1354 5121 1354 5121 1354 5120 1354 5120 1354 5119 1353 5120 1353 5120 1353 5120 1353 5123 1354 5123 1354 5123 1354 M 5215 1355 5217 1356 5217 1356 5219 1357 5219 1357 5219 1357 5218 1357 5218 1357 5217 1358 5219 1359 5220 1359 5222 1359 5223 1359 5225 1359 5225 1359 5226 1359 5228 1359 5228 1359 5228 1359 5227 1359 5227 1359 5226 1359 5226 1359 5226 1358 5228 1358 5229 1358 5229 1358 5230 1358 5232 1358 5234 1358 5235 1358 5236 1358 5237 1358 5241 1358 5241 1358 5242 1358 5244 1358 5244 1358 5245 1358 5245 1358 5245 1358 5246 1358 5248 1359 5247 1359 5247 1360 5246 1360 5246 1360 5246 1360 5248 1361 5248 1361 5248 1361 5251 1361 5252 1361 5253 1361 5253 1361 5254 1361 5254 1361 5256 1361 5259 1360 5260 1360 5260 1360 5262 1360 5264 1360 5265 1361 5269 1361 5270 1361 5270 1361 5271 1361 5272 1361 5273 1361 5273 1361 5274 1362 5278 1363 5279 1363 5279 1363 5280 1363 5281 1363 5281 1362 5282 1362 5284 1362 5285 1362 5285 1362 5286 1362 5285 1362 5285 1363 5284 1363 5281 1365 5282 1365 5282 1366 5281 1366 5280 1366 5280 1366 5279 1366 5278 1366 5277 1367 5273 1367 5272 1367 5268 1368 5267 1368 5267 1368 5266 1368 5266 1368 5265 1368 5263 1368 5259 1368 5258 1368 5257 1368 5255 1368 5255 1368 5250 1368 5250 1368 5249 1368 5244 1368 5243 1368 5243 1368 5241 1368 5239 1367 5236 1366 5235 1366 5234 1366 5233 1365 5232 1365 5232 1365 5230 1365 5229 1365 5229 1365 5228 1365 5228 1365 5227 1365 5225 1365 5225 1365 5224 1365 5224 1364 5223 1364 5221 1364 5219 1363 5218 1363 5214 1362 5213 1362 5213 1362 5212 1362 5210 1362 5209 1361 5208 1361 5208 1361 5209 1361 5209 1360 5210 1360 5210 1359 5211 1358 5213 1356 5213 1355 5214 1355 5214 1355 5215 1355 5215 1355 M 4187 1357 4187 1357 4185 1358 4185 1358 4185 1358 4185 1358 4186 1358 4186 1358 4187 1358 4188 1358 4188 1358 4188 1358 4189 1359 4189 1359 4189 1359 4188 1359 4188 1359 4188 1359 4188 1359 4187 1359 4186 1359 4185 1359 4185 1360 4185 1360 4185 1360 4185 1362 4185 1362 4184 1362 4184 1362 4184 1362 4184 1362 4183 1361 4183 1361 4183 1361 4183 1360 4183 1360 4182 1360 4182 1359 4182 1359 4182 1360 4182 1360 4180 1360 4180 1360 4179 1360 4179 1360 4179 1360 4178 1360 4177 1359 4177 1359 4177 1359 4179 1358 4179 1358 4180 1357 4180 1357 4181 1357 4181 1357 4181 1357 4181 1357 4181 1358 4181 1358 4181 1358 4180 1358 4181 1358 4181 1359 4181 1359 4183 1358 4184 1358 4183 1357 4183 1357 4184 1357 4185 1356 4187 1356 4187 1356 4187 1357 M 4265 1365 4265 1365 4267 1366 4266 1366 4266 1366 4265 1366 4264 1367 4263 1366 4263 1366 4261 1366 4261 1366 4260 1366 4260 1366 4260 1366 4260 1366 4260 1366 4262 1367 4262 1367 4262 1367 4262 1367 4258 1367 4255 1367 4254 1367 4254 1367 4253 1367 4252 1366 4252 1366 4252 1366 4252 1366 4253 1366 4254 1366 4256 1366 4258 1366 4258 1366 4258 1366 4258 1366 4257 1366 4257 1366 4257 1366 4257 1365 4257 1365 4259 1365 4259 1365 4259 1365 4259 1365 4261 1365 4261 1365 4261 1365 4264 1365 4265 1365 M 4256 1367 4257 1367 4257 1368 4261 1368 4261 1368 4261 1368 4261 1368 4260 1368 4260 1368 4258 1369 4257 1368 4257 1368 4256 1368 4256 1367 M 4240 1368 4241 1368 4243 1368 4243 1368 4243 1368 4244 1369 4244 1369 4243 1369 4243 1369 4243 1369 4243 1369 4242 1369 4242 1369 4239 1369 4238 1369 4237 1369 4236 1369 4236 1369 4235 1369 4235 1369 4234 1369 4234 1369 4234 1368 4236 1368 4237 1368 4237 1368 4238 1368 4238 1368 4240 1368 4240 1368 4240 1368 M 4139 1371 4139 1371 4140 1371 4141 1371 4141 1371 4141 1371 4142 1371 4141 1371 4141 1371 4141 1371 4141 1371 4141 1371 4140 1371 4140 1370 4140 1370 4141 1370 4141 1370 4142 1370 4142 1370 4142 1370 4142 1370 4142 1371 4142 1371 4143 1371 4143 1371 4144 1371 4145 1371 4146 1371 4146 1371 4146 1371 4147 1371 4146 1371 4146 1371 4145 1372 4145 1372 4145 1372 4145 1372 4144 1372 4144 1372 4143 1372 4142 1372 4141 1372 4140 1371 4140 1371 4139 1371 4139 1371 4139 1371 M 4243 1372 4243 1372 4243 1373 4240 1373 4240 1373 4239 1373 4238 1373 4238 1373 4236 1373 4236 1373 4236 1373 4235 1372 4235 1372 4237 1371 4237 1371 4238 1371 4239 1371 4241 1371 4241 1371 4241 1371 4243 1372 M 4246 1374 4246 1374 4245 1374 4245 1373 4243 1373 4245 1372 4245 1372 4245 1372 4246 1371 4246 1371 4247 1371 4248 1371 4248 1371 4248 1371 4252 1372 4252 1372 4252 1372 4251 1373 4250 1373 4250 1372 4249 1372 4248 1372 4248 1372 4247 1373 4246 1374 M 4676 1379 4676 1379 4675 1379 4674 1379 4672 1379 4672 1379 4670 1379 4669 1378 4668 1378 4667 1378 4667 1378 4666 1378 4666 1378 4665 1378 4665 1378 4665 1378 4664 1377 4664 1377 4663 1377 4663 1377 4662 1377 4661 1377 4659 1377 4659 1377 4658 1377 4657 1377 4657 1376 4656 1376 4655 1376 4655 1375 4656 1375 4656 1375 4656 1375 4657 1375 4657 1375 4658 1375 4659 1375 4659 1375 4660 1375 4660 1375 4660 1375 4661 1375 4661 1375 4661 1375 4662 1375 4662 1375 4663 1374 4664 1374 4663 1374 4663 1374 4663 1373 4664 1373 4664 1372 4664 1372 4664 1372 4665 1372 4665 1372 4666 1372 4666 1372 4667 1372 4667 1372 4668 1372 4670 1372 4675 1373 4676 1373 4677 1373 4680 1373 4681 1373 4681 1373 4683 1373 4684 1373 4685 1373 4686 1373 4686 1373 4686 1374 4687 1374 4687 1374 4687 1374 4686 1375 4685 1375 4683 1377 4683 1377 4682 1377 4682 1377 4681 1377 4680 1377 4680 1377 4679 1377 4679 1378 4679 1378 4677 1379 4677 1379 4676 1379 M 4228 1373 4228 1372 4228 1372 4229 1372 4231 1373 4231 1373 4232 1373 4232 1373 4231 1373 4231 1373 4231 1373 4230 1373 4228 1373 4228 1373 4226 1373 4225 1373 4226 1373 4227 1373 4228 1374 4229 1374 4229 1374 4229 1374 4227 1374 4226 1374 4225 1374 4224 1374 4224 1374 4223 1374 4223 1373 4223 1373 4224 1373 4225 1373 4225 1373 4228 1373 M 4236 1374 4236 1374 4236 1374 4237 1374 4238 1374 4241 1374 4241 1374 4241 1374 4242 1374 4242 1374 4242 1374 4242 1374 4239 1374 4239 1374 4236 1374 M 4726 1376 4726 1376 4726 1375 4726 1375 4726 1375 4727 1375 4727 1375 4728 1375 4728 1375 4728 1375 4729 1375 4729 1375 4730 1375 4730 1375 4730 1376 4730 1376 4729 1376 4729 1376 4729 1376 4729 1376 4728 1376 4727 1376 4726 1376 M 5118 1382 5117 1382 5117 1382 5116 1382 5115 1381 5113 1380 5113 1380 5112 1379 5112 1379 5112 1379 5113 1378 5113 1378 5113 1377 5114 1377 5115 1377 5115 1376 5116 1376 5117 1376 5119 1376 5120 1376 5122 1376 5123 1376 5124 1376 5125 1376 5126 1376 5127 1376 5127 1377 5128 1377 5128 1377 5128 1377 5129 1378 5128 1380 5128 1380 5127 1381 5127 1381 5126 1381 5126 1381 5125 1381 5124 1381 5121 1382 5120 1382 5120 1382 5118 1382 M 5038 1377 5039 1377 5042 1377 5045 1378 5046 1379 5048 1379 5048 1379 5051 1380 5051 1381 5052 1381 5052 1382 5051 1382 5050 1383 5050 1383 5049 1382 5048 1382 5048 1382 5048 1382 5048 1382 5046 1381 5045 1381 5044 1380 5044 1380 5043 1380 5043 1380 5042 1380 5042 1380 5042 1379 5042 1379 5042 1379 5040 1378 5040 1378 5040 1378 5039 1378 5039 1378 5039 1378 5038 1378 5038 1378 5038 1378 5037 1377 5037 1376 5038 1377 5038 1377 M 4194 1378 4195 1378 4195 1378 4195 1378 4196 1379 4196 1379 4196 1379 4196 1379 4195 1380 4194 1380 4194 1380 4194 1380 4193 1380 4193 1379 4190 1379 4190 1379 4190 1379 4190 1379 4190 1379 4190 1378 4190 1378 4191 1378 4194 1378 M 4198 1379 4198 1379 4198 1379 4199 1379 4199 1379 4203 1378 4204 1378 4205 1378 4206 1378 4208 1379 4209 1379 4210 1379 4211 1379 4211 1379 4210 1379 4210 1379 4210 1380 4209 1380 4209 1380 4209 1379 4209 1379 4209 1379 4207 1379 4207 1379 4207 1380 4207 1380 4208 1380 4208 1380 4208 1380 4206 1380 4205 1380 4203 1380 4203 1379 4202 1379 4200 1379 4200 1379 4198 1379 M 4216 1380 4216 1380 4218 1380 4219 1380 4219 1380 4219 1380 4220 1380 4221 1380 4222 1380 4223 1380 4223 1380 4223 1380 4223 1381 4223 1381 4223 1381 4222 1381 4222 1381 4221 1381 4221 1381 4217 1381 4216 1381 4216 1381 4215 1381 4215 1381 4215 1381 4215 1380 4215 1380 4216 1380 M 4864 1383 4864 1383 4863 1383 4862 1383 4862 1383 4862 1383 4861 1383 4861 1383 4861 1383 4861 1383 4860 1383 4860 1382 4860 1382 4861 1382 4861 1382 4861 1382 4861 1382 4861 1382 4862 1382 4863 1382 4863 1381 4864 1381 4865 1381 4865 1381 4864 1381 4864 1382 4863 1382 4863 1382 4863 1382 4863 1382 4864 1382 4865 1382 4866 1382 4866 1382 4866 1382 4866 1383 4865 1383 4865 1383 4865 1383 4864 1383 4864 1383 4864 1383 M 5130 1383 5130 1383 5131 1383 5132 1383 5133 1383 5133 1383 5133 1383 5134 1383 5135 1382 5135 1382 5136 1382 5138 1382 5143 1382 5143 1382 5144 1382 5145 1382 5145 1382 5146 1382 5148 1383 5150 1383 5150 1383 5151 1383 5151 1383 5152 1383 5153 1384 5154 1384 5154 1384 5155 1384 5159 1386 5160 1386 5161 1386 5161 1386 5162 1386 5162 1387 5166 1388 5167 1389 5167 1390 5167 1390 5167 1390 5166 1390 5166 1391 5167 1391 5167 1392 5167 1393 5163 1393 5162 1393 5161 1393 5160 1393 5159 1393 5157 1393 5153 1392 5153 1392 5152 1392 5150 1393 5150 1393 5149 1393 5149 1393 5148 1393 5148 1392 5147 1392 5147 1392 5145 1392 5145 1392 5144 1392 5144 1392 5143 1392 5143 1392 5141 1392 5140 1392 5137 1392 5136 1392 5136 1391 5135 1391 5131 1391 5127 1390 5124 1389 5124 1389 5123 1389 5122 1389 5121 1389 5120 1389 5118 1390 5116 1390 5115 1390 5113 1391 5112 1391 5111 1391 5111 1391 5109 1391 5109 1391 5108 1391 5107 1391 5107 1391 5107 1391 5106 1391 5106 1390 5106 1390 5106 1390 5106 1390 5107 1389 5107 1389 5112 1389 5114 1389 5114 1389 5115 1389 5116 1389 5116 1389 5118 1389 5119 1388 5121 1388 5121 1387 5122 1387 5123 1386 5124 1385 5125 1384 5126 1384 5126 1383 5128 1383 5129 1383 5130 1383 M 4263 1387 4262 1386 4262 1386 4263 1386 4263 1386 4264 1386 4264 1385 4266 1385 4267 1385 4267 1384 4267 1384 4267 1384 4268 1383 4268 1384 4268 1384 4269 1384 4268 1385 4267 1385 4266 1386 4266 1386 4266 1386 4265 1386 4265 1386 4263 1386 4263 1387 M 4848 1393 4848 1393 4846 1392 4843 1390 4843 1388 4845 1387 4846 1387 4846 1386 4846 1386 4848 1385 4849 1386 4849 1387 4850 1387 4851 1387 4855 1387 4855 1386 4855 1386 4854 1386 4854 1384 4854 1384 4855 1384 4855 1384 4856 1385 4856 1385 4856 1385 4856 1386 4856 1386 4857 1386 4858 1385 4859 1385 4859 1384 4861 1384 4861 1384 4862 1384 4864 1384 4864 1385 4865 1385 4867 1385 4867 1385 4867 1385 4869 1385 4870 1386 4871 1387 4872 1386 4872 1386 4872 1386 4873 1386 4874 1386 4874 1386 4875 1387 4874 1388 4875 1388 4876 1388 4876 1388 4876 1388 4878 1388 4881 1388 4882 1388 4881 1389 4881 1389 4880 1389 4880 1389 4881 1390 4881 1390 4882 1390 4882 1389 4885 1389 4887 1389 4888 1388 4891 1388 4892 1388 4892 1388 4893 1388 4894 1388 4893 1389 4893 1389 4891 1389 4890 1391 4891 1391 4892 1390 4893 1390 4893 1390 4894 1390 4896 1391 4896 1391 4897 1392 4897 1392 4896 1393 4897 1393 4897 1393 4898 1393 4898 1394 4899 1395 4898 1396 4897 1397 4895 1397 4894 1397 4893 1398 4893 1398 4892 1398 4892 1399 4892 1399 4892 1399 4893 1399 4893 1399 4894 1400 4894 1400 4893 1400 4893 1401 4892 1402 4891 1404 4891 1405 4892 1405 4893 1406 4893 1406 4891 1407 4890 1408 4889 1408 4888 1407 4888 1407 4887 1407 4886 1407 4886 1407 4885 1407 4885 1407 4884 1407 4884 1407 4883 1407 4883 1407 4881 1406 4880 1406 4879 1405 4878 1405 4878 1405 4877 1405 4877 1405 4877 1405 4876 1405 4876 1404 4875 1404 4875 1404 4874 1404 4873 1403 4871 1403 4871 1403 4870 1403 4869 1403 4869 1403 4868 1402 4868 1402 4867 1402 4867 1402 4866 1402 4866 1402 4864 1402 4863 1402 4863 1402 4862 1402 4861 1402 4861 1402 4860 1401 4860 1401 4858 1400 4857 1400 4855 1400 4854 1400 4854 1400 4853 1400 4852 1400 4852 1400 4851 1400 4850 1400 4850 1400 4848 1399 4847 1399 4847 1399 4845 1399 4845 1399 4843 1398 4841 1398 4840 1398 4839 1398 4838 1398 4833 1398 4832 1397 4832 1397 4831 1397 4831 1397 4831 1396 4832 1396 4833 1396 4833 1396 4834 1396 4835 1396 4837 1397 4837 1397 4837 1397 4838 1397 4841 1398 4841 1398 4842 1398 4842 1398 4843 1398 4844 1397 4845 1397 4845 1396 4845 1396 4846 1394 4846 1394 4847 1394 4848 1394 4848 1394 4848 1394 4849 1394 4849 1394 4850 1394 4850 1393 4850 1393 4849 1393 4849 1393 4848 1393 M 4263 1385 4263 1385 4261 1387 4261 1387 4261 1387 4260 1387 4260 1387 4255 1387 4255 1387 4256 1386 4257 1386 4257 1386 4258 1386 4260 1386 4260 1386 4261 1386 4262 1386 4262 1385 4262 1385 4263 1385 4263 1385 4263 1385 M 4884 1388 4883 1388 4883 1387 4884 1386 4885 1388 4885 1388 4885 1388 4884 1388 M 4158 1389 4158 1389 4156 1388 4155 1388 4154 1388 4154 1388 4155 1387 4156 1387 4156 1387 4158 1388 4158 1388 4159 1388 4159 1388 4159 1388 4159 1389 4159 1389 4158 1389 M 4078 1390 4078 1390 4078 1389 4079 1389 4079 1389 4080 1389 4081 1388 4082 1388 4083 1388 4084 1388 4084 1388 4087 1387 4089 1387 4090 1387 4090 1388 4087 1389 4087 1389 4086 1389 4083 1389 4082 1389 4081 1389 4081 1389 4081 1389 4081 1389 4082 1389 4081 1389 4080 1389 4079 1389 4079 1390 4078 1390 4079 1390 4078 1390 4078 1390 4078 1390 M 4090 1388 4091 1388 4091 1388 4092 1388 4092 1388 4092 1388 4093 1388 4093 1388 4095 1388 4096 1388 4097 1388 4098 1389 4098 1389 4099 1389 4099 1389 4100 1389 4100 1389 4101 1389 4101 1390 4101 1390 4101 1390 4100 1390 4100 1389 4100 1389 4099 1389 4099 1389 4097 1389 4094 1388 4094 1388 4094 1388 4092 1388 4091 1388 4090 1388 4090 1388 4090 1388 M 4910 1388 4910 1388 4910 1388 4911 1388 4912 1388 4913 1388 4914 1388 4915 1388 4916 1388 4917 1388 4920 1389 4920 1389 4919 1389 4914 1389 4910 1388 4910 1388 M 4900 1395 4900 1395 4900 1394 4899 1393 4897 1392 4897 1391 4897 1390 4898 1390 4899 1389 4899 1389 4900 1390 4900 1390 4901 1390 4902 1389 4902 1389 4902 1388 4901 1388 4901 1388 4901 1388 4902 1388 4903 1388 4904 1388 4904 1388 4907 1388 4907 1388 4908 1388 4911 1389 4913 1389 4915 1389 4916 1389 4919 1389 4921 1390 4921 1391 4923 1391 4925 1391 4925 1391 4924 1391 4924 1392 4926 1393 4928 1392 4929 1392 4930 1392 4930 1392 4931 1393 4934 1393 4935 1394 4935 1394 4933 1395 4932 1395 4933 1395 4934 1395 4934 1395 4935 1395 4936 1395 4936 1394 4937 1394 4937 1395 4937 1396 4936 1396 4936 1396 4935 1397 4935 1397 4930 1398 4927 1398 4926 1398 4925 1398 4925 1398 4924 1398 4923 1398 4923 1399 4923 1399 4922 1400 4922 1400 4921 1400 4919 1400 4918 1400 4918 1400 4917 1400 4916 1400 4915 1401 4914 1401 4914 1401 4912 1401 4912 1401 4911 1401 4911 1401 4910 1401 4910 1401 4909 1401 4905 1402 4903 1403 4902 1403 4901 1404 4900 1404 4899 1404 4898 1404 4897 1404 4896 1404 4895 1405 4896 1405 4896 1406 4897 1406 4896 1406 4896 1406 4895 1406 4894 1406 4893 1405 4893 1405 4892 1404 4893 1401 4895 1400 4894 1399 4894 1399 4893 1399 4893 1399 4893 1398 4893 1398 4894 1398 4895 1397 4896 1397 4897 1397 4898 1397 4898 1396 4899 1396 4900 1395 M 3991 1396 3991 1395 3992 1395 3992 1394 3992 1394 3993 1394 3993 1394 3994 1394 3994 1393 3994 1393 3994 1392 3993 1391 3993 1391 3993 1391 3993 1391 3992 1391 3992 1390 3992 1390 3993 1390 3993 1390 3996 1389 3997 1389 4000 1389 4001 1389 4001 1389 4005 1389 4007 1388 4007 1388 4008 1388 4009 1388 4010 1389 4013 1389 4013 1389 4011 1390 4009 1392 4010 1392 4012 1392 4013 1392 4015 1392 4015 1391 4016 1391 4016 1391 4016 1391 4016 1391 4017 1391 4017 1391 4019 1392 4019 1392 4020 1393 4020 1393 4020 1394 4020 1394 4019 1394 4018 1394 4017 1394 4015 1394 4015 1394 4014 1394 4014 1394 4014 1394 4014 1394 4013 1394 4013 1394 4012 1394 4010 1395 4010 1395 4009 1395 4008 1395 4008 1394 4007 1394 4005 1395 4002 1395 4002 1395 4001 1396 4000 1396 4000 1396 4000 1396 3999 1396 3998 1396 3997 1396 3997 1396 3996 1396 3996 1396 3996 1395 3995 1395 3995 1395 3995 1395 3994 1395 3993 1396 3993 1396 3993 1396 3994 1396 3994 1396 3994 1396 3995 1396 3995 1396 3995 1396 3992 1396 3992 1396 3991 1396 3991 1396 3991 1396 3991 1396 M 4895 1390 4895 1390 4895 1389 4897 1389 4898 1389 4898 1389 4898 1389 4897 1390 4897 1390 4895 1390 M 3756 1436 3756 1436 3756 1436 3755 1435 3753 1435 3752 1434 3751 1434 3751 1434 3750 1434 3750 1434 3749 1434 3749 1433 3749 1433 3748 1432 3747 1432 3745 1432 3745 1433 3745 1433 3746 1433 3747 1433 3749 1434 3750 1434 3748 1434 3746 1434 3746 1434 3745 1433 3742 1432 3742 1432 3742 1433 3742 1433 3741 1433 3738 1433 3738 1432 3737 1432 3735 1432 3734 1432 3733 1432 3732 1432 3732 1431 3730 1431 3730 1431 3730 1431 3729 1431 3728 1431 3731 1430 3731 1430 3732 1430 3732 1431 3733 1429 3733 1429 3732 1428 3730 1427 3730 1427 3732 1427 3735 1426 3737 1426 3737 1426 3738 1426 3738 1426 3738 1427 3738 1427 3737 1426 3736 1426 3736 1427 3737 1427 3739 1427 3739 1427 3741 1427 3741 1426 3741 1426 3740 1427 3740 1427 3737 1426 3737 1426 3734 1426 3734 1426 3733 1425 3732 1425 3731 1425 3731 1425 3730 1425 3730 1425 3729 1424 3730 1424 3731 1423 3732 1422 3733 1422 3735 1422 3736 1422 3737 1421 3736 1421 3736 1421 3733 1422 3731 1422 3730 1422 3730 1423 3730 1423 3730 1424 3729 1424 3729 1424 3727 1423 3726 1421 3727 1420 3728 1420 3728 1420 3727 1419 3725 1420 3725 1420 3724 1421 3722 1420 3722 1420 3722 1421 3721 1421 3720 1422 3718 1421 3715 1421 3715 1419 3714 1419 3714 1419 3712 1420 3712 1421 3711 1421 3710 1420 3710 1420 3709 1419 3708 1420 3708 1420 3709 1421 3708 1421 3705 1421 3702 1421 3700 1420 3698 1419 3696 1417 3696 1416 3696 1415 3696 1414 3696 1414 3697 1414 3697 1413 3697 1413 3699 1411 3699 1411 3700 1411 3703 1410 3703 1410 3704 1411 3706 1411 3706 1411 3707 1411 3710 1411 3710 1411 3711 1412 3711 1412 3712 1411 3712 1409 3712 1409 3713 1408 3714 1408 3714 1408 3715 1408 3717 1407 3717 1407 3717 1407 3716 1406 3718 1404 3720 1404 3719 1404 3720 1403 3721 1403 3722 1403 3723 1403 3722 1403 3721 1403 3720 1403 3719 1403 3719 1403 3718 1404 3717 1404 3717 1403 3718 1402 3720 1402 3721 1402 3721 1402 3722 1402 3723 1402 3724 1402 3724 1402 3725 1402 3722 1402 3722 1402 3721 1402 3720 1402 3719 1402 3719 1402 3717 1402 3715 1402 3714 1402 3712 1401 3712 1401 3715 1399 3716 1399 3717 1398 3719 1398 3720 1398 3721 1398 3722 1398 3722 1398 3722 1398 3724 1398 3727 1399 3728 1398 3728 1398 3727 1398 3727 1398 3726 1398 3725 1398 3725 1398 3724 1397 3724 1396 3725 1396 3726 1396 3727 1396 3728 1396 3726 1396 3725 1396 3725 1396 3724 1396 3724 1395 3724 1394 3726 1393 3727 1393 3729 1393 3729 1393 3730 1393 3730 1393 3730 1393 3731 1392 3732 1392 3733 1392 3734 1392 3734 1392 3737 1392 3737 1392 3737 1392 3738 1392 3738 1392 3740 1392 3740 1392 3741 1392 3743 1392 3745 1391 3746 1391 3747 1390 3750 1390 3752 1390 3752 1390 3753 1390 3753 1390 3755 1390 3756 1390 3757 1391 3757 1391 3758 1391 3759 1391 3761 1391 3761 1391 3762 1391 3762 1391 3765 1391 3765 1391 3766 1391 3766 1391 3766 1392 3771 1392 3773 1392 3776 1393 3776 1393 3777 1393 3779 1394 3778 1395 3776 1395 3772 1395 3770 1395 3767 1395 3766 1396 3768 1396 3768 1396 3770 1396 3773 1395 3774 1395 3776 1396 3777 1396 3776 1396 3775 1397 3774 1397 3774 1397 3773 1396 3772 1396 3771 1397 3770 1397 3770 1397 3767 1397 3767 1397 3766 1397 3764 1397 3763 1397 3764 1397 3764 1397 3768 1397 3769 1397 3770 1397 3770 1397 3771 1397 3771 1397 3772 1397 3773 1397 3774 1397 3773 1398 3773 1399 3772 1400 3772 1400 3771 1400 3770 1400 3770 1400 3769 1400 3768 1400 3767 1400 3767 1400 3766 1400 3765 1400 3764 1400 3764 1400 3763 1400 3761 1400 3760 1400 3761 1400 3763 1400 3767 1401 3767 1401 3769 1402 3768 1402 3766 1402 3765 1402 3764 1404 3763 1404 3763 1404 3761 1403 3761 1403 3760 1403 3759 1403 3758 1403 3759 1403 3760 1403 3761 1403 3762 1404 3762 1405 3762 1405 3760 1405 3759 1405 3759 1405 3759 1405 3758 1405 3758 1405 3756 1405 3756 1405 3759 1406 3761 1406 3761 1406 3761 1406 3761 1407 3761 1408 3762 1409 3763 1409 3762 1410 3762 1410 3761 1410 3761 1410 3760 1411 3759 1411 3759 1412 3760 1412 3759 1413 3758 1413 3758 1413 3757 1413 3757 1414 3758 1414 3758 1414 3759 1414 3760 1414 3760 1414 3761 1414 3762 1414 3762 1415 3762 1415 3762 1416 3762 1416 3762 1417 3764 1419 3765 1419 3766 1420 3766 1420 3767 1420 3767 1421 3768 1422 3770 1423 3770 1423 3770 1424 3771 1424 3773 1425 3773 1425 3774 1426 3774 1426 3775 1426 3776 1426 3776 1426 3778 1427 3778 1427 3779 1428 3780 1428 3784 1430 3785 1430 3786 1431 3787 1431 3789 1431 3793 1432 3796 1433 3795 1433 3794 1433 3793 1434 3793 1434 3793 1435 3792 1435 3790 1434 3788 1434 3785 1434 3782 1433 3782 1433 3781 1433 3783 1434 3785 1434 3786 1434 3787 1434 3789 1435 3791 1435 3790 1435 3790 1435 3788 1435 3787 1435 3784 1435 3781 1434 3780 1434 3780 1434 3779 1434 3778 1434 3777 1433 3778 1433 3778 1433 3779 1433 3778 1432 3778 1432 3777 1433 3775 1433 3773 1434 3773 1434 3774 1434 3775 1434 3775 1434 3775 1434 3775 1434 3776 1434 3777 1434 3780 1435 3778 1436 3777 1436 3777 1436 3776 1436 3775 1435 3776 1436 3777 1436 3778 1435 3778 1435 3778 1435 3777 1435 3776 1435 3776 1435 3775 1435 3774 1435 3774 1435 3773 1434 3772 1434 3772 1434 3770 1434 3770 1434 3771 1434 3771 1434 3772 1435 3772 1435 3771 1435 3770 1434 3769 1434 3768 1434 3767 1434 3767 1434 3768 1434 3769 1435 3769 1435 3770 1435 3770 1435 3767 1435 3765 1435 3765 1434 3765 1434 3766 1434 3766 1434 3766 1434 3765 1433 3764 1433 3763 1433 3764 1434 3763 1433 3761 1433 3760 1432 3757 1434 3757 1434 3758 1434 3758 1434 3758 1435 3758 1435 3757 1436 3756 1436 M 4011 1391 4011 1391 4012 1391 4012 1391 4013 1390 4013 1390 4013 1390 4014 1390 4014 1390 4015 1390 4015 1390 4015 1391 4014 1391 4013 1392 4011 1392 4011 1392 4011 1391 4011 1391 M 4092 1394 4092 1394 4091 1393 4091 1393 4091 1393 4092 1393 4094 1393 4096 1393 4097 1394 4098 1394 4098 1394 4099 1393 4099 1393 4099 1393 4100 1394 4100 1394 4100 1394 4100 1394 4101 1394 4100 1394 4100 1394 4099 1394 4096 1394 4095 1394 4095 1394 4094 1394 4093 1394 4093 1394 4092 1394 M 4792 1396 4791 1396 4790 1396 4789 1396 4786 1395 4787 1394 4788 1394 4789 1394 4790 1394 4791 1394 4792 1394 4793 1394 4793 1394 4794 1394 4794 1394 4795 1395 4796 1395 4796 1395 4796 1395 4795 1396 4794 1396 4792 1396 M 4058 1396 4060 1395 4060 1395 4060 1395 4061 1395 4061 1395 4063 1394 4064 1394 4065 1394 4071 1395 4071 1395 4071 1395 4072 1395 4072 1396 4072 1396 4072 1396 4072 1395 4071 1395 4070 1395 4069 1395 4069 1395 4069 1395 4068 1395 4068 1395 4068 1395 4067 1397 4067 1397 4067 1398 4068 1398 4068 1398 4068 1398 4068 1399 4068 1399 4067 1399 4067 1399 4067 1399 4063 1398 4060 1397 4059 1396 4058 1396 4058 1396 M 4132 1398 4134 1397 4135 1397 4135 1397 4136 1396 4137 1396 4138 1395 4139 1395 4139 1395 4139 1395 4140 1395 4140 1395 4140 1395 4141 1395 4143 1396 4143 1396 4145 1398 4145 1398 4145 1400 4146 1401 4146 1401 4146 1401 4145 1401 4143 1401 4143 1401 4143 1401 4142 1401 4140 1401 4139 1401 4138 1401 4137 1401 4136 1401 4134 1400 4130 1400 4130 1399 4130 1399 4130 1399 4131 1399 4131 1398 4132 1398 M 4824 1398 4824 1398 4824 1397 4824 1397 4825 1397 4826 1397 4826 1397 4827 1397 4830 1398 4829 1398 4829 1398 4828 1398 4825 1398 4825 1398 4824 1398 M 4935 1398 4934 1398 4932 1398 4932 1398 4932 1398 4932 1398 4933 1397 4934 1397 4934 1397 4935 1397 4937 1397 4937 1397 4939 1398 4938 1398 4938 1398 4937 1398 4935 1398 4935 1398 M 4829 1397 4829 1397 4829 1397 4832 1398 4833 1398 4833 1398 4833 1398 4835 1398 4836 1398 4837 1399 4839 1399 4840 1399 4841 1399 4842 1399 4842 1399 4843 1399 4843 1399 4844 1399 4845 1399 4847 1400 4849 1400 4849 1400 4848 1400 4847 1400 4846 1400 4845 1400 4844 1400 4844 1400 4844 1400 4843 1400 4842 1400 4841 1399 4840 1399 4839 1399 4838 1399 4837 1400 4836 1399 4836 1399 4835 1399 4835 1399 4829 1398 4828 1398 4829 1397 M 4938 1400 4936 1400 4932 1400 4928 1400 4925 1400 4924 1400 4924 1399 4925 1398 4926 1398 4926 1398 4928 1398 4928 1398 4932 1398 4932 1398 4934 1398 4937 1399 4939 1399 4940 1400 4939 1400 4939 1400 4938 1400 M 4909 1402 4909 1402 4909 1402 4910 1402 4910 1401 4911 1401 4911 1401 4912 1401 4912 1401 4913 1401 4913 1401 4914 1401 4914 1401 4916 1401 4917 1401 4918 1400 4922 1400 4924 1400 4924 1400 4928 1400 4928 1400 4930 1400 4933 1400 4935 1401 4939 1401 4941 1401 4939 1402 4938 1402 4938 1402 4937 1402 4934 1402 4931 1401 4930 1401 4930 1401 4928 1401 4926 1402 4925 1402 4923 1402 4922 1402 4920 1402 4919 1402 4918 1402 4915 1402 4910 1402 4910 1402 4909 1402 M 4921 1402 4923 1402 4927 1402 4927 1402 4928 1402 4929 1402 4930 1402 4931 1402 4932 1402 4933 1402 4934 1402 4934 1402 4935 1403 4935 1403 4934 1403 4934 1403 4933 1403 4933 1403 4932 1404 4932 1404 4931 1404 4931 1404 4930 1404 4930 1404 4929 1404 4929 1404 4928 1404 4927 1404 4927 1404 4927 1404 4926 1404 4925 1404 4925 1404 4924 1403 4923 1403 4923 1403 4922 1403 4922 1403 4922 1403 4921 1402 M 4898 1406 4898 1406 4898 1405 4898 1405 4899 1404 4899 1404 4900 1404 4900 1404 4901 1404 4901 1404 4902 1404 4903 1404 4904 1404 4905 1403 4906 1403 4906 1403 4907 1403 4907 1403 4908 1403 4909 1403 4910 1403 4911 1403 4915 1402 4916 1402 4916 1402 4917 1402 4919 1403 4921 1403 4922 1403 4929 1405 4931 1405 4931 1405 4931 1405 4933 1405 4936 1405 4936 1405 4937 1405 4937 1405 4937 1405 4939 1405 4939 1405 4940 1405 4940 1405 4940 1406 4941 1406 4941 1406 4942 1406 4943 1407 4943 1407 4943 1407 4943 1407 4943 1407 4942 1407 4942 1407 4942 1407 4941 1408 4941 1408 4942 1408 4942 1408 4944 1409 4944 1409 4944 1409 4943 1409 4943 1409 4939 1410 4940 1410 4941 1410 4942 1410 4942 1410 4943 1410 4943 1410 4942 1411 4941 1411 4939 1411 4936 1411 4935 1411 4934 1411 4932 1411 4931 1411 4927 1410 4927 1410 4928 1410 4926 1409 4923 1409 4920 1408 4919 1407 4918 1407 4914 1406 4914 1406 4913 1406 4912 1406 4912 1405 4911 1405 4910 1405 4909 1405 4907 1405 4905 1406 4904 1406 4900 1406 4898 1406 M 4103 1407 4103 1407 4103 1407 4104 1407 4105 1406 4106 1406 4107 1406 4108 1405 4109 1405 4109 1405 4109 1405 4109 1405 4109 1404 4110 1404 4110 1404 4110 1404 4110 1404 4110 1404 4114 1403 4114 1403 4115 1402 4115 1402 4116 1402 4118 1403 4119 1403 4123 1403 4124 1403 4124 1403 4125 1404 4126 1404 4127 1404 4127 1404 4127 1405 4127 1405 4124 1406 4122 1406 4121 1406 4120 1407 4120 1407 4119 1407 4118 1407 4118 1407 4118 1408 4117 1408 4117 1408 4114 1408 4112 1408 4111 1408 4108 1408 4108 1408 4108 1408 4107 1408 4107 1408 4106 1408 4106 1408 4104 1408 4104 1408 4103 1408 4103 1408 4103 1408 4103 1407 4103 1407 M 4898 1410 4898 1410 4897 1409 4898 1409 4897 1409 4897 1408 4896 1408 4896 1408 4896 1408 4896 1408 4896 1407 4896 1407 4896 1407 4896 1407 4897 1407 4897 1407 4897 1407 4898 1407 4898 1407 4898 1407 4898 1407 4898 1407 4898 1407 4898 1408 4898 1408 4898 1408 4899 1408 4899 1409 4899 1409 4899 1409 4899 1409 4898 1410 M 4904 1413 4904 1413 4906 1413 4906 1413 4906 1413 4906 1414 4903 1413 4903 1413 4902 1413 4902 1412 4902 1412 4903 1412 4903 1412 4904 1413 M 5087 1418 5086 1418 5086 1418 5085 1418 5087 1417 5088 1417 5089 1417 5090 1417 5090 1417 5091 1418 5090 1418 5090 1418 5090 1418 5089 1418 5088 1418 5087 1418 M 00 1429 00 1420 01 1420 02 1420 06 1419 08 1419 11 1420 12 1419 13 1419 15 1419 20 1419 23 1419 25 1420 26 1420 27 1420 27 1420 28 1421 29 1421 29 1421 29 1421 30 1421 31 1421 32 1421 32 1422 33 1422 35 1423 36 1423 37 1424 38 1424 38 1424 39 1424 39 1424 40 1424 41 1424 41 1425 40 1426 40 1426 38 1427 37 1427 33 1428 32 1428 31 1428 31 1428 30 1428 29 1428 28 1428 28 1428 27 1428 26 1428 25 1428 24 1429 22 1429 20 1429 19 1429 18 1429 18 1429 17 1429 15 1429 12 1430 12 1430 11 1430 08 1430 07 1430 04 1429 01 1429 00 1428 00 1429 M 5079 1420 5079 1420 5078 1421 5076 1421 5076 1422 5074 1422 5074 1422 5073 1422 5072 1421 5072 1421 5072 1421 5071 1421 5068 1421 5068 1421 5067 1421 5069 1421 5069 1421 5069 1421 5069 1421 5070 1421 5069 1422 5069 1422 5069 1422 5069 1422 5068 1422 5065 1421 5065 1421 5063 1420 5063 1420 5064 1420 5067 1419 5068 1419 5068 1419 5070 1419 5075 1419 5075 1419 5076 1419 5077 1419 5077 1419 5078 1419 5078 1420 5078 1420 5079 1420 M 5750 1420 5750 1429 5750 1429 5749 1429 5748 1429 5747 1429 5747 1429 5747 1429 5746 1430 5746 1430 5745 1430 5745 1430 5742 1430 5741 1431 5741 1430 5740 1430 5740 1430 5740 1430 5740 1430 5739 1430 5738 1430 5736 1431 5735 1431 5734 1431 5733 1431 5732 1431 5732 1432 5731 1432 5731 1432 5731 1432 5731 1432 5731 1431 5730 1430 5729 1430 5728 1429 5728 1428 5728 1428 5728 1427 5728 1427 5729 1427 5732 1425 5732 1425 5733 1425 5734 1424 5736 1424 5737 1424 5737 1424 5738 1423 5740 1422 5741 1422 5742 1422 5742 1421 5743 1421 5744 1421 5744 1421 5745 1421 5746 1421 5746 1421 5748 1421 5748 1420 5748 1420 5748 1420 5748 1420 5749 1420 5750 1420 5750 1420 M 3722 1429 3722 1429 3722 1428 3721 1428 3718 1427 3718 1426 3718 1426 3716 1425 3716 1425 3715 1425 3715 1425 3714 1425 3714 1425 3714 1425 3714 1425 3713 1425 3712 1425 3711 1425 3711 1425 3711 1425 3710 1424 3710 1424 3710 1424 3709 1424 3709 1424 3709 1424 3709 1423 3709 1423 3709 1423 3710 1423 3712 1423 3712 1423 3717 1422 3718 1422 3718 1422 3719 1422 3719 1422 3720 1423 3720 1423 3721 1424 3722 1424 3722 1424 3722 1424 3721 1424 3721 1424 3720 1424 3720 1423 3719 1423 3718 1423 3718 1422 3717 1423 3718 1423 3718 1424 3719 1424 3721 1424 3723 1425 3723 1425 3723 1425 3724 1425 3724 1425 3724 1425 3724 1425 3724 1425 3723 1425 3723 1424 3724 1424 3724 1424 3724 1424 3724 1424 3725 1424 3725 1425 3725 1426 3724 1427 3724 1427 3723 1427 3723 1427 3723 1427 3723 1427 3722 1427 3722 1427 3722 1428 3723 1428 3723 1428 3723 1429 3724 1429 3724 1429 3724 1429 3722 1429 3722 1429 3722 1429 3722 1429 3722 1429 M 4190 1430 4190 1430 4190 1429 4190 1429 4190 1429 4190 1429 4191 1429 4191 1429 4192 1429 4193 1429 4193 1429 4193 1429 4193 1430 4193 1430 4192 1430 4192 1430 4191 1430 4191 1430 4191 1430 4190 1430 M 4203 1430 4202 1430 4202 1429 4202 1429 4202 1429 4202 1429 4204 1429 4204 1429 4204 1429 4205 1430 4205 1430 4204 1431 4204 1431 4204 1430 4203 1430 M 5442 1431 5442 1431 5442 1431 5440 1431 5439 1431 5439 1431 5438 1431 5438 1431 5438 1431 5438 1431 5437 1430 5437 1430 5439 1430 5439 1430 5439 1430 5441 1430 5442 1431 5442 1431 M 4202 1438 4202 1437 4202 1436 4202 1435 4203 1434 4203 1433 4204 1432 4204 1432 4205 1431 4205 1431 4205 1431 4206 1431 4207 1431 4208 1432 4208 1433 4208 1433 4208 1433 4208 1433 4208 1433 4207 1433 4207 1433 4207 1433 4206 1434 4206 1434 4205 1434 4205 1434 4204 1436 4205 1436 4205 1436 4205 1436 4206 1437 4206 1437 4205 1437 4202 1438 4202 1438 4202 1438 4202 1438 M 5458 1433 5457 1433 5457 1432 5454 1432 5454 1432 5454 1431 5455 1431 5455 1431 5457 1432 5457 1432 5458 1433 5458 1433 M 3786 1436 3786 1436 3785 1436 3784 1436 3784 1436 3783 1435 3783 1435 3783 1435 3783 1435 3788 1436 3789 1436 3789 1436 3789 1436 3789 1436 3789 1436 3787 1437 3787 1437 3787 1437 3786 1436 M 4207 1436 4206 1436 4207 1435 4207 1435 4210 1435 4210 1435 4210 1436 4209 1437 4208 1437 4208 1437 4208 1437 4208 1437 4207 1436 4207 1436 M 4210 1437 4211 1437 4210 1438 4210 1438 4209 1438 4209 1438 4209 1438 4208 1439 4207 1439 4207 1439 4207 1439 4207 1438 4207 1437 4210 1436 4210 1436 4210 1436 4211 1436 4211 1436 4211 1436 4211 1437 4210 1437 4210 1437 4209 1437 4210 1437 4210 1437 M 3832 1450 3831 1449 3831 1449 3830 1449 3829 1449 3827 1449 3827 1449 3826 1448 3826 1448 3827 1448 3827 1448 3827 1447 3824 1446 3824 1446 3823 1446 3822 1446 3819 1446 3817 1446 3817 1445 3817 1446 3819 1446 3819 1447 3818 1447 3818 1447 3812 1444 3812 1444 3811 1444 3811 1443 3811 1443 3811 1442 3811 1442 3810 1442 3809 1441 3808 1440 3808 1440 3809 1440 3811 1440 3812 1441 3812 1441 3814 1441 3815 1441 3814 1440 3812 1440 3812 1440 3811 1439 3813 1438 3815 1438 3817 1437 3818 1437 3818 1437 3819 1438 3821 1438 3822 1439 3823 1439 3823 1439 3824 1439 3824 1440 3825 1440 3828 1441 3830 1442 3830 1442 3831 1443 3832 1443 3835 1443 3837 1445 3838 1445 3839 1445 3840 1445 3841 1446 3842 1448 3840 1449 3838 1449 3837 1450 3836 1450 3836 1449 3835 1449 3834 1449 3834 1449 3833 1449 3832 1449 3832 1449 3832 1450 M 4197 1441 4197 1441 4197 1441 4197 1441 4199 1440 4199 1440 4200 1441 4202 1441 4202 1441 4202 1441 4203 1441 4202 1442 4202 1442 4202 1443 4201 1443 4201 1442 4200 1442 4200 1442 4199 1442 4199 1442 4197 1441 M 5581 1448 5579 1448 5579 1448 5579 1448 5579 1448 5579 1449 5579 1450 5579 1450 5579 1450 5579 1450 5578 1451 5578 1451 5578 1451 5578 1451 5577 1451 5577 1451 5573 1451 5572 1451 5572 1451 5569 1451 5569 1451 5564 1450 5561 1449 5560 1449 5560 1449 5559 1448 5559 1448 5559 1448 5557 1448 5555 1448 5555 1448 5555 1447 5554 1447 5554 1447 5554 1447 5555 1447 5557 1446 5557 1446 5558 1445 5558 1445 5561 1444 5562 1444 5563 1444 5563 1444 5564 1444 5567 1445 5567 1445 5568 1445 5570 1445 5571 1445 5571 1445 5572 1446 5572 1446 5573 1446 5575 1446 5576 1446 5577 1446 5578 1446 5580 1446 5581 1447 5581 1447 5581 1447 5581 1447 5582 1447 5581 1447 5581 1448 M 5458 1452 5458 1451 5457 1451 5457 1450 5458 1450 5458 1450 5458 1450 5458 1450 5459 1450 5460 1450 5460 1450 5460 1451 5460 1451 5460 1451 5460 1451 5459 1451 5459 1452 5459 1452 5458 1452 M 5452 1454 5453 1453 5453 1453 5453 1452 5453 1452 5453 1452 5453 1452 5453 1451 5454 1450 5454 1450 5455 1450 5455 1450 5456 1451 5456 1451 5456 1451 5457 1451 5457 1453 5456 1453 5456 1453 5456 1454 5456 1454 5455 1454 5454 1454 5454 1454 5452 1454 M 3946 1452 3946 1452 3946 1452 3947 1452 3947 1451 3948 1451 3950 1451 3950 1451 3950 1451 3951 1451 3951 1451 3951 1452 3951 1452 3951 1452 3950 1453 3950 1453 3949 1453 3949 1453 3949 1453 3948 1453 3946 1453 3945 1453 3946 1452 M 5453 1462 5453 1462 5453 1462 5454 1462 5454 1461 5454 1461 5454 1461 5454 1460 5453 1460 5452 1460 5451 1459 5450 1459 5449 1459 5449 1459 5449 1459 5449 1459 5448 1458 5448 1458 5449 1457 5449 1456 5449 1456 5449 1456 5449 1455 5449 1455 5449 1455 5449 1455 5448 1454 5448 1454 5448 1454 5448 1454 5448 1454 5448 1453 5448 1453 5448 1453 5448 1453 5451 1452 5451 1452 5452 1452 5452 1452 5453 1452 5453 1452 5453 1453 5451 1454 5452 1455 5452 1456 5452 1457 5453 1459 5453 1459 5453 1459 5453 1460 5454 1460 5454 1460 5454 1460 5454 1460 5455 1461 5455 1461 5455 1461 5455 1461 5455 1462 5455 1462 5454 1462 5454 1462 5453 1462 M 3645 1459 3646 1458 3646 1457 3646 1457 3646 1456 3647 1456 3648 1455 3648 1455 3648 1455 3649 1455 3651 1454 3651 1453 3652 1453 3652 1453 3655 1453 3656 1452 3657 1452 3658 1452 3660 1452 3662 1452 3662 1452 3663 1452 3663 1453 3664 1453 3665 1453 3667 1454 3669 1454 3669 1454 3672 1455 3675 1456 3676 1456 3676 1456 3677 1457 3679 1458 3679 1458 3679 1459 3678 1459 3676 1460 3676 1461 3675 1460 3676 1460 3676 1459 3676 1459 3677 1459 3677 1458 3677 1458 3676 1458 3673 1459 3671 1460 3671 1461 3670 1462 3669 1462 3668 1462 3665 1463 3665 1463 3660 1464 3656 1465 3655 1465 3654 1465 3651 1465 3645 1462 3645 1459 3645 1459 M 3945 1454 3945 1454 3945 1454 3944 1454 3944 1454 3944 1453 3944 1453 3945 1453 3949 1454 3949 1454 3948 1455 3947 1455 3947 1455 3947 1455 3947 1455 3945 1454 3945 1454 M 3421 1454 3422 1454 3424 1455 3425 1455 3424 1455 3422 1455 3421 1455 3419 1455 3419 1455 3418 1455 3418 1455 3418 1454 3418 1454 3418 1454 3419 1454 3419 1454 3420 1454 3420 1454 3421 1454 M 3821 1458 3820 1458 3820 1458 3819 1457 3819 1457 3819 1457 3819 1457 3818 1456 3817 1456 3817 1456 3815 1456 3814 1455 3814 1455 3814 1455 3815 1455 3818 1456 3821 1457 3821 1458 3821 1458 M 3928 1459 3929 1459 3929 1459 3929 1459 3930 1459 3931 1459 3932 1459 3932 1459 3933 1459 3934 1460 3934 1460 3936 1460 3937 1461 3938 1461 3938 1461 3938 1461 3937 1461 3936 1461 3935 1461 3933 1460 3932 1459 3931 1459 3930 1459 3930 1459 3929 1459 3929 1459 3929 1459 3928 1459 3928 1459 M 99 1503 99 1502 100 1501 97 1500 96 1500 94 1500 93 1500 92 1500 91 1499 92 1499 93 1498 94 1498 94 1498 95 1498 96 1498 96 1497 96 1497 96 1496 95 1495 95 1493 94 1493 94 1493 91 1491 91 1491 90 1492 88 1492 88 1492 87 1492 87 1492 85 1491 86 1491 87 1491 87 1491 89 1491 90 1491 92 1491 95 1491 96 1491 97 1491 98 1491 99 1491 99 1491 100 1491 100 1491 100 1490 101 1490 102 1490 105 1491 108 1491 108 1491 109 1491 108 1492 108 1492 107 1492 107 1492 106 1493 106 1494 106 1495 109 1495 109 1495 108 1494 108 1493 108 1493 109 1493 110 1492 110 1493 110 1493 110 1493 111 1493 112 1493 115 1494 115 1494 118 1494 121 1493 119 1493 119 1493 116 1493 114 1492 112 1492 112 1491 115 1492 117 1492 118 1492 120 1492 119 1492 119 1492 118 1492 116 1492 115 1492 117 1492 122 1493 123 1493 126 1493 127 1493 129 1493 132 1493 132 1493 133 1493 132 1494 132 1494 132 1495 133 1495 133 1495 134 1495 134 1495 134 1496 135 1496 136 1496 137 1496 137 1496 137 1497 137 1497 138 1498 138 1498 139 1498 140 1499 142 1499 143 1499 145 1500 146 1500 148 1501 148 1501 148 1501 150 1503 151 1503 151 1503 152 1503 152 1503 152 1503 151 1504 150 1505 151 1505 151 1504 151 1504 153 1504 153 1504 154 1504 154 1504 156 1504 156 1504 157 1505 156 1505 155 1505 155 1505 154 1505 156 1506 157 1506 157 1506 159 1506 160 1506 161 1506 160 1505 159 1505 160 1505 161 1505 163 1506 164 1506 164 1506 165 1507 165 1507 165 1507 164 1508 163 1508 163 1508 162 1508 161 1508 160 1508 160 1508 159 1508 158 1508 157 1508 157 1508 153 1510 150 1511 151 1511 151 1511 151 1514 151 1514 150 1515 149 1515 147 1515 145 1514 143 1513 140 1512 139 1512 138 1511 137 1511 137 1511 135 1511 138 1513 139 1514 140 1514 140 1514 141 1514 141 1514 143 1515 143 1516 143 1517 142 1517 141 1517 140 1516 140 1516 139 1516 138 1516 137 1516 136 1516 135 1516 132 1516 131 1516 131 1516 130 1516 129 1517 128 1517 127 1517 126 1517 127 1516 128 1516 129 1516 130 1516 131 1516 130 1516 129 1516 128 1516 127 1516 127 1515 126 1515 126 1515 125 1515 124 1516 124 1516 123 1515 123 1514 122 1514 119 1513 117 1513 115 1514 117 1514 118 1514 119 1514 120 1515 121 1515 121 1515 121 1517 120 1517 121 1517 121 1518 123 1517 123 1517 124 1517 125 1517 124 1519 124 1519 124 1520 124 1520 124 1520 123 1520 123 1520 122 1520 122 1520 117 1520 117 1520 117 1521 118 1521 121 1521 122 1521 123 1521 124 1521 126 1523 125 1523 125 1523 123 1525 121 1525 120 1526 120 1526 119 1526 119 1526 117 1526 116 1526 116 1527 115 1527 114 1527 114 1526 113 1526 112 1526 112 1526 111 1526 111 1527 109 1528 109 1528 110 1528 111 1527 112 1527 112 1527 112 1527 113 1527 115 1528 115 1528 114 1529 112 1529 111 1529 111 1529 110 1530 111 1530 112 1530 113 1530 115 1530 116 1531 116 1531 119 1531 119 1531 120 1531 120 1531 122 1533 122 1534 120 1534 118 1534 118 1534 117 1534 117 1534 116 1534 116 1533 115 1532 114 1532 111 1532 111 1533 111 1533 112 1533 112 1533 113 1533 113 1533 114 1533 113 1535 112 1536 111 1536 110 1536 110 1536 109 1536 109 1536 108 1536 107 1536 106 1536 105 1535 105 1535 105 1534 106 1534 107 1533 107 1532 106 1531 105 1530 105 1531 106 1531 106 1532 106 1533 104 1534 102 1535 101 1535 100 1535 96 1534 95 1534 95 1533 94 1532 94 1532 94 1531 93 1531 89 1530 87 1529 85 1529 84 1528 82 1528 80 1527 80 1528 79 1528 78 1528 73 1528 73 1527 72 1527 70 1526 69 1525 68 1525 67 1525 65 1524 66 1524 67 1524 67 1523 67 1522 66 1521 66 1520 66 1519 65 1518 65 1518 63 1517 61 1517 60 1517 60 1517 59 1516 58 1516 57 1516 56 1516 55 1516 54 1515 49 1515 48 1515 47 1515 46 1515 45 1515 43 1515 43 1516 42 1516 41 1516 40 1516 40 1517 37 1517 32 1517 30 1517 28 1517 26 1517 25 1517 24 1516 24 1516 23 1516 23 1516 24 1515 25 1513 25 1513 24 1512 24 1512 23 1512 23 1512 22 1512 21 1512 21 1512 19 1510 18 1510 17 1508 18 1508 19 1508 20 1508 21 1508 21 1507 21 1507 21 1506 22 1506 23 1506 23 1506 24 1505 24 1504 24 1502 24 1502 23 1502 22 1502 22 1503 19 1505 17 1506 17 1506 16 1506 16 1506 15 1505 14 1504 14 1504 15 1504 14 1502 14 1502 13 1502 13 1502 13 1503 13 1503 13 1504 12 1504 11 1503 09 1503 10 1504 10 1504 11 1504 12 1505 11 1506 11 1506 10 1506 10 1506 09 1506 06 1506 06 1506 05 1506 06 1506 06 1506 07 1506 06 1505 05 1505 04 1506 04 1507 03 1509 03 1509 03 1510 03 1510 04 1512 08 1513 09 1514 09 1514 10 1514 10 1514 11 1514 11 1516 09 1517 07 1517 07 1518 07 1518 07 1520 07 1520 06 1521 05 1521 05 1521 05 1522 04 1522 04 1522 03 1522 03 1522 01 1523 00 1523 00 1507 00 1491 00 1475 00 1461 01 1461 04 1462 06 1462 06 1462 07 1462 08 1462 07 1461 08 1461 09 1461 09 1462 09 1463 10 1463 11 1463 13 1464 15 1464 17 1464 18 1464 19 1465 23 1467 24 1467 23 1467 23 1467 22 1467 22 1466 21 1466 20 1466 20 1467 20 1468 22 1468 23 1468 25 1468 29 1469 31 1470 31 1470 32 1470 33 1471 33 1472 36 1471 37 1471 36 1471 35 1470 34 1470 30 1469 26 1468 26 1468 27 1468 29 1468 30 1469 34 1470 36 1470 38 1471 38 1472 36 1472 37 1473 38 1473 39 1473 41 1472 42 1472 44 1473 44 1474 45 1474 46 1474 48 1474 52 1475 53 1476 54 1476 56 1476 60 1478 63 1478 63 1478 65 1479 70 1480 72 1481 74 1482 75 1483 76 1484 77 1484 77 1484 76 1485 75 1486 74 1486 74 1487 75 1487 75 1487 76 1487 77 1487 78 1487 78 1486 79 1485 83 1486 83 1487 83 1488 83 1488 82 1487 82 1487 82 1488 81 1491 81 1492 82 1493 83 1493 84 1495 84 1496 84 1497 83 1496 83 1496 82 1496 80 1498 81 1498 81 1498 82 1499 84 1499 86 1499 86 1499 87 1499 88 1500 88 1500 89 1501 88 1501 88 1501 88 1501 88 1503 88 1503 88 1503 89 1504 90 1503 90 1503 91 1502 93 1501 94 1501 94 1501 95 1501 95 1501 96 1501 95 1503 95 1503 94 1504 94 1504 95 1505 95 1505 97 1504 97 1503 99 1503 M 3790 1464 3791 1464 3791 1464 3793 1464 3794 1464 3794 1464 3796 1464 3796 1464 3797 1464 3798 1464 3798 1464 3799 1464 3800 1463 3800 1463 3800 1464 3799 1464 3799 1464 3797 1464 3796 1464 3795 1464 3794 1464 3793 1464 3793 1464 3792 1464 3792 1464 3791 1465 3789 1465 3789 1464 3790 1464 3790 1464 M 3687 1470 3687 1470 3688 1470 3688 1469 3689 1469 3689 1469 3691 1469 3691 1469 3692 1468 3692 1468 3693 1468 3694 1468 3697 1469 3697 1469 3697 1469 3696 1469 3695 1469 3693 1469 3692 1469 3690 1470 3688 1470 3687 1470 3687 1470 3686 1470 3687 1470 3687 1470 M 3990 1501 3989 1500 3986 1499 3986 1498 3985 1497 3985 1497 3984 1496 3984 1496 3984 1496 3984 1496 3982 1496 3982 1496 3982 1496 3982 1496 3982 1497 3981 1497 3981 1497 3980 1496 3980 1496 3979 1496 3979 1496 3980 1496 3980 1495 3980 1495 3981 1495 3981 1496 3981 1496 3981 1496 3982 1496 3984 1495 3984 1495 3984 1496 3985 1496 3985 1496 3985 1496 3985 1496 3985 1497 3986 1497 3986 1497 3987 1497 3987 1497 3988 1497 3987 1497 3987 1497 3986 1497 3986 1496 3986 1496 3986 1496 3986 1496 3986 1496 3988 1496 3989 1496 3989 1496 3989 1496 3991 1497 3992 1497 3993 1497 3993 1497 3994 1497 3994 1497 3994 1497 3994 1497 3995 1497 3995 1500 3994 1500 3994 1500 3991 1501 3991 1501 3991 1501 3990 1501 3990 1501 M 3554 1496 3555 1496 3556 1496 3556 1496 3556 1496 3556 1496 3557 1496 3557 1497 3557 1497 3557 1497 3557 1497 3557 1497 3556 1497 3556 1497 3555 1497 3555 1497 3554 1497 3553 1496 3553 1496 3553 1496 3553 1496 3553 1496 3554 1496 3554 1496 3554 1496 3554 1496 M 3447 1521 3447 1522 3447 1522 3448 1523 3448 1524 3448 1524 3448 1524 3448 1524 3447 1525 3447 1525 3447 1525 3446 1525 3446 1525 3443 1523 3443 1523 3443 1523 3442 1522 3442 1522 3442 1522 3443 1522 3443 1522 3443 1521 3445 1521 3446 1521 3447 1521 3447 1521 M 117 1529 118 1528 118 1528 119 1527 119 1527 119 1527 119 1527 120 1527 121 1527 121 1527 123 1527 123 1527 125 1528 125 1528 122 1529 121 1529 121 1529 118 1529 118 1529 118 1529 118 1529 117 1529 117 1529 117 1529 M 3519 1528 3520 1530 3521 1531 3522 1531 3521 1531 3521 1531 3521 1531 3521 1531 3520 1531 3520 1531 3519 1531 3519 1531 3519 1531 3519 1531 3518 1531 3518 1531 3517 1531 3517 1531 3516 1530 3515 1530 3515 1530 3514 1530 3514 1530 3514 1529 3514 1529 3514 1529 3514 1529 3515 1529 3515 1529 3516 1530 3516 1530 3516 1530 3517 1530 3517 1530 3517 1530 3518 1530 3518 1530 3518 1530 3518 1530 3518 1530 3519 1530 3519 1530 3518 1529 3518 1529 3518 1529 3517 1529 3517 1529 3516 1528 3518 1528 3519 1528 3519 1528 3519 1528 3519 1528 3519 1528 M 116 1530 117 1529 117 1530 119 1530 119 1530 120 1530 120 1530 119 1530 119 1530 119 1531 118 1530 118 1530 117 1530 117 1530 116 1530 116 1530 116 1530 M 5485 1627 5486 1627 5486 1627 5486 1627 5488 1626 5488 1626 5490 1624 5490 1623 5490 1623 5490 1623 5490 1622 5490 1622 5490 1622 5491 1621 5492 1621 5492 1621 5492 1620 5492 1620 5491 1620 5491 1620 5490 1620 5490 1620 5490 1620 5489 1620 5489 1620 5489 1620 5489 1620 5490 1620 5490 1620 5491 1620 5492 1620 5492 1620 5493 1620 5494 1620 5495 1619 5495 1619 5498 1618 5500 1618 5501 1617 5501 1617 5503 1616 5503 1616 5503 1616 5503 1616 5504 1616 5505 1619 5506 1620 5505 1622 5505 1622 5505 1622 5505 1622 5504 1622 5504 1622 5504 1622 5502 1622 5499 1623 5497 1623 5496 1623 5494 1624 5493 1625 5490 1626 5488 1627 5488 1627 5487 1627 5487 1627 5486 1628 5486 1628 5486 1629 5486 1629 5486 1629 5485 1629 5485 1628 5485 1628 5485 1628 5485 1627 M 5278 1620 5278 1620 5278 1619 5279 1619 5281 1618 5282 1618 5282 1618 5282 1618 5282 1618 5283 1618 5283 1618 5283 1619 5283 1619 5281 1620 5280 1620 5279 1620 5279 1620 5278 1620 5278 1620 M 5530 1679 5531 1679 5530 1680 5530 1680 5530 1680 5530 1680 5530 1680 5530 1681 5530 1682 5531 1682 5533 1684 5534 1685 5534 1685 5534 1685 5535 1685 5535 1685 5536 1686 5536 1686 5537 1686 5537 1687 5537 1688 5537 1689 5535 1688 5534 1687 5532 1687 5532 1687 5532 1687 5529 1685 5528 1683 5528 1683 5528 1683 5528 1682 5527 1682 5526 1681 5526 1680 5525 1680 5524 1680 5524 1679 5525 1678 5525 1678 5526 1678 5526 1678 5528 1679 5528 1679 5529 1679 5530 1679 5530 1679 5530 1679 M 3220 1695 3219 1695 3217 1695 3217 1695 3216 1695 3215 1695 3214 1695 3213 1695 3212 1695 3209 1694 3206 1694 3201 1694 3200 1694 3200 1694 3200 1694 3199 1694 3197 1693 3196 1693 3195 1693 3192 1693 3191 1693 3192 1693 3195 1691 3196 1691 3198 1690 3198 1690 3201 1689 3198 1689 3195 1689 3194 1689 3194 1689 3194 1689 3194 1690 3193 1690 3193 1690 3192 1690 3193 1689 3193 1689 3194 1688 3194 1687 3193 1687 3193 1686 3193 1686 3194 1685 3194 1685 3195 1685 3200 1685 3201 1685 3203 1684 3204 1684 3204 1683 3205 1683 3206 1683 3208 1681 3209 1680 3209 1680 3210 1679 3210 1680 3209 1680 3209 1681 3208 1682 3206 1683 3205 1683 3205 1684 3204 1684 3203 1685 3203 1685 3204 1685 3205 1685 3207 1685 3207 1685 3208 1686 3210 1686 3212 1686 3214 1685 3214 1685 3214 1684 3214 1684 3213 1682 3214 1681 3215 1681 3215 1680 3215 1680 3215 1680 3215 1680 3216 1680 3216 1679 3217 1680 3219 1681 3221 1681 3222 1682 3227 1684 3228 1684 3228 1683 3229 1683 3229 1683 3231 1683 3231 1683 3235 1683 3236 1683 3237 1685 3237 1685 3238 1685 3240 1686 3240 1686 3240 1687 3240 1687 3240 1688 3239 1688 3238 1689 3238 1689 3237 1692 3237 1692 3238 1693 3238 1693 3238 1693 3239 1694 3239 1694 3239 1694 3237 1694 3236 1694 3234 1694 3233 1694 3231 1695 3231 1695 3229 1695 3226 1695 3224 1695 3222 1695 3220 1695 3220 1695 3220 1695 M 5067 1688 5067 1687 5067 1687 5067 1686 5068 1686 5069 1684 5070 1684 5070 1684 5070 1684 5071 1684 5071 1683 5072 1682 5072 1681 5072 1681 5072 1681 5072 1681 5072 1681 5073 1681 5074 1681 5074 1681 5074 1682 5077 1682 5081 1683 5082 1683 5082 1683 5082 1684 5082 1684 5082 1684 5082 1684 5082 1684 5081 1684 5081 1684 5081 1684 5080 1685 5079 1685 5079 1686 5079 1686 5078 1688 5076 1689 5076 1689 5075 1689 5075 1690 5075 1690 5075 1690 5074 1690 5074 1690 5073 1689 5071 1686 5071 1686 5071 1686 5071 1686 5070 1686 5070 1686 5069 1687 5069 1687 5068 1687 5068 1687 5068 1687 5067 1688 5067 1688 5067 1688 5067 1688 M 5058 1686 5058 1685 5060 1684 5060 1684 5064 1682 5065 1682 5065 1682 5066 1682 5066 1682 5066 1682 5065 1685 5064 1685 5064 1685 5064 1685 5064 1685 5063 1685 5062 1685 5062 1685 5062 1685 5062 1685 5062 1685 5062 1685 5062 1685 5061 1685 5061 1685 5061 1685 5060 1685 5059 1686 5059 1686 5059 1686 5059 1686 5058 1686 5058 1686 M 5549 1686 5549 1686 5550 1686 5550 1686 5551 1686 5551 1686 5551 1687 5551 1687 5553 1687 5554 1688 5556 1689 5558 1690 5560 1692 5560 1692 5560 1692 5559 1692 5558 1691 5557 1691 5557 1690 5556 1690 5556 1690 5555 1690 5555 1690 5555 1690 5554 1690 5554 1689 5551 1688 5550 1687 5549 1687 5549 1687 5549 1687 5549 1686 M 3189 1693 3188 1693 3190 1692 3190 1692 3191 1691 3192 1690 3192 1691 3191 1692 3190 1692 3189 1693 M 5073 1694 5072 1693 5072 1692 5073 1691 5073 1691 5073 1691 5073 1691 5074 1692 5073 1692 5073 1693 5073 1694 M 5075 1694 5075 1694 5075 1694 5075 1694 5076 1693 5076 1693 5076 1693 5076 1692 5077 1692 5077 1692 5078 1692 5078 1692 5078 1693 5076 1694 5076 1694 5075 1694 5075 1694 5075 1694 5075 1694 M 5153 1793 5153 1793 5153 1794 5152 1795 5152 1796 5152 1797 5152 1798 5152 1799 5152 1800 5152 1801 5153 1802 5153 1802 5153 1803 5154 1804 5156 1805 5156 1805 5157 1806 5157 1806 5158 1806 5159 1808 5161 1813 5161 1814 5161 1814 5160 1815 5162 1816 5165 1817 5165 1817 5165 1816 5165 1816 5165 1815 5166 1814 5167 1815 5167 1815 5167 1816 5167 1817 5167 1818 5167 1818 5168 1820 5168 1820 5168 1821 5169 1822 5168 1822 5167 1824 5167 1824 5167 1825 5166 1825 5167 1826 5167 1826 5166 1827 5166 1827 5166 1827 5166 1826 5166 1825 5166 1824 5166 1824 5165 1823 5165 1822 5165 1822 5164 1821 5165 1820 5165 1820 5165 1819 5165 1819 5162 1818 5161 1818 5161 1818 5160 1818 5160 1818 5159 1818 5157 1818 5156 1818 5156 1818 5155 1817 5155 1817 5155 1816 5155 1816 5153 1816 5152 1817 5151 1817 5151 1817 5151 1818 5150 1818 5148 1822 5147 1825 5147 1826 5146 1827 5144 1830 5144 1829 5144 1829 5142 1827 5142 1826 5141 1823 5141 1823 5141 1823 5141 1822 5140 1821 5140 1820 5140 1819 5140 1818 5143 1813 5143 1813 5143 1812 5144 1812 5144 1811 5144 1811 5144 1810 5144 1809 5144 1809 5144 1809 5144 1808 5143 1808 5143 1808 5143 1807 5142 1804 5142 1804 5142 1802 5143 1801 5144 1798 5145 1798 5145 1798 5145 1797 5146 1797 5146 1797 5146 1796 5146 1796 5146 1795 5146 1794 5146 1793 5146 1792 5145 1791 5145 1791 5145 1790 5144 1789 5143 1788 5142 1787 5142 1786 5141 1785 5141 1785 5141 1784 5141 1784 5141 1783 5142 1783 5142 1782 5142 1782 5143 1781 5143 1779 5144 1776 5144 1776 5144 1775 5144 1775 5144 1774 5145 1773 5145 1773 5145 1771 5145 1771 5145 1770 5146 1767 5146 1767 5145 1766 5145 1766 5145 1765 5145 1764 5146 1762 5145 1759 5145 1758 5145 1758 5145 1757 5144 1756 5144 1756 5144 1755 5144 1754 5145 1751 5145 1750 5145 1749 5146 1749 5146 1749 5147 1748 5147 1748 5147 1747 5147 1747 5147 1746 5147 1746 5147 1745 5147 1745 5144 1742 5144 1741 5145 1741 5144 1740 5143 1740 5142 1739 5140 1737 5140 1736 5140 1736 5140 1735 5139 1735 5139 1735 5137 1734 5137 1731 5138 1730 5138 1729 5138 1729 5138 1728 5137 1727 5137 1726 5138 1726 5138 1725 5139 1725 5139 1725 5140 1724 5140 1723 5141 1721 5141 1718 5141 1717 5142 1716 5142 1715 5141 1714 5141 1714 5141 1714 5141 1714 5140 1714 5140 1712 5140 1711 5139 1710 5143 1709 5145 1708 5147 1708 5147 1708 5147 1709 5147 1709 5147 1710 5147 1710 5149 1710 5151 1710 5151 1710 5151 1709 5152 1709 5154 1708 5154 1707 5153 1707 5152 1707 5152 1707 5151 1707 5151 1706 5151 1705 5152 1705 5153 1705 5154 1705 5154 1706 5154 1706 5155 1706 5155 1705 5156 1705 5156 1704 5156 1703 5155 1703 5155 1703 5154 1703 5154 1704 5154 1705 5154 1705 5153 1705 5153 1705 5154 1703 5154 1702 5155 1701 5154 1701 5154 1700 5153 1699 5151 1698 5151 1698 5150 1698 5149 1696 5149 1696 5151 1696 5152 1696 5152 1696 5153 1696 5153 1695 5153 1695 5154 1693 5154 1693 5155 1693 5155 1694 5155 1694 5155 1694 5156 1695 5158 1697 5159 1698 5159 1699 5159 1699 5159 1699 5158 1700 5158 1700 5157 1702 5157 1703 5157 1704 5158 1704 5159 1705 5161 1707 5161 1708 5161 1708 5161 1710 5161 1710 5161 1710 5161 1710 5162 1710 5162 1710 5162 1710 5163 1711 5164 1714 5164 1717 5164 1719 5164 1720 5164 1721 5164 1722 5164 1723 5164 1723 5164 1724 5164 1725 5163 1726 5163 1726 5162 1726 5162 1725 5163 1725 5164 1723 5163 1722 5161 1726 5162 1727 5162 1727 5161 1730 5161 1731 5161 1733 5161 1733 5162 1734 5162 1734 5162 1734 5163 1734 5164 1736 5164 1736 5164 1737 5164 1737 5163 1737 5163 1738 5163 1740 5163 1740 5164 1740 5164 1739 5164 1739 5164 1738 5165 1738 5166 1740 5166 1740 5166 1742 5166 1742 5166 1742 5165 1742 5167 1744 5167 1743 5167 1744 5168 1744 5168 1746 5168 1747 5168 1747 5168 1748 5169 1751 5170 1751 5170 1753 5170 1753 5171 1756 5171 1758 5172 1759 5172 1760 5172 1760 5173 1760 5173 1761 5173 1761 5174 1762 5175 1763 5175 1764 5176 1766 5178 1772 5179 1773 5179 1776 5181 1779 5182 1779 5183 1780 5183 1780 5184 1781 5185 1781 5186 1782 5186 1782 5186 1784 5186 1784 5186 1784 5186 1785 5186 1785 5187 1786 5186 1786 5185 1784 5185 1784 5185 1783 5185 1783 5184 1782 5184 1781 5182 1780 5181 1780 5180 1779 5179 1778 5179 1778 5177 1777 5177 1776 5176 1776 5175 1776 5175 1776 5174 1775 5174 1775 5173 1775 5172 1775 5170 1775 5166 1774 5166 1774 5165 1774 5165 1773 5164 1774 5163 1774 5164 1775 5165 1775 5165 1775 5165 1775 5166 1775 5167 1775 5169 1775 5169 1775 5170 1775 5169 1775 5168 1775 5167 1775 5166 1775 5164 1775 5164 1775 5163 1776 5162 1776 5161 1776 5160 1777 5160 1777 5159 1778 5159 1778 5159 1779 5158 1780 5159 1780 5159 1780 5159 1781 5159 1781 5159 1782 5158 1783 5157 1784 5156 1787 5155 1788 5155 1788 5154 1791 5153 1793 M 5358 1750 5358 1750 5358 1749 5358 1749 5359 1749 5359 1749 5360 1749 5360 1749 5360 1749 5361 1749 5361 1749 5361 1750 5361 1750 5361 1751 5361 1751 5361 1751 5360 1751 5360 1751 5359 1751 5359 1751 5359 1751 5358 1751 5358 1751 5358 1750 5358 1750 5358 1750 M 5373 1754 5372 1754 5371 1754 5370 1753 5370 1753 5370 1753 5369 1753 5369 1753 5369 1752 5369 1752 5369 1752 5370 1752 5372 1750 5372 1750 5372 1750 5374 1750 5374 1750 5374 1750 5375 1750 5375 1751 5374 1752 5374 1753 5374 1753 5373 1753 5373 1753 5373 1754 M 5354 1763 5354 1763 5354 1763 5354 1763 5354 1760 5355 1759 5357 1758 5358 1758 5358 1758 5358 1758 5359 1758 5361 1758 5361 1758 5361 1758 5361 1758 5363 1757 5363 1757 5364 1754 5364 1754 5364 1754 5364 1754 5364 1753 5365 1753 5365 1753 5366 1752 5367 1752 5367 1752 5367 1752 5367 1752 5368 1751 5368 1752 5368 1752 5368 1752 5369 1752 5369 1753 5369 1756 5365 1760 5363 1761 5363 1761 5363 1761 5363 1761 5362 1761 5362 1761 5362 1761 5361 1761 5360 1761 5359 1762 5359 1762 5359 1762 5358 1762 5358 1762 5356 1763 5356 1763 5356 1763 5355 1763 5355 1763 5355 1763 5354 1763 M 5344 1775 5344 1774 5344 1774 5344 1774 5345 1773 5346 1772 5347 1771 5347 1770 5348 1770 5348 1770 5349 1770 5349 1770 5349 1771 5349 1771 5348 1771 5348 1772 5348 1772 5347 1773 5347 1773 5347 1773 5347 1773 5348 1774 5348 1774 5348 1775 5348 1775 5347 1775 5346 1776 5346 1776 5345 1775 5344 1775 M 5342 1777 5342 1777 5343 1777 5344 1777 5344 1778 5344 1778 5344 1778 5344 1778 5344 1778 5343 1779 5343 1779 5343 1779 5342 1778 5342 1777 5342 1777 5342 1777 M 5334 1784 5334 1784 5334 1784 5334 1784 5335 1783 5337 1781 5337 1781 5337 1781 5337 1781 5338 1781 5338 1781 5338 1781 5338 1782 5338 1782 5338 1782 5336 1784 5336 1784 5335 1784 5335 1784 5335 1784 5334 1784 M 5306 1810 5307 1809 5307 1809 5307 1809 5307 1810 5307 1810 5306 1810 5306 1811 5304 1812 5303 1813 5303 1813 5303 1814 5300 1815 5300 1815 5300 1815 5299 1815 5299 1815 5299 1815 5298 1815 5298 1815 5298 1814 5298 1814 5298 1814 5299 1814 5299 1814 5300 1814 5300 1814 5301 1814 5301 1814 5303 1812 5304 1812 5304 1811 5305 1810 5306 1810 5306 1809 5306 1809 5306 1810 M 5262 1834 5263 1834 5264 1833 5265 1831 5265 1830 5266 1830 5269 1829 5269 1828 5270 1828 5270 1827 5270 1827 5271 1827 5272 1826 5276 1824 5278 1824 5279 1825 5278 1825 5278 1826 5276 1827 5275 1827 5275 1827 5274 1828 5274 1828 5274 1828 5274 1829 5273 1829 5272 1830 5271 1831 5271 1830 5269 1831 5269 1831 5268 1832 5267 1832 5266 1834 5266 1834 5266 1834 5264 1834 5263 1834 5262 1834 5262 1834 5262 1834 5262 1834 M 3653 1833 3653 1833 3653 1833 3651 1832 3650 1831 3650 1830 3650 1830 3650 1830 3650 1830 3652 1832 3653 1832 3653 1832 3653 1833 3653 1833 M 5221 1853 5221 1853 5220 1853 5220 1853 5220 1852 5222 1851 5223 1851 5225 1850 5225 1849 5225 1849 5225 1848 5225 1847 5227 1846 5228 1846 5229 1845 5231 1844 5231 1843 5233 1843 5233 1842 5234 1842 5234 1842 5234 1841 5235 1841 5235 1841 5236 1840 5237 1840 5237 1840 5237 1839 5237 1838 5237 1838 5237 1837 5238 1837 5239 1838 5239 1839 5239 1839 5240 1840 5240 1840 5244 1839 5244 1839 5245 1839 5245 1838 5246 1837 5248 1837 5248 1836 5250 1835 5251 1835 5252 1836 5252 1836 5252 1838 5252 1838 5251 1839 5250 1839 5250 1839 5249 1839 5248 1839 5248 1839 5247 1839 5247 1839 5246 1840 5246 1840 5245 1840 5244 1840 5243 1840 5243 1840 5243 1841 5242 1841 5240 1842 5239 1843 5239 1843 5238 1844 5238 1844 5238 1844 5237 1844 5236 1844 5235 1845 5235 1845 5234 1844 5234 1844 5233 1844 5233 1844 5232 1845 5232 1845 5233 1845 5232 1847 5231 1847 5231 1847 5230 1847 5228 1849 5227 1849 5227 1850 5227 1850 5227 1851 5226 1851 5226 1851 5225 1851 5225 1851 5224 1851 5224 1851 5223 1852 5223 1852 5223 1852 5223 1853 5222 1853 5222 1853 5222 1853 5221 1853 M 5210 1852 5210 1852 5210 1852 5210 1852 5211 1852 5211 1852 5211 1852 5211 1853 5212 1853 5212 1853 5212 1853 5213 1853 5214 1853 5215 1853 5215 1853 5216 1853 5216 1853 5216 1853 5216 1854 5215 1854 5212 1855 5210 1855 5210 1855 5209 1856 5209 1856 5209 1856 5209 1856 5208 1856 5206 1858 5206 1858 5204 1859 5204 1860 5204 1860 5204 1860 5204 1861 5203 1861 5203 1861 5202 1861 5202 1861 5202 1861 5201 1861 5200 1862 5200 1862 5200 1863 5200 1863 5200 1863 5200 1864 5200 1865 5200 1865 5198 1864 5198 1864 5197 1862 5199 1861 5200 1861 5201 1860 5202 1860 5203 1859 5203 1859 5203 1859 5203 1858 5203 1858 5204 1857 5205 1856 5205 1856 5205 1856 5206 1855 5206 1855 5206 1855 5206 1855 5207 1855 5207 1854 5208 1853 5208 1852 5208 1852 5209 1852 5209 1852 5209 1852 5210 1852 M 5221 1862 5221 1862 5221 1863 5220 1864 5219 1864 5218 1864 5218 1864 5217 1864 5216 1864 5217 1863 5217 1863 5219 1862 5220 1862 5221 1862 5221 1862 M 4982 1876 4982 1876 4982 1876 4981 1876 4981 1876 4979 1876 4980 1875 4981 1875 4981 1875 4981 1875 4982 1875 4982 1876 4982 1876" />
+<path id="rw" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3339 2606 3338 2606 3338 2606 3337 2605 3337 2605 3337 2605 3336 2603 3336 2601 3336 2600 3338 2600 3340 2599 3340 2598 3340 2598 3340 2597 3341 2597 3341 2597 3341 2596 3341 2596 3341 2595 3340 2594 3340 2594 3340 2593 3340 2592 3340 2591 3342 2589 3343 2588 3344 2587 3345 2587 3345 2587 3346 2586 3346 2586 3347 2585 3347 2585 3348 2585 3348 2585 3348 2585 3349 2585 3349 2584 3350 2584 3352 2584 3352 2584 3352 2584 3352 2585 3352 2585 3353 2586 3353 2586 3353 2586 3354 2586 3356 2584 3357 2584 3358 2583 3359 2582 3359 2581 3359 2581 3360 2579 3361 2579 3362 2579 3362 2579 3362 2580 3361 2580 3362 2581 3363 2584 3364 2585 3365 2585 3366 2585 3366 2587 3367 2589 3367 2590 3367 2590 3368 2591 3367 2592 3367 2593 3368 2595 3368 2596 3368 2596 3368 2597 3368 2598 3368 2599 3368 2599 3368 2600 3367 2600 3367 2601 3366 2600 3365 2600 3364 2601 3363 2601 3363 2601 3362 2601 3362 2600 3361 2600 3360 2599 3360 2600 3359 2600 3357 2601 3356 2601 3356 2601 3354 2600 3353 2599 3353 2600 3353 2600 3353 2603 3353 2605 3353 2605 3353 2606 3352 2606 3352 2607 3351 2607 3350 2607 3349 2607 3348 2607 3348 2607 3348 2607 3347 2607 3347 2608 3346 2607 3345 2607 3344 2608 3344 2608 3344 2607 3344 2606 3344 2606 3343 2605 3343 2605 3343 2605 3340 2604 3340 2604 3339 2604 3339 2605 3339 2606 3339 2606 3339 2606" />
+<path id="sa" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3693 2262 3674 2266 3654 2271 3642 2284 3632 2295 3615 2313 3615 2310 3615 2296 3601 2291 3594 2288 3586 2285 3586 2285 3585 2284 3584 2284 3581 2284 3579 2285 3577 2286 3574 2285 3574 2285 3573 2284 3572 2284 3572 2283 3572 2283 3570 2283 3569 2283 3568 2283 3568 2283 3567 2283 3567 2284 3566 2284 3565 2286 3564 2289 3564 2292 3564 2294 3565 2296 3565 2296 3564 2296 3563 2296 3563 2297 3563 2298 3563 2298 3561 2300 3559 2301 3558 2301 3558 2300 3558 2299 3557 2298 3557 2297 3558 2297 3558 2296 3557 2294 3556 2294 3556 2294 3555 2294 3554 2293 3555 2292 3555 2291 3554 2291 3552 2289 3552 2289 3552 2290 3551 2290 3551 2288 3551 2287 3551 2286 3551 2285 3551 2284 3549 2282 3547 2281 3544 2278 3543 2278 3542 2278 3542 2277 3541 2277 3541 2276 3539 2274 3539 2273 3538 2272 3538 2271 3537 2270 3537 2270 3537 2269 3537 2269 3537 2268 3536 2267 3536 2266 3535 2266 3534 2265 3533 2264 3533 2263 3534 2262 3533 2261 3533 2261 3532 2260 3532 2259 3533 2258 3532 2258 3532 2257 3531 2257 3531 2257 3531 2256 3529 2252 3527 2251 3526 2249 3526 2249 3527 2248 3527 2248 3526 2248 3526 2247 3526 2246 3525 2246 3524 2246 3522 2243 3521 2243 3519 2242 3518 2241 3516 2240 3516 2239 3515 2239 3515 2239 3513 2239 3512 2239 3512 2238 3511 2238 3508 2236 3508 2236 3508 2235 3507 2234 3507 2233 3506 2232 3505 2231 3505 2231 3505 2230 3505 2230 3505 2230 3505 2230 3505 2230 3504 2229 3504 2229 3502 2228 3501 2225 3500 2225 3500 2223 3500 2221 3501 2221 3501 2220 3501 2220 3501 2219 3500 2219 3499 2217 3499 2217 3499 2216 3498 2214 3498 2214 3498 2214 3498 2209 3498 2208 3500 2205 3499 2202 3497 2199 3497 2199 3496 2198 3496 2196 3496 2197 3496 2197 3497 2198 3497 2198 3497 2197 3497 2197 3496 2196 3496 2195 3494 2192 3493 2191 3493 2190 3493 2190 3493 2189 3493 2189 3493 2188 3492 2188 3491 2187 3491 2187 3490 2184 3489 2183 3486 2180 3484 2179 3483 2178 3482 2178 3480 2176 3478 2175 3477 2174 3476 2175 3476 2175 3476 2175 3474 2175 3474 2174 3473 2173 3473 2173 3473 2172 3472 2171 3472 2170 3472 2170 3471 2169 3471 2169 3470 2168 3470 2168 3468 2166 3469 2166 3469 2166 3469 2166 3470 2166 3470 2165 3470 2164 3470 2161 3470 2161 3470 2160 3469 2160 3469 2160 3468 2159 3468 2158 3467 2157 3467 2157 3467 2156 3465 2153 3463 2151 3463 2151 3463 2152 3462 2151 3461 2151 3461 2150 3460 2149 3461 2149 3461 2148 3461 2148 3461 2147 3461 2147 3461 2146 3460 2146 3460 2146 3459 2146 3459 2146 3458 2146 3458 2145 3458 2144 3455 2139 3453 2137 3452 2136 3452 2136 3452 2135 3451 2134 3451 2133 3451 2133 3450 2132 3449 2132 3449 2131 3447 2130 3447 2129 3447 2128 3447 2128 3446 2126 3444 2126 3444 2125 3443 2124 3443 2123 3442 2123 3442 2123 3442 2122 3442 2122 3442 2121 3440 2119 3439 2118 3439 2117 3439 2117 3438 2116 3437 2116 3437 2115 3437 2114 3435 2113 3434 2114 3434 2114 3433 2114 3433 2114 3432 2114 3429 2113 3429 2113 3428 2114 3428 2114 3428 2115 3428 2115 3427 2114 3427 2113 3428 2112 3429 2111 3430 2109 3430 2109 3430 2108 3431 2107 3431 2107 3431 2105 3431 2105 3431 2102 3432 2101 3432 2097 3432 2097 3432 2096 3433 2096 3433 2094 3433 2094 3437 2094 3443 2095 3451 2096 3454 2094 3458 2091 3462 2085 3467 2085 3473 2084 3474 2083 3477 2078 3482 2075 3475 2068 3474 2067 3471 2064 3466 2059 3469 2058 3474 2057 3477 2056 3481 2055 3482 2055 3490 2053 3498 2051 3499 2050 3501 2049 3506 2050 3515 2051 3520 2052 3537 2061 3547 2066 3561 2075 3563 2077 3575 2085 3589 2096 3612 2098 3617 2098 3618 2098 3618 2098 3619 2098 3623 2098 3626 2098 3633 2099 3633 2100 3634 2101 3634 2102 3635 2103 3635 2103 3635 2104 3635 2104 3635 2105 3636 2105 3637 2107 3646 2107 3648 2107 3648 2107 3650 2107 3650 2109 3650 2110 3651 2113 3652 2115 3655 2118 3656 2118 3656 2119 3655 2120 3655 2118 3655 2118 3654 2118 3654 2119 3655 2121 3656 2122 3657 2121 3657 2121 3658 2122 3658 2123 3659 2123 3660 2122 3661 2123 3662 2123 3663 2124 3661 2124 3660 2124 3660 2124 3662 2126 3664 2129 3664 2129 3665 2129 3665 2129 3666 2129 3666 2128 3666 2129 3668 2130 3668 2132 3669 2132 3670 2133 3671 2133 3671 2133 3672 2134 3673 2134 3676 2136 3676 2137 3676 2137 3675 2136 3674 2135 3673 2136 3673 2136 3674 2138 3674 2140 3675 2140 3675 2140 3676 2140 3677 2141 3677 2142 3677 2144 3677 2144 3676 2146 3675 2146 3675 2144 3674 2144 3673 2145 3674 2147 3675 2149 3675 2149 3676 2150 3676 2151 3677 2151 3678 2153 3678 2153 3677 2153 3677 2152 3676 2152 3676 2152 3676 2152 3678 2155 3679 2156 3680 2156 3681 2156 3681 2157 3682 2159 3682 2160 3683 2162 3683 2163 3683 2162 3683 2163 3684 2163 3685 2165 3685 2166 3685 2167 3686 2168 3687 2167 3687 2168 3689 2170 3691 2170 3692 2170 3693 2169 3693 2169 3694 2169 3694 2170 3694 2170 3694 2171 3695 2171 3696 2170 3696 2169 3697 2169 3697 2170 3696 2171 3695 2172 3695 2172 3694 2173 3694 2174 3694 2174 3695 2175 3695 2175 3696 2174 3696 2174 3697 2174 3697 2174 3698 2174 3698 2175 3698 2175 3699 2175 3699 2175 3699 2177 3715 2196 3756 2201 3757 2200 3764 2211 3760 2223 3753 2243 3706 2259 3693 2262 M 3544 2291 3545 2291 3545 2291 3546 2295 3545 2295 3545 2295 3544 2294 3544 2294 3543 2293 3543 2293 3543 2293 3544 2293 3544 2292 3545 2292 3545 2292 3545 2292 3544 2291 3544 2291 3543 2291 3543 2291 3543 2291 3544 2291 3544 2291 M 3549 2298 3548 2298 3548 2298 3548 2298 3547 2297 3547 2297 3548 2297 3547 2296 3547 2296 3547 2296 3547 2296 3546 2296 3546 2296 3546 2296 3546 2296 3546 2297 3545 2297 3545 2297 3545 2296 3544 2296 3543 2295 3542 2295 3542 2293 3542 2293 3542 2293 3542 2293 3543 2293 3543 2294 3544 2294 3544 2294 3544 2295 3544 2295 3545 2295 3545 2296 3545 2296 3547 2296 3547 2295 3547 2295 3546 2295 3546 2295 3546 2295 3547 2294 3547 2294 3547 2294 3548 2296 3548 2297 3549 2298 3549 2298 3549 2298" />
+<path id="pm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1976 1811 1976 1811 1977 1811 1976 1812 1976 1812 1976 1812 1976 1812 1975 1812 1975 1812 1975 1812 1976 1812 1976 1813 1975 1813 1976 1813 1976 1814 1976 1814 1976 1814 1977 1814 1977 1814 1977 1814 1977 1814 1977 1814 1975 1815 1975 1815 1974 1815 1974 1814 1975 1814 1975 1814 1975 1814 1975 1814 1975 1813 1975 1813 1975 1813 1975 1812 1975 1812 1974 1811 1974 1810 1974 1810 1974 1810 1975 1810 1975 1810 1975 1810 1975 1810 1976 1811" />
+<path id="kn" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1874 2288 1874 2287 1874 2287 1874 2287 1873 2286 1873 2286 1873 2286 1873 2286 1872 2286 1872 2286 1871 2286 1871 2285 1871 2285 1871 2285 1871 2285 1872 2284 1873 2285 1874 2286 1875 2287 1875 2287 1874 2288" />
+<path id="sc" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3762 2639 3762 2639 3762 2639 3761 2638 3759 2636 3761 2635 3761 2635 3761 2635 3762 2637 3762 2637 3762 2639 3762 2639 M 3614 2714 3614 2714 3614 2714 3613 2713 3613 2713 3613 2713 3613 2713 3613 2713 3614 2713 3614 2713 3615 2713 3616 2713 3617 2712 3617 2712 3617 2712 3617 2712 3618 2712 3618 2712 3618 2713 3617 2713 3617 2713 3617 2713 3616 2713 3616 2713 3616 2713 3615 2713 3615 2713 3614 2714" />
+<path id="za" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3149 3011 3150 3012 3150 3012 3149 3013 3150 3013 3150 3014 3151 3014 3151 3013 3152 3013 3153 3015 3153 3016 3153 3016 3153 3016 3152 3018 3153 3021 3153 3021 3154 3021 3154 3021 3156 3021 3156 3021 3156 3022 3157 3022 3157 3022 3158 3022 3159 3022 3161 3022 3162 3023 3163 3023 3163 3023 3163 3024 3165 3024 3168 3024 3174 3023 3178 3024 3178 3024 3178 3024 3179 3025 3180 3025 3181 3025 3181 3025 3183 3024 3183 3023 3182 3023 3182 3023 3183 3022 3183 3021 3183 3021 3184 3021 3184 3021 3185 3021 3186 3021 3186 3021 3186 3020 3186 3020 3187 3019 3188 3018 3190 3017 3191 3018 3191 3018 3194 3016 3194 3015 3194 3011 3194 3008 3194 3003 3194 3002 3194 3000 3194 2999 3194 2994 3194 2984 3194 2976 3194 2972 3194 2968 3194 2965 3194 2963 3194 2960 3194 2959 3194 2958 3195 2959 3195 2959 3197 2960 3197 2960 3198 2960 3199 2961 3201 2962 3202 2964 3203 2967 3204 2968 3205 2969 3205 2969 3205 2971 3205 2972 3205 2973 3206 2974 3207 2975 3207 2976 3208 2980 3207 2982 3207 2983 3206 2983 3205 2984 3205 2985 3204 2985 3204 2985 3204 2986 3204 2986 3204 2990 3205 2991 3206 2992 3207 2992 3207 2991 3208 2991 3208 2991 3209 2990 3209 2991 3210 2991 3210 2991 3211 2991 3212 2992 3212 2992 3213 2992 3213 2992 3215 2991 3216 2991 3216 2991 3217 2991 3217 2991 3218 2991 3218 2991 3219 2991 3220 2992 3221 2992 3221 2991 3222 2991 3223 2990 3223 2990 3223 2990 3223 2989 3223 2988 3224 2988 3225 2988 3226 2988 3227 2988 3227 2988 3229 2986 3229 2986 3229 2985 3230 2984 3230 2983 3232 2982 3234 2981 3236 2980 3236 2979 3237 2978 3238 2978 3238 2977 3238 2975 3238 2975 3238 2974 3239 2973 3239 2973 3240 2972 3239 2971 3240 2970 3241 2968 3242 2967 3243 2967 3245 2966 3247 2966 3250 2966 3251 2967 3252 2968 3253 2969 3253 2969 3254 2969 3254 2969 3256 2971 3257 2971 3257 2972 3258 2972 3259 2972 3260 2972 3261 2972 3262 2972 3262 2973 3263 2973 3264 2974 3265 2974 3265 2974 3266 2974 3266 2974 3267 2974 3268 2975 3269 2975 3269 2975 3271 2975 3273 2975 3274 2974 3275 2974 3275 2973 3276 2974 3276 2974 3277 2974 3277 2974 3280 2974 3281 2974 3282 2973 3284 2972 3284 2972 3284 2971 3285 2969 3285 2969 3287 2965 3288 2962 3288 2960 3288 2959 3288 2958 3289 2958 3291 2957 3293 2956 3295 2956 3296 2956 3297 2956 3297 2956 3297 2956 3297 2956 3298 2955 3298 2955 3298 2954 3298 2954 3298 2954 3299 2953 3302 2951 3302 2951 3303 2951 3304 2950 3304 2950 3304 2947 3305 2945 3306 2942 3306 2942 3306 2941 3306 2940 3307 2940 3307 2940 3308 2939 3309 2938 3312 2936 3313 2936 3313 2936 3314 2936 3315 2936 3315 2935 3315 2935 3315 2934 3316 2933 3318 2933 3319 2933 3321 2930 3322 2929 3323 2928 3324 2927 3325 2926 3325 2926 3325 2925 3325 2925 3325 2925 3325 2925 3327 2924 3328 2923 3330 2923 3332 2923 3335 2922 3337 2921 3337 2921 3337 2920 3338 2920 3338 2920 3338 2919 3339 2918 3339 2917 3339 2917 3343 2917 3344 2917 3345 2917 3349 2916 3350 2916 3351 2917 3351 2917 3353 2917 3353 2917 3355 2918 3359 2919 3360 2919 3361 2919 3362 2919 3362 2919 3362 2919 3363 2919 3364 2919 3365 2919 3367 2919 3368 2918 3369 2919 3369 2919 3370 2919 3371 2919 3372 2919 3372 2919 3372 2919 3373 2919 3374 2920 3375 2920 3375 2921 3375 2921 3378 2931 3379 2933 3379 2934 3379 2935 3379 2937 3379 2937 3380 2938 3381 2939 3381 2940 3381 2940 3381 2941 3382 2942 3382 2944 3384 2944 3384 2945 3384 2945 3384 2948 3384 2949 3385 2950 3386 2951 3386 2953 3386 2953 3386 2957 3386 2959 3386 2961 3386 2962 3386 2964 3386 2967 3386 2969 3386 2970 3386 2970 3386 2972 3386 2973 3385 2975 3386 2977 3384 2978 3383 2977 3382 2977 3382 2976 3380 2975 3377 2973 3375 2974 3372 2977 3372 2978 3372 2978 3371 2979 3371 2979 3371 2980 3370 2981 3370 2982 3369 2983 3367 2984 3367 2985 3367 2985 3367 2986 3367 2988 3367 2989 3367 2989 3367 2990 3367 2991 3368 2990 3369 2990 3369 2991 3370 2993 3371 2995 3373 2997 3374 2997 3375 2998 3377 2998 3378 2999 3381 2999 3382 2999 3385 2999 3386 2999 3386 2998 3386 2998 3386 2997 3385 2996 3385 2996 3386 2995 3386 2991 3388 2991 3388 2991 3389 2991 3389 2991 3392 2992 3392 2992 3397 2991 3398 2991 3400 2991 3400 2993 3400 2993 3400 2994 3400 2994 3400 2996 3399 2996 3398 2999 3398 3000 3397 3001 3397 3002 3397 3002 3396 3003 3396 3005 3396 3005 3396 3008 3396 3009 3395 3012 3395 3012 3395 3013 3395 3013 3394 3013 3394 3014 3394 3014 3393 3015 3393 3016 3393 3017 3393 3018 3392 3018 3392 3019 3391 3020 3389 3021 3386 3023 3386 3024 3385 3024 3384 3024 3384 3025 3383 3025 3383 3025 3382 3026 3381 3027 3379 3028 3377 3030 3377 3030 3377 3031 3376 3031 3375 3032 3373 3034 3372 3036 3372 3037 3370 3040 3370 3040 3371 3040 3371 3040 3370 3041 3369 3042 3369 3042 3368 3043 3368 3043 3368 3044 3367 3044 3367 3045 3366 3046 3366 3047 3366 3047 3366 3047 3364 3049 3362 3053 3361 3055 3361 3055 3360 3055 3358 3059 3357 3059 3357 3059 3357 3060 3355 3062 3354 3062 3352 3064 3352 3064 3351 3065 3351 3065 3351 3065 3350 3065 3350 3066 3349 3066 3348 3067 3347 3068 3347 3068 3345 3069 3343 3070 3343 3071 3342 3071 3342 3072 3341 3073 3340 3075 3337 3077 3335 3079 3335 3079 3333 3081 3331 3082 3331 3082 3331 3083 3328 3085 3326 3086 3326 3086 3324 3087 3324 3088 3323 3088 3321 3090 3320 3091 3319 3091 3318 3091 3316 3093 3313 3095 3312 3095 3310 3097 3308 3098 3307 3098 3306 3099 3304 3099 3302 3100 3301 3101 3300 3101 3299 3102 3298 3102 3295 3102 3294 3102 3294 3101 3292 3101 3292 3101 3291 3101 3290 3101 3290 3101 3289 3101 3288 3101 3288 3101 3286 3102 3286 3102 3285 3102 3284 3103 3284 3104 3284 3105 3285 3105 3285 3105 3286 3106 3286 3106 3284 3106 3284 3106 3281 3106 3281 3106 3280 3106 3279 3105 3279 3105 3278 3105 3277 3105 3277 3105 3275 3105 3275 3105 3274 3105 3273 3105 3273 3106 3273 3106 3273 3107 3272 3109 3271 3109 3269 3108 3268 3108 3268 3108 3267 3108 3266 3108 3265 3108 3264 3107 3259 3106 3253 3105 3253 3105 3253 3105 3252 3105 3252 3105 3251 3105 3250 3106 3249 3106 3248 3106 3248 3107 3246 3107 3243 3107 3242 3107 3239 3106 3239 3106 3235 3106 3235 3106 3234 3106 3233 3107 3233 3107 3232 3107 3231 3106 3230 3107 3229 3107 3229 3107 3228 3108 3225 3109 3225 3110 3225 3110 3225 3110 3225 3111 3224 3112 3223 3112 3222 3112 3221 3112 3220 3112 3220 3111 3219 3111 3219 3111 3218 3111 3217 3112 3216 3112 3215 3112 3215 3112 3214 3112 3213 3112 3213 3112 3213 3112 3212 3111 3211 3111 3210 3111 3209 3111 3209 3111 3208 3112 3207 3113 3206 3113 3205 3113 3205 3113 3204 3113 3203 3113 3203 3113 3202 3113 3202 3113 3201 3114 3201 3114 3201 3114 3198 3116 3197 3116 3196 3117 3196 3117 3195 3118 3194 3119 3194 3119 3194 3119 3193 3118 3193 3118 3193 3118 3192 3118 3190 3118 3189 3118 3189 3118 3188 3118 3187 3117 3187 3116 3185 3115 3184 3115 3184 3114 3184 3113 3184 3113 3184 3113 3183 3112 3183 3112 3182 3112 3182 3112 3180 3112 3180 3112 3180 3111 3178 3111 3177 3111 3176 3112 3176 3112 3175 3111 3175 3110 3176 3110 3176 3110 3176 3108 3176 3107 3175 3107 3175 3107 3174 3107 3172 3107 3171 3107 3171 3107 3170 3107 3170 3108 3170 3108 3170 3109 3170 3111 3170 3111 3169 3111 3169 3110 3169 3110 3167 3106 3169 3104 3169 3104 3170 3104 3170 3103 3170 3101 3167 3097 3167 3097 3167 3096 3166 3096 3165 3095 3164 3094 3164 3093 3165 3092 3163 3090 3162 3090 3162 3090 3161 3090 3161 3090 3160 3087 3160 3087 3161 3086 3162 3085 3163 3086 3163 3086 3164 3086 3167 3084 3167 3084 3167 3083 3168 3082 3168 3081 3168 3078 3168 3078 3168 3077 3168 3076 3167 3076 3167 3073 3167 3072 3167 3072 3166 3069 3165 3068 3164 3067 3164 3066 3163 3066 3161 3064 3161 3063 3161 3063 3159 3061 3159 3061 3159 3060 3158 3059 3156 3057 3154 3053 3154 3052 3154 3051 3153 3051 3152 3049 3152 3049 3151 3047 3150 3045 3149 3043 3148 3040 3148 3040 3148 3039 3147 3037 3147 3037 3147 3034 3145 3031 3145 3031 3144 3028 3144 3027 3141 3024 3141 3024 3140 3024 3139 3021 3138 3020 3138 3019 3138 3019 3141 3018 3141 3017 3142 3018 3142 3018 3143 3017 3143 3016 3144 3014 3145 3011 3145 3011 3148 3010 3148 3010 3148 3011 3149 3011 3149 3011 3149 3011 M 3336 3022 3335 3022 3335 3021 3333 3019 3333 3019 3332 3019 3331 3019 3330 3019 3330 3019 3330 3020 3329 3020 3328 3020 3328 3021 3327 3021 3325 3021 3325 3021 3324 3022 3323 3023 3322 3023 3321 3024 3319 3024 3316 3026 3316 3027 3317 3027 3316 3027 3315 3029 3314 3030 3313 3030 3312 3033 3311 3034 3311 3034 3311 3034 3310 3034 3310 3035 3309 3035 3306 3036 3307 3036 3307 3037 3308 3037 3309 3039 3309 3040 3310 3041 3310 3042 3311 3042 3312 3045 3312 3047 3313 3047 3314 3047 3315 3048 3315 3049 3316 3049 3318 3051 3321 3052 3322 3052 3323 3052 3323 3052 3325 3050 3325 3050 3326 3047 3327 3046 3328 3045 3328 3044 3329 3044 3331 3044 3332 3044 3333 3044 3335 3043 3336 3043 3337 3043 3339 3042 3339 3041 3340 3041 3341 3040 3341 3039 3340 3039 3340 3039 3340 3038 3340 3038 3341 3037 3341 3036 3342 3036 3342 3036 3343 3036 3343 3036 3343 3035 3343 3034 3343 3033 3344 3033 3344 3033 3345 3033 3345 3033 3345 3031 3345 3030 3343 3027 3343 3027 3341 3026 3338 3024 3337 3024 3337 3023 3337 3022 3336 3022 3336 3022 M 3107 2925 3107 2925 3109 2924 3109 2924 3109 2929 3109 2930 3110 2931 3110 2932 3110 2933 3106 2932 3106 2932 3106 2932 3106 2932 3105 2931 3105 2930 3105 2929 3106 2928 3106 2929 3106 2929 3106 2930 3107 2929 3107 2928 3107 2927 3107 2925 3107 2925 M 3479 3313 3479 3313 3478 3313 3477 3313 3477 3313 3476 3313 3476 3313 3476 3312 3476 3312 3475 3312 3475 3312 3475 3312 3475 3312 3476 3311 3477 3310 3477 3310 3477 3310 3478 3311 3479 3311 3479 3311 3480 3311 3480 3312 3480 3313 3479 3313 3479 3313" />
+<path id="sn" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2646 2360 2645 2360 2643 2360 2641 2360 2637 2360 2637 2360 2632 2360 2630 2361 2630 2361 2629 2362 2626 2363 2624 2364 2622 2364 2621 2364 2620 2364 2619 2364 2619 2363 2619 2363 2618 2363 2618 2363 2616 2363 2613 2365 2611 2365 2611 2365 2609 2365 2608 2365 2608 2365 2608 2366 2608 2365 2607 2364 2607 2364 2607 2363 2607 2363 2607 2362 2610 2361 2611 2361 2613 2362 2613 2362 2614 2362 2615 2361 2616 2361 2616 2362 2618 2361 2619 2361 2619 2361 2620 2361 2620 2362 2622 2362 2623 2362 2623 2361 2624 2361 2624 2362 2625 2362 2625 2362 2626 2362 2627 2361 2627 2360 2627 2359 2627 2358 2629 2358 2629 2358 2629 2358 2628 2358 2627 2358 2627 2358 2626 2359 2627 2359 2627 2360 2627 2361 2626 2362 2625 2362 2625 2362 2625 2361 2624 2361 2623 2361 2622 2361 2621 2361 2620 2361 2620 2360 2619 2360 2619 2359 2619 2360 2618 2361 2617 2361 2616 2361 2615 2361 2614 2362 2614 2362 2613 2362 2612 2361 2610 2360 2610 2359 2610 2358 2609 2359 2609 2360 2609 2360 2609 2361 2608 2362 2607 2362 2607 2362 2607 2359 2607 2358 2607 2358 2607 2357 2607 2356 2607 2355 2607 2354 2607 2354 2607 2354 2608 2352 2610 2352 2619 2352 2621 2352 2622 2352 2622 2352 2622 2351 2623 2349 2629 2349 2630 2349 2630 2349 2631 2349 2631 2349 2631 2349 2632 2348 2632 2348 2632 2347 2632 2347 2632 2346 2633 2346 2633 2345 2634 2345 2634 2346 2635 2346 2636 2347 2636 2347 2636 2347 2637 2348 2638 2348 2639 2348 2639 2348 2640 2349 2640 2349 2640 2349 2641 2349 2643 2349 2643 2350 2645 2351 2646 2351 2648 2351 2648 2351 2649 2351 2649 2351 2650 2350 2651 2350 2652 2350 2653 2350 2654 2350 2654 2350 2654 2349 2655 2349 2655 2348 2655 2348 2654 2347 2654 2347 2653 2347 2653 2346 2653 2346 2652 2346 2650 2346 2649 2346 2648 2347 2648 2347 2648 2347 2646 2348 2645 2347 2645 2347 2645 2347 2644 2346 2644 2346 2644 2346 2644 2345 2643 2345 2643 2344 2642 2344 2642 2344 2641 2344 2641 2344 2641 2344 2640 2345 2640 2345 2639 2344 2639 2344 2639 2344 2638 2343 2638 2343 2638 2342 2638 2342 2637 2342 2637 2342 2634 2342 2633 2342 2632 2343 2631 2343 2631 2343 2631 2342 2630 2342 2630 2342 2629 2343 2628 2343 2628 2344 2628 2344 2628 2345 2628 2345 2626 2345 2625 2345 2621 2345 2618 2345 2617 2345 2610 2345 2610 2344 2609 2344 2609 2343 2609 2342 2610 2342 2610 2342 2611 2341 2611 2342 2612 2341 2612 2340 2610 2341 2608 2343 2608 2342 2608 2341 2608 2340 2608 2339 2608 2339 2609 2339 2609 2340 2610 2339 2610 2339 2611 2338 2611 2337 2613 2337 2614 2336 2614 2336 2613 2336 2612 2336 2611 2337 2611 2337 2610 2338 2609 2339 2609 2339 2607 2339 2607 2337 2606 2337 2606 2336 2605 2336 2605 2335 2604 2333 2604 2332 2603 2332 2603 2332 2602 2332 2602 2331 2602 2330 2601 2329 2601 2329 2601 2328 2600 2328 2600 2328 2598 2327 2597 2327 2597 2327 2597 2328 2597 2328 2596 2328 2595 2327 2596 2327 2596 2327 2597 2326 2597 2326 2600 2325 2601 2325 2601 2324 2601 2324 2601 2324 2604 2321 2605 2319 2606 2318 2607 2317 2607 2316 2608 2316 2608 2315 2608 2315 2608 2315 2609 2314 2611 2311 2611 2310 2611 2310 2611 2310 2611 2307 2611 2306 2611 2305 2613 2303 2614 2303 2614 2302 2614 2301 2614 2300 2615 2299 2615 2299 2617 2298 2618 2298 2618 2299 2619 2299 2620 2299 2621 2299 2621 2299 2622 2299 2623 2299 2624 2299 2625 2299 2626 2299 2627 2298 2628 2298 2630 2298 2632 2298 2634 2297 2635 2297 2635 2296 2636 2296 2636 2296 2636 2296 2636 2297 2637 2297 2638 2297 2639 2297 2641 2297 2643 2297 2644 2297 2645 2297 2646 2297 2648 2298 2651 2301 2652 2302 2652 2303 2654 2305 2656 2304 2656 2304 2656 2305 2657 2305 2657 2305 2658 2305 2659 2305 2661 2306 2662 2308 2663 2312 2664 2313 2666 2315 2666 2315 2666 2315 2668 2315 2668 2317 2668 2317 2669 2317 2669 2318 2670 2318 2670 2318 2670 2319 2669 2319 2670 2320 2671 2321 2672 2321 2672 2322 2673 2321 2673 2321 2676 2323 2676 2324 2676 2324 2677 2325 2679 2326 2679 2327 2679 2327 2680 2329 2680 2330 2680 2331 2680 2333 2681 2333 2683 2334 2684 2336 2684 2336 2683 2338 2683 2339 2683 2339 2684 2340 2684 2340 2684 2340 2684 2341 2684 2341 2684 2342 2684 2342 2684 2342 2684 2343 2683 2343 2683 2343 2682 2344 2682 2344 2683 2345 2683 2346 2684 2346 2685 2348 2685 2349 2686 2350 2687 2349 2687 2348 2688 2348 2689 2349 2690 2349 2690 2350 2691 2351 2690 2351 2691 2353 2691 2353 2692 2353 2693 2355 2693 2356 2693 2358 2693 2360 2693 2362 2693 2362 2693 2364 2693 2364 2692 2364 2692 2364 2691 2364 2689 2364 2689 2364 2688 2365 2688 2365 2687 2365 2686 2365 2685 2364 2683 2364 2681 2365 2681 2365 2681 2365 2680 2365 2678 2366 2677 2365 2677 2365 2676 2365 2676 2365 2675 2365 2674 2365 2674 2365 2673 2364 2671 2363 2670 2363 2669 2362 2669 2362 2668 2362 2668 2363 2667 2363 2666 2363 2666 2362 2666 2362 2667 2361 2666 2361 2664 2360 2662 2360 2662 2360 2657 2360 2656 2360 2654 2360 2651 2360 2649 2360 2646 2360" />
+<path id="sh" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2784 2818 2783 2818 2783 2818 2783 2818 2782 2818 2783 2817 2783 2817 2783 2817 2784 2817 2784 2817 2784 2817 2785 2817 2785 2817 2785 2818 2784 2818 2784 2818 2784 2818" />
+<path id="si" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3094 1819 3095 1819 3096 1819 3098 1820 3100 1820 3100 1820 3101 1820 3101 1821 3106 1821 3107 1821 3112 1820 3112 1819 3112 1819 3112 1818 3115 1817 3116 1817 3116 1817 3117 1817 3121 1817 3124 1817 3127 1816 3128 1816 3128 1816 3130 1816 3130 1814 3131 1814 3132 1814 3133 1814 3133 1814 3134 1814 3135 1814 3135 1814 3136 1814 3136 1815 3136 1815 3136 1816 3136 1816 3137 1816 3137 1817 3137 1817 3139 1820 3140 1820 3140 1820 3140 1820 3139 1820 3138 1820 3138 1819 3137 1819 3136 1819 3135 1819 3135 1820 3135 1820 3135 1821 3133 1821 3132 1822 3132 1822 3132 1822 3131 1823 3127 1824 3126 1824 3125 1824 3124 1825 3124 1825 3124 1826 3125 1826 3125 1827 3126 1827 3126 1829 3126 1830 3125 1831 3125 1830 3124 1830 3123 1830 3120 1832 3120 1832 3119 1832 3119 1833 3120 1832 3120 1833 3119 1834 3119 1834 3119 1835 3119 1836 3117 1837 3117 1837 3116 1836 3114 1836 3113 1836 3112 1836 3112 1836 3110 1835 3109 1834 3108 1834 3108 1833 3108 1833 3107 1834 3107 1835 3105 1836 3105 1836 3101 1836 3098 1836 3098 1836 3097 1837 3094 1837 3093 1837 3093 1837 3092 1836 3092 1836 3092 1835 3093 1835 3095 1835 3094 1834 3095 1834 3096 1834 3096 1834 3097 1834 3096 1832 3095 1832 3094 1831 3092 1831 3092 1830 3092 1830 3092 1829 3093 1829 3093 1828 3092 1828 3092 1828 3091 1828 3091 1828 3090 1828 3091 1827 3091 1827 3092 1826 3092 1826 3093 1825 3093 1825 3091 1824 3090 1824 3090 1824 3089 1824 3089 1823 3090 1822 3091 1822 3093 1821 3094 1821 3094 1820 3094 1819 3094 1819" />
+<path id="sl" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2702 2442 2701 2442 2701 2443 2698 2445 2697 2445 2697 2445 2697 2445 2696 2447 2695 2447 2695 2447 2694 2447 2694 2448 2694 2449 2694 2449 2693 2450 2693 2452 2692 2452 2691 2452 2691 2452 2690 2451 2689 2450 2689 2450 2688 2449 2686 2449 2686 2448 2685 2448 2678 2445 2677 2445 2676 2445 2676 2445 2675 2444 2675 2444 2676 2443 2676 2442 2677 2442 2678 2442 2678 2442 2680 2442 2680 2442 2680 2441 2679 2441 2679 2441 2679 2442 2677 2442 2676 2442 2676 2442 2675 2441 2674 2440 2672 2439 2671 2439 2669 2438 2668 2436 2669 2436 2669 2435 2669 2433 2668 2432 2668 2432 2668 2431 2668 2431 2668 2431 2667 2431 2665 2432 2665 2431 2664 2429 2663 2428 2663 2427 2664 2427 2665 2427 2665 2428 2666 2429 2667 2429 2667 2429 2666 2428 2666 2428 2665 2428 2666 2427 2667 2426 2668 2426 2668 2426 2669 2426 2668 2425 2667 2425 2666 2426 2665 2426 2664 2426 2664 2426 2664 2424 2663 2422 2664 2422 2664 2421 2665 2421 2665 2420 2664 2420 2663 2419 2663 2419 2663 2418 2663 2418 2663 2418 2664 2417 2665 2418 2666 2418 2666 2418 2667 2417 2667 2417 2668 2416 2668 2415 2668 2414 2669 2414 2670 2414 2670 2414 2671 2414 2672 2412 2673 2411 2673 2410 2673 2409 2674 2409 2674 2408 2675 2405 2676 2405 2680 2404 2680 2404 2681 2405 2681 2405 2682 2405 2682 2405 2685 2404 2685 2403 2685 2403 2690 2403 2690 2403 2692 2403 2692 2403 2696 2403 2697 2403 2698 2405 2698 2406 2699 2406 2699 2407 2700 2407 2701 2409 2702 2411 2703 2413 2704 2413 2705 2414 2705 2415 2704 2415 2704 2416 2703 2417 2704 2418 2704 2418 2706 2418 2706 2418 2706 2418 2706 2419 2706 2419 2706 2421 2706 2422 2707 2423 2707 2425 2706 2425 2705 2426 2704 2429 2704 2430 2706 2430 2707 2430 2707 2429 2708 2428 2709 2428 2709 2427 2710 2427 2711 2427 2711 2427 2711 2432 2710 2432 2710 2432 2708 2432 2708 2432 2707 2433 2707 2433 2706 2434 2706 2437 2706 2438 2705 2439 2704 2439 2704 2439 2704 2439 2703 2440 2702 2442 2702 2442 2702 2442 M 2669 2441 2672 2441 2673 2441 2673 2440 2673 2441 2674 2441 2675 2441 2675 2442 2675 2443 2675 2444 2674 2444 2674 2444 2674 2443 2674 2443 2673 2443 2673 2443 2672 2443 2672 2443 2672 2443 2671 2442 2671 2442 2668 2442 2669 2441 2669 2441" />
+<path id="sm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3073 1860 3074 1860 3075 1860 3075 1861 3075 1861 3075 1861 3074 1861 3073 1861 3073 1860 3073 1860" />
+<path id="sg" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4536 2540 4536 2541 4536 2541 4536 2541 4535 2541 4534 2542 4533 2542 4530 2542 4530 2541 4530 2541 4531 2540 4531 2540 4531 2540 4531 2540 4532 2540 4533 2539 4533 2539 4533 2539 4534 2540 4534 2540 4534 2540 4536 2540 4536 2540" />
+<path id="so" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3547 2496 3547 2496 3548 2496 3548 2495 3549 2495 3550 2495 3550 2495 3552 2495 3552 2495 3554 2495 3556 2494 3556 2494 3557 2494 3558 2494 3558 2494 3559 2494 3560 2494 3560 2494 3561 2493 3561 2492 3561 2491 3561 2491 3561 2491 3562 2490 3563 2489 3564 2488 3565 2488 3567 2487 3568 2486 3570 2485 3571 2485 3571 2485 3573 2484 3574 2484 3574 2484 3575 2484 3575 2484 3575 2484 3576 2484 3577 2484 3577 2483 3577 2483 3579 2483 3581 2483 3582 2484 3585 2484 3586 2484 3593 2484 3594 2483 3594 2483 3595 2482 3600 2477 3602 2475 3605 2471 3609 2467 3610 2466 3612 2464 3619 2457 3626 2450 3635 2441 3636 2440 3638 2438 3640 2436 3641 2435 3641 2435 3640 2435 3639 2435 3638 2435 3635 2435 3627 2435 3626 2435 3626 2435 3622 2434 3619 2432 3615 2431 3611 2430 3604 2427 3600 2426 3597 2425 3594 2424 3588 2422 3578 2419 3573 2415 3572 2413 3571 2413 3571 2413 3569 2412 3569 2412 3569 2411 3569 2411 3568 2410 3567 2409 3567 2409 3566 2409 3566 2408 3566 2408 3566 2408 3566 2407 3566 2406 3565 2405 3565 2404 3565 2404 3564 2404 3564 2404 3563 2404 3563 2404 3563 2403 3562 2403 3562 2402 3562 2401 3561 2401 3561 2401 3561 2400 3560 2400 3560 2400 3559 2399 3559 2398 3559 2397 3559 2397 3559 2396 3558 2396 3558 2395 3557 2395 3557 2394 3557 2393 3556 2393 3558 2390 3559 2389 3559 2389 3560 2388 3561 2387 3561 2386 3561 2386 3563 2384 3564 2383 3565 2381 3565 2380 3565 2380 3566 2379 3566 2380 3568 2381 3569 2381 3570 2383 3570 2383 3570 2383 3572 2386 3573 2388 3575 2390 3575 2390 3577 2392 3581 2394 3581 2395 3582 2395 3582 2396 3583 2396 3584 2396 3587 2396 3587 2396 3588 2396 3588 2396 3588 2396 3589 2396 3589 2395 3590 2395 3591 2396 3591 2396 3591 2396 3592 2396 3593 2396 3593 2396 3594 2396 3596 2394 3598 2393 3598 2393 3599 2392 3600 2392 3600 2392 3601 2392 3602 2392 3604 2390 3605 2390 3606 2389 3607 2389 3607 2389 3608 2389 3608 2390 3609 2390 3611 2390 3612 2390 3612 2390 3613 2390 3614 2390 3614 2391 3614 2391 3615 2392 3616 2392 3617 2392 3620 2391 3622 2390 3625 2388 3627 2387 3627 2387 3628 2386 3628 2386 3631 2384 3632 2384 3632 2384 3633 2384 3634 2384 3634 2384 3635 2385 3636 2385 3636 2385 3637 2385 3637 2385 3638 2385 3638 2385 3640 2385 3641 2385 3644 2385 3644 2384 3645 2384 3645 2383 3647 2382 3650 2382 3652 2382 3655 2382 3655 2383 3656 2383 3657 2383 3657 2383 3658 2383 3661 2382 3664 2381 3666 2381 3666 2380 3667 2380 3668 2379 3669 2379 3669 2379 3670 2380 3670 2380 3675 2379 3675 2379 3678 2377 3681 2376 3681 2375 3682 2375 3682 2374 3682 2374 3682 2373 3682 2373 3683 2372 3684 2372 3686 2371 3688 2372 3692 2373 3694 2373 3694 2374 3693 2376 3693 2377 3692 2378 3692 2379 3691 2382 3691 2384 3691 2384 3691 2384 3692 2384 3692 2385 3692 2386 3692 2386 3691 2387 3691 2387 3692 2391 3692 2393 3691 2395 3691 2395 3690 2395 3690 2396 3690 2396 3692 2396 3693 2395 3693 2394 3696 2395 3696 2396 3696 2396 3695 2397 3694 2397 3694 2396 3693 2396 3692 2396 3692 2396 3691 2396 3691 2396 3690 2397 3689 2397 3688 2397 3688 2398 3688 2400 3688 2402 3687 2409 3686 2410 3686 2410 3687 2410 3687 2411 3687 2411 3687 2412 3687 2412 3686 2414 3685 2414 3685 2414 3684 2415 3684 2416 3684 2416 3684 2416 3684 2417 3684 2417 3684 2418 3682 2419 3682 2419 3682 2419 3681 2420 3680 2421 3679 2425 3679 2426 3679 2426 3679 2426 3678 2427 3678 2427 3677 2429 3677 2429 3676 2429 3676 2430 3676 2430 3676 2430 3676 2431 3675 2432 3675 2433 3674 2433 3674 2433 3673 2433 3673 2434 3672 2434 3671 2435 3671 2436 3671 2436 3671 2437 3670 2437 3670 2437 3670 2439 3669 2442 3668 2444 3668 2444 3668 2444 3668 2444 3667 2445 3667 2446 3665 2448 3664 2450 3664 2450 3663 2451 3662 2454 3661 2455 3659 2459 3659 2460 3659 2460 3659 2461 3659 2462 3659 2463 3659 2463 3659 2464 3658 2464 3658 2464 3655 2470 3655 2470 3652 2474 3651 2476 3650 2478 3648 2480 3647 2481 3647 2482 3645 2484 3645 2484 3644 2485 3644 2486 3644 2486 3643 2487 3643 2489 3642 2490 3641 2491 3640 2492 3640 2493 3637 2496 3636 2496 3635 2497 3635 2498 3634 2498 3634 2499 3633 2501 3632 2502 3629 2504 3629 2504 3629 2505 3627 2506 3627 2506 3626 2507 3626 2508 3624 2510 3622 2512 3618 2515 3617 2516 3615 2518 3614 2520 3613 2521 3611 2522 3610 2523 3610 2524 3610 2524 3609 2525 3608 2525 3606 2526 3605 2527 3603 2528 3603 2528 3602 2528 3600 2530 3598 2531 3597 2531 3596 2532 3596 2532 3595 2532 3595 2532 3594 2532 3594 2533 3593 2534 3591 2534 3587 2537 3586 2538 3583 2540 3581 2543 3580 2543 3580 2544 3579 2544 3577 2546 3576 2547 3576 2547 3575 2547 3574 2548 3572 2550 3570 2552 3569 2553 3567 2555 3566 2556 3566 2556 3566 2556 3565 2557 3564 2558 3562 2561 3560 2563 3559 2564 3558 2564 3557 2565 3556 2566 3555 2567 3554 2568 3553 2570 3553 2570 3553 2570 3552 2570 3552 2571 3551 2573 3549 2575 3549 2575 3548 2576 3547 2577 3545 2579 3545 2581 3543 2584 3541 2586 3540 2588 3539 2589 3539 2589 3539 2589 3539 2588 3536 2584 3532 2580 3530 2576 3530 2563 3530 2542 3530 2526 3530 2519 3530 2517 3534 2513 3535 2512 3543 2501 3544 2499 3544 2499 3545 2498 3545 2498 3545 2497 3546 2496 3547 2496" />
+<path id="es" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2764 1919 2765 1920 2765 1919 2765 1919 2766 1919 2766 1917 2766 1915 2766 1912 2766 1910 2765 1908 2765 1908 2764 1907 2764 1907 2766 1907 2766 1907 2767 1907 2767 1906 2767 1905 2768 1904 2769 1904 2769 1904 2770 1904 2770 1904 2771 1903 2772 1903 2773 1902 2774 1901 2776 1899 2776 1898 2775 1897 2774 1897 2774 1897 2772 1897 2772 1897 2771 1897 2770 1897 2770 1895 2771 1894 2770 1893 2770 1892 2768 1893 2765 1893 2764 1892 2763 1892 2763 1892 2762 1892 2762 1892 2762 1892 2761 1892 2760 1892 2760 1893 2760 1893 2760 1894 2760 1894 2759 1894 2758 1894 2757 1894 2753 1894 2754 1894 2752 1893 2751 1893 2749 1894 2749 1894 2748 1894 2747 1894 2746 1895 2746 1895 2746 1895 2745 1895 2745 1895 2745 1894 2745 1894 2744 1894 2744 1893 2744 1893 2745 1892 2745 1892 2746 1891 2746 1891 2746 1891 2744 1889 2743 1889 2742 1890 2740 1890 2740 1890 2739 1890 2737 1891 2737 1891 2735 1892 2735 1892 2735 1893 2735 1893 2734 1893 2734 1893 2733 1894 2733 1893 2733 1890 2734 1889 2735 1888 2736 1888 2737 1887 2738 1886 2738 1886 2737 1886 2737 1887 2736 1887 2735 1888 2735 1888 2733 1888 2734 1887 2734 1886 2735 1886 2736 1885 2736 1885 2737 1885 2736 1885 2735 1885 2735 1885 2734 1885 2733 1885 2733 1884 2733 1884 2733 1884 2733 1884 2734 1884 2734 1884 2734 1883 2734 1883 2734 1882 2735 1882 2735 1881 2736 1881 2736 1881 2734 1881 2733 1882 2732 1882 2731 1883 2731 1883 2730 1882 2730 1882 2731 1881 2731 1880 2731 1880 2733 1879 2731 1879 2730 1880 2730 1880 2729 1879 2729 1879 2729 1878 2729 1877 2729 1877 2728 1876 2727 1877 2727 1877 2727 1875 2728 1873 2729 1873 2729 1873 2730 1873 2731 1872 2732 1872 2732 1871 2732 1871 2733 1871 2734 1870 2735 1871 2736 1871 2736 1871 2736 1871 2737 1871 2741 1870 2742 1869 2743 1867 2747 1864 2749 1863 2749 1863 2750 1864 2750 1864 2752 1864 2752 1864 2755 1864 2756 1864 2757 1865 2758 1865 2758 1866 2759 1867 2760 1867 2763 1867 2762 1868 2763 1867 2763 1867 2764 1866 2767 1867 2770 1867 2771 1867 2774 1867 2774 1867 2778 1867 2778 1867 2780 1866 2781 1866 2781 1865 2783 1866 2783 1866 2783 1866 2784 1867 2785 1867 2785 1867 2786 1867 2788 1867 2789 1867 2791 1867 2791 1867 2791 1868 2792 1868 2794 1868 2795 1868 2797 1869 2799 1869 2799 1869 2801 1869 2802 1869 2803 1869 2803 1869 2804 1869 2805 1869 2806 1869 2807 1869 2808 1869 2809 1869 2810 1869 2812 1868 2814 1868 2815 1868 2815 1868 2818 1868 2818 1868 2820 1868 2822 1869 2823 1869 2825 1870 2827 1870 2827 1870 2828 1869 2829 1869 2830 1869 2831 1869 2834 1869 2835 1870 2835 1870 2836 1870 2837 1871 2838 1871 2840 1871 2841 1871 2843 1870 2846 1870 2846 1869 2847 1870 2847 1870 2847 1871 2848 1871 2849 1871 2851 1871 2852 1871 2853 1872 2853 1872 2852 1874 2852 1874 2852 1875 2853 1875 2853 1875 2854 1875 2856 1875 2858 1876 2859 1876 2860 1876 2862 1877 2862 1876 2863 1876 2863 1877 2863 1877 2863 1877 2864 1878 2866 1879 2869 1879 2870 1878 2870 1878 2870 1878 2871 1879 2872 1879 2872 1879 2873 1879 2873 1880 2874 1880 2875 1881 2877 1880 2877 1880 2878 1880 2879 1880 2882 1881 2883 1881 2884 1881 2885 1881 2886 1881 2886 1881 2886 1880 2886 1880 2886 1880 2885 1879 2886 1878 2886 1878 2886 1878 2888 1878 2889 1879 2892 1879 2893 1879 2893 1880 2894 1880 2896 1880 2897 1880 2897 1881 2898 1881 2898 1882 2898 1882 2898 1883 2898 1884 2898 1885 2899 1885 2900 1885 2901 1884 2902 1884 2903 1884 2903 1884 2905 1884 2905 1885 2906 1885 2907 1886 2907 1886 2907 1886 2908 1886 2908 1886 2909 1885 2909 1885 2911 1885 2912 1885 2914 1886 2915 1886 2915 1886 2918 1886 2917 1886 2918 1885 2919 1885 2922 1884 2924 1884 2924 1885 2925 1885 2926 1885 2926 1885 2926 1885 2925 1886 2926 1886 2926 1886 2927 1886 2927 1886 2928 1887 2927 1887 2927 1888 2926 1888 2926 1888 2925 1888 2925 1888 2925 1888 2925 1889 2925 1890 2926 1890 2926 1891 2926 1893 2926 1893 2926 1894 2925 1894 2923 1895 2922 1896 2918 1898 2918 1898 2917 1898 2916 1898 2916 1899 2911 1900 2911 1901 2910 1902 2909 1903 2909 1903 2908 1903 2908 1903 2907 1903 2905 1904 2903 1904 2902 1904 2902 1904 2901 1904 2901 1905 2899 1905 2899 1905 2896 1906 2894 1906 2892 1907 2891 1907 2890 1907 2890 1907 2890 1908 2889 1908 2886 1911 2887 1911 2889 1912 2889 1912 2889 1912 2889 1912 2889 1913 2886 1914 2886 1915 2885 1915 2885 1914 2886 1914 2887 1913 2886 1913 2885 1914 2884 1914 2884 1915 2883 1915 2883 1915 2882 1916 2881 1919 2879 1920 2878 1921 2876 1923 2876 1923 2874 1925 2874 1926 2873 1926 2872 1928 2870 1931 2870 1932 2870 1933 2871 1937 2872 1939 2872 1939 2873 1940 2874 1941 2874 1941 2874 1941 2875 1942 2876 1942 2876 1942 2877 1942 2878 1943 2878 1943 2878 1944 2878 1944 2877 1945 2876 1945 2875 1946 2874 1946 2873 1947 2870 1948 2870 1948 2869 1949 2867 1950 2865 1953 2865 1955 2863 1957 2863 1958 2863 1958 2862 1959 2862 1960 2861 1960 2862 1961 2862 1961 2863 1961 2864 1962 2863 1962 2863 1962 2860 1963 2860 1963 2859 1962 2858 1962 2855 1962 2854 1963 2853 1963 2852 1964 2852 1964 2851 1965 2851 1965 2850 1965 2849 1966 2849 1966 2848 1966 2846 1968 2846 1968 2846 1969 2846 1970 2846 1970 2845 1972 2844 1972 2843 1973 2842 1975 2842 1975 2841 1976 2840 1976 2840 1976 2839 1975 2838 1974 2838 1974 2835 1974 2834 1975 2834 1975 2833 1975 2833 1976 2833 1976 2832 1977 2832 1977 2831 1977 2829 1976 2829 1976 2828 1976 2825 1976 2823 1976 2823 1976 2822 1976 2821 1976 2820 1976 2820 1976 2819 1976 2819 1976 2817 1976 2817 1976 2816 1976 2816 1976 2815 1976 2815 1976 2814 1976 2814 1975 2811 1976 2808 1976 2807 1976 2806 1976 2805 1976 2805 1976 2804 1976 2804 1977 2803 1978 2801 1979 2800 1980 2799 1980 2799 1980 2798 1980 2797 1980 2797 1980 2797 1980 2796 1980 2794 1980 2792 1981 2792 1982 2790 1984 2790 1984 2790 1985 2790 1985 2789 1985 2789 1985 2788 1985 2788 1985 2788 1986 2788 1987 2785 1987 2782 1986 2782 1986 2782 1986 2782 1985 2781 1985 2781 1985 2779 1985 2779 1985 2778 1985 2777 1983 2776 1981 2775 1980 2775 1980 2776 1980 2776 1979 2775 1978 2774 1978 2774 1978 2773 1978 2773 1977 2772 1976 2772 1976 2772 1976 2773 1974 2770 1971 2768 1970 2765 1969 2764 1968 2764 1968 2764 1969 2763 1968 2762 1968 2762 1968 2761 1968 2760 1968 2759 1968 2759 1968 2758 1969 2758 1969 2757 1969 2757 1968 2756 1967 2756 1966 2756 1965 2756 1964 2756 1964 2755 1964 2755 1963 2755 1963 2755 1963 2756 1960 2756 1960 2757 1959 2758 1959 2759 1958 2759 1957 2759 1956 2759 1956 2760 1956 2761 1955 2763 1955 2764 1953 2764 1953 2764 1952 2764 1952 2763 1952 2763 1952 2762 1953 2762 1953 2761 1952 2761 1952 2760 1951 2760 1950 2759 1949 2758 1949 2758 1948 2759 1944 2759 1944 2760 1944 2761 1943 2762 1942 2762 1942 2764 1939 2764 1939 2763 1938 2763 1938 2762 1938 2762 1938 2761 1938 2761 1938 2759 1936 2758 1934 2758 1933 2757 1932 2755 1930 2755 1929 2755 1929 2757 1929 2758 1929 2758 1929 2759 1929 2760 1929 2761 1929 2762 1929 2763 1929 2763 1928 2765 1923 2765 1923 2764 1922 2764 1922 2763 1922 2763 1921 2763 1921 2763 1920 2764 1919 M 2943 1927 2943 1927 2943 1927 2941 1926 2940 1926 2940 1925 2940 1925 2940 1925 2939 1925 2939 1925 2938 1925 2938 1925 2938 1925 2937 1925 2937 1925 2936 1925 2936 1923 2936 1923 2937 1923 2938 1923 2941 1923 2942 1923 2943 1924 2943 1924 2944 1926 2944 1926 2944 1926 2944 1927 2943 1927 M 2913 1931 2913 1931 2913 1930 2916 1928 2918 1927 2919 1926 2923 1925 2924 1925 2924 1925 2925 1927 2925 1927 2926 1927 2927 1928 2927 1928 2928 1928 2928 1927 2929 1927 2930 1928 2931 1928 2930 1929 2930 1929 2929 1931 2928 1931 2928 1931 2928 1932 2928 1932 2927 1933 2927 1934 2924 1935 2924 1935 2923 1935 2923 1934 2920 1934 2920 1934 2919 1933 2919 1932 2919 1932 2919 1931 2918 1931 2918 1931 2916 1931 2914 1931 2913 1931 M 2897 1942 2897 1942 2897 1942 2897 1942 2895 1942 2895 1942 2895 1942 2894 1941 2895 1940 2895 1940 2896 1939 2896 1939 2896 1939 2897 1938 2899 1938 2899 1938 2900 1938 2901 1938 2901 1938 2901 1939 2899 1940 2897 1942 2897 1942 M 2897 1945 2897 1945 2897 1945 2897 1945 2897 1944 2897 1944 2897 1944 2898 1944 2900 1945 2900 1945 2900 1945 2900 1945 2899 1945 2899 1945 2899 1945 2898 1945 2898 1945 2897 1945 M 2790 1990 2789 1990 2789 1990 2789 1989 2789 1989 2789 1989 2790 1989 2790 1990 M 2828 1999 2828 1999 2828 1999 2828 1998 2828 1998 2828 1999 2828 1999 M 2655 2102 2654 2102 2654 2101 2654 2099 2654 2099 2655 2098 2655 2098 2657 2097 2658 2097 2660 2095 2660 2096 2661 2096 2661 2097 2660 2099 2660 2099 2659 2100 2659 2100 2658 2100 2657 2101 2656 2101 2656 2101 2656 2101 2656 2101 2655 2102 2655 2102 M 2591 2107 2591 2107 2591 2107 2590 2108 2590 2108 2590 2108 2590 2108 2590 2107 2590 2107 2589 2106 2588 2104 2588 2104 2588 2104 2587 2103 2587 2103 2588 2103 2588 2102 2588 2102 2589 2102 2591 2102 2591 2102 2591 2102 2591 2102 2592 2103 2592 2106 2591 2106 2591 2107 M 2646 2115 2646 2115 2645 2114 2644 2114 2645 2114 2646 2113 2646 2113 2647 2112 2647 2112 2648 2112 2648 2111 2648 2111 2648 2111 2648 2111 2648 2110 2649 2108 2650 2107 2651 2106 2651 2105 2651 2105 2651 2104 2651 2104 2651 2104 2652 2103 2652 2103 2653 2103 2653 2103 2654 2103 2654 2104 2654 2104 2654 2104 2654 2105 2654 2106 2654 2106 2654 2107 2654 2109 2653 2110 2653 2111 2653 2111 2653 2111 2652 2112 2652 2112 2651 2112 2651 2112 2651 2112 2650 2112 2650 2112 2648 2113 2648 2113 2648 2113 2648 2113 2647 2113 2647 2114 2646 2114 2646 2115 2646 2115 M 2609 2116 2608 2115 2608 2114 2607 2114 2607 2113 2607 2113 2606 2112 2605 2110 2606 2109 2606 2109 2606 2109 2607 2109 2607 2109 2608 2109 2610 2109 2612 2109 2613 2108 2613 2107 2613 2107 2613 2107 2613 2107 2615 2106 2617 2106 2617 2107 2617 2107 2616 2108 2616 2108 2616 2108 2614 2109 2614 2110 2613 2112 2613 2113 2612 2114 2611 2115 2611 2115 2610 2115 2610 2115 2609 2115 2609 2116 M 2600 2115 2600 2115 2599 2115 2599 2115 2599 2114 2598 2114 2598 2114 2598 2113 2598 2113 2598 2113 2599 2112 2599 2112 2600 2112 2602 2113 2602 2113 2602 2113 2602 2114 2602 2114 2602 2114 2601 2115 2601 2115 2600 2115 M 2626 2120 2626 2119 2625 2119 2625 2119 2623 2118 2622 2117 2622 2116 2622 2115 2623 2115 2623 2115 2624 2115 2624 2114 2624 2114 2624 2113 2624 2113 2625 2113 2628 2113 2630 2115 2629 2118 2629 2118 2628 2119 2628 2119 2628 2119 2627 2119 2627 2119 2626 2120 M 2588 2121 2587 2121 2585 2120 2585 2119 2585 2119 2585 2119 2585 2119 2585 2119 2586 2119 2587 2119 2587 2119 2587 2119 2587 2118 2589 2118 2589 2118 2589 2118 2589 2118 2589 2118 2589 2119 2589 2119 2589 2119 2588 2120 2588 2121" />
+<path id="serbia" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3196 1883 3196 1881 3196 1881 3195 1881 3195 1881 3194 1880 3194 1880 3195 1880 3195 1879 3196 1879 3196 1879 3198 1880 3200 1878 3200 1877 3199 1877 3199 1877 3197 1876 3197 1876 3195 1876 3195 1875 3194 1874 3193 1874 3191 1873 3190 1873 3189 1873 3189 1873 3188 1872 3187 1871 3187 1871 3186 1870 3183 1869 3183 1868 3182 1867 3183 1867 3185 1866 3186 1867 3186 1866 3187 1865 3187 1864 3186 1864 3186 1864 3186 1863 3185 1863 3184 1862 3182 1860 3182 1860 3183 1860 3184 1860 3185 1860 3186 1860 3187 1860 3188 1859 3188 1859 3188 1859 3186 1858 3184 1856 3182 1855 3181 1855 3181 1855 3180 1854 3180 1854 3181 1851 3182 1851 3183 1848 3184 1848 3184 1847 3185 1846 3184 1846 3183 1845 3181 1845 3180 1845 3179 1846 3179 1846 3179 1845 3179 1845 3180 1843 3180 1842 3181 1840 3181 1840 3182 1840 3182 1841 3184 1841 3185 1841 3185 1840 3185 1840 3185 1840 3184 1840 3184 1840 3183 1840 3183 1840 3182 1839 3181 1839 3180 1839 3178 1838 3178 1836 3179 1836 3179 1836 3180 1836 3180 1835 3179 1835 3178 1835 3178 1835 3177 1835 3177 1835 3177 1834 3177 1834 3178 1833 3178 1831 3177 1831 3177 1831 3176 1830 3176 1829 3176 1829 3176 1829 3179 1828 3180 1827 3181 1827 3181 1828 3183 1828 3186 1827 3187 1826 3187 1826 3188 1825 3189 1825 3190 1825 3190 1825 3192 1825 3194 1825 3196 1825 3198 1825 3199 1826 3199 1826 3199 1827 3200 1828 3200 1828 3203 1829 3203 1829 3204 1829 3205 1831 3205 1831 3206 1832 3206 1832 3207 1831 3207 1832 3207 1833 3207 1834 3207 1834 3207 1836 3207 1836 3210 1838 3211 1839 3215 1840 3216 1840 3217 1840 3218 1841 3218 1841 3219 1841 3217 1843 3216 1844 3217 1844 3217 1844 3218 1844 3218 1844 3219 1845 3219 1845 3219 1845 3218 1846 3218 1846 3218 1846 3217 1846 3216 1846 3216 1846 3217 1847 3218 1847 3218 1847 3219 1847 3219 1847 3220 1848 3220 1848 3220 1849 3221 1849 3222 1849 3223 1849 3225 1849 3226 1850 3227 1850 3227 1850 3227 1851 3228 1852 3229 1852 3229 1852 3231 1850 3231 1850 3231 1850 3231 1849 3233 1848 3234 1848 3234 1849 3235 1849 3235 1849 3236 1850 3236 1850 3237 1850 3237 1850 3238 1850 3239 1851 3238 1851 3238 1851 3237 1851 3237 1851 3236 1851 3236 1851 3234 1852 3234 1852 3235 1854 3235 1854 3236 1855 3236 1855 3237 1855 3237 1855 3237 1855 3237 1856 3237 1856 3237 1856 3236 1857 3236 1858 3235 1859 3233 1860 3232 1862 3233 1864 3235 1868 3236 1869 3237 1869 3238 1869 3239 1870 3240 1870 3240 1871 3241 1872 3241 1872 3242 1873 3242 1874 3242 1874 3238 1877 3237 1878 3236 1877 3236 1877 3235 1878 3233 1879 3234 1882 3234 1883 3235 1883 3235 1883 3235 1884 3235 1885 3235 1885 3234 1886 3233 1886 3232 1886 3232 1886 3230 1886 3230 1887 3228 1887 3227 1887 3224 1886 3223 1887 3223 1887 3222 1888 3222 1888 3221 1888 3220 1888 3218 1887 3216 1889 3215 1889 3214 1889 3213 1888 3212 1888 3209 1890 3207 1890 3207 1891 3207 1892 3207 1893 3206 1894 3206 1894 3204 1894 3204 1894 3204 1893 3204 1893 3204 1892 3204 1891 3203 1888 3203 1888 3202 1887 3201 1887 3200 1887 3198 1886 3198 1886 3198 1885 3197 1883 3196 1883 3196 1883" />
+<path id="lc" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1901 2344 1901 2343 1901 2343 1901 2343 1901 2343 1900 2343 1900 2343 1900 2343 1900 2343 1900 2342 1900 2342 1899 2341 1899 2341 1900 2339 1901 2339 1902 2337 1902 2337 1902 2337 1902 2339 1903 2339 1903 2340 1903 2341 1902 2342 1902 2342 1902 2343 1901 2344 1901 2344" />
+<path id="sd" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3447 2477 3447 2478 3447 2479 3447 2479 3447 2480 3447 2480 3447 2481 3446 2481 3446 2486 3449 2488 3449 2489 3448 2489 3445 2489 3445 2489 3445 2489 3445 2489 3444 2489 3444 2489 3443 2489 3443 2489 3442 2489 3436 2489 3433 2489 3431 2489 3430 2489 3429 2489 3426 2489 3425 2489 3424 2489 3424 2489 3420 2493 3418 2495 3410 2502 3410 2503 3408 2502 3406 2502 3405 2502 3404 2502 3402 2500 3402 2501 3401 2501 3400 2502 3400 2502 3399 2502 3398 2503 3397 2503 3396 2503 3394 2503 3393 2503 3389 2505 3389 2505 3389 2506 3388 2506 3388 2506 3388 2506 3387 2506 3387 2505 3387 2505 3385 2505 3385 2505 3385 2504 3384 2502 3383 2502 3383 2502 3382 2502 3381 2503 3379 2504 3377 2503 3376 2503 3375 2502 3373 2502 3373 2502 3370 2503 3369 2504 3368 2506 3368 2506 3368 2507 3368 2506 3367 2504 3366 2504 3364 2505 3364 2505 3363 2505 3363 2504 3363 2504 3363 2503 3363 2501 3363 2501 3362 2501 3361 2500 3360 2500 3360 2500 3359 2499 3358 2499 3357 2499 3357 2498 3357 2497 3356 2497 3355 2497 3355 2497 3354 2495 3354 2494 3352 2493 3351 2493 3351 2492 3351 2491 3351 2491 3351 2490 3349 2489 3348 2488 3348 2488 3346 2488 3346 2488 3346 2488 3346 2489 3345 2490 3343 2492 3342 2493 3342 2493 3341 2492 3340 2492 3338 2491 3338 2491 3336 2491 3335 2491 3335 2491 3335 2490 3335 2490 3334 2490 3333 2490 3333 2491 3333 2491 3333 2492 3332 2492 3332 2492 3330 2493 3330 2493 3330 2493 3328 2494 3325 2493 3324 2492 3323 2491 3321 2490 3320 2490 3319 2489 3319 2488 3319 2487 3319 2487 3319 2486 3317 2484 3315 2484 3314 2482 3314 2482 3314 2481 3313 2480 3312 2480 3311 2479 3311 2479 3311 2478 3310 2477 3310 2476 3310 2475 3311 2474 3311 2473 3310 2472 3309 2471 3309 2470 3308 2470 3306 2469 3305 2469 3304 2468 3304 2468 3303 2467 3303 2467 3302 2467 3301 2466 3301 2467 3300 2466 3299 2466 3297 2465 3297 2465 3298 2465 3298 2464 3299 2464 3299 2464 3299 2463 3298 2462 3296 2461 3295 2460 3295 2459 3295 2459 3296 2457 3297 2457 3297 2456 3296 2456 3295 2455 3295 2455 3292 2453 3292 2453 3291 2452 3291 2452 3291 2451 3290 2450 3288 2449 3286 2448 3284 2447 3282 2446 3280 2445 3280 2445 3280 2444 3280 2444 3279 2443 3278 2443 3278 2442 3277 2441 3277 2441 3278 2441 3279 2441 3279 2440 3279 2440 3279 2438 3278 2437 3278 2437 3277 2436 3277 2436 3276 2436 3276 2436 3275 2436 3275 2435 3274 2435 3273 2434 3273 2434 3273 2433 3272 2432 3272 2432 3271 2432 3270 2431 3269 2431 3268 2431 3266 2431 3264 2431 3262 2430 3262 2430 3262 2430 3261 2430 3261 2429 3261 2429 3261 2429 3261 2427 3262 2426 3262 2426 3263 2425 3262 2424 3261 2424 3261 2424 3260 2424 3259 2424 3259 2423 3257 2423 3256 2423 3255 2423 3255 2423 3254 2423 3251 2423 3251 2423 3250 2422 3250 2422 3251 2421 3251 2421 3252 2420 3252 2419 3251 2419 3251 2419 3251 2419 3250 2419 3250 2419 3250 2418 3250 2417 3250 2416 3250 2416 3251 2416 3251 2416 3253 2414 3253 2412 3253 2412 3252 2410 3253 2409 3253 2409 3253 2408 3253 2405 3251 2401 3248 2396 3247 2396 3243 2392 3243 2392 3241 2390 3241 2389 3240 2388 3240 2388 3241 2387 3242 2383 3242 2382 3241 2380 3239 2380 3237 2379 3236 2378 3236 2378 3236 2377 3235 2377 3235 2376 3236 2374 3236 2372 3236 2371 3235 2370 3234 2368 3233 2365 3233 2363 3234 2361 3232 2360 3230 2359 3230 2359 3229 2360 3229 2360 3228 2360 3228 2361 3227 2361 3226 2361 3226 2361 3226 2361 3225 2360 3225 2360 3225 2360 3224 2358 3225 2356 3225 2354 3227 2353 3227 2352 3229 2352 3231 2350 3231 2349 3231 2349 3230 2347 3229 2344 3228 2342 3230 2340 3230 2339 3231 2339 3232 2338 3233 2338 3235 2337 3235 2336 3235 2335 3235 2335 3234 2334 3234 2333 3234 2331 3233 2331 3233 2331 3233 2330 3233 2330 3233 2329 3234 2329 3234 2329 3238 2328 3237 2327 3237 2326 3237 2325 3238 2323 3239 2323 3240 2322 3240 2321 3241 2321 3241 2321 3242 2320 3242 2319 3242 2318 3242 2318 3242 2317 3242 2316 3241 2315 3241 2315 3241 2315 3241 2314 3241 2314 3244 2312 3244 2312 3245 2312 3245 2312 3246 2312 3247 2312 3248 2312 3248 2312 3248 2312 3249 2312 3249 2312 3250 2311 3250 2311 3251 2311 3251 2311 3252 2311 3253 2311 3255 2311 3256 2311 3258 2312 3258 2312 3258 2312 3258 2310 3258 2305 3258 2303 3258 2270 3258 2266 3258 2263 3258 2262 3258 2252 3258 2252 3258 2251 3258 2251 3258 2245 3258 2243 3259 2243 3261 2243 3266 2243 3268 2243 3268 2243 3271 2243 3274 2243 3274 2243 3274 2243 3274 2227 3274 2211 3276 2211 3278 2211 3281 2211 3287 2211 3296 2211 3301 2211 3301 2211 3304 2211 3305 2211 3306 2211 3308 2211 3308 2211 3311 2211 3311 2211 3312 2211 3313 2211 3318 2211 3326 2211 3326 2211 3327 2211 3332 2211 3338 2211 3339 2211 3340 2211 3340 2211 3340 2211 3341 2211 3341 2211 3342 2211 3347 2211 3348 2211 3356 2211 3359 2211 3360 2211 3362 2211 3362 2211 3364 2211 3365 2211 3366 2211 3373 2211 3373 2211 3375 2211 3375 2210 3375 2209 3376 2208 3377 2207 3377 2207 3378 2208 3378 2208 3378 2209 3378 2211 3377 2211 3378 2211 3379 2211 3386 2211 3392 2211 3392 2211 3393 2211 3394 2211 3394 2211 3394 2211 3396 2211 3405 2211 3405 2211 3408 2211 3409 2211 3414 2211 3414 2211 3415 2211 3416 2211 3417 2211 3419 2211 3420 2211 3420 2211 3424 2211 3429 2211 3429 2211 3432 2211 3433 2211 3434 2211 3434 2211 3436 2211 3440 2211 3441 2211 3447 2211 3449 2211 3450 2211 3454 2211 3455 2211 3457 2211 3459 2211 3461 2211 3462 2211 3463 2211 3464 2211 3464 2211 3464 2212 3464 2215 3464 2217 3465 2217 3466 2220 3467 2222 3468 2222 3468 2223 3469 2223 3469 2224 3470 2224 3470 2225 3471 2226 3471 2227 3470 2227 3470 2227 3469 2226 3470 2226 3470 2226 3470 2226 3470 2225 3468 2224 3468 2224 3467 2224 3468 2228 3469 2230 3469 2232 3469 2232 3469 2233 3470 2234 3470 2236 3469 2236 3469 2237 3469 2238 3469 2240 3469 2243 3469 2244 3470 2245 3470 2245 3470 2246 3470 2247 3470 2247 3470 2248 3470 2248 3470 2250 3470 2251 3471 2251 3471 2253 3471 2253 3471 2254 3471 2255 3471 2257 3472 2258 3473 2261 3474 2263 3475 2264 3475 2264 3476 2264 3477 2264 3478 2264 3478 2264 3478 2264 3479 2265 3480 2266 3481 2266 3482 2267 3482 2267 3483 2268 3484 2269 3483 2270 3484 2270 3484 2271 3485 2271 3486 2271 3488 2272 3489 2273 3491 2273 3491 2274 3491 2274 3492 2275 3492 2275 3490 2276 3489 2277 3489 2277 3488 2280 3486 2282 3484 2283 3483 2282 3483 2282 3482 2282 3481 2283 3481 2284 3480 2284 3478 2285 3476 2285 3475 2285 3474 2286 3474 2287 3474 2287 3474 2288 3474 2289 3473 2290 3472 2290 3470 2291 3468 2291 3468 2290 3466 2290 3466 2290 3466 2291 3466 2294 3466 2295 3466 2296 3465 2296 3465 2297 3464 2298 3464 2299 3464 2299 3465 2300 3465 2300 3466 2302 3465 2303 3465 2303 3464 2305 3463 2307 3462 2310 3461 2311 3461 2312 3460 2315 3460 2316 3459 2318 3459 2319 3458 2320 3457 2321 3457 2322 3458 2332 3459 2334 3459 2335 3459 2335 3457 2340 3458 2341 3458 2342 3457 2344 3457 2344 3457 2345 3457 2345 3457 2345 3456 2346 3456 2347 3456 2347 3454 2349 3453 2354 3453 2355 3452 2355 3452 2356 3452 2356 3453 2357 3452 2359 3452 2360 3451 2360 3451 2359 3451 2359 3450 2359 3449 2359 3445 2360 3445 2361 3445 2361 3444 2361 3440 2368 3439 2371 3438 2372 3438 2372 3438 2372 3437 2373 3437 2373 3436 2373 3436 2373 3436 2373 3435 2374 3435 2375 3435 2375 3435 2376 3435 2377 3435 2377 3436 2378 3435 2378 3434 2381 3434 2381 3434 2382 3434 2382 3433 2383 3434 2383 3434 2383 3434 2384 3434 2384 3434 2385 3433 2387 3434 2388 3434 2389 3432 2391 3431 2391 3430 2391 3429 2390 3429 2389 3428 2389 3425 2390 3424 2393 3423 2393 3423 2394 3423 2397 3424 2398 3424 2399 3423 2401 3422 2402 3422 2403 3421 2404 3420 2407 3419 2410 3420 2411 3420 2412 3420 2412 3420 2413 3420 2419 3420 2422 3420 2425 3420 2425 3420 2425 3420 2426 3419 2426 3418 2427 3418 2428 3417 2428 3416 2428 3416 2428 3415 2428 3415 2429 3414 2429 3414 2429 3413 2428 3413 2428 3412 2427 3410 2427 3408 2428 3407 2427 3406 2427 3405 2428 3405 2429 3405 2430 3405 2431 3405 2432 3405 2433 3404 2433 3403 2435 3402 2436 3402 2437 3402 2437 3403 2438 3404 2438 3406 2438 3409 2439 3410 2439 3412 2440 3413 2440 3416 2442 3418 2445 3419 2446 3419 2446 3418 2447 3420 2448 3421 2448 3421 2449 3422 2450 3422 2450 3423 2451 3423 2451 3423 2451 3424 2451 3425 2452 3426 2452 3426 2453 3427 2455 3427 2455 3428 2455 3428 2455 3429 2455 3429 2455 3429 2456 3430 2457 3432 2461 3432 2462 3432 2462 3432 2463 3433 2465 3433 2465 3434 2465 3434 2466 3434 2466 3434 2467 3434 2469 3434 2470 3436 2472 3436 2473 3439 2475 3439 2475 3438 2475 3438 2476 3439 2477 3439 2477 3440 2477 3441 2476 3441 2476 3442 2476 3442 2476 3446 2477 3446 2477 3446 2477 3447 2477 3447 2477" />
+<path id="sj" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3208 1274 3207 1274 3207 1273 3206 1273 3205 1273 3203 1273 3203 1273 3203 1273 3204 1273 3205 1273 3205 1273 3205 1273 3205 1273 3205 1273 3208 1273 3209 1273 3209 1273 3210 1273 3210 1273 3210 1273 3210 1273 3210 1274 3210 1274 3209 1274 3208 1274 3208 1274 M 3212 1274 3212 1274 3212 1274 3211 1274 3211 1274 3211 1274 3211 1274 3212 1274 3212 1274 3213 1274 3213 1273 3214 1273 3215 1273 3215 1273 3216 1274 3216 1274 3216 1274 3216 1274 3216 1274 3215 1274 3214 1274 3214 1274 3213 1274 3212 1274 M 3194 1277 3193 1277 3193 1277 3192 1277 3193 1276 3194 1276 3194 1276 3195 1276 3195 1276 3196 1276 3196 1276 3196 1277 3196 1277 3194 1277 3194 1277 M 3232 1285 3232 1284 3232 1284 3233 1282 3234 1281 3234 1280 3235 1280 3235 1280 3234 1280 3233 1280 3233 1279 3232 1279 3232 1278 3233 1278 3233 1278 3234 1278 3236 1278 3237 1278 3237 1279 3236 1279 3236 1279 3237 1279 3238 1280 3238 1280 3240 1278 3240 1278 3241 1277 3242 1277 3244 1277 3246 1277 3247 1278 3247 1278 3248 1278 3247 1278 3247 1278 3246 1278 3246 1278 3245 1278 3245 1278 3244 1279 3246 1279 3247 1279 3247 1279 3248 1279 3247 1280 3246 1280 3245 1281 3245 1281 3245 1281 3244 1281 3243 1281 3242 1282 3244 1283 3244 1283 3245 1283 3245 1283 3246 1283 3245 1283 3244 1282 3244 1282 3246 1282 3246 1282 3249 1281 3250 1281 3250 1282 3250 1282 3250 1282 3251 1283 3252 1283 3252 1282 3254 1281 3254 1281 3254 1281 3254 1280 3255 1280 3255 1280 3255 1280 3256 1280 3256 1280 3258 1280 3259 1280 3258 1280 3258 1280 3257 1280 3257 1280 3258 1280 3262 1280 3263 1280 3264 1280 3264 1280 3265 1280 3264 1280 3263 1280 3262 1279 3262 1279 3261 1279 3261 1279 3261 1279 3262 1279 3263 1279 3263 1279 3264 1279 3266 1279 3267 1279 3267 1279 3268 1280 3267 1280 3266 1280 3266 1281 3266 1281 3267 1281 3267 1281 3270 1280 3270 1280 3271 1279 3271 1279 3271 1279 3272 1279 3272 1279 3273 1280 3272 1280 3271 1281 3271 1281 3271 1281 3274 1281 3276 1281 3277 1280 3279 1280 3280 1280 3279 1281 3278 1281 3278 1281 3278 1281 3281 1281 3282 1281 3282 1281 3283 1281 3285 1281 3286 1282 3288 1282 3289 1282 3292 1282 3294 1282 3300 1282 3300 1282 3303 1282 3305 1282 3306 1283 3309 1283 3309 1283 3310 1283 3309 1284 3309 1285 3308 1285 3308 1285 3309 1286 3310 1286 3310 1287 3309 1287 3309 1287 3307 1287 3307 1287 3305 1287 3304 1287 3304 1288 3303 1288 3303 1288 3302 1288 3301 1288 3300 1288 3299 1289 3298 1289 3297 1289 3293 1290 3291 1290 3287 1291 3288 1291 3288 1291 3289 1292 3289 1292 3290 1293 3287 1294 3286 1294 3285 1294 3284 1294 3284 1294 3283 1295 3281 1295 3280 1295 3280 1295 3279 1295 3277 1295 3277 1295 3275 1295 3274 1295 3274 1295 3273 1295 3272 1295 3271 1295 3271 1295 3270 1295 3270 1295 3268 1295 3268 1295 3267 1296 3266 1296 3265 1296 3265 1296 3264 1296 3263 1296 3263 1296 3263 1296 3263 1297 3262 1297 3260 1298 3259 1298 3257 1298 3255 1298 3254 1298 3253 1298 3252 1298 3251 1298 3249 1298 3247 1298 3246 1298 3242 1297 3241 1297 3241 1297 3240 1297 3239 1297 3238 1296 3237 1296 3237 1296 3237 1296 3237 1295 3237 1295 3238 1295 3239 1295 3240 1294 3239 1294 3237 1294 3236 1294 3234 1294 3233 1294 3231 1294 3230 1294 3229 1294 3229 1294 3228 1294 3225 1295 3224 1295 3223 1295 3222 1295 3222 1295 3222 1295 3221 1295 3221 1295 3220 1295 3220 1294 3219 1294 3217 1294 3216 1294 3216 1294 3213 1295 3212 1295 3210 1295 3209 1295 3207 1295 3207 1294 3206 1293 3205 1293 3205 1294 3204 1294 3203 1294 3199 1293 3198 1293 3196 1293 3195 1293 3193 1292 3192 1292 3190 1292 3189 1292 3189 1292 3189 1291 3189 1291 3190 1291 3191 1291 3192 1291 3193 1291 3196 1290 3197 1290 3197 1290 3198 1290 3198 1291 3199 1291 3199 1291 3200 1291 3200 1291 3201 1291 3201 1291 3204 1291 3204 1291 3206 1291 3207 1291 3208 1291 3209 1291 3209 1291 3211 1292 3211 1292 3212 1292 3212 1292 3213 1292 3212 1291 3211 1291 3209 1291 3208 1291 3207 1291 3205 1291 3205 1291 3202 1290 3210 1289 3212 1289 3213 1289 3215 1289 3217 1289 3218 1289 3221 1289 3222 1289 3223 1289 3224 1289 3224 1289 3224 1289 3224 1289 3226 1289 3227 1289 3229 1288 3231 1288 3231 1288 3232 1288 3232 1288 3230 1288 3230 1288 3229 1288 3228 1288 3227 1288 3227 1288 3226 1288 3223 1288 3222 1288 3223 1288 3223 1288 3224 1288 3224 1288 3224 1288 3222 1287 3221 1287 3217 1287 3213 1288 3207 1288 3206 1288 3205 1288 3204 1288 3202 1288 3201 1288 3201 1288 3200 1288 3199 1288 3197 1288 3196 1289 3193 1289 3188 1289 3187 1289 3187 1289 3186 1289 3186 1289 3185 1289 3185 1289 3179 1289 3176 1289 3175 1289 3175 1289 3174 1289 3174 1289 3173 1288 3172 1288 3171 1288 3170 1288 3170 1288 3167 1287 3165 1286 3166 1286 3168 1286 3170 1285 3171 1285 3172 1285 3173 1285 3173 1285 3173 1285 3175 1285 3175 1285 3175 1285 3174 1284 3172 1284 3171 1284 3171 1284 3168 1284 3166 1284 3166 1284 3165 1284 3166 1284 3166 1284 3167 1284 3167 1284 3168 1284 3164 1283 3163 1283 3162 1283 3159 1283 3161 1282 3163 1282 3165 1282 3166 1282 3166 1282 3167 1282 3169 1282 3170 1282 3172 1282 3172 1282 3173 1282 3173 1282 3174 1282 3175 1282 3177 1282 3182 1283 3182 1283 3182 1283 3183 1283 3183 1283 3184 1283 3184 1283 3185 1283 3188 1282 3187 1282 3186 1282 3185 1282 3184 1282 3183 1282 3182 1282 3180 1281 3178 1279 3179 1279 3179 1279 3180 1279 3181 1279 3182 1279 3183 1279 3184 1280 3185 1280 3185 1280 3185 1280 3188 1281 3188 1281 3189 1281 3189 1281 3191 1281 3192 1281 3191 1281 3191 1280 3192 1279 3193 1279 3190 1278 3189 1278 3188 1279 3187 1279 3187 1279 3186 1278 3186 1278 3186 1277 3186 1277 3189 1277 3189 1277 3190 1277 3195 1277 3195 1277 3196 1278 3197 1278 3198 1278 3198 1278 3200 1278 3200 1278 3201 1278 3201 1278 3203 1280 3204 1280 3204 1280 3205 1280 3205 1280 3206 1280 3207 1280 3207 1280 3208 1280 3207 1280 3206 1280 3207 1281 3208 1281 3209 1281 3210 1281 3212 1281 3212 1281 3215 1281 3218 1280 3222 1280 3223 1280 3224 1280 3224 1281 3225 1281 3225 1281 3223 1282 3222 1282 3221 1282 3221 1282 3220 1283 3221 1283 3221 1283 3222 1282 3223 1282 3224 1282 3224 1282 3227 1283 3228 1284 3229 1284 3230 1285 3230 1285 3231 1285 3231 1285 3232 1285 3232 1285 M 3263 1279 3261 1279 3261 1279 3260 1278 3261 1278 3261 1278 3261 1277 3262 1277 3262 1278 3264 1278 3264 1279 3263 1279 M 3170 1281 3169 1281 3168 1281 3168 1280 3167 1280 3166 1280 3166 1280 3165 1280 3164 1280 3165 1280 3166 1279 3167 1279 3168 1279 3168 1279 3169 1279 3172 1279 3172 1279 3174 1280 3175 1280 3173 1281 3172 1281 3171 1281 3170 1281 M 3379 1284 3379 1284 3377 1283 3378 1283 3378 1283 3383 1283 3388 1282 3391 1282 3396 1282 3398 1282 3400 1282 3403 1281 3406 1281 3407 1281 3407 1281 3408 1281 3409 1281 3410 1281 3412 1281 3412 1281 3412 1281 3412 1281 3412 1281 3411 1282 3410 1282 3406 1282 3401 1282 3400 1282 3399 1283 3397 1283 3395 1283 3394 1283 3394 1283 3392 1283 3391 1283 3391 1283 3390 1283 3389 1283 3388 1283 3382 1283 3381 1283 3379 1284 M 3320 1282 3322 1282 3323 1282 3323 1282 3323 1283 3322 1283 3320 1283 3319 1283 3318 1283 3317 1283 3317 1283 3317 1282 3318 1282 3319 1282 3319 1282 3320 1282 M 3104 1317 3104 1317 3104 1316 3103 1316 3102 1315 3102 1315 3103 1315 3104 1315 3104 1315 3105 1315 3105 1315 3106 1315 3107 1315 3109 1315 3109 1315 3110 1315 3111 1315 3111 1315 3112 1315 3113 1315 3114 1315 3114 1315 3115 1315 3115 1314 3118 1314 3119 1313 3119 1313 3120 1313 3122 1313 3122 1313 3122 1313 3123 1313 3123 1313 3124 1313 3125 1313 3125 1313 3126 1313 3126 1313 3125 1313 3124 1312 3127 1311 3127 1311 3130 1311 3132 1311 3133 1311 3134 1311 3135 1311 3138 1311 3139 1311 3142 1311 3143 1311 3144 1311 3145 1311 3147 1311 3148 1311 3151 1310 3151 1310 3150 1310 3150 1310 3150 1310 3145 1310 3145 1311 3144 1311 3144 1310 3140 1310 3140 1310 3139 1310 3139 1310 3139 1310 3138 1310 3137 1310 3136 1309 3138 1308 3139 1308 3142 1307 3144 1306 3144 1306 3144 1306 3143 1306 3142 1306 3141 1306 3140 1306 3140 1305 3139 1305 3139 1305 3138 1305 3138 1306 3136 1308 3135 1308 3133 1308 3132 1308 3132 1309 3131 1309 3131 1309 3130 1309 3130 1309 3129 1309 3127 1309 3126 1309 3126 1309 3125 1309 3124 1309 3122 1309 3121 1309 3120 1309 3119 1309 3118 1307 3118 1307 3120 1307 3121 1307 3122 1307 3123 1305 3122 1304 3121 1303 3121 1303 3120 1303 3119 1304 3118 1304 3118 1305 3118 1306 3115 1307 3114 1307 3114 1307 3114 1307 3113 1307 3112 1307 3111 1306 3112 1306 3112 1306 3112 1305 3112 1305 3110 1305 3109 1305 3108 1305 3107 1306 3107 1306 3107 1307 3107 1307 3106 1308 3105 1309 3105 1309 3106 1309 3106 1309 3107 1309 3108 1309 3108 1309 3109 1310 3110 1310 3110 1310 3110 1311 3109 1311 3108 1311 3108 1311 3106 1311 3104 1310 3103 1311 3104 1312 3102 1312 3100 1313 3100 1312 3100 1312 3098 1312 3095 1313 3095 1313 3096 1313 3096 1313 3096 1313 3095 1313 3094 1314 3093 1314 3092 1314 3089 1313 3086 1313 3086 1313 3085 1313 3085 1313 3084 1313 3084 1313 3083 1314 3083 1314 3082 1313 3082 1313 3081 1313 3082 1312 3082 1312 3081 1311 3080 1311 3079 1311 3079 1311 3078 1311 3076 1311 3076 1310 3073 1309 3073 1309 3075 1309 3076 1309 3078 1309 3079 1309 3081 1309 3082 1309 3084 1308 3084 1308 3085 1308 3086 1308 3085 1308 3084 1308 3083 1308 3082 1308 3081 1308 3080 1308 3080 1308 3077 1308 3074 1308 3073 1308 3069 1307 3067 1307 3067 1307 3066 1307 3065 1307 3061 1305 3061 1304 3062 1304 3062 1304 3063 1304 3064 1304 3064 1304 3065 1304 3065 1303 3065 1303 3064 1303 3064 1303 3063 1303 3062 1303 3062 1303 3061 1303 3060 1303 3060 1303 3057 1302 3056 1301 3057 1301 3058 1301 3059 1301 3060 1301 3061 1301 3064 1301 3064 1302 3066 1302 3070 1302 3071 1302 3071 1302 3072 1302 3074 1302 3075 1302 3074 1301 3073 1301 3073 1301 3072 1301 3071 1301 3070 1301 3069 1301 3068 1301 3068 1301 3067 1301 3066 1301 3065 1300 3064 1300 3063 1300 3063 1299 3064 1299 3065 1298 3066 1298 3066 1297 3067 1297 3067 1297 3068 1297 3068 1297 3069 1296 3068 1296 3068 1296 3066 1296 3065 1297 3065 1297 3064 1297 3063 1297 3062 1296 3062 1296 3062 1296 3061 1296 3061 1296 3060 1296 3060 1296 3061 1297 3062 1298 3062 1298 3062 1298 3061 1298 3057 1299 3054 1299 3054 1299 3053 1298 3053 1297 3051 1296 3049 1295 3049 1295 3048 1295 3048 1294 3049 1294 3049 1294 3049 1294 3049 1293 3049 1293 3048 1293 3048 1293 3046 1293 3046 1293 3046 1292 3047 1292 3047 1292 3049 1292 3051 1292 3053 1292 3053 1292 3054 1292 3053 1292 3051 1291 3050 1291 3049 1291 3049 1291 3048 1291 3050 1290 3050 1290 3051 1290 3052 1290 3052 1290 3053 1290 3057 1291 3057 1290 3055 1290 3054 1290 3054 1289 3054 1288 3054 1288 3056 1288 3057 1288 3057 1288 3058 1288 3058 1288 3059 1288 3059 1288 3060 1288 3061 1287 3062 1287 3063 1287 3064 1287 3064 1287 3066 1288 3067 1290 3068 1290 3069 1290 3071 1290 3072 1290 3072 1290 3072 1290 3072 1289 3072 1289 3071 1289 3070 1289 3070 1289 3069 1288 3069 1288 3070 1287 3070 1287 3072 1287 3073 1287 3073 1287 3074 1288 3074 1288 3074 1288 3075 1288 3076 1289 3079 1288 3080 1288 3081 1288 3081 1288 3082 1288 3083 1288 3088 1287 3089 1287 3089 1287 3091 1287 3092 1287 3093 1287 3094 1287 3095 1287 3096 1287 3096 1287 3097 1287 3097 1287 3098 1287 3098 1288 3097 1289 3097 1289 3096 1289 3094 1289 3093 1290 3092 1290 3088 1290 3083 1290 3083 1290 3081 1290 3078 1291 3077 1291 3076 1291 3076 1291 3075 1291 3075 1291 3074 1291 3074 1292 3075 1292 3075 1292 3076 1292 3076 1292 3077 1292 3079 1292 3083 1291 3083 1291 3087 1291 3088 1291 3090 1291 3090 1292 3089 1292 3089 1292 3088 1293 3087 1292 3087 1292 3087 1293 3090 1294 3090 1293 3090 1293 3090 1293 3092 1293 3092 1293 3095 1294 3097 1294 3097 1295 3097 1296 3097 1296 3099 1296 3100 1297 3100 1296 3100 1296 3101 1295 3099 1293 3098 1293 3098 1293 3097 1292 3097 1292 3098 1291 3099 1291 3100 1291 3100 1291 3101 1291 3105 1289 3106 1289 3106 1288 3107 1288 3108 1288 3108 1288 3111 1288 3112 1288 3115 1289 3115 1290 3116 1290 3117 1290 3118 1291 3119 1291 3119 1291 3119 1292 3119 1292 3122 1295 3122 1295 3123 1296 3125 1296 3127 1297 3127 1297 3126 1298 3126 1299 3127 1298 3128 1298 3128 1298 3128 1298 3129 1298 3129 1298 3130 1299 3132 1300 3133 1300 3133 1301 3133 1301 3136 1302 3136 1302 3137 1302 3137 1302 3138 1302 3138 1302 3138 1301 3137 1301 3137 1301 3136 1300 3135 1299 3134 1299 3134 1299 3133 1298 3133 1298 3133 1297 3133 1297 3132 1296 3131 1296 3130 1296 3130 1295 3129 1293 3129 1292 3127 1291 3126 1290 3126 1290 3125 1288 3125 1287 3126 1287 3126 1287 3126 1287 3127 1287 3128 1287 3128 1287 3131 1287 3132 1287 3132 1287 3133 1287 3132 1287 3131 1286 3130 1286 3130 1286 3130 1285 3131 1285 3131 1284 3135 1284 3135 1284 3136 1284 3139 1284 3140 1284 3142 1286 3143 1287 3144 1287 3144 1287 3145 1287 3145 1287 3145 1286 3144 1286 3145 1286 3145 1286 3146 1285 3146 1285 3147 1285 3150 1286 3151 1286 3152 1286 3155 1286 3160 1288 3163 1289 3164 1289 3164 1289 3164 1290 3163 1290 3162 1290 3162 1290 3161 1290 3161 1290 3160 1290 3159 1291 3158 1292 3159 1292 3159 1293 3159 1294 3159 1294 3158 1294 3157 1294 3157 1295 3157 1295 3160 1295 3160 1294 3161 1294 3161 1294 3162 1294 3162 1294 3163 1293 3163 1292 3164 1291 3165 1291 3166 1291 3166 1291 3167 1291 3168 1291 3168 1291 3173 1292 3174 1292 3174 1292 3176 1293 3176 1296 3176 1296 3176 1297 3177 1298 3177 1298 3178 1298 3180 1298 3181 1298 3182 1298 3183 1298 3183 1298 3184 1298 3184 1298 3190 1298 3191 1299 3191 1299 3193 1300 3193 1301 3194 1301 3194 1300 3195 1301 3199 1301 3199 1301 3200 1301 3200 1301 3202 1302 3202 1302 3203 1302 3206 1302 3207 1302 3207 1302 3208 1302 3209 1302 3210 1302 3210 1302 3211 1302 3212 1302 3212 1302 3212 1303 3214 1303 3215 1303 3216 1303 3219 1303 3219 1305 3218 1305 3216 1306 3217 1306 3216 1306 3214 1306 3212 1306 3212 1306 3211 1306 3209 1306 3209 1306 3208 1306 3207 1306 3206 1306 3206 1306 3205 1306 3205 1306 3204 1306 3204 1307 3203 1307 3203 1307 3202 1307 3202 1306 3201 1306 3201 1306 3198 1306 3198 1306 3196 1306 3195 1307 3191 1307 3190 1307 3189 1307 3189 1307 3188 1308 3188 1308 3189 1308 3189 1309 3188 1309 3187 1309 3186 1309 3186 1309 3185 1309 3184 1309 3182 1309 3181 1309 3179 1309 3178 1309 3179 1310 3179 1310 3179 1311 3179 1311 3179 1311 3178 1313 3179 1314 3180 1315 3176 1316 3176 1316 3175 1316 3175 1316 3174 1316 3173 1316 3172 1316 3172 1316 3171 1316 3170 1316 3169 1316 3168 1318 3168 1319 3169 1319 3170 1319 3170 1320 3168 1322 3167 1324 3167 1325 3166 1325 3166 1325 3163 1325 3162 1325 3162 1325 3161 1325 3161 1325 3159 1325 3158 1325 3157 1326 3155 1327 3154 1329 3153 1330 3152 1332 3152 1332 3151 1332 3151 1332 3150 1332 3150 1332 3149 1332 3148 1332 3149 1332 3150 1333 3151 1333 3152 1333 3151 1333 3151 1334 3150 1334 3147 1335 3146 1336 3145 1336 3146 1336 3147 1336 3147 1336 3148 1337 3149 1337 3150 1337 3146 1339 3144 1339 3144 1340 3143 1340 3143 1340 3142 1340 3140 1339 3140 1339 3136 1338 3135 1337 3134 1337 3131 1337 3130 1337 3130 1336 3129 1336 3128 1336 3127 1335 3126 1335 3124 1335 3124 1335 3123 1335 3123 1335 3123 1334 3123 1334 3124 1334 3126 1334 3129 1334 3129 1333 3131 1333 3131 1333 3133 1333 3133 1333 3135 1333 3138 1333 3139 1333 3139 1333 3138 1333 3136 1333 3136 1333 3132 1332 3132 1332 3131 1331 3131 1331 3130 1331 3128 1332 3129 1332 3128 1332 3127 1333 3124 1333 3121 1333 3121 1333 3120 1333 3118 1332 3117 1332 3115 1331 3115 1331 3110 1330 3110 1330 3109 1330 3108 1330 3107 1330 3107 1330 3106 1330 3105 1330 3104 1329 3101 1328 3101 1327 3100 1327 3100 1327 3098 1326 3097 1325 3097 1324 3100 1324 3100 1324 3101 1324 3102 1323 3104 1323 3104 1323 3106 1323 3107 1323 3107 1324 3108 1324 3107 1325 3107 1325 3107 1325 3108 1325 3110 1325 3111 1325 3113 1324 3114 1324 3116 1324 3116 1324 3117 1324 3118 1324 3121 1324 3122 1324 3123 1324 3124 1324 3125 1324 3125 1324 3125 1324 3126 1324 3127 1324 3128 1324 3129 1324 3129 1325 3131 1325 3131 1325 3132 1325 3132 1326 3133 1326 3134 1326 3134 1326 3135 1325 3135 1325 3134 1325 3132 1325 3131 1324 3130 1324 3129 1324 3127 1323 3124 1323 3118 1323 3118 1323 3117 1323 3116 1323 3114 1323 3113 1323 3113 1323 3111 1322 3112 1322 3113 1322 3116 1322 3118 1321 3121 1321 3122 1321 3125 1321 3127 1321 3127 1321 3131 1321 3134 1320 3142 1320 3143 1320 3145 1319 3146 1318 3147 1318 3146 1318 3146 1318 3145 1318 3144 1318 3142 1318 3142 1319 3142 1319 3141 1319 3138 1319 3137 1319 3135 1319 3133 1319 3130 1319 3129 1319 3128 1319 3128 1319 3128 1319 3127 1319 3126 1319 3125 1319 3124 1319 3121 1319 3120 1319 3118 1319 3117 1320 3117 1320 3116 1320 3115 1320 3113 1320 3110 1320 3110 1320 3108 1321 3106 1321 3105 1321 3102 1320 3102 1320 3101 1320 3100 1320 3099 1321 3099 1321 3098 1321 3095 1321 3094 1320 3095 1320 3096 1320 3095 1320 3095 1319 3094 1319 3094 1319 3093 1319 3093 1317 3092 1316 3092 1316 3097 1315 3098 1315 3098 1315 3098 1315 3099 1315 3100 1316 3102 1317 3103 1317 3103 1317 3104 1317 3104 1317 3104 1317 M 3050 1289 3050 1289 3049 1289 3048 1289 3047 1289 3045 1289 3045 1289 3045 1289 3045 1288 3046 1288 3047 1288 3047 1288 3049 1288 3049 1288 3051 1289 3051 1289 3051 1289 3050 1289 M 3047 1290 3047 1290 3047 1290 3046 1289 3046 1289 3047 1289 3049 1289 3049 1289 3050 1289 3050 1289 3051 1290 3052 1290 3052 1290 3050 1290 3049 1290 3047 1290 M 3197 1295 3195 1295 3195 1295 3193 1295 3192 1295 3191 1295 3191 1295 3190 1295 3190 1295 3189 1295 3189 1295 3189 1294 3189 1294 3190 1294 3191 1294 3191 1294 3195 1295 3196 1295 3196 1295 3197 1295 3197 1295 3197 1295 M 3200 1301 3199 1301 3199 1300 3198 1300 3198 1300 3197 1300 3195 1300 3195 1300 3196 1299 3196 1299 3197 1299 3198 1299 3202 1299 3206 1299 3206 1299 3206 1299 3207 1300 3208 1300 3206 1300 3206 1300 3202 1301 3201 1301 3200 1301 3200 1301 M 3324 1304 3323 1304 3323 1303 3325 1302 3326 1302 3326 1302 3327 1302 3327 1302 3328 1302 3328 1302 3328 1302 3329 1302 3329 1302 3329 1301 3332 1301 3332 1301 3334 1301 3336 1301 3336 1301 3337 1302 3338 1302 3339 1302 3339 1302 3339 1302 3339 1302 3340 1302 3343 1302 3345 1302 3345 1302 3346 1302 3347 1302 3348 1302 3348 1302 3349 1302 3349 1302 3349 1302 3350 1302 3349 1302 3349 1302 3347 1303 3346 1303 3345 1303 3344 1303 3343 1303 3343 1303 3342 1303 3340 1303 3339 1303 3338 1303 3338 1303 3337 1302 3336 1302 3336 1302 3335 1302 3335 1302 3332 1302 3330 1302 3329 1303 3329 1303 3327 1303 3325 1303 3324 1303 3324 1303 3324 1304 3324 1304 M 3069 1314 3068 1313 3068 1313 3067 1313 3066 1313 3065 1313 3065 1313 3065 1313 3064 1313 3064 1312 3064 1312 3064 1312 3064 1312 3064 1312 3060 1311 3059 1310 3056 1310 3056 1310 3055 1310 3054 1310 3054 1310 3053 1310 3053 1310 3052 1310 3052 1309 3052 1309 3051 1308 3050 1308 3050 1307 3049 1307 3049 1307 3049 1306 3046 1305 3045 1305 3045 1305 3043 1304 3043 1304 3043 1304 3043 1302 3043 1302 3043 1302 3044 1302 3044 1302 3048 1303 3049 1303 3049 1303 3049 1303 3051 1303 3051 1303 3053 1305 3053 1305 3054 1305 3053 1305 3053 1306 3055 1307 3055 1308 3057 1308 3058 1308 3058 1308 3058 1308 3058 1308 3059 1309 3060 1309 3061 1309 3062 1309 3063 1310 3064 1310 3065 1310 3065 1310 3065 1310 3067 1311 3068 1312 3069 1313 3069 1314 3069 1314 M 3302 1307 3301 1306 3301 1306 3300 1306 3298 1306 3298 1305 3297 1304 3297 1304 3297 1304 3297 1304 3298 1304 3298 1304 3298 1304 3299 1304 3300 1304 3300 1304 3300 1304 3300 1304 3301 1304 3303 1305 3304 1305 3305 1306 3306 1305 3306 1305 3306 1306 3305 1306 3305 1306 3305 1306 3304 1306 3302 1306 3302 1307 3302 1307 M 3197 1309 3197 1309 3199 1309 3204 1308 3207 1308 3209 1308 3210 1308 3211 1308 3211 1308 3212 1308 3212 1308 3212 1308 3212 1307 3212 1307 3212 1307 3213 1307 3213 1307 3214 1307 3215 1307 3216 1307 3217 1307 3218 1307 3218 1307 3218 1307 3218 1307 3218 1308 3219 1308 3220 1308 3220 1307 3220 1307 3221 1307 3221 1307 3222 1307 3222 1307 3223 1307 3223 1307 3225 1307 3227 1307 3228 1308 3230 1309 3230 1309 3230 1309 3230 1311 3230 1312 3230 1312 3230 1312 3231 1312 3229 1313 3229 1313 3227 1313 3226 1313 3226 1313 3225 1313 3225 1313 3223 1313 3222 1313 3220 1313 3217 1313 3215 1313 3213 1313 3212 1313 3211 1313 3211 1313 3210 1313 3210 1313 3208 1313 3208 1313 3207 1313 3207 1313 3207 1313 3206 1313 3206 1314 3206 1314 3205 1314 3205 1314 3206 1313 3206 1313 3206 1313 3207 1312 3207 1312 3206 1312 3205 1312 3203 1312 3202 1312 3202 1312 3203 1311 3203 1311 3204 1311 3205 1311 3205 1311 3205 1311 3205 1311 3205 1310 3203 1310 3203 1310 3200 1310 3198 1309 3198 1309 3197 1309 3197 1309 3196 1309 3197 1309 M 3237 1329 3236 1329 3234 1328 3234 1329 3234 1329 3233 1329 3233 1328 3233 1328 3234 1328 3234 1327 3234 1327 3233 1326 3236 1325 3237 1325 3238 1325 3239 1324 3234 1324 3234 1324 3233 1324 3233 1324 3232 1324 3232 1324 3231 1324 3231 1324 3231 1324 3230 1324 3230 1325 3229 1325 3229 1325 3228 1325 3224 1325 3223 1325 3222 1325 3221 1325 3220 1325 3220 1325 3218 1325 3217 1325 3217 1325 3216 1325 3215 1325 3215 1325 3214 1326 3213 1326 3212 1326 3212 1326 3210 1326 3209 1326 3208 1325 3208 1324 3208 1324 3210 1323 3211 1323 3212 1323 3212 1323 3213 1323 3214 1323 3214 1323 3214 1322 3214 1322 3214 1321 3218 1319 3221 1318 3219 1318 3218 1317 3216 1317 3215 1317 3214 1317 3212 1316 3212 1316 3211 1316 3210 1316 3209 1315 3208 1315 3209 1315 3209 1315 3210 1315 3217 1314 3218 1314 3222 1313 3224 1313 3224 1313 3226 1313 3229 1313 3233 1314 3234 1313 3234 1313 3234 1313 3240 1313 3240 1313 3242 1313 3242 1313 3246 1313 3246 1313 3248 1314 3250 1314 3248 1315 3248 1315 3246 1315 3245 1315 3244 1315 3244 1315 3243 1316 3243 1316 3244 1317 3244 1317 3245 1317 3247 1317 3248 1317 3249 1318 3249 1318 3252 1318 3252 1319 3253 1319 3253 1319 3256 1319 3256 1319 3257 1319 3257 1319 3258 1319 3259 1319 3259 1319 3260 1319 3262 1318 3264 1319 3267 1319 3267 1319 3267 1319 3269 1320 3270 1320 3272 1320 3272 1320 3273 1321 3272 1321 3270 1321 3267 1321 3266 1321 3263 1322 3262 1322 3261 1322 3260 1322 3258 1323 3258 1323 3258 1324 3257 1324 3257 1325 3254 1325 3254 1326 3252 1326 3251 1326 3250 1326 3249 1326 3249 1327 3248 1327 3248 1327 3248 1327 3247 1327 3246 1326 3246 1326 3244 1327 3242 1327 3241 1327 3241 1327 3241 1328 3240 1328 3239 1328 3237 1329 M 3274 1342 3274 1342 3274 1342 3273 1341 3273 1341 3275 1340 3277 1340 3277 1339 3279 1339 3279 1339 3280 1339 3281 1338 3281 1338 3281 1338 3281 1337 3282 1337 3282 1337 3283 1337 3283 1337 3284 1337 3284 1337 3281 1339 3279 1339 3278 1340 3275 1341 3275 1341 3274 1342 M 3180 1375 3179 1375 3178 1374 3177 1374 3176 1374 3175 1373 3176 1373 3176 1373 3176 1372 3177 1372 3181 1372 3181 1372 3181 1372 3183 1373 3183 1373 3183 1374 3182 1374 3182 1375 3181 1375 3180 1375" />
+<path id="se" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3063 1617 3063 1616 3063 1616 3063 1615 3063 1615 3063 1613 3061 1611 3063 1610 3064 1610 3065 1609 3065 1608 3065 1608 3065 1608 3065 1607 3064 1607 3064 1606 3065 1606 3066 1606 3067 1606 3067 1606 3068 1606 3069 1606 3069 1606 3070 1606 3072 1605 3074 1603 3075 1602 3075 1602 3075 1601 3075 1601 3075 1599 3076 1598 3076 1598 3076 1597 3076 1597 3076 1596 3075 1594 3073 1593 3073 1592 3072 1592 3072 1591 3072 1591 3072 1590 3071 1589 3070 1589 3070 1588 3071 1588 3071 1588 3073 1587 3073 1587 3074 1587 3074 1587 3075 1587 3076 1587 3076 1587 3077 1587 3077 1587 3077 1587 3079 1585 3079 1584 3080 1583 3080 1582 3079 1582 3075 1579 3074 1579 3074 1579 3073 1579 3069 1577 3069 1577 3069 1575 3069 1574 3070 1574 3070 1573 3070 1572 3071 1570 3071 1568 3071 1568 3071 1567 3071 1567 3071 1567 3070 1566 3070 1565 3069 1565 3068 1564 3067 1563 3067 1562 3068 1561 3068 1560 3068 1559 3067 1559 3067 1558 3068 1558 3068 1557 3069 1556 3069 1556 3069 1556 3067 1553 3067 1553 3066 1552 3067 1551 3068 1550 3069 1549 3070 1548 3070 1548 3069 1547 3072 1545 3074 1543 3075 1542 3077 1541 3078 1541 3079 1540 3080 1540 3082 1539 3082 1539 3083 1539 3085 1539 3086 1539 3086 1539 3087 1539 3098 1540 3101 1537 3101 1535 3100 1533 3099 1532 3097 1532 3096 1532 3093 1531 3093 1531 3094 1530 3094 1530 3096 1529 3097 1528 3098 1527 3100 1525 3102 1524 3103 1523 3104 1522 3104 1522 3104 1522 3104 1521 3105 1520 3106 1519 3107 1518 3107 1517 3107 1516 3107 1515 3107 1513 3108 1513 3108 1512 3108 1512 3109 1512 3109 1511 3108 1510 3108 1509 3108 1509 3107 1508 3107 1507 3107 1506 3110 1506 3114 1506 3115 1506 3122 1504 3122 1503 3121 1502 3121 1501 3120 1501 3123 1499 3125 1499 3126 1497 3131 1494 3136 1492 3137 1490 3136 1489 3136 1488 3135 1487 3134 1487 3133 1487 3133 1486 3132 1486 3132 1486 3134 1484 3137 1484 3137 1484 3139 1483 3140 1482 3140 1481 3140 1481 3141 1479 3142 1478 3150 1476 3150 1475 3151 1475 3151 1475 3156 1476 3157 1476 3157 1476 3158 1477 3159 1477 3160 1477 3160 1477 3161 1477 3162 1476 3165 1474 3165 1474 3164 1472 3164 1471 3164 1471 3163 1470 3163 1469 3164 1468 3164 1468 3165 1468 3168 1468 3172 1469 3178 1469 3185 1470 3187 1470 3190 1470 3192 1471 3193 1471 3193 1471 3194 1471 3194 1471 3195 1470 3195 1470 3196 1470 3197 1469 3198 1469 3196 1468 3194 1468 3195 1467 3197 1466 3198 1466 3198 1465 3199 1464 3200 1464 3199 1462 3198 1461 3196 1460 3203 1460 3204 1459 3204 1460 3205 1460 3206 1460 3207 1460 3208 1460 3208 1460 3209 1461 3209 1461 3209 1461 3209 1462 3209 1462 3210 1462 3210 1462 3211 1462 3211 1462 3212 1463 3214 1463 3217 1465 3218 1465 3218 1466 3219 1466 3220 1466 3220 1466 3221 1466 3222 1467 3222 1467 3223 1467 3223 1467 3224 1467 3225 1467 3225 1468 3226 1468 3226 1468 3227 1468 3227 1469 3229 1469 3232 1469 3233 1469 3234 1469 3236 1470 3237 1470 3240 1470 3240 1471 3241 1471 3241 1471 3242 1471 3243 1472 3248 1475 3248 1475 3249 1476 3251 1477 3253 1477 3253 1477 3253 1478 3252 1478 3251 1478 3251 1478 3250 1478 3250 1479 3250 1481 3250 1482 3250 1483 3249 1485 3250 1485 3250 1485 3250 1485 3251 1485 3251 1485 3252 1485 3254 1486 3255 1486 3255 1487 3254 1488 3254 1488 3253 1488 3252 1488 3252 1488 3252 1489 3252 1490 3253 1492 3254 1492 3254 1492 3255 1493 3256 1493 3257 1494 3258 1496 3257 1496 3257 1496 3257 1497 3257 1497 3257 1499 3256 1499 3256 1500 3255 1500 3254 1500 3253 1501 3253 1501 3253 1503 3253 1504 3254 1505 3254 1505 3255 1506 3256 1506 3257 1506 3257 1506 3257 1506 3258 1507 3258 1507 3259 1508 3261 1511 3261 1511 3261 1511 3260 1512 3260 1511 3259 1511 3258 1512 3258 1512 3257 1512 3255 1512 3253 1511 3251 1512 3249 1512 3249 1512 3246 1512 3246 1512 3245 1513 3244 1513 3242 1512 3240 1511 3239 1511 3238 1510 3237 1510 3237 1510 3237 1510 3238 1511 3237 1512 3237 1512 3236 1512 3234 1511 3234 1511 3233 1511 3232 1511 3232 1511 3231 1513 3230 1514 3231 1514 3231 1514 3231 1514 3232 1514 3233 1514 3233 1516 3233 1516 3232 1516 3230 1515 3230 1515 3228 1515 3224 1514 3224 1513 3223 1513 3224 1514 3224 1514 3227 1515 3227 1515 3228 1515 3229 1516 3229 1516 3227 1516 3226 1516 3225 1516 3225 1516 3224 1516 3225 1516 3225 1517 3225 1517 3225 1516 3226 1516 3227 1517 3227 1517 3225 1518 3221 1518 3221 1518 3221 1518 3220 1518 3219 1518 3218 1518 3218 1519 3219 1519 3220 1519 3220 1519 3222 1520 3221 1520 3220 1521 3219 1521 3219 1520 3218 1520 3218 1519 3216 1518 3215 1519 3216 1519 3217 1519 3218 1520 3219 1521 3220 1522 3220 1523 3219 1523 3218 1523 3218 1524 3218 1524 3216 1525 3215 1525 3214 1525 3214 1526 3214 1527 3213 1527 3212 1527 3212 1527 3212 1527 3211 1527 3211 1527 3212 1528 3212 1528 3213 1528 3214 1528 3215 1528 3215 1528 3215 1530 3215 1530 3214 1529 3213 1529 3212 1529 3212 1529 3212 1529 3215 1530 3216 1531 3218 1531 3219 1532 3220 1533 3218 1535 3217 1535 3215 1535 3215 1536 3214 1535 3210 1538 3209 1539 3209 1540 3207 1542 3207 1542 3206 1543 3205 1543 3203 1543 3202 1543 3202 1544 3201 1545 3201 1545 3200 1546 3199 1546 3199 1546 3196 1546 3195 1546 3193 1547 3191 1548 3191 1548 3191 1549 3190 1549 3189 1549 3189 1549 3189 1549 3188 1548 3186 1547 3186 1547 3185 1548 3186 1549 3186 1549 3184 1549 3184 1549 3183 1549 3183 1549 3183 1550 3182 1551 3181 1551 3179 1552 3179 1553 3180 1553 3180 1553 3179 1553 3179 1553 3178 1553 3177 1552 3175 1552 3176 1553 3177 1553 3177 1553 3177 1553 3175 1554 3175 1553 3175 1553 3174 1553 3174 1554 3173 1554 3172 1554 3169 1555 3167 1556 3168 1556 3168 1556 3169 1556 3171 1556 3171 1557 3172 1557 3170 1558 3166 1560 3165 1560 3164 1560 3164 1559 3165 1559 3164 1559 3163 1559 3162 1559 3161 1559 3160 1557 3160 1557 3160 1556 3158 1556 3158 1557 3159 1557 3159 1557 3160 1557 3161 1558 3162 1561 3163 1561 3162 1562 3162 1562 3162 1562 3161 1562 3162 1562 3163 1562 3163 1563 3162 1563 3160 1564 3160 1565 3159 1564 3158 1564 3158 1564 3157 1565 3157 1565 3156 1565 3155 1565 3155 1565 3155 1565 3154 1564 3153 1564 3153 1564 3152 1564 3152 1566 3152 1567 3154 1568 3155 1568 3155 1568 3156 1568 3156 1568 3157 1569 3156 1569 3155 1569 3156 1569 3155 1569 3155 1569 3155 1569 3154 1570 3154 1572 3154 1572 3153 1572 3152 1573 3152 1575 3153 1576 3154 1577 3154 1577 3154 1577 3155 1577 3154 1578 3154 1578 3153 1578 3153 1577 3152 1577 3152 1577 3150 1577 3149 1577 3150 1577 3150 1577 3151 1577 3149 1578 3149 1578 3149 1578 3148 1579 3148 1579 3149 1580 3150 1581 3149 1581 3148 1582 3149 1582 3150 1583 3150 1584 3149 1585 3149 1587 3149 1589 3150 1590 3150 1590 3151 1591 3151 1592 3151 1592 3151 1593 3152 1594 3153 1594 3153 1594 3155 1594 3155 1594 3156 1594 3156 1594 3157 1594 3157 1595 3156 1595 3156 1595 3157 1596 3157 1596 3158 1596 3158 1596 3158 1596 3159 1595 3160 1595 3161 1595 3161 1595 3162 1595 3162 1595 3164 1597 3166 1599 3166 1599 3167 1599 3168 1599 3169 1599 3170 1599 3172 1600 3172 1600 3171 1601 3171 1601 3170 1600 3170 1600 3169 1600 3168 1600 3168 1599 3169 1601 3169 1601 3171 1602 3171 1602 3173 1602 3174 1602 3175 1602 3176 1603 3176 1603 3177 1605 3177 1605 3177 1605 3178 1605 3179 1606 3179 1606 3180 1606 3180 1607 3179 1607 3178 1606 3177 1606 3176 1607 3177 1608 3178 1608 3180 1608 3180 1608 3179 1609 3178 1609 3178 1609 3176 1609 3174 1609 3174 1609 3174 1610 3174 1610 3173 1611 3173 1611 3168 1613 3168 1613 3167 1613 3167 1613 3167 1614 3168 1614 3165 1614 3166 1613 3166 1613 3164 1613 3164 1613 3163 1614 3164 1614 3164 1615 3163 1615 3161 1615 3161 1615 3160 1614 3160 1614 3159 1614 3159 1614 3159 1614 3159 1612 3159 1612 3160 1612 3160 1611 3159 1610 3158 1609 3158 1610 3158 1610 3157 1610 3156 1610 3156 1610 3157 1610 3157 1610 3157 1609 3157 1609 3157 1608 3156 1607 3156 1608 3155 1608 3155 1608 3154 1608 3154 1609 3155 1611 3155 1611 3155 1610 3155 1610 3155 1609 3155 1608 3156 1608 3156 1608 3156 1609 3155 1609 3156 1610 3158 1610 3158 1611 3159 1611 3159 1612 3158 1613 3155 1612 3155 1612 3155 1612 3154 1611 3154 1611 3152 1610 3153 1610 3152 1610 3152 1611 3153 1611 3153 1612 3153 1613 3152 1612 3151 1612 3149 1612 3148 1611 3148 1611 3147 1612 3146 1611 3144 1611 3144 1611 3143 1611 3141 1611 3140 1611 3139 1610 3139 1610 3139 1611 3139 1611 3139 1611 3138 1612 3136 1613 3133 1613 3132 1613 3132 1612 3131 1612 3132 1613 3132 1613 3133 1613 3135 1613 3135 1613 3136 1613 3141 1613 3142 1613 3143 1613 3144 1614 3145 1614 3145 1614 3144 1614 3143 1613 3142 1613 3142 1613 3144 1612 3145 1613 3145 1613 3146 1613 3148 1614 3149 1614 3151 1614 3151 1615 3151 1615 3151 1615 3151 1616 3151 1616 3151 1616 3152 1616 3153 1616 3152 1616 3152 1615 3152 1615 3153 1615 3154 1615 3154 1615 3156 1616 3158 1616 3160 1616 3161 1615 3162 1615 3162 1615 3163 1615 3163 1615 3164 1615 3165 1615 3166 1615 3166 1615 3167 1614 3168 1614 3169 1614 3170 1615 3170 1615 3170 1615 3170 1614 3170 1614 3169 1613 3170 1613 3170 1613 3171 1613 3172 1614 3173 1615 3172 1615 3171 1615 3169 1615 3168 1615 3168 1615 3167 1615 3167 1616 3167 1617 3167 1618 3166 1618 3165 1619 3163 1619 3161 1622 3161 1622 3161 1622 3159 1621 3159 1620 3159 1619 3159 1618 3157 1617 3156 1619 3156 1620 3156 1621 3156 1621 3156 1621 3157 1622 3156 1623 3152 1624 3151 1624 3150 1624 3149 1624 3148 1624 3147 1624 3148 1625 3149 1625 3147 1626 3145 1626 3143 1626 3142 1626 3141 1626 3138 1626 3138 1626 3137 1626 3135 1626 3134 1626 3134 1626 3135 1626 3136 1626 3137 1626 3137 1626 3141 1626 3142 1626 3143 1627 3145 1628 3144 1629 3142 1629 3140 1629 3140 1629 3139 1629 3139 1629 3138 1628 3137 1628 3140 1629 3142 1630 3143 1630 3143 1631 3144 1633 3144 1633 3143 1634 3143 1634 3142 1635 3142 1635 3142 1636 3141 1636 3140 1636 3141 1636 3141 1636 3142 1637 3142 1637 3143 1637 3143 1638 3142 1638 3141 1638 3140 1638 3140 1637 3139 1636 3139 1638 3140 1638 3142 1640 3142 1640 3140 1640 3140 1639 3139 1639 3137 1638 3138 1639 3140 1640 3141 1640 3142 1641 3142 1641 3141 1642 3141 1643 3142 1644 3141 1646 3141 1646 3141 1646 3140 1646 3139 1646 3138 1647 3138 1648 3138 1649 3138 1649 3139 1650 3139 1650 3140 1651 3140 1651 3138 1651 3138 1653 3138 1654 3137 1655 3137 1655 3137 1657 3135 1658 3135 1658 3135 1658 3134 1658 3132 1661 3132 1661 3132 1662 3131 1663 3131 1664 3131 1665 3128 1667 3127 1666 3127 1666 3125 1665 3124 1665 3121 1666 3118 1666 3116 1666 3112 1665 3110 1665 3110 1666 3110 1666 3110 1666 3111 1667 3111 1668 3110 1668 3110 1668 3109 1668 3109 1668 3108 1667 3107 1667 3107 1667 3107 1667 3105 1669 3104 1669 3103 1670 3102 1670 3102 1671 3102 1671 3102 1672 3102 1672 3102 1673 3103 1674 3104 1675 3104 1675 3104 1676 3104 1676 3102 1678 3101 1678 3101 1678 3100 1678 3099 1678 3099 1678 3098 1677 3098 1677 3097 1677 3097 1677 3094 1677 3094 1677 3093 1677 3091 1678 3090 1678 3089 1678 3089 1679 3088 1679 3087 1679 3082 1678 3081 1675 3081 1675 3082 1675 3082 1674 3083 1674 3084 1673 3081 1671 3081 1671 3078 1667 3077 1667 3077 1666 3076 1666 3074 1663 3077 1664 3078 1664 3079 1664 3080 1664 3078 1662 3077 1662 3077 1662 3077 1661 3077 1661 3077 1661 3078 1661 3079 1661 3080 1661 3080 1661 3081 1661 3081 1661 3081 1661 3081 1661 3082 1660 3082 1659 3081 1659 3081 1658 3080 1658 3079 1658 3079 1658 3078 1658 3077 1657 3076 1656 3076 1656 3076 1655 3076 1655 3074 1654 3073 1654 3072 1653 3072 1653 3071 1652 3071 1651 3069 1649 3068 1648 3069 1648 3069 1647 3068 1645 3067 1645 3067 1645 3066 1647 3066 1646 3065 1646 3065 1645 3065 1644 3065 1644 3065 1644 3065 1643 3065 1642 3064 1642 3064 1642 3065 1641 3065 1641 3063 1641 3062 1641 3062 1639 3061 1639 3062 1638 3063 1638 3063 1636 3063 1635 3063 1635 3063 1635 3063 1635 3064 1634 3065 1633 3063 1631 3062 1631 3061 1632 3060 1632 3059 1632 3059 1632 3057 1632 3057 1631 3055 1631 3054 1630 3054 1628 3055 1627 3055 1627 3055 1626 3055 1626 3054 1625 3054 1625 3054 1624 3054 1624 3054 1623 3054 1623 3054 1621 3053 1621 3053 1621 3053 1620 3053 1620 3053 1619 3054 1619 3055 1619 3056 1619 3056 1619 3057 1619 3057 1620 3057 1620 3058 1620 3057 1621 3058 1622 3058 1622 3059 1622 3060 1622 3060 1622 3061 1622 3063 1619 3063 1618 3063 1617 3063 1617 3063 1617 M 3154 1566 3154 1566 3154 1566 3153 1566 3152 1565 3154 1565 3155 1566 3155 1566 3155 1566 3154 1566 M 3171 1599 3171 1599 3171 1599 3169 1598 3169 1598 3169 1598 3168 1596 3169 1596 3169 1596 3169 1596 3170 1597 3171 1599 3171 1599 3172 1599 3171 1599 M 3151 1614 3150 1614 3149 1614 3148 1613 3148 1613 3149 1613 3150 1613 3151 1613 3151 1613 3151 1613 3152 1614 3152 1614 3151 1614 3151 1614 M 3159 1615 3159 1615 3158 1615 3157 1615 3157 1615 3157 1615 3156 1614 3156 1613 3156 1613 3157 1613 3157 1613 3158 1614 3159 1614 3159 1615 3159 1615 M 3058 1635 3058 1635 3057 1634 3057 1634 3061 1632 3062 1632 3062 1632 3062 1632 3063 1632 3064 1633 3064 1633 3064 1634 3064 1634 3064 1634 3062 1634 3061 1635 3061 1634 3060 1634 3060 1634 3060 1634 3058 1635 3058 1635 3058 1635 M 3059 1636 3059 1636 3059 1636 3059 1636 3059 1635 3062 1635 3063 1636 3062 1636 3062 1636 3061 1637 3061 1637 3060 1637 3060 1637 3060 1637 3059 1637 3059 1636 M 3180 1639 3180 1638 3180 1638 3179 1638 3179 1637 3180 1637 3180 1637 3183 1636 3183 1636 3183 1637 3184 1637 3183 1637 3183 1637 3183 1637 3182 1637 3181 1637 3181 1637 3181 1638 3180 1639 M 3179 1638 3179 1639 3177 1640 3176 1641 3175 1641 3175 1642 3175 1644 3175 1645 3175 1645 3174 1648 3173 1649 3171 1649 3171 1649 3170 1650 3169 1650 3169 1650 3168 1651 3168 1652 3167 1653 3166 1653 3165 1654 3165 1653 3165 1653 3166 1652 3167 1652 3167 1651 3165 1650 3165 1648 3165 1647 3165 1646 3164 1644 3164 1644 3164 1644 3165 1643 3165 1643 3166 1642 3166 1642 3167 1642 3167 1642 3168 1641 3168 1641 3169 1641 3169 1640 3169 1640 3170 1639 3173 1637 3174 1637 3177 1637 3177 1637 3179 1638 3179 1638 M 3137 1665 3137 1665 3137 1664 3137 1664 3137 1661 3137 1660 3137 1659 3139 1656 3140 1654 3141 1654 3141 1654 3143 1653 3144 1651 3145 1650 3146 1648 3146 1648 3146 1648 3146 1648 3146 1647 3146 1647 3146 1647 3146 1647 3147 1647 3147 1647 3147 1646 3147 1646 3148 1647 3149 1647 3147 1649 3147 1650 3146 1651 3145 1651 3145 1653 3144 1655 3144 1655 3144 1655 3144 1655 3143 1655 3143 1655 3142 1657 3141 1660 3140 1662 3140 1662 3140 1662 3140 1662 3140 1662 3139 1663 3138 1664 3138 1664 3138 1664 3138 1665 3137 1665" />
+<path id="gs" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2284 3431 2284 3431 2283 3430 2283 3430 2283 3430 2282 3429 2280 3429 2280 3429 2278 3429 2278 3429 2278 3428 2278 3428 2279 3428 2280 3427 2276 3427 2275 3427 2276 3428 2275 3428 2275 3428 2274 3428 2273 3428 2273 3427 2273 3427 2273 3426 2274 3426 2274 3426 2273 3426 2270 3426 2268 3426 2268 3425 2269 3425 2269 3425 2272 3425 2276 3425 2277 3426 2278 3426 2280 3426 2281 3426 2284 3426 2287 3426 2290 3427 2290 3427 2291 3428 2289 3429 2289 3429 2290 3430 2290 3429 2291 3429 2292 3429 2292 3429 2292 3429 2293 3430 2294 3431 2295 3431 2294 3430 2294 3429 2294 3429 2295 3429 2296 3430 2296 3430 2296 3431 2297 3432 2298 3434 2299 3434 2300 3434 2301 3435 2301 3436 2301 3436 2302 3437 2303 3437 2303 3437 2303 3438 2301 3438 2301 3438 2300 3438 2300 3438 2300 3438 2299 3437 2299 3437 2298 3437 2300 3438 2300 3438 2301 3438 2301 3439 2301 3439 2299 3439 2298 3439 2298 3439 2297 3438 2295 3437 2295 3436 2295 3436 2293 3433 2292 3433 2291 3433 2290 3433 2288 3433 2287 3432 2287 3432 2286 3431 2285 3430 2284 3431 M 2456 3497 2456 3497 2455 3497 2454 3496 2453 3496 2453 3496 2453 3496 2452 3496 2453 3495 2453 3495 2453 3495 2453 3495 2455 3495 2455 3495 2455 3495 2456 3495 2456 3496 2456 3497 2456 3497" />
+<path id="sy" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3445 2031 3445 2031 3444 2031 3444 2031 3444 2031 3446 2030 3447 2030 3447 2030 3447 2029 3447 2029 3448 2029 3448 2029 3449 2028 3451 2027 3451 2026 3450 2026 3449 2025 3449 2025 3450 2024 3450 2023 3451 2022 3454 2022 3456 2022 3456 2022 3456 2022 3456 2021 3455 2021 3455 2021 3455 2020 3456 2019 3456 2019 3458 2018 3460 2016 3459 2016 3459 2014 3458 2013 3457 2012 3457 2011 3456 2011 3456 2011 3456 2011 3457 2010 3457 2009 3456 2009 3455 2009 3452 2009 3452 2009 3452 2009 3451 2009 3450 2009 3450 2009 3449 2008 3449 2008 3448 2005 3448 2005 3448 2004 3448 2002 3448 2002 3449 2001 3449 2000 3449 2000 3449 2000 3449 1999 3449 1997 3448 1996 3446 1994 3447 1993 3447 1992 3448 1992 3448 1990 3449 1989 3450 1989 3452 1990 3452 1990 3452 1990 3452 1990 3453 1990 3453 1990 3453 1989 3453 1989 3454 1988 3455 1988 3456 1988 3456 1987 3456 1986 3456 1985 3456 1984 3458 1984 3459 1984 3459 1984 3460 1984 3461 1984 3461 1983 3461 1983 3459 1981 3459 1981 3459 1980 3459 1978 3461 1974 3461 1974 3461 1974 3461 1974 3465 1975 3466 1975 3467 1976 3468 1977 3470 1977 3470 1977 3472 1977 3474 1977 3475 1976 3477 1976 3477 1976 3478 1976 3478 1976 3480 1975 3481 1975 3481 1975 3482 1974 3482 1974 3483 1974 3483 1974 3485 1973 3486 1973 3488 1973 3489 1973 3490 1974 3491 1974 3492 1975 3493 1976 3494 1976 3494 1976 3497 1976 3497 1976 3498 1976 3499 1976 3499 1976 3499 1976 3500 1977 3501 1977 3501 1977 3502 1977 3503 1977 3505 1976 3507 1976 3511 1975 3513 1975 3513 1975 3514 1974 3517 1973 3518 1973 3518 1973 3521 1972 3521 1971 3522 1971 3522 1971 3524 1970 3525 1970 3525 1970 3526 1970 3527 1970 3528 1969 3529 1969 3532 1970 3533 1970 3536 1970 3537 1970 3538 1970 3539 1970 3543 1969 3546 1969 3547 1968 3547 1968 3548 1967 3549 1967 3549 1967 3551 1967 3551 1968 3552 1969 3552 1970 3552 1970 3552 1971 3552 1971 3543 1978 3536 1979 3536 1980 3534 1982 3534 1987 3534 1987 3536 1989 3536 1990 3536 1993 3535 1995 3534 1996 3534 1996 3534 1996 3534 1997 3534 1998 3534 1998 3534 1999 3533 1999 3533 2000 3533 2000 3533 2000 3533 2002 3533 2002 3533 2005 3533 2007 3531 2010 3530 2012 3530 2013 3524 2015 3517 2019 3517 2019 3514 2020 3511 2022 3507 2023 3504 2025 3497 2028 3495 2029 3495 2029 3493 2030 3490 2032 3487 2033 3481 2036 3476 2039 3474 2040 3474 2040 3474 2040 3468 2043 3464 2046 3463 2046 3462 2046 3460 2046 3458 2046 3458 2045 3456 2045 3456 2044 3455 2044 3453 2043 3453 2043 3452 2043 3451 2043 3450 2042 3450 2041 3449 2040 3447 2040 3446 2039 3445 2040 3444 2040 3444 2040 3444 2040 3445 2039 3445 2039 3444 2038 3444 2038 3444 2037 3444 2037 3444 2037 3444 2036 3444 2035 3444 2035 3444 2034 3444 2033 3445 2032 3445 2032 3445 2032 3445 2031" />
+<path id="ch" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2978 1814 2978 1813 2979 1812 2980 1812 2981 1812 2982 1811 2982 1811 2984 1810 2984 1809 2984 1809 2986 1807 2987 1806 2986 1806 2986 1806 2985 1806 2987 1804 2987 1804 2989 1804 2990 1805 2991 1805 2991 1805 2992 1805 2992 1805 2992 1805 2993 1805 2993 1805 2993 1805 2994 1804 2994 1804 2995 1804 2995 1804 2995 1803 2995 1803 2996 1803 2996 1803 2996 1802 2996 1802 2997 1802 2998 1802 2997 1803 2997 1803 2997 1803 2998 1803 2999 1803 3001 1803 3003 1803 3004 1803 3006 1802 3007 1802 3007 1802 3009 1803 3010 1803 3010 1802 3011 1802 3012 1802 3012 1802 3012 1802 3012 1802 3013 1801 3013 1801 3012 1801 3011 1801 3011 1801 3011 1801 3009 1801 3009 1801 3010 1799 3012 1799 3013 1799 3013 1799 3014 1799 3015 1800 3014 1800 3014 1801 3015 1801 3016 1801 3015 1800 3016 1800 3016 1800 3016 1801 3017 1801 3017 1801 3018 1801 3018 1801 3018 1801 3019 1801 3019 1801 3020 1801 3023 1801 3026 1803 3028 1803 3028 1804 3028 1804 3029 1804 3029 1806 3029 1806 3029 1806 3027 1807 3027 1807 3027 1808 3026 1809 3027 1809 3027 1809 3027 1810 3026 1811 3027 1811 3027 1811 3027 1811 3028 1811 3029 1811 3030 1811 3033 1811 3033 1812 3033 1812 3033 1813 3034 1813 3036 1814 3036 1814 3037 1814 3037 1814 3037 1814 3038 1814 3040 1813 3040 1813 3040 1812 3041 1812 3042 1812 3043 1813 3042 1814 3042 1816 3042 1818 3042 1818 3042 1818 3042 1819 3042 1819 3042 1819 3040 1819 3040 1819 3039 1818 3039 1818 3039 1818 3038 1818 3037 1818 3036 1819 3035 1820 3036 1821 3036 1821 3037 1822 3038 1824 3037 1824 3036 1824 3035 1823 3034 1822 3035 1822 3034 1822 3033 1822 3032 1822 3032 1822 3031 1822 3030 1823 3029 1823 3028 1823 3027 1823 3027 1823 3026 1822 3026 1821 3026 1820 3025 1820 3023 1820 3023 1821 3023 1821 3023 1822 3023 1823 3023 1823 3023 1824 3022 1825 3021 1825 3021 1825 3020 1826 3019 1827 3019 1827 3019 1828 3019 1829 3020 1829 3020 1829 3019 1830 3019 1831 3018 1830 3018 1830 3018 1829 3017 1829 3016 1828 3016 1827 3016 1827 3016 1826 3016 1826 3015 1826 3014 1826 3014 1826 3014 1826 3013 1826 3010 1824 3010 1824 3010 1823 3010 1823 3010 1822 3010 1821 3010 1820 3009 1821 3008 1821 3008 1821 3005 1824 3005 1825 3005 1825 3003 1828 3002 1828 3002 1828 3001 1828 3001 1828 3001 1829 3000 1829 2999 1829 2999 1829 2998 1829 2997 1828 2995 1828 2994 1829 2994 1829 2993 1829 2992 1829 2992 1829 2990 1829 2990 1830 2988 1830 2988 1829 2987 1829 2987 1828 2987 1828 2986 1827 2985 1826 2983 1825 2984 1822 2984 1821 2984 1821 2983 1821 2982 1821 2981 1820 2979 1820 2979 1821 2976 1821 2976 1821 2975 1822 2975 1823 2975 1823 2975 1824 2975 1824 2974 1825 2973 1825 2971 1825 2970 1824 2971 1824 2971 1824 2971 1824 2972 1824 2973 1824 2973 1823 2973 1823 2973 1822 2973 1821 2972 1821 2972 1821 2973 1819 2973 1818 2975 1817 2977 1816 2978 1816 2978 1815 2978 1814 M 3014 1801 3014 1800 3014 1801 3014 1801 3014 1801" />
+<path id="ae" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3774 2165 3774 2166 3773 2166 3772 2166 3772 2167 3772 2167 3771 2167 3771 2167 3770 2167 3769 2165 3769 2165 3770 2165 3770 2165 3770 2164 3770 2164 3769 2164 3769 2163 3769 2163 3768 2164 3768 2164 3767 2164 3767 2164 3766 2165 3766 2165 3766 2168 3767 2168 3767 2169 3766 2170 3766 2170 3766 2172 3767 2173 3766 2174 3766 2175 3767 2176 3768 2176 3768 2175 3769 2175 3770 2178 3770 2178 3767 2179 3766 2179 3764 2179 3764 2179 3762 2180 3762 2181 3762 2181 3762 2183 3761 2185 3760 2187 3759 2190 3759 2191 3759 2191 3758 2192 3758 2193 3757 2193 3757 2195 3757 2196 3757 2197 3757 2198 3757 2198 3757 2198 3757 2200 3756 2201 3715 2196 3699 2177 3699 2175 3700 2175 3701 2175 3702 2176 3702 2177 3702 2177 3702 2178 3702 2179 3703 2179 3703 2179 3705 2179 3707 2180 3709 2180 3709 2180 3710 2179 3711 2179 3712 2178 3714 2177 3715 2176 3716 2176 3716 2177 3716 2177 3718 2177 3721 2177 3722 2177 3723 2177 3724 2177 3725 2177 3727 2178 3728 2177 3729 2177 3730 2178 3730 2178 3731 2178 3731 2178 3735 2178 3739 2177 3740 2176 3741 2176 3744 2175 3744 2175 3745 2174 3745 2173 3745 2173 3746 2172 3746 2172 3747 2172 3748 2169 3748 2168 3748 2167 3749 2166 3753 2164 3754 2164 3754 2163 3754 2163 3755 2163 3756 2162 3756 2161 3757 2161 3757 2160 3757 2160 3757 2160 3758 2159 3758 2159 3759 2158 3759 2158 3759 2157 3760 2157 3761 2157 3761 2156 3762 2156 3762 2155 3762 2155 3762 2154 3762 2154 3762 2154 3762 2155 3763 2155 3764 2155 3764 2154 3764 2154 3765 2153 3765 2153 3767 2152 3770 2149 3770 2148 3771 2147 3771 2146 3772 2146 3772 2147 3772 2149 3772 2150 3772 2151 3772 2153 3772 2153 3772 2153 3773 2153 3774 2153 3775 2153 3775 2154 3775 2155 3775 2156 3775 2156 3775 2157 3775 2158 3776 2158 3775 2159 3775 2162 3775 2162 3775 2162 3775 2164 3775 2164 3775 2164 3775 2164 3775 2164 3775 2165 3775 2165 3774 2165 3774 2165 3774 2165 M 3734 2177 3732 2177 3732 2177 3732 2177 3732 2177 3732 2177 3732 2176 3732 2176 3732 2176 3733 2176 3735 2175 3737 2176 3737 2176 3737 2177 3737 2177 3736 2177 3735 2177 3734 2177" />
+<path id="tt" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1904 2385 1903 2384 1903 2384 1905 2383 1905 2382 1906 2382 1908 2381 1908 2382 1908 2382 1908 2383 1906 2384 1906 2384 1906 2384 1905 2384 1905 2384 1904 2385 M 1899 2390 1899 2390 1900 2389 1902 2389 1902 2390 1902 2390 1902 2391 1901 2391 1901 2391 1900 2392 1900 2392 1900 2395 1900 2397 1901 2397 1901 2400 1899 2401 1899 2401 1898 2402 1897 2402 1894 2402 1892 2402 1890 2402 1889 2402 1888 2401 1887 2402 1887 2402 1887 2402 1886 2402 1886 2402 1888 2401 1890 2400 1893 2399 1893 2398 1893 2398 1893 2394 1893 2393 1893 2393 1892 2392 1891 2392 1891 2392 1890 2392 1890 2391 1891 2391 1893 2391 1894 2391 1895 2390 1897 2390 1898 2390 1898 2390 1898 2390 1899 2390" />
+<path id="th" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4519 2377 4519 2375 4519 2375 4517 2373 4517 2372 4516 2370 4514 2368 4514 2368 4513 2368 4513 2369 4510 2368 4509 2366 4510 2366 4510 2365 4510 2365 4510 2365 4510 2365 4509 2366 4508 2366 4508 2366 4508 2366 4507 2365 4506 2364 4505 2363 4505 2362 4505 2362 4504 2362 4503 2362 4502 2362 4502 2361 4502 2361 4501 2360 4501 2360 4500 2360 4500 2360 4499 2360 4499 2360 4499 2360 4497 2361 4494 2361 4494 2361 4493 2361 4493 2361 4492 2360 4492 2360 4490 2360 4489 2360 4488 2360 4488 2361 4488 2361 4487 2361 4486 2360 4486 2360 4486 2359 4486 2359 4487 2355 4487 2354 4487 2352 4487 2351 4487 2350 4487 2350 4488 2349 4488 2349 4488 2349 4488 2347 4487 2347 4486 2347 4486 2347 4485 2347 4484 2347 4481 2347 4481 2347 4480 2347 4479 2347 4479 2347 4478 2347 4476 2347 4474 2348 4473 2348 4472 2350 4472 2350 4472 2351 4472 2351 4473 2352 4473 2352 4473 2352 4474 2354 4474 2354 4473 2355 4473 2355 4473 2356 4472 2359 4472 2360 4472 2361 4472 2361 4472 2361 4472 2363 4472 2365 4473 2368 4472 2369 4472 2370 4471 2370 4471 2370 4470 2371 4470 2371 4470 2372 4470 2372 4469 2372 4469 2375 4468 2376 4466 2379 4466 2379 4466 2380 4466 2381 4466 2381 4464 2384 4464 2385 4464 2385 4464 2386 4464 2386 4464 2387 4464 2387 4464 2387 4464 2388 4464 2389 4463 2391 4462 2392 4461 2392 4460 2394 4460 2395 4459 2397 4459 2397 4459 2398 4459 2400 4459 2401 4459 2401 4459 2403 4459 2404 4459 2405 4459 2406 4459 2407 4459 2407 4459 2409 4460 2411 4461 2412 4461 2413 4461 2413 4460 2413 4460 2414 4460 2415 4460 2415 4461 2415 4462 2416 4463 2416 4464 2416 4464 2415 4466 2414 4468 2414 4468 2414 4469 2414 4469 2414 4469 2414 4470 2414 4470 2415 4470 2417 4471 2419 4471 2420 4471 2421 4471 2424 4472 2425 4472 2425 4472 2426 4473 2426 4473 2426 4473 2427 4474 2428 4475 2429 4475 2428 4475 2427 4475 2427 4474 2426 4475 2427 4476 2427 4476 2428 4476 2429 4477 2430 4477 2430 4477 2431 4477 2432 4477 2433 4477 2435 4478 2436 4478 2437 4478 2438 4478 2438 4478 2439 4478 2439 4479 2441 4479 2442 4479 2443 4480 2444 4480 2445 4480 2446 4480 2446 4481 2446 4481 2447 4481 2447 4481 2448 4481 2448 4479 2446 4479 2443 4479 2443 4478 2442 4477 2438 4476 2438 4476 2438 4475 2438 4475 2439 4475 2439 4475 2441 4475 2442 4475 2442 4476 2445 4477 2445 4477 2445 4478 2445 4478 2446 4478 2447 4479 2448 4480 2449 4481 2449 4482 2448 4482 2448 4483 2448 4483 2449 4484 2450 4484 2451 4485 2451 4485 2451 4487 2452 4488 2452 4488 2453 4489 2453 4489 2453 4489 2453 4490 2453 4491 2453 4494 2453 4494 2452 4493 2452 4494 2452 4496 2453 4497 2453 4497 2453 4497 2453 4498 2454 4499 2456 4500 2458 4500 2458 4500 2459 4501 2459 4501 2459 4504 2462 4505 2462 4506 2463 4506 2464 4504 2466 4504 2466 4503 2467 4503 2467 4503 2468 4503 2468 4503 2469 4501 2471 4501 2471 4501 2470 4500 2470 4499 2470 4499 2470 4499 2470 4499 2469 4498 2468 4497 2468 4496 2469 4495 2469 4493 2470 4492 2471 4492 2472 4491 2472 4491 2472 4490 2473 4489 2471 4488 2470 4488 2470 4489 2468 4489 2468 4490 2468 4490 2467 4490 2466 4490 2465 4490 2464 4490 2463 4488 2462 4487 2463 4486 2463 4486 2462 4486 2462 4486 2462 4485 2460 4484 2459 4484 2459 4483 2459 4483 2460 4479 2458 4478 2458 4478 2458 4478 2458 4478 2457 4478 2457 4477 2455 4476 2455 4476 2455 4475 2455 4475 2456 4475 2457 4475 2457 4475 2457 4475 2459 4474 2460 4474 2460 4474 2459 4474 2458 4473 2458 4472 2458 4472 2457 4472 2457 4471 2456 4470 2454 4469 2454 4469 2453 4468 2453 4467 2453 4467 2451 4467 2450 4467 2450 4468 2449 4468 2449 4467 2449 4466 2448 4465 2447 4462 2446 4462 2445 4462 2444 4461 2441 4460 2440 4460 2440 4458 2439 4458 2440 4457 2439 4457 2439 4457 2438 4457 2436 4456 2435 4454 2434 4454 2435 4453 2434 4452 2434 4452 2433 4452 2433 4452 2432 4452 2431 4451 2430 4451 2430 4451 2430 4450 2430 4450 2429 4450 2429 4451 2429 4451 2429 4450 2429 4449 2429 4448 2430 4447 2430 4448 2430 4448 2431 4447 2432 4446 2433 4445 2431 4445 2430 4444 2428 4443 2426 4443 2426 4444 2425 4444 2425 4444 2424 4444 2421 4445 2420 4446 2419 4446 2419 4446 2418 4446 2417 4446 2415 4446 2415 4446 2414 4446 2413 4447 2413 4447 2413 4448 2410 4449 2407 4449 2406 4449 2405 4449 2404 4451 2400 4451 2400 4452 2399 4452 2398 4452 2397 4452 2397 4452 2396 4453 2396 4453 2395 4453 2394 4453 2393 4453 2393 4453 2392 4453 2391 4454 2390 4455 2390 4455 2390 4457 2387 4458 2387 4458 2386 4459 2386 4459 2386 4460 2385 4460 2384 4460 2384 4461 2382 4462 2381 4464 2378 4465 2377 4466 2375 4467 2374 4466 2373 4466 2373 4465 2371 4465 2369 4465 2369 4464 2368 4464 2366 4463 2366 4463 2363 4463 2362 4461 2360 4460 2359 4458 2354 4458 2352 4459 2352 4459 2352 4460 2351 4460 2351 4460 2348 4460 2347 4459 2346 4459 2346 4459 2345 4459 2344 4459 2343 4458 2343 4457 2340 4456 2339 4456 2338 4455 2337 4454 2337 4453 2336 4452 2335 4450 2334 4449 2333 4449 2332 4449 2331 4448 2330 4447 2329 4447 2329 4447 2328 4445 2327 4444 2326 4444 2325 4444 2325 4444 2324 4444 2323 4444 2323 4443 2322 4444 2320 4444 2319 4444 2319 4447 2319 4447 2318 4447 2317 4448 2317 4449 2317 4449 2318 4450 2317 4450 2317 4450 2316 4450 2316 4450 2315 4449 2314 4449 2314 4449 2313 4449 2313 4449 2312 4449 2312 4449 2311 4450 2307 4450 2306 4451 2305 4451 2305 4453 2305 4453 2305 4454 2305 4455 2303 4455 2301 4454 2300 4453 2301 4453 2301 4452 2303 4451 2302 4451 2301 4451 2300 4449 2297 4449 2296 4448 2295 4448 2294 4449 2293 4449 2293 4448 2292 4448 2291 4447 2290 4447 2290 4446 2290 4445 2289 4445 2288 4444 2287 4443 2287 4442 2286 4441 2284 4440 2283 4439 2282 4438 2281 4437 2280 4437 2280 4435 2277 4436 2276 4436 2276 4436 2275 4435 2273 4435 2272 4434 2271 4434 2271 4435 2271 4434 2270 4434 2270 4433 2270 4433 2271 4433 2271 4432 2271 4432 2270 4431 2269 4431 2269 4431 2268 4431 2267 4430 2267 4430 2266 4430 2266 4430 2266 4430 2266 4431 2267 4432 2267 4433 2267 4434 2266 4435 2266 4436 2266 4437 2266 4437 2265 4437 2265 4437 2264 4436 2261 4436 2261 4435 2260 4436 2259 4437 2258 4438 2257 4438 2256 4438 2256 4438 2254 4437 2253 4437 2253 4438 2251 4438 2250 4439 2250 4440 2249 4441 2249 4441 2248 4441 2248 4441 2246 4441 2246 4443 2247 4443 2247 4444 2247 4444 2248 4446 2248 4447 2248 4448 2248 4449 2248 4451 2247 4454 2246 4455 2247 4455 2247 4456 2246 4457 2246 4457 2245 4457 2245 4457 2244 4457 2242 4458 2241 4459 2241 4459 2241 4460 2241 4461 2241 4461 2242 4462 2242 4463 2242 4464 2241 4464 2241 4465 2241 4465 2240 4464 2238 4465 2237 4466 2238 4467 2238 4469 2238 4469 2238 4470 2237 4470 2237 4470 2236 4472 2236 4472 2236 4472 2236 4473 2237 4474 2237 4474 2237 4474 2238 4475 2238 4476 2237 4476 2237 4477 2237 4477 2237 4478 2237 4478 2237 4478 2238 4478 2238 4479 2239 4480 2240 4481 2241 4481 2240 4481 2241 4481 2242 4481 2243 4480 2245 4480 2245 4479 2246 4479 2247 4479 2247 4479 2247 4479 2249 4480 2250 4480 2251 4481 2251 4482 2251 4482 2250 4482 2250 4483 2251 4484 2251 4485 2251 4485 2251 4486 2250 4486 2250 4486 2249 4487 2249 4488 2249 4489 2249 4489 2249 4490 2250 4492 2250 4492 2250 4493 2250 4493 2251 4492 2251 4492 2252 4491 2253 4491 2253 4493 2257 4493 2258 4494 2258 4494 2259 4493 2259 4493 2259 4492 2261 4492 2261 4492 2263 4492 2264 4492 2265 4491 2266 4491 2266 4490 2267 4489 2268 4489 2268 4490 2269 4490 2269 4491 2269 4491 2272 4491 2274 4490 2275 4490 2276 4490 2276 4489 2276 4489 2277 4488 2278 4488 2279 4488 2279 4488 2279 4487 2281 4487 2281 4487 2281 4487 2282 4487 2282 4488 2282 4488 2282 4489 2282 4489 2283 4491 2284 4492 2282 4493 2281 4494 2280 4496 2279 4497 2278 4497 2278 4497 2277 4498 2277 4499 2277 4500 2275 4500 2274 4501 2274 4502 2274 4502 2274 4503 2274 4504 2273 4505 2272 4505 2272 4506 2272 4506 2272 4507 2272 4507 2272 4508 2273 4508 2274 4509 2274 4511 2275 4512 2275 4513 2275 4513 2275 4514 2276 4514 2276 4514 2277 4515 2278 4516 2277 4518 2276 4518 2275 4519 2275 4520 2275 4520 2275 4521 2275 4521 2275 4521 2273 4522 2273 4522 2272 4524 2271 4524 2270 4524 2269 4525 2269 4525 2268 4526 2268 4526 2268 4527 2268 4528 2268 4530 2269 4532 2270 4534 2270 4535 2270 4536 2270 4537 2271 4537 2272 4538 2273 4538 2273 4539 2275 4540 2275 4540 2276 4540 2277 4540 2277 4541 2277 4541 2278 4543 2279 4543 2280 4543 2281 4546 2282 4547 2283 4548 2283 4549 2284 4549 2285 4549 2285 4549 2286 4549 2287 4549 2288 4549 2289 4549 2289 4548 2290 4548 2290 4548 2291 4548 2291 4548 2292 4548 2292 4548 2295 4548 2295 4548 2296 4548 2296 4548 2297 4548 2298 4548 2299 4551 2301 4551 2302 4552 2302 4552 2303 4552 2303 4552 2303 4553 2304 4553 2305 4553 2305 4553 2305 4555 2306 4556 2306 4556 2306 4556 2306 4557 2306 4559 2307 4559 2307 4558 2307 4558 2307 4558 2308 4558 2310 4558 2310 4559 2311 4560 2311 4560 2311 4561 2311 4562 2311 4562 2312 4562 2313 4562 2314 4562 2315 4562 2316 4562 2316 4561 2316 4561 2316 4561 2317 4560 2320 4560 2321 4560 2322 4562 2323 4561 2324 4561 2325 4561 2325 4560 2326 4561 2329 4561 2329 4561 2330 4560 2330 4560 2331 4559 2332 4558 2332 4557 2333 4556 2333 4555 2333 4555 2333 4555 2334 4554 2335 4554 2335 4553 2335 4553 2335 4552 2334 4552 2334 4552 2333 4552 2333 4552 2333 4551 2332 4550 2332 4549 2332 4546 2332 4546 2333 4545 2333 4545 2333 4544 2333 4543 2333 4543 2333 4541 2332 4538 2333 4537 2333 4537 2333 4537 2333 4535 2333 4532 2333 4531 2332 4531 2332 4529 2332 4528 2333 4528 2333 4526 2333 4525 2333 4525 2333 4524 2334 4523 2334 4522 2334 4522 2334 4521 2335 4521 2335 4521 2335 4520 2336 4520 2336 4519 2336 4519 2336 4519 2337 4519 2338 4518 2339 4517 2340 4517 2340 4517 2340 4517 2341 4516 2341 4516 2343 4514 2343 4513 2344 4513 2345 4514 2345 4513 2346 4513 2346 4512 2346 4511 2346 4511 2346 4510 2346 4510 2347 4510 2349 4510 2350 4510 2350 4510 2350 4510 2352 4511 2353 4512 2355 4513 2358 4513 2359 4512 2359 4512 2359 4512 2360 4513 2360 4513 2361 4514 2361 4517 2364 4517 2364 4516 2365 4516 2368 4516 2368 4518 2373 4518 2374 4519 2374 4519 2375 4519 2375 4519 2376 4519 2377 M 4511 2371 4511 2371 4511 2371 4511 2372 4509 2372 4509 2371 4508 2369 4508 2368 4509 2368 4509 2369 4509 2369 4509 2369 4510 2369 4510 2369 4510 2370 4510 2370 4511 2371 4511 2371 4511 2371 M 4513 2375 4514 2376 4514 2376 4514 2376 4514 2378 4513 2378 4513 2377 4513 2376 4513 2375 4513 2375 M 4473 2410 4473 2411 4473 2412 4472 2412 4471 2412 4471 2410 4472 2410 4473 2409 4474 2410 4474 2410 4473 2410 M 4446 2432 4446 2433 4446 2433 4447 2433 4447 2433 4447 2434 4447 2435 4447 2435 4447 2436 4447 2436 4447 2436 4447 2436 4447 2437 4445 2439 4445 2438 4445 2438 4445 2436 4445 2432 4445 2432 4445 2432 4446 2432 M 4449 2433 4450 2433 4450 2434 4450 2435 4450 2435 4450 2436 4450 2436 4449 2436 4449 2433 4449 2433 4449 2433 4449 2433 M 4467 2455 4467 2456 4467 2457 4467 2458 4467 2458 4467 2459 4467 2459 4466 2457 4466 2457 4466 2457 4467 2455" />
+<path id="tj" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4072 1968 4070 1966 4070 1966 4068 1965 4067 1965 4066 1965 4064 1965 4063 1965 4062 1965 4061 1965 4061 1965 4059 1966 4058 1967 4055 1967 4054 1968 4054 1968 4053 1968 4051 1968 4051 1967 4051 1967 4052 1967 4053 1966 4053 1965 4053 1965 4052 1965 4052 1965 4051 1965 4050 1964 4050 1964 4049 1964 4048 1964 4048 1964 4046 1964 4045 1964 4043 1965 4043 1966 4041 1967 4039 1968 4038 1968 4038 1968 4037 1968 4037 1969 4037 1969 4037 1970 4036 1970 4036 1971 4033 1971 4032 1971 4032 1971 4031 1972 4030 1972 4029 1972 4029 1972 4026 1974 4024 1976 4022 1976 4022 1977 4022 1977 4021 1977 4020 1977 4020 1977 4019 1976 4018 1976 4018 1975 4016 1973 4016 1972 4016 1970 4016 1969 4016 1968 4016 1968 4017 1967 4017 1967 4017 1967 4017 1966 4017 1965 4017 1963 4017 1962 4018 1960 4018 1959 4018 1959 4018 1958 4019 1958 4018 1957 4018 1956 4017 1956 4016 1957 4015 1957 4014 1957 4013 1957 4013 1956 4014 1954 4014 1953 4015 1953 4015 1952 4015 1952 4014 1951 4013 1951 4013 1951 4012 1950 4012 1950 4011 1949 4009 1948 4008 1948 4006 1949 4004 1949 4003 1950 4003 1951 4002 1952 4001 1953 3999 1955 3998 1956 3998 1956 3998 1956 3997 1956 3996 1957 3996 1957 3996 1958 3996 1958 3996 1958 3997 1958 3997 1959 3998 1960 3998 1960 3997 1962 3996 1963 3995 1963 3994 1963 3994 1963 3994 1963 3993 1963 3992 1962 3992 1962 3992 1962 3991 1962 3991 1962 3991 1962 3990 1962 3988 1962 3986 1962 3985 1962 3983 1964 3983 1965 3983 1965 3983 1966 3983 1966 3984 1967 3984 1968 3984 1968 3984 1969 3983 1969 3982 1970 3982 1970 3981 1970 3980 1970 3979 1969 3979 1969 3978 1967 3977 1967 3977 1966 3975 1966 3974 1966 3972 1967 3971 1968 3971 1968 3968 1970 3966 1970 3966 1971 3964 1971 3962 1973 3961 1973 3958 1970 3958 1970 3958 1969 3958 1968 3958 1968 3959 1967 3959 1967 3959 1966 3959 1966 3958 1965 3958 1965 3958 1964 3958 1964 3959 1963 3959 1963 3960 1962 3960 1962 3960 1961 3961 1961 3961 1961 3962 1960 3962 1959 3963 1959 3963 1958 3963 1957 3963 1957 3964 1957 3965 1956 3965 1956 3967 1955 3967 1954 3967 1953 3967 1952 3967 1952 3966 1951 3966 1951 3965 1950 3963 1949 3962 1947 3962 1945 3963 1943 3964 1943 3964 1942 3964 1942 3964 1941 3964 1941 3964 1941 3963 1940 3963 1940 3963 1940 3961 1939 3960 1940 3959 1940 3957 1940 3957 1940 3956 1939 3956 1939 3956 1938 3955 1937 3955 1937 3954 1937 3953 1937 3951 1936 3951 1935 3951 1935 3952 1935 3952 1934 3952 1933 3952 1932 3952 1932 3953 1931 3956 1930 3956 1930 3957 1930 3957 1930 3959 1930 3959 1930 3960 1930 3962 1931 3963 1931 3964 1931 3967 1931 3967 1931 3969 1931 3969 1931 3970 1931 3971 1930 3971 1929 3971 1927 3971 1926 3971 1926 3972 1926 3973 1926 3973 1926 3973 1926 3976 1925 3975 1924 3974 1924 3974 1924 3974 1923 3974 1922 3976 1922 3977 1922 3977 1922 3977 1921 3975 1921 3974 1922 3973 1922 3973 1922 3972 1922 3972 1922 3971 1921 3971 1921 3971 1921 3972 1920 3973 1920 3973 1920 3978 1920 3978 1920 3978 1920 3979 1920 3980 1920 3981 1921 3981 1921 3982 1920 3982 1920 3982 1918 3982 1918 3981 1916 3981 1914 3983 1911 3983 1911 3983 1911 3984 1911 3986 1911 3986 1912 3986 1912 3988 1913 3988 1913 3989 1913 3989 1913 3990 1913 3990 1912 3991 1912 3991 1912 3992 1912 3993 1912 3993 1912 3994 1911 3997 1910 3998 1909 3999 1909 3999 1908 3999 1907 3999 1907 4000 1907 4000 1907 4000 1907 4000 1907 4001 1907 4002 1908 4004 1910 4004 1910 4004 1911 4005 1911 4006 1912 4006 1912 4005 1912 4005 1913 4002 1915 4000 1916 3999 1916 3999 1916 3999 1918 4000 1918 4002 1920 4003 1920 4003 1920 4003 1920 4004 1920 4005 1920 4006 1920 4006 1920 4007 1920 4008 1920 4009 1920 4009 1920 4009 1921 4008 1921 4008 1921 4007 1921 4004 1922 4004 1923 4004 1923 4003 1924 4003 1924 4003 1924 4001 1925 4001 1925 4001 1924 4001 1924 4002 1924 4002 1923 4002 1923 4001 1923 4000 1922 3999 1922 3998 1922 3998 1922 3998 1921 3994 1920 3993 1920 3990 1921 3988 1921 3987 1922 3987 1922 3986 1922 3986 1922 3985 1922 3985 1923 3985 1924 3985 1925 3985 1925 3984 1925 3984 1925 3982 1924 3982 1925 3981 1926 3981 1927 3981 1927 3981 1928 3982 1928 3982 1929 3982 1929 3982 1930 3982 1930 3982 1931 3982 1931 3982 1931 3985 1931 3986 1931 3986 1930 3987 1930 3988 1930 3988 1930 3989 1930 3990 1930 3990 1931 3990 1931 3991 1931 3993 1931 3996 1930 3997 1930 3998 1931 3999 1930 4001 1930 4001 1930 4003 1930 4004 1931 4004 1931 4004 1931 4004 1932 4005 1933 4007 1933 4009 1933 4009 1933 4010 1933 4010 1932 4010 1932 4011 1931 4012 1931 4014 1930 4016 1930 4017 1930 4017 1930 4018 1930 4018 1931 4017 1931 4017 1932 4018 1932 4018 1932 4019 1932 4019 1932 4020 1932 4020 1932 4021 1932 4021 1933 4021 1933 4021 1934 4021 1934 4021 1935 4021 1935 4023 1935 4023 1935 4024 1934 4025 1934 4026 1934 4027 1934 4027 1935 4029 1936 4030 1935 4030 1935 4030 1935 4031 1934 4032 1934 4032 1934 4033 1934 4035 1934 4035 1933 4035 1933 4036 1933 4037 1934 4038 1934 4039 1934 4044 1934 4044 1934 4047 1933 4047 1933 4049 1932 4049 1932 4051 1932 4051 1932 4052 1934 4052 1934 4051 1935 4051 1935 4051 1936 4053 1938 4053 1939 4054 1940 4055 1940 4054 1940 4054 1941 4053 1941 4053 1941 4053 1941 4052 1941 4052 1942 4053 1942 4053 1943 4054 1945 4054 1945 4054 1946 4054 1946 4056 1947 4056 1947 4058 1947 4058 1946 4058 1946 4059 1945 4059 1945 4063 1945 4063 1945 4068 1947 4070 1947 4071 1948 4071 1949 4071 1949 4070 1950 4070 1950 4070 1950 4070 1951 4070 1952 4070 1954 4070 1955 4071 1955 4071 1955 4072 1955 4071 1957 4071 1958 4072 1958 4072 1959 4073 1959 4072 1961 4072 1961 4071 1961 4072 1962 4072 1962 4072 1963 4074 1963 4074 1963 4076 1965 4074 1966 4074 1967 4072 1968 4072 1968" />
+<path id="tc" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1727 2214 1727 2214 1727 2214 1725 2213 1724 2212 1725 2212 1725 2212 1725 2212 1726 2212 1726 2212 1726 2212 1727 2214 1727 2214 M 1730 2215 1730 2215 1730 2215 1730 2214 1729 2214 1729 2214 1728 2215 1728 2215 1728 2215 1728 2214 1727 2214 1727 2213 1730 2214 1730 2214 1730 2214 1730 2214 1731 2215 1731 2215 1731 2215 1731 2215 1730 2215" />
+<path id="ki" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 130 2710 130 2710 130 2709 130 2709 130 2709 130 2710 130 2710" />
+<path id="to" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 97 2859 97 2859 97 2860 97 2860 97 2860 96 2861 95 2861 95 2861 95 2860 95 2860 95 2860 95 2860 95 2860 96 2860 96 2859 96 2859 96 2859 96 2859 97 2859 M 78 2902 77 2902 75 2901 75 2901 74 2900 74 2900 74 2900 74 2900 74 2899 74 2899 75 2899 75 2899 75 2900 77 2901 78 2901 78 2900 78 2900 78 2900 78 2900 78 2900 79 2900 79 2900 79 2900 79 2900 78 2902 78 2902 78 2902" />
+<path id="tg" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2901 2442 2901 2442 2901 2444 2901 2444 2901 2445 2901 2451 2900 2451 2900 2452 2900 2452 2901 2452 2901 2454 2900 2455 2900 2456 2901 2457 2901 2458 2901 2458 2902 2457 2902 2458 2903 2459 2903 2460 2904 2462 2904 2462 2903 2462 2902 2463 2901 2463 2901 2463 2901 2463 2900 2463 2898 2464 2898 2464 2897 2464 2896 2464 2894 2465 2894 2465 2894 2464 2893 2464 2893 2464 2892 2463 2891 2461 2889 2461 2888 2460 2887 2460 2887 2459 2887 2458 2887 2458 2887 2458 2887 2457 2886 2457 2886 2457 2885 2456 2885 2456 2885 2455 2885 2455 2884 2454 2883 2452 2884 2451 2885 2450 2885 2447 2885 2446 2885 2445 2885 2444 2885 2445 2884 2445 2884 2444 2883 2443 2883 2442 2883 2442 2883 2441 2884 2439 2885 2436 2885 2433 2885 2431 2885 2431 2886 2431 2886 2430 2887 2430 2887 2430 2886 2429 2885 2427 2885 2427 2884 2426 2883 2425 2882 2424 2881 2423 2881 2423 2883 2422 2883 2421 2883 2421 2883 2421 2883 2420 2882 2418 2882 2418 2883 2416 2883 2416 2883 2415 2884 2413 2884 2412 2883 2411 2882 2411 2882 2411 2881 2411 2880 2412 2880 2412 2879 2412 2879 2412 2878 2411 2879 2410 2879 2408 2880 2407 2881 2402 2881 2402 2881 2402 2881 2401 2881 2401 2881 2401 2881 2400 2881 2399 2880 2397 2880 2396 2879 2396 2877 2394 2876 2393 2875 2393 2874 2393 2874 2392 2874 2392 2874 2392 2874 2390 2875 2389 2876 2387 2876 2386 2876 2386 2875 2385 2874 2385 2874 2385 2873 2385 2873 2385 2873 2385 2873 2385 2874 2385 2876 2385 2878 2386 2878 2386 2882 2386 2883 2387 2883 2387 2883 2388 2885 2387 2886 2387 2887 2387 2888 2387 2890 2387 2889 2388 2889 2389 2889 2390 2888 2391 2888 2391 2888 2392 2888 2392 2888 2393 2888 2393 2888 2394 2888 2394 2888 2394 2887 2397 2891 2399 2892 2400 2894 2401 2894 2401 2896 2402 2897 2403 2897 2404 2897 2409 2897 2409 2896 2410 2897 2411 2897 2411 2897 2411 2897 2412 2897 2413 2897 2413 2898 2414 2898 2414 2898 2414 2899 2415 2899 2415 2900 2416 2900 2416 2901 2417 2901 2418 2901 2421 2901 2423 2901 2425 2901 2428 2901 2429 2901 2429 2901 2435 2901 2439 2901 2441 2901 2442 2901 2442" />
+<path id="st" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2993 2538 2992 2538 2992 2537 2992 2537 2993 2536 2993 2535 2994 2535 2994 2536 2994 2536 2994 2538 2993 2538 M 2979 2562 2979 2562 2979 2562 2978 2559 2978 2558 2979 2558 2979 2557 2981 2556 2981 2556 2982 2556 2982 2556 2983 2557 2983 2558 2983 2559 2983 2559 2983 2559 2981 2561 2980 2562 2979 2562" />
+<path id="tn" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2995 2018 2995 2018 2995 2018 2997 2016 2997 2016 2998 2016 2998 2016 2998 2016 2999 2016 2999 2015 3000 2014 3000 2013 3000 2013 3001 2012 3003 2011 3004 2011 3004 2011 3005 2011 3007 2009 3007 2009 3006 2008 3007 2008 3007 2008 3007 2008 3007 2007 3007 2006 3007 2004 3008 2002 3009 2000 3008 1999 3008 1998 3008 1998 3008 1998 3008 1997 3008 1997 3008 1996 3008 1994 3008 1994 3008 1993 3008 1993 3008 1992 3008 1992 3007 1992 3007 1991 3007 1990 3007 1990 3007 1989 3007 1988 3007 1988 3007 1988 3008 1986 3008 1984 3008 1983 3009 1982 3009 1982 3009 1981 3009 1980 3007 1980 3007 1980 3006 1980 3006 1980 3006 1979 3006 1979 3006 1979 3007 1978 3008 1978 3010 1977 3010 1976 3010 1976 3013 1974 3013 1973 3013 1972 3013 1972 3015 1972 3016 1972 3016 1972 3017 1971 3017 1971 3017 1971 3018 1971 3018 1970 3018 1970 3019 1970 3019 1969 3020 1969 3020 1969 3021 1969 3024 1968 3028 1967 3029 1966 3031 1966 3032 1966 3033 1967 3032 1967 3032 1968 3031 1968 3031 1969 3032 1969 3032 1969 3032 1969 3033 1969 3033 1969 3034 1968 3032 1968 3034 1968 3035 1967 3038 1968 3039 1969 3038 1969 3037 1969 3037 1969 3038 1969 3038 1969 3037 1971 3037 1971 3038 1972 3040 1973 3040 1973 3039 1974 3039 1974 3038 1974 3038 1975 3038 1975 3039 1975 3039 1975 3040 1976 3040 1976 3041 1976 3041 1976 3041 1976 3042 1976 3042 1976 3042 1975 3043 1975 3043 1974 3044 1974 3044 1973 3045 1974 3045 1973 3046 1973 3046 1973 3048 1972 3049 1972 3049 1971 3051 1970 3052 1971 3052 1973 3051 1975 3050 1975 3050 1976 3049 1977 3049 1978 3048 1979 3048 1979 3048 1980 3047 1980 3047 1980 3045 1981 3044 1981 3043 1981 3043 1982 3043 1982 3043 1982 3043 1982 3042 1983 3042 1983 3042 1985 3042 1986 3042 1987 3043 1988 3044 1990 3045 1990 3046 1991 3046 1991 3047 1991 3048 1992 3048 1992 3049 1993 3049 1993 3050 1993 3050 1993 3051 1993 3051 1993 3051 1994 3051 1995 3051 1997 3051 1998 3052 1999 3052 1999 3052 1999 3053 2000 3052 2001 3051 2001 3051 2001 3051 2002 3051 2002 3049 2005 3048 2007 3046 2009 3046 2009 3046 2009 3045 2009 3045 2009 3044 2011 3043 2011 3042 2012 3041 2012 3041 2012 3040 2013 3037 2014 3037 2014 3035 2016 3035 2016 3035 2017 3035 2017 3035 2018 3035 2018 3035 2019 3035 2019 3036 2020 3036 2020 3036 2021 3037 2022 3039 2023 3040 2024 3040 2024 3040 2024 3041 2025 3042 2025 3042 2025 3043 2025 3044 2025 3045 2024 3045 2024 3046 2024 3046 2024 3046 2025 3046 2026 3046 2026 3045 2027 3046 2028 3047 2028 3049 2027 3050 2026 3049 2026 3049 2026 3050 2025 3050 2025 3051 2025 3052 2026 3052 2026 3052 2026 3052 2027 3053 2027 3053 2028 3052 2028 3052 2029 3053 2031 3053 2032 3056 2032 3057 2033 3058 2032 3058 2032 3059 2033 3059 2033 3059 2033 3059 2034 3059 2034 3059 2035 3058 2036 3058 2038 3058 2041 3058 2041 3059 2042 3059 2042 3059 2042 3060 2043 3060 2043 3060 2044 3060 2044 3059 2045 3059 2045 3058 2045 3057 2046 3056 2046 3054 2047 3053 2047 3051 2048 3049 2049 3048 2050 3048 2051 3048 2051 3046 2052 3045 2054 3043 2055 3043 2056 3042 2056 3042 2056 3041 2056 3041 2056 3040 2056 3040 2056 3039 2056 3037 2059 3037 2061 3037 2062 3038 2064 3039 2066 3039 2069 3039 2069 3038 2071 3038 2072 3036 2074 3034 2076 3033 2078 3033 2078 3032 2078 3030 2078 3029 2079 3027 2080 3027 2079 3027 2078 3026 2075 3026 2073 3025 2070 3024 2067 3024 2065 3022 2059 3022 2057 3020 2053 3020 2051 3020 2050 3019 2049 3017 2048 3014 2046 3012 2045 3009 2044 3008 2043 3008 2043 3008 2042 3008 2040 3008 2040 3008 2039 3008 2038 3007 2037 3005 2035 3004 2034 3004 2034 3003 2034 2999 2032 2999 2032 2998 2031 2998 2031 2998 2030 2998 2029 2998 2029 2998 2029 2998 2027 2996 2025 2995 2022 2995 2021 2995 2021 2995 2020 2995 2020 2995 2019 2995 2018 M 3053 2009 3053 2009 3053 2008 3053 2008 3054 2006 3055 2006 3055 2006 3056 2007 3055 2008 3055 2008 3054 2008 3054 2008 3054 2008 3053 2009 3053 2009 M 3049 2025 3048 2024 3048 2024 3048 2024 3048 2024 3048 2024 3048 2024 3047 2024 3047 2024 3047 2024 3047 2024 3047 2024 3046 2024 3046 2024 3046 2024 3046 2023 3046 2021 3046 2021 3047 2021 3047 2021 3049 2021 3050 2022 3051 2022 3052 2023 3052 2023 3051 2023 3051 2023 3051 2023 3050 2024 3049 2025 3049 2025 3049 2025" />
+<path id="tr" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3302 1913 3301 1913 3301 1913 3300 1913 3300 1914 3297 1914 3296 1914 3295 1914 3295 1914 3293 1914 3292 1914 3291 1914 3291 1913 3291 1912 3291 1912 3292 1912 3292 1912 3293 1911 3294 1910 3294 1909 3295 1909 3296 1908 3296 1907 3295 1906 3295 1904 3296 1904 3297 1903 3300 1902 3300 1902 3300 1902 3300 1901 3300 1899 3299 1898 3299 1898 3297 1897 3296 1896 3296 1896 3296 1896 3296 1895 3296 1895 3297 1894 3298 1894 3299 1894 3299 1894 3299 1894 3299 1893 3299 1893 3300 1892 3305 1892 3306 1892 3307 1890 3307 1890 3310 1890 3311 1890 3311 1890 3312 1891 3312 1891 3313 1892 3313 1892 3313 1892 3315 1893 3316 1893 3316 1892 3318 1892 3320 1892 3320 1892 3321 1892 3322 1892 3322 1892 3323 1893 3323 1893 3322 1893 3322 1894 3322 1894 3323 1897 3324 1898 3324 1898 3325 1899 3326 1899 3326 1900 3326 1900 3327 1900 3328 1900 3330 1901 3335 1903 3336 1903 3337 1904 3339 1904 3339 1904 3340 1904 3340 1904 3339 1905 3339 1905 3339 1906 3339 1906 3339 1907 3337 1908 3335 1908 3332 1908 3332 1908 3332 1908 3332 1907 3331 1906 3331 1906 3331 1907 3331 1907 3331 1908 3331 1908 3330 1907 3329 1907 3329 1907 3328 1907 3326 1906 3326 1906 3325 1906 3324 1906 3324 1907 3323 1907 3322 1907 3322 1908 3321 1908 3320 1908 3320 1908 3319 1908 3319 1907 3318 1907 3317 1908 3314 1908 3314 1908 3314 1909 3313 1909 3313 1910 3311 1912 3309 1914 3308 1914 3307 1914 3306 1915 3304 1915 3302 1916 3301 1916 3301 1917 3300 1918 3300 1918 3299 1919 3297 1920 3296 1921 3295 1922 3294 1923 3293 1923 3294 1921 3294 1920 3295 1920 3295 1919 3294 1919 3294 1918 3294 1918 3297 1917 3299 1916 3300 1916 3300 1915 3301 1915 3301 1915 3303 1915 3303 1915 3303 1914 3303 1913 3303 1913 3302 1913 M 3579 1966 3579 1966 3578 1966 3577 1967 3577 1968 3576 1968 3575 1968 3572 1968 3570 1968 3564 1966 3562 1966 3561 1966 3561 1966 3560 1966 3559 1966 3558 1965 3558 1966 3557 1966 3555 1969 3555 1969 3554 1969 3552 1970 3552 1970 3552 1969 3551 1968 3551 1967 3549 1967 3549 1967 3548 1967 3547 1968 3547 1968 3546 1969 3543 1969 3539 1970 3538 1970 3537 1970 3536 1970 3533 1970 3532 1970 3529 1969 3528 1969 3527 1970 3526 1970 3525 1970 3525 1970 3524 1970 3522 1971 3522 1971 3521 1971 3521 1972 3518 1973 3518 1973 3517 1973 3514 1974 3513 1975 3513 1975 3511 1975 3507 1976 3505 1976 3503 1977 3502 1977 3501 1977 3501 1977 3500 1977 3499 1976 3499 1976 3499 1976 3498 1976 3497 1976 3497 1976 3494 1976 3494 1976 3493 1976 3492 1975 3491 1974 3490 1974 3489 1973 3488 1973 3486 1973 3485 1973 3483 1974 3483 1974 3482 1974 3482 1974 3481 1975 3481 1975 3480 1975 3478 1976 3478 1976 3477 1976 3477 1976 3475 1976 3474 1977 3472 1977 3470 1977 3470 1977 3468 1977 3467 1976 3466 1975 3465 1975 3461 1974 3461 1974 3461 1974 3461 1974 3459 1978 3459 1980 3459 1981 3459 1981 3461 1983 3461 1983 3461 1984 3460 1984 3459 1984 3459 1984 3458 1984 3456 1984 3456 1985 3456 1986 3456 1987 3456 1988 3455 1988 3454 1988 3453 1989 3453 1989 3453 1990 3453 1990 3452 1990 3452 1990 3452 1990 3452 1990 3450 1989 3449 1989 3450 1987 3449 1986 3449 1986 3448 1984 3447 1983 3447 1982 3447 1982 3449 1980 3451 1979 3453 1978 3453 1978 3453 1977 3453 1975 3453 1975 3453 1974 3452 1974 3451 1973 3450 1973 3449 1973 3449 1974 3448 1974 3447 1975 3447 1975 3445 1975 3444 1975 3444 1976 3443 1976 3444 1977 3444 1977 3444 1977 3444 1978 3444 1978 3443 1978 3443 1978 3442 1978 3441 1978 3440 1979 3437 1978 3434 1976 3434 1976 3433 1976 3433 1976 3432 1976 3432 1976 3432 1975 3431 1975 3430 1975 3430 1975 3429 1975 3429 1975 3427 1975 3426 1976 3424 1977 3423 1978 3423 1978 3422 1978 3422 1979 3422 1979 3420 1980 3420 1980 3419 1981 3419 1982 3419 1983 3418 1983 3417 1983 3416 1983 3415 1983 3414 1984 3413 1985 3412 1984 3412 1985 3411 1985 3408 1985 3407 1986 3403 1986 3401 1986 3400 1986 3399 1987 3398 1987 3397 1987 3395 1986 3395 1986 3394 1986 3394 1986 3392 1985 3391 1983 3389 1982 3389 1982 3389 1981 3388 1981 3388 1980 3387 1979 3386 1979 3383 1978 3382 1977 3379 1976 3376 1975 3376 1975 3375 1974 3371 1974 3370 1974 3370 1974 3368 1974 3367 1974 3366 1974 3366 1974 3365 1973 3365 1974 3364 1974 3364 1974 3363 1975 3363 1976 3363 1978 3363 1980 3362 1981 3362 1981 3362 1982 3362 1982 3362 1982 3361 1984 3361 1984 3360 1984 3360 1983 3359 1983 3358 1983 3357 1983 3357 1983 3356 1983 3356 1983 3356 1984 3354 1984 3351 1985 3350 1985 3349 1985 3349 1986 3348 1985 3347 1984 3346 1984 3344 1984 3343 1984 3343 1983 3342 1983 3341 1982 3341 1982 3340 1981 3340 1980 3340 1979 3340 1979 3340 1979 3339 1979 3339 1979 3338 1979 3339 1978 3339 1978 3340 1977 3339 1977 3337 1976 3336 1977 3336 1977 3335 1977 3333 1976 3332 1975 3332 1975 3330 1973 3329 1974 3328 1974 3329 1974 3328 1975 3327 1974 3327 1974 3326 1974 3326 1974 3326 1975 3326 1975 3327 1976 3326 1976 3323 1978 3322 1979 3322 1978 3322 1978 3322 1978 3322 1978 3323 1978 3323 1978 3324 1977 3323 1977 3323 1977 3322 1977 3322 1977 3322 1977 3322 1976 3323 1976 3324 1976 3324 1976 3324 1975 3324 1975 3323 1975 3323 1975 3322 1975 3322 1975 3321 1976 3319 1975 3318 1975 3318 1976 3317 1976 3317 1976 3314 1977 3314 1977 3314 1977 3312 1977 3312 1976 3314 1976 3314 1976 3318 1975 3321 1975 3323 1974 3323 1973 3325 1972 3327 1971 3327 1971 3326 1971 3323 1971 3320 1971 3317 1971 3314 1972 3313 1971 3312 1971 3311 1972 3311 1972 3311 1972 3310 1972 3310 1971 3310 1970 3311 1969 3312 1969 3313 1969 3313 1970 3315 1969 3316 1968 3315 1967 3315 1967 3314 1967 3313 1967 3312 1966 3313 1965 3313 1965 3312 1965 3312 1966 3312 1966 3311 1966 3310 1966 3309 1966 3310 1965 3310 1964 3310 1962 3309 1962 3310 1960 3310 1960 3310 1959 3310 1957 3310 1957 3311 1957 3311 1956 3310 1956 3306 1954 3305 1955 3305 1955 3303 1953 3302 1952 3301 1952 3300 1953 3300 1954 3300 1954 3299 1954 3299 1953 3298 1953 3297 1952 3296 1952 3296 1952 3295 1952 3295 1951 3295 1951 3295 1950 3295 1950 3295 1950 3295 1950 3296 1951 3296 1951 3296 1951 3297 1950 3298 1950 3298 1949 3298 1949 3298 1948 3297 1948 3296 1948 3296 1947 3296 1946 3296 1945 3297 1945 3297 1945 3298 1945 3299 1945 3299 1946 3300 1947 3300 1948 3300 1948 3301 1950 3301 1951 3303 1950 3304 1950 3305 1950 3308 1949 3308 1949 3309 1948 3307 1948 3306 1948 3305 1949 3304 1948 3302 1946 3302 1945 3302 1944 3303 1944 3305 1943 3307 1942 3307 1942 3307 1941 3306 1941 3305 1941 3304 1941 3304 1941 3303 1940 3303 1940 3303 1939 3304 1938 3304 1938 3304 1938 3303 1937 3302 1937 3302 1936 3301 1935 3301 1935 3303 1933 3305 1932 3305 1932 3305 1931 3305 1930 3304 1930 3303 1931 3302 1931 3301 1931 3301 1931 3301 1931 3300 1931 3299 1931 3294 1932 3292 1932 3292 1932 3291 1932 3292 1930 3292 1930 3293 1929 3293 1929 3293 1929 3293 1926 3293 1925 3293 1924 3293 1924 3293 1924 3294 1924 3294 1924 3295 1924 3296 1923 3296 1922 3297 1921 3297 1921 3298 1920 3300 1919 3301 1918 3302 1918 3303 1917 3304 1917 3306 1917 3307 1917 3307 1917 3308 1916 3308 1916 3310 1916 3311 1917 3311 1917 3313 1918 3313 1918 3314 1919 3314 1919 3315 1919 3315 1919 3317 1919 3318 1919 3319 1919 3320 1918 3320 1917 3319 1917 3317 1916 3318 1915 3318 1915 3320 1915 3323 1916 3323 1916 3322 1917 3321 1917 3321 1917 3321 1918 3321 1918 3323 1918 3323 1918 3324 1917 3325 1917 3325 1917 3325 1917 3326 1917 3330 1917 3330 1917 3333 1918 3334 1917 3335 1917 3335 1917 3336 1918 3337 1918 3337 1918 3338 1918 3339 1918 3340 1917 3339 1916 3339 1916 3338 1916 3337 1916 3336 1916 3335 1915 3335 1915 3336 1914 3337 1914 3337 1914 3337 1914 3338 1913 3338 1913 3341 1913 3342 1913 3344 1912 3345 1913 3346 1912 3346 1912 3347 1912 3347 1913 3349 1912 3353 1912 3353 1912 3353 1912 3353 1911 3350 1911 3348 1911 3347 1911 3346 1911 3345 1911 3344 1911 3343 1910 3342 1910 3341 1909 3340 1909 3339 1908 3339 1907 3339 1907 3340 1906 3340 1905 3339 1905 3340 1905 3340 1904 3341 1904 3342 1904 3343 1904 3346 1905 3347 1905 3348 1905 3350 1905 3352 1905 3352 1905 3354 1905 3357 1905 3357 1905 3358 1905 3359 1904 3359 1904 3360 1905 3360 1905 3361 1905 3362 1905 3362 1905 3364 1906 3366 1906 3368 1906 3369 1906 3369 1906 3370 1906 3371 1906 3374 1906 3375 1906 3376 1905 3376 1905 3376 1905 3377 1904 3377 1903 3379 1902 3380 1902 3382 1901 3386 1899 3389 1898 3389 1898 3391 1896 3395 1895 3396 1894 3397 1894 3397 1894 3398 1894 3398 1894 3399 1894 3399 1894 3401 1894 3401 1894 3402 1893 3403 1893 3406 1892 3407 1891 3408 1891 3411 1892 3411 1892 3412 1892 3412 1892 3414 1892 3414 1892 3415 1892 3417 1892 3418 1892 3420 1892 3421 1892 3422 1893 3423 1893 3424 1893 3427 1892 3428 1893 3428 1893 3429 1893 3430 1893 3431 1892 3431 1892 3432 1892 3432 1892 3433 1891 3433 1890 3434 1890 3434 1890 3434 1890 3435 1891 3436 1892 3436 1892 3436 1893 3436 1894 3437 1895 3438 1896 3439 1896 3441 1897 3442 1897 3442 1897 3442 1897 3443 1898 3443 1898 3444 1898 3444 1897 3446 1897 3448 1896 3449 1896 3449 1896 3449 1896 3450 1896 3451 1897 3451 1897 3452 1898 3452 1898 3452 1899 3452 1900 3452 1900 3453 1901 3454 1902 3456 1903 3456 1904 3457 1904 3457 1904 3458 1904 3459 1903 3459 1903 3460 1902 3461 1902 3461 1902 3462 1902 3463 1902 3464 1902 3465 1903 3466 1903 3466 1904 3466 1904 3466 1905 3467 1905 3468 1905 3468 1905 3470 1905 3471 1905 3473 1906 3474 1907 3475 1907 3475 1907 3476 1907 3476 1906 3476 1906 3477 1905 3478 1906 3479 1906 3478 1907 3479 1907 3479 1907 3480 1908 3481 1908 3482 1908 3483 1908 3484 1908 3484 1908 3487 1909 3488 1909 3489 1909 3490 1909 3493 1908 3494 1908 3494 1908 3494 1908 3495 1907 3497 1907 3498 1907 3499 1907 3499 1907 3500 1907 3500 1907 3500 1906 3501 1906 3501 1906 3502 1907 3502 1907 3502 1907 3503 1907 3504 1906 3504 1906 3505 1906 3506 1906 3507 1907 3509 1908 3512 1908 3515 1909 3516 1909 3516 1909 3516 1909 3518 1908 3519 1908 3520 1908 3520 1908 3520 1907 3521 1907 3522 1907 3523 1907 3524 1906 3526 1905 3526 1905 3527 1905 3528 1905 3529 1905 3531 1904 3533 1903 3533 1903 3533 1903 3534 1902 3535 1902 3536 1902 3536 1901 3538 1900 3538 1899 3539 1899 3541 1900 3542 1900 3543 1901 3544 1900 3544 1900 3545 1899 3546 1899 3547 1900 3549 1900 3550 1900 3551 1900 3552 1900 3553 1901 3553 1901 3554 1901 3555 1900 3555 1898 3555 1898 3556 1898 3557 1898 3559 1898 3560 1900 3562 1901 3562 1902 3564 1903 3566 1905 3567 1904 3568 1904 3569 1905 3569 1905 3569 1905 3569 1906 3569 1906 3570 1907 3571 1908 3571 1908 3573 1909 3574 1911 3574 1912 3574 1913 3573 1914 3572 1915 3571 1916 3571 1916 3571 1918 3572 1919 3573 1921 3572 1921 3572 1922 3572 1922 3576 1923 3577 1923 3577 1923 3578 1923 3582 1923 3583 1923 3584 1924 3586 1924 3587 1925 3587 1926 3587 1926 3588 1927 3590 1928 3590 1928 3591 1929 3591 1929 3591 1930 3590 1928 3587 1927 3585 1928 3585 1929 3585 1933 3584 1933 3583 1933 3583 1933 3581 1933 3581 1933 3579 1933 3578 1933 3578 1934 3579 1934 3579 1934 3581 1937 3581 1939 3580 1940 3581 1940 3581 1941 3582 1942 3582 1942 3583 1942 3583 1943 3582 1944 3583 1945 3583 1946 3583 1947 3583 1948 3583 1948 3583 1949 3583 1949 3585 1949 3585 1950 3585 1950 3584 1952 3583 1954 3582 1956 3581 1957 3582 1958 3587 1959 3588 1960 3587 1960 3587 1962 3587 1964 3588 1965 3588 1965 3591 1966 3591 1967 3591 1967 3590 1969 3590 1969 3590 1969 3590 1969 3588 1969 3587 1969 3587 1969 3587 1969 3586 1970 3585 1970 3585 1971 3583 1971 3583 1971 3583 1972 3582 1972 3581 1970 3581 1969 3582 1969 3582 1968 3582 1968 3581 1967 3580 1966 3579 1966 3579 1966 M 3316 1914 3315 1914 3315 1914 3315 1913 3315 1913 3315 1913 3316 1913 3316 1913 3317 1913 3317 1913 3318 1913 3318 1913 3318 1914 3318 1914 3316 1914 3316 1914 3316 1914 M 3286 1922 3285 1922 3285 1921 3285 1921 3286 1921 3287 1920 3289 1920 3290 1921 3290 1922 3290 1922 3287 1922 3286 1922" />
+<path id="ki" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5707 2660 5707 2660 5707 2660 5707 2660 5707 2660 5707 2660 5707 2660 M 5691 2663 5691 2663 5691 2663 5691 2662 5691 2663 5691 2663 M 5729 2682 5729 2682 5729 2682 5729 2682 5729 2682 M 5737 2699 5737 2698 5738 2698 5738 2698 5738 2698 5738 2699 5738 2699 5738 2699 5738 2699 5737 2699" />
+<path id="tw" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4794 2187 4794 2187 4794 2186 4793 2185 4794 2185 4795 2183 4795 2182 4795 2182 4796 2181 4796 2181 4797 2180 4797 2178 4798 2177 4798 2177 4799 2176 4799 2176 4800 2175 4800 2173 4801 2173 4801 2173 4801 2173 4801 2172 4802 2172 4802 2172 4802 2171 4802 2171 4802 2171 4803 2170 4804 2169 4805 2167 4806 2167 4806 2166 4806 2165 4807 2164 4807 2164 4808 2163 4808 2163 4809 2162 4811 2161 4811 2161 4812 2161 4813 2161 4813 2161 4813 2161 4814 2161 4814 2161 4814 2161 4814 2161 4815 2161 4815 2161 4814 2160 4814 2160 4815 2159 4815 2159 4815 2159 4816 2159 4817 2159 4817 2159 4817 2159 4817 2159 4817 2159 4818 2160 4819 2161 4819 2161 4820 2161 4822 2161 4824 2163 4824 2163 4823 2163 4823 2163 4823 2164 4822 2164 4822 2164 4821 2165 4821 2166 4821 2166 4821 2167 4820 2167 4820 2167 4821 2169 4821 2169 4821 2169 4821 2169 4821 2170 4821 2170 4821 2171 4821 2172 4821 2172 4821 2172 4820 2172 4820 2172 4820 2172 4820 2173 4820 2174 4820 2174 4820 2174 4820 2175 4818 2176 4818 2176 4817 2178 4817 2178 4817 2179 4817 2179 4817 2179 4817 2181 4816 2184 4816 2187 4815 2188 4815 2189 4815 2189 4815 2190 4813 2194 4812 2197 4810 2199 4810 2199 4810 2199 4810 2200 4809 2200 4809 2200 4808 2201 4808 2201 4807 2202 4807 2203 4806 2206 4806 2206 4806 2206 4806 2207 4806 2207 4806 2210 4806 2211 4805 2212 4803 2212 4803 2212 4803 2212 4803 2210 4803 2209 4803 2209 4802 2208 4802 2208 4802 2207 4802 2206 4801 2206 4801 2205 4801 2205 4800 2204 4799 2204 4799 2204 4799 2204 4798 2204 4798 2203 4798 2203 4798 2203 4797 2203 4797 2203 4797 2202 4797 2202 4797 2203 4797 2203 4797 2202 4797 2202 4796 2202 4796 2201 4796 2201 4796 2201 4796 2201 4795 2201 4796 2200 4795 2199 4795 2199 4795 2199 4794 2197 4794 2197 4794 2196 4794 2195 4793 2195 4793 2195 4793 2194 4792 2194 4793 2194 4793 2194 4793 2194 4793 2194 4793 2193 4793 2193 4793 2193 4793 2193 4793 2193 4793 2191 4793 2191 4793 2191 4794 2190 4794 2190 4794 2189 4794 2188 4794 2187 4794 2187 M 4764 2172 4765 2172 4765 2172 4766 2171 4766 2171 4767 2171 4767 2172 4767 2172 4766 2173 4764 2173 4764 2173 4764 2172" />
+<path id="tm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3938 1966 3937 1966 3937 1966 3936 1966 3936 1966 3936 1966 3935 1966 3934 1966 3934 1966 3932 1966 3931 1965 3929 1964 3926 1963 3924 1963 3924 1963 3924 1964 3924 1964 3923 1965 3924 1965 3924 1966 3922 1967 3922 1968 3921 1968 3920 1968 3919 1968 3919 1968 3915 1968 3914 1968 3914 1968 3911 1969 3910 1969 3910 1970 3910 1970 3910 1971 3910 1971 3910 1971 3910 1972 3910 1973 3910 1973 3909 1974 3909 1975 3908 1975 3908 1976 3907 1976 3907 1977 3907 1977 3907 1978 3907 1978 3907 1979 3907 1980 3907 1980 3907 1981 3907 1981 3907 1982 3906 1983 3905 1983 3905 1983 3904 1984 3903 1984 3900 1985 3899 1986 3897 1987 3896 1987 3895 1987 3894 1988 3894 1988 3892 1988 3892 1988 3891 1988 3891 1988 3891 1988 3890 1989 3890 1989 3887 1990 3886 1990 3886 1990 3886 1990 3885 1990 3885 1990 3883 1990 3883 1990 3884 1991 3884 1993 3883 1993 3883 1993 3883 1995 3883 1995 3883 1996 3883 1997 3882 1997 3882 1997 3881 1997 3880 1997 3880 1997 3879 1998 3879 1998 3877 1999 3875 2000 3874 2000 3874 1999 3873 1999 3873 1999 3872 1999 3872 1999 3871 2000 3871 2000 3871 2001 3870 2001 3870 2000 3870 1999 3868 1998 3867 1998 3867 1997 3866 1997 3866 1996 3865 1996 3865 1996 3862 1997 3862 1997 3859 1996 3859 1996 3858 1996 3857 1995 3856 1995 3856 1995 3855 1993 3854 1993 3854 1994 3853 1993 3853 1993 3853 1992 3853 1990 3853 1989 3853 1989 3853 1988 3853 1986 3853 1986 3853 1985 3853 1985 3852 1983 3852 1981 3852 1978 3852 1977 3852 1977 3850 1977 3848 1977 3846 1977 3844 1977 3844 1977 3841 1977 3839 1977 3839 1977 3836 1974 3836 1973 3835 1973 3835 1972 3835 1972 3834 1971 3834 1971 3830 1970 3829 1969 3826 1968 3825 1968 3824 1966 3824 1966 3823 1965 3823 1965 3823 1964 3823 1964 3823 1963 3822 1963 3822 1963 3822 1963 3821 1963 3821 1963 3819 1962 3819 1962 3818 1961 3817 1961 3816 1961 3814 1961 3813 1961 3812 1961 3812 1961 3809 1961 3809 1961 3808 1961 3805 1961 3805 1960 3805 1960 3805 1959 3804 1959 3797 1957 3795 1957 3794 1957 3793 1957 3791 1956 3791 1956 3791 1954 3791 1954 3789 1951 3789 1951 3788 1951 3788 1951 3788 1951 3788 1952 3786 1952 3784 1952 3783 1952 3783 1952 3782 1952 3782 1951 3782 1951 3781 1951 3779 1951 3778 1951 3777 1951 3777 1951 3776 1952 3776 1952 3775 1952 3775 1953 3775 1953 3775 1953 3775 1954 3773 1954 3772 1954 3771 1954 3771 1954 3770 1954 3769 1954 3767 1954 3767 1954 3766 1954 3766 1954 3765 1954 3765 1954 3764 1954 3762 1954 3761 1954 3760 1954 3760 1954 3760 1955 3759 1955 3757 1956 3756 1956 3756 1956 3755 1957 3754 1957 3754 1958 3753 1959 3752 1959 3752 1959 3751 1959 3751 1960 3750 1960 3750 1961 3750 1962 3750 1962 3750 1963 3750 1964 3748 1964 3748 1964 3747 1964 3747 1964 3746 1964 3746 1965 3745 1965 3744 1965 3744 1965 3743 1966 3741 1966 3736 1966 3736 1964 3735 1963 3735 1963 3735 1961 3735 1959 3734 1958 3734 1957 3734 1957 3734 1955 3734 1955 3735 1954 3735 1954 3735 1952 3735 1952 3735 1950 3735 1949 3735 1949 3735 1948 3735 1948 3735 1948 3735 1947 3735 1947 3735 1946 3735 1945 3735 1945 3736 1943 3737 1941 3737 1941 3735 1939 3734 1939 3734 1939 3733 1939 3732 1938 3731 1936 3731 1934 3730 1934 3729 1934 3728 1934 3728 1934 3727 1934 3726 1934 3725 1934 3725 1934 3724 1934 3724 1935 3724 1936 3724 1937 3724 1937 3724 1936 3723 1934 3723 1933 3725 1930 3725 1930 3726 1929 3726 1929 3726 1929 3726 1930 3725 1930 3725 1931 3725 1931 3726 1931 3727 1931 3727 1931 3728 1931 3729 1931 3729 1931 3729 1932 3730 1932 3731 1932 3733 1931 3732 1930 3730 1929 3729 1929 3728 1929 3728 1927 3729 1925 3730 1925 3730 1925 3731 1924 3728 1924 3728 1924 3727 1924 3727 1924 3726 1925 3723 1924 3721 1924 3720 1924 3720 1924 3720 1925 3721 1926 3721 1926 3722 1927 3722 1927 3722 1928 3722 1928 3722 1927 3720 1926 3720 1925 3719 1924 3718 1924 3718 1923 3717 1923 3717 1920 3717 1919 3717 1916 3717 1916 3718 1915 3718 1914 3719 1914 3719 1913 3719 1913 3719 1912 3719 1912 3719 1911 3720 1909 3720 1907 3720 1907 3720 1906 3721 1907 3722 1909 3722 1909 3723 1910 3723 1911 3724 1911 3725 1911 3727 1911 3728 1911 3728 1912 3729 1912 3729 1912 3730 1912 3730 1911 3730 1911 3730 1910 3731 1909 3732 1910 3732 1910 3732 1911 3732 1911 3733 1913 3733 1914 3735 1914 3738 1913 3739 1913 3739 1913 3739 1912 3741 1912 3741 1912 3741 1913 3742 1913 3743 1913 3744 1912 3743 1912 3742 1912 3741 1910 3742 1909 3743 1909 3745 1910 3745 1911 3745 1911 3746 1911 3747 1910 3749 1910 3749 1909 3750 1908 3749 1906 3746 1904 3745 1903 3745 1903 3744 1903 3744 1903 3743 1903 3743 1903 3742 1902 3739 1900 3738 1899 3738 1899 3738 1898 3738 1897 3738 1896 3737 1895 3737 1894 3736 1894 3736 1892 3736 1891 3736 1891 3735 1890 3734 1890 3734 1890 3732 1889 3732 1889 3729 1890 3726 1890 3726 1891 3725 1890 3725 1890 3724 1890 3723 1890 3721 1892 3721 1892 3719 1895 3719 1897 3720 1896 3720 1897 3720 1898 3720 1900 3719 1900 3719 1901 3719 1901 3719 1902 3719 1904 3719 1904 3720 1905 3720 1906 3720 1907 3719 1906 3719 1906 3719 1905 3719 1904 3718 1903 3718 1902 3717 1901 3717 1901 3716 1900 3715 1900 3714 1899 3715 1899 3715 1898 3715 1897 3715 1897 3713 1896 3713 1896 3713 1895 3718 1891 3720 1890 3721 1890 3722 1889 3727 1888 3727 1888 3728 1888 3729 1887 3730 1887 3731 1887 3732 1887 3732 1887 3734 1887 3736 1886 3736 1886 3736 1886 3737 1886 3738 1886 3738 1886 3740 1886 3741 1886 3741 1887 3741 1887 3743 1887 3747 1889 3749 1890 3750 1891 3752 1893 3753 1893 3753 1894 3753 1895 3753 1895 3754 1895 3754 1896 3755 1897 3756 1898 3757 1899 3757 1899 3757 1900 3757 1900 3758 1901 3759 1901 3759 1901 3760 1901 3760 1902 3760 1902 3760 1903 3761 1903 3762 1903 3764 1903 3766 1903 3767 1903 3767 1903 3768 1902 3768 1902 3769 1902 3770 1902 3773 1903 3775 1903 3778 1903 3778 1903 3778 1903 3780 1903 3780 1903 3781 1903 3781 1903 3782 1903 3783 1903 3784 1903 3784 1903 3785 1903 3786 1903 3786 1903 3788 1902 3787 1901 3787 1901 3786 1901 3786 1900 3785 1897 3785 1894 3785 1893 3785 1893 3786 1893 3786 1893 3787 1893 3787 1893 3788 1892 3788 1892 3788 1891 3789 1891 3789 1890 3790 1890 3790 1890 3791 1889 3791 1889 3791 1889 3792 1889 3793 1889 3793 1889 3793 1889 3794 1889 3795 1889 3795 1889 3796 1889 3799 1889 3799 1888 3800 1887 3801 1886 3801 1886 3801 1885 3800 1885 3802 1884 3802 1884 3803 1884 3803 1884 3805 1884 3806 1884 3807 1885 3807 1885 3808 1885 3808 1886 3808 1887 3808 1887 3809 1887 3807 1883 3806 1883 3806 1883 3805 1883 3805 1882 3805 1882 3804 1882 3804 1881 3806 1881 3806 1881 3807 1881 3807 1881 3808 1881 3809 1881 3810 1881 3810 1881 3811 1881 3811 1881 3811 1880 3811 1880 3811 1879 3811 1879 3813 1880 3814 1881 3814 1881 3815 1882 3817 1883 3817 1883 3818 1883 3818 1883 3818 1883 3819 1883 3820 1883 3821 1884 3821 1884 3822 1885 3822 1885 3821 1885 3822 1886 3822 1886 3824 1887 3825 1887 3825 1887 3826 1887 3826 1887 3827 1887 3829 1887 3831 1887 3832 1887 3834 1888 3834 1889 3834 1891 3836 1893 3836 1893 3836 1894 3836 1894 3837 1894 3838 1895 3837 1895 3837 1895 3836 1895 3836 1895 3835 1895 3835 1895 3834 1896 3835 1896 3836 1897 3836 1898 3836 1898 3836 1898 3835 1899 3835 1899 3835 1901 3835 1901 3836 1902 3836 1902 3836 1902 3837 1902 3838 1902 3839 1903 3839 1903 3839 1903 3840 1903 3840 1904 3841 1904 3841 1904 3842 1904 3843 1904 3844 1904 3844 1904 3845 1904 3846 1904 3848 1904 3849 1904 3849 1904 3849 1904 3850 1904 3851 1904 3852 1904 3852 1904 3853 1905 3854 1905 3855 1905 3855 1905 3855 1904 3856 1903 3856 1903 3856 1903 3859 1903 3859 1903 3861 1904 3863 1906 3864 1906 3864 1907 3865 1908 3865 1908 3865 1909 3865 1909 3865 1910 3865 1910 3866 1912 3867 1914 3868 1915 3868 1916 3868 1916 3869 1916 3869 1916 3871 1917 3871 1917 3872 1919 3872 1920 3872 1922 3872 1922 3872 1922 3872 1923 3874 1925 3875 1925 3877 1926 3878 1927 3878 1927 3879 1928 3880 1928 3881 1928 3881 1929 3882 1929 3883 1930 3883 1930 3884 1931 3886 1931 3887 1932 3889 1933 3890 1933 3890 1934 3891 1934 3892 1935 3892 1935 3892 1936 3893 1936 3894 1937 3896 1938 3897 1938 3898 1939 3899 1940 3899 1940 3900 1940 3901 1940 3901 1940 3901 1940 3902 1940 3903 1940 3903 1940 3903 1940 3903 1940 3904 1941 3904 1941 3904 1941 3905 1942 3907 1943 3908 1944 3909 1944 3910 1945 3911 1945 3912 1945 3912 1945 3913 1945 3913 1946 3915 1947 3915 1947 3916 1947 3916 1948 3917 1949 3918 1949 3918 1949 3922 1951 3923 1952 3923 1952 3924 1952 3924 1952 3925 1952 3925 1952 3926 1952 3926 1951 3927 1951 3927 1951 3930 1952 3930 1952 3933 1953 3934 1954 3934 1954 3934 1954 3936 1955 3936 1955 3937 1955 3937 1955 3938 1955 3938 1955 3939 1955 3939 1955 3940 1956 3940 1956 3940 1956 3940 1957 3939 1957 3939 1957 3938 1958 3938 1959 3937 1963 3937 1965 3938 1966" />
+<path id="tz" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3490 2745 3489 2745 3488 2744 3488 2744 3487 2744 3485 2743 3483 2742 3482 2742 3481 2743 3481 2743 3480 2743 3480 2744 3479 2745 3479 2746 3479 2746 3479 2747 3479 2747 3477 2748 3476 2748 3474 2750 3472 2750 3470 2749 3469 2749 3468 2749 3466 2748 3463 2747 3463 2748 3462 2748 3462 2749 3462 2749 3461 2750 3459 2750 3458 2750 3456 2749 3455 2749 3455 2749 3454 2750 3453 2749 3453 2749 3453 2748 3453 2748 3449 2745 3447 2745 3446 2746 3445 2747 3444 2748 3443 2748 3441 2748 3438 2747 3434 2747 3433 2747 3433 2746 3433 2746 3432 2744 3432 2744 3431 2743 3429 2741 3428 2740 3428 2740 3428 2739 3428 2738 3428 2737 3428 2737 3428 2736 3429 2734 3429 2734 3429 2733 3428 2733 3428 2732 3427 2731 3427 2731 3427 2731 3427 2730 3427 2729 3427 2728 3427 2728 3427 2723 3426 2722 3426 2722 3426 2721 3425 2720 3424 2719 3423 2718 3421 2716 3421 2716 3420 2715 3419 2714 3419 2714 3418 2714 3417 2715 3417 2715 3417 2715 3417 2716 3417 2716 3417 2717 3417 2718 3416 2717 3416 2717 3414 2716 3411 2716 3411 2716 3411 2716 3410 2716 3409 2716 3409 2715 3408 2715 3407 2714 3406 2714 3405 2714 3404 2714 3403 2713 3402 2713 3402 2712 3402 2712 3401 2713 3401 2713 3401 2712 3400 2712 3400 2712 3398 2712 3397 2711 3396 2711 3395 2710 3394 2710 3394 2709 3393 2708 3392 2708 3391 2708 3390 2708 3390 2708 3389 2708 3389 2707 3388 2707 3387 2707 3387 2707 3387 2707 3386 2707 3386 2707 3385 2707 3385 2706 3385 2706 3385 2706 3385 2705 3384 2705 3383 2705 3383 2704 3382 2705 3381 2705 3381 2705 3380 2704 3379 2703 3379 2702 3378 2701 3377 2700 3375 2700 3374 2700 3373 2700 3373 2700 3372 2700 3372 2700 3371 2700 3371 2700 3371 2700 3370 2699 3370 2699 3369 2698 3368 2696 3368 2696 3367 2695 3366 2693 3366 2693 3366 2693 3365 2690 3365 2690 3365 2689 3365 2688 3364 2688 3363 2687 3362 2685 3362 2685 3362 2684 3361 2684 3361 2683 3361 2683 3361 2682 3361 2682 3361 2681 3361 2681 3361 2680 3360 2679 3360 2678 3360 2677 3359 2677 3358 2675 3358 2675 3357 2674 3357 2673 3356 2673 3355 2672 3355 2672 3355 2671 3354 2671 3354 2671 3353 2671 3353 2671 3352 2670 3350 2669 3350 2668 3350 2668 3349 2668 3348 2665 3347 2664 3347 2663 3347 2663 3346 2659 3346 2658 3346 2658 3346 2657 3346 2657 3347 2657 3347 2656 3348 2656 3348 2655 3348 2654 3348 2654 3348 2653 3348 2652 3347 2651 3347 2650 3347 2650 3347 2650 3347 2649 3346 2649 3346 2647 3346 2646 3345 2645 3345 2645 3345 2644 3345 2644 3344 2643 3344 2642 3344 2642 3344 2642 3344 2641 3344 2641 3344 2640 3344 2639 3344 2639 3344 2638 3344 2638 3345 2637 3345 2636 3345 2636 3345 2635 3345 2634 3345 2634 3345 2634 3345 2634 3349 2634 3350 2633 3353 2632 3355 2631 3357 2628 3358 2626 3358 2625 3359 2623 3360 2623 3360 2623 3361 2623 3361 2623 3360 2622 3361 2621 3361 2619 3362 2618 3363 2618 3364 2618 3364 2618 3365 2617 3365 2617 3365 2616 3364 2616 3364 2616 3364 2616 3365 2616 3366 2615 3366 2615 3367 2615 3367 2615 3368 2613 3367 2612 3368 2610 3368 2610 3366 2610 3365 2610 3365 2610 3364 2609 3363 2609 3362 2610 3362 2610 3361 2608 3362 2604 3363 2602 3363 2601 3364 2601 3365 2600 3366 2600 3367 2601 3367 2600 3368 2600 3368 2599 3368 2599 3368 2598 3368 2597 3368 2596 3368 2596 3368 2595 3367 2593 3367 2592 3368 2591 3367 2590 3367 2590 3367 2589 3366 2587 3366 2585 3365 2585 3364 2585 3363 2584 3362 2581 3361 2580 3362 2580 3362 2579 3364 2580 3365 2579 3366 2578 3368 2578 3371 2578 3374 2578 3375 2578 3379 2578 3381 2578 3394 2578 3396 2578 3397 2578 3398 2578 3400 2578 3402 2578 3404 2578 3405 2578 3407 2578 3409 2578 3409 2578 3409 2578 3417 2578 3417 2579 3417 2578 3418 2578 3419 2579 3425 2582 3426 2583 3430 2585 3438 2590 3445 2593 3448 2595 3451 2597 3452 2598 3455 2599 3461 2602 3469 2607 3470 2607 3470 2608 3473 2609 3474 2609 3474 2610 3476 2610 3477 2611 3477 2613 3477 2615 3477 2615 3477 2615 3476 2617 3476 2617 3476 2618 3476 2619 3477 2619 3478 2619 3478 2619 3478 2620 3478 2620 3478 2621 3480 2622 3489 2628 3490 2629 3492 2630 3493 2632 3499 2635 3500 2637 3501 2637 3501 2637 3501 2638 3501 2640 3501 2641 3501 2641 3500 2641 3501 2640 3500 2641 3500 2641 3500 2642 3500 2643 3499 2646 3499 2647 3498 2650 3497 2651 3497 2652 3496 2655 3495 2658 3494 2658 3494 2659 3494 2659 3495 2661 3495 2663 3495 2663 3496 2664 3496 2664 3497 2665 3497 2666 3498 2666 3499 2666 3500 2667 3500 2668 3501 2668 3502 2670 3503 2671 3503 2672 3504 2672 3505 2672 3506 2673 3506 2673 3506 2673 3506 2674 3507 2674 3507 2676 3506 2677 3505 2678 3504 2679 3504 2679 3503 2682 3503 2682 3502 2684 3502 2684 3502 2684 3503 2686 3503 2686 3503 2686 3505 2687 3505 2690 3503 2695 3503 2695 3503 2695 3503 2695 3503 2697 3503 2699 3504 2701 3504 2702 3505 2703 3506 2705 3505 2704 3504 2704 3504 2705 3505 2705 3508 2709 3508 2709 3508 2712 3509 2715 3510 2717 3510 2718 3510 2718 3510 2719 3511 2720 3511 2720 3511 2721 3511 2722 3512 2723 3513 2723 3513 2724 3514 2725 3513 2725 3514 2726 3514 2725 3514 2724 3515 2724 3515 2725 3516 2725 3516 2725 3516 2726 3518 2727 3518 2727 3517 2726 3518 2726 3520 2728 3521 2729 3521 2730 3521 2730 3520 2731 3519 2731 3516 2733 3514 2735 3513 2735 3513 2735 3512 2736 3512 2736 3511 2736 3511 2736 3511 2737 3510 2737 3509 2737 3509 2737 3506 2738 3506 2738 3504 2739 3503 2740 3503 2741 3502 2741 3502 2741 3501 2741 3501 2741 3500 2740 3497 2741 3496 2741 3493 2743 3492 2743 3492 2743 3491 2744 3490 2744 3490 2745 M 3510 2645 3510 2645 3509 2645 3509 2643 3509 2643 3509 2641 3509 2641 3509 2641 3512 2641 3512 2641 3512 2642 3512 2642 3512 2643 3511 2643 3511 2644 3511 2645 3512 2645 3512 2646 3512 2646 3512 2646 3511 2649 3511 2649 3510 2650 3508 2649 3508 2649 3508 2649 3508 2648 3508 2648 3509 2647 3509 2646 3510 2646 3510 2645 3510 2645 3510 2645 M 3504 2659 3505 2659 3505 2660 3505 2660 3505 2660 3505 2661 3505 2662 3506 2662 3506 2661 3506 2661 3506 2661 3506 2660 3506 2660 3506 2661 3507 2664 3507 2665 3507 2665 3507 2665 3507 2665 3507 2666 3506 2666 3506 2666 3506 2666 3506 2666 3505 2666 3505 2665 3505 2665 3504 2663 3503 2662 3503 2662 3502 2663 3503 2663 3502 2663 3502 2663 3501 2662 3501 2662 3501 2661 3501 2661 3501 2661 3501 2660 3501 2660 3501 2659 3501 2659 3501 2659 3501 2659 3501 2659 3501 2658 3501 2658 3501 2657 3501 2657 3502 2656 3503 2654 3503 2654 3503 2654 3503 2655 3504 2655 3504 2656 3504 2656 3504 2657 3504 2657 3504 2658 3504 2658 3504 2659 3504 2659 M 3508 2690 3508 2690 3508 2690 3507 2689 3508 2689 3508 2689 3511 2687 3511 2686 3512 2686 3512 2685 3512 2685 3512 2685 3512 2685 3512 2685 3512 2685 3512 2686 3512 2686 3511 2688 3511 2689 3511 2689 3510 2690 3509 2690 3509 2690 3508 2690" />
+<path id="ug" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3400 2578 3398 2578 3397 2578 3396 2578 3394 2578 3381 2578 3379 2578 3375 2578 3374 2578 3371 2578 3368 2578 3366 2578 3365 2579 3364 2580 3362 2579 3362 2579 3361 2579 3360 2579 3359 2581 3359 2581 3359 2582 3358 2583 3357 2584 3356 2584 3354 2586 3353 2586 3353 2586 3353 2586 3352 2585 3352 2585 3352 2584 3352 2584 3352 2584 3350 2584 3349 2584 3349 2585 3348 2585 3348 2585 3348 2585 3348 2584 3348 2582 3347 2581 3347 2577 3348 2577 3348 2577 3348 2575 3348 2574 3348 2573 3349 2572 3349 2570 3349 2570 3349 2567 3349 2566 3350 2564 3350 2563 3350 2562 3350 2561 3350 2561 3351 2560 3351 2560 3352 2558 3352 2557 3353 2556 3354 2555 3353 2554 3353 2553 3353 2550 3353 2549 3354 2549 3354 2549 3354 2549 3354 2549 3355 2549 3356 2548 3356 2548 3357 2548 3358 2547 3358 2546 3358 2545 3358 2544 3359 2544 3360 2543 3361 2543 3361 2543 3362 2543 3363 2541 3365 2539 3365 2539 3368 2537 3371 2534 3373 2531 3375 2529 3375 2528 3373 2527 3371 2525 3370 2524 3370 2524 3370 2524 3369 2524 3369 2525 3369 2525 3368 2525 3366 2523 3366 2523 3366 2521 3367 2520 3367 2519 3368 2518 3368 2517 3368 2516 3368 2515 3367 2514 3367 2514 3366 2514 3367 2513 3367 2511 3368 2510 3368 2509 3369 2508 3369 2506 3369 2506 3368 2507 3368 2506 3368 2506 3369 2504 3370 2503 3373 2502 3373 2502 3375 2502 3376 2503 3377 2503 3379 2504 3381 2503 3382 2502 3383 2502 3383 2502 3384 2502 3385 2504 3385 2505 3385 2505 3387 2505 3387 2505 3387 2506 3388 2506 3388 2506 3388 2506 3389 2506 3389 2505 3389 2505 3393 2503 3394 2503 3396 2503 3397 2503 3398 2503 3399 2502 3400 2502 3400 2502 3401 2501 3402 2501 3402 2500 3404 2502 3405 2502 3406 2502 3408 2502 3410 2503 3410 2502 3418 2495 3418 2495 3419 2496 3419 2496 3419 2497 3420 2499 3421 2501 3422 2502 3424 2503 3424 2503 3425 2504 3425 2505 3425 2506 3425 2507 3424 2507 3425 2508 3425 2511 3426 2512 3427 2513 3427 2513 3427 2513 3427 2514 3428 2516 3429 2517 3429 2517 3429 2517 3430 2517 3431 2518 3431 2519 3431 2520 3432 2521 3433 2522 3432 2524 3432 2525 3432 2525 3433 2526 3433 2527 3434 2529 3434 2532 3434 2536 3433 2537 3433 2537 3433 2538 3432 2538 3432 2538 3432 2538 3432 2539 3432 2540 3431 2540 3431 2540 3431 2541 3431 2541 3431 2542 3431 2542 3431 2543 3431 2543 3430 2543 3430 2543 3429 2543 3428 2544 3427 2545 3426 2545 3426 2545 3426 2546 3426 2546 3426 2547 3426 2547 3425 2549 3425 2549 3422 2552 3422 2552 3421 2552 3421 2553 3420 2556 3419 2558 3418 2559 3417 2561 3417 2561 3417 2562 3417 2563 3417 2563 3418 2564 3418 2565 3417 2567 3417 2570 3417 2578 3417 2579 3417 2578 3409 2578 3409 2578 3409 2578 3407 2578 3405 2578 3404 2578 3402 2578 3400 2578" />
+<path id="gb" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2862 1593 2860 1593 2860 1593 2860 1593 2860 1591 2861 1591 2862 1591 2863 1591 2863 1591 2863 1591 2862 1593 2862 1593 M 2857 1596 2857 1596 2857 1596 2856 1596 2856 1595 2856 1594 2856 1594 2857 1593 2857 1593 2858 1592 2858 1592 2859 1593 2859 1594 2859 1596 2859 1596 2857 1596 M 2856 1601 2857 1601 2857 1602 2857 1602 2856 1602 2856 1602 2856 1603 2856 1604 2855 1606 2855 1607 2854 1606 2853 1606 2853 1606 2854 1604 2854 1604 2855 1603 2855 1602 2855 1602 2854 1601 2854 1600 2852 1600 2853 1600 2853 1600 2853 1601 2853 1601 2852 1602 2851 1601 2851 1601 2851 1601 2850 1601 2849 1601 2849 1601 2848 1600 2848 1600 2848 1600 2848 1599 2849 1599 2849 1599 2850 1599 2851 1599 2852 1599 2852 1599 2854 1599 2854 1598 2852 1597 2851 1597 2850 1597 2849 1597 2850 1596 2850 1596 2852 1594 2854 1594 2854 1594 2854 1596 2854 1597 2856 1597 2858 1597 2858 1598 2857 1600 2856 1600 2856 1600 2856 1600 2856 1600 2856 1601 M 2832 1617 2832 1617 2832 1617 2832 1617 2834 1615 2834 1615 2835 1615 2837 1615 2837 1615 2837 1616 2835 1616 2834 1616 2833 1616 2832 1617 2832 1617 M 2830 1622 2829 1622 2828 1621 2827 1621 2826 1621 2825 1621 2825 1621 2824 1622 2824 1622 2822 1621 2822 1621 2822 1621 2821 1620 2821 1620 2821 1618 2822 1618 2823 1618 2823 1618 2824 1618 2824 1618 2826 1618 2827 1619 2827 1619 2828 1620 2829 1621 2830 1621 2831 1621 2830 1622 M 2823 1624 2822 1624 2820 1622 2820 1622 2821 1621 2822 1621 2822 1621 2823 1622 2824 1622 2825 1623 2825 1624 2825 1624 2824 1624 2823 1624 M 2828 1624 2828 1624 2828 1624 2828 1624 2827 1624 2827 1623 2827 1623 2827 1623 2828 1623 2829 1623 2829 1623 2829 1623 2828 1624 2828 1624 M 2895 1746 2895 1746 2894 1746 2893 1747 2892 1747 2892 1747 2891 1747 2891 1748 2891 1748 2891 1748 2891 1748 2890 1748 2890 1749 2891 1749 2889 1749 2888 1749 2888 1749 2887 1749 2886 1749 2886 1750 2886 1750 2886 1750 2884 1750 2883 1751 2882 1751 2882 1751 2881 1751 2881 1751 2881 1751 2880 1751 2880 1752 2880 1752 2879 1752 2879 1752 2879 1752 2879 1752 2879 1752 2878 1752 2877 1752 2877 1752 2876 1751 2873 1751 2873 1751 2872 1751 2872 1751 2872 1751 2871 1751 2866 1751 2865 1751 2864 1751 2864 1752 2863 1752 2863 1752 2863 1752 2863 1752 2862 1752 2860 1752 2861 1751 2861 1751 2861 1751 2860 1750 2860 1750 2858 1750 2856 1750 2857 1751 2857 1751 2857 1751 2857 1751 2854 1751 2853 1752 2850 1752 2849 1752 2848 1752 2848 1752 2848 1752 2846 1752 2844 1753 2843 1752 2843 1752 2842 1752 2842 1752 2842 1753 2843 1753 2844 1753 2844 1754 2844 1754 2842 1755 2841 1754 2841 1754 2841 1754 2840 1754 2837 1754 2836 1754 2836 1754 2836 1754 2836 1755 2836 1755 2836 1755 2836 1755 2836 1755 2836 1755 2835 1754 2834 1754 2832 1753 2832 1753 2832 1753 2831 1753 2830 1752 2829 1752 2829 1752 2829 1752 2828 1752 2828 1752 2828 1753 2827 1753 2826 1753 2824 1753 2823 1753 2823 1753 2821 1754 2820 1754 2820 1754 2819 1755 2819 1755 2818 1757 2818 1757 2817 1760 2816 1760 2816 1761 2816 1761 2815 1761 2814 1760 2814 1760 2814 1760 2814 1760 2814 1760 2813 1760 2813 1759 2812 1759 2812 1759 2811 1759 2811 1759 2811 1759 2811 1759 2811 1759 2810 1759 2809 1759 2808 1758 2808 1758 2805 1758 2804 1758 2804 1758 2804 1759 2804 1759 2803 1759 2803 1759 2802 1759 2801 1759 2800 1759 2799 1759 2797 1760 2796 1761 2794 1761 2794 1762 2794 1763 2794 1763 2794 1763 2794 1763 2794 1764 2793 1764 2792 1764 2792 1765 2792 1765 2791 1764 2791 1764 2791 1764 2791 1763 2791 1763 2791 1763 2790 1762 2788 1762 2787 1762 2787 1762 2787 1762 2787 1762 2786 1762 2787 1763 2786 1763 2786 1763 2786 1763 2786 1763 2785 1763 2784 1763 2784 1763 2784 1763 2784 1762 2784 1761 2786 1761 2787 1760 2787 1760 2787 1760 2788 1761 2788 1761 2791 1760 2793 1758 2794 1757 2795 1756 2795 1756 2795 1755 2796 1755 2797 1755 2797 1755 2798 1754 2799 1754 2799 1754 2799 1754 2799 1754 2799 1753 2800 1753 2801 1752 2802 1751 2802 1751 2802 1751 2802 1751 2802 1750 2802 1749 2803 1748 2804 1748 2804 1748 2805 1748 2805 1748 2805 1748 2806 1748 2806 1748 2806 1748 2807 1747 2808 1747 2808 1746 2807 1745 2808 1745 2808 1745 2809 1745 2810 1745 2811 1744 2813 1744 2814 1744 2816 1744 2817 1744 2817 1744 2818 1744 2818 1744 2819 1744 2820 1745 2820 1745 2821 1745 2821 1745 2821 1745 2822 1745 2827 1745 2827 1744 2827 1744 2827 1743 2828 1742 2829 1741 2831 1740 2833 1739 2833 1739 2834 1737 2836 1736 2836 1736 2836 1736 2837 1736 2837 1736 2837 1736 2837 1736 2836 1736 2834 1737 2833 1738 2832 1738 2832 1738 2832 1739 2832 1739 2830 1739 2829 1739 2828 1739 2828 1739 2828 1739 2827 1740 2825 1740 2825 1740 2825 1741 2825 1741 2824 1741 2824 1742 2823 1742 2822 1742 2821 1742 2821 1742 2820 1742 2820 1742 2819 1742 2818 1742 2818 1741 2816 1740 2815 1739 2815 1739 2815 1739 2814 1738 2812 1738 2812 1738 2808 1739 2808 1739 2807 1739 2807 1739 2806 1738 2807 1738 2807 1738 2808 1738 2808 1738 2809 1738 2809 1738 2810 1738 2810 1737 2810 1737 2808 1737 2807 1737 2804 1736 2802 1736 2801 1736 2801 1736 2800 1736 2800 1737 2800 1737 2800 1737 2800 1738 2798 1738 2798 1738 2798 1738 2797 1738 2797 1738 2796 1738 2795 1738 2794 1738 2794 1738 2795 1737 2796 1737 2797 1737 2797 1737 2797 1737 2797 1736 2797 1736 2797 1736 2797 1736 2797 1737 2795 1737 2794 1737 2792 1737 2791 1736 2791 1736 2793 1736 2793 1736 2793 1736 2793 1736 2794 1735 2793 1735 2793 1734 2793 1734 2792 1734 2792 1734 2791 1734 2791 1733 2794 1733 2794 1732 2794 1732 2798 1732 2798 1732 2799 1731 2799 1731 2799 1731 2799 1730 2800 1730 2800 1730 2801 1730 2801 1730 2802 1730 2803 1730 2803 1730 2806 1728 2807 1728 2808 1728 2809 1727 2809 1727 2810 1726 2810 1726 2810 1724 2810 1724 2810 1723 2809 1722 2809 1722 2810 1720 2810 1720 2809 1720 2809 1719 2809 1718 2809 1718 2809 1718 2809 1717 2807 1717 2806 1717 2804 1718 2804 1718 2803 1718 2803 1719 2802 1719 2799 1719 2799 1719 2799 1719 2799 1719 2799 1719 2800 1719 2801 1718 2801 1717 2802 1717 2802 1717 2802 1717 2803 1717 2803 1717 2804 1716 2805 1716 2805 1715 2806 1715 2806 1714 2808 1713 2809 1712 2809 1712 2809 1712 2810 1712 2811 1712 2811 1712 2813 1711 2815 1711 2816 1711 2817 1712 2818 1711 2820 1711 2821 1710 2821 1710 2822 1710 2822 1710 2824 1711 2825 1712 2825 1712 2826 1712 2826 1712 2825 1711 2825 1710 2824 1710 2824 1710 2824 1710 2824 1710 2824 1710 2824 1710 2826 1709 2826 1709 2826 1710 2827 1710 2827 1710 2828 1711 2828 1711 2829 1711 2829 1711 2829 1711 2831 1711 2831 1711 2832 1710 2832 1710 2831 1711 2831 1711 2829 1711 2829 1711 2828 1710 2828 1710 2827 1709 2827 1709 2825 1707 2826 1707 2826 1706 2827 1705 2828 1705 2829 1704 2829 1704 2828 1704 2828 1704 2828 1704 2827 1704 2827 1704 2827 1704 2826 1704 2826 1704 2826 1703 2826 1703 2826 1701 2826 1701 2827 1701 2828 1701 2829 1700 2830 1699 2830 1698 2830 1696 2828 1698 2825 1699 2824 1698 2823 1698 2821 1696 2821 1696 2820 1695 2820 1694 2820 1694 2819 1694 2819 1693 2818 1693 2817 1692 2817 1692 2818 1690 2820 1687 2821 1686 2821 1686 2822 1685 2823 1685 2824 1685 2824 1685 2824 1685 2825 1685 2825 1685 2827 1685 2827 1684 2826 1684 2826 1684 2826 1684 2825 1685 2821 1684 2821 1684 2821 1684 2820 1684 2818 1684 2818 1685 2817 1686 2817 1686 2816 1686 2814 1686 2813 1687 2812 1688 2812 1688 2811 1688 2810 1688 2809 1688 2806 1686 2805 1686 2805 1686 2805 1686 2805 1686 2804 1686 2804 1686 2805 1687 2805 1688 2806 1689 2806 1689 2805 1689 2805 1689 2805 1689 2805 1689 2805 1689 2803 1689 2803 1689 2802 1688 2802 1688 2802 1688 2800 1687 2799 1687 2798 1686 2798 1686 2798 1686 2797 1686 2797 1686 2796 1687 2796 1687 2796 1687 2796 1688 2797 1689 2797 1689 2797 1689 2797 1689 2797 1690 2797 1690 2796 1690 2796 1690 2796 1690 2796 1689 2796 1689 2796 1688 2795 1688 2795 1688 2794 1687 2794 1687 2793 1687 2793 1686 2793 1686 2792 1686 2792 1686 2792 1685 2792 1685 2792 1684 2792 1684 2793 1684 2793 1684 2793 1684 2794 1683 2795 1682 2795 1682 2796 1682 2796 1681 2797 1680 2798 1680 2798 1679 2799 1677 2799 1677 2800 1677 2800 1677 2801 1677 2801 1677 2801 1676 2801 1676 2801 1675 2800 1674 2800 1674 2800 1674 2799 1674 2799 1674 2798 1674 2797 1673 2797 1673 2797 1673 2796 1673 2797 1669 2798 1669 2798 1669 2799 1669 2800 1669 2802 1669 2803 1669 2803 1669 2803 1669 2801 1669 2799 1668 2798 1668 2797 1668 2797 1668 2797 1667 2798 1667 2798 1666 2797 1666 2797 1667 2797 1668 2797 1669 2796 1669 2796 1670 2795 1670 2795 1670 2795 1670 2793 1670 2792 1669 2792 1669 2792 1670 2791 1670 2792 1671 2792 1671 2790 1670 2790 1670 2790 1670 2790 1669 2790 1668 2791 1668 2791 1667 2792 1666 2794 1665 2796 1664 2796 1664 2796 1664 2795 1664 2792 1666 2791 1666 2791 1666 2791 1667 2790 1667 2790 1667 2790 1668 2789 1668 2789 1668 2788 1668 2788 1670 2789 1672 2789 1672 2788 1673 2788 1673 2788 1673 2788 1673 2787 1674 2786 1677 2787 1678 2787 1678 2787 1678 2787 1679 2786 1679 2786 1679 2783 1679 2783 1679 2783 1679 2783 1679 2783 1679 2782 1678 2782 1678 2782 1678 2783 1678 2783 1677 2784 1677 2784 1677 2784 1676 2784 1675 2784 1673 2785 1672 2785 1672 2784 1671 2784 1670 2784 1670 2784 1669 2785 1669 2785 1669 2785 1669 2786 1668 2786 1667 2786 1668 2785 1668 2785 1668 2784 1668 2784 1668 2785 1667 2785 1667 2786 1667 2786 1666 2787 1665 2787 1665 2787 1665 2786 1665 2786 1666 2786 1666 2786 1664 2786 1663 2787 1662 2787 1662 2788 1661 2788 1661 2790 1661 2790 1661 2791 1661 2792 1661 2792 1661 2792 1661 2793 1660 2793 1660 2793 1660 2794 1659 2794 1659 2794 1659 2793 1660 2793 1660 2792 1661 2792 1661 2792 1661 2791 1661 2789 1660 2789 1660 2789 1660 2789 1660 2790 1660 2791 1659 2790 1659 2790 1659 2789 1659 2789 1659 2789 1659 2790 1658 2791 1657 2792 1656 2793 1655 2793 1655 2793 1655 2792 1656 2791 1656 2789 1657 2786 1659 2786 1660 2786 1660 2784 1660 2784 1660 2783 1659 2782 1659 2781 1659 2781 1659 2780 1659 2780 1659 2779 1658 2779 1658 2779 1658 2779 1658 2779 1658 2780 1658 2781 1658 2784 1657 2785 1657 2785 1657 2786 1657 2783 1657 2783 1657 2783 1657 2782 1657 2782 1657 2782 1657 2780 1657 2776 1657 2776 1657 2776 1657 2775 1657 2776 1656 2777 1656 2780 1656 2780 1656 2780 1656 2781 1656 2781 1656 2782 1656 2782 1655 2782 1655 2781 1655 2782 1655 2783 1655 2783 1655 2783 1655 2784 1655 2785 1654 2784 1654 2783 1654 2783 1654 2782 1654 2781 1654 2781 1654 2780 1654 2782 1652 2782 1652 2782 1652 2783 1652 2783 1652 2783 1652 2784 1652 2784 1652 2784 1652 2785 1652 2785 1653 2785 1653 2786 1652 2786 1652 2787 1652 2787 1652 2786 1652 2786 1652 2785 1652 2785 1652 2785 1652 2783 1651 2783 1651 2783 1651 2783 1651 2784 1650 2784 1650 2785 1650 2785 1650 2785 1650 2786 1651 2786 1651 2787 1651 2787 1651 2789 1650 2788 1650 2788 1650 2788 1650 2787 1650 2786 1650 2785 1650 2785 1648 2785 1648 2786 1648 2786 1648 2787 1648 2787 1648 2788 1648 2788 1649 2788 1649 2789 1648 2787 1648 2786 1648 2786 1647 2786 1647 2787 1646 2787 1646 2788 1646 2788 1646 2788 1645 2788 1645 2787 1646 2785 1646 2783 1647 2783 1647 2783 1647 2782 1646 2781 1645 2781 1645 2781 1644 2781 1644 2782 1643 2782 1643 2782 1643 2783 1643 2783 1643 2785 1644 2785 1644 2785 1644 2787 1644 2787 1644 2787 1643 2787 1643 2785 1643 2785 1643 2784 1643 2784 1643 2782 1642 2782 1639 2782 1638 2783 1638 2783 1638 2784 1638 2784 1638 2784 1639 2785 1639 2785 1640 2785 1640 2786 1639 2786 1639 2786 1639 2785 1638 2785 1638 2785 1638 2785 1638 2785 1638 2785 1637 2788 1638 2788 1638 2790 1637 2792 1638 2793 1638 2793 1638 2793 1638 2794 1638 2792 1637 2792 1637 2791 1637 2789 1636 2788 1635 2788 1635 2788 1635 2788 1635 2789 1635 2789 1635 2789 1635 2790 1635 2790 1635 2791 1635 2791 1634 2791 1634 2790 1634 2789 1632 2789 1632 2789 1632 2792 1632 2794 1632 2794 1632 2794 1632 2793 1632 2793 1631 2792 1631 2792 1630 2793 1628 2795 1626 2799 1626 2800 1627 2800 1628 2800 1628 2800 1628 2799 1629 2799 1629 2800 1628 2802 1628 2802 1627 2802 1627 2802 1627 2802 1627 2802 1627 2803 1627 2804 1627 2804 1627 2804 1627 2807 1628 2810 1627 2813 1627 2814 1627 2815 1627 2815 1627 2816 1626 2817 1626 2818 1626 2818 1626 2821 1627 2821 1627 2821 1626 2821 1626 2821 1626 2824 1626 2827 1626 2827 1626 2826 1629 2825 1630 2825 1630 2824 1631 2822 1632 2821 1632 2821 1632 2820 1632 2820 1633 2820 1633 2819 1633 2819 1633 2818 1634 2816 1635 2814 1636 2811 1637 2811 1637 2811 1638 2811 1638 2809 1638 2809 1638 2807 1638 2805 1638 2805 1638 2805 1638 2806 1638 2806 1639 2807 1639 2809 1639 2810 1639 2812 1639 2813 1639 2813 1639 2814 1639 2814 1639 2814 1638 2814 1638 2815 1638 2815 1639 2814 1639 2813 1640 2812 1641 2812 1641 2811 1641 2811 1641 2811 1641 2811 1641 2811 1641 2811 1640 2811 1640 2810 1640 2810 1641 2806 1641 2804 1642 2804 1643 2804 1643 2805 1643 2806 1642 2806 1642 2806 1642 2807 1642 2807 1642 2807 1641 2808 1641 2810 1641 2810 1642 2809 1643 2808 1643 2808 1644 2807 1644 2807 1644 2808 1644 2808 1644 2808 1644 2808 1644 2809 1644 2810 1643 2815 1642 2817 1642 2817 1642 2818 1642 2819 1641 2819 1641 2819 1641 2819 1641 2819 1641 2822 1641 2823 1641 2823 1641 2823 1641 2823 1641 2824 1641 2825 1641 2826 1641 2826 1642 2827 1641 2827 1641 2828 1641 2828 1641 2828 1641 2829 1641 2829 1641 2830 1641 2833 1641 2834 1641 2835 1641 2836 1641 2837 1641 2840 1641 2840 1641 2841 1641 2841 1641 2841 1641 2842 1641 2843 1641 2844 1641 2844 1641 2845 1642 2846 1643 2847 1644 2847 1644 2847 1645 2845 1646 2844 1647 2843 1647 2842 1649 2842 1649 2842 1649 2842 1650 2842 1650 2842 1651 2840 1652 2840 1652 2840 1653 2840 1653 2840 1653 2840 1653 2840 1654 2840 1654 2838 1655 2837 1656 2837 1656 2836 1656 2835 1657 2836 1657 2836 1657 2835 1658 2835 1659 2834 1659 2833 1660 2832 1660 2829 1661 2828 1661 2826 1661 2826 1661 2826 1661 2826 1661 2823 1662 2823 1663 2823 1662 2824 1662 2827 1661 2828 1661 2828 1661 2829 1661 2829 1661 2829 1661 2830 1661 2830 1661 2830 1661 2830 1662 2830 1662 2830 1662 2830 1663 2831 1663 2831 1663 2832 1663 2832 1663 2833 1663 2834 1664 2834 1664 2832 1665 2830 1665 2830 1665 2830 1665 2830 1665 2829 1665 2829 1665 2829 1665 2828 1665 2828 1665 2828 1665 2827 1665 2825 1666 2825 1667 2822 1668 2821 1668 2821 1668 2820 1668 2819 1668 2818 1667 2818 1667 2816 1667 2815 1667 2816 1668 2816 1668 2817 1668 2820 1668 2823 1669 2826 1669 2826 1669 2826 1669 2827 1669 2828 1669 2828 1668 2829 1668 2829 1668 2829 1668 2830 1667 2830 1667 2830 1667 2831 1667 2833 1667 2833 1667 2833 1667 2835 1668 2837 1669 2839 1669 2841 1670 2842 1670 2842 1670 2842 1671 2843 1671 2843 1671 2843 1672 2843 1672 2845 1674 2846 1674 2846 1674 2846 1674 2847 1674 2848 1674 2849 1675 2850 1676 2850 1677 2850 1678 2849 1678 2850 1679 2851 1681 2851 1682 2851 1683 2852 1684 2853 1684 2853 1685 2854 1686 2854 1688 2854 1688 2856 1690 2858 1690 2858 1690 2861 1691 2866 1692 2867 1693 2868 1694 2868 1694 2868 1695 2869 1696 2869 1696 2869 1696 2871 1697 2872 1698 2873 1698 2873 1698 2874 1698 2873 1698 2873 1698 2872 1699 2872 1699 2872 1699 2872 1700 2872 1700 2872 1700 2872 1701 2873 1702 2873 1702 2873 1703 2874 1703 2875 1704 2876 1705 2877 1706 2877 1706 2877 1706 2877 1706 2877 1707 2877 1707 2877 1707 2877 1707 2877 1706 2877 1706 2877 1706 2876 1706 2876 1706 2876 1706 2875 1706 2875 1706 2875 1706 2874 1706 2874 1706 2874 1706 2874 1706 2873 1706 2873 1706 2873 1706 2872 1705 2871 1704 2871 1704 2871 1704 2870 1704 2869 1704 2869 1704 2868 1705 2866 1705 2866 1705 2866 1704 2865 1704 2865 1704 2865 1704 2865 1704 2864 1705 2864 1705 2864 1705 2867 1705 2867 1705 2868 1705 2869 1705 2870 1705 2870 1705 2871 1705 2871 1705 2871 1706 2871 1706 2872 1706 2873 1707 2873 1707 2875 1708 2876 1708 2877 1708 2877 1708 2878 1709 2878 1709 2879 1710 2879 1710 2879 1710 2879 1710 2880 1712 2881 1713 2881 1713 2881 1713 2881 1714 2880 1714 2880 1715 2879 1715 2878 1716 2878 1716 2876 1717 2875 1718 2875 1718 2876 1718 2876 1718 2876 1718 2877 1718 2877 1718 2878 1718 2878 1718 2878 1719 2878 1719 2879 1719 2881 1719 2881 1719 2882 1719 2882 1719 2882 1718 2882 1718 2883 1717 2884 1717 2886 1716 2889 1717 2889 1717 2890 1717 2890 1717 2890 1717 2891 1717 2891 1717 2894 1717 2895 1717 2896 1717 2897 1717 2897 1718 2897 1718 2898 1718 2898 1718 2899 1719 2899 1719 2899 1719 2901 1720 2901 1720 2902 1720 2902 1720 2902 1721 2902 1721 2902 1721 2903 1722 2903 1723 2903 1725 2903 1725 2903 1726 2903 1726 2902 1727 2901 1729 2901 1729 2900 1731 2900 1731 2897 1732 2896 1733 2896 1733 2895 1732 2895 1732 2894 1732 2894 1733 2895 1734 2896 1734 2895 1734 2895 1735 2895 1735 2894 1735 2894 1735 2893 1736 2893 1736 2892 1736 2892 1736 2892 1736 2891 1735 2891 1735 2890 1735 2889 1736 2887 1736 2886 1736 2887 1737 2889 1737 2889 1736 2889 1736 2890 1736 2890 1736 2890 1736 2890 1738 2890 1739 2889 1739 2888 1739 2888 1739 2888 1740 2887 1740 2887 1740 2886 1739 2885 1739 2882 1740 2882 1740 2881 1741 2882 1741 2882 1741 2882 1740 2883 1740 2883 1740 2884 1740 2884 1740 2884 1740 2886 1740 2886 1740 2887 1741 2887 1741 2886 1741 2886 1741 2886 1741 2885 1741 2884 1741 2884 1742 2885 1742 2886 1742 2890 1742 2891 1742 2891 1742 2891 1742 2892 1742 2892 1742 2892 1742 2894 1742 2897 1742 2898 1743 2898 1745 2897 1745 2897 1745 2897 1745 2897 1746 2897 1746 2895 1746 M 2772 1637 2772 1637 2771 1637 2770 1638 2769 1637 2769 1637 2769 1637 2768 1637 2768 1637 2768 1636 2768 1636 2768 1636 2769 1635 2769 1635 2769 1635 2770 1635 2770 1635 2768 1635 2768 1635 2767 1636 2768 1637 2768 1637 2768 1637 2769 1638 2769 1638 2767 1639 2764 1640 2763 1640 2761 1639 2761 1639 2762 1639 2762 1639 2762 1639 2762 1639 2763 1639 2766 1638 2765 1637 2764 1637 2764 1637 2763 1637 2763 1637 2763 1637 2762 1637 2761 1636 2762 1636 2762 1636 2762 1636 2762 1635 2761 1634 2762 1633 2762 1633 2763 1632 2763 1632 2764 1633 2765 1633 2764 1633 2764 1633 2765 1634 2765 1634 2765 1633 2766 1633 2767 1633 2767 1633 2767 1632 2766 1632 2766 1632 2766 1631 2768 1631 2769 1631 2770 1630 2770 1630 2773 1629 2774 1628 2774 1628 2775 1628 2775 1628 2775 1628 2775 1628 2776 1628 2777 1629 2776 1630 2775 1631 2775 1632 2774 1632 2774 1632 2775 1633 2775 1633 2776 1632 2776 1632 2776 1632 2777 1632 2777 1633 2776 1633 2776 1633 2775 1633 2774 1633 2773 1634 2773 1634 2771 1635 2770 1635 2770 1635 2769 1635 2770 1635 2771 1635 2772 1634 2773 1634 2773 1634 2773 1636 2773 1636 2772 1637 2772 1637 M 2759 1644 2758 1644 2758 1644 2758 1643 2758 1643 2757 1643 2756 1643 2756 1643 2755 1643 2755 1643 2755 1642 2756 1642 2756 1642 2759 1642 2759 1641 2760 1641 2762 1642 2761 1644 2761 1644 2759 1644 M 2782 1650 2781 1651 2781 1651 2780 1651 2780 1652 2779 1652 2779 1652 2779 1652 2779 1651 2779 1650 2780 1650 2779 1649 2778 1650 2778 1650 2776 1649 2774 1650 2772 1648 2771 1647 2772 1647 2773 1647 2773 1647 2774 1647 2774 1647 2774 1647 2771 1646 2770 1646 2770 1646 2770 1647 2770 1647 2769 1647 2768 1646 2768 1646 2768 1646 2768 1646 2768 1646 2767 1645 2767 1645 2767 1644 2769 1642 2769 1642 2769 1642 2770 1643 2770 1643 2770 1643 2770 1643 2772 1644 2772 1644 2773 1644 2773 1642 2772 1642 2773 1642 2774 1641 2774 1641 2775 1641 2776 1642 2777 1643 2777 1643 2777 1644 2777 1645 2777 1646 2777 1647 2777 1647 2781 1648 2781 1648 2782 1648 2783 1648 2783 1648 2785 1648 2785 1649 2782 1650 2782 1650 2782 1650 2782 1650 M 2778 1647 2778 1647 2778 1646 2778 1646 2778 1645 2778 1645 2779 1644 2779 1644 2780 1644 2779 1647 2779 1647 2779 1647 2778 1647 M 2759 1646 2758 1646 2757 1645 2757 1645 2757 1645 2757 1645 2758 1644 2758 1644 2759 1644 2759 1644 2760 1645 2760 1645 2759 1646 2759 1646 2759 1646 M 2760 1651 2759 1650 2759 1650 2758 1650 2758 1650 2757 1650 2757 1650 2757 1650 2757 1649 2756 1649 2756 1646 2757 1646 2757 1646 2758 1646 2759 1646 2759 1646 2760 1647 2760 1647 2759 1647 2759 1647 2759 1647 2759 1650 2760 1650 2760 1650 2760 1651 2760 1651 M 2756 1653 2756 1653 2755 1653 2755 1653 2754 1653 2754 1653 2754 1653 2756 1651 2757 1651 2757 1652 2756 1653 2756 1653 M 2774 1653 2774 1653 2773 1653 2772 1652 2773 1652 2773 1651 2773 1651 2774 1651 2774 1651 2775 1651 2775 1652 2775 1652 2775 1652 2775 1653 2775 1653 2775 1653 2774 1653 2774 1653 2774 1653 M 2768 1659 2768 1659 2768 1659 2768 1659 2769 1658 2770 1658 2770 1657 2771 1657 2771 1657 2772 1657 2771 1658 2771 1658 2770 1659 2770 1659 2768 1659 M 2777 1658 2778 1658 2778 1658 2779 1658 2779 1659 2780 1659 2781 1660 2782 1660 2783 1660 2784 1660 2785 1661 2785 1661 2785 1662 2784 1662 2784 1662 2782 1663 2782 1663 2781 1663 2781 1663 2781 1663 2782 1663 2781 1662 2781 1662 2781 1662 2779 1663 2779 1663 2775 1664 2774 1664 2774 1664 2774 1664 2773 1663 2773 1663 2774 1663 2774 1663 2774 1663 2775 1663 2775 1663 2775 1663 2778 1662 2779 1662 2779 1662 2779 1662 2778 1662 2777 1662 2777 1662 2776 1662 2776 1662 2776 1662 2776 1662 2777 1661 2778 1661 2778 1661 2779 1661 2779 1661 2779 1660 2779 1660 2779 1660 2778 1660 2777 1660 2777 1660 2774 1659 2774 1659 2774 1658 2776 1658 2777 1658 2777 1658 M 2765 1661 2764 1661 2764 1661 2763 1660 2764 1660 2764 1660 2767 1659 2767 1659 2768 1660 2767 1660 2767 1660 2767 1660 2767 1660 2766 1660 2765 1661 2765 1661 M 2780 1671 2779 1671 2778 1671 2778 1671 2778 1671 2778 1671 2778 1670 2778 1670 2778 1670 2780 1668 2780 1668 2781 1667 2782 1666 2783 1666 2783 1666 2784 1666 2784 1666 2784 1666 2784 1666 2784 1666 2784 1667 2783 1667 2783 1667 2782 1669 2781 1670 2780 1671 2780 1671 M 2775 1675 2774 1675 2774 1675 2774 1674 2775 1673 2775 1672 2775 1672 2774 1672 2774 1672 2774 1672 2773 1672 2773 1672 2773 1672 2773 1673 2773 1673 2772 1673 2772 1673 2772 1673 2771 1673 2771 1673 2771 1673 2771 1673 2771 1672 2772 1670 2773 1670 2774 1670 2776 1669 2777 1669 2777 1669 2777 1669 2777 1669 2777 1670 2777 1670 2778 1671 2778 1671 2778 1672 2778 1672 2778 1672 2779 1673 2779 1673 2779 1673 2778 1674 2776 1675 2775 1675 M 2795 1673 2795 1672 2793 1672 2792 1670 2792 1670 2792 1669 2793 1669 2794 1670 2795 1671 2795 1672 2795 1672 2795 1672 2795 1672 2795 1673 M 2792 1677 2791 1677 2791 1677 2790 1677 2790 1676 2789 1676 2789 1674 2789 1674 2789 1674 2789 1673 2789 1673 2790 1673 2790 1673 2791 1673 2791 1673 2791 1673 2791 1673 2792 1673 2792 1673 2793 1673 2793 1673 2794 1675 2794 1677 2794 1677 2793 1677 2792 1677 M 2744 1693 2746 1692 2748 1691 2750 1691 2751 1691 2751 1690 2750 1690 2749 1689 2749 1689 2748 1689 2750 1688 2750 1688 2751 1689 2754 1688 2755 1687 2756 1686 2756 1686 2757 1685 2758 1683 2759 1683 2759 1683 2762 1683 2762 1683 2762 1683 2763 1683 2763 1683 2763 1682 2764 1682 2765 1681 2766 1681 2768 1681 2769 1681 2771 1680 2773 1680 2774 1680 2775 1681 2776 1681 2777 1681 2778 1681 2778 1681 2779 1682 2778 1682 2778 1683 2779 1683 2782 1686 2782 1686 2783 1686 2783 1686 2783 1686 2784 1687 2784 1687 2784 1688 2784 1688 2784 1688 2783 1688 2783 1688 2783 1689 2782 1689 2781 1689 2781 1689 2781 1689 2780 1690 2781 1690 2781 1690 2781 1690 2781 1690 2782 1690 2782 1689 2783 1689 2785 1689 2786 1689 2786 1689 2787 1690 2787 1690 2787 1691 2788 1692 2788 1693 2788 1694 2787 1694 2787 1694 2786 1694 2786 1693 2787 1693 2786 1693 2786 1692 2786 1692 2786 1692 2786 1692 2786 1691 2785 1691 2785 1691 2784 1691 2784 1691 2784 1691 2784 1692 2785 1692 2786 1694 2786 1694 2786 1695 2786 1695 2786 1695 2786 1696 2785 1696 2785 1696 2784 1696 2784 1696 2783 1696 2783 1696 2782 1696 2781 1696 2781 1697 2781 1697 2781 1697 2781 1697 2781 1698 2781 1698 2780 1699 2780 1699 2778 1699 2778 1700 2778 1700 2777 1699 2776 1699 2776 1699 2776 1698 2775 1698 2775 1698 2775 1698 2774 1698 2774 1698 2773 1698 2772 1699 2770 1699 2769 1699 2769 1699 2769 1699 2769 1699 2769 1699 2767 1697 2766 1695 2765 1695 2765 1694 2764 1694 2764 1694 2763 1693 2762 1693 2761 1695 2760 1695 2761 1696 2761 1696 2759 1698 2758 1698 2758 1698 2754 1698 2753 1698 2753 1698 2753 1697 2752 1697 2751 1697 2750 1697 2750 1697 2749 1697 2749 1696 2749 1696 2749 1695 2749 1695 2748 1695 2747 1694 2746 1694 2746 1694 2746 1694 2745 1693 2744 1693 M 2805 1714 2805 1714 2803 1713 2803 1713 2802 1712 2802 1710 2802 1710 2804 1709 2804 1709 2804 1709 2806 1709 2807 1709 2807 1710 2807 1710 2808 1711 2809 1711 2809 1711 2810 1711 2810 1711 2810 1712 2809 1712 2808 1713 2806 1714 2805 1714 M 2889 1742 2889 1742 2888 1742 2887 1742 2887 1742 2887 1741 2887 1741 2887 1741 2887 1741 2888 1741 2889 1741 2889 1741 2890 1742 2890 1742 2890 1742 2889 1742 2889 1742 M 2855 1755 2853 1754 2851 1753 2851 1753 2851 1753 2851 1753 2850 1753 2850 1753 2850 1753 2851 1753 2854 1752 2854 1752 2857 1752 2858 1752 2858 1753 2856 1754 2856 1754 2856 1755 2855 1755 2855 1755" />
+<path id="ua" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3384 1819 3384 1819 3388 1820 3389 1820 3391 1820 3391 1820 3392 1820 3393 1820 3393 1819 3393 1819 3394 1819 3395 1818 3396 1818 3396 1818 3396 1818 3394 1818 3393 1818 3393 1819 3392 1819 3392 1819 3391 1819 3391 1819 3391 1819 3390 1818 3389 1819 3388 1819 3386 1818 3386 1817 3386 1817 3386 1816 3385 1816 3385 1816 3385 1815 3385 1815 3386 1814 3386 1814 3386 1813 3386 1813 3386 1812 3384 1809 3382 1808 3382 1808 3382 1809 3383 1809 3383 1809 3384 1811 3384 1811 3384 1812 3385 1813 3385 1813 3386 1813 3386 1814 3385 1814 3384 1814 3384 1815 3384 1815 3384 1815 3384 1816 3385 1816 3385 1817 3384 1818 3383 1818 3382 1818 3382 1818 3381 1817 3380 1817 3380 1817 3380 1818 3379 1818 3378 1818 3378 1817 3378 1817 3379 1816 3380 1815 3378 1816 3378 1816 3378 1817 3377 1818 3376 1818 3374 1818 3374 1818 3373 1818 3373 1818 3373 1818 3371 1818 3371 1818 3370 1818 3369 1818 3367 1819 3367 1820 3367 1821 3366 1822 3365 1824 3362 1826 3358 1830 3357 1830 3356 1831 3355 1831 3355 1831 3355 1830 3354 1830 3353 1831 3351 1832 3351 1832 3351 1833 3352 1833 3351 1833 3351 1834 3350 1834 3349 1833 3349 1832 3349 1831 3349 1831 3348 1831 3348 1833 3348 1835 3348 1836 3349 1836 3350 1836 3350 1837 3350 1839 3350 1840 3350 1840 3349 1840 3349 1840 3349 1839 3349 1839 3349 1839 3348 1838 3348 1838 3347 1838 3346 1837 3345 1837 3343 1837 3342 1837 3338 1839 3336 1839 3335 1840 3333 1840 3331 1840 3328 1839 3328 1839 3327 1838 3327 1838 3327 1837 3327 1837 3326 1837 3326 1837 3326 1836 3326 1836 3326 1836 3326 1835 3327 1835 3327 1835 3328 1835 3328 1835 3329 1836 3330 1836 3330 1836 3331 1835 3331 1833 3330 1833 3331 1832 3332 1831 3333 1831 3334 1830 3334 1829 3334 1828 3335 1828 3335 1828 3337 1828 3338 1828 3339 1825 3339 1824 3337 1823 3337 1821 3338 1820 3338 1820 3339 1820 3341 1819 3341 1819 3342 1819 3342 1820 3342 1821 3341 1822 3342 1822 3342 1822 3343 1821 3343 1821 3344 1820 3346 1820 3346 1821 3348 1822 3348 1822 3349 1822 3350 1821 3351 1822 3352 1822 3353 1822 3354 1822 3354 1822 3355 1822 3356 1822 3356 1821 3356 1821 3356 1821 3355 1821 3355 1821 3354 1820 3353 1820 3353 1819 3353 1819 3354 1819 3354 1816 3353 1815 3352 1814 3350 1814 3347 1813 3348 1811 3347 1810 3348 1807 3348 1807 3347 1806 3346 1806 3346 1807 3346 1807 3345 1807 3344 1807 3344 1806 3344 1806 3343 1805 3342 1804 3342 1805 3341 1805 3340 1804 3340 1803 3341 1803 3341 1802 3342 1800 3341 1797 3341 1796 3340 1796 3339 1796 3339 1797 3339 1797 3338 1797 3338 1797 3338 1797 3337 1796 3336 1796 3336 1796 3335 1794 3335 1794 3334 1794 3332 1793 3331 1793 3330 1794 3329 1794 3328 1793 3328 1793 3328 1792 3328 1792 3327 1792 3326 1792 3326 1793 3326 1793 3324 1792 3324 1791 3323 1791 3322 1791 3322 1791 3321 1790 3321 1790 3320 1790 3320 1790 3320 1789 3318 1789 3315 1788 3315 1788 3314 1789 3310 1790 3306 1790 3303 1791 3301 1790 3301 1791 3300 1791 3300 1792 3299 1792 3299 1793 3298 1792 3298 1792 3295 1793 3295 1795 3293 1796 3293 1796 3292 1796 3292 1796 3291 1796 3289 1796 3288 1796 3287 1797 3287 1797 3285 1797 3284 1797 3283 1797 3283 1797 3282 1797 3280 1797 3278 1798 3278 1798 3277 1799 3277 1799 3276 1800 3276 1800 3275 1800 3275 1800 3274 1800 3274 1800 3274 1800 3273 1800 3273 1800 3272 1800 3271 1799 3271 1799 3271 1799 3270 1798 3269 1798 3269 1798 3269 1798 3268 1797 3268 1797 3267 1797 3267 1797 3266 1796 3265 1797 3264 1797 3262 1797 3260 1797 3260 1797 3259 1797 3258 1796 3256 1796 3251 1796 3251 1796 3250 1796 3249 1796 3248 1795 3247 1795 3247 1795 3247 1794 3245 1794 3245 1794 3244 1794 3244 1795 3244 1795 3244 1796 3243 1796 3241 1796 3241 1797 3241 1797 3240 1796 3240 1795 3240 1795 3239 1794 3238 1794 3237 1794 3237 1794 3236 1794 3236 1794 3236 1794 3236 1793 3234 1792 3234 1792 3232 1792 3232 1791 3231 1790 3231 1789 3230 1789 3229 1789 3229 1789 3229 1787 3229 1786 3230 1786 3232 1785 3233 1783 3233 1782 3234 1781 3235 1780 3235 1779 3235 1779 3235 1778 3236 1778 3238 1779 3240 1780 3241 1780 3240 1779 3240 1778 3240 1778 3239 1777 3238 1777 3238 1776 3239 1775 3238 1774 3237 1773 3237 1771 3237 1771 3237 1771 3238 1770 3239 1769 3244 1765 3245 1764 3246 1763 3247 1762 3248 1762 3248 1762 3248 1761 3250 1760 3251 1760 3251 1760 3252 1760 3253 1759 3253 1758 3254 1758 3254 1758 3255 1757 3255 1757 3256 1757 3256 1757 3257 1757 3258 1757 3258 1757 3260 1755 3260 1754 3260 1754 3259 1753 3259 1752 3258 1751 3258 1751 3258 1751 3259 1751 3259 1751 3260 1751 3260 1751 3261 1750 3260 1750 3259 1750 3259 1750 3258 1749 3258 1749 3257 1748 3257 1747 3255 1745 3254 1745 3254 1744 3253 1743 3253 1742 3253 1741 3253 1740 3252 1740 3252 1739 3253 1740 3252 1739 3252 1738 3253 1738 3254 1738 3257 1738 3257 1738 3257 1738 3258 1739 3258 1738 3259 1738 3259 1738 3263 1736 3263 1736 3263 1735 3263 1735 3265 1734 3270 1734 3270 1734 3273 1734 3274 1733 3275 1733 3276 1733 3277 1733 3278 1733 3279 1733 3279 1733 3280 1733 3281 1733 3283 1733 3283 1733 3284 1733 3285 1733 3286 1733 3287 1733 3287 1733 3291 1733 3293 1734 3293 1734 3294 1734 3295 1734 3296 1734 3296 1734 3297 1734 3297 1735 3298 1735 3298 1735 3299 1735 3299 1735 3300 1735 3301 1735 3301 1735 3302 1735 3303 1735 3303 1736 3305 1736 3305 1736 3305 1736 3306 1736 3307 1736 3308 1736 3309 1736 3309 1736 3310 1736 3309 1737 3311 1738 3313 1738 3313 1738 3314 1738 3316 1738 3317 1738 3318 1739 3318 1739 3317 1740 3318 1740 3319 1739 3319 1739 3319 1738 3320 1738 3320 1738 3321 1738 3321 1738 3322 1739 3322 1739 3322 1739 3323 1739 3324 1739 3324 1739 3325 1738 3325 1738 3326 1737 3326 1737 3327 1739 3329 1739 3330 1739 3330 1739 3332 1739 3332 1739 3332 1740 3333 1740 3333 1741 3334 1741 3335 1741 3334 1740 3335 1740 3335 1739 3336 1739 3339 1738 3340 1738 3340 1738 3341 1738 3341 1738 3342 1739 3342 1740 3343 1742 3344 1742 3344 1742 3345 1741 3348 1740 3349 1740 3350 1740 3350 1741 3350 1741 3352 1741 3352 1741 3353 1740 3354 1740 3354 1740 3355 1740 3357 1740 3357 1740 3357 1740 3360 1742 3360 1742 3362 1743 3363 1744 3363 1743 3364 1743 3364 1743 3364 1742 3364 1740 3363 1739 3363 1738 3364 1737 3365 1735 3365 1735 3366 1734 3367 1733 3368 1732 3369 1732 3369 1731 3369 1731 3369 1731 3372 1731 3372 1731 3375 1731 3375 1730 3376 1730 3376 1730 3377 1730 3378 1730 3379 1730 3380 1730 3382 1730 3383 1730 3383 1730 3384 1730 3385 1730 3385 1731 3386 1731 3388 1731 3390 1731 3391 1730 3391 1729 3392 1727 3392 1727 3393 1727 3395 1727 3395 1727 3395 1727 3396 1727 3396 1727 3397 1728 3398 1728 3398 1728 3401 1728 3401 1728 3402 1728 3403 1727 3405 1726 3408 1726 3409 1726 3410 1727 3412 1727 3412 1726 3413 1726 3414 1726 3415 1726 3419 1729 3420 1730 3419 1730 3419 1731 3419 1731 3420 1732 3422 1733 3423 1734 3424 1734 3425 1735 3425 1736 3425 1736 3424 1736 3422 1737 3421 1737 3420 1737 3420 1738 3421 1738 3422 1739 3422 1740 3422 1741 3424 1744 3425 1744 3427 1744 3429 1745 3429 1745 3430 1745 3430 1745 3431 1745 3431 1745 3433 1745 3433 1744 3434 1744 3435 1744 3436 1745 3436 1745 3436 1745 3436 1747 3437 1747 3437 1747 3438 1747 3438 1747 3439 1747 3440 1747 3440 1748 3440 1748 3439 1748 3439 1749 3440 1749 3441 1752 3442 1753 3440 1754 3441 1756 3441 1756 3444 1758 3444 1758 3445 1758 3445 1758 3446 1758 3447 1757 3448 1757 3448 1757 3449 1757 3450 1757 3450 1757 3451 1757 3451 1757 3452 1757 3453 1758 3453 1758 3453 1758 3454 1759 3455 1759 3455 1759 3456 1759 3456 1759 3457 1759 3458 1759 3459 1760 3459 1760 3459 1760 3460 1760 3460 1760 3461 1760 3461 1760 3461 1760 3463 1759 3464 1759 3466 1758 3466 1758 3467 1758 3468 1758 3469 1758 3470 1758 3470 1758 3471 1757 3471 1757 3473 1757 3473 1757 3476 1761 3478 1763 3479 1763 3479 1763 3481 1763 3482 1764 3482 1765 3482 1765 3484 1765 3485 1763 3487 1763 3487 1763 3487 1763 3488 1764 3488 1764 3488 1764 3490 1765 3491 1765 3491 1764 3492 1764 3492 1765 3493 1765 3495 1766 3496 1766 3496 1766 3497 1767 3497 1767 3497 1767 3499 1767 3499 1767 3500 1766 3501 1766 3501 1766 3502 1767 3502 1767 3502 1768 3503 1768 3503 1768 3504 1768 3504 1768 3504 1768 3505 1768 3505 1768 3507 1768 3508 1769 3508 1770 3508 1770 3511 1771 3512 1771 3512 1771 3513 1771 3513 1771 3513 1770 3514 1770 3515 1770 3515 1770 3516 1770 3516 1771 3516 1771 3516 1771 3515 1771 3515 1772 3515 1772 3515 1773 3516 1773 3516 1774 3517 1774 3517 1775 3517 1776 3515 1777 3515 1777 3514 1777 3513 1778 3513 1778 3513 1778 3513 1779 3513 1779 3511 1779 3509 1779 3509 1780 3509 1780 3510 1781 3513 1782 3514 1782 3515 1782 3515 1782 3515 1782 3515 1783 3514 1783 3512 1783 3511 1783 3511 1783 3510 1783 3510 1784 3509 1784 3508 1786 3510 1787 3510 1787 3511 1787 3511 1787 3511 1787 3512 1788 3513 1790 3514 1791 3513 1792 3513 1793 3512 1793 3510 1795 3511 1796 3511 1796 3511 1798 3510 1798 3510 1799 3510 1799 3509 1799 3508 1799 3508 1798 3506 1798 3505 1799 3504 1799 3504 1798 3504 1798 3502 1798 3501 1798 3500 1798 3500 1798 3499 1798 3497 1798 3496 1798 3496 1798 3495 1798 3495 1798 3495 1799 3494 1800 3494 1801 3492 1802 3491 1802 3491 1802 3490 1802 3489 1802 3488 1802 3487 1803 3486 1804 3486 1806 3487 1807 3486 1808 3486 1808 3485 1809 3486 1810 3486 1810 3484 1811 3483 1810 3480 1810 3480 1810 3479 1810 3479 1811 3478 1811 3476 1811 3476 1810 3475 1810 3475 1811 3473 1812 3472 1813 3471 1813 3470 1813 3469 1813 3467 1814 3467 1814 3466 1814 3465 1815 3464 1815 3462 1816 3462 1816 3461 1815 3460 1815 3458 1816 3457 1816 3456 1816 3456 1816 3456 1817 3454 1818 3453 1817 3453 1817 3451 1817 3449 1817 3447 1818 3446 1818 3446 1819 3445 1819 3444 1820 3444 1820 3443 1820 3443 1820 3442 1821 3442 1821 3440 1822 3439 1824 3437 1825 3437 1826 3436 1826 3434 1827 3434 1826 3435 1826 3436 1825 3436 1825 3437 1825 3437 1825 3438 1824 3438 1824 3439 1823 3439 1823 3440 1822 3437 1821 3437 1821 3437 1822 3436 1823 3436 1823 3435 1824 3435 1824 3431 1825 3429 1825 3428 1826 3427 1828 3427 1828 3427 1828 3426 1828 3425 1828 3425 1826 3425 1826 3426 1826 3426 1826 3427 1826 3427 1826 3427 1826 3427 1825 3427 1825 3426 1825 3425 1825 3423 1825 3422 1824 3421 1824 3421 1823 3421 1823 3420 1824 3420 1825 3420 1826 3419 1826 3418 1825 3418 1825 3417 1824 3414 1824 3413 1824 3413 1824 3413 1825 3414 1825 3415 1826 3415 1826 3415 1825 3416 1825 3416 1827 3416 1827 3418 1828 3418 1827 3418 1827 3417 1826 3417 1826 3418 1826 3420 1827 3420 1828 3420 1829 3421 1829 3421 1828 3421 1828 3422 1828 3421 1827 3424 1828 3424 1828 3425 1829 3424 1829 3424 1829 3424 1830 3426 1830 3427 1829 3427 1828 3428 1829 3428 1829 3428 1829 3428 1830 3427 1830 3425 1831 3428 1831 3431 1832 3433 1833 3434 1834 3435 1835 3435 1835 3436 1836 3435 1837 3435 1837 3434 1837 3435 1838 3436 1839 3436 1839 3437 1838 3439 1839 3440 1838 3438 1837 3436 1835 3435 1834 3435 1834 3434 1833 3434 1833 3433 1832 3433 1832 3432 1831 3432 1830 3432 1829 3430 1828 3430 1827 3429 1827 3429 1826 3430 1826 3431 1826 3431 1827 3432 1828 3432 1828 3432 1830 3433 1831 3434 1832 3434 1832 3434 1832 3435 1833 3435 1834 3438 1837 3439 1838 3440 1838 3440 1838 3441 1839 3442 1839 3443 1839 3445 1839 3448 1837 3448 1837 3449 1838 3449 1838 3450 1838 3450 1838 3451 1838 3451 1837 3451 1837 3452 1836 3455 1836 3458 1837 3460 1837 3460 1838 3460 1838 3460 1838 3459 1838 3459 1838 3458 1838 3457 1839 3457 1841 3456 1841 3457 1842 3457 1842 3457 1843 3454 1844 3452 1843 3450 1844 3450 1844 3448 1844 3447 1844 3447 1843 3447 1843 3446 1842 3445 1842 3444 1842 3443 1842 3443 1842 3442 1842 3441 1843 3441 1843 3440 1843 3438 1844 3436 1845 3436 1846 3436 1846 3436 1847 3436 1847 3435 1847 3435 1847 3434 1846 3433 1846 3430 1847 3426 1848 3425 1848 3425 1848 3424 1849 3424 1850 3424 1850 3423 1851 3420 1853 3418 1853 3417 1854 3417 1854 3415 1853 3415 1854 3413 1853 3412 1852 3412 1852 3411 1852 3411 1852 3409 1852 3408 1851 3408 1850 3410 1850 3411 1850 3411 1849 3410 1847 3411 1847 3411 1847 3411 1846 3412 1846 3412 1845 3412 1844 3411 1842 3411 1842 3410 1842 3409 1841 3408 1841 3408 1841 3407 1841 3406 1841 3405 1841 3404 1840 3404 1840 3403 1839 3402 1839 3401 1838 3400 1838 3400 1838 3398 1838 3397 1838 3397 1839 3395 1839 3394 1838 3394 1837 3394 1837 3395 1836 3395 1836 3396 1836 3399 1834 3400 1833 3401 1833 3402 1833 3405 1832 3406 1832 3406 1832 3407 1832 3408 1831 3408 1831 3409 1831 3409 1830 3410 1830 3411 1830 3412 1830 3414 1829 3414 1829 3413 1828 3412 1828 3412 1828 3412 1827 3412 1826 3412 1825 3412 1825 3410 1826 3410 1826 3410 1827 3410 1827 3409 1827 3408 1826 3407 1826 3406 1826 3405 1825 3404 1826 3401 1826 3400 1826 3399 1826 3398 1826 3398 1826 3396 1826 3395 1826 3395 1827 3394 1827 3393 1826 3392 1826 3390 1826 3390 1825 3387 1824 3385 1823 3384 1823 3383 1823 3383 1823 3383 1823 3382 1823 3383 1822 3384 1822 3384 1822 3385 1822 3385 1822 3386 1822 3387 1822 3386 1821 3386 1821 3383 1820 3383 1820 3382 1820 3381 1820 3381 1820 3380 1820 3379 1819 3378 1819 3379 1819 3379 1819 3380 1819 3380 1819 3381 1819 3381 1819 3382 1819 3382 1819 3384 1819 3384 1819" />
+<path id="us" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 719 1626 720 1625 720 1624 720 1623 719 1623 718 1624 718 1624 718 1624 716 1623 717 1622 715 1618 714 1617 714 1617 713 1616 713 1615 713 1614 713 1614 714 1613 713 1613 712 1614 711 1615 712 1616 713 1617 713 1617 714 1619 713 1618 713 1618 712 1617 712 1617 711 1617 711 1617 710 1617 712 1618 712 1619 713 1621 714 1622 714 1623 715 1625 716 1626 716 1626 716 1626 716 1627 716 1627 717 1629 718 1630 718 1631 718 1631 717 1632 716 1633 714 1632 714 1632 713 1632 713 1631 712 1631 712 1630 711 1629 711 1629 709 1629 707 1630 704 1630 705 1629 705 1629 705 1628 705 1626 705 1626 704 1626 702 1623 704 1622 705 1622 707 1622 706 1622 705 1622 704 1622 703 1622 702 1622 702 1621 701 1620 701 1620 700 1620 700 1620 700 1620 701 1621 701 1622 701 1623 701 1624 700 1624 699 1624 695 1623 694 1621 692 1621 692 1622 691 1621 689 1620 686 1619 686 1619 686 1620 687 1620 687 1621 686 1622 685 1623 685 1623 686 1622 686 1622 687 1622 688 1622 691 1622 694 1623 694 1623 694 1623 695 1624 694 1624 694 1623 693 1623 693 1623 693 1624 695 1624 697 1625 697 1625 695 1626 695 1626 694 1626 695 1627 695 1627 697 1626 698 1626 698 1626 699 1626 700 1626 701 1627 701 1628 702 1629 702 1630 702 1630 701 1631 699 1631 698 1631 698 1630 698 1630 695 1629 694 1630 695 1631 695 1630 696 1630 696 1630 697 1631 697 1631 697 1631 695 1631 694 1631 693 1631 692 1631 693 1631 693 1631 694 1632 694 1632 693 1633 693 1633 692 1633 692 1632 692 1632 689 1630 689 1630 688 1630 687 1630 687 1630 686 1630 684 1629 683 1629 681 1628 678 1627 677 1627 678 1626 678 1626 680 1626 679 1625 679 1625 677 1626 676 1626 676 1625 675 1625 674 1625 673 1624 673 1624 672 1624 672 1623 672 1623 672 1622 672 1622 671 1622 670 1621 670 1621 668 1620 668 1620 665 1618 663 1618 663 1618 662 1618 662 1618 661 1618 662 1618 663 1618 664 1617 663 1617 662 1617 661 1617 660 1618 659 1617 658 1617 656 1616 655 1616 655 1616 654 1616 652 1615 652 1615 652 1615 651 1614 651 1614 650 1614 650 1614 648 1614 648 1614 648 1614 649 1614 650 1614 648 1613 647 1613 644 1612 643 1611 645 1611 645 1610 646 1609 646 1608 646 1608 645 1606 645 1606 647 1604 648 1604 648 1605 649 1606 650 1606 650 1609 650 1611 650 1611 651 1611 651 1610 651 1609 650 1608 651 1607 651 1607 652 1607 653 1607 654 1607 655 1607 655 1607 655 1607 656 1607 656 1607 655 1607 654 1606 653 1606 652 1606 652 1606 651 1606 649 1605 649 1604 649 1604 647 1604 646 1604 646 1604 644 1605 642 1606 640 1607 639 1608 638 1608 637 1608 635 1609 635 1609 634 1609 633 1609 632 1609 632 1609 629 1609 625 1608 625 1608 624 1608 623 1608 622 1607 620 1607 617 1606 617 1606 617 1606 619 1605 619 1605 619 1604 619 1604 618 1603 617 1602 616 1602 615 1602 616 1603 616 1603 617 1604 617 1604 616 1604 613 1605 613 1605 611 1605 609 1604 609 1604 609 1604 608 1604 607 1604 604 1603 598 1603 596 1603 595 1602 595 1602 594 1602 593 1603 592 1603 591 1603 590 1603 589 1603 588 1603 588 1603 588 1603 587 1603 586 1603 584 1603 580 1604 579 1604 578 1604 578 1604 577 1604 577 1604 576 1604 576 1604 575 1603 575 1603 573 1602 571 1601 570 1601 569 1601 568 1601 566 1601 565 1601 565 1601 565 1600 564 1600 562 1599 562 1599 561 1599 561 1600 560 1600 560 1599 560 1598 562 1596 563 1594 565 1593 565 1593 564 1593 564 1593 564 1593 563 1593 561 1594 560 1595 557 1597 555 1598 555 1598 554 1599 553 1599 553 1598 551 1598 551 1597 550 1597 549 1597 548 1597 547 1597 547 1597 545 1596 547 1596 547 1595 549 1594 549 1593 548 1594 548 1594 546 1594 545 1594 545 1593 543 1594 540 1594 539 1594 539 1594 541 1593 541 1593 541 1593 543 1592 542 1591 542 1592 541 1592 540 1592 536 1593 536 1593 535 1593 533 1593 532 1592 533 1592 535 1592 535 1592 536 1592 536 1592 539 1591 541 1591 541 1590 539 1590 539 1590 539 1591 538 1591 537 1591 537 1591 537 1591 536 1591 536 1591 535 1591 535 1591 534 1591 532 1590 531 1590 531 1589 533 1587 533 1587 536 1587 538 1587 538 1587 539 1587 539 1586 538 1586 536 1586 534 1586 533 1586 531 1588 530 1588 529 1588 529 1589 528 1589 528 1589 527 1589 527 1589 527 1588 526 1588 526 1588 524 1588 523 1589 521 1590 519 1590 518 1589 519 1588 519 1587 519 1586 518 1586 518 1586 517 1589 517 1590 516 1591 515 1591 515 1591 513 1591 513 1591 512 1590 512 1590 510 1589 512 1587 515 1585 516 1584 515 1584 515 1584 512 1586 511 1587 511 1587 510 1588 510 1588 509 1587 509 1587 508 1587 507 1587 507 1587 505 1587 505 1587 504 1588 504 1588 505 1588 505 1588 505 1588 506 1588 507 1587 507 1587 508 1587 508 1587 508 1588 506 1591 506 1591 505 1591 505 1591 504 1591 504 1591 502 1591 500 1592 500 1592 501 1592 502 1591 502 1591 504 1591 503 1592 502 1592 501 1592 501 1592 500 1593 500 1593 501 1593 502 1593 502 1592 503 1592 504 1592 505 1592 507 1592 507 1592 507 1593 508 1594 506 1596 505 1595 504 1595 503 1595 503 1595 501 1596 501 1596 500 1597 500 1597 500 1597 502 1596 502 1596 503 1596 504 1596 506 1596 507 1596 507 1596 507 1596 508 1595 509 1595 510 1595 512 1596 512 1597 512 1597 511 1598 510 1598 509 1598 509 1598 508 1599 507 1599 506 1600 505 1600 504 1601 506 1601 506 1601 507 1600 507 1600 508 1600 509 1601 510 1601 509 1602 509 1602 508 1602 508 1602 507 1602 507 1602 506 1602 506 1602 505 1602 505 1603 505 1604 504 1605 501 1605 499 1605 497 1605 495 1605 494 1605 493 1604 494 1604 494 1603 494 1603 493 1603 493 1604 492 1604 492 1605 491 1606 491 1606 491 1606 490 1606 490 1605 490 1604 489 1602 488 1602 488 1603 488 1603 487 1605 486 1606 485 1607 486 1608 486 1608 487 1609 486 1609 486 1608 484 1607 485 1607 485 1606 485 1606 485 1605 484 1605 483 1605 483 1607 483 1608 483 1609 483 1610 483 1610 482 1609 481 1608 480 1608 479 1607 479 1608 480 1608 480 1609 480 1609 480 1610 479 1610 475 1612 474 1612 474 1613 473 1613 473 1612 473 1612 475 1610 476 1609 475 1609 475 1609 474 1610 474 1610 473 1611 471 1613 471 1612 471 1611 471 1611 471 1611 469 1611 469 1612 469 1612 470 1612 470 1613 468 1613 468 1613 467 1614 467 1614 465 1615 465 1615 465 1616 465 1616 464 1616 463 1616 463 1615 461 1615 460 1616 462 1616 461 1617 461 1617 460 1617 459 1617 457 1616 457 1616 456 1616 455 1616 454 1617 454 1617 453 1617 452 1618 451 1618 449 1617 448 1616 447 1615 449 1614 449 1613 450 1613 452 1613 453 1612 453 1612 454 1612 455 1613 456 1613 456 1612 456 1612 458 1611 459 1611 460 1611 463 1608 463 1607 462 1607 461 1608 460 1608 456 1610 456 1610 454 1610 453 1610 452 1609 451 1609 451 1609 450 1609 449 1608 449 1608 449 1608 452 1604 453 1603 453 1603 454 1602 455 1602 455 1602 456 1601 456 1601 457 1600 458 1598 459 1597 459 1596 459 1595 458 1595 458 1595 457 1594 457 1594 457 1593 457 1593 459 1592 461 1592 462 1592 462 1592 465 1590 468 1589 472 1588 473 1588 473 1588 474 1588 474 1588 474 1589 475 1589 476 1589 477 1589 478 1590 481 1589 481 1589 481 1589 482 1589 482 1589 483 1589 483 1589 486 1589 488 1590 489 1590 491 1590 492 1590 493 1590 493 1590 494 1590 494 1591 495 1591 494 1590 494 1590 493 1589 492 1589 492 1589 489 1589 485 1588 484 1588 484 1588 482 1587 482 1587 482 1587 480 1586 478 1586 479 1585 482 1583 482 1583 484 1582 485 1582 487 1581 487 1581 491 1580 488 1580 485 1580 485 1580 484 1581 483 1581 481 1582 481 1583 480 1583 480 1584 479 1584 478 1584 478 1584 477 1584 477 1584 475 1584 474 1584 473 1584 473 1584 472 1584 472 1584 471 1584 470 1584 469 1584 468 1584 467 1584 465 1585 465 1585 464 1585 463 1585 463 1585 462 1586 462 1586 461 1587 461 1587 460 1588 458 1588 456 1588 455 1588 455 1588 454 1589 451 1590 450 1591 450 1591 451 1591 451 1592 452 1592 452 1592 452 1593 451 1593 450 1592 450 1592 448 1593 447 1593 446 1594 446 1594 446 1595 445 1595 444 1595 442 1596 442 1597 442 1597 442 1598 442 1598 440 1599 438 1600 437 1601 436 1600 434 1600 433 1599 433 1599 432 1599 432 1599 431 1599 431 1599 430 1599 430 1600 430 1600 430 1600 431 1599 432 1600 432 1600 432 1600 433 1601 433 1601 434 1601 434 1601 435 1601 436 1602 438 1603 438 1603 438 1603 437 1604 436 1605 434 1606 433 1606 432 1606 431 1606 431 1606 428 1606 427 1607 427 1607 427 1607 428 1607 430 1607 431 1607 431 1608 431 1609 429 1610 428 1610 428 1610 426 1610 426 1610 425 1610 425 1609 426 1609 426 1608 425 1608 424 1609 424 1610 422 1611 421 1611 419 1612 420 1613 419 1613 419 1613 416 1614 414 1614 414 1614 413 1614 413 1614 414 1615 414 1615 414 1615 415 1614 414 1615 414 1615 413 1616 411 1618 412 1620 413 1620 413 1619 414 1619 414 1619 415 1619 415 1619 417 1619 420 1619 420 1619 421 1620 422 1620 422 1620 423 1620 423 1620 423 1620 424 1620 426 1621 427 1622 424 1625 422 1626 420 1626 419 1626 417 1627 416 1628 416 1628 415 1628 414 1628 414 1628 414 1629 415 1630 415 1630 414 1630 413 1631 413 1630 412 1630 412 1630 410 1631 410 1632 410 1632 411 1632 412 1631 412 1631 413 1631 413 1632 412 1634 410 1634 409 1634 408 1634 407 1635 406 1636 406 1636 405 1636 404 1636 403 1636 402 1636 401 1636 400 1636 399 1636 399 1637 398 1638 398 1638 395 1639 395 1640 394 1640 393 1641 392 1640 390 1639 390 1639 390 1639 389 1640 388 1642 388 1643 387 1643 387 1643 386 1643 386 1643 384 1644 383 1644 383 1645 382 1645 382 1645 381 1645 380 1644 380 1644 376 1647 375 1647 377 1647 377 1647 378 1647 378 1648 378 1649 377 1650 376 1651 375 1652 372 1652 371 1652 370 1653 369 1653 368 1653 368 1654 366 1655 364 1656 364 1656 364 1656 363 1655 362 1655 362 1655 362 1654 361 1654 361 1654 360 1655 358 1657 358 1657 359 1657 360 1657 360 1658 360 1658 359 1658 357 1658 356 1658 355 1657 355 1657 354 1657 353 1658 352 1658 352 1658 351 1659 350 1659 349 1660 350 1659 351 1659 352 1659 352 1659 353 1659 353 1659 354 1659 354 1660 353 1661 352 1660 350 1660 349 1660 349 1660 349 1660 349 1661 348 1661 347 1661 347 1661 346 1661 346 1660 345 1661 344 1661 343 1662 343 1663 342 1663 342 1663 341 1664 341 1664 343 1664 342 1664 343 1663 343 1663 344 1663 344 1663 346 1663 348 1664 347 1664 347 1664 346 1664 346 1665 347 1665 347 1665 348 1665 348 1664 349 1664 348 1665 346 1666 345 1665 343 1667 344 1667 343 1668 343 1668 343 1668 342 1667 342 1666 343 1666 344 1665 343 1665 343 1665 342 1665 341 1666 341 1667 341 1668 341 1668 341 1669 339 1669 340 1668 340 1668 339 1668 338 1668 338 1668 337 1669 336 1669 335 1669 334 1669 333 1669 330 1670 328 1671 327 1671 327 1672 327 1673 326 1674 325 1675 325 1675 324 1675 324 1675 324 1675 324 1674 325 1673 325 1671 325 1671 324 1671 323 1670 322 1670 320 1671 319 1671 319 1672 319 1672 319 1673 318 1673 317 1673 315 1674 314 1674 313 1674 312 1675 312 1676 311 1676 311 1676 310 1675 309 1675 307 1676 309 1676 309 1676 309 1677 308 1677 307 1677 307 1677 307 1677 306 1677 306 1676 306 1676 306 1676 305 1676 305 1676 305 1676 304 1676 304 1676 304 1677 303 1677 302 1678 299 1678 295 1678 296 1676 297 1675 298 1675 298 1675 298 1675 299 1676 301 1676 301 1676 297 1674 296 1674 296 1674 295 1674 294 1674 294 1674 292 1676 292 1678 290 1679 289 1680 288 1680 287 1680 287 1680 287 1680 287 1681 288 1682 288 1682 288 1682 288 1682 287 1683 286 1683 286 1682 285 1682 286 1682 286 1681 285 1682 284 1682 284 1683 284 1684 284 1684 283 1684 280 1683 280 1683 280 1683 279 1683 279 1682 280 1682 280 1681 279 1681 278 1679 277 1679 277 1679 276 1680 276 1681 276 1681 278 1682 278 1685 277 1684 276 1685 275 1685 275 1685 274 1685 274 1685 273 1685 272 1684 272 1684 272 1684 271 1683 270 1682 269 1682 268 1682 268 1683 268 1684 269 1684 269 1684 270 1684 271 1685 271 1685 268 1687 266 1687 266 1687 265 1686 266 1686 267 1685 267 1684 267 1684 266 1682 267 1682 268 1682 269 1681 270 1681 270 1681 272 1681 272 1681 272 1681 273 1680 273 1680 275 1679 277 1678 278 1679 279 1679 280 1678 279 1677 279 1677 280 1676 281 1675 283 1673 284 1673 286 1672 287 1672 290 1670 291 1670 291 1670 297 1669 298 1669 300 1669 302 1669 303 1669 303 1670 304 1671 306 1672 306 1672 307 1672 309 1673 309 1672 308 1672 308 1672 307 1672 307 1670 307 1670 308 1670 308 1670 309 1670 309 1670 311 1670 311 1670 312 1671 312 1671 312 1671 315 1672 315 1672 316 1671 314 1670 312 1670 312 1669 311 1669 310 1668 312 1665 313 1665 313 1665 313 1664 314 1664 314 1663 316 1662 318 1661 319 1661 320 1661 320 1661 321 1660 321 1660 322 1660 322 1659 324 1659 326 1658 327 1658 327 1658 328 1658 329 1658 329 1658 331 1657 331 1657 332 1656 333 1656 335 1655 336 1656 338 1656 341 1656 341 1655 341 1655 340 1654 340 1652 340 1652 341 1651 341 1651 342 1651 344 1649 345 1648 345 1648 345 1648 346 1648 347 1647 347 1647 348 1646 349 1646 349 1646 350 1646 350 1646 350 1646 352 1644 355 1643 356 1643 356 1643 357 1644 357 1644 358 1645 358 1645 359 1645 361 1644 361 1643 360 1643 360 1644 360 1644 358 1644 357 1642 356 1642 356 1642 356 1641 356 1640 357 1640 357 1638 357 1638 357 1637 357 1636 358 1635 358 1634 358 1634 359 1633 361 1633 362 1633 364 1633 365 1633 365 1633 365 1633 364 1633 362 1632 361 1633 359 1632 358 1631 358 1630 359 1630 360 1628 360 1628 364 1626 366 1624 366 1624 368 1621 368 1621 369 1621 370 1620 371 1618 370 1618 370 1618 370 1619 369 1619 369 1620 369 1620 366 1622 366 1622 364 1623 364 1623 363 1623 363 1623 361 1623 357 1624 355 1625 352 1626 351 1626 350 1626 349 1626 349 1626 348 1626 348 1626 347 1626 346 1626 346 1625 345 1624 345 1624 344 1624 343 1624 343 1623 342 1623 342 1623 343 1623 343 1622 344 1622 344 1620 346 1620 349 1620 349 1620 350 1621 350 1621 351 1622 351 1622 352 1622 350 1620 350 1620 350 1620 349 1620 349 1620 347 1619 347 1619 347 1619 346 1619 344 1619 344 1618 343 1618 343 1617 343 1618 343 1618 343 1619 343 1619 342 1621 341 1622 340 1622 340 1622 340 1621 339 1620 338 1621 339 1621 339 1622 339 1624 339 1624 338 1624 338 1625 337 1624 337 1624 338 1624 338 1624 338 1623 338 1623 338 1623 337 1623 337 1624 337 1625 339 1628 340 1628 340 1628 339 1629 338 1630 338 1630 337 1630 336 1630 335 1629 334 1629 333 1628 333 1627 330 1625 330 1624 329 1624 328 1623 326 1622 325 1621 324 1621 323 1621 323 1623 322 1623 322 1624 321 1624 320 1623 320 1623 317 1622 316 1622 315 1621 314 1621 315 1621 315 1620 315 1620 314 1619 313 1619 312 1620 309 1621 307 1622 306 1622 306 1622 305 1622 304 1622 303 1622 303 1623 303 1623 301 1623 300 1623 299 1623 299 1624 298 1624 297 1625 297 1625 298 1626 298 1625 297 1626 293 1627 292 1626 290 1626 286 1626 285 1626 285 1626 287 1625 288 1625 288 1625 288 1626 289 1626 289 1626 290 1625 292 1624 293 1623 293 1623 292 1623 291 1623 291 1622 291 1622 291 1620 291 1620 292 1620 294 1619 294 1618 294 1618 293 1618 292 1618 292 1618 291 1618 290 1618 290 1618 289 1619 290 1619 290 1619 289 1619 289 1619 288 1618 288 1618 287 1616 288 1614 290 1613 291 1613 292 1612 291 1611 289 1609 289 1608 288 1608 287 1606 286 1606 284 1604 284 1603 284 1603 284 1602 285 1601 285 1600 284 1600 284 1601 283 1602 282 1602 282 1602 282 1601 281 1599 283 1597 284 1596 284 1595 286 1594 286 1594 287 1594 287 1594 288 1594 288 1594 289 1593 289 1593 286 1593 283 1594 283 1595 282 1597 281 1598 280 1598 279 1599 278 1599 278 1600 279 1600 280 1601 280 1601 280 1601 280 1603 280 1604 279 1604 279 1604 278 1604 275 1605 272 1606 270 1606 269 1607 269 1607 266 1607 266 1607 265 1607 261 1607 259 1607 258 1607 256 1607 255 1607 255 1607 254 1607 253 1607 253 1606 253 1606 252 1606 252 1605 252 1605 253 1605 254 1605 254 1605 253 1604 252 1604 251 1603 250 1603 249 1603 248 1602 245 1600 245 1600 245 1600 245 1599 244 1600 243 1600 242 1599 240 1599 239 1599 239 1598 237 1597 238 1597 239 1597 240 1596 240 1596 239 1595 239 1595 239 1596 238 1596 237 1596 237 1596 236 1596 236 1596 235 1596 234 1596 233 1596 233 1595 234 1595 235 1595 239 1593 240 1593 241 1591 242 1590 243 1590 244 1590 244 1590 245 1590 245 1590 245 1590 244 1591 245 1591 245 1591 249 1591 251 1592 252 1593 251 1593 250 1594 249 1594 249 1595 249 1595 249 1595 250 1594 252 1594 252 1594 253 1594 254 1594 254 1593 255 1592 256 1592 256 1592 258 1592 259 1592 258 1593 258 1593 258 1594 259 1595 260 1595 261 1595 261 1595 262 1594 263 1594 264 1593 265 1593 265 1592 263 1591 261 1591 259 1591 258 1591 257 1591 258 1590 259 1590 259 1590 260 1590 260 1590 260 1590 261 1590 261 1590 263 1590 261 1588 260 1588 257 1589 257 1590 256 1590 255 1590 254 1590 254 1590 253 1590 253 1590 249 1590 249 1590 247 1591 247 1591 246 1590 246 1590 246 1589 245 1589 241 1589 241 1589 240 1589 240 1589 239 1590 238 1590 238 1589 237 1589 237 1589 237 1588 238 1588 238 1588 239 1588 240 1588 242 1587 242 1587 240 1586 239 1587 240 1587 239 1587 238 1587 238 1587 237 1586 238 1586 238 1585 238 1585 237 1584 238 1585 237 1585 236 1586 236 1586 234 1585 235 1584 237 1582 238 1582 239 1582 240 1581 240 1581 242 1580 243 1580 244 1579 244 1579 244 1578 243 1578 243 1579 241 1580 240 1580 239 1580 238 1581 237 1581 236 1582 235 1583 235 1583 235 1584 233 1585 233 1585 234 1585 234 1586 234 1587 233 1587 233 1587 232 1587 231 1587 230 1586 229 1586 229 1584 230 1584 228 1583 228 1583 227 1583 227 1583 226 1583 226 1583 226 1583 225 1582 225 1582 225 1581 226 1581 227 1581 227 1580 227 1580 227 1580 225 1579 225 1579 224 1579 224 1579 222 1580 223 1580 222 1580 221 1579 220 1579 221 1577 221 1578 221 1578 222 1578 223 1578 226 1577 226 1577 225 1577 223 1577 223 1576 222 1575 228 1575 229 1575 229 1574 228 1573 228 1573 228 1572 228 1572 228 1571 228 1570 229 1570 230 1570 231 1569 233 1567 235 1566 235 1565 236 1565 238 1564 238 1564 239 1564 240 1564 241 1564 245 1565 245 1566 245 1566 245 1565 243 1564 242 1563 243 1563 244 1563 245 1562 245 1562 246 1562 248 1560 245 1561 244 1562 243 1562 242 1560 241 1560 242 1559 243 1557 244 1557 244 1556 245 1556 247 1556 248 1556 250 1556 250 1556 250 1556 250 1556 250 1555 248 1555 247 1555 246 1554 249 1553 251 1552 251 1552 253 1552 256 1552 260 1553 260 1553 261 1554 262 1554 263 1554 266 1555 266 1556 270 1555 270 1555 273 1554 274 1554 277 1552 278 1552 280 1551 282 1549 283 1548 283 1548 284 1548 286 1548 287 1549 286 1549 285 1549 286 1549 288 1549 292 1549 294 1549 294 1549 296 1549 299 1549 299 1549 300 1548 300 1548 301 1548 301 1548 306 1545 307 1544 307 1544 307 1544 307 1543 307 1542 306 1542 306 1541 305 1541 305 1539 304 1539 304 1539 304 1538 304 1537 304 1537 303 1536 302 1535 301 1535 301 1534 300 1534 297 1533 297 1533 296 1533 296 1534 295 1534 295 1534 296 1532 296 1532 297 1532 298 1532 299 1532 300 1532 300 1532 302 1532 302 1532 303 1532 303 1532 307 1530 307 1530 307 1529 306 1528 304 1527 303 1526 302 1526 302 1526 301 1526 301 1526 302 1526 302 1526 304 1525 303 1525 301 1525 300 1525 299 1526 298 1527 297 1528 297 1528 295 1528 295 1528 293 1528 293 1528 292 1528 292 1528 290 1528 289 1528 289 1529 289 1529 290 1528 290 1528 291 1528 289 1529 289 1529 288 1529 287 1529 286 1529 286 1529 285 1529 284 1530 284 1530 281 1531 280 1531 279 1532 279 1532 278 1532 278 1532 278 1533 278 1533 277 1534 275 1535 275 1535 274 1534 274 1532 272 1531 269 1530 268 1530 267 1530 267 1530 266 1531 267 1531 267 1531 269 1532 270 1532 270 1532 271 1532 271 1532 269 1534 268 1534 268 1534 268 1533 267 1533 267 1533 265 1532 264 1531 263 1531 262 1531 261 1531 258 1531 258 1531 257 1531 257 1531 256 1531 256 1531 254 1531 251 1531 251 1531 250 1531 249 1531 247 1532 246 1532 245 1532 245 1532 245 1532 241 1532 240 1532 241 1533 242 1533 243 1533 243 1533 243 1533 242 1533 241 1533 239 1533 239 1533 238 1533 237 1533 236 1533 235 1533 235 1532 234 1532 234 1532 232 1532 231 1532 229 1532 226 1532 222 1531 221 1531 221 1531 220 1531 220 1531 218 1530 218 1530 217 1530 216 1529 216 1529 216 1527 217 1527 217 1527 217 1526 217 1526 215 1525 215 1525 212 1524 212 1524 212 1524 212 1523 212 1523 211 1523 211 1523 210 1523 209 1523 209 1522 209 1522 208 1521 208 1521 209 1520 209 1520 210 1520 210 1520 210 1520 209 1520 209 1521 209 1521 209 1521 209 1522 211 1522 211 1522 212 1522 213 1522 214 1522 215 1522 215 1522 216 1521 216 1521 218 1520 220 1520 221 1520 221 1520 222 1521 223 1520 221 1520 221 1520 220 1519 220 1519 214 1518 211 1518 210 1518 209 1518 210 1519 211 1519 211 1519 212 1519 211 1519 210 1519 210 1519 209 1518 208 1518 207 1518 206 1518 204 1518 203 1518 201 1518 200 1518 198 1517 198 1517 196 1516 194 1516 193 1515 192 1515 192 1515 191 1515 190 1515 190 1515 190 1514 190 1514 190 1514 190 1513 190 1513 191 1513 193 1512 193 1512 194 1512 194 1513 193 1513 192 1513 192 1513 191 1513 191 1514 191 1514 191 1514 191 1514 192 1514 194 1513 199 1513 200 1513 200 1512 199 1512 199 1512 199 1511 200 1511 201 1511 203 1510 204 1510 204 1511 205 1511 206 1511 207 1510 209 1510 210 1509 209 1509 208 1509 209 1508 212 1507 214 1507 214 1507 219 1506 219 1505 220 1505 220 1505 221 1506 221 1506 222 1506 221 1506 222 1506 223 1506 227 1507 227 1507 228 1507 231 1506 229 1505 228 1505 228 1505 227 1505 226 1505 226 1505 225 1505 226 1504 226 1504 226 1504 227 1503 227 1503 229 1503 232 1502 234 1502 237 1501 238 1501 238 1501 239 1502 244 1500 244 1500 249 1499 250 1499 251 1499 253 1499 257 1499 258 1499 259 1499 260 1499 261 1499 261 1499 261 1499 260 1499 258 1499 258 1499 257 1499 257 1499 257 1499 258 1499 259 1499 259 1499 259 1500 259 1501 259 1501 258 1501 258 1501 257 1502 257 1503 258 1503 258 1504 256 1505 256 1505 255 1505 254 1505 253 1505 255 1505 256 1505 256 1505 257 1506 258 1506 259 1507 260 1507 260 1507 261 1507 262 1507 263 1507 264 1507 266 1507 267 1507 267 1507 269 1507 270 1507 271 1507 275 1507 275 1507 276 1507 279 1508 281 1508 282 1508 282 1508 283 1508 284 1508 284 1507 285 1507 287 1507 288 1508 289 1508 289 1508 290 1509 290 1509 290 1508 291 1507 292 1507 293 1506 293 1506 294 1505 294 1505 294 1504 295 1504 296 1504 297 1504 298 1504 298 1505 299 1505 299 1505 300 1505 301 1505 301 1504 302 1504 302 1505 302 1506 302 1506 301 1506 301 1506 302 1506 302 1506 303 1506 303 1505 303 1505 303 1504 303 1504 302 1503 301 1503 299 1502 296 1502 295 1502 295 1502 292 1502 290 1502 289 1503 290 1504 289 1504 289 1504 288 1503 288 1503 289 1502 289 1502 289 1501 290 1501 290 1501 289 1500 289 1500 289 1500 285 1497 284 1497 284 1497 283 1497 283 1497 281 1497 280 1497 279 1497 277 1495 277 1494 278 1494 279 1494 282 1493 283 1493 286 1496 286 1497 286 1498 289 1499 289 1500 290 1500 291 1500 293 1501 294 1501 294 1501 296 1501 298 1501 299 1500 299 1500 300 1500 300 1500 300 1500 303 1501 303 1501 304 1502 306 1502 307 1502 308 1502 308 1502 309 1502 309 1502 311 1502 315 1502 316 1502 316 1502 316 1500 316 1498 315 1498 314 1498 314 1498 311 1498 311 1499 311 1499 309 1499 308 1499 308 1499 308 1498 307 1498 306 1498 306 1498 306 1498 304 1498 301 1498 301 1498 300 1498 300 1499 300 1499 299 1500 298 1500 297 1500 296 1500 292 1498 290 1498 290 1497 289 1497 289 1496 291 1494 292 1493 293 1493 294 1493 294 1493 294 1493 295 1493 296 1493 295 1493 295 1492 293 1492 292 1492 290 1492 290 1492 289 1492 283 1492 280 1492 280 1492 281 1492 281 1491 282 1490 282 1490 281 1490 281 1490 281 1490 281 1491 280 1491 279 1492 277 1492 277 1492 276 1492 275 1491 275 1492 274 1492 272 1492 271 1492 271 1492 269 1492 268 1491 267 1491 264 1491 261 1491 260 1491 260 1491 259 1490 259 1490 259 1490 259 1489 259 1489 259 1488 259 1488 258 1487 256 1484 256 1484 255 1484 255 1483 254 1483 254 1483 253 1482 252 1482 251 1482 248 1481 247 1480 244 1479 243 1479 243 1479 238 1477 236 1477 236 1476 235 1476 234 1476 234 1476 233 1476 232 1475 231 1475 230 1475 230 1475 229 1475 228 1475 227 1475 226 1475 226 1475 225 1474 225 1474 224 1474 224 1474 223 1474 223 1473 222 1473 222 1473 222 1473 220 1472 220 1472 219 1472 218 1472 218 1471 217 1471 214 1471 213 1471 213 1471 212 1471 211 1471 210 1471 212 1471 216 1470 215 1470 212 1471 212 1471 213 1471 214 1471 215 1471 218 1470 217 1469 219 1468 220 1468 220 1467 220 1465 221 1464 221 1464 220 1463 220 1463 220 1462 220 1462 221 1462 222 1462 226 1462 227 1463 228 1463 232 1463 235 1463 240 1462 243 1462 244 1462 244 1462 247 1462 249 1462 250 1462 250 1462 251 1461 252 1461 253 1461 254 1461 256 1461 257 1460 260 1459 261 1459 262 1458 263 1458 263 1458 263 1458 264 1457 264 1457 266 1456 266 1456 267 1456 267 1456 268 1455 268 1454 268 1454 269 1454 269 1454 267 1456 269 1455 270 1454 270 1452 271 1451 271 1450 272 1450 272 1449 272 1449 272 1449 272 1449 271 1449 271 1448 272 1448 274 1447 275 1447 277 1446 278 1445 279 1445 280 1445 280 1444 282 1443 283 1442 284 1442 284 1442 286 1441 286 1441 287 1441 287 1440 288 1440 288 1440 288 1440 289 1439 290 1439 291 1440 290 1441 290 1442 289 1442 288 1442 288 1441 287 1441 287 1441 286 1442 286 1442 290 1442 291 1442 291 1441 292 1441 293 1440 294 1440 296 1440 298 1440 299 1440 300 1440 301 1440 305 1439 305 1439 306 1439 307 1439 307 1438 312 1437 314 1436 314 1436 314 1436 317 1435 321 1435 321 1436 320 1436 318 1437 318 1437 316 1437 317 1437 318 1437 319 1437 319 1438 320 1439 322 1440 321 1438 322 1437 322 1437 323 1437 324 1437 325 1437 327 1437 329 1436 331 1436 326 1436 325 1436 324 1437 323 1436 322 1435 322 1435 321 1434 320 1434 320 1434 319 1434 319 1434 318 1435 318 1434 319 1434 320 1433 321 1433 322 1433 325 1432 325 1432 327 1431 331 1431 333 1430 332 1431 331 1431 331 1431 330 1431 330 1431 330 1431 332 1431 332 1431 333 1431 333 1431 332 1431 331 1431 331 1432 330 1432 328 1432 329 1432 331 1433 332 1433 334 1432 336 1432 337 1432 338 1432 340 1432 341 1432 342 1432 343 1431 343 1431 345 1431 346 1431 348 1431 349 1431 351 1431 352 1431 353 1431 355 1430 355 1430 359 1429 360 1429 363 1428 364 1427 364 1427 365 1426 366 1426 367 1426 367 1425 367 1425 370 1424 371 1423 371 1423 372 1423 374 1423 375 1424 376 1424 378 1424 379 1424 379 1424 380 1424 381 1424 382 1425 383 1425 384 1425 385 1425 386 1425 386 1425 387 1425 389 1426 390 1426 391 1427 391 1427 388 1428 386 1429 385 1429 384 1429 383 1429 382 1429 381 1430 381 1430 382 1430 382 1430 384 1430 384 1431 384 1431 384 1432 384 1432 385 1432 385 1432 385 1432 385 1431 385 1431 389 1431 389 1431 391 1430 393 1428 395 1428 395 1429 396 1429 396 1429 396 1428 396 1428 395 1427 395 1427 396 1427 398 1426 398 1426 399 1427 399 1428 398 1428 398 1428 399 1428 399 1427 400 1427 401 1427 402 1427 405 1428 406 1428 405 1430 404 1430 405 1431 406 1431 407 1431 409 1431 409 1431 410 1431 410 1431 411 1432 412 1432 413 1432 413 1432 415 1431 416 1431 416 1430 417 1430 417 1430 417 1430 420 1430 421 1430 422 1430 423 1430 425 1430 426 1430 426 1430 427 1430 427 1430 428 1430 428 1430 429 1430 432 1430 435 1431 435 1430 437 1430 437 1430 439 1430 439 1430 440 1430 440 1431 441 1431 443 1431 443 1431 444 1431 441 1433 439 1433 439 1434 440 1435 441 1435 441 1435 444 1435 444 1435 445 1435 445 1435 446 1435 446 1435 446 1435 442 1435 441 1435 439 1435 439 1435 439 1435 437 1436 439 1436 439 1436 442 1436 444 1436 446 1436 446 1436 447 1435 447 1435 451 1436 451 1436 450 1437 449 1437 448 1437 448 1437 449 1437 450 1437 450 1437 451 1437 453 1437 455 1437 456 1438 457 1438 457 1438 458 1438 459 1438 460 1438 460 1438 460 1438 460 1438 460 1437 463 1437 467 1436 469 1436 471 1436 473 1437 473 1438 474 1438 477 1437 480 1437 481 1436 481 1436 486 1436 488 1436 489 1437 489 1437 490 1436 492 1437 494 1437 495 1437 498 1438 498 1438 499 1438 499 1438 500 1438 500 1438 502 1438 503 1439 503 1439 503 1439 505 1439 506 1439 506 1439 507 1439 508 1439 509 1439 509 1439 510 1439 514 1440 515 1441 516 1441 516 1441 517 1441 519 1441 522 1441 523 1441 524 1442 525 1442 527 1442 527 1442 531 1442 534 1441 536 1441 539 1442 540 1442 541 1442 541 1442 542 1442 543 1442 544 1442 545 1442 546 1442 547 1442 548 1443 549 1443 552 1444 556 1444 559 1445 559 1445 559 1445 560 1445 561 1445 564 1445 564 1445 565 1445 565 1445 566 1445 566 1445 567 1444 569 1444 570 1444 572 1444 572 1444 573 1444 574 1443 574 1443 579 1443 580 1443 580 1443 581 1443 583 1443 584 1443 586 1443 586 1443 588 1443 591 1443 593 1443 597 1444 599 1445 600 1446 601 1446 603 1447 603 1447 604 1447 605 1447 605 1447 606 1447 606 1447 608 1448 609 1448 610 1448 611 1448 612 1448 614 1449 614 1449 615 1449 616 1450 616 1450 617 1450 617 1450 618 1450 618 1450 619 1450 619 1450 619 1450 618 1449 619 1449 619 1449 620 1450 623 1450 623 1452 623 1454 623 1461 623 1468 623 1473 623 1475 623 1479 623 1481 623 1484 623 1488 623 1491 623 1494 623 1498 623 1500 623 1507 623 1513 623 1521 623 1522 623 1522 623 1537 623 1541 623 1543 623 1555 623 1561 623 1589 623 1589 623 1598 623 1598 623 1599 624 1599 631 1601 631 1600 631 1600 632 1599 639 1601 639 1601 640 1601 641 1600 643 1599 644 1599 647 1599 654 1599 654 1600 653 1601 652 1602 652 1603 652 1603 653 1604 654 1604 655 1605 660 1606 660 1606 660 1607 660 1607 661 1608 662 1608 663 1609 666 1610 669 1612 672 1614 677 1616 678 1617 678 1618 679 1619 679 1620 679 1621 679 1621 679 1622 679 1622 680 1622 680 1622 681 1621 681 1621 682 1620 682 1620 683 1620 686 1619 687 1619 688 1618 689 1618 690 1617 691 1617 693 1618 693 1618 694 1617 695 1616 695 1615 695 1614 695 1614 695 1613 697 1613 698 1613 699 1612 699 1611 698 1611 697 1611 698 1610 699 1610 700 1610 701 1610 702 1610 704 1609 706 1609 711 1607 711 1607 713 1609 716 1610 716 1610 717 1610 717 1610 719 1611 719 1612 718 1612 718 1613 718 1613 717 1613 717 1613 720 1616 723 1616 724 1616 724 1617 724 1617 726 1618 726 1618 727 1618 729 1619 730 1621 729 1621 731 1622 733 1623 737 1625 738 1625 739 1626 742 1628 744 1629 744 1630 744 1630 744 1630 745 1632 746 1632 747 1633 747 1633 748 1633 749 1634 749 1635 749 1635 750 1636 750 1636 750 1636 751 1637 751 1637 752 1638 753 1638 754 1639 754 1640 754 1640 754 1641 757 1643 759 1645 759 1645 759 1645 761 1646 761 1646 763 1649 762 1649 761 1651 763 1651 766 1652 766 1652 766 1653 765 1654 765 1654 769 1655 769 1657 769 1658 773 1658 773 1658 774 1658 778 1660 778 1660 779 1661 780 1661 780 1661 781 1661 782 1662 784 1662 785 1662 786 1662 787 1662 787 1663 789 1664 790 1664 790 1664 791 1664 791 1664 791 1665 793 1666 795 1667 797 1666 798 1667 798 1668 798 1669 798 1670 798 1670 797 1671 796 1671 796 1672 796 1675 798 1678 799 1680 797 1680 797 1681 796 1681 796 1682 795 1683 795 1684 794 1684 793 1686 791 1687 789 1687 787 1688 787 1687 787 1687 787 1685 787 1686 787 1686 787 1687 786 1688 785 1688 785 1688 784 1688 784 1687 784 1687 784 1686 784 1686 784 1685 784 1685 783 1684 783 1684 783 1683 783 1683 785 1682 786 1682 787 1682 790 1680 791 1679 791 1679 790 1680 790 1680 789 1680 789 1681 787 1682 786 1682 785 1682 784 1682 784 1683 783 1683 782 1683 782 1682 782 1681 782 1681 784 1679 785 1679 786 1679 788 1679 789 1679 788 1679 788 1679 787 1679 785 1679 785 1679 785 1677 785 1676 785 1675 785 1675 785 1674 784 1673 784 1672 782 1671 781 1670 780 1669 780 1668 780 1668 781 1668 782 1667 782 1666 781 1667 780 1667 780 1668 779 1668 777 1669 777 1669 776 1668 775 1668 774 1669 771 1670 771 1670 770 1670 769 1670 768 1670 769 1671 769 1671 770 1671 771 1671 770 1673 769 1674 768 1675 767 1676 767 1676 766 1676 766 1675 765 1675 764 1675 764 1675 764 1674 763 1672 764 1671 765 1671 766 1671 766 1670 766 1669 766 1669 767 1669 768 1669 768 1668 767 1667 767 1667 767 1665 770 1665 769 1665 768 1664 768 1664 768 1664 767 1663 767 1663 767 1662 766 1662 766 1662 764 1661 761 1660 761 1659 761 1659 762 1658 761 1658 760 1658 760 1658 759 1658 758 1658 758 1658 758 1657 759 1656 759 1656 760 1656 761 1655 761 1655 760 1655 759 1656 759 1656 758 1656 757 1656 756 1655 756 1655 754 1655 753 1653 753 1653 754 1653 754 1652 754 1651 753 1651 752 1652 749 1651 748 1650 749 1650 748 1649 747 1650 746 1650 746 1650 745 1650 745 1650 744 1650 744 1650 743 1649 743 1649 743 1648 743 1648 744 1648 746 1648 746 1648 747 1648 749 1647 750 1647 749 1647 747 1647 745 1647 744 1647 744 1646 743 1644 743 1643 744 1643 744 1643 745 1643 746 1643 745 1643 744 1643 743 1643 743 1643 742 1643 741 1643 740 1642 740 1641 742 1641 748 1643 749 1643 749 1644 750 1644 751 1644 749 1643 748 1642 747 1642 746 1642 745 1641 742 1640 742 1640 742 1639 742 1638 744 1638 746 1638 749 1638 748 1638 744 1637 742 1637 742 1637 741 1638 740 1638 741 1639 741 1639 740 1640 740 1639 738 1638 738 1637 739 1636 740 1634 740 1634 739 1634 738 1635 737 1636 737 1636 736 1636 735 1636 735 1635 734 1635 734 1634 733 1633 734 1632 735 1631 735 1630 736 1628 736 1628 737 1628 737 1628 738 1628 738 1628 738 1628 737 1628 737 1628 736 1628 735 1628 734 1630 733 1632 732 1633 732 1633 731 1633 729 1632 727 1631 726 1630 726 1630 726 1630 724 1630 723 1630 722 1629 722 1629 720 1626 719 1626 M 243 1500 243 1500 242 1500 242 1500 239 1501 234 1502 232 1502 232 1502 233 1502 233 1501 237 1501 238 1501 239 1500 243 1500 243 1500 M 220 1505 219 1505 215 1506 214 1506 213 1507 214 1506 216 1506 217 1505 218 1505 218 1505 220 1505 220 1505 221 1505 221 1505 220 1505 M 178 1554 173 1553 172 1553 171 1553 171 1553 168 1555 167 1555 167 1556 166 1556 166 1557 165 1557 165 1557 164 1557 164 1556 164 1555 163 1554 163 1554 161 1554 160 1554 161 1554 160 1554 158 1553 157 1553 156 1553 156 1553 156 1552 156 1552 152 1550 151 1550 150 1550 149 1550 147 1550 147 1549 146 1549 146 1549 144 1549 144 1549 146 1550 146 1550 150 1550 150 1550 151 1551 152 1551 152 1551 153 1551 154 1552 154 1552 155 1552 155 1552 155 1552 154 1552 153 1551 152 1551 151 1550 150 1550 147 1550 146 1550 144 1549 143 1549 142 1549 140 1550 140 1550 139 1550 139 1551 139 1551 137 1551 136 1551 135 1551 133 1550 132 1550 132 1550 131 1550 131 1549 130 1548 130 1547 131 1546 132 1546 132 1546 132 1544 132 1544 133 1544 134 1544 134 1544 133 1545 135 1546 136 1547 138 1547 138 1547 139 1546 138 1546 138 1546 139 1546 139 1546 140 1546 141 1546 142 1547 143 1547 144 1547 145 1547 145 1547 147 1546 148 1546 148 1546 152 1545 152 1545 154 1545 155 1545 155 1545 157 1546 157 1546 157 1546 158 1546 159 1547 159 1547 159 1548 161 1549 162 1549 164 1549 165 1549 166 1550 167 1550 167 1550 167 1551 168 1551 168 1551 169 1551 172 1551 172 1551 173 1551 174 1552 174 1551 175 1551 174 1551 174 1551 173 1551 172 1551 173 1551 175 1551 176 1551 177 1551 180 1551 180 1552 180 1553 179 1554 179 1554 178 1554 178 1554 M 282 1547 281 1548 279 1548 278 1548 277 1547 276 1547 276 1547 276 1547 277 1547 277 1546 277 1546 277 1546 279 1546 281 1546 281 1546 281 1546 282 1547 282 1547 M 511 1589 511 1589 512 1590 512 1590 512 1590 513 1591 512 1591 511 1592 509 1592 509 1591 509 1591 509 1591 509 1590 509 1590 510 1589 510 1589 511 1589 M 509 1592 509 1592 509 1592 510 1593 510 1594 509 1594 509 1594 509 1594 508 1593 507 1593 507 1593 508 1592 508 1592 508 1592 509 1592 509 1592 M 547 1595 544 1596 542 1596 541 1597 539 1597 539 1597 538 1597 538 1597 538 1596 538 1596 538 1596 539 1596 540 1596 541 1596 544 1595 544 1595 547 1594 547 1595 547 1595 547 1595 M 123 1599 123 1599 123 1599 122 1599 122 1599 122 1599 120 1599 120 1599 119 1599 119 1599 118 1599 118 1599 116 1598 116 1598 116 1598 116 1598 114 1597 113 1597 112 1597 112 1596 111 1596 111 1595 112 1595 113 1595 113 1595 113 1595 113 1595 113 1595 113 1595 113 1595 113 1596 114 1596 114 1596 114 1596 114 1596 116 1597 116 1597 118 1598 119 1598 119 1598 119 1598 120 1598 120 1598 121 1598 121 1598 122 1598 122 1598 124 1599 124 1599 124 1599 123 1599 M 517 1597 516 1598 515 1598 516 1598 516 1598 516 1598 517 1598 517 1598 517 1598 517 1598 516 1601 515 1601 515 1602 514 1602 514 1601 513 1600 513 1600 513 1599 513 1598 514 1597 515 1597 516 1596 517 1597 517 1597 517 1597 517 1597 M 542 1598 540 1598 538 1599 538 1599 536 1599 536 1599 535 1599 535 1600 534 1600 534 1600 533 1600 533 1600 532 1600 532 1600 533 1599 533 1599 534 1599 535 1599 535 1598 534 1598 533 1598 533 1598 533 1599 533 1599 533 1599 532 1599 532 1598 532 1598 532 1598 532 1598 532 1598 533 1597 533 1597 534 1596 534 1596 536 1597 537 1597 537 1598 537 1598 538 1598 538 1598 538 1598 540 1597 540 1597 541 1597 541 1597 541 1597 542 1598 542 1598 M 222 1598 222 1598 223 1599 223 1599 224 1599 225 1599 225 1599 226 1599 227 1599 227 1599 228 1599 229 1599 229 1600 229 1601 229 1602 229 1603 229 1604 230 1605 230 1605 231 1604 231 1605 230 1606 230 1606 229 1606 228 1606 227 1606 225 1606 222 1607 221 1606 220 1606 220 1607 221 1607 221 1607 222 1607 222 1608 222 1608 221 1608 221 1608 220 1607 219 1607 217 1607 217 1606 216 1607 214 1607 208 1605 208 1604 206 1604 206 1604 205 1604 203 1603 203 1603 201 1601 201 1601 202 1601 203 1600 203 1600 204 1600 205 1600 206 1601 209 1601 209 1601 210 1601 211 1600 211 1600 213 1599 216 1598 216 1598 217 1598 219 1598 220 1598 221 1597 222 1597 222 1598 M 558 1598 557 1599 557 1599 557 1599 556 1599 555 1599 555 1599 555 1599 557 1598 557 1598 558 1598 558 1598 M 511 1598 511 1599 511 1599 511 1600 511 1600 510 1600 510 1600 509 1600 509 1599 509 1599 509 1599 510 1598 510 1598 511 1598 511 1598 511 1598 511 1598 M 528 1600 528 1600 527 1600 526 1601 525 1601 524 1602 524 1602 523 1602 523 1602 519 1605 519 1605 519 1605 519 1607 516 1607 514 1608 513 1608 513 1608 513 1608 513 1607 513 1607 514 1605 516 1604 517 1604 519 1603 520 1603 520 1603 521 1602 521 1602 521 1602 522 1601 524 1600 524 1599 524 1599 524 1599 525 1598 525 1598 525 1598 526 1598 528 1599 528 1600 M 511 1601 510 1602 510 1602 510 1603 509 1603 509 1604 508 1604 507 1604 507 1604 507 1604 506 1604 506 1603 508 1602 510 1601 511 1601 511 1601 M 513 1603 512 1603 509 1604 509 1604 509 1604 510 1603 512 1602 513 1602 513 1603 M 514 1603 514 1604 514 1604 513 1604 513 1604 512 1605 512 1605 511 1605 510 1605 510 1605 511 1605 511 1604 513 1603 514 1603 514 1603 514 1603 514 1603 M 571 1604 571 1604 570 1605 570 1605 568 1606 568 1606 568 1606 566 1607 566 1607 566 1607 565 1607 566 1606 567 1606 567 1606 568 1605 569 1605 569 1605 571 1604 571 1604 571 1604 572 1604 571 1604 571 1604 M 425 1614 426 1614 426 1614 425 1615 425 1615 425 1615 423 1615 423 1615 423 1615 422 1615 422 1614 423 1614 424 1614 424 1614 425 1614 425 1614 M 469 1614 469 1614 469 1614 469 1615 469 1615 469 1615 468 1615 468 1615 467 1615 467 1615 468 1614 468 1614 469 1614 469 1614 469 1614 469 1614 M 302 1626 303 1625 303 1625 304 1624 304 1624 305 1624 306 1624 306 1624 307 1624 307 1623 308 1623 308 1623 305 1627 305 1627 305 1627 304 1627 304 1627 302 1627 302 1627 302 1626 M 442 1627 441 1627 440 1628 440 1628 440 1628 439 1629 439 1629 439 1629 439 1628 437 1628 437 1628 437 1627 438 1627 440 1626 441 1626 441 1626 441 1626 442 1626 442 1626 442 1627 M 436 1635 435 1636 435 1636 434 1636 433 1636 431 1635 431 1635 431 1635 430 1635 429 1634 429 1634 429 1634 428 1634 428 1633 428 1633 428 1633 428 1633 428 1633 430 1633 431 1633 433 1633 433 1633 432 1633 431 1633 430 1632 430 1632 430 1631 431 1631 431 1631 434 1632 435 1630 435 1630 436 1629 437 1628 437 1628 438 1629 441 1630 442 1629 442 1629 443 1629 447 1631 448 1631 448 1632 448 1632 447 1633 446 1633 446 1634 446 1634 445 1634 444 1633 444 1633 444 1633 444 1633 443 1632 443 1632 442 1632 442 1632 441 1633 442 1634 443 1634 443 1634 441 1634 439 1634 438 1634 438 1634 437 1635 437 1635 436 1635 M 737 1644 737 1645 735 1644 734 1644 734 1645 735 1645 736 1645 737 1646 736 1647 735 1647 734 1647 734 1646 732 1646 733 1647 733 1648 732 1649 727 1652 726 1652 725 1651 725 1650 725 1648 727 1646 729 1647 730 1647 729 1646 729 1646 727 1646 726 1645 726 1645 726 1644 726 1644 727 1644 729 1643 729 1643 727 1644 727 1644 726 1644 726 1644 725 1643 725 1643 725 1643 724 1642 723 1641 723 1640 724 1640 724 1639 722 1634 720 1633 719 1631 719 1630 720 1630 722 1631 723 1633 724 1633 724 1634 725 1634 725 1633 726 1633 728 1633 728 1634 729 1634 729 1634 730 1634 731 1633 732 1634 732 1634 733 1635 733 1636 735 1637 736 1639 736 1640 737 1641 736 1642 735 1641 735 1640 735 1640 734 1639 733 1639 733 1638 732 1637 732 1636 732 1636 731 1635 730 1635 730 1636 730 1638 731 1638 732 1639 735 1642 736 1643 736 1644 736 1644 737 1644 M 726 1631 727 1631 727 1631 727 1631 730 1633 731 1633 730 1633 729 1633 728 1633 728 1633 728 1633 727 1633 727 1633 727 1633 726 1633 725 1633 725 1632 725 1632 725 1632 724 1632 724 1631 724 1631 724 1631 725 1631 726 1631 726 1631 726 1631 M 717 1640 716 1640 715 1640 714 1639 713 1639 710 1638 707 1637 706 1636 705 1636 705 1636 706 1637 707 1637 708 1638 710 1638 713 1639 713 1639 714 1640 714 1640 715 1641 716 1640 717 1640 718 1640 719 1640 720 1640 720 1640 721 1643 721 1645 719 1645 718 1645 717 1644 717 1644 714 1643 711 1642 710 1641 709 1641 708 1641 708 1641 708 1640 707 1640 707 1640 706 1640 708 1642 710 1643 710 1644 710 1645 709 1645 708 1646 707 1646 705 1646 704 1645 703 1644 703 1644 704 1644 705 1644 705 1645 706 1645 706 1645 706 1645 705 1644 704 1644 704 1644 702 1643 702 1642 703 1642 704 1642 703 1642 702 1642 701 1641 700 1640 697 1639 697 1639 696 1639 697 1637 697 1637 697 1636 698 1636 699 1637 702 1639 702 1639 702 1638 701 1638 700 1637 697 1635 696 1635 696 1635 696 1634 697 1633 698 1633 699 1634 700 1635 700 1633 701 1633 703 1633 704 1632 706 1632 706 1632 707 1632 709 1633 711 1633 711 1634 711 1634 709 1635 708 1635 708 1635 706 1635 707 1636 708 1637 709 1637 710 1636 710 1636 711 1635 712 1634 712 1634 717 1635 720 1636 720 1636 720 1636 720 1637 719 1638 718 1638 716 1637 716 1637 716 1638 717 1638 717 1638 718 1638 718 1638 719 1639 719 1640 718 1640 717 1640 717 1640 M 427 1634 427 1634 428 1634 428 1635 430 1636 432 1636 433 1636 433 1636 433 1636 432 1636 432 1636 431 1636 431 1636 430 1636 428 1636 426 1635 426 1636 425 1635 425 1635 426 1634 426 1634 427 1634 427 1634 427 1634 M 696 1635 697 1635 697 1636 698 1636 697 1636 697 1636 697 1637 697 1637 696 1638 696 1638 696 1639 694 1637 694 1637 694 1636 694 1635 695 1635 695 1635 696 1635 M 422 1643 422 1642 421 1642 420 1641 420 1641 419 1641 419 1641 418 1641 417 1641 416 1640 416 1640 416 1639 417 1639 419 1638 420 1638 421 1638 422 1639 422 1639 422 1640 423 1641 423 1642 423 1642 426 1640 425 1639 424 1639 424 1639 424 1639 428 1639 428 1639 429 1638 430 1639 430 1639 428 1637 428 1637 428 1637 427 1637 427 1636 427 1636 428 1636 428 1637 429 1637 431 1637 431 1637 432 1637 434 1637 434 1638 434 1638 433 1638 433 1639 433 1640 433 1640 434 1640 433 1639 434 1639 434 1638 436 1638 437 1637 438 1637 439 1638 440 1638 442 1639 442 1639 441 1639 440 1640 440 1640 440 1640 438 1641 440 1642 440 1642 441 1642 442 1642 445 1642 445 1642 444 1643 442 1645 441 1645 439 1645 437 1645 436 1644 432 1644 431 1645 431 1645 431 1645 432 1645 434 1645 434 1645 435 1645 437 1646 438 1646 437 1647 436 1648 436 1648 434 1648 434 1648 433 1647 433 1647 429 1647 428 1647 430 1647 430 1647 431 1647 431 1647 432 1648 432 1648 432 1648 430 1649 430 1649 429 1649 429 1649 427 1648 426 1649 425 1649 425 1649 424 1650 423 1651 422 1651 422 1651 422 1651 420 1651 419 1651 420 1651 422 1651 422 1652 422 1653 421 1653 420 1654 419 1655 417 1656 416 1656 416 1656 413 1656 413 1655 414 1655 416 1654 417 1653 418 1653 418 1653 418 1652 418 1652 417 1652 417 1652 417 1653 416 1653 416 1653 416 1652 417 1651 418 1651 419 1650 419 1650 416 1651 415 1652 415 1652 414 1652 414 1653 414 1653 413 1652 414 1651 414 1651 414 1651 415 1650 413 1650 413 1650 411 1650 410 1650 410 1650 408 1650 408 1651 408 1651 408 1651 409 1651 410 1651 410 1651 410 1651 411 1650 411 1650 414 1650 414 1651 413 1653 411 1654 411 1654 411 1654 410 1654 410 1653 410 1653 409 1653 409 1653 408 1652 407 1652 407 1652 407 1651 407 1651 407 1650 407 1649 406 1648 404 1648 404 1648 403 1648 403 1648 404 1645 405 1644 405 1644 407 1643 410 1642 411 1641 412 1641 415 1642 415 1642 416 1644 417 1644 417 1645 417 1645 417 1645 417 1646 418 1647 419 1647 419 1647 420 1647 421 1648 421 1647 421 1647 419 1647 418 1646 418 1643 417 1642 419 1642 421 1642 421 1642 422 1643 M 424 1637 426 1637 427 1638 427 1638 428 1638 428 1639 428 1639 428 1639 428 1639 427 1639 427 1639 427 1639 424 1638 423 1637 423 1637 424 1637 424 1637 424 1637 M 717 1659 717 1659 716 1657 716 1657 716 1656 717 1655 716 1655 716 1655 715 1655 715 1656 714 1655 713 1655 713 1653 713 1651 713 1651 712 1649 713 1649 713 1648 711 1648 711 1648 710 1648 709 1647 708 1647 708 1646 709 1646 710 1646 711 1646 710 1645 711 1644 712 1643 712 1643 712 1643 713 1643 716 1644 719 1646 720 1646 721 1648 722 1649 722 1650 723 1652 724 1654 724 1655 725 1656 725 1657 725 1658 725 1659 725 1659 725 1661 725 1662 725 1664 724 1665 723 1665 721 1663 719 1661 718 1660 718 1659 719 1659 720 1658 721 1657 721 1657 718 1658 717 1659 M 722 1646 722 1646 722 1646 722 1647 722 1647 722 1647 722 1647 721 1647 719 1646 720 1645 721 1645 721 1645 722 1645 722 1646 M 708 1647 708 1647 709 1647 709 1648 709 1648 710 1648 710 1648 710 1650 710 1651 709 1652 707 1652 706 1652 706 1652 705 1652 706 1651 706 1651 706 1650 707 1650 707 1650 707 1650 707 1649 707 1649 706 1649 706 1649 705 1647 705 1647 707 1647 707 1647 708 1647 M 155 1650 155 1650 155 1650 155 1650 155 1650 154 1650 153 1650 153 1649 153 1649 153 1649 154 1649 155 1649 157 1648 157 1649 157 1649 156 1650 155 1650 M 433 1650 433 1650 430 1651 428 1651 428 1652 428 1652 427 1652 426 1652 426 1652 425 1651 425 1651 427 1649 428 1649 428 1649 428 1649 432 1649 432 1649 433 1650 433 1650 433 1650 M 750 1652 751 1653 752 1654 752 1656 752 1658 752 1658 751 1658 751 1658 749 1657 748 1657 747 1656 747 1656 747 1655 745 1655 745 1656 746 1656 748 1658 749 1658 749 1658 749 1659 749 1660 749 1661 748 1661 748 1661 746 1661 744 1660 743 1661 743 1661 742 1661 740 1661 740 1661 740 1660 741 1659 740 1658 740 1658 739 1657 740 1656 740 1655 740 1655 739 1655 737 1654 737 1654 737 1654 738 1654 739 1654 739 1654 737 1653 734 1652 735 1651 736 1651 737 1651 739 1651 741 1651 743 1652 744 1652 746 1652 746 1652 748 1652 749 1652 750 1652 M 737 1664 736 1663 736 1663 736 1662 735 1662 735 1663 735 1663 735 1663 735 1663 735 1664 735 1664 735 1664 736 1664 736 1664 736 1664 736 1664 736 1664 736 1664 737 1665 736 1666 736 1667 735 1667 735 1667 734 1667 734 1666 734 1666 735 1665 734 1664 734 1663 734 1663 734 1663 733 1666 733 1667 733 1668 733 1668 733 1668 732 1668 731 1667 730 1664 731 1664 731 1664 731 1663 731 1663 731 1663 730 1662 731 1661 732 1661 733 1662 734 1662 734 1662 734 1662 734 1662 734 1661 734 1660 734 1659 734 1659 733 1659 732 1659 730 1659 728 1657 728 1657 728 1655 728 1655 728 1654 730 1654 730 1654 730 1654 731 1654 731 1654 731 1654 732 1654 732 1654 733 1655 733 1655 733 1654 732 1654 732 1654 732 1654 731 1654 731 1653 731 1653 732 1653 733 1653 734 1654 735 1654 735 1654 736 1655 736 1656 736 1657 735 1658 735 1658 734 1658 734 1658 735 1658 735 1658 735 1658 736 1658 736 1657 737 1657 737 1656 737 1656 737 1656 737 1656 737 1656 737 1655 737 1655 739 1656 739 1656 739 1658 740 1659 739 1659 739 1659 739 1659 738 1659 738 1659 738 1659 738 1659 738 1658 737 1658 736 1658 736 1658 736 1658 736 1658 737 1660 737 1661 737 1662 737 1663 737 1663 737 1664 737 1664 M 754 1655 755 1656 756 1657 757 1658 758 1658 758 1658 758 1659 758 1659 758 1659 758 1659 757 1659 756 1660 754 1660 754 1660 752 1660 752 1660 752 1660 752 1660 751 1659 752 1658 752 1658 753 1658 752 1658 752 1657 752 1656 753 1655 754 1655 M 166 1659 166 1659 165 1659 164 1659 163 1658 163 1658 164 1658 164 1658 165 1658 166 1658 166 1658 167 1658 167 1658 168 1658 168 1659 168 1659 167 1659 166 1659 M 414 1658 414 1659 414 1659 414 1659 412 1660 412 1660 411 1660 411 1660 411 1660 410 1660 410 1660 410 1659 410 1659 410 1659 411 1659 411 1658 412 1658 412 1658 414 1658 414 1658 M 409 1659 409 1659 409 1659 409 1659 409 1659 409 1659 408 1660 408 1660 408 1659 409 1659 408 1659 408 1659 408 1659 407 1659 407 1659 407 1659 407 1659 407 1659 407 1660 407 1660 406 1660 406 1660 405 1661 404 1661 404 1662 404 1662 404 1662 403 1662 403 1661 403 1661 403 1661 403 1660 403 1660 404 1660 405 1659 406 1659 406 1659 407 1658 407 1658 408 1658 408 1659 409 1659 M 364 1659 365 1659 366 1659 366 1659 367 1659 368 1659 367 1660 367 1659 367 1659 366 1659 366 1659 365 1659 365 1659 364 1660 362 1660 362 1659 363 1659 363 1659 363 1659 363 1659 364 1659 M 417 1659 417 1659 417 1660 416 1660 416 1660 414 1660 414 1660 413 1660 414 1660 414 1659 415 1659 415 1659 416 1659 417 1659 417 1659 417 1659 M 766 1666 765 1665 765 1665 764 1665 764 1665 763 1665 763 1665 763 1665 763 1665 762 1665 762 1664 762 1664 761 1664 761 1664 761 1664 761 1663 761 1663 761 1663 761 1662 761 1661 761 1661 761 1660 761 1660 761 1660 763 1661 763 1661 763 1661 763 1662 763 1662 764 1662 765 1663 765 1663 765 1662 765 1662 766 1662 767 1663 767 1663 767 1663 768 1664 767 1666 766 1666 M 753 1664 753 1664 753 1664 752 1664 750 1663 750 1662 751 1661 752 1661 752 1661 752 1661 755 1661 755 1661 755 1661 756 1661 756 1661 756 1661 757 1661 757 1662 757 1663 756 1664 756 1664 756 1664 755 1664 755 1664 754 1664 753 1664 M 762 1669 760 1669 760 1669 760 1668 760 1668 760 1667 757 1667 757 1667 757 1667 757 1667 757 1667 756 1666 756 1666 755 1666 755 1666 756 1665 756 1664 758 1664 758 1663 758 1663 758 1663 759 1663 760 1662 760 1662 760 1663 761 1663 761 1663 761 1664 760 1665 763 1665 764 1665 765 1666 765 1666 764 1667 765 1669 765 1669 765 1669 764 1669 762 1669 762 1669 M 764 1677 763 1676 761 1676 760 1675 760 1675 759 1675 759 1675 758 1674 758 1674 758 1675 759 1676 762 1677 765 1680 765 1680 764 1680 763 1680 763 1680 763 1681 763 1681 765 1681 766 1681 766 1680 766 1680 767 1680 767 1680 767 1681 767 1682 766 1683 765 1683 765 1683 764 1684 764 1684 763 1684 764 1685 765 1684 766 1684 766 1684 767 1684 767 1687 767 1689 765 1689 762 1689 762 1688 762 1688 763 1687 763 1687 763 1687 763 1687 762 1686 761 1686 759 1684 759 1685 758 1685 758 1685 758 1685 757 1685 757 1683 758 1683 758 1683 758 1682 756 1680 756 1681 757 1681 757 1681 757 1682 756 1682 756 1682 754 1681 754 1681 754 1680 752 1681 751 1681 750 1681 751 1680 752 1680 751 1680 750 1680 747 1680 747 1679 747 1678 749 1678 750 1678 751 1678 752 1679 753 1678 752 1678 752 1678 751 1678 751 1678 751 1678 750 1678 749 1677 749 1676 749 1676 750 1675 751 1674 751 1674 751 1674 752 1674 751 1674 750 1674 749 1674 748 1675 747 1675 745 1674 745 1674 745 1673 746 1672 747 1672 748 1671 748 1670 748 1670 747 1670 747 1670 747 1669 746 1666 746 1665 745 1665 744 1665 742 1665 741 1665 741 1664 741 1662 741 1662 743 1663 745 1663 747 1663 748 1663 750 1664 750 1665 750 1666 749 1666 749 1666 750 1667 750 1667 752 1667 752 1667 754 1668 757 1669 758 1671 759 1671 759 1672 760 1673 760 1674 763 1675 763 1675 763 1676 764 1676 764 1676 764 1676 764 1677 764 1677 M 746 1666 746 1667 745 1668 743 1668 741 1669 741 1669 740 1670 738 1669 738 1669 738 1669 738 1669 738 1668 740 1667 741 1666 742 1666 744 1666 744 1666 746 1666 746 1666 746 1666 746 1666 M 776 1680 776 1680 776 1680 775 1680 775 1679 776 1679 777 1679 778 1677 778 1677 778 1676 777 1674 777 1674 777 1675 777 1675 777 1676 778 1677 777 1677 776 1678 775 1679 776 1678 776 1678 776 1678 775 1677 775 1676 776 1676 775 1676 774 1676 775 1677 775 1678 775 1678 774 1679 774 1679 772 1679 772 1678 771 1678 770 1677 771 1676 772 1674 771 1674 772 1673 773 1672 773 1672 772 1671 772 1671 774 1670 774 1670 775 1669 776 1669 778 1669 778 1669 779 1669 779 1669 780 1670 782 1671 782 1671 784 1674 784 1675 783 1678 782 1680 781 1680 781 1680 780 1680 780 1681 779 1681 779 1681 778 1680 778 1680 779 1680 779 1680 779 1679 780 1678 780 1678 779 1678 778 1678 778 1678 779 1679 778 1680 777 1680 776 1680 M 733 1670 733 1670 733 1670 732 1670 731 1670 731 1670 731 1671 731 1671 730 1671 730 1670 729 1669 730 1669 733 1669 733 1669 733 1670 M 390 1669 390 1671 390 1671 390 1671 390 1672 390 1672 388 1671 387 1671 389 1669 390 1669 390 1669 390 1669 390 1669 M 747 1670 747 1670 747 1671 747 1671 747 1671 747 1672 747 1672 746 1671 745 1670 746 1670 746 1670 747 1670 M 338 1670 339 1670 339 1670 340 1671 340 1671 340 1671 338 1671 338 1671 337 1671 337 1671 337 1671 337 1670 338 1670 338 1670 338 1670 M 746 1671 746 1671 746 1672 743 1673 743 1673 742 1673 742 1673 742 1673 741 1673 741 1673 741 1672 741 1672 740 1672 740 1672 740 1671 741 1671 741 1671 742 1671 742 1671 745 1671 746 1671 M 746 1676 746 1676 746 1676 746 1676 745 1677 744 1676 744 1675 744 1675 745 1675 745 1675 746 1675 746 1675 746 1676 M 740 1677 740 1677 739 1677 739 1677 739 1677 739 1676 739 1675 739 1675 739 1675 740 1675 741 1675 741 1676 741 1676 741 1677 740 1677 M 743 1676 744 1676 744 1676 744 1677 744 1677 744 1677 744 1677 743 1677 743 1677 742 1677 742 1677 741 1677 741 1677 743 1676 743 1676 743 1676 M 317 1677 317 1678 314 1678 314 1678 314 1677 314 1677 314 1677 315 1677 315 1677 316 1677 317 1677 M 744 1678 744 1678 743 1678 742 1679 741 1680 741 1680 740 1680 740 1680 740 1679 740 1678 741 1678 741 1677 742 1677 742 1677 744 1677 744 1678 M 770 1677 771 1678 772 1679 772 1679 773 1679 773 1679 773 1680 771 1682 771 1682 770 1681 770 1681 770 1681 769 1681 769 1680 769 1679 769 1678 769 1677 769 1677 769 1677 770 1677 M 308 1678 309 1678 311 1678 311 1678 311 1678 311 1678 311 1678 311 1679 310 1679 310 1679 310 1679 310 1680 310 1680 311 1680 311 1681 312 1681 311 1681 311 1682 309 1682 309 1681 307 1682 306 1682 306 1682 306 1681 306 1680 306 1679 307 1678 307 1678 307 1678 308 1678 308 1678 M 314 1678 314 1679 314 1680 314 1680 314 1680 312 1679 311 1679 311 1679 311 1678 314 1678 314 1678 314 1678 M 746 1679 747 1680 747 1680 747 1681 747 1681 746 1681 744 1681 744 1681 744 1681 744 1680 744 1680 743 1680 744 1679 744 1679 745 1679 746 1679 746 1679 M 321 1680 322 1680 322 1680 322 1681 322 1682 321 1682 321 1682 319 1683 317 1684 317 1685 317 1685 316 1686 316 1686 316 1686 316 1686 316 1686 316 1685 316 1685 317 1685 317 1684 317 1683 317 1683 316 1682 318 1682 318 1682 318 1682 318 1682 318 1682 319 1682 320 1681 320 1681 320 1680 321 1680 321 1679 321 1680 M 775 1680 775 1680 775 1680 776 1681 776 1681 776 1681 777 1681 777 1682 777 1683 777 1683 777 1684 776 1684 773 1684 773 1684 773 1684 773 1684 773 1683 774 1681 773 1681 773 1680 773 1680 774 1680 774 1680 775 1680 775 1680 M 749 1680 750 1681 751 1682 751 1683 751 1683 751 1683 752 1685 753 1686 753 1686 753 1686 755 1687 755 1687 756 1689 756 1689 756 1689 753 1689 753 1688 752 1687 751 1687 751 1687 751 1687 749 1685 748 1683 747 1683 748 1680 748 1680 749 1680 749 1680 M 327 1680 327 1681 327 1682 327 1683 325 1683 325 1683 325 1682 327 1680 327 1680 327 1680 M 754 1681 755 1682 756 1683 756 1683 755 1684 754 1684 753 1684 753 1682 753 1681 753 1681 754 1681 M 292 1682 293 1682 293 1682 293 1682 292 1683 291 1683 291 1683 289 1682 289 1682 290 1681 290 1681 290 1681 290 1681 292 1682 292 1682 M 329 1683 330 1683 330 1683 330 1684 329 1685 329 1685 328 1685 328 1685 328 1685 328 1684 328 1683 328 1683 328 1683 329 1683 M 253 1690 252 1690 252 1691 251 1691 251 1691 251 1691 250 1692 250 1692 250 1692 249 1693 249 1693 248 1693 245 1694 243 1694 242 1693 242 1693 241 1692 240 1691 241 1690 242 1690 243 1690 243 1690 244 1690 244 1689 245 1689 245 1688 247 1687 247 1686 248 1685 249 1685 250 1685 250 1686 251 1686 252 1686 255 1684 256 1684 256 1684 257 1684 259 1683 263 1683 265 1685 265 1685 265 1686 265 1687 266 1687 266 1688 267 1688 267 1688 268 1688 268 1688 269 1688 271 1689 269 1689 267 1689 266 1689 265 1689 263 1690 262 1690 261 1690 261 1690 260 1690 259 1690 259 1690 255 1690 255 1690 254 1690 254 1690 253 1690 253 1690 M 779 1684 779 1684 779 1685 779 1685 779 1685 780 1685 779 1686 777 1686 777 1686 777 1686 775 1685 775 1685 775 1685 775 1685 775 1685 779 1684 779 1684 779 1684 M 284 1685 284 1685 284 1685 284 1685 284 1686 284 1686 283 1686 283 1686 283 1686 283 1687 283 1687 282 1687 282 1686 282 1686 281 1686 281 1686 281 1686 281 1686 281 1686 281 1685 281 1685 281 1685 281 1685 282 1685 282 1684 282 1684 283 1684 283 1684 284 1684 284 1685 M 757 1686 757 1686 757 1688 757 1688 757 1688 756 1688 756 1688 754 1686 754 1686 754 1686 754 1685 755 1685 757 1686 757 1686 757 1686 M 275 1692 278 1693 279 1693 279 1693 279 1694 278 1694 277 1694 276 1694 275 1694 275 1693 275 1693 275 1693 274 1693 274 1692 274 1692 275 1692 275 1692 275 1692 M 230 1698 230 1698 230 1698 229 1696 229 1696 230 1695 231 1695 232 1695 232 1697 232 1697 231 1698 231 1698 230 1698 M 225 1700 225 1699 225 1699 224 1699 224 1699 223 1699 223 1699 222 1698 222 1697 222 1697 224 1697 225 1696 229 1698 229 1698 229 1699 228 1699 227 1699 227 1699 226 1699 225 1700 M 240 1698 240 1698 241 1698 241 1698 241 1698 240 1699 240 1699 239 1699 238 1699 238 1699 236 1699 236 1699 236 1698 237 1698 238 1698 238 1698 239 1698 239 1698 240 1698 240 1698 M 219 1705 219 1705 217 1705 215 1706 214 1707 213 1708 212 1709 210 1709 208 1709 208 1709 205 1709 202 1711 200 1712 199 1712 197 1712 195 1712 194 1711 196 1710 197 1710 198 1710 199 1710 200 1710 200 1709 200 1709 202 1709 203 1709 205 1709 206 1708 205 1707 205 1706 205 1706 206 1706 206 1706 207 1706 207 1706 207 1705 207 1705 209 1705 211 1706 211 1705 211 1704 208 1704 208 1704 208 1704 207 1704 205 1703 205 1702 206 1701 207 1701 212 1700 213 1700 214 1700 214 1700 214 1701 214 1701 213 1701 213 1702 214 1703 216 1702 217 1701 217 1700 218 1700 219 1700 220 1701 220 1702 219 1702 217 1703 216 1703 215 1704 214 1705 215 1705 215 1705 216 1704 217 1704 218 1704 219 1705 219 1705 219 1705 M 220 1705 220 1705 220 1705 219 1704 219 1704 219 1704 219 1704 219 1703 220 1703 221 1703 222 1702 222 1703 222 1704 220 1705 220 1705 M 195 1708 194 1710 194 1710 194 1710 190 1712 189 1712 189 1712 188 1712 188 1712 187 1712 187 1712 186 1713 186 1713 186 1714 184 1715 184 1715 182 1716 178 1718 175 1719 175 1719 174 1719 175 1718 176 1717 177 1717 178 1717 178 1717 179 1715 179 1715 179 1715 179 1714 179 1714 179 1714 179 1714 180 1713 180 1713 182 1712 182 1712 182 1712 183 1712 183 1712 183 1712 185 1712 186 1712 186 1712 186 1711 185 1710 185 1709 186 1708 188 1708 190 1707 192 1707 194 1708 195 1708 M 5637 1720 5637 1719 5635 1718 5635 1718 5634 1718 5632 1718 5630 1717 5630 1717 5631 1717 5631 1717 5632 1716 5633 1716 5635 1716 5636 1716 5639 1716 5640 1716 5640 1716 5643 1717 5643 1717 5643 1718 5644 1718 5645 1718 5645 1719 5645 1719 5643 1719 5641 1719 5640 1719 5638 1719 5637 1720 5637 1720 M 160 1719 160 1718 160 1718 162 1718 163 1718 164 1718 164 1718 164 1718 165 1718 165 1718 165 1719 164 1720 164 1720 164 1720 164 1720 162 1719 161 1719 160 1719 160 1719 160 1719 160 1719 160 1719 M 147 1723 146 1723 146 1723 146 1723 147 1722 148 1721 149 1721 150 1721 150 1721 150 1721 151 1721 151 1722 150 1722 150 1723 150 1723 149 1723 149 1723 149 1723 148 1723 148 1723 148 1723 147 1723 147 1723 M 5649 1726 5649 1726 5648 1726 5648 1726 5647 1726 5647 1726 5647 1726 5646 1726 5644 1726 5645 1725 5645 1725 5648 1724 5649 1724 5650 1724 5651 1724 5650 1726 5650 1726 5649 1726 M 89 1731 89 1731 86 1732 84 1732 84 1732 84 1732 83 1732 82 1731 82 1731 80 1731 80 1732 80 1732 79 1732 78 1732 77 1732 76 1732 75 1732 75 1732 75 1732 77 1731 80 1731 80 1731 80 1731 81 1730 81 1730 83 1730 85 1730 86 1730 88 1730 88 1730 88 1730 87 1730 87 1730 87 1729 87 1729 89 1729 89 1729 90 1729 90 1729 90 1729 90 1729 91 1729 91 1729 92 1728 92 1728 92 1728 90 1727 90 1728 89 1727 89 1727 89 1727 89 1727 90 1726 93 1725 93 1725 95 1726 95 1726 96 1727 96 1727 94 1730 92 1730 91 1730 90 1730 89 1731 M 119 1728 118 1728 118 1728 118 1727 118 1727 119 1727 120 1726 120 1726 121 1726 121 1726 123 1726 123 1726 123 1727 123 1727 122 1727 122 1727 121 1727 120 1728 120 1728 119 1728 M 104 1732 104 1732 103 1731 101 1731 101 1731 100 1731 99 1731 98 1731 97 1731 95 1730 95 1730 95 1730 99 1730 99 1730 99 1730 100 1730 102 1730 102 1730 102 1730 103 1730 103 1730 104 1730 105 1730 106 1730 107 1730 108 1730 109 1730 109 1730 110 1730 111 1730 112 1731 111 1731 109 1731 109 1731 108 1731 108 1731 104 1731 104 1732 M 5707 1735 5707 1734 5706 1734 5706 1734 5708 1732 5708 1732 5710 1732 5710 1731 5711 1730 5711 1730 5712 1730 5712 1730 5713 1730 5713 1731 5712 1733 5711 1733 5710 1733 5710 1733 5709 1733 5709 1733 5708 1733 5708 1733 5708 1734 5708 1734 5707 1735 M 63 1733 63 1732 61 1732 61 1731 61 1731 61 1731 61 1730 61 1730 62 1730 63 1730 63 1730 64 1731 64 1732 63 1733 63 1733 M 5744 1734 5744 1734 5743 1734 5743 1734 5742 1733 5742 1733 5742 1732 5744 1731 5744 1731 5745 1732 5746 1732 5746 1733 5746 1733 5746 1733 5744 1734 M 5726 1734 5726 1734 5726 1734 5726 1733 5725 1733 5726 1732 5726 1732 5727 1732 5727 1733 5728 1733 5728 1733 5727 1734 5727 1734 5726 1734 M 49 1739 49 1738 48 1738 48 1738 48 1737 50 1736 51 1735 51 1733 52 1733 52 1733 52 1733 54 1732 55 1732 55 1732 55 1732 55 1733 55 1733 55 1733 55 1733 54 1734 54 1734 54 1735 55 1735 55 1735 56 1734 57 1735 57 1735 57 1736 57 1736 56 1736 55 1736 53 1737 52 1737 49 1738 49 1739 M 38 1738 38 1738 37 1737 37 1737 38 1736 38 1736 38 1736 39 1736 39 1736 40 1736 43 1736 44 1735 45 1735 45 1735 45 1734 45 1734 45 1733 45 1733 45 1733 46 1733 46 1733 46 1733 47 1733 47 1733 47 1734 46 1735 46 1736 45 1737 44 1737 44 1737 43 1737 43 1737 42 1736 42 1736 41 1736 38 1737 38 1737 38 1738 M 33 1738 33 1738 31 1737 30 1737 30 1737 31 1737 31 1737 31 1737 32 1737 33 1736 33 1736 33 1736 33 1736 33 1736 31 1735 29 1734 28 1734 28 1734 29 1734 29 1733 30 1733 30 1733 33 1733 33 1733 34 1734 35 1735 35 1735 35 1736 34 1737 33 1737 33 1738 33 1738 M 62 1736 62 1736 61 1735 60 1735 60 1735 61 1734 61 1734 61 1734 64 1734 64 1735 64 1735 64 1735 63 1735 62 1735 61 1735 62 1735 62 1736 M 59 1736 58 1736 58 1736 58 1736 58 1736 57 1736 57 1734 58 1734 59 1734 59 1734 59 1734 60 1735 60 1735 59 1736 59 1736 M 5738 1742 5735 1740 5734 1740 5734 1739 5733 1739 5732 1739 5732 1739 5731 1739 5730 1739 5729 1739 5729 1738 5728 1738 5728 1738 5729 1737 5729 1737 5729 1738 5730 1738 5732 1738 5732 1738 5733 1738 5734 1739 5734 1739 5734 1739 5735 1739 5735 1740 5738 1741 5739 1741 5740 1741 5741 1742 5742 1742 5741 1742 5740 1742 5740 1742 5739 1742 5738 1742 5738 1742 M 1661 1979 1660 1979 1661 1980 1661 1981 1662 1982 1662 1982 1663 1983 1664 1986 1664 1986 1663 1986 1662 1983 1661 1983 1661 1983 1662 1984 1662 1985 1662 1985 1661 1985 1661 1984 1660 1984 1659 1983 1658 1982 1658 1983 1658 1983 1659 1983 1660 1984 1660 1985 1660 1985 1658 1986 1657 1986 1656 1985 1655 1985 1655 1986 1655 1986 1653 1987 1653 1987 1651 1987 1650 1986 1650 1986 1649 1985 1650 1984 1650 1984 1649 1984 1649 1984 1649 1985 1649 1986 1649 1987 1649 1988 1651 1989 1652 1988 1653 1988 1654 1988 1654 1988 1655 1988 1655 1988 1657 1989 1657 1989 1656 1988 1658 1988 1660 1988 1660 1988 1661 1988 1661 1989 1660 1990 1660 1990 1660 1991 1660 1992 1660 1993 1659 1992 1659 1992 1659 1993 1661 1993 1661 1992 1661 1991 1661 1990 1661 1989 1662 1989 1662 1989 1663 1988 1664 1988 1665 1989 1665 1989 1666 1990 1666 1992 1665 1994 1664 1994 1664 1994 1664 1994 1663 1994 1663 1994 1661 1995 1661 1996 1660 1997 1659 1998 1659 1998 1654 1998 1653 1997 1653 1997 1652 1996 1652 1995 1653 1995 1652 1995 1651 1995 1651 1995 1651 1996 1652 1997 1651 1997 1647 1996 1646 1996 1644 1995 1645 1996 1648 1997 1653 1999 1654 1999 1653 2000 1652 2000 1650 2001 1652 2001 1652 2001 1652 2002 1651 2002 1651 2003 1649 2003 1649 2004 1648 2004 1648 2004 1647 2003 1646 2002 1644 2001 1646 2004 1646 2004 1647 2004 1648 2004 1648 2004 1649 2005 1649 2005 1649 2005 1650 2004 1651 2004 1653 2003 1653 2003 1654 2002 1654 2003 1654 2004 1654 2004 1654 2005 1654 2004 1656 2004 1656 2004 1656 2003 1656 2003 1657 2004 1656 2004 1656 2005 1655 2006 1655 2006 1653 2007 1653 2008 1651 2008 1651 2008 1651 2007 1650 2007 1649 2007 1644 2009 1643 2008 1642 2009 1641 2010 1640 2011 1640 2010 1640 2010 1640 2009 1639 2008 1638 2008 1638 2008 1639 2008 1639 2010 1639 2010 1639 2011 1638 2011 1638 2011 1636 2012 1635 2013 1635 2013 1635 2013 1634 2014 1634 2014 1633 2015 1632 2016 1631 2017 1631 2017 1631 2018 1631 2019 1630 2020 1630 2021 1630 2020 1630 2019 1630 2018 1630 2017 1630 2018 1630 2018 1630 2018 1630 2019 1630 2020 1630 2020 1629 2021 1628 2021 1628 2021 1627 2021 1625 2021 1622 2021 1621 2021 1620 2021 1620 2021 1620 2022 1616 2024 1615 2024 1615 2024 1615 2025 1614 2025 1614 2026 1611 2029 1611 2029 1611 2030 1610 2031 1609 2030 1609 2030 1609 2029 1610 2029 1610 2029 1609 2029 1609 2030 1608 2031 1608 2031 1609 2031 1609 2032 1610 2032 1610 2032 1610 2033 1609 2033 1608 2034 1608 2034 1607 2034 1607 2035 1606 2035 1605 2035 1605 2035 1604 2035 1604 2036 1603 2036 1603 2037 1601 2039 1601 2039 1600 2039 1600 2039 1599 2039 1599 2038 1599 2038 1599 2038 1598 2038 1598 2039 1598 2039 1599 2039 1599 2040 1599 2040 1599 2041 1599 2041 1597 2042 1596 2042 1594 2043 1592 2044 1591 2044 1590 2043 1589 2043 1587 2043 1587 2043 1586 2043 1588 2044 1589 2044 1590 2044 1590 2045 1590 2046 1590 2046 1589 2047 1588 2047 1587 2047 1587 2047 1587 2046 1587 2045 1586 2044 1586 2045 1586 2046 1586 2046 1585 2045 1584 2044 1584 2043 1584 2043 1584 2044 1584 2045 1585 2046 1585 2047 1585 2047 1586 2047 1586 2048 1586 2049 1584 2050 1584 2049 1584 2049 1583 2050 1583 2051 1583 2051 1584 2051 1584 2052 1582 2053 1582 2054 1580 2055 1579 2056 1579 2056 1579 2058 1579 2058 1577 2058 1577 2058 1576 2058 1576 2058 1577 2060 1577 2059 1578 2060 1577 2062 1577 2062 1577 2063 1577 2064 1575 2065 1575 2065 1575 2064 1574 2064 1573 2066 1574 2066 1575 2066 1575 2067 1574 2068 1574 2069 1573 2069 1573 2070 1573 2071 1573 2071 1573 2071 1573 2072 1573 2072 1574 2072 1574 2073 1574 2074 1574 2075 1575 2076 1575 2077 1575 2078 1575 2079 1575 2079 1575 2080 1576 2082 1576 2084 1577 2085 1577 2087 1577 2087 1578 2089 1579 2090 1581 2095 1582 2097 1584 2100 1586 2103 1586 2104 1587 2105 1588 2106 1588 2106 1588 2107 1589 2108 1588 2108 1588 2109 1588 2110 1588 2111 1588 2111 1588 2112 1588 2112 1588 2113 1588 2113 1588 2114 1588 2114 1589 2115 1589 2116 1590 2116 1590 2117 1590 2117 1590 2117 1589 2116 1588 2115 1588 2113 1588 2113 1588 2113 1587 2112 1587 2110 1587 2109 1588 2108 1588 2108 1588 2107 1588 2107 1588 2106 1587 2106 1586 2106 1585 2106 1585 2105 1585 2104 1585 2104 1585 2104 1584 2103 1584 2103 1584 2105 1585 2109 1586 2110 1588 2115 1589 2118 1590 2118 1590 2119 1590 2119 1591 2120 1591 2121 1591 2121 1592 2122 1592 2123 1592 2124 1594 2128 1595 2129 1596 2130 1596 2131 1596 2133 1597 2135 1597 2137 1597 2138 1596 2139 1596 2139 1596 2141 1596 2144 1595 2149 1594 2151 1593 2152 1592 2154 1592 2155 1592 2155 1592 2155 1591 2158 1590 2159 1591 2160 1591 2160 1591 2160 1590 2159 1589 2160 1589 2160 1589 2159 1589 2159 1588 2159 1587 2160 1586 2161 1584 2161 1581 2161 1580 2161 1580 2161 1579 2161 1578 2159 1579 2158 1580 2158 1580 2159 1581 2160 1582 2160 1582 2160 1583 2159 1582 2158 1581 2158 1581 2158 1580 2157 1579 2157 1579 2157 1578 2156 1576 2151 1576 2150 1575 2150 1575 2150 1572 2149 1571 2148 1570 2149 1569 2148 1569 2146 1568 2146 1568 2145 1568 2145 1568 2142 1567 2140 1566 2140 1566 2139 1567 2139 1567 2139 1569 2136 1567 2137 1567 2137 1567 2138 1566 2139 1565 2139 1564 2138 1564 2136 1564 2136 1564 2134 1565 2132 1564 2132 1562 2132 1563 2133 1563 2134 1563 2135 1561 2134 1560 2134 1559 2132 1559 2132 1558 2131 1558 2130 1557 2127 1557 2126 1556 2125 1556 2125 1555 2124 1555 2124 1556 2123 1556 2122 1555 2122 1557 2121 1557 2121 1558 2120 1558 2119 1559 2119 1559 2118 1559 2117 1559 2117 1558 2116 1554 2115 1554 2116 1555 2117 1556 2117 1556 2118 1555 2120 1555 2120 1554 2121 1553 2120 1552 2118 1552 2118 1552 2118 1552 2117 1552 2116 1552 2117 1552 2116 1553 2116 1553 2114 1553 2112 1554 2110 1555 2108 1555 2107 1555 2104 1555 2103 1555 2103 1554 2102 1555 2102 1555 2102 1555 2101 1555 2101 1553 2099 1553 2098 1552 2097 1552 2097 1550 2096 1550 2096 1550 2096 1548 2096 1548 2095 1546 2093 1544 2091 1543 2091 1543 2091 1543 2090 1542 2089 1542 2088 1541 2088 1540 2087 1540 2086 1539 2085 1539 2085 1538 2084 1537 2084 1536 2084 1535 2083 1534 2083 1533 2082 1533 2082 1530 2082 1529 2082 1528 2082 1526 2083 1526 2084 1527 2084 1527 2084 1528 2084 1528 2085 1528 2085 1527 2085 1527 2085 1526 2085 1525 2085 1525 2085 1524 2085 1523 2086 1522 2087 1521 2087 1520 2087 1520 2088 1519 2087 1520 2087 1519 2087 1518 2088 1516 2088 1514 2088 1513 2088 1512 2089 1512 2088 1511 2088 1511 2088 1511 2087 1511 2087 1511 2086 1511 2085 1511 2086 1511 2087 1511 2087 1511 2088 1512 2088 1512 2088 1513 2087 1512 2086 1512 2085 1511 2084 1509 2083 1508 2082 1507 2082 1508 2082 1509 2082 1509 2082 1510 2083 1510 2083 1511 2083 1511 2082 1510 2082 1507 2081 1506 2080 1507 2079 1505 2079 1504 2079 1504 2079 1504 2080 1505 2079 1505 2079 1506 2080 1506 2081 1506 2081 1505 2081 1504 2080 1503 2080 1503 2080 1503 2079 1501 2079 1500 2078 1499 2078 1497 2078 1496 2077 1496 2077 1499 2077 1500 2077 1499 2077 1498 2076 1497 2075 1494 2075 1494 2076 1492 2077 1492 2077 1491 2077 1490 2077 1489 2077 1487 2077 1486 2077 1484 2077 1484 2077 1483 2078 1483 2077 1484 2077 1484 2077 1485 2077 1486 2077 1486 2076 1486 2076 1485 2075 1484 2075 1483 2075 1483 2075 1483 2076 1483 2076 1481 2078 1481 2078 1481 2078 1480 2078 1478 2079 1477 2079 1477 2078 1478 2078 1479 2078 1480 2076 1480 2076 1479 2076 1479 2076 1479 2077 1478 2078 1476 2079 1475 2079 1474 2080 1473 2080 1469 2080 1470 2079 1471 2079 1471 2080 1473 2079 1473 2079 1473 2078 1472 2078 1471 2077 1471 2077 1470 2075 1471 2075 1471 2074 1471 2074 1471 2073 1470 2073 1469 2072 1468 2074 1468 2075 1468 2076 1468 2077 1468 2077 1467 2078 1466 2078 1466 2078 1464 2077 1463 2077 1463 2078 1462 2078 1462 2078 1461 2078 1460 2078 1458 2078 1458 2078 1458 2078 1457 2077 1456 2077 1454 2077 1454 2077 1450 2078 1449 2078 1448 2078 1446 2080 1446 2080 1445 2080 1444 2081 1442 2080 1440 2080 1438 2079 1438 2079 1437 2078 1436 2078 1436 2077 1435 2077 1434 2077 1434 2077 1431 2080 1431 2080 1431 2081 1431 2081 1431 2082 1432 2082 1435 2083 1435 2083 1437 2083 1441 2082 1442 2081 1443 2081 1443 2081 1442 2082 1441 2083 1441 2083 1440 2083 1440 2083 1440 2084 1440 2084 1443 2085 1443 2085 1443 2085 1444 2085 1444 2084 1446 2082 1447 2083 1448 2085 1447 2087 1447 2087 1447 2086 1446 2086 1446 2086 1444 2088 1443 2089 1441 2089 1443 2091 1445 2092 1446 2093 1448 2094 1449 2094 1450 2094 1453 2096 1453 2096 1453 2097 1453 2097 1453 2098 1451 2099 1449 2098 1449 2099 1448 2099 1448 2100 1448 2100 1447 2100 1447 2100 1447 2100 1447 2100 1447 2099 1448 2099 1449 2098 1449 2097 1448 2096 1448 2097 1448 2097 1448 2098 1448 2098 1447 2098 1446 2096 1444 2095 1442 2095 1441 2094 1441 2094 1441 2093 1440 2092 1438 2092 1436 2090 1435 2090 1434 2091 1434 2091 1435 2092 1436 2092 1436 2092 1437 2092 1437 2093 1437 2094 1437 2096 1436 2096 1436 2097 1435 2097 1434 2098 1434 2098 1434 2098 1434 2098 1434 2097 1433 2096 1433 2095 1432 2094 1431 2094 1430 2094 1429 2095 1428 2096 1427 2097 1427 2097 1426 2097 1425 2098 1423 2097 1423 2097 1423 2097 1422 2096 1421 2096 1421 2096 1420 2096 1420 2096 1418 2096 1418 2096 1417 2095 1417 2095 1417 2095 1416 2095 1416 2094 1418 2094 1419 2094 1419 2095 1419 2095 1419 2095 1420 2095 1420 2094 1420 2094 1417 2092 1415 2091 1413 2091 1413 2091 1413 2090 1413 2089 1411 2088 1411 2087 1408 2087 1408 2086 1407 2086 1403 2087 1403 2088 1404 2089 1403 2090 1401 2091 1401 2091 1400 2091 1396 2090 1395 2090 1394 2089 1393 2089 1392 2089 1391 2088 1389 2087 1388 2087 1387 2087 1386 2087 1385 2087 1385 2087 1379 2087 1378 2087 1378 2087 1377 2088 1376 2088 1376 2088 1375 2087 1375 2087 1375 2086 1376 2086 1377 2086 1377 2085 1377 2084 1377 2083 1377 2083 1376 2084 1374 2086 1374 2087 1375 2087 1375 2087 1376 2088 1375 2089 1375 2088 1373 2088 1373 2089 1371 2089 1369 2090 1366 2091 1364 2092 1363 2092 1363 2092 1362 2093 1362 2093 1362 2093 1361 2093 1361 2093 1363 2092 1364 2091 1365 2091 1366 2090 1364 2090 1363 2090 1361 2090 1362 2090 1362 2089 1362 2089 1362 2088 1362 2087 1362 2087 1360 2087 1360 2087 1358 2088 1358 2088 1357 2088 1357 2090 1359 2093 1359 2093 1359 2094 1359 2094 1356 2096 1355 2098 1353 2100 1352 2101 1352 2101 1348 2103 1347 2103 1346 2104 1345 2104 1343 2104 1343 2105 1343 2105 1344 2105 1344 2105 1345 2104 1345 2104 1344 2105 1344 2105 1343 2105 1343 2106 1342 2106 1342 2106 1342 2106 1341 2106 1341 2106 1341 2106 1340 2107 1339 2107 1338 2107 1339 2107 1339 2107 1341 2106 1341 2106 1341 2106 1342 2106 1342 2105 1342 2105 1341 2105 1341 2105 1340 2105 1340 2105 1340 2106 1338 2106 1338 2106 1339 2106 1339 2105 1339 2104 1337 2104 1335 2104 1335 2103 1335 2104 1335 2105 1336 2105 1335 2106 1335 2106 1334 2105 1333 2105 1333 2105 1333 2104 1332 2104 1331 2104 1331 2104 1332 2106 1334 2107 1335 2108 1332 2110 1331 2110 1331 2110 1330 2109 1330 2109 1330 2108 1329 2108 1328 2109 1328 2109 1329 2110 1329 2111 1328 2113 1327 2113 1326 2113 1325 2113 1325 2112 1323 2113 1322 2114 1323 2114 1323 2115 1323 2115 1324 2114 1325 2114 1325 2114 1325 2115 1323 2118 1322 2118 1320 2118 1318 2117 1317 2117 1318 2118 1319 2119 1321 2120 1321 2121 1320 2125 1319 2126 1318 2126 1317 2125 1316 2126 1315 2125 1315 2125 1314 2124 1313 2124 1314 2125 1315 2126 1315 2127 1316 2127 1317 2127 1318 2127 1319 2127 1319 2129 1318 2131 1317 2131 1317 2132 1317 2134 1317 2134 1318 2134 1318 2135 1318 2135 1319 2139 1319 2141 1319 2141 1320 2141 1321 2143 1321 2144 1321 2145 1321 2145 1322 2148 1322 2147 1323 2147 1323 2146 1323 2147 1323 2147 1323 2148 1323 2148 1323 2148 1321 2148 1321 2149 1320 2149 1320 2149 1320 2150 1319 2150 1317 2149 1317 2148 1316 2147 1315 2147 1315 2147 1313 2146 1312 2146 1310 2146 1309 2146 1309 2147 1307 2146 1305 2146 1305 2145 1304 2145 1304 2144 1303 2144 1300 2143 1300 2143 1299 2143 1298 2142 1297 2142 1295 2141 1294 2141 1292 2140 1292 2139 1291 2136 1290 2134 1290 2134 1289 2133 1289 2133 1286 2131 1287 2127 1286 2124 1286 2122 1285 2122 1284 2121 1283 2121 1283 2121 1282 2121 1282 2120 1282 2120 1282 2120 1281 2119 1281 2119 1281 2119 1280 2119 1280 2118 1280 2118 1280 2117 1279 2116 1278 2116 1277 2113 1277 2113 1276 2113 1275 2112 1274 2111 1273 2111 1272 2109 1273 2108 1272 2107 1272 2107 1271 2106 1271 2105 1270 2104 1270 2104 1270 2104 1269 2102 1269 2101 1268 2101 1268 2100 1268 2100 1268 2099 1267 2098 1265 2095 1263 2094 1261 2092 1261 2092 1260 2092 1260 2091 1258 2091 1257 2089 1256 2089 1256 2088 1255 2087 1255 2087 1253 2087 1252 2087 1251 2087 1250 2087 1249 2087 1249 2086 1248 2086 1246 2086 1245 2087 1245 2087 1244 2086 1244 2086 1242 2086 1242 2085 1241 2085 1240 2086 1238 2087 1237 2087 1235 2087 1233 2092 1232 2094 1232 2095 1231 2096 1229 2098 1227 2100 1225 2099 1225 2099 1224 2099 1223 2099 1222 2098 1222 2098 1221 2097 1218 2096 1216 2095 1214 2094 1214 2094 1213 2094 1213 2094 1213 2094 1211 2093 1211 2092 1210 2091 1210 2091 1209 2091 1209 2091 1208 2091 1207 2090 1207 2090 1205 2089 1203 2084 1203 2083 1203 2082 1203 2082 1203 2081 1203 2080 1203 2080 1201 2078 1201 2077 1200 2076 1200 2075 1200 2074 1199 2074 1198 2073 1197 2072 1196 2071 1195 2071 1194 2070 1194 2071 1192 2070 1190 2068 1189 2067 1189 2066 1188 2066 1187 2065 1186 2065 1185 2064 1185 2063 1184 2063 1184 2063 1182 2061 1182 2061 1181 2061 1180 2060 1179 2060 1178 2058 1177 2058 1177 2057 1177 2056 1176 2055 1175 2055 1175 2055 1175 2055 1174 2055 1174 2055 1173 2055 1172 2055 1165 2055 1164 2055 1163 2055 1162 2055 1162 2055 1161 2055 1160 2055 1159 2055 1158 2055 1157 2055 1156 2055 1155 2055 1151 2055 1147 2055 1147 2055 1147 2056 1147 2058 1147 2059 1147 2060 1147 2062 1147 2062 1138 2062 1137 2062 1137 2062 1137 2062 1133 2062 1133 2062 1126 2062 1120 2062 1114 2062 1113 2062 1101 2062 1095 2060 1087 2057 1081 2056 1078 2055 1072 2053 1069 2052 1065 2050 1059 2049 1056 2048 1053 2047 1049 2046 1045 2044 1041 2043 1041 2043 1042 2042 1042 2040 1043 2040 1043 2040 1043 2040 1040 2040 1038 2040 1035 2040 1032 2041 1029 2041 1024 2041 1018 2042 1014 2042 1011 2042 1008 2043 1005 2043 1004 2043 1004 2042 1003 2041 1003 2040 1003 2040 1003 2040 1003 2041 1004 2042 1004 2041 1004 2041 1004 2041 1003 2040 1003 2040 1002 2040 1002 2041 1002 2041 1002 2040 1002 2040 1002 2039 1002 2038 1002 2038 1002 2037 1002 2037 1002 2036 1001 2034 1001 2033 1001 2033 1000 2032 999 2030 998 2030 996 2028 996 2028 994 2027 992 2026 992 2026 992 2026 991 2026 991 2025 991 2025 990 2025 990 2024 990 2024 989 2024 989 2023 988 2023 987 2023 986 2023 986 2024 986 2024 985 2024 984 2023 984 2023 984 2023 984 2022 984 2021 983 2020 983 2020 983 2020 982 2019 982 2019 981 2019 980 2019 979 2019 978 2019 978 2019 977 2019 975 2019 975 2018 975 2018 972 2018 972 2017 971 2017 970 2016 969 2015 968 2014 967 2013 966 2013 965 2013 965 2013 964 2013 962 2013 958 2012 956 2012 954 2012 953 2012 952 2012 951 2012 951 2011 950 2011 949 2010 949 2010 949 2011 948 2010 948 2009 948 2009 949 2009 949 2008 949 2008 949 2006 948 2005 949 2003 949 2002 948 2001 947 2001 947 2001 947 2001 945 2000 945 2000 944 1999 944 1999 945 1999 945 1998 944 1996 943 1996 942 1996 942 1995 940 1993 938 1992 938 1991 937 1991 936 1990 935 1989 935 1989 935 1988 935 1988 932 1985 930 1984 930 1984 929 1982 929 1982 928 1981 928 1981 928 1980 928 1979 927 1978 928 1977 929 1978 929 1978 929 1977 929 1977 930 1977 930 1975 930 1975 930 1973 929 1972 928 1972 928 1972 927 1972 926 1972 926 1972 925 1972 924 1972 924 1971 920 1968 920 1968 920 1968 920 1967 920 1966 920 1966 920 1964 919 1963 919 1963 919 1963 918 1962 918 1962 919 1960 919 1959 919 1959 920 1959 921 1959 921 1960 921 1961 921 1961 921 1962 925 1964 926 1964 926 1964 926 1964 925 1963 924 1962 924 1961 924 1961 924 1960 924 1960 923 1959 922 1958 920 1956 921 1956 923 1955 924 1955 924 1955 926 1954 927 1955 928 1955 929 1955 929 1955 931 1955 932 1955 932 1954 933 1954 934 1955 936 1955 935 1955 934 1954 933 1954 932 1954 931 1954 931 1955 929 1954 928 1954 927 1954 926 1953 926 1954 925 1955 922 1954 922 1954 921 1953 921 1953 920 1953 919 1954 919 1957 919 1957 920 1957 919 1958 918 1958 916 1957 914 1956 913 1955 912 1955 912 1955 911 1955 912 1953 913 1954 914 1954 913 1954 913 1954 911 1951 909 1948 908 1948 908 1948 907 1947 906 1947 905 1946 905 1946 903 1944 902 1943 901 1942 899 1941 899 1940 900 1940 900 1939 899 1938 899 1937 898 1935 898 1934 898 1933 898 1932 898 1931 899 1931 898 1928 897 1927 897 1926 896 1924 893 1922 893 1922 892 1921 891 1921 890 1920 889 1919 889 1919 889 1918 889 1917 888 1916 889 1915 889 1914 890 1913 890 1912 891 1912 891 1912 892 1911 893 1908 893 1907 893 1907 892 1905 893 1904 893 1902 894 1901 894 1901 894 1900 893 1899 893 1897 892 1896 891 1895 891 1894 891 1894 892 1892 892 1892 891 1892 891 1891 890 1891 890 1890 889 1890 889 1890 889 1889 888 1888 888 1887 888 1886 888 1884 888 1883 888 1883 888 1882 888 1881 888 1881 888 1881 887 1880 886 1878 886 1878 886 1877 886 1877 887 1877 887 1876 888 1875 888 1873 889 1871 888 1871 888 1871 889 1870 890 1869 891 1869 891 1870 892 1870 891 1868 891 1869 890 1869 890 1869 890 1869 890 1869 890 1869 891 1867 891 1866 891 1866 891 1865 893 1864 892 1864 892 1863 892 1861 893 1857 893 1851 894 1850 894 1850 894 1848 894 1847 893 1847 894 1846 894 1846 894 1845 895 1844 895 1841 895 1840 895 1836 895 1835 896 1835 896 1835 896 1834 896 1833 896 1832 896 1832 895 1832 895 1831 895 1829 896 1828 896 1827 896 1827 896 1826 896 1826 895 1825 896 1824 897 1825 899 1825 901 1825 902 1824 902 1824 902 1824 903 1824 904 1824 904 1825 904 1825 905 1825 906 1825 907 1825 907 1825 908 1825 906 1825 906 1825 904 1824 904 1824 904 1823 904 1823 903 1823 903 1823 902 1823 902 1823 901 1823 901 1823 900 1823 899 1823 899 1823 897 1823 897 1824 896 1824 894 1823 894 1821 894 1818 894 1817 894 1817 894 1819 894 1819 894 1820 895 1821 895 1822 896 1821 896 1819 896 1819 896 1818 896 1818 895 1818 896 1817 897 1816 897 1817 898 1817 898 1817 897 1816 896 1816 896 1816 895 1816 894 1816 893 1816 893 1814 893 1814 895 1813 895 1813 896 1813 898 1812 896 1812 895 1812 895 1812 894 1811 894 1811 894 1811 893 1811 893 1811 892 1811 892 1812 893 1812 892 1813 892 1813 892 1812 892 1812 892 1811 892 1811 892 1810 892 1808 891 1807 891 1807 890 1806 890 1806 890 1805 889 1803 889 1801 888 1800 887 1799 886 1798 886 1798 886 1798 885 1798 885 1797 884 1796 884 1796 884 1795 884 1795 884 1794 883 1793 884 1792 883 1790 883 1789 884 1789 885 1790 886 1790 887 1790 888 1791 890 1791 891 1791 892 1792 893 1792 893 1792 894 1793 894 1793 895 1793 896 1793 898 1793 898 1793 898 1793 900 1793 902 1793 904 1794 905 1794 907 1794 907 1794 907 1793 908 1793 909 1793 911 1794 913 1794 913 1794 913 1794 914 1793 914 1793 914 1794 914 1794 914 1794 915 1796 916 1796 916 1797 916 1798 914 1800 914 1800 914 1799 914 1799 914 1798 913 1799 913 1799 913 1799 913 1800 912 1801 912 1801 912 1801 911 1802 911 1802 910 1803 909 1804 908 1806 908 1806 909 1806 910 1806 912 1805 912 1805 913 1805 913 1805 912 1805 911 1805 910 1806 910 1806 909 1805 909 1805 910 1803 911 1802 912 1802 913 1801 915 1800 915 1800 917 1797 918 1797 919 1800 918 1800 917 1801 917 1802 917 1802 916 1802 916 1802 916 1801 916 1802 916 1803 917 1803 917 1803 918 1802 918 1804 918 1807 917 1807 916 1807 916 1806 917 1806 916 1805 915 1806 915 1807 915 1808 915 1808 914 1809 914 1809 914 1808 913 1807 914 1807 914 1807 914 1806 914 1805 913 1806 913 1807 912 1807 912 1807 912 1808 911 1809 911 1809 910 1809 909 1809 909 1810 910 1810 911 1810 912 1811 912 1811 912 1809 913 1809 914 1809 915 1810 916 1809 917 1809 917 1809 917 1808 918 1807 919 1807 920 1807 921 1806 921 1805 921 1804 920 1803 920 1802 920 1801 920 1799 922 1797 921 1795 920 1792 919 1792 919 1793 919 1794 920 1794 919 1794 918 1794 918 1793 918 1793 918 1792 918 1792 919 1792 919 1792 920 1792 920 1792 920 1791 920 1791 917 1789 917 1789 916 1789 916 1789 916 1789 915 1788 916 1788 918 1788 918 1788 918 1789 919 1789 919 1786 918 1784 918 1784 917 1783 917 1784 917 1784 916 1784 916 1783 913 1781 914 1780 915 1780 914 1780 914 1780 915 1780 917 1780 919 1780 921 1780 925 1780 941 1780 950 1780 958 1780 959 1780 960 1780 967 1780 970 1780 972 1780 975 1780 978 1780 984 1780 988 1780 990 1780 992 1780 993 1780 997 1780 1001 1780 1003 1780 1003 1780 1005 1780 1006 1780 1006 1780 1021 1780 1026 1780 1029 1780 1029 1780 1031 1780 1032 1780 1036 1780 1038 1780 1040 1780 1044 1780 1046 1780 1047 1780 1049 1780 1053 1780 1054 1780 1061 1780 1064 1780 1066 1780 1070 1780 1071 1780 1077 1780 1078 1780 1079 1780 1081 1780 1082 1780 1083 1780 1086 1780 1089 1780 1096 1780 1106 1780 1107 1780 1110 1780 1112 1780 1113 1780 1115 1780 1116 1780 1118 1780 1119 1780 1121 1780 1124 1780 1129 1780 1137 1780 1139 1780 1141 1780 1145 1780 1147 1780 1153 1780 1154 1780 1156 1780 1159 1780 1161 1780 1170 1780 1174 1780 1178 1780 1180 1780 1181 1780 1183 1780 1187 1780 1194 1780 1198 1780 1201 1780 1209 1780 1212 1780 1213 1780 1218 1780 1221 1780 1223 1780 1226 1780 1227 1780 1229 1780 1234 1780 1237 1780 1240 1780 1243 1780 1254 1780 1256 1780 1257 1780 1261 1780 1270 1780 1278 1780 1280 1780 1288 1780 1296 1780 1302 1780 1305 1780 1310 1780 1313 1780 1316 1780 1318 1780 1322 1780 1353 1780 1355 1780 1355 1777 1355 1775 1355 1774 1355 1774 1355 1774 1356 1774 1356 1774 1357 1774 1358 1774 1358 1774 1359 1774 1361 1775 1361 1777 1361 1777 1361 1779 1362 1779 1362 1780 1362 1780 1362 1781 1362 1781 1362 1782 1362 1783 1363 1783 1363 1784 1364 1784 1365 1785 1366 1785 1366 1785 1367 1785 1367 1784 1369 1785 1369 1785 1370 1785 1371 1786 1372 1786 1373 1786 1375 1786 1376 1786 1376 1786 1377 1786 1377 1787 1377 1788 1378 1788 1379 1788 1382 1787 1382 1787 1382 1787 1383 1786 1385 1786 1386 1786 1390 1786 1394 1787 1394 1788 1396 1789 1398 1790 1399 1791 1400 1792 1400 1792 1401 1792 1401 1792 1401 1791 1401 1790 1401 1790 1403 1790 1403 1790 1405 1790 1405 1791 1405 1791 1406 1792 1406 1792 1407 1792 1408 1793 1409 1793 1410 1793 1411 1794 1411 1794 1412 1794 1414 1795 1415 1795 1415 1795 1416 1795 1416 1795 1417 1795 1418 1794 1418 1794 1419 1794 1420 1793 1422 1792 1423 1792 1423 1792 1424 1792 1424 1792 1424 1793 1425 1794 1426 1794 1433 1794 1435 1794 1436 1794 1437 1795 1438 1795 1439 1796 1440 1796 1440 1796 1441 1795 1444 1796 1444 1796 1446 1796 1446 1796 1448 1796 1448 1796 1454 1794 1458 1792 1459 1792 1464 1791 1466 1792 1478 1797 1480 1797 1482 1798 1487 1800 1492 1802 1494 1803 1501 1805 1501 1806 1504 1807 1506 1807 1510 1809 1512 1810 1519 1813 1520 1813 1520 1815 1520 1815 1520 1816 1521 1817 1521 1817 1524 1820 1525 1820 1526 1820 1526 1820 1526 1820 1527 1820 1530 1819 1531 1819 1531 1820 1531 1820 1531 1821 1531 1821 1531 1821 1532 1824 1532 1824 1532 1825 1534 1827 1535 1827 1535 1826 1536 1826 1539 1826 1539 1826 1540 1826 1540 1826 1542 1827 1542 1828 1542 1828 1541 1829 1540 1831 1541 1831 1545 1833 1548 1834 1548 1834 1550 1835 1555 1837 1555 1837 1557 1838 1558 1846 1560 1852 1562 1860 1563 1866 1563 1867 1562 1869 1561 1870 1560 1872 1559 1875 1559 1875 1558 1877 1558 1878 1558 1879 1558 1880 1558 1880 1557 1882 1557 1882 1556 1883 1555 1883 1555 1883 1554 1884 1554 1884 1553 1885 1552 1885 1552 1885 1550 1886 1550 1886 1549 1886 1549 1886 1548 1887 1548 1887 1548 1887 1547 1888 1547 1888 1547 1888 1547 1891 1547 1892 1547 1892 1547 1893 1548 1894 1554 1897 1555 1897 1558 1897 1558 1897 1561 1895 1562 1895 1568 1892 1571 1891 1574 1889 1577 1888 1583 1887 1589 1886 1589 1886 1596 1885 1601 1883 1601 1883 1604 1882 1608 1880 1611 1880 1611 1879 1613 1879 1614 1878 1614 1878 1615 1877 1614 1877 1614 1876 1614 1876 1613 1876 1613 1876 1612 1874 1612 1873 1612 1873 1612 1872 1612 1871 1611 1870 1610 1868 1612 1868 1613 1867 1614 1867 1618 1866 1619 1866 1623 1865 1631 1865 1631 1865 1633 1865 1636 1865 1641 1866 1646 1866 1648 1866 1650 1863 1652 1861 1652 1861 1653 1860 1654 1858 1655 1858 1655 1857 1660 1854 1660 1854 1661 1854 1661 1854 1662 1854 1663 1854 1663 1853 1664 1853 1664 1853 1664 1852 1664 1852 1665 1851 1666 1850 1667 1850 1668 1849 1669 1849 1671 1847 1672 1846 1673 1846 1674 1845 1677 1844 1679 1843 1680 1843 1681 1844 1681 1844 1682 1844 1689 1844 1694 1844 1699 1844 1703 1844 1703 1844 1704 1844 1710 1843 1713 1843 1717 1843 1718 1843 1721 1843 1724 1843 1727 1843 1732 1843 1733 1843 1733 1843 1733 1843 1734 1842 1734 1842 1735 1840 1734 1840 1736 1839 1736 1839 1737 1839 1737 1839 1738 1839 1738 1840 1739 1840 1740 1839 1741 1839 1743 1840 1746 1836 1746 1836 1745 1836 1745 1835 1746 1835 1747 1834 1748 1833 1748 1833 1749 1832 1751 1831 1753 1829 1753 1828 1753 1828 1752 1828 1752 1827 1752 1825 1753 1823 1754 1822 1755 1821 1756 1821 1756 1821 1756 1821 1756 1820 1756 1820 1757 1818 1757 1817 1757 1816 1759 1814 1762 1812 1762 1811 1766 1807 1768 1805 1769 1804 1771 1804 1772 1805 1772 1805 1772 1806 1772 1806 1772 1807 1772 1807 1772 1807 1772 1808 1774 1808 1775 1809 1776 1808 1776 1808 1777 1808 1780 1807 1783 1806 1783 1806 1784 1806 1785 1806 1786 1806 1786 1806 1790 1809 1790 1809 1791 1810 1791 1810 1792 1811 1792 1813 1792 1815 1792 1823 1793 1828 1792 1830 1792 1831 1792 1832 1792 1833 1794 1834 1796 1834 1797 1834 1797 1834 1798 1834 1798 1834 1798 1835 1797 1836 1798 1838 1797 1839 1798 1840 1798 1840 1798 1841 1799 1841 1800 1841 1800 1841 1801 1841 1801 1841 1802 1841 1802 1841 1803 1842 1804 1844 1804 1845 1803 1845 1802 1845 1802 1845 1803 1846 1803 1846 1804 1846 1804 1845 1805 1846 1805 1846 1805 1847 1802 1849 1801 1849 1798 1850 1797 1849 1796 1849 1796 1850 1796 1850 1796 1851 1794 1852 1793 1851 1792 1851 1791 1852 1790 1853 1789 1853 1789 1853 1788 1854 1787 1853 1787 1852 1785 1852 1784 1852 1783 1853 1783 1853 1781 1853 1781 1853 1780 1853 1780 1855 1779 1855 1776 1854 1776 1852 1777 1851 1777 1851 1776 1851 1776 1851 1775 1852 1774 1852 1773 1853 1773 1856 1772 1858 1772 1858 1772 1858 1772 1859 1770 1860 1769 1861 1768 1860 1767 1859 1766 1861 1765 1862 1765 1862 1764 1862 1764 1861 1764 1861 1764 1860 1764 1859 1764 1860 1763 1861 1764 1862 1763 1861 1763 1860 1763 1859 1763 1859 1763 1859 1762 1860 1762 1860 1761 1861 1762 1862 1762 1862 1761 1863 1761 1862 1760 1860 1760 1859 1761 1859 1759 1860 1759 1860 1760 1861 1760 1861 1760 1862 1760 1863 1760 1864 1759 1864 1759 1863 1758 1862 1757 1862 1755 1862 1755 1863 1754 1863 1754 1864 1753 1865 1753 1865 1753 1865 1754 1865 1754 1867 1752 1867 1751 1868 1751 1869 1751 1869 1750 1870 1749 1870 1749 1870 1748 1871 1748 1871 1748 1872 1748 1872 1747 1873 1746 1874 1746 1874 1745 1874 1745 1874 1746 1875 1745 1875 1745 1876 1744 1877 1744 1877 1744 1878 1744 1880 1744 1880 1745 1881 1746 1881 1746 1881 1747 1881 1747 1881 1748 1881 1747 1882 1744 1883 1743 1883 1743 1884 1740 1886 1740 1887 1742 1888 1743 1888 1743 1887 1745 1888 1745 1888 1747 1891 1746 1892 1747 1892 1747 1892 1748 1892 1748 1893 1749 1894 1749 1894 1749 1895 1750 1896 1752 1896 1752 1896 1754 1896 1754 1896 1755 1896 1755 1895 1756 1895 1757 1895 1757 1894 1757 1893 1755 1891 1755 1891 1754 1891 1754 1891 1753 1890 1753 1890 1755 1890 1755 1890 1756 1891 1756 1891 1757 1892 1757 1892 1757 1892 1758 1893 1758 1894 1758 1894 1758 1896 1758 1897 1757 1897 1757 1897 1756 1897 1756 1897 1754 1897 1753 1897 1751 1898 1750 1898 1750 1898 1749 1899 1747 1899 1746 1898 1747 1897 1747 1896 1745 1896 1744 1898 1742 1899 1740 1899 1739 1899 1739 1900 1738 1900 1738 1900 1738 1899 1738 1897 1738 1897 1738 1897 1738 1896 1739 1896 1739 1895 1738 1896 1737 1896 1737 1897 1737 1897 1736 1897 1735 1895 1734 1898 1734 1900 1734 1900 1733 1901 1733 1902 1732 1902 1732 1902 1732 1902 1730 1902 1729 1902 1728 1902 1728 1903 1727 1903 1727 1902 1726 1902 1722 1902 1721 1903 1721 1903 1719 1903 1717 1903 1716 1903 1715 1903 1715 1903 1712 1904 1711 1904 1711 1903 1710 1903 1708 1904 1707 1905 1707 1905 1706 1905 1705 1905 1704 1906 1703 1906 1702 1907 1701 1907 1700 1907 1699 1908 1699 1908 1698 1908 1698 1908 1697 1909 1697 1910 1696 1910 1694 1911 1694 1910 1695 1909 1695 1909 1695 1908 1695 1907 1695 1907 1695 1906 1695 1905 1695 1905 1694 1903 1693 1903 1694 1904 1694 1905 1694 1905 1694 1905 1695 1908 1695 1908 1695 1908 1694 1909 1693 1912 1692 1913 1691 1913 1691 1913 1691 1912 1691 1912 1690 1913 1689 1915 1689 1915 1689 1916 1689 1916 1690 1917 1692 1917 1693 1916 1694 1917 1694 1919 1693 1923 1692 1927 1692 1926 1692 1925 1692 1924 1692 1924 1692 1923 1692 1923 1691 1924 1690 1927 1690 1928 1691 1928 1691 1928 1690 1929 1690 1929 1688 1931 1687 1931 1687 1932 1687 1933 1686 1932 1686 1932 1686 1933 1686 1933 1686 1933 1686 1934 1685 1935 1685 1934 1684 1934 1683 1935 1683 1935 1683 1935 1683 1936 1682 1938 1681 1939 1680 1940 1680 1940 1679 1941 1679 1941 1678 1941 1678 1941 1678 1940 1678 1939 1678 1939 1679 1938 1679 1938 1679 1937 1679 1937 1678 1937 1676 1936 1676 1936 1674 1936 1672 1935 1671 1934 1670 1934 1669 1932 1668 1932 1668 1930 1670 1927 1670 1927 1671 1927 1671 1927 1672 1926 1672 1926 1674 1926 1675 1926 1675 1925 1676 1924 1677 1923 1676 1923 1676 1924 1675 1924 1675 1924 1675 1925 1674 1925 1674 1926 1672 1926 1671 1926 1671 1926 1670 1927 1670 1927 1668 1929 1667 1930 1668 1932 1669 1933 1670 1935 1671 1936 1671 1936 1671 1937 1671 1938 1672 1941 1674 1943 1675 1944 1674 1946 1674 1946 1675 1946 1676 1946 1676 1948 1676 1948 1676 1948 1676 1948 1676 1949 1676 1950 1676 1950 1676 1949 1676 1948 1676 1948 1676 1948 1676 1948 1676 1948 1676 1950 1675 1952 1674 1952 1672 1954 1671 1954 1671 1955 1671 1955 1671 1956 1670 1957 1669 1959 1669 1959 1668 1961 1667 1962 1668 1963 1667 1964 1666 1963 1666 1963 1666 1963 1664 1964 1664 1966 1664 1966 1663 1967 1663 1968 1662 1969 1661 1968 1661 1967 1661 1967 1662 1964 1662 1962 1662 1962 1663 1961 1665 1960 1666 1959 1667 1958 1667 1956 1667 1956 1666 1956 1666 1956 1665 1956 1665 1956 1664 1956 1664 1956 1663 1957 1663 1956 1663 1956 1663 1954 1663 1953 1663 1952 1664 1949 1661 1952 1661 1952 1660 1951 1659 1950 1658 1949 1658 1950 1657 1950 1656 1948 1656 1948 1657 1947 1658 1947 1658 1947 1658 1946 1658 1946 1658 1946 1658 1947 1657 1947 1657 1946 1657 1946 1658 1946 1659 1946 1659 1946 1660 1946 1661 1946 1661 1946 1662 1946 1662 1946 1662 1945 1661 1945 1661 1946 1661 1946 1660 1946 1658 1945 1658 1944 1656 1945 1656 1945 1656 1943 1656 1942 1657 1942 1658 1943 1658 1943 1658 1943 1659 1943 1659 1943 1659 1943 1659 1941 1658 1940 1656 1941 1656 1941 1655 1942 1655 1942 1655 1941 1656 1941 1656 1940 1656 1939 1657 1940 1657 1940 1658 1940 1658 1940 1659 1940 1660 1937 1659 1938 1658 1939 1657 1937 1658 1935 1660 1934 1661 1933 1663 1931 1664 1930 1662 1930 1660 1931 1659 1932 1660 1932 1660 1933 1658 1934 1658 1934 1657 1933 1658 1933 1657 1932 1655 1933 1655 1934 1654 1935 1653 1935 1654 1935 1654 1936 1655 1936 1655 1936 1655 1936 1655 1936 1654 1936 1654 1936 1654 1936 1653 1936 1653 1936 1652 1935 1652 1935 1651 1936 1652 1936 1653 1936 1653 1937 1654 1937 1654 1938 1655 1939 1654 1941 1653 1942 1653 1944 1653 1947 1653 1947 1653 1947 1653 1948 1654 1948 1655 1949 1655 1950 1655 1950 1654 1950 1652 1949 1651 1948 1650 1946 1650 1946 1650 1945 1650 1945 1651 1948 1651 1948 1652 1949 1653 1951 1654 1951 1655 1951 1655 1952 1655 1952 1656 1952 1656 1953 1656 1953 1656 1955 1656 1955 1652 1953 1652 1952 1652 1952 1651 1952 1651 1952 1651 1952 1650 1952 1650 1952 1649 1952 1647 1951 1646 1951 1646 1950 1644 1949 1644 1949 1642 1950 1641 1949 1641 1948 1641 1947 1641 1947 1642 1946 1644 1945 1644 1944 1645 1944 1645 1943 1645 1943 1645 1943 1645 1943 1645 1942 1644 1941 1644 1941 1644 1942 1645 1942 1644 1944 1644 1944 1643 1944 1641 1946 1640 1948 1640 1949 1640 1950 1641 1950 1642 1950 1642 1950 1644 1950 1645 1951 1646 1952 1647 1953 1648 1953 1650 1953 1652 1954 1653 1955 1655 1956 1656 1956 1657 1957 1657 1957 1657 1957 1657 1960 1656 1962 1655 1962 1655 1961 1653 1961 1650 1958 1648 1956 1647 1955 1647 1954 1646 1954 1644 1953 1643 1953 1643 1953 1645 1954 1645 1954 1646 1954 1646 1955 1647 1955 1648 1957 1650 1959 1651 1959 1651 1959 1651 1960 1652 1960 1652 1960 1652 1961 1653 1961 1653 1962 1654 1962 1656 1962 1657 1964 1657 1965 1657 1966 1657 1966 1656 1966 1655 1965 1655 1966 1655 1967 1654 1967 1654 1967 1653 1967 1652 1966 1650 1965 1650 1965 1651 1967 1652 1967 1652 1967 1654 1968 1654 1968 1655 1968 1656 1969 1657 1970 1656 1971 1655 1972 1654 1972 1652 1970 1651 1969 1651 1969 1651 1969 1651 1968 1651 1968 1650 1968 1649 1968 1647 1968 1647 1967 1646 1967 1645 1967 1641 1966 1641 1967 1643 1967 1645 1967 1647 1968 1650 1969 1651 1971 1652 1971 1653 1972 1653 1973 1656 1974 1656 1974 1656 1973 1656 1972 1657 1972 1657 1972 1658 1973 1659 1973 1660 1973 1661 1973 1661 1973 1662 1974 1663 1977 1663 1979 1664 1979 1664 1979 1664 1980 1664 1982 1665 1983 1666 1986 1666 1986 1667 1987 1667 1987 1668 1989 1668 1990 1669 1991 1668 1991 1668 1990 1668 1989 1667 1988 1667 1988 1666 1988 1666 1987 1665 1987 1665 1986 1665 1985 1665 1984 1665 1984 1664 1982 1663 1980 1663 1980 1663 1979 1663 1979 1663 1978 1663 1977 1662 1976 1662 1977 1662 1978 1661 1978 1662 1979 1662 1979 1662 1979 1662 1978 1663 1978 1663 1979 1663 1980 1662 1980 1662 1980 1661 1979 1661 1978 1660 1978 1661 1979 M 909 1780 910 1780 910 1780 909 1780 909 1780 M 912 1784 912 1784 913 1785 913 1785 914 1785 914 1785 914 1785 913 1786 912 1786 912 1786 912 1786 910 1786 910 1786 910 1786 910 1786 911 1785 912 1784 912 1784 M 909 1786 910 1787 910 1787 911 1789 910 1789 909 1788 908 1788 908 1788 908 1788 908 1788 908 1787 908 1786 908 1786 908 1786 909 1786 909 1786 M 913 1787 913 1787 913 1788 913 1789 913 1789 913 1789 913 1789 913 1789 913 1789 913 1789 911 1789 911 1788 911 1788 912 1787 912 1787 913 1787 M 917 1790 918 1791 918 1791 918 1791 918 1791 918 1791 917 1791 917 1791 917 1791 917 1791 916 1792 916 1792 916 1792 917 1792 917 1793 917 1793 919 1794 921 1795 921 1796 921 1796 921 1797 920 1797 920 1797 918 1796 917 1795 917 1794 915 1792 914 1792 914 1792 914 1792 916 1790 917 1789 917 1790 M 920 1806 920 1806 919 1806 918 1806 918 1806 918 1806 918 1805 918 1804 919 1804 919 1804 920 1805 920 1805 920 1806 M 1785 1853 1786 1853 1786 1854 1786 1854 1786 1854 1786 1854 1786 1855 1784 1856 1784 1856 1782 1855 1782 1855 1782 1855 1782 1854 1783 1853 1783 1853 1784 1853 1785 1853 1785 1853 1785 1853 M 1779 1855 1779 1855 1779 1855 1779 1856 1779 1856 1779 1857 1779 1857 1778 1857 1778 1857 1777 1856 1778 1855 1778 1855 1779 1855 M 1737 1898 1737 1899 1737 1900 1736 1900 1735 1900 1736 1899 1737 1898 1737 1897 1737 1898 M 1748 1900 1748 1900 1748 1900 1749 1901 1749 1902 1749 1902 1748 1902 1748 1902 1747 1902 1747 1902 1746 1902 1746 1902 1745 1902 1745 1902 1745 1902 1745 1903 1745 1903 1744 1903 1744 1902 1744 1902 1744 1902 1746 1900 1747 1900 1748 1900 1748 1900 M 1757 1902 1757 1902 1758 1903 1758 1903 1757 1904 1757 1904 1757 1904 1756 1904 1755 1904 1755 1904 1755 1904 1753 1903 1754 1903 1754 1903 1755 1903 1756 1902 1757 1902 M 1711 1912 1711 1911 1709 1912 1708 1912 1707 1912 1702 1913 1700 1913 1699 1914 1700 1914 1699 1914 1699 1914 1696 1914 1697 1914 1697 1913 1696 1913 1696 1913 1695 1913 1695 1913 1695 1914 1694 1914 1693 1914 1693 1914 1693 1913 1693 1913 1693 1913 1694 1911 1694 1911 1696 1911 1697 1910 1699 1909 1700 1909 1701 1909 1703 1909 1705 1909 1706 1909 1707 1909 1708 1908 1711 1908 1713 1908 1713 1908 1715 1908 1715 1908 1716 1907 1717 1907 1718 1906 1719 1905 1720 1905 1721 1905 1721 1906 1720 1906 1719 1906 1715 1909 1716 1909 1717 1909 1718 1909 1719 1908 1719 1908 1721 1907 1723 1907 1723 1908 1724 1907 1725 1907 1725 1907 1726 1906 1727 1906 1724 1908 1719 1909 1718 1910 1716 1910 1714 1911 1714 1911 1712 1911 1711 1912 M 1692 1913 1692 1914 1692 1914 1691 1915 1691 1915 1691 1915 1690 1915 1689 1915 1689 1915 1690 1913 1690 1913 1692 1913 1692 1913 1692 1913 M 1669 2000 1667 2000 1667 2000 1669 1999 1669 1999 1669 1999 1669 1999 1669 1997 1670 1994 1670 1994 1670 1993 1669 1993 1669 1992 1669 1992 1669 1991 1669 1991 1669 1991 1669 1992 1669 1992 1670 1994 1670 1994 1670 1994 1669 1998 1669 1998 1669 2000 1669 2000 M 960 2018 963 2019 965 2019 965 2018 965 2018 966 2019 966 2019 965 2019 963 2020 962 2020 962 2020 961 2020 960 2020 960 2018 960 2018 960 2018 M 958 2020 959 2020 959 2020 958 2021 957 2021 956 2021 956 2021 956 2021 956 2020 955 2020 955 2019 955 2019 956 2019 958 2019 958 2019 958 2020 M 982 2028 983 2028 984 2029 985 2029 986 2030 986 2030 985 2030 983 2030 981 2028 981 2028 982 2028 982 2028 982 2028 M 982 2036 982 2036 982 2036 982 2036 983 2036 984 2037 984 2038 984 2038 984 2038 983 2038 983 2038 982 2038 982 2037 981 2036 981 2035 981 2035 981 2035 982 2036 M 1492 2077 1491 2077 1489 2077 1487 2077 1486 2078 1484 2078 1484 2078 1483 2078 1482 2078 1481 2078 1481 2078 1481 2078 1481 2078 1483 2078 1485 2077 1487 2077 1489 2077 1489 2077 1490 2077 1490 2077 1491 2077 1492 2077 1493 2077 1492 2077 M 1410 2090 1409 2092 1408 2092 1406 2091 1405 2090 1405 2090 1405 2090 1405 2090 1405 2089 1407 2089 1407 2089 1408 2089 1408 2089 1410 2090 1410 2090 M 1360 2095 1360 2095 1360 2095 1360 2095 1360 2095 1356 2098 1356 2097 1356 2097 1358 2096 1360 2094 1361 2094 1360 2095 M 1587 2110 1587 2111 1587 2111 1587 2111 1586 2109 1585 2108 1585 2107 1586 2107 1586 2106 1587 2106 1587 2106 1587 2106 1587 2106 1587 2107 1587 2107 1587 2107 1587 2107 1587 2108 1587 2108 1587 2108 1587 2109 1587 2110 M 1329 2112 1329 2112 1330 2112 1330 2112 1331 2111 1331 2111 1331 2111 1334 2110 1335 2109 1335 2109 1335 2109 1335 2109 1335 2110 1335 2110 1335 2110 1334 2110 1334 2110 1334 2111 1333 2111 1333 2111 1331 2112 1330 2113 1330 2113 1330 2113 1329 2114 1329 2114 1329 2114 1329 2113 1329 2112 1329 2112 1329 2112 1329 2112 M 1328 2114 1328 2114 1327 2115 1325 2117 1325 2117 1325 2117 1327 2114 1328 2113 1328 2113 1328 2114 1328 2114 M 1590 2118 1591 2119 1591 2119 1591 2119 1591 2120 1592 2122 1593 2124 1593 2124 1593 2125 1595 2128 1595 2128 1594 2128 1594 2127 1593 2125 1591 2120 1590 2118 1590 2118 M 1322 2123 1321 2123 1321 2124 1321 2124 1320 2125 1320 2126 1320 2126 1320 2127 1320 2127 1320 2128 1319 2128 1320 2127 1320 2126 1320 2125 1320 2124 1320 2124 1321 2123 1321 2123 1321 2122 1323 2120 1323 2119 1325 2118 1325 2118 1325 2118 1325 2118 1325 2118 1324 2119 1324 2119 1324 2119 1323 2120 1323 2121 1322 2122 1322 2123 M 1320 2136 1320 2134 1320 2134 1319 2131 1319 2130 1319 2129 1319 2129 1319 2129 1320 2128 1320 2128 1320 2129 1320 2130 1320 2131 1320 2131 1320 2134 1320 2134 1320 2135 1320 2136 1321 2138 1322 2139 1322 2140 1322 2141 1322 2142 1323 2143 1323 2145 1323 2145 1323 2146 1323 2146 1323 2146 1323 2145 1323 2145 1322 2144 1322 2142 1321 2139 1321 2138 1320 2136 1320 2136 M 1588 2164 1588 2164 1590 2162 1591 2161 1591 2160 1591 2160 1592 2159 1592 2159 1593 2158 1593 2158 1593 2158 1593 2158 1593 2158 1591 2161 1591 2161 1588 2164 1588 2164 1588 2164 M 328 2213 328 2213 327 2213 326 2213 324 2212 323 2211 323 2211 323 2211 323 2210 323 2210 324 2209 324 2209 326 2207 327 2207 329 2207 330 2208 330 2208 330 2208 331 2209 331 2209 330 2212 329 2212 328 2213 328 2213 M 316 2215 316 2215 316 2214 316 2214 315 2214 316 2213 316 2212 317 2212 318 2211 318 2211 319 2211 318 2213 318 2213 318 2213 317 2213 317 2213 317 2214 316 2215 M 354 2223 354 2222 353 2222 353 2222 353 2222 352 2222 350 2222 350 2222 350 2222 350 2222 350 2222 349 2221 349 2221 349 2221 349 2220 348 2220 348 2220 348 2219 347 2218 347 2218 350 2217 351 2216 351 2216 351 2216 352 2216 352 2216 352 2216 353 2216 353 2217 353 2218 354 2219 354 2220 355 2220 355 2220 356 2221 357 2222 356 2223 355 2223 354 2223 M 369 2226 369 2226 369 2226 368 2226 367 2226 367 2225 366 2225 366 2225 366 2225 366 2225 365 2225 365 2226 363 2226 363 2226 363 2226 363 2225 363 2225 363 2224 364 2224 367 2224 368 2224 369 2225 370 2225 370 2225 370 2224 371 2224 371 2224 372 2225 372 2225 371 2226 371 2226 370 2226 370 2226 369 2226 M 377 2234 377 2234 377 2234 376 2233 376 2233 376 2233 376 2232 376 2232 376 2231 376 2230 376 2230 375 2230 375 2230 375 2230 374 2230 374 2230 373 2230 373 2230 372 2229 372 2228 372 2228 372 2228 373 2227 374 2226 375 2227 375 2227 375 2228 375 2228 375 2228 376 2229 376 2229 377 2228 377 2228 378 2228 378 2228 378 2228 379 2228 380 2228 380 2228 380 2229 380 2229 380 2229 382 2230 382 2230 383 2230 383 2230 383 2231 384 2231 384 2231 383 2231 383 2232 383 2232 383 2232 382 2232 381 2233 381 2233 381 2233 380 2233 380 2233 378 2234 377 2234 M 369 2231 368 2231 366 2229 366 2229 367 2228 367 2228 367 2228 367 2228 369 2228 369 2228 369 2228 369 2229 370 2229 370 2230 370 2230 370 2230 370 2230 370 2231 370 2231 370 2231 369 2231 369 2231 M 386 2239 387 2239 388 2239 388 2240 390 2241 391 2241 392 2241 394 2242 396 2243 396 2243 397 2244 397 2244 398 2245 399 2247 400 2249 401 2249 402 2250 403 2250 402 2251 402 2252 399 2254 397 2255 397 2255 396 2255 396 2255 395 2254 395 2255 391 2257 391 2257 391 2257 391 2258 390 2258 390 2259 389 2260 389 2260 388 2259 387 2259 386 2259 385 2258 385 2256 385 2256 385 2255 385 2253 383 2248 383 2248 383 2247 383 2247 383 2246 384 2245 384 2245 386 2243 386 2243 386 2242 386 2242 385 2241 385 2240 385 2240 385 2239 385 2239 386 2239 386 2239 M 1675 2244 1676 2244 1676 2244 1676 2245 1675 2245 1675 2245 1675 2245 1674 2245 1675 2244 M 1675 2244 1674 2244 1674 2245 1673 2244 1674 2244 1675 2244 1675 2244" />
+<path id="bf" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2890 2387 2888 2387 2887 2387 2886 2387 2885 2387 2883 2388 2883 2387 2883 2387 2882 2386 2878 2386 2878 2386 2876 2385 2874 2385 2873 2385 2873 2385 2872 2384 2870 2384 2869 2385 2865 2388 2864 2387 2864 2387 2864 2387 2862 2387 2861 2387 2859 2387 2858 2387 2853 2387 2852 2386 2850 2386 2850 2387 2847 2387 2843 2387 2838 2387 2831 2387 2830 2387 2830 2387 2830 2389 2829 2391 2828 2391 2828 2392 2828 2393 2829 2394 2830 2397 2830 2398 2831 2399 2830 2400 2830 2402 2831 2403 2831 2406 2830 2407 2831 2408 2831 2408 2831 2408 2831 2409 2831 2409 2831 2410 2831 2410 2832 2410 2832 2411 2832 2411 2831 2412 2831 2412 2831 2412 2830 2412 2829 2411 2828 2410 2828 2409 2828 2408 2827 2407 2825 2405 2824 2404 2821 2404 2817 2404 2816 2404 2815 2404 2813 2404 2813 2404 2813 2405 2812 2405 2811 2406 2809 2406 2807 2407 2807 2408 2807 2408 2806 2409 2806 2409 2806 2409 2804 2408 2803 2408 2801 2407 2801 2408 2800 2408 2799 2407 2798 2406 2799 2406 2799 2406 2798 2405 2796 2404 2795 2402 2793 2398 2791 2398 2791 2398 2790 2398 2790 2398 2789 2398 2789 2398 2788 2397 2787 2396 2787 2396 2787 2394 2788 2393 2788 2392 2788 2391 2788 2391 2789 2389 2788 2389 2788 2388 2787 2387 2787 2386 2787 2386 2788 2385 2789 2385 2789 2385 2790 2385 2790 2385 2791 2383 2792 2379 2792 2378 2792 2377 2791 2376 2791 2374 2791 2373 2792 2372 2793 2372 2793 2371 2794 2371 2796 2371 2800 2370 2801 2370 2801 2369 2801 2369 2802 2368 2803 2366 2804 2366 2804 2364 2804 2363 2805 2363 2805 2362 2804 2361 2804 2361 2804 2360 2804 2359 2804 2359 2806 2359 2807 2359 2808 2359 2808 2359 2808 2358 2808 2356 2808 2355 2807 2355 2807 2355 2806 2353 2806 2352 2807 2351 2808 2350 2809 2350 2811 2347 2812 2347 2812 2347 2813 2348 2815 2349 2817 2351 2818 2352 2818 2352 2819 2352 2820 2352 2820 2352 2820 2352 2820 2351 2820 2351 2820 2351 2820 2350 2821 2350 2821 2350 2823 2350 2823 2350 2823 2349 2823 2347 2823 2346 2823 2344 2824 2344 2825 2344 2828 2345 2828 2345 2829 2344 2829 2343 2829 2342 2830 2339 2830 2338 2833 2336 2833 2336 2836 2334 2837 2335 2838 2335 2839 2335 2841 2336 2841 2336 2843 2336 2843 2334 2843 2333 2843 2333 2843 2332 2843 2331 2845 2331 2847 2331 2848 2331 2853 2328 2854 2327 2858 2326 2858 2326 2859 2325 2863 2322 2863 2322 2868 2322 2869 2323 2871 2322 2875 2323 2879 2324 2879 2325 2878 2325 2878 2325 2879 2327 2879 2328 2878 2331 2878 2331 2879 2332 2880 2333 2880 2333 2881 2334 2882 2335 2881 2336 2881 2337 2882 2340 2883 2341 2885 2344 2885 2344 2888 2344 2891 2346 2891 2346 2891 2347 2891 2347 2893 2348 2894 2349 2894 2349 2895 2349 2895 2349 2894 2350 2893 2350 2892 2349 2892 2349 2891 2349 2891 2349 2891 2349 2891 2353 2891 2354 2891 2354 2893 2355 2896 2357 2900 2361 2905 2361 2906 2360 2907 2359 2909 2359 2909 2360 2910 2361 2910 2361 2911 2363 2911 2364 2910 2364 2908 2365 2908 2365 2912 2371 2913 2372 2913 2372 2913 2373 2912 2375 2912 2376 2911 2376 2910 2377 2908 2380 2907 2380 2907 2380 2907 2380 2907 2380 2905 2380 2905 2380 2904 2380 2903 2380 2901 2381 2900 2380 2900 2380 2900 2379 2899 2379 2898 2379 2898 2380 2898 2380 2897 2380 2896 2381 2896 2382 2895 2383 2894 2383 2893 2383 2892 2385 2891 2386 2890 2386 2890 2387" />
+<path id="uy" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1942 3096 1942 3096 1942 3095 1943 3095 1943 3095 1943 3094 1943 3093 1943 3092 1943 3092 1943 3092 1943 3091 1944 3091 1944 3091 1945 3091 1945 3092 1946 3091 1946 3091 1947 3090 1948 3089 1948 3088 1948 3088 1947 3087 1947 3087 1946 3086 1946 3086 1946 3085 1946 3085 1946 3084 1946 3083 1946 3081 1945 3081 1945 3081 1946 3080 1946 3080 1946 3079 1947 3079 1947 3078 1947 3078 1946 3077 1946 3077 1946 3076 1946 3076 1946 3075 1946 3075 1946 3074 1946 3073 1945 3072 1946 3071 1946 3071 1946 3071 1947 3071 1948 3071 1948 3070 1949 3068 1949 3067 1949 3066 1948 3066 1948 3066 1948 3066 1947 3065 1948 3065 1948 3065 1949 3064 1950 3062 1951 3059 1952 3056 1952 3055 1952 3054 1952 3054 1952 3054 1952 3053 1951 3052 1951 3052 1950 3051 1950 3050 1950 3050 1951 3050 1952 3049 1953 3048 1954 3047 1954 3046 1955 3046 1955 3045 1955 3045 1955 3045 1956 3045 1956 3046 1956 3046 1956 3046 1957 3046 1959 3046 1959 3046 1960 3046 1960 3046 1961 3046 1961 3046 1961 3046 1962 3045 1962 3045 1962 3045 1963 3044 1963 3043 1966 3043 1967 3043 1968 3043 1968 3044 1970 3045 1971 3046 1972 3047 1972 3047 1972 3047 1974 3049 1976 3050 1976 3050 1977 3051 1979 3052 1981 3054 1981 3055 1981 3055 1981 3056 1981 3056 1980 3057 1980 3059 1980 3059 1981 3059 1982 3059 1982 3059 1983 3059 1984 3058 1986 3057 1986 3056 1986 3055 1987 3055 1988 3056 1990 3057 1991 3058 1991 3059 1993 3061 1993 3062 1995 3063 1996 3063 1997 3063 1997 3063 1998 3064 1999 3064 1999 3064 2000 3065 2000 3065 2001 3065 2001 3065 2003 3065 2005 3067 2005 3068 2005 3069 2006 3069 2006 3069 2007 3070 2008 3070 2010 3072 2011 3072 2011 3072 2014 3073 2014 3073 2017 3075 2018 3077 2018 3078 2018 3078 2018 3079 2019 3080 2020 3081 2020 3081 2020 3081 2022 3083 2022 3083 2023 3083 2024 3083 2025 3084 2026 3084 2027 3085 2026 3086 2025 3087 2024 3089 2022 3090 2021 3091 2021 3091 2020 3091 2020 3092 2020 3092 2020 3092 2020 3093 2020 3093 2020 3094 2020 3094 2020 3095 2020 3096 2020 3096 2020 3097 2020 3097 2020 3098 2020 3099 2020 3099 2020 3100 2020 3100 2022 3101 2022 3101 2022 3102 2022 3102 2021 3102 2021 3103 2021 3103 2021 3104 2020 3104 2020 3105 2020 3107 2019 3107 2019 3107 2017 3109 2017 3109 2016 3110 2016 3111 2015 3112 2014 3113 2013 3114 2011 3115 2011 3115 2010 3116 2010 3116 2010 3116 2009 3116 2008 3116 2009 3115 2009 3115 2008 3115 2008 3116 2008 3117 2007 3117 2004 3118 2004 3119 2003 3119 2002 3119 2001 3120 1999 3120 1998 3121 1997 3121 1996 3120 1995 3120 1994 3120 1994 3120 1993 3120 1993 3120 1992 3120 1992 3119 1991 3119 1991 3119 1991 3118 1990 3118 1987 3118 1985 3118 1984 3118 1984 3118 1982 3119 1982 3119 1981 3119 1980 3120 1980 3120 1980 3120 1978 3120 1975 3120 1974 3119 1974 3119 1975 3118 1974 3118 1971 3118 1967 3117 1966 3116 1963 3113 1962 3113 1962 3113 1958 3113 1956 3113 1954 3113 1951 3113 1951 3113 1950 3112 1950 3111 1949 3110 1947 3109 1947 3108 1945 3108 1945 3107 1945 3107 1944 3106 1944 3105 1943 3105 1943 3105 1942 3104 1942 3104 1942 3103 1942 3103 1942 3101 1942 3098 1942 3098 1942 3098 1942 3097 1943 3097 1942 3096" />
+<path id="uz" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3971 1926 3971 1926 3971 1927 3971 1929 3971 1930 3970 1931 3969 1931 3969 1931 3967 1931 3967 1931 3964 1931 3963 1931 3962 1931 3960 1930 3959 1930 3959 1930 3957 1930 3957 1930 3956 1930 3956 1930 3953 1931 3952 1932 3952 1932 3952 1933 3952 1934 3952 1935 3951 1935 3951 1935 3951 1936 3953 1937 3954 1937 3955 1937 3955 1937 3956 1938 3956 1939 3956 1939 3957 1940 3957 1940 3959 1940 3960 1940 3961 1939 3963 1940 3963 1940 3963 1940 3964 1941 3964 1941 3964 1941 3964 1942 3964 1942 3964 1943 3963 1943 3962 1945 3962 1947 3963 1949 3965 1950 3966 1951 3966 1951 3967 1952 3967 1952 3967 1953 3967 1954 3967 1955 3965 1956 3965 1956 3964 1957 3963 1957 3963 1957 3963 1958 3963 1959 3962 1959 3962 1960 3961 1961 3961 1961 3960 1961 3960 1962 3960 1962 3959 1963 3959 1963 3958 1964 3958 1964 3958 1965 3958 1965 3959 1966 3959 1966 3959 1967 3959 1967 3958 1968 3958 1968 3958 1969 3957 1968 3957 1968 3957 1968 3956 1968 3954 1967 3952 1968 3952 1968 3951 1968 3950 1968 3950 1968 3949 1969 3949 1969 3949 1968 3949 1968 3948 1968 3947 1966 3945 1965 3945 1965 3944 1965 3943 1966 3943 1966 3941 1966 3939 1966 3938 1966 3938 1966 3937 1965 3937 1963 3938 1959 3938 1958 3939 1957 3939 1957 3940 1957 3940 1956 3940 1956 3940 1956 3939 1955 3939 1955 3938 1955 3938 1955 3937 1955 3937 1955 3936 1955 3936 1955 3934 1954 3934 1954 3934 1954 3933 1953 3930 1952 3930 1952 3927 1951 3927 1951 3926 1951 3926 1952 3925 1952 3925 1952 3924 1952 3924 1952 3923 1952 3923 1952 3922 1951 3918 1949 3918 1949 3917 1949 3916 1948 3916 1947 3915 1947 3915 1947 3913 1946 3913 1945 3912 1945 3912 1945 3911 1945 3910 1945 3909 1944 3908 1944 3907 1943 3905 1942 3904 1941 3904 1941 3904 1941 3903 1940 3903 1940 3903 1940 3903 1940 3902 1940 3901 1940 3901 1940 3901 1940 3900 1940 3899 1940 3899 1940 3898 1939 3897 1938 3896 1938 3894 1937 3893 1936 3892 1936 3892 1935 3892 1935 3891 1934 3890 1934 3890 1933 3889 1933 3887 1932 3886 1931 3884 1931 3883 1930 3883 1930 3882 1929 3881 1929 3881 1928 3880 1928 3879 1928 3878 1927 3878 1927 3877 1926 3875 1925 3874 1925 3872 1923 3872 1922 3872 1922 3872 1922 3872 1920 3872 1919 3871 1917 3871 1917 3869 1916 3869 1916 3868 1916 3868 1916 3868 1915 3867 1914 3866 1912 3865 1910 3865 1910 3865 1909 3865 1909 3865 1908 3865 1908 3864 1907 3864 1906 3863 1906 3861 1904 3859 1903 3859 1903 3856 1903 3856 1903 3856 1903 3855 1904 3855 1905 3855 1905 3854 1905 3853 1905 3852 1904 3852 1904 3851 1904 3850 1904 3849 1904 3849 1904 3849 1904 3848 1904 3846 1904 3845 1904 3844 1904 3844 1904 3843 1904 3842 1904 3841 1904 3841 1904 3840 1904 3840 1903 3839 1903 3839 1903 3839 1903 3838 1902 3837 1902 3836 1902 3836 1902 3836 1902 3835 1901 3835 1901 3835 1899 3835 1899 3836 1898 3836 1898 3836 1898 3836 1897 3835 1896 3834 1896 3835 1895 3835 1895 3836 1895 3836 1895 3837 1895 3837 1895 3838 1895 3837 1894 3836 1894 3836 1894 3836 1893 3836 1893 3834 1891 3834 1889 3834 1888 3832 1887 3831 1887 3829 1887 3827 1887 3826 1887 3826 1887 3825 1887 3825 1887 3824 1887 3822 1886 3822 1886 3821 1885 3822 1885 3822 1885 3821 1884 3821 1884 3820 1883 3819 1883 3818 1883 3818 1883 3818 1883 3817 1883 3817 1883 3815 1882 3814 1881 3814 1881 3813 1880 3811 1879 3811 1879 3811 1880 3811 1880 3811 1881 3811 1881 3810 1881 3810 1881 3809 1881 3808 1881 3807 1881 3807 1881 3806 1881 3806 1881 3804 1881 3804 1882 3805 1882 3805 1882 3805 1883 3806 1883 3806 1883 3807 1883 3809 1887 3808 1887 3808 1887 3808 1886 3808 1885 3807 1885 3807 1885 3806 1884 3805 1884 3803 1884 3803 1884 3802 1884 3802 1884 3800 1885 3801 1885 3801 1886 3801 1886 3800 1887 3799 1888 3799 1889 3796 1889 3795 1889 3795 1889 3794 1889 3793 1889 3793 1889 3793 1889 3792 1889 3791 1889 3791 1889 3791 1889 3790 1890 3790 1890 3789 1890 3789 1891 3788 1891 3788 1892 3788 1892 3787 1893 3787 1893 3786 1893 3786 1893 3785 1893 3785 1893 3785 1894 3785 1897 3786 1900 3786 1901 3787 1901 3787 1901 3788 1902 3786 1903 3786 1903 3785 1903 3784 1903 3784 1903 3783 1903 3782 1903 3781 1903 3781 1903 3780 1903 3780 1903 3778 1903 3778 1903 3778 1903 3775 1903 3773 1903 3770 1902 3769 1902 3769 1902 3769 1898 3769 1893 3769 1890 3769 1888 3769 1884 3769 1880 3769 1876 3769 1874 3769 1870 3769 1866 3769 1862 3769 1861 3769 1852 3769 1848 3769 1844 3774 1843 3776 1842 3780 1841 3781 1841 3781 1841 3782 1841 3782 1841 3786 1840 3792 1839 3795 1838 3798 1837 3802 1837 3806 1836 3810 1835 3810 1835 3811 1835 3828 1844 3852 1856 3852 1857 3854 1858 3859 1862 3862 1865 3865 1867 3866 1868 3866 1868 3871 1867 3873 1867 3875 1867 3878 1866 3885 1866 3888 1866 3890 1866 3894 1866 3897 1867 3898 1867 3905 1867 3907 1866 3911 1864 3912 1864 3914 1865 3917 1868 3917 1869 3921 1870 3921 1871 3923 1873 3925 1876 3926 1878 3931 1876 3931 1879 3931 1881 3931 1882 3930 1885 3930 1885 3930 1886 3930 1887 3930 1891 3930 1892 3938 1892 3938 1893 3938 1894 3938 1896 3938 1896 3939 1900 3941 1905 3941 1905 3942 1905 3943 1905 3946 1905 3948 1905 3951 1905 3952 1905 3953 1905 3954 1905 3955 1905 3957 1905 3960 1905 3961 1906 3963 1907 3963 1907 3964 1907 3963 1908 3963 1909 3963 1910 3962 1910 3962 1910 3962 1911 3965 1912 3965 1913 3965 1913 3965 1913 3966 1913 3968 1914 3969 1914 3971 1914 3971 1914 3972 1913 3971 1912 3971 1912 3970 1910 3971 1909 3971 1909 3971 1908 3971 1908 3972 1908 3973 1908 3973 1908 3973 1907 3973 1907 3974 1906 3975 1906 3978 1904 3978 1904 3978 1903 3978 1902 3978 1902 3981 1900 3981 1900 3983 1900 3985 1898 3987 1897 3989 1896 3990 1896 3991 1896 3992 1896 3994 1895 3995 1894 3996 1894 3996 1894 3997 1892 3998 1891 3999 1891 3999 1891 4000 1890 4001 1890 4001 1890 4002 1891 4002 1891 4003 1891 4003 1891 4004 1890 4004 1890 4005 1888 4006 1888 4006 1889 4007 1888 4008 1888 4008 1888 4009 1888 4009 1887 4010 1887 4010 1887 4011 1887 4012 1888 4013 1888 4013 1888 4013 1888 4013 1889 4013 1889 4013 1889 4009 1891 4008 1891 4008 1891 4007 1891 4007 1891 4007 1892 4007 1893 4006 1893 4005 1893 4004 1893 4002 1895 4001 1895 4001 1896 4001 1896 4001 1896 3998 1898 3998 1898 3997 1898 3996 1898 3996 1898 3996 1899 3996 1899 3997 1899 3998 1899 3998 1899 3999 1900 3999 1900 4000 1900 4000 1900 4001 1901 4001 1901 4002 1901 4003 1901 4003 1900 4004 1900 4004 1900 4005 1901 4006 1902 4006 1902 4006 1904 4009 1904 4012 1905 4012 1905 4013 1905 4015 1906 4016 1906 4016 1905 4016 1905 4016 1904 4016 1904 4016 1902 4016 1902 4017 1903 4018 1903 4018 1903 4019 1903 4019 1902 4019 1901 4020 1901 4019 1900 4019 1900 4019 1900 4019 1899 4020 1899 4023 1902 4023 1902 4023 1903 4023 1903 4023 1904 4023 1904 4024 1905 4027 1905 4027 1904 4028 1905 4028 1907 4028 1908 4030 1907 4031 1907 4033 1907 4034 1908 4035 1909 4035 1909 4036 1910 4036 1910 4037 1910 4039 1910 4042 1910 4043 1910 4044 1910 4043 1911 4043 1911 4040 1912 4039 1913 4039 1913 4038 1913 4036 1914 4036 1915 4035 1915 4035 1915 4034 1915 4031 1914 4031 1914 4031 1915 4031 1916 4032 1916 4032 1916 4032 1917 4032 1917 4032 1917 4031 1917 4031 1917 4030 1916 4029 1916 4029 1916 4028 1916 4028 1916 4027 1917 4025 1918 4026 1919 4023 1920 4022 1921 4022 1921 4020 1921 4017 1920 4017 1920 4017 1920 4017 1919 4015 1919 4014 1919 4013 1919 4011 1919 4011 1919 4010 1919 4009 1919 4009 1920 4008 1920 4007 1920 4006 1920 4006 1920 4005 1920 4004 1920 4003 1920 4003 1920 4003 1920 4002 1920 4000 1918 3999 1918 3999 1916 3999 1916 4000 1916 4002 1915 4005 1913 4005 1912 4006 1912 4006 1912 4005 1911 4004 1911 4004 1910 4004 1910 4002 1908 4001 1907 4000 1907 4000 1907 4000 1907 4000 1907 3999 1907 3999 1907 3999 1908 3999 1909 3998 1909 3997 1910 3994 1911 3993 1912 3993 1912 3992 1912 3991 1912 3991 1912 3990 1912 3990 1913 3989 1913 3989 1913 3988 1913 3988 1913 3986 1912 3986 1912 3986 1911 3984 1911 3983 1911 3983 1911 3983 1911 3981 1914 3981 1916 3982 1918 3982 1918 3982 1920 3982 1920 3981 1921 3981 1921 3980 1920 3979 1920 3978 1920 3978 1920 3978 1920 3973 1920 3973 1920 3972 1920 3971 1921 3971 1921 3971 1921 3972 1922 3972 1922 3973 1922 3973 1922 3974 1922 3975 1921 3977 1921 3977 1922 3977 1922 3976 1922 3974 1922 3974 1923 3974 1924 3974 1924 3975 1924 3976 1925 3973 1926 3973 1926 3973 1926 3972 1926 3971 1926" />
+<path id="vc" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1898 2353 1897 2352 1896 2352 1896 2352 1896 2351 1896 2350 1897 2349 1898 2349 1898 2349 1899 2350 1899 2350 1899 2351 1899 2351 1898 2352 1898 2353 1898 2353" />
+<path id="ve" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1913 2436 1912 2437 1908 2438 1908 2438 1907 2439 1907 2440 1906 2442 1906 2442 1905 2442 1905 2443 1906 2443 1906 2444 1907 2445 1907 2445 1907 2446 1907 2446 1907 2447 1907 2447 1907 2448 1908 2449 1908 2448 1909 2448 1909 2448 1911 2448 1911 2448 1912 2448 1912 2449 1912 2449 1912 2450 1910 2452 1909 2452 1909 2452 1908 2453 1907 2453 1906 2453 1906 2454 1906 2454 1906 2454 1905 2455 1904 2454 1902 2454 1902 2455 1900 2455 1900 2455 1899 2455 1898 2456 1897 2457 1898 2458 1898 2460 1898 2462 1898 2464 1896 2465 1896 2465 1896 2466 1896 2467 1895 2467 1895 2467 1894 2468 1899 2473 1903 2477 1904 2479 1905 2479 1905 2479 1905 2479 1906 2479 1906 2480 1906 2480 1907 2483 1907 2483 1907 2484 1906 2485 1906 2486 1905 2486 1903 2487 1903 2487 1903 2487 1902 2488 1902 2489 1901 2490 1901 2490 1901 2490 1900 2491 1898 2491 1896 2491 1893 2492 1893 2492 1893 2493 1893 2493 1893 2494 1892 2494 1892 2495 1891 2495 1890 2495 1890 2494 1889 2495 1888 2495 1888 2496 1887 2496 1886 2496 1885 2496 1885 2496 1884 2496 1883 2497 1883 2497 1882 2497 1882 2497 1881 2497 1881 2497 1880 2496 1880 2496 1878 2496 1878 2496 1876 2497 1875 2498 1874 2498 1873 2498 1873 2498 1872 2500 1872 2500 1873 2501 1873 2502 1873 2503 1873 2503 1873 2504 1873 2504 1872 2505 1871 2506 1870 2506 1870 2506 1869 2505 1866 2502 1865 2500 1864 2500 1863 2499 1863 2499 1863 2499 1862 2499 1862 2500 1862 2500 1862 2500 1861 2501 1861 2501 1860 2501 1860 2501 1860 2500 1859 2500 1859 2499 1858 2499 1855 2499 1854 2500 1854 2500 1853 2500 1853 2500 1852 2500 1852 2500 1852 2499 1851 2498 1851 2497 1851 2497 1849 2496 1849 2496 1847 2496 1847 2496 1846 2496 1846 2496 1845 2496 1844 2497 1843 2497 1843 2496 1843 2495 1842 2495 1842 2494 1842 2494 1841 2494 1841 2494 1840 2494 1840 2494 1840 2495 1840 2496 1841 2496 1841 2496 1842 2497 1842 2497 1842 2498 1843 2499 1843 2499 1845 2501 1846 2502 1846 2502 1847 2503 1848 2503 1850 2505 1850 2506 1850 2506 1850 2507 1849 2507 1849 2508 1849 2509 1849 2511 1850 2514 1850 2514 1851 2516 1852 2517 1853 2519 1853 2521 1853 2521 1852 2522 1852 2522 1852 2523 1856 2524 1856 2524 1859 2524 1863 2524 1863 2524 1863 2526 1863 2527 1862 2528 1861 2528 1860 2528 1859 2529 1857 2530 1857 2531 1856 2531 1854 2531 1853 2531 1853 2531 1852 2532 1852 2532 1852 2533 1852 2534 1852 2536 1852 2536 1851 2537 1849 2539 1847 2538 1846 2538 1844 2540 1844 2540 1844 2540 1844 2541 1843 2541 1842 2542 1841 2543 1841 2543 1840 2542 1840 2542 1838 2543 1837 2544 1835 2544 1835 2545 1834 2545 1834 2546 1834 2546 1834 2547 1834 2547 1834 2547 1834 2548 1833 2548 1833 2548 1832 2548 1832 2548 1831 2549 1830 2549 1830 2550 1830 2550 1830 2551 1829 2552 1828 2552 1828 2552 1828 2552 1828 2551 1828 2551 1828 2550 1828 2550 1829 2549 1829 2549 1829 2548 1828 2548 1828 2547 1828 2547 1827 2547 1826 2547 1825 2547 1823 2548 1822 2549 1822 2549 1822 2549 1821 2550 1819 2551 1816 2551 1816 2550 1815 2550 1808 2544 1807 2543 1807 2543 1807 2543 1806 2542 1806 2539 1805 2535 1803 2530 1802 2528 1802 2528 1802 2527 1801 2527 1801 2526 1802 2526 1802 2526 1802 2525 1802 2524 1801 2524 1801 2524 1800 2524 1800 2523 1797 2520 1796 2520 1795 2518 1795 2518 1795 2518 1793 2517 1792 2517 1792 2517 1794 2514 1797 2512 1798 2511 1799 2510 1799 2510 1800 2508 1800 2507 1799 2507 1799 2507 1799 2507 1799 2506 1798 2505 1798 2504 1797 2503 1797 2503 1796 2503 1796 2503 1795 2503 1795 2502 1795 2502 1794 2500 1794 2499 1794 2498 1793 2497 1792 2496 1792 2495 1792 2494 1792 2494 1792 2493 1791 2490 1792 2487 1792 2486 1792 2485 1792 2483 1792 2482 1792 2481 1792 2481 1791 2478 1792 2477 1793 2476 1793 2476 1794 2475 1794 2475 1795 2474 1795 2473 1795 2473 1794 2472 1794 2472 1795 2471 1795 2470 1795 2469 1796 2468 1797 2468 1797 2467 1798 2467 1798 2467 1798 2466 1797 2466 1797 2465 1797 2465 1797 2464 1798 2464 1797 2464 1797 2463 1796 2463 1796 2462 1795 2462 1794 2462 1792 2462 1790 2463 1790 2463 1789 2463 1788 2463 1788 2463 1787 2463 1787 2463 1786 2463 1786 2463 1785 2463 1784 2464 1784 2464 1783 2464 1782 2464 1782 2464 1781 2464 1780 2464 1779 2465 1778 2464 1778 2464 1777 2464 1776 2464 1773 2463 1772 2463 1772 2463 1771 2464 1770 2464 1770 2465 1769 2465 1769 2465 1768 2465 1768 2464 1767 2464 1766 2465 1766 2465 1761 2459 1755 2451 1754 2451 1753 2451 1753 2451 1753 2452 1752 2452 1752 2452 1751 2451 1751 2451 1751 2451 1750 2451 1748 2450 1745 2449 1744 2449 1743 2449 1743 2449 1742 2450 1741 2451 1741 2451 1741 2451 1738 2451 1737 2451 1736 2450 1734 2450 1733 2450 1732 2450 1731 2450 1731 2450 1730 2450 1728 2451 1728 2451 1727 2451 1726 2451 1725 2450 1724 2450 1724 2450 1724 2449 1723 2448 1723 2448 1723 2448 1722 2447 1722 2446 1723 2445 1721 2444 1720 2444 1719 2444 1719 2444 1718 2444 1717 2443 1717 2440 1718 2436 1719 2434 1719 2434 1720 2434 1720 2433 1720 2432 1719 2429 1719 2429 1719 2429 1719 2429 1718 2428 1714 2424 1713 2420 1713 2417 1711 2417 1710 2416 1710 2416 1709 2415 1709 2414 1707 2415 1706 2416 1705 2416 1704 2416 1703 2416 1703 2415 1705 2412 1707 2410 1708 2409 1709 2406 1709 2404 1709 2403 1710 2401 1710 2401 1710 2397 1710 2396 1711 2396 1712 2394 1712 2393 1714 2390 1715 2388 1716 2386 1717 2385 1717 2385 1719 2384 1720 2384 1722 2383 1724 2379 1726 2376 1729 2376 1729 2375 1731 2375 1733 2374 1735 2374 1736 2373 1736 2374 1735 2375 1734 2375 1733 2375 1733 2376 1732 2376 1731 2376 1730 2376 1729 2376 1728 2376 1726 2377 1725 2378 1726 2379 1726 2379 1726 2380 1726 2380 1726 2381 1726 2382 1727 2383 1728 2384 1728 2385 1729 2386 1729 2387 1730 2389 1730 2390 1731 2391 1731 2391 1732 2391 1732 2392 1731 2395 1731 2396 1730 2396 1729 2397 1729 2397 1728 2398 1728 2399 1728 2399 1726 2401 1723 2406 1724 2407 1724 2407 1725 2408 1725 2409 1726 2409 1726 2410 1726 2411 1729 2413 1729 2413 1729 2414 1729 2415 1729 2417 1729 2417 1730 2418 1730 2418 1731 2418 1731 2418 1732 2418 1733 2418 1736 2417 1736 2417 1737 2416 1737 2416 1738 2415 1738 2415 1738 2414 1739 2414 1739 2414 1740 2414 1740 2413 1740 2413 1740 2413 1740 2410 1740 2410 1740 2409 1740 2408 1740 2405 1739 2404 1739 2404 1737 2400 1736 2400 1736 2400 1735 2398 1734 2397 1734 2395 1733 2394 1732 2394 1733 2391 1734 2390 1734 2388 1733 2387 1734 2387 1734 2387 1735 2387 1735 2387 1736 2387 1737 2387 1738 2386 1740 2386 1740 2385 1741 2385 1741 2385 1742 2384 1743 2384 1743 2384 1744 2383 1745 2383 1746 2383 1747 2383 1748 2383 1749 2383 1749 2383 1750 2382 1750 2382 1752 2382 1753 2381 1755 2380 1755 2380 1756 2380 1757 2379 1756 2379 1757 2379 1759 2380 1759 2380 1760 2380 1760 2380 1761 2379 1761 2377 1760 2377 1760 2376 1759 2376 1757 2376 1754 2377 1754 2377 1753 2377 1753 2376 1753 2374 1752 2373 1752 2372 1752 2372 1753 2371 1754 2370 1754 2369 1756 2368 1757 2368 1758 2368 1758 2369 1759 2370 1759 2370 1760 2371 1760 2372 1760 2373 1760 2373 1760 2374 1761 2376 1761 2376 1761 2378 1762 2378 1762 2379 1763 2379 1763 2379 1764 2379 1764 2379 1764 2379 1765 2379 1766 2379 1766 2379 1767 2379 1768 2379 1769 2378 1771 2379 1774 2380 1775 2380 1778 2381 1779 2382 1780 2382 1780 2383 1782 2384 1783 2384 1784 2386 1785 2389 1785 2389 1784 2389 1784 2389 1784 2390 1784 2391 1784 2392 1785 2393 1786 2395 1786 2395 1787 2395 1788 2395 1789 2395 1791 2395 1791 2395 1792 2395 1792 2395 1796 2394 1797 2394 1798 2394 1799 2394 1800 2394 1803 2394 1805 2393 1813 2393 1813 2393 1814 2393 1815 2393 1815 2393 1816 2393 1816 2393 1816 2392 1817 2393 1817 2393 1820 2394 1819 2394 1819 2395 1819 2395 1820 2396 1821 2397 1822 2398 1824 2399 1824 2399 1825 2399 1825 2399 1828 2400 1830 2401 1832 2401 1836 2402 1840 2401 1840 2401 1841 2401 1841 2401 1841 2400 1843 2399 1844 2399 1844 2399 1845 2399 1847 2398 1846 2397 1847 2397 1847 2397 1850 2396 1851 2395 1852 2396 1852 2396 1855 2396 1856 2396 1856 2396 1857 2395 1858 2395 1856 2394 1855 2394 1853 2394 1850 2394 1850 2394 1849 2394 1849 2395 1849 2394 1848 2393 1849 2392 1849 2393 1850 2393 1853 2393 1855 2392 1858 2392 1858 2393 1860 2393 1861 2393 1863 2392 1864 2392 1865 2392 1865 2392 1866 2391 1869 2391 1869 2392 1869 2392 1870 2392 1871 2391 1872 2391 1873 2391 1874 2391 1876 2391 1877 2391 1879 2391 1880 2392 1882 2392 1883 2392 1885 2391 1887 2391 1887 2392 1886 2392 1885 2392 1884 2393 1883 2393 1883 2393 1883 2393 1882 2393 1881 2393 1880 2393 1880 2393 1880 2394 1879 2394 1878 2394 1876 2394 1875 2394 1874 2394 1874 2394 1871 2394 1870 2394 1869 2396 1869 2395 1870 2395 1870 2395 1871 2394 1871 2395 1871 2396 1871 2396 1871 2396 1871 2397 1871 2396 1870 2396 1870 2396 1869 2396 1869 2396 1869 2396 1869 2398 1870 2398 1870 2398 1870 2398 1869 2397 1870 2396 1870 2397 1871 2397 1871 2397 1872 2397 1872 2396 1873 2397 1874 2398 1874 2398 1875 2401 1874 2402 1873 2402 1872 2402 1871 2402 1870 2401 1870 2401 1869 2401 1869 2401 1868 2401 1868 2401 1869 2402 1870 2402 1870 2402 1871 2402 1872 2403 1874 2402 1874 2402 1874 2402 1875 2401 1875 2401 1875 2400 1875 2399 1875 2399 1876 2400 1877 2400 1877 2400 1877 2401 1878 2403 1879 2405 1880 2407 1879 2407 1880 2407 1880 2407 1880 2407 1880 2407 1881 2406 1881 2405 1881 2405 1881 2404 1881 2403 1881 2404 1882 2405 1882 2407 1882 2409 1882 2408 1882 2407 1883 2407 1883 2406 1883 2406 1884 2405 1884 2405 1883 2404 1883 2404 1882 2404 1882 2404 1881 2403 1881 2403 1882 2403 1884 2403 1884 2403 1885 2404 1888 2407 1889 2409 1889 2409 1889 2408 1889 2408 1888 2407 1888 2406 1888 2406 1888 2405 1888 2405 1889 2406 1890 2406 1890 2406 1891 2406 1892 2406 1891 2406 1891 2405 1890 2404 1891 2404 1892 2405 1892 2405 1893 2406 1894 2406 1894 2407 1894 2407 1895 2408 1897 2409 1898 2410 1899 2409 1900 2410 1900 2410 1901 2410 1901 2410 1903 2412 1904 2413 1904 2413 1904 2414 1904 2414 1903 2415 1902 2415 1901 2416 1900 2417 1899 2417 1899 2418 1900 2418 1900 2417 1901 2416 1901 2416 1901 2416 1900 2418 1899 2419 1899 2419 1899 2419 1899 2420 1898 2423 1898 2424 1898 2425 1897 2425 1897 2425 1895 2425 1894 2425 1892 2425 1892 2425 1891 2425 1891 2426 1893 2427 1894 2427 1895 2428 1897 2427 1898 2427 1899 2427 1900 2427 1899 2428 1899 2428 1900 2428 1900 2427 1901 2426 1901 2426 1902 2425 1905 2425 1906 2425 1906 2425 1907 2426 1909 2426 1910 2426 1910 2425 1911 2425 1913 2425 1913 2425 1914 2425 1916 2426 1917 2426 1917 2426 1917 2426 1918 2428 1920 2430 1920 2430 1919 2431 1918 2431 1918 2431 1918 2432 1917 2432 1917 2432 1916 2434 1916 2434 1915 2434 1915 2434 1913 2436 1913 2436 M 1852 2389 1852 2389 1851 2388 1850 2388 1850 2387 1850 2388 1850 2388 1849 2388 1847 2388 1846 2387 1847 2386 1849 2385 1850 2385 1850 2385 1850 2386 1850 2386 1850 2386 1850 2386 1851 2387 1851 2387 1852 2387 1852 2387 1852 2387 1853 2386 1854 2385 1855 2384 1855 2385 1856 2386 1856 2387 1855 2388 1853 2389 1852 2389 M 1832 2389 1832 2389 1831 2388 1830 2388 1830 2388 1831 2387 1831 2387 1831 2387 1832 2387 1833 2388 1834 2388 1834 2388 1833 2389 1833 2389 1832 2389 M 1903 2418 1902 2418 1902 2418 1901 2419 1901 2419 1900 2420 1900 2420 1900 2420 1900 2420 1899 2420 1900 2419 1902 2418 1903 2417 1903 2418 1903 2418 M 1902 2420 1902 2421 1902 2421 1900 2421 1900 2421 1902 2419 1902 2418 1902 2418 1902 2418 1903 2418 1903 2419 1903 2419 1903 2419 1903 2420 1902 2420 1902 2420 M 1898 2424 1898 2424 1898 2424 1898 2423 1898 2423 1899 2422 1900 2422 1900 2422 1900 2421 1903 2421 1903 2421 1902 2423 1901 2423 1901 2423 1901 2423 1901 2423 1900 2423 1899 2423 1899 2424 1898 2424 1898 2424 M 1902 2425 1902 2425 1901 2425 1901 2425 1903 2423 1904 2423 1904 2423 1904 2424 1904 2424 1904 2424 1902 2425 M 1900 2425 1900 2424 1899 2424 1898 2424 1898 2424 1898 2424 1899 2424 1900 2423 1902 2423 1901 2424 1901 2424 1900 2424 1900 2424 1900 2425 M 1899 2427 1898 2427 1896 2427 1897 2426 1897 2426 1897 2426 1897 2426 1897 2426 1898 2426 1898 2426 1899 2426 1899 2425 1900 2425 1901 2425 1901 2425 1901 2426 1901 2426 1900 2427 1899 2427 M 1897 2427 1896 2427 1895 2427 1894 2427 1894 2427 1894 2427 1893 2427 1892 2426 1893 2426 1894 2425 1894 2425 1894 2425 1894 2425 1896 2426 1896 2426 1896 2426 1896 2426 1897 2426 1896 2426 1896 2426 1896 2427 1898 2427 1898 2427 1897 2427 1897 2427" />
+<path id="vg" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1846 2268 1846 2268 1846 2268 1846 2267 1848 2267 1847 2267 1846 2268 1846 2268 M 1842 2269 1842 2269 1842 2269 1842 2268 1842 2268 1843 2268 1843 2268 1844 2268 1844 2268 1844 2268 1844 2268 1844 2268 1842 2269" />
+<path id="vn" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 4575 2376 4575 2375 4575 2374 4575 2374 4575 2373 4575 2371 4575 2371 4575 2371 4578 2371 4579 2371 4580 2371 4580 2371 4581 2370 4582 2370 4583 2370 4583 2370 4584 2370 4585 2369 4585 2368 4586 2367 4587 2366 4587 2366 4588 2366 4589 2366 4590 2366 4590 2366 4590 2366 4591 2367 4591 2367 4593 2365 4593 2365 4594 2362 4594 2361 4593 2358 4592 2357 4592 2357 4592 2356 4592 2355 4594 2350 4594 2349 4594 2346 4593 2345 4591 2342 4592 2341 4592 2340 4590 2339 4590 2339 4590 2337 4590 2336 4590 2335 4590 2334 4590 2334 4591 2332 4591 2332 4591 2332 4592 2332 4592 2331 4593 2330 4593 2328 4593 2328 4593 2328 4593 2327 4593 2325 4593 2324 4592 2323 4592 2323 4592 2322 4593 2322 4594 2322 4594 2321 4595 2320 4595 2319 4595 2319 4595 2319 4595 2318 4594 2317 4592 2315 4591 2315 4590 2314 4588 2313 4587 2311 4587 2310 4587 2309 4588 2309 4588 2309 4590 2308 4591 2307 4592 2307 4592 2307 4591 2306 4590 2306 4590 2306 4589 2306 4587 2304 4587 2304 4586 2304 4586 2303 4586 2303 4586 2302 4585 2302 4584 2302 4584 2302 4584 2302 4582 2299 4582 2298 4582 2298 4581 2299 4581 2299 4581 2300 4580 2300 4579 2300 4579 2300 4577 2297 4577 2296 4577 2293 4577 2292 4577 2291 4576 2291 4575 2291 4575 2291 4575 2290 4573 2288 4572 2287 4571 2287 4570 2286 4569 2285 4569 2284 4568 2284 4567 2283 4566 2282 4566 2281 4565 2281 4565 2281 4564 2280 4563 2278 4562 2275 4561 2274 4560 2272 4558 2272 4558 2272 4557 2272 4557 2272 4557 2271 4557 2271 4556 2271 4555 2270 4554 2268 4554 2267 4554 2267 4554 2265 4555 2265 4555 2265 4554 2264 4554 2264 4553 2263 4551 2263 4548 2262 4547 2262 4545 2261 4545 2260 4545 2259 4541 2257 4540 2257 4540 2257 4539 2256 4537 2255 4536 2255 4534 2254 4536 2253 4537 2252 4538 2251 4538 2251 4538 2250 4537 2250 4537 2249 4537 2249 4536 2248 4537 2248 4537 2248 4538 2248 4538 2248 4539 2248 4539 2248 4540 2248 4540 2248 4543 2248 4543 2249 4544 2249 4545 2249 4546 2249 4547 2249 4547 2248 4547 2248 4548 2247 4548 2247 4549 2246 4550 2246 4549 2245 4549 2245 4549 2245 4550 2244 4550 2243 4551 2243 4552 2243 4552 2241 4551 2240 4550 2239 4548 2238 4547 2238 4546 2236 4545 2236 4544 2237 4543 2236 4542 2236 4542 2236 4543 2235 4544 2235 4546 2234 4546 2233 4546 2233 4546 2232 4546 2232 4544 2232 4543 2231 4542 2230 4541 2229 4541 2229 4540 2228 4539 2228 4538 2227 4534 2229 4533 2231 4532 2231 4532 2232 4531 2233 4531 2232 4530 2232 4530 2231 4527 2230 4526 2230 4525 2230 4524 2230 4523 2230 4523 2230 4522 2229 4522 2228 4521 2226 4519 2224 4519 2224 4519 2223 4518 2223 4519 2221 4519 2220 4518 2220 4518 2220 4519 2219 4520 2218 4520 2218 4520 2217 4520 2216 4520 2215 4518 2216 4516 2216 4515 2217 4515 2215 4515 2215 4515 2215 4515 2213 4514 2212 4514 2212 4513 2212 4513 2212 4512 2212 4511 2210 4511 2209 4509 2208 4509 2208 4508 2207 4507 2206 4507 2206 4507 2205 4506 2205 4507 2204 4508 2203 4510 2201 4511 2200 4511 2199 4512 2199 4512 2199 4512 2199 4515 2200 4518 2202 4518 2202 4519 2203 4521 2204 4521 2204 4523 2202 4525 2198 4526 2198 4526 2199 4527 2200 4527 2201 4528 2201 4528 2202 4528 2202 4529 2202 4529 2201 4529 2200 4530 2199 4531 2199 4533 2201 4533 2201 4534 2202 4535 2203 4536 2203 4536 2203 4536 2202 4536 2202 4537 2200 4537 2199 4538 2198 4540 2198 4540 2199 4540 2199 4542 2200 4542 2200 4543 2199 4544 2199 4545 2198 4545 2198 4547 2198 4547 2198 4548 2198 4550 2196 4549 2194 4551 2192 4556 2190 4558 2190 4558 2191 4561 2192 4561 2193 4561 2193 4561 2193 4561 2194 4561 2194 4562 2194 4564 2195 4565 2195 4565 2196 4566 2197 4568 2196 4568 2196 4568 2195 4569 2195 4570 2195 4571 2196 4572 2196 4572 2196 4572 2197 4572 2197 4573 2197 4574 2197 4576 2197 4576 2197 4576 2196 4578 2197 4579 2197 4580 2198 4580 2198 4581 2199 4580 2201 4578 2201 4578 2201 4577 2204 4577 2204 4577 2204 4577 2206 4577 2206 4578 2206 4578 2206 4579 2208 4579 2208 4579 2208 4579 2211 4580 2211 4582 2211 4582 2212 4584 2212 4585 2212 4585 2213 4584 2214 4584 2214 4587 2216 4588 2216 4588 2216 4589 2215 4589 2216 4590 2217 4590 2217 4590 2218 4593 2218 4595 2217 4595 2217 4596 2217 4596 2217 4597 2216 4598 2217 4599 2218 4599 2218 4600 2219 4600 2218 4600 2218 4601 2219 4601 2219 4599 2220 4599 2220 4599 2219 4599 2219 4598 2219 4598 2219 4597 2219 4595 2221 4594 2222 4592 2222 4591 2222 4591 2222 4590 2223 4590 2224 4590 2225 4590 2226 4590 2226 4590 2227 4590 2227 4589 2227 4588 2227 4588 2227 4586 2228 4585 2228 4585 2227 4586 2227 4586 2227 4585 2227 4584 2228 4584 2228 4583 2228 4583 2228 4582 2227 4582 2228 4582 2228 4583 2228 4583 2229 4582 2229 4582 2229 4581 2228 4580 2228 4581 2228 4581 2228 4581 2227 4581 2227 4578 2227 4578 2227 4579 2227 4579 2227 4579 2228 4579 2228 4580 2228 4580 2229 4579 2229 4580 2230 4580 2230 4581 2231 4580 2232 4579 2233 4578 2233 4578 2233 4578 2234 4577 2238 4577 2238 4576 2238 4576 2238 4577 2238 4577 2239 4576 2239 4576 2239 4576 2240 4575 2240 4574 2241 4573 2241 4571 2243 4571 2243 4571 2243 4570 2244 4570 2243 4569 2244 4569 2243 4569 2243 4568 2243 4567 2244 4567 2246 4565 2249 4565 2250 4565 2252 4565 2253 4565 2253 4565 2255 4564 2255 4562 2258 4562 2259 4562 2259 4562 2261 4563 2261 4564 2262 4564 2263 4564 2264 4564 2264 4564 2264 4565 2264 4565 2265 4565 2266 4566 2266 4566 2267 4566 2267 4567 2267 4569 2270 4569 2270 4570 2271 4570 2271 4571 2271 4572 2272 4572 2272 4575 2274 4575 2275 4576 2275 4576 2276 4575 2277 4575 2277 4575 2279 4576 2280 4577 2282 4578 2284 4579 2285 4580 2285 4581 2286 4583 2288 4584 2289 4585 2289 4585 2289 4585 2289 4586 2290 4586 2291 4587 2293 4587 2293 4590 2294 4592 2296 4593 2297 4592 2297 4592 2297 4591 2296 4591 2296 4591 2297 4591 2297 4592 2297 4593 2297 4594 2298 4595 2299 4597 2301 4597 2301 4597 2302 4597 2302 4598 2303 4599 2302 4599 2302 4600 2302 4600 2302 4601 2302 4601 2303 4603 2304 4603 2304 4602 2304 4602 2305 4603 2307 4604 2306 4604 2306 4604 2305 4604 2304 4605 2305 4605 2305 4605 2305 4604 2305 4604 2306 4604 2306 4605 2307 4605 2308 4607 2310 4608 2313 4610 2315 4612 2316 4612 2317 4613 2316 4613 2316 4614 2318 4614 2321 4615 2323 4615 2324 4616 2325 4616 2325 4616 2326 4616 2326 4617 2327 4617 2328 4617 2329 4617 2330 4618 2332 4618 2334 4619 2334 4619 2335 4619 2337 4620 2339 4621 2341 4621 2342 4621 2343 4620 2343 4620 2342 4620 2341 4619 2342 4620 2343 4620 2343 4620 2344 4620 2345 4620 2346 4620 2347 4620 2348 4620 2348 4621 2353 4621 2353 4622 2355 4622 2355 4623 2355 4623 2356 4623 2356 4623 2357 4623 2357 4623 2357 4622 2358 4620 2360 4619 2361 4619 2362 4619 2362 4620 2363 4621 2363 4622 2365 4621 2365 4621 2365 4620 2365 4620 2364 4619 2364 4619 2364 4618 2364 4619 2364 4619 2366 4619 2366 4619 2369 4620 2373 4620 2372 4620 2371 4619 2369 4619 2370 4619 2371 4619 2371 4619 2372 4619 2372 4619 2372 4618 2373 4618 2373 4618 2373 4619 2374 4620 2375 4619 2376 4619 2377 4618 2378 4617 2378 4617 2377 4617 2378 4616 2379 4616 2380 4616 2381 4616 2381 4615 2382 4615 2382 4614 2382 4614 2381 4614 2381 4613 2382 4612 2382 4611 2384 4609 2384 4609 2384 4608 2385 4608 2385 4604 2388 4604 2388 4602 2388 4602 2388 4601 2388 4601 2389 4601 2389 4601 2390 4601 2390 4600 2391 4600 2392 4599 2392 4599 2391 4599 2391 4598 2391 4597 2392 4597 2392 4597 2392 4596 2393 4593 2394 4593 2394 4592 2395 4591 2395 4591 2395 4589 2396 4589 2396 4588 2397 4588 2396 4587 2396 4587 2395 4586 2395 4585 2395 4585 2394 4584 2393 4584 2393 4584 2392 4584 2393 4584 2393 4584 2394 4584 2394 4584 2393 4584 2394 4584 2394 4584 2394 4584 2395 4584 2395 4583 2395 4583 2394 4583 2394 4583 2393 4583 2393 4582 2393 4582 2392 4581 2392 4580 2392 4580 2392 4580 2393 4580 2393 4580 2393 4580 2394 4580 2394 4580 2395 4579 2395 4579 2395 4578 2395 4578 2396 4578 2396 4580 2395 4581 2397 4581 2398 4581 2398 4579 2398 4578 2398 4577 2398 4577 2398 4576 2398 4575 2398 4575 2398 4575 2398 4576 2398 4576 2398 4577 2399 4578 2399 4578 2399 4579 2399 4581 2400 4581 2401 4580 2401 4578 2403 4578 2403 4576 2402 4576 2402 4574 2400 4574 2400 4574 2399 4573 2399 4573 2399 4574 2401 4575 2402 4576 2403 4576 2403 4577 2403 4579 2404 4579 2404 4579 2405 4579 2405 4578 2406 4576 2404 4575 2404 4574 2403 4573 2402 4572 2401 4572 2400 4571 2400 4571 2399 4570 2399 4570 2399 4570 2399 4571 2400 4572 2402 4573 2402 4573 2402 4573 2403 4573 2403 4575 2405 4576 2406 4577 2407 4577 2407 4577 2408 4577 2409 4577 2409 4576 2410 4576 2410 4575 2410 4574 2410 4572 2409 4572 2409 4569 2406 4569 2406 4568 2405 4568 2405 4568 2404 4567 2404 4567 2403 4565 2403 4565 2403 4565 2403 4566 2403 4566 2404 4566 2404 4567 2404 4568 2405 4568 2406 4569 2407 4569 2407 4571 2410 4571 2410 4571 2411 4571 2413 4571 2413 4570 2413 4568 2414 4566 2415 4566 2415 4565 2415 4562 2416 4561 2417 4561 2417 4560 2417 4559 2418 4559 2419 4558 2420 4558 2421 4557 2422 4557 2422 4554 2425 4552 2425 4550 2426 4548 2425 4548 2425 4550 2424 4550 2424 4551 2423 4551 2422 4550 2422 4550 2422 4549 2422 4549 2422 4549 2419 4549 2415 4549 2414 4549 2412 4549 2410 4549 2410 4550 2408 4550 2407 4550 2406 4553 2404 4553 2404 4554 2404 4554 2405 4554 2405 4554 2404 4553 2403 4553 2403 4553 2402 4552 2401 4551 2401 4550 2401 4550 2401 4549 2400 4549 2399 4548 2399 4548 2399 4547 2400 4546 2400 4546 2399 4545 2398 4544 2397 4543 2396 4544 2396 4545 2395 4545 2395 4546 2394 4547 2394 4547 2394 4548 2394 4548 2394 4548 2394 4549 2394 4550 2394 4550 2394 4550 2394 4551 2394 4551 2393 4551 2393 4551 2393 4552 2392 4553 2392 4554 2391 4554 2391 4553 2390 4553 2389 4553 2389 4553 2388 4553 2388 4554 2388 4555 2388 4555 2388 4556 2389 4557 2389 4558 2389 4558 2388 4559 2387 4560 2388 4561 2388 4561 2388 4561 2387 4562 2387 4563 2387 4564 2387 4564 2386 4565 2386 4566 2388 4567 2389 4569 2390 4571 2390 4571 2389 4570 2388 4570 2387 4571 2387 4571 2387 4571 2387 4571 2386 4571 2385 4570 2385 4567 2384 4567 2383 4566 2382 4566 2381 4566 2380 4566 2378 4565 2377 4565 2377 4566 2376 4566 2376 4566 2376 4567 2376 4567 2377 4568 2375 4568 2375 4569 2374 4569 2374 4572 2375 4573 2376 4575 2376 4575 2376 M 4592 2223 4592 2223 4594 2224 4594 2224 4593 2224 4593 2225 4592 2225 4592 2225 4591 2226 4590 2226 4590 2226 4590 2226 4591 2223 4592 2223 M 4583 2230 4583 2230 4583 2229 4584 2229 4585 2229 4585 2230 4586 2230 4585 2231 4585 2232 4584 2231 4584 2231 4583 2230 4583 2230 4583 2230 M 4581 2392 4581 2393 4582 2393 4582 2393 4582 2393 4581 2394 4582 2394 4582 2395 4582 2395 4582 2395 4582 2396 4582 2396 4582 2396 4581 2396 4581 2396 4580 2396 4580 2395 4580 2395 4580 2395 4580 2394 4580 2394 4581 2394 4581 2393 4580 2393 4580 2393 4580 2392 4580 2392 4581 2392 M 4536 2396 4537 2396 4537 2397 4537 2397 4537 2397 4537 2399 4537 2399 4537 2401 4536 2399 4535 2399 4535 2398 4535 2398 4534 2398 4534 2398 4534 2398 4534 2397 4534 2397 4536 2396 4536 2396" />
+<path id="vi" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 1838 2280 1839 2280 1839 2280 1839 2279 1839 2279 1839 2279 1839 2279 1839 2279 1839 2279 1839 2279 1840 2279 1840 2279 1840 2278 1840 2278 1840 2278 1841 2279 1841 2279 1841 2279 1841 2279 1841 2279 1841 2279 1842 2279 1842 2279 1842 2279 1842 2279 1843 2279 1843 2279 1843 2279 1844 2279 1844 2279 1844 2279 1843 2279 1843 2279 1843 2279 1842 2279 1842 2280 1842 2280 1841 2280 1841 2280 1841 2280 1841 2280 1840 2280 1840 2280 1840 2280 1840 2280 1840 2280 1839 2280 1839 2280 1839 2280 1839 2280 1838 2280" />
+<path id="na" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3107 2925 3107 2925 3107 2924 3107 2923 3105 2919 3105 2918 3103 2916 3101 2913 3100 2913 3099 2912 3098 2910 3098 2910 3098 2909 3098 2909 3097 2907 3096 2907 3096 2906 3096 2905 3095 2904 3094 2903 3092 2900 3089 2896 3089 2895 3089 2895 3089 2894 3089 2894 3089 2893 3088 2892 3088 2891 3087 2890 3087 2889 3087 2889 3087 2888 3086 2888 3086 2887 3086 2887 3086 2886 3085 2885 3085 2884 3085 2884 3085 2884 3084 2884 3084 2883 3083 2883 3083 2882 3082 2880 3082 2880 3082 2880 3082 2879 3081 2879 3080 2876 3079 2875 3079 2875 3078 2873 3078 2872 3078 2872 3077 2870 3076 2868 3075 2867 3074 2865 3074 2864 3073 2864 3072 2861 3071 2861 3070 2860 3070 2860 3070 2860 3069 2860 3069 2859 3069 2859 3068 2859 3067 2858 3067 2857 3067 2856 3066 2854 3066 2854 3065 2853 3064 2852 3064 2851 3063 2850 3063 2849 3063 2847 3062 2846 3062 2843 3062 2843 3062 2842 3062 2841 3062 2840 3063 2839 3063 2839 3063 2838 3063 2838 3064 2838 3065 2838 3065 2837 3066 2837 3066 2837 3067 2836 3068 2836 3070 2837 3070 2837 3071 2838 3074 2837 3074 2838 3076 2838 3076 2838 3080 2836 3080 2835 3081 2835 3081 2834 3082 2834 3083 2834 3085 2833 3085 2833 3086 2834 3087 2834 3088 2834 3088 2834 3089 2834 3090 2834 3091 2834 3091 2835 3093 2838 3094 2838 3096 2839 3097 2840 3099 2841 3099 2841 3099 2841 3100 2841 3101 2841 3102 2841 3102 2840 3104 2840 3106 2840 3109 2840 3114 2840 3123 2840 3124 2840 3130 2840 3131 2840 3140 2840 3151 2840 3155 2840 3155 2840 3158 2840 3163 2840 3164 2840 3166 2840 3169 2840 3170 2840 3171 2842 3172 2843 3173 2844 3175 2846 3175 2846 3177 2847 3178 2847 3179 2847 3179 2847 3180 2847 3181 2847 3181 2847 3182 2847 3183 2847 3184 2848 3185 2848 3186 2848 3187 2848 3190 2848 3191 2848 3192 2848 3193 2848 3194 2848 3194 2848 3195 2848 3196 2848 3197 2848 3198 2848 3199 2848 3200 2848 3202 2848 3202 2849 3203 2850 3204 2850 3205 2850 3206 2850 3207 2850 3208 2850 3209 2850 3210 2849 3211 2849 3213 2849 3213 2849 3214 2849 3215 2849 3216 2850 3222 2849 3231 2848 3235 2847 3240 2846 3241 2846 3242 2845 3247 2845 3247 2845 3250 2844 3255 2843 3259 2842 3262 2842 3264 2842 3265 2842 3266 2842 3267 2842 3267 2843 3268 2843 3268 2842 3269 2842 3269 2842 3270 2842 3271 2842 3273 2843 3274 2843 3274 2843 3275 2844 3275 2844 3278 2847 3279 2847 3278 2847 3277 2847 3276 2847 3276 2847 3275 2847 3274 2847 3274 2847 3273 2847 3272 2847 3269 2849 3267 2851 3267 2851 3266 2851 3266 2851 3266 2850 3265 2850 3265 2849 3265 2849 3264 2849 3263 2850 3258 2853 3258 2853 3257 2854 3257 2854 3256 2854 3256 2855 3256 2855 3255 2856 3254 2857 3253 2858 3252 2858 3252 2858 3251 2857 3251 2856 3251 2855 3251 2854 3250 2854 3250 2853 3249 2853 3249 2853 3248 2852 3248 2851 3248 2851 3247 2850 3247 2850 3247 2850 3244 2850 3237 2851 3234 2852 3231 2852 3223 2854 3218 2855 3214 2855 3210 2855 3210 2855 3210 2858 3210 2861 3210 2869 3210 2882 3210 2885 3210 2895 3210 2898 3210 2898 3210 2903 3210 2907 3210 2913 3210 2913 3210 2914 3209 2914 3205 2914 3199 2914 3194 2914 3194 2914 3194 2915 3194 2918 3194 2922 3194 2925 3194 2929 3194 2929 3194 2929 3194 2932 3194 2935 3194 2937 3194 2940 3194 2942 3194 2944 3194 2945 3194 2950 3194 2952 3194 2955 3194 2957 3194 2958 3194 2958 3194 2959 3194 2960 3194 2963 3194 2965 3194 2968 3194 2972 3194 2976 3194 2984 3194 2994 3194 2999 3194 3000 3194 3002 3194 3003 3194 3008 3194 3011 3194 3015 3194 3016 3191 3018 3191 3018 3190 3017 3188 3018 3187 3019 3186 3020 3186 3020 3186 3021 3186 3021 3185 3021 3184 3021 3184 3021 3183 3021 3183 3021 3183 3022 3182 3023 3182 3023 3183 3023 3183 3024 3181 3025 3181 3025 3180 3025 3179 3025 3178 3024 3178 3024 3178 3024 3174 3023 3168 3024 3165 3024 3163 3024 3163 3023 3163 3023 3162 3023 3161 3022 3159 3022 3158 3022 3157 3022 3157 3022 3156 3022 3156 3021 3156 3021 3154 3021 3154 3021 3153 3021 3153 3021 3152 3018 3153 3016 3153 3016 3153 3016 3153 3015 3152 3013 3151 3013 3151 3014 3150 3014 3150 3013 3149 3013 3150 3012 3150 3012 3149 3011 3149 3011 3149 3011 3148 3011 3148 3010 3148 3010 3145 3011 3145 3011 3144 3014 3143 3016 3143 3017 3142 3018 3142 3018 3141 3017 3141 3018 3138 3019 3138 3020 3137 3019 3136 3019 3133 3016 3133 3016 3132 3015 3131 3014 3131 3014 3131 3013 3130 3013 3129 3012 3127 3010 3126 3010 3126 3009 3125 3009 3125 3008 3125 3008 3125 3007 3124 3006 3124 3006 3123 3006 3123 3005 3123 3005 3123 3004 3123 3004 3121 3001 3120 3000 3119 2999 3119 2999 3119 2997 3119 2996 3118 2993 3118 2993 3118 2993 3117 2992 3117 2992 3116 2990 3116 2990 3116 2989 3116 2988 3116 2988 3117 2988 3117 2989 3117 2988 3117 2987 3117 2985 3116 2985 3116 2984 3115 2984 3115 2984 3114 2983 3114 2983 3114 2983 3114 2980 3114 2980 3114 2979 3114 2979 3114 2978 3114 2978 3114 2977 3113 2977 3112 2974 3112 2974 3112 2972 3112 2971 3113 2971 3112 2968 3112 2968 3112 2968 3111 2966 3112 2966 3112 2965 3112 2963 3112 2963 3112 2962 3112 2962 3111 2961 3111 2961 3111 2960 3111 2960 3111 2959 3110 2957 3109 2956 3108 2955 3108 2955 3108 2954 3109 2954 3108 2953 3108 2952 3107 2951 3107 2950 3106 2949 3106 2948 3106 2947 3106 2946 3106 2945 3107 2943 3107 2940 3107 2939 3106 2939 3106 2937 3106 2936 3106 2936 3106 2935 3106 2936 3107 2935 3107 2935 3106 2934 3106 2933 3106 2932 3106 2932 3110 2933 3110 2932 3110 2931 3109 2930 3109 2929 3109 2924 3109 2924 3107 2925 3107 2925" />
+<path id="west bank" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3443 2048 3442 2051 3442 2051 3443 2053 3443 2054 3443 2055 3443 2056 3442 2056 3442 2057 3442 2058 3442 2058 3442 2059 3442 2059 3441 2059 3440 2059 3440 2060 3438 2061 3438 2061 3438 2061 3436 2062 3433 2062 3433 2062 3432 2061 3432 2061 3433 2060 3433 2060 3433 2059 3433 2058 3433 2058 3433 2058 3434 2057 3434 2057 3436 2056 3437 2055 3437 2055 3436 2054 3436 2054 3435 2054 3434 2054 3434 2054 3433 2054 3433 2054 3434 2052 3434 2052 3434 2051 3434 2051 3434 2049 3434 2049 3434 2048 3435 2046 3435 2045 3435 2045 3435 2045 3435 2044 3435 2044 3437 2043 3437 2043 3438 2043 3439 2043 3439 2043 3440 2043 3441 2043 3441 2044 3442 2045 3443 2045 3443 2045 3443 2048 3443 2048 M 3438 2054 3438 2054 3438 2054 3438 2055 3438 2055 3438 2055 3438 2055 3438 2055 3438 2055 3438 2054" />
+<path id="wf" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 61 2776 61 2776 61 2776 61 2775 61 2775 61 2774 61 2774 61 2774 61 2774 62 2774 62 2774 62 2776 61 2776 61 2776 M 31 2791 30 2791 29 2791 29 2791 29 2791 29 2790 29 2790 29 2790 30 2790 31 2791 31 2791" />
+<path id="eh" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 2647 2222 2644 2222 2640 2222 2635 2222 2632 2222 2624 2222 2621 2222 2619 2222 2617 2222 2610 2222 2604 2222 2604 2222 2604 2225 2603 2227 2603 2227 2602 2228 2602 2229 2603 2231 2603 2231 2602 2230 2602 2228 2602 2226 2603 2223 2603 2221 2603 2220 2603 2220 2604 2218 2604 2217 2604 2216 2604 2215 2604 2214 2604 2214 2605 2212 2606 2210 2608 2207 2609 2206 2609 2207 2610 2207 2611 2206 2611 2206 2612 2205 2612 2205 2613 2203 2613 2202 2614 2202 2614 2201 2614 2200 2614 2200 2614 2199 2614 2198 2615 2197 2616 2197 2616 2196 2616 2196 2617 2195 2617 2195 2617 2194 2617 2194 2618 2191 2618 2190 2619 2190 2619 2189 2619 2189 2619 2189 2620 2188 2620 2187 2620 2187 2621 2186 2621 2185 2622 2185 2622 2184 2623 2183 2623 2181 2623 2181 2621 2182 2621 2182 2621 2183 2621 2184 2620 2184 2620 2185 2621 2183 2621 2182 2622 2181 2622 2181 2624 2179 2626 2178 2627 2177 2628 2176 2630 2175 2631 2174 2631 2173 2631 2173 2631 2173 2632 2172 2633 2171 2633 2171 2634 2171 2634 2171 2635 2171 2637 2168 2638 2164 2638 2163 2638 2162 2638 2162 2638 2161 2638 2160 2638 2159 2638 2158 2639 2156 2639 2156 2640 2153 2641 2151 2641 2151 2642 2150 2642 2150 2642 2150 2643 2149 2643 2148 2643 2147 2644 2147 2644 2147 2644 2146 2644 2146 2644 2145 2644 2145 2645 2143 2645 2143 2645 2143 2646 2143 2646 2143 2647 2142 2647 2142 2648 2141 2648 2141 2650 2140 2650 2140 2651 2140 2653 2139 2656 2137 2657 2136 2658 2136 2658 2136 2659 2135 2659 2134 2659 2134 2660 2133 2661 2130 2661 2130 2661 2129 2661 2129 2661 2129 2661 2128 2661 2127 2662 2127 2662 2127 2663 2126 2663 2124 2664 2123 2665 2121 2665 2121 2666 2121 2670 2121 2710 2121 2713 2121 2714 2121 2715 2121 2715 2121 2716 2121 2718 2121 2721 2121 2726 2121 2726 2121 2737 2121 2737 2122 2737 2123 2737 2127 2737 2132 2737 2134 2737 2141 2737 2145 2737 2146 2737 2147 2725 2147 2722 2147 2721 2147 2720 2147 2717 2147 2716 2147 2715 2147 2713 2147 2707 2147 2704 2147 2695 2147 2688 2147 2683 2147 2683 2151 2683 2153 2683 2153 2683 2158 2683 2159 2683 2160 2683 2165 2683 2166 2683 2167 2683 2173 2683 2174 2683 2179 2683 2182 2683 2188 2682 2188 2680 2189 2677 2190 2674 2190 2674 2191 2673 2191 2671 2192 2667 2195 2667 2196 2666 2197 2665 2198 2665 2199 2666 2202 2666 2203 2666 2203 2666 2206 2666 2208 2667 2210 2667 2211 2667 2214 2667 2220 2667 2222 2661 2222 2653 2222 2647 2222 2647 2222" />
+<path id="wake-island" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 5536 2254 5537 2254 5537 2254 5537 2254 5537 2255 5537 2255 5536 2254 5536 2254 5536 2254" />
+<path id="ws" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 118 2778 119 2778 120 2778 122 2778 122 2777 122 2778 123 2778 123 2778 124 2779 125 2780 125 2780 125 2781 125 2781 124 2783 124 2783 124 2783 121 2783 120 2783 120 2783 119 2783 119 2782 118 2782 117 2780 116 2779 115 2779 115 2779 115 2778 116 2778 116 2778 116 2778 117 2778 118 2778 M 137 2787 136 2787 136 2787 135 2787 135 2787 134 2787 133 2787 131 2787 129 2786 127 2785 127 2785 127 2784 127 2784 127 2784 129 2783 130 2783 131 2783 132 2783 134 2784 137 2786 137 2786 137 2786 137 2787" />
+<path id="sz" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3369 2990 3368 2990 3367 2991 3367 2990 3367 2989 3367 2989 3367 2988 3367 2986 3367 2985 3367 2985 3367 2984 3369 2983 3370 2982 3370 2981 3371 2980 3371 2979 3371 2979 3372 2978 3372 2978 3372 2977 3375 2974 3377 2973 3380 2975 3382 2976 3382 2977 3383 2977 3384 2978 3386 2977 3386 2978 3387 2978 3388 2980 3387 2982 3387 2984 3388 2985 3388 2986 3388 2991 3388 2991 3388 2991 3386 2991 3386 2995 3385 2996 3385 2996 3386 2997 3386 2998 3386 2998 3386 2999 3385 2999 3382 2999 3381 2999 3378 2999 3377 2998 3375 2998 3374 2997 3373 2997 3371 2995 3370 2993 3369 2991 3369 2990" />
+<path id="ye" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3653 2338 3651 2338 3651 2338 3648 2339 3647 2339 3646 2339 3645 2339 3645 2339 3644 2339 3643 2338 3642 2338 3642 2338 3642 2338 3641 2338 3641 2338 3640 2339 3640 2339 3639 2340 3639 2340 3638 2340 3637 2340 3636 2341 3636 2341 3636 2341 3635 2342 3633 2344 3632 2344 3632 2345 3631 2345 3630 2345 3630 2345 3628 2345 3626 2346 3625 2346 3624 2347 3623 2347 3623 2347 3622 2348 3621 2348 3617 2348 3615 2348 3614 2348 3612 2348 3610 2348 3609 2349 3607 2349 3604 2349 3604 2350 3603 2351 3602 2351 3602 2352 3601 2352 3601 2353 3600 2354 3600 2354 3599 2354 3599 2354 3598 2354 3598 2354 3597 2355 3597 2355 3596 2355 3595 2356 3595 2356 3595 2357 3594 2358 3594 2357 3593 2358 3592 2358 3592 2358 3593 2359 3592 2359 3592 2359 3591 2359 3589 2359 3589 2358 3588 2358 3587 2358 3587 2358 3586 2358 3585 2359 3585 2360 3584 2360 3582 2361 3581 2361 3577 2361 3577 2361 3576 2360 3575 2360 3573 2359 3571 2359 3571 2359 3570 2360 3570 2360 3570 2360 3569 2360 3569 2360 3569 2359 3570 2358 3570 2358 3568 2355 3567 2354 3566 2352 3566 2352 3565 2351 3566 2350 3566 2349 3566 2346 3566 2345 3566 2344 3566 2344 3566 2343 3566 2341 3565 2340 3565 2340 3564 2339 3563 2339 3563 2338 3563 2336 3563 2336 3563 2334 3562 2332 3562 2330 3562 2329 3561 2328 3561 2326 3561 2326 3561 2325 3561 2324 3561 2324 3560 2321 3559 2321 3558 2320 3558 2320 3557 2320 3557 2320 3557 2319 3557 2319 3557 2318 3558 2319 3559 2319 3559 2319 3559 2317 3558 2315 3558 2315 3557 2314 3557 2313 3557 2312 3557 2311 3557 2311 3558 2311 3558 2310 3559 2309 3559 2309 3559 2307 3559 2306 3559 2305 3559 2302 3559 2302 3558 2301 3559 2301 3561 2300 3563 2298 3563 2298 3563 2297 3563 2296 3564 2296 3565 2296 3565 2296 3564 2294 3564 2292 3564 2289 3565 2286 3566 2284 3567 2284 3567 2283 3568 2283 3568 2283 3569 2283 3570 2283 3572 2283 3572 2283 3572 2284 3573 2284 3574 2285 3574 2285 3577 2286 3579 2285 3581 2284 3584 2284 3585 2284 3586 2285 3586 2285 3594 2288 3601 2291 3615 2296 3615 2310 3615 2313 3632 2295 3642 2284 3654 2271 3674 2266 3693 2262 3706 2259 3718 2285 3719 2286 3723 2297 3722 2297 3721 2297 3720 2298 3720 2298 3719 2298 3717 2299 3716 2299 3715 2299 3715 2299 3715 2300 3714 2300 3713 2300 3713 2301 3713 2301 3710 2303 3709 2304 3708 2307 3709 2309 3709 2311 3709 2312 3709 2313 3706 2314 3705 2315 3701 2316 3700 2317 3700 2317 3699 2318 3697 2318 3694 2320 3693 2320 3692 2320 3691 2321 3690 2321 3687 2321 3686 2322 3685 2322 3685 2322 3682 2322 3681 2323 3681 2323 3680 2323 3676 2325 3674 2326 3674 2325 3673 2325 3669 2327 3666 2328 3664 2328 3662 2330 3660 2330 3659 2331 3659 2331 3658 2332 3658 2333 3658 2334 3655 2336 3653 2338 3653 2338 3653 2338 M 3555 2319 3555 2319 3555 2318 3555 2318 3555 2317 3555 2316 3556 2316 3556 2316 3556 2316 3556 2317 3556 2317 3556 2318 3555 2319 3555 2319 M 3558 2340 3558 2340 3557 2339 3557 2339 3558 2338 3558 2338 3558 2338 3559 2339 3559 2339 3558 2340 3558 2340 M 3741 2360 3742 2361 3745 2362 3745 2362 3744 2363 3741 2364 3740 2365 3740 2365 3739 2365 3738 2365 3734 2366 3734 2366 3732 2366 3731 2365 3731 2365 3727 2363 3727 2362 3728 2362 3728 2362 3728 2361 3728 2361 3728 2360 3730 2359 3732 2360 3733 2360 3734 2361 3735 2361 3738 2360 3739 2360 3739 2360 3740 2360 3740 2360 3740 2360 3741 2360 M 3711 2369 3710 2368 3708 2368 3708 2368 3707 2368 3707 2368 3707 2367 3707 2367 3708 2367 3708 2367 3708 2367 3709 2367 3709 2367 3709 2368 3709 2368 3709 2368 3710 2368 3710 2368 3711 2368 3712 2368 3712 2368 3712 2368 3711 2369" />
+<path id="zm" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3358 2802 3358 2804 3358 2804 3358 2806 3359 2806 3359 2807 3359 2807 3360 2807 3360 2810 3361 2812 3361 2812 3360 2812 3360 2813 3359 2812 3358 2812 3357 2812 3352 2812 3351 2812 3350 2812 3349 2813 3348 2813 3348 2813 3347 2813 3344 2814 3342 2814 3339 2816 3338 2817 3337 2817 3337 2818 3336 2819 3336 2819 3336 2821 3336 2823 3336 2823 3336 2824 3336 2824 3335 2826 3334 2827 3332 2827 3326 2830 3324 2831 3323 2832 3319 2833 3319 2834 3318 2836 3316 2838 3316 2839 3315 2841 3312 2843 3309 2847 3309 2848 3307 2849 3306 2849 3305 2850 3304 2850 3304 2850 3302 2851 3302 2851 3301 2851 3300 2851 3299 2850 3297 2849 3296 2849 3294 2848 3293 2848 3292 2849 3292 2849 3290 2850 3289 2850 3288 2850 3288 2849 3288 2849 3287 2848 3285 2847 3285 2847 3284 2847 3283 2848 3281 2848 3281 2848 3280 2848 3279 2847 3279 2847 3278 2847 3275 2844 3275 2844 3274 2843 3274 2843 3273 2843 3271 2842 3270 2842 3269 2842 3269 2842 3268 2842 3268 2843 3267 2843 3267 2842 3266 2842 3265 2842 3264 2842 3262 2842 3259 2842 3255 2843 3250 2844 3250 2844 3246 2842 3243 2839 3239 2835 3238 2835 3234 2831 3231 2828 3230 2827 3229 2827 3229 2826 3228 2824 3228 2824 3228 2823 3227 2822 3227 2821 3226 2821 3226 2820 3226 2818 3226 2812 3226 2809 3226 2801 3226 2800 3226 2800 3226 2798 3226 2793 3226 2786 3226 2786 3226 2785 3226 2782 3226 2781 3226 2777 3226 2775 3226 2770 3234 2770 3242 2770 3247 2770 3249 2770 3252 2770 3256 2770 3259 2770 3258 2769 3258 2769 3258 2768 3257 2768 3257 2768 3257 2767 3257 2766 3258 2762 3258 2762 3259 2760 3259 2759 3259 2759 3259 2758 3258 2758 3258 2758 3258 2752 3259 2751 3258 2750 3258 2749 3258 2749 3259 2745 3259 2745 3260 2745 3259 2742 3258 2740 3258 2737 3258 2736 3258 2736 3259 2736 3260 2736 3260 2737 3261 2738 3261 2739 3263 2739 3264 2740 3265 2740 3265 2742 3265 2743 3264 2744 3264 2745 3266 2746 3267 2746 3268 2745 3268 2745 3269 2744 3270 2743 3274 2742 3275 2742 3275 2742 3276 2742 3277 2742 3278 2742 3279 2742 3279 2741 3280 2741 3280 2743 3279 2743 3279 2744 3279 2746 3280 2747 3280 2748 3282 2750 3285 2750 3288 2751 3290 2753 3290 2753 3291 2753 3291 2753 3293 2753 3297 2753 3298 2753 3298 2753 3300 2754 3301 2754 3302 2754 3304 2754 3305 2754 3306 2753 3306 2753 3306 2752 3306 2752 3306 2750 3307 2748 3310 2747 3310 2748 3310 2749 3310 2750 3310 2750 3310 2751 3310 2751 3310 2751 3312 2752 3312 2752 3313 2753 3313 2753 3314 2754 3314 2754 3314 2754 3314 2755 3315 2757 3315 2757 3315 2757 3315 2758 3316 2758 3316 2758 3316 2758 3316 2758 3317 2759 3317 2759 3319 2759 3319 2759 3320 2758 3320 2758 3320 2758 3321 2759 3321 2759 3322 2759 3323 2760 3325 2761 3326 2761 3327 2761 3328 2761 3329 2763 3331 2765 3331 2765 3330 2765 3330 2766 3330 2766 3331 2768 3332 2768 3332 2768 3332 2768 3333 2768 3334 2769 3335 2771 3337 2773 3337 2774 3337 2775 3338 2775 3338 2776 3338 2777 3339 2776 3339 2776 3340 2776 3341 2777 3343 2776 3346 2775 3346 2775 3346 2774 3347 2774 3347 2774 3348 2774 3349 2774 3349 2775 3349 2775 3348 2776 3348 2777 3349 2777 3350 2777 3351 2777 3351 2777 3351 2773 3351 2767 3351 2763 3351 2762 3351 2758 3351 2757 3351 2757 3350 2757 3347 2757 3346 2758 3345 2760 3346 2760 3347 2760 3347 2761 3346 2761 3346 2762 3346 2761 3345 2761 3342 2760 3341 2760 3341 2760 3340 2760 3339 2760 3339 2760 3339 2760 3338 2759 3337 2757 3337 2757 3336 2756 3333 2754 3333 2754 3332 2753 3330 2752 3329 2751 3329 2750 3329 2749 3329 2748 3329 2748 3328 2747 3328 2747 3328 2747 3328 2746 3328 2745 3329 2744 3330 2742 3330 2742 3330 2741 3331 2737 3331 2736 3331 2736 3331 2735 3332 2734 3333 2734 3333 2733 3333 2731 3332 2731 3332 2726 3332 2725 3332 2722 3332 2721 3332 2721 3333 2720 3333 2719 3333 2718 3331 2714 3331 2712 3330 2712 3329 2711 3328 2711 3328 2711 3328 2710 3329 2710 3329 2710 3329 2710 3330 2709 3330 2709 3332 2708 3332 2708 3333 2707 3334 2706 3335 2705 3336 2704 3336 2703 3337 2702 3337 2701 3338 2701 3338 2700 3337 2700 3337 2699 3337 2698 3337 2698 3337 2698 3338 2698 3341 2697 3342 2697 3345 2697 3347 2696 3347 2696 3348 2696 3353 2695 3355 2695 3358 2695 3361 2694 3362 2694 3366 2693 3366 2693 3366 2693 3366 2693 3367 2695 3368 2696 3368 2696 3369 2698 3370 2699 3370 2699 3371 2700 3371 2700 3371 2700 3372 2700 3372 2700 3373 2700 3373 2700 3374 2700 3375 2700 3377 2700 3378 2701 3379 2702 3379 2703 3380 2704 3381 2705 3381 2705 3382 2705 3383 2704 3383 2705 3384 2705 3385 2705 3385 2706 3385 2706 3385 2706 3385 2707 3386 2707 3386 2707 3387 2707 3387 2707 3387 2707 3388 2707 3389 2707 3389 2708 3390 2708 3390 2708 3391 2708 3392 2708 3393 2708 3394 2709 3394 2710 3395 2710 3396 2711 3397 2711 3398 2712 3400 2712 3400 2712 3401 2712 3401 2713 3401 2713 3401 2714 3401 2714 3402 2716 3402 2716 3403 2716 3404 2716 3404 2716 3405 2716 3406 2716 3406 2717 3406 2717 3406 2718 3406 2718 3407 2719 3407 2719 3408 2721 3407 2722 3407 2723 3409 2725 3411 2726 3411 2726 3411 2726 3411 2727 3411 2727 3411 2728 3411 2728 3412 2730 3413 2731 3413 2731 3413 2731 3413 2732 3412 2732 3412 2733 3411 2734 3411 2734 3410 2735 3409 2735 3409 2735 3408 2735 3408 2735 3406 2736 3406 2736 3408 2739 3408 2740 3409 2741 3408 2741 3408 2742 3408 2743 3407 2744 3406 2745 3406 2747 3406 2747 3407 2747 3407 2748 3407 2750 3407 2753 3407 2754 3407 2755 3406 2756 3408 2759 3408 2759 3408 2760 3409 2760 3409 2760 3410 2759 3411 2760 3411 2760 3411 2760 3410 2760 3410 2761 3410 2761 3408 2763 3406 2764 3405 2764 3404 2763 3403 2764 3403 2764 3401 2766 3402 2768 3403 2768 3403 2769 3403 2769 3402 2770 3402 2770 3402 2770 3402 2771 3402 2772 3402 2772 3402 2774 3401 2776 3400 2777 3399 2779 3399 2779 3398 2779 3397 2779 3397 2780 3397 2780 3398 2780 3399 2780 3399 2781 3400 2783 3402 2785 3403 2786 3405 2785 3405 2786 3405 2786 3406 2786 3402 2788 3392 2791 3392 2791 3390 2792 3388 2792 3385 2793 3384 2793 3384 2794 3383 2794 3383 2794 3383 2794 3382 2794 3381 2794 3379 2796 3378 2796 3378 2796 3378 2796 3375 2797 3372 2797 3372 2797 3371 2798 3369 2798 3367 2799 3364 2800 3363 2800 3362 2800 3360 2802 3358 2802" />
+<path id="zw" fill="#aaf" stroke="#0" stroke-width="0.2" d="M 3394 2903 3394 2903 3393 2903 3393 2903 3385 2911 3381 2915 3377 2919 3376 2920 3375 2920 3375 2921 3375 2920 3374 2920 3373 2919 3372 2919 3372 2919 3372 2919 3371 2919 3370 2919 3369 2919 3369 2919 3368 2918 3367 2919 3365 2919 3364 2919 3363 2919 3362 2919 3362 2919 3362 2919 3361 2919 3360 2919 3359 2919 3355 2918 3353 2917 3353 2917 3351 2917 3351 2917 3350 2916 3349 2916 3345 2917 3344 2917 3344 2917 3342 2915 3342 2915 3342 2915 3341 2915 3341 2915 3340 2915 3340 2915 3339 2915 3339 2914 3339 2914 3339 2913 3339 2913 3339 2912 3339 2912 3339 2911 3339 2911 3338 2910 3337 2910 3337 2910 3336 2910 3333 2908 3331 2908 3331 2908 3330 2908 3330 2908 3329 2908 3328 2908 3328 2908 3327 2907 3326 2907 3325 2907 3325 2907 3323 2907 3322 2907 3322 2907 3322 2907 3322 2905 3321 2904 3321 2903 3320 2902 3319 2901 3318 2900 3318 2900 3317 2899 3317 2897 3317 2896 3318 2895 3318 2895 3318 2894 3318 2891 3318 2890 3317 2890 3316 2889 3314 2890 3313 2889 3312 2889 3312 2889 3311 2890 3311 2890 3311 2889 3311 2888 3311 2887 3311 2886 3311 2885 3310 2884 3310 2883 3308 2882 3306 2882 3302 2881 3301 2880 3300 2880 3300 2880 3300 2879 3300 2879 3299 2879 3299 2878 3297 2877 3296 2876 3294 2875 3294 2875 3293 2875 3293 2874 3293 2874 3292 2872 3291 2870 3291 2869 3290 2869 3290 2868 3290 2867 3290 2866 3290 2866 3290 2865 3290 2865 3289 2864 3288 2863 3287 2861 3286 2859 3285 2859 3284 2858 3283 2856 3283 2856 3282 2856 3282 2855 3282 2854 3281 2854 3281 2852 3280 2852 3279 2851 3279 2850 3278 2849 3278 2848 3278 2848 3279 2847 3279 2847 3280 2848 3281 2848 3281 2848 3283 2848 3284 2847 3285 2847 3285 2847 3287 2848 3288 2849 3288 2849 3288 2850 3289 2850 3290 2850 3292 2849 3292 2849 3293 2848 3294 2848 3296 2849 3297 2849 3299 2850 3300 2851 3301 2851 3302 2851 3302 2851 3304 2850 3304 2850 3305 2850 3306 2849 3307 2849 3309 2848 3309 2847 3312 2843 3315 2841 3316 2839 3316 2838 3318 2836 3319 2834 3319 2833 3323 2832 3324 2831 3326 2830 3332 2827 3334 2827 3335 2826 3336 2824 3336 2824 3336 2823 3336 2823 3336 2821 3336 2819 3336 2819 3337 2818 3337 2817 3338 2817 3339 2816 3342 2814 3344 2814 3347 2813 3348 2813 3348 2813 3349 2813 3350 2812 3351 2812 3352 2812 3357 2812 3358 2812 3359 2812 3360 2813 3360 2812 3361 2812 3361 2812 3361 2818 3367 2818 3371 2818 3373 2818 3375 2818 3375 2819 3376 2819 3376 2820 3377 2820 3377 2821 3378 2821 3379 2821 3379 2821 3381 2821 3382 2821 3383 2822 3385 2824 3385 2825 3386 2825 3387 2825 3387 2825 3389 2825 3390 2825 3390 2825 3391 2825 3392 2825 3392 2826 3393 2826 3395 2827 3397 2828 3398 2829 3398 2830 3399 2830 3401 2829 3402 2829 3402 2830 3402 2830 3401 2831 3401 2831 3401 2832 3401 2832 3401 2832 3400 2832 3400 2833 3401 2835 3401 2835 3402 2836 3402 2837 3402 2838 3402 2838 3402 2838 3402 2839 3402 2839 3403 2839 3403 2840 3401 2842 3402 2843 3403 2843 3403 2844 3403 2844 3402 2846 3402 2847 3401 2848 3401 2850 3401 2851 3402 2851 3402 2852 3402 2852 3402 2853 3402 2854 3402 2855 3403 2855 3403 2856 3402 2857 3402 2858 3401 2858 3401 2858 3400 2858 3400 2859 3401 2860 3401 2861 3401 2862 3400 2863 3400 2863 3399 2862 3399 2863 3397 2863 3397 2865 3398 2866 3398 2866 3399 2866 3399 2866 3400 2868 3400 2870 3400 2871 3399 2872 3399 2873 3399 2874 3400 2874 3400 2874 3400 2876 3402 2877 3403 2878 3402 2881 3402 2882 3401 2884 3400 2885 3400 2886 3400 2886 3399 2888 3397 2891 3395 2891 3394 2892 3394 2893 3394 2895 3394 2896 3394 2897 3394 2898 3392 2900 3392 2900 3393 2901 3394 2903 3394 2903" />
+</a>
+<script type="text/ecmascript">
+var countryString = '';
+function init(evt) {
+output=[];
+try {
+ countryString = decodeURIComponent(document.URL+'?');
+ output = countryString.split('?')[1].split(';');
+} catch (e) {}
+ for (var j=0;j &lt; output.length;j++) {
+try {
+var lc=output[j].toLowerCase();
+if (lc=='uk') {
+ lc='gb';
+}
+ cc=document.getElementById(lc);
+} catch (e) {}
+if (cc) {
+ cc.setAttributeNS(null,'fill','yellow');
+ cc.setAttributeNS(null,'stroke','red');
+}
+ }
+ }
+
+function AddCountry(evt)
+{
+ var targetObject = evt.target;
+
+ var targetState = targetObject.getAttributeNS(null,'fill');
+ if ( 'yellow' != targetState )
+ {
+ var newCode = targetObject.id;
+ countryString += ';' + newCode;
+ window.location = 'world-iso.svgz?' + countryString;
+ }
+};
+</script>
+
+</svg> \ No newline at end of file
diff --git a/PerformanceTests/PageLoad/svg/files/worldcup.svg b/PerformanceTests/PageLoad/svg/files/worldcup.svg
new file mode 100644
index 000000000..22900a022
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/files/worldcup.svg
@@ -0,0 +1,14668 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN" "http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd">
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<svg xmlns="http://www.w3.org/2000/svg" width="818.167pt" height="412.276pt" viewBox="0 0 818.167 412.276" xml:space="preserve">
+ <style type="text/css">
+ <![CDATA[
+@font-face{font-family:'BookmanOldStyle-Bold';src:url("data:;base64,\
+T1RUTwACACAAAQAAQ0ZGIAHXoMcAAAAsAAHJ8mNtYXBtaE4ZAAHKIAAABYIBAAQDAAEBARVCb29r\
+bWFuT2xkU3R5bGUtQm9sZAABAQE7+ckB+BQE/Bz9eRwLtRwIhQUeoABIgoEl/4uLHqAASIKBJf+L\
+iwwHHBD/DxwRFRAcERcRkx0AAcnqEgGvAgABAAkAEQAaACYAKQA0AD0ARABHAE8AUgBZAGQAbQB0\
+AHsAfwCEAIkAjwCVAJkAoQCpAK8AtQC7AMEAyADRANcA3QDjAOoA8QD3AP0BAwEKAREBFwEdAR8B\
+IQEnAS0BMwE5AT0BQQFHAU0BUwFZAWQBbQF2AXwBggGIAY4BlAGaAaIBqgGwAbYBuwHAAckB0gHY\
+Ad4B4gHmAe0B9AH5AgACBwIQAhcCHAIhAi4CNAI6AkMCSQJSAlsCZAJrAnUCfgKHApACnAKmArIC\
+vQLDAskCzwLVAt8C6gLxAvgDAwMOAxIDFgMdAyQDKgMwAzQDOANDA04DUgNWA14DZgNxA3wDgAOE\
+A4oDkAOXA54DpAOqA7EDuAPDA84D1gPeA+oD8gP6BAIECgQNBBAEFwQeBCQEKgQyBDoERQRQBFQE\
+WAReBGQEawRyBHgEfgSFBIwElwSiBK0EuAS9BMcE0QTYBN8E6gT1BPoFBwURBRoFJgUuBTcFQwVP\
+BVkFagVvBXMFeAV9BYQFiAWLBZAFlAWZBZ8FoQWjBaUFrAWuBbEFtgW5BcAFwwXGBckFzgXaBekF\
+8wX/BgcGEAYkBikGLQYyBjcGPgZCBkUGSgZOBlMGWQZbBl0GZAZmBmkGbwZ0BncGfgaBBoQGhwaM\
+BpgGpwazBr8GyQbSBtsG5AbtBvYG/wcIBxEHGgcjBywHNQc+B0cHUAdZB2IHawd0B30HhgePB5gH\
+oQeqB7MHvAfFB84H1wfgB+kH8gf7CAQIDQgWCB8IKAgxCDoIQwhMCFUIXghnCHAIeQiCCIsIlAid\
+CKYIrwi4CMEIygjTCNwI5QjuCPcJAAkJCRIJGwkkCS0JNgk/CUgJUQlaCWMJbAl1CX4JhwmQCZkJ\
+ogmrCbQJvQnGCc8J2AnhCeoJ8wn8CgUKDgoXCh0KIwopCi8KOApBCkcKTQpWCmMKbAp1Cn4KhwqM\
+CpkKowqtCrUKvQrFCs0K1QrdCuUK7Qr1Cv0LBQsNCxULHQslCy0LNQs9C0ULTQtVC10LZQttC3UL\
+fQuFC40LlQudC6ULrQu1C70LxQvNC9UL3QvlC+0L9Av7DAAMBwwODBUMGgwhDCoMNAw7DEIMSQxQ\
+DFYMXwxoDHEMfQyADIYMigyPDJMMmAyfDKoMuAzIDM0NP25vdGVxdWFsaW5maW5pdHlsZXNzZXF1\
+YWxncmVhdGVyZXF1YWxtdTFwYXJ0aWFsZGlmZnN1bW1hdGlvbnByb2R1Y3RwaTFpbnRlZ3JhbE9o\
+bXJhZGljYWxhcHByb3hlcXVhbGluY3JlbWVudG5ic3BhY2Vsb3plbmdlRXVyb2FwcGxlZnJhbmNH\
+YnJldmVnYnJldmVJZG90U2NlZGlsbGFzY2VkaWxsYUNhY3V0ZWNhY3V0ZUNjYXJvbmNjYXJvbmRt\
+YWNyb25vdmVyc2NvcmVtaWRkb3RBYnJldmVhYnJldmVBb2dvbmVrYW9nb25la0RjYXJvbmRjYXJv\
+bkRzbGFzaEVvZ29uZWtlb2dvbmVrRWNhcm9uZWNhcm9uSUppakxhY3V0ZWxhY3V0ZUxjYXJvbmxj\
+YXJvbkxkb3RsZG90TmFjdXRlbmFjdXRlTmNhcm9ubmNhcm9ubmFwb3N0cm9waGVPZGJsYWN1dGVv\
+ZGJsYWN1dGVSYWN1dGVyYWN1dGVSY2Fyb25yY2Fyb25TYWN1dGVzYWN1dGVUY2VkaWxsYXRjZWRp\
+bGxhVGNhcm9udGNhcm9uVXJpbmd1cmluZ1VkYmxhY3V0ZXVkYmxhY3V0ZVphY3V0ZXphY3V0ZVpk\
+b3R6ZG90bm9HYW1tYW5vVGhldGFub1BoaW5vYWxwaGFub2RlbHRhbm9lcHNpbG9ubm9zaWdtYW5v\
+dGF1bm9waGl1bmRlcnNjb3JlZGJsbWludXRlc2Vjb25kZXhjbGFtZGJscGVzZXRhYWZpaTYxMjQ4\
+YWZpaTYxMjg5YXJyb3dsZWZ0YXJyb3d1cGFycm93cmlnaHRhcnJvd2Rvd25hcnJvd2JvdGhhcnJv\
+d3VwZG5hcnJvd3VwZG5ic2VvcnRob2dvbmFsaW50ZXJzZWN0aW9uZXF1aXZhbGVuY2VIMjIwNzNI\
+MTg1NDNIMTg1NTFIMTg1MzNvcGVuYnVsbGV0Y29tbWFhY2NlbnRBbWFjcm9uYW1hY3JvbkNjaXJj\
+dW1mbGV4Y2NpcmN1bWZsZXhDZG90Y2RvdEVtYWNyb25lbWFjcm9uRWJyZXZlZWJyZXZlRWRvdGVk\
+b3RHY2lyY3VtZmxleGdjaXJjdW1mbGV4R2RvdGdkb3RHY2VkaWxsYWdjZWRpbGxhSGNpcmN1bWZs\
+ZXhoY2lyY3VtZmxleEhiYXJoYmFySXRpbGRlaXRpbGRlSW1hY3JvbmltYWNyb25JYnJldmVpYnJl\
+dmVJb2dvbmVraW9nb25la0pjaXJjdW1mbGV4amNpcmN1bWZsZXhLY2VkaWxsYWtjZWRpbGxha2dy\
+ZWVubGFuZGljTGNlZGlsbGFsY2VkaWxsYU5jZWRpbGxhbmNlZGlsbGFFbmdlbmdPbWFjcm9ub21h\
+Y3Jvbk9icmV2ZW9icmV2ZVJjZWRpbGxhcmNlZGlsbGFTY2lyY3VtZmxleHNjaXJjdW1mbGV4VGJh\
+cnRiYXJVdGlsZGV1dGlsZGVVbWFjcm9udW1hY3JvblVicmV2ZXVicmV2ZVVvZ29uZWt1b2dvbmVr\
+V2NpcmN1bWZsZXh3Y2lyY3VtZmxleFljaXJjdW1mbGV4eWNpcmN1bWZsZXhsb25nc0FyaW5nYWN1\
+dGVhcmluZ2FjdXRlQUVhY3V0ZWFlYWN1dGVPc2xhc2hhY3V0ZW9zbGFzaGFjdXRldG9ub3NkaWVy\
+ZXNpc3Rvbm9zQWxwaGF0b25vc2Fub3RlbGVpYUVwc2lsb250b25vc0V0YXRvbm9zSW90YXRvbm9z\
+T21pY3JvbnRvbm9zVXBzaWxvbnRvbm9zT21lZ2F0b25vc2lvdGFkaWVyZXNpc3Rvbm9zQWxwaGFC\
+ZXRhR2FtbWFEZWx0YUVwc2lsb25aZXRhRXRhVGhldGFJb3RhS2FwcGFMYW1iZGFNdU51WGlPbWlj\
+cm9uUGlSaG9TaWdtYVRhdVVwc2lsb25QaGlDaGlQc2lPbWVnYUlvdGFkaWVyZXNpc1Vwc2lsb25k\
+aWVyZXNpc2FscGhhdG9ub3NlcHNpbG9udG9ub3NldGF0b25vc2lvdGF0b25vc3Vwc2lsb25kaWVy\
+ZXNpc3Rvbm9zYWxwaGFiZXRhZ2FtbWFkZWx0YWVwc2lsb256ZXRhZXRhdGhldGFpb3Rha2FwcGFs\
+YW1iZGFudXhpb21pY3JvbnBpcmhvc2lnbWExc2lnbWF0YXV1cHNpbG9ucGhpY2hpcHNpb21lZ2Fp\
+b3RhZGllcmVzaXN1cHNpbG9uZGllcmVzaXNvbWljcm9udG9ub3N1cHNpbG9udG9ub3NvbWVnYXRv\
+bm9zYWZpaTEwMDIzYWZpaTEwMDUxYWZpaTEwMDUyYWZpaTEwMDUzYWZpaTEwMDU0YWZpaTEwMDU1\
+YWZpaTEwMDU2YWZpaTEwMDU3YWZpaTEwMDU4YWZpaTEwMDU5YWZpaTEwMDYwYWZpaTEwMDYxYWZp\
+aTEwMDYyYWZpaTEwMTQ1YWZpaTEwMDE3YWZpaTEwMDE4YWZpaTEwMDE5YWZpaTEwMDIwYWZpaTEw\
+MDIxYWZpaTEwMDIyYWZpaTEwMDI0YWZpaTEwMDI1YWZpaTEwMDI2YWZpaTEwMDI3YWZpaTEwMDI4\
+YWZpaTEwMDI5YWZpaTEwMDMwYWZpaTEwMDMxYWZpaTEwMDMyYWZpaTEwMDMzYWZpaTEwMDM0YWZp\
+aTEwMDM1YWZpaTEwMDM2YWZpaTEwMDM3YWZpaTEwMDM4YWZpaTEwMDM5YWZpaTEwMDQwYWZpaTEw\
+MDQxYWZpaTEwMDQyYWZpaTEwMDQzYWZpaTEwMDQ0YWZpaTEwMDQ1YWZpaTEwMDQ2YWZpaTEwMDQ3\
+YWZpaTEwMDQ4YWZpaTEwMDQ5YWZpaTEwMDY1YWZpaTEwMDY2YWZpaTEwMDY3YWZpaTEwMDY4YWZp\
+aTEwMDY5YWZpaTEwMDcwYWZpaTEwMDcyYWZpaTEwMDczYWZpaTEwMDc0YWZpaTEwMDc1YWZpaTEw\
+MDc2YWZpaTEwMDc3YWZpaTEwMDc4YWZpaTEwMDc5YWZpaTEwMDgwYWZpaTEwMDgxYWZpaTEwMDgy\
+YWZpaTEwMDgzYWZpaTEwMDg0YWZpaTEwMDg1YWZpaTEwMDg2YWZpaTEwMDg3YWZpaTEwMDg4YWZp\
+aTEwMDg5YWZpaTEwMDkwYWZpaTEwMDkxYWZpaTEwMDkyYWZpaTEwMDkzYWZpaTEwMDk0YWZpaTEw\
+MDk1YWZpaTEwMDk2YWZpaTEwMDk3YWZpaTEwMDcxYWZpaTEwMDk5YWZpaTEwMTAwYWZpaTEwMTAx\
+YWZpaTEwMTAyYWZpaTEwMTAzYWZpaTEwMTA0YWZpaTEwMTA1YWZpaTEwMTA2YWZpaTEwMTA3YWZp\
+aTEwMTA4YWZpaTEwMTA5YWZpaTEwMTEwYWZpaTEwMTkzYWZpaTEwMDUwYWZpaTEwMDk4V2dyYXZl\
+d2dyYXZlV2FjdXRld2FjdXRlV2RpZXJlc2lzd2RpZXJlc2lzWWdyYXZleWdyYXZlYWZpaTAwMjA4\
+cXVvdGVyZXZlcnNlZHJhZGljYWxleGFmaWkwODk0MWFmaWk2MTM1MmVzdGltYXRlZGhvdXNlcmV2\
+bG9naWNhbG5vdGludGVncmFsdHBpbnRlZ3JhbGJ0U0YxMDAwMDBTRjExMDAwMFNGMDEwMDAwU0Yw\
+MzAwMDBTRjAyMDAwMFNGMDQwMDAwU0YwODAwMDBTRjA5MDAwMFNGMDYwMDAwU0YwNzAwMDBTRjA1\
+MDAwMFNGNDMwMDAwU0YyNDAwMDBTRjUxMDAwMFNGNTIwMDAwU0YzOTAwMDBTRjIyMDAwMFNGMjEw\
+MDAwU0YyNTAwMDBTRjUwMDAwMFNGNDkwMDAwU0YzODAwMDBTRjI4MDAwMFNGMjcwMDAwU0YyNjAw\
+MDBTRjM2MDAwMFNGMzcwMDAwU0Y0MjAwMDBTRjE5MDAwMFNGMjAwMDAwU0YyMzAwMDBTRjQ3MDAw\
+MFNGNDgwMDAwU0Y0MTAwMDBTRjQ1MDAwMFNGNDYwMDAwU0Y0MDAwMDBTRjU0MDAwMFNGNTMwMDAw\
+U0Y0NDAwMDB1cGJsb2NrZG5ibG9ja2Jsb2NrbGZibG9ja3J0YmxvY2tsdHNoYWRlc2hhZGVka3No\
+YWRlZmlsbGVkYm94ZmlsbGVkcmVjdHRyaWFndXB0cmlhZ3J0dHJpYWdkbnRyaWFnbGZjaXJjbGVp\
+bnZidWxsZXRpbnZjaXJjbGVzbWlsZWZhY2VpbnZzbWlsZWZhY2VzdW5mZW1hbGVtYWxlc3BhZGVj\
+bHViaGVhcnRkaWFtb25kbXVzaWNhbG5vdGVtdXNpY2Fsbm90ZWRibHVuZGVyY29tbWFhY2NlbnRU\
+b25vc0Jvb2ttYW4gT2xkIFN0eWxlKFRNKSBpcyBhIHRyYWRlbWFyayBvZiBUaGUgTW9ub3R5cGUg\
+Q29ycG9yYXRpb24gd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgaW4gY2VydGFpbiBqdXJpc2RpY3Rp\
+b25zLgAAAQAB4wEFAAFAAwFHAQFKAQGH/wKHrQAAApwDAAABAAAcAAAfAACpAAEYAAGDAAJvAAOT\
+AAUUAAVyAAXTAAYzAAdEAAdjAAfBAAfPAAgHAAgfAAjAAAkWAAnLAArVAAr/AAu6AAx8AAzkAA3m\
+AA6lAA8QAA+cAA+8AA/VAA/1ABCyABJsABLwABPrABSLABU+ABYAABarABeSABhpABjUABmEABpk\
+ABrmABuZABwvABzRAB13AB5QAB8kAB/7ACCVACFZACHOACKOACNlACQEACRcACR1ACSKACSiACTC\
+ACTPACUuACYtACbGACd6ACg/ACjgACmAACruACu0ACw+ACzkAC2gAC3tAC8nAC/ZADBqADEtADH1\
+ADKIADM/ADOvADRZADTPADWBADZGADcDADdVADgxADhCADkcADmfADopADrYADwIADwgADzdAD2x\
+AD8sAD/hAEAXAEDPAEECAEEdAEE4AEIrAELxAEMAAEPvAEVkAEWcAEYCAEY6AEaYAEdPAEgGAEg5\
+AEjYAEqDAEs/AEt1AEujAEu/AEwgAEwwAExnAEygAE0MAE15AE3sAE5HAE6QAE6sAE69AE/DAFCf\
+AFE/AFIIAFMyAFOjAFTUAFUoAFWQAFY1AFc2AFhMAFiUAFinAFkYAFokAFroAFvXAFwAAFzAAF1B\
+AF27AF3ZAF5FAF8RAGASAGCqAGIUAGIjAGLwAGMlAGPrAGVIAGX3AGaTAGd/AGg2AGkjAGoEAGsX\
+AGwEAGzeAG4IAG79AG+TAHAWAHDoAHGGAHJ5AHNGAHQAAHUKAHXfAHbeAHfNAHi8AHmZAHrFAHu8\
+AHyGAH2NAH38AH8mAIA9AIGlAILWAIQ9AIWaAIbAAIeLAIhEAIlMAIogAIqfAIsLAIvHAIxOAI1d\
+AI4ZAI7CAI+7AJB/AJFtAJI8AJMRAJPTAJTlAJXCAJaqAJfPAJg5AJi2AJmtAJslAJxbAJ1SAJ19\
+AJ4AAJ5FAJ7lAJ8oAKAfAKBLAKB3AKFDAKIkAKKCAKMiAKPlAKTCAKWxAKXTAKbUAKb0AKb3AKcl\
+AKfeAKfhAKihAKm8AKteAKv+AK1IAK5xAK88ALAbALDTALGfALJwALJ+ALK2ALNtALSgALVsALaz\
+ALd+ALiHALlLALpWALs/ALwZALzSAL2tAL6lAL9SAL/JAMCOAMEeAMHVAMJXAMMYAMP0AMSiAMVr\
+AMZ5AMdyAMhaAMlZAMoWAMsCAMutAMyuAM2QAM55AM84AM/qANCCANGvANLCANPdANTeANVgANXd\
+ANZqANbxANdHANg3ANkNANm5ANqIANt9ANvvANxlAN0QAN0lAN1TAN22AN6gAOANAOD+AOGLAOHJ\
+AOIFAOJCAOJ/AOLsAONZAOPSAOPnAORuAOSSAOSsAOS7AOTXAOUXAOWBAOXHAOZXAOdiAOgZAOjk\
+AOm5AOqiAOtwAOwdAO0SAO3mAO7dAO+zAPCyAPI5APNVAPT5APZRAPf+APjuAPnMAPqAAPsaAPvi\
+APyTAP0KAP1qAP4IAP6PAP9DAQAVAQDdAQFOAQJ+AQOJAQQmAQT4AQWVAQZ7AQd8AQhJAQj4AQmm\
+AQpDAQsYAQvcAQ0AAQ3iAQ7QAQ+fARAoARCRARGyARK5AROJARQ/ARU2ARYTARcgARgSARjrARm2\
+ARptARtCARuzARzLAR5eAR+PASDqASHeASKuASLbASNwASQdASRVASVCASZDASbYASejAShtASlB\
+ASodASqhASucASv5ASweASzgAS04AS4PAS71AS9gATBAATCeATFRATHnATKfATNBATO5ATRfATSw\
+ATVKATXpATayATeJAThQATj6ATnMATrTATuCATxEATzgAT1UAT5fAT7lAT+LAUANAUDbAUF0AUJW\
+AULJAUNWAUOhAUQxAUSfAUT6AUYGAUaXAUcyAUesAUh5AUj7AUlGAUnAAUpxAUr/AUuLAUxIAUz6\
+AU3cAU6VAU84AVAdAVFHAVITAVKVAVMxAVQIAVRzAVVFAVX1AValAVd7AVhJAVlUAVpdAVsJAVuN\
+AVwdAV0YAV1vAV3+AV7AAV/tAWCdAWFFAWJkAWNEAWOkAWRXAWUuAWXQAWZJAWbvAWePAWgpAWi7\
+AWmhAWp4AWsDAWusAWxLAWz/AW2jAW6RAW8WAW+tAXCRAXFnAXJmAXMmAXO2AXQKAXSvAXVQAXZI\
+AXbWAXd2AXiGAXklAXmAAXoMAXqoAXs5AXuwAXxzAX0nAX2KAX5HAX9BAYAGAYCJAYEgAYG7AYJl\
+AYLiAYObAYQHAYSAAYVIAYXNAYbVAYdmAYflAYhfAYkWAYmgAYpcAYsCAYujAYxdAYz+AY3IAY7w\
+AY98AY/WAZAsAZEgAZIFAZLwAZPNAZT1AZYPAZbhAZfRAZfiAZgrAZg6AZlNAZpHAZq7AZriAZr1\
+AZtIAZucAZutAZu9AZvSAZvlAZv5AZwMAZwlAZw+AZxWAZxwAZyRAZyuAZzKAZzlAZ0DAZ0nAZ1C\
+AZ1gAZ2FAZ2gAZ2/AZ3lAZ3/AZ4cAZ5BAZ5gAZ6FAZ65AZ7YAZ79AZ8vAZ9VAZ94AZ+pAZ/NAZ/x\
+AaAhAaBPAaCFAaDLAaDdAaDvAaD/AaEOAaEeAaKJAaVeAafJAafYAafnAaf4AagMAaghAag1Aain\
+AajpAalnAaqRAat2AaxNAazqAa2lAa4xAa7dAa9GAa+DAa/9AbB8AbDNAbD69zn3lBYcBQD6lBz7\
+AAf+dKsV+lQcBMD+VAYO/TcO/Q74aPg9FftWBoD3NIP1hMBN+CkYh6yJpZ8arJSrnKkenKiio6mc\
+CJyoqpSrG6uqgnqqH6l5o3OcbQicbZNrahpxiGqEYh5q+1V1+yiAJoM/hjWKKggnRhW/t3lnsB+v\
+Zp1fWBpYeV9nZx5mZl95VxtYX52wZx9mr3m3vhq+nbewsB6vr7edvhsO/JP3YvniFUz34wWCuIeq\
+nBq1lq6iph6moqaZqxuqpn1woh+ib5ZoYRp0iHSGdB6JgomEioRM++MY97YWS/fjBYO4h6qcGrWW\
+rqKmHqaippmqG6umfXCiH6JvlmhhGnSIdIZ0HomCiYSKhEv74xgO+yL6ufj4FftI+2MHS/xEBftK\
+Bsr4RAX7QQZM/EQF+0gGy/hEBftg90j3ewam9z4F+133Sfd2Bsf4JwX3RAZR/CcF90EGx/gnBfdJ\
+Bk/8JwX3SvtJ+2MGc/s+Bfsx9z4V+0IGc/s+Bfc/Bg54+O8cBlIV91X7jAaogqODn4KegqZ8rHax\
+0hj3AQb3CfxZ+0xWW/cRPuYgxRn7swf3F2brZcdkx2S5W6tSCKpSm09OGkl4TGZOHmVOU1hCYkJi\
+OHMuhAj7hvtV95cHPp07sjjIW/sKGPsBBin4o/dTua4/rE+rYBmrX69ls2uoc6t5rn8I9+EH+yO7\
+KLVWr1auYblswghswnzDxBrMnsmyxx6xx8C7z67Prt6f7o8I+3EEVIRlf3R7CGp0e29qGnCXcKNy\
+HqJytnPKdgj3Vf1EFb+StZmqogiqopqpshqtf6h0pB5rrF6kUJ0IDvi++EkcBYsV2s58bsIfwW61\
+YqhXCKhWmko8GjR9RW5WHm5WYWJUbQhtVEd8ORs6SJqoVh9VqGG1bsEIbcB8ztwa3JrOqcEeqcC1\
+tcKpCKnCzprcG/ch/AcV3n7HcLAesHBpnWAbYGl5aHIfcWd+TjYaNZhOpWgeZ6StebUbt66dsKYf\
+pbCYx98a+hf4BxX9+Bz6XQX7NAb58hwFowX3Sv1RFdrOfG7CH8FutWKpVwioVppKPRozfUVuVh5u\
+VmFiVG0IbVRHfDkbOkiaqFYfVahhtW7BCG3AfM/cGtuazqnBHqnBtbXCqQiows6a2xv3IvwHFd9+\
+x3CwHq9waZ1gG2BoeWhyH3Fofk41GjaYTqVoHmekrXm2G7aunbCmH6awmMfeGg73n/qI+isV+H77\
+VE8GaXOIhH4ffoSAgIJ7hoKAZnpJgGF5XHNYc1dwXG5hqF6kbp99CH2en4SfG6Kfk5ubH5uak5+k\
+GqOBqHetHniqgaWiGq2YqaalHqSmq5iwG7y0eGSsH6xkm1NEGiNmNUJHHkdBKWn7DRtOWZOaYx9j\
+mmCpXLYIQSD7EGb7IRv7K/sOtuItHy3iXPX3ERr0qebH2B66yNvJ9wPJXKlornSzCHOyf7e8Gt6s\
+0szGHsXM36j0G/becFbHH8dVqUc6Gkd6UWlbHnBmY2pVcLB6qXqgeKhxqWepXp5usUTD+wYIsuOe\
+yrEaloiUhJQehJOCkICNCI2DcYxeG/wm+I8VbHJ/c3gfeHKBaFwaYpVqn3Mecp+jf6YbnJ2Rlpwf\
+nJaYmZKdCJaikKapGrqBrXeiHqJ3c5ZvG4j8bRVKalphaloIall6VlIaQqRNvVgeWLzHcdEbwcGX\
+pMIffKR+p4GpVfdPGHjMe7l/pX+lf5+AmYCZe5l4mggO/WD3i/l2FfsF9xDj28PDoqoZoqqdsJq4\
+foJ+hX6GCIZ+fYl+G2Vpm6tuH26rfLK4GsCeuLCwHq+wuJ3AG7KxgHWwH7B0p22fZAifZJVdWBo2\
+bzlTOh5TOkFCL0gIDv1g+DccBa8V9yP7D1xAajR4Khlv+yZ9+1z7kxr7gpj7T6b7HR6eKq00uz77\
+I/sOGGStbat0qVfQYNhp4WjgdOV+7Ah+64X3GPc9GvdGl/cjovYeovau6rrguuDE087GCA79YPeB\
+/G0V+yP3D7rWrOKe7Bmn9yaZ91z3kxr3gn33T3D3HR547GriW9j3I/cOGLFpqmuibb5Gtj6uNq42\
+ojCYKwiYKpH7GPs9GvtGf/sidCAedCBnK1w2XDZSQ0lQCA78Qfg/+tMVbs55uYSlCIOlh6KgGq6W\
+qaKjHqOipperG6mlgHShH6B0lm9qGneHdYR0Hn9jd1lvTpuDmYGYfpGQmJafnLq0sKelmAiYpaSR\
+ohuspoB2oh+hdZZxbRpqfm9wdB50cGWAWRt0V46SOh+IeoV6hHvfXMJlpG0IpG2YbGsabIFwdnYe\
+dXZxgG4bdHSTmnYfdZp5on6rfap8xnrgCIl+goqFG4aCjIx/H3g2e1F9bX1seXV2fAh8dXSEdBts\
+cpagdh92oICkqRqqlqiiph6hpsWz6cCDm4SchZwIhkhgiHcbTl6Xo24fbaN8qa4aqZaloaAeoKCm\
+lawbpKWEfaYfpXy9Y9RKmJiZlpqTCA77Ivrq+O8V/B/8H/td+B/8H/dQ+B/4IPdd/CD4HwYO/Tf3\
+oPwNFfsF9xDj28PCoqsZoqqdsZq4foJ+hH6GCIZ+fYl+G2Vpm6tuH26rfLK4GsCeuLCwHq+wuJ3A\
+G7KxgHWwH7B0p22fZAifZJVdWBo2bzlTOx5TOkFBL0gIDv0O7fkIFfiy+4P8sgYO/Tf38ff4Fb63\
+eWewH69mnV9YGlh5X2dnHmZmX3lYG1dfnbBnH2avebe+Gr6dt7CwHq+vt52/Gw77IvqRHAXDFfzz\
+HPkiBfugBvjzHAbeBQ54+TwcBYsV9xD2cFXlH+RU0T2+Jgi+JaT7FvsxGvtFdPsdXCseVvsBRDky\
+VAhUMfsCb/sXG/sT+wCmwTQfM8BF21j0CFj0cfcZ9zca9zel9xq+8x6+8tHb5sMIwub3AKf3Exv3\
+mP1mFfdLcPcYVd0e0ltMrz0bQ09lQFofWkBy+xf7TRr7TaT7FrxAHkC8yWXWG9bKsti+H77YpPcV\
+90kaDnj6DBwFixX+2wdcjW6Pgh6RepaAmoQIhJqoh7Qb9yH7Vf3y91X3Iga9q46SmR+ZkZaVkpoI\
+kpmOqbka+aH7rPdWB9uTyJO2lMuYz5zTobOXsJmunAgOePe/+d4V+155BYSuh6yqGuui37jSHrjS\
+0cXqugi56fSi9wcb9et3Y+Ef4GLMV7ZLCLZLoUhEGkR8SGxNHmlGVEg+Sj5K+zAk+337Iwj35AbC\
+rY6Rmh+akJeWlpyWnJSnkrSTuRj3VgYw/JMF+xgGf7wF/i33VQb3G+P3QPcW92T3QPbj0teuywil\
+upi8vhrGc75atB60WkmfORtOV4B1Xh9edGhrcmIIcmJ+X10aeo11j24eDnj3+fpGFftiBoqai5iV\
+GuGf1bLKHrLJyL7eswiy3umf9hvw5nlo3B/cZ8dds1MIslOfUVAaXH9ecl4ecl5qZGFsb3ZhdlR2\
+vYa4f7J4sniuc6huqG6gappmCJlmkmRgGj50RF5IHl5IR1YyYghiMiN2+wob+wcknrIxHzGyR7xe\
+xghexnTGxhq4m7Grqx6rq7KbuBu2snxtrB+geJ5qmlyeTp1jm3iad6V5rnwIfK6vg7AbtrSVoLMf\
+sqCopZ6rCJ6qlLG4Gt1rx0yyHqlaQJokG0r3VcwG3MaRl64frpemn5+oCJ+nlamsGrh6sWqrHrRh\
+S581G1JcgnpmH2Z6bnJ2bHZrfmGHWAgOePlnHAVzFffR/Yj3m/uS+5v8FfvR+BX9JvfMBvkm+AwV\
+/DL8RgX4MgYOePdb+QoVsPmRBflUBrenj5KYH5eSkpeNnQj3Gvvw/W0GgvtHBZTc1Y/NG/cd9wZ3\
+Y+Yf5mPPVbdICLdIoTwxGvsxTPsQ+xMvHjn7BfseYvs2G/sAKp2xNB80sEu5YcIIYMJ2w8MauJqw\
+qqoeqamwmrcbqqiCeqUfpXqibp5iplOlY6JyonKnd6p+CH6qroSyG765laC0H7SfqaegrgigrpWz\
+uBrYa8lKux67SiWj+x8b+xD7Cnxs+wUfDngcBHEcBYsV+1gH+xOGJX8/eD54THBYalhqYmNsXmtd\
+dVd/UMa0wqjAnAicv8STyBvs4ndj2B/YY8VVtEcIs0efPDIa+ylX+w4iKx4rIvsiW/tHG/tN+yS8\
+7iMf+w73B073MvdeGvcdoPcItOsetOrL4OPV49TywvcLrvcKrvc2nfdhjAj8S/1RFVpggHZmH2Z1\
+bmx2Ywh2YoFdVxo/ok25Wx5auMVz0BvSxqO8uh+5u6LK2Rradcpeux66XlGjRRsOePdwHAWeFfcY\
+BplgBfo5+1UGMjVEOlU/VD9ZMl0mXCVpLHQydDJ3+xx5+0oI+/sGm/c5pvcdsfcCsfcByPcL3/cU\
+3/cT5PcB6OUI/FsGUWWIhHkfeYR9gYB8gHx/an5YdjoY+1O4BQ54+kv5mxXyYttUw0UIt1WhSDsa\
++w5bJys8HjQg+yRf+0kb+w0jnbAzHzOwSbpgxQhgxHXHyBrLo8i7xR66xda88LQ2sUy8YccIYMd2\
+zdMa0p/Ms8UessXJu9+wCLDe6533ARv3HfcKbVDtH+1PvDokGk96VGpaHmpZT1o2Wwj7UuAVsLSj\
+pJufk5kZl56UnZCcCJCbjZucGq94q2anHqZlVplIG0pZfnJoH2dxeW1pGm2WcaB2Hqhuv23XbAhT\
++9AVS2pcZ21lCGxkfGZoGm+Vb6BwHqBvqnW1egh6tbyCxBvDvJObth+2mqmfnaIInaKUo6YarICn\
+dKEeaqtTqzurCA5492pzFfdXB/cUkPGY157Xnsulvqy+rLSzqrmquKHAmMZQYlRuVnoIelZTgk4b\
+KjSftD4fPrNQwWPPCGPOd9rlGvcpv/cO9Ose6/T3Irv3Rxv3TfckWijzH/cO+wfI+zP7Xhr7HHb7\
+CGIrHmIrSjY0QjNBJFX7Cmj7C2j7Nnn7YooI+Ev5URW8tpagsB+woKiqoLQIoLSVub8a13TJXrse\
+u11Ro0YbRFFzW10fXFt0TD0aPKJMuFweW7jEc9AbDv039/H6khW+tnlmsB+wZp1fWBpXeV9nZh5m\
+Zl95VxtYX52wZx9msHm3vhq+nriwsB6wsLadvhv9LgS+t3lnsB+vZp1fWBpYeV9nZx5mZl95WBtX\
+X52wZx9mr3m3vhq+nbewsB6vr7edvxsO/Tf38PqSFb62eWawH7BmnV9YGld5X2dmHmZmX3lXG1hf\
+nbBnH2awebe+Gr6euLCwHrCwtp2+G0Ic+ocV+wT3EuLawcGiqRmiqJ6xnLp+g36FfocIh35+iX4b\
+ZGmbqm8fbqp9srkawp64sq4errG3nL0bwL13Y7gfwVumSDYaPXQ/XEIeUC07OihICA77Ivrq9+cV\
++1QH/nP4ZQX3Pgf6c/hmBftVB/17+/oFDvsi+ur5rhX+c/dQ+nMG/M8E/nP3UvpzBg77IvcL+rMV\
+91UH+nP8ZgX7Pgf+c/xlBfdUB/l89/oFDnj49fg8FftT+BHJBvcS5JGYwB/AmLGeoqYIoqWWqawa\
+0GnDRrgeslBKn0YbaGuDem4fbnptbGpebmJzcXd/CHxwb4RuG2BomahuH26nfK61GuC90O7BHsHu\
+9wim9xcb9w33A3Rc8B/wXNVQvEQIvESjPjoaM3A/VUoeVEpAXCxuTHgjgPsniAgr+0wVv7d5Z7Af\
+r2adX1gaWHlfZ2ceZmZfeVcbWF+dsGcfZq95t74avp23sLAer6+3nb4bDvfI+sH6MRX3iJX7S/0I\
+BXZGgVhpGnSTeJt8Hnuan4OiG7zIp8PUH9TDx9i57Ai47KLx9wAa9w1w9wJU7B5U7EDWLMAIvyz7\
+A6X7Exv7OvspZD77GB/7GT4h+wM8+yUIPPslY/sy+z8a+4TZ+1b3MfsnHvsd9yb3Skb3bxv3G/cT\
+psP3Cx/3C8Lv1tzrxM6526/qCMgGVfsZRfsDNjM1MidH+wZcCFz7B/sQc/sbG/uN+2Pa9zH7Oh/7\
+Q/c5M/dq95sa90e19zfe9yYe3vcl9wf3Bvcm3Qjc9yb3OrT3Thv3J/cSb1P2H/ZS3jvHJAjGI6n7\
+CfsXGvsZbvsPUvsFHlL7BUE1MlIIUjIpbiEbXmaSmW4fbpl1oHqoCHqog6qtGqyTuJvGHlc0Y1Bw\
+amRcYWZecAh6bmmCZhtaY56ybB9rsnvD1BrinOWs5h6s5rjdxtbG1c7H1rgIp7i2mbMbt657a6Uf\
+nXaYZ5JXCPsG3xV6eIN8dR91e25iZklmSGs7bi0Ibix9QFMabZF0l3seepeYg5obl5yTmqAfrqSw\
+uLTLtMur0aTYCKPYl8/HGriErH2iHqF8fJZ6Gw7z+NscBXMV980G+Df+yaJSn2edfhmcfqyEuowI\
++1X9KPdVB7OMBbCkkJWaH5qUkpeZGpeFpH6wHmL3EwX8PQZX+yEFgG2Gd4IagI+Ck4IekoKYhZyH\
+CIiWq4q+G/tV/LD3VQeupI6Rmx+bkZiUlpeVl5ahmKwI+Bj38BX3qwb7HPgUBQ7z2hwEshX3Vfmt\
+B/cN631v0B/QbsFjsFYIsFaeUEwaXYFfeGIed2JvZmZsZmtacU52zHq9ea53vW+zZKhZCKhYmlNN\
+GkF1R15NHl5MTFw6aghqOfsMe/sxG/1w91XCBrCkjpKYH5iRlJSQlwiQlo6ltBr5nge0iKaGlh6G\
+loKUfpIIkn5yjmYb+Fz8CBX3LQbbxpKYsh+xmKignqYInqaVqq4asIKqeaUeeKVxnmiWCJZoTZAy\
+G/stBvy1BPvCB4xgjHKOhI6CkYSTiAiHkqCJrRvxBsa9kZayH7KWrKGmrgimrpm0vBq0ga54qB54\
+qG6gZJoImmRQkjwbDvckHASBHAVzFfciBvcd/In7TlVN9wtR4FS9GdA/Oa0yG0pPeWdTH1JnX1Zq\
+RQhqRXo5LRr7I7H7ENckHiTW7lf3DxvZ1qG40x/lwtnWzOj3L/sHGCb7HS8rOFUIOPsV+yNh+zIb\
++xf7C6vKIR8gyjbjTPcFCEz3BWv3EPcaGvcZqvcOyfcCHsj3Ad/h9sgIyPX3Cqr3Fxv3GfcIb1Pv\
+Hw73dtccBXMV+W8G9zr3GHFW7R/tVtk9xiQIxSSo+xD7JRomfDFuPB5tPF9DUExQS0xbSGtYc0R3\
+LnwIfC5Ag1Mb/Rj3VbsGtKWOkpgfmJKVlpObCJCYjqa2GvmOB7aIpoaYHoWXgpR+kgiRfm+OYRtb\
+BviSbBX99wdujXmOhB6QgZOElogIh5WkibIb9wHhnK3JH8isvcGx1gix1Z7j8hrweeRo1h5n1l+/\
+VqoIqlZAmikbDvPZHAVzFRwEjAb3M/xN+0lKbNNoxWK3GWK3XahamgiZWVGSSRv7afvw0QbAro+T\
+nh+dkpiXk5wIk5uPq7wawPdG/OL7RscHtIaogp4egZ5+l3qSCJJ6Zo5SG0z71AZpjXaOhB6OhJKF\
+lYcIh5Sgiasb9wkG4tWYpMcfx6TBs7rDusKvzaTY90tMGPtL/JoFHPtK91WuBrqqjpKbH5uSlpaS\
+nAiOlY2nuhr5jAe0iKaGmB6FmIKUf5IIkX9zjmgbTQYOodscBXMVHASBBvcy/FH7SUxuzG+8cKwZ\
+cKxspmahZqFkmmCSCJBuWY1CG/tA/AbjBqymkJWeH56VmJiUmwiTm4+msBrV90j9BPtI5QeliZ6G\
+lx6Fm4OYgJWAlX+Sfo8Ij31yjWcbPvu5BmiOc5F/HpF+lYKYhQiFmKWIsRvE+1X9PPdVuAa9rJKY\
+mx+amJOlshr5tgewiKOFlx6Fl4GUfZEIkX1vjmIbXgYO93b6F/l8Ffk9+1dYBmp0iIV/H36FgoKF\
+fgiFfohyZhr8SfthB1bvTGJKbEh2GXZIRYFCG/sT+wiqySIfIsk54k73AwhO9wNs9xH3Hhr3Han3\
+Dsj3AB7H9wDf4PcBygjJ9wD3Car3ExvIyYN8yB/Ie792tnGwyRj3IAb3Evxi+0xPTPBa0GewGWaw\
+YqdcoAigXF2VXhtMUHlmVB9UZl9Wa0UIa0R7Nica+wKdLK46Hq46uFDEZAhkxMl3zxu7uZWeth+2\
+nqihm6MIm6OTq7QavgeuiaKGlB6EmIGVf5EIkX5zjmcbPAYO98jUHAVzFfk9+1VMBmh0iIR+H36E\
+goGGfgiGfohuYBr7h/iQ95kHq4mhh5YehpuCln6RCJF+b45gG1b3Vfk/+1VSBmRyiIV+H36Eg4KG\
+fwiGfohuXRr9iAdcjm2Sfh6RfZWBmIYIhZioiLobs/tV/T/3VbgGtaiOkpofmpKVlJGYCJCYjqi6\
+Gve7/JD7uwdcjW6PgB6SepWAmYYIhpmniLYbuvtV/T33VbkGsqaOkpofmpKWlJGXCJCXjqW0GvmK\
+B7qIqoaaHoWZgpV/kgiSf3SOaBtNBg78vNEcBXMV+Tz7VU0GZ3OIhYAff4SCgYZ+CIV9iHFkGv2Y\
+B2GNcJB/HpB/k4KWhgiDmaCHpxvV+1X9PPdVwgaypY6Rlx+XkJSUkZgIkJeOo7Aa+ZsHtoiohpke\
+hZiBln6SCJCCdI5nG00GDk/43RwFcxX5O/tVUgZkcoiFfx9/hIKBhn4Ihn6IbFwa/MMHNIZLgmMe\
+flJtUltTW1NOYEBsCGxAMXwjG/sDLJ6xPR88sU6/Xs4IXs51z9IazJ7AsbQetLG6oMMbraiFfqMf\
+on6ed5pxCJlwkm9tGkoHZpRonGoemHKgd6h8CHyoq4OwG7u0maesH6ynobCWuQiSpo7C3xr41weo\
+ip6IlB6GnIKXfpIIkn50jmsbSAYO95/XHAVzFfk8+1VeBmBwiYaBH3uEgICEfgiEfodyZhr8Bwf4\
+R/gnnp2Xl4+SGY+RjZCQGpSHkoSQHpCDd41sG1P3VfkL+1V2Bm52ioiAH4CIfYR7gXqBdntxdPvl\
++7gY+Cb8s65cpHCbghl/oKqFsxum+1X9VPdVpwa+q42Qlh+WkJCRkhqTgZ52qR77iffx+2j7SQX7\
+IQdojnOSfh6SfpSBmIYIhZekiLAbxPtV/Tz3Vb4GsqaOkpgfmJGVlZGZCJCWjqe2GvmOB7SIp4WZ\
+HoWZgZZ+kgiSfnOOaBtSBg5P3RwFcxX5PvtVTwZqdomIgh97hH+BhH4IhH2HdW0a/bEHa413joQe\
+joSRhZSHCIaUnYmmG+TTl6LCH8GivLG3v7a+sdGq5PdMTBj7TPyYBf6991XOBqagj5KZH5mSlZWS\
+mAiRl46gqhr5qgesiKOFmh6EmoKVgJIIkn93jnAbQQYO+L7bHAVzFfkLBveG/eX3j/nlBfkW+1VG\
+BmZxg3x9H3x7hG1gGv2sB2iNdo+CHpF+k4GWhgiDmp6Hoxva+1X9M/dVvwaxpY6RmB+YkZWUkpgI\
+kZeOoqwa+e4H++gc+3wF+1UG+9368wX95Ad4j3ySgB6SgJWDmIYIhZifiKgbzvtV/M/3VcMGrqSO\
+kpgfmJGUlZKZCJGYjqSwGvmiB6+JooaWHoWagpV/kgiSf3iOcRs/Bg73JNkcBXMV+MsG+C39wgX4\
+hge2iaWGlh6Em4KWgJIIkYB1jmobR/dV+NT7VUsGa3SHhH4ffYSBgYZ+CIZ+iHBhGv7L+7MH/Jr6\
+mAX9YwdijnCQgB6QgJSCmIQIhJihiKsbzvtV/Nf3VccGrKKOkZgfl5CVlZKZCJKZj6CnGvm0B6qI\
+oYSaHoSZgpWAkgiRgHiOcBtABg73n/nNHAWLFfdx90hI+xv3HR/3Hfsbz/tB+2ca+yJs+xJM+wIe\
+TPsCNTb7AlAIT/sD+xlt+zAb+2L7PcT3BfsXH/sz9x0890r3eRr3adH3Qvcf9xse9xv3H/dJz/d1\
+G4/7chUhN2M8TB88J2T7FfsyGvsysPsR1C8ePMrfZPMb9N6y2sof1emw9xL3MRr3A3vobNYea9Zg\
+xFWwCLBVUJ5MGw543RwFcxX5dQbo2YJ4yR/IeMBuuGS3ZK1eo1YIo1aXUlAa+wtdJzA6Hjov+xNj\
++zUb+4L7mQZqjXeQgh6RfpSCmIUIhZegiKgb0vtV/Tz3VboGtKeOkZgfmJGVlZGYCJGYjqW0GvmT\
+B7aIp4aZHoaYgpWAkgiRf3WOahtIBviUaBX8IPcLB9TAk5qtH62apqKgqgigqpWvthrLcr5asB6n\
+ZlWZQxsO95/5FoIV+yuj+xTPIvcDCPsR9xhN9zv3XRr3adD3Qvcf9xse9xv3HvdJz/d1G/dz90hI\
++xv3HR/3Hfsbz/tB+2ca+xBz+wRbKB5bJ0g5Nkw2TCNg+w91jVCgXrNtCG2zvHzEG7a4kpm6H7mZ\
+tJ6vpO37PhhBXENqRXYIdkVAgTwbKDacrUMfQq1VvWbObsB7zoncCPdPHAS2FSE3YzxMHzwnZPsV\
++zIa+zKw+xHULx48yt9k8xv03rLayh/V6bD3EvcxGvcDe+hs1h5r1mDEVbAIsFVQnkwbDvd21RwF\
+cxX58AbCyIaBzR/Mgcd1wGnAabRgqFcIqFeaUEoaIWU1QEoeP0kxYCR397P74hiXfJ50nHuagBma\
+gJuDmoYIhpqhiaYbx/tV/FMG/FT47QX7CPuqBluObZB+HpB+lIGXhQiElqOIrhvL+1X9PvdVyQas\
+oo+SmR+YkpWVkpkIjpONpLUa+aUHqomhhpgehpiCk4CPCJJ7eY92G2+KBVcG+JZtFfv992MH3MiT\
+mrQfs5qpoKCnCJ+nla2zGrCCqnimHnilcJ5omAiYaFGRPBsOePr9HAVzFfcM/Gj7TlZN9wNF3Ty/\
+Gb48OKUyG1Jef3RqH2p0enFuGmqabalvHqhvwXLadfegPRj3KWD1U8pECMpEqjgsGvsNWyUrOB4v\
+IPsaXfszG0FHlJ9NH02eSqpIuF8nGPspBij4sfdPuLf7AtAv6EIZQejxZvcDG721kZisH6yYo5yc\
+ogicopOioxqzeK1kqB5kqEanKaf7fc8YaJVbnk+nTqZdqGupaqlwsna6CHa6gLy/GtWgz7TKHrTJ\
+yL3esgiy3eae7xv3DfcBbEzsH7LRBQ7K90McBaIV9xgGmVwF+acGnLoF9xkG90H8fftOSmLcbcB5\
+pBlovGKxXacIoGhplmkbe4CHhIUfhYOIeXAa/bYHXI1tjn8ejn+RgpOEk4SWhpmJCIiZsIrIG/tV\
+/Tz3VbQHuKiOkZgfmJCUlZKaCJKZjqm4GvnIB6KImoaRHpGGf456G2hlfnFgH2BxZWZqXH54bldg\
+NftLzBgO9ySwHAVzFfk9+1VIBmx2h4R+H36EgYCFfgiFfYhvYRr8kAcslUWeXB6eXKdosnMIcrG5\
+f8IbwruYprYftqaprZ60CJ20lM7qGvjEB6KInIWVHoOYgJV+kAiPgnONZRtV91X41ftVXgZecIiG\
+gB97g39/hHwIhoGIb14a/LoHJnw2bkYeYi5LQjJYCFcyIXH7Dhs1PpimRx9HpVCxWLxYvGe+d8II\
+dsKB2/Ya+K8HvIirhpoehpmClX+SCJJ/dI5oG0sGDvONHAVzFfkr+1V2BmFwiYiAH3+IgYSDgAiD\
+gIeAgBp9k26aYB73i/1L95v5XQWYrpGkmBqehZh/lB6UfnGPYhtg91X4sPtVBl5thoF8H3R8c2V0\
+UPw2/scY+84G/D36znq2faeClxmCl36UepJ6knKOaooIDvi+mxwFcxX4+vtVBmRyioiCH4GIg4aE\
+ggiEgoeAgBqBj3WUah73T/1o9zf4l0v3ZYmQiJOIlxmCrH6iepl6mHKTaowI91X42/tVXAdpdYeD\
+gR99gIR8ehp+kHKVZB73Of0X9z75FwWYupGmlBqbhZd/lB6Tf3SPahtY91X4pvtVBmVwh4R7H3qD\
+fn+Ae4B7fWl8WPvJ/rIY+8IG+zb4w/tC/MMF+84G+8z6wn66f6mBmRmBmH2WepJ5knCPZooIDvd2\
+vxwFcxX5g/tVUQZseImGgx+ChoeCgBqFjYWOhR6OhJV+m3j3KPtGGPc690wFoKKWnJYaloeTgpAe\
+kIJ2jmsbWPdV+Qb7VQZdimuHeIZ4hnWAcnt5f3d6dnT8B/wDGPgs/Ee4W7BsqH4ZfaizhL4b+1X9\
+kPdV0Qesn42Qkx+TkI+SlBqYgJ51pR77Xfd5+2v7eQV4doJ5exqCkIOVhh6FlZ+IqhvB+1X9DvdV\
+BreqjZCeH52QnJKalqWeq6awsPgk+CIY/BH4LWeybqN0lhmVdGSQVRsOyowcBXMV+Un7VVcGZnSI\
+hoIfgoWGgn4aepZxoGge90v7w/dg99CdppWbjY4ZjpKMk5IaloeUhJAekIN5jm8bRPdV+MD7VQZa\
+immGeIB3gHNycGL8CPyyGPuNB1+Ob5F+HpB+lYGZhQiEmKaIsxu8+1X9PPdVsAa7qo6SmB+YkZaW\
+kpoIkpqOqbga924H/Af4yW63cad1lhmSe2uPXBsOTxwEvxwFcxX7VQf9dv5tBeIG9wzllqLGH8ah\
+wrK+xL3EstCn3vdLTRj7S/yYBf6991UG+Xn6agX7CAY8TIJ4Wx9beGFwaGZoZlg+SfsJ+0TZGPdo\
++HgFDv2J9wscBa8V+G/7VvtXHPn891f7VvxvBg77IvcmHAXDFfegBvjlHPkiBfuSBg79ifiD/G0V\
+/G/3VvdXHAYE+1f3VvhvBg77IvfY+NcV+28G+Cn5xAX3ZQb4Kv3EBftvBvu3+MoFDvvvf/suFfqs\
+Jf6sBg79YPgsHAW8FfcG+xAyO1RUdGwZdGx4ZX1emJSYkpiQCI+YmI2YG7Kte2uoH6hrmWReGlZ5\
+XmZnHmZmXXlWG2RllqJnH2ahb6p3sgh2soG4vhrgp93E3B7D3NXU5s4IDvk9+PEV1Qe3h6mEnB6E\
+nH2ZeJYIlnhzkG4bdXeHhHkfeYR9gYCAgIB/dX1qeWJ2bXJ5CHlybYJpG2BomKZwH3CmfayyGriZ\
+sqeuHrC5w7HVqAio1d6a6Bvo2nxtzB/MbbhnpWIIpGGYSzYa+/oHX41vkH8ekH6VgJqCCIKanIae\
+G56kkJaqH/tXB3lSVYJXG05WlZ9gH2CfZqlus0hgT2xVeQh4VFeCWBssPqbBUB9QwG7N2hq4lbSg\
+sB6fsKmstKezp8mk4KHfoPGb9w2UCPs6BDR+TX9nfmd+cXp8eAh8d4N3dhpwlXWfeR55n6aCrRuh\
+pZGWqB+olqucr6EIDvsi+GQcBbwV/K8Hwq69o7aZCJi2tpK2G/cF6WI41R/hK7b7FPs0Gvs2YPsW\
+NSkeKDQjWvsPG1lbk5xdH12cW6ZZslU3GPtwHASm+yb3Vgb3F5T3Dqf3BboI7f2IFfvEB06QYZV0\
+HpR0nHekfAh8o6eDrBvCt6K4rB+0xKDZ7xrpedRovh60bmagXBtxb4V/bh9tf2t5aXMIDvpw+A4V\
+9yf7FTwsOkU2YBlgNjF1Khv7L/sVvfAkHyPwV/cO9yUa7aPlvNweu9zNy+C4CLjf7qL3Bxv3HfcF\
+a0ziH+JLtkhEGm2EcH50Hn1zdnhvfAh8b22EbBtydJCVdx93lXqYfpqFkn+feq51tnqof5l/mX2W\
+epMIknp4j3YbaGqAdWwfa3RxaXdeCHZegVhTGk6XVKNaHqNaq2W0cghys7d+vBu6upikuh+6pL63\
+wsoIDk/67RwFvBUc+3UHXY1vj4Iej4GShJWGCIaUpYm0G7r7VQb8RnwF8gdMYVRuXHsIelxbg1wb\
+PkWgtUsfSrRXyWLdCGLddubvGvCg57XeHrTdwsnOtQi1ztWg3hu2tIaBsh+ygLZ5unEI94H7JvdW\
+B96TzpW/mL6Xw53Howj7cxz7YhX34we1iKmFnB6DpHmgb54Inm5slGgbZ2qAdmwfbHVzanleCHle\
+glRIGi6fQbRTHl+qtXW/G6Kgj5OgH6CSrp++qwgO+mn4BhX3HfsePDE7SjpjGWI5M3csG/ss+xS/\
+8iMfI/JX9xD3JhrrouO62x662svK3rgIuN7oofQbzseBeMIfwni7b7RntGesYKRYpFicVpRUCI9w\
+jV9QGv01Bow2pEe8VwhWu8Zx0Ru4u5mmwB/Apr+zvsII+1z3tRWGs4KrfaJ8onidc5kImHJyknAb\
+b3CEfXEfcX12eHxze3OBbIZmCA785flc+noV+2j7Nvx9B2SNc46DHpCAkoKWhgiGlqGIrBvD+1X8\
+/vdVvAazo42PlB+Uj5GSkJYIj5WNpLQa+H37KPdo9yjzB9WYx6W4HqrCvLjPrgiuz9yc6hvv2XZh\
+xB/EYKdcWBpifmpych5xcWl+YRt6e46QfB97kHySfZWBknqbc6Z0pHyZg5AIkYGCjoIbdHqBdn4f\
+fnaEYUwaIwcO+eP6QBWuva+vrqAIoK6xlbIbsqqAdKIfonSWbWcaaoBwdnYedXVwgGsbaoxpjAV5\
+eYR+eR+wTp1RVBpQeVJnVB5mVFlgS2wIbEo+fDEbcXGNjnEfcI5xj3CReYB9gIKACIKAhoGCGnag\
+fraFHvgyUPcPeuRqwloZwlqmUEcaT3ZTYlkeYlhHYS5qCGot+wp7+yMb+xEjl6Q5HzmjUalpsQho\
+sHqurBqxmK2lqh6kqcCu27JanWahcqUIaq56rrAas5uyqrIeqrK5scmxaKBwo3ikd6R7qX+vCH6v\
+hbCxGu+04N3RHtHc9wCu9xkbxsKEfrwfvH22drJwCPuw+wEVYGh7bHAfb2x9YFYaWphjpm4ebqat\
+fLUbtK6aqqcfpqmZsrsawH62caoeqnBpmmIb+yX+ExVocHR2gn0IgXyGe3oaaqZywHkeeMDQgt4b\
+yMCQlrofupaqmJqaCJWVkJmcGp6Bm3eZHneYW5Y+lAgOofi7HAW8Ffy/B82zxae+nAibvryTuhvK\
+xH5wvR+8cLBpomIIomKXVUca/DUHYo1zjoIekH6VgpqFCIiUoomyG7r7Vfzg91WpBqiejpCWH5aQ\
+kpOPlQiPlI2jsBr37Qe4iKqGmh6FmoGXfJUIlHx5kHUbbGqFfmkfaH5hdFppCPwiB2WNc4+CHo+C\
+k4OWhgiGlqGIqhuh+1X82vdVwwasoI2QlB+Uj5GSkJYIkJWNn6oa+h77JvdWB8KOypXQm9CayZ7C\
+oQgO/Q74FBwFvBW+tnlorx+uZ51gWBpYeV9oaB5nZ2B5WBtYYJ2vaB9nrnm2vhq9nbawsB6vsLWd\
+vBv3NvxSFf13B2iNdY+DHo+DkoWWhwiGlaKJrxvB+1X8/vdVwAauoY2PlR+UjpKRkJQIkJSNnKUa\
++HH7KPdQB8COvZC8lLuUtpWxl6STqZivnggO/Tf4GBwFvBW+tnlorx+uZ51gWBpZeWBoZx5nZ2B5\
+WBtZYJ2vaB9nrnm2vhq+nbavrx6urradvRv3NfxSFf69ByZ8PW5XHm5WWl9IaQhoSDp6LhtHUZWf\
+XB9bnmelc6wIc6x/rK4asJqqqKUepKismLAboqOEfaUfpH2ocaxkCHSfnX+cG6GclJ2YH5idkau6\
+Gvn9+yf3UgfQjMuTx5nHmMagxqgIDnj4vRwFvBX+GQf3VPc3oJyXl4+QGY6QjY+QGpOHkoKQHpCC\
+d41uG2X3Vfj3+1UGX22IhXsfdoJodVpo+1b7Ihj3qPvVp2qidp2EGZyDroe/igj7Vfz/91WtB6Sb\
+jZCTH5OQj5GSGpSAnnanHvsH9yj7ES0FVQdyjXqPgh6PgpKDlYYIhpSaiKAbrvtV/NL3VQaMn5qL\
+lhuwo46Qlh+WkJKTkJcIjpSNqLwa+gD7JvdXB/cFkPcQp/cZvQgO/Tf4oBwFvBUc+24HZI1zjoQe\
+kH6VgZuFCIeVpom3G677Vfz/91WxBrOljpCWH5aQlJOQlgiQlo6jsRr6EPso91YH9wuT9xCn9xO7\
+CA75Ofin+pIV+xkHxbjGrMehCKHHyJbJG7KxhYCwH69/qXykeKN4oXKfa8y8ya/GoQigxsiWyBvA\
+vIF4th+2eK9xpmqmapxnk2QIkHOOaF0a/DIHaY51kIEekIGTg5eGCIeUo4mzG7f7Vfzd91UGtqeN\
+kJYflo+UkpCVCJCUjqCsGvf/B7WIp4aZHoWYgJd7lQiUeniQdBtxb4WAbR9tf19xUGQI/BsHZI5z\
+kIEekIGVg5iGk4ilibiKCPtV/Ln3VQe4jKeNlY+Vj5OSkJYIkJaOo7Ea9+sHwIaugpwepXxxmGYb\
+eHiJhnYfdoZ3hHeBgIZweV9udHwY/BsHZo1zj4Iej4KTg5eFCIWWn4ioG6b7Vfzc91WyBrSljZCW\
+H5WPk5OQlgiQlo6jsBr4Vvso91UH9w6W9wWn8rgIDqH4nfqSFfsZB9a+zK7BngiewMKUwxvMxH1w\
+vR+8cK9pomIIomKWUEAa/DQHaI50kIEekIGShJaGCIiTo4mzG7z7Vfzf91UGuIykjJCMnJCWkpCW\
+CJCWjqKuGvgDB7qGqoGZHqJ7cpdoG25thX5qH2p+X3FUZAj8IQdgkHCUgR6BlKKGrhur+1X82fdV\
+qAa5qI2Plh+Wj5OSkZUIkJWOn6ga+Gb7KPdVB/cMmvcEp/S0CA4m+Qz6khX3Bu51XuAf4F7MT7k+\
+CLg+ojAkGvswWPsTJioeKib7HFr7PRv7QfsdvO0lHyjoWvcT9zMa9KLluNYeuNbMyOC5CLjg7aL3\
+AhuP+28VZWeAdGofanRxanlfCHhfglNHGkWUUZ1dHp1dpGmrdQh1qq6AsRvGvaS9tR+1vKDY9Brw\
+eNhkvh6+ZFmkThsOT/iQ+pIV+wMH17rFqbSZCJiztpK5G/cJ6mA11B/fKLX7EvstGvsnZvsOQige\
++wY3+wVS+yEbXmOQlmkfaZVmnmOmCPtdB2ONc4+DHpCBkoSWhwiGlaWJtBu6+1X9AvdVrQa5p42P\
+lR+UjpOTkZcIkJaOo68a+hT7KfdWB9OUyJW+mL6Yvpy/ogj3F/vMFfvaB1iQZpV2HpR1nHmjfgh9\
+oqaEqhvBuKS9rx+uvZ3X8RrqfNFsuR64bGSiXhtXUXNaTB8OJvrk+noVHPuJB2GNco+CHpCAlIKX\
+hQiHlKSJtBu6+1X9AvdVuQa0pY2OlB+UjpGSkJQIkJSNoKwa93kHVGpbdWB+CH5gX4VdG/sGK7jm\
+Ph8x9F73EvcpGvCg57TeHrTew8rQtgi20NWh2xu5uYR8uB+4fMFwzGO/2xgk/WEV9+MHwIawgp8e\
+gp94nXCbCJpwbZNsG2ZqgHZsH2x1dG19ZQh3VoFQSRpOlFacXx6cXqFqqHYIdqiogKgbpKiRlqof\
+qpapm6iiCA78Qfic+pIV+yUHwMO6sbKgCJ+ysJWvG6yohHylH6R8oHWabwiab5JtaxphfWVwaR5p\
+b2R6WRt+f4yNgR+AjXWSapYIkHp8joAbem6AdWMf/BsHao51kIEekIGThJaGCIaWpImxG7f7Vfz9\
+91W+BrCijY+UH5SPkZKQlQiQlY2hrhr4X/sn91QH9wGS9wWn9wm8CA77xvmH+noV9xcG3Puq+1E/\
+Z8VeuVWsGaxUVZtWG2hwhX96H3p/gn16Gn2Rfph/Hpd/pH6yfvenKRi8erl1uHG4caxromYIoWWW\
+X1gaMGhBRlEeRzolafsNGyMwpcA+H29UBfsZBvsP99z3Udu6QcZR0GEZYNDLdsUbr6mTnKQfnpiU\
+m50amoSafJkefJlrm1mc+2zWGPsLtTq4YLsIYLp1xMwa363SzsQezNjprPcFG+/hdF7SHw78Qfii\
+HAU9Ffvr99b7afvW+/AHPI9ZlHUek3SaeaJ+CHmprYKyG9DPobjPH/tqB1FwV3hcgAiAXFiFVBtN\
+VJObXB9bmmKiaqhpqHSpfqwIfqyEuska+HD7KvdUB8CcuaSxrLGrqrKiuKK4msWU0QgOeMD6ehX4\
+Z5QF/R0HXY5skXwekHyWfpqCCIGanYaiG6yvk5uwH5qSsqLKtAj4GgetiKKGmB6GmIOUgZEIkIF4\
+jm4bUfdVBvholAX9YAdmjXOQgh6PgZKElYcIhpSiibAbwPtVBvxLfwX3CgdQYFBqUHYIdVBPgE8b\
+W1+Tm2MfYpppoHCmcKV2qn6uCH6uhLnCGvgwB7GJo4eVHoaVhJOBkAiQgXaNahtUBg77IvlM+noV\
++Kf7VQZeinGKhImAiH+Df35+fn94fnD72/1iGPugBvvp+XiDnIGZfpcZgZSAkX+OCI6Dc4xiG/dV\
++Pn7VWsHZHKIhYIffoOFgX4agY97lHYe9y/8Gfc1+BkFlKGQm5YamISVfZIekIB0jmYbXAYO95+b\
++noV+KX7VXUGcnqIhoQfgoSGgoAagY59kXge9yD8RPcN9+Vr6oKnf59+lhl9lneScIwI91X4i/tV\
+Ygd0fIiEgh+ChIeCfhp/j3qTdB73Dfv79w73+wWToo+dlxqYhpSCkh6RgXeObBt091X4VftVBmt2\
+iYeBH4GHgoWEgoJ+gHWAbPuh/V4Y+50G+yn4J/ss/CcF+58G+5v5XoKkf6B+nBmDloOTgo6CjnaN\
+aowIDvsiufp6Ffjz+1UGaneIhoIfgoaHg4AagJR6nHIe4vsL4/cLBZ6klJ6WGpaHkoOQHpCCc41j\
+G/dV+GX7VQdjboeDeB94gnV6dHD7V/t2GPdo+3qwZKhyoIAZgKCrhrUb+1X9FPdVrweonY6QlB+U\
+kI+SlBqUgZx3pR77Gfc/+wv7NQVyan92ghqCj4WThh6Gk5yIphu2+1X8gPdVBqmKo42ckJyQmpKY\
+lJiUnJ2hpvd295YY+1H3ZHOldZx4lBmUd22PZBsOJpv6ehX5BPtVYgZmc4mGgh+BhoaDghqDknaZ\
+aR73Kvv99zH3/QWXppGflxqWhpOBkR6QgXSOZxtS91X4r/tVBlyKb4qDiICIgYaEhISEf3Z6avxY\
+/jMYXCpXSFNkCGRSSHg9Gz9On7RcH1yzc7i+GrOZraepHqinrZmyG6alhH6kH5yCnH2cdpZ+k4KS\
+iAiHkZGJkRuZmZKYmB+foKKwpMKx3Rj76Pldeq9/ooKUGYKUgJKAjgiOgG6NXhsO+3T3cfp6Ffnk\
++1UG/Of85QX3GwbTwpOash+xmq2jqKyfoaKzpcT3SUcY+xj7+gX+QfdVBvji+OUFLwZQXoWAbB9r\
+f2x1bmt8fHFjZUv7Q9wYDv1g+RYcBYsVXQdcgmZ+cHpwend1fHAIfHCEb28aYJNVmkoenEaTUFwa\
+VnxZbFsebFtjZFltaXdWd0N32nLEdK50v2myY6ZcCKVcmFxdGmaDV3tIHnpIg1JdGmqSbZpvHppu\
+n3Wke6R6sH69gQhdB1BhjpByH1mWW6Beql6qZ7ByuQhyuH64uRq2lcig2x6ax5O/txrGeLtlsh5s\
+q1ygTpUIyAe4kq+Ypp2lnaCknKwIm6yTrbAatoS9fMQedtqBx7IasJWynrQenrOnr66qrqq0ormc\
+uZzHlNSOCA77Ivh7HAW8FfeSHPiG+5IGDv1gmfwSFbgHupSwmaacpZygoZqmCJqmkqaoGraDwXzM\
+HnrQg8W6GsCavaq7Hqq7s7K9qqyfwJ/UnjykUqNoolesZLRwughwun65uRqwk7+czh6bzpPEuhqs\
+hKl8px58p3ihcpxym2WYWpUIugfGtIiFpB++gLt3uGy4bK9lpF4IpF6YXV4aYIFNdjsefFCDV18a\
+UJ5asWQeqmu6dsiBCE4HXYRnfnF6cXl2cntqCHpqg2hnGl+SWZpTHp87lVBkGmWCZHhjHnhjb2do\
+bGhsYnNde116T4JCiAgO+yL6jPoKFfcD+xFhRmhabm4Zbm1udWx+CH1sa4RqG3Rzj5JyH3KSV587\
+rDOwWJ98kAiQfHqNeRtqboB1cB9wdGlcZEL7A/cTGLPSrr6pq6iqqqOsmgiaq6uTqxuop4eDqB+0\
+gMJ20WzUbLh4noYIhZ6biJkbqKaVoKYfpp+rtrLMCA79DvgG+PEVV1+dsGcfZrB5tr4avp23sLAe\
+r6+3nb8bvrd5Z7Afr2adX1gaWHlfZ2ceZmZfeVgbJ0cV91YGlvs0kyCSVsn8KRiPa41xdhpqg2x6\
+bR56bXNzbnsIem1sgmsbamyUnG0fbJx0o3qpCHqpg6utGqSOrZK0Hqz3VaH3J5bxk9eQ4YzsCA54\
++P4cBYsV91T7iAb3A3jdaMJZCMFZplVSGmV+a3BxHnBwan5lG3Z5jpJ7H3uRfZR/loWRf555rHO2\
+ead+mX6YfJZ6kgiSeneOdBtOW3FXZh9mV3hORRpCoEu2VR5Utcdw2Bu6t5eith+1oraxuMD3JfsS\
+GF1OWVtWZ1VmSW08dAj7ovtU95cHL5g+pk61TbVZw2bRCGbReNXYGtmc1K7OHq7OusHGtMaz3Kjx\
+nQgOePqh+mAVhb5/s3qneqdyoWycCJxrZ5NiG05ZfGxjH2Nsd2FWGlaXV6NYHvfr+zD7vAafQ5VI\
+ThpshGV8Xh73AV7KcZ2GCIKsrYatG76zna+oH6ivmcPWGpSLmoqfHvdWkwWOZIxobBr7PWv7D0o9\
+Hj1KPGQwG2JkkZdmH2WWYp5gpvs09wQYaE9dXVRrCGpTTntIGzZGpsFUH1TBb87cGtmmzMG/Hr/A\
+zqXcG6uoh4KmH6aCqHysdICzgauCooKidrdszAj7qvcw92gGfLWCrYamCIamiKanGtOey7HDHrDD\
+xrjargit2uac9Bvq3Hpqzx/Pab9csE6wTp8+kDAI/Zz9ahXAV1amVhtucYF4dh92eIBzcBpvlnSg\
+eR54oKaCrRulp5ahqB+ooKKnnK0IDv75+REcBYsV/fkc+l0F+zQG+fIcBaMFDnj5bPmtFZUG91v3\
+yJ2mlZuNjhmOkoyTkhqWh5SEkB6Qg3mObxtE91X4wPtVBlqKaYZ4gHeAc3JwYvts+88Y94n7Jfvt\
+BlM5BTT4Jfsl/CUHVY5qkH4ekH6UgZmECISYp4e0G7z7Vf0891WwBryqjpKYH5iSlZaSmgiSmo6r\
+vhr8Ivcl+CLLBkb0Bfvd9yX3fgb7Y/fPbrdxp3WWGZJ7a49cG/dV+Un7VVcHZnSIhoIfgoWGgn4a\
+epZxoGgeDnj4cfndFftkBq73MQX3Ygag6Kb3EMPp3ssZyt73Aav3HBv3ANx3ZMEfwGSmXFYacoVz\
+gHYef3V6enaACH92c4VxG3p7jpB6H3qQepN7lYKSeZtypHWifZiEjwiQgIGOgRt4eYF4eh96eHxn\
+gFZw+xAY930GZvsxBft9BvtY/gJu+xlYJkRGGTMw+wlf+yUbK0Gfs1cfVrJxucAasJmsp6geqKer\
+mbAbnJ2IhZwfnIWcg5yAlYSbe6FyoHOafZKGCIaSlYmWG5+clJ6YH5idmbaazwgO+yL3uPnDFVyq\
+aap1rAhsuny9wBrHn8Sywh6ywsW42q4IrtnjnO0b9x73CWhG6x/ZUrJMRBpkfmpwcR5wcGh+YBti\
+Z5Wfbh97lnmldrJ0uHCrbJ4InmxllGAbWGKAdm4fbXZ8c3AacpZ0oXYeoHa6dtR19zlZGPcfYepa\
+v1MIv1KlSkAaXYFgd2IedmJpYVtgvGStZKBkCJ9klV5aGkR2SGFNHmBNTlo7ZwhnOyZ5+w0b+wYr\
+mqo+Hz2pUbJkvQhkvHe7uhq6m7Oqqx6qqrKbuhulooaCoB+fgpx/mHyShJh3nmipVqJpnHuce6N9\
+qoEIgKqtha4btK+SmKsfq5ijnJqhCJqgkqCiGqt+qXCmHnafVKMyqPtFxRj7D7I0u1fECFfEccjM\
+GrqZuKe4Hqe3tbHDqgj4tvwiFZqclpqQmAiQmI6Zmhqqf6V0oB5splSkO6L7GrIYbpNzk3iTCGVs\
+eG1vGnKWdKF4HqF3unbSdPclXhi6fK5/pIAIDvsi5PrlFfcg9yL3HPsbsaSznrSYGZe0tpG3G7e2\
+hX+1H7V+tHizcvcb9xsY9yD7Ivsa+xsFvDekNzYaNHI6Wj4e9xr7Gfsg+yH7G/cZYnJieGB+GX5g\
+YIRfG19hkphiH2KYZJ5mpPsZ+xkY+yP3Ifcb9xkFWeBy4OAa4qTcvdYe+BudFUFMcVdXH1ZXcUxB\
+GkGlTMBXHle/ynHVG9TKpb/AH7+/pcrVGtVxyle/Hr9WTKVCGw7+BPdi+eIVTPfjBYK4h6qdGrSX\
+rqKmHqaippmqG6qmfXCiH6JwlmhhGnaIdIZxHoZ0TPvjBQ77nfoEHAW8FfcG+xAzO1NUdGwZdGx4\
+ZX1emJSYkpiQCI+YmI2YG7Kte2uoH6hrmmReGlZ4XmZnHmZmXXlWG2RllqJnH2ahb6p3sgh2soG4\
+vhrgp93E3B7D3NXU5s4I/IMW9wb7EDI7VFR0bBl0bHhlfV6YlJiSmJAIj5iYjZgbsq17a6gfqGuZ\
+ZF4aVnleZmceZmZdeVYbZGWWomcfZqFvqneyCHaygbi+GuCn3cTcHsPc1dTmzggO/Lz3kfn8FfcW\
+XvsC+973Avvd+xZe+1r4CgX4yvgLFfcXXvsD+973A/vd+xde+1n4CgUO/iz3kfn8FfcWXvsC+973\
+Avvd+xZe+1r4CgUO/iz3WfcPFfsWuPcC9977Avfd9xa491r8CgUO9yTW+noV9ygGjOGWz6C9oL2v\
+ub20vLTJqtWiCKLV4pbuG/Tkf3PUH9Ryvm6qaQipaJppaBpyhXR+dh5+dnp7doAIgHZxhm0bcHOQ\
+lXQfdJRsoWSubKZvnXCWCJVwbJBqG1dcf3NgH2Byb2+Aawh/a4VcThr4twa8rY2PnR+WjZeRmJUI\
+6v1bBliMb42EHo+AkoOVhgiGlaKIrhvE+1X8/fdVtwa0pI2QlR+Vj5KSkJYIj5SNpLQa+H78X/xw\
+B12NbpCAHo+AkoOVhgiGlaOIshu8+1X8/fdVtAaypI6Rlx+XkZOTkJYIj5aNqbwa+Gr7KAcO9yTU\
++noV9yoGzZC/lrIenMaswby9vL3JsdWkCKTV4pfwG7q9iYbCH4TVv4ipG6y1kZa+H+8c+3QGYI1x\
+j4MekICTgpaGCIWWo4ivG7z7Vfz991W8BrCijpCWH5WQkpOQlgiPlo2mtBr6Fgf7BrMFlmdokGkb\
+Wl+BdmQfZHZvcntuCHpug19SGnP3fvtp+378dQddjm+RgB6QgJaEnIcIiJiuisYb+1X8/fdVsQey\
+po6QmB+YkJOTkJUIkJSNpLIa+Hz7KgcO++/6oPkjFftx/qz3cQcO/Gr4nPu0Ffsl+AYG9xSJ5obA\
+HobAhLqAtIC0dsBuzquspKicpJykmaaWqDRyVHx0hgiGc3aIehtnb5agdh92oICnrxqylqigoB6g\
+oKmVtBuen4iFnx/3O1uCtnjKbt4ZdNB/vagasJmrp6QepKavl7cbtq9/dKYfpnSZcGwaeoh2hXMe\
+hXJ9YnZQfWaDdIiBhHSEa4Nj4KbBm6SQCJCkn46cG6ulgHafH552lW1mGmaBbnd2HnZ2cYBqG35/\
+jI5+H36Ob5NfmG+UapRklZRvlnSXeJKApGq4VXNgeGB9YHxggWCGYIVgh0GIIYkuGA785fdz+NkV\
+rL+ktZurmquZsJi1RHVSe2GBCId4eYl6G2ZtlaB2H3WggKiwGrOWqaGgHp+gqZWyG56ih4SlH/cy\
+XYO0e8F0zxls4nzHqhqwmaumpB6kpq6Ythu4r390px+nc5lvaxp8iXyIfB6Ecnxbc0Z2UHxTgVcI\
+sfcD1p60G6ilgXagH6B2lnBqGmCBanZ2HnZ2cIBqG4KCjIyBH4WMhYyFjDqjGFiZa5R+j5JsmmSg\
+XaBdomOkaHJidFt2VnZWfF2EZaGTGPcFqgWWtKiRmxusp4F2oB+gdpZvZhpjgWx2dh52dnKAbBtm\
+QJ6x+wcflViVYJRokHeYYKBKpTkYjYGMgIAaaH1ucHMecm9mf14bYGiYpXAfcKR9qq8amYyYjpce\
+k6yZup/JnsaayZjKhIllgER2Xn5whIKKCIqCgoqDG2NslaB1H3WfgKauGrWWq6CgHqCgp5WwG5+e\
+iYeeH7SCw3vTdH6+fLh8sHywcrtqyAgO/Tf38foIFb62eWewH7BmnV9XGlh5X2dmHmZmX3lXG1hf\
+nbBnH2avebe/Gr6et7CwHrCwtp2+Gw73n/otHATcFRz5avsc+fsHJZA4mEyiTKFXqmKyYrJqvHPG\
+CHPGf8zRGtqYzqTAHqTAsrzAt8C3xajKmQiZyvcFkvc3G/hwO18GZG2Ff3Yfdn58eYJzCIR7iGBE\
+Ghz6FfsbHAaWBw78Qfhr+q8V6NtqSc0fzUmsOy4aLmo8SUkeSEk7ai4bLjuszUkfSc1q2+ga6Kzb\
+zc0ezc3brOgbDv1g94v8DRX7BfcQ49vDwqKrGaKqnbGauH6CfoR+hgiGfn2JfhtlaZurbh9uq3yy\
+uBrAnriwsB6vsLidwBuysYB1sB+wdKdtn2QIn2SVXVgaNm85UzseUzpBQS9ICA77nfd1+/8V+wX3\
+EOPcw8Kiqxmiqp2wmrh+gn6EfoYIhn59iX4bZWmbq24fbqt8srgawJ64sLAesLC4ncAbsrGAdLAf\
+sHSnbZ9kCJ9klV1YGjdvOVM6HlM6QUEvSAj4hBb7BvcQ49zDwqKrGaKqnrCZuH6Cf4R+hgiGfn2J\
+fRtlaZurbh9uq3yyuBrAnriwsB6wsLmdwBuysYB0sB+vdKdtoGQIn2SVXVgaN285UzoeUjpBQTBI\
+CA77nfd1+XYV+wX3EOPbw8Oiqhmiqp2wmrh+gn6FfoYIhn59iX4bZWmbq24fbqt8srgawJ64sLAe\
+r7C4ncAbsrGAdbAfsHSnbZ9kCJ9klV1YGjZvOVM6HlM6QUIvSAj4hBb7BvcQ49vDw6KqGaKqnrCZ\
+uH6Cf4V+hgiGfn2JfRtlaZurbh9uq3yyuBrAnriwsB6vsLmdwBuysYB1sB+vdKdtoGQIn2SVXVga\
+Nm85UzoeUjpBQjBICA78vPjK9w8V+xa49wL33vsC9933Frj3WvwKBfzL/AsV+xa49wL33vsC9933\
+Frj3WvwKBQ75OfqU9/gVvrd5Z7AfsGadX1gaWHlfZ2ceZmZfeVcbWF+dsGcfZq95t74avp23sLAe\
+r6+3nb4b/T4Wvrd5Z7Afr2adX1gaWHlfZ2ceZmZfeVgbV1+dsGcfZq95t74avp23sLAer6+3nb8b\
+HAVVFr63eWewH69mnV9YGlh5X2dnHmZmX3lYG1dfnbBnH2avebe+Gr6dt7CwHq+wt52+Gw4cBYb4\
+SRwFixXaznxuwh/BbrViqFcIqFaaSjwaNH1FblYeblZhYlRtCG1UR3w5GzpImqhWH1WoYbVuwQht\
+wHzO3Brcms6pwR6pwLW1wqkIqcLOmtwb9yH8BxXefsdwsB6wcGmdYBtgaXloch9xZ35ONho1mE6l\
+aB5npK15tRu3rp2wph+lsJjH3xr6C/gHFf34HPpdBfs1BvnzHAWjBfc+/VEV2s58bsIfwW61YqlX\
+CKhWmko9GjN9RW5WHm5WYWJUbQhtVEd8OBs6SJqoVh9WqGG1bsEIbcB8z9wa25rOqcEeqMG2tcKp\
+CKjCzprbG/ci/AcV337HcLAer3BpnWAbYGh5aHIfcWh+TjUaNphOpWgeZ6StebYbtq6dsKYfprCY\
+x94a+Xv4BxXazXxuwh/CbrViqFcIqFaaSj0aM31FblYeblZhYlRtCG1UR3w5GzpImqhWH1WoYbVu\
+wQhtwHzP3Brbms6pwR6pwbW1wqkIqMLOmtwb9yH8BxXffsdwsB6vcGmdYBtgaHloch9xaH5ONRo2\
+mE6laB5npK15thu2rp2wph+msJjH3hoOePna+PEVWF+dsGcfZrB5tr4avp23sLAer6+3nb4bv7d5\
+Z7Afr2adX1gaWHlfZmceZmZfeVgbLEgV91P8EUwG+xEyhX5WH1Z+ZXh0cAh0cH9uahpGrlLQXh5k\
+xst40Ruuq5OcqB+onKmqq7iotKSln5YImqank6gbta99bqgfqG6aaGIaNllGKFUeVSj7CHD7Fxv7\
+DvsDoromHya5QcZb0gha0nPY3BrkptfBzB7BzNa666jJnvSW9yeOCA78vPkO+v4V+9rRUpdin3Gm\
+GXGmfqyxGqWRpJiiHpiinZ2imQiYoqGSoRvCxW9UyR/3a/tUBQ78vPdN+v4VY/D3a/dUBcLJxKa/\
+G7OtfW6nH6dumWhgGmx/bHNuHnNuYXVOfggO++/6CBwE9RU8+xv7ufcB+7n7ATz3G/gI93UFDvwY\
++YIcBZUV8lh/UGlXVF0ZZVxSeEYbWkiYpTQflmdzkIAbgoOJiIQfhId+gXl6+wXKGJ7Brbm9sQiw\
+vb6ewBuenoqInB+ciKmDtX8IeMu4gqUbl5aNj5QflI6XlJuZCA78QfmuHAVaFftI/Rn3SAcO++/5\
+mxwFzxX3AFZuNVpFRVQZVEVCcD4b+y77Ee33Vywf88CuY7VsunYZdbq7gL4b7OG13tgfDv1g99gc\
+BZIVsq58bqgfqG6ZaGQaZn1qcHAecG9qfWQbZGmZp28fbqd9rbMatJispqYepqasmLIbDvvv96Ac\
+BYwVsq58bqgfqG6ZaGQaZn1qcHAecG9qfWQbZGmZp28fbqd9rbMatJispqYepqasmLIb+HYWsq18\
+bqgfqG6ZaGQaZn1qcHAecG9qfWUbY2mZp28fbqd9rbMatJispqYepqasmLMbDv03+MMcBU0VUndb\
+YmMeYmJZd1AbUVmftGIfYrR2vMQaxKC8tLQetLS9n8Ubxr13YrQftGKfWVEa+6+PFXWSeZl8HnyZ\
+nISeG56ckpqZH5makpygGqCEnH2aHpp9epJ4G3d6hH1+H318hHp3Gg79DvfzFjAHjqiijZsbvbR9\
+bqsfq26bZ14aVHVcYGUeZWBQeEEbTFmXpGgfZ6R5p6saoZGcmJgel5ickaIbnp+DeqEfnH2ZgpaH\
+CIaVlomWG5+akJaVH5makpydGqKBn3ebHpp2bZNjG3dyioluH573MgUO/Gr3UBwEiRW892uXv5es\
+l5oZpKCmmKsbpqOBd54fnneUc3AaZHhjZWMe+zH7NwX3wKkVvPdrlr+XrJeZGaWgppisG6aigXee\
+H553lHNvGmR4ZGVjHvsw+zcFDv1g93sW9yMGXmV1YmAadpF7loAef5abhZ8bm5qOkJofmZCfmKSe\
+rU0YdmJvbGZ0CHRmY4BfG1tlmahuH26nfbG6GsyoxsTBHg777/chHAVLFdr3HPe4+wH3ufcB2fsc\
+/Af7dQUO+TkcCAz5IxX7cRz36PdxBw76WPg1HAVzFRwGlQb3M/xM+0pIZd1lyGWyGWWyYKVamQiZ\
+Wk+SQxv7dfvv4gbBr4+Tnh+dk5iYlJwIlJyPrLwaufdI/N/7SMcHsoeog58egp5/mHqSCJJ6aY5W\
+Gyz70QZqjXaQgh6PgpGElIgIh5SiibAb9wwG9xTzp8TbH9vDyuW49xD3SU8Y+0n8mgUc+zb3VawG\
+uqmOkZkfmZGVlZKaCJKajqi3Gvd2/KAH+wX7jgWBdIZ5fhp5k32agh6FlqKIrBvJ+1X83PdVBq6m\
+jpGcH5yQmJOUlZqbmqOaq/gR+aoYm6yTo5ganIKXeZIekX5xjmQbXgb5LvxaFfg6+4sH+1D8OgUO\
+/Lz5pfo5FfsmB35gZIVoG2RpkJZwH3CWcZxzpAhdPkJ0RhtIVpyuZB9krXe1vBrBpbe+rR7LtvcA\
+p/csmAi2iaeIlx6Hl4SVgJIIkoB9j3gben2IhIEfgYR+fHxzfnV9fHuDCIJ6d4dyG2pxk5t6H3mb\
+gqGnGqSTopyeHqKmr6G+nAicvsOUyhvJwIF4tx+3d6p0nHAInHCUYlYa+2sHcI16kIUegpSXhpwb\
+lp+PlKkf+973DBVUgmeEfIV2gn2Cg4AIgoCHfXsaeZF9loAegJabhZ8boquXo7YfDk/45/oFFfeS\
+90QF+0YH+5L7QQX8JgdrjXeOhB6OhJGFlIcIhpSdiaYb5NOXosIfwaK8sbe/tr6x0ark90xMGPtM\
+/JgF/r33Vc4GpqCPkpkfmZKVlZKYCJGXjqCqGvdDB/s9+wcF9zwH9z33CAX4UgesiKOFmh6EmoKV\
+gJIIkn93jnAbQfdV+T77VU8GanaJiIIfe4R/gYR+CIR9h3VtGg73nxwFGhwE8xX3Mfcs8CP7Lvsp\
+BfX7EcD7MftPGvsibPsSTPsBHkz7AjU2+wJQCE/7A/sZbfsvGygyl6Q8HzykQ7BKvvsw+yoYJvP3\
+LfcnVsxj0nHXGXHWfuDpGvdp0fdD9x/3Gx73G/cf90nP93Ub7ON/ctgf2HLUZc9XCPtt+2YVbbdl\
+rlykCKRcWJdWGyQ4YzpMHz4nZPsU+zEaOJVDnk4e+S34TRX87PzYBS7M5F33BBv037LayR/W6bD3\
+EvcxGt+B1njMHg76/BwE1RwFcxX6lwb3M/xN+0tKdr5yuG6yGW2ya6pqoGqgZJpflAiRbV6OTxv7\
+gvvu7AbCsI+TnR+dk5iXk5wIk5uPrb4avPdI/OT7SLkHwIetg5weg5x/l3uTCJJ6aI9WGyL7yAZk\
+jXSOgh6OgpGEkogIhpWgiKob9wsG3tGTnMMf1qLIr7y8u7y21rDu90tOGPtL/JkF/sDyBlBfS2tG\
+dwh2Rj2BMxv7bvtFzvcb+xwf+xz3G0f3QPdlGvcgqvcQyfcBHsn3AeTh9wfKCMr3B/cUqvciG+Xh\
+fnHeH8R6wHG8aQj8GyIVRkp3ZE8fTmNcU2pDCGpDejD7ARr7MrD7D9U0HjTU51/3Ahv3Aue35NYf\
+1uSw9w33Lhr3MmT3Ej3oHt5GMLT7BRsO/Lz4LBwFixX3B+dsTs8fz06tPSwaK2k8SE0eTUgvbPsH\
+G/sJL6rISB9IyGra7Rrpq9fMxR7M1Oes9wQbjfszFWZtfW90H3Rvf2FTGk+WYKJwHnCiqH2uG7Cq\
+maijH6Knl7XDGsSAtXSoHqd0bplmGw74QxwGsPh3Ff1GegZEpE+9WB5Yvcdx0hu+wJmmwR/Bpr+z\
+vcL3G/seGEQ6Rk9HZAhYMSlyIBs6R5ilUh9SpU28R9MyRz9cTHIIckxIfkUbKDumwU4fTsFtzdoa\
+vpi5pLMepLKxrsCowKjQo+GewpfjmPcPmQjSB7uArnWiHqJ1a5ZhG2Rtg3p1H3R6dmp4XHxle3J7\
+fwh2b2qBZBtgZ5mnbx9up32ssBq3nbivuB6uuMCv0qcIptHfme4b1sqDe74fvnu6crRqCMzi9Kz3\
+Dxv3NfcMWincH9wps/sK+x4a+9P3GBWHtYKsfKR8o3iecpkImXJwkm0bW2F7amgfZ2p1YINWCPvh\
++2AV+xhzOHRpdAhodHpuaBpulnSgeB54oKeBrBufpJCWqB+ymrCesKIIDv0O+Lb6khX9dwdojXWP\
+gx6Pg5KFlocIhpWiia8bwftV/P73VcAGrqGNj5UflI6SkZCUCJCUjZylGvhx+yj3UAfAjr2QvJS7\
+lLaVsZekk6mYr54IDv03+KD6RxX3LPcABfs2B/ss+wEF/HoHZI1zjoQekH6VgZuFCIeVpom3G677\
+Vfz/91WxBrOljpCWH5aQlJOQlgiQlo6jsRr3lwf7KCIF9zcH9yj0Bfhq+yj3Vgf3C5P3EKf3E7sI\
+7AYOJvpu+i0V9wHw7iIkLAXQMq0h+xEa+zBY+xMmKh4qJvscWvs9G/sg+wqszSsfICgo9e/nBUji\
+avcB9xka86LluNYeuNbMyOC5CLjg7aL3Ahv3H/cKaUjsH/th+1EVumVbo1IbZGeAdWofanRxanhf\
+CHhfglNIGmyNbJBsHvgr90cV+/X72px1oXqlfhl+paaFpxvEvKS8th+2vKDX9BqsiaqHqB4O+L4c\
+Byv4eRX9OAaTM6dHu1oIWrrFc9AbuLyYpb4fvqW8s7vA9yP7Fhg2LDlIPGQIZDw4eDQbQ0iXpE4f\
+TaRYrGS2XF5TaUp0CHNKQn87GyAsobk4Hzi4TMdf1whf1nXm9Rr3Mbz3Ee3oHu/09x299zsb2tCB\
+dsgfx3bBartfxLrDrcGeCJ7AyJXPG+7gdmHTH9JhwlKxQrFCnyeN+xUI+9P3PBWIsoOrfKZ8pXif\
+dJoImXRxkm8bXmR8bWsfam11Xn5PCPyn9ywVZWiAdGofanRxaHhcCHhcgVFHGjScQ65THlOtvm/O\
+G8q+pb+0H7O/n9nyGux31WS/Hr5kWqVQGw541fp6Ffcpwwb3D7fv4tge1+L3EbH3Nhv3JfcEbE3Y\
+H9hMsjwsGmSFa39xHn5we3h4f3d/aoNeh1iGaoR8gQh8gIN+exp6knuYeh6YeqxvwGT3Fy0YoXum\
+c6pqqmqjaJtkCJpkk19bGiFkMj5EHkM+J2f7DhsoPaK5UR9RuG6/xRqymaumph6mpqyYsxumo4N8\
+oR+Wg6FzrGQIZKyqd6kbpKGTm5wfnJuTnqIaoIOieqQeeqRrqVqvINoY+xnuSfb3BxrPoca2vh62\
+vcmu2p6JrYWlgJ6AnXyZdpYIlXZxkG0baGyDe28fbnt3dn5xCH5xhWVaGv6y/Gr3VbcHsqONkJYf\
+lo+TkpCWCJCVjaGuGviG+ykHDvzE+LMcBYsV/MAHco19kIcehpGdiKkb6vsQ/Kn3EOsGppyMjpIf\
+ko2Pjo6QCI6QjJefGvgI+zn3EAfUkMWTuJS3lLaXtZwIDvsi+ur4IBX7UPf+/bf3UPpzBg54wPm5\
+FfdVB/hnlAX9HQdVkWaYdh52mKWAshvD1avK5x/4Ggeyh6aDmx6bgnKTYBtR91UG+GiUBf1gB16Q\
+cJWBHoCVpoa4G8D7VQb8S38F9woH+wQ2+wlg+w6JCPw6+9QcBH0HuIaogZYeloFxkWIbDvkQcxwF\
+TBX5nft2aAaKr4Orfad8pnifcpgIl3JmkVkbZfzfBlyObZB+HpB+lYCZgwiDmKGHqhtp/FqtB7OO\
+pI+UkZSQk5WQmQiQmY2rvBr43GgHRll7amwfcnB9YoZSCGoG+gv3dhX4BAb3e/yD93n4gwX372UG\
+a3WIhH8ffoSCf4V7CIaAiW1bGvxsB2COcJB/HpB+lIGZg5iCoYapiQhp/GGtB7GMpI6YkpiSlJaS\
+mgiRmo6ntRr4jgf71P0xBXMG+9L5MQX8igdcjm2Qfx6QfpaBmoOag6SHr4oIafutrQeyjaSPl5KW\
+kpSVkZkIkJiOqroa+GgHuYiqhJoehJqAl3uSCI+BdY1pGw73dveH+QUV+zv3Jfc798wGtoimhpge\
+hZeClH6SCJF+b45hG1v3VflvBvc69xhxVu0f7VbZPcYkCMUkqPsQ+yUaJnwxbjwebTxfQ1BMUEtM\
+W0hrWHNEdy58CHwuQINTG/0Y91W7BrSljpKYH5iSlZaTmwiQmI6mthr36/fFFfvVB26NeY6EHpCB\
+k4SWiAiHlaSJshv3AeGcrckfyKy9wbHWCLHVnuPyGvB55GjWHmfWX79WqgiqVkCaKRv7Lvwl95b7\
+JQYO+ST4/RwFixX8wAdyjX2Qhx6GkZ2IqRvq+xD8qfcQ6wamnIyOkh+SjY+OjpAIjpCMl58a+Aj7\
+OfcQB9SQxZO4lLeUtpe1nAj53hb9+Rz6XQX7NAb58hwFowX3C/58FfsigAWEo4ignhrer8vUuB64\
+09+h6xvPx4B1wB/AdLJvpGoIpGmXZ2QaUXFXWFweV1wmUPsqRAj3Ogarn4yOkh+SjpGQkJKPkpCd\
+kakI9x8GUvuhBSwGg6MF/Lf3Cwbct/DL9w3ezrq2sZ6oCJmhkqCgGqN+oHGeHp5xZ5RdG1ZjgHRu\
+H250fHBrGoSNfI90Hg77i/q2+XUV/B/8H/td+B/8H/dR+B/4H/dd/B/4Hwb96AT+c/dR+nMGDnj5\
+jhwFcxX7PUQHbHWIhH4ffoSCgIZ8CIiEim1XGvd1BunZgnnJH8l5wHC4ZrdmrV+iWgiiWZdXVBr7\
+A14tMD4ePjD7E2X7Nxv7gmAGb454koAekoCUg5iGCIaYpom1G7r7Pf0891W6BrSnjpGYH5iRlZWR\
+mAiRmI6ltBr5kwe2iKeGmR6GmIKVgJIIkX91jmobSPdVBviU/KMV+/H3CwfVwZKZrh+tmaagn6YI\
+nqaVq68awnO3W6wepWZUmEIbDvkk+P0cBYsV/MAHco19kIcehpGdiKkb6vsQ/Kn3EOsGppyMjpIf\
+ko2Pjo6QCI6QjJefGvgI+zn3EAfUkMWTuJS3lLaXtZwI+d4W/fkc+l0F+zQG+fIcBaMF9/L9UBX3\
+X/wK9zD7Lvsw+1P7Z/dT/Bj3Qwb4GPdEFftw+1kF93AGDvuL+MgcBI8VsKp+cqUfpXGYa2YaZn5r\
+cHEecHBsfmYbZmyYpnEfcKV+q7AasJirpqUepKWrmLEb+IL8yBX+c/dQ+nMG/IL7vBWwqn5ypR+l\
+cZhsZhplfmtwcR5wcGx+ZhtmbJimcR9wpX6rsBqwmKumpR6kpauYsRsO+yL4fBwFvBX3kv3PBvuS\
+KwX7OAT3kusF/i/7kgcO/Lz4LRwFixXXzHBWwB/AVqZKPxpAcEpWVh5WVkpwPxtASqbAVh9WwHDM\
+1hrXpszAwB7AwMym1hv7DwRiaXxubh9ubnxnYRpimmeobh5uqK18tBu0r5qoqB+oqJmvtBq1fa9u\
+qB6obmeaYhsOT/i1HAW8FfzBB7i0tqiznAibsriTvRv3C+xgNtQf4Ci1+xL7Lhr7J2b7DkIoHvsG\
+N/sFUvshG15jkJZpH2mVZp5jpgj7XQdjjXOPgx6QgZKElocIhpWlibQbuvtV/QL3Va0GuaeNj5Uf\
+lI6Tk5GXCJCWjqOvGhwFP/sp91UH05TIlr6Yvpi+nL+hCPcX/YoV+9oHWJBmlXYelHWceaN+CH2i\
+poSqG8G4pL2vH669ndfxGup80Wy5HrhsZKJeG3FwhX9uH25/bXlrcggO+ST3wxwEhRX7JKsGzqS/\
+vLEevMrdo/EbzMSBeL0fvHewcqJtCKJtl21tGm+Bb3hwHndvb3Rnerx8sHakbgikbphpZRpOblZR\
+YB5aSTJy+wUb+wIxo7pFH1Oxb7e8GqWVoaCeHp6gpZSqG8CwcFagH5ZwlHmTgpOCmYSehAiEnp+H\
+oBuyrJagph+fmpWhpxqpfqNxnR6ccV2USBtY9w++Bsq1kpigH6CYlZygGp6AnHaaHpp1apJgG1Rj\
+f3JyH3t7gnKJagj60PeaFf35HPpdBfs0BvnyHAWjBffz/VAV91/8Cvcw+y77MPtT+2f3U/wY90MG\
++Bj3RBX7cPtZBfdwBg78xPdZ+ucV+yKABYSjiKCeGt6vy9S4HrjT36HrG8/HgHXAH8B0sm+kagik\
+aZdnZBpRcVdYXB5XXCZQ+ypECPc6BqufjI6SH5KOkZCQko+SkJ2RqQj3HwZS+6EFLAaDowX8t/cL\
+Bty38Mv3Dd7OuraxnqgImaGSoKAao36gcZ4ennFnlF0bVmOAdG4fbnR8cGsahI18j3QeDvck+Yoc\
+BWsV9xP3CmtM9wIf9wJM4jTK+wEIyvsCq/sK+xMa+xNr+wpM+wEeTPsCNDT7AkwITPsC+wpr+xMb\
++xP7CqvK+wEf+wLKNOJM9wIITPcBa/cK9xMa9xOr9wrK9wIeyvcB4uL3AsoIyvcB9wqr9xMbMgT7\
+AyRvVCsfK1Q/P1QrCFQrbyT7Axr7A6ckwisewivXP+tUCFTr8m/3Axv3A/Knwusf68LX18LrCMLr\
+p/L3Axr3A2/yVOseVOs/1yvCCMIrJKf7Axv8D/tkFff+Bu7Tg3u2H7Z7rXGlaAikZ5hkYBpWeVxm\
+ZB5ubGJ1VXz3HfuOGJ1qnnGfeZeAm4Sfhwhp+4YH+2H4BAVd+1oGX45uknwekXyVf5qEmoOlhrGK\
+CGn8O60HsaSRlpgfnpyVs8ka+GwHwYWugJoef5pzlWePCPez+/gViKKdiZobuLCcrKofqqyatsEa\
+w322bqgeqG5emU8bZQYO+yL66vjvFf5z91D6cwYOJvhdHAW8FfehBq1sq2qqaPet1Riq+wr7c1Hi\
++wLLJbQtGcH7Dqb7EfsUGvsRc/sAWy8eWi9IRTZaCFo2JnL7CBv7MfsTvO4oHyjtWfcR9ysa86Hl\
+t9gettjLyN+5CLne6KLyG8K+gXi5H3vKbNFe1/upRBhr9wn3gMl5o3uffZsZh5Brq0/ICPgM/lYV\
+1ILEerYeerZ0q26gCKBuapVlG05ZclhkH2RYd0AmGvsCnTyuWx5brrtzxxuyr5aiqx+qoaSsnbcI\
+nbaUx9caDvsi+kT3fhX72vfa+9r72vsg9yD32vfa+9r32vca9xr32vva99r32vcg+yD72vva99n7\
+2QUO/MT3eBwEhRX7JKsGzqS/vLEevMrdo/EbzMSBeL0fvHewcqJtCKJtl21tGm+Bb3hwHndvb3Rn\
+erx8sHakbgikbphpZRpOblZRYB5aSTJy+wUb+wIxo7pFH1Oxb7e8GqWVoaCeHp6gpZSqG8CwcFag\
+H5ZwlHmTgpOCmYSehAiEnp+HoBuyrJagph+fmpWhpxqpfqNxnR6ccV2USBtY9w++Bsq1kpigH6CY\
+lZygGp6AnHaaHpp1apJgG1Rjf3JyH3t7gnKJaggO9yT5ihwFaxX3E/cKa0z3Ah/3AkziNMr7AQjK\
++wKr+wr7Exr7E2v7Ckz7AR5M+wI0NPsCTAhM+wL7Cmv7Exv7E/sKq8r7AR/7Aso04kz3AghM9wFr\
+9wr3Exr3E6v3Csr3Ah7K9wHi4vcCygjK9wH3Cqv3ExsyBPsDJG9UKx8rVD8/VCsIVCtvJPsDGvsD\
+pyTCKx7CK9c/61QIVOvyb/cDG/cD8qfC6x/rwtfXwusIwuun8vcDGvcDb/JU6x5U6z/XK8IIwisk\
+p/sDG/fj+1QV+5xlB37Ob8BesgixXlWeThs/TW1PWx9bT3Mw+w8aLpVEnlkenlmqZLVvCG60t326\
+G6qqkJarH6qVqJmknaScp6aorwhFB2dlZG9geAhvTkh9Qxs6Qp2uSh9Krlm7aMgIaMh60doa9xO1\
+9N7eHt7e9LT3ExuqqYiGqB+nhq+AtnsIg6Cbh5QbpZqcrZAfDvP42xwFcxX3zQb4N/7JolKfZ51+\
+GZx+rIS6jAj7Vf0o91UHs4wFsKSQlZofmpSSl5kal4WkfrAeYvcTBfw9Blf7IQWAbYZ3ghqAj4KT\
+gh6SgpiFnIcIiJarir4b+1X8sPdVB66kjpGbH5uRmJSWl5WXlqGYrAj4GPfwFferBvsc+BQF+wL4\
+YhVj8Pdr91QFwsnEpr8bs619bqcfp26ZaGAabH9sc24ec25hdU5+CA7z+NscBXMV980G+Df+yaJS\
+n2edfhmcfqyEuowI+1X9KPdVB7OMBbCkkJWaH5qUkpeZGpeFpH6wHmL3EwX8PQZX+yEFgG2Gd4Ia\
+gI+Ck4IekoKYhZyHCIiWq4q+G/tV/LD3VQeupI6Rmx+bkZiUlpeVl5ahmKwI+Bj38BX3qwb7HPgU\
+Bfg/+O0VPPsb+7n3Afu5+wE89xv4CPd1BQ7z+NscBXMV980G+Df+yaJSn2edfhmcfqyEuowI+1X9\
+KPdVB7OMBbCkkJWaH5qUkpeZGpeFpH6wHmL3EwX8PQZX+yEFgG2Gd4IagI+Ck4IekoKYhZyHCIiW\
+q4q+G/tV/LD3VQeupI6Rmx+bkZiUlpeVl5ahmKwI+Bj38BX3qwb7HPgUBftR+YQVsq58bqgfqG6Z\
+aGQaZn1qcHAecG9qfWQbZGmZp28fbqd9rbMatJispqYepqasmLIb+HYWsq18bqgfqG6ZaGQaZn1q\
+cHAecG9qfWUbY2mZp28fbqd9rbMatJispqYepqasmLMbDvP42xwFcxX3zQb4N/7JolKfZ51+GZx+\
+rIS6jAj7Vf0o91UHs4wFsKSQlZofmpSSl5kal4WkfrAeYvcTBfw9Blf7IQWAbYZ3ghqAj4KTgh6S\
+gpiFnIcIiJarir4b+1X8sPdVB66kjpGbH5uRmJSWl5WXlqGYrAj4GPfwFferBvsc+BQF9274YhX7\
+2tFSl2KfcaYZcaZ+rLEapZGkmKIemKKdnaKZCJiioZKhG8LFb1TJH/dr+1QFDvP42xwFcxX3zQb4\
+N/7JolKfZ51+GZx+rIS6jAj7Vf0o91UHs4wFsKSQlZofmpSSl5kal4WkfrAeYvcTBfw9Blf7IQWA\
+bYZ3ghqAj4KTgh6SgpiFnIcIiJarir4b+1X8sPdVB66kjpGbH5uRmJSWl5WXlqGYrAj4GPfwFfer\
+Bvsc+BQF9575RRVSd1tiYx5iYll3UBtRWZ+0Yh9itHa8xBrEoLy0tB60tL2fxRvGvXditB+0Yp9Z\
+URr7r48VdZJ5mXwefJmchJ4bnpySmpkfmZqSnKAaoIScfZoemn16kngbd3qEfX4ffXyEencaDvP4\
+2xwFcxX3zQb4N/7JolKfZ51+GZx+rIS6jAj7Vf0o91UHs4wFsKSQlZofmpSSl5kal4WkfrAeYvcT\
+Bfw9Blf7IQWAbYZ3ghqAj4KTgh6SgpiFnIcIiJarir4b+1X8sPdVB66kjpGbH5uRmJSWl5WXlqGY\
+rAj4GPfwFferBvsc+BQF9835jRXyWH9QaVdUXRllXFJ4RhtaSJilNB+WZ3OQgBuCg4mIhB+Eh36B\
+eXr7BcoYnsGtub2xCLC9vp7AG56eioicH5yIqYO1fwh4y7iCpRuXlo2PlB+UjpeUm5kIDvckHASB\
+HAVzFfciBvcd/In7TlVN9wtR4FS9GdA/Oa0yG0pPeWdTH1JnX1ZqRQhqRXo5LRr7I7H7ENckHiTW\
+7lf3DxvZ1qG40x/lwtnWzOj3L/sHGCb7HS8rOFUIOPsV+yNh+zIb+xf7C6vKIR8gyjbjTPcFCEz3\
+BWv3EPcaGvcZqvcOyfcCHsj3Ad/h9sgIyPX3Cqr3Fxv3GfcIb1PvH/vTHPrJFTAHjqiijZsbvbR9\
+bqsfq26bZ14aVHVcYGUeZWBQeEEbTFmXpGgfZ6R5p6saoZGcmJgel5ickaIbnp+DeqEfnH2ZgpaH\
+CIaVlomWG5+akJaVH5makpydGqKBn3ebHpp2bZNjG3dyioluH573MgUO89kcBXMVHASMBvcz/E37\
+SUps02jFYrcZYrddqFqaCJlZUZJJG/tp+/DRBsCuj5OeH52SmJeTnAiTm4+rvBrA90b84vtGxwe0\
+hqiCnh6Bnn6XepIIknpmjlIbTPvUBmmNdo6EHo6EkoWVhwiHlKCJqxv3CQbi1Zikxx/HpMGzusO6\
+wq/NpNj3S0wY+0v8mgUc+0r3Va4GuqqOkpsfm5KWlpKcCI6Vjae6GvmMB7SIpoaYHoWYgpR/kgiR\
+f3OOaBtNBvhG97QVY/D3a/dUBcLJxKa/G7OtfW6nH6dumWhgGmx/bHNuHnNuYXVOfggO89kcBXMV\
+HASMBvcz/E37SUps02jFYrcZYrddqFqaCJlZUZJJG/tp+/DRBsCuj5OeH52SmJeTnAiTm4+rvBrA\
+90b84vtGxwe0hqiCnh6Bnn6XepIIknpmjlIbTPvUBmmNdo6EHo6EkoWVhwiHlKCJqxv3CQbi1Zik\
+xx/HpMGzusO6wq/NpNj3S0wY+0v8mgUc+0r3Va4GuqqOkpsfm5KWlpKcCI6Vjae6GvmMB7SIpoaY\
+HoWYgpR/kgiRf3OOaBtNBvqb+D8VPPsb+7n3Afu5+wE89xv4CPd1BQ7z2RwFcxUcBIwG9zP8TftJ\
+SmzTaMVitxlit12oWpoImVlRkkkb+2n78NEGwK6Pk54fnZKYl5OcCJObj6u8GsD3Rvzi+0bHB7SG\
+qIKeHoGefpd6kgiSemaOUhtM+9QGaY12joQejoSShZWHCIeUoImrG/cJBuLVmKTHH8ekwbO6w7rC\
+r82k2PdLTBj7S/yaBRz7SvdVrga6qo6Smx+bkpaWkpwIjpWNp7oa+YwHtIimhpgehZiClH+SCJF/\
+c45oG00G+DP41hWyrnxuqB+obploZBpmfWpwcB5wb2p9ZBtkaZmnbx9up32tsxq0mKymph6mpqyY\
+shv4dhayrXxuqB+obploZBpmfWpwcB5wb2p9ZRtjaZmnbx9up32tsxq0mKymph6mpqyYsxsO89kc\
+BXMVHASMBvcz/E37SUps02jFYrcZYrddqFqaCJlZUZJJG/tp+/DRBsCuj5OeH52SmJeTnAiTm4+r\
+vBrA90b84vtGxwe0hqiCnh6Bnn6XepIIknpmjlIbTPvUBmmNdo6EHo6EkoWVhwiHlKCJqxv3CQbi\
+1Zikxx/HpMGzusO6wq/NpNj3S0wY+0v8mgUc+0r3Va4GuqqOkpsfm5KWlpKcCI6Vjae6GvmMB7SI\
+poaYHoWYgpR/kgiRf3OOaBtNBvoH97QV+9rRUpdin3GmGXGmfqyxGqWRpJiiHpiinZ2imQiYoqGS\
+oRvCxW9UyR/3a/tUBQ78vNEcBXMV+Tz7VU0GZ3OIhYAff4SCgYZ+CIV9iHFkGv2YB2GNcJB/HpB/\
+k4KWhgiDmaCHpxvV+1X9PPdVwgaypY6Rlx+XkJSUkZgIkJeOo7Aa+ZsHtoiohpkehZiBln6SCJCC\
+dI5nG00G90P3tBVj8Pdr91QFwsnEpr8bs619bqcfp26ZaGAabH9sc24ec25hdU5+CA78vNEcBXMV\
++Tz7VU0GZ3OIhYAff4SCgYZ+CIV9iHFkGv2YB2GNcJB/HpB/k4KWhgiDmaCHpxvV+1X9PPdVwgay\
+pY6Rlx+XkJSUkZgIkJeOo7Aa+ZsHtoiohpkehZiBln6SCJCCdI5nG00G+Vz4PxU8+xv7ufcB+7n7\
+ATz3G/gI93UFDvy80RwFcxX5PPtVTQZnc4iFgB9/hIKBhn4IhX2IcWQa/ZgHYY1wkH8ekH+TgpaG\
+CIOZoIenG9X7Vf0891XCBrKljpGXH5eQlJSRmAiQl46jsBr5mwe2iKiGmR6FmIGWfpIIkIJ0jmcb\
+TQbr+NYVsq58bqgfqG6ZaGQaZn1qcHAecG9qfWQbZGmZp28fbqd9rbMatJispqYepqasmLIb+HYW\
+sq18bqgfqG6ZaGQaZn1qcHAecG9qfWUbY2mZp28fbqd9rbMatJispqYepqasmLMbDvy80RwFcxX5\
+PPtVTQZnc4iFgB9/hIKBhn4IhX2IcWQa/ZgHYY1wkH8ekH+TgpaGCIOZoIenG9X7Vf0891XCBrKl\
+jpGXH5eQlJSRmAiQl46jsBr5mwe2iKiGmR6FmIGWfpIIkIJ0jmcbTQb4jPe0Ffva0VKXYp9xphlx\
+pn6ssRqlkaSYoh6Yop2dopkImKKhkqEbwsVvVMkf92v7VAUO9yTZHAVzFfjLBvgt/cIF+IYHtoml\
+hpYehJuCloCSCJGAdY5qG0f3VfjU+1VLBmt0h4R+H32EgYGGfgiGfohwYRr+y/uzB/ya+pgF/WMH\
+Yo5wkIAekICUgpiECISYoYirG877VfzX91XHBqyijpGYH5eQlZWSmQiSmY+gpxr5tAeqiKGEmh6E\
+mYKVgJIIkYB4jnAbQAb6PvjfFfJYf1BpV1RdGWVcUnhGG1pImKU0H5Znc5CAG4KDiYiEH4SHfoF5\
+evsFyhiewa25vbEIsL2+nsAbnp6KiJwfnIipg7V/CHjLuIKlG5eWjY+UH5SOl5SbmQgO95/5zRwF\
+ixX3cfdISPsb9x0f9x37G8/7QftnGvsibPsSTPsCHkz7AjU2+wJQCE/7A/sZbfswG/ti+z3E9wX7\
+Fx/7M/cdPPdK93ka92nR90L3H/cbHvcb9x/3Sc/3dRuP+3IVITdjPEwfPCdk+xX7Mhr7MrD7EdQv\
+HjzK32TzG/TestrKH9XpsPcS9zEa9wN76GzWHmvWYMRVsAiwVVCeTBv7Qve5FWPw92v3VAXCycSm\
+vxuzrX1upx+nbploYBpsf2xzbh5zbmF1Tn4IDvef+c0cBYsV93H3SEj7G/cdH/cd+xvP+0H7Zxr7\
+Imz7Ekz7Ah5M+wI1NvsCUAhP+wP7GW37MBv7Yvs9xPcF+xcf+zP3HTz3Svd5Gvdp0fdC9x/3Gx73\
+G/cf90nP93Ubj/tyFSE3YzxMHzwnZPsV+zIa+zKw+xHULx48yt9k8xv03rLayh/V6bD3EvcxGvcD\
+e+hs1h5r1mDEVbAIsFVQnkwb9//4RBU8+xv7ufcB+7n7ATz3G/gI93UFDvef+c0cBYsV93H3SEj7\
+G/cdH/cd+xvP+0H7Zxr7Imz7Ekz7Ah5M+wI1NvsCUAhP+wP7GW37MBv7Yvs9xPcF+xcf+zP3HTz3\
+Svd5Gvdp0fdC9x/3Gx73G/cf90nP93Ubj/tyFSE3YzxMHzwnZPsV+zIa+zKw+xHULx48yt9k8xv0\
+3rLayh/V6bD3EvcxGvcDe+hs1h5r1mDEVbAIsFVQnkwb+5L42xWyrnxuqB+obploZBpmfWpwcB5w\
+b2p9ZBtkaZmnbx9up32tsxq0mKymph6mpqyYshv4dhayrXxuqB+obploZBpmfWpwcB5wb2p9ZRtj\
+aZmnbx9up32tsxq0mKymph6mpqyYsxsO95/5zRwFixX3cfdISPsb9x0f9x37G8/7QftnGvsibPsS\
+TPsCHkz7AjU2+wJQCE/7A/sZbfswG/ti+z3E9wX7Fx/7M/cdPPdK93ka92nR90L3H/cbHvcb9x/3\
+Sc/3dRuP+3IVITdjPEwfPCdk+xX7Mhr7MrD7EdQvHjzK32TzG/TestrKH9XpsPcS9zEa9wN76GzW\
+HmvWYMRVsAiwVVCeTBv3Lve5Ffva0VKXYp9xphlxpn6ssRqlkaSYoh6Yop2dopkImKKhkqEbwsVv\
+VMkf92v7VAUO95/5zRwFixX3cfdISPsb9x0f9x37G8/7QftnGvsibPsSTPsCHkz7AjU2+wJQCE/7\
+A/sZbfswG/ti+z3E9wX7Fx/7M/cdPPdK93ka92nR90L3H/cbHvcb9x/3Sc/3dRuP+3IVITdjPEwf\
+PCdk+xX7Mhr7MrD7EdQvHjzK32TzG/TestrKH9XpsPcS9zEa9wN76GzWHmvWYMRVsAiwVVCeTBv3\
+l/jkFfJYf1BpV1RdGWVcUnhGG1pImKU0H5Znc5CAG4KDiYiEH4SHfoF5evsFyhiewa25vbEIsL2+\
+nsAbnp6KiJwfnIipg7V/CHjLuIKlG5eWjY+UH5SOl5SbmQgOePr9HAVzFfcM/Gj7TlZN9wNF3Ty/\
+Gb48OKUyG1Jef3RqH2p0enFuGmqabalvHqhvwXLadfegPRj3KWD1U8pECMpEqjgsGvsNWyUrOB4v\
+IPsaXfszG0FHlJ9NH02eSqpIuF8nGPspBij4sfdPuLf7AtAv6EIZQejxZvcDG721kZisH6yYo5yc\
+ogicopOioxqzeK1kqB5kqEanKaf7fc8YaJVbnk+nTqZdqGupaqlwsna6CHa6gLy/GtWgz7TKHrTJ\
+yL3esgiy3eae7xv3DfcBbEzsH7LRBf0999QV2vcc97j7Afe59wHZ+xz8B/t1BQ73JLAcBXMV+T37\
+VUgGbHaHhH4ffoSBgIV+CIV9iG9hGvyQByyVRZ5cHp5cp2iycwhysbl/whvCu5imth+2pqmtnrQI\
+nbSUzuoa+MQHooichZUeg5iAlX6QCI+Cc41lG1X3VfjV+1VeBl5wiIaAH3uDf3+EfAiGgYhvXhr8\
+ugcmfDZuRh5iLktCMlgIVzIhcfsOGzU+mKZHH0elULFYvFi8Z753wgh2woHb9hr4rwe8iKuGmh6G\
+mYKVf5IIkn90jmgbSwb48ve0FWPw92v3VAXCycSmvxuzrX1upx+nbploYBpsf2xzbh5zbmF1Tn4I\
+DvcksBwFcxX5PftVSAZsdoeEfh9+hIGAhX4IhX2Ib2Ea/JAHLJVFnlwenlynaLJzCHKxuX/CG8K7\
+mKa2H7amqa2etAidtJTO6hr4xAeiiJyFlR6DmICVfpAIj4JzjWUbVfdV+NX7VV4GXnCIhoAfe4N/\
+f4R8CIaBiG9eGvy6ByZ8Nm5GHmIuS0IyWAhXMiFx+w4bNT6YpkcfR6VQsVi8WLxnvnfCCHbCgdv2\
+GvivB7yIq4aaHoaZgpV/kgiSf3SOaBtLBhwEbPg/FTz7G/u59wH7ufsBPPcb+Aj3dQUO9ySwHAVz\
+Ffk9+1VIBmx2h4R+H36EgYCFfgiFfYhvYRr8kAcslUWeXB6eXKdosnMIcrG5f8IbwruYprYftqap\
+rZ60CJ20lM7qGvjEB6KInIWVHoOYgJV+kAiPgnONZRtV91X41ftVXgZecIiGgB97g39/hHwIhoGI\
+b14a/LoHJnw2bkYeYi5LQjJYCFcyIXH7Dhs1PpimRx9HpVCxWLxYvGe+d8IIdsKB2/Ya+K8HvIir\
+hpoehpmClX+SCJJ/dI5oG0sG+Jj41hWyrnxuqB+obploZBpmfWpwcB5wb2p9ZBtkaZmnbx9up32t\
+sxq0mKymph6mpqyYshv4dhayrXxuqB+obploZBpmfWpwcB5wb2p9ZRtjaZmnbx9up32tsxq0mKym\
+ph6mpqyYsxsO9ySwHAVzFfk9+1VIBmx2h4R+H36EgYCFfgiFfYhvYRr8kAcslUWeXB6eXKdosnMI\
+crG5f8IbwruYprYftqaprZ60CJ20lM7qGvjEB6KInIWVHoOYgJV+kAiPgnONZRtV91X41ftVXgZe\
+cIiGgB97g39/hHwIhoGIb14a/LoHJnw2bkYeYi5LQjJYCFcyIXH7Dhs1PpimRx9HpVCxWLxYvGe+\
+d8IIdsKB2/Ya+K8HvIirhpoehpmClX+SCJJ/dI5oG0sG+gj3tBX72tFSl2KfcaYZcaZ+rLEapZGk\
+mKIemKKdnaKZCJiioZKhG8LFb1TJH/dr+1QFDsqMHAVzFflJ+1VXBmZ0iIaCH4KFhoJ+GnqWcaBo\
+HvdL+8P3YPfQnaaVm42OGY6SjJOSGpaHlISQHpCDeY5vG0T3VfjA+1UGWopphniAd4BzcnBi/Aj8\
+shj7jQdfjm+Rfh6QfpWBmYUIhJimiLMbvPtV/Tz3VbAGu6qOkpgfmJGWlpKaCJKajqm4GvduB/wH\
++Mlut3GndZYZkntrj1wb+Lv3tBVj8Pdr91QFwsnEpr8bs619bqcfp26ZaGAabH9sc24ec25hdU5+\
+CA7KjBwFcxX5SftVVwZmdIiGgh+ChYaCfhp6lnGgaB73S/vD92D30J2mlZuNjhmOkoyTkhqWh5SE\
+kB6Qg3mObxtE91X4wPtVBlqKaYZ4gHeAc3JwYvwI/LIY+40HX45vkX4ekH6VgZmFCISYpoizG7z7\
+Vf0891WwBruqjpKYH5iRlpaSmgiSmo6puBr3bgf8B/jJbrdxp3WWGZJ7a49cG/hs+NYVsq58bqgf\
+qG6ZaGQaZn1qcHAecG9qfWQbZGmZp28fbqd9rbMatJispqYepqasmLIb+HYWsq18bqgfqG6ZaGQa\
+Zn1qcHAecG9qfWUbY2mZp28fbqd9rbMatJispqYepqasmLMbDk8cBL8cBXMV+1UH/Xb+bQXiBvcM\
+5Zaixh/GocKyvsS9xLLQp973S00Y+0v8mAX+vfdVBvl5+moF+wgGPEyCeFsfW3hhcGhmaGZYPkn7\
+CftE2Rj3aPh4Bcj31BXa9xz3uPsB97n3Adn7HPwH+3UFDvk9+PEV1Qe3h6mEnB6EnH2ZeJYIlnhz\
+kG4bdXeHhHkfeYR9gYCAgIB/dX1qeWJ2bXJ5CHlybYJpG2BomKZwH3CmfayyGriZsqeuHrC5w7HV\
+qAio1d6a6Bvo2nxtzB/MbbhnpWIIpGGYSzYa+/oHX41vkH8ekH6VgJqCCIKanIaeG56kkJaqH/tX\
+B3lSVYJXG05WlZ9gH2CfZqlus0hgT2xVeQh4VFeCWBssPqbBUB9QwG7N2hq4lbSgsB6fsKmstKez\
+p8mk4KHfoPGb9w2UCPs6BDR+TX9nfmd+cXp8eAh8d4N3dhpwlXWfeR55n6aCrRuhpZGWqB+olquc\
+r6EI+8z59hVj8Pdr91QFwsnEpr8bs619bqcfp26ZaGAabH9sc24ec25hdU5+CA75PfjxFdUHt4ep\
+hJwehJx9mXiWCJZ4c5BuG3V3h4R5H3mEfYGAgICAf3V9anlidm1yeQh5cm2CaRtgaJimcB9wpn2s\
+shq4mbKnrh6wucOx1agIqNXemugb6Np8bcwfzG24Z6ViCKRhmEs2Gvv6B1+Nb5B/HpB+lYCaggiC\
+mpyGnhuepJCWqh/7Vwd5UlWCVxtOVpWfYB9gn2apbrNIYE9sVXkIeFRXglgbLD6mwVAfUMBuzdoa\
+uJW0oLAen7CprLSns6fJpOCh36Dxm/cNlAj7OgQ0fk1/Z35nfnF6fHgIfHeDd3YacJV1n3keeZ+m\
+gq0boaWRlqgfqJarnK+hCPeH+oEVPPsb+7n3Afu5+wE89xv4CPd1BQ75PfjxFdUHt4ephJwehJx9\
+mXiWCJZ4c5BuG3V3h4R5H3mEfYGAgICAf3V9anlidm1yeQh5cm2CaRtgaJimcB9wpn2sshq4mbKn\
+rh6wucOx1agIqNXemugb6Np8bcwfzG24Z6ViCKRhmEs2Gvv6B1+Nb5B/HpB+lYCaggiCmpyGnhue\
+pJCWqh/7Vwd5UlWCVxtOVpWfYB9gn2apbrNIYE9sVXkIeFRXglgbLD6mwVAfUMBuzdoauJW0oLAe\
+n7CprLSns6fJpOCh36Dxm/cNlAj7OgQ0fk1/Z35nfnF6fHgIfHeDd3YacJV1n3keeZ+mgq0boaWR\
+lqgfqJarnK+hCPwHHASEFbKufG6oH6humWhkGmZ9anBwHnBvan1kG2RpmadvH26nfa2zGrSYrKam\
+HqamrJiyG/h2FrKtfG6oH6humWhkGmZ9anBwHnBvan1lG2NpmadvH26nfa2zGrSYrKamHqamrJiz\
+Gw75PfjxFdUHt4ephJwehJx9mXiWCJZ4c5BuG3V3h4R5H3mEfYGAgICAf3V9anlidm1yeQh5cm2C\
+aRtgaJimcB9wpn2sshq4mbKnrh6wucOx1agIqNXemugb6Np8bcwfzG24Z6ViCKRhmEs2Gvv6B1+N\
+b5B/HpB+lYCaggiCmpyGnhuepJCWqh/7Vwd5UlWCVxtOVpWfYB9gn2apbrNIYE9sVXkIeFRXglgb\
+LD6mwVAfUMBuzdoauJW0oLAen7CprLSns6fJpOCh36Dxm/cNlAj7OgQ0fk1/Z35nfnF6fHgIfHeD\
+d3YacJV1n3keeZ+mgq0boaWRlqgfqJarnK+hCOz59hX72tFSl2KfcaYZcaZ+rLEapZGkmKIemKKd\
+naKZCJiioZKhG8LFb1TJH/dr+1QFDvk9+PEV1Qe3h6mEnB6EnH2ZeJYIlnhzkG4bdXeHhHkfeYR9\
+gYCAgIB/dX1qeWJ2bXJ5CHlybYJpG2BomKZwH3CmfayyGriZsqeuHrC5w7HVqAio1d6a6Bvo2nxt\
+zB/MbbhnpWIIpGGYSzYa+/oHX41vkH8ekH6VgJqCCIKanIaeG56kkJaqH/tXB3lSVYJXG05WlZ9g\
+H2CfZqlus0hgT2xVeQh4VFeCWBssPqbBUB9QwG7N2hq4lbSgsB6fsKmstKezp8mk4KHfoPGb9w2U\
+CPs6BDR+TX9nfmd+cXp8eAh8d4N3dhpwlXWfeR55n6aCrRuhpZGWqB+olqucr6EI3/rZFVJ3W2Jj\
+HmJiWXdQG1FZn7RiH2K0drzEGsSgvLS0HrS0vZ/FG8a9d2K0H7Rin1lRGvuvjxV1knmZfB58mZyE\
+nhuenJKamR+ZmpKcoBqghJx9mh6afXqSeBt3eoR9fh99fIR6dxoO+T348RXVB7eHqYScHoScfZl4\
+lgiWeHOQbht1d4eEeR95hH2BgICAgH91fWp5YnZtcnkIeXJtgmkbYGiYpnAfcKZ9rLIauJmyp64e\
+sLnDsdWoCKjV3proG+jafG3MH8xtuGelYgikYZhLNhr7+gdfjW+Qfx6QfpWAmoIIgpqchp4bnqSQ\
+lqof+1cHeVJVglcbTlaVn2AfYJ9mqW6zSGBPbFV5CHhUV4JYGyw+psFQH1DAbs3aGriVtKCwHp+w\
+qay0p7OnyaTgod+g8Zv3DZQI+zoENH5Nf2d+Z35xenx4CHx3g3d2GnCVdZ95HnmfpoKtG6GlkZao\
+H6iWq5yvoQj3MxwEjRXyWH9QaVdUXRllXFJ4RhtaSJilNB+WZ3OQgBuCg4mIhB+Eh36BeXr7BcoY\
+nsGtub2xCLC9vp7AG56eioicH5yIqYO1fwh4y7iCpRuXlo2PlB+UjpeUm5kIDvpw+A4V9yf7FTws\
+OkU2YBlgNjF1Khv7L/sVvfAkHyPwV/cO9yUa7aPlvNweu9zNy+C4CLjf7qL3Bxv3HfcFa0ziH+JL\
+tkhEGm2EcH50Hn1zdnhvfAh8b22EbBtydJCVdx93lXqYfpqFkn+feq51tnqof5l/mX2WepMIknp4\
+j3YbaGqAdWwfa3RxaXdeCHZegVhTGk6XVKNaHqNaq2W0cghys7d+vBu6upikuh+6pL63wsoI+/P8\
+DhUwB46ooo2bG720fW6rH6tum2deGlR1XGBlHmVgUHhBG0xZl6RoH2ekeaerGqGRnJiYHpeYnJGi\
+G56fg3qhH5x9mYKWhwiGlZaJlhufmpCWlR+ZmpKcnRqigZ93mx6adm2TYxt3coqJbh+e9zIFDvpp\
++AYV9x37HjwxO0o6YxliOTN3LBv7LPsUv/IjHyPyV/cQ9yYa66LjutseutrLyt64CLje6KH0G87H\
+gXjCH8J4u2+0Z7RnrGCkWKRYnFaUVAiPcI1fUBr9NQaMNqRHvFcIVrvGcdEbuLuZpsAfwKa/s77C\
+CPtc97UVhrOCq32ifKJ4nXOZCJhycpJwG29whH1xH3F9dnh8c3tzgWyGZghA+GsVY/D3a/dUBcLJ\
+xKa/G7OtfW6nH6dumWhgGmx/bHNuHnNuYXVOfggO+mn4BhX3HfsePDE7SjpjGWI5M3csG/ss+xS/\
+8iMfI/JX9xD3JhrrouO62x662svK3rgIuN7oofQbzseBeMIfwni7b7RntGesYKRYpFicVpRUCI9w\
+jV9QGv01Bow2pEe8VwhWu8Zx0Ru4u5mmwB/Apr+zvsII+1z3tRWGs4KrfaJ8onidc5kImHJyknAb\
+b3CEfXEfcX12eHxze3OBbIZmCPie+PYVPPsb+7n3Afu5+wE89xv4CPd1BQ76afgGFfcd+x48MTtK\
+OmMZYjkzdywb+yz7FL/yIx8j8lf3EPcmGuui47rbHrray8reuAi43uih9BvOx4F4wh/CeLtvtGe0\
+Z6xgpFikWJxWlFQIj3CNX1Aa/TUGjDakR7xXCFa7xnHRG7i7mabAH8Cmv7O+wgj7XPe1FYazgqt9\
+onyieJ1zmQiYcnKScBtvcIR9cR9xfXZ4fHN7c4FshmYILPmNFbKufG6oH6humWhkGmZ9anBwHnBv\
+an1kG2RpmadvH26nfa2zGrSYrKamHqamrJiyG/h2FrKtfG6oH6humWhkGmZ9anBwHnBvan1lG2Np\
+madvH26nfa2zGrSYrKamHqamrJizGw76afgGFfcd+x48MTtKOmMZYjkzdywb+yz7FL/yIx8j8lf3\
+EPcmGuui47rbHrray8reuAi43uih9BvOx4F4wh/CeLtvtGe0Z6xgpFikWJxWlFQIj3CNX1Aa/TUG\
+jDakR7xXCFa7xnHRG7i7mabAH8Cmv7O+wgj7XPe1FYazgqt9onyieJ1zmQiYcnKScBtvcIR9cR9x\
+fXZ4fHN7c4FshmYI+Ar4axX72tFSl2KfcaYZcaZ+rLEapZGkmKIemKKdnaKZCJiioZKhG8LFb1TJ\
+H/dr+1QFDv0O+Lb6khX9dwdojXWPgx6Pg5KFlocIhpWiia8bwftV/P73VcAGrqGNj5UflI6SkZCU\
+CJCUjZylGvhx+yj3UAfAjr2QvJS7lLaVsZekk6mYr54I+8f3ABVj8Pdr91QFwsnEpr8bs619bqcf\
+p26ZaGAabH9sc24ec25hdU5+CA79Dvi2+pIV/XcHaI11j4Mej4OShZaHCIaVoomvG8H7Vfz+91XA\
+Bq6hjY+VH5SOkpGQlAiQlI2cpRr4cfso91AHwI69kLyUu5S2lbGXpJOpmK+eCPe294sVPPsb+7n3\
+Afu5+wE89xv4CPd1BQ79Dvi2+pIV/XcHaI11j4Mej4OShZaHCIaVoomvG8H7Vfz+91XABq6hjY+V\
+H5SOkpGQlAiQlI2cpRr4cfso91AHwI69kLyUu5S2lbGXpJOpmK+eCPva+CIVsq58bqgfqG6ZaGQa\
+Zn1qcHAecG9qfWQbZGmZp28fbqd9rbMatJispqYepqasmLIb+HYWsq18bqgfqG6ZaGQaZn1qcHAe\
+cG9qfWUbY2mZp28fbqd9rbMatJispqYepqasmLMbDv0O+Lb6khX9dwdojXWPgx6Pg5KFlocIhpWi\
+ia8bwftV/P73VcAGrqGNj5UflI6SkZCUCJCUjZylGvhx+yj3UAfAjr2QvJS7lLaVsZekk6mYr54I\
+9yL3ABX72tFSl2KfcaYZcaZ+rLEapZGkmKIemKKdnaKZCJiioZKhG8LFb1TJH/dr+1QFDqH4nfqS\
+FfsZB9a+zK7BngiewMKUwxvMxH1wvR+8cK9pomIIomKWUEAa/DQHaI50kIEekIGShJaGCIiTo4mz\
+G7z7Vfzf91UGuIykjJCMnJCWkpCWCJCWjqKuGvgDB7qGqoGZHqJ7cpdoG25thX5qH2p+X3FUZAj8\
+IQdgkHCUgR6BlKKGrhur+1X82fdVqAa5qI2Plh+Wj5OSkZUIkJWOn6ga+Gb7KPdVB/cMmvcEp/S0\
+CPij+CsV8lh/UGlXVF0ZZVxSeEYbWkiYpTQflmdzkIAbgoOJiIQfhId+gXl6+wXKGJ7Brbm9sQiw\
+vb6ewBuenoqInB+ciKmDtX8IeMu4gqUbl5aNj5QflI6XlJuZCA4m+Qz6khX3Bu51XuAf4F7MT7k+\
+CLg+ojAkGvswWPsTJioeKib7HFr7PRv7QfsdvO0lHyjoWvcT9zMa9KLluNYeuNbMyOC5CLjg7aL3\
+AhuP+28VZWeAdGofanRxanlfCHhfglNHGkWUUZ1dHp1dpGmrdQh1qq6AsRvGvaS9tR+1vKDY9Brw\
+eNhkvh6+ZFmkThv7dvfbFWPw92v3VAXCycSmvxuzrX1upx+nbploYBpsf2xzbh5zbmF1Tn4IDib5\
+DPqSFfcG7nVe4B/gXsxPuT4IuD6iMCQa+zBY+xMmKh4qJvscWvs9G/tB+x287SUfKOha9xP3Mxr0\
+ouW41h641szI4LkIuODtovcCG4/7bxVlZ4B0ah9qdHFqeV8IeF+CU0caRZRRnV0enV2kaat1CHWq\
+roCxG8a9pL21H7W8oNj0GvB42GS+Hr5kWaROG/gH+GYVPPsb+7n3Afu5+wE89xv4CPd1BQ4m+Qz6\
+khX3Bu51XuAf4F7MT7k+CLg+ojAkGvswWPsTJioeKib7HFr7PRv7QfsdvO0lHyjoWvcT9zMa9KLl\
+uNYeuNbMyOC5CLjg7aL3AhuP+28VZWeAdGofanRxanlfCHhfglNHGkWUUZ1dHp1dpGmrdQh1qq6A\
+sRvGvaS9tR+1vKDY9BrweNhkvh6+ZFmkThv7ifj9FbKufG6oH6humWhkGmZ9anBwHnBvan1kG2Rp\
+madvH26nfa2zGrSYrKamHqamrJiyG/h2FrKtfG6oH6humWhkGmZ9anBwHnBvan1lG2NpmadvH26n\
+fa2zGrSYrKamHqamrJizGw4m+Qz6khX3Bu51XuAf4F7MT7k+CLg+ojAkGvswWPsTJioeKib7HFr7\
+PRv7QfsdvO0lHyjoWvcT9zMa9KLluNYeuNbMyOC5CLjg7aL3AhuP+28VZWeAdGofanRxanlfCHhf\
+glNHGkWUUZ1dHp1dpGmrdQh1qq6AsRvGvaS9tR+1vKDY9BrweNhkvh6+ZFmkThv3c/fbFfva0VKX\
+Yp9xphlxpn6ssRqlkaSYoh6Yop2dopkImKKhkqEbwsVvVMkf92v7VAUOJvkM+pIV9wbudV7gH+Be\
+zE+5Pgi4PqIwJBr7MFj7EyYqHiom+xxa+z0b+0H7HbztJR8o6Fr3E/czGvSi5bjWHrjWzMjguQi4\
+4O2i9wIbj/tvFWVngHRqH2p0cWp5Xwh4X4JTRxpFlFGdXR6dXaRpq3UIdaqugLEbxr2kvbUftbyg\
+2PQa8HjYZL4evmRZpE4b95b5BhXyWH9QaVdUXRllXFJ4RhtaSJilNB+WZ3OQgBuCg4mIhB+Eh36B\
+eXr7BcoYnsGtub2xCLC9vp7AG56eioicH5yIqYO1fwh4y7iCpRuXlo2PlB+UjpeUm5kIDvvG+Yf6\
+ehX3Fwbc+6r7UT9nxV65VawZrFRVm1YbaHCFf3ofen+CfXoafZF+mH8el3+kfrJ+96cpGLx6uXW4\
+cbhxrGuiZgihZZZfWBowaEFGUR5HOiVp+w0bIzClwD4fb1QF+xkG+w/33PdR27pBxlHQYRlg0Mt2\
+xRuvqZOcpB+emJSbnRqahJp8mR58mWubWZz7bNYY+wu1OrhguwhgunXEzBrfrdLOxB7M2Oms9wUb\
+7+F0XtIf/Mz4JRXa9xz3uPsB97n3Adn7HPwH+3UFDnjA+noV+GeUBf0dB12ObJF8HpB8ln6aggiB\
+mp2Gohusr5ObsB+akrKiyrQI+BoHrYiihpgehpiDlIGRCJCBeI5uG1H3VQb4aJQF/WAHZo1zkIIe\
+j4GShJWHCIaUoomwG8D7VQb8S38F9woHUGBQalB2CHVQT4BPG1tfk5tjH2KaaaBwpnCldqp+rgh+\
+roS5whr4MAexiaOHlR6GlYSTgZAIkIF2jWobVAb4IvfZFWPw92v3VAXCycSmvxuzrX1upx+nbplo\
+YBpsf2xzbh5zbmF1Tn4IDnjA+noV+GeUBf0dB12ObJF8HpB8ln6aggiBmp2Gohusr5ObsB+akrKi\
+yrQI+BoHrYiihpgehpiDlIGRCJCBeI5uG1H3VQb4aJQF/WAHZo1zkIIej4GShJWHCIaUoomwG8D7\
+VQb8S38F9woHUGBQalB2CHVQT4BPG1tfk5tjH2KaaaBwpnCldqp+rgh+roS5whr4MAexiaOHlR6G\
+lYSTgZAIkIF2jWobVAb6d/hkFTz7G/u59wH7ufsBPPcb+Aj3dQUOeMD6ehX4Z5QF/R0HXY5skXwe\
+kHyWfpqCCIGanYaiG6yvk5uwH5qSsqLKtAj4GgetiKKGmB6GmIOUgZEIkIF4jm4bUfdVBvholAX9\
+YAdmjXOQgh6PgZKElYcIhpSiibAbwPtVBvxLfwX3CgdQYFBqUHYIdVBPgE8bW1+Tm2MfYpppoHCm\
+cKV2qn6uCH6uhLnCGvgwB7GJo4eVHoaVhJOBkAiQgXaNahtUBvf7+PsVsq58bqgfqG6ZaGQaZn1q\
+cHAecG9qfWQbZGmZp28fbqd9rbMatJispqYepqasmLIb+HYWsq18bqgfqG6ZaGQaZn1qcHAecG9q\
+fWUbY2mZp28fbqd9rbMatJispqYepqasmLMbDnjA+noV+GeUBf0dB12ObJF8HpB8ln6aggiBmp2G\
+ohusr5ObsB+akrKiyrQI+BoHrYiihpgehpiDlIGRCJCBeI5uG1H3VQb4aJQF/WAHZo1zkIIej4GS\
+hJWHCIaUoomwG8D7VQb8S38F9woHUGBQalB2CHVQT4BPG1tfk5tjH2KaaaBwpnCldqp+rgh+roS5\
+whr4MAexiaOHlR6GlYSTgZAIkIF2jWobVAb54/fZFfva0VKXYp9xphlxpn6ssRqlkaSYoh6Yop2d\
+opkImKKhkqEbwsVvVMkf92v7VAUOJpv6ehX5BPtVYgZmc4mGgh+BhoaDghqDknaZaR73Kvv99zH3\
+/QWXppGflxqWhpOBkR6QgXSOZxtS91X4r/tVBlyKb4qDiICIgYaEhISEf3Z6avxY/jMYXCpXSFNk\
+CGRSSHg9Gz9On7RcH1yzc7i+GrOZraepHqinrZmyG6alhH6kH5yCnH2cdpZ+k4KSiAiHkZGJkRuZ\
+mZKYmB+foKKwpMKx3Rj76Pldeq9/ooKUGYKUgJKAjgiOgG6NXhv4UPfZFWPw92v3VAXCycSmvxuz\
+rX1upx+nbploYBpsf2xzbh5zbmF1Tn4IDiab+noV+QT7VWIGZnOJhoIfgYaGg4Iag5J2mWke9yr7\
+/fcx9/0Fl6aRn5caloaTgZEekIF0jmcbUvdV+K/7VQZcim+Kg4iAiIGGhISEhH92emr8WP4zGFwq\
+V0hTZAhkUkh4PRs/Tp+0XB9cs3O4vhqzma2nqR6op62ZshumpYR+pB+cgpx9nHaWfpOCkogIh5GR\
+iZEbmZmSmJgfn6CisKTCsd0Y++j5XXqvf6KClBmClICSgI4IjoBujV4b+D34+xWyrnxuqB+obplo\
+ZBpmfWpwcB5wb2p9ZBtkaZmnbx9up32tsxq0mKymph6mpqyYshv4dhayrXxuqB+obploZBpmfWpw\
+cB5wb2p9ZRtjaZmnbx9up32tsxq0mKymph6mpqyYsxsO+3T3cfp6Ffnk+1UG/Of85QX3GwbTwpOa\
+sh+xmq2jqKyfoaKzpcT3SUcY+xj7+gX+QfdVBvji+OUFLwZQXoWAbB9rf2x1bmt8fHFjZUv7Q9wY\
+9zb5RhXa9xz3uPsB97n3Adn7HPwH+3UFDvxm9/McBLAVRQe61dSi1Bu+toB1rx+vdaN0lnMIlnKQ\
+aWAa+54Hf46EkIgeiJCaiaUbt/sk+974KwakiJyFkx6ThH+PeBtkX3poWB/7egd1jX6QiB6IkKGJ\
+sxv7JPwm9ySqB6uejY6RH5COjpaeGvedK/cjB+CT15zQpQgO+SX5AxwFixX8wAdyjX2Qhx6GkZ2I\
+qRvq+xD8qfcQ6wamnIyOkh+SjY+OjpAIjpCMl58a+Aj7OfcQB9SQxZO4lLeUtpe1nAj6Zhb9+Rz6\
+XQX7NAb58hwFowX4EP6RFfRcwE4/GklrVUthHmBKNnYhGyI2nrJLH0qxa7rCGs+9wu61Hji1YcTT\
+GsqqvcmxHrHI2Z7qG+DUe2vGH8ZrqWBUGkxmWEBjHvspwxWwrp2mnxqagpl5lx6WeHCRZxttc4aB\
+eB94gYF/fRpzrHTMdR5m+0wVTWxsa2wad5h5pXwefKSug7cbsKyRl6cfppaZm6AapmikRKMeDvkl\
+98gcBIUV+ySrBs6kv7yxHrzK3aPxG8zEgXi9H7x3sHKibQiibZdtbRpvgW94cB53b290Z3q8fLB2\
+pG4IpG6YaWUaTm5WUWAeWkkycvsFG/sCMaO6RR9TsW+3vBqllaGgnh6eoKWUqhvAsHBWoB+WcJR5\
+k4KTgpmEnoQIhJ6fh6AbsqyWoKYfn5qVoacaqX6jcZ0enHFdlEgbWPcPvgbKtZKYoB+gmJWcoBqe\
+gJx2mh6adWqSYBtUY39ych97e4JyiWoIHATF95oV/fkc+l0F+zQG+fIcBaMF+Az+kRX0XMBOPxpJ\
+a1VLYR5gSjZ2IRsiNp6ySx9KsWu6whrPvcLutR44tWHE0xrKqr3JsR6xyNme6hvg1Htrxh/Ga6lg\
+VBpMZlhAYx77KcMVsK6dpp8amoKZeZcelnhwkWcbbXOGgXgfeIGBf30ac6x0zHUeZvtMFU1sbGts\
+GneYeaV8HnykroO3G7CskZenH6aWmZugGqZopESjHg75JfdT+ngVo/gvBfg/BqOajI6QH5COjZGM\
+lgjw+138RE4Gj7axja0b9wrndmDMH8xgrFBAGj5oTURcHlxENHMjGy48nrBKH0mwarfAGqaVoaCc\
+Hpygo5SoG6SfhoCaH5qAnHafawhbqrdzxhuzrZSdph+mnJmjqhrYPrL7L0JCgnpEHhwFOvg7Ff35\
+HPpdBfs0BvnyHAWjBfgM/pEV9FzATj8aSWtVS2EeYEo2diEbIjaesksfSrFrusIaz73C7rUeOLVh\
+xNMayqq9ybEescjZnuob4NR7a8YfxmupYFQaTGZYQGMe+ynDFbCunaafGpqCmXmXHpZ4cJFnG21z\
+hoF4H3iBgX99GnOsdMx1Hmb7TBVNbGxrbBp3mHmlfB58pK6DtxuwrJGXpx+mlpmboBqmaKREox4O\
++SX3YxwFlBXqBpV2Bfi8+wkG+1H7JyL7XHj7kwj7gwaX9wun7bfWt9bQ3urnCPt8BmNyiIWCH4GF\
+gnqCb3tXGPsdpgUcBVT3phX9+Rz6XQX7NAb58hwFowX4PP6RFfRcwE4/GklrVUthHmBKNnYhGyI2\
+nrJLH0qxa7rCGs+9wu61Hji1YcTTGsqqvcmxHrHI2Z7qG+DUe2vGH8ZrqWBUGkxmWEBjHvspwxWw\
+rp2mnxqagpl5lx6WeHCRZxttc4aBeB94gYF/fRpzrHTMdR5m+0wVTWxsa2wad5h5pXwefKSug7cb\
+sKyRl6cfppaZm6AapmikRKMeDvzE+EEcBX8V91/8Cvcw+y77MPtT+2f3U/wY90MG+Bj3RBX7cPtZ\
+BfdwBg78xOr6eBWj+C8F+D8Go5qMjpAfkI6NkYyWCPD7XfxETgaPtrGNrRv3Cud2YMwfzGCsUEAa\
+PmhNRFweXEQ0cyMbLjyesEofSbBqt8AappWhoJwenKCjlKgbpJ+GgJofmoCcdp9rCFuqt3PGG7Ot\
+lJ2mH6acmaOqGtg+svsvQkKCekQeDvzE9wscBZQV6gaVdgX4vPsJBvtR+yci+1x4+5MI+4MGl/cL\
+p+231rfW0N7q5wj7fAZjcoiFgh+BhYJ6gm97Vxj7HaYFDvzE+Or61hX0XMBOPxpJa1VLYR5gSjZ2\
+IRsiNp6ySx9KsWu6whrPvcLutR44tWHE0xrKqr3JsR6xyNme6hvg1Htrxh/Ga6lgVBpMZlhAYx77\
+KcMVsK6dpp8amoKZeZcelnhwkWcbbXOGgXgfeIGBf30ac6x0zHUeZvtMFU1sbGtsGneYeaV8Hnyk\
+roO3G7CskZenH6aWmZugGqZopESjHg77i/nS+moV93j7UPvuBvsN+1UF+Gf7UfzeBvtS+8IF+0UG\
+91L3wgX7ePdR9+4G9w33VQX8Z/dQ+N0G91L3wgX3RgYO5Pkh+S8VrdqsxKquqq6xpbidCJ23wJTI\
+G9TMeWjFH8VnuVqsTQisTZxDOBr7HF/7ATI5Hk1IQ2w+G0pOo7tSH2WrWNJK9wNsTmxdbGxsbGhz\
+ZXsIe2Rhg10bKjqu0EkfSdBq4/cAGvcAqePI0B7PyNOt3hvKwXlnuh+ybrZQujQI6/tfFbwmu0a8\
+Zghmu8J4yhvl0qvLvh++yqTY5RrsbttSzB7MUkmrQhtgZoF4ax9qd21qblx4amUwUvspCPsR9xIV\
+aNpjw2CrCKpgWZtTG0RQcllcH1tZc0k4GjSiRbpVHlW5wHDIG8XApLy6H7Cysty09xAIDvuL+rb4\
+XBX7VQf+c/hlBfc+B/pz+GYF+1UH/Xv7+gX5e/3BFf5z91D6cwYO+4vOHASTFfdVB/pz/GYF+z4H\
+/nP8ZQX3VQf5fPf5BfeL/cEV/nP3UPpzBg77U/cz+noV97n85wZCkFqUch6UcZt2onsIe6Kkg6Yb\
+nJuOkZofmpCpm7elCPmZ97v9KAdPjWWPeh6QdJR7loIIgZaYhpsbnaGSmKQfTAc9VE5mX3cIfWxx\
+hHQbcG+YpXAfcKR0snq+WlJdYV9wCG9eXH1ZG1hemqhkH3CfcK1wvIxtjXSOepB0k2+YaKNKml+R\
+dAiQc450dhpkfmtych5xcWp+ZBtmbJilch9ypX+ssxqlj6yUsx6n9xGc3JGxk8CRxI/ICJLojt3S\
+Gg77+/gHHAR+FWEGqd60zb+8CMTI1qjkG8jAfW+4H7hurGOiVwiiVpY/Jhr7d2z7Vk77Nx5O+zdB\
++xE0NAhFRjNoIhtLVJikXR9cpGexcL0IcL19wsca76nxx/IexvLa3+7LCMTi4afiG/cB2lknux+Q\
+wo61qRrOfsZwvB5wvGiwYKQIpGBTl0YbVl+FfmofaX5rdW1tCPiX/F8Vdc9uvGapCKlmYZpcG15f\
+eGVgH1RZXTxm+wAIXvsXdfsS+wwaTJVfnnMecp6pf7QbuLabqrMfy7zH2sP3AMP2tPcOpvcbCA7k\
+HAVM/E4VHPrfsAb5MfoZ/TH6CwWwHAT+B6b75QVjBoa7gbN+rH2re6R4nniedJlwlgiVb2mQYhv9\
+eAb4xv2J/Qn94wX5xga2uZKaux+7mrCipKykrKC+nNCzgxgO984cBNgcBT4V/a8c+ckGZpJrmHEe\
+lHiYfpyECH2rrYSwG69l/OmxrgayrJGYpx+flJmYk5wImaeSq7AaHAXFB7CEq36lHoKdfph6kgia\
+a2iSZhtosBwGOmZoBmRqhH5vH3eCfX6Dewh+boRrZxoc+jsHZpFrmHEelHiYfpyECH2rroSwG65l\
+/OmxrgayrJGYpx+flJmYk5wImKeSq7AaDvuL+qP6OxX7Y/trB2/7jgWGS4hRVxpPk2KadB50mqCA\
+pxvNssT3BZgfsAaIOX9IeFh4WHJmbXUIdGxpgGUbaGqWom4fbaF0rXu5CHq5g8zfGsSOzpLYHqT3\
+dAX7WgZ5+5x7+z58QHcmbURkYgh0dXGAbRtscZWgeB93n4Gjphqunr6wzR6vzKLClLqe7pb3A473\
+EQhhbYmGeB9thHN/ent6e3pyfGoIZgaey6HBpbikuKWtpaKkoqSbpJMIkqO4j84bDv2+91z6ExX3\
+D4/3I5L3Nx6Q9xCS45TAltKcxaK6mKago6qeCJ6pqJSnG6yogHWkH6R1mHJwGmyCcnp4Hnh5dYFx\
+G3Rxl6NwH5h8fZKAG3+BhoKEH4SBh3p0GnCOWpFGHqT7ppf7cfs8GlyJI4b7NR6A++CGPIFGfFEZ\
+fFB6YHhwd3B1d3R/CH90cYVwG2hvlqJ1H3WigKiuGqiUo5yeHp2coJSlG6aigHWfH5h9lYKQiAiI\
+kJKJkxuWlZCVkh+SlI+boBqniLOFvx6B4IL3CYT3JwiD9yeH9yP3HxoO9174/ff7Fa37+wX8//gN\
+rwaNZpBxlH2Zdpt8noOdgqqHuIwI99wGhND7BKQ0r0y4GUy4WsVm1Ahm03nY3Br3AKvvy+Yey+bf\
+zvS1CLXz9wqg9xkb9xf3CXZi9B/0Yt9IzDAIzC+rJ/sBGjp5PmZDHmZCWlFMXkxeNGf7BHKERhj3\
+3Aa2qI6QmR+gk56amqKVmpGljbEIr/wN/P8Grff7tJysoqSqGaOpn7qbzAiby5PY5hr3EX3sb84e\
+bs5hwFOyCLFTTp5JG0lPeGZUH1RmYFZuSAhuR3wt+w0aK5M7m0sem0qfXKRso2ysdLR6CA77i/qu\
+HAdNFdUG+8wc+GX8hPqR+1owacv3wfcr+Cn9ywUO+4v6V/rjFfcD+xFhRmhabm4Zbm1udWx+CH1s\
+a4RqG3Rzj5JyH3KSV587rDOwWJ98kAiQfHqNeRtqboB1cB9wdGlcZEL7A/cTGLPSrr6pq6iqqqOs\
+mgiaq6uTqxuop4eDqB+0gMJ20WzUbLh4noYIhZ6biJkbqKaVoKYfpqCrtbLMCPxGBPcD+xFhRmha\
+bm4Zbm1udWx+CH1sa4RqG3RzjpJyH3KSV587rTOwWJ98kAiPfHqNeRtqboB1cB9wdGlcZEL7A/cU\
+GLPSrr6pq6iqqqOsmgiaq6uTqxuop4eDqB+0gMJ20WzUa7h4noYIhp6biJkbqKaVoKYfpp+rtrLM\
+CA77ChwEyhYc+1AG+QgcBWsF9+Qc+ucV/CP6W/xM/lsFDv03Dvv7+LkcBY4V+Db9Xfw2/VkF+wMG\
+/Bv5Wfgb+V0FxCoV++j8/Pfo/Pv3+/j7BQ54+Gv56BX4YQZ6+wEF/FgGjU6MbYyKCPhIBnn7AAX8\
+JAb7cMTz+wL3KRvJyqO6zB/MusXNvuH3MPsGGCT7MyUiJlcIVyUkcSMb+yj7Fr3w+wMf+wPwQfcf\
+Z/dFCPsHBpz3AAXhBoqeipqWGpeMm4yeHiQGnPcBBesGqvdF0/ce9wTwCPD3BPcYvfctG/Xpc1zc\
+H5u6BfciBvcV/Hb7SVgF93Qv+wX3BPsZG0xScFRXH1ZUaDN5+w0IDveKDqH44PhmFfdA+yX7QHcG\
+aI5zkX8ekX6VgpiFCIWYpYixG8T7Vf0891W4Braoj5OaH5qSlZmRngiOlIyltBr7O/cl9zv5Bwaw\
+iKOFlx6Fl4GUfZEIkX1vjmIbXvdVHASBBvcy/FH7SUxuzG+8cKwZcKxspmahZqFkmmCSCJBuWY1C\
+G/tA/Ab3BAasppCVnh+elZiYlJsIk5uPprAa1fcw/QT7MOUHpYmehpcehZuDmICVgJV/kn6PCI99\
+co1nGyYGDvd2+hf5fBX5PftXWAZqdIiFfx9+hYKChX4IhX6IcmYa/En7YQdW70xiSmxIdhl2SEWB\
+Qhv7E/sIqskiHyLJOeJO9wMITvcDbPcR9x4a9x2p9w7I9wAex/cA3+D3AcoIyfcA9wmq9xMbyMmD\
+fMgfyHu/drZxsMkY9yAG9xL8YvtMT0zwWtBnsBlmsGKnXKAIoFxdlV4bTFB5ZlQfVGZfVmtFCGtE\
+ezYnGvsCnSyuOh6uOrhQxGQIZMTJd88bu7mVnrYftp6ooZujCJujk6u0Gr4HromihpQehJiBlX+R\
+CJF+c45nGzwG91scBRYV9wBWbjVaRUVUGVRFQnA+G/su+xHt91csH/PArmO1bLp2GXW6u4C+G+zh\
+td7YHw754/pAFa69r6+uoAigrrGVshuyqoB0oh+idJZtZxpqgHB2dh51dXCAaxtqjGmMBXl5hH55\
+H7BOnVFUGlB5UmdUHmZUWWBLbAhsSj58MRtxcY2OcR9wjnGPcJF5gH2AgoAIgoCGgYIadqB+toUe\
++DJQ9w965GrCWhnCWqZQRxpPdlNiWR5iWEdhLmoIai37Cnv7Ixv7ESOXpDkfOaNRqWmxCGiweq6s\
+GrGYraWqHqSpwK7bslqdZqFypQhqrnqusBqzm7Kqsh6qsrmxybFooHCjeKR3pHupf68Ifq+FsLEa\
+77Tg3dEe0dz3AK73GRvGwoR+vB+8fbZ2snAI+7D7ARVgaHtscB9vbH1gVhpamGOmbh5upq18tRu0\
+rpqqpx+mqZmyuxrAfrZxqh6qcGmaYhv7Jf4TFWhwdHaCfQiBfIZ7ehpqpnLAeR54wNCC3hvIwJCW\
+uh+6lqqYmpoIlZWQmZwanoGbd5ked5hblj6UCPciHAYzFfcAVm41WkVFVBlURUJwPhv7LvsR7fdX\
+LB/zwK5jtWy6dhl1uruAvhvs4bXe2B8O/LzRHAVzFfk8+1VNBmdziIWAH3+EgoGGfgiFfYhxZBr9\
+mAdhjXCQfx6Qf5OCloYIg5mgh6cb1ftV/Tz3VcIGsqWOkZcfl5CUlJGYCJCXjqOwGvmbB7aIqIaZ\
+HoWYgZZ+kgiQgnSOZxtNBvfx+OAVsq58bqgfqG6ZaGQaZn1qcHAecG9qfWQbZGmZp28fbqd9rbMa\
+tJispqYepqasmLIbDnj6/RwFcxX3DPxo+05WTfcDRd08vxm+PDilMhtSXn90ah9qdHpxbhpqmm2p\
+bx6ob8Fy2nX3oD0Y9ylg9VPKRAjKRKo4LBr7DVslKzgeLyD7Gl37MxtBR5SfTR9NnkqqSLhfJxj7\
+KQYo+LH3T7i3+wLQL+hCGUHo8Wb3Axu9tZGYrB+smKOcnKIInKKToqMas3itZKgeZKhGpymn+33P\
+GGiVW55Pp06mXahrqWqpcLJ2ugh2uoC8vxrVoM+0yh60yci93rIIst3mnu8b9w33AWxM7B+y0QX7\
+TRz6jRUwB46ooo2bG720fW6rH6tum2deGlR1XGBlHmVgUHhBG0xZl6RoH2ekeaerGqGRnJiYHpeY\
+nJGiG56fg3qhH5x9mYKWhwiGlZaJlhufmpCWlR+ZmpKcnRqigZ93mx6adm2TYxt3coqJbh+e9zIF\
+DvvG+Yf6ehX3Fwbc+6r7UT9nxV65VawZrFRVm1YbaHCFf3ofen+CfXoafZF+mH8el3+kfrJ+96cp\
+GLx6uXW4cbhxrGuiZgihZZZfWBowaEFGUR5HOiVp+w0bIzClwD4fb1QF+xkG+w/33PdR27pBxlHQ\
+YRlg0Mt2xRuvqZOcpB+emJSbnRqahJp8mR58mWubWZz7bNYY+wu1OrhguwhgunXEzBrfrdLOxB7M\
+2Oms9wUb7+F0XtIf+xX+ThUwB46ooo2bG720fW6rH6tum2deGlR1XGBlHmVgUHhBG0xZl6RoH2ek\
+eaerGqGRnJiYHpeYnJGiG56fg3qhH5x9mYKWhwiGlZaJlhufmpCWlR+ZmpKcnRqigZ93mx6adm2T\
+Yxt3coqJbh+e9zIFDvckHASBHAVzFfciBvcd/In7TlVN9wtR4FS9GdA/Oa0yG0pPeWdTH1JnX1Zq\
+RQhqRXo5LRr7I7H7ENckHiTW7lf3DxvZ1qG40x/lwtnWzOj3L/sHGCb7HS8rOFUIOPsV+yNh+zIb\
++xf7C6vKIR8gyjbjTPcFCEz3BWv3EPcaGvcZqvcOyfcCHsj3Ad/h9sgIyPX3Cqr3Fxv3GfcIb1Pv\
+H/x/9zMVY/D3a/dUBcLJxKa/G7OtfW6nH6dumWhgGmx/bHNuHnNuYXVOfggO+nD4DhX3J/sVPCw6\
+RTZgGWA2MXUqG/sv+xW98CQfI/BX9w73JRrto+W83B673M3L4LgIuN/uovcHG/cd9wVrTOIf4ku2\
+SEQabYRwfnQefXN2eG98CHxvbYRsG3J0kJV3H3eVeph+moWSf596rnW2eqh/mX+ZfZZ6kwiSeniP\
+dhtoaoB1bB9rdHFpd14Idl6BWFMaTpdUo1oeo1qrZbRyCHKzt368G7q6mKS6H7qkvrfCygj8n/mE\
+FWPw92v3VAXCycSmvxuzrX1upx+nbploYBpsf2xzbh5zbmF1Tn4IDvckHASBHAVzFfciBvcd/In7\
+TlVN9wtR4FS9GdA/Oa0yG0pPeWdTH1JnX1ZqRQhqRXo5LRr7I7H7ENckHiTW7lf3DxvZ1qG40x/l\
+wtnWzOj3L/sHGCb7HS8rOFUIOPsV+yNh+zIb+xf7C6vKIR8gyjbjTPcFCEz3BWv3EPcaGvcZqvcO\
+yfcCHsj3Ad/h9sgIyPX3Cqr3Fxv3GfcIb1PvH/1C+BQV2vcc97j7Afe59wHZ+xz8B/t1BQ76cPgO\
+Ffcn+xU8LDpFNmAZYDYxdSob+y/7Fb3wJB8j8Ff3DvclGu2j5bzcHrvczcvguAi43+6i9wcb9x33\
+BWtM4h/iS7ZIRBpthHB+dB59c3Z4b3wIfG9thGwbcnSQlXcfd5V6mH6ahZJ/n3qudbZ6qH+Zf5l9\
+lnqTCJJ6eI92G2hqgHVsH2t0cWl3Xgh2XoFYUxpOl1SjWh6jWqtltHIIcrO3frwburqYpLofuqS+\
+t8LKCP1t+mUV2vcc97j7Afe59wHZ+xz8B/t1BQ5P+u0cBLAV9yoh+yr9qQZdjW+Pgh6PgZKElYYI\
+hpSlibQbuvtVBvxGfAXyB0xhVG5cewh6XFuDXBs+RaC1Sx9KtFfJYt0IYt125u8a8KDntd4etN3C\
+yc61CLXO1aDeG7a0hoGyH7KAtnm6cQj3Ivvz9ffz1fsm9wEH3pPOlb+YvpfDncejCOwG+9Qc+2IV\
+9+MHtYiphZweg6R5oG+eCJ5ubJRoG2dqgHZsH2x1c2p5Xgh5XoJUSBoun0G0Ux5fqrV1vxuioI+T\
+oB+gkq6fvqsIDvvvfxwGPBX6rCX+rAYO/WD32PoAFbKufW6oH6humWhjGmZ9a3BwHnBvan1kG2Rp\
+madvH26nfa2yGrSYrKamHqamrJiyGw7z+NscBXMV980G+Df+yaJSn2edfhmcfqyEuowI+1X9KPdV\
+B7OMBbCkkJWaH5qUkpeZGpeFpH6wHmL3EwX8PQZX+yEFgG2Gd4IagI+Ck4IekoKYhZyHCIiWq4q+\
+G/tV/LD3VQeupI6Rmx+bkZiUlpeVl5ahmKwI+Bj38BX3qwb7HPgUBffS+ccV9wBWbjVaRUVUGVRF\
+QnA+G/su+xHt91csH/PArmO1bLp2GXW6u4C+G+zhtd7YHw75PfjxFdUHt4ephJwehJx9mXiWCJZ4\
+c5BuG3V3h4R5H3mEfYGAgICAf3V9anlidm1yeQh5cm2CaRtgaJimcB9wpn2sshq4mbKnrh6wucOx\
+1agIqNXemugb6Np8bcwfzG24Z6ViCKRhmEs2Gvv6B1+Nb5B/HpB+lYCaggiCmpyGnhuepJCWqh/7\
+Vwd5UlWCVxtOVpWfYB9gn2apbrNIYE9sVXkIeFRXglgbLD6mwVAfUMBuzdoauJW0oLAen7CprLSn\
+s6fJpOCh36Dxm/cNlAj7OgQ0fk1/Z35nfnF6fHgIfHeDd3YacJV1n3keeZ+mgq0boaWRlqgfqJar\
+nK+hCPccHATHFfcAVm41WkVFVBlURUJwPhv7LvsR7fdXLB/zwK5jtWy6dhl1uruAvhvs4bXe2B8O\
+8/jbHAVzFffNBvg3/smiUp9nnX4ZnH6shLqMCPtV/Sj3VQezjAWwpJCVmh+alJKXmRqXhaR+sB5i\
+9xMF/D0GV/shBYBthneCGoCPgpOCHpKCmIWchwiIlquKvhv7Vfyw91UHrqSOkZsfm5GYlJaXlZeW\
+oZisCPgY9/AV96sG+xz4FAX4Xv6YFfcjBl5ldWJgGnaRe5aAHn+Wm4WfG5uajpCaH5mQn5iknq1N\
+GHZib2xmdAh0ZmOAXxtbZZmobh9up32xuhrMqMbEwR4O+T348RXVB7eHqYScHoScfZl4lgiWeHOQ\
+bht1d4eEeR95hH2BgICAgH91fWp5YnZtcnkIeXJtgmkbYGiYpnAfcKZ9rLIauJmyp64esLnDsdWo\
+CKjV3proG+jafG3MH8xtuGelYgikYZhLNhr7+gdfjW+Qfx6QfpWAmoIIgpqchp4bnqSQlqof+1cH\
+eVJVglcbTlaVn2AfYJ9mqW6zSGBPbFV5CHhUV4JYGyw+psFQH1DAbs3aGriVtKCwHp+wqay0p7On\
+yaTgod+g8Zv3DZQI+zoENH5Nf2d+Z35xenx4CHx3g3d2GnCVdZ95HnmfpoKtG6GlkZaoH6iWq5yv\
+oQj3f/ucFfcjBl5ldWJgGnaRe5aAHn+Wm4WfG5uajpCaH5mQn5iknq1NGHZib2xmdAh0ZmOAXxtb\
+ZZmobh9up32xuhrMqMbEwR4O93bXHAVzFflvBvc69xhxVu0f7VbZPcYkCMUkqPsQ+yUaJnwxbjwe\
+bTxfQ1BMUEtMW0hrWHNEdy58CHwuQINTG/0Y91W7BrSljpKYH5iSlZaTmwiQmI6mthr5jge2iKaG\
+mB6Fl4KUfpIIkX5vjmEbWwb4kmwV/fcHbo15joQekIGThJaICIeVpImyG/cB4ZytyR/IrL3BsdYI\
+sdWe4/Ia8HnkaNYeZ9Zfv1aqCKpWQJopG/wj+LQV2vcc97j7Afe59wHZ+xz8B/t1BQ73SfrtHAW8\
+FRz7dQddjW+Pgh6PgZKElYYIhpSlibQbuvtVBvxGfAXyB0xhVG5cewh6XFuDXBs+RaC1Sx9KtFfJ\
+Yt0IYt125u8a8KDntd4etN3Cyc61CLXO1aDeG7a0hoGyH7KAtnm6cQj3gfsm91YH3pPOlb+YvpfD\
+ncejCPtzHPtiFffjB7WIqYWcHoOkeaBvngiebmyUaBtnaoB2bB9sdXNqeV4IeV6CVEgaLp9BtFMe\
+X6q1db8boqCPk6AfoJKun76rCPiV+NEVKvT3B/DK2pfGGXt3dYNyG2pumadzH3Knf6ywGrmbsayq\
+HqmrsZq3G7y3eGS0H7Nkn1RFGvsbNPsZ+0H7Fh4O93b3h/kFFfs79yX3O/fMBraIpoaYHoWXgpR+\
+kgiRfm+OYRtb91X5bwb3OvcYcVbtH+1W2T3GJAjFJKj7EPslGiZ8MW48Hm08X0NQTFBLTFtIa1hz\
+RHcufAh8LkCDUxv9GPdVuwa0pY6SmB+YkpWWk5sIkJiOprYa9+v3xRX71QdujXmOhB6QgZOElogI\
+h5WkibIb9wHhnK3JH8isvcGx1gix1Z7j8hrweeRo1h5n1l+/VqoIqlZAmikb+y78JfeW+yUGDvPZ\
+HAVzFRwEjAb3M/xN+0lKbNNoxWK3GWK3XahamgiZWVGSSRv7afvw0QbAro+Tnh+dkpiXk5wIk5uP\
+q7wawPdG/OL7RscHtIaogp4egZ5+l3qSCJJ6Zo5SG0z71AZpjXaOhB6OhJKFlYcIh5Sgiasb9wkG\
+4tWYpMcfx6TBs7rDusKvzaTY90tMGPtL/JoFHPtK91WuBrqqjpKbH5uSlpaSnAiOlY2nuhr5jAe0\
+iKaGmB6FmIKUf5IIkX9zjmgbTQb6Fhz7ThX3IwZeZXViYBp2kXuWgB5/lpuFnxubmo6Qmh+ZkJ+Y\
+pJ6tTRh2Ym9sZnQIdGZjgF8bW2WZqG4fbqd9sboazKjGxMEeDvpp+AYV9x37HjwxO0o6YxliOTN3\
+LBv7LPsUv/IjHyPyV/cQ9yYa66LjutseutrLyt64CLje6KH0G87HgXjCH8J4u2+0Z7RnrGCkWKRY\
+nFaUVAiPcI1fUBr9NQaMNqRHvFcIVrvGcdEbuLuZpsAfwKa/s77CCPtc97UVhrOCq32ifKJ4nXOZ\
+CJhycpJwG29whH1xH3F9dnh8c3tzgWyGZgj3E/0nFfcjBl5ldWJgGnaRe5aAHn+Wm4WfG5uajpCa\
+H5mQn5iknq1NGHZib2xmdAh0ZmOAXxtbZZmobh9up32xuhrMqMbEwR4O89kcBXMVHASMBvcz/E37\
+SUps02jFYrcZYrddqFqaCJlZUZJJG/tp+/DRBsCuj5OeH52SmJeTnAiTm4+rvBrA90b84vtGxwe0\
+hqiCnh6Bnn6XepIIknpmjlIbTPvUBmmNdo6EHo6EkoWVhwiHlKCJqxv3CQbi1Zikxx/HpMGzusO6\
+wq/NpNj3S0wY+0v8mgUc+0r3Va4GuqqOkpsfm5KWlpKcCI6Vjae6GvmMB7SIpoaYHoWYgpR/kgiR\
+f3OOaBtNBve0+JUV2vcc97j7Afe59wHZ+xz8B/t1BQ76afgGFfcd+x48MTtKOmMZYjkzdywb+yz7\
+FL/yIx8j8lf3EPcmGuui47rbHrray8reuAi43uih9BvOx4F4wh/CeLtvtGe0Z6xgpFikWJxWlFQI\
+j3CNX1Aa/TUGjDakR7xXCFa7xnHRG7i7mabAH8Cmv7O+wgj7XPe1FYazgqt9onyieJ1zmQiYcnKS\
+cBtvcIR9cR9xfXZ4fHN7c4FshmYI+3H5TBXa9xz3uPsB97n3Adn7HPwH+3UFDvmL0RwFcxX5PPtV\
+TQZeb4R9fh9+fIRrWRr9mAdakWuWfB58lqWDsxvV+1X9PPdVwga6qpKYmR+YmJKouhr5mwe+hq2A\
+mx6bgG6TWhtNBhwFN/dVFfk7+1VRBltthHx+H358hWdSGvzDBzSGSIBaHoBabldcU1tTTmBAbAhs\
+QDF7Ihv7QfsZt+QvHy/jXevyGsidwLC2Hravu6DGG8S0emqmH6ZpmGViGkoHUpxdrWkeaay5esQb\
+u7SZp6wfrKegq5SwCJSvj8ffGvjXB7OFpn+aHpl+cJJhG0kGDsr4FBwFvBW9tnlorx+vZ51gWBpY\
+eWBnZx5nZ2B5WRtYYJ2vaB9nrnm2vhrBnrexrh6tsbWcuRv5eha9tnlorx+vZ51gWBpZeWBnZx5n\
+Z2B5WRtYYJ2vaB9nr3m2vRq+nbavrx6ur7advRv82PxSFf13B2KQcpWCHoGVpoa4G8H7Vfz+91XA\
+BrmmkJSUH5SUj5+sGvhx+yj3UAf3MZP3EKjmvgj52Bb+vQcxf0JyVB5yU1xcRGYIZkQ3eCwb+wM7\
+obhYH1i4crq9GrCaqqilHqSorJiwG7zBakjEH3SfnX+cG7ujtN4f+f37J/dSB/cbjPcQp/cDxAgO\
+T90cBXMV+T77VU8GanaJiIIfe4R/gYR+CIR9h3VtGv2xB2uNd46EHo6EkYWUhwiGlJ2Jphvk05ei\
+wh/Boryxt7+2vrHRquT3TEwY+0z8mAX+vfdVzgamoI+SmR+ZkpWVkpgIkZeOoKoa+aoHrIijhZoe\
+hJqClYCSCJJ/d45wG0EG99j3tBVj8Pdr91QFwsnEpr8bs619bqcfp26ZaGAabH9sc24ec25hdU5+\
+CA79N/igHAW8FRz7bgdkjXOOhB6QfpWBm4UIh5WmibcbrvtV/P/3VbEGs6WOkJYflpCUk5CWCJCW\
+jqOxGvoQ+yj3Vgf3C5P3EKf3E7sI+8ShFWPw92v3VAXCycSmvxuzrX1upx+nbploYBpsf2xzbh5z\
+bmF1Tn4IDk/dHAVzFfk++1VPBmp2iYiCH3uEf4GEfgiEfYd1bRr9sQdrjXeOhB6OhJGFlIcIhpSd\
+iaYb5NOXosIfwaK8sbe/tr6x0ark90xMGPtM/JgF/r33Vc4GpqCPkpkfmZKVlZKYCJGXjqCqGvmq\
+B6yIo4WaHoSagpWAkgiSf3eOcBtBBvol/CcVKvT3B/DK2pfGGXt3dYNyG2pumadzH3Knf6ywGrmb\
+sayqHqmrsZq3G7y3eGS0H7Nkn1RFGvsbNPsZ+0H7Fh4O/CD4oBwFvBUc+24HZI1zjoQekH6VgZuF\
+CIeVpom3G677Vfz/91WxBrOljpCWH5aQlJOQlgiQlo6jsRr6EPso91YH9wuT9xCn9xO7CPew/PUV\
+KvT3B/DK2pfGGXt3dYNyG2pumadzH3Knf6ywGrmbsayqHqmrsZq3G7y3eGS0H7Nkn1RFGvsbNPsZ\
++0H7Fh4OT90cBXMV+T77VU8GanaJiIIfe4R/gYR+CIR9h3VtGv2xB2uNd46EHo6EkYWUhwiGlJ2J\
+phvk05eiwh/Boryxt7+2vrHRquT3TEwY+0z8mAX+vfdVzgamoI+SmR+ZkpWVkpgIkZeOoKoa+aoH\
+rIijhZoehJqClYCSCJJ/d45wG0EG+Wv7qBWyrnxuqB+obploZBpmfWpwcB5wb2p9ZBtkaZmnbx9u\
+p32tsxq0mKymph6mpqyYshsO/N/4oBwFvBUc+24HZI1zjoQekH6VgZuFCIeVpom3G677Vfz/91Wx\
+BrOljpCWH5aQlJOQlgiQlo6jsRr6EPso91YH9wuT9xCn9xO7CPep/LIVsq58bqgfqG6ZaGQaZn1q\
+cHAecG9qfWQbZGmZp28fbqd9rbMatJispqYepqasmLIbDvck2RwFcxX4ywb4Lf3CBfiGB7aJpYaW\
+HoSbgpaAkgiRgHWOahtH91X41PtVSwZrdIeEfh99hIGBhn4Ihn6IcGEa/sv7swf8mvqYBf1jB2KO\
+cJCAHpCAlIKYhAiEmKGIqxvO+1X81/dVxwasoo6RmB+XkJWVkpkIkpmPoKca+bQHqoihhJoehJmC\
+lYCSCJGAeI5wG0AG+Iv3tBVj8Pdr91QFwsnEpr8bs619bqcfp26ZaGAabH9sc24ec25hdU5+CA6h\
++J36khX7GQfWvsyuwZ4InsDClMMbzMR9cL0fvHCvaaJiCKJillBAGvw0B2iOdJCBHpCBkoSWhgiI\
+k6OJsxu8+1X83/dVBriMpIyQjJyQlpKQlgiQlo6irhr4Awe6hqqBmR6ie3KXaBtubYV+ah9qfl9x\
+VGQI/CEHYJBwlIEegZSihq4bq/tV/Nn3VagGuaiNj5Yflo+TkpGVCJCVjp+oGvhm+yj3VQf3DJr3\
+BKf0tAjm9wAVY/D3a/dUBcLJxKa/G7OtfW6nH6dumWhgGmx/bHNuHnNuYXVOfggO9yTZHAVzFfjL\
+Bvgt/cIF+IYHtomlhpYehJuCloCSCJGAdY5qG0f3VfjU+1VLBmt0h4R+H32EgYGGfgiGfohwYRr+\
+y/uzB/ya+pgF/WMHYo5wkIAekICUgpiECISYoYirG877VfzX91XHBqyijpGYH5eQlZWSmQiSmY+g\
+pxr5tAeqiKGEmh6EmYKVgJIIkYB4jnAbQAb3yfiVFdr3HPe4+wH3ufcB2fsc/Af7dQUOofid+pIV\
++xkH1r7MrsGeCJ7AwpTDG8zEfXC9H7xwr2miYgiiYpZQQBr8NAdojnSQgR6QgZKEloYIiJOjibMb\
+vPtV/N/3VQa4jKSMkIyckJaSkJYIkJaOoq4a+AMHuoaqgZkeontyl2gbbm2Ffmofan5fcVRkCPwh\
+B2CQcJSBHoGUooauG6v7VfzZ91WoBrmojY+WH5aPk5KRlQiQlY6fqBr4Zvso91UH9wya9wSn9LQI\
+JPfhFdr3HPe4+wH3ufcB2fsc/Af7dQUO+Ej6PPqSFfsZB9a+zK7BngiewMKUwxvMxH1wvR+8cK9p\
+omIIomKWUEAa/DQHaI50kIEekIGShJaGCIiTo4mzG7z7Vfzf91UGuIykjJCMnJCWkpCWCJCWjqKu\
+GvgDB7qGqoGZHqJ7cpdoG25thX5qH2p+X3FUZAj8IQdgkHCUgR6BlKKGrhur+1X82fdVqAa5qI2P\
+lh+Wj5OSkZUIkJWOn6ga+Gb7KPdVB/cMmvcEp/S0CP1g+7AV+wX3EOPbw8Oiqhmiqp2wmrh+gn6F\
+foYIhn59iX4bZWmbq24fbqt8srgawJ64sLAer7C4ncAbsrGAdbAfsHSnbZ9kCJ9klV1YGjZvOVM6\
+HlM6QUIvSAgO95/5zRwFixX3cfdISPsb9x0f9x37G8/7QftnGvsibPsSTPsCHkz7AjU2+wJQCE/7\
+A/sZbfswG/ti+z3E9wX7Fx/7M/cdPPdK93ka92nR90L3H/cbHvcb9x/3Sc/3dRuP+3IVITdjPEwf\
+PCdk+xX7Mhr7MrD7EdQvHjzK32TzG/TestrKH9XpsPcS9zEa9wN76GzWHmvWYMRVsAiwVVCeTBv7\
+bPfYFbz3a5e/l6yXmhmkoKaYqxumo4F3nh+ed5RzcBpkeGNlYx77Mfs3BffAqRW892uWv5esl5kZ\
+paCmmKwbpqKBd54fnneUc28aZHhkZWMe+zD7NwUOJvkM+pIV9wbudV7gH+BezE+5Pgi4PqIwJBr7\
+MFj7EyYqHiom+xxa+z0b+0H7HbztJR8o6Fr3E/czGvSi5bjWHrjWzMjguQi44O2i9wIbj/tvFWVn\
+gHRqH2p0cWp5Xwh4X4JTRxpFlFGdXR6dXaRpq3UIdaqugLEbxr2kvbUftbyg2PQa8HjYZL4evmRZ\
+pE4b+3X3+hW892uXv5esl5oZpKCmmKsbpqOBd54fnneUc3AaZHhjZWMe+zH7NwX3wKkVvPdrlr+X\
+rJeZGaWgppisG6aigXeeH553lHNvGmR4ZGVjHvsw+zcFDvd21RwFcxX58AbCyIaBzR/Mgcd1wGnA\
+abRgqFcIqFeaUEoaIWU1QEoeP0kxYCR397P74hiXfJ50nHuagBmagJuDmoYIhpqhiaYbx/tV/FMG\
+/FT47QX7CPuqBluObZB+HpB+lIGXhQiElqOIrhvL+1X9PvdVyQasoo+SmR+YkpWVkpkIjpONpLUa\
++aUHqomhhpgehpiCk4CPCJJ7eY92G2+KBVcG+JZtFfv992MH3MiTmrQfs5qpoKCnCJ+nla2zGrCC\
+qnimHnilcJ5omAiYaFGRPBv7iPfYFWPw92v3VAXCycSmvxuzrX1upx+nbploYBpsf2xzbh5zbmF1\
+Tn4IDvxB+Jz6khX7JQfAw7qxsqAIn7Kwla8brKiEfKUfpHygdZpvCJpvkm1rGmF9ZXBpHmlvZHpZ\
+G35/jI2BH4CNdZJqlgiQenyOgBt6boB1Yx/8GwdqjnWQgR6QgZOEloYIhpakibEbt/tV/P33Vb4G\
+sKKNj5QflI+RkpCVCJCVjaGuGvhf+yf3VAf3AZL3Baf3CbwILPcAFWPw92v3VAXCycSmvxuzrX1u\
+px+nbploYBpsf2xzbh5zbmF1Tn4IDvd21RwFcxX58AbCyIaBzR/Mgcd1wGnAabRgqFcIqFeaUEoa\
+IWU1QEoeP0kxYCR397P74hiXfJ50nHuagBmagJuDmoYIhpqhiaYbx/tV/FMG/FT47QX7CPuqBluO\
+bZB+HpB+lIGXhQiElqOIrhvL+1X9PvdVyQasoo+SmR+YkpWVkpkIjpONpLUa+aUHqomhhpgehpiC\
+k4CPCJJ7eY92G2+KBVcG+JZtFfv992MH3MiTmrQfs5qpoKCnCJ+nla2zGrCCqnimHnilcJ5omAiY\
+aFGRPBv8Pvi5Fdr3HPe4+wH3ufcB2fsc/Af7dQUO/EH4nPqSFfslB8DDurGyoAifsrCVrxusqIR8\
+pR+kfKB1mm8Imm+SbWsaYX1lcGkeaW9kelkbfn+MjYEfgI11kmqWCJB6fI6AG3pugHVjH/wbB2qO\
+dZCBHpCBk4SWhgiGlqSJsRu3+1X8/fdVvgawoo2PlB+Uj5GSkJUIkJWNoa4a+F/7J/dUB/cBkvcF\
+p/cJvAj72vfhFdr3HPe4+wH3ufcB2fsc/Af7dQUOePr9HAVzFfcM/Gj7TlZN9wNF3Ty/Gb48OKUy\
+G1Jef3RqH2p0enFuGmqabalvHqhvwXLadfegPRj3KWD1U8pECMpEqjgsGvsNWyUrOB4vIPsaXfsz\
+G0FHlJ9NH02eSqpIuF8nGPspBij4sfdPuLf7AtAv6EIZQejxZvcDG721kZisH6yYo5ycogicopOi\
+oxqzeK1kqB5kqEanKaf7fc8YaJVbnk+nTqZdqGupaqlwsna6CHa6gLy/GtWgz7TKHrTJyL3esgiy\
+3eae7xv3DfcBbEzsH7LRBfxv6hVj8Pdr91QFwsnEpr8bs619bqcfp26ZaGAabH9sc24ec25hdU5+\
+CA77xvmH+noV9xcG3Puq+1E/Z8VeuVWsGaxUVZtWG2hwhX96H3p/gn16Gn2Rfph/Hpd/pH6yfven\
+KRi8erl1uHG4caxromYIoWWWX1gaMGhBRlEeRzolafsNGyMwpcA+H29UBfsZBvsP99z3Udu6QcZR\
+0GEZYNDLdsUbr6mTnKQfnpiUm50amoSafJkefJlrm1mc+2zWGPsLtTq4YLsIYLp1xMwa363SzsQe\
+zNjprPcFG+/hdF7SH/wJ90QVY/D3a/dUBcLJxKa/G7OtfW6nH6dumWhgGmx/bHNuHnNuYXVOfggO\
+yvdDHAWiFfcYBplcBfmnBpy6BfcZBvdB/H37Tkpi3G3AeaQZaLxisV2nCKBoaZZpG3uAh4SFH4WD\
+iHlwGv22B1yNbY5/Ho5/kYKThJOEloaZiQiImbCKyBv7Vf0891W0B7iojpGYH5iQlJWSmgiSmY6p\
+uBr5yAeiiJqGkR6Rhn+OehtoZX5xYB9gcWVmalx+eG5XYDX7S8wY+MD+oRWTxb2PtRv3JdRU+wJR\
+dVtfZh9mXlR4SRtaYJaiZh9loXipsRq4n6K0nZ+DeqEedKiigJwbnJmSmpYflpmQmZoaumaiQm5n\
+h4RgHg78QfiiHAU9Ffvr99b7afvW+/AHPI9ZlHUek3SaeaJ+CHmprYKyG9DPobjPH/tqB1FwV3hc\
+gAiAXFiFVBtNVJObXB9bmmKiaqhpqHSpfqwIfqyEuska+HD7KvdUB8CcuaSxrLGrqrKiuKK4msWU\
+0QjXHPpvFZPFvY+1G/cl1FT7AlF1W19mH2ZeVHhJG1pglqJmH2WheKmxGriforSdn4N6oR50qKKA\
+nBucmZKalh+WmZCZmhq6ZqJCbmeHhGAeDsr3QxwFohX3GAaZXAX5pwacugX3GQb3Qfx9+05KYtxt\
+wHmkGWi8YrFdpwigaGmWaRt7gIeEhR+Fg4h5cBr9tgdcjW2Ofx6Of5GCk4SThJaGmYkIiJmwisgb\
++1X9PPdVtAe4qI6RmB+YkJSVkpoIkpmOqbga+cgHooiahpEekYZ/jnobaGV+cWAfYHFlZmpcfnhu\
+V2A1+0vMGPf/+Y4V2vcc97j7Afe59wHZ+xz8B/t1BQ78Qfl8+sIVTc7Uy7S+k7EZgX59hnsbeHmT\
+m3ofepuDoaYaqZWkoJ4enqCjlacbqqh/cqUfpXKYaF4aMlM2+wM6Hvtu96MV++v31vtp+9b78AdD\
+jluScx6Scpx3p3oIeqatgrIb0M+huM8f+2oHWiYmciQbMEGaqVEfUahir3S0CHO0f8XWGvhw+yr3\
+VAf3N77n9w6g91MIDvcksBwFcxX5PftVSAZsdoeEfh9+hIGAhX4IhX2Ib2Ea/JAHLJVFnlwenlyn\
+aLJzCHKxuX/CG8K7mKa2H7amqa2etAidtJTO6hr4xAeiiJyFlR6DmICVfpAIj4JzjWUbVfdV+NX7\
+VV4GXnCIhoAfe4N/f4R8CIaBiG9eGvy6ByZ8Nm5GHmIuS0IyWAhXMiFx+w4bNT6YpkcfR6VQsVi8\
+WLxnvnfCCHbCgdv2GvivB7yIq4aaHoaZgpV/kgiSf3SOaBtLBvo4+KAVUndbYmMeYmJZd1AbUVmf\
+tGIfYrR2vMQaxKC8tLQetLS9n8Ubxr13YrQftGKfWVEa+6+PFXWSeZl8HnyZnISeG56ckpqZH5ma\
+kpygGqCEnH2aHpp9epJ4G3d6hH1+H318hHp3Gg54wPp6FfhnlAX9HQddjmyRfB6QfJZ+moIIgZqd\
+hqIbrK+Tm7AfmpKyosq0CPgaB62IooaYHoaYg5SBkQiQgXiObhtR91UG+GiUBf1gB2aNc5CCHo+B\
+koSVhwiGlKKJsBvA+1UG/Et/BfcKB1BgUGpQdgh1UE+ATxtbX5ObYx9immmgcKZwpXaqfq4Ifq6E\
+ucIa+DAHsYmjh5UehpWEk4GQCJCBdo1qG1QG+db4xRVSd1tiYx5iYll3UBtRWZ+0Yh9itHa8xBrE\
+oLy0tB60tL2fxRvGvXditB+0Yp9ZURr7r48VdZJ5mXwefJmchJ4bnpySmpkfmZqSnKAaoIScfZoe\
+mn16kngbd3qEfX4ffXyEencaDvcksBwFcxX5PftVSAZsdoeEfh9+hIGAhX4IhX2Ib2Ea/JAHLJVF\
+nlwenlynaLJzCHKxuX/CG8K7mKa2H7amqa2etAidtJTO6hr4xAeiiJyFlR6DmICVfpAIj4JzjWUb\
+VfdV+NX7VV4GXnCIhoAfe4N/f4R8CIaBiG9eGvy6ByZ8Nm5GHmIuS0IyWAhXMiFx+w4bNT6Ypkcf\
+R6VQsVi8WLxnvnfCCHbCgdv2GvivB7yIq4aaHoaZgpV/kgiSf3SOaBtLBvjF99wVvPdrl7+XrJea\
+GaSgppirG6ajgXeeH553lHNwGmR4Y2VjHvsx+zcF98CpFbz3a5a/l6yXmRmloKaYrBumooF3nh+e\
+d5RzbxpkeGRlYx77MPs3BQ54wPp6FfhnlAX9HQddjmyRfB6QfJZ+moIIgZqdhqIbrK+Tm7AfmpKy\
+osq0CPgaB62IooaYHoaYg5SBkQiQgXiObhtR91UG+GiUBf1gB2aNc5CCHo+BkoSVhwiGlKKJsBvA\
++1UG/Et/BfcKB1BgUGpQdgh1UE+ATxtbX5ObYx9immmgcKZwpXaqfq4Ifq6EucIa+DAHsYmjh5Ue\
+hpWEk4GQCJCBdo1qG1QG9//4ARW892uXv5esl5oZpKCmmKsbpqOBd54fnneUc3AaZHhjZWMe+zH7\
+NwX3wKkVvPdrlr+XrJeZGaWgppisG6aigXeeH553lHNvGmR4ZGVjHvsw+zcFDk8cBL8cBXMV+1UH\
+/Xb+bQXiBvcM5Zaixh/GocKyvsS9xLLQp973S00Y+0v8mAX+vfdVBvl5+moF+wgGPEyCeFsfW3hh\
+cGhmaGZYPkn7CftE2Rj3aPh4Bfe76hVj8Pdr91QFwsnEpr8bs619bqcfp26ZaGAabH9sc24ec25h\
+dU5+CA77dPdx+noV+eT7VQb85/zlBfcbBtPCk5qyH7GaraOorJ+horOlxPdJRxj7GPv6Bf5B91UG\
++OL45QUvBlBehYBsH2t/bHVua3x8cWNlS/tD3Bj4C/hlFWPw92v3VAXCycSmvxuzrX1upx+nbplo\
+YBpsf2xzbh5zbmF1Tn4IDk8cBL8cBXMV+1UH/Xb+bQXiBvcM5Zaixh/GocKyvsS9xLLQp973S00Y\
++0v8mAX+vfdVBvl5+moF+wgGPEyCeFsfW3hhcGhmaGZYPkn7CftE2Rj3aPh4Bfhp+BsVsq58bqgf\
+qG6ZaGQaZn1qcHAecG9qfWQbZGmZp28fbqd9rbMatJispqYepqasmLIbDvt093H6ehX55PtVBvzn\
+/OUF9xsG08KTmrIfsZqto6isn6Gis6XE90lHGPsY+/oF/kH3VQb44vjlBS8GUF6FgGwfa39sdW5r\
+fHxxY2VL+0PcGPjQ+Y0Vsq58bqgfqG6ZaGQaZn1qcHAecG9qfWQbZGmZp28fbqd9rbMatJispqYe\
+pqasmLIbDnAcBQ4cBUwV+/tnB37SdsRwt2+3b6dumAiXbmGRVBv8IP7PBlSXY6N0HnSiuH/OG8Bn\
+/XmvuwbItJekoB+go5W4zhr6TQfRfrdwnR6ccF6UThturwYO93scBfz5MxX7W0n7OvsZ+xse+xv7\
+GftGSPtxG/sZ+wylwCAfIL8z3EX3AQhF9wFo9xb3Khr3Iaz3Ec33Ah7N9wHl3vcFwwjD9wX3DKf3\
+Exv3J/caZ0T3Dh/3DUThMLz7Awi8+wOk+wT7BRr79IQV92No9zRG9wUe9wVGL8T7BRv7ATBWIEMf\
+QyBn+zL7ZBr7T6z7Ls77Cx77DM3nT/cKG/cH6MP3BNEf0PcDrvcs91Qa/L/7gRVn+JCvBlqXaKR2\
+HnakuYHPG866lZ6kH6Sel6+/GrD8kGYG5Fu3KkdeiIR2HnWEeX5+dgh+doRwaRoO95b4lhavB72K\
+r5ahoaGhlrGMwvtjlPspwTDsCC/sXfcE9xMa9x289wbt6B7s6PcmvPdXkQiMlYyTkBqzgKp1oB51\
+oGaXV4wIr/jtZwdYimaAdXYIdXaAbGIahouDjIEe91eF9yZa7S4I7C68+wb7HRopcTNXPh5XPUtT\
+Pmk+aSN1+xmCjFSWZKJ2oXWvgLyMCGcH/F/63RU4jkpsWkoIWkpz+wT7Mhr7OKf7AcRUHlTEyG/O\
+G/fRjBWKk5GLjhvGxKbCwh/Cwqf3BvdBGvepMfce+0keDvuE+Y36OxX3pgYt/EuEcIFhekB7UHpf\
+GZFomG2edAhznp5/nxvCqL3vjh+wBor7DX47cmIIYnJtd2gbTWDO9xtyH/sbQPsHSPsvG/sPKLbh\
+Ph8+4WX3BPceGvchsfcP1/Qe9Nbnv/cAG/bfQfspyB9w+xEVY/cHaNVtqgiqbGubaRthbW9SeR95\
+UoL7FftdGvsslCicXR5cnKR0rRumpZuqpB+kqqbfqPcdCA777vh3+dkVeqB1oXCkSMhbv2y1CGy1\
+fLq+Gsikur2rHqq9zJvaG+zbfG7LH8ttq2JWGm6BdXh8Hnt3dINxG15aqslWH8dYValTG2RsgXZy\
+H3J2fnNwGk7SQ/cjOB73BkneVcBhv2C4UbJACLJAnkA+GvsRXyAzMh4xMiFe+xEb+wcos9w4Hzjc\
+YfT3FxrYnM2twh6twrW4vq69rter8qYItlUVTXNgZXJWCHJWfjH7Exr7LZgqpmEeYKWudrYb9wDB\
+9wL3b/c4XfcdL/cDHw78W/gs+H0VKplDqly7CFy7c7y+Gsqrwcq6HrnK7aL3Fxv223tsvh++a6Vk\
+XBpxgnR5eB53eHCBZhtocZSceB94nIKbmxqWjpuRoB6OlIyTkhqqaZpILFtN+w9ElFyedB5znq5/\
+vxuamYyMmB+OrKKNlhuYl4eDlh+Wg5CBgBpyen9ofHqMjHoejXN3jHwbLlxE+yL7IbxF7aqlkpqi\
+H6GZlpucGpSJmIeeHomWipWVGqqWoqCbHpqgo5OoG6+ngHafH592lXFtGlRrXUtmHmZLO3gsG/sN\
+JaS9OR84vWLL2Bqulaygqx6gq6uot6a3pc+g55sIDvt8+tz6OxX7ZPwdB/dEKuP7EfstGvsAYTE3\
+Qh5CNiZn+wob+xf7Ab7xMx8y8V/3CfcYGvcgv/cE8t4e3vL3J7T3VRtJ+2QV+z2GNjP7QRr7Bp4p\
+sjgeOLG4Yr4buK6oxKUfpMSY1uoa9x1w9xBU9wMeDvxv+c76OxX7ZfuwB3b7cYH7IVAaWpVlnm8e\
+bp6kfaob0LTD9wSZH60Gh/sSczJgWAhYYFhxURtTW6O9ZB9kvHfh9xAa3pX3IKD3Wh6McXmMgBtN\
+XoJ5bh9ueXFrdF4IZAa29wuz3K+0r7SrpKaUCJSmxo/lGw77FvlO/EAV+zT4JgZKRZ6zQR9Ask/H\
+XNwIXNxz5e0a9x239wfi6B7i6PG49wqJCGcHTndfXnFFCHBEfiL7Hxr7LZ/7A7NFHrJFuGi+igj5\
+CAf3AaLYuLgeuLjDoc4b5uNgNuAf4DW1+wX7IRo2eDlmOh5mOlRKQlpCWjlxMIgIygS6jbittc4I\
+tc2g9wP3MBr3EH3pcMoeym9pq2Ibdn18bYQfhGyHRPsEGg7773/7OhX6rCX+rAY/BPqsJf6sBg7+\
+BPcS+eIVmffjjb6RtJSoGZSonaanpAijpqiXqRvEqGdDcn5fck4f+yL74wUO/JP3EvniFZn3442+\
+kbOUqRmUqJ2mp6QIo6aol6kbxKhoRGuCZ3hiH4aCiISJhPsi++MY97cWmPfjjr6Rs5SpGZSonaan\
+pAijpqiXqRvEqGhEa4FneGIfh4KIhIiE+yH74xgO+x74aPg9FftWBoP3KXf3S2r3bgh19yWA36Ma\
+wJ64sbAesLC3nr0bv7h4ZrAfsGWeXVYacYhqhGIeWPvCcPt+ifs5CPiEFvtWBoP3KXf3S2r3bgh1\
+9yWA36MawJ64sbAesLC3nr0bvrh4ZrEfsGWeXVYacYhqhGIeWPvCcPt+ifs5CPzoRhW+t3lnsB+w\
+Zp1fWBpYeWBnZh5mZl95VxtYX52wZx9mr3m3vhq+nbewsB6vsLadvhv4hBa+t3losB+wZ51fVhpY\
+eWBmZh5mZl95WBtYX52wZx9mr3m3vhq+nbewsB6vsLadvhsOHAaGHAVE+ncV47zFwajFqMWcyZLM\
+CPdV++v4oQabur+Twxvv4XRe0h+ltwX3Fwbc+6r7UT9uvWG3VLAZsFRSnVEbRGh3Ym6rccp1H/en\
+KfBn0mK0Xhm0Xp9SRhoqYzw7UB5POitt+wMbIzClwD4fblQF+xgGdsQFWiYmcyYbMEGaqVEfUKhi\
+r3S0CHO0f8XWGvhw+ygH+y80+zE++3Yb+4L7mQZkkXGXfh59l6WEtBvS+1X9PPdVugbArJOamR+Y\
+mpKqvBr5kwfAhq2Amh6agG+SXhtI91X5dQb32fdE+xn7n6cf/Yb3QBX8IPcLB9bBk5qqH6qapqGh\
+qAihqJaxuRrCeLpmsB6wZk6dOBscBSf+ORVo6fdR27pBxVHQYRlg0Mx2xxuqp5KZoh+imZecnxqs\
+Y6k7px77bNb7BbM8tl26GV25dMXRGqKOpJGkHvvE+/AGQ45bknMekXOcdqZ6CHqmroK3G7G3lZ6+\
+Hw74e/kl+pYV9wEvBfsKKvsGUPsZGyY1q8pGH0bKaNnoGuet2tDMHszP5qv3Bxvq1nZhxB/DYadg\
+YBpqf3JzeB54cm+BahtudJKYfB98mHmldrIIr3hznW0baG57anQfdGp/YlsaVZpeqGceZ6ixebob\
+yMqw1sof+ZL4HRX9+Bz6XQX7NQb58xwFowX3PP2YFe/ib1TVH9VUsDn7ARooajtITh5NSDFs+wQb\
++wEyqMZGH0bGadz0GuWr2MzMHszL5av3CBuO+ykVaG18bXQfdGx/Xk8a+w+zTdquqJqqpB6jqZe5\
+yBrCgbd2rR6sdm2cZBsO/J+x9+kV9yD3KgX4nAeM9ymq9wDIzgjOyNGs2xvMwndjuR+5Y6JURBpS\
+fU1wRx5wRkIk+wn7Hwj8DQc6lFOcah5qnKd6sRvWvsr3EqYfvgb7bV4h+wD7OxtCS6XAVB9Tv2/e\
+9wUa9wAHJCAF+BT4cxX3F/ctzPcc9wsa52+5VGNudF16Hnlcgj77ABoO+Tn4gPoAFdcGVfsFSiQ/\
+LggcBjsmHPnFBs9HzSTL+x4IPQb7Kfc9+x73BfsTxgi4B/cKuvce9wP3MfdDCA777/ct+q4V90P3\
+MfcD9x669woIuQbF+xT3Bfse9z37KQg+B/seyyTNR84IHPnDJhwGPQcuPyRK+wVVCA75ORwGE/oA\
+Ffcy+0P3HvsD9wlcCF4H+xNQ+x77Bfsp+z0IPgbK9x7N8s/PCBz5xfAcBjsGP+hK8lX3BQgO++/3\
+LXsV1wf3BVXySug/CBwGPvAc+cIHz8/yzfceygg+B/s9+yn7BfseUfsTCF0GXPcJ+wP3HvtD9zII\
+Dvk5HAew+LAVXgf7DVb7G/sE+yr7QAg7Brn3B8zy3ugIHPrnBt4uzCS5+wcIOwb7KfdA+xz3BPsN\
+wAi4B/cNwPcc9wT3KfdBCNsGXfsHSiQ4LggcBRkGOOhK8l33BwjbBvcq+0H3G/sE9w1WCA777/h9\
+HAW3FbgGwPsN9wT7HPdA+yoIOwf7BrkjzC7fCBz65gfo3/PM9wa4CDwH+0D7KvsE+xxW+w0IXgZW\
+9w37BPcc+0D3KgjaB/cGXvNK6DcIHAUaBy43I0r7Bl0I2wf3QPcq9wT3HMD3DQgO++/4fRwFtxW4\
+BsD7DfcE+xz3QPsqCDsH+wa5I8wu3wgc+uYH6N/zzPcGuAg8B/tA+yr7BPscVvsNCF4GVvcN+wT3\
+HPtA9yoI2gf3Bl7zSug3CBwFGgcuNyNK+wZdCNsH90D3KvcE9xzA9w0I++Mc+D8V+WEp/WEGDvkO\
+9/4cBP8V7xz7ZRwEnScc+v8GDvD3yxb7FfjnBozajNiM1IzUkcyYw5fCn76nuqe6sra9tL20w6rI\
+oQihyMmWyxvs5nNc4B/fW8pStUm1SaVFlUIIlEKQ+xT7Shr85/sU+O4H9y2H9wKEzh6DznjHbMBs\
+wFq5SbAIsEhFnkEbQEV4ZUkfSGRbXm1YbVd4T4NICINIh/sD+y0aDvsi9wocBO4V+nT7TP50Bvuy\
+BPp0+1H+dAb7sgT6dPtM/nQGDvsa9yb6RBX6RP5E/kQG1/n4Ff2s+az5rAcO/Rn45vohFfxk/GP4\
+YwcO/Rn45vohFfxk/GP4Ywf4F0AV+8uKBfvL98sHDvsa+P/6jhX3DfJgNeIf4TW2I/sNGvsNYCM1\
+NR40NSNg+w0b+w0jtuI1HzThYPP3DRr3Erf0498e3uLytfcLGw79Gff/+lYV2s5vVMMfwlOnRzwa\
+PG9IVFMeU1NIbzwbPEenw1QfU8Nvztoa2qfPw8MewsPOp9obPwRSWndjYh9hY3ZZTxpSoFm0Yh5i\
+tLx2xRvFvaC0tB+0tJ+9xBrFdr1itB60YlmfUhsO/Tf3j/15FSr09wfwytqXxhl7d3WDchtqbpmn\
+cx9yp3+ssBq5m7Gsqh6pq7Gatxu8t3dltB+zZJ9URRr7GzT7GftB+xYeDvP42xwFcxX3zQb4N/7J\
+olKfZ51+GZx+rIS6jAj7Vf0o91UHs4wFsKSQlZofmpSSl5kal4WkfrAeYvcTBfw9Blf7IQWAbYZ3\
+ghqAj4KTgh6SgpiFnIcIiJarir4b+1X8sPdVB66kjpGbH5uRmJSWl5WXlqGYrAj4GPfwFferBvsc\
++BQF+A35UhX7SP0Z90gHDvk9+PEV1Qe3h6mEnB6EnH2ZeJYIlnhzkG4bdXeHhHkfeYR9gYCAgIB/\
+dX1qeWJ2bXJ5CHlybYJpG2BomKZwH3CmfayyGriZsqeuHrC5w7HVqAio1d6a6Bvo2nxtzB/Mbbhn\
+pWIIpGGYSzYa+/oHX41vkH8ekH6VgJqCCIKanIaeG56kkJaqH/tXB3lSVYJXG05WlZ9gH2CfZqlu\
+s0hgT2xVeQh4VFeCWBssPqbBUB9QwG7N2hq4lbSgsB6fsKmstKezp8mk4KHfoPGb9w2UCPs6BDR+\
+TX9nfmd+cXp8eAh8d4N3dhpwlXWfeR55n6aCrRuhpZGWqB+olqucr6EI93X65hX7SP0Z90gHDvck\
+HASBHAVzFfciBvcd/In7TlVN9wtR4FS9GdA/Oa0yG0pPeWdTH1JnX1ZqRQhqRXo5LRr7I7H7ENck\
+HiTW7lf3DxvZ1qG40x/lwtnWzOj3L/sHGCb7HS8rOFUIOPsV+yNh+zIb+xf7C6vKIR8gyjbjTPcF\
+CEz3BWv3EPcaGvcZqvcOyfcCHsj3Ad/h9sgIyPX3Cqr3Fxv3GfcIb1PvH6j3uhU8+xv7ufcB+7n7\
+ATz3G/gI93UFDvpw+A4V9yf7FTwsOkU2YBlgNjF1Khv7L/sVvfAkHyPwV/cO9yUa7aPlvNweu9zN\
+y+C4CLjf7qL3Bxv3HfcFa0ziH+JLtkhEGm2EcH50Hn1zdnhvfAh8b22EbBtydJCVdx93lXqYfpqF\
+kn+feq51tnqof5l/mX2WepMIknp4j3YbaGqAdWwfa3RxaXdeCHZegVhTGk6XVKNaHqNaq2W0cghy\
+s7d+vBu6upikuh+6pL63wsoImfoPFTz7G/u59wH7ufsBPPcb+Aj3dQUO9yQcBIEcBXMV9yIG9x38\
+iftOVU33C1HgVL0Z0D85rTIbSk95Z1MfUmdfVmpFCGpFejktGvsjsfsQ1yQeJNbuV/cPG9nWobjT\
+H+XC2dbM6Pcv+wcYJvsdLys4VQg4+xX7I2H7Mhv7F/sLq8ohHyDKNuNM9wUITPcFa/cQ9xoa9xmq\
+9w7J9wIeyPcB3+H2yAjI9fcKqvcXG/cZ9whvU+8f++L4VxWyrnxuqB+obploZBpmfWpwcB5wb2p9\
+ZBtkaZmnbx9up32tsxq0mKymph6mpqyYshsO+nD4DhX3J/sVPCw6RTZgGWA2MXUqG/sv+xW98CQf\
+I/BX9w73JRrto+W83B673M3L4LgIuN/uovcHG/cd9wVrTOIf4ku2SEQabYRwfnQefXN2eG98CHxv\
+bYRsG3J0kJV3H3eVeph+moWSf596rnW2eqh/mX+ZfZZ6kwiSeniPdhtoaoB1bB9rdHFpd14Idl6B\
+WFMaTpdUo1oeo1qrZbRyCHKzt368G7q6mKS6H7qkvrfCygj8FvqsFbKufG6oH6humWhkGmZ9anBw\
+HnBvan1kG2RpmadvH26nfa2zGrSYrKamHqamrJiyGw7z2RwFcxUcBIwG9zP8TftJSmzTaMVitxli\
+t12oWpoImVlRkkkb+2n78NEGwK6Pk54fnZKYl5OcCJObj6u8GsD3Rvzi+0bHB7SGqIKeHoGefpd6\
+kgiSemaOUhtM+9QGaY12joQejoSShZWHCIeUoImrG/cJBuLVmKTHH8ekwbO6w7rCr82k2PdLTBj7\
+S/yaBRz7SvdVrga6qo6Smx+bkpaWkpwIjpWNp7oa+YwHtIimhpgehZiClH+SCJF/c45oG00G+lv4\
+pBX7SP0Z90gHDvpp+AYV9x37HjwxO0o6YxliOTN3LBv7LPsUv/IjHyPyV/cQ9yYa66LjutseutrL\
+yt64CLje6KH0G87HgXjCH8J4u2+0Z7RnrGCkWKRYnFaUVAiPcI1fUBr9NQaMNqRHvFcIVrvGcdEb\
+uLuZpsAfwKa/s77CCPtc97UVhrOCq32ifKJ4nXOZCJhycpJwG29whH1xH3F9dnh8c3tzgWyGZgj4\
+evlbFftI/Rn3SAcO89kcBXMVHASMBvcz/E37SUps02jFYrcZYrddqFqaCJlZUZJJG/tp+/DRBsCu\
+j5OeH52SmJeTnAiTm4+rvBrA90b84vtGxwe0hqiCnh6Bnn6XepIIknpmjlIbTPvUBmmNdo6EHo6E\
+koWVhwiHlKCJqxv3CQbi1Zikxx/HpMGzusO6wq/NpNj3S0wY+0v8mgUc+0r3Va4GuqqOkpsfm5KW\
+lpKcCI6Vjae6GvmMB7SIpoaYHoWYgpR/kgiRf3OOaBtNBvo4+RkV9wBWbjVaRUVUGVRFQnA+G/su\
++xHt91csH/PArmO1bLp2GXW6u4C+G+zhtd7YHw76afgGFfcd+x48MTtKOmMZYjkzdywb+yz7FL/y\
+Ix8j8lf3EPcmGuui47rbHrray8reuAi43uih9BvOx4F4wh/CeLtvtGe0Z6xgpFikWJxWlFQIj3CN\
+X1Aa/TUGjDakR7xXCFa7xnHRG7i7mabAH8Cmv7O+wgj7XPe1FYazgqt9onyieJ1zmQiYcnKScBtv\
+cIR9cR9xfXZ4fHN7c4FshmYI+D/50BX3AFZuNVpFRVQZVEVCcD4b+y77Ee33Vywf88CuY7VsunYZ\
+dbq7gL4b7OG13tgfDvPZHAVzFRwEjAb3M/xN+0lKbNNoxWK3GWK3XahamgiZWVGSSRv7afvw0QbA\
+ro+Tnh+dkpiXk5wIk5uPq7wawPdG/OL7RscHtIaogp4egZ5+l3qSCJJ6Zo5SG0z71AZpjXaOhB6O\
+hJKFlYcIh5Sgiasb9wkG4tWYpMcfx6TBs7rDusKvzaTY90tMGPtL/JoFHPtK91WuBrqqjpKbH5uS\
+lpaSnAiOlY2nuhr5jAe0iKaGmB6FmIKUf5IIkX9zjmgbTQb5LvjcFbKufG6oH6humWhkGmZ9anBw\
+HnBvan1kG2RpmadvH26nfa2zGrSYrKamHqamrJiyGw76afgGFfcd+x48MTtKOmMZYjkzdywb+yz7\
+FL/yIx8j8lf3EPcmGuui47rbHrray8reuAi43uih9BvOx4F4wh/CeLtvtGe0Z6xgpFikWJxWlFQI\
+j3CNX1Aa/TUGjDakR7xXCFa7xnHRG7i7mabAH8Cmv7O+wgj7XPe1FYazgqt9onyieJ1zmQiYcnKS\
+cBtvcIR9cR9xfXZ4fHN7c4FshmYI9zX5kxWyrnxuqB+obploZBpmfWpwcB5wb2p9ZBtkaZmnbx9u\
+p32tsxq0mKymph6mpqyYshsO93b6F/l8Ffk9+1dYBmp0iIV/H36FgoKFfgiFfohyZhr8SfthB1bv\
+TGJKbEh2GXZIRYFCG/sT+wiqySIfIsk54k73AwhO9wNs9xH3Hhr3Han3Dsj3AB7H9wDf4PcBygjJ\
+9wD3Car3ExvIyYN8yB/Ie792tnGwyRj3IAb3Evxi+0xPTPBa0GewGWawYqdcoAigXF2VXhtMUHlm\
+VB9UZl9Wa0UIa0R7Nica+wKdLK46Hq46uFDEZAhkxMl3zxu7uZWeth+2nqihm6MIm6OTq7Qavgeu\
+iaKGlB6EmIGVf5EIkX5zjmcbPAb3v/rMFTz7G/u59wH7ufsBPPcb+Aj3dQUO+eP6QBWuva+vrqAI\
+oK6xlbIbsqqAdKIfonSWbWcaaoBwdnYedXVwgGsbaoxpjAV5eYR+eR+wTp1RVBpQeVJnVB5mVFlg\
+S2wIbEo+fDEbcXGNjnEfcI5xj3CReYB9gIKACIKAhoGCGnagfraFHvgyUPcPeuRqwloZwlqmUEca\
+T3ZTYlkeYlhHYS5qCGot+wp7+yMb+xEjl6Q5HzmjUalpsQhosHqurBqxmK2lqh6kqcCu27JanWah\
+cqUIaq56rrAas5uyqrIeqrK5scmxaKBwo3ikd6R7qX+vCH6vhbCxGu+04N3RHtHc9wCu9xkbxsKE\
+frwfvH22drJwCPuw+wEVYGh7bHAfb2x9YFYaWphjpm4ebqatfLUbtK6aqqcfpqmZsrsawH62caoe\
+qnBpmmIb+yX+ExVocHR2gn0IgXyGe3oaaqZywHkeeMDQgt4byMCQlrofupaqmJqaCJWVkJmcGp6B\
+m3eZHneYW5Y+lAj3ohwFWRU8+xv7ufcB+7n7ATz3G/gI93UFDvd2+hf5fBX5PftXWAZqdIiFfx9+\
+hYKChX4IhX6IcmYa/En7YQdW70xiSmxIdhl2SEWBQhv7E/sIqskiHyLJOeJO9wMITvcDbPcR9x4a\
+9x2p9w7I9wAex/cA3+D3AcoIyfcA9wmq9xMbyMmDfMgfyHu/drZxsMkY9yAG9xL8YvtMT0zwWtBn\
+sBlmsGKnXKAIoFxdlV4bTFB5ZlQfVGZfVmtFCGtEezYnGvsCnSyuOh6uOrhQxGQIZMTJd88bu7mV\
+nrYftp6ooZujCJujk6u0Gr4HromihpQehJiBlX+RCJF+c45nGzwGPxwE1RWyrnxuqB+obploZBpm\
+fWpwcB5wb2p9ZBtkaZmnbx9up32tsxq0mKymph6mpqyYshsO+eP6QBWuva+vrqAIoK6xlbIbsqqA\
+dKIfonSWbWcaaoBwdnYedXVwgGsbaoxpjAV5eYR+eR+wTp1RVBpQeVJnVB5mVFlgS2wIbEo+fDEb\
+cXGNjnEfcI5xj3CReYB9gIKACIKAhoGCGnagfraFHvgyUPcPeuRqwloZwlqmUEcaT3ZTYlkeYlhH\
+YS5qCGot+wp7+yMb+xEjl6Q5HzmjUalpsQhosHqurBqxmK2lqh6kqcCu27JanWahcqUIaq56rrAa\
+s5uyqrIeqrK5scmxaKBwo3ikd6R7qX+vCH6vhbCxGu+04N3RHtHc9wCu9xkbxsKEfrwfvH22drJw\
+CPuw+wEVYGh7bHAfb2x9YFYaWphjpm4ebqatfLUbtK6aqqcfpqmZsrsawH62caoeqnBpmmIb+yX+\
+ExVocHR2gn0IgXyGe3oaaqZywHkeeMDQgt4byMCQlrofupaqmJqaCJWVkJmcGp6Bm3eZHneYW5Y+\
+lAj7FhwF9hWyrnxuqB+obploZBpmfWpwcB5wb2p9ZBtkaZmnbx9up32tsxq0mKymph6mpqyYshsO\
+93b6F/l8Ffk9+1dYBmp0iIV/H36FgoKFfgiFfohyZhr8SfthB1bvTGJKbEh2GXZIRYFCG/sT+wiq\
+ySIfIsk54k73AwhO9wNs9xH3Hhr3Han3Dsj3AB7H9wDf4PcBygjJ9wD3Car3ExvIyYN8yB/Ie792\
+tnGwyRj3IAb3Evxi+0xPTPBa0GewGWawYqdcoAigXF2VXhtMUHlmVB9UZl9Wa0UIa0R7Nica+wKd\
+LK46Hq46uFDEZAhkxMl3zxu7uZWeth+2nqihm6MIm6OTq7QavgeuiaKGlB6EmIGVf5EIkX5zjmcb\
+PAZR/LkVMAeOqKKNmxu9tH1uqx+rbptnXhpUdVxgZR5lYFB4QRtMWZekaB9npHmnqxqhkZyYmB6X\
+mJyRohuen4N6oR+cfZmClocIhpWWiZYbn5qQlpUfmZqSnJ0aooGfd5semnZtk2Mbd3KKiW4fnvcy\
+BQ754/pAFa69r6+uoAigrrGVshuyqoB0oh+idJZtZxpqgHB2dh51dXCAaxtqjGmMBXl5hH55H7BO\
+nVFUGlB5UmdUHmZUWWBLbAhsSj58MRtxcY2OcR9wjnGPcJF5gH2AgoAIgoCGgYIadqB+toUe+DJQ\
+9w965GrCWhnCWqZQRxpPdlNiWR5iWEdhLmoIai37Cnv7Ixv7ESOXpDkfOaNRqWmxCGiweq6sGrGY\
+raWqHqSpwK7bslqdZqFypQhqrnqusBqzm7Kqsh6qsrmxybFooHCjeKR3pHupf68Ifq+FsLEa77Tg\
+3dEe0dz3AK73GRvGwoR+vB+8fbZ2snAI+7D7ARVgaHtscB9vbH1gVhpamGOmbh5upq18tRu0rpqq\
+px+mqZmyuxrAfrZxqh6qcGmaYhv7Jf4TFWhwdHaCfQiBfIZ7ehpqpnLAeR54wNCC3hvIwJCWuh+6\
+lqqYmpoIlZWQmZwanoGbd5ked5hblj6UCCccBnkV0D1HWWVTg04ZmaCgkp8bpaGCeZ4fnnmUdXIa\
+bX9ycncednJtgWcbXWWaqmwfbKl7srsa5Mbh9wvfHg73yNQcBXMV+T37VUwGaHSIhH4ffoSCgYZ+\
+CIZ+iG5gGvuH+JD3mQeriaGHlh6Gm4KWfpEIkX5vjmAbVvdV+T/7VVIGZHKIhX4ffoSDgoZ/CIZ+\
+iG5dGv2IB1yObZJ+HpF9lYGYhgiFmKiIuhuz+1X9P/dVuAa1qI6Smh+akpWUkZgIkJiOqLoa97v8\
+kPu7B1yNbo+AHpJ6lYCZhgiGmaeIthu6+1X9PfdVuQaypo6Smh+akpaUkZcIkJeOpbQa+YoHuoiq\
+hpoehZmClX+SCJJ/dI5oG00GHARy+D8VPPsb+7n3Afu5+wE89xv4CPd1BQ6h+L0cBbwV/L8HzbPF\
+p76cCJu+vJO6G8rEfnC9H7xwsGmiYgiiYpdVRxr8NQdijXOOgh6QfpWCmoUIiJSiibIbuvtV/OD3\
+VakGqJ6OkJYflpCSk4+VCI+UjaOwGvftB7iIqoaaHoWagZd8lQiUfHmQdRtsaoV+aR9ofmF0WmkI\
+/CIHZY1zj4Iej4KTg5aGCIaWoYiqG6H7Vfza91XDBqygjZCUH5SPkZKQlgiQlY2fqhr6Hvsm91YH\
+wo7KldCb0JrJnsKhCPk492YVPPsb+7n3Afu5+wE89xv4CPd1BQ73yPjd+uAV+JAGt4Snfpcel31r\
+kVgbVvdV+T/7VVIGVmyEfYAfgHyGcGQa9zD7JPsw/Q8GUZJnmX4efZivhMUbs/tV/T/3VbgGw66T\
+mpkfmJqSrsIa97v8kPu7B1GSZ5h+Hn2YrYTCG7r7Vf0991W5BsKtk5qYH5iakaq7Gvka+y/3JPcv\
+B4m2hKZ+mAiYfnCRYBtN91X5PftVTAZhb4R+fR99foRvimII+yQE+w74kPcOBw6h+LwcBLAV97kh\
++7n7SQbU9wn3AK/sG9rTc1vNH8xbrD0gGvw1B1qRbZaAHoCWqIW7G7r7Vfzg91WpBrKjkZeUH5SW\
+kKe3GvftB7+FsH6gHqB+cpZmG0hBbVA5H/wiB16Qb5WAHoCVpYW1G6H7VfzZ91XDBrKkkJWWH5WV\
+kKSzGvm/+yb19ybV+yb3AQf3EpP3EKf3D7sI6AYO/LzRHAVzFfk8+1VNBmdziIWAH3+EgoGGfgiF\
+fYhxZBr9mAdhjXCQfx6Qf5OCloYIg5mgh6cb1ftV/Tz3VcIGsqWOkZcfl5CUlJGYCJCXjqOwGvmb\
+B7aIqIaZHoWYgZZ+kgiQgnSOZxtNBvjq+N8V8lh/UGlXVF0ZZVxSeEYbWkiYpTQflmdzkIAbgoOJ\
+iIQfhId+gXl6+wXKGJ7Brbm9sQiwvb6ewBuenoqInB+ciKmDtX8IeMu4gqUbl5aNj5QflI6XlJuZ\
+CA79Dvi2+pIV/XcHaI11j4Mej4OShZaHCIaVoomvG8H7Vfz+91XABq6hjY+VH5SOkpGQlAiQlI2c\
+pRr4cfso91AHwI69kLyUu5S2lbGXpJOpmK+eCPcZ+CsV8lh/UGlXVF0ZZVxSeEYbWkiYpTQflmdz\
+kIAbgoOJiIQfhId+gXl6+wXKGJ7Brbm9sQiwvb6ewBuenoqInB+ciKmDtX8IeMu4gqUbl5aNj5Qf\
+lI6XlJuZCA78vNEcBXMV+Tz7VU0GZ3OIhYAff4SCgYZ+CIV9iHFkGv2YB2GNcJB/HpB/k4KWhgiD\
+maCHpxvV+1X9PPdVwgaypY6Rlx+XkJSUkZgIkJeOo7Aa+ZsHtoiohpkehZiBln6SCJCCdI5nG00G\
++Sr4pBX7SP0Z90gHDv0O+Lb6khX9dwdojXWPgx6Pg5KFlocIhpWiia8bwftV/P73VcAGrqGNj5Uf\
+lI6SkZCUCJCUjZylGvhx+yj3UAfAjr2QvJS7lLaVsZekk6mYr54I93738BX7SP0Z90gHDvy80RwF\
+cxX5PPtVTQZnc4iFgB9/hIKBhn4IhX2IcWQa/ZgHYY1wkH8ekH+TgpaGCIOZoIenG9X7Vf0891XC\
+BrKljpGXH5eQlJSRmAiQl46jsBr5mwe2iKiGmR6FmIGWfpIIkIJ0jmcbTQb47vkZFfcAVm41WkVF\
+VBlURUJwPhv7LvsR7fdXLB/zwK5jtWy6dhl1uruAvhvs4bXe2B8O/Q74tvqSFf13B2iNdY+DHo+D\
+koWWhwiGlaKJrxvB+1X8/vdVwAauoY2PlR+UjpKRkJQIkJSNnKUa+HH7KPdQB8COvZC8lLuUtpWx\
+l6STqZivngj3HfhlFfcAVm41WkVFVBlURUJwPhv7LvsR7fdXLB/zwK5jtWy6dhl1uruAvhvs4bXe\
+2B8O/LzRHAVzFfk8+1VNBmdziIWAH3+EgoGGfgiFfYhxZBr9mAdhjXCQfx6Qf5OCloYIg5mgh6cb\
+1ftV/Tz3VcIGsqWOkZcfl5CUlJGYCJCXjqOwGvmbB7aIqIaZHoWYgZZ+kgiQgnSOZxtNBvehHPtO\
+FfcjBl5ldWJgGnaRe5aAHn+Wm4WfG5uajpCaH5mQn5iknq1NGHZib2xmdAh0ZmOAXxtbZZmobh9u\
+p32xuhrMqMbEwR4O/Q74FBwFvBW+tnlorx+uZ51gWBpYeV9oaB5nZ2B5WBtYYJ2vaB9nrnm2vhq9\
+nbawsB6vsLWdvBv3NvxSFf13B2iNdY+DHo+DkoWWhwiGlaKJrxvB+1X8/vdVwAauoY2PlR+UjpKR\
+kJQIkJSNnKUa+HH7KPdQB8COvZC8lLuUtpWxl6STqZivngj7HP6SFfcjBl5ldWJgGnaRe5aAHn+W\
+m4WfG5uajpCaH5mQn5iknq1NGHZib2xmdAh0ZmOAXxtbZZmobh9up32xuhrMqMbEwR4OT/jdHAVz\
+Ffk7+1VSBmRyiIV/H3+EgoGGfgiGfohsXBr8wwc0hkuCYx5+Um1SW1NbU05gQGwIbEAxfCMb+wMs\
+nrE9HzyxTr9ezgheznXP0hrMnsCxtB60sbqgwxutqIV+ox+ifp53mnEImXCSb20aSgdmlGicah6Y\
+cqB3qHwIfKirg7Abu7SZp6wfrKehsJa5CJKmjsLfGvjXB6iKnoiUHoacgpd+kgiSfnSOaxtIBvjn\
++D8VPPsb+7n3Afu5+wE89xv4CPd1BQ79N/kaHAT1FTz7G/u59wH7ufsBPPcb+Aj3dQX3p/xsFf69\
+BzB/QnJUHnJTXFxEZghmRDh4LBsmPKC1VB9UtG+8wxqwmqqopR6lqKyYrxu9wWpIxB90n51/nBu6\
+o7TeH/n7+yf3VQf3HIz3EKj3A8IIDvef1xwFcxX5PPtVXgZgcImGgR97hICAhH4IhH6HcmYa/AcH\
++Ef4J56dl5ePkhmPkY2QkBqUh5KEkB6Qg3eNbBtT91X5C/tVdgZudoqIgB+AiH2Ee4F6gXZ7cXT7\
+5fu4GPgm/LOuXKRwm4IZf6CqhbMbpvtV/VT3VacGvquNkJYflpCQkZIak4Gedqke+4n38fto+0kF\
++yEHaI5zkn4ekn6UgZiGCIWXpIiwG8T7Vf0891W+BrKmjpKYH5iRlZWRmQiQlo6nthr5jge0iKeF\
+mR6FmYGWfpIIkn5zjmgbUgb43Bz6+hWTxb2PtRv3JdRU+wJRdVtfZh9mXlR4SRtaYJaiZh9loXip\
+sRq4n6K0nZ+DeqEedKiigJwbnJmSmpYflpmQmZoaumaiQm5nh4RgHg54+L0cBbwV/hkH91T3N6Cc\
+l5ePkBmOkI2PkBqTh5KCkB6QgneNbhtl91X49/tVBl9tiIV7H3aCaHVaaPtW+yIY96j71adqonad\
+hBmcg66Hv4oI+1X8//dVrQekm42Qkx+TkI+RkhqUgJ52px77B/co+xEtBVUHco16j4Iej4KSg5WG\
+CIaUmoigG677VfzS91UGjJ+ai5YbsKOOkJYflpCSk5CXCI6Ujai8GvoA+yb3Vwf3BZD3EKf3Gb0I\
+xxz58BWTxb2PtRv3JdRU+wJRdVtfZh9mXlR4SRtaYJaiZh9loXipsRq4n6K0nZ+DeqEedKiigJwb\
+nJmSmpYflpmQmZoaumaiQm5nh4RgHg5/+MT6khX8Wwf3VPc3BaejmZuTGp1zlFweZfdV+Pf7VQZg\
+im2IeYV4hWl1WGb7VvsiGPeo+9WoaaN2nYQZg5yth74b+1X8//dVrQe0n5OblYCedqcf+wf3KPsR\
+LQVVB2+OeJKBHpGAk4WUiZSIpIqzigj7VfzS91UHjKCai5UbuqeRlpUflZaQrsQa+EL7JvdVB/cD\
+j/cQp/cbwAgOT90cBXMV+T77VU8GanaJiIIfe4R/gYR+CIR9h3VtGv2xB2uNd46EHo6EkYWUhwiG\
+lJ2Jphvk05eiwh/Boryxt7+2vrHRquT3TEwY+0z8mAX+vfdVzgamoI+SmR+ZkpWVkpgIkZeOoKoa\
++aoHrIijhZoehJqClYCSCJJ/d45wG0EG+DIc+voVk8W9j7Ub9yXUVPsCUXVbX2YfZl5UeEkbWmCW\
+omYfZaF4qbEauJ+itJ2fg3qhHnSoooCcG5yZkpqWH5aZkJmaGrpmokJuZ4eEYB4O/Tf4oBwFvBUc\
++24HZI1zjoQekH6VgZuFCIeVpom3G677Vfz/91WxBrOljpCWH5aQlJOQlgiQlo6jsRr6EPso91YH\
+9wuT9xCn9xO7CPuDHPnwFZPFvY+1G/cl1FT7AlF1W19mH2ZeVHhJG1pglqJmH2WheKmxGriforSd\
+n4N6oR50qKKAnBucmZKalh+WmZCZmhq6ZqJCbmeHhGAeDvck2RwFcxX4ywb4Lf3CBfiGB7aJpYaW\
+HoSbgpaAkgiRgHWOahtH91X41PtVSwZrdIeEfh99hIGBhn4Ihn6IcGEa/sv7swf8mvqYBf1jB2KO\
+cJCAHpCAlIKYhAiEmKGIqxvO+1X81/dVxwasoo6RmB+XkJWVkpkIkpmPoKca+bQHqoihhJoehJmC\
+lYCSCJGAeI5wG0AG+Jwc+voVk8W9j7Ub9yXUVPsCUXVbX2YfZl5UeEkbWmCWomYfZaF4qbEauJ+i\
+tJ2fg3qhHnSoooCcG5yZkpqWH5aZkJmaGrpmokJuZ4eEYB4Oofid+pIV+xkH1r7MrsGeCJ7AwpTD\
+G8zEfXC9H7xwr2miYgiiYpZQQBr8NAdojnSQgR6QgZKEloYIiJOjibMbvPtV/N/3VQa4jKSMkIyc\
+kJaSkJYIkJaOoq4a+AMHuoaqgZkeontyl2gbbm2Ffmofan5fcVRkCPwhB2CQcJSBHoGUooauG6v7\
+VfzZ91WoBrmojY+WH5aPk5KRlQiQlY6fqBr4Zvso91UH9wya9wSn9LQI9wH+5hWTxb2PtRv3JdRU\
++wJRdVtfZh9mXlR4SRtaYJaiZh9loXipsRq4n6K0nZ+DeqEedKiigJwbnJmSmpYflpmQmZoaumai\
+Qm5nh4RgHg734vje+hUV/NQHUJBnln4efpWmhLgbovtV/Q33VbkGwq2TmpgfmJqRqrsa+YoHx4Ww\
+f5kemH5ukl4bTfdY+JT7WAb3J/cK9yvU90wb9z73Ikn7GPcFH/cF+xjE+0n7eRr7c137QTD7Dx77\
+Dy/7C077Jxv7CCyx10IfQddm5PAaxJm7p7Eesaeznr4bt619b6Mfo2+XamUafYh2hm8ehW6IdXoa\
+a5NxmnYedpqegKMbuK6x16Mfo9aX9fccGvgVJfdV+2H7JPsKLPtSLx4ObhwEq/lUFf1/BzB/QnJU\
+HnJTW1xEZghmRDh4LBsmPaC1VB9UtG+8wxqwmqqopR6lqKyYrxu9wWpIxB90n51/nBu6orTeH/mi\
+B7qErH6eHp5+c5RpG0tAa0o0H/whB1yPb5SDHoOUrIfFG/tV/Nn3VagHwK2QlJgfmJSRo7Ia+GX7\
+KPdVB/cPmfcEp/G2COj7GQbk9xH3DLf3BhvVyntqvh++aq1mnGMInGKTVkoaDvef+c0cBYsV93H3\
+SEj7G/cdH/cd+xvP+0H7Zxr7Imz7Ekz7Ah5M+wI1NvsCUAhP+wP7GW37MBv7Yvs9xPcF+xcf+zP3\
+HTz3Svd5Gvdp0fdC9x/3Gx73G/cf90nP93Ubj/tyFSE3YzxMHzwnZPsV+zIa+zKw+xHULx48yt9k\
+8xv03rLayh/V6bD3EvcxGvcDe+hs1h5r1mDEVbAIsFVQnkwb9834qRX7SP0Z90gHDib5DPqSFfcG\
+7nVe4B/gXsxPuT4IuD6iMCQa+zBY+xMmKh4qJvscWvs9G/tB+x287SUfKOha9xP3Mxr0ouW41h64\
+1szI4LkIuODtovcCG4/7bxVlZ4B0ah9qdHFqeV8IeF+CU0caRZRRnV0enV2kaat1CHWqroCxG8a9\
+pL21H7W8oNj0GvB42GS+Hr5kWaROG/fV+MsV+0j9GfdIBw73n/nNHAWLFfdx90hI+xv3HR/3Hfsb\
+z/tB+2ca+yJs+xJM+wIeTPsCNTb7AlAIT/sD+xlt+zAb+2L7PcT3BfsXH/sz9x0890r3eRr3adH3\
+Qvcf9xse9xv3H/dJz/d1G4/7chUhN2M8TB88J2T7FfsyGvsysPsR1C8ePMrfZPMb9N6y2sof1emw\
+9xL3MRr3A3vobNYea9ZgxFWwCLBVUJ5MG/eR+R4V9wBWbjVaRUVUGVRFQnA+G/su+xHt91csH/PA\
+rmO1bLp2GXW6u4C+G+zhtd7YHw4m+Qz6khX3Bu51XuAf4F7MT7k+CLg+ojAkGvswWPsTJioeKib7\
+HFr7PRv7QfsdvO0lHyjoWvcT9zMa9KLluNYeuNbMyOC5CLjg7aL3AhuP+28VZWeAdGofanRxanlf\
+CHhfglNHGkWUUZ1dHp1dpGmrdQh1qq6AsRvGvaS9tR+1vKDY9BrweNhkvh6+ZFmkThv3mvlAFfcA\
+Vm41WkVFVBlURUJwPhv7LvsR7fdXLB/zwK5jtWy6dhl1uruAvhvs4bXe2B8O93bVHAVzFfnwBsLI\
+hoHNH8yBx3XAacBptGCoVwioV5pQShohZTVASh4/STFgJHf3s/viGJd8nnSce5qAGZqAm4OahgiG\
+mqGJphvH+1X8Uwb8VPjtBfsI+6oGW45tkH4ekH6UgZeFCISWo4iuG8v7Vf0+91XJBqyij5KZH5iS\
+lZWSmQiOk42ktRr5pQeqiaGGmB6GmIKTgI8Iknt5j3Ybb4oFVwb4lm0V+/33YwfcyJOatB+zmqmg\
+oKcIn6eVrbMasIKqeKYeeKVwnmiYCJhoUZE8G/tHHPseFZPFvY+1G/cl1FT7AlF1W19mH2ZeVHhJ\
+G1pglqJmH2WheKmxGriforSdn4N6oR50qKKAnBucmZKalh+WmZCZmhq6ZqJCbmeHhGAeDvxB+Jz6\
+khX7JQfAw7qxsqAIn7Kwla8brKiEfKUfpHygdZpvCJpvkm1rGmF9ZXBpHmlvZHpZG35/jI2BH4CN\
+dZJqlgiQenyOgBt6boB1Yx/8GwdqjnWQgR6QgZOEloYIhpakibEbt/tV/P33Vb4GsKKNj5QflI+R\
+kpCVCJCVjaGuGvhf+yf3VAf3AZL3Baf3CbwI+wb+5hWTxb2PtRv3JdRU+wJRdVtfZh9mXlR4SRta\
+YJaiZh9loXipsRq4n6K0nZ+DeqEedKiigJwbnJmSmpYflpmQmZoaumaiQm5nh4RgHg54+v0cBXMV\
+9wz8aPtOVk33A0XdPL8Zvjw4pTIbUl5/dGofanR6cW4aapptqW8eqG/Bctp196A9GPcpYPVTykQI\
+ykSqOCwa+w1bJSs4Hi8g+xpd+zMbQUeUn00fTZ5Kqki4XycY+ykGKPix90+4t/sC0C/oQhlB6PFm\
+9wMbvbWRmKwfrJijnJyiCJyik6KjGrN4rWSoHmSoRqcpp/t9zxholVueT6dOpl2oa6lqqXCydroI\
+drqAvL8a1aDPtMoetMnIvd6yCLLd5p7vG/cN9wFsTOwfstEF0/d+FTz7G/u59wH7ufsBPPcb+Aj3\
+dQUO+8b5h/p6FfcXBtz7qvtRP2fFXrlVrBmsVFWbVhtocIV/eh96f4J9ehp9kX6Yfx6Xf6R+sn73\
+pykYvHq5dbhxuHGsa6JmCKFlll9YGjBoQUZRHkc6JWn7DRsjMKXAPh9vVAX7GQb7D/fc91HbukHG\
+UdBhGWDQy3bFG6+pk5ykH56YlJudGpqEmnyZHnyZa5tZnPts1hj7C7U6uGC7CGC6dcTMGt+t0s7E\
+HszY6az3BRvv4XRe0h/3SffPFTz7G/u59wH7ufsBPPcb+Aj3dQUOyvoN+ZUV+A/7JfwP+7wGTJFk\
+mH4efpiuhMUbtftV/Tz3VbQGwq6SmZofmZiSr8Ua98P8EPcl+BD4CAehiZmGkh6ShoCOeBtgWndi\
+VB9UYlM5UvsO+0vMGPdA+H0F9xgGmVwF+acGnLoF9xkG90H8fftOSgX3YCwi8fsGG3p/h4OGH4aC\
+iHpxGg78Qfii+PQV99b7IvvWbgZDjluScx6Scpx3p3oIeqatgrIb0M+huM8f+2oHWiYmciQbMEGa\
+qVEfUahir3S0CHO0f8XWGvcx+yr3Ivcq90X7KvdUB/c3vuf3DqD3Uwj3Vfvr99b7afvWBg73JbAc\
+BXMV+T37VUgGbHaHhH4ffoSBgIV+CIV9iG9hGvyQByyVRZ5cHp5cp2iycwhysbl/whvCu5imth+2\
+pqmtnrQInbSUzuoa+MQHooichZUeg5iAlX6QCI+Cc41lG1X3VfjV+1VeBl5wiIaAH3uDf3+EfAiG\
+gYhvXhr8ugcmfDZuRh5iLktCMlgIVzIhcfsOGzU+mKZHH0elULFYvFi8Z753wgh2woHb9hr4rwe8\
+iKuGmh6GmYKVf5IIkn90jmgbSwb6Z/jfFfJYf1BpV1RdGWVcUnhGG1pImKU0H5Znc5CAG4KDiYiE\
+H4SHfoF5evsFyhiewa25vbEIsL2+nsAbnp6KiJwfnIipg7V/CHjLuIKlG5eWjY+UH5SOl5SbmQgO\
+eMD6ehX4Z5QF/R0HXY5skXwekHyWfpqCCIGanYaiG6yvk5uwH5qSsqLKtAj4GgetiKKGmB6GmIOU\
+gZEIkIF4jm4bUfdVBvholAX9YAdmjXOQgh6PgZKElYcIhpSiibAbwPtVBvxLfwX3CgdQYFBqUHYI\
+dVBPgE8bW1+Tm2MfYpppoHCmcKV2qn6uCH6uhLnCGvgwB7GJo4eVHoaVhJOBkAiQgXaNahtUBvoL\
++QQV8lh/UGlXVF0ZZVxSeEYbWkiYpTQflmdzkIAbgoOJiIQfhId+gXl6+wXKGJ7Brbm9sQiwvb6e\
+wBuenoqInB+ciKmDtX8IeMu4gqUbl5aNj5QflI6XlJuZCA73JbAcBXMV+T37VUgGbHaHhH4ffoSB\
+gIV+CIV9iG9hGvyQByyVRZ5cHp5cp2iycwhysbl/whvCu5imth+2pqmtnrQInbSUzuoa+MQHooic\
+hZUeg5iAlX6QCI+Cc41lG1X3VfjV+1VeBl5wiIaAH3uDf3+EfAiGgYhvXhr8ugcmfDZuRh5iLktC\
+MlgIVzIhcfsOGzU+mKZHH0elULFYvFi8Z753wgh2woHb9hr4rwe8iKuGmh6GmYKVf5IIkn90jmgb\
+Swb6p/ikFftI/Rn3SAcOeMD6ehX4Z5QF/R0HXY5skXwekHyWfpqCCIGanYaiG6yvk5uwH5qSsqLK\
+tAj4GgetiKKGmB6GmIOUgZEIkIF4jm4bUfdVBvholAX9YAdmjXOQgh6PgZKElYcIhpSiibAbwPtV\
+BvxLfwX3CgdQYFBqUHYIdVBPgE8bW1+Tm2MfYpppoHCmcKV2qn6uCH6uhLnCGvgwB7GJo4eVHoaV\
+hJOBkAiQgXaNahtUBvpL+MkV+0j9GfdIBw73JbAcBXMV+T37VUgGbHaHhH4ffoSBgIV+CIV9iG9h\
+GvyQByyVRZ5cHp5cp2iycwhysbl/whvCu5imth+2pqmtnrQInbSUzuoa+MQHooichZUeg5iAlX6Q\
+CI+Cc41lG1X3VfjV+1VeBl5wiIaAH3uDf3+EfAiGgYhvXhr8ugcmfDZuRh5iLktCMlgIVzIhcfsO\
+GzU+mKZHH0elULFYvFi8Z753wgh2woHb9hr4rwe8iKuGmh6GmYKVf5IIkn90jmgbSwb6a/kZFfcA\
+Vm41WkVFVBlURUJwPhv7LvsR7fdXLB/zwK5jtWy6dhl1uruAvhvs4bXe2B8OeMD6ehX4Z5QF/R0H\
+XY5skXwekHyWfpqCCIGanYaiG6yvk5uwH5qSsqLKtAj4GgetiKKGmB6GmIOUgZEIkIF4jm4bUfdV\
+BvholAX9YAdmjXOQgh6PgZKElYcIhpSiibAbwPtVBvxLfwX3CgdQYFBqUHYIdVBPgE8bW1+Tm2Mf\
+YpppoHCmcKV2qn6uCH6uhLnCGvgwB7GJo4eVHoaVhJOBkAiQgXaNahtUBvoP+T4V9wBWbjVaRUVU\
+GVRFQnA+G/su+xHt91csH/PArmO1bLp2GXW6u4C+G+zhtd7YHw73JbAcBXMV+T37VUgGbHaHhH4f\
+foSBgIV+CIV9iG9hGvyQByyVRZ5cHp5cp2iycwhysbl/whvCu5imth+2pqmtnrQInbSUzuoa+MQH\
+ooichZUeg5iAlX6QCI+Cc41lG1X3VfjV+1VeBl5wiIaAH3uDf3+EfAiGgYhvXhr8ugcmfDZuRh5i\
+LktCMlgIVzIhcfsOGzU+mKZHH0elULFYvFi8Z753wgh2woHb9hr4rwe8iKuGmh6GmYKVf5IIkn90\
+jmgbSwb5Thz7ThX3IwZeZXViYBp2kXuWgB5/lpuFnxubmo6Qmh+ZkJ+YpJ6tTRh2Ym9sZnQIdGZj\
+gF8bW2WZqG4fbqd9sboazKjGxMEeDnjA+noV+GeUBf0dB12ObJF8HpB8ln6aggiBmp2Gohusr5Ob\
+sB+akrKiyrQI+BoHrYiihpgehpiDlIGRCJCBeI5uG1H3VQb4aJQF/WAHZo1zkIIej4GShJWHCIaU\
+oomwG8D7VQb8S38F9woHUGBQalB2CHVQT4BPG1tfk5tjH2KaaaBwpnCldqp+rgh+roS5whr4MAex\
+iaOHlR6GlYSTgZAIkIF2jWobVAb6Tv25FfcjBl5ldWJgGnaRe5aAHn+Wm4WfG5uajpCaH5mQn5ik\
+nq1NGHZib2xmdAh0ZmOAXxtbZZmobh9up32xuhrMqMbEwR4O+L6bHAVzFfj6+1UGZHKKiIIfgYiD\
+hoSCCISCh4CAGoGPdZRqHvdP/Wj3N/iXS/dliZCIk4iXGYKsfqJ6mXqYcpNqjAj3Vfjb+1VcB2l1\
+h4OBH32AhHx6Gn6QcpVkHvc5/Rf3PvkXBZi6kaaUGpuFl3+UHpN/dI9qG1j3Vfim+1UGZXCHhHsf\
+eoN+f4B7gHt9aXxY+8n+shj7wgb7NvjD+0L8wwX7zgb7zPrCfrp/qYGZGYGYfZZ6knmScI9miggc\
+BSb4PxU8+xv7ufcB+7n7ATz3G/gI93UFDvegm/p6Ffil+1V1BnJ6iIaEH4KEhoKAGoGOfZF4Hvcg\
+/ET3Dffla+qCp3+ffpYZfZZ3knCMCPdV+Iv7VWIHdHyIhIIfgoSHgn4af496k3Qe9w37+/cO9/sF\
+k6KPnZcamIaUgpIekYF3jmwbdPdV+FX7VQZrdomHgR+Bh4KFhIKCfoB1gGz7of1eGPudBvsp+Cf7\
+LPwnBfufBvub+V6CpH+gfpwZg5aDk4KOgo52jWqMCBwEmPhkFTz7G/u59wH7ufsBPPcb+Aj3dQUO\
+yowcBXMV+Un7VVcGZnSIhoIfgoWGgn4aepZxoGge90v7w/dg99CdppWbjY4ZjpKMk5IaloeUhJAe\
+kIN5jm8bRPdV+MD7VQZaimmGeIB3gHNycGL8CPyyGPuNB1+Ob5F+HpB+lYGZhQiEmKaIsxu8+1X9\
+PPdVsAa7qo6SmB+YkZaWkpoIkpqOqbga924H/Af4yW63cad1lhmSe2uPXBv61Pg/FTz7G/u59wH7\
+ufsBPPcb+Aj3dQUOJpv6ehX5BPtVYgZmc4mGgh+BhoaDghqDknaZaR73Kvv99zH3/QWXppGflxqW\
+hpOBkR6QgXSOZxtS91X4r/tVBlyKb4qDiICIgYaEhISEf3Z6avxY/jMYXCpXSFNkCGRSSHg9Gz9O\
+n7RcH1yzc7i+GrOZraepHqinrZmyG6alhH6kH5yCnH2cdpZ+k4KSiAiHkZGJkRuZmZKYmB+foKKw\
+pMKx3Rj76Pldeq9/ooKUGYKUgJKAjgiOgG6NXhv6dfhkFTz7G/u59wH7ufsBPPcb+Aj3dQUO/U/5\
+FfdVFftV/P73VbwHuqeQlpUflJWQqLwa+bkH1JnJqL4ep727tdCuCK7P3JzpG+/ZdmHEH8Rhp1xY\
+GmR+anJxHnByaX5gG25zkZd3H3eWc6BwqQiuanOdehtac1ciH/25B12QbpaAHn+VpYW1Gw7z+Nsc\
+BXMV980G+Df+yaJSn2edfhmcfqyEuowI+1X9KPdVB7OMBbCkkJWaH5qUkpeZGpeFpH6wHmL3EwX8\
+PQZX+yEFgG2Gd4IagI+Ck4IekoKYhZyHCIiWq4q+G/tV/LD3VQeupI6Rmx+bkZiUlpeVl5ahmKwI\
++Bj38BX3qwb7HPgUBfec+JkVUndbYmMeYmJZd1AbUVmftGIfYrR2vMQaxKC8tLQetLS9n8Ubxr13\
+YrQftGKfWVEa+6+PFXWSeZl8HnyZnISeG56ckpqZH5makpygGqCEnH2aHpp9epJ4G3d6hH1+H318\
+hHp3GvsT95UVY/D3a/dUBcLJxKa/G7OtfW6nH6dumWhgGmx/bHNuHnNuYXVOfggO+T348RXVB7eH\
+qYScHoScfZl4lgiWeHOQbht1d4eEeR95hH2BgICAgH91fWp5YnZtcnkIeXJtgmkbYGiYpnAfcKZ9\
+rLIauJmyp64esLnDsdWoCKjV3proG+jafG3MH8xtuGelYgikYZhLNhr7+gdfjW+Qfx6QfpWAmoII\
+gpqchp4bnqSQlqof+1cHeVJVglcbTlaVn2AfYJ9mqW6zSGBPbFV5CHhUV4JYGyw+psFQH1DAbs3a\
+GriVtKCwHp+wqay0p7OnyaTgod+g8Zv3DZQI+zoENH5Nf2d+Z35xenx4CHx3g3d2GnCVdZ95Hnmf\
+poKtG6GlkZaoH6iWq5yvoQj3EvrhFVJ3W2JjHmJiWXdQG1FZn7RiH2K0drzEGsSgvLS0HrS0vZ/F\
+G8a9d2K0H7Rin1lRGvuvjxV1knmZfB58mZyEnhuenJKamR+ZmpKcoBqghJx9mh6afXqSeBt3eoR9\
+fh99fIR6dxr7F/eVFWPw92v3VAXCycSmvxuzrX1upx+nbploYBpsf2xzbh5zbmF1Tn4IDvpY+DUc\
+BXMVHAaVBvcz/Ez7Skhl3WXIZbIZZbJgpVqZCJlaT5JDG/t1++/iBsGvj5OeH52TmJiUnAiUnI+s\
+vBq590j83/tIxweyh6iDnx6Cnn+YepIIknppjlYbLPvRBmqNdpCCHo+CkYSUiAiHlKKJsBv3DAb3\
+FPOnxNsf28PK5bj3EPdJTxj7SfyaBRz7NvdVrAa6qY6RmR+ZkZWVkpoIkpqOqLca93b8oAf7BfuO\
+BYF0hnl+GnmTfZqCHoWWooisG8n7Vfzc91UGrqaOkZwfnJCYk5SVmpuao5qr+BH5qhibrJOjmBqc\
+gpd5kh6RfnGOZBteBvku/FoV+Dr7iwf7UPw6Bfg/+XoVY/D3a/dUBcLJxKa/G7OtfW6nH6dumWhg\
+Gmx/bHNuHnNuYXVOfggO+EMcBrD4dxX9RnoGRKRPvVgeWL3HcdIbvsCZpsEfwaa/s73C9xv7HhhE\
+OkZPR2QIWDEpciAbOkeYpVIfUqVNvEfTMkc/XExyCHJMSH5FGyg7psFOH07Bbc3aGr6YuaSzHqSy\
+sa7AqMCo0KPhnsKX45j3D5kI0ge7gK51oh6idWuWYRtkbYN6dR90enZqeFx8ZXtye38Idm9qgWQb\
+YGeZp28fbqd9rLAat524r7gerrjAr9KnCKbR35nuG9bKg3u+H757unK0agjM4vSs9w8b9zX3DFop\
+3B/cKbP7CvseGvvT9xgVh7WCrHykfKN4nnKZCJlycJJtG1the2poH2dqdWCDVgj74ftgFfsYczh0\
+aXQIaHR6bmgabpZ0oHgeeKCngawbn6SQlqgfspqwnrCiCL359RVj8Pdr91QFwsnEpr8bs619bqcf\
+p26ZaGAabH9sc24ec25hdU5+CA73nxwFGhwE8xX3Mfcs8CP7LvspBfX7EcD7MftPGvsibPsSTPsB\
+Hkz7AjU2+wJQCE/7A/sZbfsvGygyl6Q8HzykQ7BKvvsw+yoYJvP3LfcnVsxj0nHXGXHWfuDpGvdp\
+0fdD9x/3Gx73G/cf90nP93Ub7ON/ctgf2HLUZc9XCPtt+2YVbbdlrlykCKRcWJdWGyQ4YzpMHz4n\
+ZPsU+zEaOJVDnk4e+S34TRX87PzYBS7M5F33BBv037LayR/W6bD3EvcxGt+B1njMHvyF+NEVY/D3\
+a/dUBcLJxKa/G7OtfW6nH6dumWhgGmx/bHNuHnNuYXVOfggOJvpu+i0V9wHw7iIkLAXQMq0h+xEa\
++zBY+xMmKh4qJvscWvs9G/sg+wqszSsfICgo9e/nBUjiavcB9xka86LluNYeuNbMyOC5CLjg7aL3\
+Ahv3H/cKaUjsH/th+1EVumVbo1IbZGeAdWofanRxanhfCHhfglNIGmyNbJBsHvgr90cV+/X72px1\
+oXqlfhl+paaFpxvEvKS8th+2vKDX9BqsiaqHqB78QPixFWPw92v3VAXCycSmvxuzrX1upx+nbplo\
+YBpsf2xzbh5zbmF1Tn4IDvvv+GIcBG0VTfdWBXnCgrSmGq6XqKSiHqKjrJa0G+q7ZD50g2F6Th9T\
++1gFDvvv+GIcBG0VTfdWBXnCgrSmGq6XqKSiHqKjrJa0G+q7ZD50gmF6Th9U+1gF+4n3DhVqf25z\
+cx5zc25/ahtqbpejcx9zo3+orBqsl6ijpB6joqiXrRutqH9zox+ic5duaRr4/hZqf25zcx5zc25/\
+ahtqbpejcx9zo3+orBqsl6ijpB6joqiXrRutqH9zox+icpduahoO90v5KxwFcxX3zQb4N/7JolKf\
+Z51+GZx+rIS6jAj7Vf0o91UHs4wFsKSQlZofmpSSl5kal4WkfrAeYvcTBfw9Blf7IQWAbYZ3ghqA\
+j4KTgh6SgpiFnIcIiJarir4b+1X8sPdVB66kjpGbH5uRmJSWl5WXlqGYrAj4GPfwFferBvsc+BQF\
+/PArFUb3bAV3yoG4qBq0maynox6jpq+XuBv1wGA1b4JceEofTftuBQ79N/fw+RsVWF+dsGcfZrB5\
+t74avp24sLAesLC3nb4bvrd5ZrAfr2adX1gaV3lfZ2YeZmZfeVcbDvf+9+QcBXMVHASMBvcz/E37\
+SUps02jFYrcZYrddqFqaCJlZUZJJG/tp+/DRBsCuj5OeH52SmJeTnAiTm4+rvBrA90b84vtGxwe0\
+hqiCnh6Bnn6XepIIknpmjlIbTPvUBmmNdo6EHo6EkoWVhwiHlKCJqxv3CQbi1Zikxx/HpMGzusO6\
+wq/NpNj3S0wY+0v8mgUc+0r3Va4GuqqOkpsfm5KWlpKcCI6Vjae6GvmMB7SIpoaYHoWYgpR/kgiR\
+f3OOaBtNBvux+6IVRvdsBXfKgbioGrSZrKejHqOmr5e4G/XAYDVvglx4Sh9N+24FDvjO9+McBXMV\
++T37VUwGaHSIhH4ffoSCgYZ+CIZ+iG5gGvuH+JD3mQeriaGHlh6Gm4KWfpEIkX5vjmAbVvdV+T/7\
+VVIGZHKIhX4ffoSDgoZ/CIZ+iG5dGv2IB1yObZJ+HpF9lYGYhgiFmKiIuhuz+1X9P/dVuAa1qI6S\
+mh+akpWUkZgIkJiOqLoa97v8kPu7B1yNbo+AHpJ6lYCZhgiGmaeIthu6+1X9PfdVuQaypo6Smh+a\
+kpaUkZcIkJeOpbQa+YoHuoiqhpoehZmClX+SCJJ/dI5oG00G+7D7ohVG92wFd8qBuKgatJmsp6Me\
+o6avl7gb9cBgNW+CXHhKH037bgUO+7L35BwFcxX5PPtVTQZnc4iFgB9/hIKBhn4IhX2IcWQa/ZgH\
+YY1wkH8ekH+TgpaGCIOZoIenG9X7Vf0891XCBrKljpGXH5eQlJSRmAiQl46jsBr5mwe2iKiGmR6F\
+mIGWfpIIkIJ0jmcbTQb7sfuiFUb3bAV3yoG4qBq0maynox6jpq+XuBv1wGA1b4JceEofTftuBQ74\
+R/p1HAWLFfdx90hI+xv3HR/3Hfsbz/tB+2ca+yJs+xJM+wIeTPsCNTb7AlAIT/sD+xlt+zAb+2L7\
+PcT3BfsXH/sz9x0890r3eRr3adH3Qvcf9xse9xv3H/dJz/d1G4/7chUhN2M8TB88J2T7FfsyGvsy\
+sPsR1C8ePMrfZPMb9N6y2sof1emw9xL3MRr3A3vobNYea9ZgxFWwCLBVUJ5MG/5G+50VRvdsBXfK\
+gbioGrSZrKejHqOmr5e4G/XAYDVvglx4Sh9N+24FDvgg9+QcBXMV+Un7VVcGZnSIhoIfgoWGgn4a\
+epZxoGge90v7w/dg99CdppWbjY4ZjpKMk5IaloeUhJAekIN5jm8bRPdV+MD7VQZaimmGeIB3gHNy\
+cGL8CPyyGPuNB1+Ob5F+HpB+lYGZhQiEmKaIsxu8+1X9PPdVsAa7qo6SmB+YkZaWkpoIkpqOqbga\
+924H/Af4yW63cad1lhmSe2uPXBv7sfuiFUb3bAV3yoG4qBq0maynox6jpq+XuBv1wGA1b4JceEof\
+TftuBQ74J/qbFq/4aQX3K8TW9xP3WRr3A23gUMgeyE89qSwbKjxqSk4fTkptNCAa+1jW+xD3Klce\
+r/xpBfzUBvsz+CX3MbO4OMBTx20Zx23fe/cBiXnoGPu94Psp90X3oxr3Pcz3HfcW9B709xX3PcD3\
+Yxv3Yvc6ViH3Ex/3EyDK+xv7ORr7BWsgSygeSyf7CUP7PV55Lhj3A43hm8aqxqq/w7fc9zFjGPsz\
+/CUFHPns+jgVRvdsBXfKgbioGrSZrKejHqOmr5e4G/XAYDVvglx4Sh9N+24FDvzE2fl+FfdQB/cx\
+k/cQqOa+COoGjPzKBSKRR5htHm2YqXy6G7K3lJ28H/tqB3IiK38yG0NTl6RkH2SkcK18tgh8toPk\
+9xsa9/gH9zH4FxVN91YFecKCtKYarpeopKIeoqOslrQb6rtkPnSCYXpOH1T7WAX7ifcOFWp/bnNz\
+HnNzbn9qG2pul6NzH3Ojf6isGqyXqKOkHqOiqJetG62of3OjH6Jzl25pGvj+Fmp/bnNzHnNzbn9q\
+G2pul6NzH3Ojf6isGqyXqKOkHqOiqJetG62of3OjH6Jyl25qGg7z+NscBXMV980G+Df+yaJSn2ed\
+fhmcfqyEuowI+1X9KPdVB7OMBbCkkJWaH5qUkpeZGpeFpH6wHmL3EwX8PQZX+yEFgG2Gd4IagI+C\
+k4IekoKYhZyHCIiWq4q+G/tV/LD3VQeupI6Rmx+bkZiUlpeVl5ahmKwI+Bj38BX3qwb7HPgUBQ7z\
+2hwEshX3VfmtB/cN631v0B/QbsFjsFYIsFaeUEwaXYFfeGIed2JvZmZsZmtacU52zHq9ea53vW+z\
+ZKhZCKhYmlNNGkF1R15NHl5MTFw6aghqOfsMe/sxG/1w91XCBrCkjpKYH5iRlJSQlwiQlo6ltBr5\
+nge0iKaGlh6GloKUfpIIkn5yjmYb+Fz8CBX3LQbbxpKYsh+xmKignqYInqaVqq4asIKqeaUeeKVx\
+nmiWCJZoTZAyG/stBvy1BPvCB4xgjHKOhI6CkYSTiAiHkqCJrRvxBsa9kZayH7KWrKGmrgimrpm0\
+vBq0ga54qB54qG6gZJoImmRQkjwbDoTbHAVzFRwEgQb3MvxR+0lMaNdmxmS0GWO0YKddmQiZXEWS\
+Lhv7QP32BlqTbJuAHoCaqoW4G8T7Vf0891W4BryskZibH5uXk6W0Gvm2B7mEqX2YHph8apJWG14G\
+DvP42xwFcxX3ywb4sxz7TgX7VRz6ifdVB/fDqhX5Mwb73fm4BQ7z2RwFcxUcBIwG9zP8TftJSmzT\
+aMVitxlit12oWpoImVlRkkkb+2n78NEGwK6Pk54fnZKYl5OcCJObj6u8GsD3Rvzi+0bHB7SGqIKe\
+HoGefpd6kgiSemaOUhtM+9QGaY12joQejoSShZWHCIeUoImrG/cJBuLVmKTHH8ekwbO6w7rCr82k\
+2PdLTBj7S/yaBRz7SvdVrga6qo6Smx+bkpaWkpwIjpWNp7oa+YwHtIimhpgehZiClH+SCJF/c45o\
+G00GDk8cBL8cBXMV+1UH/Xb+bQXiBvcM5Zaixh/GocKyvsS9xLLQp973S00Y+0v8mAX+vfdVBvl5\
++moF+wgGPEyCeFsfW3hhcGhmaGZYPkn7CftE2Rj3aPh4BQ73yNQcBXMV+T37VUwGaHSIhH4ffoSC\
+gYZ+CIZ+iG5gGvuH+JD3mQeriaGHlh6Gm4KWfpEIkX5vjmAbVvdV+T/7VVIGZHKIhX4ffoSDgoZ/\
+CIZ+iG5dGv2IB1yObZJ+HpF9lYGYhgiFmKiIuhuz+1X9P/dVuAa1qI6Smh+akpWUkZgIkJiOqLoa\
+97v8kPu7B1yNbo+AHpJ6lYCZhgiGmaeIthu6+1X9PfdVuQaypo6Smh+akpaUkZcIkJeOpbQa+YoH\
+uoiqhpoehZmClX+SCJJ/dI5oG00GDvef+c0cBYsV93z3SkX7IPcYH/cX+yDN+z77XRr7Z0j7Qfsa\
++xse+xv7G/tMR/t9G/sk+xGmwiAfIMIz3Eb3AQhG9wBo9xb3LRr3adH3Qvcf9xse9xv3H/dJz/d1\
+G4r7cRUkNF4xRR9EMGj7EPsxGvsmq/sLyzAeMMvjXfcFG/cF5Lnoyx/L56v3C/clGvc9afcSR98e\
+30Y2tSYb+6n7rhX3ImIGbpJ4mIIegpiihq4b2waypJCUlh+WlJCeqBq09yL8NvsiqgeohaB+mB6X\
+fnORaBs7BmZzhoB/H3+AhXVrGmz7IgcO/LzRHAVzFfk8+1VNBmdziIWAH3+EgoGGfgiFfYhxZBr9\
+mAdhjXCQfx6Qf5OCloYIg5mgh6cb1ftV/Tz3VcIGsqWOkZcfl5CUlJGYCJCXjqOwGvmbB7aIqIaZ\
+HoWYgZZ+kgiQgnSOZxtNBg73n9ccBXMV+Tz7VV4GYHCJhoEfe4SAgIR+CIR+h3JmGvwHB/hH+Cee\
+nZeXj5IZj5GNkJAalIeShJAekIN3jWwbU/dV+Qv7VXYGbnaKiIAfgIh9hHuBeoF2e3F0++X7uBj4\
+JvyzrlykcJuCGX+gqoWzG6b7Vf1U91WnBr6rjZCWH5aQkJGSGpOBnnapHvuJ9/H7aPtJBfshB2iO\
+c5J+HpJ+lIGYhgiFl6SIsBvE+1X9PPdVvgaypo6SmB+YkZWVkZkIkJaOp7Ya+Y4HtIinhZkehZmB\
+ln6SCJJ+c45oG1IGDvP5P/qYFfug/WgFgG6Gd4Ead5R9nYQehJ2xh8Ub+1X8rvdVB7ytkpmcH5yY\
+nKebtPhD+t8Y98sG+Dn+yaJSn2icfhl+nKyEuxv7Vf0o91UHs4wFzaycrJmFpH6uHw74vtscBXMV\
++QsG94b95feP+eUF+Rb7VUYGZnGDfH0ffHuEbWAa/awHaI12j4IekX6TgZaGCIOanoejG9r7Vf0z\
+91W/BrGljpGYH5iRlZSSmAiRl46irBr57gf76Bz7fAX7VQb73frzBf3kB3iPfJKAHpKAlYOYhgiF\
+mJ+IqBvO+1X8z/dVwwaupI6SmB+YkZSVkpkIkZiOpLAa+aIHr4mihpYehZqClX+SCJJ/eI5xGz8G\
+Dvck2RwFcxX4ywb4Lf3CBfiGB7aJpYaWHoSbgpaAkgiRgHWOahtH91X41PtVSwZrdIeEfh99hIGB\
+hn4Ihn6IcGEa/sv7swf8mvqYBf1jB2KOcJCAHpCAlIKYhAiEmKGIqxvO+1X81/dVxwasoo6RmB+X\
+kJWVkpkIkpmPoKca+bQHqoihhJoehJmClYCSCJGAeI5wG0AGDvW0+k4V9xf4TQUcBG0G9xf8TftJ\
+SmzVXshQuhm6UDCj+w4b+28G+xEwdFxSH1JcXk5rQAj3VewV90ZdBl+Tb5p+Hn6apYSwG+QGtKeS\
+mJgfmJiRp7caufdG/Jr7Rq0HuYWqgJsem39vk18bMgZicIN8fh9+fIRrXBpp+0YH+4f8aBX7OPiN\
+90vXsiirS6ZsGaVssm3AbghtwNB84Bv3gQb3AuKfsssfy7LF5b/3IfdLTBj7OPyaBQ73n/nNHAWL\
+Ffdx90hI+xv3HR/3Hfsbz/tB+2ca+yJs+xJM+wIeTPsCNTb7AlAIT/sD+xlt+zAb+2L7PcT3BfsX\
+H/sz9x0890r3eRr3adH3Qvcf9xse9xv3H/dJz/d1G4/7chUhN2M8TB88J2T7FfsyGvsysPsR1C8e\
+PMrfZPMb9N6y2sof1emw9xL3MRr3A3vobNYea9ZgxFWwCLBVUJ5MGw73yPrZHASYFfyQ/esGUZFn\
+mH4efZithMMbuvtV/T33VbkGwq2TmpgfmJqRqrsa+YoHxoWxfpoemn5ukl8bTfdVHAX9+1VSBlpt\
+hH1+H359hWhUGv2IB1GSZ5l+Hn2Yr4TFG7P7Vf0/91W4BsOuk5qZH5iakq7CGg543RwFcxX5dQbo\
+2YJ4yR/IeMBuuGS3ZK1eo1YIo1aXUlAa+wtdJzA6Hjov+xNj+zUb+4L7mQZqjXeQgh6RfpSCmIUI\
+hZegiKgb0vtV/Tz3VboGtKeOkZgfmJGVlZGYCJGYjqW0GvmTB7aIp4aZHoaYgpWAkgiRf3WOahtI\
+BviUaBX8IPcLB9TAk5qtH62apqKgqgigqpWvthrLcr5asB6nZlWZQxsOT/hW+TsV/Az4nwX3Vfpg\
+B/do/Hj7RT069ytD6k6yGbFNN54gG/slBvfK/ET7+vxbBfd3BvcX75+yzh/OssPYufcH90tNGPtL\
+/JgF/r33VQYOyvdDHAWiFfcYBplcBfmnBpy6BfcZBvdB/H37Tkpi3G3AeaQZaLxisV2nCKBoaZZp\
+G3uAh4SFH4WDiHlwGv22B1yNbY5/Ho5/kYKThJOEloaZiQiImbCKyBv7Vf0891W0B7iojpGYH5iQ\
+lJWSmgiSmY6puBr5yAeiiJqGkR6Rhn+OehtoZX5xYB9gcWVmalx+eG5XYDX7S8wYDsqMHAVzFflJ\
++1VXBmZ0iIaCH4KFhoJ+GnqWcaBoHvdL+8P3YPfQnaaVm42OGY6SjJOSGpaHlISQHpCDeY5vG0T3\
+VfjA+1UGWopphniAd4BzcnBi/Aj8shj7jQdfjm+Rfh6QfpWBmYUIhJimiLMbvPtV/Tz3VbAGu6qO\
+kpgfmJGWlpKaCJKajqm4GvduB/wH+Mlut3GndZYZkntrj1wbDvh7+OQW90DSB7CkkpqZH5mZkqSv\
+Gr0H+7WO+1KwLtMILtJc5/cFGvS25OLSHuHS91ax98KQCLEHroSlfZoemn1ykmYbRPdB+TX7QUQG\
+Z3KEfX0ffHyEcmYaZQf3u4r3VGflRQjlRLgx+wEaIF4vMD8ePjD7VGX7uRtZB2eScpl9HnyZpISw\
+G9L7QAb7PPoQFfwOB/cj6ZyuuB+4rqK5xRr3EPsJyft9jB775Rb7JoYsdmBoCGBodV5WGlShX7hq\
+Hrdq6Xr3JIkIDvd2vxwFcxX5g/tVUQZseImGgx+ChoeCgBqFjYWOhR6OhJV+m3j3KPtGGPc690wF\
+oKKWnJYaloeTgpAekIJ2jmsbWPdV+Qb7VQZdimuHeIZ4hnWAcnt5f3d6dnT8B/wDGPgs/Ee4W7Bs\
+qH4ZfaizhL4b+1X9kPdV0Qesn42Qkx+TkI+SlBqYgJ51pR77Xfd5+2v7eQV4doJ5exqCkIOVhh6F\
+lZ+IqhvB+1X9DvdVBreqjZCeH52QnJKalqWeq6awsPgk+CIY/BH4LWeybqN0lhmVdGSQVRsO+Tf5\
+5vlZFfgWB7aFqICZHpl/cJJgG3D3Vfjv+1VqBmBwhH2AH399hWhUGvwEzgfu0Jqqsx+zqp/R9wEa\
++EL4e/tVZgdYbYJ5gh+BeYZnVhr7HQf7M2H7BTZIHkg2+xxp+00b+yf7PgZRkmeZfh59ma+ExBuz\
++1X9PvdVtwbDrpOamR+YmpKuwhr3PvsNB/seIJilQB9ApVC3YcgIYch25fcLGvcdB8aFsH6aHpp+\
+b5NeG2b3Vfh7/EIGIJ1FsGwea6/Pe+8bDveF+fkWr/hpBfcrxNb3E/dZGvcDbeBQyB7ITz2pLBsq\
+PGpKTh9OSm00IBr7WNb7EPcqVx6v/GkF/NQG+zP4Jfcxs7g4wFPHbRnHbd979wGJeegY+73g+yn3\
+RfejGvc9zPcd9xb0HvT3Ffc9wPdjG/di9zpWIfcTH/cTIMr7G/s5GvsFayBLKB5LJ/sJQ/s9Xnku\
+GPcDjeGbxqrGqr/Dt9z3MWMY+zP8JQUO/LzRHAVzFfk8+1VNBmdziIWAH3+EgoGGfgiFfYhxZBr9\
+mAdhjXCQfx6Qf5OCloYIg5mgh6cb1ftV/Tz3VcIGsqWOkZcfl5CUlJGYCJCXjqOwGvmbB7aIqIaZ\
+HoWYgZZ+kgiQgnSOZxtNBuv41hWyrnxuqB+obploZBpmfWpwcB5wb2p9ZBtkaZmnbx9up32tsxq0\
+mKymph6mpqyYshv4dhayrXxuqB+obploZBpmfWpwcB5wb2p9ZRtjaZmnbx9up32tsxq0mKymph6m\
+pqyYsxsOyowcBXMV+Un7VVcGZnSIhoIfgoWGgn4aepZxoGge90v7w/dg99CdppWbjY4ZjpKMk5Ia\
+loeUhJAekIN5jm8bRPdV+MD7VQZaimmGeIB3gHNycGL8CPyyGPuNB1+Ob5F+HpB+lYGZhQiEmKaI\
+sxu8+1X9PPdVsAa7qo6SmB+YkZaWkpoIkpqOqbga924H/Af4yW63cad1lhmSe2uPXBv4bPjWFbKu\
+fG6oH6humWhkGmZ9anBwHnBvan1kG2RpmadvH26nfa2zGrSYrKamHqamrJiyG/h2FrKtfG6oH6hu\
+mWhkGmZ9anBwHnBvan1lG2NpmadvH26nfa2zGrSYrKamHqamrJizGw5P+u36ehX9SQdWj2uSgB6A\
+kqqGwRu6+1UG/EZ8BfIHQPsBJWYrG/sMJbzuOB837WH3EPcrGvcptvcQ4PAe8ODzvfcRG+jhbEzc\
+H/DRBSb9XBX3ywe6h66EpB6DpHmhb6AIoG5slWgbU1xyWGUfZVh4QSkaOptHrFMeU6y4b8YbtsWj\
+utIf+zr54xVN91YFecKCtKYarpeopKIeoqOslrQb6rtkPnSDYXpOH1P7WAUO+4D3tPicFfsLwVDX\
+7BrXr8zSwR7A0vKm9xwb9wjvdmDgH+BgtVZNGm5/cHNyHnJybH5kG19joLVnH3Cqc6F4lwiWd3KR\
+bBtiaYB1ch9ydX5uZhpBuWbmHvb7OvsKBidZZ0M8xGT3BdbLmKTAH8CkxbnKzvcn+xUY+0r7EPtO\
+MPuNG/sb+wGmwDgfOMBh0+Qa9wjU3vcnvh73f/j5FU33VgV5woK0phqul6ikoh6io6yWtBvqu2Q+\
+dINhek4fU/tYBQ6E+J36khX7GQfk9xH3DLf3BhvVyntqvh++aq1mnGMInGKTVkoaHPuC+9P64Qe6\
+hKx+nh6efnOUaRtLQGtKNB/8IQdcj2+Ugx6DlKyHxRv7VfzZ91WoB8CtkJSYH5iUkaOyGvhm+yj3\
+VQf3D5n3BKfxtQj3OfcDFU33VgV5woK0phqul6ikoh6io6yWtBvqu2Q+dINhek4fU/tYBQ78xNn5\
+fhX3UAf3MZP3EKjmvgjqBoz8ygUikUeYbR5tmKl8uhuyt5SdvB/7agdyIit/MhtDU5ekZB9kpHCt\
+fLYIfLaD5PcbGvf4B/cx+BcVTfdWBXnCgrSmGq6XqKSiHqKjrJa0G+q7ZD50g2F6Th9T+1gFDl3A\
++bkV91UH+GeUBfz0BzyaWah1HnSosoC7G7yylqGnH6ahmb/eGve/B7iGqIGWHpaAcpFiG1T3VQb4\
+ZpQF/MgHJoQ/flkefVhyYGZmZmZYcEt5CHlKQYI3G/sl+wmoxDIfMsRe9w73Txr3pwe4hqiBlh6W\
+gXGRYhv4j/fcFU33VgV5woK0phqul6ikoh6io6yWtBvqu2Q+dIJhek4fVPtYBfuJ9w4Van9uc3Me\
+c3Nuf2obam6Xo3Mfc6N/qKwarJeoo6Qeo6Kol60brah/c6MfonOXbmka+P4Wan9uc3Mec3Nuf2ob\
+am6Xo3Mfc6N/qKwarJeoo6Qeo6Kol60brah/c6MfonKXbmoaDk/67fp6Ff1JB1aPa5KAHoCSqobB\
+G7r7VQb8RnwF8gdA+wElZisb+wwlvO44HzftYfcQ9ysa9ym29xDg8B7w4PO99xEb6OFsTNwf8NEF\
+Jv1cFffLB7qHroSkHoOkeaFvoAigbmyVaBtTXHJYZR9lWHhBKRo6m0esUx5TrLhvxhu2xaO60h8O\
+NvhNzhX8lfvUHAWUB/ctt/cM4+Ae4OL3E7X3ORv3KPcEaUbXH9ZGsTD7BRr7Sif7CftbVx73E/Js\
+Ttwf3E2zL/sOGvsIZCw8QR5BPPsEZvslG/sWIanIOB/3APmTFd6NwpSkmqSanqOYrQiXrZGxtBr3\
+H1XRIPsPTTD7Sh78swdFoVC3Wh5at8dz2BvJwZuruh+5qqK/1BrebsZQrh6uUC2c+xYbDib5iLcV\
+rvsvnChgGkp6VmlkHmNoW3dNG1Bena9sH2yve7jCGsih3bbyHvvf+ZoFtnhooVcbVPdVBvgslPel\
+/XnS9ycFsNie0MgaqoaygLoegL6FsaYavp20rqoeqq65msUbyrp7a6ofqWuaZF4abIduhHEeg3Fw\
+TV4oXihmQm5cCA4m+Ev6QBX7WLQp2PcHGtq3z+PGHsbi9wmo9yUb9xv3BHVg5h/lX7hXTxpsfm9y\
+cx5ycmt/ZBtbX6C2Yx9srW2kb5oImm5nk14bJlllPmSZbKhzH6dyx3foevcTdOhvxmzGa7xWs0EI\
+s0GfMPsAGvswWfsTJioeKib7HFr7Phv7SfsfvfArHyvvW/cK9xsa92/3Dfcu94biHvdc+x0VTlhy\
+WWIfYll3PyYaJZ4+sVceV7C9cckbxr2kvbUftbyg2PQa7njWZcAev2RapU4bDvuA97T4nBX7C8FQ\
+1+wa16/M0sEewNLypvccG/cI73Zg4B/gYLVWTRpuf3Bzch5ycmx+ZBtfY6C1Zx9wqnOheJcIlndy\
+kWwbYmmAdXIfcnV+bmYaQblm5h72+zr7CgYnWWdDPMRk9wXWy5ikwB/ApMW5ys73J/sVGPtK+xD7\
+TjD7jRv7G/sBpsA4HzjAYdPkGvcI1N73J74eDvwG+PEcBJgVgi9Bh1Mb+2MjxPcHspqqqKQfpKiw\
+l7kbvMR3Y8wfZMrSeNgbsLeQlr4fvZXprfcexZdaGE/7APtE+yf7GPsjM/shGTP7IV/7DCgaZZVo\
+oGoen2rCZ+Vj9ydJ7Fu6bLpsrGWeXwieX5RdWhr7AWQxPkQeRD77DGf7Nhv7ESCdsDMfMq9fvcwa\
+qpamoaEeoKCqlrMbtLZ7a7cfUtrWb9Ib9wPCsNWwe6tqpB9qpFGrOLL7F8cuulKtUqxfs265CG24\
+fL7DGvcAsvcF2vcKHtn3CfcV9x33SfcvCA6E+J36khX7GQfk9xH3DLf3BhvVyntqvh++aq1mnGMI\
+nGKTVkoaHPuC+9P64Qe6hKx+nh6efnOUaRtLQGtKNB/8IQdcj2+Ugx6DlKyHxRv7VfzZ91WoB8Ct\
+kJSYH5iUkaOyGvhm+yj3VQf3D5n3BKfxtQgOR/kjHAW7FfdE9yFN+xH2H/X7EcD7TfuLGvuLVvtP\
+IPsRHvsRIPsjTPtIG/tM+yPM9xYkHyT3Flj3S/eBGvc6ovcbuvQeuvPN3uHICMjg9wCq9xUb93z9\
+DRX3qXg69x77Ixv7GED7HvupeB+K+24Vk/sspPsAtkoISrbAa8obycCtzrYfts6l9pT3JwgO/MTZ\
++X4V91AH9zGT9xCo5r4I6gaM/MoFIpFHmG0ebZipfLobsreUnbwf+2oHciIrfzIbQ1OXpGQfZKRw\
+rXy2CHy2g+T3Gxr3+AcOePi9+pIV/FsH91T3NwWno5mbkxqdc5RcHmX3Vfj3+1UGYIptiHmFeIVp\
+dVhm+1b7Ihj3qPvVqGmjdp2EGYOcrYe+G/tV/AEH+8b4OvsRLQVVB2+OeJKBHpGAk4WUiZSIpIqz\
+igj7VfzS91UHjKCai5UbuqeRlpUflZaQrsQa+EP7JvdXB/cDj/cPpvccvggO+yL4gPpEFS73igX7\
+k/dWBvcYlPcOp/cEuQj3Dgb4XRz7RwVgnK51wRuq+1X87fdVngazpY+Slh+WkpCUlxqSh5uCpB77\
+IPgx+0T8MQWCdYZ7gRpxqn7IHqL7VfyP91UGvIyrj5qSmpKdpKG2CA77R475uRX3VQf4LJT3pf15\
+0vcnBbDYntDIGqqGsoC6HoC+hbGmGr6dtK6qHqquuZrFG8q6e2uqH6lrmmReGjRI+zj7G/uFHvth\
+/AIF+6AG+9H5eAW2eGihVxsO+874evnJFfs4t/sCulS8CFO8b8XOGua22uLMHszi9wWr9x8b9w/x\
+dWDeH95ftFhQGmp+bnFzHnNxbH9oG19koLZoH8xWUqtPG2FofnBwH3BwfWliGlOpXsZqHsZq42v3\
+CWzRebt4pXcIpXeYbWMabIFveHEecXhqflwbcmyPlGYflV5okHIbTlp7bGYfZmx5YFYaYJtlrGwe\
+rGvOZfJe9yxI7VK4Xgi4XqFJNBogZDI+RB5EPfsKZ/sxG/sW+wGdsDMfM7BfvcwaqpaloaEeoKGp\
+lrIbtbZ7a7gfUtrWb9Ib9wLCsNWsfqhxox9wo0uvJbr7Q9z7CtBOxAhNxGzV5Br3V/cf9xH3qsIe\
+Dib5DPqSFfcG7nVe4B/gXsxPuT4IuD6iMCQa+zBY+xMmKh4qJvscWvs9G/tB+x287SUfKOha9xP3\
+Mxr0ouW41h641szI4LkIuODtovcCG4/7bxVlZ4B0ah9qdHFqeV8IeF+CU0caRZRRnV0enV2kaat1\
+CHWqroCxG8a9pL21H7W8oNj0GvB42GS+Hr5kWaROGw7kHAWd938V+2oHciIqfzIb+wVCpsJqH2nC\
+eu73JRr34weuhqOAlh6WgHSQaBv7KQZmdIaBgh+CgIZxYBr8JwdgkHCUgR6BlKKGsBuo+1X82PdV\
+ywauoZGWlh+WlpCirhr4OQeuhqOAlh6WgHSQaRtL92gcBOT7aEsGZXSGgYIfgoCGcWAa+8YHQJVa\
+nnYedp6ogLIbrrWUnbwfDkb4QpoV/GH71foBB/d/xfcy9wfaHtr3B/cVs/ckG/c09xlcLvUf9C7A\
++xP7NBr7MFj7EyYqHiom+xxa+z0bODyYpT4f94X5qBVOWHJZYh9iWXc/Jholnj6xVx5XsL1xyRvG\
+vaS9tR+1vKDY9BrueNZlwB6/ZVmlThsO+qssFfsAZDE9RB5EPfsJZ/sxG/sJIpyuLB8srly+0Bqq\
+lqWhoR6hoKuWtBuztXtrtx9S2tZv1Bv3AcKw1q1+qXGkH3CkVqs7sfsdzCjATLJMslu6bMAIa8B7\
+y9Ya9yO/9w/y8h7y8vcevvdCG/cd9wVrTOIf4ku2SEQaX3xlbWwebG1je1obYmyUnHQfdJx1qHa2\
+cr50rXedCJ13b5RoG01YblJkH2NRd0lAGmOXZ6JqHqJqwmbgYvcoRutbtnK2cqxppGEIpGCXV00a\
+Djj5ufp6Ffh3+2n7YwbWNLEm+wca+x1a+wooJx4mKPscWftDG/s7+xu66CQfJOhX9xX3OBr3NcH3\
+E/cA6B7o9wD3F7n3LxvJxYN7wB/7O/tXFU5YclliH2JZdz8mGiWePrFXHlewvXHJG8a9pL21H7W8\
+oNj0Gu541mXAHr9lWaVOGw770PpU+noV+2n7yvvwB0SOXJFzHpFynHamegh5pq6CtRvKy6G4zB/7\
+agdaJiZyJRsyQ5qpUx9SqWSudLQIdLR/xdYa+HD70vdpBw5dwPm5FfdVB/hnlAX89Ac8mlmodR50\
+qLKAuxu8spahpx+moZm/3hr3vwe4hqiBlh6WgHKRYhtU91UG+GaUBfzIByaEP35ZHn1YcmBmZmZm\
+WHBLeQh5SkGCNxv7JfsJqMQyHzLEXvcO908a96cHuIaogZYeloFxkWIbDve0+UT3VBX39Af3U6/3\
+E9PLHsvT66v3Cxv3N/cRYTfgH+A2tfsN+zIa+x5z+wJaOh5aOkxSQGo/avsLePs3hwj8Ovup+DoH\
++2eO+y69KOwIKOxa9xb3Nhr3Lr/3DvPlHvPl9x269z2PCPtvB/slgkMr+00a+wGfPLNZHrNZz2/q\
+hgj3qRbmjMmarKerp6G1lsIIlsKRwcIa4n3RcL8ev3BjpVcbYm94ZXwfe2SDSi4aDiCZ+noV+BSU\
+9+H8E8zrBZ6nlJ2UGpiGk4KPHo6Bc41mG/dV+GX7VQdrcYmGdx92hnN3bmr7Wft+GPdq+3KxZKly\
+ooAZgKGphrIb+1X75gf8BvhB+wH7JQVya392gRp4oIK2Hrb7VfyA91UGt6yRlqAfoJasqba99173\
+fhj7QfdOZrNuo3eTGZN2Xo9FGw740fnN924V+Zf30/2XB+uNzZCuk66Sp6CgrAifrJXJ5hr3VAfB\
+hK1+mh6Zfm2SXRv3VQf4QJUF/L4H+zVe+wcwSB4wSPs4afuDigj8UvvT+FIH+5eO+z2rOskIOslj\
+9wj3Phr3bgfIhbF+mR6Yfm+SXhtm91UG+GGVBfybByCdRbBrHrBr4Hn3GogIDvfO+mH4rxUoB/sH\
+lkSicB5woqh9sBvCtKfCph+mwpjT4xrFhcN+wB5+wHOyaKRopFCXOIwI92wH93H3Ml0w6x/qMLv7\
+G/tHGvs1Y/sROjQeNDr7CF/7KRtRV5SeXB9cnlu0W8xcS11iXHgIeFxVgVAb+yn7B7fjOh864mP3\
+EPc1Gvc/u/cZ6uoe6ur3Mrv3cRv7bAf7DEBtT24fbk98PiwaMplEplQeVKa0b8IbsKiZpqIfoqaW\
+0vcHGu4HDvzE2fl+FfdQB/cxk/cQqOa+COoGjPzKBSKRR5htHm2YqXy6G7K3lJ28H/tqB3IiK38y\
+G0NTl6RkH2SkcK18tgh8toPk9xsa9/gHZvk2FbKufG6oH6humWhkGmZ9anBwHnBvan1kG2Rpmadv\
+H26nfa2zGrSYrKamHqamrJiyG/h2FrKtfG6oH6humWhkGmZ9anBwHnBvan1lG2NpmadvH26nfa2z\
+GrSYrKamHqamrJizGw5dwPm5FfdVB/hnlAX89Ac8mlmodR50qLKAuxu8spahpx+moZm/3hr3vwe4\
+hqiBlh6WgHKRYhtU91UG+GaUBfzIByaEP35ZHn1YcmBmZmZmWHBLeQh5SkGCNxv7JfsJqMQyHzLE\
+XvcO908a96cHuIaogZYeloFxkWIb9834+xWyrnxuqB+obploZBpmfWpwcB5wb2p9ZBtkaZmnbx9u\
+p32tsxq0mKymph6mpqyYshv4dhayrXxuqB+obploZBpmfWpwcB5wb2p9ZRtjaZmnbx9up32tsxq0\
+mKymph6mpqyYsxsOJvkM+pIV9wbudV7gH+BezE+5Pgi4PqIwJBr7MFj7EyYqHiom+xxa+z0b+0H7\
+HbztJR8o6Fr3E/czGvSi5bjWHrjWzMjguQi44O2i9wIbj/tvFWVngHRqH2p0cWp5Xwh4X4JTRxpF\
+lFGdXR6dXaRpq3UIdaqugLEbxr2kvbUftbyg2PQa8HjYZL4evmRZpE4bWPfeFU33VgV5woK0phqu\
+l6ikoh6io6yWtBvqu2Q+dINhek4fU/tYBQ5dwPm5FfdVB/hnlAX89Ac8mlmodR50qLKAuxu8spah\
+px+moZm/3hr3vwe4hqiBlh6WgHKRYhtU91UG+GaUBfzIByaEP35ZHn1YcmBmZmZmWHBLeQh5SkGC\
+Nxv7JfsJqMQyHzLEXvcO908a96cHuIaogZYeloFxkWIb+I/33BVN91YFecKCtKYarpeopKIeoqOs\
+lrQb6rtkPnSDYXpOH1P7WAUO9876YfivFSgH+weWRKJwHnCiqH2wG8K0p8KmH6bCmNPjGsWFw37A\
+Hn7Ac7JopGikUJc4jAj3bAf3cfcyXTDrH+owu/sb+0ca+zVj+xE6NB40OvsIX/spG1FXlJ5cH1ye\
+W7RbzFxLXWJceAh4XFWBUBv7KfsHt+M6HzriY/cQ9zUa9z+79xnq6h7q6vcyu/dxG/tsB/sMQG1P\
+bh9uT3w+LBoymUSmVB5UprRvwhuwqJmmoh+ippbS9wca7gfb+OYVTfdWBXnCgrSmGq6XqKSiHqKj\
+rJa0G+q7ZD50g2F6Th9T+1gFDvPZHAVzFRwEjAb3M/xN+0lKbNNoxWK3GWK3XahamgiZWVGSSRv7\
+afvw0QbAro+Tnh+dkpiXk5wIk5uPq7wawPdG/OL7RscHtIaogp4egZ5+l3qSCJJ6Zo5SG0z71AZp\
+jXaOhB6OhJKFlYcIh5Sgiasb9wkG4tWYpMcfx6TBs7rDusKvzaTY90tMGPtL/JoFHPtK91WuBrqq\
+jpKbH5uSlpaSnAiOlY2nuhr5jAe0iKaGmB6FmIKUf5IIkX9zjmgbTQb4M/jWFbKufG6oH6humWhk\
+GmZ9anBwHnBvan1kG2RpmadvH26nfa2zGrSYrKamHqamrJiyG/h2FrKtfG6oH6humWhkGmZ9anBw\
+HnBvan1lG2NpmadvH26nfa2zGrSYrKamHqamrJizGw73cPf2FvdVtAfCrpKZmR+ZmZKvxBr5yAeh\
+iZmHkh6ShoCOeBv7BCk5+zk3H/tLzPcr+EIF9xgGmVwF+acGnLoF9xkG9x78H/tOSWjUX8BUrhmu\
+VFqcYht6f4eDhh+Ggoh6cRr70QfWyOKx9wQb9xf3AFko3x/fJ7X7KvtdGvuLXPtBLSgeJyz7BVn7\
+GRssPabBTB/h9zUFf5qhhagb9y3X9xb3mfc0efcBZsYfxmZYqEobV1RyWlIf+9QHXpBvlYAegJWl\
+hbUboftVBg6E2xwFcxX67Qb3MvxR+0lMWfcBVNVPshmyTyye+xYb+xj99gZekm6Zfh59mKuEvBvE\
++1X9PPdVuAbCrpOcmB+Ym5GjrBr5tge9gqp6lh6WemuRXBteBvhG97QVY/D3a/dUBcLJxKa/G7Ot\
+fW6nH6dumWhgGmx/bHNuHnNuYXVOfggO9yT4ZvnMFfh8+1f8fAab+wO2KtE4CDjR62H3Dhvw46rI\
+1R/UyMjNu9L3L/sHGCb7HyYjJkgIRyX7FGn7LRv7aPtC0vch+xwf+xz3IUf3QPdhGvddzvc99xn3\
+HR73HfcZ9zvQ918bycaFfsIfwn7DacZWrOoY9yEG9x78iftOVU/3CU3kTMgZyEw+qTEbLjprS0gf\
+R0piL3z7DQgOePr9HAVzFfcM/Gj7TlZN9wNF3Ty/Gb48OKUyG1Jef3RqH2p0enFuGmqabalvHqhv\
+wXLadfegPRj3KWD1U8pECMpEqjgsGvsNWyUrOB4vIPsaXfszG0FHlJ9NH02eSqpIuF8nGPspBij4\
+sfdPuLf7AtAv6EIZQejxZvcDG721kZisH6yYo5ycogicopOioxqzeK1kqB5kqEanKaf7fc8YaJVb\
+nk+nTqZdqGupaqlwsna6CHa6gLy/GtWgz7TKHrTJyL3esgiy3eae7xv3DfcBbEzsH7LRBQ78vNEc\
+BXMV+Tz7VU0GZ3OIhYAff4SCgYZ+CIV9iHFkGv2YB2GNcJB/HpB/k4KWhgiDmaCHpxvV+1X9PPdV\
+wgaypY6Rlx+XkJSUkZgIkJeOo7Aa+ZsHtoiohpkehZiBln6SCJCCdI5nG00GDvy80RwFcxX5PPtV\
+TQZnc4iFgB9/hIKBhn4IhX2IcWQa/ZgHYY1wkH8ekH+TgpaGCIOZoIenG9X7Vf0891XCBrKljpGX\
+H5eQlJSRmAiQl46jsBr5mwe2iKiGmR6FmIGWfpIIkIJ0jmcbTQbr+NYVsq58bqgfqG6ZaGQaZn1q\
+cHAecG9qfWQbZGmZp28fbqd9rbMatJispqYepqasmLIb+HYWsq18bqgfqG6ZaGQaZn1qcHAecG9q\
+fWUbY2mZp28fbqd9rbMatJispqYepqasmLMbDk/43RwFcxX5O/tVUgZkcoiFfx9/hIKBhn4Ihn6I\
+bFwa/MMHNIZLgmMeflJtUltTW1NOYEBsCGxAMXwjG/sDLJ6xPR88sU6/Xs4IXs51z9IazJ7AsbQe\
+tLG6oMMbraiFfqMfon6ed5pxCJlwkm9tGkoHZpRonGoemHKgd6h8CHyoq4OwG7u0maesH6ynobCW\
+uQiSpo7C3xr41weoip6IlB6GnIKXfpIIkn50jmsbSAYO+MwcBWUcBXMV+1VUB1tshX5+H35+hHBi\
+GvuY92EH9zX3E2M65x/mOrkn+wwa+wNhKTg3HjY3+xth+04b/VT3Vc4GtqaSmpcfl5mRrcAa+fD7\
+Xwf7mf4QBYR1iH2GGmqwetYeqvtV/Kz3VQa2q5KYoR+hmJ2mmLb3kfmYGJKgjpyYGsJjpzweTfdV\
+BvpoHPtwFfcOBuDInrGwH6+wnbnBGsB5u2e0HrRmQp/7ARs1Bg75n/oiFvdVtwfDrpOamR+YmpKu\
+whr3u/yC+7sHUZFnmH4efZithMMbuvtV/T33VbkGwq2TmpgfmJqRqrsa+YoHxoWxfpoemn5ukl8b\
+TfdV+T37VUwGX26Efn4ffn6EaFIa+4f4gveZB7aGqIGZHpmAaZJSG1f3Vfk++1VTBlxshX5+H31+\
+hHBiGvuY92IH9zX3EmM65x/nOrkn+wwa+wNhKTg3HjY3+xth+04b+1X3dxX3Dwbgx56xsB+wsJ25\
+wRq8frVyrB5xrGygZ5UIlWdckFAbNAYO+Ab6ahb9CPdVtAbCrpKZmR+ZmZKvxBr5yAehiZmHkh6S\
+hoCOeBv7BCk5+zk3H/tLzPcr+EIF9xgGmVwF+acGnLoF9xkG9x78H/tOSWjUX8BUrhmuVFqcYht6\
+f4eDhh+Ggoh6cRr7zQfU9wj3Aq/0G9DIfnHAH79wsWqjYgijYpdURhr71QdakW2WgB6AlqiFuxu6\
++1X83/dVqQayo5GXlB+UlpCntxr3jQfBhLB+oB6ffnCVYxs8OW1QNx/7wgdekG+VgB6AlaWFtRuh\
+Bg73n9ccBXMV+Tz7VV4GYHCJhoEfe4SAgIR+CIR+h3JmGvwHB/hH+CeenZeXj5IZj5GNkJAalIeS\
+hJAekIN3jWwbU/dV+Qv7VXYGbnaKiIAfgIh9hHuBeoF2e3F0++X7uBj4JvyzrlykcJuCGX+gqoWz\
+G6b7Vf1U91WnBr6rjZCWH5aQkJGSGpOBnnapHvuJ9/H7aPtJBfshB2iOc5J+HpJ+lIGYhgiFl6SI\
+sBvE+1X9PPdVvgaypo6SmB+YkZWVkZkIkJaOp7Ya+Y4HtIinhZkehZmBln6SCJJ+c45oG1IG+Pj3\
+tBVj8Pdr91QFwsnEpr8bs619bqcfp26ZaGAabH9sc24ec25hdU5+CA6zHAWeHASyFXEGcowFUl5r\
+TGwf/E7+CAX7QTb7EzX7PBtDTZ2wWB9YsHG8yhq4mrGoqR6oqKuarhu+uHNcsh92nJ2BnBujn5Ob\
+mh+amp+tor6myBj8aflPbrd0pnqUGZR5aZBZG/dV+Un7VTgHaHp+cneVcZ9rH/dz++/3PPf6BZ2w\
+lKSXGqB1lV8eRfdV+MsG/TP3BxX7O/sSqMQ2HzbEYMrQGraarqqmHqWqrZixG6KhhYChH6B/m3+V\
+gJR/l3Waa6Jaommjegh5o7mCzhvOuJSdpB+jnKOsoryaq5ehlZiUl5uXoJYIlqCikaIbsa1+caof\
+qnCaaF8aRmBNNlIeUjb7E277OxsO98j5e/uoFd8HyIO2eqYeeqV0nG6SCJJuVI88G/wx91XJBrin\
+k5qYH5iaka/GGvmKB7yFqn6aHpp+aZJUG133Vvk9+1ZcBlRphH5+H35+hGdRGv3s+JD57AfDhK59\
+mh6ZfWiSVBte91b5P/tWYwZbbIiFfh99hIKCh3+Hf4htiVsI/YkHVJFomH4efZiphLwbxPtV/DIG\
+PlWHhG0fbYR0enpxCHpwgmBOGjcHDvP42xwFcxX3zQb4N/7JolKfZ51+GZx+rIS6jAj7Vf0o91UH\
+s4wFsKSQlZofmpSSl5kal4WkfrAeYvcTBfw9Blf7IQWAbYZ3ghqAj4KTgh6SgpiFnIcIiJarir4b\
++1X8sPdVB66kjpGbH5uRmJSWl5WXlqGYrAj4GPfwFferBvsc+BQFDvP44/neFffSBvc19xNjOucf\
+5jq5J/sMGvsDYSk4Nx42OPsbYftOG/3G91XOBrink5qWH5aakK2+GvmTB7yEq36aHpp+aZNWG1z3\
+VRwEjAb3M/xN+0lKXfcAVdVMtBmzTDafIRv7aQb+RQT3fwbgyJ6ysB+wsZ24wBq8frNyqx5xq22h\
+apYIlmlakUsb+1sGDvPaHASyFfdV+a0H9w3rfW/QH9BuwWOwVgiwVp5QTBpdgV94Yh53Ym9mZmxm\
+a1pxTnbMer15rne9b7NkqFkIqFiaU00aQXVHXk0eXkxMXDpqCGo5+wx7+zEb/XD3VcIGsKSOkpgf\
+mJGUlJCXCJCWjqW0GvmeB7SIpoaWHoaWgpR+kgiSfnKOZhv4XPwIFfctBtvGkpiyH7GYqKCepgie\
+ppWqrhqwgqp5pR54pXGeaJYIlmhNkDIb+y0G/LUE+8IHjGCMco6EjoKRhJOICIeSoImtG/EGxr2R\
+lrIfspasoaauCKaumbS8GrSBrnioHniobqBkmgiaZFCSPBsOhNscBXMV+u0G9zL8UftJTFn3AVTV\
+T7IZsk8snvsWG/sY/fYGXpJumX4efZirhLwbxPtV/Tz3VbgGwq6TnJgfmJuRo6wa+bYHvYKqepYe\
+lnprkVwbXgYO9/f37hwEshX3VRwE3/tVUwdabYR9fh9+fYVoVBr9iAdRkmeZfh59mK+ExBuzBvco\
+/C/7Skps217OUMIZwVAtpvsVG/zwBvsVLnBVUB9QVV5Iazr7ScwY9yj4LwW+Bs23rdChH/eK+ZgF\
+kqCOm5gaw2OnPB75Nf5sFfpS+8MH+5P99wWGfIl+gBpoq3rMHg7z2RwFcxUcBIwG9zP8TftJSmzT\
+aMVitxlit12oWpoImVlRkkkb+2n78NEGwK6Pk54fnZKYl5OcCJObj6u8GsD3Rvzi+0bHB7SGqIKe\
+HoGefpd6kgiSemaOUhtM+9QGaY12joQejoSShZWHCIeUoImrG/cJBuLVmKTHH8ekwbO6w7rCr82k\
+2PdLTBj7S/yaBRz7SvdVrga6qo6Smx+bkpaWkpwIjpWNp7oa+YwHtIimhpgehZiClH+SCJF/c45o\
+G00GDvoG+bQW91W7B76rkpqXH5eakai2GvcjB/tv92D7RvwIBYJ4hn6CGnqRgJeFHoWWqYi6G6f7\
+Vf0991WlBrqxlZ+oH6ieoKKYpPez+L4Y+4j3sXihdZ1wmBmYcGuSZBt391X5AftVXQZsd4mGgx+C\
+hoeCfhp8l3iich73/PwZBfgFB6+HpISaHoSZgZV+kAiQfm+OYBtn91X5IftVZwZYb4iGhB+EhoOD\
+goEIgYGGcF4a/AUH9/34GQWiopafmhqXh5SEkR6Qg3eOahtc91X5AvtVdwZkaoR+cB9wfnV5eHX7\
+iPuxGPe0/L6Ycp91qHcZd6ixgbobpvtV/T73VagGuaiOkZcfl5CRlpoaloeZgp4e+0f4CPtu+2AF\
++yMHYZFulnwefJaqg8AbvPtVBg6x93UcBXMV9yEGrE8Fw/T3CKf3FRv3KvcRbEzuH+5MvTP7BRr7\
+LzT7APtDTh73ZWH0+wT7Shr7FVIj+wc+Hj77B/sgZPs5G/tP+yWw1iUfJNU070P3E/cv9wcY+1r3\
+G/c6KPdXG+zRoLa2H7a2ob7IGsp3vWKuHq5iPpz7Bhv7Sfdh9y0G9wbYm6u0H7Sqn7fCGsxzu1uq\
+HqpaUZpHGyg5a0pKH0pKUzRc+wH7TsEYDvfI1BwFcxX5PftVTAZfboR+fh9+foRoUhr8Ywf4kPhw\
+BcOErHyUHpR8a5BbG1b3Vfk/+1VSBlpthH1+H359hWhUGv2IB1GSZ5l+Hn2Yr4TFG7P7Vf0/91W4\
+BsOuk5qZH5iakq7CGvhpB/yQ/GmMXI1tj34Zj36UgpmFCISZqIi4G7r7Vf0991W5BsKtk5qYH5ia\
+kaq7GvmKB8aFsX6aHpp+bpJfG00GDvfI1BwFcxX5PftVTAZfboR+fh9+foRoUhr8Ywf4kPhwBcOE\
+rHyUHpR8a5BbG1b3Vfk/+1VSBlpthH1+H359hWhUGv2IB1GSZ5l+Hn2Yr4TFG7P7Vf0/91W4BsOu\
+k5qZH5iakq7CGvhpB/yQ/GmMXI1tj34Zj36UgpmFCISZqIi4G7r7Vf0991W5BsKtk5qYH5iakaq7\
+GvmKB8aFsX6aHpp+bpJfG00G+ZL3yBX7O/sSqMQ2HzbEYMrQGraarqqmHqWqrZixG6KhhYChH6B/\
+m3+VgJR/l3Waa6Jaommjegh5o7mCzhvOuJSdpB+jnKOsoryaq5ehlZiUl5uXoJYIlqCikaIbsa1+\
+caofqnCaaF8aRmBNNlIeUjb7E277OxsO95/XHAVzFfk8+1VeBmBwiYaBH3uEgICEfgiEfodyZhr8\
+Bwf4R/gnnp2Xl4+SGY+RjZCQGpSHkoSQHpCDd41sG1P3VfkL+1V2Bm52ioiAH4CIfYR7gXqBdntx\
+dPvl+7gY+Cb8s65cpHCbghl/oKqFsxum+1X9VPdVpwa+q42Qlh+WkJCRkhqTgZ52qR77iffx+2j7\
+SQX7IQdojnOSfh6SfpSBmIYIhZekiLAbxPtV/Tz3Vb4GsqaOkpgfmJGVlZGZCJCWjqe2GvmOB7SI\
+p4WZHoWZgZZ+kgiSfnOOaBtSBg7z+T/6mBX7oP1oBYBuhniAGniUfZ6EHoOesIfEG/tV/K73VQe5\
+q5GYnh+dmJ2nnLb4Q/rfGPfLBvg5/smeWp5qnHoZepytgr8b+1X9KPdVB7OMBc2MrJyrGpiFpH6v\
+Hg74vtscBXMV+QsG94b95feP+eUF+Rb7VUYGZnGDfH0ffHuEbWAa/awHaI12j4IekX6TgZaGCIOa\
+noejG9r7Vf0z91W/BrGljpGYH5iRlZSSmAiRl46irBr57gf76Bz7fAX7VQb73frzBf3kB3iPfJKA\
+HpKAlYOYhgiFmJ+IqBvO+1X8z/dVwwaupI6SmB+YkZSVkpkIkZiOpLAa+aIHr4mihpYehZqClX+S\
+CJJ/eI5xGz8GDvfI1BwFcxX5PftVTAZodIiEfh9+hIKBhn4Ihn6IbmAa+4f4kPeZB6uJoYeWHoab\
+gpZ+kQiRfm+OYBtW91X5P/tVUgZkcoiFfh9+hIOChn8Ihn6Ibl0a/YgHXI5tkn4ekX2VgZiGCIWY\
+qIi6G7P7Vf0/91W4BrWojpKaH5qSlZSRmAiQmI6ouhr3u/yQ+7sHXI1uj4AeknqVgJmGCIaZp4i2\
+G7r7Vf0991W5BrKmjpKaH5qSlpSRlwiQl46ltBr5ige6iKqGmh6FmYKVf5IIkn90jmgbTQYO95/5\
+zRwFixX3cfdISPsb9x0f9x37G8/7QftnGvsibPsSTPsCHkz7AjU2+wJQCE/7A/sZbfswG/ti+z3E\
+9wX7Fx/7M/cdPPdK93ka92nR90L3H/cbHvcb9x/3Sc/3dRuP+3IVITdjPEwfPCdk+xX7Mhr7MrD7\
+EdQvHjzK32TzG/TestrKH9XpsPcS9zEa9wN76GzWHmvWYMRVsAiwVVCeTBsO98gcBkYcBXMV+1VS\
+B1pthH1+H359hWhUGv2IB1GSZ5l+Hn2Yr4TFG7P7Vf0/91W4BsOuk5qZH5iakq7CGvnr/JD96wdR\
+kWeYfh59mK2Ewxu6+1X9PfdVuQbCrZOamB+YmpGquxr5igfGhbF+mh6afm6SXxtN91UGDnjdHAVz\
+Ffl1BujZgnjJH8h4wG64ZLdkrV6jVgijVpdSUBr7C10nMDoeOi/7E2P7NRv7gvuZBmqNd5CCHpF+\
+lIKYhQiFl6CIqBvS+1X9PPdVuga0p46RmB+YkZWVkZgIkZiOpbQa+ZMHtoinhpkehpiClYCSCJF/\
+dY5qG0gG+JRoFfwg9wsH1MCTmq0frZqmoqCqCKCqla+2GstyvlqwHqdmVZlDGw73JBwEgRwFcxX3\
+Igb3HfyJ+05VTfcLUeBUvRnQPzmtMhtKT3lnUx9SZ19WakUIakV6OS0a+yOx+xDXJB4k1u5X9w8b\
+2dahuNMf5cLZ1szo9y/7Bxgm+x0vKzhVCDj7FfsjYfsyG/sX+wuryiEfIMo240z3BQhM9wVr9xD3\
+Ghr3Gar3Dsn3Ah7I9wHf4fbICMj19wqq9xcb9xn3CG9T7x8OyvdDHAWiFfcYBplcBfmnBpy6BfcZ\
+BvdB/H37Tkpi3G3AeaQZaLxisV2nCKBoaZZpG3uAh4SFH4WDiHlwGv22B1yNbY5/Ho5/kYKThJOE\
+loaZiQiImbCKyBv7Vf0891W0B7iojpGYH5iQlJWSmgiSmY6puBr5yAeiiJqGkR6Rhn+OehtoZX5x\
+YB9gcWVmalx+eG5XYDX7S8wYDrMcBZ4cBLIVcQZyjAVSXmtMbB/8Tv4IBftBNvsTNfs8G0NNnbBY\
+H1iwcbzKGriasaipHqioq5quG764c1yyH3acnYGcG6Ofk5uaH5qan62ivqbIGPxp+U9ut3SmepQZ\
+lHlpkFkb91X5SftVOAdoen5yd5Vxn2sf93P77/c89/oFnbCUpJcaoHWVXx5F91X4ywYO+GH42Bb3\
+UtIHtKWSmZcflpmRp7Ua+2IG+zr7FLPaMh8y2l7q9wQa5KrbyNQeyNPSud2fCJ/c0pXGG/diBq+F\
+pH+YHph+cZJkG0T3U/k1+1NEBmRxhX5+H35+hXJmGvdiBvc29xNkPOYf5jy5KfsHGjBuOlFEHlBE\
+Q141eQh4NESCVBv7YgZhkW+XfR59lqaEtBvS+1IG+zz6FxX8GuYH9wjWoLSuH660nLe7GsZ1u1+u\
+Hq5fRJ0qG/xBFjAGSFmGgmkfaYFtdXJpCHJofmRfGmCYZaRqHqRqqnWuggiCrryGzBvmBg73dr8c\
+BXMV+YP7VVEGbHiJhoMfgoaHgoAahY2FjoUejoSVfpt49yj7Rhj3OvdMBaCilpyWGpaHk4KQHpCC\
+do5rG1j3VfkG+1UGXYprh3iGeIZ1gHJ7eX93enZ0/Af8Axj4LPxHuFuwbKh+GX2os4S+G/tV/ZD3\
+VdEHrJ+NkJMfk5CPkpQamICedaUe+133eftr+3kFeHaCeXsagpCDlYYehZWfiKobwftV/Q73VQa3\
+qo2Qnh+dkJySmpalnqumsLD4JPgiGPwR+C1nsm6jdJYZlXRkkFUbDvgWHAZH91UV9yf8L/tJSmzc\
+Xs5QwRnBUC2m+xUb/s73VckGuKeTmpgfmJqRr8Ya+XoHxIawgJsem4Btk1sbTfdV+T37VUwGX26E\
+fn4ffn6EaFIa/e74kPoAB7aGp4GaHpmBaZJRG1b3Vfk/+1VSBlpthH1+H359hWhUGv2MB1SRaZh9\
+Hn2XqoS8Gw73ZvlKHASyFVMGX26EfH4ffnyEaFYaLgdIkVuYcB6Xb593qH8Ifqe8hdIb93734Aa4\
+hqiAmB6YgGmSUxtd91X5OPtVUgZabYR9fh9+fYVoVBr9iAdRkmeZfh59mK+ExRuz+1X9P/dVuAbD\
+rpOamR+YmpKuwhr3dPvRByg/kplWH1aYWqZes16zbLV8twh7t4PG1Rr3CwfAhq+CnR6dgW2UWBtU\
+91X5LwYO+mYcCNoWHPdr91W7Brypk5yWH5WckK/CGvmLB7uFq36aHpp+aZJUG2v3Vfkb+1VpBlRp\
+hH5+H359hWdRGv3r+FD59ge7hat+mh6afmmSVBtq91X5G/tVaQZUaYR+fh9+fYVnURr96/hE+esH\
+woSvfZoemn1oklQbbPdV+Sr7VWMGUWeEfX4ffX2EZ1Ia/YAHU5Fnlnseepaog7sbuwYO+rgcCMf7\
+rxVq3V7PUcAIwFAupvsUGxz5HvdVuwa+qpSdlB+UnZCuwBr5iwe7hat+mh6afmmSVBtr91X5G/tV\
+aQZUaYR+fh9+fYVnURr96/hQ+fYHu4Wrfpoemn5pklQbavdV+Rv7VWkGVGmEfn4ffn2FZ1Ea/ev4\
+RPnrB8KEr32aHpp9aJJUG2z3Vfkq+1VjBlFnhH1+H319hGdSGv2AB1aQZ5V6HnmUqYK+G8oG9yf8\
+LwUO96b3TvoMFftLzPdA+H0F9xgGmVwF+XL7VVMGXGyFfn4ffX6EcGIa+5j3ggf3OPcTYjrmH+U6\
+uCf7Cxr7A2EpODceNjf7G2H7Thv9dfdVzga2ppKZlx+XmJGtwhr5zQehiZmHkh6ShoCOeBtgWndk\
+VR9UY1M5UfsRCPlR/SkV9y8G0sWbrLYftqyhu8savH6zcqsecqttoWqWCJZpWpFLG/sLBg75j9QW\
+91XOB7Wmk5qYH5eakay/GvmTB7yErH6aHpp9apJWG1z3Vfk8+1VTBmFuh4N7H3qCg25ZGvuY94IH\
+9zj3E2I65h/lOrgn+wsa+wNhKTg3HjY3+xth+04b+3X3dxX3LwbSxZusth+2rKG7yxq8frNyqx5y\
+q22hapYIlmlakUsb+wsG+bD5lxX5PPtVTQZnc4iFgB9/hIKBhn4IhX2IcWQa/ZgHYY1wkH8ekH+T\
+gpaGCIOZoIenG9X7Vf0891XCBrKljpGXH5eQlJSRmAiQl46jsBr5mwe2iKiGmR6FmIGWfpIIkIJ0\
+jmcbTQYOeN0W91XOB7Wmk5qYH5eakay/GvmTB7yErH6aHpp9apJWG1z3Vfk8+1VTBmFuh4N7H3qC\
+g25ZGvuY94IH9zj3E2I65h/lOrgn+wsa+wNhKTg3HjY3+xth+04b+3X3dxX3LwbSxZusth+2rKG7\
+yxq8frNyqx5yq22hapYIlmlakUsb+wsGDvck+q35zBV89w9i6EbKCMpGPqo0G/s3+yD7C/uC+wsf\
++07B9x74iQX3IQaULwXY3/cRsvc5G/da9zpH+xz3Gh/3GvsczvtB+2ca+15H+z77HPsfHvsf+x37\
+Qkb7Zxv7wPt59x33p/sxH/cv9we5WMNJtl2qchmpcrVzwXYIdsDCgMQb8OKz2tMf09q47p33Cwj8\
+fPdXBg76W/jW+PwV+7sHUZFnmH4efZithMMbs/tV/S/3VbIGwq2TmpgfmJqRqrsa+YoHwYavgp0e\
+nIFtlFgbVPdV+S/7VVMGX26EfH4ffnyEaFYa+4f3Xweq90je9yP3G/QI9Pca9zm/91cb93P3SEf7\
+HPccH/cb+xzP+0D7ZRr7Z0j7Qfsa+xse+xv7GvtMR/t9G/tj+z7E9wf7GR/7GfcGPfcwdvdaCPro\
+2BX3Nmr3EUjiHuJIN7YmG/sIMFsqSh9JKmr7DPskGvsmq/sLyzAeMMvjXfcEG/cG5Lnoyx/L6Kv3\
+CvclGg73dhwF9BwFcxX98AZUToaBSh9JgVB1VmlWaWFgblcIbld8UEoaIbE110oe1knlYPJ3+7P7\
+4hh/fHh0ent8gBl8gHuDfIYIhnx1iXAbT/tV+FMG+FT47QX3CPuqBluIbYZ+HoZ+goGAhQiEf3OI\
+aBtL+1X5PvdVTQZqdI+Sfh99koGVhJkIiJOJpLUa+aUHqo6hkJgekJiTk5aPCJKbnY+gG6eKBb8G\
+/JZtFfv9+2MHOk6TmmMfYpptoHenCHanga2zGrCVqp6mHp6lpp6umAiYrsSR2hsO+T348RXVB7eH\
+qYScHoScfZl4lgiWeHOQbht1d4eEeR95hH2BgICAgH91fWp5YnZtcnkIeXJtgmkbYGiYpnAfcKZ9\
+rLIauJmyp64esLnDsdWoCKjV3proG+jafG3MH8xtuGelYgikYZhLNhr7+gdfjW+Qfx6QfpWAmoII\
+gpqchp4bnqSQlqof+1cHeVJVglcbTlaVn2AfYJ9mqW6zSGBPbFV5CHhUV4JYGyw+psFQH1DAbs3a\
+GriVtKCwHp+wqay0p7OnyaTgod+g8Zv3DZQI+zoENH5Nf2d+Z35xenx4CHx3g3d2GnCVdZ95Hnmf\
+poKtG6GlkZaoH6iWq5yvoQgOJhwEzxwGCRWGVHtQb0pvSmVdWnEIcVo6fvsHG/uEBiFAdV9fH19e\
+bzl/+wychRjw4vcNvfcuG/ch9xJfNPcCH/cCNML7FvtAGvswWPsTJioeKib7HFr7PRv8DPtQ93T4\
+U/cJmfcXp/ckH6f3I8H3ANvSCNLb9a73Fxv3tgbdwZScpB+knJ6qmrYI+5f+0hXteNZmwB7AZVil\
+TBtQWXJaYh9iWnY/JBomnj6xVx5WsL1xyRvFvaS8th+1vKDZ9BoOXeX3VRWoBsCtkJSYH5iUkaOy\
+GvhLB7KFo36UHpR+apBVG273Vvl2Bvcd7HFYxB/EWKdMQhoiUT/7CFse4nPEbaZmCKVmmGBYGjds\
+R0xXHlZMJ3H7HRv9iAb4YvjhFfdRBsiylZ6eH56elKasGtJaryke+1EG/O4E92gGy7SWopwfnKGT\
+paga1FqwKR77aAYO+4z5Vhb8/PdVqAbArZCUmB+YlJGjshr4SweyhaN+lR6UfmqQVRtu91X6JAb3\
+M/vm+0M6YtVkv2aqGapmS5oyG/sN/IsGZJJzmIIegpishsIbpgYOr/cH+14V+0Pc9wP3zgWxBran\
+jY+YH5ePl5SXmZaZm6ift/c++A0YlqKQnJgapIObepQek3ppj1obb/dV+oD7VW4GVmqGgn4ffoKE\
+cmQa/EsHZJJzmIIegpiuhsQbvAb3BfvO+0M6YNhkv2apGahmTJk0G/ymBjRMfG5mH2ZuY1ZhPwj5\
+Wvg2FfjK+xAH+1r8dAWEe4iAhRp0knyYhR6FmK+IxBsO+mn4BhX3HfsePDE7SjpjGWI5M3csG/ss\
++xS/8iMfI/JX9xD3JhrrouO62x662svK3rgIuN7oofQbzseBeMIfwni7b7RntGesYKRYpFicVpRU\
+CI9wjV9QGv01Bow2pEe8VwhWu8Zx0Ru4u5mmwB/Apr+zvsII+1z3tRWGs4KrfaJ8onidc5kImHJy\
+knAbb3CEfXEfcX12eHxze3OBbIZmCA74XPk3+noV+HH7VQZoinWFgIEIgIGGdWoa+zAH92j3OAWo\
+opqblBqcbpRSHvdV+LL7VQdka4eDcx9zgmt3Ymr7UPspGPeP+8+laqJ3n4MZgp6uh70b+1X8yvdV\
+oQezn5OblYCedqcf+wb3KPsSLQVVB2qQdpaAHoCVnoaoG6H7VfyJ91WhBqiekZaWH5WWkKCrGsEH\
++xLp+wb7KAV2b4B4gRp7n4OzHqH7VfzK91UGvK2Pk58fnpKjoKat94/3zxj7UPcpYqxrn3KUGZNy\
+bI9lG/dV+LL7VXEHZHeDeoGZe6h0H/do+zgF9zAHr4WigJQelIB0kGobDvul+A36qRWaPwWuzNSd\
+3Bv3EulxVsofyVaqSz4a+wFbPypfHvcRY8o8+woaLGBBNlQeVDb7BW/7Hxv7bPs+5vdK+xAf9yb3\
+FQX7CeH2UfcVG9S7lZ+iH6KflqevGqeCpXmiHqJ5YpZMG/sc9zr3EAbnubDV1FyvLGFfgHReH110\
+VklOIPtB3Bj3QfgQBQ7K+TP6ehX7VW0HZnSGgYIfgoCGcWAa+24H99H3bgW2hqaClR6VgnSQZhtt\
+91X42ftVbgZWaoaCfh9+goRyZBr8SwdkkXOYgh6CmKyGwRuo+1X82fdVqQawo5CWlB+UlY+lthr3\
+bAf70ftsBWCQcJSBHoGUooawG6n7VfzZ91WoBsCtkJSYH5iUkaOyGvhLB7KFo36VHpR+apBVG273\
+VQYOyvkz+noV+1VtB2Z0hoGCH4KAhnFgGvtuB/fR924FtoamgpUelYJ0kGYbbfdV+Nn7VW4GVmqG\
+gn4ffoKEcmQa/EsHZJFzmIIegpishsEbqPtV/Nn3VakGsKOQlpQflJWPpbYa92wH+9H7bAVgkHCU\
+gR6BlKKGsBup+1X82fdVqAbArZCUmB+YlJGjshr4SweyhaN+lR6UfmqQVRtu91UG90D4LxWxmKql\
+ox6ipaqXsBuspYN6nx+fep5wnGagXaFsonwIe6Gyg8MbwrOTm6IfopqhqqC5nbCepqCcCJygppOu\
+G7Krf3OkH6RzmG1nGkllUUBZHllA+wZy+ysbLj+TnFAfUJtWp1yzCFyzdLm/Gg5+5Rb3VagHwK2Q\
+lJgfmJSRo7Ia+EsHsoWjfpUelH5qkFUbbvdV+L37VQZjc4aAgx+CgId1ahr7MAf3afc5BaihmZuW\
+Gptvk1Ie91X42PtVB2Ruh4N2H3aDaXdbavtn+yQY96j71ahpo3adhBmDnK2Hvhv7Vfzz91WiB7Of\
+k5uVgJ52px/7B/co+xItBVUHa5B2loAegJWfhagboPtVBg77T/iaFvyn91UGvYysj5uUm5Oco560\
+99v5Yhj3oAb36f14BWCfrnW+G6r7Vfz591WqBrOlj5KWH5aSkJSYGpWHm4KgHvsw+Bj7NPwYBYJ0\
+hnuBGnKqfsgeugYO+Br6uvp6Ffj2+1VuBlVqhoJ+H36ChXJkGvxLB2SRc5iCHoKYrIbBG6j7Vfza\
+91WpBrCjkJaUH5SVkKW2GvhcB/ui/XwF+14G+6X5fAX8XAdgkHCUgR6BlKKGsBup+1X8dvdVqAbA\
+rZCUmB+YlJGjshr4SweyhaN+lR6UfmqQVRtu91X4+gb3Tfx4BQ7K+ML4MxX7EwdgkHCUgR6BlKKG\
+sBup+1X82fdVqAbArZCUmB+YlJGjshr4SweyhaN+lR6UfmqQVRtu91X42ftVbQZmdIaBgh+CgIZx\
+YBoi99H0B7aGpoKVHpWCdJBmG233VfjZ+1VuBlZqhoJ+H36ChHJkGvxLB2SRc5iCHoKYrIbBG6j7\
+VfzZ91WpBrCjkJaUH5SVj6W2GvcTBw4m+Qz6khX3Bu51XuAf4F7MT7k+CLg+ojAkGvswWPsTJioe\
+Kib7HFr7PRv7QfsdvO0lHyjoWvcT9zMa9KLluNYeuNbMyOC5CLjg7aL3AhuP+28VZWeAdGofanRx\
+anlfCHhfglNHGkWUUZ1dHp1dpGmrdQh1qq6AsRvGvaS9tR+1vKDY9BrweNhkvh6+ZFmkThsOyvkz\
+91UV+1X82fdVqAfArZCUmB+YlJGjshr4SweyhaN+lR6UfmqQVRtu91UcBOX7VW4GVmqGgn4ffoKE\
+cmQa/EsHZJFzmIIegpishsEbqPtV/Nn3VakGsKOQlpQflJWPpbYa+IL70fyCB2CQcJSBHoGUooaw\
+Gw5P+JD6khX7AwfXusWptJkImLO2krkb9wnqYDXUH98otfsS+y0a+ydm+w5CKB77Bjf7BVL7IRte\
+Y5CWaR9plWaeY6YI+10HY41zj4MekIGShJaHCIaVpYm0G7r7Vf0C91WtBrmnjY+VH5SOk5ORlwiQ\
+lo6jrxr6FPsp91YH05TIlb6Yvpi+nL+iCPcX+8wV+9oHWJBmlXYelHWceaN+CH2ipoSqG8G4pL2v\
+H669ndfxGup80Wy5HrhsZKJeG1dRc1pMHw76cPgOFfcn+xU8LDpFNmAZYDYxdSob+y/7Fb3wJB8j\
+8Ff3DvclGu2j5bzcHrvczcvguAi43+6i9wcb9x33BWtM4h/iS7ZIRBpthHB+dB59c3Z4b3wIfG9t\
+hGwbcnSQlXcfd5V6mH6ahZJ/n3qudbZ6qH+Zf5l9lnqTCJJ6eI92G2hqgHVsH2t0cWl3Xgh2XoFY\
+UxpOl1SjWh6jWqtltHIIcrO3frwburqYpLofuqS+t8LKCA5P+pv6qRX3Ggb3LPwX+0M7BfcmTC/U\
++wwbaHp2YB/8WgdkkXOYgh6CmKyGwRuo+1X8/PdVqAbArZCUmB+YlJGjshr4Wge2eaBo+wwwQvsm\
+TB77Q9v3LPgXBfcZBpxcBfljBg4mm/p6FfkE+1ViBmZziYaCH4GGhoOCGoOSdplpHvcq+/33Mff9\
+BZemkZ+XGpaGk4GRHpCBdI5nG1L3Vfiv+1UGXIpvioOIgIiBhoSEhIR/dnpq/Fj+MxhcKldIU2QI\
+ZFJIeD0bP06ftFwfXLNzuL4as5mtp6keqKetmbIbpqWEfqQfnIKcfZx2ln6TgpKICIeRkYmRG5mZ\
+kpiYH5+gorCkwrHdGPvo+V16r3+igpQZgpSAkoCOCI6Abo1eGw74EvqhHAW7FfzCB9bB37H3Bhv3\
+CeZZJ80fzSas+wv7HRr7LGb7FEEkHiNBKFf7ERs4Q6O7Th/7fQdukXmXgx6Cl6iHuhu5+1X9AvdV\
+rgbAq5CVlx+WlZGnuhr3XQdbTkNzNxv7DSi+8kAfQPFl9xT3Lxr3I633DM/tHuzP5Lz3Axv3COBl\
+QMEf9637KfdVB/cbmvcEp+a0CPtR/YkVvFRXo1gbXWdyWXIfcVh+RzYaLppBqVUeVKm1cMEbua2Z\
+p6AfoKaWus4a99X32hX72gdIllygcB5voK19uRvAtabBqh+pwZrV6RrsfdFvuB64bmmhYhtZVnNa\
+VB8O+yK5+noV+PP7VQZqd4iGgh+ChoeDgBqAlHqcch7i+wvj9wsFnqSUnpYaloeSg5AekIJzjWMb\
+91X4ZftVB2Nuh4N4H3iCdXp0cPtX+3YY92j7erBkqHKggBmAoKuGtRv7Vf0U91WvB6idjpCUH5SQ\
+j5KUGpSBnHelHvsZ9z/7C/s1BXJqf3aCGoKPhZOGHoaTnIimG7b7VfyA91UGqYqjjZyQnJCakpiU\
+mJScnaGm93b3lhj7Ufdkc6V1nHiUGZR3bY9kGw7g5Bb3VagHwK2QlJgfmJSRo7Ia+EsHsoWjfpUe\
+lH5qkFUbbvdV+Nn7VQZVa4eCgB+AgoZwXRr8gvfR+IIHuIangJQelIBrj1Ub91X42ftVbgdWaoaC\
+fh9+goRyZBr8SwdkknOYgh6CmK6GxBu8Bvcp+877Qzpg2GS/ZqkZqGZMmTQbDnYcBOwW/Pz3VagG\
+wayQlJgfmJSRo7Ia9PvBBzJJlqFfH16gaap0sgh0sn/B0hq5B7GFo3+VHpV+apBUG273VfjZ+1Vt\
+Bm52iIZ+H36FhHFcGmcHYZRvnnwefJ6vhMEb90j3Gwa2hqaClR6VgnSQZhtt91X42ftVbgZWaoaC\
+fh9+goRyZBr8SwdkkXOYgh6CmKyGwRuoBg75IhwHkBYc+Mr3VagGuqmQlZgfl5SRo7Ea+EsHsYWj\
+f5UelX9tkFsbbvdV+Mn7VQZUa4eCgR+AgoZvXhr8gvfP+IIHuIangJQelIBrj1Ub91X4rvtVB1Rr\
+h4KBH4CChm9eGvyC98/4gge4hqeAlB6UgGuPVRv3VfjJ+1VuB1tthoF/H3+BhXNlGvxLB2aRc5eB\
+HoGXqYa7G6gGDvk75Rb3VagHuqmQlZgfl5SRo7Ea+EsHsYWjf5UelX9tkFsbbvdV+Mn7VQZUa4eC\
+gR+AgoZvXhr8gvfP+IIHuIangJQelIBrj1Ub91X4rvtVB1Rrh4KBH4CChm9eGvyC98/4gge4hqeA\
+lB6UgGuPVRv3VfjJ+1VuB1tthoF/H3+BhXNlGvxLB2aRc5eBHoGXqYa7G8kG9yn7zvtDOmDYZL9m\
+qRmoZkyZNBsO9yD3P/jUFftD3Pcs+BgF9xkGnFwF+S/7VVYGWGuGgn4ffoGEc2QaIverB/cE4nBW\
+yh/JVapEMhpEcURYRB5EVy5o+xkb/Xn3VagGwayQlJgfmJSRo7Ia+JpXB2ZhfG5cH1ttX1BiMwj5\
+BfwJFfcxBu28sNXUWrApH/sxBg74uPi8+PkV96oG9xfnbE7AH8BOpkdCGkRxRFdEHkRXLmj7GRv9\
+ePdVqAbArZCUmB+YlJGjshr4SweyhaN+lR6UfmqQVRtu91X5C/tVbgZJY4eCfh99goRzYhr8lwT3\
+MQbsvLDV1FqwKh/7MQb5TPgRFfdV+Nn7VW4HVmqGgn4ffoKEcmQa/EsHZJJzmIIegpishsAbqPtV\
+/Nn3VakGsKOQlpQflJWQpbYa+DoHtoamgpUelYJzkGYbDiT4vPj5FfeqBvcX52xOwB/ATqZHQhpE\
+cURXRB5EVy5o+xkb/Xj3VagGwK2QlJgfmJSRo7Ia+EsHsoWjfpUelH5qkFUbbvdV+Qv7VW4GSWOH\
+gn4ffYKEc2Ia/JcE9zEG7Lyw1dRasCof+zEGDvl++DMV+8P3UvfLBvcddj/P+xYbWV5/dGMfY3RZ\
+S1Aj+0HcGPdB+BAF9xgGkTcFtNHZn+Eb9x/3Clws7B/rLLv7D/sqGvszV/sVIygeKCP7FVn7Lhv7\
+W/tB5vdK+yUf9yb3FQX7BevtUu8bysOgtLofurSovJbCCA747/iz+DMV+xMHYJBwlIEegZSihrAb\
+qftV/Nn3VagGwK2QlJgfmJSRo7Ia+EsHsoWjfpUelH5qkFUbbvdV+Nn7VW0GZnSGgYIfgoCGcWAa\
+IveEB5b3AcPr8OAI4PD3ErX3LBv3OfcbXC70H/Qtv/sT+zMa+zBZ+xMmKh4qJvscWvs9G/s1+xe1\
+4CgfKN9V84P3EAj5jNwV7HjXZsAewGVYpUsbUFpyWmIfYll2PyUaJp4+sVceVrC9cckbxb2kvLYf\
+tbyg2fQaDlP47PgVFfuM/BUF+8r3VQbCsZKYoR+hmJ6enKLq9xkYPKJTsmrACGrAesHCGtOl0r/S\
+HtK/5673GRv5pvtVbgZVaoaCfh9+goVyZBr8SwdkkXOYgh6CmKyGwRuo+1X9DfdVqgbNs4+UmR+Y\
+lJKjsxr1B/gqBPtdBihaZkFBvGbuH/ddBg76afgGFfcd+x48MTtKOmMZYjkzdywb+yz7FL/yIx8j\
+8lf3EPcmGuui47rbHrray8reuAi43uih9BvOx4F4wh/CeLtvtGe0Z6xgpFikWJxWlFQIj3CNX1Aa\
+/TUGjDakR7xXCFa7xnHRG7i7mabAH8Cmv7O+wgj7XPe1FYazgqt9onyieJ1zmQiYcnKScBtvcIR9\
+cR9xfXZ4fHN7c4FshmYILPmNFbKufG6oH6humWhkGmZ9anBwHnBvan1kG2RpmadvH26nfa2zGrSY\
+rKamHqamrJiyG/h2FrKtfG6oH6humWhkGmZ9anBwHnBvan1lG2NpmadvH26nfa2zGrSYrKamHqam\
+rJizGw4s+QgmFX+cnoWgG/cLx/cZ95/3m1j3GCVbVnJaUB/7yAdekG+WgB6AlaWFtBuh+1X82vdV\
+wwaypJCVlh+VlZCksxr5VPsm9yf3Js77JvdKB/cTk/cRp/cNuwjp++H4ZPsn/GT7TgbWyeCx9hv3\
+B+paKdYf1Siw+y37ZRr7dWP7OTwkHiM7I1f7ExsyPqbBTB8O+4z5Vhb8/PdVqAbArZCUmB+YlJGj\
+shr4SweyhaN+lR6UfmqQVRtu91X6JAb3M/vm+0M6YtVkv2aqGapmS5oyG/sN/IsGZJJzmIIegpis\
+hsIbpgb7zPo9FWPw92v3VAXCycSmvxuzrX1upx+nbploYBpsf2xzbh5zbmF1Tn4IDvhO+DMVllSo\
+WrpiCGK6wnbKG/DtxPcF6h/3J/sVBftK+yX7PjD7Vxv7CiqhuT4fPrhMyVzbCFzbc+PrGvcju/cQ\
+6/Me8+v3Cb/3Hxve1nNc0B+a6QX3GAb3QfwQ+0E6Uu9bymWkGaRlX5hZG/sZPEf7HXMf98v7UgYO\
++8b5h/p6FfcXBtz7qvtRP2fFXrlVrBmsVFWbVhtocIV/eh96f4J9ehp9kX6Yfx6Xf6R+sn73pykY\
+vHq5dbhxuHGsa6JmCKFlll9YGjBoQUZRHkc6JWn7DRsjMKXAPh9vVAX7GQb7D/fc91HbukHGUdBh\
+GWDQy3bFG6+pk5ykH56YlJudGpqEmnyZHnyZa5tZnPts1hj7C7U6uGC7CGC6dcTMGt+t0s7EHszY\
+6az3BRvv4XRe0h8O/Q74FBwFvBW+tnlorx+uZ51gWBpYeV9oaB5nZ2B5WBtYYJ2vaB9nrnm2vhq9\
+nbawsB6vsLWdvBv3NvxSFf13B2iNdY+DHo+DkoWWhwiGlaKJrxvB+1X8/vdVwAauoY2PlR+UjpKR\
+kJQIkJSNnKUa+HH7KPdQB8COvZC8lLuUtpWxl6STqZivnggO/Q74tvqSFf13B2iNdY+DHo+DkoWW\
+hwiGlaKJrxvB+1X8/vdVwAauoY2PlR+UjpKRkJQIkJSNnKUa+HH7KPdQB8COvZC8lLuUtpWxl6ST\
+qZivngj72vgiFbKufG6oH6humWhkGmZ9anBwHnBvan1kG2RpmadvH26nfa2zGrSYrKamHqamrJiy\
+G/h2FrKtfG6oH6humWhkGmZ9anBwHnBvan1lG2NpmadvH26nfa2zGrSYrKamHqamrJizGw79N/gY\
+HAW8Fb62eWivH65nnWBYGll5YGhnHmdnYHlYG1lgna9oH2eueba+Gr6dtq+vHq6utp29G/c1/FIV\
+/r0HJnw9blceblZaX0hpCGhIOnouG0dRlZ9cH1ueZ6VzrAhzrH+srhqwmqqopR6kqKyYsBuio4R9\
+pR+kfahxrGQIdJ+df5wboZyUnZgfmJ2Rq7oa+f37J/dSB9CMy5PHmceYxqDGqAgO+BAcBNf6ehX7\
+VW4HSWOHgn4ffYKEc2IaIveIB/cW52xOwB/ATqZHQhpEcURYRB5EVy5o+xkb/Vb3VagGwK2QlJgf\
+mJSRpLIa+JX7Igf7aPyVBYJ0hnuBGnKqfsgeuvtV/Kf3VQa9jKyPm5Sbk5yjnrT3T/guGJaikJyY\
+GqSDm3qUHpN6aY9aG273VQb5/v2vFfcOBuy8sNXUWrAqH/sOBg74jfmOFvdVqQewo5CWlB+UlY+l\
+thr3HPvR+xwHYJBwlIEegZSihrAbqftV/Nn3VagGwK2QlJgfmJSRo7Ia+EsHsoWjfpUelH5qkFUb\
+bvdV+Nn7VW0GZnSGgYIfgoCGcWAaKvfR7Ae2hqaClR6VgnSQZhtt91X47vtVbgZJY4eCfh99goRz\
+Yhoi94gH9xfnbE7AH8BNpkhCGkRxRFdEHkRXLmj7GRv7iPdfFfcPBuy8sNXUWrAqH/sPBg6h3/pv\
+Ffcn9ybO+yb3Sgf3E5P3Eaf3DbsI6fvh+GT7J/xk+0oG1PcJ9wGv8hu+uoJ5tx+3ebJtrGEIrGCb\
+TTga+8kHWpFtloAegJaphbsbuvtV/OD3VakGsqORl5UflJaQp7ca94EHv4WwfqAeoH5ylmYbSEFt\
+UDgf+7YHXpBvloAegJWlhbQboftV/Nr3VcMGsqSQlZYflZWQpLMa+VQHDn7lFvdVqAfArZCUmB+Y\
+lJGjshr4SweyhaN+lR6UfmqQVRtu91X4vftVBmNzhoCDH4KAh3VqGvswB/dp9zkFqKGZm5Yam2+T\
+Uh73VfjY+1UHZG6Hg3YfdoNpd1tq+2f7JBj3qPvVqGmjdp2EGYOcrYe+G/tV/PP3VaIHs5+Tm5WA\
+nnanH/sH9yj7Ei0FVQdrkHaWgB6AlZ+FqBug+1UG+xD6/hVj8Pdr91QFwsnEpr8bs619bqcfp26Z\
+aGAabH9sc24ec25hdU5+CA4mm/p6FfkE+1ViBmZziYaCH4GGhoOCGoOSdplpHvcq+/33Mff9BZem\
+kZ+XGpaGk4GRHpCBdI5nG1L3Vfiv+1UGXIpvioOIgIiBhoSEhIR/dnpq/Fj+MxhcKldIU2QIZFJI\
+eD0bP06ftFwfXLNzuL4as5mtp6keqKetmbIbpqWEfqQfnIKcfZx2ln6TgpKICIeRkYmRG5mZkpiY\
+H5+gorCkwrHdGPvo+V16r3+igpQZgpSAkoCOCI6Abo1eG/dN+PAVsZiqpqMeoqWql68brKWDeqAf\
+n3qecJxmoF2gbKJ8CHuhsoPDG8Kzk5uiH6KaoaqhuZywn6agnAicoKaTrRuxq39zpR+kcphtaBpJ\
+ZlFAWR5ZQPsGcvssG/st+wekvkAfP75lxMoaDsr5wfuGFftW1Ab3BUDD+yoe+8T3VagGwK2QlJgf\
+mJSRo7Ia+EsHsoWjfpUelH5qkFUbbvdV+Nn7VW0GZnSGgYIfgoCGcWAa/IL30fiCB7aGpoKVHpWC\
+dJBmG233VfjZ+1VuBlZqhoJ+H36ChHJkGvxLB2SRc5iCHoKYrIbBG6j7VfvFBvsqQFP7BR8O+wP6\
+/hwEjxX8sv32BlaUbJyCHoGcqYa1G8T7Vf0891W4BryskZibH5uXk6W0Gvm2B7qEqXyYHph8apFX\
+G173VfjUBujQkpi5H7mYtqaztLKzscav2vdJTBgO++nA+noV+KkG5MqaqbAfsKmzv7TW90M6GPsz\
+++UF/Bj8iwZkknOYgh6CmKyGwhum+1X8/PdVqAbArZCUmB+YlJGjshr4SweyhaN+lR6UfmqQVRtu\
+Bg74vpscBXMV+Pr7VQZkcoqIgh+BiIOGhIIIhIKHgIAagY91lGoe90/9aPc3+JdL92WJkIiTiJcZ\
+gqx+onqZephyk2qMCPdV+Nv7VVwHaXWHg4EffYCEfHoafpBylWQe9zn9F/c++RcFmLqRppQam4WX\
+f5Qek390j2obWPdV+Kb7VQZlcIeEex96g35/gHuAe31pfFj7yf6yGPvCBvs2+MP7QvzDBfvOBvvM\
++sJ+un+pgZkZgZh9lnqSeZJwj2aKCBwEkve0Ffva0VKXYp9xphlxpn6ssRqlkaSYoh6Yop2dopkI\
+mKKhkqEbwsVvVMkf92v7VAUO96Cb+noV+KX7VXUGcnqIhoQfgoSGgoAagY59kXge9yD8RPcN9+Vr\
+6oKnf59+lhl9lneScIwI91X4i/tVYgd0fIiEgh+ChIeCfhp/j3qTdB73Dfv79w73+wWToo+dlxqY\
+hpSCkh6RgXeObBt091X4VftVBmt2iYeBH4GHgoWEgoJ+gHWAbPuh/V4Y+50G+yn4J/ss/CcF+58G\
++5v5XoKkf6B+nBmDloOTgo6CjnaNaowI+pj32RX72tFSl2KfcaYZcaZ+rLEapZGkmKIemKKdnaKZ\
+CJiioZKhG8LFb1TJH/dr+1QFDvi+mxwFcxX4+vtVBmRyioiCH4GIg4aEggiEgoeAgBqBj3WUah73\
+T/1o9zf4l0v3ZYmQiJOIlxmCrH6iepl6mHKTaowI91X42/tVXAdpdYeDgR99gIR8ehp+kHKVZB73\
+Of0X9z75FwWYupGmlBqbhZd/lB6Tf3SPahtY91X4pvtVBmVwh4R7H3qDfn+Ae4B7fWl8WPvJ/rIY\
++8IG+zb4w/tC/MMF+84G+8z6wn66f6mBmRmBmH2WepJ5knCPZooI+bD3tBVj8Pdr91QFwsnEpr8b\
+s619bqcfp26ZaGAabH9sc24ec25hdU5+CA73oJv6ehX4pftVdQZyeoiGhB+ChIaCgBqBjn2ReB73\
+IPxE9w335Wvqgqd/n36WGX2Wd5JwjAj3VfiL+1ViB3R8iISCH4KEh4J+Gn+PepN0HvcN+/v3Dvf7\
+BZOij52XGpiGlIKSHpGBd45sG3T3VfhV+1UGa3aJh4EfgYeChYSCgn6AdYBs+6H9Xhj7nQb7Kfgn\
++yz8JwX7nwb7m/legqR/oH6cGYOWg5OCjoKOdo1qjAj5FffZFWPw92v3VAXCycSmvxuzrX1upx+n\
+bploYBpsf2xzbh5zbmF1Tn4IDvi+mxwFcxX4+vtVBmRyioiCH4GIg4aEggiEgoeAgBqBj3WUah73\
+T/1o9zf4l0v3ZYmQiJOIlxmCrH6iepl6mHKTaowI91X42/tVXAdpdYeDgR99gIR8ehp+kHKVZB73\
+Of0X9z75FwWYupGmlBqbhZd/lB6Tf3SPahtY91X4pvtVBmVwh4R7H3qDfn+Ae4B7fWl8WPvJ/rIY\
++8IG+zb4w/tC/MMF+84G+8z6wn66f6mBmRmBmH2WepJ5knCPZooI+Wv41hWyrnxuqB+obploZBpm\
+fWpwcB5wb2p9ZBtkaZmnbx9up32tsxq0mKymph6mpqyYshv4dhayrXxuqB+obploZBpmfWpwcB5w\
+b2p9ZRtjaZmnbx9up32tsxq0mKymph6mpqyYsxsO96Cb+noV+KX7VXUGcnqIhoQfgoSGgoAagY59\
+kXge9yD8RPcN9+Vr6oKnf59+lhl9lneScIwI91X4i/tVYgd0fIiEgh+ChIeCfhp/j3qTdB73Dfv7\
+9w73+wWToo+dlxqYhpSCkh6RgXeObBt091X4VftVBmt2iYeBH4GHgoWEgoJ+gHWAbPuh/V4Y+50G\
++yn4J/ss/CcF+58G+5v5XoKkf6B+nBmDloOTgo6CjnaNaowI+N34+xWyrnxuqB+obploZBpmfWpw\
+cB5wb2p9ZBtkaZmnbx9up32tsxq0mKymph6mpqyYshv4dhayrXxuqB+obploZBpmfWpwcB5wb2p9\
+ZRtjaZmnbx9up32tsxq0mKymph6mpqyYsxsOyowcBXMV+Un7VVcGZnSIhoIfgoWGgn4aepZxoGge\
+90v7w/dg99CdppWbjY4ZjpKMk5IaloeUhJAekIN5jm8bRPdV+MD7VQZaimmGeIB3gHNycGL8CPyy\
+GPuNB1+Ob5F+HpB+lYGZhQiEmKaIsxu8+1X9PPdVsAa7qo6SmB+YkZaWkpoIkpqOqbga924H/Af4\
+yW63cad1lhmSe2uPXBv6Dve0Ffva0VKXYp9xphlxpn6ssRqlkaSYoh6Yop2dopkImKKhkqEbwsVv\
+VMkf92v7VAUOJpv6ehX5BPtVYgZmc4mGgh+BhoaDghqDknaZaR73Kvv99zH3/QWXppGflxqWhpOB\
+kR6QgXSOZxtS91X4r/tVBlyKb4qDiICIgYaEhISEf3Z6avxY/jMYXCpXSFNkCGRSSHg9Gz9On7Rc\
+H1yzc7i+GrOZraepHqinrZmyG6alhH6kH5yCnH2cdpZ+k4KSiAiHkZGJkRuZmZKYmB+foKKwpMKx\
+3Rj76Pldeq9/ooKUGYKUgJKAjgiOgG6NXhv54ffZFfva0VKXYp9xphlxpn6ssRqlkaSYoh6Yop2d\
+opkImKKhkqEbwsVvVMkf92v7VAUO9zkcBgz5IxX7cRz56PdxBw79YPgs+XYV+2D3LSX3MPczGtqi\
+y7q6Hrq5wKPHG764eWixH7Fnnl5UGmB9ZW9qHmpuaXtjG25xlJ10H5hcoGKnaqZpwVbbQwgOeGEc\
+B00VHAWcQRz6ZAYOePgy+P0V+9D3APefBoCif6Z/qQj7fPcA91UGf7eFtrYa9wq75+vOHs3r9w2s\
+9yYb9xz3AmhE3h/eRLgikfsf+2JxGPchekPR+xQbUll8bmIfYW12Xk8acI9slGoe+AL7APvcBpNz\
+k3CUbgj3w/sA+6kGkmWPZmgaZIRifGEe8mDMcaWDCIKlq4eyG/cBwdX3KZSLmYqeH/dWkwWOZoxo\
+ahr7NWz7Dk06HjlMO2IqG2Rgk5taH1qaM8L7FOgI+xFBIE37IBswRKfEVx9WxHHN1hrbp83Cvh6+\
+ws2k2RvMxndjwB+Csnm7ccUIwPvtFcBXVqZWG3Jygnl0H3R5f3NtGmyXdKJ6HnqipIKnG8q/stiz\
+Hw76FtkcBXMV+MsG+C39wgX4hge2iaWGlh6Em4KWgJIIkYB1jmobR/dV+NT7VUsGa3SHhH4ffYSB\
+gYZ+CIZ+iHBhGv7L+7MH/Jr6mAX9YwdijnCQgB6QgJSCmIQIhJihiKsbzvtV/Nf3VccGrKKOkZgf\
+l5CVlZKZCJKZj6CnGvm0B6qIoYSaHoSZgpWAkgiRgHiOcBtABhwIUfyIFfsXaStGTh5ORjFs+wQb\
++w0vrc9MH0zOa+X3BBr3DK3nz8sey8/mq/cGG/cE5WxMzh/OTK0y+wka/Ar7iBXsu9r3MfcxW9kr\
+LVw9+zH7Mbo86B/8B/udFfl8+1X9fAYO+yL31finFfwHBzrb7mP3Cxv3PfcY3fc46R/TYD37BT5B\
+P2gZZz49eTob+y37E7/0KB8n81n3HPc8Gvc5vfcc7vUe9O73EsD3Lxv3I/cOXCzwH/AswvshkvtP\
+CPt71RX3wAfaOCey+wkb+wkpZDw6H/vABw77IvctFvkOB/hh+Jv4YvybBf0OB/3e3BX5jfibBvwR\
++D/8EPw/BQ77IvfH+CAV+1D4uvpz+1D9twYO+yL5Q/yXFfslHAcTBvceqPcAxNke2cTQstsbsqyC\
+eKYfpXiYcGgacIJ1enoeenl2gnQbdHmQlH0ffJR9mn2iCKR7e5d8G3h9g3uEH4N6h1g1Gg77Iviy\
+HAbJFfclHPjtBvsebvsAUj0ePVJGZDsbWmeWo3YfdqKAo6YappShnZ0enJyfk6Ibop6GgpofmYKZ\
+e5l1CHKbm3+aG56Zk5uTH5Kbj77iGg7kHAXG+KoVHPoo90McBdgGDuT5F/0BFRwJtfdDHPZLBw7k\
+HAXH+VkV+0P9KRz7fftDHAUyBw7k+Rb4qhX9KPdD+dcc+s77QwYO5PkX+KoVHAUy90Mc+335KftD\
+Bw7k+cX4qhX91/dD+SgcBIP3QwYO5PkX/QEVHAm190Mc+335KftD/Skc+30HDuT5Fv0BFRwEg/0o\
+90P5KBwEg/dDHPZLBw7k+Rb4qhX9KPdDHAXY+0P9KRz7fftDBg7kHAXG+KoVHPoo90P5KBwEg/dD\
+HPt9+SkGDuT5FviqFf0o90P5KBwEg/dDHPt9+Sn7Q/0pHPt9+0MGDuQcBcb5aBUc+ij3QxwF2Ab8\
+vwQc+ij3QxwF2AYO5PnV/QEVHAm190Mc9ksH/L8WHAm190Mc9ksHDuT5F/0BFRwF8PnY+0P9Kfth\
++Sn7Q/0p/lkHDuT4Wf0BFRwFMvqW+0P8axz7fftDHAR0+2Ec+4wHDuT5CP0BFftDHAXw+pX7Q/3m\
+BvgQ/BAV/ln7QxwEdPkZ+0MHDuT5FvfsFf0o90P5KPdh/Sj3Q/nXHPoQ+0MGDuT4WP0BFRwEg/xq\
+90P6lRz6zvtDHASD+2Ec+30HDuT51P0BFRwFQf3m90P6lRz6EAf8v/pZFfxq90P5GRz7jPtDBg7k\
++Rf37BUcBfD3Q/5Z+Sn7Q/0p+2H5KftDBw7kHAXG+KoV/pUcBTL3Qxz7ffdhHASD90Mc+334agYO\
+5PkIHAdIFRz6v/nm+0P+lRwF8Af4v/5ZFfhq+0P9GRwEdPdDBg7k+cX37BX91/dD+Sj3Yf0o90P5\
+KPpZ90MGDuT6g/iqFf6V90P4ahwEg/dDHPt992EcBIP3QwYO5PnUHAdIFfdDHPoQ/pX3Q/nmBvwQ\
++BAV+ln3Qxz7jP0Z90MHDuT5F/0BFRwJtfdD/ln5KftD/Sn7Yfkp+0P9Kf5ZBw7k+dX9ARUcCbX3\
+Qxz7ffhr+0P8axz7fQf8vxYcCbX3Qxz2SwcO5PhZ/QEVHAm190Mc9ksH92EcBUEVHAR090P+Wfhr\
++0MH/Roc+r8VHAR0+Rr7Q/xr/lkHDuT5FvfsFf0o90P5KPdh/Sj3Q/ko+ln3Qxz2S/tDBg7k+Fj9\
+ARUcBIP8avdD+GocBIP3Qxz2Swf3YRYcCbX3Qxz2SwcO5PnU/QEVHAm190Mc9ksH/BAcCbUVHPuM\
+/Rn3Q/hq+lkHHPoQBPxq90P5GRz7jPtDBg7kHAXG+WgVHPoo90McBdgG/dj8vxX9KPdDHAXY+0P9\
+Kf5Z+0MGDuT4WP0BFRwEg/xq90McBdj7Q/xrHPt9+0McBHT7YRz7jAcO5BwFxvloFRz6KPdDHAXY\
+Bv6W/L8V/Gr3Q/kZHPuM+0MG+BAWHAR0+Rr7Q/xr/lkHDuQcBcb5aBUc+ij3Q/ko+ln3Q/5Z+SkG\
+/L8EHPoo90McBdgGDuQcBcb4qhUc+ij3Q/hqHASD90Mc+333YRwEg/dDHPt9+GsGDuT5B/loFf0Z\
+90P4avpZ90MG+ecc+4wV/RocBHT3Q/5Z+GsG/L8EHPoo90McBdgGDt75E/fsFf0o90P5KPdh/Sj3\
+Q/ko+ln3Q/5Z+Sn7Q/0p+2H5KftD/Sn+WftDBg7k+Fj9ARUcBIP8avdD+GocBIP3Qxz7ffdhHASD\
+90Mc+334a/tD/Gsc+337QxwEg/thHPt9Bw7k+oT6FxX4avtD/RkcBHT3Qwb8wP5ZFfpZ90Mc+4z9\
+GfdDB/hq/L8V/Gr3Q/kZHPuM+0MG+MD6WRX+WftDHAR0+Rn7QwcO5BwFxvkBFRz6KBwE2xwF2AYO\
+5BwFxv0BFRz6KBwE2hwF2AYO5Hn9ARUcCbUcBdgc9ksHDuR5/QEVHAm1+YAc9ksHDuT5bv0BFRwJ\
+tfmAHPZLBw7k9hwHSBX3EfsR+xEG+Ib3ERX3EfsR+xEG+If3ERX3EfsR+xEG/YD7EBX3EfsR+xEG\
++If3ERX3EPsR+xAG+Ib3ERX3EfsR+xEG+437EBX3EfsR+xEG/If3ERX3EfsR+xEG/Ib3ERX3EfsR\
++xEGHATe+xEV9xH7EPsRBvyG9xAV9xD7EPsQBvyH9xAV9xH7EPsRBvuN+xEV9xH7D/sRBviG9w8V\
+9xH7D/sRBviH9w8V9xH7D/sRBveN+xIV9xH7EfsRBvyG9xEV9xD7EfsQBvyH9xEV9xH7EfsRBvuN\
++xAV9xH7EfsRBviG9xEV9xH7EfsRBviH9xEV9xH7EfsRBv2A+xEV9xH7EPsRBviH9xAV9xD7EPsQ\
+BviG9xAV9xH7EPsRBvuN+xEV9xH7EfsRBvyH9xEV9xH7EfsRBvyG9xEV9xH7EfsRBveN+xAV9xH7\
+EfsRBviH9xEV9xD7EfsQBviG9xEV9xH7EfsRBg7k9hwHSBX3EPsR+xAG9433ERX3EPsR+xAG9433\
+ERX3EfsR+xEG9433ERX3EfsR+xEG9473ERX3EPsR+xAG9433ERX3EPsR+xAGHPql+xAV9xH7EfsR\
+BveN9xEV9xH7EfsRBveN9xEV9xH7EfsRBveO9xEV9xD7EfsQBveN9xEV9xH7EfsRBveN9xEV9xH7\
+EfsRBv71+xAV9xD7EfsQBveN9xEV9xD7EfsQBveN9xEV9xH7EfsRBveN9xEV9xH7EfsRBveO9xEV\
+9xD7EfsQBveN9xEV9xD7EfsQBhz6pfsRFfcR+xD7EQb3jfcQFfcR+xD7EQb3jfcQFfcR+xD7EQb3\
+jvcQFfcQ+xD7EAb3jfcQFfcR+xD7EQb3jfcQFfcR+xD7EQb+9fsRFfcQ+w/7EAb3jfcPFfcQ+w/7\
+EAb3jfcPFfcR+w/7EQb3jfcPFfcR+w/7EQb3jvcPFfcQ+w/7EAb3jfcPFfcQ+w/7EAYc+qX7EhX3\
+EfsR+xEG+Ib3ERX3EfsR+xEG9473ERX3EPsR+xAG9433ERX3EfsR+xEG9433ERX3EfsR+xEG/nn3\
+ERX3EfsR+xEG+vb7EBX3EPsR+xAG+433ERX3EPsR+xAG+473ERX3EfsR+xEG+433ERX3EfsR+xEG\
++433ERX3EPsR+xAG+433ERX3EPsR+xAG+xH7ERX3EfsQ+xEG9433EBX3EfsQ+xEG9433EBX3EfsQ\
++xEG9473EBX3EPsQ+xAG9433EBX3EfsQ+xEG9433EBX3EfsQ+xEG9xH7ERX3EPsR+xAG+433ERX3\
+EPsR+xAG+473ERX3EfsR+xEG+433ERX3EfsR+xEG+433ERX3EPsR+xAG+433ERX3EPsR+xAG+xH7\
+EBX3EfsR+xEG9433ERX3EfsR+xEG9433ERX3EfsR+xEG9473ERX3EPsR+xAG9433ERX3EfsR+xEG\
+9433ERX3EfsR+xEGDvcQHAXXHAXSFfwK+xD7EPcQ/Ar7EPsR9xD8CvsQ+xD3EPwK+xD7EfcQ+xAc\
++in4CfcR9xH7EfgK9xH3EfsR+Av3EfcP+xH4CvcR9xH7EfgJ9xH3EfcQ+xH3EfcR9xD7EfcR9xH3\
+EfsR9xAH9xH3EfsR9xH3EfcQ+xH3EfcR9xD7jfsQ+xEHHPsi9xEV+xH3EPcRB/cRFvsR9xD3EQf3\
+ERb7EfcR9xEH9xAW+xH3EfcRB/cRFvsR9xD3EQf3EfuNFfsR+xH3EQb7jfcRFfsR+xH3EQb7jvcR\
+FfsQ+xH3EAb7jfcRFfsR+xH3EQb7jfcRFfsR+xH3EQb7jfsRFfsQ9xD3EAf3ERb7EPcQ9xAH9xEW\
++xD3EfcQB/cQFvsQ9xH3EAf3ERb7EPcQ9xAH/fz7jRX7EfsP9xEG9xD3DxX7D/cR9w8H9xEW+w/3\
+EPcPB/cRFvsP9xH3Dwf3EBb7D/cR9w8HHPsi+40V+xH3EPcRB/gKFvsR9xH3EQf7jvsRFfcR+xD7\
+EQf4hvcRFfsR9xH3EQf3ERb7EfcQ9xEH9xH8ChX3EfsR+xEH+xAW9xH7EfsRB/sRFvcR+xD7EQf7\
+ERb3EfsR+xEH+xAW9xH7EfsRB/sQ+xEV+xD3EPcQB/cRFvsQ9xD3EAf3ERb7EPcR9xAH9xAW+xD3\
+EfcQB/cRFvsQ9xD3EAf3EfwKFfcR+xH7EQf7EBb3EfsR+xEH+xEW9xH7EPsRB/sRFvcR+xH7EQf7\
+EBb3EfsR+xEH+xD7EBX7EfcQ9xEH9xEW+xH3EPcRB/cRFvsR9xH3EQf3EBb7EfcR9xEH9xEW+xH3\
+EPcRBw77Gvcm+kQV+kT+RP5EBg75OflTBBwH//wWHPgBBg75JPfEFvlaHAWL+Voc+nUFDvkk97Qc\
+BYkVHAWr/Wgc+lX9aAUO+SQcBrwcBWwV/Voc+nX9WhwFiwUO+SQcBsscBYkVHPpYBxz6VfloBQ77\
+Ivqz+NYV+w1gIzU1HjQ0JGD7DRv7DSO24jUfNOFg8/cNGvcNtvPi4R7h4fK29w0b9w7zYDXhH+E1\
+tiP7DRo/FvBo4UTSHtJENa4mGyY1Z0REH0RDZzUoGiivNdJDHkPS4WfwG+/hr9PSH9LSr+HvGg77\
+IvcQFvpo+mj+aAf7tPh+FcJ3u2SzHrJkW59TG1Rcd2RjH2Nkd1tTGlSfW7NkHmOyu3fCG8O7n7Oy\
+H7Kzn7rCGg77IrEWHASDHASDHPt9B/sd+NUV9w1g8jXiHuI0JLb7DRv7DiNgNDUfNTRgJPsNGvsN\
+tiPhNR414PNg9w8b9w3ytuLiH+HhtvL3DRo/FidnNUREHkRENWcnGyY1r9JEH0TSZ+HvGvCv4dPS\
+HtLS4a/vG+/haETSH9JErzQmGg75ZBwGk/ibFftDTfsq+xH7ER77EfsR+ypM+0Mb+0T7Ksn3EfsR\
+H/sR9xBN9yr3RRr3Q8r3KvcR9xEe9xH3EfcqyfdDG/dD9ypN+xH3ER/3EfsRyfsq+0MaLxb3KVb3\
+FCD2HvYg+xXA+ykb+yr7FFYgIB8gIFb7FPspGvsqwPsU9iAeIPb3FFb3Khv3KfcVwPb2H/b2wPcU\
+9yoa/Vn3FxV1g3h8ex57e3iDdBt1eJObex97m4OeoRqik56bmx6am56ToRuinoN8mx+ae5N4dBr4\
+fRZ1g3h8ex57e3iDdBt1eJObex97m4OeoRqik56bmx6am56ToRuinoN8mx+ae5N4dBr8//vlFcmv\
+BSvA2FvxG/HYu+u/H8pnBfsWRilK+xMb+xMpzPcWRh8O+aQcBrP4mxX7Q037KvsR+xEe+xH7Efsq\
+TPtDG/tE+yrJ9xH7ER/7EfcQTfcq90Ua90PK9yr3EfcRHvcR9xH3Ksn3Qxv3Q/cqTfsR9xEf9xH7\
+Ecn7KvtDGv219xcVooOefJsemnt4k3QbdXiDfHsfe3uDeHQadZN4m3see5ueg6Ebop6Tm5sfmpuT\
+nqEa+H0WooOefJsemnt4k3QbdXiDfHsfe3uDeHQadZN4m3see5ueg6Ebop6Tm5sfmpuTnqEa/P/7\
+5RX7FtDtSvcTG/cT7cz3FtAfTK8FK1c+WyUbJT6761YfDviP+hocBlUV1/vlBvcThvcJXfUy97P3\
+rxjBVPuy+7Lp+wi7+wqM+wsZ9+RG++QGgvsTW/sJNSD3svu1GFVY+7P3rPsDOPsJXPsOghn75T/3\
+5Qf7HJz7CLks1/u6+6wYWr73sPe1OPBb9wl+9xkZ++TQ9+QGlPcZu/cJ4vL7sPeyGLzC97r7r/cL\
+4vcHufcFkhn4uPzdFfchWfcMJvAe7yb7DL37IRv7IfsMWScnHyYmWfsM+yEa+yG9+wzwJh4m7/cM\
+WfchG/ch9wy98PAf8PC99wz3IRoO+4T44/h1FfwB+DVV/DX8I1X4I/w2wfg2+AEHVEudr0IfQq5P\
+w1rYCFrYct/nGvcXuvcE6Oge6Oj3BLr3Fxv3F/cEXC7oH+guuvsE+xca+w9h+wA2Lx42LvsAWfsW\
+ggj4JfhuFfcJYfA43h7eOCa1+wob+wkmYTg4Hzc3YSf7CRr7CbUm3zgeN97wYfcJG/cJ8LXf3x/e\
+3rXw9wkaDob65xwFXBWogaL7hcH7Yt/7Pxlyfij3EUH3H1r3Kxn7u/0P1G/OVcg7Gcg7qTIoGvsR\
+XyUyPh4+MvsAZPsVG/sb+we45C0fLORc9wD3Ehr3Ebf14uAe4OLxtvcJG77DgHXKH/e5+RD7I0/7\
+LGj7NoIZpQf3Bq7ircaqxqrvyPcj6Aj81P3sFSQxZkA+Hz5AZC/7AxogsTDYQR5A2Odl9hv3AOax\
+19Yf1daw5PIa9wFk6D3YHtg9MLEjGw77q/i3HATPFZdUoVOqUapRzj70LNxBxE+rXAiqXJtYUhpN\
+dVdgYB5gYFd2UBskNsr3E0gf+y2t+wHPTB7OS+dp9wmGkmYY/awGkrAF9wrprc/QH9DPre33ExqS\
+i5aKmh77E080TPsGG05YobZgH2C2db/HGsidwq68Hq68uLrDuPdC9yPu9ySk9yMIDnr64xb95AaT\
+rfGh1KK4oxm3orW5stAIstCe194airVnPltQUGIZYlBNd0sbP0qmwVUfVMBwztoa1qPLvMIewbvD\
+pswbtcF6ac4fXtJ1yL0a1qXMwMAewMDMpdob2MxxV8IfwlemTEEaTHRNXU0ertLBnbAb0cZwVbof\
+ulWjS0EaO3BIVVUeVFVLcEAbV1OcrFAfUKxUyVjnjiKbOKhNqEy0W8Bpv2nacPV2CA77NfjzcxV2\
+3GzYY9Ji0i/3Ffsj91FI5FzRccAIccB+wcMa1KTJvL4evbzIpNQb9x3sN/s7wx+i4LDKwLUItMDE\
+oMkb1MhyWb0fvFmkUUgaUH5OcEwecExRMzL7A/tS+4T7AvtPbvsZCA774fiZHATPFfcV+2v3Lftl\
+90f7X2hoRDP7APsi+wD7Ijn7DVInSPcT+y33ZfuB97j3bPeT9yz3ZeT3NwgO92T6MhwF/xXHBvcB\
+SPcOJPcb+x8I9xv7H84sWBqAhH1+eB54fn6Bfht4dpqodB9mt0rKLt4u3jrJR7alHPqiGDpzSlxc\
+HltcQ18qYwhiKil3Khv7EyerzEAfQMxl1+Qa9cHo9wHbHtv3APcQs/cgG/cU9xhsTPccHw75OfnU\
+HASrFfo697cFHPrrByh/QnJaHnJaYWNRawhrUEh7QBsqRaW/Xh9evnTJ0xrZqc7HxB7Ex9mn6xvD\
+znpq2B/55gf9T/ttBf5pBzmBR3hWHndWY11OZghlTkJ4OBs4SaO6WB9YunHL2hrhqtHJwh7Bydim\
+5hvK0Hln1B8O/Q73ZTcVk8W9j7Ub9yXUVPsCUXVbX2YfZl5UeEkbWmCWomYfZaF4qbEauJ+itJ2f\
+g3qhHnSoooCcG5yZkpqWH5aZkJmaGrpmokJuZ4eEYB4O++/4XRwEbxVG92wFd8qBuKgatJmsp6Me\
+o6avl7gb9cBgNW+CXHhKH037bgUOHASkFBwFWxUAAAAAAAEAAAADAAAADAAEBXYAAAEEAQAABwAE\
+ACYAJwBfAGAAfgCgAKMArAEBAQUBBwELAQ0BEAERARcBGwEdAR8BLwEzATgBOgE8AUABSQFPAVcB\
+WwFdAWEBZQFtAXEBdwF4AXwBfwGSAf8CxwLJAt0DigOMA6EDuwO8A84EDARPBFwEXwSRHoUe8yAV\
+IB4gIiAmIDAgMyA6IDwgPiBEIH8gpCCnIKwhBSETIRYhIiEmIS4hXiGVIagiAiIGIg8iEiIaIh8i\
+KSIrIkgiYSJlIwIjECMhJQAlAiUMJRAlFCUYJRwlJCUsJTQlPCVsJYAlhCWIJYwlkyWhJawlsiW6\
+JbwlxCXLJc8l2SXmJjwmQCZCJmAmYyZmJmvwCvEI//8AAAAgACcAKABgAGEAoAChAKQArgECAQYB\
+CAEMAQ4BEQESARgBHAEeASABMAE0ATkBOwE9AUEBSgFQAVgBXAFeAWIBZgFuAXIBeAF5AX0BkgH6\
+AsYCyQLYA4QDjAOOA6MDvAO9BAEEDgRRBF4EkB6AHvIgEyAXICAgJiAwIDIgOSA8ID4gRCB/IKMg\
+pyCsIQUhEyEWISIhJiEuIVshkCGoIgIiBiIPIhEiGSIeIikiKyJIImAiZCMCIxAjICUAJQIlDCUQ\
+JRQlGCUcJSQlLCU0JTwlUCWAJYQliCWMJZAloCWqJbIluiW8JcQlyiXPJdgl5iY6JkAmQiZgJmMm\
+ZSZq8ADxAP///+EAQf/hABz/4QBc/78AAAAAAAsAAABT//wAA//5AE3//ABJ/+MARwAAAEP/4QBB\
+/98AAAA2AAD/0QAsAAD/ywAk/8MAIP9O/7wAAP7T/58AAP23AAD+G/4a/hn+GPzc/hf95f3k/eP9\
+4v2y48TjWAAAAAAAAOBT4ErhEeAy4QniEOAf4GYAAOCf4FLgQuA14Trfd9/S4SPfi9+536fe8d71\
+3uYAAAAAAADfKN7M3rIAAN6M31DfQ9803VbdVd1M3UndRt1D3UDdOd0y3SvdJN0R3P7c+9z43PXc\
+8gAAAADc1tzP3M7cxwAA24fctdtx3FXcUtxR3DTcMtwx3C4AABA5AAEAAAAAAAAAAAAAAAAAAAD2\
+AQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZYAAAAAAAAAAAGUAAABogAAAAABrAAAAAAAAAAAAAAA\
+AAGmAAAAAAGmAAABpgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZYBmgGoAAAAAAAAAAAAAAAA\
+AAAAAAGcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCAYQBhgAAAAAAAAGCAAAAAAAAAAAA\
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVoBXAAAAAAAAAAAAVgAAAAAAAAAAAAA\
+AAAAAAAAAAAAAAFGAAAAAABnAGQAoABmAIMAqgCLAGoAlwClAQsAoQCcAKQAqQB9APIAcwEMAIUA\
+lgCPAHgAngCbAKMAewCuAKsArACwAK0ArwCKALEAtQCyALMAtAC5ALYAtwC4AJoAugC+ALsAvAC/\
+AL0AqACNAMQAwQDCAMMAxQCdAJUAywDIAMkAzQDKAMwAkADOANIAzwDQANEA1gDTANQA1QCnANcA\
+2wDYANkA3ADaAJ8AkwDhAN4A3wDgAOIAogDjAVkBWgEDAJEBGAEZAIwAkgEgASEBfgF/ASIBIwEk\
+ASUBJgCOAJQBJwEoAYYBhwEEAQUAwADdAMcA5AGYAH4AiACBAIIAhACHAH8AhgBvAIkCTAFCAEEA\
+CAB1Ak0AaQB3AHYAcABxAHQBAAJPAPQApgByAPkA7wFQAO4BUgKGAVMBVAFVAocA/QKMAP8AbQBu\
+AOoBWAKaAPYA6wDsAO0CmwAA")}
+@font-face{font-family:'BookmanOldStyle';src:url("data:;base64,\
+T1RUTwACACAAAQAAQ0ZGIED3piMAAAAsAAHUjGNtYXBtzU4XAAHUuAAABYABAAQDAAEBARBCb29r\
+bWFuT2xkU3R5bGUAAQEBO/nIAfgYBPwR/R8cCokcB+8FHqAASIKBJf+Lix6gAEiCgSX/i4sMBxwQ\
+8w8cEQkQHBELEZMdAAHUhBIBrgIAAQAJABEAGgAmACkANAA9AEQARwBPAFIAWQBkAG0AdAB7AH8A\
+hACJAI8AlQCZAKEAqQCvALUAuwDBAMgA0QDXAN0A4wDqAPEA9wD9AQMBCgERARcBHQEfASEBJwEt\
+ATMBOQE9AUEBRwFNAVMBWQFkAW0BdgF8AYIBiAGOAZQBmgGiAaoBsAG2AbsBwAHJAdIB2AHeAeIB\
+5gHtAfQB+QIAAgcCEAIXAhwCIQIuAjQCOgJDAkkCUgJbAmQCawJ1An4ChwKQApwCpgKyAr0CwwLJ\
+As8C1QLfAuoC8QL4AwMDDgMSAxYDHQMkAyoDMAM0AzgDQwNOA1IDVgNeA2YDcQN8A4ADhAOKA5AD\
+lwOeA6QDqgOxA7gDwwPOA9YD3gPqA/ID+gQCBAoEDQQQBBcEHgQkBCoEMgQ6BEUEUARUBFgEXgRk\
+BGsEcgR4BH4EhQSMBJcEogStBLgEvQTHBNEE2ATfBOoE9QT6BQcFEQUaBSYFLgU3BUMFTwVZBWoF\
+bwVzBXgFfQWEBYgFiwWQBZQFmQWfBaEFowWlBawFrgWxBbYFuQXABcMFxgXJBc4F2gXpBfMF/wYH\
+BhAGJAYpBi0GMgY3Bj4GQgZFBkoGTgZTBlkGWwZdBmQGZgZpBm8GdAZ3Bn4GgQaEBocGjAaYBqcG\
+swa/BskG0gbbBuQG7Qb2Bv8HCAcRBxoHIwcsBzUHPgdHB1AHWQdiB2sHdAd9B4YHjweYB6EHqgez\
+B7wHxQfOB9cH4AfpB/IH+wgECA0IFggfCCgIMQg6CEMITAhVCF4IZwhwCHkIggiLCJQInQimCK8I\
+uAjBCMoI0wjcCOUI7gj3CQAJCQkSCRsJJAktCTYJPwlICVEJWgljCWwJdQl+CYcJkAmZCaIJqwm0\
+Cb0JxgnPCdgJ4QnqCfMJ/AoFCg4KFwodCiMKKQovCjgKQQpHCk0KVgpjCmwKdQp+CocKjAqZCqMK\
+rQq1Cr0KxQrNCtUK3QrlCu0K9Qr9CwULDQsVCx0LJQstCzULPQtFC00LVQtdC2ULbQt1C30LhQuN\
+C5ULnQulC60LtQu9C8ULzQvVC90L5QvtC/QL+wwADAcMDgwVDBoMIQwqDDQMOwxCDEkMUAxWDF8M\
+aAxxDH0MgAyGDIoMjwyTDJgMnwyqDLgMyA06bm90ZXF1YWxpbmZpbml0eWxlc3NlcXVhbGdyZWF0\
+ZXJlcXVhbG11MXBhcnRpYWxkaWZmc3VtbWF0aW9ucHJvZHVjdHBpMWludGVncmFsT2htcmFkaWNh\
+bGFwcHJveGVxdWFsaW5jcmVtZW50bmJzcGFjZWxvemVuZ2VFdXJvYXBwbGVmcmFuY0dicmV2ZWdi\
+cmV2ZUlkb3RTY2VkaWxsYXNjZWRpbGxhQ2FjdXRlY2FjdXRlQ2Nhcm9uY2Nhcm9uZG1hY3Jvbm92\
+ZXJzY29yZW1pZGRvdEFicmV2ZWFicmV2ZUFvZ29uZWthb2dvbmVrRGNhcm9uZGNhcm9uRHNsYXNo\
+RW9nb25la2VvZ29uZWtFY2Fyb25lY2Fyb25JSmlqTGFjdXRlbGFjdXRlTGNhcm9ubGNhcm9uTGRv\
+dGxkb3ROYWN1dGVuYWN1dGVOY2Fyb25uY2Fyb25uYXBvc3Ryb3BoZU9kYmxhY3V0ZW9kYmxhY3V0\
+ZVJhY3V0ZXJhY3V0ZVJjYXJvbnJjYXJvblNhY3V0ZXNhY3V0ZVRjZWRpbGxhdGNlZGlsbGFUY2Fy\
+b250Y2Fyb25VcmluZ3VyaW5nVWRibGFjdXRldWRibGFjdXRlWmFjdXRlemFjdXRlWmRvdHpkb3Ru\
+b0dhbW1hbm9UaGV0YW5vUGhpbm9hbHBoYW5vZGVsdGFub2Vwc2lsb25ub3NpZ21hbm90YXVub3Bo\
+aXVuZGVyc2NvcmVkYmxtaW51dGVzZWNvbmRleGNsYW1kYmxwZXNldGFhZmlpNjEyNDhhZmlpNjEy\
+ODlhcnJvd2xlZnRhcnJvd3VwYXJyb3dyaWdodGFycm93ZG93bmFycm93Ym90aGFycm93dXBkbmFy\
+cm93dXBkbmJzZW9ydGhvZ29uYWxpbnRlcnNlY3Rpb25lcXVpdmFsZW5jZUgyMjA3M0gxODU0M0gx\
+ODU1MUgxODUzM29wZW5idWxsZXRjb21tYWFjY2VudEFtYWNyb25hbWFjcm9uQ2NpcmN1bWZsZXhj\
+Y2lyY3VtZmxleENkb3RjZG90RW1hY3JvbmVtYWNyb25FYnJldmVlYnJldmVFZG90ZWRvdEdjaXJj\
+dW1mbGV4Z2NpcmN1bWZsZXhHZG90Z2RvdEdjZWRpbGxhZ2NlZGlsbGFIY2lyY3VtZmxleGhjaXJj\
+dW1mbGV4SGJhcmhiYXJJdGlsZGVpdGlsZGVJbWFjcm9uaW1hY3JvbklicmV2ZWlicmV2ZUlvZ29u\
+ZWtpb2dvbmVrSmNpcmN1bWZsZXhqY2lyY3VtZmxleEtjZWRpbGxha2NlZGlsbGFrZ3JlZW5sYW5k\
+aWNMY2VkaWxsYWxjZWRpbGxhTmNlZGlsbGFuY2VkaWxsYUVuZ2VuZ09tYWNyb25vbWFjcm9uT2Jy\
+ZXZlb2JyZXZlUmNlZGlsbGFyY2VkaWxsYVNjaXJjdW1mbGV4c2NpcmN1bWZsZXhUYmFydGJhclV0\
+aWxkZXV0aWxkZVVtYWNyb251bWFjcm9uVWJyZXZldWJyZXZlVW9nb25la3VvZ29uZWtXY2lyY3Vt\
+ZmxleHdjaXJjdW1mbGV4WWNpcmN1bWZsZXh5Y2lyY3VtZmxleGxvbmdzQXJpbmdhY3V0ZWFyaW5n\
+YWN1dGVBRWFjdXRlYWVhY3V0ZU9zbGFzaGFjdXRlb3NsYXNoYWN1dGV0b25vc2RpZXJlc2lzdG9u\
+b3NBbHBoYXRvbm9zYW5vdGVsZWlhRXBzaWxvbnRvbm9zRXRhdG9ub3NJb3RhdG9ub3NPbWljcm9u\
+dG9ub3NVcHNpbG9udG9ub3NPbWVnYXRvbm9zaW90YWRpZXJlc2lzdG9ub3NBbHBoYUJldGFHYW1t\
+YURlbHRhRXBzaWxvblpldGFFdGFUaGV0YUlvdGFLYXBwYUxhbWJkYU11TnVYaU9taWNyb25QaVJo\
+b1NpZ21hVGF1VXBzaWxvblBoaUNoaVBzaU9tZWdhSW90YWRpZXJlc2lzVXBzaWxvbmRpZXJlc2lz\
+YWxwaGF0b25vc2Vwc2lsb250b25vc2V0YXRvbm9zaW90YXRvbm9zdXBzaWxvbmRpZXJlc2lzdG9u\
+b3NhbHBoYWJldGFnYW1tYWRlbHRhZXBzaWxvbnpldGFldGF0aGV0YWlvdGFrYXBwYWxhbWJkYW51\
+eGlvbWljcm9ucGlyaG9zaWdtYTFzaWdtYXRhdXVwc2lsb25waGljaGlwc2lvbWVnYWlvdGFkaWVy\
+ZXNpc3Vwc2lsb25kaWVyZXNpc29taWNyb250b25vc3Vwc2lsb250b25vc29tZWdhdG9ub3NhZmlp\
+MTAwMjNhZmlpMTAwNTFhZmlpMTAwNTJhZmlpMTAwNTNhZmlpMTAwNTRhZmlpMTAwNTVhZmlpMTAw\
+NTZhZmlpMTAwNTdhZmlpMTAwNThhZmlpMTAwNTlhZmlpMTAwNjBhZmlpMTAwNjFhZmlpMTAwNjJh\
+ZmlpMTAxNDVhZmlpMTAwMTdhZmlpMTAwMThhZmlpMTAwMTlhZmlpMTAwMjBhZmlpMTAwMjFhZmlp\
+MTAwMjJhZmlpMTAwMjRhZmlpMTAwMjVhZmlpMTAwMjZhZmlpMTAwMjdhZmlpMTAwMjhhZmlpMTAw\
+MjlhZmlpMTAwMzBhZmlpMTAwMzFhZmlpMTAwMzJhZmlpMTAwMzNhZmlpMTAwMzRhZmlpMTAwMzVh\
+ZmlpMTAwMzZhZmlpMTAwMzdhZmlpMTAwMzhhZmlpMTAwMzlhZmlpMTAwNDBhZmlpMTAwNDFhZmlp\
+MTAwNDJhZmlpMTAwNDNhZmlpMTAwNDRhZmlpMTAwNDVhZmlpMTAwNDZhZmlpMTAwNDdhZmlpMTAw\
+NDhhZmlpMTAwNDlhZmlpMTAwNjVhZmlpMTAwNjZhZmlpMTAwNjdhZmlpMTAwNjhhZmlpMTAwNjlh\
+ZmlpMTAwNzBhZmlpMTAwNzJhZmlpMTAwNzNhZmlpMTAwNzRhZmlpMTAwNzVhZmlpMTAwNzZhZmlp\
+MTAwNzdhZmlpMTAwNzhhZmlpMTAwNzlhZmlpMTAwODBhZmlpMTAwODFhZmlpMTAwODJhZmlpMTAw\
+ODNhZmlpMTAwODRhZmlpMTAwODVhZmlpMTAwODZhZmlpMTAwODdhZmlpMTAwODhhZmlpMTAwODlh\
+ZmlpMTAwOTBhZmlpMTAwOTFhZmlpMTAwOTJhZmlpMTAwOTNhZmlpMTAwOTRhZmlpMTAwOTVhZmlp\
+MTAwOTZhZmlpMTAwOTdhZmlpMTAwNzFhZmlpMTAwOTlhZmlpMTAxMDBhZmlpMTAxMDFhZmlpMTAx\
+MDJhZmlpMTAxMDNhZmlpMTAxMDRhZmlpMTAxMDVhZmlpMTAxMDZhZmlpMTAxMDdhZmlpMTAxMDhh\
+ZmlpMTAxMDlhZmlpMTAxMTBhZmlpMTAxOTNhZmlpMTAwNTBhZmlpMTAwOThXZ3JhdmV3Z3JhdmVX\
+YWN1dGV3YWN1dGVXZGllcmVzaXN3ZGllcmVzaXNZZ3JhdmV5Z3JhdmVhZmlpMDAyMDhxdW90ZXJl\
+dmVyc2VkcmFkaWNhbGV4YWZpaTA4OTQxYWZpaTYxMzUyZXN0aW1hdGVkaG91c2VyZXZsb2dpY2Fs\
+bm90aW50ZWdyYWx0cGludGVncmFsYnRTRjEwMDAwMFNGMTEwMDAwU0YwMTAwMDBTRjAzMDAwMFNG\
+MDIwMDAwU0YwNDAwMDBTRjA4MDAwMFNGMDkwMDAwU0YwNjAwMDBTRjA3MDAwMFNGMDUwMDAwU0Y0\
+MzAwMDBTRjI0MDAwMFNGNTEwMDAwU0Y1MjAwMDBTRjM5MDAwMFNGMjIwMDAwU0YyMTAwMDBTRjI1\
+MDAwMFNGNTAwMDAwU0Y0OTAwMDBTRjM4MDAwMFNGMjgwMDAwU0YyNzAwMDBTRjI2MDAwMFNGMzYw\
+MDAwU0YzNzAwMDBTRjQyMDAwMFNGMTkwMDAwU0YyMDAwMDBTRjIzMDAwMFNGNDcwMDAwU0Y0ODAw\
+MDBTRjQxMDAwMFNGNDUwMDAwU0Y0NjAwMDBTRjQwMDAwMFNGNTQwMDAwU0Y1MzAwMDBTRjQ0MDAw\
+MHVwYmxvY2tkbmJsb2NrYmxvY2tsZmJsb2NrcnRibG9ja2x0c2hhZGVzaGFkZWRrc2hhZGVmaWxs\
+ZWRib3hmaWxsZWRyZWN0dHJpYWd1cHRyaWFncnR0cmlhZ2RudHJpYWdsZmNpcmNsZWludmJ1bGxl\
+dGludmNpcmNsZXNtaWxlZmFjZWludnNtaWxlZmFjZXN1bmZlbWFsZW1hbGVzcGFkZWNsdWJoZWFy\
+dGRpYW1vbmRtdXNpY2Fsbm90ZW11c2ljYWxub3RlZGJsdW5kZXJjb21tYWFjY2VudEJvb2ttYW4g\
+T2xkIFN0eWxlKFRNKSBpcyBhIHRyYWRlbWFyayBvZiBUaGUgTW9ub3R5cGUgQ29ycG9yYXRpb24g\
+d2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgaW4gY2VydGFpbiBqdXJpc2RpY3Rpb25zLgAAAQAB4wEF\
+AAFAAwFHAQFKAQGH/wKHrAAAApsDAAABAAAcAAAfAACGAADpAAFSAAJwAAOJAAU6AAWXAAX/AAZm\
+AAc3AAdVAAeyAAfBAAf5AAgQAAjHAAkRAAnJAArJAAryAAuvAAx2AAzhAA3ZAA6eAA8JAA+bAA+6\
+AA/UAA/zABC3ABKGABMSABQQABS8ABV3ABZCABbmABfDABiRABj5ABmZABp9ABr+ABu5ABxSAB0N\
+AB27AB66AB+NACByACENACHEACJFACLuACPMACR7ACTKACThACT4ACUOACUtACU6ACWYACalACdR\
+ACf5ACi9ACltACoAACuNACxGACzHAC1rAC4fAC5lAC+hADBmADD6ADHLADKTADMrADPkADRFADTu\
+ADVkADYXADbtADe7ADf/ADiwADjAADlxADnsADpTADsQADxTADxrAD01AD4EAD+rAEBKAEB+AEE0\
+AEFfAEF2AEGNAEKDAENTAENiAEQyAEWWAEXOAEYzAEZrAEbIAEd9AEgyAEhdAEj9AEqWAEtYAEuI\
+AEu3AEvPAEwfAEwtAExvAEyoAE0UAE1/AE4AAE5VAE6pAE7BAE7SAE/PAFC8AFFaAFIyAFN2AFPr\
+AFVHAFWRAFX1AFalAFe6AFkZAFlkAFl2AFnxAFr6AFvAAFy4AFziAF2mAF4oAF6gAF69AF8oAF/8\
+AGEEAGGiAGMZAGMnAGQCAGQuAGT9AGZ8AGcyAGfRAGjFAGl9AGpvAGtHAGx0AG1qAG5JAG98AHBz\
+AHEGAHGCAHJRAHLlAHPKAHSwAHV+AHahAHeIAHiPAHmIAHpqAHs1AHxUAH03AH4RAH8oAH+LAIDD\
+AIHlAINaAISSAIYHAIdgAIiIAIliAIomAIs9AIwZAIyOAIzrAI2cAI4SAI8jAI/iAJCJAJGFAJJF\
+AJMlAJPyAJTGAJWDAJaUAJdpAJhiAJmYAJnwAJp4AJt6AJ0CAJ4+AJ9DAJ9rAJ/uAKA6AKDhAKEj\
+AKIbAKJEAKJwAKM5AKQwAKSPAKUvAKYPAKbsAKfGAKfnAKjZAKj4AKj7AKkpAKniAKnlAKqTAKuu\
+AK16AK4XAK99ALC2ALGNALJgALMgALPcALSzALTBALT5ALXDALcOALfuALlOALodALsvALv1AL0U\
+AL4XAL72AL+6AMCPAMGHAMIzAMKkAMNyAMQFAMS7AMU2AMX6AMbqAMeXAMhwAMmPAMqcAMuCAMyA\
+AM1CAM4oAM7UAM/kANDIANGIANIeANLNANNoANSGANWWANafANeaANgUANiDANkHANmAANnRANq9\
+ANtxANwKANzmAN2nAN4tAN6VAN82AN9LAN9tAN+sAOBlAOH4AOLuAON/AOO9AOP5AOQ2AORzAOTg\
+AOVNAOXGAOXbAOZjAOaJAOaiAOaxAObNAOcMAOd2AOfGAOhcAOlyAOoyAOruAOvPAOysAO2BAO47\
+AO9EAPAxAPExAPIWAPMHAPSpAPW7APd+APjcAPquAPuQAPxdAP0WAP2/AP5zAP8JAP97AP/PAQB0\
+AQD8AQG4AQKMAQNAAQOkAQTlAQX2AQaGAQdkAQgGAQj8AQodAQrcAQucAQxhAQz/AQ34AQ7KAQ/6\
+ARDtARHmARKzARM8AROZARScARWRARZSARcFARf6ARjhARnsARrpARumARxtAR0wAR4SAR6BAR+d\
+ASE9ASJkASPqASTtASXIASX0ASaIASc9ASd1AShqASliASn0ASrYASuxASyQAS1mAS3yAS7wAS9F\
+AS9oATAzATCCATFQATJFATKtATORATP8ATS3ATVQATYYATbTATdNATf7AThLATjmATmVATpvATtN\
+ATwzATzoAT23AT7OAT+HAUBkAUEVAUGDAUKVAUMlAUPaAURWAUUwAUXlAUa8AUdEAUfTAUgZAUic\
+AUkIAUltAUp7AUsPAUuoAUwqAUz5AU19AU2+AU4/AU7wAU91AVAWAVDKAVF3AVJgAVMcAVPGAVSi\
+AVXVAVa5AVc5AVfVAVi6AVkiAVnxAVqRAVt9AVx9AV1ZAV5oAV94AWAPAWCbAWFUAWJSAWKnAWNh\
+AWQsAWUwAWXnAWaPAWegAWiEAWjvAWmqAWp4AWszAWutAWxbAW0HAW2iAW5JAW9AAXAeAXDZAXGJ\
+AXKBAXOTAXRPAXVcAXYDAXahAXeSAXhnAXl0AXpLAXsjAXuNAXw3AXznAX36AX6NAX8/AYBLAYEB\
+AYFcAYH2AYKoAYM8AYPCAYSTAYU7AYWpAYZ3AYeZAYhvAYkqAYnSAYqtAYujAYxRAY1QAY3qAY5b\
+AY9DAZAQAZEnAZHQAZJmAZLhAZOaAZQbAZTMAZVwAZZBAZdBAZfvAZjQAZn5AZqeAZr1AZtfAZw1\
+AZ0UAZ3oAZ7GAZ/XAaDyAaHNAaLHAaLYAaMmAaM1AaQ1AaVHAaW6AaXgAaXyAaZEAaaXAaanAaa3\
+AabLAabdAabwAacCAacaAacyAadJAadiAaeCAaeeAae5AafTAafwAagTAagtAahKAahuAaiIAaim\
+AajLAajkAakAAakkAalCAalmAamZAam3AanbAaoMAaoxAapTAaqDAaqmAarJAar4AaslAataAauf\
+AauwAavBAavQAaveAavtAa1XAbArAbKWAbKkAbKzAbLEAbLYAbLtAbMBAbNyAbOzAbQwAbVaAbY/\
+AbcWAbeyAbhuAbj5AbmmAboOAbpLAbrFAbtEAbuj+AD3lBYcBQD6lBz7AAf+dKsV+lQcBMD+VAYO\
+/JkO/ML3nPfjFT/6EgWIpIqbkhq8lq+goh6ioKuWtBuvqIB1oh+hdZZtZhp/iXeIbx47/hoFZCUV\
+rql/c6Qfo3KXbmgaaH9ucnMecnJuf2gbaW6XpHIfcqN/qK4arpeopKQeo6Ool64bDvwe9136HRVb\
+9/IFiZyKnp4asJKnmp0enJmelKMboZ2De5kfmHuSc2waeYl1hnEeVfv1BfewFlz38gWInIqdnhqx\
+kqeanR6cmZ6UoxuinYN7mB+Ye5J0bRp4iXWHcB5U+/UFDsT6ufjDFfsJ+28HSvxPBfsLBsz4TwX7\
+pQZN/E8F+w4GzvhPBftu9wn3gAaw96MF+233CPeDBsn4NQX3BwZO/DUF96QGyPg1BfcKBk78NQX3\
+WPsJ+2kGY/uiBT33ohX7pQZj+6IF96MGDu342BwGVBXr+4EGuoW0gK58rnyudLBst+MY0Qby/Ckx\
+bGjaZ8pmuxlmu2awZqVlpF2fVZgI/HsHnoS3fNBz2XC5epmEtHeycK9qr2mmZZ5iCJ1hlF9cGkh4\
+TWZSHmVSUl0+Zj5mMngmigj7hCv3jgdWmFmdXqRdo12sXLVb+x4YRQYx+HblnrUuskSvWxmuW7Ri\
+umq5acJvy3UI+LkHeJJqlluaTKBimniUWqJfqWWuZK5wr3qvCHqug7G0Gsidxa7AHq7AwbXSrNKr\
+3pvqjAguBFiMX4Voflp5Y3FuaAhuaHxiXhpok2ycbh6bbqZysXSwdMly4m4I6/10Fb+KuZO0msSg\
+uKurtAiqtJu5vxrIdb9etx5etjey+xCtCA75M/gjHAWLFe3Ya0zDH8lFqiz7DRr7BmwxTkkeSE07\
+aikbJTqy2U4fWcxy4fcAGvcLqejHzB7Mx9qs7RuJSxVobIF3cB9wdnVneVgIeFeCTkYaR5NSnF4e\
+nF6haah2CHWnqoCsG62rlqGoH6igo66cugicupTG0Rroe9dsxB7Ea1ynTRv6rcsV/jUc+l0F+wwG\
++jQcBaMF9w/9SRXt2GtMwx/IRqor+w0a+wVsMU5JHkhNO2opGyU6sthPH1nMcuH3ARr3C6nox8we\
+zMbaq+4biEwVaG2Bd3AfcHZ0Z3lYCHhXgk5GGkeUUpxeHpxdoWmodgh2p6mArBuuq5ahqB+ooKKu\
+nLoInLqUxdEa6XvXbMQexGxcp0wbDvhm+pD6BRX4ZjZTBmJwiIZ9H32Ff4GAfYB9hHaGbnL7Iln7\
+Fz/7DJhmomWqY6pjp3Cifgh+oqSEphutp5agoh+ioJajpxqih56CmB6CmHeZbZpzl3qZgZoIgZqG\
+nJ4appSgnJwenJyhk6cburV3Yq4frmKcV0waQG9LUlQeVFJHbzsbVFiZplofWqZaulvNR05PYVdy\
+CGhAOnk0Gyo1nrM+Hz6yUL9izQhhzXbT2RrUnc6uxx6ux7/A0bq+rcuo1qNUomGjbqRupHWpfKwI\
+fKyDr7Ia3KrOycIeydHfqu0b7NtvUsofylKrSD4aV35bcV8ecV5nZ1xubnhke1uAxXi8c7Nts2y0\
+X7ZRtVG0QbMyCMz3I6v3ANIao4ScfJYelnxukF8bUAb8HfinFVVeeGRmH2ZkeVlNGk6eWbBkHmSw\
+uHfAG7+4n7KxH7CynrzGGsp5vmayHrJmXZ9WG2L8nRU5YllweH1sdXBwc2tzanlrgGoIgGqFaGca\
+N6c/w0geNdLmYPcBG8G/l6K+H9GsxLO4uIaUgpqAovsx98gYfqZ4qnSufKF5oHSfdJ9tnmidCA79\
+Zfdx+gIVVc0F9x33A8/o1hqUipWKmB6AhoCIgIgIiICBioIba3GVoHgfeKCBpasaqpenoqIeoqKn\
+l6wbuLJ5Z6wfq2abXFIaZoNkfGIefGJ0ZW5obmhRVDRCCA78wviBHAWxFcpNZ2VtXHNUGWg4cSl8\
++wQIe/sFg/sy+2Ea+2eS+zKaIh6aIqQtrjmjUqpasWJMUhhKxFPUW+Ja4mfwdPcHCHP3Bn/3LfdU\
+GvdTmPcupvcHHqX3B7b2xu+41rvEv7AIDvzC9w78bRVMyrCwqbqiwxmu3qXsm/cFCJr3BJP3M/dh\
+GvdmhPcyfPQefPRz6WjdcsRsvGW0ysQYzFLDQ7w0uzOvJqP7Bgii+waX+y37VRr7U377LXH7Bx5x\
++wdgIFAnXj9aUldmCA77o/hA+vAVYPctBYWeiJ+eGqmSopmbHpqYnZOiG6KbhH2WH5p4k3JsGnuI\
+eYZ3HmP7LbNt9xXlBaKrqZemG6WfhHyZH5l8knhyGnV/d3R6Hnl0bYJmG/szBnxX9xUqBbRsoGdj\
+GnqDe3t8Hnx6eYN3G397kpp3H3eZe6R+rlT3LBhbBlT7LH9qfHN5exl6eHqDext3eZObex96moOb\
+mhqyoLC2rR73EOx/vwX7NQZlbZScdB90nH+eoRqikp6Zmh6amJySoBuuq4F2qB/3FzEFDsT64vmL\
+FfsP/D78PvsP+D78PvcP+D74PvcP/D4HDvyZ93H7/hVVzQX3HfcDz+jWGpSKlYqYHoCGgIiAiAiI\
+gIGKghtrcZWgeB94oIGlqxqql6eioh6ioqeXrBu4snlnrB+rZptcUhpmg2N8Yx58YnRkbmluaFFU\
+NEIIDvv19wT4zxX45vsQ/OYGDvyZ99v3fRWuqX9zpB+jcpduaBpof25ycx5ycm5/aBtpbpekch9y\
+o3+orhqul6ikpB6jo6iXrhsOxPp9HAW7Ff0/HPiHBfsoBvk7HAd5BQ7t+RIcBYsV8uRxV9gf2FbJ\
+Obv7BAi7+wSj+xz7Mxr7gFD7TPsK+xceICv7DVb7JxsoM6bAPh8+wE3aXPUIXPVz9xv3Nxr3OaL3\
+GrrzHrnzytrbwQjB2+em8huGKBVGTnJYVh9dX2dGcCwIbPsAfPsL+xcaJpUvnjkenjikS6peql2v\
+abN1CHWytYC3G83Jpb7EH7m1r8qm3gir8Jv3C/cdGvche/cMau4eau5jz1yxCLFbUp5JGw7t+UQc\
+BXMV1hz7egZUj2iSfB6Se5Z/m4MIg5urh7ob7Tf9J9/3AQa6q4+Umx+ak5eYlJ4IlJ2PrLwa+kz7\
+keEH9x6e9wez6MgIDu33fPn5FSp/BYa6iLKpGtqg1bbRHrbRxsLYsgiy1+Kf7hvq33lm0x/TZsJY\
+sksIsUqeQjgaRX9KclAeck9iT1ROYl43RfsSLvsz+wv7DTU2Vgj4nAbIs5GWnh+lmp2tlMCUxBjg\
+Bkf8DAVLBoC9Bf3+3wb3NPcN9w3l5NDEuxn25tzYwszBy7DFoL8In76VwcQa6W3YT8cex049qSob\
+Rk18bVUfVG1gYWxVCGxVe1FMGnSNbo5oHg7t96P6khUrmpTTnceouhmxy8G90K8IrtDbneUb5Nl7\
+bM4fzmu+Ya5XCK1WnFNOGlZ+W3FhHnFhZGVYamd0XHZResmCvn2yd8tqvV6wUgiwUp1MRhr7Alsq\
+KjgeNyr7EWH7LRv7K/sUs9wkHzTQYNDQGqaUop2eHp2coZSmG6ikgHSgH5Z+mG2aW6BIrle8aAho\
+vMl51BvMxpmovx++qLSzqcAIqcCaxMoavoC4drQedbNsrWOnbKFkmlyUCJRbYI9lGy7sxgbGw5KZ\
+wB/AmLanq7YIq7abu8EauoC1dbAedLBqqWChCKFgWZZSG1RYgHRdH1x0Zm1vZW9ld1h/TAgO7fl6\
+HAVzFfc9/b/3mvsR+5r8X/s9+F/9JfdEBvklWBX5JAf8yv0kBQ7t96ccBXMV+QIGsaKNj5MflpKS\
+mY2hCNT7Z/1HBnr79KiTr5K3kBmSxL2OuBv3A+x3Y94f3mPKVLZGCLZFoD01GvsZWfsFJy8eLif7\
+E137LxsyOpurQx9Cq1O1YsAIYr93ubIapZSinJ4enpyilKYbp6R/dKAfl3+ZbpxcokqsW7hsCGy3\
+wnvOG87Gmqi/H7+otLSpwgipwZrHzhrRe8lrwh5qwl21T6kIqU5CmjQbVlOFgE8fToBXfGB6CA7t\
++qAcBY0VMAf7OYn7GXMmXSVdQEZbMFsvcPsFhfsarb+utK+orqi1obubCJq6v5PEG+bbd2PSH9Jj\
+wlWyRwiyRp87Lhr7J1/7CDI3Hi8p+xNd+zAb+wUsoro+Hz66TdJe6whd63T3C/chGvcio/cSvPcC\
+Hrv3As7j4M7gzum28aAIoPDmldwb+7P87hUrPGdCTh9NQmw0JRpDmkmpTh6pTrJdum4IbbrBfMYb\
+59iu0cgfyNCp6fcJGvcEbeRQzR7NUECsMRsO7fdyHAWmFc0Gl1gF+f42BiL7DS37HTb7Ljb7L0n7\
+MVz7NGn7B2/7Inb7PQj7YQaf9yms9x+59xW49xXN9xzi9yHh9yH09yD3D/chCP0DBl5siYZ6H3qG\
+foSCgYKBg3mEcoZ4GGn7CjadBQ7t+az5mhXabcdvtHDIZLheqlcIqlaaUk4a+wJcLCw7Hjos+xNj\
++zUb+z77GbjmKh8+1GXd5xrVpc2/xh7K0eTC9wiyMLZKtmO3CFjFcdHcGvCx3NfJHtfo9wmx9yAb\
+9xTzakraH9pJskA2GmGBY3hlHndkbWhiamJqU2tDbggwsBXXxLyzoqKiopylmKgIl6iRp6Yasn+x\
+dK8edK5pqF6hCKFeWJZTGzhHdF5UH1RdcFZPGlucYK1lHq1lymboZghz+0IVLWJBVVRJCGBXdlVT\
+Gj+tSM5QHlDO4m32G/cB5a3O1B/GwqnFyhq8eLtkuB5kuEK2IbYIDu33f3MV6Af3OY33GqPxufC4\
+1tC757rnpvcFkfcZaVdoY2huZ25hdVx7CHtbV4NTGzA7n7NEH0SzU8Fkzwhkz3fb5xr3J7f3B+Tf\
+Huft9xO59zEb9wXqdFzYH9hcyUS4Kwi4K6L7CvsgGvsgc/sRXPsCHlz7AkkzNkk2SC1fJXUIdSUv\
+gDgb97T48BXq2q/UyR/I06ri8RrTfM5tyB5tyGW4XKkIqFxVmk8bMD5oRk4fTkVsLfsJGvsEqTLH\
+Sh5JxtZq5RsO/Jn32/pxFa6of3KkH6Ryl25oGmh/bXJyHnJybn9oG2lul6RyH3Kjf6iuGq6YqaSk\
+HqSkqJisG/2IBK6pf3OkH6Nyl25oGmh/bnJzHnJybn9oG2lul6RyH3Kjf6iuGq6XqKSkHqOjqJeu\
+Gw78mffc+nEVrqh/cqQfo3KXbmgaaH9tc3IecnJuf2gbaG6XpHIfcqN/qK4arpippaQepKSomKwb\
+IBz6uRVVzQX3HfcDz+jWGpSKlYqYHoCGgIiAiAiIgIGKghtrcZWgeB94oIGlqxqql6eioh6ioqeX\
+rBu4snlnrB+rZptcUhpmg2N8Yx58YnRkbmluaFFUNEIIDsT6q/dJFf4Z+CQF7wf6GfglBfskB/1i\
++8f5YvvHBQ7E+uL6KBX7D/5j9w8H+mP7zhX7D/5j9w8HDsT3SvrOFfoZ/CUFJwf+GfwkBfcjB/li\
+98f9YvfHBQ5J9/f34xX39wf3GYrulsyizKK8r668CK27nMHHGsJ8wW3AHmzAY7RZqAioWVaaUhte\
+ZIN6ah9qem1ubmJvYndyf4IIeXRzgnQbe3uPlHwfe5OAlIWWCIKbh5ubGsCqucizHsLg8qf3DBv3\
+AOp3Y94f3mLJVrZICLZIoEA3GvsXVyUjQh4iQvsfZ/tBigj7cQdWJRWuqH9zpB+jcpduaBpof25y\
+cx5ycm5/aRtobpekch9yo3+orhqul6ikpB6jo6mXrhsO+I8cBPT6UhX7CfwjSPuDgGaEa4dwGYh5\
+in2AGnSSeZl8HnyZnYSiG8DIpcDPH86/xNq69gi69aL3BPcJGvcJcPRU6h5U6T7UKcAIwCj7BKX7\
+ERv7LvshYzz7FR/7FTsj+wc7+ysIOvsrY/s3+0Ia+zCs+x/O+w0ezvsN6Cz3C0kISPcL9xtp9yob\
+9wv3AqC28h/ytubJ3Nzb3M3wvvcNCMUGdUdyUm9cWTZKPjpIOkcvViVnCGYkIHj7Axv7Ofsosdj7\
+GR/7Gdgj9ED3Gwg/9xpl9yv3PRr3SbX3Ot/3Kh7f9yn3B/cK9yfhCOD3Jvcytvc+G/cj9xBvUvYf\
+9lLeOcchCMchqfsK+xca+xtt+xJQ+woeT/sKRTc7WQhZOzdyNBtYZJejcR9xo36tuBqvkbuXyB4s\
++wc+P1BmCGVPVXhbG2pulJ5wH3CedKd6sQh6sIK0txrkp/DD9wUew/cF1enn1wjW5t2x0xuopoWA\
+pB+kf598mXqYepZxk2ms9wIY+1Z4FW5pf3RmH2VzYFxaRlpFYjxqMwhpMnpGWBpgl2micB5woqZ9\
+qhuxtpytvB+8rL/FxN2otaK6nb4IsPWd4MsauH+vc6YepXNtmGgbDvdx+PwcBXMV9zkG+EUc+3Kg\
+UKFloXgZeKCogbAboTf8hd8GjJubjJobq6COkpUfnpiVm54amYKteMIeL/eiBfyOBvsA+8IFgGyF\
+dX8afo9/koEekoGUhJeGCIaXnoimG52ai4qWHzf8Nd8HsqePk5wfnJKZmJicmJybrqDCCPeY+AsV\
++EMG+2z47AUO9+veHAVzFfkrBvc29wOEfMcf5HbRZL9TCL5TpUg8GlJ9WXBeHnBeY2RXa2p2XXpS\
+fNR+wnuxeMRvuWOsVwisV5xQShpMe1BqVR5qVV1fUGhPaEV1PIIIgTw5hjcb/U/fuga4qpKZnB+j\
+nperuBr6XQe4h6qEnB6EnICXfJIIknxvj2EbXAb3/3EV/JP3kwf3C92Rlrcf0J2/qrC2CK+2ncPP\
+GsR7u2qyHmqxXqVUmQiUZ0CP+wUb+8b88xX8XgddjXCPgh6Qf5aDm4YIiJaricAb9xwG9xvrk5rF\
+H8SavKq0vAi0u5/FzxrEe75quB5qt12rUZ8InlAklfspGw736xwEuBwFcxXTBvcT/GUucVn2ZdNx\
+sBlgxla6TK4IrktFnD4bMThzW0AfP1pORFwuCFwucyL7CRr7DKMguy0eui3MQ9xYCFjc43LpG+Tl\
+pL7oH+i+29LP5ttUGGJOXldbYD9GPFk5aghqOTF7KRv7bftE2/c1+xsf+wT3GVP3M/dMGvcbqvcP\
+yfcCHsn3AeHi9wHMCMz3AfcJq/cSG87KgnnFH8R4xm7GYggO+GbsHAUeFeD4hgf3ePczfW7lH/cZ\
+YfY93vsHCOb7E7n7Jfs5GvsEdSNeKx5eKk8+QlBOWkJoNncIdjY1gTQb/V3fxQaeigWkn5CVmx+a\
+lZaYkpwIkJiNqLka+jkHwIithJoegqB8mXaTCI9/Yo1FG/gAHPtOFffCBqm9kJbRH9CWvZipmrei\
+tq+0vrS9q8ei0gih0Zbb5hrlgNl1zR50zWrGXsBewFmzVKdUpk2dR5IIjmZOjTUb+2EGDvfD7RwF\
+cxUcBG4G9xf8AzNqdcdzunGuGXGtbKhno2ajZ5tmkwiTZkiPKhv75vyT9zwGybqWoKsfqqChpZeq\
+CJSikLTFGqLt/PgpwAe6iKyEoB6EoH6eeJ54nXeXdpIIknVmjlcb+zz8WgZcjW6QgR6PgJKElYYI\
+hpWmibgb92UG9wnmmafNH8ynxba9xbK4scuv3uZrGPsw/EkFHPtn37MGuqiOkZYfnJSZmZSeCJKY\
+jqi4GvpUB7aHqIKaHoKafJZ2kwiQgGONRxsO9x/3ARwFcxX6vwb3FfwCNGpm4GfJaLAZaLBiplyb\
+CJtcQpMnG/vB/Kz3HQbTv5KZqh+qmaOhnKoInKmTtsMasO38+CnBB8CDtHuoHnuodaFwmAiYb1qR\
+RBv7LPxGBmOPb5R8HpN7l3+cgwiCm6iHtRuwN/yn360GtqiPk5wfm5OXmJOcCJKcj6m4GvpJB7SH\
+qIScHoScgJd8kwiSfHCPZhtcBg74ZhwErRwFcxXUBvcG/EIxbE/3HEbsPcUZxT0zqCgb+yL7C1D7\
+CisfK/sKW/sh+zca+wmk+wC8KR68KcxA3VgIWN3icecbxsSWocEfwKC3payppKKbpJSmlKaPsYq8\
+CM0HwIWwf6EefqF6m3SUCJJ6XI8/G9/4yjddB2Rwh4R9H3yDgX+EewiEe4hsXBr8dygHVvcOU2JP\
+bEx0GWksLnouG/tP+zXQ9x77GR/7GvcdSPdA92Ea92DP9z/3G/cfHvcf9xv3NtD3URu6uoaCuR+5\
+grV9sXqofqx3sW4IDvhm7BwFcxX4rjZmBmBth4N5H3iDfn2EdwiFfIhsXBr8Gfln+A8HvomqiJYe\
+hqB/m3qWCJZ5cJBnG1Tg+Ko2WwZmcIeDfB97goCAhX0IhHyIbFwa/koHVo5qkn0eknyYgZ+FCIeX\
+s4nPGzf8qt+yB7ysjpKcH5uSlZWQmgiPlo2vxxr4Rf1n/FEHVo9qknweknyYgZ+GCIeatInQGzf8\
+rt+tB7+sjpGYH5iQlZaTmwiSm4+ntBr6VQe2iKmEnB6EnICXfJMIk3xyj2gbUwYO/HDcHAVzFfiq\
+NmIGZG+GgHofeoB+fIN4CIN3h2VSGv4XB16Pa5R4HpR4l32bggiCmqeHtBu0N/yq37cGsqeQlJwf\
+m5SXmJKcCJKcj6u8GvosB76HroSdHoScf5h7lAiTem+PZBtfBg7E+PocBXMV+Ko2VgZncoeEfB98\
+hH9/g3sIg3uHc2sa/XUH+wN5NGdMHmdMUlc8YghiPC52IBv7IvsGsdY1HzTWYOPvGr2WsqKmHqai\
+p5mtG6ahgXedH5x3lHFrGoKIeIZuHoVtiHZ/GlqkXr5jHmK9zHfbG83GmqjAH8CosbCitwiit5bL\
+3hr5bQe8h62EnB6DnH+XepQIk3ptj14bagYO98PyHAVzFfiuNmUGX2yGgHkfeYB+e4R0CIV6iHBl\
+GvyjB/ig+L+mqJyekJQZkJSNlJQal4WUgJEekX9yjmQba+D4iDYGZIxnhmuCa4Jyf3h9Ym1uc3p5\
+/Ar8Exj4P/zKslipaKJ4GaJ4on2jhAiDo7CHvhs3/OTfrgeyo4yNkh+WjpSQkpMIkpOOk5QanHSz\
+Xcke+8/4QPtG+0wF+58HXZBslHoelHqaf56DCIWatIjMGzf8rt+1B7Woj5SaH5qTl5mUngiTno+u\
+vBr6LQe8h6yDnR6DnH+YfJIIknxqj1kbbAYOxOkcBXMV+LE2WQZkcIeEex97hH+AhH0IhH2Hcmca\
+/mEHXo1xjoIej3+UgpiGCIeUpom4G9YG4daYpMofyqTCr7m7ubq30rbq5G0Y+zD8SQX+gN+3Bran\
+j5KaH5qSlpiTnAiTnI+otBr6SQe7h6uEnB6Em4CXfZIIkn1tjl4bXwYO+VzrHAVzFfhNBvgw/uX4\
+JfrlBfg+NmcGYG6HhHwffIR/foJ5CIJ4h21hGv4sB1GPZZJ6HpJ6ln6cggiCm6mGtxuvN/yp37EG\
+raSOkJsfmpCYlJaYlZeRmIyYCI6mjaGaGvqXB/xbHPsgBSgG/F8cBM4F/nEHWY9plHoelHmYfZ6C\
+CIGdrIa6G6s3/IDfpwa6rZCVoB+flZmZlJ4IlJ2Pr8Ea+iMHvoeshJwehJt/l3qTCJN6bI9gG1sG\
+Dvfr4xwFcxX4QAb5D/6qBfmwB7qGrYKgHoKgfZp4lgiWeHCQZhtn4PhnNnIGYm+IhHwfdoJ8eoFy\
+CIByhmleGhz7h/sNB/2RHATpBf54B1SNaY5/HpB8k32Yfpd+mYOchpyGrIm+igg3/G3fpAe7rJCU\
+nB+clJiblKIIlKKQscEa+ggHwoqtiJcehaKAm3qVCJV6aZBYG2cGDvhm+dscBYsV9xP3B2xO8h/3\
+A0nhNcciCMYiqfsO+x8a+2tI+0P7GfsbHvsb+xn7Pkf7Yxv7e/tK3Pc3+xsf+wL3GVT3MvdNGvcd\
+qvcQyfcBHsn3AePh9wbKCMr3BvcRq/ccG/sABCMyc1xAH0BbUEVeLgheLnT7BvscGvsWofsCuDEe\
+tzDGRtZbCFvW33PoG+jdo7rSH9K6xtW68Ai68KL3BPcPGvcRdPcHXPMeY+RWzUm2CLZJOaApGw7t\
+5xwFcxX4uwb3O/cIgHbKH9pyzV+/Tgi+TqU9LBo6d0ZkUB5cRFFZSG4IbUcgfPslG/uT+/oGVo5p\
+kX0ek3iWfZmECIOZp4e2G7s3/LDfrAa5qo+TnB+ckpeXk5wIkpuPqrga+k4Ht4iphJoehJp/lnuS\
+CJJ6a45bG2oG+AFzFfzd92sH9wHXlZ63H7aer62ouwioupnDyxrResZquh5qul2qUpwIlmM9kfsI\
+Gw74ZvooeBWKfIp/gRpVn160aB5ntMB5zBuxsZGXsh+ylrefvKjBOxg7+xj7CWMkG0VImqhLH1ui\
+ZaxwuAhvuH29whqWjJyNox77SZ37Kdf7CfcZCPsJ9xlQ9zf3VRr3Har3EMn3AR7J9wHj4fcFygjK\
+9wX3EKr3Gxv3FfcIbU7yH/cDSeE1xyIIxyGp+w/7Hxr7WVL7N/sF+xce+wX7F/soPvtLdAg+HAUy\
+FSMyc1xAH0BbUEVeLgheLnT7BvscGvsWofsCuDEetzDGRtZbCFvW33PoG+jdo7rSH9K6xtW68Ai6\
+8KL3BPcPGvcRdPcHXPMeY+RWzUm2CLZJOaApGw73w+4cBXMV+WQG9x3yfW/RH9FuwWKxVgiwVZ5N\
+RBpCeUtmUx5mUldfRmtGai96+waK+AT8VhipZp90lIKidqR8pYAIgKSohqsbpDf70gb8lPkuBftH\
+/EIGW41tjn8eknSXe5yCCIKbq4a6G683/Kvfuwavo42QmB+XkJaTlZeUlpKaj52MkoytjMcI+iYH\
+s4eog5weg5yAmH2TCJJ8co9oG1IG9/9zFfyh97MH7NCRl7Ifw5u3qKy2CKu2m8HNGsN/unSyHnSx\
+a6hjngieYk+UOxsO90j6oBwFcxXTBvb8Qi9vUPcNPeoq0BnFOzKoKhtQV4F2XB9cdmhvdGoIdGp/\
+aWgabJRsnW4enW6mcbB1sHTHdN5y95k+GKuCunnIcMhwum+tbq1tpmeeYAieYJVcWRr7A1srKjge\
+OCr7EmH7Lhs8RJajTB9MokizQsZd+xkYRQYu+Inonq0uuD3EShnDSslb0GoIas/QetIb69+oxdMf\
+x7ypxM0ayHW8YLIeX7I8r/sFrPuO0xj7ILQov1LKCFLKbtTdGsuexrDCHrDBxbjYsAiw2OCd5xvY\
+1X5w0h+9eLlxtWgIDu33ERwFohXRBpVcBfnsBpO6BdQG9yf8LjFrYPcBV9hQuBm3UD+hLhtkdIqI\
+hB+EiIaFiIQIiISJc2Qa/lwHXY5skHsekHuSf5SClIKYhZyIm4evicSKCDf8rt8HxoywjZiOopKc\
+l5WeCJWekK29GvpxB6qKnYiSHoiShZCDjwiOgnqNcRtCUYJ4YB9feGJsZF5kXmpRcEQxqxgO+D3Z\
+HAVzFfivNmcGX2yHgngffISAgIR7CIR7h2tbGv0IB/sEmTimVR6mVbheymYIZsrQedYb19Ofss8f\
+z7K7uqbBCKbBmeD3CRr48Ae3h6uCnh6Cnn6aepQIlHlvkGYbZOD4ZzZrBlZngXd4H3d3gWVUGv0X\
+B/sJdSlfPR5fPEtNN14IXTcpdPsDGyIqoro0HzS6S8Vi0Qhi0Hbj9Br5QAe3h6qDnR6DnH+YfJMI\
+k3xwj2UbWQYO95qNHAVzFfiRNmQGZ3SKiIIffoeBhYSCCISCh4CAGnmScZhpHvgG/lr4CvpaBZit\
+kqWcGp6EmX6UHpR+b49iG13g+EU2BmaMb4d6hHmEfICAfn15e216YPxuHPtmGPsiBvxpHASafLKA\
+o4WUGYKZgJaAlH+UfZF7kAiPe3WNbhsO+a6lHAVzFfiINlYGaHSIhH4feICBe3YafJBylmoe97L+\
+NveM+ZBR9019t3arbp4ZlnpskWAb4PiENlwHYnCGgX0ffYGEfXoafJBylmge97P+PPe1+jwFlayQ\
+o5wanoSafpQelH5wkGQbWeD4PjYGZ4xwh3qEeYN8gIB9gHx+bn5f/BUc+2UY+yUG+6H51vui/dYF\
++yQG/A4cBJt5xHWwcJ0ZmHdrkWAbDvfDzRwFcxX4qTZhBmNyiIaAH4CGhoJ/GoONg4+DHo+Dl3qf\
+cPeZ+/gY97H3+AWmrJilnBqWhpOBkR6RgHWOahtY4PhZNgZVZIWAdB9zgGpsYVj8APxJGPhB/Mem\
+Z6JynnwZnnydgJyGCIWcqIizGzf8q9+1B7SmjpGWH5aQkJSYGpKJk4eTHoqOfZ5yrvvT+D4Y+/H8\
+S3Zxf3uIhRmHhImEhBp+k4KahR6HlaOJsBu1N/xY3wa0qo6Rnh+ekJ6VnpqemqSkqbD4OfiPGPwK\
++IFmvGyqdJcZl3NlkVYbDvcfkBwFcxX4njZQBmd0iISBH4CEhoB8Gn6ReZh0Ho6GkIOQgfek/IwY\
+98H4n5egkpmOkhmNkYyRkhqUiZOGkh6GkYOQgI4IjIR5jGwbV+D4QzYGZYxviHmGeIZ8g4CAf4B6\
+c3Zo/A79Chj78wdYj2mUfB6TfJiAnYQIhJ21h80bN/y137UHuKmPk5ofmpOWmJSdCJGYjqq8GvfO\
+B/wF+SRuwHKqeJYZd5VmkVaMCA73H/eJHAVzFfpfNgb+Ixz7TgX34wb3LPcIpb7bH9q+0ujK9xvn\
+bBj7NfxFBf7L3wb6JRwEswX7tgYqPoJ4Uh9SeFpuYGRgY19NXDY1tRgO/ML3ZBwFsRX3yiz7ORz5\
+Nfc5K/vKBg7E+BwcBbsV+S8c+IcF+ykG/TIcB3kFDvzC+Cr8bRX7yuv3ORwGy/s56vfKBg7E94r4\
+5xX7Igb4TvnMBfcbBvhP/cwF+yIG/AT5KgUO+yh/+y4V+qwl/qwGDv1l+EYcBbsVwUkF+x37A0cu\
+QBqCjIGMfh6XkJaPlo4IjZaVjJQbqqWBdp8fnnaVcWsabH9vdHQedHNvf2obXmWdsGofaq97usQa\
+sJOzmrQemrSisaiuqK7FweLUCA6b+a341xX3AQfVdsBiqx6qYlCbQBtmaoeCbx9vgnV+enx6e355\
+g3eIhINufloIT3xsbVwbcHaUnXsfepyDo6kat5u2rLYerLW9rs6nCKbO2pnmG+DUfnHIH8hwt2Wo\
+WgifaZVNMRr8FQdUjWiOeh6Sbph2nn0IfJ2jhKgbqq+SmrYfNAd7VFmDXxtcY5KYax9qmHGfdqV2\
+pH6qha47TENfSnIIckpKfkkbL0CkvVIfUr1uxs4atJaxoLAeoLCrq7antqfOpOeg56D3FJ/3N5wI\
+NAT7L3QsfGaCQnpXeWx3bHd0dn50CH50hHJxGnGTcppzHppyoHimfQh9pqiEqhu2vJWgwh/CoNGz\
+4McIDu3EHAUUFd4Ht462k7SYtJi4n76mCNT89gbGt8esyaEIocnKlswb1tB3Y8ofymO9U7BCCK9C\
+nTQoGvswXfsUMCYeLjYgXPsWGz1Fm6xOH16jX7BgvVT7HBguHAUUBvc6/LIV/BUHTo9hlHMelHKd\
+cqZypnGqd7B8CHyvsIOyG8bBm6q8H7yqsbqnyAinyJnV4Rr3DW3rUNQex1xIqTYbX16De14fXnpS\
+bUZeCA4g+lL3qxXLVwX7O/sR+ys3+0Mb+x37B7zsLR8t7Fz3DfclGuyh4rfYHrbYyMbZtgi22OSg\
+8Bv3B+pvU9gf2FKxUlIabIJ0eXoeenl3g3Qbf3+OkYAfgJF/lX+YhpGBnn2qebJ9pYGYdqZyoG2a\
+CJpsaZNmG1JXe2xbH1psZV1vTghuTn1CNhr7F64i0T4eSMjTat8bsrKSmLMfspixnq6kpZ21tMbL\
+CA7t+U0cBRIV4Ae4j7WTsZewlrqfxKgI1hz7QwZTjGmOfx6ScpZ5m4EIgZuqhrkbtjcG++97Bfcz\
+B0hOTWBRcghyUFF+UBv7DSe87DwfO+xj9wj3HRrsoOW23B613MPI0LYIttDXoN4bysaAdcEfwXW8\
+arhfCPhNB/60BPgOB8GBt3euHnataqldpAikXFyYWhtRVntsWh9aa2RdcFAIb099QzYaO5hGpVEe\
+pFCuX7ZtCGy2uHy4G7i9mKXEH8SkwbC/uwgOIPo295YVy1daUVxdXmkZXWlgc2J+CH1iXIRUGyk4\
+n7NGHzy5T8dh1Qhh1Xbi8Br0n+W01h601sTG1LYIttTfoOsb0smAdcAfwHS3arBesF6lV5xRlGmR\
+X4xVCP1XBolqinN7GjeaQKhKHqhJslu8bAhsu8J7yBu/vZekvB+8o8a60NII+xT4KBWByH25eah4\
+qHGjapwInGlllGEbYWSCemYfZnptc3Nscmx2X3lQCA78mc/6WRX3P/cqBvKt4NDNHszP5Kz3AhvU\
+xXxstB+0bJ9qZxpzg3d7ex56eneDcht1eI+Tex97k3KfaqsIrGhpnGsbdXeEfnofeX19d4JxCIFw\
+hmNUGvtT91Al+1D9HQdejm6SfB6SfJWAmIUIhZiqiLwbtDf8l9+qBsCsjpKaH5mSlZaSmpGajq2K\
+wAj5Dvs/Bw5J+eP6ChWprqqlqpwInKqnk6Ubo5+EfZwfm3yTenYadoR5fHwefHx5hHQbgn6Njnsf\
+kHh8jX4benqDfHkftFmgUEgaL2Q7PkgeSD4pafsKG0pJmaZJH19scneFhAiCgIZ/fhp4lXuffh6k\
+er191oD3tWAYy4HLesx0zHS6bKhmCKhmmV5XGjNiRTpWHkgk+y5p+18bIDWWokgfSKJYq2a0CHCp\
+fqqrGrSZtKayHqayycPt1EybXZ5woAhopnqqrhqcjpySmh6RmpWampqZmqWfsaajnJyXlZNarmey\
+crYIcrZ/ur4a4KzVzMoe2Nr2svcbG8e/hHy4H7h8uXC6ZAj7xJUVSlNzXF4fXlx0UEUaXJVhoGYe\
+oGWobbB2CHWws4C0G7SzlqGxH7ChqKmgsAifsJW1uhrUdcdfuR64XlKiRRv7M/34FUtUYV92aQh2\
+aYBqbBpwlnGgcx6gcq52vnsIe77Kg9gb5tmVn8wfzJ65pKeqCKCjlaesGqeDo3qeHnqea5xcmlyZ\
+X5VikggO90jVHAURFeEHzJS9la+Xr5axnbKjCNn9KQbWytO6zqgIqM7Mmsgb5NVwVsUfxFaoSj4a\
+/H8HWo9sk3weknyYgJ2ECISds4fKGzf8mN+xB7yrj5OaH5qSl5iSnQiSnI6wwhr36QfWiLyGoh6B\
+snaqbKIIomxjl1obVFJ+cFAfT3BNYktVCPyJB2aOcpJ+HpJ+loKahQiFmqqIuRu0N/ya36oGvK6R\
+l6Efl5GUl5CcCJCcjrvaGvqMBw78wvfVHAWgFaumgHWiH6J0lnBrGmuAcHR0HnR0cIBrG2twlqJ0\
+H3SigKarGquWpqKiHqGipparG/uT/P8V3gfCkrqUsZewl7aeu6UI1P22Bm+PdpN9HpN9loGahQiE\
+maWIsRu6N/yU37QGuKmPk5ofmpOWlpKaCJGajq3BGvjgBw78wvfhHAWgFaumgHWiH6J0lnBrGmuA\
+cHR0HnR0cIBrG2twlqJ1H3SigKarGquWpqKiHqGhpparG/uT/P8V3Qe9kLaTr5avlrqgxKkI1P7V\
+Bjx8SW1WHm1WYWBVbAhsVUt7QBtDUpqpYB9gqXaqqxqmk6GdnB6cnKGUphubmYiFlx+WhZx9oHar\
+a6V2noAIg5mbh5wbtKyfs6MfnaiUu80a+m4HDu3HHAUVFd0H4JLkp+a8CNj+egb4A/e4Bca6qKqa\
+GpSFk36QHo6Dd41sG1bf+I83BlJehYBpH2l/ZHReafu2+3EY9+r8CqxnpXKgfBmgfJ+BoIaghauI\
+t4oIN/yo37QHtKSOkpYflpGQk5YaloGad58eiI6Hj4eQ+573xhj7N/sRBfsXB1qPa5J8HpJ8l3+b\
+gwiDmqmHuBuwN/yX3wbFjK+NmI+ikpyYlp4IlZ6Qr8Aa+rsHDvzCyhwFFRXdB+aS46fhvAjVHPsx\
+BleOapJ+HpR4l36cggiCnKuHuhurN/yX378GrKOQlZwfm5WXmZKcCJKcjq6/Gvq1Bw75hdP5yRXg\
+B72Qt5Owl7CWtp+7pgjV+zwG18fGs7agCKrMypvGG7SzhHyyH7J8qnijdaJ1n22cZdHJzLfHpAik\
+xsiXyBvGv39zuB+4cqttoGYIn2aVVkQa/GQHWoxvjYMejn6Tf5aAloCXg5mGCIaZpYmxG6s3/Ivf\
+BsSMsY+ck5ySl5iUnAiTnI+tvhr4TQfDhrKBoB6BoHmdcpoImXFrkmUbXFl+clcfRmhUZGNgCPxx\
+B12NbZB9Ho98kn+WgpWBl4SZiAiHmKyJwBs3/IHfpweyp5CUnB+blJialJ4IkpqOq7sa+D4Hyoa1\
+gqEegaF4nnCaCJpwa5NmG2BfgHZfH0psT2JUWAj8lgdsj3WUfR6TfJiAnYIIgp2kh6obsDf8i9+m\
+Brmpj5KaH6CVm5uUoQiQl46qvRr43QcO90jW+ckV3wfGkriTqJSolLafwqoI0/tSBuPV1r3Kpgil\
+ycqYyxvCu4J5tR+1eK1ypmylbJxnlGMIkHKOZlka/EwHVo9qk3weknyXgJyECISctIjMGzf8l9+n\
+B7usj5ScH5yUmJeTnAiSnI+tvhr4BAfXhcB/qB5+qHajbp4InW1llF4bVVF9cE4fTm9PYlJVCPxh\
+B1ePaJN6HpJ6mH6cggiEl6uIvxuoN/yX36QGvK2PlJ0fnZOYmpKgCI+Wja/KGvjOBw5y+Nf6cRXt\
+4Hdi0x/SYsRQtD0ItD2gMicaJ3YyYT0eYD1SUEJiCGJCM3YmG/s1+w298DofOvBi9wr3HBruoOS1\
+2B612MbG17YItdbhoOsbgyoVP0ttT1YfSEBq+wD7Ixr7HacixEMeS77Ra+MbxL2aqbgft6mvu6bN\
+CKbMmdjkGuJ82G7QHnTCabVeqgipXVeaUhsO7cv5yhXdB723kZiyH7KYtaG5qgja+zsG3s3Rt8Ki\
+CKLCw5bCG/cG7F4y3B/bMrP7CfsjGvszXfsWMCYeLjj7AFz7FxtKTZekUh9inFuqVbgI+90HWoxu\
+joIejn6SgZWClYKYhpqICImWsYrMGzf8l9+4B7mpjpOZH5iSlZWSmgiPlo2uxRr6oQf3PCQV++wH\
+Xo5pkHUek2mbbKJwonCqc7N4CHiytYG2G+LWrMzLH8rMq+73GRr3EHHrVs8ezlZNrUMbXFl/clQf\
+VHJRZkxaCA6b+ij6WRX3ARz7ZAZajmuRfR6UeJd+m4MIg5uoh7Ubtzf8md+3BrKlj5KaH5qSlpaT\
+mwiSmo+lshr3+AdvcGhzYHRgdF95XX4IgWhmhmQbPUOftEofSbRWxmTaCGPZd+LrGvcbs/cI2uwe\
+9wHk9wnC9yMbycOBdrwfvHbDYspQCHf9ABX4DAfQgsB4rh54rmqpXKUIpFxamFgbUld7bFofWmtk\
+XW9PCG5PfUQ4GvsJqCzFRB5Exc9n2Ru1uJWevB+7nsKryLoIDvuj0/nKFd0HvI+2k7GYsZe2n7yn\
+CNb7UQa6xcK5yq0IrcrDnL0bvLJ/dKgfqHSZbmoac4J2eHkeeHh0gnAbf4GNjoIfgo5/k3qWCKNm\
+bZdyG2pmfW9jH1hnZGhuaAj8YQdjjXCQfR6PfJJ/lYGVgJeEmoYIhpqkibAbrDf8md+2BrSlj5KY\
+H5yVmJmUnQiTnI+ruRr44gcOIPmD+lkV0Qbl+8YxbWfdWcxKuhm6SkmiSBtYYX9yax9rcntuahps\
+l3GidR6idL5y2m73V0YY9wJk1mGzXgiyXp9XUhpafF1uXh5uXmBnVHAIcFNLfkMb+wQrq8s7H3ZD\
+BUQG+xH32+avyCvER8FjGVLW3W/iG8W7m6qwH7Cqnq2xGqp/qHSlHnOkXaRHo/t73xgor0ayZLYI\
+ZLZ4vMIazqvHyr8evsrbpewbvriFfrMfs36ydbJtCA78HvflHAUZFdL76Pe9J/u9/O8GWJBmlHUe\
+lHWaeaF9CH2go4SmG8rRp8TYHyoHUDQybTIbWF6WomIfYqJvpXyqCHyqg8DXGvj7+0PfB8OYuJ6u\
+pq2mp62gtqC2ncuY4QgO93Gf+lkV+A+aBf0YB1KTXptqHppqo3GseQh4q7GCthvAyJmozx/OqM+1\
+zsQI+GYHvIeshJoehJp+mHiUCJR4bpBjG0LfBvgPmgX9fgdbj2qTeR6TeJd+m4QIg5qrh7obqjcG\
+++B6BfdNBzBCO1lHcAhvR0Z9RRtXXpKZZR9kmWqgbqdup3StfLIIfLKDtbga+FsHtIenhJwehJt/\
+mHqVCJR6c5BuGy8GDiD6WQT4XjdvBmVzioiCH36HgYWEggiEgoiBfxp6knCaZh73ePzN93H4zQWZ\
+sJKlnBqchJl+lR6UfnOQaBtb3/gfNwZwinSHeYN4g32BgX6Afnxtdlv70/1+GPsMBvvV+Y9+qnyl\
+e58ZgJh9lXqSCJJ5do90Gw74PYr6WRX4YDdrBmRxiIV+H3eCgXx3GniTbZpiHvdj/Lf3XviQebp2\
+wXOwcKAZeZhwk2iNCN/4XjdkB2Z0iIWAH3iAgnp0GneSb5loHvdj/Lf3Xvi/lqmQnIyPGY2SjJOT\
+Gp6EmnyWHpZ8cJBkG2bf+Bg3Bm6KdIZ5gnmCfYCAfYB9fGx4Wvu4/XYY+wwG+3v41Pt4/NQF+wsG\
++7v5dni6fKt/mhl/mnyXepQIlHl1j3AbDnKw+lkV+Is3aAZ3eYmGeh+BiIOGhYQIhIOIhIQafJh0\
+pGwe9yP7SPc790gFqqyapJwal4aUgJIekoB0jmgbZd/4PzcGYYlngm18bHxnbmJg+3n7ghj3sfvZ\
+ln2nZ6purnUZnn6phbSKCDf8f9+1B6ufjY+UH5qSkpabGpp7pmuyHvtK93P7X/tzd3OAfwV6eYN7\
+fRp+kIKWhR6FlaKIrxuzN/w53wasjKSOnpKekZ2VnJipo6GemJn3uffBGPuN97JsrnKkeZoZeJl5\
+lXqRCJB6co5sGw5JgPpZFfh6N2MGZXSKiYQfgoiEhoWDCIWCiIF+GnmUbZ1gHvd8/LX3a/idBaTI\
+mLSfGpqFl4CSHpKAcY5jG1zf+C03cwZjcYiGfx9/hn+AgHuAenlmclH8A/3rGHBOblJqV2pWYmNa\
+bghuWlR9UBtGVJuqYh9opnmssxqkk5+anB6bmp2ToBubmoiEmR+UiJ19pnKsbqN5mYQIhJiZiJgb\
+pqaUnqYfpp6hpZ6tpryhuJy2tO8Y+975d3S/d657nRl7nXuWe48IjoJwjF0bDvtR92H6WRX5bTcG\
+/Tb9qAX3Ogb3FuibqsQf2bfF1bH05GsY+w/73wX9vt8G+Tb5oQX7WQYwRHtqWB9YaltNYDA1tBgO\
+/Ov5EfwrFWgHSpRSnlunSrBZu2fGCGbGecrOGriSv5nGHpzQk76sGr53uWK0HmK0U6VFlAi0B9GU\
+w6W0tAi0tJ+5vxqrg7560B59xoTAuBrPnsuyxx6yx767zK+5pcGcypMIaAc+eFJtZmIIZmF5WlMa\
+aJNXm0UemU6SV2AaRnJJWUweWExCWitp6WjUWr5LCL5LpUhFGl+EV31PHntFg1ZoGlSdW7BhHrBh\
+xGzYeAgOxPizHAW7FfcmHPiH+yYGDvzrcBwFaxWuB8yCw3m8b8xmvVuwUAivUJ1MSBpehFd9UB56\
+RoNYahpYoF20Yh60YsJx0YIIYgdFglRyYmIIYmJ2XFcaa5NYnEYemVCSVl4aR3hLZE8eZE9YW0pn\
+XXFVekyCCK4H2J7EqrC1CLC0nbzDGq6Dv3vRHnzHhL+3GtCkzr7KHr7K1LvrrS2uQrxYywhXy3HO\
+0Rq2kr+ayB6b0ZPArhrCebtmtR5mtVKpPp4IDsT6afndFeIqdld0YnFuGXBtbnRrfAh8a2mDZxtw\
+cJCVcB9+kGKeR677GcsYknp6jnoba3GAdHgfd3RtW2RALO0YpsCmtKaopqenoKqaCJqqqpKqG6Kk\
+h4KmH6aCu3XSZ8tqs3ichQiEm5iIlhuqqZmmph+enqm6tdcIDvzC98f5aRVobpekcx9yo3+orhqt\
+l6ikpB6kpKiXrRuuqH9zpB+kcpduaBpof25ycx5ycm5/aBu3JRXX/hIFjnKMe4QaWoBndnUedHZr\
+f2IbZ26WoXUfdKGAqLAamI2fjqce2voaBQ7t+Q4cBXMV6/trBtuAzXnAcL9wsmykaQikaJhrbRpy\
+gnV5eh55eXWCcRtyd5KZeh96mHqne7Z7t3esdKBzoG2ZaJII/YEHxpa+nLWktKO+t8bLzFQYTj5O\
+U09mT2ZNdkuECPt/K/d/BziSQaRKtUq1WMNo0Ahn0HnZ4hrinNiuzh6tzr3BzrbOttWk3pIILARm\
+hGp+cHhweHJydGx0bHtmgGEIgGGFWVIaRpZPoVgeoVesX7dopnSuebh9CA7txPnLFfedBm3QfNDP\
+GtCey7HGHrDGw7rVsAiw1Nyd4xve0ntsyB/Ia7tdr1CuT6E/ky4qfRh74XbKcrNxsmirYKIIomBa\
+l1UbOUdxWFQfVFhvTUQaRJ0/rjwe+AIq++IGpD+dTJRZCJRZj1pbGmSHZYJkHj73I/cFZOAbsK2W\
+oqwfrKGnr6K+or6aypLW6IQYjCd5L2g3ZzZhUFxoCGhcVHpMG1dVmKVUH1OlSLs+0WtOY15cbwhq\
+VFB7TBtZXpWgZB9koG2ndq8Idq6As7YatpayoLAeoLCpp7CgCJ+wtZW4G+DZZ0LSH4a0g7CArHrC\
+b85m23uvgKWGmgj7wwb4TfyOFYCUe5l1n26mdpt/knaXdpR3kQiRd3iOehtman1wbx9ub31rZhpj\
+mmmocB5vqLF9uBu3tZmmsh+ypqmwn7oIDv4J+TAcBYsV/jYc+l0F+wsG+jQcBaMFDu35q/lBFfgK\
+KvxEBoaCBfsT+Ekq/En7EwdYj2mUfB6TfJiAnYQIhJ21h80bN/y137UHuKmPk5ofmpOWmJSdCJGY\
+jqq8GvcT/EPs+EPlB3G5Bfwp7PfyBvu0+JVuwHKqeJYZd5VmkVaMCOD4njZQB2d0iISBH4CEhoB8\
+Gn6ReZh0Ho6GkIOQgfek/IwY98H4n5egkpmOkhmNkYyRkhqUiZOGkh6GkYOQgI4IjIR5jGwbV+D4\
+QzYGZYxviHmGeIZ8g4CAf4B6c3ZoCA7t+CD6WRX3Tga59zmSp5mwn7gZn7ijr6imsrG4qL6gCKC+\
+wZXFG9XGfG62H7ZuoGpoGnKDd3t6Hnp7d4NyG3p8jpF+H36Qe5d5nWqrb6F0lwiTfXuPehtsbXxu\
+bh9tbXNaeEhS+2IY93AGcyoF+3IG+239sWz7BWg0Y08ZYk5bXlRuCG1UTnxKG1Jdl6RrH2qjeqaq\
+GqKTn52cHpucn5OjG5qZiIaYH5eFm3+eeaB4nH6XhQiEl5eIlhupp5usph+mq6XMpu73g/oFGPtS\
+Bg4g97b5zRVKq1uya7gIarh7vsQa5bPY2soeytr2q/cdG/ce9wFsTNwfylqrUUoaaIJweXgeeHhz\
+gW0be3yPk34ffpOAl4OagpqEo4SshK6EpYKagpp9mXiZeJhzlm+TCJJubI9pGzlKeGZcH1tmc11V\
+GmSVa6BxHqBxsHPAdKCCznb3BGvxbtdsvWq9arBlo2AIo2CXXVgaWn1YcFQeb1RjV1ZZwHSza6hk\
+CLBYnlNNGk55UGZVHmZUVV9EaghqRDd7KRsrOZmoRh9GqFWyZr0IZr14u7gaqJWln6Ieop6hlqIb\
+nJyGgpsfmoKWgJJ/kX+QdI9pkGKSbZZ3nGmqb7d1CHW2wIDKG8nBlaC6H7qfraahrQihrJawtBqm\
+haR/oh5/onmfc51znWybZJl+kGaUTpo4n1CbaJZFo1OmYqhiqGuvdbQIdbSAtrcavZq9qr0eqb3B\
+wdnGCNtrFVtiaWN2ZQh2ZIFoaxpplmmhah6haa1vuXW4dddz9nLSe7t+pIKpqaKtnLAInLCTrq4a\
+soKveqoeeapwp2aiZqJMozGlMKVTnHSSCA7E9xL66RXk5vcV+xW0qrWiuJoZmri5k7wb7uZsTt4f\
+9xX3FeMw+xT7FAXINKowKhopbDNOPB73FPsUMzP7FfcTYGxfdF18GXtdXINaGyoyqsk7H/sU+xMx\
+4/cV9xQFTult5+Ua56njyN8e9/zBFTI+a0xMH0tMaz4xGjKrPstMHkvK2GvkG+XYq8vKH8rKq9jk\
+GuVr2EzKHspMPqsxGw79Zfdc+h0VW/fyBYmcip6eGrCSp5qdHpyZnpSjG6Gdg3uZH5h7knNsGnmJ\
+dYZxHlX79QUO+/X5SxwFuxXBSQX7HfsDRy5AGoKMgYx+HpeQlo+WjgiNlpWMlBuqpYF2nh+edpVx\
+axpsf290dB50dG9/ahteZZ2wah9qr3u6xBqwk7OatB6atKKxqK6orsXB4tQI+/kWwUkF+x37A0cu\
+QBqCjIGMfh6XkJaPlo4IjZaVjJQbqqWBdp8fnnaVcWsabH9vdHQedHNvf2obXmWdsGofaq97usQa\
+sJOzmrQemrSisaiuqK7FweLUCA78R/en+ecV12cg+9P2+8s/ZftN9/EF+EL39xXYZyD70/b7yz5l\
++0z38QUO/T33p/nnFddnIPvT9vvLP2X7TffxBQ79Pfdt9ycVP6/299Mg98vXsfdN+/EFDu3V+lkV\
+90L3AgbDj7aSqR6WuqK2r7SutLmrw6MIosPMl9Yb6dd3Y8YfxWOoYmEacIN2fHwee3x2g3IbfX6O\
+kH4ffpB+k36Wg5J/mnqie6KAmoSReJ13mXWUCJR1dJByG2tsg3tuH257dHZ7cntygWyGaAiGaIhs\
+chr7IPhxB6ifjY+WH5OOkpGSlAjV/YcGWI5qkX4ek3mXfpuCCIKbqYe2G7I3/JXfswa1p4+Smh+a\
+kpaYlJ0IlJ2Pp7Aa+RX8Zv0VB2SPcJN6HpJ6l3+bgwiDmqaHsBu7N/yW36sGuKeOkJYfoZabmpSg\
+CJKaj6i2GvkL+0IHDu36rRwFuxUc+yIHYo1wkH4ekH6Sf5aClYKWhZiICIiXrorGGzf8lN+vB7ap\
+j5SbH5uUl5iUngiTno+tvRr5BPxm/RgHXo9tk3weknyXf5yDCIObqYe2G7A3/Jbfsga0qI+UnB+b\
+lJeZk54Ik56Prbwa+QT7Qu/3QvcRB9uazqrAHqrAubXJrAisydKb3BuksIiFvB+GtqqInBustJGW\
+vh8t/IoV99QHhHh7iH4bgIGOkIAfgJB3mG2iCKxfX5xeG1VedmFmH2ZheE04GvszBw77KPqg+OQV\
++wn+rPcJBw5J+O374RUt+DUG93lu90lR9xgerr6hrZSck5yXrZvA+zJfGH5cZYRvG251lJ18H3uc\
+g6SsGqiUoZ2cHpyco5OqG5qZioiYH5CKmoekg/dDXRiGuIWyhKyErH++eM9+uoSpiZgIiJ6JnZ4a\
+q5Wkn54enp+nlK8bsKeCeJ8fn3iVcGkaaYBQdTgecSRy+xj3OLkFlrStkaYbpqGCeZ4fnniUdXAa\
+bYNze3keeXp1gnAbbGSRmF0f+zC3lGOVbJV1GZJ8oGawTghY+y1x+0j7ZRoOSfhH+LMVprSesZev\
+lq6Ww5TX+0tYGINucIdzG2lyk5t7H3uag6KqGqSPnpKZHpKZlZWYkAiVoKGQoRudn4iFoR/3WFZ+\
+5XnidN4ZdtaBvaUasJWnnp4enp6olbAbsKiCeJ8fnniVb2YafIl6iHgeiHh/XHhAcPsJfEKHbfdY\
+wBiRoaGOoBurpIN7nB+cepR0bRpog3J8ex56fHSDbRtubo+Tbh/7S76TRpRWlmcZlmacYqRdclx6\
+YoBmgGaCV4NG90u+GJKmpY+kG66lg3ybH5p8k3RsGnKHeIR9HoR9gYF/hgiBdnWGdBt6d46RdR/7\
+WMCSUJ41qfsHGZ5AlVlxGmeBb3h4Hnh3b4FnG2RulJ54H3iegaavGqeVvqDVHpStlLKUtpnNlLuP\
+qftYVhiFdXWIdhtrcpOceh95nIKiqBquk6WbnB6bmqKTqhukp4eCrB/3S1h/3YDFgK0ZgKx4sHKy\
+CA78mffb+cwVrqh/cqQfpHKXbWgaaH9ucnIecnJuf2gbaW6XpHIfcqN/qK4arpippKQepKSomKwb\
+DsT56hwE7hX7Kxz5Viz6wwaKfYCLhBspOpqoSx9LqFu0a78Ia757ydIawJW8nrkenrins66srqyv\
+pLGasZq9lciSCI6pv43WG/g0QwZbh2yFfYN8goF+hHgIhHiIZFEaHPnzLQcO+3r3SvlUFd6n0sTF\
+HsXDz6jbG9vPblLEH8RRp0Q4GjlvRVJSHlJSR248GztHqMRSH1LEb9HcGg79Zfdx+/4VVc0F9x33\
+A8/o1hqUipWKmB6AhoCIgIgIiICBioIba3GVoHgfeKCBpasaqpenoqIeoqKnl6wbuLJ5Z6wfq2ab\
+XFIaZoNjfGMefGJ0ZG5pbmhRVDRCCA779fcQ+/4VVc0F9x33A8/o1hqUipWKmB6AhoCIgIgIiICB\
+ioIba3GVoHgfeKCBpasaqpenoqIeoqKnl6wbuLJ5Z6wfq2abXFIaZoNjfGMefGJ0ZG5pbmhRVDRC\
+CPf5FlXNBfcd9wPP6NYalIqVipgegIaAiICICIiAgYqBG2xxlaB4H3iggaWrGqqXp6KiHqKip5es\
+G7iyeWesH6tmm1xSGmaDY3xjHnxidGRuaW5oUVQ0QggO+/X3EPoCFVXNBfcd9wPP6NYalIqVipge\
+gIaAiICICIiAgYqCG2txlaB4H3iggaWrGqqXp6KiHqKip5esG7iyeWesH6tmm1xSGmaDZHxiHnxi\
+dGVuaG5oUVQ0Qgj3+RZVzQX3HfcDz+jWGpSKlYqYHoCGgIiAiAiIgIGKgRtscZWgeB94oIGlqxqq\
+l6eioh6ioqeXrBu4snlnrB+rZptcUhpmg2R8Yh58YnRlbmhuaFFUNEIIDvxH+GP3JxU/r/b30yD3\
+y9ex90378QX8Q/v3FT+v9vfTIPfL17H3TfvxBQ76ABwGq/eAFa6of3KkH6Nyl25oGmh/bXJyHnJy\
+bn9pG2hul6RyH3Kkf6iuGq6YqaWkHqSkqJesG/0/Fq6of3KkH6Ryl25oGmh/bXJyHnJybn9oG2hu\
+l6RzH3Kkf6iuGq6YqaSkHqSkqJesG/0/iBWuqX9zpB+jcpduaBpof25ycx5ycm5/aBtpbpekch9y\
+o3+orhqul6ikpB6jo6iXrhsOHAWp+CMcBYsV7dhrTMMfyUWqLPsNGvsGbDFOSR5ITTtqKRslOrLZ\
+Th9ZzHLh9wAa9wup6MfMHszH2qztG4lLFWhsgXdwH3B2dWd5WAh4V4JORhpHk1KcXh6cXqFpqHYI\
+daeqgKwbrauWoagfqKCjrpy6CJy6lMbRGuh712zEHsRrXKdNG/qPyxX+NRz6XQX7DAb6NBwFowXn\
+/UkV7thrTMIfyUaqK/sNGvsFbDFOSR5ITTtqKRslOrLYTx9YzHLh9wEa9wup6MfMHszH2qvtG4lM\
+FWhsgXdwH3B2dWd5WAh4V4JORhpHlFKcXh6cXaFpp3YIdqeqgKwbrauWoagfqKCjrpy6CJy6lMXR\
+Gul712zEHsRrXKdNG/ndyhXt2GtMwx/IRqor+w0a+wVsMU5JHkhNO2oqGyQ6sthPH1nMcuH3ARr3\
+C6nox8wezMbaq+4biEwVaG2Bd3AfcHZ0Z3lYCHhXgk5GGkeUUpxeHpxdoWmodgh2p6qArButq5ah\
+qB+ooKKunLoInLqUxdEa6XvXbMQexGxcp0wbDkn5UflpFWhul6RyH3Kjf6iuGq2XqKSkHqSkqJeu\
+G66of3OkH6Nyl25oGmh/bnNzHnJybn9oG74lFfv3B/sZjCiASnRKdFlnaVsIaFp6VU8aVJpVqlYe\
+qlazYb1uCG68wHzEG7izlJysH6ycqaintKe0n6SXlAidoqOUohubm4eDmx+agpaCkYAIlHuPe3sa\
+VmxdTmMeVDYkb/sMGyAsn7Q4HzizTMBgzghgznbW3hr3GL/x9NQe1PP3H6/3QRv3cgcO/HD4wRwE\
+khX7ssdZlmmZeJwZeJyCn6QaopKdmZoemZidkqAbtsB0XMof9037HAUO/HD3IBwEkhWuB/dN9xwF\
+usrAorYbn5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA77zPhBHAV8Ffe3+1NwWPuc6PubLnC+BQ77\
+o/mSHAUtFYBfcmZlbghuZGB8XBt8fYyOfh9+jm2TXJoIokJYlmwbbnB9cHIfUJ+YtaKtrKUZpKyv\
+mLIbs8x+cuQff7ethaIbtquaqaIfDvuj+YYcBRkVJPzy8gcO+3r3GxwFWhW7sQVE4Oxn9wEbwMGV\
+oMAfwKC2pKupuWUYbE5dWk1kCGRMSHhEG1pdlJxfH1+cZaJrqWqpcbB2twgO/RT3nhwFYBWtqH90\
+ox+jc5duahppf25zdB5zc25/aRtpbpejcx9zon+orRqsl6ijox6io6iXrRsO+8z3mxwFYhWsqH9z\
+ox+jc5duaRpqf25zcx5zc25/ahtqbpejcx9zo3+orBqtl6ijox6joqiXrRv34hasqH9zox+jc5du\
+aRpqf25zcx5zc25/ahtpbpejdB9zo3+orBqtl6ijox6joqiXrRsO/Jn32xwF2xXAt3lmsB+wZp1e\
+VxpWeV9mZh5mZl54VxtXX56wZh9msHm3wBq/nbiwsB6wsLedvxtFBGpwf3R0H3R0f29qGmqXbqJ0\
+HnSipn+sG6ynl6KiH6Kil6isGqx/p3SiHqJ0b5dqGw78mffRFnE0BY2mnIyQG7CuhHyrH6OAnnuZ\
+dQiYdJJxbBpXemFpax5qaF17URtRWZmoYR9soHujphqakJeVlR6VlJiQmhuamIeFlR+VhJR9kniV\
+dJN9koUIf5qdhaAbpqGVoJ4fnp+UpawarYGld50enXdslGEbcGqEfmUfvvczBQ78Hvd/+uUVaqHT\
+902evJ2rnJwZm5udk54bmpiGgpUflYGQf34aa31qb2oe9wD7ShVqodP3TZ67nKucnBmbnJ2Tnhua\
+mIaClR+VgZCAfhprfWpvah4O/Jn32BZyeHV0eW4If3iFd3cac5N3nHseepyeg6IboKORmKYfppim\
+naSkrGAYXGJmcG59CHZgY4BmG2ZsmKVyH3KlfquwGqmWq6GtHpqio6KqoAgO+8z4QRwEbhX7tvdT\
+pr73my73nOimWAUO+gAcCAz45BX7CRz36PcJBw4cBYD5dhwFcxUcBkAG9xf7/zNsXvZZ1VSzGbhM\
+K6L7Fxv8QPyX92AGy7qSmqkfqZmjoZ2oCJyolLC2Gsjr/PorxAfAg7R7ph57pnWgbpgImG5ZkkYb\
++2D8fgaMcwV7jIGOhh6QgpOFlIcIiJKaiqQb99cG6tqXo8ofyaLBr7m6ubq41Ljt5m0Y+y/8SwUc\
++zLfwga6rZahnh+bnZOruhr4Y/0tB/us/FeDgAV0bH9wcxp8kn+Ygh6CmKSHsRu2N/xz3wawjKaO\
+nZKdkZuUmZiioKGnoaz5FfprGKKulqWdGpmFln+SHpJ/c49oG1wG98l3FfvV/JcF+PD4lwYO+8z4\
+uBwElBXGB7SAqXWeHp50Z5RZG3B1iIR5H3mEfoOCgIKAg3mEcoJrgXaAgQiBgHuGdxt1epGXfh9+\
+l4Wbnhq2pbPArx6vv9Od5hvKvoJ5tB+zeah0nW8ImXWSZVQa+3oHaI1zj34ej36SgpSFCISUl4ib\
+G52nkZewH0gHgGFmhWsba3KOknofcpV2mHqbgJWDmYaeYGxfdGB8CHxgX4NgG0pYm6tkH2Sqd7C1\
+Gr6ntsKuHsKu9xOm91ugCEkEJHxMgXSGWX9pfHh5CHh4gXd2GnKVd556Hnqeo4OoG6WpkZetH62X\
+tqLArAgOxPhd+csV+Aj3zAX7Egf8CPvMBfxyB16NcY6CHo9/lIKYhgiHlKaJuBvWBuHWmKTKH8qk\
+wq+5u7m6t9K26uRtGPsw/EkF/oDftwa2p4+Smh+akpaYk5wIk5yPqLQa99QH+0T7JwX3Egf3RPco\
+BfiKB7uHq4ScHoSbgJd9kgiSfW2OXhtf4PixNlkGZHCHhHsfe4R/gIR9CIR9h3JnGg74ZhwE8xwE\
+9hX3GfcpBfcWBvtU+2vNRrxAqjsZqjuaLyMa+2tI+0P7GfsbHvsb+xn7Pkf7Yxv7RfsqvO77Dx/7\
+GfsoBfsWBvdU92oF+xT3H0v3PPdbGvcdqvcQyfcBHsn3AePh9wbKCMr3BfcRq/cbG/c29yNZKPcR\
+Hy8kFWS8XK9UowiiVEmXPxskMnNcQR9AW1BFXi4IXi50+wX7Gxr7K6j7EMYqHvnE+ZEV/Yr94gUh\
+5/cJVvciG+jdo7rTH9K6xtW68Ai58KL3BPcRGvcebvcRUvcDHg4cBVccCOgcBXMV9xb8AzRqdMdz\
+unKuGXGtbKhmo2ajZ5tmkwiTZkiPKxv75vyT9zsGybqWoKsfqqChpZiqCJSikLTFGqLs/PgqwAe6\
+h6yEoB6EoH6eeJ54nXeXdpIIknVmjlcb+zv8XAZcjW+PgR6PgZKEloYIhpWmibcb92UG9wnmmafN\
+H8ynxba+xbK4scuu3uZrGPsv/EkF/n33cAZqXWpna3JTXk5pSnQIdElAfzYb+x77CqjEKB/7AMo2\
+4k73AQhO9wFs9w/3HRr3Iqr3Esj3Ax7I9wLg4fbJCMj29w6q9xsb9wv0clrnH8xox1jERgj3YQf8\
+gj0V+yH7B1YhMR8n+wpZ+y77Uxr7FaH7A7YuHrYuxUXWXAhc1d5z5xv3JfcMxfcI6R/p9we69yn3\
+SRr3UFj3LyX3DR7xNvsGvvsiGw77zPhFHAWLFfPcbVDEH8RQqEEyGjRuQlJPHk9RN237Ahv7ADqq\
+yVUfVMhw1N4a5qrVyMYexcjcqPAbhkMVWGF2YWkfaWB6Tz4aPJtPrGMeY6u2d8EbyLmiuqofqrma\
+xdEavoO2e7Aee691pnCdCJxva5RoGw744RwGWfeXFc1XTjtJUUVmGWZFPXg1GzdBnbBKH0qwU8Je\
+1ExONlL7AFgIaUNCekIbLkCkvVIfUr1ux9AatpWzoLAeoK+srLiouKjSpOui66H3D533K5kI3gfI\
+g7h8qB58qHGiZp0InWZelFUbYGWFfmwfbH5ze3t2enZ+a4Jgg2iDcoN+g32BgH6ECIR+fYd8G3B1\
+lJx7H3ucg6OsGtGyy9nEHsTZ86f3FxvGv4V/tx+3frJ5rHSkeqNxoGoI7u73BLz3Ehv3EfBmQNcf\
+1kCzJI77FQj9VwaIaYpyeho6m0OqSh6qSrRavWoIarzBe8UbwMKaqMMfw6jBuL7ICPsT+CcVhtFy\
+w2C2CLZfVaBMG0xSd2JZH1hiaFF4Qgj7U/tAFSOAMHw9ejx5VHhqeGp3dHZ+dAh+dIRzchpwknKa\
+ch6ZcqB3qHwIfKeohKkbtL+YpMsfyqTOstC/CA78wsj5yRXeB8KSupSxl7CXtp67pQjU/YgGWI1s\
+joAekXeXfJ2CCIOZp4e0G7o3/JTftAa4qY+Tmh+ak5aWkpoIkZqOrcEa+OAHDvyZ+Dv57hX3RPcp\
+BfsFB/tE+ygF/JIHV45qkn4elHiXfpyCCIKcq4e6G6s3/Jffvwaso5CVnB+clZaZkpwIkpyOrr8a\
+9/0H+z/7JAX3BQf3P/cjBfjc+z/dB+aS46fhvAjVBg5y+gT6FhXa5gX1BvsS+yayYKpWokwZoUyW\
+SEQaJ3YyYT0eYDxSUEJiCGJCM3ckG/sNJ6nHPR8+MQUgBvcS9yYFN/Fh9wz3HRrvoOS12B612MbG\
+17YItdbhoOwb9wvvbU7cHy4gFXOqbKNkngidZGOUYhs8SWxNVh9KQGv7AfshGjaYP6RJHviV+GkV\
+/Gz8tgVGv9No5hvEvZqpuB+4qa+7ps0IpsyY2OQa4n3Ybs0eDvkzHAau95kVylkF+zH7BPslPftG\
+G1BZk5pgH2CaY6Nmq2aqarRuvWpWaWJmbmZuX3RYewh6WFODThv7I/sHueczHzLmX/cO9y0a9y+4\
+9w/m6B7n5fcLufcpG9DIgnjAH8B4uG+yaKJ3om6iZQj3F+j3Es33Mxvk2HhlzB/MZL1TrkGkVJhM\
+jEII/VcGiGaJb3gaPptFqkseqkqzW71qCGq8v3vBG/cF9wTH9wv3AR/7FvgoFYTQcsNetgi2Xlag\
+TRtGTnJYVh9mZ21XdkcI/IT3eRVWWXxsXh9dbGdccEwIcEx9PjAaMZg/pU4epU6uXrZuCG62vXzF\
+G+HTr9PEH8TTqPH3GBr3JGn3AEjUHsRWSqc9Gw73SNL6WRX3QLgGtJC8lcMelMOjv7C7sLq8scen\
+CKfG0JnaG9fLfnHAH8BxtGeqXQipXJpaVxpwhnOBdh6EfICAfYJ9gnGEZYU3flR6cXgIcXd+cmwa\
+bJlvp3Iep3LHauZg5mDNZbJqsmmqY6BdCKBclVxaGkp4TWZPHmZOV1xJaQhpSUF6OhtITZejUh9S\
+omGocawIcax+q6oaoJSfnJwenJyelKAbn56Ff54fnX6ddZ5rpl2nbKZ7CHqmrIOyG87Ho7y+H767\
+pMLIGraAsnavHnavaqxfqGyfWaVFqlqha5p+kmegbKRxpnCmeaOCogiBooamqhq0lrGirh6irq+o\
+vaO8osqa2JKCloWUiZKHmoikia2KnIeZhpeEnIGbf5l/mH2XfJR7lHmSd5AIkHd1jXQbM0ZsTFof\
+ZVp4PiIa/q/759/DB66ij5OYH5uUl5qTngiRmY6rvRr5CftABw78LvhpHAV+FfzqB2qPd5KEHoSS\
+noesG9FT/DHD1wamnI2Okh+SjpCRj5QIj5SNm6Ia+HT7KcMHsZC5lMCZrJSdk5CSCJKQkY6SGw7E\
+9xP5YhX6Y/11+wn5AP3uBg73cfggoxX8avs7HASkB8eBsXecHpt2Z5NWG0bfBvgPmgX9GAf7NNE7\
+9x/3CvcUxPcG9x4e+GYHwYeshJgehJd+lnqVCJV5bZBhG0LfBvgPmgX9fgdOk2KaeB54mrKBzBuq\
+Nwb74HoF900H+xT7MfsmS/saG1BTm6tWHw7515YcBUwV+WwGoftdBWkGhLx6rm6iCKJuXJZKG0D8\
+1wZgjm6RfR6QfJSAmISYhKKGrYoIZ/wKrweujqKQlpKWkpOVkJkIkJiNqLYa+Ng/B0xfgXZwH3B2\
+eGeBVghpBvr6910V96X80Ped+NAF96tmBmWKcoh/hH+EgoCFfQiFfIhtXBr8aAddjm6Qfh6QfpSC\
+mISYhKWGsIkIZ/wirweyjKaPmZKYkpWWkpkIkZmOqLYa+IAH+8f9JgVrBvvI+R0F/HYHX41vkH8e\
+kXqUf5iECISYnoelG69n+8avBrGkj5KYH5iSlJWRmQiRmY6puBr4Zge8iKuGmR6GmYGWfZIIkn1y\
+jmYbsAcO+Gb3p/kdFftG7PdG+DEGwIithJoegqB8mXaTCI9/Yo1FG+D4hgf3ePczfW7lH/cZYfY9\
+3vsHCOb7E7n7Jfs5GvsEdSNeKx5eKk8+QlBOWkJoNncIdjY1gTQb/V3fxQaeigWkn5CVmx+alZaY\
+kpwIkJiNqLka9074OxX8sffCB6m9kJbRH9CWvZipmreitq+0vrS9q8ei0gih0Zbb5hrlgNl1zR50\
+zWrGXsBewFmzVKdUpk2dR5IIjmZOjTUb+2H8r/hBKgYO+XH4mBwFfhX86gdqj3eShB6Ekp6HrBvR\
+U/wxw9cGppyNjpIfko6QkY+UCI+UjZuiGvh0+ynDB7GQuZTAmayUnZOQkgiSkJGOkhv6k5gV/jYc\
++l0F+wsG+jQcBaMFIv5hFTuCBYeoiaGbGrKXsaSwHqSwr6i7oQihusKWyRvl0nZgvx+/YKVVSxpk\
+gmZ4Zh54ZmtoX2lfaSFH+zslCPeqBqufjY6UH5OOkZGQk4+TkaGSsAjWBmD7YQVQBoSlBfyZvgbx\
+zvcH1t/GvrcZvreutJ+wCJmmkqiqGrp7smupHqhqX5pUG05be2pmH2ZqeWJcGoGMeo10Hg5b+q75\
+/xX7D/w+/D77D/g+/D73D/g++D33D/w9B/g+/QQV+w/+Y/cPBw7t5xwFcxX4sDZuBlRmhX54H3d+\
+gW9hGopthzoF904G9zr3B4F3yh/bcs1fv00Iv02lPS0aOndFZFEeXERRWUhuCG1HIHz7JRv7k04G\
+Vo5pkX0ek3iWfZmECIOZp4e2G7s3/LDfrAa5qo+TnB+ckpeXk5wIkpuPqrga+k4Ht4iphJoehJp/\
+lnuSCJJ6a45bG2oG+AH71BX83fdrB/cB15Wetx+2nq+tqLsIqLqZw8sa0XrGaroearpdqlKbCJdj\
+PZH7CBsO+XH4mBwFfhX86gdqj3eShB6Ekp6HrBvRU/wxw9cGppyNjpIfko6QkY+UCI+UjZuiGvh0\
++ynDB7GQuZTAmayUnZOQkgiSkJGOkhv6q5gV/jYc+l0F+wsG+jQcBaMF9y39ShX3Cvwy9y8++y/7\
+fvsP9378GO0G+Bh2FffEB/vD+8QFDlv4yPr8FaajgnieH554lXNwGm+Bc3d3Hnd3c4FwG3BzlZ94\
+H3efgaOnGqaVo5+eHp6eo5SoG/h6/AUV+w/+Y/cPB/h7+7gVpqOCeJ4fnniVc3AaboFzeHced3dz\
+gW8bcHOVn3gfd5+Bo6gappWjn54enp6jlKgbDsT4sxwFuxX3Jv3WBvsmOQX7OAT3Jt0F/if7JgcO\
++/X4LRwFixXXzHBWwB/AVqZKPxpAcEpWVh5WVkpwPxtASqbAVh9WwHDM1hrXpszAwB7AwMym1hso\
+BFpiemloH2hpemJaGlucYq5pHmiutHq8G7y1nK6uH66tnLS7Grx6tGitHq1oYZxaGw7tyxwFExXe\
+B723kZiyH7KXtaG5qwja/RkG3s3Rt8KiCKLCw5bCG/cG7F4y3B/bMrP7CfsjGvszXfsWMCYeLjj7\
+AFz7FxtKTZekUh9inFuqVbgI+90HWoxujoIejn6SgZWClYKYhpqICImWsYrMGzf8l9+4B7mpjpOZ\
+H5iSlZWSmgiPlo2uxRocBeoH9zz82BX77AdejmmQdR6TaZtsonCicKpzs3gIeLK1gbYb4taszMsf\
+ysyr7vcZGvcQcetWzx7OVk2tQxtcWX9yVB9UclFmTFoIDvlx93QcBLIVO5WQr5Sol6AZoK6rqLei\
+CKK3wJbJG+DNeWe7H7pmo2BYGmyAb3RyHmxqY3JcfMaAuXOtaAisZ5xjXxpUblhRXh5eUD50Kxsu\
+QJ+zUR9Qs26xsBqakZiYlh6Wl5uQnxuemoaCmB+XgpV5lHIIRqPAad0bxLqbq64frqqcs7oaoIef\
+g5wegpx+mnqaeZp4lHiQCJNsaY9oG0jJugbPvJahqR+ooZqpsBqufqdwoh6hcGWWWhtqboWAch9x\
+gHd8fHh8eIBxhGgIHAUW920V/jYc+l0F+wsG+jQcBaMF9xX9ShX3Cvwy9y8++y/7fvsP9378GO0G\
++Bh2FffEB/vD+8QFDvwu9y/6+hU7ggWHqImhmxqyl7GksB6ksK+ou6EIobrClskb5dJ2YL8fv2Cl\
+VUsaZIJmeGYeeGZraF9pX2khR/s7JQj3qgarn42OlB+TjpGRkJOPk5GhkrAI1gZg+2EFUAaEpQX8\
+mb4G8c73B9bfxr63Gb63rrSfsAiZppKoqhq6e7JrqR6oal+aVBtOW3tqZh9manliXBqBjHqNdB4O\
+9+z5shwFaxX3E/cKa0z3Ah/3AkziNMr7AQjK+wKr+wr7Exr7E2v7Ckz7AR5M+wI0NPsCTAhM+wL7\
+Cmv7Exv7E/sKq8r7AR/7Aso04kz3AghM9wFr9wr3Exr3E6v3Csr3Ah7K9wHi4vcCygjK9wH3Cqv3\
+ExtOBPsH+wBuUScfJlE8PFInCFEnbvsA+wga+wio+wDFJx7EJ9o88FEIUe/3AG73Bxv3CPcAqMXw\
+H+/F2trF7wjE76j3APcIGvcIbvcAUu8eUe882ifFCMUm+wCo+wgb/Bz7aBX4Fgbq1HZgvx++YKVW\
+SxpUeF1mZh5mZlNvQnj3Zfu+GKNpoXOffpiCnYWjiQhq+0wH+7r4KQU/+8kGkHSVe5qCCIGaqYa2\
+G2r8A6wHrKKPlJofmZSVmJGeCI2TjKe7GvifB7qKp4qSHoecg5l+lAiUfnaPbBv3gfwRFdbEkpmw\
+H7CZp6CgqAifqJWrrxrBeLhmsB6wZVudUBtyb4aAbB8OxPri+YsV+w/+Y/cPBw5y+nccBaQVoTv7\
+k0XIR8I9vDIZvDKvN6A8CKA8lTo4GvsOdSFeMh5eMlBHQl4IXUIzdCUb+yz7Cb3vOR8472L3C/ce\
+Gu6g47TZHrTYw8fStQi00tyg5Ru3tYaAsx+ygKx8pHqkeaNxo2lw9xdI9x8g9yX7vDsYdNv3mNF7\
+oHycfpgZOtoF9xkGrmysaKpmCPsQ/GsVV1p7a1wfXGtnXHJOCHFNfj4uGvsXqSTGPx5MvM5r4BvF\
+vpqptx+3qK+6p8sIpsqZ1+Qa437XcMsecMpoul+pCKhfWZpSGw7E+p/4ABU0NPvi9+H74fvhNOL3\
+4vfh++L34uLi9+H74vfi9+LiNPvi++IFDvwu90QcBLIVO5WQr5Sol6AZoK6rqLeiCKK3wJbJG+DN\
+eWe7H7pmo2BYGmyAb3RyHmxqY3JcfMaAuXOtaAisZ5xjXxpUblhRXh5eUD50KxsuQJ+zUR9Qs26x\
+sBqakZiYlh6Wl5uQnxuemoaCmB+XgpV5lHIIRqPAad0bxLqbq64frqqcs7oaoIefg5wegpx+mnqa\
+eZp4lHiQCJNsaY9oG0jJugbPvJahqR+ooZqpsBqufqdwoh6hcGWWWhtqboWAch9xgHd8fHh8eIBx\
+hGgIDvfs+bIcBWsV9xP3CmtM9wIf9wJM4jTK+wEIyvsCq/sK+xMa+xNr+wpM+wEeTPsCNDT7AkwI\
+TPsC+wpr+xMb+xP7CqvK+wEf+wLKNOJM9wIITPcBa/cK9xMa9xOr9wrK9wIeyvcB4uL3AsoIyvcB\
+9wqr9xMbTgT7B/sAblEnHyZRPDxSJwhRJ277APsIGvsIqPsAxScexCfaPPBRCFHv9wBu9wcb9wj3\
+AKjF8B/vxdraxe8IxO+o9wD3CBr3CG73AFLvHlHvPNonxQjFJvsAqPsIG/fz+1QVn/usBWQGesN1\
+t3CrcKtppGKeCJ5iXpRaG0xUfGxaH1psZmJ0WAhtS3xCOBotmD+lUB6lULJevmsIa77Ge80btbSR\
+mLIfspitnKmhqKCoqqiysHgYYk5cXVZsCGBEO3UwGzM8n7JFH0WyVMBj0Ahi0HfV3BreoNm20h62\
+0sbE17QItNbhoOobqqSJh6Afn4evgL96CIacl4iTG5aVjpGSH5KRkpeSnQgO93H4/BwFcxX3OQb4\
+RRz7cqBQoWWheBl4oKiBsBuhN/yF3waMm5uMmhuroI6SlR+emJWbnhqZgq14wh4v96IF/I4G+wD7\
+wgWAbIV1fxp+j3+SgR6SgZSEl4YIhpeeiKYbnZqLipYfN/w13weyp4+TnB+ckpmYmJyYnJuuoMII\
+95j4CxX4Qwb7bPjsBSD3shWuB/dN9xwFusrAorYbn5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA73\
+cfj8HAVzFfc5BvhFHPtyoFChZaF4GXigqIGwG6E3/IXfBoybm4yaG6ugjpKVH56YlZueGpmCrXjC\
+Hi/3ogX8jgb7APvCBYBshXV/Gn6Pf5KBHpKBlISXhgiGl56IphudmouKlh83/DXfB7Knj5OcH5yS\
+mZiYnJicm66gwgj3mPgLFfhDBvts+OwFsvidFfe3+1NwWPuc6PubLnC+BQ73cfj8HAVzFfc5BvhF\
+HPtyoFChZaF4GXigqIGwG6E3/IXfBoybm4yaG6ugjpKVH56YlZueGpmCrXjCHi/3ogX8jgb7APvC\
+BYBshXV/Gn6Pf5KBHpKBlISXhgiGl56IphudmouKlh83/DXfB7Knj5OcH5ySmZiYnJicm66gwgj3\
+mPgLFfhDBvts+OwF+xP4ghWsqH9zox+jc5duaRpqf25zcx5zc25/ahtqbpejcx9zo3+orBqtl6ij\
+ox6joqiXrRv34hasqH9zox+jc5duaRpqf25zcx5zc25/ahtpbpejdB9zo3+orBqtl6ijox6joqiX\
+rRsO93H4/BwFcxX3OQb4RRz7cqBQoWWheBl4oKiBsBuhN/yF3waMm5uMmhuroI6SlR+emJWbnhqZ\
+gq14wh4v96IF/I4G+wD7wgWAbIV1fxp+j3+SgR6SgZSEl4YIhpeeiKYbnZqLipYfN/w13weyp4+T\
+nB+ckpmYmJyYnJuuoMII95j4CxX4Qwb7bPjsBfdQ97IV+7LHWZZpmXicGXicgp+kGqKSnZmaHpmY\
+nZKgG7bAdFzKH/dN+xwFDvdx+PwcBXMV9zkG+EUc+3KgUKFloXgZeKCogbAboTf8hd8GjJubjJob\
+q6COkpUfnpiVm54amYKteMIeL/eiBfyOBvsA+8IFgGyFdX8afo9/koEekoGUhJeGCIaXnoimG52a\
+i4qWHzf8Nd8HsqePk5wfnJKZmJicmJybrqDCCPeY+AsV+EMG+2z47AWz+PwVwLd5ZrAfsGadXlca\
+VnlfZmYeZmZeeFcbV1+esGYfZrB5t8Aav524sLAesLC3nb8bRQRqcH90dB90dH9vahpql26idB50\
+oqZ/rBusp5eioh+iopeorBqsf6d0oh6idG+XahsO93H4/BwFcxX3OQb4RRz7cqBQoWWheBl4oKiB\
+sBuhN/yF3waMm5uMmhuroI6SlR+emJWbnhqZgq14wh4v96IF/I4G+wD7wgWAbIV1fxp+j3+SgR6S\
+gZSEl4YIhpeeiKYbnZqLipYfN/w13weyp4+TnB+ckpmYmJyYnJuuoMII95j4CxX4Qwb7bPjsBff3\
++E4VgF9yZmVuCG5kYHxcG3x9jI5+H36ObZNcmgiiQliWbBtucH1wch9Qn5i1oq2spRmkrK+Yshuz\
+zH5y5B9/t62Fohu2q5qpoh8O9+scBLgcBXMV0wb3E/xlLnFZ9mXTcbAZYMZWukyuCK5LRZw+GzE4\
+c1tAHz9aTkRcLghcLnMi+wka+wyjILstHrotzEPcWAhY3ONy6Rvk5aS+6B/ovtvSz+bbVBhiTl5X\
+W2A/RjxZOWoIajkxeykb+237RNv3NfsbH/sE9xlT9zP3TBr3G6r3D8n3Ah7J9wHh4vcBzAjM9wH3\
+Cav3EhvOyoJ5xR/EeMZuxmII/EAc+ukVcTQFjaacjJAbsK6EfKsfo4Cee5l1CJh0knFsGld6YWlr\
+HmpoXXtRG1FZmahhH2yge6OmGpqQl5WVHpWUmJCaG5qYh4WVH5WElH2SeJV0k32ShQh/mp2FoBum\
+oZWgnh+en5SlrBqtgaV3nR6dd2yUYRtwaoR+ZR++9zMFDvfD7RwFcxUcBG4G9xf8AzNqdcdzunGu\
+GXGtbKhno2ajZ5tmkwiTZkiPKhv75vyT9zwGybqWoKsfqqChpZeqCJSikLTFGqLt/PgpwAe6iKyE\
+oB6EoH6eeJ54nXeXdpIIknVmjlcb+zz8WgZcjW6QgR6PgJKElYYIhpWmibgb92UG9wnmmafNH8yn\
+xba9xbK4scuv3uZrGPsw/EkFHPtn37MGuqiOkZYfnJSZmZSeCJKYjqi4GvpUB7aHqIKaHoKafJZ2\
+kwiQgGONRxv4Q/dTFa4H9033HAW6ysCithufnIR9mR+YfJJ5dhpxgnZ4eh54emp9WoAIDvfD7RwF\
+cxUcBG4G9xf8AzNqdcdzunGuGXGtbKhno2ajZ5tmkwiTZkiPKhv75vyT9zwGybqWoKsfqqChpZeq\
+CJSikLTFGqLt/PgpwAe6iKyEoB6EoH6eeJ54nXeXdpIIknVmjlcb+zz8WgZcjW6QgR6PgJKElYYI\
+hpWmibgb92UG9wnmmafNH8ynxba9xbK4scuv3uZrGPsw/EkFHPtn37MGuqiOkZYfnJSZmZSeCJKY\
+jqi4GvpUB7aHqIKaHoKafJZ2kwiQgGONRxv5Evg+Ffe3+1NwWPuc6PubLnC+BQ73w+0cBXMVHARu\
+BvcX/AMzanXHc7pxrhlxrWyoZ6Nmo2ebZpMIk2ZIjyob++b8k/c8Bsm6lqCrH6qgoaWXqgiUopC0\
+xRqi7fz4KcAHuoishKAehKB+nnieeJ13l3aSCJJ1Zo5XG/s8/FoGXI1ukIEej4CShJWGCIaVpom4\
+G/dlBvcJ5pmnzR/Mp8W2vcWyuLHLr97maxj7MPxJBRz7Z9+zBrqojpGWH5yUmZmUngiSmI6ouBr6\
+VAe2h6iCmh6CmnyWdpMIkIBjjUcb+Gz4IxWsqH9zox+jc5duaRpqf25zcx5zc25/ahtqbpejcx9z\
+o3+orBqtl6ijox6joqiXrRv34hasqH9zox+jc5duaRpqf25zcx5zc25/ahtpbpejdB9zo3+orBqt\
+l6ijox6joqiXrRsO98PtHAVzFRwEbgb3F/wDM2p1x3O6ca4Zca1sqGejZqNnm2aTCJNmSI8qG/vm\
+/JP3PAbJupagqx+qoKGll6oIlKKQtMUaou38+CnAB7qIrISgHoSgfp54nnidd5d2kgiSdWaOVxv7\
+PPxaBlyNbpCBHo+AkoSVhgiGlaaJuBv3ZQb3CeaZp80fzKfFtr3Fsrixy6/e5msY+zD8SQUc+2ff\
+swa6qI6Rlh+clJmZlJ4IkpiOqLga+lQHtoeogpoegpp8lnaTCJCAY41HG/nj91MV+7LHWZZpmXic\
+GXicgp+kGqKSnZmaHpmYnZKgG7bAdFzKH/dN+xwFDvxw3BwFcxX4qjZiBmRvhoB6H3qAfnyDeAiD\
+d4dlUhr+Fwdej2uUeB6UeJd9m4IIgpqnh7QbtDf8qt+3BrKnkJScH5uUl5iSnAiSnI+rvBr6LAe+\
+h66EnR6EnH+Ye5QIk3pvj2QbXwb3DPdTFa4H9033HAW6ysCithufnIR9mR+YfJJ5dhpxgnZ4eh54\
+emp9WoAIDvxw3BwFcxX4qjZiBmRvhoB6H3qAfnyDeAiDd4dlUhr+Fwdej2uUeB6UeJd9m4IIgpqn\
+h7QbtDf8qt+3BrKnkJScH5uUl5iSnAiSnI+rvBr6LAe+h66EnR6EnH+Ye5QIk3pvj2QbXwb3nvg+\
+Ffe3+1NwWPuc6PubLnC+BQ78cNwcBXMV+Ko2YgZkb4aAeh96gH58g3gIg3eHZVIa/hcHXo9rlHge\
+lHiXfZuCCIKap4e0G7Q3/Krftwayp5CUnB+blJeYkpwIkpyPq7wa+iwHvoeuhJ0ehJx/mHuUCJN6\
+b49kG18G7/gjFayof3OjH6Nzl25pGmp/bnNzHnNzbn9qG2pul6NzH3Ojf6isGq2XqKOjHqOiqJet\
+G/fiFqyof3OjH6Nzl25pGmp/bnNzHnNzbn9qG2lul6N0H3Ojf6isGq2XqKOjHqOiqJetGw78cNwc\
+BXMV+Ko2YgZkb4aAeh96gH58g3gIg3eHZVIa/hcHXo9rlHgelHiXfZuCCIKap4e0G7Q3/Krftway\
+p5CUnB+blJeYkpwIkpyPq7wa+iwHvoeuhJ0ehJx/mHuUCJN6b49kG18G+DP3UxX7ssdZlmmZeJwZ\
+eJyCn6QaopKdmZoemZidkqAbtsB0XMof9037HAUO9+vjHAVzFfhABvkP/qoF+bAHuoatgqAegqB9\
+mniWCJZ4cJBmG2fg+Gc2cgZib4iEfB92gnx6gXIIgHKGaV4aHPuH+w0H/ZEcBOkF/ngHVI1pjn8e\
+kHyTfZh+l36Zg5yGnIasib6KCDf8bd+kB7uskJScH5yUmJuUogiUopCxwRr6CAfCiq2Ilx6FooCb\
+epUIlXppkFgbZwb6bffvFYBfcmZlbghuZGB8XBt8fYyOfh9+jm2TXJoIokJYlmwbbnB9cHIfUJ+Y\
+taKtrKUZpKyvmLIbs8x+cuQff7ethaIbtquaqaIfDvhm+dscBYsV9xP3B2xO8h/3A0nhNcciCMYi\
+qfsO+x8a+2tI+0P7GfsbHvsb+xn7Pkf7Yxv7e/tK3Pc3+xsf+wL3GVT3MvdNGvcdqvcQyfcBHsn3\
+AePh9wbKCMr3BvcRq/ccG/sABCMyc1xAH0BbUEVeLgheLnT7BvscGvsWofsCuDEetzDGRtZbCFvW\
+33PoG+jdo7rSH9K6xtW68Ai68KL3BPcPGvcRdPcHXPMeY+RWzUm2CLZJOaApG/s891IVrgf3Tfcc\
+BbrKwKK2G5+chH2ZH5h8knl2GnGCdnh6Hnh6an1agAgO+Gb52xwFixX3E/cHbE7yH/cDSeE1xyII\
+xiKp+w77Hxr7a0j7Q/sZ+xse+xv7Gfs+R/tjG/t7+0rc9zf7Gx/7AvcZVPcy900a9x2q9xDJ9wEe\
+yfcB4+H3BsoIyvcG9xGr9xwb+wAEIzJzXEAfQFtQRV4uCF4udPsG+xwa+xah+wK4MR63MMZG1lsI\
+W9bfc+gb6N2jutIf0rrG1brwCLrwovcE9w8a9xF09wdc8x5j5FbNSbYItkk5oCkbdvg9Ffe3+1Nw\
+WPuc6PubLnC+BQ74ZvnbHAWLFfcT9wdsTvIf9wNJ4TXHIgjGIqn7DvsfGvtrSPtD+xn7Gx77G/sZ\
++z5H+2Mb+3v7Stz3N/sbH/sC9xlU9zL3TRr3Har3EMn3AR7J9wHj4fcGygjK9wb3Eav3HBv7AAQj\
+MnNcQB9AW1BFXi4IXi50+wb7HBr7FqH7ArgxHrcwxkbWWwhb1t9z6Bvo3aO60h/SusbVuvAIuvCi\
+9wT3Dxr3EXT3B1zzHmPkVs1Jtgi2STmgKRv7T/giFayof3OjH6Nzl25pGmp/bnNzHnNzbn9qG2pu\
+l6NzH3Ojf6isGq2XqKOjHqOiqJetG/fiFqyof3OjH6Nzl25pGmp/bnNzHnNzbn9qG2lul6N0H3Oj\
+f6isGq2XqKOjHqOiqJetGw74ZvnbHAWLFfcT9wdsTvIf9wNJ4TXHIgjGIqn7DvsfGvtrSPtD+xn7\
+Gx77G/sZ+z5H+2Mb+3v7Stz3N/sbH/sC9xlU9zL3TRr3Har3EMn3AR7J9wHj4fcGygjK9wb3Eav3\
+HBv7AAQjMnNcQB9AW1BFXi4IXi50+wb7HBr7FqH7ArgxHrcwxkbWWwhb1t9z6Bvo3aO60h/SusbV\
+uvAIuvCi9wT3Dxr3EXT3B1zzHmPkVs1Jtgi2STmgKRv3FPdSFfuyx1mWaZl4nBl4nIKfpBqikp2Z\
+mh6ZmJ2SoBu2wHRcyh/3TfscBQ74ZvnbHAWLFfcT9wdsTvIf9wNJ4TXHIgjGIqn7DvsfGvtrSPtD\
++xn7Gx77G/sZ+z5H+2Mb+3v7Stz3N/sbH/sC9xlU9zL3TRr3Har3EMn3AR7J9wHj4fcGygjK9wb3\
+Eav3HBv7AAQjMnNcQB9AW1BFXi4IXi50+wb7HBr7FqH7ArgxHrcwxkbWWwhb1t9z6Bvo3aO60h/S\
+usbVuvAIuvCi9wT3Dxr3EXT3B1zzHmPkVs1Jtgi2STmgKRv3u/fuFYBfcmZlbghuZGB8XBt8fYyO\
+fh9+jm2TXJoIokJYlmwbbnB9cHIfUJ+YtaKtrKUZpKyvmLIbs8x+cuQff7ethaIbtquaqaIfDvdI\
++qAcBXMV0wb2/EIvb1D3DT3qKtAZxTsyqCobUFeBdlwfXHZob3RqCHRqf2loGmyUbJ1uHp1upnGw\
+dbB0x3TecveZPhirgrp5yHDIcLpvrW6tbaZnnmAInmCVXFka+wNbKyo4Hjgq+xJh+y4bPESWo0wf\
+TKJIs0LGXfsZGEUGLviJ6J6tLrg9xEoZw0rJW9BqCGrP0HrSG+vfqMXTH8e8qcTNGsh1vGCyHl+y\
+PK/7Baz7jtMY+yC0KL9SyghSym7U3RrLnsawwh6wwcW42LAIsNjgnecb2NV+cNIfvXi5cbVoCPvT\
+9zsV+7b3U6a+95su95zoplgFDvg92RwFcxX4rzZnBl9sh4J4H3yEgICEewiEe4drWxr9CAf7BJk4\
+plUeplW4XspmCGbK0HnWG9fTn7LPH8+yu7qmwQimwZng9wka+PAHt4ergp4egp5+mnqUCJR5b5Bm\
+G2Tg+Gc2awZWZ4F3eB93d4FlVBr9Fwf7CXUpXz0eXzxLTTdeCF03KXT7AxsiKqK6NB80ukvFYtEI\
+YtB24/Qa+UAHt4eqg50eg5x/mHyTCJN8cI9lG1kG+NH3UxWuB/dN9xwFusrAorYbn5yEfZkfmHyS\
+eXYacYJ2eHoeeHpqfVqACA74PdkcBXMV+K82ZwZfbIeCeB98hICAhHsIhHuHa1sa/QgH+wSZOKZV\
+HqZVuF7KZghmytB51hvX05+yzx/Psru6psEIpsGZ4PcJGvjwB7eHq4KeHoKefpp6lAiUeW+QZhtk\
+4PhnNmsGVmeBd3gfd3eBZVQa/RcH+wl1KV89Hl88S003XghdNyl0+wMbIiqiujQfNLpLxWLRCGLQ\
+duP0GvlAB7eHqoOdHoOcf5h8kwiTfHCPZRtZBvlk+D4V97f7U3BY+5zo+5sucL4FDvg92RwFcxX4\
+rzZnBl9sh4J4H3yEgICEewiEe4drWxr9CAf7BJk4plUeplW4XspmCGbK0HnWG9fTn7LPH8+yu7qm\
+wQimwZng9wka+PAHt4ergp4egp5+mnqUCJR5b5BmG2Tg+Gc2awZWZ4F3eB93d4FlVBr9Fwf7CXUp\
+Xz0eXzxLTTdeCF03KXT7AxsiKqK6NB80ukvFYtEIYtB24/Qa+UAHt4eqg50eg5x/mHyTCJN8cI9l\
+G1kG+L74IxWsqH9zox+jc5duaRpqf25zcx5zc25/ahtqbpejcx9zo3+orBqtl6ijox6joqiXrRv3\
+4hasqH9zox+jc5duaRpqf25zcx5zc25/ahtpbpejdB9zo3+orBqtl6ijox6joqiXrRsO+D3ZHAVz\
+FfivNmcGX2yHgngffISAgIR7CIR7h2tbGv0IB/sEmTimVR6mVbheymYIZsrQedYb19Ofss8fz7K7\
+uqbBCKbBmeD3CRr48Ae3h6uCnh6Cnn6aepQIlHlvkGYbZOD4ZzZrBlZngXd4H3d3gWVUGv0XB/sJ\
+dSlfPR5fPEtNN14IXTcpdPsDGyIqoro0HzS6S8Vi0Qhi0Hbj9Br5QAe3h6qDnR6DnH+YfJMIk3xw\
+j2UbWQb5+fdTFfuyx1mWaZl4nBl4nIKfpBqikp2Zmh6ZmJ2SoBu2wHRcyh/3TfscBQ73H5AcBXMV\
++J42UAZndIiEgR+AhIaAfBp+kXmYdB6OhpCDkIH3pPyMGPfB+J+XoJKZjpIZjZGMkZIalImThpIe\
+hpGDkICOCIyEeYxsG1fg+EM2BmWMb4h5hniGfIOAgH+AenN2aPwO/QoY+/MHWI9plHwek3yYgJ2E\
+CISdtYfNGzf8td+1B7ipj5OaH5qTlpiUnQiRmI6qvBr3zgf8BfkkbsByqniWGXeVZpFWjAj4i/dT\
+Fa4H9033HAW6ysCithufnIR9mR+YfJJ5dhpxgnZ4eh54emp9WoAIDvcfkBwFcxX4njZQBmd0iISB\
+H4CEhoB8Gn6ReZh0Ho6GkIOQgfek/IwY98H4n5egkpmOkhmNkYyRkhqUiZOGkh6GkYOQgI4IjIR5\
+jGwbV+D4QzYGZYxviHmGeIZ8g4CAf4B6c3Zo/A79Chj78wdYj2mUfB6TfJiAnYQIhJ21h80bN/y1\
+37UHuKmPk5ofmpOWmJSdCJGYjqq8GvfOB/wF+SRuwHKqeJYZd5VmkVaMCPh3+CMVrKh/c6Mfo3OX\
+bmkaan9uc3Mec3Nuf2obam6Xo3Mfc6N/qKwarZeoo6Meo6Kol60b9+IWrKh/c6Mfo3OXbmkaan9u\
+c3Mec3Nuf2obaW6Xo3Qfc6N/qKwarZeoo6Meo6Kol60bDvcf94kcBXMV+l82Bv4jHPtOBffjBvcs\
+9wilvtsf2r7S6Mr3G+dsGPs1/EUF/svfBvolHASzBfu2Bio+gnhSH1J4Wm5gZGBjX01cNjW1GPjW\
++EsV+7b3U6a+95su95zoplgFDpv5rfjXFfcBB9V2wGKrHqpiUJtAG2Zqh4JvH2+CdX56fHp7fnmD\
+d4iEg25+WghPfGxtXBtwdpSdex96nIOjqRq3m7asth6stb2uzqcIps7ameYb4NR+ccgfyHC3Zaha\
+CJ9plU0xGvwVB1SNaI56HpJumHaefQh8naOEqBuqr5Kath80B3tUWYNfG1xjkphrH2qYcZ92pXak\
+fqqFrjtMQ19KcghySkp+SRsvQKS9Uh9SvW7Gzhq0lrGgsB6gsKurtqe2p86k56DnoPcUn/c3nAg0\
+BPsvdCx8ZoJCeld5bHdsd3R2fnQIfnSEcnEacZNymnMemnKgeKZ9CH2mqISqG7a8laDCH8Kg0bPg\
+xwj8K/osFa4H9033HAW6ysCithufnIR9mR+YfJJ5dhpxgnZ4eh54emp9WoAIDpv5rfjXFfcBB9V2\
+wGKrHqpiUJtAG2Zqh4JvH2+CdX56fHp7fnmDd4iEg25+WghPfGxtXBtwdpSdex96nIOjqRq3m7as\
+th6stb2uzqcIps7ameYb4NR+ccgfyHC3ZahaCJ9plU0xGvwVB1SNaI56HpJumHaefQh8naOEqBuq\
+r5Kath80B3tUWYNfG1xjkphrH2qYcZ92pXakfqqFrjtMQ19KcghySkp+SRsvQKS9Uh9SvW7Gzhq0\
+lrGgsB6gsKurtqe2p86k56DnoPcUn/c3nAg0BPsvdCx8ZoJCeld5bHdsd3R2fnQIfnSEcnEacZNy\
+mnMemnKgeKZ9CH2mqISqG7a8laDCH8Kg0bPgxwj7XBwEghX3t/tTcFj7nOj7my5wvgUOm/mt+NcV\
+9wEH1XbAYqseqmJQm0AbZmqHgm8fb4J1fnp8ent+eYN3iISDbn5aCE98bG1cG3B2lJ17H3qcg6Op\
+Grebtqy2Hqy1va7OpwimztqZ5hvg1H5xyB/IcLdlqFoIn2mVTTEa/BUHVI1ojnoekm6Ydp59CHyd\
+o4SoG6qvkpq2HzQHe1RZg18bXGOSmGsfaphxn3aldqR+qoWuO0xDX0pyCHJKSn5JGy9ApL1SH1K9\
+bsbOGrSWsaCwHqCwq6u2p7anzqTnoOeg9xSf9zecCDQE+y90LHxmgkJ6V3lsd2x3dHZ+dAh+dIRy\
+cRpxk3Kacx6acqB4pn0IfaaohKobtryVoMIfwqDRs+DHCPwC+vwVrKh/c6Mfo3OXbmkaan9uc3Me\
+c3Nuf2obam6Xo3Mfc6N/qKwarZeoo6Meo6Kol60b9+IWrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2ob\
+aW6Xo3Qfc6N/qKwarZeoo6Meo6Kol60bDpv5rfjXFfcBB9V2wGKrHqpiUJtAG2Zqh4JvH2+CdX56\
+fHp7fnmDd4iEg25+WghPfGxtXBtwdpSdex96nIOjqRq3m7asth6stb2uzqcIps7ameYb4NR+ccgf\
+yHC3ZahaCJ9plU0xGvwVB1SNaI56HpJumHaefQh8naOEqBuqr5Kath80B3tUWYNfG1xjkphrH2qY\
+cZ92pXakfqqFrjtMQ19KcghySkp+SRsvQKS9Uh9SvW7Gzhq0lrGgsB6gsKurtqe2p86k56DnoPcU\
+n/c3nAg0BPsvdCx8ZoJCeld5bHdsd3R2fnQIfnSEcnEacZNymnMemnKgeKZ9CH2mqISqG7a8laDC\
+H8Kg0bPgxwiA+iwV+7LHWZZpmXicGXicgp+kGqKSnZmaHpmYnZKgG7bAdFzKH/dN+xwFDpv5rfjX\
+FfcBB9V2wGKrHqpiUJtAG2Zqh4JvH2+CdX56fHp7fnmDd4iEg25+WghPfGxtXBtwdpSdex96nIOj\
+qRq3m7asth6stb2uzqcIps7ameYb4NR+ccgfyHC3ZahaCJ9plU0xGvwVB1SNaI56HpJumHaefQh8\
+naOEqBuqr5Kath80B3tUWYNfG1xjkphrH2qYcZ92pXakfqqFrjtMQ19KcghySkp+SRsvQKS9Uh9S\
+vW7Gzhq0lrGgsB6gsKurtqe2p86k56DnoPcUn/c3nAg0BPsvdCx8ZoJCeld5bHdsd3R2fnQIfnSE\
+cnEacZNymnMemnKgeKZ9CH2mqISqG7a8laDCH8Kg0bPgxwj7XBwE4RXAt3lmsB+wZp1eVxpWeV9m\
+Zh5mZl54VxtXX56wZh9msHm3wBq/nbiwsB6wsLedvxtFBGpwf3R0H3R0f29qGmqXbqJ0HnSipn+s\
+G6ynl6KiH6Kil6isGqx/p3SiHqJ0b5dqGw6b+a341xX3AQfVdsBiqx6qYlCbQBtmaoeCbx9vgnV+\
+enx6e355g3eIhINufloIT3xsbVwbcHaUnXsfepyDo6kat5u2rLYerLW9rs6nCKbO2pnmG+DUfnHI\
+H8hwt2WoWgifaZVNMRr8FQdUjWiOeh6Sbph2nn0IfJ2jhKgbqq+SmrYfNAd7VFmDXxtcY5KYax9q\
+mHGfdqV2pH6qha47TENfSnIIckpKfkkbL0CkvVIfUr1uxs4atJaxoLAeoLCrq7antqfOpOeg56D3\
+FJ/3N5wINAT7L3QsfGaCQnpXeWx3bHd0dn50CH50hHJxGnGTcppzHppyoHimfQh9pqiEqhu2vJWg\
+wh/CoNGz4McI9wj6xxWAX3JmZW4IbmRgfFwbfH2Mjn4ffo5tk1yaCKJCWJZsG25wfXByH1CfmLWi\
+raylGaSsr5iyG7PMfnLkH3+3rYWiG7armqmiHw4g+lL3qxXLVwX7O/sR+ys3+0Mb+x37B7zsLR8t\
+7Fz3DfclGuyh4rfYHrbYyMbZtgi22OSg8Bv3B+pvU9gf2FKxUlIabIJ0eXoeenl3g3Qbf3+OkYAf\
+gJF/lX+YhpGBnn2qebJ9pYGYdqZyoG2aCJpsaZNmG1JXe2xbH1psZV1vTghuTn1CNhr7F64i0T4e\
+SMjTat8bsrKSmLMfspixnq6kpZ21tMbLCPxI+6sVcTQFjaacjJAbsK6EfKsfo4Cee5l1CJh0knFs\
+Gld6YWlrHmpoXXtRG1FZmahhH2yge6OmGpqQl5WVHpWUmJCaG5qYh4WVH5WElH2SeJV0k32ShQh/\
+mp2FoBumoZWgnh+en5SlrBqtgaV3nR6dd2yUYRtwaoR+ZR++9zMFDiD6NveWFctXWlFcXV5pGV1p\
+YHNifgh9YlyEVBspOJ+zRh88uU/HYdUIYdV24vAa9J/ltNYetNbExtS2CLbU36DrG9LJgHXAH8B0\
+t2qwXrBepVecUZRpkV+MVQj9VwaJaopzexo3mkCoSh6oSbJbvGwIbLvCe8gbv72XpLwfvKPGutDS\
+CPsU+CgVgch9uXmoeKhxo2qcCJxpZZRhG2FkgnpmH2Z6bXNzbHJsdl95UAjH+JAVrgf3TfccBbrK\
+wKK2G5+chH2ZH5h8knl2GnGCdnh6Hnh6an1agAgOIPo295YVy1daUVxdXmkZXWlgc2J+CH1iXIRU\
+Gyk4n7NGHzy5T8dh1Qhh1Xbi8Br0n+W01h601sTG1LYIttTfoOsb0smAdcAfwHS3arBesF6lV5xR\
+lGmRX4xVCP1XBolqinN7GjeaQKhKHqhJslu8bAhsu8J7yBu/vZekvB+8o8a60NII+xT4KBWByH25\
+eah4qHGjapwInGlllGEbYWSCemYfZnptc3Nscmx2X3lQCPfR+XoV97f7U3BY+5zo+5sucL4FDiD6\
+NveWFctXWlFcXV5pGV1pYHNifgh9YlyEVBspOJ+zRh88uU/HYdUIYdV24vAa9J/ltNYetNbExtS2\
+CLbU36DrG9LJgHXAH8B0t2qwXrBepVecUZRpkV+MVQj9VwaJaopzexo3mkCoSh6oSbJbvGwIbLvC\
+e8gbv72XpLwfvKPGutDSCPsU+CgVgch9uXmoeKhxo2qcCJxpZZRhG2FkgnpmH2Z6bXNzbHJsdl95\
+UAjw+WAVrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obam6Xo3Mfc6N/qKwarZeoo6Meo6Kol60b9+IW\
+rKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obaW6Xo3Qfc6N/qKwarZeoo6Meo6Kol60bDiD6NveWFctX\
+WlFcXV5pGV1pYHNifgh9YlyEVBspOJ+zRh88uU/HYdUIYdV24vAa9J/ltNYetNbExtS2CLbU36Dr\
+G9LJgHXAH8B0t2qwXrBepVecUZRpkV+MVQj9VwaJaopzexo3mkCoSh6oSbJbvGwIbLvCe8gbv72X\
+pLwfvKPGutDSCPsU+CgVgch9uXmoeKhxo2qcCJxpZZRhG2FkgnpmH2Z6bXNzbHJsdl95UAj4UviQ\
+Ffuyx1mWaZl4nBl4nIKfpBqikp2Zmh6ZmJ2SoBu2wHRcyh/3TfscBQ78wsj5yRXeB8KSupSxl7CX\
+tp67pQjU/YgGWI1sjoAekXeXfJ2CCIOZp4e0G7o3/JTftAa4qY+Tmh+ak5aWkpoIkZqOrcEa+OAH\
++xv38RWuB/dN9xwFusrAorYbn5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA78wsj5yRXeB8KSupSx\
+l7CXtp67pQjU/YgGWI1sjoAekXeXfJ2CCIOZp4e0G7o3/JTftAa4qY+Tmh+ak5aWkpoIkZqOrcEa\
++OAH1PjbFfe3+1NwWPuc6PubLnC+BQ78wsj5yRXeB8KSupSxl7CXtp67pQjU/YgGWI1sjoAekXeX\
+fJ2CCIOZp4e0G7o3/JTftAa4qY+Tmh+ak5aWkpoIkZqOrcEa+OAHLfjBFayof3OjH6Nzl25pGmp/\
+bnNzHnNzbn9qG2pul6NzH3Ojf6isGq2XqKOjHqOiqJetG/fiFqyof3OjH6Nzl25pGmp/bnNzHnNz\
+bn9qG2lul6N0H3Ojf6isGq2XqKOjHqOiqJetGw78wsj5yRXeB8KSupSxl7CXtp67pQjU/YgGWI1s\
+joAekXeXfJ2CCIOZp4e0G7o3/JTftAa4qY+Tmh+ak5aWkpoIkZqOrcEa+OAH94b38RX7ssdZlmmZ\
+eJwZeJyCn6QaopKdmZoemZidkqAbtsB0XMof9037HAUO90jW+ckV3wfGkriTqJSolLafwqoI0/tS\
+BuPV1r3KpgilycqYyxvCu4J5tR+1eK1ypmylbJxnlGMIkHKOZlka/EwHVo9qk3weknyXgJyECISc\
+tIjMGzf8l9+nB7usj5ScH5yUmJeTnAiSnI+tvhr4BAfXhcB/qB5+qHajbp4InW1llF4bVVF9cE4f\
+Tm9PYlJVCPxhB1ePaJN6HpJ6mH6cggiEl6uIvxuoN/yX36QGvK2PlJ0fnZOYmpKgCI+Wja/KGvjO\
+B/l++IwVgF9yZmVuCG5kYHxcG3x9jI5+H36ObZNcmgiiQliWbBtucH1wch9Qn5i1oq2spRmkrK+Y\
+shuzzH5y5B9/t62Fohu2q5qpoh8OcvjX+nEV7eB3YtMf0mLEULQ9CLQ9oDInGid2MmE9HmA9UlBC\
+YghiQjN2Jhv7NfsNvfA6HzrwYvcK9xwa7qDktdgetdjGxte2CLXW4aDrG4MqFT9LbU9WH0hAavsA\
++yMa+x2nIsRDHku+0WvjG8S9mqm4H7epr7umzQimzJnY5BrifNhu0B50wmm1XqoIqV1XmlIb+zX3\
+qhWuB/dN9xwFusrAorYbn5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA5y+Nf6cRXt4Hdi0x/SYsRQ\
+tD0ItD2gMicaJ3YyYT0eYD1SUEJiCGJCM3YmG/s1+w298DofOvBi9wr3HBruoOS12B612MbG17YI\
+tdbhoOsbgyoVP0ttT1YfSEBq+wD7Ixr7HacixEMeS77Ra+MbxL2aqbgft6mvu6bNCKbMmdjkGuJ8\
+2G7QHnTCabVeqgipXVeaUhuN+JQV97f7U3BY+5zo+5sucL4FDnL41/pxFe3gd2LTH9JixFC0PQi0\
+PaAyJxondjJhPR5gPVJQQmIIYkIzdiYb+zX7Db3wOh868GL3CvccGu6g5LXYHrXYxsbXtgi11uGg\
+6xuDKhU/S21PVh9IQGr7APsjGvsdpyLEQx5LvtFr4xvEvZqpuB+3qa+7ps0IpsyZ2OQa4nzYbtAe\
+dMJptV6qCKldV5pSG/s4+HoVrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obam6Xo3Mfc6N/qKwarZeo\
+o6Meo6Kol60b9+IWrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obaW6Xo3Qfc6N/qKwarZeoo6Meo6Ko\
+l60bDnL41/pxFe3gd2LTH9JixFC0PQi0PaAyJxondjJhPR5gPVJQQmIIYkIzdiYb+zX7Db3wOh86\
+8GL3CvccGu6g5LXYHrXYxsbXtgi11uGg6xuDKhU/S21PVh9IQGr7APsjGvsdpyLEQx5LvtFr4xvE\
+vZqpuB+3qa+7ps0IpsyZ2OQa4nzYbtAedMJptV6qCKldV5pSG/dn96oV+7LHWZZpmXicGXicgp+k\
+GqKSnZmaHpmYnZKgG7bAdFzKH/dN+xwFDnL41/pxFe3gd2LTH9JixFC0PQi0PaAyJxondjJhPR5g\
+PVJQQmIIYkIzdiYb+zX7Db3wOh868GL3CvccGu6g5LXYHrXYxsbXtgi11uGg6xuDKhU/S21PVh9I\
+QGr7APsjGvsdpyLEQx5LvtFr4xvEvZqpuB+3qa+7ps0IpsyZ2OQa4nzYbtAedMJptV6qCKldV5pS\
+G/fS+EUVgF9yZmVuCG5kYHxcG3x9jI5+H36ObZNcmgiiQliWbBtucH1wch9Qn5i1oq2spRmkrK+Y\
+shuzzH5y5B9/t62Fohu2q5qpoh8OIPmD+lkV0Qbl+8YxbWfdWcxKuhm6SkmiSBtYYX9yax9rcntu\
+ahpsl3GidR6idL5y2m73V0YY9wJk1mGzXgiyXp9XUhpafF1uXh5uXmBnVHAIcFNLfkMb+wQrq8s7\
+H3ZDBUQG+xH32+avyCvER8FjGVLW3W/iG8W7m6qwH7Cqnq2xGqp/qHSlHnOkXaRHo/t73xgor0ay\
+ZLYIZLZ4vMIazqvHyr8evsrbpewbvriFfrMfs36ydbJtCPtU93kV+7b3U6a+95su95zoplgFDvdx\
+n/pZFfgPmgX9GAdSk16bah6aaqNxrHkIeKuxgrYbwMiZqM8fzqjPtc7ECPhmB7yHrISaHoSafph4\
+lAiUeG6QYxtC3wb4D5oF/X4HW49qk3kek3iXfpuECIOaq4e6G6o3BvvgegX3TQcwQjtZR3AIb0dG\
+fUUbV16SmWUfZJlqoG6nbqd0rXyyCHyyg7W4GvhbB7SHp4ScHoSbf5h6lQiUenOQbhsvBvhp97UV\
+rgf3TfccBbrKwKK2G5+chH2ZH5h8knl2GnGCdnh6Hnh6an1agAgO93Gf+lkV+A+aBf0YB1KTXptq\
+Hppqo3GseQh4q7GCthvAyJmozx/OqM+1zsQI+GYHvIeshJoehJp+mHiUCJR4bpBjG0LfBvgPmgX9\
+fgdbj2qTeR6TeJd+m4QIg5qrh7obqjcG++B6BfdNBzBCO1lHcAhvR0Z9RRtXXpKZZR9kmWqgbqdu\
+p3StfLIIfLKDtbga+FsHtIenhJwehJt/mHqVCJR6c5BuGy8G+Tj4nxX3t/tTcFj7nOj7my5wvgUO\
+93Gf+lkV+A+aBf0YB1KTXptqHppqo3GseQh4q7GCthvAyJmozx/OqM+1zsQI+GYHvIeshJoehJp+\
+mHiUCJR4bpBjG0LfBvgPmgX9fgdbj2qTeR6TeJd+m4QIg5qrh7obqjcG++B6BfdNBzBCO1lHcAhv\
+R0Z9RRtXXpKZZR9kmWqgbqdup3StfLIIfLKDtbga+FsHtIenhJwehJt/mHqVCJR6c5BuGy8G+JL4\
+hRWsqH9zox+jc5duaRpqf25zcx5zc25/ahtqbpejcx9zo3+orBqtl6ijox6joqiXrRv34hasqH9z\
+ox+jc5duaRpqf25zcx5zc25/ahtpbpejdB9zo3+orBqtl6ijox6joqiXrRsO93Gf+lkV+A+aBf0Y\
+B1KTXptqHppqo3GseQh4q7GCthvAyJmozx/OqM+1zsQI+GYHvIeshJoehJp+mHiUCJR4bpBjG0Lf\
+BvgPmgX9fgdbj2qTeR6TeJd+m4QIg5qrh7obqjcG++B6BfdNBzBCO1lHcAhvR0Z9RRtXXpKZZR9k\
+mWqgbqdup3StfLIIfLKDtbga+FsHtIenhJwehJt/mHqVCJR6c5BuGy8G+gn3tRX7ssdZlmmZeJwZ\
+eJyCn6QaopKdmZoemZidkqAbtsB0XMof9037HAUOSYD6WRX4ejdjBmV0iomEH4KIhIaFgwiFgoiB\
+fhp5lG2dYB73fPy192v4nQWkyJi0nxqahZeAkh6SgHGOYxtc3/gtN3MGY3GIhn8ff4Z/gIB7gHp5\
+ZnJR/AP96xhwTm5SaldqVmJjWm4IblpUfVAbRlSbqmIfaKZ5rLMapJOfmpwem5qdk6Abm5qIhJkf\
+lIidfaZyrG6jeZmECISYmYiYG6amlJ6mH6aeoaWeraa8obictrTvGPve+Xd0v3eue50Ze517lnuP\
+CI6CcIxdG/gg97UVrgf3TfccBbrKwKK2G5+chH2ZH5h8knl2GnGCdnh6Hnh6an1agAgOSYD6WRX4\
+ejdjBmV0iomEH4KIhIaFgwiFgoiBfhp5lG2dYB73fPy192v4nQWkyJi0nxqahZeAkh6SgHGOYxtc\
+3/gtN3MGY3GIhn8ff4Z/gIB7gHp5ZnJR/AP96xhwTm5SaldqVmJjWm4IblpUfVAbRlSbqmIfaKZ5\
+rLMapJOfmpwem5qdk6Abm5qIhJkflIidfaZyrG6jeZmECISYmYiYG6amlJ6mH6aeoaWeraa8obic\
+trTvGPve+Xd0v3eue50Ze517lnuPCI6CcIxdG/gh+IUVrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2ob\
+am6Xo3Mfc6N/qKwarZeoo6Meo6Kol60b9+IWrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obaW6Xo3Qf\
+c6N/qKwarZeoo6Meo6Kol60bDvtR92H6WRX5bTcG/Tb9qAX3Ogb3FuibqsQf2bfF1bH05GsY+w/7\
+3wX9vt8G+Tb5oQX7WQYwRHtqWB9YaltNYDA1tBj4N/hjFfu291OmvvebLvec6KZYBQ77ubD6vhXK\
+B8yQxpzAqAjKJwbO4uCs4Bu8tYF4rR+teKJ1mHIIl3KRaF8a+5wHZo91k4MegpOhh64brUz7+8qp\
+BrCikJWVH5SUkKOwGvdxB8CDsXyiHqJ7bZZeG0RDbE1CH/uoB2SPdJSCHoKUooawG6pM+/vKpway\
+opCUkx+TlI+mtxr34wcO+XH4mRwFfhX86gdqj3eShB6Ekp6HrBvRU/wxw9cGppyNjpIfko6QkY+U\
+CI+UjZuiGvh0+ynDB7GQuZTAmayUnZOQkgiSkJGOkhv6kZgV/jYc+l0F+wsG+jQcBaMF937+jRX3\
+HF/PSDEaUm5ZUGEeYFA9diobKD6gtFMfU7Rvur8a3MzJ9xa2Hia1WMXUGsSnucSuHq3EzpzYG9rL\
+emi8H7xoo2NeGkRWVSBkHj2mFcSvrqaWngiWnpCdnBqqfKZtoR6gbWWWXhthZoF2bB9rdntxaxpc\
+t2TjbR57JBUiYVZWTBpmnmqxbh5usLx9xhvEu5mosh+xqJ6prBrAWLglrh4O+XH3dBwEshU7lZCv\
+lKiXoBmgrquot6IIorfAlskb4M15Z7sfumajYFgabIBvdHIebGpjclx8xoC5c61oCKxnnGNfGlRu\
+WFFeHl5QPnQrGy5An7NRH1CzbrGwGpqRmJiWHpaXm5CfG56ahoKYH5eClXmUcghGo8Bp3RvEupur\
+rh+uqpyzuhqgh5+DnB6CnH6aepp5mniUeJAIk2xpj2gbSMm6Bs+8lqGpH6ihmqmwGq5+p3CiHqFw\
+ZZZaG2puhYByH3GAd3x8eHx4gHGEaAgcBOT3bRX+Nhz6XQX7Cwb6NBwFowX3hv6NFfccX89IMRpS\
+bllQYR5gUD12KhsoPqC0Ux9TtG+6vxrczMn3FrYeJrVYxdQaxKe5xK4ercTOnNgb2st6aLwfvGij\
+Y14aRFZVIGQePaYVxK+uppaeCJaekJ2cGqp8pm2hHqBtZZZeG2FmgXZsH2t2e3FrGly3ZONtHnsk\
+FSJhVlZMGmaearFuHm6wvH3GG8S7maiyH7GonqmsGsBYuCWuHg75cfdfHAV+FfgPBqCXjI6OH46N\
+jZKMmAjN+w38LAaC+zgFk8K6j7Ib9N10XsYfxV2oUkYaRmxQTloeWk09ci0bMkSfslcfVrJxr6sa\
+m5KYmJYelpiakJ4brqZ1YJwfTKW8a9QbxbmbrK4frquctL0awHe1ZKwerGRSm0IbR0d/ckYfHAUS\
++A0V/jYc+l0F+wsG+jQcBaMF937+jRX3HF/PSDEaUm5ZUGEeYFA9diobKD6gtFMfU7Rvur8a3MzJ\
+9xa2Hia1WMXUGsSnucSuHq3EzpzYG9rLemi8H7xoo2NeGkRWVSBkHj2mFcSvrqaWngiWnpCdnBqq\
+fKZtoR6gbWWWXhthZoF2bB9rdntxaxpct2TjbR57JBUiYVZWTBpmnmqxbh5usLx9xhvEu5mosh+x\
+qJ6prBrAWLglrh4O+XH3RRwFmRXEBpJwBfiZWQb7UvtV+wP7dWr7lQj7JQaY6anquOu46+T3CfcY\
+9x4I+/AGaneJh4Mfg4eEgIZ5CIqKh4mGHnNKRJgFHAUe918V/jYc+l0F+wsG+jQcBaMF97r+jRX3\
+HF/PSDEaUm5ZUGEeYFA9diobKD6gtFMfU7Rvur8a3MzJ9xa2Hia1WMXUGsSnucSuHq3EzpzYG9rL\
+emi8H7xoo2NeGkRWVSBkHj2mFcSvrqaWngiWnpCdnBqqfKZtoR6gbWWWXhthZoF2bB9rdntxaxpc\
+t2TjbR57JBUiYVZWTBpmnmqxbh5usLx9xhvEu5mosh+xqJ6prBrAWLglrh4O/C74ShwFfhX3Cvwy\
+9y8++y/7fvsP9378GO0G+Bh2FffEB/vD+8QFDvwu9yMcBX4V+A8GoJeMjo4fjo2NkoyYCM37Dfws\
+BoL7OAWTwrqPshv03XRexh/FXahSRhpGbFBOWh5aTT1yLRsyRJ+yVx9WsnGvqxqbkpiYlh6WmJqQ\
+nhuupnVgnB9Mpbxr1BvFuZusrh+uq5y0vRrAd7VkrB6sZFKbQhtHR39yRh8O/C73ERwFmRXEBpJw\
+BfiZWQb7UvtV+wP7dWr7lQj7JQaY6anquOu46+T3CfcY9x4I+/AGaneJh4Mfg4eEgIZ5CIqKh4mG\
+HnNKRJgFDvwu+IH6zhX3HF/PSDEaUm5ZUGEeYFA9diobKD6gtFMfU7Rvur8a3MzJ9xa2Hia1WMXU\
+GsSnucSuHq3EzpzYG9rLemi8H7xoo2NeGkRWVSBkHj2mFcSvrqaWngiWnpCdnBqqfKZtoR6gbWWW\
+XhthZoF2bB9rdntxaxpct2TjbR57JBUiYVZWTBpmnmqxbh5usLx9xhvEu5mosh+xqJ6prBrAWLgl\
+rh4OW/mZ+igV96n7D/v7BvsU+1MF+Hv7D/zNBvuL/AUF+xUG94r4BQX7qPcP9/oG9xT3UwX8evcP\
++MwG94v4BQX3FgYO97T5IfkvFa3arMSqrqqusaW4nQidt8CUyBvUzHloxR/FZ7larE0IrE2cQzga\
++xxf+wEyOR5NSENsPhtKTqO7Uh9lq1jSSvcDbE5sXWxsbGxoc2V7CHtkYYNdGyo6rtBJH0nQauP3\
+ABr3AKnjyNAez8jTrd4bysF5Z7ofsm62ULo0COv7XxW8JrtGvGYIZrvCeMob5dKry74fvsqk2OUa\
+7G7bUswezFJJq0IbYGaBeGsfandtam5ceGplMFL7KQj7EfcSFWjaY8NgqwiqYFmbUxtEUHJZXB9b\
+WXNJOBo0okW6VR5VucBwyBvFwKS8uh+wsrLctPcQCA5b+nb3rxX+GfglBe8H+hn4JQX7JAf9YvvH\
++WL7xwX7dgT7D/4Z9w8HDlv3FhwEoRX6GfwlBScH/hn8JQX3JAf5YvfH/WL3xwX6Gf3cFfsP/hn3\
+DwcOk/df+lkV9z/9AwZJkVqYah6Xap5ypHoIeaSogqobrrKYprYftqa7sr7ACPle9zv9cAdbjm2S\
+fh54lZyCoxuep5Obrx9VB09gYG9wfwh/cHWFeht2eJGYeh95l36cgqKCooWuiLs+Ok9XYHQIdGBe\
+f14baGmSmGwfa5hxnXehd6F3rne8CIlxind+GlSYO6UhHppQkmR5GnCCdHp4Hnh6dYJyG291lZ56\
+H3qegqeuGqSSvpnYHqP3E5z3C5X3AwiU9wOQ9xj3LxoO+zT6NvlhFZPWj8m8GvcLbOdMzh7NTDes\
+IhtfY4WAZh9mf2t7cHZwdm9sbmIIXQay3LHHrrKusrWpu6AIoLq7lbwb1851X8Yfxl61UKRCCKRB\
+mDUoGvsbePsYZvsTHmb7FFogTjRONE1PTGgIaEtHeUQbMT+jvE4fQMZm4vcIGvKl78DrHr/r0Nbh\
+wQjA4eSm5hu4toN8tB+zfLB0rmyldKNqoWAIejIVeb50tXCqcKpppGSdCJ1kY5RjG0NIcFRMH1Zd\
+X0FmJghmJXgrMhpblGGcZh6cZqNvqHkIeaisgrAbxcymwNIf0sDL3MT3ArTYq+ek9wEIDve0HAVM\
+/E4VHPrfsAb5MfoZ/TH6CwWwHAT+B6b75QVjBoa7gbN+rH2re6R4nniedJlwlgiVb2mQYhv9eAb4\
+xv2J/Qn94wX5xga2uZKaux+7mrCipKykrKC+nNCzgxgO+JUcBNgcBT4V/a8c+ckGZpJrmHEelHiY\
+fpyECH2rrYSwG69l/OmxrgayrJGYpx+flJmYk5wImaeSq7AaHAXFB7CEq36lHoKdfph6kgiaa2iS\
+ZhtosBwGOmZoBmRqhH5vH3eCfX6Dewh+boRrZxoc+jsHZpFrmHEelHiYfpyECH2rroSwG65l/Omx\
+rgayrJGYpx+flJmYk5wImKeSq7AaDlv6lPooFfsm+3wHgEiBO4QwCIQwh0FUGlCXYKJvHm6iqX2w\
+G6mklJ6fH56el6aPsAivBoRMfVd2YXZhc2xueAh4bm2BbBtcYqG4aB9ouHro9yEaxI7LktAelvcP\
+lOOTvgj7fwaKfYhlh02D+xp/+w17+wF6+wF7QHpjemN5cHZ8CIJ+fYZ6G3J1k5x6H3qbgp6iGp6O\
+nJKbHo+VnaesuJyimKCUoJSflKWSqpW3k7+RyJ/3rRhuBmhwh4N2H3aDd354eHd4dW10YwhnBp/V\
+pMaqt6m2qqmqmgiaqr+S1BsO/Pf3XPoTFfcPj/cjkvc3HpD3EJLjlMCW0pzForqYpqCjqp4Inqmo\
+lKcbrKiAdaQfpHWYcnAabIJyengeeHl1gXEbdHGXo3AfmHx9koAbf4GGgoQfhIGHenQacI5akUYe\
+pPuml/tx+zwaXIkjhvs1HoD74IY8gUZ8URl8UHpgeHB3cHV3dH8If3RxhXAbaG+WonUfdaKAqK4a\
+qJSjnJ4enZyglKUbpqKAdZ8fmH2VgpCICIiQkomTG5aVkJWSH5KUj5ugGqeIs4W/HoHggvcJhPcn\
+CIP3J4f3I/cfGg74JeH3zRWvBo1tknKYeJd4mn2dgwiDnauHuRv3os4GJaAuvjfeCCTyV/cV9zEa\
+9wOl7b/eHsTn29TxwAjA8PcKpvcZG/cZ9whxVvAf8FbZRMQwCL45pSn7BRr7GmX7Bz8rHj8qIEj7\
+H2UISPenB7apj5SeH56TmpiWnZadkqSOqwiv+838wwah98LapMq+utgZudii9wD3Hxr3CHnsZtge\
+ZthXxkq2CLZJRKA/G0BFd2JMH0xiWE5kOwhkO3gvIxoxlzakOh6cUKZbr2WuZLptxHai+8IY/MMG\
+Dlv6rhwHTRXVBvvMHPhl/IT6kftaMGnL98H3K/gp/csFDlv6NfqSFeIqdld0YnFuGXBtbnRrfAh8\
+a2mDZxtwcJCVcB9+kGKeR677GcsYknp6jnoba3GAdHgfd3RtW2RALO0YpsCmtKaopqenoKqaCJqq\
+qpKqG6Kkh4KmH6aCu3XSZstrs3ichQiEm5iIlhuqqZmmph+enqm6tdcI+/0E4ip2VnRicW4ZcG1u\
+dGt8CHxraYNnG3BwkJVwH36QYp5HrvsZyxiSenqOehtrcYB0eB93dG1bZEAs7RimwKa0pqimp6eg\
+qpoImqqqkqoboqSHgqYfpoK7ddJny2qzeJyFCISbmIiWG6qpmaamH56eqbq12AgO3BwEyhYc+1AG\
++QgcBWsF9+Qc+ucV/CP6W/xM/lsFDvxwDvs0+LkcBY4V+Db9Xfw2/VkF+wMG/Bv5Wfgb+V0FxCoV\
+++j8/Pfo/Pv3+/j7BQ7t9/f53BX4yQZ9LAX8wWcGbYx3jIEe+LIGfS0F/JoGpPslu/sE0DsIO9Db\
+Y+cb9xP3CuH3QPcDH9tWRvsEQTg+VhlWPjJwJhv7G/sLv/MlHyXySvcib/dHCPsdBpnpBfcHBoqX\
+ipqdGqGMnIyXHvsVBpnqBfcPBqf3Pc33HvP3AQj3AfL3DMH3HBvq32tL1B+d0wXTBvcC/Dwtclr3\
+JVfsU70ZvVNPpEobMj1iOEofSThf+wh1+yoIDvhRDvcf+Gb4CBX3Qir7QlAGY49vlHwek3uXf5yD\
+CIKbqIe1G7A3/KffrQa2qI+TnB+bk5eYk5wIkpyPqbgavPs+7Pc++bcHtIeohJwehJyAl3yTCJJ8\
+cI9mG1zg+r8G9xX8AjRqZuBnyWiwGWiwYqZcmwibXEKTJxv7wfys9x0G07+SmaofqpmjoZyqCJyp\
+k7bDGrDt/PgpwQfAg7R7qB57qHWhcJgImG9akUQb+ywGDvhmHAStHAVzFdQG9wb8QjFsT/ccRuw9\
+xRnFPTOoKBv7IvsLUPsKKx8r+wpb+yH7Nxr7CaT7ALwpHrwpzEDdWAhY3eJx5xvGxJahwR/AoLel\
+rKmkopuklKaUpo+xirwIzQfAhbB/oR5+oXqbdJQIknpcjz8b3/jKN10HZHCHhH0ffIOBf4R7CIR7\
+iGxcGvx3KAdW9w5TYk9sTHQZaSwuei4b+0/7NdD3HvsZH/sa9x1I90D3YRr3YM/3P/cb9x8e9x/3\
+G/c20PdRG7q6hoK5H7mCtX2xeqh+rHexbgj9O/giFbuxBUTg7Gf3ARvAwZWgwB/AoLakq6m5ZRhs\
+Tl1aTWQIZExIeEQbWl2UnF8fX5xlomupaqlxsHa3CA5J+eP6ChWprqqlqpwInKqnk6Ubo5+EfZwf\
+m3yTenYadoR5fHwefHx5hHQbgn6NjnsfkHh8jX4benqDfHkftFmgUEgaL2Q7PkgeSD4pafsKG0pJ\
+maZJH19scneFhAiCgIZ/fhp4lXuffh6ker191oD3tWAYy4HLesx0zHS6bKhmCKhmmV5XGjNiRTpW\
+Hkgk+y5p+18bIDWWokgfSKJYq2a0CHCpfqqrGrSZtKayHqayycPt1EybXZ5woAhopnqqrhqcjpyS\
+mh6RmpWampqZmqWfsaajnJyXlZNarmeycrYIcrZ/ur4a4KzVzMoe2Nr2svcbG8e/hHy4H7h8uXC6\
+ZAj7xJUVSlNzXF4fXlx0UEUaXJVhoGYeoGWobbB2CHWws4C0G7SzlqGxH7ChqKmgsAifsJW1uhrU\
+dcdfuR64XlKiRRv7M/34FUtUYV92aQh2aYBqbBpwlnGgcx6gcq52vnsIe77Kg9gb5tmVn8wfzJ65\
+pKeqCKCjlaesGqeDo3qeHnqea5xcmlyZX5Vikgj8WhwFcRW7sQVE4Oxn9wEbwMGVoMAfwKC2pKup\
+uWUYbE5dWk1kCGRMSHhEG1pdlJxfH1+cZaJrqWqpcbB2twgO/HDcHAVzFfiqNmIGZG+GgHofeoB+\
+fIN4CIN3h2VSGv4XB16Pa5R4HpR4l32bggiCmqeHtBu0N/yq37cGsqeQlJwfm5SXmJKcCJKcj6u8\
+GvosB76HroSdHoScf5h7lAiTem+PZBtfBvef+C8Vrah/dKMfo3OXbmoaaX9uc3Qec3Nuf2kbaW6X\
+o3Mfc6J/qK0arJeoo6MeoqOol60bDvdI+qAcBXMV0wb2/EIvb1D3DT3qKtAZxTsyqCobUFeBdlwf\
+XHZob3RqCHRqf2loGmyUbJ1uHp1upnGwdbB0x3TecveZPhirgrp5yHDIcLpvrW6tbaZnnmAInmCV\
+XFka+wNbKyo4Hjgq+xJh+y4bPESWo0wfTKJIs0LGXfsZGEUGLviJ6J6tLrg9xEoZw0rJW9BqCGrP\
+0HrSG+vfqMXTH8e8qcTNGsh1vGCyHl+yPK/7Baz7jtMY+yC0KL9SyghSym7U3RrLnsawwh6wwcW4\
+2LAIsNjgnecb2NV+cNIfvXi5cbVoCPt8HPrtFXE0BY2mnIyQG7CuhHyrH6OAnnuZdQiYdJJxbBpX\
+emFpax5qaF17URtRWZmoYR9soHujphqakJeVlR6VlJiQmhuamIeFlR+VhJR9kniVdJN9koUIf5qd\
+haAbpqGVoJ4fnp+UpawarYGld50enXdslGEbcGqEfmUfvvczBQ4g+YP6WRXRBuX7xjFtZ91ZzEq6\
+GbpKSaJIG1hhf3JrH2tye25qGmyXcaJ1HqJ0vnLabvdXRhj3AmTWYbNeCLJen1dSGlp8XW5eHm5e\
+YGdUcAhwU0t+Qxv7BCuryzsfdkMFRAb7Effb5q/IK8RHwWMZUtbdb+IbxbubqrAfsKqerbEaqn+o\
+dKUec6RdpEej+3vfGCivRrJktghktni8whrOq8fKvx6+ytul7Bu+uIV+sx+zfrJ1sm0I+yL+HRVx\
+NAWNppyMkBuwroR8qx+jgJ57mXUImHSScWwaV3phaWseamhde1EbUVmZqGEfbKB7o6YampCXlZUe\
+ <metadata>
+ </metadata>
+lZSYkJobmpiHhZUflYSUfZJ4lXSTfZKFCH+anYWgG6ahlaCeH56flKWsGq2BpXedHp13bJRhG3Bq\
+hH5lH773MwUO9+scBLgcBXMV0wb3E/xlLnFZ9mXTcbAZYMZWukyuCK5LRZw+GzE4c1tAHz9aTkRc\
+LghcLnMi+wka+wyjILstHrotzEPcWAhY3ONy6Rvk5aS+6B/ovtvSz+bbVBhiTl5XW2A/RjxZOWoI\
+ajkxeykb+237RNv3NfsbH/sE9xlT9zP3TBr3G6r3D8n3Ah7J9wHh4vcBzAjM9wH3Cav3EhvOyoJ5\
+xR/EeMZuxmII/I33UxWuB/dN9xwFusrAorYbn5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA4g+lL3\
+qxXLVwX7O/sR+ys3+0Mb+x37B7zsLR8t7Fz3DfclGuyh4rfYHrbYyMbZtgi22OSg8Bv3B+pvU9gf\
+2FKxUlIabIJ0eXoeenl3g3Qbf3+OkYAfgJF/lX+YhpGBnn2qebJ9pYGYdqZyoG2aCJpsaZNmG1JX\
+e2xbH1psZV1vTghuTn1CNhr7F64i0T4eSMjTat8bsrKSmLMfspixnq6kpZ21tMbLCPyJ+g8Vrgf3\
+TfccBbrKwKK2G5+chH2ZH5h8knl2GnGCdnh6Hnh6an1agAgO9+scBLgcBXMV0wb3E/xlLnFZ9mXT\
+cbAZYMZWukyuCK5LRZw+GzE4c1tAHz9aTkRcLghcLnMi+wka+wyjILstHrotzEPcWAhY3ONy6Rvk\
+5aS+6B/ovtvSz+bbVBhiTl5XW2A/RjxZOWoIajkxeykb+237RNv3NfsbH/sE9xlT9zP3TBr3G6r3\
+D8n3Ah7J9wHh4vcBzAjM9wH3Cav3EhvOyoJ5xR/EeMZuxmII++f3UxX7tvdTpr73my73nOimWAUO\
+IPpS96sVy1cF+zv7EfsrN/tDG/sd+we87C0fLexc9w33JRrsoeK32B622MjG2bYIttjkoPAb9wfq\
+b1PYH9hSsVJSGmyCdHl6Hnp5d4N0G39/jpGAH4CRf5V/mIaRgZ59qnmyfaWBmHamcqBtmgiabGmT\
+ZhtSV3tsWx9abGVdb04Ibk59QjYa+xeuItE+HkjI02rfG7KykpizH7KYsZ6upKWdtbTGywj8Dvnr\
+Ffu291OmvvebLvec6KZYBQ7t+qIcBKEV90I5+0L95QZTjGmOfx6ScpZ5m4EIgZuqhrkbtjcG++97\
+BfczB0hOTWBRcghyUFF+UBv7DSe87DwfO+xj9wj3HRrsoOW23B613MPI0LYIttDXoN4bysaAdcEf\
+wXW8arhfCPeKB/wbigXe+Bv3Bfs84Ae4j7WTsZewlrqfxKgI1gb7QRz7NxX4DgfBgbd3rh52rWqp\
+XaQIpFxcmFobUVZ7bFofWmtkXXBQCG9PfUM2GjuYRqVRHqRQrl+2bQhstrh8uBu4vZilxB/EpMGw\
+v7sIDvsofxwGPBX6rCX+rAYO/RP3nvnrFa2of3SjH6Nzl25qGml/bnN0HnNzbn9pG2lul6NzH3Oi\
+f6itGqyXqKOjHqKjqJetGw73cfj8HAVzFfc5BvhFHPtyoFChZaF4GXigqIGwG6E3/IXfBoybm4ya\
+G6ugjpKVH56YlZueGpmCrXjCHi/3ogX8jgb7APvCBYBshXV/Gn6Pf5KBHpKBlISXhgiGl56Iphud\
+mouKlh83/DXfB7Knj5OcH5ySmZiYnJicm66gwgj3mPgLFfhDBvts+OwF+7z4exW7sQVE4Oxn9wEb\
+wMGVoMAfwKC2pKupuWUYbE5dWk1kCGRMSHhEG1pdlJxfH1+cZaJrqWqpcbB2twgOm/mt+NcV9wEH\
+1XbAYqseqmJQm0AbZmqHgm8fb4J1fnp8ent+eYN3iISDbn5aCE98bG1cG3B2lJ17H3qcg6OpGreb\
+tqy2Hqy1va7OpwimztqZ5hvg1H5xyB/IcLdlqFoIn2mVTTEa/BUHVI1ojnoekm6Ydp59CHydo4So\
+G6qvkpq2HzQHe1RZg18bXGOSmGsfaphxn3aldqR+qoWuO0xDX0pyCHJKSn5JGy9ApL1SH1K9bsbO\
+GrSWsaCwHqCwq6u2p7anzqTnoOeg9xSf9zecCDQE+y90LHxmgkJ6V3lsd2x3dHZ+dAh+dIRycRpx\
+k3Kacx6acqB4pn0IfaaohKobtryVoMIfwqDRs+DHCPys+vQVu7EFRODsZ/cBG8DBlaDAH8CgtqSr\
+qbllGGxOXVpNZAhkTEh4RBtaXZScXx9fnGWia6lqqXGwdrcIDvdx+PwcBXMV9zkG+EUc+3KgUKFl\
+oXgZeKCogbAboTf8hd8GjJubjJobq6COkpUfnpiVm54amYKteMIeL/eiBfyOBvsA+8IFgGyFdX8a\
+fo9/koEekoGUhJeGCIaXnoimG52ai4qWHzf8Nd8HsqePk5wfnJKZmJicmJybrqDCCPeY+AsV+EMG\
++2z47AX4mhz7QRVyeHV0eW4If3iFd3cac5N3nHseepyeg6IboKORmKYfppimnaSkrGAYXGJmcG59\
+CHZgY4BmG2ZsmKVyH3KlfquwGqmWq6GtHpqio6KqoAgOm/mt+NcV9wEH1XbAYqseqmJQm0AbZmqH\
+gm8fb4J1fnp8ent+eYN3iISDbn5aCE98bG1cG3B2lJ17H3qcg6OpGrebtqy2Hqy1va7OpwimztqZ\
+5hvg1H5xyB/IcLdlqFoIn2mVTTEa/BUHVI1ojnoekm6Ydp59CHydo4SoG6qvkpq2HzQHe1RZg18b\
+XGOSmGsfaphxn3aldqR+qoWuO0xDX0pyCHJKSn5JGy9ApL1SH1K9bsbOGrSWsaCwHqCwq6u2p7an\
+zqTnoOeg9xSf9zecCDQE+y90LHxmgkJ6V3lsd2x3dHZ+dAh+dIRycRpxk3Kacx6acqB4pn0Ifaao\
+hKobtryVoMIfwqDRs+DHCPd++44Vcnh1dHluCH94hXd3GnOTd5x7HnqcnoOiG6CjkZimH6aYpp2k\
+pKxgGFxiZnBufQh2YGOAZhtmbJilch9ypX6rsBqplquhrR6aoqOiqqAIDvhm7BwFHhXg+IYH93j3\
+M31u5R/3GWH2Pd77Bwjm+xO5+yX7ORr7BHUjXiseXipPPkJQTlpCaDZ3CHY2NYE0G/1d38UGnooF\
+pJ+QlZsfmpWWmJKcCJCYjai5Gvo5B8CIrYSaHoKgfJl2kwiPf2KNRRv4ABz7ThX3wgapvZCW0R/Q\
+lr2YqZq3oravtL60vavHotIIodGW2+Ya5YDZdc0edM1qxl7AXsBZs1SnVKZNnUeSCI5mTo01G/th\
+Bvfi90kV+7b3U6a+95su95zoplgFDvdW+U0cBRIV4Ae4j7WTsZewlrqfxKgI1hz7QwZTjGmOfx6S\
+cpZ5m4EIgZuqhrkbtjcG++97BfczB0hOTWBRcghyUFF+UBv7DSe87DwfO+xj9wj3HRrsoOW23B61\
+3MPI0LYIttDXoN4bysaAdcEfwXW8arhfCPhNB/60BPgOB8GBt3euHnataqldpAikXFyYWhtRVnts\
+Wh9aa2RdcFAIb099QzYaO5hGpVEepFCuX7ZtCGy2uHy4G7i9mKXEH8SkwbC/uwj3nvlBFVrHBfcP\
+78ndyhqTipaImh6CeHmHextsc5Weeh96noKipxqklaOfoh6hnqWWrBu0rntqqB+oapphWBpef1py\
+WB5yWEhF+wEyCA74Zven+R0V+0bs90b4MQbAiK2Emh6CoHyZdpMIj39ijUUb4PiGB/d49zN9buUf\
+9xlh9j3e+wcI5vsTufsl+zka+wR1I14rHl4qTz5CUE5aQmg2dwh2NjWBNBv9Xd/FBp6KBaSfkJWb\
+H5qVlpiSnAiQmI2ouRr3Tvg7Ffyx98IHqb2QltEf0Ja9mKmat6K2r7S+tL2rx6LSCKHRltvmGuWA\
+2XXNHnTNasZewF7AWbNUp1SmTZ1HkgiOZk6NNRv7Yfyv+EEqBg73w+0cBXMVHARuBvcX/AMzanXH\
+c7pxrhlxrWyoZ6Nmo2ebZpMIk2ZIjyob++b8k/c8Bsm6lqCrH6qgoaWXqgiUopC0xRqi7fz4KcAH\
+uoishKAehKB+nnieeJ13l3aSCJJ1Zo5XG/s8/FoGXI1ukIEej4CShJWGCIaVpom4G/dlBvcJ5pmn\
+zR/Mp8W2vcWyuLHLr97maxj7MPxJBRz7Z9+zBrqojpGWH5yUmZmUngiSmI6ouBr6VAe2h6iCmh6C\
+mnyWdpMIkIBjjUcb+pYc+uIVcnh1dHluCH94hXd3GnOTd5x7HnqcnoOiG6CjkZimH6aYpp2kpKxg\
+GFxiZnBufQh2YGOAZhtmbJilch9ypX6rsBqplquhrR6aoqOiqqAIDiD6NveWFctXWlFcXV5pGV1p\
+YHNifgh9YlyEVBspOJ+zRh88uU/HYdUIYdV24vAa9J/ltNYetNbExtS2CLbU36DrG9LJgHXAH8B0\
+t2qwXrBepVecUZRpkV+MVQj9VwaJaopzexo3mkCoSh6oSbJbvGwIbLvCe8gbv72XpLwfvKPGutDS\
+CPsU+CgVgch9uXmoeKhxo2qcCJxpZZRhG2FkgnpmH2Z6bXNzbHJsdl95UAj3xP0qFXJ4dXR5bgh/\
+eIV3dxpzk3ecex56nJ6Dohugo5GYph+mmKadpKSsYBhcYmZwbn0IdmBjgGYbZmyYpXIfcqV+q7Aa\
+qZaroa0emqKjoqqgCA73w+0cBXMVHARuBvcX/AMzanXHc7pxrhlxrWyoZ6Nmo2ebZpMIk2ZIjyob\
+++b8k/c8Bsm6lqCrH6qgoaWXqgiUopC0xRqi7fz4KcAHuoishKAehKB+nnieeJ13l3aSCJJ1Zo5X\
+G/s8/FoGXI1ukIEej4CShJWGCIaVpom4G/dlBvcJ5pmnzR/Mp8W2vcWyuLHLr97maxj7MPxJBRz7\
+Z9+zBrqojpGWH5yUmZmUngiSmI6ouBr6VAe2h6iCmh6CmnyWdpMIkIBjjUcb+RL3MBX7tvdTpr73\
+my73nOimWAUOIPo295YVy1daUVxdXmkZXWlgc2J+CH1iXIRUGyk4n7NGHzy5T8dh1Qhh1Xbi8Br0\
+n+W01h601sTG1LYIttTfoOsb0smAdcAfwHS3arBesF6lV5xRlGmRX4xVCP1XBolqinN7GjeaQKhK\
+HqhJslu8bAhsu8J7yBu/vZekvB+8o8a60NII+xT4KBWByH25eah4qHGjapwInGlllGEbYWSCemYf\
+Znptc3Nscmx2X3lQCPea+GwV+7b3U6a+95su95zoplgFDvmF3BwFcxX4qjZiBldof3R4H3hzglxF\
+Gv4XB1CUZJ52HnadroDAG7Q3/Krftwa9rZSdnh+dnJS1zBr6LAfKg7R8oB6fe2eVVBtfBhwEzeAV\
++Ko2VgZgbIN8eB94fIFrWxr9dQf7C3cxY00eYkxRWT5lCGU+MXgkG/sk+wex1zYfNtdg4u0avpay\
+oqYepqKnma4bqKKAdZwfm3WTcm8agoh4hW4ehW2Idn8aWKVdv2QeZL7Ld9gb3tejvM4fzryt5fcZ\
+GvltB8uCtHmdHp15ZpRSG2kGDsT31RwFoBWrpoB1oh+idJZwaxprgHB0dB50dHCAaxtrcJaidB90\
+ooCmqxqrl6aioh6hoqaWqhv5BxaqpoB1oh+idZZwahprgHB1dB50dHCAaxtrcJaidB90ooCmqxqs\
+l6aioR6hoqaWqhv+Bvz/Fd4H65Xkp966CNT9iAZWjmqQfB6QfJV/m4MIgpunh7Qbujf8lN+0Brap\
+j5OcH5ySlpeRmwiQm46tvxr44Af4WRbdB+GR5ajovgjU/tUG+wFqMkpGHkVJMmj7AxtGUpqoXx9f\
+qHWrrBqmlKGcnB6cnKGUphumqnpqrR9YvrRyqhvetc/3Gx/6bgcOxOkcBXMV+LE2WQZkcIeEex97\
+hH+AhH0IhH2Hcmca/mEHXo1xjoIej3+UgpiGCIeUpom4G9YG4daYpMofyqTCr7m7ubq30rbq5G0Y\
++zD8SQX+gN+3Branj5KaH5qSlpiTnAiTnI+otBr6SQe7h6uEnB6Em4CXfZIIkn1tjl4bXwb3nfdT\
+Fa4H9033HAW6ysCithufnIR9mR+YfJJ5dhpxgnZ4eh54emp9WoAIDvzCyhwFFRXdB+aS46fhvAjV\
+HPsxBleOapJ+HpR4l36cggiCnKuHuhurN/yX378GrKOQlZwfm5WXmZKcCJKcjq6/Gvq1B/sP92AV\
+rgf3TfccBbrKwKK2G5+chH2ZH5h8knl2GnGCdnh6Hnh6an1agAgOxOkcBXMV+LE2WQZkcIeEex97\
+hH+AhH0IhH2Hcmca/mEHXo1xjoIej3+UgpiGCIeUpom4G9YG4daYpMofyqTCr7m7ubq30rbq5G0Y\
++zD8SQX+gN+3Branj5KaH5qSlpiTnAiTnI+otBr6SQe7h6uEnB6Em4CXfZIIkn1tjl4bXwb5M/w5\
+FVrHBfcP78ndyhqTipaImh6CeHmHextsc5Weeh96noKipxqklaOfoh6hnqWWrBu0rntqqB+oapph\
+WBpef1pyWB5yWEhF+wEyCA78TcocBRUV3QfmkuOn4bwI1Rz7MQZXjmqSfh6UeJd+nIIIgpyrh7ob\
+qzf8l9+/BqyjkJWcH5uVl5mSnAiSnI6uvxr6tQf3mvwKFVrHBfcP78ndyhqTipaImh6CeHmHexts\
+c5Weeh96noKipxqklaOfoh6hnqWWrBu0rntqqB+oapphWBpef1pyWB5yWEhF+wEyCA7E6RwFcxX4\
+sTZZBmRwh4R7H3uEf4CEfQiEfYdyZxr+YQdejXGOgh6Pf5SCmIYIh5Smibgb1gbh1pikyh/KpMKv\
+ubu5urfSturkbRj7MPxJBf6A37cGtqePkpofmpKWmJOcCJOcj6i0GvpJB7uHq4ScHoSbgJd9kgiS\
+fW2OXhtfBvjO/FIVrah/dKMfo3OXbmoaaX9uc3Qec3Nuf2kbaW6Xo3Mfc6J/qK0arJeoo6MeoqOo\
+l60bDvx3yhwFFRXdB+aS46fhvAjVHPsxBleOapJ+HpR4l36cggiCnKuHuhurN/yX378GrKOQlZwf\
+m5WXmZKcCJKcjq6/Gvq1B/gC/EkVrah/dKMfo3OXbmoaaX9uc3Qec3Nuf2kbaW6Xo3Mfc6J/qK0a\
+rJeoo6MeoqOol60bDvfr4xwFcxX4QAb5D/6qBfmwB7qGrYKgHoKgfZp4lgiWeHCQZhtn4PhnNnIG\
+Ym+IhHwfdoJ8eoFyCIByhmleGhz7h/sNB/2RHATpBf54B1SNaY5/HpB8k32Yfpd+mYOchpyGrIm+\
+igg3/G3fpAe7rJCUnB+clJiblKIIlKKQscEa+ggHwoqtiJcehaKAm3qVCJV6aZBYG2cG+If3UxWu\
+B/dN9xwFusrAorYbn5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA73SNb5yRXfB8aSuJOolKiUtp/C\
+qgjT+1IG49XWvcqmCKXJypjLG8K7gnm1H7V4rXKmbKVsnGeUYwiQco5mWRr8TAdWj2qTfB6SfJeA\
+nIQIhJy0iMwbN/yX36cHu6yPlJwfnJSYl5OcCJKcj62+GvgEB9eFwH+oHn6odqNungidbWWUXhtV\
+UX1wTh9Ob09iUlUI/GEHV49ok3oeknqYfpyCCISXq4i/G6g3/JffpAa8rY+UnR+dk5iakqAIj5aN\
+r8oa+M4H96T38RWuB/dN9xwFusrAorYbn5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA736+McBXMV\
++EAG+Q/+qgX5sAe6hq2CoB6CoH2aeJYIlnhwkGYbZ+D4ZzZyBmJviIR8H3aCfHqBcgiAcoZpXhoc\
++4f7DQf9kRwE6QX+eAdUjWmOfx6QfJN9mH6XfpmDnIachqyJvooIN/xt36QHu6yQlJwfnJSYm5Si\
+CJSikLHBGvoIB8KKrYiXHoWigJt6lQiVemmQWBtnBvkx9zAV+7b3U6a+95su95zoplgFDvdI1vnJ\
+Fd8HxpK4k6iUqJS2n8KqCNP7Ugbj1da9yqYIpcnKmMsbwruCebUftXitcqZspWycZ5RjCJByjmZZ\
+GvxMB1aPapN8HpJ8l4CchAiEnLSIzBs3/Jffpwe7rI+UnB+clJiXk5wIkpyPrb4a+AQH14XAf6ge\
+fqh2o26eCJ1tZZReG1VRfXBOH05vT2JSVQj8YQdXj2iTeh6Seph+nIIIhJeriL8bqDf8l9+kBryt\
+j5SdH52TmJqSoAiPlo2vyhr4zgf4QvfNFfu291OmvvebLvec6KZYBQ74AfeX+ckV3wfGkriTqJSo\
+lLafwqoI0/tSBuPV1r3KpgilycqYyxvCu4J5tR+1eK1ypmylbJxnlGMIkHKOZlka/EwHVo9qk3we\
+knyXgJyECISctIjMGzf8l9+nB7usj5ScH5yUmJeTnAiSnI+tvhr4BAfXhcB/qB5+qHajbp4InW1l\
+lF4bVVF9cE4fTm9PYlJVCPxhB1ePaJN6HpJ6mH6cggiEl6uIvxuoN/yX36QGvK2PlJ0fnZOYmpKg\
+CI+Wja/KGvjOB/w3xBVVzQX3HfcDz+jWGpSKlYqYHoCGgIiAiAiIgIGKghtrcZWgeB94oIGlqxqq\
+l6eioh6ioqeXrBu4snlnrB+rZptcUhpmg2R8Yh58YnRlbmhuaFFUNEIIDvhm+dscBYsV9xP3B2xO\
+8h/3A0nhNcciCMYiqfsO+x8a+2tI+0P7GfsbHvsb+xn7Pkf7Yxv7e/tK3Pc3+xsf+wL3GVT3MvdN\
+GvcdqvcQyfcBHsn3AePh9wbKCMr3BvcRq/ccG/sABCMyc1xAH0BbUEVeLgheLnT7BvscGvsWofsC\
+uDEetzDGRtZbCFvW33PoG+jdo7rSH9K6xtW68Ai68KL3BPcPGvcRdPcHXPMeY+RWzUm2CLZJOaAp\
+G/sH91IVaqHT902evJ2rnJwZm5udk54bmpiGgpUflYGQf34aa31qb2oe9wD7ShVqodP3TZ67nKuc\
+nBmbnJ2TnhuamIaClR+VgZCAfhprfWpvah4OcvjX+nEV7eB3YtMf0mLEULQ9CLQ9oDInGid2MmE9\
+HmA9UlBCYghiQjN2Jhv7NfsNvfA6HzrwYvcK9xwa7qDktdgetdjGxte2CLXW4aDrG4MqFT9LbU9W\
+H0hAavsA+yMa+x2nIsRDHku+0WvjG8S9mqm4H7epr7umzQimzJnY5BrifNhu0B50wmm1XqoIqV1X\
+mlIb+xz3aRVqodP3TZ68naucnBmbm52TnhuamIaClR+VgZB/fhprfWpvah73APtKFWqh0/dNnruc\
+q5ycGZucnZOeG5qYhoKVH5WBkIB+Gmt9am9qHg73w+4cBXMV+WQG9x3yfW/RH9FuwWKxVgiwVZ5N\
+RBpCeUtmUx5mUldfRmtGai96+waK+AT8VhipZp90lIKidqR8pYAIgKSohqsbpDf70gb8lPkuBftH\
+/EIGW41tjn8eknSXe5yCCIKbq4a6G683/Kvfuwavo42QmB+XkJaTlZeUlpKaj52MkoytjMcI+iYH\
+s4eog5weg5yAmH2TCJJ8co9oG1IG9/9zFfyh97MH7NCRl7Ifw5u3qKy2CKu2m8HNGsN/unSyHnSx\
+a6hjngieYk+UOxv7uvdrFa4H9033HAW6ysCithufnIR9mR+YfJJ5dhpxgnZ4eh54emp9WoAIDvuj\
+0/nKFd0HvI+2k7GYsZe2n7ynCNb7UQa6xcK5yq0IrcrDnL0bvLJ/dKgfqHSZbmoac4J2eHkeeHh0\
+gnAbf4GNjoIfgo5/k3qWCKNmbZdyG2pmfW9jH1hnZGhuaAj8YQdjjXCQfR6PfJJ/lYGVgJeEmoYI\
+hpqkibAbrDf8md+2BrSlj5KYH5yVmJmUnQiTnI+ruRr44gfF9/AVrgf3TfccBbrKwKK2G5+chH2Z\
+H5h8knl2GnGCdnh6Hnh6an1agAgO98PuHAVzFflkBvcd8n1v0R/RbsFisVYIsFWeTUQaQnlLZlMe\
+ZlJXX0ZrRmovevsGivgE/FYYqWafdJSConakfKWACICkqIarG6Q3+9IG/JT5LgX7R/xCBluNbY5/\
+HpJ0l3ucggiCm6uGuhuvN/yr37sGr6ONkJgfl5CWk5WXlJaSmo+djJKMrYzHCPomB7OHqIOcHoOc\
+gJh9kwiSfHKPaBtSBvf/cxX8ofezB+zQkZeyH8Obt6istgirtpvBzRrDf7p0sh50sWuoY54InmJP\
+lDsbJ/dIFfu291OmvvebLvec6KZYBQ77o9P5yhXdB7yPtpOxmLGXtp+8pwjW+1EGusXCucqtCK3K\
+w5y9G7yyf3SoH6h0mW5qGnOCdnh5Hnh4dIJwG3+BjY6CH4KOf5N6lgijZm2XchtqZn1vYx9YZ2Ro\
+bmgI/GEHY41wkH0ej3ySf5WBlYCXhJqGCIaapImwG6w3/Jnftga0pY+SmB+clZiZlJ0Ik5yPq7ka\
++OIH92H3zBX7tvdTpr73my73nOimWAUO90j6oBwFcxXTBvb8Qi9vUPcNPeoq0BnFOzKoKhtQV4F2\
+XB9cdmhvdGoIdGp/aWgabJRsnW4enW6mcbB1sHTHdN5y95k+GKuCunnIcMhwum+tbq1tpmeeYAie\
+YJVcWRr7A1srKjgeOCr7EmH7Lhs8RJajTB9MokizQsZd+xkYRQYu+Inonq0uuD3EShnDSslb0GoI\
+as/QetIb69+oxdMfx7ypxM0ayHW8YLIeX7I8r/sFrPuO0xj7ILQov1LKCFLKbtTdGsuexrDCHrDB\
+xbjYsAiw2OCd5xvY1X5w0h+9eLlxtWgI/H33XhWuB/dN9xwFusrAorYbn5yEfZkfmHySeXYacYJ2\
+eHoeeHpqfVqACA4g+YP6WRXRBuX7xjFtZ91ZzEq6GbpKSaJIG1hhf3JrH2tye25qGmyXcaJ1HqJ0\
+vnLabvdXRhj3AmTWYbNeCLJen1dSGlp8XW5eHm5eYGdUcAhwU0t+Qxv7BCuryzsfdkMFRAb7Effb\
+5q/IK8RHwWMZUtbdb+IbxbubqrAfsKqerbEaqn+odKUec6RdpEej+3vfGCivRrJktghktni8whrO\
+q8fKvx6+ytul7Bu+uIV+sx+zfrJ1sm0I+/L3nRWuB/dN9xwFusrAorYbn5yEfZkfmHySeXYacYJ2\
+eHoeeHpqfVqACA7t9xEcBaIV0QaVXAX57AaTugXUBvcn/C4xa2TvW9ZRvBm8UTyjJxtecYiEhB+E\
+hIdwXRr+XAdFlWCeeh56nryD2xs3/K7fB8eyjpGeH52QmZiVngiUnpCsvBr6cQeviKGEkx6ShHaP\
+aBssPHZhTB9LYFY9YPsFMasY+PEc+hIVYrsF1s2xwrYakYuTipQehHh7h3wbbHWTnX0ffZyEnZ4a\
+opSenp0enJ6ik6YbsKp+cKYfpXCYamQaNlQ4+wE5Hg78HvflHAUZFdL76Pe9J/u9/O8GSJZcom8e\
+bqGsfbYbytGnxNgfKgdQNjNtMBtUWpilYR9gpXCogKsIf6qFvc4a+Pv7Q98H9y+o5fcKpfdlCLIc\
++QEVYrsF1s2xwrYakYqTipQehHl7h3wbbHWTnX0ffZyEnZ4aopSenp0enJ6ik6YbsKp+cKYfpXCY\
+amQaNlQ4+wE5Hg7t9xEcBaIV0QaVXAX57AaTugXUBvcn/C4xa2D3AVfYULgZt1A/oS4bZHSKiIQf\
+hIiGhYiECIiEiXNkGv5cB12ObJB7HpB7kn+UgpSCmIWciJuHr4nEigg3/K7fB8aMsI2YjqKSnJeV\
+ngiVnpCtvRr6cQeqip2Ikh6IkoWQg48IjoJ6jXEbQlGCeGAfX3hibGReZF5qUXBEMasY+SL4RhX7\
+tvdTpr73my73nOimWAUO/CP42PqkFWnCBeLUt8m9GpGKlImYHoR7fId9G293lJx+H36chJ6gGqKU\
+n5ydHpycoJSkG62ofnCkH6Nwl2hgGmeBZHdgHnZgWVU7SAj7hvedFdL76Pe9J/u9/O8GSJZcom8e\
+bqGsfbYbytGnxNgfKgdQNjNtMBtUWpilYR9gpXCogKsIf6qFvc4a+Pv7Q98H9y+o5fcKpfdlCA74\
+PdkcBXMV+K82ZwZfbIeCeB98hICAhHsIhHuHa1sa/QgH+wSZOKZVHqZVuF7KZghmytB51hvX05+y\
+zx/Psru6psEIpsGZ4PcJGvjwB7eHq4KeHoKefpp6lAiUeW+QZhtk4PhnNmsGVmeBd3gfd3eBZVQa\
+/RcH+wl1KV89Hl88S003XghdNyl0+wMbIiqiujQfNLpLxWLRCGLQduP0GvlAB7eHqoOdHoOcf5h8\
+kwiTfHCPZRtZBvlk+J0VwLd5ZrAfsGadXlcaVnlfZmYeZmZeeFcbV1+esGYfZrB5t8Aav524sLAe\
+sLC3nb8bRQRqcH90dB90dH9vahpql26idB50oqZ/rBusp5eioh+iopeorBqsf6d0oh6idG+XahsO\
+93Gf+lkV+A+aBf0YB1KTXptqHppqo3GseQh4q7GCthvAyJmozx/OqM+1zsQI+GYHvIeshJoehJp+\
+mHiUCJR4bpBjG0LfBvgPmgX9fgdbj2qTeR6TeJd+m4QIg5qrh7obqjcG++B6BfdNBzBCO1lHcAhv\
+R0Z9RRtXXpKZZR9kmWqgbqdup3StfLIIfLKDtbga+FsHtIenhJwehJt/mHqVCJR6c5BuGy8G+SD4\
+/hXAt3lmsB+wZp1eVxpWeV9mZh5mZl54VxtXX56wZh9msHm3wBq/nbiwsB6wsLedvxtFBGpwf3R0\
+H3R0f29qGmqXbqJ0HnSipn+sG6ynl6KiH6Kil6isGqx/p3SiHqJ0b5dqGw74PdkcBXMV+K82ZwZf\
+bIeCeB98hICAhHsIhHuHa1sa/QgH+wSZOKZVHqZVuF7KZghmytB51hvX05+yzx/Psru6psEIpsGZ\
+4PcJGvjwB7eHq4KeHoKefpp6lAiUeW+QZhtk4PhnNmsGVmeBd3gfd3eBZVQa/RcH+wl1KV89Hl88\
+S003XghdNyl0+wMbIiqiujQfNLpLxWLRCGLQduP0GvlAB7eHqoOdHoOcf5h8kwiTfHCPZRtZBvkI\
+9xMVaqHT902evJ2rnJwZm5udk54bmpiGgpUflYGQf34aa31qb2oe9wD7ShVqodP3TZ67nKucnBmb\
+nJ2TnhuamIaClR+VgZCAfhprfWpvah4O93Gf+lkV+A+aBf0YB1KTXptqHppqo3GseQh4q7GCthvA\
+yJmozx/OqM+1zsQI+GYHvIeshJoehJp+mHiUCJR4bpBjG0LfBvgPmgX9fgdbj2qTeR6TeJd+m4QI\
+g5qrh7obqjcG++B6BfdNBzBCO1lHcAhvR0Z9RRtXXpKZZR9kmWqgbqdup3StfLIIfLKDtbga+FsH\
+tIenhJwehJt/mHqVCJR6c5BuGy8G+GD3dBVqodP3TZ68naucnBmbm52TnhuamIaClR+VgZB/fhpr\
+fWpvah73APtKFWqh0/dNnrucq5ycGZucnZOeG5qYhoKVH5WBkIB+Gmt9am9qHg73H/eJHAVzFfpf\
+Ngb+Ixz7TgX34wb3LPcIpb7bH9q+0ujK9xvnbBj7NfxFBf7L3wb6JRwEswX7tgYqPoJ4Uh9SeFpu\
+YGRgY19NXDY1tRj4UPhuFa4H9033HAW6ysCithufnIR9mR+YfJJ5dhpxgnZ4eh54emp9WoAIDvtR\
+92H6WRX5bTcG/Tb9qAX3Ogb3FuibqsQf2bfF1bH05GsY+w/73wX9vt8G+Tb5oQX7WQYwRHtqWB9Y\
+altNYDA1tBj3yfiHFa4H9033HAW6ysCithufnIR9mR+YfJJ5dhpxgnZ4eh54emp9WoAIDvcf94kc\
+BXMV+l82Bv4jHPtOBffjBvcs9wilvtsf2r7S6Mr3G+dsGPs1/EUF/svfBvolHASzBfu2Bio+gnhS\
+H1J4Wm5gZGBjX01cNjW1GPji+T0Vrah/dKMfo3OXbmoaaX9uc3Qec3Nuf2kbaW6Xo3Mfc6J/qK0a\
+rJeoo6MeoqOol60bDvtR92H6WRX5bTcG/Tb9qAX3Ogb3FuibqsQf2bfF1bH05GsY+w/73wX9vt8G\
++Tb5oQX7WQYwRHtqWB9YaltNYDA1tBj4UPlVFa2of3SjH6Nzl25qGml/bnN0HnNzbn9pG2lul6Nz\
+H3Oif6itGqyXqKOjHqKjqJetGw73KxwE5RwFTBWZ+8oFZwZ96mfIUKcIplBDmTcb/Cf+4AaKY5pr\
+qXOpcr5+1IoIZ/zxrwfOvZaiqh+qoZq1yRr6XgfDfLNuoh6ibVmXRRuvBw74OBwFzPk9FftbSPs8\
++xv7Hh77Hvsb+zRG+08b+0/7NtD3H/sdH/se9x9G9zv3WBr3Vc73O/ca9x8e9x/3Gvc20fdTG/dQ\
+9zZH+x33HB/3G/sdz/s7+1ka+4iEFfdVY/cuPPcHHvcHO/sCxfsfG/scIFP7BTwfPPsFY/st+1Ua\
++1e0+y7d+wYe+wfd9wBS9xkb9x/3Acb3Cdkf2fcJsvcr90wa/UH3hhWvBopVl2SjcghyorF+wBv3\
+Awa/sZekox+jpJeyisIIr/x0ZwaMwn+0dKQIpHNlmFYb+wMGV2V+cnMfc3J/YoxUCGcGDvg5+hv3\
+UxUkk8tX9wwbZ/zqrwf3Ccq/8pYf+0X7IbvqIh8i6lb3BvcbGvcmw/cK9wTkHuT3BPceuPc3G/KD\
+S7/7Cxuv+OpnB/sLS1ckgh/3RfchXCz1H/QswPsH+xsa+yhT+wr7BTMeMvsF+x1f+zcb+2v6KxU+\
+iUh4UGhQZ2JcclAIclB/OSIa+6L3Dvsg94eBHvdr+fQV/fQH6OCqydYf1six9wn3QRr3ovsO9yD7\
+iJUeDkD5pPooFfc6Bif8Z3xDekx4VRn7BZizU8wbw6224pgfrwaEPHhObmAIX21ndWEbTmPT9yN4\
+H/sjRPsFQ/svG/sCNbbgTR9M4Gz3CvcrGvcurvcM0OEe4dDftu0b9xnqIvtmxR93MBX3fEg59wgo\
+G1NeZkJpH2hCevsD+yga+zGbIKxSHlGrtW6/G7izo7uwH6+6rems9x8IDvtf+IT56hVltV24VLo+\
+zl2/erAIerCDraoa9wjixfdB8+J6atAe0GqtYloadYR3fHoeenx4gnQbbGeiuGIfXMBlrm+cCJxu\
+aZNiG1pkgXZuH252fXFsGmqYa6RsHqRszFf1QvcAQdpOvVy9XLNTqUwIqUyaR0Ia+xJg+wM0LB4s\
+NCdb+wcbIzOx10MfQtZn8vcWGvcTtPPe3R7e3eu89wObCLdcFftTayv7F/t7GvsPpC68Sx5LvMFr\
+yBvNwavKth+2yqDh9wEa2oDPdMMedMJqwGC+cqh8noaSCA77nffX+HoV+xe/SdTpGtKtxM63HrfO\
+4KHzG+PUfG7GH8ZuqGZfGnSCd3p6Hnp6doJ0G2ZspL1zH9FqWa5IG1hhe2toH2hqeVtMGvsOyk73\
+EZmbjI6cHpCqoo2bG7Sff3Nxd35ifHWOkG0fjnR6jX4b+xhJR/scSZ1WrmMfY669d8ob2sC03aUf\
+mbaaqZucCJyboZOmG6Gfg3ueH557lHVwGk1oWEZkHmRFOXcuGygwpL45Hzm+Ys/gGvPb2fc1vx4O\
+pRwEgfooFfsm/EkH0WjNU8k8CMg8qjcyGvsFXjAxRh5GMClpIhv7G/sIvO4qHynuWvcK9x4a7KTg\
+vtUevtXGvM6kCKTO4JfyG8b7JhVoBjNIgXhdH1x4ZWluWwhtW3xQRRr7CasnyzgeN8rXYeMb1Meq\
+ybwfvMmj2usa9yZO9xr7DvcPHg77vfm++igV+yb7wAdy+2p/+zEoGlSXYqJwHnCiqX2uG8qxstiX\
+H68GRHhKZlIeUWZablAb+wtQ9wL3cOmX9zCi924fMwZVYYJ6bB9seW9mcVIIZwaj2qXHqLWotKen\
+p5kImKexkrwbDnD4YvpDFWcH+x1mR/sd+4Ia+5ng+y/3P1we+NwH3JDHlLIelLKira6pCKiutZq9\
+G77AeWjAH8Bot1avRQiuRZ07MBr7E2b7BkEmHkEm+wRR+yt9CPwfJPgfB/sWlyO/POcIPOdk9wz3\
+KBr3HLD3ANbcHtbc5LXzjgj3Lv4NFfdcqu/3HfeFGvV25mHWHtZhV7FOG3F3f3J8H3xyhFaMOQgO\
++yh/+zsV+qwl/qwGQAT6rCX+rAYO/WX3F/odFa338gX3AZWwwssbsp53Y3SCanpeH/sc+/UFDvwe\
++F76HRWt9/IF9wGWsMLKG7Ked2N0g2p6Xh/7HPv1BfwDFq338gX3AZWwwssbsp53Y3SCanpeH/sc\
++/UFDkv3nPfjFT/6EgWIpIqbkhrqtbrfrKiBdqMeonaXbGQaf4l3iG8eO/4aBfgwFj76EgWJpIqb\
+khrqtbrfsKiAdKEeoHSWbmcaf4p3iG8eO/4aBfypJRWuqH9zpB+kc5dtaBppf25zch5ycm1/aBtp\
+bpekch9yo3+orhqul6ikpB6jpKiXrRv4ghatqH9zpB+kc5dtaBppf25zch5ycm5/aBtpbpekch9y\
+o3+orhqul6ikpB6jo6iXrhsOHAZYHATt+k4V9x+t3vcJpPdcCNL76PhxBpu2vJPAG/Dfb1PQH6bH\
+BdEG5fvGMW1s1lvJSr4ZvkpGpEQbXWN/dGgfaHR5bWYabJhwpHUepHS9ctdw91dGGPcKYdhfr1wI\
+rlydWlgaPmpHSFIeUkgzbvsAG/sEK6vLOx92QwVEBmrgBXcHUDczbS8bVFqYpWEfYKVwqICrCH+q\
+hb3OGvj7+z4Hd1NoV1hcWFxSbEx8CHxLN4QiG/uT+/oGSpNimngeeJqugsEbuzf8sN+sBsiylJ2c\
+H5yck7HFGvpOB8ODr3ubHpt6ZJNNG2rg+LsG9zn3CoB01B/TdMlgv04Iv02lPCsafYp9inwe/bj3\
+4BX83fdrB+7Uk5u4H7ibsqyrvAiqvJvGzxrSesVpuh5pumKpWpkImFo5kvsGGxwE8hz7ixVG90rm\
+r8gqykPMWxlbzNZz4RvDupqpsh+yqZ6usxrMUcH7B7Qe+3vfMqxIsGC0GV+0db7JGr2bt6qxHvvi\
+/O8GSJZcom8ebqKrfbYbxcmiuM4fDvjk+Rb6cxXCYAUgOiZW+wsbJjuszFIfUsxu1Nwa5qvWysYe\
+xsreqfAb3M14ZrwfvGajZ2kad4R7fYAegH17hXgben2QlYAfgJV+oXusCL5yY6VTG1VedmBnH2dg\
+eVBBGkKeULFeHl6wuXTBG7WwlJ2qH6qdsqy6vAj5dfhAFf41HPpdBfsLBvo0HAWjBfcC/bcV79pt\
+UMUfxFCoPzAaMG4/UFAeT1A6bSUbIDuqylUfVMlw1eEa6KrWyMYexsjaqO0bhkMVWGF1YGofal96\
+Tj4aPptQqmAeYKq2dcIbxrejuqofqrqax9Ma1nvGbLYetmtfoFIbDvt6zPfaFfda91sF+IQH9xSm\
+78DTHtPA0q/lG82+eGSuH65knFxUGjJtL1AuHk8uOCIh+wkI++EH+0vFL/cJ9wHe5PdGxB6wBnYy\
+ZT9SSghKUkRrNRtIUp6wWx9asGu2fLsIfLqD1Owa6wf7Qfs9Bffh+CEV91D3Y+n3OPcNGsF+t3Gs\
+HqxxaZxiGyxcMvtGHw76APiA+gAV1wZV+wVKJD8uCBwGOyYc+cUGz0fNJMv7Hgg9Bvsp9z37HvcF\
++xPGCLgH9wq69x73A/cx90MIDvso9y36rhX3Q/cx9wP3Hrr3Cgi5BsX7FPcF+x73PfspCD4H+x7L\
+JM1Hzggc+cMmHAY9By4/JEr7BVUIDvoAHAYT+gAV9zL7Q/ce+wP3CVwIXgf7E1D7HvsF+yn7PQg+\
+Bsr3Hs3yz88IHPnF8BwGOwY/6EryVfcFCA77KPctexXXB/cFVfJK6D8IHAY+8Bz5wgfPz/LN9x7K\
+CD4H+z37KfsF+x5R+xMIXQZc9wn7A/ce+0P3MggO+gAcB7D4sBVeB/sNVvsb+wT7KvtACDsGufcH\
+zPLe6Agc+ucG3i7MJLn7Bwg7Bvsp90D7HPcE+w3ACLgH9w3A9xz3BPcp90EI2wZd+wdKJDguCBwF\
+GQY46EryXfcHCNsG9yr7Qfcb+wT3DVYIDvso+H0cBbcVuAbA+w33BPsc90D7Kgg7B/sGuSPMLt8I\
+HPrmB+jf88z3BrgIPAf7QPsq+wT7HFb7DQheBlb3DfsE9xz7QPcqCNoH9wZe80roNwgcBRoHLjcj\
+SvsGXQjbB/dA9yr3BPccwPcNCA77KPh9HAW3FbgGwPsN9wT7HPdA+yoIOwf7BrkjzC7fCBz65gfo\
+3/PM9wa4CDwH+0D7KvsE+xxW+w0IXgZW9w37BPcc+0D3KgjaB/cGXvNK6DcIHAUaBy43I0r7Bl0I\
+2wf3QPcq9wT3HMD3DQj74xz4PxX5YSn9YQYO+dX3/hwE/xXvHPtlHASdJxz6/wYO98D3whb7AvjE\
+BozajNeM1IzUkcuXwpfCn72nuaa4sba8s7yzwarIoQigx8iWyhvr5XRc3h/eXMlTtEq0SqRGlUMI\
+lEKQ+xL7SRr8xPsB+MoH9y+H9wODzx6DznfIa8JrwVm5SLEIsUdDnkAbP0N4ZEgfR2RaXmxWbFZ3\
+T4NHCINGh/sE+y8aDsT64vp8FfsP/mP3Dwf6Y/uFFfsP/mP3Dwf6Y/uGFfsP/mP3DwcOzPcm+kQV\
++kT+RP5EBtf5+BX9rPms+awHDvxS+Ob6IRX8ZPxj+GMHDvxS+Ob6IRX8ZPxj+GMH+BdAFfvLigX7\
+y/fLBw7M+P/6jhX3DfJgNeIf4TW2I/sNGvsNYCM1NR40NSNg+w0b+w0jtuI1HzThYPP3DRr3Erf0\
+498e3uLytfcLGw78Uvf/+jQVzsZzW70fvVukT0QaRnNQWloeWlpPckYbRlCkvFofWrxyxtAa0KTH\
+vLwevLzGo9AbPwRcYnpqaB9oanphWRpanGKuaR5prbR6uxu7tJytrh+trZy0vBq8erVorR6saGKc\
+XBsO/Jn3bP0fFVrHBfcP78ndyhqTipaImh6CeHmHextsc5Sfeh96noKipxqklaOfoh6hnqWWrBu0\
+rntqqB+oapphWBpef1pyWB5yWEhF+wEyCA73cfj9HAVzFfc5BvhFHPtyoFChZaF4GXigqIGwG6E3\
+/IXfBoybm4yaG6ugjpKVH56YlZueGpmCrXjCHi/3ogX8jgb7APvCBYBshXV/Gn6Pf5KBHpKBlISX\
+hgiGl56IphudmouKlh83/DXfB7Knj5OcH5ySmZiYnJicm66gwgj3mPgLFfhDBvts+OwF9+v4OhUk\
+/PLyBw6b+a341xX3AQfVdsBiqx6qYlCbQBtmaoeCbx9vgnV+enx6e355g3eIhINufloIT3xsbVwb\
+cHaUnXsfepyDo6kat5u2rLYerLW9rs6nCKbO2pnmG+DUfnHIH8hwt2WoWgifaZVNMRr8FQdUjWiO\
+eh6Sbph2nn0IfJ2jhKgbqq+SmrYfNAd7VFmDXxtcY5KYax9qmHGfdqV2pH6qha47TENfSnIIckpK\
+fkkbL0CkvVIfUr1uxs4atJaxoLAeoLCrq7antqfOpOeg56D3FJ/3N5wINAT7L3QsfGaCQnpXeWx3\
+bHd0dn50CH50hHJxGnGTcppzHppyoHimfQh9pqiEqhu2vJWgwh/CoNGz4McI6vqzFST88vIHDvfr\
+HAS4HAVzFdMG9xP8ZS5xWfZl03GwGWDGVrpMrgiuS0WcPhsxOHNbQB8/Wk5EXC4IXC5zIvsJGvsM\
+oyC7LR66LcxD3FgIWNzjcukb5OWkvugf6L7b0s/m21QYYk5eV1tgP0Y8WTlqCGo5MXspG/tt+0Tb\
+9zX7Gx/7BPcZU/cz90wa9xuq9w/J9wIeyfcB4eL3AcwIzPcB9wmr9xIbzsqCecUfxHjGbsZiCPwI\
++EUV97f7U3BY+5zo+5sucL4FDiD6UverFctXBfs7+xH7Kzf7Qxv7HfsHvOwtHy3sXPcN9yUa7KHi\
+t9gettjIxtm2CLbY5KDwG/cH6m9T2B/YUrFSUhpsgnR5eh56eXeDdBt/f46RgB+AkX+Vf5iGkYGe\
+fap5sn2lgZh2pnKgbZoImmxpk2YbUld7bFsfWmxlXW9OCG5OfUI2GvsXriLRPh5IyNNq3xuyspKY\
+sx+ymLGerqSlnbW0xssI/BH6+RX3t/tTcFj7nOj7my5wvgUO9+scBLgcBXMV0wb3E/xlLnFZ9mXT\
+cbAZYMZWukyuCK5LRZw+GzE4c1tAHz9aTkRcLghcLnMi+wka+wyjILstHrotzEPcWAhY3ONy6Rvk\
+5aS+6B/ovtvSz+bbVBhiTl5XW2A/RjxZOWoIajkxeykb+237RNv3NfsbH/sE9xlT9zP3TBr3G6r3\
+D8n3Ah7J9wHh4vcBzAjM9wH3Cav3EhvOyoJ5xR/EeMZuxmII++74KBWtqH90ox+jc5duahppf25z\
+dB5zc25/aRtpbpejcx9zon+orRqsl6ijox6io6iXrRsOIPpS96sVy1cF+zv7EfsrN/tDG/sd+we8\
+7C0fLexc9w33JRrsoeK32B622MjG2bYIttjkoPAb9wfqb1PYH9hSsVJSGmyCdHl6Hnp5d4N0G39/\
+jpGAH4CRf5V/mIaRgZ59qnmyfaWBmHamcqBtmgiabGmTZhtSV3tsWx9abGVdb04Ibk59QjYa+xeu\
+ItE+HkjI02rfG7KykpizH7KYsZ6upKWdtbTGywj8EPrdFa2of3SjH6Nzl25qGml/bnN0HnNzbn9p\
+G2lul6NzH3Oif6itGqyXqKOjHqKjqJetGw73w+0cBXMVHARuBvcX/AMzanXHc7pxrhlxrWyoZ6Nm\
+o2ebZpMIk2ZIjyob++b8k/c8Bsm6lqCrH6qgoaWXqgiUopC0xRqi7fz4KcAHuoishKAehKB+nnie\
+eJ13l3aSCJJ1Zo5XG/s8/FoGXI1ukIEej4CShJWGCIaVpom4G/dlBvcJ5pmnzR/Mp8W2vcWyuLHL\
+r97maxj7MPxJBRz7Z9+zBrqojpGWH5yUmZmUngiSmI6ouBr6VAe2h6iCmh6CmnyWdpMIkIBjjUcb\
++l332xUk/PLyBw4g+jb3lhXLV1pRXF1eaRldaWBzYn4IfWJchFQbKTifs0YfPLlPx2HVCGHVduLw\
+GvSf5bTWHrTWxMbUtgi21N+g6xvSyYB1wB/AdLdqsF6wXqVXnFGUaZFfjFUI/VcGiWqKc3saN5pA\
+qEoeqEmyW7xsCGy7wnvIG7+9l6S8H7yjxrrQ0gj7FPgoFYHIfbl5qHiocaNqnAicaWWUYRthZIJ6\
+Zh9mem1zc2xybHZfeVAI+MT5FxUk/PLyBw73w+0cBXMVHARuBvcX/AMzanXHc7pxrhlxrWyoZ6Nm\
+o2ebZpMIk2ZIjyob++b8k/c8Bsm6lqCrH6qgoaWXqgiUopC0xRqi7fz4KcAHuoishKAehKB+nnie\
+eJ13l3aSCJJ1Zo5XG/s8/FoGXI1ukIEej4CShJWGCIaVpom4G/dlBvcJ5pmnzR/Mp8W2vcWyuLHL\
+r97maxj7MPxJBRz7Z9+zBrqojpGWH5yUmZmUngiSmI6ouBr6VAe2h6iCmh6CmnyWdpMIkIBjjUcb\
+9974HBW7sQVE4Oxn9wEbwMGVoMAfwKC2pKupuWUYbE5dWk1kCGRMSHhEG1pdlJxfH1+cZaJrqWqp\
+cbB2twgOIPo295YVy1daUVxdXmkZXWlgc2J+CH1iXIRUGyk4n7NGHzy5T8dh1Qhh1Xbi8Br0n+W0\
+1h601sTG1LYIttTfoOsb0smAdcAfwHS3arBesF6lV5xRlGmRX4xVCP1XBolqinN7GjeaQKhKHqhJ\
+slu8bAhsu8J7yBu/vZekvB+8o8a60NII+xT4KBWByH25eah4qHGjapwInGlllGEbYWSCemYfZnpt\
+c3Nscmx2X3lQCDD5WBW7sQVE4Oxn9wEbwMGVoMAfwKC2pKupuWUYbE5dWk1kCGRMSHhEG1pdlJxf\
+H1+cZaJrqWqpcbB2twgO98PtHAVzFRwEbgb3F/wDM2p1x3O6ca4Zca1sqGejZqNnm2aTCJNmSI8q\
+G/vm/JP3PAbJupagqx+qoKGll6oIlKKQtMUaou38+CnAB7qIrISgHoSgfp54nnidd5d2kgiSdWaO\
+Vxv7PPxaBlyNbpCBHo+AkoSVhgiGlaaJuBv3ZQb3CeaZp80fzKfFtr3Fsrixy6/e5msY+zD8SQUc\
++2ffswa6qI6Rlh+clJmZlJ4IkpiOqLga+lQHtoeogpoegpp8lnaTCJCAY41HG/kv+CEVrah/dKMf\
+o3OXbmoaaX9uc3Qec3Nuf2kbaW6Xo3Mfc6J/qK0arJeoo6MeoqOol60bDiD6NveWFctXWlFcXV5p\
+GV1pYHNifgh9YlyEVBspOJ+zRh88uU/HYdUIYdV24vAa9J/ltNYetNbExtS2CLbU36DrG9LJgHXA\
+H8B0t2qwXrBepVecUZRpkV+MVQj9VwaJaopzexo3mkCoSh6oSbJbvGwIbLvCe8gbv72XpLwfvKPG\
+utDSCPsU+CgVgch9uXmoeKhxo2qcCJxpZZRhG2FkgnpmH2Z6bXNzbHJsdl95UAj3lvleFa2of3Sj\
+H6Nzl25qGml/bnN0HnNzbn9pG2lul6NzH3Oif6itGqyXqKOjHqKjqJetGw74ZhwErRwFcxXUBvcG\
+/EIxbE/3HEbsPcUZxT0zqCgb+yL7C1D7CisfK/sKW/sh+zca+wmk+wC8KR68KcxA3VgIWN3icecb\
+xsSWocEfwKC3payppKKbpJSmlKaPsYq8CM0HwIWwf6EefqF6m3SUCJJ6XI8/G9/4yjddB2Rwh4R9\
+H3yDgX+EewiEe4hsXBr8dygHVvcOU2JPbEx0GWksLnouG/tP+zXQ9x77GR/7GvcdSPdA92Ea92DP\
+9z/3G/cfHvcf9xv3NtD3URu6uoaCuR+5grV9sXqofqx3sW4I+/H4RRX3t/tTcFj7nOj7my5wvgUO\
+Sfnj+goVqa6qpaqcCJyqp5OlG6OfhH2cH5t8k3p2GnaEeXx8Hnx8eYR0G4J+jY57H5B4fI1+G3p6\
+g3x5H7RZoFBIGi9kOz5IHkg+KWn7ChtKSZmmSR9fbHJ3hYQIgoCGf34aeJV7n34epHq9fdaA97Vg\
+GMuBy3rMdMx0umyoZgioZpleVxozYkU6Vh5IJPsuaftfGyA1lqJIH0iiWKtmtAhwqX6qqxq0mbSm\
+sh6mssnD7dRMm12ecKAIaKZ6qq4anI6ckpoekZqVmpqamZqln7Gmo5ycl5WTWq5nsnK2CHK2f7q+\
+GuCs1czKHtja9rL3GxvHv4R8uB+4fLlwumQI+8SVFUpTc1xeH15cdFBFGlyVYaBmHqBlqG2wdgh1\
+sLOAtBu0s5ahsR+woaipoLAIn7CVtboa1HXHX7keuF5SokUb+zP9+BVLVGFfdmkIdmmAamwacJZx\
+oHMeoHKudr57CHu+yoPYG+bZlZ/MH8yeuaSnqgigo5WnrBqng6N6nh56nmucXJpcmV+VYpII+xYc\
+BZMV97f7U3BY+5zo+5sucL4FDvhmHAStHAVzFdQG9wb8QjFsT/ccRuw9xRnFPTOoKBv7IvsLUPsK\
+Kx8r+wpb+yH7Nxr7CaT7ALwpHrwpzEDdWAhY3eJx5xvGxJahwR/AoLelrKmkopuklKaUpo+xirwI\
+zQfAhbB/oR5+oXqbdJQIknpcjz8b3/jKN10HZHCHhH0ffIOBf4R7CIR7iGxcGvx3KAdW9w5TYk9s\
+THQZaSwuei4b+0/7NdD3HvsZH/sa9x1I90D3YRr3YM/3P/cb9x8e9x/3G/c20PdRG7q6hoK5H7mC\
+tX2xeqh+rHexbgj72PgoFa2of3SjH6Nzl25qGml/bnN0HnNzbn9pG2lul6NzH3Oif6itGqyXqKOj\
+HqKjqJetGw5J+eP6ChWprqqlqpwInKqnk6Ubo5+EfZwfm3yTenYadoR5fHwefHx5hHQbgn6Njnsf\
+kHh8jX4benqDfHkftFmgUEgaL2Q7PkgeSD4pafsKG0pJmaZJH19scneFhAiCgIZ/fhp4lXuffh6k\
+er191oD3tWAYy4HLesx0zHS6bKhmCKhmmV5XGjNiRTpWHkgk+y5p+18bIDWWokgfSKJYq2a0CHCp\
+fqqrGrSZtKayHqayycPt1EybXZ5woAhopnqqrhqcjpySmh6RmpWampqZmqWfsaajnJyXlZNarmey\
+crYIcrZ/ur4a4KzVzMoe2Nr2svcbG8e/hHy4H7h8uXC6ZAj7xJUVSlNzXF4fXlx0UEUaXJVhoGYe\
+oGWobbB2CHWws4C0G7SzlqGxH7ChqKmgsAifsJW1uhrUdcdfuR64XlKiRRv7M/34FUtUYV92aQh2\
+aYBqbBpwlnGgcx6gcq52vnsIe77Kg9gb5tmVn8wfzJ65pKeqCKCjlaesGqeDo3qeHnqea5xcmlyZ\
+X5Vikgj7CBwFdxWtqH90ox+jc5duahppf25zdB5zc25/aRtpbpejcx9zon+orRqsl6ijox6io6iX\
+rRsO+GYcBK0cBXMV1Ab3BvxCMWxP9xxG7D3FGcU9M6goG/si+wtQ+worHyv7Clv7Ifs3GvsJpPsA\
+vCkevCnMQN1YCFjd4nHnG8bElqHBH8Cgt6WsqaSim6SUppSmj7GKvAjNB8CFsH+hHn6hept0lAiS\
+elyPPxvf+Mo3XQdkcIeEfR98g4F/hHsIhHuIbFwa/HcoB1b3DlNiT2xMdBlpLC56Lhv7T/s10Pce\
++xkf+xr3HUj3QPdhGvdgz/c/9xv3Hx73H/cb9zbQ91EburqGgrkfuYK1fbF6qH6sd7FuCPv1HPrp\
+FXE0BY2mnIyQG7CuhHyrH6OAnnuZdQiYdJJxbBpXemFpax5qaF17URtRWZmoYR9soHujphqakJeV\
+lR6VlJiQmhuamIeFlR+VhJR9kniVdJN9koUIf5qdhaAbpqGVoJ4fnp+UpawarYGld50enXdslGEb\
+cGqEfmUfvvczBQ5J+eP6ChWprqqlqpwInKqnk6Ubo5+EfZwfm3yTenYadoR5fHwefHx5hHQbgn6N\
+jnsfkHh8jX4benqDfHkftFmgUEgaL2Q7PkgeSD4pafsKG0pJmaZJH19scneFhAiCgIZ/fhp4lXuf\
+fh6ker191oD3tWAYy4HLesx0zHS6bKhmCKhmmV5XGjNiRTpWHkgk+y5p+18bIDWWokgfSKJYq2a0\
+CHCpfqqrGrSZtKayHqayycPt1EybXZ5woAhopnqqrhqcjpySmh6RmpWampqZmqWfsaajnJyXlZNa\
+rmeycrYIcrZ/ur4a4KzVzMoe2Nr2svcbG8e/hHy4H7h8uXC6ZAj7xJUVSlNzXF4fXlx0UEUaXJVh\
+oGYeoGWobbB2CHWws4C0G7SzlqGxH7ChqKmgsAifsJW1uhrUdcdfuR64XlKiRRv7M/34FUtUYV92\
+aQh2aYBqbBpwlnGgcx6gcq52vnsIe77Kg9gb5tmVn8wfzJ65pKeqCKCjlaesGqeDo3qeHnqea5xc\
+mlyZX5VikgggHAYJFbRbBUBJZVRgGoWMg4yCHpKdnI+aG6qhg3qZH5h6knh4GnSCeHh6Hnp4dIJw\
+G2ZsmKZxH3GmfqyyGuTB3vcB2R4O+GbsHAVzFfiuNmYGYG2Hg3kfeIN+fYR3CIV8iGxcGvwZ+Wf4\
+Dwe+iaqIlh6GoH+bepYIlnlwkGcbVOD4qjZbBmZwh4N8H3uCgICFfQiEfIhsXBr+SgdWjmqSfR6S\
+fJiBn4UIh5ezic8bN/yq37IHvKyOkpwfm5KVlZCaCI+Wja/HGvhF/Wf8UQdWj2qSfB6SfJiBn4YI\
+h5q0idAbN/yu360Hv6yOkZgfmJCVlpObCJKbj6e0GvpVB7aIqYScHoScgJd8kwiTfHKPaBtTBvll\
++D4V97f7U3BY+5zo+5sucL4FDvdI1RwFERXhB8yUvZWvl6+WsZ2yowjZ/SkG1srTus6oCKjOzJrI\
+G+TVcFbFH8RWqEo+Gvx/B1qPbJN8HpJ8mICdhAiEnbOHyhs3/JjfsQe8q4+Tmh+akpeYkp0IkpyO\
+sMIa9+kH1oi8hqIegbJ2qmyiCKJsY5daG1RSfnBQH09wTWJLVQj8iQdmjnKSfh6SfpaCmoUIhZqq\
+iLkbtDf8mt+qBryukZehH5eRlJeQnAiQnI672hr6jAf4KPh8Ffe3+1NwWPuc6PubLnC+BQ74Zvhf\
++vUV+WerBr6JrYebHoabgJh6lgiWeXCQZxtU4PiqNlsGWWqCenwfe3mDZVIaWfcyKvsy/bcHTJJk\
+mn0efZmyhMsbqjf8qt+yBrysjpKcH5uSlZWQmAiPmI2wxhr4Rf1n/FEHTJJlmn0efJmyhMsbsDf8\
+rt+tBsaykZicH5yYk67GGvnC+zbs9za9B8WDsXucHpx7bJRcG1Pg+K42ZgZQZoJ5eh96eIJjThr7\
+HwT7jvln944HDvdI+DIcBKEV+AQ5/AT7vQb3Dvck9xvI9xIbzcR+cLwfu3CuaaJjCKFjlk45GvxO\
+B1GTZZx6HnqbroLBG7Q3/JvfsgbIspSdmx+bnJO30hr36QfSh8CDrh6CrXena6EIoGtkllwb+wH7\
+C1X7APsUH/xhB0WRYJh8HnuYsYPMG7M3/JffqgbQs5WgmB+Xn5HC5hr5yvs/3fc/9wX7P+AH9wOY\
+46fMtgjXBg78cNwcBXMV+Ko2YgZkb4aAeh96gH58g3gIg3eHZVIa/hcHXo9rlHgelHiXfZuCCIKa\
+p4e0G7Q3/Krftwayp5CUnB+blJeYkpwIkpyPq7wa+iwHvoeuhJ0ehJx/mHuUCJN6b49kG18G+Nr3\
+7xWAX3JmZW4IbmRgfFwbfH2Mjn4ffo5tk1yaCKJCWJZsG25wfXByH1CfmLWiraylGaSsr5iyG7PM\
+fnLkH3+3rYWiG7armqmiHw78wsj5yRXeB8KSupSxl7CXtp67pQjU/YgGWI1sjoAekXeXfJ2CCIOZ\
+p4e0G7o3/JTftAa4qY+Tmh+ak5aWkpoIkZqOrcEa+OAH9+X4jBWAX3JmZW4IbmRgfFwbfH2Mjn4f\
+fo5tk1yaCKJCWJZsG25wfXByH1CfmLWhra2lGaSsr5iyG7PMfnLkH3+3rYWiG7armqmiHw78cNwc\
+BXMV+Ko2YgZkb4aAeh96gH58g3gIg3eHZVIa/hcHXo9rlHgelHiXfZuCCIKap4e0G7Q3/Krftway\
+p5CUnB+blJeYkpwIkpyPq7wa+iwHvoeuhJ0ehJx/mHuUCJN6b49kG18G+M732xUk/PLyBw78wsj5\
+yRXeB8KSupSxl7CXtp67pQjU/YgGWI1sjoAekXeXfJ2CCIOZp4e0G7o3/JTftAa4qY+Tmh+ak5aW\
+kpoIkZqOrcEa+OAH9+X4eBUk/PLyBw78cNwcBXMV+Ko2YgZkb4aAeh96gH58g3gIg3eHZVIa/hcH\
+Xo9rlHgelHiXfZuCCIKap4e0G7Q3/Krftwayp5CUnB+blJeYkpwIkpyPq7wa+iwHvoeuhJ0ehJx/\
+mHuUCJN6b49kG18GRfgcFbuxBUTg7Gf3ARvAwZWgwB/AoLakq6m5ZRhsTl1aTWQIZExIeEQbWl2U\
+nF8fX5xlomupaqlxsHa3CA78wsj5yRXeB8KSupSxl7CXtp67pQjU/YgGWI1sjoAekXeXfJ2CCIOZ\
+p4e0G7o3/JTftAa4qY+Tmh+ak5aWkpoIkZqOrcEa+OAH+8P4uRW7sQVE4Oxn9wEbwMGVoMAfwKC2\
+pKupuWUYbE5dWk1kCGRMSHhEG1pdlJxfH1+cZaJrqWqpcbB2twgO/HDcHAVzFfiqNmIGZG+GgHof\
+eoB+fIN4CIN3h2VSGv4XB16Pa5R4HpR4l32bggiCmqeHtBu0N/yq37cGsqeQlJwfm5SXmJKcCJKc\
+j6u8GvosB76HroSdHoScf5h7lAiTem+PZBtfBvfHHPriFXJ4dXR5bgh/eIV3dxpzk3ecex56nJ6D\
+ohugo5GYph+mmKadpKSsYBhcYmZwbn0IdmBjgGYbZmyYpXIfcqV+q7AaqZaroa0emqKjoqqgCA78\
+wvfVHAWgFaumgHWiH6J0lnBrGmuAcHR0HnR0cIBrG2twlqJ0H3SigKarGquWpqKiHqGipparG/uT\
+/P8V3gfCkrqUsZewl7aeu6UI1P22Bm+PdpN9HpN9loGahQiEmaWIsRu6N/yU37QGuKmPk5ofmpOW\
+lpKaCJGajq3BGvjgB/cd/ckVcnh1dHluCH94hXd3GnOTd5x7HnqcnoOiG6CjkZimH6aYpp2kpKxg\
+GFxiZnBufQh2YGOAZhtmbJilch9ypX6rsBqplquhrR6aoqOiqqAIDsT4+hwFcxX4qjZWBmdyh4R8\
+H3yEf3+DewiDe4dzaxr9dQf7A3k0Z0weZ0xSVzxiCGI8LnYgG/si+wax1jUfNNZg4+8avZayoqYe\
+pqKnma0bpqGBd50fnHeUcWsagoh4hm4ehW2Idn8aWqRevmMeYr3Md9sbzcaaqMAfwKixsKK3CKK3\
+lsveGvltB7yHrYScHoOcf5d6lAiTem2PXhtqBvee+D4V97f7U3BY+5zo+5sucL4FDvzC92UcBXwV\
+97f7U29Y+5vo+5sucL4F9zP8HRXgB+KR5KfovQjU/tUG+wdpMUdIHkhHNGogG0pTmaddH12mdKuw\
+GqWToZ2dHpycoZSmG6aqemqsH1i+tHKrG961z/cbH/ptBw73w/IcBXMV+K42ZQZfbIaAeR95gH57\
+hHQIhXqIcGUa/KMH+KD4v6aonJ6QlBmQlI2UlBqXhZSAkR6Rf3KOZBtr4PiINgZkjGeGa4JrgnJ/\
+eH1ibW5zenn8CvwTGPg//MqyWKloongZoniifaOECIOjsIe+Gzf85N+uB7KjjI2SH5aOlJCSkwiS\
+k46TlBqcdLNdyR77z/hA+0b7TAX7nwddkGyUeh6Uepp/noMIhZq0iMwbN/yu37UHtaiPlJofmpOX\
+mZSeCJOej668GvotB7yHrIOdHoOcf5h8kgiSfGqPWRtsBvhyHPpwFZ7Kv5W0G8C0fW+pH6lvmmdf\
+Glh7YmprHmtqXntUG1hhl6JoH2iieaWoGq2bnKumn3xtmB6WcJZ5lIMIgpSZh54bpaCWo5sfmqKT\
+o6Ya0mOuOm5jgnlZHg7txxwFFRXdB+CS5KfmvAjY/noG+AP3uAXGuqiqmhqUhZN+kB6Og3eNbBtW\
+3/iPNwZSXoWAaR9pf2R0Xmn7tvtxGPfq/AqsZ6VyoHwZoHyfgaCGoIWriLeKCDf8qN+0B7SkjpKW\
+H5aRkJOWGpaBmnefHoiOh4+HkPue98YY+zf7EQX7Fwdaj2uSfB6SfJd/m4MIg5qph7gbsDf8l98G\
+xYyvjZiPopKcmJaeCJWekK/AGvq7B/eKHPp5FZ7Kv5W0G8C0fW+pH6lvmmdfGlh7YmprHmtqXntU\
+G1hhl6JoH2iieaWoGq2bnKumn3xtmB6WcJZ5lIMIgpSZh54bpaCWo5sfmqKTo6Ya0mOuOm5jgnlZ\
+Hg73AtP5yBXgB9+Q46fovgjY/JwG+AP3uAXFuaiqnBqccZRYHlbf+I83BlJehYBqH2qAY3RdaPu2\
++3EY9977/b9StGeofRl8qLaExBs3/KjftAfJqpaglH2gcKof+573xvs3+xEF+xcHTJRjnHsee5yw\
+g8MbsDf8l98GxYyxjp6RnZCZl5aeCJWekK/AGvjaBw7E6RwFcxX4sTZZBmRwh4R7H3uEf4CEfQiE\
+fYdyZxr+YQdejXGOgh6Pf5SCmIYIh5Smibgb1gbh1pikyh/KpMKvubu5urfSturkbRj7MPxJBf6A\
+37cGtqePkpofmpKWmJOcCJOcj6i0GvpJB7uHq4ScHoSbgJd9kgiSfW2OXhtfBvgAHPpwFZ7Kv5W0\
+G8C0fW+pH6lvmmdfGlh7YmprHmtqXntUG1hhl6JoH2iieaWoGq2bnKumn3xtmB6WcJZ5lIMIgpSZ\
+h54bpaCWo5sfmqKTo6Ya0mOuOm5jgnlZHg78wsocBRUV3QfmkuOn4bwI1Rz7MQZXjmqSfh6UeJd+\
+nIIIgpyrh7obqzf8l9+/BqyjkJWcH5uVl5mSnAiSnI6uvxr6tQc+HPp5FZ7Kv5W0G8C0fW+pH6lv\
+mmdfGlh7YmprHmtqXntUG1hhl6JoH2iieaWoGq2bnKumn3xtmB6WcJZ5lIMIgpSZh54bpaCWo5sf\
+mqKTo6Ya0mOuOm5jgnlZHg736+McBXMV+EAG+Q/+qgX5sAe6hq2CoB6CoH2aeJYIlnhwkGYbZ+D4\
+ZzZyBmJviIR8H3aCfHqBcgiAcoZpXhoc+4f7DQf9kRwE6QX+eAdUjWmOfx6QfJN9mH6XfpmDnIac\
+hqyJvooIN/xt36QHu6yQlJwfnJSYm5SiCJSikLHBGvoIB8KKrYiXHoWigJt6lQiVemmQWBtnBviv\
+HPpwFZ7Kv5W0G8C0fW+pH6lvmmdfGlh7YmprHmtqXntUG1hhl6JoH2iieaWoGq2bnKumn3xtmB6W\
+cJZ5lIMIgpSZh54bpaCWo5sfmqKTo6Ya0mOuOm5jgnlZHg73SNb5yRXfB8aSuJOolKiUtp/CqgjT\
++1IG49XWvcqmCKXJypjLG8K7gnm1H7V4rXKmbKVsnGeUYwiQco5mWRr8TAdWj2qTfB6SfJeAnIQI\
+hJy0iMwbN/yX36cHu6yPlJwfnJSYl5OcCJKcj62+GvgEB9eFwH+oHn6odqNungidbWWUXhtVUX1w\
+Th9Ob09iUlUI/GEHV49ok3oeknqYfpyCCISXq4i/G6g3/JffpAa8rY+UnR+dk5iakqAIj5aNr8oa\
++M4H96b+OxWeyr+VtBvAtH1vqR+pb5pnXxpYe2Jqax5ral57VBtYYZeiaB9oonmlqBqtm5yrpp98\
+bZgelnCWeZSDCIKUmYeeG6WglqObH5qik6OmGtJjrjpuY4J5WR4O+Gz4X/qWFf25B02SZZp8HnyZ\
+soTLG7A3/K7frQbGspKYnB+cmJOuxRr6VQfFg7F7nB6ce2yUXBtT4Pf++2sG9zP3E/cz2/dTG/dL\
+9yZH+xz3AR/3APscwftF+28a+2Fe+z0x+xke+xkx+w5I+y8b+wQ1rc5QH0/ObdbfGreXrqKmHqWi\
+qJisG8qqa0t6iHaFch+EbIh0ehosv1zy91Hp90z4BPddaPc2RPcPHvcPRCPI+xwb+0n7KDD7SfsH\
+Hw73K/r8+TAV/ZQH+wdpMUdIHkhHNGogG0ZSmqhfH1+odausGqWUoZydHpycoZSmG6aqemqsH1i+\
+tHKrG960z/cbH/mWB9SFv4CpHoCpdqRtngiebGWUXBv7CfsIVPsB+wkf/GEHXI5qkngekXiWfZuD\
+CIKbrYe/G6c3/JTfpAa8rI+UnR+dk5eXkZsIkZqOs8oa+M37PuAH5pLhp968CNH7Ugb3E/cl9x/K\
+9xcb0sh8bLwfvGysaJ1iCJ1ilFNEGg74ZvnbHAWLFfcT9wdsTvIf9wNJ4TXHIgjGIqn7DvsfGvtr\
+SPtD+xn7Gx77G/sZ+z5H+2Mb+3v7Stz3N/sbH/sC9xlU9zL3TRr3Har3EMn3AR7J9wHj4fcGygjK\
+9wb3Eav3HBv7AAQjMnNcQB9AW1BFXi4IXi50+wb7HBr7FqH7ArgxHrcwxkbWWwhb1t9z6Bvo3aO6\
+0h/SusbVuvAIuvCi9wT3Dxr3EXT3B1zzHmPkVs1Jtgi2STmgKRv3r/faFST88vIHDnL41/pxFe3g\
+d2LTH9JixFC0PQi0PaAyJxondjJhPR5gPVJQQmIIYkIzdiYb+zX7Db3wOh868GL3CvccGu6g5LXY\
+HrXYxsbXtgi11uGg6xuDKhU/S21PVh9IQGr7APsjGvsdpyLEQx5LvtFr4xvEvZqpuB+3qa+7ps0I\
+psyZ2OQa4nzYbtAedMJptV6qCKldV5pSG/fG+DEVJPzy8gcO+Gb52xwFixX3E/cHbE7yH/cDSeE1\
+xyIIxiKp+w77Hxr7a0j7Q/sZ+xse+xv7Gfs+R/tjG/t7+0rc9zf7Gx/7AvcZVPcy900a9x2q9xDJ\
+9wEeyfcB4+H3BsoIyvcG9xGr9xwb+wAEIzJzXEAfQFtQRV4uCF4udPsG+xwa+xah+wK4MR63MMZG\
+1lsIW9bfc+gb6N2jutIf0rrG1brwCLrwovcE9w8a9xF09wdc8x5j5FbNSbYItkk5oCkb+/n4GxW7\
+sQVE4Oxn9wEbwMGVoMAfwKC2pKupuWUYbE5dWk1kCGRMSHhEG1pdlJxfH1+cZaJrqWqpcbB2twgO\
+cvjX+nEV7eB3YtMf0mLEULQ9CLQ9oDInGid2MmE9HmA9UlBCYghiQjN2Jhv7NfsNvfA6HzrwYvcK\
+9xwa7qDktdgetdjGxte2CLXW4aDrG4MqFT9LbU9WH0hAavsA+yMa+x2nIsRDHku+0WvjG8S9mqm4\
+H7epr7umzQimzJnY5BrifNhu0B50wmm1XqoIqV1XmlIb++L4chW7sQVE4Oxn9wEbwMGVoMAfwKC2\
+pKupuWUYbE5dWk1kCGRMSHhEG1pdlJxfH1+cZaJrqWqpcbB2twgO98PuHAVzFflkBvcd8n1v0R/R\
+bsFisVYIsFWeTUQaQnlLZlMeZlJXX0ZrRmovevsGivgE/FYYqWafdJSConakfKWACICkqIarG6Q3\
++9IG/JT5LgX7R/xCBluNbY5/HpJ0l3ucggiCm6uGuhuvN/yr37sGr6ONkJgfl5CWk5WXlJaSmo+d\
+jJKMrYzHCPomB7OHqIOcHoOcgJh9kwiSfHKPaBtSBvf/cxX8ofezB+zQkZeyH8Obt6istgirtpvB\
+zRrDf7p0sh50sWuoY54InmJPlDsb+28c+ogVnsq/lbQbwLR9b6kfqW+aZ18aWHtiamsea2pee1Qb\
+WGGXomgfaKJ5pagarZucq6affG2YHpZwlnmUgwiClJmHnhuloJajmx+aopOjphrSY646bmOCeVke\
+Dvuj0/nKFd0HvI+2k7GYsZe2n7ynCNb7UQa6xcK5yq0IrcrDnL0bvLJ/dKgfqHSZbmoac4J2eHke\
+eHh0gnAbf4GNjoIfgo5/k3qWCKNmbZdyG2pmfW9jH1hnZGhuaAj8YQdjjXCQfR6PfJJ/lYGVgJeE\
+moYIhpqkibAbrDf8md+2BrSlj5KYH5yVmJmUnQiTnI+ruRr44ge7/jwVnsq/lbQbwLR9b6kfqW+a\
+Z18aWHtiamsea2pee1QbWGGXomgfaKJ5pagarZucq6affG2YHpZwlnmUgwiClJmHnhuloJajmx+a\
+opOjphrSY646bmOCeVkeDvdI+qAcBXMV0wb2/EIvb1D3DT3qKtAZxTsyqCobUFeBdlwfXHZob3Rq\
+CHRqf2loGmyUbJ1uHp1upnGwdbB0x3TecveZPhirgrp5yHDIcLpvrW6tbaZnnmAInmCVXFka+wNb\
+Kyo4Hjgq+xJh+y4bPESWo0wfTKJIs0LGXfsZGEUGLviJ6J6tLrg9xEoZw0rJW9BqCGrP0HrSG+vf\
+qMXTH8e8qcTNGsh1vGCyHl+yPK/7Baz7jtMY+yC0KL9SyghSym7U3RrLnsawwh6wwcW42LAIsNjg\
+necb2NV+cNIfvXi5cbVoCPvP+EkV97f7U3BY+5zo+5sucL4FDiD5g/pZFdEG5fvGMW1n3VnMSroZ\
+ukpJokgbWGF/cmsfa3J7bmoabJdxonUeonS+ctpu91dGGPcCZNZhs14Isl6fV1IaWnxdbl4ebl5g\
+Z1RwCHBTS35DG/sEK6vLOx92QwVEBvsR99vmr8grxEfBYxlS1t1v4hvFu5uqsB+wqp6tsRqqf6h0\
+pR5zpF2kR6P7e98YKK9GsmS2CGS2eLzCGs6rx8q/Hr7K26XsG764hX6zH7N+snWybQj7VfiHFfe3\
++1NwWPuc6PubLnC+BQ7t+Wz5oxX4Myv8M/xUBkWVYJ56HnqevIPbGzf8rt8Hx7KOkZ4fnZCZmJWe\
+CJSekKy8Gvhc/DTr+DT4SAeuh6GDlB6Ug3GPXxskOW9SUB9PUl5EbDYxqxj3JPguBdEGlVwF+ewG\
+k7oF1Qb3JvwuMWti81rXULoZulA/ojAbW2+HgoMfg4KHcV8aDvwe+Cz43RX3vTn7vfuFBkCUWp1z\
+HnKdrn/AG8TQp8TeHyoHUDY1bTIbT1mWoGMfY6Bxpn6rCH6rhMHXGveR+0Pd90P3rPtD3wf3L6jl\
+9wql92UI0vvo970n+70GDvg92RwFcxX4rzZnBl9sh4J4H3yEgICEewiEe4drWxr9CAf7BJk4plUe\
+plW4XspmCGbK0HnWG9fTn7LPH8+yu7qmwQimwZng9wka+PAHt4ergp4egp5+mnqUCJR5b5BmG2Tg\
++Gc2awZWZ4F3eB93d4FlVBr9Fwf7CXUpXz0eXzxLTTdeCF03KXT7AxsiKqK6NB80ukvFYtEIYtB2\
+4/Qa+UAHt4eqg50eg5x/mHyTCJN8cI9lG1kG+qD37xWAX3JmZW4IbmRgfFwbfH2Mjn4ffo5tk1ya\
+CKJCWJZsG25wfXByH1CfmLWiraylGaSsr5iyG7PMfnLkH3+3rYWiG7armqmiHw73cZ/6WRX4D5oF\
+/RgHUpNem2oemmqjcax5CHirsYK2G8DImajPH86oz7XOxAj4Zge8h6yEmh6Emn6YeJQIlHhukGMb\
+Qt8G+A+aBf1+B1uPapN5HpN4l36bhAiDmquHuhuqNwb74HoF900HMEI7WUdwCG9HRn1FG1dekpll\
+H2SZaqBup26ndK18sgh8soO1uBr4Wwe0h6eEnB6Em3+YepUIlHpzkG4bLwb6YPhQFYBfcmZlbghu\
+ZGB8XBt8fYyOfh9+jm2TXJoIokJYlmwbbnB9cHIfUJ+YtaKtrKUZpKyvmLIbs8x+cuQff7ethaIb\
+tquaqaIfDvg92RwFcxX4rzZnBl9sh4J4H3yEgICEewiEe4drWxr9CAf7BJk4plUeplW4XspmCGbK\
+0HnWG9fTn7LPH8+yu7qmwQimwZng9wka+PAHt4ergp4egp5+mnqUCJR5b5BmG2Tg+Gc2awZWZ4F3\
+eB93d4FlVBr9Fwf7CXUpXz0eXzxLTTdeCF03KXT7AxsiKqK6NB80ukvFYtEIYtB24/Qa+UAHt4eq\
+g50eg5x/mHyTCJN8cI9lG1kG+pT32xUk/PLyBw73cZ/6WRX4D5oF/RgHUpNem2oemmqjcax5CHir\
+sYK2G8DImajPH86oz7XOxAj4Zge8h6yEmh6Emn6YeJQIlHhukGMbQt8G+A+aBf1+B1uPapN5HpN4\
+l36bhAiDmquHuhuqNwb74HoF900HMEI7WUdwCG9HRn1FG1dekpllH2SZaqBup26ndK18sgh8soO1\
+uBr4Wwe0h6eEnB6Em3+YepUIlHpzkG4bLwb6VPg8FST88vIHDvg92RwFcxX4rzZnBl9sh4J4H3yE\
+gICEewiEe4drWxr9CAf7BJk4plUeplW4XspmCGbK0HnWG9fTn7LPH8+yu7qmwQimwZng9wka+PAH\
+t4ergp4egp5+mnqUCJR5b5BmG2Tg+Gc2awZWZ4F3eB93d4FlVBr9Fwf7CXUpXz0eXzxLTTdeCF03\
+KXT7AxsiKqK6NB80ukvFYtEIYtB24/Qa+UAHt4eqg50eg5x/mHyTCJN8cI9lG1kG+C34HBW7sQVE\
+4Oxn9wEbwMGVoMAfwKC2pKupuWUYbE5dWk1kCGRMSHhEG1pdlJxfH1+cZaJrqWqpcbB2twgO93Gf\
++lkV+A+aBf0YB1KTXptqHppqo3GseQh4q7GCthvAyJmozx/OqM+1zsQI+GYHvIeshJoehJp+mHiU\
+CJR4bpBjG0LfBvgPmgX9fgdbj2qTeR6TeJd+m4QIg5qrh7obqjcG++B6BfdNBzBCO1lHcAhvR0Z9\
+RRtXXpKZZR9kmWqgbqdup3StfLIIfLKDtbga+FsHtIenhJwehJt/mHqVCJR6c5BuGy8G99T4fRW7\
+sQVE4Oxn9wEbwMGVoMAfwKC2pKupuWUYbE5dWk1kCGRMSHhEG1pdlJxfH1+cZaJrqWqpcbB2twgO\
++D3ZHAVzFfivNmcGX2yHgngffISAgIR7CIR7h2tbGv0IB/sEmTimVR6mVbheymYIZsrQedYb19Of\
+ss8fz7K7uqbBCKbBmeD3CRr48Ae3h6uCnh6Cnn6aepQIlHlvkGYbZOD4ZzZrBlZngXd4H3d3gWVU\
+Gv0XB/sJdSlfPR5fPEtNN14IXTcpdPsDGyIqoro0HzS6S8Vi0Qhi0Hbj9Br5QAe3h6qDnR6DnH+Y\
+fJMIk3xwj2UbWQb5uhz64hVyeHV0eW4If3iFd3cac5N3nHseepyeg6IboKORmKYfppimnaSkrGAY\
+XGJmcG59CHZgY4BmG2ZsmKVyH3KlfquwGqmWq6GtHpqio6KqoAgO93Gf+lkV+A+aBf0YB1KTXptq\
+Hppqo3GseQh4q7GCthvAyJmozx/OqM+1zsQI+GYHvIeshJoehJp+mHiUCJR4bpBjG0LfBvgPmgX9\
+fgdbj2qTeR6TeJd+m4QIg5qrh7obqjcG++B6BfdNBzBCO1lHcAhvR0Z9RRtXXpKZZR9kmWqgbqdu\
+p3StfLIIfLKDtbga+FsHtIenhJwehJt/mHqVCJR6c5BuGy8GHASE/gUVcnh1dHluCH94hXd3GnOT\
+d5x7HnqcnoOiG6CjkZimH6aYpp2kpKxgGFxiZnBufQh2YGOAZhtmbJilch9ypX6rsBqplquhrR6a\
+oqOiqqAIDvmupRwFcxX4iDZWBmh0iIR+H3iAgXt2GnyQcpZqHvey/jb3jPmQUfdNfbd2q26eGZZ6\
+bJFgG+D4hDZcB2JwhoF9H32BhH16GnyQcpZoHvez/jz3tfo8BZWskKOcGp6Emn6UHpR+cJBkG1ng\
++D42BmeMcId6hHmDfICAfYB8fm5+X/wVHPtlGPslBvuh+db7ov3WBfskBvwOHASbecR1sHCdGZh3\
+a5FgG/pQ+D4V97f7U3BY+5zo+5sucL4FDvg9ivpZFfhgN2sGZHGIhX4fd4KBfHcaeJNtmmIe92P8\
+t/de+JB5unbBc7BwoBl5mHCTaI0I3/heN2QHZnSIhYAfeICCenQad5JvmWge92P8t/de+L+WqZCc\
+jI8ZjZKMk5ManoSafJYelnxwkGQbZt/4GDcGbop0hnmCeYJ9gIB9gH18bHha+7j9dhj7DAb7e/jU\
++3j81AX7Cwb7u/l2eLp8q3+aGX+afJd6lAiUeXWPcBv5s/ifFfe3+1NwWPuc6PubLnC+BQ73H5Ac\
+BXMV+J42UAZndIiEgR+AhIaAfBp+kXmYdB6OhpCDkIH3pPyMGPfB+J+XoJKZjpIZjZGMkZIalImT\
+hpIehpGDkICOCIyEeYxsG1fg+EM2BmWMb4h5hniGfIOAgH+AenN2aPwO/QoY+/MHWI9plHwek3yY\
+gJ2ECISdtYfNGzf8td+1B7ipj5OaH5qTlpiUnQiRmI6qvBr3zgf8BfkkbsByqniWGXeVZpFWjAj5\
+Hvg+Ffe3+1NwWPuc6PubLnC+BQ5JgPpZFfh6N2MGZXSKiYQfgoiEhoWDCIWCiIF+GnmUbZ1gHvd8\
+/LX3a/idBaTImLSfGpqFl4CSHpKAcY5jG1zf+C03cwZjcYiGfx9/hn+AgHuAenlmclH8A/3rGHBO\
+blJqV2pWYmNabghuWlR9UBtGVJuqYh9opnmssxqkk5+anB6bmp2ToBubmoiEmR+UiJ19pnKsbqN5\
+mYQIhJiZiJgbpqaUnqYfpp6hpZ6tpryhuJy2tO8Y+975d3S/d657nRl7nXuWe48IjoJwjF0b+Mf4\
+nxX3t/tTcFj7nOj7my5wvgUO/ML4wN8VN/yX36oHy7KTmpofmpqSs84a+fsH9wqu5tLKHsrS4qv0\
+G9XFfGy0H7Rsn2pnGnWDd3x6Hnp7doJwG3J2kZZ6H3qWdJ1wpQisaGmcbBtscH1udB90bn9QMBr+\
+LgdQkmaafh59mrCExhsO93H4/BwFcxX3OQb4RRz7cqBQoWWheBl4oKiBsBuhN/yF3waMm5uMmhur\
+oI6SlR+emJWbnhqZgq14wh4v96IF/I4G+wD7wgWAbIV1fxp+j3+SgR6SgZSEl4YIhpeeiKYbnZqL\
+ipYfN/w13weyp4+TnB+ckpmYmJyYnJuuoMII95j4CxX4Qwb7bPjsBbL4sBXAt3lmsB+wZp1eVxpW\
+eV9mZh5mZl54VxtXX56wZh9msHm3wBq/nbiwsB6wsLedvxtFBGpwf3R0H3R0f29qGmqXbqJ0HnSi\
+pn+sG6ynl6KiH6Kil6isGqx/p3SiHqJ0b5dqG/s39BWuB/dN9xwFusrAorYbn5yEfZkfmHySeXYa\
+cYJ2eHoeeHpqfVqACA6b+a341xX3AQfVdsBiqx6qYlCbQBtmaoeCbx9vgnV+enx6e355g3eIhINu\
+floIT3xsbVwbcHaUnXsfepyDo6kat5u2rLYerLW9rs6nCKbO2pnmG+DUfnHIH8hwt2WoWgifaZVN\
+MRr8FQdUjWiOeh6Sbph2nn0IfJ2jhKgbqq+SmrYfNAd7VFmDXxtcY5KYax9qmHGfdqV2pH6qha47\
+TENfSnIIckpKfkkbL0CkvVIfUr1uxs4atJaxoLAeoLCrq7antqfOpOeg56D3FJ/3N5wINAT7L3Qs\
+fGaCQnpXeWx3bHd0dn50CH50hHJxGnGTcppzHppyoHimfQh9pqiEqhu2vJWgwh/CoNGz4McI+1wc\
+BOEVwLd5ZrAfsGadXlcaVnlfZmYeZmZeeFcbV1+esGYfZrB5t8Aav524sLAesLC3nb8bRQRqcH90\
+dB90dH9vahpql26idB50oqZ/rBusp5eioh+iopeorBqsf6d0oh6idG+Xahv7OfcBFa4H9033HAW6\
+ysCithufnIR9mR+YfJJ5dhpxgnZ4eh54emp9WoAIDhwFgPl2HAVzFRwGQAb3F/v/M2xe9lnVVLMZ\
+uEwrovsXG/xA/Jf3YAbLupKaqR+pmaOhnagInKiUsLYayOv8+ivEB8CDtHumHnumdaBumAiYblmS\
+Rhv7YPx+BoxzBXuMgY6GHpCCk4WUhwiIkpqKpBv31wbq2pejyh/JosGvubq5urjUuO3mbRj7L/xL\
+BRz7Mt/CBrqtlqGeH5udk6u6Gvhj/S0H+6z8V4OABXRsf3BzGnySf5iCHoKYpIexG7Y3/HPfBrCM\
+po6dkp2Rm5SZmKKgoaehrPkV+msYoq6WpZ0amYWWf5Iekn9zj2gbXAb3yXcV+9X8lwX48PiXBlP3\
+ZxWuB/dN9xwFusrAorYbn5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA744RwGWfeXFc1XTjtJUUVm\
+GWZFPXg1GzdBnbBKH0qwU8Je1ExONlL7AFgIaUNCekIbLkCkvVIfUr1ux9AatpWzoLAeoK+srLio\
+uKjSpOui66H3D533K5kI3gfIg7h8qB58qHGiZp0InWZelFUbYGWFfmwfbH5ze3t2enZ+a4Jgg2iD\
+coN+g32BgH6ECIR+fYd8G3B1lJx7H3ucg6OsGtGyy9nEHsTZ86f3FxvGv4V/tx+3frJ5rHSkeqNx\
+oGoI7u73BLz3Ehv3EfBmQNcf1kCzJI77FQj9VwaIaYpyeho6m0OqSh6qSrRavWoIarzBe8UbwMKa\
+qMMfw6jBuL7ICPsT+CcVhtFyw2C2CLZfVaBMG0xSd2JZH1hiaFF4Qgj7U/tAFSOAMHw9ejx5VHhq\
+eGp3dHZ+dAh+dIRzchpwknKach6ZcqB3qHwIfKeohKkbtL+YpMsfyqTOstC/CFT6LBWuB/dN9xwF\
+usrAorYbn5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA74ZhwE8xwE9hX3GfcpBfcWBvtU+2vNRrxA\
+qjsZqjuaLyMa+2tI+0P7GfsbHvsb+xn7Pkf7Yxv7RfsqvO77Dx/7GfsoBfsWBvdU92oF+xT3H0v3\
+PPdbGvcdqvcQyfcBHsn3AePh9wbKCMr3BfcRq/cbG/c29yNZKPcRHy8kFWS8XK9UowiiVEmXPxsk\
+MnNcQR9AW1BFXi4IXi50+wX7Gxr7K6j7EMYqHvnE+ZEV/Yr94gUh5/cJVvciG+jdo7rTH9K6xtW6\
+8Ai58KL3BPcRGvcebvcRUvcDHvzB+DgVrgf3TfccBbrKwKK2G5+chH2ZH5h8knl2GnGCdnh6Hnh6\
+an1agAgOcvoE+hYV2uYF9Qb7EvsmsmCqVqJMGaFMlkhEGid2MmE9HmA8UlBCYghiQjN3JBv7DSep\
+xz0fPjEFIAb3EvcmBTfxYfcM9x0a76DktdgetdjGxte2CLXW4aDsG/cL721O3B8uIBVzqmyjZJ4I\
+nWRjlGIbPElsTVYfSkBr+wH7IRo2mD+kSR74lfhpFfxs/LYFRr/TaOYbxL2aqbgfuKmvu6bNCKbM\
+mNjkGuJ92G7NHvxj+FoVrgf3TfccBbrKwKK2G5+chH2ZH5h8knl2GnGCdnh6Hnh6an1agAgO+8z4\
+I/rdFWH3SQV+wYWtmhqik6CbnB6cm6GTpxvKqnBWfINnfFQfWftMBQ77zPgl+t0VYfdJBX7Bha2a\
+GqKToJucHpyboZOnG8qqcFZ8g2d8VB9Z+0wF+0X3IRVtgHF2dh51dXGAbhttcZahdh91oIClqRqq\
+lqWhoR6goKWWqRuppYB2oB+gdZZxbBr4pxZtgHF2dh51dXGAbRttcZahdh92oIClqRqqlqWgoR6g\
+oKWWqRuqpYB2oB+gdZZxbBoO93H4/BwFcxX3OQb4RRz7cqBQoWWheBl4oKiBsBuhN/yF3waMm5uM\
+mhuroI6SlR+emJWbnhqZgq14wh4v96IF/I4G+wD7wgWAbIV1fxp+j3+SgR6SgZSEl4YIhpeeiKYb\
+nZqLipYfN/w13weyp4+TnB+ckpmYmJyYnJuuoMII95j4CxX4Qwb7bPjsBfyF+zoVYfdJBX7Bha2a\
+GqKToJucHpyboZOnG8qqcFZ8g2d8VB9Z+0wFDvx++Gf58xVof25ych5ycm5+aBtpbpekch9yo3+o\
+rhqwmKmmpB6jpqeXqRuuqX9ypB+jcpdtaRoO+DH3ZxwFcxUcBG4G9xf8AzNqdcdzunGuGXGtbKhn\
+o2ajZ5tmkwiTZkiPKhv75vyT9zwGybqWoKsfqqChpZeqCJSikLTFGqLt/PgpwAe6iKyEoB6EoH6e\
+eJ54nXeXdpIIknVmjlcb+zz8WgZcjW6QgR6PgJKElYYIhpWmibgb92UG9wnmmafNH8ynxba9xbK4\
+scuv3uZrGPsw/EkFHPtn37MGuqiOkZYfnJSZmZSeCJKYjqi4GvpUB7aHqIKaHoKafJZ2kwiQgGON\
+Rxv7WvuZFWH3SQV+wYWtmhqik6CbnB6cm6GTpxvKqnBWfINnfFQfWftMBQ741fdnHAVzFfiuNmYG\
+YG2Hg3kfeIN+fYR3CIV8iGxcGvwZ+Wf4Dwe+iaqIlh6GoH+bepYIlnlwkGcbVOD4qjZbBmZwh4N8\
+H3uCgICFfQiEfIhsXBr+SgdWjmqSfR6SfJiBn4UIh5ezic8bN/yq37IHvKyOkpwfm5KVlZCaCI+W\
+ja/HGvhF/Wf8UQdWj2qSfB6SfJiBn4YIh5q0idAbN/yu360Hv6yOkZgfmJCVlpObCJKbj6e0GvpV\
+B7aIqYScHoScgJd8kwiTfHKPaBtTBvta+5kVYfdJBX7Bha2aGqKToJucHpyboZOnG8qqcFZ8g2d8\
+VB9Z+0wFDvvx92ccBXMV+Ko2YgZkb4aAeh96gH58g3gIg3eHZVIa/hcHXo9rlHgelHiXfZuCCIKa\
+p4e0G7Q3/Krftwayp5CUnB+blJeYkpwIkpyPq7wa+iwHvoeuhJ0ehJx/mHuUCJN6b49kG18G+1r7\
+mRVh90kFfsGFrZoaopOgm5wenJuhk6cbyqpwVnyDZ3xUH1n7TAUO+Gb52xwFixX3E/cHbE7yH/cD\
+SeE1xyIIxiKp+w77Hxr7a0j7Q/sZ+xse+xv7Gfs+R/tjG/t7+0rc9zf7Gx/7AvcZVPcy900a9x2q\
+9xDJ9wEeyfcB4+H3BsoIyvcG9xGr9xwb+wAEIzJzXEAfQFtQRV4uCF4udPsG+xwa+xah+wK4MR63\
+MMZG1lsIW9bfc+gb6N2jutIf0rrG1brwCLrwovcE9w8a9xF09wdc8x5j5FbNSbYItkk5oCkb/c77\
+mhVh90kFfsGFrZoaopOgm5wenJuhk6cbyqpwVnyDZ3xUH1n7TAUO9/D3ZxwFcxX4njZQBmd0iISB\
+H4CEhoB8Gn6ReZh0Ho6GkIOQgfek/IwY98H4n5egkpmOkhmNkYyRkhqUiZOGkh6GkYOQgI4IjIR5\
+jGwbV+D4QzYGZYxviHmGeIZ8g4CAf4B6c3Zo/A79Chj78wdYj2mUfB6TfJiAnYQIhJ21h80bN/y1\
+37UHuKmPk5ofmpOWmJSdCJGYjqq8GvfOB/wF+SRuwHKqeJYZd5VmkVaMCPta+5kVYfdJBX7Bha2a\
+GqKToJucHpyboZOnG8qqcFZ8g2d8VB9Z+0wFDvhQ+iEWqvfPBfd76/cI90P3khr3L2H3CTbbHto2\
++wCz+xUb+yj7CFooOB83KGH7DfslGvt19wj7Nfd9Kh6p+88F/MMG+xD3/OartDG7SsJkGWPC9wN3\
+9zobf+f7R9v7DuFJ6BlI52r29w4a90zO9yj3GfcDHvcD9xn3OsL3Whv3UvcxVyT3EB/3ECTJ+x/7\
+Qxr7ufsv+2H7yvsLHn8vBfco85ytyB/HrMHPvPHmaxj7EPv8BRz6UPqtFWH3SQV+wYWtmhqik6Cb\
+nB6cm6GTpxvKqnBWfINnfFQfWftMBQ78mfeQ+ckV+0HeBuuV5KfeugjUBor9awVAklmacx5zmaZ/\
+shunrZektB8pB3BZWH5WG1dflqBoH2igc6aArAiAq4XB1hrF+eMVYfdJBX7Bha2aGqKToJucHpyb\
+oZOnG8qqcFZ8g2d8VB9Z+0wF+0X3IRVtgHF2dh51dXGAbhttcZahdh91oIClqRqqlqWhoR6goKWW\
+qRuppYB2oB+gdZZxbBr4pxZtgHF2dh51dXGAbRttcZahdh92oIClqRqqlqWgoR6goKWWqRuqpYB2\
+oB+gdZZxbBoO93H4/BwFcxX3OQb4RRz7cqBQoWWheBl4oKiBsBuhN/yF3waMm5uMmhuroI6SlR+e\
+mJWbnhqZgq14wh4v96IF/I4G+wD7wgWAbIV1fxp+j3+SgR6SgZSEl4YIhpeeiKYbnZqLipYfN/w1\
+3weyp4+TnB+ckpmYmJyYnJuuoMII95j4CxX4Qwb7bPjsBQ73694cBXMV+SsG9zb3A4R8xx/kdtFk\
+v1MIvlOlSDwaUn1ZcF4ecF5jZFdranZdelJ81H7Ce7F4xG+5Y6xXCKxXnFBKGkx7UGpVHmpVXV9Q\
+aE9oRXU8ggiBPDmGNxv9T9+6BriqkpmcH6Oel6u4GvpdB7iHqoScHoScgJd8kgiSfG+PYRtcBvf/\
+cRX8k/eTB/cL3ZGWtx/Qnb+qsLYIr7adw88axHu7arIearFepVSZCJRnQI/7BRv7xvzzFfxeB12N\
+cI+CHpB/loObhgiIlquJwBv3HAb3G+uTmsUfxJq8qrS8CLS7n8XPGsR7vmq4Hmq3XatRnwieUCSV\
++ykbDpv3AxwFcxX6Zgb3FfwCNGpZ9whV2FCxGbFQK577GRv7aP7ABlWUaJ56Hnqer4LBG7A3/Kff\
+rQbDsJSenB+cnZSxxRr6SQfHgrF5mh6aeGuSXhtcBg7E+KscBXMV9zgG+JMc+uEFNxz7WN8H9xah\
+FfnrBvxB+ukFDvfD7RwFcxUcBG4G9xf8AzNqdcdzunGuGXGtbKhno2ajZ5tmkwiTZkiPKhv75vyT\
+9zwGybqWoKsfqqChpZeqCJSikLTFGqLt/PgpwAe6iKyEoB6EoH6eeJ54nXeXdpIIknVmjlcb+zz8\
+WgZcjW6QgR6PgJKElYYIhpWmibgb92UG9wnmmafNH8ynxba9xbK4scuv3uZrGPsw/EkFHPtn37MG\
+uqiOkZYfnJSZmZSeCJKYjqi4GvpUB7aHqIKaHoKafJZ2kwiQgGONRxsO9x/3iRwFcxX6XzYG/iMc\
++04F9+MG9yz3CKW+2x/avtLoyvcb52wY+zX8RQX+y98G+iUcBLMF+7YGKj6CeFIfUnhabmBkYGNf\
+TVw2NbUYDvhm7BwFcxX4rjZmBmBth4N5H3iDfn2EdwiFfIhsXBr8Gfln+A8HvomqiJYehqB/m3qW\
+CJZ5cJBnG1Tg+Ko2WwZmcIeDfB97goCAhX0IhHyIbFwa/koHVo5qkn0eknyYgZ+FCIeXs4nPGzf8\
+qt+yB7ysjpKcH5uSlZWQmgiPlo2vxxr4Rf1n/FEHVo9qknweknyYgZ+GCIeatInQGzf8rt+tB7+s\
+jpGYH5iQlZaTmwiSm4+ntBr6VQe2iKmEnB6EnICXfJMIk3xyj2gbUwYO+Gb52RwFixX3UPc3SPsZ\
+9x0f9x37Gc/7QPtmGvtqSPtD+xn7Gx77HPsZ+z5H+2Mb+2n7QNH3H/sXH/sX9x9J9z/3XRr3IKz3\
+E873Bh7N9wXm4fcJxAjE9wj3C6j3DRuN+wAV+xMlakk+Hz5IVT5sNAhsM3sp+wEa+0+6+ynq+wEe\
++wLp9wpU9yMb9y/3Dcn3EeIf4vcQtvcn9z8a9zNm9yBA9w8e9w9A+w3I+zsb++b7xxXsYgZEnF+s\
+eB54rLSBuxvsBri0lJ6uH66enLjSGrTs/Mgq0ge+f65yoB6gcl2VShsqBlRggHVuH210fF9KGl8q\
+Bw78cNwcBXMV+Ko2YgZkb4aAeh96gH58g3gIg3eHZVIa/hcHXo9rlHgelHiXfZuCCIKap4e0G7Q3\
+/Krftwayp5CUnB+blJeYkpwIkpyPq7wa+iwHvoeuhJ0ehJx/mHuUCJN6b49kG18GDvfD8hwFcxX4\
+rjZlBl9shoB5H3mAfnuEdAiFeohwZRr8owf4oPi/pqicnpCUGZCUjZSUGpeFlICRHpF/co5kG2vg\
++Ig2BmSMZ4ZrgmuCcn94fWJtbnN6efwK/BMY+D/8yrJYqWiieBmieKJ9o4QIg6Owh74bN/zk364H\
+sqOMjZIflo6UkJKTCJKTjpOUGpx0s13JHvvP+ED7RvtMBfufB12QbJR6HpR6mn+egwiFmrSIzBs3\
+/K7ftQe1qI+Umh+ak5eZlJ4Ik56Prrwa+i0HvIesg50eg5x/mHySCJJ8ao9ZG2wGDvdx+SUcBL8V\
++/z+fAWAbIV1fxp5kX2WgB6WgJWElIqUiquJwIoIN/w13wfCsJSenh+enaK2pM74RxwEgxj3OQb4\
+RRz7cp9UoGagdhl2oKiAshuiN/yF3waMmaCMpxu+jKSesRqcgq14vx4O+VzrHAVzFfhNBvgw/uX4\
+JfrlBfg+NmcGYG6HhHwffIR/foJ5CIJ4h21hGv4sB1GPZZJ6HpJ6ln6cggiCm6mGtxuvN/yp37EG\
+raSOkJsfmpCYlJaYlZeRmIyYCI6mjaGaGvqXB/xbHPsgBSgG/F8cBM4F/nEHWY9plHoelHmYfZ6C\
+CIGdrIa6G6s3/IDfpwa6rZCVoB+flZmZlJ4IlJ2Pr8Ea+iMHvoeshJwehJt/l3qTCJN6bI9gG1sG\
+Dvfr4xwFcxX4QAb5D/6qBfmwB7qGrYKgHoKgfZp4lgiWeHCQZhtn4PhnNnIGYm+IhHwfdoJ8eoFy\
+CIByhmleGhz7h/sNB/2RHATpBf54B1SNaY5/HpB8k32Yfpd+mYOchpyGrIm+igg3/G3fpAe7rJCU\
+nB+clJiblKIIlKKQscEa+ggHwoqtiJcehaKAm3qVCJV6aZBYG2cGDve891n6WhUzrOr4IAX6ugbp\
+/CA0anDcZsletRldtWGlZJUIlWRHkCob+1kGKEKEfV4fXXxhb2VhZGBrUnJDCPdYyRXsdAY0nlOw\
+ch5ysLl/xBvsBsG2lJ6qH6qdn6GSpAiSpI+xvBqi7Pz4KsAH23i9ZZ8en2RdlVQbKgZCWHpqbh9u\
+an1WRBpxKgf79MAV5quuNrFLtF4ZtF67ZcNuCG3D43z3DRv3MQbo1ZScwh/CnMGuwb7BvrnVsuzm\
+axj7C/xpBRz7gwYO+Gb52xwFixX3E/cHbE7yH/cDSeE1xyIIxiKp+w77Hxr7a0j7Q/sZ+xse+xv7\
+Gfs+R/tjG/t7+0rc9zf7Gx/7AvcZVPcy900a9x2q9xDJ9wEeyfcB4+H3BsoIyvcG9xGr9xwb+wAE\
+IzJzXEAfQFtQRV4uCF4udPsG+xwa+xah+wK4MR63MMZG1lsIW9bfc+gb6N2jutIf0rrG1brwCLrw\
+ovcE9w8a9xF09wdc8x5j5FbNSbYItkk5oCkbDvhSHASJHAUHFf1S/r4GTJJlmn0efZmyhMsbsDb8\
+ruCtBsaykZicH5yXk67GGvpVB8WDsXucHpx7bJRcG1PgHAWPNlsGWWqCeXwffHmDZlIa/koHTJJk\
+mX4efZmyhMwbqTb8qeCyBrysjpGbH5uRlZWQmAiPmI2wxxoO7eccBXMV+LsG9zv3CIB2yh/acs1f\
+v04Ivk6lPSwaOndGZFAeXERRWUhuCG1HIHz7JRv7k/v6BlaOaZF9HpN4ln2ZhAiDmaeHthu7N/yw\
+36wGuaqPk5wfnJKXl5OcCJKbj6q4GvpOB7eIqYSaHoSaf5Z7kgiSemuOWxtqBvgBcxX83fdrB/cB\
+15Wetx+2nq+tqLsIqLqZw8sa0XrGaroearpdqlKcCJZjPZH7CBsO9x/5P/mFFfxJ/O8F+B4G9zb3\
+DKbC2h/Zws7iwvcN52sY+zT8YwX+2N8G+GP5DfxL+OUF4PozB/c9/AQ1YVD3A0raRbgZuEUhofsj\
+G/uqBg7t9xEcBaIV0QaVXAX57AaTugXUBvcn/C4xa2D3AVfYULgZt1A/oS4bZHSKiIQfhIiGhYiE\
+CIiEiXNkGv5cB12ObJB7HpB7kn+UgpSCmIWciJuHr4nEigg3/K7fB8aMsI2YjqKSnJeVngiVnpCt\
+vRr6cQeqip2Ikh6IkoWQg48IjoJ6jXEbQlGCeGAfX3hibGReZF5qUXBEMasYDvcfkBwFcxX4njZQ\
+Bmd0iISBH4CEhoB8Gn6ReZh0Ho6GkIOQgfek/IwY98H4n5egkpmOkhmNkYyRkhqUiZOGkh6GkYOQ\
+gI4IjIR5jGwbV+D4QzYGZYxviHmGeIZ8g4CAf4B6c3Zo/A79Chj78wdYj2mUfB6TfJiAnYQIhJ21\
+h80bN/y137UHuKmPk5ofmpOWmJSdCJGYjqq8GvfOB/wF+SRuwHKqeJYZd5VmkVaMCA74c/luHAR2\
+Fa4HxIOve5sem3pkk00bauD4sDZqBk1kg3t7H3p7g2dSGmgH96WG90pg5joI5jm4IPsZGvsdWvsA\
+KT4ePin7RmT7lxtnB1KTZ5x7HnubsoPJG6w3/LDfrAbJspOcnB+bm5OvwxqvB/urkvtLtzPbCDPa\
+X/T3FRr3F7f05Noe5Nr3S7b3qZMI91L9pBX3UIz3EqjKxAjKw6rf9wUa9wJs3kzEHkzE+xGo+1GN\
+CPtS/ToV+ToH+1WF+xNrT1EITlBtOCAaIKs6zFQey1T3EW33TYYIDvfDzRwFcxX4qTZhBmNyiIaA\
+H4CGhoJ/GoONg4+DHo+Dl3qfcPeZ+/gY97H3+AWmrJilnBqWhpOBkR6RgHWOahtY4PhZNgZVZIWA\
+dB9zgGpsYVj8APxJGPhB/MemZ6JynnwZnnydgJyGCIWcqIizGzf8q9+1B7SmjpGWH5aQkJSYGpKJ\
+k4eTHoqOfZ5yrvvT+D4Y+/H8S3Zxf3uIhRmHhImEhBp+k4KahR6HlaOJsBu1N/xY3wa0qo6Rnh+e\
+kJ6VnpqemqSkqbD4OfiPGPwK+IFmvGyqdJcZl3NlkVYbDvkG+TAcBR4V4PhfNgdXaIV+eR94foJj\
+SBr85uEH7tOaqrgfuKqqtprECJrDk+f3FBr4Aff+NlMHXGuCeHwfe3iDZlQa+yEH+0eA+wh0Vh50\
+Vl5aSF8IXkckdfsdG/sT+4wGTJJkmX4efZmyhMwbqTb8qOCyBrysjpGbH5uRlZWQmAiPmI2wxxr3\
+gPsTB/seJKG3Rx9Gt17AdsoIdcmA9wT3NRr3IQfFg7F7nB6ce2yUXBtT4Pf+/AEG+ymSLZpjHppi\
+pmWzZwhmstd59wMb4fjUBsKIr4WcHoWcf5d4kwiTeG2PYRsO+Cn5+xaq988F93vr9wj3Q/eSGvcv\
+YfcJNtse2jb7ALP7FRv7KPsIWig4HzcoYfsN+yUa+3X3CPs1930qHqn7zwX8wwb7EPf85qu0MbtK\
+wmQZY8L3A3f3Oht/5/tH2/sO4UnoGUjnavb3Dhr3TM73KPcZ9wMe9wP3Gfc6wvdaG/dS9zFXJPcQ\
+H/cQJMn7H/tDGvu5+y/7YfvK+wsefy8F9yjznK3IH8eswc+88eZrGPsQ+/wFDvxw3BwFcxX4qjZi\
+BmRvhoB6H3qAfnyDeAiDd4dlUhr+Fwdej2uUeB6UeJd9m4IIgpqnh7QbtDf8qt+3BrKnkJScH5uU\
+l5iSnAiSnI+rvBr6LAe+h66EnR6EnH+Ye5QIk3pvj2QbXwbv+CMVrKh/c6Mfo3OXbmkaan9uc3Me\
+c3Nuf2obam6Xo3Mfc6N/qKwarZeoo6Meo6Kol60b9+IWrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2ob\
+aW6Xo3Qfc6N/qKwarZeoo6Meo6Kol60bDvcfkBwFcxX4njZQBmd0iISBH4CEhoB8Gn6ReZh0Ho6G\
+kIOQgfek/IwY98H4n5egkpmOkhmNkYyRkhqUiZOGkh6GkYOQgI4IjIR5jGwbV+D4QzYGZYxviHmG\
+eIZ8g4CAf4B6c3Zo/A79Chj78wdYj2mUfB6TfJiAnYQIhJ21h80bN/y137UHuKmPk5ofmpOWmJSd\
+CJGYjqq8GvfOB/wF+SRuwHKqeJYZd5VmkVaMCPh3+CUVrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2ob\
+am6Xo3Mfc6N/qKwarZeoo6Meo6Kol60b9+IWrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obaW6Xo3Qf\
+c6N/qKwarZeoo6Meo6Kol60bDu36ovpZFf1bB1OOZpB4HpB4lXybggiBm6qGuBu2Nwb773sF9zMH\
++wP7CfsNU/sRG/sNJrzsPB887GP3CPcdGvckt/cO4vAe7+L3Ar33Fxv3EvcAWCblH8v3FAVL/WcV\
+9/oH6m3SULkeuE9NokwbMkBoRE4fTkRtKfsSGvsLpy3CRh5Gwsto1Bvx9L3u9wAf+5/56xVh90kF\
+fsGFrZoaopOgm5wenJuhk6cbyqpwVnyDZ3xUH1n7TAUO+2X4/vitFTdrB/sMOXtqXh9eanVdTxpS\
+oV62aR5otsh62xv3KvcTz/cc8h/LV0YuRUlDZhllQzN4Ihv7Fyalv0QfRL9nztwa9xfn4PdMsB4o\
+qkmsa7AIa697trwa0qvHy7wevMrmo/cKG/bheGbOH85mrF9aGnSDdnx5Hnl7dYJvG3B2kZZ8H3yW\
+eaF2rHasd6J2mQiZdm2SZRtQXXxtax9rbHtjWhpZnmCyZh5mstl49wobKfjEFWH3SQV+wYWtmhqi\
+k6CbnB6cm6GTpxvKqnBWfINnfFQfWftMBQ73ENb5yRXfB+aS4afevAjR+1IG9xP3JfcfyvcXG9LI\
+fGy8H7xsrGidYgidYpRTRBr+7vs9+q8H1IW/gKkegKl2pG2eCJ5sZZRcG/sJ+whU+wH7CR/8YQdc\
+jmqSeB6ReJZ9m4MIgputh78bpzf8lN+kBrysj5SdH52Tl5eRmwiRmo6zyhr4zgf4QPeoFWH3SQV+\
+wYWtmhqik6CbnB6cm6GTpxvKqnBWfINnfFQfWftMBQ78mfeQ+ckV+0HeBuuV5KfeugjUBor9awVA\
+klmacx5zmaZ/shunrZektB8pB3BZWH5WG1dflqBoH2igc6aArAiAq4XB1hrY+eMVYfdJBX7Bha2a\
+GqKToJucHpyboZOnG8qqcFZ8g2d8VB9Z+0wFDuCe+gUV3wf4D5oF/KAH+ySjLLtdHl27zXTgG8K9\
+lqG2H7agq62guAifuJXV8Rr3sgfFgrF6nB6ceWWUURtG3wb4D5oF/GwH+xmAJ3ZGHnVGYFRKYQhg\
+SjJ2+wQb+xMrn7JKH0qyXsB0zQhzzH/09yUa934Hw4KweJ4enXhllFQb+Lb3bBVh90kFfsGFrZoa\
+opOgm5wenJuhk6cbyqpwVnyDZ3xUH1n7TAX7RfchFW2AcXZ2HnV1cYBuG21xlqF2H3WggKWpGqqW\
+paGhHqCgpZapG6mlgHagH6B1lnFsGvinFm2AcXZ2HnV1cYBtG21xlqF2H3aggKWpGqqWpaChHqCg\
+pZapG6qlgHagH6B1lnFsGg7t+qL6WRX9WwdTjmaQeB6QeJV8m4IIgZuqhrgbtjcG++97BfczB/sD\
++wn7DVP7ERv7DSa87DwfPOxj9wj3HRr3JLf3DuLwHu/i9wK99xcb9xL3AFgm5R/L9xQFS/1nFff6\
+B+pt0lC5HrhPTaJMGzJAaEROH05EbSn7Ehr7C6ctwkYeRsLLaNQb8fS97vcAHw7e9+b3DhX8zPs7\
+HAWDB/cFluKiyB6iyLnD0r0IvNHhpPEb9wfqbVDWH9ZPsDggGvsvPvsK+y44HveIafcO+w/7aRr7\
+DWMlOzoeOjr7BWL7Jxv7KfsEvOxAH/c2+TsV3pDHlrCasJqpqaK4CKK4lsjZGvdJP+X7LFBaemhk\
+HmRocmOAXAiAXIZDLBr8oQf7H6kpx1EeUMbXbugb91Hp8/dj237JcLcfcLZjq1eeCJ5WLpT7GhsO\
++yL5CX4VoSiWOUwa+yNhRDZucZaidR51ooCvvhq/ody49wMe+9r51Hi8dqt0mhmadGeSWRvfB/e1\
+mvfE/eP3PfgcBa3ZnMWwGp2Fn36iHm2+fLasGrOXqaKeHp6ip5SqG7Crf3OlH6VzmGdcGmGCXnlc\
+HnlcZztW+wQIDnL4QfpJFfs1ujvX9hrXrc7QxR7F0O2o9xMb8N94Zc4fzmWsX1kadIN2fHkeeXt1\
+gnAbcHWRl3wfe5d5oXiseKt3onSaCJl0bJJkG1VdemllH2RoeGBWGlecZK5yHq1yxXTcd/cTbeZq\
+wmjCaLhTrkAIrUCcNy4a+ydf+w4zLB4sMvsNW/suG/s3+w6+8DofOvBj9wj3Fxr3a/cI9zH3e/Ae\
+9yVSFTxGaUdQH1BHbSL7IRr7F6Umv0QeRL/TZ+cb69Wy2r8fv9ml8PcPGvcScO5V1B7TVUOvMBsO\
++2X4/vitFTdrB/sMOXtqXh9eanVdTxpSoV62aR5otsh62xv3KvcTz/cc8h/LV0YuRUlDZhllQzN4\
+Ihv7Fyalv0QfRL9nztwa9xfn4PdMsB4oqkmsa7AIa697trwa0qvHy7wevMrmo/cKG/bheGbOH85m\
+rF9aGnSDdnx5Hnl7dYJvG3B2kZZ8H3yWeaF2rHasd6J2mQiZdm2SZRtQXXxtax9rbHtjWhpZnmCy\
+Zh5mstl49wobDvwc+LwcBPMVf1ZOhUUb+14mt+OjlJ+cnB+cnKSTqxuztH1utR9ixsl3zBv3B/cQ\
+psD3GB+Tc2VO+zf7Afsa+yEh+0EZIftBVvst+xcaS5lcqG0eqG3MZPJc9lrVZrVztXKrbaFoCKFo\
+ll9XGiZmNUFGHkZAJmj7Exs4RZimVB9UpW+stBrCqafIrKl5aKceZKq2eMIbyL2dr7Ifsq6evMga\
+vXuxbKUea6REsPsBvCa4RLFiqGKobLB0ugh0un+/xBr3AbL3Edr3IR7a9yH3Efco90H3MAgO9xDW\
++ckV3wfmkuGn3rwI0ftSBvcT9yX3H8r3FxvSyHxsvB+8bKxonWIInWKUU0Qa/u77PfqvB9SFv4Cp\
+HoCpdqRtngiebGWUXBv7CfsIVPsB+wkf/GEHXI5qkngekXiWfZuDCIKbrYe/G6c3/JTfpAa8rI+U\
+nR+dk5eXkZsIkZqOs8oa+M4HDpH44xwFuxX3NvcRQ/sl4h/i+yW3+077eBr7c1v7Qir7Ex77Eyr7\
+EEv7Kxv7IfsKyfcQLB8s9w9b90f3fhr3lLz3VOz3FR73FOz3Dcv3JRv3yf0xFfgRdiL3UvtPGzlG\
+XjJTH1MxafsmfvtdCIf7ABWM+2mp+y/GKQgoxtRa5Bvg1bnoyR/I56z3Mo73dQgO/Jn3kPnJFftB\
+3gbrleSn3roI1AaK/WsFQJJZmnMec5mmf7Ibp62XpLQfKQdwWVh+VhtXX5agaB9ooHOmgKwIgKuF\
+wdYaDu3H+cwV3AffkOOn6L4I2PycBvgD97gFxbmoqpwanHGUWB5W3/iPNwZSXoWAah9qgGN0XWj7\
+tvtxGPfq/Aq6WLFrqH4Zfqi1hMEbN/u2B/wz+Hf7N/sRBfsXB0yUY5x7HnucsIPDG7A3/JffBsWM\
+sY6ekZ2QmZeWngiVnpCvwBr43gcOSffoHAURFftv4Qb3A5jjp8y2CNcG+Ewc+y+fVKBkonUZoXWs\
+gLaKCDf8X9+nB7Woj5KbH5qSk5idGp6Ep32yHvtf+Mn7gPyyBXddgWdwGmqqe8geuzf8H98Gto2p\
+k52anZmmuK/X98n5GhgO+yKF+gUV3wf3tZr3xP239z33+gWt0pzCshqchZ5+oh5tvny1rBqvl6Wi\
+nB6coqeTqhuwqoB2ph+ldphqXxpphGV+YR5+YGU5TPsP+5H8hRj7DAb71fmPdr11q3aaGZl1Z5JZ\
+Gw77zPhp+hkV+xuvMrJftghetXW/yBrfsNHWwx7C1u+n9xEb4Nd/c80fzHOsbGQad4R4fHgeeHx0\
+gW4baG2aqHEftmRUoUYbSFZ4ZmMfY2V3XlYaTahbxWkexGnecPcBdt97wH6hgAihgJZ3bxp2hHl9\
+fB58fXmEdht6dJKZbh+mVliZWxsyRWtLWB9YS3FANBpDnVOuZB6uZMth5l73KUfrVrRmCLRmoFRC\
+GiZmNUFGHkZAJmj7Exs4RZimVB9UpW+stBrCqafIrKp5aKYeZKq2eMIbyb2dr7Ifsa+eusYaun+u\
+cqIecqJVqjmx+wjBObZarFqrY7RtvghsvnzEzBrrrubQ4B7Q4PTC9yKmCA5y+Nf6cRXt4Hdi0x/S\
+YsRQtD0ItD2gMicaJ3YyYT0eYD1SUEJiCGJCM3YmG/s1+w298DofOvBi9wr3HBruoOS12B612MbG\
+17YItdbhoOsbgyoVP0ttT1YfSEBq+wD7Ixr7HacixEMeS77Ra+MbxL2aqbgft6mvu6bNCKbMmdjk\
+GuJ82G7QHnTCabVeqgipXVeaUhsO91zS+fUV7xwEyydNB1tthH5/H399hWZQGvx1B0SSW5p0HnSZ\
+pn+yG6atl6S0HykHcFlXflYbVF6WoGofaqB0poCsCH+shcTdGvh8B76Fq36YHph+bZJcG/vcBltt\
+hH5/H399hWZQGvyqB1iRaph+Hn6YqYS6G8w3/JXfyQa7qZKZlx+XmZGvxhr4qwe+hat+mB6Yfm2S\
+XBsOmfe0/FIV+zv5pQb3Lpf3CaTbHqTawNHexwjH3u6p9wkb9zH3DVoq3h/eKbX7DPsiGvsnX/sO\
+MyweLDL7DVv7LRv7JCC66EUf99n5nBU8RmlHUB9QR20i+yEa+xelJr9EHkS/02fnG+vVstq/H7/Z\
+pfD3Dxr3EnDuVdQe01VDrzAbDvtL+hH7ARUkYDQ1Rx5GNfsGaPshGzpFmKVSH1Gkbq22GsKpp8is\
+qXlopx5kqrd4xRvVyp2uvh++rqS8yBqtgah4pB53o2OkT6X7MtD7Ab5QrU+tXbZqvghqvnrJ0xr3\
+ILr3DujyHvLo9xO+9zQb9wbqcFXXH9dVsVVVGnCDdHx5Hnh8dYJwG3N4kZh8H3yYeqJ5rXiweqZ7\
+nnudcpxpmwiaaWiTZhsyRGM6Vh9VOnAs+wEaOqdOwmIewmHiX/cLXvcLXtxgt2QItmOhVkoaDoT5\
+cvpZFfhDJ/uvBvcOKMj7F/s1GvseX/sJNCoeKjT7Dlr7MBv7NfsOve86HznvYvcL9x0a9yq59w7o\
+6R7p5/cLuvcnG7u/g3vCH/s0QhU8RmlHUB9QR20i+yEa+xelJr9EHkS/02fnG+vVstq/H7/ZpfD3\
+Dxr3EnDuVdQe01VDrzAbDvvz+FX59RX87wdAlFqdcx5yna5/wBvE0KfE3h8qB1A2NW0yG09ZlqBj\
+H2OgcKZ+qwh+q4TB1xr4+/un7/mEJwcO4J76BRXfB/gPmgX8oAf7JKMsu10eXbvNdOAbwr2WobYf\
+tqCrraC4CJ+4ldXxGveyB8WCsXqcHpx5ZZRRG0bfBvgPmgX8bAf7GYAndkYedUZgVEphCGBKMnb7\
+BBv7EyufskofSrJewHTNCHPMf/T3JRr3fgfDgrB4nh6deGWUVBsO93H4+HMV+zCN+wSjR7lGuVnK\
+bNoIbNp74eca9ze59xDm3h7m3vcOtfcrjAgpB/thhST7G/udGvsboyW7Rx67R+Rp9xeKCPhnB/cB\
+k9+cxB6bxK26wLAIr8DOndwb9wvnYjrMH8w6q/sE+yMa+0Nk+xw9Kx49KvsfWvtbiQj8Ovs9B/c9\
++J8V9wmM4qvCygjCyqb3DvdLGvN8323KHspsXqtOG1xkeWhuH25nfC/7KRoOs6b6WRX3vpr3yPwX\
+9zH3QwWqrpqkmhqkb5hSHnff+D83BlmKY4NsfGx8Zm1eX/uD+34Y97v73b5Sr2iggBl/oKyFuBs3\
++6wH+9/4O/tc+24FZWJ4bXkadqKAuB6zN/wn3wa+r5KZoh+imb672933ePd6GPuQ97VbwmarcpYZ\
+lXJgkFAbDvgj+V/6WRX3Pv4FBvcBjNmZuqa5pqq1nMUInMWT9vcwGvdYB7yFqX6YHph+a5FYG2Pf\
+BvfYmgX8Kgf7OX/7DnI+HnI+WlFEZkNl+wV2+y+ICPw6+z74Ogf7Fo4qmEqlSqRZrmm5aLl1wYHJ\
+CIHJhuv3Fhr3YAe1hqeBmB6YgXGSYBtQ3wb315oF/CoH+zOUIJ1THpxSrGK6crpy13z1hggO93H4\
+3/pxFSYH+w05ZT5fH18+dfsA+yAa+wGaMqhGHkaouWjJG7awnK2qH6qtmu33Nhr3Dvc8+w4H+zaa\
+KappHmmqsHq2G8q5r9OoH6jSmef3BBr3MXL3A1nKHlnKO6v7AY0I8Af3TPcXXTDZH9kvsvsT+zca\
++zBq+w1KNB40STFg+wYb+wc3xPcFWB/7BVc4UvsHG/sHMbXgSh9K4Gr3CvcsGvc8svcX2uge6Nr3\
+Frn3ShsO/Jn3kPnJFftB3gbrleSn3roI1AaK/WsFQJJZmnMec5mmf7Ibp62XpLQfKQdwWVh+VhtX\
+X5agaB9ooHOmgKwIgKuFwdYaSPr8Fayof3OjH6Nzl25pGmp/bnNzHnNzbn9qG2pul6NzH3Ojf6is\
+Gq2XqKOjHqOiqJetG/fiFqyof3OjH6Nzl25pGmp/bnNzHnNzbn9qG2lul6N0H3Ojf6isGq2XqKOj\
+HqOiqJetGw7gnvoFFd8H+A+aBfygB/skoyy7XR5du8104BvCvZahth+2oKutoLgIn7iV1fEa97IH\
+xYKxepwenHlllFEbRt8G+A+aBfxsB/sZgCd2Rh51RmBUSmEIYEoydvsEG/sTK5+ySh9Ksl7AdM0I\
+c8x/9PclGvd+B8OCsHieHp14ZZRUG/gg+IUVrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obam6Xo3Mf\
+c6N/qKwarZeoo6Meo6Kol60b9+IWrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obaW6Xo3Qfc6N/qKwa\
+rZeoo6Meo6Kol60bDnL41/pxFe3gd2LTH9JixFC0PQi0PaAyJxondjJhPR5gPVJQQmIIYkIzdiYb\
++zX7Db3wOh868GL3CvccGu6g5LXYHrXYxsbXtgi11uGg6xuDKhU/S21PVh9IQGr7APsjGvsdpyLE\
+Qx5LvtFr4xvEvZqpuB+3qa+7ps0IpsyZ2OQa4nzYbtAedMJptV6qCKldV5pSG4H3YRVh90kFfsGF\
+rZoaopOgm5wenJuhk6cbyqpwVnyDZ3xUH1n7TAUO4J76BRXfB/gPmgX8oAf7JKMsu10eXbvNdOAb\
+wr2WobYftqCrraC4CJ+4ldXxGveyB8WCsXqcHpx5ZZRRG0bfBvgPmgX8bAf7GYAndkYedUZgVEph\
+CGBKMnb7BBv7EyufskofSrJewHTNCHPMf/T3JRr3fgfDgrB4nh6deGWUVBv4rfdsFWH3SQV+wYWt\
+mhqik6CbnB6cm6GTpxvKqnBWfINnfFQfWftMBQ73cfjf+nEVJgf7DTllPl8fXz51+wD7IBr7AZoy\
+qEYeRqi5aMkbtrCcraofqq2a7fc2GvcO9zz7Dgf7NpopqmkeaaqwerYbyrmv06gfqNKZ5/cEGvcx\
+cvcDWcoeWco7q/sBjQjwB/dM9xddMNkf2S+y+xP7Nxr7MGr7DUo0HjRJMWD7Bhv7BzfE9wVYH/sF\
+VzhS+wcb+wcxteBKH0rgavcK9ywa9zyy9xfa6B7o2vcWufdKG+L3ABVh90kFfsGFrZoaopOgm5we\
+nJuhk6cbyqpwVnyDZ3xUH1n7TAUO98PtHAVzFRwEbgb3F/wDM2p1x3O6ca4Zca1sqGejZqNnm2aT\
+CJNmSI8qG/vm/JP3PAbJupagqx+qoKGll6oIlKKQtMUaou38+CnAB7qIrISgHoSgfp54nnidd5d2\
+kgiSdWaOVxv7PPxaBlyNbpCBHo+AkoSVhgiGlaaJuBv3ZQb3CeaZp80fzKfFtr3Fsrixy6/e5msY\
++zD8SQUc+2ffswa6qI6Rlh+clJmZlJ4IkpiOqLga+lQHtoeogpoegpp8lnaTCJCAY41HG/hs+CMV\
+rKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obam6Xo3Mfc6N/qKwarZeoo6Meo6Kol60b9+IWrKh/c6Mf\
+o3OXbmkaan9uc3Mec3Nuf2obaW6Xo3Qfc6N/qKwarZeoo6Meo6Kol60bDvfr+V/5QhX8Uwc8ll6h\
+fx5/obSFxxs2/JngB8eyjpCeH52QmZiVngiUnpCsvBr6cQeuiKCFlB6ThHmPbBv7BTZuUlAfUFJe\
+RG04MasY9yT4LgXRBpVcBfnRBpK6BdUG9x38FTFrd8VuvWW1GWW0Y6phoAifYVCVPxtveYaAhB+E\
+gIdyZBr8Ngf3BPcE9wXD9wYb9w3pWyvPH88qrfsb+0Ma+1Vk+zE++w0e+w49I077Fxs6OKnHNh+7\
+0gVlwcx41hvozLfirh+u4p33DfcvGvc/ePcQZNce12RJsTAbMC5ZKCsfDpv3AxwFcxX6Zgb3FfwC\
+NGpZ9whV2FCxGbFQK577GRv7aP7ABlWUaJ56Hnqer4PBG7A2/KfgrQbEsJScnB+cnJOxyBr6SAfH\
+grF5mh6aeGuSXhtcBvhD91YVrgf3TfccBbrKwKK2G5+chH2ZH5h8knl2GnGCdnh6Hnh6an1agAgO\
+9+z3sfkrFZ77XMr7JPUzCDP19wVf9wwb6uqnw+kf6cLX0Mbc21QYTCk0N/sDRQhF+wP7E2j7Ixv7\
+H/sOrM4jHyPNOuJR9wAIUfZu9wv3Fhr3Y9H3Qfcf9x8e9x73H/c40PdTG/cb9wxkPvYfq+cF0gb3\
+FPxlLnJE9zo/9wI6wBnAOjalMRv7BSFgNiYfJjVP+xx2+04I+Rz7BgYO90j6oBwFcxXTBvb8Qi9v\
+UPcNPeoq0BnFOzKoKhtQV4F2XB9cdmhvdGoIdGp/aWgabJRsnW4enW6mcbB1sHTHdN5y95k+GKuC\
+unnIcMhwum+tbq1tpmeeYAieYJVcWRr7A1srKjgeOCr7EmH7Lhs8RJajTB9MokizQsZd+xkYRQYu\
++Inonq0uuD3EShnDSslb0GoIas/QetIb69+oxdMfx7ypxM0ayHW8YLIeX7I8r/sFrPuO0xj7ILQo\
+v1LKCFLKbtTdGsuexrDCHrDBxbjYsAiw2OCd5xvY1X5w0h+9eLlxtWgIDvxw3BwFcxX4qjZiBmRv\
+hoB6H3qAfnyDeAiDd4dlUhr+Fwdej2uUeB6UeJd9m4IIgpqnh7QbtDf8qt+3BrKnkJScH5uUl5iS\
+nAiSnI+rvBr6LAe+h66EnR6EnH+Ye5QIk3pvj2QbXwYO/HDcHAVzFfiqNmIGZG+GgHofeoB+fIN4\
+CIN3h2VSGv4XB16Pa5R4HpR4l32bggiCmqeHtBu0N/yq37cGsqeQlJwfm5SXmJKcCJKcj6u8Gvos\
+B76HroSdHoScf5h7lAiTem+PZBtfBu/4IxWsqH9zox+jc5duaRpqf25zcx5zc25/ahtqbpejcx9z\
+o3+orBqtl6ijox6joqiXrRv34hasqH9zox+jc5duaRpqf25zcx5zc25/ahtpbpejdB9zo3+orBqt\
+l6ijox6joqiXrRsOxPj6HAVzFfiqNlYGZ3KHhHwffIR/f4N7CIN7h3NrGv11B/sDeTRnTB5nTFJX\
+PGIIYjwudiAb+yL7BrHWNR801mDj7xq9lrKiph6moqeZrRumoYF3nR+cd5RxaxqCiHiGbh6FbYh2\
+fxpapF6+Yx5ivcx32xvNxpqowB/AqLGworcIoreWy94a+W0HvIethJweg5x/l3qUCJN6bY9eG2oG\
+Dvj2HAS4HAVzFTZcB1Vognl8H3t4g2FKGvv591EH9yDxgXbLH8p2xGC9Swi8S6Q6KRoucD1VSx5U\
+Sk9gSHUIdUj7C4D7Pxv8eOCtBsmyk5ucH5uak6/DGvpPB8aCsXqcHpx6ZJNPGzgG++j+2gWAZoV0\
+ghp8kX2WgB6Wf5WFloqViqqKvooINvw14Ae/sZWgox+in6G0nsr3qfoZGJSqkKWfGshfqjIeVOAG\
++ZL9UhX8cQdejnCQgR6QgJWFmYgIiJiticEb8daTm7sfupqzqqu4CKq4m8XQGtR5yWi9Hmi9Yapc\
+mAiXXEeRMhsO+cP6AhbgsQe8rI6Rmx+bkZWVkJgIkJiNsMca+FP85fxfB0ySZZp9Hn2ZsoTLG7A2\
+/K7grQbGspGYnB+cl5Ouxhr6VQfFg7F7nB6cemyUXRtT4PiuNmYGUGaCeXofeniCY04a/A345fgF\
+B76JrIebHoabgJh6lgiVeXCQZxtV4PiuNlwGVWiCeHwfe3iDYUka/AX3UQf3IPGBdssfynbEYb1K\
+CLxKpD0uGjJvPlRLHlNKTmBJdgh2SPsKgPs9G/sL+TwV/GAHXI5vkIEekICVhJmICIiYrYnAG/HW\
+k5q6H7qasqmsuAisuJvDzRrNesVqvh5pvWKrXJkImFtFkjAbDvhm+Vz5qhX3A/co9xnD9wkbycN+\
+cL0fvXCvaaBjCKBilU45GvwtB1GTZpx6HnqbroLBG7U2/JngswbIsZOamx+bmpO41Br3ywfWhsKB\
+rh6Arnama54InmpllF8bKPsHWyv7Fh/8TQdElV+eex56nr2D2xs2/K/gB8eyjpCeH52QmZiVngiU\
+npCsvBr6cQeuiKGEkx6ThHWPaBsgN25QUB9QUF9Gbjoxqxj3JPguBdEGlVwF+dEGkroF0wb3H/wV\
+MWty1V/LTsEZwE40pvsDG3N7hoGEH4OBh3JjGg73w/IcBXMV+K42ZQZfbIaAeR95gH57hHQIhXqI\
+cGUa/KMH+KD4v6aonJ6QlBmQlI2UlBqXhZSAkR6Rf3KOZBtr4PiINgZkjGeGa4JrgnJ/eH1ibW5z\
+enn8CvwTGPg//MqyWKloongZoniifaOECIOjsIe+Gzf85N+uB7KjjI2SH5aOlJCSkwiSk46TlBqc\
+dLNdyR77z/hA+0b7TAX7nwddkGyUeh6Uepp/noMIhZq0iMwbN/yu37UHtaiPlJofmpOXmZSeCJOe\
+j668GvotB7yHrIOdHoOcf5h8kgiSfGqPWRtsBvij91MVrgf3TfccBbrKwKK2G5+chH2ZH5h8knl2\
+GnGCdnh6Hnh6an1agAgO90gcBWccBR4VdwZdaYN6dh92enhxfGr8af6GGFwlW0xbdAh0Wld/VBtM\
+VZmnXx9fp3WvuBqkk6GcnB6cm6CTphudmoeElh+Wg553qGoIa6ioe6obp6SVnqAfoJ6muKrQzPcj\
+GPyH+a9qwHKre5UZepVnkVOOCOD4njZQB1VwfW51lHGebh/4Avzc96X44gWarJOknRqahpaAkB6Q\
+gHSNaRtX4Pg2Bvve+EEVpKCDe5wfnHqTdW4aTmRSPFYeVTwrcPsFG/sDLKbAPR89wGTEyRqnk6Gc\
+nB6bnJ6TohuinoR+mh+afZpzm2ikVKhjrHAIcKu2fcEbwLeZp6wfrKantKTAm7CapJmYCJiYnpGi\
+Gw74UhwF8Bb8VgZBVHpqZx9maXlOMhpDNtMH4nnIaK4erWhTnD4b/FPfwwa6q5Semx+anpOwwxr6\
+VQfFg656mB6YemSRUBtp4PiuNmYGTGSEfXwffH2EZUwa/r/5UvqzB8aJr4eYHoeYgZV7kgiSe2qO\
+WRtk4PipNm0GSmSEfX0ffX2EZUwa/koHUpNmmnkeeJqrgr4buwYO93H4/BwFcxX3OQb4RRz7cqBQ\
+oWWheBl4oKiBsBuhN/yF3waMm5uMmhuroI6SlR+emJWbnhqZgq14wh4v96IF/I4G+wD7wgWAbIV1\
+fxp+j3+SgR6SgZSEl4YIhpeeiKYbnZqLipYfN/w13weyp4+TnB+ckpmYmJyYnJuuoMII95j4CxX4\
+Qwb7bPjsBQ73694W4LoHtqyTmqAfoJqWqroa+l0HyIOxepwem3pok1cbXOD68Ab3FvwCNGpZ9whV\
+2FCxGbFQK577GRv77fyT95MG9xPyh4PYH9iD03fNas1qvV+sVgisVZxPSho0bj9SSh5SSkNfNHYI\
+dTT7BYD7Hhv75Pk5FfxeB1yOb5CBHpCAlISZiAiHmayJvhv3HAb3GOqSmsYfxZm9q7S8CLS8oMXP\
+Gs13w2S5HmO4V6lLmQiZSy2S+xAbDvfr3hwFcxX5Kwb3NvcDhHzHH+R20WS/Uwi+U6VIPBpSfVlw\
+Xh5wXmNkV2tqdl16UnzUfsJ7sXjEb7ljrFcIrFecUEoaTHtQalUealVdX1BoT2hFdTyCCIE8OYY3\
+G/1P37oGuKqSmZwfo56Xq7ga+l0HuIeqhJwehJyAl3ySCJJ8b49hG1wG9/9xFfyT95MH9wvdkZa3\
+H9Cdv6qwtgivtp3DzxrEe7tqsh5qsV6lVJkIlGdAj/sFG/vG/PMV/F4HXY1wj4IekH+Wg5uGCIiW\
+q4nAG/ccBvcb65OaxR/EmryqtLwItLufxc8axHu+argearddq1GfCJ5QJJX7KRsOm/cDHAVzFfpm\
+BvcV/AI0aln3CFXYULEZsVArnvsZG/to/sAGVZRonnoeep6vg8EbsDb8p+CtBsSwlJycH5yck7HI\
+GvpIB8eCsXmaHpp4a5JeG1wGDvgV99kcBR4V4Pr4NlsHWWqCeXwfe3mDZlIa/koHTJJkmn4efZmy\
+hMsbqgb3DvvpNGpt4GPLWbcZWbddpmGVCJVhQpAjG/zWBvsAPIN9Wh9afF1tYl9hXmhQb0E0rBj3\
+Dvfpw4y0kaSWGaSVoZyfop6im6iWrvep+hkYlaqQpZ8ayF+qMh75WXQV/DgG+97+wAWCb4d5ghp2\
+lHycgx6DnKyHvBv4iga+rI6Smx+akZWVkJgIj5iNsMYaDvfD7RwFcxUcBG4G9xf8AzNqdcdzunGu\
+GXGtbKhno2ajZ5tmkwiTZkiPKhv75vyT9zwGybqWoKsfqqChpZeqCJSikLTFGqLt/PgpwAe6iKyE\
+oB6EoH6eeJ54nXeXdpIIknVmjlcb+zz8WgZcjW6QgR6PgJKElYYIhpWmibgb92UG9wnmmafNH8yn\
+xba9xbK4scuv3uZrGPsw/EkFHPtn37MGuqiOkZYfnJSZmZSeCJKYjqi4GvpUB7aHqIKaHoKafJZ2\
+kwiQgGONRxsO+j0cBRrgFTb8i+CkB7yvkpmhH6GYlrPMGvefB/s/90r7uvw+BV5JdGN8GnySgJiF\
+HoWYp4i2G6E2/MHgBse6lJysH6ycs7W8zvgw+MoY+/f4FgXcQDyzOBt34PhtNgZUa4eEgh+BhIaC\
+ghp4nG+sZR74fvy+BfijB8mBs3eeHp12Z5RWG3Lg+Is2cwZUZoF3eB94doFkURr8owf4ffi+Ba2x\
+nKieGpOHk4KTHpKCao9SG+D4bTZ4Bzg8YzpAH/v3/Bb4MPzKvEa1Yax7GXqsuYPGGzb8weCgB7ao\
+jpGYH5iQkpabGpp0s17NHvu6+D77P/tKBfufB0mXY6J+Hn6iroS6Gw73SPeGHAVzFdIGrC8F2PcI\
+9xKy9xsb9yn3C2lG4x/jRrc0Iho8cEdWUh5VUkNkMXb3E3flYcFMCMBLpkI6GvsMVSggPB48+wD7\
+GmT7NBv7I/sRrtL7AB/7AdI53FLo28IYvkLUSexRCFDs8G72G/cD5KfE0B/Pw63U5BrbbM1NwB7A\
+TfsIpfs+GyTr9xcG9OKhuM4fzres0eoa523OT7Yetk5CoDUbLDNwVDwfPFRCIUj7MC6kGA74Zuwc\
+BXMV+K42ZgZQZoJ5eh96eIJjThr9qwf5Z/mhBb+JrYebHoaagJh6lgiWeXCQZxtV4PipNlsGWWqC\
+eXwfe3mDZlIa/koHTJJkmn4efZmyhMsbqjb8qeCxBrysjpGbH5uRlZWQmAiQmI2wxxr5kQf9Z/2d\
+BUySZZp9Hn2asoTKG7A2/K7grQbGspGYnB+cl5Ouxhr6VQfFg7F7nB6ce2yUXBtTBg74ZuwcBXMV\
++K42ZgZQZoJ5eh96eIJjThr9qwf5Z/mhBb+JrYebHoaagJh6lgiWeXCQZxtV4PipNlsGWWqCeXwf\
+e3mDZlIa/koHTJJkmn4efZmyhMsbqjb8qeCxBrysjpGbH5uRlZWQmAiQmI2wxxr5kQf9Z/2dBUyS\
+ZZp9Hn2asoTKG7A2/K7grQbGspGYnB+cl5Ouxhr6VQfFg7F7nB6ce2yUXBtTBvqi+JYVpKCDe5wf\
+nHqTdW4aTmRSPFYeVTwrcPsFG/sELKbAPh89wGTEyRqnk6GcnB6bm5+TohuinoR+mh+afZpzm2ik\
+VKdjrHAIcKy2fcAbwbeZp6wfrKantKTAm7CapJmYCJiYnpGiGw73w/IcBXMV+K42ZQZfbIaAeR95\
+gH57hHQIhXqIcGUa/KMH+KD4v6aonJ6QlBmQlI2UlBqXhZSAkR6Rf3KOZBtr4PiINgZkjGeGa4Jr\
+gnJ/eH1ibW5zenn8CvwTGPg//MqyWKloongZoniifaOECIOjsIe+Gzf85N+uB7KjjI2SH5aOlJCS\
+kwiSk46TlBqcdLNdyR77z/hA+0b7TAX7nwddkGyUeh6Uepp/noMIhZq0iMwbN/yu37UHtaiPlJof\
+mpOXmZSeCJOej668GvotB7yHrIOdHoOcf5h8kgiSfGqPWRtsBg73cfklHAS/Ffv8/nwFgGyFdX8a\
+eZF9loAeloCVhJSKlIqricCKCDf8Nd8HwrCUnp4fnp2itqTO+EccBIMY9zkG+EUc+3KfVKBmoHYZ\
+dqCogLIbojf8hd8GjJmgjKcbvoyknrEanIKteL8eDvlc6xwFcxX4TQb4MP7l+CX65QX4PjZnBmBu\
+h4R8H3yEf36CeQiCeIdtYRr+LAdRj2WSeh6SepZ+nIIIgpuphrcbrzf8qd+xBq2kjpCbH5qQmJSW\
+mJWXkZiMmAiOpo2hmhr6lwf8Wxz7IAUoBvxfHATOBf5xB1mPaZR6HpR5mH2eggiBnayGuhurN/yA\
+36cGuq2QlaAfn5WZmZSeCJSdj6/BGvojB76HrIScHoSbf5d6kwiTemyPYBtbBg74ZuwcBXMV+K42\
+ZgZgbYeDeR94g359hHcIhXyIbFwa/Bn5Z/gPB76JqoiWHoagf5t6lgiWeXCQZxtU4PiqNlsGZnCH\
+g3wfe4KAgIV9CIR8iGxcGv5KB1aOapJ9HpJ8mIGfhQiHl7OJzxs3/Krfsge8rI6SnB+bkpWVkJoI\
+j5aNr8ca+EX9Z/xRB1aPapJ8HpJ8mIGfhgiHmrSJ0Bs3/K7frQe/rI6RmB+YkJWWk5sIkpuPp7Qa\
++lUHtoiphJwehJyAl3yTCJN8co9oG1MGDvhm+dscBYsV9xP3B2xO8h/3A0nhNcciCMYiqfsO+x8a\
++2tI+0P7GfsbHvsb+xn7Pkf7Yxv7e/tK3Pc3+xsf+wL3GVT3MvdNGvcdqvcQyfcBHsn3AePh9wbK\
+CMr3BvcRq/ccG/sABCMyc1xAH0BbUEVeLgheLnT7BvscGvsWofsCuDEetzDGRtZbCFvW33PoG+jd\
+o7rSH9K6xtW68Ai68KL3BPcPGvcRdPcHXPMeY+RWzUm2CLZJOaApGw74UhwEiRwFBxX9Uv6+BkyS\
+ZZp9Hn2ZsoTLG7A2/K7grQbGspGYnB+cl5Ouxhr6VQfFg7F7nB6ce2yUXBtT4BwFjzZbBllqgnl8\
+H3x5g2ZSGv5KB0ySZJl+Hn2ZsoTMG6k2/Kngsga8rI6Rmx+bkZWVkJgIj5iNsMcaDu3nHAVzFfi7\
+Bvc79wiAdsof2nLNX79OCL5OpT0sGjp3RmRQHlxEUVlIbghtRyB8+yUb+5P7+gZWjmmRfR6TeJZ9\
+mYQIg5mnh7Ybuzf8sN+sBrmqj5OcH5ySl5eTnAiSm4+quBr6Tge3iKmEmh6Emn+We5IIknprjlsb\
+agb4AXMV/N33awf3AdeVnrcftp6vrai7CKi6mcPLGtF6xmq6Hmq6XapSnAiWYz2R+wgbDvfrHAS4\
+HAVzFdMG9xP8ZS5xWfZl03GwGWDGVrpMrgiuS0WcPhsxOHNbQB8/Wk5EXC4IXC5zIvsJGvsMoyC7\
+LR66LcxD3FgIWNzjcukb5OWkvugf6L7b0s/m21QYYk5eV1tgP0Y8WTlqCGo5MXspG/tt+0Tb9zX7\
+Gx/7BPcZU/cz90wa9xuq9w/J9wIeyfcB4eL3AcwIzPcB9wmr9xIbzsqCecUfxHjGbsZiCA7t9xEc\
+BaIV0QaVXAX57AaTugXUBvcn/C4xa2D3AVfYULgZt1A/oS4bZHSKiIQfhIiGhYiECIiEiXNkGv5c\
+B12ObJB7HpB7kn+UgpSCmIWciJuHr4nEigg3/K7fB8aMsI2YjqKSnJeVngiVnpCtvRr6cQeqip2I\
+kh6IkoWQg48IjoJ6jXEbQlGCeGAfX3hibGReZF5qUXBEMasYDvdIHAVnHAUeFXcGXWmDenYfdnp4\
+cXxq/Gn+hhhcJVtMW3QIdFpXf1QbTFWZp18fX6d1r7gapJOhnJwenJugk6YbnZqHhJYfloOed6hq\
+CGuoqHuqG6eklZ6gH6Cepriq0Mz3Ixj8h/mvasByq3uVGXqVZ5FTjgjg+J42UAdVcH1udZRxnm4f\
++AL83Pel+OIFmqyTpJ0amoaWgJAekIB0jWkbV+D4NgYO+HP5bhwEcxWxB8SDr3ubHpt6ZJNNG2rg\
++LA2agZNZIN7ex96e4NnUhplB/c89xd9bukf6W7TWrxGCLxGpDcoGkR+THJVHnJVZFxYZFhjUG9J\
+fEl8+wqB+z2GCGQHUpNnnHsee5uyg8kbrDf8sN+sBsmyk5ycH5ubk6/DGrIH+6eO+0u1MtwIMdte\
+9PcWGuqi27jOHrjNzLzerN6s9yGc91mNCPdS/Z4V9xWO6ZTGnMabuqyvvAivvJ3T6Rr0bd1PxB5O\
+xPsVp/tajAj7Uv00Ffk0B/tU+xRwVEwfS1RrNfsKGjecSa5aHq1avWnOeM5454H3CYoIDvfDzRwF\
+cxX4qTZhBmNyiIaAH4CGhoJ/GoONg4+DHo+Dl3qfcPeZ+/gY97H3+AWmrJilnBqWhpOBkR6RgHWO\
+ahtY4PhZNgZVZIWAdB9zgGpsYVj8APxJGPhB/MemZ6JynnwZnnydgJyGCIWcqIizGzf8q9+1B7Sm\
+jpGWH5aQkJSYGpKJk4eTHoqOfZ5yrvvT+D4Y+/H8S3Zxf3uIhRmHhImEhBp+k4KahR6HlaOJsBu1\
+N/xY3wa0qo6Rnh+ekJ6VnpqemqSkqbD4OfiPGPwK+IFmvGyqdJcZl3NlkVYbDvhS+mscBR4V4Pit\
+NmkHUGWFfnofen6DaFEa/lgHUpNmm3oeepuqg7obwgb3D/vpM2pu32TLWbcZWbddpmKWCJViQZAh\
+G/5q4LsGvayUnJsfmpyTsMMa+k0HyoSyfZkemHxkkksbbOD4qTZkBlpqiIV7H3uEgYKHfgiGfolm\
+Txr+QQdcjW+QgR6QgJSEmYcIh5iticAb+EYGv6yNj5kfmI6UkpCWCJCVjai6GvpNB8qEsX2ZHpl8\
+ZJJLGw76dfjhFfuqBiI3kZZMH0yWVaFdrl2ubbF9tgh9toTb9wka9yEHxYOxe5wenHtslFwbU+D4\
+rjZmBlBmgnl6H3p4gmNOGvsZByKUQp5jHp5irG66eQh5ut+C9wwb94L4XAa+ia2HnB6Gm4CYepYI\
+lXlwkGcbVOD4qjZbBllqgnl8H3t5g2ZSGv5KB0ySZJp+Hn2ZsoTLG6o2/Krgsga8rI6Rmx+bkZWV\
+kJgIkJiNsMcaDvqPHAYaHAUeFeD4qzZsB09lhX56H3p+g2dSGv5ZB0ySZZp9Hn2ZsoTMG6o3HPgp\
+37sGvayUnZsfmpyTsMIa+k4HyoSxfZkemXxkkksbbOD4qTZkBlpriIV7H3qEgYKHfgiGfolmTxr+\
+QgddjW+QgB6QgJSEmYgIh5iticAb96oGv6yNj5kfmY6UkpCWCJCVjae6GvpOB8qEsX2ZHpl8ZJJL\
+G2zg+Ko2YwZaa4iFex97hIGCh34Ihn6JZk8a/kIHXY1vkIAej4CUhJmICIeYrYnAG/exBr+sjY+Z\
+H5iOlJKQlgiQlY2nuhr6TgfJhLF9mh6ZfGSSSxsO+nscBiUcBR4V4PiuNmkHUGWFfnofen6CaFEa\
+/lkHUZRmnHseepyqg7gbwgb3DvvoNGpu32PLWbcZWbddpmKWCJVhQpAiGxz539+7Br2slJ2bH5qc\
+k7DCGvpOB8qEsX2ZHpl8ZJJLG2zg+Kk2ZAZaa4iFex96hIGCh34Ihn6JZk8a/kIHXY1vkIAekICU\
+hJmICIeYrYnAG/eqBr+sjY+ZH5mOlJKQlgiQlY2nuhr6TgfKhLF9mR6ZfGSSSxts4PiqNmMGWmuI\
+hXsfe4SBgod+CIZ+iWZPGv5CB12Nb5CAHo+AlISZiAiHmK2JwBv3sQa/rI2PmR+YjpSSkJYIkJWN\
+p7oa+k4HyYSxfZoemXxkkksbDvgV92UcBXMV+VQ2XAZSZ4J6fR99eYRhSBr7+feUB/cg8YF2yx/K\
+dsRhvUsIvEqkOikaIms4TE4eTE5QY1R4CHhU+wuB+00b/LDfrQbJspOcnB+bm5Ovwxr6zQciQIV/\
+Xh9ef11tXlxeXGVLbTsxqxj3JPguBdEG+K/9gRX8bQdejXCPgR6PgJSEmIcIhpinibUbxwb3Dd+S\
+mrofupqzqay4CKy4m8bSGtR5yWi9Hmi9YapcmAiXXEeRMhsO+cPnFt+sB8myk5ycH5ubk6/DGvpO\
+B8WDsXqcHpx6ZJROG2rg+LA2WwZWaIJ5fB97eINhShr7+feTB/cg8YF2yx/KdsRhvUsIvUqkOika\
+LnA9VUseVEpPYEh1CHVI+wuA+z8b+075SRX8bQdejXCPgR6PgJSEmIcIhpinibQbyAb3Dd6Smrof\
+upqzqay4CKy4m8bSGtR6yWi9Hmi8YapcmAiYXEeRMhv5O/lSFfiqNmIGZG+GgHofeoB+fIN4CIN3\
+h2VSGv4XB16Pa5R4HpR4l32bggiCmqeHtBu0N/yq37cGsqeQlJwfm5SXmJKcCJKcj6u8GvosB76H\
+roSdHoScf5h7lAiTem+PZBtfBg7t5xbfrAfJspOcnB+bm5Ovwxr6TgfFg7F6nB6cemSUThtq4Piw\
+NlsGVmiCeXwfe3iDYUoa+/n3kwf3IPGBdssfynbEYb1LCL1KpDopGi5wPVVLHlRKT2BIdQh1SPsL\
+gPs/G/tO+UkV/G0HXo1wj4Eej4CUhJiHCIaYp4m0G8gG9w3ekpq6H7qas6msuAisuJvG0hrUeslo\
+vR5ovGGqXJgImFxHkTIbDvfrHATP+SsV/R33BvkdBob3P133GTXoCOg1+wa6+yIbJDBxWDofOlc9\
++wNC+z0upBj3FPhlBdIGqy8F2PT3F7L3MRv3Yvc4SvsW9w0f9w37F8j7O/tfGvtoUPtF+wn7Ix77\
+I/sJ+z9D+3Qb+yv7Fq/S+wIf+wPSNd5N69vCGMY610boVAhT6PBv9wMb9xb3BbXg6h/q4MP3JZ33\
+YwgOHASf+GT5LhX8UQdMkmWafR59mbKEyxuwNvyu4K0GxrKRmJwfnJeTrsYa+lUHxYOxe5wenHts\
+lFwbU+D4rjZmBlBmgnl6H3p4gmNOGvwZ9/oHnvdg3Pcz9yP3BQj3Bfcj9zXD90kb90/3Nkj7Gfcd\
+H/cd+xnQ+0D7Zhr7aUn7Q/sZ+xwe+xz7Gfs+R/tjG/tf+zrL9xX7Fx/7F/cURPc6gvdfCBwEtLIV\
+9zNm9yFA9w8e9w5A+w3I+zsb+zb7ElH7BzAfMPsIXvsr+00a+0+6+ynp+wEe+wLp9wtU9yMb9y/3\
+Dcn3EOIf4vcQtvco9z8aDvfDHAVfHAVzFf1kBvsdJH1vRR9FblViZlYIZVV4TUQaQp1LsFMesFLA\
+X9Br0GrmevcGivwE/FYYbWZ3dIKCdHZyfHKACIBxboZrG3I399IG+JT5LgX3R/xCBluJbYh/HoR0\
+f3t7ggiCemuGXBtnN/ir31sGZ3ONkH8ffpCAk4KXgZaEmoedipKKrYrHCPomB7OPqJOcHpOclpia\
+kwiSmaSPrhvEBvv/cxX8ofuzBypGkZdkH1ObX6hrtghqtnvBzRrDl7qish6isauotJ4InrPHlNsb\
+Dpv5rfjXFfcBB9V2wGKrHqpiUJtAG2Zqh4JvH2+CdX56fHp7fnmDd4iEg25+WghPfGxtXBtwdpSd\
+ex96nIOjqRq3m7asth6stb2uzqcIps7ameYb4NR+ccgfyHC3ZahaCJ9plU0xGvwVB1SNaI56HpJu\
+mHaefQh8naOEqBuqr5Kath80B3tUWYNfG1xjkphrH2qYcZ92pXakfqqFrjtMQ19KcghySkp+SRsv\
+QKS9Uh9SvW7Gzhq0lrGgsB6gsKurtqe2p86k56DnoPcUn/c3nAg0BPsvdCx8ZoJCeld5bHdsd3R2\
+fnQIfnSEcnEacZNymnMemnKgeKZ9CH2mqISqG7a8laDCH8Kg0bPgxwgOcvp8HAXcFdJweEd0V29o\
+GW5naHJhfQh9YU2EOBv7MwY9TH90Wh9ac2Nga0xqTHcwhPsJmoAY9yPY9xXS90ob9zH3DFoq3x/e\
+KrX7DPsjGvsnX/sOMyweLDL7DVv7Lhv7By2lv0IfQb9WzWvcCGvbe/cJ9y0a93Ch9zi49wEet/cA\
+wtvOvgi+ze+k9xsb91EG0bmRl6IfoZeeo5quCPsU/ooV9xJw7lbUHtNVQa8uGzhGZ0NTH1JCbyT7\
+GRr7G6YlwUYeRsDSaeQb69Wy2b8fv9ml8PcQGg7E0xbgpAe8rI+TnR+dkpeXkZsIkZuOs8oa+GQH\
+yYiyhpsehpp/l3mUCJR5aY9ZG3Lf+LkG9xfphX7GH8V+u3GyZAiyZJ5cVhpUdVtgZB5gY1NwR34I\
+90xu5zv7FRpIak1JUx5TSPsab/teG/uE+f4V++T3PwfizZCUth+2lK6eqKkIqKmZsLYar36qcqUe\
+caVtnGiSCJJoUI83G/tm/DkV+7AHZ491koMeg5Khh68b9gbs05CVuR+4lbGgqasIqKuasLQasXyt\
+bakebalkn1yUCJRbRY8uGw77etUW4KQHvKyPk50fnZKXl5GbCJGbjrPKGvhkB8mIsoabHoaaf5d5\
+lAiUeWmPWRty3/miBvcP+98ya27UbMRpshlosmalZJoImWNIki4bRf0PBliPaZN4HpJ4l36bhQiE\
+m7CIxhunNgYO2GP7gxXz99gFtKuQlqAfoJagnqGnoKebqpat9yL4ZBiSoo+gnhqugKV0nB6bdGOT\
+Uxty3/o2N2cGUGaDenofenqDY00a/JEHTZNknHoeepywg8Ybrwbm+9gwa2T2VtJGsRmwRi6d+wkb\
++4cG+yQkcVlMH0xYX0pxPAj4khwEchX7Yv1IBYZ8iYGGGnmQf5SEHoSUooiwG/fbBrChj5OSH5KS\
+j6GvGvlIBw4g+jb3lhXLV1pRXF1eaRldaWBzYn4IfWJchFQbKTifs0YfPLlPx2HVCGHVduLwGvSf\
+5bTWHrTWxMbUtgi21N+g6xvSyYB1wB/AdLdqsF6wXqVXnFGUaZFfjFUI/VcGiWqKc3saN5pAqEoe\
+qEmyW7xsCGy7wnvIG7+9l6S8H7yjxrrQ0gj7FPgoFYHIfbl5qHiocaNqnAicaWWUYRthZIJ6Zh9m\
+em1zc2xybHZfeVAIDvj2+RgW4LAHva2Smp4fnpmUs80a9xcH+y/3EvuN+8cFdHCAd38agJCClYYe\
+hpWiiLAbtDb8heAGnIoFtrSZp7Mfsqano5yg98z4EBj7m/dtBcRFO6gyG9/4bDdgB3eJBWaKeYJ6\
+Gnmkbb1gHvft+7gF95cHu4ithJ4ehJ6AmXuTCJJ6bI9cG27f+IE3bgZcbIeEex97g4B+hHgIhHiH\
+aVoa+5cH9+33uAW9tqSpnRqceZRmjB53jQVg3/hsNwYyO25SRR/7m/tt98z8EJ9yqXKychlxsrJ+\
+shuQkYuMkx82/IXgtAewoo6QlR+VkJCUlhqXgJ90ph77jffH+y/7EgX7FwdLlGOdfB58na6Dvhuw\
+NgYO+1Ha+U8V9yP3zgXRBqhPBabEzZjYG/bgdmHJH8hgqlFCGvsIQDj7K1ke90ty5zr7Hxo2Z0ZD\
+Vh5WQypw+w0b+037MeD3PfsTH8u/Bfsc9wL3Ekf3IhveyZ+ysh+ysp67xBq4drRhrh6uYTSc+xkb\
+Vd/BBvdS6s73GsN4tGWmH6ZkWphPG0xRe2pWH1ZqWkpdKwgO9zPSFuCkB7irj5OdH52Tl5eRmgiQ\
+mo6zyxr4ZAfJibKGmh6Gmn+YeZQIlHlrj1wbct/4iTdxBlxrh4R8H3uEgH6EeAiEeIdoWhr8Mgf4\
+m/hOBbaDqnugHp97ZJVMG3Hf+Is3aAZUZ4J6ex97eoNjThr8kQdOk2Sbeh56m6+CwhuuNvyL4KUG\
+wLCSmqAfoJqVttMa+CUH/Jv8S4xmkXGWfBmWe5eBmYcIh5mnibUbpTYGDvcz0hbgpAe4q4+TnR+d\
+k5eXkZoIkJqOs8sa+GQHyYmyhpoehpp/mHmUCJR5a49cG3Lf+Ik3cQZca4eEfB97hIB+hHgIhHiH\
+aFoa/DIH+Jv4TgW2g6p7oB6fe2SVTBtx3/iLN2gGVGeCensfe3qDY04a/JEHTpNkm3oeepuvgsIb\
+rjb8i+ClBsCwkpqgH6CalbbTGvglB/yb/EuMZpFxlnwZlnuXgZmHCIeZp4m1G6U2Buf6yxUiMaK4\
+QB9AuGW6vRqklJ+dmR6ZnJ+SoBuuqnFWph+iXadpqnQIdKq0f74bvrSXoqofqqKmraO5CMCmqqWu\
+G6CehH6dH519lHdwGlpmXEBeHl5AMXQhGw7tyRbgtwe9rZWgnB+coJOzyBr4cQfJibKGmx6Gmn+X\
+eZQIlHlpj1kbcd/4jjduBl1sh4R8H3uEf36EeAiEeIdoWhr7lwf4BPe4BcW6qKqaGp1xlFceVt/4\
+jzcGUl6FgGofaYBjdF5o+7b7cRj36/wKuleya6h/GX6otIXAGzb8qOC0B8mqlqGPiJGElB+JjYSU\
+gJuKjYePhZL7mvfGGPs7+xEF+xcHTJRjnHwee5yug8AbrzYGDvsTfRbgB7aqlJyeH56coa+iwvfU\
++X4Y9wwG99X9j5pmnW+gdhl2n6qBths2/F/gpwe2qY+Smh+akpOZoBqchKZ8sB77d/jN+3H8zQV8\
+ZoRxfBpmqnjJHrs2Bg74AM8W4KQHuKuPk50fnZOXl5GaCJCajrPLGvhkB8mJsoaaHoaaf5h5lAiU\
+eWuPXBty3/gOBvfL/XX3wPl1BfgpN2kGU2eCensfe3qDY04a/JEHTZNknHoeepuvg8IbrTb8iuCk\
+Br+wkpmgH6CZlrfUGvkGB/v7/fMFPQb78vnOBfzhB1uOaZJ4HpJ4ln2bhAiEm6uHuxulNgYO9zP4\
+0OAVNvyJ4KQHuKuPk50fnZOXl5GaCJCajrPLGvhkB8mJsoaaHoaaf5h5lAiUeWuPXBty3/iJN3EG\
+XGuHhHwfe4R/foR4CIR4h2haGvtS+Jz3UgfTgbd2mh6admaSVhtx3/iLN2gGVGeCensfe3qDY04a\
+/JEHTpNkm3oeepuvgsIbrjb8i+ClBsCwkpqgH6CalbbTGvds/Jz7bAdbj2mSeB6SeJZ9m4QIhJur\
+h7obDnL41/pxFe3gd2LTH9JixFC0PQi0PaAyJxondjJhPR5gPVJQQmIIYkIzdiYb+zX7Db3wOh86\
+8GL3CvccGu6g5LXYHrXYxsbXtgi11uGg6xuDKhU/S21PVh9IQGr7APsjGvsdpyLEQx5LvtFr4xvE\
+vZqpuB+3qa+7ps0IpsyZ2OQa4nzYbtAedMJptV6qCKldV5pSGw73M/jQ4BU2/IngpAe4q4+TnR+d\
+k5eXkZoIkJqOs8sa+GQHyYmyhpoehpp/mHmUCJR5a49cG3LfHASmN2gGVGeCensfe3qDY04a/JEH\
+TpNkm3oeepuvgsIbrjb8i+ClBsCwkpqgH6CalbbTGvkK/Jz9Cgdbj2mSeB6SeJZ9m4QIhJurh7ob\
+Du3L+coV3Qe9t5GYsh+ymLWhuaoI2vs7Bt7N0bfCogiiwsOWwhv3BuxeMtwf2zKz+wn7Ixr7M137\
+FjAmHi44+wBc+xcbSk2XpFIfYpxbqlW4CPvdB1qMbo6CHo5+koGVgpWCmIaaiAiJlrGKzBs3/Jff\
+uAe5qY6TmR+YkpWVkpoIj5aNrsUa+qEH9zwkFfvsB16OaZB1HpNpm2yicKJwqnOzeAh4srWBthvi\
+1qzMyx/KzKvu9xka9xBx61bPHs5WTa1DG1xZf3JUH1RyUWZMWggOIPpS96sVy1cF+zv7EfsrN/tD\
+G/sd+we87C0fLexc9w33JRrsoeK32B622MjG2bYIttjkoPAb9wfqb1PYH9hSsVJSGmyCdHl6Hnp5\
+d4N0G39/jpGAH4CRf5V/mIaRgZ59qnmyfaWBmHamcqBtmgiabGmTZhtSV3tsWx9abGVdb04Ibk59\
+QjYa+xeuItE+HkjI02rfG7KykpizH7KYsZ6upKWdtbTGywgONPhc+fUVUwY2SXlmXB9cZmBPZTg0\
+tBj3MPfqBdAGklsF+RoGk7sF0Ab3MPvqNGJi417IXK4ZrVxKnDobU/z6BkyOZJB8HpB8l3+dggiC\
+na2HvRukNvyV4KQGvKyPk50fnJKXl5KbCJGbjrPKGg5JgPpZFfh6N2MGZXSKiYQfgoiEhoWDCIWC\
+iIF+GnmUbZ1gHvd8/LX3a/idBaTImLSfGpqFl4CSHpKAcY5jG1zf+C03cwZjcYiGfx9/hn+AgHuA\
+enlmclH8A/3rGHBOblJqV2pWYmNabghuWlR9UBtGVJuqYh9opnmssxqkk5+anB6bmp2ToBubmoiE\
+mR+UiJ19pnKsbqN5mYQIhJiZiJgbpqaUnqYfpp6hpZ6tpryhuJy2tO8Y+975d3S/d657nRl7nXuW\
+e48IjoJwjF0bDvjN+PT7/hW4BriqjpOaH5qSlZWQmgiQmY2uwhr31Qc0MClgIRv7ECe+8D8fPvBl\
+9xH3Kxr3IK73CNLmHubS5rn3Axv3AfcCU/sF9wQf+HL7QeAH6OGnw9wf2v0bBvcF9wP3BcP3Bhv3\
+CuldL9Af0C6u+wf7Hhr7KWX7EUAlHiVAJFj7Fxv7Aye24jEf+90HWI5qkH0ekH2WgZyECISbrojC\
+G6g3/JcG90EcBI0V7iwtvC8bNkxmQWIfYkF2LvsDGvsXpinBSR5IwNBq3xu/upuqth+2qqetmK8I\
+mK+Ru8ca9zr37BX77AdQklqYZh6YZqdptm0IbLa5fL4b39CszsIfwc2m7fcXGt+A1HTJHnTJbbdm\
+pQikZmGYWhsuLlooLB8OcrD6WRX4izdoBnd5iYZ6H4GIg4aFhAiEg4iEhBp8mHSkbB73I/tI9zv3\
+SAWqrJqknBqXhpSAkh6SgHSOaBtl3/g/NwZhiWeCbXxsfGduYmD7efuCGPex+9mWfadnqm6udRme\
+fqmFtIoIN/x/37UHq5+Nj5QfmpKSlpsamnuma7Ie+0r3c/tf+3N3c4B/BXp5g3t9Gn6QgpaFHoWV\
+ooivG7M3/DnfBqyMpI6ekp6RnZWcmKmjoZ6Ymfe598EY+433smyucqR5mhl4mXmVepEIkHpyjmwb\
+DvdI+ZL6BRXf+Is3aAdUZ4J6ex97eoNjThr8kQdOk2Sbeh56m6+CwhuuBvcL+9cya3XIbb5mthll\
+tl6oV50InFc2k/sJG/164KQGuKuPk50fnZOXl5GaCJCajrPLGvhkB8mJsoaaHoaaf5h5lAiUeWuP\
+XBty3/iJN3EGXGuHhHwfe4R/foR4CIR4h2haGvy9B2ePdZKEHoOSoYewG/gCBrChj5OSH5KTj6Gu\
+Gvi9B9OBt3aaHpp2ZpJWGw7E+cb4MhX7iQb7CzWTm1UfVZpmpXauCHaugMniGrwHtoiohZoehZp/\
+lnmUCJN5cY9oG3Lf+HA3cQZYaYN6eh95eoJrWxpOB0yRYJhyHpdyoXqrgAiAq8OF3Bv3cvd7BsqC\
+tHqfHp56Z5VUG3Df+IQ3aQZTZ4J6ex97eoNjThr8kQdOk2Sceh56m6+CwhutNvyf4KYGy7GPk5Yf\
+lpOWlZaXCJWXkLDIGg75hRwFR/oFFd/4gzdpB1Rngnp7H3p6g2NOGvyRB06TZJx6Hnqbr4LCG602\
+HPkZ4KQGuKuPk50fnZOXl5GaCJCajrPLGvhkB8mJsoaaHoaaf5h5lAiUeWuPXBty3/iCN3EGVGiC\
+eXofeniCYUoa/L0HZ491koQeg5Khh7Ab98oGr6GPk5IfkpOPoa4a+L0HyoK0ep8ennlmlVQbct/4\
+fzdxBlRngnl6H3p4g2FKGvy9B2ePdZKEHoOSoYevG/fLBrChj5OSH5KTjqGuGvi9B8qCtHqfHp55\
+Z5VUGw75SBwFQfoFFd/4gzdpB1Rngnp7H3p6g2NOGvyRB06TZJx6Hnqbr4LCG60G9wz71zJrdcht\
+vma2GWW2XqhXnQicVzaT+wkbHPrY4KQGuKuPk50fnZOXl5GaCJCajrPLGvhkB8mJsoaaHoaaf5h5\
+lAiUeWuPXBty3/iCN3EGVGiCeXofeniCYUoa/L0HZ491koQeg5Khh7Ab98oGr6GPk5IfkpOPoa4a\
++L0HyoK0ep8ennlmlVQbct/4fzdxBlRngnl6H3p4g2FKGvy9B2ePdZKEHoOSoYevG/fLBrChj5OS\
+H5KTjqGuGvi9B8qCtHqfHp55Z5VUGw7Y+Zn6BRVxBk5kiIZ7H3qFf3+CeAiCeIdnVhr7TPcZB/cR\
+6IaAyh/KgL9xtWAItGCgVUsaSnZUYlweYlxWbEp6CHpKOoMoG/yQ4KUGu6yPk50fnZKXl5GbCJGa\
+jrPLGvj6ByxCemlYH1hoXU5jMzS0GPcw9+oF0AaSWwX40wb7VfyTFfuvB2aPdZKEHoOSn4esG+sG\
+91DpyPcPtH6vcqkfcqhsnmeUCJRnWI9KGw74e6wW4KQHvKyPk50fnZKXl5GbCJGbjrPKGvhkB8mI\
+soabHoaaf5d5lAiUeWmPWRty3/iqN3EGTmSIhnsfeoV/f4J4CIJ4h2dWGvtM9xgH9xHphoDKH8mA\
+v3G1YAi1YKBVTBr7VPsvK/vLHvs7+FoV+68HZo51koQeg5Kfh60b6wb3T+nI9w+0fq9yqR9yqGye\
+Z5QIlGdZj0ob+qv8BRU2/IngpAe4q4+TnR+ck5eXkZsIkZqOs8oa+GQHyImyhpsehpp/mHmUCJR5\
+a49cG3Lf+Ik3cQZca4eEex97hIB+hHgIhHiHaFoa/H8HW49pkngekniWfZuECISaq4e7Gw401Rbg\
+pAe8rI+TnR+dkpeXkZsIkZuOs8oa+GQHyYiyhpsehpp/l3mUCJR5aY9ZG3Lf+Ko3cQZOZIiGex96\
+hX9/gngIgniHZ1Ya+0z3GAf3EemGgMofyYC/cbVgCLVgoFVMGvtU+y8r+8se+zv4WhX7rwdmjnWS\
+hB6Dkp+HrRvrBvdP6cj3D7R+r3KpH3KobJ5nlAiUZ1mPShsOIPmk+K4V94N3I/cL+08bSU98bFQf\
+VGxaTGAsNbMY9yL3zAXQBqhXBZ7YzJTAG/cp9wpbLOMf4yu3+wz7JRr7JWD7DTYqHio1+w9a+zMb\
++1f7KN/3OygfzcEF+xvs9w1I9yYb91rz9xH3jZQf/CrgBg74zfgt+K4V96IGlvcdvvcB590I3eb3\
+BrT3Gxv3MfcMWirfH94qtfsM+yMa+ydf+w4zLB4sMvsNW/stG/sw+wu56DofOehg9wSH9xkI+6L7\
+bAZbj2mSeB6SeJZ9m4QIhJurh7obpTb8ieCkBrirj5OdH52Tl5eRmgiQmo6zyxr4ZAfJibKGmh6G\
+mn+YeZQIlHlrj1wbct/4iTdxBlxrh4R8H3uEf36EeAiEeIdoWhr6tfuHFfcScO5W1B7UVUGvLhs4\
+RmdDUx9SQm8k+xka+xelJ8BEHkS/02fmG+vVstm/H7/ZpfD3DxoOrxwEbPoFFXIGWmqHg3kfeYN/\
+f4V8CIV7iGNMGvxkB0yOZJB8HpB8l3+dggiCna2HvRukNvyU4KcGvKuPkpsfm5KXl5KeCJKej629\
+GvdM+2MH+2D7iAVybn93fxp+kIOWhx6HlqOJsBunNvx94AaiigXPz7HWzh/3aPeABftgpCXe9yEa\
+zaDDtbketLjBqs2bCJrM6JP3DRv4owb76fxiFfe4B6+IoYSTHpKEd49pG/sHBjxPhoJjH2KCandx\
+bghxbn5lXBr7DvVO92geDiD6NveWFctXWlFcXV5pGV1pYHNifgh9YlyEVBspOJ+zRh88uU/HYdUI\
+YdV24vAa9J/ltNYetNbExtS2CLbU36DrG9LJgHXAH8B0t2qwXrBepVecUZRpkV+MVQj9VwaJaopz\
+exo3mkCoSh6oSbJbvGwIbLvCe8gbv72XpLwfvKPGutDSCPsU+CgVgch9uXmoeKhxo2qcCJxpZZRh\
+G2FkgnpmH2Z6bXNzbHJsdl95UAjw+WAVrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obam6Xo3Mfc6N/\
+qKwarZeoo6Meo6Kol60b9+IWrKh/c6Mfo3OXbmkaan9uc3Mec3Nuf2obaW6Xo3Qfc6N/qKwarZeo\
+o6Meo6Kol60bDq/3hvrPFfs/4vc/9xT7P+AG9wKX46fNtwjZ+734tzT8t/u6BvcE9wP3BcP3Bhv3\
+DepbK88fzyut+x/7Sxr7X2b7MkD7BR77BUAkU/sZGzU2qcc3H7vSBWW4wnjKG97Ouuu+H77qpPcQ\
+9y4a9yh59wZm3B7bZkizLBswLlkoKx/8WAdGkmGYfB58mLGDyxu0Nvya4KoGwa6QlpsfmpaUl46Y\
+jpiNu47eCA77etUW4KQHvKyPk50fnZKXl5GbCJGbjrPKGvhkB8mIsoabHoaaf5d5lAiUeWmPWRty\
+3/miBvcP+98ya27UbMRpshlosmalZJoImWNIki4bRf0PBliPaZN4HpJ4l36bhQiEm7CIxhunNgb7\
+chwEkhWuB/dN9xwFusrAorYbn5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA4g96v4rhX4KTb8KQaQ\
++wapMMRICEfD2GnsG/ch9wrO9xnrH8tXUzhMTEVhGWFENHYjG/st+wy76jYfNepg9wv3Ixr3Mr33\
+EfDnHufw9wa59xUbusmCeNgfqL8F0Qb3IvvMNWMF9zFHIdn7JBs4Q29STx9OUmgwgfsRCA4g+YP6\
+WRXRBuX7xjFtZ91ZzEq6GbpKSaJIG1hhf3JrH2tye25qGmyXcaJ1HqJ0vnLabvdXRhj3AmTWYbNe\
+CLJen1dSGlp8XW5eHm5eYGdUcAhwU0t+Qxv7BCuryzsfdkMFRAb7Effb5q/IK8RHwWMZUtbdb+Ib\
+xbubqrAfsKqerbEaqn+odKUec6RdpEej+3vfGCivRrJktghktni8whrOq8fKvx6+ytul7Bu+uIV+\
+sx+zfrJ1sm0IDvzC99UcBaAVq6aAdaIfonSWcGsaa4BwdHQedHRwgGsba3CWonQfdKKApqsaq5am\
+oqIeoaKmlqsb+5P8/xXeB8KSupSxl7CXtp67pQjU/bYGb492k30ek32WgZqFCISZpYixG7o3/JTf\
+tAa4qY+Tmh+ak5aWkpoIkZqOrcEa+OAHDvzCyPnJFd4HwpK6lLGXsJe2nrulCNT9iAZYjWyOgB6R\
+d5d8nYIIg5mnh7Qbujf8lN+0Bripj5OaH5qTlpaSmgiRmo6twRr44Act+MEVrKh/c6Mfo3OXbmka\
+an9uc3Mec3Nuf2obam6Xo3Mfc6N/qKwarZeoo6Meo6Kol60b9+IWrKh/c6Mfo3OXbmkaan9uc3Me\
+c3Nuf2obaW6Xo3Qfc6N/qKwarZeoo6Meo6Kol60bDvzC9+EcBaAVq6aAdaIfonSWcGsaa4BwdHQe\
+dHRwgGsba3CWonUfdKKApqsaq5amoqIeoaGmlqsb+5P8/xXdB72QtpOvlq+WuqDEqQjU/tUGPHxJ\
+bVYebVZhYFVsCGxVS3tAG0NSmqlgH2CpdqqrGqaToZ2cHpycoZSmG5uZiIWXH5aFnH2gdqtrpXae\
+gAiDmZuHnBu0rJ+zox+dqJS7zRr6bgcO98P4C+QVMvwX5Ae4rJagoh+ioJ2rmbj3MfiFGJSmj5+X\
+Gp2Fnn+gHn+ffJh6kQiRemyOXhty3/oYN28GT2WIhnsfe4Z/f4J4CIJ4hmZWGvtR5gf3EeiGgMof\
+yYC/cLVgCLVgoFdMGj1pSEhUHlNH+w5v+0Mb/GHkpAbAsJKZoB+gmZa10hr5CvtxB/tY/RyGe4d+\
+h4IZhn6IgIAaZap4yB74lvgBFfu0B2ePdZKEHoOSn4etG8AG91DpyfcRtX+vcqgfcqhtn2eUCJRm\
+WI9JGw74pPlxFuSkB7uvkpiiH6KYl7XUGvdt/H37bQdcj2uSeB6SeJZ+m4QIhJqrh7sbpTL8ieSk\
+Brirj5OdH52Tl5eRmgiQmo6xyRr4ZAfJibKGmh6Gmn+YeZQIlHlrj1wbct/4iTdxBlxrh4R8H3uE\
+f36EeAiEeIdoWhr7Ufh991EH1IC3dpoemXZmklcbct/4pTduBk9liIZ7H3uFf3+CeAiCeIdnVhr7\
+UeUH9xHohoDKH8qAv3C1YAi1YKBXTBpMdlRhXB5hXFZsS3sIeko6gykb+xH4WhX7tAdnj3WShB6D\
+kp+HrBvBBvdP6cn3EbV/r3OoH3KobZ9nlAiUZliPSRsO90j4MhwEoRX4nooFOQf8nowF+70H9w73\
+JPcbyPcSG83EfnC8H7twrmmiYwihY5ZOORr8TgdRk2Wceh56m66CwRu0N/yb37IGyLKUnZsfm5yT\
+t9Ia9+kH0ofAg64egq13p2uhCKBrZJZcG/sB+wtV+wD7FB/8YQdFkWCYfB57mLGDzBuzN/yX36oG\
+0LOVoJgfl5+RwuYa+cr7P933P/cF+z/gB/cDmOOnzLYI1wYO7ckW4LcHva2VoJwfnKCTs8ga+HEH\
+yYmyhpsehpp/l3mUCJR5aY9ZG3Hf+I43bgZdbIeEfB97hH9+hHgIhHiHaFoa+5cH+AT3uAXFuqiq\
+mhqdcZRXHlbf+I83BlJehYBqH2mAY3ReaPu2+3EY9+v8CrpXsmuofxl+qLSFwBs2/KjgtAfJqpah\
+j4iRhJQfiY2ElICbio2Hj4WS+5r3xhj7O/sRBfsXB0yUY5x8HnucroPAG682Bi0cBJIVrgf3Tfcc\
+BbrKwKK2G5+chH2ZH5h8knl2GnGCdnh6Hnh6an1agAgOSYD6WRX4ejdjBmV0iomEH4KIhIaFgwiF\
+goiBfhp5lG2dYB73fPy192v4nQWkyJi0nxqahZeAkh6SgHGOYxtc3/gtN3MGY3GIhn8ff4Z/gIB7\
+gHp5ZnJR/AP96xhwTm5SaldqVmJjWm4IblpUfVAbRlSbqmIfaKZ5rLMapJOfmpwem5qdk6Abm5qI\
+hJkflIidfaZyrG6jeZmECISYmYiYG6amlJ6mH6aeoaWeraa8obictrTvGPve+Xd0v3eue50Ze517\
+lnuPCI6CcIxdG/i/91oVIjGiuEAfQLhlur0apJSfnZkemZyfkqAbrqpxVqYfo12maap0CHSqtH++\
+G760l6KqH6qipq2juQjApqqlrhugnoR+nR+dfZR3cBpaZlxAXh5eQDF0IRsO9zP5V/uoFTXNBtN6\
+wGqtHq1qUpw7G/vX4KQGuKuPk50fnZOXl5GaCJCajrPLGvhkB8mJsoaaHoaaf5h5lAiUeWuPXBty\
+3/iJN3EGXGuHhHwfe4R/foR4CIR4h2haGv0K+I75CgfUgLd2mh6ZdmaSVxty3/iKN2kGU2eCensf\
+e3qDY04a/JEHTZNknHoeepuvg8IbrTb72wZCVXxuZh9mbXhUOhoO+z33BRwFcxX4EAb3F+qesccf\
+x7DC2L33CeJqGPsV/AIF/ET+wAZVlGieeh56nq+DwRuwNvyn4K0GxLCUnJwfnJyTscga+kgHx4Kx\
+eZoemnhrkl4bXAYO+6P5vfn8FfwY/Q8GWI9pk3gekniXfpuFCISbsIjGG6c2/KTgpAa8rI+TnR+d\
+kpeXkZsIkZuOs8oa+GQHyYiyhpsehpp/l3mUCJR5aY9ZG3Lf9/oG582TmrQftJqwpa2yrbGqw6jU\
+5GsYDvmupRwFcxX4iDZWBmh0iIR+H3iAgXt2GnyQcpZqHvey/jb3jPmQUfdNfbd2q26eGZZ6bJFg\
+G+D4hDZcB2JwhoF9H32BhH16GnyQcpZoHvez/jz3tfo8BZWskKOcGp6Emn6UHpR+cJBkG1ng+D42\
+BmeMcId6hHmDfICAfYB8fm5+X/wVHPtlGPslBvuh+db7ov3WBfskBvwOHASbecR1sHCdGZh3a5Fg\
+GxwEjfdTFfuyx1mWaZl4nBl4nIKfpBqikp2Zmh6ZmJ2SoBu2wHRcyh/3TfscBQ74PYr6WRX4YDdr\
+BmRxiIV+H3eCgXx3GniTbZpiHvdj/Lf3XviQebp2wXOwcKAZeZhwk2iNCN/4XjdkB2Z0iIWAH3iA\
+gnp0GneSb5loHvdj/Lf3Xvi/lqmQnIyPGY2SjJOTGp6EmnyWHpZ8cJBkG2bf+Bg3Bm6KdIZ5gnmC\
+fYCAfYB9fGx4Wvu4/XYY+wwG+3v41Pt4/NQF+wsG+7v5dni6fKt/mhl/mnyXepQIlHl1j3Ab+oT3\
+tRX7ssdZlmmZeJwZeJyCn6QaopKdmZoemZidkqAbtsB0XMof9037HAUO+a6lHAVzFfiINlYGaHSI\
+hH4feICBe3YafJBylmoe97L+NveM+ZBR9019t3arbp4ZlnpskWAb4PiENlwHYnCGgX0ffYGEfXoa\
+fJBylmge97P+PPe1+jwFlayQo5wanoSafpQelH5wkGQbWeD4PjYGZ4xwh3qEeYN8gIB9gHx+bn5f\
+/BUc+2UY+yUG+6H51vui/dYF+yQG/A4cBJt5xHWwcJ0ZmHdrkWAb+Zr3UxWuB/dN9xwFusrAorYb\
+n5yEfZkfmHySeXYacYJ2eHoeeHpqfVqACA74PYr6WRX4YDdrBmRxiIV+H3eCgXx3GniTbZpiHvdj\
+/Lf3XviQebp2wXOwcKAZeZhwk2iNCN/4XjdkB2Z0iIWAH3iAgnp0GneSb5loHvdj/Lf3Xvi/lqmQ\
+nIyPGY2SjJOTGp6EmnyWHpZ8cJBkG2bf+Bg3Bm6KdIZ5gnmCfYCAfYB9fGx4Wvu4/XYY+wwG+3v4\
+1Pt4/NQF+wsG+7v5dni6fKt/mhl/mnyXepQIlHl1j3Ab+Qr3tRWuB/dN9xwFusrAorYbn5yEfZkf\
+mHySeXYacYJ2eHoeeHpqfVqACA75rqUcBXMV+Ig2VgZodIiEfh94gIF7dhp8kHKWah73sv4294z5\
+kFH3TX23dqtunhmWemyRYBvg+IQ2XAdicIaBfR99gYR9ehp8kHKWaB73s/4897X6PAWVrJCjnBqe\
+hJp+lB6UfnCQZBtZ4Pg+NgZnjHCHeoR5g3yAgH2AfH5ufl/8FRz7ZRj7JQb7ofnW+6L91gX7JAb8\
+DhwEm3nEdbBwnRmYd2uRYBv5qvgjFayof3OjH6Nzl25pGmp/bnNzHnNzbn9qG2pul6NzH3Ojf6is\
+Gq2XqKOjHqOiqJetG/fiFqyof3OjH6Nzl25pGmp/bnNzHnNzbn9qG2lul6N0H3Ojf6isGq2XqKOj\
+HqOiqJetGw74PYr6WRX4YDdrBmRxiIV+H3eCgXx3GniTbZpiHvdj/Lf3XviQebp2wXOwcKAZeZhw\
+k2iNCN/4XjdkB2Z0iIWAH3iAgnp0GneSb5loHvdj/Lf3Xvi/lqmQnIyPGY2SjJOTGp6EmnyWHpZ8\
+cJBkG2bf+Bg3Bm6KdIZ5gnmCfYCAfYB9fGx4Wvu4/XYY+wwG+3v41Pt4/NQF+wsG+7v5dni6fKt/\
+mhl/mnyXepQIlHl1j3Ab+Q34hRWsqH9zox+jc5duaRpqf25zcx5zc25/ahtqbpejcx9zo3+orBqt\
+l6ijox6joqiXrRv34hasqH9zox+jc5duaRpqf25zcx5zc25/ahtpbpejdB9zo3+orBqtl6ijox6j\
+oqiXrRsO9x+QHAVzFfieNlAGZ3SIhIEfgISGgHwafpF5mHQejoaQg5CB96T8jBj3wfifl6CSmY6S\
+GY2RjJGSGpSJk4aSHoaRg5CAjgiMhHmMbBtX4PhDNgZljG+IeYZ4hnyDgIB/gHpzdmj8Dv0KGPvz\
+B1iPaZR8HpN8mICdhAiEnbWHzRs3/LXftQe4qY+Tmh+ak5aYlJ0IkZiOqrwa984H/AX5JG7Acqp4\
+lhl3lWaRVowI+e73UxX7ssdZlmmZeJwZeJyCn6QaopKdmZoemZidkqAbtsB0XMof9037HAUOSYD6\
+WRX4ejdjBmV0iomEH4KIhIaFgwiFgoiBfhp5lG2dYB73fPy192v4nQWkyJi0nxqahZeAkh6SgHGO\
+Yxtc3/gtN3MGY3GIhn8ff4Z/gIB7gHp5ZnJR/AP96xhwTm5SaldqVmJjWm4IblpUfVAbRlSbqmIf\
+aKZ5rLMapJOfmpwem5qdk6Abm5qIhJkflIidfaZyrG6jeZmECISYmYiYG6amlJ6mH6aeoaWeraa8\
+obictrTvGPve+Xd0v3eue50Ze517lnuPCI6CcIxdG/mM97UV+7LHWZZpmXicGXicgp+kGqKSnZma\
+HpmYnZKgG7bAdFzKH/dN+xwFDvgAHAYM+OQV+wkc+ej3CQcO/WX34PoCFfsJ6kHYbsYIbsZ8wb0a\
+xJu6rLAer6yxnbgbrKh/dKIfonOXcGwacIJyenQedHlwf2gbd3aQlXQfin6KgoQaPc8t9x37Ah4O\
+7WEcB00VHAVKQRz6tgYO7fiF+h0V+B0n+/4GqDcF9+Eq+8IGoTqWPD4aZIdlgmcePvch9wVk4hvI\
+v6fCtR+0wqXelvcD6IQY+xlt+wlPJB4kTzdY+wAbIPsNyPcO+xkf+w5LKE77GRs/TaG3XB9ct3PD\
+zxrMosO5uR64ucWi0hvg2GdC0h+IwG3rUPcfCPvw7PfGBmffBfui7/eCBn+9hbWuGvcDuefm1R7U\
+5vcBsPcVG/cO7mhF1x/WRbYklfsbKn0Y92hqI/X7Qxs5R3JYVB9UWG9MQhphlFycVh79QQRatgXE\
+TE+oUxtoa35xbh9tcHxqZBpkmmmobx5vqLB9uBu3tZmmsx+zpqiwnroIDvp74xwFcxX4QAb5D/6q\
+BfmwB7qGrYKgHoKgfZp4lgiWeHCQZhtn4PhnNnIGYm+IhHwfdoJ8eoFyCIByhmleGhz7h/sNB/2R\
+HATpBf54B1SNaY5/HpB8k32Yfpd+mYOchpyGrIm+igg3/G3fpAe7rJCUnB+clJiblKIIlKKQscEa\
++ggHwoqtiJcehaKAm3qVCJV6aZBYG2cGHAfZ/VkV+wVsMU1JHkhNO2oqGy0+rM1QH1DMbej3Cxr3\
+DqroyMseysjaq+ob8tpoRsQfxEWnL/sHGvsekRXoe9dsxB7Ea1yoTRtMXGxObB9sTXs/MRoonECu\
+WB5XrbdxwhvFuabBrh+uwJzY7xr8lfyNFfkeJf0eBg7E99X4pxX8Bwc62+5j9wsb9z33GN33OOkf\
+02A9+wU+QT9oGWc+PXk6G/st+xO/9CgfJ/NZ9xz3PBr3Ob33HO71HvTu9xLA9y8b9yP3Dlws8B/w\
+LML7IZL7Twj7e9UV98AH2jgnsvsJG/sJKWQ8Oh/7wAcOxPctFvkOB/hh+Jv4YvybBf0OB/3e3BX5\
+jfibBvwR+D/8EPw/BQ7E+uL5YhX7Cf3u/QD7Cfl1Bw7E+UP8lxX7JRwHFQb3Haj3AMTZHtjE0LLb\
+G7KsgnimH6V4mHBoGnCCdXp6Hnp5doJ0G3R5kJR9H3yUfZp9ogike3uXfBt4fYN7hB+DeodYNRoO\
+xPiyHAbJFfclHPjtBvsebvsAUj0ePVJGZDsbWmeWo3YfdqKAo6YappShnZ0enJyfk6Ibop6Ggpof\
+mYKZe5l1CHKbm3+aG56Zk5uTH5Kbj77iGg4cBcP4qhUc+ij3QxwF2AYO7fhY/QEVHAm190Mc9ksH\
+DhwFxPlZFftD/Skc+337QxwFMgcO+RP4qhX9KPdD+dcc+s77QwYO+RT4qhUcBTL3Qxz7ffkp+0MH\
+DvnC+KoV/df3Q/koHASD90MGDvkU/QEVHAm190Mc+335KftD/Skc+30HDvkT/QEVHASD/Sj3Q/ko\
+HASD90Mc9ksHDvkT+KoV/Sj3QxwF2PtD/Skc+337QwYOHAXD+KoVHPoo90P5KBwEg/dDHPt9+SkG\
+DvkT+KoV/Sj3Q/koHASD90Mc+335KftD/Skc+337QwYOHAXD+WgVHPoo90McBdgG/L8EHPoo90Mc\
+BdgGDvnS/QEVHAm190Mc9ksH/L8WHAm190Mc9ksHDvkU/QEVHAXw+dj7Q/0p+2H5KftD/Sn+WQcO\
++Fb9ARUcBTL6lvtD/Gsc+337QxwEdPthHPuMBw75Bf0BFftDHAXw+pX7Q/3mBvgQ/BAV/ln7QxwE\
+dPkZ+0MHDvkT9+wV/Sj3Q/ko92H9KPdD+dcc+hD7QwYO+FX9ARUcBIP8avdD+pUc+s77QxwEg/th\
+HPt9Bw750f0BFRwFQf3m90P6lRz6EAf8v/pZFfxq90P5GRz7jPtDBg75FPfsFRwF8PdD/ln5KftD\
+/Sn7Yfkp+0MHDhwFw/iqFf6VHAUy90Mc+333YRwEg/dDHPt9+GoGDvkFHAdIFRz6v/nm+0P+lRwF\
+8Af4v/5ZFfhq+0P9GRwEdPdDBg75wvfsFf3X90P5KPdh/Sj3Q/ko+ln3QwYO+oD4qhX+lfdD+Goc\
+BIP3Qxz7ffdhHASD90MGDvnRHAdIFfdDHPoQ/pX3Q/nmBvwQ+BAV+ln3Qxz7jP0Z90MHDvkU/QEV\
+HAm190P+Wfkp+0P9Kfth+Sn7Q/0p/lkHDvnS/QEVHAm190Mc+334a/tD/Gsc+30H/L8WHAm190Mc\
+9ksHDvhW/QEVHAm190Mc9ksH92EcBUEVHAR090P+Wfhr+0MH/Roc+r8VHAR0+Rr7Q/xr/lkHDvkT\
+9+wV/Sj3Q/ko92H9KPdD+Sj6WfdDHPZL+0MGDvhV/QEVHASD/Gr3Q/hqHASD90Mc9ksH92EWHAm1\
+90Mc9ksHDvnR/QEVHAm190Mc9ksH/BAcCbUVHPuM/Rn3Q/hq+lkHHPoQBPxq90P5GRz7jPtDBg4c\
+BcP5aBUc+ij3QxwF2Ab92Py/Ff0o90McBdj7Q/0p/ln7QwYO+FX9ARUcBIP8avdDHAXY+0P8axz7\
+fftDHAR0+2Ec+4wHDhwFw/loFRz6KPdDHAXYBv6W/L8V/Gr3Q/kZHPuM+0MG+BAWHAR0+Rr7Q/xr\
+/lkHDhwFw/loFRz6KPdD+Sj6WfdD/ln5KQb8vwQc+ij3QxwF2AYOHAXD+KoVHPoo90P4ahwEg/dD\
+HPt992EcBIP3Qxz7ffhrBg75BPloFf0Z90P4avpZ90MG+ecc+4wV/RocBHT3Q/5Z+GsG/L8EHPoo\
+90McBdgGDvkT9+wV/Sj3Q/ko92H9KPdD+Sj6WfdD/ln5KftD/Sn7Yfkp+0P9Kf5Z+0MGDvhV/QEV\
+HASD/Gr3Q/hqHASD90Mc+333YRwEg/dDHPt9+Gv7Q/xrHPt9+0McBIP7YRz7fQcO+oH6FxX4avtD\
+/RkcBHT3Qwb8wP5ZFfpZ90Mc+4z9GfdDB/hq/L8V/Gr3Q/kZHPuM+0MG+MD6WRX+WftDHAR0+Rn7\
+QwcOHAXD+QEVHPooHATbHAXYBg4cBcP9ARUc+igcBNocBdgGDnb9ARUcCbUcBdgc9ksHDnb9ARUc\
+CbX5gBz2SwcO+Wv9ARUcCbX5gBz2SwcO8xwHSBX3EfsR+xEG+Ib3ERX3EfsR+xEG+If3ERX3EfsR\
++xEG/YD7EBX3EfsR+xEG+If3ERX3EPsR+xAG+Ib3ERX3EfsR+xEG+437EBX3EfsR+xEG/If3ERX3\
+EfsR+xEG/Ib3ERX3EfsR+xEGHATe+xEV9xH7EPsRBvyG9xAV9xD7EPsQBvyH9xAV9xH7EPsRBvuN\
++xEV9xH7EfsRBviG9xEV9xH7EfsRBviH9xEV9xH7EfsRBveN+xAV9xH7EfsRBvyG9xEV9xD7EfsQ\
+BvyH9xEV9xH7EfsRBvuN+xAV9xH7EfsRBviG9xEV9xH7EfsRBviH9xEV9xH7EfsRBv2A+xEV9xH7\
+EPsRBviH9xAV9xD7EPsQBviG9xAV9xH7EPsRBvuN+xEV9xH7EfsRBvyH9xEV9xH7EfsRBvyG9xEV\
+9xH7EfsRBveN+xAV9xH7EfsRBviH9xEV9xD7EfsQBviG9xEV9xH7EfsRBg7zHAdIFfcQ+xH7EAb3\
+jfcRFfcQ+xH7EAb3jfcRFfcR+xH7EQb3jfcRFfcR+xH7EQb3jvcRFfcQ+xH7EAb3jfcRFfcQ+xH7\
+EAYc+qX7EBX3EfsR+xEG9433ERX3EfsR+xEG9433ERX3EfsR+xEG9473ERX3EPsR+xAG9433ERX3\
+EfsR+xEG9433ERX3EfsR+xEG/vX7EBX3EPsR+xAG9433ERX3EPsR+xAG9433ERX3EfsR+xEG9433\
+ERX3EfsR+xEG9473ERX3EPsR+xAG9433ERX3EPsR+xAGHPql+xEV9xH7EPsRBveN9xAV9xH7EPsR\
+BveN9xAV9xH7EPsRBveO9xAV9xD7EPsQBveN9xAV9xH7EPsRBveN9xAV9xH7EPsRBv71+xEV9xD7\
+EfsQBveN9xEV9xD7EfsQBveN9xEV9xH7EfsRBveN9xEV9xH7EfsRBveO9xEV9xD7EfsQBveN9xEV\
+9xD7EfsQBhz6pfsQFfcR+xH7EQb4hvcRFfcR+xH7EQb3jvcRFfcQ+xH7EAb3jfcRFfcR+xH7EQb3\
+jfcRFfcR+xH7EQb+efcRFfcR+xH7EQb69vsQFfcQ+xH7EAb7jfcRFfcQ+xH7EAb7jvcRFfcR+xH7\
+EQb7jfcRFfcR+xH7EQb7jfcRFfcQ+xH7EAb7jfcRFfcQ+xH7EAb7EfsRFfcR+xD7EQb3jfcQFfcR\
++xD7EQb3jfcQFfcR+xD7EQb3jvcQFfcQ+xD7EAb3jfcQFfcR+xD7EQb3jfcQFfcR+xD7EQb3EfsR\
+FfcQ+xH7EAb7jfcRFfcQ+xH7EAb7jvcRFfcR+xH7EQb7jfcRFfcR+xH7EQb7jfcRFfcQ+xH7EAb7\
+jfcRFfcQ+xH7EAb7EfsQFfcR+xH7EQb3jfcRFfcR+xH7EQb3jfcRFfcR+xH7EQb3jvcRFfcQ+xH7\
+EAb3jfcRFfcR+xH7EQb3jfcRFfcR+xH7EQYO99ccBdccBdIV/Ar7EPsQ9xD8CvsQ+xH3EPwK+xD7\
+EPcQ/Ar7EPsR9xD7EBz6KfgJ9xH3EfsR+Ar3EfcR+xH4CfcR9xH7EfgK9xH3EfsR+An3EfcR9xD7\
+EfcR9xH3EPsR9xH3EfcR+xH3EAf3EfcR+xH3EfcR9xD7EfcR9xH3EPuN+xD7EQcc+yL3ERX7EfcQ\
+9xEH9xEW+xH3EPcRB/cRFvsR9xH3EQf3EBb7EfcR9xEH9xEW+xH3EPcRB/cR+40V+xH7EfcRBvuN\
+9xEV+xH7EfcRBvuO9xEV+xD7EfcQBvuN9xEV+xH7EfcRBvuN9xEV+xH7EfcRBvuN+xEV+xD3EPcQ\
+B/cRFvsQ9xD3EAf3ERb7EPcR9xAH9xAW+xD3EfcQB/cRFvsQ9xD3EAf9/PuNFfsR+xH3EQb3EPcR\
+FfsR9xH3EQf3ERb7EfcQ9xEH9xEW+xH3EfcRB/cQFvsR9xH3EQcc+yL7jRX7EfcQ9xEH+AoW+xH3\
+EfcRB/uO+xEV9xH7EPsRB/iG9xEV+xH3EfcRB/cRFvsR9xD3EQf3EfwKFfcR+xH7EQf7EBb3EfsR\
++xEH+xEW9xH7EPsRB/sRFvcR+xH7EQf7EBb3EfsR+xEH+xD7ERX7EPcQ9xAH9xEW+xD3EPcQB/cR\
+FvsQ9xH3EAf3EBb7EPcR9xAH9xEW+xD3EPcQB/cR/AoV9xH7EfsRB/sQFvcR+xH7EQf7ERb3EfsQ\
++xEH+xEW9xH7EfsRB/sQFvcR+xH7EQf7EPsQFfsR9xD3EQf3ERb7EfcQ9xEH9xEW+xH3EfcRB/cQ\
+FvsR9xH3EQf3ERb7EfcQ9xEHDsT3IvpEFfpE/kT+RAYO+gD5UwQcB//8Fhz4AQYO+ev3xBb5WhwF\
+i/laHPp1BQ756/e0HAWJFRwFq/1oHPpV/WgFDvnrHAa8HAVsFf1aHPp1/VocBYsFDvnrHAbLHAWJ\
+FRz6WAcc+lX5aAUOxPqz+NYV+w1gIzU1HjQ0JGD7DRv7DSO24jUfNOFg8/cNGvcNtvPi4R7h4fK2\
+9w0b9w7zYDXhH+E1tiP7DRo/FvBo4UTSHtJENa4mGyY1Z0REH0RDZzUoGiivNdJDHkPS4WfwG+/h\
+r9PSH9LSr+HvGg7E9xAW+mj6aP5oB/u0+H4Vwne7ZLMesmRbn1MbVFx3ZGMfY2R3W1MaVJ9bs2Qe\
+Y7K7d8Ibw7ufs7IfsrOfusIaDsSxFhwEgxwEgxz7fQf7HfjVFfcNYPI14h7iNCS2+w0b+w4jYDQ1\
+HzU0YCT7DRr7DbYj4TUeNeDzYPcPG/cN8rbi4h/h4bby9w0aPxYnZzVERB5ERDVnJxsmNa/SRB9E\
+0mfh7xrwr+HT0h7S0uGv7xvv4WhE0h/SRK80JhoO+ikcBpL4mxX7Q037KvsR+xEe+xH7EfsqTPtD\
+G/tE+yrJ9xH7ER/7EfcQTfcq90Ua90PK9yr3EfcRHvcR9xH3Ksn3Qxv3Q/cqTfsR9xEf9xH7Ecn7\
+KvtDGi8W9ylW9xQg9h72IPsVwPspG/sq+xRWICAfICBW+xT7KRr7KsD7FPYgHiD29xRW9yob9yn3\
+FcD29h/29sD3FPcqGv1Z9xcVdYN4fHsee3t4g3QbdXiTm3sfe5uDnqEaopOem5sempuek6Ebop6D\
+fJsfmnuTeHQa+H0WdYN4fHsee3t4g3QbdXiTm3sfe5uDnqEaopOem5sempuek6Ebop6DfJsfmnuT\
+eHQa/P/75RXJrwUrwNhb8Rvx2Lvrvx/KZwX7FkYpSvsTG/sTKcz3FkYfDvpmHAax+JsV+0NN+yr7\
+EfsRHvsR+xH7Kkz7Qxv7RPsqyfcR+xEf+xH3EE33KvdFGvdDyvcq9xH3ER73EfcR9yrJ90Mb90P3\
+Kk37EfcRH/cR+xHJ+yr7Qxr9tfcXFaKDnnybHpp7eJN0G3V4g3x7H3t7g3h0GnWTeJt7HnubnoOh\
+G6Kek5ubH5qbk56hGvh9FqKDnnybHpp7eJN0G3V4g3x7H3t7g3h0GnWTeJt7HnubnoOhG6Kek5ub\
+H5qbk56hGvz/++UV+xbQ7Ur3Exv3E+3M9xbQH0yvBStXPlslGyU+u+tWHw75XPodHAZVFdf75Qb3\
+E4b3CV31Mvez968YwVT7svuy6fsIu/sKjPsLGffkRvvkBoL7E1v7CTUg97L7tRhVWPuz96z7Azj7\
+CVz7DoIZ++U/9+UH+xyc+wi5LNf7uvusGFq+97D3tTjwW/cJfvcZGfvk0PfkBpT3Gbv3CeLy+7D3\
+shi8wve6+6/3C+L3B7n3BZIZ+Lj83RX3IVn3DCbwHu8m+wy9+yEb+yH7DFknJx8mJln7DPshGvsh\
+vfsM8CYeJu/3DFn3IRv3IfcMvfDwH/DwvfcM9yEaDl344fh1FfwB+DVV/DX8I1X4I/w2wfg2+AEH\
+VEudr0IfQq5Pw1rYCFrYct/nGvcXuvcE6Oge6Oj3BLr3Fxv3F/cEXC7oH+guuvsE+xca+w9h+wA2\
+Lx42LvsAWfsWggj4JfhuFfcJYfA43h7eOCa1+wob+wkmYTg4Hzc3YSf7CRr7CbUm3zgeN97wYfcJ\
+G/cJ8LXf3x/e3rXw9wkaDvdc+uscBVwVqIGi+4PB+2Hf+z8Zcnso9xFB9x9a9ysZ+7v9D9RvzlXI\
+OxnIO6kyKBr7EV8lMj4ePjL7AGT7FRv7G/sHuOQtHyzkXPcA9xIa9xG39eLgHuDi8bb3CRu+w4B1\
+yh/3ufkQ+yNP+yxo+zaCGaUH9wau4q3Gqsaq78j3I+gI/NT97BUkMWZAPh8+QGQv+wMaILEw2EEe\
+QNjnZfYb9wDmsdfWH9XWsOTyGvcBZOg92B7YPTCxIxsONPi0HATPFZdUoVOqUapRzj70LNxBxE+r\
+XAiqXJtYUhpNdVdgYB5gYFd2UBskNsr3E0gf+y2t+wHPTB7OS+dp9wmGkmYY/awGkrAF9wrprc/Q\
+H9DPre33ExqSi5aKmh77E080TPsGG05YobZgH2C2db/HGsidwq68Hq68uLrDuPdC9yPu9ySk9yMI\
+DvdI+uIW/eQGk63xodSiuKMZt6K1ubLQCLLQntfeGoq1Zz5bUFBiGWJQTXdLGz9KpsFVH1TAcM7a\
+Gtajy7zCHsG7w6bMG7XBemnOH17Sdci9GtalzMDAHsDAzKXaG9jMcVfCH8JXpkxBGkx0TV1NHq7S\
+wZ2wG9HGcFW6H7pVo0tBGjtwSFVVHlRVS3BAG1dTnKxQH1CsVMlY544imzioTahMtFvAab9p2nD1\
+dggOr/jycxV23GzYY9Ji0i/3Ffsj91FI5FzRccAIccB+wcMa1KTJvL4evbzIpNQb9x3sN/s7wx+i\
+4LDKwLUItMDEoMkb1MhyWb0fvFmkUUgaUH5OcEwecExRMzL7A/tS+4T7AvtPbvsZCA77E/icHATP\
+FfcV+2v3Lftl90f7X2hoRDP7APsi+wD7Ijn7DVInSPcT+y33ZfuB97j3bPeT9yz3ZeT3NwgO+Cn6\
+MRwF/xXHBvcBSPcOJPcb+x8I9xv7H84sWBqAhH1+eB54fn6Bfht4dpqodB9mt0rKLt4u3jrJR7al\
+HPqiGDpzSlxcHltcQ18qYwhiKil3Khv7EyerzEAfQMxl1+Qa9cHo9wHbHtv3APcQs/cgG/cU9xhs\
+TPccHw76APnUHASrFfo697cFHPrrByh/QnJaHnJaYWNRawhrUEh7QBsqRaW/Xh9evnTJ0xrZqc7H\
+xB7Ex9mn6xvDznpq2B/55gf9T/ttBf5pBzmBR3hWHndWY11OZghlTkJ4OBs4SaO6WB9YunHL2hrh\
+qtHJwh7Bydim5hvK0Hln1B8O/H73TfsGFZ7Kv5W0G8C0fW+pH6lvmmdfGlh7YmprHmtqXntUG1hh\
+l6JoH2iieaWoGq2bnKumn3xtmB6WcJZ5lIMIgpSZh54bpaCWo5sfmqKTo6Ya0mOuOm5jgnlZHg4c\
+Ba4UHASUFQAAAAEAAAADAAAADAAEBXQAAAEEAQAABwAEACYAJwBfAGAAfgCgAKMArAEBAQUBBwEL\
+AQ0BEAERARcBGwEdAR8BLwEzATgBOgE8AUABSQFPAVcBWwFdAWEBZQFtAXEBdwF4AXwBfwGSAf8C\
+xwLJAt0DigOMA6EDuwO8A84EDARPBFwEXwSRHoUe8yAVIB4gIiAmIDAgMyA6IDwgPiBEIH8gpCCn\
+IKwhBSETIRYhIiEmIS4hXiGVIagiAiIGIg8iEiIaIh8iKSIrIkgiYSJlIwIjECMhJQAlAiUMJRAl\
+FCUYJRwlJCUsJTQlPCVsJYAlhCWIJYwlkyWhJawlsiW6JbwlxCXLJc8l2SXmJjwmQCZCJmAmYyZm\
+JmvwCfEI//8AAAAgACcAKABgAGEAoAChAKQArgECAQYBCAEMAQ4BEQESARgBHAEeASABMAE0ATkB\
+OwE9AUEBSgFQAVgBXAFeAWIBZgFuAXIBeAF5AX0BkgH6AsYCyQLYA4QDjAOOA6MDvAO9BAEEDgRR\
+BF4EkB6AHvIgEyAXICAgJiAwIDIgOSA8ID4gRCB/IKMgpyCsIQUhEyEWISIhJiEuIVshkCGoIgIi\
+BiIPIhEiGSIeIikiKyJIImAiZCMCIxAjICUAJQIlDCUQJRQlGCUcJSQlLCU0JTwlUCWAJYQliCWM\
+JZAloCWqJbIluiW8JcQlyiXPJdgl5iY6JkAmQiZgJmMmZSZq8ADxAP///+EAQf/hABz/4QBc/78A\
+AAAAAAsAAABT//wAA//5AE3//ABJ/+MARwAAAEP/4QBB/98AAAA2AAD/0QAsAAD/ywAk/8MAIP9O\
+/7wAAP7T/58AAP23AAD+G/4a/hn+GPzc/hf95f3k/eP94v2y48TjWAAAAAAAAOBT4ErhEeAy4Qni\
+EOAf4GYAAOCf4FLgQuA14Trfd9/S4SPfi9+536fe8d713uYAAAAAAADfKN7M3rIAAN6M31DfQ980\
+3VbdVd1M3UndRt1D3UDdOd0y3SvdJN0R3P7c+9z43PXc8gAAAADc1tzP3M7cxwAA24fctdtx3FXc\
+UtxR3DTcMtwx3C4AABA5AAEAAAAAAAAAAAAAAAAAAAD2AQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
+AZYAAAAAAAAAAAGUAAABogAAAAABrAAAAAAAAAAAAAAAAAGmAAAAAAGmAAABpgAAAAAAAAAAAAAA\
+AAAAAAAAAAAAAAAAAAAAAZYBmgGoAAAAAAAAAAAAAAAAAAAAAAGcAAAAAAAAAAAAAAAAAAAAAAAA\
+AAAAAAAAAAAAAAGCAYQBhgAAAAAAAAGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
+AAAAAAAAAAAAAVoBXAAAAAAAAAAAAVgAAAAAAAAAAAAAAAAAAAAAAAAAAAFGAAAAAABnAGQAoABm\
+AIMAqgCLAGoAlwClAQsAoQCcAKQAqQB9APIAcwEMAIUAlgCPAHgAngCbAKMAewCuAKsArACwAK0A\
+rwCKALEAtQCyALMAtAC5ALYAtwC4AJoAugC+ALsAvAC/AL0AqACNAMQAwQDCAMMAxQCdAJUAywDI\
+AMkAzQDKAMwAkADOANIAzwDQANEA1gDTANQA1QCnANcA2wDYANkA3ADaAJ8AkwDhAN4A3wDgAOIA\
+ogDjAVkBWgEDAJEBGAEZAIwAkgEgASEBfgF/ASIBIwEkASUBJgCOAJQBJwEoAYYBhwEEAQUAwADd\
+AMcA5AGYAH4AiACBAIIAhACHAH8AhgBvAIkCTAFCAEEACAB1Ak0AaQB3AHYAcABxAHQBAAJPAPQA\
+pgByAPkA7wFQAO4BUgKGAVMBVAFVAocA/QKMAP8AbQBuAOoBWAKaAPYA6wDsAO0=")}
+ ]]>
+ </style>
+ <g id="sea" style="fill-rule:nonzero;clip-rule:nonzero;fill:#B3B3B3;stroke:#000000;stroke-miterlimit:4;">
+ <linearGradient id="aigrd1" gradientUnits="userSpaceOnUse" x1="409.083" y1="412.0405" x2="409.083" y2="6.9873">
+ <stop offset="0.0056" style="stop-color:#E6F5F9"/>
+ <stop offset="0.5337" style="stop-color:#80CFE2"/>
+ <stop offset="1" style="stop-color:#E6F5F9"/>
+ </linearGradient>
+ <path style="fill:url(#aigrd1);stroke:none;" d="M170.443,411.986l-4.312-1.52l-15.388-6.152l-15.614-7.07l-14.042-7.545l-12.779-7.904l-12.145-8.227l-11.693-8.498l-11.158-8.73l-10.507-8.916l-9.603-9.098l-8.542-9.236l-7.932-9.154l-7.14-9.348l-6.144-9.611
+ l-5.336-9.463l-4.419-9.434l-3.427-9.463l-2.681-9.451l-2.432-9.453l-1.979-9.455l-1.396-9.453l-0.94-9.455l-0.585-9.453v-9.453l0.585-9.453l0.94-9.455l1.396-9.453l1.979-9.453l2.432-9.455l2.681-9.451l3.427-9.463l4.419-9.434l5.336-9.463l6.144-9.611
+ l7.14-9.347l7.932-9.155l8.542-9.236l9.602-9.097L73.313,66l11.159-8.73l11.693-8.498l12.146-8.229l12.778-7.904l14.041-7.543l15.615-7.07l15.388-6.154L180,6.987h458.168l13.867,4.886l15.389,6.154l15.615,7.07l14.04,7.543l12.778,7.904l12.145,8.229
+ l11.693,8.498L744.854,66l10.508,8.916l9.602,9.097l8.542,9.236l7.932,9.155l7.14,9.347l6.145,9.611l5.336,9.463l4.42,9.434l3.427,9.463l2.681,9.451l2.432,9.455l1.979,9.453l1.396,9.453l0.941,9.455l0.585,9.453v9.453l-0.585,9.453l-0.941,9.455l-1.396,9.453
+ l-1.979,9.455l-2.432,9.453l-2.681,9.451l-3.427,9.463l-4.42,9.434l-5.336,9.463l-6.145,9.611l-7.14,9.348l-7.932,9.154l-8.542,9.236l-9.602,9.098l-10.508,8.916l-11.158,8.73l-11.693,8.498l-12.145,8.227l-12.778,7.904l-14.042,7.545l-15.613,7.07l-15.389,6.152
+ l-4.469,1.574l-477.124-0.055z"/>
+ <path style="stroke:none;" d="M541.935,124.458l-0.209,0.387l0.004,1.295l0.889,0.689l-0.197,0.471l0.471,2.186l0.453,2.182l2.086,0.727l0.457,0.939l-1.641,2.947l1.863,0.6l1.863,0.6l3.34-0.086l2.35-0.535l2.346-0.535l-0.063-1.154l0.422-2.008l2.117-0.854
+ l0.578-0.727l2.123,0.129l0.193-2.865l1.695-1.459l-1.262-1.461l1.871-0.131l0.385-1.121l0.586-1.906l-1.145-2.223l1.16-1.615l2.563-0.592l2.555-0.59l-0.08-0.568l0.648,0.045h0.035l-1.863-0.219l-0.648-0.045l-1.639,0.088l-2.684,1.398l-0.875-3.101l-0.553-0.087
+ l-0.645-1.088l-1.057,0.391l-0.223,1.569l-1.639,0.786l-0.445,0.48l-1.477,0.043l-1.078,0.219l-0.719-0.48l-2.119-0.35l-2.117-0.35l-0.777,0.744l-0.738,0.787l-0.857,2.01l-1.977,1.049l-0.639,1.35l-1.258-0.217l-2-0.697l-0.432,2.953z"/>
+ <path style="stroke:none;" d="M453.968,110.166l1.168-2.162l-0.012-0.126l-1.07-1.845l-0.844-1.999l-1.314-0.416l-0.359,1.747l0.133-0.041l0.324,3.355l1.471,2.17l0.504-0.683z"/>
+ <path style="stroke:none;" d="M392.812,138.935l-0.5,3.002l-0.02,0.986l2.102,1.471l2.108,1.471l2.115,1.471l2.123,1.471l1.641,1.256l1.643,1.254l1.648,1.256l1.65,1.256l1.654,1.254l1.658,1.254l1.658,1.254l1.664,1.254v0.773l1.119,0.984l3.166,1.33l0.084,1.93
+ h2.533l1.75-0.385l1.748-0.387l1.807-1.801l1.803-1.801l2.506-1.717l2.498-1.715l2.49-1.715l2.484-1.715l-0.965-2.018l-2.557-0.473l-0.889-2.145l-1.441-2.148l1.01-0.945l-0.064-2.939l-0.07-2.938l-0.986-2.996l0.164-0.686l-0.59-2.391l-0.588-2.393l-1.674-1.883
+ l-1.752-2.447l0.938-1.92l0.93-1.93l-0.211-3.58l0.477-0.699l-3.297-0.043h-1.771l-2.402,0.393l-2.393,0.023l-2.393,0.021l-2.797,0.83l-2.805,0.83l-1.102,0.656l-2.051,1.023l-2.059,1.021l0.533,0.564l0.309,1.926l0.313,1.914l1.395,2.271l-0.508,0.729
+ l-2.348,0.17l-2.938,1.111l0.057,1.537l-1.572,1.111l-1.576,1.111l-1.921,0.811l-1.925,0.814l-1.805,1.006l-1.808,1.006z"/>
+ <path style="stroke:none;" d="M415.04,103.452l-0.619,0.042l0.035,0.207l0.518,0.042l0.066-0.291z"/>
+ <path style="stroke:none;" d="M465.509,246.427l0.041-2.658l0.037-2.66l-1.875,0.408l-1.871,0.408l-0.059-1.029l-0.746-2.66l-0.07-2.959l-0.074-2.961l-2.98-0.428l0.082-0.557l-2.305-0.172l-0.477,2.273l-2.803,0.557l-1.58-0.6l-0.902-2.424l-0.906-2.424
+ l-1.938-0.074l-1.938-0.076l-1.938-0.074l-1.938-0.076l-1.895,0.559l1.152,3.066l1.148,3.066l-0.803,1.244l0.623,1.973l0.621,1.973l0.414,3.389l-1.17,1.738l-1.17,1.736l-1.02,3.217l-1.021,3.217l-0.201,2.061l-0.201,2.059l2.742-0.688l1.707,0.729l2.605,0.076
+ l2.605,0.076l2.605,0.074l2.605,0.074l0.359,0.516l2.117,0.473l2.115,0.471l3.393-0.408l3.395-0.408l-1.604-1.887l-1.609-1.887l0.057-2.037l0.055-2.039l0.049-2.035l0.047-2.039l2.258-0.086l2.258-0.086z"/>
+ <path style="stroke:none;" d="M270.343,166.134l0-0.016l-0.004-0.01h-0.014l-0.011,0.006l-0.011,0.004l-0.008,0.01l-0.012,0.006l-0.012-0.002l-0.016-0.004h-0.016h-0.013l-0.012,0.004l-0.013,0.004l-0.01,0.004l-0.013,0.004l-0.012,0.004l-0.011,0.006l-0.01,0.006
+ l-0.007,0.012l-0.008,0.012l-0.009,0.008l-0.008,0.01l-0.007,0.012l-0.003,0.014l-0.004,0.018l-0.008,0.01l-0.008,0.01l-0.01,0.008l-0.012,0.002l-0.011,0.006l-0.01,0.008l-0.01,0.008l-0.012,0.004l-0.011,0.006h-0.013l-0.013,0.004l-0.013,0.002l-0.012,0.002
+ l-0.01,0.008l-0.008,0.01l-0.008,0.012l-0.008,0.01l-0.01,0.008l-0.008,0.008l-0.008,0.014l-0.008,0.012l-0.008,0.006l0.014-0.006l0.011,0.004l0.014-0.002l0.012-0.002l0.013-0.006l0.01-0.006l0.011-0.006l0.01-0.008l0.01-0.008l0.009-0.008l0.01-0.006
+ l0.013-0.002l0.008,0.008l0.007,0.008l0.006,0.012l0.009-0.01l0.012-0.004l0.01-0.006l0.012-0.006l0.008-0.01l0.008-0.012l0.011-0.004l0.01-0.008l0.012-0.004l0.012-0.004l0.012-0.006l0.009-0.008l0.012-0.004l0.012-0.004l0.012-0.004l0.011-0.006l0.012-0.006
+ l0.01-0.004l0.009-0.01l0.01-0.008l0.014-0.002l0.012-0.004l0.011-0.004l0.009-0.01l0.007-0.012l0.006-0.016l0.002-0.016v-0.014l0.009-0.01l0.01-0.006l0.01-0.008l0.008-0.012z M270.426,166.056l-0.004,0.012l-0.013,0.004l-0.01,0.004l-0.011,0.006l-0.01,0.008
+ l-0.013,0.002l0.001-0.016l0.009-0.01l0.008-0.01l0.009-0.014h0.012l0.014,0.006l0.008,0.008z"/>
+ <path style="stroke:none;" d="M272.764,169.017l-0.158,0.088l-0.055,0.26l0.437-0.088l-0.224-0.26z"/>
+ <path style="stroke:none;" d="M280.674,318.916l0.526-1.264l-0.569-3.156l-0.549-0.949l1.691,0.172l1.796-0.453l1.8-0.455l1.804-0.455l1.808-0.455l0.855-2.268l0.883-2.271l-1.416-1.049l-0.154-1.877l-2.938-2.086l-1.032-2.975l0.521-1.072l-0.302-1.672
+ l0.132-2.777l0.162-2.777l-0.041-0.256l1.152-1.496l1.165-1.498l1.178-1.5l1.19-1.502l1.381-1.244l1.39-1.246l-0.96-3.305l-1.409-0.086l0.108,1.631l-1.732,2.705l-1.468,0.559l-2.591-0.193l-2.591-0.193l0.846-2.426l0.873-2.428l-2.012-1.18l-2.01-1.18
+ l-1.861-0.838l-1.862-0.836l-2.196-2.102l-2.192-2.102l-0.467-0.6l-2.627,0.428l-0.708,1.414l-1.117-1.5l-2.727-0.557l-0.48-0.344l-1.833,2.658l0.458,0.473l-0.441,2.617l-1.912,0.986l-0.391,1.287l0.345,3.607l0.809,1.502l-0.629,0.688l-0.913,2.316l-0.883,2.316
+ l0.1,1.861l0.116,1.859l-0.369,1.623l-0.101,1.623l1.041,2.096l1.054,2.1l0.553,1.504l-0.278,3.289l0.486,1.742l-1.065,1.746l0.593,2.209l0.612,2.201l0.306,1.52l-0.416,1.641l0.271,2.688l0.8,3.402l0.076,1.996l1.083,1.367l0.982,2.652l1.694,0.953l-1.392,0.498
+ l0.854,0.5l0.515,1.084l0.166,2.006l0.387,2.852l0.351,3.439l-1.234,1.506l1.945,3.33l1.209-0.082l1.239,1.945l1.158,1.113l3.983,0.369l3.436,0.945L277.466,346l-1.424-0.701l0.505,0.041l-0.944-1.527l0.047-0.621l0.909-1.369l-1.062-0.543l0.448-0.207
+ l1.177,0.416l0.081-2.002l1.089-1.633l1.116-1.635l-0.719-0.252l0.693-1.217l-1.208-0.713l-3.214-1.678l-0.048-2.385l2.367-1.166l0.266-1.082l-0.233-2.031l1.501-1.906l-1.628-0.828h1.549l1.179,0.373l-0.645-1.828l-0.625,0.459l-0.825,0.125l-0.64-0.291
+ l-1.682-3.387l2.169,0.42l3.01,0.084z M279.347,348.951l3.107,2.324l4.537,1.463l0.275,0.648l-3.16-0.02l-3.16-0.021l-1.185-2.721l-1.155-2.736l0.74,1.063z M281.717,354.357l1.273,0.727l-2.057-0.646l-0.865-0.443l0.145,0.525l-0.831-0.162l-0.39-0.162
+ l2.23-0.729l-0.614,0.324l1.108,0.566z M282.794,354.154l-1.242-0.729l2.668,0.527l-1.427,0.201z"/>
+ <path style="stroke:none;" d="M501.646,106.996l0.904,1.641l0.844,1.357l2.031,0.983l0.043,0.043l0.322,0.429l2.578,1.466l1.656-0.735l-1.564-2.167l0.783-0.945l-0.85-0.359l0.08-2.292l-1.977-0.318l-3.074-0.034l-3.072-0.033l1.295,0.963z"/>
+ <path style="stroke:none;" d="M253.296,180.693l-0.055,0.064l0.362,0.436l-0.308-0.5z"/>
+ <path style="stroke:none;" d="M711.778,242.568l-0.998-0.172l-0.648-0.256l-0.266,0.342l-0.652-0.215l0.922,0.516l0.914,0.557l-0.424,1.029l-0.645,0.344l-2.033-0.299l-0.768,0.428l-0.615,0.729l-0.41-0.342l-0.295,0.557l-0.854,1.373l-0.188,0.559l-0.934,0.77
+ l-1.033,1.975l0.676,0.258l0.311,0.428l-0.695,0.857l0.838,0.859l-1.777-1.33l-0.211,0.385l-1.551-0.643l-0.469,1.33h-0.412l-0.436,0.387l0.131-0.602l0.469-1.586l-2.188-2.318l-0.221,0.516l-1.006,0.473l-0.102-0.344l-0.492,0.299l-0.514-0.084l-0.422,1.373
+ l-0.395-0.645l-1.193,1.244l0.066,0.814l-0.875-0.17l0.453,1.199l-1.051-0.471l-0.693,1.072l0.205,0.129l0.307-0.043l-0.582,0.6l-0.076,0.688l0.541,0.129l-1.229-0.045H689.7l-0.496-0.17l-0.279,0.557l0.324,1.201l-0.574,0.301l0.018,2.059l-0.646-1.887
+ l-0.658-1.889l-0.77,0.816l-1.461,2.016l-0.064,1.674l-2.193,2.486l-1.76,0.986l-1.756,0.986l-2.6,0.6l-2.037,0.688l-2.035,0.686l-0.639-0.387l-3.037,2.08l-3.041,2.08l-0.895,0.857l0.074-1.672l-1.068,2.445l-1.123,2.787l-0.277,2.273l0.268,1.826l0.242,1.824
+ l-0.545,0.43l-0.104-0.645l-0.67-1.246l0.119,2.619l-0.576-1.115l-0.238-0.086l0.387,2.404l0.342,2.402l0.24,2.209l0.203,2.205l-0.139,1.869l-0.166,1.869l-0.191,1.869l-0.215,1.871l-1.693,2.574l-1.014,0.215l-0.129,1.596l1.498,0.951l1.488,0.953l2.852-0.26
+ l2.68-1.084l0.459-0.346l1.389-1.078l2.428-0.021l2.43-0.021l2.992-0.129l2.182-2.064l2.848-1.07l2.848-1.07l2.715-0.535l2.717-0.533l2.768-0.428l2.77-0.428l1.502,0.512l3.061,1.113l0.662,0.77l0.221,0.6l0.287,1.113l0.223,1.74l0.197,1.748h-0.465l0.982,0.996
+ l0.498-0.391l2.6-2.289l2.66-1.977l1.018-1.285l-0.615,1.93l-1.588,2.045L705.521,303l-1.068,0.695h1.605l1.91-2.383l0.574,1.256l-1.805,2.041h1.32l1.09,2.184l-0.689-2.053l0.564,1.135l-0.842,2.447l0.184,2.619l2.137,0.959l1.547,0.586l1.541,0.584l3.168-1.215
+ l-0.057-0.348l1.387-0.609l-0.934,1.131l0.48,0.088h0.879l0.35,1.256l0.455,0.434l0.668-0.865l4.191-2.086l2.049-0.262l2.715-0.83l1.039-1.396l2.295-2.645l2.25-2.635l2.168-2.854l0.893-0.73l2.59-2.104l1.023-0.641l1.734-2.383l1.691-2.381l1.643-2.385
+ l1.592-2.387l0.139-1.779l0.105-1.779l0.547-2.041l0.504-2.039l-0.293-1.588l-0.811-1.416l-0.83-1.418l-1.408-1.543l0.518-3.002l-0.355,0.557l-1.035-0.943l-0.246,1.029l-0.725-0.686l-0.07-2.102l-0.848-2.016l0.236-0.729l-0.621-0.729l-1.578-1.631l-2.428-1.887
+ l-0.049-2.424l-0.07-2.424l-0.389-1.844l0.215-2.402l-0.443-1.115l-1.227-1.416l-1.477,0.301l-0.145-1.822l-0.164-1.824l-0.217-2.273l-0.568-1.457l-0.449-1.287l-0.232-0.6l-1.158,2.145l-0.467,1.029l-0.57,1.457l0.354,0.172l-0.08,0.301l-0.707,1.029
+ l-0.037,1.029l-0.346,0.043l-0.27,2.102l-0.293,2.102l-1.521,2.939l-1.555,2.938l-1.74,0.301l-1.516-1.244l-2.357-1.588l-2.373-1.586l-1.299-1.502l-1.313-1.502l1.541-2.486l0.701-1.502l0.416,0.258l0.574-0.902l1.064-1.5l-1.061-0.857l-0.898,1.158l-0.252-0.688
+ h-0.602l0.275-0.387l-2.006,0.387l-1.512-0.256l-1.127-0.645l-1.533-1.072z M715.212,323.625l-2.463,1.656l-1.016-0.703l0.133-0.043l-0.086-2.279l0.34-0.25l0.309,0.209l0.26-1.791l0.225-1.803l0.656-0.379l1.859,0.736l1.85,0.734l0.496-0.924l2.734-0.252
+ l-1.871,3.221l-0.438-0.168l-2.598,2.656l0.359-0.414l-0.492-0.082l-0.258-0.125z M707.579,242.396l1.105,0.215l-1.471,1.328l-1.133-1.629l0.396,0.172l1.102-0.086z M706.354,305.351l-3.334,0.654l0.496-0.828h2.172l0.666,0.174z M719.724,248.873l-0.258,0.215
+ l0.441,0.557l-1.453,0.172l0.887-1.156l0.383,0.213z M705.56,242.611l0.957,0.859l-1.305,0.213l0.348-1.072z M750.571,276.794l-0.012,0.688l-1.348,1.674l1.359-2.361z M713.331,316.251l-0.637,0.127l0.943-0.939l-0.307,0.813z M721.343,315.824l0.355,1.064
+ l-0.271,0.043l-0.084-1.107z"/>
+ <path style="stroke:none;" d="M435.853,92.672l3.189,1.006l0.816,0.125l2.291-0.419l1.67-0.545l0.252-0.21l0.697-1.679l0.186-0.167l0.729-0.839l-1.301-1.929l-3.209-0.335l-1.26,0.88l-1.033-0.503l-1.631,1.384l0.324,1.342l-0.586,0.251h-2.371l-1.699,0.083
+ l-0.613,0.42l-1.76-0.378l-0.033,0.672l0.158,0.503h0.168l1.6,0.461l0.002,0.042l1.215,0.125l2.199-0.292z"/>
+ <path style="stroke:none;" d="M510.024,112.181l2.162-1.332l0.615,1.375l-0.217,0.518l1.965,1.3l0.242-1.688l0.549-2.998l1.34-0.254l-2.764-1.688l-1.258-1.633l-3.42-0.593l-0.766,1.229l-0.08,2.292l0.85,0.359l-0.783,0.945l1.564,2.167z"/>
+ <path style="stroke:none;" d="M356.957,115.913l1.185-0.217l-1.497-0.219l0.312,0.436z M351.431,113.782l0.732,0.39l-1.042-0.13l0.31-0.26z M354.39,113.392l-0.708,0.042l0.173-0.303l0.535,0.261z"/>
+ <path style="stroke:none;" d="M239.252,150.181l-0.469-1.848l-0.712,1.588l0.234,0.43l0.947-0.17z M240.758,146.273l0.327-1.115l-1.106-1.289l1.572,1.588l-0.793,0.816z M248.726,158.287l-0.08,0.387l-1.361,0.557l1.441-0.943z M247.239,155.142l-0.817,0.605
+ l0.409-0.785l0.408,0.18z M238.188,144.47l1.535,0.041l-0.903,0.131l-1.477-0.172h0.845z M239.5,151.597l-0.25,0.213l-0.352-0.943l0.297,0.258l0.305,0.473z M242.639,149.451l-0.046-1.459l-0.568-0.387l0.984,1.072l-0.369,0.773z"/>
+ <path style="stroke:none;" d="M523.024,145.886l-0.121,0.602l0.184-0.344l-0.063-0.258z"/>
+ <path style="stroke:none;" d="M610.69,156.271l-0.148-0.258l0.273,0.9l0.455-0.471l0.025-0.857l0.48,0.771l0.357,0.686l0.541-1.93l-0.137-0.686l-0.662-1.459l-2.443-1.459l0.732-0.041l2.158,1.285l0.818,1.502l1.408,0.258l1.299,2.443l1.289,2.445l-0.33-0.773
+ l0.709-0.514l-0.109-1.543l-0.85-2.252l-0.865-2.252l-1.004,1.889l-0.447-0.516l-0.469-2.059l1.627-1.115l0.371-1.074l-1.146-0.859l-2.381-0.236l-2.381-0.234l-0.822-2.105l-0.582,0.43l-0.762-0.73l-1.443-0.645l-0.057,1.891l1.686,1.631l-0.953,0.473
+ l-0.529,1.031l1.67,1.459l0.223,1.457l0.641,1.973l0.629,1.975l0.008-0.215l0.578,0.686l0.119-0.215l0.133-0.9l0.291,0.215z"/>
+ <path style="stroke:none;" d="M277.277,179.365l0.021-0.072l-0.479-0.428l0.128,0.627l0.33-0.127z"/>
+ <path style="stroke:none;" d="M272.965,167.875l0.007-0.047l-0.271-0.23l0.03,0.121l-0.049-0.039l0.161,0.262l0.122-0.066z"/>
+ <path style="stroke:none;" d="M417.933,81.566l-1.584,0.703l0.764,0.87l2.592,1.661l0.92-0.042l0.203,0.25l1.975,1.084h0.066l0.055-0.334l0.523-1.125l0.053-1.288l-0.336-0.249l-0.607-0.538l-0.416-0.827l-2.514-0.166h-1.693z"/>
+ <path style="stroke:none;" d="M212.65,170.982l0.619-2.51l0.631-2.51l-0.212-0.385l-2.084,1.715l-0.398,2.467l-0.385,2.465h0.675l1.155-1.242z"/>
+ <path style="stroke:none;" d="M413.542,184.835h-0.113l-0.264,1.072l1.246,1.502l0.342,2.016l0.076,1.93l0.078,1.93l0.076,1.932l0.078,1.93l2.457-0.387l0.203-3.496l0.201-3.496l1.691-2.873l0.182-2.359l-0.381-1.371l0.074-0.086l-2-1.717l-0.637,0.814
+ l-0.074,0.387v0.043l-0.076,0.215l-1.693,1.029l-1.467,0.986z"/>
+ <path style="stroke:none;" d="M271.368,129.83h-0.036l-0.178,0.17l-0.081,0.045l-0.008,0.041l-0.153,0.043h0.108l0.081-0.043l0.17-0.129l0.008-0.041l0.089-0.086z"/>
+ <path style="stroke:none;" d="M611.581,140.906l-3.186-0.342l-1.465,2.273l0.352,1.031l2.693,0.258l2.1-0.15l2.098-0.15l-0.824-1.33l-0.65-0.816l-1.117-0.773z"/>
+ <path style="stroke:none;" d="M273.124,264.83l0.271-1.115l2.926-0.387l2.928-0.385l2.304,1.672l-0.037,0.428l0.383-0.299l-0.367-0.816l0.469-1.928l0.473-1.932l-0.455-0.986l-1.422-1.416l-0.29-2.23l-2.057-0.215l-2.057-0.213l-0.305-2.016l-0.823-0.988h0.413
+ l-0.367-2.574l-0.671-1.07l-2.545-0.43l-2.552-1.717l-2.016-0.984l-1.652-0.559l-1.728-1.887l-0.191-2.145l-0.181-2.145l-1.781-0.172l-1.885,1.158l-1.882,1.158l-1.05,0.771l-2.907-0.086l1.134,1.994l1.142,1.996l-0.374,0.6l0.003,3.217l-0.348,1.33l-0.087,2.145
+ l0.301,2.145l0.735,0.258l-1.035,2.145l-0.013,1.029l0.64,1.201l0.697,1.758l1.253,1.717l-0.065,1.93l0.6,2.23l0.925,2.293l0.932,2.293l1.583,0.258l1.833-2.658l0.48,0.344l2.727,0.557l1.117,1.5l0.708-1.414l2.627-0.428l0.467,0.6l0.532-2.768l0.543-2.764z"/>
+ <path style="stroke:none;" d="M455.618,276.88l1.523,2.447l-0.4,2.49l0.791,0.346l2.408-0.473l1.127-1.697l1.127-1.697l1.813,0.646l3.326,0.473l1.248-2.148l1.371-0.859l1.215-2.273l2.234-1.93l2.98-1.973l0.119-0.172l-0.535-0.473l-1.963-0.898l-0.801-2.145
+ l-0.566-0.73l-0.387-0.557l-1.66-1.285l-1.301-2.51l-1.307-2.51l-1.74,0.645l-1.789,0.986l-0.828-0.9l-2.623,0.299l-2.621,0.301l-0.072,2.369l-0.074,2.371l-0.074,2.367l-0.076,2.371h-2.225l-0.115,3.559l-0.125,3.561z"/>
+ <path style="stroke:none;" d="M311.102,219.363l-0.451,0.301l-0.887,1.672l0.618-1.973l-0.271-0.514l-0.339,0.213l0.177-1.199l-0.764-0.729l-0.871,0.041l-0.23-0.342l-0.836-0.43l-0.951-0.514l-0.911-0.344l-0.758-0.172l-1.177-0.643l-0.037,0.299l-1.477,0.301
+ l-0.823,1.588l-0.073,0.299l-0.867,0.43l-1.565,2.23l0.167-1.93l-0.676,0.514l-0.762-0.385l-0.795,0.041l-0.741-2.486l-1.585,0.836l-1.583,0.836l-0.76-0.215l1.659-1.029l1.429-2.787l1.461-1.674l1.468-1.672l-0.594-1.373l-1.126-0.943l-0.481-2.209l-0.473-2.209
+ l-0.08,0.215l-0.846-1.287l0.103,0.559h-0.303l-0.115,0.086l-1.501,2.4l-1.493,2.402l-2.195-0.129l-1.511-0.301l-1.356-0.471l-2.014,0.43l0.134,1.328l-1.019-0.299l-2.316,0.428l-2.247,1.115l-1.402,0.043l-1.494-1.887l-0.252-3.045l0.617-2.316l-0.952-1.33
+ l-0.19-1.459l-1.289,0.086l0.188,0.043l-0.64,1.373l-1.893,0.793l-1.892,0.795l-0.399,0.9l-2.066-0.688l-2.252-0.771l0.725,1.33l0.661,2.873l1.43,0.516l-0.39,0.729l-1.955,1.801l-2.325,1.76L262.422,211l-1.251,0.129l-1.81-1.115l-0.491-0.172l-0.844-2.145
+ l-1.225,0.9l-0.564-0.256l0.222,0.385h-1.931h-1.932l0.284,1.674l1.246,0.557l-0.42,0.557l-1.592,0.131l0.49,2.443l0.929,2.701l-0.529,3.604l-0.501,3.604l-0.797-0.086l-1.916,0.516l-1.792,0.857l-1.79,0.857l-0.617,1.973l-0.611,1.975l-1.167,2.059l1.027,1.951
+ l1.034,1.951l-0.097,1.115l0.917,0.215l1.337,1.072l1.833,0.428l1.521-1.242l0.137,1.93l0.145,1.93l2.402-0.172l2.907,0.086l1.05-0.771l1.882-1.158l1.885-1.158l1.781,0.172l0.181,2.145l0.191,2.145l1.728,1.887l1.652,0.559l2.016,0.984l2.552,1.717l2.545,0.43
+ l0.671,1.07l0.367,2.574h-0.413l0.823,0.988l0.305,2.016l2.057,0.213l2.057,0.215l0.29,2.23l1.422,1.416l0.455,0.986L281.999,262l-0.469,1.928l0.367,0.816l-0.383,0.299l0.472,1.158l0.354,3.602l3.157,0.473l1.65,0.215l0.672,2.121l0.681,2.125l1.178-0.043
+ l1.199,0.172l-0.077,2.037l-0.063,2.041l1.409,0.086l0.96,3.305l-1.39,1.246l-1.381,1.244l-1.19,1.502l-1.178,1.5l-1.165,1.498l-1.152,1.496l0.02,0.129l1.153-0.299l2.69,2.092l0.623,0.043l1.362,0.813l2.32,1.707l2.319,1.711l-0.233,1.201l0.515,1.76l0.806-1.611
+ l0.818-1.605l0.11-1.582l0.626-1.58l0.947-1.197l-0.208-1.451l0.091-0.129l1.029,0.342l0.526,0.129l-0.989,1.836l-0.973,1.836l-0.686,0.471l0.185,0.256l1.492-2.072l1.514-2.07l0.916-2.094l0.935-2.1l0.632-1.113l0.142-0.043l-0.003-2.082l0.011-2.082
+ l-0.478-1.416l-0.054-0.902l0.354-0.9l-0.274-0.172l0.9-0.215l1.951-1.867l1.967-1.867l1.877-0.559l1.684-1.201l0.77-0.6l1.484,0.043l-0.694,0.129l1.478-0.559l0.327-0.086h2.555l0.644-1.457l1.359-0.771l0.27-2.83l1.07-1.994l1.074-1.994l0.36-3.475l0.527-1.287
+ l0.128-2.486l0.137-2.488l-0.089-1.889l-0.083-1.887l-0.296-0.771l0.354-2.445l0.669-0.215l0.217,0.771l1.167-2.016l1.175-2.016l0.029-0.258l0.471-0.6l1.359-1.867l1.364-1.865l1.97-2.873l0.419-3.561l-0.973-2.637l-0.969-2.639l-1.84-0.322l-1.84-0.32
+ l-2.455-2.166l-2.453-2.168l-3.154-0.9l-2.158,0.086l-2.013-0.471l-2.013-0.473l-1.736,0.559l0.218-0.773z M298.733,217.476l-0.415,0.215l-1.179-0.516l-0.448,0.688l-0.811-1.889l0.416-0.084l-0.157-1.074l0.716-1.414l2.274,0.344l2.274,0.342l-1.089,2.145
+ l-0.187,0.258l-0.261,0.6h-0.379l-0.754,0.387z M295.077,214.785l-1.731,2.172l1.256-2.326l0.476,0.154z M298.32,212.71l-0.604,0.559l-0.893-0.43l1.497-0.129z M296.969,212.539l-0.475,0.07l0.379-1.023l0.096,0.953z"/>
+ <path style="stroke:none;" d="M266.829,165.687l0.001-0.016l-0.002-0.014l-0.008-0.01l-0.012-0.004l-0.016-0.002l-0.012,0.004l-0.009,0.006l-0.009,0.01l-0.014,0.002l-0.009-0.006l-0.017-0.004l-0.013,0.002l-0.01,0.008l-0.01,0.008l-0.009,0.008l-0.011,0.006
+ l-0.014-0.004l-0.012-0.006l-0.017,0.006l-0.011,0.004l-0.008,0.012l-0.008,0.01l-0.011,0.006l-0.011,0.006l-0.001,0.008l-0.001,0.016l-0.009,0.012l-0.009,0.008l-0.01,0.006l-0.011,0.006l-0.011,0.006l-0.011,0.006l-0.008,0.006l-0.008,0.012l0.001,0.012
+ l0.014,0.002l0.016,0.004l0.014,0.004l0.011,0.004l0.015,0.006h0.015l0.011-0.006l0.01-0.008l0.01-0.008l0.011-0.006l0.01-0.008l0.01-0.008l0.009-0.008l0.011-0.004l0.014-0.004l0.014,0.002l0.009-0.008l0.001-0.014l-0.006-0.008l0.01-0.008l0.01-0.008
+ l0.012,0.006l0.01,0.006l0.01,0.008l0.013,0.004h0.015l0.011-0.006l0.011-0.006l0.009-0.008l0.005-0.012l0-0.016l0.008-0.01l0.007-0.012z M267.537,165.011l-0.004,0.018l-0.012,0.004l-0.007,0.008l-0.011-0.004l-0.009-0.01l-0.008-0.008l-0.008-0.008L267.471,165
+ l-0.008-0.008l-0.008-0.008l-0.01-0.006l-0.01-0.01l-0.014-0.002l-0.014-0.004l-0.014-0.004h-0.015h-0.015h-0.013h-0.015h-0.015l-0.016-0.002l-0.015-0.002l-0.015-0.002l-0.014-0.004l-0.013-0.004l-0.007-0.01l-0.008-0.008l0.003-0.016l0.013,0.002l0.012-0.004
+ l0.014-0.002l0.014-0.002h0.014h0.015l0.015,0.002l0.016,0.002l0.013-0.002l0.013-0.002l0.012-0.006l0.012-0.002l0.013-0.004h0.014h0.015l0.012,0.006l0.007,0.01l0.005,0.01l0.008,0.008l0.01,0.008l0.008,0.01l0.01,0.006l0.01,0.008l0.01,0.006l0.005,0.01
+ l0.006,0.012l0.004,0.012l0,0.014z M267.371,165.517l-0.004,0.012l-0.008,0.012l-0.01,0.008l-0.011,0.006l-0.014,0.002h-0.014l-0.01,0.008l-0.01,0.008l-0.009,0.008l-0.007,0.014l-0.015-0.002l-0.01-0.006h-0.011l-0.006,0.014l-0.008,0.012l-0.01,0.006
+ l-0.013,0.002l-0.013,0.004l-0.011,0.006l-0.01,0.008l-0.01,0.008l-0.007,0.012l-0.008,0.012l-0.006,0.012l-0.007,0.014l-0.01,0.006l-0.01,0.008l-0.013,0.004l-0.002-0.01l0-0.014l0.002-0.016l0.001-0.018l0.008-0.01l0.01-0.01l0.011-0.004l0.01-0.01l0.009-0.008
+ l0.01-0.008l0.008-0.01l0.009-0.01l-0.002-0.012l-0.002-0.014l-0.006-0.01l-0.004-0.012l0.003-0.014l0.008-0.008l0.015,0.002l0.008,0.008l0.013-0.002l0.014,0.004l0.01,0.008h0.015l0.011,0.006l0.012,0.004l0.011-0.004l0.007-0.012l0.007-0.012l0.012-0.004h0.012
+ l0.012,0.006l0.013-0.004l0.011-0.006l0.012-0.002l0.007,0.008z M266.449,165.679l-0.005,0.016l-0.01,0.008l-0.013,0.002l-0.014-0.004l-0.012-0.006l-0.012-0.004l-0.015-0.004h-0.015l-0.015-0.002l-0.014-0.004l0.011-0.01h0.012l0.013-0.002l0.011-0.006
+ l0.01-0.008l0.008-0.006l0.01-0.008l0.012-0.004l0.013,0.002l0.01,0.008l0.006,0.01l0.006,0.01l0.004,0.012z M266.802,165.91l-0.002,0.018l-0.004,0.016l-0.006,0.014l-0.009,0.008l-0.006-0.01l-0.002-0.012l-0.006-0.01l-0.013-0.002l-0.012,0.004l-0.013-0.002
+ l-0.012-0.006l-0.011,0.006l-0.01-0.008l0.004-0.016l0.014,0.002l0.01-0.008l0.011-0.006l0.01-0.008h0.013h0.015l0.009,0.006l0.012,0.006l0.008,0.008z M266.733,165.978l-0.005,0.014l-0.014,0.002h-0.012l-0.007,0.012l-0.009,0.006l-0.011,0.006l-0.011,0.006
+ l-0.011-0.002l0.003-0.014l0.005-0.012l0.006-0.014l-0.004-0.002l0.01-0.002l0.013-0.002l0.013,0.002l0.011-0.006l0.013-0.002l0.01,0.008z M266.922,165.574l-0.004,0.018l-0.005,0.016l-0.004,0.016l-0.013,0.002l-0.007-0.008l0-0.014l0.002-0.016l0.004-0.016
+ l0.004-0.018l-0.002-0.016l0.008,0.006l0.008,0.008l0.008,0.008l0.002,0.014z M266.839,165.58l-0.007,0.012h-0.012l-0.008-0.008l-0.01-0.008l-0.01-0.006l-0.006-0.012l-0.001-0.012l0.003-0.016l0.008,0.01l0.006,0.01l0.003,0.006l0.008,0.008h0.013l0.014,0.002
+ l0,0.014z M266.895,165.853l-0.006,0.014h-0.014l-0.009-0.004l-0.005-0.01l-0.004-0.012l0.003-0.014l0.005-0.008l0.009,0.004l0.014,0.004l0.006,0.01v0.016z M267.01,165.812l-0.003,0.01l-0.012,0.004l-0.014,0.002l-0.013-0.002l0.006-0.014l0.011-0.006
+ l0.014-0.002l0.01,0.008z M266.235,165.685l-0.01,0.006h-0.012l-0.006-0.012v-0.012l0.009-0.006l0.008,0.002l0.01,0.008l0.001,0.014z M266.966,165.611l-0.005,0.01l-0.013,0.002l-0.016-0.002l0.003-0.014l0.013-0.008h0.012l0.006,0.012z M266.942,165.837
+ l-0.012,0.004l-0.007-0.01l0.001-0.016h0.011l0.008,0.01l-0.001,0.012z"/>
+ <path style="stroke:none;" d="M671.628,202.722l0.486-0.986l0.361-1.158l0.029-0.172l-2.111,0.943l1.234,1.373z"/>
+ <path style="stroke:none;" d="M458.259,100.054l-0.479-0.621l-0.195,1.657l0.963,1.284l-0.834,1.203l0.932,1.329l0.42,1.712l2.223-0.293l3.582,0.418l0.822-0.668l0.371-0.376l0.385-0.542l2.99-0.125l-0.898-1.081l0.398-0.913l0.518-1.534l0.566-0.869l-3.973-0.829
+ l-3.191,0.994l-2.301-0.373l-2.299-0.373z"/>
+ <path style="stroke:none;" d="M413.542,184.835l1.467-0.986l1.693-1.029l0.076-0.215v-0.086l-0.531-1.287l-0.527-0.771l-0.791,0.172l-1.355-1.072l0.074-0.814l0.34-0.086l-1.844-1.889l-0.264-2.229l-2.137-0.215l-2.816,1.414l-0.303,0.988l-1.314,0.041
+ l-0.867,1.244l-0.451,0.258l-0.381,0.945l-1.463-0.559l-0.307,1.416l-0.494,1.07l-1.246,1.158l-0.645,0.602l-0.579,3.389l0.94,0.428l1.314,1.459l2.152-0.602l1.996,1.158l-0.164-1.949l-0.166-1.953l2.713-0.086l2.713-0.086l0.604-0.17l1.883,0.342h0.68z"/>
+ <path style="stroke:none;" d="M480.808,220.607l0.012-1.285l-1.25-0.172l-0.234,0.814l-1.969,0.129l-0.076,0.127l0.074,0.172l0.396,2.102l0.393,2.104h0.568l1.322-1.588l1.324-1.588l-0.561-0.814z"/>
+ <path style="stroke:none;" d="M473.464,76.296l-2.566-2.191l-0.422-2.802l-3.016-0.525l-3.008-0.525l-2.672,0.301l-2.904,1.961l-2.953,1.969l1.621,3.138l-1.242,1.68l1.076,0.74l3.428,0.027l3.43,0.027l3.408,0.637l3.418,0.639l-0.117-0.934l2.357-1.211
+ l-0.523-2.225l0.686-0.708z"/>
+ <path style="stroke:none;" d="M439.04,228.029l0.758-0.174l0.201-2.014l1.063-0.773l-0.867-0.387l-1.521,1.375l0.367,1.973z"/>
+ <path style="stroke:none;" d="M446.845,187.453l-1.5-2.574l-0.227-2.873l-1.162-2.531h-0.865l0.363,1.887l0.992,0.988l-0.547,1.457l-1.566,1.416l-0.828,1.844l-0.83,1.844l-0.852,2.102l-0.82,1.287l-0.854,2.273l-1.424,2.016l-1.408-1.5l-1.736,0.557l-1.012,1.502
+ l-1.016,1.5l-0.674,2.102l-0.188,0.473l0.379-0.086l0.648,1.459l1.516,0.172l0.152,0.471l0.27,1.158l0.008,2.703l1.723,0.234l1.725,0.236h2.234h2.234l2.236,0.043l1.951,0.494l1.953,0.492l0.449-1.158l-0.689-2.314l-1.262-1.824l-1.258-1.822l-0.742-3.561
+ l1.139-2.08l1.135-2.08l-1.465-3.303l-1.947-2.402l1.162-0.6h2.602z"/>
+ <path style="stroke:none;" d="M264.829,46.459l-0.891-0.783l2.328,0.112l1.201,0.596l1.063-0.224l-0.845-1.301l0.89,0.26l0.433,0.148l0.729,0.707l4.119-1.522l0.781-1.18l-0.239-1.1l0.211-0.73l2.123-0.691l-1.197-0.218l1.648-0.724l-2.656-0.721l1.855-0.216
+ l-5.086-0.144l-0.488,1.189l0.254,0.47l-0.267,0.436h-1.464l-3.883,3.039l-1.314,0.185l-0.364-1.728l0.583-0.402l1.086-1.492l-1.446-0.652l-3.113,2.144l0.766-1.854l-0.532-0.434l1.661-0.361l-1.105-0.36L259.87,38.8l-0.231-0.216l1.438-0.68l-0.061-0.286
+ l0.894,0.036l-0.695-1.386l0.519-1.304l-0.954-0.667l-0.656-0.07l0.483-0.384l-1.33,0.349h0.772l-2.516,0.595l0.367,0.421l-1.762,0.141l-0.728,1.414l0.439,0.177l-1.248,0.25l-0.647,1.178l3.768,1.042l-1.09,0.289l0.179-0.216l-0.996,0.505l-1.021,0.87
+ l1.716-0.544l-0.789,0.763l-3.448,1.167l-1.447,1.616l-0.907,0.924h-1.1l0.069,0.408l-0.123-0.482h0.225l1.192-0.222l-0.526-0.222l0.555-0.48l-0.961,0.147l2.328-2.165l-1.528,0.402l0.243-0.292l-1.831-0.365l-1.423,0.402l0.417,0.695l1.152,0.293l-1.681,0.074
+ l-0.503-0.696l-0.586,0.696l-3.345-0.074l-3.344-0.073l-1.021-0.549l-1.372-0.147l-0.573-0.839l-0.518-0.908l-5.365,1.273l1.071,0.402l2.616-0.548l1.653-0.292l-3.186,1.022l-1.539,0.219l-1.019,2.581l-0.646-0.444l-0.476,1.485l-0.692-1.781l1.205,0.037
+ l-0.367-1.106l-0.894,0.516l-0.036-0.81l-1.186-0.403l-6.451,0.587l-2.283-0.55l2.53-0.732l0.917-0.255l-1.779-1.345l-1.094,0.29l-4.318-1.048l-4.248-1.043l-2.311,1.007l-0.941-0.216l0.75-0.503l0.429-0.967l-0.525,0.394l-0.793,0.538l-1.098,0.396l-0.794,0.468
+ l-0.706-1.509l-0.769-1.07l0.256,0.641l-3.61,1.074l0.155-0.323l-3.756,0.646l3.76-1.326l-2.624,0.357l-4.288,1.077l-4.313,1.083l-0.519,0.653l-1.413-0.254l-0.263,0.363l-3.353-1.069l-3.291-1.063l-3.143,2.538l-3.091,2.571l-3.045,2.604l-3.007,2.633
+ l-2.974,2.661l-2.939,2.687l-2.902,2.712l-2.862,2.737l3.62-0.118l-0.85,0.627l0.47,0.433l-0.1,2.367l1.71-0.593l1.406-0.75l2.596-0.788l0.544,2.527l-0.487,2.226l-0.432,2.239l0.945,1.144l0.969,1.147l-2.034,2.221l1.788-1.536l0.028,0.444l-1.655,1.052
+ l0.28,0.081l-1.068,0.851l-0.63-0.081l0.015,0.852l-0.347-0.609l-0.248,1.015l1.055-0.081h-0.637l-0.058,0.569l-0.466-0.285l0.196,1.67l2.575-1.589l-1.034,1.466l0.605,0.245l-1.147-0.367l-0.215,1.675l0.418-0.204l-1.479,1.516l0.803-0.492l-0.09,0.657
+ l2.922-1.559l-0.987,1.229l-0.045,0.863l-0.342-0.822l-2.37,1.275l0.147,0.577l0.635-0.454l1.34,0.248l-2.194,0.454l-0.605,0.33l0.982,0.125l-1.218,0.455l1.567,0.579l0.538-0.29l0.5,0.166l-0.801,0.248l0.917,0.042l-0.631,0.331l1.694-0.58l0.303-0.372
+ l-0.952,0.911l-0.809,0.125l-0.297,0.415l1.469-0.498l0.009,0.539l1.373-0.87l-0.689,1.203l1.272-0.457l-1.708,1.081l1.022,0.667l0.913-1.041l-0.603,1.458h0.33h-0.891l0.924,0.292l0.818-0.334l-0.663,0.794l0.611,0.125l-0.844,0.376l0.68,0.376l3.429-0.002
+ l3.429-0.003l3.428-0.002l3.429-0.002l3.429-0.003l3.429-0.003l3.429-0.002l3.429-0.003l3.428-0.003l3.429-0.002l3.428-0.003l3.429-0.003l3.428-0.002l3.428-0.003l3.428-0.003l3.428-0.002l0.898-0.92l-0.278,1.464l2.26,0.461l2.905,1.216l1.804-0.294l1.638,0.629
+ l2.741-0.671l1.699,1.102l1.717,1.102l1.735,1.101l1.751,1.101l0.187,1.089l0.727-0.126l-0.226,0.712l1.638,1.211l-0.462,2.205l-0.445,2.195l-1.136,1.409l-2.48,2.408l0.622,0.917l2.193-0.708l2.19-0.708l2.185-0.706l2.182-0.705l0.195-1.617l2.527-0.206
+ l2.525-0.208l2.071-1.492l2.065-1.495l3.973-0.229l3.97-0.229l1.375-0.833l1.869-1.587l1.742-1.864l1.742-1.867l0.191,0.504l0.986-0.042l1.354,0.545l-0.943,3.101l0.579,1.627l0.515,0.292l1.892-0.708l-0.142,0.125l2.942-0.834l0.495-1.129l0.232,0.545h0.439
+ l-1.542,1.127l3.111,0.125l-1.89,0.625l-0.127-0.458l-3.171,1.54l0.522-0.249l-1.825,0.914l0.61-0.415l-0.932,1.203l0.537,1.325l1.315-0.373l2.965-2.28l0.339,0.332l0.673-0.415l0.242,0.208l2.625-0.853l2.616-0.854l-0.67-0.25l0.571-0.209l-1.059-1.086
+ l-0.816,0.46l-1.68-0.25l-1.425-0.627l-1.068-0.46l0.036-1.887l-0.784-0.167l1.476-1.637l-1.731,0.085l-0.131-0.504l-1.901-0.294l0.491-0.167h2.066l2.674-0.923l0.164-0.88l0.45,0.042l-0.113-0.544l-2.319-0.753l-2.896,0.795l-2.903,0.796l-2.158,1.383
+ l-2.161,1.385l-3.124,1.72l1.992-1.594l1.991-1.595l-2.188-0.839l2.052,0.755l2.94-1.97l3.012-1.003l2.233-2.043l4.374-0.104l4.371-0.104l3.822-0.042l3.57-2.032l3.422-0.868l3.78-1.976l-0.951-0.534l0.928-0.164l-1.368-0.246l1.103-0.205l0.034-0.287l0.366-0.776
+ l0.225-0.735l-1.256-0.611l0.172-0.123l-1.365,0.326l0.311-1.465l-1.779,0.244l1.005,0.041l-3.237,0.978l-2.469,0.774l0.844-0.367l-0.999-0.571l1.248,0.082l3.649-1.302l-2.463,0.447l4.594-1.299l-2.723-1.013l-0.664,0.081l0.552-0.606l-1.58,0.89l0.711-0.688
+ l-0.142-0.202l-0.996,0.283l0.271-0.445l-1.173,0.566l0.524-0.445l0.32-0.485l0.198-0.888l-0.573,0.564l0.037-0.403l-0.878-0.927l-1.085-0.402h0.938l-0.688-0.522l0.598-0.161l-0.792-0.12h0.593l-0.854-0.562l0.388,0.04l0.612,0.32l1.37-0.961l-0.753-0.64
+ l-0.479-0.399l0.736-0.559l-0.746-0.558l-0.182-0.358l-1.012,0.199l1.353-0.557l-0.096-0.477l-1.687,0.477l1.79-1.19l-0.563-0.515l-0.758-0.079l0.745-0.632l-0.409-0.237l-0.484-1.181l0.014-0.354l-0.739,0.157l0.629-0.628l-1.186,0.589l-0.006,0.589l-1.068,0.08
+ l0.371,0.63l-0.544,0.316l-0.724,0.632l-1.007,0.91l-0.376,0.675l-0.412-0.952l-1.787,0.991l-1.542,1.114l0.28-0.915l-0.743,0.397l0.395-0.953l-1.064,1.192l-2.095,0.637l2.715-1.353l-0.277-1.388l-2.365,0.515l-0.533-0.158l0.859-0.436l0.697,0.198l0.661-1.146
+ l-0.431-0.355l0.587-1.103l-2.148-0.235l2.649-0.275l0.391-1.175l0.382-0.625l-0.78,0.117l-2.536-1.091l0.645-0.699l-0.718,0.116l-0.588-0.775l0.184-0.387l-1.789-0.772l-1.992,0.695h-2.015l0.652-0.309l-3.536-0.424l-1.444,1.74l0.15,0.66l-1.255,1.598h0.51
+ l-0.445,1.685l-0.803,0.944l-0.477,0.039l-2.882,2.372l2.029,2.267l-1.129,2.08l-1.114,2.09l-2.703,1.311l-2.714,1.315l-1.402,0.567l0.214,1.706l-0.864,3.39l-0.988,1.396l-0.65,1.112l-0.496,0.578l-0.339-0.949l-1.395,1.527l0.331,0.704l-1.405-1.407
+ l-1.557,0.744l1.543-1.198l-1.511-1.769l0.411-0.698l-0.193-1.719l0.932-2.343l0.96-2.332l-2.434-0.142l-2.432-0.141l-0.583,0.364l0.845-0.606l-1.811-0.888l-1.793-0.886l-2.141-2.008l-2.526-0.841l-3.238,0.801l0.152-0.24l-0.593,0.2l1.624-2.915l-0.179-1.271
+ l-1.748,0.278l-0.795,0.874l0.701-1.191l-0.116-0.871l2.718-3.383l3.827-2.728l0.26-0.62l1.887-0.696l-0.458-0.231l0.813,0.231l0.757-0.694l1.107-0.231l0.037-0.385l2.964-0.576l0.276-0.767l-2.13-0.497l0.313-0.191l-1.995-0.343l0.013-0.571l2.635,0.514
+ l2.65,0.515l0.801-0.763l0.591-0.342l0.982,0.38l0.03-0.457l1.063,0.266l4-2.084l0.508-0.603l-3.643-0.602l-2.2-1.012l4.104,0.711l1.239,0.714l3.915-1.949z M295.243,36.977l-0.723,1.07l1.454-1.07l2.451-0.78l-0.938,0.531l0.793-0.142l2.234,0.355l-3.83,1.213
+ l2.734-0.5l-2.867,1.146l1.244-0.288l2.647-1.108l0.924,1.252l-4.676,0.359l1.938-0.036l2.772,0.866l-3.601-0.361l1.235,0.18l-1.438,0.108l0.802,0.036l-0.758,0.253l1.841,0.145l-1.116,0.254l0.704,0.254l-1.944-0.072l1.346,0.29l-1.282,0.109l2.519,0.473
+ l-1.425,0.256l0.825,0.109l0.715,0.255h0.834l-0.604,0.623l1.092-0.403l-0.4,0.513l0.625-0.367l0.342,0.587l1.014-0.771l-0.422,0.66l0.387,0.11l0.966,0.331l0.041,0.184l-1.458,0.258l0.894,0.111l-1.027,0.185l1.437-0.111l-1.256,0.295l1.789,0.074l0.554-0.407
+ l-0.887,1.036l0.061,0.26l1.271-0.593l-0.016,0.408h0.565l0.418-0.371l1.333,0.705l-1.028-0.037l0.32,0.372l-0.019,0.149l-1.181,0.037l-0.958,0.373l0.852,0.224l-1.253,0.224l0.569,0.225l-0.79,0.149l-0.411,0.525l-0.71-0.674l-0.664,0.899l-0.134,0.15
+ l-0.071,0.979l-0.872-0.151l-0.533-0.415l-0.502,0.415l0.333-0.752l-0.965,0.037l0.258-0.488l-0.503-0.075l1.282-0.749l1.411-0.784l-3.094,0.896l1.153-0.822l-0.558,0.298l-1.407-0.596l-0.904-0.261l0.167,0.261l-0.864,0.074l0.196,0.671l-0.553,0.486
+ l-1.322-0.896l0.343,0.71l0.122,0.449l-0.264,0.375l1.063-0.113l0.004,0.676l-0.066,0.603l0.503-0.188l-0.323,0.604l0.228-0.264l0.514,0.604l0.479,0.076l0.43,0.227l0.256,0.341l-0.178,0.455l0.104,0.418l0.514,0.19l-0.193,0.61l-0.27,0.764l-0.469-0.574
+ l-0.265,1.57l-0.616,0.116l-0.082,0.692l-0.386-0.347l-1.238-0.461l-0.566-0.499l-0.247,0.307l-1.174-1.34l-0.372,0.65l-1.839-0.879l1.501,1.607l1.541,1.616l0.079,1.083l-2.771-0.909l-2.744-0.906l-2.03-0.922l-0.945-0.729l1.17-0.42l-1.214-0.229l-0.099-0.496
+ l-1.062-0.685l0.383-0.911l-0.7-0.038l-1.079,0.607l0.07-0.758l-0.464-0.529l-0.467,0.832l-1.545-0.076l-0.275,0.266l-2.142,0.379l-2.07-0.683l2.159-1.661l2.846,0.226l-0.002,0.905l0.327-0.302l-0.255-0.528l3.866-0.752l-0.419-1.385l2.326-0.932l3.58,0.074
+ l-0.504,1.007l0.834-0.261h1.904l0.768-0.596l-1.814-1.299l-1.147,0.89l-2.586-0.26l1.537-0.815l0.399-2.462l-0.982-0.073l0.24-0.984l-0.553,0.473l-0.714-0.945l-0.9-0.181l-2.082,0.726l0.1-0.399l1.555-0.471l-0.353-1.226l-0.73,0.108l0.386-0.323l-1.293-0.144
+ l0.47-0.787l-1.185-0.356l0.002-0.605l-1.224,0.569l0.396,0.928l-4.75-0.394l1.085,0.752l-2.883-1.144l1.589,0.786l-6.184-0.179l-0.853-0.856l-0.709,0.142l-0.275,0.142l-2.02-0.356l-0.396-1.099l3.235-0.106l-3.67-0.846l3.456-2.96l3.146-1.511l5.446-0.478
+ l-2.639,1.129l-2.667,2.56l1.341,1.26l-3.039,0.81l2.395-0.07l1.371-0.845l-0.915-0.911l0.428-0.453l1.845,0.209l-0.301-0.696h-0.529l0.125-1.142l2.47,0.311l-1.321-0.518l1.946-0.068l-1.718-0.378l1.093-0.206l1.482-0.206l-0.213-0.206l4.149-0.41l0.4,1.888
+ l-2.146,0.97l0.642-0.208l-0.526,0.835l0.75-0.313h0.795l-0.074-0.278l0.927-0.035l0.505-0.139l-0.034,0.695l0.266,0.314l-0.16-0.209l1.226,0.384l-0.799-0.837l2.465,0.104l-1.24-0.833h3.876l1.175,0.659l-2.896,0.872l1.659-0.558l-0.906,0.768l0.86-0.524
+ l2.13,0.104l-2.36,0.805l0.643,0.035l-0.975,0.773l2.244-1.019l0.389-0.21l-0.775,0.912l0.877-0.527l-0.682,1.021l0.824-0.494l-0.125,0.494l1.673-0.916l2.058,0.598l-1.424,0.282l-1.248,0.778l2.185-0.531l1.01,0.142l-2.672,1.028l0.472-0.142z M291.186,21.674
+ l-3.2,1.078l-1.725-0.855l1.533-0.527l-2.931-0.484l7.618-0.736l-3.299-2.14l4.509-0.186l1.933,0.772l-1.124-0.975l7.077-0.971l3.683-0.898l-7.45,0.645l-7.545,0.658l6.427-0.866l-7.569,0.913l-2.208-0.482l7.021-0.65l-7.456,0.166l4.654-0.487l-5.838-0.255
+ l7.784-0.833l9.563,0.5l-1.127-1.464l7.657,0.288l-1.758-0.554l10.42,0.509l10.539,0.52l-6.986,0.959l-7.125,0.993l8.271-0.693l-7.54,1.501l-7.753,1.569l-7.064,0.622l4.056,0.614l-5.506,0.417l4.502,0.308l-6.349,1.282l-0.479,0.901l-5.069,0.291l3.979,1.273
+ l-5.103,0.408l-5.672-0.139l-5.66-0.138l3.881-1.29l-0.726-0.88l5.959,0.612l3.196-1.291z M237.269,40.351l-0.943-0.759l-0.625-0.181l-2.93,0.976l-4.645,0.472l-4.665,0.473l0.153-1.162l-4.157-1.227l0.895-1.111l4.808-0.232l4.797-0.231l-4.492-0.604
+ l-4.796-0.213l-0.42-0.602l5.984-1.127l-4.569,0.071l1.275-0.351l-2.202-0.035l3.048-1.36l-0.178-0.347l4.205-0.916l4.183-0.911l0.381,0.48l-2.027,1.104l1.657-0.276l1.521-0.552l1.716,0.933l-1.11,0.555l0.76-0.139l2.209-0.208l0.261-0.554l0.255-0.586
+ l1.793,0.933l-0.99,1.951l1.628-0.7l1.549-2.562l2.679-0.034l0.504,1.379l-1.569,2.795l0.218,1.309l0.582,0.071l2.697,0.89l-0.347,0.5l-1.197,0.539l0.298-0.539l-1.179,0.395l-0.671-0.072l-1.172,0.503l-0.597-0.036l-0.774,0.938l2.56-0.794l-0.259,0.469
+ l-0.947,0.687h-5.155z M220.188,33.529l-2.91,1.504l-4.468,0.74l-0.717-1.511l-0.874-0.663l2.841-1.318l1.023-0.689l3.52-1.506l-0.078-1.019l6.138-0.203l1.422,0.474l0.474,0.237l3.122-0.305l1.384,1.499l-4.42,1.082l-4.441,1.089l-2.016,0.591z M278.212,17.911
+ l-1.092-0.663l5.094-0.989l6.148,1.234L286.855,19l3.106,0.47l-5.432,0.903l-2.353,1.073l-0.948-0.768l-0.146,0.832l-5.122-1.439l6.145-0.556l-7.012-0.747l3.119-0.859z M276.389,26.201l5.092-0.077l5.086-0.076l3.824,0.875l-0.632,0.971l-4.885,0.09l-4.892,0.09
+ l-4.897,0.09l-4.904,0.09l0.78-1.643l0.85-1.622l-4.877-0.763l5.336-0.152l-1.126,0.79l6.155,0.39l-3.362-0.054l2.453,1z M299.424,90.951l0.099-0.461l-3.753,0.504l-3.219-0.294l0.794-0.966l1.538-1.006l-1.582-0.042l0.702-0.335l1.87-1.005l0.18,0.167
+ l0.394-0.627l-0.431-0.418l0.831-0.334l2.096-2.747l2.238-1.944l1.109-0.206l0.833,0.042l-1.407,0.619l0.388,0.414l-0.842,0.787l-2.422,2.995l1.975-1.376l-0.373,0.458l1.441-0.084l-1.37,0.709l0.005,0.417l1.397,0.292l-0.261,0.544l1.875-0.752l-0.123,0.418
+ l1.742-0.083l-1.288,1.254l0.376,0.544l-0.752,0.545l2.333-0.502l-2.224,1.3l0.305,0.462h-0.167l-0.074,0.755l1.992-1.427l-0.889,1.427l0.905-0.504l0.142,0.713l-1.709,2.266l-0.762-0.42l0.035-0.754l-1.176,0.503l1.028-1.804l-0.361-0.629l-1.15,1.259l0.53-0.588
+ l-3.159,1.846l-0.116-0.545l2.631-1.51l-0.659,0.209l0.408-0.503l-0.962,0.335l-0.944,0.504l-0.767-0.126l0.751-0.294z M237.402,28.89l-1.954-0.583l6.468-1.145l-4.93-0.034l-4.928-0.033l4.703-0.763l-2.125-0.233l3.125-0.21l-1.429-0.542l5.683,0.264l3.92,1.046
+ l0.109-1.811l3.402-0.801l-1.265,2.055l3.808-0.096l-2.93,1.6l-2.407-0.108l-4.612,0.697l-4.639,0.7z M260.264,30.292l-1.549,1.901l-1.488,1.924l-2.949,0.038l-0.368,0.796l-2.41-1.365l-2.324-1.354l3.952-0.116l1.37-0.815l-0.677-1.044l6.442,0.035z
+ M267.316,51.817l-1.067-0.419l0.117-0.267l-1.002,0.418l-4.098,1.873l-0.133-1.339l-2.584,0.153l2.633-1.257l1.645-1.894l1.648-1.879l0.95,0.525l-0.164,0.865l0.948-0.339l3.191,2.001l-1.115,1.14l2.511,0.076l0.271,0.496l-2.167,0.611l-1.584-0.764z
+ M266.62,32.039l-3.794,0.207l0.456,0.416l-1.777,1.042l-1.939,0.175l0.375-0.349l2.07-2.932l1.339-0.171l-0.2-0.478l1.35-0.442l6.639,0.408l-1.722,0.75l-2.794,1.374z M235.22,24.539l0.265-0.326l-1.807,0.587l-1.667,0.524l-0.207-0.295l-1.111,0.823
+ l-1.394,0.132l-0.011-0.561l-1.15,0.297l-1.614-0.066l0.978-0.658l5.252-1.107l3.547-0.869l2.446-0.16l2.19,0.288l-1.972,0.482l0.376,0.258l-0.646,0.195l-2.344,0.553l-1.228,0.557l0.095-0.655z M264.143,20.084l0.157-0.152l1.856,0.152l0.67,0.183l-0.262,0.738
+ l0.459,0.685l-2.063,0.535l-2.05-0.941l-3.732-0.125l0.804-0.433l1.918-0.154l-0.129-0.489l-1.324,0.091l-0.387-0.515l4.104-0.121l-0.02,0.544z M259.955,25.424l0.596,0.198l0.809-0.198l-1-0.754l2.425,0.098l1.483-0.326l0.393,0.621l-1.55,1.154l0.721,0.1
+ l-0.479,0.566h-1.166l-0.382,0.367l-0.365,0.402l-3.524-0.335l0.126-0.334l3.557-0.699l-5.833,0.066l2.219-0.299l0.008-0.198l0.045-0.396l1.068-0.263l-0.613-0.197l1.465,0.427z M163.68,87.137l-0.455,0.335l-1.571-0.126l0.513-0.418l-0.681-0.167l-0.924-0.292
+ l1.42-0.626l-1.304-0.542l-0.109-0.5l-0.802-0.167l-0.159-0.375l0.977-0.581l-0.519,0.083l-0.697-0.705l2.156,0.477l2.165,0.478l0.564,1.165l0.957,1.502l0.152,1.884l0.122,0.377l-3.112-0.88l1.308-0.921z M289.452,30.392l2.048,1.579l-5.474,0.345l-0.762-0.655
+ l-0.575-0.481l0.385-0.65l4.377-0.137z M252.743,39.881l0.217,0.724l0.748-0.037l-2.912,0.873l-4.029-1.235l2.515-0.614l0.585-0.577l0.175,0.144l0.97-0.826l1.887,1.331l-0.156,0.217z M268.86,21.253l0.666-0.864l4.185,0.739l-0.642,0.468l-3.688,0.629
+ l-0.422-0.566l-0.098-0.406z M264.785,28.054l-1.328-0.336l3.763-1.269l1.192,1.067l-0.568,0.671l-3.059-0.134z M285.41,43.272l-3.342,0.885l-0.399-1.068l2.676-1.318l1.595,0.584l-0.53,0.917z M245.233,32.039l-1.217-1.271l3.541-0.547l0.557,0.444l-2.88,1.374z
+ M187.566,39.917l0.558-0.397l0.71-0.18l2.012-0.468l0.883,0.107l-2.977,1.517l-0.243,0.254l-1.623-0.471l0.471-0.579l0.208,0.217z M290.219,95.144l-3.319,1.044l0.129-1.547l2.489-1.885l-0.58,1.592l-1.162,0.837h0.405l-0.374,0.46l1.234-0.627l-0.827,0.167
+ l0.989-0.711l-0.585,0.377l1.001-0.418l0.599,0.711z M266.903,53.884l-0.409,0.461l-3.928,1.35l1.248-1.581l3.089-0.23z M157.218,76.928h-1.38l0.647-0.123l-0.21-0.327l0.397-1.385l1.162-0.204l0.468,0.163l-1.515,0.814l1.1-0.244l1.839-0.936l-2.507,2.241z
+ M283.76,94.851l-0.038-0.418l-1.782-0.754l-0.074-0.714l0.739-0.629l0.156,1.3l3.455,0.251l-1.243,0.754l-1.212,0.21z M288.971,87.095l-1.26,0.208l-1.789-0.919l-1.774-0.918l0.495-0.375l2.155,1.001l2.173,1.003z M269.086,56.78l-0.657-0.194l0.958-1.431
+ l1.167,0.27l-1.469,1.355z M262.678,69.673l-1.771,1.087l0.921-0.846l-1.21,0.563l1.937-1.569l-0.399,0.804l0.961-0.804l0.168,0.563l-1.203,1.086l0.933-1.167l-1.058,1.167l0.721-0.886z M255.133,77.05l0.304,1.063l-2.395-0.614l2.091-0.449z M156.77,77.868
+ l0.2,1.682l-0.809-1.804l-0.303-0.532l1.765,0.042l-0.551,0.163l-0.303,0.45z M163.037,76.791l0.285,0.838l-1.007,0.882l0.66-0.796l-0.967,0.689l0.821-1.076l-0.625,0.425l0.833-0.963z M161.83,77.019l0.191-1.702l0.387,1.253l-0.578,0.449z M295.769,56.896
+ l-0.465,0.466l-1.003-0.388l1.469-0.078z M288.792,59.625l-1.209,0.549l0.854-0.862l0.355,0.313z M161.587,75.472l-0.68-0.053l1.127-0.49l-0.448,0.543z M288.278,90.91l-1.553,1.007l1.086-0.798l-0.607,0.336l1.073-0.545z"/>
+ <path style="stroke:none;" d="M381.387,138.777l-1.305,1.488l1.143-0.367l0.163-1.121z M375.763,139.878l-1.102,1.027l-0.042-0.77l1.143-0.258z M377.621,141.037l-0.167,0.557l-0.748-0.557h0.915z M381.987,138.208l-0.583-0.113l0.825-0.26l-0.241,0.373z"/>
+ <path style="stroke:none;" d="M357.412,170.501l-0.52-0.189l0.153,0.145l0.366,0.045z"/>
+ <path style="stroke:none;" d="M230.078,163.408l0.002-0.018l0-0.014l-0.003-0.014l-0.005-0.01l-0.009-0.008l-0.01-0.004l-0.015-0.004h-0.016h-0.015h-0.015l-0.016-0.002h-0.016l-0.014,0.002l-0.014,0.004h-0.016l-0.014,0.004l-0.013,0.004l-0.013,0.004
+ l-0.01,0.004l-0.016-0.002h-0.015l-0.014-0.004l-0.011-0.006l-0.012-0.002l-0.012-0.006l-0.015,0.002h-0.015l-0.016-0.002h-0.015l-0.009-0.008l-0.009-0.008l-0.009-0.008l-0.008-0.006l-0.009-0.008l-0.012,0.002l-0.007,0.012l-0.002,0.018l0.004,0.012l0.007,0.008
+ l0.003,0.012l-0.003,0.016l0.001,0.008h-0.001l0-0.002l0.01,0.006l0.002,0.01l-0.007,0.01l-0.015,0.002l-0.011-0.004l-0.011-0.008l-0.012,0.006l-0.009,0.01l-0.004,0.016l-0.007,0.012l-0.012,0.008l-0.011,0.004l-0.014,0.004l-0.013-0.002l-0.015,0.002h-0.015
+ l-0.013,0.006h-0.014h-0.017l-0.012-0.004l-0.013-0.004l-0.01-0.006l-0.008-0.008l-0.003-0.012l0-0.016l0.002-0.018l0.004-0.016l0.001-0.016l-0.003-0.012l-0.003-0.014l-0.003-0.012l-0.003-0.014l-0.003-0.012l-0.003-0.014l-0.001-0.014l0.005-0.014l0.01-0.008
+ h0.015l0.009-0.008l-0.005-0.01l-0.01-0.006l-0.007-0.01l-0.011-0.006l-0.01-0.006l-0.014,0.004l-0.011,0.008l-0.009,0.008l-0.01,0.008l-0.008,0.012l-0.009,0.008l-0.011,0.006l-0.011,0.008l0.002,0.012l0.009,0.008l0.013,0.004l0.012,0.004l0.012,0.004
+ l0.011,0.006l0.004,0.012l0.004,0.012l-0.001,0.018v0.014l0,0.016l-0.001,0.018l0,0.012v0.01l-0.006,0.012l-0.007,0.014l-0.005,0.012l-0.003,0.018l-0.002,0.02l-0.002,0.014l0,0.016l0.003,0.012l0.001,0.014l0.005,0.012l0.009,0.008h0.013l0.012-0.006l0.01-0.008
+ l0.009-0.008l0.009-0.008l0.011-0.008l0.011-0.008l0.015,0.004l0.011,0.002l0.011,0.006l0.013,0.004l0.012,0.004h0.016l0.015,0.004h0.015l0.01,0.006l0.013,0.004l0.011,0.006l0.013,0.004l0.016,0.002h0.016h0.016l0.015-0.002l0.009-0.008l0.009-0.012l0.003-0.014
+ l0.005-0.016l0.005-0.014l0.008-0.01l0.012-0.006l0.013-0.002l0.015-0.002l0.015-0.004l0.013-0.002l0.015-0.002l0.015-0.002l0.013-0.006l0.013-0.002l0.014-0.004l0.013-0.002l0.015-0.002l0.015,0.002l0.012,0.004l0.011,0.006l0.012,0.004l0.01,0.006l0.013,0.004
+ l0.012,0.004l0.015-0.002l0.013-0.004l0.014-0.002l0.012-0.006l0.012-0.004l0.011-0.008l0.009-0.008l0.006-0.014l0.006-0.014l0.002-0.018z M233.246,162.332l-0.01,0.008l-0.01,0.008l-0.011,0.008l-0.01,0.006l-0.009,0.01l-0.011,0.006l-0.011,0.006l-0.012,0.008
+ l-0.011,0.006l-0.011,0.006l-0.012,0.004l-0.013,0.006l-0.013,0.002l-0.013,0.004l-0.014,0.004l-0.013,0.002l-0.013,0.006l-0.013,0.002l-0.014,0.004l-0.011,0.006l-0.013,0.004l-0.012,0.004l-0.011,0.008l-0.011,0.006l-0.012,0.006l-0.011,0.006l-0.012,0.006
+ l-0.014,0.002l-0.014,0.002l-0.015-0.002l-0.01-0.008l-0.005-0.012l0.009-0.008l0.013-0.006l0.014-0.002l0.011-0.006l0.01-0.008l0.014-0.004l0.014-0.002l0.013-0.004l0.013-0.004l0.008-0.012l0.009-0.008l0.01-0.008l0.009-0.01l0.011-0.006l0.013-0.004
+ l0.012-0.006l0.012-0.006l0.011-0.006l0.011-0.006l0.011-0.008l0.011-0.006l0.012-0.006l0.009-0.01l0.009-0.012l0.009-0.008l0.011-0.006l0.011-0.008h0.015l0.013,0.002l0.009,0.01l0.01,0.006l0.015,0.002l0.011,0.006l0.006,0.008l-0.001,0.012z M232.713,162.439
+ l-0.009,0.008l-0.013,0.006l-0.014-0.004l-0.015-0.002l-0.015-0.002l-0.011,0.004l-0.011,0.008l-0.011,0.006l-0.013,0.006l-0.012,0.004l-0.011,0.008l-0.013,0.004l-0.011,0.006l-0.013,0.004l-0.011,0.006l-0.014,0.002l-0.014,0.004l-0.014,0.002l-0.009,0.01
+ l-0.01,0.008l-0.011,0.01l-0.009,0.008l-0.011,0.006l-0.012,0.006l-0.012,0.006l-0.013,0.004h-0.014l-0.013-0.002l-0.002-0.02l0.005-0.014l0.008-0.01l0.01-0.01l0.011-0.006l0.011-0.008l0.011-0.006l0.009-0.008l0.008-0.012l0.006-0.012l0.011-0.006l0.015-0.002
+ l0.013-0.002l0.015-0.002h0.017h0.015l0.015-0.002l0.015-0.002l0.012-0.004l0.013-0.004l0.013-0.002l0.013-0.006l0.012-0.006l0.013-0.002l0.013-0.004h0.015h0.016l0.013,0.004l0.008,0.008l0.002,0.012z"/>
+ <path style="stroke:none;" d="M454.513,191.183l-1.043,1.287l-3.166,0.686l-1.244,0.215l-0.494-0.301l-2.072,0.688l-1.135,2.08l-1.139,2.08l0.742,3.561l1.258,1.822l1.262,1.824l0.689,2.314l0.746-2.744l1.244-0.773l1.762,0.129l1.762,0.129l-0.127-1.93
+ l1.875-2.316l2.355,1.33l2.145,0.621l2.145,0.623l1.008-1.502l1.021,0.129l2.338-0.814h1.627l0.824-0.771l1.801,0.193l1.797,0.191l1.178,0.301l-0.352-0.814l-1.268-1.717l-0.887-1.33l-2.029-1.93l-0.432-1.072l-2.063-1.5l-0.387-0.729l-1.631-0.43l0.377-2.445
+ l-0.971-1.609l-0.973-1.607l-2.176,0.516l-1.738,2.078l-1.742,2.082l-3.238,0.643l0.35,0.814z"/>
+ <path style="stroke:none;" d="M464.989,162.96l-2.277-1.287l-2.275-1.285l-2.271-1.287l-2.268-1.285l-2.266-1.287l-2.262-1.287l-2.258-1.285l-2.254-1.289l-2.188,1.289l0.27,1.928l0.268,1.932l1.852,2.959l-0.531,1.07l-0.105,1.951l-0.104,1.951l-0.105,1.951
+ l-0.107,1.953l-1.018,1.533l-1.02,1.533l-1.021,1.535l-1.025,1.531l0.066,2.059l1.002,1.631h0.865l1.162,2.531l0.227,2.873l1.5,2.574h-2.602l-1.162,0.6l1.947,2.402l1.465,3.303l2.072-0.688l0.494,0.301l1.244-0.215l3.166-0.686l1.043-1.287l-0.35-0.814
+ l3.238-0.643l1.742-2.082l1.738-2.078l2.176-0.516l-0.215-1.416l-0.402-1.373l-0.945-1.93l-0.867-0.129l0.82-1.973l0.197-1.158l0.283-0.686l0.016-0.9l1.107-2.018l0.805-0.686l1.461-0.043l-0.078-2.445l-0.08-2.443l-0.084-2.445l-0.086-2.445z"/>
+ <path style="stroke:none;" d="M255.355,291.119l0.419,1.9l0.434,1.902l0.259,1.945l0.274,1.949l-0.267,2.303l-0.242,2.316l-0.22,2.33l-0.194,2.338l-0.585,0.875l0.777,2.225l0.796,2.213l0.604,2.408l-0.284,2.334l1.323,2.139l0.174,0.418l0.852-0.459l0.81,0.041
+ l0.64-0.375l-0.239,1.377l0.665,0.748l-0.339-0.289l0.094,0.789l0.276,1.41l0.131,1.654l0.082,0.912l1.205,0.996l-0.646,1.621l0.717,0.584l-0.528,0.041l0.004,0.668l0.064,0.084l0.064,1.297l0.208-0.168l-0.676,1.006l-0.16-0.713l-0.791-0.041l0.117-0.879
+ l-0.544,0.084l-0.58,0.166l-1.153,2.055l0.373-0.17l0.717-0.418l1.263,0.504l1.478,1.174l-0.648,0.504l0.594,0.42l-0.975,0.334l1.837-0.084l0.188-0.209l0.781,0.924l0.006,0.629l-1.527-0.336l-0.565-0.084l1.566,1.301l-0.599,0.25l0.115,0.127l0.896,1.59
+ l0.18-0.543l-0.066,0.25l0.732,1.002l-0.739,0.209l1.014,0.709l-0.573,0.125l0.451,0.373l-0.838-0.041l1.033,0.664l0.79,0.787l0.081-0.662l0.285,0.289l-0.358,0.623l-0.114,0.496l0.999,0.578l0.5,0.701l-0.578-0.205l1.079,0.906l0.617,0.369l-0.393-0.822
+ l0.59,0.535l-0.316-0.576h0.877l-0.881-0.535l1.538,1.152l0.098,1.109l-0.761-1.068l0.223,0.287l-0.251,0.166l-1.244,0.041l0.869,1.148l0.539-0.164l-0.208,0.613l1.05,0.615l-0.271-1.105l2.426,0.164l-2.257,0.572l0.379,0.695l-0.343,0.164l1.291,0.367
+ l-0.113-0.818l2.254-0.572l-0.722,1.553l-0.541-0.488l-0.074,0.121l-0.631,0.164l2.775,1.182l0.106-3.021l1.649-0.902l2.139,0.246l-3.436-0.945l-3.983-0.369l-1.158-1.113l-1.239-1.945l-1.209,0.082l-1.945-3.33l1.234-1.506l-0.351-3.439l-0.387-2.852
+ l-0.166-2.006l-0.515-1.084l-0.854-0.5l1.392-0.498l-1.694-0.953l-0.982-2.652l-1.083-1.367l-0.076-1.996l-0.8-3.402l-0.271-2.688l0.416-1.641l-0.306-1.52l-0.612-2.201l-0.593-2.209l1.065-1.746l-0.486-1.742l0.278-3.289l-0.553-1.504l-1.054-2.1l-1.041-2.096
+ l0.101-1.623l0.369-1.623l-0.116-1.859l-0.1-1.861l0.883-2.316l0.913-2.316l0.629-0.688l-0.809-1.502l-0.345-3.607l0.391-1.287l1.912-0.986l0.441-2.617l-0.458-0.473l-1.583-0.258l-0.932-2.293l-0.925-2.293l-0.6-2.23l0.065-1.93l-1.253-1.717l-0.697-1.758
+ l-0.64-1.201l-0.572,1.029l-0.784,1.115l-0.443,0.043l0.632,3.26l0.637,3.258l-0.068,2.83l-0.052,2.832l-0.053,1.113l0.402,3.219l0.052,2.791l-0.107,3.65l-0.043,3.646l0.177,1.584l0.053,2.566z M278.607,347.888l1.155,2.736l1.185,2.721l-0.725-0.203
+ l-0.909,0.164l-2.348-0.285l-0.722-0.121l-1.934-0.203l0.491-0.244l1.148-0.404l0.662,0.404h0.667l-1.167-0.607l1.402,0.283l0.672,0.082l1.113,0.285l0.304,0.039l-2.582-1.504l1.064-1.139h-1.698l-0.706-1.84l0.871-0.451l2.057,0.287z M258.458,320.841
+ l1.021,1.082l-0.357,0.166l0.455,1.617l-0.106,0.58l-0.824,0.291l-0.856-3.361l0.668-0.375z M262.917,338.289l0.979,2.162l-0.035,0.99l-0.558-1.617l-0.268,1.162l-1.162-1.471l0.542,0.404l0.501-1.631z M270.784,349.972l0.71,0.082l1.578,0.652l-1.321,0.73
+ l-0.105-0.568l-0.684,0.041l-0.471-0.326l0.003-0.406l0.524,0.162l-0.234-0.367z M262.907,338.046l-1.1-0.467l0.344-0.83l0.756,1.297z M275.843,350.166l0.673,1.557l-0.902-0.639l0.229-0.918z M272.982,351.019l0.681-0.098l0.571,0.922l-1.252-0.824z
+ M264.709,343.937l0.183-0.791l0.743,0.645l-0.926,0.146z M261.266,329.451l-1.079-0.412l0.817-0.213l0.262,0.625z M261.963,336.929l-0.269,0.473l-0.612-0.902l0.881,0.43z M263.587,341.613l-0.352,0.518l-0.521-0.713l0.872,0.195z M277.321,353.703l0.729,0.178
+ l-1.449-0.227l1.104-0.273l-0.384,0.322z"/>
+ <path style="stroke:none;" d="M617.886,137.992l1.85,0.258l1.18-0.686l0.949,0.301l-0.148,0.428l0.875,0.301l-0.07,1.07l2.432,0.857l0.271-0.857l1.881,1.93l0.961,0.516l0.457,2.061l0.43,2.061l-0.357,1.16l-1.09,1.846l0.15,1.031l0.082,1.115l2.387-0.301
+ l0.125,0.301l0.586,1.715l1.477,0.645l-0.258,2.102l1.23,0.514l1.041,1.459l1.635-0.473l0.641,0.301l0.332,0.471l0.963,0.473l-0.508-3.002l1.061-0.086l0.531-0.6l1.213,0.385l0.492-0.385l0.883-0.045l0.576,0.131l0.408-0.215h0.74l1.344-1.459l0.945,0.129
+ l2.713,0.9l0.322,1.672l0.98,0.773l2.227,0.898l0.76-0.342l0.238-0.344l0.846,0.387l0.762,0.344l0.943-0.129l0.658,0.6l0.477,2.443l1.23,0.258l-0.559-1.371l0.172-1.201l0.461-0.129l1.227-0.43l1.389-0.771l0.676,0.043l0.244-0.514l0.586,0.6l0.777-0.857
+ l0.469,0.129l-0.057-0.943l0.553,0.6l-0.477-1.801l0.52-0.6l1.123,1.672l0.719,0.086l0.24-0.301l0.537-0.514l0.482,0.215l0.998-0.215l0.293-0.215l0.199-0.129l1.254-0.215l0.795-0.686l-0.088-0.258l1.787-1.414l0.607-0.816l-0.174-0.473l0.268-0.301l1.145-0.172
+ l0.143-0.857l0.254-0.344l0.473-0.516l0.045-0.6l0.619,0.127l-0.041-1.244l-1.035-0.473l0.17,0.086l1.025-0.602l-0.486-0.471l-0.283-0.387l0.756-0.344l-0.076,0.559l0.662-1.805h0.074l0.4-1.33l-0.5-0.73l1.24-0.643l0.547-0.127l-0.684-0.943h0.365l-0.123-0.645
+ l-0.266-0.385l0.627-0.557l0.084-0.428h-0.803l0.789-0.941l-1.555-0.855l-1.375,0.129l-1.234-0.215l0.693-0.428l2.105-1.494l-2.018-1.303l-2.021-1.303l-1.951-0.598l0.672,0.256l1.15,0.086l3.406,1.025l-2.355-2.096l-1.537-1.971l-1.555-1.979l-3.184-1.9
+ l0.502-2.566l0.064-1.223l0.357,0.35l0.785-1.18l1.451-0.918l1.209,0.174l-0.078-1.311l-1.283-0.262l-2.729-1.048l-1.738,1.265l-1.566,0.307l-1.145-2.139l-2.975-0.826l-0.754-1.733l1.133-0.129l1.494-0.991l1.045-1.646l1.01-1.631l1.408-0.295l1.17,0.632
+ l-0.445,2.553l1.395,0.558l-0.881,1.38l1.656-0.647l1.273-0.947l1.256-0.943l1.047-0.681l1.303-1.357l1.322-2.184l0.846-0.46l2.51,0.753l-0.809-1.337l0.707-0.208l1.393-1.081l0.02-1.327l2.385,1.369l-0.543-0.665l0.846-0.581l-1.438-2.215l-1.461-2.219
+ l0.396-1.29l2.643,0.416l-0.277-2.985l-0.352-2.999l-1.238-2.181l-3.145,1.09l-3.09,0.419l-2.576-2.767l-2.166-0.879l-3.676-0.961l-2.254-0.959l-1.994-1.756l-2.016-1.749l-2.037-1.741l-2.057-1.733l-5.158-1.636l-2.502,0.103l-2.504,0.102l-1.498,1.349
+ l0.951,0.369l1.434,0.944l0.023,3.049l0.588,1.825l-1.473,1.667l-2.979-0.584l0.363,1.963l0.324,1.969l-0.572,0.21l1.766,1.007l2.111-0.042l0.752,0.42l1.061-1.008l4.506,2.309l0.535,1.341l-3.547-0.083l-2.324,1.215l-0.441,1.713l-2.18,0.584l-1.912,1.082
+ l-2.947-0.79l0.324,2.284l1.445,1.285l-1.861,1.532l-1.891,1.534l-2.475,0.187l-2.477,0.187l-1.51,0.937l-1.523,0.939l-1.617-0.71l-2.561-0.478l-2.557-0.479l-0.797-0.665l-2.895-0.166l-2.893-0.166l-2.891-0.166l-2.891-0.167l-1.881-1.906l-1.887-1.906
+ l-2.977-0.913l-2.967-0.915l-2.418-0.396l-2.414-0.395l-0.711-2.048l-0.725-2.054l-3.021-2.14l-1.588-0.335l-2.994-1.803l-0.859-0.922l-0.211-0.376l-1.541,0.167l-0.809,1.717l-0.93,0.671l0.988,2.727l-1.889,0.21l-3.266-0.587l0.223,2.16l0.201,2.154l0.777,0.917
+ l-2.814-0.251l-2.389,0.916l1.313,0.665l0.969,1.824l0.959,1.822l0.02,0.498l-0.5,0.497l0.588,1.204l-1.627,1.27l-1.643,1.276l-2.209,0.545l-1.418,1.603l-1.23-0.254l-0.996,0.043l-1.52,0.934l-0.746,1.925l1.209,2.117l1.949,0.174l1.367,3.008l-0.295,0.219h-0.07
+ l-0.648-0.045l0.08,0.568l2.525,0.699l0.984,1.705l1.594,0.785l2.889,0.83l1.703-1.09l1.994,0.393l1.615,0.697l-0.311,2.172l-0.328,1.209l-0.906,0.518l0.074,0.99l1.408,1.889l-0.371,0.984l-1.34-0.17l0.982,2.777l1.059,0.344l2.625,1.494l2.104,1.451l0.158,0.215
+ l0.971-0.855l1.803,1.068l2.926,2.225l0.875-0.342l0.758,0.813l2.055,0.9l0.326,0.514l2.316,0.943l1.955,0.26l2.725,0.256l0.926-0.643l1.049,2.059l1.465-2.273l3.186,0.342l1.117,0.773h0.037l2.027-0.773l1.57-1.457l1.553-1.457z M658.237,161.673l0.869,0.086
+ l0.326,0.857l-0.883,1.672l-1.281,1.545l-0.818,0.258l-1.814-0.857l-0.141-2.059l1.453-1.158l2.289-0.344z"/>
+ <path style="stroke:none;" d="M243.56,184.236l-0.783,1.115l0.405-0.473l-1.435,0.043l-1.594,2.102l-0.328,1.887l-2.499,2.402l-0.292,1.416l-0.433-1.244l-0.497-0.643l0.058,1.973l-0.859,0.643l-0.538,1.072l0.636,1.072l0.553,2.359l-0.53,1.072l0.163,1.93
+ l0.168,1.93l0.293,0.344l-1.474,2.873l-1.414,0.602l-0.443,1.416l-0.727,0.428l0.214,0.9l1.841,1.373l1.432,1.33l2.197-0.043l2.537,1.287l0.152-0.172l1.272,1.287l1.278,1.287l1.728,1.973l0.437,1.201l2.804,0.043l1.744,0.086l2.287,0.771l-0.875,3.131
+ l1.464,0.986l0.501-3.604l0.529-3.604l-0.929-2.701l-0.49-2.443l1.592-0.131l0.42-0.557l-1.246-0.557l-0.284-1.674h1.932h1.931l-0.222-0.385l0.564,0.256l1.225-0.9l0.844,2.145l0.491,0.172l-0.542-2.102l-1.292-1.973l0.745-1.201l-1.018-3.217l0.535-2.166
+ l0.54-2.166l-1.971,0.127l-1.97,0.131l-2.038-2.273l-1.754-0.086l-1.754-0.086l-1.627-0.902l0.067-1.629l-1.152-2.873l-0.904-0.043l0.978-2.145l1.25-2.145l1.26-2.146l1.536-0.471l0.231-1.244l-1.438,0.129l-2.1,1.309l-2.098,1.307l-1.286,0.088z"/>
+ <path style="stroke:none;" d="M509.579,243.812l-0.064-0.301l-0.416-0.943l0.48,1.244z"/>
+ <path style="stroke:none;" d="M439.761,219.406l-2.045,0.172l0.074,0.729l0.262,0.688l0.412,1.115l-0.418,0.471l-0.604-0.385l-0.725,1.115l1.955,2.746l1.521-1.375l0.867,0.387l1.172,0.387l0.646-0.773l1.363-0.129l0.221,1.158l1.732-1.693l1.732-1.693
+ l0.313-1.996l0.313-1.994l1.578-2.102l1.574-2.102l0.342-1.93l0.338-1.93l0.336-1.93l0.332-1.932l0.631-2.23l-1.762-0.129l-1.762-0.129l-1.244,0.773l-0.746,2.744l-0.449,1.158l-1.953-0.492l-1.951-0.494l-2.236-0.043l-0.221,2.445l2.5-0.215l0.193,1.715
+ l-1.061,1.459l1.287,2.316l-0.578,3.518l-0.797,0.686l-0.34-0.729l-1.326,0.514l-1.283-1.457l-0.195,1.586z"/>
+ <path style="stroke:none;" d="M36.281,243.912l0.059-0.088l-0.032-0.08l-0.495-0.318l-0.122-0.006l0.21,0.332l0.38,0.16z M47.854,240.095l0.133,0.168l-0.021,0.119l-0.173,0.012l-0.132-0.117l0.154-0.203l0.04,0.021z M60.868,269.488l-0.082,0.16l-0.171-0.182
+ l0.024-0.23l0.066-0.037l-0.027,0.029l0.042,0.012l0.149,0.248z M56.252,267.8l-0.037,0.027l0.271,0.178l-0.153,0.156l-0.211-0.186l0.13-0.176z M54.474,261.941l-0.118,0.033l-0.103-0.123l-0.208-0.246l0.457,0.221l-0.028,0.115z M56.727,262.771l-0.171,0.002
+ l-0.102-0.104l0.2-0.117l-0.027,0.027l0.043-0.066l0.145,0.127l-0.087,0.131z M47.489,239.562l-0.113,0.225l-0.082-0.014l-0.071-0.135l0.246-0.137l-0.01-0.041l0.061,0.053l-0.03,0.049z M54.329,261.228l0.369,0.158l-0.441,0.025l0.072-0.184z M46.49,259.861
+ l-0.216-0.041l-0.039-0.08l0.311-0.023l-0.077-0.063l0.162,0.105l-0.141,0.102z M59.27,263.986l0.114-0.063l0.144,0.125l-0.151,0.1l-0.106-0.055l-0.001-0.107z M60.595,265.117l-0.052-0.014l-0.118-0.074l0.115-0.148l0.122,0.111l-0.067,0.125z M54.026,262.191
+ l0.099,0.084l0.009,0.078l-0.168,0.029l-0.065-0.139l0.125-0.053z M43.579,247.849l-0.071-0.244l0.122-0.002l0.068,0.182l-0.048,0.049l-0.07,0.016z M43.357,247.16l0.006,0.139l-0.101,0.045l-0.08-0.232l0.09-0.018l0.084,0.066z M58.902,264.697l0.044,0.041
+ l0.083,0.121l-0.104,0.063l-0.122-0.104l0.098-0.121z M54.95,262.064l-0.065,0.055l-0.115-0.133l0.058-0.123l0.112,0.104l0.01,0.098z M44.113,247.248l-0.099,0.086l-0.174-0.039l0.047-0.107l-0.032-0.031l0.258,0.092z M35.317,241.572l-0.142,0.084l-0.134-0.18
+ l0.092-0.016l0.185,0.111z M54.039,261.537l-0.073,0.172l-0.084-0.131l0.066-0.143l0.091,0.102z M34.697,241.669l-0.051,0.018l-0.164-0.039l0.039-0.148l0.03-0.008l0.145,0.178z M57.834,264.019l0.115,0.043l-0.118,0.121l-0.111-0.094l0.113-0.07z M54.775,261.546
+ l-0.077-0.16l0.076-0.045l0.099,0.182l-0.098,0.023z M34.946,241.119l-0.091,0.107l-0.113-0.188l0.205,0.08z"/>
+ <path style="stroke:none;" d="M218.676,188.568l0.293-0.473l-0.485-1.287l1.32,1.201l1.514,1.201l0.599,1.459l0.486,0.814l0-0.729l1.083,1.715l0.176-1.973l-0.056-1.715l0.845-0.258l-1.122-1.736l-1.111-1.738l-1.337,0.258l-3.234-0.645l-0.25,0.344l0.014,0.344
+ l-0.304,1.158l1.568,2.059z"/>
+ <path style="stroke:none;" d="M238.932,156.957l0.054,0.172l-2.291-1.137l-2.285-1.137l-1.714-0.771l-1.689-0.387l-0.797-0.127l-2.663,0.535l-2.665,0.537l-1.138,1.586L222.567,157l0.813-0.256l1.794-0.814l1.793-0.816l2.901-0.086l-1.088,0.387l1.961,0.6
+ l1.286,0.387l0.619,0.387l3.139,0.729l0.601,1.5l2.75,1.285l-1.261,1.588l2.201-0.043l2.201-0.043l1.801-0.299l1.8-0.301l-1.658-0.814l-1.655-0.816l-0.098-0.771l-1.618-0.621l-1.616-0.621l-0.3-0.602z M226.37,157.73l0.322-1.072l0.839,0.986l-1.162,0.086z"/>
+ <path style="stroke:none;" d="M485.267,121.33l-2.791,0.83l-1.627,0.781l0.725,1.084l2.443-0.867l-0.061-0.52l1.311-1.309z"/>
+ <path style="stroke:none;" d="M446.312,90.279h2.602l3.189-1.384l3.43,0.042l0.598-1.675l-3.092-0.71l-1.738,0.125l-0.703-0.083l-1.133-0.417l-0.768-0.083l-1.727-1.126l-0.691-0.666l-1.416-0.042l-0.973,0.125l-0.273-0.831l-2.859-0.87l-0.314,0.124l-0.482-0.29
+ l-2.197,0.953l-2.209,0.955l0.428,0.958l2.898,2.675l1.033,0.503l1.26-0.88l3.209,0.335l1.301,1.929l0.629,0.335z"/>
+ <path style="stroke:none;" d="M429.509,72.538l0.268-1.253l-0.051-0.283l1.309-1.087l0.494-0.965l-1.033-0.04l-0.582-1.203l-1.387,0.681l-0.125,0.521l-0.393-0.321l-1.105,0.321l0.135,2.416l0.443,1.172l0.338,0.364l1.502,0.243l0.188-0.567z M435.13,70.921
+ l-0.73,0.687l-0.021,0.525l-0.561,0.526l-1.518-1.294l0.057-0.524l0.275-0.524l0.814,0.403l0.639,0.121l0.061-0.806l0.758,0.443l0.227,0.443z M430.392,67.867l-2.824,0.12l-0.332,0.722l0.123-1.122l1.842-0.32l1.871-1.159l-0.68,1.759z M431.868,71.931
+ l-0.555,0.647l-1.451-0.93l1.346-0.122l0.66,0.404z M434.419,73.064l-0.453,0.284l0.09-0.486l0.363,0.202z"/>
+ <path style="stroke:none;" d="M506.124,182.734l-0.266,2.016l2.602,0.086l0.635-1.244l-1.328-0.258l1.629-1.672l-1.096-1.029l-0.18,0.172l-0.746,0.172l-1.25,1.758z"/>
+ <path style="stroke:none;" d="M273.567,173.726l-0.098-0.686l-0.34,0.043l0.153,0.943l0.285-0.301z"/>
+ <path style="stroke:none;" d="M251.065,162.447l-0.38,1.842l-0.318,0.902l0.181,1.5l0.705,1.16l0.964-1.416l1.139-0.559l1.111,0.086l2.894,0.172l1.03-0.986l-2.531-1.158l0.5-0.514l-1.135-0.559l-3.113-0.857l-1.046,0.387z"/>
+ <path style="stroke:none;" d="M227.497,216.06l0.266,2.574l-0.294,0.473l1.644,0.729l0.404-0.6l0.276,0.514l0.091-1.115l-0.167,2.746l-0.859,0.428l0.193,1.502l-0.458,1.115l0.787-0.258l2.482,1.844l0.898-2.08l0.907-2.08l2.403-1.607l2.411-1.609l1.438-3.002
+ l0.455,0.043l-0.807-2.059l0.644-0.215l-2.537-1.287l-2.197,0.043l-1.432-1.33l-1.841-1.373l-0.844,0.9l-2.055,1.117l-0.498,2.1l-0.185,1.16l-1.125,1.328z M203.384,213.187h0.644l0.732,2.316l-1.403-0.129l0.789-0.814l-0.762-1.373z M229.771,220.21l-0.459,0.41
+ l-0.158-0.479l0.617,0.068z M206.318,214.888l-0.071,0.047l-0.72-0.221l0.792,0.174z"/>
+ <path style="stroke:none;" d="M485.485,141.037l1.242,0.43l0.461-2.111l0.449-2.109l-0.963-2.363l-0.973-2.361l-3.086,0.684l-1.066-0.17l-0.938-0.727l0.719,0.342l-2.416-0.684l-0.986,0.299l0.654-0.385l-1.453,0.77l-3.033,0.98l-3.354-0.916l-3.348-0.918
+ l-1.453-0.086l-0.389,1.623l0.1,1.943l0.092,1.945l0.186,2.408l0.176,2.414l0.168,2.414l0.158,2.416l0.146,2.414l0.143,2.414l0.133,2.412l0.129,2.414h1.744h1.742h1.742h1.744h1.742h1.742h1.744h1.744l0.268-0.559l0.139,0.559l2.779,0.32l2.781,0.322l0.457-1.158
+ l1.213-0.213l0.475-1.459l0.604,0.215l0.797-0.943l-0.125-2.061l0.248-0.17l-1.258-1.781l-1.262-1.783l-0.984-1.855l-0.988-1.857l-0.994-1.857l-0.996-1.855l-0.963-1.928l-0.965-1.926l0.451-0.258l1.443,2.375l1.438,2.381z"/>
+ <path style="stroke:none;" d="M213.283,178.574l0.037-1.201l-1.845-0.344L210.113,176l-1.864,1.76l1.651,0.621l1.653,0.623l1.18,0.256l0.55-0.686z"/>
+ <path style="stroke:none;" d="M433.632,210.57h1.762h1.762l-0.043-3.002l-1.725-0.236l-1.723-0.234l-0.564,2.188l-0.188,0.943l0.719,0.342z M431.724,203.623l-1.057,1.158l0.715-1.287l0.342,0.129z"/>
+ <path style="stroke:none;" d="M462.831,64.268l-0.629-2.167l-4.5-0.315l-3.305,0.947l0.293,0.831l1.172,1.31l0.639-0.04l2.719,0.453l2.727,0.454l0.885-1.472z"/>
+ <path style="stroke:none;" d="M497.669,203.537l3.152,0.6l1.084-0.943l2.373-0.729l2.24,0.473l1.09-0.602l2.17-1.457l1.813-0.174l1.813-0.172l1.682-1.994l1.678-1.994l1.67-1.994l1.666-1.994h-2.229l-1.709-0.645l-1.707-0.643l-1.707-0.643l-1.707-0.645
+ l-1.453-1.865l-1.455-1.865l0.328-1.416l-2.602-0.086l0.266-2.016l1.25-1.758l0.746-0.172l0.18-0.172l-0.055-0.43l-2.494-2.465l-2.498-2.467l-1.863-1.33l-0.584-0.387l-0.117,0.645l-0.709-1.846l-0.713-1.844l-0.715-1.844l-0.717-1.844l-0.281,0.342l-1.416,1.094
+ l-1.42,1.094l-0.852,3.26l-0.256,3.561l-0.318,1.93l-0.324,1.932l-1.035,0.514l-0.92,1.758l-0.555,2.875l-1.238,0.213l-0.283,2.832l-0.295,2.83l-1.578,0.344l-0.844,1.158l0.844,0.686l2.227,1.975l0.863,1.715l0.859,1.715l1.334,0.645l0.598,1.973l1.973,0.344
+ l2.752,1.93z"/>
+ <path style="stroke:none;" d="M507.306,257.066l-0.006-0.01l-0.008-0.008l-0.01-0.006l-0.012-0.006l-0.01-0.008l-0.014-0.002h-0.014l-0.014,0.002l-0.008,0.01l0.004,0.01l0.008,0.012l0.008,0.006l0.01,0.008l0.006,0.008l0.008,0.002l0.01,0.004l0.014,0.002
+ l0.014-0.002l0.008-0.008l0.006-0.014z"/>
+ <path style="stroke:none;" d="M298.847,345.546l-0.727-0.412l-0.646-0.084l-0.335-0.123l-0.891-0.412l-0.09,0.867l-0.668,0.863l0.701,0.781l0.374-0.494l0.424-0.082l-0.004-0.287l1.862-0.617z M293.863,345.505l-0.531-0.578l2.365-0.123l-1.208,1.359l-1.373,0.41
+ l0.783-0.699l-0.366-0.205l0.331-0.164z"/>
+ <path style="stroke:none;" d="M770.065,195.216l0.01,0.027l-0.133,0.098l0.113,0.18l0.023,0.084l0.154,0.074l0.145-0.033l0.006-0.121l0.012-0.047l0.031-0.059l-0.051-0.096l-0.037-0.025l-0.043-0.047l-0.23-0.035z M781.38,199.574l-0.104-0.018l-0.146-0.029
+ l0.035-0.07l0.172-0.143l0.076,0.113l-0.033,0.146z M724.12,188.683l-0.051-0.035l-0.152,0.266l0.07-0.238l0.084-0.152l0.018,0.043l0.08-0.092l0.008,0.129l0.063,0.012l-0.012,0.02l-0.107,0.049z M755.169,194.195l-0.033,0.094l-0.012-0.008l-0.107-0.049
+ l0.074-0.066l-0.043-0.018l0.063-0.01l0.059,0.057z M755.681,193.941l0.072,0.043l-0.125,0.037l0.002-0.014l0.051-0.066z M755.669,194.265l-0.021,0.023l-0.02-0.109l0.041,0.086z M755.39,194.142l-0.07,0.01l0.055-0.012l0.016,0.002z"/>
+ <path style="stroke:none;" d="M811.618,259.683l0.006-0.172l-0.689-1.717l-2.049,1.029l-0.047,1.074l2.779-0.215z M814.636,256.123l0.602-0.172l-2.896,0.686l0.08-0.643l3.006-0.986l-0.791,1.115z M809.757,262.156l0.531-0.301l-0.6,0.529l0.068-0.229z"/>
+ <path style="stroke:none;" d="M463.603,50.334l-0.674-0.757l-0.105-1.996l-2.188-2.573l1.088-1.625l-2.498-1.394l-0.158-1.42l0.109-0.435l-0.115-1.406l-2.744-0.717l-2.332,0.86l-0.564,1.625l-1.002,0.472l-2.164-0.036l-1.895-0.363l-1.908-1.049l-1.068,0.614
+ l4.83,1.964l1.695,3.021l0.824,2.162l0.77-0.149l0.863,0.6l0.42,1.657l-2.982,2.276l-1.184,1.222l-1.496,0.69l0.334,2.583l0.557,2.918l1.975,0.666l0.027,0.353l0.795-0.118l0.65,0.981l0.521-0.314l4.404-0.863l0.947-0.392l2.34-0.039l1.385-1.376l1.361-1.37
+ l1.344-1.364l1.32-1.357l-3.232-1.876l0.807-0.648l-1.057-1.025z"/>
+ <path style="stroke:none;" d="M426.813,99.598l-1.426-0.788l-0.064-0.956l-0.021-0.665l0.271-0.959l0.031-1.045l-1.123-1.298l-0.76,0.461l1.727-2.642l0.426-0.294l0.688-0.377l0.855-3.522l-3.117-1.045l-0.336-0.167l-1.129-0.208h-0.033l-1.975-1.084l-0.203-0.25
+ l-0.92,0.042l-2.592-1.661l-0.764-0.87l-1.854,0.746l-0.313,1.702l-2.662,1.459l0.66,0.167l-3.137,0.125l-0.688-0.668l-0.629,0.208l0.475,2.385l-2.455-0.042l-1.521-0.293l-2.412,1.006l0.961,0.167l-0.271,0.167l-0.211,0.545l1.092,0.377l1.689,0.713l1.332,0.42
+ l1.033,0.378l-0.205,0.419l0.824,1.72l1.072,0.795l-0.105,0.753l1.008,1.876l-1.012-1.083l-0.25,1.979l-0.252,1.969l-0.797,1.242l1.023,0.788l2.043,0.456l2.047,0.456l1.586,0.291l0.621-0.042l-0.068,0.291l3.033,0.166l-0.162-1.617l1.256-0.911l1.715,0.041
+ l0.268-0.206l0.691,0.248l2.699,0.829l2.037-1.615l-0.002-0.042l0.068-0.042l0.035,0.042l0.203-0.083l-0.002-0.953z M430.618,106.242l-0.957-0.543l-0.369-1.458l1.318-1.412l0.547,1.495l-0.539,1.917z"/>
+ <path style="stroke:none;" d="M292.576,200.878l-2.111-1.975l-1.615-0.471l-0.439,0.943l-0.693,2.145l0.809,3.131l-1.251,2.486l1.511,0.301l2.195,0.129l1.493-2.402l1.501-2.4l-0.538-1.459l-0.048,0.471l-0.813-0.898z"/>
+ <path style="stroke:none;" d="M76.307,258.224l-0.385,0.299l1.238,0.559l-0.853-0.857z M71.651,256.509l-0.095,0.086l-0.277-0.26l0.372,0.174z"/>
+ <path style="stroke:none;" d="M433.558,210.484l-0.342,1.029l-0.68,0.045l1.477,1.158l-1.326-0.129l-0.758,2.4h-0.568l0.908,1.76l0.49,0.514l-0.756-0.643l0.982,1.5l-0.303-0.041l1.396,1.629l-0.34-0.129l1.49,1.865l1.488,1.867l0.725-1.115l0.604,0.385
+ l0.418-0.471l-0.412-1.115l-0.262-0.688l-0.074-0.729l2.045-0.172l0.195-1.586l1.283,1.457l1.326-0.514l0.34,0.729l0.797-0.686l0.578-3.518l-1.287-2.316l1.061-1.459l-0.193-1.715l-2.5,0.215l0.221-2.445h-2.234h-2.234l0.043,3.002h-1.762h-1.762l-0.074-0.086z"/>
+ <path style="stroke:none;" d="M373.848,178.445l-0.281,1.072l1.758-0.6l1.758-0.602l2.998,0.557l-0.555-0.557l-2.808-0.643l-0.272,0.514h-2.442l-0.004,0.258h2.143l-1.25,0.559l-1.043-0.559z"/>
+ <path style="stroke:none;" d="M495.419,102.291l2.115,2.033l0.121,1.917l2.695-0.209l3.072,0.033l3.074,0.034l1.977,0.318l0.766-1.229l-3.135-1.214l-3.121-1.21l-3.107-1.208l-3.096-1.208l-2.313-0.162l-2.313-0.164l-0.217,0.198l3.48,2.07z"/>
+ <path style="stroke:none;" d="M427.335,76.274l-2.098-0.366l-0.316,0.815l0.33,0.205l-0.771,1.472l0.559,1.026l-1.615,0.904l-0.26,2.767l0.336,0.249l-0.053,1.288l0.51,1.459l0.008,0.208l0.336,0.167l3.117,1.045l-0.855,3.522l2.031-0.168l1.951,0.294l1.76,0.378
+ l0.613-0.42l1.699-0.083h2.371l0.586-0.251l-0.324-1.342l1.631-1.384l-2.898-2.675l-0.428-0.958l2.209-0.955l2.197-0.953l0.482,0.29l-0.334-1.982l-1.113-2.711l-0.248-2.287l-0.486-0.57l-0.125-0.326l0.477,0.326l-0.018,0.163l-0.869-0.448l-2.393-0.813
+ l0.145-0.162l-2.684,1.138l-0.625-0.285l0.047-0.691l-2.082-0.243l-0.303-0.771l-0.51-0.041l-1.502-0.243l0.451,1.256l0.08,0.284l0.662,0.976l0.715,0.733l-1.314-0.612l-0.775,0.449l0.025,0.449l-0.328-0.123z M436.392,74.281l0.623-0.527l0.619,0.527h-1.242z"/>
+ <path style="stroke:none;" d="M412.868,198.345l-0.793-0.729l0.869,0.688l1.133-0.857l-1.172-1.244l-0.094-2.018l-0.096-2.016l-0.34-1.672l-0.189-1.76l0.037-1.158l-0.906-2.271l-0.338-0.814l-0.604,0.17l-2.713,0.086l-2.713,0.086l0.166,1.953l0.164,1.949
+ l0.449,3.303l-0.834,1.781l-0.836,1.779l0.49,1.975l0.488,1.973l-0.719,0.514l2.117,0.73l1.609-0.611l1.607-0.613l1.607-0.611l1.607-0.611z"/>
+ <path style="stroke:none;" d="M399.925,120.115v-0.01v-0.012v-0.012v-0.012l-0.002-0.012l-0.008-0.008h-0.035l0.004,0.002l0.002,0.01l0.002,0.01v0.012v0.01v0.012v0.01l-0.002,0.012l0.002,0.014l0.002,0.01v0.01l0.006,0.006l0.008,0.002l0.008-0.004l0.004-0.008
+ l0.004-0.008l0.004-0.01v-0.012l0.002-0.012z"/>
+ <path style="stroke:none;" d="M455.925,112.655l-0.545,0.174l0.521,1.255l0.557-0.087l2.334,0.131l1.242,0.521l0.072,0.436l-1.982-0.523l-1.748,0.61l0.146,0.959l1.133,2.272l0.313-0.525l0.982,1.225l0.35-0.523l1.141,0.523l-0.795-2.359h1.238l-0.592-1.135
+ l0.609-0.306l1.068,0.522l0.1-0.871l-2.883-1.953l0.404-0.172l-0.258-0.907l0.848,0.432l-0.49-1.12l-0.936-2.132l0.621-0.424l1.445,1.572l-0.473-0.553l0.9,0.297l-0.15-0.468l0.938-0.042l-1.049-1.059l2.254-0.716l2.484,0.463l0.828-1.554l-0.49-0.919
+ l-0.371,0.376l-0.822,0.668l-3.582-0.418l-2.223,0.293l-1.967,0.628l-1.975,0.631l0.012,0.126l-1.168,2.162l-0.504,0.683l0.975,1.203l1.486,0.604z M466.407,122.376l1.305,0.217l-1.705,0.521l-2.063-0.326l-2.061-0.326l0.227-0.74h0.963l3.334,0.654z
+ M463.245,114.964l-0.029,0.041l-1.668-1.184l-1.662-1.177l1.578,0.655l1.781,1.664z M467.255,112.407l-0.865-0.254l-0.508-0.359l1.189,0.261l0.184,0.352z M454.604,114.207l0.648,0.601l-0.545,0.058l-0.104-0.658z M466.522,113.703l-0.088,0.725l-0.35-0.494
+ l0.438-0.231z"/>
+ <path style="stroke:none;" d="M324.396,47.581l-2.361,0.451l-0.814,0.64l-0.125,0.641l1.502-0.151l-0.759,0.302l-1.05,1.212l1.259-0.455l1.108-0.379l0.349-1.208l0.229,0.565l0.8,0.302l0.231,0.871l-1.077-0.417l0.091,0.492l-2.01,0.456l1.713-0.076l0.565,0.038
+ l-2.813,0.495l0.765,0.267l-0.669,0.648l0.891-0.038l-0.486,0.267l-0.118,0.077l0.904,0.229l-0.953,0.115l1.125,0.345l-0.107,0.576l0.662-0.116l-0.545,0.423l-0.208,0.385l0.725,0.887l-0.057,0.309l0.756,0.039l-0.307,0.503l0.444-0.155l-0.024,0.465l0.228,0.271
+ l-0.654,0.078l0.941,0.116l-0.443,0.233l0.135,0.039l-0.14,0.467l0.937-0.194l0.058,0.506l-0.323,0.233l0.315,0.04l-0.099,0.195l0.783,0.078l1.118-0.195l2.056-0.663l-0.057,0.428l0.928-0.351l-1.28,0.858l0.939-0.117l-0.688,0.704l1.041-0.235l-0.134,0.313
+ l0.731-0.117l-0.784,0.822l1.103-0.51l-1.107,0.706l0.398,0.354l1.589-0.707l1.245,0.549l0.184-0.392l-0.335-0.274l-1.131-0.509l1.858,0.117l0.417-0.274l-0.351-0.313l0.175-0.079l-0.237-0.195l1.015-0.078l-0.984-0.39h0.958l0.015-0.234l-0.015-0.233l0.575-0.117
+ l-0.34-0.427l0.8-0.078l-0.144-0.388l0.657-0.658l0.122-0.193l-0.532-0.734h0.354l-0.658-0.693l1.489-0.5l1.096-0.116l-0.295-0.268l-0.093-0.345h0.792l0.136-0.421l0.478,0.153l-0.219-0.229l0.405-0.077l0.666-0.344l-0.689-0.305l1.407-0.115l-0.309-0.761
+ l-0.991-0.342l1.646-0.341l0.063-1.437l1.671-0.188l-0.122-0.602l1.189-0.225l0.644-0.226l1.876-0.337l-0.244-0.225l1.132-0.896l0.812,0.038l-0.895,0.784l0.946,0.075l2.598-0.598l0.085-0.485l0.84,0.037l1.524-0.372l0.321-0.334l1.592-1.444l2.455-1.177
+ l0.119-0.732l0.266-0.657l1.86,1.022l0.996-0.292l0.854-0.183l0.602,0.037l3.646-0.838l3.616-0.835l1.24-0.507l1.292-0.648l0.768-0.396l1.045-0.431l1.061-0.394l-4.988-0.535l-3.986,0.75l-0.245-0.322l2.882-0.677h-4.143l2.06-0.851l-0.043-0.248l0.323-0.106
+ l3.644-0.282l-0.062-0.633l-0.25-0.07l-3.295-0.176l1.115-0.28l-1.41-0.698l3.198,1.014l2.758,1.021l1.207,1.382l1.339-0.32l0.326-0.532l0.184,0.816l0.76-0.284l0.002-0.815l0.137-1.057l-0.954,0.21l0.462-0.667l-0.602,0.07l-0.469-0.175l0.526-0.454l-3.757-0.835
+ l-0.51,0.243l0.104-0.417l1.36-0.485L370,32.35h-0.948l-0.444-0.208l3.373-0.551l-3.553-0.034l-0.145,0.241l0.043-0.344l0.974-0.309l-0.368-0.274l2.512,0.068l0.768-0.444l-0.308-0.409l1.296,0.306l1.541-0.136l1.158,0.375l-1.979-0.102l3.076,0.547l2.453-0.616
+ l0.169-0.546h-2.15l-0.14,0.273l-0.561-0.816l0.77-0.745l4.186,0.372l-0.27-0.675l-1.745-0.101l-0.306-0.672l-1.571-0.034l1.734-0.334l-1.771-0.434l0.093-0.366l3.766,0.9l-0.209-1.43l-2.792-0.099l3.118-0.33l-1.765-0.165l-0.943-0.328l-0.499-0.098l-0.905-0.62
+ l2.417-0.227l4.246-0.033l-0.119-0.901l-2.419-0.16l-1.136-0.445l2.873,0.063l-2.974-0.601l-0.666,0.569l-0.614-0.348l1.255-1.465l2.223-0.581l1.009-0.574l-0.834,0.09l1.174-1.041l1.786-0.059l0.206-0.553l-3.37,0.553l-0.437-0.379l3.162-0.318l3.217-0.543
+ l-6.042-0.085l8.378-0.617l-0.354-0.304l4.011-0.761l-5.156-0.506l-2.714,0.452l-3.116,0.323l-0.145-0.296l-5.632,1.624l2.076-1.11l1.272-1.045l-2.111-0.157l-0.815,0.448l-4.033,0.564l2.094-0.511l0.519-0.423l-9.905,0.396l2.906-0.684l5.813,0.052l6.643-0.617
+ l-4.67-0.428l0.151-0.347l-13.415,0.247l1.834-0.124l10.249-0.319l-4.095-0.482l-12.757,0.216l0.849,0.266l-1.057,0.245l-0.301,0.173l-3.196-0.271l-4.495-0.098l0.74,0.37l-3.283-0.148l5.709,0.248l2.877,0.529l-2.672-0.354l-0.01,0.125l-4.027-0.176l1.711,0.738
+ l-1.456-0.025l-0.224,0.311l-0.144,0.368l-7.52-1.012l-0.474,0.959l0.061,0.265l-3.413-0.475l-1.545,0.77h-0.458l0.553-1.212l-7.468,0.468l2.266,0.933l-1.939-0.484l-3.313-0.133l-0.053,0.428l-0.538,0.543h-2.745l-0.373,0.553l-0.351-0.388l-7.016,1.55
+ l4.333,0.115l-1.189,0.203l-0.252,0.556l-1.574,0.744l-5.599,0.574l-5.852,0.919l-0.465,0.341l-0.002,0.5l3.147,0.346l-0.548,0.316l-0.262,0.159l2.292,0.127l3.207-0.286l-0.411,0.701l-3.919,0.064l3.065,0.225l-1.301-0.096l-5.542,0.386l1.987,0.194l1.577,0.487
+ l-1.847,0.424l3.867,1.02l-0.57-0.363l1.005-0.099l0.927,0.033l2.582-0.329l1.125-0.033l6.813,1.188l-0.458,0.799l1.458,0.938l0.475,0.471l-0.398,0.439l-0.737,0.406h1.136l0.02,0.884l0.152,0.546l-0.239,0.652l0.493,0.241l-0.22,1.07l-0.894,0.382l-0.583,0.591
+ l1.176,0.035l-2.154,0.699l0.948,0.737l1.902-0.526l0.861-1.5l0.314,1.08l1.047-0.384l-0.426,0.419l1.504,0.35l-1.475,0.28l1.559,0.036l-1.125,0.492l0.766-0.141l-0.442,0.247l1.112,0.423l-0.944-0.106l1.244,0.495l-0.212,0.107l-0.054,0.461l0.213,0.355
+ l-5.177-0.923l-0.417,0.674l5.593,1.32l-0.921,0.466l0.232,0.396l-0.601,0.36l0.205,0.216l0.536,0.217l0.026,0.253l-0.867-0.217l-0.766,0.543l0.658,0.073l-4.349,1.055l0.339,0.292l2.586-0.256l0.854-0.364l-0.776,0.693l0.716,0.402l-3.401-0.366l-0.718-0.073
+ l1.339,0.549l-1.689-0.146l-1.121,0.807l3.208-0.55l-0.367,0.073l1.147,0.183l0.854-0.293l0.678,0.11l-0.881,0.294l1.189-0.037l-0.625,0.22l0.238,0.295l-3.066-0.478l-2.957,0.846l4.029-0.037l0.993,0.369l-1-0.222l-4.104,0.259l0.465,0.407l1.63,0.074
+ l-0.908,0.333l-0.227,0.26h-0.509l1.013,0.334l-1.562,0.074l-0.308,0.634l3.088-0.875l3.065-0.871l-0.748,0.371l-5.443,1.787l0.736,0.075l-0.61,0.225l2.68-0.337l-2.385,0.711l0.234,0.187l0.243,0.3l1.161-0.037l2.212-0.301z M326.313,38.872l-3.773,0.684
+ l0.604-0.289l-0.893-0.252l-0.392-0.431l0.211-0.43l-0.11-0.107l1.024-0.643l3.329,1.467z M376.261,32.73l0.309,0.278l-1.205,0.069l0.468,0.521l-3.022-1.007l0.099-0.518l3.351,0.657z M369.479,35.914l0.91,0.708l-4.746,0.497l3.836-1.205z M375.445,31.454
+ l-4.458-0.068l2.161-0.48l0.969,0.412l-1.386-0.103l2.714,0.24z M376.818,32.35l-3.375-0.414l2.051-0.241l1.325,0.655z"/>
+ <path style="stroke:none;" d="M272.248,181.939l-0.001-0.014l-0.005-0.012l-0.006-0.01l-0.003-0.014l0.002-0.014l0.003-0.016l0.003-0.014l0.005-0.016l0.001-0.016l0-0.018l0.001-0.016l-0.005-0.012l-0.003-0.014l-0.003-0.012l-0.004-0.014l-0.003-0.014
+ l0.007-0.012l0.006-0.012l-0.003-0.01l-0.008-0.01l-0.004-0.008l-0.012-0.004l-0.016-0.002l-0.015,0.002l-0.013-0.002l-0.015-0.004l-0.009-0.008h-0.013l-0.013,0.004l-0.007,0.008l-0.008,0.006l-0.013,0.004l-0.012,0.004l-0.008,0.01l-0.008,0.008l-0.009,0.008
+ l-0.008,0.012l-0.007,0.01l-0.006,0.012l-0.008,0.008l-0.01,0.008l-0.011,0.006l-0.005,0.012l-0.008,0.01l-0.008,0.012l-0.007,0.01l-0.007,0.01l-0.007,0.01l-0.001,0.016l-0.002,0.018v0.016l-0.006,0.012l-0.009,0.008l-0.007,0.012l-0.009,0.008l-0.005,0.012
+ l-0.005,0.014l-0.005,0.014l-0.003,0.016l-0.003,0.018l-0.005,0.014l-0.005,0.012l-0.009,0.008l-0.007,0.01l-0.004,0.014l0.003,0.014l0.003,0.014l0.005,0.01l-0.001,0.014l-0.002,0.01l0.006,0.01l0.006,0.01l0.002,0.014l0,0.018l-0.004,0.014l-0.007,0.01
+ l-0.01,0.006l-0.008,0.012l-0.007,0.01l-0.01,0.006l-0.01,0.006l-0.011,0.008l-0.01,0.006l-0.01,0.008l-0.01,0.006l-0.01,0.004l0.005,0.01l0.007,0.008l0.009,0.006l0.011-0.006l0.012-0.004l0.01-0.006l0.01-0.008l0.011,0.008l0.001,0.014l0.005,0.012l0.013-0.004
+ l0.011-0.008l0.01-0.006l0.008-0.008l0.009-0.008l0.013-0.004l0.007,0.008l0.009,0.01l0.014-0.002l0.01,0.002l0.008,0.01l0.01,0.004l0.006-0.012l0.008-0.008l0.003-0.018l0.006-0.012l0.015,0.002l0.009-0.006l0.007-0.012l0.01,0.002l0.011-0.006l0.009-0.008
+ l0.013-0.002l0.014-0.002l0.011-0.006l0.01-0.008l0.008-0.008l0.009-0.01l0.008-0.008l0.008-0.01l0.006-0.012l0.004-0.014l0.002-0.016l0.007-0.012l0.007-0.012l0.009-0.008l0.008-0.008l-0.004-0.014l-0.006-0.01l-0.005-0.01l-0.001-0.016l0-0.016l-0.003-0.014
+ l0.002-0.018l0.008-0.008l0.017,0.002h0.015l0.012-0.006l0.005-0.012z M272.33,181.449l-0.001,0.02l-0.005,0.012l-0.007,0.01l-0.007,0.012l-0.013,0.002l-0.007-0.008l0.001-0.016l0.004-0.012l0.004-0.016l0.006-0.012l0.011-0.01l0.011,0.006l0.002,0.012z
+ M272.332,181.521l-0.01,0.008l-0.011-0.002l-0.001-0.012l0.006-0.01l0.013,0.004l0.003,0.012z M272.393,181.447l-0.004,0.014l-0.011-0.002l-0.004-0.012l0.008-0.018l0.006,0.008l0.005,0.01z"/>
+ <path style="stroke:none;" d="M272.978,171.195l-0.389,0.645l0.45-0.471l-0.061-0.174z"/>
+ <path style="stroke:none;" d="M737.702,179.044l0.471-0.857l-0.119-0.043l-0.461,0.43l0.109,0.471z"/>
+ <path style="stroke:none;" d="M204.5,176.558l1.874,0.6l1.875,0.602l1.864-1.76l1.384-2.102l1.519-1.201l-0.71-0.344l-0.81-0.129h-0.675l0.385-2.465l0.398-2.467h-2.073h-2.073l-0.186,1.457l-0.694,0.172l1.609,2.447l-2.972,0.428l-1.325,2.059l-0.277,1.846
+ l0.887,0.857z"/>
+ <path style="stroke:none;" d="M392.221,183.763l-0.823-0.645l-0.698-2.1l-0.38,0.428l-1.473,0.559l-1.356,0.17l-0.675-0.299l-1.43-0.043l0.27-0.602l-3.271-0.256l-1.988-0.473l-0.316,1.115l-0.094,1.5l-2.082,0.816l-0.502,1.029l-0.039,0.086l0.53-0.258
+ l0.218,0.686l0.265-0.127l-0.119,0.471l1.229,1.416l0.673,0.557l0.334,0.559l0.634,0.771l0.107,0.773l1.675-1.717l3.062-0.771l1.454,2.402l-0.201,1.715l0.87-0.215h1.284l0.627,2.574l0.564,0.514l1.023-0.6l0.567-0.129l0.189-0.086l0.76-0.943l-0.372-1.072
+ l0.982-0.172l0.117-0.557l-0.26-0.943l-0.148-0.516l-0.3-0.43l0.2-1.973l-1.153-2.316l-0.264-0.043l0.308-0.857z"/>
+ <path style="stroke:none;" d="M377.049,183.205l-0.348,0.688l0.481,0.643l0.221,0.43l0.502-1.029l2.082-0.816l0.094-1.5l0.316-1.115l-1.902,0.172l-1.902,0.172l-2.982,0.6l1.127,0.086l-0.346,0.473l1.125,0.256l-0.155,0.301l1.657-0.043l0.41,0.301l-1.208,0.172
+ l0.826,0.213z"/>
+ <path style="stroke:none;" d="M280.88,204.523l-1.145-1.416l0.203-2.229l1.073-0.559l0.41-1.287l-0.135-2.016l-2.412-1.545l-0.482,0.945l0.154-2.531l-1.304-1.115l-1.301-1.115l0.517,0.344l-0.99-0.816l0.357,0.559l-2.111,2.016l0.947,1.072l-1.657,0.986
+ l-0.814,1.93l1.306,2.016l1.289-0.086l0.19,1.459l0.952,1.33l-0.617,2.316l0.252,3.045l1.494,1.887l1.402-0.043l2.247-1.115l2.316-0.428l-1.074-1.803l-1.067-1.801z"/>
+ <path style="stroke:none;" d="M251.065,162.447l-1.326-0.129l-2.211-0.215l0.2,0.559l0.951,0.855l0.729,1.932l-1.801-0.086l-1.8-0.086l-1.203,0.428l1.374,0.773l2.285,0.105l2.285,0.107l-0.181-1.5l0.318-0.902l0.38-1.842z"/>
+ <path style="stroke:none;" d="M217.719,177.33l2.834-2.145l1.852-0.322l1.852-0.32l-0.93-0.816h-0.712l-0.284-0.514l0.432,0.17l-1.502-1.029l-1.813-0.041l-1.812-0.045l-2.157,0.193l-2.157,0.193l-0.305,0.043l-1.519,1.201L210.113,176l1.362,1.029l1.845,0.344
+ l-0.037,1.201l0.845,0.215l0.255,0.943h0.564l0.813-1.545l1.104-0.557l0.854-0.301z"/>
+ <path style="stroke:none;" d="M664.979,155.689l-0.451,0.23l0.285,0.039l0.166-0.27z"/>
+ <path style="stroke:none;" d="M457.165,90.112l-1.633-1.174l-3.43-0.042l-3.189,1.384h-2.602l-0.629-0.335l-0.729,0.839l-0.186,0.167l-0.697,1.679l-0.252,0.21l2.574,2.221l2.697,0.334l3.277-0.669l1.176-0.377l1.641-2.264l1.98-1.973z"/>
+ <path style="stroke:none;" d="M383.619,45.788l-0.235,0.484l-1.66,0.485l-1.219-0.224l-0.195,0.935l-0.099-0.3l-1.515-0.523l-0.522,0.599l-1.123-0.636l-1.044,1.311L375.1,48.37l-0.771-0.676l0.564-0.45l-2.501-1.418l0.463,0.559l0.268,0.71l-1.291-0.561
+ l-0.512,0.299l-0.122,0.336l0.421,0.188l-0.1,0.075l-1.435-0.112l0.427,0.45l-1.016,0.075l3.922,0.15l-0.582,0.526l0.45,0.377l-3.357,0.415l2.715,0.605l0.805,0.189l-0.384,0.379l0.515,0.038l-0.407,0.342l-1.495,0.571l1.221,0.343l2.504,0.191l3.897,0.688
+ l2.787-0.955l2.765-0.951l1.674-0.947l0.875-0.605l0.498-0.075l-0.726-0.453l0.714-0.226l0.042-0.376l-1.596-0.075l0.412-0.338l-0.783-0.15l-0.109-0.749l0.744-0.747l-1.371,0.298l-1.605-0.521z"/>
+ <path style="stroke:none;" d="M617.886,137.992l-1.553,1.457l-1.57,1.457l-2.027,0.773h-0.037l0.65,0.816l0.824,1.33l-2.098,0.15l-2.1,0.15l-2.693-0.258l-0.352-1.031l-1.049-2.059l-0.926,0.643l0.631,3.563l-2.484-0.127l-2.855-0.346l-1.629-0.471l-1.063-1.158
+ l-2.84-0.473l-2.18-0.473l-2.762-1.416l-2.766-1.416l-0.143-1.584l1.223-2.096l-2.104-1.451l-2.625-1.494l-1.059-0.344l-0.982-2.777l1.34,0.17l0.371-0.984l-1.408-1.889l-0.074-0.99l0.906-0.518l0.328-1.209l0.311-2.172l-1.615-0.697l-1.994-0.393l-1.703,1.09
+ l-2.049,1.867l-2.463,0.736l-3.184-0.432l-0.004,0.865l1.07,1.164l-0.031,0.773l0.574,1.375l0.969,0.6l0.865,0.941l0.971,0.77l-1.459,1.068l0.418,1.924l-0.914,1.707l-1.074,1.924l-1.383,2.162l-1.412,2.166l-2.117,0.043l-0.877-0.215l-1.195,3.092l1.611,0.945
+ l0.475,1.76l0.854,0.043l1.121,3.391l-0.83-0.129l-2.172,0.344l-1.893-0.086l0.109,0.902l-1.158,0.514l0.016,0.129l0.924-0.301l-0.414,0.559l2.006,2.016l2.613-0.473l-0.164,0.516l-1.615,1.115l-1.205-0.172l1.994,2.145l1.99,2.143l3.063-0.898l0.188-1.674
+ l0.166-1.156h1.148l-0.365,0.686l-0.092,0.514h1.262l-0.836,0.814l0.313,1.158l0.121,1.801l0.615,2.615l0.111,0.688l0.246,0.557l0.705,3.174l0.869,2.51l0.857,2.51l0.502,0.557l1.236,2.982l1.211,2.98l1.047,2.102l1.035,2.102l1.025,2.102l1.016,2.102
+ l-0.322-0.342l0.938,1.994l0.93,1.994l1.43,0.686l1.182-1.33l1.289-1.371l1.35-0.172l-0.885-0.986l1.254-1.803l0.672-0.129l-0.195-1.865l-0.203-1.865l0.434-2.037l0.42-2.037l-0.27-0.516l0.262,0.43l-0.502-2.316l-0.244-2.959l1.262-0.857l0.236-0.26l0.516-0.084
+ l0.607-0.986l1.834-0.688l0.303-1.631l2.168-2.229l2.152-2.232l1.75-1.801l-0.979,0.215l0.881-0.385l1.439-0.688l1.32-1.887l0.049-1.887l2.24-1.543l-0.521-0.557l0.965,1.629l0.479-0.301l0.207,0.43l-0.098-1.244l0.594,1.072l0.563,0.043l-0.133-0.686
+ l-0.629-1.975l-0.641-1.973l-0.223-1.457l-1.67-1.459l0.529-1.031l0.953-0.473l-1.686-1.631l0.057-1.891l1.443,0.645l0.762,0.73l0.582-0.43l0.822,2.105l2.381,0.234l2.381,0.236l1.146,0.859l-0.371,1.074l-1.627,1.115l0.469,2.059l0.447,0.516l1.004-1.889
+ l0.865,2.252l0.85,2.252l0.1-0.086l0.783,0.043l0.037-2.746l0.061-2.186h1.441l1.01-3.135l0.051-1.117l0.125-2.188l2.176-2.234l1.66,0.387l-0.436-0.814l0.229-0.773l0.309-1.201l-2.432-0.857l0.07-1.07l-0.875-0.301l0.148-0.428l-0.949-0.301l-1.18,0.686
+ l-1.85-0.258z M620.735,181.833l0.471-3.518l0.104,0.688l-0.297,2.102l-0.313,2.1l0.035-1.371z"/>
+ <path style="stroke:none;" d="M681.755,210.828l-1.271-1.287l-1.279-1.285l0.473-0.816l-1.717-2.615l-0.379-0.988l0.715-0.084l0.531,0.043l-0.523-0.773l-0.164-0.256l0.25-0.344l-1.961-0.258l-1.961-0.256l-0.508,1.801l-0.52,1.801l-0.488,1.287l-1.002,2.273
+ l-1.918,0.729l-3.006-0.686l-0.777,1.072l-3.021,0.643l-2.18-1.328l-0.49-1.674l-1.289,1.801l0.379-0.086l-0.699,1.373l0.58,1.973l-0.115,0.773l0.637,1.201l-0.227,0.084l1.465,1.074l-0.037,1.93l0.494,2.658l1.012,0.301l0.539-0.258l-0.232,0.172l2.016-0.215
+ l0.369,1.287l1.293-0.129l1.314-0.771l1.449,0.771l1.479-0.043l0.438,0.43l0.287,1.33l3.07-1.029l0.523-1.846l0.449-0.986l0.59-0.771h-0.414l-0.086-1.115l0.979-1.629l1.449-0.688l0.428-1.158l-0.301-0.258l1.119-3.387l0.154,0.041l2.086,0.172z M652.364,221.464
+ l-0.236,0.215l-0.354,3.24l-0.375,3.236l-1.088-0.986l-0.217,0.6l-1.152-0.428l-0.002,0.814l-2.242-2.23l-1.195-1.244l-1.199-1.242l-1.203-1.244l-1.209-1.244l-0.945-2.123l-0.961-2.123l-0.373-0.344l-1.211-1.908l-1.229-1.91l-0.693-1.715l-0.707-1.715
+ l-1.816-1.801l-1.496-2.061l-1.721-1.715l-1.729-1.715l-1.594-2.918l1.598,0.215l1.715,0.301l1.717,0.299l2.063,2.359l0.285,0.559l2.033,1.844l2.025,1.844l1.75,1.803l-0.096-0.859l1.967,1.588l1.16,1.459l2.061,1.5l-1.133,0.859l1.436-0.773l1.369,1.244
+ l-0.91,0.559l0.188,0.428l-0.191,0.344l0.295,0.9l1.814,0.43l0.385,1.887l0.479,0.602l-0.422,1.672l0.434-0.602l1.781-0.041l1.146,2.143z M730.642,236.65l-1.256-1.545l-0.635-1.416l-1.879,0.344l-0.627,0.256l0.174-1.199l-0.504-1.287l1.023-0.043l-1.203-0.6
+ l1.1-0.043l-0.611-0.43l-1.203-2.918l-0.877-1.113l-1.664-0.645l-1.664-0.643l-1.668-0.643l-1.67-0.645l0.154-0.771h-0.531l-1.932-0.73l0.406-1.5l-1.436,2.402l-1.129-0.129l0.316-1.074l-1.938-1.629l0.889-0.471l2.029-0.559l0.754,0.086l0.23-0.086l0.197-0.258
+ l0.094-0.514l-1.668,0.064l-1.67,0.064l-1.094-1.502l-1.766-0.6l0.363-1.244l2.023-1.373l2.1,0.387l2.1,0.385l0.287,1.074l-0.027,1.285l0.514,2.83l0.17-0.471l0.826,1.158l0.945,0.9l2.369-2.402l2.123-1.242l1.51-1.244l2.789,1.285l2.779,1.287l1.502,0.344
+ l-0.09,2.102l-0.107,2.102l-0.123,2.102l-0.131,2.102l-0.145,2.102l-0.158,2.102l-0.174,2.104l-0.189,2.102z M696.048,209.285l-1.518,2.359l-3.102,0.557l-3.203-0.15l-3.203-0.15l-0.832,2.23l1.824,2.531l1.877-1.244l2.771-0.473l0.799-0.342l0.408,0.857
+ l-0.568-0.043l-1.611,1.244l-1.619,1.244l-0.867-0.129l1.107,1.715l1.094,1.717l-0.291,0.643l1.342,2.188l-0.504,0.258l-1.52,0.9l-0.777,0.387l-0.266-1.545l-0.996-1.373l-0.184-1.115l-0.131-1.586l-1.477,1.072l0.057,3.131l0.031,3.131l-1.988,0.387l-0.148-1.502
+ l0.111-1.865l0.102-1.865l-1.09-0.215l-0.219-2.23l1.055-2.531l0.912-2.4l0.301,0.299l-0.213-2.23l1.16-2.145l0.418,0.086l0.932-1.072l1.365,0.086l2.867,0.449l2.867,0.451l2.232-2.188l0.693,0.473z M670.968,235.707l-1.826-0.559l-1.832-0.559l-2.902-0.342
+ l-2.904-0.344l-2.105-0.451l-2.105-0.449l-2.361-0.621l-2.363-0.623l0.035-0.6l-2.379-0.73l0.732-0.258l1.18-1.629l2.869,0.086l2.582,1.244l0.934,0.9h1.795h1.797l0.928-1.072l1.059,0.686l2.744,0.9l0.623,1.545l1.666,0.236l1.664,0.236l-0.063,2.016l0.234,0.387z
+ M699.767,234.847l-2.91,1.674l-2.918,1.672l-2.756,1.674l-0.33-0.516l0.18-0.301l1.029-1.844l2.207-1.115l2.203-1.115l3.295-0.129z M704.388,212.628l-2.313-0.299l0.973,3.088l-1.426-2.23l-0.199-1.865l-0.219-1.867l1.129-1.801l-0.051,0.986l-0.494,1.715
+ l0.088,0.73l0.738-1.244l0.742-0.686l0.654,0.514l-1.002,1.158l1.379,1.801z M708.622,222.494l-0.365,0.516l-2.705-1.287l-1.898,0.129l-1.344-0.43l-0.326,0.516l0.188-0.857l1.311-0.602l2.039,0.172l2.037,0.172l1.064,1.672z M690.122,234.548l-1.898,1.113
+ l-2.254,0.107l-2.254,0.107l-0.99-0.385l1.176-1.072l1.848,0.277l1.848,0.279l1.244,0.043l0.73-0.686l0.488,0.043l0.063,0.172z M681.376,235.363l-1.086,0.385l0.107,0.086l-0.777-0.215l-1.934,0.365l-1.936,0.365l0.551-1.287l1.762,0.172l1.244,0.043l-1.006-1.244
+ l1.939,0.857l0.73-0.172l0.404,0.645z M654.12,219.792l-0.266,1.244l-1.855-1.201l-0.721-1.373l-0.863-0.385l1.076-0.73l0.221,0.344l0.199-0.602l0.9,2.102l1.309,0.602z M684.767,239.093l-1.541,0.387l-1.891-1.244l-0.498-0.814l2.373,0.043l1.557,1.629z
+ M726.604,232.66l-1.197,1.717l-2.033,0.387l1.365-2.402l1.865,0.299z M700.474,221.851l-1.107,1.072l-1.729-1.158l0.938-0.729l1.898,0.814z M673.528,234.763l-1.301,0.77l-1.295-1.457l2.252,0.213l0.344,0.475z M633.976,210.656l-0.256,1.072l-1.652-2.188
+ l0.527-0.215l1.381,1.33z M675.833,234.763l-0.893,1.328l-0.834-0.43l1.119-1.373l0.607,0.475z M657.433,220.478l-0.783,0.771l-0.727,0.215l0.051-1.543l1.459,0.557z M691.034,226.785l-1.34,0.984l1.148-3.131l-0.037,0.73l-0.023,1.201l0.252,0.215z
+ M717.12,228.886l-0.855,0.387l-0.018-1.504l0.738-0.342l0.135,1.459z M637.054,217.519l-0.982-0.043l-0.352-1.887l1.334,1.93z M690.099,225.882l-0.889,1.072l0.313-1.629l0.504-0.215l0.072,0.771z M696.175,217.992h-2.234l0.998-0.559l1.236,0.559z
+ M716.474,230.087l-0.658,0.771l-0.197-1.545l0.855,0.773z M670.181,231.117l-2.258,0.43l-0.848-0.346l3.105-0.084z M721.374,216.019l-1.248-0.174l-0.781-0.943l2.029,1.117z M692.194,216.49l-0.844,0.514l-0.182-0.385l-0.578,0.43l0.586-0.902l0.486,0.344h0.531z
+ M702.628,217.476l-1.697-0.258l1.182-0.385l0.516,0.643z M710.089,231.673l-1.553,2.102l1.225-2.273l0.328,0.172z M709.956,213.916l-1.361-0.385l0.375,0.686l-1.209-0.6l0.416-0.301l1.779,0.6z M702.103,215.203l-1.131-0.471l0.193-0.688l0.938,1.158z
+ M694.874,234.632l-1.656-0.084l1.582-0.43l0.074,0.514z M675.458,223.191l-0.527,0.273l0.572-1.879l-0.045,1.605z M703.823,206.925l-0.916,0.943l0.633-1.5l0.283,0.557z M709.288,215.746l-0.258,0.891l-0.594-0.611l0.852-0.279z M698.839,233.132l-2.32,0.213
+ l2.264-0.471l0.057,0.258z M660.849,215.798l-0.75,0.621l0.133-0.764l0.617,0.143z M707.798,218.248l-1.277-0.385l1.287,0.043l-0.01,0.342z M642.647,208.126l-0.711,0.428l0.398-0.857l0.313,0.43z M725.917,234.796l-0.627-0.252l0.637-0.379l-0.01,0.631z
+ M692.212,234.376l-0.602,0.471l-0.875,0.086l1.477-0.557z M688.44,226.56l-0.084,0.623l-0.5-0.545l0.584-0.078z M690.495,240.488l-1.342,0.355l0.1-0.043l0.789-0.463l0.453,0.15z M649.284,210.785l-0.766-0.557l0.723,0.086l0.043,0.471z M645.614,211.3
+ l-1.256-0.602l0.264-0.129l0.992,0.73z M644.312,210.013l-0.447,0.516l0.139-0.859l0.309,0.344z M691.284,223.615l-0.379,0.438l-0.215-0.568l0.594,0.131z M682.169,235.277l-0.402,0.303l0.229-0.74l0.174,0.438z M699.606,202.078l-0.359,0.387l0.225-0.814
+ l0.135,0.428z M684.905,228.667l-0.246,0.719l0.201-0.988l0.045,0.27z M690.429,234.898l-0.305,0.096l-0.141-0.076l0.445-0.02z"/>
+ <path style="stroke:none;" d="M510.772,127.945l1.768,1.135l1.77,1.135l0.883,1.111l-0.076,2.049h0.725l0.775,1.709l0.67,0.941l0.342-0.172l0.639-1.195l0.035,0.256l0.994,0.641l0.965-0.129l2.008,2.781l1.08,1.586l1.779,1.674l1.98,1.242l1.982,1.246l3.357,0.773
+ l1.842-0.73l1.834-0.73l0.898,1.762l0.889,1.76l2.418,0.375l2.418,0.375l2.42,0.377l2.422,0.375l0.199-1.975l0.797-0.945l1.99-0.773l-0.014-1.158l-0.709-0.344l-0.705-2.574l-1.727-0.771l-1.584-1.736l-1.59-1.732l1.641-2.947l-0.457-0.939l-2.086-0.727
+ l-0.453-2.182l-0.471-2.186l0.197-0.471l-0.889-0.689l-0.004-1.295l0.209-0.387l0.432-2.953l-0.865-2.752l-1.9-0.262l-1.834-1.203l-1.83-1.2l-3.492-1.308l-1.998,0.217l-2.432,0.349l-1.582,1.614l-0.717-0.043l0.418,0.875l-0.607,0.523l0.596-0.219l-1.928,0.395
+ l-1.932,0.393l-2.027-0.721l-2.027-0.723l-2.416-1.048l-1.242-2.352l-1.965-1.3l0.217-0.518l-0.615-1.375l-2.162,1.332l-1.656,0.735l-2.578-1.466l-0.322-0.429l-0.086-0.086l-0.164-0.128l-0.918,0.729l0.283,1.423l0.51,2.606l1.395,1.834l2.082,3.061l1.504,0.742
+ l0.014,1.219l-0.775,2.426l0.234,1.338l1.227,1.762z"/>
+ <path style="stroke:none;" d="M509.546,126.183l-0.234-1.338l0.775-2.426l-0.014-1.219l-1.504-0.742l-2.082-3.061l-1.246,0.176l-0.572-0.482l-2.787,0.045l-0.57,0.438l-1.979,1.967l0.055,2.531l0.041,2.516l-2.189,1.338l-2.201,1.332l1.439,2.957l2.111,0.963
+ l2.113,0.959l2.117,0.961l2.121,0.961l0.279,0.813l1.316,0.084l0.057,2.01l2.596,1.027l1.559-0.684l2.482,0.941l0.969-2.182l1.799-0.172l1.289,0.129l-0.67-0.941l-0.775-1.709h-0.725l0.076-2.049l-0.883-1.111l-1.77-1.135l-1.768-1.135l-1.227-1.762z"/>
+ <path style="stroke:none;" d="M510.747,137.308l-1.559,0.684l1.879,1.113l2.162-0.855l-2.482-0.941z"/>
+ <path style="stroke:none;" d="M399.353,78.646l0.008-1.882l0.01-1.874l-1.152-0.609l-0.52,0.203l-1.579-0.244l1.479-1.703l0.248-0.566l-0.777,0.404l-0.693-0.041l-1.504,0.891l0.582,0.365l-0.611,0.73l-2.404,0.284l0.208,0.732l-0.885,0.855l2.202,0.694
+ l-1.607,1.636l1.667-0.41l-1.732,0.943l-0.96,0.37l0.6,0.246l-0.611,0.452l0.889,0.329l-0.312,0.33h0.747l-0.116,0.329l2.159-0.247l1.928-0.947l1.956-0.329l0.781-0.944z"/>
+ <path style="stroke:none;" d="M487.638,137.246l0.137-0.152l0.17-2.051l0.16-2.051l0.146-2.051l0.139-2.053l-0.18-1.287l-1.072,0.387l-0.711,2.27l-0.725,2.264l0.973,2.361l0.963,2.363z"/>
+ <path style="stroke:none;" d="M439.042,93.679l-3.189-1.006l-2.199,0.292l-1.215-0.125l0.006,0.125l-0.41,0.504l-0.471,0.671h-1.414l-0.766,1.004l-1.324-1.047l-1.211,0.963l-1.244,0.125l-0.031,1.045l-0.271,0.959l0.021,0.665l0.064,0.956l1.426,0.788
+ l0.002,0.953l1.928-1.326l2.754,0.54l1.564,2.567l1.838,1.659l1.854,1.665l2.279,1.087l2.502,1.725l1.184,0.549l1.102,0.85l1.432,2.702l-0.811,2.255l0.916,0.609l0.953-1.695l0.781-0.953l0.34-0.691l-1.158-1.074l0.443-2.13l1.283,0.382l1.52,1.191l0.402-1.149
+ l-2.672-1.458l-2.658-1.447l0.354-0.878l-0.752-0.333l-2.676-0.75l-1.072-1.598l-1.066-1.595l-2.025-1.202l-0.805-2.032l-0.342-1.166l1.828-1.085l1.166,0.25l-0.402-1.463l0.244-0.879z M443.542,117.048l0.02,1.66l-2.594-1.178l-2.586-1.181l-0.582-1.134
+ l1.855-0.262l2.385-0.217l2.381-0.219l-0.879,2.529z M430.354,112.052l-0.775,0.864l-0.574-1.423l-0.24-1.88l-0.24-1.862l2.049-0.924l1.328,1.852l-0.361,3.201l-1.186,0.173z"/>
+ <path style="stroke:none;" d="M399.817,186.722l-0.94-0.428l-1.51,0.301l-0.296-0.988l-0.794,0.602l-1.06,0.643l-1.355-0.342l-0.531,0.471l-0.2,1.973l0.3,0.43l0.148,0.516l0.26,0.943l-0.117,0.557l-0.982,0.172l0.372,1.072l-0.76,0.943l-0.189,0.086l0.065,2.359
+ l-0.04,0.428l1.507,1.287l0.942,1.072l-0.351,3.131l2.86-1.008l2.858-1.008l-0.643-0.084l2.914-0.174l-1.514,0.086l1.854-0.172l1.363,0.086l0.643,0.301l-0.303,0.086l0.719-0.514l-0.488-1.973l-0.49-1.975l0.836-1.779l0.834-1.781l-0.449-3.303l-1.996-1.158
+ l-2.152,0.602l-1.314-1.459z"/>
+ <path style="stroke:none;" d="M237.716,165.578l-1.864,0.643l2.602,1.115l2.199-0.301l-2.937-1.457z"/>
+ <path style="stroke:none;" d="M398.571,35.667h-0.645l-1.103,0.671l1.635-0.601l0.112-0.071z"/>
+ <path style="stroke:none;" d="M710.782,121.941l0.367,1.391l0.922-2.35l-1.334-2.578l-1.322-3.275l0.57-0.913l-0.313-3.023l-2.135-2.259l-1.865-2.231l-1-0.376l-0.256,0.586h0.938l0.27,0.376l-0.6,0.378l-1.031-0.713l-0.223,1.219l0.773,2.249l1.242,2.019
+ l-0.172,1.927l-0.215,1.938l-1.078,1.093l-1.092,1.094l-0.746-0.875l0.113-0.699l-0.957,0.568l0.197,2.098l0.25,1.441l-1.213,0.611l-0.406-0.262l-2.201,0.131l-2.205,0.131l-1.4,1.457l-1.422,1.451l-0.418,0.863l2.568,0.475l0.754-1.078l2.975-0.648l2.598-0.348
+ l0.248,1.686l2.131,1.592l0.248-1.074l0.955-1.078l-0.523-0.691l-0.445-1.215l0.707,0.607l0.729,0.348l2.332,0.174l0.469-1.389l0.578,1.172l0.217-0.998l0.939-0.434l-0.035-1.133l0.518,0.566z M708.274,100.137l0.574-0.787l0.848,1.698l1.129,0.788l0.48-0.248
+ l-2.238,1.035l-1.053,1.66l-0.07,0.624l-4.326-1.329l-0.918,0.332l-1.125,0.125l2.596,1.666l-1.115,0.208l-0.541,0.46l-1.479-1.835l-0.404-1.411l-0.074-0.995l0.32-0.29l1.48-0.042l-1.096-2.092l-1.121-2.096l-0.553-1.333l3.344,1.708l3.35,1.701l1.992,0.456z
+ M696.671,128.416l-0.172,1.885l-0.203,1.879l-0.674,0.896l-0.824-1.494l0.17,1.197l-0.609-0.557l-0.604-1.922l0.061-1.113l-1.479-1.242l0.703,1.285h-0.83l-0.451-0.943h0.287l-1.033-0.943l2.297-1.375l1.334,0.773l0.719,0.43l0.18,0.43l1.129,0.814z
+ M700.503,127.343l-1.672-0.043l-0.254,1.545l-1.291-1.029l-0.666-0.73l-0.287,0.086l1.277-1.549l1.197-0.215l1.08-0.563l1.002,0.648l0.604,0.646l-0.99,1.203z M692.964,145.714l0.887-1.717l0.182,0.258l-1.068,1.459z M704.458,115.234l-0.572,0.013l0.104-0.765
+ l0.469,0.752z M693.104,129.574l0.154,0.383l-0.523-0.041l0.369-0.342z"/>
+ <path style="stroke:none;" d="M491.11,130l-2.721-1.111l-0.139,2.053l-0.146,2.051l-0.16,2.051l-0.17,2.051l0.043,0.471l2.449,0.473l1.326-1.756l1.604-0.342l0.957-1.281l-2.449-2.563l2.391-0.939l2.383-0.941l-1.439-2.957l-1.959,1.373L491.11,130z"/>
+ <path style="stroke:none;" d="M650.62,183.419l1.217-0.686l2.113-1.115l-0.17-1.994l-0.184-1.994l-0.09-2.316l-1.58,0.9l-0.867-0.344l-0.824,0.645l0.053,0.771l-1.928-1.072l-2.375,0.064l-2.377,0.064l-1.402,2.615l0.852,2.125l0.84,2.121l0.09,0.174l0.563,1.715
+ l0.74-0.6l0.279,1.072l0.637,0.428l1.424,0.344l1.32-0.9l0.648-0.344l1.645,0.258l-0.623-1.932z"/>
+ <path style="stroke:none;" d="M515.405,92.63l2.684,0.126l0.479,2.848l0.645,0.918h-2.607l-1.197,1.042l0.941,0.915l-2.316,0.124l1.035,0.747l1.889,2.403l0.842,0.497l1.744,0.664h3.668l-0.281,1.722l2.428,0.735l2.434,0.738l-0.564-2.247l-0.58-2.236
+ l-0.594-2.235l-0.602-2.241l2.564-0.937l2.551-0.938l2.689,1.382l2.701,1.378l2.154,2.499l2.174,0.135l2.176,0.136l2.178,0.136l2.178,0.134l2.281,1.607l0.178,2.007l2.004,1.001l2.006,1.004l1.973-1.418l1.949-1.413l1.348-1.118l2.189,0.324l2.193,0.322
+ l1.074-1.453l1.938,0.222l2.975-0.035l2.693-0.289l2.689-0.289l2.691,1.615l0.5-0.497l-0.02-0.498l-0.959-1.822l-0.969-1.824l-1.313-0.665l2.389-0.916l2.814,0.251l-0.777-0.917l-0.201-2.154l-0.223-2.16l3.266,0.587l1.889-0.21l-0.988-2.727l0.93-0.671
+ l0.809-1.717l-2.348-2.398l-2.662,0.608l-2.684-1.68l-2.684-1.673l-2.551,0.395l-1.488-0.532l-0.463,0.609l-2.723-1.849l-2.721-1.84l-2.717-1.833l-2.711-1.825l0.348-1.136l-0.479-0.396l-2.514,0.927l-2.537,0.929l-1.547-0.266l-1.482-0.779l-3.869-1.292
+ l-1.412-1.558l-1.838,0.175l-2.357,0.676l-2.371,0.676l-2.385,0.677l-2.4,0.678l-2.551,0.418l-2.559,0.418l2.447,1.17l-1.822-0.064l-0.934,2.824l2.129,2.523l-0.342,0.705l-3.912-0.624l-3.887,0.057l-2.99,0.2l-2.689-1.229l-2.676-1.226l-2.887,0.077l-1.496,1.127
+ l-1.514,1.13l-0.385,1.05l-2.418-1.044l-0.295,2.767l-0.342,2.785l2.414,1.891l2.424,1.893l1.572,2.484l0.262-0.167l2.596-1.175l1.709,0.126z"/>
+ <path style="stroke:none;" d="M496.784,220.865l0.18,0.9l1.699,1.695l1.697,1.693l0.229-0.129l0.998-2.188l0.994-2.188l1.035-0.943l0.885-1.588l1.295-0.686l-1.238-2.059l-0.006-2.381l-0.014-2.379l-0.025-2.381l-0.035-2.381l1.023-1.459l1.018-1.457l-2.24-0.473
+ l-2.373,0.729l-1.084,0.943l-3.152-0.6l-2.752-1.93l-1.973-0.344h-1.76h-1.76l-0.855,1.029l0.971,2.016l0.684,1.994l0.68,1.994l-0.936,2.018l-1.547,2.572l0.033,2.832l2.088,1.285l2.082,1.289l2.082,1.285l2.078,1.287z"/>
+ <path style="stroke:none;" d="M563.915,107.408l-2.611,0.859l-2.623,0.864l0.162,1.651l3.674,0.462l3.68,0.463l0.746-1.925l1.52-0.934l0.996-0.043l1.23,0.254l1.418-1.603l2.209-0.545l1.643-1.276l1.627-1.27l-0.588-1.204l-2.691-1.615l-2.689,0.289l-2.693,0.289
+ l-2.975,0.035l-1.938-0.222l-1.074,1.453l-2.193-0.322l-2.189-0.324l-1.348,1.118l1.531,1.879l2.91,0.198l2.268,1.468z"/>
+ <path style="stroke:none;" d="M54.1,208.597l-0.401-0.471l-0.35,0.256l0.751,0.215z"/>
+ <path style="stroke:none;" d="M516.612,137.009l-0.615-1.113l-1.799,0.172l-0.969,2.182l2.037,0.258l0.348,0.771l1.873,0.385l-1.414-2.014l-0.137-0.514l0.676-0.127z"/>
+ <path style="stroke:none;" d="M645.267,161.074l-0.67-0.729l-1.252-1.115l-1.146,0.514l-1.594-1.414l-0.361-1.115l-1.795-1.715l-1.061,0.086l0.508,3.002l-0.963-0.473l-0.332-0.471l-1.063,1.801l-0.842,1.33l0.787,0.299l0.305,1.543l1.725,0.086l0.186,2.639
+ l0.176,2.637l1.98-1.543l1.383,0.514l0.982-0.428l1.086-0.73l2.758,2.23l0.422,1.889l1.945,2.701l0.584,2.188l-0.654,1.416l1.928,1.072l-0.053-0.771l0.824-0.645l0.867,0.344l1.58-0.9l-0.342-2.059l-0.686-0.902l0.074-0.557l-1.947-1.588l-1.004-1.5l-1.414-1.717
+ l-1.416-1.715l-2.93-2.102l0.408-0.729l1.281-0.387l-0.266-0.986z"/>
+ <path style="stroke:none;" d="M457.749,68.722l4.031,1.832l2.672-0.301l-1.318-2.79l-1.188-1.724l-2.727-0.454l-2.719-0.453l0.281,2.192l-1.035,0.88l-2.377-1.48l-1.695,0.041l-0.904,3.206l0.563-0.129l3.213-0.411l3.203-0.411z"/>
+ <path style="stroke:none;" d="M489.583,126.097l0.285-1.51l-1.324-0.605l-0.695,2.006l-0.711,2l1.072-0.387l1.373-1.504z"/>
+ <path style="stroke:none;" d="M472.71,287.482l-2.162,2.184l1.543,2.223l0.852-0.684l2.127-1.625l0.484-1.584l-1.959-1.156l-0.885,0.643z"/>
+ <path style="stroke:none;" d="M394.287,201.949l0.351-3.131l-0.942-1.072l-1.507-1.287l0.04-0.428l-0.065-2.359l-0.567,0.129l-1.023,0.6l-0.564-0.514l-0.627-2.574h-1.284l-1.048,1.588l-1.049,1.586l-0.685,0.816l2.126,1.865l2.127,1.865l2.359,1.459l2.36,1.457z"
+ />
+ <path style="stroke:none;" d="M464.989,162.96l-0.045-1.287h2.232l-0.096-2.572l-0.098-2.572l-0.129-2.414l-0.133-2.412l-0.143-2.414l-0.146-2.414l-0.158-2.416l-0.168-2.414l-0.176-2.414l-0.186-2.408l-0.092-1.945l-0.1-1.943l0.389-1.623l-1.225-0.898
+ l-3.383-0.855l-0.424-0.898l-2.855-0.643l-1.609,0.986l-1.617,0.984l0.131,3.459l-2.174,1.41l-2.514-1.219l-2.508-1.217l-2.496-0.725l-1.047-2.309l-2.387-0.578l-2.387-0.578l-3.197-0.814l-0.107,2.057l-1.402,1.217l-1.41,1.219l-0.01,2.135l-1.176,0.896
+ l-0.164,0.686l0.986,2.996l0.07,2.938l0.064,2.939l-1.01,0.945l1.441,2.148l0.889,2.145l2.557,0.473l0.965,2.018l3.197,0.771l1.85,1.543l1.607-0.943l2.26-1.33l2.254,1.289l2.258,1.285l2.262,1.287l2.266,1.287l2.268,1.285l2.271,1.287l2.275,1.285l2.277,1.287z"
+ />
+ <path style="stroke:none;" d="M430.511,91.833l-0.111,0.503h0.27l-0.158-0.503z"/>
+ <path style="stroke:none;" d="M451.22,72.902l-0.875-0.163l0.791-1.818l-1.23,1.859l-0.67,0.689l-0.479,0.487l3.58,0.264l3.586,0.264l2.953-1.969l2.904-1.961l-4.031-1.832l-3.203,0.411l-3.213,0.411l-0.563,0.129l0.449,3.229z"/>
+ <path style="stroke:none;" d="M423.446,84.633l-0.523,1.125l-0.055,0.334h-0.033l1.129,0.208l-0.008-0.208l-0.51-1.459z"/>
+ <path style="stroke:none;" d="M513.964,254.064l-0.832,0.127l-2.006,1.029l-0.572,2.061l-0.576,2.059l0.355,2.615l0.352,2.617l-1.193,1.736l-1.191,1.736l-0.605,3.475l0.5,2.787l0.771,3.305l2.982,1.287l1.951-1.008l1.951-1.01l0.826-2.344l0.816-2.344
+ l0.811-2.342l0.803-2.342l0.801-2.344l0.803-2.342l0.801-2.344l0.799-2.342l0.896-1.629l-0.027-3.604l1.244,1.07l0.537-1.414l-0.711-3.238l-0.734-3.238l-0.707-1.76l-0.449-0.041l-0.678,0.814l-0.424,2.572l-0.889,0.473l-0.355,0.342l-0.66-0.342l0.191,1.416
+ l-0.545,1.029l0.246,0.299l-1.168,0.773l0.117-0.773l-0.736,1.76l-0.383,0.129l-0.512-0.215l-0.869,1.373l-1.73,0.129z"/>
+ <path style="stroke:none;" d="M489.208,251.275l-0.822,2.617l1.066,1.674l1.061,1.672l-0.264-1.502l1.25-1.115l0.33-1.887l0.324-1.887l-1.33-1.48l-1.334-1.48l-0.363-2.572l0.436-1.889l0.77-0.514h0.037l-0.656-2.016l-0.646-2.703l-0.855-0.514l-2.295-0.344
+ l0.176,0.6l1.344,2.104l-0.514,0.898l-0.092,1.996l-0.1,1.994l-0.357,0.643l-1.174,2.488l1.01,1.158l0.713,1.072l1.424,0.043l0.863,0.943z"/>
+ <path style="stroke:none;" d="M676.767,195.343l-0.525,0.688l-0.193-0.688l-1.105,1.781l-1.113,1.779l-0.535,0.645l0.225,0.686l-0.537,0.645l0.051,1.07l-0.557-1.371l-0.361,1.158l-0.486,0.986l-1.234-1.373l-1.316,1.908l-1.328,1.908l-1.572,0.537l-1.572,0.535
+ l-0.203,0.859l-0.023,0.514l-0.234,1.287l-0.332,0.514l0.42,0.174l-1.793-0.602l-1.838-0.943l-0.043-0.215l0.49,1.674l2.18,1.328l3.021-0.643l0.777-1.072l3.006,0.686l1.918-0.729l1.002-2.273l0.488-1.287l0.52-1.801l0.508-1.801l1.961,0.256l1.961,0.258
+ l0.473-0.43l1.57-0.43l-0.629-1.242l2.27-0.73l-2.598-1.199l-0.426-0.172v-0.688l-1.072,0.43l0.135-1.588l-1.346-1.029z M646.919,209.585l-2.691-1.932l-2.703-1.93l-1.273-2.918l-0.863-3.088l-0.883-3.088l0.133-0.385l1.744,0.857l0.131,1.158l1.547-0.086
+ l0.932-1.072l1.414,1.479l1.41,1.48l0.291,2.445l0.279,2.445l1.031,2.23l1.014,2.229l-0.764-0.385l-0.748,0.559z"/>
+ <path style="stroke:none;" d="M578.759,208.343l-0.041-0.186l-0.139,0.105l0.064,0.141l0.115-0.061z M579.095,214.08l0.27,0.121l-0.143,0.094l-0.127-0.215z M578.755,212.779l0.021,0.266l-0.172-0.184l0.15-0.082z M577.913,214.882l-0.143,0.129l-0.057-0.211
+ l0.199,0.082z M578.187,215.466l-0.17-0.059l0.146-0.162l0.023,0.221z M578.079,198.648l-0.145,0.035l0.039-0.227l0.105,0.191z M578.452,215.093l-0.029-0.291l0.111,0.043l-0.082,0.248z M579.286,207.726l-0.16,0.104l0.064-0.225l0.096,0.121z M577.571,195.173
+ l-0.119,0.209l0.008-0.25l0.111,0.041z M578.423,208.666l-0.133,0.174l0.078-0.316l0.055,0.143z M578.964,207.199l-0.166,0.023l0.039-0.17l0.127,0.146z M578.415,198.476l0.117,0.145l-0.115,0.084l-0.002-0.229z M577.597,195.998l-0.326-0.068l0.256-0.029
+ l0.07,0.098z M577.28,195.005l-0.215-0.051l0.197-0.076l0.018,0.127z M576.958,206.199l-0.188-0.15l0.254,0.064l-0.066,0.086z M578.478,205.593l-0.104-0.203l0.162,0.07l-0.059,0.133z M578.841,211.634l-0.031,0.182l-0.131-0.043l0.162-0.139z M577.239,195.31
+ l0.057,0.129l-0.137,0.117l0.08-0.246z M578.663,206.638l-0.059,0.156l-0.049-0.256l0.107,0.1z M578.45,201.304l0.076,0.133l-0.135,0.059l0.059-0.191z M577.56,197.056l0.018,0.104l-0.213-0.037l0.195-0.066z M578.282,209.333l0.023,0.127l-0.182-0.068
+ l0.158-0.059z M578.548,202.904l-0.023-0.174l0.131,0.102l-0.107,0.072z M579.226,208.285l-0.02,0.137l-0.109-0.227l0.129,0.09z M578.499,207.822l-0.035,0.076l-0.188-0.127l0.223,0.051z M577.792,206.406l0.18,0.082l-0.055,0.076l-0.125-0.158z M577.526,211.625
+ l-0.113-0.18l0.168,0.115l-0.055,0.064z M576.694,203.714l-0.025,0.125l-0.082-0.281l0.107,0.156z M579.526,212.005l-0.066,0.076l-0.061-0.188l0.127,0.111z M579.157,208.968l-0.055,0.043l-0.057-0.268l0.111,0.225z M576.972,205.695l-0.148-0.09l0.164-0.012
+ l-0.016,0.102z M579.151,212.371l-0.16,0.092l0.146-0.186l0.014,0.094z M576.737,196.839l-0.156,0.059l0.107-0.143l0.049,0.084z M578.733,206.277l-0.117-0.146l0.162,0.07l-0.045,0.076z M578.071,206.128l0.154-0.197l0.039,0.049l-0.193,0.148z M578.493,200.988
+ l0.127-0.105l0.027,0.092l-0.154,0.014z M577.229,202.503l0.068,0.096l-0.164-0.023l0.096-0.072z M577.724,195.539l0.08,0.096l-0.164-0.023l0.084-0.072z M578.3,211.748l-0.051,0.146l-0.055-0.119l0.105-0.027z M576.761,204.5l-0.113-0.227l0.139,0.16
+ l-0.025,0.066z M576.376,200.246l-0.057-0.152l0.102,0.053l-0.045,0.1z M577.94,211.068l-0.033,0.055l-0.115-0.135l0.148,0.08z M577.974,195.132l0.027,0.082l-0.125,0.025l0.098-0.107z M578.423,199.621l-0.195,0.01l0.166-0.057l0.029,0.047z M577.335,206.271
+ l0.039,0.037l-0.098,0.107l0.059-0.145z"/>
+ <path style="stroke:none;" d="M392.221,183.763l-0.308,0.857l0.264,0.043l1.153,2.316l0.531-0.471l1.355,0.342l1.06-0.643l0.794-0.602l0.296,0.988l1.51-0.301l0.579-3.389l0.645-0.602l1.246-1.158l0.494-1.07l0.307-1.416l1.463,0.559l0.381-0.945l0.451-0.258
+ l0.867-1.244l1.314-0.041l0.303-0.988l2.816-1.414l2.137,0.215l0.377,0.084l2.061-0.814l2.475-0.086l2.475-0.084l1.188-2.273l0.102-1.877l0.102-1.879l0.102-1.875l0.1-1.877h-2.533l-0.084-1.93l-3.166-1.33l-1.119-0.984v-0.773l-1.664-1.254l-1.658-1.254
+ l-1.658-1.254l-1.654-1.254l-1.65-1.256l-1.648-1.256l-1.643-1.254l-1.641-1.256h-1.973h-1.973l0.24,2.736l0.243,2.734l0.247,2.734l0.247,2.732l0.25,2.734l0.252,2.734l0.253,2.734l0.255,2.734l0.596,0.428l-0.391,2.146h-2.155h-2.155h-2.155h-2.156l-0.259-0.258
+ l-3.122,0.814l-0.376,0.086l-1.338-0.771l-1.043,2.145l-0.449-0.129l0.604,2.572l0.626,0.988l0.648,2.529l-0.27,0.602l1.43,0.043l0.675,0.299l1.356-0.17l1.473-0.559l0.38-0.428l0.698,2.1l0.823,0.645z"/>
+ <path style="stroke:none;" d="M442.468,120.8l-0.525-0.246l0.289,0.387l0.236-0.141z"/>
+ <path style="stroke:none;" d="M804.091,205.281l0.053-0.029l-0.129,0.018l-0.148,0.088l0.059,0.043l0.166-0.119z M794.11,194.349h0.025h-0.199l-0.146-0.068l0.32,0.068z M804.61,208.726l0.006-0.195l-0.191-0.297l-0.027-0.047l0.225,0.332l-0.012,0.227
+ l-0.053-0.012h0.043l0.01-0.008z M801.153,194.859l0.07-0.053l-0.039,0.086l-0.031-0.033z M804.858,209.621l0.027,0.037l-0.104-0.01l0.076-0.027z M805.292,208.152l-0.041-0.047l0.08,0.008l-0.039,0.039z M792.884,198.732l-0.02-0.037l0.059-0.049l-0.039,0.086z
+ M794.409,193.609l-0.012,0.037l-0.047-0.08l0.059,0.043z M804.509,209.197l-0.02-0.104l-0.006-0.143l0.025,0.246z M804.573,209.257l0.031,0.1l-0.037-0.082l0.006-0.018z M804.194,208.373l0.053-0.002l0.031,0.016l-0.084-0.014z M804.31,204.685l-0.002,0.084
+ l-0.01-0.029l0.012-0.055z M805.306,207.972v0.049l-0.021-0.023l-0.021,0.041l0.043-0.066z M800.526,194.498l0.014,0.031l-0.016-0.016l0.002-0.016z M793.509,194.093l-0.006-0.113v-0.045l0.006,0.158z M804.304,205.08l-0.133,0.1l0.086-0.066l0.047-0.033z"/>
+ <path style="stroke:none;" d="M274.355,175.785l-0.846-0.771l0.875,0.902l-0.029-0.131z"/>
+ <path style="stroke:none;" d="M374.711,170.81l1.801-0.236l1.801-0.236l2.147,1.244l1.656,1.779l1.66,1.781l0.449,0.129l1.043-2.145l1.338,0.771l0.376-0.086l3.122-0.814l0.259,0.258h2.156h2.155h2.155h2.155l0.391-2.146l-0.596-0.428l-0.255-2.734l-0.253-2.734
+ l-0.252-2.734l-0.25-2.734l-0.247-2.732l-0.247-2.734l-0.243-2.734l-0.24-2.736h1.973h1.973l-2.123-1.471l-2.115-1.471l-2.108-1.471l-2.102-1.471l-0.062,3.307h-1.839h-1.839h-1.839h-1.839l-0.077,3.285l-0.069,3.283l-2.244,1.113l-0.045,2.166l-0.043,2.166h-2.2
+ h-2.2h-2.2h-2.2l-0.26,1.457l0.128-0.643l1.449,1.502l-0.176,2.658l0.686,2.529l-0.611,3.047l-0.61,3.045l0.51-1.029z"/>
+ <path style="stroke:none;" d="M540.19,264.851l-0.965,0.953l1.129-0.598l-0.164-0.355z"/>
+ <path style="stroke:none;" d="M513.114,246.363l0.066,0.211l0.162-0.385l0.092-0.227l-0.373-0.174l0.053,0.574z"/>
+ <path style="stroke:none;" d="M168.412,153.355l-0.353-1.287l-1.037-1.33l-0.812-0.557l-0.484-3.027l-0.416-3.027l-0.256,0.301l-0.641-1.846l-0.612-1.846l-1.119-2.143l-1.078-2.141l0.213-2.693l0.268-2.689l1.677,1.025l1.476,0.684l0.091,3.031l0.748,2.203
+ l0.789,2.209l1.422,1.113l0.017,0.645l1.429,2.531l0.892,0.902l-0.632,1.504l0.864,0.086l-0.351,0.602l1.716,0.943l-0.247,0.129l0.437,0.387l0.88,1.33l-0.578-0.258l1.301,1.803l1.322,1.803l0.767,2.016l0.782,2.014l-0.549,1.588l0.308,0.643l-0.848,0.43
+ l0.277,1.801l1.586,1.543l1.593,1.543l1.607,0.859l1.611,0.857l1.427,0.986l2.481,1.17l2.488,1.168l2.496,1.168l2.504,1.17l2.196-0.643l2.196-0.645l-0.471-0.129l1.091-0.043l1.296,0.73l-0.922-0.73l2.167,2.23l2.191,2.232l0.277-1.846l1.325-2.059l2.972-0.428
+ l-1.609-2.447l0.694-0.172l0.186-1.457h2.073h2.073l2.084-1.715l0.417-0.645l0.435,0.986l1.063-2.488l0.076-0.299l-0.073-0.301l0.426-0.986l2.042-3.131l-0.172-0.385l-0.849-0.6l-0.568,0.086l-2.164,0.213l-2.164,0.215l-2.329,1.287l-1.122,3.086l-1.749,1.932
+ l0.173,0.385l-0.682,0.645l-0.973-0.26l-1.542,0.088l-2.42,0.514l-2.038,0.172l-2.334-1.201l-0.312-0.172l-0.627-1.629l-0.624-1.631l-0.846-2.379l-0.834-2.379l0.475,1.543l-0.424-1.629l0.391-3.432l1.289-3.432l1.35-3.436l-2.663-0.473l-1.476-1.201l-0.795-3.006
+ l-0.965-2.357l-0.922-2.355l-3.038-0.344l-1.584,1.969l-1.32-1.068l-1.308-1.07l-0.712-2.564l-1.917-2.477h-3.652l-0.367,1.152h-3.096h-3.096l-1.733-0.842l-1.723-0.846l-1.714-0.844l-1.705-0.846l-2.613,0.15l-2.614,0.15l0.333,3.184l0.414,3.182l1.131,1.711
+ l1.159,1.715l-0.452,2.572l-1.787-0.301l1.055,1.201l1.069,1.203l1.347,0.043l0.684,1.416l0.833,1.975l-0.251,2.02l2.136,2.232l1.254,2.4l1.522-0.643z"/>
+ <path style="stroke:none;" d="M32.199,146.804l-0.032-0.002l0.014,0.027l0.018-0.025z"/>
+ <path style="stroke:none;" d="M466.2,87.971l-1.77,1.386h0.199l1.475,1.49l1.48,1.49l0.631,2.117l0.631,2.111l1.633,0.042l1.24,0.375l-0.143-1.21l1.715-1.631l-1.623-1.484l-1.615-1.485l-1.607-1.484l-1.6-1.484l-0.646-0.231z"/>
+ <path style="stroke:none;" d="M426.612,100.634l-0.035-0.042l-0.068,0.042l0.002,0.042l0.102-0.042z"/>
+ <path style="stroke:none;" d="M627.819,105.447l1.617,0.71l1.523-0.939l1.51-0.937l2.477-0.187l2.475-0.187l1.891-1.534l1.861-1.532l-1.445-1.285l-0.324-2.284l2.947,0.79l1.912-1.082l2.18-0.584l0.441-1.713l2.324-1.215l3.547,0.083l-0.535-1.341l-4.506-2.309
+ l-1.061,1.008l-0.752-0.42l-2.111,0.042l-1.766-1.007l0.572-0.21l-0.324-1.969l-0.363-1.963l-1.916-0.167l-3.748-0.874l-2.236,1.792l-2.342,0.438l-2.35,0.439l-4.238-1.086l-1.105-0.917l-2.791-0.604l-2.787-0.603l-3.48,0.665l-3.049-1.577l-1.445-1.447
+ l-3.445-0.763l-3.438-0.761l-0.535,2.557l1.857,1.742l-1.557,1.249l-3.01-0.521l-3.002-0.52l-0.66-0.872l-4.139-0.456l-1.99,1.183l-2.018,1.187l-1.758,0.793l-1.043,0.794l0.211,0.376l0.859,0.922l2.994,1.803l1.588,0.335l3.021,2.14l0.725,2.054l0.711,2.048
+ l2.414,0.395l2.418,0.396l2.967,0.915l2.977,0.913l1.887,1.906l1.881,1.906l2.891,0.167l2.891,0.166l2.893,0.166l2.895,0.166l0.797,0.665l2.557,0.479l2.561,0.478z"/>
+ <path style="stroke:none;" d="M396.215,126.011l-2.024,1.289l-2.031,1.287l-1.048,1.99l-1.051,1.986l0.264,2.264l-1.049,1.838l-1.052,1.842l-1.675,1.178l-1.679,1.18l-2.484,1.072h2.481h2.481h2.481h2.482l0.5-3.002l1.808-1.006l1.805-1.006l1.925-0.814
+ l1.921-0.811l1.576-1.111l1.572-1.111l-0.057-1.537l2.938-1.111l2.348-0.17l0.508-0.729l-1.395-2.271l-0.313-1.914l-0.309-1.926l-0.533-0.564l-1.459-0.477l-0.607,0.086l-3.707-0.217l-1.186-1.525l-1.195,1.09l-1.116,2.105l-1.121,2.096z"/>
+ <path style="stroke:none;" d="M489.151,266.416l-0.207-1.715l-0.109-0.773l0.969-0.041l2.572-2.145l1.646-2.23l1.969-1.18l1.969-1.18l2.824-1.76l1.883-3.131l0.512-2.059l-0.27,0.129l-0.254-3.689l0.275-1.244l-0.021-3.559l0.094-1.717h-0.189l-2.355,1.158
+ l-2.354,1.158l-1.209,0.086l-1.639,0.645l-2.623-0.43l-1.248,0.172h-1.055l-0.77,0.514l-0.436,1.889l0.363,2.572l1.334,1.48l1.33,1.48l-0.324,1.887l-0.33,1.887l-1.25,1.115l0.264,1.502l-1.061-1.672l-1.066-1.674l0.822-2.617l-0.863-0.943l-1.424-0.043
+ l-0.713-1.072l-1.713,0.697l-1.717,0.697l-1.713,0.695l-1.713,0.697l0.398,1.373l-0.039,0.986l1.164-0.041l2.17,0.922l2.17,0.922l0.006,3.131l-0.439,2.188l0.262,2.316l-0.816,2.229l-0.473,2.059l-1.404,1.373l-1.4,1.371l0.424,1.846l0.418,1.844l0.066,2.703
+ l0.051,2.705l0.215,2.275l1.684,0.045l0.045-1.676l-0.547-0.602l2.611-2.189l1.912-1.096l1.916-1.094l0.027-1.029l0.283-2.273l0.277-2.273l-0.488,0.771l-0.344-2.186l-0.35-2.188z"/>
+ <path style="stroke:none;" d="M630.124,151.082l-2.387,0.301l-0.082-1.115l-0.15-1.031l1.09-1.846l0.357-1.16l-0.43-2.061l-0.457-2.061l-0.961-0.516l-1.881-1.93l-0.271,0.857l-0.309,1.201l-0.229,0.773l0.436,0.814l-1.66-0.387l-2.176,2.234l-0.125,2.188
+ l-0.051,1.117l-1.01,3.135h-1.441l-0.061,2.186l-0.037,2.746l-0.783-0.043l-0.1,0.086l0.109,1.543l-0.709,0.514l1.473,2.316l-0.016-0.385l0.15,0.557l0.475-0.602l0.475,1.545l0.191,0.043l-0.275-0.645l1.23,0.559l0.74,1.029l-0.625,0.344l0.627,1.029l0.354-0.943
+ l0.836,2.016l0.832,2.016l-0.105,2.188l-0.119,2.188l0.889-1.287l0.32,1.373l0.221-0.344l0.088,0.729l0.426-0.514l0.158,0.385l0.461-0.213v0.301l1.568-1.244l0.275-0.773l0.609,0.387l0.666-2.059l0.869,1.201l1.016,0.9l0.992,3.604l0.943,3.602l0.082-0.643
+ l0.682,1.865l0.67,1.867l0.398,1.93l-0.012,2.102l-0.113,1.973l0.49-0.514l0.793-1.652l0.785-1.652l-0.639-2.486l-0.6-2.23l-1.184-1.609l-1.193-1.607l-0.021-1.459l0.275-1.115l0.59-1.543l-0.584-0.172l-1.852-2.789l-1.861-2.787l0.602,0.043l0.453-2.832
+ l2.172-0.428l0.982-1.158l1.229-0.256l0.842-1.33l1.063-1.801l-0.641-0.301l-1.635,0.473l-1.041-1.459l-1.23-0.514l0.258-2.102l-1.477-0.645l-0.586-1.715l-0.125-0.301z"/>
+ <path style="stroke:none;" d="M455.618,276.88l0.125-3.561l0.115-3.559h2.225l0.076-2.371l0.074-2.367l0.074-2.371l0.072-2.369l2.621-0.301l2.623-0.299l0.828,0.9l1.789-0.986l1.74-0.645l-2.439-0.771l-1.543,0.342l-3.395,0.408l-3.393,0.408l-2.115-0.471
+ l-2.117-0.473l-0.359-0.516l-2.605-0.074l-2.605-0.074l-2.605-0.076l-2.605-0.076l-1.707-0.729l-2.742,0.688l-0.098,1.457l1.512,3.131l1.506,3.131l1.496,3.131l1.488,3.131l0.266,1.285l-0.479-0.127l0.389,2.627l0.381,2.629l0.371,2.629l0.363,2.631l1.273,1.76
+ l1.268,1.758l1.264-1.414l0.734,1.672l3.373,0.471l1.908-0.943l0.223-2.402l0.217-2.402l0.209-2.406l0.205-2.404z"/>
+ <path style="stroke:none;" d="M790.862,214.546l0.025-0.061l-0.037-0.068l-0.074,0.105l0.086,0.023z"/>
+ <path style="stroke:none;" d="M597.556,142.882l1.063,1.158l1.629,0.471l2.855,0.346l2.484,0.127l-0.631-3.563l-2.725-0.256l-1.955-0.26l-2.316-0.943l-0.326-0.514l-2.055-0.9l-0.758-0.813l-0.875,0.342l-2.926-2.225l-1.803-1.068l-0.971,0.855l-0.158-0.215
+ l-1.223,2.096l0.143,1.584l2.766,1.416l2.762,1.416l2.18,0.473l2.84,0.473z"/>
+ <path style="stroke:none;" d="M423.423,80.331l1.615-0.904l-0.559-1.026l0.771-1.472l-2.389-0.368l-2.518,1.595l-1.748,2.505l0.664,0.577l-0.715,0.083l0.854,0.289l-1.467-0.042h1.693l2.514,0.166l0.416,0.827l0.607,0.538l0.26-2.767z"/>
+ <path style="stroke:none;" d="M782.854,270.404l-1.273-1.342l-1.287-1.34l-1.291-1.338l-1.301-1.342l0.256,1.545l1.807,1.844l1.789,1.844l1.301,0.129z M784.481,267.423l-0.613-0.891l0.736,0.805l-0.123,0.086z M785.864,268.353l-0.672,0.188l0.615-0.215
+ l0.057,0.027z"/>
+ <path style="stroke:none;" d="M765.233,325.82l1.025,0.125l-0.1-0.621l-0.857-0.498l0.961,0.082l0.031-0.455l1.336-0.414l2.742-1.764l2.725-1.77l1.191-1.17l-0.725,0.041l0.627-0.545l-0.357,0.42l-0.389-0.127l0.352-0.504l-2.115,0.631l0.166-1.137l0.934-0.506
+ l-1.025,0.211l-4.117,2.895l-1.705,1.291h0.621l-2.406,1.369l-1.904,0.83l-4.051,1.863l-1.125,0.207l-2.924,1.494l-1.326,0.621l-0.814,0.334l-0.918,1.041l-0.17-0.166l-0.646,0.541l-0.477,0.293l-1.191,0.795l0.369,0.166l-0.172,0.17l0.768,0.375l1.768,0.586
+ l1.061,0.42l4.961-2.051l2.799-2.211l-0.775-0.293l0.879,0.209l0.9-0.996l0.383-0.873l1.094-0.248l1.846-0.455l-0.893-1.449l0.646-0.332l0.209,0.125l0.791,1.449z M776.714,314.365l2.863-1.469l2.211-2.826l0.535-1.18l0.641-0.568l-0.846,0.219l0.402-1.225
+ l0.426-0.699l-0.047-0.393l-0.422-0.48l-0.215,1.004l0.328-2.4l-0.318-0.738l0.297-1.82l0.115,0.172l0.373,0.91l0.996,1.172l0.402,0.045l-0.492,1.133l-0.484,1.922l-0.389,0.918l1.121,0.699l0.943-1.574l-0.621,2.623l2.305,1.176l2.395-0.959l0.365,0.307
+ l-2.928,2.521l-1.027,1.125l-2.389,0.604l-1.596,2.01l-3.043,1.883l-3.068,1.865l-0.652-0.67l3.148-2.908l-0.652-1.193l-0.678-1.203z M750.007,333.785l-1.461,0.418l0.809-0.879l0.664,0.209l-0.012,0.252z"/>
+ <path style="stroke:none;" d="M217.719,177.33l-0.854,0.301l-1.104,0.557l-0.813,1.545h-0.564l-0.884,0.215l2.064,2.357l2.084,2.359l3.234,0.645l1.337-0.258l-0.034-1.672l0.096-1.287l0.459-1.545l0.147,0.516l0.336-2.037l0.349-2.039l0.07-1.93l0.614-0.514
+ l-1.852,0.32l-1.852,0.322l-2.834,2.145z"/>
+ <path style="stroke:none;" d="M415.72,180.46l0.527,0.771l0.531,1.287v0.043l0.074-0.387l0.637-0.814l2,1.717l0.072-1.072l0.709-1.674l0.443-1.887l2.176-0.686l2.256,0.215l1.551,1.457l2.289-0.643l1.697,0.686l1.699,0.688l2.58-1.289l2.297,0.238l2.295,0.234
+ l2.535-1.502l-0.066-2.059l1.025-1.531l1.021-1.535l1.02-1.533l1.018-1.533l0.107-1.953l0.105-1.951l0.104-1.951l0.105-1.951l0.531-1.07l-1.852-2.959l-0.268-1.932l-0.27-1.928l-0.072,0.041l-1.607,0.943l-1.85-1.543l-3.197-0.771l-2.484,1.715l-2.49,1.715
+ l-2.498,1.715l-2.506,1.717l-1.803,1.801l-1.807,1.801l-1.748,0.387l-1.75,0.385l-0.1,1.877l-0.102,1.875l-0.102,1.879l-0.102,1.877l-1.188,2.273l-2.475,0.084l-2.475,0.086l-2.061,0.814l-0.377-0.084l0.264,2.229l1.844,1.889l-0.34,0.086l-0.074,0.814
+ l1.355,1.072l0.791-0.172z"/>
+ <path style="stroke:none;" d="M435.411,194.986l1.434,1.469l1.387-2.049l0.813-2.293l0.797-1.305l0.813-2.123l0.797-1.863l0.795-1.863l1.539-1.451l0.521-1.473l-1.01-0.963l-0.398-1.879l-1.029-1.607l-2.506,1.561l-2.299-0.182l-2.299-0.182l-2.559,1.348
+ l-1.709-0.648l-1.711-0.646l-2.273,0.695l-1.578-1.42l-2.258-0.162l-2.164,0.738l-0.41,1.896l-0.68,1.689l-0.053,1.074l-0.072,0.086l0.404,1.363l-0.137,2.363l-1.641,2.914l-0.139,3.498l-0.141,3.5l2.258-0.652l-0.408,0.395l1.248,0.059l2.451,1.486l0.541,0.545
+ l-0.189,0.047l0.463,0.377l-0.186,0.176l1.035,2.465l0.943-0.152l0.754-0.059l0.225-0.135l0.047,0.428l0.053-1.074l0.244,0.811l0.373-0.354l0.299-0.135l0.422,0.248l2.193-0.094l-0.094-0.77l0.76,0.068l0.635-2.119l0.988-1.523l0.984-1.523l1.727-0.6z"/>
+ <path style="stroke:none;" d="M31.513,261.955l-0.176,0.344l0.314-0.086l-0.138-0.258z"/>
+ <path style="stroke:none;" d="M674.474,111.278l0.541,1.507l0.906,0.563l-0.252,0.13l-0.492,1.26l0.783,0.391l0.969,0.567l0.303-0.263l0.311-0.087l2.049,0.306l0.006-0.436l1.662-0.87l0.869-0.739l-2.424-1.341l-0.51-1.204l1.189-1.515l1.156-1.502l-0.775-2.43
+ l1.104-1.333l-0.408-0.332l-2.385-1.369l-0.02,1.327l-1.393,1.081l-0.707,0.208l0.809,1.337l-2.51-0.753l-0.846,0.46l-1.322,2.184l-1.303,1.357l1.313,1.195l1.377,0.3z"/>
+ <path style="stroke:none;" d="M739.401,173.853l-0.094,0.045l-0.141,0.141l0.025,0.25l0.135,0.004l-0.02-0.146l0.061-0.037l-0.018-0.096l0.051-0.16z M739.101,174.339l0.084,0.34l-0.068,0.094l-0.104-0.201l-0.008-0.129l0.096-0.104z M738.517,176.835
+ l-0.041-0.027l-0.139-0.025l0.305-0.178l0.055,0.08l-0.18,0.15z M738.015,166.486l-0.125,0.145l-0.1,0.066l0.08-0.25l0.041-0.072l0.104,0.111z M737.392,164.914l-0.109,0.031l-0.023-0.209l0.037,0.008l0.096,0.17z M738.593,171.017l0.066,0.035l-0.111,0.049
+ l-0.094-0.072l0.139-0.012z M738.272,167.878l0.08-0.033l0.029,0.072l-0.109-0.039z M735.677,161.593l0.039,0.004l-0.09,0.031l0.027-0.07l0.023,0.035z M734.606,160.257l0.043-0.01l-0.002,0.096l-0.041-0.086z M736.22,162.568l-0.066-0.088l0.088,0.064
+ l-0.021,0.023z M738.69,170.207l-0.014,0.016l-0.057-0.07l0.07,0.055z M738.515,168.654h-0.025l-0.014-0.066l0.039,0.066z"/>
+ <path style="stroke:none;" d="M444.962,38.872l0.02,0.107l-0.689,0.577l0.014-1.294l-0.172,0.718l-0.543,0.18l-0.195-0.647l-0.459,0.503l0.189,0.469l-1.236-0.181l0.162,0.325l-0.803-0.217l-0.43,0.578l0.014,0.797l-0.254,0.145l-1.852,0.4l1.885,0.182
+ l-0.328,0.402l-1.289-0.073l-0.174,0.146l-0.271,0.439l-0.049,0.257l-0.576-0.55l-0.5,0.22l-1.197,0.881l1.594-0.22l-0.555,0.257l0.301,0.368l-0.07,0.111l-1.098-0.037l-0.146,0.406l1.285,0.369l-1.512,0.074l-1.297,0.481l-0.834,0.631h0.113l-0.486,0.484
+ l0.354,0.112l1.092,0.112l-1.535,0.523l-0.51,0.599l0.086,0.563l0.047,0.451l0.33,0.151l-2.029,0.717l-0.016,0.151l0.754-0.265l-0.42,0.756l-0.9,0.266l-0.678,0.189l-1.021,0.988l-0.48,0.572l0.703,0.382l0.934-0.687l0.793-0.267l-0.15,0.61l-1.322,0.612h-0.701
+ l-1.301-0.192l-0.189,0.23l-0.873,0.498l-0.469,0.46l0.164,0.269l-0.48-0.154l0.535,0.539l-2.361-0.615l-0.203,0.615h0.795l0.676-0.039l-0.777,0.308l-1.494,0.231l1.123,0.54l-0.168,0.193l-1.061-0.501l0.047,0.347l-0.943,0.116l0.248,0.232l-0.916,0.077
+ l-0.596-0.077l-0.07,0.464l2.475,0.194l-2.492,0.155l0.773,0.699l-0.5,0.194h0.18l-0.34,0.506l2.531-0.273l1.164-0.039l0.229-0.195l0.154,0.623l-0.461,0.351l-1.393-0.273l-2.326,0.273l0.344,0.351l0.008,0.195l-0.359,0.039l1.148,0.156l-0.369,0.509l-0.494,0.509
+ l0.873-0.079l0.354,0.471l0.865-0.902l0.777-0.118l-0.533,0.823l-0.15-0.627l-0.844,1.413l0.246,0.079l-1.049,0.315l-0.092,0.75l0.84-0.276l0.631-0.197l0.053,0.513l-0.152,0.672l0.395-0.04l-1.186,0.119l0.107,1.149l1.6,0.754l2.5,0.12l2.922-2.301l1.277-0.079
+ l0.086-1.302l0.605-0.394l0.455,1.538l0.924,0.474l1.096-2.13l0.232-2.116l0.004-0.625l0.736-0.74l-1.391-0.854l-0.061-2.24l-0.064-2.224l1.561-0.991l1.582-0.152l-0.945-0.949l1.344-2.825l-0.307-0.673l1.605-0.336l0.76-1.339l0.896-2.249l2.279-0.586
+ l0.207-0.803l2.895,0.073l-0.184-1.198h0.826l1.068-0.614l1.908,1.049l1.895,0.363l2.164,0.036l1.002-0.472l0.564-1.625l2.332-0.86l2.744,0.717l0.115,1.406l1.641-0.975l1.131-0.072l-0.021-0.575l-1.002-0.071l-0.926,0.107l-1.316-0.752l3.254-0.321l-1.637-0.818
+ l-1.563-0.283l-1.193,0.283l-0.23,1.104l-0.191-0.748l-0.172-0.355l-0.127-0.071l-0.256-0.778l-0.941,0.424l-1.078,1.101l-0.564-1.101l-1.943,1.635l0.816-1.387l-0.492-0.142l-1.229-0.071l-0.102,0.39l-1.844,1.247h-1.197l0.152-0.321l-1.838,0.178l1.063,0.286
+ l-0.195,0.394l-1.07-0.036l-1.143,0.467z M437.661,40.424l0.213,0.544l0.82-0.254l-0.924,0.91l-0.445-0.218l-0.83,0.218l0.42-0.182l0.746-1.018z"/>
+ <path style="stroke:none;" d="M544.423,155.414l-1.701-1.523l-1.703-1.521l-1.873-0.793l-1.871-0.795l-1.193-1.889l-0.68,0.527l-0.326-0.561l0.447,2.326l-1.084,0.418l-0.416,3.125l1.197,1.801l-0.525,2.574l-0.531,2.57l-1.623,0.645l-1.625,0.643l-1.625,0.645
+ l-1.629,0.643l-0.188,1.084l1.543,2.506l1.539,2.506l1.795-0.432l1.795-0.432l1.223-1.115l0.688-1.244l2.002-0.643l0.895-1.844l1.688-0.773l-0.135-2.873l0.771-0.557l0.662-0.086l1.248-2.467l1.236-2.465z M535.747,145.585l-0.107,1.289l-0.592-0.344l0.699-0.945z
+ M542.819,160.216l-0.193,0.344l-0.395,0.6l0.588-0.943z"/>
+ <path style="stroke:none;" d="M558.081,147.646l-0.328-0.256l-0.023-0.172l1.143,1.717l0.787,0.387l1.311,1.975l1.633,0.686l1.158-0.514l-0.109-0.902l1.893,0.086l2.172-0.344l0.83,0.129l-1.121-3.391l-0.854-0.043l-0.475-1.76l-1.611-0.945l1.195-3.092
+ l0.877,0.215l2.117-0.043l1.412-2.166l1.383-2.162l1.074-1.924l0.914-1.707l-0.418-1.924l1.459-1.068l-0.971-0.77l-0.865-0.941l-0.969-0.6l-0.574-1.375l0.031-0.773l-1.07-1.164l0.004-0.865l3.184,0.432l2.463-0.736l2.049-1.867l-2.889-0.83l-1.594-0.785
+ l-0.984-1.705l-2.525-0.699l-2.555,0.59l-2.563,0.592l-1.16,1.615l1.145,2.223l-0.586,1.906l-0.385,1.121l-1.871,0.131l1.262,1.461l-1.695,1.459l-0.193,2.865l-2.123-0.129l-0.578,0.727l-2.117,0.854l-0.422,2.008l0.063,1.154l-2.346,0.535l-2.35,0.535
+ l-3.34,0.086l-1.863-0.6l-1.863-0.6l1.59,1.732l1.584,1.736l1.727,0.771l0.705,2.574l0.709,0.344l0.014,1.158l-1.99,0.773l-0.797,0.945l-0.199,1.975l2.055-0.064l2.057-0.063l1.715-0.131l2.334-0.193l2.332-0.193z"/>
+ <path style="stroke:none;" d="M716.294,193.888L716.233,194l0.1,0.186l0.15,0.02l0.014-0.094l0.074-0.25l-0.004-0.053l0.033-0.354l-0.088-0.203l0.051,0.209l-0.123,0.082l-0.088,0.082l-0.041,0.119l0.043,0.123l-0.061,0.021z M716.079,194.527l0.09-0.18
+ l0.039-0.006l-0.014,0.146l-0.199,0.07l-0.006-0.01l-0.008-0.117l0.098,0.096z M716.31,194.318l-0.096-0.051l-0.023-0.066l0.168,0.086l-0.049,0.031z M715.646,195.337l-0.033,0.09l-0.066-0.107l0.1,0.018z M715.841,195.048l-0.076,0.129l0.07-0.23l0.006,0.102z
+ M716.04,194.646l0.059,0.086l-0.07,0.008l0.002-0.086l0.01-0.008z"/>
+ <path style="stroke:none;" d="M223.486,192.47l0.565-0.729l2.194,0.686l1.083,1.072l0.326-0.514l0.342,1.629l2.039-0.814L229.023,192l1.699-1.502l-0.415-0.73l-0.399-0.299l-3.151,1.072l-0.686-0.602l-1-0.342l-0.619-1.072l-0.845,0.258l0.056,1.715l-0.176,1.973z
+ M233.937,191.912l0.863,0.129l-0.315-0.514l-0.709-0.172l-0.608-0.686l-1.586-0.73l-0.576-0.514l-0.116-0.643l2.184,0.086l1.514,0.984l1.517,0.988l0.058,1.973l-0.859,0.643l-0.538,1.072l-0.572-0.771l-0.255-1.846z"/>
+ <path style="stroke:none;" d="M752.718,239.48l-2.299-0.686l0.244-0.516l-1.213-0.643l0.057-0.945l-1.383-0.129l-0.965-2.186l-1.459-1.459l-1.072-2.188l1.988-0.301l-0.201-1.371l-1.982-0.859l-1.984-0.857l-0.117-1.115l-1.936-2.488l-2.152-0.975l-2.158-0.977
+ l-2.16-0.977l-2.166-0.975l-0.09,2.102l-0.107,2.102l-0.123,2.102l-0.131,2.102l-0.145,2.102l-0.158,2.102l-0.174,2.104l-0.189,2.102l2.182,0.064l2.184,0.063l1.158-1.07l-2.514-1.459l3.123,0.129l-0.283-0.645l0.855,0.129l-0.123-1.244l1.359,0.473l0.125-0.6
+ l2.93,1.113l1.168,1.523l1.158,1.523l1.152,1.285l1.145,1.287l2.17,0.494l2.168,0.492l1.289,0.258l-0.09-0.514l0.92-0.473z M757.472,224.296l-0.674,1.715l-0.48,0.387l0.135,0.814l-1.525,0.73l-3.086,1.371l-1.855-0.471l-1.424-0.73l-0.473-0.857l3.088,0.215
+ l0.771-1.373l-0.01,0.729l1.246,0.602l2.188-1.631l0.059-1.543l1.182-0.129l0.859,0.172z M765.103,230.429l-0.641,0.43l-1.492-1.717l-0.455-2.059l1.299,1.674l1.289,1.672z M759.091,224.425l-0.775,0.9l-1.326-3.217l-1.369-1.008l-1.375-1.008l1.811,1.35
+ l1.805,1.352l1.23,1.631z M753.737,238.783l-0.648,0.395l-0.223-0.768l0.871,0.373z M762.575,226.568l-0.365,0.219l0.287-0.332l0.078,0.113z M747.409,227.726l-0.012,0.08l-0.645-0.102l0.656,0.021z M745.552,226.939l-0.285-0.416l0.125,0.07l0.16,0.346z
+ M736.757,235.523l-0.654-0.537l0.041,0.008l0.613,0.529z"/>
+ <path style="stroke:none;" d="M273.124,264.83l-0.543,2.764l-0.532,2.768l2.192,2.102l2.196,2.102l1.862,0.836l1.861,0.838l2.01,1.18l2.012,1.18l-0.873,2.428l-0.846,2.426l2.591,0.193l2.591,0.193l1.468-0.559l1.732-2.705l-0.108-1.631l0.063-2.041l0.077-2.037
+ l-1.199-0.172l-1.178,0.043l-0.681-2.125l-0.672-2.121l-1.65-0.215l-3.157-0.473l-0.354-3.602l-0.472-1.158l0.037-0.428l-2.304-1.672l-2.928,0.385l-2.926,0.387l-0.271,1.115z"/>
+ <path style="stroke:none;" d="M255.971,249.13l-0.003-3.217l0.374-0.6l-1.142-1.996l-1.134-1.994l-2.402,0.172l-0.145-1.93l-0.137-1.93l-1.521,1.242l-1.833-0.428l-1.337-1.072l-0.917-0.215l0.097-1.115l-1.034-1.951l-1.027-1.951l1.167-2.059l0.611-1.975
+ l0.617-1.973l1.79-0.857l1.792-0.857l1.916-0.516l0.797,0.086l-1.464-0.986l0.875-3.131l-2.287-0.771l-1.744-0.086l-2.804-0.043l-0.437-1.201l-1.728-1.973l-1.278-1.287l-1.272-1.287l-0.152,0.172l-0.644,0.215l0.807,2.059l-0.455-0.043l-1.438,3.002l-2.411,1.609
+ l-2.403,1.607l-0.907,2.08l-0.898,2.08l-2.482-1.844l-0.787,0.258l0.458-1.115l-0.193-1.502l-1.055,1.523l-1.049,1.521l0.838,3.389l-0.24,0.645l1.62,1.285l1.623,1.287l0.953,1.898l0.959,1.898l0.966,1.898l0.973,1.896l1.03,1.779l1.037,1.781l1.513,2.809
+ l1.531,2.811l-0.04,1.33l1.969,1.93l1.977,1.93l1.942,1.127l1.944,1.127l1.944,1.125l1.943,1.125l0.984,1.244l1.503,1.201l0.443-0.043l0.784-1.115l0.572-1.029l0.013-1.029l1.035-2.145l-0.735-0.258l-0.301-2.145l0.087-2.145l0.348-1.33z"/>
+ <path style="stroke:none;" d="M682.728,174.97l0.83,0.301l-0.297,1.115l0.035,1.115l0.938,0.557l1.408-0.729l2.275,1.93l-0.445-1.715l0.877,0.385l1.174,1.244l1.535,0.859l0.002,0.643l0.477-1.029l-0.553-0.215l-1.018-1.201l0.525-0.301l-1.08-0.771l-0.184,0.602
+ l-1.08-1.33l-1.23,0.342l-0.002,0.258l-0.734,0.129l-1.402-2.787l-0.084-1.803l0.969-0.986l0.516-1.672l-0.387-1.416l-0.625-2.102l-0.404-0.602l-2.986-0.643l-0.514,1.115l0.32,2.658l0.299,2.66l-1.156-0.213l0.338,1.973l1.662,2.701l0.002-1.072z M695.95,198.775
+ l-0.324-1.029l-0.439,0.258l-2.471-1.459l0.277-2.145l-1.303-1.371l-0.627,0.771l-0.471-0.258l-0.352,0.387l-0.691-0.73l-0.998,1.459l-0.643,0.559l0.254-1.846l1.818-1.5l1.396-0.988l0.492,1.502l1.008-0.643l0.717-0.516l0.361-1.158l0.951,0.086l0.52-0.086
+ l-0.24-1.93l1.689,1.201l0.457,1.887l1.105,3.217l-0.637,1.201l-0.162,1.029l-0.93-2.102l-0.791,0.602l0.443,1.629l-0.412,1.973z M690.806,185.265l-0.559,3.344l0.025,1.203l-1.752-1.545l0.461-0.771l0.393-2.23h1.432z M694.765,184.535l-1.031-1.201l-1.715-2.188
+ l1.879-0.342l0.824,1.586l1.002,2.316l-0.959-0.172z M689.528,183.464l0.191,0.385l-0.057,0.172l-2.238,2.145l-0.559-3.303l0.324-0.129l2.338,0.73z M682.144,186.123l-2.08,2.059l-1.566,1.631l-1.576,1.629l0.148-0.559l1.602-1.973l1.586-1.973l0.793-1.629h0.15
+ l0.066-1.244l0.877,2.059z M685.718,180.675l-0.504,0.857l-1.279-1.479l-1.291-1.48l2.369,0.299l0.705,1.803z M693.976,184.193l0.813,2.488l-0.625,0.17l-0.16,0.301l-1.033-2.102l-0.447-1.416l1.453,0.559z M691.661,182.992l-1.689-0.986l-0.391,0.215l0.18-1.074
+ l1.863,1.502l0.037,0.344z M693.401,188.009l-1.844,0.043l1.352-0.9l0.492,0.857z M691.827,184.193l-0.02,1.285l-0.629,1.717l-0.641,1.715l0.656-2.359l0.633-2.357z M691.849,177.974l-0.762-0.086l0.26-0.859l0.502,0.945z M686.485,179.14l-0.441-0.578
+ l0.734,0.188l-0.293,0.391z M687.808,181.005l0.426,0.047l-0.004,0.512l-0.422-0.559z M688.835,196.117l-0.072,0.086l-0.941,0.043l1.014-0.129z"/>
+ <path style="stroke:none;" d="M446.761,73.997l-0.352-0.811l0.531,0.203l-3.098,0.081l-2.607,0.893l-2.623,0.895l-0.018,0.163l0.789,0.245l-0.637,0.163l0.248,2.287l1.113,2.711l0.334,1.982l0.314-0.124l2.859,0.87l0.273,0.831l0.973-0.125l1.416,0.042
+ l0.691,0.666l1.727,1.126l0.768,0.083l1.133,0.417l0.703,0.083l1.738-0.125l3.092,0.71l0.209,0.083l0.063-0.836l1.813-2.541l0.256-1.244l-1.092-2.682l-1.076-0.74l1.242-1.68l-1.621-3.138l-3.586-0.264l-3.58-0.264l-1.996,0.041z"/>
+ <path style="stroke:none;" d="M395.108,105.24l-0.715-0.292l-1.18,0.125l0.06,2.931l-0.765,1.8l-0.768,1.817l-0.415,1.727l1.032,0.65l0.419,0.087l-0.224,3.62l3.055-0.35l-0.088-0.699l0.784-1.57l-0.16-0.609l0.25-1.432l-0.818-1.981l0.705-0.171l0.824-3.099
+ l1.114-1.301l-0.382-1.169l-2.729-0.083z"/>
+ <path style="stroke:none;" d="M264.444,166.22l-3.215-0.729l-0.327,1.07l0.904,0.301l2.401-0.514l0.236-0.129z"/>
+ <path style="stroke:none;" d="M524.739,149.794l0.645-1.717l-0.77-2.105l-0.795,1.203l0.039,2.275l0.676,0.516l0.205-0.172z"/>
+ <path style="stroke:none;" d="M535.032,266.835l-0.387,1.01l1.172-0.225l-0.785-0.785z"/>
+ <path style="stroke:none;" d="M470.202,98.728l0.387-0.873l0.268,0.208l0.908-0.541l-0.045-0.542l-1.24-0.375l-1.633-0.042l-0.631-2.111l-0.631-2.117l-1.48-1.49l-1.475-1.49h-0.199l-3.389,1.092l-3.814-0.378l-0.063,0.042l-1.98,1.973l-1.641,2.264l-1.176,0.377
+ l1.473,1.526l1.48,1.521l0.955,0.665l0.637-0.083l0.678,0.291l0.189,0.788l0.479,0.621l2.299,0.373l2.301,0.373l3.191-0.994l3.973,0.829l0.18-1.907z"/>
+ <path style="stroke:none;" d="M708.78,40.243l-5.164-0.957l-5.137-0.952l-4.445-0.036l-4.258-0.357l1.563,1.003l2.539,1.335l-0.371,0.363l-1.545-0.037l-2.365-0.797l-0.85-0.072l-2.596-1.188l-1.85,0.575l-6.814-0.396l-0.063,1.044l1.631,1.451l-1.338-1.089
+ l-2.59-1.298l-2.602-0.538l-2.408-1.64l-3.947-0.814l-4.076,0.212l-4.088,0.212l-1.045-0.283l-3.023-0.881l-1.086,0.387l0.17-0.598l-1.133-0.176l-2.07-0.385l1.113-0.245l-3.756-0.871l-2.318,0.452l-1.57,0.874l-0.715-0.63l0.666-0.244l0.732,0.105l0.486,0.384
+ l0.18-0.976l-3.541,0.208l0.979-0.243l2.332-0.035l-5.57-0.468l-5.545-0.467l1.314,0.449l-2.346,0.521l0.92,0.208l0.666,0.139l0.711,0.663l0.967,0.806l-2.871-0.211l0.568,0.457l0.238,0.494l-4.516-1.09l-1.553,0.562l-3.846-0.842l-0.605-0.245l0.865,1.368
+ l-0.496,1.025l-2.568-0.743l-3.125-1.266l0.207-0.349l-0.764-0.314l0.551,0.594l-3.646-1.29l-1.045,0.139l2.766,1.853l-3.785-1.991l-6.039-0.693l-6.004-0.69l1.529,0.31l-4.83-1.134l0.42-0.274l-2.555-0.068l-5.682,0.17l1.35,1.099l0.049,0.483l0.906,0.242
+ l-1.879-1.481l-2.209-1.127l-2.5,0.034l0.014-0.34l-2.67,0.443l2.443,0.272l-2.941,0.855l-3.105,0.344l-0.699,0.551l0.818-0.998l3.063-2.01l2.898-2.185l-1.367-0.333l-1.367-0.564l2.299,0.465l-2.01-1.158l-0.375,0.132l-1.109-0.23l-2.578-0.752l-5.193-0.033
+ l-1.906,0.163l-0.168-0.876l-2.213-0.161h-2.619l1.951-0.642l-4-0.414l-2.414,1.282l0.943,0.812l1.459,0.196l-3.76,0.196l2.32,0.889l1.096,1.063l0.48,0.133l-2.088-0.832l-0.543-0.859l-2.557,0.197l-2.438,0.132h-4.648l1.957,0.066l-3.66,0.712l-3.717,0.717
+ l-1.299,0.334l0.029,0.907l-1.379-0.101l2.35,0.641l-1.498,0.135l1.992,0.509l1.463,0.408l-1.809,1.025l1.621,0.447l-2.002-0.79l0.744-0.819l-4.383,0.409l-4.412,0.41l0.736,0.893l1.961,1.486l2.162,0.452l2.992,1.083l1.465,1.939l0.463,0.782l-0.895,0.036
+ l0.268,0.5l-1.646-1.884l-0.324,0.815l0.59,0.64l-1.561-2.09l1.023-0.878l-3.58-0.35l-3.656-1.08l-2.857,0.417l1.43,0.593l-3.404-0.07l0.91,0.7l3.885,0.773l0.816,0.529l0.779,0.071l-6.588-1.093l-1.859-2.717l-1.34-0.138l1.418,1.457l-1.641,0.943l0.641,0.843
+ l2.359,1.556l-0.209,1.679l1.68,1.478l4.311-0.181l2.18,0.615l1.012,1.42l0.688,0.952l2.471,0.479l-3.588-0.479l-1.396-1.899l-1.26-0.726l-3.039,0.58l1.869,2.266l-1.592,2.292l-0.705,0.334l-1.004,0.41l-4.732-0.633l-0.51-0.446l3.08,0.148l-0.611,0.26
+ l2.104-0.223l-0.314-0.482l1.348-2.248l-0.002-1.06l-2.881-1.706l-1.244-2.064l-1.268-2.041l-1.746-0.95l0.064-1.952l-2.676-0.829l-3.455,0.241l-0.391,2.716l-1.34,1.021l0.436,0.531l1.074,0.036l0.348,1.495l0.545,0.86l2.18,0.576l1.49,1.013l0.838,0.108
+ l-0.729,1.384l-2.563-1.348l-4.109-1.013l-3.793-0.577l-3.773-0.574l-0.709,0.61l1.926,1.445l-1.26,0.654l-0.059,0.583l-1.064-0.182l-0.486-1.054l-2.326,0.363l-1.93,0.291l-2.025,0.692l-2.705-0.146l0.791-0.328l-0.717-0.764l1.307-0.326l-3.027,0.907
+ l-0.217,0.255l-3.355,0.767l-1.855,0.623l0.164,0.331l-1.572,0.258l-0.127,1.44l-2.666,0.037l-1.953-1.293l2.592-0.955l-2.98-1.425l-3.404-0.219l1.924,0.838l0.813,2.461l0.713,1.558l-0.031,1.007l-0.869-0.038l-0.674-0.858l-1.934-0.261l-1.691,1.287
+ l-1.719,1.294l1.686,1.849l-3.938-0.492l-2.564-0.868l0.1,1.02l1.826,0.796l1.021,0.798l-2.377,0.229l-3.449-1.633l-1.113-1.924l-0.113-0.712l0.246-0.038l-2.336-1.121l-0.975-0.559l-2.205-1.261l1.357,0.333l4.648,1.002l4.688,1.007l4.359-1.007l0.484-1.556
+ l-1.693-1.252l-4.945-1.554l-4.881-1.542l-2.869,0.145l-0.717,0.181l0.572-0.758l-1.082,0.145l-1.402-0.684l1.588-0.18l-2.043-0.359l-0.723,0.431l-0.896-0.18l0.021,0.575l-1.131,0.072l-1.641,0.975l-0.109,0.435l0.158,1.42l2.498,1.394l-1.088,1.625l2.188,2.573
+ l0.105,1.996l0.674,0.757l1.057,1.025l-0.807,0.648l3.232,1.876l-1.32,1.357l-1.344,1.364l-1.361,1.37l-1.385,1.376h1.324h-0.301l0.391,0.431l3.203,0.98l-1.924-0.078l-1.633,0.747l-0.533,0.67l0.629,2.167l-0.885,1.472l1.188,1.724l1.318,2.79l3.008,0.525
+ l3.016,0.525l0.422,2.802l2.566,2.191l-0.686,0.708l0.523,2.225l1.609-0.519l3.166,0.345l0.346,0.871l2.574,2.222l2.59,2.234l1.303-0.276l2.988,0.946l3.002,0.948l1.348,3.58l-1.637,0.766l-0.717,1.446l0.469,0.504l-1.607,0.88l-1.021,0.294l1.695,1.298
+ l-0.691-0.083l-0.221,0.794l-0.34-0.543l-0.1,1.462l-1.789,0.209l-0.461,0.458l3.057,1.581l3.074,1.576l0.217-0.198l2.313,0.164l2.313,0.162l3.096,1.208l3.107,1.208l3.121,1.21l3.135,1.214l3.42,0.593l-1.77-1.895l-1.766-1.886l-0.273-1.657l-0.158,0.663
+ l-1.186-1.906l-0.705-0.706l1.063-2.457l2.17-0.961l1.006-0.586l-0.201-0.544l-1.572-2.484l-2.424-1.893l-2.414-1.891l0.342-2.785l0.295-2.767l2.418,1.044l0.385-1.05l1.514-1.13l1.496-1.127l2.887-0.077l2.676,1.226l2.689,1.229l2.99-0.2l3.887-0.057l3.912,0.624
+ l0.342-0.705l-2.129-2.523l0.934-2.824l1.822,0.064l-2.447-1.17l2.559-0.418l2.551-0.418l2.4-0.678l2.385-0.677l2.371-0.676l2.357-0.676l1.838-0.175l1.412,1.558l3.869,1.292l1.482,0.779l1.547,0.266l2.537-0.929l2.514-0.927l0.479,0.396l-0.348,1.136l2.711,1.825
+ l2.717,1.833l2.721,1.84l2.723,1.849l0.463-0.609l1.488,0.532l2.551-0.395l2.684,1.673l2.684,1.68l2.662-0.608l2.348,2.398l1.541-0.167l1.043-0.794l1.758-0.793l2.018-1.187l1.99-1.183l4.139,0.456l0.66,0.872l3.002,0.52l3.01,0.521l1.557-1.249l-1.857-1.742
+ l0.535-2.557l3.438,0.761l3.445,0.763l1.445,1.447l3.049,1.577l3.48-0.665l2.787,0.603l2.791,0.604l1.105,0.917l4.238,1.086l2.35-0.439l2.342-0.438l2.236-1.792l3.748,0.874l1.916,0.167l2.979,0.584l1.473-1.667l-0.588-1.825l-0.023-3.049l-1.434-0.944
+ l-0.951-0.369l1.498-1.349l2.504-0.102l2.502-0.103l5.158,1.636l2.057,1.733l2.037,1.741l2.016,1.749l1.994,1.756l2.254,0.959l3.676,0.961l2.166,0.879l2.576,2.767l3.09-0.419l3.145-1.09l1.238,2.181l0.352,2.999l0.277,2.985l-2.643-0.416l-0.396,1.29l1.461,2.219
+ l1.438,2.215l-0.846,0.581l0.543,0.665l0.408,0.332l-0.344-0.789h0.346l1.102-1.493l0.625-0.208l0.744,1.078l1.488,0.124l2.371-0.87l0.719-1.699l0.691-1.699l0.334-2.362l0.291-2.374l0.238-2.379l0.174-2.381l-1.016-2.116l-1.066-2.108l-1.18-1.372l-0.521-1.677
+ l-0.563-1.67l-1.473-1.725l-2.266-1.309l1.357,0.082l-5.203-2.69l-2.52-0.325l1.18,1.953l-0.492-0.855l-1.721,0.815l-0.008-0.855l-1.123-0.407l0.256-0.65l-0.5,1.138l-1.68-1.625l-3.408-0.446l0.816-2.184l0.744-2.174l0.635-1.504l0.6-1.498l-0.518-1.155
+ l0.773-2.101l2.41-0.355l2.402-0.355h0.699l0.984,0.474l0.285-0.395l4.617,0.277l0.053-0.434l-0.346-0.434l3.574,0.157l2.891,0.671l-0.967,0.316l0.719,0.751l1.965-0.277l1.438-0.553l2.82,0.039l-0.529-0.474l-1.861-0.197l-0.795-0.63l-0.004-2.334l-0.086-2.316
+ l3.92-0.155l0.922-0.271l2,2.216l0.365-0.273l1.236,1.094l1.057-2.338h1.191l-2.102-2.012l0.52-0.385l3.252,0.308l0.459,0.386l-1.803-0.116l1.494,1.664l1.467,1.673l-1.1,0.781l-0.404,1.863l-0.469,1.873l-0.131,2.342l-1.832,0.438l0.826,0.758l0.305,1.641
+ l1.586,2.069l1.545,2.078l3.109,2.525l3.064,2.538l3.008,2.552l2.945,2.568l0.799-1.611l-1.703-3.325l0.713-0.45l1.48,0.164l-0.408-0.409l-1.893-2.403l2.293-0.974l-3.066-2.588l-0.029-1.329l0.201-0.442l-0.051,0.522l1.373,0.483l-1.545-1.688l-0.943-0.12
+ l-2.096-2.559l-1.104,0.199l-1.828-0.716l-1.018-2.618l-1.172-1.538l1.256-0.472l1.477,0.55l-0.396-0.708l0.941-0.941l1.725,1.57l0.146-1.1l3.229-0.705l3.316,1.333l-0.039-0.589l0.994-1.642l0.158-0.273l-0.105-0.662l0.232-0.35l1.949-1.221l1.9-1.216
+ l-1.008-0.308l0.572-0.077l4.133,0.886l0.186-0.424l-1.803-1.116l-2.064-0.958l-1.063-0.344l-3.139-1.904l-0.189,0.38l-2.184-1.137l-1.566,0.303l-1.027-0.567l-2.049,0.454l1.477-0.265l2.334,0.038l-1.555-0.528l3.641,0.718l1.992-0.303l-3.217-2.36l-3.26-2.337
+ l-3.309-2.313l-3.363-2.286z M121.606,46.72l-2.493,0.749l-1.48,0.038l-0.631,0.413l-1.302,0.113l-0.229-0.451l-0.301,0.564l-0.708,0.489l-2.493,1.095l0.121,0.417l-0.878,0.303l-1.303,0.38l0.492-0.569l-1.174-0.113l-1.486-0.53l1.028-1.583h-3.608l0.161-0.9
+ l1.745-0.785l-0.563,0.074l0.035-0.41l-0.886,0.448l-0.874,0.149l-1.242,0.711l-1.432,1.201l2.909-2.052l2.94-2.034l2.978-2.016l3.017-1.995l1.039,1.272l0.007-0.437l1.554,1.389l0.012,1.177l-1.463,1.406l-0.661,0.93h0.851l0.125-0.521l1.254-0.965l1.745-0.037
+ l0.553,0.222l-0.024-0.296l0.998,0.148l1.076,1.151l0.59,0.857z M514.298,24.311l-1.543,1.014l-4.234,1.075l-4.328,1.084l-1.113,0.202l0.609,0.302l-0.289,0.336l-0.914,0.134l0.137,0.372l-1.641-0.236l0.57,0.744l-0.686,0.271l0.414,0.681l-1.994-0.341
+ l1.961,0.546l-1.072,0.034l0.314,0.582l-4.422-0.342l0.752-0.513l-1.916-0.034l1.873-0.884l0.625-0.034l-0.742-0.338l0.426-0.406l0.965-0.471l-0.67-0.134l0.273-0.336l-1.107-0.101l1.273-0.401l1.127-0.334l3.545-1.127l0.545-0.395l6.668-0.818l2.822-0.649
+ l1.771,0.519z M699.626,88.393l-0.975-0.712l-2.857-1.045l0.395,0.083l-0.729,0.083l0.934,3.185l3.891,3.062l1.508,1.928l-0.822-0.921l-1.934-0.922l0.229,1.801h-0.541l-1.596-2.64l-1.732-2.099l-1.764-2.096l-1.684-2.529l-1.756-2.515l-1.965-1.984l-2.053-2.221
+ l-2.096-2.209l0.893-0.041l0.102-0.815l-2.061-1.424l0.535-0.284l2.691,2.401l2.652,2.414l0.549,0.821l2.609,2.153l2.57,2.164l2.525,2.176l2.48,2.187z M504.683,36.516l-0.67,0.212l-1.434-0.106l-1.557-0.036l-1.34-0.142l-1.518-0.389l0.164-0.212l-0.695-0.74
+ l-0.803-0.105l-0.918-0.07l-1.383,0.07l-1.088-1.016l0.844-0.279l0.789-0.938l-0.664-0.312l0.592-0.622l0.623-0.687l4.258,0.137l-0.328,0.619l-0.229,0.345l-0.012,0.311l1.227,2.125l4.141,1.833z M632.177,26.649l-0.135,0.534l-1.492,0.368l-2.561-0.769
+ l-0.215-0.532l-0.715,0.366l2.236,0.868l2.193,0.335l-2.016,0.034l-4.031,0.067l-0.174,0.471l-5.197-1.242l-0.426-0.533l-0.787-0.498l0.061-0.199l1.639-0.462l4.033,0.76l-0.83-0.628l1.094,0.099l-1.006-0.363l8.328,1.324z M553.271,18.589l0.74,1.072l0.674,0.606
+ l-6.889-0.365l-2.006-0.781l-1.332-0.06l0.396-0.678l3.875-0.494l0.824,0.64l1.121-0.292l2.596,0.351z M548.112,16.978l-0.91,0.311l0.904,0.486l-6.266,0.144l0.563-0.259l-2.381-0.143l1.252-0.228l0.152-0.479l-1.063-0.14l4.094-0.525l3.654,0.833z M563.79,20.727
+ l0.162,0.154l-7.004,0.997l-0.541-1.121l0.857-0.338l-0.807-0.518l-0.275-0.242l1.459-0.121l-0.494-0.33l1.057,0.06l0.65,1.027l0.957-0.637l3.979,1.066z M641.919,27.417l-0.682,0.738l-7.027-0.905l-0.713-0.733l1.922,0.299l6.5,0.601z M636.544,31.282
+ l-6.629-0.412l2.188-0.99l3.756,1.058l0.686,0.343z M483.575,16.95l-3.873,0.709l-1.209,0.375l-1.074-0.173l1.154-0.316l2.119-0.595l1.725-0.225l1.158,0.225z M125.441,35.596l-4.485,0.353l2.378-1.232l2.518,0.633l-0.411,0.246z M494.437,39.989l-2.535,0.833
+ l-0.973-1.123l0.809-0.541l2.699,0.83z M699.878,34.822l1.855,1.339l-1.102,0.212l-1.246-0.813l0.492-0.739z M510.505,38.512h-1.527l-2.467-1.001l0.41-0.249l3.584,1.25z M498.202,16.865l-1.85,0.565l-2.264-0.369l4.113-0.197z M502.413,16.614l-3.936,0.14
+ l3.283-0.499l0.652,0.359z M713.802,96.356l-0.303,0.375l-0.834,1.145l-0.848,1.143l0.229-1.954l1.756-0.708z M454.337,64.397l-2.043,0.875l-0.252-0.835l1.895-0.238l0.4,0.199z M523.882,31.385l-2.701,0.103l0.346-0.754l1.238,0.446l1.117,0.206z M688.882,38.584
+ l-0.252,0.431l-2.695-0.574l2.592-0.072l0.355,0.215z M713.112,62.97l-0.832,1.07l-0.584-0.792l0.582-0.751l0.834,0.474z M586.288,28.796l0.215,0.474l-2.928-0.271l2.713-0.203z M479.466,17.062l-4.084,0.17l0.891-0.282l3.193,0.112z M494.622,17.602l-1.504,0.259
+ l-1.328-0.259h2.832z M629.71,29.27l-0.018,0.645l-1.428-0.577l1.445-0.068z M718.165,83.47l-0.637,1.371l-0.105-1.579l0.742,0.208z M535.536,32.834l-1.691,0.451l-0.104-0.417l1.795-0.035z M710.944,98.894l-0.9,1.575l-0.033-1.161l0.934-0.414z M617.868,26.45
+ l0.219,0.499l-1.734-0.997l1.516,0.498z M728.608,73.469l-3.229-1.66l2.713,1.214l0.516,0.446z M453.653,63.405l-1.602-0.079l0.488-0.198l1.113,0.277z"/>
+ <path style="stroke:none;" d="M478.638,216.705l-0.994,1.844l-0.543,1.502l0.113,0.043h0.152l1.969-0.129l0.234-0.814l1.25,0.172l0.645-0.26l-0.814-3.172l-1.367,0.814h-0.645z"/>
+ <path style="stroke:none;" d="M437.017,100.137l-0.006-0.083h-0.137l-0.064,0.083l-0.027,0.084l0.139,0.041l0.096-0.125z"/>
+ <path style="stroke:none;" d="M426.739,212.396l-0.338-0.291l-0.336,0.508l0.193,0.463l0.48-0.68z M428.116,209.156l-0.016-0.24l0.221-0.092v0.018l-0.205,0.314z"/>
+ <path style="stroke:none;" d="M499.124,159.402l2.43,2.102l1.83,2.893l1.834,2.896l1.125,1.852l1.125,1.852l0.768-0.764l0.377-2.115l2.535,0.268l2.115,0.934l2.117,0.934l0.162,2.701l1.266-1.703l1.258-1.705l1.252-1.705l1.246-1.705l1.775-0.471l1.775-0.471
+ l1.773-0.473l1.773-0.473l1.629-0.643l1.625-0.645l1.625-0.643l1.623-0.645l0.531-2.57l0.525-2.574l-1.197-1.801l-0.398,0.516l-3.389-0.645l-3.387-0.643l-0.752-2.23l-1.496-1.029l-0.066-0.73l-0.676-0.516l-0.98-1.738l-0.984-1.74l-0.123-1.502l-2.016-1.975
+ l-1.01-0.816l-1.258-2.016l-1.873-0.385l-0.348-0.771l-2.037-0.258l-2.162,0.855l-1.879-1.113l-2.596-1.027l-0.057-2.01l-1.316-0.084l-0.279-0.813l-2.121-0.961l-2.117-0.961l-2.113-0.959l-2.111-0.963l-2.383,0.941l-2.391,0.939l2.449,2.563l-0.957,1.281
+ l-1.604,0.342l-1.326,1.756l-2.449-0.473l-0.389,3.086l0.637,0.172l2.221,2.982l2.213,2.984l1.15,2.662l1.486,1.244l1.486,1.244l0.779,2.018l0.773,2.014l0.949,3.432z"/>
+ <path style="stroke:none;" d="M374.711,170.81l-0.51,1.029l-1.049,1.779l-1.05,1.781l1.429,1.844l0.61-0.514l-0.458,0.428l0.37,0.301l-0.05,0.729h2.442l0.272-0.514l2.808,0.643l0.555,0.557l-2.998-0.557l-1.758,0.602l-1.758,0.6l0.208,1.115l1.654,0.086
+ l0.873-0.516l-0.003,0.215l-2.186,0.301l-0.501,0.729l2.982-0.6l1.902-0.172l1.902-0.172l1.988,0.473l3.271,0.256l-0.648-2.529l-0.626-0.988l-0.604-2.572l-1.66-1.781l-1.656-1.779l-2.147-1.244l-1.801,0.236l-1.801,0.236z"/>
+ <path style="stroke:none;" d="M537.472,225.457l-0.16-0.5l-0.156,0.023l0.316,0.477z M516.683,237.287l-0.711,0.123l0.543-0.203l0.168,0.08z"/>
+ <path style="stroke:none;" d="M388.096,191.312l-0.87,0.215l0.201-1.715l-1.454-2.402l-3.062,0.771l-1.675,1.717l0.713,0.471l-0.57,0.473l0.753,0.301l-0.722,0.514l1.498,1.672l0.488,0.43l-0.38,0.387l2.298,1.158l0.685-0.816l1.049-1.586l1.048-1.588z"/>
+ <path style="stroke:none;" d="M647.753,209.626l-0.76-0.086l-0.033,0.258l0.793-0.172z"/>
+ <path style="stroke:none;" d="M775.22,238.623l0.127-0.129l-2.213-1.459l-0.381,0.73l2.467,0.857z M766.515,230.257l1.959,1.889l-1.393-0.516l-0.566-1.373z M778.347,241.068l-1.703-1.115l-0.311-0.559l2.033,1.244l-0.02,0.43z M768.993,235.105l-0.686-0.729
+ l-0.479-0.129l0.688-0.473l0.477,1.33z M775.505,234.548l0.977,3.258l-1.041-2.615l0.064-0.643z M773.405,235.148l-1.256-1.244l-1.266-1.244l1.357,1.266l1.35,1.266l-0.186-0.043z M766.735,233.195l-0.484-0.092l0.396-0.158l0.088,0.25z M786.438,241.041
+ l0.029-0.367l0.293-0.064l-0.322,0.432z M773.741,243.525l-0.521-0.686l0.271,0.254l0.25,0.432z"/>
+ <path style="stroke:none;" d="M526.489,187.152l0.797-0.814l-0.34-0.043l0.205-3.176l-0.67-0.684l-1.178,0.643l-3.15,0.707l-3.154,0.709l-2.148,0.984l-2.082-0.256l-2.902,1.072l-1.387-1.352l-1.385-1.352l-0.635,1.244l-0.328,1.416l1.455,1.865l1.453,1.865
+ l1.707,0.645l1.707,0.643l1.707,0.643l1.709,0.645h2.229l-1.666,1.994l-1.67,1.994l-1.678,1.994l-1.682,1.994l-1.813,0.172l-1.813,0.174l-2.17,1.457l-1.09,0.602l-1.018,1.457l-1.023,1.459l0.035,2.381l0.025,2.381l0.014,2.379l0.006,2.381l1.238,2.059
+ l1.051-1.588l1.049-1.586l1.602-1.555l1.598-1.555l1.592-1.555l1.586-1.555l1.357-1.416l1.354-1.416l1.352-1.414l1.348-1.416l1.557-3.088l1.545-3.088l1.533-3.088l1.52-3.09l0.652-2.873z"/>
+ <path style="stroke:none;" d="M455.618,276.88l-0.205,2.404l-0.209,2.406l-0.217,2.402l-0.223,2.402l-1.908,0.943l-3.373-0.471l-0.734-1.672l-1.264,1.414l0.92,2.377l0.908,2.373l0.896,2.371l0.883,2.371l-0.857,1.156l0.221,1.199l0.633,2.668l0.725-0.129
+ l1.064,0.734l1.488,0.777l2.271-0.799l2.277-0.799l2.316-0.064l2.316-0.066l2.939-0.43l1.471-0.432l2.365-1.375l2.367-1.371l1.414-1.52l1.416-1.516l1.418-1.518l1.418-1.516l1.656-1.967l1.656-1.969l1.074-2.51l1.064-2.51l-1.684-0.045l-0.414,1.16l-2.18-0.816
+ l0.127-1.889l1.074-1.289l1.178,0.559l-0.051-2.705l-0.066-2.703l-0.418-1.844l-0.424-1.846l-2.137-0.301l-2.135-0.299h-0.297l-2.98,1.973l-2.234,1.93l-1.215,2.273l-1.371,0.859l-1.248,2.148l-3.326-0.473l-1.813-0.646l-1.127,1.697l-1.127,1.697l-2.408,0.473
+ l-0.791-0.346l0.4-2.49l-1.523-2.447z M472.71,287.482l0.885-0.643l1.959,1.156l-0.484,1.584l-2.127,1.625l-0.852,0.684l-1.543-2.223l2.162-2.184z M443.919,272.804l-0.479-0.127l0.213-1.158l0.266,1.285z"/>
+ <path style="stroke:none;" d="M684.413,124.328l0.266-0.477l0.373-0.129l0.266-0.217l0.211-0.348l0.557,0.217l0.973-0.564l1.023-0.521l-1.225-3.623l-2.344-2.534l-2.385-2.524l-0.869,0.739l-1.662,0.87l-0.006,0.436l0.133,0.437l1.396,1.966l0.035,0.393
+ l-0.971-0.35l-0.238,0.264l0.357,0.48l1.422,1.617l0.043,0.262l0.037,0.828l0.398,1.436l0.416,0.564l0.145,0.26l-0.123,0.303l0.395,0.434l0.535-0.348l0.73-0.303l0.111,0.434z"/>
+ <path style="stroke:none;" d="M397.843,105.308l0.382,1.17l-1.114,1.301l-0.824,3.097l-0.705,0.172l0.819,1.981l-0.25,1.431l0.159,0.608l-0.783,1.57l0.087,0.7l0.673-0.045l1.68,0.787l0.492,1.881l1.42,0.088h0.035l1.652-1.094l2.471-0.307l2.467-0.307l1-1.049
+ l1.773-1.004l0.461-0.654l1.764-2.088l-0.842-1.942l1.189-1.818l1.18-1.799l2.25-1.176l2.24-1.17l0.492-1.748l-3.035-0.167l-0.521-0.027l-0.029-0.222l-1.586-0.291l-2.047-0.456l-2.043-0.456l-1.023-0.786l-2.338-0.114l-2.336-0.115l-2.336-0.114l-2.333-0.113
+ l-2.555-0.373l-3.137,1.326l-0.009,1.036l0.254,0.498l0.022,0.291l0.219,0.54l0.041,0.707l1.179-0.125l0.715,0.292l2.728,0.083z M418.669,110.748l-1.072,0.9l-1.059-0.772l1.393-0.427l0.738,0.299z"/>
+ <path style="stroke:none;" d="M593.151,188.267l-0.775-0.387l1.176,0.773l-0.723-0.086l-0.279,1.822l-0.285,1.822l-0.236-0.172l0.338,2.402l1.27,3.346l2.207-0.6l1.201-2.061l-0.902-1.973l-0.908-1.973l-1.102-1.586l-1.107-1.588l0.127,0.258z"/>
+ <path style="stroke:none;" d="M270.986,169.144l0.074-0.094l-0.168-0.117l0.094,0.211z M270.889,168.798l-0.486-0.406l0.417,0.314l0.069,0.092z"/>
+ <path style="stroke:none;" d="M273.98,177.841l0.163-0.873l-0.453,0.455l0.291,0.418z"/>
+ <path style="stroke:none;" d="M270.218,166.597l-0.231,0.063l0.214,0.023l0.018-0.086z"/>
+ <path style="stroke:none;" d="M273.38,179.32l0.09-0.582l-0.311,0.275l0.221,0.307z"/>
+ <path style="stroke:none;" d="M464.989,162.96l0.086,2.445l0.084,2.445l0.08,2.443l0.078,2.445l-1.461,0.043l-0.805,0.686l-1.107,2.018l-0.016,0.9l-0.283,0.686l-0.197,1.158l-0.82,1.973l0.867,0.129l0.945,1.93l0.402,1.373l0.215,1.416l0.973,1.607l0.971,1.609
+ l-0.377,2.445l1.631,0.43l0.387,0.729l2.063,1.5l0.432,1.072l2.029,1.93l0.887,1.33l1.268,1.717l0.352,0.814l0.574,0.6l1.83,1.074l1.283-0.172l0.9-0.602l1.607,1.523l1.607,1.521l0.223-0.514l1.664-0.086l0.572,0.301l1.018-0.387h2.535l1.084-1.201l0.855-1.029
+ h1.76h1.76l-0.598-1.973l-1.334-0.645l-0.859-1.715l-0.863-1.715l-2.227-1.975l-0.844-0.686l0.844-1.158l1.578-0.344l0.295-2.83l0.283-2.832l1.238-0.213l0.555-2.875l0.92-1.758l1.035-0.514l0.324-1.932l0.318-1.93l0.256-3.561l0.852-3.26l1.42-1.094l1.416-1.094
+ l0.281-0.342l-2.527-1.846l-0.563-3.109l-0.563-3.107l-0.734-1.846l-1.504-1.65l-1.504-1.65l-0.797,0.943l-0.604-0.215l-0.475,1.459l-1.213,0.213l-0.457,1.158l-2.781-0.322l-2.779-0.32l-0.139-0.559l-0.268,0.559h-1.744h-1.744h-1.742h-1.742h-1.744h-1.742
+ h-1.742h-1.744l0.098,2.572l0.096,2.572h-2.232l0.045,1.287z"/>
+ <path style="stroke:none;" d="M280.88,204.523l1.067,1.801l1.074,1.803l1.019,0.299l-0.134-1.328l2.014-0.43l1.356,0.471l1.251-2.486l-0.809-3.131l0.693-2.145l0.182-1.244l-2.151-0.172l0.072,0.129l-2.008,0.129l-2.68-0.215l-0.405,1.029l-0.41,1.287
+ l-1.073,0.559l-0.203,2.229l1.145,1.416z"/>
+ <path style="stroke:none;" d="M430.708,18.707h-2.082l-1.619,0.088l0.277,0.745l1.273-0.09l0.148,0.482l-1.063,0.091l1.84,0.857l1.666,0.559l1.066-0.528l1.08-0.523l0.146,0.368l1.797-0.276l0.135,0.524l-3.652,0.654l-0.385,0.44h4.416l-1.738,0.222l0.748,0.317
+ l-2.705,0.223l2.957,0.932l1.172,0.779l0.361-0.423l1.332-1.383l0.768-1.012l0.383-0.625l3.398-0.739l-3.979-0.729l-0.404-0.658l-1.111,0.208l-0.172-0.416l-2.045-0.673l0.305,2.023l-2.586-1.556l-1.041,0.622l-1.176-0.327l0.488-0.177z M442.71,18.092
+ l0.213-0.375l0.459-0.257l0.727,0.229l0.639,0.086l4.111,0.086l1.027,0.494l-1.84,0.886l-4.289,0.209l-3.922-0.418l2.514-0.326l-5.189-0.323l-0.096-0.292l1.344-0.26l0.828-0.23l3.475,0.49z M446.349,22.861l-1.971,0.063l-1.9-0.032l0.424-0.793l-1.117-0.44
+ l3.637-0.031l2.469,0.661l-1.541,0.572z M441.384,21.16l1.727-0.402l0.617,0.558l-2.344-0.156z"/>
+ <path style="stroke:none;" d="M480.731,279.371l-1.074,1.289l-0.127,1.889l2.18,0.816l0.414-1.16l-0.215-2.275l-1.178-0.559z"/>
+ <path style="stroke:none;" d="M448.464,50.676l-0.568-1.137l0.324-1.131l0.92-0.639l0.391,0.113l0.162-0.375l0.658-0.3l2.383,0.075l-0.824-2.162l-1.695-3.021l-4.83-1.964h-0.826l0.184,1.198l-2.895-0.073l-0.207,0.803l-2.279,0.586l-0.896,2.249l-0.76,1.339
+ l-1.605,0.336l0.307,0.673l-1.344,2.825l0.945,0.949l-1.582,0.152l-1.561,0.991l0.064,2.224l0.061,2.24l1.391,0.854l-0.736,0.74l-0.004,0.625l-0.232,2.116l-1.096,2.13l-0.406,0.277l0.633,1.389l0.059-0.04l0.631,0.198l-0.16,0.677l1.771,2.638l0.408,1.485
+ l0.664,1.895l2.061,0.121l0.377-1.331l3.07-0.645l0.338-1.907l0.328-1.898l0.229,0.12l-0.346-0.598l0.191-0.994l0.057-0.04l-0.643-0.516l0.861,0.04l1.18-1.109l0.295,0.396l1.184-0.988l-4.199-0.237l2.373-0.236l-0.07-0.315l0.697,0.709l1.779-1.024l-0.891-0.982
+ l-2.027-0.979l-0.566-2.531l0.143-1.393l0.387-0.424l0.193-0.962l1.154-0.154l0.803-0.537l1.533-0.88l2.063-1.638z M446.181,65.869l0.002,0.479l-0.436,1.199l-0.152,0.28l-0.426-0.92l1.012-1.038z"/>
+ <path style="stroke:none;" d="M432.034,93.469l0.41-0.504l-0.008-0.167l-1.6-0.461h-0.438l0.111-0.503l0.033-0.672l-1.951-0.294l-2.031,0.168l-0.688,0.377l-0.426,0.294l-1.727,2.642l0.76-0.461l1.123,1.298l1.244-0.125l1.211-0.963l1.324,1.047l0.766-1.004h1.414
+ l0.471-0.671z"/>
+ <path style="stroke:none;" d="M496.425,118.316l-3.166-0.088l-3.227,0.264l-0.811,0.305l-0.104,1.139l-0.857,0.828l-0.23-0.131l0.514,3.35l1.324,0.605l-0.285,1.51l-1.373,1.504l0.18,1.287L491.11,130l1.969-1.369l1.959-1.373l2.201-1.332l2.189-1.338
+ l-0.041-2.516l-0.055-2.531l1.979-1.967l-0.672-0.219l-2.105,0.48l-2.109,0.48z"/>
+ <path style="stroke:none;" d="M567.88,116.96l0.648,0.045l1.863,0.219h0.035l0.295-0.219l-1.367-3.008l-1.949-0.174l-1.209-2.117l-3.68-0.463l-3.674-0.462l-0.162-1.651l2.623-0.864l2.611-0.859l-2.268-1.468l-2.91-0.198l-1.578,1.326l-2.166,1.9l-2.203,1.92
+ l0.973,1.055l1.498,0.875l0.582,1.013l-0.488,1.67l-0.506,1.678l0.719,0.48l1.078-0.219l1.477-0.043l0.445-0.48l1.639-0.786l0.223-1.569l1.057-0.391l0.645,1.088l0.553,0.087l0.875,3.101l2.684-1.398l1.639-0.088z"/>
+ <path style="stroke:none;" d="M680.231,156.572l0.275-1.941l0.26-1.939l0.238-1.941l0.209-1.943l-1.436-0.473l-0.861,1.654l-0.883,1.65l0.396,2.875l1.801,2.059z"/>
+ <path style="stroke:none;" d="M496.964,221.765l-0.18-0.9l-2.078-1.287l-2.082-1.285l-2.082-1.289l-2.088-1.285l-1.951,0.041l-1.951,0.045l-1.951,0.041l-1.951,0.045l0.814,3.172l-0.645,0.26l-0.012,1.285l0.561,0.814l-1.324,1.588l-1.322,1.588h-0.531
+ l0.072,1.887l0.068,1.887l0.801,2.145l0.973,1.846l0.969,1.844l0.143,0.428l2.352,1.352l2.348,1.352l2.295,0.344l0.855,0.514l0.646,2.703l0.656,2.016h1.018l1.248-0.172l2.623,0.43l1.639-0.645l1.209-0.086l2.354-1.158l2.355-1.158l-1.5-1.543l-0.461-2.488
+ l-0.252-2.016l-0.207-0.816l0.467-2.443l-1.506-2.23l1.006-3.432l-1.697-1.693l-1.699-1.695z M501.11,229.744l-0.85-1.115l0.428-0.559l0.422,1.674z"/>
+ <path style="stroke:none;" d="M636.354,189.468l-0.631-2.016l0.543-2.252l0.527-2.252l0.074-2.08l0.057-2.08l1.998-0.301l0.146,1.801l1.723,0.301l2.254,1.545l0.852,1.07l-0.84-2.121l-0.852-2.125l1.402-2.615l2.377-0.064l2.375-0.064l0.654-1.416l-0.584-2.188
+ l-1.945-2.701l-0.422-1.889l-2.758-2.23l-1.086,0.73l-0.982,0.428l-1.383-0.514l-1.98,1.543l-0.176-2.637l-0.186-2.639l-1.725-0.086l-0.305-1.543l-0.787-0.299l-1.229,0.256l-0.982,1.158l-2.172,0.428l-0.453,2.832l-0.602-0.043l1.861,2.787l1.852,2.789
+ l0.584,0.172l-0.59,1.543l-0.275,1.115l0.021,1.459l1.193,1.607l1.184,1.609l0.6,2.23l0.639,2.486l-0.785,1.652l-0.793,1.652l-0.078,0.471l-0.297,2.51L634.06,192l0.398-0.301l1.213,1.371l1.209,1.373l0.523,0.6l1.102,1.588l0.133-0.385l1.744,0.857l0.131,1.158
+ l1.547-0.086l0.932-1.072l-1.289-1.545l-1.641-0.301l-1.695-1.973l0.668,1.158l-0.744-2.424l-0.758-2.422l-1.178-0.129z"/>
+ <path style="stroke:none;" d="M412.862,184.835l-1.883-0.342l0.338,0.814l0.906,2.271l-0.037,1.158l0.189,1.76l0.34,1.672l0.096,2.016l0.094,2.018l1.172,1.244l0.984-0.301l-0.078-1.93l-0.076-1.932l-0.078-1.93l-0.076-1.93l-0.342-2.016l-1.246-1.502l0.264-1.072
+ h-0.566z"/>
+ <path style="stroke:none;" d="M21.729,268.345h0.075l-0.095-0.215l0.026-0.043l-0.108-0.129l0.022,0.086l-0.065,0.172l0.146,0.129z"/>
+ <path style="stroke:none;" d="M272.051,185.521l0.314,0.516l-0.877,1.029l1.387,0.172l0.648-1.76l-1.472,0.043z"/>
+ <path style="stroke:none;" d="M433.321,134.443l0.01-2.135l1.41-1.219l1.402-1.217l0.107-2.057l-1.365-0.986l-1.943-1.207l1.109-1.576l1.105-1.584l-1.354-1.918l1.031-2.752l-1.316,0.787l-0.563-0.832l-0.832-0.523l-2.449,0.873l-0.477,0.699l0.211,3.58
+ l-0.93,1.93l-0.938,1.92l1.752,2.447l1.674,1.883l0.588,2.393l0.59,2.391l1.176-0.896z"/>
+ <path style="stroke:none;" d="M496.425,118.316l2.109-0.48l2.105-0.48l0.672,0.219l0.57-0.438l2.787-0.045l0.572,0.482l1.246-0.176l-1.395-1.834l-0.51-2.606l-0.283-1.423l0.918-0.729l0.164,0.128l0.043,0.043l-2.031-0.983l-0.844-1.357l-0.904-1.641l-1.295-0.963
+ l-2.695,0.209l-3.15,1.383l-2.613-0.042l-2.711-0.629l-2.703-0.628l-0.842-0.502l-1.486-0.625l-1.332-0.125l-2.053,0.25l-2.055,0.25l-2.834,1.758l-3.977-0.126l1.053,0.884l0.602,0.084l-1.586,0.676l-2.553-0.084l-0.676,0.466l-2.096,0.296l-0.113,1.837
+ l1.133,0.129l0.248,1.336l0.01,0.432l0.416,0.954l-0.762-0.218l-0.576-0.129l0.338,0.912l1.748,0.915l-0.232,0.479l0.979,0.961l-0.223,0.611l1.686,0.219l-1.313,0.699l1.104,0.043l1.117-0.174l1.131,0.656l1.959,0.744l1.037-0.613l0.414-1.094l3.43,1.488
+ l1.77,0.566l2.188-1.049l1.658-0.654l1.436,0.129l0.926-0.523l-0.102,2.012l-0.018,0.436l0.23,0.131l0.857-0.828l0.104-1.139l0.811-0.305l3.227-0.264l3.166,0.088z M466.448,105.157l2.99-0.125l1.484,1.587l0.93,0.755l-3.238,0.504l-2.313,1.692l0.775-1.144
+ l-1.352-0.253l0.828-1.554l-0.49-0.919l0.385-0.542z"/>
+ <path style="stroke:none;" d="M549.097,118.011l0.738-0.787l0.777-0.744l-1.369-2.537l-3.625-2.308l-3.621-2.282l-1.762-0.902l-2.857-1.098l-1.627-2.575l-2.725-1.832l-1.721,1.813l-1.043,0.582l0.477,1.406l-2.949-0.64l-2.434-0.738l-2.428-0.735l0.281-1.722
+ h-3.668l0.594,0.456l-0.094,1.163l1.377,2.589l-0.049-0.209l-0.029-2.006l1.77,0.167l2.023,2.047l-0.217,0.841l-0.182,0.254l-0.553,0.168l-1.076-0.591l-1.213-0.126l-0.238,0.169l0.605,2.542l0.018-0.085l0.922-0.256l0.6,0.983l-0.268,0.214l-0.441,0.559
+ l0.148-0.128l1.305,0.862l0.594,2.189l0.578,2.202l0.717,0.043l1.582-1.614l2.432-0.349l1.998-0.217l3.492,1.308l1.83,1.2l1.834,1.203l1.9,0.262l0.865,2.752l2,0.697l1.258,0.217l0.639-1.35l1.977-1.049l0.857-2.01z"/>
+ <path style="stroke:none;" d="M250.658,157.101l0.155-0.088l-0.417-0.115l0.017,0.18l0.245,0.023z M251.898,157.115l-0.07-0.01l-0.382-0.115l0.441,0.088l0.011,0.037z M252.271,157.314l-0.003,0.02l-0.205-0.096l0.208,0.076z M251.413,156.949l-0.163-0.205
+ l-0.176-0.084l0.235,0.127l0.104,0.162z"/>
+ <path style="stroke:none;" d="M811.212,245.296l-0.268,0.006l0.066,0.039l0.115,0.018l0.086-0.063z M813.614,228.878l-0.012-0.057l0.023,0.051l-0.012,0.006z"/>
+ <path style="stroke:none;" d="M266.643,167.464l-0.474-0.129l-0.243,0.215l0.717-0.086z"/>
+ <path style="stroke:none;" d="M489.54,204.308l-0.971-2.016l-1.084,1.201h-2.535l-1.018,0.387l-0.572-0.301l-1.664,0.086l-0.223,0.514l-0.168,2.23l1.184,1.158l-1.447,1.674l-1.451,1.672l-0.471,2.895l-0.482,2.896h0.645l1.367-0.814l1.951-0.045l1.951-0.041
+ l1.951-0.045l1.951-0.041l-0.033-2.832l1.547-2.572l0.936-2.018l-0.68-1.994l-0.684-1.994z"/>
+ <path style="stroke:none;" d="M474.911,78.709l-1.609,0.519l-2.357,1.211l0.117,0.934l-3.418-0.639l-3.408-0.637l-3.43-0.027l-3.428-0.027l1.092,2.682l-0.256,1.244l-1.813,2.541l-0.063,0.836l-0.209-0.083l-0.598,1.675l1.633,1.174l0.063-0.042l3.814,0.378
+ l3.389-1.092l1.77-1.386l0.646,0.231l1.6,1.484l1.607,1.484l1.615,1.485l1.623,1.484l1.688-1.048l0.564,0.377l-0.201-1.258l0.375,0.88l1.5,0.335l-2.119,0.21l0.887,0.503l1.672,0.544l1.836,0.293l-2.041,1.379l1.395,0.667l0.93,0.916l0.334,0.998l2.908-1.122
+ l1.342-0.292l1.232-0.708l-1.615-0.126l-1.984-1.504l0.504-1.172l-0.219,0.67l0.545-0.544l2.838-1.048l3.174-1.133l1.039-0.168l0.717-1.446l1.637-0.766l-1.348-3.58l-3.002-0.948l-2.988-0.946l-1.303,0.276l-2.59-2.234l-2.574-2.222l-0.346-0.871l-3.166-0.345z"/>
+ <path style="stroke:none;" d="M524.739,149.794l-0.205,0.172l0.066,0.73l1.496,1.029l0.752,2.23l3.387,0.643l3.389,0.645l0.398-0.516l0.416-3.125l1.084-0.418l-0.447-2.326l0.326,0.561l0.68-0.527l-0.441-2.018l-0.592-0.344l-2.051,2.297l-2.078,2.297
+ l-3.492,0.172l-1.35-0.215l-0.898-0.516l-0.063-0.686l-0.377-0.086z"/>
+ <path style="stroke:none;" d="M405.185,72.74l1.488-0.632l0.387-0.62l0.684-0.456l-0.313-0.473l-2.693-0.322l1.578-0.523l-0.932-0.362l0.598-0.201l2.002-2.683l-3.775-0.041l-0.705-0.199l0.535-0.319l1.549-1.67L402.558,64l-0.611,0.794l-0.211,0.756l-0.656,0.199
+ l-0.156,0.838l-0.01,0.28l-0.049,0.44l-0.664,1.081l0.238,0.241l-0.256,0.201l1.289-0.281l-0.037,0.161l-1.092,3.222l1.396-2.097l-0.455,0.443h0.754l0.436,0.121l-0.211,0.685l-0.42,1.252l0.25,1.094l0.959-0.243l2.133-0.446"/>
+ <path style="stroke:none;" d="M405.649,76.601l-0.611,0.122l-2.596,1.022l0.449,0.082l0.59,0.819l-1.814,1.314l-0.244,0.617l1.973,0.289l0.836,0.454l1.322-0.382l-0.313-1.819l0.193-1.536l0.215-0.981"/>
+ <path style="stroke:none;" d="M405.435,77.583l-0.193,1.536l0.313,1.819l0.963-0.278l-0.857,0.825l-1.701,0.413l-1.895,1.345l-1.91,1.35l0.686,0.166l0.496-0.125l2.406-0.333l0.734-0.623l1.74-0.332l2.262-0.29l3.336,0.083l2.246-1.448l-1.631-0.413l0.582-0.66
+ l1.768-1.808l-0.654-0.942l-2.318,0.164l0.193-0.695l-1.539-1.47l0.672,0.123l-0.191-0.937l-1.426-1.381l-1.771-2.641l-0.684,0.456l-0.387,0.62l-1.488,0.632l-0.619,0.77l0.994,1.096l0.09,1.996l-0.215,0.981z"/>
+ <path style="stroke:none;" d="M400.61,74.078l-1.24,0.813l-1.152-0.609l-0.52,0.203l-1.579-0.244l1.479-1.703l1.602-0.445l1.213,1.336l0.197,0.649z"/>
+ <path style="stroke:none;" d="M399.97,66.677l0.848,0.554l-0.248,0.318l-1.646-0.576l0.568-0.477l0.479,0.181z"/>
+ <path style="stroke:none;" d="M400.034,64.953l-1.576,0.756l0.313-0.717l1.156-0.397l0.107,0.358z"/>
+ <path style="stroke:none;" d="M409.007,59.546l0.48,0.078l-0.553,1.06l-0.207-0.354l0.125-0.393l0.154-0.392z"/>
+ <path style="stroke:none;" d="M399.897,69.565l-0.057-0.503l0.938,0.107l-0.881,0.396z"/>
+ <path style="stroke:none;" d="M403.458,76.933l-0.686,0.192l0.092-0.626l0.594,0.434z"/>
+ <path style="stroke:none;" d="M400.04,71.009l-0.1,0.123l-0.459-0.444l0.559,0.321z"/>
+ <path style="stroke:none;" d="M397.999,67.117l0.01,0.015l-0.428,0.334l0.418-0.349z"/>
+ <path style="stroke:none;" d="M274.785,97.938l-0.189-0.874l-0.579-1.627l0.943-3.101l-1.354-0.545l-0.986,0.042l-0.191-0.504l-1.742,1.867l-1.742,1.864l-1.869,1.587l-1.375,0.833l-3.97,0.229l-3.973,0.229l-2.065,1.495l-2.071,1.492l-2.525,0.208l-2.527,0.206
+ l-0.195,1.617l-2.182,0.705l-2.185,0.706l-2.19,0.708l-2.193,0.708l-0.622-0.917l2.48-2.408l1.136-1.409l0.445-2.195l0.462-2.205l-1.638-1.211l0.226-0.712l-0.727,0.126l-0.187-1.089l-1.751-1.101l-1.735-1.101l-1.717-1.102l-1.699-1.102l-2.741,0.671
+ l-1.638-0.629l-1.804,0.294l-2.905-1.216l-2.26-0.461l0.278-1.464l-0.898,0.92l-3.428,0.002l-3.428,0.003l-3.428,0.003l-3.428,0.002l-3.429,0.003l-3.428,0.003l-3.429,0.002l-3.428,0.003l-3.429,0.003l-3.429,0.002l-3.429,0.003l-3.429,0.003l-3.429,0.002
+ l-3.428,0.002l-3.429,0.003l-3.429,0.002l-0.756,2.053l-0.961,2.014l-1.639,0.755l0.33-0.587l0.154,0.293l1.62-1.846l-1.844,1.343l-0.219,0.084l1.191-1.05l0.656-0.88l-3.129-0.671l-1.031,3.357l-0.261,0.419l-0.125,0.42l-0.15,0.461l-0.155-0.294l-0.602,0.922
+ l1.438,0.293h-1.079l-0.977,1.213l-2.53,3.309l-2.496,3.292l-0.759,2.014l-0.728,2.022l-2.056,2.439l0.194,0.892l-0.396,1.882l0.245,1.661l0.272,1.672l-0.171-0.391l-0.186,0.479l1.033,0.131l1.937-0.305l-1.398,0.129l-0.368,1.439l-0.444-0.349l-0.404,0.349
+ l0.673,1.443l-0.611,1.006l0.535,1.506l0.553,1.506l-0.41,2.256l1.221,0.262l2.177,1.121l2.095,1.764l0.058,2.102l2.614-0.15l2.613-0.15l1.705,0.846l1.714,0.844l1.723,0.846l1.733,0.842h3.096h3.096l0.367-1.152h3.652l1.917,2.477l0.712,2.564l1.308,1.07
+ l1.32,1.068l1.584-1.969l3.038,0.344l0.922,2.355l0.965,2.357l0.795,3.006l1.476,1.201l2.663,0.473l-0.2-2.92l-0.209-0.387l-0.169-0.557l0.73,0.342l0.326-1.287l0.61-0.428l1.187-0.857l0.587-0.473l0.046-0.344l1.121,0.043l-0.603,0.387l1.238-0.6l-0.485,0.043
+ l2.673-1.844l0.244-0.684l0.595,0.385l-0.235,0.215l1.775-0.984h0.328l1.771,0.191l1.773,0.193l1.16-0.129l0.622,0.898l1.294,0.387l1.193,0.043l-0.081-0.9l1.755,1.07l-0.455,0.557l0.759-0.77l-0.922-1.199l0.741-0.514l-0.286-0.17l-0.192-0.258l-1.516-0.342
+ l1.475-0.086l3.577-0.213l0.517-1.068l-0.111,1.197l1.084-0.129l1.058-0.469l-0.456,0.385l2.102-0.129h-0.618l1.362,0.385h0.4l0.333,0.598l-0.403-0.299l0.426,1.154h-0.036l3.19-1.068l1.083,1.668l1.104,1.67l-0.664,2.959l-0.129-0.473l0.255,0.387l0.418-0.643
+ l-0.348,1.631l0.633,0.943l0.263,0.172l0.075,0.814l0.443-0.428l-0.326,0.6l0.406,1.504l1.004,1.76l1.447-0.301l0.668-2.082l0.688-2.082l-0.389-2.189l-0.361-2.188l0.338,2.016l-0.181-2.068l-0.158-2.066l-0.133-2.064l-0.109-2.061l0.654-0.471l0.07-0.297
+ l0.912-1.238l0.68-1.156l0.114-0.17l0.666-0.215l3.08-2.1l0.227-0.043l2.222-1.547l0.937-0.303l1.556-1.467l2.685-0.998l-1.627-0.477l1.038,0.129l0.313-0.521l-1.019-0.609l2.294,0.088l0.614-1.135l-0.6,0.393l-0.611-0.523l-0.678-0.393l0.094-0.088l0.843,0.176
+ l0.697-0.219l0.417,0.305l0.131-1.703l0.245,2.445l-0.777-3.102l-0.754-0.219l-0.715-0.744l1.423,0.613l-0.605-1.137l0.903,0.568l-1.033-2.094l1.278,0.958l-1.063-1.698h-0.563l0.907-1.041l-0.318,0.954l1.312,0.696l-0.382-1.347l0.426,0.825l0.423-2.251
+ l1.375-0.602l-0.92,1.422l-0.205,0.691l-0.343,0.695l0.732,0.392l-0.351,0.739l0.16,0.437l-0.439,0.436l-0.501,0.918l2.771-2.965l-0.203-2.765l1.252-1.114l-1.064,0.728l0.774,1.031l-0.077,0.733l2.615-2.535l-0.104,0.341l0.493-1.702l0.965-1.811l-0.246,0.757
+ l0.783-0.379l2.284-0.461l2.281-0.461l0.45-0.753l0.437,0.042l0.042,0.083l0.857,0.46l0.493,0.084l1.307-0.627l-0.061-1l0.077,0.625l-1.215-0.416l0.235-1.455l0.055-0.374l2.473-2.569l0.652-0.414l0.355,0.166l1.975-1.618l0.019,0.25l0.504-0.083l0.988,0.207
+ l2.608-1.204z M165.204,71.971l-2.295,1.133l0.49-0.648l0.994-0.606l-1.449,0.364l0.623-0.283l1.4-1.936l-2.414,0.926l-0.881,0.323l1.875-1.451l0.792-0.081l-0.862-1.205l-0.325-1.082l-0.209-0.28l0.761-0.12l-0.149-0.878l0.645,0.239l-0.046-0.718h0.679
+ l-1.122-0.12l0.551-0.358l-0.113-0.438l0.208-0.318l-0.641,0.517l-0.396-1.072l0.602-1.543l-0.26,0.237l-2.017,2.259l-0.174-0.397l-0.08-0.397l0.635-0.753l-0.229-0.079l-0.903,0.237l-0.847-0.198l0.405,1.388l-1.014,0.159l-1.228-1.606l-1.179-1.599l1.151-0.748
+ l-0.455,0.63l0.934-0.354l-1.054-0.275l-2.592,0.433l-0.083-0.629l-2.498-0.157l-2.496-0.157l-0.524-0.588l0.716-0.587l-1.836,0.705l-0.701-0.274l0.619-0.547l-0.114-0.117l-0.829-0.039l0.453-0.195l0.132-0.507l0.769-0.155l-2.814,0.545l0.107-0.234l-0.908,0.118
+ l1.458-0.779l-1.933,0.857l-1.043,0.43l0.435,0.234l-0.673,0.313l0.329,0.196l-2.249,1.098l-1.07-0.157l-1.199,0.629l-0.107-0.236l-0.367,0.394l-0.564-0.039l-0.877,0.473l0.769-0.512l-2.584,1.064l-1.278-0.197l2.609-1.025l-1.624,0.236l3.301-2.432l3.505-0.585
+ l0.813,0.078l-0.414-0.624l1.531-0.7l-2.389,0.505l-3.43,1.052l-3.403,1.37l-0.634,0.785l-0.854,0.197l-4.067,1.695l0.986,0.633l-4.736,1.985l-5.251,1.916l-6.07,2.206l-0.494,0.523l-0.641,0.161l-2.243,0.605l-0.423,0.161l-1.638,0.121l-2.414,0.404l0.791-0.121
+ l-1.146,0.041l-2.3,1.092l-0.279-0.243l-1.109,0.566l-0.406-0.243l-0.279,0.202l5.169-2.262h1.633l-0.003,0.443l0.419-0.363l0.774,0.04l0.455-0.805l4.966-1.446l3.141-1.721l0.999-0.319l1.902-1.394h0.431l-0.51-0.04l3.208-1.864L120.41,64l-0.17-0.476l1.33-0.475
+ l-0.643-0.08l-2.339,1.506l-0.018-1.071l-0.952-0.158l-3.877,0.634l1.217-0.951l-0.031-0.079l0.704-0.711l1.284-1.456l1.999-1.529l-1.971,1.097l-3.282,0.904l-0.799-1.648l1.524-0.782l0.773,0.352h1.413l-0.428-0.391l0.785-0.078l-2.167-0.312l-0.073-0.234
+ l1.996-1.012l-2.174,0.817l-0.378-0.778l1.121-0.349l-0.207-0.31l1.005-0.233l3.114-1.275l0.84-0.385l-0.314,0.039l2.091-1l1.573-0.383l-0.73,0.46l4.492-1.072l3.057-0.688l0.944-1.408l0.744-0.265l0.936-0.908l-4.133,1.211l-0.639-0.378l-4.866-0.039l0.392-1.397
+ l1.287-0.188l-1.958-0.714l5.671-1.422l4.481-0.856l-1.633,0.894l3.831,0.262l1.314-0.112l-0.784-0.523l0.381-1.189l0.172,0.817l2.783,0.037l-2.131-0.037l0.777-0.854l-2.805-0.444l0.592-0.554l-1.424-2.201l2.074-1.091l3.381-0.145l4.043-1.372l4.053-1.468
+ l3.864-0.712l-0.544,0.819l0.938-0.57l0.142-0.355l1.597-0.46l0.869,0.142l4.648-1.095l1.136,0.176l-1.03,0.671l1.701-0.283l0.504,0.248l1.084,0.071l1.741,0.39l0.278,0.284l4.621,0.32l3.521,0.356l3.539,0.357l3.797,0.932l-3.143,2.538l-3.091,2.571l-3.045,2.604
+ l-3.007,2.633l-2.974,2.661l-2.939,2.687l-2.902,2.712l-2.862,2.737l3.62-0.118l-0.85,0.627l0.47,0.433l-0.1,2.367l1.71-0.593l1.406-0.75l2.596-0.788l0.544,2.527l-0.487,2.226l-0.432,2.239l0.945,1.144l0.969,1.147l-1.289,1.533z M129.017,66.307l-1.597,0.399
+ l-0.45,0.28l-2.404,0.72l-1.234,0.761l1.028-0.802l-0.557-0.12l-0.31,0.44l0.07-0.801l1.568-0.918l0.099,0.838l0.764-1.038l0.881-0.16l0.575,0.04l0.399-0.518l0.607,0.239l0.235,0.04l-0.218,0.438l0.542,0.159z M114.868,53.002l-2.479,0.728l-0.855-0.996
+ l0.291,0.421l-1.768-0.191l0.577-0.803l1.948-0.038l2.286,0.88z M160.5,73.104l-0.373,0.324l-0.119-0.891l-0.9-0.526l0.808-0.202l0.509-0.687l-0.804,0.162l0.898-0.766l-0.168-0.725l0.794-0.362l0.325,1.934l-0.39-0.201L161,71.688l-0.499,1.416z M65.433,162.875
+ l-1.96,1.244l-0.705-0.344l0.763-2.83l1.902,1.93z M162.923,66.427l0.263-1.076l-0.856,1.315l-1.834,1.08l0.467-0.641l1.511-2.272l0.649,0.159l-0.199,1.434z M100.989,73.469l-2.917,0.446l-0.917-0.244l3.104-1.094l0.73,0.891z M110.786,60.723l-1.119,0.275
+ l-1.711-0.511l2.854-0.706l-0.024,0.941z M160.874,66.667l-1.188-0.679l-0.373,0.759l-0.526-0.918l0.655-0.04l0.222-0.558l1.217-0.438l-0.396,0.676l1.244,0.12l-0.517-0.04l0.132,0.319l-1.321-0.398l0.602,0.638l0.251,0.559z M158.523,69.633l0.465-2.407
+ l1.173-0.56l-1.638,2.966z M162.618,68.628l-0.452-0.121l-0.455,0.643l-0.579-0.361l0.592-1.163l1.096,0.641l-0.202,0.361z M163.998,71.285l-1.393,0.808l0.781-1.01l-0.571,0.404l-0.543,0.444l1.235-1.453l0.709,0.484l-0.218,0.323z M161.012,68.749l-1.699,1.085
+ l0.865-1.606l0.834,0.521z M93.009,75.297l-0.707,0.489l-3.366,0.856l2.63-0.856l-0.003-0.57l1.446,0.081z M130.92,64.834l-2.537,0.358l2.029-0.716l0.508,0.358z M63.455,159.832l-1.009,0.342l-0.128-1.201l1.137,0.859z M261.656,107.331l-2.45,0.547l-2.453,0.548
+ l3.818-1.179l-0.251,0.462l1.336-0.378z M57.018,156.185l-0.541,0.688l-0.412-0.73l0.953,0.043z M88.939,76.274l-4.305,1.716l2.688-1.186l1.617-0.531z M163.03,68.893l-0.687-0.018l0.618-0.601l0.069,0.619z M65.614,80.372l-0.748,0.37l-0.376-0.411l1.124,0.041z
+ M60.179,158.287l-0.53,0.043l-0.381-0.729l0.911,0.686z M162.562,69.135l-0.458,0.482l-0.403-0.241l0.861-0.241z"/>
+ <path style="stroke:none;" d="M296.138,297.015l-2.319-1.711l-2.32-1.707l-1.362-0.813l-0.623-0.043l-2.69-2.092l-1.153,0.299l0.021,0.127l-0.162,2.777l-0.132,2.777l0.177,0.385l-0.2,2.059l1.158,2.152l2.754,1.123l3.617,0.607l1.996-0.822l1.521-2.158
+ l-0.515-1.76l0.233-1.201z"/>
+ <path style="stroke:none;" d="M549.243,113.943l1.369,2.537l2.117,0.35l2.119,0.35l0.506-1.678l0.488-1.67l-0.582-1.013l-1.498-0.875l-0.973-1.055l2.203-1.92l2.166-1.9l1.578-1.326l-1.531-1.879l-1.949,1.413l-1.973,1.418l-2.006-1.004l-2.004-1.001l-0.178-2.007
+ l-2.281-1.607l-2.178-0.134l-2.178-0.136l-2.176-0.136l-2.174-0.135l-2.154-2.499l-2.701-1.378l-2.689-1.382l-2.551,0.938l-2.564,0.937l0.602,2.241l0.594,2.235l0.58,2.236l0.564,2.247l2.949,0.64l-0.477-1.406l1.043-0.582l1.721-1.813l2.725,1.832l1.627,2.575
+ l2.857,1.098l1.762,0.902l3.621,2.282l3.625,2.308z"/>
+ <path style="stroke:none;" d="M787.272,253.078l0.059-1.201l-0.244,0.086l-0.475-0.816l-0.361,1.975l1.021-0.043z M788.194,255.566l-0.869-0.131l-0.094-1.459l0.963,1.59z M789.233,254.544l-0.195,0.709l-0.164-0.072l0.359-0.637z M790.015,261.464l-0.346,0.43
+ l0.256-0.668l0.09,0.238z M789.497,256.501l-0.434-0.516l-0.072-0.184l0.506,0.699z M789.954,263.279l0.031,0.014l-0.459,0.047l0.428-0.061z"/>
+ <path style="stroke:none;" d="M270.684,188.181l-0.171-0.387l-0.503-0.557l-0.869,0.043l0.457-0.086l-0.647-0.686l2.3-0.773l-2.471,0.043l-2.471,0.043l0.89,0.301l-2.313,1.029l-3.078-1.029l-2.131,0.021l-2.131,0.021l-0.778-1.631l-2.504-0.986l-0.945-1.758
+ l-0.632,1.072l1.088,0.686l-0.53,0.043l-2.974,1.244l-0.444,0.516l0.618,3.258l-1.003,1.244l-1.234-1.758l1.211-2.188l-0.668-2.102l1.503-1.158l-1.536,0.471l-1.26,2.146l-1.25,2.145l-0.978,2.145l0.904,0.043l1.152,2.873l-0.067,1.629l1.627,0.902l1.754,0.086
+ l1.754,0.086l2.038,2.273l1.97-0.131l1.971-0.127l-0.54,2.166l-0.535,2.166l1.018,3.217l-0.745,1.201l1.292,1.973l0.542,2.102l1.81,1.115l1.251-0.129l0.264,0.215l2.325-1.76l1.955-1.801l0.39-0.729l-1.43-0.516l-0.661-2.873l-0.725-1.33l2.252,0.771l2.066,0.688
+ l0.399-0.9l1.892-0.795l1.893-0.793l0.64-1.373l-0.188-0.043l-1.306-2.016l0.814-1.93l1.657-0.986l-0.947-1.072l2.111-2.016l-0.357-0.559l-2.262-0.086h-1.435l0.533-0.129l0.765-1.201l0.585-0.471l-1.376-1.33l-0.835,0.129l-0.845-0.516l0.086,0.602z
+ M267.152,184.894l-1.104-0.256l1.104,0.24l0,0.016z"/>
+ <path style="stroke:none;" d="M645.267,161.074l0.266,0.986l-1.281,0.387l-0.408,0.729l2.93,2.102l1.416,1.715l1.414,1.717l1.004,1.5l1.947,1.588l-0.074,0.557l0.686,0.902l0.342,2.059l0.09,2.316l0.184,1.994l0.17,1.994l-2.113,1.115l-1.217,0.686l0.623,1.932
+ l-1.645-0.258l-0.648,0.344l-1.32,0.9l1.42,1.287l-0.152,3.131l1.07-0.344l1.756-1.844l-0.686-1.072l1.51,0.986l-0.867-1.459l0.828,0.473l-0.502-0.645l0.971,0.344l-0.879-0.6l0.854-0.174l0.021-0.643l1.574,0.344l1.615-1.395l1.604-1.395l0.316-1.029l-0.02-0.943
+ l0.211-0.857l-1.051-3.496l-1.102-3.496l-1.535-1.629l-1.867-1.545l-1.422-1.416l-1.426-1.414l-0.561-1.244l-1.648-2.23l0.822-2.359l0.889-2.143l-0.004-0.258l1.197-0.645l1.256-0.943l-2.227-0.898l-0.98-0.773l-0.322-1.672l-2.713-0.9l-0.945-0.129l-1.344,1.459
+ h-0.74l-0.408,0.215l-0.576-0.131l-0.883,0.045l-0.492,0.385l-1.213-0.385l-0.531,0.6l1.795,1.715l0.361,1.115l1.594,1.414l1.146-0.514l1.252,1.115l0.67,0.729z"/>
+ <path style="stroke:none;" d="M373.596,158.244h2.2h2.2h2.2h2.2l0.043-2.166l0.045-2.166l2.244-1.113l0.069-3.283l0.077-3.285h1.839h1.839h1.839h1.839l0.062-3.307l0.02-0.986h-2.482h-2.481h-2.481h-2.481l-1.254,2.66l-1.737,1.59l-0.831,1.977l-0.83,1.973
+ l-1.755,2.061l0.414-0.258l-1.491,3.154l-1.491,3.15l-0.075,1.457l0.26-1.457z"/>
+ <path style="stroke:none;" d="M23.22,248.359l-1.431-0.43l1.35,0.602l0.081-0.172z"/>
+ <path style="stroke:none;" d="M508.235,170.232l-0.768,0.764l-0.076,3.031l1.043,3.238l1.027,3.238l2.85-0.215l2.895-1.629l2.33-0.793l2.324-0.795l1.766-0.729l1.717-0.826l1.715-0.826l1.713-0.824l1.707-0.826l0.084-1.029l1.994-1.668l-1.539-2.506l-1.543-2.506
+ l0.188-1.084l-1.773,0.473l-1.773,0.473l-1.775,0.471l-1.775,0.471l-1.246,1.705l-1.252,1.705l-1.258,1.705l-1.266,1.703l-0.162-2.701l-2.117-0.934l-2.115-0.934l-2.535-0.268l-0.377,2.115z"/>
+ <path style="stroke:none;" d="M439.2,96.021l-0.402-1.463l0.244-0.879l0.816,0.125l2.291-0.419l1.67-0.545l1.223,1.058l-1.973,0.439l0.836,1.065l-2.361,0.799l-0.963-0.667l-1.381,0.486"/>
+ <path style="stroke:none;" d="M478.638,216.705l0.482-2.896l0.471-2.895l1.451-1.672l1.447-1.674l-1.184-1.158l0.168-2.23l-1.607-1.521l-1.607-1.523l-0.9,0.602l-1.283,0.172l-1.83-1.074l-0.574-0.6l-1.178-0.301l-1.797-0.191l-1.801-0.193l-0.824,0.771h-1.627
+ l-2.338,0.814l-1.021-0.129l-1.008,1.502l-2.145-0.623l-2.145-0.621l-2.355-1.33l-1.875,2.316l0.127,1.93l-0.631,2.23l-0.332,1.932l-0.336,1.93l-0.338,1.93l-0.342,1.93l-1.574,2.102l-1.578,2.102l-0.313,1.994l-0.313,1.996l-1.732,1.693l-1.732,1.693
+ l-0.221-1.158l-1.363,0.129l-0.646,0.773l-1.172-0.387l-1.063,0.773l-0.201,2.014l-0.758,0.174l0.377,0.471l1.854-0.258l1.938,0.076l1.938,0.074l1.938,0.076l1.938,0.074l0.906,2.424l0.902,2.424l1.58,0.6l2.803-0.557l0.477-2.273l2.305,0.172l-0.082,0.557
+ l2.98,0.428l0.074,2.961l0.07,2.959l0.746,2.66l0.059,1.029l1.871-0.408l1.875-0.408l0.84,1.244l1.852-0.258l0.285,0.773l3.025,1.115l0.852-0.988l0.992,0.988l1.404,1.029l1.848,2.488l0.941-0.045l0.557,0.215l0.471-3.258l-0.736,0.814l-2.18-1.545l0.186-2.209
+ l0.182-2.209l-0.447-2.188l1.244-1.93l2.086-0.473l2.086-0.471l-0.969-1.844l-0.973-1.846l-0.801-2.145l-0.068-1.887l-0.072-1.887h-0.037l-0.393-2.104l-0.396-2.102l-0.074-0.172l-0.076-0.127l-0.113-0.043l0.543-1.502l0.994-1.844z"/>
+ <path style="stroke:none;" d="M465.509,246.427l-2.258,0.086l-2.258,0.086l-0.047,2.039l-0.049,2.035l-0.055,2.039l-0.057,2.037l1.609,1.887l1.604,1.887l1.543-0.342l2.439,0.771l3.184,0.73l2.129-1.93l2.395-1.975l0.695-1.543l1.684-0.43l1.684-0.43l-0.398-1.373
+ l1.713-0.697l1.713-0.695l1.717-0.697l1.713-0.697l-1.01-1.158l1.174-2.488l0.357-0.643l0.1-1.994l0.092-1.996l0.514-0.898l-1.344-2.104l-0.176-0.6l-2.348-1.352l-2.352-1.352l-0.143-0.428l-2.086,0.471l-2.086,0.473l-1.244,1.93l0.447,2.188l-0.182,2.209
+ l-0.186,2.209l2.18,1.545l0.736-0.814l-0.471,3.258l-0.557-0.215l-0.941,0.045l-1.848-2.488l-1.404-1.029l-0.992-0.988l-0.852,0.988l-3.025-1.115l-0.285-0.773l-1.852,0.258l-0.84-1.244l-0.037,2.66l-0.041,2.658z"/>
+ <path style="stroke:none;" d="M476.501,270.06l0.178,0.172l2.135,0.299l2.137,0.301l1.4-1.371l1.404-1.373l0.473-2.059l0.816-2.229l-0.262-2.316l0.439-2.188l-0.006-3.131l-2.17-0.922l-2.17-0.922l-1.164,0.041l0.039-0.986l-1.684,0.43l-1.684,0.43l-0.695,1.543
+ l-2.395,1.975l-2.129,1.93l-3.184-0.73l1.307,2.51l1.301,2.51l1.66,1.285l0.387,0.557l0.566,0.73l0.801,2.145l1.963,0.898l0.535,0.473z"/>
+ <path style="stroke:none;" d="M449.491,95.335l2.877-0.61l1.473,1.526l1.48,1.521l0.955,0.665l0.637-0.083l0.678,0.291l0.189,0.788l-0.195,1.657l0.963,1.284l-0.834,1.203l-1.84,0.419l-2.125,1.325l-0.539-1.288l-1.314-0.416l-0.359,1.747l-0.643-0.625
+ l-2.027-1.102l-2.018-1.099l0.738,0.208l-0.51-0.261l0.092-0.272l2.762,1.584l0.344-0.462l0.568-1.584l-0.787-2.043l-0.014-1.916l-0.551-2.458"/>
+ <path style="stroke:none;" d="M450.042,97.793l-3.367-0.796l-2.629,0.2l-0.834,0.397l0.428,1.323l0.617,0.99l2.617,2.044l-0.197,0.264l0.4,0.272l0.092-0.272l2.762,1.584l0.344-0.462l0.568-1.584l-0.787-2.043l-0.014-1.916z"/>
+ <path style="stroke:none;" d="M457.714,103.577l-1.84,0.419l-2.125,1.325l0.305,0.711l1.07,1.845l3.941-1.259l-0.42-1.712l-0.932-1.329z"/>
+ <path style="stroke:none;" d="M446.677,102.214l-2.061-1l-2.133-1.533l0.42-0.332l-1.924-2.577l-1.266,1.333l-0.514-2.084l1.381-0.486l0.963,0.667l2.361-0.799l-0.836-1.065l1.973-0.439l1.352,1.163l2.697,0.334l0.4-0.059l0.551,2.458l-3.367-0.796l-2.629,0.2
+ l-0.834,0.397l0.428,1.323l0.617,0.99l2.617,2.044l-0.197,0.264z"/>
+ <path style="stroke:none;" d="M630.846,411.373l1.46,0.243l2.374-0.132l-0.747-0.879l1.825-0.436l-1.38-0.248l1.121-0.502l0.084-0.309l1.689-0.342l-1.98-0.23l3.132-0.521l-0.672-0.234l2.871-0.83l0.794-0.725l5.469-0.305l5.544-0.184l-0.199-0.898l0.8-0.344
+ l-1.794,0.469l0.15-0.313l-0.845,0.125l1.726-0.629l-0.838-0.221l1.175-0.381l0.341-1.125l1.227-0.584l1.878-0.982l2.824-1.092l3.169-0.301l-2.293-0.434l0.521-0.738l2.674-0.135l2.967-0.438l0.68-0.744l2.718-0.238l0.116-0.51l6.65-0.922l3.107-1.031l1.982-1.004
+ l0.533-0.418l1.757-0.451l1.843-1.299l-1.144,0.527l-1.322-1.549l-2.961-0.391l-2.979-0.391l-0.629-0.178l-1.568,0.035l0.71-0.463l-1.787,0.107l0.151-1.541l-4.588-1.119l-2.438,0.254l1.132-0.979l-0.295-0.838l-1.704,1.092l-4.015-0.326l0.897-0.473l-5.045-0.109
+ l1.31-0.658l-3.805-1.064l2.111-0.922l-1.99-0.072l-1.038-0.26l-1.203-0.148l-4.851-0.908l-2.446-0.457l-2.461-0.457l-4.971,0.076l-4.968,0.074l-2.948,1.637l-2.328,0.146l-0.166-1.039l-1.294-0.633l-2.283,0.67l-2.651,0.074h-2.065l-4.609,0.41l-4.592,0.406
+ l-0.848-0.928l-2.386-0.26l-0.767-0.299l-0.603-1.307l-4.161,0.523l-2.179,0.896l-3.233,1.004l-3.579-0.967l-3.626-0.971l-4.545,0.225l-1.869,0.299l0.604-1.086l-1.355,0.264l-1.025-0.039l-1.029,1.271l-5.858,0.52l-0.233-0.818l-0.438,0.484l-2.042,0.186
+ l-4.602,0.279l-4.589,0.279l0.321-1.564l-1.544,1.266l-1.479,0.557l-4.126,0.391l-4.112,0.387l-0.957-0.037l-1.345,0.443l-0.354,0.553l-3.441,0.844l-3.419,0.84l-1.333,0.943l-3.882,1.268l-2.63,0.574l-5.386,1.145l0.313,0.676l-2.526,1.486l0.051-0.6
+ l-3.041-0.461l0.138-1.029l-0.912-0.5l2.03-0.467l-1.057-0.502l1.046-0.504l1.72-0.252l-1.22-0.254l1.883-0.471l-1.449,0.072l1.058-0.289l1.65-2.336h-0.728l-4.968-0.258l-4.98-0.258l-3.438-0.258l-3.447-0.258l-3.293-0.814l1.318-0.518l-2.184-1.529l-2.658-0.299
+ l-6.119,0.936l-1.082,0.967l0.841,0.148l-0.17,0.666l-2.282-0.334l-1.864,0.148l1.362,0.592l-1.676,0.664l-2.272-0.553l-1.337,0.406l-4.097,0.99l-3.764,0.969l-3.731,0.963l-1.086,1.375l-1.786,1.041l-0.739-0.467l-1.553,0.072l-1.1-0.395l-2.175-1.916
+ l-0.982-0.51l-1.59,0.799l-2.45,1.447l-3.713,0.547l-3.692,0.547l-3.671,0.545l-3.65,0.543l-4.001-0.518l-4.024-0.518l-4.69,0.268l-4.677,0.27l-1.102,0.889h-1.242l-4.159-1.354l-0.01,0.82l-1.094-0.605l-1.48,0.641l-5.108,0.533l-3.214,0.813l-3.183,0.809
+ l-1.469,0.176l0.211-0.385l-1.178,0.07L407.606,391l-6.047,0.174l1.018-1.057l-0.587-0.391l-2.972,1.484l0.597,0.49l-1.622,0.42l-0.926-1.191l-1.305-0.494l-1.045,0.035l-0.842,1.23l-1.201-0.49l-1.049-0.037l1.693,1.541l-1.324,0.904l-3.281,0.482l0.642,0.449
+ l-2.78,0.652l-1.012,0.957l-0.043,0.342l2.992-0.238l0.901,0.135l-3.314,1.053l-4.452,1.313l0.585,0.234l-5.928,0.867l-5.845,0.859l0.604,0.166l-1.664,0.197l-0.014,0.557l-4.713,1.361l-4.865,1.209l0.12,0.377l-0.835,0.406l0.135,0.342l0.427,0.555l9.047,0.76
+ l-0.937,0.688l1.27,0.852l-0.572,0.547l-7.198,0.115l-4.056,1.08l-3.965,1.047l-7.519,0.344l-7.465,0.342l-3.206-0.052l-6.543,0.024l-3.709-0.195l-7.249-1.029l-9.745-0.828l-3.934-0.934l-4.811-0.461l4.958-0.35l-0.328-0.531l-7.146-0.449l0.807,0.861
+ l-2.513-1.162l-0.52-0.486l2.464-0.029l2.712-0.646l-6.829-1.076l-6.933-1.094l-0.776-0.74l4.284-1.107l4.395-1.119l6.767,0.412l6.729,0.412l4.028-0.875l4.101-0.881l-1.189-0.1l0.93-0.336l-1.517-0.234l1.005-0.201l-0.307-0.402l2.039,0.469l-0.948-0.975
+ l2.283-0.203l-0.943-0.34l-0.626-0.645l0.881-0.408l-1.526-0.48l-0.929-0.479l1.758,0.137l0.17-0.275l0.692,0.275l0.246-0.584l-1.112-0.104l-0.226-0.242l-1.815-0.346l0.566-0.414l0.075-0.766l-2.121-0.174l0.824-0.314l-0.432-0.875l-0.654-0.951l-0.861-0.143
+ l-0.04-0.637l-1.676-0.57l0.604-0.178l-0.96-0.643l-0.581-1.041l-1.987-0.613l-0.343-0.615l-1.034-0.471l0.771-0.51l-1.468,0.4l-1.34-0.072l-0.411-0.584l0.179-0.475l-1.453,0.037l-0.578-1.283l0.697-0.516l-0.021-0.555l1.322-0.371l-0.536-0.369l0.342-1.342
+ l1.934,1.154l-0.069-0.297l-0.648-0.596l1.77,0.074l0.947-0.26l0.888-0.561l-1.237,0.262l-1.812-0.15l0.507-0.973l-0.684-0.451l3.123-1.926l0.023-0.379l1.103,0.189l-0.003-0.381l1.602-1.523l1.085,0.076l-0.717-0.955l-3.541,1.527l-1.968,0.572l-2.17,1.365
+ l-0.82,0.604l-1.17,0.076l0.398,0.941l-0.955,0.639l0.626,0.486l-1.391,0.225l-0.423,0.111l0.401,1.006h-0.878l0.54,1.742l-1.593-0.889l-0.295,1.219l1.422,0.037l0.423,0.699l0.468,0.916l-0.444,0.146l0.885,1.092l0.24,0.361l0.28,0.615l-2.708,0.289l1.778,1.65
+ l2.741,2.393l2.748,2.361l-1.986,1.348l-5.967,0.84l-5.885,0.838l0.211-0.547l-2.622,0.104l-0.646-0.412l-3.336-0.893l0.74,0.619h-1.489l0.711,1.094l-3.737-0.512l-2.387-0.172l-2.333-0.787l-0.299,0.137l-4.333-0.309l0.329-0.518l-2.552-0.416l0.923,0.623
+ l-1.75,0.895l-6.188-0.654l-0.487,0.447l-5.016-0.205l-7.19-0.346l-1.776-0.447l0.608,0.861l7.215,0.891l-0.451,0.342l-5.247-0.342l0.587,0.547l2.427,0.135l1.058,0.883l2.151,0.203l0.476,0.506h-1.409l-0.341,0.402l2.643,0.736l-7.69-0.904l-1.639,0.303
+ l-1.418-0.773l-2.25,0.201h-0.41l-2.67-0.303l-2.43-0.744l-0.468,0.406l1.07,0.775l-2.605-0.201l-0.998-0.541l-0.784-0.711l-2.428-0.34l0.637,1.152l-4.268-0.201l-5.045,0.227l-5.025,0.229l-5.008,0.227l-4.989,0.227l-4.288-0.201l-3.274-0.168l-0.804,0.539
+ l-0.848,0.838l-2.411,0.031l-3.582,0.768l-3.51,0.76l2.277,0.723l-4.796-0.426l-0.852,0.393l6.942,0.588l0.259,0.355l0.567,0.389l0.596,0.385h-0.96l-2.412,0.701l-5.628-0.541l-1.753-0.225l-5-0.191l-0.181,0.289l-1.853-0.193l3.025,1.492l2.97,0.281l3.364,0.094
+ l-1.59,0.99l2.965,0.699l7.063,0.672l6.987,0.664l4.598,1.01l2.936,0.396l0.378,0.889l-8.311,0.082l-8.188-0.33l0.208,0.357l5.224,0.566l0.499,0.506l6.662,0.235l423.916-0.269z M350.054,407.843l-1.142,0.379l0.308,0.432l-5.591,0.555l-5.528,0.547l-3.443-0.504
+ l0.578-1.482l0.612-1.541l5.636-1.857l5.427,0.721l0.263,0.709l-2.367,0.459l3.107,0.031l-0.518,0.662l2.363,0.506l0.295,0.385z M302.325,391.701l0.218,0.943l-0.654,0.801l-1.718,0.414l-3.828-0.414l2.719-0.383l-0.686-0.418l-1.428-0.803l-1.499,0.07
+ l-1.124,0.07l0.341,0.559l-1.49,0.07l-3.274-1.295l1.321,0.314l-0.527-0.666l2.645,0.525l-1.114-0.561l2.115,0.035l-0.834-0.318l2.219-0.459l1.301,0.178l-1.929-1.17l1.708-0.463l-2.65-0.824l-1.339-1.367l1.677-0.977l1.595,1.158l3.091,2.115l3.143,2.863z
+ M304.191,403.613l-1.792,1.01l-6.878-0.629l-1.597-0.35l-2.031-0.287l0.099-0.643l5.974,0.322l5.945,0.32l0.28,0.256z M185.534,407.695l-6.889-0.414l-2.93-0.809l1.855-0.578l7.964,1.801z M259.888,393.097l-2.593,0.416l-4.41-0.486l-4.429-0.486l2.99-0.314
+ l2.341,0.139l-0.784-0.488l1.696,0.244l0.271,0.314l0.22-0.105l0.831,0.035l0.48,0.453l0.333-0.836l0.995,0.383l-0.234,0.488l1.637-0.035l-1.274,0.141l1.931,0.139z M327.72,408.25l0.325,1.533l-5.238-0.504l-4.161-0.453l6.854,0.113l1.067-0.922l1.153,0.232z
+ M314.823,405.308l-2.925,1.795l0.799,0.475l-2.152-0.148l-0.991-0.898l5.269-1.223z M226.684,396.195l-1.218,1.018l-4.173-0.371l-0.96-0.783l6.351,0.137z M219.643,396.466l-1.003,0.34l-4.374-1.158l-0.386,0.104l-1.704-0.789l2.074-0.035l0.97,0.207l1.34,0.617
+ l0.915,0.205l2.168,0.51z M660.959,403.484l-4.97,0.604l-0.168-0.316l1.39-0.67l3.748,0.383z M294.703,394.654l0.132,1.166l-2.908-0.893l0.207-0.48l2.413,0.068l0.156,0.139z M296.659,380.861l0.506,1.148l-1.395,1.326l-0.357-1.586l1.246-0.889z M302.465,376.207
+ l-1.966,0.453l-0.038-0.756l0.89-0.189l1.115,0.492z M312.001,375.296l-1.934,0.342l-0.25-0.418l0.478-0.801l0.388,0.535l1.317,0.342z M289.372,393.998l-0.751,0.621h-1.599l1.063-0.482l1.287-0.139z M289.554,387.837l-2.376,0.035l-0.18-0.467l2.062,0.18
+ l0.495,0.252z M314.672,373.273l-2.516,0.078l2.362-0.23l0.153,0.152z M308.837,370.347l-2.302,0.426l2.133-0.541l0.169,0.115z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M451.971,108.191l1.169-2.161l-0.012-0.126l-1.071-1.846l-0.843-1.999l-1.314-0.416l-0.36,1.747l0.134-0.041l0.324,3.355l1.471,2.17l0.503-0.684z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M413.044,101.478l-0.62,0.042l0.036,0.207l0.517,0.042l0.067-0.291z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M433.855,90.698l3.19,1.006l0.815,0.125l2.291-0.419l1.671-0.545l0.251-0.21l0.697-1.679l0.187-0.167l0.728-0.839l-1.301-1.929l-3.209-0.335l-1.259,0.88l-1.033-0.503l-1.631,1.384l0.323,1.342l-0.585,0.251h-2.372
+ l-1.699,0.083l-0.613,0.42l-1.759-0.378l-0.034,0.672l0.158,0.503h0.168l1.6,0.461l0.002,0.042l1.216,0.125l2.198-0.292z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M354.96,113.939l1.186-0.217l-1.496-0.219l0.311,0.436z M349.435,111.808l0.731,0.389l-1.042-0.129l0.311-0.26z M352.394,111.417l-0.707,0.043l0.172-0.304l0.535,0.261z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M456.263,98.08l-0.479-0.621l-0.195,1.657l0.962,1.284l-0.834,1.203l0.932,1.329l0.42,1.713l2.223-0.293l3.582,0.418l0.823-0.668l0.371-0.377l0.384-0.541l2.991-0.126l-0.898-1.081l0.398-0.913l0.517-1.534l0.566-0.869
+ l-3.972-0.829l-3.191,0.994l-2.302-0.373l-2.298-0.373z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M471.468,74.322l-2.566-2.191l-0.422-2.802l-3.017-0.525l-3.007-0.525l-2.672,0.301l-2.904,1.961l-2.953,1.969l1.62,3.138l-1.241,1.68l1.075,0.74l3.429,0.027l3.43,0.027l3.407,0.637l3.419,0.639l-0.117-0.934
+ l2.357-1.211l-0.524-2.225l0.687-0.708z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M483.271,119.355l-2.792,0.83l-1.626,0.781l0.725,1.084l2.442-0.867l-0.06-0.52l1.311-1.309z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M444.315,88.305h2.602l3.188-1.384l3.43,0.042l0.598-1.675l-3.092-0.71l-1.737,0.125l-0.703-0.083l-1.133-0.417l-0.768-0.083l-1.728-1.126l-0.69-0.666l-1.416-0.042l-0.973,0.125l-0.274-0.831l-2.858-0.87l-0.315,0.124
+ l-0.482-0.29l-2.196,0.953l-2.209,0.955l0.428,0.958l2.898,2.675l1.033,0.503l1.259-0.88l3.209,0.335l1.301,1.929l0.63,0.335z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M460.835,62.294l-0.629-2.167l-4.5-0.315l-3.305,0.947l0.292,0.831l1.172,1.31l0.639-0.04l2.719,0.453l2.728,0.454l0.885-1.472z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M461.605,48.36l-0.673-0.757l-0.106-1.996l-2.188-2.573l1.088-1.625l-2.497-1.394l-0.159-1.42l0.11-0.435l-0.115-1.406l-2.745-0.717l-2.331,0.86l-0.564,1.625l-1.002,0.472l-2.164-0.036l-1.896-0.363l-1.907-1.049
+ l-1.068,0.614l4.829,1.964l1.695,3.021l0.825,2.162l0.769-0.149l0.863,0.6l0.421,1.657l-2.983,2.276l-1.184,1.222l-1.496,0.69l0.334,2.583l0.558,2.918l1.974,0.666l0.028,0.353l0.795-0.118l0.649,0.981l0.521-0.314l4.404-0.863l0.948-0.392l2.34-0.039l1.384-1.376
+ l1.362-1.37l1.343-1.364l1.32-1.357l-3.231-1.876l0.807-0.648l-1.058-1.025z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M397.928,118.14v-0.01v-0.012v-0.012v-0.012l-0.001-0.012l-0.008-0.008h-0.035l0.004,0.002l0.002,0.01l0.001,0.01v0.012l0.001,0.01l-0.001,0.012l0.001,0.01l-0.002,0.012l0.001,0.014l0.002,0.01l0.001,0.01l0.006,0.006
+ l0.008,0.002l0.007-0.004l0.005-0.008l0.004-0.008l0.003-0.01l0.001-0.012l0.001-0.012z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M453.929,110.681l-0.546,0.174l0.522,1.256l0.557-0.088l2.333,0.131l1.242,0.522l0.072,0.435l-1.982-0.522l-1.747,0.61l0.146,0.959l1.132,2.271l0.313-0.525l0.983,1.225l0.349-0.523l1.142,0.523l-0.795-2.359h1.237
+ l-0.592-1.135l0.609-0.305l1.068,0.521l0.1-0.871l-2.883-1.953l0.405-0.172l-0.258-0.906l0.847,0.432l-0.489-1.12l-0.936-2.132l0.621-0.424l1.444,1.572l-0.473-0.554l0.901,0.297l-0.15-0.468l0.937-0.042l-1.048-1.06l2.254-0.716l2.484,0.464l0.828-1.555
+ l-0.49-0.92l-0.371,0.377l-0.823,0.668l-3.582-0.418l-2.223,0.293l-1.967,0.629l-1.974,0.631l0.012,0.126l-1.169,2.161l-0.503,0.684l0.974,1.203l1.487,0.604z M464.411,120.402l1.305,0.217l-1.705,0.521l-2.063-0.326l-2.061-0.326l0.226-0.74h0.963l3.335,0.654z
+ M461.248,112.99l-0.029,0.041l-1.667-1.183l-1.663-1.177l1.578,0.654l1.781,1.664z M465.259,110.433l-0.865-0.254l-0.509-0.359l1.19,0.262l0.184,0.352z M452.607,112.232l0.648,0.602l-0.544,0.057l-0.104-0.658z M464.525,111.729l-0.088,0.726l-0.349-0.494
+ l0.437-0.231z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M322.399,45.607l-2.361,0.451l-0.813,0.64l-0.125,0.641l1.503-0.151l-0.76,0.302l-1.049,1.212l1.258-0.455l1.108-0.379l0.349-1.208l0.229,0.565l0.8,0.302l0.231,0.871l-1.077-0.417l0.092,0.492l-2.01,0.456l1.713-0.076
+ l0.564,0.038l-2.813,0.495l0.766,0.267l-0.669,0.648l0.892-0.038l-0.486,0.267l-0.119,0.077l0.904,0.229l-0.953,0.115l1.125,0.345l-0.107,0.576l0.662-0.116l-0.545,0.423l-0.208,0.385l0.726,0.887l-0.058,0.309l0.757,0.039l-0.307,0.503l0.443-0.155l-0.023,0.465
+ l0.228,0.271l-0.654,0.078l0.94,0.116l-0.442,0.233l0.136,0.039l-0.141,0.467l0.938-0.194l0.057,0.506l-0.322,0.233l0.314,0.04l-0.099,0.195l0.782,0.078l1.118-0.195l2.056-0.663l-0.057,0.428l0.928-0.351l-1.28,0.858l0.939-0.117l-0.688,0.704l1.041-0.235
+ l-0.134,0.313l0.73-0.117l-0.784,0.822l1.103-0.51l-1.107,0.706l0.398,0.354l1.589-0.707l1.245,0.549l0.184-0.392l-0.335-0.274l-1.132-0.509l1.859,0.117l0.417-0.274l-0.351-0.313l0.175-0.079l-0.237-0.195l1.015-0.078l-0.984-0.39h0.958l0.016-0.234l-0.016-0.233
+ l0.575-0.117l-0.341-0.427l0.801-0.078l-0.145-0.388l0.657-0.658l0.122-0.193l-0.532-0.734h0.354l-0.658-0.693l1.488-0.5l1.097-0.116l-0.296-0.268l-0.093-0.345h0.792l0.135-0.421l0.479,0.153l-0.219-0.229l0.404-0.077l0.666-0.344l-0.689-0.305l1.406-0.115
+ l-0.309-0.761l-0.991-0.342l1.646-0.341l0.063-1.437l1.671-0.188l-0.122-0.602l1.189-0.225l0.645-0.226l1.877-0.337l-0.244-0.225l1.133-0.896l0.812,0.038l-0.896,0.784l0.947,0.075l2.598-0.598l0.086-0.485l0.84,0.037l1.523-0.372l0.321-0.334l1.592-1.444
+ l2.455-1.177l0.119-0.732l0.267-0.657l1.859,1.022l0.996-0.292l0.854-0.183l0.602,0.037l3.646-0.838l3.615-0.835l1.24-0.507l1.293-0.648l0.768-0.396l1.045-0.431l1.062-0.394l-4.988-0.535l-3.985,0.75l-0.246-0.322l2.883-0.677h-4.144l2.06-0.851l-0.043-0.248
+ l0.323-0.106l3.644-0.282l-0.061-0.633l-0.251-0.07l-3.296-0.176l1.115-0.28l-1.41-0.698l3.198,1.014l2.759,1.021l1.207,1.382l1.339-0.32l0.326-0.532l0.185,0.816l0.76-0.284l0.002-0.815l0.138-1.057l-0.954,0.21l0.462-0.667l-0.602,0.07l-0.469-0.175l0.526-0.454
+ l-3.758-0.835l-0.51,0.243l0.104-0.417l1.361-0.485l-2.318-0.104h-0.947l-0.443-0.208l3.372-0.551l-3.554-0.034l-0.145,0.241l0.043-0.344l0.975-0.309l-0.369-0.274l2.512,0.068l0.768-0.444l-0.308-0.409l1.296,0.306l1.541-0.136l1.158,0.375l-1.979-0.102
+ l3.076,0.547l2.453-0.616l0.168-0.546h-2.15l-0.14,0.273l-0.561-0.816l0.77-0.745l4.187,0.372l-0.27-0.675l-1.746-0.101l-0.305-0.672l-1.572-0.034l1.734-0.334l-1.771-0.434l0.093-0.366l3.767,0.9l-0.209-1.43l-2.793-0.099l3.117-0.33l-1.764-0.165l-0.943-0.328
+ l-0.499-0.098l-0.905-0.62l2.418-0.227l4.246-0.033l-0.119-0.901l-2.419-0.16l-1.136-0.445l2.872,0.063l-2.974-0.601l-0.666,0.569l-0.613-0.348l1.254-1.465l2.224-0.581l1.009-0.574l-0.834,0.09l1.174-1.041l1.786-0.059l0.206-0.553l-3.37,0.553l-0.437-0.379
+ l3.161-0.318l3.217-0.543l-6.042-0.085l8.378-0.617l-0.354-0.304l4.011-0.761l-5.155-0.506l-2.714,0.452l-3.116,0.323l-0.145-0.296l-5.632,1.624l2.075-1.11l1.272-1.045l-2.111-0.157l-0.814,0.448l-4.033,0.564l2.094-0.511l0.52-0.423l-9.906,0.396l2.906-0.684
+ l5.813,0.052l6.643-0.617l-4.67-0.428l0.151-0.347l-13.415,0.247l1.834-0.124l10.249-0.319l-4.096-0.482l-12.757,0.216l0.849,0.266l-1.057,0.245l-0.301,0.173l-3.197-0.271l-4.494-0.098l0.739,0.37l-3.282-0.148l5.709,0.248l2.877,0.529l-2.672-0.354l-0.01,0.125
+ l-4.027-0.176l1.712,0.738l-1.456-0.025l-0.224,0.311l-0.144,0.368l-7.52-1.012l-0.475,0.959l0.061,0.265l-3.412-0.475l-1.545,0.77h-0.459l0.553-1.212l-7.468,0.468l2.266,0.933l-1.939-0.484l-3.313-0.133l-0.053,0.428l-0.538,0.543h-2.745l-0.372,0.553
+ l-0.351-0.388l-7.017,1.55l4.333,0.115l-1.189,0.203l-0.252,0.556l-1.574,0.744l-5.599,0.574l-5.852,0.919l-0.465,0.341l-0.002,0.5l3.147,0.346l-0.548,0.316l-0.262,0.159l2.292,0.127l3.207-0.286l-0.411,0.701l-3.919,0.064l3.065,0.225l-1.301-0.096l-5.542,0.386
+ l1.987,0.194l1.577,0.487l-1.847,0.424l3.867,1.02l-0.57-0.363l1.005-0.099l0.927,0.033l2.582-0.329l1.125-0.033l6.813,1.188l-0.458,0.799l1.458,0.938l0.475,0.471l-0.397,0.439l-0.737,0.406h1.136l0.02,0.884l0.152,0.546l-0.239,0.652l0.493,0.241l-0.22,1.07
+ l-0.894,0.382l-0.583,0.591l1.176,0.035l-2.154,0.699l0.948,0.737l1.902-0.526l0.86-1.5l0.314,1.08l1.048-0.384l-0.426,0.419l1.504,0.35l-1.475,0.28l1.56,0.036l-1.125,0.492l0.766-0.141l-0.441,0.247l1.111,0.423l-0.943-0.106l1.244,0.495l-0.213,0.107
+ l-0.054,0.461l0.214,0.355l-5.178-0.923l-0.417,0.674l5.593,1.32l-0.921,0.466l0.231,0.396l-0.6,0.36l0.205,0.216l0.535,0.217l0.026,0.253l-0.867-0.217l-0.767,0.543l0.658,0.073l-4.35,1.055l0.34,0.292l2.586-0.256l0.854-0.364l-0.775,0.693l0.715,0.402
+ l-3.4-0.366l-0.719-0.073l1.34,0.549l-1.689-0.146l-1.121,0.807l3.208-0.55l-0.367,0.073l1.147,0.183l0.854-0.293l0.678,0.11l-0.881,0.294l1.189-0.037l-0.625,0.22l0.238,0.295l-3.066-0.478l-2.957,0.846l4.029-0.037l0.994,0.369l-1.001-0.222l-4.104,0.259
+ l0.465,0.407l1.63,0.074l-0.907,0.333l-0.228,0.26h-0.509l1.014,0.334l-1.562,0.074l-0.308,0.634l3.088-0.875l3.064-0.871l-0.747,0.371l-5.443,1.787l0.736,0.075l-0.61,0.225l2.68-0.337l-2.385,0.711l0.234,0.187l0.243,0.3l1.161-0.037l2.212-0.301z
+ M324.317,36.897l-3.773,0.684l0.604-0.289l-0.893-0.252l-0.392-0.431l0.211-0.43l-0.11-0.107l1.023-0.643l3.33,1.467z M374.265,30.756l0.309,0.278l-1.205,0.069l0.469,0.521l-3.022-1.007l0.099-0.518l3.352,0.657z M367.482,33.94l0.909,0.708l-4.746,0.497
+ l3.837-1.205z M373.448,29.479l-4.458-0.068l2.161-0.48l0.969,0.412l-1.387-0.103l2.715,0.24z M374.821,30.376l-3.375-0.414l2.051-0.241l1.324,0.655z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M455.169,88.138l-1.634-1.174l-3.43-0.042l-3.188,1.384h-2.602l-0.63-0.335l-0.728,0.839l-0.187,0.167l-0.697,1.679l-0.251,0.21l2.573,2.221l2.698,0.334l3.277-0.669l1.175-0.377l1.641-2.264l1.981-1.973z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M381.622,43.814l-0.235,0.484l-1.659,0.485l-1.22-0.224l-0.194,0.935l-0.1-0.3l-1.515-0.523l-0.522,0.599l-1.122-0.636l-1.044,1.311l-0.907,0.451l-0.771-0.676l0.563-0.45l-2.501-1.418l0.463,0.559l0.268,0.71
+ l-1.291-0.561l-0.512,0.299l-0.121,0.336l0.42,0.188l-0.1,0.075l-1.434-0.112l0.426,0.45l-1.016,0.075l3.922,0.15l-0.582,0.526l0.45,0.377l-3.357,0.415l2.716,0.605l0.805,0.189l-0.385,0.379l0.515,0.038l-0.407,0.342l-1.494,0.571l1.221,0.343l2.504,0.191
+ l3.896,0.688l2.787-0.955l2.764-0.951l1.674-0.947l0.876-0.605l0.497-0.075l-0.726-0.453l0.714-0.226l0.042-0.376l-1.596-0.075l0.412-0.338l-0.782-0.15l-0.109-0.749l0.744-0.747l-1.371,0.298l-1.605-0.521z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M485.642,135.271l0.137-0.152l0.169-2.051l0.16-2.051l0.147-2.051l0.139-2.053l-0.18-1.287l-1.072,0.387l-0.711,2.27l-0.726,2.264l0.973,2.361l0.964,2.363z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M396.575,33.693h-0.645l-1.104,0.671l1.635-0.601l0.113-0.071z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M455.752,66.748l4.032,1.832l2.672-0.301l-1.318-2.79l-1.188-1.724l-2.728-0.454l-2.719-0.453l0.281,2.192l-1.035,0.88l-2.377-1.48l-1.695,0.041l-0.903,3.206l0.563-0.129l3.213-0.411l3.202-0.411z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M428.514,89.859l-0.11,0.503h0.269l-0.158-0.503z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M449.224,70.928l-0.876-0.163l0.792-1.818l-1.23,1.859l-0.67,0.689l-0.479,0.487l3.58,0.264l3.586,0.264l2.953-1.969l2.904-1.961l-4.032-1.832l-3.202,0.411l-3.213,0.411l-0.563,0.129l0.449,3.229z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M421.449,82.659l-0.522,1.125l-0.055,0.334h-0.033l1.129,0.208l-0.008-0.208l-0.511-1.459z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M440.472,118.826l-0.526-0.246l0.289,0.387l0.237-0.141z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M464.204,85.997l-1.771,1.386h0.2l1.474,1.49l1.48,1.49l0.631,2.117l0.632,2.111l1.632,0.042l1.24,0.375l-0.142-1.21l1.714-1.631l-1.622-1.484l-1.615-1.485l-1.607-1.484l-1.601-1.484l-0.646-0.231z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M424.616,98.66l-0.036-0.042l-0.067,0.042l0.002,0.042l0.102-0.042z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M421.426,78.356l1.616-0.904l-0.559-1.026l0.771-1.472l-2.389-0.368l-2.518,1.595l-1.748,2.505l0.663,0.577l-0.714,0.083l0.853,0.289l-1.466-0.042h1.693l2.513,0.166l0.417,0.827l0.607,0.538l0.259-2.767z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M442.966,36.897l0.02,0.107l-0.69,0.577l0.015-1.294l-0.172,0.718l-0.544,0.18l-0.194-0.647l-0.46,0.503l0.19,0.469l-1.237-0.181l0.163,0.325l-0.804-0.217l-0.43,0.578l0.014,0.797l-0.254,0.145l-1.851,0.4l1.885,0.182
+ l-0.329,0.402l-1.288-0.073l-0.174,0.146l-0.272,0.439l-0.048,0.257l-0.577-0.55l-0.499,0.22l-1.198,0.881l1.594-0.22l-0.554,0.257l0.3,0.368l-0.069,0.111l-1.099-0.037l-0.146,0.406l1.284,0.369l-1.511,0.074l-1.297,0.481l-0.834,0.631h0.113l-0.486,0.484
+ l0.353,0.112l1.092,0.112l-1.535,0.523l-0.509,0.599l0.086,0.563l0.046,0.451l0.331,0.151l-2.03,0.717l-0.015,0.151l0.754-0.265l-0.42,0.756l-0.9,0.266l-0.679,0.189l-1.021,0.988l-0.479,0.572l0.702,0.382l0.935-0.687l0.793-0.267l-0.15,0.61l-1.322,0.612h-0.702
+ l-1.301-0.192l-0.188,0.23l-0.874,0.498l-0.469,0.46l0.165,0.269l-0.48-0.154l0.534,0.539l-2.361-0.615l-0.203,0.615h0.796l0.676-0.039l-0.778,0.308l-1.493,0.231l1.122,0.54l-0.167,0.193l-1.062-0.501l0.047,0.347l-0.942,0.116l0.247,0.232l-0.915,0.077
+ l-0.596-0.077l-0.071,0.464l2.475,0.194l-2.491,0.155l0.773,0.699l-0.5,0.194h0.18l-0.34,0.506l2.531-0.273l1.163-0.039l0.229-0.195l0.153,0.623l-0.46,0.351l-1.393-0.273l-2.326,0.273l0.344,0.351l0.008,0.195l-0.359,0.039l1.148,0.156l-0.37,0.509l-0.493,0.509
+ l0.873-0.079l0.353,0.471l0.865-0.902l0.778-0.118l-0.534,0.823l-0.15-0.627l-0.843,1.413l0.246,0.079l-1.049,0.315l-0.093,0.75l0.841-0.276l0.63-0.197l0.054,0.513l-0.152,0.672l0.395-0.04l-1.187,0.119l0.108,1.149l1.6,0.754l2.5,0.12l2.922-2.301l1.276-0.079
+ l0.086-1.302l0.606-0.394l0.455,1.538l0.923,0.474l1.097-2.13l0.232-2.116l0.003-0.625l0.737-0.74l-1.392-0.854l-0.06-2.24l-0.064-2.224l1.561-0.991l1.581-0.152l-0.944-0.949l1.344-2.825l-0.308-0.673l1.606-0.336l0.76-1.339l0.896-2.249l2.279-0.586l0.207-0.803
+ l2.894,0.073l-0.183-1.198h0.826l1.068-0.614l1.907,1.049l1.896,0.363l2.164,0.036l1.002-0.472l0.564-1.625l2.331-0.86l2.745,0.717l0.115,1.406l1.641-0.975l1.13-0.072l-0.021-0.575l-1.002-0.071l-0.926,0.107l-1.315-0.752l3.253-0.321l-1.637-0.818L456.74,34.4
+ l-1.192,0.283l-0.23,1.104l-0.191-0.748l-0.173-0.355l-0.126-0.071l-0.256-0.778l-0.941,0.424l-1.078,1.101l-0.565-1.101l-1.943,1.635l0.816-1.387l-0.492-0.142l-1.229-0.071l-0.101,0.39l-1.844,1.247h-1.197l0.152-0.321l-1.839,0.178l1.063,0.286l-0.194,0.394
+ l-1.071-0.036l-1.142,0.467z M435.665,38.45l0.213,0.544l0.82-0.254l-0.924,0.91l-0.445-0.218l-0.831,0.218l0.42-0.182l0.747-1.018z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M468.205,96.753l0.387-0.873l0.268,0.208l0.908-0.541l-0.045-0.542l-1.24-0.375l-1.632-0.042l-0.632-2.111l-0.631-2.117l-1.48-1.49l-1.474-1.49h-0.2l-3.388,1.092l-3.815-0.378l-0.062,0.042l-1.981,1.973l-1.641,2.264
+ l-1.175,0.377l1.472,1.526l1.48,1.521l0.955,0.665l0.638-0.083l0.678,0.291l0.189,0.788l0.479,0.621l2.298,0.373l2.302,0.373l3.191-0.994l3.972,0.829l0.18-1.907z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M435.02,98.163l-0.005-0.083h-0.138l-0.063,0.083l-0.028,0.084l0.139,0.041l0.096-0.125z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M428.712,16.732h-2.082l-1.619,0.088l0.276,0.745l1.273-0.09l0.148,0.482l-1.063,0.091l1.84,0.857l1.667,0.559l1.066-0.528l1.08-0.523l0.146,0.368l1.797-0.276l0.136,0.524l-3.652,0.654l-0.385,0.44h4.416l-1.738,0.222
+ l0.748,0.317l-2.706,0.223l2.958,0.932l1.172,0.779l0.361-0.423l1.332-1.383l0.767-1.012l0.383-0.625l3.398-0.739l-3.979-0.729l-0.403-0.658l-1.112,0.208l-0.171-0.416l-2.045-0.673l0.304,2.023l-2.586-1.556l-1.041,0.622l-1.175-0.327l0.488-0.177z
+ M440.713,16.118l0.214-0.375l0.458-0.257l0.728,0.229l0.638,0.086l4.111,0.086l1.027,0.494l-1.84,0.886l-4.288,0.209l-3.923-0.418l2.515-0.326l-5.189-0.323l-0.096-0.292l1.343-0.26l0.829-0.23l3.474,0.49z M444.353,20.887l-1.972,0.063l-1.899-0.032l0.424-0.793
+ l-1.117-0.44l3.636-0.031l2.469,0.661l-1.54,0.572z M439.388,19.186l1.726-0.402l0.618,0.558l-2.344-0.156z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M430.037,91.495l0.411-0.504l-0.009-0.167l-1.6-0.461h-0.437l0.11-0.503l0.034-0.672l-1.951-0.294l-2.031,0.168l-0.688,0.377l-0.425,0.294l-1.727,2.642l0.76-0.461l1.123,1.298l1.244-0.125l1.21-0.963l1.325,1.047
+ l0.765-1.004h1.414l0.471-0.671z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M472.914,76.735l-1.608,0.519l-2.357,1.211l0.117,0.934l-3.419-0.639l-3.407-0.637l-3.43-0.027l-3.429-0.027l1.092,2.682l-0.256,1.244l-1.812,2.541l-0.063,0.836l-0.209-0.083l-0.598,1.675l1.634,1.174l0.062-0.042
+ l3.815,0.378l3.388-1.092l1.771-1.386l0.646,0.231l1.601,1.484l1.607,1.484l1.615,1.485l1.622,1.484l1.688-1.048l0.564,0.377l-0.2-1.258l0.375,0.88l1.499,0.335l-2.118,0.21l0.887,0.503l1.672,0.544l1.836,0.293l-2.041,1.379l1.395,0.667l0.93,0.916l0.334,0.998
+ l2.908-1.122l1.342-0.292l1.232-0.708l-1.615-0.126l-1.985-1.504l0.505-1.172l-0.22,0.67l0.545-0.544l2.839-1.048l3.173-1.133l1.04-0.168l0.716-1.446l1.638-0.766l-1.348-3.58l-3.002-0.948l-2.989-0.946l-1.303,0.276l-2.589-2.234l-2.574-2.222l-0.347-0.871
+ l-3.166-0.345z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M403.188,70.766l1.488-0.632l0.386-0.62l0.685-0.456l-0.313-0.473l-2.693-0.322l1.578-0.523l-0.932-0.362l0.598-0.201l2.002-2.683l-3.774-0.041l-0.705-0.199l0.534-0.319l1.55-1.67l-3.029-0.238l-0.611,0.794
+ l-0.212,0.756l-0.655,0.199l-0.156,0.838l-0.011,0.28l-0.048,0.44l-0.665,1.081l0.239,0.241l-0.257,0.201l1.289-0.281l-0.037,0.161l-1.092,3.222l1.396-2.097l-0.454,0.443h0.753l0.436,0.121l-0.211,0.685l-0.419,1.252l0.25,1.094l0.959-0.243l2.133-0.446"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M403.652,74.627l-0.611,0.122l-2.595,1.022l0.448,0.082l0.591,0.819l-1.814,1.314l-0.245,0.617l1.973,0.289l0.836,0.454l1.322-0.382l-0.312-1.819l0.193-1.536l0.214-0.981"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M398.614,72.104l-1.241,0.813l-1.152-0.609l-0.519,0.203l-1.579-0.244l1.479-1.703l1.601-0.445l1.213,1.336l0.198,0.649z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M397.974,64.703l0.848,0.554l-0.248,0.318l-1.646-0.576l0.567-0.477l0.479,0.181z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M398.037,62.979l-1.575,0.756l0.313-0.717l1.155-0.397l0.107,0.358z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M407.01,57.572l0.481,0.078l-0.553,1.06l-0.208-0.354l0.125-0.393l0.154-0.392z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M397.9,67.591l-0.057-0.503l0.938,0.107l-0.882,0.396z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M401.462,74.959l-0.686,0.192l0.092-0.626l0.594,0.434z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M398.044,69.035l-0.1,0.123l-0.459-0.444l0.559,0.321z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M396.002,65.143l0.011,0.015l-0.428,0.334l0.417-0.349z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M447.495,93.361l2.877-0.61l1.472,1.526l1.48,1.521l0.955,0.665l0.638-0.083l0.678,0.291l0.189,0.788l-0.195,1.657l0.962,1.284l-0.834,1.203l-1.839,0.419l-2.126,1.326l-0.538-1.288l-1.314-0.416l-0.36,1.747
+ l-0.643-0.625l-2.026-1.101l-2.018-1.099l0.738,0.208l-0.51-0.261l0.091-0.272l2.763,1.584l0.343-0.462l0.568-1.584l-0.786-2.043l-0.014-1.916l-0.551-2.458"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M448.046,95.819l-3.367-0.796l-2.63,0.2l-0.833,0.397l0.427,1.323l0.618,0.99l2.616,2.044l-0.197,0.264l0.401,0.272l0.091-0.272l2.763,1.584l0.343-0.462l0.568-1.584l-0.786-2.043l-0.014-1.916z"/>
+ <path style="fill:#CCEBC5;stroke:none;" d="M455.717,101.603l-1.839,0.419l-2.126,1.326l0.305,0.711l1.071,1.846l3.94-1.26l-0.42-1.713l-0.932-1.329z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M539.938,122.484l-0.209,0.387l0.004,1.295l0.889,0.689l-0.196,0.471l0.471,2.186l0.453,2.182l2.085,0.727l0.458,0.939l-1.642,2.947l1.863,0.6l1.864,0.6l3.34-0.086l2.349-0.535l2.346-0.535l-0.063-1.154l0.423-2.008
+ l2.116-0.854l0.578-0.727l2.124,0.129l0.192-2.865l1.695-1.459l-1.262-1.461l1.872-0.131l0.385-1.121l0.585-1.906l-1.144-2.223l1.16-1.615l2.563-0.592l2.555-0.59l-0.081-0.568l0.648,0.045h0.035l-1.863-0.219l-0.647-0.045l-1.64,0.088l-2.684,1.398l-0.875-3.1
+ l-0.552-0.088l-0.645-1.088l-1.057,0.392l-0.224,1.569l-1.638,0.785l-0.445,0.48l-1.477,0.043l-1.078,0.219l-0.72-0.48l-2.118-0.35l-2.117-0.35l-0.777,0.744l-0.738,0.787l-0.857,2.01l-1.977,1.049l-0.639,1.35l-1.258-0.217l-2-0.697l-0.433,2.953z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M499.649,105.021l0.903,1.642l0.844,1.357l2.031,0.983l0.044,0.043l0.322,0.429l2.578,1.466l1.655-0.734l-1.564-2.168l0.783-0.944l-0.849-0.359l0.08-2.292l-1.978-0.318l-3.073-0.033l-3.072-0.033l1.295,0.963z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M508.027,110.207l2.162-1.332l0.616,1.375l-0.217,0.518l1.965,1.301l0.241-1.688l0.549-2.998l1.341-0.254l-2.765-1.688l-1.258-1.633l-3.42-0.594l-0.765,1.229l-0.08,2.292l0.849,0.359l-0.783,0.944l1.564,2.168z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M521.027,143.912l-0.121,0.602l0.185-0.344l-0.063-0.258z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M608.693,154.296l-0.147-0.258l0.273,0.9l0.454-0.471l0.026-0.857l0.48,0.771l0.356,0.686l0.542-1.93l-0.138-0.686l-0.662-1.459l-2.442-1.459l0.732-0.041l2.158,1.285l0.817,1.502l1.409,0.258l1.299,2.443
+ l1.288,2.445l-0.33-0.773l0.709-0.514l-0.109-1.543l-0.849-2.252l-0.865-2.252l-1.004,1.889l-0.448-0.516l-0.469-2.059l1.628-1.115l0.371-1.074l-1.146-0.859l-2.381-0.236l-2.381-0.234l-0.823-2.105l-0.581,0.43l-0.762-0.73l-1.443-0.645l-0.057,1.891l1.685,1.631
+ l-0.952,0.473l-0.53,1.031l1.671,1.459l0.223,1.457l0.641,1.973l0.629,1.975l0.008-0.215l0.577,0.686l0.119-0.215l0.134-0.9l0.29,0.215z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M609.584,138.931l-3.185-0.342l-1.465,2.273l0.352,1.031l2.693,0.258l2.099-0.15l2.098-0.15l-0.824-1.33l-0.649-0.816l-1.118-0.773z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M669.632,200.748l0.486-0.986l0.361-1.158l0.029-0.172l-2.112,0.943l1.235,1.373z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M768.069,193.242l0.009,0.027l-0.132,0.098l0.113,0.18l0.022,0.084l0.155,0.074l0.145-0.033l0.006-0.121l0.011-0.047l0.032-0.059l-0.051-0.096l-0.037-0.025l-0.043-0.047l-0.23-0.035z M779.384,197.599l-0.104-0.018
+ l-0.146-0.029l0.035-0.07l0.172-0.143l0.075,0.113l-0.032,0.146z M722.123,186.708l-0.05-0.035l-0.153,0.266l0.071-0.238l0.084-0.152l0.018,0.043l0.08-0.092l0.008,0.129l0.062,0.012l-0.011,0.02l-0.108,0.049z M753.172,192.22l-0.033,0.094l-0.011-0.008
+ l-0.108-0.049l0.075-0.066l-0.044-0.018l0.063-0.01l0.058,0.057z M753.684,191.966l0.073,0.043l-0.126,0.037l0.002-0.014l0.051-0.066z M753.672,192.291l-0.021,0.023l-0.02-0.109l0.041,0.086z M753.393,192.167l-0.07,0.01l0.056-0.012l0.015,0.002z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M493.423,100.317l2.114,2.033l0.121,1.917l2.696-0.209l3.072,0.033l3.073,0.033l1.978,0.318l0.765-1.229L504.108,102l-3.121-1.21l-3.107-1.208l-3.096-1.208l-2.313-0.162l-2.312-0.164l-0.217,0.198l3.48,2.07z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M735.705,177.07l0.472-0.857l-0.119-0.043l-0.461,0.43l0.108,0.471z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M662.983,153.714l-0.452,0.23l0.286,0.039l0.166-0.27z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M615.889,136.017l-1.552,1.457l-1.57,1.457l-2.027,0.773h-0.037l0.649,0.816l0.824,1.33l-2.098,0.15l-2.099,0.15l-2.693-0.258l-0.352-1.031l-1.049-2.059l-0.926,0.643l0.631,3.563l-2.484-0.127l-2.856-0.346
+ l-1.629-0.471l-1.063-1.158l-2.839-0.473l-2.18-0.473l-2.763-1.416l-2.766-1.416l-0.142-1.584l1.223-2.096L583.988,132l-2.625-1.494l-1.058-0.344l-0.982-2.777l1.34,0.17l0.371-0.984l-1.408-1.889l-0.074-0.99l0.906-0.518l0.327-1.209l0.311-2.172l-1.615-0.697
+ l-1.993-0.393l-1.703,1.09l-2.05,1.867l-2.463,0.736l-3.184-0.432l-0.003,0.865l1.069,1.164l-0.03,0.773l0.574,1.375l0.968,0.6l0.866,0.941l0.971,0.77l-1.459,1.068l0.418,1.924l-0.914,1.707l-1.074,1.924l-1.384,2.162l-1.412,2.166l-2.116,0.043l-0.878-0.215
+ l-1.194,3.092l1.61,0.945l0.476,1.76l0.853,0.043l1.121,3.391l-0.829-0.129l-2.172,0.344l-1.894-0.086l0.109,0.902l-1.158,0.514l0.016,0.129l0.925-0.301l-0.414,0.559l2.006,2.016l2.612-0.473l-0.163,0.516l-1.615,1.115l-1.206-0.172l1.994,2.145l1.991,2.143
+ l3.063-0.898l0.187-1.674l0.166-1.156h1.149l-0.366,0.686l-0.091,0.514h1.261l-0.836,0.814l0.313,1.158l0.121,1.801l0.616,2.615l0.111,0.688l0.245,0.557l0.706,3.174l0.869,2.51l0.857,2.51l0.502,0.557l1.235,2.982l1.212,2.98l1.046,2.102l1.035,2.102l1.025,2.102
+ l1.017,2.102l-0.322-0.342l0.938,1.994l0.929,1.994l1.431,0.686l1.182-1.33l1.288-1.371l1.35-0.172l-0.884-0.986l1.254-1.803l0.671-0.129l-0.194-1.865l-0.203-1.865l0.433-2.037l0.42-2.037l-0.269-0.516l0.262,0.43l-0.502-2.316l-0.244-2.959l1.262-0.857
+ l0.235-0.26l0.516-0.084l0.607-0.986l1.834-0.688l0.303-1.631l2.168-2.229l2.153-2.232l1.749-1.801l-0.979,0.215l0.882-0.385l1.439-0.688l1.319-1.887l0.05-1.887l2.24-1.543l-0.522-0.557l0.965,1.629l0.479-0.301l0.207,0.43l-0.097-1.244l0.594,1.072l0.562,0.043
+ l-0.132-0.686l-0.629-1.975l-0.641-1.973l-0.223-1.457l-1.671-1.459l0.53-1.031l0.952-0.473l-1.685-1.631l0.057-1.891l1.443,0.645l0.762,0.73l0.581-0.43l0.823,2.105l2.381,0.234l2.381,0.236l1.146,0.859l-0.371,1.074l-1.628,1.115l0.469,2.059l0.448,0.516
+ l1.004-1.889l0.865,2.252l0.849,2.252l0.1-0.086l0.784,0.043l0.037-2.746l0.061-2.186h1.441l1.01-3.135l0.051-1.117l0.125-2.188l2.175-2.234l1.66,0.387l-0.436-0.814l0.229-0.773l0.309-1.201l-2.432-0.857l0.07-1.07l-0.876-0.301l0.149-0.428l-0.949-0.301
+ l-1.181,0.686l-1.85-0.258z M618.739,179.859l0.47-3.518l0.104,0.688l-0.297,2.102l-0.313,2.1l0.036-1.371z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M679.758,208.853l-1.271-1.287l-1.279-1.285l0.472-0.816l-1.717-2.615l-0.379-0.988l0.716-0.084l0.531,0.043l-0.524-0.773l-0.163-0.256l0.25-0.344l-1.961-0.258l-1.961-0.256l-0.509,1.801l-0.519,1.801l-0.488,1.287
+ l-1.002,2.273l-1.919,0.729l-3.006-0.686l-0.776,1.072l-3.022,0.643l-2.18-1.328l-0.489-1.674l-1.289,1.801l0.378-0.086l-0.699,1.373l0.58,1.973l-0.114,0.773l0.637,1.201l-0.228,0.084l1.465,1.074l-0.036,1.93l0.494,2.658l1.012,0.301l0.539-0.258l-0.232,0.172
+ l2.015-0.215l0.37,1.287l1.292-0.129l1.315-0.771l1.448,0.771l1.479-0.043l0.438,0.43l0.286,1.33l3.071-1.029l0.523-1.846l0.449-0.986l0.59-0.771h-0.415l-0.086-1.115l0.979-1.629l1.448-0.688l0.428-1.158l-0.301-0.258l1.12-3.387l0.153,0.041l2.086,0.172z
+ M650.367,219.49l-0.235,0.215l-0.354,3.24l-0.376,3.236l-1.088-0.986l-0.217,0.6l-1.152-0.428l-0.001,0.814l-2.242-2.23l-1.196-1.244l-1.199-1.242l-1.203-1.244l-1.209-1.244l-0.944-2.123l-0.961-2.123l-0.373-0.344l-1.212-1.908l-1.229-1.91l-0.693-1.715
+ l-0.707-1.715l-1.816-1.801l-1.495-2.061l-1.722-1.715l-1.728-1.715l-1.594-2.918l1.598,0.215l1.715,0.301l1.716,0.299l2.063,2.359l0.286,0.559l2.033,1.844l2.025,1.844l1.749,1.803l-0.096-0.859l1.967,1.588l1.161,1.459l2.06,1.5l-1.132,0.859l1.436-0.773
+ l1.368,1.244l-0.91,0.559l0.188,0.428l-0.192,0.344l0.295,0.9l1.814,0.43l0.385,1.887l0.479,0.602l-0.423,1.672l0.434-0.602l1.781-0.041l1.146,2.143z M728.646,234.675l-1.256-1.545l-0.636-1.416l-1.879,0.344l-0.626,0.256l0.174-1.199l-0.505-1.287l1.023-0.043
+ l-1.202-0.6l1.099-0.043l-0.61-0.43l-1.203-2.918l-0.877-1.113l-1.664-0.645l-1.665-0.643l-1.668-0.643l-1.669-0.645l0.153-0.771h-0.53l-1.933-0.73l0.407-1.5l-1.436,2.402l-1.13-0.129l0.316-1.074l-1.937-1.629l0.889-0.471l2.028-0.559l0.754,0.086l0.23-0.086
+ l0.198-0.258l0.093-0.514l-1.668,0.064l-1.669,0.064l-1.094-1.502l-1.766-0.6l0.363-1.244l2.023-1.373l2.1,0.387l2.099,0.385l0.287,1.074l-0.027,1.285l0.515,2.83l0.169-0.471l0.827,1.158l0.945,0.9l2.369-2.402l2.123-1.242l1.51-1.244l2.789,1.285l2.778,1.287
+ l1.502,0.344l-0.09,2.102l-0.107,2.102l-0.122,2.102l-0.132,2.102l-0.145,2.102l-0.158,2.102l-0.173,2.104l-0.189,2.102z M694.051,207.31l-1.517,2.359l-3.103,0.557l-3.203-0.15l-3.202-0.15l-0.832,2.23l1.824,2.531l1.877-1.244l2.771-0.473l0.798-0.342
+ l0.408,0.857l-0.568-0.043l-1.611,1.244l-1.618,1.244l-0.868-0.129l1.107,1.715l1.094,1.717l-0.291,0.643l1.342,2.188l-0.504,0.258l-1.52,0.9l-0.776,0.387l-0.266-1.545l-0.997-1.373l-0.183-1.115l-0.131-1.586l-1.477,1.072l0.056,3.131l0.031,3.131l-1.987,0.387
+ l-0.148-1.502l0.11-1.865l0.103-1.865l-1.09-0.215l-0.219-2.23l1.055-2.531l0.912-2.4l0.3,0.299l-0.213-2.23l1.161-2.145l0.418,0.086l0.931-1.072l1.366,0.086l2.867,0.449l2.867,0.451l2.232-2.188l0.692,0.473z M668.972,233.732l-1.827-0.559l-1.831-0.559
+ l-2.903-0.342l-2.903-0.344l-2.105-0.451l-2.105-0.449l-2.361-0.621l-2.363-0.623l0.034-0.6l-2.379-0.73l0.732-0.258l1.181-1.629l2.869,0.086l2.581,1.244l0.935,0.9h1.795h1.796l0.929-1.072l1.059,0.686l2.744,0.9l0.622,1.545l1.666,0.236l1.665,0.236
+ l-0.063,2.016l0.235,0.387z M697.77,232.873l-2.91,1.674l-2.918,1.672l-2.756,1.674l-0.329-0.516l0.179-0.301l1.03-1.844l2.206-1.115l2.203-1.115l3.295-0.129z M702.392,210.654l-2.313-0.299l0.972,3.088l-1.425-2.23l-0.2-1.865l-0.218-1.867l1.128-1.801
+ l-0.05,0.986l-0.494,1.715l0.087,0.73l0.738-1.244l0.743-0.686l0.654,0.514l-1.003,1.158l1.38,1.801z M706.626,220.519l-0.365,0.516l-2.705-1.287l-1.898,0.129l-1.345-0.43l-0.325,0.516l0.187-0.857l1.312-0.602l2.038,0.172l2.038,0.172l1.064,1.672z
+ M688.126,232.574l-1.898,1.113l-2.254,0.107l-2.255,0.107l-0.99-0.385l1.176-1.072l1.849,0.277l1.848,0.279l1.243,0.043l0.731-0.686l0.487,0.043l0.063,0.172z M679.38,233.388l-1.087,0.385l0.107,0.086l-0.776-0.215l-1.935,0.365l-1.935,0.365l0.551-1.287
+ l1.762,0.172l1.243,0.043l-1.006-1.244l1.94,0.857l0.729-0.172l0.405,0.645z M652.124,217.818l-0.266,1.244l-1.855-1.201l-0.722-1.373l-0.863-0.385l1.076-0.73l0.221,0.344l0.2-0.602l0.9,2.102l1.309,0.602z M682.771,237.119l-1.542,0.387l-1.89-1.244
+ l-0.499-0.814l2.374,0.043l1.557,1.629z M724.607,230.685l-1.196,1.717l-2.034,0.387l1.365-2.402l1.865,0.299z M698.477,219.876l-1.107,1.072l-1.729-1.158l0.938-0.729l1.897,0.814z M671.532,232.789l-1.301,0.77l-1.295-1.457l2.252,0.213l0.344,0.475z
+ M631.979,208.681l-0.256,1.072l-1.652-2.188l0.527-0.215l1.381,1.33z M673.836,232.789l-0.892,1.328l-0.835-0.43l1.119-1.373l0.607,0.475z M655.436,218.503l-0.783,0.771l-0.726,0.215l0.05-1.543l1.459,0.557z M689.038,224.81l-1.34,0.984l1.148-3.131
+ l-0.037,0.73l-0.024,1.201l0.253,0.215z M715.124,226.912l-0.856,0.387l-0.018-1.504l0.739-0.342l0.135,1.459z M635.058,215.544l-0.983-0.043l-0.352-1.887l1.335,1.93z M688.103,223.908l-0.89,1.072l0.313-1.629l0.503-0.215l0.073,0.771z M694.179,216.017h-2.234
+ l0.998-0.559l1.236,0.559z M714.478,228.113l-0.658,0.771l-0.197-1.545l0.855,0.773z M668.184,229.142l-2.257,0.43l-0.848-0.346l3.104-0.084z M719.377,214.044l-1.247-0.174l-0.781-0.943l2.028,1.117z M690.197,214.515l-0.844,0.514l-0.181-0.385l-0.578,0.43
+ l0.586-0.902l0.486,0.344h0.53z M700.632,215.501l-1.698-0.258l1.183-0.385l0.516,0.643z M708.093,229.699l-1.554,2.102l1.226-2.273l0.328,0.172z M707.959,211.941l-1.361-0.385l0.375,0.686l-1.209-0.6l0.417-0.301l1.778,0.6z M700.105,213.228l-1.131-0.471
+ l0.193-0.688l0.938,1.158z M692.877,232.658l-1.655-0.084l1.582-0.43l0.073,0.514z M673.462,221.216l-0.528,0.273l0.572-1.879l-0.044,1.605z M701.827,204.951l-0.917,0.943l0.634-1.5l0.283,0.557z M707.291,213.771l-0.257,0.891l-0.595-0.611l0.852-0.279z
+ M696.842,231.158l-2.319,0.213l2.263-0.471l0.057,0.258z M658.852,213.824l-0.75,0.621l0.133-0.764l0.617,0.143z M705.801,216.273l-1.276-0.385l1.286,0.043l-0.01,0.342z M640.651,206.152l-0.711,0.428l0.398-0.857l0.313,0.43z M723.921,232.822l-0.628-0.252
+ l0.637-0.379l-0.009,0.631z M690.216,232.402l-0.603,0.471l-0.875,0.086l1.478-0.557z M686.444,224.585l-0.084,0.623l-0.501-0.545l0.585-0.078z M688.499,238.513l-1.342,0.355l0.099-0.043l0.79-0.463l0.453,0.15z M647.288,208.81l-0.766-0.557l0.722,0.086
+ l0.044,0.471z M643.618,209.326l-1.257-0.602l0.264-0.129l0.993,0.73z M642.314,208.039l-0.447,0.516l0.139-0.859l0.309,0.344z M689.287,221.64l-0.378,0.438l-0.216-0.568l0.594,0.131z M680.172,233.302l-0.401,0.303l0.229-0.74l0.173,0.438z M697.61,200.103
+ l-0.359,0.387l0.225-0.814l0.135,0.428z M682.908,226.693l-0.245,0.719l0.201-0.988l0.044,0.27z M688.433,232.923l-0.305,0.096l-0.141-0.076l0.445-0.02z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M508.776,125.97l1.768,1.135l1.77,1.135l0.882,1.111l-0.075,2.049h0.725l0.775,1.709l0.67,0.941l0.341-0.172l0.639-1.195l0.035,0.256l0.995,0.641l0.965-0.129l2.008,2.781l1.079,1.586l1.779,1.674l1.981,1.242
+ l1.982,1.246l3.357,0.773l1.841-0.73l1.835-0.73l0.897,1.762l0.889,1.76l2.418,0.375l2.418,0.375l2.421,0.377l2.421,0.375l0.199-1.975l0.797-0.945l1.991-0.773l-0.014-1.158l-0.709-0.344l-0.706-2.574l-1.726-0.771l-1.584-1.736l-1.591-1.732l1.642-2.947
+ l-0.458-0.939l-2.085-0.727l-0.453-2.182l-0.471-2.186l0.196-0.471l-0.889-0.689l-0.004-1.295l0.209-0.387l0.433-2.953l-0.866-2.752l-1.9-0.262l-1.833-1.203l-1.831-1.199l-3.492-1.309l-1.998,0.218l-2.431,0.349l-1.583,1.613l-0.716-0.043l0.418,0.875
+ l-0.608,0.523l0.597-0.219l-1.929,0.395l-1.931,0.393l-2.028-0.721l-2.026-0.723l-2.416-1.047l-1.242-2.352l-1.965-1.301l0.217-0.518l-0.616-1.375l-2.162,1.332l-1.655,0.734l-2.578-1.466l-0.322-0.429l-0.087-0.086l-0.163-0.129l-0.918,0.729l0.283,1.423
+ l0.51,2.606l1.394,1.833l2.082,3.061l1.505,0.742l0.013,1.219l-0.774,2.426l0.234,1.338l1.227,1.762z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M507.55,124.208l-0.234-1.338l0.774-2.426l-0.013-1.219l-1.505-0.742l-2.082-3.061l-1.246,0.176l-0.572-0.482l-2.787,0.045l-0.57,0.438l-1.979,1.967l0.055,2.531l0.041,2.516l-2.189,1.338l-2.201,1.332l1.439,2.957
+ l2.111,0.963l2.113,0.959l2.117,0.961l2.121,0.961l0.279,0.813l1.317,0.084l0.056,2.01l2.596,1.027l1.56-0.684l2.482,0.941l0.969-2.182l1.798-0.172l1.29,0.129l-0.67-0.941l-0.775-1.709h-0.725l0.075-2.049l-0.882-1.111l-1.77-1.135l-1.768-1.135l-1.227-1.762z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M508.751,135.333l-1.56,0.684l1.879,1.113l2.163-0.855l-2.482-0.941z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M489.113,128.025l-2.72-1.111l-0.139,2.053l-0.147,2.051l-0.16,2.051l-0.169,2.051l0.043,0.471l2.449,0.473l1.325-1.756l1.604-0.342l0.957-1.281l-2.449-2.563l2.391-0.939l2.383-0.941l-1.439-2.957l-1.958,1.373
+ l-1.97,1.369z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M648.623,181.445l1.217-0.686l2.113-1.115l-0.169-1.994l-0.185-1.994l-0.09-2.316l-1.579,0.9l-0.867-0.344l-0.824,0.645l0.053,0.771l-1.928-1.072l-2.376,0.064l-2.377,0.064l-1.402,2.615l0.853,2.125l0.839,2.121
+ l0.091,0.174l0.563,1.715l0.74-0.6l0.278,1.072l0.638,0.428l1.423,0.344l1.32-0.9l0.649-0.344l1.644,0.258l-0.623-1.932z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M513.409,90.656l2.684,0.126l0.479,2.848l0.645,0.918h-2.607l-1.197,1.042l0.941,0.915l-2.317,0.124l1.035,0.747l1.89,2.403l0.842,0.497l1.744,0.664h3.668l-0.282,1.721l2.428,0.736l2.435,0.738l-0.565-2.248
+ l-0.58-2.236l-0.594-2.235l-0.601-2.241l2.564-0.937l2.55-0.938l2.689,1.382l2.702,1.378l2.153,2.499l2.174,0.135l2.177,0.136l2.177,0.136l2.178,0.134l2.281,1.607l0.179,2.007l2.003,1.001l2.007,1.005l1.973-1.419l1.949-1.413l1.347-1.118l2.19,0.324l2.192,0.322
+ l1.074-1.453l1.938,0.222l2.974-0.035l2.694-0.289l2.689-0.289l2.69,1.615l0.5-0.497l-0.02-0.498l-0.959-1.822l-0.968-1.824l-1.313-0.665l2.389-0.916l2.814,0.251l-0.776-0.917l-0.201-2.154l-0.223-2.16l3.265,0.587l1.889-0.21l-0.988-2.727l0.931-0.671
+ l0.808-1.717l-2.347-2.398l-2.663,0.608l-2.683-1.68l-2.685-1.673l-2.551,0.395l-1.487-0.532l-0.464,0.609l-2.722-1.849l-2.721-1.84l-2.718-1.833l-2.711-1.825l0.349-1.136l-0.479-0.396l-2.515,0.927l-2.536,0.929l-1.547-0.266l-1.482-0.779l-3.869-1.292
+ l-1.413-1.558l-1.837,0.175l-2.357,0.676l-2.372,0.676l-2.385,0.677l-2.399,0.678l-2.551,0.418l-2.56,0.418l2.447,1.17l-1.821-0.064l-0.934,2.824l2.129,2.523l-0.343,0.705l-3.911-0.624l-3.888,0.057l-2.99,0.2l-2.688-1.229l-2.677-1.226l-2.886,0.077
+ l-1.496,1.127l-1.514,1.13l-0.385,1.05l-2.418-1.044l-0.296,2.767l-0.342,2.785l2.415,1.891l2.424,1.893l1.572,2.484l0.262-0.167l2.595-1.175l1.71,0.126z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M561.918,105.433l-2.61,0.859l-2.623,0.863l0.162,1.651l3.674,0.462l3.68,0.464l0.746-1.925l1.519-0.934l0.996-0.043l1.231,0.254l1.417-1.603l2.209-0.546l1.644-1.275l1.626-1.271L575,101.187l-2.69-1.615
+ l-2.689,0.289l-2.694,0.289l-2.974,0.035l-1.938-0.222l-1.074,1.453l-2.192-0.322l-2.19-0.324l-1.347,1.118l1.53,1.878l2.91,0.199l2.268,1.467z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M514.616,135.035L514,133.921l-1.798,0.172l-0.969,2.182l2.037,0.258l0.348,0.771l1.872,0.385l-1.413-2.014l-0.138-0.514l0.677-0.127z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M643.271,159.099l-0.671-0.729l-1.252-1.115l-1.146,0.514l-1.594-1.414l-0.361-1.115l-1.794-1.715l-1.062,0.086l0.509,3.002l-0.963-0.473l-0.333-0.471l-1.063,1.801l-0.842,1.33l0.788,0.299l0.304,1.543l1.726,0.086
+ l0.185,2.639l0.176,2.637l1.981-1.543l1.382,0.514l0.983-0.428l1.085-0.73l2.759,2.23l0.421,1.889l1.946,2.701l0.583,2.188l-0.653,1.416l1.928,1.072l-0.053-0.771l0.824-0.645l0.867,0.344l1.579-0.9l-0.342-2.059l-0.686-0.902l0.074-0.557l-1.947-1.588l-1.003-1.5
+ l-1.414-1.717l-1.417-1.715l-2.93-2.102l0.408-0.729l1.281-0.387l-0.265-0.986z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M487.586,124.123l0.286-1.51l-1.324-0.605l-0.696,2.006l-0.71,2l1.072-0.387l1.372-1.504z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M674.771,193.369l-0.525,0.688l-0.193-0.688l-1.105,1.781l-1.114,1.779l-0.534,0.645l0.224,0.686l-0.536,0.645l0.051,1.07l-0.557-1.371l-0.361,1.158l-0.486,0.986l-1.235-1.373l-1.316,1.908l-1.328,1.908
+ l-1.571,0.537l-1.573,0.535l-0.202,0.859l-0.023,0.514l-0.235,1.287l-0.331,0.514l0.42,0.174l-1.793-0.602l-1.839-0.943l-0.042-0.215l0.489,1.674l2.18,1.328l3.022-0.643l0.776-1.072l3.006,0.686l1.919-0.729l1.002-2.273l0.488-1.287l0.519-1.801l0.509-1.801
+ l1.961,0.256l1.961,0.258l0.473-0.43l1.569-0.43l-0.628-1.242l2.27-0.73l-2.599-1.199l-0.426-0.172l0.001-0.688l-1.073,0.43l0.136-1.588l-1.346-1.029z M644.922,207.611l-2.69-1.932l-2.703-1.93l-1.273-2.918l-0.863-3.088l-0.883-3.088l0.133-0.385l1.743,0.857
+ l0.131,1.158l1.548-0.086l0.931-1.072l1.414,1.479l1.41,1.48l0.292,2.445l0.278,2.445l1.032,2.23l1.014,2.229l-0.765-0.385l-0.748,0.559z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M576.763,206.369l-0.042-0.186l-0.139,0.105l0.064,0.141l0.116-0.061z M577.098,212.105l0.27,0.121l-0.142,0.094l-0.128-0.215z M576.758,210.804l0.022,0.266l-0.172-0.184l0.149-0.082z M575.917,212.908l-0.144,0.129
+ l-0.057-0.211l0.2,0.082z M576.19,213.492l-0.17-0.059l0.146-0.162l0.023,0.221z M576.083,196.673l-0.146,0.035l0.04-0.227l0.105,0.191z M576.456,213.119l-0.029-0.291l0.11,0.043l-0.081,0.248z M577.289,205.751l-0.159,0.104l0.063-0.225l0.096,0.121z
+ M575.574,193.199l-0.118,0.209l0.007-0.25l0.111,0.041z M576.426,206.691l-0.133,0.174l0.079-0.316l0.054,0.143z M576.967,205.224l-0.165,0.023l0.039-0.17l0.126,0.146z M576.418,196.501l0.118,0.145l-0.116,0.084l-0.002-0.229z M575.6,194.023l-0.325-0.068
+ l0.256-0.029l0.069,0.098z M575.283,193.031l-0.214-0.051l0.197-0.076l0.017,0.127z M574.962,204.224l-0.188-0.15l0.255,0.064l-0.066,0.086z M576.481,203.619l-0.104-0.203l0.161,0.07l-0.058,0.133z M576.844,209.66l-0.031,0.182l-0.131-0.043l0.162-0.139z
+ M575.242,193.335l0.058,0.129l-0.138,0.117l0.08-0.246z M576.667,204.664l-0.06,0.156l-0.049-0.256l0.108,0.1z M576.454,199.33l0.076,0.133l-0.136,0.059l0.06-0.191z M575.563,195.082l0.018,0.104l-0.214-0.037l0.196-0.066z M576.286,207.359l0.023,0.127
+ l-0.182-0.068l0.158-0.059z M576.552,200.929l-0.023-0.174l0.13,0.102l-0.106,0.072z M577.229,206.31l-0.019,0.137l-0.11-0.227l0.129,0.09z M576.503,205.847l-0.035,0.076l-0.188-0.127l0.223,0.051z M575.795,204.431l0.181,0.082l-0.056,0.076l-0.125-0.158z
+ M575.529,209.65l-0.112-0.18l0.167,0.115l-0.055,0.064z M574.698,201.74l-0.026,0.125l-0.081-0.281l0.107,0.156z M577.53,210.031l-0.066,0.076l-0.061-0.188l0.127,0.111z M577.16,206.994l-0.055,0.043l-0.056-0.268l0.11,0.225z M574.976,203.72l-0.148-0.09
+ l0.164-0.012l-0.016,0.102z M577.155,210.396l-0.16,0.092l0.146-0.186l0.014,0.094z M574.74,194.865l-0.155,0.059l0.107-0.143l0.048,0.084z M576.736,204.302l-0.116-0.146l0.161,0.07l-0.045,0.076z M576.075,204.154l0.153-0.197l0.04,0.049l-0.193,0.148z
+ M576.496,199.013l0.128-0.105l0.027,0.092l-0.155,0.014z M575.233,200.529l0.067,0.096l-0.163-0.023l0.096-0.072z M575.728,193.564l0.079,0.096l-0.164-0.023l0.085-0.072z M576.303,209.773l-0.051,0.146l-0.054-0.119l0.104-0.027z M574.765,202.525l-0.113-0.227
+ l0.138,0.16l-0.024,0.066z M574.38,198.271l-0.057-0.152l0.102,0.053l-0.045,0.1z M575.944,209.093l-0.034,0.055l-0.114-0.135l0.148,0.08z M575.977,193.158l0.028,0.082l-0.125,0.025l0.097-0.107z M576.427,197.646l-0.195,0.01l0.166-0.057l0.029,0.047z
+ M575.339,204.296l0.039,0.037l-0.098,0.107l0.059-0.145z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M625.823,103.473l1.617,0.71l1.523-0.938l1.51-0.937l2.476-0.187l2.475-0.187l1.891-1.534l1.861-1.532l-1.444-1.285l-0.324-2.284l2.947,0.79l1.911-1.082l2.18-0.584l0.441-1.713l2.325-1.215l3.547,0.083l-0.535-1.341
+ l-4.507-2.309l-1.06,1.008l-0.753-0.42l-2.11,0.042l-1.767-1.007l0.572-0.21l-0.323-1.969l-0.363-1.963l-1.917-0.167l-3.747-0.874l-2.236,1.792l-2.343,0.438l-2.35,0.439l-4.238-1.086l-1.104-0.917l-2.791-0.604l-2.787-0.603l-3.48,0.665l-3.049-1.577
+ l-1.445-1.447l-3.446-0.763l-3.437-0.761l-0.535,2.557l1.857,1.742l-1.557,1.249l-3.01-0.521l-3.002-0.52l-0.66-0.872l-4.139-0.456l-1.99,1.183l-2.018,1.187l-1.758,0.793l-1.043,0.794l0.21,0.376l0.86,0.922l2.993,1.803l1.588,0.335l3.021,2.14l0.726,2.054
+ l0.71,2.048l2.415,0.395l2.418,0.396l2.967,0.915l2.976,0.913l1.887,1.906l1.882,1.906l2.89,0.167l2.891,0.166l2.894,0.166l2.895,0.166l0.797,0.665l2.557,0.479l2.561,0.478z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M628.127,149.107l-2.386,0.301l-0.083-1.115l-0.149-1.031l1.089-1.846l0.358-1.16l-0.431-2.061l-0.457-2.061l-0.96-0.516l-1.881-1.93l-0.271,0.857l-0.309,1.201l-0.229,0.773l0.436,0.814l-1.66-0.387l-2.175,2.234
+ l-0.125,2.188l-0.051,1.117l-1.01,3.135h-1.441l-0.061,2.186l-0.037,2.746l-0.784-0.043l-0.1,0.086l0.109,1.543l-0.709,0.514l1.473,2.316l-0.016-0.385l0.151,0.557l0.475-0.602l0.474,1.545l0.191,0.043l-0.274-0.645l1.23,0.559l0.739,1.029l-0.624,0.344
+ l0.626,1.029l0.354-0.943l0.836,2.016l0.832,2.016l-0.105,2.188l-0.119,2.188l0.889-1.287l0.32,1.373l0.22-0.344l0.089,0.729l0.425-0.514l0.159,0.385l0.461-0.213l-0.001,0.301l1.568-1.244l0.275-0.773l0.61,0.387l0.665-2.059l0.87,1.201l1.016,0.9l0.991,3.604
+ l0.944,3.602l0.082-0.643l0.682,1.865l0.67,1.867l0.398,1.93l-0.013,2.102l-0.113,1.973l0.49-0.514l0.794-1.652l0.785-1.652l-0.64-2.486l-0.599-2.23l-1.184-1.609l-1.193-1.607l-0.021-1.459l0.275-1.115l0.59-1.543l-0.585-0.172l-1.851-2.789l-1.862-2.787
+ l0.603,0.043l0.452-2.832l2.172-0.428l0.983-1.158l1.228-0.256l0.842-1.33l1.063-1.801l-0.641-0.301l-1.635,0.473l-1.041-1.459l-1.229-0.514l0.257-2.102l-1.476-0.645l-0.586-1.715l-0.126-0.301z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M595.559,140.908l1.063,1.158l1.629,0.471l2.856,0.346l2.484,0.127l-0.631-3.563l-2.726-0.256l-1.955-0.26l-2.316-0.943l-0.326-0.514l-2.054-0.9l-0.759-0.813l-0.874,0.342l-2.926-2.225l-1.803-1.068l-0.972,0.855
+ l-0.157-0.215l-1.223,2.096l0.142,1.584l2.766,1.416l2.763,1.416l2.18,0.473l2.839,0.473z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M672.478,109.304l0.541,1.507l0.906,0.563l-0.253,0.13l-0.491,1.26l0.782,0.391l0.97,0.568l0.302-0.264l0.312-0.086l2.049,0.305l0.006-0.436l1.662-0.869l0.869-0.739l-2.425-1.341l-0.51-1.203l1.189-1.516
+ l1.156-1.502l-0.775-2.431l1.104-1.333l-0.408-0.332l-2.385-1.369l-0.02,1.327l-1.392,1.081l-0.707,0.209l0.809,1.336l-2.511-0.752l-0.845,0.459l-1.323,2.184l-1.302,1.357l1.313,1.195l1.377,0.301z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M737.405,171.878l-0.095,0.045l-0.14,0.141l0.024,0.25l0.136,0.004l-0.02-0.146l0.06-0.037l-0.017-0.096l0.051-0.16z M737.104,172.365l0.083,0.34l-0.067,0.094l-0.104-0.201l-0.007-0.129l0.096-0.104z
+ M736.521,174.861l-0.042-0.027l-0.139-0.025l0.306-0.178l0.054,0.08l-0.179,0.15z M736.018,164.511l-0.125,0.145l-0.1,0.066l0.081-0.25l0.04-0.072l0.104,0.111z M735.396,162.939l-0.11,0.031l-0.023-0.209l0.037,0.008l0.097,0.17z M736.597,169.042l0.066,0.035
+ l-0.111,0.049l-0.094-0.072l0.139-0.012z M736.275,165.904l0.081-0.033l0.028,0.072l-0.109-0.039z M733.681,159.619l0.038,0.004l-0.089,0.031l0.026-0.07l0.024,0.035z M732.61,158.283l0.042-0.01l-0.002,0.096l-0.04-0.086z M734.223,160.593l-0.065-0.088
+ l0.087,0.064l-0.021,0.023z M736.693,168.232l-0.013,0.016l-0.057-0.07l0.069,0.055z M736.518,166.679h-0.024l-0.014-0.066l0.038,0.066z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M542.427,153.439l-1.701-1.523l-1.704-1.521l-1.872-0.793l-1.871-0.795l-1.193-1.889l-0.681,0.527l-0.326-0.561l0.448,2.326l-1.085,0.418l-0.415,3.125l1.196,1.801l-0.524,2.574l-0.531,2.57l-1.623,0.645
+ l-1.625,0.643l-1.626,0.645l-1.628,0.643l-0.188,1.084l1.543,2.506l1.539,2.506l1.796-0.432l1.794-0.432l1.224-1.115l0.688-1.244l2.002-0.643l0.895-1.844l1.687-0.773l-0.134-2.873l0.771-0.557l0.662-0.086l1.249-2.467l1.236-2.465z M533.751,143.611l-0.108,1.289
+ l-0.591-0.344l0.699-0.945z M540.822,158.242l-0.193,0.344l-0.395,0.6l0.588-0.943z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M556.084,145.671l-0.328-0.256l-0.022-0.172l1.143,1.717l0.786,0.387l1.311,1.975l1.633,0.686l1.158-0.514l-0.109-0.902l1.894,0.086l2.172-0.344l0.829,0.129l-1.121-3.391l-0.853-0.043l-0.476-1.76l-1.61-0.945
+ l1.194-3.092l0.878,0.215l2.116-0.043l1.412-2.166l1.384-2.162l1.074-1.924l0.914-1.707l-0.418-1.924l1.459-1.068l-0.971-0.77l-0.866-0.941l-0.968-0.6l-0.574-1.375l0.03-0.773l-1.069-1.164l0.003-0.865l3.184,0.432l2.463-0.736l2.05-1.867l-2.89-0.83
+ l-1.593-0.785l-0.984-1.705l-2.525-0.699l-2.555,0.59l-2.563,0.592l-1.16,1.615l1.144,2.223l-0.585,1.906l-0.385,1.121l-1.872,0.131l1.262,1.461l-1.695,1.459l-0.192,2.865l-2.124-0.129l-0.578,0.727l-2.116,0.854l-0.423,2.008l0.063,1.154l-2.346,0.535
+ l-2.349,0.535l-3.34,0.086l-1.864-0.6l-1.863-0.6l1.591,1.732l1.584,1.736l1.726,0.771l0.706,2.574l0.709,0.344l0.014,1.158l-1.991,0.773l-0.797,0.945l-0.199,1.975l2.056-0.064l2.056-0.063l1.716-0.131l2.333-0.193l2.332-0.193z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M714.298,191.914l-0.061,0.111l0.099,0.186l0.151,0.02l0.014-0.094l0.073-0.25l-0.004-0.053l0.033-0.354l-0.088-0.203l0.052,0.209l-0.123,0.082l-0.089,0.082l-0.04,0.119l0.043,0.123l-0.061,0.021z M714.082,192.552
+ l0.09-0.18l0.039-0.006l-0.013,0.146l-0.199,0.07l-0.007-0.01l-0.007-0.117l0.097,0.096z M714.313,192.343l-0.096-0.051l-0.023-0.066l0.167,0.086l-0.048,0.031z M713.648,193.363l-0.032,0.09l-0.066-0.107l0.099,0.018z M713.845,193.074l-0.076,0.129l0.069-0.23
+ l0.007,0.102z M714.044,192.671l0.059,0.086l-0.071,0.008l0.003-0.086l0.01-0.008z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M680.73,172.996l0.831,0.301l-0.297,1.115l0.035,1.115l0.937,0.557l1.408-0.729l2.275,1.93l-0.444-1.715l0.877,0.385l1.174,1.244l1.535,0.859l0.002,0.643l0.477-1.029l-0.553-0.215l-1.018-1.201l0.524-0.301
+ l-1.079-0.771l-0.184,0.602l-1.08-1.33l-1.23,0.342l-0.002,0.258l-0.734,0.129l-1.402-2.787l-0.084-1.803l0.969-0.986l0.515-1.672l-0.387-1.416l-0.625-2.102l-0.404-0.602l-2.985-0.643l-0.515,1.115l0.321,2.658l0.298,2.66l-1.156-0.213l0.339,1.973l1.662,2.701
+ l0.001-1.072z M693.953,196.8l-0.324-1.029l-0.438,0.258l-2.471-1.459l0.277-2.145l-1.304-1.371l-0.626,0.771l-0.472-0.258l-0.351,0.387l-0.692-0.73l-0.997,1.459l-0.644,0.559l0.254-1.846l1.818-1.5l1.397-0.988l0.491,1.502l1.009-0.643l0.716-0.516l0.361-1.158
+ l0.951,0.086l0.521-0.086l-0.241-1.93l1.69,1.201l0.456,1.887l1.106,3.217l-0.638,1.201l-0.161,1.029l-0.931-2.102l-0.791,0.602l0.444,1.629l-0.413,1.973z M688.81,183.291l-0.559,3.344l0.025,1.203l-1.753-1.545l0.461-0.771l0.394-2.23h1.432z M692.768,182.56
+ l-1.031-1.201l-1.714-2.188l1.878-0.342l0.824,1.586l1.003,2.316l-0.96-0.172z M687.532,181.49l0.191,0.385l-0.058,0.172l-2.237,2.145l-0.559-3.303l0.324-0.129l2.338,0.73z M680.147,184.148l-2.081,2.059l-1.565,1.631l-1.576,1.629l0.147-0.559l1.602-1.973
+ l1.586-1.973l0.793-1.629h0.15l0.066-1.244l0.878,2.059z M683.722,178.701l-0.504,0.857l-1.28-1.479l-1.29-1.48l2.368,0.299l0.706,1.803z M691.979,182.218l0.813,2.488l-0.625,0.17l-0.161,0.301l-1.032-2.102l-0.447-1.416l1.452,0.559z M689.665,181.017
+ l-1.69-0.986l-0.39,0.215l0.18-1.074l1.863,1.502l0.037,0.344z M691.405,186.035l-1.844,0.043l1.351-0.9l0.493,0.857z M689.831,182.218l-0.021,1.285l-0.629,1.717l-0.641,1.715l0.656-2.359l0.634-2.357z M689.853,176l-0.763-0.086l0.26-0.859l0.503,0.945z
+ M684.488,177.166l-0.44-0.578l0.733,0.188l-0.293,0.391z M685.811,179.031l0.427,0.047l-0.004,0.512l-0.423-0.559z M686.838,194.142l-0.071,0.086l-0.941,0.043l1.013-0.129z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M522.742,147.82l0.645-1.717l-0.769-2.105l-0.796,1.203l0.039,2.275l0.677,0.516l0.204-0.172z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M645.756,207.652l-0.759-0.086l-0.033,0.258l0.792-0.172z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M591.155,186.292l-0.776-0.387l1.176,0.773l-0.722-0.086l-0.279,1.822l-0.286,1.822l-0.235-0.172l0.337,2.402l1.27,3.346l2.207-0.6l1.201-2.061l-0.901-1.973l-0.908-1.973l-1.103-1.586l-1.106-1.588l0.127,0.258z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M494.429,116.341l-3.167-0.088l-3.226,0.264l-0.812,0.305l-0.104,1.139l-0.857,0.828l-0.229-0.131l0.514,3.35l1.324,0.605l-0.286,1.51l-1.372,1.504l0.18,1.287l2.72,1.111l1.97-1.369l1.958-1.373l2.201-1.332
+ l2.189-1.338l-0.041-2.516l-0.055-2.531l1.979-1.967l-0.671-0.219l-2.105,0.48l-2.109,0.48z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M565.884,114.986l0.647,0.045l1.863,0.219h0.036l0.294-0.219l-1.367-3.008l-1.948-0.173l-1.209-2.117l-3.68-0.464l-3.674-0.462l-0.162-1.651l2.623-0.863l2.61-0.859l-2.268-1.467l-2.91-0.199l-1.578,1.326l-2.165,1.9
+ l-2.204,1.92l0.973,1.055l1.499,0.876l0.582,1.013l-0.489,1.67l-0.506,1.678l0.72,0.48l1.078-0.219l1.477-0.043l0.445-0.48l1.638-0.785l0.224-1.569l1.057-0.392l0.645,1.088l0.552,0.088l0.875,3.1l2.684-1.398l1.64-0.088z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M678.234,154.597l0.276-1.941l0.26-1.939l0.237-1.941l0.21-1.943l-1.437-0.473l-0.86,1.654l-0.883,1.65l0.396,2.875l1.801,2.059z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M634.357,187.494l-0.631-2.016l0.544-2.252l0.527-2.252l0.074-2.08l0.057-2.08l1.998-0.301l0.146,1.801l1.722,0.301l2.255,1.545l0.851,1.07l-0.839-2.121l-0.853-2.125l1.402-2.615l2.377-0.064l2.376-0.064
+ l0.653-1.416l-0.583-2.188l-1.946-2.701l-0.421-1.889l-2.759-2.23l-1.085,0.73l-0.983,0.428l-1.382-0.514l-1.981,1.543l-0.176-2.637l-0.185-2.639l-1.726-0.086l-0.304-1.543l-0.788-0.299l-1.228,0.256l-0.983,1.158l-2.172,0.428l-0.452,2.832l-0.603-0.043
+ l1.862,2.787l1.851,2.789l0.585,0.172l-0.59,1.543l-0.275,1.115l0.021,1.459l1.193,1.607l1.184,1.609l0.599,2.23l0.64,2.486l-0.785,1.652l-0.794,1.652l-0.078,0.471l-0.296,2.51l-0.314,2.51l0.397-0.301l1.213,1.371l1.21,1.373l0.523,0.6l1.102,1.588l0.133-0.385
+ l1.743,0.857l0.131,1.158l1.548-0.086l0.931-1.072l-1.289-1.545l-1.641-0.301l-1.695-1.973l0.669,1.158l-0.744-2.424l-0.758-2.422l-1.179-0.129z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M547.101,116.037l0.738-0.787l0.777-0.744l-1.37-2.536l-3.625-2.309L540,107.378l-1.762-0.901l-2.856-1.099l-1.628-2.574l-2.724-1.832l-1.722,1.813l-1.043,0.582l0.478,1.405l-2.949-0.639l-2.435-0.738l-2.428-0.736
+ l0.282-1.721h-3.668l0.594,0.456l-0.095,1.163l1.378,2.589l-0.049-0.209l-0.029-2.006l1.769,0.168l2.024,2.047l-0.217,0.842l-0.183,0.254l-0.553,0.168l-1.076-0.591l-1.212-0.126l-0.238,0.169l0.605,2.542l0.017-0.085l0.922-0.256l0.601,0.983l-0.269,0.214
+ l-0.441,0.559l0.148-0.128l1.306,0.861l0.594,2.189l0.578,2.201l0.716,0.043l1.583-1.613l2.431-0.349l1.998-0.218l3.492,1.309l1.831,1.199l1.833,1.203l1.9,0.262l0.866,2.752l2,0.697l1.258,0.217l0.639-1.35l1.977-1.049l0.857-2.01z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M522.742,147.82l-0.204,0.172l0.065,0.73l1.497,1.029l0.751,2.23l3.387,0.643l3.39,0.645l0.398-0.516l0.415-3.125l1.085-0.418l-0.448-2.326l0.326,0.561l0.681-0.527l-0.442-2.018l-0.591-0.344L531,146.853
+ l-2.077,2.297l-3.493,0.172l-1.35-0.215l-0.897-0.516l-0.063-0.686l-0.377-0.086z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M547.246,111.969l1.37,2.536l2.117,0.35l2.118,0.35l0.506-1.678l0.489-1.67l-0.582-1.013l-1.499-0.876l-0.973-1.055l2.204-1.92l2.165-1.9l1.578-1.326l-1.53-1.878l-1.949,1.413l-1.973,1.419l-2.007-1.005
+ l-2.003-1.001l-0.179-2.007l-2.281-1.607l-2.178-0.134l-2.177-0.136l-2.177-0.136l-2.174-0.135l-2.153-2.499l-2.702-1.378l-2.689-1.382l-2.55,0.938l-2.564,0.937l0.601,2.241l0.594,2.235l0.58,2.236l0.565,2.248l2.949,0.639l-0.478-1.405l1.043-0.582l1.722-1.813
+ l2.724,1.832l1.628,2.574l2.856,1.099l1.762,0.901l3.621,2.282l3.625,2.309z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M643.271,159.099l0.265,0.986l-1.281,0.387l-0.408,0.729l2.93,2.102l1.417,1.715l1.414,1.717l1.003,1.5l1.947,1.588l-0.074,0.557l0.686,0.902l0.342,2.059l0.09,2.316l0.185,1.994l0.169,1.994l-2.113,1.115
+ l-1.217,0.686l0.623,1.932l-1.644-0.258l-0.649,0.344l-1.32,0.9l1.42,1.287l-0.152,3.131l1.07-0.344l1.757-1.844l-0.686-1.072l1.509,0.986l-0.866-1.459l0.828,0.473l-0.503-0.645l0.971,0.344l-0.878-0.6l0.853-0.174l0.022-0.643l1.574,0.344l1.614-1.395
+ l1.604-1.395l0.315-1.029l-0.02-0.943l0.212-0.857l-1.052-3.496l-1.101-3.496l-1.536-1.629l-1.866-1.545l-1.422-1.416l-1.426-1.414l-0.562-1.244l-1.648-2.23l0.823-2.359l0.888-2.143l-0.003-0.258l1.196-0.645l1.257-0.943l-2.228-0.898l-0.98-0.773l-0.322-1.672
+ l-2.712-0.9l-0.946-0.129l-1.343,1.459h-0.74l-0.408,0.215l-0.577-0.131l-0.883,0.045l-0.492,0.385l-1.212-0.385l-0.531,0.6l1.794,1.715l0.361,1.115l1.594,1.414l1.146-0.514l1.252,1.115l0.671,0.729z"/>
+ <path style="fill:#FDD9E0;stroke:#FDD9E0;" d="M506.239,168.257l-0.768,0.764l-0.076,3.031l1.042,3.238l1.027,3.238l2.85-0.215l2.896-1.629l2.329-0.793l2.325-0.795l1.765-0.729l1.717-0.826l1.716-0.826l1.712-0.824l1.708-0.826l0.083-1.029l1.994-1.668
+ l-1.539-2.506l-1.543-2.506l0.188-1.084l-1.773,0.473l-1.773,0.473l-1.775,0.471l-1.776,0.471l-1.246,1.705l-1.251,1.705l-1.258,1.705l-1.266,1.703l-0.162-2.701l-2.117-0.934l-2.116-0.934l-2.534-0.268l-0.377,2.115z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M390.815,136.96l-0.5,3.002l-0.021,0.986l2.102,1.471l2.108,1.471l2.115,1.471l2.122,1.471l1.641,1.256l1.644,1.254l1.647,1.256l1.651,1.256l1.653,1.254l1.658,1.254l1.659,1.254l1.663,1.254l0.001,0.773l1.118,0.984
+ l3.167,1.33l0.083,1.93h2.534l1.749-0.385l1.748-0.387l1.808-1.801l1.803-1.801l2.505-1.717l2.498-1.715l2.491-1.715l2.483-1.715l-0.965-2.018l-2.556-0.473l-0.89-2.145l-1.441-2.148l1.011-0.945l-0.064-2.939l-0.07-2.938l-0.986-2.996l0.164-0.686l-0.59-2.391
+ l-0.589-2.393l-1.674-1.883l-1.751-2.447l0.937-1.92l0.931-1.93l-0.211-3.58l0.477-0.699l-3.297-0.043h-1.772l-2.401,0.393l-2.393,0.023l-2.394,0.021l-2.797,0.83l-2.804,0.83l-1.103,0.656l-2.051,1.023l-2.058,1.021l0.532,0.564l0.31,1.926l0.313,1.914
+ l1.395,2.271l-0.508,0.729l-2.348,0.17l-2.938,1.111l0.057,1.537l-1.572,1.111l-1.576,1.111l-1.922,0.811l-1.924,0.814l-1.805,1.006l-1.809,1.006z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M463.513,244.453l0.041-2.658l0.036-2.66l-1.874,0.408l-1.872,0.408l-0.058-1.029l-0.746-2.66l-0.07-2.959l-0.074-2.961l-2.98-0.428l0.082-0.557l-2.305-0.172l-0.478,2.273l-2.802,0.557l-1.58-0.6l-0.902-2.424
+ l-0.906-2.424l-1.938-0.074l-1.938-0.076l-1.938-0.074l-1.938-0.076l-1.894,0.559l1.152,3.066l1.147,3.066l-0.803,1.244l0.623,1.973l0.621,1.973l0.414,3.389l-1.17,1.738l-1.169,1.736l-1.02,3.217l-1.022,3.217l-0.2,2.061l-0.201,2.059l2.741-0.688l1.707,0.729
+ l2.605,0.076l2.606,0.076l2.605,0.074l2.605,0.074l0.359,0.516l2.117,0.473l2.115,0.471l3.392-0.408l3.395-0.408l-1.604-1.887l-1.608-1.887l0.057-2.037l0.054-2.039l0.05-2.035l0.047-2.039l2.257-0.086l2.259-0.086z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M411.545,182.861h-0.113l-0.264,1.072l1.246,1.502l0.342,2.016l0.077,1.93l0.077,1.93l0.077,1.932l0.078,1.93l2.457-0.387l0.203-3.496l0.2-3.496l1.691-2.873l0.182-2.359l-0.381-1.371l0.075-0.086l-2-1.717
+ l-0.638,0.814l-0.074,0.387v0.043l-0.075,0.215l-1.693,1.029l-1.468,0.986z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M453.621,274.906l1.524,2.447l-0.401,2.49l0.792,0.346l2.408-0.473l1.127-1.697l1.126-1.697l1.813,0.646l3.326,0.473l1.249-2.148l1.37-0.859l1.216-2.273l2.234-1.93l2.979-1.973l0.12-0.172l-0.536-0.473l-1.963-0.898
+ l-0.801-2.145l-0.565-0.73l-0.387-0.557l-1.66-1.285l-1.301-2.51l-1.308-2.51l-1.74,0.645l-1.788,0.986l-0.829-0.9l-2.622,0.299l-2.622,0.301l-0.072,2.369l-0.073,2.371l-0.074,2.367l-0.076,2.371h-2.226l-0.114,3.559l-0.126,3.561z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M411.545,182.861l1.468-0.986l1.693-1.029l0.075-0.215v-0.086l-0.53-1.287l-0.528-0.771l-0.79,0.172l-1.355-1.072l0.074-0.814l0.339-0.086l-1.843-1.889l-0.264-2.229l-2.138-0.215l-2.815,1.414l-0.303,0.988
+ l-1.314,0.041l-0.868,1.244l-0.451,0.258l-0.38,0.945l-1.464-0.559l-0.307,1.416l-0.493,1.07l-1.247,1.158l-0.644,0.602l-0.58,3.389l0.941,0.428l1.314,1.459l2.152-0.602l1.996,1.158l-0.165-1.949l-0.166-1.953l2.714-0.086l2.713-0.086l0.603-0.17l1.884,0.342
+ h0.679z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M478.812,218.632l0.011-1.285l-1.249-0.172l-0.234,0.814l-1.97,0.129l-0.076,0.127l0.074,0.172l0.396,2.102l0.394,2.104h0.567l1.323-1.588l1.323-1.588l-0.56-0.814z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M437.044,226.054l0.758-0.174l0.2-2.014l1.063-0.773l-0.868-0.387l-1.521,1.375l0.367,1.973z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M379.39,136.802l-1.305,1.488l1.143-0.367l0.162-1.121z M373.767,137.904l-1.102,1.027l-0.041-0.77l1.143-0.258z M375.624,139.062l-0.166,0.557l-0.748-0.557h0.914z M379.991,136.234l-0.584-0.113l0.824-0.26
+ l-0.24,0.373z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M355.415,168.527l-0.52-0.189l0.153,0.145l0.366,0.045z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M452.516,189.208l-1.042,1.287l-3.166,0.686l-1.244,0.215l-0.495-0.301l-2.071,0.688l-1.136,2.08l-1.138,2.08l0.741,3.561l1.259,1.822l1.261,1.824l0.69,2.314l0.745-2.744l1.245-0.773l1.761,0.129l1.762,0.129
+ l-0.126-1.93l1.874-2.316l2.356,1.33l2.144,0.621l2.145,0.623l1.008-1.502l1.022,0.129l2.338-0.814h1.627l0.824-0.771l1.8,0.193l1.798,0.191l1.177,0.301l-0.351-0.814l-1.269-1.717l-0.887-1.33l-2.029-1.93l-0.431-1.072l-2.063-1.5l-0.388-0.729l-1.631-0.43
+ l0.377-2.445l-0.97-1.609l-0.973-1.607l-2.177,0.516l-1.737,2.078l-1.743,2.082l-3.238,0.643l0.35,0.814z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M462.993,160.986l-2.278-1.287l-2.274-1.285l-2.271-1.287l-2.268-1.285l-2.266-1.287l-2.262-1.287l-2.258-1.285l-2.255-1.289l-2.187,1.289l0.269,1.928l0.269,1.932l1.852,2.959l-0.532,1.07l-0.104,1.951l-0.104,1.951
+ l-0.105,1.951l-0.107,1.953l-1.017,1.533l-1.021,1.533l-1.021,1.535l-1.025,1.531l0.067,2.059l1.001,1.631h0.865l1.163,2.531l0.227,2.873l1.5,2.574h-2.602l-1.163,0.6l1.948,2.402l1.465,3.303l2.071-0.688l0.495,0.301l1.244-0.215l3.166-0.686l1.042-1.287
+ l-0.35-0.814l3.238-0.643l1.743-2.082l1.737-2.078l2.177-0.516l-0.215-1.416l-0.403-1.373l-0.944-1.93l-0.868-0.129l0.821-1.973l0.197-1.158l0.283-0.686l0.015-0.9l1.108-2.018l0.805-0.686l1.46-0.043l-0.077-2.445l-0.08-2.443l-0.084-2.445l-0.086-2.445z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M507.582,241.837l-0.063-0.301l-0.416-0.943l0.479,1.244z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M437.765,217.431l-2.046,0.172l0.074,0.729l0.262,0.688l0.412,1.115l-0.418,0.471l-0.604-0.385l-0.725,1.115l1.956,2.746l1.521-1.375l0.868,0.387l1.171,0.387l0.647-0.773l1.363-0.129l0.22,1.158l1.733-1.693
+ l1.731-1.693l0.313-1.996l0.313-1.994l1.578-2.102l1.575-2.102l0.342-1.93l0.338-1.93l0.335-1.93l0.332-1.932l0.631-2.23l-1.762-0.129l-1.761-0.129l-1.245,0.773l-0.745,2.744l-0.449,1.158l-1.953-0.492l-1.952-0.494l-2.235-0.043l-0.221,2.445l2.5-0.215
+ l0.192,1.715l-1.061,1.459l1.287,2.316l-0.577,3.518l-0.798,0.686l-0.339-0.729l-1.327,0.514l-1.283-1.457l-0.194,1.586z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M504.128,180.759l-0.267,2.016l2.603,0.086l0.634-1.244l-1.328-0.258l1.63-1.672l-1.096-1.029l-0.181,0.172l-0.746,0.172l-1.249,1.758z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M483.489,139.062l1.242,0.43l0.461-2.111l0.449-2.109l-0.964-2.363l-0.973-2.361l-3.086,0.684l-1.066-0.17l-0.938-0.727l0.72,0.342l-2.416-0.684l-0.986,0.299l0.653-0.385l-1.452,0.77l-3.033,0.98l-3.354-0.916
+ l-3.348-0.918l-1.453-0.086l-0.389,1.623l0.1,1.943l0.093,1.945l0.185,2.408l0.177,2.414l0.167,2.414l0.158,2.416l0.147,2.414l0.142,2.414l0.134,2.412l0.129,2.414h1.743h1.742h1.743h1.743h1.742h1.743h1.744h1.743l0.269-0.559l0.139,0.559l2.779,0.32l2.78,0.322
+ l0.458-1.158l1.212-0.213l0.475-1.459l0.604,0.215l0.796-0.943l-0.124-2.061l0.248-0.17l-1.258-1.781l-1.262-1.783l-0.984-1.855l-0.989-1.857l-0.993-1.857l-0.997-1.855l-0.962-1.928l-0.965-1.926l0.45-0.258l1.443,2.375l1.438,2.381z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M431.636,208.595h1.762h1.762l-0.043-3.002l-1.725-0.236l-1.724-0.234l-0.563,2.188l-0.188,0.943l0.72,0.342z M429.727,201.648l-1.057,1.158l0.716-1.287l0.341,0.129z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M495.673,201.562l3.151,0.6l1.085-0.943l2.373-0.729l2.24,0.473l1.089-0.602l2.17-1.457l1.813-0.174l1.813-0.172l1.682-1.994l1.677-1.994l1.671-1.994l1.666-1.994h-2.229l-1.709-0.645l-1.707-0.643l-1.708-0.643
+ l-1.707-0.645l-1.452-1.865l-1.456-1.865l0.329-1.416l-2.603-0.086l0.267-2.016l1.249-1.758l0.746-0.172l0.181-0.172l-0.056-0.43l-2.493-2.465l-2.498-2.467l-1.864-1.33l-0.583-0.387l-0.118,0.645l-0.709-1.846l-0.713-1.844l-0.715-1.844l-0.717-1.844l-0.28,0.342
+ l-1.417,1.094l-1.42,1.094l-0.852,3.26l-0.256,3.561l-0.318,1.93l-0.323,1.932l-1.035,0.514l-0.92,1.758l-0.555,2.875l-1.238,0.213l-0.284,2.832l-0.294,2.83l-1.578,0.344l-0.845,1.158l0.844,0.686l2.228,1.975l0.862,1.715l0.859,1.715l1.334,0.645l0.599,1.973
+ l1.973,0.344l2.752,1.93z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M505.31,255.091l-0.006-0.01l-0.008-0.008l-0.011-0.006l-0.011-0.006l-0.011-0.008l-0.013-0.002h-0.014l-0.014,0.002l-0.008,0.01l0.003,0.01l0.008,0.012l0.009,0.006l0.009,0.008l0.006,0.008l0.008,0.002l0.01,0.004
+ l0.015,0.002l0.013-0.002l0.009-0.008l0.006-0.014z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M431.561,208.509l-0.341,1.029l-0.681,0.045l1.478,1.158l-1.326-0.129l-0.758,2.4h-0.568l0.907,1.76l0.491,0.514l-0.757-0.643l0.982,1.5l-0.303-0.041l1.397,1.629l-0.341-0.129l1.49,1.865l1.488,1.867l0.725-1.115
+ l0.604,0.385l0.418-0.471l-0.412-1.115l-0.262-0.688l-0.074-0.729l2.046-0.172l0.194-1.586l1.283,1.457l1.327-0.514l0.339,0.729l0.798-0.686l0.577-3.518l-1.287-2.316l1.061-1.459l-0.192-1.715l-2.5,0.215l0.221-2.445h-2.234h-2.234l0.043,3.002h-1.762h-1.762
+ l-0.075-0.086z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M371.852,176.47l-0.281,1.072l1.758-0.6l1.758-0.602l2.998,0.557l-0.556-0.557l-2.808-0.643l-0.272,0.514h-2.441l-0.005,0.258h2.143l-1.25,0.559l-1.043-0.559z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M410.872,196.371l-0.794-0.729l0.87,0.688l1.133-0.857l-1.172-1.244l-0.095-2.018l-0.096-2.016l-0.34-1.672l-0.189-1.76l0.037-1.158l-0.905-2.271l-0.339-0.814l-0.603,0.17l-2.713,0.086l-2.714,0.086l0.166,1.953
+ l0.165,1.949l0.448,3.303l-0.834,1.781l-0.835,1.779l0.489,1.975l0.488,1.973l-0.719,0.514l2.118,0.73l1.608-0.611l1.608-0.613l1.607-0.611l1.607-0.611z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M390.225,181.789l-0.823-0.645l-0.698-2.1l-0.38,0.428l-1.473,0.559l-1.357,0.17l-0.674-0.299l-1.43-0.043l0.27-0.602l-3.271-0.256l-1.987-0.473l-0.315,1.115l-0.094,1.5l-2.082,0.816l-0.502,1.029l-0.039,0.086
+ l0.53-0.258l0.218,0.686l0.266-0.127l-0.119,0.471l1.229,1.416l0.673,0.557l0.334,0.559l0.635,0.771l0.106,0.773l1.675-1.717l3.063-0.771l1.453,2.402l-0.201,1.715l0.87-0.215h1.284l0.627,2.574l0.564,0.514l1.023-0.6l0.567-0.129l0.189-0.086l0.76-0.943
+ l-0.372-1.072l0.982-0.172l0.116-0.557l-0.26-0.943l-0.147-0.516l-0.301-0.43l0.2-1.973l-1.153-2.316l-0.264-0.043l0.308-0.857z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M375.052,181.23l-0.348,0.688l0.481,0.643l0.222,0.43l0.502-1.029l2.082-0.816l0.094-1.5l0.315-1.115l-1.902,0.172l-1.901,0.172l-2.982,0.6l1.127,0.086l-0.346,0.473l1.126,0.256l-0.155,0.301l1.658-0.043l0.41,0.301
+ l-1.208,0.172l0.825,0.213z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M397.821,184.748l-0.941-0.428l-1.51,0.301l-0.296-0.988l-0.794,0.602l-1.061,0.643l-1.354-0.342l-0.531,0.471l-0.2,1.973l0.301,0.43l0.147,0.516l0.26,0.943l-0.116,0.557l-0.982,0.172l0.372,1.072l-0.76,0.943
+ l-0.189,0.086l0.065,2.359l-0.04,0.428l1.507,1.287l0.942,1.072l-0.351,3.131l2.859-1.008l2.859-1.008l-0.643-0.084l2.914-0.174l-1.514,0.086l1.854-0.172l1.362,0.086l0.643,0.301l-0.303,0.086l0.719-0.514l-0.488-1.973l-0.489-1.975l0.835-1.779l0.834-1.781
+ l-0.448-3.303l-1.996-1.158l-2.152,0.602l-1.314-1.459z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M494.788,218.89l0.179,0.9l1.7,1.695l1.696,1.693l0.229-0.129l0.997-2.188l0.995-2.188l1.034-0.943l0.886-1.588l1.294-0.686l-1.237-2.059l-0.006-2.381l-0.015-2.379l-0.025-2.381l-0.035-2.381l1.023-1.459
+ l1.019-1.457l-2.24-0.473l-2.373,0.729l-1.085,0.943l-3.151-0.6l-2.752-1.93l-1.973-0.344h-1.76h-1.76l-0.856,1.029l0.972,2.016l0.684,1.994l0.68,1.994l-0.936,2.018l-1.547,2.572l0.032,2.832l2.088,1.285l2.083,1.289l2.082,1.285l2.078,1.287z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M470.713,285.507l-2.161,2.184l1.542,2.223l0.853-0.684l2.127-1.625l0.484-1.584l-1.959-1.156l-0.886,0.643z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M392.29,199.974l0.351-3.131l-0.942-1.072l-1.507-1.287l0.04-0.428l-0.065-2.359l-0.567,0.129l-1.023,0.6l-0.564-0.514l-0.627-2.574H386.1l-1.048,1.588l-1.049,1.586l-0.686,0.816l2.126,1.865l2.128,1.865
+ l2.359,1.459l2.359,1.457z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M462.993,160.986l-0.045-1.287h2.232l-0.096-2.572l-0.098-2.572l-0.129-2.414l-0.134-2.412l-0.142-2.414l-0.147-2.414l-0.158-2.416l-0.167-2.414l-0.177-2.414l-0.185-2.408l-0.093-1.945l-0.1-1.943l0.389-1.623
+ l-1.224-0.898l-3.384-0.855l-0.424-0.898l-2.854-0.643l-1.61,0.986l-1.617,0.984l0.132,3.459l-2.175,1.41l-2.513-1.219l-2.509-1.217l-2.496-0.725l-1.046-2.309l-2.388-0.578l-2.386-0.578l-3.198-0.814l-0.106,2.057l-1.403,1.217l-1.409,1.219l-0.011,2.135
+ l-1.175,0.896l-0.164,0.686l0.986,2.996l0.07,2.938l0.064,2.939l-1.011,0.945l1.441,2.148l0.89,2.145l2.556,0.473l0.965,2.018l3.198,0.771l1.849,1.543l1.607-0.943l2.26-1.33l2.255,1.289l2.258,1.285l2.262,1.287l2.266,1.287l2.268,1.285l2.271,1.287l2.274,1.285
+ l2.278,1.287z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M511.968,252.089l-0.832,0.127l-2.007,1.029l-0.572,2.061l-0.575,2.059l0.354,2.615l0.352,2.617l-1.193,1.736l-1.191,1.736l-0.605,3.475l0.501,2.787l0.771,3.305l2.982,1.287l1.95-1.008l1.951-1.01l0.827-2.344
+ l0.816-2.344l0.81-2.342l0.804-2.342l0.801-2.344l0.802-2.342l0.802-2.344l0.799-2.342l0.896-1.629l-0.028-3.604l1.244,1.07l0.538-1.414l-0.711-3.238l-0.734-3.238l-0.707-1.76l-0.45-0.041l-0.677,0.814l-0.425,2.572l-0.888,0.473l-0.356,0.342l-0.659-0.342
+ l0.19,1.416l-0.544,1.029l0.246,0.299l-1.169,0.773l0.118-0.773l-0.737,1.76l-0.382,0.129l-0.513-0.215l-0.868,1.373l-1.73,0.129z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M487.212,249.3l-0.823,2.617l1.066,1.674l1.062,1.672l-0.265-1.502l1.251-1.115l0.329-1.887l0.324-1.887l-1.329-1.48l-1.335-1.48l-0.362-2.572l0.436-1.889l0.769-0.514h0.038l-0.657-2.016l-0.646-2.703l-0.854-0.514
+ l-2.295-0.344l0.176,0.6l1.343,2.104l-0.514,0.898l-0.092,1.996l-0.099,1.994l-0.358,0.643l-1.173,2.488l1.01,1.158l0.712,1.072l1.425,0.043l0.863,0.943z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M390.225,181.789l-0.308,0.857l0.264,0.043l1.153,2.316l0.531-0.471l1.354,0.342l1.061-0.643l0.794-0.602l0.296,0.988l1.51-0.301l0.58-3.389l0.644-0.602l1.247-1.158l0.493-1.07l0.307-1.416l1.464,0.559l0.38-0.945
+ l0.451-0.258l0.868-1.244l1.314-0.041l0.303-0.988l2.815-1.414l2.138,0.215l0.376,0.084l2.062-0.814l2.475-0.086l2.474-0.084l1.188-2.273l0.102-1.877l0.102-1.879l0.102-1.875l0.1-1.877h-2.534l-0.083-1.93l-3.167-1.33l-1.118-0.984l-0.001-0.773l-1.663-1.254
+ l-1.659-1.254l-1.658-1.254l-1.653-1.254l-1.651-1.256l-1.647-1.256l-1.644-1.254l-1.641-1.256h-1.973h-1.973l0.24,2.736l0.243,2.734l0.246,2.734l0.248,2.732l0.25,2.734l0.252,2.734l0.252,2.734l0.255,2.734l0.596,0.428l-0.39,2.146h-2.155h-2.155h-2.154h-2.156
+ l-0.26-0.258l-3.121,0.814l-0.377,0.086l-1.338-0.771l-1.043,2.145l-0.449-0.129l0.604,2.572l0.627,0.988l0.648,2.529l-0.27,0.602l1.43,0.043l0.674,0.299l1.357-0.17l1.473-0.559l0.38-0.428l0.698,2.1l0.823,0.645z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M372.714,168.835l1.802-0.236l1.802-0.236l2.146,1.244l1.656,1.779l1.66,1.781l0.449,0.129l1.043-2.145l1.338,0.771l0.377-0.086l3.121-0.814l0.26,0.258h2.156h2.154h2.155h2.155l0.39-2.146l-0.596-0.428l-0.255-2.734
+ l-0.252-2.734l-0.252-2.734l-0.25-2.734l-0.248-2.732l-0.246-2.734l-0.243-2.734l-0.24-2.736h1.973h1.973l-2.122-1.471l-2.115-1.471l-2.108-1.471l-2.102-1.471l-0.062,3.307h-1.84h-1.839h-1.839h-1.839l-0.077,3.285l-0.069,3.283l-2.243,1.113l-0.045,2.166
+ l-0.044,2.166h-2.2h-2.199h-2.2h-2.2l-0.26,1.457l0.128-0.643l1.449,1.502l-0.177,2.658l0.687,2.529l-0.611,3.047l-0.61,3.045l0.51-1.029z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M538.193,262.876l-0.964,0.953l1.129-0.598l-0.165-0.355z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M511.117,244.388l0.066,0.211l0.162-0.385l0.092-0.227l-0.372-0.174l0.052,0.574z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M394.218,124.037l-2.023,1.289l-2.031,1.287l-1.048,1.99l-1.051,1.986l0.265,2.264l-1.05,1.838l-1.052,1.842l-1.676,1.178l-1.678,1.18l-2.484,1.072h2.48h2.481h2.481h2.482l0.5-3.002l1.809-1.006l1.805-1.006
+ l1.924-0.814l1.922-0.811l1.576-1.111l1.572-1.111l-0.057-1.537l2.938-1.111l2.348-0.17l0.508-0.729l-1.395-2.271l-0.313-1.914l-0.31-1.926l-0.532-0.564l-1.459-0.477l-0.607,0.086l-3.708-0.217l-1.185-1.525l-1.196,1.09l-1.116,2.105l-1.121,2.096z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M487.155,264.441l-0.208-1.715l-0.109-0.773l0.97-0.041l2.572-2.145l1.646-2.23l1.968-1.18l1.969-1.18l2.824-1.76l1.884-3.131l0.511-2.059l-0.269,0.129l-0.254-3.689l0.275-1.244l-0.022-3.559l0.094-1.717h-0.189
+ l-2.354,1.158l-2.354,1.158l-1.209,0.086l-1.64,0.645l-2.623-0.43l-1.248,0.172h-1.055l-0.769,0.514l-0.436,1.889l0.362,2.572l1.335,1.48l1.329,1.48l-0.324,1.887l-0.329,1.887l-1.251,1.115l0.265,1.502l-1.062-1.672l-1.066-1.674l0.823-2.617l-0.863-0.943
+ l-1.425-0.043l-0.712-1.072l-1.714,0.697l-1.716,0.697l-1.713,0.695l-1.714,0.697l0.399,1.373l-0.039,0.986l1.163-0.041l2.171,0.922l2.169,0.922l0.006,3.131l-0.439,2.188l0.262,2.316l-0.816,2.229l-0.472,2.059l-1.404,1.373l-1.401,1.371l0.424,1.846l0.419,1.844
+ l0.066,2.703l0.051,2.705l0.214,2.275l1.685,0.045l0.045-1.676l-0.548-0.602l2.611-2.189l1.913-1.096l1.916-1.094l0.026-1.029l0.284-2.273l0.276-2.273l-0.487,0.771l-0.345-2.186l-0.349-2.188z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M453.621,274.906l0.126-3.561l0.114-3.559h2.226l0.076-2.371l0.074-2.367l0.073-2.371l0.072-2.369l2.622-0.301l2.622-0.299l0.829,0.9l1.788-0.986l1.74-0.645l-2.438-0.771l-1.544,0.342l-3.395,0.408l-3.392,0.408
+ l-2.115-0.471l-2.117-0.473l-0.359-0.516l-2.605-0.074l-2.605-0.074l-2.606-0.076l-2.605-0.076l-1.707-0.729l-2.741,0.688l-0.099,1.457l1.513,3.131l1.505,3.131l1.497,3.131l1.488,3.131l0.266,1.285l-0.479-0.127l0.388,2.627l0.381,2.629l0.372,2.629l0.363,2.631
+ l1.273,1.76l1.267,1.758l1.264-1.414l0.734,1.672l3.374,0.471l1.907-0.943l0.224-2.402l0.217-2.402l0.209-2.406l0.204-2.404z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M413.723,178.486l0.528,0.771l0.53,1.287v0.043l0.074-0.387l0.638-0.814l2,1.717l0.071-1.072l0.71-1.674l0.442-1.887l2.177-0.686l2.256,0.215l1.551,1.457l2.288-0.643l1.697,0.686l1.699,0.688l2.581-1.289
+ l2.296,0.238l2.296,0.234l2.535-1.502l-0.067-2.059l1.025-1.531l1.021-1.535l1.021-1.533l1.017-1.533l0.107-1.953l0.105-1.951l0.104-1.951l0.104-1.951l0.532-1.07l-1.852-2.959l-0.269-1.932l-0.269-1.928l-0.073,0.041l-1.607,0.943l-1.849-1.543l-3.198-0.771
+ l-2.483,1.715l-2.491,1.715l-2.498,1.715l-2.505,1.717l-1.803,1.801l-1.808,1.801l-1.748,0.387l-1.749,0.385l-0.1,1.877l-0.102,1.875l-0.102,1.879l-0.102,1.877l-1.188,2.273l-2.474,0.084l-2.475,0.086l-2.062,0.814l-0.376-0.084l0.264,2.229l1.843,1.889
+ l-0.339,0.086l-0.074,0.814l1.355,1.072l0.79-0.172z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M533.036,264.861l-0.387,1.01l1.172-0.225l-0.785-0.785z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M476.642,214.73l-0.995,1.844l-0.542,1.502l0.113,0.043h0.151l1.97-0.129l0.234-0.814l1.249,0.172l0.646-0.26l-0.815-3.172l-1.367,0.814h-0.644z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M424.742,210.421l-0.338-0.291l-0.335,0.508l0.192,0.463l0.48-0.68z M426.119,207.181l-0.016-0.24l0.221-0.092v0.018l-0.205,0.314z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M535.475,223.482l-0.159-0.5l-0.157,0.023l0.316,0.477z M514.686,235.312l-0.711,0.123l0.543-0.203l0.168,0.08z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M386.1,189.337l-0.87,0.215l0.201-1.715l-1.453-2.402l-3.063,0.771l-1.675,1.717l0.713,0.471l-0.57,0.473l0.753,0.301l-0.722,0.514l1.498,1.672l0.487,0.43l-0.38,0.387l2.298,1.158l0.686-0.816l1.049-1.586
+ l1.048-1.588z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M524.492,185.177l0.798-0.814l-0.341-0.043l0.206-3.176l-0.671-0.684l-1.177,0.643l-3.151,0.707l-3.154,0.709l-2.148,0.984l-2.082-0.256l-2.902,1.072l-1.386-1.352l-1.386-1.352l-0.634,1.244l-0.329,1.416
+ l1.456,1.865l1.452,1.865l1.707,0.645l1.708,0.643l1.707,0.643l1.709,0.645h2.229l-1.666,1.994l-1.671,1.994l-1.677,1.994l-1.682,1.994l-1.813,0.172l-1.813,0.174l-2.17,1.457l-1.089,0.602l-1.019,1.457l-1.023,1.459l0.035,2.381l0.025,2.381l0.015,2.379
+ l0.006,2.381l1.237,2.059l1.052-1.588l1.049-1.586l1.601-1.555l1.598-1.555l1.592-1.555l1.587-1.555l1.357-1.416l1.354-1.416l1.352-1.414l1.348-1.416l1.556-3.088l1.546-3.088l1.532-3.088l1.52-3.09l0.652-2.873z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M462.993,160.986l0.086,2.445l0.084,2.445l0.08,2.443l0.077,2.445l-1.46,0.043l-0.805,0.686l-1.108,2.018l-0.015,0.9l-0.283,0.686l-0.197,1.158l-0.821,1.973l0.868,0.129l0.944,1.93l0.403,1.373l0.215,1.416
+ l0.973,1.607l0.97,1.609l-0.377,2.445l1.631,0.43l0.388,0.729l2.063,1.5l0.431,1.072l2.029,1.93l0.887,1.33l1.269,1.717l0.351,0.814l0.575,0.6l1.829,1.074l1.284-0.172l0.9-0.602l1.607,1.523l1.607,1.521l0.222-0.514l1.665-0.086l0.571,0.301l1.018-0.387h2.536
+ l1.083-1.201l0.856-1.029h1.76h1.76l-0.599-1.973l-1.334-0.645l-0.859-1.715l-0.862-1.715l-2.228-1.975l-0.844-0.686l0.845-1.158l1.578-0.344l0.294-2.83l0.284-2.832l1.238-0.213l0.555-2.875l0.92-1.758l1.035-0.514l0.323-1.932l0.318-1.93l0.256-3.561l0.852-3.26
+ l1.42-1.094l1.417-1.094l0.28-0.342l-2.526-1.846l-0.563-3.109l-0.563-3.107l-0.734-1.846l-1.504-1.65l-1.504-1.65l-0.796,0.943l-0.604-0.215l-0.475,1.459l-1.212,0.213l-0.458,1.158l-2.78-0.322l-2.779-0.32l-0.139-0.559l-0.269,0.559h-1.743h-1.744h-1.743
+ h-1.742h-1.743h-1.743h-1.742h-1.743l0.098,2.572l0.096,2.572h-2.232l0.045,1.287z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M478.735,277.396l-1.075,1.289l-0.126,1.889l2.18,0.816l0.413-1.16l-0.214-2.275l-1.178-0.559z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M494.967,219.791l-0.179-0.9l-2.078-1.287l-2.082-1.285l-2.083-1.289l-2.088-1.285l-1.95,0.041l-1.952,0.045l-1.951,0.041l-1.951,0.045l0.815,3.172l-0.646,0.26l-0.011,1.285l0.56,0.814l-1.323,1.588l-1.323,1.588
+ h-0.53l0.071,1.887l0.069,1.887l0.801,2.145l0.972,1.846l0.969,1.844l0.143,0.428l2.353,1.352l2.348,1.352l2.295,0.344l0.854,0.514l0.646,2.703l0.657,2.016h1.017l1.248-0.172l2.623,0.43l1.64-0.645l1.209-0.086l2.354-1.158l2.354-1.158l-1.499-1.543l-0.461-2.488
+ l-0.252-2.016l-0.207-0.816l0.467-2.443l-1.506-2.23l1.005-3.432l-1.696-1.693l-1.7-1.695z M499.113,227.769l-0.849-1.115l0.427-0.559l0.422,1.674z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M410.866,182.861l-1.884-0.342l0.339,0.814l0.905,2.271l-0.037,1.158l0.189,1.76l0.34,1.672l0.096,2.016l0.095,2.018l1.172,1.244l0.984-0.301l-0.078-1.93l-0.077-1.932l-0.077-1.93l-0.077-1.93l-0.342-2.016
+ l-1.246-1.502l0.264-1.072h-0.565z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M487.544,202.333l-0.972-2.016l-1.083,1.201h-2.536l-1.018,0.387l-0.571-0.301l-1.665,0.086l-0.222,0.514l-0.168,2.23l1.184,1.158l-1.448,1.674l-1.451,1.672l-0.471,2.895l-0.481,2.896h0.644l1.367-0.814l1.951-0.045
+ l1.951-0.041l1.952-0.045l1.95-0.041l-0.032-2.832l1.547-2.572l0.936-2.018l-0.68-1.994l-0.684-1.994z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M371.599,156.269h2.2h2.2h2.199h2.2l0.044-2.166l0.045-2.166l2.243-1.113l0.069-3.283l0.077-3.285h1.839h1.839h1.839h1.84l0.062-3.307l0.021-0.986h-2.482h-2.481h-2.481h-2.48l-1.254,2.66l-1.738,1.59l-0.83,1.977
+ l-0.83,1.973l-1.756,2.061l0.414-0.258l-1.491,3.154l-1.491,3.15l-0.074,1.457l0.26-1.457z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M476.642,214.73l0.481-2.896l0.471-2.895l1.451-1.672l1.448-1.674l-1.184-1.158l0.168-2.23l-1.607-1.521l-1.607-1.523l-0.9,0.602l-1.284,0.172l-1.829-1.074l-0.575-0.6l-1.177-0.301l-1.798-0.191l-1.8-0.193
+ l-0.824,0.771h-1.627l-2.338,0.814l-1.022-0.129l-1.008,1.502l-2.145-0.623l-2.144-0.621l-2.356-1.33l-1.874,2.316l0.126,1.93l-0.631,2.23l-0.332,1.932l-0.335,1.93l-0.338,1.93l-0.342,1.93l-1.575,2.102l-1.578,2.102l-0.313,1.994l-0.313,1.996l-1.731,1.693
+ l-1.733,1.693l-0.22-1.158l-1.363,0.129l-0.647,0.773l-1.171-0.387l-1.063,0.773l-0.2,2.014l-0.758,0.174l0.376,0.471l1.854-0.258l1.938,0.076l1.938,0.074l1.938,0.076l1.938,0.074l0.906,2.424l0.902,2.424l1.58,0.6l2.802-0.557l0.478-2.273l2.305,0.172
+ l-0.082,0.557l2.98,0.428l0.074,2.961l0.07,2.959l0.746,2.66l0.058,1.029l1.872-0.408l1.874-0.408l0.841,1.244l1.852-0.258l0.284,0.773l3.025,1.115l0.852-0.988l0.992,0.988l1.404,1.029l1.849,2.488l0.941-0.045l0.557,0.215l0.47-3.258l-0.736,0.814l-2.18-1.545
+ l0.186-2.209l0.182-2.209l-0.446-2.188l1.244-1.93l2.085-0.473l2.086-0.471l-0.969-1.844l-0.972-1.846l-0.801-2.145l-0.069-1.887l-0.071-1.887h-0.037l-0.394-2.104l-0.396-2.102l-0.074-0.172l-0.075-0.127l-0.113-0.043l0.542-1.502l0.995-1.844z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M463.513,244.453l-2.259,0.086l-2.257,0.086l-0.047,2.039l-0.05,2.035l-0.054,2.039l-0.057,2.037l1.608,1.887l1.604,1.887l1.544-0.342l2.438,0.771l3.185,0.73l2.129-1.93l2.395-1.975l0.694-1.543l1.684-0.43
+ l1.685-0.43l-0.399-1.373l1.714-0.697l1.713-0.695l1.716-0.697l1.714-0.697l-1.01-1.158l1.173-2.488l0.358-0.643l0.099-1.994l0.092-1.996l0.514-0.898l-1.343-2.104l-0.176-0.6l-2.348-1.352l-2.353-1.352l-0.143-0.428l-2.086,0.471l-2.085,0.473l-1.244,1.93
+ l0.446,2.188l-0.182,2.209l-0.186,2.209l2.18,1.545l0.736-0.814l-0.47,3.258l-0.557-0.215l-0.941,0.045l-1.849-2.488l-1.404-1.029l-0.992-0.988l-0.852,0.988l-3.025-1.115l-0.284-0.773l-1.852,0.258l-0.841-1.244l-0.036,2.66l-0.041,2.658z"/>
+ <path style="fill:#E5DEED;stroke:#E5DEED;" d="M474.505,268.085l0.177,0.172l2.136,0.299l2.136,0.301l1.401-1.371l1.404-1.373l0.472-2.059l0.816-2.229l-0.262-2.316l0.439-2.188l-0.006-3.131l-2.169-0.922l-2.171-0.922l-1.163,0.041l0.039-0.986l-1.685,0.43
+ l-1.684,0.43l-0.694,1.543l-2.395,1.975l-2.129,1.93l-3.185-0.73l1.308,2.51l1.301,2.51l1.66,1.285l0.387,0.557l0.565,0.73l0.801,2.145l1.963,0.898l0.536,0.473z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M709.782,240.593l-0.998-0.172l-0.648-0.256l-0.266,0.342l-0.652-0.215l0.921,0.516l0.915,0.557l-0.424,1.029l-0.645,0.344l-2.033-0.299l-0.768,0.428l-0.616,0.729l-0.409-0.342l-0.295,0.557l-0.854,1.373
+ l-0.188,0.559l-0.933,0.77l-1.033,1.975l0.675,0.258l0.311,0.428l-0.695,0.857l0.839,0.859l-1.778-1.33l-0.21,0.385l-1.552-0.643l-0.468,1.33h-0.412l-0.436,0.387l0.131-0.602l0.468-1.586l-2.188-2.318l-0.221,0.516l-1.005,0.473l-0.103-0.344l-0.492,0.299
+ l-0.514-0.084l-0.421,1.373l-0.396-0.645l-1.192,1.244l0.065,0.814l-0.874-0.17l0.453,1.199l-1.052-0.471l-0.692,1.072l0.205,0.129l0.307-0.043l-0.583,0.6l-0.075,0.688l0.541,0.129l-1.229-0.045h-0.561l-0.497-0.17l-0.278,0.557l0.323,1.201l-0.574,0.301
+ l0.019,2.059l-0.646-1.887l-0.658-1.889l-0.77,0.816l-1.462,2.016l-0.064,1.674l-2.193,2.486l-1.759,0.986l-1.757,0.986l-2.6,0.6l-2.037,0.688l-2.034,0.686l-0.64-0.387l-3.037,2.08l-3.041,2.08l-0.895,0.857l0.075-1.672l-1.069,2.445l-1.122,2.787l-0.277,2.273
+ l0.267,1.826l0.242,1.824l-0.544,0.43l-0.104-0.645l-0.67-1.246l0.12,2.619l-0.577-1.115l-0.237-0.086l0.387,2.404l0.341,2.402l0.241,2.209l0.202,2.205l-0.139,1.869l-0.166,1.869l-0.19,1.869l-0.216,1.871l-1.692,2.574l-1.014,0.215l-0.129,1.596l1.497,0.951
+ l1.488,0.953l2.852-0.26l2.681-1.084l0.458-0.346l1.389-1.078l2.429-0.021l2.429-0.021l2.993-0.129l2.181-2.064l2.848-1.07l2.849-1.07l2.715-0.535l2.717-0.533l2.768-0.428l2.769-0.428l1.502,0.512l3.062,1.113l0.661,0.77l0.221,0.6l0.288,1.113l0.222,1.74
+ l0.197,1.748h-0.465l0.983,0.996l0.498-0.391l2.599-2.289l2.66-1.977l1.019-1.285l-0.615,1.93l-1.588,2.045l-1.609,2.053l-1.069,0.695h1.606l1.91-2.383l0.574,1.256l-1.805,2.041h1.319l1.09,2.184l-0.688-2.053l0.563,1.135l-0.841,2.447l0.184,2.619l2.136,0.959
+ l1.548,0.586l1.54,0.584l3.168-1.215l-0.057-0.348l1.387-0.609l-0.933,1.131l0.479,0.088h0.88l0.35,1.256l0.454,0.434l0.669-0.865l4.19-2.086l2.05-0.262l2.715-0.83l1.038-1.396l2.295-2.645l2.251-2.635l2.167-2.854l0.894-0.73l2.589-2.104l1.023-0.641
+ l1.735-2.383l1.69-2.381l1.643-2.385l1.593-2.387L746,283.47l0.106-1.779l0.546-2.041l0.504-2.039l-0.293-1.588l-0.81-1.416l-0.83-1.418l-1.408-1.543l0.517-3.002l-0.354,0.557l-1.036-0.943l-0.245,1.029l-0.726-0.686l-0.069-2.102l-0.848-2.016l0.236-0.729
+ l-0.621-0.729l-1.579-1.631l-2.427-1.887l-0.05-2.424l-0.069-2.424l-0.39-1.844l0.216-2.402l-0.443-1.115l-1.228-1.416l-1.476,0.301l-0.146-1.822l-0.163-1.824l-0.217-2.273l-0.568-1.457l-0.449-1.287l-0.232-0.6l-1.158,2.145l-0.468,1.029l-0.569,1.457
+ l0.354,0.172l-0.08,0.301l-0.708,1.029l-0.037,1.029l-0.345,0.043l-0.27,2.102l-0.293,2.102l-1.521,2.939l-1.555,2.938l-1.74,0.301l-1.516-1.244l-2.358-1.588l-2.372-1.586l-1.299-1.502l-1.313-1.502l1.541-2.486l0.701-1.502l0.416,0.258l0.574-0.902l1.063-1.5
+ l-1.06-0.857l-0.898,1.158l-0.252-0.688h-0.602l0.274-0.387l-2.006,0.387l-1.512-0.256l-1.127-0.645l-1.532-1.072z M713.216,321.65l-2.464,1.656l-1.015-0.703l0.132-0.043l-0.086-2.279l0.34-0.25l0.309,0.209l0.261-1.791l0.225-1.803l0.656-0.379l1.859,0.736
+ l1.849,0.734l0.496-0.924l2.735-0.252l-1.871,3.221l-0.438-0.168l-2.598,2.656l0.359-0.414l-0.491-0.082l-0.258-0.125z M705.583,240.421l1.105,0.215l-1.471,1.328l-1.133-1.629l0.396,0.172l1.103-0.086z M704.357,303.376l-3.333,0.654l0.495-0.828h2.173
+ l0.665,0.174z M717.727,246.898l-0.258,0.215l0.442,0.557l-1.453,0.172l0.887-1.156l0.382,0.213z M703.563,240.636l0.957,0.859l-1.305,0.213l0.348-1.072z M748.575,274.82l-0.013,0.688l-1.348,1.674l1.36-2.361z M711.334,314.277l-0.636,0.127l0.942-0.939
+ l-0.307,0.813z M719.347,313.849l0.355,1.064l-0.271,0.043l-0.084-1.107z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M34.285,241.937l0.059-0.088l-0.032-0.08l-0.495-0.318l-0.122-0.006l0.21,0.332l0.38,0.16z M45.857,238.121l0.133,0.168l-0.021,0.119l-0.173,0.012l-0.132-0.117l0.154-0.203l0.04,0.021z M58.872,267.513l-0.082,0.16
+ l-0.171-0.182l0.024-0.23l0.066-0.037l-0.027,0.029l0.042,0.012l0.149,0.248z M54.255,265.826l-0.037,0.027l0.271,0.178l-0.153,0.156l-0.211-0.186l0.13-0.176z M52.477,259.966L52.359,260l-0.103-0.123l-0.208-0.246l0.457,0.221l-0.028,0.115z M54.73,260.796
+ l-0.171,0.002l-0.102-0.104l0.2-0.117l-0.027,0.027l0.043-0.066l0.145,0.127l-0.087,0.131z M45.493,237.587l-0.113,0.225l-0.082-0.014l-0.071-0.135l0.246-0.137l-0.01-0.041l0.061,0.053l-0.03,0.049z M52.333,259.253l0.369,0.158l-0.441,0.025l0.072-0.184z
+ M44.493,257.886l-0.216-0.041l-0.039-0.08l0.311-0.023l-0.077-0.063l0.162,0.105l-0.141,0.102z M57.273,262.011l0.114-0.063l0.144,0.125l-0.151,0.1l-0.106-0.055l-0.001-0.107z M58.599,263.142l-0.052-0.014l-0.118-0.074l0.115-0.148l0.122,0.111l-0.067,0.125z
+ M52.03,260.216l0.099,0.084l0.009,0.078l-0.168,0.029l-0.065-0.139l0.125-0.053z M41.582,245.875l-0.071-0.244l0.122-0.002l0.068,0.182l-0.048,0.049l-0.07,0.016z M41.36,245.185l0.006,0.139l-0.101,0.045l-0.08-0.232l0.09-0.018l0.084,0.066z M56.905,262.722
+ l0.044,0.041l0.083,0.121l-0.104,0.063l-0.122-0.104l0.098-0.121z M52.954,260.089l-0.065,0.055l-0.115-0.133l0.058-0.123l0.112,0.104l0.01,0.098z M42.116,245.273l-0.099,0.086l-0.174-0.039l0.047-0.107l-0.032-0.031l0.258,0.092z M33.32,239.597l-0.142,0.084
+ l-0.134-0.18l0.092-0.016l0.185,0.111z M52.042,259.562l-0.073,0.172l-0.084-0.131l0.066-0.143l0.091,0.102z M32.7,239.695l-0.051,0.018l-0.164-0.039l0.039-0.148l0.03-0.008l0.145,0.178z M55.838,262.044l0.115,0.043l-0.118,0.121l-0.111-0.094l0.113-0.07z
+ M52.779,259.572l-0.077-0.16l0.076-0.045l0.099,0.182l-0.098,0.023z M32.95,239.144l-0.091,0.107l-0.113-0.188l0.205,0.08z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M809.622,257.708l0.006-0.172l-0.689-1.717l-2.05,1.029l-0.047,1.074l2.78-0.215z M812.64,254.148l0.602-0.172l-2.896,0.686l0.08-0.643l3.006-0.986l-0.791,1.115z M807.761,260.181l0.53-0.301l-0.599,0.529
+ l0.068-0.229z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M74.31,256.25l-0.385,0.299l1.238,0.559l-0.853-0.857z M69.655,254.535l-0.095,0.086l-0.277-0.26l0.372,0.174z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M52.103,206.623l-0.401-0.471l-0.35,0.256l0.751,0.215z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M802.094,203.306l0.053-0.029l-0.129,0.018l-0.147,0.088l0.058,0.043l0.166-0.119z M792.113,192.375h0.025h-0.198l-0.146-0.068l0.319,0.068z M802.614,206.751l0.005-0.195l-0.19-0.297l-0.027-0.047l0.225,0.332
+ l-0.012,0.227l-0.054-0.012h0.044l0.01-0.008z M799.156,192.884l0.071-0.053l-0.039,0.086l-0.032-0.033z M802.861,207.646l0.027,0.037l-0.104-0.01l0.076-0.027z M803.296,206.177l-0.042-0.047l0.08,0.008l-0.038,0.039z M790.888,196.757l-0.02-0.037l0.058-0.049
+ l-0.038,0.086z M792.412,191.634l-0.012,0.037l-0.046-0.08l0.058,0.043z M802.512,207.222l-0.02-0.104l-0.006-0.143l0.025,0.246z M802.576,207.283l0.032,0.1l-0.037-0.082l0.005-0.018z M802.198,206.398l0.052-0.002l0.032,0.016l-0.084-0.014z M802.313,202.71
+ l-0.003,0.084l-0.009-0.029l0.012-0.055z M803.31,205.998v0.049l-0.022-0.023l-0.021,0.041l0.043-0.066z M798.529,192.523l0.015,0.031l-0.017-0.016l0.002-0.016z M791.512,192.119l-0.005-0.113v-0.045l0.005,0.158z M802.308,203.105l-0.134,0.1l0.087-0.066
+ l0.047-0.033z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M30.202,144.83l-0.032-0.002l0.014,0.027l0.018-0.025z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M788.866,212.572l0.025-0.061l-0.037-0.068l-0.074,0.105l0.086,0.023z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M780.858,268.429l-1.274-1.342l-1.286-1.34l-1.292-1.338l-1.3-1.342l0.255,1.545l1.808,1.844l1.789,1.844l1.301,0.129z M782.485,265.449l-0.614-0.891l0.737,0.805l-0.123,0.086z M783.868,266.378l-0.673,0.188
+ l0.616-0.215l0.057,0.027z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M763.237,323.845l1.025,0.125l-0.1-0.621l-0.857-0.498l0.96,0.082l0.032-0.455l1.335-0.414l2.742-1.764l2.726-1.77l1.191-1.17l-0.726,0.041l0.627-0.545l-0.356,0.42l-0.39-0.127l0.352-0.504l-2.114,0.631l0.166-1.137
+ l0.934-0.506l-1.026,0.211l-4.116,2.895l-1.706,1.291h0.621l-2.405,1.369l-1.905,0.83l-4.05,1.863l-1.126,0.207l-2.924,1.494l-1.325,0.621l-0.814,0.334l-0.919,1.041l-0.169-0.166l-0.647,0.541l-0.476,0.293l-1.191,0.795l0.369,0.166l-0.173,0.17l0.768,0.375
+ l1.769,0.586l1.06,0.42l4.961-2.051l2.8-2.211l-0.776-0.293l0.88,0.209l0.899-0.996l0.383-0.873l1.094-0.248l1.847-0.455l-0.894-1.449l0.647-0.332l0.208,0.125l0.792,1.449z M774.717,312.39l2.864-1.469l2.21-2.826l0.536-1.18l0.64-0.568l-0.845,0.219l0.401-1.225
+ l0.426-0.699l-0.046-0.393l-0.423-0.48l-0.214,1.004l0.328-2.4l-0.318-0.738l0.297-1.82l0.115,0.172l0.373,0.91l0.996,1.172l0.401,0.045l-0.491,1.133l-0.485,1.922l-0.389,0.918l1.122,0.699l0.943-1.574l-0.621,2.623l2.304,1.176l2.396-0.959l0.364,0.307
+ l-2.928,2.521l-1.027,1.125l-2.389,0.604l-1.596,2.01l-3.042,1.883l-3.069,1.865l-0.651-0.67l3.147-2.908l-0.652-1.193l-0.678-1.203z M748.01,331.81l-1.46,0.418l0.809-0.879l0.664,0.209l-0.013,0.252z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M29.517,259.98l-0.176,0.344l0.314-0.086l-0.138-0.258z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M750.722,237.505l-2.299-0.686l0.244-0.516l-1.214-0.643l0.058-0.945l-1.383-0.129l-0.965-2.186l-1.459-1.459l-1.072-2.188l1.988-0.301l-0.201-1.371l-1.982-0.859l-1.985-0.857l-0.117-1.115l-1.935-2.488
+ l-2.153-0.975l-2.157-0.977l-2.161-0.977l-2.166-0.975l-0.09,2.102l-0.107,2.102l-0.122,2.102l-0.132,2.102l-0.145,2.102l-0.158,2.102l-0.173,2.104l-0.189,2.102l2.182,0.064l2.184,0.063l1.158-1.07l-2.515-1.459l3.124,0.129l-0.284-0.645l0.856,0.129
+ l-0.123-1.244l1.359,0.473l0.125-0.6l2.93,1.113l1.168,1.523l1.158,1.523l1.152,1.285l1.145,1.287l2.17,0.494l2.167,0.492l1.29,0.258l-0.091-0.514l0.921-0.473z M755.475,222.322l-0.674,1.715l-0.48,0.387l0.136,0.814l-1.525,0.73l-3.086,1.371l-1.856-0.471
+ l-1.424-0.73l-0.472-0.857l3.088,0.215l0.771-1.373l-0.01,0.729l1.246,0.602l2.188-1.631l0.059-1.543l1.181-0.129l0.859,0.172z M763.105,228.455l-0.64,0.43l-1.492-1.717l-0.456-2.059l1.299,1.674l1.289,1.672z M757.095,222.451l-0.775,0.9l-1.327-3.217
+ l-1.369-1.008l-1.375-1.008l1.812,1.35l1.805,1.352l1.23,1.631z M751.741,236.808l-0.649,0.395l-0.223-0.768l0.872,0.373z M760.579,224.593l-0.365,0.219l0.287-0.332l0.078,0.113z M745.413,225.751l-0.012,0.08l-0.646-0.102l0.657,0.021z M743.555,224.964
+ l-0.285-0.416l0.126,0.07l0.159,0.346z M734.76,233.548l-0.653-0.537l0.04,0.008l0.613,0.529z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M773.223,236.648l0.127-0.129l-2.212-1.459l-0.382,0.73l2.467,0.857z M764.518,228.283l1.96,1.889l-1.393-0.516l-0.567-1.373z M776.351,239.093l-1.704-1.115l-0.31-0.559l2.032,1.244l-0.019,0.43z M766.996,233.13
+ l-0.685-0.729l-0.479-0.129l0.687-0.473l0.477,1.33z M773.508,232.574l0.978,3.258l-1.042-2.615l0.064-0.643z M771.409,233.173l-1.257-1.244l-1.265-1.244l1.356,1.266l1.351,1.266l-0.186-0.043z M764.738,231.22l-0.484-0.092l0.396-0.158l0.088,0.25z
+ M784.441,239.066l0.029-0.367l0.293-0.064l-0.322,0.432z M771.744,241.55l-0.521-0.686l0.271,0.254l0.25,0.432z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M19.732,266.371h0.075l-0.095-0.215l0.026-0.043l-0.108-0.129l0.022,0.086l-0.065,0.172l0.146,0.129z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M809.216,243.322l-0.268,0.006l0.065,0.039l0.116,0.018l0.086-0.063z M811.618,226.904l-0.013-0.057l0.023,0.051l-0.011,0.006z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M785.276,251.103l0.058-1.201l-0.243,0.086l-0.476-0.816l-0.36,1.975l1.021-0.043z M786.198,253.591l-0.869-0.131l-0.094-1.459l0.963,1.59z M787.236,252.57l-0.195,0.709l-0.163-0.072l0.358-0.637z M788.018,259.49
+ l-0.346,0.43l0.256-0.668l0.09,0.238z M787.501,254.527l-0.435-0.516l-0.072-0.184l0.507,0.699z M787.958,261.304l0.03,0.014l-0.459,0.047l0.429-0.061z"/>
+ <path style="fill:#E6E6E6;stroke:#E6E6E6;" d="M21.223,246.384l-1.431-0.43l1.35,0.602l0.081-0.172z"/>
+ <path style="fill:#FFFFCC;stroke:#FFFFCC;" d="M251.3,178.718l-0.055,0.064l0.362,0.436l-0.308-0.5z"/>
+ <path style="fill:#FFFFCC;stroke:#FFFFCC;" d="M271.127,262.855l0.271-1.115l2.926-0.387l2.928-0.385l2.304,1.672l-0.037,0.428l0.383-0.299l-0.367-0.816l0.469-1.928l0.473-1.932l-0.455-0.986l-1.422-1.416l-0.29-2.23l-2.057-0.215l-2.057-0.213l-0.305-2.016
+ l-0.823-0.988h0.413l-0.367-2.574l-0.671-1.07l-2.545-0.43l-2.552-1.717l-2.016-0.984l-1.652-0.559l-1.728-1.887l-0.191-2.145l-0.181-2.145l-1.781-0.172l-1.885,1.158l-1.882,1.158l-1.05,0.771l-2.907-0.086l1.134,1.994l1.142,1.996l-0.374,0.6l0.003,3.217
+ l-0.348,1.33l-0.087,2.145l0.301,2.145l0.735,0.258l-1.035,2.145l-0.013,1.029l0.64,1.201l0.697,1.758l1.253,1.717l-0.065,1.93l0.6,2.23l0.925,2.293l0.932,2.293l1.583,0.258l1.833-2.658l0.48,0.344l2.727,0.557l1.117,1.5l0.708-1.414l2.627-0.428l0.467,0.6
+ l0.532-2.768l0.543-2.764z"/>
+ <path style="fill:#FFFFCC;stroke:#FFFFCC;" d="M253.358,289.144l0.419,1.9l0.434,1.902l0.259,1.945l0.274,1.949l-0.267,2.303l-0.242,2.316l-0.22,2.33l-0.194,2.338l-0.585,0.875l0.777,2.225l0.796,2.213l0.604,2.408l-0.284,2.334l1.323,2.139l0.174,0.418
+ l0.852-0.459l0.81,0.041l0.64-0.375l-0.239,1.377l0.665,0.748l-0.339-0.289l0.094,0.789l0.276,1.41l0.131,1.654l0.082,0.912l1.205,0.996l-0.646,1.621l0.717,0.584l-0.528,0.041l0.004,0.668l0.064,0.084l0.064,1.297l0.208-0.168l-0.676,1.006l-0.16-0.713
+ l-0.791-0.041l0.117-0.879l-0.544,0.084l-0.58,0.166l-1.153,2.055l0.373-0.17l0.717-0.418l1.263,0.504l1.478,1.174l-0.648,0.504l0.594,0.42l-0.975,0.334l1.837-0.084l0.188-0.209l0.781,0.924l0.006,0.629l-1.527-0.336l-0.565-0.084l1.566,1.301l-0.599,0.25
+ l0.115,0.127l0.896,1.59l0.18-0.543l-0.066,0.25l0.732,1.002l-0.739,0.209l1.014,0.709l-0.573,0.125l0.451,0.373l-0.838-0.041l1.033,0.664l0.79,0.787l0.081-0.662l0.285,0.289l-0.358,0.623l-0.114,0.496l0.999,0.578l0.5,0.701l-0.578-0.205l1.079,0.906
+ l0.617,0.369l-0.393-0.822l0.59,0.535l-0.316-0.576h0.877l-0.881-0.535l1.538,1.152l0.098,1.109l-0.761-1.068l0.223,0.287l-0.251,0.166l-1.244,0.041l0.869,1.148l0.539-0.164l-0.208,0.613l1.05,0.615l-0.271-1.105l2.426,0.164l-2.257,0.572l0.379,0.695
+ l-0.343,0.164l1.291,0.367l-0.113-0.818l2.254-0.572l-0.722,1.553l-0.541-0.488l-0.074,0.121l-0.631,0.164l2.775,1.182l0.106-3.021l1.649-0.902l2.139,0.246l-3.436-0.945l-3.983-0.369l-1.158-1.113l-1.239-1.945l-1.209,0.082l-1.945-3.33l1.234-1.506l-0.351-3.439
+ l-0.387-2.852l-0.166-2.006l-0.515-1.084l-0.854-0.5l1.392-0.498l-1.694-0.953l-0.982-2.652l-1.083-1.367l-0.076-1.996l-0.8-3.402l-0.271-2.688l0.416-1.641l-0.306-1.52l-0.612-2.201l-0.593-2.209l1.065-1.746l-0.486-1.742l0.278-3.289l-0.553-1.504l-1.054-2.1
+ l-1.041-2.096l0.101-1.623l0.369-1.623l-0.116-1.859l-0.1-1.861l0.883-2.316l0.913-2.316l0.629-0.688l-0.809-1.502l-0.345-3.607l0.391-1.287l1.912-0.986l0.441-2.617l-0.458-0.473l-1.583-0.258l-0.932-2.293l-0.925-2.293l-0.6-2.23l0.065-1.93l-1.253-1.717
+ l-0.697-1.758l-0.64-1.201l-0.572,1.029l-0.784,1.115l-0.443,0.043l0.632,3.26l0.637,3.258l-0.068,2.83l-0.052,2.832l-0.053,1.113l0.402,3.219l0.052,2.791l-0.107,3.65l-0.043,3.646l0.177,1.584l0.053,2.566z M276.611,345.914l1.155,2.736l1.185,2.721
+ l-0.725-0.203l-0.909,0.164l-2.348-0.285l-0.722-0.121l-1.934-0.203l0.491-0.244l1.148-0.404l0.662,0.404h0.667l-1.167-0.607l1.402,0.283l0.672,0.082l1.113,0.285l0.304,0.039l-2.582-1.504l1.064-1.139h-1.698l-0.706-1.84l0.871-0.451l2.057,0.287z
+ M256.461,318.867l1.021,1.082l-0.357,0.166l0.455,1.617l-0.106,0.58l-0.824,0.291l-0.856-3.361l0.668-0.375z M260.92,336.314l0.979,2.162l-0.035,0.99l-0.558-1.617l-0.268,1.162l-1.162-1.471l0.542,0.404l0.501-1.631z M268.787,347.998l0.71,0.082l1.578,0.652
+ l-1.321,0.73l-0.105-0.568l-0.684,0.041l-0.471-0.326l0.003-0.406l0.524,0.162l-0.234-0.367z M260.91,336.072l-1.1-0.467l0.344-0.83l0.756,1.297z M273.846,348.191l0.673,1.557l-0.902-0.639l0.229-0.918z M270.985,349.044l0.681-0.098l0.571,0.922l-1.252-0.824z
+ M262.712,341.962l0.183-0.791l0.743,0.645l-0.926,0.146z M259.27,327.476l-1.079-0.412l0.817-0.213l0.262,0.625z M259.966,334.955l-0.269,0.473l-0.612-0.902l0.881,0.43z M261.59,339.638l-0.352,0.518l-0.521-0.713l0.872,0.195z M275.324,351.728l0.729,0.178
+ l-1.449-0.227l1.104-0.273l-0.384,0.322z"/>
+ <path style="fill:#FFFFCC;stroke:#FFFFCC;" d="M241.563,182.261l-0.783,1.115l0.405-0.473l-1.435,0.043l-1.594,2.102l-0.328,1.887l-2.499,2.402l-0.292,1.416l-0.433-1.244l-0.497-0.643l0.058,1.973l-0.859,0.643l-0.538,1.072l0.636,1.072l0.553,2.359l-0.53,1.072
+ l0.163,1.93l0.168,1.93l0.293,0.344l-1.474,2.873l-1.414,0.602l-0.443,1.416l-0.727,0.428l0.214,0.9l1.841,1.373l1.432,1.33l2.197-0.043l2.537,1.287l0.152-0.172l1.272,1.287l1.278,1.287l1.728,1.973l0.437,1.201l2.804,0.043l1.744,0.086l2.287,0.771l-0.875,3.131
+ l1.464,0.986l0.501-3.604l0.529-3.604l-0.929-2.701l-0.49-2.443l1.592-0.131l0.42-0.557l-1.246-0.557l-0.284-1.674h1.932h1.931l-0.222-0.385l0.564,0.256l1.225-0.9l0.844,2.145l0.491,0.172l-0.542-2.102l-1.292-1.973l0.745-1.201l-1.018-3.217l0.535-2.166
+ l0.54-2.166l-1.971,0.127l-1.97,0.131l-2.038-2.273l-1.754-0.086l-1.754-0.086l-1.627-0.902l0.067-1.629l-1.152-2.873l-0.904-0.043l0.978-2.145l1.25-2.145l1.26-2.146l1.536-0.471l0.231-1.244l-1.438,0.129l-2.1,1.309l-2.098,1.307l-1.286,0.088z"/>
+ <path style="fill:#FFFFCC;stroke:#FFFFCC;" d="M296.851,343.572l-0.727-0.412l-0.646-0.084l-0.335-0.123l-0.891-0.412l-0.09,0.867l-0.668,0.863l0.701,0.781l0.374-0.494l0.424-0.082l-0.004-0.287l1.862-0.617z M291.866,343.531l-0.531-0.578l2.365-0.123
+ l-1.208,1.359l-1.373,0.41l0.783-0.699l-0.366-0.205l0.331-0.164z"/>
+ <path style="fill:#FFFFCC;stroke:#FFFFCC;" d="M290.579,198.904l-2.111-1.975l-1.615-0.471l-0.439,0.943l-0.693,2.145l0.809,3.131l-1.251,2.486l1.511,0.301l2.195,0.129l1.493-2.402l1.501-2.4l-0.538-1.459l-0.048,0.471l-0.813-0.898z"/>
+ <path style="fill:#FFFFCC;stroke:#FFFFCC;" d="M278.883,202.548l-1.145-1.416l0.203-2.229l1.073-0.559l0.41-1.287l-0.135-2.016l-2.412-1.545l-0.482,0.945l0.154-2.531l-1.304-1.115l-1.301-1.115l0.517,0.344l-0.99-0.816l0.357,0.559l-2.111,2.016l0.947,1.072
+ l-1.657,0.986l-0.814,1.93l1.306,2.016l1.289-0.086l0.19,1.459l0.952,1.33l-0.617,2.316l0.252,3.045l1.494,1.887l1.402-0.043l2.247-1.115l2.316-0.428l-1.074-1.803l-1.067-1.801z"/>
+ <path style="fill:#FFFFCC;stroke:#FFFFCC;" d="M253.974,247.156l-0.003-3.217l0.374-0.6l-1.142-1.996l-1.134-1.994l-2.402,0.172l-0.145-1.93l-0.137-1.93l-1.521,1.242l-1.833-0.428l-1.337-1.072l-0.917-0.215l0.097-1.115l-1.034-1.951l-1.027-1.951l1.167-2.059
+ l0.611-1.975l0.617-1.973l1.79-0.857l1.792-0.857l1.916-0.516l0.797,0.086l-1.464-0.986l0.875-3.131l-2.287-0.771l-1.744-0.086l-2.804-0.043l-0.437-1.201l-1.728-1.973l-1.278-1.287l-1.272-1.287l-0.152,0.172l-0.644,0.215l0.807,2.059l-0.455-0.043l-1.438,3.002
+ l-2.411,1.609l-2.403,1.607l-0.907,2.08l-0.898,2.08l-2.482-1.844l-0.787,0.258l0.458-1.115l-0.193-1.502l-1.055,1.523l-1.049,1.521l0.838,3.389l-0.24,0.645l1.62,1.285l1.623,1.287l0.953,1.898l0.959,1.898l0.966,1.898l0.973,1.896l1.03,1.779l1.037,1.781
+ l1.513,2.809l1.531,2.811l-0.04,1.33l1.969,1.93l1.977,1.93l1.942,1.127l1.944,1.127l1.944,1.125l1.943,1.125l0.984,1.244l1.503,1.201l0.443-0.043l0.784-1.115l0.572-1.029l0.013-1.029l1.035-2.145l-0.735-0.258l-0.301-2.145l0.087-2.145l0.348-1.33z"/>
+ <path style="fill:#FFFFCC;stroke:#FFFFCC;" d="M278.883,202.548l1.067,1.801l1.074,1.803l1.019,0.299l-0.134-1.328l2.014-0.43l1.356,0.471l1.251-2.486l-0.809-3.131l0.693-2.145l0.182-1.244l-2.151-0.172l0.072,0.129l-2.008,0.129l-2.68-0.215l-0.405,1.029
+ l-0.41,1.287l-1.073,0.559l-0.203,2.229l1.145,1.416z"/>
+ <path style="fill:#FFFFCC;stroke:#FFFFCC;" d="M268.687,186.207l-0.171-0.387l-0.503-0.557l-0.869,0.043l0.457-0.086l-0.647-0.686l2.3-0.773l-2.471,0.043l-2.471,0.043l0.89,0.301l-2.313,1.029l-3.078-1.029l-2.131,0.021l-2.131,0.021l-0.778-1.631l-2.504-0.986
+ l-0.945-1.758l-0.632,1.072l1.088,0.686l-0.53,0.043l-2.974,1.244l-0.444,0.516l0.618,3.258l-1.003,1.244l-1.234-1.758l1.211-2.188l-0.668-2.102l1.503-1.158l-1.536,0.471l-1.26,2.146l-1.25,2.145l-0.978,2.145l0.904,0.043l1.152,2.873l-0.067,1.629l1.627,0.902
+ l1.754,0.086l1.754,0.086l2.038,2.273l1.97-0.131l1.971-0.127l-0.54,2.166l-0.535,2.166l1.018,3.217l-0.745,1.201l1.292,1.973l0.542,2.102l1.81,1.115l1.251-0.129l0.264,0.215l2.325-1.76l1.955-1.801l0.39-0.729l-1.43-0.516l-0.661-2.873l-0.725-1.33l2.252,0.771
+ l2.066,0.688l0.399-0.9l1.892-0.795l1.893-0.793l0.64-1.373l-0.188-0.043l-1.306-2.016l0.814-1.93l1.657-0.986l-0.947-1.072l2.111-2.016l-0.357-0.559l-2.262-0.086h-1.435l0.533-0.129l0.765-1.201l0.585-0.471l-1.376-1.33l-0.835,0.129l-0.845-0.516l0.086,0.602z
+ M265.156,182.919l-1.104-0.256l1.104,0.24l0,0.016z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M268.346,164.16l0-0.016l-0.004-0.01h-0.014l-0.011,0.006l-0.011,0.004l-0.008,0.01l-0.012,0.006l-0.012-0.002l-0.016-0.004h-0.016h-0.013l-0.012,0.004l-0.013,0.004l-0.01,0.004l-0.013,0.004l-0.012,0.004
+ l-0.011,0.006l-0.01,0.006l-0.007,0.012l-0.008,0.012l-0.009,0.008l-0.008,0.01l-0.007,0.012l-0.003,0.014l-0.004,0.018l-0.008,0.01l-0.008,0.01l-0.01,0.008l-0.012,0.002l-0.011,0.006l-0.01,0.008l-0.01,0.008l-0.012,0.004l-0.011,0.006h-0.013l-0.013,0.004
+ l-0.013,0.002l-0.012,0.002l-0.01,0.008l-0.008,0.01l-0.008,0.012l-0.008,0.01l-0.01,0.008l-0.008,0.008l-0.008,0.014l-0.008,0.012l-0.008,0.006l0.014-0.006l0.011,0.004l0.014-0.002l0.012-0.002l0.013-0.006l0.01-0.006l0.011-0.006l0.01-0.008l0.01-0.008
+ l0.009-0.008l0.01-0.006l0.013-0.002l0.008,0.008l0.007,0.008l0.006,0.012l0.009-0.01l0.012-0.004l0.01-0.006l0.012-0.006l0.008-0.01l0.008-0.012l0.011-0.004l0.01-0.008l0.012-0.004l0.012-0.004l0.012-0.006l0.009-0.008l0.012-0.004l0.012-0.004l0.012-0.004
+ l0.011-0.006l0.012-0.006l0.01-0.004l0.009-0.01l0.01-0.008l0.014-0.002l0.012-0.004l0.011-0.004l0.009-0.01l0.007-0.012l0.006-0.016l0.002-0.016v-0.014l0.009-0.01l0.01-0.006l0.01-0.008l0.008-0.012z M268.429,164.082l-0.004,0.012l-0.013,0.004l-0.01,0.004
+ l-0.011,0.006l-0.01,0.008l-0.013,0.002l0.001-0.016l0.009-0.01l0.008-0.01l0.009-0.014h0.012l0.014,0.006l0.008,0.008z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M270.768,167.042l-0.158,0.088l-0.055,0.26l0.437-0.088l-0.224-0.26z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M237.255,148.207l-0.469-1.848l-0.712,1.588l0.234,0.43l0.947-0.17z M238.762,144.298l0.327-1.115l-1.106-1.289l1.572,1.588l-0.793,0.816z M246.729,156.312l-0.08,0.387l-1.361,0.557l1.441-0.943z M245.242,153.167
+ l-0.817,0.605l0.409-0.785l0.408,0.18z M236.192,142.496l1.535,0.041l-0.903,0.131l-1.477-0.172h0.845z M237.503,149.623l-0.25,0.213l-0.352-0.943l0.297,0.258l0.305,0.473z M240.643,147.476l-0.046-1.459l-0.568-0.387l0.984,1.072l-0.369,0.773z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M275.28,177.39l0.021-0.072l-0.479-0.428l0.128,0.627l0.33-0.127z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M270.968,165.9l0.007-0.047l-0.271-0.23l0.03,0.121l-0.049-0.039l0.161,0.262l0.122-0.066z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M210.654,169.007l0.619-2.51l0.631-2.51l-0.212-0.385l-2.084,1.715l-0.398,2.467l-0.385,2.465h0.675l1.155-1.242z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M269.372,127.855h-0.036l-0.178,0.17l-0.081,0.045l-0.008,0.041l-0.153,0.043h0.108l0.081-0.043l0.17-0.129l0.008-0.041l0.089-0.086z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M264.833,163.712l0.001-0.016l-0.002-0.014l-0.008-0.01l-0.012-0.004l-0.016-0.002l-0.012,0.004l-0.009,0.006l-0.009,0.01l-0.014,0.002l-0.009-0.006l-0.017-0.004l-0.013,0.002l-0.01,0.008l-0.01,0.008l-0.009,0.008
+ l-0.011,0.006l-0.014-0.004l-0.012-0.006l-0.017,0.006l-0.011,0.004l-0.008,0.012l-0.008,0.01l-0.011,0.006l-0.011,0.006l-0.001,0.008l-0.001,0.016l-0.009,0.012l-0.009,0.008l-0.01,0.006l-0.011,0.006l-0.011,0.006l-0.011,0.006l-0.008,0.006l-0.008,0.012
+ l0.001,0.012l0.014,0.002l0.016,0.004l0.014,0.004l0.011,0.004l0.015,0.006h0.015l0.011-0.006l0.01-0.008l0.01-0.008l0.011-0.006l0.01-0.008l0.01-0.008l0.009-0.008l0.011-0.004l0.014-0.004l0.014,0.002l0.009-0.008l0.001-0.014l-0.006-0.008l0.01-0.008
+ l0.01-0.008l0.012,0.006l0.01,0.006l0.01,0.008l0.013,0.004h0.015l0.011-0.006l0.011-0.006l0.009-0.008l0.005-0.012l0-0.016l0.008-0.01l0.007-0.012z M265.54,163.037l-0.004,0.018l-0.012,0.004l-0.007,0.008l-0.011-0.004l-0.009-0.01l-0.008-0.008l-0.008-0.008
+ l-0.007-0.012l-0.008-0.008l-0.008-0.008l-0.01-0.006l-0.01-0.01l-0.014-0.002l-0.014-0.004l-0.014-0.004h-0.015h-0.015h-0.013h-0.015h-0.015l-0.016-0.002l-0.015-0.002l-0.015-0.002l-0.014-0.004l-0.013-0.004l-0.007-0.01l-0.008-0.008l0.003-0.016l0.013,0.002
+ l0.012-0.004l0.014-0.002l0.014-0.002h0.014h0.015l0.015,0.002l0.016,0.002l0.013-0.002l0.013-0.002l0.012-0.006l0.012-0.002l0.013-0.004h0.014h0.015l0.012,0.006l0.007,0.01l0.005,0.01l0.008,0.008l0.01,0.008l0.008,0.01l0.01,0.006l0.01,0.008l0.01,0.006
+ l0.005,0.01l0.006,0.012l0.004,0.012l0,0.014z M265.374,163.542l-0.004,0.012l-0.008,0.012l-0.01,0.008l-0.011,0.006l-0.014,0.002h-0.014l-0.01,0.008l-0.01,0.008l-0.009,0.008l-0.007,0.014l-0.015-0.002l-0.01-0.006h-0.011l-0.006,0.014l-0.008,0.012l-0.01,0.006
+ l-0.013,0.002l-0.013,0.004l-0.011,0.006l-0.01,0.008l-0.01,0.008l-0.007,0.012l-0.008,0.012l-0.006,0.012l-0.007,0.014l-0.01,0.006l-0.01,0.008l-0.013,0.004l-0.002-0.01l0-0.014l0.002-0.016l0.001-0.018l0.008-0.01l0.01-0.01l0.011-0.004l0.01-0.01l0.009-0.008
+ l0.01-0.008l0.008-0.01l0.009-0.01l-0.002-0.012l-0.002-0.014l-0.006-0.01l-0.004-0.012l0.003-0.014l0.008-0.008l0.015,0.002l0.008,0.008l0.013-0.002l0.014,0.004l0.01,0.008h0.015l0.011,0.006l0.012,0.004l0.011-0.004l0.007-0.012l0.007-0.012l0.012-0.004h0.012
+ l0.012,0.006l0.013-0.004l0.011-0.006l0.012-0.002l0.007,0.008z M264.453,163.705l-0.005,0.016l-0.01,0.008l-0.013,0.002l-0.014-0.004l-0.012-0.006l-0.012-0.004l-0.015-0.004h-0.015l-0.015-0.002l-0.014-0.004l0.011-0.01h0.012l0.013-0.002l0.011-0.006
+ l0.01-0.008l0.008-0.006l0.01-0.008l0.012-0.004l0.013,0.002l0.01,0.008l0.006,0.01l0.006,0.01l0.004,0.012z M264.806,163.935l-0.002,0.018l-0.004,0.016l-0.006,0.014l-0.009,0.008l-0.006-0.01l-0.002-0.012l-0.006-0.01l-0.013-0.002l-0.012,0.004l-0.013-0.002
+ l-0.012-0.006l-0.011,0.006l-0.01-0.008l0.004-0.016l0.014,0.002l0.01-0.008l0.011-0.006l0.01-0.008h0.013h0.015l0.009,0.006l0.012,0.006l0.008,0.008z M264.736,164.003l-0.005,0.014l-0.014,0.002h-0.012l-0.007,0.012l-0.009,0.006l-0.011,0.006l-0.011,0.006
+ l-0.011-0.002l0.003-0.014l0.005-0.012l0.006-0.014l-0.004-0.002l0.01-0.002l0.013-0.002l0.013,0.002l0.011-0.006l0.013-0.002l0.01,0.008z M264.926,163.599l-0.004,0.018l-0.005,0.016l-0.004,0.016l-0.013,0.002l-0.007-0.008l0-0.014l0.002-0.016l0.004-0.016
+ l0.004-0.018l-0.002-0.016l0.008,0.006l0.008,0.008l0.008,0.008l0.002,0.014z M264.842,163.605l-0.007,0.012h-0.012l-0.008-0.008l-0.01-0.008l-0.01-0.006l-0.006-0.012l-0.001-0.012l0.003-0.016l0.008,0.01l0.006,0.01l0.003,0.006l0.008,0.008h0.013l0.014,0.002
+ l0,0.014z M264.898,163.878l-0.006,0.014h-0.014l-0.009-0.004l-0.005-0.01l-0.004-0.012l0.003-0.014l0.005-0.008l0.009,0.004l0.014,0.004l0.006,0.01v0.016z M265.014,163.837l-0.003,0.01l-0.012,0.004l-0.014,0.002l-0.013-0.002l0.006-0.014l0.011-0.006
+ l0.014-0.002l0.01,0.008z M264.239,163.71l-0.01,0.006h-0.012l-0.006-0.012v-0.012l0.009-0.006l0.008,0.002l0.01,0.008l0.001,0.014z M264.969,163.636l-0.005,0.01l-0.013,0.002l-0.016-0.002l0.003-0.014l0.013-0.008h0.012l0.006,0.012z M264.946,163.863
+ l-0.012,0.004l-0.007-0.01l0.001-0.016h0.011l0.008,0.01l-0.001,0.012z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M262.833,44.485l-0.891-0.783l2.328,0.112l1.201,0.596l1.063-0.224l-0.845-1.301l0.89,0.26l0.433,0.148L267.74,44l4.119-1.522l0.781-1.18l-0.239-1.1l0.211-0.73l2.123-0.691l-1.197-0.218l1.648-0.724l-2.656-0.721
+ l1.855-0.216l-5.086-0.144l-0.488,1.189l0.254,0.47l-0.267,0.436h-1.464l-3.883,3.039l-1.314,0.185l-0.364-1.728l0.583-0.402l1.086-1.492l-1.446-0.652l-3.113,2.144l0.766-1.854l-0.532-0.434l1.661-0.361l-1.105-0.36l-1.798-0.107l-0.231-0.216l1.438-0.68
+ l-0.061-0.286l0.894,0.036l-0.695-1.386l0.519-1.304l-0.954-0.667l-0.656-0.07l0.483-0.384l-1.33,0.349h0.772l-2.516,0.595l0.367,0.421l-1.762,0.141l-0.728,1.414l0.439,0.177l-1.248,0.25l-0.647,1.178l3.768,1.042l-1.09,0.289l0.179-0.216l-0.996,0.505
+ l-1.021,0.87l1.716-0.544l-0.789,0.763l-3.448,1.167l-1.447,1.616l-0.907,0.924h-1.1l0.069,0.408l-0.123-0.482h0.225l1.192-0.222l-0.526-0.222l0.555-0.48l-0.961,0.147l2.328-2.165l-1.528,0.402l0.243-0.292l-1.831-0.365l-1.423,0.402l0.417,0.695l1.152,0.293
+ l-1.681,0.074l-0.503-0.696l-0.586,0.696l-3.345-0.074l-3.344-0.073l-1.021-0.549l-1.372-0.147l-0.573-0.839l-0.518-0.908l-5.365,1.273l1.071,0.402l2.616-0.548l1.653-0.292l-3.186,1.022l-1.539,0.219l-1.019,2.581l-0.646-0.444l-0.476,1.485l-0.692-1.781
+ l1.205,0.037l-0.367-1.106l-0.894,0.516l-0.036-0.81l-1.186-0.403l-6.451,0.587l-2.283-0.55l2.53-0.732l0.917-0.255l-1.779-1.345l-1.094,0.29l-4.318-1.048l-4.248-1.043l-2.311,1.007l-0.941-0.216l0.75-0.503l0.429-0.967l-0.525,0.394l-0.793,0.538l-1.098,0.396
+ l-0.794,0.468l-0.706-1.509l-0.769-1.07l0.256,0.641l-3.61,1.074l0.155-0.323l-3.756,0.646l3.76-1.326l-2.624,0.357l-4.288,1.077l-4.313,1.083l-0.519,0.653l-1.413-0.254l-0.263,0.363l-3.353-1.069l-3.291-1.063l-3.143,2.538l-3.091,2.571l-3.045,2.604
+ l-3.007,2.633l-2.974,2.661l-2.939,2.687l-2.902,2.712l-2.862,2.737l3.62-0.118l-0.85,0.627l0.47,0.433l-0.1,2.367l1.71-0.593l1.406-0.75l2.596-0.788l0.544,2.527l-0.487,2.226l-0.432,2.239l0.945,1.144l0.969,1.147l-2.034,2.221l1.788-1.536l0.028,0.444
+ l-1.655,1.052l0.28,0.081l-1.068,0.851l-0.63-0.081l0.015,0.852l-0.347-0.609l-0.248,1.015l1.055-0.081h-0.637l-0.058,0.569l-0.466-0.285l0.196,1.67l2.575-1.589l-1.034,1.466l0.605,0.245l-1.147-0.367l-0.215,1.675l0.418-0.204l-1.479,1.516l0.803-0.492
+ l-0.09,0.657l2.922-1.559l-0.987,1.229l-0.045,0.863l-0.342-0.822l-2.37,1.275l0.147,0.577l0.635-0.454l1.34,0.248l-2.194,0.454l-0.605,0.33l0.982,0.125l-1.218,0.455l1.567,0.579l0.538-0.29l0.5,0.166l-0.801,0.248l0.917,0.042l-0.631,0.331l1.694-0.58
+ l0.303-0.372l-0.952,0.911l-0.809,0.125l-0.297,0.415l1.469-0.498l0.009,0.539l1.373-0.87l-0.689,1.203l1.272-0.457l-1.708,1.081l1.022,0.667l0.913-1.041l-0.603,1.458h0.33h-0.891l0.924,0.292l0.818-0.334l-0.663,0.794l0.611,0.125l-0.844,0.376l0.68,0.376
+ l3.429-0.002l3.429-0.003l3.428-0.002l3.429-0.002l3.429-0.003l3.429-0.003l3.429-0.002l3.429-0.003l3.428-0.003l3.429-0.002l3.428-0.003l3.429-0.003l3.428-0.002l3.428-0.003l3.428-0.003l3.428-0.002l0.898-0.92l-0.278,1.464l2.26,0.461l2.905,1.216l1.804-0.294
+ l1.638,0.629l2.741-0.671l1.699,1.102l1.717,1.102l1.735,1.101l1.751,1.101l0.187,1.089l0.727-0.126l-0.226,0.712l1.638,1.211l-0.462,2.205l-0.445,2.195l-1.136,1.409l-2.48,2.408l0.622,0.918l2.193-0.709l2.19-0.708l2.185-0.706l2.182-0.705l0.195-1.617
+ l2.527-0.206l2.525-0.208l2.071-1.492l2.065-1.495l3.973-0.229l3.97-0.229l1.375-0.833l1.869-1.587l1.742-1.864l1.742-1.867l0.191,0.504l0.986-0.042l1.354,0.545l-0.943,3.101l0.579,1.627l0.515,0.292l1.892-0.708l-0.142,0.125l2.942-0.834l0.495-1.129
+ l0.232,0.545h0.439l-1.542,1.127l3.111,0.125l-1.89,0.625l-0.127-0.458l-3.171,1.54l0.522-0.249l-1.825,0.914l0.61-0.415l-0.932,1.203l0.537,1.325l1.315-0.373l2.965-2.28l0.339,0.332l0.673-0.415l0.242,0.208l2.625-0.853l2.616-0.854l-0.67-0.25l0.571-0.209
+ l-1.059-1.086l-0.816,0.46l-1.68-0.25l-1.425-0.627l-1.068-0.46l0.036-1.887l-0.784-0.167l1.476-1.637l-1.731,0.085l-0.131-0.504l-1.901-0.294l0.491-0.167h2.066l2.674-0.923l0.164-0.88l0.45,0.042l-0.113-0.544l-2.319-0.753l-2.896,0.795l-2.903,0.796
+ l-2.158,1.383l-2.161,1.385l-3.124,1.72l1.992-1.594l1.991-1.595l-2.188-0.839l2.052,0.755l2.94-1.97l3.012-1.003l2.233-2.043l4.374-0.104l4.371-0.104l3.822-0.042l3.57-2.032l3.422-0.868l3.78-1.976l-0.951-0.534l0.928-0.164l-1.368-0.246l1.103-0.205
+ l0.034-0.287l0.366-0.776l0.225-0.735l-1.256-0.611l0.172-0.123l-1.365,0.326l0.311-1.465l-1.779,0.244l1.005,0.041l-3.237,0.978l-2.469,0.774l0.844-0.367l-0.999-0.571l1.248,0.082l3.649-1.302l-2.463,0.447l4.594-1.299l-2.723-1.013l-0.664,0.081l0.552-0.606
+ l-1.58,0.89l0.711-0.688l-0.142-0.202l-0.996,0.283l0.271-0.445l-1.173,0.566l0.524-0.445l0.32-0.485l0.198-0.888l-0.573,0.564l0.037-0.403l-0.878-0.927l-1.085-0.402h0.938l-0.688-0.522l0.598-0.161l-0.792-0.12h0.593l-0.854-0.562l0.388,0.04l0.612,0.32
+ l1.37-0.961l-0.753-0.64l-0.479-0.399l0.736-0.559l-0.746-0.558l-0.182-0.358l-1.012,0.199l1.353-0.557l-0.096-0.477l-1.687,0.477l1.79-1.19l-0.563-0.515l-0.758-0.079l0.745-0.632l-0.409-0.237l-0.484-1.181l0.014-0.354l-0.739,0.157l0.629-0.628l-1.186,0.589
+ l-0.006,0.589l-1.068,0.08l0.371,0.63l-0.544,0.316l-0.724,0.632l-1.007,0.91l-0.376,0.675l-0.412-0.952l-1.787,0.991l-1.542,1.114l0.28-0.915l-0.743,0.397l0.395-0.953l-1.064,1.192l-2.095,0.637l2.715-1.353l-0.277-1.388l-2.365,0.515l-0.533-0.158l0.859-0.436
+ l0.697,0.198l0.661-1.146l-0.431-0.355l0.587-1.103l-2.148-0.235l2.649-0.275l0.391-1.175l0.382-0.625l-0.78,0.117l-2.536-1.091l0.645-0.699l-0.718,0.116l-0.588-0.775l0.184-0.387l-1.789-0.772l-1.992,0.695h-2.015l0.652-0.309l-3.536-0.424l-1.444,1.74
+ l0.15,0.66l-1.255,1.598h0.51l-0.445,1.685l-0.803,0.944l-0.477,0.039l-2.882,2.372l2.029,2.267l-1.129,2.08l-1.114,2.09l-2.703,1.311l-2.714,1.315l-1.402,0.567l0.214,1.706l-0.864,3.39l-0.988,1.396l-0.65,1.112l-0.496,0.578l-0.339-0.949l-1.395,1.527
+ l0.331,0.704l-1.405-1.407l-1.557,0.744l1.543-1.198l-1.511-1.769l0.411-0.698l-0.193-1.719l0.932-2.343l0.96-2.332l-2.434-0.142l-2.432-0.141l-0.583,0.364l0.845-0.606l-1.811-0.888l-1.793-0.886l-2.141-2.008l-2.526-0.841l-3.238,0.801l0.152-0.24l-0.593,0.2
+ l1.624-2.915l-0.179-1.271l-1.748,0.278l-0.795,0.874l0.701-1.191l-0.116-0.871l2.718-3.383l3.827-2.728l0.26-0.62l1.887-0.696l-0.458-0.231l0.813,0.231l0.757-0.694l1.107-0.231l0.037-0.385l2.964-0.576l0.276-0.767l-2.13-0.497l0.313-0.191l-1.995-0.343
+ l0.013-0.571l2.635,0.514l2.65,0.515l0.801-0.763l0.591-0.342l0.982,0.38l0.03-0.457l1.063,0.266l4-2.084l0.508-0.603l-3.643-0.602l-2.2-1.012l4.104,0.711l1.239,0.714l3.915-1.949z M293.247,35.003l-0.723,1.07l1.454-1.07l2.451-0.78l-0.938,0.531l0.793-0.142
+ l2.234,0.355l-3.83,1.213l2.734-0.5l-2.867,1.146l1.244-0.288l2.647-1.108l0.924,1.252l-4.676,0.359l1.938-0.036l2.772,0.866l-3.601-0.361l1.235,0.18l-1.438,0.108l0.802,0.036l-0.758,0.253l1.841,0.145l-1.116,0.254l0.704,0.254l-1.944-0.072l1.346,0.29
+ l-1.282,0.109l2.519,0.473l-1.425,0.256l0.825,0.109l0.715,0.255h0.834l-0.604,0.623l1.092-0.403l-0.4,0.513l0.625-0.367l0.342,0.587l1.014-0.771l-0.422,0.66l0.387,0.11l0.966,0.331l0.041,0.184l-1.458,0.258l0.894,0.111l-1.027,0.185l1.437-0.111l-1.256,0.295
+ l1.789,0.074l0.554-0.407l-0.887,1.036l0.061,0.26l1.271-0.593l-0.016,0.408h0.565l0.418-0.371l1.333,0.705l-1.028-0.037l0.32,0.372l-0.019,0.149L303.471,44l-0.958,0.373l0.852,0.224l-1.253,0.224l0.569,0.225l-0.79,0.149l-0.411,0.525l-0.71-0.674l-0.664,0.899
+ l-0.134,0.15l-0.071,0.979l-0.872-0.151l-0.533-0.415l-0.502,0.415l0.333-0.752l-0.965,0.037l0.258-0.488l-0.503-0.075l1.282-0.749l1.411-0.784l-3.094,0.896l1.153-0.822l-0.558,0.298l-1.407-0.596L295,43.628l0.167,0.261l-0.864,0.074l0.196,0.671l-0.553,0.486
+ l-1.322-0.896l0.343,0.71l0.122,0.449l-0.264,0.375l1.063-0.113l0.004,0.676l-0.066,0.603l0.503-0.188l-0.323,0.604l0.228-0.264l0.514,0.604l0.479,0.076l0.43,0.227l0.256,0.341l-0.178,0.455l0.104,0.418l0.514,0.19l-0.193,0.61l-0.27,0.764l-0.469-0.574
+ l-0.265,1.57l-0.616,0.116l-0.082,0.692l-0.386-0.347l-1.238-0.461l-0.566-0.499l-0.247,0.307l-1.174-1.34l-0.372,0.65l-1.839-0.879l1.501,1.607l1.541,1.616l0.079,1.083l-2.771-0.909l-2.744-0.906l-2.03-0.922l-0.945-0.729l1.17-0.42l-1.214-0.229l-0.099-0.496
+ l-1.062-0.685l0.383-0.911l-0.7-0.038l-1.079,0.607l0.07-0.758l-0.464-0.529l-0.467,0.832l-1.545-0.076l-0.275,0.266l-2.142,0.379l-2.07-0.683l2.159-1.661l2.846,0.226l-0.002,0.905l0.327-0.302l-0.255-0.528l3.866-0.752l-0.419-1.385l2.326-0.932l3.58,0.074
+ l-0.504,1.007l0.834-0.261h1.904l0.768-0.596l-1.814-1.299l-1.147,0.89l-2.586-0.26l1.537-0.815l0.399-2.462l-0.982-0.073l0.24-0.984l-0.553,0.473l-0.714-0.945l-0.9-0.181l-2.082,0.726l0.1-0.399l1.555-0.471l-0.353-1.226l-0.73,0.108l0.386-0.323l-1.293-0.144
+ l0.47-0.787l-1.185-0.356l0.002-0.605l-1.224,0.569l0.396,0.928l-4.75-0.394l1.085,0.752l-2.883-1.144l1.589,0.786l-6.184-0.179l-0.853-0.856l-0.709,0.142l-0.275,0.142l-2.02-0.356l-0.396-1.099l3.235-0.106l-3.67-0.846l3.456-2.96l3.146-1.511l5.446-0.478
+ l-2.639,1.129l-2.667,2.56l1.341,1.26l-3.039,0.81l2.395-0.07l1.371-0.845l-0.915-0.911l0.428-0.453l1.845,0.209l-0.301-0.696h-0.529l0.125-1.142l2.47,0.311l-1.321-0.518l1.946-0.068l-1.718-0.378l1.093-0.206l1.482-0.206l-0.213-0.206l4.149-0.41l0.4,1.888
+ l-2.146,0.97l0.642-0.208l-0.526,0.835l0.75-0.313h0.795l-0.074-0.278l0.927-0.035l0.505-0.139l-0.034,0.695l0.266,0.314l-0.16-0.209l1.226,0.384l-0.799-0.837l2.465,0.104l-1.24-0.833h3.876l1.175,0.659l-2.896,0.872l1.659-0.558l-0.906,0.768l0.86-0.524
+ l2.13,0.104l-2.36,0.805l0.643,0.035l-0.975,0.773l2.244-1.019l0.389-0.21l-0.775,0.912l0.877-0.527l-0.682,1.021l0.824-0.494l-0.125,0.494l1.673-0.916l2.058,0.598l-1.424,0.282l-1.248,0.778l2.185-0.531l1.01,0.142l-2.672,1.028l0.472-0.142z M289.189,19.7
+ l-3.2,1.078l-1.725-0.855l1.533-0.527l-2.931-0.484l7.618-0.736l-3.299-2.14l4.509-0.186l1.933,0.772l-1.124-0.975l7.077-0.971l3.683-0.898l-7.45,0.645l-7.545,0.658l6.427-0.866l-7.569,0.913l-2.208-0.482l7.021-0.65l-7.456,0.166l4.654-0.487l-5.838-0.255
+ l7.784-0.833l9.563,0.5l-1.127-1.464l7.657,0.288l-1.758-0.554l10.42,0.509l10.539,0.52l-6.986,0.959l-7.124,0.993l8.271-0.693l-7.54,1.501l-7.753,1.569l-7.064,0.622l4.056,0.614l-5.506,0.417l4.502,0.308l-6.349,1.282l-0.479,0.901l-5.069,0.291l3.979,1.273
+ l-5.103,0.408l-5.672-0.139l-5.66-0.138l3.881-1.29l-0.726-0.88l5.959,0.612l3.196-1.291z M235.272,38.377l-0.943-0.759l-0.625-0.181l-2.93,0.976l-4.645,0.472l-4.665,0.473l0.153-1.162l-4.157-1.227l0.895-1.111l4.808-0.232l4.797-0.231l-4.492-0.604
+ l-4.796-0.213l-0.42-0.602l5.984-1.127l-4.569,0.071l1.275-0.351l-2.202-0.035l3.048-1.36l-0.178-0.347l4.205-0.916l4.183-0.911l0.381,0.48l-2.027,1.104l1.657-0.276l1.521-0.552l1.716,0.933l-1.11,0.555l0.76-0.139l2.209-0.208l0.261-0.554l0.255-0.586
+ l1.793,0.933l-0.99,1.951l1.628-0.7l1.549-2.562l2.679-0.034l0.504,1.379l-1.569,2.795l0.218,1.309l0.582,0.071l2.697,0.89l-0.347,0.5l-1.197,0.539l0.298-0.539l-1.179,0.395l-0.671-0.072l-1.172,0.503l-0.597-0.036l-0.774,0.938l2.56-0.794l-0.259,0.469
+ l-0.947,0.687h-5.155z M218.192,31.555l-2.91,1.504l-4.468,0.74l-0.717-1.511l-0.874-0.663l2.841-1.318l1.023-0.689l3.52-1.506l-0.078-1.019l6.138-0.203l1.422,0.474l0.474,0.237l3.122-0.305l1.384,1.499l-4.42,1.082l-4.441,1.089l-2.016,0.591z M276.216,15.937
+ l-1.092-0.663l5.094-0.989l6.148,1.234l-1.507,1.508l3.106,0.47l-5.432,0.903l-2.353,1.073l-0.948-0.768l-0.146,0.832l-5.122-1.439l6.145-0.556l-7.012-0.747l3.119-0.859z M274.392,24.227l5.092-0.077l5.086-0.076l3.824,0.875l-0.632,0.971l-4.885,0.09
+ l-4.892,0.09l-4.897,0.09l-4.904,0.09l0.78-1.643l0.85-1.622l-4.877-0.763l5.336-0.152l-1.126,0.79l6.155,0.39l-3.362-0.054l2.453,1z M297.428,88.977l0.099-0.461l-3.753,0.504l-3.219-0.294l0.794-0.966l1.538-1.006l-1.582-0.042l0.702-0.335l1.87-1.005
+ l0.18,0.167l0.394-0.627l-0.431-0.418l0.831-0.334l2.096-2.747l2.238-1.944l1.109-0.206l0.833,0.042l-1.407,0.619l0.388,0.414l-0.842,0.787l-2.422,2.995l1.975-1.376l-0.373,0.458l1.441-0.084l-1.37,0.709l0.005,0.417l1.397,0.292l-0.261,0.544l1.875-0.752
+ l-0.123,0.418l1.742-0.083l-1.288,1.254l0.376,0.544l-0.752,0.545l2.333-0.502l-2.224,1.3l0.305,0.462h-0.167l-0.074,0.755l1.992-1.427l-0.889,1.427l0.905-0.504l0.142,0.713l-1.709,2.266l-0.762-0.42l0.035-0.754l-1.176,0.503l1.028-1.804l-0.361-0.629
+ l-1.15,1.259l0.53-0.588l-3.159,1.846l-0.116-0.545l2.631-1.51l-0.659,0.209l0.408-0.503l-0.962,0.335l-0.944,0.504l-0.767-0.126l0.751-0.294z M235.405,26.916l-1.954-0.583l6.468-1.145l-4.93-0.034l-4.928-0.033l4.703-0.763l-2.125-0.233l3.125-0.21l-1.429-0.542
+ l5.683,0.264l3.92,1.046l0.109-1.811l3.402-0.801l-1.265,2.055l3.808-0.096l-2.93,1.6l-2.407-0.108l-4.612,0.697l-4.639,0.7z M258.268,28.318l-1.549,1.901l-1.488,1.924l-2.949,0.038l-0.368,0.796l-2.41-1.365l-2.324-1.354l3.952-0.116l1.37-0.815l-0.677-1.044
+ l6.442,0.035z M265.319,49.843l-1.067-0.419l0.117-0.267l-1.002,0.418l-4.098,1.873l-0.133-1.339l-2.584,0.153l2.633-1.257l1.645-1.894l1.648-1.879l0.95,0.525l-0.164,0.865l0.948-0.339l3.191,2.001l-1.115,1.14L268.8,49.5l0.271,0.496l-2.167,0.611l-1.584-0.764z
+ M264.623,30.065l-3.794,0.207l0.456,0.416l-1.777,1.042l-1.939,0.175l0.375-0.349l2.07-2.932l1.339-0.171l-0.2-0.478l1.35-0.442l6.639,0.408l-1.722,0.75l-2.794,1.374z M233.223,22.565l0.265-0.326l-1.807,0.587l-1.667,0.524l-0.207-0.295l-1.111,0.823
+ l-1.394,0.132l-0.011-0.561l-1.15,0.297l-1.614-0.066l0.978-0.658l5.252-1.107l3.547-0.869l2.446-0.16l2.19,0.288l-1.972,0.482l0.376,0.258L236.7,22.11l-2.344,0.553l-1.228,0.557l0.095-0.655z M262.146,18.11l0.157-0.152l1.856,0.152l0.67,0.183l-0.262,0.738
+ l0.459,0.685l-2.063,0.535l-2.05-0.941l-3.732-0.125l0.804-0.433l1.918-0.154l-0.129-0.489l-1.324,0.091l-0.387-0.515l4.104-0.121l-0.02,0.544z M257.958,23.45l0.596,0.198l0.809-0.198l-1-0.754l2.425,0.098l1.483-0.326l0.393,0.621l-1.55,1.154l0.721,0.1
+ l-0.479,0.566h-1.166l-0.382,0.367l-0.365,0.402l-3.524-0.335l0.126-0.334l3.557-0.699l-5.833,0.066l2.219-0.299l0.008-0.198l0.045-0.396l1.068-0.263l-0.613-0.197l1.465,0.427z M161.684,85.163l-0.455,0.335l-1.571-0.126l0.513-0.418l-0.681-0.167l-0.924-0.292
+ l1.42-0.626l-1.304-0.542l-0.109-0.5l-0.802-0.167l-0.159-0.375l0.977-0.581l-0.519,0.083l-0.697-0.705l2.156,0.477l2.165,0.478l0.564,1.165l0.957,1.502l0.152,1.884l0.122,0.377l-3.112-0.88l1.308-0.921z M287.455,28.417l2.048,1.579l-5.474,0.345l-0.762-0.655
+ l-0.575-0.481l0.385-0.65l4.377-0.137z M250.747,37.907l0.217,0.724l0.748-0.037l-2.912,0.873l-4.029-1.235l2.515-0.614l0.585-0.577l0.175,0.144l0.97-0.826l1.887,1.331l-0.156,0.217z M266.863,19.279l0.666-0.864l4.185,0.739l-0.642,0.468l-3.688,0.629
+ l-0.422-0.566l-0.098-0.406z M262.789,26.08l-1.328-0.336l3.763-1.269l1.192,1.067l-0.568,0.671l-3.059-0.134z M283.413,41.298l-3.342,0.885l-0.399-1.068l2.676-1.318l1.595,0.584l-0.53,0.917z M243.237,30.065l-1.217-1.271l3.541-0.547l0.557,0.444l-2.88,1.374z
+ M185.57,37.943l0.558-0.397l0.71-0.18l2.012-0.468l0.883,0.107l-2.977,1.517l-0.243,0.254l-1.623-0.471l0.471-0.579l0.208,0.217z M288.222,93.17l-3.319,1.044l0.129-1.547l2.489-1.885l-0.58,1.592l-1.162,0.837h0.405l-0.374,0.46l1.234-0.627l-0.827,0.167
+ l0.989-0.711l-0.585,0.377l1.001-0.418l0.599,0.711z M264.907,51.91l-0.409,0.461l-3.928,1.35l1.248-1.581l3.089-0.23z M155.222,74.954h-1.38l0.647-0.123l-0.21-0.327l0.397-1.385l1.162-0.204l0.468,0.163l-1.515,0.814l1.1-0.244l1.839-0.936l-2.507,2.241z
+ M281.763,92.877l-0.038-0.418l-1.782-0.754l-0.074-0.714l0.739-0.629l0.156,1.3l3.455,0.251l-1.243,0.754l-1.212,0.21z M286.974,85.121l-1.26,0.208l-1.789-0.919l-1.774-0.918l0.495-0.375l2.155,1.001l2.173,1.003z M267.089,54.806l-0.657-0.194l0.958-1.431
+ l1.167,0.27l-1.469,1.355z M260.681,67.699l-1.771,1.087l0.921-0.846l-1.21,0.563l1.937-1.569l-0.399,0.804l0.961-0.804l0.168,0.563l-1.203,1.086l0.933-1.167l-1.058,1.167l0.721-0.886z M253.137,75.076l0.304,1.063l-2.395-0.614l2.091-0.449z M154.773,75.894
+ l0.2,1.682l-0.809-1.804l-0.303-0.532l1.765,0.042l-0.551,0.163l-0.303,0.45z M161.04,74.817l0.285,0.838l-1.007,0.882l0.66-0.796l-0.967,0.689l0.821-1.076l-0.625,0.425l0.833-0.963z M159.833,75.044l0.191-1.702l0.387,1.253l-0.578,0.449z M293.772,54.922
+ l-0.465,0.466L292.303,55l1.469-0.078z M286.795,57.65l-1.209,0.549l0.854-0.862l0.355,0.313z M159.591,73.498l-0.68-0.053l1.127-0.49l-0.448,0.543z M286.281,88.936l-1.553,1.007l1.086-0.798l-0.607,0.336l1.073-0.545z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M228.082,161.433l0.002-0.018l0-0.014l-0.003-0.014l-0.005-0.01l-0.009-0.008l-0.01-0.004l-0.015-0.004h-0.016h-0.015h-0.015l-0.016-0.002h-0.016l-0.014,0.002l-0.014,0.004h-0.016l-0.014,0.004l-0.013,0.004
+ l-0.013,0.004l-0.01,0.004l-0.016-0.002h-0.015l-0.014-0.004l-0.011-0.006l-0.012-0.002l-0.012-0.006l-0.015,0.002h-0.015l-0.016-0.002h-0.015l-0.009-0.008l-0.009-0.008l-0.009-0.008l-0.008-0.006l-0.009-0.008l-0.012,0.002l-0.007,0.012l-0.002,0.018
+ l0.004,0.012l0.007,0.008l0.003,0.012l-0.003,0.016l0.001,0.008h-0.001l0-0.002l0.01,0.006l0.002,0.01l-0.007,0.01l-0.015,0.002l-0.011-0.004l-0.011-0.008l-0.012,0.006l-0.009,0.01l-0.004,0.016l-0.007,0.012l-0.012,0.008l-0.011,0.004l-0.014,0.004l-0.013-0.002
+ l-0.015,0.002h-0.015l-0.013,0.006h-0.014h-0.017l-0.012-0.004l-0.013-0.004l-0.01-0.006l-0.008-0.008l-0.003-0.012l0-0.016l0.002-0.018l0.004-0.016l0.001-0.016l-0.003-0.012l-0.003-0.014l-0.003-0.012l-0.003-0.014l-0.003-0.012l-0.003-0.014l-0.001-0.014
+ l0.005-0.014l0.01-0.008h0.015l0.009-0.008l-0.005-0.01l-0.01-0.006l-0.007-0.01l-0.011-0.006l-0.01-0.006l-0.014,0.004l-0.011,0.008l-0.009,0.008l-0.01,0.008l-0.008,0.012l-0.009,0.008l-0.011,0.006l-0.011,0.008l0.002,0.012l0.009,0.008l0.013,0.004
+ l0.012,0.004l0.012,0.004l0.011,0.006l0.004,0.012l0.004,0.012l-0.001,0.018v0.014l0,0.016l-0.001,0.018l0,0.012v0.01l-0.006,0.012l-0.007,0.014l-0.005,0.012l-0.003,0.018l-0.002,0.02l-0.002,0.014l0,0.016l0.003,0.012l0.001,0.014l0.005,0.012l0.009,0.008h0.013
+ l0.012-0.006l0.01-0.008l0.009-0.008l0.009-0.008l0.011-0.008l0.011-0.008l0.015,0.004l0.011,0.002l0.011,0.006l0.013,0.004l0.012,0.004h0.016l0.015,0.004h0.015l0.01,0.006l0.013,0.004l0.011,0.006l0.013,0.004l0.016,0.002h0.016h0.016l0.015-0.002l0.009-0.008
+ l0.009-0.012l0.003-0.014l0.005-0.016l0.005-0.014l0.008-0.01l0.012-0.006l0.013-0.002l0.015-0.002l0.015-0.004l0.013-0.002l0.015-0.002l0.015-0.002l0.013-0.006l0.013-0.002l0.014-0.004l0.013-0.002l0.015-0.002l0.015,0.002l0.012,0.004l0.011,0.006l0.012,0.004
+ l0.01,0.006l0.013,0.004l0.012,0.004l0.015-0.002l0.013-0.004l0.014-0.002l0.012-0.006l0.012-0.004l0.011-0.008l0.009-0.008l0.006-0.014l0.006-0.014l0.002-0.018z M231.249,160.357l-0.01,0.008l-0.01,0.008l-0.011,0.008l-0.01,0.006l-0.009,0.01l-0.011,0.006
+ l-0.011,0.006l-0.012,0.008l-0.011,0.006l-0.011,0.006l-0.012,0.004l-0.013,0.006l-0.013,0.002l-0.013,0.004l-0.014,0.004l-0.013,0.002l-0.013,0.006l-0.013,0.002l-0.014,0.004l-0.011,0.006l-0.013,0.004l-0.012,0.004l-0.011,0.008l-0.011,0.006l-0.012,0.006
+ l-0.011,0.006l-0.012,0.006l-0.014,0.002l-0.014,0.002l-0.015-0.002l-0.01-0.008l-0.005-0.012l0.009-0.008l0.013-0.006l0.014-0.002l0.011-0.006l0.01-0.008l0.014-0.004l0.014-0.002l0.013-0.004l0.013-0.004l0.008-0.012l0.009-0.008l0.01-0.008l0.009-0.01
+ l0.011-0.006l0.013-0.004l0.012-0.006l0.012-0.006l0.011-0.006l0.011-0.006l0.011-0.008l0.011-0.006l0.012-0.006l0.009-0.01l0.009-0.012l0.009-0.008l0.011-0.006l0.011-0.008h0.015l0.013,0.002l0.009,0.01l0.01,0.006l0.015,0.002l0.011,0.006l0.006,0.008
+ l-0.001,0.012z M230.717,160.464l-0.009,0.008l-0.013,0.006l-0.014-0.004l-0.015-0.002l-0.015-0.002l-0.011,0.004l-0.011,0.008l-0.011,0.006l-0.013,0.006l-0.012,0.004l-0.011,0.008l-0.013,0.004l-0.011,0.006l-0.013,0.004l-0.011,0.006l-0.014,0.002l-0.014,0.004
+ l-0.014,0.002l-0.009,0.01l-0.01,0.008l-0.011,0.01l-0.009,0.008l-0.011,0.006l-0.012,0.006l-0.012,0.006l-0.013,0.004h-0.014l-0.013-0.002l-0.002-0.02l0.005-0.014l0.008-0.01l0.01-0.01l0.011-0.006l0.011-0.008l0.011-0.006l0.009-0.008l0.008-0.012l0.006-0.012
+ l0.011-0.006l0.015-0.002l0.013-0.002l0.015-0.002h0.017h0.015l0.015-0.002l0.015-0.002l0.012-0.004l0.013-0.004l0.013-0.002l0.013-0.006l0.012-0.006l0.013-0.002l0.013-0.004h0.015h0.016l0.013,0.004l0.008,0.008l0.002,0.012z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M236.936,154.982l0.054,0.172l-2.291-1.137l-2.285-1.137l-1.714-0.771l-1.689-0.387l-0.797-0.127l-2.663,0.535l-2.665,0.537l-1.138,1.586l-1.177,0.771l0.813-0.256l1.794-0.814l1.793-0.816l2.901-0.086l-1.088,0.387
+ l1.961,0.6l1.286,0.387l0.619,0.387l3.139,0.729l0.601,1.5l2.75,1.285l-1.261,1.588l2.201-0.043l2.201-0.043l1.801-0.299l1.8-0.301l-1.658-0.814l-1.655-0.816l-0.098-0.771l-1.618-0.621l-1.616-0.621l-0.3-0.602z M224.373,155.755l0.322-1.072l0.839,0.986
+ l-1.162,0.086z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M271.57,171.751l-0.098-0.686l-0.34,0.043l0.153,0.943l0.285-0.301z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M249.069,160.472l-0.38,1.842l-0.318,0.902l0.181,1.5l0.705,1.16l0.964-1.416l1.139-0.559l1.111,0.086l2.894,0.172l1.03-0.986l-2.531-1.158l0.5-0.514l-1.135-0.559l-3.113-0.857l-1.046,0.387z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M211.287,176.599l0.037-1.201l-1.845-0.344l-1.362-1.029l-1.864,1.76l1.651,0.621l1.653,0.623l1.18,0.256l0.55-0.686z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M270.251,179.964l-0.001-0.014l-0.005-0.012l-0.006-0.01l-0.003-0.014l0.002-0.014l0.003-0.016l0.003-0.014l0.005-0.016l0.001-0.016l0-0.018l0.001-0.016l-0.005-0.012l-0.003-0.014l-0.003-0.012l-0.004-0.014
+ l-0.003-0.014l0.007-0.012l0.006-0.012l-0.003-0.01l-0.008-0.01l-0.004-0.008l-0.012-0.004l-0.016-0.002l-0.015,0.002l-0.013-0.002l-0.015-0.004l-0.009-0.008h-0.013l-0.013,0.004l-0.007,0.008l-0.008,0.006l-0.013,0.004l-0.012,0.004l-0.008,0.01l-0.008,0.008
+ l-0.009,0.008l-0.008,0.012l-0.007,0.01l-0.006,0.012l-0.008,0.008l-0.01,0.008l-0.011,0.006l-0.005,0.012l-0.008,0.01l-0.008,0.012l-0.007,0.01l-0.007,0.01l-0.007,0.01l-0.001,0.016l-0.002,0.018v0.016l-0.006,0.012l-0.009,0.008l-0.007,0.012l-0.009,0.008
+ l-0.005,0.012l-0.005,0.014l-0.005,0.014l-0.003,0.016l-0.003,0.018l-0.005,0.014l-0.005,0.012l-0.009,0.008l-0.007,0.01l-0.004,0.014l0.003,0.014l0.003,0.014l0.005,0.01l-0.001,0.014l-0.002,0.01l0.006,0.01l0.006,0.01l0.002,0.014l0,0.018l-0.004,0.014
+ l-0.007,0.01l-0.01,0.006l-0.008,0.012l-0.007,0.01l-0.01,0.006l-0.01,0.006l-0.011,0.008l-0.01,0.006l-0.01,0.008l-0.01,0.006l-0.01,0.004l0.005,0.01l0.007,0.008l0.009,0.006l0.011-0.006l0.012-0.004l0.01-0.006l0.01-0.008l0.011,0.008l0.001,0.014l0.005,0.012
+ l0.013-0.004l0.011-0.008l0.01-0.006l0.008-0.008l0.009-0.008l0.013-0.004l0.007,0.008l0.009,0.01l0.014-0.002l0.01,0.002l0.008,0.01l0.01,0.004l0.006-0.012l0.008-0.008l0.003-0.018l0.006-0.012l0.015,0.002l0.009-0.006l0.007-0.012l0.01,0.002l0.011-0.006
+ l0.009-0.008l0.013-0.002l0.014-0.002l0.011-0.006l0.01-0.008l0.008-0.008l0.009-0.01l0.008-0.008l0.008-0.01l0.006-0.012l0.004-0.014l0.002-0.016l0.007-0.012l0.007-0.012l0.009-0.008l0.008-0.008l-0.004-0.014l-0.006-0.01l-0.005-0.01l-0.001-0.016l0-0.016
+ l-0.003-0.014l0.002-0.018l0.008-0.008l0.017,0.002h0.015l0.012-0.006l0.005-0.012z M270.333,179.474l-0.001,0.02l-0.005,0.012l-0.007,0.01l-0.007,0.012l-0.013,0.002l-0.007-0.008l0.001-0.016l0.004-0.012l0.004-0.016l0.006-0.012l0.011-0.01l0.011,0.006
+ l0.002,0.012z M270.335,179.546l-0.01,0.008l-0.011-0.002l-0.001-0.012l0.006-0.01l0.013,0.004l0.003,0.012z M270.396,179.472l-0.004,0.014l-0.011-0.002l-0.004-0.012l0.008-0.018l0.006,0.008l0.005,0.01z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M270.981,169.22l-0.389,0.645l0.45-0.471l-0.061-0.174z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M202.503,174.583l1.874,0.6l1.875,0.602l1.864-1.76l1.384-2.102l1.519-1.201l-0.71-0.344l-0.81-0.129h-0.675l0.385-2.465l0.398-2.467h-2.073h-2.073l-0.186,1.457l-0.694,0.172l1.609,2.447l-2.972,0.428l-1.325,2.059
+ l-0.277,1.846l0.887,0.857z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M249.069,160.472l-1.326-0.129l-2.211-0.215l0.2,0.559l0.951,0.855l0.729,1.932l-1.801-0.086l-1.8-0.086l-1.203,0.428l1.374,0.773l2.285,0.105l2.285,0.107l-0.181-1.5l0.318-0.902l0.38-1.842z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M215.722,175.355l2.834-2.145l1.852-0.322l1.852-0.32l-0.93-0.816h-0.712l-0.284-0.514l0.432,0.17l-1.502-1.029l-1.813-0.041l-1.812-0.045l-2.157,0.193l-2.157,0.193l-0.305,0.043l-1.519,1.201l-1.384,2.102
+ l1.362,1.029l1.845,0.344l-0.037,1.201l0.845,0.215l0.255,0.943h0.564l0.813-1.545l1.104-0.557l0.854-0.301z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M235.72,163.603l-1.864,0.643l2.602,1.115l2.199-0.301l-2.937-1.457z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M272.359,173.81l-0.846-0.771l0.875,0.902l-0.029-0.131z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M215.722,175.355l-0.854,0.301l-1.104,0.557l-0.813,1.545h-0.564l-0.884,0.215l2.064,2.357l2.084,2.359l3.234,0.645l1.337-0.258l-0.034-1.672l0.096-1.287l0.459-1.545l0.147,0.516l0.336-2.037l0.349-2.039l0.07-1.93
+ l0.614-0.514l-1.852,0.32l-1.852,0.322l-2.834,2.145z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M221.49,190.496l0.565-0.729l2.194,0.686l1.083,1.072l0.326-0.514L226,192.64l2.039-0.814l-1.012-1.801l1.699-1.502l-0.415-0.73l-0.399-0.299l-3.151,1.072l-0.686-0.602l-1-0.342l-0.619-1.072l-0.845,0.258
+ l0.056,1.715l-0.176,1.973z M231.94,189.937l0.863,0.129l-0.315-0.514l-0.709-0.172l-0.608-0.686l-1.586-0.73l-0.576-0.514l-0.116-0.643l2.184,0.086l1.514,0.984l1.517,0.988l0.058,1.973l-0.859,0.643l-0.538,1.072l-0.572-0.771l-0.255-1.846z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M262.447,164.246l-3.215-0.729l-0.327,1.07l0.904,0.301l2.401-0.514l0.236-0.129z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M268.99,167.169l0.074-0.094l-0.168-0.117l0.094,0.211z M268.892,166.824l-0.486-0.406l0.417,0.314l0.069,0.092z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M271.984,175.867l0.163-0.873l-0.453,0.455l0.291,0.418z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M268.221,164.623l-0.231,0.063l0.214,0.023l0.018-0.086z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M271.383,177.345l0.09-0.582l-0.311,0.275l0.221,0.307z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M270.055,183.546l0.314,0.516l-0.877,1.029l1.387,0.172l0.648-1.76l-1.472,0.043z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M248.661,155.126l0.155-0.088l-0.417-0.115l0.017,0.18l0.245,0.023z M249.902,155.14l-0.07-0.01l-0.382-0.115l0.441,0.088l0.011,0.037z M250.274,155.339l-0.003,0.02l-0.205-0.096l0.208,0.076z M249.417,154.974
+ l-0.163-0.205l-0.176-0.084l0.235,0.127l0.104,0.162z"/>
+ <path style="fill:#FDD9BD;stroke:#FDD9BD;" d="M264.646,165.49l-0.474-0.129l-0.243,0.215l0.717-0.086z"/>
+ <path style="fill:#FFFFFF;stroke:none;" d="M640.809,412.07l-5.299-0.838l-1.444-0.469l-0.943-0.76l-1.375-0.154l0.933-0.365l-0.747-0.879l1.825-0.436l-1.38-0.248l1.121-0.502l0.084-0.309l1.689-0.342l-1.98-0.23l3.132-0.521l-0.672-0.234l2.871-0.83l0.794-0.725
+ l5.469-0.305l5.544-0.184l-0.199-0.898l0.8-0.344l-1.794,0.469l0.15-0.313l-0.845,0.125l1.726-0.629l-0.838-0.221l1.175-0.381l0.341-1.125l1.227-0.584l1.878-0.982l2.824-1.092l3.169-0.301l-2.293-0.434l0.521-0.738l2.674-0.135l2.967-0.438l0.68-0.744
+ l2.718-0.238l0.116-0.51l6.65-0.922l3.107-1.031l1.982-1.004l0.533-0.418l1.757-0.451l1.843-1.299l-1.144,0.527l-1.322-1.549l-2.961-0.391l-2.979-0.391l-0.629-0.178l-1.568,0.035l0.71-0.463l-1.787,0.107l0.151-1.541l-4.588-1.119l-2.438,0.254l1.132-0.979
+ l-0.295-0.838l-1.704,1.092l-4.015-0.326l0.897-0.473l-5.045-0.109l1.31-0.658l-3.805-1.064l2.111-0.922l-1.99-0.072l-1.038-0.26l-1.203-0.148l-4.851-0.908l-2.446-0.457l-2.461-0.457l-4.971,0.076l-4.968,0.074l-2.948,1.637l-2.328,0.146l-0.166-1.039
+ l-1.294-0.633l-2.283,0.67l-2.651,0.074h-2.065l-4.609,0.41l-4.592,0.406l-0.848-0.928l-2.386-0.26l-0.767-0.299l-0.603-1.307l-4.161,0.523l-2.179,0.896l-3.233,1.004l-3.579-0.967l-3.626-0.971l-4.545,0.225l-1.869,0.299l0.604-1.086l-1.355,0.264l-1.025-0.039
+ l-1.029,1.271l-5.858,0.52l-0.233-0.818l-0.438,0.484l-2.042,0.186l-4.602,0.279l-4.589,0.279l0.321-1.564l-1.544,1.266l-1.479,0.557l-4.126,0.391l-4.112,0.387l-0.957-0.037l-1.345,0.443l-0.354,0.553l-3.441,0.844l-3.419,0.84l-1.333,0.943l-3.882,1.268
+ l-2.63,0.574l-5.386,1.145l0.313,0.676l-2.526,1.486l0.051-0.6l-3.041-0.461l0.138-1.029l-0.912-0.5l2.03-0.467l-1.057-0.502l1.046-0.504l1.72-0.252l-1.22-0.254l1.883-0.471l-1.449,0.072l1.058-0.289l1.65-2.336h-0.728l-4.968-0.258l-4.98-0.258l-3.438-0.258
+ l-3.447-0.258l-3.293-0.814l1.318-0.518l-2.184-1.529l-2.658-0.299l-6.119,0.936l-1.082,0.967l0.841,0.148l-0.17,0.666l-2.282-0.334l-1.864,0.148l1.362,0.592l-1.676,0.664l-2.272-0.553l-1.337,0.406l-4.097,0.99l-3.764,0.969l-3.731,0.963l-1.086,1.375
+ l-1.786,1.041l-0.739-0.467l-1.553,0.072l-1.1-0.395l-2.175-1.916l-0.982-0.51l-1.59,0.799l-2.45,1.447l-3.713,0.547l-3.692,0.547l-3.671,0.545l-3.65,0.543l-4.001-0.518l-4.024-0.518l-4.69,0.268l-4.677,0.27l-1.102,0.889h-1.242l-4.159-1.354l-0.01,0.82
+ l-1.094-0.605l-1.48,0.641l-5.108,0.533l-3.214,0.813l-3.183,0.809l-1.469,0.176l0.211-0.385l-1.178,0.07L405.606,389l-6.047,0.174l1.018-1.057l-0.587-0.391l-2.972,1.484l0.597,0.49l-1.622,0.42l-0.926-1.191l-1.305-0.494l-1.045,0.035l-0.842,1.23l-1.201-0.49
+ l-1.049-0.037l1.693,1.541l-1.324,0.904l-3.281,0.482l0.642,0.449l-2.78,0.652l-1.012,0.957l-0.043,0.342l2.992-0.238l0.901,0.135l-3.314,1.053l-4.452,1.313l0.585,0.234l-5.928,0.867l-5.845,0.859l0.604,0.166l-1.664,0.197l-0.014,0.557l-4.713,1.361
+ l-4.865,1.209l0.12,0.377l-0.835,0.406l0.135,0.342l0.427,0.555l9.047,0.76l-0.937,0.688l1.27,0.852l-0.572,0.547l-7.198,0.115l-4.056,1.08l-3.965,1.047l-7.519,0.344l-7.465,0.342l-5.702,1.369l-0.656-0.6l-7.1-0.992l-7.249-1.029l-9.745-0.828l-3.934-0.934
+ l-4.811-0.461l4.958-0.35l-0.328-0.531l-7.146-0.449l0.807,0.861l-2.513-1.162l-0.52-0.486l2.464-0.029l2.712-0.646l-6.829-1.076l-6.933-1.094l-0.776-0.74l4.284-1.107l4.395-1.119l6.767,0.412l6.729,0.412l4.028-0.875l4.101-0.881l-1.189-0.1l0.93-0.336
+ l-1.517-0.234l1.005-0.201l-0.307-0.402l2.039,0.469l-0.948-0.975l2.283-0.203l-0.943-0.34l-0.626-0.645l0.881-0.408l-1.526-0.48l-0.929-0.479l1.758,0.137l0.17-0.275l0.692,0.275l0.246-0.584l-1.112-0.104l-0.226-0.242l-1.815-0.346l0.566-0.414l0.075-0.766
+ l-2.121-0.174l0.824-0.314l-0.432-0.875l-0.654-0.951l-0.861-0.143l-0.04-0.637l-1.676-0.57l0.604-0.178l-0.96-0.643l-0.581-1.041l-1.987-0.613l-0.343-0.615l-1.034-0.471l0.771-0.51l-1.468,0.4l-1.34-0.072l-0.411-0.584l0.179-0.475l-1.453,0.037l-0.578-1.283
+ l0.697-0.516l-0.021-0.555l1.322-0.371l-0.536-0.369l0.342-1.342l1.934,1.154l-0.069-0.297l-0.648-0.596l1.77,0.074l0.947-0.26l0.888-0.561l-1.237,0.262l-1.812-0.15l0.507-0.973l-0.684-0.451l3.123-1.926l0.023-0.379l1.103,0.189l-0.003-0.381l1.602-1.523
+ l1.085,0.076l-0.717-0.955l-3.541,1.527l-1.968,0.572l-2.17,1.365l-0.82,0.604l-1.17,0.076l0.398,0.941l-0.955,0.639l0.626,0.486l-1.391,0.225l-0.423,0.111l0.401,1.006h-0.878l0.54,1.742l-1.593-0.889l-0.295,1.219l1.422,0.037l0.423,0.699l0.468,0.916
+ l-0.444,0.146l0.885,1.092l0.24,0.361l0.28,0.615l-2.708,0.289l1.778,1.65l2.741,2.393l2.748,2.361l-1.986,1.348l-5.967,0.84l-5.885,0.838l0.211-0.547l-2.622,0.104l-0.646-0.412l-3.336-0.893l0.74,0.619h-1.489l0.711,1.094l-3.737-0.512l-2.387-0.172
+ l-2.333-0.787l-0.299,0.137l-4.333-0.309l0.329-0.518l-2.552-0.416l0.923,0.623l-1.75,0.895l-6.188-0.654l-0.487,0.447l-5.016-0.205l-7.19-0.346l-1.776-0.447l0.608,0.861l7.215,0.891l-0.451,0.342l-5.247-0.342l0.587,0.547l2.427,0.135l1.058,0.883l2.151,0.203
+ l0.476,0.506h-1.409l-0.341,0.402l2.643,0.736l-7.69-0.904l-1.639,0.303l-1.418-0.773l-2.25,0.201h-0.41l-2.67-0.303l-2.43-0.744l-0.468,0.406l1.07,0.775l-2.605-0.201l-0.998-0.541l-0.784-0.711l-2.428-0.34l0.637,1.152l-4.268-0.201l-5.045,0.227l-5.025,0.229
+ l-5.008,0.227l-4.989,0.227l-4.288-0.201l-3.274-0.168l-0.804,0.539l-0.848,0.838l-2.411,0.031l-3.582,0.768l-3.51,0.76l2.277,0.723l-4.796-0.426l-0.852,0.393l6.942,0.588l0.259,0.355l0.567,0.389l0.596,0.385h-0.96l-2.412,0.701l-5.628-0.541l-1.753-0.225
+ l-5-0.191l-0.181,0.289l-1.853-0.193l3.025,1.492l2.97,0.281l3.364,0.094l-1.59,0.99l2.965,0.699l7.063,0.672l6.987,0.664l4.598,1.01l2.936,0.396l0.378,0.889l-8.311,0.082l-8.188-0.33l0.208,0.357l5.224,0.566l0.499,0.506l6.003,1.156l-0.04,0.645l2.02,0.79
+ l434.556,0.073z M348.054,405.843l-1.142,0.379l0.308,0.432l-5.591,0.555l-5.528,0.547l-3.443-0.504l0.578-1.482l0.612-1.541l5.636-1.857l5.427,0.721l0.263,0.709l-2.367,0.459l3.107,0.031l-0.518,0.662l2.363,0.506l0.295,0.385z M300.325,389.701l0.218,0.943
+ l-0.654,0.801l-1.718,0.414l-3.828-0.414l2.719-0.383l-0.686-0.418l-1.428-0.803l-1.499,0.07l-1.124,0.07l0.341,0.559l-1.49,0.07l-3.274-1.295l1.321,0.314l-0.527-0.666l2.645,0.525l-1.114-0.561l2.115,0.035l-0.834-0.318l2.219-0.459l1.301,0.178l-1.929-1.17
+ l1.708-0.463l-2.65-0.824l-1.339-1.367l1.677-0.977l1.595,1.158l3.091,2.115l3.143,2.863z M302.191,401.613l-1.792,1.01l-6.878-0.629l-1.597-0.35l-2.031-0.287l0.099-0.643l5.974,0.322l5.945,0.32l0.28,0.256z M183.534,405.695l-6.889-0.414l-2.93-0.809
+ l1.855-0.578l7.964,1.801z M257.888,391.097l-2.593,0.416l-4.41-0.486l-4.429-0.486l2.99-0.314l2.341,0.139l-0.784-0.488l1.696,0.244l0.271,0.314l0.22-0.105l0.831,0.035l0.48,0.453l0.333-0.836l0.995,0.383l-0.234,0.488l1.637-0.035l-1.274,0.141l1.931,0.139z
+ M325.72,406.25l0.325,1.533l-5.238-0.504l-4.161-0.453l6.854,0.113l1.067-0.922l1.153,0.232z M312.823,403.308l-2.925,1.795l0.799,0.475l-2.152-0.148l-0.991-0.898l5.269-1.223z M224.684,394.195l-1.218,1.018l-4.173-0.371l-0.96-0.783l6.351,0.137z
+ M217.643,394.466l-1.003,0.34l-4.374-1.158l-0.386,0.104l-1.704-0.789l2.074-0.035l0.97,0.207l1.34,0.617l0.915,0.205l2.168,0.51z M658.959,401.484l-4.97,0.604l-0.168-0.316l1.39-0.67l3.748,0.383z M292.703,392.654l0.132,1.166l-2.908-0.893l0.207-0.48
+ l2.413,0.068l0.156,0.139z M294.659,378.861l0.506,1.148l-1.395,1.326l-0.357-1.586l1.246-0.889z M300.465,374.207l-1.966,0.453l-0.038-0.756l0.89-0.189l1.115,0.492z M310.001,373.296l-1.934,0.342l-0.25-0.418l0.478-0.801l0.388,0.535l1.317,0.342z
+ M287.372,391.998l-0.751,0.621h-1.599l1.063-0.482l1.287-0.139z M287.554,385.837l-2.376,0.035l-0.18-0.467l2.062,0.18l0.495,0.252z M312.672,371.273l-2.516,0.078l2.362-0.23l0.153,0.152z M306.837,368.347l-2.302,0.426l2.133-0.541l0.169,0.115z"/>
+ <g>
+ </g>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M777.06,8.119h-0.691v0.673h0.691V8.119z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M776.368,8.792V8.119h-10.816v10.847h0.672h0.689h0.671v0.692h-0.671h-0.689h-0.672v0.673h0.672v0.673h0.689h0.671v-0.673h0.672v-0.673v-0.692h1.362h0.671h0.671h0.671h0.69h0.672
+ v-0.673h0.672v0.673h0.69h0.671v-0.673h-0.671V17.62h-0.69v-0.693v-0.673v-0.673h0.69v-0.673h0.671v-0.692h-0.671v-0.673h0.671h0.671h0.671v-0.673v-0.692v-0.673v-0.673v-0.673h0.691V9.466h0.672V8.792V8.119h-0.672v0.673h-0.691z M772.321,13.542h0.672v0.673
+ h0.672v0.692h-1.344v2.019h0.672v0.693h-0.672v0.673h-0.69h-0.671V17.62v-0.693v-1.346v-0.673h0.671v-0.692v-0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFE;stroke:none;" d="M772.993,13.542h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFE;stroke:none;" d="M771.631,14.908v0.673v1.346h0.69v-2.019h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M771.631,15.582v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M771.631,14.216v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M771.631,15.582h-0.671v1.346h0.671v-1.346z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M772.993,14.216h-0.672v0.692h1.344v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M771.631,14.216h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M772.321,16.927v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M772.321,17.62v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M771.631,16.927h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M771.631,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M772.321,17.62h-0.69v0.673h0.69V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M777.06,10.158h-0.691v0.673h0.691v0.673h0.672v-0.673v-0.673V9.466h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M777.06,10.832h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M777.06,11.504h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M779.073,9.466h0.69V8.792V8.119h-2.032v0.673h0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M779.764,9.466h-0.69v0.692h0.69V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M779.764,8.792v0.673h0.671V8.792h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M780.435,8.792v0.673h0.672h0.69V8.792h-1.362z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M780.435,8.119h-0.671v0.673h0.671V8.119z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M780.435,9.466h-0.671v0.692h0.671h0.672V9.466h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M780.435,8.119v0.673h1.362V8.119h-1.362z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M777.731,9.466h0.671V8.792h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFA;stroke:none;" d="M778.402,9.466h-0.671v0.692h0.671V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M778.402,10.158h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M778.402,10.832h-0.671v0.673h0.671v0.673h0.671h0.69h0.671v-0.673h-0.671v-0.673h-0.69h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M778.402,11.504h-0.671v0.673v0.692h0.671v-0.692v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFA;stroke:none;" d="M778.402,10.158v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF7;stroke:none;" d="M779.764,10.158h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M779.764,10.832v0.673h0.671h0.672h0.69v-0.673h-0.69h-0.672h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAFA;stroke:none;" d="M780.435,10.158h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M780.435,10.158v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF7;stroke:none;" d="M779.073,9.466h-0.671v0.692h0.671V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M777.731,11.504h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M768.256,19.658h0.672v0.673h0.69v-0.673v-0.692h-1.362v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M768.928,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M770.289,18.966v0.692v0.673h0.671v-0.673v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M770.289,19.658v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M770.289,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M767.584,19.658v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M773.665,16.927v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M773.665,16.254v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M770.96,19.658h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF6;stroke:none;" d="M771.631,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M771.631,18.966v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M773.665,18.293h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF9;stroke:none;" d="M773.665,18.966h-0.672h-0.672v0.692h0.672h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M773.665,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M772.993,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M773.665,18.966v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF8;stroke:none;" d="M772.321,19.658h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M773.665,15.582v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF3;stroke:none;" d="M779.764,12.177h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5EFDB;stroke:none;" d="M779.764,12.869h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF8;stroke:none;" d="M779.073,13.542v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7E580;stroke:none;" d="M779.764,13.542h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE3B1;stroke:none;" d="M779.764,12.869v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DE8D;stroke:none;" d="M780.435,12.869v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F4DB;stroke:none;" d="M780.435,12.177h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M779.073,12.869v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E983;stroke:none;" d="M780.435,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3EDC0;stroke:none;" d="M780.435,12.177v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M777.731,13.542h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F2EB;stroke:none;" d="M778.402,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M777.731,13.542v-0.673v-0.692h-0.672v0.692v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E4A2;stroke:none;" d="M777.731,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7DF80;stroke:none;" d="M777.731,15.582v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E198;stroke:none;" d="M777.731,14.908h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBF0CF;stroke:none;" d="M777.731,14.908v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEB82E;stroke:none;" d="M778.402,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EADA94;stroke:none;" d="M778.402,14.216v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E2B0;stroke:none;" d="M778.402,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4DDA4;stroke:none;" d="M779.764,14.216h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9DA9C;stroke:none;" d="M779.764,14.908h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8EDCC;stroke:none;" d="M779.764,15.582h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1D98E;stroke:none;" d="M779.764,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E7BF;stroke:none;" d="M780.435,14.908v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E3A1;stroke:none;" d="M780.435,14.216h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M780.435,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E395;stroke:none;" d="M780.435,14.216v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M777.731,14.216v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDE8AB;stroke:none;" d="M779.073,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2D36C;stroke:none;" d="M779.073,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECE68B;stroke:none;" d="M780.435,13.542v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFA;stroke:none;" d="M777.06,13.542v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M777.06,12.869v-0.692h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M777.06,13.542h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M776.368,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M775.026,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M775.026,14.908h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M775.026,15.582h-0.671v0.673v0.673h0.671v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M775.026,14.216v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBEF;stroke:none;" d="M775.026,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M777.06,14.216h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E4D4;stroke:none;" d="M775.697,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFD86D;stroke:none;" d="M777.06,15.582v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDAD1F;stroke:none;" d="M777.06,15.582h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M775.697,14.908h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCDEC0;stroke:none;" d="M776.368,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M775.026,14.216h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F7E4;stroke:none;" d="M775.697,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F3C7;stroke:none;" d="M777.06,16.254h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCEE;stroke:none;" d="M775.697,16.927v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M775.697,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M776.368,16.927v0.693h0.691v-0.693h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M777.06,17.62h-0.691v0.673h0.691V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M777.06,16.927v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F4D9;stroke:none;" d="M776.368,16.927v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF7;stroke:none;" d="M776.368,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEB;stroke:none;" d="M775.697,16.927v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECDC92;stroke:none;" d="M777.06,16.254v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M774.355,17.62h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M775.026,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M774.355,19.658h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M775.026,19.658h-0.671h-0.69v0.673h1.361h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M775.026,18.293v0.673h1.342v-0.673h-0.671h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M775.026,18.966v0.692h0.671h0.671v-0.692h-1.342z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBEC;stroke:none;" d="M777.06,18.293h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M777.06,18.966h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M777.06,18.293v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M777.06,19.658h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M777.06,18.966v0.692v0.673h0.672v-0.673v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M776.368,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M775.697,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F8F3;stroke:none;" d="M777.06,17.62v0.673h0.672V17.62h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4BC3C;stroke:none;" d="M779.764,16.254h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEB819;stroke:none;" d="M779.764,16.927v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEC529;stroke:none;" d="M779.764,17.62v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M779.764,17.62h-0.69v0.673v0.673h0.69h0.671v-0.673h-0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFE39E;stroke:none;" d="M779.073,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6C959;stroke:none;" d="M780.435,16.927v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D99C;stroke:none;" d="M779.764,16.927h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBB21B;stroke:none;" d="M779.073,16.927v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE2AE;stroke:none;" d="M780.435,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F5E7;stroke:none;" d="M780.435,16.254v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF5;stroke:none;" d="M777.731,17.62h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M778.402,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5BE41;stroke:none;" d="M777.731,16.927h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M777.731,18.966h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M778.402,18.966h-0.671v0.692h0.671h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M778.402,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M778.402,18.293v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M779.764,18.966v0.692h1.343v-0.692h-0.672h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF7;stroke:none;" d="M779.764,19.658v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M779.764,19.658h-0.69v0.673h0.69h0.671v0.673h0.672v-0.673v-0.673h-1.343z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F1CD;stroke:none;" d="M780.435,18.293v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M779.073,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M779.073,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5C146;stroke:none;" d="M780.435,17.62v0.673h0.672V17.62h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9AD20;stroke:none;" d="M777.731,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M780.435,15.582v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M780.435,11.504v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M789.91,8.119v0.673h1.343h0.689h0.672V8.119h-2.704z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFA;stroke:none;" d="M789.91,8.792V8.119h-1.362v0.673h1.362z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M788.548,8.792v0.673h2.705V8.792h-1.343h-1.362z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M788.548,9.466V8.792h-0.671v0.673v0.692h0.671V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M788.548,8.792V8.119h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F7;stroke:none;" d="M787.877,9.466V8.792h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M787.877,8.792V8.119h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M787.877,10.158v0.673h0.671h0.691v-0.673h-0.691h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFA;stroke:none;" d="M787.877,10.832v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6D165;stroke:none;" d="M788.548,10.832h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8D26B;stroke:none;" d="M787.877,11.504v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EED051;stroke:none;" d="M788.548,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2D35E;stroke:none;" d="M788.548,10.832v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M789.239,10.158h0.671h0.671h0.672h1.361V9.466h-0.672h-0.689h-2.705v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M789.91,10.158h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2D650;stroke:none;" d="M789.91,10.832h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D234;stroke:none;" d="M789.91,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0D348;stroke:none;" d="M789.91,10.832v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFCA52;stroke:none;" d="M790.581,10.832v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBEF;stroke:none;" d="M790.581,10.158h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFCA21;stroke:none;" d="M790.581,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6EE;stroke:none;" d="M790.581,10.158v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFA;stroke:none;" d="M787.877,10.158V9.466h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D149;stroke:none;" d="M789.239,11.504h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M793.976,8.792v0.673h0.671V8.792h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M793.976,9.466V8.792h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M793.976,8.119v0.673h0.671V8.119h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M793.976,8.792V8.119h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M793.976,9.466h-0.689v0.692h1.36V9.466h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M793.286,9.466V8.792h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M793.286,8.792V8.119h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M791.942,8.792h-0.689v0.673h0.689V8.792z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFA;stroke:none;" d="M791.942,9.466h0.672V8.792h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3C170;stroke:none;" d="M791.253,10.832v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFE2D6;stroke:none;" d="M792.614,10.832v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7BD8E;stroke:none;" d="M792.614,11.504v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F9;stroke:none;" d="M791.942,10.832h0.672v-0.673h-1.361v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC9141;stroke:none;" d="M792.614,11.504h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1A430;stroke:none;" d="M791.942,11.504h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F8F8;stroke:none;" d="M792.614,10.158v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M793.286,10.158v0.673h0.689h0.671v-0.673h-1.36z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F3E7;stroke:none;" d="M793.976,10.832h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DE9E78;stroke:none;" d="M793.976,11.504h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF0;stroke:none;" d="M793.976,10.832v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M793.286,9.466h-0.672v0.692h0.672V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA8359;stroke:none;" d="M793.286,11.504h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9BB22;stroke:none;" d="M791.253,11.504h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M783.14,8.119h-0.671v0.673h0.671V8.119z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M783.14,8.792h-0.671v0.673h0.671V8.792z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF8;stroke:none;" d="M782.469,9.466V8.792h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M783.14,9.466h-0.671v0.692h0.671V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF9;stroke:none;" d="M783.14,8.792v0.673h0.671V8.792h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF8;stroke:none;" d="M783.811,8.792v0.673h0.69V8.792h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M783.811,8.119h-0.671v0.673h0.671V8.119z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M782.469,8.792V8.119h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M783.811,9.466h-0.671v0.692h0.671V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M783.811,8.119v0.673h0.69V8.119h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF9;stroke:none;" d="M781.797,9.466h-0.69v0.692h0.69h0.672V9.466h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F0;stroke:none;" d="M781.797,11.504h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M781.106,10.832h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M781.797,10.158v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M781.797,10.832v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFC;stroke:none;" d="M783.14,10.158h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M783.14,10.832h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E8BA;stroke:none;" d="M783.14,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAEF;stroke:none;" d="M783.14,10.832v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F2D7;stroke:none;" d="M783.811,10.832v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E3AA;stroke:none;" d="M783.811,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M783.14,10.158v0.673h0.671h0.69v-0.673h0.672V9.466h-0.672h-0.69v0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1ECC7;stroke:none;" d="M782.469,11.504h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M785.844,9.466h0.69h0.672V8.792h-0.672h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M786.534,9.466h-0.69h-0.671v0.692h0.671h0.69V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M785.844,9.466V8.792h0.69V8.119h-1.361v0.673v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFA;stroke:none;" d="M787.206,8.792V8.119h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M787.206,9.466h-0.672v0.692h0.672V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M784.501,9.466h0.672V8.792h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M784.501,8.792h0.672V8.119h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1EDC1;stroke:none;" d="M784.501,10.832v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M784.501,10.832h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFDB7D;stroke:none;" d="M785.173,11.504h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M785.173,10.158v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE7AC;stroke:none;" d="M785.173,10.832v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M786.534,10.158h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E39B;stroke:none;" d="M786.534,10.832h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFDE5E;stroke:none;" d="M786.534,11.504h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DF92;stroke:none;" d="M786.534,10.832v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAED;stroke:none;" d="M787.206,10.158h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DF59;stroke:none;" d="M787.206,11.504h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFDC6B;stroke:none;" d="M785.844,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4DF92;stroke:none;" d="M784.501,11.504h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DD5B;stroke:none;" d="M786.534,12.177h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8DE78;stroke:none;" d="M786.534,12.869h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9DE76;stroke:none;" d="M785.844,13.542v-0.673h-0.671h-0.672v0.673h0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F4F6;stroke:none;" d="M786.534,13.542h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DE79;stroke:none;" d="M786.534,12.869v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE572;stroke:none;" d="M787.206,12.869v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DF5A;stroke:none;" d="M787.206,12.177h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0DB5D;stroke:none;" d="M785.844,12.869v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M787.206,13.542h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6CE49;stroke:none;" d="M787.206,12.177v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5ECD2;stroke:none;" d="M785.173,13.542h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EADF74;stroke:none;" d="M784.501,13.542v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFD866;stroke:none;" d="M784.501,12.869h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1D86F;stroke:none;" d="M784.501,12.869v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M784.501,14.908h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF5;stroke:none;" d="M785.173,14.908h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M784.501,14.908v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M784.501,15.582v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M785.173,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF3;stroke:none;" d="M785.173,14.216v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M785.173,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAE2;stroke:none;" d="M786.534,14.216h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M786.534,14.908h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF1;stroke:none;" d="M786.534,15.582h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEC;stroke:none;" d="M786.534,14.908v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M787.206,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF3;stroke:none;" d="M787.206,14.216h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M787.206,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF6E2;stroke:none;" d="M787.206,14.216v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E8B7;stroke:none;" d="M784.501,14.216v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F0F1;stroke:none;" d="M785.844,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M785.844,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M787.206,13.542v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8DC83;stroke:none;" d="M783.14,12.177h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECDE72;stroke:none;" d="M783.14,12.869v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECDC70;stroke:none;" d="M783.14,13.542v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DE81;stroke:none;" d="M783.14,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECDB6E;stroke:none;" d="M782.469,13.542v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3DA79;stroke:none;" d="M783.14,12.869h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EADD88;stroke:none;" d="M782.469,12.869v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE295;stroke:none;" d="M783.811,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE8AE;stroke:none;" d="M781.797,12.177h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DA77;stroke:none;" d="M781.797,12.869h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBDE84;stroke:none;" d="M781.797,13.542h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DF93;stroke:none;" d="M781.797,14.216h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M781.797,14.908h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F6D5;stroke:none;" d="M781.797,15.582h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2ECBE;stroke:none;" d="M781.797,14.216v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M781.797,14.908v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F0E3;stroke:none;" d="M783.14,14.216h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCEE;stroke:none;" d="M783.14,14.908h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M783.14,15.582h-0.671v0.673v0.673h0.671h0.671v-0.673h0.69v-0.673h-0.69h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M783.14,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAEE;stroke:none;" d="M783.811,14.216h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DB89;stroke:none;" d="M782.469,13.542h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF9;stroke:none;" d="M782.469,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF7;stroke:none;" d="M783.811,16.254v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M783.14,17.62h0.671h0.69v-0.693h-0.69h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M783.811,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M783.14,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E5E1;stroke:none;" d="M783.14,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M782.469,17.62v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F8EB;stroke:none;" d="M782.469,16.927v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4DFD4;stroke:none;" d="M781.106,17.62h0.69v-0.693h-0.69v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3AB18;stroke:none;" d="M781.797,17.62h-0.69v0.673h0.69V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F9;stroke:none;" d="M781.106,16.927h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDE789;stroke:none;" d="M781.106,18.966h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M781.797,18.966h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M781.797,19.658h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6AD18;stroke:none;" d="M781.797,18.293v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCEDD6;stroke:none;" d="M781.797,18.966v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F1C9;stroke:none;" d="M783.811,18.293v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8EDD1;stroke:none;" d="M783.811,18.966v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDCD5C;stroke:none;" d="M783.14,18.293h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3BC20;stroke:none;" d="M783.14,18.966h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6DFE2;stroke:none;" d="M783.14,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFAF20;stroke:none;" d="M783.811,18.966h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAC022;stroke:none;" d="M783.811,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFBD4F;stroke:none;" d="M783.811,18.966v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECDAA0;stroke:none;" d="M782.469,17.62h-0.672v0.673h0.672V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M782.469,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M783.811,17.62v0.673h0.69V17.62h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M786.534,16.254h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E5AE;stroke:none;" d="M786.534,16.927v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5EEE0;stroke:none;" d="M786.534,17.62v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CECC3B;stroke:none;" d="M786.534,17.62h-0.69v0.673h0.69V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF2;stroke:none;" d="M785.844,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD96D;stroke:none;" d="M787.206,16.927v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F9;stroke:none;" d="M786.534,16.927h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M785.844,16.927v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9B61B;stroke:none;" d="M787.206,17.62h-0.672v0.673h0.672V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M787.206,16.254v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M784.501,17.62h0.672v-0.693h-0.672v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F8;stroke:none;" d="M785.173,17.62h-0.672v0.673h0.672V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF7;stroke:none;" d="M784.501,16.927h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCE15F;stroke:none;" d="M784.501,18.966h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2A526;stroke:none;" d="M785.173,18.966h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A08246;stroke:none;" d="M785.173,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9BA22;stroke:none;" d="M785.173,18.293v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#758046;stroke:none;" d="M785.173,18.966v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#82829C;stroke:none;" d="M787.206,18.293v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#96726C;stroke:none;" d="M787.206,18.966v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9F8C3D;stroke:none;" d="M786.534,18.293h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5C798C;stroke:none;" d="M786.534,18.966h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6174A5;stroke:none;" d="M786.534,19.658h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#677AA1;stroke:none;" d="M787.206,18.966h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7278AE;stroke:none;" d="M787.206,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E8EAC;stroke:none;" d="M787.206,18.966v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E3AA;stroke:none;" d="M785.844,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#695C97;stroke:none;" d="M785.844,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7AC18;stroke:none;" d="M787.206,17.62v0.673h0.671V17.62h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDB118;stroke:none;" d="M784.501,19.658h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M787.206,15.582v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2946A;stroke:none;" d="M793.976,12.177h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F48C5F;stroke:none;" d="M793.286,12.869v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F48C71;stroke:none;" d="M793.976,12.869h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E97F65;stroke:none;" d="M793.286,13.542v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECC2A3;stroke:none;" d="M793.976,13.542h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7936E;stroke:none;" d="M793.976,12.177v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F29277;stroke:none;" d="M793.976,12.869v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA9D1D;stroke:none;" d="M792.614,12.177h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBC92E;stroke:none;" d="M791.253,12.869v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E051;stroke:none;" d="M791.253,13.542v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAB01D;stroke:none;" d="M792.614,13.542v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFCA76;stroke:none;" d="M792.614,13.542h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7B522;stroke:none;" d="M791.253,12.177v0.692h0.689v-0.692h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFCC27;stroke:none;" d="M791.253,12.869v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F5CB;stroke:none;" d="M791.942,13.542h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDEBD0;stroke:none;" d="M792.614,14.216h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M791.253,14.908v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M791.253,15.582v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBB92A;stroke:none;" d="M792.614,14.908v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAEE;stroke:none;" d="M792.614,15.582v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAF1;stroke:none;" d="M792.614,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAE6;stroke:none;" d="M791.942,14.216h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M791.942,15.582h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8EC;stroke:none;" d="M791.253,14.908v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAB918;stroke:none;" d="M792.614,14.216v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2D693;stroke:none;" d="M793.976,14.216h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1C84E;stroke:none;" d="M793.976,14.908h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDBF26;stroke:none;" d="M793.976,15.582h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F0F3;stroke:none;" d="M793.976,14.216v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF3;stroke:none;" d="M793.976,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M791.253,14.216v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CABA1A;stroke:none;" d="M793.286,13.542h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E1A2;stroke:none;" d="M793.286,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4A9AB;stroke:none;" d="M793.976,13.542v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED453;stroke:none;" d="M789.91,12.177h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E274;stroke:none;" d="M789.91,12.869v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DD94;stroke:none;" d="M789.91,13.542v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M789.91,13.542h-0.671v0.673h0.671h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8E0A0;stroke:none;" d="M789.239,13.542v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1D63E;stroke:none;" d="M789.91,12.869h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D262;stroke:none;" d="M789.239,12.869v-0.692h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D159;stroke:none;" d="M788.548,12.177h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE38D;stroke:none;" d="M788.548,12.869h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M788.548,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9EF;stroke:none;" d="M788.548,14.216h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFB;stroke:none;" d="M788.548,14.908h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M788.548,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF7;stroke:none;" d="M788.548,14.216v0.692h0.691v-0.692h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F9F6;stroke:none;" d="M788.548,14.908v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFA;stroke:none;" d="M789.91,14.216h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M789.91,14.908h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M789.91,15.582h-0.671h-0.691v0.673h0.691h0.671h0.671v-0.673v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF6;stroke:none;" d="M790.581,14.908v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M789.239,13.542h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAE7;stroke:none;" d="M789.91,16.254h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D97E;stroke:none;" d="M789.91,16.927v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFD05D;stroke:none;" d="M789.91,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7A043;stroke:none;" d="M789.91,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9C950;stroke:none;" d="M789.239,17.62v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E3AB;stroke:none;" d="M790.581,16.927v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M789.91,16.927h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAE3;stroke:none;" d="M789.239,16.927v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6A619;stroke:none;" d="M790.581,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M790.581,16.254v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAC956;stroke:none;" d="M787.877,17.62h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4A023;stroke:none;" d="M788.548,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF2;stroke:none;" d="M787.877,16.927h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#898AA8;stroke:none;" d="M787.877,18.966h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9390B8;stroke:none;" d="M788.548,18.966h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9C9DBC;stroke:none;" d="M788.548,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9999BD;stroke:none;" d="M788.548,18.293v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D99BC;stroke:none;" d="M788.548,18.966v0.692h0.691v-0.692h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5AB92;stroke:none;" d="M790.581,18.293v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A59CBB;stroke:none;" d="M790.581,18.966v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9997BF;stroke:none;" d="M789.91,18.293h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEADBA;stroke:none;" d="M789.91,18.966h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8B9C3;stroke:none;" d="M789.91,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BBB7C8;stroke:none;" d="M790.581,18.966h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5C2CF;stroke:none;" d="M790.581,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7ADCD;stroke:none;" d="M790.581,18.966v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B89F54;stroke:none;" d="M789.239,17.62h-0.691v0.673h0.691V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7A9BC;stroke:none;" d="M789.239,19.658h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0B219;stroke:none;" d="M790.581,17.62v0.673h0.672V17.62h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEBB30;stroke:none;" d="M793.976,16.927v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6CE61;stroke:none;" d="M793.976,17.62v-0.693h-0.689v0.693h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDD56A;stroke:none;" d="M793.976,16.254v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2C12C;stroke:none;" d="M793.976,16.927v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9EBB4;stroke:none;" d="M793.976,17.62h-0.689v0.673h0.689V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M793.286,17.62v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M793.286,16.927v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M792.614,16.254h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F1DC;stroke:none;" d="M791.253,16.927v0.693h0.689v-0.693h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M792.614,17.62v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2D187;stroke:none;" d="M792.614,17.62h-0.672v0.673h0.672V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M791.253,16.254v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6BD3F;stroke:none;" d="M791.942,17.62h-0.689v0.673h0.689V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8CE54;stroke:none;" d="M792.614,18.293v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEB91D;stroke:none;" d="M792.614,18.966v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8AF48;stroke:none;" d="M791.942,18.966v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEBCA3;stroke:none;" d="M792.614,18.966h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6C2BF;stroke:none;" d="M792.614,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5ADBC;stroke:none;" d="M791.253,18.966v0.692h0.689v-0.692h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0BDC9;stroke:none;" d="M791.942,19.658h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BBB03B;stroke:none;" d="M792.614,18.966v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7EFDB;stroke:none;" d="M793.976,18.293h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEB333;stroke:none;" d="M793.976,18.966h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCA84A;stroke:none;" d="M793.976,19.658h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3AF3F;stroke:none;" d="M793.976,18.293v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7BB1D;stroke:none;" d="M793.976,18.966v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8CF;stroke:none;" d="M793.286,17.62h-0.672v0.673h0.672V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6AC77;stroke:none;" d="M793.286,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3AC29;stroke:none;" d="M793.976,17.62v0.673h0.671V17.62h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M791.253,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3BED1;stroke:none;" d="M791.253,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E3B1;stroke:none;" d="M793.976,15.582v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1D150;stroke:none;" d="M787.877,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9293B5;stroke:none;" d="M787.877,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EABA9A;stroke:none;" d="M793.976,11.504v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F7EE;stroke:none;" d="M766.224,18.966v0.692h0.689v-0.692h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M766.224,19.658v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M766.224,21.004v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M766.913,21.004h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M766.913,21.677h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M765.552,21.004v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M766.224,21.677h-0.672v1.366h0.672V22.37v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFA;stroke:none;" d="M766.913,21.004v0.673h0.671h0.672v-0.673h-0.672h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF0;stroke:none;" d="M766.913,22.37v0.673h0.671V22.37h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF5;stroke:none;" d="M766.913,23.043V22.37h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M766.913,23.043h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M766.913,23.716h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M765.552,23.043v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M766.224,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF6;stroke:none;" d="M766.913,23.043v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF3;stroke:none;" d="M766.913,21.677v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M766.913,24.39h-0.689v0.692h0.689V24.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M766.224,25.082V24.39h-0.672v1.365h0.672v1.366h-0.672v0.673h0.672v2.039h0.689V29.14v-0.673v-0.673V27.12v-0.693v-0.673v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M766.913,24.39v0.692v0.673h0.671v-0.673V24.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M766.224,25.754h-0.672v1.366h0.672v-1.366z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M766.224,27.793h-0.672v2.039h0.672v-2.039z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFC;stroke:none;" d="M766.913,26.427v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M766.913,27.12v0.673h0.671V27.12h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M766.913,25.754v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF8;stroke:none;" d="M766.913,23.716v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFA;stroke:none;" d="M765.552,30.505h0.672v-0.674h-0.672v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFB;stroke:none;" d="M766.224,30.505h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M766.913,29.14v0.692h0.671V29.14h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M766.224,29.832v0.674v0.673h0.689v-1.347h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M766.913,28.466v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M766.224,31.178h-0.672v4.077h1.361V33.89h-0.689v-2.711z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M766.913,31.178h-0.689v2.711h0.689v-1.347v-1.365z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M766.913,31.178v1.365h0.671v-1.365h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M766.913,29.832v1.347h0.671v-0.673v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M765.552,35.928v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M766.224,36.601h0.689v-0.673v-0.673h-1.361v0.673h0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M766.913,36.601h-0.689v0.693v0.673h0.689v-0.673v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M766.913,35.928v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M766.224,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M766.913,35.255v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M766.913,33.89v1.366h0.671v-0.674V33.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M766.913,32.543v1.347h0.671h0.672v0.692v0.674v0.673v0.673h0.672h0.69v-0.673h-0.69v-0.673v-0.674V33.89v-0.673h-0.672v-0.673V31.87v-0.692v-0.673h-0.672v0.673v1.365h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M766.913,27.793v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M765.552,37.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6F6;stroke:none;" d="M766.224,38.64h0.689v-0.673h-0.689v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9F9;stroke:none;" d="M766.913,38.64h-0.689v0.692h0.689V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M766.913,37.967v0.673v0.692h-0.689v1.347h0.689v-0.673h0.671v-0.674V38.64v-0.673v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M766.224,37.967v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M766.224,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M765.552,40.678h0.672v-1.347h-0.672v1.347z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M766.224,40.678h-0.672v16.289h0.672h1.36v0.673h0.672v-0.673h0.672h0.69h0.671h0.671v0.673h0.671v-0.673h0.69h0.672h0.672h0.69h0.671h0.671h0.671h0.691h0.672v-0.673h-0.672v-0.692
+ h-0.691v-0.673v-0.673h0.691v-0.692V52.89h-0.691v-1.346v-1.366v-0.673v-0.674h0.691V48.14h-0.691v-0.673v-0.673h0.691v-0.693h-0.691h-0.671h-0.671h-0.671h-0.69v-0.673h-0.672v0.673h-0.672h-0.69h-0.671v-0.673v-0.673v-0.674V43.39h0.671v-0.673h-0.671v-0.672
+ v-0.693v-0.673h-0.671h-0.671h-0.69h-1.344h-0.671h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M766.913,40.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M766.913,36.601v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9B181;stroke:none;" d="M793.976,20.332h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3C1CC;stroke:none;" d="M793.286,21.004v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCC4B5;stroke:none;" d="M793.976,21.004h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0D8E5;stroke:none;" d="M793.286,21.677v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7C9C8;stroke:none;" d="M793.976,21.677h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4A922;stroke:none;" d="M793.976,20.332v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3B153;stroke:none;" d="M793.976,21.004v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CECDD9;stroke:none;" d="M792.614,21.004v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3D3DA;stroke:none;" d="M791.942,21.004v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DADBE6;stroke:none;" d="M792.614,21.004h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5D8DC;stroke:none;" d="M791.253,21.004v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2E6EB;stroke:none;" d="M792.614,21.677h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E9E9;stroke:none;" d="M791.942,21.004h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4EAE2;stroke:none;" d="M791.253,21.677v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAF1E7;stroke:none;" d="M791.942,21.677h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8D4C3;stroke:none;" d="M792.614,22.37v0.673h0.672V22.37h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEE4E5;stroke:none;" d="M792.614,23.043V22.37h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8EFE7;stroke:none;" d="M791.942,23.043V22.37h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3D8D6;stroke:none;" d="M792.614,23.043h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6EEE3;stroke:none;" d="M791.253,23.043V22.37h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5CBCB;stroke:none;" d="M792.614,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBDFE0;stroke:none;" d="M791.253,23.043v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9DBDD;stroke:none;" d="M791.253,23.716v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CACBD8;stroke:none;" d="M791.942,23.716h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFC8CC;stroke:none;" d="M792.614,23.043v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1C5CB;stroke:none;" d="M793.976,22.37h-0.689v0.673h0.689V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDBDD0;stroke:none;" d="M793.976,23.043h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4AFCF;stroke:none;" d="M793.976,23.716h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9ADAF;stroke:none;" d="M793.976,22.37v0.673h0.671V22.37h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4A9B7;stroke:none;" d="M793.976,23.043v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAF1E2;stroke:none;" d="M791.253,22.37v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAD8D9;stroke:none;" d="M793.286,21.677h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFB9D4;stroke:none;" d="M793.286,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEAE8A;stroke:none;" d="M793.976,21.677v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFD0D7;stroke:none;" d="M790.581,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1C7CA;stroke:none;" d="M789.91,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8CFD2;stroke:none;" d="M789.91,21.004h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4BCBE;stroke:none;" d="M789.239,21.004v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBD2D7;stroke:none;" d="M789.91,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8DEDF;stroke:none;" d="M789.91,21.004v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BCC5C3;stroke:none;" d="M789.239,21.677v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBE2E2;stroke:none;" d="M790.581,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A4AABD;stroke:none;" d="M788.548,20.332h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9597BE;stroke:none;" d="M787.877,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAAFC1;stroke:none;" d="M788.548,21.004h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9494BF;stroke:none;" d="M787.877,21.677v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ACAEC2;stroke:none;" d="M788.548,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ADADBE;stroke:none;" d="M788.548,22.37h-0.671v0.673h0.671V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9F9DB5;stroke:none;" d="M787.877,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAA7AC;stroke:none;" d="M788.548,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A8A792;stroke:none;" d="M787.877,23.716v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A8A39D;stroke:none;" d="M788.548,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDC0CB;stroke:none;" d="M788.548,22.37v0.673h0.691V22.37h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8B3C8;stroke:none;" d="M788.548,23.043v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DADEDE;stroke:none;" d="M790.581,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCCDD7;stroke:none;" d="M789.91,22.37h-0.671v0.673h0.671V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6C3D0;stroke:none;" d="M789.91,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEB9CA;stroke:none;" d="M789.91,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0D0D6;stroke:none;" d="M790.581,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4C2CD;stroke:none;" d="M790.581,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9796C0;stroke:none;" d="M787.877,22.37v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFC6CA;stroke:none;" d="M789.239,21.677h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1AAC0;stroke:none;" d="M789.239,23.716h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0B9C8;stroke:none;" d="M790.581,24.39v0.692h0.672V24.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ADB8CA;stroke:none;" d="M790.581,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1A3B8;stroke:none;" d="M789.91,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A79FC9;stroke:none;" d="M789.91,25.082h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A09BB2;stroke:none;" d="M789.239,25.082V24.39h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#868EBA;stroke:none;" d="M789.91,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9EABCB;stroke:none;" d="M789.91,25.082v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9F85A2;stroke:none;" d="M789.239,25.754v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C8DA9;stroke:none;" d="M790.581,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A6ACBA;stroke:none;" d="M790.581,25.082v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEA843;stroke:none;" d="M787.877,25.754h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCB91F;stroke:none;" d="M788.548,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4A11F;stroke:none;" d="M787.877,25.754v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9AA293;stroke:none;" d="M787.877,25.082h0.671V24.39h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BAB721;stroke:none;" d="M787.877,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDB01B;stroke:none;" d="M787.877,27.12h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9F8727;stroke:none;" d="M788.548,27.12h-0.671v0.673h0.671V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#606997;stroke:none;" d="M787.877,27.12v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#536981;stroke:none;" d="M787.877,27.793V27.12h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#655667;stroke:none;" d="M788.548,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A59E43;stroke:none;" d="M788.548,26.427v0.693h0.691v-0.693h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEB01E;stroke:none;" d="M788.548,27.12v0.673h0.691V27.12h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0AC3C;stroke:none;" d="M790.581,26.427v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#938968;stroke:none;" d="M790.581,27.12v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#727D99;stroke:none;" d="M789.91,26.427h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#857E76;stroke:none;" d="M789.91,27.12h-0.671v0.673h0.671V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D8549;stroke:none;" d="M789.91,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7A82F;stroke:none;" d="M790.581,27.12h-0.671v0.673h0.671V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDB61A;stroke:none;" d="M790.581,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBC420;stroke:none;" d="M790.581,27.12v0.673h0.672V27.12h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#977E71;stroke:none;" d="M787.877,26.427v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9C887D;stroke:none;" d="M789.239,25.754h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEB41D;stroke:none;" d="M789.239,27.793h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B59F80;stroke:none;" d="M790.581,25.754v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A4927E;stroke:none;" d="M793.976,25.082v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9E9BB6;stroke:none;" d="M793.976,25.754v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A391AF;stroke:none;" d="M793.976,24.39v0.692h0.671V24.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7B1B0;stroke:none;" d="M793.976,25.082V24.39h-0.689v0.692h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A19192;stroke:none;" d="M793.976,25.754h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9695BD;stroke:none;" d="M793.286,25.754v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAB4D6;stroke:none;" d="M793.286,25.082V24.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AFB0D1;stroke:none;" d="M792.614,24.39h-0.672v0.692h0.672V24.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7C4AF;stroke:none;" d="M791.942,25.082V24.39h-0.689v0.692h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ABA6CE;stroke:none;" d="M792.614,25.082h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B49C3A;stroke:none;" d="M792.614,25.754h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5AFB1;stroke:none;" d="M791.942,25.082h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDA157;stroke:none;" d="M791.942,25.754h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7AD2F;stroke:none;" d="M792.614,26.427v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5C317;stroke:none;" d="M792.614,27.12v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6BD25;stroke:none;" d="M791.942,27.12v-0.693h-0.689v0.693h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8EEB8;stroke:none;" d="M792.614,27.12h-0.672v0.673h0.672V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBEBDE;stroke:none;" d="M792.614,27.793h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEDD5F;stroke:none;" d="M791.253,27.12v0.673h0.689V27.12h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBE17A;stroke:none;" d="M791.942,27.793h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D143;stroke:none;" d="M792.614,27.12v0.673h0.672V27.12h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B3A347;stroke:none;" d="M793.976,26.427h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9B81A;stroke:none;" d="M793.976,27.12h-0.689v0.673h0.689V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDBA19;stroke:none;" d="M793.976,27.793h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4AE27;stroke:none;" d="M793.976,26.427v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3B92B;stroke:none;" d="M793.976,27.12v0.673h0.671V27.12h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#928B6F;stroke:none;" d="M793.286,25.754h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5D46E;stroke:none;" d="M793.286,27.793h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF9C45;stroke:none;" d="M793.976,25.754v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAAD75;stroke:none;" d="M787.877,24.39v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8C6D8;stroke:none;" d="M791.253,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7C929;stroke:none;" d="M791.253,27.793h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7A0A8;stroke:none;" d="M793.976,23.716v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E8CB1;stroke:none;" d="M787.206,21.004v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7677B3;stroke:none;" d="M786.534,20.332h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#93818F;stroke:none;" d="M785.844,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C8568;stroke:none;" d="M786.534,21.004h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAA515;stroke:none;" d="M786.534,21.677h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#968FB8;stroke:none;" d="M787.206,21.004h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BBAE2D;stroke:none;" d="M785.844,21.677v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#948DB2;stroke:none;" d="M787.206,21.677h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D9E1D;stroke:none;" d="M784.501,21.677h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#60696A;stroke:none;" d="M785.173,21.677h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#696876;stroke:none;" d="M784.501,21.677v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8A231;stroke:none;" d="M784.501,21.004h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAA415;stroke:none;" d="M784.501,21.004v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4C639C;stroke:none;" d="M784.501,23.043h0.672V22.37h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#416487;stroke:none;" d="M785.173,23.043h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C5392;stroke:none;" d="M784.501,23.043V22.37h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#365883;stroke:none;" d="M784.501,23.716v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#385396;stroke:none;" d="M785.173,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#917E84;stroke:none;" d="M785.173,22.37v0.673h0.671V22.37h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#52629B;stroke:none;" d="M785.173,23.043v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1AE4F;stroke:none;" d="M787.206,23.043V22.37h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8B035;stroke:none;" d="M786.534,22.37h-0.69v0.673h0.69V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#939089;stroke:none;" d="M786.534,23.043h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6D7D96;stroke:none;" d="M786.534,23.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CABA17;stroke:none;" d="M787.206,23.043h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3A127;stroke:none;" d="M787.206,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A3F92;stroke:none;" d="M784.501,22.37v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8A432;stroke:none;" d="M785.844,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#396C9F;stroke:none;" d="M785.844,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4BF20;stroke:none;" d="M783.811,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8E8CA;stroke:none;" d="M783.14,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D43A;stroke:none;" d="M783.14,21.004h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M782.469,21.004v-0.673h-0.672h-0.69v0.673h0.69h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4BA2B;stroke:none;" d="M783.14,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D991C;stroke:none;" d="M783.14,21.004v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M782.469,21.677v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F6E42;stroke:none;" d="M783.811,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M781.106,21.677h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M781.797,21.677h-0.69h-0.672h-1.361h-0.671v0.693h0.671h0.69h0.671v0.673h0.672V22.37h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M781.106,21.677v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9E3;stroke:none;" d="M781.106,23.043v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF1;stroke:none;" d="M781.106,23.716v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M781.106,23.043h0.69V22.37h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M781.797,23.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5ECB2;stroke:none;" d="M781.797,22.37v0.673h0.672V22.37h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE7AA;stroke:none;" d="M781.797,23.043v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6A5662;stroke:none;" d="M783.811,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7AB24;stroke:none;" d="M783.14,22.37h-0.671v0.673h0.671V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4A919;stroke:none;" d="M783.14,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7A33D;stroke:none;" d="M783.14,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#544A6F;stroke:none;" d="M783.811,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4C4E86;stroke:none;" d="M783.811,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F7D4;stroke:none;" d="M782.469,21.677h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4E799;stroke:none;" d="M782.469,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3D4D66;stroke:none;" d="M783.811,24.39v0.692h0.69V24.39h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#586160;stroke:none;" d="M783.811,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5B62C;stroke:none;" d="M783.14,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9B618;stroke:none;" d="M783.14,25.082h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7ECD3;stroke:none;" d="M782.469,25.082V24.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0B31C;stroke:none;" d="M783.14,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F7D2D;stroke:none;" d="M783.14,25.082v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7C85C;stroke:none;" d="M782.469,25.754v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A59916;stroke:none;" d="M783.811,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#35479D;stroke:none;" d="M783.811,25.082v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4B628;stroke:none;" d="M781.106,25.754h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECE995;stroke:none;" d="M781.797,25.754h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFBE58;stroke:none;" d="M781.106,25.754v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9E1AC;stroke:none;" d="M781.106,25.082h0.69V24.39h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9BE4D;stroke:none;" d="M781.106,25.082V24.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF0;stroke:none;" d="M781.106,27.12h0.69v-0.693h-0.69v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9FA;stroke:none;" d="M781.797,27.12h-0.69v0.673h0.69V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M781.106,27.12v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M781.106,27.793V27.12h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M781.797,27.793h-0.69h-0.672V27.12h-0.671h-0.69v0.673h0.69v0.673h0.671h0.672h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2EBBF;stroke:none;" d="M781.797,26.427v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M781.797,27.12v0.673h0.672V27.12h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#87784D;stroke:none;" d="M783.811,26.427v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9A016;stroke:none;" d="M783.811,27.12v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1B944;stroke:none;" d="M783.14,26.427h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E9C6;stroke:none;" d="M783.14,27.12h-0.671v0.673h0.671V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF5F6;stroke:none;" d="M783.14,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5D555;stroke:none;" d="M783.811,27.12h-0.671v0.673h0.671V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4ECBA;stroke:none;" d="M783.811,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BD9A15;stroke:none;" d="M783.811,27.12v0.673h0.69V27.12h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F3CD;stroke:none;" d="M781.106,26.427v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8B01C;stroke:none;" d="M782.469,25.754h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAEE;stroke:none;" d="M782.469,27.793h-0.672v0.673v0.673h0.672v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#404C89;stroke:none;" d="M783.811,25.754v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#898F83;stroke:none;" d="M787.206,25.082V24.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4673B0;stroke:none;" d="M786.534,25.082V24.39h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#496A85;stroke:none;" d="M786.534,25.082h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#40698D;stroke:none;" d="M785.844,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#506384;stroke:none;" d="M786.534,25.754h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6976A8;stroke:none;" d="M786.534,25.082v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#566771;stroke:none;" d="M785.844,25.754v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#536791;stroke:none;" d="M787.206,25.754h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#444C8E;stroke:none;" d="M784.501,25.754h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2B3E82;stroke:none;" d="M785.173,25.754h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#464B7B;stroke:none;" d="M784.501,25.082h0.672V24.39h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E5496;stroke:none;" d="M784.501,27.12h0.672v-0.693h-0.672v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#64684A;stroke:none;" d="M785.173,27.12h-0.672v0.673h0.672V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAA013;stroke:none;" d="M785.173,27.793h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#234986;stroke:none;" d="M785.173,26.427v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#264D8E;stroke:none;" d="M785.173,27.12v0.673h0.671V27.12h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5B6A90;stroke:none;" d="M787.206,27.12v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#355B7A;stroke:none;" d="M786.534,26.427h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2B5781;stroke:none;" d="M786.534,27.12h-0.69v0.673h0.69V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#394F64;stroke:none;" d="M786.534,27.793h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#384A8E;stroke:none;" d="M787.206,27.12h-0.672v0.673h0.672V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#324990;stroke:none;" d="M787.206,27.793h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#495783;stroke:none;" d="M785.844,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5B5D72;stroke:none;" d="M785.844,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF8;stroke:none;" d="M781.106,24.39v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#304763;stroke:none;" d="M784.501,23.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8B819;stroke:none;" d="M784.501,27.793h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3D4D84;stroke:none;" d="M787.206,28.466v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5F625B;stroke:none;" d="M787.206,29.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9F8D3B;stroke:none;" d="M786.534,28.466h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0AB42;stroke:none;" d="M785.844,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2AB24;stroke:none;" d="M786.534,29.14h-0.69v0.692h0.69V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0DAA4;stroke:none;" d="M786.534,29.832v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6B424;stroke:none;" d="M786.534,30.505v-0.674h-0.69v0.674h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFB449;stroke:none;" d="M785.844,30.505v-0.674h-0.671v0.674h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAAF19;stroke:none;" d="M786.534,30.505h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFCA6F;stroke:none;" d="M787.206,29.832v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBB418;stroke:none;" d="M785.844,29.832V29.14h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8AC18;stroke:none;" d="M787.206,29.14h-0.672v0.692h0.672V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8D98B;stroke:none;" d="M787.206,30.505h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A99D21;stroke:none;" d="M787.206,29.14v0.692h0.671V29.14h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDBA39;stroke:none;" d="M785.173,29.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAAE40;stroke:none;" d="M784.501,29.14v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#88C4B5;stroke:none;" d="M784.501,29.832v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAA948;stroke:none;" d="M784.501,30.505v-0.674h-0.69v0.674h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFB86C;stroke:none;" d="M785.173,29.14h-0.672v0.692h0.672V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#98BCA0;stroke:none;" d="M785.173,30.505h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFBC4B;stroke:none;" d="M784.501,29.832V29.14h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#88B18C;stroke:none;" d="M785.173,31.178h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFC477;stroke:none;" d="M784.501,31.87v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#74B57B;stroke:none;" d="M785.173,31.87h-0.672v0.673h0.672V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6D58D;stroke:none;" d="M784.501,32.543V31.87h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#74AB44;stroke:none;" d="M785.173,32.543h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#72B899;stroke:none;" d="M785.173,31.178v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6AB280;stroke:none;" d="M785.173,31.87v0.673h0.671V31.87h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A1A31A;stroke:none;" d="M786.534,31.178h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6CAB6A;stroke:none;" d="M786.534,31.87h-0.69v0.673h0.69V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#46A190;stroke:none;" d="M786.534,32.543h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0B21D;stroke:none;" d="M786.534,31.87v0.673h0.672V31.87h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E4C2;stroke:none;" d="M787.206,31.87v0.673h0.671V31.87h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4BE46;stroke:none;" d="M787.206,31.178h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2A819;stroke:none;" d="M787.206,32.543h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M787.206,31.178v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6B661;stroke:none;" d="M784.501,31.178v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9FBE85;stroke:none;" d="M785.844,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#429F5F;stroke:none;" d="M785.844,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9D6;stroke:none;" d="M787.206,30.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F1C9;stroke:none;" d="M783.811,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M783.14,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M783.14,29.14h-0.671v0.692h0.671V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4FAFB;stroke:none;" d="M782.469,30.505h0.671v-0.674h-0.671v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M783.14,30.505h-0.671v0.673v0.692h0.671v-0.692v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M782.469,30.505v-0.674h-0.672v0.674h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F6D7;stroke:none;" d="M783.14,29.832v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M782.469,29.832V29.14h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8EDD2;stroke:none;" d="M783.811,29.14h-0.671v0.692h0.671V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAE7;stroke:none;" d="M783.811,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFA;stroke:none;" d="M781.797,28.466h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M781.106,29.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M781.797,29.14h-0.69v0.692h0.69V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M781.106,29.832V29.14h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M781.797,29.832h-0.69h-0.672h-0.671h-0.69h-0.671h-1.343h-0.691v1.347v2.711v1.366v0.673h-0.671v0.673h0.671v0.693v0.673v0.673v0.692v0.674v0.673h0.691h0.672h0.671h1.361h0.671
+ h0.672h0.69h0.672v-0.673h-0.672V38.64v-0.673v-0.673v-0.693v-0.673v-0.673v-0.674V33.89v-0.673v-0.673V31.87v-0.692v-0.673v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAE2;stroke:none;" d="M781.797,31.178v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAE5;stroke:none;" d="M781.797,31.87v0.673h0.672V31.87h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M783.14,31.87h-0.671v0.673v0.673h0.671v-0.673V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M783.14,31.87v0.673h0.671V31.87h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF4;stroke:none;" d="M783.14,31.87h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M783.811,32.543h-0.671v0.673v0.673h0.671v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M782.469,30.505h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M782.469,32.543h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M783.14,33.216h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF5;stroke:none;" d="M783.14,33.89v0.692h0.671V33.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M783.14,34.582V33.89h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M783.14,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M782.469,34.582V33.89h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAFA;stroke:none;" d="M783.811,33.89v0.692h0.69V33.89h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F4EB;stroke:none;" d="M783.811,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M782.469,33.89v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBEBDD;stroke:none;" d="M783.811,33.216v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F6D9;stroke:none;" d="M781.797,35.255v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAF1;stroke:none;" d="M781.797,35.928v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M783.14,35.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M783.14,35.928h-0.671v0.673h0.671h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M783.14,36.601h-0.671v0.693v0.673v0.673h0.671v-0.673v-0.673v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M783.811,35.928v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M783.811,35.255v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF6;stroke:none;" d="M783.811,35.928v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF1;stroke:none;" d="M783.811,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF7F3;stroke:none;" d="M781.797,35.255h0.672v-0.674h-0.672v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M782.469,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M783.811,34.582v0.674h0.69v-0.674h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#328970;stroke:none;" d="M786.534,33.216h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#63AC47;stroke:none;" d="M786.534,33.89v0.692h0.672V33.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24905A;stroke:none;" d="M786.534,34.582V33.89h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#189153;stroke:none;" d="M786.534,34.582h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A9951;stroke:none;" d="M785.844,34.582V33.89h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5C328;stroke:none;" d="M787.206,33.89v0.692h0.671V33.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7FA329;stroke:none;" d="M786.534,33.89h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#198F55;stroke:none;" d="M785.844,33.89v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4A9F41;stroke:none;" d="M787.206,34.582h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2D24A;stroke:none;" d="M787.206,33.216v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2C658;stroke:none;" d="M784.501,34.582h0.672V33.89h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAE8B6;stroke:none;" d="M785.173,34.582h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A1A51A;stroke:none;" d="M784.501,33.89h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9E9;stroke:none;" d="M784.501,35.928h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M785.173,35.928h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M785.173,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDD46D;stroke:none;" d="M785.173,35.255v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E2B9;stroke:none;" d="M785.173,35.928v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#41772A;stroke:none;" d="M786.534,35.255h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7C9A3F;stroke:none;" d="M786.534,35.928h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CECB88;stroke:none;" d="M786.534,36.601h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3F852E;stroke:none;" d="M786.534,35.928v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFB22A;stroke:none;" d="M787.206,35.928v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#228A4A;stroke:none;" d="M787.206,35.255h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7E9725;stroke:none;" d="M787.206,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5AD1D;stroke:none;" d="M787.206,35.255v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#62A83C;stroke:none;" d="M785.844,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F7;stroke:none;" d="M785.844,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3B319;stroke:none;" d="M787.206,34.582v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE2AF;stroke:none;" d="M784.501,32.543h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M784.501,36.601h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DA7C;stroke:none;" d="M787.206,32.543v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEC23A;stroke:none;" d="M793.976,28.466v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8B51D;stroke:none;" d="M793.976,29.14v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4C357;stroke:none;" d="M793.286,29.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD05F;stroke:none;" d="M793.286,29.832v0.674h0.689v-0.674h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7BC27;stroke:none;" d="M793.286,30.505v-0.674h-0.672v0.674h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9C822;stroke:none;" d="M793.976,29.832v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4B21D;stroke:none;" d="M793.286,29.832h0.689V29.14h-0.689v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1DE70;stroke:none;" d="M793.976,30.505h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1C839;stroke:none;" d="M793.976,29.14v0.692h0.671V29.14h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEB71D;stroke:none;" d="M793.286,29.832V29.14h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6D65C;stroke:none;" d="M792.614,29.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFCB1A;stroke:none;" d="M792.614,29.14h-0.672v0.692h0.672V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7D24A;stroke:none;" d="M791.942,29.14v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6BB36;stroke:none;" d="M791.253,29.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9AE29;stroke:none;" d="M791.253,29.832v0.674h0.689v-0.674h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5BB2B;stroke:none;" d="M791.253,30.505v-0.674h-0.672v0.674h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9B418;stroke:none;" d="M791.942,30.505h0.672v-0.674h-0.672v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECD458;stroke:none;" d="M792.614,30.505h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9BC21;stroke:none;" d="M791.942,29.14h-0.689v0.692h0.689V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3A729;stroke:none;" d="M791.253,29.832V29.14h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D16C;stroke:none;" d="M791.942,30.505h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD570;stroke:none;" d="M792.614,31.178h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8D151;stroke:none;" d="M791.253,31.87v0.673h0.689V31.87h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED740;stroke:none;" d="M791.253,32.543V31.87h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8CB55;stroke:none;" d="M792.614,31.87v0.673h0.672V31.87h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1CE4B;stroke:none;" d="M792.614,32.543V31.87h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD624;stroke:none;" d="M792.614,32.543h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECD77B;stroke:none;" d="M791.253,31.87h0.689v-0.692h-0.689v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EED326;stroke:none;" d="M791.942,32.543h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DE61;stroke:none;" d="M791.253,31.87v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFDB6C;stroke:none;" d="M792.614,31.178v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECD75F;stroke:none;" d="M793.976,31.178h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7C732;stroke:none;" d="M793.976,31.87h-0.689v0.673h0.689V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8BB19;stroke:none;" d="M793.976,32.543h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BCAF22;stroke:none;" d="M793.976,31.178v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDB52D;stroke:none;" d="M793.976,31.87v0.673h0.671V31.87h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED85B;stroke:none;" d="M791.253,31.178v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D857;stroke:none;" d="M793.286,30.505h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECD03D;stroke:none;" d="M793.286,32.543h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCBE24;stroke:none;" d="M793.976,30.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9AB17;stroke:none;" d="M790.581,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B59221;stroke:none;" d="M789.91,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9A920;stroke:none;" d="M789.91,29.14h-0.671v0.692h0.671V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1AC1C;stroke:none;" d="M789.239,29.14v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAAB15;stroke:none;" d="M789.239,30.505h0.671v-0.674h-0.671v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAB620;stroke:none;" d="M789.91,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2B81E;stroke:none;" d="M789.239,30.505v-0.674h-0.691v0.674h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC82F;stroke:none;" d="M789.91,29.832v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFAA1D;stroke:none;" d="M789.239,29.832V29.14h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BCA316;stroke:none;" d="M790.581,29.14h-0.671v0.692h0.671V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8D94E;stroke:none;" d="M790.581,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4D5463;stroke:none;" d="M788.548,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6D072;stroke:none;" d="M787.877,29.832v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F821E;stroke:none;" d="M787.877,29.832h0.671V29.14h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F5D1;stroke:none;" d="M788.548,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M788.548,31.178h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M788.548,31.87h-0.671v0.673h0.671V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M788.548,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBD47A;stroke:none;" d="M788.548,31.178v0.692h0.691v-0.692h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDD884;stroke:none;" d="M788.548,31.87v0.673h0.691V31.87h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0B724;stroke:none;" d="M789.91,31.178h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEB81C;stroke:none;" d="M789.91,31.87h-0.671v0.673h0.671V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3B61A;stroke:none;" d="M789.91,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1D836;stroke:none;" d="M789.91,31.87v0.673h0.671V31.87h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3DC4E;stroke:none;" d="M790.581,31.178h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D329;stroke:none;" d="M790.581,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1CE55;stroke:none;" d="M789.239,30.505h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DB8C;stroke:none;" d="M789.239,32.543h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4AF1B;stroke:none;" d="M789.91,33.216h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1D82D;stroke:none;" d="M789.91,33.89v0.692h0.671V33.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5B319;stroke:none;" d="M789.91,34.582V33.89h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEB616;stroke:none;" d="M789.91,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D799;stroke:none;" d="M789.239,34.582V33.89h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D41F;stroke:none;" d="M790.581,33.89v0.692h0.672V33.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EED02D;stroke:none;" d="M789.91,33.89h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D795;stroke:none;" d="M789.239,33.89v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBDA1D;stroke:none;" d="M790.581,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D01E;stroke:none;" d="M790.581,33.216v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF1;stroke:none;" d="M787.877,34.582h0.671V33.89h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F2E5;stroke:none;" d="M788.548,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M787.877,33.89h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2EDBB;stroke:none;" d="M787.877,35.928h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE69E;stroke:none;" d="M788.548,35.928h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DECF67;stroke:none;" d="M788.548,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDBE4F;stroke:none;" d="M788.548,35.255v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBB92F;stroke:none;" d="M788.548,35.928v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1B91A;stroke:none;" d="M789.91,35.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7BE14;stroke:none;" d="M789.91,35.928h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBC311;stroke:none;" d="M789.91,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECD02B;stroke:none;" d="M789.91,35.928v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7DA1B;stroke:none;" d="M790.581,35.928v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D12B;stroke:none;" d="M790.581,35.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EACB20;stroke:none;" d="M790.581,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9DB17;stroke:none;" d="M790.581,35.255v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED48C;stroke:none;" d="M789.239,34.582h-0.691v0.674h0.691v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6B219;stroke:none;" d="M789.239,36.601h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1D418;stroke:none;" d="M790.581,34.582v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E7C8;stroke:none;" d="M793.976,33.89v0.692h0.671V33.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6B726;stroke:none;" d="M793.976,34.582V33.89h-0.689v0.692h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDD982;stroke:none;" d="M793.976,33.216v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEB318;stroke:none;" d="M793.976,33.89v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC752;stroke:none;" d="M793.976,34.582h-0.689v0.674h0.689v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFBC1B;stroke:none;" d="M793.286,34.582V33.89h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFD128;stroke:none;" d="M793.286,33.89v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6D71A;stroke:none;" d="M792.614,33.216h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D41A;stroke:none;" d="M791.253,33.89v0.692h0.689V33.89h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFD729;stroke:none;" d="M792.614,34.582V33.89h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DADC3A;stroke:none;" d="M792.614,34.582h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D319;stroke:none;" d="M791.253,33.216v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2D41C;stroke:none;" d="M791.942,34.582h-0.689v0.674h0.689v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2BF16;stroke:none;" d="M792.614,35.255h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7CD1A;stroke:none;" d="M791.253,35.928v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4C95F;stroke:none;" d="M792.614,35.928v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5B91A;stroke:none;" d="M792.614,36.601v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0B028;stroke:none;" d="M792.614,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D71A;stroke:none;" d="M791.942,35.255h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAB617;stroke:none;" d="M791.942,36.601h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BCAB26;stroke:none;" d="M792.614,35.255v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9E7B4;stroke:none;" d="M793.976,35.255h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F3CF;stroke:none;" d="M793.976,35.928h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M793.976,36.601h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF9;stroke:none;" d="M793.976,35.255v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M793.976,35.928v0.673v0.693h0.671v-0.693v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1A91A;stroke:none;" d="M793.286,34.582h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDEAAB;stroke:none;" d="M793.286,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M793.976,34.582v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D322;stroke:none;" d="M791.253,32.543h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8CF18;stroke:none;" d="M791.253,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEC950;stroke:none;" d="M793.976,32.543v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F4A98;stroke:none;" d="M787.877,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0A92A;stroke:none;" d="M787.877,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DABC37;stroke:none;" d="M793.976,27.793v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M780.435,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M779.764,21.004v-0.673h-0.69h-0.671v0.673h0.671h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M779.764,21.004h-0.69v0.673h1.361v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M779.073,21.677v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M777.731,21.677h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBFC;stroke:none;" d="M778.402,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFB;stroke:none;" d="M777.731,21.677v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M777.731,21.004h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M777.731,21.004v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M777.731,23.043h0.671V22.37h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4E5AD;stroke:none;" d="M778.402,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBE9;stroke:none;" d="M777.731,23.043V22.37h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDD067;stroke:none;" d="M777.731,23.716v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1AE1C;stroke:none;" d="M778.402,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M778.402,22.37v0.673h0.671V22.37h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7EA;stroke:none;" d="M778.402,23.043v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M780.435,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M779.764,22.37h-0.69v0.673h0.69V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M779.764,23.043h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7D159;stroke:none;" d="M779.764,23.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M780.435,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1EBAD;stroke:none;" d="M780.435,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M777.731,22.37v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2B723;stroke:none;" d="M779.073,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M777.06,20.332h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4FAFA;stroke:none;" d="M776.368,21.004v-0.673h-0.671h-0.671v0.673h1.342z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF9;stroke:none;" d="M777.06,21.004h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M777.06,21.677h-0.691h-1.342v0.693h0.671h0.671h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M776.368,21.677v-0.673h-1.342v0.673h1.342z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M774.355,21.004h0.671v-0.673h-1.361h-0.672h-0.672v0.673h0.672h1.362z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF8;stroke:none;" d="M775.026,21.004h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F7;stroke:none;" d="M774.355,21.677v-0.673h-1.362v0.673h0.672h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M775.026,21.677h-0.671h-0.69v0.693h0.69h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAAE1B;stroke:none;" d="M774.355,23.716h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4E498;stroke:none;" d="M775.026,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F2D8;stroke:none;" d="M775.026,22.37h-0.671v0.673h0.671V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F0DE;stroke:none;" d="M774.355,23.043V22.37h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9AB1F;stroke:none;" d="M774.355,23.716v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F3D4;stroke:none;" d="M775.026,22.37v0.673h0.671V22.37h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCB01A;stroke:none;" d="M775.026,23.043v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAE0;stroke:none;" d="M777.06,23.043V22.37h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F4D3;stroke:none;" d="M776.368,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAC039;stroke:none;" d="M777.06,23.043h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8C74A;stroke:none;" d="M777.06,23.716h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCB019;stroke:none;" d="M775.697,23.043v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4CF95;stroke:none;" d="M776.368,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECD898;stroke:none;" d="M775.697,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M777.06,24.39v0.692h0.672V24.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M777.06,25.082V24.39h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAE8;stroke:none;" d="M777.06,25.082h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M776.368,25.082V24.39h-0.671v0.692v0.673v0.673v0.693h0.671v-0.693v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAF8;stroke:none;" d="M775.697,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F8;stroke:none;" d="M777.06,25.754h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFA;stroke:none;" d="M775.697,25.754v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCEE;stroke:none;" d="M777.06,25.082v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M775.026,25.082V24.39h-0.671v1.365v0.673v0.693v1.346h-0.69v0.673v0.692h0.69V29.14h0.671v-0.673v-0.673V27.12v-0.693v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M774.355,25.754V24.39h-0.69v1.365h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M774.355,27.12v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M775.026,26.427v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M775.026,27.12v0.673h0.671V27.12h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M777.06,26.427h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF6;stroke:none;" d="M777.06,27.12h-0.691v0.673h0.691V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M777.06,26.427v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M777.06,27.793h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFA;stroke:none;" d="M776.368,27.12h-0.671v0.673v0.673h0.671v-0.673V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M777.06,27.12v0.673h0.672V27.12h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M774.355,26.427v-0.673h-0.69V24.39h-0.672v0.692v0.673v0.673v0.693h0.672v-0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFB;stroke:none;" d="M775.697,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M775.697,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M777.06,25.754v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0B41B;stroke:none;" d="M780.435,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCC732;stroke:none;" d="M779.764,25.082V24.39h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7ED;stroke:none;" d="M779.764,25.082h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD786;stroke:none;" d="M779.073,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M779.764,25.754h-0.69v0.673h0.69h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFDCAB;stroke:none;" d="M779.764,25.082v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M779.073,25.754v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M777.731,25.754h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9E5;stroke:none;" d="M778.402,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFEBDF;stroke:none;" d="M777.731,25.082h0.671V24.39h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M777.731,26.427v0.693h1.342v-0.693h-0.671h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M777.731,27.12v0.673h0.671h0.671V27.12h-1.342z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAF4;stroke:none;" d="M778.402,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M780.435,27.12v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9FA;stroke:none;" d="M779.764,26.427h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F8F1;stroke:none;" d="M779.764,27.793h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCEF;stroke:none;" d="M779.073,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F0;stroke:none;" d="M779.073,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E38B;stroke:none;" d="M774.355,24.39v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3B82E;stroke:none;" d="M777.731,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M777.731,27.793h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M772.993,21.677v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M772.993,21.677h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M772.321,21.677v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M773.665,21.677h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4FAFB;stroke:none;" d="M772.321,21.004v-0.673h-0.69h-0.671v0.673h0.671h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M770.96,21.677h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF5;stroke:none;" d="M771.631,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M770.96,21.677v-0.673h-0.671v0.673v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M770.96,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M770.96,23.043h0.671h0.69V22.37h-0.69h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5D163;stroke:none;" d="M771.631,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCEE;stroke:none;" d="M770.96,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDEABB;stroke:none;" d="M770.96,23.716v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AFA620;stroke:none;" d="M771.631,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9C552;stroke:none;" d="M771.631,23.043v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F2E7;stroke:none;" d="M773.665,23.043V22.37h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F6F3;stroke:none;" d="M772.993,23.043V22.37h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEAD2A;stroke:none;" d="M773.665,23.043h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D46D;stroke:none;" d="M773.665,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9B73C;stroke:none;" d="M772.321,23.043v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDC04C;stroke:none;" d="M772.993,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF7;stroke:none;" d="M772.321,21.677h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BAAF30;stroke:none;" d="M772.321,23.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M770.289,21.004v-0.673h-0.671h-0.69v0.673h-0.672v0.673h0.672h0.69v-0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M770.289,21.004h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M768.928,21.004v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M770.289,21.677h-0.671h-0.69v0.693h0.69h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFE;stroke:none;" d="M768.256,20.332h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M768.256,21.677h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M768.256,22.37h-0.672v0.673h0.672V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M768.256,23.043h-0.672v0.673v0.673h0.672v-1.347z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M768.256,22.37v0.673h0.672V22.37v-0.693h-0.672v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M770.289,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M769.618,23.043V22.37h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBE9;stroke:none;" d="M770.289,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F5D0;stroke:none;" d="M770.289,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M768.928,23.043v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M768.928,23.716v-0.673h-0.672v1.347h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M769.618,23.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4E2CF;stroke:none;" d="M769.618,25.082h0.671V24.39h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7D8C3;stroke:none;" d="M770.289,25.082h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M769.618,25.082V24.39h-0.69v1.365h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7FB295;stroke:none;" d="M770.289,24.39v0.692v0.673h0.671v-0.673V24.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7C8B4;stroke:none;" d="M770.289,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF8;stroke:none;" d="M769.618,25.754h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M768.928,25.754V24.39h-0.672v0.692v0.673h-0.672v0.673v0.693v0.673v0.673v0.673h0.672v-1.347V27.12h0.672v-0.693v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M768.256,25.754v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;stroke:none;" d="M767.584,25.082h0.672V24.39h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M768.256,27.12v0.673h0.672V27.12h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#88C0A1;stroke:none;" d="M770.289,26.427v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#99BCA6;stroke:none;" d="M770.289,27.12v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F6F2;stroke:none;" d="M769.618,27.12v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#91B9A1;stroke:none;" d="M770.289,27.12h-0.671v0.673h0.671V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8EB9A1;stroke:none;" d="M770.289,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7EFEA;stroke:none;" d="M768.928,27.12v0.673h0.69V27.12h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAE7DF;stroke:none;" d="M769.618,27.793h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8EC8AA;stroke:none;" d="M770.289,27.12v0.673h0.671V27.12h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M768.928,27.793h-0.672v1.347v0.692h0.672V29.14v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#80B899;stroke:none;" d="M770.289,25.754v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2DAD5;stroke:none;" d="M772.993,25.082V24.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#93B5A4;stroke:none;" d="M772.321,25.082V24.39h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6EAE7;stroke:none;" d="M772.993,25.754v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF8;stroke:none;" d="M772.993,25.754h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AACBBA;stroke:none;" d="M772.321,25.754v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8BC1A8;stroke:none;" d="M770.96,25.754h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#90C0A9;stroke:none;" d="M771.631,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#85BDA3;stroke:none;" d="M770.96,25.082h0.671V24.39h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#96C0AA;stroke:none;" d="M770.96,27.12h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A3C6B3;stroke:none;" d="M771.631,27.12h-0.671v0.673h0.671V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4CFBE;stroke:none;" d="M771.631,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3E6DB;stroke:none;" d="M771.631,26.427v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEEBE2;stroke:none;" d="M771.631,27.12v0.673h0.69V27.12h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M772.993,27.12v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M773.665,27.12h-0.672v0.673h0.672V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M773.665,27.793h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M773.665,27.12v0.673v0.673h0.69V27.12h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M772.321,27.12v0.673h0.672V27.12h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M772.993,27.793h-0.672v0.673v0.673v0.692h0.672V29.14v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3DDD0;stroke:none;" d="M772.321,25.754h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7EFE9;stroke:none;" d="M772.321,27.793h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5C878;stroke:none;" d="M770.96,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#90CBAD;stroke:none;" d="M770.96,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M773.665,29.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M773.665,29.14h-0.672v0.692h0.672V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF2EC;stroke:none;" d="M772.321,29.14v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF9;stroke:none;" d="M772.321,29.832v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4F0E8;stroke:none;" d="M772.321,30.505v-0.674h-0.69v0.674h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M773.665,29.832v0.674h0.69v-0.674h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M773.665,30.505v-0.674h-0.672v0.674v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M772.993,30.505h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF0EA;stroke:none;" d="M772.321,29.832V29.14h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BBD2C2;stroke:none;" d="M771.631,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8CC9AA;stroke:none;" d="M770.96,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AECFBC;stroke:none;" d="M770.96,29.832v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#96CAAD;stroke:none;" d="M770.96,30.505v-0.674h-0.671v0.674h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BACCBE;stroke:none;" d="M771.631,29.14h-0.671v0.692h0.671V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4D1BF;stroke:none;" d="M771.631,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#87C7A7;stroke:none;" d="M770.96,29.832V29.14h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1CCBB;stroke:none;" d="M771.631,31.178h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8FC8AA;stroke:none;" d="M770.96,31.87v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A8C5B3;stroke:none;" d="M771.631,31.87h-0.671v0.673h0.671V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#86C5A5;stroke:none;" d="M770.96,32.543V31.87h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9BC2AD;stroke:none;" d="M771.631,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF3EE;stroke:none;" d="M771.631,31.178v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5EEE6;stroke:none;" d="M771.631,31.87v0.673h0.69V31.87h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M773.665,31.178h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M772.321,31.87v0.673v0.673h0.672v-0.673V31.87v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M773.665,31.87v0.673v0.673h-0.672v0.673h0.672v0.692h0.69V33.89v-2.02h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M773.665,32.543V31.87h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M773.665,32.543h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M773.665,31.178v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#94C9AC;stroke:none;" d="M770.96,31.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF4EE;stroke:none;" d="M772.321,30.505h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8E6DC;stroke:none;" d="M772.321,32.543h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M773.665,30.505v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8DB9A1;stroke:none;" d="M769.618,28.466v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCDCD3;stroke:none;" d="M769.618,29.14v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8CBAA0;stroke:none;" d="M770.289,29.14h-0.671v0.692h0.671V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5E0CD;stroke:none;" d="M768.928,29.832v0.674h0.69v-0.674h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M768.928,30.505v-0.674h-0.672v0.674v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#80B599;stroke:none;" d="M770.289,29.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7EB397;stroke:none;" d="M770.289,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6DECD;stroke:none;" d="M769.618,30.505h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2D4CA;stroke:none;" d="M768.928,29.832h0.69V29.14h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M768.256,29.832V29.14h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M767.584,30.505h0.672v-0.674h-0.672v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M768.256,31.178v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M768.256,31.87v0.673h0.672V31.87h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7CB296;stroke:none;" d="M770.289,31.178h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2E0D3;stroke:none;" d="M768.928,31.87v0.673h0.69V31.87h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7CB396;stroke:none;" d="M770.289,32.543V31.87h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7CB497;stroke:none;" d="M770.289,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BADECE;stroke:none;" d="M768.928,31.87h0.69v-0.692h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0E6DB;stroke:none;" d="M769.618,32.543h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M768.928,32.543h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#80B99C;stroke:none;" d="M770.289,33.216h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF6F2;stroke:none;" d="M768.928,33.89v0.692h0.69V33.89h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#84BC9F;stroke:none;" d="M769.618,33.89v0.692h0.671V33.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#87BEA2;stroke:none;" d="M770.289,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#61B68E;stroke:none;" d="M770.289,33.89v0.692h0.671V33.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFEEE7;stroke:none;" d="M769.618,33.89v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4FAF9;stroke:none;" d="M769.618,34.582h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6EBD96;stroke:none;" d="M770.289,33.216v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M767.584,34.582h0.672V33.89h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M768.256,34.582h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M767.584,35.928v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M767.584,35.928h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M768.256,36.601h-0.672v0.693v0.673h0.672v-0.673v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ABDBCB;stroke:none;" d="M770.289,35.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#489F82;stroke:none;" d="M770.289,35.928v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8E6DE;stroke:none;" d="M770.289,36.601v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6F3F2;stroke:none;" d="M770.289,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M769.618,35.255h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F9877;stroke:none;" d="M770.289,35.255v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M769.618,36.601h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M768.928,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5CB189;stroke:none;" d="M770.289,34.582v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F7;stroke:none;" d="M772.321,33.89v0.692h0.672V33.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A6D2BE;stroke:none;" d="M772.321,34.582V33.89h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M773.665,34.582V33.89h-0.672v0.692v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M772.993,33.89v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4F0ED;stroke:none;" d="M772.993,34.582h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2DFD0;stroke:none;" d="M772.321,33.89v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#72BA9A;stroke:none;" d="M770.96,34.582h0.671V33.89h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5CAE8B;stroke:none;" d="M771.631,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8AC0A6;stroke:none;" d="M770.96,33.89h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5EB28A;stroke:none;" d="M770.96,35.928h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3CA278;stroke:none;" d="M771.631,35.928h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#249D6C;stroke:none;" d="M771.631,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#68AC8B;stroke:none;" d="M771.631,35.255v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#64AB89;stroke:none;" d="M771.631,35.928v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M773.665,35.255h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A1C8B3;stroke:none;" d="M772.321,35.928v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M773.665,35.928v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F6;stroke:none;" d="M773.665,36.601v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0F0EA;stroke:none;" d="M773.665,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFDFD8;stroke:none;" d="M772.321,35.928h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5DB492;stroke:none;" d="M772.993,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF9;stroke:none;" d="M773.665,35.255v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8CC3AB;stroke:none;" d="M772.321,34.582h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4AA37E;stroke:none;" d="M772.321,36.601h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M773.665,34.582v0.674h0.69v-0.674h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7BC29F;stroke:none;" d="M770.96,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6CAB96;stroke:none;" d="M770.96,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M780.435,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M779.764,28.466h-0.69h-0.671v0.673h0.671h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF5;stroke:none;" d="M779.764,29.14h-0.69v0.692h0.69V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M779.073,29.832V29.14h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M780.435,29.832V29.14h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M778.402,29.832V29.14h-1.343v0.692h1.343z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M778.402,29.14v-0.673h-0.671h-0.672v0.673h1.343z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M776.368,29.14h0.691v-0.673h-0.691v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF6;stroke:none;" d="M777.06,29.14h-0.691v0.692h0.691V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF9;stroke:none;" d="M776.368,29.14v-0.673h-0.671v0.673v0.692h0.671V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFC;stroke:none;" d="M775.697,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M775.697,29.832v0.674v0.673h0.671v-1.347h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M775.697,30.505v-0.674V29.14h-0.671v0.692v0.674h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M775.026,29.14h-0.671v0.692h0.671V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M775.026,29.832h-0.671v0.674v0.673v0.692h0.671v-0.692v-0.673v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M775.026,31.87h-0.671v2.02h0.671v-0.673v-0.673V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFB;stroke:none;" d="M775.026,31.178v0.692v0.673h0.671v-1.365h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFA;stroke:none;" d="M776.368,31.178h-0.671v1.365v0.673v0.673h0.671v-2.711z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M775.697,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M775.697,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M776.368,33.89h-0.671v1.366h0.671V33.89z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M775.697,33.89v-0.673h-0.671v0.673v0.692v0.674h0.671V33.89z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M775.026,34.582V33.89h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M775.026,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M774.355,35.928h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M775.026,35.928h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M775.026,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M775.026,35.255v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F5F6;stroke:none;" d="M775.026,35.928v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M776.368,35.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M776.368,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M775.697,36.601h-0.671v0.693v0.673h0.671v-0.673v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M774.355,36.601h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M778.402,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M780.435,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M779.764,40.678h-1.361v0.673h0.671h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M776.368,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M776.368,37.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M776.368,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAF8;stroke:none;" d="M775.697,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F4F4;stroke:none;" d="M774.355,37.294v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M774.355,37.967v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M775.026,37.967h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4ECE2;stroke:none;" d="M774.355,38.64v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFA;stroke:none;" d="M775.026,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A6D9C5;stroke:none;" d="M775.026,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24936A;stroke:none;" d="M774.355,40.005v-0.674h-0.69v0.674h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#399A76;stroke:none;" d="M775.026,40.005h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#189163;stroke:none;" d="M774.355,40.678v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#179367;stroke:none;" d="M775.026,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F9;stroke:none;" d="M775.026,39.332v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F3;stroke:none;" d="M775.026,40.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF7;stroke:none;" d="M776.368,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF9;stroke:none;" d="M776.368,40.005h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M776.368,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F6;stroke:none;" d="M777.06,40.678h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#72BFA1;stroke:none;" d="M774.355,39.332V38.64h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF6F2;stroke:none;" d="M775.697,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5EAB91;stroke:none;" d="M775.697,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAF8;stroke:none;" d="M776.368,42.044h0.691v-0.693h-0.691v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A4BBB3;stroke:none;" d="M777.06,42.044h-0.691v0.672h0.691v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7FB79F;stroke:none;" d="M776.368,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M777.06,41.351v0.693h0.672h0.671h0.671v-0.693h-0.671h-0.671h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#22855E;stroke:none;" d="M775.697,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#238157;stroke:none;" d="M777.06,42.716h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#218D5C;stroke:none;" d="M776.368,42.716v-0.672h-0.671v0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#16894A;stroke:none;" d="M776.368,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#11834C;stroke:none;" d="M775.697,42.716v-0.672h-0.671v0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF5F7;stroke:none;" d="M777.06,42.044v0.672h0.672v-0.672h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#158951;stroke:none;" d="M774.355,42.716h0.671v-0.672h-0.671v0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#117A48;stroke:none;" d="M775.026,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1A8257;stroke:none;" d="M774.355,42.716v-0.672h-0.69v0.672h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#189361;stroke:none;" d="M774.355,42.044h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#158B5A;stroke:none;" d="M774.355,42.044v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7ABB98;stroke:none;" d="M774.355,44.082h0.671V43.39h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF6F5;stroke:none;" d="M775.026,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5F3EC;stroke:none;" d="M774.355,44.082V43.39h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M774.355,44.755v-0.674h-0.69v0.674h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M775.026,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#127845;stroke:none;" d="M775.026,43.39v0.692h0.671V43.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#75AF91;stroke:none;" d="M775.026,44.082v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#117C3F;stroke:none;" d="M777.06,43.39v0.692h0.672V43.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#168640;stroke:none;" d="M777.06,44.082V43.39h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#0E7B41;stroke:none;" d="M776.368,44.082V43.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#158038;stroke:none;" d="M777.06,44.082h-0.691v0.674h0.691v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#19793D;stroke:none;" d="M777.06,44.755h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#277851;stroke:none;" d="M775.697,44.082v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8AB3A3;stroke:none;" d="M776.368,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#157D35;stroke:none;" d="M777.06,44.082v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#87C2A5;stroke:none;" d="M774.355,43.39v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#178A4E;stroke:none;" d="M775.697,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF7F8;stroke:none;" d="M775.697,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#75B99A;stroke:none;" d="M777.06,42.716v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M780.435,41.351v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M780.435,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M779.764,42.044v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M779.764,42.044h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F5F7;stroke:none;" d="M779.764,42.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M779.764,42.044v0.672h0.671v-0.672h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F3F4;stroke:none;" d="M779.073,42.716v-0.672h-0.671v0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5F7;stroke:none;" d="M780.435,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF6;stroke:none;" d="M780.435,42.044v0.672h0.672v-0.672h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M777.731,42.716h0.671v-0.672h-0.671v0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4F3EE;stroke:none;" d="M778.402,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#137737;stroke:none;" d="M777.731,44.082v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6CB085;stroke:none;" d="M777.731,44.082h0.671V43.39h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#157C39;stroke:none;" d="M778.402,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4E8D6;stroke:none;" d="M778.402,43.39v0.692h0.671V43.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3D8F5A;stroke:none;" d="M778.402,44.082v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M780.435,43.39v0.692v0.674h0.672v-0.674V43.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M780.435,44.082V43.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M779.764,43.39h-0.69v0.692h0.69V43.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7D7B9;stroke:none;" d="M779.764,44.082h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#177B3D;stroke:none;" d="M779.764,44.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8F8;stroke:none;" d="M780.435,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#76B68B;stroke:none;" d="M780.435,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M779.073,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#127332;stroke:none;" d="M779.073,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M780.435,42.716v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#189564;stroke:none;" d="M774.355,41.351v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M777.731,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#127133;stroke:none;" d="M777.731,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M780.435,40.678v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9DD1BC;stroke:none;" d="M773.665,37.294h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1C9165;stroke:none;" d="M772.321,37.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#199769;stroke:none;" d="M772.321,38.64v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#41A07E;stroke:none;" d="M773.665,38.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1C9569;stroke:none;" d="M773.665,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#30A178;stroke:none;" d="M772.321,37.967h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1A8A5F;stroke:none;" d="M772.993,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2B9C74;stroke:none;" d="M772.321,37.967v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#329A75;stroke:none;" d="M770.96,38.64h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#85C4AE;stroke:none;" d="M771.631,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFEBE8;stroke:none;" d="M770.96,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1C9667;stroke:none;" d="M770.96,37.967h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A3C7BB;stroke:none;" d="M770.96,37.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5ECE5;stroke:none;" d="M770.96,40.005h0.671v-0.674h-0.671v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M771.631,40.005h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M770.96,40.005v-0.674h-0.671v0.674h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M770.96,40.678v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFA;stroke:none;" d="M771.631,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4A997C;stroke:none;" d="M771.631,39.332v0.674h0.69v-0.674h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#95BFB1;stroke:none;" d="M771.631,40.005v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#199768;stroke:none;" d="M773.665,39.332h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#178E63;stroke:none;" d="M772.321,40.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#158B5A;stroke:none;" d="M773.665,40.678v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#177F58;stroke:none;" d="M773.665,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1A8E65;stroke:none;" d="M772.321,40.005h0.672v-0.674h-0.672v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#73A590;stroke:none;" d="M772.993,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M770.96,39.332V38.64h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#198B61;stroke:none;" d="M772.321,38.64h-0.69v0.692h0.69V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M772.321,40.678h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M770.289,37.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M768.928,37.967v0.673h0.69v-0.673v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M768.928,38.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M769.618,38.64h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M770.289,38.64h-0.671v0.692v0.674h0.671v-0.674V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M769.618,38.64h-0.69v0.692h0.69V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M768.928,37.967v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M767.584,38.64h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M768.256,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M767.584,39.332v0.674h1.344v-0.674h-0.672h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M767.584,40.005v0.673h1.344v-0.673h-1.344z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M768.928,40.005v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M770.289,40.678v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M769.618,39.332h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M768.928,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#338968;stroke:none;" d="M772.993,42.044h0.672v-0.693h-0.672v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7D5C0;stroke:none;" d="M773.665,42.044h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5EAE5;stroke:none;" d="M772.993,42.044v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAF8;stroke:none;" d="M772.321,42.044v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF7F4;stroke:none;" d="M773.665,42.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M772.993,42.716v-0.672h-0.672v0.672h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M772.993,42.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M772.321,42.716v-0.672h-0.69v0.672h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M770.96,42.716h0.671v-0.672h-0.671v0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M770.96,42.044h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M770.96,44.082v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M770.96,44.082h0.671V43.39h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M771.631,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M771.631,43.39v0.692h0.69V43.39h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M771.631,44.082v0.674h0.69v-0.674h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M773.665,44.082V43.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M772.993,44.082V43.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M773.665,44.082h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F6F6;stroke:none;" d="M773.665,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M772.321,44.082v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M772.993,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M772.321,42.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M772.321,44.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFC;stroke:none;" d="M772.993,45.428h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M772.321,46.101v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F9;stroke:none;" d="M773.665,45.428v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M771.631,45.428h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#247139;stroke:none;" d="M780.435,45.428v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#0E6127;stroke:none;" d="M780.435,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#15722D;stroke:none;" d="M779.764,45.428h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#167732;stroke:none;" d="M779.073,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#136F2C;stroke:none;" d="M779.764,46.101h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#52976A;stroke:none;" d="M779.764,46.794h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#127837;stroke:none;" d="M780.435,46.101h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#236528;stroke:none;" d="M779.073,46.794v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#136123;stroke:none;" d="M780.435,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#12672F;stroke:none;" d="M780.435,46.101v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8CA57D;stroke:none;" d="M777.731,46.794h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F1;stroke:none;" d="M778.402,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF0E7;stroke:none;" d="M777.731,46.794v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#116B2F;stroke:none;" d="M777.731,46.101h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#398B5A;stroke:none;" d="M777.731,46.101v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M777.731,48.14h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M778.402,48.14h-0.671v0.691h0.671V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F5;stroke:none;" d="M777.731,48.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M777.731,48.832V48.14h-0.672v0.691h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M778.402,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M778.402,47.467v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M778.402,48.14v0.691h0.671V48.14h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0BC50;stroke:none;" d="M780.435,47.467v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDDBA1;stroke:none;" d="M780.435,48.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1F2EB;stroke:none;" d="M779.764,47.467h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M779.764,48.14h-0.69v0.691h0.69V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M779.764,48.832h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M780.435,48.14h-0.671v0.691h0.671V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M780.435,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F5D9;stroke:none;" d="M780.435,48.14v0.691h0.672V48.14h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M777.731,47.467v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0D7C0;stroke:none;" d="M779.073,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M779.073,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#38751E;stroke:none;" d="M780.435,46.794v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9CD6B8;stroke:none;" d="M777.06,46.101v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M776.368,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M775.697,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F5F0;stroke:none;" d="M777.06,46.794h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M775.026,45.428h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF6;stroke:none;" d="M777.06,47.467h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M777.06,48.832h-0.691v0.674h0.691v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M777.06,50.178v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M777.06,50.851v-0.673h-0.691v1.366h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M777.06,49.505v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFC;stroke:none;" d="M777.06,50.178v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M777.06,52.89v0.673h0.672V52.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M777.06,51.544h-0.691v1.346h0.691v-1.346z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M777.06,51.544v1.346h0.672v-0.673v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M777.06,50.851v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M780.435,49.505v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F7F8;stroke:none;" d="M780.435,50.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M779.764,50.178v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M779.764,50.178h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M779.073,50.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M779.764,50.851h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M779.764,50.178v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M779.073,50.851v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M780.435,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF7;stroke:none;" d="M780.435,50.178v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF5;stroke:none;" d="M777.731,50.851h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF6;stroke:none;" d="M778.402,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF3;stroke:none;" d="M777.731,50.178h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M778.402,51.544v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M778.402,52.217v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF2;stroke:none;" d="M777.731,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M778.402,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M777.731,52.89h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF5;stroke:none;" d="M778.402,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M778.402,52.217v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M780.435,51.544v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M780.435,52.217v-0.673h-0.671h-0.69v0.673h0.69h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M779.764,52.217h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M779.764,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F5;stroke:none;" d="M779.764,53.563V52.89h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M779.764,53.563h-0.69v0.692v0.673h0.69v-0.673h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F9E8;stroke:none;" d="M780.435,52.89v0.673h0.672V52.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M780.435,52.217h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCEF;stroke:none;" d="M780.435,52.217v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M779.073,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M779.073,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M780.435,50.851v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M777.731,48.832h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M777.731,53.563h-0.672v0.692v0.673v0.673h0.672v-1.347v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M780.435,48.832v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M774.355,44.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCE5D0;stroke:none;" d="M780.435,44.755v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M793.976,37.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M793.976,38.64v-0.673h-0.689h-0.672v0.673h0.672h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M793.976,37.294v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M793.976,37.967v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M793.976,38.64h-0.689v0.692h0.689V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAE6;stroke:none;" d="M793.286,37.967v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9C75B;stroke:none;" d="M792.614,37.294h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0B724;stroke:none;" d="M791.253,37.967v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8C114;stroke:none;" d="M791.253,38.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E68B;stroke:none;" d="M792.614,38.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0E17F;stroke:none;" d="M792.614,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3B31A;stroke:none;" d="M791.253,37.294v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0CA14;stroke:none;" d="M791.253,37.967v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDA126;stroke:none;" d="M791.942,38.64h-0.689v0.692h0.689V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFC54C;stroke:none;" d="M792.614,39.332h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C24810;stroke:none;" d="M791.253,40.005v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF3123;stroke:none;" d="M791.253,40.678v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF6;stroke:none;" d="M792.614,40.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEAA1F;stroke:none;" d="M792.614,40.678v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAA330;stroke:none;" d="M792.614,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA751C;stroke:none;" d="M791.942,39.332h-0.689v0.674h0.689v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C64B22;stroke:none;" d="M791.942,40.678h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C66E27;stroke:none;" d="M791.253,40.005v-0.674h-0.672v0.674h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M792.614,39.332v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M793.976,39.332h-0.689v0.674h1.36v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M793.286,40.005v0.673h0.689h0.671v-0.673h-1.36z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M793.976,40.678h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2A51C;stroke:none;" d="M791.253,39.332V38.64h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M793.286,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFDE9A;stroke:none;" d="M793.286,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M793.976,38.64v0.692h0.671V38.64h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFCE11;stroke:none;" d="M789.91,37.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBCE13;stroke:none;" d="M789.91,37.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9CF12;stroke:none;" d="M789.91,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5CF14;stroke:none;" d="M789.91,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFB418;stroke:none;" d="M789.239,38.64v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4CE16;stroke:none;" d="M789.91,37.967h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAB417;stroke:none;" d="M789.239,37.967v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DECD16;stroke:none;" d="M790.581,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5C23B;stroke:none;" d="M788.548,37.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7A923;stroke:none;" d="M787.877,37.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2B920;stroke:none;" d="M788.548,37.967h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBAD1B;stroke:none;" d="M787.877,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9B318;stroke:none;" d="M788.548,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDBB17;stroke:none;" d="M788.548,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEAA1B;stroke:none;" d="M787.877,40.005v-0.674h-0.671v0.674h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2C316;stroke:none;" d="M788.548,40.005h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBAE25;stroke:none;" d="M787.877,40.678v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4CC17;stroke:none;" d="M788.548,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4CA1F;stroke:none;" d="M788.548,39.332v0.674h0.691v-0.674h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9CF19;stroke:none;" d="M788.548,40.005v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5CB12;stroke:none;" d="M789.91,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8B814;stroke:none;" d="M789.91,40.005h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E09221;stroke:none;" d="M789.91,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D19618;stroke:none;" d="M789.91,40.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2BC1E;stroke:none;" d="M790.581,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E04032;stroke:none;" d="M790.581,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3A817;stroke:none;" d="M787.877,39.332V38.64h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4B91B;stroke:none;" d="M789.239,38.64h-0.691v0.692h0.691V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9CE17;stroke:none;" d="M789.239,40.678h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CD1631;stroke:none;" d="M790.581,41.351v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA222F;stroke:none;" d="M790.581,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C15C16;stroke:none;" d="M789.91,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0291F;stroke:none;" d="M789.91,42.044h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCA81A;stroke:none;" d="M789.239,42.044v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BC122F;stroke:none;" d="M789.91,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C91740;stroke:none;" d="M789.91,42.044v0.672h0.671v-0.672h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C27216;stroke:none;" d="M789.239,42.716v-0.672h-0.691v0.672h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CF1D47;stroke:none;" d="M790.581,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D51A43;stroke:none;" d="M790.581,42.044v0.672h0.672v-0.672h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAAB1D;stroke:none;" d="M787.877,42.716h0.671v-0.672h-0.671v0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4751F;stroke:none;" d="M788.548,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEB915;stroke:none;" d="M787.877,42.716v-0.672h-0.671v0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7C518;stroke:none;" d="M787.877,42.044h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1B717;stroke:none;" d="M787.877,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B32116;stroke:none;" d="M787.877,44.082h0.671V43.39h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B40A26;stroke:none;" d="M788.548,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C24C1E;stroke:none;" d="M787.877,44.082V43.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B21528;stroke:none;" d="M787.877,44.755v-0.674h-0.671v0.674h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B80D2E;stroke:none;" d="M788.548,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA0C21;stroke:none;" d="M788.548,43.39v0.692h0.691V43.39h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C91536;stroke:none;" d="M788.548,44.082v0.674h0.691v-0.674h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C61D31;stroke:none;" d="M790.581,43.39v0.692h0.672V43.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C81634;stroke:none;" d="M790.581,44.082V43.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C41130;stroke:none;" d="M789.91,43.39h-0.671v0.692h0.671V43.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CD1734;stroke:none;" d="M789.91,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C61633;stroke:none;" d="M789.91,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BC0F21;stroke:none;" d="M790.581,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA0F27;stroke:none;" d="M790.581,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B71322;stroke:none;" d="M790.581,44.082v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7A025;stroke:none;" d="M787.877,43.39v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C03923;stroke:none;" d="M789.239,42.716h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C71838;stroke:none;" d="M789.239,44.755h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D01F42;stroke:none;" d="M790.581,42.716v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M793.976,42.044v0.672h0.671v-0.672h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE7AA;stroke:none;" d="M793.976,42.716v-0.672h-0.689v0.672h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M793.976,41.351v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF6E4;stroke:none;" d="M793.976,42.044v-0.693h-0.689v0.693h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6D764;stroke:none;" d="M793.976,42.716h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4BD1C;stroke:none;" d="M793.286,42.716v-0.672h-0.672v0.672h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDC448;stroke:none;" d="M793.286,42.044v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C97015;stroke:none;" d="M792.614,41.351h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BF321A;stroke:none;" d="M791.942,42.044v-0.693h-0.689v0.693h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C84213;stroke:none;" d="M792.614,42.044h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7211D;stroke:none;" d="M792.614,42.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C51F1F;stroke:none;" d="M791.942,42.044h-0.689v0.672h0.689v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C21423;stroke:none;" d="M791.942,42.716h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4571F;stroke:none;" d="M792.614,43.39v0.692h0.672V43.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA1F35;stroke:none;" d="M792.614,44.082V43.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3182E;stroke:none;" d="M791.942,44.082V43.39h-0.689v0.692h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1437;stroke:none;" d="M792.614,44.082h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BB1433;stroke:none;" d="M792.614,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BB152C;stroke:none;" d="M791.253,44.082v0.674h0.689v-0.674h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BB1430;stroke:none;" d="M791.942,44.755h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B91631;stroke:none;" d="M792.614,44.082v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1A31D;stroke:none;" d="M793.976,43.39h-0.689v0.692h0.689V43.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC6D0B;stroke:none;" d="M793.976,44.082h-0.689v0.674h0.689v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA4B28;stroke:none;" d="M793.976,44.755h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6E5AD;stroke:none;" d="M793.976,43.39v0.692h0.671V43.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAC867;stroke:none;" d="M793.976,44.082v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFA017;stroke:none;" d="M793.286,42.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C61131;stroke:none;" d="M793.286,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAEF;stroke:none;" d="M793.976,42.716v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5B41A;stroke:none;" d="M787.877,41.351v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D01D2D;stroke:none;" d="M791.253,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA132A;stroke:none;" d="M791.253,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M793.976,40.678v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F2DF;stroke:none;" d="M786.534,37.294h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M786.534,37.967h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M785.844,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF6;stroke:none;" d="M786.534,38.64h-0.69v0.692h0.69V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DD86;stroke:none;" d="M786.534,37.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1C14F;stroke:none;" d="M787.206,37.294h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M785.844,37.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1D88D;stroke:none;" d="M787.206,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAFA;stroke:none;" d="M784.501,38.64h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F0;stroke:none;" d="M785.173,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF7;stroke:none;" d="M784.501,38.64v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F9;stroke:none;" d="M784.501,37.967h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M784.501,37.967v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M784.501,40.005h0.672v-0.674h-0.672v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M785.173,40.005h-0.672h-0.69v0.673h0.69h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M784.501,40.005v-0.674h-0.69v0.674h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M785.173,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M785.173,39.332v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M785.173,40.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F9E6;stroke:none;" d="M786.534,39.332h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7EB;stroke:none;" d="M786.534,40.005h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFD9A3;stroke:none;" d="M786.534,40.678h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6B91C;stroke:none;" d="M786.534,40.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8C454;stroke:none;" d="M787.206,39.332h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2B218;stroke:none;" d="M787.206,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF0;stroke:none;" d="M784.501,39.332V38.64h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M785.844,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M785.844,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F7DB;stroke:none;" d="M783.14,37.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M783.14,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF8;stroke:none;" d="M782.469,38.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F8D9;stroke:none;" d="M783.811,37.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F4;stroke:none;" d="M783.811,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M782.469,37.967v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF7;stroke:none;" d="M781.797,40.678h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M783.14,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M783.14,40.005h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M783.14,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF5;stroke:none;" d="M783.14,40.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M783.811,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M782.469,40.005v-0.674V38.64h-0.672v1.366h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F0;stroke:none;" d="M783.811,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M782.469,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F5F7;stroke:none;" d="M783.811,41.351v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M783.811,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFC;stroke:none;" d="M783.14,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBEB;stroke:none;" d="M783.14,42.044h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFC;stroke:none;" d="M782.469,42.044v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M783.14,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M783.14,42.044v0.672h0.671v-0.672h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M782.469,42.716v-0.672h-0.672v0.672h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAF9;stroke:none;" d="M783.811,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9FA;stroke:none;" d="M783.811,42.044v0.672h0.69v-0.672h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F4;stroke:none;" d="M781.106,42.716h0.69v-0.672h-0.69v0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M781.797,42.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF1;stroke:none;" d="M781.106,42.044h0.69v-0.693h-0.69v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M781.106,44.082h0.69V43.39h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M781.797,44.082h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF5;stroke:none;" d="M781.797,44.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F7;stroke:none;" d="M781.797,43.39v0.692h0.672V43.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F6;stroke:none;" d="M781.797,44.082v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M783.811,43.39v0.692h0.69V43.39h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF0;stroke:none;" d="M783.811,44.082V43.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M783.14,43.39h-0.671v0.692h0.671V43.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF9;stroke:none;" d="M783.14,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FADC;stroke:none;" d="M783.14,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M783.811,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E0BB;stroke:none;" d="M783.811,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D9A3;stroke:none;" d="M783.811,44.082v0.674h0.69v-0.674h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M782.469,42.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M782.469,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M783.811,42.716v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEB61F;stroke:none;" d="M787.206,42.044v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBC753;stroke:none;" d="M786.534,42.044v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFAA1D;stroke:none;" d="M786.534,42.044h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF7;stroke:none;" d="M785.844,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5AB1D;stroke:none;" d="M786.534,42.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEB218;stroke:none;" d="M786.534,42.044v0.672h0.672v-0.672h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4E7A7;stroke:none;" d="M785.844,42.716v-0.672h-0.671v0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7B815;stroke:none;" d="M787.206,42.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M784.501,42.716h0.672v-0.672v-0.693h-0.672v0.693v0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6E1;stroke:none;" d="M785.173,42.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8B323;stroke:none;" d="M784.501,44.082v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAD270;stroke:none;" d="M784.501,44.082h0.672V43.39h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6A11D;stroke:none;" d="M785.173,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4B31A;stroke:none;" d="M785.173,43.39v0.692h0.671V43.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCB119;stroke:none;" d="M785.173,44.082v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2A01D;stroke:none;" d="M787.206,44.082V43.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7B718;stroke:none;" d="M786.534,43.39h-0.69v0.692h0.69V43.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DB9919;stroke:none;" d="M786.534,44.082h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6502A;stroke:none;" d="M786.534,44.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF5427;stroke:none;" d="M787.206,44.082h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A8182C;stroke:none;" d="M787.206,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0C73C;stroke:none;" d="M785.844,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D98618;stroke:none;" d="M785.844,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F2;stroke:none;" d="M784.501,40.678h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAC035;stroke:none;" d="M784.501,44.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9152C;stroke:none;" d="M787.206,45.428v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1235;stroke:none;" d="M787.206,46.101v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A70E2F;stroke:none;" d="M786.534,45.428h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A72A0F;stroke:none;" d="M785.844,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B60C2F;stroke:none;" d="M786.534,46.101h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BD122C;stroke:none;" d="M786.534,46.794h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1123;stroke:none;" d="M787.206,46.101h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B10E34;stroke:none;" d="M785.844,46.794v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B80D2C;stroke:none;" d="M787.206,46.794h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B80F2C;stroke:none;" d="M787.206,46.101v0.693h0.671h0.671v-0.693h-0.671h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AD1A1D;stroke:none;" d="M784.501,46.794h0.672v-0.693h-0.672v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA0C24;stroke:none;" d="M785.173,46.794h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE4E11;stroke:none;" d="M784.501,46.794v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D48613;stroke:none;" d="M784.501,46.101h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBA216;stroke:none;" d="M784.501,46.101v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1133;stroke:none;" d="M784.501,48.14h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B60B30;stroke:none;" d="M785.173,48.14h-0.672v0.691h0.672V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C51649;stroke:none;" d="M784.501,48.14v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BC0A2D;stroke:none;" d="M784.501,48.832V48.14h-0.69v0.691h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C14662;stroke:none;" d="M785.173,48.832h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AC0F1A;stroke:none;" d="M785.173,47.467v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B30D32;stroke:none;" d="M785.173,48.14v0.691h0.671V48.14h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BC1028;stroke:none;" d="M787.206,47.467v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6133A;stroke:none;" d="M787.206,48.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B00F26;stroke:none;" d="M786.534,47.467h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B61133;stroke:none;" d="M786.534,48.14h-0.69v0.691h0.69V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE0E32;stroke:none;" d="M786.534,48.832h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B60F2F;stroke:none;" d="M787.206,48.14h-0.672v0.691h0.672V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC1321;stroke:none;" d="M787.206,48.832h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B31028;stroke:none;" d="M787.206,48.14v0.691h0.671h0.671V48.14h-0.671h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF0C1B;stroke:none;" d="M784.501,47.467v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BF142A;stroke:none;" d="M785.844,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B31B49;stroke:none;" d="M785.844,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF0F28;stroke:none;" d="M787.206,46.794v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7BA25;stroke:none;" d="M783.811,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4E9D3;stroke:none;" d="M783.14,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFB226;stroke:none;" d="M783.14,46.101h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DDE6;stroke:none;" d="M782.469,46.101v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CF7021;stroke:none;" d="M783.14,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D89722;stroke:none;" d="M783.14,46.101v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F951A;stroke:none;" d="M782.469,46.794v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B82B1A;stroke:none;" d="M783.811,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6FAD7C;stroke:none;" d="M781.797,45.428h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#296432;stroke:none;" d="M781.797,46.101h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#92B52C;stroke:none;" d="M781.797,46.794h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7B021;stroke:none;" d="M781.797,47.467h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3D7AA;stroke:none;" d="M781.797,48.14h-0.69v0.691h0.69V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7EEF3;stroke:none;" d="M781.797,48.832h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B85311;stroke:none;" d="M781.797,47.467v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DD536E;stroke:none;" d="M781.797,48.14v0.691h0.672V48.14h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AE0C32;stroke:none;" d="M783.811,48.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A21F0E;stroke:none;" d="M783.14,47.467h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA1D3F;stroke:none;" d="M783.14,48.14h-0.671v0.691h0.671V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E1E0;stroke:none;" d="M783.14,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B00924;stroke:none;" d="M783.811,48.14h-0.671v0.691h0.671V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBB3A6;stroke:none;" d="M783.811,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5A92C;stroke:none;" d="M782.469,46.794h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M782.469,48.832h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M783.811,49.505v0.673h0.69h0.672v-0.673h-0.672h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M783.811,50.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F2;stroke:none;" d="M783.14,50.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFA;stroke:none;" d="M783.14,50.178h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF6F0;stroke:none;" d="M782.469,50.178v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M783.14,50.851h-0.671h-0.672v0.693h0.672h0.671h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M783.14,50.178v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEB;stroke:none;" d="M782.469,50.851v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M783.811,50.178v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8E7;stroke:none;" d="M781.106,50.851h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M781.797,50.851h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M781.106,50.178h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F8;stroke:none;" d="M781.797,51.544v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBEE;stroke:none;" d="M781.797,52.217v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEDFBD;stroke:none;" d="M781.106,52.89v0.673h0.69V52.89h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3DDA9;stroke:none;" d="M781.797,52.89v0.673h0.672V52.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E7CD;stroke:none;" d="M781.106,52.89h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F5E4;stroke:none;" d="M781.797,53.563h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED884;stroke:none;" d="M781.797,52.217v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M783.811,51.544v0.673h0.69h0.672v-0.673h-0.672h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F8;stroke:none;" d="M783.811,52.217v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M783.14,51.544h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDC77A;stroke:none;" d="M783.14,52.217h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1C65D;stroke:none;" d="M783.14,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDDFBD;stroke:none;" d="M783.14,53.563V52.89h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFA;stroke:none;" d="M783.14,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBD49B;stroke:none;" d="M783.811,52.89v0.673h0.69V52.89h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E76F;stroke:none;" d="M783.811,52.217h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCCD76;stroke:none;" d="M783.811,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M783.811,52.217v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAE4;stroke:none;" d="M782.469,53.563h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M783.811,50.851v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4AAAD;stroke:none;" d="M787.206,49.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3CDB2;stroke:none;" d="M787.206,50.178v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFD3C2;stroke:none;" d="M786.534,50.178v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F8EE;stroke:none;" d="M786.534,50.178h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4E9E4;stroke:none;" d="M785.844,50.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M786.534,50.851h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M786.534,50.178v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F3;stroke:none;" d="M785.844,50.851v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M787.206,50.851h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M787.206,50.178v0.673h2.033v-0.673h-0.691h-0.671h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M784.501,50.851h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M785.173,50.851h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M785.173,51.544v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAE9BD;stroke:none;" d="M784.501,52.89v0.673h0.672V52.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9D456;stroke:none;" d="M785.173,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M784.501,52.89h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC752;stroke:none;" d="M785.173,53.563h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F3DF;stroke:none;" d="M785.173,52.217v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M787.206,51.544v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M787.206,52.217v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M786.534,51.544h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE7A3;stroke:none;" d="M786.534,52.217h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFD37F;stroke:none;" d="M786.534,52.89v0.673h0.672V52.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BABA5E;stroke:none;" d="M786.534,53.563V52.89h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F4E5;stroke:none;" d="M786.534,53.563h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BAB939;stroke:none;" d="M787.206,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0E18A;stroke:none;" d="M787.206,52.217h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M787.206,53.563h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE6B5;stroke:none;" d="M787.206,52.217v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8F9;stroke:none;" d="M785.844,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED366;stroke:none;" d="M785.844,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M787.206,50.851v0.693h0.671h0.671h0.691v-0.693h-2.033z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D87C7D;stroke:none;" d="M784.501,48.832h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E37D;stroke:none;" d="M784.501,53.563h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B40A26;stroke:none;" d="M787.206,48.832v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A41631;stroke:none;" d="M793.976,45.428h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC1529;stroke:none;" d="M793.286,46.101v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1043;stroke:none;" d="M793.976,46.101h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A31A20;stroke:none;" d="M793.286,46.794v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA132E;stroke:none;" d="M793.976,46.794h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0790C;stroke:none;" d="M793.976,45.428v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9111E;stroke:none;" d="M793.976,46.101v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B50F28;stroke:none;" d="M792.614,46.101v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B40B27;stroke:none;" d="M791.942,46.101v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BB0D30;stroke:none;" d="M792.614,46.101h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BB0E30;stroke:none;" d="M791.253,46.101v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B30C2A;stroke:none;" d="M792.614,46.794h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BC0D2F;stroke:none;" d="M791.942,46.101h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B80D2E;stroke:none;" d="M791.253,46.794v-0.693h-0.672h-0.671v0.693h0.671h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B30D2B;stroke:none;" d="M791.942,46.794h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2102C;stroke:none;" d="M792.614,47.467v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C11432;stroke:none;" d="M792.614,48.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1230;stroke:none;" d="M791.942,48.14v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF0F28;stroke:none;" d="M792.614,48.14h-0.672v0.691h0.672V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BC102C;stroke:none;" d="M791.253,48.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B81336;stroke:none;" d="M792.614,48.832h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B00F29;stroke:none;" d="M791.253,48.14v0.691h0.689V48.14h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2102A;stroke:none;" d="M791.253,48.832V48.14h-0.672v0.691h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B81234;stroke:none;" d="M791.942,48.832h-0.689v0.674h0.689v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AD1225;stroke:none;" d="M792.614,48.14v0.691h0.672V48.14h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AB0E2E;stroke:none;" d="M793.976,47.467h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A2130F;stroke:none;" d="M793.976,48.14h-0.689v0.691h0.689V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EA928A;stroke:none;" d="M793.976,48.832h-0.689v0.674h0.689v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C52041;stroke:none;" d="M793.976,47.467v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF0E20;stroke:none;" d="M793.976,48.14v0.691h0.671V48.14h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B50F2D;stroke:none;" d="M791.253,47.467v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3113A;stroke:none;" d="M793.286,46.794h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C44654;stroke:none;" d="M793.286,48.832h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AD0B29;stroke:none;" d="M793.976,46.794v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA0D31;stroke:none;" d="M790.581,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B50C2A;stroke:none;" d="M789.91,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B80D2C;stroke:none;" d="M789.91,46.101h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B20D27;stroke:none;" d="M789.239,46.101v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5112D;stroke:none;" d="M789.91,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B80E2D;stroke:none;" d="M789.239,46.794v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7112D;stroke:none;" d="M790.581,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B00F23;stroke:none;" d="M788.548,45.428h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1102A;stroke:none;" d="M788.548,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B30A27;stroke:none;" d="M788.548,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA0F29;stroke:none;" d="M787.877,48.14h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B90E27;stroke:none;" d="M788.548,47.467v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5122A;stroke:none;" d="M788.548,48.14v0.691h0.691V48.14h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B90D29;stroke:none;" d="M790.581,48.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B80D26;stroke:none;" d="M789.91,47.467h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5122C;stroke:none;" d="M789.91,48.14h-0.671v0.691h0.671h0.671V48.14h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B20B27;stroke:none;" d="M789.91,48.832h-0.671h-0.691v0.674h0.691h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B20B2B;stroke:none;" d="M790.581,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4112C;stroke:none;" d="M789.239,46.794h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4C4C8;stroke:none;" d="M790.581,49.505v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8B4B6;stroke:none;" d="M790.581,50.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0A9AC;stroke:none;" d="M789.91,50.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAF5;stroke:none;" d="M789.91,50.178h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEA7A8;stroke:none;" d="M789.239,50.178v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M789.91,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAF6;stroke:none;" d="M789.91,50.178v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M790.581,50.851h-0.671v0.693h0.671h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF8;stroke:none;" d="M790.581,50.178v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2A9AB;stroke:none;" d="M787.877,50.178h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F7F8;stroke:none;" d="M788.548,51.544v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEB;stroke:none;" d="M788.548,52.217v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDD48A;stroke:none;" d="M787.877,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2EEB4;stroke:none;" d="M788.548,52.89v0.673h0.691V52.89h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5EFDE;stroke:none;" d="M787.877,52.89h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F5D7;stroke:none;" d="M788.548,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M788.548,52.217v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F6E2;stroke:none;" d="M790.581,51.544v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF7;stroke:none;" d="M790.581,52.217v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M789.91,51.544h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBE8D2;stroke:none;" d="M789.91,52.217h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8C961;stroke:none;" d="M789.91,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CED263;stroke:none;" d="M789.91,53.563V52.89h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DB88;stroke:none;" d="M789.91,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6D176;stroke:none;" d="M790.581,52.89v0.673h0.672V52.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDE09E;stroke:none;" d="M790.581,52.217h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M790.581,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7E6A6;stroke:none;" d="M790.581,52.217v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DA72;stroke:none;" d="M789.239,53.563h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M793.976,50.178v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F6EE;stroke:none;" d="M793.976,50.851v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F5;stroke:none;" d="M793.976,49.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5F7;stroke:none;" d="M793.976,50.178v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M793.976,50.851h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M793.286,50.851v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F4;stroke:none;" d="M793.286,50.178v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6DEE1;stroke:none;" d="M792.614,49.505h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6D4D8;stroke:none;" d="M791.942,50.178v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M792.614,50.178h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M792.614,50.851h-0.672h-0.689v0.693h0.689h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFA;stroke:none;" d="M791.942,50.178h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M792.614,51.544v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M792.614,52.217v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M792.614,52.217h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M791.942,52.217v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5C047;stroke:none;" d="M791.253,52.89v0.673h0.689V52.89h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DC80;stroke:none;" d="M791.942,53.563h0.672V52.89h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDB948;stroke:none;" d="M792.614,53.563h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DBC1;stroke:none;" d="M792.614,52.89v0.673h0.672V52.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E3C4;stroke:none;" d="M791.942,53.563h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E1B3;stroke:none;" d="M791.253,52.89h0.689v-0.673h-0.689v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0EFD6;stroke:none;" d="M792.614,52.217v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F6C8;stroke:none;" d="M793.976,51.544v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF2;stroke:none;" d="M793.976,52.217v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DEB5;stroke:none;" d="M793.286,52.89v0.673h0.689V52.89h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEEABD;stroke:none;" d="M793.976,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6D487;stroke:none;" d="M793.286,52.89h0.689v-0.673h-0.689v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M793.976,53.563h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4CE80;stroke:none;" d="M793.976,52.217v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M793.286,50.851h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7E6C2;stroke:none;" d="M793.286,53.563h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF1;stroke:none;" d="M793.976,50.851v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B40E2E;stroke:none;" d="M791.253,48.832h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M791.253,53.563h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3C4B6;stroke:none;" d="M793.976,48.832v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B50F2D;stroke:none;" d="M787.877,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F1F1;stroke:none;" d="M787.877,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6A831;stroke:none;" d="M793.976,44.755v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M781.106,53.563h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFAB19;stroke:none;" d="M793.976,19.658v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M802.089,8.119v0.673h0.671v0.673h0.671v0.692h-0.671h-0.671h-0.671V9.466V8.792V8.119h-2.034v1.347h0.672v0.692v0.673h-1.343h-0.69v0.673v0.673h0.69v0.692h0.671v0.673h0.672h0.672
+ v-0.673v-1.365h0.69h0.671v0.673h1.342v0.692h-1.342h-0.671v0.673h0.671h0.671h0.671v0.673v0.692h1.363h0.671h0.69v-0.692h-2.033v-0.673h2.033h0.671h1.343h0.69v0.673v0.692v0.673h-0.69h-0.672v0.673v0.673v1.366v0.673h0.672h0.69v0.692v0.673v0.673v1.366v0.673
+ v0.673h-0.69v0.673h0.69v0.692v0.673v0.673v0.693v0.673v0.673v0.673v0.692v0.674v0.673v0.692v0.673v0.673v0.673v0.692v0.674v0.673v0.673v0.693v0.673v0.673h-0.69v0.692v0.674h0.69v0.673v0.673v0.693v0.672v1.365v0.674v0.673v0.673h-0.69h-1.343h-0.671h-0.69
+ h-1.343h-0.691v0.693v0.673h-0.671h-0.671v0.673h0.671h0.671v0.691v0.674v0.673v0.673v0.693h-0.671h-0.671h-0.671h-0.69h-0.672h-0.672h-0.671h-0.69v0.673v0.673v0.673v0.692v0.673v0.673v0.692v0.673h0.69h0.671h0.672h0.672h0.69h0.671h0.671h0.671h0.691h0.672
+ h0.671h0.69h1.342h0.672h0.69v0.673v0.673v0.692v0.673v1.366v0.673v0.672v0.673v0.692v0.673v0.673v0.673v0.693v0.673v0.673h-0.69v0.691h0.69v0.673v2.039v0.673h-0.69v-0.673v-0.693h-0.672v0.693v0.673h-1.342v-0.673h-0.69v0.673v0.673h0.69h0.671h0.671h0.672h0.69
+ v0.692h-0.69h-0.672h-0.671h-0.671h-1.361h-0.672h-0.691h-0.671h-0.671h-0.671h-0.69h-0.672h-0.672h-0.671h-0.69h-0.671h-0.671h-0.691h-0.671h-0.672h-0.671h-0.689h-0.672h-0.672h-0.689h-0.672h-0.671h-0.671h-0.691h-0.671h-0.671h-2.033h-0.672h-0.69v-0.692
+ v-0.673h-0.671v1.366h-0.671v-1.366h-0.672v0.673v0.692h-0.69h-1.343h-0.69h-0.671h-0.671h-0.672h-0.691h-0.671v-0.692h-0.671v0.692h-0.671h-0.69h-0.672h-0.672h-0.69v-0.692h-0.671v0.692h-0.671h-0.671h-0.69v-0.692v-0.673h0.69v-0.673h-0.69h-0.672h-0.672
+ h-0.671v0.673h-0.689h-0.672v4.077h46.012V8.119h-9.475z M808.859,16.254v2.039h-0.69v-2.039h0.69z M766.224,72.564h0.689v0.692h-0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M808.859,18.293v-2.039h-0.69v2.039h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M766.913,72.564h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M802.089,8.792V8.119h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M802.089,8.792h-0.671v0.673h0.671v0.692h0.671V9.466V8.792h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M802.089,9.466h-0.671v0.692h0.671V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M802.089,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M803.431,9.466h-0.671v0.692h0.671V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF8;stroke:none;" d="M797.352,8.119h-0.671v0.673h0.671V8.119z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF9;stroke:none;" d="M796.681,8.792V8.119h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M797.352,8.792h-0.671h-0.691h-0.671h-0.672v0.673h1.343v0.692h0.691h0.671h0.671h0.69V9.466V8.119h-0.69v0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF9;stroke:none;" d="M797.352,8.119v0.673h0.671V8.119h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M795.989,8.119h-0.671v0.673h0.671V8.119z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M795.989,9.466h-1.343v0.692h0.672h0.671V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M795.318,8.119h-0.672v0.673h0.672V8.119z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M795.989,10.158h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF2;stroke:none;" d="M794.646,10.832v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M795.989,10.832v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M795.989,11.504v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6EDDD;stroke:none;" d="M795.989,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M794.646,10.832h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D2BA;stroke:none;" d="M795.318,11.504h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M795.989,10.158v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF8;stroke:none;" d="M797.352,10.158h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M797.352,10.832h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M797.352,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF5;stroke:none;" d="M797.352,10.158v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFA;stroke:none;" d="M797.352,10.832v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F8F0;stroke:none;" d="M796.681,11.504h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M798.713,8.119v1.347h0.671V8.119h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M799.384,9.466h-0.671v0.692v0.673h1.343v-0.673h-0.672V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M798.713,10.832v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M800.056,9.466h-0.672v0.692h0.672V9.466z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M798.022,11.504h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M800.728,13.542h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M800.728,12.869v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFEEEE;stroke:none;" d="M798.022,12.869v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7B996;stroke:none;" d="M798.022,13.542v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M798.713,13.542h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3D3BC;stroke:none;" d="M799.384,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M798.022,12.177v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF1;stroke:none;" d="M798.022,12.869v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBB799;stroke:none;" d="M798.713,13.542h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2B49A;stroke:none;" d="M799.384,14.216h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1BCA1;stroke:none;" d="M798.022,14.908v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEBEB3;stroke:none;" d="M798.022,15.582v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9BBA1;stroke:none;" d="M799.384,14.908v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAB59B;stroke:none;" d="M799.384,15.582v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0C8B5;stroke:none;" d="M799.384,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDB698;stroke:none;" d="M798.022,14.908h0.69v-0.692h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D2C2;stroke:none;" d="M798.713,15.582h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFAE94;stroke:none;" d="M798.022,14.908v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4C4B1;stroke:none;" d="M799.384,14.216v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E4DA;stroke:none;" d="M800.728,14.216h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECC9B5;stroke:none;" d="M800.728,14.908h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAB89B;stroke:none;" d="M800.728,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF8;stroke:none;" d="M800.728,14.216v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEDBCC;stroke:none;" d="M800.728,14.908v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEA784;stroke:none;" d="M798.022,14.216v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7EFE3;stroke:none;" d="M800.056,13.542h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDBEA5;stroke:none;" d="M800.056,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M800.728,13.542v0.673h0.69h0.671v-0.673h-0.671h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBA785;stroke:none;" d="M797.352,13.542v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0DFD2;stroke:none;" d="M797.352,12.869v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFA662;stroke:none;" d="M797.352,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBA383;stroke:none;" d="M796.681,13.542v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5C5B2;stroke:none;" d="M796.681,12.869v-0.692h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1AE96;stroke:none;" d="M795.989,12.177h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0997C;stroke:none;" d="M794.646,12.869v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1A486;stroke:none;" d="M795.989,13.542v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECA192;stroke:none;" d="M795.989,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DC9779;stroke:none;" d="M794.646,12.869h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3A07C;stroke:none;" d="M795.318,13.542h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9C8B3;stroke:none;" d="M795.989,14.216h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M794.646,14.908v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2ECE5;stroke:none;" d="M795.989,14.908v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF4E1;stroke:none;" d="M795.989,15.582v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M795.989,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6E1D1;stroke:none;" d="M794.646,14.908h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M795.318,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6B7A3;stroke:none;" d="M795.989,14.216v0.692h0.691v-0.692h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAB184;stroke:none;" d="M797.352,14.216h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D6C2;stroke:none;" d="M797.352,14.908h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF7;stroke:none;" d="M797.352,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFA385;stroke:none;" d="M796.681,13.542h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M796.681,15.582h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M797.352,16.927v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9FA;stroke:none;" d="M797.352,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M797.352,16.254v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFA;stroke:none;" d="M797.352,16.927v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M797.352,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M796.681,17.62v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M796.681,16.927v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M795.989,16.254h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F0D2;stroke:none;" d="M794.646,16.927v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M795.989,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M795.989,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M794.646,16.254v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7E19F;stroke:none;" d="M795.318,17.62h-0.672v0.673h0.672V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M795.989,18.293v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F6F6;stroke:none;" d="M795.989,18.966v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECE48B;stroke:none;" d="M795.318,18.966v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M795.989,18.966h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6F6;stroke:none;" d="M795.989,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6CC52;stroke:none;" d="M794.646,18.966v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9C32E;stroke:none;" d="M795.318,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M795.989,18.966v0.692v0.673h0.691v-0.673v-0.692h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M797.352,18.293h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF9;stroke:none;" d="M797.352,18.966h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF7;stroke:none;" d="M797.352,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBEF;stroke:none;" d="M797.352,18.293v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M797.352,18.966v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M796.681,17.62h-0.691v0.673h0.691V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M797.352,17.62v0.673h0.671V17.62h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3CFBC;stroke:none;" d="M800.728,16.927v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D4C8;stroke:none;" d="M800.728,17.62v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2C3A8;stroke:none;" d="M800.728,16.254v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDBEA7;stroke:none;" d="M800.728,16.927v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E6E8;stroke:none;" d="M800.728,17.62h-0.672v0.673h0.672V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEDED9;stroke:none;" d="M800.056,17.62v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5C1B2;stroke:none;" d="M800.056,16.927v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDDBD5;stroke:none;" d="M799.384,16.254h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M798.022,16.927v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9F9;stroke:none;" d="M799.384,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M799.384,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F6;stroke:none;" d="M798.022,16.254v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M798.713,17.62h-0.69v0.673h0.69V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M799.384,18.293v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M799.384,18.966v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF7;stroke:none;" d="M798.713,18.966v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFE;stroke:none;" d="M799.384,18.966h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M799.384,19.658h-0.671v1.346h0.671v-1.346z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M798.022,18.966v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M798.713,19.658h-0.69v0.673v0.673h0.69v-1.346z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M799.384,18.966v0.692v1.346h0.672v-0.673v-0.673h0.672v-0.692h-0.672h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M800.728,18.293h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFC;stroke:none;" d="M800.728,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E6EB;stroke:none;" d="M800.728,18.293v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M800.728,18.966v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M800.056,17.62h-0.672v0.673h0.672V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDD3D0;stroke:none;" d="M800.728,17.62v0.673h0.69V17.62h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E7E6;stroke:none;" d="M798.022,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF0;stroke:none;" d="M798.022,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5BDA4;stroke:none;" d="M800.728,15.582v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M806.155,14.216v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M806.155,14.908h-0.69v0.673h1.361v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M805.465,14.908h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M804.794,15.582v-0.673h-1.363v0.673h0.691h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFA;stroke:none;" d="M805.465,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M806.826,14.216v0.692h0.671v0.673h0.672v-0.673v-0.692v-0.673h-1.343v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M807.497,14.908h-0.671v0.673v0.673h0.671v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M806.826,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M806.155,14.216v-0.673h-2.033v0.673h2.033z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M806.826,15.582h-1.361v0.673h0.69v0.673h0.671v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M803.431,12.869v-0.692h-1.342v0.692h1.342z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M802.76,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M802.089,12.869v-0.692h-0.671v-0.673h-0.69v1.365h0.69h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M802.76,14.216h-0.671v0.692v0.673h0.671v-0.673v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F1;stroke:none;" d="M801.418,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M802.76,14.908v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6ED;stroke:none;" d="M802.76,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M802.089,14.216h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFC;stroke:none;" d="M802.76,14.216v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECD8C6;stroke:none;" d="M802.089,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFB;stroke:none;" d="M804.122,15.582h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M803.431,13.542h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M803.431,15.582h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M804.122,16.927v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF4;stroke:none;" d="M804.122,17.62v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEDAD7;stroke:none;" d="M804.122,17.62h-0.691v0.673h0.691V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1D6BA;stroke:none;" d="M803.431,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M803.431,16.927h0.691h0.672v-0.673h-0.672h-0.691v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5E2;stroke:none;" d="M803.431,16.927v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D5BF;stroke:none;" d="M802.76,16.254h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBC3AB;stroke:none;" d="M801.418,16.927v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6C4A8;stroke:none;" d="M802.76,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7C1A9;stroke:none;" d="M802.76,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7C4AB;stroke:none;" d="M801.418,16.254v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECC8BC;stroke:none;" d="M802.089,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDC5A8;stroke:none;" d="M802.76,18.293v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D1BE;stroke:none;" d="M802.76,18.966v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D8D5;stroke:none;" d="M802.089,18.966v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D2CC;stroke:none;" d="M802.76,18.966h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E0D9;stroke:none;" d="M802.76,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5EBEC;stroke:none;" d="M801.418,18.966v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F6;stroke:none;" d="M802.089,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EABDB3;stroke:none;" d="M802.76,18.966v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFBCBC;stroke:none;" d="M804.122,18.293h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2BCAB;stroke:none;" d="M804.122,18.966h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2BDA8;stroke:none;" d="M804.122,19.658h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E2DE;stroke:none;" d="M804.122,18.293v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EABBAA;stroke:none;" d="M804.122,18.966v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4BD9C;stroke:none;" d="M803.431,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9C7BC;stroke:none;" d="M803.431,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F4EE;stroke:none;" d="M804.122,17.62v0.673h0.672V17.62h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M807.497,16.927v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M806.826,16.927v0.693v0.673h0.671v-1.366h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M806.826,17.62v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF8;stroke:none;" d="M805.465,16.254h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M804.794,16.927v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M805.465,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M805.465,16.927v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFA;stroke:none;" d="M806.155,16.927v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M806.155,17.62h-0.69v0.673v0.673h0.69v-0.673V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF9;stroke:none;" d="M806.155,18.293v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF7;stroke:none;" d="M804.794,18.966h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3D9CE;stroke:none;" d="M805.465,18.966h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBC8B5;stroke:none;" d="M805.465,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAFB;stroke:none;" d="M806.155,18.966v0.692h0.671h0.671v-0.692h-0.671h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFA;stroke:none;" d="M806.155,19.658v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5EC;stroke:none;" d="M806.155,19.658h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M807.497,18.293h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M807.497,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M807.497,18.966v0.692v0.673h0.672v-0.673v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M806.826,17.62h-0.671v0.673h0.671V17.62z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M806.826,19.658h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF9;stroke:none;" d="M804.794,15.582h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECBBA5;stroke:none;" d="M804.794,19.658h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M801.418,19.658h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAF8;stroke:none;" d="M808.859,13.542h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M808.859,14.908v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M808.859,14.908h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M808.859,18.966h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M808.859,19.658h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M808.169,21.004h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M808.859,21.004h-0.69v-0.673h-0.672h-0.671v0.673h0.671v0.673h0.672v0.693h0.69v-1.366z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M808.169,23.716h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M808.169,23.716v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAFB;stroke:none;" d="M808.169,23.043h0.69V22.37h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M808.169,23.043V22.37h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M808.169,22.37v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M808.859,25.754v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M808.859,24.39h-0.69v0.692h0.69V24.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF3DE;stroke:none;" d="M808.169,25.082V24.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE3CB;stroke:none;" d="M808.169,25.754v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M808.859,25.754h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFA;stroke:none;" d="M808.859,26.427h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3AA99;stroke:none;" d="M808.169,27.12v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF6;stroke:none;" d="M808.859,27.12h-0.69v0.673h0.69V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DF9081;stroke:none;" d="M808.169,27.793V27.12h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF0;stroke:none;" d="M808.859,27.793h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4C7B3;stroke:none;" d="M808.169,26.427v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFA;stroke:none;" d="M808.169,24.39v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F4E6;stroke:none;" d="M808.169,29.14h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E9D6;stroke:none;" d="M808.859,29.14h-0.69v0.692h0.69V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E17465;stroke:none;" d="M808.169,29.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E5E2;stroke:none;" d="M808.859,30.505v-0.674h-0.69v0.674h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFE6E0;stroke:none;" d="M808.859,30.505h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DF5459;stroke:none;" d="M808.169,30.505v-0.674h-0.672v0.674h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DE6A5C;stroke:none;" d="M808.169,29.832V29.14h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6EBE0;stroke:none;" d="M808.859,31.178h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DA504D;stroke:none;" d="M808.169,31.87v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F2E4;stroke:none;" d="M808.859,31.87h-0.69v0.673h0.69V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8534E;stroke:none;" d="M808.169,32.543V31.87h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6E9;stroke:none;" d="M808.859,32.543h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DB5053;stroke:none;" d="M808.169,31.178v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M808.859,34.582V33.89h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF0;stroke:none;" d="M808.859,33.89v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D06366;stroke:none;" d="M808.169,33.89v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DE818C;stroke:none;" d="M808.169,34.582V33.89h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M808.859,34.582h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M808.169,35.255v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E7E8;stroke:none;" d="M808.169,35.928v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M808.859,35.928h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F2;stroke:none;" d="M808.169,36.601v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M808.859,36.601h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EE9EAE;stroke:none;" d="M808.169,35.255v-0.674h-0.672v0.674h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CF5653;stroke:none;" d="M808.169,33.216v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E37F70;stroke:none;" d="M808.169,28.466v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M806.826,21.677h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBF9F2;stroke:none;" d="M807.497,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F2E3;stroke:none;" d="M806.826,21.677v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M806.826,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFD7C7;stroke:none;" d="M806.155,21.004v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4B79D;stroke:none;" d="M804.794,20.332v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECBB9E;stroke:none;" d="M804.794,21.004v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAB594;stroke:none;" d="M805.465,21.004h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0B693;stroke:none;" d="M805.465,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6BEA5;stroke:none;" d="M806.155,21.004h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8B998;stroke:none;" d="M804.794,21.677v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4AC8B;stroke:none;" d="M806.155,21.677h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9B59F;stroke:none;" d="M806.155,22.37v0.673h0.671V22.37h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6A07F;stroke:none;" d="M806.155,23.043V22.37h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1B390;stroke:none;" d="M804.794,23.043h0.671V22.37h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDAC8D;stroke:none;" d="M805.465,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6BEA6;stroke:none;" d="M804.794,23.043V22.37h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9A78C;stroke:none;" d="M805.465,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECA27E;stroke:none;" d="M806.155,23.043h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDCDBE;stroke:none;" d="M804.794,23.716v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3A583;stroke:none;" d="M806.155,23.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DF9D84;stroke:none;" d="M806.155,23.043v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6EDE4;stroke:none;" d="M807.497,22.37h-0.671v0.673h0.671V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1D2C8;stroke:none;" d="M807.497,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5BAB0;stroke:none;" d="M807.497,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5B799;stroke:none;" d="M804.794,22.37v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D2BF;stroke:none;" d="M806.826,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DC9279;stroke:none;" d="M806.826,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEC3A9;stroke:none;" d="M804.122,21.677v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEBCA4;stroke:none;" d="M804.122,21.004v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2D5BF;stroke:none;" d="M804.122,21.677h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2EEE3;stroke:none;" d="M803.431,21.677v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBDBCE;stroke:none;" d="M803.431,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F3E9;stroke:none;" d="M802.76,20.332h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M802.089,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M802.76,21.004h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M801.418,21.004v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF7;stroke:none;" d="M802.76,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M801.418,21.004v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M801.418,21.677v-0.673h-0.69v0.673h-0.672v0.693h1.362v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M802.089,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M802.76,22.37v0.673h0.671V22.37h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAF8;stroke:none;" d="M802.76,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9F7;stroke:none;" d="M802.089,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M802.76,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M801.418,23.043V22.37h-1.362v0.673h1.362z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M802.76,23.716h-0.671h-0.671v0.673h-0.69h-0.672h-0.672h-0.671v-0.673h-0.69v0.673v0.692v0.673v0.673v0.693h-0.671v0.673v0.673h0.671v1.365v0.674v0.673h-0.671v0.692h0.671v0.673
+ v0.673h-0.671v0.673h0.671v0.692v0.674v0.673h0.69v-0.673h0.671h1.344h0.69h0.671h1.342v-0.674V33.89v-1.347h0.691V31.87h-0.691v-0.692v-0.673v-0.674V29.14h0.691v-0.673v-0.673h-0.691V27.12v-0.693v-0.673v-0.673V24.39h-0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M801.418,23.043v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M801.418,23.716v-0.673h-1.362v0.673h0.672h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M802.76,23.043v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6EEE0;stroke:none;" d="M804.122,22.37h-0.691v0.673h0.691V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M804.122,23.043h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M804.122,23.716h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF4;stroke:none;" d="M803.431,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M803.431,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF8;stroke:none;" d="M804.122,25.082v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M804.122,25.754v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF8;stroke:none;" d="M804.122,24.39v0.692h0.672V24.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M804.122,25.082V24.39h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M804.122,25.754h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M804.122,26.427h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFC;stroke:none;" d="M804.122,27.12h-0.691v0.673h0.691V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M804.122,26.427v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M804.122,27.12v0.673h0.672V27.12h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFA;stroke:none;" d="M804.122,25.754v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EE8C71;stroke:none;" d="M807.497,25.754v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EF9277;stroke:none;" d="M807.497,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EA8164;stroke:none;" d="M807.497,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ED956A;stroke:none;" d="M806.826,25.754v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EB976A;stroke:none;" d="M806.826,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EA8768;stroke:none;" d="M806.155,25.082V24.39h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8C7AE;stroke:none;" d="M804.794,25.082h0.671V24.39h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EED3BD;stroke:none;" d="M805.465,25.082h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E2CE;stroke:none;" d="M805.465,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ED9074;stroke:none;" d="M806.155,25.082h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7987B;stroke:none;" d="M806.155,25.754h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E77C56;stroke:none;" d="M806.155,26.427v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5A388;stroke:none;" d="M806.155,27.12v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F0E0;stroke:none;" d="M804.794,27.12h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF2;stroke:none;" d="M805.465,27.12h-0.671v0.673h0.671V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M805.465,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAB59B;stroke:none;" d="M806.155,27.12h-0.69v0.673h0.69V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7C1A7;stroke:none;" d="M806.155,27.793h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EA7754;stroke:none;" d="M806.155,27.12v0.673h0.671V27.12h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E77759;stroke:none;" d="M807.497,26.427h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EA7351;stroke:none;" d="M807.497,27.12h-0.671v0.673h0.671V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E87049;stroke:none;" d="M807.497,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9895F;stroke:none;" d="M806.826,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EA6F4F;stroke:none;" d="M806.826,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFC;stroke:none;" d="M801.418,24.39v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1DAD1;stroke:none;" d="M804.794,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M804.794,27.793h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBFB;stroke:none;" d="M800.728,20.332h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBFC;stroke:none;" d="M800.728,21.004h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M800.056,21.677v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M799.384,21.677v-0.673h-0.671v0.673h-0.69v0.693v0.673h-0.671v0.673v0.673h0.671v-0.673h0.69v0.673h0.671v-0.673h0.672v-0.673V22.37h-0.672v0.673h-0.671V22.37h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFC;stroke:none;" d="M798.713,21.004h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M798.022,21.677v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF2;stroke:none;" d="M798.022,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M798.022,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M799.384,22.37h-0.671v0.673h0.671V22.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M800.728,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M798.022,22.37v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M800.056,21.677h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M800.056,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF3;stroke:none;" d="M797.352,21.677v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF5;stroke:none;" d="M797.352,21.004v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF5;stroke:none;" d="M797.352,21.677h-0.671v0.693v0.673h0.671V22.37v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M796.681,21.677v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M796.681,21.004v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4EFD4;stroke:none;" d="M795.989,20.332h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2BF1C;stroke:none;" d="M795.318,21.004v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E8B7;stroke:none;" d="M795.989,21.004h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECDA9F;stroke:none;" d="M795.989,21.677h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1BB1C;stroke:none;" d="M795.318,21.004h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDB122;stroke:none;" d="M795.318,21.677h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M795.989,22.37v0.673h0.691V22.37h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D38F;stroke:none;" d="M795.989,23.043V22.37h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BAAC28;stroke:none;" d="M795.318,23.043V22.37h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D285;stroke:none;" d="M795.989,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D27B;stroke:none;" d="M795.989,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BAAE1F;stroke:none;" d="M794.646,23.043v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4AD19;stroke:none;" d="M795.318,23.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M795.989,23.043v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF6;stroke:none;" d="M797.352,23.043h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F2;stroke:none;" d="M797.352,23.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M796.681,21.677h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M796.681,23.716h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M797.352,25.082v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAFA;stroke:none;" d="M797.352,25.754v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M797.352,24.39v0.692h0.671V24.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M797.352,25.082V24.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F5;stroke:none;" d="M797.352,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAE3;stroke:none;" d="M796.681,25.754v-0.673h-0.691v0.673v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M796.681,25.082V24.39h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DECC8A;stroke:none;" d="M795.989,24.39h-0.671v0.692h0.671V24.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2B134;stroke:none;" d="M795.318,25.082V24.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2D07E;stroke:none;" d="M795.989,25.082h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D381;stroke:none;" d="M795.989,25.754h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFAE1C;stroke:none;" d="M795.318,25.082h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2AC18;stroke:none;" d="M795.318,25.754h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M795.989,26.427v0.693h0.691v-0.693h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBD58F;stroke:none;" d="M795.989,27.12v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBAE1D;stroke:none;" d="M795.318,27.12v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDDB89;stroke:none;" d="M795.989,27.12h-0.671v0.673h0.671V27.12z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFE388;stroke:none;" d="M795.989,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3B324;stroke:none;" d="M794.646,27.12v0.673h0.672V27.12h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1B51B;stroke:none;" d="M795.318,27.793h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M795.989,27.12v0.673h0.691V27.12h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M797.352,26.427h-0.671v0.693v0.673h0.671V27.12v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF7;stroke:none;" d="M797.352,27.793h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M797.352,26.427v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M796.681,27.793h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M797.352,25.754v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M798.022,29.832v-1.365h-0.671v0.673v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9EE;stroke:none;" d="M798.022,30.505v-0.674h-0.671v0.674h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M798.022,32.543V31.87h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M798.022,31.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF9;stroke:none;" d="M797.352,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFA;stroke:none;" d="M796.681,29.14v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M796.681,29.832v0.674v0.673v0.692v0.673v0.673h0.671v-0.673V31.87v-0.692v-0.673v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M796.681,30.505v-0.674h-0.691v0.674h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9FA;stroke:none;" d="M797.352,29.832V29.14h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M796.681,29.832V29.14h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9E5BA;stroke:none;" d="M795.989,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6E8F0;stroke:none;" d="M795.989,29.14h-0.671v0.692h0.671V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBB31A;stroke:none;" d="M795.318,29.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9C429;stroke:none;" d="M794.646,29.832v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F2F3;stroke:none;" d="M795.318,30.505h0.671v-0.674h-0.671v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M795.989,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8D15F;stroke:none;" d="M795.318,30.505h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9B01E;stroke:none;" d="M794.646,29.832h0.672V29.14h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M795.989,31.178h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E8DB;stroke:none;" d="M794.646,31.87v0.673h0.672V31.87h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M795.989,31.87v0.673h0.691V31.87h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF0;stroke:none;" d="M795.989,32.543V31.87h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEB;stroke:none;" d="M795.989,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DAA3;stroke:none;" d="M794.646,31.87h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M795.318,32.543h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;stroke:none;" d="M795.989,31.178v0.692h0.691v-0.692h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFA;stroke:none;" d="M796.681,30.505h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M796.681,32.543h-0.691v0.673v0.673v0.692v0.674h0.691v-0.674V33.89v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M797.352,33.89v0.692h0.671V33.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF6;stroke:none;" d="M797.352,34.582V33.89h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M797.352,33.89v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M797.352,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M795.989,33.216h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M794.646,33.89v0.692h0.672V33.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M795.989,34.582V33.89h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M795.989,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M794.646,33.216v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M795.318,34.582h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF3;stroke:none;" d="M795.989,35.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF8;stroke:none;" d="M794.646,35.928v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAFA;stroke:none;" d="M795.989,35.928v0.673v0.693h0.691v-1.366h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAF2;stroke:none;" d="M795.989,36.601v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F2;stroke:none;" d="M795.989,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M795.318,35.255h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M795.318,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFC;stroke:none;" d="M795.989,35.255v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M797.352,35.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M797.352,35.928h-0.671v1.366v0.673h0.671v-0.673v-0.693v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M797.352,35.255v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M797.352,35.928v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF3;stroke:none;" d="M797.352,34.582v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M799.384,35.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M798.022,35.928v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M798.713,36.601h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M799.384,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M799.384,35.928v0.673h1.344v-0.673h-1.344z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M799.384,35.255v0.673h1.344v-0.673h-1.344z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M798.713,36.601h-0.69v0.693v0.673h0.69v-0.673v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAF8;stroke:none;" d="M800.728,35.255v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M800.728,35.928v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M800.728,36.601h-1.344v0.693h0.672h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M798.022,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M798.022,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E76D43;stroke:none;" d="M807.497,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EA6949;stroke:none;" d="M806.826,29.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2583C;stroke:none;" d="M806.826,29.832v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DC5541;stroke:none;" d="M806.826,30.505v-0.674h-0.671v0.674h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E76D41;stroke:none;" d="M806.826,29.832h0.671V29.14h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D84B2F;stroke:none;" d="M807.497,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EE6B4D;stroke:none;" d="M806.826,29.832V29.14h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8C9B2;stroke:none;" d="M806.155,29.14v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M804.794,29.14h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M805.465,29.14h-0.671v0.692h0.671V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M804.794,29.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1C5BB;stroke:none;" d="M805.465,29.832v0.674h0.69v-0.674h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M805.465,30.505v-0.674h-0.671v0.674h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M805.465,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4FAFB;stroke:none;" d="M804.794,30.505v-0.674h-0.672v0.674v0.673v0.692h0.672v-0.692v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M804.794,29.832V29.14h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD4BD;stroke:none;" d="M806.155,29.14h-0.69v0.692h0.69V29.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1C1B6;stroke:none;" d="M806.155,30.505h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M805.465,31.178h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M805.465,31.87h-0.671v0.673h0.671V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M804.794,32.543V31.87h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF6;stroke:none;" d="M805.465,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0A79E;stroke:none;" d="M805.465,31.87v0.673h0.69V31.87h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D44532;stroke:none;" d="M806.155,31.87v0.673h0.671V31.87h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0B8AD;stroke:none;" d="M806.155,31.178h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F08A86;stroke:none;" d="M806.155,32.543h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D14931;stroke:none;" d="M806.155,31.178v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5452A;stroke:none;" d="M807.497,31.178h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DB432D;stroke:none;" d="M807.497,31.87h-0.671v0.673h0.671V31.87z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D93A2C;stroke:none;" d="M807.497,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D44D37;stroke:none;" d="M806.826,30.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3392D;stroke:none;" d="M806.826,32.543h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M804.122,30.505v-0.674h-0.691v0.674h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M804.122,29.832V29.14h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M804.122,30.505h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M803.431,31.87h0.691v-0.692h-0.691v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M804.122,32.543h-0.691v1.347h0.691v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M804.122,33.89v0.692h0.672V33.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M804.122,34.582V33.89h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF9;stroke:none;" d="M804.122,33.216v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M804.122,34.582h-0.691v0.674h0.691v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M801.418,36.601h0.671v0.693h0.671v-0.693h0.671v-0.673h-1.342h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M802.089,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M802.089,35.255v0.673h1.342v-0.673h-1.342z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M802.089,35.928v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M804.122,35.255h-0.691v0.673v0.673h0.691v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M804.122,36.601h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF6F4;stroke:none;" d="M804.122,35.255v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5ECE7;stroke:none;" d="M804.122,35.928v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M803.431,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M804.122,34.582v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C21324;stroke:none;" d="M807.497,34.582V33.89h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA2424;stroke:none;" d="M807.497,33.89v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2122B;stroke:none;" d="M807.497,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CE1925;stroke:none;" d="M806.826,34.582V33.89h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CE2625;stroke:none;" d="M806.826,33.89v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCEF;stroke:none;" d="M805.465,33.216h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE8D6;stroke:none;" d="M804.794,34.582h0.671V33.89h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8CCBB;stroke:none;" d="M805.465,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D03443;stroke:none;" d="M805.465,33.89v0.692h0.69V33.89h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E36267;stroke:none;" d="M806.155,33.216h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0142C;stroke:none;" d="M806.155,34.582h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E07F86;stroke:none;" d="M805.465,35.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC4856;stroke:none;" d="M805.465,35.928h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C41532;stroke:none;" d="M805.465,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8172A;stroke:none;" d="M805.465,35.928v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D01729;stroke:none;" d="M806.155,35.928v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CB1526;stroke:none;" d="M806.155,35.255h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D32232;stroke:none;" d="M806.155,36.601h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C82130;stroke:none;" d="M806.155,35.255v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7183A;stroke:none;" d="M807.497,35.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D04E60;stroke:none;" d="M807.497,35.928h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E09A99;stroke:none;" d="M807.497,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D71A2C;stroke:none;" d="M806.826,34.582h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C91122;stroke:none;" d="M806.826,36.601h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9FA;stroke:none;" d="M804.794,32.543h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECA3AC;stroke:none;" d="M804.794,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M801.418,36.601h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF8;stroke:none;" d="M807.497,37.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAE9;stroke:none;" d="M807.497,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF8;stroke:none;" d="M807.497,37.294v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFDDCD;stroke:none;" d="M807.497,37.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF3;stroke:none;" d="M807.497,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BF716D;stroke:none;" d="M806.826,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BB2030;stroke:none;" d="M806.826,37.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5172E;stroke:none;" d="M805.465,37.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DA1A35;stroke:none;" d="M804.794,38.64h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA1833;stroke:none;" d="M805.465,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA122E;stroke:none;" d="M804.794,38.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D71527;stroke:none;" d="M805.465,37.967v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DF1C34;stroke:none;" d="M806.155,37.294h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9485A;stroke:none;" d="M804.794,37.967v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C71533;stroke:none;" d="M806.155,38.64h-0.69v0.692h0.69V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1633;stroke:none;" d="M805.465,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1F3A;stroke:none;" d="M805.465,40.005h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DA1832;stroke:none;" d="M804.794,40.678v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DB9094;stroke:none;" d="M805.465,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECCCC6;stroke:none;" d="M805.465,40.005v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF7;stroke:none;" d="M806.155,40.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D16E7B;stroke:none;" d="M806.155,39.332h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DD1C39;stroke:none;" d="M804.794,40.005v-0.674h-0.672v0.674h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF9;stroke:none;" d="M806.155,40.678h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF0;stroke:none;" d="M806.155,39.332v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF9;stroke:none;" d="M807.497,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8F9;stroke:none;" d="M807.497,40.005h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M807.497,40.678h-0.671v0.673h0.671h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M807.497,39.332v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M807.497,40.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CE1933;stroke:none;" d="M804.794,39.332V38.64h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0C9BC;stroke:none;" d="M806.826,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8F8;stroke:none;" d="M806.826,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF9;stroke:none;" d="M807.497,38.64v0.692h0.672V38.64h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8AEA6;stroke:none;" d="M804.122,38.64v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6EA;stroke:none;" d="M804.122,37.967v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BD4A4D;stroke:none;" d="M804.122,38.64h-0.691v0.692h0.691V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M803.431,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF8;stroke:none;" d="M803.431,37.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M802.76,37.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF7F7;stroke:none;" d="M801.418,37.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M801.418,38.64v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAF6;stroke:none;" d="M802.76,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M802.76,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFB;stroke:none;" d="M801.418,37.967h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M802.089,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M801.418,37.967v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5DFE2;stroke:none;" d="M802.76,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M801.418,40.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M801.418,40.678v-0.673h-0.69h-0.672v0.673h0.672h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7243A;stroke:none;" d="M802.76,40.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3B0BE;stroke:none;" d="M802.76,40.678v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0454D;stroke:none;" d="M802.76,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M801.418,40.005h0.671v-0.674h-0.671v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5DCDB;stroke:none;" d="M802.089,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M801.418,40.005v-0.674h-0.69v0.674h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8878D;stroke:none;" d="M802.76,39.332v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B51327;stroke:none;" d="M804.122,39.332h-0.691v0.674h0.691v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D21C31;stroke:none;" d="M804.122,40.005h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DC1928;stroke:none;" d="M804.122,40.678h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF7F8;stroke:none;" d="M801.418,39.332V38.64h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E6DD;stroke:none;" d="M803.431,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C81422;stroke:none;" d="M803.431,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5D6D2;stroke:none;" d="M804.122,42.044v0.672h0.672v-0.672h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B34E59;stroke:none;" d="M804.122,42.716v-0.672h-0.691v0.672h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D46B70;stroke:none;" d="M804.122,41.351v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BF1A2D;stroke:none;" d="M804.122,42.044v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3CFD5;stroke:none;" d="M804.122,42.716h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7172C;stroke:none;" d="M803.431,42.716v-0.672h-0.671v0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC2431;stroke:none;" d="M803.431,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BD132A;stroke:none;" d="M802.76,41.351h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5556B;stroke:none;" d="M802.089,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C41B32;stroke:none;" d="M802.76,42.044h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5EAEA;stroke:none;" d="M801.418,42.044v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C91C35;stroke:none;" d="M802.76,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A60E20;stroke:none;" d="M802.089,42.044h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1516C;stroke:none;" d="M801.418,42.716v-0.672h-0.69v0.672h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C81630;stroke:none;" d="M802.089,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1B6B5;stroke:none;" d="M802.76,43.39v0.692h0.671V43.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B10F2C;stroke:none;" d="M802.76,44.082V43.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1833;stroke:none;" d="M802.089,44.082V43.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8BAB6;stroke:none;" d="M802.76,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C30E25;stroke:none;" d="M801.418,44.082V43.39h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFA;stroke:none;" d="M802.76,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B91B3B;stroke:none;" d="M801.418,44.082v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D01633;stroke:none;" d="M801.418,44.755v-0.674h-0.69v0.674h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEC5C7;stroke:none;" d="M802.089,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF4;stroke:none;" d="M802.76,44.082v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M804.122,43.39h-0.691v0.692h0.691V43.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFC9C9;stroke:none;" d="M804.122,44.082h-0.691v0.674h0.691v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A8A8A8;stroke:none;" d="M804.122,44.755h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3DFE2;stroke:none;" d="M804.122,43.39v0.692h0.672V43.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7ACB2;stroke:none;" d="M804.122,44.082v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9E1424;stroke:none;" d="M801.418,43.39v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1630;stroke:none;" d="M803.431,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5BEBB;stroke:none;" d="M803.431,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M804.122,42.716v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M807.497,42.044v0.672h0.672v-0.672h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F7F9;stroke:none;" d="M807.497,42.716v-0.672h-0.671v0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F9F9;stroke:none;" d="M807.497,41.351v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M807.497,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M807.497,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0B1B5;stroke:none;" d="M806.826,42.716v-0.672h-0.671v0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFC;stroke:none;" d="M806.826,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M806.155,42.044v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5F1;stroke:none;" d="M804.794,42.044h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF8;stroke:none;" d="M805.465,42.044h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9FB0AA;stroke:none;" d="M805.465,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#969A9B;stroke:none;" d="M806.155,42.044h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7D8688;stroke:none;" d="M806.155,42.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M806.155,43.39v0.692v0.674h0.671v-0.674V43.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0DDDC;stroke:none;" d="M806.155,44.082V43.39h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A6AAAD;stroke:none;" d="M804.794,44.082h0.671V43.39h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8E1E5;stroke:none;" d="M805.465,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F2F0;stroke:none;" d="M805.465,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M806.155,44.082h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M806.155,44.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M807.497,43.39h-0.671v0.692h0.671V43.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F2F4;stroke:none;" d="M807.497,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFA;stroke:none;" d="M807.497,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F7;stroke:none;" d="M807.497,43.39v0.692h0.672V43.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M807.497,44.082v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BBBEC2;stroke:none;" d="M806.826,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M806.826,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M807.497,42.716v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M801.418,41.351v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BB1C2D;stroke:none;" d="M804.794,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6B2B3;stroke:none;" d="M804.794,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M800.728,37.294h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F8;stroke:none;" d="M800.056,37.967v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M800.728,37.967h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F8;stroke:none;" d="M800.056,38.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M800.728,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M799.384,37.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M798.022,37.967v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M798.022,38.64v-0.673h-0.671h-0.671v0.673h0.671h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M799.384,38.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M799.384,38.64h-0.671v0.692v0.674v0.673h0.671v-0.673V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M798.022,37.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M798.713,38.64h-0.69v0.692h0.69V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF6;stroke:none;" d="M798.022,40.005v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M798.022,40.678v-0.673v-0.674h-0.671v0.674v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M799.384,40.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F7F8;stroke:none;" d="M799.384,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF8;stroke:none;" d="M798.022,40.005h0.69v-0.674h-0.69v0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M798.713,40.678h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M800.728,39.332h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M800.056,40.005v-0.674V38.64h-0.672v1.366h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M800.728,40.678h-0.672h-0.672v0.673h0.672h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M798.022,39.332V38.64h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFC;stroke:none;" d="M797.352,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M796.681,38.64v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M796.681,37.967v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F3;stroke:none;" d="M795.989,37.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M794.646,37.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF7;stroke:none;" d="M795.318,38.64h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M795.989,38.64h-0.671v0.692h0.671V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M794.646,37.294v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M795.318,38.64h-0.672v0.692h0.672V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M795.989,39.332h-0.671h-0.672v0.674h0.672v0.673h0.671v-0.673v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M794.646,40.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF7;stroke:none;" d="M795.989,40.005v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M795.989,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M795.318,40.678h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF8;stroke:none;" d="M795.989,39.332v0.674h0.691v-0.674h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAF5;stroke:none;" d="M797.352,39.332h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF4;stroke:none;" d="M797.352,40.005h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F0F4;stroke:none;" d="M797.352,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M796.681,38.64h-0.691v0.692h0.691V38.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M796.681,40.678h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M797.352,42.044v0.672h0.671v-0.672h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9EF;stroke:none;" d="M797.352,42.716v-0.672h-0.671v0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M797.352,41.351v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M797.352,42.044v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF2;stroke:none;" d="M797.352,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F7EF;stroke:none;" d="M796.681,42.716v-0.672h-0.691v0.672h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF7;stroke:none;" d="M796.681,42.044v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F5;stroke:none;" d="M795.989,41.351h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M795.318,42.044v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8EC;stroke:none;" d="M795.989,42.044h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M795.989,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M795.318,42.044h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M795.318,42.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9FA;stroke:none;" d="M795.989,43.39v0.692h0.691V43.39h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M795.989,44.082V43.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M795.318,44.082V43.39h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4FAF9;stroke:none;" d="M795.989,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7DF;stroke:none;" d="M795.989,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFEFD7;stroke:none;" d="M794.646,44.082v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD779;stroke:none;" d="M795.318,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M795.989,44.082v0.674h0.691v-0.674h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M797.352,43.39h-0.671v0.692h0.671V43.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M797.352,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0B3BE;stroke:none;" d="M797.352,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M797.352,43.39v0.692h0.671V43.39h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F1E8;stroke:none;" d="M797.352,44.082v0.674h0.671v-0.674h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M796.681,42.716h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F4;stroke:none;" d="M796.681,44.755h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F0F4;stroke:none;" d="M797.352,42.716v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F3E8;stroke:none;" d="M800.728,42.716v-0.672h-0.672v0.672h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF2F2;stroke:none;" d="M800.728,42.044v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DA425B;stroke:none;" d="M800.728,42.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F9;stroke:none;" d="M800.056,42.716v-0.672h-0.672v0.672h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8F9;stroke:none;" d="M800.056,42.044v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M799.384,41.351h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF9;stroke:none;" d="M798.713,42.044v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F7F7;stroke:none;" d="M799.384,42.044h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F8;stroke:none;" d="M799.384,42.716h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF6F8;stroke:none;" d="M798.713,42.044h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M798.713,42.716h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D33855;stroke:none;" d="M799.384,43.39v0.692h0.672V43.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0C1C4;stroke:none;" d="M799.384,44.082V43.39h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F7;stroke:none;" d="M798.713,44.082V43.39h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE1738;stroke:none;" d="M799.384,44.082h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AD1529;stroke:none;" d="M799.384,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F09DA6;stroke:none;" d="M798.022,44.082v0.674h0.69v-0.674h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6081F;stroke:none;" d="M798.713,44.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AB142C;stroke:none;" d="M799.384,44.082v0.674h0.672v-0.674h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE122F;stroke:none;" d="M800.728,43.39h-0.672v0.692h0.672V43.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0102C;stroke:none;" d="M800.728,44.082h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF0D29;stroke:none;" d="M800.728,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2DAD5;stroke:none;" d="M800.056,42.716h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BD122E;stroke:none;" d="M800.056,44.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M798.022,40.678h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B76665;stroke:none;" d="M798.022,44.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DC5B6F;stroke:none;" d="M800.728,45.428h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C20E24;stroke:none;" d="M800.056,46.101v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF4;stroke:none;" d="M800.728,46.101h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DF9BA1;stroke:none;" d="M800.056,46.794v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6DDD3;stroke:none;" d="M800.728,46.794h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E4E0;stroke:none;" d="M800.728,45.428v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M800.728,46.101v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D21A2C;stroke:none;" d="M799.384,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6111E;stroke:none;" d="M798.713,46.101v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A61B37;stroke:none;" d="M799.384,46.101h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BD091A;stroke:none;" d="M798.022,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8CBD3;stroke:none;" d="M799.384,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B90629;stroke:none;" d="M798.713,46.101h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2142F;stroke:none;" d="M798.022,46.794v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC6B7C;stroke:none;" d="M798.713,46.794h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ACBBB4;stroke:none;" d="M799.384,47.467v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M799.384,48.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F4F2;stroke:none;" d="M798.713,48.14v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BAC9C9;stroke:none;" d="M799.384,48.14h-0.671v0.691h0.671V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3C3D8;stroke:none;" d="M798.022,48.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ACACB3;stroke:none;" d="M799.384,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ABBCBB;stroke:none;" d="M798.022,48.14v0.691h0.69V48.14h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F6EE;stroke:none;" d="M798.022,48.832V48.14h-0.671v0.691h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#717A7F;stroke:none;" d="M798.713,48.832h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9C3C3;stroke:none;" d="M799.384,48.14v0.691h0.672V48.14h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#71857C;stroke:none;" d="M800.728,47.467h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEBEC0;stroke:none;" d="M800.728,48.14h-0.672v0.691h0.672V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M800.728,48.832h-0.672v0.674h0.672h0.69v-0.674h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B9893;stroke:none;" d="M800.728,47.467v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE6E8;stroke:none;" d="M800.728,48.14v0.691h0.69V48.14h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BD0D34;stroke:none;" d="M798.022,47.467v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F2;stroke:none;" d="M800.056,46.794h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F3F5;stroke:none;" d="M800.056,48.832h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#94A49A;stroke:none;" d="M800.728,46.794v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AE0D32;stroke:none;" d="M797.352,46.794v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B51634;stroke:none;" d="M797.352,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9E200B;stroke:none;" d="M797.352,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AB3121;stroke:none;" d="M796.681,46.794v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA666E;stroke:none;" d="M796.681,46.101v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7B792;stroke:none;" d="M795.989,45.428h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3C02C;stroke:none;" d="M795.318,46.101v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D29223;stroke:none;" d="M795.989,46.101h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D39A2B;stroke:none;" d="M795.989,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D47F15;stroke:none;" d="M794.646,46.101v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D2D21;stroke:none;" d="M795.318,46.794h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DB9D26;stroke:none;" d="M795.989,47.467v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA2013;stroke:none;" d="M795.989,48.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8041E;stroke:none;" d="M795.318,48.14v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D87D78;stroke:none;" d="M795.989,48.14h-0.671v0.691h0.671V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M795.989,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C11A42;stroke:none;" d="M794.646,48.14v0.691h0.672V48.14h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E3DE;stroke:none;" d="M795.318,48.832h-0.672v0.674h0.672v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBF0C0;stroke:none;" d="M795.989,48.14v0.691h0.691V48.14h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC35B;stroke:none;" d="M797.352,47.467h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAF4E1;stroke:none;" d="M797.352,48.14h-0.671v0.691h0.671V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF2F4;stroke:none;" d="M797.352,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2921D;stroke:none;" d="M796.681,46.794h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M796.681,48.832h-0.691v0.674h0.691v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M797.352,50.178v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F8;stroke:none;" d="M797.352,50.851v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M797.352,49.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF8;stroke:none;" d="M797.352,50.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M797.352,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M796.681,50.851v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M796.681,50.178v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F5F6;stroke:none;" d="M795.989,49.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M795.318,50.178v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF7;stroke:none;" d="M795.989,50.178h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M795.989,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF7F8;stroke:none;" d="M795.318,50.178h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAE3;stroke:none;" d="M795.318,50.851h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F2;stroke:none;" d="M795.989,51.544v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M795.989,52.217v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F1DD;stroke:none;" d="M795.989,52.217h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M795.318,52.217v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8C566;stroke:none;" d="M794.646,52.89v0.673h0.672V52.89h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1CE81;stroke:none;" d="M795.318,53.563h0.671V52.89h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8D36B;stroke:none;" d="M795.989,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M795.989,52.89v0.673h0.691V52.89h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1D09E;stroke:none;" d="M795.318,53.563h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9E07C;stroke:none;" d="M794.646,52.89h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBEE;stroke:none;" d="M795.989,52.217v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M797.352,51.544v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M797.352,52.217v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAE9;stroke:none;" d="M796.681,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBE9;stroke:none;" d="M797.352,52.89v0.673h0.671V52.89h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F8;stroke:none;" d="M796.681,52.89h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M797.352,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF5;stroke:none;" d="M797.352,52.217v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M796.681,50.851h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF7;stroke:none;" d="M796.681,53.563h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M797.352,50.851v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M800.728,50.178v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M800.728,50.851v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M800.728,49.505v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M800.728,50.178v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M800.728,50.851h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M800.056,50.851v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M800.056,50.178v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEECEE;stroke:none;" d="M799.384,49.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2E5E6;stroke:none;" d="M798.713,50.178v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFC;stroke:none;" d="M799.384,50.178h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M799.384,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAF8;stroke:none;" d="M798.713,50.178h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF7;stroke:none;" d="M798.713,50.851h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M800.056,50.851h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFB;stroke:none;" d="M800.728,50.851v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAF5EC;stroke:none;" d="M798.022,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF8;stroke:none;" d="M798.022,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M807.497,45.428h-0.671v0.673h1.343v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9F5;stroke:none;" d="M806.826,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M806.155,46.101v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF8;stroke:none;" d="M805.465,46.101v-0.673h-0.671h-0.672v0.673h1.343z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BBACAF;stroke:none;" d="M804.122,46.101v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3D8DA;stroke:none;" d="M803.431,46.794v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9B9FA4;stroke:none;" d="M803.431,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6BCBB;stroke:none;" d="M802.089,46.101h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A5A9AC;stroke:none;" d="M802.76,46.101h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M802.089,46.101v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4CCCD;stroke:none;" d="M802.76,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6CAC9;stroke:none;" d="M801.418,46.101v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#85908C;stroke:none;" d="M802.089,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6CAC9;stroke:none;" d="M802.089,48.14v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M802.76,48.14h-0.671v0.691h0.671V48.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F3F1;stroke:none;" d="M802.76,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M802.76,48.14v0.691h0.671V48.14h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M801.418,48.14v0.691h0.671V48.14h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M802.089,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M803.431,46.794h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M803.431,48.832h-0.671v0.674h0.671v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M803.431,50.851v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4FAFB;stroke:none;" d="M803.431,50.178v-0.673h-0.671h-0.671v0.673h0.671h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M802.76,50.178h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M802.089,50.178v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M802.76,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBF5F2;stroke:none;" d="M801.418,50.851h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M802.089,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F8;stroke:none;" d="M803.431,50.851h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C03C53;stroke:none;" d="M801.418,44.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M807.497,44.755v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M808.859,37.967v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M808.859,37.967h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M808.859,40.005h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M808.859,40.678h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M808.859,42.716v-0.672h-0.69v0.672h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M808.859,42.044v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M808.859,42.716h-0.69v0.673v0.692h0.69v-1.365z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M808.859,44.082h-0.69v0.674h0.69v-0.674z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M808.859,44.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M808.859,45.428h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M808.169,36.601h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M794.646,53.563h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M808.169,57.64h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9FA;stroke:none;" d="M808.859,57.64h-0.69v0.673h0.69V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F7E0;stroke:none;" d="M808.169,57.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M808.169,59.005h0.69v-0.692h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M808.859,59.005h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8E3;stroke:none;" d="M808.169,59.005v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFD890;stroke:none;" d="M808.169,59.679v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M808.859,59.679h-0.69v0.673v0.692h0.69v-1.366z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M808.859,61.044h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M808.169,61.718v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5EFDF;stroke:none;" d="M808.169,61.044v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M808.859,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4DF91;stroke:none;" d="M808.169,60.352v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M808.169,58.313V57.64h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF9;stroke:none;" d="M808.169,63.755h0.69v-0.692h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M808.859,63.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F6F6;stroke:none;" d="M808.169,63.755v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9E3;stroke:none;" d="M808.169,63.063h0.69V62.39h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M808.169,63.063V62.39h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F3F6;stroke:none;" d="M808.169,65.102h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M808.859,65.102h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9DED3;stroke:none;" d="M808.169,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7CCC4;stroke:none;" d="M808.169,65.775v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8F2;stroke:none;" d="M808.859,65.775h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFEAE4;stroke:none;" d="M808.169,64.429v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F6;stroke:none;" d="M808.859,67.141v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1C6C1;stroke:none;" d="M808.169,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F8;stroke:none;" d="M808.859,67.141h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EADDCE;stroke:none;" d="M808.169,67.814v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F8;stroke:none;" d="M808.859,68.505h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E1DE;stroke:none;" d="M808.169,69.179v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M808.859,69.179h-0.69v0.673v0.673v0.693h0.69v-2.039z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF5;stroke:none;" d="M808.169,69.852v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFBEBE;stroke:none;" d="M808.169,68.505v-0.691h-0.672v0.691h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3C4C2;stroke:none;" d="M808.169,66.468v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F8;stroke:none;" d="M808.169,62.39v-0.672h-0.672v0.672h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F5E5;stroke:none;" d="M805.465,56.967h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF0;stroke:none;" d="M804.794,57.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M805.465,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M806.155,56.967h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAE4;stroke:none;" d="M806.155,57.64h-0.69v0.673h0.69V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M806.155,56.967v0.673h0.671h0.671v-0.673h-1.342z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M807.497,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F9E5;stroke:none;" d="M806.826,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F5EC;stroke:none;" d="M801.418,57.64h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M802.089,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCEE;stroke:none;" d="M801.418,57.64v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAEB;stroke:none;" d="M802.76,56.967h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M802.76,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M802.76,56.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M803.431,56.967v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M804.122,57.64h-0.691v0.673h0.691V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F9;stroke:none;" d="M803.431,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9C23C;stroke:none;" d="M804.122,59.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0D49F;stroke:none;" d="M804.122,59.679v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DD91;stroke:none;" d="M804.122,58.313v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F4CD;stroke:none;" d="M804.122,59.005v-0.692h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1CEA9;stroke:none;" d="M804.122,59.679h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFE3AF;stroke:none;" d="M803.431,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF6E6;stroke:none;" d="M803.431,59.005v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2E4A6;stroke:none;" d="M802.76,58.313h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F0BE;stroke:none;" d="M801.418,59.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4D375;stroke:none;" d="M801.418,59.679v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0C93C;stroke:none;" d="M802.76,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1C23F;stroke:none;" d="M802.76,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F2E2;stroke:none;" d="M801.418,59.005h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M802.089,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5D984;stroke:none;" d="M801.418,59.005v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3C33C;stroke:none;" d="M802.76,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E8B7;stroke:none;" d="M801.418,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDD982;stroke:none;" d="M801.418,61.718v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DACF5C;stroke:none;" d="M802.76,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBC75C;stroke:none;" d="M802.76,61.718v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E2E3;stroke:none;" d="M802.76,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF6E9;stroke:none;" d="M802.089,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6EEF3;stroke:none;" d="M802.089,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M801.418,61.044v-0.692v-0.673h-0.69v0.673v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6E89D;stroke:none;" d="M802.76,60.352v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBE279;stroke:none;" d="M804.122,60.352h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDC648;stroke:none;" d="M804.122,61.044h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD6B7;stroke:none;" d="M804.122,61.718h-0.691v0.672h0.691v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2C64C;stroke:none;" d="M804.122,60.352v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDC550;stroke:none;" d="M804.122,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9E9C0;stroke:none;" d="M803.431,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE092;stroke:none;" d="M803.431,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9BC48;stroke:none;" d="M804.122,59.679v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9BE52;stroke:none;" d="M807.497,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4D8B2;stroke:none;" d="M807.497,59.005v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDC34C;stroke:none;" d="M807.497,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3CE61;stroke:none;" d="M806.826,59.679v-0.673h-0.671v0.673v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D78B;stroke:none;" d="M806.826,59.005v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7EFED;stroke:none;" d="M805.465,58.313h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7E5CE;stroke:none;" d="M804.794,59.679h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E4E2;stroke:none;" d="M805.465,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEC023;stroke:none;" d="M805.465,59.005v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD56A;stroke:none;" d="M806.155,58.313h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CABA1C;stroke:none;" d="M806.155,59.679h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6E5D6;stroke:none;" d="M805.465,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8E9C9;stroke:none;" d="M805.465,61.044h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M805.465,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBCE3E;stroke:none;" d="M805.465,61.044v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E3A8;stroke:none;" d="M806.155,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BCB619;stroke:none;" d="M806.155,60.352h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEDDA4;stroke:none;" d="M806.155,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4C761;stroke:none;" d="M806.155,60.352v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDD194;stroke:none;" d="M807.497,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6E9;stroke:none;" d="M807.497,61.044h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M807.497,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M806.826,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M801.418,58.313V57.64h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF5;stroke:none;" d="M804.794,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7EBC0;stroke:none;" d="M804.794,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M798.022,55.602v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M798.022,54.929v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6F6;stroke:none;" d="M798.713,56.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M798.713,57.64v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F5E7;stroke:none;" d="M798.713,57.64h-0.69v0.673h0.69V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M798.022,57.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M798.022,56.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M799.384,57.64h-0.671v0.673v0.692h0.671v-0.692V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M799.384,56.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M800.728,56.967h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F2F5;stroke:none;" d="M800.728,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF7;stroke:none;" d="M798.022,56.294v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M800.056,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M797.352,55.602v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBFC;stroke:none;" d="M797.352,54.929v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBEF;stroke:none;" d="M797.352,55.602h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF6;stroke:none;" d="M796.681,55.602v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF6D9;stroke:none;" d="M796.681,54.929v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EADDA4;stroke:none;" d="M795.989,54.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8D469;stroke:none;" d="M794.646,54.929v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E48F;stroke:none;" d="M794.646,55.602v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5EDDE;stroke:none;" d="M795.989,55.602v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAE7;stroke:none;" d="M795.989,55.602h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D773;stroke:none;" d="M794.646,54.255v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F4DF;stroke:none;" d="M794.646,54.929v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBE2B3;stroke:none;" d="M795.318,55.602h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEE0B4;stroke:none;" d="M795.989,56.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CACD9F;stroke:none;" d="M794.646,56.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1CDAA;stroke:none;" d="M794.646,57.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6DE;stroke:none;" d="M795.989,56.967v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0DBA7;stroke:none;" d="M795.989,57.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F5;stroke:none;" d="M795.989,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E1C2;stroke:none;" d="M795.318,56.294h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F8F1;stroke:none;" d="M795.318,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D087;stroke:none;" d="M794.646,56.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F2E6;stroke:none;" d="M795.989,56.294v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M797.352,56.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F4;stroke:none;" d="M797.352,56.967h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M797.352,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8CE6F;stroke:none;" d="M794.646,56.294v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M796.681,55.602h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M796.681,57.64h-0.691v0.673h0.691V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF0;stroke:none;" d="M797.352,59.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2C449;stroke:none;" d="M797.352,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M797.352,58.313v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8E6BE;stroke:none;" d="M797.352,59.005v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6BE23;stroke:none;" d="M797.352,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6BE52;stroke:none;" d="M796.681,59.679v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4D393;stroke:none;" d="M796.681,59.005v-0.692h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFD384;stroke:none;" d="M795.989,58.313h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0CB4E;stroke:none;" d="M794.646,59.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F0;stroke:none;" d="M794.646,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCC340;stroke:none;" d="M795.989,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E19E;stroke:none;" d="M795.989,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4E8AC;stroke:none;" d="M794.646,58.313v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF3;stroke:none;" d="M794.646,59.005v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0CA4F;stroke:none;" d="M795.318,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE38E;stroke:none;" d="M795.989,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9CC64;stroke:none;" d="M794.646,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2DDB9;stroke:none;" d="M794.646,61.718v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC945;stroke:none;" d="M795.989,61.044v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFC24D;stroke:none;" d="M795.989,61.718v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EACEAC;stroke:none;" d="M795.989,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4CD4B;stroke:none;" d="M795.318,60.352h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F0E7;stroke:none;" d="M795.318,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F0;stroke:none;" d="M794.646,61.044v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E397;stroke:none;" d="M795.989,60.352v0.692h0.691v-0.692h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1BD1E;stroke:none;" d="M797.352,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1CC57;stroke:none;" d="M797.352,61.044h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8EFDC;stroke:none;" d="M797.352,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0EBE5;stroke:none;" d="M797.352,60.352v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F7;stroke:none;" d="M797.352,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M794.646,60.352v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E0B2;stroke:none;" d="M796.681,59.679h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D78B;stroke:none;" d="M796.681,61.718h-0.691v0.672h0.691v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDEDDA;stroke:none;" d="M797.352,59.679v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0C575;stroke:none;" d="M800.728,59.679v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0D7A0;stroke:none;" d="M800.728,59.005v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E9E4;stroke:none;" d="M800.728,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAC935;stroke:none;" d="M800.056,59.679v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4EEAE;stroke:none;" d="M800.056,59.005v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M798.022,59.005v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5E8;stroke:none;" d="M799.384,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE7B3;stroke:none;" d="M799.384,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M798.713,59.679h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9EA;stroke:none;" d="M798.022,58.313v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E4A7;stroke:none;" d="M799.384,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M798.022,61.044v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEBB48;stroke:none;" d="M799.384,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E4C9;stroke:none;" d="M799.384,61.718v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M799.384,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M798.713,60.352h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9EE;stroke:none;" d="M798.713,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8CB27;stroke:none;" d="M799.384,60.352v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8EFD7;stroke:none;" d="M800.728,60.352h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2C96E;stroke:none;" d="M800.728,61.044h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DD98;stroke:none;" d="M800.728,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7CA25;stroke:none;" d="M800.056,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E7DB;stroke:none;" d="M800.056,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF5;stroke:none;" d="M794.646,58.313V57.64h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M798.022,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M798.022,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7EFF4;stroke:none;" d="M800.728,62.39h-0.672v0.673h0.672V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6F4F6;stroke:none;" d="M800.056,63.063V62.39h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M800.728,63.063h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M800.056,63.755v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD4CD;stroke:none;" d="M800.728,63.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M800.728,62.39v0.673h0.69V62.39h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M800.728,63.063v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAFA;stroke:none;" d="M799.384,62.39h-0.671v0.673h0.671V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAEF;stroke:none;" d="M798.022,63.063v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF9;stroke:none;" d="M798.022,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M799.384,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9ED;stroke:none;" d="M799.384,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M798.022,62.39v0.673h0.69V62.39h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M798.022,63.063V62.39h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E5CF;stroke:none;" d="M798.713,63.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAEC;stroke:none;" d="M799.384,64.429v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E49D97;stroke:none;" d="M799.384,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C38673;stroke:none;" d="M798.713,65.102v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D36064;stroke:none;" d="M799.384,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1ABB0;stroke:none;" d="M798.022,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D58A85;stroke:none;" d="M799.384,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAB9A0;stroke:none;" d="M798.022,65.102v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M798.022,65.775v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2B6A7;stroke:none;" d="M798.713,65.775h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2CCBC;stroke:none;" d="M799.384,65.102v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C47075;stroke:none;" d="M800.728,64.429h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4918D;stroke:none;" d="M800.728,65.102h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7B9B2;stroke:none;" d="M800.728,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D45161;stroke:none;" d="M800.728,64.429v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D17A73;stroke:none;" d="M800.728,65.102v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6CACC;stroke:none;" d="M798.022,64.429v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M800.056,63.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DB918E;stroke:none;" d="M800.056,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8CBCF;stroke:none;" d="M800.728,63.755v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M797.352,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M797.352,63.063V62.39h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5D4C9;stroke:none;" d="M797.352,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F6;stroke:none;" d="M796.681,63.755v-0.692h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M796.681,63.063V62.39h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F5F1;stroke:none;" d="M795.989,62.39h-0.671v0.673h0.671V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F7;stroke:none;" d="M794.646,63.063v0.692v0.673h0.672v-0.673v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF8;stroke:none;" d="M794.646,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M795.989,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M795.989,63.755h-0.671v0.673v0.673h0.671v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4F3F4;stroke:none;" d="M794.646,63.063h0.672V62.39h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F1F5;stroke:none;" d="M794.646,63.063V62.39h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D38A82;stroke:none;" d="M795.989,64.429v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBF9FA;stroke:none;" d="M795.318,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M795.989,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3A093;stroke:none;" d="M794.646,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M795.989,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D18C7D;stroke:none;" d="M795.989,65.102v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6ECE9;stroke:none;" d="M794.646,65.102v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E06F69;stroke:none;" d="M794.646,65.775v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4CFC3;stroke:none;" d="M795.318,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DA6056;stroke:none;" d="M797.352,64.429h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D06B4D;stroke:none;" d="M797.352,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D88865;stroke:none;" d="M797.352,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAEB;stroke:none;" d="M794.646,64.429v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8D5C7;stroke:none;" d="M796.681,63.755h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6A18C;stroke:none;" d="M796.681,65.775h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFEFE6;stroke:none;" d="M797.352,67.141v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3716C;stroke:none;" d="M797.352,67.814v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DB96A1;stroke:none;" d="M797.352,66.468v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DD5851;stroke:none;" d="M797.352,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2897D;stroke:none;" d="M797.352,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D09599;stroke:none;" d="M796.681,67.814v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D08F8D;stroke:none;" d="M796.681,67.141v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M795.989,66.468h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F19189;stroke:none;" d="M795.318,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F9F3;stroke:none;" d="M795.989,67.141h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C56B6A;stroke:none;" d="M794.646,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5AFA1;stroke:none;" d="M795.989,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA6453;stroke:none;" d="M795.318,67.141h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9B4A7;stroke:none;" d="M794.646,67.814v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B27765;stroke:none;" d="M795.318,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6867D;stroke:none;" d="M795.989,68.505v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D19187;stroke:none;" d="M795.989,69.179v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFBCAC;stroke:none;" d="M795.318,69.179v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2DCD9;stroke:none;" d="M795.989,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M794.646,69.179v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M795.989,69.852h-0.671v0.673v0.693v0.673h0.671h0.691v-0.673h-0.691v-0.693h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF3;stroke:none;" d="M794.646,69.179v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF8;stroke:none;" d="M794.646,69.852v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M795.318,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E9E6;stroke:none;" d="M795.989,69.179v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE9990;stroke:none;" d="M797.352,68.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5EFE8;stroke:none;" d="M797.352,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M797.352,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M797.352,68.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF7;stroke:none;" d="M797.352,69.179v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBF9EB;stroke:none;" d="M794.646,68.505v-0.691h-0.671v0.691h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5897E;stroke:none;" d="M796.681,67.814h-0.691v0.691h0.691v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAEC;stroke:none;" d="M797.352,67.814v0.691h0.671v-0.691h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E9C6;stroke:none;" d="M800.728,67.141v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E7C9;stroke:none;" d="M800.728,67.814v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D99582;stroke:none;" d="M800.728,66.468v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DC8C88;stroke:none;" d="M800.728,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF9;stroke:none;" d="M800.728,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D18189;stroke:none;" d="M800.056,67.814v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E47683;stroke:none;" d="M800.056,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3CAC4;stroke:none;" d="M799.384,66.468h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E89096;stroke:none;" d="M798.713,67.141v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAD6C8;stroke:none;" d="M799.384,67.141h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C78389;stroke:none;" d="M799.384,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBEF;stroke:none;" d="M798.713,67.141h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5EA;stroke:none;" d="M798.713,67.814h-0.69v0.691h0.69v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F4EF;stroke:none;" d="M799.384,68.505v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7AAAC;stroke:none;" d="M799.384,69.179v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D1C4;stroke:none;" d="M798.713,69.179v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5F2;stroke:none;" d="M799.384,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F6;stroke:none;" d="M799.384,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M798.022,69.179v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF8;stroke:none;" d="M798.713,69.852h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M799.384,69.179v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M800.728,68.505h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M800.728,69.179h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M800.728,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M800.728,68.505v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M800.728,69.179v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DECDCB;stroke:none;" d="M800.056,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M800.056,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M800.728,67.814v0.691h0.69v-0.691h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E27F79;stroke:none;" d="M794.646,66.468v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F3EA;stroke:none;" d="M798.022,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBF4F3;stroke:none;" d="M798.022,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6CFB8;stroke:none;" d="M800.728,65.775v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F4F5;stroke:none;" d="M807.497,62.39h-0.671v0.673h0.671V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M806.826,63.063V62.39h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M807.497,63.063h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5F3;stroke:none;" d="M806.826,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E2D6;stroke:none;" d="M807.497,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF7F8;stroke:none;" d="M805.465,62.39h-0.671v0.673h0.671V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M804.794,63.755h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M805.465,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M804.794,63.755v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M805.465,63.063v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF2;stroke:none;" d="M806.155,62.39h-0.69v0.673h0.69V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF6F8;stroke:none;" d="M804.794,63.063V62.39h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M806.155,63.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F5F7;stroke:none;" d="M806.155,64.429v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M806.155,65.102v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F4E1;stroke:none;" d="M804.794,65.102h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CD7C6E;stroke:none;" d="M805.465,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CF9077;stroke:none;" d="M804.794,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C94B4F;stroke:none;" d="M805.465,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF4EA;stroke:none;" d="M806.155,65.102h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E56158;stroke:none;" d="M804.794,65.775v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EC8E94;stroke:none;" d="M806.155,65.775h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F8F3;stroke:none;" d="M806.155,65.102v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4CBBA;stroke:none;" d="M807.497,64.429h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECC9C1;stroke:none;" d="M807.497,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7CFC2;stroke:none;" d="M807.497,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7E4;stroke:none;" d="M804.794,64.429v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F8;stroke:none;" d="M806.826,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBED;stroke:none;" d="M806.826,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF3;stroke:none;" d="M804.122,63.755v-0.692h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M804.122,63.063V62.39h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5CFBC;stroke:none;" d="M804.122,63.755h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M803.431,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M803.431,63.063V62.39h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F8;stroke:none;" d="M802.76,62.39h-0.671v0.673h0.671V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F4F0;stroke:none;" d="M801.418,63.063v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M802.76,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF8;stroke:none;" d="M802.76,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M801.418,63.063h0.671V62.39h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAEF;stroke:none;" d="M802.089,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5DEE7;stroke:none;" d="M802.76,64.429v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F0;stroke:none;" d="M802.76,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0DBC3;stroke:none;" d="M802.089,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAEF;stroke:none;" d="M802.76,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F7E5;stroke:none;" d="M802.76,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEA191;stroke:none;" d="M801.418,65.102v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D37E77;stroke:none;" d="M802.089,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8F4;stroke:none;" d="M802.76,65.102v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CF594F;stroke:none;" d="M804.122,64.429h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DA8E7E;stroke:none;" d="M804.122,65.102h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2B6A4;stroke:none;" d="M804.122,65.775h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBEAEB;stroke:none;" d="M803.431,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F6F2;stroke:none;" d="M803.431,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F8;stroke:none;" d="M804.122,67.141v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D89886;stroke:none;" d="M804.122,67.814v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF0;stroke:none;" d="M804.122,66.468v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D49589;stroke:none;" d="M804.122,67.141v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5898A;stroke:none;" d="M804.122,67.814h-0.691v0.691h0.691v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF5EE;stroke:none;" d="M803.431,67.814v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F0F3;stroke:none;" d="M803.431,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8C4BB;stroke:none;" d="M802.76,66.468h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C45051;stroke:none;" d="M802.089,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D89898;stroke:none;" d="M802.76,67.141h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC6D78;stroke:none;" d="M802.76,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3988B;stroke:none;" d="M802.089,67.141h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFD1D1;stroke:none;" d="M802.089,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCA299;stroke:none;" d="M802.76,68.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DE9FA3;stroke:none;" d="M802.76,69.179v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F7F3;stroke:none;" d="M802.089,69.179v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F2;stroke:none;" d="M802.76,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M802.76,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M801.418,69.179v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M802.089,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F2E5;stroke:none;" d="M802.76,69.179v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8A49C;stroke:none;" d="M804.122,68.505h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F3E3;stroke:none;" d="M804.122,69.179h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF5;stroke:none;" d="M804.122,69.852h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F4F0;stroke:none;" d="M804.122,68.505v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M804.122,69.179v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4B6B2;stroke:none;" d="M803.431,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF6;stroke:none;" d="M803.431,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F3;stroke:none;" d="M804.122,67.814v0.691h0.672v-0.691h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F16259;stroke:none;" d="M807.497,67.814v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1A793;stroke:none;" d="M807.497,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA6560;stroke:none;" d="M807.497,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EC3D33;stroke:none;" d="M806.826,67.814v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E28C79;stroke:none;" d="M806.826,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C94854;stroke:none;" d="M806.155,67.141v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8C5CD;stroke:none;" d="M804.794,67.141h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBF6F7;stroke:none;" d="M805.465,67.141h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF6F8;stroke:none;" d="M805.465,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7BCA6;stroke:none;" d="M806.155,67.141h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F4;stroke:none;" d="M806.155,67.814h-0.69v0.691h0.69v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F4E6;stroke:none;" d="M806.155,68.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M806.155,69.179v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M804.794,69.179h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M805.465,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M805.465,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M806.155,69.179h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M806.155,69.852h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF2;stroke:none;" d="M806.155,69.179v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAC2B4;stroke:none;" d="M807.497,68.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAEA;stroke:none;" d="M807.497,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F2;stroke:none;" d="M807.497,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8B3AB;stroke:none;" d="M806.826,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF6F2;stroke:none;" d="M806.826,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7B9AB;stroke:none;" d="M804.794,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M804.794,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1EBC6;stroke:none;" d="M794.646,62.39v-0.672h-0.671v0.672h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDDA8D;stroke:none;" d="M801.418,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M801.418,69.852h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M807.497,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M807.497,71.218h-0.671h-0.671v0.673h1.342v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF9;stroke:none;" d="M806.826,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M806.155,71.218v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M805.465,70.525h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M804.794,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M805.465,71.218h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M805.465,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M804.794,71.891v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M804.794,72.564v0.692h1.361v-0.692h-0.69h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M804.794,73.256v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M806.155,72.564v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M807.497,72.564h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9FA;stroke:none;" d="M807.497,72.564v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M804.794,72.564v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M804.122,71.891v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F5;stroke:none;" d="M804.122,71.218v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M804.122,71.891h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M803.431,71.891v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M803.431,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M802.76,70.525h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M802.089,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M802.76,71.218h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M801.418,71.218v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF7F8;stroke:none;" d="M802.76,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M802.089,71.218h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M801.418,71.891v-0.673h-0.69v-0.693h-0.672v0.693h-0.672v0.673v0.673h0.672h0.672v-0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M802.089,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF6;stroke:none;" d="M801.418,73.256h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M801.418,73.256v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8F9;stroke:none;" d="M802.76,72.564h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M802.76,72.564v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M804.122,72.564h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M801.418,72.564v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M803.431,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M800.056,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M799.384,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M798.713,71.218v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M799.384,71.218h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M798.022,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8F9;stroke:none;" d="M799.384,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M798.713,71.218h-0.69v0.673v0.673v0.692h0.69v-0.692v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M798.022,71.891v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M798.022,73.256v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF6F8;stroke:none;" d="M799.384,72.564h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M799.384,72.564v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M800.728,72.564h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M798.022,72.564v-0.673h-0.671h-0.671h-0.691v0.673h0.691h0.671h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M797.352,71.891v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M797.352,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F6F7;stroke:none;" d="M796.681,71.218v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F4F5;stroke:none;" d="M795.318,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M794.646,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M795.989,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M794.646,71.891h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M795.318,71.891h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M794.646,71.891v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAF3;stroke:none;" d="M794.646,73.256h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M794.646,73.256v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M795.989,72.564h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF2;stroke:none;" d="M795.989,72.564v0.692h0.691v-0.692h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF5;stroke:none;" d="M797.352,72.564h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M794.646,72.564v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M808.859,71.218h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M808.859,72.564h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF6F7;stroke:none;" d="M794.646,70.525v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M808.169,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCEE;stroke:none;" d="M793.976,54.255h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4D777;stroke:none;" d="M793.286,54.929v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF4;stroke:none;" d="M793.976,54.929h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1D780;stroke:none;" d="M793.286,55.602v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1DDB6;stroke:none;" d="M793.976,55.602h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBBC61;stroke:none;" d="M792.614,54.255h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAE9;stroke:none;" d="M791.253,54.929v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF6F5;stroke:none;" d="M791.253,55.602v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC64B;stroke:none;" d="M792.614,55.602v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBC529;stroke:none;" d="M792.614,55.602h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFA;stroke:none;" d="M791.253,54.255v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8F8;stroke:none;" d="M791.253,54.929v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE5A0;stroke:none;" d="M791.942,55.602h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6D5C4;stroke:none;" d="M792.614,56.294h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF5E2;stroke:none;" d="M791.253,56.967v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6D6B8;stroke:none;" d="M791.253,57.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D5C5;stroke:none;" d="M792.614,56.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M792.614,57.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M792.614,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0BE44;stroke:none;" d="M791.942,56.294h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M791.942,57.64h-0.689v0.673h0.689V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2C454;stroke:none;" d="M791.253,56.967v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DDA9;stroke:none;" d="M792.614,56.294v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8C11F;stroke:none;" d="M793.976,56.294h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0CA98;stroke:none;" d="M793.976,56.967h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBEA;stroke:none;" d="M793.976,57.64h-0.689v0.673h0.689V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M791.253,56.294v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6D1;stroke:none;" d="M793.286,55.602h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M793.286,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E0BA;stroke:none;" d="M789.91,54.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M789.91,54.929v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M789.91,55.602v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3ECB6;stroke:none;" d="M789.91,55.602h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D376;stroke:none;" d="M789.239,55.602v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M789.91,54.929h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5C050;stroke:none;" d="M789.239,54.929v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F8;stroke:none;" d="M790.581,55.602h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6EBCA;stroke:none;" d="M788.548,54.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M787.877,54.929v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAD294;stroke:none;" d="M788.548,54.929h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8F1;stroke:none;" d="M787.877,55.602v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEC86A;stroke:none;" d="M788.548,55.602h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFE39E;stroke:none;" d="M788.548,56.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5B74A;stroke:none;" d="M787.877,56.967v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M788.548,56.967h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F3E3;stroke:none;" d="M787.877,57.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M788.548,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F1E4;stroke:none;" d="M788.548,56.294v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F7F7;stroke:none;" d="M788.548,56.967v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5CA56;stroke:none;" d="M789.91,56.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M789.91,56.967h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF8;stroke:none;" d="M789.91,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5D5CB;stroke:none;" d="M789.91,56.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAC028;stroke:none;" d="M790.581,56.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M790.581,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E4C5;stroke:none;" d="M787.877,56.294v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFDB6F;stroke:none;" d="M789.239,55.602h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAFA;stroke:none;" d="M789.239,57.64h-0.691v0.673h0.691V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9D276;stroke:none;" d="M789.91,58.313h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6C33E;stroke:none;" d="M789.91,59.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3B920;stroke:none;" d="M789.91,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9BE39;stroke:none;" d="M789.91,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F3AB;stroke:none;" d="M789.239,59.679v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEB736;stroke:none;" d="M790.581,59.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCE389;stroke:none;" d="M789.91,59.005h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF6D9;stroke:none;" d="M789.239,59.005v-0.692h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4CF74;stroke:none;" d="M790.581,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD7A3;stroke:none;" d="M790.581,58.313v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DACE64;stroke:none;" d="M787.877,59.679h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0BA36;stroke:none;" d="M788.548,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDC256;stroke:none;" d="M787.877,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4EBD5;stroke:none;" d="M787.877,59.005h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1E091;stroke:none;" d="M787.877,59.005v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1BD2B;stroke:none;" d="M787.877,61.044h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDD269;stroke:none;" d="M788.548,61.044h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2D68E;stroke:none;" d="M787.877,61.044v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDC659;stroke:none;" d="M787.877,61.718v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F0F2;stroke:none;" d="M788.548,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EADBAA;stroke:none;" d="M788.548,60.352v0.692h0.691v-0.692h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDECB6;stroke:none;" d="M788.548,61.044v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3B634;stroke:none;" d="M789.91,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFC342;stroke:none;" d="M789.91,61.044h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DE96;stroke:none;" d="M789.91,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8CF82;stroke:none;" d="M789.91,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4C043;stroke:none;" d="M790.581,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC474;stroke:none;" d="M790.581,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F8E2;stroke:none;" d="M790.581,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8BA1F;stroke:none;" d="M790.581,60.352v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2D696;stroke:none;" d="M787.877,60.352v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E2B5;stroke:none;" d="M789.239,59.679h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF9;stroke:none;" d="M789.239,61.718h-0.691v0.672h0.691v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBBB2A;stroke:none;" d="M790.581,59.679v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F2DF;stroke:none;" d="M793.976,59.679v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F4E5;stroke:none;" d="M793.976,59.005v-0.692h-0.689v0.692h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F5EA;stroke:none;" d="M793.976,59.679h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0BF3B;stroke:none;" d="M793.286,59.679v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8DD97;stroke:none;" d="M793.286,59.005v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECEFD5;stroke:none;" d="M792.614,58.313h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECE3AF;stroke:none;" d="M791.253,59.005v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0DE97;stroke:none;" d="M792.614,59.679v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDDAA7;stroke:none;" d="M792.614,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F5D7;stroke:none;" d="M791.253,58.313v0.692h0.689v-0.692h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E1D6;stroke:none;" d="M791.942,59.679h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E3A2;stroke:none;" d="M792.614,60.352h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E2A0;stroke:none;" d="M791.253,61.044v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5B722;stroke:none;" d="M792.614,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E69D;stroke:none;" d="M792.614,61.718v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F3E1;stroke:none;" d="M792.614,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7E4C6;stroke:none;" d="M791.942,60.352h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7EBC4;stroke:none;" d="M791.942,61.718h-0.689v0.672h0.689v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9C52C;stroke:none;" d="M792.614,60.352v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F1CD;stroke:none;" d="M793.976,60.352h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5C78E;stroke:none;" d="M793.976,61.044h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5CAA0;stroke:none;" d="M793.976,61.718h-0.689v0.672h0.689v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1C335;stroke:none;" d="M793.286,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E180;stroke:none;" d="M793.286,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBEF;stroke:none;" d="M787.877,58.313V57.64h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F7;stroke:none;" d="M791.253,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFDDC0;stroke:none;" d="M791.253,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M786.534,54.255h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M786.534,54.929h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFEEAB;stroke:none;" d="M785.844,55.602v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F2EC;stroke:none;" d="M786.534,55.602h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCEE;stroke:none;" d="M786.534,54.929v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F7F8;stroke:none;" d="M787.206,54.255h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDDFC0;stroke:none;" d="M785.844,54.929v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFA;stroke:none;" d="M787.206,55.602h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6BB1E;stroke:none;" d="M784.501,55.602h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9C379;stroke:none;" d="M785.173,55.602h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7E1EE;stroke:none;" d="M784.501,55.602v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6B519;stroke:none;" d="M784.501,54.929h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4DEBE;stroke:none;" d="M784.501,54.929v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5EC;stroke:none;" d="M784.501,56.967h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M785.173,56.967h-0.672v0.673h0.672h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E6BB;stroke:none;" d="M784.501,56.967v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAEAB2;stroke:none;" d="M784.501,57.64v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF0;stroke:none;" d="M785.173,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4BD53;stroke:none;" d="M785.173,56.294v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0C15E;stroke:none;" d="M786.534,56.294h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9EAD8;stroke:none;" d="M786.534,56.967h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M786.534,57.64h-0.69v0.673h0.69V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDE2B7;stroke:none;" d="M786.534,56.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC660;stroke:none;" d="M787.206,56.294h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F7E5;stroke:none;" d="M787.206,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M784.501,56.294v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4D562;stroke:none;" d="M785.844,55.602h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M785.844,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F0C0;stroke:none;" d="M783.14,54.255h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFD98F;stroke:none;" d="M783.14,54.929v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAE376;stroke:none;" d="M783.14,55.602v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6D35E;stroke:none;" d="M783.14,55.602h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F8;stroke:none;" d="M782.469,55.602v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CECC51;stroke:none;" d="M783.14,54.929h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF8;stroke:none;" d="M782.469,54.929v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F5D4;stroke:none;" d="M783.811,55.602h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M781.106,55.602h0.69v-0.673v-0.673h-0.69h-0.672v0.673v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBEA;stroke:none;" d="M781.797,55.602h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6D59D;stroke:none;" d="M781.106,57.64h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBEF;stroke:none;" d="M781.797,57.64h-0.69v0.673h0.69V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M781.106,57.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3D6A7;stroke:none;" d="M781.106,56.967h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F6DA;stroke:none;" d="M781.106,56.967v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9BA1E;stroke:none;" d="M781.797,56.294v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6D381;stroke:none;" d="M781.797,56.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBD1A5;stroke:none;" d="M783.14,56.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBC1AB;stroke:none;" d="M783.14,56.967h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF9;stroke:none;" d="M783.14,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7D3A3;stroke:none;" d="M783.14,56.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFE1A7;stroke:none;" d="M783.811,56.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F3;stroke:none;" d="M783.811,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M781.106,56.294v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8E089;stroke:none;" d="M782.469,55.602h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAE1;stroke:none;" d="M782.469,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6EBA7;stroke:none;" d="M783.14,58.313h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCC92D;stroke:none;" d="M783.14,59.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDC643;stroke:none;" d="M783.14,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9B844;stroke:none;" d="M783.14,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6D895;stroke:none;" d="M782.469,59.679v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECE284;stroke:none;" d="M783.811,59.005v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2E792;stroke:none;" d="M783.14,59.005h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFEDD8;stroke:none;" d="M782.469,59.005v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3B742;stroke:none;" d="M783.811,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3EDDF;stroke:none;" d="M783.811,58.313v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1C25B;stroke:none;" d="M781.106,59.679h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DECC8A;stroke:none;" d="M781.797,59.679h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8D6;stroke:none;" d="M781.106,59.679v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D49F;stroke:none;" d="M781.106,59.005h0.69v-0.692h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2ECE5;stroke:none;" d="M781.106,59.005v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDDEB7;stroke:none;" d="M781.106,61.044h0.69v-0.692h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1EFC9;stroke:none;" d="M781.797,61.044h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M781.106,61.044v-0.692h-0.672v0.692v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9ED;stroke:none;" d="M781.797,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0AD1C;stroke:none;" d="M781.797,60.352v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3B12F;stroke:none;" d="M781.797,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECC64C;stroke:none;" d="M783.14,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD665;stroke:none;" d="M783.14,61.044h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2EBC7;stroke:none;" d="M783.14,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D961;stroke:none;" d="M783.14,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEB82C;stroke:none;" d="M783.811,61.044v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3C347;stroke:none;" d="M783.811,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F3E4;stroke:none;" d="M783.811,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBB71E;stroke:none;" d="M783.811,60.352v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEC;stroke:none;" d="M781.106,60.352v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5C14F;stroke:none;" d="M782.469,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEDB94;stroke:none;" d="M782.469,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFC652;stroke:none;" d="M783.811,59.679v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7EBC4;stroke:none;" d="M786.534,58.313h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDCE6F;stroke:none;" d="M786.534,59.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6CC50;stroke:none;" d="M786.534,59.679v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4BF21;stroke:none;" d="M786.534,59.679h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEDE9C;stroke:none;" d="M785.844,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DE8B;stroke:none;" d="M786.534,59.005h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F1BF;stroke:none;" d="M785.844,59.005v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6ECE7;stroke:none;" d="M787.206,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4CD45;stroke:none;" d="M784.501,59.679h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC45A;stroke:none;" d="M785.173,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFDD87;stroke:none;" d="M784.501,59.005h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0DA88;stroke:none;" d="M784.501,61.044h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6E8AE;stroke:none;" d="M785.173,61.044h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBEE;stroke:none;" d="M785.173,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4DECE;stroke:none;" d="M785.173,60.352v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E5D3;stroke:none;" d="M785.173,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BBBF1C;stroke:none;" d="M786.534,60.352h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BABC40;stroke:none;" d="M786.534,61.044h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE4D4;stroke:none;" d="M786.534,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7D385;stroke:none;" d="M786.534,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBF9EA;stroke:none;" d="M787.206,60.352h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBD9A9;stroke:none;" d="M787.206,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDD2B0;stroke:none;" d="M785.844,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF3;stroke:none;" d="M785.844,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M781.106,58.313V57.64h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M784.501,57.64h-0.69v0.673h0.69V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8CEB5;stroke:none;" d="M784.501,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M786.534,62.39h-0.69v0.673h0.69V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F5F6;stroke:none;" d="M786.534,63.063h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M785.844,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAE1E4;stroke:none;" d="M786.534,63.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M786.534,63.063v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M787.206,63.063v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2DBE4;stroke:none;" d="M787.206,63.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M786.534,62.39v0.673h0.672h0.671V62.39h-0.671h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF6;stroke:none;" d="M785.844,63.063V62.39h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFE;stroke:none;" d="M784.501,63.755h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8E7E8;stroke:none;" d="M785.173,63.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M784.501,63.755v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M784.501,63.063h0.672V62.39h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M784.501,63.063V62.39h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0CBCD;stroke:none;" d="M784.501,65.102h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M785.173,65.102h-0.672v0.673v0.693h0.672v-0.693v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A5A3A8;stroke:none;" d="M784.501,65.102v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M784.501,65.775v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F5F6;stroke:none;" d="M785.173,64.429v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F3F5;stroke:none;" d="M785.173,65.102v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8D1D6;stroke:none;" d="M787.206,64.429v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#536780;stroke:none;" d="M787.206,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8D9AAB;stroke:none;" d="M786.534,64.429h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E9EB1;stroke:none;" d="M786.534,65.102h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A5B3C4;stroke:none;" d="M786.534,65.775h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F88A0;stroke:none;" d="M787.206,65.102h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6D9E1;stroke:none;" d="M787.206,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#929AAD;stroke:none;" d="M787.206,65.102v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0CDD2;stroke:none;" d="M784.501,64.429v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M785.844,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4C5D1;stroke:none;" d="M785.844,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F5F5;stroke:none;" d="M787.206,63.755v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M783.14,62.39h-0.671v0.673h0.671V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M783.14,63.063v0.692h0.671v-0.692V62.39h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M783.14,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2D7DD;stroke:none;" d="M783.14,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M782.469,63.755v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9DAE0;stroke:none;" d="M783.811,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBEE;stroke:none;" d="M782.469,63.063V62.39h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M781.797,62.39h-0.69v0.673h0.69V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F9EB;stroke:none;" d="M781.106,63.063V62.39h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M781.797,63.063h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M781.106,63.755v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F6F6;stroke:none;" d="M781.797,63.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF3F2;stroke:none;" d="M781.797,64.429h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAB0C7;stroke:none;" d="M781.106,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF1F1;stroke:none;" d="M781.797,65.102h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C738F;stroke:none;" d="M781.106,65.775v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F5F6;stroke:none;" d="M781.797,65.775h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#587288;stroke:none;" d="M781.797,64.429v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#60809E;stroke:none;" d="M781.797,65.102v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4B8C2;stroke:none;" d="M783.811,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8D9DB0;stroke:none;" d="M783.14,64.429h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B3C7D8;stroke:none;" d="M783.14,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8DA4BC;stroke:none;" d="M783.14,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M783.811,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFD8DC;stroke:none;" d="M783.811,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F5F6;stroke:none;" d="M781.106,64.429v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAD4D8;stroke:none;" d="M782.469,63.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6584A8;stroke:none;" d="M782.469,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEEEEF;stroke:none;" d="M783.811,66.468v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5BEC6;stroke:none;" d="M783.811,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7A8EA6;stroke:none;" d="M783.14,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4C6D6;stroke:none;" d="M783.14,67.141h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#607B9F;stroke:none;" d="M782.469,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AFBED6;stroke:none;" d="M783.14,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9FA;stroke:none;" d="M783.14,67.141v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F85A8;stroke:none;" d="M782.469,67.814v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M783.811,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M783.811,67.141v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M781.106,67.814h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF1F4;stroke:none;" d="M781.797,67.814h-0.69v0.691h0.69v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F5F4;stroke:none;" d="M781.106,67.814v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M781.106,67.141h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1E7E9;stroke:none;" d="M781.106,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B93A0;stroke:none;" d="M781.106,69.179h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAEDEA;stroke:none;" d="M781.797,69.179h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A3ABB8;stroke:none;" d="M781.106,69.179v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAF8;stroke:none;" d="M781.106,69.852v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M781.797,69.852h-0.69h-0.672h-0.671h-0.69h-0.671v0.673h0.671h0.69h0.671h0.672h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#808CA4;stroke:none;" d="M781.797,68.505v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF0F2;stroke:none;" d="M781.797,69.179v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9199A9;stroke:none;" d="M783.811,68.505v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C98AA;stroke:none;" d="M783.811,69.179v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#818DA3;stroke:none;" d="M783.14,68.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF1F2;stroke:none;" d="M783.14,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M783.14,69.852h-0.671h-0.672v0.673h1.343v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF1F2;stroke:none;" d="M783.811,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M783.811,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F5F6;stroke:none;" d="M783.811,69.179v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#727995;stroke:none;" d="M781.106,68.505v-0.691h-0.672v0.691h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6D7B9C;stroke:none;" d="M782.469,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F6F7;stroke:none;" d="M783.811,67.814v0.691h0.69v-0.691h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6B6F8E;stroke:none;" d="M787.206,66.468v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B9CA9;stroke:none;" d="M787.206,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#848D9E;stroke:none;" d="M786.534,67.141v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7CED7;stroke:none;" d="M786.534,67.141h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9495A9;stroke:none;" d="M785.844,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M786.534,67.814h-0.69v0.691h0.69v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAEFF1;stroke:none;" d="M786.534,67.141v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C8DA2;stroke:none;" d="M785.844,67.814v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M787.206,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8888AC;stroke:none;" d="M787.206,67.141v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECEAEF;stroke:none;" d="M784.501,67.814h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#979FAC;stroke:none;" d="M785.173,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M784.501,67.141h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8F96A1;stroke:none;" d="M784.501,69.179h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F5F6;stroke:none;" d="M785.173,69.179h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M785.173,69.852h-0.672v0.673v0.693h0.672h0.671v-0.693h0.69h0.672v-0.673h-0.672v-0.673h-0.69v0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3D8DA;stroke:none;" d="M785.173,68.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M785.173,69.179v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M787.206,68.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M787.206,69.179v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M786.534,68.505h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M787.206,69.179v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F8;stroke:none;" d="M787.206,69.852v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5BCC3;stroke:none;" d="M785.844,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E6E8;stroke:none;" d="M787.206,67.814v0.691h0.671v-0.691h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#98A1B2;stroke:none;" d="M781.106,66.468v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F3F4;stroke:none;" d="M784.501,65.775h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M784.501,69.852h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6E728D;stroke:none;" d="M787.206,65.775v0.693h0.671v-0.693h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M793.976,62.39h-0.689v0.673h0.689V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAFA;stroke:none;" d="M793.286,63.063V62.39h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M793.976,63.063h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M793.286,63.755v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFBFB9;stroke:none;" d="M793.976,63.755h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M792.614,62.39h-0.672v0.673h0.672V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1E1DC;stroke:none;" d="M791.253,63.063v0.692h0.689v-0.692h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D89689;stroke:none;" d="M791.253,63.755v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M792.614,63.755v-0.692h-0.672v0.692v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7CFD0;stroke:none;" d="M791.942,63.755h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF7F8;stroke:none;" d="M791.253,62.39v0.673h0.689V62.39h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8E1;stroke:none;" d="M791.253,63.063V62.39h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E59BA0;stroke:none;" d="M792.614,64.429v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF9;stroke:none;" d="M792.614,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D8D5;stroke:none;" d="M791.942,65.102v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F6ED;stroke:none;" d="M792.614,65.102h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DF5D5F;stroke:none;" d="M791.253,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE0D6;stroke:none;" d="M792.614,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E7D7;stroke:none;" d="M791.253,65.102v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D85C58;stroke:none;" d="M791.253,65.775v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1ECD7;stroke:none;" d="M791.942,65.775h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D68D87;stroke:none;" d="M792.614,65.102v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C15455;stroke:none;" d="M793.976,64.429h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D59586;stroke:none;" d="M793.976,65.102h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4EAD7;stroke:none;" d="M793.976,65.775h-0.689v0.693h0.689v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CD605D;stroke:none;" d="M791.253,64.429v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E4E0;stroke:none;" d="M793.286,63.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E37D7C;stroke:none;" d="M793.286,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M789.91,62.39h-0.671v0.673h0.671V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6B6BA;stroke:none;" d="M789.91,63.063v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBF9FA;stroke:none;" d="M789.91,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M789.91,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAF0;stroke:none;" d="M789.239,63.755v-0.692h-0.691v0.692h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F7F4;stroke:none;" d="M789.91,63.063h0.671V62.39h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF5E7;stroke:none;" d="M789.239,63.063V62.39h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9ACB1;stroke:none;" d="M790.581,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M788.548,62.39h-0.671v0.673v0.692v0.673h0.671v-0.673v-0.692V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M788.548,64.429h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M788.548,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEEBEF;stroke:none;" d="M788.548,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F3;stroke:none;" d="M788.548,64.429v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M788.548,65.102v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3CED2;stroke:none;" d="M790.581,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M789.91,64.429h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9F5F6;stroke:none;" d="M789.91,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8F4F6;stroke:none;" d="M789.91,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E2DF;stroke:none;" d="M790.581,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4E9E1;stroke:none;" d="M790.581,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF3;stroke:none;" d="M789.239,63.755h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M789.239,65.775h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC6250;stroke:none;" d="M790.581,66.468v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E3DD;stroke:none;" d="M790.581,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M789.91,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M789.91,67.141h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M789.239,67.141v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M789.91,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1DBD5;stroke:none;" d="M789.91,67.141v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M789.239,67.814v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8EACC;stroke:none;" d="M790.581,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D16252;stroke:none;" d="M790.581,67.141v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7399AE;stroke:none;" d="M787.877,67.814h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#656986;stroke:none;" d="M788.548,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9ABBCE;stroke:none;" d="M787.877,67.141h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAACC2;stroke:none;" d="M787.877,69.179h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F7F8;stroke:none;" d="M788.548,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M788.548,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F8BA5;stroke:none;" d="M788.548,68.505v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F7F8;stroke:none;" d="M788.548,69.179v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C85342;stroke:none;" d="M790.581,68.505v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EADABD;stroke:none;" d="M790.581,69.179v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8EFEF;stroke:none;" d="M789.91,68.505h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFC;stroke:none;" d="M789.91,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M789.91,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6ECD1;stroke:none;" d="M790.581,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0DECC;stroke:none;" d="M790.581,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C96D5E;stroke:none;" d="M790.581,69.179v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEBDD6;stroke:none;" d="M789.239,67.814h-0.691v0.691h0.691v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M789.239,69.852h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EB6454;stroke:none;" d="M790.581,67.814v0.691h0.672v-0.691h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBE6EA;stroke:none;" d="M793.976,67.814v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8B1B8;stroke:none;" d="M793.976,67.141v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M793.976,67.814h-0.689v0.691h0.689v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0DCBD;stroke:none;" d="M793.286,67.814v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6696D;stroke:none;" d="M793.286,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4A1A3;stroke:none;" d="M792.614,66.468h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBE0C9;stroke:none;" d="M791.942,67.141v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E36E7F;stroke:none;" d="M792.614,67.141h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D89897;stroke:none;" d="M792.614,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD3BE;stroke:none;" d="M791.942,67.141h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ED8C7C;stroke:none;" d="M791.942,67.814h-0.689v0.691h0.689v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M792.614,68.505v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2D9D2;stroke:none;" d="M792.614,69.179v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC8A77;stroke:none;" d="M791.942,69.179v-0.673h-0.689v0.673h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M792.614,69.179h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M792.614,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EED1BE;stroke:none;" d="M791.253,69.179v0.673h0.689v-0.673h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBDBCE;stroke:none;" d="M791.942,69.852h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M792.614,69.179v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M793.976,68.505h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M793.976,69.179h-0.689v0.673v0.673h0.689v-0.673v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M793.286,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M793.286,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CF5F53;stroke:none;" d="M791.253,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BB665F;stroke:none;" d="M791.253,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M781.106,62.39v-0.672h-0.672v0.672h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFE28C;stroke:none;" d="M787.877,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M787.877,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F5F7;stroke:none;" d="M779.764,54.929v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M779.764,55.602v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M779.764,55.602h-0.69v0.692h0.69h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M779.073,55.602v-0.673v-0.673h-0.671v1.347h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M779.764,54.929h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M778.402,54.255h-0.671v1.347v0.692h0.671v-0.692v-1.347z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M777.731,57.64h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M778.402,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF5DB;stroke:none;" d="M777.731,57.64v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M777.731,56.967h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M778.402,56.294v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF5E0;stroke:none;" d="M778.402,56.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAF1;stroke:none;" d="M779.764,56.294h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M779.764,56.967h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M779.764,57.64h-0.69v0.673h0.69V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAE5;stroke:none;" d="M779.764,56.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF0;stroke:none;" d="M780.435,56.294h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M780.435,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M777.731,56.294v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M779.073,55.602h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M779.073,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M777.06,55.602v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M777.06,54.929v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M775.026,56.967h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF9;stroke:none;" d="M775.026,56.967v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M774.355,57.64v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F7DE;stroke:none;" d="M775.026,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M775.697,57.64h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M776.368,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M777.06,56.967h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M777.06,57.64h-0.691v0.673h0.691V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M775.697,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F0D9;stroke:none;" d="M777.06,58.313h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6D37C;stroke:none;" d="M775.697,59.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDCA63;stroke:none;" d="M775.697,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4ECB8;stroke:none;" d="M776.368,59.005v0.673h0.691v-0.673h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E2AF;stroke:none;" d="M777.06,59.679h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBC84E;stroke:none;" d="M777.06,59.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE58C;stroke:none;" d="M776.368,59.005v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAEBC3;stroke:none;" d="M776.368,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E5A6;stroke:none;" d="M775.697,59.005v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3ECA8;stroke:none;" d="M777.06,58.313v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D785;stroke:none;" d="M775.026,58.313h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5EE;stroke:none;" d="M774.355,59.005v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9B824;stroke:none;" d="M775.026,59.005h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6E5B6;stroke:none;" d="M774.355,59.679v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8B41D;stroke:none;" d="M775.026,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3B321;stroke:none;" d="M774.355,61.044h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCC032;stroke:none;" d="M775.026,61.044h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6E7D6;stroke:none;" d="M774.355,61.044v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECDCB0;stroke:none;" d="M774.355,61.718v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DA7E;stroke:none;" d="M775.026,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9CC5B;stroke:none;" d="M775.026,60.352v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0E898;stroke:none;" d="M775.026,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DACF5B;stroke:none;" d="M777.06,60.352h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F0F1;stroke:none;" d="M775.697,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEC351;stroke:none;" d="M777.06,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDB524;stroke:none;" d="M777.06,61.718v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECD690;stroke:none;" d="M777.06,61.718h-0.691v0.672h0.691v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD7BB;stroke:none;" d="M775.697,61.044h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4EFF1;stroke:none;" d="M776.368,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1CD50;stroke:none;" d="M777.06,60.352v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9E5C3;stroke:none;" d="M774.355,60.352v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7D368;stroke:none;" d="M775.697,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F4D4;stroke:none;" d="M775.697,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0C268;stroke:none;" d="M777.06,59.679v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M779.764,58.313h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M779.764,59.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M779.764,59.679v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F5F7;stroke:none;" d="M779.764,59.679h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E38F;stroke:none;" d="M779.073,59.679v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M779.764,59.005h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8E4;stroke:none;" d="M779.073,59.005v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F5;stroke:none;" d="M780.435,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEB528;stroke:none;" d="M777.731,59.679h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1B76B;stroke:none;" d="M778.402,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8DA8D;stroke:none;" d="M777.731,59.005h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8CD6C;stroke:none;" d="M777.731,61.044h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1CB58;stroke:none;" d="M778.402,61.044h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M778.402,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFC843;stroke:none;" d="M778.402,60.352v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4BD25;stroke:none;" d="M778.402,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F5F4;stroke:none;" d="M779.764,60.352h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E1BA;stroke:none;" d="M779.764,61.044h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBE8B8;stroke:none;" d="M779.764,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M779.764,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF6;stroke:none;" d="M780.435,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M780.435,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4CE7E;stroke:none;" d="M779.073,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7E9A9;stroke:none;" d="M779.073,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M774.355,58.313V57.64h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M777.731,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6E8F0;stroke:none;" d="M777.731,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAF5F0;stroke:none;" d="M771.631,56.967v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M771.631,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M770.96,57.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF7EA;stroke:none;" d="M773.665,56.967h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M772.321,57.64h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFA;stroke:none;" d="M772.993,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9E8;stroke:none;" d="M773.665,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF7;stroke:none;" d="M772.321,57.64h-0.69v0.673h0.69V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M767.584,57.64v-0.673h-1.36v0.673h0.689h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M768.256,57.64h-0.672v0.673v0.692h0.672v-0.692V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8F1;stroke:none;" d="M768.256,56.967v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEB;stroke:none;" d="M770.289,57.64v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9D0;stroke:none;" d="M770.289,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M769.618,56.967h-0.69v0.673v0.673h0.69V57.64v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF9;stroke:none;" d="M768.928,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DE8B;stroke:none;" d="M770.289,58.313h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F3F0;stroke:none;" d="M768.928,59.005v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M768.928,59.679v-0.673v-0.692h-0.672v0.692v0.673v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5BA3D;stroke:none;" d="M769.618,59.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6BA2A;stroke:none;" d="M770.289,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC73A;stroke:none;" d="M770.289,59.005v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M769.618,59.005v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7E7;stroke:none;" d="M769.618,59.679h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E698;stroke:none;" d="M770.289,58.313v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M767.584,59.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF7;stroke:none;" d="M767.584,59.679v-0.673v-0.692h-0.671v0.692v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAFA;stroke:none;" d="M768.256,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M768.256,60.352h-0.672h-0.671v0.692h1.343v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF7;stroke:none;" d="M768.256,60.352v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M768.256,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M768.256,61.718v-0.673h-1.343h-0.689v0.673h0.689v0.672h0.671h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BCB32F;stroke:none;" d="M770.289,60.352h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBF9EE;stroke:none;" d="M768.928,61.044v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D88E;stroke:none;" d="M770.289,61.044v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4BD63;stroke:none;" d="M770.289,61.718v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBD89B;stroke:none;" d="M770.289,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F4E2;stroke:none;" d="M768.928,61.044h0.69v-0.692h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M769.618,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFCD45;stroke:none;" d="M770.289,60.352v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M767.584,60.352v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAED;stroke:none;" d="M768.928,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D22B;stroke:none;" d="M770.289,59.679v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2EBCF;stroke:none;" d="M773.665,58.313h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9C950;stroke:none;" d="M772.321,59.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0EAC7;stroke:none;" d="M772.321,59.679v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DB70;stroke:none;" d="M772.993,59.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DA55;stroke:none;" d="M773.665,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E2AD;stroke:none;" d="M772.993,59.005v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAC842;stroke:none;" d="M772.993,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF2C3;stroke:none;" d="M772.321,59.005v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5C97D;stroke:none;" d="M770.96,59.679h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E5B3;stroke:none;" d="M771.631,59.679h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DE9A;stroke:none;" d="M770.96,59.005h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DAAA;stroke:none;" d="M770.96,61.044h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F4;stroke:none;" d="M771.631,61.044h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M771.631,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F5F7;stroke:none;" d="M771.631,60.352v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M771.631,61.044v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3DC60;stroke:none;" d="M773.665,60.352h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3CB4E;stroke:none;" d="M772.321,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7D45F;stroke:none;" d="M773.665,61.718v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E7C7;stroke:none;" d="M773.665,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1C241;stroke:none;" d="M772.321,61.044h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DD9B;stroke:none;" d="M772.993,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M772.321,59.679h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAF2;stroke:none;" d="M772.321,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M767.584,58.313V57.64h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M770.96,57.64h-0.671v0.673h0.671V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F4DF;stroke:none;" d="M770.96,61.718h-0.671v0.672h0.671v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M773.665,62.39h-0.672v0.673h0.672V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2D6D7;stroke:none;" d="M772.321,63.063v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F8EE;stroke:none;" d="M772.321,63.755v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E7EA;stroke:none;" d="M773.665,63.063v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7AAC5;stroke:none;" d="M773.665,63.755v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C93B0;stroke:none;" d="M773.665,63.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M772.321,63.063h0.672V62.39h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ACB5B9;stroke:none;" d="M772.993,63.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M772.321,63.063V62.39h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M773.665,62.39v0.673h0.69V62.39h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M770.96,63.755h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M771.631,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AFBCCA;stroke:none;" d="M770.96,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M770.96,63.063h0.671V62.39h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M770.96,63.063V62.39h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M770.96,65.102h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4DFE3;stroke:none;" d="M771.631,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B9ABE;stroke:none;" d="M770.96,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#899DC2;stroke:none;" d="M770.96,65.775v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#98A4C4;stroke:none;" d="M771.631,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3CFD6;stroke:none;" d="M771.631,64.429v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8F9FAF;stroke:none;" d="M771.631,65.102v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6A7497;stroke:none;" d="M773.665,64.429v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAD9DF;stroke:none;" d="M773.665,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#92A1A4;stroke:none;" d="M772.993,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#768997;stroke:none;" d="M773.665,65.102h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A688B;stroke:none;" d="M773.665,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7CBCE;stroke:none;" d="M772.321,65.102v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3D5DC;stroke:none;" d="M772.993,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#95A2C4;stroke:none;" d="M773.665,65.102v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8897B4;stroke:none;" d="M770.96,64.429v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF5;stroke:none;" d="M772.321,63.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2D5D3;stroke:none;" d="M772.321,65.775h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F6F7;stroke:none;" d="M773.665,63.755v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F6F6;stroke:none;" d="M770.289,62.39h-0.671v0.673h0.671V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8E8E8;stroke:none;" d="M768.928,63.063v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F8;stroke:none;" d="M768.928,63.755v-0.692V62.39h-0.672v1.365h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9AA2AC;stroke:none;" d="M769.618,63.063v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7E8798;stroke:none;" d="M770.289,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M769.618,63.063V62.39h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F8F8;stroke:none;" d="M769.618,63.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F9;stroke:none;" d="M767.584,63.063V62.39h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M767.584,62.39v0.673h-0.671v0.692h1.343V62.39h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M767.584,64.429h0.672v0.673h0.672v-0.673v-0.673h-0.672h-1.343v0.673v1.346v1.366v0.673h0.671v-0.673v-0.673v-0.693h0.672v-0.673h-0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F7F8;stroke:none;" d="M768.256,64.429h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M768.256,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M768.256,65.102v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8894AC;stroke:none;" d="M770.289,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M769.618,65.102v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B99B4;stroke:none;" d="M770.289,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C9EB8;stroke:none;" d="M770.289,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9FA;stroke:none;" d="M768.928,65.102v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M769.618,65.775h-0.69v0.693v0.673h0.69v-0.673v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M768.928,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8397AF;stroke:none;" d="M769.618,67.141h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8499AE;stroke:none;" d="M770.289,67.141h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5E759E;stroke:none;" d="M770.289,66.468v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF6;stroke:none;" d="M768.928,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8A9AB3;stroke:none;" d="M770.289,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M769.618,67.814v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M769.618,67.814h-0.69v0.691h0.69v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF9;stroke:none;" d="M768.928,67.814v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#849EC1;stroke:none;" d="M770.289,67.141v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M767.584,67.814h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF9;stroke:none;" d="M768.256,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9F7;stroke:none;" d="M767.584,67.141h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M767.584,69.179v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M767.584,69.852v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF8;stroke:none;" d="M767.584,69.179h0.672v-0.673h-0.672h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF9;stroke:none;" d="M768.256,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M768.256,68.505v0.673v0.673h0.672v-0.673v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F94B1;stroke:none;" d="M770.289,68.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B9AAF;stroke:none;" d="M770.289,69.179v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M769.618,69.179v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#909BAD;stroke:none;" d="M770.289,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8D0D6;stroke:none;" d="M770.289,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M768.928,69.179v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M769.618,69.852h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7E8EA5;stroke:none;" d="M770.289,69.179v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M767.584,68.505v-0.691h-0.671v0.691h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M768.928,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M768.928,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#889FBE;stroke:none;" d="M770.289,67.814v0.691h0.671v-0.691h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5F6C8F;stroke:none;" d="M772.993,67.141h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#586575;stroke:none;" d="M773.665,67.141h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0CFDA;stroke:none;" d="M772.993,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDE6E9;stroke:none;" d="M773.665,66.468v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCE7E9;stroke:none;" d="M772.321,67.141v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8A94B7;stroke:none;" d="M773.665,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAD8E0;stroke:none;" d="M772.993,67.814v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#989EC0;stroke:none;" d="M772.993,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#959FC1;stroke:none;" d="M772.321,67.814v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7DDE8;stroke:none;" d="M773.665,67.141v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E99B7;stroke:none;" d="M770.96,67.814h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F4F4;stroke:none;" d="M771.631,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#59638A;stroke:none;" d="M770.96,67.141h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M770.96,69.179v0.673h0.671v-0.673v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M771.631,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDD3DB;stroke:none;" d="M771.631,68.505v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFC;stroke:none;" d="M771.631,69.179v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8492A5;stroke:none;" d="M773.665,68.505v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8C1D8;stroke:none;" d="M773.665,69.179v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#686F8C;stroke:none;" d="M772.993,69.179v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#768099;stroke:none;" d="M773.665,69.179h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9AA3B4;stroke:none;" d="M773.665,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8BED1;stroke:none;" d="M772.321,69.179v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAFA;stroke:none;" d="M772.993,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF4F5;stroke:none;" d="M773.665,69.179v0.673h0.69v-0.673h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#767B8D;stroke:none;" d="M772.321,67.814h-0.69v0.691h0.69v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M772.321,69.852h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#828FA5;stroke:none;" d="M773.665,67.814v0.691h0.69v-0.691h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C82AB;stroke:none;" d="M770.96,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9D4DD;stroke:none;" d="M770.96,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1DDE2;stroke:none;" d="M773.665,65.775v0.693h0.69v-0.693h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M779.764,62.39h-0.69v0.673h0.69V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBFB;stroke:none;" d="M779.764,63.063h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M779.073,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1CDCD;stroke:none;" d="M779.764,63.755h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F6F6;stroke:none;" d="M779.764,63.063v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M780.435,62.39h-0.671v0.673h0.671V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF0;stroke:none;" d="M779.073,63.063V62.39h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6EAEB;stroke:none;" d="M780.435,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M777.731,63.755h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDE2E5;stroke:none;" d="M778.402,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M777.731,63.755v-0.692h-0.672h-0.691V62.39h-0.671v0.673v0.692h0.671h0.691h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F4;stroke:none;" d="M777.731,63.063h0.671V62.39h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M777.731,63.063V62.39h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#99A5BB;stroke:none;" d="M777.731,65.102h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A9B8D2;stroke:none;" d="M778.402,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF2F3;stroke:none;" d="M777.731,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9CBD1;stroke:none;" d="M777.731,65.775v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9BACCC;stroke:none;" d="M778.402,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A6885;stroke:none;" d="M778.402,64.429v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7A89AE;stroke:none;" d="M778.402,65.102v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F7C84;stroke:none;" d="M780.435,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AABABD;stroke:none;" d="M779.764,64.429h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF5F7;stroke:none;" d="M779.764,65.102h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F7F9;stroke:none;" d="M779.764,65.775h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4C1CE;stroke:none;" d="M780.435,65.102h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9AA7BA;stroke:none;" d="M780.435,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAFA;stroke:none;" d="M777.731,64.429v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7CFD6;stroke:none;" d="M779.073,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8395B7;stroke:none;" d="M779.073,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M777.06,62.39h-0.691v0.673h0.691V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F4F6;stroke:none;" d="M775.697,63.755v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6F7;stroke:none;" d="M777.06,63.755h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7D7DE;stroke:none;" d="M776.368,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M775.697,63.063V62.39h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M775.026,62.39h-0.671v0.673h0.671V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M775.026,63.063h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B3BABF;stroke:none;" d="M775.026,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AFB8C6;stroke:none;" d="M775.026,64.429h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M775.026,65.102h-0.671v0.673v0.693h0.671v-0.693v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEC6C5;stroke:none;" d="M775.026,64.429v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9FA;stroke:none;" d="M775.026,65.102v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A9AFCA;stroke:none;" d="M777.06,65.102v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B8AA9;stroke:none;" d="M776.368,65.102v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#525D7D;stroke:none;" d="M777.06,65.102h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C9BB8;stroke:none;" d="M777.06,65.775h-0.691v0.693h0.691v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E5ED;stroke:none;" d="M775.697,65.102v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M776.368,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEBFCF;stroke:none;" d="M775.697,63.755h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M775.697,65.775h-0.671v0.693h0.671v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9BACC0;stroke:none;" d="M776.368,67.141h0.691v-0.673h-0.691v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8899A9;stroke:none;" d="M777.06,67.141h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9F5;stroke:none;" d="M776.368,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7180A2;stroke:none;" d="M777.06,66.468v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M775.697,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5D6480;stroke:none;" d="M777.06,67.814h-0.691v0.691h0.691v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M776.368,67.814v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5DBDF;stroke:none;" d="M776.368,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9E5;stroke:none;" d="M775.697,67.814v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7B8BB2;stroke:none;" d="M777.06,67.141v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M774.355,67.814h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF4F5;stroke:none;" d="M775.026,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F8F8;stroke:none;" d="M774.355,67.141h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8A98A1;stroke:none;" d="M774.355,69.179h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9FA;stroke:none;" d="M775.026,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M775.026,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A2ADB3;stroke:none;" d="M775.026,68.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6CFD3;stroke:none;" d="M775.026,69.179v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F6F7;stroke:none;" d="M777.06,68.505v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A4ACB9;stroke:none;" d="M777.06,69.179v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7E8691;stroke:none;" d="M776.368,69.179v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F8F6;stroke:none;" d="M777.06,69.179h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M777.06,69.852h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAFA;stroke:none;" d="M775.697,69.179v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAFA;stroke:none;" d="M776.368,69.852h-0.671v0.673v0.693h0.671v-0.693v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M777.06,69.179v0.673h0.672h0.671v-0.673h-0.671h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M775.697,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M775.697,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDC4D8;stroke:none;" d="M777.06,67.814v0.691h0.672v-0.691h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#919CB3;stroke:none;" d="M780.435,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6D7C9F;stroke:none;" d="M779.764,67.141v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A1ACD0;stroke:none;" d="M779.764,67.141h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5C6C8A;stroke:none;" d="M779.073,67.141v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F6F7;stroke:none;" d="M779.764,67.814h-0.69v0.691h0.69v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#757F98;stroke:none;" d="M779.764,67.141v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7D8FA7;stroke:none;" d="M779.073,67.814v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#939AB6;stroke:none;" d="M780.435,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9CADCD;stroke:none;" d="M777.731,67.814h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A0A7C3;stroke:none;" d="M778.402,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A6B6D3;stroke:none;" d="M777.731,67.141h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2BAC5;stroke:none;" d="M777.731,69.179h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F7F2;stroke:none;" d="M778.402,69.852h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#78808D;stroke:none;" d="M778.402,68.505v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF2EF;stroke:none;" d="M778.402,69.179v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F8F9;stroke:none;" d="M780.435,69.179v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M779.764,68.505h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M779.764,69.179h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9F7;stroke:none;" d="M780.435,69.179h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F86A2;stroke:none;" d="M779.073,67.814h-0.671v0.691h0.671v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7989A0;stroke:none;" d="M777.731,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAF5;stroke:none;" d="M777.731,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6EEF0;stroke:none;" d="M774.355,61.718h-0.69v0.672h0.69v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7B8493;stroke:none;" d="M774.355,69.852h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M780.435,70.525v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M780.435,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M779.764,71.218v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M779.764,71.218h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M779.073,71.218v-0.693h-0.671h-0.671h-0.672v0.693h0.672h0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M779.764,71.891h-0.69v0.673h0.69h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M779.764,71.218v0.673h0.671h0.672v-0.673h-0.672h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M777.731,71.891h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M778.402,71.891h-0.671h-0.672v0.673h0.672h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F8;stroke:none;" d="M777.731,71.891v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M777.731,73.256h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F6F2;stroke:none;" d="M777.731,73.256v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFA;stroke:none;" d="M778.402,72.564v0.692h0.671v-0.692h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8F4;stroke:none;" d="M779.764,72.564h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M780.435,72.564h-0.671v0.692h1.343v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M779.073,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F4F4;stroke:none;" d="M780.435,71.891v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;stroke:none;" d="M776.368,71.218h0.691v-0.693h-0.691v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M777.06,71.218h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F7F8;stroke:none;" d="M775.697,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;stroke:none;" d="M777.06,71.891h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DADBDE;stroke:none;" d="M776.368,71.891v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7C8CB;stroke:none;" d="M776.368,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E929B;stroke:none;" d="M775.697,71.891v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#878D99;stroke:none;" d="M774.355,71.891h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M775.026,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F6F7;stroke:none;" d="M774.355,71.891v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E96A1;stroke:none;" d="M774.355,71.218h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7C838E;stroke:none;" d="M774.355,71.218v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M774.355,73.256h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M774.355,73.256v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6F7;stroke:none;" d="M776.368,72.564h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M777.06,72.564h-0.691v0.692h0.691v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF2F2;stroke:none;" d="M774.355,72.564v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CACDD3;stroke:none;" d="M775.697,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M773.665,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M772.993,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF2F1;stroke:none;" d="M773.665,71.218h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;stroke:none;" d="M772.321,71.218v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M773.665,71.891h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M772.321,71.218v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAF8;stroke:none;" d="M772.321,71.891v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF3E8;stroke:none;" d="M772.993,71.891h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M770.96,71.891h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M771.631,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M770.96,71.891v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M770.96,71.218h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M770.96,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF5;stroke:none;" d="M770.96,73.256v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF7;stroke:none;" d="M771.631,72.564v0.692h0.69v-0.692h-0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF0;stroke:none;" d="M772.993,72.564h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F1;stroke:none;" d="M773.665,72.564h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M770.96,72.564v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M772.321,71.891h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F9FA;stroke:none;" d="M769.618,71.218h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M770.289,71.218h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M769.618,71.218v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M768.928,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M770.289,71.891h-0.671v0.673v0.692h0.671v-0.692v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFA;stroke:none;" d="M769.618,71.891h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M768.256,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M767.584,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F6;stroke:none;" d="M769.618,72.564h-0.69v0.692h0.69v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M793.976,71.891v-0.673h-0.689h-0.672v0.673h0.672h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M793.976,71.218v-0.693h-0.689v0.693h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M793.976,71.891h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M793.286,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F2F4;stroke:none;" d="M791.942,70.525v0.693h0.672v-0.693h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6EDE8;stroke:none;" d="M791.942,71.218v-0.693h-0.689v0.693h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M792.614,71.218h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE686B;stroke:none;" d="M791.253,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M792.614,71.891h-0.672v0.673h0.672h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F5EF;stroke:none;" d="M791.942,71.218h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CB7C81;stroke:none;" d="M791.253,71.891v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M791.942,71.891h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F7F4;stroke:none;" d="M791.253,73.256h0.689v-0.692h-0.689v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7EFE8;stroke:none;" d="M791.253,73.256v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M792.614,72.564h-0.672v0.692h0.672v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M792.614,72.564v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFC;stroke:none;" d="M793.976,72.564h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6D4D5;stroke:none;" d="M791.253,72.564v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2D8CE;stroke:none;" d="M790.581,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M789.91,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F8;stroke:none;" d="M789.91,71.218h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F5F6;stroke:none;" d="M789.239,71.218v-0.693h-0.691v0.693h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEDDDF;stroke:none;" d="M789.91,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2C1BB;stroke:none;" d="M789.91,71.218v0.673h0.671v-0.673h-0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M789.239,71.891v-0.673h-0.691v0.673h0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B09991;stroke:none;" d="M790.581,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F5F2;stroke:none;" d="M787.877,71.891h0.671v-0.673h-0.671v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M788.548,71.891h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M787.877,71.891v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M787.877,71.218h0.671v-0.693h-0.671v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M787.877,71.218v-0.693h-0.671v0.693h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M787.877,73.256h0.671v-0.692h-0.671v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFA;stroke:none;" d="M787.877,73.256v-0.692h-0.671v0.692h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M788.548,72.564v0.692h0.691v-0.692h-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2EAE9;stroke:none;" d="M789.91,72.564h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF0;stroke:none;" d="M790.581,72.564h-0.671v0.692h0.671v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFA;stroke:none;" d="M787.877,72.564v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M789.239,71.891h-0.691v0.673h0.691v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M787.206,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M786.534,70.525h-0.69v0.693h0.69v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M786.534,71.218h-0.69v0.673h1.362v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M785.844,71.891v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M787.206,71.891h-1.362h-0.671v0.673h2.033v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M784.501,71.891h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M785.173,71.891h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M784.501,71.891v-0.673h-0.69v-0.693h-0.671v0.693v0.673h0.671h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M784.501,71.218v-0.693h-0.69v0.693h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M784.501,73.256h0.672v-0.692h-0.672v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M784.501,73.256v-0.692h-0.69v0.692h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF8;stroke:none;" d="M785.173,72.564v0.692h2.033v-0.692h-2.033z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M784.501,72.564v-0.673h-0.69v0.673h0.69z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M782.469,71.218h0.671v-0.693h-1.343v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M783.14,71.218h-0.671v0.673h0.671v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M783.14,71.891h-0.671v1.366h0.671v-1.366z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F5;stroke:none;" d="M782.469,71.891v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M781.106,71.891h0.69v-0.673h-0.69v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M781.797,71.891h-0.69v0.673h0.69v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M781.106,71.218h0.69v-0.693h-0.69v0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAF6;stroke:none;" d="M781.106,73.256h0.69v-0.692h-0.69v0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M767.584,70.525v-0.673h-0.671v0.673h0.671z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M766.913,57.64h-0.689v0.673h0.689V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M765.552,57.64h0.672v-0.673h-0.672v0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M766.224,57.64h-0.672v0.673h0.672V57.64z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M766.913,58.313h-0.689v0.692h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M765.552,59.005v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M766.913,59.005h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9FA;stroke:none;" d="M766.913,59.679h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M766.224,59.005v-0.692h-0.672v0.692h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M766.224,59.679h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M766.913,60.352h-0.689h-0.672v0.692h0.672h0.689v-0.692z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFA;stroke:none;" d="M765.552,61.044v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M766.913,61.718h-0.689v0.672v0.673h0.689V62.39v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF2;stroke:none;" d="M766.224,61.718h-0.672v0.672h0.672v-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFA;stroke:none;" d="M765.552,63.063v0.692h0.672v-0.692h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M766.913,63.755v-0.692h-0.689v0.692h0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF9;stroke:none;" d="M766.913,63.755h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFB;stroke:none;" d="M766.224,62.39h-0.672v0.673h0.672V62.39z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F2;stroke:none;" d="M766.224,63.755h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M766.913,64.429h-0.689v0.673v0.673h0.689v-1.346z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF3;stroke:none;" d="M766.224,65.102v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M766.913,65.775h-0.689v0.693v0.673h0.689v-1.366z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF5;stroke:none;" d="M765.552,65.102v0.673h0.672v-0.673h-0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF9;stroke:none;" d="M766.224,65.775h-0.672v0.693h0.672v-0.693z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M766.913,67.141h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M766.224,67.141v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M766.913,67.814h-0.689v0.691h0.689v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M766.224,67.814v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M766.224,67.814h-0.672v0.691h0.672v-0.691z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF9;stroke:none;" d="M766.913,69.179v-0.673h-0.689v0.673v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M766.224,69.179v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFC;stroke:none;" d="M766.913,69.852h-0.689v0.673h0.689v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M766.224,69.179h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M766.224,69.852h-0.672v0.673h0.672v-0.673z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M766.224,70.525v0.693v0.673h0.689v-0.673v-0.693h-0.689z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M766.224,71.218v-0.693h-0.672v0.693h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M766.224,71.891v-0.673h-0.672v0.673h0.672z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M17.599,0H9.147v8.474h1.049h1.049h1.079h1.049h1.049h1.079h1.049v1.082v1.051h1.049V9.556V8.474V7.422V6.37V5.318V4.236V3.185h1.049h1.079V2.133h1.049h1.049V1.052h-1.049h-1.049V0
+ h-1.079v1.052v1.081h-1.049V1.052V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFB;stroke:none;" d="M17.599,0v1.052h1.049V0h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M17.599,1.052v1.081h1.049V1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M17.599,3.185v1.052h1.049V3.185h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M17.599,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M17.599,6.37v1.052h1.049V6.37h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF8;stroke:none;" d="M17.599,7.422v1.052h1.049V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF3;stroke:none;" d="M15.501,8.474h-1.079v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF5;stroke:none;" d="M14.422,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M15.501,9.556v1.051h1.049V9.556h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF6;stroke:none;" d="M15.501,10.606V9.556h-1.079v1.051h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF5;stroke:none;" d="M14.422,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF8;stroke:none;" d="M15.501,10.606h-1.079h-1.049v1.052h1.049h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M13.373,10.606V9.556h-1.049v2.103h-1.079v-1.052h-1.049v2.104v1.082h1.049v1.052h-1.049H9.147v2.134h1.049v-1.082h1.049h1.079v-1.052v-1.052V12.71h1.049v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF8;stroke:none;" d="M15.501,11.658h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M15.501,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M14.422,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E2E8;stroke:none;" d="M17.599,10.606H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4C1D5;stroke:none;" d="M17.599,11.658H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1B2C4;stroke:none;" d="M17.599,9.556v1.051h1.049V9.556h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEAFD3;stroke:none;" d="M17.599,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M13.373,9.556V8.474h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8F4;stroke:none;" d="M16.55,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDECEF;stroke:none;" d="M16.55,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6F0F2;stroke:none;" d="M17.599,8.474v1.082h1.049V8.474h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M12.324,8.474h-1.079v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M11.245,8.474h-1.049v2.133h1.049v1.052h1.079V9.556h-1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M10.196,8.474H9.147v4.236h1.049v-2.104V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M12.324,13.792v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M12.324,12.71v1.082h1.049V12.71h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M10.196,13.792v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M10.196,14.844v-1.052V12.71H9.147v2.134h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M9.147,16.978v1.052h1.049v-1.052H9.147z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M12.324,15.896v1.082h1.049v-1.082v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;stroke:none;" d="M12.324,16.978v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M11.245,15.896h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF7;stroke:none;" d="M11.245,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF7;stroke:none;" d="M11.245,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M12.324,16.978h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF9;stroke:none;" d="M12.324,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF6;stroke:none;" d="M12.324,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M10.196,18.029H9.147v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5B519E;stroke:none;" d="M17.599,13.792v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9892BD;stroke:none;" d="M17.599,14.844v-1.052H16.55v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9081AC;stroke:none;" d="M17.599,12.71v1.082h1.049V12.71h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B3AED0;stroke:none;" d="M17.599,13.792V12.71H16.55v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7670A4;stroke:none;" d="M17.599,14.844H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0BCD1;stroke:none;" d="M16.55,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6D5E0;stroke:none;" d="M16.55,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M15.501,12.71h-1.079v1.082h1.079V12.71z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF8;stroke:none;" d="M14.422,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M15.501,13.792h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECEBEE;stroke:none;" d="M15.501,14.844h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M14.422,13.792h-1.049v1.052v1.052h1.049v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ADA9CC;stroke:none;" d="M15.501,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBDCE1;stroke:none;" d="M15.501,16.978v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAF5;stroke:none;" d="M14.422,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4B8C2;stroke:none;" d="M15.501,16.978h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5C8D4;stroke:none;" d="M15.501,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1B5CB;stroke:none;" d="M15.501,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M14.422,16.978h-1.049v1.052v1.052h1.049v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#68609B;stroke:none;" d="M17.599,15.896H16.55v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A5E7F;stroke:none;" d="M17.599,16.978H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5F6288;stroke:none;" d="M17.599,18.029H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B77A41;stroke:none;" d="M17.599,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B78145;stroke:none;" d="M17.599,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AFACCB;stroke:none;" d="M16.55,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6BAD2;stroke:none;" d="M16.55,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#76677E;stroke:none;" d="M17.599,14.844v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M13.373,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFC7BB;stroke:none;" d="M17.599,11.658v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M17.599,5.318V6.37h1.049V5.318h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#553870;stroke:none;" d="M17.599,20.133v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A5A5CD;stroke:none;" d="M17.599,21.214v-1.081H16.55v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#995D41;stroke:none;" d="M17.599,19.081v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#696B97;stroke:none;" d="M17.599,20.133v-1.052H16.55v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A0A0C9;stroke:none;" d="M17.599,21.214H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5F628B;stroke:none;" d="M16.55,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9A9DBF;stroke:none;" d="M16.55,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1C3D4;stroke:none;" d="M15.501,19.081h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M14.422,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9A9CB8;stroke:none;" d="M15.501,20.133h-1.079v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M13.373,20.133v-1.052h-1.049v2.133h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ABACC9;stroke:none;" d="M15.501,21.214h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M14.422,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDEDF1;stroke:none;" d="M14.422,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#313463;stroke:none;" d="M15.501,22.266v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0D1E2;stroke:none;" d="M15.501,23.317v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CECFD9;stroke:none;" d="M14.422,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEEDF2;stroke:none;" d="M15.501,23.317h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#989A9F;stroke:none;" d="M13.373,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M15.501,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6D8E0;stroke:none;" d="M13.373,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0E0E1;stroke:none;" d="M13.373,24.399v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7A9B6;stroke:none;" d="M14.422,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#414371;stroke:none;" d="M15.501,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4C4C85;stroke:none;" d="M17.599,22.266H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#41417A;stroke:none;" d="M17.599,23.317H16.55v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#333369;stroke:none;" d="M17.599,24.399H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9C6D5;stroke:none;" d="M17.599,22.266v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#857EAB;stroke:none;" d="M17.599,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3C4CA;stroke:none;" d="M13.373,22.266v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#454775;stroke:none;" d="M16.55,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#60618F;stroke:none;" d="M16.55,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B8BB9;stroke:none;" d="M17.599,21.214v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M11.245,19.081h-1.049H9.147v1.052h1.049h1.049v1.081h1.079v-2.133h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M11.245,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M11.245,21.214h-1.049H9.147v1.052h1.049v1.052h1.049v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M10.196,21.214v-1.081H9.147v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M12.324,21.214h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M9.147,22.266v1.052h1.049v-1.052H9.147z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M9.147,23.317v1.082h1.049v-1.082H9.147z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F6F6;stroke:none;" d="M12.324,23.317v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M11.245,23.317h-1.049v1.082H9.147v1.052h2.098v-1.052v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M12.324,23.317h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF9;stroke:none;" d="M12.324,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAEBEB;stroke:none;" d="M12.324,25.451v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M12.324,26.503v-1.052h-1.079v2.104h1.079v1.081h1.049v-1.081v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFC;stroke:none;" d="M10.196,28.636h1.049v-1.081h-1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M11.245,28.636h-1.049v2.104v1.052v1.082h1.049v-1.082v-1.052v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M10.196,28.636v-1.081H9.147v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M10.196,27.555h1.049v-2.104H9.147v1.052h1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAF8;stroke:none;" d="M11.245,27.555v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M10.196,27.555v-1.052H9.147v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M12.324,28.636h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M9.147,30.739v1.052h1.049v-1.052H9.147z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M12.324,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFC;stroke:none;" d="M12.324,30.739v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F6;stroke:none;" d="M11.245,31.791h1.079v-1.052h-1.079v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF7;stroke:none;" d="M12.324,31.791h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M12.324,30.739v1.052v1.082h-1.079v1.052h2.128v-1.052v-1.082v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M10.196,28.636H9.147v2.104h1.049v-2.104z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M10.196,31.791H9.147v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M12.324,28.636v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7C7B9B;stroke:none;" d="M17.599,25.451v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#30304F;stroke:none;" d="M17.599,26.503v-1.052H16.55v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFBFD1;stroke:none;" d="M16.55,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BABACF;stroke:none;" d="M16.55,27.555v1.081h1.049v-1.081H16.55z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M16.55,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A5D86;stroke:none;" d="M17.599,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A5C8C;stroke:none;" d="M17.599,26.503v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A5A76;stroke:none;" d="M17.599,27.555v-1.052H16.55v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M17.599,28.636H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F0F3;stroke:none;" d="M16.55,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F1F4;stroke:none;" d="M15.501,26.503v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6D8E0;stroke:none;" d="M15.501,26.503h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ACACB3;stroke:none;" d="M14.422,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E5E7;stroke:none;" d="M13.373,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6B9C4;stroke:none;" d="M14.422,28.636h1.079v-1.081h-1.079v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ABAEB7;stroke:none;" d="M15.501,28.636h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4C4CA;stroke:none;" d="M14.422,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M14.422,28.636h-1.049v1.052v1.052v1.052h1.049v-1.052v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDD0D4;stroke:none;" d="M15.501,29.688h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBCED3;stroke:none;" d="M15.501,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M15.501,31.791v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M15.501,31.791h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F6F3;stroke:none;" d="M14.422,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9EA0AD;stroke:none;" d="M15.501,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFEEF2;stroke:none;" d="M17.599,29.688H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8CAD2;stroke:none;" d="M17.599,30.739H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9CCD2;stroke:none;" d="M17.599,31.791H16.55v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFEAEA;stroke:none;" d="M17.599,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F1F5;stroke:none;" d="M17.599,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDBECD;stroke:none;" d="M16.55,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F8F8;stroke:none;" d="M16.55,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0BEC9;stroke:none;" d="M17.599,28.636v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1E1E2;stroke:none;" d="M13.373,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#787DA3;stroke:none;" d="M17.599,24.399v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F3F4;stroke:none;" d="M17.599,32.873H16.55v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M16.55,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M17.599,33.925H16.55h-1.049h-1.079h-1.049h-2.128h-1.049H9.147v24.37h8.451v-1.052v-1.052V55.14v-1.082v-1.052v-1.052v-1.082h1.049v-8.474h-1.049v-1.052v-1.052h1.049h1.079v-1.081
+ h-2.127V37.11v-1.052v-1.082v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9FB5C5;stroke:none;" d="M17.599,32.873v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M17.599,33.925v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M15.501,33.925v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF8;stroke:none;" d="M14.422,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M17.599,36.059v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M17.599,34.977v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M10.196,32.873H9.147v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFA;stroke:none;" d="M10.196,32.873v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M17.599,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M17.599,41.347v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M17.599,37.11v2.104h2.127v-1.052V37.11h-1.079h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#979BB4;stroke:none;" d="M17.599,31.791v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B77135;stroke:none;" d="M17.599,18.029v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M54.609,0H53.53v1.052h1.079V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M53.53,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M54.609,1.052H53.53v1.081h1.079V1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M53.53,2.133V1.052h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F9EE;stroke:none;" d="M54.609,2.133H53.53v1.052h1.079V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF0;stroke:none;" d="M54.609,0v1.052h1.049V0h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M54.609,1.052v1.081h1.049V1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M51.433,0h-1.049v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F8E9;stroke:none;" d="M51.433,1.052h-1.049v1.081h1.049V1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAE8;stroke:none;" d="M50.384,2.133V1.052h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M51.433,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M51.433,1.052v1.081h1.049V1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M52.481,0h-1.049v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M50.384,1.052V0h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M52.481,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M51.433,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1CDDC;stroke:none;" d="M51.433,4.236h-1.049v1.082h1.049V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E2E5;stroke:none;" d="M50.384,5.318V4.236h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0DCB9;stroke:none;" d="M51.433,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5CCD4;stroke:none;" d="M51.433,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDDFA1;stroke:none;" d="M52.481,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F7F2;stroke:none;" d="M52.481,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M50.384,4.236V3.185h-1.079h-1.049v1.052h1.049h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DA88;stroke:none;" d="M52.481,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F7F1;stroke:none;" d="M52.481,3.185v1.052h1.049V3.185h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F8;stroke:none;" d="M54.609,3.185H53.53v1.052h1.079V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFDAC8;stroke:none;" d="M54.609,4.236H53.53v1.082h1.079V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DA8F;stroke:none;" d="M54.609,5.318H53.53V6.37h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F4E0;stroke:none;" d="M54.609,3.185v1.052h1.049V3.185h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAD4CC;stroke:none;" d="M54.609,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M50.384,3.185V2.133h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M53.53,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3DE7E;stroke:none;" d="M53.53,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M54.609,2.133v1.052h1.049V2.133h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M60.933,0h-1.049v1.052v1.081h1.049V1.052V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M58.835,1.052v1.081h1.049V1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M58.835,2.133V1.052h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M60.933,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M60.933,1.052v1.081h1.079h1.049V1.052h-1.049h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M59.884,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAEF;stroke:none;" d="M59.884,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF5;stroke:none;" d="M58.835,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF7;stroke:none;" d="M60.933,0v1.052h1.079V0h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBEC;stroke:none;" d="M56.707,0h-1.049v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M55.658,2.133h1.049V1.052h-1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M56.707,2.133h-1.049v1.052h1.049h1.079V2.133h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9FA;stroke:none;" d="M56.707,1.052v1.081h1.079V1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M57.786,0h-1.079v1.052h1.079V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F6E4;stroke:none;" d="M56.707,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED9B4;stroke:none;" d="M56.707,4.236h-1.049v1.082h1.049V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD891;stroke:none;" d="M56.707,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7EB9E;stroke:none;" d="M56.707,4.236v1.082h1.079V4.236h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF09E;stroke:none;" d="M57.786,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M57.786,3.185h-1.079v1.052h1.079V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0D6BD;stroke:none;" d="M57.786,5.318h-1.079V6.37h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF9;stroke:none;" d="M57.786,3.185v1.052h1.049V3.185h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M60.933,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDDEEB;stroke:none;" d="M58.835,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M60.933,4.236v1.082h1.079h1.049V4.236h-1.049h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M60.933,5.318V4.236h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4BDC4;stroke:none;" d="M60.933,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M58.835,4.236h1.049V3.185h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2CBAE;stroke:none;" d="M59.884,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M60.933,3.185v1.052h1.079V3.185h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M58.835,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD7AE;stroke:none;" d="M58.835,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAF5;stroke:none;" d="M60.933,2.133v1.052h1.079V2.133h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD97C;stroke:none;" d="M55.658,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4FAFA;stroke:none;" d="M44.03,0h-1.049v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M42.981,1.052V0h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F7EF;stroke:none;" d="M44.03,1.052h-1.049v1.081h1.049V1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M42.981,2.133V1.052h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M44.03,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M44.03,0v1.052h1.049V0H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M44.03,1.052v1.081h1.049V1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF5;stroke:none;" d="M40.854,0h-1.049v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF8;stroke:none;" d="M39.805,2.133h1.049V1.052h-1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M40.854,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF1;stroke:none;" d="M39.805,2.133V1.052h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M40.854,1.052v1.081h1.049V1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF2;stroke:none;" d="M41.903,0h-1.049v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M39.805,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M41.903,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M40.854,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F8F8;stroke:none;" d="M40.854,4.236h-1.049v1.082h1.049V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF9;stroke:none;" d="M39.805,5.318V4.236h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M40.854,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAFA;stroke:none;" d="M40.854,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M41.903,4.236v1.082h1.079V4.236h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M41.903,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M39.805,4.236V3.185h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F1;stroke:none;" d="M41.903,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M41.903,3.185v1.052h1.079V3.185h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F6F7;stroke:none;" d="M44.03,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAEF;stroke:none;" d="M44.03,4.236h-1.049v1.082h1.049V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M44.03,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M44.03,3.185v1.052h1.049V3.185H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M44.03,4.236v1.082h1.049V4.236H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M39.805,3.185V2.133h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF8;stroke:none;" d="M42.981,2.133h-1.079v1.052h1.079V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAFB;stroke:none;" d="M42.981,5.318h-1.079V6.37h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F4;stroke:none;" d="M44.03,2.133v1.052h1.049V2.133H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF0;stroke:none;" d="M49.305,2.133V1.052h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F8;stroke:none;" d="M49.305,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M49.305,2.133h-1.049h-1.049v1.052h1.049h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M48.256,2.133V1.052h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M48.256,1.052V0h-2.098v1.052h1.049h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAFA;stroke:none;" d="M46.158,0H45.08v1.052h1.079V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M45.08,2.133h1.079V1.052H45.08v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F6F7;stroke:none;" d="M46.158,2.133H45.08v1.052h1.079V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M46.158,1.052v1.081h1.049V1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M47.207,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M46.158,3.185H45.08v1.052h1.079V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F7ED;stroke:none;" d="M46.158,4.236H45.08v1.082h1.079V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F6F7;stroke:none;" d="M46.158,5.318H45.08V6.37h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9E0;stroke:none;" d="M46.158,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M47.207,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M47.207,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E2C7;stroke:none;" d="M47.207,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M47.207,3.185v1.052h1.049V3.185h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE5EE;stroke:none;" d="M49.305,4.236h-1.049v1.082h1.049V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4A3C2;stroke:none;" d="M49.305,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4BEA4;stroke:none;" d="M48.256,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M45.08,5.318H44.03V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EED1A9;stroke:none;" d="M49.305,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7B536;stroke:none;" d="M48.256,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8DD9B;stroke:none;" d="M49.305,7.422h-1.049v1.052h1.049V7.422z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9D25A;stroke:none;" d="M48.256,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1A881;stroke:none;" d="M49.305,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECD4B1;stroke:none;" d="M49.305,6.37v1.052h1.079V6.37h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4C645;stroke:none;" d="M49.305,7.422v1.052h1.079V7.422h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0C1BA;stroke:none;" d="M46.158,6.37H45.08v1.052h1.079V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A78987;stroke:none;" d="M45.08,8.474h1.079V7.422H45.08v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F8394;stroke:none;" d="M46.158,8.474H45.08v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A28EC1;stroke:none;" d="M45.08,8.474V7.422H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9AE22;stroke:none;" d="M46.158,7.422v1.052h1.049V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B3A352;stroke:none;" d="M47.207,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDEEE9;stroke:none;" d="M45.08,7.422V6.37H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2B3AB;stroke:none;" d="M47.207,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9D6E4;stroke:none;" d="M47.207,9.556v1.051h1.049V9.556h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1E1E6;stroke:none;" d="M47.207,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9BDD5;stroke:none;" d="M45.08,10.606h1.079V9.556H45.08v1.051z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D9FC7;stroke:none;" d="M46.158,10.606H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8189B3;stroke:none;" d="M45.08,10.606V9.556H44.03v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#696CA4;stroke:none;" d="M46.158,11.658H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0B6D2;stroke:none;" d="M47.207,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#999DC0;stroke:none;" d="M45.08,11.658v-1.052H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7A87AE;stroke:none;" d="M47.207,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8D0DD;stroke:none;" d="M47.207,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9F9494;stroke:none;" d="M49.305,9.556h-1.049v1.051h1.049V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1BAC9;stroke:none;" d="M49.305,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDDFE1;stroke:none;" d="M49.305,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BBA744;stroke:none;" d="M49.305,9.556v1.051h1.079V9.556h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9A366;stroke:none;" d="M49.305,10.606v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6E77AD;stroke:none;" d="M45.08,9.556V8.474H44.03v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1CCD4;stroke:none;" d="M48.256,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1C4C9;stroke:none;" d="M48.256,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D73A;stroke:none;" d="M49.305,8.474v1.082h1.079V8.474h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBE4D3;stroke:none;" d="M44.03,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFA;stroke:none;" d="M44.03,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6A7FAB;stroke:none;" d="M44.03,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M42.981,8.474V7.422h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F7;stroke:none;" d="M42.981,7.422V6.37h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8E0;stroke:none;" d="M40.854,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EED094;stroke:none;" d="M40.854,7.422h-1.049v1.052h1.049V7.422z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1BA18;stroke:none;" d="M39.805,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5A733;stroke:none;" d="M40.854,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F2F2;stroke:none;" d="M40.854,7.422v1.052h1.049V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAE7;stroke:none;" d="M41.903,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8E1BD;stroke:none;" d="M39.805,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0B5B0;stroke:none;" d="M41.903,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BBB694;stroke:none;" d="M41.903,9.556v1.051h1.079V9.556h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6998F;stroke:none;" d="M41.903,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6C272;stroke:none;" d="M40.854,9.556h-1.049v1.051h1.049V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDD05F;stroke:none;" d="M39.805,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1D292;stroke:none;" d="M40.854,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6BF1A;stroke:none;" d="M40.854,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DACF6A;stroke:none;" d="M41.903,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4D78B;stroke:none;" d="M39.805,11.658v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5CB83;stroke:none;" d="M41.903,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCC0C6;stroke:none;" d="M41.903,10.606v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6D7E9C;stroke:none;" d="M44.03,9.556h-1.049v1.051h1.049V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDC9D4;stroke:none;" d="M44.03,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7BDC9;stroke:none;" d="M44.03,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8BC10;stroke:none;" d="M39.805,9.556V8.474h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E5EB;stroke:none;" d="M42.981,8.474h-1.079v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5D0E1;stroke:none;" d="M42.981,11.658h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0B3C9;stroke:none;" d="M44.03,13.792v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9BDC7;stroke:none;" d="M44.03,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A4A5C1;stroke:none;" d="M44.03,12.71v1.082h1.049V12.71H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4B6C1;stroke:none;" d="M44.03,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9EA5BC;stroke:none;" d="M44.03,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A5937B;stroke:none;" d="M42.981,14.844v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AD9FC1;stroke:none;" d="M42.981,13.792V12.71h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A484B5;stroke:none;" d="M41.903,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFB22A;stroke:none;" d="M39.805,13.792h1.049V12.71h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BC9F82;stroke:none;" d="M40.854,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8B02C;stroke:none;" d="M39.805,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9A86B3;stroke:none;" d="M40.854,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A39088;stroke:none;" d="M41.903,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4A571;stroke:none;" d="M39.805,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8F89A3;stroke:none;" d="M41.903,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#627CA4;stroke:none;" d="M41.903,15.896v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C7CB2;stroke:none;" d="M41.903,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9E91C0;stroke:none;" d="M39.805,16.978h1.049v-1.082h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B85B2;stroke:none;" d="M40.854,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9AA38;stroke:none;" d="M39.805,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8186A6;stroke:none;" d="M40.854,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#698BB7;stroke:none;" d="M41.903,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D87B5;stroke:none;" d="M39.805,18.029v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6181AD;stroke:none;" d="M41.903,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#666FB1;stroke:none;" d="M41.903,16.978v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7D83AB;stroke:none;" d="M44.03,15.896h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7C7094;stroke:none;" d="M44.03,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6E698F;stroke:none;" d="M44.03,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1B3D5;stroke:none;" d="M44.03,15.896v1.082h1.049v-1.082H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A5A8CE;stroke:none;" d="M44.03,16.978v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5B22C;stroke:none;" d="M39.805,15.896v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7B7198;stroke:none;" d="M42.981,14.844h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#686CAB;stroke:none;" d="M42.981,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2B4CE;stroke:none;" d="M44.03,14.844v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DEE8;stroke:none;" d="M49.305,13.792v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#949FC5;stroke:none;" d="M49.305,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9CEB6;stroke:none;" d="M49.305,12.71v1.082h1.079V12.71h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1BAC9;stroke:none;" d="M49.305,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8F9EC2;stroke:none;" d="M49.305,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8092BC;stroke:none;" d="M48.256,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#91A9B9;stroke:none;" d="M48.256,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7D8BB7;stroke:none;" d="M47.207,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#777AAF;stroke:none;" d="M45.08,13.792h1.079V12.71H45.08v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#787BAB;stroke:none;" d="M46.158,13.792H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8F92B7;stroke:none;" d="M46.158,14.844H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7580B5;stroke:none;" d="M47.207,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6D75AA;stroke:none;" d="M47.207,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7785B5;stroke:none;" d="M47.207,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5F658D;stroke:none;" d="M47.207,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A8AAC2;stroke:none;" d="M45.08,16.978h1.079v-1.082H45.08v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8A9CBB;stroke:none;" d="M46.158,16.978H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#98A9C3;stroke:none;" d="M46.158,18.029H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#56669D;stroke:none;" d="M47.207,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5F6B9F;stroke:none;" d="M47.207,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#777FAA;stroke:none;" d="M47.207,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A9BEC7;stroke:none;" d="M49.305,15.896h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8DBE0;stroke:none;" d="M49.305,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1D4DC;stroke:none;" d="M49.305,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAD6D2;stroke:none;" d="M49.305,15.896v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9BA0C5;stroke:none;" d="M49.305,16.978v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7886BB;stroke:none;" d="M48.256,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B8EB7;stroke:none;" d="M48.256,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CACBDD;stroke:none;" d="M49.305,14.844v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5BF10;stroke:none;" d="M39.805,12.71v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#878BAA;stroke:none;" d="M45.08,11.658H44.03v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7C9E2;stroke:none;" d="M45.08,18.029H44.03v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6C790;stroke:none;" d="M49.305,11.658v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAA3AB;stroke:none;" d="M60.933,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED9B2;stroke:none;" d="M58.835,7.422v1.052h1.049V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4D962;stroke:none;" d="M58.835,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BCB7B3;stroke:none;" d="M60.933,7.422v1.052h1.079V7.422h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9D3D8;stroke:none;" d="M60.933,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDE1DD;stroke:none;" d="M60.933,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1D9C8;stroke:none;" d="M58.835,7.422h1.049V6.37h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0DA28;stroke:none;" d="M59.884,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7CBBD;stroke:none;" d="M58.835,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6B2AE;stroke:none;" d="M60.933,6.37v1.052h1.079V6.37h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDB9AE;stroke:none;" d="M56.707,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDC2CE;stroke:none;" d="M55.658,8.474h1.049V7.422h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBD47A;stroke:none;" d="M56.707,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5C3D1;stroke:none;" d="M55.658,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4DF1A;stroke:none;" d="M56.707,7.422v1.052h1.079V7.422h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CDC19B;stroke:none;" d="M57.786,6.37h-1.079v1.052h1.079V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8C974;stroke:none;" d="M55.658,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DD35;stroke:none;" d="M57.786,8.474h-1.079v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDE017;stroke:none;" d="M57.786,9.556v1.051h1.049V9.556h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E817;stroke:none;" d="M57.786,10.606V9.556h-1.079v1.051h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0DD1B;stroke:none;" d="M55.658,10.606h1.049V9.556h-1.049v1.051z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1E225;stroke:none;" d="M56.707,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E211;stroke:none;" d="M55.658,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCDF54;stroke:none;" d="M56.707,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2E920;stroke:none;" d="M57.786,10.606h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED346;stroke:none;" d="M55.658,11.658v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAC19D;stroke:none;" d="M57.786,11.658h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEC493;stroke:none;" d="M57.786,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEEFF1;stroke:none;" d="M60.933,9.556v1.051h1.079V9.556h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2C6C7;stroke:none;" d="M60.933,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEBB96;stroke:none;" d="M59.884,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBEDEE;stroke:none;" d="M60.933,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CED4DD;stroke:none;" d="M60.933,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8B7C3;stroke:none;" d="M58.835,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DCE4;stroke:none;" d="M59.884,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDC4CE;stroke:none;" d="M60.933,10.606v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DF16;stroke:none;" d="M55.658,9.556V8.474h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E513;stroke:none;" d="M58.835,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6BCC8;stroke:none;" d="M58.835,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3C8CC;stroke:none;" d="M60.933,8.474v1.082h1.079V8.474h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E010;stroke:none;" d="M54.609,8.474V7.422H53.53v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEE00F;stroke:none;" d="M54.609,7.422V6.37H53.53v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DE13;stroke:none;" d="M54.609,8.474H53.53v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DB0C;stroke:none;" d="M53.53,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDDB0D;stroke:none;" d="M53.53,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9D928;stroke:none;" d="M51.433,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DA0A;stroke:none;" d="M51.433,7.422h-1.049v1.052h1.049V7.422z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EADA0F;stroke:none;" d="M51.433,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D917;stroke:none;" d="M51.433,7.422v1.052h1.049V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8D118;stroke:none;" d="M52.481,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7E013;stroke:none;" d="M52.481,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBE513;stroke:none;" d="M52.481,9.556v1.051h1.049V9.556h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4DD0B;stroke:none;" d="M52.481,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E01E;stroke:none;" d="M51.433,9.556h-1.049v1.051h1.049V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFD623;stroke:none;" d="M51.433,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D11B;stroke:none;" d="M51.433,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E617;stroke:none;" d="M52.481,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DC0D;stroke:none;" d="M52.481,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8DC19;stroke:none;" d="M52.481,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE817;stroke:none;" d="M54.609,9.556H53.53v1.051h1.079V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8E413;stroke:none;" d="M54.609,10.606H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E117;stroke:none;" d="M54.609,11.658H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E818;stroke:none;" d="M53.53,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7E113;stroke:none;" d="M53.53,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDD3E7;stroke:none;" d="M54.609,13.792v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8D7D1;stroke:none;" d="M54.609,14.844v-1.052H53.53v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECE890;stroke:none;" d="M54.609,12.71v1.082h1.049V12.71h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE47E;stroke:none;" d="M54.609,13.792V12.71H53.53v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2CEA1;stroke:none;" d="M54.609,14.844H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0E5A7;stroke:none;" d="M53.53,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E681;stroke:none;" d="M53.53,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBD86E;stroke:none;" d="M52.481,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFCF55;stroke:none;" d="M50.384,13.792h1.049V12.71h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEDFD0;stroke:none;" d="M51.433,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3B0D5;stroke:none;" d="M51.433,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D1B5;stroke:none;" d="M52.481,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4AB80;stroke:none;" d="M52.481,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6B0A3;stroke:none;" d="M52.481,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF9ECA;stroke:none;" d="M52.481,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A59DC8;stroke:none;" d="M50.384,16.978h1.049v-1.082h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#939CC3;stroke:none;" d="M51.433,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8893BD;stroke:none;" d="M51.433,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#99B7C4;stroke:none;" d="M52.481,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8493BB;stroke:none;" d="M52.481,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A1AFD0;stroke:none;" d="M52.481,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9C74E;stroke:none;" d="M54.609,15.896H53.53v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A1ABCD;stroke:none;" d="M54.609,16.978H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9CA5CB;stroke:none;" d="M54.609,18.029H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3CE75;stroke:none;" d="M54.609,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A5B2B9;stroke:none;" d="M54.609,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8D334;stroke:none;" d="M53.53,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B95BC;stroke:none;" d="M53.53,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5C8DA;stroke:none;" d="M54.609,14.844v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0B7CE;stroke:none;" d="M59.884,13.792h1.049V12.71h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7B0CE;stroke:none;" d="M60.933,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBD9E3;stroke:none;" d="M59.884,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A3ACC8;stroke:none;" d="M60.933,12.71v1.082h1.079V12.71h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DADBCC;stroke:none;" d="M58.835,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A3ACD0;stroke:none;" d="M60.933,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9BACA;stroke:none;" d="M59.884,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCCBD8;stroke:none;" d="M59.884,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F4F4;stroke:none;" d="M58.835,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A1ABCE;stroke:none;" d="M60.933,13.792v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0C7D6;stroke:none;" d="M57.786,13.792V12.71h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DF9E;stroke:none;" d="M55.658,13.792h1.049V12.71h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0D9D9;stroke:none;" d="M56.707,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9C4C9;stroke:none;" d="M56.707,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7E7D6;stroke:none;" d="M57.786,13.792h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1CFCC;stroke:none;" d="M57.786,14.844h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6C6C6;stroke:none;" d="M57.786,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7B8AC;stroke:none;" d="M57.786,16.978v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6BBDA;stroke:none;" d="M55.658,16.978h1.049v-1.082h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9AFBF;stroke:none;" d="M56.707,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AA908F;stroke:none;" d="M56.707,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCAE56;stroke:none;" d="M57.786,16.978h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3A33B;stroke:none;" d="M57.786,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFC713;stroke:none;" d="M57.786,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#94A2C7;stroke:none;" d="M60.933,15.896v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C98BF;stroke:none;" d="M60.933,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8E9D7;stroke:none;" d="M59.884,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2B3CF;stroke:none;" d="M60.933,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EED078;stroke:none;" d="M60.933,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8DB9B;stroke:none;" d="M58.835,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0AF5A;stroke:none;" d="M59.884,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F83BC;stroke:none;" d="M60.933,16.978v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E4E7;stroke:none;" d="M58.835,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7B318;stroke:none;" d="M58.835,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#939FC3;stroke:none;" d="M60.933,14.844v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DC51;stroke:none;" d="M55.658,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9B9EC4;stroke:none;" d="M55.658,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAB2C5;stroke:none;" d="M60.933,11.658v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M39.805,6.37V5.318h-1.049V6.37h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEBED7;stroke:none;" d="M50.384,5.318h-1.079V6.37h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7A7FA9;stroke:none;" d="M50.384,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD8D4;stroke:none;" d="M60.933,5.318V6.37h1.079V5.318h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M33.452,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M33.452,0v1.052h-1.049v1.081h-1.049v1.052h1.049h1.049V2.133h1.079V1.052V0h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF7;stroke:none;" d="M32.403,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M32.403,2.133V1.052h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M29.226,1.052v1.081h1.049V1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F7;stroke:none;" d="M29.226,2.133V1.052h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M30.275,1.052v1.081h1.079V1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M30.275,1.052h1.079V0h-2.128v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M31.354,2.133h-1.079v1.052h1.079V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF7;stroke:none;" d="M29.226,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M30.275,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F7F7;stroke:none;" d="M31.354,3.185h-1.079v1.052h1.079V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5DDD8;stroke:none;" d="M29.226,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCD6D4;stroke:none;" d="M29.226,5.318V4.236h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFD6CD;stroke:none;" d="M31.354,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4DDD6;stroke:none;" d="M31.354,5.318V4.236h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBC7DE;stroke:none;" d="M31.354,5.318h-1.079V6.37h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M29.226,4.236h1.049V3.185h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8C6DE;stroke:none;" d="M30.275,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F7F8;stroke:none;" d="M29.226,4.236V3.185h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F5F7;stroke:none;" d="M31.354,3.185v1.052h1.049V3.185h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M33.452,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CED7CA;stroke:none;" d="M33.452,4.236h-1.049v1.082h1.049V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3D4CF;stroke:none;" d="M33.452,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M33.452,3.185v1.052h1.079h1.049V3.185h-1.049h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9E0CC;stroke:none;" d="M33.452,4.236v1.082h1.079V4.236h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M29.226,3.185V2.133h-1.049h-1.049v1.052h1.049h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBCBD0;stroke:none;" d="M32.403,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF7;stroke:none;" d="M33.452,2.133v1.052h1.079V2.133h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF5;stroke:none;" d="M38.756,2.133V1.052h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M38.756,1.052V0h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAE9;stroke:none;" d="M38.756,2.133h-1.079v1.052h1.079V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M37.677,2.133V1.052h-1.049H35.58v1.081h1.049h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M37.677,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F8;stroke:none;" d="M35.58,0h-1.049v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M34.531,2.133h1.049V1.052h-1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M35.58,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF6;stroke:none;" d="M36.628,2.133H35.58v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M36.628,1.052V0H35.58v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2E5CF;stroke:none;" d="M34.531,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEB8BF;stroke:none;" d="M35.58,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFEEF2;stroke:none;" d="M35.58,4.236v1.082h1.049V4.236H35.58z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M36.628,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M36.628,3.185v1.052h1.049V3.185h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M36.628,4.236V3.185H35.58v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6C493;stroke:none;" d="M36.628,5.318H35.58V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F6;stroke:none;" d="M38.756,3.185h-1.079v1.052h1.079V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M38.756,4.236h-1.079v1.082h1.079V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F2E0;stroke:none;" d="M38.756,5.318h-1.079V6.37h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9E4;stroke:none;" d="M37.677,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEDB98;stroke:none;" d="M37.677,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E4E4;stroke:none;" d="M34.531,5.318h-1.079V6.37h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M21.824,1.052h1.049V0h-2.098v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M22.873,1.052h-1.049v1.081h1.049V1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M22.873,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M22.873,0v1.052h1.079V0h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M22.873,1.052v1.081h1.079V1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M20.775,0h-1.049v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M20.775,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M20.775,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M18.647,4.236v1.082h1.079V4.236h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M20.775,4.236v1.082h1.049h1.049V4.236h-2.098z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M20.775,5.318V4.236h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M20.775,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M18.647,4.236h1.079V3.185h-1.079v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M19.726,5.318h-1.079V6.37v1.052h1.079V6.37V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF6;stroke:none;" d="M20.775,3.185v1.052h2.098V3.185h-1.049h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8ECEE;stroke:none;" d="M22.873,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M22.873,3.185v1.052h1.079V3.185h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFE;stroke:none;" d="M22.873,4.236v1.082h1.079V4.236h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M21.824,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M21.824,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M22.873,2.133v1.052h1.079V2.133h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M28.177,2.133V1.052h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M28.177,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M27.128,2.133V1.052H26.05v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M27.128,1.052V0H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFA;stroke:none;" d="M26.05,0H25v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M23.952,1.052v1.081v1.052H25V2.133h1.049V1.052H25V0h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M26.05,2.133H25v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M26.05,3.185H25h-1.049v1.052H25h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F4F4;stroke:none;" d="M23.952,4.236v1.082H25V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0DBD2;stroke:none;" d="M26.05,4.236v1.082h1.079V4.236H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F2F3;stroke:none;" d="M26.05,5.318V4.236H25v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8AFB2;stroke:none;" d="M26.05,5.318H25V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M26.05,3.185v1.052h1.079V3.185H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4B0B4;stroke:none;" d="M25,5.318h-1.049V6.37H25V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M28.177,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9D4D0;stroke:none;" d="M28.177,4.236h-1.049v1.082h1.049V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6C9CD;stroke:none;" d="M28.177,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAF8;stroke:none;" d="M27.128,2.133H26.05v1.052h1.079V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1D3DC;stroke:none;" d="M27.128,5.318H26.05V6.37h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDC0C5;stroke:none;" d="M23.952,5.318h-1.079V6.37h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDB59E;stroke:none;" d="M28.177,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFB2B8;stroke:none;" d="M27.128,7.422V6.37H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9DD22;stroke:none;" d="M28.177,7.422h-1.049v1.052h1.049V7.422z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7D445;stroke:none;" d="M27.128,8.474V7.422H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7D63E;stroke:none;" d="M28.177,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5BBB4;stroke:none;" d="M28.177,6.37v1.052h1.049V6.37h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E141;stroke:none;" d="M28.177,7.422v1.052h1.049V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED5D3;stroke:none;" d="M26.05,6.37H25v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7D2D6;stroke:none;" d="M23.952,7.422v1.052H25V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5B7C8;stroke:none;" d="M23.952,8.474V7.422h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFB4B2;stroke:none;" d="M26.05,8.474V7.422H25v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4D30E;stroke:none;" d="M26.05,8.474H25v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5C0C5;stroke:none;" d="M23.952,6.37v1.052H25V6.37h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9799A6;stroke:none;" d="M23.952,7.422V6.37h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBD287;stroke:none;" d="M25,8.474h-1.049v1.082H25V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6C27C;stroke:none;" d="M26.05,9.556v1.051h1.079V9.556H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0C782;stroke:none;" d="M26.05,10.606V9.556H25v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2A37A;stroke:none;" d="M25,10.606V9.556h-1.049v1.051H25z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7BA97;stroke:none;" d="M26.05,10.606H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8E0E8;stroke:none;" d="M23.952,10.606V9.556h-1.079v1.051h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD683;stroke:none;" d="M26.05,11.658H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2D8B9;stroke:none;" d="M23.952,10.606v1.052H25v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7D286;stroke:none;" d="M23.952,11.658v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFDD97;stroke:none;" d="M25,11.658h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBD04D;stroke:none;" d="M26.05,10.606v1.052h1.079v-1.052H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5D911;stroke:none;" d="M28.177,9.556h-1.049v1.051h1.049V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9DD10;stroke:none;" d="M28.177,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9CF1F;stroke:none;" d="M28.177,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECE313;stroke:none;" d="M28.177,9.556v1.051h1.049V9.556h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE514;stroke:none;" d="M28.177,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD8BA;stroke:none;" d="M23.952,9.556V8.474h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6CC68;stroke:none;" d="M27.128,8.474H26.05v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAD318;stroke:none;" d="M27.128,11.658H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E021;stroke:none;" d="M28.177,8.474v1.082h1.049V8.474h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8F96B4;stroke:none;" d="M22.873,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A0A7BA;stroke:none;" d="M22.873,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEB45E;stroke:none;" d="M22.873,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#868EAB;stroke:none;" d="M21.824,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6CDD9;stroke:none;" d="M21.824,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDEEF1;stroke:none;" d="M20.775,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F2F4;stroke:none;" d="M18.647,7.422v1.052h1.079V7.422h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AFB0C2;stroke:none;" d="M20.775,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#887EB2;stroke:none;" d="M20.775,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A299C2;stroke:none;" d="M19.726,8.474h-1.079v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9BCD7;stroke:none;" d="M20.775,9.556v1.051h1.049V9.556h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9EAACF;stroke:none;" d="M20.775,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A7D79;stroke:none;" d="M19.726,10.606V9.556h-1.079v1.051h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0B2C7;stroke:none;" d="M20.775,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9AB53;stroke:none;" d="M20.775,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5B3BF;stroke:none;" d="M18.647,10.606v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEA195;stroke:none;" d="M19.726,11.658h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCC48C;stroke:none;" d="M20.775,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4D4E0;stroke:none;" d="M22.873,9.556h-1.049v1.051h1.049V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFC180;stroke:none;" d="M22.873,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3A216;stroke:none;" d="M22.873,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8885A0;stroke:none;" d="M21.824,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4AC31;stroke:none;" d="M21.824,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#90A0BA;stroke:none;" d="M22.873,13.792v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A0A59E;stroke:none;" d="M22.873,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAB87B;stroke:none;" d="M22.873,12.71v1.082h1.079V12.71h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9398AB;stroke:none;" d="M22.873,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7AA33;stroke:none;" d="M22.873,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA997D;stroke:none;" d="M21.824,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5959E;stroke:none;" d="M21.824,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEA85F;stroke:none;" d="M20.775,12.71h-1.049v1.082h1.049V12.71z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#786D8F;stroke:none;" d="M19.726,13.792V12.71h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCA94F;stroke:none;" d="M20.775,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E69A22;stroke:none;" d="M20.775,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A18C7E;stroke:none;" d="M19.726,13.792h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C99024;stroke:none;" d="M19.726,14.844h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EE9313;stroke:none;" d="M20.775,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9911A;stroke:none;" d="M20.775,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D29E18;stroke:none;" d="M19.726,16.978v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E68113;stroke:none;" d="M20.775,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E08115;stroke:none;" d="M20.775,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E98915;stroke:none;" d="M18.647,16.978v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E58513;stroke:none;" d="M19.726,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D18D14;stroke:none;" d="M20.775,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDA31E;stroke:none;" d="M22.873,15.896h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E49838;stroke:none;" d="M22.873,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C87D0F;stroke:none;" d="M22.873,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCA836;stroke:none;" d="M22.873,15.896v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D68F21;stroke:none;" d="M22.873,16.978v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E19D1A;stroke:none;" d="M21.824,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D99018;stroke:none;" d="M21.824,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BC97A5;stroke:none;" d="M22.873,14.844v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1E0C5;stroke:none;" d="M28.177,13.792v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE79A;stroke:none;" d="M28.177,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8DF83;stroke:none;" d="M28.177,12.71v1.082h1.049V12.71h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5C77E;stroke:none;" d="M28.177,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2D121;stroke:none;" d="M28.177,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1DBE9;stroke:none;" d="M27.128,14.844v-1.052H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEBE80;stroke:none;" d="M27.128,13.792V12.71H26.05v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5E5A0;stroke:none;" d="M26.05,12.71H25v1.082h1.049V12.71z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1AF65;stroke:none;" d="M25,13.792V12.71h-1.049v1.082H25z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5DC94;stroke:none;" d="M26.05,13.792H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4D8D8;stroke:none;" d="M26.05,14.844H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7AF7D;stroke:none;" d="M25,13.792h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A2A3C6;stroke:none;" d="M25,14.844h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C69EA2;stroke:none;" d="M26.05,15.896v1.082h1.079v-1.082H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFDDD1;stroke:none;" d="M26.05,16.978v-1.082H25v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4B79E;stroke:none;" d="M25,16.978v-1.082h-1.049v1.082H25z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFB454;stroke:none;" d="M26.05,16.978H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC9C32;stroke:none;" d="M26.05,18.029H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7CA7A;stroke:none;" d="M23.952,16.978v1.052H25v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5D39C;stroke:none;" d="M25,18.029h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DE9A53;stroke:none;" d="M26.05,16.978v1.052h1.079v-1.052H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEC21D;stroke:none;" d="M28.177,15.896h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFCC11;stroke:none;" d="M28.177,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0A247;stroke:none;" d="M28.177,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD01D;stroke:none;" d="M28.177,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9C81D;stroke:none;" d="M28.177,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEB49F;stroke:none;" d="M27.128,14.844H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D59761;stroke:none;" d="M27.128,18.029H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED161;stroke:none;" d="M28.177,14.844v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3CC15;stroke:none;" d="M23.952,11.658h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5992D;stroke:none;" d="M23.952,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4DF14;stroke:none;" d="M28.177,11.658v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7C65F;stroke:none;" d="M38.756,6.37h-1.079v1.052h1.079V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1BE1D;stroke:none;" d="M37.677,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5B911;stroke:none;" d="M38.756,7.422h-1.079v1.052h1.079V7.422z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6C845;stroke:none;" d="M37.677,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFC814;stroke:none;" d="M38.756,8.474h-1.079v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD3C7;stroke:none;" d="M35.58,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2DE5A;stroke:none;" d="M34.531,8.474h1.049V7.422h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0DE0C;stroke:none;" d="M35.58,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DD38;stroke:none;" d="M34.531,8.474V7.422h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9D86F;stroke:none;" d="M35.58,7.422v1.052h1.049V7.422H35.58z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9C856;stroke:none;" d="M36.628,6.37H35.58v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D1C3B7;stroke:none;" d="M34.531,7.422V6.37h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEDC97;stroke:none;" d="M36.628,8.474H35.58v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7EFE9;stroke:none;" d="M36.628,9.556v1.051h1.049V9.556h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E67E;stroke:none;" d="M36.628,10.606V9.556H35.58v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBD71E;stroke:none;" d="M34.531,10.606h1.049V9.556h-1.049v1.051z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFDA0D;stroke:none;" d="M35.58,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E514;stroke:none;" d="M34.531,10.606V9.556h-1.079v1.051h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0EB9E;stroke:none;" d="M35.58,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEDE99;stroke:none;" d="M36.628,10.606H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBE615;stroke:none;" d="M34.531,11.658v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0DAA4;stroke:none;" d="M36.628,11.658H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEEA7D;stroke:none;" d="M36.628,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9D78B;stroke:none;" d="M38.756,9.556h-1.079v1.051h1.079V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD97B;stroke:none;" d="M38.756,10.606h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFB913;stroke:none;" d="M38.756,11.658h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFE212;stroke:none;" d="M34.531,9.556V8.474h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3CF80;stroke:none;" d="M37.677,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBCD12;stroke:none;" d="M37.677,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFE117;stroke:none;" d="M33.452,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9C099;stroke:none;" d="M33.452,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1DF2E;stroke:none;" d="M33.452,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0DE30;stroke:none;" d="M32.403,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8BDAD;stroke:none;" d="M32.403,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6B1D4;stroke:none;" d="M31.354,6.37h-1.079v1.052h1.079V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9CB73;stroke:none;" d="M29.226,7.422v1.052h1.049V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8C96E;stroke:none;" d="M31.354,8.474V7.422h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E413;stroke:none;" d="M31.354,8.474h-1.079v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6B0D5;stroke:none;" d="M29.226,7.422h1.049V6.37h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3DA28;stroke:none;" d="M30.275,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECE420;stroke:none;" d="M31.354,9.556v1.051h1.049V9.556h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E018;stroke:none;" d="M31.354,10.606V9.556h-1.079v1.051h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9DE17;stroke:none;" d="M30.275,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE013;stroke:none;" d="M31.354,10.606h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE515;stroke:none;" d="M31.354,11.658h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE414;stroke:none;" d="M29.226,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9E514;stroke:none;" d="M30.275,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8DE17;stroke:none;" d="M31.354,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8E414;stroke:none;" d="M33.452,9.556h-1.049v1.051h1.049V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E110;stroke:none;" d="M33.452,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E214;stroke:none;" d="M33.452,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8EB17;stroke:none;" d="M32.403,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE418;stroke:none;" d="M32.403,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6E7D8;stroke:none;" d="M33.452,13.792v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3EE7B;stroke:none;" d="M33.452,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D96D;stroke:none;" d="M33.452,12.71v1.082h1.079V12.71h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D86F;stroke:none;" d="M33.452,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8E414;stroke:none;" d="M33.452,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E698;stroke:none;" d="M32.403,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE38A;stroke:none;" d="M32.403,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3EC8A;stroke:none;" d="M31.354,12.71h-1.079v1.082h1.079V12.71z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2ED7E;stroke:none;" d="M30.275,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEE297;stroke:none;" d="M31.354,13.792h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E5E01F;stroke:none;" d="M31.354,14.844h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFDEB3;stroke:none;" d="M30.275,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2D55A;stroke:none;" d="M30.275,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDDF13;stroke:none;" d="M31.354,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6DA0F;stroke:none;" d="M31.354,16.978v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2D12C;stroke:none;" d="M30.275,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2C410;stroke:none;" d="M31.354,16.978h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3AD62;stroke:none;" d="M31.354,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBBD3A;stroke:none;" d="M29.226,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8AE5D;stroke:none;" d="M30.275,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAC710;stroke:none;" d="M31.354,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6D512;stroke:none;" d="M33.452,15.896h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBCA14;stroke:none;" d="M33.452,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAC11C;stroke:none;" d="M33.452,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3CB27;stroke:none;" d="M33.452,15.896v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9BC10;stroke:none;" d="M33.452,16.978v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDE81A;stroke:none;" d="M32.403,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DEB919;stroke:none;" d="M32.403,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAD277;stroke:none;" d="M33.452,14.844v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAB32D;stroke:none;" d="M38.756,14.844v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2B812;stroke:none;" d="M38.756,13.792V12.71h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9BA11;stroke:none;" d="M38.756,14.844h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEB426;stroke:none;" d="M37.677,14.844v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4CC10;stroke:none;" d="M37.677,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3D11A;stroke:none;" d="M36.628,13.792V12.71H35.58v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2E6A3;stroke:none;" d="M34.531,13.792h1.049V12.71h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6D776;stroke:none;" d="M35.58,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3D588;stroke:none;" d="M35.58,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9C610;stroke:none;" d="M36.628,13.792H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFCB14;stroke:none;" d="M36.628,14.844H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2B410;stroke:none;" d="M36.628,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDBB3D;stroke:none;" d="M36.628,16.978v-1.082H35.58v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3E9BD;stroke:none;" d="M34.531,16.978h1.049v-1.082h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBE5A7;stroke:none;" d="M35.58,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEB49E;stroke:none;" d="M35.58,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6C963;stroke:none;" d="M36.628,16.978H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAE2A9;stroke:none;" d="M36.628,18.029H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1A014;stroke:none;" d="M36.628,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0B80E;stroke:none;" d="M38.756,15.896h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0A461;stroke:none;" d="M38.756,16.978h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9A826A;stroke:none;" d="M38.756,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4AE12;stroke:none;" d="M37.677,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8A141;stroke:none;" d="M37.677,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDEC18;stroke:none;" d="M34.531,11.658h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5AE32;stroke:none;" d="M34.531,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6C8D2;stroke:none;" d="M29.226,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2AA24;stroke:none;" d="M29.226,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9B7866;stroke:none;" d="M38.756,20.133v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A17778;stroke:none;" d="M38.756,21.214v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9485A6;stroke:none;" d="M38.756,19.081v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D8099;stroke:none;" d="M38.756,20.133v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A993AA;stroke:none;" d="M38.756,21.214h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A48D7F;stroke:none;" d="M37.677,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A5877D;stroke:none;" d="M37.677,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7CDD4;stroke:none;" d="M36.628,20.133v-1.052H35.58v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#808CBA;stroke:none;" d="M34.531,20.133h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6679B7;stroke:none;" d="M35.58,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AC8A71;stroke:none;" d="M34.531,20.133v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5F5CA3;stroke:none;" d="M35.58,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4CDD0;stroke:none;" d="M36.628,20.133H35.58v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9077AF;stroke:none;" d="M34.531,21.214v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E2E8;stroke:none;" d="M36.628,21.214H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7D9FB0;stroke:none;" d="M36.628,22.266v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A8A7AC;stroke:none;" d="M36.628,23.317v-1.052H35.58v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4B8CF;stroke:none;" d="M34.531,23.317h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ADADD1;stroke:none;" d="M35.58,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5B5FA2;stroke:none;" d="M34.531,23.317v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#55739D;stroke:none;" d="M35.58,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7677AA;stroke:none;" d="M36.628,23.317H35.58v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A5B6BD;stroke:none;" d="M34.531,24.399v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#50549B;stroke:none;" d="M36.628,24.399H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#375E9D;stroke:none;" d="M36.628,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8D0DC;stroke:none;" d="M38.756,22.266h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#515F85;stroke:none;" d="M38.756,23.317h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#917581;stroke:none;" d="M38.756,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CBD2DE;stroke:none;" d="M38.756,22.266v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6B6080;stroke:none;" d="M38.756,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#706BA4;stroke:none;" d="M34.531,22.266v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0CDD4;stroke:none;" d="M37.677,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4F63A7;stroke:none;" d="M37.677,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#836976;stroke:none;" d="M38.756,21.214v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#948661;stroke:none;" d="M33.452,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2A219;stroke:none;" d="M33.452,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C78AC;stroke:none;" d="M33.452,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E828C;stroke:none;" d="M32.403,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7A077;stroke:none;" d="M32.403,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9B81BC;stroke:none;" d="M31.354,19.081h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A0A65C;stroke:none;" d="M30.275,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F75AA;stroke:none;" d="M31.354,20.133h-1.079v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5AF3C;stroke:none;" d="M29.226,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F7CAB;stroke:none;" d="M31.354,21.214h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7B8495;stroke:none;" d="M29.226,20.133v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A18A7E;stroke:none;" d="M29.226,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7174AA;stroke:none;" d="M30.275,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#597AA0;stroke:none;" d="M31.354,22.266v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#57629F;stroke:none;" d="M31.354,23.317v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5658A0;stroke:none;" d="M30.275,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#58619F;stroke:none;" d="M31.354,23.317h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C6AB0;stroke:none;" d="M29.226,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#424D8B;stroke:none;" d="M31.354,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5564A6;stroke:none;" d="M29.226,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#45508E;stroke:none;" d="M29.226,24.399v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3B5C70;stroke:none;" d="M30.275,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#48518E;stroke:none;" d="M31.354,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#506AA7;stroke:none;" d="M33.452,22.266h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#50599D;stroke:none;" d="M33.452,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CAC4CF;stroke:none;" d="M33.452,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#70677F;stroke:none;" d="M29.226,22.266v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5C6BAD;stroke:none;" d="M32.403,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8774B5;stroke:none;" d="M32.403,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#46578D;stroke:none;" d="M33.452,25.451v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7685AE;stroke:none;" d="M33.452,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4BDD5;stroke:none;" d="M32.403,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#424889;stroke:none;" d="M32.403,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#383C73;stroke:none;" d="M32.403,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#434A91;stroke:none;" d="M33.452,27.555v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#46519B;stroke:none;" d="M33.452,26.503v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#465094;stroke:none;" d="M33.452,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#414479;stroke:none;" d="M33.452,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4A4F88;stroke:none;" d="M32.403,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8BCCA;stroke:none;" d="M31.354,26.503v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A2A0C8;stroke:none;" d="M31.354,26.503h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B3B2BC;stroke:none;" d="M30.275,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEB8C6;stroke:none;" d="M29.226,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9A9BC3;stroke:none;" d="M29.226,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3D3D73;stroke:none;" d="M29.226,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8284B0;stroke:none;" d="M30.275,28.636h1.079v-1.081h-1.079v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#787AA2;stroke:none;" d="M31.354,28.636h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEA8CF;stroke:none;" d="M30.275,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5B5487;stroke:none;" d="M29.226,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9A9EC5;stroke:none;" d="M30.275,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F70A5;stroke:none;" d="M31.354,29.688h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4B3D5;stroke:none;" d="M29.226,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#494D7A;stroke:none;" d="M29.226,31.791v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#42426A;stroke:none;" d="M31.354,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9998BF;stroke:none;" d="M31.354,31.791v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9C98B6;stroke:none;" d="M31.354,31.791h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#999BC6;stroke:none;" d="M29.226,30.739h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D99B6;stroke:none;" d="M30.275,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#333875;stroke:none;" d="M29.226,30.739v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#282760;stroke:none;" d="M31.354,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#40407C;stroke:none;" d="M33.452,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#262854;stroke:none;" d="M33.452,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8A8DAC;stroke:none;" d="M33.452,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E3E7C;stroke:none;" d="M33.452,29.688v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F3461;stroke:none;" d="M33.452,30.739v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3B4274;stroke:none;" d="M29.226,29.688v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3D4070;stroke:none;" d="M32.403,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1B0CC;stroke:none;" d="M32.403,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#363B75;stroke:none;" d="M33.452,28.636v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C86721;stroke:none;" d="M38.756,25.451v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B36B42;stroke:none;" d="M38.756,26.503v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#81657A;stroke:none;" d="M37.677,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3710F;stroke:none;" d="M37.677,27.555v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA6D37;stroke:none;" d="M37.677,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE6012;stroke:none;" d="M38.756,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DE7217;stroke:none;" d="M38.756,26.503v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CE6F1A;stroke:none;" d="M38.756,27.555v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AE6B2E;stroke:none;" d="M38.756,28.636h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E553D;stroke:none;" d="M37.677,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#435D9E;stroke:none;" d="M36.628,26.503v-1.052H35.58v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2966A1;stroke:none;" d="M34.531,26.503h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#445A93;stroke:none;" d="M35.58,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#724E67;stroke:none;" d="M35.58,27.555v1.081h1.049v-1.081H35.58z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#393A7A;stroke:none;" d="M35.58,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3B4492;stroke:none;" d="M35.58,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#574A75;stroke:none;" d="M36.628,26.503H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#50345D;stroke:none;" d="M36.628,28.636H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#253888;stroke:none;" d="M35.58,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D356C;stroke:none;" d="M35.58,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#474160;stroke:none;" d="M35.58,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#453A76;stroke:none;" d="M35.58,30.739v1.052h1.049v-1.052H35.58z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E2447;stroke:none;" d="M36.628,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#443671;stroke:none;" d="M36.628,29.688H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#73669A;stroke:none;" d="M36.628,31.791H35.58v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7D555D;stroke:none;" d="M36.628,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5D3639;stroke:none;" d="M38.756,29.688h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7B6686;stroke:none;" d="M38.756,30.739h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#938AA5;stroke:none;" d="M38.756,31.791h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6A5888;stroke:none;" d="M38.756,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#908ABC;stroke:none;" d="M38.756,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AC6E4B;stroke:none;" d="M37.677,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9185AE;stroke:none;" d="M37.677,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#713D2B;stroke:none;" d="M38.756,28.636v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6A78AA;stroke:none;" d="M29.226,25.451v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9CAEC2;stroke:none;" d="M34.531,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#616686;stroke:none;" d="M34.531,31.791h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#965C51;stroke:none;" d="M38.756,24.399v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C37E7E;stroke:none;" d="M28.177,19.081h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CE9251;stroke:none;" d="M27.128,20.133v-1.052H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B87F3F;stroke:none;" d="M28.177,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4911C;stroke:none;" d="M27.128,21.214v-1.081H26.05v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AA853A;stroke:none;" d="M28.177,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CB941D;stroke:none;" d="M26.05,20.133v-1.052H25v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBC27E;stroke:none;" d="M25,20.133v-1.052h-1.049v1.052H25z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C97520;stroke:none;" d="M26.05,20.133H25v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3B034;stroke:none;" d="M23.952,20.133v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C07425;stroke:none;" d="M26.05,21.214H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAB196;stroke:none;" d="M25,20.133h-1.049v1.081H25v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDAC74;stroke:none;" d="M23.952,21.214v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5C1AD;stroke:none;" d="M25,21.214h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AE7515;stroke:none;" d="M26.05,22.266v1.052h1.079v-1.052H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8B770;stroke:none;" d="M26.05,23.317v-1.052H25v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2D177;stroke:none;" d="M25,23.317v-1.052h-1.049v1.052H25z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5D2A6;stroke:none;" d="M26.05,23.317H25v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3AD5C;stroke:none;" d="M23.952,23.317v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BE7313;stroke:none;" d="M26.05,24.399H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C2872A;stroke:none;" d="M23.952,23.317v1.082H25v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B96C12;stroke:none;" d="M23.952,24.399v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CC652A;stroke:none;" d="M25,24.399h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8A5A1;stroke:none;" d="M26.05,23.317v1.082h1.079v-1.082H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#886A93;stroke:none;" d="M28.177,22.266h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#564D82;stroke:none;" d="M28.177,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ADB6D7;stroke:none;" d="M28.177,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5CFBC;stroke:none;" d="M23.952,22.266v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3841E;stroke:none;" d="M27.128,21.214H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A0B9C2;stroke:none;" d="M27.128,24.399H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BF7230;stroke:none;" d="M22.873,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D48B17;stroke:none;" d="M22.873,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBAC76;stroke:none;" d="M22.873,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#905F5B;stroke:none;" d="M21.824,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CF8C39;stroke:none;" d="M21.824,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C08122;stroke:none;" d="M20.775,19.081h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D19419;stroke:none;" d="M19.726,20.133v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#705B6F;stroke:none;" d="M20.775,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#38418F;stroke:none;" d="M20.775,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#735F66;stroke:none;" d="M19.726,20.133h-1.079v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3B3D93;stroke:none;" d="M19.726,21.214h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAD8DD;stroke:none;" d="M20.775,22.266v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A3B8C8;stroke:none;" d="M20.775,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8889A5;stroke:none;" d="M19.726,23.317v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#727F90;stroke:none;" d="M20.775,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#313874;stroke:none;" d="M20.775,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CEC5CD;stroke:none;" d="M18.647,23.317v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#988EB3;stroke:none;" d="M19.726,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4B4584;stroke:none;" d="M20.775,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBBE80;stroke:none;" d="M22.873,22.266h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A56F41;stroke:none;" d="M22.873,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AC7517;stroke:none;" d="M22.873,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#89747D;stroke:none;" d="M21.824,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#57548D;stroke:none;" d="M21.824,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D86A11;stroke:none;" d="M22.873,25.451v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D6D3F;stroke:none;" d="M22.873,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4B465D;stroke:none;" d="M21.824,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4A3E66;stroke:none;" d="M21.824,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#303B8A;stroke:none;" d="M21.824,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#885C4F;stroke:none;" d="M22.873,27.555v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA6A28;stroke:none;" d="M22.873,26.503v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#714F4E;stroke:none;" d="M22.873,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#434677;stroke:none;" d="M22.873,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#40427B;stroke:none;" d="M21.824,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E336F;stroke:none;" d="M20.775,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#434074;stroke:none;" d="M20.775,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9988B6;stroke:none;" d="M19.726,26.503v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A29DC2;stroke:none;" d="M18.647,27.555v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#282B66;stroke:none;" d="M19.726,28.636h1.049v-1.081h-1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#605CA0;stroke:none;" d="M20.775,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9288AD;stroke:none;" d="M19.726,26.503h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7ACD2;stroke:none;" d="M19.726,28.636h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9083B2;stroke:none;" d="M20.775,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2DADE;stroke:none;" d="M18.647,30.739v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AFA6CE;stroke:none;" d="M20.775,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#94899A;stroke:none;" d="M20.775,31.791v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F2F2;stroke:none;" d="M20.775,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9384A4;stroke:none;" d="M18.647,30.739h1.079v-1.052h-1.079v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F3F4;stroke:none;" d="M19.726,31.791h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#47487C;stroke:none;" d="M20.775,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A2D60;stroke:none;" d="M22.873,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#68669A;stroke:none;" d="M22.873,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9696B8;stroke:none;" d="M22.873,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#413B79;stroke:none;" d="M22.873,29.688v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E345E;stroke:none;" d="M22.873,30.739v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#233072;stroke:none;" d="M21.824,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A29AAF;stroke:none;" d="M21.824,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#44315E;stroke:none;" d="M22.873,28.636v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#938AA5;stroke:none;" d="M28.177,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F6587;stroke:none;" d="M27.128,26.503v-1.052H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#404180;stroke:none;" d="M27.128,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#45498C;stroke:none;" d="M27.128,28.636v-1.081H26.05v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#58508B;stroke:none;" d="M28.177,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#333D76;stroke:none;" d="M28.177,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#584F91;stroke:none;" d="M27.128,27.555v-1.052H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9E654E;stroke:none;" d="M26.05,26.503v-1.052H25v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#624058;stroke:none;" d="M26.05,26.503H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CE631E;stroke:none;" d="M25,26.503v-1.052h-1.049v1.052H25z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#745155;stroke:none;" d="M23.952,27.555v1.081H25v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4A4886;stroke:none;" d="M25,28.636h1.049v-1.081H25v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#31448B;stroke:none;" d="M26.05,28.636H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C47A4B;stroke:none;" d="M25,26.503h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#403770;stroke:none;" d="M25,28.636h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D3F85;stroke:none;" d="M26.05,29.688H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D3061;stroke:none;" d="M23.952,30.739v1.052H25v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F3A6D;stroke:none;" d="M26.05,30.739v1.052h1.079v-1.052H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#333277;stroke:none;" d="M26.05,31.791v-1.052H25v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#604F7C;stroke:none;" d="M26.05,31.791H25v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3A3C84;stroke:none;" d="M23.952,30.739H25v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6D6D91;stroke:none;" d="M25,31.791h-1.049v1.082H25v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#313C83;stroke:none;" d="M26.05,29.688v1.052h1.079v-1.052H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#374184;stroke:none;" d="M28.177,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#242B5B;stroke:none;" d="M28.177,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8A8CAA;stroke:none;" d="M28.177,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#313D7D;stroke:none;" d="M27.128,28.636H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C708F;stroke:none;" d="M27.128,31.791H26.05v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6651A;stroke:none;" d="M23.952,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8992B3;stroke:none;" d="M23.952,31.791h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#676093;stroke:none;" d="M28.177,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6E689A;stroke:none;" d="M27.128,33.925v-1.052H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#363362;stroke:none;" d="M28.177,33.925h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#53537F;stroke:none;" d="M27.128,34.977v-1.052H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F4F6;stroke:none;" d="M28.177,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#483E72;stroke:none;" d="M28.177,32.873v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#332C5F;stroke:none;" d="M28.177,33.925v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#998594;stroke:none;" d="M26.05,32.873H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0DAE3;stroke:none;" d="M23.952,33.925v1.052H25v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M23.952,34.977v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7B1BC;stroke:none;" d="M26.05,34.977v-1.052H25v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAF3;stroke:none;" d="M26.05,34.977H25v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7A4CB;stroke:none;" d="M23.952,32.873v1.052H25v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#848DB4;stroke:none;" d="M23.952,33.925v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M25,34.977h-1.049h-1.079v-1.052h-1.049v1.052v1.082v1.052h1.049v-1.052h1.079H25v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEE;stroke:none;" d="M26.05,36.059H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M23.952,37.11v1.052H25V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M23.952,38.162V37.11h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M26.05,37.11v1.052h1.079V37.11H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M26.05,38.162V37.11H25v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7183A6;stroke:none;" d="M26.05,38.162H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF6;stroke:none;" d="M25,36.059h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7584AE;stroke:none;" d="M25,38.162h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M23.952,37.11v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M26.05,36.059v1.052h1.079h1.049v-1.052h-1.049H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M28.177,37.11h-1.049v1.052h1.049V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C83A4;stroke:none;" d="M28.177,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M28.177,36.059v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9FA;stroke:none;" d="M28.177,37.11v1.052h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M27.128,34.977H26.05v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7082A8;stroke:none;" d="M27.128,38.162H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0ECF1;stroke:none;" d="M28.177,34.977v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6CDD2;stroke:none;" d="M22.873,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M21.824,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF5;stroke:none;" d="M21.824,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M20.775,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M18.647,33.925v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAF1;stroke:none;" d="M20.775,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAF1;stroke:none;" d="M20.775,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7E2EA;stroke:none;" d="M18.647,33.925h1.079v-1.052h-1.079v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M19.726,34.977h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M20.775,36.059h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F7F8;stroke:none;" d="M20.775,37.11v1.052h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M20.775,38.162V37.11h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M20.775,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M18.647,36.059v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF8;stroke:none;" d="M20.775,36.059v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFC;stroke:none;" d="M22.873,37.11h-1.049v1.052h1.049V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7A80A9;stroke:none;" d="M22.873,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF5;stroke:none;" d="M21.824,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9EA1B7;stroke:none;" d="M21.824,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2B4597;stroke:none;" d="M22.873,40.295v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F4288;stroke:none;" d="M22.873,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F408E;stroke:none;" d="M22.873,39.214v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#323E7E;stroke:none;" d="M22.873,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294285;stroke:none;" d="M22.873,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#65739D;stroke:none;" d="M21.824,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C7298;stroke:none;" d="M21.824,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M20.775,39.214h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M18.647,40.295v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M20.775,41.347v-1.052h-1.049v1.052v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBFB;stroke:none;" d="M19.726,41.347h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M19.726,42.398h-1.079v8.474h1.079v-8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M20.775,42.398h-1.049v8.474h1.049V49.82v-6.34v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6A75A6;stroke:none;" d="M20.775,42.398v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#27418B;stroke:none;" d="M22.873,42.398h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#28428D;stroke:none;" d="M22.873,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6B76A8;stroke:none;" d="M21.824,44.532V43.48h-1.049v6.34h1.049v-1.052v-4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#29438D;stroke:none;" d="M22.873,44.532h-1.049v4.236h1.049v-4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#23478D;stroke:none;" d="M22.873,42.398v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24478E;stroke:none;" d="M22.873,43.48v1.052h1.079V43.48h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#61749C;stroke:none;" d="M21.824,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#234391;stroke:none;" d="M22.873,41.347v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#264685;stroke:none;" d="M28.177,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D4790;stroke:none;" d="M28.177,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294B88;stroke:none;" d="M28.177,39.214v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294487;stroke:none;" d="M28.177,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#485F9E;stroke:none;" d="M28.177,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F4398;stroke:none;" d="M27.128,41.347v-1.052H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A418D;stroke:none;" d="M27.128,40.295v-1.081H26.05v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#284285;stroke:none;" d="M26.05,39.214H25v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#244595;stroke:none;" d="M23.952,40.295v1.052H25v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F4188;stroke:none;" d="M26.05,41.347v-1.052H25v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F4D8B;stroke:none;" d="M26.05,41.347H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E468F;stroke:none;" d="M23.952,39.214v1.081H25v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#214790;stroke:none;" d="M25,41.347h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#908BAB;stroke:none;" d="M26.05,42.398v1.082h1.079v-1.082H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#27428C;stroke:none;" d="M26.05,43.48v-1.082H25v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#214488;stroke:none;" d="M25,43.48v-1.082h-1.049v1.082H25z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#28438D;stroke:none;" d="M26.05,43.48H25v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#29458F;stroke:none;" d="M26.05,44.532H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#224589;stroke:none;" d="M23.952,43.48v1.052H25V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24488B;stroke:none;" d="M25,44.532h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9091AD;stroke:none;" d="M26.05,43.48v1.052h1.079V43.48H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F9;stroke:none;" d="M28.177,42.398h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M28.177,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAE5EB;stroke:none;" d="M28.177,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2EEEA;stroke:none;" d="M28.177,42.398v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M28.177,43.48v1.052h1.049V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#324292;stroke:none;" d="M27.128,41.347H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8390B0;stroke:none;" d="M27.128,44.532H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E5D91;stroke:none;" d="M28.177,41.347v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7580AF;stroke:none;" d="M23.952,38.162h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24498F;stroke:none;" d="M23.952,44.532h-1.079v4.236h1.079v-1.052v-2.133v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6E87A6;stroke:none;" d="M28.177,38.162v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8DBE0;stroke:none;" d="M38.756,32.873h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9093B8;stroke:none;" d="M37.677,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M38.756,33.925h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAF6;stroke:none;" d="M37.677,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M38.756,34.977h-1.079h-1.049v1.082h1.049h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M38.756,32.873v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F4;stroke:none;" d="M38.756,33.925v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A599AD;stroke:none;" d="M35.58,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5B7CA;stroke:none;" d="M34.531,34.977h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M35.58,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#52557C;stroke:none;" d="M34.531,34.977v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDDDE1;stroke:none;" d="M35.58,33.925v1.052h1.049v-1.052H35.58z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#948CB8;stroke:none;" d="M36.628,32.873H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6B6DA5;stroke:none;" d="M34.531,33.925v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M36.628,34.977H35.58v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M35.58,36.059h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M35.58,37.11h-1.049h-1.079v1.052h1.079h1.049V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M35.58,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F3F5;stroke:none;" d="M35.58,37.11v1.052h1.049V37.11H35.58z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M36.628,37.11v1.052h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8ED;stroke:none;" d="M34.531,37.11v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M36.628,36.059v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFC;stroke:none;" d="M36.628,37.11v-1.052H35.58v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A0A1BF;stroke:none;" d="M36.628,38.162H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M38.756,36.059h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M38.756,37.11h-1.079v1.052h1.079h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7282A9;stroke:none;" d="M38.756,38.162h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF8;stroke:none;" d="M38.756,36.059v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M34.531,36.059v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7A83AE;stroke:none;" d="M37.677,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF5;stroke:none;" d="M38.756,34.977v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#32325A;stroke:none;" d="M33.452,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#63639C;stroke:none;" d="M33.452,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F6F7;stroke:none;" d="M33.452,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#37325B;stroke:none;" d="M32.403,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#494278;stroke:none;" d="M32.403,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3D3368;stroke:none;" d="M31.354,32.873h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#352D5E;stroke:none;" d="M29.226,33.925v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3B3560;stroke:none;" d="M31.354,34.977v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFD8E2;stroke:none;" d="M31.354,34.977h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#352B60;stroke:none;" d="M29.226,33.925h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4DEE6;stroke:none;" d="M30.275,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F6;stroke:none;" d="M31.354,36.059h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M29.226,37.11v1.052h1.049h1.079V37.11h-1.079h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M31.354,37.11v1.052h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6A7DB1;stroke:none;" d="M31.354,38.162h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M30.275,36.059h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M31.354,36.059v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6781A8;stroke:none;" d="M30.275,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M33.452,36.059h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M33.452,37.11h-1.049v1.052h1.049V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7079A0;stroke:none;" d="M33.452,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECE7ED;stroke:none;" d="M32.403,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7485B3;stroke:none;" d="M32.403,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0E7ED;stroke:none;" d="M33.452,40.295v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4B5B8C;stroke:none;" d="M33.452,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9DAACD;stroke:none;" d="M33.452,39.214v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#31417C;stroke:none;" d="M33.452,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7E87A6;stroke:none;" d="M33.452,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#283C8B;stroke:none;" d="M32.403,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4091;stroke:none;" d="M32.403,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294497;stroke:none;" d="M31.354,39.214h-1.079v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#28498F;stroke:none;" d="M29.226,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#274296;stroke:none;" d="M31.354,41.347v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#39579A;stroke:none;" d="M31.354,41.347h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#27498E;stroke:none;" d="M29.226,39.214v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E5F99;stroke:none;" d="M30.275,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F5E5;stroke:none;" d="M31.354,42.398v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F1E8;stroke:none;" d="M31.354,43.48v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M30.275,43.48v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M31.354,43.48h-1.079v1.052h1.079V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E3EC;stroke:none;" d="M31.354,44.532h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F3F5;stroke:none;" d="M29.226,43.48v1.052h1.049V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DFE2EC;stroke:none;" d="M30.275,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F9F3;stroke:none;" d="M31.354,43.48v1.052h1.049V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAF6;stroke:none;" d="M33.452,42.398h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF7;stroke:none;" d="M33.452,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M33.452,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M33.452,42.398v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M33.452,43.48v1.052h1.079V43.48h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4A5B9A;stroke:none;" d="M32.403,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6F7;stroke:none;" d="M32.403,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M33.452,41.347v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#22488B;stroke:none;" d="M38.756,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#234A8D;stroke:none;" d="M38.756,41.347v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294480;stroke:none;" d="M38.756,39.214v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2B4582;stroke:none;" d="M38.756,40.295v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#235091;stroke:none;" d="M38.756,41.347h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4392;stroke:none;" d="M37.677,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A3C82;stroke:none;" d="M37.677,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M35.58,39.214h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M34.531,41.347h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBF7;stroke:none;" d="M35.58,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#626FA3;stroke:none;" d="M35.58,40.295v1.052h1.049v-1.052H35.58z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#626999;stroke:none;" d="M36.628,39.214H35.58v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A6B9C;stroke:none;" d="M36.628,41.347H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M34.531,43.48v1.052v1.052v1.052v1.081v1.052v1.052v1.052h1.049v-8.474h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A6D9D;stroke:none;" d="M36.628,42.398H35.58v8.474h1.049v-8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#27448D;stroke:none;" d="M38.756,42.398h-1.079v8.474h1.079v-8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4896;stroke:none;" d="M37.677,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#274391;stroke:none;" d="M37.677,42.398h-1.049v8.474h1.049v-8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#204B8C;stroke:none;" d="M38.756,41.347v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A1A9BE;stroke:none;" d="M34.531,38.162h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M34.531,44.532h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C7CA1;stroke:none;" d="M38.756,38.162v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ADAAC8;stroke:none;" d="M29.226,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3EBEF;stroke:none;" d="M29.226,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2ADCA;stroke:none;" d="M38.756,31.791v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6C999;stroke:none;" d="M59.884,20.133h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0D5CD;stroke:none;" d="M60.933,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9AB3C;stroke:none;" d="M59.884,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B18818;stroke:none;" d="M60.933,19.081v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D68714;stroke:none;" d="M58.835,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFE9CF;stroke:none;" d="M60.933,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C27F0F;stroke:none;" d="M59.884,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C78537;stroke:none;" d="M59.884,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1891C;stroke:none;" d="M58.835,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A87F1B;stroke:none;" d="M60.933,20.133v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E9A323;stroke:none;" d="M57.786,20.133v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5A282;stroke:none;" d="M55.658,20.133h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AB8961;stroke:none;" d="M56.707,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8783B7;stroke:none;" d="M55.658,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B7373;stroke:none;" d="M56.707,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D28713;stroke:none;" d="M57.786,20.133h-1.079v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#797FAF;stroke:none;" d="M55.658,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C08024;stroke:none;" d="M57.786,21.214h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6783D;stroke:none;" d="M57.786,22.266v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#956855;stroke:none;" d="M57.786,23.317v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#675D91;stroke:none;" d="M55.658,23.317h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4A4E91;stroke:none;" d="M56.707,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#52699B;stroke:none;" d="M55.658,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#909BC4;stroke:none;" d="M56.707,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F657E;stroke:none;" d="M57.786,23.317h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#566798;stroke:none;" d="M55.658,24.399v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D3C4D8;stroke:none;" d="M57.786,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EABE88;stroke:none;" d="M57.786,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5A46E;stroke:none;" d="M60.933,22.266v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5B184;stroke:none;" d="M60.933,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7C19B;stroke:none;" d="M59.884,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BC6D17;stroke:none;" d="M60.933,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D66139;stroke:none;" d="M60.933,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDB48A;stroke:none;" d="M58.835,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A97028;stroke:none;" d="M59.884,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF6B21;stroke:none;" d="M60.933,23.317v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6276A1;stroke:none;" d="M55.658,22.266v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C67921;stroke:none;" d="M58.835,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4A05C;stroke:none;" d="M58.835,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2D09C;stroke:none;" d="M60.933,21.214v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#647CA2;stroke:none;" d="M54.609,21.214v-1.081H53.53v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#828CB9;stroke:none;" d="M54.609,20.133v-1.052H53.53v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A7CA2;stroke:none;" d="M54.609,21.214H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7A87B1;stroke:none;" d="M53.53,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#858CB5;stroke:none;" d="M53.53,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E8EBF;stroke:none;" d="M52.481,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7480B5;stroke:none;" d="M51.433,19.081h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#747BAC;stroke:none;" d="M50.384,20.133v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C7BB4;stroke:none;" d="M51.433,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#535E9B;stroke:none;" d="M51.433,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#777BAA;stroke:none;" d="M52.481,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#505791;stroke:none;" d="M50.384,21.214v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#627398;stroke:none;" d="M52.481,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4E5FA7;stroke:none;" d="M52.481,22.266v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#586F98;stroke:none;" d="M52.481,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#595D90;stroke:none;" d="M51.433,22.266h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6E76AA;stroke:none;" d="M50.384,23.317v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8F8EB4;stroke:none;" d="M51.433,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8B1CC;stroke:none;" d="M51.433,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#445B8C;stroke:none;" d="M52.481,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9C0DD;stroke:none;" d="M50.384,24.399v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#99ABCF;stroke:none;" d="M52.481,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A5DA2;stroke:none;" d="M52.481,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6077AF;stroke:none;" d="M54.609,22.266H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#545798;stroke:none;" d="M54.609,23.317H53.53v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5B4D8A;stroke:none;" d="M54.609,24.399H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#57619A;stroke:none;" d="M50.384,22.266v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5467A6;stroke:none;" d="M53.53,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#655F8D;stroke:none;" d="M53.53,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BBCDD6;stroke:none;" d="M54.609,25.451v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ADB8C0;stroke:none;" d="M54.609,26.503v-1.052H53.53v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3C2DD;stroke:none;" d="M53.53,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A2A5B8;stroke:none;" d="M53.53,27.555v1.081h1.079v-1.081H53.53z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#595099;stroke:none;" d="M53.53,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4A588D;stroke:none;" d="M54.609,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#627194;stroke:none;" d="M54.609,26.503v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDC2D7;stroke:none;" d="M54.609,27.555v-1.052H53.53v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ACACB8;stroke:none;" d="M54.609,28.636H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#564F99;stroke:none;" d="M53.53,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#868CA2;stroke:none;" d="M52.481,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#425593;stroke:none;" d="M50.384,26.503h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#40518C;stroke:none;" d="M51.433,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#435393;stroke:none;" d="M50.384,26.503v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#364687;stroke:none;" d="M51.433,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#435188;stroke:none;" d="M51.433,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#373E7C;stroke:none;" d="M51.433,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#404C84;stroke:none;" d="M50.384,28.636v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#40508B;stroke:none;" d="M50.384,27.555v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4E5291;stroke:none;" d="M52.481,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4379;stroke:none;" d="M52.481,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3D3D7F;stroke:none;" d="M51.433,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#34306E;stroke:none;" d="M51.433,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#393472;stroke:none;" d="M50.384,31.791v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#69618E;stroke:none;" d="M51.433,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#22385F;stroke:none;" d="M51.433,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#504482;stroke:none;" d="M52.481,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C4484;stroke:none;" d="M52.481,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#424083;stroke:none;" d="M50.384,30.739v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8693A3;stroke:none;" d="M52.481,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3B2E81;stroke:none;" d="M52.481,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2AFC6;stroke:none;" d="M54.609,29.688H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0BAD2;stroke:none;" d="M54.609,30.739H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#968FB4;stroke:none;" d="M54.609,31.791H53.53v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#384387;stroke:none;" d="M54.609,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#636BA1;stroke:none;" d="M54.609,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#333877;stroke:none;" d="M50.384,29.688v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4E438A;stroke:none;" d="M53.53,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6AED2;stroke:none;" d="M53.53,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#475394;stroke:none;" d="M54.609,28.636v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CB6F10;stroke:none;" d="M59.884,25.451v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CA6111;stroke:none;" d="M59.884,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AA684E;stroke:none;" d="M60.933,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#986047;stroke:none;" d="M60.933,25.451v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA6C22;stroke:none;" d="M58.835,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#79504C;stroke:none;" d="M58.835,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BB753A;stroke:none;" d="M58.835,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#51326B;stroke:none;" d="M60.933,27.555h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#39358E;stroke:none;" d="M60.933,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4D4181;stroke:none;" d="M60.933,27.555v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#413978;stroke:none;" d="M59.884,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5792C;stroke:none;" d="M58.835,27.555h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B16A12;stroke:none;" d="M58.835,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C4757;stroke:none;" d="M60.933,26.503v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#88597B;stroke:none;" d="M57.786,26.503v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9E92C4;stroke:none;" d="M55.658,26.503h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5F518F;stroke:none;" d="M56.707,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A96932;stroke:none;" d="M56.707,27.555v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4D3870;stroke:none;" d="M56.707,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#573D6D;stroke:none;" d="M56.707,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9E6957;stroke:none;" d="M57.786,26.503h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BB752F;stroke:none;" d="M57.786,28.636h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5E4A6D;stroke:none;" d="M56.707,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#413757;stroke:none;" d="M56.707,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E90AE;stroke:none;" d="M56.707,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#623828;stroke:none;" d="M56.707,30.739v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#45214D;stroke:none;" d="M57.786,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A46822;stroke:none;" d="M57.786,29.688h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#83709D;stroke:none;" d="M57.786,31.791h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#79474C;stroke:none;" d="M57.786,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#393F86;stroke:none;" d="M60.933,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#283783;stroke:none;" d="M58.835,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A2E51;stroke:none;" d="M60.933,30.739v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#323460;stroke:none;" d="M60.933,31.791v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F6C90;stroke:none;" d="M60.933,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E3C84;stroke:none;" d="M58.835,30.739h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4D4F87;stroke:none;" d="M59.884,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#363D77;stroke:none;" d="M60.933,29.688v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#935244;stroke:none;" d="M58.835,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7963A9;stroke:none;" d="M58.835,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#353A87;stroke:none;" d="M60.933,28.636v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#656D96;stroke:none;" d="M50.384,25.451v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5C658C;stroke:none;" d="M55.658,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ABB0CE;stroke:none;" d="M55.658,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C26E0F;stroke:none;" d="M60.933,24.399v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ABAEC0;stroke:none;" d="M49.305,19.081h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1B0D4;stroke:none;" d="M48.256,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9397B0;stroke:none;" d="M49.305,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7A4CC;stroke:none;" d="M48.256,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9DA4C0;stroke:none;" d="M49.305,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#474C7B;stroke:none;" d="M47.207,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2BFD1;stroke:none;" d="M45.08,20.133h1.079v-1.052H45.08v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#888FA1;stroke:none;" d="M46.158,20.133H45.08v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9CA0C7;stroke:none;" d="M45.08,20.133v-1.052H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9CA0B3;stroke:none;" d="M46.158,21.214H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#53537F;stroke:none;" d="M47.207,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#505884;stroke:none;" d="M45.08,21.214v-1.081H44.03v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9B99C2;stroke:none;" d="M47.207,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8285B4;stroke:none;" d="M47.207,22.266v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C8AB6;stroke:none;" d="M47.207,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B8B8CD;stroke:none;" d="M45.08,23.317h1.079v-1.052H45.08v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7B7C97;stroke:none;" d="M46.158,23.317H45.08v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4A4B81;stroke:none;" d="M45.08,23.317v-1.052H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#565676;stroke:none;" d="M46.158,24.399H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#363870;stroke:none;" d="M47.207,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6767A0;stroke:none;" d="M45.08,24.399v-1.082H44.03v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#464B85;stroke:none;" d="M47.207,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#454F89;stroke:none;" d="M47.207,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9D6E4;stroke:none;" d="M49.305,22.266h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C7F9C;stroke:none;" d="M49.305,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#445A79;stroke:none;" d="M49.305,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4D5282;stroke:none;" d="M45.08,22.266v-1.052H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4D0E6;stroke:none;" d="M48.256,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#40528F;stroke:none;" d="M48.256,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ABB3D5;stroke:none;" d="M44.03,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#979AC0;stroke:none;" d="M44.03,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7984B3;stroke:none;" d="M44.03,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5D6496;stroke:none;" d="M42.981,21.214v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5857A1;stroke:none;" d="M42.981,20.133v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5D69A9;stroke:none;" d="M41.903,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#837B96;stroke:none;" d="M39.805,20.133h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B7370;stroke:none;" d="M40.854,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#695378;stroke:none;" d="M40.854,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#696691;stroke:none;" d="M41.903,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#75639E;stroke:none;" d="M41.903,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BCBAC0;stroke:none;" d="M41.903,22.266v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AC99AF;stroke:none;" d="M41.903,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D9EC1;stroke:none;" d="M39.805,23.317h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#998EAE;stroke:none;" d="M40.854,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8D6657;stroke:none;" d="M40.854,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAC0C8;stroke:none;" d="M41.903,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9B89F;stroke:none;" d="M41.903,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#64617E;stroke:none;" d="M41.903,23.317v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#424B86;stroke:none;" d="M44.03,22.266h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#373B7E;stroke:none;" d="M44.03,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3B3D85;stroke:none;" d="M44.03,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A5A6CE;stroke:none;" d="M42.981,21.214h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5F688D;stroke:none;" d="M42.981,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9588B2;stroke:none;" d="M44.03,25.451v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4D3E67;stroke:none;" d="M44.03,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A4816D;stroke:none;" d="M42.981,26.503v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#988DAB;stroke:none;" d="M42.981,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B07555;stroke:none;" d="M42.981,28.636v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3A3053;stroke:none;" d="M44.03,27.555v1.081h1.049v-1.081H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#695E84;stroke:none;" d="M44.03,26.503v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#827597;stroke:none;" d="M44.03,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ABA1C2;stroke:none;" d="M44.03,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A06948;stroke:none;" d="M42.981,27.555v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAB16A;stroke:none;" d="M41.903,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BD6814;stroke:none;" d="M39.805,26.503h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CB6E12;stroke:none;" d="M40.854,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAAD74;stroke:none;" d="M40.854,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BA6F2E;stroke:none;" d="M40.854,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E7070;stroke:none;" d="M40.854,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECA85D;stroke:none;" d="M41.903,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2CDBF;stroke:none;" d="M41.903,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#838AB7;stroke:none;" d="M40.854,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8994BE;stroke:none;" d="M40.854,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F6F7;stroke:none;" d="M40.854,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D7E1E6;stroke:none;" d="M40.854,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M41.903,30.739v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7E8A9A;stroke:none;" d="M41.903,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF9;stroke:none;" d="M41.903,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CFCFD2;stroke:none;" d="M41.903,29.688v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#787294;stroke:none;" d="M44.03,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1BDD2;stroke:none;" d="M44.03,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAFA;stroke:none;" d="M44.03,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#938CB4;stroke:none;" d="M44.03,29.688v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8F8CAD;stroke:none;" d="M44.03,30.739v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDC2B7;stroke:none;" d="M42.981,28.636h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M42.981,31.791h-1.079v1.082v1.052h1.079v-1.052v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4C456A;stroke:none;" d="M44.03,28.636v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#454F8F;stroke:none;" d="M49.305,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#464A88;stroke:none;" d="M48.256,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3F477E;stroke:none;" d="M48.256,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3C3D73;stroke:none;" d="M48.256,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3F4A85;stroke:none;" d="M49.305,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3F417E;stroke:none;" d="M49.305,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4B4D86;stroke:none;" d="M48.256,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#423E79;stroke:none;" d="M47.207,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#443B70;stroke:none;" d="M45.08,26.503h1.079v-1.052H45.08v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#524B7A;stroke:none;" d="M46.158,26.503H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#424172;stroke:none;" d="M46.158,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#534C76;stroke:none;" d="M46.158,28.636v-1.081H45.08v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#403A66;stroke:none;" d="M46.158,28.636H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#413E73;stroke:none;" d="M47.207,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4C487E;stroke:none;" d="M47.207,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#433D6D;stroke:none;" d="M46.158,29.688H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9995BD;stroke:none;" d="M46.158,30.739H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D9BB2;stroke:none;" d="M46.158,31.791H45.08v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#585184;stroke:none;" d="M46.158,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#383069;stroke:none;" d="M47.207,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#363169;stroke:none;" d="M47.207,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#928FAF;stroke:none;" d="M47.207,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#474282;stroke:none;" d="M47.207,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#313073;stroke:none;" d="M49.305,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3A326E;stroke:none;" d="M49.305,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5D5781;stroke:none;" d="M49.305,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#403F79;stroke:none;" d="M48.256,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9892BA;stroke:none;" d="M48.256,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#716CAB;stroke:none;" d="M45.08,24.399H44.03v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9DBE0;stroke:none;" d="M45.08,31.791H44.03v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEA8C3;stroke:none;" d="M49.305,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#89859C;stroke:none;" d="M48.256,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9D6E5;stroke:none;" d="M49.305,33.925h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F2F4;stroke:none;" d="M48.256,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M49.305,34.977h-1.049v1.082h1.049h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#948CA9;stroke:none;" d="M49.305,32.873v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9796BD;stroke:none;" d="M49.305,33.925v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F0F1;stroke:none;" d="M46.158,32.873H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M45.08,34.977h1.079v-1.052H45.08v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M46.158,34.977H45.08v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M45.08,34.977v-1.052H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M46.158,33.925v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3C2CC;stroke:none;" d="M47.207,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M45.08,33.925v-1.052H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF7;stroke:none;" d="M47.207,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M46.158,36.059H45.08H44.03v1.052h1.049h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6F7;stroke:none;" d="M45.08,37.11v1.052h1.079V37.11H45.08z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M45.08,38.162V37.11H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7983AA;stroke:none;" d="M46.158,38.162H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M46.158,37.11v1.052h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M47.207,37.11v1.052h1.049h1.049h1.079V37.11h-1.079h-1.049h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8ED;stroke:none;" d="M47.207,36.059v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M47.207,37.11v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7381AE;stroke:none;" d="M47.207,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBEF;stroke:none;" d="M49.305,36.059h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7084A8;stroke:none;" d="M49.305,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M49.305,36.059v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M45.08,36.059v-1.082H44.03h-1.049v1.082h1.049h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFA;stroke:none;" d="M48.256,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F83AB;stroke:none;" d="M48.256,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M44.03,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF7;stroke:none;" d="M44.03,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M42.981,34.977v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBEA;stroke:none;" d="M40.854,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M40.854,33.925h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF5;stroke:none;" d="M40.854,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M40.854,33.925v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAE9;stroke:none;" d="M41.903,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAF6;stroke:none;" d="M41.903,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M40.854,36.059h-1.049v1.052h1.049h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M40.854,37.11h-1.049v1.052h1.049V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7780AB;stroke:none;" d="M40.854,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M40.854,37.11v1.052h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F9F3;stroke:none;" d="M41.903,37.11v1.052h1.079V37.11h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F8F2;stroke:none;" d="M41.903,36.059v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3C4D7;stroke:none;" d="M41.903,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF4;stroke:none;" d="M44.03,36.059h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M44.03,37.11h-1.049v1.052h1.049V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBFB;stroke:none;" d="M44.03,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M42.981,34.977h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M42.981,38.162h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A8B3D0;stroke:none;" d="M44.03,40.295v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M44.03,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A9B4D1;stroke:none;" d="M44.03,39.214v1.081h1.049v-1.081H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M44.03,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M44.03,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF9;stroke:none;" d="M42.981,41.347v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M42.981,40.295v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#314388;stroke:none;" d="M40.854,39.214h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C4692;stroke:none;" d="M39.805,41.347h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#274692;stroke:none;" d="M40.854,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9FACD0;stroke:none;" d="M40.854,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9DA4CA;stroke:none;" d="M41.903,39.214h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9DAED1;stroke:none;" d="M41.903,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#29458D;stroke:none;" d="M40.854,42.398h-1.049v8.474h1.049v-8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9EADCF;stroke:none;" d="M41.903,42.398h-1.049v8.474h1.049v-8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M44.03,42.398h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M42.981,43.48v-1.082h-1.079v8.474h1.079V49.82v-1.052v-1.052v-1.081v-1.052v-1.052V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF9;stroke:none;" d="M44.03,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M44.03,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0BBCC;stroke:none;" d="M44.03,42.398v1.082h1.049v-1.082H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B3BED1;stroke:none;" d="M44.03,43.48v1.052h1.049V43.48H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9F2;stroke:none;" d="M42.981,41.347h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2B7D2;stroke:none;" d="M44.03,41.347v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#25438C;stroke:none;" d="M49.305,40.295v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#224686;stroke:none;" d="M49.305,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#28448D;stroke:none;" d="M49.305,39.214v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254383;stroke:none;" d="M49.305,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F437A;stroke:none;" d="M49.305,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#284C94;stroke:none;" d="M48.256,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254288;stroke:none;" d="M48.256,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#304381;stroke:none;" d="M46.158,39.214H45.08v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E4086;stroke:none;" d="M45.08,41.347h1.079v-1.052H45.08v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#334187;stroke:none;" d="M46.158,41.347H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4397;stroke:none;" d="M46.158,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#223C87;stroke:none;" d="M47.207,39.214h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2B4495;stroke:none;" d="M47.207,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#23488C;stroke:none;" d="M47.207,42.398v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#25459B;stroke:none;" d="M47.207,43.48v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#273D8C;stroke:none;" d="M45.08,43.48h1.079v-1.082H45.08v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#324691;stroke:none;" d="M46.158,43.48H45.08v1.052h1.079V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#30438C;stroke:none;" d="M46.158,44.532H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#244198;stroke:none;" d="M47.207,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#233D93;stroke:none;" d="M47.207,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1E4083;stroke:none;" d="M47.207,43.48v1.052h1.049V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C4686;stroke:none;" d="M49.305,42.398h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#213D7E;stroke:none;" d="M49.305,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24438A;stroke:none;" d="M49.305,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#424D80;stroke:none;" d="M49.305,42.398v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#42538E;stroke:none;" d="M49.305,43.48v1.052h1.079V43.48h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#26498B;stroke:none;" d="M48.256,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#244889;stroke:none;" d="M48.256,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F518C;stroke:none;" d="M49.305,41.347v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C6CBD8;stroke:none;" d="M45.08,38.162H44.03v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEB9CC;stroke:none;" d="M45.08,44.532H44.03v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7485AD;stroke:none;" d="M49.305,38.162v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8F88B4;stroke:none;" d="M60.933,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1C7D6;stroke:none;" d="M58.835,33.925v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#62667F;stroke:none;" d="M58.835,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M60.933,33.925v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E5E6;stroke:none;" d="M60.933,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF9;stroke:none;" d="M60.933,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEAEAA;stroke:none;" d="M58.835,33.925h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M59.884,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6B6497;stroke:none;" d="M58.835,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A3A0C2;stroke:none;" d="M60.933,32.873v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#556074;stroke:none;" d="M56.707,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3A375C;stroke:none;" d="M55.658,34.977h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F1F4;stroke:none;" d="M56.707,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#38335E;stroke:none;" d="M55.658,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#454565;stroke:none;" d="M56.707,33.925v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#716FAE;stroke:none;" d="M57.786,32.873h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E334C;stroke:none;" d="M55.658,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1EFF2;stroke:none;" d="M57.786,34.977h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M56.707,36.059h-1.049v1.052h1.049h1.079h1.049v-1.052h-1.049h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M56.707,37.11h-1.049v1.052h1.049V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M55.658,38.162V37.11h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7183AA;stroke:none;" d="M56.707,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M56.707,37.11v1.052h1.079V37.11h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M57.786,37.11v1.052h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7D88A4;stroke:none;" d="M57.786,38.162h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F1;stroke:none;" d="M55.658,37.11v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F2;stroke:none;" d="M60.933,36.059h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF7;stroke:none;" d="M58.835,37.11v1.052h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2EFF3;stroke:none;" d="M60.933,37.11v1.052h1.079V37.11h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M60.933,38.162V37.11h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DAE2EA;stroke:none;" d="M60.933,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F7F0;stroke:none;" d="M58.835,37.11h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M59.884,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M60.933,36.059v1.052h1.079h1.049v-1.052v-1.082h-1.049h-1.079v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9D4DC;stroke:none;" d="M55.658,36.059v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M58.835,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7EBEE;stroke:none;" d="M58.835,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#302A58;stroke:none;" d="M54.609,34.977v-1.052H53.53v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#342A6C;stroke:none;" d="M54.609,33.925v-1.052H53.53v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBE8ED;stroke:none;" d="M54.609,34.977H53.53v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3C386A;stroke:none;" d="M53.53,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#473B79;stroke:none;" d="M53.53,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7C7390;stroke:none;" d="M51.433,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A5885;stroke:none;" d="M51.433,33.925h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F6F7;stroke:none;" d="M51.433,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#312F60;stroke:none;" d="M51.433,33.925v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5D6089;stroke:none;" d="M52.481,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M52.481,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF6;stroke:none;" d="M51.433,36.059h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M51.433,37.11h-1.049v1.052h1.049V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7484B0;stroke:none;" d="M51.433,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAF9;stroke:none;" d="M51.433,37.11v1.052h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M52.481,37.11v1.052h1.049V37.11h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEB;stroke:none;" d="M52.481,36.059h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F82AC;stroke:none;" d="M52.481,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8E8;stroke:none;" d="M52.481,36.059v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF2;stroke:none;" d="M54.609,36.059H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M54.609,37.11H53.53v1.052h1.079V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7087B3;stroke:none;" d="M54.609,38.162H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E4E8;stroke:none;" d="M53.53,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6E83AF;stroke:none;" d="M53.53,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#274389;stroke:none;" d="M54.609,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1C3785;stroke:none;" d="M54.609,41.347v-1.052H53.53v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#28438D;stroke:none;" d="M54.609,39.214v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D4998;stroke:none;" d="M54.609,40.295v-1.081H53.53v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4C66A2;stroke:none;" d="M54.609,41.347H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4392;stroke:none;" d="M53.53,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4396;stroke:none;" d="M53.53,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#253E92;stroke:none;" d="M51.433,39.214h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#253F94;stroke:none;" d="M50.384,41.347h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3A589C;stroke:none;" d="M51.433,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E4692;stroke:none;" d="M51.433,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#22398C;stroke:none;" d="M52.481,39.214h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#455A93;stroke:none;" d="M52.481,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF5E4;stroke:none;" d="M52.481,42.398v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6EEF1;stroke:none;" d="M52.481,43.48v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDEEEF;stroke:none;" d="M50.384,43.48h1.049v-1.082h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M51.433,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C5DAE8;stroke:none;" d="M51.433,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M52.481,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCE7ED;stroke:none;" d="M52.481,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M52.481,43.48v1.052h1.049V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F9EC;stroke:none;" d="M54.609,42.398H53.53v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF8;stroke:none;" d="M54.609,43.48H53.53v1.052h1.079V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8E4E8;stroke:none;" d="M54.609,44.532H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1EFF2;stroke:none;" d="M54.609,42.398v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M54.609,43.48v1.052h1.049V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3D5792;stroke:none;" d="M53.53,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DBE8EC;stroke:none;" d="M53.53,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E5A8F;stroke:none;" d="M54.609,41.347v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8399BE;stroke:none;" d="M60.933,39.214h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9F7;stroke:none;" d="M58.835,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M58.835,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#41588A;stroke:none;" d="M59.884,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E4378;stroke:none;" d="M60.933,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C478F;stroke:none;" d="M60.933,40.295v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M59.884,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8CFC0;stroke:none;" d="M59.884,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F3F4;stroke:none;" d="M58.835,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#334D8A;stroke:none;" d="M60.933,39.214v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#243C78;stroke:none;" d="M56.707,39.214h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#31497F;stroke:none;" d="M55.658,41.347h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7288AD;stroke:none;" d="M56.707,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C4D2E4;stroke:none;" d="M56.707,40.295v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C7EA5;stroke:none;" d="M57.786,39.214h-1.079v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9FA;stroke:none;" d="M57.786,41.347h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M57.786,42.398v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F6;stroke:none;" d="M57.786,43.48v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M55.658,43.48h1.049v-1.082h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M56.707,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF5;stroke:none;" d="M56.707,44.532h-1.049v1.052h1.049h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M57.786,43.48h-1.079v1.052h1.079V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E7EBEE;stroke:none;" d="M57.786,43.48v1.052h1.049V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#25448A;stroke:none;" d="M60.933,42.398v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#214A7D;stroke:none;" d="M60.933,43.48v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8591B5;stroke:none;" d="M59.884,43.48v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#214796;stroke:none;" d="M60.933,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#234A9C;stroke:none;" d="M60.933,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#516296;stroke:none;" d="M58.835,43.48v1.052h1.049V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#354892;stroke:none;" d="M59.884,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254191;stroke:none;" d="M60.933,43.48v1.052h1.079V43.48h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFB;stroke:none;" d="M58.835,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B6C2D6;stroke:none;" d="M58.835,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#223A86;stroke:none;" d="M60.933,41.347v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#647AA8;stroke:none;" d="M55.658,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4E8E9;stroke:none;" d="M55.658,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7381A8;stroke:none;" d="M60.933,38.162v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#57517D;stroke:none;" d="M50.384,31.791h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#395597;stroke:none;" d="M50.384,44.532h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#928FAC;stroke:none;" d="M60.933,31.791v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#817DA5;stroke:none;" d="M39.805,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#27428B;stroke:none;" d="M39.805,42.398h-1.049v8.474h1.049v-8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEA994;stroke:none;" d="M60.933,18.029v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M76.816,0v1.052v2.133v2.134v2.104v1.052h-1.079v1.082h-1.049v1.051v2.104v1.082v2.104h1.049v1.082h1.079v1.052v1.052v1.052v1.081v1.052v2.134v1.052v1.052h-1.079v-1.052h-1.049
+ h-1.049v1.052h1.049v1.052v1.081h-1.049H72.56h-1.049v1.052v1.052v1.052h-1.049h-1.049v-1.052h-1.079v1.052v1.082h1.079v1.052h-1.079v1.052v1.082v1.052v1.052v1.052v1.081v1.052v1.052h1.079h1.049h1.049h1.049h1.079h1.049h1.049h1.079v2.134v1.052v1.052v1.081
+ v1.052v1.052v1.052v2.134v1.052v1.082v1.052v1.052v1.052h1.049V0h-1.049z M75.737,11.658h1.079v2.134h-1.079v-2.134z M72.56,31.791h1.079v-1.052h1.049v-1.052h1.049v1.052v1.052v1.082h-1.049h-1.049H72.56v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M76.816,11.658h-1.079v2.134h1.079v-2.134z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M73.639,31.791H72.56v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M73.639,30.739v1.052v1.082h1.049v-1.082h1.049v-1.052h-1.049h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M75.737,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M75.737,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFB;stroke:none;" d="M76.816,1.052V0h-2.128v1.052h1.049h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF9;stroke:none;" d="M74.688,2.133h1.049V1.052h-1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFA;stroke:none;" d="M75.737,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M74.688,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M75.737,1.052v1.081v1.052h1.079V1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M74.688,2.133V1.052h-1.049v2.133H72.56v1.052v1.082h1.079V4.236h1.049V3.185V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M73.639,0H72.56v1.052h1.079V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M72.56,1.052V0h-1.049v1.052h-1.049V0h-2.128v1.052v1.081h1.079v1.052h1.049v2.134h1.049V4.236V3.185V2.133h1.049V1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M73.639,1.052H72.56v1.081v1.052h1.079V1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFB;stroke:none;" d="M72.56,4.236V3.185h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M72.56,5.318V4.236h-1.049v1.082V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M73.639,5.318H72.56V6.37v1.052h1.079V6.37V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF8;stroke:none;" d="M73.639,4.236v1.082h1.049V4.236h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M75.737,3.185h-1.049v1.052v1.082h2.128V3.185h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFA;stroke:none;" d="M76.816,5.318h-2.128V6.37h1.049v1.052h1.079V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M72.56,3.185V2.133h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1EDEA;stroke:none;" d="M74.688,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M64.109,1.052v1.081h1.079V1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M64.109,2.133V1.052V0H63.06v1.052v1.081v1.052h1.049v1.052h1.079V2.133h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF7;stroke:none;" d="M65.188,1.052v1.081h1.049V1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M66.237,2.133h-1.049v2.104h1.049v1.082h1.049V4.236V3.185V2.133V1.052V0h-2.098v1.052h1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M64.109,1.052h1.079V0h-1.079v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M63.06,0h-1.049v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M63.06,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAF5;stroke:none;" d="M63.06,3.185h-1.049v1.052h1.049V3.185z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F3EE;stroke:none;" d="M63.06,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M63.06,3.185v1.052h1.049V3.185H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M63.06,4.236v1.082V6.37h1.049h1.079V5.318h-1.079V4.236H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M64.109,5.318h1.079V4.236h-1.079v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF7;stroke:none;" d="M65.188,5.318h1.049V4.236h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M66.237,5.318h-1.049V6.37v1.052h1.049v1.052h1.049V7.422V6.37h-1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M71.511,1.052V0h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M68.334,0h-1.049v1.052h1.049V0z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M68.334,1.052h-1.049v1.081h1.049V1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M68.334,2.133h-1.049v1.052h1.049V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M67.286,4.236h1.049V3.185h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M68.334,4.236h-1.049v1.082V6.37h1.049V4.236z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M68.334,3.185v1.052V6.37h1.079V5.318V3.185h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M69.414,5.318h1.049V3.185h-1.049v2.134z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M70.462,5.318h-1.049V6.37v1.052v1.052h1.049v1.082h1.049V8.474V7.422V6.37V5.318h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M69.414,2.133h-1.079v1.052h1.079V2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M67.286,5.318h-1.049V6.37h1.049V5.318z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M69.414,7.422V6.37h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFA;stroke:none;" d="M69.414,8.474V7.422h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M70.462,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF8;stroke:none;" d="M71.511,6.37v1.052h1.049V6.37h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M71.511,7.422v1.052h1.049V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M67.286,8.474h1.049V7.422h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M68.334,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M67.286,7.422h1.049V6.37h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M67.286,10.606h1.049V9.556h-1.049v1.051z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M68.334,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E2E7;stroke:none;" d="M67.286,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CACCD5;stroke:none;" d="M67.286,11.658v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5B7C7;stroke:none;" d="M68.334,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M68.334,9.556v1.051h1.079V9.556h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M68.334,10.606v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M71.511,9.556h-1.049v1.051v1.052h-1.049v1.052v1.082h1.049v1.052v2.134h1.049v-1.082v-1.052v-1.052v-2.134v-1.052V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF9;stroke:none;" d="M70.462,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M71.511,9.556v1.051h1.049V8.474h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M69.414,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M71.511,10.606v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M67.286,9.556V8.474h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF7;stroke:none;" d="M69.414,8.474h-1.079v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M69.414,11.658h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCD8DC;stroke:none;" d="M64.109,7.422v1.052h1.079V7.422h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ABA7AD;stroke:none;" d="M64.109,8.474V7.422H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M65.188,7.422v1.052h1.049V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0D2DE;stroke:none;" d="M66.237,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M65.188,7.422V6.37h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#989CB9;stroke:none;" d="M65.188,8.474h-1.079v1.082h1.079V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0DCE0;stroke:none;" d="M64.109,7.422V6.37H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C8C3C0;stroke:none;" d="M63.06,6.37h-1.049v1.052h1.049V6.37z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9F9A96;stroke:none;" d="M63.06,7.422h-1.049v1.052h1.049V7.422z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A3A9BD;stroke:none;" d="M63.06,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D6DBE4;stroke:none;" d="M63.06,9.556h-1.049v1.051h1.049V9.556z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1B9CE;stroke:none;" d="M63.06,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7B0CB;stroke:none;" d="M63.06,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B7BCD5;stroke:none;" d="M63.06,9.556v1.051h1.049V9.556H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BFC5DB;stroke:none;" d="M63.06,10.606v1.052h1.049v-1.052H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E90A7;stroke:none;" d="M66.237,10.606V9.556h-1.049v1.051h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C92B0;stroke:none;" d="M65.188,10.606V9.556h-1.079v1.051h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A3A7C1;stroke:none;" d="M66.237,10.606h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3C9DC;stroke:none;" d="M66.237,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BCC2D9;stroke:none;" d="M64.109,10.606v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9EA6CA;stroke:none;" d="M65.188,11.658h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9499B6;stroke:none;" d="M64.109,8.474H63.06v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8B96B8;stroke:none;" d="M64.109,11.658H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7E86A9;stroke:none;" d="M65.188,13.792h1.049V12.71h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7C86AB;stroke:none;" d="M66.237,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8995B8;stroke:none;" d="M65.188,13.792V12.71h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A6ACC9;stroke:none;" d="M66.237,12.71v1.082h1.049V12.71h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#94A0C3;stroke:none;" d="M64.109,13.792V12.71H63.06v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8793B9;stroke:none;" d="M66.237,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8A98BD;stroke:none;" d="M65.188,14.844v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8696BC;stroke:none;" d="M65.188,14.844h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8C9CC1;stroke:none;" d="M64.109,14.844v-1.052H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8388AD;stroke:none;" d="M66.237,13.792v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#95A3C5;stroke:none;" d="M62.011,14.844h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8F9EC2;stroke:none;" d="M63.06,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9BA4C7;stroke:none;" d="M62.011,13.792h1.049V12.71h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8392B9;stroke:none;" d="M62.011,16.978h1.049v-1.082h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7B8FA7;stroke:none;" d="M63.06,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#919297;stroke:none;" d="M63.06,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#899AC0;stroke:none;" d="M63.06,15.896v1.082h1.049v-1.082H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7D96B0;stroke:none;" d="M63.06,16.978v1.052h1.049v-1.052H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6A73A1;stroke:none;" d="M66.237,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7E8CB4;stroke:none;" d="M66.237,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7D8FB6;stroke:none;" d="M65.188,16.978v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F78B7;stroke:none;" d="M66.237,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#617AA1;stroke:none;" d="M66.237,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7A86BD;stroke:none;" d="M64.109,16.978v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6685B6;stroke:none;" d="M65.188,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5864A9;stroke:none;" d="M66.237,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8294B9;stroke:none;" d="M64.109,14.844H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7188A7;stroke:none;" d="M64.109,18.029H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#626A94;stroke:none;" d="M66.237,14.844v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M71.511,13.792v1.052h1.049h1.079v2.134v2.104h1.049v-1.052v-1.052v-1.082v-2.104h-1.049V12.71H72.56v1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9FA;stroke:none;" d="M69.414,14.844h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F5F7;stroke:none;" d="M70.462,14.844h-1.049v1.052v1.082h1.049v-2.134z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CECBD8;stroke:none;" d="M69.414,14.844v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECEAEE;stroke:none;" d="M69.414,13.792V12.71h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ACB0C9;stroke:none;" d="M67.286,13.792h1.049V12.71h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ADB1D1;stroke:none;" d="M68.334,13.792h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9A9FC5;stroke:none;" d="M68.334,14.844h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#858AB4;stroke:none;" d="M67.286,16.978h1.049v-1.082h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#73909C;stroke:none;" d="M68.334,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8373AE;stroke:none;" d="M68.334,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A29FB8;stroke:none;" d="M68.334,15.896v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9192BB;stroke:none;" d="M68.334,16.978v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M71.511,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M71.511,15.896v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF7;stroke:none;" d="M71.511,18.029h-1.049v1.052v1.052h1.049v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M71.511,16.978v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D4D7DD;stroke:none;" d="M70.462,16.978h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2E4E8;stroke:none;" d="M70.462,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1AEC3;stroke:none;" d="M69.414,14.844h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEAFD4;stroke:none;" d="M69.414,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M71.511,14.844v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D0D3DF;stroke:none;" d="M67.286,11.658h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#646995;stroke:none;" d="M67.286,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M71.511,11.658v2.134h1.049V12.71h1.079v-1.052H72.56h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF7F4;stroke:none;" d="M74.688,7.422v1.052h1.049V7.422h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2CAC7;stroke:none;" d="M74.688,8.474V7.422h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF9;stroke:none;" d="M76.816,8.474V7.422h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF8;stroke:none;" d="M74.688,6.37v1.052h1.049V6.37h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DED7D5;stroke:none;" d="M74.688,7.422V6.37h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M75.737,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF8;stroke:none;" d="M73.639,7.422H72.56v1.052h1.079V7.422z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M73.639,8.474H72.56v2.133v1.052h1.079v-1.052V9.556V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M73.639,9.556v1.051h1.049V9.556h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M73.639,10.606v1.052v1.052h1.049v-2.104h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M74.688,8.474h-1.049v1.082h1.049V8.474z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFC;stroke:none;" d="M74.688,13.792V12.71h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M73.639,14.844H72.56v1.052v1.082h1.079v-2.134z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M73.639,16.978H72.56v1.052v1.052h1.079v-2.104z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M75.737,16.978v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M76.816,16.978h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M76.816,18.029h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M74.688,18.029h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M75.737,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M72.56,18.029h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFC;stroke:none;" d="M75.737,20.133h1.079v-1.052h-1.079v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M76.816,20.133h-1.079v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M75.737,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF7;stroke:none;" d="M74.688,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;stroke:none;" d="M76.816,21.214h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M75.737,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBF9;stroke:none;" d="M75.737,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M74.688,21.214v-1.081h-1.049v2.133v1.052h1.049v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M73.639,19.081H72.56v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M72.56,20.133v-1.052h-1.049v1.052v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M73.639,20.133H72.56v1.081v1.052h1.079v-2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M73.639,22.266H72.56v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9F7;stroke:none;" d="M72.56,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M73.639,23.317H72.56v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M72.56,24.399v-1.082h-1.049v1.082v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M73.639,24.399H72.56v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF8;stroke:none;" d="M73.639,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M74.688,23.317v1.082v1.052h1.049v-1.052v-2.134h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M75.737,22.266v2.134h1.079v-2.134h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFB;stroke:none;" d="M76.816,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M72.56,22.266v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M74.688,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M76.816,26.503v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M74.688,28.636v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M74.688,27.555v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M73.639,26.503v-1.052H72.56v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M72.56,26.503v-1.052h-1.049h-1.049v1.052h-1.049v1.052h-1.079v1.081v1.052h1.079v-1.052h2.098v-2.133h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M72.56,27.555v1.081h1.079v-1.081H72.56z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M72.56,28.636v-1.081v-1.052h-1.049v2.133h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M73.639,26.503H72.56v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DADDE2;stroke:none;" d="M70.462,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9F4;stroke:none;" d="M71.511,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9394BD;stroke:none;" d="M69.414,20.133v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF9;stroke:none;" d="M71.511,21.214h-1.049v1.052v1.052v1.082h1.049v-1.082v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7CBD3;stroke:none;" d="M69.414,20.133v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#515381;stroke:none;" d="M69.414,21.214v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DDE0E5;stroke:none;" d="M70.462,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A9ADC7;stroke:none;" d="M67.286,21.214h1.049v-1.081h-1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6576A8;stroke:none;" d="M68.334,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5B6986;stroke:none;" d="M67.286,21.214v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9E81B5;stroke:none;" d="M67.286,20.133h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5954A1;stroke:none;" d="M67.286,20.133v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#444A91;stroke:none;" d="M67.286,23.317h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#303574;stroke:none;" d="M68.334,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A4ADD2;stroke:none;" d="M67.286,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#434D66;stroke:none;" d="M67.286,24.399v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#334384;stroke:none;" d="M68.334,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#454775;stroke:none;" d="M68.334,22.266v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#666896;stroke:none;" d="M68.334,23.317v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAECEF;stroke:none;" d="M70.462,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9F4;stroke:none;" d="M71.511,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F7F8;stroke:none;" d="M69.414,23.317v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M70.462,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AFC7CD;stroke:none;" d="M67.286,22.266v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#464876;stroke:none;" d="M69.414,21.214h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#989AC2;stroke:none;" d="M69.414,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5368A8;stroke:none;" d="M65.188,20.133h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#585CA1;stroke:none;" d="M66.237,20.133h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6376A4;stroke:none;" d="M65.188,20.133v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8D81B1;stroke:none;" d="M64.109,20.133v-1.052H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F719D;stroke:none;" d="M66.237,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#85738F;stroke:none;" d="M65.188,21.214v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5E3C40;stroke:none;" d="M65.188,21.214h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AF7F4F;stroke:none;" d="M64.109,21.214v-1.081H63.06v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B77D1D;stroke:none;" d="M62.011,21.214h1.049v-1.081h-1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6B275;stroke:none;" d="M63.06,21.214h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B29172;stroke:none;" d="M62.011,20.133h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5BC9F;stroke:none;" d="M62.011,23.317h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AA7E27;stroke:none;" d="M63.06,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9D691F;stroke:none;" d="M63.06,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5CCC0;stroke:none;" d="M63.06,22.266v1.052h1.049v-1.052H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9A7F6A;stroke:none;" d="M63.06,23.317v1.082h1.049v-1.082H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7A9CF;stroke:none;" d="M66.237,23.317v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A08EA2;stroke:none;" d="M65.188,23.317v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0C4DD;stroke:none;" d="M66.237,23.317h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ACAFBA;stroke:none;" d="M66.237,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A89AC7;stroke:none;" d="M64.109,23.317v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F5C90;stroke:none;" d="M65.188,24.399h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C1833F;stroke:none;" d="M64.109,21.214H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6F4577;stroke:none;" d="M64.109,24.399H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A4ACD0;stroke:none;" d="M65.188,25.451v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#354681;stroke:none;" d="M65.188,26.503v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9795B0;stroke:none;" d="M66.237,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#323369;stroke:none;" d="M66.237,25.451v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#374996;stroke:none;" d="M64.109,26.503v-1.052H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#787695;stroke:none;" d="M64.109,27.555v1.081h1.079v-1.081h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#323D72;stroke:none;" d="M64.109,28.636v-1.081H63.06v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#827487;stroke:none;" d="M66.237,27.555h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C7B3CA;stroke:none;" d="M66.237,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4E4152;stroke:none;" d="M66.237,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#807296;stroke:none;" d="M65.188,28.636h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#525C87;stroke:none;" d="M64.109,27.555h1.079v-1.052h-1.079v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3B4B8B;stroke:none;" d="M64.109,27.555v-1.052H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#413C60;stroke:none;" d="M66.237,26.503v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5A5186;stroke:none;" d="M63.06,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#313A7B;stroke:none;" d="M62.011,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#403F7B;stroke:none;" d="M63.06,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#35407D;stroke:none;" d="M63.06,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F3463;stroke:none;" d="M63.06,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8182A0;stroke:none;" d="M63.06,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8A8C9D;stroke:none;" d="M63.06,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#676290;stroke:none;" d="M63.06,29.688v1.052h1.049v-1.052H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E88AA;stroke:none;" d="M63.06,30.739v1.052h1.049v-1.052H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B4A5CA;stroke:none;" d="M66.237,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A8A0C6;stroke:none;" d="M64.109,30.739v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M66.237,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1EDF2;stroke:none;" d="M66.237,31.791v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M66.237,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9B8BB8;stroke:none;" d="M64.109,30.739h1.079v-1.052h-1.079v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFC;stroke:none;" d="M65.188,31.791h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M66.237,29.688v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3B3D6D;stroke:none;" d="M64.109,28.636H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BEC0CA;stroke:none;" d="M64.109,31.791H63.06v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4DCE2;stroke:none;" d="M66.237,28.636v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M70.462,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBEAEA;stroke:none;" d="M69.414,26.503v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M71.511,28.636h-2.098v1.052h1.049h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M69.414,27.555v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#343787;stroke:none;" d="M68.334,26.503v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E0EA;stroke:none;" d="M67.286,27.555v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8987B7;stroke:none;" d="M68.334,26.503h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M68.334,28.636h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EFF6F2;stroke:none;" d="M68.334,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBFC;stroke:none;" d="M68.334,30.739h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M68.334,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M68.334,29.688v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M71.511,29.688h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M69.414,30.739v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M71.511,31.791v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M69.414,30.739h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E4485;stroke:none;" d="M67.286,24.399h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M67.286,31.791h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M69.414,33.925v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M67.286,34.977h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F2;stroke:none;" d="M68.334,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAFA;stroke:none;" d="M67.286,34.977v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M67.286,33.925h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M67.286,33.925v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBF9EB;stroke:none;" d="M67.286,37.11h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M68.334,37.11h-1.049v1.052h1.049V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M67.286,37.11v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M67.286,38.162V37.11h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M68.334,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M67.286,36.059v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEE;stroke:none;" d="M66.237,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF5;stroke:none;" d="M64.109,33.925v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF7;stroke:none;" d="M64.109,34.977v-1.052H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M65.188,33.925v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M66.237,34.977h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EDF5E5;stroke:none;" d="M65.188,33.925v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8EC;stroke:none;" d="M65.188,34.977h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF9;stroke:none;" d="M64.109,33.925v-1.052H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D2D6DC;stroke:none;" d="M63.06,32.873h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FAFA;stroke:none;" d="M63.06,33.925h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M63.06,37.11h-1.049v1.052h1.049V37.11z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C7FAA;stroke:none;" d="M63.06,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M63.06,36.059v1.052h1.049v-1.052H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M63.06,37.11v1.052h1.049h1.079V37.11h-1.079H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M66.237,36.059h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M66.237,38.162V37.11h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7889AC;stroke:none;" d="M66.237,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M65.188,36.059h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#647E9D;stroke:none;" d="M65.188,38.162h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M64.109,34.977H63.06v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6C87A7;stroke:none;" d="M64.109,38.162H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#27417C;stroke:none;" d="M66.237,39.214h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#284F95;stroke:none;" d="M64.109,40.295v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F438F;stroke:none;" d="M64.109,41.347v-1.052H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#223D86;stroke:none;" d="M65.188,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E4692;stroke:none;" d="M66.237,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3A4C84;stroke:none;" d="M66.237,40.295v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4E87;stroke:none;" d="M65.188,40.295v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F3D8C;stroke:none;" d="M65.188,41.347h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#274D8A;stroke:none;" d="M64.109,40.295v-1.081H63.06v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6476A3;stroke:none;" d="M66.237,39.214v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#234497;stroke:none;" d="M62.011,41.347h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C4B9E;stroke:none;" d="M63.06,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#25448A;stroke:none;" d="M62.011,40.295h1.049v-1.081h-1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E4893;stroke:none;" d="M62.011,43.48h1.049v-1.082h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#314789;stroke:none;" d="M63.06,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#516296;stroke:none;" d="M63.06,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#284490;stroke:none;" d="M63.06,42.398v1.082h1.049v-1.082H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7590B9;stroke:none;" d="M63.06,43.48v1.052h1.049V43.48H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#315291;stroke:none;" d="M66.237,42.398v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#204295;stroke:none;" d="M66.237,43.48v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A509C;stroke:none;" d="M65.188,43.48v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#23428F;stroke:none;" d="M66.237,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F4B93;stroke:none;" d="M66.237,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294A7F;stroke:none;" d="M64.109,43.48v1.052h1.079V43.48h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#384F78;stroke:none;" d="M65.188,44.532h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1E398C;stroke:none;" d="M66.237,43.48v1.052h1.049V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#234798;stroke:none;" d="M64.109,41.347H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D8E2EC;stroke:none;" d="M64.109,44.532H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#37457F;stroke:none;" d="M66.237,41.347v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D9E1EC;stroke:none;" d="M68.334,41.347v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F5F7;stroke:none;" d="M68.334,40.295v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#969BBB;stroke:none;" d="M68.334,41.347h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#587492;stroke:none;" d="M67.286,42.398v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#31498E;stroke:none;" d="M68.334,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C449A;stroke:none;" d="M68.334,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M68.334,42.398v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#CCD5DA;stroke:none;" d="M68.334,43.48v1.052h1.079V43.48h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M71.511,42.398v1.082v1.052v1.052v1.052h1.049v-1.052v-1.052V43.48v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M71.511,43.48v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M70.462,43.48v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAF6;stroke:none;" d="M71.511,43.48h-1.049v1.052h1.049V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFC;stroke:none;" d="M71.511,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M69.414,43.48v1.052h1.049V43.48h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M70.462,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8998AB;stroke:none;" d="M69.414,44.532h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C0C8DC;stroke:none;" d="M67.286,38.162h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#243D94;stroke:none;" d="M67.286,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFC;stroke:none;" d="M73.639,42.398H72.56v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M73.639,43.48H72.56v1.052h1.079V43.48z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M73.639,44.532H72.56v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M73.639,42.398v1.082v1.052h1.049v-2.134h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M75.737,42.398h-1.049v2.134h1.049v-2.134z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M75.737,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M76.816,44.532v-2.134h-1.079v2.134h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M76.816,44.532h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAFA;stroke:none;" d="M74.688,44.532h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2B4593;stroke:none;" d="M62.011,44.532h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M76.816,46.636v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFE;stroke:none;" d="M75.737,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M76.816,46.636h-1.079v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M74.688,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M76.816,47.717h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M74.688,46.636v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M74.688,47.717v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M75.737,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFE;stroke:none;" d="M73.639,45.584H72.56v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F6;stroke:none;" d="M73.639,46.636H72.56v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M72.56,47.717v-1.081h-1.049v1.081v1.052v1.052h1.049v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF7;stroke:none;" d="M73.639,47.717H72.56v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M73.639,48.769H72.56v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M73.639,49.82H72.56v1.052h1.079V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F5F4;stroke:none;" d="M72.56,50.872V49.82h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF5;stroke:none;" d="M73.639,50.872H72.56v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M73.639,48.769v1.052h1.049v-1.052v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F7;stroke:none;" d="M73.639,49.82v1.052h1.049V49.82h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M76.816,49.82v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M75.737,49.82v-1.052h-1.049v1.052v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M76.816,49.82h-1.079v1.052h1.079V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M76.816,50.872h-1.079v1.082v1.052h1.079v-2.134z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M75.737,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M74.688,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M76.816,53.006h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F7;stroke:none;" d="M75.737,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M74.688,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF7;stroke:none;" d="M76.816,54.058h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M75.737,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFB;stroke:none;" d="M75.737,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M74.688,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M72.56,54.058h1.079v-1.052H72.56v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F9F9;stroke:none;" d="M73.639,54.058H72.56v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#94A3C6;stroke:none;" d="M72.56,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F6F6;stroke:none;" d="M72.56,53.006h1.079v-1.052H72.56v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8F0F2;stroke:none;" d="M72.56,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF7;stroke:none;" d="M72.56,56.191v1.052h1.079v-1.052H72.56z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M72.56,57.243v-1.052h-1.049h-1.049v1.052h1.049h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M72.56,56.191h1.079V55.14H72.56h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M73.639,57.243H72.56h-1.049v1.052h2.128v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M73.639,55.14v1.052h1.049V55.14h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M73.639,56.191v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFA;stroke:none;" d="M76.816,56.191V55.14h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M75.737,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M76.816,56.191h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M76.816,57.243h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M74.688,56.191v1.052v1.052h1.049v-1.052v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#767F9C;stroke:none;" d="M72.56,55.14v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F6F6;stroke:none;" d="M74.688,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFA;stroke:none;" d="M74.688,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9FA;stroke:none;" d="M72.56,51.954v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M71.511,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E8ECF0;stroke:none;" d="M70.462,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M71.511,46.636h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4D6182;stroke:none;" d="M69.414,46.636v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M71.511,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B0BCD8;stroke:none;" d="M69.414,46.636v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#244171;stroke:none;" d="M69.414,47.717v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7C90B6;stroke:none;" d="M70.462,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#25498D;stroke:none;" d="M67.286,47.717h1.049v-1.081h-1.049v1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#244596;stroke:none;" d="M68.334,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294990;stroke:none;" d="M67.286,47.717v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#203E8B;stroke:none;" d="M67.286,46.636h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294497;stroke:none;" d="M67.286,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#203F91;stroke:none;" d="M67.286,49.82h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254988;stroke:none;" d="M68.334,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#264796;stroke:none;" d="M67.286,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254793;stroke:none;" d="M67.286,50.872V49.82h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254793;stroke:none;" d="M68.334,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254B92;stroke:none;" d="M68.334,48.769v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1D3F8F;stroke:none;" d="M68.334,49.82v1.052h1.079V49.82h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E3E3EB;stroke:none;" d="M71.511,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4E6698;stroke:none;" d="M70.462,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3C8D7;stroke:none;" d="M71.511,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#70809A;stroke:none;" d="M71.511,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4079;stroke:none;" d="M69.414,49.82v1.052h1.049V49.82h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E467C;stroke:none;" d="M70.462,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#23428E;stroke:none;" d="M67.286,48.769v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#244483;stroke:none;" d="M69.414,47.717h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A448E;stroke:none;" d="M69.414,50.872h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#324B8F;stroke:none;" d="M65.188,46.636h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294078;stroke:none;" d="M66.237,46.636h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#67749A;stroke:none;" d="M65.188,46.636v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBFC;stroke:none;" d="M64.109,46.636v-1.052H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D4974;stroke:none;" d="M66.237,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A1ACC0;stroke:none;" d="M65.188,47.717v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E0EBE9;stroke:none;" d="M65.188,47.717h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F6F7;stroke:none;" d="M64.109,47.717v-1.081H63.06v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8991B8;stroke:none;" d="M63.06,45.584h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#28427D;stroke:none;" d="M62.011,46.636v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BDC3D6;stroke:none;" d="M63.06,46.636h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24416E;stroke:none;" d="M62.011,47.717v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F7F8;stroke:none;" d="M63.06,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E2E7EE;stroke:none;" d="M63.06,48.769h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5369A8;stroke:none;" d="M62.011,49.82v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#424984;stroke:none;" d="M63.06,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#304489;stroke:none;" d="M62.011,50.872V49.82h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2B4495;stroke:none;" d="M63.06,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF2F3;stroke:none;" d="M63.06,48.769v1.052h1.049v-1.052H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E4775;stroke:none;" d="M63.06,49.82v1.052h1.049V49.82H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#47669C;stroke:none;" d="M66.237,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCE8ED;stroke:none;" d="M65.188,49.82v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#25408C;stroke:none;" d="M66.237,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C4899;stroke:none;" d="M66.237,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3D5287;stroke:none;" d="M64.109,49.82v1.052h1.079V49.82h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#263E94;stroke:none;" d="M65.188,50.872h-1.079H63.06v1.082h1.049h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#385086;stroke:none;" d="M62.011,48.769v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF5;stroke:none;" d="M64.109,47.717H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#31508C;stroke:none;" d="M65.188,53.006h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#DCE7E6;stroke:none;" d="M66.237,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E5B8D;stroke:none;" d="M65.188,53.006v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#26458E;stroke:none;" d="M66.237,51.954v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#365383;stroke:none;" d="M64.109,53.006v-1.052H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M66.237,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F8ED;stroke:none;" d="M65.188,54.058v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M65.188,54.058h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF5E4;stroke:none;" d="M64.109,54.058v-1.052H63.06v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#95A1C1;stroke:none;" d="M66.237,53.006v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F7F4;stroke:none;" d="M62.011,54.058h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M63.06,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E4EBEF;stroke:none;" d="M62.011,54.058v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#335286;stroke:none;" d="M62.011,53.006h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#345493;stroke:none;" d="M62.011,53.006v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F6ED;stroke:none;" d="M62.011,56.191h1.049V55.14h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M63.06,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F9F3;stroke:none;" d="M62.011,56.191V55.14h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF6;stroke:none;" d="M62.011,57.243v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M63.06,57.243h-1.049h-1.079v1.052h2.127v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF7;stroke:none;" d="M63.06,55.14v1.052h1.049V55.14H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M63.06,56.191v1.052h1.049h1.079v-1.052h-1.079H63.06z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M66.237,55.14v1.052h1.049V55.14h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M66.237,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF8;stroke:none;" d="M65.188,56.191V55.14h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFAFA;stroke:none;" d="M66.237,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M66.237,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F6F7;stroke:none;" d="M66.237,56.191v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F9;stroke:none;" d="M65.188,57.243h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M62.011,55.14v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF5;stroke:none;" d="M64.109,54.058H63.06v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F4F6;stroke:none;" d="M64.109,57.243H63.06v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#D5D1E6;stroke:none;" d="M66.237,54.058v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3F5787;stroke:none;" d="M70.462,53.006h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#253F7A;stroke:none;" d="M71.511,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F3C87;stroke:none;" d="M70.462,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294A9E;stroke:none;" d="M69.414,53.006v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#46567F;stroke:none;" d="M71.511,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#244394;stroke:none;" d="M70.462,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E5489;stroke:none;" d="M70.462,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#23469B;stroke:none;" d="M69.414,54.058v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D3A6E;stroke:none;" d="M67.286,54.058h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#605C98;stroke:none;" d="M68.334,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#224395;stroke:none;" d="M67.286,53.006h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F0F5F5;stroke:none;" d="M67.286,56.191h1.049V55.14h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M68.334,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FBF8;stroke:none;" d="M68.334,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M68.334,55.14v1.052h1.079h1.049V55.14h-1.049h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCF5;stroke:none;" d="M68.334,56.191v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M71.511,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M71.511,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F2;stroke:none;" d="M69.414,56.191v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8F8;stroke:none;" d="M70.462,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A437C;stroke:none;" d="M69.414,54.058h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M69.414,57.243h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#203C88;stroke:none;" d="M62.011,51.954v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#234293;stroke:none;" d="M67.286,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M67.286,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F4A85;stroke:none;" d="M60.933,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#284198;stroke:none;" d="M59.884,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#265283;stroke:none;" d="M60.933,46.636h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7887AD;stroke:none;" d="M58.835,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#23498D;stroke:none;" d="M60.933,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#234298;stroke:none;" d="M58.835,46.636v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#364B82;stroke:none;" d="M58.835,47.717v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#224A96;stroke:none;" d="M59.884,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFA;stroke:none;" d="M57.786,46.636v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F4EA;stroke:none;" d="M55.658,46.636h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M56.707,46.636h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A6ADBF;stroke:none;" d="M55.658,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M56.707,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E1E2E8;stroke:none;" d="M57.786,46.636h-1.079v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E8EF;stroke:none;" d="M55.658,47.717v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F83A8;stroke:none;" d="M57.786,47.717h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E4A94;stroke:none;" d="M57.786,48.769v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4C538F;stroke:none;" d="M57.786,49.82v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F7F8;stroke:none;" d="M55.658,49.82h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B9BDCB;stroke:none;" d="M56.707,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M55.658,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6B84A7;stroke:none;" d="M56.707,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#363F87;stroke:none;" d="M57.786,49.82h-1.079v1.052h1.079V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7FAED;stroke:none;" d="M55.658,50.872V49.82h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294984;stroke:none;" d="M57.786,50.872h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#234191;stroke:none;" d="M57.786,49.82v1.052h1.049V49.82h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#274A95;stroke:none;" d="M60.933,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1D4A88;stroke:none;" d="M59.884,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254789;stroke:none;" d="M60.933,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#27468E;stroke:none;" d="M60.933,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F5487;stroke:none;" d="M58.835,49.82v1.052h1.049V49.82h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#29458F;stroke:none;" d="M59.884,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F8F8;stroke:none;" d="M55.658,48.769v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#233B7E;stroke:none;" d="M58.835,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24438A;stroke:none;" d="M58.835,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C4082;stroke:none;" d="M54.609,47.717v-1.081H53.53v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#344A75;stroke:none;" d="M54.609,46.636v-1.052H53.53v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6B78AE;stroke:none;" d="M54.609,47.717H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254094;stroke:none;" d="M53.53,47.717v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#325187;stroke:none;" d="M53.53,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E4F85;stroke:none;" d="M52.481,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#375A87;stroke:none;" d="M51.433,45.584h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1C3885;stroke:none;" d="M50.384,46.636v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1E3F72;stroke:none;" d="M51.433,46.636h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#263E6F;stroke:none;" d="M51.433,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#224095;stroke:none;" d="M52.481,46.636h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F4F9C;stroke:none;" d="M50.384,47.717v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D4290;stroke:none;" d="M52.481,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8890B5;stroke:none;" d="M52.481,48.769v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#979CC1;stroke:none;" d="M52.481,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8E95BB;stroke:none;" d="M51.433,48.769h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#34438E;stroke:none;" d="M50.384,49.82v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M51.433,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F1F4;stroke:none;" d="M51.433,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F7F8;stroke:none;" d="M52.481,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#40498F;stroke:none;" d="M50.384,50.872V49.82h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M52.481,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M52.481,49.82v1.052h1.049V49.82h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C9D1DD;stroke:none;" d="M54.609,48.769H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF2;stroke:none;" d="M54.609,49.82H53.53v1.052h1.079V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M54.609,50.872H53.53v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E4593;stroke:none;" d="M50.384,48.769v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#273A8A;stroke:none;" d="M53.53,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M53.53,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#97A0C1;stroke:none;" d="M54.609,53.006v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M54.609,54.058v-1.052v-1.052H53.53v1.052h-1.049v1.052h1.049h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#E6E9EE;stroke:none;" d="M54.609,51.954v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F8F9;stroke:none;" d="M54.609,54.058H53.53v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M53.53,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M52.481,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F7F8;stroke:none;" d="M51.433,51.954h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E4F82;stroke:none;" d="M50.384,53.006v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBF4F5;stroke:none;" d="M51.433,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAFA;stroke:none;" d="M51.433,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M52.481,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#42557B;stroke:none;" d="M50.384,54.058v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M52.481,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFA;stroke:none;" d="M52.481,55.14v1.052h1.049V55.14v-1.082h-1.049v1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAFA;stroke:none;" d="M52.481,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCF2;stroke:none;" d="M50.384,56.191h1.049V55.14h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6ED;stroke:none;" d="M51.433,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F8F8;stroke:none;" d="M50.384,56.191V55.14h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF0;stroke:none;" d="M51.433,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M52.481,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;stroke:none;" d="M50.384,57.243v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F7F8;stroke:none;" d="M52.481,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M52.481,56.191v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M54.609,55.14H53.53v1.052h1.079V55.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF8F2;stroke:none;" d="M54.609,56.191H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF8;stroke:none;" d="M54.609,57.243H53.53v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M54.609,55.14v1.052h1.049V55.14h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F7F4;stroke:none;" d="M54.609,56.191v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5F659C;stroke:none;" d="M50.384,55.14v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFB;stroke:none;" d="M53.53,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#777992;stroke:none;" d="M54.609,54.058v1.082h1.049v-1.082h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254288;stroke:none;" d="M59.884,53.006h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#909BB7;stroke:none;" d="M60.933,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#25449A;stroke:none;" d="M59.884,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#204195;stroke:none;" d="M58.835,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#C3C0D8;stroke:none;" d="M60.933,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#224294;stroke:none;" d="M59.884,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3E527C;stroke:none;" d="M59.884,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#224597;stroke:none;" d="M58.835,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#21458D;stroke:none;" d="M57.786,53.006v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#334E81;stroke:none;" d="M55.658,53.006h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A447F;stroke:none;" d="M56.707,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4C5C87;stroke:none;" d="M56.707,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#244794;stroke:none;" d="M57.786,53.006h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#385386;stroke:none;" d="M57.786,54.058h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFC;stroke:none;" d="M57.786,55.14v1.052h1.049V55.14h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M57.786,56.191V55.14h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;stroke:none;" d="M55.658,56.191h1.049V55.14h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M56.707,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M56.707,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M57.786,56.191h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EBF2F3;stroke:none;" d="M57.786,57.243h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M57.786,56.191v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF9;stroke:none;" d="M60.933,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M59.884,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF2;stroke:none;" d="M60.933,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAFA;stroke:none;" d="M60.933,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFAEE;stroke:none;" d="M58.835,56.191v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFC;stroke:none;" d="M59.884,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#375080;stroke:none;" d="M58.835,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M58.835,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#455380;stroke:none;" d="M50.384,51.954v-1.082h-1.079v1.082h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M55.658,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M55.658,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#20408B;stroke:none;" d="M49.305,45.584h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294F8D;stroke:none;" d="M48.256,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#254790;stroke:none;" d="M49.305,46.636h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F427F;stroke:none;" d="M48.256,47.717v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#26458E;stroke:none;" d="M49.305,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2B4497;stroke:none;" d="M47.207,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F418A;stroke:none;" d="M45.08,46.636h1.079v-1.052H45.08v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A3C82;stroke:none;" d="M46.158,46.636H45.08v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A8B3C9;stroke:none;" d="M45.08,46.636v-1.052H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#293D82;stroke:none;" d="M46.158,47.717H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#253F93;stroke:none;" d="M47.207,46.636h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ADB9CE;stroke:none;" d="M45.08,47.717v-1.081H44.03v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C4898;stroke:none;" d="M47.207,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#214884;stroke:none;" d="M47.207,48.769v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4999;stroke:none;" d="M47.207,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2B4087;stroke:none;" d="M45.08,49.82h1.079v-1.052H45.08v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#283E84;stroke:none;" d="M46.158,49.82H45.08v1.052h1.079V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B2BDD0;stroke:none;" d="M45.08,49.82v-1.052H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C4A80;stroke:none;" d="M46.158,50.872H45.08v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#224497;stroke:none;" d="M47.207,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEB9CC;stroke:none;" d="M45.08,50.872V49.82H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F4B86;stroke:none;" d="M47.207,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#204783;stroke:none;" d="M47.207,49.82v1.052h1.049V49.82h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#29458B;stroke:none;" d="M49.305,48.769h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2A4188;stroke:none;" d="M49.305,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294788;stroke:none;" d="M49.305,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AAB5CB;stroke:none;" d="M45.08,48.769v-1.052H44.03v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#204381;stroke:none;" d="M48.256,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#204A8A;stroke:none;" d="M48.256,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFC;stroke:none;" d="M44.03,47.717v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M44.03,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F6F6;stroke:none;" d="M44.03,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9DA5C9;stroke:none;" d="M41.903,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D4784;stroke:none;" d="M40.854,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M44.03,48.769h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFB;stroke:none;" d="M44.03,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M44.03,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M42.981,50.872h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B1C1D5;stroke:none;" d="M44.03,53.006v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ECF5EA;stroke:none;" d="M44.03,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7B5D4;stroke:none;" d="M44.03,51.954v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFB;stroke:none;" d="M44.03,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M44.03,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F5;stroke:none;" d="M42.981,54.058v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFD;stroke:none;" d="M42.981,53.006v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A4AFD2;stroke:none;" d="M41.903,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E4590;stroke:none;" d="M39.805,53.006h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C3F83;stroke:none;" d="M40.854,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F3F94;stroke:none;" d="M39.805,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4E5398;stroke:none;" d="M40.854,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9EABCB;stroke:none;" d="M41.903,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#223D8C;stroke:none;" d="M39.805,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#ACAED3;stroke:none;" d="M41.903,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBEC;stroke:none;" d="M41.903,55.14v1.052h1.079V55.14h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M41.903,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M39.805,56.191h1.049V55.14h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M40.854,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFCFB;stroke:none;" d="M39.805,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M40.854,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M41.903,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF2;stroke:none;" d="M39.805,57.243v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M41.903,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF0;stroke:none;" d="M41.903,56.191v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBEA;stroke:none;" d="M44.03,55.14h-1.049v1.052h1.049V55.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M44.03,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCEF;stroke:none;" d="M44.03,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFC;stroke:none;" d="M44.03,55.14v1.052h1.049V55.14H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9F9;stroke:none;" d="M44.03,56.191v1.052h1.049v-1.052H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4F599E;stroke:none;" d="M39.805,55.14v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M42.981,54.058h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F7E5;stroke:none;" d="M42.981,57.243h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#B5B9D9;stroke:none;" d="M44.03,54.058v1.082h1.049v-1.082H44.03z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F478C;stroke:none;" d="M49.305,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#284493;stroke:none;" d="M49.305,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#464F96;stroke:none;" d="M49.305,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#213D8B;stroke:none;" d="M48.256,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#22479A;stroke:none;" d="M48.256,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294F9B;stroke:none;" d="M47.207,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#264185;stroke:none;" d="M45.08,53.006h1.079v-1.052H45.08v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2E4581;stroke:none;" d="M46.158,53.006H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#495294;stroke:none;" d="M46.158,54.058H45.08v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#28468E;stroke:none;" d="M47.207,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4D589D;stroke:none;" d="M47.207,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M47.207,55.14v1.052h1.049v1.052h1.049v-1.052V55.14h-1.049h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAF8;stroke:none;" d="M47.207,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M45.08,56.191h1.079V55.14H45.08v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M46.158,56.191H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F7F7;stroke:none;" d="M46.158,57.243H45.08v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF3;stroke:none;" d="M47.207,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F8F9;stroke:none;" d="M47.207,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9EF;stroke:none;" d="M47.207,56.191v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4FAFB;stroke:none;" d="M49.305,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#505EA2;stroke:none;" d="M48.256,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF7F8;stroke:none;" d="M48.256,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24508F;stroke:none;" d="M39.805,51.954v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#AEB9D1;stroke:none;" d="M45.08,50.872H44.03v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFE;stroke:none;" d="M45.08,57.243H44.03v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EEF7F8;stroke:none;" d="M39.805,58.295v-1.052h-1.049h-1.079v1.052h2.128z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F8F8;stroke:none;" d="M50.384,57.243h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFC;stroke:none;" d="M34.531,46.636v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M34.531,47.717v-1.081h-1.079v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#626E96;stroke:none;" d="M36.628,50.872H35.58v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M34.531,49.82v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M34.531,50.872V49.82h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCFB;stroke:none;" d="M35.58,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#1F4687;stroke:none;" d="M38.756,50.872h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#264382;stroke:none;" d="M37.677,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFA;stroke:none;" d="M34.531,48.769v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M33.452,47.717v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5F2F1;stroke:none;" d="M33.452,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F5FAF7;stroke:none;" d="M33.452,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAF1F3;stroke:none;" d="M32.403,47.717v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#BCC1D0;stroke:none;" d="M32.403,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2F3F70;stroke:none;" d="M31.354,45.584h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3B528B;stroke:none;" d="M30.275,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#3A518A;stroke:none;" d="M31.354,46.636h-1.079v1.081h1.079v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#314E7E;stroke:none;" d="M29.226,46.636v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8DA2C6;stroke:none;" d="M31.354,47.717h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24428C;stroke:none;" d="M29.226,46.636v1.081h1.049v-1.081h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#214588;stroke:none;" d="M29.226,47.717v-1.081h-1.049v1.081h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294480;stroke:none;" d="M30.275,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M31.354,48.769v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#EAECF1;stroke:none;" d="M31.354,49.82v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#949BB8;stroke:none;" d="M30.275,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBF8;stroke:none;" d="M31.354,49.82h-1.079v1.052h1.079V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8A98B8;stroke:none;" d="M29.226,49.82v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAF9FA;stroke:none;" d="M31.354,50.872h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M29.226,49.82v1.052h1.049V49.82h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M29.226,50.872V49.82h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M30.275,50.872h-1.049h-1.049v1.082v2.104h1.049v-1.052v-1.052h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FAFBEF;stroke:none;" d="M31.354,49.82v1.052h1.049V49.82h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F6F1;stroke:none;" d="M33.452,48.769h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M33.452,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M33.452,50.872h-1.049v1.082v1.052v1.052h-1.049v-1.052v-1.052h-1.079v1.052v1.052v1.082h1.079v1.052h-1.079v1.052v1.052h1.079v-1.052h1.049v-1.052h1.049V55.14v-1.082v-1.052
+ v-1.052v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#274783;stroke:none;" d="M29.226,48.769v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F9F9;stroke:none;" d="M32.403,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFCFC;stroke:none;" d="M32.403,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M33.452,53.006v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDF9;stroke:none;" d="M33.452,51.954v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M32.403,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M32.403,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDFB;stroke:none;" d="M30.275,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M30.275,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDF9;stroke:none;" d="M30.275,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F7;stroke:none;" d="M31.354,55.14h-1.079v1.052h1.079V55.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFA;stroke:none;" d="M30.275,56.191V55.14h-1.049v1.052v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M29.226,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F2F3EC;stroke:none;" d="M29.226,57.243v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M30.275,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9FA;stroke:none;" d="M33.452,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M33.452,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFB;stroke:none;" d="M33.452,55.14v1.052h1.079V55.14h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF9;stroke:none;" d="M33.452,56.191v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFEFD;stroke:none;" d="M29.226,55.14v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFBFB;stroke:none;" d="M32.403,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBF7;stroke:none;" d="M33.452,54.058v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D4895;stroke:none;" d="M38.756,54.058v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#204095;stroke:none;" d="M38.756,53.006v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#505BA1;stroke:none;" d="M38.756,54.058h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2D4589;stroke:none;" d="M37.677,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#284291;stroke:none;" d="M37.677,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5E6D9B;stroke:none;" d="M36.628,53.006v-1.052H35.58v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M34.531,53.006h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M35.58,53.006h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAFA;stroke:none;" d="M35.58,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5D6E90;stroke:none;" d="M36.628,53.006H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#747BAA;stroke:none;" d="M36.628,54.058H35.58v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M36.628,55.14v1.052h1.049V55.14h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M36.628,56.191V55.14H35.58v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M34.531,55.14v1.052v1.052h1.049v-1.052V55.14h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF0;stroke:none;" d="M35.58,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M36.628,56.191v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M36.628,57.243v-1.052H35.58v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F7F8;stroke:none;" d="M36.628,57.243H35.58v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F7F6;stroke:none;" d="M38.756,55.14h-1.079v1.052h1.079V55.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F8ED;stroke:none;" d="M38.756,56.191h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4D5499;stroke:none;" d="M37.677,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M37.677,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFDF7;stroke:none;" d="M34.531,50.872h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFD;stroke:none;" d="M34.531,57.243h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#345480;stroke:none;" d="M28.177,45.584h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#203E74;stroke:none;" d="M27.128,46.636v-1.052H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#234A8D;stroke:none;" d="M28.177,46.636h-1.049v1.081h1.049v-1.081z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#244897;stroke:none;" d="M27.128,47.717v-1.081H26.05v1.081h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#25488B;stroke:none;" d="M28.177,47.717h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24488B;stroke:none;" d="M25,45.584h-1.049v2.133H25v-2.133z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24488B;stroke:none;" d="M25,47.717h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#29468F;stroke:none;" d="M26.05,47.717v-1.081v-1.052H25v2.133h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#29458F;stroke:none;" d="M26.05,47.717H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#5767A6;stroke:none;" d="M26.05,48.769v1.052h1.079v-1.052H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#28438D;stroke:none;" d="M26.05,49.82v-1.052H25v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#224589;stroke:none;" d="M25,49.82v-1.052h-1.049v1.052H25z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#27428C;stroke:none;" d="M26.05,49.82H25v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#24478E;stroke:none;" d="M23.952,49.82v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#23438A;stroke:none;" d="M26.05,50.872H25v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#214488;stroke:none;" d="M23.952,50.872H25V49.82h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#27478C;stroke:none;" d="M25,50.872h-1.049v1.082H25v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#23478D;stroke:none;" d="M23.952,50.872V49.82h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#989BC1;stroke:none;" d="M26.05,49.82v1.052h1.079V49.82H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#8395BC;stroke:none;" d="M28.177,48.769h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M28.177,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F7F8;stroke:none;" d="M28.177,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#214195;stroke:none;" d="M27.128,47.717H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9B98B4;stroke:none;" d="M27.128,50.872H26.05v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6A75A6;stroke:none;" d="M20.775,49.82v1.052h1.049V49.82h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBFB;stroke:none;" d="M20.775,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M19.726,50.872h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#28428D;stroke:none;" d="M21.824,49.82h1.049v-1.052h-1.049v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#27418B;stroke:none;" d="M22.873,49.82h-1.049v1.052h1.049V49.82z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#293C90;stroke:none;" d="M22.873,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6370AC;stroke:none;" d="M21.824,50.872h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#294A90;stroke:none;" d="M22.873,53.006v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#28438A;stroke:none;" d="M22.873,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#264A92;stroke:none;" d="M22.873,51.954v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#26408B;stroke:none;" d="M22.873,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#4B5C97;stroke:none;" d="M22.873,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#687CA5;stroke:none;" d="M21.824,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#6478A7;stroke:none;" d="M21.824,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M20.775,51.954h-1.049v1.052v1.052h1.049v-1.052v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF4;stroke:none;" d="M19.726,53.006v-1.052h-1.079v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFA;stroke:none;" d="M18.647,53.006v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F3F7F7;stroke:none;" d="M20.775,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF1;stroke:none;" d="M18.647,54.058h1.079v-1.052h-1.079v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M19.726,54.058h-1.079v1.082v1.052h1.079V55.14v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCF9;stroke:none;" d="M18.647,54.058v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8F9FA;stroke:none;" d="M20.775,55.14v1.052h1.049V55.14h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFDFD;stroke:none;" d="M20.775,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F1F7E7;stroke:none;" d="M20.775,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M18.647,56.191V55.14h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBF2;stroke:none;" d="M20.775,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FAF8;stroke:none;" d="M20.775,56.191v1.052h1.049v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6F8EC;stroke:none;" d="M18.647,57.243h1.079v-1.052h-1.079v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFCF3;stroke:none;" d="M19.726,57.243h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFEFD;stroke:none;" d="M18.647,57.243v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCFC;stroke:none;" d="M22.873,55.14h-1.049v1.052h1.049h1.079V55.14h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M22.873,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F9FA;stroke:none;" d="M22.873,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBF2;stroke:none;" d="M22.873,56.191v1.052h1.079v-1.052h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M18.647,55.14v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#7F8CB1;stroke:none;" d="M21.824,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FAFA;stroke:none;" d="M21.824,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#455B90;stroke:none;" d="M22.873,54.058v1.082h1.079v-1.082h-1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M28.177,54.058v-2.104h-1.049v1.052v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9FA;stroke:none;" d="M28.177,54.058h-1.049v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9291A9;stroke:none;" d="M27.128,54.058v-1.052H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#9694AF;stroke:none;" d="M27.128,53.006v-1.052H26.05v1.052h1.079z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#214990;stroke:none;" d="M25,53.006h1.049v-1.052H25v1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#265096;stroke:none;" d="M26.05,53.006H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#20458B;stroke:none;" d="M25,53.006v-1.052h-1.049v1.052H25z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#465E8E;stroke:none;" d="M26.05,54.058H25v1.082h1.049v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#22498B;stroke:none;" d="M25,53.006h-1.049v1.052H25v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#445D89;stroke:none;" d="M25,54.058h-1.049v1.082H25v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M26.05,55.14v1.052h1.079V55.14H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M26.05,56.191V55.14H25v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FCFEFE;stroke:none;" d="M25,56.191V55.14h-1.049v1.052H25z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F8E6;stroke:none;" d="M26.05,56.191H25v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F8FBFC;stroke:none;" d="M26.05,57.243H25h-1.049v1.052h2.098v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FBE9;stroke:none;" d="M23.952,56.191v1.052H25v-1.052h-1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;stroke:none;" d="M26.05,56.191v1.052h1.079v-1.052H26.05z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M28.177,55.14h-1.049v1.052h1.049V55.14z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F4F4F4;stroke:none;" d="M28.177,56.191h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FEFFFF;stroke:none;" d="M28.177,57.243h-1.049v1.052h1.049v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#A7A6BC;stroke:none;" d="M27.128,54.058H26.05v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F7F6F7;stroke:none;" d="M27.128,57.243H26.05v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FDFCFD;stroke:none;" d="M18.647,51.954v-1.082h-1.049v1.082h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#2C4794;stroke:none;" d="M23.952,50.872h-1.079v1.082h1.079v-1.082z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F6FBFC;stroke:none;" d="M23.952,57.243h-1.079v1.052h1.079v-1.052z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FBFBFB;stroke:none;" d="M18.647,58.295v-1.052h-1.049v1.052h1.049z"/>
+ <path style="fill-rule:evenodd;clip-rule:evenodd;fill:#F9FCF5;stroke:none;" d="M29.226,57.243h-1.049v1.052h1.049v-1.052z"/>
+ </g>
+ <g id="TEAM" style="fill-rule:nonzero;clip-rule:nonzero;fill:#008837;stroke:#000000;stroke-miterlimit:4;">
+ <metadata>
+ <AMP_attribute name="Perimeter" data_type="real" display_width="6"/>
+ <AMP_attribute name="Area" data_type="real" display_width="6"/>
+ <AMP_attribute name="Country" data_type="char" display_width="15"/>
+ <AMP_attribute name="Federation" data_type="char" display_width="10"/>
+ <AMP_attribute name="Number_of_Cup_Wins" data_type="integer" display_width="7"/>
+ <AMP_attribute name="Last_World_Cup_Win" data_type="integer" display_width="7"/>
+ <AMP_attribute name="Number_of_Appearances" data_type="integer" display_width="7"/>
+ <AMP_attribute name="Progress_at_France_98" data_type="char" display_width="20"/>
+ <AMP_attribute name="Progress_at_USA_94" data_type="char" display_width="20"/>
+ <AMP_attribute name="Progress_at_Italy_90" data_type="char" display_width="20"/>
+ </metadata>
+ <g id="0" name="0" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="11769375.398148"/>
+ <AMP_attribute value="2578163554232.748"/>
+ <AMP_attribute value="Argentina"/>
+ <AMP_attribute value="CONMEBOL"/>
+ <AMP_attribute value="2"/>
+ <AMP_attribute value="1986"/>
+ <AMP_attribute value="13"/>
+ <AMP_attribute value="Quarter Final"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="Runner Up"/>
+ </metadata>
+ <path style="fill:#FFFF00;" d="M278.677,316.94l0.526-1.264l-0.569-3.156l-0.549-0.948l1.691,0.172l1.796-0.453l1.8-0.456l1.804-0.455l1.808-0.455l0.855-2.267l0.883-2.272l-1.416-1.049l-0.154-1.877l-2.938-2.085l-1.032-2.976l0.521-1.072l-0.302-1.672
+ l0.132-2.777l0.162-2.776l-0.041-0.257l1.152-1.496l1.165-1.498l1.178-1.5l1.19-1.502l1.381-1.244l1.39-1.245l-0.96-3.306l-1.409-0.086l0.108,1.631l-1.732,2.706l-1.468,0.558l-2.591-0.193l-2.591-0.193l0.846-2.425l0.873-2.428l-2.012-1.18l-2.01-1.181
+ l-1.861-0.837l-1.862-0.837l-2.196-2.102l-2.192-2.102l-0.467-0.6l-2.627,0.428l-0.708,1.415l-1.117-1.5l-2.727-0.558l-0.48-0.343l-1.833,2.658l0.458,0.472l-0.441,2.617l-1.912,0.986l-0.391,1.288l0.345,3.607l0.809,1.502l-0.629,0.688l-0.913,2.316l-0.883,2.315
+ l0.1,1.862l0.116,1.859l-0.369,1.623l-0.101,1.623l1.041,2.095l1.054,2.1l0.553,1.505l-0.278,3.288l0.486,1.742l-1.065,1.747l0.593,2.208l0.612,2.202l0.306,1.52l-0.416,1.64l0.271,2.688l0.8,3.402l0.076,1.997l1.083,1.367l0.982,2.651l1.694,0.954l-1.392,0.498
+ l0.854,0.499l0.515,1.084l0.166,2.006l0.387,2.852l0.351,3.439l-1.234,1.507l1.945,3.33l1.209-0.082l1.239,1.944l1.158,1.113l3.983,0.37l3.436,0.944l-1.222-1.232l-1.424-0.701l0.505,0.042l-0.944-1.527l0.047-0.621l0.909-1.37l-1.062-0.542l0.448-0.207
+ l1.177,0.416l0.081-2.002l1.089-1.633l1.116-1.636l-0.719-0.252l0.693-1.217l-1.208-0.713l-3.214-1.678L272.914,328l2.367-1.167l0.266-1.081l-0.233-2.031l1.501-1.906l-1.628-0.829h1.549l1.179,0.373l-0.645-1.827l-0.625,0.458l-0.825,0.125l-0.64-0.291
+ l-1.682-3.387l2.169,0.42l3.01,0.084z M277.351,346.976l3.107,2.324l4.537,1.462l0.275,0.649l-3.16-0.021l-3.16-0.021l-1.185-2.721l-1.155-2.737l0.74,1.063z M279.721,352.382l1.273,0.727l-2.057-0.646l-0.865-0.444l0.145,0.525l-0.831-0.161l-0.39-0.162
+ l2.23-0.729l-0.614,0.324l1.108,0.566z M280.798,352.179l-1.242-0.729l2.668,0.526l-1.427,0.202z"/>
+ </g>
+ <g id="1" name="1" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="779940.073852"/>
+ <AMP_attribute value="32522085771.081726"/>
+ <AMP_attribute value="Belgium"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="10"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="Round 2"/>
+ </metadata>
+ <path d="M415.937,79.592l-1.585,0.703l0.765,0.87l2.592,1.661l0.919-0.042l0.203,0.25l1.976,1.084h0.066l0.055-0.334l0.522-1.125l0.054-1.288l-0.336-0.249l-0.607-0.538l-0.417-0.827l-2.513-0.166h-1.693z"/>
+ </g>
+ <g id="2" name="2" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="17959233.752156"/>
+ <AMP_attribute value="7015299494419.5713"/>
+ <AMP_attribute value="Brazil"/>
+ <AMP_attribute value="CONMEBOL"/>
+ <AMP_attribute value="4"/>
+ <AMP_attribute value="1994"/>
+ <AMP_attribute value="17"/>
+ <AMP_attribute value="Runner Up"/>
+ <AMP_attribute value="Winner"/>
+ <AMP_attribute value="Round 2"/>
+ </metadata>
+ <path style="fill:#FFFF00;" d="M309.105,217.388l-0.451,0.301l-0.887,1.672l0.618-1.973l-0.271-0.514l-0.339,0.213l0.177-1.2l-0.764-0.729l-0.871,0.042l-0.23-0.343l-0.836-0.429l-0.951-0.515l-0.911-0.343l-0.758-0.173l-1.177-0.643l-0.037,0.3l-1.477,0.301
+ l-0.823,1.587l-0.073,0.3l-0.867,0.429l-1.565,2.231l0.167-1.931l-0.676,0.515l-0.762-0.386l-0.795,0.042l-0.741-2.487l-1.585,0.837l-1.583,0.836l-0.76-0.215l1.659-1.029l1.429-2.787l1.461-1.674l1.468-1.672l-0.594-1.373l-1.126-0.944l-0.481-2.208l-0.473-2.209
+ l-0.08,0.215l-0.846-1.287l0.103,0.558h-0.303l-0.115,0.086l-1.501,2.401l-1.493,2.402l-2.195-0.129l-1.511-0.301l-1.356-0.472l-2.014,0.43l0.134,1.329l-1.019-0.3l-2.316,0.429l-2.247,1.115l-1.402,0.043l-1.494-1.888l-0.252-3.045l0.617-2.316l-0.952-1.329
+ l-0.19-1.459l-1.289,0.086l0.188,0.043l-0.64,1.372l-1.893,0.794l-1.892,0.794l-0.399,0.9l-2.066-0.687l-2.252-0.771l0.725,1.33l0.661,2.873l1.43,0.515l-0.39,0.729l-1.955,1.801l-2.325,1.759l-0.264-0.214l-1.251,0.128l-1.81-1.115l-0.491-0.171l-0.844-2.145
+ l-1.225,0.9l-0.564-0.257l0.222,0.386h-1.931h-1.932l0.284,1.673l1.246,0.558l-0.42,0.557l-1.592,0.13l0.49,2.444l0.929,2.701l-0.529,3.604l-0.501,3.603l-0.797-0.085l-1.916,0.515L246,223.308l-1.79,0.857l-0.617,1.973l-0.611,1.974l-1.167,2.059l1.027,1.952
+ l1.034,1.951l-0.097,1.115l0.917,0.214l1.337,1.073l1.833,0.428l1.521-1.243l0.137,1.93l0.145,1.93l2.402-0.171l2.907,0.085l1.05-0.771l1.882-1.157l1.885-1.158l1.781,0.171l0.181,2.145l0.191,2.146l1.728,1.887l1.652,0.558l2.016,0.985l2.552,1.716l2.545,0.43
+ l0.671,1.071l0.367,2.574h-0.413l0.823,0.987l0.305,2.017l2.057,0.213l2.057,0.215l0.29,2.23l1.422,1.415l0.455,0.987l-0.473,1.931l-0.469,1.929l0.367,0.815l-0.383,0.3l0.472,1.158l0.354,3.602l3.157,0.472l1.65,0.215l0.672,2.122l0.681,2.124l1.178-0.043
+ l1.199,0.172l-0.077,2.038l-0.063,2.04l1.409,0.086l0.96,3.306l-1.39,1.245l-1.381,1.244l-1.19,1.502l-1.178,1.5l-1.165,1.498l-1.152,1.496l0.02,0.129l1.153-0.299l2.69,2.093l0.623,0.042l1.362,0.813l2.32,1.708l2.319,1.711l-0.233,1.2l0.515,1.761l0.806-1.611
+ l0.818-1.606l0.11-1.582l0.626-1.58l0.947-1.196l-0.208-1.452l0.091-0.129l1.029,0.342l0.526,0.129l-0.989,1.837l-0.973,1.836l-0.686,0.47l0.185,0.257l1.492-2.072l1.514-2.071l0.916-2.094l0.935-2.099l0.632-1.114l0.142-0.043l-0.003-2.081l0.011-2.082
+ l-0.478-1.417l-0.054-0.902l0.354-0.9l-0.274-0.172l0.9-0.215l1.951-1.867l1.967-1.867l1.877-0.558l1.684-1.201l0.77-0.601l1.484,0.043l-0.694,0.129l1.478-0.559l0.327-0.085h2.555l0.644-1.458l1.359-0.771l0.27-2.83l1.07-1.994l1.074-1.994l0.36-3.474
+ l0.527-1.288l0.128-2.486l0.137-2.488l-0.089-1.888l-0.083-1.888l-0.296-0.771l0.354-2.445l0.669-0.215l0.217,0.772l1.167-2.016l1.175-2.016l0.029-0.258l0.471-0.6l1.359-1.867l1.364-1.865l1.97-2.874l0.419-3.56l-0.973-2.638l-0.969-2.638l-1.84-0.322
+ l-1.84-0.321l-2.455-2.166l-2.453-2.167l-3.154-0.9l-2.158,0.086l-2.013-0.472l-2.013-0.472l-1.736,0.558l0.218-0.772z M296.737,215.5l-0.415,0.215l-1.179-0.515l-0.448,0.687L293.884,214l0.416-0.085l-0.157-1.073l0.716-1.415l2.274,0.344l2.274,0.343
+ l-1.089,2.145l-0.187,0.258l-0.261,0.6h-0.379l-0.754,0.386z M293.08,212.809l-1.731,2.172l1.256-2.325l0.476,0.153z M296.323,210.736l-0.604,0.559l-0.893-0.431l1.497-0.128z M294.972,210.563l-0.475,0.071l0.379-1.024l0.096,0.953z"/>
+ </g>
+ <g id="3" name="3" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="3684157.463045"/>
+ <AMP_attribute value="386501833896.47278"/>
+ <AMP_attribute value="Cameroon"/>
+ <AMP_attribute value="CAF"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="5"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="Quarter Final"/>
+ </metadata>
+ <path style="fill:#9859A8;" d="M444.849,185.477l-1.5-2.573l-0.227-2.874l-1.163-2.53h-0.865l0.364,1.887l0.992,0.987l-0.547,1.458l-1.566,1.415l-0.828,1.845l-0.831,1.844l-0.851,2.102l-0.821,1.287l-0.853,2.272l-1.425,2.017l-1.407-1.501l-1.736,0.558
+ l-1.013,1.501l-1.015,1.501l-0.674,2.102l-0.188,0.473l0.379-0.086l0.648,1.459l1.515,0.171l0.152,0.472l0.27,1.157l0.008,2.703l1.724,0.235l1.725,0.236h2.234h2.234l2.235,0.042l1.952,0.494l1.953,0.493l0.449-1.158l-0.69-2.315l-1.261-1.823l-1.259-1.823
+ l-0.741-3.56l1.138-2.08l1.136-2.081l-1.465-3.303l-1.948-2.402l1.163-0.6h2.602z"/>
+ </g>
+ <g id="4" name="4" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="22098690.661476"/>
+ <AMP_attribute value="8809630730794.2793"/>
+ <AMP_attribute value="China"/>
+ <AMP_attribute value="AFC"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="1"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path style="fill:#FD341F;" d="M615.889,136.017l1.85,0.258l1.181-0.686l0.949,0.3l-0.149,0.428l0.876,0.301l-0.07,1.071l2.432,0.857l0.271-0.857l1.881,1.93l0.96,0.515l0.457,2.061l0.431,2.061l-0.358,1.16l-1.089,1.846l0.149,1.031l0.083,1.115l2.386-0.301
+ l0.126,0.301l0.586,1.716l1.476,0.644l-0.257,2.102l1.229,0.514l1.041,1.459l1.635-0.472l0.641,0.3l0.333,0.472l0.963,0.472l-0.509-3.002l1.062-0.086l0.531-0.6l1.212,0.386l0.492-0.386l0.883-0.044l0.577,0.13l0.408-0.215h0.74l1.343-1.459l0.946,0.129
+ l2.712,0.901l0.322,1.672l0.98,0.772l2.228,0.899l0.76-0.342l0.238-0.344l0.845,0.386l0.762,0.344l0.943-0.129l0.658,0.601l0.477,2.443l1.231,0.258l-0.56-1.372l0.172-1.201l0.462-0.128l1.227-0.43l1.389-0.771l0.675,0.043l0.245-0.515l0.586,0.601l0.777-0.857
+ l0.468,0.129l-0.057-0.943l0.553,0.6l-0.476-1.802l0.519-0.6l1.123,1.673l0.719,0.085l0.241-0.3l0.536-0.515l0.483,0.215l0.998-0.215l0.293-0.215l0.198-0.129l1.255-0.214l0.794-0.687l-0.088-0.257l1.788-1.415l0.606-0.816l-0.173-0.472l0.268-0.301l1.145-0.172
+ l0.142-0.858l0.255-0.343l0.473-0.516l0.045-0.601l0.619,0.128l-0.041-1.245l-1.035-0.473l0.169,0.087l1.026-0.602l-0.487-0.472l-0.282-0.387l0.756-0.344l-0.076,0.559l0.661-1.804h0.074l0.401-1.33l-0.5-0.73l1.239-0.643l0.548-0.128l-0.685-0.943h0.365
+ l-0.123-0.644l-0.265-0.385l0.627-0.558l0.083-0.428h-0.802l0.789-0.94l-1.555-0.855l-1.376,0.129l-1.233-0.215l0.693-0.428l2.104-1.494l-2.017-1.303l-2.021-1.303l-1.951-0.599l0.671,0.257l1.15,0.086l3.407,1.025l-2.356-2.096l-1.536-1.971l-1.555-1.979
+ l-3.184-1.901l0.501-2.566l0.064-1.223l0.358,0.35l0.784-1.18l1.451-0.918l1.209,0.174l-0.078-1.311l-1.283-0.262l-2.728-1.047l-1.739,1.265l-1.565,0.306l-1.146-2.138l-2.975-0.826l-0.753-1.733l1.133-0.129l1.494-0.991l1.045-1.646l1.009-1.631l1.409-0.295
+ l1.17,0.632l-0.446,2.553l1.395,0.558l-0.88,1.38l1.656-0.647l1.272-0.947l1.257-0.943l1.047-0.681l1.302-1.357l1.323-2.184l0.845-0.46l2.511,0.753l-0.809-1.337l0.707-0.208l1.392-1.081l0.02-1.327l2.385,1.369l-0.543-0.665l0.847-0.581l-1.438-2.215l-1.46-2.219
+ l0.396-1.29l2.644,0.416l-0.278-2.985l-0.351-2.999l-1.239-2.181l-3.145,1.09l-3.089,0.419L669.229,86l-2.166-0.879l-3.676-0.961l-2.254-0.959l-1.993-1.756l-2.016-1.749l-2.038-1.741l-2.056-1.733l-5.158-1.636l-2.502,0.103l-2.504,0.102l-1.498,1.349l0.95,0.369
+ l1.435,0.944l0.023,3.049l0.587,1.825l-1.472,1.667l-2.979-0.584l0.363,1.963l0.323,1.969l-0.572,0.21l1.767,1.007l2.11-0.042l0.753,0.42l1.06-1.008l4.507,2.309l0.535,1.341l-3.547-0.083l-2.325,1.215l-0.441,1.713l-2.18,0.584l-1.911,1.082l-2.947-0.79
+ l0.324,2.284l1.444,1.285l-1.861,1.532l-1.891,1.534l-2.475,0.187l-2.476,0.187l-1.51,0.937l-1.523,0.939l-1.617-0.71l-2.561-0.478l-2.557-0.479l-0.797-0.665l-2.895-0.166l-2.894-0.166l-2.891-0.166l-2.89-0.167l-1.882-1.906l-1.887-1.906l-2.976-0.913
+ l-2.967-0.915l-2.418-0.396l-2.415-0.395l-0.71-2.048l-0.726-2.054l-3.021-2.14l-1.588-0.335l-2.993-1.803l-0.86-0.922l-0.21-0.376l-1.542,0.167l-0.808,1.717l-0.931,0.671l0.988,2.727l-1.889,0.21l-3.265-0.587l0.223,2.16l0.201,2.154l0.776,0.917l-2.814-0.251
+ l-2.389,0.916l1.313,0.665l0.968,1.824l0.959,1.822l0.02,0.498l-0.5,0.497l0.588,1.204l-1.626,1.27l-1.644,1.276l-2.209,0.545l-1.417,1.603l-1.231-0.254l-0.996,0.043l-1.519,0.934l-0.746,1.925l1.209,2.117l1.948,0.173l1.367,3.007l-0.294,0.219h-0.071
+ l-0.648-0.044l0.081,0.568l2.525,0.699l0.984,1.704l1.593,0.786l2.89,0.829l1.703-1.09l1.993,0.393l1.615,0.697l-0.311,2.172l-0.327,1.21l-0.906,0.518l0.074,0.989l1.408,1.889l-0.371,0.985l-1.34-0.171l0.982,2.778l1.058,0.343l2.625,1.494l2.104,1.452
+ l0.157,0.214l0.972-0.854l1.803,1.068l2.926,2.225l0.874-0.342l0.759,0.813l2.054,0.9l0.326,0.514l2.316,0.943l1.955,0.259l2.726,0.257l0.926-0.644l1.049,2.06l1.465-2.273l3.185,0.342l1.118,0.772h0.037l2.027-0.772l1.57-1.457l1.552-1.457z M656.24,159.699
+ l0.869,0.086l0.327,0.857l-0.883,1.672l-1.281,1.545l-0.818,0.257l-1.814-0.857l-0.141-2.059l1.452-1.158l2.289-0.343z"/>
+ </g>
+ <g id="5" name="5" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="1199066.005083"/>
+ <AMP_attribute value="43222950958.228134"/>
+ <AMP_attribute value="Costa Rica"/>
+ <AMP_attribute value="CONCACAF"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="2"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="Round 2"/>
+ </metadata>
+ <path style="fill:#FD993E;" d="M216.68,186.592l0.293-0.472l-0.485-1.287l1.32,1.201l1.514,1.201l0.599,1.458l0.486,0.814l0-0.729l1.083,1.715l0.176-1.973l-0.056-1.715l0.845-0.258l-1.122-1.736l-1.111-1.738l-1.337,0.258l-3.234-0.644l-0.25,0.343l0.014,0.344
+ l-0.304,1.158l1.568,2.059z"/>
+ </g>
+ <g id="6" name="6" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="1776887.054469"/>
+ <AMP_attribute value="20132208139.089241"/>
+ <AMP_attribute value="Denmark"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="3"/>
+ <AMP_attribute value="Quarter Final"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path d="M427.512,70.563l0.268-1.253l-0.051-0.283l1.309-1.087l0.494-0.965l-1.033-0.04l-0.581-1.203l-1.388,0.681l-0.124,0.521l-0.394-0.321l-1.104,0.321l0.135,2.416l0.443,1.172l0.337,0.364l1.503,0.243l0.187-0.567z M433.133,68.947l-0.73,0.687l-0.021,0.525
+ l-0.56,0.526l-1.518-1.294l0.056-0.524l0.275-0.524l0.815,0.403l0.638,0.121l0.061-0.806l0.759,0.443l0.226,0.443z M428.395,65.892l-2.823,0.12l-0.332,0.722l0.122-1.122l1.843-0.32l1.87-1.159l-0.68,1.759z M429.871,69.956l-0.555,0.647l-1.451-0.93l1.347-0.122
+ l0.659,0.404z M432.423,71.089l-0.453,0.284l0.089-0.486l0.364,0.202z"/>
+ </g>
+ <g id="7" name="7" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="2627760.320963"/>
+ <AMP_attribute value="201089155268.52509"/>
+ <AMP_attribute value="Ecuador"/>
+ <AMP_attribute value="CONMEBOL"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="1"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path style="fill:#FFFF00;" d="M225.5,214.085l0.266,2.574l-0.294,0.472l1.644,0.729l0.404-0.6l0.276,0.514l0.091-1.114l-0.167,2.745l-0.859,0.428l0.193,1.503l-0.458,1.114l0.787-0.258l2.482,1.845l0.898-2.08l0.907-2.08l2.403-1.608l2.411-1.608l1.438-3.003
+ l0.455,0.043l-0.807-2.059l0.644-0.215l-2.537-1.286l-2.197,0.042l-1.432-1.33l-1.841-1.372l-0.844,0.9l-2.055,1.116l-0.498,2.101l-0.185,1.159l-1.125,1.329z M201.387,211.212h0.644l0.732,2.315l-1.403-0.129l0.789-0.814l-0.762-1.372z M227.775,218.236
+ l-0.459,0.409l-0.158-0.479l0.617,0.069z M204.322,212.914l-0.071,0.046l-0.72-0.22l0.792,0.174z"/>
+ </g>
+ <g id="8" name="8" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="3268418.945476"/>
+ <AMP_attribute value="380601304537.36841"/>
+ <AMP_attribute value="Germany"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="3"/>
+ <AMP_attribute value="1990"/>
+ <AMP_attribute value="16"/>
+ <AMP_attribute value="Quarter Final"/>
+ <AMP_attribute value="Quarter Final"/>
+ <AMP_attribute value="Winners"/>
+ </metadata>
+ <path d="M425.339,74.3l-2.099-0.366l-0.315,0.815l0.33,0.205l-0.771,1.472l0.559,1.026l-1.616,0.904l-0.259,2.767l0.336,0.249l-0.054,1.288l0.511,1.459l0.008,0.208l0.335,0.167l3.117,1.045l-0.854,3.522l2.031-0.168l1.951,0.294l1.759,0.378l0.613-0.42
+ l1.699-0.083h2.372l0.585-0.251l-0.323-1.342l1.631-1.384l-2.898-2.675l-0.428-0.958l2.209-0.955l2.196-0.953l0.482,0.29l-0.334-1.982l-1.112-2.711l-0.249-2.287l-0.485-0.57l-0.125-0.326l0.477,0.326l-0.018,0.163l-0.869-0.448l-2.394-0.813l0.146-0.162
+ l-2.684,1.138l-0.625-0.285l0.047-0.691l-2.083-0.243l-0.302-0.771l-0.51-0.041l-1.503-0.243l0.452,1.256l0.08,0.284l0.661,0.976l0.716,0.733l-1.314-0.612l-0.775,0.449l0.024,0.449l-0.327-0.123z M434.396,72.306l0.623-0.527l0.618,0.527h-1.241z"/>
+ </g>
+ <g id="9" name="9" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="1671288.242047"/>
+ <AMP_attribute value="74105660269.988464"/>
+ <AMP_attribute value="Republic of Ireland"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="3"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="Quarter Final"/>
+ </metadata>
+ <path d="M397.355,76.671l0.008-1.882l0.01-1.874l-1.152-0.609l-0.519,0.203l-1.579-0.244l1.479-1.703l0.248-0.566l-0.777,0.404l-0.693-0.041l-1.504,0.891l0.582,0.365l-0.611,0.73l-2.404,0.284l0.208,0.732l-0.885,0.855l2.202,0.694l-1.607,1.636l1.667-0.41
+ l-1.732,0.943l-0.96,0.37l0.6,0.246l-0.611,0.452l0.889,0.329l-0.312,0.33h0.747l-0.116,0.329l2.159-0.247l1.928-0.947l1.957-0.329l0.78-0.944z"/>
+ </g>
+ <g id="10" name="10" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="5039374.853547"/>
+ <AMP_attribute value="236030978534.30209"/>
+ <AMP_attribute value="Italy"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="3"/>
+ <AMP_attribute value="1982"/>
+ <AMP_attribute value="15"/>
+ <AMP_attribute value="Quarter Final"/>
+ <AMP_attribute value="Runner Up"/>
+ <AMP_attribute value="3rd Place"/>
+ </metadata>
+ <path d="M437.046,91.704l-3.19-1.006l-2.198,0.292l-1.216-0.125l0.007,0.125l-0.411,0.504l-0.471,0.671h-1.414l-0.765,1.004l-1.325-1.047l-1.21,0.963l-1.244,0.125l-0.031,1.045l-0.272,0.959l0.021,0.665l0.065,0.956l1.426,0.788l0.001,0.953l1.929-1.326
+ l2.754,0.54l1.563,2.567l1.839,1.659l1.853,1.665l2.279,1.087l2.502,1.725l1.185,0.549l1.101,0.85l1.433,2.702l-0.812,2.255l0.917,0.609l0.952-1.695l0.781-0.953l0.34-0.691l-1.158-1.074l0.444-2.13l1.283,0.382l1.52,1.191l0.401-1.149l-2.671-1.458l-2.658-1.447
+ l0.353-0.878l-0.751-0.333l-2.677-0.75l-1.072-1.598l-1.065-1.595l-2.026-1.202l-0.805-2.032l-0.342-1.166l1.828-1.085l1.167,0.25l-0.402-1.463l0.244-0.879z M441.546,115.074l0.019,1.66l-2.594-1.179l-2.586-1.18l-0.582-1.134l1.855-0.262l2.385-0.217
+ l2.382-0.218l-0.879,2.529z M428.358,110.077l-0.776,0.864l-0.573-1.423l-0.24-1.88l-0.24-1.862l2.048-0.924l1.329,1.852l-0.361,3.201l-1.186,0.173z"/>
+ </g>
+ <g id="11" name="11" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="7370115.330093"/>
+ <AMP_attribute value="173151659123.48608"/>
+ <AMP_attribute value="Japan"/>
+ <AMP_attribute value="AFC"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="2"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path style="fill:#FD341F;" d="M708.786,119.966l0.367,1.39l0.921-2.349l-1.333-2.579l-1.323-3.275l0.571-0.913l-0.313-3.023l-2.136-2.259l-1.864-2.231l-1-0.376l-0.256,0.586h0.937l0.271,0.376l-0.6,0.378l-1.032-0.713l-0.223,1.219l0.774,2.249l1.241,2.019
+ l-0.172,1.927l-0.214,1.938l-1.078,1.093l-1.093,1.093l-0.746-0.874l0.114-0.699l-0.957,0.567l0.197,2.099l0.25,1.441l-1.214,0.61l-0.405-0.261l-2.202,0.13l-2.204,0.131l-1.4,1.457l-1.423,1.452l-0.418,0.863l2.569,0.474l0.754-1.078l2.974-0.648l2.599-0.348
+ l0.248,1.687l2.13,1.592l0.249-1.075l0.955-1.078l-0.524-0.691l-0.445-1.214l0.707,0.607l0.729,0.347l2.332,0.174l0.469-1.389l0.577,1.172l0.218-0.998l0.938-0.434l-0.035-1.132l0.519,0.566z M706.277,98.162l0.574-0.787l0.848,1.698l1.13,0.788l0.479-0.248
+ l-2.238,1.035l-1.053,1.66l-0.07,0.624l-4.326-1.329l-0.918,0.332l-1.125,0.125l2.596,1.666l-1.114,0.208l-0.541,0.46l-1.479-1.835l-0.404-1.411l-0.074-0.995l0.321-0.29l1.48-0.042l-1.097-2.092l-1.121-2.096l-0.552-1.333l3.344,1.708l3.349,1.701l1.992,0.456z
+ M694.675,126.441l-0.172,1.884l-0.204,1.88l-0.673,0.896l-0.824-1.494l0.169,1.196l-0.609-0.557l-0.603-1.922l0.061-1.112l-1.479-1.243l0.702,1.285h-0.829l-0.452-0.942h0.287l-1.033-0.943l2.298-1.376l1.333,0.773l0.719,0.431l0.18,0.429l1.13,0.815z
+ M698.506,125.369l-1.671-0.043l-0.255,1.544l-1.291-1.029l-0.666-0.729l-0.287,0.086l1.277-1.549l1.198-0.215l1.079-0.563l1.002,0.648l0.604,0.646l-0.991,1.204z M690.967,143.74l0.888-1.718l0.182,0.258l-1.069,1.46z M702.462,113.259l-0.573,0.013l0.104-0.765
+ l0.469,0.752z M691.108,127.598l0.153,0.384l-0.522-0.042l0.369-0.342z"/>
+ </g>
+ <g id="12" name="12" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="3929193.746679"/>
+ <AMP_attribute value="744329028075.99707"/>
+ <AMP_attribute value="Nigeria"/>
+ <AMP_attribute value="CAF"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="3"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path style="fill:#9859A8;" d="M433.415,193.011l1.434,1.468l1.387-2.048l0.812-2.293l0.797-1.306l0.813-2.122l0.798-1.863l0.795-1.863l1.539-1.452l0.521-1.472l-1.01-0.964l-0.398-1.878l-1.028-1.607l-2.507,1.561l-2.299-0.182l-2.299-0.183l-2.558,1.348
+ l-1.71-0.647l-1.71-0.646l-2.274,0.695l-1.577-1.42l-2.259-0.163l-2.164,0.738l-0.409,1.897l-0.68,1.688l-0.053,1.074l-0.073,0.087l0.405,1.363l-0.138,2.362l-1.641,2.914l-0.138,3.499l-0.141,3.5l2.257-0.653l-0.408,0.396l1.249,0.058l2.451,1.486l0.54,0.546
+ l-0.188,0.047l0.462,0.376l-0.185,0.176l1.034,2.465l0.943-0.151l0.755-0.06l0.225-0.135l0.047,0.428l0.053-1.073l0.244,0.81l0.372-0.353l0.3-0.136l0.422,0.248l2.193-0.093l-0.094-0.771l0.76,0.068l0.635-2.118l0.987-1.524l0.985-1.523l1.727-0.599z"/>
+ </g>
+ <g id="13" name="13" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="2834345.921621"/>
+ <AMP_attribute value="341178035870.03015"/>
+ <AMP_attribute value="Paraguay"/>
+ <AMP_attribute value="CONMEBOL"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="6"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path style="fill:#FFFF00;" d="M271.127,262.854l-0.543,2.765l-0.532,2.767l2.192,2.102l2.196,2.102l1.862,0.837l1.861,0.837l2.01,1.181l2.012,1.18l-0.873,2.428l-0.846,2.425l2.591,0.193l2.591,0.193l1.468-0.558l1.732-2.706l-0.108-1.631l0.063-2.04l0.077-2.038
+ l-1.199-0.172l-1.178,0.043l-0.681-2.124l-0.672-2.122l-1.65-0.215l-3.157-0.472l-0.354-3.602l-0.472-1.158l0.037-0.429l-2.304-1.672l-2.928,0.386l-2.926,0.387l-0.271,1.114z"/>
+ </g>
+ <g id="14" name="14" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="2520480.93427"/>
+ <AMP_attribute value="344535260857.87195"/>
+ <AMP_attribute value="Poland"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="6"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path d="M444.765,72.022l-0.352-0.811l0.531,0.203l-3.099,0.081l-2.606,0.893l-2.623,0.895l-0.018,0.163l0.789,0.245l-0.638,0.163l0.249,2.287l1.112,2.711l0.334,1.982l0.315-0.124l2.858,0.87l0.274,0.831l0.973-0.125l1.416,0.042l0.69,0.666l1.728,1.126
+ l0.768,0.083l1.133,0.417l0.703,0.083l1.737-0.125l3.092,0.71l0.209,0.083l0.063-0.836l1.812-2.541l0.256-1.244l-1.092-2.682l-1.075-0.74l1.241-1.68l-1.62-3.138l-3.586-0.264l-3.58-0.264l-1.996,0.041z"/>
+ </g>
+ <g id="15" name="15" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="1464204.311177"/>
+ <AMP_attribute value="85484127187.354614"/>
+ <AMP_attribute value="Portugal"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="3"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path d="M393.112,103.265l-0.715-0.292l-1.18,0.125l0.06,2.931l-0.765,1.8l-0.768,1.817l-0.415,1.727l1.032,0.65l0.419,0.087l-0.224,3.619l3.055-0.35l-0.088-0.698l0.784-1.571l-0.16-0.609l0.25-1.431l-0.818-1.981l0.705-0.171l0.824-3.099l1.114-1.301
+ l-0.382-1.169l-2.729-0.083z"/>
+ </g>
+ <g id="16" name="16" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="74592080.273624"/>
+ <AMP_attribute value="19815518047542.633"/>
+ <AMP_attribute value="Russia"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="9"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="Round 1"/>
+ </metadata>
+ <path d="M706.784,38.268l-5.164-0.957l-5.138-0.952l-4.445-0.036l-4.257-0.357l1.563,1.003l2.538,1.335l-0.37,0.363l-1.545-0.037l-2.366-0.797l-0.849-0.072l-2.596-1.188l-1.85,0.575l-6.815-0.396l-0.062,1.044l1.631,1.451l-1.338-1.089l-2.591-1.298l-2.601-0.538
+ l-2.409-1.64l-3.946-0.814l-4.076,0.212l-4.088,0.212l-1.045-0.283l-3.023-0.881l-1.087,0.387l0.171-0.598l-1.133-0.176l-2.07-0.385l1.112-0.245l-3.755-0.871l-2.318,0.452l-1.57,0.874l-0.716-0.63l0.666-0.244l0.732,0.105l0.487,0.384l0.18-0.976l-3.541,0.208
+ l0.979-0.243l2.331-0.035l-5.569-0.468l-5.546-0.467l1.314,0.449l-2.345,0.521l0.919,0.208l0.667,0.139l0.71,0.663l0.967,0.806l-2.871-0.211l0.569,0.457l0.237,0.494l-4.515-1.09l-1.553,0.562l-3.847-0.842l-0.604-0.245l0.865,1.368l-0.496,1.025l-2.568-0.743
+ l-3.126-1.266l0.207-0.349l-0.764-0.314l0.551,0.594l-3.646-1.29l-1.045,0.139l2.767,1.853l-3.785-1.991l-6.04-0.693l-6.004-0.69l1.53,0.31l-4.831-1.134l0.421-0.274l-2.556-0.068l-5.681,0.17l1.35,1.099l0.049,0.483l0.906,0.242l-1.879-1.481l-2.209-1.127
+ l-2.5,0.034l0.014-0.34l-2.67,0.443l2.443,0.272l-2.941,0.855l-3.105,0.344l-0.699,0.551l0.817-0.998l3.063-2.01l2.899-2.185l-1.367-0.333l-1.367-0.564l2.299,0.465l-2.01-1.158l-0.375,0.132l-1.109-0.23l-2.578-0.752l-5.194-0.033l-1.906,0.163l-0.167-0.876
+ l-2.214-0.161h-2.618l1.95-0.642l-4-0.414l-2.413,1.282l0.942,0.812l1.46,0.196l-3.761,0.196l2.321,0.889l1.095,1.063l0.481,0.133l-2.088-0.832l-0.544-0.859l-2.556,0.197l-2.438,0.132h-4.649l1.958,0.066l-3.661,0.712l-3.716,0.717l-1.299,0.334l0.028,0.907
+ l-1.378-0.101l2.35,0.641l-1.498,0.135l1.992,0.509l1.463,0.408l-1.81,1.025l1.622,0.447l-2.003-0.79l0.745-0.819l-4.384,0.409l-4.411,0.41l0.735,0.893l1.962,1.486l2.161,0.452l2.993,1.083l1.465,1.939l0.463,0.782l-0.895,0.036l0.267,0.5l-1.646-1.884
+ l-0.324,0.815l0.59,0.64l-1.562-2.09l1.023-0.878l-3.58-0.35l-3.655-1.08l-2.857,0.417l1.43,0.593l-3.404-0.07l0.91,0.7l3.884,0.773l0.817,0.529l0.778,0.071l-6.588-1.093l-1.858-2.717l-1.34-0.138l1.417,1.457l-1.64,0.943l0.64,0.843l2.36,1.556l-0.209,1.679
+ l1.68,1.478l4.311-0.181l2.179,0.615l1.012,1.42l0.688,0.952l2.472,0.479l-3.589-0.479l-1.396-1.899l-1.259-0.726l-3.04,0.58l1.869,2.266l-1.591,2.292l-0.705,0.334l-1.005,0.41l-4.731-0.633l-0.51-0.446l3.08,0.148l-0.611,0.26l2.103-0.223l-0.314-0.482
+ l1.348-2.248l-0.001-1.06l-2.882-1.706l-1.243-2.064l-1.269-2.041l-1.745-0.95l0.064-1.952l-2.677-0.829l-3.455,0.241l-0.391,2.716l-1.339,1.021l0.436,0.531l1.074,0.036l0.348,1.495l0.545,0.86l2.18,0.576l1.49,1.013l0.837,0.108l-0.728,1.384l-2.563-1.348
+ l-4.11-1.013l-3.793-0.577l-3.773-0.574l-0.708,0.61l1.925,1.445l-1.259,0.654l-0.059,0.583l-1.065-0.182l-0.486-1.054l-2.326,0.363l-1.93,0.291l-2.024,0.692l-2.706-0.146l0.792-0.328l-0.717-0.764l1.307-0.326l-3.028,0.907l-0.216,0.255l-3.356,0.767
+ l-1.854,0.623l0.164,0.331l-1.573,0.258l-0.127,1.44l-2.665,0.037l-1.954-1.293l2.592-0.955l-2.979-1.425l-3.405-0.219l1.925,0.838l0.813,2.461l0.713,1.558l-0.032,1.007l-0.868-0.038l-0.675-0.858l-1.934-0.261l-1.69,1.287l-1.72,1.294l1.687,1.849l-3.938-0.492
+ l-2.564-0.868l0.099,1.02l1.826,0.796l1.022,0.798l-2.377,0.229l-3.45-1.633l-1.112-1.924l-0.114-0.712L469,45.307l-2.335-1.121l-0.976-0.559l-2.204-1.261l1.356,0.333l4.648,1.002l4.688,1.007l4.358-1.007l0.484-1.556l-1.693-1.252l-4.945-1.554l-4.88-1.542
+ l-2.87,0.145l-0.717,0.181l0.573-0.758l-1.082,0.145l-1.402-0.684l1.587-0.18l-2.042-0.359l-0.723,0.431l-0.897-0.18l0.021,0.575l-1.13,0.072l-1.641,0.975l-0.11,0.435l0.159,1.42l2.497,1.394l-1.088,1.625l2.188,2.573l0.106,1.996l0.673,0.757l1.058,1.025
+ l-0.807,0.648l3.231,1.876l-1.32,1.357l-1.343,1.364L461.063,56l-1.384,1.376h1.324h-0.301l0.391,0.431l3.202,0.98l-1.924-0.078l-1.632,0.747l-0.533,0.67l0.629,2.167l-0.885,1.472l1.188,1.724l1.318,2.79l3.007,0.525l3.017,0.525l0.422,2.802l2.566,2.191
+ l-0.687,0.708l0.524,2.225l1.608-0.519l3.166,0.345l0.347,0.871l2.574,2.222l2.589,2.234l1.303-0.276l2.989,0.946l3.002,0.948l1.348,3.58l-1.638,0.766l-0.716,1.446l0.468,0.504l-1.607,0.88l-1.021,0.294l1.694,1.298l-0.69-0.083l-0.222,0.794l-0.339-0.543
+ l-0.1,1.462l-1.79,0.209l-0.461,0.458l3.058,1.581l3.074,1.576l0.217-0.198l2.312,0.164l2.313,0.162l3.096,1.208l3.107,1.208l3.121,1.21l3.134,1.214l3.42,0.593l-1.769-1.895l-1.767-1.886l-0.273-1.657l-0.157,0.663l-1.186-1.906l-0.706-0.706l1.063-2.457
+ l2.171-0.961l1.005-0.586l-0.2-0.544l-1.572-2.484l-2.424-1.893l-2.415-1.891l0.342-2.785l0.296-2.767l2.418,1.044l0.385-1.05l1.514-1.13l1.496-1.127l2.886-0.077l2.677,1.226l2.688,1.229l2.99-0.2l3.888-0.057l3.911,0.624l0.343-0.705l-2.129-2.523l0.934-2.824
+ l1.821,0.064l-2.447-1.17l2.56-0.418l2.551-0.418l2.399-0.678l2.385-0.677l2.372-0.676l2.357-0.676l1.837-0.175l1.413,1.558l3.869,1.292l1.482,0.779l1.547,0.266l2.536-0.929l2.515-0.927l0.479,0.396l-0.349,1.136l2.711,1.825l2.718,1.833l2.721,1.84l2.722,1.849
+ l0.464-0.609l1.487,0.532l2.551-0.395l2.685,1.673l2.683,1.68l2.663-0.608l2.347,2.398l1.542-0.167l1.043-0.794l1.758-0.793l2.018-1.187l1.99-1.183l4.139,0.456l0.66,0.872l3.002,0.52l3.01,0.521l1.557-1.249l-1.857-1.742l0.535-2.557l3.437,0.761l3.446,0.763
+ l1.445,1.447l3.049,1.577l3.48-0.665l2.787,0.603l2.791,0.604l1.104,0.917l4.238,1.086l2.35-0.439l2.343-0.438l2.236-1.792l3.747,0.874l1.917,0.167l2.979,0.584l1.472-1.667l-0.587-1.825l-0.023-3.049l-1.435-0.944l-0.95-0.369l1.498-1.349l2.504-0.102
+ l2.502-0.103l5.158,1.636l2.056,1.733l2.038,1.741l2.016,1.749l1.993,1.756l2.254,0.959l3.676,0.961L669.229,86l2.577,2.767l3.089-0.419l3.145-1.09l1.239,2.181l0.351,2.999l0.278,2.985l-2.644-0.416l-0.396,1.29l1.46,2.219l1.438,2.215l-0.847,0.581l0.543,0.665
+ l0.408,0.332l-0.343-0.789h0.346l1.102-1.493l0.625-0.208l0.744,1.078l1.487,0.124l2.371-0.87l0.72-1.699l0.691-1.699l0.334-2.362l0.291-2.374l0.237-2.379l0.175-2.381l-1.017-2.116l-1.065-2.108l-1.18-1.372l-0.522-1.677l-0.562-1.67l-1.473-1.725l-2.266-1.309
+ l1.357,0.082l-5.203-2.69l-2.52-0.325l1.18,1.953l-0.493-0.855l-1.72,0.815l-0.008-0.855l-1.123-0.407l0.256-0.65l-0.5,1.138l-1.68-1.625l-3.408-0.446l0.816-2.184l0.743-2.174l0.636-1.504l0.6-1.498l-0.518-1.155l0.773-2.101l2.41-0.355l2.401-0.355h0.699
+ l0.984,0.474l0.285-0.395l4.617,0.277l0.053-0.434l-0.345-0.434l3.573,0.157l2.891,0.671l-0.966,0.316l0.719,0.751l1.964-0.277l1.438-0.553l2.819,0.039l-0.528-0.474l-1.862-0.197l-0.794-0.63l-0.004-2.334l-0.087-2.316l3.921-0.155l0.921-0.271l2,2.216
+ l0.365-0.273l1.236,1.094l1.057-2.338h1.191l-2.102-2.012l0.521-0.385l3.252,0.308l0.458,0.386l-1.802-0.116l1.493,1.664l1.468,1.673l-1.1,0.781l-0.405,1.863l-0.469,1.873l-0.131,2.342l-1.831,0.438l0.826,0.758l0.305,1.641l1.586,2.069l1.545,2.078l3.109,2.525
+ l3.063,2.538l3.008,2.552l2.946,2.568l0.798-1.611l-1.702-3.325l0.713-0.45l1.479,0.164l-0.407-0.409l-1.894-2.403l2.293-0.974l-3.066-2.588l-0.029-1.329l0.202-0.442l-0.052,0.522l1.373,0.483l-1.545-1.688l-0.943-0.12l-2.096-2.559l-1.103,0.199l-1.828-0.716
+ l-1.019-2.618l-1.171-1.538l1.255-0.472l1.477,0.55l-0.396-0.708l0.941-0.941l1.725,1.57l0.146-1.1l3.229-0.705l3.317,1.333l-0.039-0.589l0.993-1.642l0.159-0.273l-0.105-0.662l0.232-0.35l1.948-1.221l1.901-1.216l-1.009-0.308l0.573-0.077l4.132,0.886
+ l0.187-0.424l-1.804-1.116l-2.063-0.958l-1.063-0.344l-3.139-1.904l-0.189,0.38l-2.184-1.137l-1.565,0.303l-1.028-0.567l-2.048,0.454l1.477-0.265l2.333,0.038l-1.555-0.528l3.642,0.718l1.992-0.303l-3.218-2.36l-3.26-2.337l-3.308-2.313l-3.363-2.286z
+ M119.609,44.746l-2.493,0.749l-1.48,0.038l-0.631,0.413l-1.302,0.113l-0.229-0.451l-0.301,0.564l-0.708,0.489l-2.493,1.095l0.121,0.417l-0.878,0.303l-1.303,0.38l0.492-0.569l-1.174-0.113l-1.486-0.53l1.028-1.583h-3.608l0.161-0.9l1.745-0.785l-0.563,0.074
+ l0.035-0.41l-0.886,0.448l-0.874,0.149l-1.242,0.711l-1.432,1.201l2.909-2.052l2.94-2.034l2.978-2.016l3.017-1.995l1.039,1.272l0.007-0.437l1.554,1.389l0.012,1.177l-1.463,1.406l-0.661,0.93h0.851l0.125-0.521l1.254-0.965l1.745-0.037l0.553,0.222l-0.024-0.296
+ l0.998,0.148l1.076,1.151l0.59,0.857z M512.301,22.336l-1.543,1.014l-4.233,1.075l-4.329,1.084l-1.113,0.202l0.61,0.302l-0.29,0.336l-0.913,0.134l0.137,0.372l-1.641-0.236l0.57,0.744l-0.686,0.271l0.413,0.681l-1.994-0.341l1.961,0.546l-1.072,0.034l0.315,0.582
+ l-4.422-0.342l0.751-0.513l-1.915-0.034l1.873-0.884l0.625-0.034l-0.742-0.338l0.425-0.406l0.966-0.471l-0.671-0.134l0.274-0.336l-1.107-0.101l1.272-0.401l1.128-0.334l3.544-1.127l0.545-0.395l6.669-0.818l2.822-0.649l1.771,0.519z M697.63,86.418l-0.975-0.712
+ l-2.857-1.045l0.395,0.083l-0.729,0.083l0.933,3.185l3.892,3.062l1.507,1.928l-0.821-0.921l-1.935-0.922l0.229,1.801h-0.54l-1.596-2.64l-1.732-2.099l-1.764-2.096l-1.684-2.529l-1.756-2.515l-1.966-1.984l-2.052-2.221l-2.097-2.209l0.894-0.041l0.101-0.815
+ l-2.06-1.424l0.535-0.284l2.691,2.401l2.651,2.414l0.55,0.821l2.609,2.153l2.57,2.164l2.524,2.176l2.481,2.187z M502.687,34.541l-0.67,0.212l-1.434-0.106l-1.558-0.036l-1.34-0.142l-1.517-0.389l0.163-0.212l-0.695-0.74l-0.803-0.105l-0.918-0.07l-1.383,0.07
+ l-1.087-1.016l0.843-0.279l0.789-0.938l-0.663-0.312l0.591-0.622l0.623-0.687l4.258,0.137l-0.328,0.619l-0.229,0.345l-0.012,0.311l1.228,2.125l4.141,1.833z M630.18,24.674l-0.135,0.534l-1.491,0.368l-2.562-0.769l-0.215-0.532l-0.714,0.366l2.236,0.868
+ l2.193,0.335l-2.016,0.034l-4.032,0.067l-0.174,0.471l-5.197-1.242l-0.426-0.533l-0.787-0.498l0.061-0.199l1.64-0.462l4.033,0.76l-0.831-0.628l1.094,0.099l-1.005-0.363l8.327,1.324z M551.273,16.614l0.74,1.072l0.675,0.606l-6.889-0.365l-2.006-0.781l-1.333-0.06
+ l0.397-0.678l3.874-0.494l0.824,0.64l1.122-0.292l2.595,0.351z M546.115,15.003l-0.909,0.311l0.904,0.486l-6.266,0.144l0.563-0.259l-2.382-0.143l1.253-0.228l0.151-0.479l-1.063-0.14l4.094-0.525l3.654,0.833z M561.794,18.752l0.162,0.154l-7.004,0.997
+ l-0.542-1.121l0.857-0.338l-0.807-0.518l-0.274-0.242l1.459-0.121l-0.495-0.33l1.057,0.06l0.651,1.027l0.956-0.637l3.979,1.066z M639.922,25.442l-0.682,0.738l-7.026-0.905l-0.713-0.733l1.921,0.299l6.5,0.601z M634.547,29.308l-6.628-0.412l2.187-0.99
+ l3.756,1.058l0.686,0.343z M481.579,14.975l-3.874,0.709l-1.209,0.375l-1.074-0.173l1.154-0.316l2.119-0.595l1.725-0.225l1.159,0.225z M123.444,33.622l-4.485,0.353l2.378-1.232l2.518,0.633l-0.411,0.246z M492.439,38.015l-2.534,0.833l-0.973-1.123l0.809-0.541
+ l2.698,0.83z M697.881,32.848l1.856,1.339l-1.103,0.212l-1.245-0.813l0.491-0.739z M508.509,36.538h-1.528l-2.466-1.001l0.41-0.249l3.584,1.25z M496.206,14.891l-1.851,0.565l-2.264-0.369l4.114-0.197z M500.416,14.639l-3.935,0.14l3.282-0.499l0.652,0.359z
+ M711.806,94.381l-0.303,0.375l-0.835,1.145l-0.848,1.143l0.229-1.954l1.757-0.708z M452.341,62.422l-2.043,0.875l-0.253-0.835l1.896-0.238l0.4,0.199z M521.885,29.411l-2.7,0.103l0.346-0.754l1.237,0.446l1.117,0.206z M686.885,36.609l-0.251,0.431l-2.695-0.574
+ l2.592-0.072l0.354,0.215z M711.116,60.995l-0.833,1.07l-0.584-0.792l0.583-0.751l0.834,0.474z M584.291,26.821l0.216,0.474l-2.929-0.271l2.713-0.203z M477.469,15.087l-4.084,0.17l0.892-0.282l3.192,0.112z M492.626,15.627l-1.504,0.259l-1.329-0.259h2.833z
+ M627.714,27.295l-0.019,0.645l-1.427-0.577l1.445-0.068z M716.168,81.496l-0.637,1.371l-0.104-1.579l0.741,0.208z M533.54,30.86l-1.692,0.451l-0.104-0.417l1.796-0.035z M708.947,96.919l-0.899,1.575l-0.033-1.161l0.933-0.414z M615.871,24.475l0.219,0.499
+ l-1.733-0.997l1.515,0.498z M726.611,71.495l-3.229-1.66l2.713,1.214l0.516,0.446z M451.657,61.431l-1.603-0.079l0.488-0.198l1.114,0.277z"/>
+ </g>
+ <g id="17" name="17" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="6279409.303118"/>
+ <AMP_attribute value="1707493687587.3572"/>
+ <AMP_attribute value="Saudi Arabia"/>
+ <AMP_attribute value="AFC"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="3"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path style="fill:#FD341F;" d="M497.127,157.426l2.43,2.102l1.831,2.894l1.834,2.896l1.125,1.852l1.125,1.852l0.768-0.765l0.377-2.115l2.534,0.268l2.116,0.934l2.117,0.935l0.162,2.701l1.266-1.704l1.258-1.704l1.251-1.705l1.246-1.705l1.776-0.471l1.775-0.472
+ l1.773-0.473l1.773-0.472l1.628-0.643l1.626-0.645l1.625-0.643l1.623-0.645l0.531-2.571l0.524-2.573l-1.196-1.802l-0.398,0.516l-3.39-0.644l-3.387-0.644l-0.751-2.23l-1.497-1.029l-0.065-0.73l-0.677-0.516l-0.979-1.738l-0.985-1.739l-0.123-1.503l-2.016-1.975
+ l-1.009-0.816l-1.259-2.015l-1.872-0.386l-0.348-0.771l-2.037-0.257l-2.163,0.855l-1.879-1.113l-2.596-1.027l-0.056-2.01l-1.317-0.085l-0.279-0.812l-2.121-0.961l-2.117-0.961l-2.113-0.96l-2.111-0.962l-2.383,0.94l-2.391,0.939l2.449,2.563l-0.957,1.281
+ l-1.604,0.342l-1.325,1.756l-2.449-0.472l-0.389,3.085l0.636,0.172l2.222,2.983l2.213,2.983l1.149,2.662l1.486,1.245l1.487,1.244l0.778,2.017l0.774,2.015l0.948,3.431z"/>
+ </g>
+ <g id="18" name="18" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="2510248.327839"/>
+ <AMP_attribute value="168140700206.00543"/>
+ <AMP_attribute value="Senegal"/>
+ <AMP_attribute value="CAF"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="1"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path style="fill:#9859A8;" d="M372.714,168.834l-0.51,1.03l-1.049,1.779l-1.05,1.78l1.429,1.844l0.61-0.514l-0.458,0.428l0.37,0.301l-0.05,0.729h2.442l0.272-0.514l2.808,0.644l0.555,0.557l-2.998-0.557l-1.758,0.601l-1.758,0.6l0.208,1.116l1.654,0.086
+ l0.873-0.516l-0.003,0.215l-2.186,0.301l-0.501,0.729l2.982-0.601l1.902-0.172l1.902-0.171l1.988,0.472l3.271,0.257l-0.648-2.53l-0.626-0.987l-0.604-2.572l-1.66-1.781l-1.656-1.78l-2.147-1.244l-1.801,0.237l-1.801,0.235z"/>
+ </g>
+ <g id="19" name="19" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="6079751.986802"/>
+ <AMP_attribute value="1117797816804.5605"/>
+ <AMP_attribute value="South Africa"/>
+ <AMP_attribute value="CAF"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="2"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path style="fill:#9859A8;" d="M453.621,274.906l-0.204,2.404l-0.209,2.405l-0.217,2.403l-0.224,2.402l-1.907,0.943l-3.374-0.472l-0.734-1.672l-1.264,1.415l0.92,2.376l0.908,2.374l0.896,2.37l0.884,2.372l-0.857,1.155l0.22,1.2l0.633,2.668l0.725-0.13
+ l1.064,0.734l1.488,0.778l2.272-0.8l2.276-0.799l2.316-0.064l2.317-0.065l2.938-0.431l1.472-0.431l2.364-1.375l2.368-1.372l1.414-1.519l1.416-1.517l1.417-1.517l1.418-1.517l1.656-1.967l1.656-1.969l1.074-2.51l1.065-2.51l-1.685-0.044l-0.413,1.159l-2.18-0.816
+ l0.126-1.889l1.075-1.288l1.178,0.559l-0.051-2.705l-0.066-2.704l-0.419-1.844l-0.424-1.845l-2.136-0.301l-2.136-0.299h-0.297l-2.979,1.973l-2.234,1.93l-1.216,2.273l-1.37,0.859l-1.249,2.147l-3.326-0.473l-1.813-0.646l-1.126,1.696l-1.127,1.697l-2.408,0.473
+ l-0.792-0.345l0.401-2.49l-1.524-2.447z M470.713,285.506l0.886-0.643l1.959,1.157l-0.484,1.584l-2.127,1.624l-0.853,0.685l-1.542-2.224l2.161-2.184z"/>
+ </g>
+ <g id="20" name="20" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="1352083.29436"/>
+ <AMP_attribute value="85517437790.920105"/>
+ <AMP_attribute value="Korea"/>
+ <AMP_attribute value="AFC"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="6"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="Round 1"/>
+ </metadata>
+ <path style="fill:#FD341F;" d="M682.417,122.353l0.265-0.477l0.374-0.13l0.266-0.217l0.21-0.347l0.557,0.217l0.973-0.564l1.023-0.521l-1.224-3.623l-2.345-2.534l-2.384-2.524l-0.869,0.739l-1.662,0.87l-0.006,0.435l0.133,0.437l1.396,1.965l0.036,0.394
+ l-0.972-0.35l-0.237,0.263l0.356,0.48l1.422,1.617l0.043,0.262l0.037,0.829l0.398,1.436l0.416,0.564l0.145,0.259l-0.123,0.304l0.396,0.434l0.535-0.348l0.73-0.303l0.111,0.434z"/>
+ </g>
+ <g id="21" name="21" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="4624671.568504"/>
+ <AMP_attribute value="543584434542.62439"/>
+ <AMP_attribute value="Sweden"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="10"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="3rd Place"/>
+ <AMP_attribute value="Round 1"/>
+ </metadata>
+ <path d="M446.467,48.701l-0.567-1.137l0.324-1.131l0.919-0.639l0.392,0.113l0.162-0.375l0.658-0.3l2.383,0.075l-0.825-2.162l-1.695-3.021l-4.829-1.964h-0.826l0.183,1.198l-2.894-0.073l-0.207,0.803l-2.279,0.586l-0.896,2.249l-0.76,1.339l-1.606,0.336
+ l0.308,0.673l-1.344,2.825l0.944,0.949l-1.581,0.152l-1.561,0.991l0.064,2.224l0.06,2.24l1.392,0.854l-0.737,0.74l-0.003,0.625l-0.232,2.116l-1.097,2.13l-0.406,0.277l0.634,1.389l0.058-0.04l0.632,0.198l-0.16,0.677l1.771,2.638l0.408,1.485l0.665,1.895
+ l2.06,0.121l0.378-1.331l3.07-0.645l0.338-1.907l0.327-1.898l0.229,0.12l-0.347-0.598l0.191-0.994l0.057-0.04l-0.643-0.516l0.862,0.04l1.18-1.109l0.294,0.396l1.184-0.988l-4.199-0.237l2.373-0.236l-0.07-0.315l0.698,0.709l1.778-1.024l-0.89-0.982l-2.027-0.979
+ l-0.567-2.531l0.144-1.393l0.387-0.424l0.192-0.962l1.154-0.154l0.803-0.537l1.534-0.88l2.062-1.638z M444.185,63.894l0.001,0.479l-0.436,1.199l-0.151,0.28l-0.426-0.92l1.012-1.038z"/>
+ </g>
+ <g id="22" name="22" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="1986452.055829"/>
+ <AMP_attribute value="142005256857.95688"/>
+ <AMP_attribute value="Tunisia"/>
+ <AMP_attribute value="CAF"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="3"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path style="fill:#9859A8;" d="M431.324,132.468l0.011-2.135l1.409-1.219l1.403-1.218l0.106-2.057l-1.365-0.986l-1.943-1.206l1.11-1.576l1.105-1.584l-1.354-1.918l1.031-2.753l-1.316,0.787l-0.563-0.831l-0.832-0.524l-2.449,0.874l-0.477,0.699l0.211,3.579
+ l-0.931,1.93l-0.937,1.92l1.751,2.447l1.674,1.884l0.589,2.393l0.59,2.391l1.175-0.896z"/>
+ </g>
+ <g id="23" name="23" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="5480996.610858"/>
+ <AMP_attribute value="725380529920.90894"/>
+ <AMP_attribute value="Turkey"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="2"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path d="M494.429,116.34l2.109-0.48l2.105-0.48l0.671,0.219l0.57-0.437l2.787-0.045l0.572,0.481l1.246-0.175l-1.394-1.833l-0.51-2.606l-0.283-1.423l0.918-0.729l0.163,0.128l0.043,0.043l-2.031-0.983l-0.844-1.357l-0.903-1.641l-1.295-0.963l-2.696,0.209
+ l-3.15,1.383l-2.613-0.042l-2.71-0.629l-2.703-0.628l-0.843-0.502l-1.485-0.625l-1.333-0.125l-2.052,0.25l-2.056,0.25l-2.834,1.758l-3.976-0.126l1.052,0.884l0.602,0.084l-1.585,0.676l-2.553-0.084l-0.677,0.466l-2.095,0.296l-0.113,1.837l1.133,0.129l0.248,1.336
+ l0.01,0.432l0.415,0.954l-0.761-0.218l-0.576-0.129l0.338,0.912l1.748,0.916l-0.233,0.479l0.979,0.961l-0.224,0.611l1.687,0.219l-1.313,0.699l1.104,0.043l1.117-0.174l1.13,0.655l1.96,0.744l1.036-0.612l0.415-1.094l3.429,1.487l1.771,0.567l2.188-1.049
+ l1.658-0.655l1.435,0.13l0.927-0.523l-0.102,2.011l-0.018,0.436l0.229,0.132l0.857-0.829l0.104-1.138l0.812-0.306l3.226-0.263l3.167,0.087z M464.451,103.182l2.991-0.125l1.483,1.587l0.93,0.755l-3.238,0.504l-2.313,1.692l0.776-1.144l-1.352-0.253l0.828-1.554
+ l-0.49-0.919l0.384-0.542z"/>
+ </g>
+ <g id="24" name="24" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="2224194.187141"/>
+ <AMP_attribute value="138568316199.5567"/>
+ <AMP_attribute value="England"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="1"/>
+ <AMP_attribute value="1966"/>
+ <AMP_attribute value="11"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="4th Place"/>
+ </metadata>
+ <path d="M403.438,75.608l-0.193,1.536l0.312,1.819l0.964-0.278l-0.857,0.825l-1.702,0.413l-1.895,1.345l-1.909,1.35l0.686,0.166l0.496-0.125l2.405-0.333l0.734-0.623l1.741-0.332l2.262-0.29l3.336,0.083l2.245-1.448l-1.63-0.413l0.582-0.66l1.767-1.808
+ l-0.653-0.942l-2.318,0.164l0.192-0.695l-1.538-1.47l0.671,0.123l-0.19-0.937l-1.426-1.381l-1.771-2.641l-0.685,0.456l-0.386,0.62l-1.488,0.632l-0.619,0.77l0.994,1.096l0.089,1.996l-0.214,0.981z"/>
+ </g>
+ <g id="25" name="25" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="43229004.554457"/>
+ <AMP_attribute value="6778676149276.9512"/>
+ <AMP_attribute value="USA"/>
+ <AMP_attribute value="CONCACAF"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="7"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="Round 1"/>
+ </metadata>
+ <path style="fill:#FD993E;" d="M272.788,95.963l-0.189-0.874l-0.579-1.627l0.943-3.101l-1.354-0.545l-0.986,0.042l-0.191-0.504l-1.742,1.867l-1.742,1.864l-1.869,1.587l-1.375,0.833l-3.97,0.229l-3.973,0.229l-2.065,1.495l-2.071,1.492l-2.525,0.208l-2.527,0.206
+ l-0.195,1.617l-2.182,0.705l-2.185,0.706l-2.19,0.708l-2.193,0.708l-0.622-0.917l2.48-2.408l1.136-1.409l0.445-2.195l0.462-2.205l-1.638-1.211l0.226-0.712l-0.727,0.126l-0.187-1.089l-1.751-1.101l-1.735-1.101l-1.717-1.102l-1.699-1.102l-2.741,0.671
+ l-1.638-0.629l-1.804,0.294l-2.905-1.216l-2.26-0.461l0.278-1.464l-0.898,0.92l-3.428,0.002l-3.428,0.003l-3.428,0.003l-3.428,0.002l-3.429,0.003l-3.428,0.003l-3.429,0.002l-3.428,0.003l-3.429,0.003l-3.429,0.002l-3.429,0.003l-3.429,0.003l-3.429,0.002
+ l-3.428,0.002l-3.429,0.003l-3.429,0.002l-0.756,2.053l-0.961,2.014l-1.639,0.755l0.33-0.587l0.154,0.293l1.62-1.846l-1.844,1.343l-0.219,0.084l1.191-1.05l0.656-0.88l-3.129-0.671l-1.031,3.357l-0.261,0.419l-0.125,0.42l-0.15,0.461l-0.155-0.294l-0.602,0.922
+ l1.438,0.293h-1.079l-0.977,1.213l-2.53,3.309l-2.496,3.292l-0.759,2.014l-0.728,2.022l-2.056,2.439l0.194,0.892l-0.396,1.882l0.245,1.661l0.272,1.672l-0.171-0.392l-0.186,0.479l1.033,0.131l1.937-0.305l-1.398,0.13l-0.368,1.439l-0.444-0.349l-0.404,0.349
+ l0.673,1.443l-0.611,1.005l0.535,1.507l0.553,1.506l-0.41,2.256l1.221,0.261l2.177,1.122l2.095,1.764l0.058,2.101l2.614-0.149l2.613-0.15l1.705,0.846l1.714,0.844l1.723,0.845l1.733,0.843h3.096h3.096l0.367-1.153h3.652l1.917,2.477l0.712,2.564l1.308,1.07
+ l1.32,1.069l1.584-1.969l3.038,0.343l0.922,2.355l0.965,2.358l0.795,3.005l1.476,1.202l2.663,0.472l-0.2-2.919l-0.209-0.387l-0.169-0.558l0.73,0.343l0.326-1.287l0.61-0.429l1.187-0.857l0.587-0.472l0.046-0.344l1.121,0.043l-0.603,0.386l1.238-0.6l-0.485,0.043
+ l2.673-1.843l0.244-0.685l0.595,0.385l-0.235,0.215l1.775-0.984h0.328l1.771,0.192l1.773,0.192l1.16-0.128l0.622,0.898l1.294,0.386l1.193,0.043l-0.081-0.899l1.755,1.07l-0.455,0.557l0.759-0.771l-0.922-1.198l0.741-0.514l-0.286-0.171l-0.192-0.257l-1.516-0.342
+ l1.475-0.086l3.577-0.213l0.517-1.068l-0.111,1.196l1.084-0.128l1.058-0.47l-0.456,0.385l2.102-0.129h-0.618l1.362,0.385h0.4l0.333,0.598l-0.403-0.298l0.426,1.153h-0.036l3.19-1.068l1.083,1.668l1.104,1.67l-0.664,2.959l-0.129-0.472l0.255,0.386l0.418-0.643
+ l-0.348,1.631l0.633,0.944l0.263,0.171l0.075,0.815l0.443-0.429l-0.326,0.601l0.406,1.503l1.004,1.761l1.447-0.301l0.668-2.082l0.688-2.083l-0.389-2.188l-0.361-2.188l0.338,2.016l-0.181-2.069l-0.158-2.065l-0.133-2.064l-0.109-2.061l0.654-0.471l0.07-0.298
+ l0.912-1.238l0.68-1.155l0.114-0.171l0.666-0.214l3.08-2.101l0.227-0.042l2.222-1.548l0.937-0.302l1.556-1.468l2.685-0.997l-1.627-0.478l1.038,0.13l0.313-0.521l-1.019-0.61l2.294,0.088l0.614-1.135l-0.6,0.394l-0.611-0.523l-0.678-0.394l0.094-0.087l0.843,0.175
+ l0.697-0.219l0.417,0.306l0.131-1.704l0.245,2.446l-0.777-3.102l-0.754-0.22l-0.715-0.743l1.423,0.612l-0.605-1.136l0.903,0.567l-1.033-2.093l1.278,0.958l-1.063-1.698h-0.563l0.907-1.041l-0.318,0.954l1.312,0.696l-0.382-1.346l0.426,0.825l0.423-2.251
+ l1.375-0.602l-0.92,1.422l-0.205,0.691l-0.343,0.695l0.732,0.391l-0.351,0.74l0.16,0.437l-0.439,0.436l-0.501,0.918l2.771-2.965l-0.203-2.765l1.252-1.114l-1.064,0.728l0.774,1.031l-0.077,0.733l2.615-2.535l-0.104,0.341l0.493-1.702l0.965-1.811l-0.246,0.757
+ l0.783-0.379l2.284-0.461l2.281-0.461l0.45-0.753l0.437,0.042l0.042,0.083l0.857,0.46l0.493,0.084l1.307-0.627l-0.061-1l0.077,0.625l-1.215-0.416l0.235-1.455l0.055-0.374l2.473-2.569l0.652-0.414l0.355,0.166l1.975-1.618l0.019,0.25l0.504-0.083l0.988,0.207
+ l2.608-1.204z M163.207,69.997l-2.295,1.133l0.49-0.648l0.994-0.606l-1.449,0.364l0.623-0.283l1.4-1.936l-2.414,0.926l-0.881,0.323l1.875-1.451l0.792-0.081l-0.862-1.205l-0.325-1.082l-0.209-0.28l0.761-0.12l-0.149-0.878l0.645,0.239l-0.046-0.718h0.679
+ l-1.122-0.12l0.551-0.358l-0.113-0.438l0.208-0.318l-0.641,0.517l-0.396-1.072l0.602-1.543l-0.26,0.237l-2.017,2.259l-0.174-0.397l-0.08-0.397l0.635-0.753l-0.229-0.079l-0.903,0.237l-0.847-0.198l0.405,1.388l-1.014,0.159l-1.228-1.606l-1.179-1.599l1.151-0.748
+ l-0.455,0.63l0.934-0.354l-1.054-0.275l-2.592,0.433l-0.083-0.629l-2.498-0.157l-2.496-0.157l-0.524-0.588l0.716-0.587l-1.836,0.705l-0.701-0.274l0.619-0.547l-0.114-0.117l-0.829-0.039l0.453-0.195l0.132-0.507l0.769-0.155l-2.814,0.545l0.107-0.234l-0.908,0.118
+ l1.458-0.779l-1.933,0.857l-1.043,0.43l0.435,0.234l-0.673,0.313l0.329,0.196l-2.249,1.098l-1.07-0.157l-1.199,0.629l-0.107-0.236l-0.367,0.394l-0.564-0.039l-0.877,0.473l0.769-0.512l-2.584,1.064l-1.278-0.197l2.609-1.025l-1.624,0.236l3.301-2.432l3.505-0.585
+ l0.813,0.078l-0.414-0.624l1.531-0.7l-2.389,0.505l-3.43,1.052l-3.403,1.37l-0.634,0.785l-0.854,0.197l-4.067,1.695l0.986,0.633l-4.736,1.985l-5.251,1.916l-6.07,2.206l-0.494,0.523l-0.641,0.161l-2.243,0.605l-0.423,0.161l-1.638,0.121l-2.414,0.404l0.791-0.121
+ l-1.146,0.041l-2.3,1.092l-0.279-0.243l-1.109,0.566l-0.406-0.243l-0.279,0.202l5.169-2.262h1.633l-0.003,0.443l0.419-0.363l0.774,0.04l0.455-0.805l4.966-1.446l3.141-1.721l0.999-0.319l1.902-1.394h0.431l-0.51-0.04l3.208-1.864l-3.512,0.951l-0.17-0.476
+ l1.33-0.475l-0.643-0.08l-2.339,1.506l-0.018-1.071l-0.952-0.158l-3.877,0.634l1.217-0.951l-0.031-0.079l0.704-0.711l1.284-1.456l1.999-1.529l-1.971,1.097l-3.282,0.904l-0.799-1.648l1.524-0.782l0.773,0.352h1.413l-0.428-0.391l0.785-0.078l-2.167-0.312
+ l-0.073-0.234l1.996-1.012l-2.174,0.817l-0.378-0.778l1.121-0.349l-0.207-0.31l1.005-0.233l3.114-1.275l0.84-0.385l-0.314,0.039l2.091-1l1.573-0.383l-0.73,0.46l4.492-1.072l3.057-0.688l0.944-1.408l0.744-0.265l0.936-0.908l-4.133,1.211l-0.639-0.378
+ l-4.866-0.039l0.392-1.397l1.287-0.188l-1.958-0.714l5.671-1.422l4.481-0.856l-1.633,0.894l3.831,0.262l1.314-0.112l-0.784-0.523l0.381-1.189l0.172,0.817l2.783,0.037l-2.131-0.037l0.777-0.854l-2.805-0.444l0.592-0.554l-1.424-2.201l2.074-1.091l3.381-0.145
+ l4.043-1.372l4.053-1.468l3.864-0.712l-0.544,0.819l0.938-0.57l0.142-0.355l1.597-0.46l0.869,0.142l4.648-1.095l1.136,0.176l-1.03,0.671l1.701-0.283l0.504,0.248l1.084,0.071l1.741,0.39l0.278,0.284l4.621,0.32l3.521,0.356l3.539,0.357l3.797,0.932l-3.143,2.538
+ l-3.091,2.571l-3.045,2.604l-3.007,2.633l-2.974,2.661l-2.939,2.687l-2.902,2.712l-2.862,2.737l3.62-0.118l-0.85,0.627l0.47,0.433l-0.1,2.367l1.71-0.593l1.406-0.75l2.596-0.788l0.544,2.527l-0.487,2.226l-0.432,2.239l0.945,1.144l0.969,1.147l-1.289,1.533z
+ M127.021,64.333l-1.597,0.399l-0.45,0.28l-2.404,0.72l-1.234,0.761l1.028-0.802l-0.557-0.12l-0.31,0.44l0.07-0.801l1.568-0.918l0.099,0.838l0.764-1.038l0.881-0.16l0.575,0.04l0.399-0.518l0.607,0.239l0.235,0.04l-0.218,0.438l0.542,0.159z M112.871,51.027
+ l-2.479,0.728l-0.855-0.996l0.291,0.421l-1.768-0.191l0.577-0.803l1.948-0.038l2.286,0.88z M158.504,71.13l-0.373,0.324l-0.119-0.891l-0.9-0.526l0.808-0.202l0.509-0.687l-0.804,0.162l0.898-0.766l-0.168-0.725l0.794-0.362l0.325,1.934l-0.39-0.201l-0.082,0.524
+ l-0.499,1.416z M63.437,160.899l-1.96,1.244l-0.705-0.343l0.763-2.83l1.902,1.929z M160.926,64.452l0.263-1.076l-0.856,1.315l-1.834,1.08l0.467-0.641l1.511-2.272l0.649,0.159l-0.199,1.434z M98.992,71.495l-2.917,0.446l-0.917-0.244l3.104-1.094l0.73,0.891z
+ M108.789,58.749l-1.119,0.275l-1.711-0.511l2.854-0.706l-0.024,0.941z M158.877,64.692l-1.188-0.679l-0.373,0.759l-0.526-0.918l0.655-0.04l0.222-0.558l1.217-0.438l-0.396,0.676l1.244,0.12l-0.517-0.04l0.132,0.319l-1.321-0.398l0.602,0.638l0.251,0.559z
+ M156.527,67.658l0.465-2.407l1.173-0.56l-1.638,2.966z M160.622,66.654l-0.452-0.121l-0.455,0.643l-0.579-0.361l0.592-1.163l1.096,0.641l-0.202,0.361z M162.001,69.31l-1.393,0.808l0.781-1.01l-0.571,0.404l-0.543,0.444l1.235-1.453l0.709,0.484l-0.218,0.323z
+ M159.015,66.774l-1.699,1.085l0.865-1.606l0.834,0.521z M91.013,73.322l-0.707,0.489l-3.366,0.856l2.63-0.856l-0.003-0.57l1.446,0.081z M128.923,62.859l-2.537,0.358l2.029-0.716l0.508,0.358z M61.458,157.856l-1.009,0.342l-0.128-1.2l1.137,0.858z
+ M259.66,105.356l-2.45,0.547l-2.453,0.548l3.818-1.179l-0.251,0.462l1.336-0.378z M55.021,154.21l-0.541,0.687l-0.412-0.73l0.953,0.044z M86.942,74.3l-4.305,1.716l2.688-1.186l1.617-0.531z M161.033,66.918l-0.687-0.018l0.618-0.601l0.069,0.619z M63.617,78.397
+ l-0.748,0.37l-0.376-0.411l1.124,0.041z M58.182,156.312l-0.53,0.042l-0.381-0.729l0.911,0.687z M160.565,67.161l-0.458,0.482l-0.403-0.241l0.861-0.241z"/>
+ </g>
+ <g id="26" name="26" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="1566651.982539"/>
+ <AMP_attribute value="157671625428.46451"/>
+ <AMP_attribute value="Uruguay"/>
+ <AMP_attribute value="CONMEBOL"/>
+ <AMP_attribute value="2"/>
+ <AMP_attribute value="1950"/>
+ <AMP_attribute value="10"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="Round 2"/>
+ </metadata>
+ <path style="fill:#FFFF00;" d="M294.141,295.041l-2.319-1.711l-2.32-1.708l-1.362-0.813l-0.623-0.042l-2.69-2.093l-1.153,0.299l0.021,0.128l-0.162,2.776l-0.132,2.777l0.177,0.386l-0.2,2.059l1.158,2.152l2.754,1.123l3.617,0.607l1.996-0.823l1.521-2.157
+ l-0.515-1.761l0.233-1.2z"/>
+ </g>
+ <g id="27" name="27" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="725533.037905"/>
+ <AMP_attribute value="20547015515.320007"/>
+ <AMP_attribute value="Slovenia"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="1"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path d="M437.204,94.046l-0.402-1.463l0.244-0.879l0.815,0.125l2.291-0.419l1.671-0.545l1.222,1.058l-1.972,0.439l0.835,1.065l-2.361,0.799l-0.963-0.667l-1.38,0.486"/>
+ </g>
+ <g id="28" name="28" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="1737276.623984"/>
+ <AMP_attribute value="48089771691.39669"/>
+ <AMP_attribute value="Croatia"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="2"/>
+ <AMP_attribute value="3rd Place"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path d="M444.68,100.239l-2.06-1l-2.133-1.533l0.419-0.332l-1.923-2.577l-1.266,1.333l-0.514-2.084l1.38-0.486l0.963,0.667l2.361-0.799l-0.835-1.065l1.972-0.439l1.352,1.163l2.698,0.334l0.4-0.059l0.551,2.458l-3.367-0.796l-2.63,0.2l-0.833,0.397l0.427,1.323
+ l0.618,0.99l2.616,2.044l-0.197,0.264z"/>
+ </g>
+ <g id="29" name="29" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="10934236.012645"/>
+ <AMP_attribute value="1703314690822.8445"/>
+ <AMP_attribute value="Mexico"/>
+ <AMP_attribute value="CONCACAF"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="12"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="Round 2"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path style="fill:#FD993E;" d="M166.416,151.379l-0.353-1.286l-1.037-1.33l-0.812-0.558l-0.484-3.027l-0.416-3.027l-0.256,0.301l-0.641-1.846l-0.612-1.846l-1.119-2.143l-1.078-2.141l0.213-2.692l0.268-2.69l1.677,1.025l1.476,0.684l0.091,3.032l0.748,2.203
+ l0.789,2.208l1.422,1.114l0.017,0.644l1.429,2.532l0.892,0.902l-0.632,1.503l0.864,0.086l-0.351,0.602l1.716,0.944l-0.247,0.128l0.437,0.387l0.88,1.331l-0.578-0.258l1.301,1.803l1.322,1.802l0.767,2.016l0.782,2.015l-0.549,1.587l0.308,0.644l-0.848,0.429
+ l0.277,1.801l1.586,1.544l1.593,1.543l1.607,0.858l1.611,0.857l1.427,0.987l2.481,1.169l2.488,1.169l2.496,1.168l2.504,1.17l2.196-0.644l2.196-0.644l-0.471-0.129l1.091-0.043l1.296,0.729l-0.922-0.729l2.167,2.23l2.191,2.231l0.277-1.846l1.325-2.059l2.972-0.428
+ l-1.609-2.446l0.694-0.172l0.186-1.457h2.073h2.073l2.084-1.716l0.417-0.644l0.435,0.986l1.063-2.488l0.076-0.299l-0.073-0.301l0.426-0.986l2.042-3.131l-0.172-0.386l-0.849-0.6l-0.568,0.086l-2.164,0.214l-2.164,0.214l-2.329,1.287l-1.122,3.087l-1.749,1.931
+ l0.173,0.386l-0.682,0.644l-0.973-0.259l-1.542,0.087l-2.42,0.515l-2.038,0.171l-2.334-1.2l-0.312-0.172l-0.627-1.63l-0.624-1.63l-0.846-2.38l-0.834-2.379l0.475,1.543l-0.424-1.628l0.391-3.432l1.289-3.433l1.35-3.436l-2.663-0.472l-1.476-1.202l-0.795-3.005
+ l-0.965-2.358l-0.922-2.355l-3.038-0.343l-1.584,1.969l-1.32-1.069l-1.308-1.07l-0.712-2.564l-1.917-2.477h-3.652l-0.367,1.153h-3.096h-3.096l-1.733-0.843l-1.723-0.845l-1.714-0.844l-1.705-0.846l-2.613,0.15l-2.614,0.149l0.333,3.184l0.414,3.183l1.131,1.711
+ l1.159,1.714l-0.452,2.573l-1.787-0.301l1.055,1.201l1.069,1.203l1.347,0.042l0.684,1.417l0.833,1.975l-0.251,2.019l2.136,2.232l1.254,2.401l1.522-0.644z"/>
+ </g>
+ <g id="30" name="30" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="4264944.957874"/>
+ <AMP_attribute value="551673267441.26379"/>
+ <AMP_attribute value="France"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="1"/>
+ <AMP_attribute value="1998"/>
+ <AMP_attribute value="11"/>
+ <AMP_attribute value="Winners"/>
+ <AMP_attribute value="-"/>
+ <AMP_attribute value="-"/>
+ </metadata>
+ <path d="M424.817,97.624l-1.426-0.788l-0.065-0.956l-0.021-0.665l0.272-0.959l0.031-1.045l-1.123-1.298l-0.76,0.461l1.727-2.642l0.425-0.294l0.688-0.377l0.854-3.522l-3.117-1.045l-0.335-0.167l-1.129-0.208h-0.033l-1.976-1.084l-0.203-0.25l-0.919,0.042
+ l-2.592-1.661l-0.765-0.87l-1.854,0.746l-0.313,1.702l-2.661,1.459l0.66,0.167l-3.137,0.125l-0.688-0.668l-0.628,0.208l0.475,2.385l-2.456-0.042l-1.521-0.293l-2.413,1.006l0.961,0.167l-0.271,0.167l-0.212,0.545l1.092,0.377l1.689,0.713l1.332,0.42l1.033,0.378
+ l-0.205,0.419l0.824,1.72l1.072,0.795l-0.105,0.753l1.008,1.876l-1.012-1.083l-0.25,1.979l-0.251,1.969l-0.797,1.242l1.023,0.788l2.043,0.456l2.047,0.456l1.585,0.291l0.622-0.042l-0.069,0.291l3.034,0.166l-0.162-1.617l1.256-0.911l1.714,0.041l0.269-0.206
+ l0.691,0.248l2.699,0.829l2.037-1.615l-0.002-0.042l0.068-0.042l0.035,0.042l0.202-0.083l-0.001-0.953z M428.621,104.267l-0.957-0.543l-0.369-1.458l1.318-1.412l0.548,1.495l-0.54,1.917z"/>
+ </g>
+ <g id="31" name="31" onclick="displayAttributes(evt)">
+ <metadata>
+ <AMP_attribute value="3567527.556889"/>
+ <AMP_attribute value="487580498910.52844"/>
+ <AMP_attribute value="Spain"/>
+ <AMP_attribute value="UEFA"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="0"/>
+ <AMP_attribute value="11"/>
+ <AMP_attribute value="Round 1"/>
+ <AMP_attribute value="Quarter Final"/>
+ <AMP_attribute value="Round 2"/>
+ </metadata>
+ <path d="M395.847,103.333l0.381,1.17l-1.114,1.301l-0.824,3.097l-0.705,0.172l0.819,1.981l-0.25,1.431l0.159,0.608l-0.783,1.57l0.087,0.699l0.673-0.044l1.681,0.787l0.492,1.88l1.42,0.088h0.035l1.652-1.094l2.47-0.306l2.468-0.307l0.999-1.049l1.773-1.004
+ l0.461-0.654l1.764-2.088l-0.842-1.942l1.189-1.818l1.18-1.799l2.251-1.176l2.239-1.17l0.493-1.748l-3.035-0.167l-0.521-0.027l-0.03-0.222l-1.585-0.291l-2.047-0.456l-2.043-0.456l-1.023-0.786l-2.338-0.114l-2.336-0.115l-2.336-0.114l-2.333-0.113l-2.555-0.373
+ l-3.137,1.326l-0.009,1.036l0.254,0.498l0.022,0.291l0.219,0.54l0.041,0.707l1.179-0.125l0.715,0.292l2.729,0.083z M416.673,108.773l-1.073,0.9l-1.059-0.772l1.394-0.427l0.738,0.299z"/>
+ </g>
+ <g>
+ </g>
+ </g>
+ <g id="grid" style="fill-rule:nonzero;clip-rule:nonzero;fill:#006D2C;stroke:#000000;stroke-miterlimit:4; font-family:'BookmanOldStyle'; font-size:9;">
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M170.443,411.986l-4.312-1.52l-15.388-6.152l-15.614-7.07l-14.042-7.545l-12.779-7.904l-12.145-8.227l-11.693-8.498l-11.158-8.73l-10.507-8.916l-9.603-9.098l-8.542-9.236l-7.932-9.154l-7.14-9.348
+ l-6.144-9.611l-5.336-9.463l-4.419-9.434l-3.427-9.463l-2.681-9.451l-2.432-9.453l-1.979-9.455l-1.396-9.453l-0.94-9.455l-0.585-9.453v-9.453l0.585-9.453l0.94-9.455l1.396-9.453l1.979-9.453l2.432-9.455l2.681-9.451l3.427-9.463l4.419-9.434l5.336-9.463
+ l6.144-9.611l7.14-9.347l7.932-9.155l8.542-9.236l9.602-9.097L73.313,66l11.159-8.73l11.693-8.498l12.146-8.229l12.778-7.904l14.041-7.543l15.615-7.07l15.388-6.154L180,6.987"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M210.276,411.991l-3.607-1.524l-12.823-6.152l-13.012-7.07l-11.701-7.545l-10.648-7.904l-10.121-8.227l-9.744-8.498l-9.298-8.73l-8.756-8.916l-8.002-9.098l-7.118-9.236l-6.61-9.154l-5.95-9.348
+ l-5.12-9.611l-4.447-9.463l-3.683-9.434l-2.856-9.463l-2.234-9.451l-2.026-9.453l-1.649-9.455l-1.164-9.453l-0.784-9.455l-0.488-9.453v-9.453l0.488-9.453l0.784-9.455l1.164-9.453l1.649-9.453l2.026-9.455l2.234-9.451l2.856-9.463l3.683-9.434l4.447-9.463
+ l5.12-9.611l5.95-9.347l6.61-9.155l7.118-9.236l8.001-9.097L129.32,66l9.299-8.73l9.744-8.498l10.121-8.229l10.648-7.904l11.701-7.543l13.013-7.07l12.823-6.154l11.557-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M250.176,412.036l-2.969-1.569l-10.259-6.152l-10.41-7.07l-9.361-7.545l-8.519-7.904l-8.097-8.227l-7.795-8.498l-7.439-8.73l-7.005-8.916l-6.401-9.098l-5.694-9.236l-5.288-9.154l-4.76-9.348
+ l-4.096-9.611l-3.558-9.463l-2.946-9.434l-2.285-9.463l-1.787-9.451l-1.622-9.453l-1.319-9.455l-0.931-9.453l-0.627-9.455l-0.39-9.453v-9.453l0.39-9.453l0.627-9.455l0.931-9.453l1.319-9.453l1.622-9.455l1.787-9.451l2.285-9.463l2.946-9.434l3.558-9.463
+ l4.096-9.611l4.76-9.347l5.288-9.155l5.695-9.236l6.401-9.097L185.328,66l7.439-8.73l7.795-8.498l8.097-8.229l8.519-7.904l9.36-7.543l10.41-7.07l10.259-6.154l9.245-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M289.915,411.996l-2.17-1.529l-7.694-6.152l-7.807-7.07l-7.021-7.545l-6.39-7.904l-6.072-8.227l-5.846-8.498l-5.579-8.73l-5.254-8.916l-4.801-9.098l-4.271-9.236l-3.966-9.154l-3.57-9.348l-3.072-9.611
+ l-2.668-9.463l-2.21-9.434l-1.713-9.463l-1.34-9.451l-1.216-9.453l-0.989-9.455l-0.698-9.453l-0.47-9.455l-0.292-9.453v-9.453l0.292-9.453l0.47-9.455l0.698-9.453l0.989-9.453l1.216-9.455l1.34-9.451l1.713-9.463l2.21-9.434l2.668-9.463l3.072-9.611l3.57-9.347
+ l3.966-9.155l4.271-9.236l4.801-9.097L241.336,66l5.58-8.73l5.846-8.498l6.073-8.229l6.389-7.904l7.02-7.543l7.808-7.07l7.694-6.154l6.934-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M329.727,411.993l-1.443-1.526l-5.13-6.152l-5.204-7.07l-4.681-7.545l-4.259-7.904l-4.048-8.227l-3.897-8.498l-3.72-8.73l-3.502-8.916l-3.201-9.098l-2.847-9.236l-2.644-9.154l-2.38-9.348l-2.048-9.611
+ l-1.779-9.463l-1.473-9.434l-1.143-9.463l-0.894-9.451l-0.811-9.453l-0.66-9.455l-0.465-9.453l-0.313-9.455l-0.195-9.453v-9.453l0.195-9.453l0.313-9.455l0.465-9.453l0.66-9.453l0.811-9.455l0.894-9.451l1.143-9.463l1.473-9.434l1.779-9.463l2.048-9.611
+ l2.38-9.347l2.644-9.155l2.848-9.236l3.2-9.097L297.344,66l3.72-8.73l3.897-8.498l4.048-8.229l4.259-7.904l4.68-7.543l5.205-7.07l5.13-6.154l4.622-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M369.54,411.986l-0.718-1.52l-2.564-6.152l-2.603-7.07l-2.341-7.545l-2.129-7.904l-2.024-8.227l-1.948-8.498l-1.86-8.73l-1.751-8.916L350,338.326l-1.424-9.236l-1.321-9.154l-1.19-9.348l-1.024-9.611
+ l-0.889-9.463l-0.736-9.434l-0.572-9.463l-0.446-9.451l-0.405-9.453l-0.33-9.455l-0.232-9.453l-0.156-9.455l-0.098-9.453v-9.453l0.098-9.453l0.156-9.455l0.232-9.453l0.33-9.453l0.405-9.455l0.446-9.451l0.572-9.463l0.736-9.434l0.889-9.463l1.024-9.611
+ l1.19-9.347l1.321-9.155L350,84.013l1.601-9.097L353.352,66l1.86-8.73l1.948-8.498l2.024-8.229l2.129-7.904l2.34-7.543l2.604-7.07l2.564-6.154l2.311-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M409.359,412.008v-1.542v-6.152v-7.07v-7.545v-7.904v-8.227v-8.498v-8.73v-8.916v-9.098v-9.236v-9.154v-9.348v-9.611v-9.463v-9.434v-9.463v-9.451v-9.453v-9.455v-9.453v-9.455v-9.453v-9.453v-9.453
+ v-9.455v-9.453v-9.453v-9.455v-9.451v-9.463v-9.434v-9.463v-9.611v-9.347v-9.155v-9.236v-9.097V66v-8.73v-8.498v-8.229V32.64v-7.543v-7.07v-6.154V6.987"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M449.164,412.016l0.733-1.55l2.564-6.152l2.603-7.07l2.34-7.545l2.13-7.904l2.024-8.227l1.948-8.498l1.86-8.73l1.751-8.916l1.601-9.098l1.423-9.236l1.322-9.154l1.19-9.348l1.023-9.611l0.89-9.463
+ l0.736-9.434l0.571-9.463l0.447-9.451l0.405-9.453l0.329-9.455l0.233-9.453l0.156-9.455l0.098-9.453v-9.453l-0.098-9.453l-0.156-9.455l-0.233-9.453l-0.329-9.453l-0.405-9.455l-0.447-9.451l-0.571-9.463l-0.736-9.434l-0.89-9.463l-1.023-9.611l-1.19-9.347
+ l-1.322-9.155l-1.423-9.236l-1.601-9.097L465.367,66l-1.86-8.73l-1.948-8.498l-2.024-8.229l-2.13-7.904l-2.34-7.543l-2.603-7.07l-2.564-6.154l-2.312-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M488.979,412.007l1.457-1.541l5.129-6.152l5.205-7.07l4.68-7.545l4.26-7.904l4.049-8.227l3.897-8.498l3.719-8.73l3.503-8.916l3.2-9.098l2.848-9.236l2.644-9.154l2.38-9.348l2.049-9.611l1.778-9.463
+ l1.474-9.434l1.142-9.463l0.894-9.451l0.812-9.453l0.659-9.455l0.466-9.453l0.313-9.455l0.194-9.453v-9.453l-0.194-9.453l-0.313-9.455l-0.466-9.453l-0.659-9.453l-0.812-9.455l-0.894-9.451l-1.142-9.463l-1.474-9.434l-1.778-9.463l-2.049-9.611l-2.38-9.347
+ l-2.644-9.155l-2.848-9.236l-3.2-9.097L521.375,66l-3.72-8.73l-3.897-8.498l-4.049-8.229l-4.26-7.904l-4.68-7.543l-5.205-7.07l-5.13-6.154l-4.622-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M528.759,412.026l2.214-1.56l7.694-6.152l7.808-7.07l7.021-7.545l6.389-7.904l6.072-8.227l5.847-8.498l5.579-8.73l5.254-8.916l4.801-9.098l4.271-9.236l3.966-9.154l3.569-9.348l3.072-9.611l2.668-9.463
+ l2.21-9.434l1.714-9.463l1.34-9.451l1.217-9.453l0.988-9.455l0.699-9.453l0.47-9.455l0.293-9.453v-9.453l-0.293-9.453l-0.47-9.455l-0.699-9.453l-0.988-9.453l-1.217-9.455l-1.34-9.451l-1.714-9.463l-2.21-9.434l-2.668-9.463l-3.072-9.611l-3.569-9.347
+ l-3.966-9.155l-4.271-9.236l-4.801-9.097L577.382,66l-5.579-8.73l-5.847-8.498l-6.072-8.229l-6.389-7.904l-7.021-7.543l-7.808-7.07l-7.694-6.154l-6.934-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M568.526,412.043l2.984-1.577l10.259-6.152l10.409-7.07l9.361-7.545l8.52-7.904l8.096-8.227l7.796-8.498l7.438-8.73l7.005-8.916l6.401-9.098l5.694-9.236l5.288-9.154l4.76-9.348l4.096-9.611
+ l3.559-9.463l2.945-9.434l2.285-9.463l1.787-9.451l1.621-9.453l1.319-9.455l0.931-9.453l0.627-9.455l0.391-9.453v-9.453l-0.391-9.453l-0.627-9.455l-0.931-9.453l-1.319-9.453l-1.621-9.455l-1.787-9.451l-2.285-9.463l-2.946-9.434l-3.558-9.463l-4.096-9.611
+ l-4.76-9.347l-5.288-9.155l-5.694-9.236l-6.401-9.097L633.39,66l-7.438-8.73l-7.796-8.498l-8.097-8.229l-8.519-7.904l-9.36-7.543l-10.41-7.07l-10.259-6.154l-9.245-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M608.351,412.03l3.698-1.563l12.823-6.152l13.012-7.07l11.701-7.545l10.649-7.904l10.12-8.227l9.744-8.498l9.299-8.73l8.756-8.916l8.002-9.098l7.118-9.236l6.609-9.154l5.95-9.348l5.12-9.611
+ l4.447-9.463l3.683-9.434l2.855-9.463l2.234-9.451l2.026-9.453l1.649-9.455l1.163-9.453l0.784-9.455l0.487-9.453v-9.453l-0.487-9.453l-0.784-9.455l-1.163-9.453l-1.649-9.453l-2.026-9.455l-2.234-9.451l-2.855-9.463l-3.683-9.434l-4.447-9.463l-5.12-9.611
+ l-5.95-9.347l-6.609-9.155l-7.118-9.236l-8.002-9.097L689.397,66l-9.299-8.73l-9.744-8.498l-10.121-8.229l-10.648-7.904l-11.7-7.543l-13.013-7.07l-12.823-6.154l-11.557-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M647.566,412.041l4.469-1.574l15.389-6.152l15.613-7.07l14.042-7.545l12.778-7.904l12.145-8.227l11.693-8.498l11.158-8.73l10.508-8.916l9.602-9.098l8.542-9.236l7.932-9.154l7.14-9.348l6.145-9.611
+ l5.336-9.463l4.42-9.434l3.427-9.463l2.681-9.451l2.432-9.453l1.979-9.455l1.396-9.453l0.941-9.455l0.585-9.453v-9.453l-0.585-9.453l-0.941-9.455l-1.396-9.453l-1.979-9.453l-2.432-9.455l-2.681-9.451l-3.427-9.463l-4.42-9.434l-5.336-9.463l-6.145-9.611
+ l-7.14-9.347l-7.932-9.155l-8.542-9.236l-9.602-9.097L744.854,66l-11.158-8.73l-11.693-8.498l-12.145-8.229l-12.778-7.904l-14.04-7.543l-15.615-7.07l-15.389-6.154l-13.867-4.886"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M82.572,363.63H95.91h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.339h13.338h13.338h13.338h13.339h13.338h13.339h13.338
+ h13.339h13.338h13.338h13.338h13.339h13.338h13.339h13.338h13.338h13.338h13.339h13.339h13.338h13.338h13.338h13.338h13.339h13.339h13.338h13.338h13.338h13.339h27.022H82.572"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M16.527,288.375h16.034h16.034h16.034h16.034h16.035h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.033h16.034h16.034h16.033h16.035h16.034
+ h16.033h16.034h16.033h16.034h16.035h16.033h16.034h16.033h16.034h16.034h16.034h16.034h16.033h16.034h16.033h16.034h16.035h16.033h16.034h16.033h16.034h16.035h32.368H16.527"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M0.159,211.169h16.702h16.703h16.702h16.702h16.702h16.702h16.703h16.702h16.702h16.702h16.702h16.702h16.702h16.702h16.702h16.702h16.702h16.702h16.702H334.2h16.702h16.702h16.701h16.702h16.703
+ h16.701h16.702h16.702h16.701h16.703h16.702h16.702h16.701h16.702h16.702h16.702h16.702h16.702h16.702h16.701h16.702h16.703h16.701h16.702h16.702h16.701h16.703h32.67H0.159"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M16.527,133.964h16.034h16.034h16.034h16.034h16.035h16.034h16.034h16.034h16.034h16.035h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.034h16.033h16.034h16.034h16.033h16.035h16.034
+ h16.033h16.034h16.033h16.034h16.035h16.033h16.034h16.033h16.034h16.034h16.034h16.034h16.033h16.034h16.033h16.034h16.035h16.033h16.034h16.033h16.034h16.035h31.035H16.527"/>
+ <path style="fill:none;stroke:#0380B7;stroke-width:0.5;" d="M82.572,58.71H95.91h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.338h13.339h13.338h13.338h13.338h13.339h13.338h13.339h13.338
+ h13.339h13.338h13.338h13.338h13.339h13.338h13.339h13.338h13.338h13.338h13.339h13.339h13.338h13.338h13.338h13.338h13.339h13.339h13.338h13.338h13.338h13.339h26.355H82.572"/>
+ <g>
+ </g>
+ <g style="stroke:none;">
+ <path d="M345.96,67.471h3.344v0.938h-0.327c-0.149,0-0.256,0.018-0.319,0.054c-0.063,0.036-0.11,0.087-0.139,0.154s-0.043,0.203-0.043,0.408v2.479c0,0.463,0.046,0.808,0.138,1.035c0.092,0.228,0.231,0.401,0.417,0.52c0.186,0.119,0.411,0.178,0.676,0.178
+ c0.265,0,0.501-0.065,0.708-0.195c0.207-0.13,0.354-0.295,0.443-0.495s0.133-0.531,0.133-0.994v-2.733c0-0.114-0.015-0.195-0.045-0.244c-0.04-0.065-0.093-0.11-0.16-0.137c-0.047-0.02-0.165-0.029-0.354-0.029h-0.269v-0.938h2.828v0.938h-0.218
+ c-0.216,0-0.35,0.013-0.401,0.039c-0.078,0.039-0.134,0.096-0.17,0.171c-0.025,0.049-0.039,0.184-0.039,0.405v2.685c0,0.495-0.072,0.91-0.214,1.245c-0.199,0.456-0.515,0.81-0.949,1.062c-0.434,0.252-0.948,0.378-1.543,0.378c-0.419,0-0.795-0.064-1.126-0.192
+ c-0.332-0.129-0.622-0.313-0.871-0.552c-0.249-0.239-0.423-0.492-0.521-0.759c-0.1-0.267-0.149-0.661-0.149-1.181v-2.631c0-0.241-0.013-0.396-0.04-0.466s-0.069-0.121-0.128-0.154c-0.06-0.032-0.174-0.049-0.345-0.049h-0.315v-0.938z"/>
+ <path d="M353.561,67.471h5.691l0.777,2.16l-0.88,0.318c-0.15-0.356-0.325-0.643-0.524-0.861c-0.2-0.218-0.421-0.362-0.664-0.433c-0.242-0.071-0.524-0.106-0.846-0.106h-1.039v1.719h0.34c0.257,0,0.429-0.019,0.519-0.056c0.089-0.038,0.153-0.096,0.192-0.176
+ c0.039-0.08,0.058-0.239,0.058-0.477v-0.259h0.875v2.875h-0.875v-0.295c0-0.2-0.024-0.346-0.071-0.438s-0.111-0.154-0.192-0.187s-0.261-0.049-0.54-0.049h-0.307v1.58c0,0.168,0.008,0.271,0.024,0.307s0.048,0.064,0.095,0.084c0.047,0.02,0.149,0.029,0.305,0.029
+ h0.571c0.427,0,0.786-0.062,1.079-0.185s0.554-0.322,0.784-0.597c0.229-0.274,0.406-0.602,0.53-0.979l0.893,0.308l-0.896,2.532h-5.901v-0.938h0.172c0.23,0,0.385-0.016,0.463-0.049s0.135-0.09,0.167-0.171c0.017-0.049,0.025-0.188,0.025-0.416v-3.719
+ c0-0.202-0.014-0.334-0.042-0.396s-0.072-0.108-0.13-0.139c-0.06-0.031-0.176-0.047-0.35-0.047h-0.306v-0.938z"/>
+ <path d="M360.779,67.471h5.675l0.778,2.175l-0.884,0.308c-0.144-0.317-0.281-0.557-0.412-0.718s-0.287-0.296-0.467-0.405c-0.18-0.107-0.375-0.18-0.584-0.216c-0.141-0.022-0.39-0.034-0.746-0.034h-0.844v1.813h0.438c0.166,0,0.295-0.024,0.39-0.073
+ s0.162-0.112,0.204-0.19c0.041-0.078,0.062-0.208,0.062-0.391v-0.361h0.875v3.047h-0.875v-0.442c0-0.128-0.012-0.221-0.035-0.28c-0.03-0.078-0.071-0.142-0.125-0.191c-0.053-0.049-0.114-0.083-0.181-0.104c-0.068-0.02-0.191-0.029-0.371-0.029h-0.383v1.438
+ c0,0.174,0.014,0.291,0.043,0.351c0.028,0.061,0.075,0.106,0.14,0.135c0.064,0.029,0.188,0.044,0.371,0.044h0.274v0.938h-3.344v-0.938h0.223c0.248,0,0.411-0.032,0.488-0.096c0.078-0.063,0.117-0.191,0.117-0.384v-3.925c0-0.179-0.015-0.298-0.044-0.357
+ c-0.03-0.059-0.08-0.103-0.149-0.132s-0.206-0.044-0.411-0.044h-0.223v-0.938z"/>
+ <path d="M370.02,67.471h1.546l2.046,5.271c0.11,0.275,0.208,0.444,0.295,0.509c0.086,0.063,0.243,0.096,0.471,0.096v0.938h-3.219v-0.938l0.196-0.005c0.18,0,0.306-0.023,0.377-0.07c0.072-0.046,0.108-0.104,0.108-0.171c0-0.058-0.031-0.176-0.093-0.356
+ l-0.218-0.616h-2.062l-0.251,0.682c-0.052,0.146-0.078,0.24-0.078,0.286c0,0.052,0.019,0.098,0.056,0.14c0.037,0.042,0.098,0.073,0.182,0.092c0.055,0.013,0.206,0.02,0.455,0.02v0.938h-2.625v-0.938c0.168,0,0.292-0.015,0.369-0.044
+ c0.078-0.029,0.142-0.072,0.192-0.131s0.106-0.167,0.167-0.326l2.086-5.375z M369.832,71.143h1.349l-0.66-1.863l-0.688,1.863z"/>
+ <path d="M336.765,79.159h2.344v0.375h-0.155c-0.19,0-0.325,0.02-0.405,0.059c-0.063,0.029-0.111,0.08-0.143,0.152c-0.032,0.071-0.047,0.215-0.047,0.43v2.756c0,0.492,0.059,0.856,0.178,1.093s0.318,0.436,0.596,0.597s0.583,0.241,0.915,0.241
+ c0.335,0,0.653-0.086,0.953-0.259s0.51-0.378,0.63-0.616c0.121-0.237,0.181-0.612,0.181-1.125v-2.656c0-0.194-0.019-0.334-0.056-0.42s-0.094-0.148-0.17-0.19s-0.195-0.062-0.355-0.062h-0.168v-0.375h2.031v0.375h-0.141c-0.232,0-0.392,0.045-0.479,0.135
+ c-0.087,0.089-0.13,0.258-0.13,0.506v2.817c0,0.515-0.097,0.943-0.29,1.286s-0.474,0.615-0.842,0.815c-0.368,0.2-0.797,0.3-1.285,0.3c-0.462,0-0.884-0.103-1.267-0.307c-0.383-0.205-0.665-0.459-0.844-0.765s-0.27-0.688-0.27-1.15v-2.997
+ c0-0.197-0.018-0.335-0.053-0.414s-0.087-0.137-0.154-0.173c-0.068-0.036-0.186-0.054-0.353-0.054h-0.221v-0.375z"/>
+ <path d="M343.752,81.674v-0.359c0.263-0.03,0.458-0.065,0.588-0.107c0.129-0.041,0.317-0.131,0.562-0.268h0.318v0.854c0.386-0.333,0.716-0.558,0.989-0.676s0.551-0.178,0.831-0.178c0.24,0,0.452,0.04,0.637,0.121c0.184,0.08,0.334,0.189,0.449,0.327
+ c0.116,0.138,0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.05,0.44c0.034,0.065,0.087,0.112,0.16,0.141c0.073,0.029,0.253,0.043,0.54,0.043v0.375h-2.234v-0.375h0.12c0.206,0,0.346-0.019,0.42-0.057
+ s0.128-0.093,0.161-0.167s0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688c-0.054-0.127-0.147-0.231-0.278-0.311c-0.131-0.08-0.296-0.12-0.497-0.12c-0.238,0-0.493,0.061-0.764,0.182c-0.271,0.121-0.533,0.299-0.786,0.535v2.002
+ c0,0.229,0.017,0.381,0.05,0.457c0.033,0.076,0.087,0.133,0.161,0.171c0.052,0.029,0.19,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.445-0.055c0.08-0.037,0.136-0.102,0.168-0.196c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"
+ />
+ <path d="M349.662,81.674v-0.359c0.243-0.029,0.448-0.07,0.613-0.124c0.166-0.053,0.354-0.137,0.565-0.251h0.321v3.516c0,0.123,0.018,0.216,0.053,0.277s0.084,0.106,0.146,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375h-2.234v-0.375h0.178
+ c0.193,0,0.324-0.018,0.39-0.053s0.114-0.085,0.141-0.15c0.027-0.064,0.041-0.216,0.041-0.454v-2.578h-0.766z M350.779,78.956c0.14,0,0.26,0.048,0.359,0.145s0.149,0.214,0.149,0.353s-0.05,0.257-0.149,0.354c-0.099,0.099-0.219,0.147-0.359,0.147
+ s-0.26-0.049-0.359-0.147c-0.099-0.098-0.148-0.216-0.148-0.354s0.05-0.256,0.148-0.353c0.1-0.097,0.219-0.145,0.359-0.145z"/>
+ <path d="M354.626,80.94c0.428,0,0.799,0.09,1.113,0.269c0.313,0.179,0.56,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.277,1.174c-0.186,0.343-0.438,0.604-0.757,0.784c-0.319,0.18-0.7,0.271-1.143,0.271c-0.705,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.962-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.601,0.771-0.787c0.331-0.186,0.706-0.279,1.125-0.279z M354.585,81.362c-0.334,0-0.616,0.132-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.437
+ c0,0.605,0.124,1.067,0.373,1.384c0.226,0.282,0.532,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198s0.352-0.343,0.472-0.633c0.12-0.289,0.18-0.629,0.18-1.02c0-0.382-0.064-0.724-0.193-1.027c-0.1-0.241-0.25-0.428-0.45-0.562s-0.427-0.201-0.679-0.201z"/>
+ <path d="M357.432,81.674v-0.359c0.262-0.03,0.458-0.065,0.588-0.107c0.13-0.041,0.317-0.131,0.562-0.268h0.319v0.854c0.386-0.333,0.716-0.558,0.989-0.676s0.55-0.178,0.832-0.178c0.239,0,0.452,0.04,0.636,0.121c0.185,0.08,0.334,0.189,0.45,0.327
+ c0.115,0.138,0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.05,0.44c0.034,0.065,0.087,0.112,0.16,0.141s0.253,0.043,0.54,0.043v0.375h-2.234v-0.375h0.12c0.206,0,0.345-0.019,0.419-0.057s0.128-0.093,0.161-0.167
+ c0.033-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688c-0.055-0.127-0.147-0.231-0.278-0.311s-0.297-0.12-0.497-0.12c-0.239,0-0.493,0.061-0.764,0.182c-0.271,0.121-0.533,0.299-0.786,0.535v2.002c0,0.229,0.016,0.381,0.049,0.457
+ s0.087,0.133,0.162,0.171c0.052,0.029,0.189,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.217,0,0.366-0.019,0.446-0.055c0.079-0.037,0.135-0.102,0.167-0.196c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path d="M369.002,79.565v-0.359c0.199-0.018,0.382-0.053,0.548-0.105c0.165-0.052,0.373-0.142,0.622-0.27h0.33v5.344c0,0.242,0.006,0.389,0.018,0.44c0.028,0.109,0.077,0.186,0.146,0.229c0.068,0.043,0.202,0.064,0.4,0.064h0.186v0.375l-1.516,0.078v-0.705
+ c-0.292,0.268-0.564,0.457-0.819,0.569s-0.511,0.167-0.767,0.167c-0.527,0-0.965-0.213-1.313-0.64c-0.349-0.426-0.522-0.94-0.522-1.541c0-0.428,0.092-0.819,0.277-1.176c0.185-0.355,0.429-0.628,0.732-0.815c0.303-0.188,0.635-0.281,0.996-0.281
+ c0.277,0,0.533,0.048,0.77,0.143c0.235,0.095,0.451,0.237,0.646,0.428v-1.945h-0.734z M369.736,84.221v-1.666c0-0.238-0.044-0.433-0.133-0.584s-0.235-0.283-0.437-0.395c-0.203-0.112-0.41-0.167-0.623-0.167c-0.253,0-0.487,0.07-0.702,0.209
+ c-0.214,0.14-0.381,0.341-0.502,0.604c-0.121,0.263-0.182,0.581-0.182,0.954c0,0.353,0.056,0.657,0.168,0.915s0.263,0.453,0.452,0.586s0.383,0.2,0.582,0.2c0.195,0,0.417-0.057,0.664-0.17c0.248-0.113,0.485-0.275,0.712-0.487z"/>
+ <path d="M375.599,84.159l0.281,0.234c-0.214,0.252-0.421,0.452-0.621,0.6s-0.39,0.251-0.568,0.311c-0.178,0.059-0.388,0.089-0.627,0.089c-0.431,0-0.796-0.088-1.097-0.264c-0.345-0.202-0.61-0.466-0.794-0.791s-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.178-0.328,0.428-0.587,0.748-0.776s0.691-0.284,1.112-0.284c0.313,0,0.585,0.049,0.816,0.146c0.231,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.278,0.423,0.351,0.677c0.041,0.149,0.064,0.342,0.07,0.578h-3.096
+ c-0.009,0.144-0.013,0.251-0.013,0.322c0,0.371,0.064,0.701,0.192,0.99c0.129,0.29,0.299,0.503,0.51,0.64s0.452,0.205,0.72,0.205c0.228,0,0.448-0.053,0.661-0.159c0.213-0.106,0.472-0.313,0.775-0.622z M375.036,82.377c-0.044-0.269-0.106-0.467-0.186-0.596
+ c-0.08-0.128-0.194-0.23-0.341-0.306s-0.313-0.114-0.496-0.114c-0.184,0-0.356,0.038-0.517,0.114s-0.294,0.181-0.4,0.315c-0.106,0.135-0.199,0.33-0.277,0.587h2.218z"/>
+ <path d="M379.498,81.049h0.31l0.393,1.352l-0.391,0.133c-0.159-0.364-0.38-0.65-0.667-0.859s-0.576-0.313-0.869-0.313c-0.226,0-0.409,0.055-0.55,0.165c-0.141,0.11-0.211,0.236-0.211,0.38c0,0.135,0.051,0.251,0.154,0.348c0.1,0.1,0.325,0.212,0.674,0.338
+ l0.859,0.303c0.484,0.173,0.814,0.357,0.991,0.554c0.173,0.199,0.26,0.425,0.26,0.677c0,0.214-0.064,0.42-0.193,0.618s-0.316,0.355-0.561,0.473s-0.525,0.176-0.842,0.176c-0.492,0-0.915-0.144-1.266-0.431l-0.092,0.321h-0.314l-0.544-1.436l0.391-0.158
+ c0.267,0.42,0.519,0.718,0.756,0.894c0.331,0.248,0.688,0.372,1.072,0.372c0.255,0,0.464-0.067,0.628-0.203s0.246-0.287,0.246-0.453c0-0.137-0.051-0.263-0.154-0.376c-0.105-0.111-0.308-0.219-0.605-0.324l-1.015-0.369c-0.437-0.158-0.739-0.331-0.909-0.519
+ s-0.254-0.403-0.254-0.646c0-0.296,0.138-0.557,0.415-0.784s0.628-0.341,1.056-0.341c0.222,0,0.421,0.029,0.597,0.086s0.348,0.153,0.518,0.286l0.119-0.263z"/>
+ <path d="M333.909,88.159h0.71l1.895,5.124c0.094,0.253,0.188,0.421,0.283,0.503s0.224,0.123,0.385,0.123h0.097v0.375h-2.177v-0.375c0.07-0.006,0.139-0.009,0.207-0.009c0.141,0,0.233-0.015,0.277-0.043c0.085-0.055,0.127-0.125,0.127-0.209
+ c0-0.061-0.041-0.209-0.123-0.447l-0.406-1.183h-2.217l-0.476,1.323c-0.05,0.136-0.075,0.229-0.075,0.282c0,0.058,0.016,0.108,0.046,0.151s0.073,0.076,0.125,0.097c0.053,0.022,0.138,0.033,0.255,0.033c0.079,0,0.144,0.001,0.193,0.004v0.375h-1.82v-0.375
+ c0.17,0,0.292-0.017,0.367-0.05c0.075-0.033,0.14-0.086,0.196-0.159s0.129-0.228,0.22-0.463l1.91-5.078z M333.125,91.581h1.886l-0.939-2.632l-0.947,2.632z"/>
+ <path d="M340.62,90.049h0.31l0.393,1.352l-0.391,0.133c-0.158-0.364-0.381-0.65-0.667-0.859s-0.575-0.313-0.869-0.313c-0.226,0-0.41,0.055-0.55,0.165s-0.211,0.236-0.211,0.38c0,0.135,0.051,0.251,0.154,0.348c0.1,0.1,0.324,0.212,0.674,0.338l0.858,0.303
+ c0.484,0.173,0.815,0.357,0.991,0.554c0.173,0.199,0.26,0.425,0.26,0.677c0,0.214-0.064,0.42-0.193,0.618s-0.316,0.355-0.561,0.473s-0.525,0.176-0.842,0.176c-0.492,0-0.914-0.144-1.266-0.431l-0.092,0.321h-0.314l-0.545-1.436l0.391-0.158
+ c0.267,0.42,0.519,0.718,0.756,0.894c0.331,0.248,0.688,0.372,1.072,0.372c0.255,0,0.465-0.067,0.629-0.203s0.246-0.287,0.246-0.453c0-0.137-0.051-0.263-0.153-0.376c-0.105-0.111-0.308-0.219-0.606-0.324l-1.014-0.369c-0.436-0.158-0.739-0.331-0.909-0.519
+ c-0.17-0.188-0.255-0.403-0.255-0.646c0-0.296,0.138-0.557,0.415-0.784c0.276-0.227,0.628-0.341,1.055-0.341c0.222,0,0.421,0.029,0.597,0.086s0.348,0.153,0.518,0.286l0.119-0.263z"/>
+ <path d="M345.3,90.049h0.31l0.393,1.352l-0.391,0.133c-0.159-0.364-0.38-0.65-0.667-0.859s-0.576-0.313-0.869-0.313c-0.226,0-0.409,0.055-0.55,0.165c-0.141,0.11-0.211,0.236-0.211,0.38c0,0.135,0.051,0.251,0.154,0.348c0.1,0.1,0.325,0.212,0.674,0.338
+ l0.859,0.303c0.484,0.173,0.814,0.357,0.991,0.554c0.173,0.199,0.26,0.425,0.26,0.677c0,0.214-0.064,0.42-0.193,0.618s-0.316,0.355-0.561,0.473s-0.525,0.176-0.842,0.176c-0.492,0-0.915-0.144-1.266-0.431l-0.092,0.321h-0.314l-0.544-1.436l0.391-0.158
+ c0.267,0.42,0.519,0.718,0.756,0.894c0.331,0.248,0.688,0.372,1.072,0.372c0.255,0,0.464-0.067,0.628-0.203s0.246-0.287,0.246-0.453c0-0.137-0.051-0.263-0.154-0.376c-0.105-0.111-0.308-0.219-0.605-0.324l-1.015-0.369c-0.437-0.158-0.739-0.331-0.909-0.519
+ s-0.254-0.403-0.254-0.646c0-0.296,0.138-0.557,0.415-0.784s0.628-0.341,1.056-0.341c0.222,0,0.421,0.029,0.597,0.086s0.348,0.153,0.518,0.286l0.119-0.263z"/>
+ <path d="M349.23,89.94c0.428,0,0.799,0.09,1.113,0.269c0.313,0.179,0.56,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.277,1.174c-0.186,0.343-0.438,0.604-0.757,0.784c-0.319,0.18-0.7,0.271-1.143,0.271c-0.705,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.962-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.601,0.771-0.787c0.331-0.186,0.706-0.279,1.125-0.279z M349.188,90.362c-0.334,0-0.616,0.132-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.437
+ c0,0.605,0.124,1.067,0.373,1.384c0.226,0.282,0.532,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198s0.352-0.343,0.472-0.633c0.12-0.289,0.18-0.629,0.18-1.02c0-0.382-0.064-0.724-0.193-1.027c-0.1-0.241-0.25-0.428-0.45-0.562s-0.427-0.201-0.679-0.201z"/>
+ <path d="M355.942,93.065l0.281,0.228c-0.551,0.733-1.212,1.1-1.983,1.1c-0.601,0-1.108-0.214-1.521-0.642s-0.62-0.96-0.62-1.596c0-0.425,0.096-0.807,0.288-1.146c0.192-0.338,0.459-0.602,0.8-0.789s0.733-0.281,1.176-0.281c0.504,0,0.924,0.124,1.262,0.373
+ c0.337,0.249,0.505,0.499,0.505,0.751c0,0.135-0.04,0.239-0.119,0.313c-0.08,0.074-0.169,0.11-0.269,0.11c-0.054,0-0.105-0.014-0.155-0.04c-0.05-0.027-0.102-0.07-0.154-0.13c-0.023-0.027-0.066-0.11-0.128-0.251c-0.08-0.173-0.142-0.29-0.186-0.349
+ c-0.091-0.12-0.204-0.214-0.338-0.283s-0.283-0.103-0.448-0.103c-0.25,0-0.482,0.069-0.695,0.208c-0.213,0.138-0.383,0.342-0.508,0.611s-0.188,0.592-0.188,0.966c0,0.58,0.155,1.041,0.464,1.382c0.268,0.294,0.587,0.442,0.958,0.442
+ c0.171,0,0.344-0.028,0.52-0.085c0.175-0.057,0.341-0.141,0.497-0.252c0.115-0.079,0.302-0.258,0.561-0.538z"/>
+ <path d="M356.685,90.674v-0.359c0.243-0.029,0.448-0.07,0.613-0.124c0.166-0.053,0.354-0.137,0.565-0.251h0.321v3.516c0,0.123,0.018,0.216,0.053,0.277s0.084,0.106,0.146,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375H356.7v-0.375h0.178
+ c0.193,0,0.324-0.018,0.39-0.053s0.114-0.085,0.141-0.15c0.027-0.064,0.041-0.216,0.041-0.454v-2.578h-0.766z M357.802,87.956c0.14,0,0.26,0.048,0.359,0.145s0.149,0.214,0.149,0.353s-0.05,0.257-0.149,0.354c-0.099,0.099-0.219,0.147-0.359,0.147
+ s-0.26-0.049-0.359-0.147c-0.099-0.098-0.148-0.216-0.148-0.354s0.05-0.256,0.148-0.353c0.1-0.097,0.219-0.145,0.359-0.145z"/>
+ <path d="M362.596,91.768l-0.01-0.486c0-0.331-0.091-0.566-0.271-0.708c-0.181-0.141-0.437-0.212-0.766-0.212c-0.164,0-0.306,0.021-0.429,0.061c-0.122,0.04-0.221,0.096-0.295,0.166c-0.075,0.07-0.129,0.15-0.165,0.239c-0.015,0.033-0.049,0.16-0.105,0.381
+ c-0.067,0.269-0.203,0.403-0.407,0.403c-0.117,0-0.211-0.039-0.282-0.118c-0.072-0.079-0.107-0.186-0.107-0.32c0-0.197,0.071-0.39,0.215-0.579c0.144-0.189,0.362-0.346,0.656-0.47c0.294-0.124,0.641-0.186,1.042-0.186c0.375,0,0.695,0.058,0.961,0.174
+ s0.462,0.282,0.588,0.499c0.088,0.149,0.132,0.422,0.132,0.817v1.692c0,0.24,0.007,0.397,0.022,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.295-0.031,0.481-0.093v0.379c-0.243,0.069-0.461,0.104-0.654,0.104
+ c-0.208,0-0.382-0.029-0.524-0.087c-0.142-0.059-0.258-0.144-0.349-0.256c-0.091-0.112-0.149-0.245-0.176-0.399c-0.351,0.273-0.668,0.466-0.952,0.576c-0.283,0.11-0.57,0.166-0.859,0.166c-0.404,0-0.731-0.108-0.983-0.326c-0.251-0.218-0.377-0.473-0.377-0.766
+ c0-0.177,0.046-0.345,0.139-0.505c0.092-0.16,0.233-0.3,0.422-0.422c0.189-0.122,0.486-0.229,0.891-0.322c0.404-0.093,0.966-0.177,1.684-0.252z M362.588,92.127c-0.68,0.1-1.101,0.169-1.262,0.207c-0.319,0.073-0.548,0.154-0.686,0.242s-0.236,0.183-0.294,0.284
+ s-0.088,0.209-0.088,0.324s0.033,0.225,0.099,0.332c0.066,0.107,0.159,0.192,0.28,0.253c0.12,0.062,0.248,0.092,0.383,0.092c0.191,0,0.407-0.045,0.648-0.137c0.24-0.091,0.549-0.269,0.925-0.533l-0.005-1.065z"/>
+ <path d="M365.807,88.549h0.313v1.5h1.313v0.438h-1.313v2.654c0,0.226,0.02,0.388,0.06,0.484s0.108,0.176,0.204,0.238c0.096,0.062,0.203,0.092,0.321,0.092c0.281,0,0.591-0.125,0.931-0.375v0.424c-0.386,0.259-0.776,0.389-1.171,0.389
+ c-0.224,0-0.427-0.05-0.608-0.149s-0.305-0.217-0.371-0.352s-0.1-0.369-0.1-0.703v-2.702h-0.766V90.12c0.245-0.056,0.443-0.143,0.594-0.26s0.272-0.271,0.366-0.458c0.093-0.188,0.169-0.472,0.228-0.852z"/>
+ <path d="M368.022,90.674v-0.359c0.243-0.029,0.448-0.07,0.613-0.124c0.166-0.053,0.354-0.137,0.565-0.251h0.321v3.516c0,0.123,0.018,0.216,0.053,0.277s0.084,0.106,0.146,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375h-2.234v-0.375h0.178
+ c0.193,0,0.324-0.018,0.39-0.053s0.114-0.085,0.141-0.15c0.027-0.064,0.041-0.216,0.041-0.454v-2.578h-0.766z M369.14,87.956c0.14,0,0.26,0.048,0.359,0.145s0.149,0.214,0.149,0.353s-0.05,0.257-0.149,0.354c-0.099,0.099-0.219,0.147-0.359,0.147
+ s-0.26-0.049-0.359-0.147c-0.099-0.098-0.148-0.216-0.148-0.354s0.05-0.256,0.148-0.353c0.1-0.097,0.219-0.145,0.359-0.145z"/>
+ <path d="M372.987,89.94c0.428,0,0.799,0.09,1.113,0.269c0.313,0.179,0.56,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.277,1.174c-0.186,0.343-0.438,0.604-0.757,0.784c-0.319,0.18-0.7,0.271-1.143,0.271c-0.705,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.962-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.601,0.771-0.787c0.331-0.186,0.706-0.279,1.125-0.279z M372.945,90.362c-0.334,0-0.616,0.132-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.437
+ c0,0.605,0.124,1.067,0.373,1.384c0.226,0.282,0.532,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198s0.352-0.343,0.472-0.633c0.12-0.289,0.18-0.629,0.18-1.02c0-0.382-0.064-0.724-0.193-1.027c-0.1-0.241-0.25-0.428-0.45-0.562s-0.427-0.201-0.679-0.201z"/>
+ <path d="M375.792,90.674v-0.359c0.262-0.03,0.458-0.065,0.588-0.107c0.13-0.041,0.317-0.131,0.562-0.268h0.319v0.854c0.386-0.333,0.716-0.558,0.989-0.676s0.55-0.178,0.832-0.178c0.239,0,0.452,0.04,0.636,0.121c0.185,0.08,0.334,0.189,0.45,0.327
+ c0.115,0.138,0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.05,0.44c0.034,0.065,0.087,0.112,0.16,0.141s0.253,0.043,0.54,0.043v0.375h-2.234v-0.375h0.12c0.206,0,0.345-0.019,0.419-0.057s0.128-0.093,0.161-0.167
+ c0.033-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688c-0.055-0.127-0.147-0.231-0.278-0.311s-0.297-0.12-0.497-0.12c-0.239,0-0.493,0.061-0.764,0.182c-0.271,0.121-0.533,0.299-0.786,0.535v2.002c0,0.229,0.016,0.381,0.049,0.457
+ s0.087,0.133,0.162,0.171c0.052,0.029,0.189,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.217,0,0.366-0.019,0.446-0.055c0.079-0.037,0.135-0.102,0.167-0.196c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path d="M384.719,90.049h0.31l0.393,1.352l-0.391,0.133c-0.159-0.364-0.38-0.65-0.667-0.859s-0.576-0.313-0.869-0.313c-0.226,0-0.409,0.055-0.55,0.165c-0.141,0.11-0.211,0.236-0.211,0.38c0,0.135,0.051,0.251,0.154,0.348c0.1,0.1,0.325,0.212,0.674,0.338
+ l0.859,0.303c0.484,0.173,0.814,0.357,0.991,0.554c0.173,0.199,0.26,0.425,0.26,0.677c0,0.214-0.064,0.42-0.193,0.618s-0.316,0.355-0.561,0.473s-0.525,0.176-0.842,0.176c-0.492,0-0.915-0.144-1.266-0.431l-0.092,0.321h-0.314l-0.544-1.436l0.391-0.158
+ c0.267,0.42,0.519,0.718,0.756,0.894c0.331,0.248,0.688,0.372,1.072,0.372c0.255,0,0.464-0.067,0.628-0.203s0.246-0.287,0.246-0.453c0-0.137-0.051-0.263-0.154-0.376c-0.105-0.111-0.308-0.219-0.605-0.324l-1.015-0.369c-0.437-0.158-0.739-0.331-0.909-0.519
+ s-0.254-0.403-0.254-0.646c0-0.296,0.138-0.557,0.415-0.784s0.628-0.341,1.056-0.341c0.222,0,0.421,0.029,0.597,0.086s0.348,0.153,0.518,0.286l0.119-0.263z"/>
+ <path d="M333.149,97.159h4.997l0.581,1.62l-0.391,0.146c-0.097-0.269-0.203-0.48-0.317-0.635c-0.115-0.154-0.253-0.285-0.413-0.393c-0.16-0.108-0.322-0.18-0.485-0.216c-0.164-0.036-0.459-0.054-0.886-0.054h-1.492v2.25h0.738c0.272,0,0.478-0.047,0.617-0.141
+ c0.139-0.094,0.234-0.211,0.287-0.352c0.041-0.104,0.062-0.286,0.062-0.546v-0.103h0.438v2.703h-0.438v-0.232c0-0.205-0.015-0.353-0.046-0.443c-0.031-0.09-0.087-0.176-0.169-0.256s-0.17-0.135-0.266-0.165s-0.257-0.044-0.485-0.044h-0.738v2.004
+ c0,0.209,0.01,0.336,0.029,0.382c0.019,0.045,0.051,0.079,0.095,0.099c0.044,0.021,0.165,0.031,0.362,0.031h0.923c0.515,0,0.918-0.062,1.208-0.185s0.545-0.312,0.766-0.567c0.173-0.199,0.339-0.481,0.498-0.845l0.4,0.141l-0.688,1.925h-5.188v-0.375h0.177
+ c0.206,0,0.334-0.013,0.384-0.039c0.077-0.037,0.136-0.097,0.177-0.181c0.029-0.057,0.044-0.182,0.044-0.374v-4.234c0-0.185-0.019-0.309-0.057-0.372c-0.039-0.063-0.104-0.111-0.199-0.145c-0.05-0.02-0.225-0.03-0.525-0.03v-0.375z"/>
+ <path d="M339.304,99.034l1.656-0.063v2.834c0,0.25,0.034,0.448,0.103,0.595s0.174,0.261,0.317,0.341c0.142,0.081,0.309,0.121,0.5,0.121c0.235,0,0.5-0.063,0.798-0.189c0.298-0.126,0.595-0.313,0.892-0.563v-2.06c0-0.213-0.017-0.354-0.048-0.42
+ c-0.032-0.066-0.089-0.12-0.17-0.16c-0.082-0.04-0.21-0.061-0.385-0.061h-0.318v-0.375l1.672-0.063v3.281c0,0.21,0.018,0.355,0.053,0.436s0.088,0.137,0.157,0.17s0.209,0.05,0.418,0.05h0.138l-0.016,0.375l-1.453,0.078v-0.817
+ c-0.401,0.321-0.751,0.542-1.05,0.665c-0.299,0.122-0.602,0.184-0.909,0.184c-0.229,0-0.427-0.031-0.595-0.093s-0.316-0.154-0.444-0.277c-0.127-0.123-0.225-0.271-0.292-0.445s-0.101-0.358-0.101-0.555v-2.005c0-0.178-0.017-0.303-0.049-0.375
+ c-0.032-0.071-0.086-0.128-0.161-0.171c-0.075-0.042-0.177-0.063-0.307-0.063h-0.405v-0.375z"/>
+ <path d="M345.644,99.674v-0.359c0.214-0.018,0.403-0.054,0.57-0.108c0.166-0.054,0.356-0.144,0.57-0.267h0.329v0.836c0.208-0.256,0.45-0.46,0.726-0.61s0.523-0.226,0.743-0.226c0.217,0,0.388,0.051,0.514,0.153c0.126,0.102,0.189,0.226,0.189,0.371
+ c0,0.104-0.042,0.197-0.125,0.277s-0.184,0.12-0.301,0.12c-0.053,0-0.099-0.007-0.137-0.021s-0.094-0.045-0.167-0.093c-0.161-0.101-0.296-0.152-0.404-0.152c-0.146,0-0.308,0.062-0.483,0.184c-0.223,0.158-0.397,0.313-0.523,0.465v2.023
+ c0,0.173,0.01,0.291,0.028,0.353c0.019,0.063,0.049,0.116,0.092,0.16c0.043,0.045,0.096,0.078,0.159,0.098c0.063,0.021,0.173,0.03,0.33,0.03h0.141v0.375h-2.234v-0.375h0.186c0.175,0,0.29-0.016,0.345-0.048c0.075-0.043,0.13-0.103,0.166-0.18
+ c0.036-0.076,0.054-0.214,0.054-0.413v-2.594h-0.766z"/>
+ <path d="M351.838,98.94c0.429,0,0.799,0.09,1.113,0.269c0.313,0.179,0.56,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.278,1.174s-0.437,0.604-0.756,0.784c-0.319,0.18-0.7,0.271-1.143,0.271c-0.706,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.962-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.601,0.771-0.787c0.33-0.186,0.706-0.279,1.125-0.279z M351.797,99.362c-0.334,0-0.617,0.132-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.437
+ c0,0.605,0.124,1.067,0.373,1.384c0.226,0.282,0.531,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198c0.194-0.132,0.352-0.343,0.472-0.633c0.12-0.289,0.181-0.629,0.181-1.02c0-0.382-0.064-0.724-0.193-1.027c-0.1-0.241-0.25-0.428-0.45-0.562
+ c-0.201-0.134-0.427-0.201-0.679-0.201z"/>
+ <path d="M354.581,99.674v-0.359c0.222,0,0.417-0.028,0.589-0.084c0.171-0.056,0.358-0.153,0.562-0.291h0.35v0.729c0.366-0.288,0.671-0.481,0.914-0.581c0.243-0.099,0.486-0.148,0.729-0.148c0.5,0,0.927,0.196,1.28,0.589c0.353,0.393,0.529,0.904,0.529,1.534
+ c0,0.698-0.2,1.27-0.602,1.715c-0.366,0.41-0.838,0.615-1.415,0.615c-0.287,0-0.556-0.054-0.808-0.162c-0.182-0.076-0.391-0.212-0.628-0.408v1.43c0,0.216,0.006,0.343,0.018,0.381c0.015,0.055,0.044,0.102,0.088,0.14c0.045,0.038,0.101,0.063,0.169,0.075
+ c0.05,0.009,0.219,0.013,0.506,0.013v0.375h-2.266v-0.375h0.197c0.202,0,0.333-0.016,0.393-0.046c0.061-0.03,0.104-0.078,0.134-0.142c0.018-0.049,0.026-0.2,0.026-0.453v-4.547h-0.766z M356.081,100.123v1.515c0,0.2,0.012,0.348,0.035,0.445
+ c0.035,0.15,0.104,0.285,0.204,0.405c0.102,0.121,0.239,0.223,0.413,0.308c0.175,0.085,0.356,0.128,0.547,0.128c0.381,0,0.711-0.144,0.991-0.432c0.28-0.288,0.419-0.724,0.419-1.308c0-0.546-0.115-0.968-0.347-1.266s-0.505-0.447-0.821-0.447
+ c-0.205,0-0.428,0.055-0.668,0.163s-0.498,0.271-0.773,0.489z"/>
+ <path d="M363.99,102.159l0.281,0.234c-0.213,0.252-0.42,0.452-0.621,0.6c-0.201,0.148-0.39,0.251-0.568,0.311c-0.178,0.059-0.388,0.089-0.627,0.089c-0.43,0-0.796-0.088-1.097-0.264c-0.346-0.202-0.61-0.466-0.795-0.791c-0.184-0.325-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.179-0.328,0.428-0.587,0.748-0.776s0.691-0.284,1.112-0.284c0.313,0,0.585,0.049,0.816,0.146c0.23,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.277,0.423,0.351,0.677c0.041,0.149,0.064,0.342,0.07,0.578h-3.096
+ c-0.009,0.144-0.014,0.251-0.014,0.322c0,0.371,0.064,0.701,0.193,0.99c0.128,0.29,0.298,0.503,0.51,0.64c0.211,0.137,0.452,0.205,0.72,0.205c0.228,0,0.448-0.053,0.661-0.159s0.471-0.313,0.775-0.622z M363.428,100.377c-0.044-0.269-0.105-0.467-0.186-0.596
+ c-0.08-0.128-0.194-0.23-0.341-0.306c-0.147-0.076-0.313-0.114-0.497-0.114s-0.356,0.038-0.517,0.114c-0.16,0.076-0.293,0.181-0.4,0.315c-0.106,0.135-0.199,0.33-0.278,0.587h2.218z M361.475,98.143v-0.156l0.815-0.588c0.278-0.202,0.512-0.303,0.7-0.303
+ c0.088,0,0.162,0.031,0.223,0.094c0.06,0.062,0.09,0.14,0.09,0.232c0,0.113-0.041,0.207-0.123,0.28s-0.23,0.134-0.445,0.18l-1.26,0.261z"/>
+ <path d="M368.671,102.159l0.281,0.234c-0.214,0.252-0.421,0.452-0.621,0.6s-0.39,0.251-0.568,0.311c-0.179,0.059-0.388,0.089-0.627,0.089c-0.43,0-0.795-0.088-1.097-0.264c-0.345-0.202-0.61-0.466-0.794-0.791c-0.185-0.325-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.178-0.328,0.428-0.587,0.748-0.776s0.69-0.284,1.112-0.284c0.313,0,0.585,0.049,0.815,0.146c0.231,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.278,0.423,0.352,0.677c0.041,0.149,0.064,0.342,0.07,0.578h-3.097
+ c-0.009,0.144-0.013,0.251-0.013,0.322c0,0.371,0.064,0.701,0.192,0.99c0.128,0.29,0.298,0.503,0.51,0.64c0.212,0.137,0.452,0.205,0.721,0.205c0.228,0,0.448-0.053,0.661-0.159s0.472-0.313,0.775-0.622z M368.108,100.377c-0.044-0.269-0.106-0.467-0.187-0.596
+ c-0.08-0.128-0.193-0.23-0.341-0.306s-0.313-0.114-0.497-0.114c-0.184,0-0.356,0.038-0.516,0.114c-0.161,0.076-0.294,0.181-0.4,0.315c-0.106,0.135-0.199,0.33-0.278,0.587h2.218z"/>
+ <path d="M369.585,99.674v-0.359c0.263-0.03,0.459-0.065,0.589-0.107c0.129-0.041,0.316-0.131,0.562-0.268h0.318v0.854c0.386-0.333,0.716-0.558,0.989-0.676s0.551-0.178,0.832-0.178c0.24,0,0.452,0.04,0.636,0.121c0.184,0.08,0.334,0.189,0.45,0.327
+ s0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.051,0.44c0.033,0.065,0.087,0.112,0.16,0.141c0.073,0.029,0.253,0.043,0.539,0.043v0.375h-2.234v-0.375h0.12c0.206,0,0.346-0.019,0.42-0.057s0.128-0.093,0.161-0.167
+ c0.032-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688c-0.054-0.127-0.147-0.231-0.278-0.311c-0.131-0.08-0.297-0.12-0.497-0.12c-0.238,0-0.493,0.061-0.764,0.182c-0.271,0.121-0.533,0.299-0.786,0.535v2.002
+ c0,0.229,0.017,0.381,0.05,0.457s0.087,0.133,0.162,0.171c0.052,0.029,0.19,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.446-0.055c0.08-0.037,0.135-0.102,0.167-0.196c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path d="M379.292,102.159l0.281,0.234c-0.213,0.252-0.42,0.452-0.621,0.6c-0.201,0.148-0.39,0.251-0.568,0.311c-0.178,0.059-0.388,0.089-0.627,0.089c-0.43,0-0.796-0.088-1.097-0.264c-0.346-0.202-0.61-0.466-0.795-0.791c-0.184-0.325-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.179-0.328,0.428-0.587,0.748-0.776s0.691-0.284,1.112-0.284c0.313,0,0.585,0.049,0.816,0.146c0.23,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.277,0.423,0.351,0.677c0.041,0.149,0.064,0.342,0.07,0.578h-3.096
+ c-0.009,0.144-0.014,0.251-0.014,0.322c0,0.371,0.064,0.701,0.193,0.99c0.128,0.29,0.298,0.503,0.51,0.64c0.211,0.137,0.452,0.205,0.72,0.205c0.228,0,0.448-0.053,0.661-0.159s0.471-0.313,0.775-0.622z M378.729,100.377c-0.044-0.269-0.105-0.467-0.186-0.596
+ c-0.08-0.128-0.194-0.23-0.341-0.306c-0.147-0.076-0.313-0.114-0.497-0.114s-0.356,0.038-0.517,0.114c-0.16,0.076-0.293,0.181-0.4,0.315c-0.106,0.135-0.199,0.33-0.278,0.587h2.218z"/>
+ <path d="M383.191,99.049h0.31l0.393,1.352l-0.391,0.133c-0.159-0.364-0.381-0.65-0.667-0.859s-0.576-0.313-0.869-0.313c-0.226,0-0.409,0.055-0.55,0.165s-0.211,0.236-0.211,0.38c0,0.135,0.051,0.251,0.154,0.348c0.1,0.1,0.325,0.212,0.674,0.338l0.859,0.303
+ c0.484,0.173,0.814,0.357,0.991,0.554c0.173,0.199,0.26,0.425,0.26,0.677c0,0.214-0.064,0.42-0.193,0.618s-0.316,0.355-0.561,0.473c-0.245,0.117-0.525,0.176-0.842,0.176c-0.492,0-0.915-0.144-1.266-0.431l-0.092,0.321h-0.314l-0.544-1.436l0.391-0.158
+ c0.267,0.42,0.519,0.718,0.756,0.894c0.331,0.248,0.688,0.372,1.072,0.372c0.255,0,0.465-0.067,0.629-0.203s0.246-0.287,0.246-0.453c0-0.137-0.052-0.263-0.154-0.376c-0.105-0.111-0.308-0.219-0.606-0.324l-1.015-0.369c-0.436-0.158-0.739-0.331-0.909-0.519
+ c-0.17-0.188-0.254-0.403-0.254-0.646c0-0.296,0.138-0.557,0.415-0.784c0.276-0.227,0.628-0.341,1.055-0.341c0.223,0,0.421,0.029,0.597,0.086c0.176,0.058,0.349,0.153,0.519,0.286l0.118-0.263z"/>
+ <path d="M338.854,106.565v-0.359c0.199-0.018,0.382-0.053,0.547-0.105s0.373-0.142,0.623-0.27h0.33v5.344c0,0.242,0.005,0.389,0.017,0.44c0.029,0.109,0.078,0.186,0.146,0.229c0.069,0.043,0.203,0.064,0.401,0.064h0.186v0.375l-1.516,0.078v-0.705
+ c-0.292,0.268-0.565,0.457-0.82,0.569s-0.51,0.167-0.767,0.167c-0.527,0-0.965-0.213-1.313-0.64c-0.348-0.426-0.522-0.94-0.522-1.541c0-0.428,0.092-0.819,0.277-1.176c0.185-0.355,0.429-0.628,0.732-0.815s0.635-0.281,0.997-0.281
+ c0.276,0,0.533,0.048,0.769,0.143s0.452,0.237,0.647,0.428v-1.945h-0.734z M339.588,111.221v-1.666c0-0.238-0.045-0.433-0.134-0.584s-0.234-0.283-0.437-0.395c-0.203-0.112-0.41-0.167-0.623-0.167c-0.253,0-0.487,0.07-0.701,0.209s-0.382,0.341-0.502,0.604
+ c-0.121,0.263-0.181,0.581-0.181,0.954c0,0.353,0.056,0.657,0.168,0.915s0.263,0.453,0.452,0.586s0.383,0.2,0.581,0.2c0.195,0,0.417-0.057,0.664-0.17c0.248-0.113,0.485-0.275,0.713-0.487z"/>
+ <path d="M345.45,111.159l0.281,0.234c-0.214,0.252-0.421,0.452-0.621,0.6s-0.39,0.251-0.568,0.311c-0.179,0.059-0.388,0.089-0.627,0.089c-0.43,0-0.795-0.088-1.097-0.264c-0.345-0.202-0.61-0.466-0.794-0.791c-0.185-0.325-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.178-0.328,0.428-0.587,0.748-0.776s0.69-0.284,1.112-0.284c0.313,0,0.585,0.049,0.815,0.146c0.231,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.278,0.423,0.352,0.677c0.041,0.149,0.064,0.342,0.07,0.578h-3.097
+ c-0.009,0.144-0.013,0.251-0.013,0.322c0,0.371,0.064,0.701,0.192,0.99c0.128,0.29,0.298,0.503,0.51,0.64c0.212,0.137,0.452,0.205,0.721,0.205c0.228,0,0.448-0.053,0.661-0.159s0.472-0.313,0.775-0.622z M344.888,109.377c-0.044-0.269-0.106-0.467-0.187-0.596
+ c-0.08-0.128-0.193-0.23-0.341-0.306s-0.313-0.114-0.497-0.114c-0.184,0-0.356,0.038-0.516,0.114c-0.161,0.076-0.294,0.181-0.4,0.315c-0.106,0.135-0.199,0.33-0.278,0.587h2.218z"/>
+ <path d="M349.399,106.159h4.703l0.563,1.605l-0.375,0.145c-0.163-0.379-0.322-0.652-0.479-0.818s-0.338-0.285-0.544-0.356c-0.207-0.071-0.531-0.107-0.974-0.107h-1.332v2.359h0.605c0.318,0,0.546-0.03,0.685-0.092c0.138-0.061,0.244-0.158,0.318-0.29
+ c0.074-0.133,0.111-0.321,0.111-0.566v-0.162h0.438v2.688h-0.438v-0.237c0-0.231-0.036-0.411-0.106-0.54s-0.167-0.222-0.289-0.278c-0.123-0.058-0.34-0.086-0.652-0.086h-0.671v1.906c0,0.175,0.018,0.297,0.054,0.366c0.036,0.069,0.089,0.122,0.159,0.158
+ c0.07,0.037,0.196,0.055,0.377,0.055h0.16v0.375h-2.313v-0.375h0.149c0.188,0,0.318-0.018,0.391-0.053s0.125-0.09,0.159-0.165c0.033-0.075,0.051-0.21,0.051-0.407v-4.156c0-0.182-0.017-0.31-0.049-0.383s-0.082-0.127-0.148-0.16
+ c-0.066-0.034-0.182-0.051-0.346-0.051h-0.207v-0.375z"/>
+ <path d="M357.239,107.94c0.428,0,0.799,0.09,1.112,0.269s0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.092,0.831-0.277,1.174s-0.438,0.604-0.756,0.784c-0.319,0.18-0.7,0.271-1.143,0.271c-0.705,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.962-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.441-0.601,0.771-0.787c0.331-0.186,0.706-0.279,1.126-0.279z M357.197,108.362c-0.334,0-0.616,0.132-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.437
+ c0,0.605,0.125,1.067,0.374,1.384c0.226,0.282,0.532,0.423,0.918,0.423c0.249,0,0.471-0.066,0.665-0.198c0.195-0.132,0.353-0.343,0.473-0.633c0.12-0.289,0.18-0.629,0.18-1.02c0-0.382-0.064-0.724-0.193-1.027c-0.1-0.241-0.249-0.428-0.45-0.562
+ c-0.2-0.134-0.427-0.201-0.679-0.201z"/>
+ <path d="M362.279,107.94c0.429,0,0.799,0.09,1.113,0.269c0.313,0.179,0.56,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.278,1.174s-0.437,0.604-0.756,0.784c-0.319,0.18-0.7,0.271-1.143,0.271c-0.706,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.962-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.601,0.771-0.787c0.33-0.186,0.706-0.279,1.125-0.279z M362.238,108.362c-0.334,0-0.617,0.132-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.437
+ c0,0.605,0.124,1.067,0.373,1.384c0.226,0.282,0.531,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198c0.194-0.132,0.352-0.343,0.472-0.633c0.12-0.289,0.181-0.629,0.181-1.02c0-0.382-0.064-0.724-0.193-1.027c-0.1-0.241-0.25-0.428-0.45-0.562
+ c-0.201-0.134-0.427-0.201-0.679-0.201z"/>
+ <path d="M366.257,106.549h0.313v1.5h1.313v0.438h-1.313v2.654c0,0.226,0.02,0.388,0.06,0.484c0.04,0.097,0.108,0.176,0.204,0.238c0.096,0.062,0.203,0.092,0.321,0.092c0.281,0,0.591-0.125,0.931-0.375v0.424c-0.386,0.259-0.776,0.389-1.171,0.389
+ c-0.225,0-0.427-0.05-0.608-0.149c-0.181-0.1-0.305-0.217-0.371-0.352s-0.1-0.369-0.1-0.703v-2.702h-0.766v-0.367c0.246-0.056,0.443-0.143,0.594-0.26s0.272-0.271,0.366-0.458c0.093-0.188,0.169-0.472,0.228-0.852z"/>
+ <path d="M368.441,106.565v-0.359c0.195-0.015,0.384-0.05,0.566-0.107c0.182-0.057,0.385-0.146,0.61-0.268h0.324v2.685c0.258-0.191,0.523-0.335,0.796-0.432c0.272-0.096,0.551-0.144,0.835-0.144c0.328,0,0.632,0.088,0.91,0.264s0.497,0.425,0.657,0.745
+ c0.159,0.321,0.239,0.7,0.239,1.137c0,0.686-0.201,1.25-0.603,1.692c-0.372,0.41-0.844,0.615-1.416,0.615c-0.343,0-0.649-0.07-0.919-0.21c-0.2-0.103-0.394-0.262-0.581-0.476l-0.242,0.576h-0.412v-5.719h-0.766z M369.941,108.954v1.705
+ c0,0.269,0.019,0.457,0.057,0.564c0.038,0.108,0.116,0.218,0.234,0.332s0.257,0.204,0.416,0.27s0.323,0.1,0.492,0.1c0.259,0,0.496-0.069,0.708-0.208s0.38-0.344,0.503-0.615s0.184-0.598,0.184-0.979c0-0.534-0.13-0.962-0.389-1.284
+ c-0.208-0.266-0.498-0.398-0.871-0.398c-0.192,0-0.388,0.036-0.586,0.108s-0.447,0.208-0.748,0.405z"/>
+ <path d="M377.268,109.768l-0.011-0.486c0-0.331-0.09-0.566-0.271-0.708c-0.181-0.141-0.436-0.212-0.766-0.212c-0.164,0-0.307,0.021-0.429,0.061s-0.221,0.096-0.295,0.166s-0.129,0.15-0.164,0.239c-0.015,0.033-0.05,0.16-0.105,0.381
+ c-0.067,0.269-0.203,0.403-0.407,0.403c-0.116,0-0.211-0.039-0.282-0.118s-0.107-0.186-0.107-0.32c0-0.197,0.072-0.39,0.215-0.579c0.144-0.189,0.362-0.346,0.656-0.47c0.294-0.124,0.642-0.186,1.042-0.186c0.375,0,0.695,0.058,0.961,0.174
+ c0.267,0.116,0.462,0.282,0.588,0.499c0.087,0.149,0.131,0.422,0.131,0.817v1.692c0,0.24,0.008,0.397,0.022,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.294-0.031,0.481-0.093v0.379
+ c-0.243,0.069-0.461,0.104-0.654,0.104c-0.208,0-0.382-0.029-0.524-0.087c-0.142-0.059-0.258-0.144-0.349-0.256c-0.091-0.112-0.149-0.245-0.176-0.399c-0.351,0.273-0.668,0.466-0.952,0.576s-0.57,0.166-0.86,0.166c-0.404,0-0.731-0.108-0.983-0.326
+ s-0.377-0.473-0.377-0.766c0-0.177,0.046-0.345,0.139-0.505s0.233-0.3,0.422-0.422c0.189-0.122,0.486-0.229,0.891-0.322s0.966-0.177,1.685-0.252z M377.259,110.127c-0.68,0.1-1.101,0.169-1.262,0.207c-0.319,0.073-0.548,0.154-0.686,0.242
+ s-0.236,0.183-0.295,0.284s-0.088,0.209-0.088,0.324s0.033,0.225,0.1,0.332c0.065,0.107,0.159,0.192,0.279,0.253c0.121,0.062,0.248,0.092,0.384,0.092c0.19,0,0.406-0.045,0.647-0.137c0.241-0.091,0.549-0.269,0.925-0.533l-0.005-1.065z"/>
+ <path d="M379.243,106.565v-0.359c0.401-0.03,0.792-0.155,1.173-0.375h0.327v5.422c0,0.225,0.015,0.365,0.045,0.423c0.038,0.081,0.094,0.14,0.168,0.177c0.074,0.038,0.216,0.056,0.427,0.056h0.142v0.375h-2.266v-0.375h0.229c0.143,0,0.25-0.021,0.322-0.064
+ c0.071-0.043,0.123-0.102,0.153-0.176c0.031-0.075,0.046-0.224,0.046-0.447v-4.656h-0.766z"/>
+ <path d="M381.941,106.565v-0.359c0.401-0.03,0.792-0.155,1.173-0.375h0.327v5.422c0,0.225,0.015,0.365,0.045,0.423c0.038,0.081,0.094,0.14,0.168,0.177c0.074,0.038,0.216,0.056,0.427,0.056h0.142v0.375h-2.266v-0.375h0.229c0.143,0,0.25-0.021,0.322-0.064
+ c0.071-0.043,0.123-0.102,0.153-0.176c0.031-0.075,0.046-0.224,0.046-0.447v-4.656h-0.766z"/>
+ </g>
+ <g style="fill:#FF0000;stroke:none;">
+ <path d="M569.332,143.125h1.546l2.047,5.271c0.109,0.275,0.208,0.444,0.295,0.509c0.086,0.063,0.242,0.096,0.471,0.096v0.938h-3.219V149l0.195-0.005c0.181,0,0.307-0.023,0.378-0.069c0.072-0.047,0.108-0.104,0.108-0.172c0-0.058-0.031-0.176-0.094-0.356
+ l-0.218-0.616h-2.062l-0.252,0.682c-0.052,0.146-0.078,0.24-0.078,0.285c0,0.053,0.02,0.099,0.057,0.141s0.098,0.072,0.182,0.092c0.055,0.014,0.206,0.02,0.455,0.02v0.938h-2.625V149c0.168,0,0.291-0.015,0.368-0.044c0.078-0.028,0.142-0.072,0.192-0.131
+ c0.05-0.059,0.105-0.167,0.167-0.325l2.086-5.375z M569.145,146.796h1.349l-0.66-1.863l-0.688,1.863z"/>
+ <path d="M574.095,143.125h5.676l0.777,2.175l-0.884,0.308c-0.144-0.316-0.281-0.557-0.412-0.719c-0.131-0.161-0.286-0.296-0.467-0.404c-0.18-0.107-0.374-0.18-0.584-0.216c-0.141-0.022-0.39-0.034-0.746-0.034h-0.845v1.813h0.438c0.166,0,0.296-0.024,0.391-0.073
+ s0.162-0.112,0.204-0.19c0.041-0.078,0.062-0.208,0.062-0.391v-0.361h0.875v3.047h-0.875v-0.442c0-0.128-0.012-0.221-0.034-0.28c-0.03-0.078-0.071-0.143-0.124-0.191c-0.054-0.049-0.114-0.084-0.182-0.104c-0.068-0.02-0.191-0.029-0.371-0.029h-0.383v1.438
+ c0,0.174,0.015,0.29,0.044,0.351c0.028,0.061,0.075,0.106,0.14,0.136s0.188,0.044,0.371,0.044h0.273v0.938h-3.344V149h0.224c0.248,0,0.411-0.031,0.488-0.096c0.077-0.063,0.116-0.191,0.116-0.384v-3.925c0-0.18-0.015-0.299-0.044-0.357
+ c-0.03-0.059-0.08-0.103-0.149-0.132s-0.206-0.044-0.411-0.044h-0.224v-0.938z"/>
+ <path d="M586.13,143.125h0.693l0.668,2.445l-0.908,0.264c-0.303-0.582-0.587-0.994-0.854-1.238c-0.371-0.334-0.773-0.502-1.207-0.502c-0.315,0-0.611,0.088-0.886,0.264c-0.275,0.175-0.493,0.434-0.654,0.774c-0.161,0.342-0.241,0.741-0.241,1.199
+ c0,0.699,0.184,1.3,0.554,1.804c0.369,0.504,0.854,0.756,1.452,0.756c0.381,0,0.748-0.109,1.1-0.326c0.439-0.27,0.818-0.633,1.137-1.088l0.758,0.561c-0.492,0.67-0.94,1.137-1.348,1.4c-0.628,0.406-1.327,0.609-2.098,0.609c-0.642,0-1.222-0.153-1.74-0.461
+ c-0.52-0.307-0.933-0.736-1.242-1.288c-0.309-0.553-0.463-1.155-0.463-1.808c0-0.65,0.15-1.242,0.451-1.776s0.711-0.951,1.229-1.25s1.097-0.448,1.735-0.448c0.646,0,1.215,0.135,1.703,0.402l0.16-0.293z"/>
+ <path d="M567.58,154.812h0.71l1.895,5.124c0.094,0.253,0.188,0.421,0.283,0.503c0.096,0.082,0.224,0.123,0.385,0.123h0.097v0.375h-2.177v-0.375c0.07-0.006,0.14-0.009,0.207-0.009c0.141,0,0.232-0.015,0.277-0.043c0.084-0.056,0.127-0.125,0.127-0.209
+ c0-0.061-0.041-0.21-0.123-0.446l-0.406-1.184h-2.216l-0.477,1.323c-0.05,0.136-0.074,0.229-0.074,0.282c0,0.057,0.015,0.107,0.046,0.15c0.031,0.044,0.072,0.076,0.125,0.098s0.138,0.033,0.255,0.033c0.079,0,0.144,0.001,0.193,0.004v0.375h-1.819v-0.375
+ c0.17,0,0.292-0.017,0.367-0.05c0.074-0.032,0.14-0.086,0.195-0.159s0.129-0.228,0.22-0.463l1.91-5.078z M566.796,158.234h1.887l-0.939-2.633l-0.947,2.633z"/>
+ <path d="M574.291,156.703h0.31l0.393,1.352l-0.391,0.133c-0.158-0.363-0.38-0.65-0.666-0.859c-0.286-0.208-0.576-0.313-0.869-0.313c-0.227,0-0.409,0.055-0.55,0.165c-0.142,0.11-0.212,0.236-0.212,0.38c0,0.135,0.052,0.251,0.154,0.348
+ c0.1,0.1,0.324,0.213,0.674,0.338l0.859,0.304c0.484,0.173,0.814,0.357,0.99,0.554c0.174,0.199,0.26,0.426,0.26,0.678c0,0.213-0.064,0.42-0.193,0.617s-0.315,0.355-0.561,0.473c-0.244,0.117-0.525,0.176-0.842,0.176c-0.492,0-0.914-0.144-1.266-0.431
+ l-0.092,0.321h-0.314l-0.545-1.436l0.391-0.158c0.268,0.42,0.52,0.719,0.757,0.894c0.331,0.248,0.688,0.372,1.072,0.372c0.255,0,0.464-0.067,0.628-0.203s0.246-0.287,0.246-0.453c0-0.137-0.051-0.263-0.153-0.376c-0.105-0.111-0.308-0.219-0.605-0.324
+ l-1.015-0.369c-0.437-0.158-0.739-0.331-0.909-0.519s-0.255-0.402-0.255-0.646c0-0.296,0.139-0.557,0.415-0.784s0.628-0.341,1.056-0.341c0.223,0,0.421,0.029,0.597,0.086c0.176,0.059,0.349,0.153,0.519,0.286l0.118-0.263z"/>
+ <path d="M575.955,157.328v-0.359c0.243-0.029,0.448-0.07,0.613-0.123c0.166-0.053,0.354-0.137,0.565-0.252h0.321v3.516c0,0.123,0.018,0.216,0.053,0.277s0.084,0.106,0.146,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375h-2.234v-0.375h0.178
+ c0.193,0,0.323-0.018,0.39-0.053s0.114-0.085,0.142-0.15c0.027-0.064,0.041-0.215,0.041-0.453v-2.578h-0.766z M577.072,154.609c0.14,0,0.26,0.049,0.358,0.145c0.1,0.098,0.149,0.215,0.149,0.354s-0.05,0.257-0.149,0.354c-0.099,0.099-0.219,0.147-0.358,0.147
+ s-0.26-0.049-0.359-0.147c-0.099-0.098-0.148-0.216-0.148-0.354s0.05-0.256,0.148-0.354c0.1-0.096,0.22-0.145,0.359-0.145z"/>
+ <path d="M581.866,158.421l-0.01-0.486c0-0.33-0.091-0.566-0.271-0.708s-0.437-0.212-0.766-0.212c-0.164,0-0.307,0.021-0.43,0.061c-0.122,0.04-0.221,0.096-0.295,0.166s-0.129,0.15-0.164,0.239c-0.016,0.033-0.05,0.16-0.105,0.381
+ c-0.067,0.269-0.203,0.403-0.407,0.403c-0.116,0-0.211-0.039-0.282-0.118c-0.072-0.079-0.107-0.186-0.107-0.319c0-0.197,0.071-0.391,0.215-0.579c0.144-0.189,0.362-0.346,0.656-0.47c0.294-0.123,0.641-0.186,1.042-0.186c0.374,0,0.694,0.059,0.961,0.174
+ s0.462,0.282,0.588,0.499c0.088,0.149,0.132,0.422,0.132,0.817v1.692c0,0.24,0.008,0.397,0.021,0.471c0.032,0.126,0.089,0.221,0.169,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.295-0.031,0.481-0.093v0.379c-0.243,0.069-0.461,0.104-0.654,0.104
+ c-0.207,0-0.383-0.029-0.524-0.087c-0.142-0.059-0.258-0.144-0.349-0.256s-0.149-0.245-0.176-0.399c-0.352,0.273-0.668,0.466-0.952,0.576c-0.283,0.11-0.57,0.166-0.859,0.166c-0.404,0-0.731-0.108-0.983-0.326c-0.251-0.218-0.377-0.473-0.377-0.766
+ c0-0.178,0.046-0.346,0.139-0.506c0.092-0.159,0.232-0.3,0.422-0.422c0.189-0.121,0.486-0.229,0.891-0.322c0.404-0.092,0.966-0.177,1.684-0.252z M581.858,158.781c-0.68,0.1-1.101,0.169-1.262,0.207c-0.319,0.073-0.549,0.154-0.686,0.242
+ c-0.139,0.088-0.236,0.183-0.295,0.283c-0.059,0.102-0.088,0.21-0.088,0.324s0.033,0.225,0.1,0.332c0.065,0.107,0.158,0.191,0.279,0.254c0.12,0.061,0.248,0.092,0.383,0.092c0.191,0,0.407-0.045,0.648-0.137c0.24-0.091,0.549-0.269,0.925-0.533l-0.005-1.064z"/>
+ <path d="M583.905,157.328v-0.359c0.263-0.029,0.459-0.065,0.588-0.107c0.13-0.041,0.317-0.131,0.563-0.268h0.318v0.854c0.386-0.332,0.716-0.558,0.989-0.676s0.551-0.178,0.831-0.178c0.24,0,0.452,0.04,0.637,0.121c0.184,0.08,0.334,0.189,0.449,0.327
+ s0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.051,0.44c0.033,0.065,0.086,0.112,0.16,0.142c0.072,0.028,0.252,0.043,0.539,0.043v0.375h-2.234v-0.375h0.12c0.206,0,0.346-0.02,0.42-0.057
+ c0.074-0.039,0.128-0.094,0.161-0.167c0.032-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688s-0.146-0.231-0.277-0.312c-0.132-0.079-0.297-0.119-0.497-0.119c-0.238,0-0.493,0.061-0.764,0.182c-0.271,0.121-0.533,0.299-0.786,0.535v2.002
+ c0,0.229,0.017,0.381,0.05,0.457c0.032,0.076,0.087,0.133,0.161,0.171c0.052,0.029,0.189,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.445-0.055c0.079-0.037,0.136-0.102,0.168-0.196c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z
+ "/>
+ <path d="M559.942,163.812h4.703l0.563,1.605l-0.375,0.145c-0.162-0.379-0.322-0.652-0.479-0.818s-0.338-0.285-0.544-0.355c-0.207-0.072-0.531-0.107-0.974-0.107h-1.332v2.359h0.605c0.317,0,0.546-0.03,0.685-0.092c0.138-0.061,0.244-0.158,0.317-0.29
+ c0.074-0.133,0.111-0.321,0.111-0.565v-0.162h0.438v2.688h-0.438v-0.236c0-0.231-0.035-0.411-0.106-0.54s-0.167-0.222-0.289-0.278c-0.122-0.058-0.34-0.086-0.651-0.086h-0.672v1.906c0,0.176,0.018,0.297,0.054,0.365c0.036,0.069,0.089,0.122,0.159,0.158
+ c0.07,0.037,0.196,0.055,0.377,0.055h0.16v0.375h-2.313v-0.375h0.149c0.188,0,0.318-0.018,0.391-0.053s0.125-0.09,0.159-0.165c0.033-0.075,0.051-0.21,0.051-0.407v-4.156c0-0.182-0.017-0.31-0.049-0.383s-0.082-0.127-0.148-0.16
+ c-0.065-0.034-0.182-0.051-0.346-0.051h-0.207v-0.375z"/>
+ <path d="M567.782,165.593c0.428,0,0.799,0.09,1.112,0.269s0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.277,1.174s-0.438,0.604-0.757,0.784c-0.318,0.181-0.699,0.271-1.143,0.271c-0.705,0-1.234-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.602,0.771-0.787s0.706-0.279,1.126-0.279z M567.74,166.015c-0.334,0-0.616,0.133-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.438c0,0.605,0.124,1.066,0.374,1.384
+ c0.225,0.282,0.531,0.423,0.918,0.423c0.248,0,0.471-0.066,0.665-0.198c0.195-0.132,0.353-0.343,0.473-0.633c0.12-0.289,0.18-0.629,0.18-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.249-0.429-0.45-0.562c-0.2-0.135-0.427-0.201-0.679-0.201z"/>
+ <path d="M572.822,165.593c0.429,0,0.8,0.09,1.112,0.269c0.313,0.179,0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.278,1.174c-0.185,0.343-0.437,0.604-0.756,0.784c-0.319,0.181-0.7,0.271-1.143,0.271c-0.705,0-1.235-0.221-1.59-0.664
+ c-0.354-0.442-0.53-0.963-0.53-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.602,0.771-0.787c0.33-0.186,0.706-0.279,1.125-0.279z M572.781,166.015c-0.334,0-0.616,0.133-0.849,0.396c-0.293,0.329-0.438,0.809-0.438,1.438
+ c0,0.605,0.124,1.066,0.373,1.384c0.226,0.282,0.531,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198c0.194-0.132,0.352-0.343,0.472-0.633c0.12-0.289,0.181-0.629,0.181-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.25-0.429-0.45-0.562
+ c-0.201-0.135-0.428-0.201-0.679-0.201z"/>
+ <path d="M576.8,164.203h0.313v1.5h1.313v0.438h-1.313v2.654c0,0.227,0.02,0.388,0.061,0.484c0.039,0.097,0.107,0.176,0.203,0.238c0.096,0.061,0.203,0.092,0.321,0.092c0.281,0,0.591-0.125,0.931-0.375v0.424c-0.386,0.26-0.776,0.389-1.171,0.389
+ c-0.225,0-0.427-0.05-0.608-0.149c-0.181-0.1-0.305-0.217-0.371-0.352s-0.1-0.369-0.1-0.703v-2.702h-0.766v-0.367c0.246-0.056,0.443-0.143,0.594-0.26c0.15-0.118,0.272-0.271,0.366-0.459c0.093-0.188,0.169-0.473,0.228-0.852z"/>
+ <path d="M578.984,164.218v-0.359c0.195-0.015,0.384-0.051,0.566-0.107c0.182-0.057,0.385-0.146,0.61-0.268h0.323v2.685c0.258-0.191,0.523-0.335,0.796-0.432c0.272-0.096,0.551-0.144,0.835-0.144c0.328,0,0.632,0.088,0.91,0.264s0.497,0.425,0.657,0.745
+ c0.159,0.321,0.239,0.7,0.239,1.137c0,0.686-0.2,1.25-0.603,1.692c-0.372,0.41-0.844,0.615-1.416,0.615c-0.344,0-0.649-0.07-0.919-0.21c-0.2-0.103-0.394-0.262-0.581-0.476l-0.242,0.576h-0.411v-5.719h-0.766z M580.484,166.607v1.705
+ c0,0.268,0.019,0.456,0.058,0.564c0.037,0.107,0.115,0.218,0.233,0.332c0.118,0.113,0.257,0.203,0.415,0.27c0.159,0.066,0.323,0.1,0.492,0.1c0.26,0,0.496-0.069,0.709-0.208s0.381-0.344,0.503-0.615s0.184-0.598,0.184-0.979c0-0.534-0.13-0.962-0.389-1.284
+ c-0.208-0.266-0.498-0.398-0.871-0.398c-0.192,0-0.388,0.036-0.586,0.108s-0.447,0.208-0.748,0.405z"/>
+ <path d="M587.811,167.421l-0.011-0.486c0-0.33-0.09-0.566-0.271-0.708c-0.181-0.142-0.436-0.212-0.766-0.212c-0.164,0-0.307,0.021-0.43,0.061c-0.122,0.04-0.221,0.096-0.295,0.166s-0.129,0.15-0.164,0.239c-0.015,0.033-0.05,0.16-0.105,0.381
+ c-0.066,0.269-0.203,0.403-0.407,0.403c-0.116,0-0.211-0.039-0.282-0.118s-0.107-0.186-0.107-0.319c0-0.197,0.072-0.391,0.215-0.579c0.144-0.189,0.362-0.346,0.656-0.47c0.294-0.123,0.642-0.186,1.042-0.186c0.375,0,0.695,0.059,0.961,0.174
+ c0.267,0.115,0.462,0.282,0.589,0.499c0.087,0.149,0.131,0.422,0.131,0.817v1.692c0,0.24,0.008,0.397,0.022,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.294-0.031,0.48-0.093v0.379
+ c-0.242,0.069-0.461,0.104-0.654,0.104c-0.207,0-0.382-0.029-0.523-0.087c-0.143-0.059-0.259-0.144-0.35-0.256s-0.149-0.245-0.176-0.399c-0.351,0.273-0.668,0.466-0.951,0.576c-0.284,0.11-0.57,0.166-0.86,0.166c-0.403,0-0.731-0.108-0.983-0.326
+ c-0.251-0.218-0.377-0.473-0.377-0.766c0-0.178,0.047-0.346,0.139-0.506c0.092-0.159,0.233-0.3,0.422-0.422c0.189-0.121,0.486-0.229,0.891-0.322c0.404-0.092,0.966-0.177,1.685-0.252z M587.802,167.781c-0.68,0.1-1.101,0.169-1.262,0.207
+ c-0.319,0.073-0.548,0.154-0.686,0.242s-0.236,0.183-0.295,0.283c-0.059,0.102-0.088,0.21-0.088,0.324s0.033,0.225,0.1,0.332c0.065,0.107,0.159,0.191,0.279,0.254c0.121,0.061,0.248,0.092,0.384,0.092c0.19,0,0.406-0.045,0.647-0.137
+ c0.24-0.091,0.549-0.269,0.926-0.533l-0.006-1.064z"/>
+ <path d="M589.786,164.218v-0.359c0.401-0.029,0.792-0.154,1.173-0.375h0.327v5.422c0,0.225,0.015,0.365,0.045,0.423c0.038,0.081,0.094,0.14,0.168,0.177c0.074,0.038,0.217,0.057,0.427,0.057h0.142v0.375h-2.266v-0.375h0.229c0.143,0,0.25-0.021,0.322-0.064
+ c0.071-0.043,0.123-0.102,0.153-0.176s0.046-0.224,0.046-0.447v-4.656h-0.766z"/>
+ <path d="M592.484,164.218v-0.359c0.401-0.029,0.792-0.154,1.173-0.375h0.327v5.422c0,0.225,0.015,0.365,0.045,0.423c0.038,0.081,0.095,0.14,0.168,0.177c0.074,0.038,0.216,0.057,0.427,0.057h0.142v0.375H592.5v-0.375h0.229c0.143,0,0.25-0.021,0.322-0.064
+ c0.071-0.043,0.122-0.102,0.153-0.176s0.046-0.224,0.046-0.447v-4.656h-0.766z"/>
+ <path d="M551.621,172.812h0.315l0.554,2.042l-0.406,0.114c-0.22-0.472-0.386-0.788-0.5-0.949c-0.188-0.261-0.421-0.467-0.7-0.619s-0.586-0.229-0.922-0.229c-0.396,0-0.759,0.106-1.09,0.319c-0.332,0.213-0.602,0.524-0.808,0.936s-0.309,0.873-0.309,1.386
+ c0,0.529,0.104,1,0.313,1.413c0.209,0.414,0.492,0.732,0.85,0.956c0.357,0.223,0.742,0.334,1.154,0.334c0.39,0,0.788-0.112,1.195-0.337c0.406-0.225,0.759-0.539,1.058-0.944l0.352,0.242c-0.182,0.27-0.378,0.498-0.589,0.686c-0.334,0.303-0.682,0.525-1.042,0.669
+ s-0.755,0.216-1.187,0.216c-0.951,0-1.725-0.354-2.319-1.06c-0.492-0.586-0.738-1.283-0.738-2.093c0-0.595,0.136-1.133,0.408-1.615c0.271-0.482,0.647-0.865,1.126-1.149s0.994-0.427,1.547-0.427c0.295,0,0.57,0.041,0.823,0.121
+ c0.253,0.082,0.51,0.212,0.771,0.392l0.144-0.403z"/>
+ <path d="M555.539,174.593c0.428,0,0.799,0.09,1.112,0.269s0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.092,0.831-0.277,1.174s-0.438,0.604-0.756,0.784c-0.319,0.181-0.7,0.271-1.144,0.271c-0.705,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.441-0.602,0.771-0.787c0.331-0.186,0.706-0.279,1.126-0.279z M555.497,175.015c-0.334,0-0.616,0.133-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.438
+ c0,0.605,0.125,1.066,0.373,1.384c0.227,0.282,0.532,0.423,0.919,0.423c0.249,0,0.471-0.066,0.665-0.198c0.195-0.132,0.353-0.343,0.473-0.633c0.12-0.289,0.18-0.629,0.18-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.249-0.429-0.45-0.562
+ c-0.2-0.135-0.427-0.201-0.679-0.201z"/>
+ <path d="M558.345,175.328v-0.359c0.262-0.029,0.458-0.065,0.588-0.107c0.13-0.041,0.317-0.131,0.563-0.268h0.318v0.854c0.386-0.332,0.716-0.558,0.989-0.676s0.55-0.178,0.831-0.178c0.24,0,0.452,0.04,0.637,0.121c0.184,0.08,0.334,0.189,0.449,0.327
+ s0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.05,0.44c0.034,0.065,0.087,0.112,0.16,0.142c0.073,0.028,0.253,0.043,0.54,0.043v0.375h-2.234v-0.375h0.12c0.205,0,0.345-0.02,0.419-0.057
+ c0.074-0.039,0.129-0.094,0.161-0.167c0.033-0.073,0.05-0.223,0.05-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688s-0.147-0.231-0.278-0.312c-0.131-0.079-0.296-0.119-0.496-0.119c-0.239,0-0.493,0.061-0.765,0.182c-0.271,0.121-0.532,0.299-0.785,0.535v2.002
+ c0,0.229,0.016,0.381,0.049,0.457s0.088,0.133,0.162,0.171c0.052,0.029,0.189,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.445-0.055c0.079-0.037,0.136-0.102,0.168-0.196c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path d="M564.255,174.703h0.766v-0.663c0-0.456,0.149-0.83,0.448-1.12c0.3-0.29,0.69-0.436,1.172-0.436c0.321,0,0.571,0.066,0.751,0.199s0.27,0.277,0.27,0.433c0,0.104-0.036,0.191-0.108,0.263c-0.071,0.07-0.162,0.105-0.271,0.105
+ c-0.097,0-0.181-0.018-0.251-0.053c-0.07-0.034-0.179-0.121-0.325-0.261c-0.156-0.146-0.305-0.218-0.445-0.218c-0.097,0-0.184,0.03-0.262,0.092c-0.078,0.061-0.139,0.149-0.181,0.267s-0.063,0.298-0.063,0.541v0.851h0.828v0.453h-0.828V178
+ c0,0.193,0.014,0.322,0.043,0.387c0.028,0.065,0.071,0.111,0.129,0.137c0.058,0.026,0.191,0.039,0.401,0.039h0.177v0.375h-2.234v-0.375h0.136c0.231,0,0.378-0.014,0.44-0.043c0.063-0.029,0.108-0.075,0.137-0.141c0.027-0.064,0.04-0.211,0.037-0.441v-2.781
+ h-0.766v-0.453z"/>
+ <path d="M570.93,177.812l0.281,0.234c-0.214,0.252-0.421,0.452-0.62,0.6c-0.201,0.148-0.391,0.252-0.568,0.312c-0.179,0.06-0.389,0.089-0.628,0.089c-0.431,0-0.796-0.088-1.097-0.264c-0.346-0.202-0.61-0.466-0.795-0.791c-0.184-0.325-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187s0.428-0.587,0.748-0.776c0.32-0.188,0.691-0.283,1.112-0.283c0.313,0,0.585,0.049,0.816,0.146c0.23,0.098,0.427,0.246,0.588,0.442c0.16,0.197,0.277,0.423,0.351,0.677c0.041,0.148,0.064,0.342,0.07,0.578h-3.096
+ c-0.009,0.145-0.014,0.252-0.014,0.322c0,0.37,0.064,0.7,0.192,0.989c0.129,0.29,0.299,0.503,0.511,0.64s0.452,0.205,0.72,0.205c0.229,0,0.448-0.053,0.662-0.159c0.213-0.106,0.471-0.313,0.774-0.622z M570.367,176.031c-0.044-0.269-0.105-0.467-0.186-0.596
+ c-0.08-0.128-0.194-0.23-0.341-0.307c-0.148-0.075-0.313-0.113-0.497-0.113s-0.356,0.038-0.517,0.113c-0.16,0.076-0.293,0.182-0.4,0.315c-0.105,0.135-0.199,0.33-0.277,0.587h2.218z"/>
+ <path d="M574.595,173.218v-0.359c0.199-0.018,0.382-0.053,0.547-0.105c0.166-0.052,0.373-0.142,0.623-0.27h0.33v5.344c0,0.242,0.006,0.389,0.018,0.44c0.028,0.109,0.077,0.187,0.146,0.229c0.068,0.043,0.202,0.064,0.4,0.064h0.186v0.375l-1.516,0.078v-0.705
+ c-0.292,0.268-0.564,0.457-0.82,0.568c-0.254,0.112-0.51,0.168-0.767,0.168c-0.527,0-0.965-0.213-1.313-0.64c-0.348-0.427-0.521-0.94-0.521-1.541c0-0.428,0.092-0.819,0.277-1.176c0.185-0.355,0.429-0.628,0.732-0.815c0.303-0.188,0.635-0.281,0.996-0.281
+ c0.276,0,0.533,0.048,0.77,0.143c0.235,0.095,0.451,0.237,0.646,0.428v-1.945h-0.734z M575.329,177.875v-1.666c0-0.238-0.045-0.434-0.134-0.584c-0.089-0.152-0.234-0.283-0.437-0.395c-0.203-0.112-0.41-0.168-0.623-0.168c-0.253,0-0.487,0.07-0.701,0.209
+ c-0.214,0.141-0.382,0.342-0.502,0.604c-0.121,0.263-0.182,0.581-0.182,0.954c0,0.353,0.056,0.657,0.168,0.914c0.112,0.258,0.263,0.453,0.452,0.587s0.383,0.2,0.581,0.2c0.195,0,0.417-0.057,0.664-0.17c0.248-0.113,0.485-0.275,0.713-0.486z"/>
+ <path d="M581.191,177.812l0.281,0.234c-0.214,0.252-0.421,0.452-0.621,0.6c-0.2,0.148-0.39,0.252-0.568,0.312s-0.388,0.089-0.628,0.089c-0.43,0-0.795-0.088-1.097-0.264c-0.345-0.202-0.61-0.466-0.794-0.791c-0.185-0.325-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.178-0.328,0.428-0.587,0.748-0.776c0.32-0.188,0.69-0.283,1.112-0.283c0.313,0,0.585,0.049,0.815,0.146c0.231,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.278,0.423,0.352,0.677c0.041,0.148,0.064,0.342,0.07,0.578h-3.097
+ c-0.009,0.145-0.013,0.252-0.013,0.322c0,0.37,0.063,0.7,0.192,0.989c0.129,0.29,0.299,0.503,0.51,0.64c0.212,0.137,0.452,0.205,0.721,0.205c0.228,0,0.448-0.053,0.661-0.159s0.472-0.313,0.775-0.622z M580.629,176.031c-0.044-0.269-0.106-0.467-0.187-0.596
+ c-0.08-0.128-0.193-0.23-0.341-0.307c-0.147-0.075-0.313-0.113-0.497-0.113s-0.355,0.038-0.516,0.113c-0.16,0.076-0.294,0.182-0.4,0.315c-0.106,0.135-0.199,0.33-0.277,0.587h2.218z"/>
+ <path d="M582.105,175.328v-0.359c0.214-0.018,0.403-0.054,0.57-0.107c0.166-0.055,0.356-0.145,0.569-0.268h0.329v0.836c0.208-0.256,0.45-0.46,0.726-0.61s0.523-0.226,0.743-0.226c0.217,0,0.388,0.051,0.515,0.153c0.125,0.102,0.188,0.226,0.188,0.371
+ c0,0.104-0.042,0.197-0.125,0.277s-0.184,0.12-0.301,0.12c-0.053,0-0.099-0.007-0.137-0.021c-0.038-0.014-0.094-0.045-0.167-0.092c-0.161-0.102-0.296-0.152-0.404-0.152c-0.146,0-0.308,0.062-0.483,0.184c-0.223,0.158-0.397,0.313-0.523,0.465v2.023
+ c0,0.174,0.01,0.291,0.028,0.353c0.019,0.063,0.049,0.116,0.092,0.16c0.043,0.045,0.096,0.077,0.158,0.098c0.063,0.021,0.174,0.03,0.33,0.03h0.142v0.375h-2.234v-0.375h0.186c0.175,0,0.29-0.016,0.345-0.048c0.075-0.043,0.13-0.103,0.166-0.18
+ c0.036-0.076,0.054-0.214,0.054-0.413v-2.594h-0.766z"/>
+ <path d="M589.247,176.421l-0.01-0.486c0-0.33-0.091-0.566-0.271-0.708c-0.182-0.142-0.437-0.212-0.767-0.212c-0.163,0-0.306,0.021-0.429,0.061s-0.221,0.096-0.295,0.166c-0.075,0.07-0.13,0.15-0.165,0.239c-0.015,0.033-0.05,0.16-0.104,0.381
+ c-0.067,0.269-0.203,0.403-0.407,0.403c-0.117,0-0.211-0.039-0.282-0.118c-0.072-0.079-0.107-0.186-0.107-0.319c0-0.197,0.071-0.391,0.215-0.579c0.143-0.189,0.361-0.346,0.656-0.47c0.293-0.123,0.641-0.186,1.042-0.186c0.374,0,0.694,0.059,0.961,0.174
+ c0.266,0.115,0.462,0.282,0.588,0.499c0.088,0.149,0.132,0.422,0.132,0.817v1.692c0,0.24,0.007,0.397,0.021,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.186,0.095,0.313,0.095c0.134,0,0.294-0.031,0.481-0.093v0.379
+ c-0.243,0.069-0.461,0.104-0.654,0.104c-0.208,0-0.383-0.029-0.524-0.087c-0.142-0.059-0.259-0.144-0.349-0.256c-0.092-0.112-0.149-0.245-0.176-0.399c-0.352,0.273-0.668,0.466-0.952,0.576s-0.57,0.166-0.86,0.166c-0.403,0-0.73-0.108-0.982-0.326
+ s-0.377-0.473-0.377-0.766c0-0.178,0.046-0.346,0.139-0.506c0.092-0.159,0.232-0.3,0.422-0.422c0.188-0.121,0.485-0.229,0.891-0.322c0.404-0.092,0.966-0.177,1.684-0.252z M589.239,176.781c-0.681,0.1-1.102,0.169-1.262,0.207
+ c-0.32,0.073-0.549,0.154-0.687,0.242s-0.235,0.183-0.294,0.283c-0.059,0.102-0.088,0.21-0.088,0.324s0.033,0.225,0.099,0.332c0.066,0.107,0.159,0.191,0.28,0.254c0.12,0.061,0.248,0.092,0.383,0.092c0.191,0,0.407-0.045,0.648-0.137
+ c0.24-0.091,0.549-0.269,0.925-0.533l-0.005-1.064z"/>
+ <path d="M592.458,173.203h0.313v1.5h1.313v0.438h-1.313v2.654c0,0.227,0.02,0.388,0.06,0.484s0.107,0.176,0.204,0.238c0.096,0.061,0.203,0.092,0.321,0.092c0.28,0,0.591-0.125,0.931-0.375v0.424c-0.387,0.26-0.777,0.389-1.172,0.389
+ c-0.224,0-0.427-0.05-0.607-0.149c-0.182-0.1-0.305-0.217-0.371-0.352s-0.1-0.369-0.1-0.703v-2.702h-0.766v-0.367c0.245-0.056,0.443-0.143,0.594-0.26c0.15-0.118,0.271-0.271,0.365-0.459c0.094-0.188,0.17-0.473,0.229-0.852z"/>
+ <path d="M594.674,175.328v-0.359c0.243-0.029,0.447-0.07,0.613-0.123c0.165-0.053,0.354-0.137,0.565-0.252h0.321v3.516c0,0.123,0.017,0.216,0.052,0.277s0.084,0.106,0.147,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375h-2.234v-0.375h0.178
+ c0.193,0,0.323-0.018,0.39-0.053s0.113-0.085,0.141-0.15c0.027-0.064,0.042-0.215,0.042-0.453v-2.578h-0.766z M595.791,172.609c0.14,0,0.26,0.049,0.358,0.145c0.1,0.098,0.149,0.215,0.149,0.354s-0.05,0.257-0.149,0.354c-0.099,0.099-0.219,0.147-0.358,0.147
+ c-0.141,0-0.261-0.049-0.359-0.147c-0.099-0.098-0.148-0.216-0.148-0.354s0.05-0.256,0.148-0.354c0.099-0.096,0.219-0.145,0.359-0.145z"/>
+ <path d="M599.638,174.593c0.429,0,0.799,0.09,1.113,0.269c0.313,0.179,0.56,0.439,0.74,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.277,1.174c-0.186,0.343-0.438,0.604-0.757,0.784c-0.319,0.181-0.7,0.271-1.143,0.271c-0.706,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.602,0.771-0.787c0.33-0.186,0.705-0.279,1.125-0.279z M599.597,175.015c-0.334,0-0.617,0.133-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.438
+ c0,0.605,0.124,1.066,0.373,1.384c0.226,0.282,0.531,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198c0.194-0.132,0.352-0.343,0.472-0.633c0.12-0.289,0.181-0.629,0.181-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.25-0.429-0.45-0.562
+ c-0.201-0.135-0.427-0.201-0.679-0.201z"/>
+ <path d="M602.443,175.328v-0.359c0.263-0.029,0.459-0.065,0.589-0.107c0.129-0.041,0.316-0.131,0.562-0.268h0.318v0.854c0.386-0.332,0.716-0.558,0.989-0.676s0.551-0.178,0.832-0.178c0.239,0,0.451,0.04,0.636,0.121c0.185,0.08,0.334,0.189,0.45,0.327
+ c0.115,0.138,0.191,0.294,0.229,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.051,0.44c0.033,0.065,0.087,0.112,0.16,0.142c0.073,0.028,0.253,0.043,0.539,0.043v0.375H605.6v-0.375h0.12c0.206,0,0.346-0.02,0.42-0.057
+ c0.074-0.039,0.128-0.094,0.161-0.167c0.032-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.081-0.688c-0.055-0.128-0.147-0.231-0.278-0.312c-0.132-0.079-0.297-0.119-0.497-0.119c-0.238,0-0.493,0.061-0.764,0.182
+ c-0.271,0.121-0.533,0.299-0.786,0.535v2.002c0,0.229,0.017,0.381,0.05,0.457s0.087,0.133,0.162,0.171c0.051,0.029,0.189,0.044,0.413,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.445-0.055c0.08-0.037,0.136-0.102,0.168-0.196
+ c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ </g>
+ <g style="fill:#812B92;stroke:none;">
+ <path d="M462.031,200.978h0.693l0.669,2.445l-0.908,0.264c-0.303-0.582-0.588-0.994-0.855-1.238c-0.371-0.334-0.772-0.502-1.205-0.502c-0.316,0-0.611,0.088-0.887,0.264c-0.275,0.175-0.493,0.434-0.654,0.774c-0.161,0.342-0.242,0.741-0.242,1.199
+ c0,0.699,0.186,1.3,0.555,1.804s0.854,0.756,1.453,0.756c0.381,0,0.746-0.109,1.098-0.326c0.439-0.27,0.819-0.633,1.139-1.088l0.756,0.561c-0.49,0.67-0.939,1.137-1.347,1.4c-0.628,0.406-1.327,0.609-2.099,0.609c-0.641,0-1.221-0.153-1.739-0.461
+ c-0.519-0.307-0.933-0.736-1.242-1.288c-0.309-0.553-0.464-1.155-0.464-1.808c0-0.65,0.15-1.242,0.452-1.776c0.301-0.534,0.71-0.951,1.229-1.25c0.519-0.299,1.098-0.448,1.734-0.448c0.647,0,1.215,0.135,1.703,0.402l0.161-0.293z"/>
+ <path d="M466.635,200.978h1.546l2.047,5.271c0.109,0.275,0.208,0.444,0.295,0.509c0.086,0.063,0.242,0.096,0.471,0.096v0.938h-3.219v-0.938l0.195-0.005c0.181,0,0.307-0.023,0.378-0.069c0.072-0.047,0.108-0.104,0.108-0.172c0-0.058-0.031-0.176-0.094-0.356
+ l-0.218-0.616h-2.062l-0.252,0.682c-0.052,0.146-0.078,0.24-0.078,0.285c0,0.053,0.02,0.099,0.057,0.141s0.098,0.072,0.182,0.092c0.055,0.014,0.206,0.02,0.455,0.02v0.938h-2.625v-0.938c0.168,0,0.291-0.015,0.368-0.044c0.078-0.028,0.142-0.072,0.192-0.131
+ c0.05-0.059,0.105-0.167,0.167-0.325l2.086-5.375z M466.447,204.65h1.349l-0.66-1.863l-0.688,1.863z"/>
+ <path d="M471.397,200.978h5.676l0.777,2.175l-0.884,0.308c-0.144-0.316-0.281-0.557-0.412-0.719c-0.131-0.161-0.286-0.296-0.467-0.404c-0.18-0.107-0.374-0.18-0.584-0.216c-0.141-0.022-0.39-0.034-0.746-0.034h-0.845v1.813h0.438c0.166,0,0.296-0.024,0.391-0.073
+ s0.162-0.112,0.204-0.19c0.041-0.078,0.062-0.208,0.062-0.391v-0.361h0.875v3.047h-0.875v-0.442c0-0.128-0.012-0.221-0.034-0.28c-0.03-0.078-0.071-0.143-0.124-0.191c-0.054-0.049-0.114-0.084-0.182-0.104c-0.068-0.02-0.191-0.029-0.371-0.029h-0.383v1.438
+ c0,0.174,0.015,0.29,0.044,0.351c0.028,0.061,0.075,0.106,0.14,0.136s0.188,0.044,0.371,0.044h0.273v0.938h-3.344v-0.938h0.224c0.248,0,0.411-0.031,0.488-0.096c0.077-0.063,0.116-0.191,0.116-0.384v-3.925c0-0.18-0.015-0.299-0.044-0.357
+ c-0.03-0.059-0.08-0.103-0.149-0.132s-0.206-0.044-0.411-0.044h-0.224v-0.938z"/>
+ <path d="M441.526,212.666h0.315l0.554,2.042l-0.406,0.114c-0.22-0.472-0.387-0.788-0.5-0.949c-0.188-0.261-0.42-0.467-0.699-0.619s-0.588-0.229-0.924-0.229c-0.395,0-0.758,0.106-1.09,0.319c-0.331,0.213-0.601,0.524-0.807,0.936s-0.309,0.873-0.309,1.386
+ c0,0.529,0.104,1,0.313,1.413c0.21,0.414,0.493,0.732,0.85,0.956c0.357,0.223,0.742,0.334,1.155,0.334c0.389,0,0.787-0.112,1.193-0.337c0.407-0.225,0.76-0.539,1.059-0.944l0.352,0.242c-0.182,0.27-0.378,0.498-0.589,0.686c-0.334,0.303-0.682,0.525-1.042,0.669
+ s-0.756,0.216-1.186,0.216c-0.953,0-1.727-0.354-2.32-1.06c-0.492-0.586-0.738-1.283-0.738-2.093c0-0.595,0.136-1.133,0.408-1.615c0.271-0.482,0.646-0.865,1.125-1.149s0.994-0.427,1.548-0.427c0.296,0,0.569,0.041,0.823,0.121
+ c0.253,0.082,0.51,0.212,0.771,0.392l0.144-0.403z"/>
+ <path d="M445.444,214.447c0.428,0,0.799,0.09,1.112,0.269s0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.277,1.174s-0.438,0.604-0.757,0.784c-0.318,0.181-0.699,0.271-1.143,0.271c-0.705,0-1.234-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.602,0.771-0.787s0.706-0.279,1.126-0.279z M445.402,214.869c-0.334,0-0.616,0.133-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.438c0,0.605,0.124,1.066,0.374,1.384
+ c0.225,0.282,0.531,0.423,0.918,0.423c0.248,0,0.471-0.066,0.665-0.198c0.195-0.132,0.353-0.343,0.473-0.633c0.12-0.289,0.18-0.629,0.18-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.249-0.429-0.45-0.562c-0.2-0.135-0.427-0.201-0.679-0.201z"/>
+ <path d="M448.25,215.181v-0.359c0.263-0.029,0.458-0.065,0.588-0.107c0.13-0.041,0.317-0.131,0.562-0.268h0.319v0.854c0.386-0.332,0.716-0.558,0.989-0.676s0.551-0.178,0.831-0.178c0.239,0,0.452,0.04,0.636,0.121c0.185,0.08,0.334,0.189,0.45,0.327
+ c0.115,0.138,0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.05,0.44c0.034,0.065,0.087,0.112,0.16,0.142c0.073,0.028,0.253,0.043,0.54,0.043v0.375h-2.234v-0.375h0.12c0.205,0,0.346-0.02,0.42-0.057
+ c0.074-0.039,0.127-0.094,0.16-0.167s0.05-0.223,0.05-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688s-0.147-0.231-0.278-0.312c-0.131-0.079-0.297-0.119-0.496-0.119c-0.238,0-0.493,0.061-0.764,0.182c-0.271,0.121-0.533,0.299-0.786,0.535v2.002
+ c0,0.229,0.017,0.381,0.05,0.457c0.032,0.076,0.086,0.133,0.161,0.171c0.052,0.029,0.189,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.217,0,0.365-0.019,0.445-0.055c0.079-0.037,0.135-0.102,0.168-0.196c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z
+ "/>
+ <path d="M454.16,214.556h0.766v-0.663c0-0.456,0.149-0.83,0.448-1.12c0.3-0.29,0.689-0.436,1.172-0.436c0.321,0,0.571,0.066,0.751,0.199s0.27,0.277,0.27,0.433c0,0.104-0.036,0.191-0.108,0.263c-0.072,0.07-0.162,0.105-0.271,0.105
+ c-0.097,0-0.181-0.018-0.251-0.053c-0.07-0.034-0.179-0.121-0.326-0.261c-0.155-0.146-0.304-0.218-0.444-0.218c-0.097,0-0.185,0.03-0.262,0.092c-0.078,0.061-0.138,0.149-0.181,0.267s-0.063,0.298-0.063,0.541v0.851h0.828v0.453h-0.828v2.844
+ c0,0.193,0.014,0.322,0.043,0.387c0.028,0.065,0.071,0.111,0.129,0.137c0.058,0.026,0.191,0.039,0.401,0.039h0.177v0.375h-2.234v-0.375h0.136c0.23,0,0.378-0.014,0.44-0.043c0.063-0.029,0.108-0.075,0.136-0.141c0.028-0.064,0.041-0.211,0.038-0.441v-2.781
+ h-0.766v-0.453z"/>
+ <path d="M460.835,217.666l0.281,0.234c-0.213,0.252-0.42,0.452-0.621,0.6c-0.2,0.148-0.39,0.252-0.568,0.312c-0.178,0.06-0.387,0.089-0.627,0.089c-0.43,0-0.796-0.088-1.097-0.264c-0.346-0.202-0.61-0.466-0.795-0.791s-0.276-0.709-0.276-1.152
+ c0-0.463,0.09-0.858,0.268-1.187c0.179-0.328,0.428-0.587,0.748-0.776c0.32-0.188,0.691-0.283,1.112-0.283c0.313,0,0.585,0.049,0.816,0.146c0.23,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.277,0.423,0.351,0.677c0.041,0.148,0.064,0.342,0.07,0.578h-3.096
+ c-0.009,0.145-0.014,0.252-0.014,0.322c0,0.37,0.064,0.7,0.193,0.989c0.128,0.29,0.298,0.503,0.51,0.64c0.211,0.137,0.451,0.205,0.721,0.205c0.227,0,0.447-0.053,0.66-0.159c0.214-0.106,0.472-0.313,0.775-0.622z M460.272,215.884
+ c-0.044-0.269-0.105-0.467-0.186-0.596c-0.08-0.128-0.194-0.23-0.342-0.307c-0.146-0.075-0.313-0.113-0.496-0.113s-0.355,0.038-0.517,0.113c-0.16,0.076-0.294,0.182-0.399,0.315c-0.107,0.135-0.199,0.33-0.278,0.587h2.218z M458.319,213.65v-0.156l0.815-0.588
+ c0.278-0.201,0.513-0.303,0.7-0.303c0.088,0,0.162,0.031,0.223,0.094c0.06,0.063,0.09,0.14,0.09,0.232c0,0.112-0.041,0.206-0.123,0.279c-0.082,0.074-0.23,0.135-0.445,0.181l-1.26,0.261z"/>
+ <path d="M464.5,213.072v-0.359c0.199-0.018,0.382-0.053,0.548-0.105c0.165-0.052,0.373-0.142,0.622-0.27H466v5.344c0,0.242,0.005,0.389,0.017,0.44c0.029,0.109,0.078,0.187,0.146,0.229c0.069,0.043,0.203,0.064,0.401,0.064h0.186v0.375l-1.516,0.078v-0.705
+ c-0.292,0.268-0.565,0.457-0.819,0.568c-0.256,0.112-0.511,0.168-0.768,0.168c-0.527,0-0.965-0.213-1.313-0.64c-0.349-0.427-0.522-0.94-0.522-1.541c0-0.428,0.092-0.819,0.277-1.176c0.185-0.355,0.429-0.628,0.731-0.815c0.304-0.188,0.636-0.281,0.997-0.281
+ c0.276,0,0.533,0.048,0.769,0.143c0.236,0.095,0.452,0.237,0.647,0.428v-1.945H464.5z M465.234,217.728v-1.666c0-0.238-0.045-0.434-0.134-0.584c-0.089-0.152-0.234-0.283-0.437-0.395c-0.203-0.112-0.41-0.168-0.623-0.168c-0.253,0-0.487,0.07-0.701,0.209
+ c-0.214,0.141-0.382,0.342-0.503,0.604s-0.181,0.581-0.181,0.954c0,0.353,0.056,0.657,0.168,0.914c0.112,0.258,0.263,0.453,0.452,0.587s0.383,0.2,0.581,0.2c0.195,0,0.417-0.057,0.664-0.17c0.248-0.113,0.485-0.275,0.713-0.486z"/>
+ <path d="M471.097,217.666l0.281,0.234c-0.214,0.252-0.421,0.452-0.621,0.6c-0.2,0.148-0.39,0.252-0.568,0.312s-0.388,0.089-0.627,0.089c-0.431,0-0.796-0.088-1.098-0.264c-0.345-0.202-0.609-0.466-0.794-0.791s-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.178-0.328,0.428-0.587,0.748-0.776c0.32-0.188,0.69-0.283,1.112-0.283c0.313,0,0.585,0.049,0.815,0.146c0.231,0.098,0.428,0.246,0.588,0.442c0.161,0.197,0.278,0.423,0.352,0.677c0.041,0.148,0.064,0.342,0.07,0.578h-3.097
+ c-0.009,0.145-0.013,0.252-0.013,0.322c0,0.37,0.064,0.7,0.192,0.989c0.128,0.29,0.298,0.503,0.51,0.64s0.452,0.205,0.721,0.205c0.228,0,0.448-0.053,0.661-0.159s0.472-0.313,0.775-0.622z M470.534,215.884c-0.044-0.269-0.106-0.467-0.187-0.596
+ c-0.08-0.128-0.193-0.23-0.341-0.307c-0.147-0.075-0.313-0.113-0.496-0.113c-0.185,0-0.356,0.038-0.517,0.113c-0.161,0.076-0.294,0.182-0.4,0.315c-0.106,0.135-0.199,0.33-0.278,0.587h2.219z M468.581,213.65v-0.156l0.814-0.588
+ c0.279-0.201,0.513-0.303,0.701-0.303c0.088,0,0.162,0.031,0.222,0.094c0.061,0.063,0.091,0.14,0.091,0.232c0,0.112-0.041,0.206-0.123,0.279c-0.083,0.074-0.231,0.135-0.445,0.181l-1.26,0.261z"/>
+ <path d="M472.011,215.181v-0.359c0.214-0.018,0.403-0.054,0.57-0.107c0.166-0.055,0.356-0.145,0.57-0.268h0.328v0.836c0.208-0.256,0.45-0.46,0.726-0.61s0.523-0.226,0.743-0.226c0.217,0,0.389,0.051,0.514,0.153c0.127,0.102,0.189,0.226,0.189,0.371
+ c0,0.104-0.041,0.197-0.125,0.277s-0.184,0.12-0.301,0.12c-0.053,0-0.099-0.007-0.137-0.021c-0.038-0.014-0.094-0.045-0.167-0.092c-0.161-0.102-0.296-0.152-0.404-0.152c-0.146,0-0.308,0.062-0.483,0.184c-0.223,0.158-0.397,0.313-0.523,0.465v2.023
+ c0,0.174,0.01,0.291,0.028,0.353c0.019,0.063,0.049,0.116,0.092,0.16c0.043,0.045,0.096,0.077,0.159,0.098c0.063,0.021,0.172,0.03,0.33,0.03h0.141v0.375h-2.234v-0.375h0.186c0.176,0,0.29-0.016,0.345-0.048c0.075-0.043,0.13-0.103,0.166-0.18
+ c0.036-0.076,0.054-0.214,0.054-0.413v-2.594h-0.766z"/>
+ <path d="M479.152,216.275l-0.01-0.486c0-0.33-0.091-0.566-0.271-0.708s-0.437-0.212-0.767-0.212c-0.163,0-0.307,0.021-0.429,0.061s-0.222,0.096-0.296,0.166s-0.129,0.15-0.164,0.239c-0.015,0.033-0.049,0.16-0.104,0.381c-0.067,0.269-0.203,0.403-0.407,0.403
+ c-0.117,0-0.211-0.039-0.283-0.118c-0.071-0.079-0.106-0.186-0.106-0.319c0-0.197,0.071-0.391,0.215-0.579c0.144-0.189,0.362-0.346,0.655-0.47c0.295-0.123,0.642-0.186,1.043-0.186c0.374,0,0.694,0.059,0.961,0.174c0.266,0.115,0.462,0.282,0.588,0.499
+ c0.088,0.149,0.132,0.422,0.132,0.817v1.692c0,0.24,0.007,0.397,0.021,0.471c0.032,0.126,0.089,0.221,0.169,0.283c0.08,0.063,0.184,0.095,0.313,0.095c0.134,0,0.295-0.031,0.481-0.093v0.379c-0.243,0.069-0.461,0.104-0.654,0.104
+ c-0.208,0-0.383-0.029-0.524-0.087c-0.143-0.059-0.258-0.144-0.35-0.256c-0.09-0.112-0.148-0.245-0.175-0.399c-0.352,0.273-0.669,0.466-0.952,0.576s-0.57,0.166-0.859,0.166c-0.404,0-0.732-0.108-0.983-0.326s-0.377-0.473-0.377-0.766
+ c0-0.178,0.046-0.346,0.138-0.506c0.093-0.159,0.233-0.3,0.423-0.422c0.188-0.121,0.485-0.229,0.89-0.322c0.405-0.092,0.967-0.177,1.685-0.252z M479.144,216.634c-0.68,0.1-1.1,0.169-1.262,0.207c-0.318,0.073-0.548,0.154-0.686,0.242s-0.235,0.183-0.294,0.283
+ c-0.059,0.102-0.088,0.21-0.088,0.324s0.032,0.225,0.099,0.332s0.159,0.191,0.28,0.254c0.12,0.061,0.248,0.092,0.383,0.092c0.191,0,0.407-0.045,0.647-0.137c0.241-0.091,0.55-0.269,0.926-0.533l-0.006-1.064z"/>
+ <path d="M482.363,213.056h0.313v1.5h1.313v0.438h-1.313v2.654c0,0.227,0.02,0.388,0.06,0.484s0.107,0.176,0.204,0.238c0.096,0.061,0.203,0.092,0.321,0.092c0.28,0,0.591-0.125,0.931-0.375v0.424c-0.387,0.26-0.776,0.389-1.172,0.389
+ c-0.224,0-0.427-0.05-0.607-0.149c-0.182-0.1-0.306-0.217-0.372-0.352s-0.099-0.369-0.099-0.703v-2.702h-0.766v-0.367c0.245-0.056,0.443-0.143,0.594-0.26c0.15-0.118,0.272-0.271,0.365-0.459c0.094-0.188,0.17-0.473,0.229-0.852z"/>
+ <path d="M484.579,215.181v-0.359c0.243-0.029,0.447-0.07,0.613-0.123s0.354-0.137,0.565-0.252h0.321v3.516c0,0.123,0.018,0.216,0.053,0.277s0.084,0.106,0.146,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375h-2.234v-0.375h0.178
+ c0.193,0,0.323-0.018,0.39-0.053s0.114-0.085,0.142-0.15c0.027-0.064,0.041-0.215,0.041-0.453v-2.578h-0.766z M485.696,212.462c0.14,0,0.26,0.049,0.358,0.145c0.1,0.098,0.149,0.215,0.149,0.354s-0.05,0.257-0.149,0.354c-0.099,0.099-0.219,0.147-0.358,0.147
+ c-0.141,0-0.26-0.049-0.359-0.147c-0.1-0.098-0.148-0.216-0.148-0.354s0.049-0.256,0.148-0.354c0.1-0.096,0.219-0.145,0.359-0.145z"/>
+ <path d="M489.543,214.447c0.429,0,0.8,0.09,1.112,0.269c0.313,0.179,0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.278,1.174c-0.185,0.343-0.437,0.604-0.756,0.784c-0.319,0.181-0.7,0.271-1.143,0.271c-0.705,0-1.235-0.221-1.59-0.664
+ c-0.354-0.442-0.53-0.963-0.53-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.602,0.771-0.787c0.33-0.186,0.706-0.279,1.125-0.279z M489.502,214.869c-0.334,0-0.616,0.133-0.849,0.396c-0.293,0.329-0.438,0.809-0.438,1.438
+ c0,0.605,0.124,1.066,0.373,1.384c0.226,0.282,0.531,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198c0.194-0.132,0.352-0.343,0.472-0.633c0.12-0.289,0.181-0.629,0.181-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.25-0.429-0.45-0.562
+ c-0.201-0.135-0.428-0.201-0.679-0.201z"/>
+ <path d="M492.349,215.181v-0.359c0.263-0.029,0.459-0.065,0.589-0.107c0.13-0.041,0.316-0.131,0.562-0.268h0.318v0.854c0.387-0.332,0.716-0.558,0.989-0.676s0.551-0.178,0.831-0.178c0.24,0,0.452,0.04,0.637,0.121c0.184,0.08,0.334,0.189,0.449,0.327
+ c0.116,0.138,0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.051,0.44c0.033,0.065,0.087,0.112,0.16,0.142c0.072,0.028,0.253,0.043,0.539,0.043v0.375h-2.234v-0.375h0.12c0.206,0,0.346-0.02,0.42-0.057
+ c0.074-0.039,0.128-0.094,0.161-0.167c0.032-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688c-0.054-0.128-0.146-0.231-0.277-0.312c-0.131-0.079-0.297-0.119-0.497-0.119c-0.238,0-0.493,0.061-0.764,0.182s-0.533,0.299-0.786,0.535v2.002
+ c0,0.229,0.017,0.381,0.05,0.457s0.087,0.133,0.161,0.171c0.053,0.029,0.19,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.446-0.055c0.079-0.037,0.135-0.102,0.167-0.196c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path d="M450.377,221.666h0.71l1.895,5.124c0.094,0.253,0.188,0.421,0.284,0.503c0.095,0.082,0.224,0.123,0.384,0.123h0.098v0.375h-2.177v-0.375c0.07-0.006,0.139-0.009,0.206-0.009c0.141,0,0.233-0.015,0.277-0.043c0.085-0.056,0.127-0.125,0.127-0.209
+ c0-0.061-0.041-0.21-0.123-0.446l-0.405-1.184h-2.217l-0.476,1.323c-0.051,0.136-0.075,0.229-0.075,0.282c0,0.057,0.016,0.107,0.046,0.15c0.031,0.044,0.072,0.076,0.125,0.098s0.139,0.033,0.256,0.033c0.078,0,0.143,0.001,0.193,0.004v0.375h-1.82v-0.375
+ c0.17,0,0.293-0.017,0.367-0.05c0.074-0.032,0.14-0.086,0.195-0.159s0.129-0.228,0.22-0.463l1.91-5.078z M449.593,225.087h1.887l-0.939-2.633l-0.947,2.633z"/>
+ <path d="M454.072,223.556h0.766v-0.663c0-0.456,0.149-0.83,0.448-1.12c0.3-0.29,0.689-0.436,1.172-0.436c0.321,0,0.571,0.066,0.751,0.199s0.27,0.277,0.27,0.433c0,0.104-0.036,0.191-0.108,0.263c-0.072,0.07-0.162,0.105-0.271,0.105
+ c-0.097,0-0.181-0.018-0.251-0.053c-0.07-0.034-0.179-0.121-0.326-0.261c-0.155-0.146-0.304-0.218-0.444-0.218c-0.097,0-0.185,0.03-0.262,0.092c-0.078,0.061-0.138,0.149-0.181,0.267s-0.063,0.298-0.063,0.541v0.851h0.828v0.453h-0.828v2.844
+ c0,0.193,0.014,0.322,0.043,0.387c0.028,0.065,0.071,0.111,0.129,0.137c0.058,0.026,0.191,0.039,0.401,0.039h0.177v0.375h-2.234v-0.375h0.136c0.23,0,0.378-0.014,0.44-0.043c0.063-0.029,0.108-0.075,0.136-0.141c0.028-0.064,0.041-0.211,0.038-0.441v-2.781
+ h-0.766v-0.453z"/>
+ <path d="M456.981,224.181v-0.359c0.214-0.018,0.403-0.054,0.57-0.107c0.166-0.055,0.356-0.145,0.57-0.268h0.328v0.836c0.208-0.256,0.45-0.46,0.726-0.61s0.523-0.226,0.743-0.226c0.217,0,0.389,0.051,0.514,0.153c0.127,0.102,0.189,0.226,0.189,0.371
+ c0,0.104-0.041,0.197-0.125,0.277s-0.184,0.12-0.301,0.12c-0.053,0-0.099-0.007-0.137-0.021c-0.038-0.014-0.094-0.045-0.167-0.092c-0.161-0.102-0.296-0.152-0.404-0.152c-0.146,0-0.308,0.062-0.483,0.184c-0.223,0.158-0.397,0.313-0.523,0.465v2.023
+ c0,0.174,0.01,0.291,0.028,0.353c0.019,0.063,0.049,0.116,0.092,0.16c0.043,0.045,0.096,0.077,0.159,0.098c0.063,0.021,0.172,0.03,0.33,0.03h0.141v0.375h-2.234v-0.375h0.186c0.176,0,0.29-0.016,0.345-0.048c0.075-0.043,0.13-0.103,0.166-0.18
+ c0.036-0.076,0.054-0.214,0.054-0.413v-2.594h-0.766z"/>
+ <path d="M460.91,224.181v-0.359c0.243-0.029,0.447-0.07,0.613-0.123c0.165-0.053,0.354-0.137,0.565-0.252h0.321v3.516c0,0.123,0.017,0.216,0.052,0.277s0.084,0.106,0.147,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375h-2.234v-0.375h0.178
+ c0.193,0,0.323-0.018,0.39-0.053s0.113-0.085,0.141-0.15c0.027-0.064,0.042-0.215,0.042-0.453v-2.578h-0.766z M462.027,221.462c0.14,0,0.26,0.049,0.358,0.145c0.1,0.098,0.149,0.215,0.149,0.354s-0.05,0.257-0.149,0.354c-0.099,0.099-0.219,0.147-0.358,0.147
+ c-0.141,0-0.261-0.049-0.359-0.147c-0.099-0.098-0.148-0.216-0.148-0.354s0.05-0.256,0.148-0.354c0.099-0.096,0.219-0.145,0.359-0.145z"/>
+ <path d="M467.546,226.572l0.281,0.229c-0.552,0.732-1.213,1.1-1.983,1.1c-0.602,0-1.108-0.214-1.521-0.642c-0.414-0.428-0.62-0.96-0.62-1.596c0-0.425,0.096-0.807,0.287-1.146c0.192-0.338,0.459-0.602,0.801-0.789c0.341-0.188,0.733-0.281,1.176-0.281
+ c0.504,0,0.925,0.124,1.262,0.373c0.337,0.248,0.506,0.498,0.506,0.751c0,0.135-0.04,0.239-0.119,0.313c-0.08,0.073-0.17,0.11-0.27,0.11c-0.053,0-0.104-0.014-0.154-0.04c-0.051-0.027-0.102-0.07-0.154-0.13c-0.024-0.027-0.066-0.111-0.129-0.252
+ c-0.079-0.173-0.141-0.289-0.186-0.349c-0.091-0.12-0.203-0.214-0.338-0.282c-0.133-0.069-0.283-0.104-0.447-0.104c-0.25,0-0.482,0.069-0.695,0.208c-0.214,0.138-0.383,0.342-0.508,0.611s-0.188,0.592-0.188,0.966c0,0.58,0.154,1.041,0.464,1.383
+ c0.268,0.294,0.587,0.441,0.958,0.441c0.172,0,0.345-0.028,0.52-0.085c0.176-0.058,0.341-0.142,0.497-0.252c0.115-0.079,0.302-0.258,0.562-0.538z"/>
+ <path d="M471.502,225.275l-0.011-0.486c0-0.33-0.09-0.566-0.271-0.708c-0.181-0.142-0.436-0.212-0.766-0.212c-0.164,0-0.307,0.021-0.43,0.061c-0.122,0.04-0.221,0.096-0.295,0.166s-0.129,0.15-0.164,0.239c-0.015,0.033-0.05,0.16-0.105,0.381
+ c-0.066,0.269-0.203,0.403-0.407,0.403c-0.116,0-0.211-0.039-0.282-0.118s-0.107-0.186-0.107-0.319c0-0.197,0.072-0.391,0.215-0.579c0.144-0.189,0.362-0.346,0.656-0.47c0.294-0.123,0.642-0.186,1.042-0.186c0.375,0,0.695,0.059,0.961,0.174
+ c0.267,0.115,0.462,0.282,0.589,0.499c0.087,0.149,0.131,0.422,0.131,0.817v1.692c0,0.24,0.008,0.397,0.022,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.294-0.031,0.48-0.093v0.379
+ c-0.242,0.069-0.461,0.104-0.654,0.104c-0.207,0-0.382-0.029-0.523-0.087c-0.143-0.059-0.259-0.144-0.35-0.256s-0.149-0.245-0.176-0.399c-0.351,0.273-0.668,0.466-0.951,0.576c-0.284,0.11-0.57,0.166-0.86,0.166c-0.403,0-0.731-0.108-0.983-0.326
+ c-0.251-0.218-0.377-0.473-0.377-0.766c0-0.178,0.047-0.346,0.139-0.506c0.092-0.159,0.233-0.3,0.422-0.422c0.189-0.121,0.486-0.229,0.891-0.322c0.404-0.092,0.966-0.177,1.685-0.252z M471.493,225.634c-0.68,0.1-1.101,0.169-1.262,0.207
+ c-0.319,0.073-0.548,0.154-0.686,0.242s-0.236,0.183-0.295,0.283c-0.059,0.102-0.088,0.21-0.088,0.324s0.033,0.225,0.1,0.332c0.065,0.107,0.159,0.191,0.279,0.254c0.121,0.061,0.248,0.092,0.384,0.092c0.19,0,0.406-0.045,0.647-0.137
+ c0.24-0.091,0.549-0.269,0.926-0.533l-0.006-1.064z"/>
+ <path d="M473.509,224.181v-0.359c0.243-0.029,0.448-0.07,0.613-0.123c0.166-0.053,0.354-0.137,0.566-0.252h0.32v3.516c0,0.123,0.018,0.216,0.053,0.277s0.084,0.106,0.146,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375h-2.234v-0.375h0.178
+ c0.193,0,0.324-0.018,0.391-0.053s0.113-0.085,0.141-0.15c0.027-0.064,0.041-0.215,0.041-0.453v-2.578h-0.766z M474.626,221.462c0.141,0,0.26,0.049,0.359,0.145c0.099,0.098,0.148,0.215,0.148,0.354s-0.05,0.257-0.148,0.354c-0.1,0.099-0.219,0.147-0.359,0.147
+ c-0.14,0-0.26-0.049-0.359-0.147c-0.099-0.098-0.148-0.216-0.148-0.354s0.05-0.256,0.148-0.354c0.1-0.096,0.22-0.145,0.359-0.145z"/>
+ <path d="M476.238,224.181v-0.359c0.263-0.029,0.459-0.065,0.589-0.107c0.129-0.041,0.316-0.131,0.562-0.268h0.318v0.854c0.386-0.332,0.716-0.558,0.989-0.676s0.551-0.178,0.832-0.178c0.239,0,0.451,0.04,0.636,0.121c0.185,0.08,0.334,0.189,0.45,0.327
+ c0.115,0.138,0.191,0.294,0.229,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.051,0.44c0.033,0.065,0.087,0.112,0.16,0.142c0.073,0.028,0.253,0.043,0.539,0.043v0.375h-2.234v-0.375h0.12c0.206,0,0.346-0.02,0.42-0.057
+ c0.074-0.039,0.128-0.094,0.161-0.167c0.032-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.081-0.688c-0.055-0.128-0.147-0.231-0.278-0.312c-0.132-0.079-0.297-0.119-0.497-0.119c-0.238,0-0.493,0.061-0.764,0.182
+ c-0.271,0.121-0.533,0.299-0.786,0.535v2.002c0,0.229,0.017,0.381,0.05,0.457s0.087,0.133,0.162,0.171c0.051,0.029,0.189,0.044,0.413,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.445-0.055c0.08-0.037,0.136-0.102,0.168-0.196
+ c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path d="M485.945,226.666l0.281,0.234c-0.214,0.252-0.421,0.452-0.62,0.6c-0.201,0.148-0.391,0.252-0.568,0.312c-0.179,0.06-0.389,0.089-0.628,0.089c-0.431,0-0.796-0.088-1.097-0.264c-0.346-0.202-0.61-0.466-0.795-0.791c-0.184-0.325-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187s0.428-0.587,0.748-0.776c0.32-0.188,0.691-0.283,1.112-0.283c0.313,0,0.585,0.049,0.816,0.146c0.23,0.098,0.427,0.246,0.588,0.442c0.16,0.197,0.277,0.423,0.351,0.677c0.041,0.148,0.064,0.342,0.07,0.578H483.1
+ c-0.009,0.145-0.014,0.252-0.014,0.322c0,0.37,0.064,0.7,0.192,0.989c0.129,0.29,0.299,0.503,0.511,0.64s0.452,0.205,0.72,0.205c0.229,0,0.448-0.053,0.662-0.159c0.213-0.106,0.471-0.313,0.774-0.622z M485.383,224.884c-0.044-0.269-0.105-0.467-0.186-0.596
+ c-0.08-0.128-0.194-0.23-0.341-0.307c-0.148-0.075-0.313-0.113-0.497-0.113s-0.356,0.038-0.517,0.113c-0.16,0.076-0.293,0.182-0.4,0.315c-0.105,0.135-0.199,0.33-0.277,0.587h2.218z"/>
+ <path d="M445.871,231.072v-0.359c0.199-0.018,0.382-0.053,0.548-0.105c0.166-0.052,0.373-0.142,0.623-0.27h0.329v5.344c0,0.242,0.006,0.389,0.018,0.44c0.028,0.109,0.077,0.187,0.146,0.229s0.202,0.064,0.401,0.064h0.185v0.375l-1.516,0.078v-0.705
+ c-0.291,0.268-0.564,0.457-0.819,0.568c-0.255,0.112-0.511,0.168-0.767,0.168c-0.527,0-0.966-0.213-1.313-0.64s-0.522-0.94-0.522-1.541c0-0.428,0.093-0.819,0.277-1.176c0.186-0.355,0.429-0.628,0.732-0.815c0.303-0.188,0.635-0.281,0.996-0.281
+ c0.277,0,0.533,0.048,0.77,0.143c0.235,0.095,0.451,0.237,0.646,0.428v-1.945h-0.734z M446.605,235.728v-1.666c0-0.238-0.044-0.434-0.133-0.584c-0.089-0.152-0.235-0.283-0.438-0.395c-0.202-0.112-0.41-0.168-0.622-0.168c-0.254,0-0.487,0.07-0.701,0.209
+ c-0.215,0.141-0.382,0.342-0.503,0.604s-0.182,0.581-0.182,0.954c0,0.353,0.056,0.657,0.169,0.914c0.111,0.258,0.262,0.453,0.451,0.587s0.384,0.2,0.582,0.2c0.195,0,0.416-0.057,0.664-0.17c0.247-0.113,0.484-0.275,0.712-0.486z"/>
+ <path d="M452.468,235.666l0.281,0.234c-0.213,0.252-0.42,0.452-0.621,0.6c-0.2,0.148-0.39,0.252-0.568,0.312c-0.178,0.06-0.387,0.089-0.627,0.089c-0.43,0-0.796-0.088-1.097-0.264c-0.346-0.202-0.61-0.466-0.795-0.791s-0.276-0.709-0.276-1.152
+ c0-0.463,0.09-0.858,0.268-1.187c0.179-0.328,0.428-0.587,0.748-0.776c0.32-0.188,0.691-0.283,1.112-0.283c0.313,0,0.585,0.049,0.816,0.146c0.23,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.277,0.423,0.351,0.677c0.041,0.148,0.064,0.342,0.07,0.578h-3.096
+ c-0.009,0.145-0.014,0.252-0.014,0.322c0,0.37,0.064,0.7,0.193,0.989c0.128,0.29,0.298,0.503,0.51,0.64c0.211,0.137,0.451,0.205,0.721,0.205c0.227,0,0.447-0.053,0.66-0.159c0.214-0.106,0.472-0.313,0.775-0.622z M451.905,233.884
+ c-0.044-0.269-0.105-0.467-0.186-0.596c-0.08-0.128-0.194-0.23-0.342-0.307c-0.146-0.075-0.313-0.113-0.496-0.113s-0.355,0.038-0.517,0.113c-0.16,0.076-0.294,0.182-0.399,0.315c-0.107,0.135-0.199,0.33-0.278,0.587h2.218z"/>
+ <path d="M456.417,230.666h4.703l0.563,1.605l-0.375,0.145c-0.162-0.379-0.321-0.652-0.478-0.818c-0.157-0.166-0.338-0.285-0.545-0.355c-0.206-0.072-0.53-0.107-0.974-0.107h-1.332v2.359h0.605c0.318,0,0.547-0.03,0.685-0.092c0.139-0.061,0.245-0.158,0.318-0.29
+ c0.073-0.133,0.11-0.321,0.11-0.565v-0.162h0.438v2.688h-0.438v-0.236c0-0.231-0.035-0.411-0.105-0.54c-0.071-0.129-0.168-0.222-0.29-0.278c-0.122-0.058-0.339-0.086-0.651-0.086h-0.672v1.906c0,0.176,0.018,0.297,0.054,0.365
+ c0.036,0.069,0.089,0.122,0.159,0.158c0.07,0.037,0.197,0.055,0.378,0.055h0.159v0.375h-2.313v-0.375h0.15c0.188,0,0.318-0.018,0.391-0.053c0.071-0.035,0.125-0.09,0.158-0.165c0.034-0.075,0.051-0.21,0.051-0.407v-4.156c0-0.182-0.016-0.31-0.049-0.383
+ c-0.032-0.073-0.081-0.127-0.147-0.16c-0.066-0.034-0.182-0.051-0.347-0.051h-0.207v-0.375z"/>
+ <path d="M464.257,232.447c0.429,0,0.799,0.09,1.113,0.269c0.313,0.179,0.56,0.439,0.74,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.277,1.174c-0.186,0.343-0.438,0.604-0.757,0.784c-0.319,0.181-0.7,0.271-1.143,0.271c-0.706,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.602,0.771-0.787c0.33-0.186,0.705-0.279,1.125-0.279z M464.216,232.869c-0.334,0-0.617,0.133-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.438
+ c0,0.605,0.124,1.066,0.373,1.384c0.226,0.282,0.531,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198c0.194-0.132,0.352-0.343,0.472-0.633c0.12-0.289,0.181-0.629,0.181-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.25-0.429-0.45-0.562
+ c-0.201-0.135-0.427-0.201-0.679-0.201z"/>
+ <path d="M469.298,232.447c0.428,0,0.799,0.09,1.112,0.269s0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.277,1.174s-0.438,0.604-0.757,0.784c-0.318,0.181-0.699,0.271-1.143,0.271c-0.705,0-1.234-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.602,0.771-0.787s0.706-0.279,1.126-0.279z M469.256,232.869c-0.334,0-0.616,0.133-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.438c0,0.605,0.124,1.066,0.374,1.384
+ c0.225,0.282,0.531,0.423,0.918,0.423c0.248,0,0.471-0.066,0.665-0.198c0.195-0.132,0.353-0.343,0.473-0.633c0.12-0.289,0.18-0.629,0.18-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.249-0.429-0.45-0.562c-0.2-0.135-0.427-0.201-0.679-0.201z"/>
+ <path d="M473.275,231.056h0.313v1.5h1.313v0.438h-1.313v2.654c0,0.227,0.02,0.388,0.06,0.484s0.107,0.176,0.204,0.238c0.096,0.061,0.203,0.092,0.321,0.092c0.28,0,0.591-0.125,0.931-0.375v0.424c-0.387,0.26-0.776,0.389-1.172,0.389
+ c-0.224,0-0.427-0.05-0.607-0.149c-0.182-0.1-0.306-0.217-0.372-0.352s-0.099-0.369-0.099-0.703v-2.702h-0.766v-0.367c0.245-0.056,0.443-0.143,0.594-0.26c0.15-0.118,0.272-0.271,0.365-0.459c0.094-0.188,0.17-0.473,0.229-0.852z"/>
+ <path d="M475.46,231.072v-0.359c0.195-0.015,0.384-0.051,0.565-0.107c0.183-0.057,0.386-0.146,0.61-0.268h0.324v2.685c0.258-0.191,0.522-0.335,0.795-0.432c0.272-0.096,0.551-0.144,0.836-0.144c0.328,0,0.631,0.088,0.909,0.264s0.498,0.425,0.657,0.745
+ c0.16,0.321,0.24,0.7,0.24,1.137c0,0.686-0.201,1.25-0.603,1.692c-0.373,0.41-0.845,0.615-1.417,0.615c-0.343,0-0.649-0.07-0.919-0.21c-0.199-0.103-0.393-0.262-0.58-0.476l-0.242,0.576h-0.411v-5.719h-0.766z M476.96,233.46v1.705
+ c0,0.268,0.019,0.456,0.057,0.564c0.038,0.107,0.115,0.218,0.234,0.332c0.117,0.113,0.256,0.203,0.415,0.27s0.323,0.1,0.492,0.1c0.259,0,0.495-0.069,0.708-0.208s0.381-0.344,0.504-0.615c0.122-0.271,0.184-0.598,0.184-0.979c0-0.534-0.13-0.962-0.39-1.284
+ c-0.207-0.266-0.497-0.398-0.87-0.398c-0.192,0-0.389,0.036-0.586,0.108c-0.199,0.072-0.448,0.208-0.748,0.405z"/>
+ <path d="M484.285,234.275l-0.01-0.486c0-0.33-0.091-0.566-0.271-0.708s-0.437-0.212-0.767-0.212c-0.163,0-0.307,0.021-0.429,0.061s-0.222,0.096-0.296,0.166s-0.129,0.15-0.164,0.239c-0.015,0.033-0.049,0.16-0.104,0.381c-0.067,0.269-0.203,0.403-0.407,0.403
+ c-0.117,0-0.211-0.039-0.283-0.118c-0.071-0.079-0.106-0.186-0.106-0.319c0-0.197,0.071-0.391,0.215-0.579c0.144-0.189,0.362-0.346,0.655-0.47c0.295-0.123,0.642-0.186,1.043-0.186c0.374,0,0.694,0.059,0.961,0.174c0.266,0.115,0.462,0.282,0.588,0.499
+ c0.088,0.149,0.132,0.422,0.132,0.817v1.692c0,0.24,0.007,0.397,0.021,0.471c0.032,0.126,0.089,0.221,0.169,0.283c0.08,0.063,0.184,0.095,0.313,0.095c0.134,0,0.295-0.031,0.481-0.093v0.379c-0.243,0.069-0.461,0.104-0.654,0.104
+ c-0.208,0-0.383-0.029-0.524-0.087c-0.143-0.059-0.258-0.144-0.35-0.256c-0.09-0.112-0.148-0.245-0.175-0.399c-0.352,0.273-0.669,0.466-0.952,0.576s-0.57,0.166-0.859,0.166c-0.404,0-0.732-0.108-0.983-0.326s-0.377-0.473-0.377-0.766
+ c0-0.178,0.046-0.346,0.138-0.506c0.093-0.159,0.233-0.3,0.423-0.422c0.188-0.121,0.485-0.229,0.89-0.322c0.405-0.092,0.967-0.177,1.685-0.252z M484.276,234.634c-0.68,0.1-1.1,0.169-1.262,0.207c-0.318,0.073-0.548,0.154-0.686,0.242s-0.235,0.183-0.294,0.283
+ c-0.059,0.102-0.088,0.21-0.088,0.324s0.032,0.225,0.099,0.332s0.159,0.191,0.28,0.254c0.12,0.061,0.248,0.092,0.383,0.092c0.191,0,0.407-0.045,0.647-0.137c0.241-0.091,0.55-0.269,0.926-0.533l-0.006-1.064z"/>
+ <path d="M486.262,231.072v-0.359c0.401-0.029,0.792-0.154,1.173-0.375h0.327v5.422c0,0.225,0.015,0.365,0.044,0.423c0.039,0.081,0.095,0.14,0.169,0.177c0.073,0.038,0.216,0.057,0.426,0.057h0.143v0.375h-2.266v-0.375h0.228c0.144,0,0.251-0.021,0.322-0.064
+ c0.072-0.043,0.123-0.102,0.154-0.176c0.03-0.074,0.046-0.224,0.046-0.447v-4.656h-0.766z"/>
+ <path d="M488.96,231.072v-0.359c0.4-0.029,0.792-0.154,1.172-0.375h0.328v5.422c0,0.225,0.015,0.365,0.044,0.423c0.038,0.081,0.095,0.14,0.169,0.177c0.074,0.038,0.216,0.057,0.426,0.057h0.143v0.375h-2.266v-0.375h0.228c0.144,0,0.251-0.021,0.322-0.064
+ c0.072-0.043,0.123-0.102,0.153-0.176c0.031-0.074,0.047-0.224,0.047-0.447v-4.656h-0.766z"/>
+ </g>
+ <g style="fill:#4D4D4D;stroke:none;">
+ <path d="M772.433,216.819c1.08,0,1.956,0.328,2.625,0.984s1.004,1.499,1.004,2.528c0,0.692-0.153,1.307-0.459,1.842c-0.307,0.537-0.729,0.95-1.268,1.24c-0.539,0.291-1.189,0.437-1.951,0.437c-1.007,0-1.831-0.276-2.473-0.828
+ c-0.774-0.666-1.162-1.556-1.162-2.671c0-1.035,0.34-1.884,1.019-2.543s1.567-0.989,2.665-0.989z M772.452,217.897c-0.519,0-0.93,0.193-1.236,0.581c-0.384,0.488-0.576,1.117-0.576,1.889c0,0.771,0.179,1.381,0.537,1.829c0.31,0.384,0.718,0.576,1.227,0.576
+ c0.511,0,0.919-0.192,1.226-0.576c0.361-0.458,0.542-1.071,0.542-1.839c0-0.541-0.077-0.994-0.232-1.361c-0.154-0.368-0.363-0.643-0.627-0.825s-0.551-0.273-0.859-0.273z"/>
+ <path d="M776.794,216.928h5.676l0.777,2.175l-0.885,0.308c-0.144-0.317-0.281-0.557-0.412-0.718c-0.131-0.162-0.286-0.297-0.466-0.405c-0.181-0.107-0.375-0.18-0.585-0.216c-0.141-0.022-0.389-0.034-0.746-0.034h-0.844v1.813h0.438
+ c0.166,0,0.296-0.024,0.391-0.073c0.094-0.049,0.162-0.112,0.203-0.19c0.042-0.078,0.063-0.208,0.063-0.391v-0.361h0.875v3.047h-0.875v-0.442c0-0.128-0.012-0.221-0.035-0.28c-0.029-0.078-0.071-0.142-0.124-0.191c-0.053-0.049-0.113-0.083-0.182-0.104
+ c-0.067-0.02-0.191-0.029-0.37-0.029h-0.383v1.438c0,0.174,0.015,0.291,0.043,0.352c0.029,0.061,0.076,0.105,0.14,0.135c0.064,0.029,0.188,0.044,0.371,0.044h0.274v0.938h-3.344v-0.938h0.223c0.248,0,0.411-0.032,0.488-0.096c0.078-0.063,0.117-0.191,0.117-0.384
+ v-3.925c0-0.179-0.015-0.298-0.045-0.356c-0.029-0.059-0.079-0.104-0.148-0.133s-0.207-0.044-0.412-0.044h-0.223v-0.938z"/>
+ <path d="M788.829,216.928h0.693l0.668,2.445l-0.908,0.264c-0.303-0.581-0.588-0.994-0.854-1.238c-0.371-0.335-0.773-0.502-1.206-0.502c-0.316,0-0.611,0.088-0.887,0.263c-0.274,0.176-0.492,0.435-0.654,0.775c-0.16,0.342-0.241,0.741-0.241,1.199
+ c0,0.699,0.185,1.301,0.554,1.804c0.37,0.504,0.854,0.756,1.453,0.756c0.381,0,0.747-0.108,1.099-0.327c0.439-0.27,0.818-0.632,1.138-1.087l0.757,0.562c-0.491,0.67-0.94,1.136-1.347,1.399c-0.628,0.406-1.328,0.609-2.099,0.609c-0.642,0-1.221-0.153-1.739-0.46
+ c-0.52-0.308-0.934-0.737-1.242-1.289c-0.31-0.553-0.464-1.155-0.464-1.809c0-0.648,0.15-1.241,0.451-1.775s0.711-0.951,1.229-1.25c0.52-0.299,1.098-0.448,1.735-0.448c0.647,0,1.215,0.134,1.703,0.403l0.161-0.294z"/>
+ <path d="M765.368,228.506c0.559,0,1.064,0.135,1.515,0.404c0.489,0.29,0.864,0.667,1.127,1.13c0.262,0.463,0.394,1,0.394,1.609c0,0.943-0.293,1.713-0.879,2.308s-1.332,0.893-2.24,0.893c-1.013,0-1.815-0.357-2.406-1.073c-0.483-0.582-0.725-1.28-0.725-2.092
+ c0-0.604,0.136-1.146,0.408-1.625c0.271-0.479,0.658-0.857,1.159-1.136s1.05-0.418,1.647-0.418z M765.365,228.975c-0.456,0-0.848,0.104-1.176,0.315c-0.327,0.209-0.59,0.519-0.787,0.926c-0.198,0.408-0.296,0.912-0.296,1.511c0,0.572,0.097,1.058,0.291,1.455
+ s0.456,0.702,0.783,0.913c0.328,0.212,0.696,0.317,1.105,0.317c0.407,0,0.767-0.104,1.08-0.311c0.313-0.207,0.571-0.532,0.776-0.978c0.204-0.444,0.308-0.938,0.308-1.481c0-0.552-0.104-1.057-0.308-1.515c-0.176-0.393-0.408-0.684-0.698-0.871
+ c-0.289-0.188-0.648-0.282-1.079-0.282z"/>
+ <path d="M773.101,233.522l0.281,0.228c-0.551,0.734-1.212,1.101-1.982,1.101c-0.602,0-1.108-0.214-1.521-0.642c-0.414-0.428-0.621-0.96-0.621-1.596c0-0.425,0.097-0.807,0.288-1.146c0.192-0.338,0.459-0.602,0.8-0.789c0.342-0.188,0.734-0.281,1.177-0.281
+ c0.504,0,0.925,0.124,1.262,0.372c0.337,0.249,0.505,0.499,0.505,0.752c0,0.135-0.039,0.239-0.119,0.313c-0.079,0.074-0.169,0.11-0.269,0.11c-0.054,0-0.104-0.014-0.155-0.04c-0.05-0.027-0.102-0.07-0.154-0.131c-0.023-0.026-0.066-0.109-0.128-0.25
+ c-0.079-0.174-0.142-0.29-0.186-0.35c-0.091-0.12-0.204-0.214-0.338-0.283c-0.134-0.068-0.283-0.103-0.448-0.103c-0.25,0-0.481,0.069-0.695,0.208c-0.213,0.139-0.383,0.342-0.508,0.611s-0.188,0.592-0.188,0.966c0,0.58,0.155,1.041,0.465,1.382
+ c0.268,0.295,0.587,0.442,0.958,0.442c0.171,0,0.345-0.028,0.52-0.085s0.341-0.141,0.497-0.252c0.115-0.078,0.302-0.258,0.561-0.538z"/>
+ <path d="M777.641,233.616l0.281,0.234c-0.214,0.252-0.421,0.452-0.621,0.601c-0.2,0.147-0.39,0.251-0.568,0.311c-0.179,0.059-0.388,0.089-0.627,0.089c-0.431,0-0.796-0.088-1.097-0.264c-0.346-0.202-0.61-0.466-0.795-0.791s-0.276-0.71-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187s0.428-0.587,0.748-0.775c0.32-0.189,0.69-0.284,1.112-0.284c0.313,0,0.585,0.049,0.816,0.146c0.23,0.099,0.427,0.245,0.588,0.442c0.16,0.197,0.277,0.423,0.351,0.677c0.041,0.149,0.064,0.342,0.07,0.578h-3.097
+ c-0.008,0.144-0.013,0.251-0.013,0.321c0,0.371,0.064,0.701,0.192,0.99c0.129,0.29,0.299,0.503,0.51,0.64c0.212,0.137,0.452,0.205,0.721,0.205c0.228,0,0.448-0.053,0.661-0.159c0.214-0.106,0.472-0.313,0.775-0.622z M777.078,231.834
+ c-0.044-0.269-0.106-0.467-0.187-0.596c-0.08-0.128-0.193-0.23-0.341-0.306c-0.147-0.076-0.313-0.114-0.496-0.114c-0.185,0-0.356,0.038-0.517,0.114c-0.16,0.075-0.294,0.181-0.4,0.314c-0.106,0.135-0.199,0.33-0.277,0.587h2.218z"/>
+ <path d="M781.737,232.225l-0.01-0.486c0-0.331-0.091-0.566-0.271-0.708c-0.182-0.141-0.437-0.212-0.767-0.212c-0.163,0-0.307,0.021-0.429,0.061c-0.123,0.04-0.222,0.096-0.296,0.166s-0.129,0.149-0.164,0.239c-0.015,0.033-0.05,0.16-0.104,0.381
+ c-0.067,0.27-0.203,0.403-0.408,0.403c-0.116,0-0.211-0.039-0.282-0.118s-0.106-0.186-0.106-0.32c0-0.196,0.071-0.389,0.215-0.578c0.143-0.189,0.361-0.346,0.655-0.47s0.642-0.186,1.042-0.186c0.375,0,0.695,0.058,0.961,0.174
+ c0.267,0.116,0.463,0.282,0.589,0.499c0.087,0.149,0.132,0.422,0.132,0.817v1.692c0,0.24,0.007,0.397,0.021,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.294-0.03,0.481-0.093v0.379
+ c-0.243,0.069-0.461,0.104-0.654,0.104c-0.208,0-0.383-0.029-0.524-0.087c-0.143-0.059-0.259-0.144-0.35-0.256c-0.091-0.111-0.149-0.245-0.175-0.399c-0.352,0.273-0.669,0.466-0.952,0.576c-0.284,0.11-0.57,0.166-0.86,0.166c-0.403,0-0.731-0.108-0.982-0.326
+ c-0.252-0.218-0.377-0.474-0.377-0.767c0-0.177,0.046-0.345,0.138-0.504c0.093-0.16,0.233-0.301,0.423-0.423c0.188-0.122,0.485-0.229,0.89-0.321c0.405-0.094,0.966-0.178,1.685-0.253z M781.729,232.584c-0.68,0.1-1.101,0.169-1.262,0.207
+ c-0.319,0.073-0.548,0.154-0.686,0.242s-0.235,0.183-0.294,0.284c-0.059,0.101-0.088,0.209-0.088,0.323s0.032,0.226,0.099,0.332c0.065,0.107,0.159,0.192,0.28,0.253c0.12,0.063,0.248,0.093,0.383,0.093c0.191,0,0.406-0.046,0.647-0.137s0.55-0.269,0.926-0.532
+ l-0.006-1.065z"/>
+ <path d="M783.776,231.131v-0.359c0.262-0.03,0.458-0.065,0.588-0.107c0.13-0.041,0.316-0.131,0.562-0.268h0.319v0.854c0.386-0.333,0.715-0.558,0.988-0.676s0.551-0.178,0.832-0.178c0.239,0,0.451,0.04,0.636,0.121c0.185,0.08,0.334,0.189,0.45,0.327
+ c0.115,0.138,0.191,0.295,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.016,0.376,0.05,0.44c0.034,0.065,0.087,0.112,0.16,0.141c0.073,0.029,0.253,0.044,0.54,0.044v0.375h-2.234v-0.375h0.119c0.206,0,0.346-0.019,0.42-0.058
+ c0.074-0.037,0.128-0.093,0.161-0.166c0.032-0.073,0.05-0.223,0.05-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688c-0.055-0.127-0.147-0.231-0.278-0.311c-0.131-0.08-0.297-0.12-0.497-0.12c-0.238,0-0.492,0.061-0.764,0.182c-0.271,0.12-0.533,0.299-0.785,0.534
+ v2.003c0,0.229,0.016,0.381,0.049,0.457s0.087,0.133,0.162,0.171c0.052,0.029,0.189,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.109c0.218,0,0.366-0.019,0.446-0.055c0.079-0.037,0.135-0.103,0.167-0.196c0.018-0.047,0.027-0.208,0.027-0.483v-2.5h-0.766z"/>
+ <path d="M789.687,231.131v-0.359c0.242-0.029,0.447-0.07,0.613-0.124c0.165-0.053,0.354-0.137,0.565-0.251h0.321v3.516c0,0.123,0.017,0.216,0.052,0.277s0.084,0.106,0.147,0.134c0.063,0.028,0.178,0.042,0.344,0.042h0.207v0.375h-2.234v-0.375h0.178
+ c0.193,0,0.323-0.018,0.39-0.053s0.113-0.085,0.141-0.149s0.042-0.217,0.042-0.454v-2.578h-0.766z M790.804,228.413c0.14,0,0.26,0.048,0.358,0.146c0.099,0.096,0.149,0.214,0.149,0.353s-0.051,0.257-0.149,0.354c-0.099,0.099-0.219,0.147-0.358,0.147
+ c-0.141,0-0.261-0.049-0.359-0.147c-0.1-0.098-0.148-0.216-0.148-0.354s0.049-0.257,0.148-0.353c0.099-0.098,0.219-0.146,0.359-0.146z"/>
+ <path d="M795.598,232.225l-0.011-0.486c0-0.331-0.09-0.566-0.271-0.708c-0.181-0.141-0.436-0.212-0.766-0.212c-0.164,0-0.307,0.021-0.429,0.061c-0.123,0.04-0.222,0.096-0.296,0.166s-0.129,0.149-0.164,0.239c-0.015,0.033-0.05,0.16-0.105,0.381
+ c-0.066,0.27-0.202,0.403-0.406,0.403c-0.117,0-0.211-0.039-0.283-0.118c-0.071-0.079-0.107-0.186-0.107-0.32c0-0.196,0.072-0.389,0.215-0.578c0.144-0.189,0.362-0.346,0.656-0.47s0.642-0.186,1.043-0.186c0.374,0,0.694,0.058,0.961,0.174
+ c0.266,0.116,0.462,0.282,0.588,0.499c0.088,0.149,0.131,0.422,0.131,0.817v1.692c0,0.24,0.008,0.397,0.022,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.294-0.03,0.48-0.093v0.379
+ c-0.242,0.069-0.461,0.104-0.653,0.104c-0.208,0-0.383-0.029-0.524-0.087c-0.143-0.059-0.259-0.144-0.35-0.256c-0.091-0.111-0.148-0.245-0.176-0.399c-0.351,0.273-0.668,0.466-0.951,0.576c-0.284,0.11-0.57,0.166-0.86,0.166c-0.403,0-0.731-0.108-0.982-0.326
+ c-0.252-0.218-0.378-0.474-0.378-0.767c0-0.177,0.047-0.345,0.139-0.504c0.093-0.16,0.233-0.301,0.422-0.423c0.189-0.122,0.486-0.229,0.891-0.321c0.404-0.094,0.967-0.178,1.685-0.253z M795.589,232.584c-0.68,0.1-1.101,0.169-1.262,0.207
+ c-0.319,0.073-0.548,0.154-0.686,0.242s-0.236,0.183-0.295,0.284c-0.059,0.101-0.088,0.209-0.088,0.323s0.033,0.226,0.1,0.332c0.066,0.107,0.159,0.192,0.279,0.253c0.121,0.063,0.248,0.093,0.384,0.093c0.19,0,0.407-0.046,0.647-0.137
+ c0.241-0.091,0.55-0.269,0.926-0.532l-0.006-1.065z"/>
+ <path d="M762.243,237.616h4.703l0.563,1.605l-0.375,0.145c-0.162-0.38-0.322-0.652-0.479-0.818s-0.338-0.284-0.544-0.356c-0.207-0.07-0.531-0.106-0.974-0.106h-1.332v2.359h0.605c0.317,0,0.546-0.03,0.685-0.092c0.138-0.061,0.244-0.157,0.317-0.29
+ c0.074-0.133,0.111-0.321,0.111-0.566v-0.161h0.438v2.688h-0.438v-0.237c0-0.23-0.035-0.41-0.106-0.539s-0.167-0.222-0.289-0.278c-0.122-0.058-0.34-0.086-0.651-0.086h-0.672v1.906c0,0.175,0.018,0.297,0.054,0.366c0.036,0.068,0.089,0.121,0.159,0.157
+ s0.196,0.055,0.377,0.055h0.16v0.375h-2.313v-0.375h0.149c0.188,0,0.318-0.018,0.391-0.053s0.125-0.091,0.159-0.165c0.033-0.074,0.051-0.211,0.051-0.407v-4.156c0-0.182-0.017-0.31-0.049-0.383s-0.082-0.127-0.148-0.16c-0.065-0.034-0.182-0.051-0.346-0.051
+ h-0.207v-0.375z"/>
+ <path d="M770.083,239.397c0.428,0,0.799,0.09,1.112,0.269s0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.277,1.174s-0.438,0.604-0.757,0.784c-0.318,0.18-0.699,0.271-1.143,0.271c-0.705,0-1.234-0.222-1.589-0.664s-0.531-0.962-0.531-1.561
+ c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.601,0.771-0.787s0.706-0.279,1.126-0.279z M770.041,239.819c-0.334,0-0.616,0.132-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.437c0,0.605,0.124,1.067,0.374,1.385c0.225,0.282,0.531,0.423,0.918,0.423
+ c0.248,0,0.471-0.065,0.665-0.198c0.195-0.133,0.353-0.343,0.473-0.633c0.12-0.289,0.18-0.629,0.18-1.02c0-0.383-0.064-0.725-0.193-1.027c-0.1-0.241-0.249-0.428-0.45-0.563c-0.2-0.133-0.427-0.2-0.679-0.2z"/>
+ <path d="M775.123,239.397c0.429,0,0.8,0.09,1.112,0.269c0.313,0.179,0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.278,1.174c-0.185,0.343-0.437,0.604-0.756,0.784s-0.7,0.271-1.143,0.271c-0.705,0-1.235-0.222-1.59-0.664
+ c-0.354-0.442-0.53-0.962-0.53-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.601,0.771-0.787c0.33-0.187,0.706-0.279,1.125-0.279z M775.082,239.819c-0.334,0-0.616,0.132-0.849,0.396c-0.293,0.329-0.438,0.809-0.438,1.437
+ c0,0.605,0.124,1.067,0.373,1.385c0.226,0.282,0.531,0.423,0.918,0.423c0.249,0,0.471-0.065,0.666-0.198c0.194-0.133,0.352-0.343,0.472-0.633c0.12-0.289,0.181-0.629,0.181-1.02c0-0.383-0.064-0.725-0.193-1.027c-0.1-0.241-0.25-0.428-0.45-0.563
+ c-0.201-0.133-0.428-0.2-0.679-0.2z"/>
+ <path d="M779.101,238.006h0.313v1.5h1.313v0.438h-1.313v2.654c0,0.226,0.02,0.388,0.061,0.484c0.039,0.097,0.107,0.177,0.203,0.237c0.096,0.063,0.203,0.093,0.321,0.093c0.281,0,0.591-0.125,0.931-0.375v0.424c-0.386,0.259-0.776,0.389-1.171,0.389
+ c-0.225,0-0.427-0.05-0.608-0.149c-0.181-0.1-0.305-0.217-0.371-0.352s-0.1-0.369-0.1-0.703v-2.702h-0.766v-0.367c0.246-0.056,0.443-0.143,0.594-0.261c0.15-0.117,0.272-0.27,0.366-0.458c0.093-0.188,0.169-0.472,0.228-0.852z"/>
+ <path d="M781.285,238.022v-0.359c0.195-0.015,0.384-0.05,0.566-0.106c0.182-0.057,0.385-0.146,0.61-0.269h0.323v2.685c0.258-0.191,0.523-0.336,0.796-0.432s0.551-0.144,0.835-0.144c0.328,0,0.632,0.088,0.91,0.264s0.497,0.425,0.657,0.745
+ c0.159,0.321,0.239,0.7,0.239,1.137c0,0.686-0.2,1.25-0.603,1.692c-0.372,0.41-0.844,0.615-1.416,0.615c-0.344,0-0.649-0.07-0.919-0.21c-0.2-0.103-0.394-0.262-0.581-0.476l-0.242,0.576h-0.411v-5.719h-0.766z M782.785,240.411v1.704
+ c0,0.27,0.019,0.457,0.058,0.564c0.037,0.108,0.115,0.219,0.233,0.332c0.118,0.114,0.257,0.204,0.415,0.271c0.159,0.066,0.323,0.1,0.492,0.1c0.26,0,0.496-0.069,0.709-0.208s0.381-0.344,0.503-0.615s0.184-0.598,0.184-0.979c0-0.534-0.13-0.963-0.389-1.284
+ c-0.208-0.266-0.498-0.398-0.871-0.398c-0.192,0-0.388,0.036-0.586,0.108s-0.447,0.207-0.748,0.405z"/>
+ <path d="M790.111,241.225l-0.011-0.486c0-0.331-0.09-0.566-0.271-0.708c-0.181-0.141-0.436-0.212-0.766-0.212c-0.164,0-0.307,0.021-0.43,0.061c-0.122,0.04-0.221,0.096-0.295,0.166s-0.129,0.149-0.164,0.239c-0.015,0.033-0.05,0.16-0.105,0.381
+ c-0.066,0.27-0.203,0.403-0.407,0.403c-0.116,0-0.211-0.039-0.282-0.118s-0.107-0.186-0.107-0.32c0-0.196,0.072-0.389,0.215-0.578c0.144-0.189,0.362-0.346,0.656-0.47s0.642-0.186,1.042-0.186c0.375,0,0.695,0.058,0.961,0.174
+ c0.267,0.116,0.462,0.282,0.589,0.499c0.087,0.149,0.131,0.422,0.131,0.817v1.692c0,0.24,0.008,0.397,0.022,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.294-0.03,0.48-0.093v0.379
+ c-0.242,0.069-0.461,0.104-0.654,0.104c-0.207,0-0.382-0.029-0.523-0.087c-0.143-0.059-0.259-0.144-0.35-0.256c-0.091-0.111-0.149-0.245-0.176-0.399c-0.351,0.273-0.668,0.466-0.951,0.576c-0.284,0.11-0.57,0.166-0.86,0.166c-0.403,0-0.731-0.108-0.983-0.326
+ c-0.251-0.218-0.377-0.474-0.377-0.767c0-0.177,0.047-0.345,0.139-0.504c0.092-0.16,0.233-0.301,0.422-0.423c0.189-0.122,0.486-0.229,0.891-0.321c0.404-0.094,0.966-0.178,1.685-0.253z M790.103,241.584c-0.68,0.1-1.101,0.169-1.262,0.207
+ c-0.319,0.073-0.548,0.154-0.686,0.242s-0.236,0.183-0.295,0.284c-0.059,0.101-0.088,0.209-0.088,0.323s0.033,0.226,0.1,0.332c0.065,0.107,0.159,0.192,0.279,0.253c0.121,0.063,0.248,0.093,0.384,0.093c0.19,0,0.406-0.046,0.647-0.137
+ c0.24-0.091,0.549-0.269,0.926-0.532l-0.006-1.065z"/>
+ <path d="M792.087,238.022v-0.359c0.401-0.03,0.792-0.155,1.173-0.375h0.327v5.422c0,0.225,0.015,0.365,0.045,0.423c0.038,0.081,0.094,0.14,0.168,0.178c0.074,0.037,0.217,0.056,0.427,0.056h0.142v0.375h-2.266v-0.375h0.229c0.143,0,0.25-0.021,0.322-0.064
+ c0.071-0.043,0.123-0.102,0.153-0.176c0.03-0.075,0.046-0.224,0.046-0.447v-4.656h-0.766z"/>
+ <path d="M794.785,238.022v-0.359c0.401-0.03,0.792-0.155,1.173-0.375h0.327v5.422c0,0.225,0.015,0.365,0.045,0.423c0.038,0.081,0.095,0.14,0.168,0.178c0.074,0.037,0.216,0.056,0.427,0.056h0.142v0.375h-2.266v-0.375h0.229c0.143,0,0.25-0.021,0.322-0.064
+ c0.071-0.043,0.122-0.102,0.153-0.176c0.031-0.075,0.046-0.224,0.046-0.447v-4.656h-0.766z"/>
+ </g>
+ <text transform="matrix(1 0 0 1 64.3286 103.6606)" style="fill:#FC4E32;stroke:none;"><tspan x="0" y="0" style="font-family:'BookmanOldStyle-Bold'; font-size:10;">CONCACAF</tspan><tspan x="-8.31" y="11">Confederation of </tspan><tspan x="-26.038" y="20">North, Central American </tspan><tspan x="-3.184" y="29">and Caribbean</tspan><tspan x="-14.882" y="38">Association Football</tspan></text>
+ <g style="fill:#7F7F00;stroke:none;">
+ <path d="M191.969,260.109h0.693l0.668,2.445l-0.908,0.264c-0.303-0.582-0.588-0.994-0.854-1.238c-0.371-0.334-0.773-0.502-1.206-0.502c-0.316,0-0.611,0.088-0.886,0.264c-0.275,0.175-0.493,0.434-0.654,0.774c-0.161,0.342-0.242,0.741-0.242,1.199
+ c0,0.699,0.185,1.3,0.554,1.804s0.854,0.756,1.453,0.756c0.381,0,0.747-0.109,1.099-0.326c0.439-0.27,0.818-0.633,1.138-1.088l0.757,0.561c-0.491,0.67-0.94,1.137-1.347,1.4c-0.628,0.406-1.328,0.609-2.099,0.609c-0.641,0-1.221-0.153-1.74-0.461
+ c-0.519-0.307-0.933-0.736-1.242-1.288c-0.31-0.553-0.464-1.155-0.464-1.808c0-0.65,0.15-1.242,0.451-1.776s0.711-0.951,1.23-1.25s1.097-0.448,1.735-0.448c0.647,0,1.215,0.135,1.703,0.402l0.161-0.293z"/>
+ <path d="M197.769,260c1.081,0,1.957,0.328,2.625,0.984s1.004,1.499,1.004,2.529c0,0.691-0.153,1.306-0.459,1.842c-0.307,0.535-0.729,0.949-1.268,1.24c-0.539,0.29-1.189,0.436-1.952,0.436c-1.006,0-1.831-0.276-2.472-0.828c-0.775-0.666-1.163-1.557-1.163-2.67
+ c0-1.037,0.339-1.885,1.019-2.544c0.679-0.659,1.567-0.989,2.665-0.989z M197.789,261.078c-0.518,0-0.93,0.193-1.236,0.581c-0.384,0.487-0.576,1.117-0.576,1.888c0,0.771,0.179,1.382,0.537,1.83c0.31,0.385,0.718,0.576,1.226,0.576
+ c0.511,0,0.919-0.191,1.226-0.576c0.361-0.458,0.542-1.071,0.542-1.84c0-0.539-0.077-0.993-0.232-1.361c-0.154-0.367-0.363-0.643-0.627-0.824s-0.551-0.273-0.86-0.273z"/>
+ <path d="M202.115,260.109h2.765l2,3.977v-2.438c0-0.208-0.012-0.339-0.034-0.391c-0.033-0.078-0.078-0.133-0.134-0.164c-0.056-0.031-0.164-0.047-0.325-0.047h-0.335v-0.938h2.828v0.938h-0.313c-0.157,0-0.269,0.018-0.336,0.054s-0.113,0.085-0.14,0.146
+ c-0.026,0.063-0.039,0.196-0.039,0.401v5.273h-1.41l-2.527-5.023v3.519c0,0.202,0.012,0.331,0.037,0.387s0.069,0.099,0.132,0.132s0.174,0.049,0.331,0.049h0.328v0.938h-2.828v-0.938h0.294c0.163,0,0.275-0.014,0.336-0.041c0.06-0.028,0.108-0.076,0.145-0.145
+ c0.036-0.068,0.054-0.172,0.054-0.309v-3.915c0-0.149-0.017-0.26-0.049-0.33c-0.033-0.07-0.077-0.12-0.133-0.151s-0.148-0.047-0.279-0.047h-0.367v-0.938z"/>
+ <path d="M209.513,260.109h3.086l1.187,4.139l1.214-4.139h3.154v0.938h-0.34c-0.185,0-0.312,0.038-0.382,0.115c-0.071,0.076-0.106,0.221-0.106,0.433v3.876c0,0.17,0.01,0.275,0.029,0.318c0.03,0.064,0.071,0.11,0.124,0.137c0.072,0.039,0.167,0.059,0.286,0.059
+ h0.39v0.938h-3.297v-0.938h0.256c0.187,0,0.314-0.015,0.379-0.044s0.114-0.074,0.146-0.134c0.031-0.061,0.047-0.172,0.047-0.336v-4.193l-1.656,5.645h-0.938l-1.609-5.464v4.146c0,0.094,0.017,0.168,0.051,0.22s0.083,0.092,0.146,0.12
+ c0.063,0.027,0.165,0.041,0.305,0.041h0.326v0.938h-2.797v-0.938h0.277c0.176,0,0.295-0.016,0.36-0.047c0.064-0.03,0.112-0.08,0.144-0.146c0.031-0.066,0.047-0.189,0.047-0.369v-3.827c0-0.176-0.012-0.29-0.035-0.343c-0.03-0.071-0.075-0.123-0.134-0.156
+ c-0.06-0.032-0.153-0.049-0.282-0.049h-0.377v-0.938z"/>
+ <path d="M218.912,260.109h5.691l0.777,2.16l-0.88,0.318c-0.149-0.355-0.324-0.643-0.524-0.861c-0.2-0.217-0.421-0.361-0.664-0.433s-0.524-0.106-0.846-0.106h-1.039v1.719h0.341c0.256,0,0.429-0.019,0.518-0.057c0.089-0.037,0.153-0.096,0.192-0.176
+ s0.059-0.238,0.059-0.477v-0.26h0.875v2.875h-0.875v-0.295c0-0.2-0.023-0.346-0.07-0.438c-0.047-0.092-0.111-0.154-0.192-0.188c-0.081-0.032-0.261-0.049-0.54-0.049h-0.307v1.58c0,0.168,0.008,0.271,0.024,0.307c0.016,0.036,0.048,0.064,0.095,0.084
+ s0.149,0.029,0.305,0.029h0.571c0.426,0,0.786-0.062,1.079-0.186c0.293-0.123,0.554-0.322,0.783-0.597s0.406-0.602,0.53-0.979l0.893,0.308l-0.896,2.532h-5.901v-0.938h0.173c0.229,0,0.384-0.016,0.463-0.049s0.135-0.09,0.168-0.172
+ c0.016-0.049,0.024-0.188,0.024-0.416v-3.719c0-0.202-0.014-0.334-0.042-0.396c-0.028-0.062-0.071-0.107-0.131-0.139c-0.059-0.031-0.176-0.047-0.35-0.047h-0.306v-0.938z"/>
+ <path d="M226.083,261.046v-0.938h3.885c0.594,0,1.061,0.069,1.401,0.207c0.339,0.139,0.601,0.338,0.784,0.597s0.274,0.543,0.274,0.852c0,0.225-0.049,0.438-0.146,0.64c-0.098,0.202-0.237,0.381-0.42,0.535c-0.183,0.154-0.424,0.282-0.724,0.383
+ c0.317,0.082,0.561,0.172,0.73,0.27c0.243,0.137,0.436,0.328,0.579,0.573c0.143,0.246,0.214,0.521,0.214,0.823c0,0.361-0.109,0.694-0.327,0.998c-0.218,0.305-0.526,0.537-0.926,0.696c-0.398,0.159-0.982,0.239-1.75,0.239h-3.575v-0.938h0.276
+ c0.184,0,0.308-0.016,0.374-0.047c0.065-0.03,0.111-0.074,0.138-0.132c0.026-0.057,0.04-0.185,0.04-0.384v-3.808c0-0.202-0.014-0.331-0.04-0.386c-0.027-0.056-0.073-0.1-0.138-0.133c-0.065-0.032-0.19-0.049-0.374-0.049h-0.276z M228.599,262.875h0.745
+ c0.39,0,0.678-0.033,0.864-0.1c0.187-0.065,0.327-0.166,0.421-0.3c0.095-0.134,0.142-0.289,0.142-0.464c0-0.182-0.045-0.338-0.134-0.467c-0.09-0.129-0.219-0.221-0.387-0.275c-0.169-0.055-0.471-0.082-0.906-0.082h-0.745v1.688z M228.599,263.859v1.49
+ c0.003,0.211,0.011,0.335,0.024,0.371c0.016,0.046,0.042,0.078,0.08,0.096c0.037,0.019,0.138,0.027,0.303,0.027h0.494c0.287,0,0.525-0.027,0.715-0.081c0.188-0.055,0.35-0.167,0.482-0.339c0.132-0.171,0.199-0.377,0.199-0.617c0-0.203-0.047-0.376-0.141-0.518
+ s-0.234-0.248-0.422-0.321c-0.188-0.072-0.473-0.108-0.857-0.108h-0.877z"/>
+ <path d="M236.968,260c1.081,0,1.957,0.328,2.625,0.984s1.004,1.499,1.004,2.529c0,0.691-0.153,1.306-0.459,1.842c-0.307,0.535-0.729,0.949-1.268,1.24c-0.539,0.29-1.189,0.436-1.952,0.436c-1.006,0-1.831-0.276-2.472-0.828c-0.775-0.666-1.163-1.557-1.163-2.67
+ c0-1.037,0.339-1.885,1.019-2.544c0.679-0.659,1.567-0.989,2.665-0.989z M236.988,261.078c-0.518,0-0.93,0.193-1.236,0.581c-0.384,0.487-0.576,1.117-0.576,1.888c0,0.771,0.179,1.382,0.537,1.83c0.31,0.385,0.718,0.576,1.226,0.576
+ c0.511,0,0.919-0.191,1.226-0.576c0.361-0.458,0.542-1.071,0.542-1.84c0-0.539-0.077-0.993-0.232-1.361c-0.154-0.367-0.363-0.643-0.627-0.824s-0.551-0.273-0.86-0.273z"/>
+ <path d="M241.33,260.109h3.344v0.938h-0.294c-0.164,0-0.267,0.008-0.309,0.024c-0.079,0.032-0.136,0.082-0.172,0.149c-0.036,0.066-0.054,0.174-0.054,0.32v3.896c0,0.157,0.007,0.253,0.022,0.289s0.044,0.064,0.09,0.086c0.045,0.021,0.133,0.031,0.264,0.031
+ c0.436,0,0.787-0.057,1.052-0.171s0.504-0.298,0.718-0.55c0.213-0.253,0.396-0.596,0.549-1.029l0.898,0.308l-0.9,2.521h-5.209v-0.938h0.328c0.134,0,0.235-0.018,0.304-0.054c0.069-0.036,0.119-0.084,0.149-0.145c0.031-0.061,0.047-0.165,0.047-0.315v-3.866
+ c0-0.163-0.016-0.28-0.047-0.353c-0.031-0.071-0.075-0.123-0.132-0.156c-0.058-0.032-0.153-0.049-0.287-0.049h-0.362v-0.938z"/>
+ <path d="M189.19,271.796h0.316l0.553,2.042l-0.406,0.114c-0.219-0.472-0.386-0.788-0.5-0.949c-0.187-0.261-0.42-0.467-0.699-0.619s-0.587-0.229-0.923-0.229c-0.395,0-0.758,0.106-1.09,0.319s-0.601,0.524-0.807,0.936s-0.31,0.873-0.31,1.386
+ c0,0.529,0.104,1,0.314,1.413c0.209,0.414,0.492,0.732,0.85,0.956c0.356,0.223,0.742,0.334,1.154,0.334c0.389,0,0.787-0.112,1.194-0.337c0.407-0.225,0.76-0.539,1.058-0.944l0.351,0.242c-0.182,0.27-0.378,0.498-0.589,0.686c-0.334,0.303-0.681,0.525-1.041,0.669
+ s-0.756,0.216-1.187,0.216c-0.952,0-1.726-0.354-2.32-1.06c-0.492-0.586-0.738-1.283-0.738-2.093c0-0.595,0.136-1.133,0.408-1.615c0.272-0.482,0.647-0.865,1.126-1.149s0.994-0.427,1.547-0.427c0.295,0,0.57,0.041,0.823,0.121c0.253,0.082,0.51,0.212,0.771,0.392
+ l0.144-0.403z"/>
+ <path d="M193.108,273.578c0.429,0,0.799,0.09,1.113,0.269c0.313,0.179,0.56,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.278,1.174s-0.437,0.604-0.756,0.784c-0.319,0.181-0.7,0.271-1.143,0.271c-0.706,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.602,0.771-0.787c0.33-0.186,0.706-0.279,1.125-0.279z M193.067,274c-0.334,0-0.617,0.133-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.438
+ c0,0.605,0.124,1.066,0.373,1.384c0.226,0.282,0.531,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198c0.194-0.132,0.352-0.343,0.472-0.633c0.12-0.289,0.181-0.629,0.181-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.25-0.429-0.45-0.562
+ c-0.201-0.135-0.427-0.201-0.679-0.201z"/>
+ <path d="M195.914,274.312v-0.359c0.263-0.029,0.459-0.065,0.589-0.107c0.129-0.041,0.316-0.131,0.562-0.268h0.318v0.854c0.386-0.332,0.716-0.558,0.989-0.676s0.551-0.178,0.832-0.178c0.24,0,0.452,0.04,0.636,0.121c0.184,0.08,0.334,0.189,0.45,0.327
+ s0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.051,0.44c0.033,0.065,0.087,0.112,0.16,0.142c0.073,0.028,0.253,0.043,0.539,0.043v0.375h-2.234v-0.375h0.12c0.206,0,0.346-0.02,0.42-0.057
+ c0.074-0.039,0.128-0.094,0.161-0.167c0.032-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688s-0.147-0.231-0.278-0.312c-0.131-0.079-0.297-0.119-0.497-0.119c-0.238,0-0.493,0.061-0.764,0.182c-0.271,0.121-0.533,0.299-0.786,0.535v2.002
+ c0,0.229,0.017,0.381,0.05,0.457s0.087,0.133,0.162,0.171c0.052,0.029,0.19,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.446-0.055c0.08-0.037,0.135-0.102,0.167-0.196c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path d="M201.824,273.687h0.766v-0.663c0-0.456,0.149-0.83,0.449-1.12c0.299-0.29,0.689-0.436,1.171-0.436c0.321,0,0.571,0.066,0.751,0.199c0.179,0.133,0.269,0.277,0.269,0.433c0,0.104-0.036,0.191-0.107,0.263c-0.072,0.07-0.163,0.105-0.271,0.105
+ c-0.097,0-0.181-0.018-0.251-0.053c-0.07-0.034-0.179-0.121-0.326-0.261c-0.156-0.146-0.304-0.218-0.444-0.218c-0.097,0-0.185,0.03-0.262,0.092c-0.078,0.061-0.138,0.149-0.181,0.267s-0.064,0.298-0.064,0.541v0.851h0.828v0.453h-0.828v2.844
+ c0,0.193,0.015,0.322,0.043,0.387c0.029,0.065,0.072,0.111,0.13,0.137c0.057,0.026,0.19,0.039,0.4,0.039h0.177v0.375h-2.234v-0.375h0.136c0.231,0,0.377-0.014,0.441-0.043c0.063-0.029,0.108-0.075,0.136-0.141c0.028-0.064,0.04-0.211,0.037-0.441v-2.781h-0.766
+ v-0.453z"/>
+ <path d="M208.5,276.796l0.281,0.234c-0.214,0.252-0.421,0.452-0.621,0.6c-0.2,0.148-0.39,0.252-0.568,0.312s-0.388,0.089-0.627,0.089c-0.43,0-0.795-0.088-1.097-0.264c-0.345-0.202-0.61-0.466-0.794-0.791c-0.185-0.325-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.178-0.328,0.428-0.587,0.748-0.776c0.32-0.188,0.69-0.283,1.112-0.283c0.313,0,0.585,0.049,0.815,0.146c0.231,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.278,0.423,0.352,0.677c0.041,0.148,0.064,0.342,0.07,0.578h-3.097
+ c-0.009,0.145-0.013,0.252-0.013,0.322c0,0.37,0.064,0.7,0.192,0.989c0.128,0.29,0.298,0.503,0.51,0.64c0.212,0.137,0.452,0.205,0.721,0.205c0.228,0,0.448-0.053,0.661-0.159s0.472-0.313,0.775-0.622z M207.938,275.015c-0.044-0.269-0.106-0.467-0.187-0.596
+ c-0.08-0.128-0.193-0.23-0.341-0.307c-0.147-0.075-0.313-0.113-0.497-0.113c-0.184,0-0.356,0.038-0.516,0.113c-0.161,0.076-0.294,0.182-0.4,0.315c-0.106,0.135-0.199,0.33-0.278,0.587h2.218z"/>
+ <path d="M212.164,272.203v-0.359c0.199-0.018,0.382-0.053,0.548-0.105c0.166-0.052,0.373-0.142,0.623-0.27h0.33v5.344c0,0.242,0.006,0.389,0.018,0.44c0.028,0.109,0.077,0.187,0.146,0.229c0.069,0.043,0.203,0.064,0.401,0.064h0.185v0.375L212.898,278v-0.705
+ c-0.291,0.268-0.564,0.457-0.819,0.568c-0.255,0.112-0.511,0.168-0.767,0.168c-0.527,0-0.965-0.213-1.313-0.64s-0.522-0.94-0.522-1.541c0-0.428,0.093-0.819,0.277-1.176c0.186-0.355,0.429-0.628,0.732-0.815c0.303-0.188,0.635-0.281,0.996-0.281
+ c0.277,0,0.533,0.048,0.77,0.143c0.236,0.095,0.451,0.237,0.646,0.428v-1.945h-0.734z M212.898,276.859v-1.666c0-0.238-0.044-0.434-0.133-0.584c-0.089-0.152-0.235-0.283-0.438-0.395c-0.202-0.112-0.41-0.168-0.622-0.168c-0.254,0-0.487,0.07-0.702,0.209
+ c-0.214,0.141-0.381,0.342-0.502,0.604s-0.182,0.581-0.182,0.954c0,0.353,0.056,0.657,0.168,0.914c0.112,0.258,0.263,0.453,0.452,0.587s0.383,0.2,0.582,0.2c0.195,0,0.416-0.057,0.664-0.17c0.247-0.113,0.485-0.275,0.712-0.486z"/>
+ <path d="M218.761,276.796l0.281,0.234c-0.213,0.252-0.42,0.452-0.621,0.6c-0.201,0.148-0.39,0.252-0.568,0.312s-0.388,0.089-0.627,0.089c-0.43,0-0.796-0.088-1.097-0.264c-0.346-0.202-0.61-0.466-0.795-0.791c-0.184-0.325-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.179-0.328,0.428-0.587,0.748-0.776c0.32-0.188,0.691-0.283,1.112-0.283c0.313,0,0.585,0.049,0.816,0.146c0.23,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.277,0.423,0.351,0.677c0.041,0.148,0.064,0.342,0.07,0.578h-3.096
+ c-0.009,0.145-0.014,0.252-0.014,0.322c0,0.37,0.064,0.7,0.193,0.989c0.128,0.29,0.298,0.503,0.51,0.64c0.211,0.137,0.452,0.205,0.72,0.205c0.228,0,0.448-0.053,0.661-0.159s0.471-0.313,0.775-0.622z M218.198,275.015c-0.044-0.269-0.105-0.467-0.186-0.596
+ c-0.08-0.128-0.194-0.23-0.341-0.307c-0.147-0.075-0.313-0.113-0.497-0.113s-0.356,0.038-0.517,0.113c-0.16,0.076-0.293,0.182-0.4,0.315c-0.106,0.135-0.199,0.33-0.278,0.587h2.218z"/>
+ <path d="M219.676,274.312v-0.359c0.213-0.018,0.403-0.054,0.569-0.107c0.167-0.055,0.357-0.145,0.57-0.268h0.329v0.836c0.208-0.256,0.45-0.46,0.725-0.61s0.523-0.226,0.743-0.226c0.217,0,0.388,0.051,0.514,0.153c0.126,0.102,0.189,0.226,0.189,0.371
+ c0,0.104-0.042,0.197-0.125,0.277s-0.184,0.12-0.301,0.12c-0.053,0-0.098-0.007-0.136-0.021c-0.038-0.014-0.094-0.045-0.167-0.092c-0.161-0.102-0.296-0.152-0.404-0.152c-0.146,0-0.308,0.062-0.484,0.184c-0.223,0.158-0.396,0.313-0.522,0.465v2.023
+ c0,0.174,0.009,0.291,0.027,0.353c0.019,0.063,0.049,0.116,0.092,0.16c0.043,0.045,0.096,0.077,0.159,0.098c0.063,0.021,0.173,0.03,0.33,0.03h0.142v0.375h-2.234v-0.375h0.185c0.175,0,0.291-0.016,0.345-0.048c0.074-0.043,0.13-0.103,0.166-0.18
+ c0.036-0.076,0.054-0.214,0.054-0.413v-2.594h-0.766z"/>
+ <path d="M226.817,275.406l-0.011-0.486c0-0.33-0.09-0.566-0.271-0.708c-0.181-0.142-0.436-0.212-0.766-0.212c-0.164,0-0.307,0.021-0.429,0.061s-0.221,0.096-0.295,0.166s-0.129,0.15-0.164,0.239c-0.015,0.033-0.05,0.16-0.105,0.381
+ c-0.067,0.269-0.203,0.403-0.407,0.403c-0.116,0-0.211-0.039-0.282-0.118s-0.107-0.186-0.107-0.319c0-0.197,0.072-0.391,0.215-0.579c0.144-0.189,0.362-0.346,0.656-0.47c0.294-0.123,0.642-0.186,1.042-0.186c0.375,0,0.695,0.059,0.961,0.174
+ c0.267,0.115,0.462,0.282,0.588,0.499c0.087,0.149,0.131,0.422,0.131,0.817v1.692c0,0.24,0.008,0.397,0.022,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.294-0.031,0.481-0.093v0.379
+ c-0.243,0.069-0.461,0.104-0.654,0.104c-0.208,0-0.382-0.029-0.524-0.087c-0.142-0.059-0.258-0.144-0.349-0.256s-0.149-0.245-0.176-0.399c-0.351,0.273-0.668,0.466-0.952,0.576s-0.57,0.166-0.86,0.166c-0.404,0-0.731-0.108-0.983-0.326s-0.377-0.473-0.377-0.766
+ c0-0.178,0.046-0.346,0.139-0.506c0.092-0.159,0.233-0.3,0.422-0.422c0.189-0.121,0.486-0.229,0.891-0.322c0.404-0.092,0.966-0.177,1.685-0.252z M226.809,275.765c-0.68,0.1-1.101,0.169-1.262,0.207c-0.319,0.073-0.548,0.154-0.686,0.242
+ s-0.236,0.183-0.295,0.283c-0.059,0.102-0.088,0.21-0.088,0.324s0.033,0.225,0.1,0.332c0.065,0.107,0.159,0.191,0.279,0.254c0.121,0.061,0.248,0.092,0.384,0.092c0.19,0,0.406-0.045,0.647-0.137c0.241-0.091,0.549-0.269,0.925-0.533l-0.005-1.064z"/>
+ <path d="M232.762,276.703l0.281,0.229c-0.551,0.732-1.212,1.1-1.983,1.1c-0.601,0-1.108-0.214-1.521-0.642c-0.413-0.428-0.62-0.96-0.62-1.596c0-0.425,0.096-0.807,0.288-1.146c0.192-0.338,0.459-0.602,0.8-0.789c0.342-0.188,0.733-0.281,1.176-0.281
+ c0.504,0,0.924,0.124,1.262,0.373c0.337,0.248,0.505,0.498,0.505,0.751c0,0.135-0.04,0.239-0.119,0.313c-0.079,0.073-0.169,0.11-0.269,0.11c-0.053,0-0.105-0.014-0.155-0.04c-0.05-0.027-0.102-0.07-0.154-0.13c-0.023-0.027-0.066-0.111-0.128-0.252
+ c-0.08-0.173-0.142-0.289-0.186-0.349c-0.091-0.12-0.204-0.214-0.338-0.282c-0.134-0.069-0.283-0.104-0.448-0.104c-0.25,0-0.481,0.069-0.695,0.208c-0.213,0.138-0.383,0.342-0.508,0.611s-0.188,0.592-0.188,0.966c0,0.58,0.155,1.041,0.464,1.383
+ c0.269,0.294,0.588,0.441,0.959,0.441c0.171,0,0.344-0.028,0.52-0.085c0.175-0.058,0.341-0.142,0.497-0.252c0.114-0.079,0.302-0.258,0.561-0.538z"/>
+ <path d="M233.505,274.312v-0.359c0.243-0.029,0.447-0.07,0.613-0.123c0.166-0.053,0.354-0.137,0.565-0.252h0.321v3.516c0,0.123,0.017,0.216,0.052,0.277s0.084,0.106,0.147,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375h-2.234v-0.375h0.178
+ c0.193,0,0.323-0.018,0.39-0.053s0.114-0.085,0.141-0.15c0.027-0.064,0.042-0.215,0.042-0.453v-2.578h-0.766z M234.622,271.593c0.14,0,0.26,0.049,0.358,0.145c0.1,0.098,0.149,0.215,0.149,0.354s-0.05,0.257-0.149,0.354c-0.099,0.099-0.219,0.147-0.358,0.147
+ c-0.141,0-0.26-0.049-0.359-0.147c-0.099-0.098-0.148-0.216-0.148-0.354s0.049-0.256,0.148-0.354c0.099-0.096,0.219-0.145,0.359-0.145z"/>
+ <path d="M238.469,273.578c0.429,0,0.799,0.09,1.113,0.269c0.313,0.179,0.56,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.278,1.174s-0.437,0.604-0.756,0.784c-0.319,0.181-0.7,0.271-1.143,0.271c-0.706,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.602,0.771-0.787c0.33-0.186,0.706-0.279,1.125-0.279z M238.428,274c-0.334,0-0.617,0.133-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.438
+ c0,0.605,0.124,1.066,0.373,1.384c0.226,0.282,0.531,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198c0.194-0.132,0.352-0.343,0.472-0.633c0.12-0.289,0.181-0.629,0.181-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.25-0.429-0.45-0.562
+ c-0.201-0.135-0.427-0.201-0.679-0.201z M237.703,272.781v-0.156l0.814-0.588c0.279-0.201,0.513-0.303,0.701-0.303c0.088,0,0.162,0.031,0.222,0.094c0.061,0.063,0.091,0.14,0.091,0.232c0,0.112-0.042,0.206-0.124,0.279c-0.083,0.074-0.231,0.135-0.445,0.181
+ l-1.26,0.261z"/>
+ <path d="M241.274,274.312v-0.359c0.263-0.029,0.459-0.065,0.589-0.107c0.129-0.041,0.316-0.131,0.562-0.268h0.318v0.854c0.386-0.332,0.716-0.558,0.989-0.676s0.551-0.178,0.832-0.178c0.24,0,0.452,0.04,0.636,0.121c0.184,0.08,0.334,0.189,0.45,0.327
+ s0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.051,0.44c0.033,0.065,0.087,0.112,0.16,0.142c0.073,0.028,0.253,0.043,0.539,0.043v0.375h-2.234v-0.375h0.12c0.206,0,0.346-0.02,0.42-0.057
+ c0.074-0.039,0.128-0.094,0.161-0.167c0.032-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688s-0.147-0.231-0.278-0.312c-0.131-0.079-0.297-0.119-0.497-0.119c-0.238,0-0.493,0.061-0.764,0.182c-0.271,0.121-0.533,0.299-0.786,0.535v2.002
+ c0,0.229,0.017,0.381,0.05,0.457s0.087,0.133,0.162,0.171c0.052,0.029,0.19,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.446-0.055c0.08-0.037,0.135-0.102,0.167-0.196c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path d="M188.088,280.796h0.316l0.465,1.906l-0.406,0.109c-0.256-0.532-0.597-0.951-1.021-1.257c-0.35-0.256-0.737-0.384-1.162-0.384c-0.256,0-0.486,0.047-0.69,0.139c-0.204,0.093-0.356,0.213-0.458,0.359c-0.102,0.147-0.153,0.297-0.153,0.45
+ c0,0.138,0.039,0.271,0.117,0.401c0.079,0.129,0.197,0.243,0.357,0.342c0.159,0.098,0.421,0.201,0.783,0.311l1.149,0.33c0.141,0.041,0.345,0.121,0.613,0.238s0.477,0.24,0.626,0.371s0.267,0.291,0.352,0.479s0.127,0.394,0.127,0.613
+ c0,0.487-0.213,0.913-0.639,1.278c-0.425,0.364-0.976,0.547-1.651,0.547c-0.348,0-0.66-0.051-0.935-0.151s-0.572-0.28-0.891-0.538l-0.201,0.58h-0.31l-0.405-2.203l0.406-0.078c0.149,0.406,0.347,0.75,0.594,1.033s0.521,0.496,0.82,0.641s0.604,0.217,0.914,0.217
+ c0.421,0,0.79-0.127,1.105-0.382c0.263-0.214,0.395-0.466,0.395-0.755c0-0.267-0.095-0.484-0.285-0.654c-0.193-0.17-0.538-0.327-1.035-0.474l-1.099-0.316c-0.614-0.179-1.046-0.406-1.298-0.685s-0.377-0.598-0.377-0.957c0-0.281,0.082-0.541,0.245-0.78
+ c0.164-0.238,0.415-0.438,0.754-0.599c0.339-0.162,0.71-0.242,1.113-0.242c0.339,0,0.663,0.059,0.973,0.176c0.219,0.082,0.42,0.2,0.605,0.353l0.185-0.419z"/>
+ <path d="M189.576,282.671l1.656-0.063v2.834c0,0.25,0.034,0.448,0.104,0.595c0.068,0.146,0.174,0.261,0.316,0.341c0.143,0.081,0.309,0.121,0.5,0.121c0.234,0,0.5-0.063,0.798-0.189c0.298-0.126,0.595-0.313,0.891-0.563v-2.06c0-0.213-0.016-0.354-0.048-0.42
+ c-0.032-0.066-0.089-0.119-0.171-0.16c-0.081-0.04-0.209-0.061-0.384-0.061h-0.319v-0.375l1.672-0.063v3.281c0,0.21,0.018,0.355,0.053,0.436c0.036,0.08,0.088,0.137,0.157,0.17c0.069,0.034,0.209,0.051,0.418,0.051h0.137l-0.016,0.375L193.889,287v-0.816
+ c-0.401,0.32-0.751,0.542-1.05,0.664s-0.602,0.184-0.909,0.184c-0.229,0-0.427-0.031-0.595-0.093c-0.169-0.062-0.316-0.153-0.444-0.277c-0.127-0.123-0.225-0.271-0.292-0.444c-0.067-0.174-0.101-0.359-0.101-0.556v-2.005c0-0.178-0.017-0.303-0.049-0.375
+ c-0.032-0.071-0.086-0.128-0.161-0.171c-0.075-0.042-0.177-0.063-0.307-0.063h-0.406v-0.375z"/>
+ <path d="M198.667,281.203v-0.359c0.199-0.018,0.382-0.053,0.547-0.105c0.166-0.052,0.373-0.142,0.623-0.27h0.33v5.344c0,0.242,0.005,0.389,0.017,0.44c0.029,0.109,0.078,0.187,0.146,0.229c0.069,0.043,0.203,0.064,0.401,0.064h0.185v0.375L199.401,287v-0.705
+ c-0.292,0.268-0.565,0.457-0.82,0.568c-0.255,0.112-0.51,0.168-0.767,0.168c-0.527,0-0.965-0.213-1.313-0.64c-0.348-0.427-0.522-0.94-0.522-1.541c0-0.428,0.092-0.819,0.277-1.176c0.185-0.355,0.429-0.628,0.732-0.815c0.303-0.188,0.635-0.281,0.997-0.281
+ c0.277,0,0.533,0.048,0.769,0.143c0.236,0.095,0.452,0.237,0.647,0.428v-1.945h-0.734z M199.401,285.859v-1.666c0-0.238-0.044-0.434-0.133-0.584c-0.089-0.152-0.234-0.283-0.437-0.395c-0.203-0.112-0.41-0.168-0.623-0.168c-0.253,0-0.487,0.07-0.701,0.209
+ c-0.214,0.141-0.382,0.342-0.503,0.604s-0.181,0.581-0.181,0.954c0,0.353,0.056,0.657,0.168,0.914c0.112,0.258,0.263,0.453,0.452,0.587s0.383,0.2,0.581,0.2c0.195,0,0.417-0.057,0.664-0.17s0.485-0.275,0.712-0.486z"/>
+ <path d="M204.68,284.406l-0.01-0.486c0-0.33-0.09-0.566-0.271-0.708S203.962,283,203.632,283c-0.164,0-0.307,0.021-0.429,0.061c-0.123,0.04-0.222,0.096-0.296,0.166s-0.129,0.15-0.164,0.239c-0.015,0.033-0.05,0.16-0.105,0.381
+ c-0.067,0.269-0.203,0.403-0.407,0.403c-0.117,0-0.211-0.039-0.283-0.118c-0.071-0.079-0.107-0.186-0.107-0.319c0-0.197,0.072-0.391,0.215-0.579c0.143-0.189,0.362-0.346,0.656-0.47c0.294-0.123,0.642-0.186,1.042-0.186c0.375,0,0.695,0.059,0.961,0.174
+ s0.462,0.282,0.588,0.499c0.087,0.149,0.131,0.422,0.131,0.817v1.692c0,0.24,0.007,0.397,0.022,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.294-0.031,0.481-0.093v0.379c-0.243,0.069-0.461,0.104-0.654,0.104
+ c-0.208,0-0.383-0.029-0.524-0.087c-0.143-0.059-0.259-0.144-0.35-0.256s-0.149-0.245-0.175-0.399c-0.351,0.273-0.668,0.466-0.952,0.576c-0.284,0.11-0.57,0.166-0.86,0.166c-0.403,0-0.731-0.108-0.982-0.326c-0.252-0.218-0.377-0.473-0.377-0.766
+ c0-0.178,0.046-0.346,0.138-0.506c0.093-0.159,0.233-0.3,0.422-0.422c0.189-0.121,0.486-0.229,0.89-0.322c0.405-0.092,0.966-0.177,1.685-0.252z M204.671,284.765c-0.68,0.1-1.101,0.169-1.262,0.207c-0.319,0.073-0.548,0.154-0.686,0.242s-0.236,0.183-0.294,0.283
+ c-0.059,0.102-0.088,0.21-0.088,0.324s0.033,0.225,0.099,0.332c0.066,0.107,0.159,0.191,0.28,0.254c0.121,0.061,0.248,0.092,0.383,0.092c0.191,0,0.407-0.045,0.647-0.137c0.241-0.091,0.55-0.269,0.926-0.533l-0.006-1.064z"/>
+ <path d="M206.718,283.312v-0.359c0.22-0.021,0.413-0.058,0.578-0.11s0.353-0.142,0.564-0.265h0.327v0.736c0.334-0.264,0.596-0.439,0.784-0.53c0.288-0.138,0.562-0.206,0.823-0.206c0.179,0,0.354,0.033,0.526,0.099c0.171,0.065,0.31,0.146,0.414,0.243
+ c0.104,0.096,0.193,0.228,0.266,0.395c0.309-0.271,0.594-0.463,0.856-0.572s0.529-0.164,0.799-0.164c0.259,0,0.486,0.054,0.685,0.16c0.198,0.107,0.342,0.242,0.432,0.402c0.089,0.162,0.134,0.398,0.134,0.709v2.041c0,0.21,0.004,0.332,0.013,0.367
+ c0.015,0.055,0.046,0.106,0.094,0.155s0.103,0.083,0.163,0.104c0.062,0.021,0.175,0.03,0.34,0.03h0.14v0.375h-2.172v-0.375c0.243-0.003,0.401-0.021,0.473-0.054s0.126-0.087,0.161-0.162s0.053-0.222,0.053-0.44v-1.94c0-0.247-0.022-0.417-0.066-0.511
+ s-0.123-0.172-0.237-0.235c-0.113-0.063-0.254-0.095-0.422-0.095c-0.21,0-0.429,0.056-0.659,0.167c-0.307,0.153-0.548,0.324-0.725,0.515v2.1c0,0.199,0.009,0.329,0.028,0.391c0.019,0.063,0.051,0.114,0.096,0.155c0.046,0.042,0.098,0.071,0.158,0.087
+ c0.06,0.016,0.205,0.023,0.436,0.023v0.375h-2.141v-0.375h0.121c0.169,0,0.288-0.02,0.358-0.061c0.07-0.04,0.125-0.102,0.166-0.186c0.029-0.066,0.043-0.203,0.043-0.41v-1.875c0-0.275-0.021-0.462-0.064-0.559c-0.043-0.097-0.125-0.179-0.246-0.246
+ c-0.121-0.067-0.262-0.102-0.424-0.102c-0.192,0-0.385,0.047-0.58,0.142c-0.289,0.138-0.554,0.319-0.796,0.543v2.269c0,0.129,0.018,0.225,0.055,0.284c0.037,0.061,0.095,0.108,0.174,0.146c0.08,0.037,0.188,0.055,0.327,0.055h0.163v0.375h-2.203v-0.375h0.118
+ c0.201,0,0.333-0.016,0.397-0.048c0.093-0.043,0.16-0.112,0.201-0.207c0.023-0.052,0.035-0.186,0.035-0.401v-2.578h-0.766z"/>
+ <path d="M218.943,285.796l0.281,0.234c-0.214,0.252-0.421,0.452-0.621,0.6c-0.2,0.148-0.39,0.252-0.568,0.312c-0.178,0.06-0.388,0.089-0.627,0.089c-0.431,0-0.796-0.088-1.097-0.264c-0.345-0.202-0.61-0.466-0.794-0.791s-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.178-0.328,0.428-0.587,0.748-0.776c0.32-0.188,0.691-0.283,1.112-0.283c0.313,0,0.585,0.049,0.816,0.146s0.427,0.246,0.588,0.442c0.161,0.197,0.278,0.423,0.351,0.677c0.041,0.148,0.064,0.342,0.07,0.578h-3.096
+ c-0.009,0.145-0.013,0.252-0.013,0.322c0,0.37,0.064,0.7,0.192,0.989c0.129,0.29,0.299,0.503,0.51,0.64s0.452,0.205,0.72,0.205c0.228,0,0.448-0.053,0.661-0.159c0.213-0.106,0.472-0.313,0.775-0.622z M218.381,284.015c-0.044-0.269-0.106-0.467-0.186-0.596
+ c-0.08-0.128-0.194-0.23-0.341-0.307c-0.147-0.075-0.313-0.113-0.496-0.113c-0.184,0-0.356,0.038-0.517,0.113c-0.16,0.076-0.294,0.182-0.4,0.315c-0.106,0.135-0.199,0.33-0.277,0.587h2.218z"/>
+ <path d="M219.858,283.312v-0.359c0.213-0.018,0.403-0.054,0.57-0.107c0.167-0.055,0.356-0.145,0.57-0.268h0.329v0.836c0.208-0.256,0.45-0.46,0.725-0.61s0.523-0.226,0.743-0.226c0.217,0,0.389,0.051,0.515,0.153c0.126,0.102,0.189,0.226,0.189,0.371
+ c0,0.104-0.042,0.197-0.125,0.277c-0.083,0.08-0.184,0.12-0.301,0.12c-0.053,0-0.099-0.007-0.137-0.021c-0.038-0.014-0.094-0.045-0.167-0.092c-0.161-0.102-0.296-0.152-0.404-0.152c-0.146,0-0.308,0.062-0.483,0.184c-0.223,0.158-0.397,0.313-0.523,0.465v2.023
+ c0,0.174,0.009,0.291,0.028,0.353c0.019,0.063,0.049,0.116,0.092,0.16c0.043,0.045,0.096,0.077,0.159,0.098c0.063,0.021,0.173,0.03,0.33,0.03h0.141v0.375h-2.234v-0.375h0.185c0.176,0,0.291-0.016,0.345-0.048c0.075-0.043,0.13-0.103,0.166-0.18
+ c0.036-0.076,0.054-0.214,0.054-0.413v-2.594h-0.766z"/>
+ <path d="M223.786,283.312v-0.359c0.243-0.029,0.448-0.07,0.613-0.123c0.166-0.053,0.354-0.137,0.565-0.252h0.321v3.516c0,0.123,0.018,0.216,0.053,0.277s0.084,0.106,0.146,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375h-2.234v-0.375h0.178
+ c0.193,0,0.324-0.018,0.39-0.053s0.114-0.085,0.141-0.15c0.027-0.064,0.041-0.215,0.041-0.453v-2.578h-0.766z M224.903,280.593c0.14,0,0.26,0.049,0.359,0.145c0.099,0.098,0.149,0.215,0.149,0.354s-0.05,0.257-0.149,0.354c-0.099,0.099-0.219,0.147-0.359,0.147
+ s-0.26-0.049-0.359-0.147c-0.099-0.098-0.148-0.216-0.148-0.354s0.05-0.256,0.148-0.354c0.1-0.096,0.219-0.145,0.359-0.145z"/>
+ <path d="M230.422,285.703l0.281,0.229c-0.551,0.732-1.212,1.1-1.983,1.1c-0.601,0-1.108-0.214-1.521-0.642c-0.414-0.428-0.62-0.96-0.62-1.596c0-0.425,0.096-0.807,0.288-1.146c0.191-0.338,0.458-0.602,0.8-0.789s0.733-0.281,1.176-0.281
+ c0.504,0,0.925,0.124,1.262,0.373c0.337,0.248,0.506,0.498,0.506,0.751c0,0.135-0.04,0.239-0.119,0.313c-0.08,0.073-0.169,0.11-0.27,0.11c-0.053,0-0.104-0.014-0.154-0.04c-0.05-0.027-0.102-0.07-0.154-0.13c-0.024-0.027-0.066-0.111-0.128-0.252
+ c-0.08-0.173-0.141-0.289-0.185-0.349c-0.092-0.12-0.204-0.214-0.338-0.282c-0.134-0.069-0.283-0.104-0.448-0.104c-0.25,0-0.482,0.069-0.695,0.208c-0.213,0.138-0.383,0.342-0.508,0.611s-0.188,0.592-0.188,0.966c0,0.58,0.154,1.041,0.464,1.383
+ c0.268,0.294,0.588,0.441,0.959,0.441c0.171,0,0.344-0.028,0.519-0.085c0.175-0.058,0.341-0.142,0.497-0.252c0.115-0.079,0.302-0.258,0.561-0.538z"/>
+ <path d="M234.378,284.406l-0.01-0.486c0-0.33-0.09-0.566-0.271-0.708S233.66,283,233.33,283c-0.164,0-0.307,0.021-0.429,0.061c-0.123,0.04-0.222,0.096-0.296,0.166s-0.129,0.15-0.164,0.239c-0.015,0.033-0.05,0.16-0.105,0.381
+ c-0.067,0.269-0.203,0.403-0.407,0.403c-0.117,0-0.211-0.039-0.283-0.118c-0.071-0.079-0.107-0.186-0.107-0.319c0-0.197,0.072-0.391,0.215-0.579c0.143-0.189,0.362-0.346,0.656-0.47c0.294-0.123,0.642-0.186,1.042-0.186c0.375,0,0.695,0.059,0.961,0.174
+ s0.462,0.282,0.588,0.499c0.087,0.149,0.131,0.422,0.131,0.817v1.692c0,0.24,0.007,0.397,0.022,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.294-0.031,0.481-0.093v0.379c-0.243,0.069-0.461,0.104-0.654,0.104
+ c-0.208,0-0.383-0.029-0.524-0.087c-0.143-0.059-0.259-0.144-0.35-0.256s-0.149-0.245-0.175-0.399c-0.351,0.273-0.668,0.466-0.952,0.576c-0.284,0.11-0.57,0.166-0.86,0.166c-0.403,0-0.731-0.108-0.982-0.326c-0.252-0.218-0.377-0.473-0.377-0.766
+ c0-0.178,0.046-0.346,0.138-0.506c0.093-0.159,0.233-0.3,0.422-0.422c0.189-0.121,0.486-0.229,0.89-0.322c0.405-0.092,0.966-0.177,1.685-0.252z M234.369,284.765c-0.68,0.1-1.101,0.169-1.262,0.207c-0.319,0.073-0.548,0.154-0.686,0.242s-0.236,0.183-0.294,0.283
+ c-0.059,0.102-0.088,0.21-0.088,0.324s0.033,0.225,0.099,0.332c0.066,0.107,0.159,0.191,0.28,0.254c0.121,0.061,0.248,0.092,0.383,0.092c0.191,0,0.407-0.045,0.647-0.137c0.241-0.091,0.55-0.269,0.926-0.533l-0.006-1.064z"/>
+ <path d="M236.417,283.312v-0.359c0.262-0.029,0.458-0.065,0.588-0.107c0.13-0.041,0.317-0.131,0.562-0.268h0.319v0.854c0.386-0.332,0.716-0.558,0.989-0.676s0.55-0.178,0.832-0.178c0.239,0,0.452,0.04,0.636,0.121c0.185,0.08,0.334,0.189,0.45,0.327
+ c0.115,0.138,0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.05,0.44s0.087,0.112,0.16,0.142c0.073,0.028,0.253,0.043,0.54,0.043v0.375h-2.234v-0.375h0.12c0.206,0,0.345-0.02,0.419-0.057
+ c0.074-0.039,0.128-0.094,0.161-0.167c0.033-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688c-0.055-0.128-0.147-0.231-0.278-0.312c-0.131-0.079-0.297-0.119-0.497-0.119c-0.239,0-0.493,0.061-0.764,0.182
+ c-0.271,0.121-0.533,0.299-0.786,0.535v2.002c0,0.229,0.016,0.381,0.049,0.457s0.087,0.133,0.162,0.171c0.052,0.029,0.189,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.217,0,0.366-0.019,0.446-0.055c0.079-0.037,0.135-0.102,0.167-0.196
+ c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path d="M245.54,284.406l-0.01-0.486c0-0.33-0.09-0.566-0.271-0.708S244.822,283,244.492,283c-0.164,0-0.307,0.021-0.429,0.061c-0.123,0.04-0.222,0.096-0.296,0.166s-0.129,0.15-0.164,0.239c-0.015,0.033-0.05,0.16-0.105,0.381
+ c-0.067,0.269-0.203,0.403-0.407,0.403c-0.117,0-0.211-0.039-0.283-0.118c-0.071-0.079-0.107-0.186-0.107-0.319c0-0.197,0.072-0.391,0.215-0.579c0.143-0.189,0.362-0.346,0.656-0.47c0.294-0.123,0.642-0.186,1.042-0.186c0.375,0,0.695,0.059,0.961,0.174
+ s0.462,0.282,0.588,0.499c0.087,0.149,0.131,0.422,0.131,0.817v1.692c0,0.24,0.007,0.397,0.022,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.185,0.095,0.313,0.095c0.134,0,0.294-0.031,0.481-0.093v0.379c-0.243,0.069-0.461,0.104-0.654,0.104
+ c-0.208,0-0.383-0.029-0.524-0.087c-0.143-0.059-0.259-0.144-0.35-0.256s-0.149-0.245-0.175-0.399c-0.351,0.273-0.668,0.466-0.952,0.576c-0.284,0.11-0.57,0.166-0.86,0.166c-0.403,0-0.731-0.108-0.982-0.326c-0.252-0.218-0.377-0.473-0.377-0.766
+ c0-0.178,0.046-0.346,0.138-0.506c0.093-0.159,0.233-0.3,0.422-0.422c0.189-0.121,0.486-0.229,0.89-0.322c0.405-0.092,0.966-0.177,1.685-0.252z M245.531,284.765c-0.68,0.1-1.101,0.169-1.262,0.207c-0.319,0.073-0.548,0.154-0.686,0.242s-0.236,0.183-0.294,0.283
+ c-0.059,0.102-0.088,0.21-0.088,0.324s0.033,0.225,0.099,0.332c0.066,0.107,0.159,0.191,0.28,0.254c0.121,0.061,0.248,0.092,0.383,0.092c0.191,0,0.407-0.045,0.647-0.137c0.241-0.091,0.55-0.269,0.926-0.533l-0.006-1.064z"/>
+ <path d="M199.024,290.203v-0.359c0.199-0.018,0.382-0.053,0.548-0.105c0.166-0.052,0.373-0.142,0.623-0.27h0.33v5.344c0,0.242,0.006,0.389,0.018,0.44c0.028,0.109,0.077,0.187,0.146,0.229c0.069,0.043,0.203,0.064,0.401,0.064h0.185v0.375L199.759,296v-0.705
+ c-0.291,0.268-0.564,0.457-0.819,0.568c-0.255,0.112-0.511,0.168-0.767,0.168c-0.527,0-0.965-0.213-1.313-0.64s-0.522-0.94-0.522-1.541c0-0.428,0.093-0.819,0.277-1.176c0.186-0.355,0.429-0.628,0.732-0.815c0.303-0.188,0.635-0.281,0.996-0.281
+ c0.277,0,0.533,0.048,0.77,0.143c0.236,0.095,0.451,0.237,0.646,0.428v-1.945h-0.734z M199.759,294.859v-1.666c0-0.238-0.044-0.434-0.133-0.584c-0.089-0.152-0.235-0.283-0.438-0.395c-0.202-0.112-0.41-0.168-0.622-0.168c-0.254,0-0.487,0.07-0.702,0.209
+ c-0.214,0.141-0.381,0.342-0.502,0.604s-0.182,0.581-0.182,0.954c0,0.353,0.056,0.657,0.168,0.914c0.112,0.258,0.263,0.453,0.452,0.587s0.383,0.2,0.582,0.2c0.195,0,0.416-0.057,0.664-0.17c0.247-0.113,0.485-0.275,0.712-0.486z"/>
+ <path d="M205.621,294.796l0.281,0.234c-0.213,0.252-0.42,0.452-0.621,0.6c-0.201,0.148-0.39,0.252-0.568,0.312s-0.388,0.089-0.627,0.089c-0.43,0-0.796-0.088-1.097-0.264c-0.346-0.202-0.61-0.466-0.795-0.791c-0.184-0.325-0.276-0.709-0.276-1.152
+ c0-0.463,0.089-0.858,0.268-1.187c0.179-0.328,0.428-0.587,0.748-0.776c0.32-0.188,0.691-0.283,1.112-0.283c0.313,0,0.585,0.049,0.816,0.146c0.23,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.277,0.423,0.351,0.677c0.041,0.148,0.064,0.342,0.07,0.578h-3.096
+ c-0.009,0.145-0.014,0.252-0.014,0.322c0,0.37,0.064,0.7,0.193,0.989c0.128,0.29,0.298,0.503,0.51,0.64c0.211,0.137,0.452,0.205,0.72,0.205c0.228,0,0.448-0.053,0.661-0.159s0.471-0.313,0.775-0.622z M205.059,293.015c-0.044-0.269-0.105-0.467-0.186-0.596
+ c-0.08-0.128-0.194-0.23-0.341-0.307c-0.147-0.075-0.313-0.113-0.497-0.113s-0.356,0.038-0.517,0.113c-0.16,0.076-0.293,0.182-0.4,0.315c-0.106,0.135-0.199,0.33-0.278,0.587h2.218z"/>
+ <path d="M209.57,289.796h4.703l0.563,1.605l-0.375,0.145c-0.162-0.379-0.321-0.652-0.478-0.818c-0.157-0.166-0.338-0.285-0.545-0.355c-0.206-0.072-0.531-0.107-0.974-0.107h-1.332v2.359h0.605c0.318,0,0.546-0.03,0.685-0.092c0.139-0.061,0.245-0.158,0.318-0.29
+ c0.074-0.133,0.11-0.321,0.11-0.565v-0.162h0.438v2.688h-0.438v-0.236c0-0.231-0.035-0.411-0.106-0.54s-0.167-0.222-0.29-0.278c-0.122-0.058-0.339-0.086-0.651-0.086h-0.672v1.906c0,0.176,0.018,0.297,0.054,0.365c0.036,0.069,0.089,0.122,0.16,0.158
+ c0.07,0.037,0.196,0.055,0.377,0.055h0.159v0.375h-2.313v-0.375h0.15c0.188,0,0.318-0.018,0.39-0.053s0.125-0.09,0.159-0.165c0.034-0.075,0.051-0.21,0.051-0.407v-4.156c0-0.182-0.016-0.31-0.048-0.383c-0.033-0.073-0.082-0.127-0.148-0.16
+ c-0.066-0.034-0.182-0.051-0.346-0.051h-0.208v-0.375z"/>
+ <path d="M214.957,291.671l1.656-0.063v2.834c0,0.25,0.034,0.448,0.103,0.595s0.174,0.261,0.317,0.341c0.142,0.081,0.309,0.121,0.5,0.121c0.235,0,0.5-0.063,0.798-0.189c0.298-0.126,0.595-0.313,0.892-0.563v-2.06c0-0.213-0.017-0.354-0.048-0.42
+ c-0.032-0.066-0.089-0.119-0.17-0.16c-0.082-0.04-0.21-0.061-0.385-0.061h-0.318v-0.375l1.672-0.063v3.281c0,0.21,0.018,0.355,0.053,0.436s0.088,0.137,0.157,0.17c0.069,0.034,0.209,0.051,0.418,0.051h0.138l-0.016,0.375L219.27,296v-0.816
+ c-0.401,0.32-0.751,0.542-1.05,0.664c-0.299,0.122-0.602,0.184-0.909,0.184c-0.229,0-0.427-0.031-0.595-0.093s-0.316-0.153-0.444-0.277c-0.127-0.123-0.225-0.271-0.292-0.444c-0.067-0.174-0.101-0.359-0.101-0.556v-2.005c0-0.178-0.017-0.303-0.049-0.375
+ c-0.032-0.071-0.086-0.128-0.161-0.171c-0.075-0.042-0.177-0.063-0.307-0.063h-0.405v-0.375z M217.004,290.781v-0.156l0.814-0.588c0.279-0.201,0.513-0.303,0.701-0.303c0.088,0,0.162,0.031,0.222,0.094c0.061,0.063,0.091,0.14,0.091,0.232
+ c0,0.112-0.042,0.206-0.124,0.279c-0.083,0.074-0.231,0.135-0.445,0.181l-1.26,0.261z"/>
+ <path d="M222.469,290.187h0.313v1.5h1.313v0.438h-1.313v2.654c0,0.227,0.02,0.388,0.06,0.484c0.04,0.097,0.108,0.176,0.204,0.238c0.096,0.061,0.203,0.092,0.321,0.092c0.281,0,0.591-0.125,0.931-0.375v0.424c-0.386,0.26-0.776,0.389-1.171,0.389
+ c-0.225,0-0.427-0.05-0.608-0.149c-0.181-0.1-0.305-0.217-0.371-0.352s-0.1-0.369-0.1-0.703v-2.702h-0.766v-0.367c0.246-0.056,0.443-0.143,0.594-0.26c0.15-0.118,0.272-0.271,0.366-0.459c0.093-0.188,0.169-0.473,0.228-0.852z"/>
+ <path d="M224.653,290.203v-0.359c0.195-0.015,0.384-0.051,0.566-0.107c0.182-0.057,0.385-0.146,0.61-0.268h0.324v2.685c0.258-0.191,0.523-0.335,0.796-0.432c0.272-0.096,0.551-0.144,0.835-0.144c0.328,0,0.632,0.088,0.91,0.264s0.497,0.425,0.657,0.745
+ c0.159,0.321,0.239,0.7,0.239,1.137c0,0.686-0.201,1.25-0.603,1.692c-0.372,0.41-0.844,0.615-1.416,0.615c-0.343,0-0.649-0.07-0.919-0.21c-0.2-0.103-0.394-0.262-0.581-0.476l-0.242,0.576h-0.412v-5.719h-0.766z M226.153,292.591v1.705
+ c0,0.268,0.019,0.456,0.057,0.564c0.038,0.107,0.116,0.218,0.234,0.332c0.118,0.113,0.257,0.203,0.416,0.27s0.323,0.1,0.492,0.1c0.259,0,0.496-0.069,0.708-0.208s0.38-0.344,0.503-0.615s0.184-0.598,0.184-0.979c0-0.534-0.13-0.962-0.389-1.284
+ c-0.208-0.266-0.498-0.398-0.871-0.398c-0.192,0-0.388,0.036-0.586,0.108s-0.447,0.208-0.748,0.405z"/>
+ <path d="M232.532,291.578c0.428,0,0.799,0.09,1.112,0.269s0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.092,0.831-0.277,1.174s-0.438,0.604-0.756,0.784c-0.319,0.181-0.7,0.271-1.143,0.271c-0.705,0-1.235-0.221-1.589-0.664
+ c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.441-0.602,0.771-0.787c0.331-0.186,0.706-0.279,1.126-0.279z M232.49,292c-0.334,0-0.616,0.133-0.848,0.396c-0.293,0.329-0.439,0.809-0.439,1.438
+ c0,0.605,0.125,1.066,0.374,1.384c0.226,0.282,0.532,0.423,0.918,0.423c0.249,0,0.471-0.066,0.665-0.198c0.195-0.132,0.353-0.343,0.473-0.633c0.12-0.289,0.18-0.629,0.18-1.021c0-0.381-0.064-0.724-0.193-1.026c-0.1-0.241-0.249-0.429-0.45-0.562
+ c-0.2-0.135-0.427-0.201-0.679-0.201z"/>
+ <path d="M235.275,290.203v-0.359c0.401-0.029,0.792-0.154,1.172-0.375h0.328v5.422c0,0.225,0.015,0.365,0.044,0.423c0.039,0.081,0.095,0.14,0.169,0.177c0.074,0.038,0.216,0.057,0.426,0.057h0.143v0.375h-2.266v-0.375h0.228c0.144,0,0.251-0.021,0.322-0.064
+ c0.072-0.043,0.123-0.102,0.154-0.176s0.046-0.224,0.046-0.447v-4.656h-0.766z"/>
+ </g>
+ <g>
+ </g>
+ <g>
+ </g>
+ <g style="fill:#000000;stroke:none;">
+ <path d="M562.441,306.576l-1.778,0.156c-0.064-0.304-0.097-0.594-0.097-0.868c0-0.842,0.199-1.574,0.598-2.197c0.398-0.622,1.012-1.138,1.841-1.544s1.75-0.609,2.764-0.609c0.932,0,1.773,0.178,2.525,0.531c0.754,0.355,1.32,0.813,1.701,1.375
+ s0.571,1.154,0.571,1.775c0,0.627-0.135,1.213-0.403,1.758c-0.299,0.609-0.787,1.197-1.463,1.766s-2.038,1.479-4.086,2.732h2.947c0.479,0,0.783-0.025,0.912-0.074c0.129-0.051,0.24-0.148,0.334-0.295s0.172-0.399,0.236-0.758l0.07-0.404h1.702l-0.8,4.5h-1.159
+ l-0.105-0.438h-8.092v-1.695c1.19-0.773,2.702-1.916,4.532-3.428c0.938-0.773,1.563-1.441,1.875-2.004c0.229-0.41,0.343-0.84,0.343-1.291c0-0.521-0.216-0.963-0.647-1.322c-0.432-0.361-1.01-0.541-1.731-0.541c-0.534,0-0.999,0.098-1.393,0.294
+ s-0.702,0.475-0.925,0.837c-0.224,0.362-0.335,0.745-0.335,1.148c0,0.146,0.021,0.345,0.063,0.596z"/>
+ <path d="M577.672,301.513c1.091,0,2.03,0.239,2.819,0.717s1.406,1.164,1.852,2.057c0.445,0.895,0.669,2.033,0.669,3.416c0,1.561-0.206,2.762-0.616,3.605c-0.463,0.955-1.089,1.677-1.878,2.163s-1.758,0.729-2.907,0.729c-1.12,0-2.066-0.236-2.837-0.707
+ c-0.771-0.473-1.383-1.17-1.835-2.094c-0.451-0.922-0.677-2.1-0.677-3.529c0-1.437,0.224-2.61,0.673-3.521c0.449-0.912,1.072-1.612,1.869-2.102c0.798-0.489,1.754-0.734,2.868-0.734z M579.918,307.861c0-1.609-0.235-2.775-0.704-3.498
+ c-0.417-0.629-0.965-0.943-1.643-0.943c-0.625,0-1.151,0.332-1.577,0.996s-0.639,1.813-0.639,3.445c0,1.635,0.214,2.781,0.644,3.442c0.428,0.661,0.967,0.991,1.616,0.991c0.654,0,1.202-0.339,1.642-1.018c0.441-0.679,0.661-1.816,0.661-3.416z"/>
+ <path d="M589.555,301.513c1.091,0,2.03,0.239,2.819,0.717s1.406,1.164,1.852,2.057c0.445,0.895,0.669,2.033,0.669,3.416c0,1.561-0.206,2.762-0.616,3.605c-0.463,0.955-1.089,1.677-1.878,2.163s-1.758,0.729-2.907,0.729c-1.12,0-2.066-0.236-2.837-0.707
+ c-0.771-0.473-1.383-1.17-1.835-2.094c-0.451-0.922-0.677-2.1-0.677-3.529c0-1.437,0.224-2.61,0.673-3.521c0.449-0.912,1.072-1.612,1.869-2.102c0.798-0.489,1.754-0.734,2.868-0.734z M591.801,307.861c0-1.609-0.235-2.775-0.704-3.498
+ c-0.417-0.629-0.965-0.943-1.643-0.943c-0.625,0-1.151,0.332-1.577,0.996s-0.639,1.813-0.639,3.445c0,1.635,0.214,2.781,0.644,3.442c0.428,0.661,0.967,0.991,1.616,0.991c0.654,0,1.202-0.339,1.642-1.018c0.441-0.679,0.661-1.816,0.661-3.416z"/>
+ <path d="M598.09,306.576l-1.778,0.156c-0.064-0.304-0.097-0.594-0.097-0.868c0-0.842,0.199-1.574,0.598-2.197c0.398-0.622,1.012-1.138,1.841-1.544s1.75-0.609,2.764-0.609c0.932,0,1.773,0.178,2.525,0.531c0.754,0.355,1.32,0.813,1.701,1.375
+ s0.571,1.154,0.571,1.775c0,0.627-0.135,1.213-0.403,1.758c-0.299,0.609-0.787,1.197-1.463,1.766s-2.038,1.479-4.086,2.732h2.947c0.479,0,0.783-0.025,0.912-0.074c0.129-0.051,0.24-0.148,0.334-0.295s0.172-0.399,0.236-0.758l0.07-0.404h1.702l-0.8,4.5h-1.159
+ l-0.105-0.438h-8.092v-1.695c1.19-0.773,2.702-1.916,4.532-3.428c0.938-0.773,1.563-1.441,1.875-2.004c0.229-0.41,0.343-0.84,0.343-1.291c0-0.521-0.216-0.963-0.647-1.322c-0.432-0.361-1.01-0.541-1.731-0.541c-0.534,0-0.999,0.098-1.393,0.294
+ s-0.702,0.475-0.925,0.837c-0.224,0.362-0.335,0.745-0.335,1.148c0,0.146,0.021,0.345,0.063,0.596z"/>
+ <path d="M538.759,318.451h4.203v1.313c-0.27,0-0.437,0.01-0.503,0.027c-0.066,0.019-0.123,0.059-0.171,0.12s-0.072,0.131-0.072,0.208c0,0.068,0.03,0.217,0.09,0.445l1.271,4.917l1.115-3.504l-0.428-1.412c-0.014-0.032-0.032-0.089-0.055-0.171
+ c-0.06-0.225-0.148-0.383-0.267-0.477s-0.29-0.145-0.513-0.154v-1.313h3.984v1.313h-0.32c-0.231,0-0.381,0.027-0.449,0.082c-0.096,0.078-0.144,0.176-0.144,0.295c0,0.086,0.034,0.262,0.103,0.526l1.136,4.388l1.171-4.385c0.087-0.32,0.131-0.511,0.131-0.57
+ c0-0.109-0.042-0.193-0.125-0.25s-0.24-0.086-0.474-0.086h-0.356v-1.313h3.625v1.313c-0.256,0-0.439,0.026-0.549,0.079c-0.11,0.052-0.202,0.134-0.276,0.243s-0.163,0.34-0.266,0.691l-2.112,7.205h-2.078l-1.115-3.817l-1.197,3.817h-2.141l-2.133-7.314
+ c-0.092-0.319-0.172-0.526-0.24-0.62c-0.069-0.094-0.164-0.165-0.285-0.216c-0.122-0.05-0.309-0.072-0.561-0.068v-1.313z"/>
+ <path d="M557.448,318.294c1.513,0,2.737,0.459,3.674,1.378s1.405,2.099,1.405,3.541c0,0.969-0.214,1.828-0.643,2.578c-0.429,0.751-1.021,1.329-1.774,1.736s-1.665,0.61-2.731,0.61c-1.408,0-2.562-0.387-3.459-1.16c-1.085-0.932-1.627-2.178-1.627-3.738
+ c0-1.45,0.476-2.637,1.425-3.561c0.951-0.923,2.193-1.385,3.73-1.385z M557.476,319.81c-0.727,0-1.305,0.271-1.733,0.812c-0.539,0.683-0.809,1.562-0.809,2.64c0,1.077,0.251,1.93,0.754,2.557c0.434,0.537,1.007,0.805,1.72,0.805c0.717,0,1.29-0.268,1.719-0.805
+ c0.507-0.641,0.761-1.498,0.761-2.57c0-0.755-0.108-1.39-0.325-1.903s-0.511-0.897-0.881-1.152s-0.771-0.382-1.205-0.382z"/>
+ <path d="M563.49,318.451h5.881c0.378,0,0.792,0.034,1.241,0.103c0.448,0.068,0.854,0.219,1.217,0.45c0.362,0.232,0.644,0.526,0.845,0.881c0.2,0.355,0.301,0.756,0.301,1.202c0,0.724-0.259,1.311-0.776,1.759s-1.129,0.741-1.836,0.877l1.968,2.289l0.083,0.104
+ c0.127,0.155,0.244,0.271,0.35,0.346c0.104,0.075,0.21,0.129,0.314,0.161c0.105,0.032,0.252,0.048,0.439,0.048h0.411v1.313h-3.063l-3.066-4.109h-0.793v1.906c0,0.328,0.019,0.537,0.055,0.627c0.037,0.089,0.096,0.155,0.176,0.199
+ c0.08,0.043,0.242,0.064,0.485,0.064h0.44v1.313h-4.672v-1.313h0.429c0.227,0,0.387-0.023,0.481-0.072c0.095-0.047,0.165-0.119,0.212-0.215c0.022-0.055,0.034-0.226,0.034-0.513V320.5c0-0.209-0.018-0.358-0.052-0.447c-0.035-0.089-0.092-0.147-0.17-0.175
+ c-0.11-0.05-0.237-0.075-0.381-0.075l-0.193,0.007h-0.36v-1.359z M567.006,320.013v2.469h1.418c0.557,0,0.974-0.051,1.25-0.154c0.276-0.102,0.483-0.249,0.623-0.44s0.209-0.424,0.209-0.698c0-0.25-0.065-0.466-0.195-0.646c-0.13-0.181-0.315-0.313-0.555-0.4
+ s-0.632-0.13-1.175-0.13h-1.575z"/>
+ <path d="M574.485,318.451h4.672v1.313h-0.41c-0.229,0-0.372,0.012-0.432,0.034c-0.109,0.046-0.189,0.115-0.239,0.208c-0.05,0.094-0.075,0.243-0.075,0.448v5.445c0,0.219,0.01,0.354,0.031,0.403c0.02,0.051,0.063,0.09,0.126,0.119
+ c0.063,0.03,0.187,0.045,0.369,0.045c0.61,0,1.102-0.08,1.474-0.239c0.371-0.159,0.706-0.415,1.004-0.769c0.299-0.354,0.555-0.832,0.77-1.438l1.258,0.431l-1.26,3.531h-7.287v-1.313h0.459c0.187,0,0.328-0.025,0.424-0.075s0.165-0.117,0.209-0.202
+ c0.043-0.084,0.064-0.231,0.064-0.441v-5.407c0-0.228-0.021-0.393-0.064-0.493c-0.044-0.1-0.105-0.173-0.186-0.219c-0.08-0.045-0.213-0.068-0.4-0.068h-0.506v-1.313z"/>
+ <path d="M583.385,318.451h5.013c1.139,0,2.044,0.18,2.717,0.54c0.672,0.359,1.208,0.893,1.607,1.599c0.4,0.706,0.601,1.554,0.601,2.542c0,0.688-0.102,1.303-0.306,1.845c-0.203,0.542-0.506,1.03-0.908,1.465c-0.402,0.436-0.835,0.762-1.297,0.98
+ c-0.348,0.164-0.84,0.299-1.478,0.403s-1.148,0.157-1.532,0.157h-4.417v-1.313h0.332c0.282,0,0.466-0.022,0.554-0.068s0.16-0.123,0.215-0.232c0.037-0.087,0.056-0.276,0.056-0.568v-5.216c0-0.292-0.02-0.479-0.059-0.564c-0.04-0.085-0.104-0.148-0.194-0.191
+ c-0.09-0.044-0.28-0.065-0.571-0.065h-0.332v-1.313z M586.9,319.966v5.951c0,0.201,0.011,0.324,0.034,0.37c0.037,0.069,0.09,0.116,0.161,0.142c0.07,0.024,0.24,0.037,0.51,0.037c0.749,0,1.334-0.115,1.756-0.347c0.423-0.231,0.764-0.602,1.023-1.112
+ c0.261-0.51,0.391-1.117,0.391-1.822c0-0.695-0.122-1.301-0.366-1.815s-0.547-0.877-0.907-1.088c-0.36-0.21-0.876-0.315-1.547-0.315H586.9z"/>
+ <path d="M606.431,318.451h0.97l0.936,3.422l-1.271,0.369c-0.424-0.813-0.823-1.389-1.196-1.73c-0.52-0.467-1.082-0.701-1.688-0.701c-0.442,0-0.855,0.123-1.241,0.368c-0.385,0.245-0.689,0.606-0.916,1.083c-0.225,0.477-0.338,1.035-0.338,1.676
+ c0,0.977,0.259,1.816,0.775,2.521c0.518,0.704,1.195,1.056,2.034,1.056c0.533,0,1.046-0.152,1.538-0.457c0.615-0.377,1.146-0.883,1.593-1.519l1.06,0.786c-0.688,0.938-1.315,1.592-1.885,1.961c-0.879,0.568-1.857,0.854-2.936,0.854
+ c-0.896,0-1.708-0.215-2.435-0.645c-0.726-0.43-1.305-1.031-1.737-1.805c-0.433-0.772-0.648-1.616-0.648-2.53c0-0.909,0.211-1.738,0.631-2.486c0.422-0.748,0.995-1.332,1.721-1.75c0.727-0.419,1.535-0.628,2.428-0.628c0.905,0,1.699,0.189,2.383,0.568
+ l0.225-0.412z"/>
+ <path d="M609.166,318.451h4.672v1.313h-0.456c-0.208,0-0.357,0.025-0.445,0.075s-0.153,0.122-0.193,0.215c-0.041,0.093-0.062,0.283-0.062,0.569v3.468c0,0.646,0.065,1.128,0.194,1.446c0.131,0.319,0.326,0.562,0.588,0.728s0.58,0.249,0.953,0.249
+ c0.374,0,0.707-0.091,0.998-0.273c0.291-0.182,0.5-0.412,0.625-0.692c0.126-0.279,0.188-0.743,0.188-1.389v-3.822c0-0.159-0.021-0.272-0.063-0.341c-0.056-0.092-0.13-0.155-0.224-0.191c-0.064-0.027-0.229-0.041-0.494-0.041h-0.376v-1.313h3.953v1.313h-0.304
+ c-0.303,0-0.49,0.019-0.562,0.055c-0.108,0.055-0.188,0.135-0.237,0.239c-0.035,0.068-0.054,0.257-0.054,0.567v3.757c0,0.692-0.101,1.272-0.302,1.741c-0.278,0.639-0.723,1.134-1.332,1.486c-0.609,0.354-1.332,0.529-2.167,0.529c-0.589,0-1.116-0.09-1.582-0.27
+ s-0.873-0.438-1.223-0.771c-0.349-0.335-0.594-0.689-0.732-1.063c-0.14-0.374-0.209-0.925-0.209-1.653v-3.683c0-0.336-0.019-0.554-0.056-0.652c-0.036-0.098-0.096-0.169-0.179-0.215c-0.082-0.045-0.243-0.068-0.481-0.068h-0.44v-1.313z"/>
+ <path d="M619.819,318.451h5.044c0.639,0,1.169,0.064,1.592,0.194c0.422,0.13,0.784,0.327,1.088,0.591c0.304,0.265,0.537,0.577,0.702,0.939c0.164,0.361,0.246,0.745,0.246,1.15c0,0.814-0.313,1.498-0.939,2.049s-1.49,0.826-2.592,0.826h-1.625v1.79
+ c0,0.224,0.016,0.366,0.048,0.425c0.042,0.087,0.104,0.151,0.189,0.192s0.229,0.062,0.431,0.062h0.488v1.313h-4.672v-1.313h0.325c0.286,0,0.476-0.021,0.567-0.062c0.093-0.041,0.16-0.106,0.201-0.195c0.042-0.089,0.063-0.272,0.063-0.551v-5.25
+ c0-0.292-0.019-0.484-0.056-0.578s-0.096-0.162-0.177-0.205c-0.08-0.044-0.234-0.065-0.46-0.065h-0.464v-1.313z M623.335,319.998v2.719h0.811c0.496,0,0.859-0.051,1.091-0.154s0.418-0.261,0.56-0.474c0.141-0.213,0.211-0.466,0.211-0.759
+ c0-0.439-0.168-0.787-0.504-1.044c-0.25-0.192-0.621-0.288-1.111-0.288h-1.057z"/>
+ <path style="fill:#FB0F0C;" d="M547.881,331.81h3.984v1.125h-0.336c-0.228,0-0.378,0.019-0.448,0.056s-0.122,0.095-0.153,0.173s-0.047,0.256-0.047,0.533v3.277c0,0.513-0.027,0.886-0.082,1.12c-0.074,0.336-0.252,0.669-0.533,0.997
+ c-0.28,0.328-0.641,0.582-1.08,0.762s-0.964,0.27-1.572,0.27c-0.651,0-1.207-0.111-1.666-0.334c-0.459-0.222-0.819-0.527-1.08-0.918c-0.262-0.39-0.393-0.791-0.393-1.205c0-0.379,0.111-0.688,0.333-0.93c0.223-0.242,0.498-0.363,0.826-0.363
+ c0.199,0,0.367,0.038,0.506,0.115c0.139,0.076,0.25,0.192,0.334,0.348s0.126,0.321,0.126,0.498v0.384c0,0.216,0.051,0.423,0.153,0.619c0.074,0.146,0.197,0.264,0.367,0.354c0.171,0.091,0.364,0.136,0.58,0.136c0.282,0,0.521-0.082,0.718-0.247
+ s0.325-0.383,0.389-0.653c0.039-0.156,0.059-0.482,0.059-0.977v-3.407c0-0.173-0.008-0.284-0.023-0.336c-0.032-0.098-0.086-0.167-0.163-0.209c-0.077-0.041-0.211-0.062-0.4-0.062h-0.397v-1.125z"/>
+ <path style="fill:#FB0F0C;" d="M556.109,336.435v-0.431c0-0.256-0.021-0.432-0.064-0.528c-0.042-0.098-0.12-0.178-0.232-0.242c-0.112-0.063-0.253-0.096-0.419-0.096c-0.129,0-0.245,0.021-0.35,0.063c-0.105,0.043-0.188,0.097-0.25,0.163
+ c-0.063,0.065-0.135,0.193-0.216,0.382c-0.105,0.24-0.231,0.412-0.378,0.517s-0.318,0.156-0.518,0.156c-0.25,0-0.455-0.078-0.614-0.233c-0.16-0.155-0.24-0.349-0.24-0.578c0-0.261,0.082-0.491,0.246-0.694c0.218-0.268,0.544-0.488,0.978-0.659
+ s0.921-0.257,1.464-0.257c0.542,0,1.004,0.088,1.385,0.264c0.38,0.176,0.646,0.386,0.796,0.63s0.226,0.616,0.226,1.116v2.098c0,0.258,0.014,0.423,0.041,0.495s0.085,0.136,0.175,0.19s0.189,0.082,0.299,0.082s0.255-0.031,0.438-0.094v1.139
+ c-0.331,0.105-0.649,0.158-0.954,0.158c-0.358,0-0.665-0.059-0.918-0.176c-0.254-0.116-0.467-0.291-0.638-0.525c-0.39,0.254-0.744,0.434-1.062,0.541c-0.318,0.106-0.625,0.16-0.922,0.16c-0.558,0-1.008-0.157-1.352-0.472c-0.343-0.314-0.515-0.702-0.515-1.164
+ c0-0.262,0.06-0.502,0.178-0.721c0.119-0.219,0.296-0.411,0.531-0.575s0.599-0.31,1.091-0.437s1.09-0.218,1.794-0.272z M556.109,337.404c-0.508,0.074-0.866,0.148-1.075,0.224s-0.358,0.171-0.447,0.285c-0.09,0.114-0.134,0.231-0.134,0.352
+ c0,0.155,0.058,0.284,0.175,0.39c0.115,0.104,0.272,0.156,0.471,0.156c0.127,0,0.275-0.033,0.444-0.099c0.168-0.065,0.357-0.163,0.566-0.291v-1.017z"/>
+ <path style="fill:#FB0F0C;" d="M562.086,333.998v0.656c0.443-0.275,0.782-0.454,1.019-0.535c0.234-0.08,0.486-0.121,0.755-0.121c0.681,0,1.235,0.252,1.663,0.756c0.49,0.577,0.735,1.315,0.735,2.213c0,0.859-0.215,1.577-0.644,2.155
+ c-0.492,0.667-1.151,1.001-1.979,1.001c-0.266,0-0.498-0.03-0.697-0.091s-0.415-0.171-0.649-0.331v1.179c0,0.235,0.012,0.376,0.035,0.423c0.026,0.059,0.07,0.101,0.131,0.126c0.06,0.025,0.21,0.038,0.451,0.038h0.273v1.125h-3.641v-1.125h0.2
+ c0.27,0,0.434-0.011,0.49-0.032s0.102-0.066,0.135-0.135s0.05-0.208,0.05-0.418v-5.243h-0.875v-1.141c0.425-0.051,0.786-0.113,1.085-0.188c0.299-0.074,0.602-0.179,0.908-0.312h0.554z M562.289,335.826v1.908c0,0.301,0.028,0.516,0.085,0.643
+ c0.057,0.128,0.154,0.232,0.292,0.313c0.139,0.081,0.298,0.121,0.477,0.121c0.315,0,0.578-0.146,0.786-0.439c0.209-0.292,0.313-0.736,0.313-1.334c0-0.554-0.091-0.965-0.272-1.232c-0.181-0.267-0.404-0.4-0.669-0.4c-0.304,0-0.642,0.141-1.012,0.422z"/>
+ <path style="fill:#FB0F0C;" d="M570.752,336.435v-0.431c0-0.256-0.021-0.432-0.064-0.528c-0.042-0.098-0.12-0.178-0.232-0.242c-0.112-0.063-0.253-0.096-0.419-0.096c-0.129,0-0.245,0.021-0.35,0.063c-0.105,0.043-0.188,0.097-0.25,0.163
+ c-0.063,0.065-0.135,0.193-0.216,0.382c-0.105,0.24-0.231,0.412-0.378,0.517s-0.318,0.156-0.518,0.156c-0.25,0-0.455-0.078-0.614-0.233c-0.16-0.155-0.24-0.349-0.24-0.578c0-0.261,0.082-0.491,0.246-0.694c0.218-0.268,0.544-0.488,0.978-0.659
+ s0.921-0.257,1.464-0.257c0.542,0,1.004,0.088,1.385,0.264c0.38,0.176,0.646,0.386,0.796,0.63s0.226,0.616,0.226,1.116v2.098c0,0.258,0.014,0.423,0.041,0.495s0.085,0.136,0.175,0.19s0.189,0.082,0.299,0.082s0.255-0.031,0.438-0.094v1.139
+ c-0.331,0.105-0.649,0.158-0.954,0.158c-0.358,0-0.665-0.059-0.918-0.176c-0.254-0.116-0.467-0.291-0.638-0.525c-0.39,0.254-0.744,0.434-1.062,0.541c-0.318,0.106-0.625,0.16-0.922,0.16c-0.558,0-1.008-0.157-1.352-0.472c-0.343-0.314-0.515-0.702-0.515-1.164
+ c0-0.262,0.06-0.502,0.178-0.721c0.119-0.219,0.296-0.411,0.531-0.575s0.599-0.31,1.091-0.437s1.09-0.218,1.794-0.272z M570.752,337.404c-0.508,0.074-0.866,0.148-1.075,0.224s-0.358,0.171-0.447,0.285c-0.09,0.114-0.134,0.231-0.134,0.352
+ c0,0.155,0.058,0.284,0.175,0.39c0.115,0.104,0.272,0.156,0.471,0.156c0.127,0,0.275-0.033,0.444-0.099c0.168-0.065,0.357-0.163,0.566-0.291v-1.017z"/>
+ <path style="fill:#FB0F0C;" d="M576.791,333.998v0.779c0.441-0.301,0.819-0.506,1.134-0.615s0.636-0.164,0.964-0.164c0.379,0,0.714,0.08,1.005,0.24s0.503,0.361,0.636,0.602s0.199,0.581,0.199,1.022v2.438c0,0.207,0.015,0.34,0.044,0.398s0.075,0.102,0.138,0.129
+ c0.047,0.02,0.188,0.029,0.422,0.029h0.287v1.125h-3.438v-1.125c0.259-0.004,0.403-0.01,0.435-0.018c0.096-0.027,0.16-0.072,0.191-0.135c0.03-0.063,0.046-0.197,0.046-0.404v-2.152c0-0.277-0.029-0.457-0.088-0.539c-0.094-0.137-0.242-0.205-0.444-0.205
+ c-0.168,0-0.348,0.037-0.539,0.111s-0.449,0.227-0.772,0.457v2.328c0,0.254,0.027,0.41,0.083,0.469s0.188,0.088,0.398,0.088h0.19v1.125h-3.422v-1.125h0.171c0.272,0,0.441-0.012,0.506-0.035s0.114-0.064,0.148-0.123c0.033-0.059,0.05-0.174,0.05-0.346v-2.73
+ h-0.875v-1.125c0.706-0.087,1.368-0.254,1.983-0.5h0.548z"/>
+ <path style="fill:#FB0F0C;" d="M582.484,336.294h3.172v1.406h-3.172v-1.406z"/>
+ <path style="fill:#FB0F0C;" d="M586.646,331.81h3.984v1.125h-0.261c-0.251,0-0.405,0.014-0.463,0.041c-0.093,0.043-0.159,0.104-0.2,0.182c-0.04,0.077-0.061,0.224-0.061,0.438v2.168l2.558-2.355c0.113-0.104,0.182-0.176,0.205-0.213s0.035-0.068,0.035-0.096
+ c0-0.055-0.023-0.096-0.068-0.123s-0.158-0.041-0.341-0.041h-0.326v-1.125h3.688v1.125h-0.123c-0.171,0-0.29,0.009-0.356,0.026s-0.146,0.056-0.242,0.114s-0.219,0.155-0.371,0.288l-1.974,1.708l2.354,3.192c0.202,0.274,0.349,0.437,0.442,0.487
+ c0.124,0.07,0.303,0.105,0.535,0.105h0.157v1.125h-4.109v-1.125h0.163c0.299,0,0.481-0.014,0.546-0.041s0.097-0.063,0.097-0.105c0-0.047-0.061-0.158-0.182-0.334l-1.441-2.06l-1.245,1.078v0.824c0,0.203,0.02,0.344,0.058,0.421
+ c0.039,0.078,0.094,0.134,0.165,0.167s0.216,0.05,0.432,0.05h0.33v1.125h-3.984v-1.125h0.301c0.231,0,0.387-0.019,0.466-0.056c0.078-0.037,0.135-0.097,0.171-0.179c0.031-0.066,0.047-0.228,0.047-0.481v-4.473c0-0.242-0.018-0.405-0.054-0.487
+ c-0.035-0.082-0.092-0.144-0.17-0.185c-0.079-0.041-0.221-0.062-0.425-0.062h-0.336v-1.125z"/>
+ <path style="fill:#FB0F0C;" d="M599.523,333.998c0.669,0,1.252,0.131,1.749,0.393s0.88,0.617,1.147,1.068c0.269,0.451,0.402,0.979,0.402,1.584c0,0.914-0.298,1.655-0.893,2.225c-0.595,0.57-1.389,0.855-2.383,0.855c-1.014,0-1.819-0.287-2.419-0.861
+ c-0.578-0.546-0.868-1.285-0.868-2.219c0-0.613,0.132-1.14,0.396-1.581c0.264-0.44,0.646-0.795,1.147-1.063s1.074-0.401,1.72-0.401z M599.553,335.263c-0.224,0-0.433,0.066-0.629,0.2c-0.196,0.133-0.348,0.329-0.456,0.588c-0.107,0.259-0.161,0.589-0.161,0.988
+ c0,0.411,0.053,0.753,0.159,1.023c0.105,0.271,0.251,0.471,0.438,0.6c0.186,0.13,0.391,0.194,0.614,0.194c0.345,0,0.641-0.146,0.888-0.438c0.246-0.292,0.37-0.745,0.37-1.361c0-0.596-0.114-1.044-0.344-1.344s-0.522-0.45-0.879-0.45z"/>
+ <path style="fill:#FB0F0C;" d="M606.311,333.998v0.854c0.313-0.329,0.586-0.555,0.815-0.674s0.45-0.18,0.662-0.18c0.192,0,0.364,0.044,0.516,0.132c0.15,0.088,0.271,0.214,0.358,0.377c0.089,0.164,0.133,0.339,0.133,0.526c0,0.246-0.081,0.468-0.244,0.667
+ c-0.163,0.198-0.391,0.298-0.685,0.298c-0.079,0-0.148-0.006-0.209-0.017s-0.189-0.048-0.385-0.11c-0.103-0.03-0.187-0.045-0.253-0.045c-0.103,0-0.271,0.064-0.506,0.193v2.288c0,0.194,0.015,0.321,0.044,0.38s0.076,0.102,0.143,0.129s0.21,0.041,0.432,0.041
+ h0.257v1.125h-3.625v-1.125h0.304c0.218,0,0.354-0.012,0.407-0.035s0.095-0.064,0.122-0.123c0.028-0.059,0.042-0.188,0.042-0.392v-2.685h-0.875v-1.131c0.64-0.039,1.304-0.203,1.994-0.494h0.553z"/>
+ <path style="fill:#FB0F0C;" d="M614.544,337.813l0.802,0.81c-0.461,0.527-0.931,0.909-1.409,1.146c-0.479,0.236-0.996,0.354-1.551,0.354c-0.891,0-1.642-0.302-2.251-0.904c-0.609-0.604-0.914-1.332-0.914-2.188c0-0.563,0.137-1.076,0.411-1.543
+ c0.273-0.467,0.654-0.831,1.139-1.095c0.486-0.264,1.036-0.396,1.65-0.396c0.392,0,0.748,0.057,1.069,0.17s0.602,0.275,0.843,0.486c0.24,0.211,0.435,0.465,0.581,0.764c0.147,0.299,0.248,0.608,0.303,0.928c0.023,0.16,0.035,0.414,0.035,0.762h-3.953
+ c0.008,0.494,0.153,0.894,0.437,1.198c0.283,0.306,0.629,0.458,1.039,0.458c0.262,0,0.547-0.078,0.855-0.236c0.309-0.157,0.613-0.395,0.914-0.714z M613.377,336.123c-0.027-0.235-0.083-0.421-0.168-0.556c-0.085-0.136-0.198-0.243-0.342-0.323
+ c-0.144-0.081-0.293-0.121-0.45-0.121c-0.165,0-0.324,0.041-0.477,0.123c-0.153,0.083-0.276,0.195-0.368,0.336c-0.093,0.141-0.152,0.321-0.18,0.541h1.984z"/>
+ <path style="fill:#FB0F0C;" d="M619.713,336.435v-0.431c0-0.256-0.021-0.432-0.064-0.528c-0.042-0.098-0.12-0.178-0.232-0.242c-0.112-0.063-0.253-0.096-0.419-0.096c-0.129,0-0.245,0.021-0.35,0.063c-0.105,0.043-0.188,0.097-0.25,0.163
+ c-0.063,0.065-0.135,0.193-0.216,0.382c-0.105,0.24-0.231,0.412-0.378,0.517s-0.318,0.156-0.518,0.156c-0.25,0-0.455-0.078-0.614-0.233c-0.16-0.155-0.24-0.349-0.24-0.578c0-0.261,0.082-0.491,0.246-0.694c0.218-0.268,0.544-0.488,0.978-0.659
+ s0.921-0.257,1.464-0.257c0.542,0,1.004,0.088,1.385,0.264c0.38,0.176,0.646,0.386,0.796,0.63s0.226,0.616,0.226,1.116v2.098c0,0.258,0.014,0.423,0.041,0.495s0.085,0.136,0.175,0.19s0.189,0.082,0.299,0.082s0.255-0.031,0.438-0.094v1.139
+ c-0.331,0.105-0.649,0.158-0.954,0.158c-0.358,0-0.665-0.059-0.918-0.176c-0.254-0.116-0.467-0.291-0.638-0.525c-0.39,0.254-0.744,0.434-1.062,0.541c-0.318,0.106-0.625,0.16-0.922,0.16c-0.558,0-1.008-0.157-1.352-0.472c-0.343-0.314-0.515-0.702-0.515-1.164
+ c0-0.262,0.06-0.502,0.178-0.721c0.119-0.219,0.296-0.411,0.531-0.575s0.599-0.31,1.091-0.437s1.09-0.218,1.794-0.272z M619.713,337.404c-0.508,0.074-0.866,0.148-1.075,0.224s-0.358,0.171-0.447,0.285c-0.09,0.114-0.134,0.231-0.134,0.352
+ c0,0.155,0.058,0.284,0.175,0.39c0.115,0.104,0.272,0.156,0.471,0.156c0.127,0,0.275-0.033,0.444-0.099c0.168-0.065,0.357-0.163,0.566-0.291v-1.017z"/>
+ <path d="M542.894,347.169h0.351l0.616,2.264l-0.453,0.127c-0.244-0.521-0.43-0.87-0.556-1.048c-0.208-0.288-0.468-0.516-0.778-0.685c-0.311-0.168-0.652-0.252-1.025-0.252c-0.439,0-0.844,0.118-1.212,0.354c-0.369,0.236-0.669,0.582-0.897,1.037
+ c-0.229,0.455-0.344,0.967-0.344,1.536c0,0.585,0.116,1.107,0.349,1.565c0.232,0.459,0.547,0.813,0.944,1.059c0.396,0.248,0.824,0.371,1.283,0.371c0.432,0,0.874-0.125,1.326-0.374s0.844-0.599,1.176-1.048l0.391,0.27c-0.202,0.3-0.42,0.555-0.654,0.763
+ c-0.371,0.336-0.758,0.584-1.158,0.743c-0.4,0.16-0.84,0.24-1.318,0.24c-1.059,0-1.919-0.392-2.58-1.174c-0.547-0.65-0.82-1.424-0.82-2.32c0-0.659,0.151-1.256,0.454-1.79s0.721-0.959,1.253-1.274c0.532-0.314,1.106-0.473,1.722-0.473
+ c0.329,0,0.634,0.045,0.916,0.134c0.281,0.089,0.567,0.232,0.857,0.431l0.159-0.455z"/>
+ <path d="M547.206,349.154c0.477,0,0.89,0.1,1.238,0.297c0.349,0.199,0.623,0.488,0.824,0.868s0.302,0.813,0.302,1.302c0,0.487-0.103,0.921-0.309,1.301c-0.206,0.381-0.487,0.67-0.842,0.87s-0.779,0.3-1.271,0.3c-0.785,0-1.374-0.245-1.769-0.736
+ c-0.395-0.49-0.591-1.066-0.591-1.73c0-0.483,0.103-0.913,0.307-1.289c0.204-0.375,0.49-0.666,0.858-0.872s0.785-0.31,1.252-0.31z M547.16,349.623c-0.368,0-0.679,0.146-0.935,0.439c-0.322,0.364-0.483,0.895-0.483,1.591c0,0.671,0.137,1.181,0.411,1.532
+ c0.249,0.313,0.586,0.469,1.012,0.469c0.274,0,0.519-0.073,0.733-0.22c0.214-0.146,0.388-0.38,0.521-0.7c0.132-0.32,0.198-0.697,0.198-1.13c0-0.423-0.071-0.802-0.213-1.138c-0.11-0.266-0.275-0.474-0.496-0.621c-0.222-0.148-0.471-0.223-0.748-0.223z"/>
+ <path d="M550.327,349.966v-0.406c0.246-0.022,0.461-0.063,0.646-0.12c0.184-0.057,0.394-0.152,0.631-0.286h0.364v0.819c0.369-0.292,0.657-0.489,0.865-0.59c0.317-0.153,0.62-0.229,0.908-0.229c0.197,0,0.392,0.037,0.581,0.109
+ c0.189,0.074,0.342,0.164,0.456,0.271c0.115,0.107,0.214,0.253,0.295,0.438c0.34-0.302,0.654-0.515,0.945-0.637c0.289-0.122,0.584-0.183,0.882-0.183c0.285,0,0.536,0.06,0.755,0.178c0.219,0.119,0.378,0.268,0.477,0.446s0.148,0.44,0.148,0.785v2.263
+ c0,0.24,0.005,0.38,0.015,0.42c0.016,0.063,0.05,0.121,0.104,0.178c0.053,0.056,0.113,0.095,0.181,0.118c0.067,0.022,0.192,0.034,0.375,0.034h0.154v0.406h-2.422v-0.406c0.271-0.003,0.446-0.023,0.527-0.062c0.08-0.038,0.14-0.1,0.18-0.185
+ c0.039-0.086,0.059-0.254,0.059-0.504v-2.148c0-0.271-0.024-0.46-0.072-0.564c-0.049-0.104-0.136-0.19-0.26-0.261c-0.125-0.069-0.279-0.104-0.463-0.104c-0.229,0-0.471,0.062-0.723,0.186c-0.336,0.168-0.602,0.358-0.795,0.569v2.323
+ c0,0.227,0.011,0.376,0.031,0.447c0.021,0.07,0.057,0.129,0.107,0.177c0.05,0.048,0.108,0.081,0.175,0.099c0.066,0.019,0.228,0.027,0.483,0.027v0.406h-2.391v-0.406h0.134c0.188,0,0.321-0.023,0.399-0.069s0.14-0.116,0.185-0.212
+ c0.032-0.076,0.048-0.232,0.048-0.469v-2.074c0-0.306-0.023-0.512-0.07-0.619s-0.137-0.198-0.27-0.272c-0.132-0.075-0.287-0.112-0.465-0.112c-0.21,0-0.422,0.053-0.635,0.157c-0.317,0.153-0.608,0.354-0.873,0.603v2.521c0,0.146,0.021,0.253,0.061,0.321
+ c0.041,0.068,0.105,0.123,0.193,0.164s0.209,0.062,0.362,0.062h0.181v0.406h-2.453v-0.406h0.13c0.222,0,0.367-0.018,0.438-0.055c0.103-0.049,0.176-0.128,0.221-0.236c0.026-0.059,0.039-0.212,0.039-0.459v-2.859h-0.844z"/>
+ <path d="M559.68,349.966v-0.406c0.247,0,0.465-0.03,0.655-0.091c0.191-0.061,0.4-0.165,0.627-0.315h0.39v0.813c0.405-0.321,0.743-0.537,1.013-0.646c0.27-0.111,0.539-0.166,0.809-0.166c0.556,0,1.028,0.218,1.42,0.653c0.391,0.436,0.587,1.002,0.587,1.701
+ c0,0.773-0.223,1.407-0.667,1.9c-0.406,0.455-0.929,0.683-1.568,0.683c-0.318,0-0.617-0.061-0.896-0.184c-0.201-0.085-0.434-0.238-0.696-0.459v1.611c0,0.244,0.007,0.388,0.02,0.431c0.017,0.063,0.049,0.114,0.098,0.158c0.049,0.042,0.11,0.07,0.186,0.084
+ c0.056,0.01,0.241,0.015,0.557,0.015v0.406h-2.516v-0.406h0.218c0.223,0,0.367-0.018,0.434-0.051c0.066-0.035,0.115-0.088,0.147-0.159c0.02-0.056,0.029-0.226,0.029-0.509v-5.063h-0.844z M561.352,350.467v1.673c0,0.221,0.013,0.385,0.039,0.491
+ c0.038,0.165,0.113,0.314,0.225,0.447s0.263,0.247,0.455,0.341s0.393,0.141,0.603,0.141c0.42,0,0.783-0.158,1.092-0.477c0.308-0.317,0.462-0.799,0.462-1.444c0-0.603-0.128-1.069-0.382-1.397c-0.256-0.33-0.557-0.494-0.905-0.494c-0.227,0-0.472,0.061-0.736,0.18
+ c-0.265,0.12-0.548,0.301-0.852,0.54z"/>
+ <path d="M570.115,352.716l0.313,0.25c-0.237,0.283-0.469,0.509-0.691,0.675c-0.224,0.167-0.435,0.283-0.633,0.351c-0.199,0.066-0.432,0.1-0.699,0.1c-0.479,0-0.886-0.098-1.222-0.293c-0.385-0.224-0.68-0.516-0.885-0.877c-0.205-0.36-0.308-0.786-0.308-1.277
+ c0-0.513,0.1-0.951,0.298-1.315c0.199-0.364,0.478-0.651,0.834-0.86c0.357-0.209,0.771-0.314,1.24-0.314c0.349,0,0.651,0.055,0.909,0.163s0.476,0.272,0.655,0.491s0.311,0.469,0.392,0.751c0.046,0.165,0.071,0.379,0.078,0.642h-3.438
+ c-0.01,0.16-0.015,0.279-0.015,0.357c0,0.41,0.071,0.776,0.214,1.098c0.143,0.32,0.331,0.557,0.565,0.708c0.235,0.151,0.501,0.228,0.8,0.228c0.252,0,0.496-0.06,0.732-0.179c0.236-0.118,0.523-0.351,0.86-0.696z M569.49,350.748
+ c-0.049-0.297-0.117-0.518-0.206-0.659c-0.089-0.143-0.215-0.256-0.379-0.34c-0.163-0.084-0.347-0.126-0.551-0.126c-0.203,0-0.395,0.042-0.572,0.126s-0.325,0.2-0.443,0.35c-0.118,0.148-0.221,0.365-0.309,0.649h2.46z"/>
+ <path d="M572.44,347.607h0.344v1.656h1.453v0.484h-1.453v2.941c0,0.25,0.021,0.43,0.066,0.537c0.043,0.107,0.118,0.194,0.225,0.263c0.105,0.068,0.224,0.103,0.354,0.103c0.31,0,0.651-0.135,1.026-0.406v0.473c-0.429,0.289-0.863,0.434-1.302,0.434
+ c-0.249,0-0.474-0.056-0.675-0.166c-0.202-0.111-0.34-0.241-0.413-0.391c-0.073-0.15-0.11-0.41-0.11-0.782v-3.005h-0.844v-0.407c0.274-0.062,0.496-0.157,0.664-0.287s0.305-0.299,0.409-0.507c0.104-0.207,0.189-0.521,0.255-0.939z"/>
+ <path d="M574.911,349.966v-0.406c0.271-0.031,0.499-0.076,0.684-0.134s0.395-0.148,0.631-0.272h0.357v3.922c0,0.136,0.02,0.238,0.059,0.306c0.038,0.068,0.092,0.117,0.162,0.148c0.068,0.03,0.195,0.046,0.38,0.046h0.228v0.406h-2.484v-0.406h0.196
+ c0.214,0,0.357-0.02,0.431-0.059c0.073-0.04,0.125-0.096,0.155-0.168s0.046-0.242,0.046-0.508v-2.875h-0.844z M576.153,346.951c0.157,0,0.292,0.054,0.403,0.161s0.167,0.237,0.167,0.392c0,0.153-0.056,0.284-0.167,0.394c-0.111,0.108-0.246,0.163-0.403,0.163
+ s-0.292-0.055-0.403-0.163c-0.111-0.109-0.167-0.24-0.167-0.394c0-0.154,0.056-0.284,0.167-0.392s0.246-0.161,0.403-0.161z"/>
+ <path d="M577.94,349.966v-0.406c0.293-0.032,0.512-0.07,0.657-0.116c0.146-0.045,0.354-0.142,0.628-0.29h0.355v0.947c0.43-0.369,0.797-0.619,1.102-0.75c0.305-0.132,0.613-0.197,0.926-0.197c0.267,0,0.503,0.045,0.708,0.135s0.372,0.211,0.5,0.363
+ c0.129,0.153,0.214,0.328,0.257,0.523c0.025,0.12,0.039,0.303,0.039,0.547v2.15c0,0.258,0.019,0.422,0.056,0.496c0.037,0.072,0.096,0.126,0.177,0.158c0.08,0.033,0.279,0.049,0.596,0.049v0.406h-2.484v-0.406h0.133c0.227,0,0.381-0.021,0.463-0.063
+ c0.082-0.043,0.142-0.104,0.178-0.187s0.055-0.248,0.055-0.5v-1.785c0-0.368-0.03-0.623-0.091-0.766s-0.163-0.258-0.309-0.347s-0.329-0.134-0.552-0.134c-0.265,0-0.547,0.067-0.848,0.201c-0.301,0.135-0.592,0.333-0.873,0.596v2.234
+ c0,0.255,0.018,0.425,0.055,0.51c0.036,0.085,0.096,0.148,0.179,0.191c0.057,0.032,0.209,0.049,0.457,0.049h0.138v0.406h-2.484v-0.406h0.122c0.24,0,0.403-0.021,0.491-0.061c0.088-0.041,0.15-0.113,0.186-0.217c0.02-0.052,0.029-0.23,0.029-0.535v-2.797h-0.844z"
+ />
+ <path d="M588.335,349.64c0.146-0.166,0.297-0.289,0.449-0.368c0.151-0.079,0.291-0.118,0.419-0.118c0.118,0,0.217,0.034,0.297,0.104c0.08,0.068,0.12,0.152,0.12,0.251c0,0.103-0.036,0.188-0.107,0.259c-0.072,0.07-0.164,0.105-0.275,0.105
+ c-0.046,0-0.107-0.006-0.186-0.02c-0.092-0.018-0.169-0.027-0.23-0.027c-0.082,0-0.168,0.033-0.256,0.101c0.203,0.246,0.305,0.535,0.305,0.866c0,0.453-0.189,0.846-0.568,1.177c-0.38,0.331-0.858,0.497-1.437,0.497c-0.32,0-0.643-0.067-0.966-0.201
+ c-0.216,0.148-0.338,0.24-0.367,0.274c-0.046,0.054-0.068,0.111-0.068,0.171c0,0.092,0.049,0.168,0.146,0.229c0.124,0.078,0.369,0.145,0.734,0.199l1.414,0.209c0.313,0.049,0.629,0.131,0.945,0.244c0.316,0.115,0.545,0.263,0.688,0.445
+ c0.142,0.183,0.213,0.4,0.213,0.654c0,0.431-0.199,0.774-0.598,1.031c-0.506,0.33-1.257,0.494-2.252,0.494c-0.523,0-0.947-0.056-1.273-0.166c-0.327-0.111-0.58-0.268-0.76-0.47c-0.13-0.146-0.195-0.298-0.195-0.454c0-0.202,0.064-0.399,0.194-0.592
+ c0.129-0.192,0.429-0.466,0.899-0.821c-0.301-0.077-0.516-0.167-0.645-0.27c-0.164-0.131-0.246-0.28-0.246-0.447c0-0.083,0.016-0.161,0.047-0.233c0.03-0.072,0.081-0.145,0.15-0.217c0.07-0.072,0.198-0.172,0.384-0.301c0.117-0.08,0.2-0.139,0.249-0.178
+ c-0.238-0.169-0.418-0.359-0.539-0.569s-0.182-0.44-0.182-0.692c0-0.414,0.16-0.775,0.479-1.085c0.389-0.378,0.913-0.567,1.572-0.567c0.294,0,0.55,0.035,0.769,0.106s0.443,0.198,0.676,0.38z M586.043,353.826c-0.315,0.267-0.524,0.482-0.628,0.648
+ c-0.103,0.166-0.154,0.325-0.154,0.479c0,0.13,0.052,0.256,0.154,0.378c0.104,0.122,0.28,0.222,0.529,0.3s0.563,0.117,0.939,0.117c0.445,0,0.828-0.048,1.148-0.144c0.319-0.097,0.548-0.22,0.686-0.368c0.102-0.117,0.152-0.256,0.152-0.415
+ c0-0.137-0.042-0.252-0.125-0.347c-0.084-0.094-0.241-0.176-0.473-0.246c-0.23-0.07-0.446-0.121-0.646-0.153l-1.583-0.249z M586.845,349.591c-0.32,0-0.592,0.117-0.813,0.35c-0.222,0.233-0.333,0.521-0.333,0.867c0,0.229,0.051,0.438,0.152,0.623
+ c0.101,0.186,0.242,0.331,0.426,0.438c0.183,0.107,0.375,0.16,0.578,0.16c0.202,0,0.396-0.054,0.58-0.162c0.186-0.108,0.327-0.255,0.427-0.438s0.149-0.391,0.149-0.62c0-0.361-0.108-0.654-0.326-0.879c-0.217-0.226-0.497-0.338-0.84-0.338z"/>
+ <path d="M593.219,347.169h2.096l3.076,5.108v-3.89c0-0.232-0.022-0.4-0.069-0.502c-0.045-0.102-0.114-0.18-0.206-0.231c-0.092-0.053-0.228-0.079-0.407-0.079h-0.177v-0.406h2.281v0.406h-0.121c-0.2,0-0.336,0.017-0.407,0.049c-0.1,0.047-0.175,0.13-0.225,0.252
+ c-0.051,0.121-0.075,0.292-0.075,0.512v5.594h-0.594l-3.719-6.139v4.857c0,0.273,0.008,0.44,0.024,0.499c0.023,0.076,0.064,0.146,0.125,0.208s0.132,0.105,0.214,0.129c0.082,0.022,0.247,0.036,0.496,0.039v0.406h-2.313v-0.406h0.122
+ c0.234,0,0.393-0.023,0.477-0.069c0.082-0.046,0.146-0.125,0.192-0.237c0.046-0.111,0.068-0.301,0.068-0.568v-4.313c0-0.272-0.007-0.438-0.02-0.497c-0.029-0.112-0.085-0.192-0.169-0.241c-0.082-0.05-0.248-0.074-0.495-0.074h-0.176v-0.406z"/>
+ <path d="M604.079,351.169l-0.01-0.535c0-0.363-0.102-0.623-0.303-0.778c-0.202-0.155-0.486-0.233-0.854-0.233c-0.183,0-0.342,0.022-0.479,0.066c-0.137,0.045-0.247,0.105-0.329,0.183c-0.084,0.077-0.145,0.165-0.184,0.264c-0.017,0.036-0.056,0.176-0.117,0.419
+ c-0.075,0.296-0.227,0.443-0.455,0.443c-0.131,0-0.236-0.043-0.315-0.131c-0.08-0.087-0.12-0.204-0.12-0.353c0-0.217,0.08-0.43,0.239-0.638c0.159-0.209,0.403-0.382,0.729-0.518c0.328-0.137,0.715-0.205,1.16-0.205c0.417,0,0.773,0.064,1.07,0.192
+ c0.296,0.129,0.514,0.313,0.654,0.554c0.098,0.165,0.146,0.468,0.146,0.906v1.876c0,0.267,0.008,0.44,0.024,0.521c0.036,0.14,0.098,0.244,0.187,0.314c0.09,0.069,0.205,0.104,0.348,0.104c0.149,0,0.328-0.035,0.535-0.105v0.426
+ c-0.27,0.078-0.512,0.117-0.727,0.117c-0.23,0-0.424-0.033-0.582-0.098c-0.157-0.065-0.287-0.16-0.387-0.286c-0.102-0.125-0.166-0.274-0.195-0.447c-0.391,0.307-0.744,0.521-1.061,0.646c-0.315,0.123-0.635,0.186-0.957,0.186c-0.449,0-0.813-0.121-1.094-0.363
+ c-0.28-0.243-0.42-0.527-0.42-0.854c0-0.197,0.051-0.385,0.154-0.563s0.26-0.335,0.471-0.471s0.541-0.256,0.992-0.359s1.076-0.197,1.877-0.281z M604.071,351.576c-0.758,0.11-1.227,0.188-1.406,0.229c-0.355,0.081-0.61,0.171-0.764,0.269
+ s-0.263,0.202-0.328,0.314s-0.098,0.231-0.098,0.358s0.037,0.249,0.11,0.368s0.178,0.212,0.312,0.28c0.135,0.068,0.276,0.103,0.427,0.103c0.213,0,0.453-0.051,0.722-0.151c0.268-0.101,0.611-0.298,1.03-0.591l-0.005-1.18z"/>
+ <path d="M607.636,347.607h0.344v1.656h1.453v0.484h-1.453v2.941c0,0.25,0.021,0.43,0.066,0.537c0.043,0.107,0.118,0.194,0.225,0.263c0.105,0.068,0.224,0.103,0.354,0.103c0.31,0,0.651-0.135,1.026-0.406v0.473c-0.429,0.289-0.863,0.434-1.302,0.434
+ c-0.249,0-0.474-0.056-0.675-0.166c-0.202-0.111-0.34-0.241-0.413-0.391c-0.073-0.15-0.11-0.41-0.11-0.782v-3.005h-0.844v-0.407c0.274-0.062,0.496-0.157,0.664-0.287s0.305-0.299,0.409-0.507c0.104-0.207,0.189-0.521,0.255-0.939z"/>
+ <path d="M610.106,349.966v-0.406c0.271-0.031,0.499-0.076,0.684-0.134s0.395-0.148,0.631-0.272h0.357v3.922c0,0.136,0.02,0.238,0.059,0.306c0.038,0.068,0.092,0.117,0.162,0.148c0.068,0.03,0.195,0.046,0.38,0.046h0.228v0.406h-2.484v-0.406h0.196
+ c0.214,0,0.357-0.02,0.431-0.059c0.073-0.04,0.125-0.096,0.155-0.168s0.046-0.242,0.046-0.508v-2.875h-0.844z M611.349,346.951c0.157,0,0.292,0.054,0.403,0.161s0.167,0.237,0.167,0.392c0,0.153-0.056,0.284-0.167,0.394c-0.111,0.108-0.246,0.163-0.403,0.163
+ s-0.292-0.055-0.403-0.163c-0.111-0.109-0.167-0.24-0.167-0.394c0-0.154,0.056-0.284,0.167-0.392s0.246-0.161,0.403-0.161z"/>
+ <path d="M615.601,349.154c0.477,0,0.889,0.1,1.237,0.297c0.349,0.199,0.623,0.488,0.824,0.868s0.302,0.813,0.302,1.302c0,0.487-0.104,0.921-0.309,1.301c-0.206,0.381-0.486,0.67-0.842,0.87s-0.779,0.3-1.271,0.3c-0.785,0-1.375-0.245-1.769-0.736
+ c-0.394-0.49-0.591-1.066-0.591-1.73c0-0.483,0.102-0.913,0.307-1.289c0.204-0.375,0.49-0.666,0.858-0.872s0.785-0.31,1.253-0.31z M615.554,349.623c-0.367,0-0.68,0.146-0.934,0.439c-0.323,0.364-0.484,0.895-0.484,1.591c0,0.671,0.137,1.181,0.411,1.532
+ c0.249,0.313,0.586,0.469,1.012,0.469c0.274,0,0.519-0.073,0.733-0.22s0.388-0.38,0.521-0.7c0.132-0.32,0.198-0.697,0.198-1.13c0-0.423-0.071-0.802-0.213-1.138c-0.109-0.266-0.275-0.474-0.496-0.621c-0.221-0.148-0.471-0.223-0.748-0.223z"/>
+ <path d="M618.736,349.966v-0.406c0.293-0.032,0.513-0.07,0.657-0.116c0.145-0.045,0.354-0.142,0.628-0.29h0.355v0.947c0.43-0.369,0.797-0.619,1.102-0.75c0.304-0.132,0.612-0.197,0.925-0.197c0.268,0,0.504,0.045,0.709,0.135s0.371,0.211,0.5,0.363
+ c0.129,0.153,0.215,0.328,0.257,0.523c0.026,0.12,0.039,0.303,0.039,0.547v2.15c0,0.258,0.019,0.422,0.056,0.496c0.037,0.072,0.096,0.126,0.177,0.158c0.081,0.033,0.279,0.049,0.596,0.049v0.406h-2.484v-0.406h0.133c0.227,0,0.382-0.021,0.464-0.063
+ c0.082-0.043,0.141-0.104,0.177-0.187s0.055-0.248,0.055-0.5v-1.785c0-0.368-0.03-0.623-0.091-0.766s-0.163-0.258-0.309-0.347s-0.33-0.134-0.552-0.134c-0.265,0-0.548,0.067-0.849,0.201c-0.301,0.135-0.591,0.333-0.872,0.596v2.234
+ c0,0.255,0.019,0.425,0.055,0.51s0.096,0.148,0.179,0.191c0.057,0.032,0.209,0.049,0.457,0.049h0.138v0.406h-2.484v-0.406h0.122c0.24,0,0.404-0.021,0.492-0.061c0.087-0.041,0.148-0.113,0.185-0.217c0.02-0.052,0.029-0.23,0.029-0.535v-2.797h-0.844z"/>
+ <path d="M628.636,349.263h0.344l0.437,1.494l-0.438,0.146c-0.176-0.398-0.422-0.711-0.739-0.939c-0.317-0.228-0.639-0.342-0.964-0.342c-0.25,0-0.453,0.061-0.609,0.183s-0.234,0.263-0.234,0.422c0,0.149,0.058,0.277,0.171,0.385
+ c0.111,0.11,0.361,0.235,0.75,0.375l0.954,0.337c0.539,0.191,0.906,0.396,1.102,0.613c0.192,0.221,0.289,0.472,0.289,0.751c0,0.237-0.072,0.466-0.216,0.685s-0.352,0.395-0.624,0.523c-0.272,0.13-0.586,0.195-0.938,0.195c-0.549,0-1.019-0.159-1.41-0.477
+ l-0.103,0.367h-0.351l-0.608-1.591l0.438-0.175c0.298,0.462,0.579,0.789,0.844,0.981c0.369,0.272,0.768,0.409,1.196,0.409c0.284,0,0.518-0.075,0.701-0.226c0.183-0.15,0.274-0.317,0.274-0.502c0-0.152-0.058-0.291-0.171-0.417
+ c-0.117-0.123-0.342-0.243-0.674-0.359l-1.127-0.409c-0.485-0.176-0.822-0.367-1.011-0.575s-0.283-0.447-0.283-0.717c0-0.328,0.153-0.618,0.46-0.87s0.697-0.378,1.172-0.378c0.247,0,0.468,0.032,0.662,0.096c0.195,0.064,0.387,0.17,0.575,0.317l0.132-0.304z"/>
+ </g>
+ <path style="fill:#4D4D4D;stroke:none;" d="M754.607,246.511h0.315l0.554,2.042l-0.406,0.114c-0.22-0.472-0.386-0.788-0.5-0.949c-0.188-0.261-0.421-0.467-0.7-0.619s-0.586-0.229-0.922-0.229c-0.396,0-0.759,0.106-1.09,0.319c-0.332,0.213-0.602,0.524-0.808,0.936
+ s-0.309,0.873-0.309,1.386c0,0.529,0.104,1,0.313,1.413c0.209,0.414,0.492,0.732,0.85,0.956c0.357,0.223,0.742,0.334,1.154,0.334c0.39,0,0.788-0.112,1.195-0.337c0.406-0.225,0.759-0.539,1.058-0.944l0.352,0.242c-0.182,0.27-0.378,0.498-0.589,0.686
+ c-0.334,0.303-0.682,0.525-1.042,0.669s-0.755,0.216-1.187,0.216c-0.951,0-1.725-0.354-2.319-1.06c-0.492-0.586-0.738-1.283-0.738-2.093c0-0.595,0.136-1.133,0.408-1.615c0.271-0.482,0.647-0.865,1.126-1.149s0.994-0.427,1.547-0.427
+ c0.295,0,0.57,0.041,0.823,0.121c0.253,0.082,0.51,0.212,0.771,0.392l0.144-0.403z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M758.525,248.292c0.428,0,0.799,0.09,1.112,0.269s0.561,0.439,0.741,0.782s0.271,0.734,0.271,1.174s-0.092,0.831-0.277,1.174s-0.438,0.604-0.756,0.784c-0.319,0.181-0.7,0.271-1.144,0.271
+ c-0.705,0-1.235-0.221-1.589-0.664c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.441-0.602,0.771-0.787c0.331-0.186,0.706-0.279,1.126-0.279z M758.483,248.714c-0.334,0-0.616,0.133-0.848,0.396
+ c-0.293,0.329-0.439,0.809-0.439,1.438c0,0.605,0.125,1.066,0.373,1.384c0.227,0.282,0.532,0.423,0.919,0.423c0.249,0,0.471-0.066,0.665-0.198c0.195-0.132,0.353-0.343,0.473-0.633c0.12-0.289,0.18-0.629,0.18-1.021c0-0.381-0.064-0.724-0.193-1.026
+ c-0.1-0.241-0.249-0.429-0.45-0.562c-0.2-0.135-0.427-0.201-0.679-0.201z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M761.331,249.027v-0.359c0.262-0.029,0.458-0.065,0.588-0.107c0.13-0.041,0.317-0.131,0.563-0.268h0.318v0.854c0.386-0.332,0.716-0.558,0.989-0.676s0.55-0.178,0.831-0.178c0.24,0,0.452,0.04,0.637,0.121
+ c0.184,0.08,0.334,0.189,0.449,0.327s0.192,0.294,0.23,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.05,0.44c0.034,0.065,0.087,0.112,0.16,0.142c0.073,0.028,0.253,0.043,0.54,0.043v0.375h-2.234v-0.375h0.12
+ c0.205,0,0.345-0.02,0.419-0.057c0.074-0.039,0.129-0.094,0.161-0.167c0.033-0.073,0.05-0.223,0.05-0.448v-1.601c0-0.331-0.027-0.56-0.082-0.688s-0.147-0.231-0.278-0.312c-0.131-0.079-0.296-0.119-0.496-0.119c-0.239,0-0.493,0.061-0.765,0.182
+ c-0.271,0.121-0.532,0.299-0.785,0.535v2.002c0,0.229,0.016,0.381,0.049,0.457s0.088,0.133,0.162,0.171c0.052,0.029,0.189,0.044,0.414,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.445-0.055c0.079-0.037,0.136-0.102,0.168-0.196
+ c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M767.241,248.402h0.766v-0.663c0-0.456,0.149-0.83,0.448-1.12c0.3-0.29,0.69-0.436,1.172-0.436c0.321,0,0.571,0.066,0.751,0.199s0.27,0.277,0.27,0.433c0,0.104-0.036,0.191-0.108,0.263
+ c-0.071,0.07-0.162,0.105-0.271,0.105c-0.097,0-0.181-0.018-0.251-0.053c-0.07-0.034-0.179-0.121-0.325-0.261c-0.156-0.146-0.305-0.218-0.445-0.218c-0.097,0-0.184,0.03-0.262,0.092c-0.078,0.061-0.139,0.149-0.181,0.267s-0.063,0.298-0.063,0.541v0.851h0.828
+ v0.453h-0.828v2.844c0,0.193,0.014,0.322,0.043,0.387c0.028,0.065,0.071,0.111,0.129,0.137c0.058,0.026,0.191,0.039,0.401,0.039h0.177v0.375h-2.234v-0.375h0.136c0.231,0,0.378-0.014,0.44-0.043c0.063-0.029,0.108-0.075,0.137-0.141
+ c0.027-0.064,0.04-0.211,0.037-0.441v-2.781h-0.766v-0.453z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M773.916,251.511l0.281,0.234c-0.214,0.252-0.421,0.452-0.62,0.6c-0.201,0.148-0.391,0.252-0.568,0.312c-0.179,0.06-0.389,0.089-0.628,0.089c-0.431,0-0.796-0.088-1.097-0.264c-0.346-0.202-0.61-0.466-0.795-0.791
+ c-0.184-0.325-0.276-0.709-0.276-1.152c0-0.463,0.089-0.858,0.268-1.187s0.428-0.587,0.748-0.776c0.32-0.188,0.691-0.283,1.112-0.283c0.313,0,0.585,0.049,0.816,0.146c0.23,0.098,0.427,0.246,0.588,0.442c0.16,0.197,0.277,0.423,0.351,0.677
+ c0.041,0.148,0.064,0.342,0.07,0.578h-3.096c-0.009,0.145-0.014,0.252-0.014,0.322c0,0.37,0.064,0.7,0.192,0.989c0.129,0.29,0.299,0.503,0.511,0.64s0.452,0.205,0.72,0.205c0.229,0,0.448-0.053,0.662-0.159c0.213-0.106,0.471-0.313,0.774-0.622z M773.354,249.73
+ c-0.044-0.269-0.105-0.467-0.186-0.596c-0.08-0.128-0.194-0.23-0.341-0.307c-0.148-0.075-0.313-0.113-0.497-0.113s-0.356,0.038-0.517,0.113c-0.16,0.076-0.293,0.182-0.4,0.315c-0.105,0.135-0.199,0.33-0.277,0.587h2.218z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M777.581,246.917v-0.359c0.199-0.018,0.382-0.053,0.547-0.105c0.166-0.052,0.373-0.142,0.623-0.27h0.33v5.344c0,0.242,0.006,0.389,0.018,0.44c0.028,0.109,0.077,0.187,0.146,0.229c0.068,0.043,0.202,0.064,0.4,0.064
+ h0.186v0.375l-1.516,0.078v-0.705c-0.292,0.268-0.564,0.457-0.82,0.568c-0.254,0.112-0.51,0.168-0.767,0.168c-0.527,0-0.965-0.213-1.313-0.64c-0.348-0.427-0.521-0.94-0.521-1.541c0-0.428,0.092-0.819,0.277-1.176c0.185-0.355,0.429-0.628,0.732-0.815
+ c0.303-0.188,0.635-0.281,0.996-0.281c0.276,0,0.533,0.048,0.77,0.143c0.235,0.095,0.451,0.237,0.646,0.428v-1.945h-0.734z M778.315,251.574v-1.666c0-0.238-0.045-0.434-0.134-0.584c-0.089-0.152-0.234-0.283-0.437-0.395c-0.203-0.112-0.41-0.168-0.623-0.168
+ c-0.253,0-0.487,0.07-0.701,0.209c-0.214,0.141-0.382,0.342-0.502,0.604c-0.121,0.263-0.182,0.581-0.182,0.954c0,0.353,0.056,0.657,0.168,0.914c0.112,0.258,0.263,0.453,0.452,0.587s0.383,0.2,0.581,0.2c0.195,0,0.417-0.057,0.664-0.17
+ c0.248-0.113,0.485-0.275,0.713-0.486z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M784.178,251.511l0.281,0.234c-0.214,0.252-0.421,0.452-0.621,0.6c-0.2,0.148-0.39,0.252-0.568,0.312s-0.388,0.089-0.628,0.089c-0.43,0-0.795-0.088-1.097-0.264c-0.345-0.202-0.61-0.466-0.794-0.791
+ c-0.185-0.325-0.276-0.709-0.276-1.152c0-0.463,0.089-0.858,0.268-1.187c0.178-0.328,0.428-0.587,0.748-0.776c0.32-0.188,0.69-0.283,1.112-0.283c0.313,0,0.585,0.049,0.815,0.146c0.231,0.098,0.427,0.246,0.588,0.442c0.161,0.197,0.278,0.423,0.352,0.677
+ c0.041,0.148,0.064,0.342,0.07,0.578h-3.097c-0.009,0.145-0.013,0.252-0.013,0.322c0,0.37,0.063,0.7,0.192,0.989c0.129,0.29,0.299,0.503,0.51,0.64c0.212,0.137,0.452,0.205,0.721,0.205c0.228,0,0.448-0.053,0.661-0.159s0.472-0.313,0.775-0.622z M783.615,249.73
+ c-0.044-0.269-0.106-0.467-0.187-0.596c-0.08-0.128-0.193-0.23-0.341-0.307c-0.147-0.075-0.313-0.113-0.497-0.113s-0.355,0.038-0.516,0.113c-0.16,0.076-0.294,0.182-0.4,0.315c-0.106,0.135-0.199,0.33-0.277,0.587h2.218z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M785.092,249.027v-0.359c0.214-0.018,0.403-0.054,0.57-0.107c0.166-0.055,0.356-0.145,0.569-0.268h0.329v0.836c0.208-0.256,0.45-0.46,0.726-0.61s0.523-0.226,0.743-0.226c0.217,0,0.388,0.051,0.515,0.153
+ c0.125,0.102,0.188,0.226,0.188,0.371c0,0.104-0.042,0.197-0.125,0.277s-0.184,0.12-0.301,0.12c-0.053,0-0.099-0.007-0.137-0.021c-0.038-0.014-0.094-0.045-0.167-0.092c-0.161-0.102-0.296-0.152-0.404-0.152c-0.146,0-0.308,0.062-0.483,0.184
+ c-0.223,0.158-0.397,0.313-0.523,0.465v2.023c0,0.174,0.01,0.291,0.028,0.353c0.019,0.063,0.049,0.116,0.092,0.16c0.043,0.045,0.096,0.077,0.158,0.098c0.063,0.021,0.174,0.03,0.33,0.03h0.142v0.375h-2.234v-0.375h0.186c0.175,0,0.29-0.016,0.345-0.048
+ c0.075-0.043,0.13-0.103,0.166-0.18c0.036-0.076,0.054-0.214,0.054-0.413v-2.594h-0.766z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M792.233,250.121l-0.01-0.486c0-0.33-0.091-0.566-0.271-0.708c-0.182-0.142-0.437-0.212-0.767-0.212c-0.163,0-0.306,0.021-0.429,0.061s-0.221,0.096-0.295,0.166c-0.075,0.07-0.13,0.15-0.165,0.239
+ c-0.015,0.033-0.05,0.16-0.104,0.381c-0.067,0.269-0.203,0.403-0.407,0.403c-0.117,0-0.211-0.039-0.282-0.118c-0.072-0.079-0.107-0.186-0.107-0.319c0-0.197,0.071-0.391,0.215-0.579c0.143-0.189,0.361-0.346,0.656-0.47c0.293-0.123,0.641-0.186,1.042-0.186
+ c0.374,0,0.694,0.059,0.961,0.174c0.266,0.115,0.462,0.282,0.588,0.499c0.088,0.149,0.132,0.422,0.132,0.817v1.692c0,0.24,0.007,0.397,0.021,0.471c0.032,0.126,0.088,0.221,0.168,0.283c0.08,0.063,0.186,0.095,0.313,0.095c0.134,0,0.294-0.031,0.481-0.093v0.379
+ c-0.243,0.069-0.461,0.104-0.654,0.104c-0.208,0-0.383-0.029-0.524-0.087c-0.142-0.059-0.259-0.144-0.349-0.256c-0.092-0.112-0.149-0.245-0.176-0.399c-0.352,0.273-0.668,0.466-0.952,0.576s-0.57,0.166-0.86,0.166c-0.403,0-0.73-0.108-0.982-0.326
+ s-0.377-0.473-0.377-0.766c0-0.178,0.046-0.346,0.139-0.506c0.092-0.159,0.232-0.3,0.422-0.422c0.188-0.121,0.485-0.229,0.891-0.322c0.404-0.092,0.966-0.177,1.684-0.252z M792.226,250.48c-0.681,0.1-1.102,0.169-1.262,0.207c-0.32,0.073-0.549,0.154-0.687,0.242
+ s-0.235,0.183-0.294,0.283c-0.059,0.102-0.088,0.21-0.088,0.324s0.033,0.225,0.099,0.332c0.066,0.107,0.159,0.191,0.28,0.254c0.12,0.061,0.248,0.092,0.383,0.092c0.191,0,0.407-0.045,0.648-0.137c0.24-0.091,0.549-0.269,0.925-0.533l-0.005-1.064z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M795.444,246.902h0.313v1.5h1.313v0.438h-1.313v2.654c0,0.227,0.02,0.388,0.06,0.484s0.107,0.176,0.204,0.238c0.096,0.061,0.203,0.092,0.321,0.092c0.28,0,0.591-0.125,0.931-0.375v0.424
+ c-0.387,0.26-0.777,0.389-1.172,0.389c-0.224,0-0.427-0.05-0.607-0.149c-0.182-0.1-0.305-0.217-0.371-0.352s-0.1-0.369-0.1-0.703v-2.702h-0.766v-0.367c0.245-0.056,0.443-0.143,0.594-0.26c0.15-0.118,0.271-0.271,0.365-0.459c0.094-0.188,0.17-0.473,0.229-0.852z"
+ />
+ <path style="fill:#4D4D4D;stroke:none;" d="M797.66,249.027v-0.359c0.243-0.029,0.447-0.07,0.613-0.123c0.165-0.053,0.354-0.137,0.565-0.252h0.321v3.516c0,0.123,0.017,0.216,0.052,0.277s0.084,0.106,0.147,0.134c0.063,0.028,0.178,0.042,0.345,0.042h0.206v0.375
+ h-2.234v-0.375h0.178c0.193,0,0.323-0.018,0.39-0.053s0.113-0.085,0.141-0.15c0.027-0.064,0.042-0.215,0.042-0.453v-2.578h-0.766z M798.777,246.308c0.14,0,0.26,0.049,0.358,0.145c0.1,0.098,0.149,0.215,0.149,0.354s-0.05,0.257-0.149,0.354
+ c-0.099,0.099-0.219,0.147-0.358,0.147c-0.141,0-0.261-0.049-0.359-0.147c-0.099-0.098-0.148-0.216-0.148-0.354s0.05-0.256,0.148-0.354c0.099-0.096,0.219-0.145,0.359-0.145z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M802.624,248.292c0.429,0,0.799,0.09,1.113,0.269c0.313,0.179,0.56,0.439,0.74,0.782s0.271,0.734,0.271,1.174s-0.093,0.831-0.277,1.174c-0.186,0.343-0.438,0.604-0.757,0.784c-0.319,0.181-0.7,0.271-1.143,0.271
+ c-0.706,0-1.235-0.221-1.589-0.664c-0.354-0.442-0.531-0.963-0.531-1.561c0-0.437,0.092-0.824,0.275-1.162c0.184-0.339,0.44-0.602,0.771-0.787c0.33-0.186,0.705-0.279,1.125-0.279z M802.583,248.714c-0.334,0-0.617,0.133-0.848,0.396
+ c-0.293,0.329-0.439,0.809-0.439,1.438c0,0.605,0.124,1.066,0.373,1.384c0.226,0.282,0.531,0.423,0.918,0.423c0.249,0,0.471-0.066,0.666-0.198c0.194-0.132,0.352-0.343,0.472-0.633c0.12-0.289,0.181-0.629,0.181-1.021c0-0.381-0.064-0.724-0.193-1.026
+ c-0.1-0.241-0.25-0.429-0.45-0.562c-0.201-0.135-0.427-0.201-0.679-0.201z"/>
+ <path style="fill:#4D4D4D;stroke:none;" d="M805.43,249.027v-0.359c0.263-0.029,0.459-0.065,0.589-0.107c0.129-0.041,0.316-0.131,0.562-0.268h0.318v0.854c0.386-0.332,0.716-0.558,0.989-0.676s0.551-0.178,0.832-0.178c0.239,0,0.451,0.04,0.636,0.121
+ c0.185,0.08,0.334,0.189,0.45,0.327c0.115,0.138,0.191,0.294,0.229,0.47c0.023,0.108,0.035,0.272,0.035,0.492v1.934c0,0.229,0.017,0.375,0.051,0.44c0.033,0.065,0.087,0.112,0.16,0.142c0.073,0.028,0.253,0.043,0.539,0.043v0.375h-2.234v-0.375h0.12
+ c0.206,0,0.346-0.02,0.42-0.057c0.074-0.039,0.128-0.094,0.161-0.167c0.032-0.073,0.049-0.223,0.049-0.448v-1.601c0-0.331-0.027-0.56-0.081-0.688c-0.055-0.128-0.147-0.231-0.278-0.312c-0.132-0.079-0.297-0.119-0.497-0.119c-0.238,0-0.493,0.061-0.764,0.182
+ c-0.271,0.121-0.533,0.299-0.786,0.535v2.002c0,0.229,0.017,0.381,0.05,0.457s0.087,0.133,0.162,0.171c0.051,0.029,0.189,0.044,0.413,0.044h0.125v0.375h-2.234v-0.375h0.11c0.218,0,0.366-0.019,0.445-0.055c0.08-0.037,0.136-0.102,0.168-0.196
+ c0.018-0.047,0.026-0.208,0.026-0.483v-2.5h-0.766z"/>
+ <path style="fill:none;stroke:none;" d="M24.159,11.71c-1,0-1,0-2,0c2,0,2-1,3-2c0,1-1,2-1,2z"/>
+ </g>
+</svg>
diff --git a/PerformanceTests/PageLoad/svg/svg.pltsuite b/PerformanceTests/PageLoad/svg/svg.pltsuite
new file mode 100644
index 000000000..8242e48a8
--- /dev/null
+++ b/PerformanceTests/PageLoad/svg/svg.pltsuite
@@ -0,0 +1,20 @@
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/33041-Samurai.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/42450-under%20the%20see.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/42470-flower_from_my_garden_v2.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/44057-drops%20on%20a%20blade.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/Harvey_Rayner.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/az-lizard_benji_park_01.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/bamboo_01.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/cacuts_01.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/cowboy.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/crawfish2_ganson.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/deb9frac1.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/food_leif_lodahl_01.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/france.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/francobollo_gnome_ezechi_02.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/gearflowers.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/hereGear4.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/mtsthelens.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/world-iso.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/worldcup.svg
+file:///WEBKIT_PATH/PerformanceTests/PageLoad/svg/files/Sierpinski_carpet_6.svg
diff --git a/PerformanceTests/Parser/css-parser-yui.html b/PerformanceTests/Parser/css-parser-yui.html
new file mode 100644
index 000000000..890338ab8
--- /dev/null
+++ b/PerformanceTests/Parser/css-parser-yui.html
@@ -0,0 +1,2629 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<style id="styleElement" type="text/css">
+/* Some yui Yahoo! library snippet */
+
+/*Copyright (c) 2012, Yahoo! Inc. All rights reserved.
+----------------------------------------------------
+
+Redistribution and use of this software in source and binary forms, with or
+without modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Yahoo! Inc. nor the names of YUI's contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission of Yahoo! Inc.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/
+
+
+/* Vertical menus and submenus */
+
+.yui3-skin-night .yui3-menu-content,
+.yui3-skin-night .yui3-menu .yui3-menu .yui3-menu-content {
+
+ font-size: 100%;
+ line-height: 2.25; /* 18px 1.5*/
+ *line-height: 1.45; /* For IE */
+ border: solid 1px #303030;
+ background: #151515;
+ /*padding: 3px 0;*/
+
+}
+
+.yui3-skin-night .yui3-menu .yui3-menu .yui3-menu-content {
+
+ font-size: 100%;
+
+}
+
+
+/* Horizontal menus */
+.yui3-skin-night .yui3-menu-horizontal .yui3-menu-content {
+
+ line-height: 2; /* ~24px */
+ *line-height: 1.9; /* For IE */
+ background-color:#3b3c3d;
+ background: -moz-linear-gradient(
+ 0% 100% 90deg,
+ #242526 0%,
+ #3b3c3d 96%,
+ #2C2D2F 100%
+ );
+ background: -webkit-gradient(
+ linear,
+ left bottom,
+ left top,
+ from(#242526),
+ color-stop(0.96, #3b3c3d),
+ to(#2C2D2F)
+ );
+ padding: 0;
+
+}
+
+
+.yui3-skin-night .yui3-menu ul,
+.yui3-skin-night .yui3-menu ul ul {
+
+ margin-top: 3px;
+ padding-top: 3px;
+ border-top: solid 1px #303030;
+
+}
+
+.yui3-skin-night .yui3-menu ul.first-of-type {
+
+ border: 0;
+ margin: 0;
+ padding: 0;
+
+}
+
+.yui3-skin-night .yui3-menu-horizontal ul {
+
+ padding: 0;
+ margin: 0;
+ border: 0;
+
+}
+
+
+.yui3-skin-night .yui3-menu li,
+.yui3-skin-night .yui3-menu .yui3-menu li {
+
+ /*
+ For and IE 6 (Strict Mode and Quirks Mode) and IE 7 (Quirks Mode only):
+ Used to collapse superfluous white space between <li> elements that is
+ triggered by the "display" property of the <a> elements being set to
+ "block" by node-menunav-core.css file.
+ */
+
+ _border-bottom: solid 1px #151515;
+
+}
+
+.yui3-skin-night .yui3-menu-horizontal li {
+
+ _border-bottom: 0;
+
+}
+
+.yui3-skin-night .yui3-menubuttonnav li {
+
+ border-right: solid 1px #ccc;
+
+}
+
+.yui3-skin-night .yui3-splitbuttonnav li {
+
+ border-right: solid 1px #303030;
+
+}
+
+.yui3-skin-night .yui3-menubuttonnav li li,
+.yui3-skin-night .yui3-splitbuttonnav li li {
+
+ border-right: 0;
+
+}
+
+
+/* Menuitems and menu labels */
+
+
+.yui3-skin-night .yui3-menu-label,
+.yui3-skin-night .yui3-menu .yui3-menu .yui3-menu-label,
+.yui3-skin-night .yui3-menuitem-content,
+.yui3-skin-night .yui3-menu .yui3-menu .yui3-menuitem-content {
+
+ /*padding: 0 20px;*/
+ padding: 0 1em;
+ /*background-color: #2F3030;*/
+
+
+
+
+
+
+ color: #fff;
+ text-decoration: none;
+ cursor: default;
+
+ /*
+ Necessary specify values for border, position and margin to override
+ values specified in the selectors that follow.
+ */
+
+ float: none;
+ border: 0;
+ margin: 0;
+
+}
+
+.yui3-skin-night .yui3-menu-horizontal .yui3-menu-label,
+.yui3-skin-night .yui3-menu-horizontal .yui3-menuitem-content {
+
+ padding: 0 10px;
+ border-style: solid;
+ border-color: #303030;
+ border-width: 1px 0;
+ margin: -1px 0;
+
+ float: left; /* Ensures that menu labels clear floated descendents.
+ Also gets negative margins working in IE 7
+ (Strict Mode). */
+ width: auto;
+
+}
+
+.yui3-skin-night .yui3-menu-label,
+.yui3-skin-night .yui3-menu .yui3-menu .yui3-menu-label {
+
+ background: url(vertical-menu-submenu-indicator.png) right center no-repeat;
+
+}
+
+.yui3-skin-night .yui3-menu-horizontal .yui3-menu-label {
+
+ background: none;
+
+}
+
+.yui3-skin-night .yui3-menubuttonnav .yui3-menu-label,
+.yui3-skin-night .yui3-splitbuttonnav .yui3-menu-label {
+
+ background-image: none;
+
+}
+
+.yui3-skin-night .yui3-menubuttonnav .yui3-menu-label {
+
+ padding-right: 0;
+
+}
+
+.yui3-skin-night .yui3-menubuttonnav .yui3-menu-label em {
+
+ font-style: normal;
+ padding-right: 20px;
+ display: block;
+ background: url(horizontal-menu-submenu-indicator.png) right center no-repeat;
+
+}
+
+
+.yui3-skin-night .yui3-splitbuttonnav .yui3-menu-label {
+
+ padding: 0;
+
+}
+
+.yui3-skin-night .yui3-splitbuttonnav .yui3-menu-label a {
+
+ float: left;
+ width: auto;
+ color: #fff;
+ text-decoration: none;
+ cursor: default;
+ padding: 0 5px 0 10px;
+
+}
+
+.yui3-skin-night .yui3-splitbuttonnav .yui3-menu-label .yui3-menu-toggle {
+
+ padding: 0; /* Overide padding applied by the preceeding rule. */
+ border-left: solid 1px #303030;
+ width: 15px;
+ overflow: hidden;
+ text-indent: -1000px;
+ background: url(horizontal-menu-submenu-indicator.png) 3px center no-repeat;
+
+}
+
+
+/* Selected menuitem */
+
+.yui3-skin-night .yui3-menu-label-active,
+.yui3-skin-night .yui3-menu-label-menuvisible,
+.yui3-skin-night .yui3-menu .yui3-menu .yui3-menu-label-active,
+.yui3-skin-night .yui3-menu .yui3-menu .yui3-menu-label-menuvisible {
+
+ background-color: #292a2a;
+
+}
+
+.yui3-skin-night .yui3-menuitem-active .yui3-menuitem-content,
+.yui3-skin-night .yui3-menu .yui3-menu .yui3-menuitem-active .yui3-menuitem-content {
+
+ background-image: none;
+ background-color: #292a2a;
+ background: -moz-linear-gradient(
+ 0% 100% 90deg,
+ #252626 0%,
+ #333434 100%
+ );
+ background: -webkit-gradient(
+ linear,
+ left top,
+ left bottom,
+ from(#333434),
+ to(#252626)
+ );
+
+ /*
+ Undo values set for "border-left-width" and "margin-left" when the root
+ menu has a class of "yui-menubuttonnav" or "yui-splitbuttonnav" applied.
+ */
+
+ border-left-width: 0;
+ margin-left: 0;
+
+}
+
+.yui3-skin-night .yui3-menu-horizontal .yui3-menu-label-active,
+.yui3-skin-night .yui3-menu-horizontal .yui3-menuitem-active .yui3-menuitem-content,
+.yui3-skin-night .yui3-menu-horizontal .yui3-menu-label-menuvisible {
+
+ border-color: #303030;
+ background-color:#555658;
+ background: -moz-linear-gradient(
+ 0% 100% 90deg,
+ #343536 0%,
+ #555658 96%,
+ #3E3F41 100%
+ );
+ background: -webkit-gradient(
+ linear,
+ left bottom,
+ left top,
+ from(#343536),
+ color-stop(0.96, #555658),
+ to(#3E3F41)
+ );
+
+}
+
+.yui3-skin-night .yui3-menubuttonnav .yui3-menu-label-active,
+.yui3-skin-night .yui3-menubuttonnav .yui3-menuitem-active .yui3-menuitem-content,
+.yui3-skin-night .yui3-menubuttonnav .yui3-menu-label-menuvisible,
+.yui3-skin-night .yui3-splitbuttonnav .yui3-menu-label-active,
+.yui3-skin-night .yui3-splitbuttonnav .yui3-menuitem-active .yui3-menuitem-content,
+.yui3-skin-night .yui3-splitbuttonnav .yui3-menu-label-menuvisible {
+
+ border-left-width: 1px;
+ margin-left: -1px;
+
+}
+
+.yui3-skin-night .yui3-splitbuttonnav .yui3-menu-label-menuvisible {
+
+ border-color: #303030;
+ background: transparent;
+
+}
+
+.yui3-skin-night .yui3-splitbuttonnav .yui3-menu-label-menuvisible .yui3-menu-toggle {
+
+ border-color: #303030;
+ background-color: #505050;
+
+}
+
+.yui3-skin-sam .yui3-console-separate {
+ position:absolute;
+ right:1em;
+ top:1em;
+ z-index:999;
+}
+
+.yui3-skin-sam .yui3-console-inline {
+ /* xbrowser inline-block styles */
+ display: -moz-inline-stack; /* FF2 */
+ display: inline-block;
+ *display: inline; /* IE 7- (with zoom) */
+ zoom: 1;
+ vertical-align: top;
+}
+.yui3-skin-sam .yui3-console-inline .yui3-console-content {
+ position: relative;
+}
+
+.yui3-skin-sam .yui3-console-content {
+ background: #777;
+ _background: #D8D8DA url(bg.png) repeat-x 0 0;
+ font: normal 13px/1.3 Arial, sans-serif;
+ text-align: left;
+
+ border: 1px solid #777;
+ border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+}
+
+.yui3-skin-sam .yui3-console-hd,
+.yui3-skin-sam .yui3-console-bd,
+.yui3-skin-sam .yui3-console-ft {
+ position: relative;
+}
+
+.yui3-skin-sam .yui3-console-hd,
+.yui3-skin-sam .yui3-console-ft .yui3-console-controls {
+ text-align: right;
+}
+
+.yui3-skin-sam .yui3-console-hd {
+ background: #D8D8DA url(bg.png) repeat-x 0 0;
+ padding: 1ex;
+
+ border: 1px solid transparent;
+ _border: 0 none;
+ border-top-right-radius: 10px;
+ border-top-left-radius: 10px;
+ -moz-border-radius-topright: 10px;
+ -moz-border-radius-topleft: 10px;
+ -webkit-border-top-right-radius: 10px;
+ -webkit-border-top-left-radius: 10px;
+}
+
+.yui3-skin-sam .yui3-console-bd {
+ background: #fff;
+ border-top: 1px solid #777;
+ border-bottom: 1px solid #777;
+ color: #000;
+ font-size: 11px;
+ overflow: auto;
+ overflow-x: auto;
+ overflow-y: scroll;
+ _width: 100%;
+}
+
+.yui3-skin-sam .yui3-console-ft {
+ background: #D8D8DA url(bg.png) repeat-x 0 0;
+
+ border: 1px solid transparent;
+ _border: 0 none;
+ border-bottom-right-radius: 10px;
+ border-bottom-left-radius: 10px;
+ -moz-border-radius-bottomright: 10px;
+ -moz-border-radius-bottomleft: 10px;
+ -webkit-border-bottom-right-radius: 10px;
+ -webkit-border-bottom-left-radius: 10px;
+}
+
+.yui3-skin-sam .yui3-console-controls {
+ padding: 4px 1ex;
+ zoom: 1;
+}
+
+.yui3-skin-sam .yui3-console-title {
+ color: #000;
+ display: inline;
+ float: left;
+ font-weight: bold;
+ font-size: 13px;
+ height: 24px;
+ line-height: 24px;
+ margin: 0;
+ padding-left: 1ex;
+}
+
+.yui3-skin-sam .yui3-console-pause-label {
+ float: left;
+}
+.yui3-skin-sam .yui3-console-button {
+ line-height: 1.3;
+}
+
+.yui3-skin-sam .yui3-console-collapsed .yui3-console-bd,
+.yui3-skin-sam .yui3-console-collapsed .yui3-console-ft {
+ display: none;
+}
+.yui3-skin-sam .yui3-console-content.yui3-console-collapsed {
+ -webkit-border-radius: 0;
+}
+.yui3-skin-sam .yui3-console-collapsed .yui3-console-hd {
+ border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 0;
+}
+
+/* Log entries */
+.yui3-skin-sam .yui3-console-entry {
+ border-bottom: 1px solid #aaa;
+ min-height: 32px;
+ _height: 32px;
+}
+
+.yui3-skin-sam .yui3-console-entry-meta {
+ margin: 0;
+ overflow: hidden;
+}
+
+.yui3-skin-sam .yui3-console-entry-content {
+ margin: 0;
+ padding: 0 1ex;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+.yui3-skin-sam .yui3-console-entry-meta .yui3-console-entry-src {
+ color: #000;
+ font-style: italic;
+ font-weight: bold;
+ float: right;
+ margin: 2px 5px 0 0;
+}
+.yui3-skin-sam .yui3-console-entry-meta .yui3-console-entry-time {
+ color: #777;
+ padding-left: 1ex;
+}
+.yui3-skin-sam .yui3-console-entry-warn .yui3-console-entry-meta .yui3-console-entry-time {
+ color: #555;
+}
+
+.yui3-skin-sam .yui3-console-entry-info .yui3-console-entry-meta .yui3-console-entry-cat,
+.yui3-skin-sam .yui3-console-entry-warn .yui3-console-entry-meta .yui3-console-entry-cat,
+.yui3-skin-sam .yui3-console-entry-error .yui3-console-entry-meta .yui3-console-entry-cat {
+ display: none;
+}
+.yui3-skin-sam .yui3-console-entry-warn {
+ background: #aee url(warn_error.png) no-repeat -15px 15px;
+}
+.yui3-skin-sam .yui3-console-entry-error {
+ background: #ffa url(warn_error.png) no-repeat 5px -24px;
+ color: #900;
+}
+.yui3-skin-sam .yui3-console-entry-warn .yui3-console-entry-content,
+.yui3-skin-sam .yui3-console-entry-error .yui3-console-entry-content {
+ padding-left: 24px;
+}
+.yui3-skin-sam .yui3-console-entry-cat {
+ text-transform: uppercase;
+ padding: 1px 4px;
+ background-color: #ccc;
+}
+.yui3-skin-sam .yui3-console-entry-info .yui3-console-entry-cat {
+ background-color: #ac2;
+}
+.yui3-skin-sam .yui3-console-entry-warn .yui3-console-entry-cat {
+ background-color: #e81;
+}
+.yui3-skin-sam .yui3-console-entry-error .yui3-console-entry-cat {
+ background-color: #b00;
+ color: #fff;
+}
+
+.yui3-skin-sam .yui3-console-hidden { display: none; }
+
+/*
+Font sizes for all selectors other than the body are given in percentages,
+with 100% equal to 13px. To calculate a font size percentage, multiply the
+desired size in pixels by 7.6923076923.
+
+Here's a quick lookup table:
+
+10px - 76.923%
+11px - 84.615%
+12px - 92.308%
+13px - 100%
+14px - 107.692%
+15px - 115.385%
+16px - 123.077%
+17px - 130.769%
+18px - 138.462%
+19px - 146.154%
+20px - 153.846%
+*/
+
+html {
+ background: #fff;
+ color: #333;
+ overflow-y: scroll;
+}
+
+body {
+ font: 13px/1.4 'Lucida Grande', 'Lucida Sans Unicode', 'DejaVu Sans', 'Bitstream Vera Sans', 'Helvetica', 'Arial', sans-serif;
+ margin: 0;
+ padding: 0;
+}
+
+/* -- Links ----------------------------------------------------------------- */
+a {
+ color: #356de4;
+ text-decoration: none;
+}
+
+a:hover { text-decoration: underline; }
+
+/* "Jump to Table of Contents" link is shown to assistive tools, but hidden from
+ sight until it's focused. */
+.jump {
+ position: absolute;
+ padding: 3px 6px;
+ left: -99999px;
+ top: 0;
+}
+
+.jump:focus { left: 40%; }
+
+/* -- Paragraphs ------------------------------------------------------------ */
+p { margin: 1.3em 0; }
+dd p, td p { margin-bottom: 0; }
+dd p:first-child, td p:first-child { margin-top: 0; }
+
+/* -- Headings -------------------------------------------------------------- */
+h1, h2, h3, h4, h5, h6 {
+ font-weight: bold;
+ line-height: 1.1;
+ margin: 1.5em 0 1em;
+}
+
+h2, h3, h4, h5, h6 { color: #f80; }
+
+h1 {
+ font-family: Verdana, 'DejaVu Sans', 'Bitstream Vera Sans', Helvetica, sans-serif;
+ font-size: 261.538%; /* 34px */
+ margin: 25px 0 18px 25px;
+ -moz-text-shadow: 1px 1px 2px #999;
+ -webkit-text-shadow: 1px 1px 2px #999;
+ text-shadow: 1px 1px 2px #999;
+}
+
+h2 {
+ font-size: 153.846%;
+ margin-top: 1.2em;
+}
+
+h3 { font-size: 138.462%; }
+
+h4 {
+ border-bottom: 1px solid #d9d9d9;
+ color: #555;
+ font-size: 115.385%;
+ font-weight: normal;
+ text-transform: uppercase;
+}
+
+h5, h6 { font-size: 107.692%; }
+
+/* -- Code and examples ----------------------------------------------------- */
+code, kbd, pre, samp {
+ font-family: Menlo, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Consolas', 'Monaco', fixed;
+ font-size: 92.308%;
+ line-height: 1.35;
+}
+
+p code, p kbd, p samp {
+ background: #f6f6f6;
+ border: 1px solid #ededed;
+ padding: 0 3px;
+}
+
+a code, a kbd, a samp,
+pre code, pre kbd, pre samp,
+table code, table kbd, table samp,
+.intro code, .intro kbd, .intro samp,
+.toc code, .toc kbd, .toc samp {
+ background: none;
+ border: none;
+ padding: 0;
+}
+
+pre.code, pre.terminal {
+ overflow-x: auto;
+ *overflow-x: scroll;
+ padding: 0.3em 0.6em;
+}
+
+pre.code {
+ background: #f8f8f8;
+ border: 1px solid #ececec;
+ border-left: 5px solid #e2e2e2;
+}
+
+pre.terminal {
+ background: #F0EFFC;
+ border: 1px solid #D0CBFB;
+ border-left: 5px solid #D0CBFB;
+}
+
+/* Don't reduce the font size of <code>/<kbd>/<samp> elements inside <pre>
+ blocks. */
+pre code, pre kbd, pre samp { font-size: 100%; }
+
+/* Used to denote text that shouldn't be selectable, such as line numbers or
+ shell prompts. Guess which browser this doesn't work in. */
+.noselect {
+ -moz-user-select: -moz-none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+}
+
+/* -- Tables ---------------------------------------------------------------- */
+caption, th { text-align: left; }
+
+table {
+ border-collapse: collapse;
+ width: 100%;
+}
+
+td, th {
+ border: 1px solid #fff;
+ padding: 5px 12px;
+ vertical-align: top;
+}
+
+td { background: #E5EDF1; }
+td dl { margin: 0; }
+td dl dl { margin: 1em 0; }
+td pre:first-child { margin-top: 0; }
+
+th {
+ background: #6C8EA1;
+ color: #fff;
+ font-weight: bold;
+ line-height: 1.3;
+ text-transform: uppercase;
+ white-space: nowrap;
+}
+
+/* -- Lists ----------------------------------------------------------------- */
+.spaced li { margin: 0.8em 0; }
+
+dd { margin: 0.2em 0 0.7em 1em; }
+dl { margin: 1em 0; }
+dt { font-weight: bold; }
+
+/* -- Layout and Content ---------------------------------------------------- */
+#doc {
+ margin: auto;
+ width: 1024px;
+}
+
+#main { width: 754px; }
+#sidebar { width: 270px; }
+
+.content { padding: 0 20px 0 25px; }
+
+/* -- Sidebar --------------------------------------------------------------- */
+.sidebox {
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 0 3px #afafaf;
+ -webkit-box-shadow: 0 0 3px #afafaf;
+ box-shadow: 0 0 3px #afafaf;
+ font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'Helvetica', 'Arial', sans-serif;
+ margin: 0 20px 15px 5px;
+ padding: 2px;
+}
+
+.sidebox h2 {
+ background: #efefef;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ color: #333;
+ font-size: 107.692%;
+ margin: 0;
+ padding: 2px 6px 3px;
+}
+
+.sidebox .bd { font-size: 84.615%; }
+.sidebox li { list-style-type: square; }
+
+.sidebox ol, .sidebox ul {
+ margin-left: 0;
+ padding-left: 24px;
+}
+
+.sidebox ol ol, .sidebox ol ul,
+.sidebox ul ol, .sidebox ul ul {
+ margin: 0;
+ padding-left: 16px;
+}
+
+/* -- Table of Contents ----------------------------------------------------- */
+
+/* The #toc id refers to the single global table of contents, while the .toc
+ class refers to generic TOC lists that could be used throughout the page. */
+
+.toc code, .toc kbd, .toc samp { font-size: 100%; }
+.toc li { font-weight: bold; }
+.toc li li { font-weight: normal; }
+
+/* -- Intro and Example Boxes ----------------------------------------------- */
+.intro, .example { margin-bottom: 2em; }
+
+.example {
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 0 5px #bfbfbf;
+ -webkit-box-shadow: 0 0 5px #bfbfbf;
+ box-shadow: 0 0 5px #bfbfbf;
+ padding: 1em;
+}
+
+.intro {
+ background: #E2EEFB;
+ border: 1px solid #BDD6F4;
+ padding: 0em 1em;
+}
+
+/* -- Other Styles ---------------------------------------------------------- */
+
+/* These are probably YUI-specific, and should be moved out of Selleck's default
+ theme. */
+
+.button {
+ border: 1px solid #dadada;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ color: #444;
+ display: inline-block;
+ font-family: Helvetica, Arial, sans-serif;
+ font-size: 92.308%;
+ font-weight: bold;
+ padding: 4px 13px 3px;
+ -moz-text-shadow: 1px 1px 0 #fff;
+ -webkit-text-shadow: 1px 1px 0 #fff;
+ text-shadow: 1px 1px 0 #fff;
+ white-space: nowrap;
+
+ background: #EFEFEF; /* old browsers */
+ background: -moz-linear-gradient(top, #f5f5f5 0%, #efefef 50%, #e5e5e5 51%, #dfdfdf 100%); /* firefox */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(50%,#efefef), color-stop(51%,#e5e5e5), color-stop(100%,#dfdfdf)); /* webkit */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#dfdfdf',GradientType=0 ); /* ie */
+}
+
+.button:hover {
+ border-color: #466899;
+ color: #fff;
+ text-decoration: none;
+ -moz-text-shadow: 1px 1px 0 #222;
+ -webkit-text-shadow: 1px 1px 0 #222;
+ text-shadow: 1px 1px 0 #222;
+
+ background: #6396D8; /* old browsers */
+ background: -moz-linear-gradient(top, #6396D8 0%, #5A83BC 50%, #547AB7 51%, #466899 100%); /* firefox */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6396D8), color-stop(50%,#5A83BC), color-stop(51%,#547AB7), color-stop(100%,#466899)); /* webkit */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6396D8', endColorstr='#466899',GradientType=0 ); /* ie */
+}
+
+.newwindow { text-align: center; }
+
+/* Vertical menus and submenus */
+
+.yui3-skin-sam .yui3-menu-content,
+.yui3-skin-sam .yui3-menu .yui3-menu .yui3-menu-content {
+
+ font-size: 93%; /* 12px */
+ line-height: 1.5; /* 18px */
+ *line-height: 1.45; /* For IE */
+ border: solid 1px #808080;
+ background: #fff;
+ padding: 3px 0;
+
+}
+
+.yui3-skin-sam .yui3-menu .yui3-menu .yui3-menu-content {
+
+ font-size: 100%;
+
+}
+
+
+/* Horizontal menus */
+
+.yui3-skin-sam .yui3-menu-horizontal .yui3-menu-content {
+
+ line-height: 2; /* ~24px */
+ *line-height: 1.9; /* For IE */
+ background: url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;
+ padding: 0;
+
+}
+
+
+.yui3-skin-sam .yui3-menu ul,
+.yui3-skin-sam .yui3-menu ul ul {
+
+ margin-top: 3px;
+ padding-top: 3px;
+ border-top: solid 1px #ccc;
+
+}
+
+.yui3-skin-sam .yui3-menu ul.first-of-type {
+
+ border: 0;
+ margin: 0;
+ padding: 0;
+
+}
+
+.yui3-skin-sam .yui3-menu-horizontal ul {
+
+ padding: 0;
+ margin: 0;
+ border: 0;
+
+}
+
+
+.yui3-skin-sam .yui3-menu li,
+.yui3-skin-sam .yui3-menu .yui3-menu li {
+
+ /*
+ For and IE 6 (Strict Mode and Quirks Mode) and IE 7 (Quirks Mode only):
+ Used to collapse superfluous white space between <li> elements that is
+ triggered by the "display" property of the <a> elements being set to
+ "block" by node-menunav-core.css file.
+ */
+
+ _border-bottom: solid 1px #fff;
+
+}
+
+.yui3-skin-sam .yui3-menu-horizontal li {
+
+ _border-bottom: 0;
+
+}
+
+.yui3-skin-sam .yui3-menubuttonnav li {
+
+ border-right: solid 1px #ccc;
+
+}
+
+.yui3-skin-sam .yui3-splitbuttonnav li {
+
+ border-right: solid 1px #808080;
+
+}
+
+.yui3-skin-sam .yui3-menubuttonnav li li,
+.yui3-skin-sam .yui3-splitbuttonnav li li {
+
+ border-right: 0;
+
+}
+
+
+/* Menuitems and menu labels */
+
+
+.yui3-skin-sam .yui3-menu-label,
+.yui3-skin-sam .yui3-menu .yui3-menu .yui3-menu-label,
+.yui3-skin-sam .yui3-menuitem-content,
+.yui3-skin-sam .yui3-menu .yui3-menu .yui3-menuitem-content {
+
+ /*padding: 0 20px;*/
+ padding: 0 1em;
+ color: #000;
+ text-decoration: none;
+ cursor: default;
+
+ /*
+ Necessary specify values for border, position and margin to override
+ values specified in the selectors that follow.
+ */
+
+ float: none;
+ border: 0;
+ margin: 0;
+
+}
+
+.yui3-skin-sam .yui3-menu-horizontal .yui3-menu-label,
+.yui3-skin-sam .yui3-menu-horizontal .yui3-menuitem-content {
+
+ padding: 0 10px;
+ border-style: solid;
+ border-color: #808080;
+ border-width: 1px 0;
+ margin: -1px 0;
+
+ float: left; /* Ensures that menu labels clear floated descendents.
+ Also gets negative margins working in IE 7
+ (Strict Mode). */
+ width: auto;
+
+}
+
+.yui3-skin-sam .yui3-menu-label,
+.yui3-skin-sam .yui3-menu .yui3-menu .yui3-menu-label {
+
+ background: url(vertical-menu-submenu-indicator.png) right center no-repeat;
+
+}
+
+.yui3-skin-sam .yui3-menu-horizontal .yui3-menu-label {
+
+ background: url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;
+
+}
+
+.yui3-skin-sam .yui3-menubuttonnav .yui3-menu-label,
+.yui3-skin-sam .yui3-splitbuttonnav .yui3-menu-label {
+
+ background-image: none;
+
+}
+
+.yui3-skin-sam .yui3-menubuttonnav .yui3-menu-label {
+
+ padding-right: 0;
+
+}
+
+.yui3-skin-sam .yui3-menubuttonnav .yui3-menu-label em {
+
+ font-style: normal;
+ padding-right: 20px;
+ display: block;
+ background: url(horizontal-menu-submenu-indicator.png) right center no-repeat;
+
+}
+
+
+.yui3-skin-sam .yui3-splitbuttonnav .yui3-menu-label {
+
+ padding: 0;
+
+}
+
+.yui3-skin-sam .yui3-splitbuttonnav .yui3-menu-label a {
+
+ float: left;
+ width: auto;
+ color: #000;
+ text-decoration: none;
+ cursor: default;
+ padding: 0 5px 0 10px;
+
+}
+
+.yui3-skin-sam .yui3-splitbuttonnav .yui3-menu-label .yui3-menu-toggle {
+
+ padding: 0; /* Overide padding applied by the preceeding rule. */
+ border-left: solid 1px #ccc;
+ width: 15px;
+ overflow: hidden;
+ text-indent: -1000px;
+ background: url(horizontal-menu-submenu-indicator.png) 3px center no-repeat;
+
+}
+
+
+/* Selected menuitem */
+
+.yui3-skin-sam .yui3-menu-label-active,
+.yui3-skin-sam .yui3-menu-label-menuvisible,
+.yui3-skin-sam .yui3-menu .yui3-menu .yui3-menu-label-active,
+.yui3-skin-sam .yui3-menu .yui3-menu .yui3-menu-label-menuvisible {
+
+ background-color: #B3D4FF;
+
+}
+
+.yui3-skin-sam .yui3-menuitem-active .yui3-menuitem-content,
+.yui3-skin-sam .yui3-menu .yui3-menu .yui3-menuitem-active .yui3-menuitem-content {
+
+ background-image: none;
+ background-color: #B3D4FF;
+
+ /*
+ Undo values set for "border-left-width" and "margin-left" when the root
+ menu has a class of "yui-menubuttonnav" or "yui-splitbuttonnav" applied.
+ */
+
+ border-left-width: 0;
+ margin-left: 0;
+
+}
+
+.yui3-skin-sam .yui3-menu-horizontal .yui3-menu-label-active,
+.yui3-skin-sam .yui3-menu-horizontal .yui3-menuitem-active .yui3-menuitem-content,
+.yui3-skin-sam .yui3-menu-horizontal .yui3-menu-label-menuvisible {
+
+ border-color: #7D98B8;
+ background: url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1700px;
+
+}
+
+.yui3-skin-sam .yui3-menubuttonnav .yui3-menu-label-active,
+.yui3-skin-sam .yui3-menubuttonnav .yui3-menuitem-active .yui3-menuitem-content,
+.yui3-skin-sam .yui3-menubuttonnav .yui3-menu-label-menuvisible,
+.yui3-skin-sam .yui3-splitbuttonnav .yui3-menu-label-active,
+.yui3-skin-sam .yui3-splitbuttonnav .yui3-menuitem-active .yui3-menuitem-content,
+.yui3-skin-sam .yui3-splitbuttonnav .yui3-menu-label-menuvisible {
+
+ border-left-width: 1px;
+ margin-left: -1px;
+
+}
+
+.yui3-skin-sam .yui3-splitbuttonnav .yui3-menu-label-menuvisible {
+
+ border-color: #808080;
+ background: transparent;
+
+}
+
+.yui3-skin-sam .yui3-splitbuttonnav .yui3-menu-label-menuvisible .yui3-menu-toggle {
+
+ border-color: #7D98B8;
+ background: url(horizontal-menu-submenu-toggle.png) left center no-repeat;
+
+}
+
+
+/*
+*
+* The YUI CSS Foundation uses the *property and _property CSS filter
+* techniques to shield a value from A-grade browsers [1] other than
+* IE6 & IE7 (*property) and IE6 (_property)
+*
+/
+Section: General Rules
+*/
+.yui3-cssgrids body {
+ /* center the page */
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+}
+/*
+Section: Page Width Rules (#doc, #doc2, #doc3, #doc4)
+*/
+/*
+Subsection: General
+*/
+.yui3-cssgrids .yui3-d0, /* 100% */
+.yui3-cssgrids .yui3-d1, /* 750px */
+.yui3-cssgrids .yui3-d1f, /* 750px fixed */
+.yui3-cssgrids .yui3-d2, /* 950px */
+.yui3-cssgrids .yui3-d2f, /* 950px fixed */
+.yui3-cssgrids .yui3-d3, /* 974px */
+.yui3-cssgrids .yui3-d3f { /* 974px fixed */
+ margin: auto;
+ text-align: left;
+ width: 57.69em;
+ *width: 56.25em; /* doc1*/
+}
+
+.yui3-cssgrids .yui3-t1,
+.yui3-cssgrids .yui3-t2,
+.yui3-cssgrids .yui3-t3,
+.yui3-cssgrids .yui3-t4,
+.yui3-cssgrids .yui3-t5,
+.yui3-cssgrids .yui3-t6 {
+ margin: auto;
+ text-align: left;
+ width: 100%;
+}
+
+/*
+Subsection: 100% (doc)
+*/
+.yui3-cssgrids .yui3-d0 {
+ /* Left and Right margins are not a structural part of Grids. Without them Grids
+ works fine, but content bleeds to the very edge of the document, which often
+ impairs readability and usability. They are
+ provided because they prevent the content from "bleeding" into the browser's chrome.*/
+ margin: auto 10px;
+ width: auto;
+}
+.yui3-cssgrids .yui3-d0f {
+ width: 100%;
+}
+
+/*
+Subsection: 950 Centered (doc2)
+*/
+.yui3-cssgrids .yui3-d2 {
+ width: 73.076em;
+ *width: 71.25em;
+}
+.yui3-cssgrids .yui3-d2f {
+ width: 950px;
+}
+/*
+Subsection: 974 Centered (doc3)
+*/
+.yui3-cssgrids .yui3-d3 {
+ width: 74.923em;
+ *width: 73.05em;
+}
+.yui3-cssgrids .yui3-d3f {
+ width: 974px;
+}
+/*
+Section: Preset Template Rules (.yui3-t[1-6])
+*/
+/*
+Subsection: General
+*/
+
+/* to preserve source-order independence for Gecko without breaking IE */
+.yui3-cssgrids .yui3-b {
+ position: relative;
+}
+.yui3-cssgrids .yui3-b {
+ _position: static;
+}
+.yui3-cssgrids .yui3-main .yui3-b {
+ position: static;
+}
+.yui3-cssgrids .yui3-main {
+ width: 100%;
+}
+.yui3-cssgrids .yui3-t1 .yui3-main,
+.yui3-cssgrids .yui3-t2 .yui3-main,
+.yui3-cssgrids .yui3-t3 .yui3-main {
+ float: right;
+ /* IE: preserve layout at narrow widths */
+ margin-left: -25em;
+}
+.yui3-cssgrids .yui3-t4 .yui3-main,
+.yui3-cssgrids .yui3-t5 .yui3-main,
+.yui3-cssgrids .yui3-t6 .yui3-main {
+ float: left;
+ /* IE: preserve layout at narrow widths */
+ margin-right: -25em;
+}
+
+/* Subsection: For Specific Template Presets */
+
+/**
+* Nudge down to get to 13px equivalent for these form elements
+*/
+
+/*
+TODO Create t1-6's that are based on fixed widths
+*/
+/* t1 narrow block = left, equivalent of 160px */
+.yui3-cssgrids .yui3-t1 .yui3-b {
+ float: left;
+ width: 12.30769em;
+ *width: 12.00em;
+}
+.yui3-cssgrids .yui3-t1 .yui3-main .yui3-b {
+ margin-left: 13.30769em;
+ *margin-left:12.975em;
+}
+/* t2 narrow block = left, equivalent of 180px */
+.yui3-cssgrids .yui3-t2 .yui3-b {
+ float: left;
+ width: 13.84615em;
+ *width: 13.50em;
+}
+.yui3-cssgrids .yui3-t2 .yui3-main .yui3-b {
+ margin-left: 14.84615em;
+ *margin-left: 14.475em;
+}
+/* t3 narrow block = left, equivalent of 300px */
+.yui3-cssgrids .yui3-t3 .yui3-b {
+ float: left;
+ width: 23.0769em;
+ *width: 22.50em;
+}
+.yui3-cssgrids .yui3-t3 .yui3-main .yui3-b {
+ margin-left: 24.0769em;
+ *margin-left: 23.475em;
+}
+/* t4 narrow block = right, equivalent of 180px */
+.yui3-cssgrids .yui3-t4 .yui3-b {
+ float: right;
+ width: 13.8456em;
+ *width: 13.50em;
+}
+.yui3-cssgrids .yui3-t4 .yui3-main .yui3-b {
+ margin-right: 14.8456em;
+ *margin-right: 14.475em;
+}
+/* t5 narrow block = right, equivalent of 240px */
+.yui3-cssgrids .yui3-t5 .yui3-b {
+ float: right;
+ width: 18.4615em;
+ *width: 18.00em;
+}
+.yui3-cssgrids .yui3-t5 .yui3-main .yui3-b {
+ margin-right: 19.4615em;
+ *margin-right: 18.975em;
+}
+/* t6 narrow block = equivalent of 300px */
+.yui3-cssgrids .yui3-t6 .yui3-b {
+ float: right;
+ width: 23.0769em;
+ *width: 22.50em;
+}
+.yui3-cssgrids .yui3-t6 .yui3-main .yui3-b {
+ margin-right: 24.0769em;
+ *margin-right: 23.475em;
+}
+
+.yui3-cssgrids .yui3-main .yui3-b {
+ float: none;
+ width: auto;
+}
+
+/*
+Section: Grids and Nesting Grids
+*/
+
+/*
+Subsection: Children generally take half the available space
+*/
+
+.yui3-cssgrids .yui3-gb .yui3-u,
+.yui3-cssgrids .yui3-g .yui3-gb .yui3-u,
+.yui3-cssgrids .yui3-gb .yui3-g,
+.yui3-cssgrids .yui3-gb .yui3-gb,
+.yui3-cssgrids .yui3-gb .yui3-gc,
+.yui3-cssgrids .yui3-gb .yui3-gd,
+.yui3-cssgrids .yui3-gb .yui3-ge,
+.yui3-cssgrids .yui3-gb .yui3-gf,
+.yui3-cssgrids .yui3-gc .yui3-u,
+.yui3-cssgrids .yui3-gc .yui3-g,
+.yui3-cssgrids .yui3-gd .yui3-u {
+ float: left;
+}
+
+/*Float units (and sub grids) to the right */
+.yui3-cssgrids .yui3-g .yui3-u,
+.yui3-cssgrids .yui3-g .yui3-g,
+.yui3-cssgrids .yui3-g .yui3-gb,
+.yui3-cssgrids .yui3-g .yui3-gc,
+.yui3-cssgrids .yui3-g .yui3-gd,
+.yui3-cssgrids .yui3-g .yui3-ge,
+.yui3-cssgrids .yui3-g .yui3-gf,
+.yui3-cssgrids .yui3-gc .yui3-u,
+.yui3-cssgrids .yui3-gd .yui3-g,
+.yui3-cssgrids .yui3-g .yui3-gc .yui3-u,
+.yui3-cssgrids .yui3-ge .yui3-u,
+.yui3-cssgrids .yui3-ge .yui3-g,
+.yui3-cssgrids .yui3-gf .yui3-g,
+.yui3-cssgrids .yui3-gf .yui3-u {
+ float: right;
+}
+
+/*Float units (and sub grids) to the left */
+.yui3-cssgrids .yui3-g div.first,
+.yui3-cssgrids .yui3-gb div.first,
+.yui3-cssgrids .yui3-gc div.first,
+.yui3-cssgrids .yui3-gd div.first,
+.yui3-cssgrids .yui3-ge div.first,
+.yui3-cssgrids .yui3-gf div.first,
+.yui3-cssgrids .yui3-g .yui3-gc div.first,
+.yui3-cssgrids .yui3-g .yui3-ge div.first,
+.yui3-cssgrids .yui3-gc div.first div.first {
+ float: left;
+}
+
+.yui3-cssgrids .yui3-g .yui3-u,
+.yui3-cssgrids .yui3-g .yui3-g,
+.yui3-cssgrids .yui3-g .yui3-gb,
+.yui3-cssgrids .yui3-g .yui3-gc,
+.yui3-cssgrids .yui3-g .yui3-gd,
+.yui3-cssgrids .yui3-g .yui3-ge,
+.yui3-cssgrids .yui3-g .yui3-gf {
+ width: 49.1%;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-u,
+.yui3-cssgrids .yui3-g .yui3-gb .yui3-u,
+.yui3-cssgrids .yui3-gb .yui3-g,
+.yui3-cssgrids .yui3-gb .yui3-gb,
+.yui3-cssgrids .yui3-gb .yui3-gc,
+.yui3-cssgrids .yui3-gb .yui3-gd,
+.yui3-cssgrids .yui3-gb .yui3-ge,
+.yui3-cssgrids .yui3-gb .yui3-gf,
+.yui3-cssgrids .yui3-gc .yui3-u,
+.yui3-cssgrids .yui3-gc .yui3-g,
+.yui3-cssgrids .yui3-gd .yui3-u {
+ width: 32%;
+ margin-left: 2.0%;
+}
+
+/* Give IE some extra breathing room for 1/3-based rounding issues */
+.yui3-cssgrids .yui3-gb .yui3-u {
+ *width: 31.8%;
+ *margin-left: 1.9%;
+}
+
+.yui3-cssgrids .yui3-gc div.first,
+.yui3-cssgrids .yui3-gd .yui3-u {
+ width: 66%;
+ _width: 65.7%;
+}
+.yui3-cssgrids .yui3-gd div.first {
+ width: 32%;
+ _width: 31.5%;
+}
+
+.yui3-cssgrids .yui3-ge div.first,
+.yui3-cssgrids .yui3-gf .yui3-u {
+ width: 74.2%;
+ _width: 74%;
+}
+
+.yui3-cssgrids .yui3-ge .yui3-u,
+.yui3-cssgrids .yui3-gf div.first {
+ width: 24%;
+ _width: 23.8%;
+}
+
+.yui3-cssgrids .yui3-g .yui3-gb div.first,
+.yui3-cssgrids .yui3-gb div.first,
+.yui3-cssgrids .yui3-gc div.first,
+.yui3-cssgrids .yui3-gd div.first {
+ margin-left: 0;
+}
+
+/*
+Section: Deep Nesting
+*/
+.yui3-cssgrids .yui3-g .yui3-g .yui3-u,
+.yui3-cssgrids .yui3-gb .yui3-g .yui3-u,
+.yui3-cssgrids .yui3-gc .yui3-g .yui3-u,
+.yui3-cssgrids .yui3-gd .yui3-g .yui3-u,
+.yui3-cssgrids .yui3-ge .yui3-g .yui3-u,
+.yui3-cssgrids .yui3-gf .yui3-g .yui3-u {
+ width: 49%;
+ *width: 48.1%;
+ *margin-left: 0;
+}
+
+.yui3-cssgrids .yui3-g .yui3-gb div.first,
+.yui3-cssgrids .yui3-gb .yui3-gb div.first {
+ *margin-right: 0;
+ *width: 32%;
+ _width: 31.7%;
+}
+
+.yui3-cssgrids .yui3-g .yui3-gc div.first,
+.yui3-cssgrids .yui3-gd .yui3-g {
+ width: 66%;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-g div.first {
+ *margin-right: 4%;
+ _margin-right: 1.3%;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-gc div.first,
+.yui3-cssgrids .yui3-gb .yui3-gd div.first {
+ *margin-right: 0;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-gb .yui3-u,
+.yui3-cssgrids .yui3-gb .yui3-gc .yui3-u {
+ *margin-left: 1.8%;
+ _margin-left: 4%;
+}
+
+.yui3-cssgrids .yui3-g .yui3-gb .yui3-u {
+ _margin-left: 1.0%;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-gd .yui3-u {
+ *width: 66%;
+ _width: 61.2%;
+}
+.yui3-cssgrids .yui3-gb .yui3-gd div.first {
+ *width: 31%;
+ _width: 29.5%;
+}
+
+.yui3-cssgrids .yui3-g .yui3-gc .yui3-u,
+.yui3-cssgrids .yui3-gb .yui3-gc .yui3-u {
+ width: 32%;
+ _float: right;
+ margin-right: 0;
+ _margin-left: 0;
+}
+.yui3-cssgrids .yui3-gb .yui3-gc div.first {
+ width: 66%;
+ *float: left;
+ *margin-left: 0;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-ge .yui3-u,
+.yui3-cssgrids .yui3-gb .yui3-gf .yui3-u {
+ margin: 0;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-gb .yui3-u {
+ _margin-left: .7%;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-g div.first,
+.yui3-cssgrids .yui3-gb .yui3-gb div.first {
+ *margin-left:0;
+}
+
+.yui3-cssgrids .yui3-gc .yui3-g .yui3-u,
+.yui3-cssgrids .yui3-gd .yui3-g .yui3-u {
+ *width: 48.1%;
+ *margin-left: 0;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-gd div.first {
+ width: 32%;
+}
+.yui3-cssgrids .yui3-g .yui3-gd div.first {
+ _width: 29.9%;
+}
+
+.yui3-cssgrids .yui3-ge .yui3-g {
+ width: 24%;
+}
+.yui3-cssgrids .yui3-gf .yui3-g {
+ width: 74.2%;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-ge div.yui3-u,
+.yui3-cssgrids .yui3-gb .yui3-gf div.yui3-u {
+ float: right;
+}
+.yui3-cssgrids .yui3-gb .yui3-ge div.first,
+.yui3-cssgrids .yui3-gb .yui3-gf div.first {
+ float: left;
+}
+
+/* Width Accommodation for Nested Contexts */
+.yui3-cssgrids .yui3-gb .yui3-ge .yui3-u,
+.yui3-cssgrids .yui3-gb .yui3-gf div.first {
+ *width: 24%;
+ _width: 20%;
+}
+
+/* Width Accommodation for Nested Contexts */
+
+.yui3-cssgrids .yui3-gc .yui3-gf .yui3-u {
+ width: 74%;
+ _width: 73%;
+}
+
+.yui3-cssgrids .yui3-gc .yui3-gf div.first {
+ width: 24%;
+}
+
+.yui3-cssgrids .yui3-gb .yui3-ge div.first,
+.yui3-cssgrids .yui3-gb .yui3-gf .yui3-u {
+ *width: 73.5%;
+ _width: 65.5%;
+}
+
+/* Patch for GD within GE */
+.yui3-cssgrids .yui3-ge div.first .yui3-gd .yui3-u {
+ width: 65%;
+}
+.yui3-cssgrids .yui3-ge div.first .yui3-gd div.first {
+ width: 32%;
+}
+
+/*
+Section: Clearing. zoom for IE, :after for others
+*/
+
+.yui3-cssgrids #bd:after,
+.yui3-cssgrids .yui3-g:after,
+.yui3-cssgrids .yui3-gb:after,
+.yui3-cssgrids .yui3-gc:after,
+.yui3-cssgrids .yui3-gd:after,
+.yui3-cssgrids .yui3-ge:after,
+.yui3-cssgrids .yui3-gf:after,
+.yui3-cssgrids .yui3-t1:after,
+.yui3-cssgrids .yui3-t2:after,
+.yui3-cssgrids .yui3-t3:after,
+.yui3-cssgrids .yui3-t4:after,
+.yui3-cssgrids .yui3-t5:after,
+.yui3-cssgrids .yui3-t6:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+.yui3-cssgrids #bd,
+.yui3-cssgrids .yui3-g,
+.yui3-cssgrids .yui3-gb,
+.yui3-cssgrids .yui3-gc,
+.yui3-cssgrids .yui3-gd,
+.yui3-cssgrids .yui3-ge,
+.yui3-cssgrids .yui3-gf,
+.yui3-cssgrids .yui3-t1,
+.yui3-cssgrids .yui3-t2,
+.yui3-cssgrids .yui3-t3,
+.yui3-cssgrids .yui3-t4,
+.yui3-cssgrids .yui3-t5,
+.yui3-cssgrids .yui3-t6 {
+ zoom: 1;
+}
+
+
+/* Style for a "Recommendation" */
+
+/*
+ Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved.
+ The following software licensing rules apply:
+ http://www.w3.org/Consortium/Legal/copyright-software */
+
+/* $Id: base.css,v 1.25 2006/04/18 08:42:53 bbos Exp $ */
+
+body {
+ padding: 2em 1em 2em 70px;
+ margin: 0;
+ font-family: sans-serif;
+ color: black;
+ background: white;
+ background-position: top left;
+ background-attachment: fixed;
+ background-repeat: no-repeat;
+}
+:link { color: #00C; background: transparent }
+:visited { color: #609; background: transparent }
+a:active { color: #C00; background: transparent }
+
+a:link img, a:visited img { border-style: none } /* no border on img links */
+
+a img { color: white; } /* trick to hide the border in Netscape 4 */
+@media all { /* hide the next rule from Netscape 4 */
+ a img { color: inherit; } /* undo the color change above */
+}
+
+th, td { /* ns 4 */
+ font-family: sans-serif;
+}
+
+h1, h2, h3, h4, h5, h6 { text-align: left }
+/* background should be transparent, but WebTV has a bug */
+h1, h2, h3 { color: #005A9C; background: white }
+h1 { font: 170% sans-serif }
+h2 { font: 140% sans-serif }
+h3 { font: 120% sans-serif }
+h4 { font: bold 100% sans-serif }
+h5 { font: italic 100% sans-serif }
+h6 { font: small-caps 100% sans-serif }
+
+.hide { display: none }
+
+div.head { margin-bottom: 1em }
+div.head h1 { margin-top: 2em; clear: both }
+div.head table { margin-left: 2em; margin-top: 2em }
+
+p.copyright { font-size: small }
+p.copyright small { font-size: small }
+
+a:hover { background: #ffa }
+
+pre { margin-left: 2em }
+/*
+p {
+ margin-top: 0.6em;
+ margin-bottom: 0.6em;
+}
+*/
+dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
+dt { font-weight: bold }
+
+pre, code { font-family: monospace } /* navigator 4 requires this */
+
+ul.toc, ol.toc {
+ list-style: disc; /* Mac NS has problem with 'none' */
+ list-style: none;
+}
+
+@media aural {
+ h1, h2, h3 { stress: 20; richness: 90 }
+ .hide { speak: none }
+ p.copyright { volume: x-soft; speech-rate: x-fast }
+ dt { pause-before: 20% }
+ pre { speak-punctuation: code }
+}
+
+
+/*
+ * Style sheet for the HTML 4.0 specification
+ * $Id: default.css,v 1.13 1999/03/08 17:25:02 ijacobs Exp $
+ */
+
+div.example {
+ width: 100%;
+ color: black;
+}
+div.dtd-example {
+ width: 100%;
+ color: black;
+}
+tt.example {
+ color: maroon;
+ margin-left: 1em;
+}
+pre {
+ color: maroon;
+ margin-left: 1em;
+}
+div.dtd-fragment {
+ width: 100%;
+ border: none;
+ background-color: #eee;
+}
+pre.dtd-fragment {
+ margin-left: 0;
+}
+pre.dtd {
+ color: black;
+ margin-left: 0;
+}
+div.illegal-example {
+ width: 100%;
+ color: red;
+ border: solid red;
+}
+div.illegal-example p {
+ color: black;
+}
+div.deprecated-example {
+ width: 100%;
+ color: red;
+ border: solid rgb(255,165,0); /* orange */
+}
+div.deprecated-example p {
+ color: black;
+}
+div.note {
+ color: green;
+ margin-left: 1em;
+}
+p.note {
+ color: green;
+ margin-left: 1em;
+}
+ul.toc {
+ list-style-type: none;
+}
+
+a.normref {
+ color : red;
+}
+
+a.informref {
+ color : green;
+}
+
+DIV.subtoc {padding: 1em; border: solid thin; margin: 1em 0;
+ background: #ddd}
+
+
+#hd {
+ background: #f5f5f5; /* old browsers */
+ background: -moz-linear-gradient(top, #dcdbd9 0%, #F6F5F3 100%); /* firefox was...(top, #ddd 0%, #f8f8f8 100%)*/
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dcdbd9), color-stop(100%,#F6F5F3)); /* webkit */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dcdbd9', endColorstr='#F6F5F3',GradientType=0 ); /* ie */
+
+ border-bottom: 1px solid #dfdfdf;
+ *zoom: 1;
+ padding: 1em;
+}
+#hd h1 {
+ font-size: 116%;
+ font-weight: bold;
+ color: #000;
+}
+#ft {
+ font-size: 85%;
+ font-style: italic;
+}
+#play {
+ margin-top: .75em;
+ zoom: 1;
+}
+#play:after { display: block; clear: both; visibility: hidden; content: '.'; height: 0;}
+
+#feeds {
+ margin-top: .75em;
+ min-height: 500px;
+ *height: 500px;
+ padding: .5em;
+ position: relative;
+
+ background: #F9F9FC;/*E6E9F5*/
+ border: 1px solid #D4D8EB;
+
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
+ -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
+ font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'Helvetica', 'Arial', sans-serif;
+ margin: 15px 0;
+ padding-bottom: 1px;
+
+}
+
+#feeds ul li {
+ background-repeat: no-repeat;
+ padding-left: 25px;
+ margin: 3px;
+ cursor: move;
+ zoom: 1;
+}
+#feeds ul li.disabled {
+ opacity: .5;
+ filter: alpha(opacity=50);
+ cursor: default;
+}
+
+ul.list {
+ border: 1px dashed #ccc;
+ margin: .5em;
+ width: 325px;
+ float: left;
+ min-height: 500px;
+ *height: 500px;
+ zoom: 1;
+
+}
+
+.yui3-dd-proxy {
+ text-align: left;
+ padding-left: 20px;
+ padding: 5px;
+ margin: 2px;
+}
+
+.yui3-dd-proxy li, #play li {
+ padding-left: 20px;
+ padding: 5px;
+ margin: 2px;
+}
+
+#play li.moving {
+ background: #F9F9FC;/*E6E9F5*/
+ border: 1px solid #D4D8EB;
+}
+
+div.mod {
+ position: relative;
+ zoom: 1;
+
+ background: #F9F9FC;/*E6E9F5*/
+ border: 1px solid #D4D8EB;
+
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
+ -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
+ font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'Helvetica', 'Arial', sans-serif;
+ margin: 15px 0;
+ padding-bottom: 1px;
+
+
+
+}
+div.mod div.inner {
+ overflow: hidden;
+ zoom: 1;
+}
+div.mod div.inner div.loading {
+ background-image: url(progress.gif);
+ background-repeat: no-repeat;
+ background-position: 5px 5px;
+ padding: 5px 5px 5px 25px;
+
+}
+#play div.mod div.inner ul li {
+ padding-left: 20px;
+ font-size: 80%;
+}
+div.mod div.inner ul li a {
+ color: #000;
+}
+div.mod h2 {
+ position: relative;
+ zoom: 1;
+ cursor: move;
+ zoom: 1;
+
+ background: #E5E6F1;
+ -moz-border-radius: 4px 4px 0 0;
+ -webkit-border-radius: 4px 4px 0 0;
+ border-radius: 4px 4px 0 0;
+ color: #5E6BA4;
+ font-weight: bold;
+ font-size: 107.692%;
+ margin: 0;
+ padding: 4px 7px 5px;
+
+
+}
+
+div.mod h2 strong {
+ font-weight: bold;
+ background-repeat: no-repeat;
+ padding-left: 25px;
+}
+
+div.minned h2 {
+ border-bottom: 1px solid #ccc;
+}
+
+div.mod h2 a.close, div.mod h2 a.min {
+ background-color: #F9F9FC;
+ border:1px solid #E5E6F1;
+ color: #5E6BA4;
+ text-align: center;
+ display: block;
+ height: 13px;
+ width: 17px;
+ text-decoration: none;
+ font-weight: bold;
+ right: 4px;
+ top: 1px;
+ position: absolute;
+ font-size: 80%;
+ margin: 2px;
+ padding: 0;
+}
+div.mod h2 a.min {
+ right: 25px;
+}
+div.minned h2 a.min {
+ right: 25px;
+}
+div.mod h2 a:hover.close, div.mod h2 a:hover.min {
+ border-color: #D4D8EB;
+}
+
+
+.yui3-button {
+ /* Structure */
+ display: inline-block;
+ *display: inline;
+ zoom: 1;
+ font-size: 100%;
+ margin: 0;
+ padding: 0 1em;
+ line-height: normal;
+ line-height: 2;
+ white-space: nowrap;
+ vertical-align: baseline;
+ text-align: center;
+ cursor: pointer;
+ -webkit-user-drag: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ /* Presentation */
+ color: rgba(0,0,0, 0.80);
+ *color: #444;
+ background-color: #e6e6e6;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255,255,255, 0.30)), color-stop(40%, rgba(255,255,255, 0.15)), to(transparent));
+ background-image: -webkit-linear-gradient(rgba(255,255,255, 0.30), rgba(255,255,255, 0.15) 40%, transparent);
+ background-image: -moz-linear-gradient(top, rgba(255,255,255, 0.30), rgba(255,255,255, 0.15) 40%, transparent);
+ background-image: -ms-linear-gradient(rgba(255,255,255, 0.30), rgba(255,255,255, 0.15) 40%, transparent);
+ background-image: -o-linear-gradient(rgba(255,255,255, 0.30), rgba(255,255,255, 0.15) 40%, transparent);
+ background-image: linear-gradient(rgba(255,255,255, 0.30), rgba(255,255,255, 0.15) 40%, transparent);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80ffffff', endColorstr='#00ffffff', GradientType=0);
+ text-decoration: none;
+ border: none;
+ border: solid 1px #999\9; /*ie hack*/
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 0 0 1px rgba(0,0,0, 0.25) inset, 0 2px 0 rgba(255,255,255, 0.30) inset, 0 1px 2px rgba(0,0,0, 0.15);
+ -moz-box-shadow: 0 0 0 1px rgba(0,0,0, 0.25) inset, 0 2px 0 rgba(255,255,255, 0.30) inset, 0 1px 2px rgba(0,0,0, 0.15);
+ box-shadow: 0 0 0 1px rgba(0,0,0, 0.25) inset, 0 2px 0 rgba(255,255,255, 0.30) inset, 0 1px 2px rgba(0,0,0, 0.15);
+
+ /* Transitions */
+ -webkit-transition: 0.1s linear -webkit-box-shadow;
+ -moz-transition: 0.1s linear -moz-box-shadow;
+ -ms-transition: 0.1s linear box-shadow;
+ -o-transition: 0.1s linear box-shadow;
+ transition: 0.1s linear box-shadow;
+}
+
+input.yui3-button {
+ height: 2em; /* Fixes height for <input> in firefox/opera */
+}
+
+a.yui3-button {
+ color: rgba(0,0,0, 0.80);
+ color: #444;
+ text-decoration:none;
+}
+
+
+.yui3-button:hover {
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(transparent), color-stop(40%, rgba(0,0,0, 0.05)), to(rgba(0,0,0, 0.15)));
+ background-image: -webkit-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.15));
+ background-image: -moz-linear-gradient(top, transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.15));
+ background-image: -ms-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.15));
+ background-image: -o-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.15));
+ background-image: linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.15));
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#26000000', GradientType=0);
+}
+
+
+.yui3-button:active {
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(0,0,0, 0.10)), to(rgba(0,0,0, 0.15)));
+ background-image: -webkit-linear-gradient(rgba(0,0,0, 0.10), rgba(0,0,0, 0.15));
+ background-image: -moz-linear-gradient(top, rgba(0,0,0, 0.10), rgba(0,0,0, 0.15));
+ background-image: -ms-linear-gradient(rgba(0,0,0, 0.10), rgba(0,0,0, 0.15));
+ background-image: -o-linear-gradient(rgba(0,0,0, 0.10), rgba(0,0,0, 0.15));
+ background-image: linear-gradient(rgba(0,0,0, 0.10), rgba(0,0,0, 0.15));
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1A000000', endColorstr='#26000000', GradientType=0);
+ -webkit-box-shadow: 0 0 0 1px rgba(0,0,0, 0.25) inset, 0 2px 4px rgba(0,0,0, 0.30) inset;
+ -moz-box-shadow: 0 0 0 1px rgba(0,0,0, 0.25) inset, 0 2px 4px rgba(0,0,0, 0.30) inset;
+ box-shadow: 0 0 0 1px rgba(0,0,0, 0.25) inset, 0 2px 4px rgba(0,0,0, 0.30) inset;
+}
+
+
+.yui3-button-disabled,
+.yui3-button-disabled:hover,
+.yui3-button-disabled:active {
+ cursor: default;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ filter: alpha(opacity=55);
+ -khtml-opacity: 0.55;
+ -moz-opacity: 0.55;
+ opacity: 0.55;
+ -webkit-box-shadow: 0 0 0 1px rgba(0,0,0, 0.25) inset;
+ -moz-box-shadow: 0 0 0 1px rgba(0,0,0, 0.25) inset;
+ box-shadow: 0 0 0 1px rgba(0,0,0, 0.25) inset;
+}
+
+
+.yui3-button::-moz-focus-inner{
+ padding: 0;
+ border: 0;
+}
+
+
+/* sam button */
+.yui3-button-selected {
+ background-color: #345FCB;
+ color: #fff;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 2px 0 rgba(255, 255, 255, 0.17) inset, 0 1px 2px rgba(0, 0, 0, 0.15);
+}
+/* end sam button*/
+
+
+/* night button */
+.yui3-skin-night .yui3-button {
+ background-color: #343536;
+ color: #DCDCDC;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 2px 0 rgba(255, 255, 255, 0.15) inset, 0 1px 2px rgba(0, 0, 0, 0.15);
+}
+.yui3-skin-night .yui3-button-selected {
+ background-color: #747576;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7);
+}
+/*end night button*/
+
+.yui3-menu .yui3-menu {
+
+ position: absolute;
+ z-index: 1;
+
+}
+
+
+.yui3-menu .yui3-shim {
+
+ /*
+ Styles for the <iframe> shim used to prevent <select> elements from poking through
+ submenus in IE < 7. Note: For peformance, creation of the <iframe> shim for each submenu
+ is deferred until it is initially made visible by the user.
+ */
+
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: -1;
+ opacity: 0;
+ filter: alpha(opacity=0); /* For IE since it doesn't implement the CSS3 "opacity" property. */
+ border: none;
+ margin: 0;
+ padding: 0;
+ height: 100%;
+ width: 100%;
+
+}
+
+.yui3-menu-hidden {
+
+ /*
+ Position hidden menus outside the viewport boundaries to prevent them from
+ triggering scrollbars on the viewport.
+ */
+
+ top: -10000px;
+ left: -10000px;
+
+ /*
+ Using "visibility:hidden" over "display" none because:
+
+ 1) As the "position" property for submenus is set to "absolute", they are out of
+ the document flow and take up no space. Therefore, from that perspective use of
+ "display:none" is redundant.
+
+ 2) According to MSDN use of "display:none" is more expensive:
+ "Display is the more expensive of the two CSS properties, so if you are
+ making elements appear and disappear often, visibility will be faster."
+ (See http://msdn.microsoft.com/en-us/library/bb264005(VS.85).aspx)
+ */
+
+ visibility: hidden;
+
+}
+
+.yui3-menu li {
+
+ list-style-type: none;
+
+}
+
+.yui3-menu ul,
+.yui3-menu li {
+
+ margin: 0;
+ padding: 0;
+
+}
+
+.yui3-menu-label,
+.yui3-menuitem-content {
+
+ text-align: left;
+ white-space: nowrap;
+ display: block;
+
+}
+
+.yui3-menu-horizontal li {
+
+ float: left;
+ width: auto;
+
+}
+
+.yui3-menu-horizontal li li {
+
+ float: none;
+
+}
+
+.yui3-menu-horizontal ul {
+
+ /*
+ Use of "zoom" sets the "hasLayout" property to "true" in IE (< 8). When "hasLayout" is
+ set to "true", an element can clear its floated descendents. For more:
+ http://msdn.microsoft.com/en-gb/library/ms533776(VS.85).aspx
+ */
+
+ *zoom: 1;
+
+}
+
+.yui3-menu-horizontal ul ul {
+
+ /*
+ No need to clear <ul>s of submenus of horizontal menus since <li>s of submenus
+ aren't floated.
+ */
+
+ *zoom: normal;
+
+}
+
+.yui3-menu-horizontal>.yui3-menu-content>ul:after {
+
+ /* Self-clearing solution for Opera, Webkit, Gecko and IE > 7 */
+
+ content: "";
+ display: block;
+ clear: both;
+ line-height: 0;
+ font-size: 0;
+ visibility: hidden;
+
+}
+
+
+/*
+ The following two rules are for IE 7. Triggering "hasLayout" (via use of "zoom") prevents
+ first-tier submenus from hiding when the mouse is moving from an menu label in a root menu to
+ its corresponding submenu.
+*/
+
+.yui3-menu-content {
+
+ *zoom: 1;
+
+}
+
+
+.yui3-menu-hidden .yui3-menu-content {
+
+ *zoom: normal;
+
+}
+
+
+/*
+ The following two rules are for IE 6 (Standards Mode and Quirks Mode) and IE 7 (Quirks Mode
+ only). Triggering "hasLayout" (via use of "zoom") fixes a bug in IE where mousing mousing off
+ the text node of menuitem or menu label will incorrectly trigger the mouseout event.
+*/
+
+.yui3-menuitem-content,
+.yui3-menu-label {
+
+ _zoom: 1;
+
+}
+
+.yui3-menu-hidden .yui3-menuitem-content,
+.yui3-menu-hidden .yui3-menu-label {
+
+ _zoom: normal;
+
+}
+
+/*
+ TODO will need to remove settings on HTML since we can't namespace it.
+ TODO with the prefix, should I group by selector or property for weight savings?
+*/
+html{
+ color:#000;
+ background:#FFF;
+}
+/*
+ TODO remove settings on BODY since we can't namespace it.
+*/
+/*
+ TODO test putting a class on HEAD.
+ - Fails on FF.
+*/
+body,
+div,
+dl,
+dt,
+dd,
+ul,
+ol,
+li,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+pre,
+code,
+form,
+fieldset,
+legend,
+input,
+textarea,
+p,
+blockquote,
+th,
+td {
+ margin:0;
+ padding:0;
+}
+table {
+ border-collapse:collapse;
+ border-spacing:0;
+}
+fieldset,
+img {
+ border:0;
+}
+/*
+ TODO think about hanlding inheritence differently, maybe letting IE6 fail a bit...
+*/
+address,
+caption,
+cite,
+code,
+dfn,
+em,
+strong,
+th,
+var {
+ font-style:normal;
+ font-weight:normal;
+}
+
+ol,
+ul {
+ list-style:none;
+}
+
+caption,
+th {
+ text-align:left;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size:100%;
+ font-weight:normal;
+}
+q:before,
+q:after {
+ content:'';
+}
+abbr,
+acronym {
+ border:0;
+ font-variant:normal;
+}
+/* to preserve line-height and selector appearance */
+sup {
+ vertical-align:text-top;
+}
+sub {
+ vertical-align:text-bottom;
+}
+input,
+textarea,
+select {
+ font-family:inherit;
+ font-size:inherit;
+ font-weight:inherit;
+}
+/*to enable resizing for IE*/
+input,
+textarea,
+select {
+ *font-size:100%;
+}
+/*because legend doesn't inherit in IE */
+legend {
+ color:#000;
+}
+
+/*e
+ TODO will need to remove settings on HTML since we can't namespace it.
+ TODO with the prefix, should I group by selector or property for weight savings?
+*/
+.yui3-cssreset html{
+ color:#000;
+ background:#FFF;
+}
+/*
+ TODO remove settings on BODY since we can't namespace it.
+*/
+/*
+ TODO test putting a class on HEAD.
+ - Fails on FF.
+*/
+.yui3-cssreset body,
+.yui3-cssreset div,
+.yui3-cssreset dl,
+.yui3-cssreset dt,
+.yui3-cssreset dd,
+.yui3-cssreset ul,
+.yui3-cssreset ol,
+.yui3-cssreset li,
+.yui3-cssreset h1,
+.yui3-cssreset h2,
+.yui3-cssreset h3,
+.yui3-cssreset h4,
+.yui3-cssreset h5,
+.yui3-cssreset h6,
+.yui3-cssreset pre,
+.yui3-cssreset code,
+.yui3-cssreset form,
+.yui3-cssreset fieldset,
+.yui3-cssreset legend,
+.yui3-cssreset input,
+.yui3-cssreset textarea,
+.yui3-cssreset p,
+.yui3-cssreset blockquote,
+.yui3-cssreset th,
+.yui3-cssreset td {
+ margin:0;
+ padding:0;
+}
+.yui3-cssreset table {
+ border-collapse:collapse;
+ border-spacing:0;
+}
+.yui3-cssreset fieldset,
+.yui3-cssreset img {
+ border:0;
+}
+/*
+ TODO think about hanlding inheritence differently, maybe letting IE6 fail a bit...
+*/
+.yui3-cssreset address,
+.yui3-cssreset caption,
+.yui3-cssreset cite,
+.yui3-cssreset code,
+.yui3-cssreset dfn,
+.yui3-cssreset em,
+.yui3-cssreset strong,
+.yui3-cssreset th,
+.yui3-cssreset var {
+ font-style:normal;
+ font-weight:normal;
+}
+
+.yui3-cssreset ol,
+.yui3-cssreset ul {
+ list-style:none;
+}
+
+.yui3-cssreset caption,
+.yui3-cssreset th {
+ text-align:left;
+}
+.yui3-cssreset h1,
+.yui3-cssreset h2,
+.yui3-cssreset h3,
+.yui3-cssreset h4,
+.yui3-cssreset h5,
+.yui3-cssreset h6 {
+ font-size:100%;
+ font-weight:normal;
+}
+.yui3-cssreset q:before,
+.yui3-cssreset q:after {
+ content:'';
+}
+.yui3-cssreset abbr,
+.yui3-cssreset acronym {
+ border:0;
+ font-variant:normal;
+}
+/* to preserve line-height and selector appearance */
+.yui3-cssreset sup {
+ vertical-align:text-top;
+}
+.yui3-cssreset sub {
+ vertical-align:text-bottom;
+}
+.yui3-cssreset input,
+.yui3-cssreset textarea,
+.yui3-cssreset select {
+ font-family:inherit;
+ font-size:inherit;
+ font-weight:inherit;
+}
+/*to enable resizing for IE*/
+.yui3-cssreset input,
+.yui3-cssreset textarea,
+.yui3-cssreset select {
+ *font-size:100%;
+}
+/*because legend doesn't inherit in IE */
+.yui3-cssreset legend {
+ color:#000;
+}
+
+
+.yui3-g {
+ letter-spacing: -0.31em; /* webkit: collapse white-space between units */
+ *letter-spacing: normal; /* reset IE < 8 */
+ word-spacing: -0.43em; /* IE < 8 && gecko: collapse white-space between units */
+}
+
+.yui3-u,
+.yui3-u-1,
+.yui3-u-1-2,
+.yui3-u-1-3,
+.yui3-u-2-3,
+.yui3-u-1-4,
+.yui3-u-3-4,
+.yui3-u-1-5,
+.yui3-u-2-5,
+.yui3-u-3-5,
+.yui3-u-4-5,
+.yui3-u-1-6,
+.yui3-u-5-6,
+.yui3-u-1-8,
+.yui3-u-3-8,
+.yui3-u-5-8,
+.yui3-u-7-8,
+.yui3-u-1-12,
+.yui3-u-5-12,
+.yui3-u-7-12,
+.yui3-u-11-12,
+.yui3-u-1-24,
+.yui3-u-5-24,
+.yui3-u-7-24,
+.yui3-u-11-24,
+.yui3-u-13-24,
+.yui3-u-17-24,
+.yui3-u-19-24,
+.yui3-u-23-24 {
+ display: inline-block;
+ zoom: 1; *display: inline; /* IE < 8: fake inline-block */
+ letter-spacing: normal;
+ word-spacing: normal;
+ vertical-align: top;
+}
+
+.yui3-u-1 {
+ display: block;
+}
+
+.yui3-u-1-2 {
+ width: 50%;
+}
+
+.yui3-u-1-3 {
+ width: 33.33333%;
+}
+
+.yui3-u-2-3 {
+ width: 66.66666%;
+}
+
+.yui3-u-1-4 {
+ width: 25%;
+}
+
+.yui3-u-3-4 {
+ width: 75%;
+}
+
+.yui3-u-1-5 {
+ width: 20%;
+}
+
+.yui3-u-2-5 {
+ width: 40%;
+}
+
+.yui3-u-3-5 {
+ width: 60%;
+}
+
+.yui3-u-4-5 {
+ width: 80%;
+}
+
+.yui3-u-1-6 {
+ width: 16.656%;
+}
+
+.yui3-u-5-6 {
+ width: 83.33%;
+}
+
+.yui3-u-1-8 {
+ width: 12.5%;
+}
+
+.yui3-u-3-8 {
+ width: 37.5%;
+}
+
+.yui3-u-5-8 {
+ width: 62.5%;
+}
+
+.yui3-u-7-8 {
+ width: 87.5%;
+}
+
+.yui3-u-1-12 {
+ width: 8.3333%;
+}
+
+.yui3-u-5-12 {
+ width: 41.6666%;
+}
+
+.yui3-u-7-12 {
+ width: 58.3333%;
+}
+
+.yui3-u-11-12 {
+ width: 91.6666%;
+}
+
+.yui3-u-1-24 {
+ width: 4.1666%;
+}
+
+.yui3-u-5-24 {
+ width: 20.8333%;
+}
+
+.yui3-u-7-24 {
+ width: 29.1666%;
+}
+
+.yui3-u-11-24 {
+ width: 45.8333%;
+}
+
+.yui3-u-13-24 {
+ width: 54.1666%;
+}
+
+.yui3-u-17-24 {
+ width: 70.8333%;
+}
+
+.yui3-u-19-24 {
+ width: 79.1666%;
+}
+
+.yui3-u-23-24 {
+ width: 95.8333%;
+}
+/* YUI CSS Detection Stamp */
+#yui3-css-stamp.cssgrids { display: none; }
+</style>
+<script>
+var element = document.getElementById("styleElement");
+var cssText = element.textContent;
+var count = 0;
+PerfTestRunner.runPerSecond({run:function() {
+ element.textContent = "";
+ element.textContent = cssText + "#some" + count + "{color:black};";
+ count++;
+}});
+
+</script>
+</body>
diff --git a/PerformanceTests/Parser/html-parser.html b/PerformanceTests/Parser/html-parser.html
new file mode 100644
index 000000000..6c1c06257
--- /dev/null
+++ b/PerformanceTests/Parser/html-parser.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var spec = PerfTestRunner.loadFile("resources/html5.html");
+
+PerfTestRunner.run(function() {
+ var iframe = document.createElement("iframe");
+ iframe.style.display = "none"; // Prevent creation of the rendering tree, so we only test HTML parsing.
+ iframe.sandbox = ''; // Prevent external script loads which could cause write() to return before completing the parse.
+ document.body.appendChild(iframe);
+ iframe.contentDocument.open();
+ iframe.contentDocument.write(spec);
+ iframe.contentDocument.close();
+ document.body.removeChild(iframe);
+}, 1);
+
+</script>
+</body>
diff --git a/PerformanceTests/Parser/html5-full-render.html b/PerformanceTests/Parser/html5-full-render.html
new file mode 100644
index 000000000..bce541047
--- /dev/null
+++ b/PerformanceTests/Parser/html5-full-render.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var spec = PerfTestRunner.loadFile("resources/html5.html");
+
+var chunks = [];
+// The smaller the chunks the more style resolves we do.
+// Smaller chunk sizes will show more samples in style resolution.
+// Larger chunk sizes will show more samples in line layout.
+// Smaller chunk sizes run slower overall, as the per-chunk overhead is high.
+// Testing on my machine has shown that we need 10-15 chunks before style resolution is always the top sample.
+var chunkSize = 500000; // 6.09mb / 500k = approx 13 chunks (thus 13 forced layouts/style resolves).
+var chunkCount = Math.ceil(spec.length / chunkSize);
+for (var chunkIndex = 0; chunkIndex < chunkCount; chunkIndex++) {
+ var chunk = spec.substring(chunkIndex * chunkSize, chunkSize);
+ chunks.push(chunk);
+}
+
+PerfTestRunner.logInfo("Testing " + spec.length + " byte document in " + chunkCount + " " + chunkSize + " byte chunks.");
+
+function loadChunkedSpecIntoIframe(iframe) {
+ // Note: We've inlined the stylesheets in html5.html. Before we did that, it seemed to be
+ // random as to whether style resolution would show up at all in the samples.
+ // Talking with Hyatt and jamesr we believe this may be the ignorePendingStylesheets
+ // logic which is triggered off of a timer which is fired after the load completes.
+ // By inlining the stylesheets we're avoiding this race condition.
+ iframe.sandbox = ''; // Prevent external loads which could cause write() to return before completing the parse.
+ iframe.style.width = "600px"; // Have a reasonable size so we're not line-breaking on every character.
+ iframe.style.height = "800px";
+ iframe.contentDocument.open();
+
+ for (var chunkIndex = 0; chunkIndex < chunks.length; chunkIndex++) {
+ iframe.contentDocument.write(chunks[chunkIndex]);
+ // Note that we won't cause a style resolve until we've encountered the <body> element.
+ // Thus the number of chunks counted above is not exactly equal to the number of style resolves.
+ if (iframe.contentDocument.body)
+ iframe.contentDocument.body.clientHeight; // Force a full layout/style-resolve.
+ }
+
+ iframe.contentDocument.close();
+}
+
+// Running from the onload callback just makes the UI nicer as it shows the logs before starting the test.
+window.onload = function() {
+ // Depending on the chosen chunk size, iterations can take over 60s to run on a fast machine, so we only run 2.
+ PerfTestRunner.run(function() {
+ var iframe = document.createElement("iframe");
+ document.body.appendChild(iframe);
+ loadChunkedSpecIntoIframe(iframe);
+ document.body.removeChild(iframe);
+ }, 1, 2); // We only loop once for each run, again because this test is so slow.
+}
+
+</script>
+</body>
diff --git a/PerformanceTests/Parser/innerHTML-setter.html b/PerformanceTests/Parser/innerHTML-setter.html
new file mode 100644
index 000000000..ec0fa2082
--- /dev/null
+++ b/PerformanceTests/Parser/innerHTML-setter.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+function generateBinDOMTree(depth) {
+ return depth == 0 ? "text" : ("<div>" + generateBinDOMTree(depth - 1) + generateBinDOMTree(depth - 1) + "</div>");
+}
+
+var div = document.createElement("div");
+document.body.appendChild(div);
+var tree = generateBinDOMTree(10);
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark tests innerHTML setter for a large DOM tree",
+ run: function() {
+ div.innerHTML = tree;
+ div.innerHTML = "";
+ }});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Parser/query-selector-deep.html b/PerformanceTests/Parser/query-selector-deep.html
new file mode 100644
index 000000000..50b64c492
--- /dev/null
+++ b/PerformanceTests/Parser/query-selector-deep.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var parentDiv = document.body;
+for (var i = 0; i < 1000; i++) {
+ var div = document.createElement("div");
+ div.id = "foo" + i;
+ div.className = "bar" + i;
+ parentDiv.appendChild(div);
+ parentDiv = div;
+}
+
+var h1 = document.createElement("h1");
+h1.id = "id";
+h1.className = "class";
+parentDiv.appendChild(h1);
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark tests querySelector() for an element that appears in the depths in the document",
+ run: function() {
+ for (var i = 0; i < 100; i++) {
+ document.querySelector("h1");
+ document.querySelector("#id");
+ document.querySelector(".class");
+ }
+ }});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Parser/query-selector-first.html b/PerformanceTests/Parser/query-selector-first.html
new file mode 100644
index 000000000..aa224e5b9
--- /dev/null
+++ b/PerformanceTests/Parser/query-selector-first.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<body>
+<h1 id="id" class="class"></h1>
+<script src="../resources/runner.js"></script>
+<script>
+PerfTestRunner.runPerSecond({
+ description: "This benchmark tests querySelector() for an element that appears near the head of the document",
+ run: function() {
+ for (var i = 0; i < 1000; i++) {
+ document.querySelector("h1");
+ document.querySelector("#id");
+ document.querySelector(".class");
+ }
+ }});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Parser/query-selector-last.html b/PerformanceTests/Parser/query-selector-last.html
new file mode 100644
index 000000000..ba2d1587c
--- /dev/null
+++ b/PerformanceTests/Parser/query-selector-last.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+for (var i = 0; i < 1000; i++) {
+ var div = document.createElement("div");
+ div.id = "foo" + i;
+ div.className = "bar" + i;
+ document.body.appendChild(div);
+}
+
+var h1 = document.createElement("h1");
+h1.id = "id";
+h1.className = "class";
+document.body.appendChild(h1);
+
+PerfTestRunner.runPerSecond({
+ description: "This benchmark tests querySelector() for an element that appears near the tail of the document",
+ run: function() {
+ for (var i = 0; i < 100; i++) {
+ document.querySelector("h1");
+ document.querySelector("#id");
+ document.querySelector(".class");
+ }
+ }});
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/Parser/resources/final-url-en b/PerformanceTests/Parser/resources/final-url-en
new file mode 100644
index 000000000..045d90674
--- /dev/null
+++ b/PerformanceTests/Parser/resources/final-url-en
@@ -0,0 +1,82257 @@
+http://1-14th.com/timeline-4-66T.htm
+http://1-las-vegas-real-estate.com/homes/sellers/list_today/
+http://100megsfree4.com/stimso/scottish-rite.htm
+http://1010phonerates.com/Sprint_rate_increase.html
+http://10174521412004-u9f1gir56b.powerlinks.com/shared/links.asp?c=3
+http://101games.computergaming.com/do/previewPage?cId=3138507&did=1
+http://101publicrelations.com/blog/2004_04.html
+http://101publicrelations.com/blog/archives/000122.html
+http://106miles.blogspot.com/
+http://10quicksteps.com/all
+http://11d.typepad.com/blog/2005/05/whats_in_a_name.html
+http://12.100.23.254:8080/bj/projects/color/hous4.html
+http://128.121.126.56/human_resources/jobdescriptions/administration/personnel_tech_JD.htm
+http://128.174.128.220/cgi-bin/clasSearch/viewitem.cgi?id=2116
+http://128.175.24.251/invtips.htm
+http://128.248.232.90/archives/mchb/amchp2004/b2/transcripts/session03e.htm
+http://129.93.84.115/Chemistry/LABS/LABS07.html
+http://130.15.161.74/techserv/auth/05Conference/05corporate.html
+http://130.15.161.74/techserv/auth/05Conference/05ongoing.html
+http://130.18.140.19/mmsoc/chapter3.html
+http://130.226.203.239/pub/mapp/gen/pages/description.html
+http://132.170.111.38/CAPA/sample7t.htm
+http://132.170.111.38/CAPA/sample9t.htm
+http://132.170.111.38/CAPA/sample9tp.htm
+http://132.236.67.165/HOME/docs/IJ080903.htm
+http://132.236.67.165/HOME/docs/IJ20010222.htm
+http://132.236.67.165/cure/cust.htm
+http://137.120.22.236/www-edocs/loader/file.asp?id=581
+http://14.1911encyclopedia.org/S/SU/SUPPLY_AND_TRANSPORT_MILITARY.htm
+http://1425.rfc.ok.cl/
+http://147.237.72.16/eng/sub-BRA-system.asp
+http://149.168.35.203/calendar/job_fairs2.html
+http://150.theage.com.au/view_bestofarticle.asp?intid=1707
+http://151.121.3.117/programsfgis/inspwgh/other/qualityassessments.htm
+http://151.204.172.139/programs_community.asp
+http://152.1.96.5/jouvert/v1i1/shohat.htm
+http://164.100.24.208/ls/condeb/vol7p1b.htm
+http://166.20.120.3/IIF/jobs/jobDetail870.html
+http://166321.166.links4trade.com/links.html
+http://167.7.184.33/sewing.htm
+http://1914-1918.org/forum/index.php?showtopic=24640
+http://196.36.153.56/doh/docs/sp/2005/sp0618.html
+http://198.202.202.66/GamePlan/template21667.asp
+http://198.202.202.66/Police/template310226.asp
+http://199.120.116.1/~cjbunz/park/n-register2.htm
+http://1stholistic.com/Prayer/hol_prayer_god-is-talking-4.htm
+http://1stholistic.com/Reading/prose/A2004/liv_is-mothering-wearing-you-out.htm
+http://2-minute-website.com/legal/affiliate_agreement.html
+http://2-minute-website.com/legal/service_agreement.html
+http://2004clcc.blogspot.com/2004/07/bring-your-wi-fi-cards.html
+http://202.121.129.66/transcend/www.aei.org/ra/rahazlett40.htm
+http://202.186.86.35/audio/story.asp?file=/2004/8/19/audiofile/19dyna
+http://202.186.86.35/special/online/bilpaul/hamops.html
+http://202.186.86.35/special/online/momsnet/default.htm
+http://202.221.217.59/print/features/film2004/ff20040818a1.htm
+http://202.221.217.59/print/features/life2004/fl20040620x2.htm
+http://202.221.217.59/print/features/life2004/fl20040829x3.htm
+http://202.221.217.59/print/news/nn11-2004/nn20041115a1.htm
+http://202.41.106.222/vista/htmls/Team%20Vista.htm
+http://203.115.194.76/purplesofa/tbadvice.asp?Catid=9&sid=107&page=4
+http://203.167.234.188/usa/airfarespecial/1948.htm
+http://203.199.69.66/columns/shanta_gokhle/2004/october/95585.htm
+http://205.174.118.254/nspt/magi/magi10.htm
+http://205.174.118.254/nspt/magi/magi11.htm
+http://205.243.100.155/frames/lichtenbergs.html
+http://207.107.10.214/wShop.asp?C=STM
+http://209.11.49.220/eandp/departments/business/article_display.jsp?vnu_content_id=1000962194
+http://209.15.29.56/myersbriggs/experiencer.htm
+http://209.15.36.61/scootworks/html_inst/klr_lower/klr_lower.htm
+http://209.157.64.200/focus/f-news/1143594/posts
+http://209.157.64.200/focus/f-news/1144851/posts
+http://209.157.64.200/focus/f-news/1329509/posts
+http://209.157.64.200/focus/f-news/1336122/posts
+http://209.157.64.200/focus/f-news/1346517/posts
+http://209.157.64.200/focus/f-news/1430112/posts
+http://209.157.64.200/focus/f-news/923505/posts
+http://209.165.152.119/misc.html
+http://209.197.233.93/content/view/40/
+http://209.87.142.42/y/book2/Book_107.htm
+http://209.87.142.42/y/book2/Book_112.htm
+http://209.87.231.94/HomelandSecurity/
+http://20below.mainetoday.com/help/ask/
+http://210.145.168.243/pk/045th_issue/report/report05.htm
+http://212.187.155.84/pass_06june/List_WPMod_Cont/FMD/FMDTechniques/overviews/FMDCulling.htm
+http://213.132.57.100/gulfair/form/
+http://216.147.85.36/index.php?PID=17&cid=2
+http://216.185.112.5/presenter.jhtml?identifier=4565
+http://216.197.101.64/sgnnews18/page36.cfm
+http://216.26.160.137/Forums/AspNetForums20/ShowPost.aspx?PostID=15705
+http://216.26.160.137/Forums/AspNetForums20/ShowPost.aspx?PostID=15712
+http://216.26.163.62/2004/ss_iraq_02_16.html
+http://216.31.193.173/ewsoe/english/4_4.htm
+http://216.36.178.46/inthecity/oct03/greenthumb.html
+http://217.169.99.140/inglese/105/en_prayer_board.html
+http://22.1911encyclopedia.org/B/BA/BALL.htm
+http://24.73.239.154:8081/moonshot/motives.htm
+http://27.1911encyclopedia.org/T/TE/TEA.htm
+http://2bb.uts.edu.au/buying.htm
+http://2createawebsite.com/enhance/
+http://2hands.blogspot.com/
+http://2old2care.blogspot.com/
+http://2pac-lyrics.wonderlyrics.com/Heavy-In-The-Game.html
+http://2slick.blogspot.com/2004/11/letter-from-fallujah.html
+http://2thinkforums.org/anyboard/archive/3144.html
+http://37179.jobs.com/
+http://37days.typepad.com/37days/2005/06/redefine_normal.html
+http://38.1911encyclopedia.org/C/CA/CATHERINE_OF_ARAGON.htm
+http://3circles.clearwithin.com/prax10.htm
+http://3d2f.com/catalog/home-hobby/mac/
+http://3dff.com/IN%20HIS%20STEPS/Chapter%205%20In%20His%20Steps,%20by%20Charles%20M_%20Sheldon.htm
+http://3dgpu.com/forums/lofiversion/index.php/t1847.html
+http://3quarksdaily.blogs.com/3quarksdaily/2005/06/monday_musing_s.html
+http://44.1911encyclopedia.org/P/PE/PEACE_CONFERENCES.htm
+http://4cajobs.com/commission/
+http://4h.missouri.edu/4h-volunteers/secure/Lesson4/aggression.htm
+http://4homeless.hypermart.net/soup.html
+http://4inc.com/incfaq.htm
+http://4kevin.com/weblog/blog-strange.html
+http://4ranters.com/index.php?mod=articles&view=7
+http://4renovators.com/blogs/pigeonpointproject/
+http://4wheeldrive.about.com/cs/ecolandmatters/a/protectrails4x4_2.htm
+http://4wheeloffroad.com/techarticles/drivetrain/131_0506_low/
+http://50-cent-lyrics.wonderlyrics.com/Thicker-Than-Water.html
+http://50.lycos.com/2003review.asp
+http://504-boyz-lyrics.wonderlyrics.com/Haters-Gon-Hate.html
+http://53.1911encyclopedia.org/G/GL/GLASS.htm
+http://53788.jobs.com/
+http://5aday.gov/tools/school/4_middle.html
+http://5loaves2fishes.org.nz/Significance.htm
+http://5thnovember.blogspot.com/2005/05/labour-broke-e-laws-during-election.html
+http://60spunk.m78.com/q65eg.htm
+http://625.uk.com/RtoR/dogs.htm
+http://625.uk.com/RtoR/future_tv.htm
+http://625.uk.com/RtoR/pdc.htm
+http://625.uk.com/pdc/
+http://63.192.157.117/specials/voices/pages/education13.html
+http://63.224.190.121/cgi-bin/public.cgi?path=ica.html
+http://63.88.172.222/
+http://64.118.66.16/jackstreet/Journal.cfm?ArticleID=28
+http://64.177.207.201/pages/8_165.html
+http://64.33.116.68/ivanpah-amcup04.html
+http://64.53.95.207/sp2/pitfall2.html
+http://64.78.10.206/challenger/about/teacher_in_space.cfm
+http://64.78.10.206/challenger/students/history/index.cfm
+http://64.78.10.206/challenger/teachers/history/index.cfm
+http://64.78.50.25/learnmore/resources/feldbaumc_200201.cfm
+http://64.90.169.191/applications/electrical/pq/casestudy/high_rise_office_A6095.html
+http://64.90.169.191/applications/electrical/pq/casestudy/kgbi_station_A6082.html
+http://65.108.243.14/atheists/p2.html
+http://65.40.245.240/gallery/
+http://66.147.176.110/oldsite/AWARE-RH/ambassador1.htm
+http://66.1911encyclopedia.org/N/NI/NICOLSON_WILLIAM.htm
+http://66.34.102.61/list.asp
+http://66.34.102.61/list.asp?cat=TV
+http://67.19.19.69/
+http://67.1911encyclopedia.org/L/LI/LIVERY_COMPANIES.htm
+http://69.56.255.194/?article=20782
+http://69.93.52.74/~scottw/barnet/index.php
+http://6news.ljworld.com/section/sundayliquorsales
+http://712educators.about.com/cs/discipline/a/environment.htm
+http://712educators.about.com/od/jobopenings/tp/teacherpay.htm
+http://7one.blogdrive.com/
+http://84.1911encyclopedia.org/S/SP/SPENCER.htm
+http://911citizenswatch.org/
+http://911digitalarchive.org/cuentos/details/1430
+http://911research.wtc7.net/disinfo/experts/articles/bazant_jem/bazant_zhou.html
+http://911research.wtc7.net/pentagon/analysis/theories/eastman.html
+http://911research.wtc7.net/planes/defense/
+http://92.1911encyclopedia.org/H/HA/HAIR.htm
+http://95.1911encyclopedia.org/L/LI/LINCOLN_ENGLAND_.htm
+http://99zeros.blogspot.com/2005/02/official-story-straight-from-source.html
+http://9mmdesigns.blogspot.com/
+http://9rules.com/whitespace/design_critiques/mt_vs_wp_vs_txp_entry_page_design.php
+http://9rules.com/whitespace/our_thoughts/web_design_resources.php
+http://9rules.com/whitespace/successful_design.php
+http://a-1minigolf.com/a1competition_page.htm
+http://a.mongers.org/clueful/1999-phk-bikeshed
+http://a.parsons.edu/~juliaset/
+http://a.wholelottanothing.org/features/2003/07/beyond_the_blog
+http://a.wholelottanothing.org/features/2003/07/beyond_the_blog.html
+http://a.wholelottanothing.org/features/2003/10/blogging_for_do
+http://a.wholelottanothing.org/features/2003/12/social_software.html
+http://a1-cheap-laptops.com/warranty.html
+http://aa.usno.navy.mil/data/docs/RS_OneDay.html
+http://aa.usno.navy.mil/data/docs/RS_OneYear.html
+http://aa.usno.navy.mil/faq/docs/calendars.html
+http://aa.usno.navy.mil/faq/docs/islamic.html
+http://aaal.lang.uiuc.edu/letter/
+http://aaal.lang.uiuc.edu/letter/23.2/exec.htm
+http://aabb.jobcontrolcenter.com/companies/
+http://aac.asm.org/cgi/content/full/48/2/453
+http://aad.english.ucsb.edu/docs/expectsplit5.html
+http://aad.english.ucsb.edu/docs/jangop.html
+http://aad.english.ucsb.edu/docs/notaa11.html
+http://aahebulletin.com/public/archive/sevenprinciples1987.asp
+http://aaliyahdiscography.musicfantalk.com/aaliyah2001tribute.html
+http://aaotracker.4players.de/thread.php?threadid=92828
+http://aappo.org/government/medicaremodels.htm
+http://aappolicy.aappublications.org/cgi/content/full/pediatrics;105/6/1349
+http://aapredbook.aappublications.org/cgi/content/full/2003/1/3.142
+http://aaugh.com/guide/texture.htm
+http://aaw.com/library/eight.html
+http://aaweb.csus.edu/catalog/current/First%20100%20Pages/FINANCI.asp
+http://aaweb.lsu.edu/catalogs/2000/ug_requirements.htm
+http://abbeyrd.best.vwh.net/story.htm
+http://abbookman.com/ABBookman_F051404b.html
+http://abbot.aaps.k12.mi.us/ptominutes1004.html
+http://abc.go.com/primetime/xtremehome/casting.html
+http://abc.net.au/worldcup2002/items/s576966.htm
+http://abcasiapacific.com/guide/10d_to.htm
+http://abcasiapacific.com/guide/11d.htm
+http://abcasiapacific.com/guide/13d_to.htm
+http://abcasiapacific.com/guide/16d.htm
+http://abcasiapacific.com/guide/3d.htm
+http://abcasiapacific.com/guide/4d.htm
+http://abcasiapacific.com/guide/6d.htm
+http://abcasiapacific.com/guide/6d_to.htm
+http://abcasiapacific.com/guide/9d.htm
+http://abcasiapacific.com/news/profiles/KOREADEMOCRATICPEOPLESREPUBLICOF_to.htm
+http://abclocal.go.com/kabc/news/012605_nwAP_train.html
+http://abclocal.go.com/kgo/features/good_gardening/033003_gg_killer_roses_recipe.html
+http://abclocal.go.com/kgo/news/012705_nw_teacher_sex.html
+http://abclocal.go.com/kgo/news/7oys/030805_7oys_office_etiquette.html
+http://abclocal.go.com/kgo/news/iteam/052604_iteam_deaf_scam_two.html
+http://abclocal.go.com/kgo/news/recall_roundup/
+http://abclocal.go.com/wabc/automotive/10steps6.html
+http://abclocal.go.com/wabc/news/WABC_060502_keyfoods.html
+http://abclocal.go.com/wabc/news/health/
+http://abclocal.go.com/wabc/weather/WABC_2004_desktopinstall.html
+http://abclocal.go.com/wjrt/news/011305_NW_da_seniors.html
+http://abclocal.go.com/wls/automotive/10steps6.html
+http://abclocal.go.com/wls/news/052002_hs_healthbeat.html
+http://abclocal.go.com/wls/news/060705_ap_ns_pension.html
+http://abclocal.go.com/wls/news/connectwithkids/052705_cwk_day_care.html
+http://abclocal.go.com/wls/news/extrainfo/111004_ex_bestshopping.html
+http://abclocal.go.com/wpvi/news/012705_nw_pitmanmarine.html
+http://abclocal.go.com/wtvd/
+http://abcnews.go.com/Business/Careers/story?id=733659
+http://abcnews.go.com/Business/SmallBiz/wireStory?id=281816
+http://abcnews.go.com/Business/wireStory?id=464762
+http://abcnews.go.com/Entertainment/WolfFiles/story?id=785691&page=1
+http://abcnews.go.com/GMA/Books/story?id=125042&page=1
+http://abcnews.go.com/International/wireStory?id=418785
+http://abcnews.go.com/International/wireStory?id=444639
+http://abcnews.go.com/International/wireStory?id=881953
+http://abcnews.go.com/Politics/PollVault/story?id=144003&page=1
+http://abcnews.go.com/Politics/PollVault/story?id=178949
+http://abcnews.go.com/Politics/TheNote/story?id=156238
+http://abcnews.go.com/Politics/TheNote/story?id=213118
+http://abcnews.go.com/Politics/TheNote/story?id=579462
+http://abcnews.go.com/Politics/TheNote/story?id=741502
+http://abcnews.go.com/Politics/Vote2004/story?id=144003&page=1
+http://abcnews.go.com/Politics/story?id=178949
+http://abcnews.go.com/Politics/wireStory?id=872507
+http://abcnews.go.com/Technology/PollVault/story?id=850438
+http://abcnews.go.com/US/story?id=260587
+http://abcnews.go.com/US/wireStory?id=449137
+http://abcnews.go.com/US/wireStory?id=858311
+http://abcnews.go.com/sections/politics/Vote2004/kerry_gaining_poll_041004.html
+http://abcnews.go.com/sections/us/DailyNews/assistedsuicide_poll020319.html
+http://abcrc.stargate.ca/cfm/index.cfm?It=908&Id=3
+http://abeautifulrevolution.typepad.com/
+http://abilitymagazine.com/glover_interview.html
+http://abilitymagazine.com/paul_golf.html
+http://abob.libs.uga.edu/bobk/whiteo01.html
+http://about-france.com/
+http://about.commbank.com.au/group_display/0,1696,TS10682,00.html
+http://about.officemax.com/terms/index.shtml
+http://about.reuters.com/investors/events/pressreleases/index.asp?pressid=2366
+http://about.susu.org/article.php?title=Freshers'+Week+Committee+Minutes+for+22+October+2004
+http://about.susu.org/article.php?title=Union+Management+Board+Comittee+Minutes+for+19+May+2004
+http://aboutown.blogspot.com/
+http://aboutpublicrelations.net/basics.htm
+http://aboutsavingheat.com/diy.html
+http://aboutww2militaria.com/miltary_tours.htm
+http://abroere.xs4all.nl/pnp/C_MajorWounds.htm
+http://abroere.xs4all.nl/pnp/major_wounds.htm
+http://absoluteone.ljudmila.org/5.php
+http://absoluteone.ljudmila.org/galimberti_en.php
+http://absoluteshakespeare.com/guides/romeo_and_juliet/characters/romeo_and_juliet_characters_essay.htm
+http://abstractappeal.com/schiavo/infopage.html
+http://abyayala.nativeweb.org/suriname/suriname4.html
+http://aca.gr/paper32.htm
+http://academic.bellevue.edu/~career/covrlet3.htm
+http://academic.bellevue.edu/~career/intervue.htm
+http://academic.reed.edu/formosa/texts/Guillemard1886.html
+http://academic.scranton.edu/department/mhi/self_assessment.html
+http://academic.scranton.edu/department/wml/mediarequest.html
+http://academic.scranton.edu/faculty/CANNM1/intro.html
+http://academic.sun.ac.za/forlang/bergman/real/mission/h_rcc.htm
+http://academic.udayton.edu/race/06hrights/GeoRegions/Africa/Nambia01.htm
+http://academic.udayton.edu/race/LReviews/200501.htm
+http://academic.uofs.edu/department/psych/handbook/xiii.html
+http://academic.uofs.edu/faculty/vinson/take_two_cups_of_cofeee_and_call.htm
+http://academicaffairs.ucsd.edu/offices/planning/reports/PRTF/Report.htm
+http://academy.cos.edu/Info.htm
+http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/artofwar.html
+http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/com-lin.html
+http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/suntzu.html
+http://access.globalknowledge.com/tutorials.asp
+http://access.ncsa.uiuc.edu/Releases/03Releases/10.21.03_NCSA's_Don.html
+http://access.wa.gov/leg/2005/Feb/n200517_3250.aspx
+http://access1.sun.com/codesamples/JMS/JMS.html
+http://accnewsmedia.com/site/page.asp?TRACKID=&VID=1&CID=253&DID=974
+http://accnewsmedia.com/site/view.asp?TrackID=&VID=1&CID=8&DID=8&PSID=
+http://accnewsmedia.com/site/view.asp?TrackID=&VID=1&CID=8&DID=8&PSID=ACC
+http://accordionguy.blogware.com/blog/_archives/2004/5/26/76351.html
+http://accountant.intuit.com/products_services/prof_tax_products/index.aspx
+http://accounting.aol.careerbuilder.com/ag.ic/DC_Washington_Management.htm?radius=50
+http://accounting.aol.careerbuilder.com/ag.ic/Virginia_Alexandria_AccountsPayable.htm?radius=20
+http://accounting.aol.careerbuilder.com/ag.ic/Virginia_Fairfax?radius=10
+http://accounting.aol.careerbuilder.com/ag.ic/Virginia_Fairfax?radius=5
+http://accounting.aol.careerbuilder.com/ag.ic/Virginia_Reston?radius=5
+http://accounting.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J3F51365MJ2HWGG03TQ
+http://accounting.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J3G05F62Y74P9NTD39N
+http://accounting.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J8A4VK6SYSTY040QT28
+http://accounting.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J8D66375JR9L6H83NV5
+http://accounting.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J8H1K6676DHBXTHW5CV
+http://accounting.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=JY0W876FR3343JVPVL
+http://accounting.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?Job_DID=J3W6VT636VGM7YYL5CB
+http://accounting.careerbuilder.com/ag.ic/Delaware_Wilmington_Accounting.htm?radius=10
+http://accounting.careerbuilder.com/ag.ic/Delaware_Wilmington_Accounting.htm?radius=5
+http://ace-o-spades.blogspot.com/2004_01_04_ace-o-spades_archive.html
+http://ace.acadiau.ca/~dreid/publications/proving/proving_to_explain.htm
+http://ace.acadiau.ca/~dshutler/BPCourse.html
+http://ace.mu.nu/archives/066152.php
+http://acharya.iitm.ac.in/mirrors/vv/werlings.html
+http://ackbarr.xoops.org/
+http://aclunc.org/voting/041019-factsheet.html
+http://acmehardware.com/HomeTips/Moving/index.aspx
+http://acrnet.org/acrlibrary/more.php?id=19_0_1_0_M
+http://acsa.net/onkerry.htm
+http://acsdevl.kennesaw.edu/access/printversion.asp?sto=170
+http://acsdevl.kennesaw.edu/access/printversion.asp?sto=172
+http://acsdevl.kennesaw.edu/access/story.asp?sto=170
+http://acsdevl.kennesaw.edu/access/story.asp?sto=172
+http://acsweb2.ucis.dal.ca/slis/links.htm
+http://act-sf.org/index.cfm?s_id=&pid=nev_pre_dea&pr=132
+http://actforvictory.org/ohiofraud.php
+http://action-figures.zensearch.com/
+http://action.aclu.org/AS_what_actions_accomplish
+http://actionadventure.about.com/od/celebrityinterviews/p/aasilverHOW.htm
+http://actionaidpakistan.org/Karachi%20Office/films.htm
+http://actionfigures.about.com/library/weekly/aa060397.htm
+http://actionnetwork.org/campaign/classrings
+http://actionnetwork.org/campaign/classrings_ewa
+http://actionscript-toolbox.com/svgnotes.php
+http://actiontales.com/mcelwain_b/shot.html
+http://actiontrip.com/index.phtml
+http://active-hardware.com/english/reviews/cdrom/CD932E.htm
+http://activistchat.com/phpBB2/viewtopic.php?t=4985&view=next
+http://activities.almawakeb.sch.ae/n4b/html/s_handbook.htm
+http://acts.cdac.in/actsonline/Website/Html_asp/Homepg/vlbro.htm
+http://acts2.oireachtas.ie/zza18y1993.1.html
+http://acts2.oireachtas.ie/zza7y1995.1.html
+http://acura-tl--accessories.ffind.servebeer.com/
+http://ad-clix.com/Headlines2Go/index.asp
+http://ad-rag.com/105692.php
+http://ad-rag.com/121192.php
+http://adam.about.com/reports/000029_1.htm
+http://adam.about.com/reports/000053_3.htm
+http://adamcadre.ac/calendar/11346.html
+http://adamcadre.ac/gull/gull-2f.html
+http://adamcadre.ac/if.html
+http://adastra.fotopages.com/
+http://adbusters.org/metas/eco/truecosteconomics/post-autistic.html
+http://adbusters.org/metas/psycho/prozacspotlight/debate/comments.html?page=11
+http://adcomblog.wharton.upenn.edu/admissions/application_strategy/
+http://add.about.com/b/a/177707.htm
+http://add.about.com/cs/adultrelationship/a/relationships.htm
+http://add.about.com/cs/foradults/a/selfestteemadul.htm
+http://adelaideexchange.com.au/comp3.html
+http://adhdmom.net/
+http://admin-clerical.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J8G4Z1670D8BJR9LG1Y
+http://admin-clerical.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J8H61Q62LYDSDTYQC1Z
+http://admin-clerical.careerbuilder.com/ac.ic/NewJersey_EastBrunswick_ExecutiveAssistant.htm
+http://admin-clerical.careerbuilder.com/ac.ic/NorthCarolina_Concord/
+http://admin-clerical.careerbuilder.com/ac.ic/NorthCarolina_Mooresville/
+http://admin-clerical.careerbuilder.com/ac.ic/Pennsylvania_Lancaster_DataEntry.htm
+http://admin-clerical.careerbuilder.com/ac.ic/Pennsylvania_Lebanon_DataEntry.htm
+http://admin-clerical.careerbuilder.com/ac.ic/Pennsylvania_York_Clerk.htm
+http://admin-clerical.careerbuilder.com/ac.ic/SouthCarolina_RockHill/
+http://admin.denvergov.org/jump_searchables.asp
+http://admin.foresight.gov.uk/servlet/Controller/ver=634/userid=2/chap4.html
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_printfriendly.asp?id=2174
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_small.asp?Search=220&Submit=GO&id=719
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_small.asp?id=1363
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_small.asp?id=2174
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_small.asp?id=2174&paget=section
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_small.asp?id=2848
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_small.asp?id=719
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_small.asp?id=719&paget=section
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_small.asp?id=816
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_small.asp?id=974
+http://admin.urel.washington.edu/uweek/archives/issue/uweek_story_small.asp?id=974&paget=section
+http://administrators.net/chatboard/topic6099/6.13.05.07.24.53.html
+http://admissions.creighton.edu/undergraduate/about/history_memoirsCH4.asp
+http://admissions.uoregon.edu/returning.html
+http://adomonde.zzn.com/email/french/noframes/help/compose.html
+http://adoption.about.com/
+http://adoption.about.com/od/birthfirstmothers/a/diarybirthmom_3.htm
+http://adoptionshop.com/
+http://adr.navy.mil/adr/presmemo.asp
+http://adrianwalsh.com.au/newslet802.htm
+http://adrr.com/living/ss_8.htm
+http://aduffdelnooga.chattablogs.com/archives/2004_08.html
+http://adulted.about.com/cs/selfstudy/a/self_study_plan.htm
+http://adultfan.nexcess.net/aff/story.php?no=21793
+http://adultfan.nexcess.net/aff/story.php?no=544176446
+http://adultfriendfinder.com/intgroups/gi1093/acshow_group.html
+http://adultfriendfinder.com/intgroups/gi4/acshow_group.html
+http://advance.spu.edu/Ways/TrustAnnuities.asp
+http://advance.uri.edu/quadangles/sum2003/story2.htm
+http://adventist.org.au/services/health/living_healthy/at-risk_behaviours
+http://adventure.visitscotland.com/activities/earth/mountainbiking/
+http://advertising.ducttapemarketing.com/
+http://advice.cuna.org/research_review/research_review_27.html
+http://advice7.com/health_fitness/diets.html
+http://advisers.macquarie.com.au/advisers/spec_products/alternative/mgift2_detail.htm
+http://advisers.macquarie.com.au/advisers/spec_products/instalments/regular/regular_detail.htm
+http://advisers.macquarie.com.au/advisers/spec_products/professional_series/morgan_stanley_global_franchise_fund_msgff.htm
+http://advising.wichita.edu/lasac/pubs/aah/ecomp.htm
+http://advising.wichita.edu/lasac/pubs/gep/whatis.htm
+http://advisor.com/sp/15062
+http://advisor.com/whome.nsf/w/MMBsubinfo
+http://ae.trendmicro-europe.com/enterprise/security_info/overview.php
+http://aec.cadalyst.com/aec/article/articleList.jsp?categoryId=6705
+http://aem.asm.org/cgi/content/full/64/7/2760
+http://aem.asm.org/cgi/content/full/69/10/6073
+http://aem.asm.org/cgi/content/full/71/2/679
+http://aeonserv.com/forum/viewtopic.php?forum=2&showtopic=592
+http://aeonserv.com/forum/viewtopic.php?forum=2&showtopic=592&fromblock=yes
+http://aep.latech.edu/curriculum/CR15531.HTM
+http://aerade.cranfield.ac.uk/subject-listing/esdu/ES198.html
+http://aerade.cranfield.ac.uk/subject-listing/ssstgen.html
+http://aerg.canberra.edu.au/pub/aerg/herps/fnfraser.htm
+http://aes.missouri.edu/fsrc/research/alfalfa.stm
+http://afe.easia.columbia.edu/chinawh/web/s5/s5_5.html
+http://afe.easia.columbia.edu/chinawh/web/s8/
+http://affections.blogspot.com/
+http://afgen.com/mugabe_interview.html
+http://afl.com.au/default.asp?pg=coachesbox&spg=display&articleid=133123
+http://afl.com.au/default.asp?pg=pastallaustralian&spg=display&articleid=126515
+http://afognak.org/education/dw_lesson5.php
+http://africaguide.com/travel/package/1056.htm
+http://africantears.netfirms.com/roybennet.htm
+http://afrindiemum.typepad.com/afrindiemum/2004/10/
+http://afroamhistory.about.com/library/prm/blsoldiersinblue1.htm
+http://afronord.tripod.com/thr/dict.html
+http://afscme512.org/Minutes%2012_09_2002.htm
+http://afterburn.burningman.com/03/bizserv/arctica_ice.html
+http://aftergrogblog.blogs.com/agb/
+http://afterhoursconsulting.org/solutions.mgi
+http://ag.arizona.edu/pubs/garden/az1255/
+http://ag.ca.gov/ethics/accessible/honor.htm
+http://ag.udel.edu/frec/grad/ORgradAlumni.htm
+http://againstred.blogspot.com/
+http://againstthegrain.blogs.com/atg/2005/04/be_bold_and_pow.html
+http://agblog.com/category/currently/
+http://agelesslearner.com/intros/informal.html
+http://agelessmarketing.typepad.com/ageless_marketing/2005/04/why_every_marke.html
+http://agelessmarketing.typepad.com/ageless_marketing/2005/05/belief_follows_.html
+http://agency.osha.eu.int/focal_points/index_da.htm
+http://agency.osha.eu.int/focal_points/index_en.htm
+http://agency.osha.eu.int/focal_points/index_fr.htm
+http://agency.osha.eu.int/focal_points/index_nl.htm
+http://agency.osha.eu.int/news/press_releases/en/20_04_2005/
+http://agency.travelwisconsin.com/PR/Industry_News/NowYouKnow/nowyouknow3.shtm
+http://agency.travelwisconsin.com/Research/MarketResearch_Active/fallinmarket02.shtm
+http://agents.umbc.edu/agentslist/archive/1994/0002.html
+http://aggie-horticulture.tamu.edu/extension/ornamentals/protect/protect.html
+http://aggie-horticulture.tamu.edu/plantanswers/misc/saying.html
+http://aggie-horticulture.tamu.edu/plantanswers/publications/houseplant/houseplant.html
+http://aggie-horticulture.tamu.edu/tisscult/microprop/facilities/microlab.html
+http://aggieengineer.tamu.edu/development/methodsofgiving.html
+http://aggv.bc.ca/info-terms-and-conditions.htm
+http://aginfo.psu.edu/News/february03/tree.html
+http://aginfo.psu.edu/PSP/01psp/pr/01132_pr.html
+http://agirlandagun.typepad.com/
+http://agirlandagun.typepad.com/a_girl_and_a_gun/
+http://agnews.tamu.edu/dailynews/stories/CROP/Apr1800a.htm
+http://agnews.tamu.edu/dailynews/stories/CROP/May1402a.htm
+http://agog.net/batgirl/stories/RD1.html
+http://agonis.myrrh.net/
+http://agonist.org/section/US_Misc_IR
+http://agpa.uakron.edu/k12/best_practices/using_writing.html
+http://agr.wa.gov/FoodAnimal/CustomMeats/Questions.htm
+http://agricoop.nic.in/dacdivision/tmop/Tmop_isopom.htm
+http://agriculture.dictonarypage.co.uk/
+http://agriculture.house.gov/info/glossary/m.htm
+http://agriculture.senate.gov/Hearings/Hearings_1997/cutter.htm
+http://agriculture.tradeworlds.com/web_category_1035.html
+http://agrifor.ac.uk/browse/cabi/1193ae5649d3e3cb10282fcf55623ac5.html
+http://agrifor.ac.uk/browse/cabi/5229e9d3e6c3fdf5520e279fe317bc20.html
+http://agrifor.ac.uk/hb/5e2df4b157650aa635b78f211a197cdf.html
+http://agrifor.ac.uk/hb/5eb198078332fca7cdcc1e2d867fef94.html
+http://agrifor.ac.uk/hb/9cdfecdeb928393a24d4d2c358fb54f9.html
+http://agrifor.ac.uk/hb/e387a4f1cae79e2ce96ad28656666109.html
+http://agrifor.ac.uk/text/hb/6ef0ea6f02197328f842f5c54c6ec9b6.html
+http://agritrade.cta.int/rice/executive_brief.htm
+http://agronomy.ucdavis.edu/uccerice/WATER/risftm02.htm
+http://ah.bfn.org/a/AMH/main/4196/
+http://ah.bfn.org/h/erieC/percy/percy.html
+http://ah.brookes.ac.uk/news/index.php?id=10
+http://ah.brookes.ac.uk/publishing/staff/smith.html
+http://ah.phpwebhosting.com/h/humboldt.html
+http://ahc.uwyo.edu/eduoutreach/citizen/penney.htm
+http://ahds.ac.uk/creating/case-studies/newham/
+http://ahds.ac.uk/creating/information-papers/writing-appendix/
+http://ahds.ac.uk/history/creating/information-papers/writing-appendix/
+http://ahds.ac.uk/performingarts/creating/information-papers/writing-appendix/
+http://ahweb.nsd.org/information/supplies
+http://ai-depot.com/Biology/397.html
+http://ai-depot.com/Book/Frankenstein.html
+http://ai-depot.com/Games/403.html
+http://ai.eecs.umich.edu/people/conway/BioSketch.html
+http://ai.eecs.umich.edu/people/conway/Retrospective4.html
+http://ai.eecs.umich.edu/people/conway/TSsuccesses/TSsuccesses.html
+http://aia.lackland.af.mil/homepages/pa/spokesman/Oct02/heritage.cfm
+http://aibd.org/desline/legislative.htm
+http://aibi.gospelcom.net/aibi/saygrace.htm
+http://aibi.gospelcom.net/tmk/tmk17_christian_peacemaking.htm
+http://aic.stanford.edu/library/online/brochures/paper.html
+http://aic.stanford.edu/sg/bpg/annual/v01/bp01-05.html
+http://aic.stanford.edu/sg/bpg/annual/v06/bp06-13.html
+http://aic.stanford.edu/sg/bpg/annual/v07/bp07-02.html
+http://aids.about.com/cs/prevention/a/myths.htm
+http://ainiunai.blogdrive.com/
+http://ainsley.blog-city.com/
+http://aipm.wellnesscheckpoint.com/library/banner_main.asp?P=108832AHH29&SAImode=D&SAI=525
+http://air.transportation.jobs.jobsearchsite.com/
+http://airconsumer.ost.dot.gov/publications/flyrights.htm
+http://airhook.org/protocol.html
+http://airweb.org/page.asp?page=140
+http://airy.phy.ulaval.ca/~pystl/Subhumans/Cradle.htm
+http://airy.phy.ulaval.ca/~pystl/The_Hives/Veni.htm
+http://ais.web.cern.ch/ais/apps/ppt/apt/examples/apt_online_examples.html
+http://ais.web.cern.ch/ais/projs/docleg/welcome.html
+http://aisb.aber.ac.uk/ImitationSchedule.html
+http://aitecafrica.com/act2003/opening-speech.html
+http://ajgp.psychiatryonline.org/cgi/content/full/10/3/311
+http://ajheatwole.com/guide/log2/log23.htm
+http://ajp.psychiatryonline.org/cgi/content/abstract/157/9/1445
+http://ajp.psychiatryonline.org/cgi/content/full/156/4/610
+http://ajp.psychiatryonline.org/cgi/content/full/157/7/1184
+http://ajp.psychiatryonline.org/cgi/content/full/157/9/1445
+http://ajp.psychiatryonline.org/cgi/content/full/159/10/1752
+http://ajp.psychiatryonline.org/cgi/content/full/161/9/1703
+http://ajrp.awm.gov.au/ajrp/ajrp2.nsf/WebI/Chapters/$file/Chapter4.pdf?OpenElement
+http://ajvasaris.com/blog/
+http://akak.essortment.com/historyamerica_rdtf.htm
+http://akma.disseminary.org/
+http://akma.disseminary.org/archives/001157.html
+http://akma.disseminary.org/archives/001518.html
+http://akma.disseminary.org/archives/2002_06_02_blogarch.html
+http://akmhcweb.org/Articles/TriptychConventionNo10.htm
+http://akosut.com/log/2003/11/
+http://akuma.dynamiqvision.com/
+http://al-islam.org/alpha.php?sid=600681910&cat=213&alpha_id=153
+http://al-islam.org/alpha.php?sid=600681910&cat=213&alpha_id=154
+http://al-islam.org/alpha.php?sid=909777665&cat=213&alpha_id=153
+http://al-islam.org/alpha.php?sid=909777665&cat=213&alpha_id=154
+http://alabut.com/nonsense/2005/03/learn-ruby-in-3-weeks.html
+http://alac.icann.org/correspondence/structures-app.htm
+http://alameda.abracat.com/c2/lgcity/results/index.xml
+http://alamos.math.arizona.edu/ODEApplet/manual.html
+http://alan.blog-city.com/read/1003011.htm
+http://albalagh.net/qa/moon_qa.shtml
+http://albertapropagandists.blogspot.com/
+http://albumen.stanford.edu/library/monographs/monckh/chap06.html
+http://albumen.stanford.edu/library/monographs/monckh/chap08.html
+http://albumen.stanford.edu/library/monographs/monckh/chap13.html
+http://albumen.stanford.edu/library/monographs/monckh/chap15.html
+http://albumen.stanford.edu/library/monographs/sunbeam/chap24.html
+http://albuquerque.bizjournals.com/albuquerque/stories/2004/11/22/daily13.html?jst=b_ln_hl
+http://alcalc.oupjournals.org/cgi/content/full/34/4/511
+http://alcalc.oupjournals.org/cgi/content/full/38/5/415
+http://alcalc.oupjournals.org/cgi/content/full/39/6/509
+http://alcoholism.about.com/cs/basics/l/blnaa16.htm
+http://alcoholism.about.com/cs/info2/a/blebook.htm
+http://alcyone.cc.uch.gr/~kosmas/Helen/helen_schemes.html
+http://aleph0.clarku.edu/huxley/CE8/ExChal.html
+http://aleph0.clarku.edu/huxley/SM2/Scorp.html
+http://aleph0.clarku.edu/huxley/UnColl/Nature/Forefa.html
+http://aleph0.clarku.edu/huxley/UnColl/PMG/PMGetal/THH-RB.html
+http://alex.halavais.net/news/index.php?p=794
+http://alfrankenweb.com/readerreviews.html
+http://algernon-j.sourceforge.net/tutorial/3b.html
+http://ali.apple.com/ali_sites/deli/exhibits/1000066/The_Lesson.html
+http://ali.apple.com/ali_sites/deli/exhibits/1000166/Reflections.html
+http://ali.apple.com/ali_sites/deli/exhibits/1000315/Professional_Standards.html
+http://ali.apple.com/ali_sites/deli/exhibits/1000740/Professional_Standards.html
+http://ali.apple.com/ali_sites/glefli/exhibits/1000738/A_Barrel_of_..._Worms!.html
+http://alison.knitsmiths.us/blog_fantastic_fiber_voyage.html
+http://alison.knitsmiths.us/cat_fantastic_fiber_voyage.html
+http://alistair.cockburn.us/crystal/articles/cmdp1/coffeemachineproblem1.htm
+http://allaboutfrogs.org/info/doctor/common.html
+http://allaboutsikhs.com/way/marriage.htm
+http://allabouttrey.blogspot.com/2005/05/happy-anniversary.html
+http://allanthinks.typepad.com/allanthinks/
+http://allanturner.com/grace.html
+http://allard.senate.gov/issues/item.cfm?id=568&rands_type=3
+http://allearsnet.com/acc/faq_bc1.htm
+http://allearsnet.com/ae/issue006.htm
+http://allearsnet.com/pl/apass.htm
+http://allearsnet.com/tp/mk/mk_char.htm
+http://allearsnet.com/tp/mk/tea.htm
+http://allegrophoto.com/humansac.htm
+http://allensblog.typepad.com/allens_blog/2005/01/commandment_5_c.html
+http://allensblog.typepad.com/allens_blog/2005/03/commandment_7_l.html
+http://allfreeessays.com/student/Northern_Ireland_Conflict-Religion_vs_Politics.html
+http://alliancefoundation.roswellpark.org/Document.asp?lid=2667
+http://alliancefoundation.roswellpark.org/document_2667_248.html
+http://allied.blogspot.com/archives/2003_10_12_allied_archive.html
+http://allmuskie.com/awards/award4a.html
+http://allnurses.com/forums/showthread.php?t=108251&goto=nextnewest
+http://allnurses.com/forums/showthread.php?threadid=107387
+http://allpsych.com/drugs.html
+http://allrecipes.com/advice/coll/thanks/articles/651P1.asp
+http://allzone4dvd.net/review_details.htm?id=1253
+http://almashriq.hiof.no/lebanon/600/610/617/lebanese_nose.html
+http://alnyethelawyerguy.typepad.com/al_nye_the_lawyer_guy/2004/10/pretty_dead.html
+http://alomax.free.fr/posters/vintimiglia/
+http://alop.atspace.com/tui/mundell-press.html
+http://alpha.furman.edu/~benson/docs/clay.htm
+http://alpha2.bmc.uu.se/new/local_html/bobscript/bob/bobscript.doc.ch5.html
+http://alpie.net/blog/html/category/Social+Capital.html
+http://als.weblab.org/cgi-bin/weblab/lovestories/salon3.0/public.cgi?mode=Thread_First&thread=7&salon=Relationship+Group+1
+http://alsonetworks.com/tos.shtml
+http://alt.com/blog/clynn911/?trlid=%2Fsite%2Ffiles%2Fbdsm%2Fcron%2Fenglish%2Fblog_most_recent_blogs.txt-72
+http://alt.samhsa.gov/samhsa_news/VolumeXII_5/article7.htm
+http://alt.samhsa.gov/samhsa_news/VolumeXII_5/text_only/article7txt.htm
+http://alt.venus.co.uk/weed/writings/squatjs.html
+http://alte-stadtmauer.com/english/imprint.html
+http://altercom.com/faq.htm
+http://alternativetentacles.com/news.php?page=2&news_section=JELLO&window_size=15&sd=egdKOXe7OS80ahmSMn0
+http://alternet.org/election04/19366/
+http://alterslash.org/
+http://althouse.blogspot.com/
+http://althouse.blogspot.com/2004/04/understanding-politics-with-brain.html
+http://althouse.blogspot.com/2004_01_01_althouse_archive.html
+http://althouse.blogspot.com/2004_11_01_althouse_archive.html
+http://althouse.blogspot.com/2005/01/its-so-unusual-to-be-standing-when.html
+http://althouse.blogspot.com/2005/02/simulblogging-american-idol_09.html
+http://althouse.blogspot.com/2005/04/judicial-nominees-and-playing-religion.html
+http://althouse.blogspot.com/2005/06/are-you-math-teachers-sure-youre.html
+http://altmedangel.com/melaton.htm
+http://altmedicine.about.com/cs/conditionsatod/a/Diabetes.htm
+http://altmedicine.about.com/cs/conditionsitoq/a/Insomnia.htm
+http://altoona.jobs.topusajobs.com/
+http://altreligion.about.com/library/glossary/symbols/bldefsrosecross.htm
+http://altspace.aresinstitute.org/archives/000010.html
+http://altweb.jhsph.edu/meetings/pain/morton.htm
+http://altweb.jhsph.edu/publications/humane_exp/chap6d.htm
+http://alum.mit.edu/ne/whatmatters/200107/
+http://alum.mit.edu/ne/whatmatters/200202/
+http://alum.mit.edu/ne/whatmatters/200407/
+http://alum.mit.edu/ne/whatmatters/200408/
+http://alumnae.smith.edu/mission/about_us.htm
+http://alumni.nd.edu/clubs/notes_i.html
+http://alumni.nd.edu/~ndc_scp/other_help.htm
+http://alumni.oregonstate.edu/eclips/history/osuhistory04.html
+http://alumni.umich.edu/events/QA05.php
+http://alumni.umich.edu/home/forwarding.php
+http://alumnus.caltech.edu/~seppley/
+http://alumweb.mit.edu/classes/1953/50th_Questionnaire.html
+http://alumweb.mit.edu/classes/1966/necrology.html
+http://alwayswow.blogspot.com/2004/12/some-thoughts-about-online-banking-and.html
+http://alzheimers.about.com/od/frustration/
+http://alzheimers.about.com/od/frustration/index_a.htm
+http://alzheimers.about.com/od/givingsupport/a/med_reseach.htm
+http://alzheimers.infopop.cc/eve/ubb.x/a/tpc/f/443100732/m/272108133/r/647105574
+http://alzonline.net/en/reading/memory/guide_ch6.php
+http://amadeus.bvdep.com/amadeus/top20/report_16.htm
+http://amarok.kde.org/blog/
+http://amazing-space.stsci.edu/resources/explorations/blackholes/teacher/overview.shtml
+http://amazing-space.stsci.edu/resources/explorations/galaxies-galore/teacher/grabbag.html
+http://amazing-space.stsci.edu/resources/qa/statistics_p2.php.p=Astronomy+basics@,eds,astronomy-basics.php%3EQ*amp*A:+Statistics@,resources,qa,statistics.php&a=,eds
+http://ambernews.bigthicketdirectory.net/main.html
+http://amberskyline.com/treasuremaps/pajama-genealogy-course_4.html
+http://ambientirony.mu.nu/
+http://ambivablog.typepad.com/
+http://ambivablog.typepad.com/ambivablog/2005/01/intelligent_des.html
+http://amblesideonline.homestead.com/PRMemoryForgetfulness.html
+http://amcofa.org/reviews/indextitles.html
+http://amcop.blogspot.com/2005/01/choice-words.html
+http://americablog.blogspot.com/
+http://americablog.blogspot.com/2005/02/full-text-of-bushs-sotu.html
+http://americablog.blogspot.com/2005/02/man-called-jeff.html
+http://americablog.blogspot.com/2005/04/take-action-microsoft-abandons-gays.html
+http://americablog.blogspot.com/archives/2004_07_01_americablog_archive.html
+http://americablog.blogspot.com/archives/2004_07_25_americablog_archive.html
+http://americablog.blogspot.com/archives/2004_10_31_americablog_archive.html
+http://americablog.blogspot.com/archives/2004_11_01_americablog_archive.html
+http://americanart.si.edu/collections/exhibitions.cfml
+http://americancivilwar.com/colored/histofcoloredtroops.html
+http://americancivilwar.com/documents/williamson_address.html
+http://americancivilwar.com/women/rg.html
+http://americandigest.org/mt-archives/005057.php
+http://americaneconomicalert.org/view_art.asp?Prod_ID=1902
+http://americanfuture.typepad.com/american_future/2005/01/who_provides_fi.html
+http://americanhibiscus.org/ahsmins.htm
+http://americanhistory.si.edu/archives/d5300mh5.htm
+http://americanidolauditiontraining.blogs.com/marisa/2004/07/song_ideas_anyo.html
+http://americanidolauditiontraining.blogs.com/marisa/2005/02/no_more_america.html
+http://americanindian.net/newsletter0404.html
+http://americanprinter.com/consumables/paper/printing_nine_ideas_saving/
+http://americanradioworks.publicradio.org/features/congtravel/a1.html
+http://americanradioworks.publicradio.org/features/congtravel/d1.html
+http://americanradioworks.publicradio.org/features/marshall/martin.html
+http://americanradioworks.publicradio.org/features/noplacetohide/dinh.html
+http://americanradioworks.publicradio.org/features/noplacetohide/thomas.html
+http://americanradioworks.publicradio.org/features/oh_freedom/interview_robinson.html
+http://americanradioworks.publicradio.org/features/prestapes/mlk_speech.html
+http://americanradioworks.publicradio.org/features/remembering/north.html
+http://americanradioworks.publicradio.org/features/remembering/whitesremember.html
+http://americanradioworks.publicradio.org/features/y2k/notebook.html
+http://americanthinker.com/articles.php?article_id=3789
+http://americanthinker.com/articles_print.php?article_id=3789
+http://ameriyank.com/cafe/cafepresslist.html
+http://amleft.blogspot.com/archives/2004_04_01_amleft_archive.html
+http://ams.allenpress.com/amsonline/?request=get-document&doi=10.1175%2F1520-0434(1997)012%3C0005:SSFCTH%3E2.0.CO%3B2
+http://ams.confex.com/ams/AFAPURBBIO/techprogram/paper_80442.htm
+http://amyesq.blogspot.com/
+http://amyesq.blogspot.com/2005_06_01_amyesq_archive.html
+http://amylovesbooks.blogspot.com/
+http://amywelborn.typepad.com/openbook/
+http://amywelborn.typepad.com/openbook/2004/08/embryonic_polic.html
+http://amywelborn.typepad.com/openbook/2005/01/the_totalitaria.html
+http://amywelborn.typepad.com/openbook/2005/01/umokay.html
+http://amywilson.blogspot.com/2003_08_10_amywilson_archive.html
+http://ana.ong.ro/romana/centrulana/editura/rev700/dpascaleng700.html
+http://anabaptist.lifewithchrist.org/
+http://analogik.com/article_stencil.asp
+http://analysis.itmanagersjournal.com/analysis/05/02/03/1918223.shtml?tid=107&tid=112
+http://analysis.itmanagersjournal.com/article.pl?sid=05/02/03/1918223&tid=107
+http://analyzer.depaul.edu/paperplate/activities.htm
+http://anbat.toonzone.net/bb/sotlc.html
+http://ancientegypt.hypermart.net/celestialfish/
+http://ancienthistory.about.com/library/prm/blbelisariusd.htm
+http://andolan.net/member-stories.htm
+http://andrewcoyne.com/archives/003839.php
+http://andrewcoyne.com/columns/FinancialPost/1985-87/19860215.html
+http://andrewcoyne.com/columns/NationalPost/2002/20020816.html
+http://andrewolmsted.com/archives/000650.html
+http://andrewolmsted.com/archives/2005_01.html
+http://andrewsullivan.com/
+http://andrewvis.blogspot.com/
+http://andrewvis.blogspot.com/2004_05_01_andrewvis_archive.html
+http://andromeda.rutgers.edu/~jlynch/18th/history.html
+http://andromeda.rutgers.edu/~jlynch/Papers/dict.html
+http://andromeda.rutgers.edu/~jlynch/Papers/psalm.html
+http://andromeda.rutgers.edu/~jlynch/Texts/BLJ/b379.html
+http://andromeda.rutgers.edu/~jlynch/Texts/BLJ/b538.html
+http://andromeda.rutgers.edu/~jlynch/Texts/sprat.html
+http://andromeda.rutgers.edu/~jlynch/Writing/c.html
+http://andromeda.rutgers.edu/~jlynch/Writing/n.html
+http://andtheylivedhappilyeverafter.com/29.htm
+http://andukar.org/
+http://andykaufmanreturns.blogspot.com/
+http://andyshowto.com/
+http://angel.1jh.com/library/shatter-05.shtml
+http://angeles.sierraclub.org/news/cougars.asp
+http://angelingo.usc.edu/issue03/politics/a_chasing.php
+http://angelsandfrogs.blog-city.com/
+http://angermanagement.mu.nu/archives/029786.html
+http://anglicansonline.org/
+http://anglicansonline.org/news/archives/2004d.html
+http://animal-collectibles-cat.ioffer.com/c/DE/Animals-151500
+http://animal-rights.net/ar-views/crucial-points.php
+http://animal-world.com/encyclo/reptiles/information/SelectingYourLizard.htm
+http://animal.discovery.com/guides/reptiles/turtles/slider.html
+http://animalbehaviour.net/JudithKBlackshaw/Chapter3c.htm
+http://animaldiversity.ummz.umich.edu/site/animal_names/more_about_names.html
+http://animalpetdoctor.homestead.com/Heart.html
+http://animatedtv.about.com/cs/merchandis1/gr/spdvd2.htm
+http://animation.about.com/od/recommendedreading/a/keepingup.htm
+http://animenewsnetwork.com/
+http://annamarketing.com/25.html
+http://anndaniels.editme.com/days16-20
+http://anneslimo.com/Limo%20FAQ.htm
+http://annevankesteren.nl/2004/07/bandwidth
+http://annevankesteren.nl/2005/04/quotes-in-php
+http://annewhitney.typepad.com/beach_house_rules/2004/07/
+http://annezook.com/archives/001264.php
+http://annezook.com/archives/001353.php
+http://annualreport.bhpbilliton.com/2004/ltd/repository/overview/chiefExecutiveOfficersReport.asp
+http://annualreport.bhpbilliton.com/2004/plc/repository/overview/chiefExecutiveOfficersReport.asp
+http://anomalies-unlimited.com/Jackson.html
+http://anomalyinfo.com/articles/sa00043.shtml
+http://anonymouslawyer.blogspot.com/2005_05_01_anonymouslawyer_archive.html
+http://answerbook.somix.com/webnm/manual_ch20.html
+http://answercenter.ebay.com.sg/forum.jsp?forum=1&start=15&thRange=15
+http://answering-islam.org.uk/Books/Subhan/Bio/part14.htm
+http://answering-islam.org.uk/Quran/Science/embryo.html
+http://answers.google.com/answers/threadview?id=156842
+http://answers.google.com/answers/threadview?id=194231
+http://answers.google.com/answers/threadview?id=2112
+http://answers.google.com/answers/threadview?id=295993
+http://answers.google.com/answers/threadview?id=344090
+http://answers.google.com/answers/threadview?id=350861
+http://answers.google.com/answers/threadview?id=35289
+http://answers.google.com/answers/threadview?id=36724
+http://answers.google.com/answers/threadview?id=369714
+http://answers.google.com/answers/threadview?id=410556
+http://answers.google.com/answers/threadview?id=419211
+http://answers.google.com/answers/threadview?id=441951
+http://answers.google.com/answers/threadview?id=450902
+http://answers.google.com/answers/threadview?id=453634
+http://answers.google.com/answers/threadview?id=459133
+http://answers.google.com/answers/threadview?id=459805
+http://answers.google.com/answers/threadview?id=502406
+http://answers.google.com/answers/threadview?id=5128
+http://answers.google.com/answers/threadview?id=517192
+http://answers.google.com/answers/threadview?id=517422
+http://answers.google.com/answers/threadview?id=519996
+http://answers.google.com/answers/threadview?id=522571
+http://answers.google.com/answers/threadview?id=522962
+http://answers.google.com/answers/threadview?id=523914
+http://answers.google.com/answers/threadview?id=526404
+http://answers.google.com/answers/threadview?id=530481
+http://answers.google.com/answers/threadview?id=532016
+http://answers.google.com/answers/threadview?id=532376
+http://answers.google.com/answers/threadview?id=533908
+http://answers.google.com/answers/threadview?id=536728
+http://answers.google.com/answers/threadview?id=6100
+http://answers.org/cgibin/wwwboard.pl?noframes;read=381
+http://answers.org/news/index.php?topic=science
+http://anthonyisright.blogspot.com/
+http://anthro.palomar.edu/homo/homo_2%20.htm
+http://anthro.palomar.edu/marriage/marriage_4.htm
+http://antipolygraph.org/hearings/senate-judiciary-1997/richardson-statement.shtml
+http://antipolygraph.org/statements/statement-025.shtml
+http://antiqueradios.com/forums/Forum5/HTML/002655.html
+http://antiquerestorers.com/SALE.htm
+http://antisubjugator.blogspot.com/2005/06/thanks-america.html
+http://antiwar.com/lind/?articleid=3120
+http://antiwar.com/malic/
+http://antoine.frostburg.edu/chem/senese/101/measurement/index.shtml
+http://antwrp.gsfc.nasa.gov/htmltest/jbonnell/www/grbhist.html
+http://anubis4_2000.tripod.com/3rdFloorStranger.htm
+http://anulib.anu.edu.au/clusters/ssh/lac/ecglac/ecg990414.html
+http://anywhere.tennessee.edu/online/generalinfo.htm
+http://ao.nictusa.com/ao/no/770015.html
+http://ao.nictusa.com/ao/no/780039.html
+http://ao.osa.org/ViewMedia.cfm?id=31130&seq=0
+http://aol.businessweek.com/bwdaily/dnflash/dec2003/nf20031215_2564_db014.htm
+http://aol.princetonreview.com/college/finance/articles/smart/impcredit.asp
+http://aolp.tamu.edu/apps.htm
+http://aolsvc.bookreporter.aol.com/wom/wom-010525.asp
+http://aolsvc.bookreporter.aol.com/wom/wom-010810.asp
+http://aolsvc.bookreporter.aol.com/wom/wom-020201.asp
+http://aolsvc.bookreporter.aol.com/wom/wom-030822.asp
+http://aolsvc.bookreporter.aol.com/wom/wom-040109.asp
+http://aolsvc.bookreporter.aol.com/wom/wom-040227.asp
+http://aolsvc.health.webmd.aol.com/content/article/99/105124.htm
+http://aolsvc.health.webmd.aol.com/content/pages/16/98759
+http://aolsvc.health.webmd.aol.com/hw/diet_and_nutrition/aa158966.asp?printing=true
+http://aolsvc.health.webmd.aol.com/hw/raising_a_family/nord976.asp
+http://aolsvc.news.aol.com/entertainment/article.adp?id=20050615071709990006&_ccc=4&cid=918
+http://aolsvc.news.aol.com/entertainment/article.adp?id=20050615071709990006&_ccc=5&cid=459
+http://aolsvc.news.aol.com/sports/article.adp?id=20041123145809990012&cid=1079
+http://aolsvc.salary.aol.com/careersandwork/salary/articles/atcl_careeradvice.asp?atc=246
+http://aomw.org/
+http://aotearoa.wellington.net.nz/back/tumoana/tumoana2.html
+http://ap.washingtontimes.com/dynamic/stories/I/IRAQ?SITE=DCTMS&SECTION=HOME
+http://ap.washingtontimes.com/dynamic/stories/I/ISRAEL_PALESTINIANS?SITE=DCTMS&SECTION=HOME
+http://ap.wwltv.com/dynamic/fronts/TOPSTORIES?SITE=WWL&TEMPLATE=USHEADS.html
+http://ap_history_online.tripod.com/apush2.htm
+http://apartments.uchicago.edu/troubleshooting/utilities.html
+http://apcd.anu.edu.au/faq/
+http://ape10.blogspot.com/
+http://apg.cfw2.com/article.asp?content_id=6778
+http://apha.confex.com/apha/132am/techprogram/paper_92296.htm
+http://api-ec.api.org/about/index.cfm?bitmask=001002000000000000
+http://api-ec.api.org/about/index.cfm?bitmask=001002001000000000
+http://apls.tripod.com/
+http://apnews.myway.com/article/20050416/D89G83882.html
+http://apnews.myway.com/article/20050429/D89OVOUO0.html
+http://apnews.myway.com/article/20050509/D89VKE6G0.html
+http://apnews.myway.com/article/20050521/D8A7MPFG0.html
+http://apnews.myway.com/article/20050601/D8AF1OO80.html
+http://apnews.myway.com/article/20050608/D8AJ5UB80.html
+http://apodion.com/vad/article.php?id=27&aid=126
+http://apollo.ogis.state.me.us/faq/faq.asp?fn=16
+http://apologia.gospelcom.net/html/reader_res.html
+http://app.feedback.gov.sg/asp/new/new0001.asp?id=481
+http://app.ica.gov.sg/serv_visitor/student_pass/student_pass_app.asp
+http://app.mfa.gov.sg/internet/press/view_press.asp?post_id=1045
+http://app.mfa.gov.sg/internet/press/view_press_print.asp?post_id=1045
+http://app.mof.gov.sg/news_speeches/speechdetails.asp?speechid=94
+http://app.nea.gov.sg/cms/htdocs/category_sub.asp?cid=204
+http://app.nea.gov.sg/cms/htdocs/category_sub.asp?cid=67
+http://app.sprinter.gov.sg/data/pr/2004091801.htm
+http://app.sprinter.gov.sg/data/pr/2005011399.htm
+http://app01.ica.com.au/privacy.jsp
+http://app1.chinadaily.com.cn/star/2004/0401/bz11-nat.html
+http://app2.learning.sohu.com/education/papers/71/514/view.php
+http://appl.nasa.gov/ask/issues/17/stories/17_fineline_bothwell.html
+http://appl.nasa.gov/ask/issues/20/features/20_morning_tibbetts.html
+http://appl003.lsu.edu/design/artdesign.nsf/$Content/Resources?OpenDocument
+http://apple.csie.ncku.edu.tw/gas/public_html/meke/patternInstances.jsp?name=In%20addition%20to&id=140160&category=0
+http://apple2history.org/parodies/a2pie.html
+http://applejournal.com/var005.htm
+http://applematters.com/index.php/section/comments/apple_computer_is_piracy_the_pathway_to_profits/
+http://applications.edmunds.com/advice/buying/articles/46531/article.html
+http://appliedergonetwork.iienet.org/pages/index.cfm?pageid=192
+http://apply-mag.com/mag/farming_upgrading_information_systems/
+http://appropriations.house.gov/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=199&Month=7&Year=2003
+http://appropriations.house.gov/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=291&Month=7&Year=2003
+http://appropriations.house.gov/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=385&Month=6&Year=2004
+http://appropriations.house.gov/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=414&Month=7&Year=2004
+http://appropriations.house.gov/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=416&Month=7&Year=2004
+http://appropriations.senate.gov/hearmarkups/record.cfm?id=203848
+http://appropriations.senate.gov/hearmarkups/record.cfm?id=221099
+http://appropriations.senate.gov/hearmarkups/record.cfm?id=224899
+http://appropriations.senate.gov/hearmarkups/record.cfm?id=226662
+http://appropriations.senate.gov/releases/record.cfm?id=180447
+http://appropriations.senate.gov/releases/record.cfm?id=181508
+http://appropriations.senate.gov/text/hearmarkups/record.cfm?id=221099
+http://appropriations.senate.gov/text/hearmarkups/record.cfm?id=224899
+http://appropriations.senate.gov/text/subcommittees/record.cfm?id=226662
+http://apps.caes.uga.edu/impact/viewbrief.cfm?bid=2250
+http://apps.cybersource.com/library/documentation/dev_guides/Web_Services_Clients_PHP/html/app_key_generation.htm
+http://appserv.gcn.com/24_14/executive-technology/36036-1.html
+http://appserv.gcn.com/forum/qna_forum/147-2.html
+http://apronyms.com/category.php?ID=1984269
+http://aptenobytes.typepad.com/aptenobytes/2005/05/carnival_of_the.html
+http://aqualinkwebforum.com/eve/ubb.x/a/tpc/f/9536055422/m/8176029855/r/8766091065
+http://aquanic.org/publicat/usda_rac/tr/ctsa/2busopty.htm
+http://aquariusrecords.org/cat/rockpop31.html
+http://aquat1.ifas.ufl.edu/guide/whymanag.html
+http://arabiangym.com/coaches.htm
+http://arago.cprost.sfu.ca:8587/muse/inventory/BlueSkyFrog/view
+http://arar.essortment.com/kidsummercamp_rcxj.htm
+http://arbiter.wipo.int/domains/decisions/html/2000/d2000-0167.html
+http://arbiter.wipo.int/domains/decisions/html/2000/d2000-0584.html
+http://arbiter.wipo.int/domains/decisions/html/2000/d2000-0585.html
+http://arbiter.wipo.int/domains/decisions/html/2000/d2000-0636.html
+http://arbiter.wipo.int/domains/decisions/html/2000/d2000-0637.html
+http://arbiter.wipo.int/domains/decisions/html/2000/d2000-1470.html
+http://arbiter.wipo.int/domains/decisions/html/2003/d2003-0002.html
+http://arbl.cvmbs.colostate.edu/hbooks/genetics/biotech/enzymes/cuteffects.html
+http://arbl.cvmbs.colostate.edu/hbooks/pathphys/digestion/stomach/rennin.html
+http://arcadecontrols.com/wwwboard/messages/41876.html
+http://arcc-catholic-rights.org/constitution.htm
+http://archaeology.wlu.edu/longdale.html
+http://archer2000.tripod.com/lawdisorder/lawback20.html
+http://archfami.ama-assn.org/cgi/content/full/7/2/134
+http://archidose.blogspot.com/2005/01/cta-news.html
+http://architecture.about.com/b/a/2003_11_17.htm
+http://architecture.about.com/library/bl-neoeclectic.htm
+http://architecture.about.com/library/bl-raisedranch.htm
+http://architecture.about.com/library/bl-ranch.htm
+http://architecture.about.com/library/bl-styles_index.htm
+http://architecture.about.com/library/bl-styles_index.htm?terms=houses+styles
+http://archive.1september.ru/eng/1998/eng47.htm
+http://archive.avsforum.com/avs-vb/history/topic/332134-1.html
+http://archive.ci.champaign.il.us/compplan/2/2_1.htm
+http://archive.cpsr.net/cpsr/GroupGuide.html
+http://archive.eiffel.com/doc/manuals/technology/contract/
+http://archive.ericsson.net/service/internet/picov/get?DocNo=3/21331-FAP130407/1
+http://archive.eso.org/
+http://archive.food.gov.uk/maff/archive/food/novel/stevreb.htm
+http://archive.greenpeace.org/pressreleases/toxics/1998dec1.html
+http://archive.idrc.ca/library/document/091017/
+http://archive.ilwu.org/solidarityday/20020829WeeklyUpdate.htm
+http://archive.ncsa.uiuc.edu/Cyberia/NumRel/glossary.html
+http://archive.salon.com/21st/feature/1998/12/16feature.html
+http://archive.salon.com/30dec1995/departments/hotb.html
+http://archive.salon.com/books/review/1999/09/24/lheureux/
+http://archive.salon.com/health/addiction/drugs/2000/09/27/alkaloids/
+http://archive.salon.com/mwt/feature/1998/05/27feature.html
+http://archive.salon.com/mwt/feature/2000/02/01/girlfriend/
+http://archive.salon.com/news/feature/2000/03/24/elian/index1.html
+http://archive.salon.com/news/feature/2000/03/24/elian/print.html
+http://archive.salon.com/politics/feature/2001/08/02/ganske/print.html
+http://archive.salon.com/sex/feature/2002/02/13/garden/print.html
+http://archive.salon.com/tech/feature/1999/04/16/aol_community/
+http://archive.salon.com/tech/feature/2005/01/14/death_of_environmentalism/
+http://archive.salon.com/wlust/pass/1998/10/08pass.html
+http://archive.scripting.com/2002/04/16
+http://archive.scripting.com/2004/06/18
+http://archive.scripting.com/2004/06/25
+http://archive.scripting.com/2005/06/15
+http://archive.tivocommunity.com/tivo-vb/history/forum/4-61.html
+http://archive.videogamereview.com/01.01/0EF39A54.php
+http://archive.webstandards.org/opinion.html
+http://archive.wn.com/2005/01/15/1400/kuwaitglobe/
+http://archive.wn.com/2005/01/16/1400/chennaiglobe/
+http://archive.wn.com/2005/01/29/1400/nuclearreview/
+http://archive.wn.com/2005/06/10/1400/culturereview/
+http://archive.wn.com/2005/06/12/1400/financialtokyo/
+http://archive.wn.com/2005/06/23/1400/p/d0/0126047eb897e6.html
+http://archive.wn.com/defencejobs/
+http://archived.ccc.govt.nz/HeritageWeek/2000/OtherEvents.asp
+http://archived.ccc.govt.nz/council/agendas/1998/February/CityServicesAnnualPlanMtg.asp
+http://archivelinks.wn.com/?aid=iraqoffshore/index.txt&day=sunday
+http://archivelinks.wn.com/?aid=worldecologist/index.txt&day=sunday
+http://archives.cbc.ca/IDC-1-41-1363-8443/sports/paralympics/clip12
+http://archives.cbc.ca/IDC-1-71-274-1460/conflict_war/cold_war/clip1
+http://archives.cbc.ca/IDC-1-71-274-1461/conflict_war/cold_war/clip2
+http://archives.cjr.org/year/92/2/economy.asp
+http://archives.cjr.org/year/98/4/kolata.asp
+http://archives.cnn.com/2000/HEALTH/10/03/testube.brother/
+http://archives.cnn.com/2000/US/11/10/vets.day/
+http://archives.cnn.com/2001/ALLPOLITICS/07/16/house.patients.bigp/
+http://archives.cnn.com/2001/ALLPOLITICS/07/31/patients.bill.facts/
+http://archives.cnn.com/2001/ALLPOLITICS/08/03/patients.rights/
+http://archives.cnn.com/2001/CAREER/jobenvy/06/04/glass/
+http://archives.cnn.com/2001/US/03/05/school.shooting.reax/
+http://archives.cnn.com/2001/US/11/06/gen.attack.on.terror/
+http://archives.cnn.com/2001/WORLD/asiapcf/east/04/30/china.willycolumn/
+http://archives.cnn.com/2001/WORLD/meast/12/08/mideast.violence/
+http://archives.cnn.com/2002/ALLPOLITICS/01/29/bush.speech.txt/
+http://archives.cnn.com/2003/EDUCATION/02/26/title.ix.report.ap/
+http://archives.cnn.com/2003/US/Northeast/01/12/wtc.skyscrapers/
+http://archives.cnn.com/HEALTH/diet.fitness/9911/09/inactive.exertion.journ.wmd/
+http://archives.cnn.com/money/2003/01/13/news/companies/aol/
+http://archives.econ.utah.edu/archives/a-list/2000/msg01098.htm
+http://archives.econ.utah.edu/archives/a-list/2002w47/msg00013.htm
+http://archives.econ.utah.edu/archives/a-list/2002w49/msg00006.htm
+http://archives.econ.utah.edu/archives/a-list/2003w22/msg00114.htm
+http://archives.econ.utah.edu/archives/a-list/2003w44/msg00014.htm
+http://archives.econ.utah.edu/archives/a-list/2004w37/msg00007.htm
+http://archives.econ.utah.edu/archives/marxism/2004w00/msg00105.htm
+http://archives.econ.utah.edu/archives/ope-l/2002m12/msg00079.htm
+http://archives.econ.utah.edu/archives/ope-l/2002m12/msg00085.htm
+http://archives.econ.utah.edu/archives/pen-l/2001m03.2/msg00030.htm
+http://archives.foodsafetynetwork.ca/ffnet/2002/12-2002/functional_foodnet_december_5.htm
+http://archives.gophercentral.com/index.php?op=news&id=3867
+http://archives.healthdev.net/sea-aids/msg01311.html
+http://archives.healthdev.net/sea-aids/msg01321.html
+http://archives.his.com/smartmarriages/2000-November/msg00021.html
+http://archives.his.com/smartmarriages/2003-March/msg00020.html
+http://archives.his.com/smartmarriages/2003-September/msg00008.html
+http://archives.his.com/smartmarriages/2005-January/msg00001.html
+http://archives.library.wisc.edu/oral/guide/set54.htm
+http://archives.nashvillescene.com/cgi-bin/article.cgi?story=Back_Issues:2001:October_11-17_2001:Arts:Cover_Story:Second_Place_Short_Fiction
+http://archives.nd.edu/findaids/ead/default.htm
+http://archives.neohapsis.com/archives/crypto/2001-q3/0112.html
+http://archives.neohapsis.com/archives/fulldisclosure/2005-03/0871.html
+http://archives.neohapsis.com/archives/fulldisclosure/2005-03/0872.html
+http://archives.neohapsis.com/archives/vuln-dev/2000-q3/0946.html
+http://archives.obs-us.com/obs/english/books/editinc/teleoly.htm
+http://archives.superiorinvestor.net/article-topic-5.html
+http://archives.tcm.ie/breakingnews/2002/01/07/story35665.asp
+http://archives.tcm.ie/businesspost/2005/06/12/story5523.asp
+http://archives.tcm.ie/irishexaminer/1998/07/18/ihead.htm
+http://archives.tcm.ie/westernpeople/2005/01/26/story23333.asp
+http://archives.thedaily.washington.edu/1997/030497/stocks.030497.html
+http://archives.thedaily.washington.edu/1999/062399/NNN3.Impression.html
+http://archives.thedaily.washington.edu/2000/112000/N2.HOCKEY.html
+http://archlab.gmu.edu/~dbdavis/
+http://archpsyc.ama-assn.org/cgi/content/abstract/53/3/225
+http://archrecord.construction.com/archrecord2/work/dec02/faith.asp
+http://archrecord.construction.com/news/wtc/
+http://ard.unl.edu/rn/0901/weed.html
+http://ardour.org/news.html
+http://are.berkeley.edu/APMP/pubs/agbusnet/agbusnet.11.00.html
+http://are.berkeley.edu/~atanu/blog/archives/000296.html
+http://ares.jsc.nasa.gov/HumanExplore/Exploration/EXLibrary/docs/ApolloCat/Part1/ALSEP.htm
+http://argentina.indymedia.org/news/2005/06/301897_comment.php
+http://argo.hiof.no/index2.php?option=com_content&do_pdf=1&id=60
+http://arieldx.tripod.com/english/manualdx/informes/informes.htm
+http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.anthro.32.061002.093244
+http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.matsci.31.1.47
+http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.me.30.020179.002421
+http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.pa.01.040161.002145
+http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.ps.05.020154.002041
+http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.publhealth.18.1.379
+http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.py.23.090185.000305
+http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.py.25.090187.000411
+http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.soc.29.010202.100030
+http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.soc.29.010202.100213
+http://arjournals.annualreviews.org/doi/full/10.1146/annurev.anthro.32.061002.093426
+http://arjournals.annualreviews.org/doi/full/10.1146/annurev.fluid.33.1.491
+http://arjournals.annualreviews.org/doi/full/10.1146/annurev.med.55.091902.103831
+http://arjournals.annualreviews.org/doi/full/10.1146/annurev.med.55.091902.104417
+http://arjournals.annualreviews.org/doi/full/10.1146/annurev.nucl.53.041002.110406
+http://arjournals.annualreviews.org/doi/full/10.1146/annurev.nutr.24.012003.132434
+http://arjournals.annualreviews.org/doi/full/10.1146/annurev.physiol.63.1.235
+http://arjournals.annualreviews.org/doi/full/10.1146/annurev.publhealth.25.101802.123042
+http://arjournals.annualreviews.org/doi/full/10.1146/annurev.soc.29.010202.100213
+http://arkansas.indymedia.org/newswire/display/17453/index.php
+http://arkansas.indymedia.org/newswire/display/18872/index.php
+http://arl.cni.org/aau/Frontmatter.html
+http://arl.cni.org/info/frn/copy/timeline.html
+http://arl.cni.org/scomm/copyright/uses.html
+http://arl.cni.org/scomm/scat/hockey.html
+http://arl.cni.org/scomm/scat/lesk.html
+http://arlhs.com/
+http://armani-perfume.ffind.servebeer.com/
+http://armedforces.nic.in/interservice/cdm.htm
+http://armedforces.nic.in/interservice/isincc1.htm
+http://armedservices.house.gov/openingstatementsandpressreleases/108thcongress/04-03-24hill.html
+http://armenianhouse.org/bliss/turkey/28-partition-turkey.html
+http://armscollectors.com/books.htm
+http://aroussi.com/archive/11/firefox-osx-safari-look
+http://aroussi.com/print/11/
+http://arrowheadcu.mortgagewebcenter.com/ResourceCenter/ResCtrInfo.asp?PID=119
+http://arseweb.com/rupe/pool/uk_rules.html
+http://arstechnica.com/columns/mac/mac-08062003.ars
+http://art-bin.com/art/gapa_en.html
+http://art-bin.com/art/omodest.html
+http://art-bin.com/art/oplecheng.html
+http://art-for-a-change.com/blog/
+http://art.blogging.la/archives/2004/03/gimme_back_my_funds.phtml
+http://art.blogging.la/archives/2005/01/the_rules_of_ar.phtml
+http://art.ou.edu/russellcenter/symposia/03detail.html
+http://art.stores.ebay.com/Mixed-Media_Antique-Pre-1900_W0QQcatZ20123QQtZlw
+http://art.sumix.com/articles/article_13.html
+http://art.uga.edu/html/abroa.php?getLinks=getTopPrograms&getContent=getPrograms&contentValue=14
+http://art.uga.edu/html/sculp.php?getLinks=getTopPrograms&getContent=getPrograms&contentValue=14
+http://artbymarkleavitt.com/purchase3.htm
+http://artenligne.com/@/JohnnyJWMorlan
+http://artenligne.com/A55A04/ael.nsf/Opra/DOMT-5WFS57
+http://artenligne.com/A55A04/ael.nsf/Opra/SRVV-66B22H
+http://artfulwriter.com/archives/2005/03/lets_be_the_str.html
+http://arthistory.about.com/od/davincicode/f/dvc_papers.htm
+http://arthritis.about.com/od/insuranceandmoneymatters/
+http://arthritis.about.com/od/weight/a/weightlossmyths_2.htm
+http://articles.corporate.findlaw.com/articles/file/01024/009782
+http://articles.poetryx.com/58/
+http://artisanitorium.thehydden.com/nonfiction/litcrit/godot.htm
+http://artlab.org.uk/videocritical/analysis3.htm
+http://artrocker.com/articles/newacts/trouble.shtml
+http://artroots.com/ra/bio/korovin/konstantinkorovinbio.htm
+http://arts.anu.edu.au/arcworld/resources/cult/aocult.htm
+http://arts.anu.edu.au/programs/ug/honours/working_rules.asp
+http://arts.columbia.edu/index.cfm?fuseaction=FILM_DIV.viewCourseOfStudy
+http://arts.envirolink.org/literary_arts/TTWilliams_listening.html
+http://arts.qmuc.ac.uk/ijost/Volume3_no1/editorial.htm
+http://arts.qmuc.ac.uk/ijost/Volume3_no2/3_lacey_s.htm
+http://arts.searchbeat.com/fine.htm
+http://arts.ucsc.edu/Gdead/AGDL/chase.htm
+http://artsandcrafts.about.com/od/forumthre3/
+http://artsandscience.concordia.ca/philosophy/newsevents.htm
+http://artsedge.kennedy-center.org/content/2012/
+http://artsedge.kennedy-center.org/content/2127/
+http://artsedge.kennedy-center.org/content/2131/
+http://artsedge.kennedy-center.org/content/2202/
+http://artsedge.kennedy-center.org/content/2257/
+http://artsedge.kennedy-center.org/content/2278/
+http://artsedge.kennedy-center.org/content/2325/
+http://artsedge.kennedy-center.org/content/2333/
+http://artsedge.kennedy-center.org/irish/learn/lsnplans/yeats/lesson3.html
+http://artsedge.kennedy-center.org/irish/share/storytelling/workshop/reading/artsedge.html
+http://arttribal.com/misc/faq.htm
+http://arxiv.org/abs/cond-mat/9708085
+http://arxiv.org/pdf/hep-th/0310028
+http://asaanz.rsnz.org/codeofethics.html
+http://ascc.healingwell.com/humor/office.html
+http://ascelibrary.aip.org/journals/doc/ASCERL-home/rlcFaq.jsp
+http://ascension2000.com/DivineCosmos/06.htm
+http://ascii.textfiles.com/archives/000122.html
+http://ascweb.usc.edu/news.php?storyID=25
+http://ase.tufts.edu/cogstud/papers/rolelang.htm
+http://ase.tufts.edu/gradstudy/programCertEpidemiology.htm
+http://ase.tufts.edu/msat/Muslim_Unit/MU-app2.htm
+http://aseigo.blogspot.com/2004/11/ah-but-start-up-times.html
+http://asem.inter.net.th/chairman/
+http://asg.web.cmu.edu/andrew2/rfc/rfc2402.html
+http://asg.web.cmu.edu/rfc/rfc932.html
+http://ash.spaink.net/methods.html
+http://ashleemcclelland.pingwellesley.com/blog/Girlabouttown
+http://asia.cnet.com/newstech/industry/0,39001142,39189253,00.htm
+http://asia.cnet.com/reviews/digitalliving/customize/guide.htm
+http://asia.dir.yahoo.com/Arts/By_Region/Countries/Thailand/Complete_List/
+http://asia.dir.yahoo.com/Regional/Countries/Thailand/Government/Government_Officials/Office_of_the_Prime_Minister/
+http://asiatranspacific.com/about/office.aspx?pageID=15
+http://asisaid.com/journal/
+http://ask.metafilter.com/mefi/19387
+http://ask.metafilter.com/mefi/19456
+http://ask.metafilter.com/mefi/19779
+http://ask.metafilter.com/mefi/20209
+http://ask.pvrblog.com/2004/11/dish_network_dv.html
+http://ask.slashdot.org/askslashdot/04/12/28/2144249.shtml
+http://ask.yahoo.com/ask/20010717.html
+http://ask.yahoo.com/ask/20010925.html
+http://ask.yahoo.com/ask/20011019.html
+http://askmen.com/dating/dating_advice_100/112_dating_tips.html
+http://askmen.com/women/models_250/265b_victoria_zdrok.html
+http://askmen.com/women/models_250/265c_victoria_zdrok.html
+http://askmerrill.ml.com/publish/marketing_centers/articles/bfs_article_BFS009/
+http://askmerrill.ml.com/publish/marketing_centers/bfs_subcenter_3/
+http://asknettieday.blogspot.com/2004_08_01_asknettieday_archive.html
+http://askpang.typepad.com/
+http://askpang.typepad.com/relevant_history/2005/03/ah_services.html
+http://askthebookie.com/newsFeedContent.php?ID=7903&TIT=Speculation+about+Cubs%C2%B4
+http://asktom.oracle.com/pls/ask/f?p=4950:8:13973604824201098516::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:1155066278457
+http://aslo.org/
+http://aslowerpace.com/serendipity/
+http://aslpah.com/main/archives/aslpah6.htm
+http://asmallvictory.net/
+http://asmallvictory.net/archives/002825.html
+http://asmallvictory.net/archives/004975.html
+http://asmallvictory.net/archives/006086.html
+http://asmallvictory.net/archives/007495.html
+http://asmallvictory.net/archives/007795.html
+http://asmallvictory.net/archives/007968.html
+http://asnic.utexas.edu/asnic/countries/india/InPoliticalstru.html
+http://asp.cumc.columbia.edu/facdb/profile_list.asp?uni=dd227&DepAffil=Surgery
+http://asp.unl.edu/
+http://aspe.hhs.gov/daltcp/reports/chap14.htm
+http://aspn.activestate.com/ASPN/Mail/Message/do-sig/577247
+http://aspn.activestate.com/ASPN/docs/ActivePerl-5.6/CHANGES.html
+http://aspn.activestate.com/ASPN/docs/ActivePerl/5.8/lib/Pod/activeperl-changes-56.html
+http://aspnet.4guysfromrolla.com/articles/061505-1.aspx
+http://assembly.coe.int/Communication/SessionSpeeches/June2002/DiscoursPolfer_e.htm
+http://assembly.coe.int/Documents/AdoptedText/TA05/ERES1436.htm
+http://assembly.coe.int/Documents/AdoptedText/ta05/ERES1428.htm
+http://assembly.coe.int/Documents/WorkingDocs/DOC04/EDOC10218.htm
+http://assembly.coe.int/Documents/WorkingDocs/Doc05/EDOC10453.htm
+http://assembly.coe.int/Documents/WorkingDocs/Doc05/EDOC10496.htm
+http://assembly.coe.int/Documents/WorkingDocs/doc02/EDOC9544.htm
+http://assembly.coe.int/Documents/WorkingDocs/doc03/EDOC9980.htm
+http://assessment.tamu.edu/progtowardsdeg.html
+http://assm.asstr.org/~eli/erotica/roomview.1.html
+http://assm.asstr.org/~eli/erotica/various/Zero.Gravity.html
+http://assoc.wanadoo.fr/une.education.pour.demain/theory/awary.htm
+http://associates.ucr.edu/letters700.html
+http://associations.smsu.edu/mags/1999Mags/Brenner.htm
+http://astro.isi.edu/games/moon.html
+http://astro.nmsu.edu/~lhuber/leaphist.html
+http://astro.uchicago.edu/cara/southpole.edu/boil.html
+http://astrobiology.arc.nasa.gov/feature/editorial0601.html
+http://astrobiology.arc.nasa.gov/roadmap/g6.html
+http://astronomy.swin.edu.au/~pbourke/colour/edgeblend/
+http://astronomy.swin.edu.au/~pbourke/fractals/fracintro/
+http://astronomy.swin.edu.au/~pbourke/fractals/sketch/
+http://astronomy.swin.edu.au/~pbourke/papers/helnet/
+http://astros.mostvaluablenetwork.com/index.php?m=200503
+http://astroventure.arc.nasa.gov/aa/train/AVStraining.html
+http://asumag.com/mag/university_building_better_schools/
+http://asumag.com/mag/university_raising_money_winning/
+http://asumag.com/mag/university_schools_tomorrow/
+http://asumag.com/mag/university_universal_design/
+http://asymptomatic.net/wp/2004/05/28/568/blogware-choice/
+http://atheism.about.com/b/a/119949.htm
+http://atheism.about.com/library/FAQs/skepticism/blfaq_fall_complex.htm
+http://atheism.about.com/library/books/full/aafprTroubleXmas.htm
+http://athena.uwindsor.ca/units/biosci/BiologyFaculty.nsf/0/1831486a66481fb60525686b00558b9b?OpenDocument
+http://athletic.virginia.edu/mccuesportsmed/ATR.emergencyprocedures.html
+http://athletics.adams.edu/wrestling/outlook.html
+http://athletics.binghamton.edu/sports/mbask/aemediaday-05.html
+http://athletics.sunymaritime.edu/page.asp?Section=AthPages&PageID=Mission
+http://athletics.uchicago.edu/campus/dodgeballtourney/rules.htm
+http://athletics.ucsd.edu/news/index.php?id=1383
+http://atiam.train.army.mil/portal/atia/adlsc/view/public/296756-1/fm/22-100/ch2.htm
+http://atiam.train.army.mil/portal/atia/adlsc/view/public/296785-1/fm/27-100/chap7.htm
+http://atimes.com/atimes/Front_Page/FH20Aa01.html
+http://atimes.com/atimes/Global_Economy/GF16Dj01.html
+http://atimes.com/atimes/South_Asia/FL23Df01.html
+http://atimes01.atimes.com/atimes/Middle_East/FJ02Ak04.html
+http://atkins.com/
+http://atkins.com/Archive/2004/12/30-931042.html
+http://atlanta.creativeloafing.com/2004-10-21/grazing.html
+http://atlanta.creativeloafing.com/cover.html
+http://atlantic-web1.ns.ec.gc.ca/airquality/static/default.asp?lang=En&n=60B704C3-1
+http://atlas.freegk.com/world/asia/taiwan/taiwan.php
+http://atlas.gc.ca/site/english/learningresources/lesson_plans/middle_school/sk_ms_student_worksheet.html
+http://atlas.geo.cornell.edu/education/instructor/getting_started.html
+http://atlas.geo.cornell.edu/education/student/getting_started.html
+http://atlas.mapzones.com/taiwan/taiwan.php
+http://atlas.usafa.af.mil/jscope/JSCOPE00/Mattox00.html
+http://atlas.usafa.af.mil/pa/factsheets/airmansh.htm
+http://atom.uni-mb.si/labs/labprst/Gorsek1.htm
+http://atomfilms.shockwave.com/af/spotlight/collections/starwars/
+http://atomicbride.com/surfparties.html
+http://atowncrier.blogspot.com/2004_12_26_atowncrier_archive.html
+http://atoz.iqhealth.com/Atoz/fitness/RecSports/tennis.html
+http://atoz.iqhealth.com/Atoz/fitness/cardiocraze/speedwalking.html
+http://atozteacherstuff.com/Themes/Christmas/
+http://atozteacherstuff.com/Themes/Thanksgiving/
+http://atpanda.blog.com/Fire+Fighting/
+http://atschool.eduweb.co.uk/ctrh/cks39.htm
+http://atschool.eduweb.co.uk/fraserburgh.ac/academy/homeecon/homeec5.htm
+http://atschool.eduweb.co.uk/shawhse/consult.htm
+http://att-conference-call.com/conferencecallfromhome.htm
+http://att.tarot.com/about-tarot/library/essays/cups
+http://attentionspanzero.typepad.com/attention_span_zero/2004/10/
+http://atterer.net/jigdo/
+http://attitude.themercury.news.com.au/inconcert.htm
+http://attitude.themercury.news.com.au/sites.htm
+http://attra.ncat.org/attra-pub/altsoilamend.html
+http://attra.ncat.org/attra-pub/directmkt.html
+http://attra.ncat.org/calendar/index.php/
+http://attra.ncat.org/calendar/index.php/2005/07/
+http://atulchitnis.net/writings/rockwithyourpc.php
+http://atvscene.com/evaluations/project-ltz-03.htm
+http://atwork.harvard.edu/benefits/retirement/taxdeferred.shtml
+http://atyourservice.ucop.edu/employees/policies/labor_relations/news_events/agency_fee/fschart.html
+http://atyourservice.ucop.edu/employees/policies/staff_policies/spp43.html
+http://au.encarta.msn.com/encyclopedia_761558653_3/Wales.html
+http://au.encarta.msn.com/encyclopedia_761574581/Surgery.html
+http://au.encarta.msn.com/text_761558653__1/Wales.html
+http://au.encarta.msn.com/text_761558653___0/Wales.html
+http://au.franceguide.com/infospratiques/rubrique.asp?z1=wALqiaq2&idinf=19352
+http://au.health.yahoo.com/050508/24/4ggh.html?r=967556092
+http://au.health.yahoo.com/050508/24/4ggh.html?r=967556093
+http://au.itpapers.zdnet.com/DATA+MANAGEMENT/Data+Tools/
+http://au.messages.yahoo.com/health/womens_health/281/
+http://au.messages.yahoo.com/sports/soccer_discussion/666/
+http://au.news.yahoo.com/050615/19/uq82.html
+http://au.smallbusiness.yahoo.com/040818/7/13wz.html
+http://audiology.advanceweb.com/common/Editorial/Editorial.aspx?CC=28340
+http://audiology.advanceweb.com/common/Editorial/PrintFriendly.aspx?CC=28340
+http://augusta.com/cgi-bin/masters_review/masters_review.cgi?currentfunction=viewfeedback&playerid=149
+http://aul.org.uk/bristol
+http://aumha.org/a/parasite.php
+http://auriton.org/feeling_spent.htm
+http://auspsa.anu.edu.au/proceedings/2001/International_Relations_and_Political_Economy_Papers_A.htm
+http://austin.citysearch.com/profile/10238871/austin_tx/adam_s_personal_training.html
+http://austincraftmafia.com/sitdownJenPerk.html
+http://australia.accom.com.au/wa/southwest/
+http://australianit.news.com.au/articles/0,7204,15529440%5E15415%5E%5Enbv%5E15309,00.html
+http://australiasevereweather.com/techniques/moreadv/cloudchg.htm
+http://ausweb.scu.edu.au/aw96/workshps/hypertds.htm
+http://authors.aalbc.com/guyjohnson.htm
+http://autism.about.com/cs/parentstrategies/a/firesafety.htm
+http://auto_sol.tao.ca/node/view/1098
+http://auto_sol.tao.ca/node/view/1105
+http://auto_sol.tao.ca/node/view/1122
+http://auto_sol.tao.ca/node/view/1126
+http://auto_sol.tao.ca/node/view/1131
+http://auto_sol.tao.ca/node/view/1132
+http://auto_sol.tao.ca/node/view/1136
+http://auto_sol.tao.ca/node/view/1182
+http://auto_sol.tao.ca/node/view/209
+http://auto_sol.tao.ca/node/view/523
+http://auto_sol.tao.ca/node/view/804
+http://auto_sol.tao.ca/node/view/806
+http://auto_sol.tao.ca/user/login
+http://auto_sol.tao.ca/user/view/1026
+http://auto_sol.tao.ca/user/view/964
+http://automatedbuildings.com/news/nov03/articles/sines/sines.htm
+http://autonet.ca/DriverSource/stories.cfm?storyID=13753
+http://autonomoussource.com/
+http://autonomoussource.com/archive/000412.html
+http://autopackage.org/ui-vision.html
+http://autorepair.about.com/b/a/145369.htm
+http://autorepair.about.com/cs/troubleshooting/a/bl300.htm
+http://autos.msn.com/Advice/Article.aspx?contentid=9274&src=Luxury%20CarsCategory&pos=Edit4
+http://autos.msn.com/advice/article.aspx?contentid=9274&src=NRES
+http://autos.msn.com/advice/article.aspx?contentid=9274&src=News
+http://autos.msn.com/advice/article.aspx?contentid=9274&src=URES
+http://autos.msn.com/advice/article.aspx?contentid=9274&src=finance
+http://autos.msn.com/help/AutosHelp.aspx?xml=kbbfaq
+http://autos.msn.com/kbb/faq.aspx
+http://autos.yahoo.com/consumerreports/article/holding_up.html
+http://autospies.com/article/index.asp?articleId=3943
+http://aux.gaston.cc.nc.us/ASP_Scripts/personnel_Public/viewclass.asp
+http://avalon.crystal-flame.net/
+http://avalon.unomaha.edu/jrf/Vol7No2/robotHeaven.htm
+http://avandia.diabeteslife.com/avandia/avandia_side_effects.html
+http://avantgaming.com/archives/2004_11.html
+http://avari.blogs.com/weblog/the_militaryinferiority_complex/
+http://avari.blogs.com/weblog/what_can_blue_do_for_you_nothing_apparently/
+http://avc-bas.vcbf.berkeley.edu/balancedscorecard/staff_survey.htm
+http://avc.blogs.com/a_vc/2004/09/advice_please.html
+http://avc.blogs.com/a_vc/2005/03/500_per_year.html
+http://avc.blogs.com/a_vc/2005/03/apple_becomes_a.html
+http://avc.blogs.com/a_vc/2005/04/delicious.html
+http://avengerredsix.blogspot.com/2004/12/8-novemberd-day-first-in.html
+http://averagejane.blogs.com/
+http://averytooley.blogspot.com/2004/07/whachu-gon-do-now.html
+http://averytooley.com/stereo/?blogid=1&archive=2005-03&catid=4
+http://awaionline.com/thegoldenthread/2004/tgt_107.php
+http://away.com/about_us/privacy.html
+http://away.com/ideas/central_america/belize_sea_kayak.html
+http://away.com/places/europe/france/
+http://away.com/primedia/arts_arch/nunnery.html
+http://aweb.sunsite.dk/
+http://awfsite.brickriver.com/news_detail.asp?TableName=oNews_PJAYMY&PrimaryKey=oNews_PJAYMY_ID&PKValue=170
+http://awhonnlifelines.awhonn.org/cgi/content/full/8/5/422
+http://aww.ninemsn.com.au/aww/Health/articles/QA/article662.asp
+http://axcrypt.sourceforge.net/faq.htm
+http://axelboldt.proboards27.com/index.cgi?board=comparison&action=post&num=1090441640&quote=1090441640&start=0
+http://axion.physics.ubc.ca/crypt.html
+http://ayk.textamerica.com/?r=2483560
+http://ayla.am/jessup/eng/rules/rulesarm.htm
+http://az.pinkinki.net/
+http://azbb.cyaccess.com/
+http://azlyrics.free.fr/usher/usher_myway.htm
+http://azothgallery.com/yorksquare/YorkSQ_distributor_suit.html
+http://aztecpress.pima.edu/fall2004/090204/ae.html
+http://b-reactor.org/moderator/mod1999-03.htm
+http://b44.ezboard.com/balatariel
+http://babelogue.citypages.com:8080/bsmith/
+http://babelogue.citypages.com:8080/sperry/stories/storyReader$346
+http://babs.com.au/faq/
+http://baby-shower-games-etc.com/baby_shower_ideas.htm
+http://baby.goldencircle.com.au/content/?id=27
+http://babynames.kabalarians.com/
+http://babyproducts.about.com/
+http://babywait.blogspot.com/
+http://bacchronicle.homestead.com/GFinch.html
+http://backpain.articleinsider.com/191635_gravity_inversion_tables.html
+http://backword.me.uk/rubbish/00000345.html
+http://baconsrebellion.blogspot.com/2005/05/feds-give-feds-take-away.html
+http://bad-mother.blogspot.com/
+http://bad-mother.blogspot.com/2005/01/fat-is-feminist-issue-sort-of.html
+http://bad.eserver.org/issues/1994/17/intro.html
+http://bad.eserver.org/issues/2000/49/rshaw.html
+http://bad.eserver.org/issues/2000/51/editors.html
+http://bad.eserver.org/issues/2005/73/kitlinski.html
+http://bad.eserver.org/reviews/2005/goggin.html
+http://badbadart.blogspot.com/
+http://badbloodonpoker.blogspot.com/
+http://badgas.co.uk/lynndie/
+http://badgeraap.org/adminrec/adminrec.htm
+http://badgerherald.com/artsetc/2005/04/29/semester_of_games_yi.php
+http://badgerherald.com/news/2005/02/24/students_ask_for_wil.php
+http://badgerherald.com/news/2005/03/10/taa_faces_hurdle_aft.php
+http://badgerherald.com/sports/2003/04/15/a_history_of_experie.php
+http://badgerherald.com/sports/2005/02/09/uws_brueckler_hoping.php
+http://badgerherald.com/sports/2005/05/04/triple_crown_in_reac.php
+http://badhairblog.blogspot.com/
+http://badmanstropicalfish.com/dont_release.html
+http://badnewshughes.blogspot.com/2003_10_01_badnewshughes_archive.html
+http://baghdadgirl.blogspot.com/2005/01/life-in-baghdad-these-days_22.html
+http://bahai-library.com/?file=oliphant_haifa_modern_palestine.html
+http://bahai-library.com/bsr/bsr04/44_momen_women.htm
+http://bahay.ph/
+http://bahrs.com/jaycos2/julyaugust2000.html
+http://bairopiteclinic.tripod.com/sunrise_4.htm
+http://bakedchunk.blogdrive.com/
+http://baker.mit.edu/hazing.html
+http://balagan.blogspot.com/
+http://balanced.blogdrive.com/
+http://baldilocks.typepad.com/baldilocks/2004/06/open_letter_to_.html
+http://baldilocks.typepad.com/baldilocks/2005/01/go_to_hell_with.html
+http://balkin.blogspot.com/
+http://balkin.blogspot.com/2003_02_09_balkin_archive.html
+http://balrog.de/security/archives/2005/03/03/86_to-id-card-or-not-to-id-card
+http://baltimore.indymedia.org/newswire/display/10288/index.php
+http://baltimorechronicle.com/050704SibelEdmonds.shtml
+http://balzak.users.blogmatrix.com/podcasts/
+http://bam.zanan.co.ir/
+http://bama.sum.nl/opleiding/opleiding.asp?nOpleidingTaalID=15229
+http://bananaboo.com/stories/terrorc2.htm
+http://banapana.troped.com/archives/banapana/
+http://bandb.about.com/cs/aspiring/a/advice.htm
+http://bangernomics.tripod.com/readers.htm
+http://bangkok.metblogs.com/archives/2005/01/phuket_disaster.phtml
+http://banglacricket.com/html/article.php?year=2005&item=322
+http://banglacricket.com/html/printarticle.php?year=2005&vm=322
+http://banglapedia.search.com.bd/HT/H_0128.htm
+http://bank.rug.ac.be/da/da.htm
+http://banking-finance.careerbuilder.com/bf.ic/Illinois_Joliet/
+http://banking-finance.careerbuilder.com/bf.ic/Indiana_Gary/
+http://banking-finance.careerbuilder.com/bf.ic/SouthCarolina_Columbia/
+http://banking-finance.careerbuilder.com/bf.ic/SouthDakota/
+http://banking-finance.careerbuilder.com/bf.ic/SouthDakota_SiouxFalls/
+http://banking.about.com/od/cds/a/bankcdrates.htm
+http://banking.jobsearch.com/Pennsylvania-York.htm
+http://banking.senate.gov/index.cfm?FuseAction=Articles.Detail&Article_id=63&Month=7&Year=2004&IsTextOnly=1
+http://banking.senate.gov/index.cfm?Fuseaction=Hearings.Testimony&HearingID=42&WitnessID=162
+http://banking.yahoo.com/20020422a.html
+http://banknorth.com/
+http://bankrupt.com/TCRAP_Public/020226.mbx
+http://baplaboratory.maroc.to/maghreb.html
+http://barbelith.com/topic/16538
+http://barbelith.com/topic/18429
+http://barbelith.com/topic/19050
+http://barbelith.com/topic/1946
+http://barbelith.com/topic/19770
+http://barbelith.com/topic/19916
+http://barbelith.com/topic/19997
+http://barbelith.com/topic/20113
+http://barbelith.com/topic/5497
+http://barbelith.com/topic/8686
+http://barelybad.com/cl_margostaples.htm
+http://barkingowl.com/middle~path/archives/category/politics/election-2004/
+http://barlow.typepad.com/barlowfriendz/2004/07/
+http://barlow.typepad.com/barlowfriendz/2004/08/touring_manhatt.html
+http://barlow.typepad.com/barlowfriendz/2004/12/a_taste_of_the_.html
+http://barney.gonzaga.edu/~eschonbr/poorjoannanotes.htm
+http://barracudamvc.org/Barracuda/docs/events/high_level_overview.html
+http://barrysbakery.com/testimonials.htm
+http://bartleby.school.aol.com/124/pres59.html
+http://bartleby.school.aol.com/18/2/32.html
+http://bartleby.school.aol.com/197/33.html
+http://bartleby.school.aol.com/320/2/1000.html
+http://baseball-fever.com/archive/index.php/t-14969.html
+http://baseballblog.blogspot.com/2003_02_02_baseballblog_archive.html
+http://baseballcrank.com/archives2/2002/08/index.php
+http://baseballcrank.com/archives2/2003/08/baseball_the_wi.php
+http://baseballcrank.com/archives2/2003/08/blog_status.php
+http://baseballcrank.com/archives2/2003/12/baseball_low_st.php
+http://baseballnews.blogspot.com/
+http://bastitch.blogspot.com/2003_10_01_bastitch_archive.html
+http://batr.org/gulag/022204.html
+http://batr.org/markets/
+http://battellemedia.com/archives/000269.php
+http://battellemedia.com/archives/000420.php
+http://battellemedia.com/archives/000515.php
+http://battellemedia.com/archives/000787.php
+http://battellemedia.com/archives/001149.php
+http://battellemedia.com/archives/001560.php
+http://baylorbears.collegesports.com/genrel/010605aaa.html
+http://baylorbears.collegesports.com/genrel/033105aaa.html
+http://baylorbears.collegesports.com/genrel/042005aaa.html
+http://baylorbears.collegesports.com/genrel/050205aaa.html
+http://baylorbears.collegesports.com/genrel/061005aac.html
+http://baylorbears.collegesports.com/sports/c-track/spec-rel/061405aab.html
+http://bbs.applescript.net/viewtopic.php?pid=40165
+http://bbs.applescript.net/viewtopic.php?pid=40252
+http://bbs.babycenter.com/board/1379773/thread/1793983
+http://bbs.babycenter.com/board/baby/babydevelopment/10526/thread/1620911
+http://bbs.babycenter.com/board/baby/babydevelopment/1849/thread/1759190
+http://bbs.babycenter.com/board/baby/babyfeeding/5751?ccRelLink=&url=%2Frefcap%2Fbaby%2Fbabyfeeding%2F752.html&xTopic=bottle&bus=content
+http://bbs.babycenter.com/board/baby/babygrief/1202061/thread/1802497
+http://bbs.babycenter.com/board/baby/babysleep/7887/thread/1778443
+http://bbs.babycenter.com/board/baby/postpartumfitness/1395898
+http://bbs.babycenter.com/board/preconception/fertilityproblems/6069/thread/1706279?i=0&message=19641121
+http://bbs.babycenter.com/board/pregnancy/childbirth/10516/thread/1761945
+http://bbs.babycenter.com/board/pregnancy/pregcomplications/1202049/thread/1832656
+http://bbs.babycenter.com/board/toddler/toddlerbehavior/12402/thread/1743736
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=151792
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=181883
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=283547
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=291014
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=30059
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=303511
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=303759
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=311937
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=323974
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=345791
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=352370
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=357519
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=381265
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=406606
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=51748
+http://bbs.chinadaily.com.cn/forumpost.shtml?toppid=97993
+http://bbs.chinadaily.com.cn/styleswitch.shtml?toppid=226025&s=2
+http://bbs.chinadaily.com.cn/styleswitch.shtml?toppid=406606&s=2
+http://bbs.keyhole.com/boards/showflat/Board-globalvillage-Number-3545-page-0-view-collapsed-sb-5-o-.html
+http://bbs.keyhole.com/boards/showflat/Board-globalvillage-Number-3545-page-2-view-expanded-sb-5-o--vc-1.html
+http://bchs.kearney.net/BTales_198711.htm
+http://bcn.boulder.co.us/business/BCBR/1995/oct/bank2.html
+http://bcn.boulder.co.us/community/scouts/troop70/troop70smfoils.htm
+http://bcrescue.dogsaver.org/fosterandvolunteerapplication.htm
+http://bcresourcedirectory.org/posttreat.htm
+http://bcsia.ksg.harvard.edu/events.cfm?program=CORE&ln=archives&month=200504
+http://bcsia.ksg.harvard.edu/publication.cfm?ctype=media_feature&gma=49&item_id=402&ln=releases
+http://bdhp.moravian.edu/personal_papers/journals/unger/mariarosina.html
+http://beaguide.about.com/applynow.htm
+http://beatl.barnard.columbia.edu/kingsv1/documents/caseXIX.htm
+http://beautifulatrocities.com/archives/2004/08/communists_for_1.html
+http://beautifulatrocities.com/archives/2005/06/in_the_future_e.html
+http://beauty.about.com/
+http://beauty.about.com/b/archives.htm
+http://beauty.about.com/od/june/
+http://beavervision.blogspot.com/
+http://becker.wustl.edu/ARB/Exhibits/mowihsp/articles/practitioner.htm
+http://becker.wustl.edu/ARB/find/gh21/sg1/
+http://beckwith-wiedemann.org/_wsn/page6.html
+http://bedfordstmartins.com/technotes/techtiparchive/ttip102401.htm
+http://beef-mag.com/hughes/beef_worst_best_herds/
+http://beef-mag.com/mag/beef_bovine_enemy/
+http://beelzaboo.deviantart.com/
+http://beeradvocate.com/beer/rate_results/10099/9086/topr/20
+http://beewebhead.blogspot.com/
+http://befreetech.com/free_energy_coverup.htm
+http://befreetech.com/historypoliticstech.htm
+http://beginnersinvest.about.com/cs/investinglessons/l/blles2d.htm
+http://beginnersinvest.about.com/cs/iras/a/aairafees.htm
+http://beginnersinvest.about.com/cs/warrenbuffett/a/aawarrenbio_2.htm
+http://beginnersinvest.about.com/od/dividendsdrips1/a/aa040904_5.htm
+http://behindmyself.blogspot.com/
+http://beijing.lehmanlaw.com/lehman/joinlehman/faqs.htm
+http://beinecke.library.yale.edu/rbms2004/prog_tours.html
+http://beinecke.library.yale.edu/rbms2004/tours.html
+http://beingornothingness.blogs.com/living/2005/03/
+http://beirut.indymedia.org/ar/2004/09/1673.shtml
+http://beirut.indymedia.org/ar/2005/03/2392.shtml
+http://beldar.blogs.com/beldarblog/2004/09/consulting_expe.html
+http://belgrade.usembassy.gov/current/031126.html
+http://belgrade.usembassy.gov/current/040420.html
+http://belgrade.usembassy.gov/press/2004/040716.html
+http://beliefnet.com/story/154/story_15432_1.html
+http://beliefseekingunderstanding.patriotforum.org/archives/000257.html
+http://beliefseekingunderstanding.patriotforum.org/archives/000281.html
+http://beliefseekingunderstanding.patriotforum.org/archives/000480.html
+http://beliefseekingunderstanding.patriotforum.org/archives/000481.html
+http://beliefseekingunderstanding.patriotforum.org/archives/000590.html
+http://beliefseekingunderstanding.patriotforum.org/cgi-bin/mt-comments.cgi?entry_id=409
+http://believermag.com/issues/march_2003/julavits.php
+http://belledejour-uk.blogspot.com/
+http://bellives.typepad.com/
+http://belmontclub.blogspot.com/
+http://belmontclub.blogspot.com/2004/08/last-taboo-news-that-iraqi-police-have.html
+http://belmontclub.blogspot.com/2004/12/haifa-street-execution-of-iraqi.html
+http://belmontclub.blogspot.com/2004/12/shame-and-disgrace-andrew-sullivan-has.html
+http://belmontclub.blogspot.com/2004/12/sunshine-week-your-right-to-know.html
+http://belmontclub.blogspot.com/2004_03_01_belmontclub_archive.html
+http://belmontclub.blogspot.com/2004_05_01_belmontclub_archive.html
+http://belmontclub.blogspot.com/2004_06_01_belmontclub_archive.html
+http://belmontclub.blogspot.com/2004_07_01_belmontclub_archive.html
+http://belmontclub.blogspot.com/2005/01/backward-please-stratfor-reacts-to.html
+http://benfolds.bluni.com/display.php?songid=6
+http://bengal-ng.missouri.edu/~kvanvigj/certain_doubts/index.php?cat=13
+http://bengal-ng.missouri.edu/~kvanvigj/certain_doubts/index.php?cat=14
+http://bengal-ng.missouri.edu/~kvanvigj/certain_doubts/index.php?m=200408
+http://bengal-ng.missouri.edu/~kvanvigj/certain_doubts/index.php?p=344
+http://bensguide.gpo.gov/6-8/government/national/cabinet.html
+http://benson.byu.edu/Publication/BI/Lessons/volume21/Diagnostic.htm
+http://beqiraj.com/kosova/de/allied_force/after_action/index.asp
+http://beradio.com/departments/radio_standing_waves_antennas/
+http://beradio.com/features/radio_streaming_media_west/
+http://berclo.net/page97/97en-china-10.html
+http://berclo.net/page97/97en-impressions.html
+http://berclo.net/pages-div/statement-en.html
+http://berdina.tripod.com/ahtrini.htm
+http://bereavementselfhelp.victoria.bc.ca/index8.html
+http://bereavementselfhelp.victoria.bc.ca/walking2.html
+http://berkshires.citysearch.com/find/directory/berkshires/120/277/page1.html?init_search=1
+http://berlin.typepad.com/Lucas_and_Racism_New.htm
+http://bernie.cncfamily.com/sc/kymus.htm
+http://bernie.cncfamily.com/sc/rpf_kymus.htm
+http://bessie.englab.slcc.edu/pc/2003/10/weve-reached-slow-spot-in-term.html
+http://best.umd.edu/publications/
+http://beta.music.msn.com/album/?app=2&album=10015636
+http://beta.music.msn.com/album/?app=2&album=10546856
+http://beta.music.msn.com/artist/?artist=16079354&partist=16106116
+http://beta.technorati.com/tag/For+the+home
+http://beta2.eurekalert.org/pubnews.php
+http://beth-h.mrks.org/HP_Fiction/ManWhoLived.html
+http://betonmarkets.info/bets/intraday_double/down
+http://betterdigitalphotography.blogspot.com/
+http://betterme.org/cleansweep.html
+http://betweenarock.blogspot.com/
+http://bexar-tx.tamu.edu/HomeHort/F1Column/2003Articles/NOV30.htm
+http://beyond-the-veil.blogdrive.com/
+http://beyondacademe.com/
+http://beyondcorporate.com/mt/archives/2002_11.html
+http://beyondcorporate.com/mt/archives/2004_01.html
+http://beyondmainstream.com/special/relationships_1.php
+http://beyondradio.com/genre/rock.htm
+http://beyondthecommons.blogspot.com/
+http://beyondtherim.meisheid.com/
+http://beyondtherim.meisheid.com/index.php?p=303
+http://bfa.sdsu.edu/emergencyplan/campuslocalstate.htm
+http://bfasweb.syr.edu/comptrol/checklst.htm
+http://bfasweb.syr.edu/env_hlth/wm/usedoil.htm
+http://bg.catalogagemag.com/ar/marketing_renaissance_list_firm/
+http://bgh.kaleidahealth.org/news/news_display.asp?artID=210
+http://bhas.beverlyhills.k12.ca.us/health.html
+http://bias.blogfodder.net/archives/2003_01.html
+http://bias.blogfodder.net/archives/2005_06.html
+http://bible.gospelcom.net/passage/?book_id=34&chapter=8&version=46
+http://bible.gospelcom.net/passage/?book_id=47&chapter=27&version=31
+http://bible.gospelcom.net/passage/?book_id=48&chapter=9&version=31
+http://bible.gospelcom.net/passage/?book_id=66&version=31
+http://bible.gospelcom.net/passage/?book_id=73&chapter=18&version=31
+http://bibleone.net/print_tbs80.html
+http://bibletools.org/index.cfm/fuseaction/Topical.show/RTD/CGG/ID/1260
+http://bibletools.org/index.cfm/fuseaction/Topical.show/RTD/cgg/ID/577
+http://biblia.com/sex/cloning.htm
+http://biblicalholidays.com/
+http://bicycleaustin.info/justice/whynojustice.html
+http://bicycling.about.com/library/weekly/aa030999.htm
+http://biden.senate.gov/newsroom/details.cfm?id=188500&&
+http://biden.senate.gov/newsroom/details.cfm?id=214798
+http://bierce.thefreelibrary.com/A-Horseman-in-the-Sky
+http://big5.china.com.cn/english/2005/Jan/119037.htm
+http://bigblue.safeshopper.com/about.htm?719
+http://bigboardblog.blogspot.com/
+http://bigdarby.org/mCemeteries.htm
+http://bigorbitgallery.org/soundlab/TEXTARCHIVES/thereforeinterview.html
+http://bigpicture.typepad.com/
+http://bigpicture.typepad.com/comments/2004/04/album_sales_sho.html
+http://bigpicture.typepad.com/comments/2004/08/read_it_here_fi_2.html
+http://bigpicture.typepad.com/comments/2004/10/weak_jobs_numbe.html
+http://bigpicture.typepad.com/comments/2004/10/what_is_the_emp.html
+http://bigpicture.typepad.com/comments/2004/12/music_industry_.html
+http://bigpicture.typepad.com/comments/2005/02/the_false_mathe.html
+http://bigpicture.typepad.com/comments/2005/04/new_arguments_a.html
+http://bigpicture.typepad.com/comments/2005/06/uk_slowing.html
+http://bigrace.attheraces.co.uk/card.asp?raceid=75963&res=yes
+http://bigshark.com/site/page.cfm?PageID=68
+http://bigwhiteguy.com/
+http://bike-exchange.com/Antrim.htm
+http://bikebiz.co.uk/infozone/ad_show.php?id=68
+http://biketothebeach.ms150.org/btb/fund_raising/fund-raising_tips.asp
+http://billburnham.blogs.com/burnhamsbeat/2005/03/top_2005_softwa.html
+http://billburnham.blogs.com/burnhamsbeat/2005/05/deal_flow_is_de.html
+http://billburnham.blogs.com/burnhamsbeat/2005/06/for_the_love_of.html
+http://billburnham.blogs.com/burnhamsbeat/open_source/
+http://billfisher.blogspot.com/2005/05/hope-for-improving-relations-with.html
+http://billgatliff.com/~bgat/twiki/bin/view/Main/BillGatliffResume
+http://billiardsetc.com/games.htm
+http://billmon.org/
+http://billstatus.ls.state.ms.us/documents/2005/html/HB/0900-0999/HB0989IN.htm
+http://billtrue.typepad.com/true_life/
+http://billyworld.typepad.com/i_could_have_been_a_conte/2005/01/daddy_whats_sex.html
+http://binarybonsai.com/
+http://binarybonsai.com/archives/2005/01/31/mtv-and-vh1/
+http://bingo.virgingames.com/virgingames/help/Index.do
+http://bio.fsu.edu/~dhoule/AEBsyl.htm
+http://bioagnews.byu.edu/NewsRelease.asp?id=108
+http://bioc.rice.edu/~lpsmith/IF/bookclub/grip/msg00061.html
+http://biodiversityeconomics.org/valuation/topics-600-00.htm
+http://bioinf.nuigalway.ie/RescueNet/manual5.html
+http://biology.plosjournals.org/perlserv/?request=get-document&doi=10.1371/journal.pbio.0030207
+http://biology.uky.edu/520/Lab/lab9/Default.htm
+http://biology.usgs.gov/farp/detailed.htm
+http://biology.usgs.gov/luhna/chap2.html
+http://biology.usgs.gov/pierc/PLLindseyPredator1.htm
+http://biome.utoronto.ca/flc/peer-mentors.htm
+http://biomed.brown.edu/Medicine_Programs/ClinicalElectives/radiation626.html
+http://biomedsci.ucsd.edu/ctfa.asp
+http://biomedx.com/microscopes/rrintro/rr3.html
+http://bioplanassociates.com/asm/Abst19.html
+http://bioresearch.ac.uk/browse/mesh/D020496.html
+http://bioteach.ubc.ca/Biodiversity/plantculture/
+http://biotech.indymedia.org/or/2005/06/4334.shtml
+http://biotech.indymedia.org/or/2005/06/4335.shtml
+http://biotech.law.lsu.edu/blaw/bt/smallpox/whfaq.htm
+http://bip.cnrs-mrs.fr/bip10/icpref1.htm
+http://biphome.spray.se/laszlob/phonebug/isdn.htm
+http://bipolar.about.com/library/blmisc/bl-nimhnewcells.htm
+http://bipolar.about.com/od/hospitalization/a/1_weekendinside.htm
+http://birdhouse.org/blog/archives/2004/07/clinton_on_bush.php
+http://birdingonthe.net/mailinglists/TWET.html
+http://birds.cornell.edu/publications/birdscope/Summer1999/thrushes99133.html
+http://birenheide.com/sra/2004AM/program/singlesession.php3?sessid=W9
+http://birmingham.bizjournals.com/birmingham/stories/2005/06/20/smallb2.html
+http://birthfamily.adoption.com/birth-parents/relating-to-others.html
+http://birthstories.com/stories/5453.htm
+http://bishopw.loni.ucla.edu/AIR5/config.html
+http://bismikaallahuma.org/History/jihad-legislate.htm
+http://bit-of-ivory.com/archives/000124.html
+http://bitchphd.blogspot.com/
+http://bitsko.slc.ut.us/
+http://bitworking.org/news/I_m_sorry__I_can_t_kiss_it_and_make_it_better_
+http://biz-whiz.com/article107.html
+http://biz.gamedaily.com/features.asp?article_id=9798&filter=hollywood&email=
+http://biz.thestar.com.my/news/story.asp?file=/2005/1/23/business/9975892&sec=business
+http://biz.yahoo.com/ap/050419/earns_gm.html?.v=14
+http://biz.yahoo.com/ap/050620/rowing_against_offshore.html?.v=2
+http://biz.yahoo.com/ap/050620/rowing_against_offshore.html?.v=2&printer=1
+http://biz.yahoo.com/brn/041217/14546_1.html
+http://biz.yahoo.com/brn/050608/16036.html?.v=1
+http://biz.yahoo.com/brn/050620/16406.html?.v=1
+http://biz.yahoo.com/bw/041129/295496_1.html
+http://biz.yahoo.com/bw/050124/245293_1.html
+http://biz.yahoo.com/bw/050124/245293_1.html?printer=1
+http://biz.yahoo.com/bw/050511/115147.html?.v=1
+http://biz.yahoo.com/bw/050607/75788.html?.v=1
+http://biz.yahoo.com/bw/050620/205750.html?.v=1
+http://biz.yahoo.com/e/040504/bmhc10-q.html
+http://biz.yahoo.com/e/040514/hort10-q.html
+http://biz.yahoo.com/e/040517/robe.ob10-q.html
+http://biz.yahoo.com/e/040524/saup.ob8-k.html
+http://biz.yahoo.com/e/040527/mss10-k.html
+http://biz.yahoo.com/e/040722/aici.pk10-k.html
+http://biz.yahoo.com/e/040803/gt10-q_a.html
+http://biz.yahoo.com/e/041209/dltr10-q.html
+http://biz.yahoo.com/e/050112/nrt10-k.html
+http://biz.yahoo.com/e/050113/rad8-k.html
+http://biz.yahoo.com/iw/050214/080907.html
+http://biz.yahoo.com/ms/050601/135587.html?.v=1
+http://biz.yahoo.com/mu/story.html
+http://biz.yahoo.com/prnews/050106/cgth029_1.html
+http://biz.yahoo.com/prnews/050119/dew035_1.html
+http://biz.yahoo.com/prnews/050124/ukf014_1.html
+http://biz.yahoo.com/prnews/050404/lam070.html?.v=5
+http://biz.yahoo.com/prnews/050502/nem055.html?.v=3
+http://biz.yahoo.com/prnews/050505/nyth166.html?.v=6
+http://biz.yahoo.com/prnews/050517/cltu009.html?.v=7
+http://biz.yahoo.com/prnews/050607/detu014.html?.v=12
+http://biz.yahoo.com/prnews/050615/sfw016.html?.v=12
+http://biz.yahoo.com/ts/041019/10188612_2.html
+http://biz.yahoo.com/usat/050608/12926193.html?.v=6+
+http://biz.yahoo.com/usat/050619/12942544.html?.v=4
+http://bizchina.chinadaily.com.cn/shp_report_info.shtml?id=22
+http://bizgirl.blogspot.com/
+http://bizrate.lycos.com/buy/products__cid--13070300,mer_id--80796.html
+http://bizrate.lycos.com/marketplace/product_info/details__cid--5103,pid--11493008.html
+http://bja.oupjournals.org/cgi/content/full/86/5/678
+http://bjrm2000.com/
+http://bjsm.bmjjournals.com/cgi/content/full/37/6/498
+http://bjulrich.blogspot.com/
+http://bknebel.blogspot.com/2004/07/god-is-calling-are-you-listening.html
+http://blackcincinnati.blogspot.com/
+http://blackdog.threadbearfiberarts.com/
+http://blackfeminism.org/index.php/2005/05/16/an-interesting-look-at-class-in-america/
+http://blackhistorypages.com/Lynching/
+http://blakeross.com/index.php?p=110
+http://blakeross.com/index.php?p=9
+http://blamebush.typepad.com/blamebush/2004/09/boomstick.html
+http://blather.newdream.net/d/dark.html
+http://blather.newdream.net/f/feel.html
+http://blawgcoop.com/badglacier/
+http://blcwebcafe.org/eolissues.asp
+http://blcwebcafe.org/memorials/duke.asp
+http://blindreaders.info/eyeprobs.html
+http://blink.ucsd.edu/Blink/External/Topics/How_To/0,1260,2842,00.html
+http://blink.ucsd.edu/Blink/External/Topics/Sponsor/0,1362,17135,00.html
+http://blissfulknowledge.com/
+http://blissout.blogspot.com/
+http://blisspix.net/index.php?cat=3
+http://blog.622design.com/archives/2005_01.html
+http://blog.absolutearts.com/
+http://blog.absolutearts.com/blogs/archives/00000113.html
+http://blog.absolutearts.com/blogs/archives/archive-022005.html
+http://blog.ask.com/
+http://blog.au.org/
+http://blog.au.org/2004/09/
+http://blog.barlowfriendz.net/
+http://blog.bearstrong.net/000009.html
+http://blog.bluedistortion.com/
+http://blog.brandexperiencelab.org/
+http://blog.browndemocrats.org/archives/week_2005_04_10.php
+http://blog.bzzagent.com/article.php?story=20040606081353310
+http://blog.bzzagent.com/search.php?mode=search&type=stories&author=4
+http://blog.ccsindia.org/mt/archives/health/
+http://blog.cesa12.k12.wi.us/writing/archives/000013.html
+http://blog.chesshouse.com/
+http://blog.chris.de/
+http://blog.contentious.com/archives/2004/07/16/arranging-ideas-knowledge-management-in-human-terms
+http://blog.contentious.com/archives/2005/06/13/more-on-why-daily-blogging-really-is-usually-a-bad-idea
+http://blog.craiglinton.com/index.php/archives/2003/10/
+http://blog.craiglinton.com/index.php/archives/2004/03/
+http://blog.craiglinton.com/index.php/archives/category/baltic-foreign-study/
+http://blog.cryos.net/
+http://blog.ctcevents.com/comments.php?id=9_0_1_0_C
+http://blog.dachte.org/live/entries/entry1074633118.html
+http://blog.davidjanes.com/
+http://blog.dccc.org/mt/archives/002873.html
+http://blog.druidic.net/
+http://blog.druidic.net/archives/cat_media_matters.php?2
+http://blog.educationforadults.com/?postid=7
+http://blog.extremeplanner.com/
+http://blog.fastcompany.com/archives/2004/09/17/corporate_shrink_question_of_the_week.html
+http://blog.fastcompany.com/archives/2004/12/20/question_of_the_week.html
+http://blog.fastcompany.com/archives/2005/01/10/payday_or_holiday.html
+http://blog.fastcompany.com/archives/2005/06/10/vacation_situation.html
+http://blog.fieldmethods.net/index.php?archive=2002-08&blogid=1
+http://blog.flickr.com/flickrblog/2005/03/yahoo_actually_.html
+http://blog.fropper.com/times/relationship_issues/
+http://blog.generationjava.com/roller/page/bayard/Weblog?catname=%2FOpinion
+http://blog.holtz.com/index.php/roadweary
+http://blog.hywell.org/
+http://blog.ianbicking.org/what-really-makes-rails-work.html
+http://blog.ianhamet.com/index.php/archive/date/2005/04/
+http://blog.insideoutmag.com/outabout/2004/11/
+http://blog.ipipi.com/
+http://blog.ipipi.com/blog/InternationalSMS/_archives/2005/1/27/286803.html
+http://blog.ipipi.com/blog/_archives/2005/1/27/286803.html
+http://blog.ipipi.com/blog/smsphones/_archives/2005/1/27/286803.html
+http://blog.jackvinson.com/
+http://blog.jagaimo.com/archive/2004/07/11.aspx
+http://blog.johnkerry.com/blog/archives/002105.html
+http://blog.johnkerry.com/blog/archives/003478.html
+http://blog.joshuaeichorn.com/archives/2004/01/
+http://blog.kir.com/archives/2004_06.asp
+http://blog.kir.com/archives/2004_07.asp
+http://blog.kir.com/archives/2004_08.asp
+http://blog.kir.com/archives/2005_01.asp
+http://blog.kir.com/archives/cat_legal_martha_stewart.asp
+http://blog.larixconsulting.com/blog/Podcasts
+http://blog.larixconsulting.com/blog/Podcasts/_archives/2005/4
+http://blog.leetsoft.com/articles/2005/04/23/typo-2-0-arrives
+http://blog.lextext.com/blog/_archives/2005/5/9/665209.html
+http://blog.lib.umn.edu/
+http://blog.lib.umn.edu/archives/thil0020/carfreelife/2005_04.html
+http://blog.lib.umn.edu/thil0020/carfreelife/
+http://blog.marmot.cc/
+http://blog.marmot.cc/archives/2005/06/11/the-quirks-of-korean-culture/
+http://blog.mathemagenic.com/2002/10/25.html
+http://blog.mathemagenic.com/2004/06/14.html
+http://blog.megacity.org/archives/001840.php
+http://blog.mises.org/blog/
+http://blog.mises.org/blog/archives/003354.asp
+http://blog.monkeymask.net/
+http://blog.monkeymethods.org/2005/01/bill-gates-strikes-pose-for-teen-beat.html
+http://blog.moxiecinema.com/view.php?id=36
+http://blog.musselmanforamerica.com/archives/cat_day2day.html
+http://blog.myspace.com/index.cfm?fuseaction=blog.ListAll&friendID=7428306&Mytoken=20050604221047
+http://blog.myspace.com/index.cfm?fuseaction=blog.view&friendID=7428306&blogID=28538026&Mytoken=20050613112016
+http://blog.news-record.com/lexblog/archives/2004/12/if_all_of_us_bu_1.html
+http://blog.news-record.com/staff/jrblog/archives/2005/01/my_newspaper_co_2.html
+http://blog.news-record.com/staff/letters/archives/2005/04/patriot_act_int.html
+http://blog.news-record.com/staff/letters/archives/2005/06/drunk_drivers_m.html
+http://blog.news-record.com/staff/letters/archives/2005/06/give_the_gift_o.html
+http://blog.news-record.com/staff/lexblog/archives/2005/01/newsrecordcom_a_1.html
+http://blog.news-record.com/staff/sportsextra/archives/2004/10/
+http://blog.newstandardnews.net/iraqdispatches/archives/000698.html
+http://blog.nuclearmoose.com/archives/2004/03/24/scared-sacred/
+http://blog.nuclearmoose.com/narchives.php
+http://blog.ordinarylife.co.nz/index.php?p=19
+http://blog.outer-court.com/archive/2005-06-21.html
+http://blog.paullyon.net/
+http://blog.pegasusnews.com/2005/06/2020_v_spca_of__1.html
+http://blog.pff.org/archives/communications/
+http://blog.plazes.de/index.php?itemid=38&catid=1
+http://blog.postapocalypse.com/dave/200305archive002.asp
+http://blog.pricescan.com/archives/2005/02/laptops_of_ever.html
+http://blog.pygmygoat.net/index.php?m=200410
+http://blog.qiken.org/archives/2004/03/the_giving_of_n.html
+http://blog.qiken.org/archives/2004/04/26_pounds_and_w.html
+http://blog.radioleft.com/blog/_archives/2005/6/8/919398.html
+http://blog.rajanr.com/?item=will-disaster-stir-sri-lanka-peace
+http://blog.redherring.com/MT/archives/main/000234.html
+http://blog.redherring.com/MT/archives/main/000316.html
+http://blog.redherring.com/MT/archives/main/2004_07.html
+http://blog.revmike.us/
+http://blog.rockthevote.com/
+http://blog.rockthevote.com/2005/06/health-care-crisis-for-young-people.html
+http://blog.seattlepi.nwsource.com/comment/mt-comments.cgi?entry_id=2955
+http://blog.seattletimes.nwsource.com/betweenthelines/
+http://blog.stayfreemagazine.org/2005/05/radio_free_clea.html
+http://blog.stayfreemagazine.org/2005/06/mcdonalds_exper.html
+http://blog.thismagazine.ca/archives/2005/06/france_europe_a.html
+http://blog.tmcnet.com/blog/tom-keating/voip/cablevision-price-drop-analysis.asp
+http://blog.tmcnet.com/welcome-to-america-now-put-your-hands-up-and-face-the-wall.asp
+http://blog.topix.net/archives/000016.html
+http://blog.unquiet.net/index.php?s=stage&submit=ww
+http://blog.wfmu.org/freeform/2005/02/i_know_what_boy.html
+http://blog.wfmu.org/freeform/radio/
+http://blog.windwalking.com/2004/08/parable-of-glass-and-old-w_109341111338206275.asp
+http://blog.wired.com/sterling/
+http://blog.wishingline.com/archives/2004_08.php
+http://blog.x180.net/2005/06/the_future_of_u.html
+http://blog.xrefer.com/
+http://blog.ziffdavis.com/coursey
+http://blog.ziffdavis.com/coursey/
+http://blog.zmag.org/bloggers/?blogger=chomsky
+http://blog.zmag.org/index.php/weblog/entry/a_little_respect_please/
+http://blog.zmag.org/index.php/weblog/entry/on_the_costs_of_being_left/
+http://blog.zmag.org/rocinante/archives/000124.html
+http://blog.zmag.org/rocinante/archives/000851.html
+http://blog.zmag.org/thoughtdreams/archives/2004_07.html
+http://blogborygmi.blogspot.com/2005/05/diversion.html
+http://blogcritics.org/archives/2004/06/20/045219.php
+http://blogcritics.org/archives/2004/08/18/235020.php
+http://blogcritics.org/archives/2004/10/17/140142.php
+http://blogcritics.org/archives/2004/11/24/115137.php
+http://blogcritics.org/archives/2005/01/19/191919.php
+http://blogcritics.org/archives/2005/01/26/105113.php
+http://blogcritics.org/archives/2005/02/01/111722.php
+http://blogcritics.org/archives/2005/02/04/120529.php
+http://blogdayafternoon.com/articles/04/10/19/7557791/
+http://blogger.xs4all.nl/steeph/archive/2005/03/25/32417.aspx
+http://blognomic.blogspot.com/2004_01_18_blognomic_archive.html
+http://blogofpandora.blogspot.com/2004_01_01_blogofpandora_archive.html
+http://blogquebecois.com/
+http://blogranger.typepad.com/blogclub/2004/08/ncaa05it_is_fin.html
+http://blogs.aidsmeds.com/joe/archives/2005/02/when_coming_out.html
+http://blogs.aidsmeds.com/jonathan/archives/2005/06/ch_ch_ch_change.html
+http://blogs.apress.com/archives/000440.html
+http://blogs.apress.com/archives/000519.php?author=gary_cornell
+http://blogs.ascential.com/jonathan/archives/2004/09/
+http://blogs.bootsnall.com/michelle/
+http://blogs.cocoondev.org/stevenn/archives/2003_11.html
+http://blogs.codehaus.org/people/tirsen/archives/001041_ruby_on_rails_and_fastcgi_scaling_using_processes_instead_of_threads.html
+http://blogs.duncanmackenzie.net/duncanma/archive/2004/04/20.aspx
+http://blogs.guardian.co.uk/election2005/
+http://blogs.guardian.co.uk/election2005/archives/2005/04/25/liberal_democrat_press_conference.html
+http://blogs.guardian.co.uk/games/archives/2004/09/20/world_blown_away_by_us_storms.html
+http://blogs.guardian.co.uk/games/archives/2005/02/14/its_a_crime.html
+http://blogs.guardian.co.uk/games/archives/2005/06/15/mobile_gaming_more_popular_with_women_than_men.html
+http://blogs.guardian.co.uk/global/kamal_ahmed.html
+http://blogs.indiewire.com/gregpak/archives/2004_05.html
+http://blogs.indiewire.com/gregpak/archives/cat_robot_stories.html
+http://blogs.indiewire.com/morganspurlock/
+http://blogs.indiewire.com/morganspurlock/archives/000917.html
+http://blogs.ittoolbox.com/supplychain/engineer/archives/000627.asp
+http://blogs.law.harvard.edu/Germany2/
+http://blogs.law.harvard.edu/lydon/2003/11/04
+http://blogs.law.harvard.edu/three/2003/07/21
+http://blogs.linux.ie/yarr/2004/04/
+http://blogs.linux.ie/yarr/category/Banal/
+http://blogs.mit.edu/madmatt/posts/4102.aspx
+http://blogs.msdn.com/372794.aspx
+http://blogs.msdn.com/394834.aspx
+http://blogs.msdn.com/David_Gristwood/archive/2004/06/24/164849.aspx
+http://blogs.msdn.com/LifeOnTitan
+http://blogs.msdn.com/a_pasha/archive/2005/01.aspx
+http://blogs.msdn.com/alanpa/archive/2004/07.aspx
+http://blogs.msdn.com/alexbarn/archive/2005/01.aspx
+http://blogs.msdn.com/andypennell/archive/2004/06/28/168074.aspx
+http://blogs.msdn.com/ashgupta/archive/2004/05/15/132452.aspx
+http://blogs.msdn.com/carmencr/default.aspx
+http://blogs.msdn.com/chris_pratley/archive/2004/02/24/79690.aspx
+http://blogs.msdn.com/chris_pratley/archive/2004/04/29/123619.aspx
+http://blogs.msdn.com/classdesigner/archive/2005/02/25/380023.aspx
+http://blogs.msdn.com/danielfe/archive/2004/07/30/201459.aspx
+http://blogs.msdn.com/ericgu/archive/2005/06/19/430640.aspx
+http://blogs.msdn.com/exchange/
+http://blogs.msdn.com/ie/archive/2004/12/03/274330.aspx
+http://blogs.msdn.com/ie/archive/2005/01/24/359887.aspx
+http://blogs.msdn.com/ie/archive/2005/02/15/373104.aspx
+http://blogs.msdn.com/ie/archive/2005/04/22/410963.aspx
+http://blogs.msdn.com/ie/archive/2005/05/16/417732.aspx
+http://blogs.msdn.com/ie/archive/2005/06/09/427410.aspx
+http://blogs.msdn.com/ie/default.aspx
+http://blogs.msdn.com/jamesnewkirk/archive/2005/01/01.aspx
+http://blogs.msdn.com/jason_anderson/archive/2004/06/04/148252.aspx
+http://blogs.msdn.com/jasonmatusow/archive/2005/03/14/395510.aspx
+http://blogs.msdn.com/jim_glass/
+http://blogs.msdn.com/jim_glass/archive/2005/04/04/405220.aspx
+http://blogs.msdn.com/jim_glass/archive/2005/06/16/429807.aspx
+http://blogs.msdn.com/jim_glass/archive/2005/4/4.aspx
+http://blogs.msdn.com/jim_glass/default.aspx
+http://blogs.msdn.com/jledgard/archive/0001/01/01/73091.aspx
+http://blogs.msdn.com/jledgard/archive/2004/02/14/73091.aspx
+http://blogs.msdn.com/jobsblog/
+http://blogs.msdn.com/jobsblog/archive/2004/08/24/219711.aspx
+http://blogs.msdn.com/jobsblog/archive/2005/06/01/423909.aspx
+http://blogs.msdn.com/jobsblog/default.aspx
+http://blogs.msdn.com/kcwalina/archive/2004/11/03/251722.aspx
+http://blogs.msdn.com/kcwalina/archive/2004/11/18/266099.aspx
+http://blogs.msdn.com/keith_short/
+http://blogs.msdn.com/korbyp/archive/category/2366.aspx
+http://blogs.msdn.com/larryosterman/archive/2005/01/03/345889.aspx
+http://blogs.msdn.com/mfussell/archive/2004/05/13/130969.aspx
+http://blogs.msdn.com/mgrier/archive/2004/07.aspx
+http://blogs.msdn.com/mgrier/archive/2004/7/14.aspx
+http://blogs.msdn.com/michkap/archive/2004/12/27/332618.aspx
+http://blogs.msdn.com/michkap/archive/2005/04/26/412398.aspx
+http://blogs.msdn.com/michkap/archive/2005/05.aspx
+http://blogs.msdn.com/mikehall/archive/2005/01/18/355739.aspx
+http://blogs.msdn.com/mikehall/archive/2005/04/15/408595.aspx
+http://blogs.msdn.com/msdnstudentflash/archive/category/7021.aspx
+http://blogs.msdn.com/msnsearch/
+http://blogs.msdn.com/msnsearch/archive/2005/05/15/417691.aspx
+http://blogs.msdn.com/mssmallbiz/archive/2005/06/06/425681.aspx
+http://blogs.msdn.com/nrjs/atom.aspx
+http://blogs.msdn.com/nrjs/rss.aspx
+http://blogs.msdn.com/oldnewthing/archive/2004/01/26/62992.aspx
+http://blogs.msdn.com/rdonovan/archive/2004/12/19.aspx
+http://blogs.msdn.com/rick_schaut/
+http://blogs.msdn.com/rick_schaut/archive/2004/02/08/69714.aspx
+http://blogs.msdn.com/rickla/archive/2005/03/22/400684.aspx
+http://blogs.msdn.com/ricom/archive/2004/01/08/48796.aspx
+http://blogs.msdn.com/ricom/archive/category/2139.aspx
+http://blogs.msdn.com/robburke/archive/2005/03.aspx
+http://blogs.msdn.com/shaykatc/archive/2005/01/20/357823.aspx
+http://blogs.msdn.com/smguest/archive/2004/05.aspx
+http://blogs.msdn.com/stuart_kent/articles/142330.aspx
+http://blogs.msdn.com/suzcook/archive/2003/07/08/57211.aspx
+http://blogs.msdn.com/theshow/archive/2005/05/03/414356.aspx
+http://blogs.msdn.com/vsdata/archive/2005/05.aspx
+http://blogs.msdn.com/vside/archive/2004/06/22/162567.aspx
+http://blogs.msdn.com/wojtek/archive/2005/05/02/414129.aspx
+http://blogs.officezealot.com/spiller/archive/2004/06/11/476.aspx
+http://blogs.osafoundation.org/mitch/000097.html
+http://blogs.osafoundation.org/mitch/000196.html
+http://blogs.pcworld.com/techlog/archives/000722.html
+http://blogs.pcworld.com/techlog/archives/000740.html
+http://blogs.pumpernickle.net/billy/life_of_billy/
+http://blogs.quantumdiaries.org/33/
+http://blogs.redhat.com/executive/archives/000122.html
+http://blogs.salon.com/0001399/
+http://blogs.salon.com/0001429/
+http://blogs.salon.com/0001444/
+http://blogs.salon.com/0001573/
+http://blogs.salon.com/0001739/2004/02/11.html
+http://blogs.salon.com/0001772/
+http://blogs.salon.com/0001772/stories/2003/09/26/voyageToTheBottomOfTheSea.html
+http://blogs.salon.com/0001883/
+http://blogs.salon.com/0002007/
+http://blogs.salon.com/0002007/2005/01/10.html
+http://blogs.salon.com/0002007/2005/03/30.html
+http://blogs.salon.com/0002007/2005/06/02.html
+http://blogs.salon.com/0002007/categories/businessInnovation/
+http://blogs.salon.com/0002007/categories/politicsEconomics/
+http://blogs.salon.com/0002007/stories/2003/05/02/businessPapersTableOfContents.html
+http://blogs.salon.com/0002296/categories/laLanterneMakeweightOfTheLeft/
+http://blogs.salon.com/0002855/
+http://blogs.salon.com/0002874/
+http://blogs.salon.com/0002874/2005/01/03.html
+http://blogs.salon.com/0002874/2005/06/18.html
+http://blogs.salon.com/0003052/stories/2003/10/18/911AndALackOfPresidentialLeadership.html
+http://blogs.salon.com/0003174/categories/novelBeginnings/
+http://blogs.salon.com/0003364/
+http://blogs.setonhill.edu/KellynMiller/
+http://blogs.setonhill.edu/nmj/cat_literature.html
+http://blogs.sohh.com/media_check/
+http://blogs.starwars.com/darthyoda/12
+http://blogs.sun.com/gregp
+http://blogs.sun.com/hangal
+http://blogs.sun.com/marla/20041217
+http://blogs.sun.com/norbert/20050227
+http://blogs.sun.com/roller/comments/korn/LargePrintWeblog/the_csun_conference_on_technology
+http://blogs.sun.com/roller/comments/korn/Weblog/the_csun_conference_on_technology
+http://blogs.sun.com/roller/page/DaneseCooper/20050321
+http://blogs.sun.com/roller/page/MartinHardee/20041101
+http://blogs.sun.com/roller/page/MortazaviBlog/?anchor=mencius_on_the_common_nature
+http://blogs.sun.com/roller/page/alur/Weblog?catname=%2FDen
+http://blogs.sun.com/roller/page/bmc/20040706
+http://blogs.sun.com/roller/page/dancer/Weblog?catname=%2FGeneral
+http://blogs.sun.com/roller/page/dang
+http://blogs.sun.com/roller/page/danmcd/20050614
+http://blogs.sun.com/roller/page/danmcd/Weblog
+http://blogs.sun.com/roller/page/danmcd/Weblog?catname=%2FIPsec
+http://blogs.sun.com/roller/page/eric_boutilier/20050406
+http://blogs.sun.com/roller/page/hangal/20041227
+http://blogs.sun.com/roller/page/jonathan/20040818
+http://blogs.sun.com/roller/page/jonathan/20040930
+http://blogs.sun.com/roller/page/korn/20041019
+http://blogs.sun.com/roller/page/korn?entry=the_csun_conference_on_technology
+http://blogs.sun.com/roller/page/mph/Weblog?catname=%2FPoker
+http://blogs.sun.com/roller/page/pat/20041013
+http://blogs.sun.com/roller/page/pat/20050210
+http://blogs.sun.com/roller/page/paulhu/20050414
+http://blogs.sun.com/rtenhove/20041029
+http://blogs.thebhg.org/waxingphilosphical/
+http://blogs.vbcity.com/wonkotsane/archive/2005/06/09/2222.aspx
+http://blogs.venturacountystar.com/vcs/realestate/archives/2005/04/condo_market_on.html
+http://blogs.warwick.ac.uk/amcfarland/
+http://blogs.warwick.ac.uk/mmannion/
+http://blogs.writingproject.org/eastside2007/2004/09/23
+http://blogs.zdnet.com/
+http://blogs.zdnet.com/BTL/?m=20050304
+http://blogs.zdnet.com/BTL/?m=20050503
+http://blogs.zdnet.com/BTL/?p=1339
+http://blogs.zdnet.com/BTL/?p=1511
+http://blogs.zdnet.com/BTL/?p=1553
+http://blogs.zdnet.com/BTL/index.php?cat=13
+http://blogs.zdnet.com/BTL/index.php?p=1511
+http://blogs.zdnet.com/BTL/index.php?p=914
+http://blogs.zdnet.com/Berlind/
+http://blogs.zdnet.com/Berlind/?p=30
+http://blogs.zdnet.com/Berlind/?p=46
+http://blogs.zdnet.com/Berlind/index.php?cat=6
+http://blogs.zdnet.com/Gillmor/?m=20050113
+http://blogs.zdnet.com/Gillmor/?p=34
+http://blogs.zdnet.com/Gillmor/index.php?p=34
+http://blogs.zdnet.com/Gillmor/index.php?p=74
+http://blogs.zdnet.com/Ou/?p=46
+http://blogs.zdnet.com/Ou/?p=49
+http://blogs.zdnet.com/Ou/index.php?p=25
+http://blogs.zdnet.com/Ou/index.php?p=43
+http://blogs.zdnet.com/Ou/index.php?p=9
+http://blogs.zdnet.com/open-source/
+http://blogs.zdnet.com/open-source/?m=200506
+http://blogs.zdnet.com/service-oriented/?m=200506
+http://blogshares.com/yabbse/index.php?topic=3903.msg29312
+http://blogsmarketing4me.blogharbor.com/blog/ForAHealthyBody/_archives/2005/4/24/616692.html
+http://blogsmarketing4me.blogharbor.com/blog/_archives/2005/4/24/616692.html
+http://blogspot.mg.co.za/?q=blog&from=105
+http://blogspot.mg.co.za/?q=blog&from=60
+http://blogspot.mg.co.za/?q=node/1002
+http://blogspot.mg.co.za/?q=node/1041
+http://blogspot.mg.co.za/?q=node/1071
+http://blogspot.mg.co.za/?q=node/339
+http://blogspot.mg.co.za/?q=node/76
+http://blondejustice.blogspot.com/2005/05/praise-lord.html
+http://blonz.com/olestra.html
+http://bloodandtreasure.typepad.com/blood_treasure/
+http://bloodbankers.typepad.com/submerging_markets/2003/11/first_world_cri.html
+http://bloodbanksdelhi.com/content/NationalBloodPolicy2002.htm
+http://bloodbath.biz/
+http://bloombergmarketing.blogs.com/
+http://bloxword.ca/dtoh.htm
+http://bls.gov/oco/ocos016.htm
+http://bluebirdescape.com/archives/2003/02/index.php
+http://bluebook.state.or.us/state/constitution/constitution11-4.htm
+http://bluebuddies.com/help/smurf_names_and_list_of_the_smurfs.htm
+http://blueskyfilters.com/year-end-sale.html
+http://bmj.bmjjournals.com/archive/7070nd6.htm
+http://bmj.bmjjournals.com/archive/7122/7122ed2.htm
+http://bmj.bmjjournals.com/cgi/content/abridged/319/7220/1289
+http://bmj.bmjjournals.com/cgi/content/full/309/6964/1259
+http://bmj.bmjjournals.com/cgi/content/full/316/7141/1337
+http://bmj.bmjjournals.com/cgi/content/full/317/7171/1496
+http://bmj.bmjjournals.com/cgi/content/full/318/7175/4
+http://bmj.bmjjournals.com/cgi/content/full/320/7244/1269?view=full&pmid=10797045
+http://bmj.bmjjournals.com/cgi/content/full/322/7294/1086/a
+http://bmj.bmjjournals.com/cgi/content/full/323/7307/263
+http://bmj.bmjjournals.com/cgi/content/full/328/7455/1533
+http://bmj.bmjjournals.com/cgi/content/full/329/7462/394
+http://bmj.bmjjournals.com/content/vol320/issue7234/
+http://bmj.bmjjournals.com/content/vol324/issue7331/
+http://bmj.bmjjournals.com/hitparade/20040807.shtml
+http://bmrc.berkeley.edu/people/chaffee/fips/fips.html
+http://bms.brown.edu/admissions/routes.html
+http://bn.tafe.qld.gov.au/courses_and_careers/student_projects/crestpoint/
+http://bnoopy.typepad.com/bnoopy/
+http://bnoopy.typepad.com/bnoopy/2004/09/persistence_pay_1.html
+http://board.iexbeta.com/lofiversion/index.php/t48400.html
+http://board.rpgamer.com/cgi-bin/ikonboard.cgi?act=ST;f=4;t=9984
+http://board.uscho.com/archive/index.php/t-40275.html
+http://boardgames.about.com/cs/poker/a/texas_rules.htm
+http://boardingschools.hobsons.com/pupilzone.jsp?id=pupilzone_getting_ready
+http://boards.avalonhill.com/archive/index.php/t-4966.html
+http://boards.avalonhill.com/showthread.php?mode=hybrid&t=4966
+http://boards.avalonhill.com/showthread.php?t=4966&page=2&pp=10
+http://boards.charlierose.com/board/pst.asp?m=r&ti=11018&fi=34
+http://boards.charlierose.com/board/pst.asp?m=tq&ti=11018&fi=34
+http://boards.diynetwork.com/eve/ubb.x/a/tpc/f/7141077022/m/9871087022/r/4611028022
+http://boards.harrypotter.warnerbros.com/web/thread.jspa?threadID=2000014555&tstart=0
+http://boards.harrypotter.warnerbros.com/web/thread.jspa?threadID=2000304971&start=90&tstart=0
+http://boards.hbo.com/thread.jspa?threadID=600001207&messageID=600243073
+http://boards.hgtv.com/eve/ubb.x/a/tpc/f/4714002552/m/5291071202
+http://boards.hgtv.com/eve/ubb.x/a/tpc/f/4714002552/m/6341005402/inc/1
+http://boards.hgtv.com/eve/ubb.x/a/tpc/f/8504070782/m/6561030491
+http://boards.historychannel.com/thread.jspa?threadID=100033295&messageID=300411425&start=45
+http://boards.historychannel.com/thread.jspa?threadID=100033295&start=45&tstart=0
+http://boards.historychannel.com/thread.jspa?threadID=300024993&tstart=0&start=-1
+http://boards.immigrationportal.com/showthread.php?t=149573&goto=nextnewest
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@1.HGhsb9P0JIG%5E0@.ef199a3/216
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@107.fctdcBJJbji%5E0@.ef060d2/2744
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@107.fctdcBJJbji%5E0@.ef060d2/2746
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@141.bpHAbHVhHa4%5E0@.ef06889/165
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@141.bpHAbHVhHa4%5E0@.ef06889/170
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@17.bp7UbKbrHcB%5E0@.ef06883/686
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@170.sia4cICpeM3%5E0@.ef068bd/85
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@177.w3p2c18VdmF%5E0@.ef06115/218
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@196.pGeFcEyqdYE%5E0@.ef06115/218
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@197.ZxVxcqIEeUW%5E0@.ef06877/32
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@208.tqUMbVxcHBp%5E0@.ef06889/167
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@208.tqUMbVxcHBp%5E0@.ef06889/170
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@216.G9icbzSVIgf%5E0@.ef06881/256
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@229.59vlbPDfIxC%5E0@.ef13f13/119
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@229.59vlbPDfIxC%5E0@.ef13f13/70
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@229.59vlbPDfIxC%5E0@.ef13f13/73
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@229.59vlbPDfIxC%5E0@.ef13f13/82
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@244.tHS2bbt7JxT%5E0@.ef26f6a/102
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@244.tHS2bbt7JxT%5E0@.ef26f6a/104
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@86.Ac0ncUvVb7H%5E0@.ef068ab/955
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@89.XHWnbx26Jh3%5E0@.ef06889/167
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@89.XHWnbx26Jh3%5E0@.ef06889/172
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@96.CFWscy9Ld8I%5E0@.ef1180c/294
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?14@99.Ri8scHHgeFg%5E0@.ef199a3/943
+http://boards.lp.findlaw.com/cgi-bin/WebX.fcgi?7@213.g7b4br4EK3y%5E0@.ef150d8/4524
+http://boards.nbc.com/bb/showflat.php?Cat=&Number=118755&page=&view=&sb=5&o=&fpart=6&vc=1
+http://boards.slackercentral.com/archive/index.php/f-1-p-18.html
+http://boards.youthnoise.com/eve/ubb.x/a/tpc/f/21510584663/m/88510014763/p/3
+http://boards.youthnoise.com/eve/ubb.x/a/tpc/f/773295355/m/85810215763/inc/-1
+http://boards1.wizards.com/archive/index.php/t-124017.html
+http://boards1.wizards.com/archive/index.php/t-214010.html
+http://bobdylanbiography.8k.com/bob_dylan_albums/time_out_of_mind.htm
+http://bobhopeinsurance.com/pages/b&bapplication.html
+http://bobwhitson.typepad.com/howlings/2004/10/doors_opened_fo.html
+http://bobwyman.pubsub.com/main/2004/10/
+http://bodhisattva.no-ip.org/?m=200505
+http://bodyandsoul.typepad.com/
+http://bodyelectric.blogspot.com/
+http://boe.mars.k12.wv.us/parkview/speechsound.htm
+http://boe.putn.k12.wv.us/boe/dailym/dm90423.html
+http://boffers.brunst.dk/aromatherapy-product.html
+http://boffers.brunst.dk/bank-account.html
+http://boffers.brunst.dk/computer-technology-school.html
+http://boffers.brunst.dk/discount-camera-store.html
+http://boffers.brunst.dk/earn-college-degree-online.html
+http://boffers.brunst.dk/georgia-workers-comp.html
+http://boffers.brunst.dk/guaranteed-personal-loan-bad-credit.html
+http://boffers.brunst.dk/healthy-weight-loss.html
+http://boffers.brunst.dk/maine-mortgage-rate.html
+http://boffers.brunst.dk/mortage-refinance.html
+http://boffers.brunst.dk/mortgage-companies.html
+http://boffers.brunst.dk/novotel-north-york.html
+http://boffers.brunst.dk/office-space-rental.html
+http://boffers.brunst.dk/the-gaming-club.html
+http://boffers.brunst.dk/used-chevy-van.html
+http://bogglesworld.com/
+http://boika.lockergnome.net/blog/_archives/2004/10
+http://boingboing.net/
+http://boingboing.net/2004_02_01_archive.html
+http://boingboing.net/suggest.html
+http://bojack.org/
+http://bojack.org/cgi-bin/mt-comments.cgi?entry_id=266
+http://bojack.org/mt-arc/002061.html
+http://bojack.org/mt-arc/cat_science.html
+http://bokardo.com/archives/the-difficulty-with-articulating-design/
+http://bokcenter.fas.harvard.edu/docs/TFTrace.html
+http://bolsinger.blogs.com/weblog/
+http://bolsinger.blogs.com/weblog/2005/06/worship_waves_a.html
+http://bolsinger.blogs.com/weblog/bloggers_and_books/
+http://bolsinger.blogs.com/weblog/holy_week/
+http://bonine.blogs.com/roger/
+http://bonoboathome.blogspot.com/
+http://bookangst.blogspot.com/2005/01/majority-list-agents-join-midlist-fray.html
+http://bookblog.net/bbarchives/2002_07.html
+http://bookblog.net/bbarchives/2003_04.html
+http://bookcrossing.com/journal/1112088
+http://books.bankhacker.com/Michael+Silverstein/
+http://books.confucius007.com/
+http://books.dreambook.com/jittichai/main.html
+http://books.global-investor.com/books/14797.htm?ginPtrCode=00000&identifier=
+http://books.global-investor.com/books/16945.htm?ginPtrCode=00000&identifier=
+http://books.global-investor.com/books/5427.htm?ginPtrCode=00000&identifier=
+http://books.global-investor.com/pages/gurus.htm?Mode=Rules&PerIndex=2891&ginPtrCode=00000&identifier=
+http://books.guardian.co.uk/bookerprize2004/story/0,14182,1322895,00.html
+http://books.guardian.co.uk/departments/artsandentertainment/story/0,6000,1267907,00.html
+http://books.guardian.co.uk/departments/biography/story/0,6000,718044,00.html
+http://books.guardian.co.uk/departments/classics/story/0,6000,1445404,00.html
+http://books.guardian.co.uk/departments/generalfiction/story/0,6000,1509033,00.html
+http://books.guardian.co.uk/departments/generalfiction/story/0,6000,563868,00.html
+http://books.guardian.co.uk/departments/history/story/0,6000,1177061,00.html
+http://books.guardian.co.uk/departments/politicsphilosophyandsociety/story/0,6000,1333956,00.html
+http://books.guardian.co.uk/departments/politicsphilosophyandsociety/story/0,6000,463961,00.html
+http://books.guardian.co.uk/departments/scienceandnature/story/0,6000,1498612,00.html
+http://books.guardian.co.uk/digestedread/story/0,6550,1377227,00.html
+http://books.guardian.co.uk/extracts/story/0,6761,1483626,00.html
+http://books.guardian.co.uk/extracts/story/0,6761,507694,00.html
+http://books.guardian.co.uk/extracts/story/0,6761,783558,00.html
+http://books.guardian.co.uk/firstchapters/story/0,6761,689991,00.html
+http://books.guardian.co.uk/harrypotter/story/0,10761,1012394,00.html
+http://books.guardian.co.uk/originalfiction/0,13773,1007506,00.html
+http://books.guardian.co.uk/originalfiction/story/0,13773,1513985,00.html
+http://books.guardian.co.uk/poetryworkshop/story/0,15167,1441019,00.html
+http://books.guardian.co.uk/review/story/0,12084,1134516,00.html
+http://books.guardian.co.uk/review/story/0,12084,1141955,00.html
+http://books.guardian.co.uk/review/story/0,12084,1300982,00.html
+http://books.guardian.co.uk/review/story/0,12084,1384787,00.html
+http://books.guardian.co.uk/review/story/0,12084,1410210,00.html
+http://books.guardian.co.uk/review/story/0,12084,1449533,00.html
+http://books.guardian.co.uk/review/story/0,12084,947453,00.html
+http://books.guardian.co.uk/reviews/biography/0,6121,1248087,00.html
+http://books.guardian.co.uk/reviews/biography/0,6121,1489451,00.html
+http://books.guardian.co.uk/reviews/generalfiction/0,6121,713289,00.html
+http://books.guardian.co.uk/reviews/history/0,6121,1301719,00.html
+http://books.guardian.co.uk/reviews/poetry/0,6121,1385515,00.html
+http://books.guardian.co.uk/shoptalk/page/0,15697,1417776,00.html
+http://books.guardian.co.uk/top10s/top10/0,6109,99685,00.html
+http://books.kelkoo.co.uk/b/a/cpc_5101_ps_3289741_gs_16273358.html
+http://books.kelkoo.co.uk/b/a/cpc_5101_ps_5342519_gs_16271796.html
+http://books.kelkoo.co.uk/b/a/cpc_5101_ps_5473266_gs_16271817.html
+http://books.monstersandcritics.com/features/article_254.php/War,_Politics_and_Oil...or_Lack_of_It!
+http://books.nap.edu/books/0309048877/html/757.html
+http://books.nap.edu/books/0309052270/html/139.html
+http://books.nap.edu/books/0309070953/html/111.html
+http://books.nap.edu/books/0309070953/html/86.html
+http://books.nap.edu/books/0309075742/html/9.html
+http://books.nap.edu/books/0309087244/html/64.html
+http://books.nap.edu/books/NI000154/html/17.html
+http://books.nap.edu/catalog/5774.html
+http://books.nap.edu/catalog/6407.html
+http://books.nap.edu/html/IT_counterterror/ch2.html
+http://books.nap.edu/html/broadband/ch1.html
+http://books.nap.edu/openbook/0309044286/html/54.html
+http://books.nap.edu/openbook/0309075742/html/9.html
+http://booksmith.blogspot.com/2005/02/march-events-at-booksmith-author.html
+http://bookstore.gpo.gov/eresponse.html
+http://bookstore.gpo.gov/newpubs/042805.html
+http://bookstore.yorku.ca/index.cfm?index=tfstextbooksearch&cfid=592453&cftoken=39191114
+http://bookswelike.net/isbn/0807047260
+http://boortz.com/nuze/200411/11102004.html
+http://bopl.samharris.us/
+http://bopuc.levendis.com/weblog/
+http://bor.musselmanforamerica.com/mt/archives/004005.html
+http://boredumb.com/wordpress/index.php?cat=1
+http://boredumb.com/wordpress/index.php?cat=6
+http://boredumb.com/wordpress/index.php?m=200412
+http://borgenproject.org/
+http://borntoexplore.org/addbooks.htm
+http://borzoiblog.com/
+http://boston.bizjournals.com/boston/stories/2004/04/05/newscolumn1.html
+http://boston.bizjournals.com/boston/stories/2005/01/24/newscolumn4.html
+http://boston.bizjournals.com/boston/stories/2005/06/27/daily46.html
+http://boston.bizjournals.com/boston/stories/2005/06/27/daily46.html?jst=t3_ln_hl
+http://boston.blacksoftware.com/
+http://boston.k12.ma.us/bps/budget04/physical.asp
+http://bostonbrat.net/brady/arcsept04.html
+http://bostonclub.mit.edu/home/news/president/200105.html
+http://bostonian71.blogspot.com/
+http://bostonian71.blogspot.com/2004_06_01_bostonian71_archive.html
+http://bostonreview.mit.edu/BR20.2/Roemer.html
+http://bostonreview.mit.edu/BR27.1/stone.html
+http://bostonteachnet.org/chaffee/chaffee.htm
+http://bostonworks.boston.com/globe/articles/032303_overti.html
+http://bostonworks.boston.com/globe/articles/041804_work.html
+http://bostonworks.boston.com/globe/articles/072003_perks.html
+http://bostonworks.boston.com/globe/articles/100304_stress.html
+http://bostonworks.boston.com/globe/articles/102603_coach.html
+http://bostonworks.boston.com/globe/balance/archives/052205.shtml
+http://bostonworks.boston.com/globe/job_doc/archives/031603.shtml
+http://bostonworks.boston.com/globe/job_doc/archives/041705.shtml
+http://bostonworks.boston.com/globe/job_doc/archives/062004.shtml
+http://bostonworks.boston.com/globe/job_doc/archives/091204.shtml
+http://bostonworks.boston.com/globe/job_doc/archives/091502.shtml
+http://bostonworks.boston.com/globe/job_doc/archives/102702.shtml
+http://bostonworks.boston.com/globe/job_doc/archives/111702.shtml
+http://bostonworks.boston.com/globe/job_doc/archives/112402.shtml
+http://bostonworks.boston.com/globe/out_field/archive/011605.shtml
+http://bostonworks.boston.com/globe/out_field/archive/011804.shtml
+http://bostonworks.boston.com/globe/out_field/archive/013005.shtml
+http://bostonworks.boston.com/globe/out_field/archive/030203.shtml
+http://bostonworks.boston.com/globe/out_field/archive/051505.shtml
+http://bostonworks.boston.com/globe/out_field/archive/083103.shtml
+http://bostonworks.boston.com/globe/out_field/archive/103104.shtml
+http://bostonworks.boston.com/globe/out_field/archive/120703.shtml
+http://bostonworks.boston.com/globe/out_field/archive/122604.shtml
+http://bostonworks.boston.com/globe/view_cube/archive/011903.shtml
+http://bostonworks.boston.com/globe/view_cube/archive/092103.shtml
+http://bostonworks.boston.com/hr/hrexpert/articles/052505.shtml
+http://botanicalgarden.berkeley.edu/program/4prog_apr.shtml
+http://boundarylines.typepad.com/
+http://boykiller.pitas.com/
+http://boysbriefs.blogspot.com/
+http://boysbriefs.blogspot.com/2003_10_01_boysbriefs_archive.html
+http://boysbriefs.blogspot.com/2004_07_01_boysbriefs_archive.html
+http://bphc.hrsa.gov/quality/Cultural.htm
+http://br.tradeholding.com/default.cgi/action/viewproducts/productid/5908/
+http://bradbury.sewanee.edu/wordpress/index.php/2005/05/the-most-influential-managers/
+http://bradyates.com/mt/archives/2003/08/attached_and_se.html
+http://brain.hastypastry.net/forums/archive/index.php/t-11660.html
+http://brain.hastypastry.net/forums/archive/index.php/t-27861.html
+http://brain.hastypastry.net/forums/archive/index.php/t-744.html
+http://brain.hastypastry.net/forums/showthread.php?goto=newpost&t=25253
+http://brain.oupjournals.org/cgi/content/full/123/9/1926
+http://brain.oupjournals.org/cgi/content/full/124/2/389
+http://brain.oupjournals.org/cgi/content/full/126/6/1319
+http://brain.oupjournals.org/cgi/content/full/127/2/321
+http://brainmind.com/Case6.html
+http://brainoff.com/statement.html
+http://brainstorm-services.com/wcu/introductions.html
+http://branches.embroiderersguild.com/regions/region_display.php3?r_id=SCOTTI
+http://brand.blogs.com/mantra/
+http://brandautopsy.typepad.com/brandautopsy/2005/01/more_bad_bzz_fo.html
+http://bratislava.usembassy.gov/cis/cis103en.html
+http://breaking.tcm.ie/2005/01/12/story184423.html
+http://breaking.tcm.ie/2005/01/27/story186593.html
+http://breaking.tcm.ie/story.asp?j=13856944&p=y3857xy8&n=13857029&x=
+http://breakingin.net/script_market_news3.htm
+http://breakingnews.nypost.com/dynamic/fronts/BUSINESS?SITE=NYNYP&SECTION=BUSINESS
+http://breakingnewsblog.com/americascup/archives/category/emirates_team_new_zealand/
+http://breakingnewsblog.com/americascup/index.php?paged=2
+http://breakingnewsblog.com/michaeljackson/archives/michael_jackson_painted_as_a_sexual_predator/
+http://breastcancer.about.com/od/armslegs/a/rehab01_2.htm
+http://breastcancer.about.com/od/prevention/a/prev01.htm
+http://breastfeed.com/resources/articles/bedtime.htm
+http://brechner.org/news_editorial_attack.asp
+http://breedart.org/breedmusic/
+http://brettboard.dk/games/rules/anno4.htm
+http://briancotts.tripod.com/cottsweb/thirty/1999/thirty08.html
+http://briandeer.com/glasgow-labour-2.htm
+http://brickfields.org.uk/index.php/victorian/transport
+http://bricksonthebrain.blogspot.com/
+http://bricksonthebrain.blogspot.com/2005_05_01_bricksonthebrain_archive.html
+http://bridegroompress.com/catalog/product_info.php?cPath=24&products_id=55
+http://bridgeheadconsulting.com/arts.php?html_pricing
+http://brightmindsnet.com/etypes/personal_essay.php
+http://brillbuilding.blogspot.com/
+http://brindedcow.umd.edu/236/anselm.html
+http://brindedcow.umd.edu/236/cliffordandjames.html
+http://bristol.indymedia.org/
+http://britishspin.blogspot.com/2005_03_27_britishspin_archive.html
+http://broadwayworld.com/viewcolumn.cfm?colid=2037
+http://broken.typepad.com/b/2004/09/soda_machine_de.html
+http://brokenclay.org/journal/wp_archives/2003/08/
+http://brookings.nap.edu/books/0815752679/html/R1.html
+http://brookings.nap.edu/books/0815764359/html/12.html
+http://brookings.nap.edu/books/0815783434/html/152.html
+http://brookings.nap.edu/books/0815783434/html/153.html
+http://brookings.nap.edu/books/0815790465/html/80.html
+http://brookmans.com/news/december03/newsreview2003.shtml
+http://brotherhood-of-catfishermen.com/catfish/messages/66/849832.html?1104394888
+http://browncoats.serenitymovie.com/serenity/?fuseaction=home.privacy
+http://browncoats.serenitymovie.com/serenity/?fuseaction=main.privacy
+http://browndailysqueal.com/
+http://brownharrisstevens.com/guide7e.aspx
+http://brownieblade.blogspot.com/
+http://brownstoner.com/brownstoner/archives/2005/06/30year_mortgage.html
+http://brownvboard.org/brwnqurt/05-1/05-1c.htm
+http://brownvboard.org/research/handbook/prelude/prelude.htm
+http://browse.barnesandnoble.com/browse/nav.asp?visgrp=fiction&N=217361+2050+2147478750&Ne=217361
+http://browse.barnesandnoble.com/browse/nav.asp?visgrp=nonfiction&N=217361+2050+2147478750&Ne=217361
+http://bruceamiller.us/intromix.html
+http://brunei.usembassy.gov/wwwhconsular.html
+http://brussels.metropole-hotel-brussels.tobook.com/Belgium/Hotels/Metropole-Hotel-Brussels?citypname=Brussels
+http://brusselsblog.blogspot.com/2004_02_01_brusselsblog_archive.html
+http://bsolympicgym.com/
+http://btl.blogspot.com/
+http://btobsearch.barnesandnoble.com/booksearch/isbnInquiry.asp?btob=Y&endeca=1&isbn=0195146018&itm=4
+http://btobsearch.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=0375409637&sourceid=00395996645644787198&btob=Y
+http://btobsearch.barnesandnoble.com/booksearch/isbnInquiry.asp?sourceid=00395996645644787198&btob=Y&endeca=1&isbn=0060099062&itm=1
+http://btobsearch.barnesandnoble.com/booksearch/isbnInquiry.asp?sourceid=00395996645644787198&btob=Y&endeca=1&isbn=0786262060&itm=1
+http://btobsearch.barnesandnoble.com/booksearch/isbninquiry.asp?btob=Y&pwb=1&ean=9780683301342
+http://btobsearch.barnesandnoble.com/booksearch/isbninquiry.asp?sourceid=00395996645644787198&btob=Y&isbn=0060959584
+http://btsuck.org/?article=218
+http://bubl.ac.uk/link/e/economicdevelopment.htm
+http://bubl.ac.uk/link/h/heart.htm
+http://bubl.ac.uk/link/s/scottisharchaeology.htm
+http://bubl.ac.uk/link/types/images.htm
+http://bubl.ac.uk/link/types/movingimages.htm
+http://bubl.ac.uk/org/tacit/tac/tac46/sadbuttr.htm
+http://bucarotechelp.com/articles/97082930.asp
+http://buckeyeinstitute.org/Articles/2000_11_21%20Owsiany.htm
+http://bucknellbison.collegesports.com/genrel/101001aaa.html
+http://bucknellbison.collegesports.com/sports/w-baskbl/spec-rel/030205aaa.html
+http://buddhism.religion.designerz.com/buddhism-centers-and-groups-by-region-australia.php
+http://budgetperformance.com/articles/caprice_cai/
+http://buffaloreport.com/020930rose.html
+http://buglet.rcbowen.com/dickens/text/TaleOfAPatent.txt
+http://bugs.php.net/bug.php?id=3763
+http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=4533820
+http://bugsys.blogspot.com/
+http://builder.com.com/5100-6371-1058859.html
+http://builder.com.com/5100-6371_14-5194724-1-1.html
+http://buildernewsmag.com/viewnews.pl?id=185
+http://building-sa.com/
+http://bukkystars.20fr.com/custom.html
+http://bulktransporter.com/mag/transportation_na_customs_challenges/
+http://bulletin.cern.ch/eng/articles.php?bullno=16/2005&base=art&artno=BUL-NA-2005-050
+http://bulletin.cern.ch/eng/articles.php?bullno=16/2005&base=art&artno=BUL-NA-2005-051
+http://bulletin.cern.ch/eng/articles.php?bullno=17/2005&base=art&artno=BUL-NA-2005-047
+http://bulletin.cern.ch/eng/articles.php?bullno=17/2005&base=art&artno=BUL-NA-2005-051
+http://bulletin.cern.ch/eng/articles.php?bullno=28/2001&base=art&artno=BUL-NA-2001-033
+http://bulletin.cern.ch/eng/articles.php?bullno=34/2003&base=art&artno=BUL-NA-2003-099
+http://bunsen.tv/2003_11_01_bunsen_archive.html
+http://burknet.com/robsfantasy/section16.html
+http://bursar.colorado.edu/faq/3rdpartyfaqstd.html
+http://bushlies.com/
+http://bushvchoice.blogs.com/
+http://bushvchoice.blogs.com/bvc/2004/11/
+http://bushvchoice.blogs.com/bvc/2005/06/no_more_emergen.html
+http://business-times.asia1.com.sg/sub/supplement/story/0,4574,152393,00.html
+http://business.baylor.edu/Tom_Kelly/2307ch11.htm
+http://business.cbr.nl/index.asp?pageid=17
+http://business.cisco.com/prod/tree.taf%3Fasset_id=89988&ID=44744&ListID=44694&public_view=true&kbns=1.html
+http://business.cisco.com/prod/tree.taf%3Fasset_id=89988&ID=44745&ListID=44694&public_view=true&kbns=1.html
+http://business.cisco.com/prod/tree.taf%3Fasset_id=89988&ID=44749&ListID=44694&public_view=true&kbns=1.html
+http://business.listings.ebay.co.uk/Power-Tools_W0QQfclZ1QQloglZ0QQlotrZ4QQsacatZ3247QQsargnZsalicQQsocmdZListingItemList
+http://business.listings.ebay.co.uk/Power-Tools_W0QQfclZ3QQfcoZ1QQloglZ0QQlotrZ4QQsacatZ3247QQsargnZsalicQQsocmdZListingItemList
+http://business.listings.ebay.co.uk/Power-Tools_W0QQfsooZ1QQfsopZ1QQlopgZ8QQsacatZ3247QQsocmdZListingItemList
+http://business.mainetoday.com/doghousekitchen/000703.shtml
+http://business.mainetoday.com/doghousekitchen/2005_01.shtml
+http://business.mainetoday.com/financialsense/001783.shtml
+http://business.mainetoday.com/virtuallyorganized/2005_01.shtml
+http://business.ntl.com/static/terms_of_use.php
+http://business.queensu.ca/execdev/strategy.php
+http://business.scotsman.com/finance.cfm?id=669012005
+http://business.scotsman.com/index.cfm?id=669012005
+http://business.scotsman.com/topics.cfm?tid=369&id=669012005
+http://business.scotsman.com/topics.cfm?tid=483&id=651802005
+http://business.telegraph.co.uk/money/main.jhtml?xml=/money/2005/06/09/cneuro09.xml&menuId=242&sSheet=/money/2005/06/09/ixcity.html
+http://business.thewest.com.au/classifieds/classifieds-browse.jsp?category=retirement-housing
+http://business.timesofmalta.com/article.php?id=3098
+http://business.timesonline.co.uk/article/0,,13869-1612192,00.html
+http://business.timesonline.co.uk/article/0,,17709-1340879,00.html
+http://business.timesonline.co.uk/article/0,,8210-1673145,00.html
+http://business.timesonline.co.uk/article/0,,8213-890003,00.html
+http://business.timesonline.co.uk/article/0,,9063-1673145,00.html
+http://business.uk.freeads.net/Beech_effect_computer_station,_good-62340.htm
+http://business.vsnl.com/relations/programs.htm
+http://businessknowledgesource.com/
+http://businessknowledgesource.com/blog/creating_customer_awareness_by_asking_the_right_questions_000790.html
+http://businessknowledgesource.com/marketing/marketing_yourself_for_success_proven_personal_branding_strategies_012997.html
+http://businessnetwork.smh.com.au/articles/2005/02/24/1746.html
+http://businessnetwork.smh.com.au/articles/2005/02/24/1756.html
+http://businessweek.com/magazine/content/03_34/b3846039.htm
+http://businessweek.com/magazine/content/04_07/b3870050.htm
+http://businessweek.com/magazine/content/05_07/b3920001_mz001.htm
+http://busycooks.about.com/library/lessons/blcookfor2b.htm
+http://buyit.mercurynews.com/findit/search/browse.jsp?catId=krd_mercurynews62c39&sort=modifieddate&sortType=asc&howMany=10&start=21
+http://buyit.myrtlebeachonline.com/findit/search/browse.jsp?catId=krd_myrtlebeachsunnews3280e
+http://buyit.myrtlebeachonline.com/findit/search/browse.jsp?catId=krd_myrtlebeachsunnews3c962
+http://buysellradio.com/about.html
+http://buzz.ifas.ufl.edu/
+http://buzzmagazine.collegepublisher.com/news/2005/02/03/SilverScreen/Review.Alone.In.The.Dark-851766.shtml
+http://buzzmodo.typepad.com/buzzmodo/2005/01/thinking_about_.html
+http://bwt.jeffotto.com/alternative.htm
+http://byo.com/feature/460.html
+http://byrd.senate.gov/byrd_speeches/byrd_speeches_2003may/byrd_speeches_2003may_list/byrd_speeches_2003may_list_2.html
+http://byu.ksl.com/index.php?sid=128109&nid=17
+http://byunews.byu.edu/
+http://byunews.byu.edu/archive04-Jul-barebranches.aspx
+http://bzp.blogspot.com/
+http://c-command.com/dropdmg/manual
+http://c.ittoolbox.com/nav/t.asp?t=422&p=424&h1=422&h2=424
+http://c.ittoolbox.com/nav/t.asp?t=424&p=424&h1=424
+http://c.webring.com/hub?ring=churchofscotland
+http://c1blog.blogspot.com/2005_02_01_c1blog_archive.html
+http://c2.com/cgi/wiki?ArtificialIntelligenceAndLinguistics
+http://c2.com/cgi/wiki?BigDesignUpFront
+http://c2.com/cgi/wiki?DeepClassHierarchies
+http://c2.com/cgi/wiki?DotNetAsDistributedObjectSystem
+http://c2.com/cgi/wiki?ExtremeHour
+http://c2.com/cgi/wiki?ExtremeProgrammingMayScaleUp
+http://c2.com/cgi/wiki?FourLevelsOfCompetence
+http://c2.com/cgi/wiki?InteractiveFictionMudDiscussion
+http://c2.com/cgi/wiki?JavaIoClassesAreImpossibleToUnderstand
+http://c2.com/cgi/wiki?RationalRose
+http://c2.com/cgi/wiki?RealStoryAboutDeveloperTurnedManager
+http://c2.com/cgi/wiki?ReturnNewObjectsFromAccessorMethods
+http://c2.com/cgi/wiki?SixThinkingHats
+http://c2.com/cgi/wiki?ToAyoungExtremist
+http://c250.columbia.edu/c250_events/look_back/burns_thoughts.html
+http://c2d.unige.ch/news/rel.php?rel=1316&lang=
+http://c3po.cochise.cc.az.us/astro/constitution.htm
+http://ca.dir.yahoo.com/Business_and_Economy/Shopping_and_Services/Travel_and_Transportation/Accommodation/Bed_and_Breakfasts/wp_n.dat
+http://ca.dir.yahoo.com/Government/U_S__Government/Military/Navy/
+http://ca.dir.yahoo.com/Health/Diseases_and_Conditions/Prostate_Cancer/Organizations/
+http://ca.dir.yahoo.com/Recreation/Travel/By_Region/Countries/Jamaica/Complete_List/
+http://ca.dir.yahoo.com/Society_and_Culture/Environment_and_Nature/
+http://ca.dir.yahoo.com/Society_and_Culture/Environment_and_Nature/Waste_Management/Recycling/
+http://ca.dir.yahoo.com/society_and_culture/environment_and_nature/?sort=lf
+http://ca.dir.yahoo.com/society_and_culture/environment_and_nature/waste_management/recycling/?sort=lf
+http://ca.gentekinc.com/english/products.asp?z=1&m=2&d=59
+http://ca.lwv.org/lwvc/edfund/elections/2004nov/id/prop1A.html
+http://caag.state.ca.us/charities/publications/1998thriftreport.htm
+http://cab.berkeley.edu/help/macissues.html
+http://caballoblanco.com/resultsupdate04.html
+http://cableorganizer.com/how-to-organize/
+http://cacciaguida.blogspot.com/2002_09_01_cacciaguida_archive.html
+http://cade.athabascau.ca/vol12.1/editorial-english.html
+http://cadence.advanstar.com/2002/1202/pr1202_solibri.html
+http://cadyvd.blogsome.com/
+http://caferati.blogspot.com/2005/02/advice-walking-tips-for-ne_110852450699925549.html
+http://cafeshops.com/irregulargoods.6933624
+http://caffe.home.mindspring.com/
+http://cafnr.missouri.edu/source/nitrogen.asp
+http://caheinfo.wsu.edu/focus/two/project.html
+http://cain.ulst.ac.uk/dd/papers/flags.htm
+http://cain.ulst.ac.uk/dd/report12/report12f.htm
+http://cain.ulst.ac.uk/events/convention/nicc75app1.htm
+http://cain.ulst.ac.uk/hmso/cmd5259.htm
+http://cain.ulst.ac.uk/images/photos/murphy/murphy03.htm
+http://cain.ulst.ac.uk/issues/education/docs/smith99.htm
+http://cain.ulst.ac.uk/issues/politics/docs/odoherty.htm
+http://cain.ulst.ac.uk/sutton/alpha/E.html
+http://cain.ulst.ac.uk/sutton/alpha/N.html
+http://cain.ulst.ac.uk/sutton/chron/1970.html
+http://cain.ulst.ac.uk/sutton/chron/1978.html
+http://cakeeaterchronicles.mu.nu/
+http://cal.bemidji.msus.edu/english/morgan/courses/en1001f00/pAssignments/final.html
+http://cal.bemidji.msus.edu/english/morgan/courses/en1001f00/pAssignments/understandingShaler.html
+http://cal.blog-city.com/
+http://calacanis.weblogsinc.com/entry/1234000177042181/
+http://calacanis.weblogsinc.com/entry/1234000407026641/
+http://calacanis.weblogsinc.com/entry/8165152283983695/
+http://calbar.ca.gov/state/calbar/calbar_generic_pr.jsp?cid=11468&id=7969&com.broadvision.session.new=Yes
+http://calbears.collegesports.com/sports/c-otrack/recaps/022705aaa.html
+http://calendars.registrar.yorku.ca/lectureschedules/fw05/enrolment/problems.htm
+http://calgal.motime.com/
+http://calhotels.us/hotel.php/138332-near-six-flags-magic-mountain-castaic-california/
+http://calhotels.us/hotel.php/164848-studio-6-salt-lake-city-fort-union-salt-lake-city-utah/
+http://caliber.ucpress.net/doi/abs/10.1525/hlq.2004.67.3.347
+http://calico.org/CALICO_Review/review/interlex.htm
+http://calico.org/CALICO_Review/review/interlex00.htm
+http://california.uscity.net/Home/
+http://calivalleygirl.blogspot.com/2005/06/me-my-boyfriend-and-army.html
+http://callcentrediary.blogspot.com/
+http://calvin.st-andrews.ac.uk/external_relations/news_article.cfm?reference=627
+http://camelotvault.ign.com/?start_from=15
+http://caml.inria.fr/FAQ/general-eng.html
+http://campaign.democrats.com/preview.cfm?term=Campaign%202004%20Polls
+http://campaigndesk.org/
+http://campeaulaw.wld.com/practice.htm
+http://campus.houghton.edu/webs/employees/mhijleh/co96.html
+http://campus.hws.edu/his/blackwell/articles/residence.html
+http://campus.murraystate.edu/academic/faculty/bill.foreman/eng101.htm
+http://campus.northpark.edu/math/PreCalculus/Transcendental/Trigonometric/Geometry/
+http://campusplanning.ucsf.edu/faq/
+http://camsanantonio.org/2005/events.htm
+http://canada.justice.gc.ca/chra/en/lort1.html
+http://canada.justice.gc.ca/en/cons/la_al/summary/5.html
+http://canadaeast.com/apps/pbcs.dll/article?AID=/20050129/WEEKEND01/201290304/-1/LIFE
+http://canadafreepress.com/2005/cover050705.htm
+http://canadagazette.gc.ca/partI/2003/20030315/html/notice-e.html
+http://canadagazette.gc.ca/partI/2004/20040814/html/notice-e.html
+http://canadianeconomy.gc.ca/english/economy/about.html
+http://canberra.yourguide.com.au/detail.asp?class=sport&subclass=local&category=general%20sport&story_id=398640&y=2005&m=6
+http://canberra.yourguide.com.au/detail.asp?class=your%20say&subclass=general&category=editorial%20opinion&story_id=401256&y=2005&m=6
+http://canberrabirds.org.au/trips.htm
+http://cancer.gov/clinicaltrials/resources/taking-part-treatment-trials
+http://cancerblog.blogspot.com/
+http://cancerresources.mednet.ucla.edu/5_info/5c_archive_lec/1998/search.htm
+http://cancun-hotels.tripadvisor.com/Hotel_Review-g150807-d154430-Reviews-Cancun_Marina_Club_Hotel-Cancun_Yucatan_Peninsula.html
+http://cancun-hotels.tripadvisor.com/Hotel_Review-g150807-d154440-Reviews-Ambiance_Villas_and_Club-Cancun_Yucatan_Peninsula.html
+http://cancun-hotels.tripadvisor.com/Hotel_Review-g150807-d249916-Reviews-Akumal_Beach_Resort-Cancun_Yucatan_Peninsula.html
+http://cancun-hotels.tripadvisor.com/ShowUserReviews-g150807-d154404-r3019691-Avalon_Baccara_Cancun-Cancun_Yucatan_Peninsula.html
+http://cancun-hotels.tripadvisor.com/ShowUserReviews-g150807-d154412-r2494897-Radisson_Hotel_Hacienda_Cancun-Cancun_Yucatan_Peninsula.html
+http://cancun-hotels.tripadvisor.com/ShowUserReviews-g150807-d249916-r3025944-Akumal_Beach_Resort-Cancun_Yucatan_Peninsula.html
+http://candler.emory.edu/ACADEMIC/OCME/COS/CATALOG/academicpolicies.html
+http://canis.tamu.edu/wfscCourses/Concepts/Task1TS.html
+http://canis.tamu.edu/wfscCourses/WFSC622/NOTES/Unit%2001/CH01.htm
+http://cannonfire.blogspot.com/2004_05_30_cannonfire_archive.html
+http://canoeman.com/ancestors/docs/ancestors2.html
+http://caoine.org/
+http://caosblog.com/archives/date/2005/06/03/
+http://capd.ksu.edu/classroom_studio_use.asp
+http://cape.uwaterloo.ca/dept/personnel/macdonal.htm
+http://capella.bridgestar.org/newsletters/february2004/
+http://capella.bridgestar.org/newsletters/february2004/printer-friendly.htm
+http://capemaybythesea.com/bts2.asp
+http://capeorchids.itgo.com/Newsletter/COS.htm
+http://capeorchids.itgo.com/newsarchive/02july.htm
+http://capetownfm.com/
+http://capitalistchicks.com/html/news-viewarticle-16.html
+http://capitals.mostvaluablenetwork.com/
+http://capitolfax.blogspot.com/2005/06/closer-we-look.html
+http://capmag.com/article.asp?ID=2997
+http://capmag.com/article.asp?ID=3807
+http://capmag.com/article.asp?ID=4084
+http://capmag.com/author.asp?name=2
+http://caps.bethel.edu/seminars/details.html
+http://caps.blogspot.com/
+http://caps.ucdavis.edu/resources/SouthAsia/stress.html
+http://captainyips.typepad.com/journal/wildcat_woes/
+http://captology.stanford.edu/2003/
+http://cara.gsu.edu/where_to.html
+http://caracaschronicles.blogspot.com/archives/2002_10_27_caracaschronicles_archive.html
+http://carbon-unit.blogspot.com/
+http://carbon.cudenver.edu/~mryder/dlc.html
+http://cardiorepair.uni-marburg.de/etopat1.htm
+http://cards.crossdaily.com/index.php3?SID=32951
+http://cardsspeak.servebeer.com/
+http://career.berkeley.edu/Article/030404a.stm
+http://career.berkeley.edu/Article/040430a-hh.stm
+http://career.berkeley.edu/Arts/ArtsFaq.stm
+http://career.berkeley.edu/Health/PTPrep.stm
+http://career.berkeley.edu/PhDs/PhDletters.stm
+http://career.utk.edu/calendar/feb05.asp
+http://careerbuilder.franchisesolutions.com/index.cfm/fa/adpage/job_id/15487/lsource/4_business-services-franchise-opportunities/
+http://careercenter.tamu.edu/Students/S11/S11D.shtml
+http://careerfocus.bmjjournals.com/cgi/content/full/330/7485/48
+http://careermentorservices.com/terms.htm
+http://careerplanning.about.com/cs/jobloss/a/chin_up.htm
+http://careerplanning.about.com/od/resumewriting/a/resume_writing.htm
+http://careerplanning.about.com/od/workplacesurvival/a/unexpected.htm
+http://careers.asia1.com.sg/st_recruit/r20050623.html
+http://careers.findlaw.com/cgi-bin/view_job.pl?job_id=530666
+http://careers.raycommedia.com/default.asp?searching=True&station=WSTM
+http://careers.signonsandiego.com/displayads/utjobs/
+http://careers.state.gov/officer/join/
+http://careers.state.gov/print/officer/join/
+http://careers.state.gov/print/specialist/opportunities/healthprac.html
+http://careers.state.gov/print/specialist/opportunities/medoff.html
+http://careers.state.gov/print/specialist/opportunities/medpsych.html
+http://careers.state.gov/print/specialist/opportunities/medtech.html
+http://careers.state.gov/specialist/opportunities/healthprac.html
+http://careers.state.gov/specialist/opportunities/medoff.html
+http://careers.state.gov/specialist/opportunities/medpsych.html
+http://careers.state.gov/specialist/opportunities/medtech.html
+http://careers.unc.edu/employers/rpolicies.html
+http://careers.usc.edu/employers/recruiting.html
+http://careerservices.rutgers.edu/guide/2ndinterview.html
+http://careersurf.com/links.htm
+http://careo.elearning.ubc.ca/weblogs/thieme/archives/2004_06.html
+http://careo.elearning.ubc.ca/weblogs/vschools/archives/2005_05.html
+http://caribtravelnews.com/c0401_01.htm
+http://carl-bell-2.baylor.edu/~bellc/JL/APieceOfSteak.html
+http://carlisle-www.army.mil/usawc/Parameters/00autumn/johnston.htm
+http://carlisle-www.army.mil/usawc/Parameters/00autumn/tucker.htm
+http://carlisle-www.army.mil/usawc/Parameters/01spring/jalali.htm
+http://carlisle-www.army.mil/usawc/Parameters/01winter/jones.htm
+http://carlisle-www.army.mil/usawc/Parameters/01winter/peters.htm
+http://carlisle-www.army.mil/usawc/Parameters/02autumn/jalali.htm
+http://carlisle-www.army.mil/usawc/Parameters/03winter/toomey.htm
+http://carnage.bungie.org/haloforum/halo.forum.pl?read=481525
+http://carolinafirst.unc.edu/giftplanning/examples.htm
+http://carolinanavy.com/fleet2/f2/zcreative/PoetryWantedhall/shakespeare1.html
+http://carpe.umd.edu/congo_basin_news/news_article.asp?article=2
+http://carpetone.com/madd/default.cfm
+http://carroll.thefreelibrary.com/Through-the-Looking-Glass/1-6
+http://carroll.thefreelibrary.com/Through-the-Looking-Glass/1-7
+http://carroll.thefreelibrary.com/Through-the-Looking-Glass/1-9
+http://cars.msn.co.uk/buyersguide/pxvsprivateselling/
+http://cas.bellarmine.edu/tietjen/CreationScience/sorry.htm
+http://cas.bellarmine.edu/tietjen/Research/wooly_monkey_behavior_and_vocali.htm
+http://cas.ssc.uwo.ca/about.html
+http://cas.umkc.edu/ce/S05aag.htm
+http://cascadiascorecard.typepad.com/blog/2005/06/talking_the_tal.html
+http://caselaw.duicenter.com/muniz01.html
+http://caselaw.findlaw.com/cacodes/fin/5620-5624.html
+http://caselaw.findlaw.com/casecode/uscodes/15/chapters/66/subchapters/i/sections/section_4001.html
+http://caselaw.findlaw.com/nycodes/c72/a18.html
+http://caselaw.findlaw.com/scripts/getcase.pl?court=ks&vol=supct/2003/20030307/&invol=87455
+http://caselaw.findlaw.com/scripts/getcase.pl?court=mo&vol=/appeals/012003/&invol=2012803_2003
+http://caselaw.findlaw.com/scripts/getcase.pl?court=mo&vol=/appeals/052001/&invol=3050101_2001
+http://caselaw.findlaw.com/scripts/getcase.pl?court=nm&vol=00ca-023&invol=2
+http://caselaw.findlaw.com/scripts/getcase.pl?court=oh&vol=980772&invol=1
+http://caselaw.findlaw.com/scripts/getcase.pl?court=sd&vol=2002_53&invol=1
+http://caselaw.findlaw.com/scripts/getcase.pl?court=va&vol=1990175&invol=1
+http://caselaw.findlaw.com/scripts/getcase.pl?court=wa&vol=180069maj&searchval&invol=1
+http://caselaw.lp.findlaw.com/casecode/uscodes/16/chapters/1/subchapters/xlvi/sections/section_403_notes.html
+http://caselaw.lp.findlaw.com/casecode/uscodes/18/parts/i/chapters/47/sections/section_1030.html
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=11th&navby=case&no=959377man
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=11th&navby=case&no=988358man
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=2nd&navby=case&no=932303
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=3rd&navby=case&no=971516p
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=4th&navby=case&no=951961p
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=7th&navby=case&no=942229
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=7th&navby=case&no=942561
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=9th&navby=case&no=9716743
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=9th&navby=case&no=9935237
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=9th&navby=case&no=9935303
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=Fed&navby=case&no=011074
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=US&vol=343&invol=390
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=US&vol=415&invol=995
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=US&vol=432&invol=312
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=us&vol=118&invol=356
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=us&vol=221&invol=1
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=us&vol=247&invol=321
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=us&vol=257&invol=184
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=us&vol=261&invol=525
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=us&vol=273&invol=593
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=us&vol=274&invol=200
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=us&vol=275&invol=257
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=us&vol=320&invol=81
+http://caselaw.lp.findlaw.com/cgi-bin/getcase.pl?court=us&vol=321&invol=332
+http://caselaw.lp.findlaw.com/data/constitution/amendment01/
+http://caselaw.lp.findlaw.com/data/constitution/amendment01/06.html
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=9th&navby=case&no=9835147&exact=1
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=US&vol=000&invol=04-108
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=US&vol=167&invol=48
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=US&vol=285&invol=393
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=US&vol=508&invol=520
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=me&vol=99me3aea&invol=1
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=mt&vol=97&invol=040
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=nc&vol=1999/supreme0409/&invol=parish
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=or&vol=a99660&invol=1
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=000&invol=U10275
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=161&invol=359
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=167&invol=48
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=220&invol=413
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=241&invol=149
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=242&invol=238
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=268&invol=146
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=271&invol=414
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=273&invol=593
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=320&invol=462
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=330&invol=724
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=360&invol=672
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=415&invol=995
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=432&invol=312
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=439&invol=1034
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=451&invol=355
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=459&invol=400
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=493&invol=307
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&vol=494&invol=259
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=wa&vol=2002_app/49824-0&invol=3
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?navby=case&court=us&vol=349&page=294
+http://caselaw.lp.findlaw.com/scripts/getcase.pl?navby=search&court=US&case=/us/429/252.html
+http://caselaw.lp.findlaw.com/scripts/printer_friendly.pl?page=us/349/294.html
+http://caselaw.lp.findlaw.com/scripts/printer_friendly.pl?page=us/415/995.html
+http://caseysoftware.com/?q=node/76
+http://cashiering.unomaha.edu/return.html
+http://casinogambling.about.com/cs/poker/
+http://casinogambling.about.com/cs/poker/a/Calling.htm
+http://casinogambling.about.com/cs/poker/a/evalulate.htm
+http://casinogambling.about.com/od/texasholdemaz/
+http://casinogambling.about.com/od/texasholdemaz/index_a.htm
+http://casinogambling.about.com/od/texasholdemaz/index_r.htm
+http://casparcommons.org/
+http://caspian.switchinc.org/~distlearn/manual/chklstcm.html
+http://castlecops.com/article-5702-nested-0-0.html
+http://castlecops.com/p569050-Bayesian_Filtering.html
+http://castlecops.com/postp570875.html
+http://castlecops.com/posts81583-0.html
+http://castlecops.com/postt81583.html
+http://catal.arch.cam.ac.uk/catal/Archive_rep00/atalay00.html
+http://catal.arch.cam.ac.uk/catal/Archive_rep04/ar04_40.html
+http://catal.arch.cam.ac.uk/catal/Archive_rep98/molleson98.html
+http://catal.arch.cam.ac.uk/catal/Archive_rep99/mitrovic99.html
+http://catal.arch.cam.ac.uk/catal/TAG_papers/jon.htm
+http://catallarchy.net/blog/archives/2004/11/19/going-to-space-the-right-way/
+http://catallarchy.net/blog/archives/2005/02/13/libertarian-girl-mystery/
+http://catallarchy.net/blog/archives/2005/04/19/does-god-change-his-mind/
+http://catallarchy.net/blog/archives/2005/06/07/stein-v-krugman-celebrity-mismatch/
+http://catallarchy.net/blog/archives/2005/06/14/catos-fall-guys/
+http://catallarchy.net/blog/archives/2005/06/14/live-ignorance-8thousand/
+http://catallarchy.net/blog/archives/2005/06/19/the-culling-of-altruism/
+http://catallarchy.net/blog/archives/2005/06/21/do-we-really-have-less-socialist-health-care/
+http://catalog.heifer.org/chicks.cfm
+http://catalog.lacitycollege.edu/pages/physical%20ed.htm
+http://catalog.learningzonecatalog.com/product_info.php?products_id=14021
+http://catalog.psschool.com/product_info.php?products_id=48537
+http://catalog.socialstudies.com/c/@fm.hXlPjSOGQ2/Pages/search.html?Record_Type=Products&Media=eBook&Description=National%20Center%20for%20History
+http://catalogablog.blogspot.com/
+http://catalogue.learndirect.co.uk/browse/busman/category5/category15/?view=Ecommerce
+http://catalogue.learndirect.co.uk/courses/100401SM001/
+http://catarina.usc.edu/yaxu/FAQ558/cs558-online/lab24.html
+http://catawampus.typepad.com/catawampus/
+http://catawampus.typepad.com/catawampus/2004/09/
+http://catcradle.typepad.com/the_cats_cradle/2004/10/
+http://categories.paperstore.net/onlineessays/015-004.html
+http://catholicity.elcore.net/FromNewman'sEssayOnDevelopment.html
+http://cativa.blogspot.com/
+http://catless.ncl.ac.uk/Risks/11.29.html
+http://catless.ncl.ac.uk/Risks/11.30.html
+http://catless.ncl.ac.uk/Risks/12.49.html
+http://catless.ncl.ac.uk/Risks/14.13.html
+http://catless.ncl.ac.uk/Risks/14.65.html
+http://catless.ncl.ac.uk/Risks/18.59.html
+http://catless.ncl.ac.uk/Risks/18.78.html
+http://catless.ncl.ac.uk/Risks/2.10.html
+http://catless.ncl.ac.uk/Risks/21.35.html
+http://catless.ncl.ac.uk/Risks/22.69.html
+http://catless.ncl.ac.uk/Risks/23.21.html
+http://catless.ncl.ac.uk/Risks/23.25.html
+http://catless.ncl.ac.uk/Risks/23.37.html
+http://catless.ncl.ac.uk/Risks/4.42.html
+http://catless.ncl.ac.uk/Risks/4.48.html
+http://catlinclassroom.si.edu/catlin_browsec.cfm?ID=38
+http://catoinstitute.com/briefingpapers/
+http://catoinstitute.com/dailys/01-23-05.html
+http://cats.about.com/cs/healthissues/a/fatty_liver.htm
+http://cats.about.com/od/advocacy/a/clonedcat.htm
+http://cats.about.com/od/funwithcats/a/cat_house.htm
+http://caucuscare.com/TLIB/orghowto.html
+http://caudlewl.home.att.net/DedHist.htm
+http://cavittsocceracademy.com/index.php?topic=playerscup
+http://caxton.stockton.edu/JenasPage/stories/storyReader$18
+http://cayankee.blogs.com/cayankee/2005/01/new_bill_target.html
+http://cba.bio.utk.edu/activities95.html
+http://cba.phys.columbia.edu/communications/news/2002/september8.html
+http://cba.unomaha.edu/faculty/mohara/web/CBPP-INET.html
+http://cbae.nmsu.edu/~dboje/papers/CleggFollett4_7.html
+http://cbc.ca/consumers/market/files/home/csa/
+http://cbc.radio-canada.ca/annualreports/1996-1997/6_1_2_7.shtml
+http://cbc.radio-canada.ca/newsreleases/19990531.shtml
+http://cbc.radio-canada.ca/speeches/19990705.shtml
+http://cbc.radio-canada.ca/speeches/20041025.shtml
+http://cbdd.typepad.com/colleen/case_studies/
+http://cbdd.wsu.edu/kewlcontent/cdoutput/TR503/page68.htm
+http://cboard.cprogramming.com/archive/index.php/t-231.html
+http://cbs.marketwatch.com/news/story.asp?guid=%7B47F01AC3-EE66-4639-9B71-D51D42E6E50C%7D&siteid=mktw
+http://cbs.marketwatch.com/news/story.asp?guid=%7BFBB6DA3D-7F06-4883-BCE4-D5962D376FA3%7D&siteid=mktw
+http://cbs.sportsline.com/autoracing/story/8138446
+http://cbs.sportsline.com/b/page/pressbox/0,1328,5645013,00.html
+http://cbs.sportsline.com/collegebasketball/story/7653797
+http://cbs.sportsline.com/collegebasketball/story/8176412
+http://cbs.sportsline.com/mlb/story/8590494
+http://cbs.sportsline.com/nfl/fantasy/story/8583532/rss
+http://cbs.sportsline.com/nfl/players/draft/413640
+http://cbs.sportsline.com/nfl/story/8128868
+http://cbs.sportsline.com/nfl/teams/page/SD
+http://cbs11tv.com/investigations/local_story_061103132.html
+http://cbs11tv.com/investigations/local_story_159091753.html
+http://cbs11tv.com/investigations/local_story_325161114.html
+http://cbs4boston.com/news/topstories_story_030140005.html
+http://cbsnews.cbs.com/stories/2003/06/19/world/main559346.shtml
+http://cbsnewyork.com/healthwatch/health_story_156202510.html
+http://cbsnewyork.com/jeffberardelli/
+http://cbsnewyork.com/privacy/local_story_0432338405_html/resources_storyPrintableView
+http://cc.jlab.org/announce/newsletter/CCNLMar01.html
+http://cc.oulu.fi/~kempmp/colours.html
+http://cc.ucsf.edu/crc/hm_fatigue_and_you.html
+http://cca.qc.ca/pages/Niveau3.asp?page=hejduk&lang=eng
+http://ccasls.concordia.ca/contents/pap8.htm
+http://ccat.sas.upenn.edu/bmcr/1995/95.06.09.html
+http://ccat.sas.upenn.edu/bmcr/1996/96.10.05.html
+http://ccat.sas.upenn.edu/bmcr/1999/1999-02-11.html
+http://ccat.sas.upenn.edu/bmcr/1999/1999-04-14.html
+http://ccat.sas.upenn.edu/bmcr/2003/2003-04-19.html
+http://ccat.sas.upenn.edu/bmcr/2004/2004-08-08.html
+http://ccat.sas.upenn.edu/bmcr/2005/2005-04-23.html
+http://ccat.sas.upenn.edu/jod/texts/lastmoralia.english.html
+http://ccat.sas.upenn.edu/~humm/Topics/Contracts/treat01.html
+http://ccat.sas.upenn.edu/~joef/hooley.sec3.hooley.html
+http://ccbs.ntu.edu.tw/FULLTEXT/JR-ADM/jack.htm
+http://ccc.teasdream.com/terms.html
+http://ccequincy.home.comcast.net/SGWindows.htm
+http://ccl.cmpdi.co.in/vsccl/tend_June'05/june'05-RAJRAPPA.htm
+http://ccl.northwestern.edu/netlogo/models/CalcHubNetElevators
+http://ccl.northwestern.edu/netlogo/models/GeometronTop-Down
+http://ccl.northwestern.edu/netlogo/models/community/drawing-tool
+http://ccl.northwestern.edu/netlogo/models/community/sheep-populationA
+http://ccnet.utoronto.ca/cgi-bin/announcements.cgi?cc=admin&template=main
+http://ccs.mit.edu/lh/21CWP002.html
+http://ccstrikers.com/teams_of_the_cc_strikers.htm
+http://cctc2.commnet.edu/grammar/commas.htm
+http://cctc2.commnet.edu/grammar/notorious.htm
+http://cctr.umkc.edu/userx/bhugh/musicold.html
+http://ccwf.cc.utexas.edu/~murphyg/movies/1999/may99.html
+http://cd.ciao.co.uk/Wrong_Anyone_s_Daughter__6040458
+http://cdli.asm.org/cgi/content/full/9/2/320
+http://cds.aas.duke.edu/exhibits/past/raisedvoices/rvindex.html
+http://cdserver2.ru.ac.za/cd/011120_1/Aqua/Ichthyology/Ichthyology/reproductive%20behaviour.htm
+http://cdstatus.sourceforge.net/
+http://cec-india.org/leftlinks/03/folder.2004-12-17.3882499103/index_html%20
+http://cee.che.ufl.edu/Journals/Fall2003/Blau.html
+http://ceee.gwu.edu/standards_assessments/isitreal.htm
+http://ceee.gwu.edu/teaching_learning/key_grouping_1.htm
+http://ceep.crc.uiuc.edu/poptopics/gradeconfig.html
+http://ceicher.homeunix.com/
+http://ceicher.homeunix.com/archives/2002/12/
+http://celebration-bar-exam-review.com/california/California-Bar-Review.htm
+http://celestialblue.blogspot.com/2005_05_29_celestialblue_archive.html
+http://celestialdelights.info/opinion.html
+http://celine-dion.lyrics-songs.com/lyrics/111727/
+http://cellphones.about.com/
+http://cellularconcepts-tn.com/cellularfaq.htm
+http://celt.net/Celtic/Artisans/oisinplay.html
+http://celticme.blogspot.com/
+http://cem.colorado.edu/archives/fl1997/deanna.html
+http://cema.chathamcounty.org/business.htm
+http://cemmap.ifs.org.uk/people.php?person_id=19
+http://cendi.dtic.mil/
+http://cendi.dtic.mil/publications/01-2ev_web_pres.html
+http://cendi.dtic.mil/sti_mgr/subject2topic7.html
+http://cendi.dtic.mil/sti_mgr/subject5topic8.html
+http://cenhum.artsci.wustl.edu/janfeb02.html
+http://cenmi.org/LeadingChange/S05/article10.asp
+http://censorware.net/legal/loudoun/980918_sumjudgeopp_v.html
+http://center.e-enterprise.purdue.edu/wps/portal/_s.155/3106
+http://center.info.pl/diet_pills/bad_diet_pills.html
+http://center.ncia.net/privacy.php
+http://center.uvt.nl/staff/meijdam/meijint.html
+http://centerforsocialconcerns.nd.edu/academic/fall/fall.shtml
+http://centerstage.net/art/articles/canofculture_20041014.html
+http://centerstage.net/art/articles/canofculture_20041021.html
+http://centerstagechicago.com/lifestyle/articles/dating-game.html
+http://centerstagechicago.com/lifestyle/articles/el_divisionblue.html
+http://centerstagechicago.com/theatre/articles/addingmachhys.html
+http://centomag.org/essays/boyle
+http://central.hcrhs.k12.nj.us/imc/
+http://centralia.missouri.org/history.html
+http://century.guardian.co.uk/1899-1909/Story/0,6051,126357,00.html
+http://ceonp.lism.catholic.edu.au/CEOLISMORE/CELD/me.get?SITE.sitelayouts.body&S501
+http://cepa.newschool.edu/het/essays/growth/keynesgrowth.htm
+http://cepa.newschool.edu/het/essays/growth/optimal/rawlsian.htm
+http://cepa.newschool.edu/het/essays/macro/other.htm
+http://cepa.newschool.edu/het/essays/sequence/sequence.htm
+http://cepa.newschool.edu/het/essays/youth/cantsys.htm
+http://cepa.newschool.edu/het/schools/finance.htm
+http://cepa.newschool.edu/het/texts/carlyle/latter2.htm
+http://cepu.nics.gov.uk/guidetoevacuation/warning.htm
+http://cercor.oupjournals.org/cgi/content/full/11/5/384
+http://ceres.ca.gov/ceqa/cases/1974/nooil_121074.html
+http://cert.uni-stuttgart.de/archive/bugtraq/2000/04/msg00212.html
+http://certcities.com/editorial/columns/story.asp?EditorialsID=86
+http://certcities.com/editorial/popquiz/story.asp?EditorialsID=36
+http://certs.ipsca.com/Products/g_prod_plugins.asp
+http://ces.edgateway.net/cs/resources/view/ces_res/74
+http://cesp.stanford.edu/news/438/
+http://cesr.org/filestore2/download/469
+http://cesr.org/work/instruments
+http://cessna.com/news/article.chtml?ID=BtDHDCkexaJOlCWA7If8vfqnC18Vv1VpPXLObPKpB7Lv28PHLZ
+http://cetuolumne.ucdavis.edu/newsletterfiles/newsletter572.htm
+http://cf.rrstar.com/forums/messageview.cfm?catid=6&threadid=3664
+http://cf.synergylearning.org/DisplayArticle.cfm?selectedarticle=111
+http://cfa-www.harvard.edu/iau/MPCStatus.html
+http://cfa-www.harvard.edu/press/pr0408.html
+http://cfa-www.harvard.edu/space_geodesy/SEALEVEL/
+http://cfa.ucdavis.edu/education/artsMail_view.php?articleid=26
+http://cfc.luton.ac.uk/articles/newways
+http://cfcenter.stanford.edu/Children'sArtStudy.html
+http://cfdev.georgetown.edu/cndls/asw/aswlinks.cfm?head1=Education&head2=New%20Media%20Cultures
+http://cgbeeo.cumulus.com/
+http://cgi.canoe.ca/cgi-bin/SummerActive/register.pl?Mode=INDIVIDUAL
+http://cgi.cse.unsw.edu.au/~cs3231/doc/style.php
+http://cgi.cse.unsw.edu.au/~lambert/cgi-bin/blog/2003/10/
+http://cgi.cse.unsw.edu.au/~wic/events/
+http://cgi.shutterbug.com/cgi-bin/displayvote.cgi
+http://cgi.www.limmud.org/cgi-bin/2004/guide.py/105
+http://cgi.www.limmud.org/cgi-bin/2004/guide.py/pr.html
+http://cgi1.usatoday.com/mchat/20050404001/tscript.htm
+http://cgi1.usatoday.com/mchat/20050429003/tscript.htm
+http://cgood.org/healthcare-newscommentary-inthenews-46.html
+http://cgood.org/society-newscommentary-watch.html
+http://cgr.alfred.edu/gr.html
+http://cgs.org.ohio-state.edu/gov/min-01au3.shtml
+http://cgw.pennnet.com/Articles/Article_Display.cfm?Section=Archives&Subsection=Display&ARTICLE_ID=99503&KEYWORD=warp%20speed
+http://chadfox.blogspot.com/
+http://chairetmetal.com/cm07/dean-complet.htm
+http://chandra.harvard.edu/chronicle/0105/director/
+http://chandra.harvard.edu/press/01_releases/press_050701.html
+http://chandrakantha.com/articles/indian_music/
+http://changingminds.org/disciplines/change_management/accepting_brief/first_meeting.htm
+http://changingminds.org/principles/contrast.htm
+http://changingminds.org/techniques/body/closed_body.htm
+http://changingminds.org/techniques/listening/why_not_listening.htm
+http://changingplaces.urbed.com/cgi-bin/main.cgi?org_code=87uytrsqp0gtgtgtgy&option=article&doc_id=29
+http://channel9.msdn.com/India/ShowPost.aspx?PostID=38427
+http://channel9.msdn.com/ShowPost.aspx?PostID=112
+http://channel9.msdn.com/ShowPost.aspx?PostID=76600
+http://channels.lockergnome.com/game/archives/20050330_konami_guns_for_psp_with_coded_arms.phtml
+http://channels.lockergnome.com/rss/resources/articles/quickstart.phtml
+http://channels.netscape.ca/finance/article.adp?id=20050610220209990003
+http://channels.netscape.com/ns/atplay/story.jsp?floc=FF-PLS-PLS&id=2005020412092522276781&dt=20050204120900&w=PR&coview=
+http://channels.netscape.com/ns/love/disasters.jsp?disaster=273
+http://chantaclair.com/Poetry.htm
+http://chaplain.blogspot.com/
+http://chaplain.blogspot.com/2005_04_01_chaplain_archive.html
+http://chapters.redcross.org/nh/gwmc/red_cross_history.htm
+http://char.txa.cornell.edu/language/introlan.htm
+http://chareidi.shemayisrael.com/BHR64features.htm
+http://chareidi.shemayisrael.com/NVadraft.htm
+http://chareidi.shemayisrael.com/SHM63agiyur.htm
+http://chareidi.shemayisrael.com/YSR65features2.htm
+http://chareidi.shemayisrael.com/archives5759/beshalach/boycott.htm
+http://chareidi.shemayisrael.com/archives5759/beshalach/features.htm
+http://chareidi.shemayisrael.com/archives5759/beshalach/kibbutz1.htm
+http://chareidi.shemayisrael.com/archives5759/ki_sisa/features.htm
+http://chareidi.shemayisrael.com/archives5759/tetzaveh/features.htm
+http://chareidi.shemayisrael.com/archives5762/tetzave/TZV62features.htm
+http://chareidi.shemayisrael.com/archives5763/shoftim/SHF63features.htm
+http://chareidi.shemayisrael.com/archives5764/kisavo/htune.htm
+http://chareidi.shemayisrael.com/orambam2.htm
+http://charityfocus.org/insp/people/hs/index.php?pg=essay
+http://charityguide.org/charity/focus_refugees.htm
+http://charlesmurtaugh.blogspot.com/
+http://charleyswar.tripod.com/id4.html
+http://charlotte-street.blogspot.com/2004_09_01_charlotte-street_archive.html
+http://charlottechurch.net/news/arch30.html
+http://charmingcountryinns.com/inns/usa/mo/kansascity/sucasabedandbreakfast/sucasabedandbreakfast.php3
+http://chasclifton.com/blogger.html
+http://chasemortgage.dorado.com/html/TermsAndConditions.htm
+http://chat.carleton.ca/~jnoakes/grad.html
+http://chatboards.ebay.com/chat.jsp?forum=1&thread=34
+http://chaucer.blogdrive.com/
+http://cheapcaribbean.com/faq.jsp
+http://cheats.gamespot.com/cheats.html?pid=468480
+http://cheats.gamespy.com/playstation-2-cheats/the-suffering/
+http://cheats.gamespy.com/xbox-cheats/the-suffering/
+http://cheats.ign.com/ob2/068/545/545746.html
+http://cheats.ign.com/ob2/068/545/545748.html
+http://cheats.teamxbox.com/xbox/619/The-Suffering/
+http://cheerleader.yoz.com/archives/000041.html
+http://cheerleader.yoz.com/archives/001928.html
+http://cheev.theuseless.com/index.php?cat=5
+http://chefjeff4.tripod.com/dbzfusion/id6.html
+http://chefmoz.org/United_Kingdom/England/Bath/
+http://chem.ch.huji.ac.il/~eugeniik/biofuel/biofuel_cells2_3.html
+http://chem.ch.huji.ac.il/~eugeniik/history/davy.htm
+http://chem.ch.huji.ac.il/~eugeniik/history/faraday.htm
+http://chem.ch.huji.ac.il/~eugeniik/history/grove.htm
+http://chem.ch.huji.ac.il/~eugeniik/history/page.html
+http://chem.ch.huji.ac.il/~eugeniik/history/wheatstone.html
+http://chennai.usconsulate.gov/wwwhpr040910a.html
+http://chennai.usconsulate.gov/wwwhpr050103.html
+http://chennai.usconsulate.gov/wwwhpr050318.html
+http://cherryangelfairy.tripod.com/id12.html
+http://cherwell.ospl.org/?id=2145
+http://cherwell.ospl.org/?s=sports&date=2004-11-12
+http://cherwell.ospl.org/?s=sports&page=sportsreports&date=2004-11-12
+http://ches.okstate.edu/programs_events/wip/news/00/march.html
+http://chessmind.powerblogs.com/
+http://chesterfield.jobs.topusajobs.com/
+http://chetday.com/howmuchexercise.htm
+http://chetday.com/survivalthin.htm
+http://chetly.home.comcast.net/thesis.html
+http://cheyneboy.blogspot.com/
+http://chezpim.typepad.com/blogs/2004/10/food_and_friend.html
+http://chicago-hotels.tripadvisor.com/ShowUserReviews-g35805-d87603-r2871340-Hotel_71-Chicago_Illinois.html
+http://chicago-hotels.tripadvisor.com/ShowUserReviews-g35805-d87637-r3459523-Renaissance_Chicago_Hotel-Chicago_Illinois.html
+http://chicago-hotels.tripadvisor.com/ShowUserReviews-g35805-d87659-r3289213-The_Westin_Chicago_River_North-Chicago_Illinois.html
+http://chicago.about.com/cs/events1/a/021704_dark.htm
+http://chicagopoetry.com/
+http://chicagosports.chicagotribune.com/sports/baseball/whitesox/cs-050613soxgamer,1,1445555.story?coll=cs-whitesox-headlines
+http://chicagotribune.interest.com/terms.asp
+http://chicagouncommon.com/photography/gallery/139/
+http://chicagouncommon.com/photography/gallery/200/
+http://chicagowildernessmag.org/issues/spring1998/IWhoosier.html
+http://chidman.dmusic.net/journal
+http://chiefwiggles.blog-city.com/
+http://childcare.about.com/od/behaviors/qt/stayinbed.htm
+http://childcare.about.com/od/childsafet1/tp/firesafactivity.htm
+http://childcare.about.com/od/enrichment/a/sportsafety.htm
+http://childcare.net/catalog/catalog/product_info.php?products_id=106
+http://childcare.net/catalog/catalog/product_info.php?products_id=305
+http://childcare.net/ebooks/Home_Family_NewProducts.html
+http://childparenting.about.com/b/archives.htm
+http://childparenting.about.com/library/prm/aa051701a.htm
+http://childparenting.about.com/od/summer/a/summerschedule.htm
+http://children.ofthenight.org/cloudbusting/music/this_woman_s_work.html
+http://childrenanddivorce.bizland.com/cs/id25.html
+http://childrenshosp-richmond.org/aboutus/stories/carmen.htm
+http://childrenshosp-richmond.org/families/your_visit/plan_stay.htm
+http://childrentoday.com/resources/articles/eat.htm
+http://childrentoday.com/resources/articles/peepers.htm
+http://childrentoday.com/resources/articles/spirit.htm
+http://chinahousing.mit.edu/english/china/specific/energy_beijing+shanghai/
+http://chinasuppliers.alibaba.com/products/china/1507/Dry_Batteries__Disposable_Batteries__Primary_Batteries.html
+http://chinasuppliers.alibaba.com/search/china_products/E_Bike.html
+http://chinese-school.netfirms.com/Sir-John-Templeton-interview.html
+http://chinese-school.netfirms.com/heart-disease-congestive.html
+http://chinesefood.about.com/library/weekly/aa021103a.htm
+http://chiron.valdosta.edu/whuitt/col/context/infoage.html
+http://chiron.valdosta.edu/whuitt/col/regsys/conation.html
+http://chl.wes.army.mil/software/gms/4.0/stratigraphy.htm
+http://chla.library.cornell.edu/cgi/t/text/text-idx?c=chla;idno=5032826_51_005
+http://chla.library.cornell.edu/cgi/t/text/text-idx?c=chla;idno=5032826_70_003
+http://chla.library.cornell.edu/cgi/t/text/text-idx?c=chla;idno=5032826_74_002;node=5032826_74_002%3A5
+http://chla.library.cornell.edu/cgi/t/text/text-idx?c=chla;idno=5032826_75_003
+http://chla.library.cornell.edu/cgi/t/text/text-idx?c=chla;idno=5033566_40_005
+http://chocnvodka.blogware.com/
+http://chocnvodka.blogware.com/blog/_archives/2004/10/28
+http://chocnvodka.blogware.com/blog/_archives/2004/4/26
+http://chocnvodka.blogware.com/blog/cmd=post_comment/article_id=54483/parent_id=151193
+http://chocnvodka.blogware.com/blog/science
+http://chocnvodka.blogware.com/blog?cmd=search&keywords=duran
+http://cholla.wustl.edu/baker/genealogy/individual.php?pid=I235&ged=data.ged
+http://chompster.blogspot.com/
+http://chrenkoff.blogspot.com/2004/10/good-news-from-iraq-part-12.html
+http://chrenkoff.blogspot.com/2004/12/good-news-from-iraq-part-17.html
+http://chris.pirillo.com/
+http://chris.pirillo.com/blog/_archives/2005/5/26/886557.html
+http://chris.whong.org/mdbounds/penn2.html
+http://chrisevans3d.com/
+http://christian-oneness.org/chapter4.htm
+http://christian.sunrisecounselling.com/Isonlinetherapyforyou.html
+http://christianity.about.com/cs/warandpeace/a/chaplains.htm
+http://christianity.about.com/library/weekly/aa030503.htm
+http://christianity.about.com/library/weekly/blsermonschurchyear.htm
+http://christianretail.blogspot.com/
+http://christianunplugged.com/proctor_essay.htm
+http://christianwritings.net/chapt-32.htm
+http://christinculture.gospelcom.net/eclectic_collection.htm
+http://christmas.allrecipes.com/directory/1434.asp
+http://chronicfatigue.about.com/od/articles/a/attnspan.htm
+http://chronicfatigue.about.com/od/articles/a/goals.htm
+http://chronicle.com/forums/colloquy/read.php?f=1&i=4880&t=4871
+http://chronicle.com/forums/colloquy/read.php?f=1&i=4911&t=4871
+http://chronicle.com/jobs/id.php?id=317588
+http://chronicle.uchicago.edu/000608/facultyawardsa.shtml
+http://chronicle.uchicago.edu/940929/summer.shtml
+http://chuckcurrie.blogs.com/chuck_currie/2004/07/us_pastors_brin.html
+http://chuckcurrie.blogs.com/chuck_currie/2004/08/a_couple_new_li.html
+http://chuckcurrie.blogs.com/chuck_currie/2005/02/the_state_of_th.html
+http://chud.com/forums/archive/index.php/t-80554-p-2.html
+http://chud.com/forums/showpost.php?p=1379843&postcount=1
+http://chud.com/forums/showthread.php?goto=lastpost&t=82042
+http://chud.com/forums/showthread.php?goto=newpost&t=82042
+http://chud.com/forums/showthread.php?mode=hybrid&t=76775
+http://chud.com/forums/showthread.php?t=81954&goto=nextoldest
+http://chud.com/forums/showthread.php?t=82042
+http://chud.com/forums/showthread.php?t=82287
+http://chud.com/forums/showthread.php?t=82332
+http://chujoe.net/index.php?id=385
+http://churchhost.com/michelle/
+http://ci.akron.oh.us/ASP/Index_Resp.asp?link=keep+akron+beautiful
+http://ci.columbia.edu/ci/eseminars/0812_detail.html
+http://ci.ftlaud.fl.us/police/chiefsreply0401.html
+http://ci.golden.co.us/Employment.asp?SectionID=61
+http://ci.kingman.az.us/depts/fire/after_the_fire.htm
+http://ci.montgomery.il.us/Moody.htm
+http://ci.quincy.ma.us/tcpl/htm/legacy/chap3.htm
+http://ciajfk.com/barrymore/john.html
+http://ciei.colorado.edu/heatherwood_mathletes/curriculum.html
+http://cigars.about.com/
+http://ciki2day.blogdrive.com/
+http://cilas.ucsd.edu/programs/CILASfilmCatalog.htm
+http://cimms.ou.edu/~doswell/tstm_camping_safety.html
+http://cimss.ssec.wisc.edu/goes/misc/000407.html
+http://cincinnati.com/race/
+http://cio.co.nz/cio.nsf/0/219000B7A0C43EE7CC256F3300728991?OpenDocument
+http://cio.co.nz/cio.nsf/0/219000b7a0c43ee7cc256f3300728991?OpenDocument&Click=
+http://cio.doe.gov/Documents/CFA.HTM
+http://cio.osu.edu/policies/CUFAQ.html
+http://cira.med.yale.edu/law_policy_ethics/workpapervol1iss1.html
+http://circ.ahajournals.org/cgi/content/full/104/14/1639
+http://circ.ahajournals.org/cgi/content/full/104/24/e145
+http://circ.ahajournals.org/cgi/content/full/109/21/2605
+http://circ.ahajournals.org/cgi/content/full/109/21/2613
+http://circ.ahajournals.org/cgi/content/full/109/21/e302
+http://circ.ahajournals.org/cgi/content/full/94/11/3023
+http://circ.ahajournals.org/cgi/content/full/96/6/2102
+http://circ.ahajournals.org/cgi/content/full/97/1/16
+http://circ.ahajournals.org/cgi/content/full/circulationaha;103/18/2272
+http://circadiana.blogspot.com/2005/01/clocknews-17-melanopsin.html
+http://cis.nci.nih.gov/fact/3_21.htm
+http://cis.nci.nih.gov/fact/3_58.htm
+http://cis.nci.nih.gov/fact/5_16.htm
+http://cis.nci.nih.gov/fact/5_23.htm
+http://cis.nci.nih.gov/fact/8_9.htm
+http://cisgw3.law.pace.edu/cisg/biblio/schlechtriem6.html
+http://cit.hr.caltech.edu/ISS/travel.htm
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:cond-mat/9901186
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:gr-qc/9712083
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:hep-lat/0011067
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:hep-ph/0010164
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:hep-ph/0303052
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:hep-ph/9407249
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:hep-ph/9510343
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:hep-ph/9906222
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:hep-th/0010197
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:hep-th/0503047
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:hep-th/0503152
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:hep-th/9609139
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:math-ph/0307017
+http://citebase.eprints.org/cgi-bin/citations?id=oai:arXiv.org:quant-ph/9904064
+http://citeseer.ist.psu.edu/619580.html
+http://citeseer.ist.psu.edu/707758.html
+http://citeseer.ist.psu.edu/context/114089/0
+http://citeseer.ist.psu.edu/context/124682/136007
+http://citeseer.ist.psu.edu/context/72958/0
+http://citeseer.ist.psu.edu/ferman01fuzzy.html
+http://citeseer.ist.psu.edu/kleinberg99authoritative.html
+http://citeseer.ist.psu.edu/romer98using.html
+http://city.csail.mit.edu/bmg/bmgnotes.html
+http://citybikes.com/site/intro.cfm
+http://cityguide.pojonews.com/fe/DayTrips/stories/dt_constitution_marsh.asp
+http://cityofchesapeake.net/calfe/iac/thisweek/chesapeakethisweek.jsp
+http://citypaper.com/news/story.asp?id=10093
+http://citypaper.net/articles/2003-04-17/browse.shtml
+http://citypaper.net/articles/2004-12-09/music.shtml
+http://citypaper.net/articles/2005-02-10/cover.shtml
+http://citypaper.net/articles/current/cb.shtml
+http://citypaper.net/articles/current/cover2.shtml
+http://citypaper.net/articles/current/eats.shtml
+http://citypop.blogspot.com/archives/2003_10_12_citypop_archive.html
+http://citypop.blogspot.com/archives/2003_11_30_citypop_archive.html
+http://citythateats.typepad.com/
+http://citywide.blogspot.com/2005_04_01_citywide_archive.html
+http://civicspacelabs.org/aggregator/sources/91
+http://civilaviation.nic.in/igrua/ind_text.htm
+http://civilliberty.about.com/b/a/077185.htm
+http://civilliberty.about.com/cs/humaneuthinasia/a/bgTerry.htm
+http://civilwartalk.com/cwt_alt/resources/medicine/generals.htm
+http://civpro.blogs.com/civil_procedure/
+http://civpro.blogs.com/civil_procedure/2004/11/no_habla_espano.html
+http://civpro.blogs.com/civil_procedure/material_things_gadgets_and_gizmos/
+http://cjb.sagepub.com/cgi/content/refs/30/1/62
+http://cjonline.com/special/famfreedom03/
+http://cjonline.com/stories/060305/loc_kdotworkers.shtml
+http://cla.calpoly.edu/cla/advising/adv_ftf.html
+http://cla.calpoly.edu/~dschwart/engl203/lais.html
+http://cla.calpoly.edu/~jlynch/Steeves.html
+http://cla.calpoly.edu/~smarx/Shakespeare/Shak_inLove/Frey.html
+http://clagnut.com/
+http://claims.jobs.greatinsurancejobs.com/jobs/claims/Claims-Adjuster/gij_job_detail.asp?job_ID=39926
+http://claims.jobs.greatinsurancejobs.com/jobs/claims/Claims-Examiner/gij_job_detail.asp?job_ID=40124
+http://claims.jobs.greatinsurancejobs.com/jobs/claims/Claims-Manager/gij_job_detail.asp?job_ID=39568
+http://claims.jobs.greatinsurancejobs.com/jobs/claims/Claims-Manager/gij_job_detail.asp?job_ID=39783
+http://claims.jobs.greatinsurancejobs.com/jobs/claims/Claims-Manager/gij_job_detail.asp?job_ID=39926
+http://claims.jobs.greatinsurancejobs.com/jobs/claims/Claims-Manager/gij_job_detail.asp?job_ID=40671
+http://claims.jobs.greatinsurancejobs.com/jobs/claims/Claims-Specialist/gij_job_detail.asp?job_ID=40743
+http://claims.jobs.greatinsurancejobs.com/jobs/claims/Claims-Specialist/gij_job_detail.asp?job_ID=40999
+http://claims.jobs.greatinsurancejobs.com/jobs/claims/Field-Adjuster/gij_job_detail.asp?job_ID=39062
+http://clappstar.com/mt/past/2002/06/index.php
+http://clarityandresolve.com/archives/2004/10/i_thank_god_im.php
+http://clarksonathletics.com/News/mhock/2005/2/1/mhocvsYALEPRI.asp?path=mhock
+http://clarkware.com/speaking.html
+http://class.lancasteronline.com/display.php?category=6&class=165
+http://classes.berklee.edu/llanday/fall01/ways/assign.htm
+http://classes.design.ucla.edu/Winter05/28/cursos/28/index_ejercicios.php?id=4
+http://classes.yale.edu/02-03/anth500a/reading_notes/RN_field_letters.htm
+http://classic.1up.com/do/blogEntry?bId=3569793&publicUserId=5486944
+http://classicfilm.about.com/od/classicmovieconnections/a/joegrant051205.htm
+http://classictamiyarc.com/tamintro01.html
+http://classictv.about.com/od/thisdayintvhistory/a/2004obituary.htm
+http://classictv.about.com/od/thisdayintvhistory/a/celebdeath05.htm
+http://classified.tribune.com/ctadvertiserwebsite/2sunday.htm
+http://classifieds.japantoday.com/biz.asp?action=home&pid=61
+http://classifieds.nnsw.com.au/class014.html
+http://classof49-53.rmcclub.ca/3021-3032.htm
+http://cleardarksky.com/c/DCTOb1AZkey.html
+http://cleardarksky.com/c/DCTOb1AZkey.html?1
+http://cleardarksky.com/c/HppyRyMnMOkey.html?1
+http://clearinghouse.mwsc.edu/manuscripts/209.asp
+http://clearwater.travel.bc.ca/camping/campgrounds/
+http://clearwisdom.net/emh/articles/2004/1/1/43712.html
+http://clearwisdom.net/eng/info_pak/book2e/eb204-32.html
+http://clem.mscd.edu/~talmanl/journals.html
+http://clickertraining.com/training/shelters/?loaditem=discussion_one
+http://clickmomukhamo.com/bangus/
+http://clinical-leadership.mc.duke.edu/Overview_Detail.asp
+http://clinical.assistant.jobs.topusajobs.com/
+http://clinton.senate.gov/issues_education.html
+http://clinton2.nara.gov/WH/EOP/OP/html/aa/aa07.html
+http://clinton2.nara.gov/WH/New/html/19990803.html
+http://clinton3.nara.gov/Initiatives/OneAmerica/Practices/midwest.html
+http://clinton3.nara.gov/Initiatives/OneAmerica/ab.html
+http://clinton3.nara.gov/WH/New/html/19980810-23271.html
+http://clinton4.nara.gov/WH/Accomplishments/housing_accomps.html
+http://clinton4.nara.gov/WH/Accomplishments/states/North_Carolina.html
+http://clinton4.nara.gov/WH/Accomplishments/technology.html
+http://clinton4.nara.gov/WH/New/html/19980810-23271.html
+http://clinton4.nara.gov/WH/New/html/19990407-4101.html
+http://clinton4.nara.gov/internship/dept.html
+http://clinton4.nara.gov/textonly/Initiatives/OneAmerica/19970927-13823.html
+http://clinton4.nara.gov/textonly/Initiatives/OneAmerica/19971204-2875.html
+http://clinton4.nara.gov/textonly/WH/Accomplishments/housing_accomps.html
+http://clinton4.nara.gov/textonly/WH/Accomplishments/technology.html
+http://clintonnews.net/story02.shtml
+http://clioseye.sfasu.edu/thewest.htm
+http://clivesoleymp.typepad.com/clive_soley_mp/2004/08/sudan_and_faili.html
+http://clm.ucdavis.edu/rooms/printing/printingpoliciesfaq.html
+http://cloanto.com/users/mcb/19950127giflzw.html
+http://cls.coe.utk.edu/efftlc/example_esl.htm
+http://cltg.org/cltg/clt2003/03-01-31.htm
+http://cltg.org/cltg/cltg99-1/99-02-26.htm
+http://club.cdfreaks.com/lite/t-38263.html
+http://club.cdfreaks.com/showthread.php?goto=lastpost&t=123353
+http://clubindustry.com/mag/fitness_bank_2/
+http://clubindustry.com/mag/fitness_focus_technologyequipment/
+http://clublet.com/c/c/why?BigOmega
+http://clubs.akc.org/NBC/1884_1900_standard_comparison.htm
+http://clutch.open.ac.uk/schools/emerson00/pwe_1.html
+http://cm.bell-labs.com/cm/cs/who/dmr/medal.html
+http://cmaid.org/aidrelief.htm
+http://cmhanl.ca/mhm/2004-01/printer-friendly.html
+http://cmp.cps.k12.il.us/mayors_letter.asp
+http://cms.firehouse.com/content/article/article.jsp?sectionId=45&id=35481
+http://cms.hhs.gov/media/press/testimony.asp?Counter=502
+http://cms.lufthansa.com/mam/de/en/gnf/0,3678,0-0-1112459,00.html
+http://cms.psychologytoday.com/articles/pto-1496.html
+http://cms.psychologytoday.com/articles/pto-19920101-000039.html
+http://cms.psychologytoday.com/articles/pto-19920301-000029.html
+http://cms.psychologytoday.com/articles/pto-19920501-000017.html
+http://cms.psychologytoday.com/articles/pto-19940701-000028.html
+http://cms.psychologytoday.com/articles/pto-19940901-000013.html
+http://cms.psychologytoday.com/articles/pto-19940901-000027.html
+http://cms.psychologytoday.com/articles/pto-19941101-000028.html
+http://cms.psychologytoday.com/articles/pto-19950301-000029.html
+http://cms.psychologytoday.com/articles/pto-19950501-000033.html
+http://cms.psychologytoday.com/articles/pto-19971101-000024.html
+http://cms.psychologytoday.com/articles/pto-19980201-000034.html
+http://cms.psychologytoday.com/articles/pto-20021211-000001.html
+http://cms.psychologytoday.com/articles/pto-20030624-000003.html
+http://cms.psychologytoday.com/articles/pto-20050119-000002.html
+http://cms.psychologytoday.com/articles/pto-20050504-000001.html
+http://cms.psychologytoday.com/articles/pto-20050614-000001.xml
+http://cms.psychologytoday.com/conditions/ptsd.html
+http://cms.washingtonea.org/static_content/we/04-05/may/feature12.htm
+http://cmtshop.cmt.com/product.aspx?sku=63977854&loc=37083
+http://cmusicweb.com/features/bluelikejazz/index.shtml
+http://cndyorks.gn.apc.org/yspace/articles/starget.htm
+http://cnets.iste.org/intro2.html
+http://cnets.iste.org/students/s_esscond.html
+http://cnets.iste.org/teachers/pf/pf_cloze-choral-read.html
+http://cnews.canoe.ca/CNEWS/Canada/2005/06/23/1101671-cp.html
+http://cnews.canoe.ca/CNEWS/Law/2005/06/12/1083762-cp.html
+http://cnews.canoe.ca/CNEWS/MediaNews/2005/06/10/1081519-cp.html
+http://cnews.canoe.ca/CNEWS/TechNews/Michetti/2004/12/20/791302.html
+http://cnews.canoe.ca/CNEWS/TechNews/Michetti/2005/06/06/1073825.html
+http://cnews.canoe.ca/CNEWS/World/2005/06/20/1096849-cp.html
+http://cnnstudentnews.cnn.com/2004/WORLD/americas/10/21/castro.fall/
+http://cnnstudentnews.cnn.com/2005/EDUCATION/06/06/college.promise.ap/
+http://cnparm.home.texas.net/Nat/China/ChinaBios.htm
+http://cns.miis.edu/pubs/week/050615.htm
+http://cnserver0.nkf.med.ualberta.ca/cybernephrols/isn/GN_CP_Correlations/CASES_21-30.htm
+http://cnx.rice.edu/content/m11640/latest/
+http://cnx.rice.edu/content/m11873/latest/
+http://cnx.rice.edu/content/m12154/latest/
+http://cnx.rice.edu/content/m12393/latest/
+http://cnx.rice.edu/content/m12746/latest/
+http://co.howard.in.us/ordinances/chapter91.html
+http://co.stanford.edu/resources/glcodes/gldesc.html
+http://co.stanford.edu/resources/gldesc.html
+http://coaching.gc.ca/documents/coaching_in_the_tbs_e.asp
+http://coaching.gc.ca/learning/c3_e.asp
+http://coachmaria.com/success/karenk.html
+http://coastbotanicalgarden.org/
+http://cob.bloomu.edu/grandzol/courses.htm
+http://cobrands.business.findlaw.com/bankruptcy/nolo/faq/1FF752C2-0C80-4539-8B159557A55CC17D.html
+http://cobrands.contracts.findlaw.com/agreements/bam/gameboy.license.1999.02.10.html
+http://cobrands.contracts.findlaw.com/agreements/bam/gbadv.license.2001.05.21.html
+http://cobrands.contracts.findlaw.com/agreements/liberate/peterson.emp.1999.04.06.html
+http://cocaw.org/main.htm
+http://coco.essortment.com/cancerpancreas_mao.htm
+http://cocoadevcentral.com/articles/000056.php
+http://cocoadevcentral.com/articles/000057.php
+http://cocoadevcentral.com/articles/000077.php
+http://code.google.com/summfaq.html
+http://codeblueblog.blogs.com/codeblueblog/2005/03/csi_medblogs_fu.html
+http://codecity.net/awards.htm
+http://codepoet.org/~markw/risus/fantasy.html
+http://codesorcery.net/docs/spamtricks.html
+http://codex.wordpress.org/Codex:Contributing
+http://codex.wordpress.org/I_Make_Changes_and_Nothing_Happens
+http://codex.wordpress.org/Managing_Plugins
+http://codi.buffalo.edu/archives/colleges/.cul/disablaw.html
+http://codinginparadise.org/weblog/2001_11_19_archive.html
+http://codshit.blogspot.com/archives/2004_12_19_codshit_archive.html
+http://coe-dmha.org/Liaison/Vol_3No_1/Feat06.htm
+http://coe-dmha.org/Unicef/HPT_IntroOpeningSession.htm
+http://coe.sdsu.edu/people/jmora/Pages/4X4Guidelines.htm
+http://coe.sdsu.edu/people/jmora/SAT9analysis.htm
+http://coe.west.asu.edu/students/bdowning/wquest/Travel.htm
+http://coffeefaq.com/coffaq2.htm
+http://coffeegeek.com/forums/worldregional/useast/106301
+http://coffeehour.philocrites.com/
+http://cognet.mit.edu/library/conferences/paper?paper_id=55043
+http://cogsci.soton.ac.uk/~harnad/Papers/Py104/pinker.langacq.html
+http://cogsci.soton.ac.uk/~harnad/Papers/Py104/searle.comp.html
+http://cogsci.soton.ac.uk/~harnad/Tp/resolution.htm
+http://cogsci.uwaterloo.ca/Articles/Pages/how-to-decide.html
+http://cogweb.ucla.edu/Abstracts/Cain_on_Henig_00.html
+http://cogweb.ucla.edu/Abstracts/Gardner_on_Mithen.html
+http://cogweb.ucla.edu/Abstracts/Smith_84.html
+http://coh.stratics.com/content/lore/thecoldwar.php
+http://colab.rsnz.org/france/
+http://coldfury.com/reason/?p=183
+http://coldfury.com/reason/?p=290
+http://coldfury.com/reason/?p=31
+http://coldfury.com/reason/?p=445
+http://coldfury.com/reason/?p=467
+http://coldfury.com/reason/?p=549
+http://coldfury.com/reason/?p=556
+http://coles.kennesaw.edu/sbdc/programs.htm
+http://colfa.utsa.edu/colfa/Psychology_Faculty_Research.htm
+http://collaborate.blogdrive.com/
+http://collectdolls.about.com/cs/auctions/a/ebayhusbands.htm
+http://collection.nlc-bnc.ca/100/201/300/cdn_medical_association/cjrm/vol-3/issue-3/0139.htm
+http://collection.nlc-bnc.ca/100/201/300/cdn_medical_association/cmaj/vol-152/0169.htm
+http://collection.nlc-bnc.ca/100/201/300/cdn_medical_association/cmaj/vol-152/0712e.htm
+http://collection.nlc-bnc.ca/100/201/300/cdn_medical_association/cmaj/vol-155/issue-4/0442.htm
+http://collection.nlc-bnc.ca/100/201/300/cdn_medical_association/cmaj/vol-156/issue-8/1159.htm
+http://collection.nlc-bnc.ca/100/201/300/cdn_medical_association/cmaj/vol-158/issue-8/1033.htm
+http://collection.nlc-bnc.ca/100/201/300/cdn_medical_association/cmaj/vol-164/issue-7/0985.asp
+http://collection.nlc-bnc.ca/100/201/301/daily/daily-a/1999/99-03/990305.txt
+http://collection.nlc-bnc.ca/100/201/301/daily/daily-a/1999/99-08/990805.txt
+http://collection.nlc-bnc.ca/100/201/301/daily/daily-h/1997/97-05/97-05-20/d970520.htm
+http://collections.ic.gc.ca/discourspm/anglais/lbp/1510964e.html
+http://collections.ic.gc.ca/polyphony/labour_art1.html
+http://collections.mnhs.org/duluthlynchings/html/purpose.htm
+http://colleen.typepad.com/
+http://college.hmco.com/history/readerscomp/naind/html/na_017000_iwrel1776.htm
+http://college.hmco.com/history/readerscomp/rcah/html/ah_005400_articlesofco.htm
+http://college.hmco.com/history/readerscomp/rcah/html/ah_010900_blainejamesg.htm
+http://college.hmco.com/history/readerscomp/rcah/html/ah_016700_churchandsta.htm
+http://college.hmco.com/history/readerscomp/rcah/html/ah_059200_mexicousrela.htm
+http://college.hmco.com/history/west/mosaic/chapter13/source492.html
+http://college.hmco.com/history/west/mosaic/chapter15/module49.html
+http://college.hmco.com/history/west/mosaic/chapter2/source87.html
+http://college.hmco.com/history/west/mosaic/chapter8/source71.html
+http://collegeapps.about.com/
+http://collegecatalog.uchicago.edu/programs/sosc.shtml
+http://collegiateway.org/news/2002-04-19.html
+http://collins.thefreelibrary.com/Man-And-Wife/20-1
+http://collins.thefreelibrary.com/No-Name/10-2
+http://collins.thefreelibrary.com/The-Haunted-Hotel/6-1
+http://colorado.rockies.mlb.com/NASApp/mlb/col/ballpark/col_ballpark_directions.jsp
+http://colorado.rockies.mlb.com/NASApp/mlb/col/ballpark/directions.jsp
+http://coloradopoliticalnews.blogs.com/colorado_political_news/2005/01/rutt_and_webb_s.html
+http://coloradopoliticalnews.blogs.com/colorado_political_news/2005/02/mike_coffman_qa_1.html
+http://columbia-physics.net/research/theoretical_research.htm
+http://columbia.campusnetwork.com/~Scoobygurl/activity
+http://columbia.thefreedictionary.com/glass
+http://columbus.bizjournals.com/columbus/stories/2003/09/22/story2.html
+http://columbus.bizjournals.com/columbus/stories/2005/01/17/focus1.html
+http://columns.ink19.com/milesofaisles/
+http://com.miami.edu/StudentServices/HowApplyGraduate.htm
+http://com.pp.asu.edu/com/mcphee/structuration_seminar03.htm
+http://com1.runboard.com/bthescribesmessageboard.fwritingfantasyscifi.t108
+http://com4.runboard.com/bfarfrontiers.forum09.t10
+http://combatarms.mu.nu/
+http://comedian.blogspot.com/
+http://comet.ctr.columbia.edu/~nick/bio.extended.html
+http://comets.rleague.com/03review.php
+http://comicbookresources.com/columns/?column=13
+http://commdocs.house.gov/committees/intlrel/hfa45502.000/hfa45502_0.HTM
+http://commencement.psu.edu/undergrad.html
+http://comment.independent.co.uk/commentators/story.jsp?story=633038
+http://comment.independent.co.uk/leading_articles/
+http://comment.independent.co.uk/letters/story.jsp?story=604274
+http://comment.independent.co.uk/letters/story.jsp?story=609183
+http://comment.independent.co.uk/letters/story.jsp?story=628280
+http://comment.independent.co.uk/low_res/story.jsp?story=609183&host=6&dir=950
+http://commentariat.redrag.net/
+http://commerce.nic.in/exp_horti_ner.htm
+http://commerce.senate.gov/hearings/testimony.cfm?id=1497&wit_id=4263
+http://commerce.senate.gov/hearings/testimony.cfm?id=1529&wit_id=3971
+http://commerce.senate.gov/hearings/testimony.cfm?id=907&wit_id=1730
+http://commerce.senate.gov/nominations/testimony.cfm?id=986&wit_id=2816
+http://commongroundgroup.com/people.html
+http://commongroundgroup.com/publishing.html
+http://commonknowledge.blogs.com/common_knowledge/2004/09/
+http://commonsblog.org/archives/cat_recycling.php
+http://commonscold.typepad.com/
+http://commonscold.typepad.com/commonscold/2005/01/one_click_legal.html
+http://commonsensewonder.com/mtarchives/004370.shtml
+http://commpres.env.state.ma.us/content/buildout.asp
+http://commsdesign.com/design_corner/showArticle.jhtml?articleID=59300982
+http://commtechlab.msu.edu/projects/wonderwall.html
+http://communication.ucsd.edu/goldfarb/comt100/
+http://communication.ucsd.edu/people/f_cole.html
+http://communications.siemens.com/cds/frontdoor/0,2241,hq_en_0_15543_rArNrNrNrN_variation%253A-5_pageType%253AAccessories_imagePos%253A0,00.html
+http://communistsforkerry.com/Revolution_08.14.04.php
+http://community.allhiphop.com/showthread.php?t=121655&page=1
+http://community.andale.com/eve/ubb.x/a/tpc/f/130107/m/6331021/r/3371012
+http://community.christianitytoday.com/cgi/webx?225@5.PAdGaIqi4Pl.0@.ee6b33b
+http://community.darkconspiracy.com/viewtopic.php?p=6156
+http://community.gospelcom.net/Brix?pageID=12693
+http://community.gospelcom.net/Brix?pageID=7068
+http://community.healthgate.com/GetContent.asp?siteid=mclean&docid=/dci/alcoholism
+http://community.healthgate.com/GetContent.asp?siteid=mclean&docid=/dci/depression
+http://community.lawyers.com/chat/chat.asp?chatId=482
+http://community.lawyers.com/messageboards/message.asp?channelId=21&subId=&mId=567883&mbId=136
+http://community.lschs.org/picture_archive/index.asp
+http://community.middlebury.edu/~cneutral/intro.htm
+http://community.middlebury.edu/~harris/Humanities/FormandMeaning.html
+http://community.middlebury.edu/~harris/gallery1.html
+http://community.nursingspectrum.com/MagazineArticles/article.cfm?AID=10549
+http://community.nursingspectrum.com/MagazineArticles/article.cfm?AID=11764
+http://community.nursingspectrum.com/MagazineArticles/article.cfm?AID=14313
+http://community.nursingspectrum.com/MagazineArticles/article.cfm?AID=8192
+http://community.realitytvworld.com/boards/DCForumID17/1015.shtml
+http://community.sonikmatter.com/forums/lofiversion/index.php/t21310.html
+http://community.teentalkcentral.co.uk/index.php?showforum=3
+http://community.webtv.net/Hahn-50thAP-K9/K9History18
+http://community.webtv.net/blacklava/uaw/
+http://communityartsadvocates.org/saafinearts.html
+http://communityrelations.berkeley.edu/CalNeighbors/fall2004/speakfreely.htm
+http://communitysites.impulse.net.au/openstage/osr/ide.asp
+http://communityworksnyc.org/our_programs/theater_to_go/available_programs
+http://comnet.org/local/orgs/projectgrow/guidelines.html
+http://company.monsterwales.com/quanuk/
+http://company.tv-asahi.co.jp/e/announcement/2002/112203.html
+http://completerunning.com/walk-louisiana/index.php?m=20050203
+http://completerunning.com/walk-louisiana/index.php?p=91
+http://compsimgames.about.com/cs/gamereviews/gr/antwar.htm
+http://compsimgames.about.com/cs/gamereviews/gr/civ3_ptwep.htm
+http://comptutor.meetup.com/create/
+http://computer-geekette.com/
+http://computer.howstuffworks.com/y2k.htm
+http://computerarts.co.uk/tutorials/default.asp?siteid=27&sectiontypeid=7&subsectionid=845&pagetypeid=1&page=4
+http://computerarts.co.uk/tutorials/default.asp?siteid=27&sectiontypeid=7&subsectionid=845&pagetypeid=8&page=1&letter=c
+http://computercops.biz/article-5702-nested-0-0.html
+http://computercops.biz/postitle81583-0-0-.html
+http://computercops.biz/postp340144.html
+http://computercops.biz/postp349444.html
+http://computercops.biz/postp376530.html
+http://computercops.biz/postp432596.html
+http://computercops.biz/posts93476-15.html
+http://computercops.biz/postt81583.html
+http://computers.icq.com/boards/view_messages.php?tid=7693&topic_id=525891&page=2&view=date_view
+http://computers.icq.com/boards/view_messages.php?tid=7693&topic_id=525891&page=2&view=date_view&col=1&sort=1
+http://computers.icq.com/boards/view_replies.php?topic_id=525891&tid=7693&msg_id=2329978&parent_id=2329978
+http://computerworld.com/governmenttopics/government/policy/story/0,10801,45933,00.html
+http://computing.breinestorm.net/cincinnati+mechanical+department+industrial+nuclear/
+http://computing.breinestorm.net/phone+conditions+matching+speaker+approach/
+http://computing.breinestorm.net/wind+estimation+structures+tunnel+networks/
+http://conahec.org/conahec/Conferences/SanJuan2005/english/en_Awards.html
+http://concreteproducts.com/mag/concrete_osha_extends_safetyawareness/
+http://condor.depaul.edu/~elliott/stories/b17.html
+http://condor.depaul.edu/~rrotenbe/aeer/aeer11_1/hammel.html
+http://condor.depaul.edu/~stafcnsl/voice_of_staff/voice_of_staff_archive.htm
+http://conference.plasticdebris.org/overview.html
+http://conferenceservices.villanova.edu/mtgplanguide.htm
+http://congress.unc.edu/87_rep_farley.htm
+http://conjelco.com/bj.html
+http://conlaw.usatoday.findlaw.com/supreme_court/briefs/99-1257/99-1257fo12/text.html
+http://conlaw.usatoday.findlaw.com/supreme_court/briefs/99-1571/99-1571mo2/text.html
+http://connect.familyeducation.com/webx/webx.dll?14@8.i4nubqpsC0m%5E0@.ee74877/66
+http://connectors.globalspec.com/LearnMore/Electrical_Electronic_Components/Connectors/AC_Power_Connectors
+http://conrad.senate.gov/~conrad/press/speeches/2003B25533.html
+http://conrad.senate.gov/~conrad/press/speeches/2004422D21.html
+http://conservativegradstudent.blogspot.com/
+http://consilience.typepad.com/
+http://constantpated.blogspot.com/2005/06/us-losing-friends-and-assistance.html
+http://construction.ecnext.com/coms2/summary_0249-571_ITM
+http://construction.firmafrance.com/article/cursorDaoArticle.cfm?nrub=435&idoc=41403&navartrech=1
+http://consultingtimes.com/osgov.html
+http://consumeraffairs.com/recalls/mower_safety.html
+http://consumerlawpage.com/article/birth-defects.shtml
+http://consumerlawpage.com/article/construction-toxics.shtml
+http://consumerlawpage.com/article/elder_abuse.shtml
+http://consumerlawpage.com/article/insure.shtml
+http://consumerlawpage.com/brochure/medleave.shtml
+http://consumptive.org/
+http://content.calgary.ca/CCA/City+Living/Recreation+and+Leisure/Facilities+and+Leisure+Centres/Pools+and+Fitness/Drop-in+Class+Descriptions.htm
+http://content.icicidirect.com/ULFiles/UploadFile_2002826121914.asp
+http://content.karger.com/ProdukteDB/produkte.asp?Aktion=ShowFulltext&ProduktNr=224034&Ausgabe=227358&ArtikelNr=57291
+http://content.karger.com/ProdukteDB/produkte.asp?Aktion=showproducts&ProduktNr=0&searchWhat=authorsproducts&searchParm=oh
+http://content.miw.com.sg/Mindef/Static/Ippt1/KeyActivities/centres.asp
+http://content.monster.com/resume/samples/thankyou/
+http://content.salary.monster.com/articles/poker/
+http://content.teamcanada.monster.ca/onthejob/stress/
+http://contento.best.vwh.net/s238.html
+http://context.themoscowtimes.com/stories/2005/04/08/106.html
+http://context.themoscowtimes.com/stories/2005/06/03/106.html
+http://context.themoscowtimes.com/story/142902/
+http://contracts.corporate.findlaw.com/agreements/3dfx/security.1997.11.21.html
+http://contracts.corporate.findlaw.com/agreements/amazon/bezos.repurch.1996.06.21.html
+http://contracts.corporate.findlaw.com/agreements/ariba/tradex.mer.2000.01.24.html
+http://contracts.corporate.findlaw.com/agreements/athome/security.2001.06.08.html
+http://contracts.corporate.findlaw.com/agreements/chinabb/comp.alt.2002.03.22.html
+http://contracts.corporate.findlaw.com/agreements/concentric/concentric.mer.1997.07.html
+http://contracts.corporate.findlaw.com/agreements/ebay/ebayebaymerge.html
+http://contracts.corporate.findlaw.com/agreements/goldman/goldmancorp.mer.1999.04.20.html
+http://contracts.corporate.findlaw.com/agreements/goto/elkus.spa.1999.12.23.html
+http://contracts.corporate.findlaw.com/agreements/invision/quantum.mer.1997.09.html
+http://contracts.corporate.findlaw.com/agreements/loislaw/loislaw.mer.1999.06.16.html
+http://contracts.corporate.findlaw.com/agreements/martha/kmart.lic.2001.06.21.html
+http://contracts.corporate.findlaw.com/agreements/paypal/musk.emp.2001.05.04.html
+http://contracts.corporate.findlaw.com/agreements/tombrown/unocal.reg.1999.06.29.html
+http://contracts.onecle.com/3do/nintendo.lic.1999.10.01.shtml
+http://contracts.onecle.com/3do/nintendo.lic.2001.05.30.shtml
+http://contracts.onecle.com/acclaim/nintendo.lic.2001.07.19.shtml
+http://contracts.onecle.com/albertsons/defcomp2000.2000.01.01.shtml
+http://contracts.onecle.com/apple/indemn.1997.shtml
+http://contracts.onecle.com/asia-broadband/boehringer.svc.2004.06.30.shtml
+http://contracts.onecle.com/asia-broadband/gea.svc.2004.08.02.shtml
+http://contracts.onecle.com/asia-broadband/molex.svc.2004.08.02.shtml
+http://contracts.onecle.com/asia-broadband/open-learning.svc.2002.08.08.shtml
+http://contracts.onecle.com/asia-broadband/rexam.svc.2004.11.09.shtml
+http://contracts.onecle.com/bam/nintendo.lic-gb.1999.02.10.shtml
+http://contracts.onecle.com/bam/nintendo.lic.2001.05.29.shtml
+http://contracts.onecle.com/bam/ubi.distrib1.2001.04.23.shtml
+http://contracts.onecle.com/bluecoat/network.settle.2003.10.29.shtml
+http://contracts.onecle.com/china-finance/fuhua.lease.2004.05.27.shtml
+http://contracts.onecle.com/china-finance/fuhua.svc-tsa.2004.05.27.shtml
+http://contracts.onecle.com/china-finance/ning.spa.2004.05.27.shtml
+http://contracts.onecle.com/ciphergen/series-e.spa.2000.03.03.shtml
+http://contracts.onecle.com/critical/mcglashan.opt.2002.05.08.shtml
+http://contracts.onecle.com/ctrip/affil.consult.2003.09.10.shtml
+http://contracts.onecle.com/ctrip/affil.lic.2003.09.10.shtml
+http://contracts.onecle.com/ctrip/affil.pledge.2003.09.10.shtml
+http://contracts.onecle.com/ctrip/affil.tm.2003.09.10.shtml
+http://contracts.onecle.com/digital-angel/pickett.emp.1998.11.01.shtml
+http://contracts.onecle.com/earthshell/york.lease.2000.08.23.shtml
+http://contracts.onecle.com/exult/jones.emp.2000.07.28.shtml
+http://contracts.onecle.com/global-entertainment/cia.lic.2003.09.shtml
+http://contracts.onecle.com/hca/steen.emp.1993.11.05.shtml
+http://contracts.onecle.com/quality-dining/nbo.stock.2001.02.28.shtml
+http://contracts.onecle.com/riggs/kennedy.svc.2002.05.24.shtml
+http://contracts.onecle.com/select-comfort/fnbo.svc.1997.12.19.shtml
+http://contracts.onecle.com/talk/walsh.nso.2000.08.07.shtml
+http://contracts.onecle.com/tempur-pedic/friedman.shareholder.2002.11.01.shtml
+http://contracts.onecle.com/think-new-ideas/ketchum.apa.1997.05.31.shtml
+http://contracts.onecle.com/thq/nintendo.lic.1999.03.09.shtml
+http://contracts.onecle.com/thq/nintendo.lic.2001.07.18.shtml
+http://contracts.onecle.com/thq/sony-europe.lic.1998.06.25.shtml
+http://contracts.onecle.com/tivo/aol.invest1.2000.09.11.shtml
+http://contracts.onecle.com/united-defense/bae.mer.2005.03.06.shtml
+http://contracts.onecle.com/webmd/eastrise.svc-media.2000.01.26.shtml
+http://contracts.onecle.com/webzen/the9.svc.2003.02.15.shtml
+http://controlled-trials.com/mrct/mrct_memorandum.asp
+http://conversant.macrobyte.net/427
+http://conversant.macrobyte.net/whatisconversant_long.html
+http://conversations.acc.org/modules/conv/acc/0604a/transcript.asp
+http://conversations.acc.org/modules/conv/acc/0604a/transcript_print.asp
+http://conversations.acc.org/modules/conv/acc/1004b/transcript_print.asp
+http://conversations.acc.org/modules/conv/acc/1204b/transcript_print.asp
+http://conwebwatch.tripod.com/letters/letterirvine.html
+http://coolcosmos.ipac.caltech.edu/cosmic_kids/learn_ir/
+http://cooltech.iafrica.com/science/343468.htm
+http://coop.deadsquid.com/2004/05/
+http://coop.deadsquid.com/index.php?cat=1
+http://cooped-up.blogspot.com/
+http://cooper.thefreelibrary.com/Pioneers/1-16
+http://cooperativegrocer.coop/articles/index.php?id=253
+http://cop3.org/
+http://copernicus.subdomain.de/
+http://copr.nih.gov/minutes/fall2001_report_meeting.asp
+http://copr.nih.gov/minutes/fall2002.asp
+http://copsrus.us/Fallen.html
+http://copywriter.typepad.com/copywriter/2004/12/search_alternat.html
+http://coral.aoml.noaa.gov/pipermail/coral-list/2003-November/000436.html
+http://coral.aoml.noaa.gov/pipermail/coral-list/2003-November/000440.html
+http://core.ecu.edu/psyc/wuenschk/ABS99-ppr.htm
+http://corea2k.com/blog/index.php?p=194
+http://corealisation.inf.ed.ac.uk/group_news.html
+http://corefonts.sourceforge.net/
+http://cornett.blogspot.com/2002_03_03_cornett_archive.html
+http://corp.bayarea.net/bayarea/offerings/managed/managedhostingtrans.shtml
+http://corp.webxites.com/resources/index.aspx
+http://corporate.disney.go.com/outreach/espn_play_your_way.html
+http://corporate.pixar.com/news/19990726-71134.cfm
+http://corpses.comedynetuk.com/archive/absolutely.html
+http://corts.blogspot.com/2003_09_01_corts_archive.html
+http://corzine.senate.gov/press_office/record.cfm?id=225855
+http://corzine.senate.gov/press_office/record.cfm?id=234452
+http://cos.edu/view_page.asp?nodeid=2964&parentid=1192&moduleid=1
+http://cos.gnn.tv/
+http://cosmos.colorado.edu/~urquhart/play/pendulumt.html
+http://cosmos.oninetspeed.pt/dak/dak/warinafrica.htm
+http://counsellingresource.com/types/effectiveness.html
+http://countercog.excult.org/judgment/judgment-33.htm
+http://counterpunch.org/ballinger08122004.html
+http://counterpunch.org/jacobs08092004.html
+http://country-art.com/ca/charles_wysocki_ladies_in_waiting_prints.htm
+http://country-liberal-party.com/pages/Pan-Americanism.b.htm
+http://countryjoe.bizland.com/animals-1.html
+http://countrystudies.us/china/34.htm
+http://countrystudies.us/china/45.htm
+http://countrystudies.us/honduras/16.htm
+http://countrystudies.us/iraq/22.htm
+http://countrystudies.us/japan/132.htm
+http://countrystudies.us/turkey/44.htm
+http://countrystudies.us/united-states/geography-7.htm
+http://course1.winona.edu/tschwarze/favorite.htm
+http://courses.cs.vt.edu/~cs3604/support/Debates/Scenarios.html
+http://courses.lib.odu.edu/engl/jbing/~$escriptivePaper.htm
+http://courses.uiuc.edu/cis/programs/urbana/2005/fall/graduate/russ_east_euro_studies.html
+http://courses.unt.edu/csimpson/cright/ppr.htm
+http://courses.washington.edu/me354a/hw4.html
+http://courseweb.stthomas.edu/paschons/language_http/essays/salten.html
+http://court.nol.org/publications/glossary.htm
+http://courtneycs.blogspot.com/2004/06/are-you-politically-aware.html
+http://courts.countyofventura.org/children.htm
+http://courttv.com/trials/pring-wilson/092304_ctv.html
+http://covered-wagon-train.com/about.htm
+http://cowles.econ.yale.edu/P/cm/m09.htm
+http://coy.state.va.us/Modalities/anxiety.htm
+http://cp-software.co.uk/
+http://cpab.dl.gov.cn/en/IndustrialEconomy.htm
+http://cpe-sf.com/ruthgroup/downloads/ZimmermanTalkingPoints.htm
+http://cpmcnet.columbia.edu/dept/nephrology/
+http://cpmcnet.columbia.edu/texts/gcps/gcps0054.html
+http://cpolrhp.army.mil/ner/trnghandbook/newpage1.htm
+http://cpolrhp.belvoir.army.mil/west/WestCPOCBulletin/March99/CreatingaWinningTeam/CreatingaWinningTeam.htm
+http://cppf.ssrc.org/Activities/
+http://cpti.ws/wtr_ptc_docs/bills/dut_89.html
+http://cpti.ws/wtr_ptc_docs/bills/dut_92.html
+http://cqmextra.cqm.org/cqmjournal.nsf/reprints/rp13150
+http://cqod.gospelcom.net/cqodndtq.htm
+http://cracker.com.au/Viewthread.aspx?threadid=28894&categoryid=11300
+http://cracker.com.au/brisbane/real-estate/share-accommodation/search.aspx
+http://cracker.com.au/browse/realestateregion.aspx?q=Western+Suburbs&regionid=3001&categoryid=2000
+http://cracker.com.au/canberra/jobs/customer-service-contact-centre/search.aspx?pg=6
+http://cracker.com.au/viewthread.aspx?threadid=29949&categoryid=11111
+http://crankcrunk.blogspot.com/
+http://crashnet.cars.msn.co.uk/feature_view.asp?cid=18&fid=5901
+http://craveonline.com/games/stories.php?sid=1480
+http://crazyjaneski.typepad.com/le_tour_delicieux/2004/07/ltd_2004_stage__7.html
+http://creationsafaris.com/epoi_c07.htm
+http://creativecommons.org/technology/challenges
+http://creativecommons.org/weblog/archive/2004/05
+http://creativex.creative.com/legal/tou.asp
+http://credit-cards.interest.com/content/trends/credit_cards_bank.asp
+http://credit.about.com/
+http://credit.about.com/cs/consumerwisdom/a/071199.htm
+http://credit.about.com/cs/frugality/a/042104.htm
+http://credit.about.com/library/weekly/aa112998.htm
+http://credit.about.com/od/selfhelpcounseling/a/071404.htm
+http://crime.about.com/b/a/144209.htm
+http://crime.about.com/od/current/p/brian_mitchell.htm
+http://crimemagazine.com/03/richardspeck,0820.htm
+http://crimsonland.reflexive.com/crimsonland/
+http://critcrim.org/redfeather/learningcircus/001gfclc.html
+http://criterion.uchicago.edu/issues/iii6/naud.html
+http://criticalmethods.org/p125.mv
+http://criticsandbuilders.typepad.com/collegeenglish10/2005/01/we_have_the_fin.html
+http://critter.homestead.com/dogs1.html
+http://crm.ittoolbox.com/nav/t.asp?t=468&p=468&h1=468
+http://crm.knowledgestorm.com/search/keyword/kscrm/Issues%20Facing%20Information%20Systems%20Customer%20Relationship%20Management/Issues%20Facing%20Information%20Systems%20Customer%20Relationship%20Management
+http://crnano.typepad.com/crnblog/2004/06/can_an_mm_arms_.html
+http://crnano.typepad.com/crnblog/2004/06/nanotech_arms_r.html
+http://crnano.typepad.com/crnblog/2004/07/nice_benefit_pa.html
+http://crnano.typepad.com/crnblog/2004/08/playing_with_mo.html
+http://crnano.typepad.com/crnblog/2004/12/wisdom_isnt_eas.html
+http://crnano.typepad.com/crnblog/2004/week51/
+http://crofsblogs.typepad.com/joutou/
+http://crookedtimber.org/2005/03/30/are-children-public-goods/
+http://crookedtimber.org/2005/05/03/leveling-the-playing-field/
+http://crookedtimber.org/2005/05/25/academic-bestsellers/
+http://cross-x.com/vb/showthread.php?goto=lastpost&t=952372
+http://cross.fortt.com/archive/2004_10_01_index.html
+http://crossinglatitudes.com/pages/faq.htm
+http://crosspointe.spreadtheword.com/
+http://crossroads.net/jnazak/blog/
+http://crossword.telegraph.co.uk/money/main.jhtml?xml=/money/2005/01/05/cnhouse05.xml
+http://croucher.blogspot.com/2004_05_01_croucher_archive.html
+http://cruisemates.com/articles/consumer/sickatsea.cfm
+http://crumpled.com/cp/personal/000512.html
+http://cryocord.com.my/news10.asp
+http://cryptome.org/echelon-ep.htm
+http://crystal.palace.net/~llama/angst/johnny.html
+http://cs-ieee.manuscriptcentral.com/inc/terms.html
+http://cs.calvin.edu/christian/ai/index.php
+http://cs.wellesley.edu/~cs/Resources/internships.html
+http://csc.otinia.com/index.php/weblog/C4/
+http://cscs.umich.edu/~crshalizi/White/insanity/lunacy.html
+http://cscs.umich.edu/~crshalizi/notebooks/learning-inference-induction.html
+http://csd.powys.gov.uk/housing/h2.php
+http://csd.unl.edu/fossils/nebraska-invert-fossils/fossils.htm
+http://cse.edc.org/products/teacherleadership/reachingout.asp
+http://cse.seas.wustl.edu/area-ss.asp
+http://cse.ssl.berkeley.edu/lessons/indiv/beth/beth_intro.html
+http://csec-ccst.gc.ca/hist/speeches/20011022_e.php
+http://csestore.cse.org.in/store1.asp?currentpage=1&sec_id=4&subsec_id=14
+http://csf.concord.org/esf/modules.php?op=modload&name=Web_Links&file=index&req=MostPopular
+http://csf.vcaa.vic.edu.au/hp/cfhpip02.htm
+http://csf.vcaa.vic.edu.au/lg/cflgwr4a.htm
+http://cshe.berkeley.edu/projects/university/chem1a/summary.html
+http://csis.pace.edu/~bergin/KarelJava2ed/Karel++JavaEdition.html
+http://csiwhalesalive.org/csigallery32.html
+http://cslewis.drzeus.net/papers/originsofnarnia.html
+http://cslewis.drzeus.net/papers/weightofglory.html
+http://csmonitor.com/2005/0209/p08s03-comv.html
+http://csp.polisci.wisc.edu/BYU_UW/press.asp
+http://css-discuss.incutio.com/?page=ScreenreaderVisibility
+http://csssrvr.entnem.ufl.edu/~walker/epub/ESAFAQ.htm
+http://csstc.inel.gov/index.cfm?fuseaction=home.security_issues
+http://cssvault.com/gallery/kayem_design.php
+http://cstools.asme.org/charters.cfm
+http://cswww.essex.ac.uk/prospectivestudents/pg/faq/
+http://cswww.essex.ac.uk/prospectivestudents/research/faq/
+http://ct.com.com/click?q=ee-ZbvWQwDgH4VYjR3W8g3Uum2IS9A~
+http://ct.dscp.dla.mil/ctinfo/basecamp/oldgp/generalpurposetents.htm
+http://cte.jhu.edu/techacademy/fellows/Mass/webquest/notes.htm
+http://cti.itc.virginia.edu/~meg3c/classes/tcc313/sustain.html
+http://ctl.unc.edu/hpl5.html
+http://cuban-exile.com/doc_351-375/doc0354.html
+http://cube.ign.com/articles/558/558412p1.html
+http://cube.ign.com/objects/639/639492.html
+http://cucc.survex.com/jnl/1974/bit.htm
+http://cudental.creighton.edu/htm/history.htm
+http://cuhsr.bradley.edu/
+http://cuinfo.cornell.edu/Student/GRFN/GRFN.php?mode=record&code=A0005
+http://culturalstudies.gmu.edu/cultural_matters/issue1/laqueur.html
+http://culture.gov.mu/nheritage/maison.htm
+http://culturecat.net/node/846
+http://culturemachine.tees.ac.uk/Cmach/Backissues/j005/Articles/AMunster.htm
+http://cumc.columbia.edu/news/journal/journal-o/archives/jour_v19no1/learningnow.html
+http://cupe.ca/www/Equality/4146
+http://cupe.ca/www/media/10552
+http://cupojoe.blogspot.com/
+http://cura.free.fr/docum/02fagan.html
+http://curezone.com/cleanse/liver/oliveoil.asp
+http://curezone.com/diseases/parasites/
+http://curezone.com/diseases/parasites/default.asp
+http://curezone.com/forums/m.asp?f=83&i=446
+http://curious.astro.cornell.edu/question.php?number=210
+http://curious.astro.cornell.edu/relativity.php
+http://curious.astro.cornell.edu/space.php
+http://curl.haxx.se/mail/lib-2005-06/0031.html
+http://curmudgeongamer.com/article.php?story=2005040523434216
+http://curriculum.calstatela.edu/courses/builders/ev/liz/VExMC.html
+http://curry.edschool.virginia.edu/it/projects/Museums/Teacher_Guide/Social_Studies/English.Influence.html
+http://curtdanhauser.com/St43.html
+http://curtdanhauser.com/St43_x.html
+http://curtis.med.yale.edu/dchud/writings/sa4rim-orig.html
+http://cust.idl.com.au/fold/Left_Behind_series/Torture%20and%20the%20Virgin%20Army.html
+http://custance.org/Library/2MEN/Part_I/chapter6.html
+http://customer-service.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J8A7WH6P9N96Q8D3D58
+http://customer-service.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J8B46Q5Y58CNJTXZ31R
+http://customer-service.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J8H5KK703GBVDN05K44
+http://customer-service.careerbuilder.com/cs.ic/Ohio_Newark?radius=50
+http://customerevangelists.typepad.com/blog/2004/10/
+http://customwire.ap.org/dynamic/fronts/HOME?SITE=CTNHR&SECTION=HOME
+http://cuts-international.org/event-26april-csd.htm
+http://cvt.com.sapo.pt/cvpt_test/test_cvpt.htm
+http://cvtg.org/history/2001_02_pump.html
+http://cwp.library.ucla.edu/articles/ayrton/ayrtonrem2.html
+http://cybaea.com/reviews/GB_York_Posthouse.html
+http://cyber.law.harvard.edu/events/netmusic_brbook.html
+http://cyber.law.harvard.edu/filtering/saudiarabia/
+http://cyber.law.harvard.edu/home/
+http://cyber.law.harvard.edu/home/digital_media_project
+http://cyber.law.harvard.edu/home/home?func=view&wid=10&pn=3
+http://cyber.law.harvard.edu/home/ilc2004
+http://cyber.law.harvard.edu/media/home
+http://cyber.law.harvard.edu/nesson/blog/index.php?m=200504
+http://cyber.law.harvard.edu/people/jmoore/secondsuperpower.html
+http://cyber.law.harvard.edu/population/text93/ETHIOPIA.LAB.htm
+http://cyber.law.harvard.edu/webcred/
+http://cybercut.berkeley.edu/mas2/html/processes/milling/more.html
+http://cyberdash.com/node/view/337
+http://cyberg.wits.ac.za/cyberg/sessiondocs/organisational/organ/organ3/organ3.htm
+http://cyberknights.com.au/articles/areas-for-concern.phtml
+http://cyberlaw.stanford.edu/about/cases/kahle_v_ashcroft.shtml
+http://cyberlibris.typepad.com/blog/2005/04/moores_law_on_i.html
+http://cybermissions.org/articles/localchurch.htm
+http://cybersatan.typepad.com/cybersatancom/
+http://cybersittersunited.com/c4/SA.html
+http://cyberspacei.com/jesusi/inlight/philosophy/western/Sophists.htm
+http://cycletrades.com/motorcycle_parts_accessories/category.php?cat=street-bikes
+http://cyclo.mit.edu/ams/analysis.html
+http://cynthialeitichsmith.blogspot.com/2005/03/author-interview-elisa-carbone-on-last.html
+http://d-n-i.net/lind/lind_7_21_04.htm
+http://d.webring.com/hub?ring=tgchristians
+http://d.whyville.net/smmk/whytimes/article?id=5254
+http://d89156.i50.quadrahosting.com.au/index.php?main_page=index&cPath=74
+http://da.state.ks.us/fm/dfm/information/handbook.htm
+http://da.state.ks.us/itec/Documents/ITECITPolicy2400.htm
+http://da.state.ks.us/ps/draft/orientation/text/diversity.htm
+http://da.state.ks.us/ps/specs/specs/maint.htm
+http://dactyl.som.ohio-state.edu/Music839C/Notes/Nisbett.html
+http://daddytypes.com/
+http://daddytypes.com/archive/2004/09/28/regression_analysis.html
+http://dads.stblogs.org/archives/014738.html
+http://dadtalk.typepad.com/dadtalk/2005/02/fewer_kids_bein.html
+http://dagzine.blogspot.com/2004_04_01_dagzine_archive.html
+http://dahd.nic.in/guidenpcbb.htm
+http://daily.commonworship.com/daily.cgi?today_ep=1
+http://daily.greencine.com/archives/2004_01.html
+http://daily.stanford.edu/daily/servlet/tempo?page=content&id=1886&repository=0001_article
+http://daily.webshots.com/content/ap/current/h74239699.html
+http://dailyablution.blogs.com/the_daily_ablution/2004/11/pelling_pounds_.html
+http://dailyblitz.motime.com/
+http://dailyfunnies.org/page/194
+http://dailyinfo.afa.co.uk/unified_adboard.php?col=os
+http://dailyinfo.afa.co.uk/unified_adboard.php?col=t
+http://dailykos.com/
+http://dailykos.com/main/2
+http://dailykos.com/story/2005/1/21/155021/121
+http://dailylancer.blogspot.com/
+http://dailynews.muzi.com/ll/english/1357696.shtml
+http://dailystar.com.lb/article.asp?edition_id=10&categ_id=21&article_id=7564
+http://dailystar.com.lb/mereview.asp?edition_id=10&article_id=8575
+http://dailytelegraph.news.com.au/story.jsp?sectionid=1258&storyid=3281105
+http://dailytimes.com/print.lasso?wcd=13963
+http://dailywireless.org/modules.php?name=News&file=article&sid=2750&src=rss09
+http://dalythoughts.com/
+http://dalythoughts.com/index.php?p=1154
+http://damagevaluation.com/v-web/b2evo/blogs/index.php/2004/12/23/u_s_environmental_protection_agency_www__1
+http://damned-warrior.deviantart.com/journal/5618429/
+http://damocles.irpi.cnr.it/deliverables/stone/stone.htm
+http://dan.complex.ucl.ac.uk/Report/node29.html
+http://danaadobe.org/danaguide.htm
+http://dancemusic.about.com/cs/interviews/a/FeelgoodInt_2.htm
+http://dancemusic.about.com/od/conference/a/BBDMS2k4Parties.htm
+http://dancemusic.about.com/od/remixersproducers/a/RobClivillesInt_3.htm
+http://dancingbadger.com/princess.html
+http://danenet.wicip.org/bcp/spike_one.html
+http://dangerouschunky.com/notebook/index.php?cat=5
+http://dangillmor.typepad.com/dan_gillmor_on_grassroots/2005/01/truth_and_bill_.html
+http://dangillmor.typepad.com/dan_gillmor_on_grassroots/2005/02/google_emulates.html
+http://dangillmor.typepad.com/dan_gillmor_on_grassroots/2005/04/my_other_new_co.html
+http://danielltedesco.com/areas-of-practice/medical-malpractice.htm
+http://danrenzi.typepad.com/stuff/2004/12/number_killed_b.html
+http://dansoccerzone.com/SoccerGuide/guide.php?id=10
+http://danversoracle.media.mit.edu:4000/servlet/pluto?state=3030347061676530303757656250616765303032696430303431303530
+http://daringfireball.net/2003/09/select_word_script_for_bbedit
+http://daringfireball.net/2004/06/broken_windows
+http://daringfireball.net/2004/06/dashboard_vs_konfabulator
+http://daringfireball.net/2004/06/location_field
+http://daringfireball.net/2005/01/the_rumor_game
+http://daringfireball.net/2005/06/bombs_away
+http://daringfireball.net/linked/2005/january
+http://daringfireball.net/misc/2005/04/tiger_details
+http://dark_mark.tripod.com/flash.htm
+http://darkwing.uoregon.edu/~adiep/grp.htm
+http://darkwing.uoregon.edu/~adoption/archive/NabswTRA.htm
+http://darkwing.uoregon.edu/~counsel/away.htm
+http://darkwing.uoregon.edu/~rbear/may/550.html
+http://darkwing.uoregon.edu/~rbear/wheatley.html
+http://darkwing.uoregon.edu/~sergiok/brasil/rio.html
+http://darkworlds.com/ls/art_14917.html
+http://dartmonkey.ook-ook.net/archives/2005/04/
+http://darwilliams.net/SET/SET.html
+http://darwin.baruch.cuny.edu/bio1003/pstructure.html
+http://darwin.bio.uci.edu/~sustain/bio65/lec16/b65lec16.htm
+http://darwin.thefreelibrary.com/The-Origin-of-Species/11-1
+http://data1.recycle-more.co.uk/recycle3/nav/buildpage.asp?SectionID=621&color=orange&TopSectionID=510
+http://data2.itc.nps.gov/morningreport/morningreportold.cfm?date=09%2F02%2F2003
+http://data2.itc.nps.gov/morningreport/morningreportold.cfm?date=10%2F07%2F2002
+http://database-careers.com/showjob.cfm/201245
+http://dataferrett.census.gov/TheDataWeb/release/Version_1_1_6.html
+http://datavision.sourceforge.net/
+http://datawebcontrols.com/faqs/ProgrammaticAccess/SettingSelectedIndexProgrammatically.shtml
+http://dating.about.com/
+http://davenet.scripting.com/1994/11/14/replyfromnagel
+http://davenet.scripting.com/1998/02/09/askTheQuestions
+http://daveshearon.typepad.com/daveshearon/2005/02/experts_on_meri.html
+http://davesipaq.com/news/004473/iPAQ_Sony_PSP_Plat%20Station%20Portable
+http://davextreme.com/2003/08/templating_mfop2
+http://david.snu.edu/~dwilliam.fs/geog1113/okcboxes.htm
+http://david.weekly.org/writings/ftaa.php3
+http://davidappell.com/archives/00000543.htm
+http://davidappell.com/archives/00000701.htm
+http://davidbrin.blogspot.com/2005/06/sen-frist-many-antimodernists-are.html
+http://davidhayden.com/blog/dave/
+http://davidhayden.com/blog/dave/archive/2005/01/13/773.aspx
+http://davidszondy.com/ephemeral/archive10-04.htm
+http://davidwarlick.com/podcasts/
+http://dawn.thot.net/autism-ruling3.html
+http://dawn.thot.net/fofg/feature6.html
+http://dawnfrench.tripod.com/big.html
+http://daymilitary.com/team_about.html
+http://daysfanfiction.com/falling/b5/ch34.html
+http://daysofourlives.about.com/od/june2004/a/ep9833.htm
+http://dayton.bizjournals.com/dayton/stories/2005/02/21/story3.html
+http://dayton.senate.gov/issues/details.cfm?id=231054&&
+http://daytonflyers.collegesports.com/sports/m-baskbl/spec-rel/030805aaa.html
+http://db.energia.ru/energia/convert/prosthetic/catalog/index.php?mode=3&id=1&lg=2&t=23
+http://db.inman.com/inman/content/subscribers/inman/column.cfm?StoryId=020903RG&columnistid=griswold
+http://db.riskwaters.com/public/showPage.html?page=129235
+http://db.riskwaters.com/public/showPage.html?page=129671
+http://db.riskwaters.com/public/showPage.html?page=168761
+http://db.riskwaters.com/public/showPage.html?page=2270
+http://db.uwaterloo.ca/~alopez-o/politics/thoughtsdebts.html
+http://dbacon.igc.org/TWC/mm05_Officer.htm
+http://dbgw.finlit.fi/fili/bff/401/antas.htm
+http://dboilingpoint.blogspot.com/
+http://dc-mrg.english.ucsb.edu/WarnerTeach/E147/Critique.student.pages.htm
+http://dcarts.dc.gov/dcarts/cwp/view,A,3,Q,582599.asp
+http://dce.oca.org/Sections/MiniUnits/MiniUnits.asp?referenceID=ocayMini1
+http://dclagniappe.blogspot.com/2005/06/whatever-you-do-dont-lock-up-your-bike.html
+http://dcsr.org/affil.htm
+http://dcsr.org/educ.htm
+http://de.click2music.co.uk/3rd/Prezence/faithless/noroots/remixcomp/terms.html
+http://de.pennnet.com/articles/print_toc.cfm?p=55
+http://deadsea.netguide.co.il/
+http://dealnews.com/
+http://dean.edwards.name/IE7/
+http://deathbycommittee.blogspot.com/
+http://debate.domini.org/newton/sauda.html
+http://debbyestratigacos.mu.nu/
+http://debrahmorris.com/Tips2.htm
+http://debreu.colorado.edu/markusen/m1.htm
+http://decisionaid.ohri.ca/cochsystem.html
+http://deckernet.com/shed/xmas.htm
+http://declarationsandexclusions.typepad.com/foolblog/
+http://decoymusic.com/featurecontent.php?type=1&id=50
+http://deep_blade.tripod.com/news/FAIR_01.htm
+http://deepimpact.umd.edu/stsp/procedures/index05.shtml
+http://deepthroatuncovered.com/
+http://deepvision.com.ua/en/04.01.php
+http://defazio.house.gov/052405GPStatement.shtml
+http://defectiveyeti.com/
+http://defendmedicare.info/news/2004/02/19feb.htm
+http://degrassirealm.tripod.com/degrassi/id69.html
+http://dein.ucs.br/PosGraduacao/EspNovasTecnologias/Disciplinas/ProgramacaoOO/recursos/livros/aaa-tij3-distribution/TIJ319.htm
+http://dela.state.va.us/dela/MeetTheStaff.nsf/0/db5af67b877fda4185256aed0058a752?OpenDocument
+http://delete.me.uk/2005/03/iso8601.html
+http://delete.me.uk/blog
+http://delivery.acm.org/10.1145/1000000/996372/p78-chu.pdf?key1=996372&key2=5132878801&coll=portal&dl=ACM&CFID=11111111&CFTOKEN=2222222
+http://dels.nas.edu/ilar/jour_online/41_2/Systematic.asp
+http://delta.affinix.com/docs/sadstate.html
+http://deltafarmpress.com/mag/farming_supply_minerals_costeffective/
+http://demandmedia.net/
+http://demesnes.net/terms.html
+http://democracy.ru/english/quotes.php
+http://democracyiniraq.blogspot.com/
+http://democraticrenewal.us/blog/index.php?cat=2
+http://democrats.assembly.ca.gov/members/a46/press/a462004037.htm
+http://democrats.senate.gov/~dpc/releases/2004330506.html
+http://demokrasia-kenya.blogspot.com/2005/04/general-giap-reflects-on-vietnams.html
+http://demwatch.blogspot.com/
+http://denali.gsfc.nasa.gov/research/laser/sla02/results.html
+http://denisdutton.com/cold_reading.htm
+http://denoting.mcmaster.ca/invitedspeakers.html
+http://denver.bizjournals.com/denver/stories/2003/09/01/smallb2.html
+http://denvergov.org/OEM/template22232.asp
+http://dep.state.ct.us/burnatr/wildlife/factshts/bats.htm
+http://dep.state.ct.us/burnatr/wildlife/fguide/fg05/deer.htm
+http://department.monm.edu/classics/Speel_Festschrift/mcclanahan.htm
+http://departments.bloomu.edu/english/CauthenDocuments/cauthen-nowhere.htm
+http://dept.ju.edu/geography/geography_at_ju.htm
+http://dept.physics.upenn.edu/courses/gladney/mathphys/java/sect1/subsubsection1_1_1_3.html
+http://dept.physics.upenn.edu/courses/gladney/mathphys/subsubsection1_1_1_3.html
+http://dept.physics.upenn.edu/home/research/condmat/cm.html
+http://depts.inverhills.edu/LSPS/essential_skills.htm
+http://depts.washington.edu/archdept/programs_courses/masters_prog/master_prof.html
+http://depts.washington.edu/baltic/2002oct6speeches.htm
+http://depts.washington.edu/ceeh/publication/Newsletter/Newsletter9/director.htm
+http://depts.washington.edu/geront/patient/inpatient.htm
+http://depts.washington.edu/hsedp/admitstu/process/thchair.html
+http://depts.washington.edu/mnw/pastarticles/backpain.html
+http://depts.washington.edu/rehab/po/apply.html
+http://depts.washington.edu/uwch/silkroad/cities/uz/samarkand/samarkand.html
+http://depts.washington.edu/uwelp/groups/listprog.shtml
+http://depts.washington.edu/waschool/Tools_TeachersAdmin.html
+http://depts.washington.edu/womenctr/classes/current/academic.html
+http://depts.washington.edu/~bschool/career/cpt_steps.shtml
+http://dermatology.cdlib.org/DOJvol1num2/oleary.html
+http://dermatology.cdlib.org/DOJvol2num1/lorenzo/lorenzo.html
+http://dermatology.cdlib.org/rxderm-archives/cicatricial-pemphigoid
+http://deseretnews.com/dn/view/0,1249,450016772,00.html
+http://deseretnews.com/dn/view/0,1249,595097287,00.html
+http://deseretnews.com/dn/view/0,1249,595111804,00.html
+http://design.isye.gatech.edu/blog/?m=200408
+http://designermagazine.tripod.com/TheFutureheadsINT1.html
+http://desktoplinux.com/articles/AT2106819968.html
+http://desktoppub.about.com/cs/printing/qt/print_terms.htm
+http://desktoppub.about.com/cs/typespacing/a/leading.htm
+http://desktopvideo.about.com/
+http://desktopvideo.miningco.com/
+http://desmoinesregister.com/news/stories/c4788993/23274424.html
+http://dest.travelocity.com/DestGuides/0,1840,TCYCA%7C1944%7C%7C%7C0062021098%7CF%7CN,00.html
+http://destination-nb.com/common/directory/dbreturn.asp?AreaID=2_&CategoryID=G__
+http://detritus.net/steev/mt/
+http://detserv1.dl.ac.uk/Herald/detectors_high_pressure.htm
+http://dev-admin.mobhaile.ie/blog/nolonger/archive/2004/11/29/216.aspx
+http://dev-forums.ebay.com/thread.jspa?messageID=100009304
+http://dev-forums.ebay.com/thread.jspa?messageID=100009304&print=true
+http://dev-forums.ebay.com/thread.jspa?threadID=100002003
+http://dev-forums.ebay.com/thread.jspa?threadID=100002003&tstart=-1
+http://dev-forums.ebay.com/thread.jspa?threadID=100002003&tstart=0&mod=1117056575094
+http://dev.gentoo.org/~suka/blog/archives/2005/06/
+http://dev.mysql.com/doc/mysql/en/gone-away.html
+http://dev.mysql.com/doc/mysql/en/set-option.html
+http://developer.apple.com/business/macmarket/bbedit.html
+http://developer.apple.com/documentation/Carbon/Reference/Appearance_Manager/appearance_manager/function_group_3.html
+http://developer.apple.com/documentation/Carbon/Reference/Appearance_Manager/appearance_manager/function_group_4.html
+http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/perlfork.1.html
+http://developer.apple.com/internet/webcontent/hideshow_layer.html
+http://developer.apple.com/technotes/qd/qd_530.html
+http://developer.apple.com/technotes/tb/tb_530.html
+http://developer.apple.com/technotes/tn/tn1033.html
+http://developer.apple.com/technotes/tn2002/tn2095.html
+http://developer.apple.com/tools/installerpolicy.html
+http://developer.apple.com/webobjects/internet/wowebservices.html
+http://developer.gimp.org/api/2.0/gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html
+http://developer.gnome.org/doc/API/2.0/gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html
+http://developer.gnome.org/doc/API/2.0/glib/glib-File-Utilities.html
+http://developer.gnome.org/news/summary/2004_January18_January24.html
+http://developer.gnome.org/projects/gap/laws.html
+http://developer.gnome.org/projects/gup/hig/1.0/layout.html
+http://developer.gnome.org/projects/gup/proposals/sawfish.html
+http://developer.intel.com/technology/itj/2004/volume08issue04/art05_security/p03_security.htm
+http://developer.intel.com/technology/itj/q41998/articles/art_2c.htm
+http://developer.java.sun.com/developer/technicalArticles/Programming/linux/
+http://developer.kde.org/development-versions/kde-3.4-release-plan.html
+http://developer.kde.org/~kmail/kmailreview/
+http://developers.evrsoft.com/article/business/business-management/creating-customer-awareness-by-asking-the-right-questions.shtml
+http://developers.evrsoft.com/article/moxiebin/bm_tools.cgi?print=9224;s=8_6;site=1
+http://developers.evrsoft.com/article/web-design/content-writing-copyright/an-seo-copywriting-makeover-turning-not-into-hot-part-2-of-3.shtml
+http://developers.evrsoft.com/article/web-design/graphics-multimedia-design/importance-of-color-in-web-design.shtml
+http://developers.evrsoft.com/article/web-design/web-design-tutorials/the-amazing-website-makeover-for-dramatically-increasing-sales.shtml
+http://developers.evrsoft.com/article/web-development/computers-internet/caught-in-the-cross-fire-of-the-spam-war.shtml
+http://developers.evrsoft.com/article/web-development/domain-names/5-super-easy-secrets-to-a-winning-domain-name.shtml
+http://developers.evrsoft.com/article/web-development/webmaster-general/the-hits-that-matter-most.shtml
+http://developers.sun.com/solaris/articles/fileio.html
+http://developers.sun.com/techtopics/mobility/midp/articles/uidesign/
+http://development.duke.edu/finalreport/three.html
+http://devhawk.net/CategoryView.aspx?category=Community
+http://devicelink.com/mx/archive/04/11/kerr.html
+http://devon.intranet.org/icon/raferob2.htm
+http://devresource.hp.com/drc/columns/col0405.jsp
+http://devresource.hp.com/drc/resources/d2dappmgmt/index.jsp
+http://devrock.5u.com/custom2.html
+http://dewey.chs.chico.k12.ca.us/flan.html
+http://deyalexander.com/resources/user-centred.html
+http://dfes.gov.uk/pns/DisplayPN.cgi?pn_id=2005_0044
+http://dfw.eventguide.com/annual_events_overview.html
+http://diabetes.about.com/od/copingwithdiabetes/a/stress_2.htm
+http://diabetes.about.com/od/eyedisease/a/JORDY.htm
+http://diabetes.about.com/od/riskfactorsfordiabetes/a/tightcontrol.htm
+http://diabetes.about.com/od/sweeteners/a/pavlovsweetener.htm
+http://diabetes.niddk.nih.gov/dm/pubs/riskfortype2/
+http://diabetes.upmc.com/StayHealthy.htm
+http://diablo.kitcarmagazine.com/ProjectForSale.htm
+http://diamondsea.com/forums/index.php
+http://diaspora.northwestern.edu/cgi-bin/WebObjects/DiasporaX.woa/wa/displayArticle?atomid=901
+http://diatom.acnatsci.org/dpdc/information.asp
+http://dickens.thefreelibrary.com/The-Posthumous-Papers-Of-The-Pickwick-Club/1-2
+http://dict.die.net/blood%20blister/
+http://dict.die.net/blood%20heat/
+http://dict.die.net/blood%20horse/
+http://dict.die.net/blood/
+http://dict.die.net/whole%20blood/
+http://dictionary.reference.com/help/faq/language/p/punctuationmarks.html
+http://dictionary.reference.com/wordoftheday/archive/2000/12/27.html
+http://dictionary.reference.com/wordoftheday/archive/2003/10/26.html
+http://didaskalia.open.ac.uk/issues/vol3no3/foley.html
+http://diegedankan.blogspot.com/
+http://dieoff.com/synopsis.htm
+http://dieoff.org/
+http://dieoff.org/page11.htm
+http://dieoff.org/page115.htm
+http://dieoff.org/page116.htm
+http://dieoff.org/page12.htm
+http://dieoff.org/page122.htm
+http://dieoff.org/page125.htm
+http://dieoff.org/page140.htm
+http://dieoff.org/page163.htm
+http://dieoff.org/page18.htm
+http://dieoff.org/page224.htm
+http://dieoff.org/page27.htm
+http://dieoff.org/page58.htm
+http://dieoff.org/page75.htm
+http://dieoff.org/page90.htm
+http://dieoff.org/page99.htm
+http://differnet.com/experience/sec7.htm
+http://dig.lib.niu.edu/civilwar/race.html
+http://dig.lib.niu.edu/teachers/lesson3.html
+http://digbysblog.blogspot.com/2005_03_20_digbysblog_archive.html
+http://digbysblog.blogspot.com/2005_05_08_digbysblog_archive.html
+http://digbysblog.blogspot.com/2005_05_15_digbysblog_archive.html
+http://digbysblog.blogspot.com/2005_05_29_digbysblog_archive.html
+http://digbysblog.blogspot.com/2005_06_05_digbysblog_archive.html
+http://digigraphica.com/pick/dpick.html
+http://digilander.libero.it/p_truth/
+http://digital-web.com/articles/a_matter_of_styles/
+http://digital-web.com/articles/creating_a_web_page_with_html/
+http://digital-web.com/articles/dave_shea/
+http://digital-web.com/articles/industry_transformation/
+http://digital-web.com/articles/jeffrey_veen_and_jesse_james_garrett/
+http://digital-web.com/articles/the_business_of_blue/
+http://digital-web.com/articles/the_red_queen_color_theory/
+http://digital-web.com/articles/the_roi_of_roi/
+http://digital-web.com/articles/web_design_critique/
+http://digital-web.com/articles/whats_happening/
+http://digital-web.com/news/2005/01/top_10_web_companies_to_work_for/
+http://digital.library.upenn.edu/women/bruce/mates/mates-VIII.html
+http://digital.library.upenn.edu/women/montgomery/story/story-XXV.html
+http://digitalarchive.oclc.org/da/ViewObject.jsp?objid=0000003409
+http://digitalcooperative.oclc.org/dispatch/20feb2004.html
+http://digitalmedia.oreilly.com/pub/a/oreilly/digitalmedia/2005/05/04/reasonbeat.html
+http://digitalmedia.risd.edu/billseaman/poeticTextsTimebook.php
+http://dignitycanada.org/halloweenletter.html
+http://dioforamerica.com/
+http://dir.adbrite.com/index.cgi?a=1.176;search=
+http://dir.atp.ca/resources/modules.php?name=News&file=article&sid=400
+http://dir.webring.com/rw?d=Business___Finance/Home_Business;t=s
+http://dir.webring.com/rw?d=Health___Wellness/Support/Mourning_and_Loss/Loss_of_Pet
+http://dir.webring.com/rw?d=Health___Wellness/Support/Mourning_and_Loss/Loss_of_Pet/
+http://dir.yahoo.com/
+http://dir.yahoo.com/Arts/Performing_Arts/Acting/
+http://dir.yahoo.com/Business_and_Economy/Business_to_Business/Food_and_Beverage/Restaurant_and_Food_Service_Management/Supplies_and_Equipment/
+http://dir.yahoo.com/Business_and_Economy/Business_to_Business/Health_Care/Software/Medical/
+http://dir.yahoo.com/Business_and_Economy/Business_to_Business/Retail_Management/
+http://dir.yahoo.com/Business_and_Economy/Directories/Companies/
+http://dir.yahoo.com/Business_and_Economy/Organizations/Professional/
+http://dir.yahoo.com/Business_and_Economy/Shopping_and_Services/Health/Cosmetic_and_Plastic_Surgery/
+http://dir.yahoo.com/Business_and_Economy/Shopping_and_Services/Health/Cosmetic_and_Plastic_Surgery/Care_Provider_Directories/
+http://dir.yahoo.com/Business_and_Economy/Shopping_and_Services/Personal_Care/Skin_Care/
+http://dir.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/Weblogs/Sex/
+http://dir.yahoo.com/Entertainment/Television_Shows/WhitePages/wp_11.html
+http://dir.yahoo.com/Regional/Countries/South_Africa/Business_and_Economy/Shopping_and_Services/Health/Mental_Health/
+http://dir.yahoo.com/Regional/Countries/United_Kingdom/News_and_Media/Newspapers/
+http://dir.yahoo.com/Regional/U_S__States/California/Metropolitan_Areas/San_Francisco_Bay_Area/Community/Disabilities/Organizations/
+http://dir.yahoo.com/Society_and_Culture/Holidays_and_Observances/Halloween/
+http://dir.yahoo.com/Society_and_Culture/Religion_and_Spirituality/Faiths_and_Practices/Christianity/Education/Seminaries/
+http://dir.yahoo.com/arts/performing_arts/acting/
+http://dir.yahoo.com/business_and_economy/business_to_business/aerospace_and_defense/
+http://dir.yahoo.com/business_and_economy/business_to_business/retail_management/
+http://dir.yahoo.com/business_and_economy/shopping_and_services/health/cosmetic_and_plastic_surgery/by_region/countries/australia/complete_list/
+http://dir.yahoo.com/education/instructional_technology/online_teaching_and_learning/teacher_resources/
+http://dirckhalstead.org/issue0005/burnett.htm
+http://dirckhalstead.org/issue0110/seeing_intro.htm
+http://dirckhalstead.org/issue0403/haley.html
+http://direct-cnet.com.com/Dell_DJ-20/4505-6490_7-31149174.html
+http://direct.crossrhythms.co.uk/cd.php?cd=7920
+http://directory.google.com/Top/Health/Conditions_and_Diseases/Immune_Disorders/Immune_Deficiency/AIDS/Regional/Africa/
+http://directory.google.com/Top/Regional/Asia/India/Business_and_Economy/Computers_and_Internet/
+http://directory.google.com/Top/Regional/Europe/United_Kingdom/Business_and_Economy/Event_Planning/Weddings/Venues/
+http://directory.google.com/Top/Regional/Europe/United_Kingdom/Business_and_Economy/Legal_Services/Lawyers_and_Law_Firms/
+http://directory.google.com/Top/Regional/Europe/United_Kingdom/Business_and_Economy/Legal_Services/Lawyers_and_Law_Firms/Criminal_Defence/
+http://directory.google.com/Top/Regional/Europe/United_Kingdom/England/Business_and_Economy/Legal_Services/
+http://directory.google.com/Top/Regional/Europe/United_Kingdom/Government/Defence/Ministry_of_Defence/
+http://directory.google.com/Top/Regional/Europe/United_Kingdom/Scotland/Business_and_Economy/Legal_Services/Solicitors/
+http://directory.google.com/Top/Regional/North_America/United_States/Business_and_Economy/Employment/
+http://directory.google.com/Top/Science/Environment/Water_Resources/Products_and_Services/
+http://directory.google.com/Top/Shopping/Recreation/Genealogy/Heraldry/
+http://directory.searchwarp.com/S182P1-Oxfordshire.htm
+http://disability.ucdavis.edu/
+http://disabilityworld.com/links/links2.php?CATEGORY=Charities&CATEGORY2=Charities+UK
+http://discardedlies.com/entries/2005/05/jewish_heroism_in_the_red_army.php
+http://disch.zophar.net/
+http://discorder.citr.ca/reallive/04julylive.html
+http://discoverysedge.mayo.edu/yeast/
+http://discsunlimited.net/disc_golf_bags.html
+http://discuss.agonist.org/yabbse/index.php?action=recent
+http://discuss.andredurand.com/
+http://discuss.andredurand.com/?print-friendly=true
+http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=121211
+http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=133368
+http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=41267
+http://discuss.glasgowguide.co.uk/index.php?showtopic=81&st=30
+http://discuss.jarretthousenorth.com/newsItems/departments/Houseblog
+http://discuss.jarretthousenorth.com/newsItems/departments/WebDesign
+http://discuss.joelonsoftware.com/default.asp?biz.5.144298.17
+http://discuss.joelonsoftware.com/default.asp?jobs.10.138117.26
+http://discuss.joelonsoftware.com/default.asp?joel.3.141827.24
+http://discuss.worldbank.org/chat/view/8139
+http://discuss.worldbank.org/chat/view/8139&print=1
+http://discuss.worldbank.org/chat/view/8618
+http://discussion.autodesk.com/thread.jspa?threadID=372046
+http://discussion.brighthand.com/printthread.php?threadid=65430
+http://disini.i.ph/blogs/disini/index.php?item=what-can-70-law-students-do-for-free-speech-and-at-what-cost
+http://disneymeetings.disney.go.com/dwm/meetingtypes/overview?name=MeetingTypeOverviewPage
+http://disneyworld.disney.go.com/wdw/resorts/resortRecListing?id=AnimalKingdomLodgeResortRecreationListingPage
+http://disneyworld.disney.go.com/wdw/resorts/resortRecListing?id=AnimalKingdomLodgeResortRecreationListingPage&print=true
+http://display.lyrics.astraweb.com:2000/display.cgi?504_boyz..ballers..haters_gon_hate
+http://disquiet.com/
+http://disquiet.com/photek.html
+http://dissectleft.blogspot.com/
+http://distance_ed.unlv.edu/if/official_policies.html
+http://distrocenter.linux.com/article.pl?sid=04/10/27/146253&tid=127&tid=23&tid=128
+http://diveintoaccessibility.org/day_9_providing_additional_navigation_aids.html
+http://diveintomark.org/archives/2001/10/02/generation_xl
+http://diveintomark.org/archives/2002/12/18/the_right_ones_in_the_right_order
+http://diveintomark.org/archives/2003/05/05/why_we_wont_help_you
+http://diveintomark.org/archives/2003/07/18/dive_into_accountability
+http://diveintomark.org/archives/2003/12/03/cantor-sets
+http://diveintopython.org/dynamic_functions/stage6.html
+http://diversdiscount.com/shop/shopon.asp?category=Regulators
+http://diversityworking.com/career/Purchasing/Purchasing_Managers,_Buyers,_and_Purchasing_Agents/Purchasing_Manager.html
+http://diversityworking.com/career/Purchasing/Purchasing_Managers,_Buyers,_and_Purchasing_Agents/Purchasing_Specialist.html
+http://dividedwefall.blog-city.com/index.cfm
+http://divorcesupport.about.com/bl031898.htm
+http://divorcesupport.about.com/cs/adultery/a/aa092700.htm
+http://diyaudiocorner.tripod.com/imaging.htm
+http://dizzy.library.arizona.edu/ej/jpe/anthenv/internet.html
+http://dizzy.library.arizona.edu/ej/jpe/anthenv/newsletters.html
+http://djardine.blogspot.com/2004/11/nice-people-at-kino-recently-released.html
+http://djuna.nkino.com/kst/23.html
+http://djurdjevic.com/Bulletins/ibm-corporate/FB95-01.htm
+http://dkd.net/davekidd/politics/indpol.html
+http://dl.lib.brown.edu/temperance/rhetoric.html
+http://dli.mt.gov/phoenix/phoenixcontacts.asp
+http://dlis.gseis.ucla.edu/people/pagre/grad-school.html
+http://dll.umaine.edu/historytrail/site24.html
+http://dls.state.md.us/top_pgs/org_str/org_opa_fiscal_policy_anal.html
+http://dmany.convio.net/site/PageServer?pagename=2005nysessions
+http://dmc.engr.wisc.edu/courses/assessment/BB06-intro.html
+http://dmc.engr.wisc.edu/courses/hazards/BB02-09.html
+http://dmc.engr.wisc.edu/courses/response/BB08-07.html
+http://dmcar.com/
+http://dmoz.org/Arts/Crafts/Events/
+http://dmoz.org/Arts/Movies/Education/Film_Schools/
+http://dmoz.org/Arts/Movies/Organizations/Film_Societies/United_Kingdom/
+http://dmoz.org/Arts/Movies/Personal_Pages/
+http://dmoz.org/Arts/Performing_Arts/Acting/
+http://dmoz.org/Arts/Performing_Arts/Acting/Education/desc.html
+http://dmoz.org/Arts/Visual_Arts/Resources/Art_Consultants/
+http://dmoz.org/Arts/Visual_Arts/Resources/Private_Dealers/
+http://dmoz.org/Arts/Writers_Resources/Workshops_and_Courses/
+http://dmoz.org/Business/Financial_Services/Venture_Capital/
+http://dmoz.org/Business/Investing/Games/
+http://dmoz.org/Computers/Artificial_Intelligence/Natural_Language/
+http://dmoz.org/Games/Video_Games/Fighting/Ultimate_Fighting_Championship_Series/desc.html
+http://dmoz.org/Games/Video_Games/Word_Games/Browser_Based/
+http://dmoz.org/Games/desc.html
+http://dmoz.org/Health/Weight_Loss/
+http://dmoz.org/Home/Consumer_Information/Automobiles/Purchasing/
+http://dmoz.org/Kids_and_Teens/School_Time/Science/
+http://dmoz.org/Reference/Encyclopedias/Subject_Encyclopedias/Spartacus_Educational/The_Emancipation_of_Women/
+http://dmoz.org/Regional/North_America/United_States/Nebraska/desc.html
+http://dmoz.org/Science/Environment/Air_Quality/Indoor_Air_Quality/
+http://dmoz.org/Science/Environment/Education/Outdoor_Programs/
+http://dmoz.org/Science/Social_Sciences/Urban_and_Regional_Planning/People/
+http://dmoz.org/Shopping/Auctions/desc.html
+http://dmoz.org/Shopping/Home_and_Garden/Garden_Accessories/
+http://dmoz.org/Shopping/Sports/Motorsports/Auto_Racing/Parts_and_Accessories/
+http://dmoz.org/Society/Religion_and_Spirituality/Christianity/Denominations/Pentecostalism/desc.html
+http://dmoz.org/help/become.html
+http://dmoz.org/termsofuse.html
+http://dneiwert.blogspot.com/
+http://dneiwert.blogspot.com/2004_02_01_dneiwert_archive.html
+http://dneiwert.blogspot.com/2004_02_22_dneiwert_archive.html
+http://dneiwert.blogspot.com/2004_04_25_dneiwert_archive.html
+http://dneiwert.blogspot.com/2004_08_08_dneiwert_archive.html
+http://dnr.metrokc.gov/topics/map/MAPtopic.htm
+http://dobmeyer.com/lastditch.htm
+http://doc.advisor.com/doc/13221
+http://doc.bioperl.org/releases/bioperl-1.4/Bio/SeqIO/game/seqHandler.html
+http://doc.trolltech.com/3.0/tutorial1-13.html
+http://doc.trolltech.com/3.1/tutorial1-13.html
+http://doc.trolltech.com/3.2/qwidget.html
+http://doc.trolltech.com/3.2/tutorial1-13.html
+http://doc.trolltech.com/3.3/qwidget.html
+http://doc.trolltech.com/3.3/tutorial1-13.html
+http://doc.weblogs.com/
+http://doc.weblogs.com/2004/02/05
+http://docbug.com/blog/archives/000377.html
+http://docorder.ahsl.arizona.edu/illiad/faq.html
+http://docs.bluetitan.com/managersGuide/managerChapter4.html
+http://docs.bluetitan.com/managersGuide/managerChapter8.html
+http://docs.freebsd.org/44doc/usd/04.csh/paper-2.html
+http://docs.freebsd.org/44doc/usd/12.vi/paper-3.html
+http://docs.hp.com/en/B8844-90006/ch07s04.html
+http://docs.hp.com/en/J2744-90017/ch01s04.html
+http://docs.hp.com/en/T1227-90004/ch01s05.html
+http://docs.lib.duke.edu/maps/guides/trade_overview.html
+http://docs.markwest.me.uk/phpxref/pn80/_variables/
+http://docs.openlinksw.com/virtuoso/SELECTSTMT.html
+http://docs.python.org/tut/node6.html
+http://docs.sun.com/source/816-6884-10/chapter3.html
+http://docs.yahoo.com/docs/pr/release1045.html
+http://docs.yahoo.com/docs/pr/release1145.html
+http://docs.yahoo.com/docs/pr/release1160.html
+http://docs.yahoo.com/docs/pr/release1230.html
+http://docs.yahoo.com/docs/pr/release176.html
+http://docsouth.unc.edu/gilmerlet/gilmer.html
+http://docsouth.unc.edu/jacobs/support4.html
+http://docsouth.unc.edu/nc/fairresults/fairresults.html
+http://doctor.cardiovalens.com/pickofthemonth/pm-cardiovascular/pmnewsindex.asp?NAV=12
+http://doctor.cardiovalens.com/pickofthemonth/pm-cardiovascular/pmnewsindex.asp?NAV=17
+http://doctor.cardiovalens.com/pickofthemonth/pm-cardiovascular/pmnewsindex.asp?NAV=39
+http://doctorc.blogspot.com/
+http://doctorjob.com/essential_advice/index.asp?Page=3&hid=11&fid=76&action=view
+http://doctorjob.com/workexperience/profile_template.asp?ID=586&Pub=
+http://documents.cancer.org/232.00/
+http://documents.wolfram.com/mathematica/Add-onsLinks/StandardPackages/Statistics/DescriptiveStatistics.html
+http://dodmwd.lackland.af.mil/needs.htm
+http://doe.state.wy.us/lmi/0201/a1.htm
+http://doe.state.wy.us/lmi/0796/0796a1.htm
+http://doesitreallymatter.typepad.com/
+http://dogsnot.net/mt/archives/000924.html
+http://doi.ieeecomputersociety.org/10.1109/2945.489381
+http://doi.ieeecomputersociety.org/10.1109/40.946681
+http://doi.ieeecomputersociety.org/10.1109/52.23131
+http://doi.ieeecomputersociety.org/10.1109/52.589247
+http://doi.ieeecomputersociety.org/10.1109/52.636674
+http://doi.ieeecomputersociety.org/10.1109/52.922721
+http://doi.ieeecomputersociety.org/10.1109/6294.793668
+http://doi.ieeecomputersociety.org/10.1109/6294.988699
+http://doi.ieeecomputersociety.org/10.1109/93.848430
+http://doi.ieeecomputersociety.org/10.1109/AFGR.1996.557289
+http://doi.ieeecomputersociety.org/10.1109/CAHPC.2003.1250342
+http://doi.ieeecomputersociety.org/10.1109/CBMS.1997.596433
+http://doi.ieeecomputersociety.org/10.1109/HICSS.1996.495306
+http://doi.ieeecomputersociety.org/10.1109/HUMO.2000.897373
+http://doi.ieeecomputersociety.org/10.1109/ICCD.2004.1347913
+http://doi.ieeecomputersociety.org/10.1109/ICCIMA.2001.970469
+http://doi.ieeecomputersociety.org/10.1109/IWRSP.2003.1207038
+http://doi.ieeecomputersociety.org/10.1109/MCG.2005.55
+http://doi.ieeecomputersociety.org/10.1109/MCG.2005.69
+http://doi.ieeecomputersociety.org/10.1109/MIC.1997.10046
+http://doi.ieeecomputersociety.org/10.1109/MIS.2003.10005
+http://doi.ieeecomputersociety.org/10.1109/MIS.2005.34
+http://doi.ieeecomputersociety.org/10.1109/MIS.2005.9
+http://doi.ieeecomputersociety.org/10.1109/MITP.2003.1235610
+http://doi.ieeecomputersociety.org/10.1109/MITP.2004.82
+http://doi.ieeecomputersociety.org/10.1109/MM.2003.1261387
+http://doi.ieeecomputersociety.org/10.1109/NRC.1997.10014
+http://doi.ieeecomputersociety.org/10.1109/PCCGA.2001.962891
+http://doi.ieeecomputersociety.org/10.1109/PERCOM.2004.1276867
+http://doit.circles.com/corp/ne_article_page.asp?article=Destination
+http://doityourself.com/
+http://doityourself.com/appliance/kitchenappliancestotest.htm
+http://doityourself.com/auto/tiretrouble.htm
+http://doityourself.com/brick/brickeffects.htm
+http://doityourself.com/carpet/carpettexture.htm
+http://doityourself.com/deck/5deckledgerwall.htm
+http://doityourself.com/electric/tvanten.htm
+http://doityourself.com/faux/shabbypainttechniques.htm
+http://doityourself.com/flowers/containergardening101.htm
+http://doityourself.com/frugal/bedlabelingrules.htm
+http://doityourself.com/frugal/index.shtml
+http://doityourself.com/furniture/bigchair4.htm
+http://doityourself.com/furniture/oldstuff.htm
+http://doityourself.com/gardentools/rainmaking.htm
+http://doityourself.com/lumber/restoringcabinsiding.htm
+http://doityourself.com/outdoors/howtobuyandplanttrees.htm
+http://doityourself.com/paintprep/sandblasting.htm
+http://doityourself.com/plans/critiquingfloorplan.htm
+http://doityourself.com/plumbing/waitingforplumber.htm
+http://doityourself.com/resale/lastminutejitters.htm
+http://doityourself.com/vegetables/awintervegetablegarden.htm
+http://doityourself.com/woodfinish/finish.htm
+http://doityourself.com/woodfinish/repairfurnituresurfaces.htm
+http://doityourself.com/woodfinish/strip.htm
+http://dokuja.com/crazyangels/faq.html
+http://dol.state.vt.us/gopher_root1/000000/supct/164/op.93-395
+http://dolcn.com/data/eng_2/icn_2003/2005-06/1118230301.html
+http://dolcn.com/data/eng_2/news_2001/2005-01/1106661324.html
+http://dollar.ecom.cmu.edu/p3pcritique/
+http://dolls-cat.ioffer.com/c/Phoenix-85021/Dolls-225000
+http://dolphin.upenn.edu/~upennca/revelations/rev_forgiveness.html
+http://dolphin.upenn.edu/~wpswing/pastshows/spring2005.html
+http://dolphincoast.kzn.org.za/dolphin/about/43.xml
+http://domains.euroforum.com/sipo/eng/review/programm.asp
+http://dominionpaper.ca/features/2004/09/30/arrested_d.html
+http://domino.lancs.ac.uk/EdRes/Paulsblog.nsf/articles/DOMK-65CLFS
+http://domino.research.ibm.com/Comm/wwwr_ponder.nsf/solutions/December2000.html
+http://domino.research.ibm.com/Comm/wwwr_ponder.nsf/solutions/May2004.html
+http://domino.swin.edu.au/cd31.nsf/Open/MF99
+http://domino.un.org/UNISPAL.NSF/0/c51a9b87b82981d705256613006d7f44?OpenDocument&Click=
+http://don.yacktman.org/blog/archives/2005/06/07/free-web-objects
+http://donatacom.com/papers/pomo21.htm
+http://donatacom.com/papers/pomo34.htm
+http://donkey2004.blogspot.com/
+http://donmottin.com/trainingaids.html
+http://donor.ucsd.edu:7873/teleinstrument/tutorial/tutorial.html
+http://dontsweat.com/ask/
+http://dontsweat.com/ask/archive.html
+http://doodle.geckotribe.com/interview.php3?topic=et
+http://dorothaharried.blogspot.com/2004_11_01_dorothaharried_archive.html
+http://dosfan.lib.uic.edu/ERC/briefing/daily_briefings/1991/9104/069.html
+http://dosfan.lib.uic.edu/ERC/briefing/daily_briefings/1991/9112/188.html
+http://dosfan.lib.uic.edu/ERC/briefing/press_statements/9611/961118ps2.html
+http://dosfan.lib.uic.edu/ERC/economics/commercial_guides/Nepal.html
+http://dosfan.lib.uic.edu/ERC/economics/statements/940907.html
+http://dosfan.lib.uic.edu/ERC/economics/trade_reports/1994/Tajikistan.html
+http://dosfan.lib.uic.edu/ERC/law/Covenant94/Specific_Articles/08.html
+http://dosfan.lib.uic.edu/ERC/law/INC/1994/08.html
+http://dosfan.lib.uic.edu/ERC/law/INC/1995/08.html
+http://dosfan.lib.uic.edu/ERC/law/INC/1995/09.html
+http://dosfan.lib.uic.edu/ERC/visa_bulletin/9503bulletin.html
+http://dosfan.lib.uic.edu/ERC/visa_bulletin/9506bulletin.html
+http://dosfan.lib.uic.edu/ERC/visa_bulletin/9508bulletin.html
+http://dosfan.lib.uic.edu/ERC/visa_bulletin/9909bulletin.html
+http://dot.kde.org/1077542418/
+http://dot.tucsonaz.gov/construction/
+http://dotavery.com/blog/
+http://dotfaf.com/archives/2003_03.php
+http://dotnet.org.za/kevint/archive/2004/02/23/475.aspx
+http://dotnet.sys-con.com/read/39039.htm
+http://dotnetjunkies.com/WebLog/anoras/archive/2004/09/18/26046.aspx
+http://dotnetjunkies.com/WebLog/deepspin/archive/2004/12/17/37445.aspx
+http://dotnetjunkies.com/WebLog/jkimble/archive/2005/01/17/45072.aspx
+http://dotnetjunkies.com/WebLog/mjordan/
+http://dotnetjunkies.com/WebLog/sriram/archive/2005/01/03/41183.aspx
+http://doubledeckerstroller.com/order1.html
+http://dougiamas.com/writing/education-reform/
+http://dougsmith.ancients.info/scan.html
+http://dougwimbish.com/news.html
+http://downhillbattle.org/
+http://downhillbattle.org/node/view/247
+http://download.cnet.com/downloads/0-10106-108-63806.html
+http://downloads-zdnet.com.com/sort/3150-2194-0-1-1.html
+http://downloads-zdnet.com.com/sort/3150-6677-0-1-2.html
+http://downloads.vnunet.com/download/6088-8-hitsd.html
+http://downtownme.com/event/event.asp?strFunction=BuildEventFromCategory&intCategoryId=9&intFrom=1
+http://dpfwiw.com/c-2000z/lens_cap/
+http://dpp.org.uk/health.asp?subsection=memall&cmp=cmp00047
+http://dpsinfo.com/dps/new.html
+http://dqd.com/~mayoff/other-authors/coming-crisis.html
+http://dr-amy.com/rich/STS-107/
+http://dragons.scout.com/2/115809.html
+http://drclas.fas.harvard.edu/index.pl/about/directions/driving
+http://drclas.fas.harvard.edu/index.pl/santiago/events/students/0304
+http://drclas.fas.harvard.edu/revista/?issue_id=2&article_id=495
+http://drcwww.uvt.nl/dbi/instructie/eu/en/T6.htm
+http://dreamcast.ign.com/objects/013/013552.html
+http://dreamcast.ign.com/objects/013/013552.html?ui=cb_like_04
+http://dreamcast.stationplay.com/games2/Alone_in_the_Dark:_The_New_Nightmare.html
+http://dreamsongs.com/OOPSLA2005/GtSS.html
+http://dreamweaverfever.com/soap/turningthetables/
+http://drezner.blogspot.com/
+http://drhardten.eyemdlink.com/NewsArticle.asp?NewsID=37
+http://drinkboy.editthispage.com/
+http://drinkthis.typepad.com/
+http://drinkthis.typepad.com/main/2004/02/not_following_t.html
+http://drinkthis.typepad.com/main/2004/05/outrage_over_th.html
+http://drinkthis.typepad.com/main/2004/06/too_much_naivet.html
+http://drinkthis.typepad.com/main/2004/07/
+http://drinkthis.typepad.com/main/2004/08/the_sword_of_th.html
+http://drinkthis.typepad.com/main/2004/10/an_attempt_at_d.html
+http://drjohng.com/exercise.htm
+http://drkevinclerico.weblogger.com/stories/storyReader$92
+http://drkoop.com/ency/article/003853.htm
+http://drn.digitalriver.com/category.php%5Baction%5Dbrowse&i=350&id=237&f=%7C%7C%7C%7C&s=product.date_released%7CDESC%5BSiteID%5Ddriverguide
+http://drsordid.blogspot.com/
+http://drugcaucus.senate.gov/colombia03santos.html
+http://druidry.org/obod/camps/whats_it_like.html
+http://drupal.org/node/16207
+http://drupal.org/node/23799
+http://drydredgers.org/jack9610.htm
+http://drzeus.best.vwh.net/Writing/Dreams/Dreams6.html
+http://ds.datastarweb.com/ds/products/datastar/sheets/dbzz.htm
+http://ds.datastarweb.com/ds/products/datastar/sheets/jord.htm
+http://dsal.uchicago.edu/techinfo.html
+http://dsbs.sba.gov/pro-net/dsp_profile.cfm?User_Id=P0222791
+http://dsc.discovery.com/news/briefs/20040920/mummydrink.html
+http://dsei.janes.com/public/login/dseiRegister.html
+http://dsl.broadbandnational.com/arkansas.php?city=Cherokee%20Village
+http://dsl.broadbandnational.com/arkansas.php?city=Lake%20Village
+http://dsmc.info/sale.shtml
+http://dsonline.computer.org/0201/ic/wp102wire.htm
+http://dsonline.computer.org/0412/d/w6towp.htm
+http://dspace.dial.pipex.com/bob.dunning/caught6.htm
+http://dspace.dial.pipex.com/juliet.e.mckenna/articlecharacterbuilding.html
+http://dspace.dial.pipex.com/town/road/xoq83/covletsi770.htm
+http://dspace.dial.pipex.com/town/square/de95/motor/07000006.htm
+http://dspace.dial.pipex.com/town/terrace/adw03/peel/people/owen.htm
+http://dubai.civicconcepts.org/application.html
+http://dublin.goireland.com/Scripts/low/xq/asp/cat.0/areatype.T/areaid.3151/SubjectID.65/qx/listing.htm
+http://dublin.usembassy.gov/ireland/amb_dcuapril15.html
+http://dublin.usembassy.gov/ireland/amb_rtenov7.html
+http://dublin.usembassy.gov/ireland/ambspeech_iccusa.html
+http://dublincore.org/groups/corporate/Seattle/
+http://dublincore.org/resources/faq/
+http://dublintourist.com/Info.cgi/banko003.shtml
+http://dueprocess.org/get-results.php
+http://duffill.blogs.com/beyond_crayons/
+http://duke.usask.ca/~semenoff/myprints.html
+http://dukemednews.duke.edu/global/download.pdf?ids=184
+http://dukemednews.duke.edu/news/article.php?id=184
+http://dukemednews.duke.edu/news/article.php?id=8476
+http://dukemednews.duke.edu/news/article.php?id=9029
+http://dukemednews.duke.edu/news/article.php?id=9029&index=2
+http://dunamai.com/Feedback/fddy_questionnaire.htm
+http://duncanlong.com/science-fiction-fantasy-short-stories/gog.html
+http://dungeonmaker.sourceforge.net/manual/manual3.html
+http://dunndailyrecord.com/main.asp?SectionID=2&SubSectionID=10&ArticleID=63458
+http://duns.thatbitch.com/crypt/archive-092003.shtml
+http://durbin.senate.gov/gitmo.cfm
+http://dustinthelight.timshelarts.com/lint/001994.html
+http://dvd.aldokkan.com/2IQJ8W.html
+http://dvd.box.sk/
+http://dvd.ign.com/articles/491/491629p1.html
+http://dvd.monstersandcritics.com/news/article_6732.php/Team_America_comes_to_DVD_and_we_are_giving_them_away_!
+http://dvdtimes.co.uk/content.php?contentid=55518
+http://dvdxcopy.afterdawn.com/thread_view.cfm/83138
+http://dwcc.dataworld.com.hk/techsmith.asp
+http://dwergs.com/
+http://dwlt.net/archives/cat_scotland.html
+http://dx.doi.org/10.1002/scj.1053
+http://dx.doi.org/10.1002/scj.1166
+http://dx.doi.org/10.1038/nn1078
+http://dx.doi.org/10.1046/j.1463-1318.2001.00287.x
+http://dx.doi.org/10.1103%2FPhysRevE.56.4467
+http://dx.doi.org/10.1103/PhysRevB.69.220403
+http://dx.doi.org/10.1145/320881.320884
+http://dx.doi.org/10.1145/330560.330669
+http://dx.doi.org/10.1163/156855301742012
+http://dyknow.com/teacherstipsfull.htm
+http://dynamic.gamespy.com/~starmada/stgu/index.php?p=/features/invasion
+http://dynamic.gamespy.com/~ww2ec/content.php?content.2
+http://dynamic.ropine.com/yo/tech/security/metaphor.html
+http://dynamic2.gamespy.com/~reactor4/phpBB2/viewtopic.php?t=211
+http://e-bility.com/articles/mar00.shtml
+http://e-collection.ethbib.ethz.ch/show?type=incoll&nr=971&part=text
+http://e-docs.bea.com/wlintegration/v2_1/aiuser/3usruse.htm
+http://e-government.cabinetoffice.gov.uk/Resources/WebGuidelines/WebGuidelinesArticle/fs/en?CONTENT_ID=4003964&chk=z5zGXP
+http://e-magazine.adoption.com/articles/181/i-am-so-glad-you-are-my-son.php
+http://e-reading.gtslearning.com/employer.html
+http://e-thepeople.org/article/29554/
+http://e.webring.com/hub?ring=intelbrief
+http://e3.playstation.com/news/releases/nws_003.aspx
+http://eagle.cdu.edu.au/ntu/apps/ntuinfo.nsf/WWWView/Policy_191
+http://eagles.mostvaluablenetwork.com/index.php?p=7
+http://earlyamerica.com/review/2002_summer_fall/spain_english.htm
+http://earlyamerica.com/review/2002_winter_spring/ghent_treaty.htm
+http://earlyamerica.com/review/fall98/original.html
+http://earlyradiohistory.us/1912dub.htm
+http://earlyradiohistory.us/1917serv.htm
+http://earlyradiohistory.us/1963hw25.htm
+http://ears.ashyre.com/ears-16.html
+http://earth.jsc.nasa.gov/sseop/DbFields.htm
+http://earthcalls.com/cgi-bin/kombuchapages/mainpage.pl/culture-Kambucha.html
+http://earthcalls.com/cgi-bin/kombuchapages/mainpage.pl?kombucha=green&shane=culture&manchurian=kombucha
+http://earthcalls.com/cgi-bin/kombuchapages/mainpage.pl?kombucha=organic&who=green
+http://earthcalls.com/cgi-bin/kombuchapages/mainpage.pl?kombucha=where&kombucha=kombucha&brewing=kombucha
+http://earthday.wilderness.org/teachers/postings.htm
+http://eartheasy.com/article_green_consumers.htm
+http://earthhopenetwork.net/association_of_state_green_parties.htm
+http://earthlingsoft.net/ssp/blog/2003/05/no_spin
+http://earthlink.com.com/HammerHead-Rhythm-Station/3000-2170-10027874.html
+http://earthlink.com.com/Symantec,+Veritas+reach+out+to+investors/2100-7355_3-5513770.html
+http://earthmama.bigguymedia.com/200312-index.php
+http://earthmeanders.blogspot.com/2004_05_01_earthmeanders_archive.html
+http://earthobservatory.nasa.gov/Study/Hanta/
+http://earthobservatory.nasa.gov/Study/footprint/
+http://earthobservatory.nasa.gov/Study/scatter/
+http://earthquake.usgs.gov/4kids/sciencefair.html
+http://earthquake.usgs.gov/eqinthenews/2004/usslav/
+http://earthquake.usgs.gov/faq/plates.html
+http://earthquake.usgs.gov/recenteqsww/Quakes/usslav.htm
+http://earthtones.com/data/138/pages/residential.asp
+http://east_west_dialogue.tripod.com/vattel/id5.html
+http://eastbay.bizjournals.com/eastbay/stories/2004/08/09/story2.html
+http://eastbay.bizjournals.com/eastbay/stories/2005/06/06/story3.html
+http://eastbay.bizjournals.com/site_map/eastbay_sitemap_2.html
+http://eastbay.bizjournals.com/site_map/eastbay_sitemap_53.html
+http://eastbay.bizjournals.com/site_map/eastbay_sitemap_85.html
+http://eastbay.bizjournals.com/site_map/eastbay_sitemap_93.html
+http://eastbay.bizjournals.com/site_map/eastbay_sitemap_94.html
+http://eastbayexpress.com/issues/2004-10-06/news/feature_print.html
+http://eastbethel.govoffice.com/
+http://eastcoastagony.weblogs.us/archives/2004_09.html
+http://easyweb.easynet.co.uk/~aburnham/eng/seahenge.htm
+http://easyweb.easynet.co.uk/~have.feet/boxing/boxing.html
+http://easyweb.easynet.co.uk/~iany/consultancy/usecase_tree/usecase.htm
+http://easyweb.easynet.co.uk/~jbeggsoc/jbshome.html
+http://easyweb.easynet.co.uk/~lightsabre/spiderandfly.htm
+http://easyweb.easynet.co.uk/~ursa/philos/cert06.htm
+http://eba-stats.com/coachcorner.htm
+http://ebarrelracing.com/articles/index.php/2005/01/19/p1433
+http://ebaystrategies.blogs.com/ebay_strategies/2004/11/germany_says_eb.html
+http://ebcd.cuyahogalibrary.org/00000028-0000-0000-0000-000000000001/10/94/en/Help-FAQ-Format25.htm
+http://ebeltz.net/classes/unit-3.html
+http://ebem.org/definitions.html
+http://eber.ed.ornl.gov/look2green_staff.html
+http://ebizwhiz-publishing.com/articles/seo25.htm
+http://ebizwhiz-publishing.com/ebooks3.htm
+http://eblackstudies.org/intro/chapter6.htm
+http://eblackstudies.org/intro/chapter8.htm
+http://eblog.bluelemur.com/index.php?p=89
+http://ebn.bmjjournals.com/cgi/content/extract/5/4/119
+http://ebn.bmjjournals.com/cgi/content/full/3/4/127
+http://ebonyoa.home.att.net/guidebook.htm
+http://ebooks.kcls.org/00000012-0000-0000-0000-000000000001/10/56/en/Help-FAQ-Format25.htm
+http://ebooks.sjlibrary.org/00000022-0000-0000-0000-000000000001/10/88/en/Help-FAQ-Format25.htm
+http://ecaroh.com/calypso/ahwannafall_lyrics.htm
+http://eccc.uni-trier.de/eccc/info/Conferences/FSTTCS96.FP.html
+http://ecen.com/eee13/crisisom.htm
+http://ecen.com/eee9/ecoterme.htm
+http://eces.org/articles/000295.php
+http://echeng.com/journal/index.php?p=618
+http://echidneofthesnakes.blogspot.com/2004_02_01_echidneofthesnakes_archive.html
+http://echievements.com/articles/2893
+http://eclub.uky.edu/readings.php
+http://eco.gn.apc.org/pubs/TomWorld.html
+http://ecoaccess.org/info/defs/
+http://ecoaccess.org/info/wildlife/pubs/esa.html
+http://ecolodgical.yourhomeplanet.com/create_html/issue/operation.htm
+http://ecolu-info.unige.ch/archives/envcee96/0234.html
+http://ecommerce.insightin.com/web_design/page_design.html
+http://ecommerce.taipeitimes.com/ecom/industry/Exhibition/Suplement/giftware/1
+http://econ-www.mit.edu/faculty/download_book.php?id=42
+http://econ-www.mit.edu/faculty/download_pdf.php?id=780
+http://econ.lse.ac.uk/staff/amanning/work/unemploy.html
+http://econ.ucalgary.ca/courses/outlines/300/03/32501F03.htm
+http://econ.worldbank.org/view.php?id=67&topic=21
+http://econjustice.net/wbbb/links/videoresources.htm
+http://econjustice.net/wbbb/whojoined/marianistcouncil_res.htm
+http://econjustice.net/wbbb/whojoined/takomapark.htm
+http://econlog.econlib.org/archives/2004/10/prescott_on_tax.html
+http://econlog.econlib.org/archives/2005/03/how_everyone_ca.html
+http://econlog.econlib.org/archives/2005/05/i_know_its_utte.html
+http://econlog.econlib.org/archives/2005/06/france_and_germ.html
+http://econlog.econlib.org/archives/2005/06/krugmans_got_a.html
+http://econometricexercises.econ.yale.edu/preface.htm
+http://economicallysound.com/case_studies/
+http://economics.about.com/od/taxesandeconomicgrowth/a/mile_tax.htm
+http://economictimes.indiatimes.com/articleshow/43871545.cms
+http://economictimes.indiatimes.com/articleshow/996116.cms
+http://economist.com/World/na/displayStory.cfm?story_id=3970753
+http://economy.gov.az/HTML/Investments/
+http://econpapers.repec.org/paper/cprceprdp/2910.htm
+http://econpapers.repec.org/paper/fthstanho/e-92-22.htm
+http://econpapers.repec.org/paper/woppennin/96-03.htm
+http://econwpa.wustl.edu/eprints/mic/papers/9612/9612001.abs
+http://ecoustics-cnet.com.com/IBMs+Blue+GeneL+goes+on+sale/2100-7337_3-5442285.html
+http://ecoustics-cnet.com.com/Nintendo+reacts+to+DS+demand+as+orders+rise/2100-1043_3-5453109.html
+http://ecpc.ucsd.edu/projects/pdc/pdc_user_manual/A3.burganUserManual.htm
+http://ecrp.uiuc.edu/v2n2/saluja.html
+http://ecrp.uiuc.edu/v3n2/dockett.html
+http://ecrp.uiuc.edu/v5n1/sandberg.html
+http://ecs.bathspa.ac.uk/services/students_union.htm?pagevalue=eight
+http://ecsong.ca/cookbook.html
+http://ecugreatcareers.com/postgrads/newcourses05.htm
+http://ecumene.org/IIS/csss36.htm
+http://ecumene.org/IIS/csss50.htm
+http://ed-02.ams.eng.osaka-u.ac.jp/lab/introduction/admissions_eng.htm
+http://ed-thelen.org/comp-hist/Reckoners.html
+http://ed-web3.educ.msu.edu/newed/newed/fall97/new.htm
+http://ed-web3.educ.msu.edu/reports/ed-researchrep/02/april-report3.htm
+http://ed-web3.educ.msu.edu/ysi/Spotlight2002/how_to_minimize_risks_for_athlet.htm
+http://edbrenegar.typepad.com/universityofwom/
+http://edc.usgs.gov/products/satellite.html
+http://edc.usgs.gov/products/satellite/declass1.html
+http://edf-project.sourceforge.net/news.html
+http://edgc.odsa.com/dexholedescp.htm
+http://edge.edge.net/~dphillip/SanFran.html
+http://edinbane-self-catering.co.uk/tigh_dubh.htm
+http://edinburghnews.scotsman.com/business.cfm?id=687692005
+http://edinburghnews.scotsman.com/edinburgh.cfm?id=363502005
+http://edinburghnews.scotsman.com/index.cfm?id=470792005
+http://edinburghnews.scotsman.com/index.cfm?id=666792005
+http://edinburghnews.scotsman.com/index.cfm?id=686812005
+http://edinburghnews.scotsman.com/index.cfm?id=686862005
+http://edinburghnews.scotsman.com/opinion.cfm?id=962492004&20040819133709
+http://edinburghnews.scotsman.com/sport.cfm?id=686572005
+http://edis.ifas.ufl.edu/FS075
+http://edis.ifas.ufl.edu/IN004
+http://edition.cnn.com/2001/WORLD/europe/07/22/genoa.oakley/
+http://edition.cnn.com/2003/US/West/10/26/california.wildfire/
+http://edition.cnn.com/2003/WORLD/asiapcf/east/03/31/willy.column/
+http://edition.cnn.com/2004/ALLPOLITICS/10/29/kerry.friday/
+http://edition.cnn.com/2004/TECH/space/10/21/astronauts.crew.change/
+http://edition.cnn.com/2004/WORLD/asiapcf/12/29/asia.quake/
+http://edition.cnn.com/2005/LAW/01/10/blake.trial.ap/
+http://edition.cnn.com/2005/SHOWBIZ/Movies/01/14/globes.advancer/
+http://edition.cnn.com/2005/SPORT/05/18/tennis.mailbag.11/
+http://edition.cnn.com/2005/WORLD/asiapcf/06/20/koreas.meeting/
+http://edition.cnn.com/2005/WORLD/meast/05/25/cnna.abbas/
+http://edition.cnn.com/ALLPOLITICS/stories/1999/08/02/tax.cuts/
+http://edition.cnn.com/ALLPOLITICS/stories/1999/10/13/test.ban.02/
+http://edition.cnn.com/HEALTH/library/DS/00285.html
+http://edition.cnn.com/SPECIALS/2000/democracy/bigger.picture/stories/solvable/
+http://edition.cnn.com/SPECIALS/2002/terror.victims/page8.html
+http://edition.cnn.com/money/2005/06/21/news/newsmakers/prisons_state/
+http://editorialmatters.lee.net/articles/2005/01/14/stories/columns/9zcol139.txt
+http://editorialmatters.lee.net/articles/2005/01/21/stories/columns/9zcol139.txt
+http://editorialmatters.lee.net/articles/2005/01/21/stories/columns/9zcol165.txt
+http://editorialmatters.lee.net/articles/2005/01/21/stories/top_stories/9ynews129.txt
+http://editorialmatters.lee.net/articles/2005/01/21/stories/top_stories/9ynews157.txt
+http://editorialmatters.lee.net/articles/2005/01/21/stories/top_stories/9znews017.txt
+http://editorialmatters.lee.net/articles/2005/01/21/stories/top_stories/9znews024.txt
+http://editorials.arrivenet.com/pro/article.php/3449.html
+http://editorials.arrivenet.com/tec/article.php/3462.html
+http://edmonton.ymca.ca/donations/8.0_donation_info.htm
+http://edreform.com/press/990903bts.htm
+http://edrev.asu.edu/reviews/rev191.htm
+http://edrev.asu.edu/reviews/rev358.htm
+http://edschool.csuhayward.edu/departments/ted/ted/courses-single.html
+http://edsearch.pbs.org/Eas/2003/res_det.htm?rk=1305&rc=230
+http://edsearch.pbs.org/Eas/2003/res_det.htm?rk=4064&rc=1
+http://edtech.texterity.com/article/200505/63/
+http://edu.sina.com.cn/en/2004-09-03/25620.html
+http://educate-yourself.org/
+http://educate-yourself.org/nwo/
+http://educate-yourself.org/nwo/illuminatiagendabestoverviewyet8jun02.shtml
+http://educate-yourself.org/zsl/atmosphereisexpanding05jul04.shtml
+http://educate-yourself.org/zsl/veday08may05.shtml
+http://education.arm.gov/teacherslounge/background/impacts.stm
+http://education.calumet.purdue.edu/Vockell/CAI/Cai2/cai2style.htm
+http://education.curtin.edu.au/iier/iier8/palmer.html
+http://education.deakin.edu.au/music_ed/history/default.htm
+http://education.gsfc.nasa.gov/eclipse/pages/faq.html
+http://education.guardian.co.uk/Education/higher
+http://education.guardian.co.uk/Observer/education/story/0,12554,820319,00.html
+http://education.guardian.co.uk/academicexperts/story/0,1392,590174,00.html
+http://education.guardian.co.uk/alevels2002/story/0,12321,795777,00.html
+http://education.guardian.co.uk/alevels2002/story/0,12321,806415,00.html
+http://education.guardian.co.uk/bullying/story/0,15408,1359674,00.html
+http://education.guardian.co.uk/chooseadegree/story/0,11601,763227,00.html
+http://education.guardian.co.uk/classroomviolence/story/0,12388,1447424,00.html
+http://education.guardian.co.uk/egweekly/story/0,5500,1076708,00.html
+http://education.guardian.co.uk/egweekly/story/0,5500,1126296,00.html
+http://education.guardian.co.uk/egweekly/story/0,5500,1186053,00.html
+http://education.guardian.co.uk/egweekly/story/0,5500,1208580,00.html
+http://education.guardian.co.uk/egweekly/story/0,5500,1233158,00.html
+http://education.guardian.co.uk/egweekly/story/0,5500,1254316,00.html
+http://education.guardian.co.uk/egweekly/story/0,5500,1397261,00.html
+http://education.guardian.co.uk/egweekly/story/0,5500,1474862,00.html
+http://education.guardian.co.uk/egweekly/story/0,5500,973730,00.html
+http://education.guardian.co.uk/elearning/story/0,10577,1089683,00.html
+http://education.guardian.co.uk/elearning/story/0,10577,1387225,00.html
+http://education.guardian.co.uk/further/opinion/story/0,14037,1479969,00.html
+http://education.guardian.co.uk/higher/
+http://education.guardian.co.uk/higher/careers/story/0,9856,480836,00.html
+http://education.guardian.co.uk/higher/careers/story/0,9856,912847,00.html
+http://education.guardian.co.uk/higher/languages/story/0,9852,711393,00.html
+http://education.guardian.co.uk/higher/news/story/0,9830,1264662,00.html
+http://education.guardian.co.uk/higher/news/story/0,9830,1505602,00.html
+http://education.guardian.co.uk/higher/postgraduate/story/0,12848,1505603,00.html
+http://education.guardian.co.uk/higher/profile/story/0,11109,1490429,00.html
+http://education.guardian.co.uk/higher/research/story/0,9865,1019867,00.html
+http://education.guardian.co.uk/higher/sciences/story/0,12243,1434930,00.html
+http://education.guardian.co.uk/higher/socialsciences/story/0,9846,757441,00.html
+http://education.guardian.co.uk/newschools/story/0,14729,1495943,00.html
+http://education.guardian.co.uk/ofsted/story/0,7348,847467,00.html
+http://education.guardian.co.uk/policy/story/0,15572,1357861,00.html
+http://education.guardian.co.uk/primaryeducation/story/0,11146,1076896,00.html
+http://education.guardian.co.uk/primaryresources/0,12430,791096,00.html
+http://education.guardian.co.uk/sats/story/0,13294,1108651,00.html
+http://education.guardian.co.uk/sats/story/0,13294,1129957,00.html
+http://education.guardian.co.uk/schoolappeals/story/0,7348,539835,00.html
+http://education.guardian.co.uk/schoolfunding/story/0,13292,1270090,00.html
+http://education.guardian.co.uk/schoolmeals/story/0,15643,1469550,00.html
+http://education.guardian.co.uk/schools/learn/story/0,14122,1397497,00.html
+http://education.guardian.co.uk/schools/story/0,5500,1254491,00.html
+http://education.guardian.co.uk/schools/story/0,5500,707040,00.html
+http://education.guardian.co.uk/secondaries/story/0,12389,916063,00.html
+http://education.guardian.co.uk/specialreports/grammarschools/story/0,5500,1474985,00.html
+http://education.guardian.co.uk/specialreports/lecturerspay/story/0,5500,1393821,00.html
+http://education.guardian.co.uk/specialreports/postgrad/0,5477,330227,00.html
+http://education.guardian.co.uk/students/finance/story/0,12728,1392219,00.html
+http://education.guardian.co.uk/students/graduation/story/0,12760,1376294,00.html
+http://education.guardian.co.uk/tefl/story/0,5500,1170569,00.html
+http://education.guardian.co.uk/thebaccalaureate/story/0,13399,1150621,00.html
+http://education.guardian.co.uk/universitiesincrisis/story/0,12028,718839,00.html
+http://education.guardian.co.uk/universityaccess/story/0,10670,888192,00.html
+http://education.hp.com/msbl.htm
+http://education.independent.co.uk/further/story.jsp?story=579037
+http://education.independent.co.uk/gap_year/story.jsp?story=552120
+http://education.independent.co.uk/low_res/story.jsp?story=647236&host=16&dir=946
+http://education.staffordshire.gov.uk/ProceduresAndGuidance/Procedures/HealthAndSafety/FirstAidRegulations.htm
+http://education.state.nj.us/rc/rc04/definitions.htm
+http://education.umn.edu/Kin/faculty/mwade.htm
+http://education.umn.edu/news/Points/2004-12/features.html
+http://education.yahoo.com/college/essentials/articles/college/campus_visit.html
+http://education.yahoo.com/college/essentials/articles/grad/gradessaysecrets.html
+http://education.yahoo.com/college/essentials/articles/grad/graduate-financialaid.html
+http://education.yahoo.com/college/student_life/cliffsnotes/commentary/dorian_gray.html
+http://education.yahoo.com/reference/shakespeare/plays/4142.html
+http://educationforum.ipbhost.com/lofiversion/index.php/t848.html
+http://educationnews.proboards33.com/index.cgi?board=general&action=post&num=1094324838&quote=1094568451&start=0
+http://educationseek.com/privateschools.html
+http://educationseek.com/schools/Private_Schools/
+http://educationusa.state.gov/life/housing/off_campus.htm
+http://educationusa.state.gov/predeparture/travel/pack.htm
+http://edugreen.teri.res.in/misc/poem/poemview.htm
+http://edumacation.com/MaryKayOpinion202
+http://edumart.com/bookmark/
+http://eduscapes.com/42explore/horse.htm
+http://eduscapes.com/42explore/invasive.htm
+http://eduscapes.com/sessions/liferafts/liferafts.html
+http://edushop.edu4kids.com/catalog/product_info.php?products_id=274
+http://eduwight.iow.gov.uk/curriculum/core/science/Keystage3/24SUBJECT.asp
+http://eduwight.iow.gov.uk/curriculum/core/science/keystage3/24subject.asp
+http://edweb.sdsu.edu/people/cguanipa/amigos/answer.html
+http://edwinwhitedesigns.com/botgardenarticle.htm
+http://edworkforce.house.gov/hearings/106th/ecyf/21century21000/gunderson.htm
+http://edworkforce.house.gov/hearings/108th/sed/misexpl42903/allen.htm
+http://edworkforce.house.gov/hearings/109th/fc/60minutes030105/carter.htm
+http://edworkforce.house.gov/issues/108th/education/funding/budgetfactsheet020403.htm
+http://edworkforce.house.gov/press/press108/01jan/capta10703.htm
+http://ee.hearne.com.au/
+http://eee.uci.edu/programs/comp/computers/email.html
+http://eelink.net/~asilwildlife/barcelona.html
+http://eesc.columbia.edu/courses/ees/climate/labs/radiation1/intro_lab.html
+http://eesc.orst.edu/agcomwebfile/EdMat/html/EC/EC1288/EC1288.html
+http://eesc.orst.edu/agcomwebfile/garden/cal/gc.html
+http://eeshop.unl.edu/rsi.html
+http://eff.cls.utk.edu/toolkit/support_metacognitive_awareness.htm
+http://effectmeasure.blogspot.com/2005/04/h7-in-north-korea.html
+http://efl.htmlplanet.com/abc.htm
+http://egj.lib.uidaho.edu/egj02/groat01.html
+http://egj.lib.uidaho.edu/egj10/miller1.html
+http://egj.lib.uidaho.edu/egj13/wulfinghoff1.html
+http://egofood.blogspot.com/2004/12/does-anyone-still-need-gmail-invites.html
+http://egofood.blogspot.com/2004_10_01_egofood_archive.html
+http://egov.oregon.gov/ENERGY/RENEW/glossary.shtml
+http://ehac.chestpain.org/st-agnes/ehaclearn/delivering613.html
+http://ehealthforum.com/health/topic30199.html
+http://ehp.niehs.nih.gov/docs/2004/6849/abstract.html
+http://ehp.niehs.nih.gov/members/2002/110p307-317vankempen/vankempen-full.html
+http://ehp.niehs.nih.gov/members/2004/112-3/focus.html
+http://ehrweb.aaas.org/entrypoint/rr/app-notes.html
+http://ehs.ucdavis.edu/animal/vet_care/training/cattle.cfm
+http://ehs.uky.edu/radiation/KYReg/appg.html
+http://eichlerlab.gs.washington.edu/data/
+http://eies.njit.edu/~hiltz/collaborative_learning_in_asynch.htm
+http://eightiesclub.tripod.com/id307.htm
+http://eil.com/shop/artistlist.asp?artistname=billy-idol
+http://eir.library.utoronto.ca/rpo/display/displaypoem.cfm?poemnum=350
+http://eis.net.au/~paulh/ei4hp.htm
+http://eisenhowerfellowships.org/programs/incoming.html
+http://eitherstorm.deviantart.com/
+http://eiu.enumerate.com/asp/wcol_HelpIndexCalc.asp
+http://ejbo.jyu.fi/index.cgi?page=articles/0401_2
+http://ejmas.com/jcs/jcsart_svinth_0102.htm
+http://ejmas.com/jnc/jncart_barton-wright_0200.htm
+http://ejmas.com/pt/ptart_dick_0101.htm
+http://ejohnlove.blogspot.com/
+http://ejswanso.blogspot.com/2004/08/saturday-news_28.html
+http://ejt.sagepub.com/cgi/content/refs/9/2/277
+http://el-oso.net/blog/wp-stats.php?author=HispanicPundit
+http://elab.vanderbilt.edu/research/papers/html/student_projects/filling.gaps.online.retailing/buyingprocess.htm
+http://elc.polyu.edu.hk/EAP/Resources/R3L.htm
+http://elc.polyu.edu.hk/elsc/contact_point/enquiry/FAQ/faqmain.htm
+http://elc.polyu.edu.hk/elsc/material/Speaking/asking.htm
+http://elcaminopediatrics.com/healthinfo_teachinginfanttosleep_0304.htm
+http://eld.lib.ucdavis.edu/bylaws.php
+http://eldred.cc/
+http://elearningcentre.typepad.com/whatsnew/2005/01/
+http://election.polarbears.com/art0016.htm
+http://election.scotsman.com/index.cfm?id=488822005
+http://election.scotsman.com/index.cfm?id=495472005
+http://election.scotsman.com/topics.cfm?tid=324&id=446602003
+http://election.scotsman.com/topics.cfm?tid=324&id=601382005
+http://election.scotsman.com/topics.cfm?tid=478&id=488822005
+http://electronicintifada.net/bytopic/historicaldocuments/51.shtml
+http://electronicintifada.net/bytopic/historicalspeeches/267.shtml
+http://electronicintifada.net/v2/article2338.shtml
+http://electronicintifada.net/v2/article2466.shtml
+http://electronicintifada.net/v2/article2524.shtml
+http://electronicintifada.net/v2/article3242.shtml
+http://electronicintifada.net/v2/article3552.shtml
+http://electronicintifada.net/v2/article3872.shtml
+http://elfwood.lysator.liu.se/art/c/l/clnadeau/cuddlingclr.jpg.html
+http://elfwood.lysator.liu.se/art/k/n/knauf/couple.jpg.html
+http://elfwood.lysator.liu.se/art/s/i/simon/sdr_human.jpg.html
+http://elfwood.lysator.liu.se/art/v/e/ventovir/plop.jpg.html
+http://elfwood.lysator.liu.se/fanq/j/h/jhalley2/mypercy.jpg.html
+http://elfwood.lysator.liu.se/fanq/l/e/lene2/destroying_the_happy_couple.jpg.html
+http://elfwood.lysator.liu.se/loth/c/a/catalina/mer_person.jpg.html
+http://elfwood.lysator.liu.se/loth/s/i/simon/sdr_human.jpg.html
+http://elginwatches.org/help/serial_number_info.html
+http://elimina.com/insights/shared-hat.htm
+http://eliot.landrum.cx/
+http://eliot.thefreelibrary.com/Lifted-Veil/1-2
+http://eliot.thefreelibrary.com/Middlemarch/16-1
+http://eliotchapel.org/sermonDocs/progressOrMorality.htm
+http://eliotinstitute.org/pages/2application.htm
+http://elj.warwick.ac.uk/jilt/02-3/guadamuz.html
+http://elliott.org/vault/pt/2003/food.htm
+http://elonka.com/kryptos/KryptosAerial.html
+http://elvis.rowan.edu/~kilroy/JEK/11/03.html
+http://elvispelvis.com/airplanecrash.htm
+http://elythia.tangognat.com/index.php?m=200409
+http://emacspeak.sourceforge.net/raman/hubbell-labrador/usage-faq.html
+http://emagazine.greenhome.com/products/bath/personal_care/107458/
+http://emailuniverse.com/
+http://emailuniverse.com/ezine-tips/?REVIEW:-101-Simple,-FREE-and-Low-Cost-Ways-to-Quickly-Build-a-MASSIVE-Email-List&id=1260
+http://emboss.sourceforge.net/embassy/phylip/consense.html
+http://emd.aapg.org/technical_areas/uranium.cfm
+http://emeagwali.com/interviews/job-postings/first-break-all-the-rules.html
+http://emjae.blogspot.com/
+http://emm.jrc.org/NewsBrief/alertedition/en/Transport.html
+http://emmc.org/EMMC+Mission/
+http://emmc.org/emmc+mission
+http://emoglen.law.columbia.edu/LIS/discuss/166.html
+http://emory.hr.emory.edu/benefits.nsf/0/eec9b2c3cb62ee4385256bca0058549d?OpenDocument
+http://emotionalliteracyeducation.com/abraham-maslow-emotional-literacy-ortho-education.shtml
+http://emperors-clothes.com/articles/Johnstone/crime.htm
+http://emperors-clothes.com/images/north-int.htm
+http://emperors-clothes.com/indict/calif1.htm
+http://emperors-clothes.com/interviews/redcross.htm
+http://empirezine.com/screenplays/american-beauty.htm
+http://employees.csbsju.edu/hjakubowski/classes/ch331/signaltrans/aplysia.htm
+http://employment.indlaw.com/guest/subscription/default.asp
+http://employmentblawg.blogspot.com/2005/06/update-testing-1-2-3ada-and.html
+http://emporium.turnpike.net/C/cs/quest.htm
+http://emporium.turnpike.net/P/ProRev/freedc.htm
+http://emptybottle.org/glass/2002/07/the_hundred_thousand_years_war_qa.php
+http://emptybottle.org/glass/2003/01/cloudy_strong_chance_of_rain.php
+http://emusician.com/mag/emusic_monitoring_perfection/
+http://emusician.com/write_for_em/
+http://en.ce.cn/Life/sports/200501/31/t20050131_2993006.shtml
+http://en.ce.cn/subject/US-election/News/200411/03/t20041103_2177416.shtml
+http://en.chinacache.com/services/white_pagers.htm
+http://en.cnltr.com/FileDb/News/200411/41129479872.shtml
+http://en.fitness.com/health_weight_loss/v967521552.php
+http://en.mimi.hu/astrology/solid.html
+http://en.mobtime.com/en/cpmHelp/English/licence.php
+http://en.olympic.cn/china/sponsorship.html
+http://en.wikibooks.org/wiki/Movie_Making_Manual-The_Basic_Basics
+http://en.wikinews.org/wiki/Mothers,_teachers_concerned_about_leukemia_deaths_at_California_elementary_school
+http://en.wikinews.org/wiki/Wikinews:Submit_a_story
+http://en.wikiquote.org/wiki/Harry_Potter_(series)
+http://en.wikiquote.org/wiki/Wikiquote_talk:Manual_of_style
+http://en.yellowpages.pl/
+http://encarta.msn.com/college_article_partyheartyschools/that_party_the_heartiest.html
+http://encarta.msn.com/encyclopedia_1741500823_10/United_States_(History).html
+http://encarta.msn.com/encyclopedia_1741500823_18/United_States_(History).html
+http://encarta.msn.com/encyclopedia_761555778/German_Literature.html
+http://encarta.msn.com/encyclopedia_761561210/Crusades.html
+http://encarta.msn.com/encyclopedia_761561691_6/Greek_Art_and_Architecture.html
+http://encarta.msn.com/encyclopedia_761567780/Serfdom.html
+http://encarta.msn.com/encyclopedia_761573055_12/China.html
+http://encarta.msn.com/encyclopedia_761576315_3/Christianity.html
+http://encarta.msn.com/encyclopedia_761576768/Electoral_College.html
+http://encarta.msn.com/encyclopedia_761577591/Alzheimer%E2%80%99s_Disease.html
+http://encarta.msn.com/encyclopedia_761584403/Great_Depression_in_the_United_States.html
+http://encarta.msn.com/related_1741500821_3/Labor_Department_responsible_for_improving_working_conditions.html
+http://encarta.msn.com/related_761576731_16.15/Ireland_If_this_nation_had_achieved_its_present_political.html
+http://encarta.msn.com/text_461575434__1/Canadian_Architecture.html
+http://encarta.msn.com/text_761567780__1/Serfdom.html
+http://encarta.msn.com/text_761567780___0/Serfdom.html
+http://encke.jpl.nasa.gov/define.html
+http://encyclopedia.laborlawtalk.com/Capital_(economics)
+http://encyclopedia.laborlawtalk.com/Factors_of_production
+http://encyclopedia.laborlawtalk.com/Oxford_English_Dictionary
+http://encyclopedia.laborlawtalk.com/Triad
+http://encyclopedia.thefreedictionary.com/Cimarron,%20New%20Mexico
+http://endeavor.med.nyu.edu/lit-med/lit-med-db/webdocs/webdescrips/dickens1341-des-.html
+http://endeavor.med.nyu.edu/lit-med/lit-med-db/webdocs/webdescrips/fiser12241-des-.html
+http://endorph.sevcom.com/telescopes.html
+http://enemyoftheearth.org/
+http://ener-chi.com/peace.htm
+http://energy.cr.usgs.gov/radon/georadon/4.html
+http://energy.er.usgs.gov/products/databases/CoalQual/
+http://energy.gov/engine/content.do?PUBLIC_ID=14441&BT_CODE=PR_SPEECHES&TT_CODE=PRESSRELEASE
+http://energy.senate.gov/news/dem_release.cfm?id=203615
+http://energy.senate.gov/news/dem_release.cfm?id=215272
+http://energy.senate.gov/public/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=212281&Month=9&Year=2003&Party=1
+http://energy.senate.gov/public/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=221137&Month=5&Year=2004&Party=1
+http://energy.senate.gov/public/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=221207&Month=5&Year=2004&Party=1
+http://energy.senate.gov/public/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=232980&Month=3&Year=2005&Party=1
+http://energy.senate.gov/public/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=234505&Month=3&Year=2005&Party=1
+http://energy.senate.gov/public/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=720&Month=5&Year=2003&Party=0
+http://energy.senate.gov/public/index.cfm?FuseAction=Speeches.Detail&Speech_id=3&Month=5&Year=2003&IsChairman=1
+http://energybulletin.net/5972.html
+http://energycommerce.house.gov/108/Hearings/04212004hearing1252/Becker1942.htm
+http://energycommerce.house.gov/108/Hearings/04212004hearing1252/DuBois1935.htm
+http://energycommerce.house.gov/108/Hearings/04212004hearing1252/W.Weber1936.htm
+http://energycommerce.house.gov/108/Hearings/05122004hearing1265/Jaszi1992.htm
+http://energycommerce.house.gov/108/Hearings/05182004hearing1275/hearing.htm
+http://energycommerce.house.gov/108/Hearings/06112003hearing966/Muris1538.htm
+http://energycommerce.house.gov/108/Letters/01292004_1197.htm
+http://energyoutlet.com/res/appliances/washers/
+http://energyscience.org/education/homeenergy/preparing.htm
+http://energytrends.pnl.gov/germany/ge005.htm
+http://enews.tufts.edu/stories/091603OilCurse.htm
+http://enewsletter.cygnuspub.com/Mass%20Transit/dec04aoi.htm
+http://enfantsduningxia.uk.over-blog.com/article-414422.html
+http://eng.maidanua.org/static/emai/1105109549.html
+http://eng.pristontale.com/UserMadang/BoardView.aspx?index=11&page=1&server=0&num=98902
+http://engadget.com/entry/1234000473026293/
+http://engadget.com/entry/6686926481524560/
+http://engforum.pravda.ru/printthread.php3?threadid=133501
+http://engineering.careerbuilder.com/en.ic/Nevada_LasVegas?radius=10
+http://engineering.careerbuilder.com/en.ic/NewYork_Albany_MechanicalEngineering.htm
+http://england.shelter.org.uk/advice/advice-281.cfm
+http://england.shelter.org.uk/advice/advice-3077.cfm
+http://england.shelter.org.uk/policy/policy-965.cfm
+http://english.aljazeera.net/NR/exeres/8AEF2417-CBDF-4E99-A8D2-CAA5409C147E.htm
+http://english.epochtimes.com/news/4-3-31/20605.html
+http://english.epochtimes.com/news/5-1-20/25881.html
+http://english.epochtimes.com/news/5-2-2/26201.html
+http://english.epochtimes.com/news/5-6-18/29645.html
+http://english.forestindustries.fi/glossary/S.html
+http://english.kbs.co.kr/life/travel/spots/1341763_11625.html
+http://english.massey.ac.nz/programmes/esp.htm
+http://english.mn.ru/english/issue.php?2003-44-7
+http://english.people.com.cn/200112/24/eng20011224_87357.shtml
+http://english.people.com.cn/200203/28/eng20020328_93035.shtml
+http://english.people.com.cn/200308/26/eng20030826_123100.shtml
+http://english.people.com.cn/200309/25/eng20030925_124911.shtml
+http://english.people.com.cn/200310/22/eng20031022_126627.shtml
+http://english.people.com.cn/200408/10/eng20040810_152405.html
+http://english.people.com.cn/200412/06/eng20041206_166187.html
+http://english.people.com.cn/200412/09/eng20041209_166660.html
+http://english.people.com.cn/200503/21/eng20050321_177656.html
+http://english.people.com.cn/200505/02/eng20050502_183545.html
+http://english.people.com.cn/200505/19/eng20050519_185821.html
+http://english.people.com.cn/200506/29/eng20050629_193110.html
+http://english.people.com.cn/data/minorities/Lisu.html
+http://english.people.com.cn/english/199904/29/enc_990429001008_TopNews.html
+http://english.people.com.cn/whitepaper/13appendix.html
+http://english.pravda.ru/
+http://english.pravda.ru/accidents/2001/05/21/
+http://english.pravda.ru/comp/2002/08/16/34687.html
+http://english.pravda.ru/comp/2003/02/20/43543.html
+http://english.pravda.ru/economics/2001/08/23/13154.html
+http://english.pravda.ru/economics/2003/02/12/43322.html
+http://english.pravda.ru/mailbox/22/101/399/14868_Guantanamo.html
+http://english.pravda.ru/main/18/90/361/14802_sex.html
+http://english.pravda.ru/main/2002/06/19/30734.html
+http://english.pravda.ru/politics/2003/02/21/43565.html
+http://english.pravda.ru/region/2002/08/09/34144.html
+http://english.pravda.ru/science/
+http://english.pravda.ru/society/2001/10/11/17841.html
+http://english.pravda.ru/world/2001/09/12/14992.html
+http://english.safe-democracy.org/keynotes/religion-and-religious-extremism.html
+http://english.unitecnology.ac.nz/resources/units/anzacs/world_war1.html
+http://english.unitecnology.ac.nz/resources/units/camp_thrills/home.html
+http://english.unitecnology.ac.nz/resources/units/civil_defence/home.html
+http://english.unitecnology.ac.nz/writers/display_story.html?name=ADayintheLifeofaRoma
+http://english.unitecnology.ac.nz/writers/display_story.html?type=plays&age=13-15&name=Theplantopilferthepe
+http://english.upmc.fr/
+http://english.vietnamnet.vn/politics/2004/05/140238/
+http://english.wafa.ps/reportnews1.asp?field=reportnews&id=35
+http://english.wafa.ps/reportnews1.asp?field=reportnews&id=36
+http://english.yingkou.net.cn/mothers%20day.htm
+http://english2american.com/dictionary/d.html
+http://english2american.com/dictionary/k.html
+http://english2american.com/dictionary/l.html
+http://english470d.tripod.com/20020912.html
+http://englishhistory.net/tudor/citizens/boleyn.html
+http://englishhistory.net/tudor/monarchs/aragon.html
+http://englishhistory.net/tudor/monarchs/howard.html
+http://englishhistory.net/tudor/relative/brandon.html
+http://englishrussiantranslations.com/resources/WorkingWithInterpreters.html
+http://enhs.umn.edu/files/financial.html
+http://enjoyment.independent.co.uk/books/features/story.jsp?story=595793
+http://enjoyment.independent.co.uk/books/features/story.jsp?story=595793&host=3&dir=70
+http://enjoyment.independent.co.uk/books/features/story.jsp?story=613513
+http://enjoyment.independent.co.uk/books/interviews/story.jsp?story=637903
+http://enjoyment.independent.co.uk/books/interviews/story.jsp?story=649097
+http://enjoyment.independent.co.uk/books/news/story.jsp?story=561446
+http://enjoyment.independent.co.uk/film/interviews/story.jsp?story=627292
+http://enjoyment.independent.co.uk/food_and_drink/features/story.jsp?story=416443
+http://enjoyment.independent.co.uk/food_and_drink/features/story.jsp?story=586381
+http://enjoyment.independent.co.uk/low_res/story.jsp?story=595793&host=5&dir=497
+http://enjoyment.independent.co.uk/low_res/story.jsp?story=605149&host=5&dir=213
+http://enjoyment.independent.co.uk/music/news/story.jsp?story=564004
+http://ennaani.proboards3.com/
+http://enpferney.org/Secondary/NewPupilsHandbook.htm
+http://enpferney.org/Secondary/SecondaryWork_Autobiography.htm
+http://enquire.hertscc.gov.uk/cmswhatson/Cwhatson.cfm
+http://enquirer.com/columns/mcgurk/112296d_mm.html
+http://enquirer.com/editions/2001/11/04/loc_3editorial_why_this.html
+http://enrevanche.blogspot.com/
+http://enrichmentjournal.ag.org/200101/0101_044_reaching_students.cfm
+http://enrichmentjournal.ag.org/200304/016_Management.cfm
+http://ensign.senate.gov/issleg/issues/record.cfm?id=225561&
+http://enterprise.aacc.cc.md.us/~rhs/
+http://enterprisesecurity.symantec.com/content.cfm?articleid=726&PID=6526177
+http://entertaining.about.com/cs/invitations/a/drivedirections.htm
+http://entertainment.ie/horoscopes/default.asp
+http://entertainment.mainetoday.com/dining/diningdiary/2005_03.html
+http://entertainment.mainetoday.com/dining/diningdiary/2005_04.html
+http://entertainment.msn.com/movies/movie.aspx?m=99843
+http://entertainment.msn.com/music/hotgossip4
+http://entertainment.msn.com/tv/article.aspx?news=192883
+http://entertainment.scotsman.com/books/headlines_specific.cfm?id=10080
+http://entertainment.scotsman.com/visual/headlines_specific.cfm?id=10202
+http://entertainment.signonsandiego.com/profile/180876
+http://entertainment.signonsandiego.com/profile/180876/
+http://entertainmenttech.info/sun_oct24/
+http://enterthetrap.com/lyrics.htm
+http://enviro.blr.com/display.cfm/id/25654
+http://environment.about.com/od/greenliving/
+http://environment.dictonarypage.co.uk/
+http://environment.harvard.edu/religion/publications/statements/oneearth.html
+http://environment.unlv.edu/neill.html
+http://environmentallegal.blogs.com/sholzer/2005/05/
+http://envisat.esa.int/
+http://ep.pennnet.com/Articles/Article_Display.cfm?Section=ARTCL&ARTICLE_ID=230996&VERSION_NUM=2&p=29
+http://ep.pennnet.com/Articles/Article_Display.cfm?Section=Articles&Subsection=Display&ARTICLE_ID=125929
+http://ep.pennnet.com/Articles/Article_Display.cfm?Section=Articles&Subsection=Display&ARTICLE_ID=166994&KEYWORD=DRM
+http://epa.atalink.co.uk/articles/career/15
+http://epage.pvusd.k12.az.us/nchsweb/Files/clubsnsports.html
+http://epdweb.engr.wisc.edu/webG037
+http://epetitions.kingston.gov.uk/view_petition.asp?PetitionID=40
+http://episteme.arstechnica.com/eve/ubb.x/a/tpc/f/122097561/m/103003273731
+http://episteme.arstechnica.com/eve/ubb.x/a/tpc/f/28609695/m/3780996404
+http://episteme.arstechnica.com/eve/ubb.x/a/tpc/f/28609695/m/3780996404/p/1
+http://episteme.arstechnica.com/eve/ubb.x/a/tpc/f/599009962631/m/972000193731
+http://epp.eurostat.cec.eu.int/pls/portal/url/page/SHARED/PER_GENSTA
+http://eprentice.sdsu.edu/J03OW/ishizaka/WebQuest/webquestcompilationstudent.htm
+http://eprints.rclis.org/archive/00002085/
+http://eprints.rclis.org/archive/00003582/
+http://eprofitnews.com/ebook-topics-2004.html
+http://epswww.unm.edu/help/win_dialup.htm
+http://epw.senate.gov/107th/Ricker_082002.htm
+http://epw.senate.gov/107th/has_0615.htm
+http://epw.senate.gov/hearing_statements.cfm?id=213409
+http://epw.senate.gov/hearing_statements.cfm?id=219986
+http://epw.senate.gov/pressitem.cfm?id=238760&party=rep
+http://eq2.adeptshaven.com/ftopict-215.html
+http://eq2.stratics.com/content/community/shortstory/shortstory010.php
+http://eqi.org/emotions.htm
+http://eqi.org/listen.htm
+http://eqint.cr.usgs.gov/eq/html/Earthquake_Rates_and_Probability.html
+http://eqlive.station.sony.com/
+http://eqmac.station.sony.com/manual_detail.jsp?chapter=4
+http://eqmac.station.sony.com/manual_printview.jsp?chapter=4
+http://equineprotectionnetwork.com/press/il.htm
+http://equisearch.com/lifestyle/thelife/eqbike706/
+http://equisearch.com/sports/endurance/ride090103/
+http://equisearch.com/train/myth/tmarticle15/
+http://er.sheezyart.com/
+http://erc.endocrinology-journals.org/cgi/content/full/11/3/423
+http://erc.uchicago.edu/highlights.htm
+http://erg.environics.net/rich/
+http://erg.usgs.gov/isb/pubs/factsheets/fs08601.html
+http://ergo.human.cornell.edu/DEA325notes/sitting.html
+http://ergo.human.cornell.edu/MBergo/schoolguide.html
+http://ericec.org/digests/e541.html
+http://ericgorr.com/
+http://ericrichardson.com/verbal/standing_itwo_ceremony/
+http://erictheunred.blogspot.com/2005/04/democratic-fraudsters.html
+http://erie.extension.psu.edu/4-h/codeofconduct.htm
+http://erj.ersjournals.com/cgi/content/abstract/22/4/668
+http://erj.ersjournals.com/cgi/content/full/17/5/887
+http://erj.ersjournals.com/cgi/content/full/22/4/668
+http://erj.ersjournals.com/cgi/content/full/23/3/446
+http://es.epa.gov/techinfo/specific/proj-sum.html
+http://esb.ie/main/news_events/press_releases.jsp
+http://escape.news.com.au/story/0,9142,12431842-28017,00.html
+http://esdcd-news.gsfc.nasa.gov/2004.Summer/03_data_drives.html
+http://eserver.org/bs/17/Johnson.html
+http://eserver.org/bs/19/Alcalay.html
+http://eserver.org/bs/19/Diamond.html
+http://eserver.org/bs/19/Salzmann.html
+http://eserver.org/bs/24/lockard.html
+http://eserver.org/bs/39/mosher.html
+http://eserver.org/history/flint-sit-down.txt
+http://eserver.org/philosophy/aesthetic-excellence.txt
+http://eserver.org/race/toward-a-theory-of-racism.html
+http://eserver.org/thoreau/walden08.html
+http://eserver.org/thoreau/walden1c.html
+http://eshop.msn.com/fts/ftsresults.aspx?searchText=&fcId=4&pcId=15515&rmerchId=3068
+http://eshop.msn.com/marketplace.aspx?mpId=15395&catId=230&pmpType=0
+http://esl.about.com/library/speaking/bltelephone_role.htm
+http://esl.about.com/library/weekly/aa031802c.htm
+http://esl.fis.edu/students/teanotes/read.htm
+http://espace.lis.curtin.edu.au/view/subjects/320000.html
+http://espn.go.com/
+http://espn.go.com/TrainingRoom/tylenol/1575839.html
+http://espn.go.com/classic/biography/s/Affirmed_Alydar.html
+http://espn.go.com/classic/biography/s/Ashe_Arthur.html
+http://espn.go.com/classic/biography/s/Bednarik_Chuck.html
+http://espn.go.com/classic/obit/s/2005/0602/2074322.html
+http://espn.go.com/gen/womenandsports/020620faces.html
+http://espn.go.com/gog04/target/s/04_target_archery_final.html
+http://espn.go.com/mlb/columns/stark_jayson/1434058.html
+http://espn.go.com/ncb/ncaatourney01/teams/278.html
+http://espn.go.com/ncf/columns/forde_pat/1271962.html
+http://espn.go.com/outdoors/conservation/s/c_fea_QDMA_spikes_management_Thomas.html
+http://espn.go.com/outdoors/fishing/s/f_map_05_PA_East_Licking_Creek.html
+http://espn.go.com/outdoors/sportingdogs/s/sd_fea_VP_travel_options_PDJ.html
+http://espn.go.com/outdoors/tips/s/h_fea_04_elk_calling_FHN.html
+http://espn.go.com/page2/s/list/2001/moments.html
+http://espn.go.com/page2/s/list/readers/dirtiest/players.html
+http://espn.go.com/page2/tvlistings/show126transcript.html
+http://espn.go.com/rpm/wc/2001/1012/1263034.html
+http://espn.go.com/sportscentury/features/00014063.html
+http://esr.ibiblio.org/index.php?cat=6
+http://esr.ibiblio.org/index.php?m=200409
+http://esr.ibiblio.org/index.php?p=184
+http://esr.ibiblio.org/index.php?p=47
+http://ess.nrcan.gc.ca/esic/encounters/index_e.php
+http://ess.nrcan.gc.ca/intl/industry_e.php
+http://essayedge.com/college/admissions/speakout/oxford.shtml
+http://essaypage.com/categories/139-010.html
+http://essenes.net/king.html
+http://essexma.lionwap.org/
+http://essiac-info.org/Pets/pets2.html
+http://estonia.usembassy.gov/rice.php
+http://esty.ancients.info/imit/imitSS.html
+http://esvc001460.wic011u.server-web.com/Abstracts/Agllj/Vol10.html
+http://etacar.umn.edu/etainfo/cycle/
+http://etd.caltech.edu/etd/available/etd-04172002-150548/
+http://etd.circa.ufl.edu/present/template-intromac-wordx.html
+http://eteamz.active.com/MTVIEW/news/index.cfm?cat=226036
+http://eteamz.active.com/MaryknollSpartansVBall/
+http://eteamz.active.com/basketball/instruction/tips/coach.cfm/Coach%20Vic's%20Instruction%20and%20Advice/
+http://eteamz.active.com/basketball/instruction/tips/tip.cfm/1658/
+http://eteamz.active.com/gcvbc/
+http://eteamz.active.com/maltbyponybaseball/
+http://eteamz.active.com/northnaples/
+http://eteamz.active.com/northnaples/index.cfm?showreg=1
+http://eteamz.active.com/tcyba/
+http://etext.lib.virginia.edu/cgi-local/DHI/dhi.cgi?id=dv1-66
+http://etext.lib.virginia.edu/cgi-local/DHI/dhi.cgi?id=dv2-34
+http://etext.lib.virginia.edu/cgi-local/DHI/dhiana.cgi?id=dv2-34
+http://etext.lib.virginia.edu/etcbin/toccer-reldem?id=WasReli.sgm&images=images/modeng&data=/texts/english/modeng/parsed&tag=public&part=all
+http://etext.lib.virginia.edu/railton/enlt214m/ltpaper3.html
+http://etext.library.adelaide.edu.au/b/borrow/george/lavengro/chapter67.html
+http://etext.library.adelaide.edu.au/d/dickens/charles/d54ou/mf20.html
+http://etext.library.adelaide.edu.au/f/frazer/james/golden/chapter4.html
+http://etext.library.adelaide.edu.au/g/galsworthy/john/white/chapter26.html
+http://etext.library.adelaide.edu.au/g/gorky/maksim/g66m/chapter19.html
+http://etext.library.adelaide.edu.au/g/gorky/maksim/g66tr/chapter1.html
+http://etext.library.adelaide.edu.au/m/malthus/thomas/m26p/part16.html
+http://etext.library.adelaide.edu.au/m/maupassant/guy/m45s/part8.html
+http://etext.library.adelaide.edu.au/o/orwell/george/o79e/part31.html
+http://etext.library.adelaide.edu.au/o/orwell/george/o79r/chapter4.html
+http://etext.library.adelaide.edu.au/o/orwell/george/o79r/chapter5.html
+http://etext.library.adelaide.edu.au/s/s52s/part20.html
+http://etext.library.adelaide.edu.au/s/s87l/chapter3.html
+http://etext.library.adelaide.edu.au/t/tench_watkin/settlement/chapter9.html
+http://etext.library.adelaide.edu.au/t/trollope/anthony/barchester/chapter17.html
+http://etext.library.adelaide.edu.au/t/trollope/anthony/belton/chapter27.html
+http://etext.library.adelaide.edu.au/t/trollope/anthony/prime/chapter50.html
+http://etext.library.adelaide.edu.au/t/trollope/anthony/prime/chapter58.html
+http://etext.library.adelaide.edu.au/t/trollope/anthony/rachel/chapter9.html
+http://etext.library.adelaide.edu.au/w/wells/hg/love/chapter15.html
+http://etext.virginia.edu/latin/ovid/trans/Metamorph11.htm
+http://etherbods.com/health/health16.shtml
+http://ethernet.industrial-networking.com/origarticles/i01_ieee1451rvness.asp
+http://etherzone.com/2001/proc121101.shtml
+http://etherzone.com/2005/scall012405.shtml
+http://ethics.csc.ncsu.edu/risks/security/network/study.html
+http://ethics.od.nih.gov/meetings/03-01-07m.htm
+http://ethics.sandiego.edu/Applied/Euthanasia/
+http://ethics.sandiego.edu/LMH/Papers/Introduction%20to%20Reproductive%20Technologies.html
+http://ethics.wa.gov/newsletters/Summer2004.htm
+http://ethiopundit.blogspot.com/2005/01/malthus-hobbes-and-red-queen.html
+http://ethnonet.gold.ac.uk/chapter.html
+http://etma-milwaukee.org/content/view/11/25/
+http://etvcookbook.org/tv_dinners/earthur.html
+http://etymonline.com/columns/rape.htm
+http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0787949329.html
+http://eug.gigex.com/mmoguide/article.asp?aID=356
+http://euler.slu.edu/Dept/SuccessinMath.html
+http://euroblogreview.blogspot.com/
+http://europa-eu-un.org/articles/it/article_4186_it.htm
+http://europa.eu.int/abc/12lessons/index13_en.htm
+http://europa.eu.int/abc/12lessons/index1_en.htm
+http://europa.eu.int/abc/12lessons/index5_en.htm
+http://europa.eu.int/abc/doc/off/rg/en/2004/rg32.htm
+http://europa.eu.int/abc/history/index_en.htm
+http://europa.eu.int/comm/commission_barroso/mandelson/speeches_articles/temp_icentre.cfm?temp=artpm012_en
+http://europa.eu.int/comm/commission_barroso/mandelson/speeches_articles/temp_icentre.cfm?temp=sppm038_en
+http://europa.eu.int/comm/competition/international/3a04aen.html
+http://europa.eu.int/comm/competition/state_aid/scoreboard/indicators/k14.html
+http://europa.eu.int/comm/development/body/country/country_home_en.cfm?cid=bi&lng=en&status=new
+http://europa.eu.int/comm/development/body/country/country_home_en.cfm?cid=ug&lng=en&status=new
+http://europa.eu.int/comm/dgs/education_culture/index_en.htm
+http://europa.eu.int/comm/dgs/education_culture/publ/educ-form-eurydice_en.html
+http://europa.eu.int/comm/dgs/education_culture/publ/educ-form_en.html
+http://europa.eu.int/comm/dgs/health_consumer/library/pub/cv/cv003/cv003-02_en.html
+http://europa.eu.int/comm/employment_social/equal/practical-examples/entrep-exzept_en.cfm
+http://europa.eu.int/comm/employment_social/local_employment/lessons_en.htm
+http://europa.eu.int/comm/employment_social/news/2005/jan/industrial_relations_2004_report_en.html
+http://europa.eu.int/comm/employment_social/soc-dial/csr/pdf2/082-SPTUNAT_TUC_UK_011217_en.htm
+http://europa.eu.int/comm/employment_social/soc-dial/csr/pdf2/092-NGOEU_Solidar_EU_011213_en.htm
+http://europa.eu.int/comm/energy/en/achieved.htm
+http://europa.eu.int/comm/energy/en/pfs_sure_en.html
+http://europa.eu.int/comm/enlargement/docs/newsletter/latest_weekly.htm
+http://europa.eu.int/comm/enlargement/docs/research/sept2003.htm
+http://europa.eu.int/comm/enlargement/hungary/
+http://europa.eu.int/comm/enlargement/report_11_00/
+http://europa.eu.int/comm/enterprise/enterprise_policy/gov_relations/canada_regul_coop_dialogue/eu_can_reg_dialogue.htm
+http://europa.eu.int/comm/enterprise/funding/grants/themes_2005/calls_prop_2005.htm
+http://europa.eu.int/comm/enterprise/newapproach/standardization/harmstds/reflist.html
+http://europa.eu.int/comm/environment/aarhus/
+http://europa.eu.int/comm/environment/air/nebei_workshop/bio.htm
+http://europa.eu.int/comm/environment/climat/glossary.htm
+http://europa.eu.int/comm/environment/crime/
+http://europa.eu.int/comm/environment/ippc/
+http://europa.eu.int/comm/environment/news/enlarg/news7.htm
+http://europa.eu.int/comm/environment/pubs/studies.htm
+http://europa.eu.int/comm/europeaid/projects/eidhr/elections_en.htm
+http://europa.eu.int/comm/external_relations/armenia/intro/
+http://europa.eu.int/comm/external_relations/asem/asem_summits/asem2_fin.htm
+http://europa.eu.int/comm/external_relations/asem_ipap_vie/texts/ieg_3.htm
+http://europa.eu.int/comm/external_relations/ca/
+http://europa.eu.int/comm/external_relations/cfsp/news/memo03_192.htm
+http://europa.eu.int/comm/external_relations/cfsp/news/sp02_643.htm
+http://europa.eu.int/comm/external_relations/cfsp/sanctions/
+http://europa.eu.int/comm/external_relations/euromed/news/memo04_275.htm
+http://europa.eu.int/comm/external_relations/la/
+http://europa.eu.int/comm/external_relations/maldives/intro/
+http://europa.eu.int/comm/external_relations/moldova/intro/
+http://europa.eu.int/comm/external_relations/news/patten/sp01_331.htm
+http://europa.eu.int/comm/external_relations/news/patten/sp01_488.htm
+http://europa.eu.int/comm/external_relations/news/patten/speech_00_360.htm
+http://europa.eu.int/comm/external_relations/news/prodi/sp04_276.htm
+http://europa.eu.int/comm/external_relations/paraguay/intro/
+http://europa.eu.int/comm/external_relations/russia/intro/
+http://europa.eu.int/comm/external_relations/sri_lanka/intro/
+http://europa.eu.int/comm/external_relations/ukraine/intro/
+http://europa.eu.int/comm/fisheries/news_corner/discours/speech27_en.htm
+http://europa.eu.int/comm/fisheries/news_corner/discours/speech58_en.htm
+http://europa.eu.int/comm/fisheries/news_corner/discours/speech68_en.htm
+http://europa.eu.int/comm/fisheries/news_corner/doss_inf/ifop4_en.htm
+http://europa.eu.int/comm/fisheries/reform/index_en.htm
+http://europa.eu.int/comm/food/fs/sc/scf/out18_en.html
+http://europa.eu.int/comm/food/fs/sc/ssc/out10_en.html
+http://europa.eu.int/comm/health/ph_risk/committees/sct/docshtml/sct_out87_en.htm
+http://europa.eu.int/comm/ipg/rule7/rule7_en.htm
+http://europa.eu.int/comm/public_opinion/archives/europinion_cts/eo5/eo5_en.htm
+http://europa.eu.int/comm/publications/booklets/move/19/txt_en.htm
+http://europa.eu.int/comm/reform/2002/summary_chapter6_en.html
+http://europa.eu.int/comm/research/environment/themes/article_1357_en.htm
+http://europa.eu.int/comm/research/growth/gcc/projects/in-action-maritime.html
+http://europa.eu.int/comm/research/industrial_technologies/articles/article_2289_en.html
+http://europa.eu.int/comm/research/industrial_technologies/articles/article_355_en.html
+http://europa.eu.int/comm/research/industrial_technologies/lists/list_114_en.html
+http://europa.eu.int/comm/research/industrial_technologies/print.cfm?file=/comm/research/industrial_technologies/articles/article_355_en.html
+http://europa.eu.int/comm/research/infocentre/article_en.cfm?id=/comm/space/news/article_1583_en.html&item=Information%20society
+http://europa.eu.int/comm/research/news-centre/en/agr/01-03-agr04.html
+http://europa.eu.int/comm/research/press/2003/pr0710en.html
+http://europa.eu.int/comm/research/quality-of-life/gmo/04-food/04-01-project.html
+http://europa.eu.int/comm/research/science-society/science-communication/mediarelations1_en.htm
+http://europa.eu.int/comm/space/news/article_1583_en.html
+http://europa.eu.int/comm/space/off_docs_en.html
+http://europa.eu.int/comm/taxation_customs/customs/procedural_aspects/export/procedure/index_en.htm
+http://europa.eu.int/comm/trade/csc/med08_en.htm
+http://europa.eu.int/comm/trade/issues/bilateral/countries/korea/index_en.htm
+http://europa.eu.int/comm/trade/issues/bilateral/regions/mercosur/index_en.htm
+http://europa.eu.int/comm/trade/issues/newround/eu_wto/legis/ifwtos.htm
+http://europa.eu.int/comm/trade/issues/newround/pr100504_en.htm
+http://europa.eu.int/comm/trade/miti/gov_proc/transpa2.htm
+http://europa.eu.int/comm/youth/program/guide/action5_en.html
+http://europa.eu.int/constitution/en/fptoc4_en.htm
+http://europa.eu.int/constitution/en/ptoc4_en.htm
+http://europa.eu.int/constitution/en/ptoc67_en.htm
+http://europa.eu.int/en/record/mt/final.html
+http://europa.eu.int/eur-lex/lex/LexUriServ/LexUriServ.do?uri=CELEX:32005Q0520(01):EN:HTML
+http://europa.eu.int/eur-lex/lex/LexUriServ/LexUriServ.do?uri=CELEX:51998AP0490:EN:NOT
+http://europa.eu.int/eur-lex/lex/LexUriServ/LexUriServ.do?uri=CONSLEG:1992L0109:20010301:EN:PDF
+http://europa.eu.int/eur-lex/lex/LexUriServ/LexUriServ.do?uri=CONSLEG:1999R1621:20010927:EN:PDF
+http://europa.eu.int/eur-lex/lex/LexUriServ/LexUriServ.do?uri=OJ:C:2000:330E:0168:0168:EN:PDF
+http://europa.eu.int/eur-lex/lex/LexUriServ/LexUriServ.do?uri=OJ:C:2003:092E:0050:0052:EN:PDF
+http://europa.eu.int/growthandjobs/areas/fiche01_en.htm
+http://europa.eu.int/information_society/activities/sip/index_en.htm
+http://europa.eu.int/information_society/edutra/index_en.htm
+http://europa.eu.int/information_society/eeurope/2005/all_about/broadband/bb_content/text_en.htm
+http://europa.eu.int/information_society/industry/index_en.htm
+http://europa.eu.int/information_society/policy/nextweb/grid/index_en.htm
+http://europa.eu.int/information_society/qualif/health/index_en.htm
+http://europa.eu.int/information_society/topics/ecomm/highlights/current_spotlights/art_7_task_force/page1/index_en.htm
+http://europa.eu.int/information_society/topics/international/regulatory/eeuropeplus/cc_links/index_en.htm
+http://europa.eu.int/institutions/decision-making/index_en.htm
+http://europa.eu.int/newsletter/index_en.htm
+http://europa.eu.int/newsletter/print_index_en.htm
+http://europa.eu.int/pol/rights/overview_en.htm
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=IP/03/1024&format=HTML&aged=1&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=IP/03/1702&format=HTML&aged=1&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=IP/05/482&format=HTML&aged=0&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=IP/98/1124&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=MEMO/03/149&format=HTML&aged=1&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=MEMO/05/216&format=HTML&aged=0&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/02/376&format=HTML&aged=0&language=en&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/03/601&format=HTML&aged=0&language=en&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/178&format=HTML&aged=0&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/232&format=HTML&aged=0&language=en&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/308&type=HTML&aged=0&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/311&format=HTML&aged=0&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/333&format=HTML&aged=0&language=en&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/345&format=HTML&aged=0&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/347&format=HTML&aged=0&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/347&format=HTML&aged=0&language=EN&guiLanguage=fr
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/361&format=HTML&aged=0&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/365&format=HTML&aged=0&language=EN&guiLanguage=en
+http://europa.eu.int/rapid/pressReleasesAction.do?reference=SPEECH/05/365&format=HTML&aged=0&language=en&guiLanguage=en
+http://europa.eu.int/rapid/start/cgi/guesten.ksh?p_action.gettxt=gt&doc=IP/01/1617%7C0%7CRAPID&lg=EN
+http://europa.eu.int/rapid/start/cgi/guesten.ksh?p_action.gettxt=gt&doc=IP/03/1005%7C0%7CRAPID&lg=EN&display=
+http://europa.eu.int/rapid/start/cgi/guesten.ksh?p_action.gettxt=gt&doc=IP/03/1752%7C0%7CRAPID&lg=EN&display=
+http://europa.eu.int/rapid/start/cgi/guesten.ksh?p_action.gettxt=gt&doc=IP/03/1762%7C0%7CRAPID&lg=EN&display=
+http://europa.eu.int/rapid/start/cgi/guesten.ksh?p_action.gettxt=gt&doc=IP/03/411%7C0%7CRAPID&lg=EN&display=
+http://europa.eu.int/rapid/start/cgi/guesten.ksh?p_action.gettxt=gt&doc=IP/04/508%7C0%7CRAPID&lg=EN&display=
+http://europa.eu.int/rapid/start/cgi/guesten.ksh?p_action.gettxt=gt&doc=IP/04/625%7C0%7CRAPID&lg=EN&display=
+http://europa.eu.int/rapid/start/cgi/guesten.ksh?p_action.gettxt=gt&doc=SPEECH/00/158%7C0%7CAGED&lg=FR
+http://europa.eu.int/rapid/start/cgi/guesten.ksh?p_action.gettxt=gt&doc=SPEECH/00/295%7C0%7CRAPID&lg=EN
+http://europa.eu.int/rapid/start/cgi/guesten.ksh?p_action.gettxt=gt&doc=SPEECH/98/211%7C0%7CRAPID&lg=EN
+http://europa.eu.int/scadplus/leg/en/lvb/l21168.htm
+http://europa.eu.int/tsunami/article01_en.htm
+http://europa.eu.int/yourvoice/results/remedies_org/index_en.htm
+http://europe.businessweek.com/magazine/content/05_07/b3920081_mz054.htm
+http://europe.osha.eu.int/topics/
+http://europeanworldgallery.com/matisse.html
+http://eurosport.com/uefacup/
+http://evatt.labor.net.au/letters/
+http://evatt.labor.net.au/news/159.html
+http://evatt.labor.net.au/news/32.html
+http://evatt.labor.net.au/publications/papers/14.html
+http://evatt.labor.net.au/publications/papers/97.html
+http://eve-tushnet.blogspot.com/
+http://evelynrodriguez.typepad.com/crossroads_dispatches/2004/09/east_meets_west_2.html
+http://events.purina.com/cal/index.aspx
+http://events.purina.com/dogs/events/team.aspx
+http://everquest.allakhazam.com/db/quest.html?quest=1732
+http://everquest.allakhazam.com/db/zones.html?zstrat=64
+http://everquestonlineadventures.com/
+http://everquestonlineadventures.station.sony.com/
+http://everyhit.com/record4.html
+http://everyone.is.not.theuseless.com/archives/2003_04.html
+http://everything.basecamphq.com/
+http://everything.basecamphq.com/archives/000152.php
+http://everything.basecamphq.com/archives/000300.php
+http://everything.basecamphq.com/archives/cat_membershipbilling.php
+http://everything.basecamphq.com/archives/cat_new_features_updates_fixes.php
+http://everything.blockstackers.com/index.pl?node_id=104744&lastnode_id=11081
+http://everything.blockstackers.com/index.pl?node_id=1697134
+http://everything2.com/index.pl?node=A%20Rationalist%20Defence%20of%20Faith
+http://everything2.com/index.pl?node=The%20majority%20of%20X%20support%20Y
+http://everything2.com/index.pl?node_id=1363586
+http://everything2.com/index.pl?node_id=1438908&lastnode_id=1694226
+http://everything2.com/index.pl?node_id=528540
+http://everythingelse.listings.ebay.ca/_W0QQfnuZ1QQfsooZ1QQfsopZ17QQloglZ1QQsacatZ99QQsocmdZListingItemList
+http://everythingsruined.typepad.com/
+http://everytomorrow.org/archives/2001/11/
+http://everytomorrow.org/archives/2004/10/07/group-prayer-other-spiritual-frustrations/
+http://evolt.org/article/Inside_the_Looking_Glass_evolt_org_turns_1/25/626/
+http://evolution.anat.ucl.ac.uk/history/LeGrosClark.htm
+http://evolution.genetics.washington.edu/phylip/doc/consense.html
+http://evonet.lri.fr/evoweb/membership/node_record.php?id=1176
+http://evonet.lri.fr/evoweb/news_events/news_features/article.php?id=125
+http://ewateronline.net/softner.htm
+http://ewhs.wcpss.net/hotnews.php
+http://ex-parrot.com/~chris/random/time-lapse/
+http://exact-me.org/EU/
+http://exactlyxlikexyou.blogdrive.com/
+http://excalibur.apache.org/framework/guide-cop-in-avalon.html
+http://exchange.co-nect.net/Teleprojects/project/?pid=5&session=bj902cfjdWF&cid=2
+http://exchanges.state.gov/education/engteaching/ifettips.htm
+http://exchanges.state.gov/forum/journal/civ3activities.htm
+http://exchanges.state.gov/forum/journal/civ8activities.htm
+http://exchanges.state.gov/forum/journal/env3appendix.htm
+http://exchanges.state.gov/forum/vols/vol31/no1/p42.htm
+http://exchanges.state.gov/forum/vols/vol31/no3/p14.htm
+http://exchanges.state.gov/forum/vols/vol31/no3/p22.htm
+http://exchanges.state.gov/forum/vols/vol31/no4/p12.htm
+http://exchanges.state.gov/forum/vols/vol32/no1/p8.htm
+http://exchanges.state.gov/forum/vols/vol32/no2/p38.htm
+http://exchanges.state.gov/forum/vols/vol34/no1/p37.htm
+http://exchanges.state.gov/forum/vols/vol34/no1/p42.htm
+http://exchanges.state.gov/forum/vols/vol34/no1/p43.htm
+http://exchanges.state.gov/forum/vols/vol34/no3/p55.htm
+http://exchanges.state.gov/forum/vols/vol34/no3/p94.htm
+http://exchanges.state.gov/forum/vols/vol35/no1/p2.htm
+http://exchanges.state.gov/forum/vols/vol35/no2/p44.htm
+http://exchanges.state.gov/forum/vols/vol35/no3/p50.htm
+http://exchanges.state.gov/forum/vols/vol35/no4/p42.htm
+http://exchanges.state.gov/forum/vols/vol36/no1/p14.htm
+http://exchanges.state.gov/forum/vols/vol36/no3/p27.htm
+http://exchanges.state.gov/forum/vols/vol36/no3/p30.htm
+http://exchanges.state.gov/forum/vols/vol36/no4/p18.htm
+http://exchanges.state.gov/forum/vols/vol37/no1/p22.htm
+http://exchanges.state.gov/forum/vols/vol37/no4/p12.htm
+http://exchanges.state.gov/forum/vols/vol37/no4/p16.htm
+http://exchanges.state.gov/forum/vols/vol38/no1/p34.htm
+http://exchanges.state.gov/forum/vols/vol38/no2/p28.htm
+http://exchanges.state.gov/forum/vols/vol38/no2/p40.htm
+http://exchanges.state.gov/forum/vols/vol39/no1/p46.htm
+http://exchanges.state.gov/forum/vols/vol39/no4/p10.htm
+http://exchanges.state.gov/iep/lieberman0531.htm
+http://excite.nonstopsports.com/getReport_NSS.php?size=595&sport=pftball&type=news&name=T0116195552
+http://exclusiivlee.bravejournal.com/entry/7918
+http://execed.wharton.upenn.edu/appform.cfm?program=EM1
+http://execed.wharton.upenn.edu/appform.cfm?program=ENW
+http://execed.wharton.upenn.edu/appform.cfm?program=FEB
+http://execed.wharton.upenn.edu/appform.cfm?program=GAP
+http://exercise.about.com/cs/exbeginners/a/commit.htm
+http://exercise.lifetips.com/
+http://exercise.lifetips.com/RscNLV.asp__Q__year__E__2000__A__month__E__11__A__day__E__3
+http://exercise.lifetips.com/cat/6003/planning-your-exercise/
+http://exilefrombabyville.typepad.com/exile_from_babyville/
+http://exim.indiamart.com/act-regulations/fema-2000-v.html
+http://exim.indiamart.com/sic-codes/d23-finished-products.html
+http://exim.indiamart.com/sisi-network/sisi-allahabad.html
+http://exim.indiamart.com/sisi-network/sisi-hubli.html
+http://exim.indiamart.com/ssi-policies/enterpreneur-development.html
+http://exoticmyanmar.com/handicraft-travel-agency-myanmar.htm
+http://exoticpets.about.com/cs/ferrets/a/ferretpettopten.htm
+http://experience.gwsae.org/programcalendar/index.cfm?mo=3&yr=2005
+http://experimentalphilosophy.typepad.com/experimental_philosophy/free_will/
+http://expertanswercenter.techtarget.com/eac/knowledgebaseCategory/0,295197,sid63_tax296923_idx0_off25,00.html
+http://expertanswercenter.techtarget.com/eac/knowledgebaseCategory/0,295197,sid63_tax296923_idx0_off50,00.html
+http://expertpages.com/news/cause_contributing_factors_traffic_accidents.htm
+http://experts.about.com/q/1479/3841284.htm
+http://experts.about.com/q/2056/3635180.htm
+http://experts.about.com/q/2056/555819.htm
+http://experts.about.com/q/677/3869606.htm
+http://experts.about.com/q/82/3689876.htm
+http://experts.about.com/q/857/3212710.htm
+http://experts.about.com/q/958/3484278.htm
+http://experts.universalclass.com/whitepinek
+http://exploration.nasa.gov/centennialchallenge/cc_index.html
+http://exploration.vanderbilt.edu/news/news_mole.htm
+http://explorers.whyte.com/ball.htm
+http://explorers.whyte.com/row.htm
+http://explorers.whyte.com/sf/sfsourcebk.htm
+http://expn.go.com/expn/story?pageName=evntschedule2
+http://expoweb2.pubdyn.com/Attendance/feature145.htm
+http://expoweb2.pubdyn.com/Best_Practices/feature145.htm
+http://expoweb2.pubdyn.com/Marketing_Promotions/feature145.htm
+http://expoweb2.pubdyn.com/Planning_and_Budgeting/feature145.htm
+http://extempore.livejournal.com/69263.html
+http://extension.agron.iastate.edu/immag/info/talkingpts.html
+http://extension.ucdavis.edu/aboutus.html
+http://extensionroom.mozdev.org/more-info/clearhttpauth
+http://extfile.bah.com/livelink/livelink/126123/?func=doc.Fetch&nodeid=126123
+http://extlab1.entnem.ufl.edu/olustee/new.html
+http://extoxnet.orst.edu/newsletters/n111_91.htm
+http://extoxnet.orst.edu/tibs/partperm.htm
+http://extra.upmc.com/Events.htm
+http://extranet.gurustudio.com/news.php
+http://extranet6.kent.gov.uk/kcc/ss/better_homes/project_scope.aspx
+http://extras.denverpost.com/books/chcracker0123.htm
+http://extras.denverpost.com/books/chtip0311.htm
+http://extras.denverpost.com/books/chwalk1107.htm
+http://eycb.coe.int/compass/en/chapter_1/1_4.html
+http://eycb.coe.int/compass/en/chapter_2/2_44.html
+http://eycb.coe.int/compass/en/chapter_2/2_47.html
+http://eyp.ph/complete.jsp?page=54&c=Aquaculture+equipment+and+supplies&p=r
+http://eyp.ph/complete.jsp?page=54&c=Basketball+equipment&p=r
+http://eyp.ph/complete.jsp?page=54&c=Food+delivery&p=r
+http://eyp.ph/complete.jsp?page=54&c=Material+handling+equipment-repairing&p=r
+http://eyp.ph/complete.jsp?page=54&c=Pizza&p=r
+http://eyp.ph/complete.jsp?page=54&c=Powder+coating-contractors&p=r
+http://ezinearticles.com/
+http://ezinearticles.com/?15-Care-Hair-Myths---The-Truth-and-The-Lies&id=13092
+http://ezinearticles.com/?1st-Textbook-on-Sleep-Psychiatry&id=9761
+http://ezinearticles.com/?3-Steps-To-Immediately-Increase-Sales&id=12384
+http://ezinearticles.com/?7-Questions-To-Ask-Yourself-BEFORE-Staring-A-Business-Blog&id=10852
+http://ezinearticles.com/?911-Conspiracy-Theory-Revealed-During-Coffee-Shop-Conversation&id=39951
+http://ezinearticles.com/?A-Winner-Never-Uses-Chance-or-Luck-to-Win&id=44506
+http://ezinearticles.com/?Bikini-Waxing:-Making-the-Move-From-Hair-to-Brazilian-Bikini-Bare&id=39535
+http://ezinearticles.com/?Book-Summary:--What-Is-The-Emperor-Wearing?&id=13146
+http://ezinearticles.com/?Commercial-Income-Property-Financing:-Part-1-of-3&id=42944
+http://ezinearticles.com/?Consider-the-Alternative&id=647
+http://ezinearticles.com/?Creating-Customer-Awareness-By-Asking-The-Right-Questions&id=6670
+http://ezinearticles.com/?Dealing-With-How-Would-You...?-Questions&id=10843
+http://ezinearticles.com/?Did-You-Let-Your-Piggy-Bank-Get-Away?&id=10239
+http://ezinearticles.com/?Dog-Clothes&id=9922
+http://ezinearticles.com/?GOD-1.0:-The-Universal-OS&id=3454
+http://ezinearticles.com/?How-I-Spent-my-Summer-Vacation&id=10568
+http://ezinearticles.com/?Human-Hair-Extensions-Create-Beautiful-Long-Hair-Styles-Instantly&id=5847
+http://ezinearticles.com/?Reaching-For-Star-Performer-Status:--How-Do-You-Rate?&id=11713
+http://ezinearticles.com/?Sussex-County-Delaware-Beach-Area-Towns-and-Villages-Are-Unique-and-Historic&id=3746
+http://ezinearticles.com/?Sussex-County-Delaware-Beach-Area-Towns-and-Villages-are-Unique-and-Historic!&id=3134
+http://ezinearticles.com/?cat=Health-and-Fitness:Fitness-Equipment
+http://ezinearticles.com/?cat=Women's-Interests
+http://ezinearticles.com/?cat=Women's-Interests:
+http://ezinearticles.com/?id=3746
+http://ezra.cornell.edu/posting.php?timestamp=974782800
+http://ezraklein.typepad.com/
+http://ezraklein.typepad.com/blog/2005/04/the_health_of_n_1.html
+http://ezraklein.typepad.com/blog/2005/06/gulag_gulag_gul.html
+http://ezraklein.typepad.com/blog/health_of_nations/
+http://ezraklein.typepad.com/blog/politics_of_choice/
+http://fablog.ehrensteinland.com/archives/000123.shtml
+http://faces.sgguide.hop.clickbank.net/
+http://faces.stanford.edu/programs/conference2005/itinerary.html
+http://facpub.stjohns.edu/~ganterg/sjureview/vol1-2/wittman.html
+http://facstaff.uww.edu/cottlec/QArchive/Primer1.html
+http://factfinder.census.gov/home/en/epss/glossary_s.html
+http://factoid.lavoice.org/heavy/index.php?m=200410
+http://faculty-staff.ou.edu/L/Joshua.M.Landis-1/syriablog/
+http://faculty-staff.ou.edu/L/Joshua.M.Landis-1/syriablog/2005/04/news-round-up.htm
+http://faculty.bbc.edu/rdecker/unicode.htm
+http://faculty.clintoncc.suny.edu/faculty/Michael.Gregory/files/Bio%20101/Bio%20101%20Lectures/Meiosis/meiosis.htm
+http://faculty.ed.uiuc.edu/g-cziko/wm/02.html
+http://faculty.ed.umuc.edu/~swalsh/Math%20Articles/CosineDiff.html
+http://faculty.fortlewis.edu/LANCASTER_K/kurt/films.htm
+http://faculty.fullerton.edu/rlippa/eyestudy/eyes_total5.htm
+http://faculty.fuqua.duke.edu/daweb/lexicon.htm
+http://faculty.fuqua.duke.edu/daweb/news9603.htm
+http://faculty.fuqua.duke.edu/decision_sciences/dsphd/programs.htm
+http://faculty.goucher.edu/eng211/Chaucer--CT,%20WoB.htm
+http://faculty.haas.berkeley.edu/levine/cheap_advice.html
+http://faculty.haas.berkeley.edu/levine/workplace_editorial.html
+http://faculty.insead.edu/weeks/
+http://faculty.msmary.edu/envirothon/pressroom.htm
+http://faculty.ncwc.edu/toconnor/jusgrad.htm
+http://faculty.pittstate.edu/~knichols/realist2.html
+http://faculty.plattsburgh.edu/richard.robbins/legacy/hunger_readings.htm
+http://faculty.southwest.tn.edu/mbeasley/SYLLABUSExcepChild.htm
+http://faculty.southwest.tn.edu/mbeasley/SYLLABUSchildPsyc.htm
+http://faculty.stritch.edu/breynolds/mt120_03/syllabus_120.html
+http://faculty.uca.edu/~march/bio1/scimethod/lab2_intro_f02.htm
+http://faculty.uccb.ns.ca/philosophy/kbryson/rulesfor.htm
+http://faculty.umf.maine.edu/~sharkey/telling.black.htm
+http://faculty.uwb.edu/danby/kalecki/Kaleckian.htm
+http://faculty.vassar.edu/juweisen/160/addams.html
+http://faculty.virginia.edu/surfacescience/educationlinks.html
+http://faculty.washington.edu/bonjour/463/VII-CONSCIOUSNESS-outline.htm
+http://faculty.washington.edu/chudler/fair.html
+http://faculty.washington.edu/chudler/rightl.html
+http://faculty.washington.edu/chudler/statistics.html
+http://faculty.washington.edu/dchinn/writing.htm
+http://faculty.washington.edu/gregoryj/strike/wright.htm
+http://faculty.washington.edu/gregoryj/uwunions/colasurdo-1199.htm
+http://faculty.washington.edu/jbs/itrans/kinstlinger.htm
+http://faculty.washington.edu/jjc/Info/portfolio.html
+http://faculty.washington.edu/jwh/samantsum.htm
+http://faculty1.coloradocollege.edu/~jbendikkeymer/Jeremy's%20webfiles/Social%20Critique.html
+http://facultysenate.binghamton.edu/2005-2006/05032005Minutes.htm
+http://facweb.furman.edu/dept/psychology/brewerbiography.htm
+http://faerie.monstrous.com/faerie_f-m.htm
+http://faeryface.diaryland.com/040401_91.html
+http://fafblog.blogspot.com/2004_07_04_fafblog_archive.html
+http://fafblog.blogspot.com/2004_09_19_fafblog_archive.html
+http://fafblog.blogspot.com/2005_01_09_fafblog_archive.html
+http://fairchance.civilrights.org/real_people/psa_txt.html
+http://fairchance.civilrights.org/research_center/details.cfm?id=18075
+http://fairchance.civilrights.org/research_center/details.cfm?id=18076
+http://fairchance.civilrights.org/research_center/details.cfm?id=18105
+http://fairchance.civilrights.org/research_center/details.cfm?id=26248
+http://fairchance.civilrights.org/research_center/details.cfm?id=26289
+http://fairchance.civilrights.org/tools/printer_friendly.cfm?id=18073&print=true
+http://faireconomy.org/dividend/comments.html
+http://fairs.need.bg/en/
+http://fairshot.typepad.com/fairshot/2004/11/tax_as_a_weapon.html
+http://fairuse.stanford.edu/commentary_and_analysis/2003_07_minow.html
+http://fairuse.stanford.edu/commentary_and_analysis/2004_03_kasunic.html
+http://fairuse.stanford.edu/primary_materials/cases/michigan_document_services/051796music.html
+http://faizateachesyouarabic.blogspot.com/
+http://falcon.arts.cornell.edu/dg78/100.3/documents/ira2.htm
+http://falcon.jmu.edu/~ramseyil/disciplinebib.htm
+http://falconred.llarian.net/archives/2005_04.html
+http://fallenangelreviews.com/Author/JessMichaels.htm
+http://fallinggrace.com/index.php?page=11
+http://fallingsky.blogs.com/falling_sky/2004/08/walking_in_the_.html
+http://family-reunion.com/activity.htm
+http://family.org/cforum/fosi/marriage/FAQs/a0026916.cfm
+http://family.samhsa.gov/set/illegal_drugs/drugs.aspx
+http://familyclassroom.net/hsboys/articles/25.html
+http://familydoctor.org/037.xml
+http://familydoctor.org/100.xml
+http://familydoctor.org/115.xml
+http://familydoctor.org/197.xml
+http://familydoctor.org/781.xml
+http://familydoctor.org/781.xml?printxml
+http://familyfun.go.com/arts-and-crafts/season/feature/doca0403_teachergifts/doca0403_teachergifts8.html
+http://familyhistoryfun.com/sandoz1/
+http://familymagazines.media24.co.za/drum_value.htm
+http://familymagazines.media24.co.za/huisgenoot_value.htm
+http://familymagazines.media24.co.za/tv_value.htm
+http://familyministries.gc.adventist.org/Resources/sermon_collection/family-god_of_second_time.htm
+http://familyscreenscene.allinfoabout.com/trivia/cbstart.html
+http://famous.adoption.com/famous/church-of-jesus-christ-of-latter-day-saints.html
+http://fampra.oupjournals.org/cgi/content/full/22/1/132
+http://famulus.msnbc.com/famulusspt/ap06-23-181734.asp?id=&spt=nba
+http://famulus.msnbc.com/famulusspt/apmegasports06-28-133236.asp?spt=SPGA
+http://famweb.nwcg.gov/pocketcards/instructions.htm
+http://fanaticcook.blogspot.com/2005/03/equal-time-in-salmon-aisle.html
+http://fanboyrampage.blogspot.com/
+http://fanfiction.mugglenet.com/terms.html
+http://fantasyfilmleague.com/page.php?page_id=261
+http://fantasygames.sportingnews.com/mls/fantasy/about/game_rules.html
+http://fantasysports.aol.com/fb/article.cfm/ID.3494
+http://fantasysports.yahoo.com/analysis/news?slug=bf-bigboard-basketball&prov=yhoo&type=lgns&league=fantasy/nba
+http://fantasysports.yahoo.com/analysis/news?slug=mh-nfcwest_05previews&prov=yhoo&type=lgns&league=fantasy/nfl
+http://fantes.com/marcato.htm
+http://fao.ucsd.edu/Employment_01.htm
+http://faq.f650.com/FAQs/Oil_Change_FAQ.htm
+http://faq.gardenweb.com/faq/lists/pepper/2002075348029538.html
+http://faq.support.overstock.com/faq.asp?docid=49
+http://faqs.ign.com/articles/393/393333p1.html
+http://faqs.ign.com/articles/431/431627p1.html
+http://faqs.ign.com/articles/438/438258p1.html
+http://faqs.ign.com/articles/569/569776p1.html
+http://farah-sf.blogspot.com/2005/01/unreasonable-expectations.html
+http://fare.tunes.org/liberty/sofia2005.html
+http://farms.byu.edu/display.php?table=review&id=511
+http://farrer.riv.csu.edu.au/ASGAP/APOL14/jun99-11.html
+http://farrer.riv.csu.edu.au/ASGAP/APOL28/dec02-10.html
+http://farrer.riv.csu.edu.au/ASGAP/eucalypt.html
+http://farsak.blogspot.com/
+http://farsite.hill.af.mil/help/Front_Page.htm
+http://farsite.hill.af.mil/reghtml/regs/other/dlad/PART37.htm
+http://farsite.hill.af.mil/reghtml/regs/other/doe/931.htm
+http://farsite.hill.af.mil/reghtml/regs/other/nasa/1830.htm
+http://fashion-era.com/Christmas/christmas_food_gingerbread_house_recipe.htm
+http://fashion-jeunesse.neko-shop.com/
+http://fashion.about.com/uctips.htm
+http://fashionfile.com/displayMoments.html
+http://fastlane.gmblogs.com/archives/2005/04/the_sun_keeps_c_1.html
+http://fastweb.monster.com/fastweb/resources/articles/index/102022?id=
+http://favorabledicta.blogspot.com/
+http://fawn.ifas.ufl.edu/tools/irrigation/citrus_microsprinkler_scheduler/MicroPaper.html
+http://fawny.org/blog/2003/09/
+http://fayrouz.blogspot.com/
+http://fbf.cba.ua.edu/Past%20Events.htm
+http://fbweb.cityu.edu.hk/ms/cci/detail.htm
+http://fc.egcc.co.uk/index.php?cat=1
+http://fc2.org/grossman/lazarus/excerpt.htm
+http://fcamin.nic.in/wm_1976.htm
+http://fccl.ksu.ru/winter.97/pominov1.htm
+http://fcgov.com/utilities/powertosave/airconditioning.php
+http://fcpp.org/main/project_jump.php?ProjectTypeID=6&GraphicID=48
+http://fcs.sagepub.com/cgi/content/refs/33/2/121
+http://fcs.sdstate.edu/AH/ahsa.htm
+http://fcsports.collegesports.com/sports/s-ouc/content/101504aaf.html
+http://fdncenter.org/atlanta/gtmd/at_gtmd_050105.html
+http://fdncenter.org/cleveland/gtmd/cl_gtmd_030102.html
+http://fdncenter.org/learn/faqs/html/proposal_writing.html
+http://fdncenter.org/learn/faqs/html/start_foundation.html
+http://fdncenter.org/pnd/newsmakers/nwsmkr.jhtml?id=102900013
+http://fdncenter.org/pnd/newsmakers/nwsmkr.jhtml?id=17800111
+http://fdncenter.org/pnd/newsmakers/nwsmkr.jhtml?id=3300054
+http://fdncenter.org/pnd/tsn/index.jhtml
+http://fdncenter.org/sanfrancisco/gtmd/sf_gtmd_040103.html
+http://fe.pennnet.com/
+http://fearofclowns.com/2004/08/what-you-must-believe-to-be-right_30.html
+http://feastofsaints.com/
+http://feature.geography.wisc.edu/histcart/
+http://features.engadget.com/entry/1234000770038266/
+http://features.icomix.com/letter/archives/2002/08/index.php
+http://fecolumnists.expressindia.com/print.php?content_id=90514
+http://federaljobs.net/TCFC.htm
+http://federaltimes.com/index2.php?S=759061
+http://feed.proteinos.com/item/2538
+http://feedingtheaddiction.blogspot.com/
+http://feedster.com/search.php?q=german+soccer&offset=75&limit=15&hl=&ie=&id=161134143
+http://feetfirst.blogspot.com/
+http://fehps.une.edu.au/PDaL/Courses/ProfessionalStudies/Peace/distance.htm
+http://fehps.une.edu.au/PDaL/Courses/ProfessionalStudies/peace/distance.htm
+http://fehps.une.edu.au/PDaL/courses/ProfessionalStudies/peace/distance.htm
+http://fehps.une.edu.au/PDal/Courses/ProfessionalStudies/Peace/distance.htm
+http://fehps.une.edu.au/PdaL/Courses/ProfessionalStudies/peace/distance.htm
+http://fehps.une.edu.au/PdaL/courses/ProfessionalStudies/peace/distance.htm
+http://feingold.senate.gov/~feingold/releases/03/01/2003116745.html
+http://feinstein.senate.gov/03_speeches.html
+http://feinstein.senate.gov/04_speeches.html
+http://feinstein.senate.gov/05_speeches.html
+http://feinstein.senate.gov/05speeches/cr-condirice.htm
+http://feinstein.senate.gov/assault-weapons-ban-support.html
+http://felicialee.blogspot.com/2004_05_09_felicialee_archive.html
+http://feministing.com/mt-comments.cgi?entry_id=1225
+http://fenwayparkeffects.blogspot.com/
+http://feralboy.com/log/
+http://fergusmurray.members.beeb.net/resonata.htm
+http://ferl.becta.org.uk/display.cfm?page=628&catID=626
+http://ferl.becta.org.uk/display.cfm?page=632
+http://ferl.becta.org.uk/display.cfm?page=632&printable=1
+http://ferl.becta.org.uk/display.cfm?resID=11550
+http://ferl.becta.org.uk/display.cfm?resID=8299
+http://ferl.becta.org.uk/display.cfm?resID=8455
+http://ferl.becta.org.uk/display.cfm?resID=8455&variation=101
+http://ferl.becta.org.uk/display.cfm?variation=101&resID=1720
+http://fernshomestead.com/suffering.html
+http://fesportal.fes.de/pls/portal30/docs/FOLDER/POLITIKANALYSE/DAUDERessay.htm
+http://ffc.berthall.com/2005/02/12/music-law-conference-2005/
+http://ffcrystals.limited-chaos.com/ffviii/ffviii_characters_irvine.php
+http://ffind.ab.ca/college-degree-program/
+http://ffni.home.comcast.net/AusExch.htm
+http://fg50.newi.ac.uk/?page=66
+http://fg50.newi.ac.uk/?page=69
+http://fia.dept.uncg.edu/handbook/getting-started.htm
+http://fibers.org/articles/news/7/5/5/1
+http://fibromyalgia.meetup.com/117/
+http://fiction-palter.mentat.com:1000/misc/ouija.html
+http://fieldworking.com/drygoods/bread.html
+http://fifaworldcup.yahoo.com/03/en/031008/1/cs9.html
+http://fifaworldcup.yahoo.com/06/en/040130/1/n4o.html
+http://fifaworldcup.yahoo.com/06/en/040130/1/n4p.html
+http://fifaworldcup.yahoo.com/06/en/040130/1/n4p_pf.html
+http://fifaworldcup.yahoo.com/06/en/040420/1/10ol.html
+http://fifaworldcup.yahoo.com/06/en/040420/1/10ol_pf.html
+http://fifaworldcup.yahoo.com/06/en/040607/1/1h4i.html
+http://fifaworldcup.yahoo.com/06/en/040609/1/1hty.html
+http://fifaworldcup.yahoo.com/06/en/040908/6/25qh.html
+http://fifaworldcup.yahoo.com/06/en/041011/1/2dsy.html
+http://fifaworldcup.yahoo.com/06/en/050128/1/3103.html
+http://fifaworldcup.yahoo.com/06/en/050128/1/3153.html
+http://fifaworldcup.yahoo.com/06/en/050326/6/3ctj.html
+http://fifaworldcup.yahoo.com/06/en/050506/1/3lfq.html
+http://fifaworldcup.yahoo.com/06/en/050506/1/3lfs.html
+http://fifaworldcup.yahoo.com/06/en/c/ticket/tac.html
+http://fifaworldcup.yahoo.com/06/en/tickets/tac.html
+http://fifaworldcup.yahoo.com/06/fr/c/ticket/tac.html
+http://fightingillini.collegesports.com/genrel/ill-genrel-fisf-club-levels.html
+http://fightingillini.collegesports.com/genrel/ill-genrel-fisf-endowment.html
+http://fightingillini.ocsn.com/genrel/Armory.html
+http://fightinginertia.blogspot.com/
+http://file40.net/ff_press/web_ad_d2.html
+http://files.filefront.com/War_Times_Demo/;2420328;;/fileinfo.html
+http://files.seriouszone.com/catdisplay.php?catid=39
+http://film.guardian.co.uk/Feature_Story/feature_story/0,4120,152536,00.html
+http://film.guardian.co.uk/Guardian/g2/story/0,3604,1261494,00.html
+http://film.guardian.co.uk/Guardian_NFT/interview/0,4479,122217,00.html
+http://film.guardian.co.uk/Guardian_NFT/interview/0,4479,78453,00.html
+http://film.guardian.co.uk/cybercinema/storynonav/0,7645,429131,00.html
+http://film.guardian.co.uk/features/featurepages/0,4120,1016137,00.html
+http://film.guardian.co.uk/features/featurepages/0,4120,1271967,00.html
+http://film.guardian.co.uk/features/featurepages/0,4120,1449360,00.html
+http://film.guardian.co.uk/features/featurepages/0,4120,863596,00.html
+http://film.guardian.co.uk/interview/interviewpages/0,6737,842836,00.html
+http://film.guardian.co.uk/interview/interviewpages/0,6737,922395,00.html
+http://film.guardian.co.uk/lordoftherings/news/0,11016,858480,00.html
+http://filmbrain.typepad.com/theconversation/2005/01/i_like_to_watch.html
+http://filmforce.ign.com/articles/306045p1.html
+http://filmplus.org/tech/title.html
+http://filmschool.fsu.edu/warrenreport/2001/10-12-01.html
+http://filmthreat.com/forums/archive/index.php/t-1614.html
+http://filmthreat.com/forums/archive/index.php/t-2201.html
+http://finaid.georgetown.edu/questpro.htm
+http://finaid.utexas.edu/welcome/fat/volume4_issue1.html
+http://finaid.utexas.edu/welcome/fat/volume4_issue2.html
+http://finance.gov.ie/viewdoc.asp?DocID=-1&CatID=1&StartDate=01+January+2001&m=&mypage=3
+http://finance.gov.ie/viewdoc.asp?fn=/documents/equality/circ2801.htm
+http://finance.lycos.com/qc/news/story.aspx?symbols=NYSE:AA&story=200506241331_APO_V3219
+http://finance.news.com.au/story/0,10166,11970001-462,00.html
+http://finance.news.com.au/story/0,10166,12194009-521,00.html
+http://finance.sympatico.msn.ca/content/gordonpape/P34825.asp
+http://finance.sympatico.msn.ca/content/gordonpape/P34825.asp?Printer
+http://finance.sympatico.msn.ca/content/savingsdebt/savingsdebthome/P29599.asp
+http://finance.yahoo.com/etf/education/08
+http://finance.yahoo.com/mp
+http://finance.yahoo.com/q/pr?s=LSBC
+http://financial.washingtonpost.com/wpost/quote.asp?mode=QUOTE&symbol=AAPL&dispnav=washtech
+http://financialplan.about.com/b/archives.htm
+http://financialplan.about.com/od/personalfinancebasics/a/ShopSafely.htm
+http://financialservices.house.gov/banking/10300icb.htm
+http://financialservices.house.gov/news.asp?FormMode=release&id=576&NewsType=1
+http://findajob.aol.com/findajob/articles/article.adp?id=563
+http://findalesson.com/tips/Walkertip2.htm
+http://findarticles.com/p/articles/mi_m1111/is_1837_306/ai_103124267
+http://findateacher.net/cgi-bin/priceteached.cgi
+http://findory.com/source?source=Belief%20Seeking%20Understanding&ib=1
+http://findory.com/source?source=Editor%3A%20Myself&ib=1
+http://finebushpeople.co.za/farmstore/catalog/windchimes1.htm
+http://finebushpeople.net/index.php?option=content&task=blogcategory&id=21&Itemid=119
+http://fink.sourceforge.net/doc/x11/trouble.php
+http://fink.sourceforge.net/index.php
+http://finnern.com/2003/09/
+http://fire.fws.gov/ifcc/monitor/EFGuide/data_management.htm
+http://fire.fws.gov/ifcc/monitor/RefGuide/reporting_results.htm
+http://fire.r9.fws.gov/fm/policy/HANDBOOK/1-1.HTM
+http://firedoglake.blogspot.com/
+http://firma.cfpm.org/Documents/ConsumerBehavior.htm
+http://firn.edu/doe/sas/fcat.htm
+http://firstfoot.com/php/b2evolution/blogs/
+http://firstmn.phpwebhosting.com/SearchResults.php3?ID=0428
+http://firstperson.typepad.com/first_person_limited/2004/03/mom_dad_courtes.html
+http://firstpressarizona.com/2004/event/sponsors
+http://firstuustlouis.org/committees.html
+http://fish4.co.uk/jobs/careercentre/careerdoc/q_a_regain_self.jsp
+http://fishbowl.pastiche.org/2004/03/02/defending_yagni
+http://fishbowl.pastiche.org/2004/03/21/charles_rules_of_argument
+http://fishorman.blogspot.com/2004/06/details-20.html
+http://fishyvb.something-fishy.org/archive/index.php/t-107631.html
+http://fishyvb.something-fishy.org/showthread.php?mode=hybrid&t=68
+http://fishyvb.something-fishy.org/showthread.php?p=232&mode=linear
+http://fishyvb.something-fishy.org/showthread.php?p=232&mode=threaded
+http://fishyvb.something-fishy.org/showthread.php?s=&threadid=68
+http://fishyvb.something-fishy.org/showthread.php?t=118658
+http://fishyvb.something-fishy.org/showthread.php?t=68
+http://fishyvb.something-fishy.org/showthread.php?t=75&goto=nextoldest
+http://fishyvb.something-fishy.org/showthread.php?threadid=68
+http://fistfulofeuros.net/archives/001004.php
+http://fistfulofeuros.net/archives/001283.php
+http://fistfulofeuros.net/archives/001377.php
+http://fistfulofeuros.net/scgi-bin/fist.cgi?entry_id=1004
+http://fistfuloffortnights.mu.nu/
+http://flac.sourceforge.net/
+http://flag.blackened.net/revolt/anarchism/writers/anarcho/war/iraq/fallujah/attack.html
+http://flag.blackened.net/revolt/anarchism/writers/anarcho/war/spin.html
+http://flag.blackened.net/revolt/rbr/rbr3_organise.html
+http://flag.blackened.net/revolt/talks.html
+http://flagrantdisregard.com/?p=402
+http://flakmag.com/books/fvf3.html
+http://flakmag.com/features/birming1.html
+http://flakmag.com/features/splog/
+http://flakmag.com/film/sunshine.html
+http://flakmag.com/music/mj/1984.html
+http://flakmag.com/sports/bowl37/14.html
+http://flakmag.com/tv/southpark.html
+http://flapsblog.blogspot.com/2005_04_17_flapsblog_archive.html
+http://flare.solareclipse.net/ultimatebb.php/topic/8/56.html
+http://flashmove.com/forum/archive/index.php/t-17055
+http://flathat.wm.edu/2003-11-21/story.php?type=3&aid=8
+http://flathat.wm.edu/September152000/
+http://flatrock.org.nz/topics/animals/mans_best_friend.htm
+http://flatrock.org.nz/topics/animation/eye_popping.htm
+http://flatrock.org.nz/topics/drugs/money_grows_on.htm
+http://flatrock.org.nz/topics/education/research_on_obscure_topics.htm
+http://flatrock.org.nz/topics/info_and_tech/save_weekend.htm
+http://flatrock.org.nz/topics/info_and_tech/year_1939_saw_birth_of_copier.htm
+http://flatrock.org.nz/topics/lifestyles/eat_right_and_exercise.htm
+http://flatrock.org.nz/topics/men/how_to_be_a_good_wife.htm
+http://flatrock.org.nz/topics/men/men_don.htm
+http://flatrock.org.nz/topics/money_politics_law/why_living_in_a_rich_society_mak.htm
+http://flatrock.org.nz/topics/odds_and_oddities/dead_wives.htm
+http://flatrock.org.nz/topics/science/is_the_brain_really_necessary.htm
+http://flatrock.org.nz/topics/science/science_of_the_senses.htm
+http://flatrock.org.nz/topics/science/spare_parts_department.htm
+http://flatrock.org.nz/topics/wellington/before_her_prime.htm
+http://flatrock.org.nz/topics/working/knowing_and_unknowing.htm
+http://fletcher.tufts.edu/news/2004/10/reissspeech.shtml
+http://fling93.com/blog/archives/2004_06.html
+http://fling93.com/blog/archives/politics/2004/this_land_was_made_for_you_to_.html
+http://flipside.nzoom.com/message_board/message_board_detail/0,2369,294048-1,00.html
+http://floridadisaster.org/bpr/Response/Plans/Nathaz/IRT/info.htm
+http://floridasings.com/mary_walkley_answers_your_questions_on_pro_voice_m.htm
+http://floridasmallbusiness.com/startup/05.asp
+http://floti.bell.ac.uk/MathsPhysics/introduction.htm
+http://fluid-power.globalspec.com/ProductFinder/Fluid_Power_Components/Pneumatic_Equipment_Components
+http://fly.hiwaay.net/~pspoole/Beza1.htm
+http://flyawaysimulation.com/posts4492-0.html
+http://flyfisherman.com/ftb/hwhackle/
+http://fmaware.org/fmOnlineNewsletter/vol3_no20/indexNav.htm
+http://fmaware.org/fmOnlineNewsletter/vol3_no20/lgTxt_indexNav.htm
+http://fmsbaroda.tripod.com/mbacourse.htm
+http://fmu.edu/financialaid.asp?schoolLocation=North%20Orlando
+http://fnopress.com/powerlearning/smm7.html
+http://fnopress.com/sbm/appendC.html
+http://fobiopatel.com/news/?a=40
+http://focus.hms.harvard.edu/2004/April16_2004/neurology.html
+http://focus.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=sbou012&fileType=pdf
+http://fofr.trivialbeing.net/
+http://fogcity.blogs.com/jen/2004/07/
+http://fogcity.blogs.com/jen/2004/07/desiree_cafe_sa.html
+http://fogcity.blogs.com/jen/on_dining_out/
+http://foi.missouri.edu/whistleblowing/lackofsafety.html
+http://food-science.technology.designerz.com/food-science.php
+http://food.oregonstate.edu/ref/water/water_ref.html
+http://foodhaccp.com/msgboard.mv?parm_func=showmsg+parm_msgnum=1000879
+http://foodsci.rutgers.edu/about_us/faculty_honors.htm
+http://foolspress.com/csfd/skulfarm.html
+http://foot.ie/forums/printthread.php?t=22591
+http://football.guardian.co.uk/Match_Report/0,1527,-49501,00.html
+http://football.guardian.co.uk/news/theknowledge/0,9204,966358,00.html
+http://football.guardian.co.uk/womensfootball/story/0,12783,1502875,00.html
+http://footballpoets.org/poem.asp?Id=2815
+http://footballpoets.org/poem.asp?Id=2819
+http://footballpoets.org/poem.asp?Id=2939
+http://footballpoets.org/poem.asp?Id=2978
+http://footballpoets.org/poem.asp?Id=7038
+http://footballpoets.org/poem.asp?Id=7997
+http://footiethreads.com/forum/showthread.php?goto=lastpost&t=22255
+http://footiethreads.com/forum/showthread.php?t=22255
+http://fop.extensiblejava.com/Introduction.html
+http://forbes.com/smallbusiness/2004/09/09/cx_gk_0909artofthestart.html
+http://forbes.marketedge.com/SecopRep.asp?sym=AIG&refer=forbes
+http://forbes.marketedge.com/SecopRep.asp?sym=BAC&refer=forbes
+http://forbes.marketedge.com/SecopRep.asp?sym=C&refer=forbes
+http://forbes.marketedge.com/SecopRep.asp?sym=EBAY&refer=forbes
+http://forbes.marketedge.com/SecopRep.asp?sym=ET&refer=forbes
+http://forbes.marketedge.com/SecopRep.asp?sym=INTC&refer=forbes
+http://forbes.marketedge.com/SecopRep.asp?sym=MSFT&refer=forbes
+http://forbes.marketedge.com/SecopRep.asp?sym=SBC&refer=forbes
+http://forbes.marketedge.com/SecopRep.asp?sym=TWX&refer=forbes
+http://forbes.marketedge.com/SecopRep.asp?sym=YHOO&refer=forbes
+http://force12inc.com/F12-NEWS-120103.htm
+http://foreignaffairs.gov.ie/Press_Releases/19970430/310.htm
+http://foreignaffairs.gov.ie/Press_Releases/20020904/1022.htm
+http://foreignaffairs.gov.ie/Press_Releases/20031001/1289.htm
+http://foreignaffairs.gov.ie/aboutus/strategy/part4.asp
+http://foreigndispatches.typepad.com/
+http://foreigndispatches.typepad.com/dispatches/
+http://foreigndispatches.typepad.com/dispatches/music/
+http://forests.org/archive/africa/ovelezim.htm
+http://forests.org/articles/reader.asp?linkid=26817
+http://forests.org/articles/reader.asp?linkid=32243
+http://forests.org/articles/reader.asp?linkid=33142
+http://forests.org/articles/reader.asp?linkid=36887
+http://forevergeek.com/entertainment/the_simpsons_movie_finally_moving_forward.php
+http://forevergeek.com/news/harvard_offers_free_tuition_for_low_income_families.php
+http://forexanalytics.com/termsag.html
+http://forexanalytics.com/termsoz.html
+http://forkidssakecc.com/older%20toddler.htm
+http://forms.apa.org/governance/candstatement/index.cfm?action=viewstatements&id=18
+http://forms.apa.org/governance/candstatement/index.cfm?action=viewstatements&id=49
+http://forms.ceakumal.org/declaration.html
+http://forms.wto.org/eradbibliographie/bibliography_displayall_e.asp?order=author&page=19
+http://formula1.autoracingsport.com/2004_news/mar/07b_sunday_aus_quotes.html
+http://forsys.cfr.washington.edu/~vp/Papers/Ulbrichtchap4.html
+http://fortress.wa.gov/esd/portal/resources/cd/cd289.htm
+http://fortress.wa.gov/esd/portal/resources/cd/cd473.htm
+http://fortress.wa.gov/esd/portal/unemployment/benefits/webpbr.htm
+http://fortwilliam.ukontheweb.net/
+http://forum.abestweb.com/archive/index.php/t-3.html
+http://forum.aidworkers.net/messages/258/13377.html
+http://forum.apan-info.net/fall99web/4-SBJ43.html
+http://forum.atimes.com/topic.asp?TOPIC_ID=1724
+http://forum.atimes.com/topic.asp?whichpage=-1&TOPIC_ID=1724&REPLY_ID=27166
+http://forum.atimes.com/topic.asp?whichpage=-1&TOPIC_ID=262&REPLY_ID=1621
+http://forum.audiogon.com/cgi-bin/fr.pl?zdisp&1038849735&read&3&4&
+http://forum.avast.com/index.php?topic=10862.0;prev_next=prev
+http://forum.bcdb.com/forum/_C10/_F18/Theme_parks,_cable_TV_boost_Disney_earnings_P39025/
+http://forum.bcdb.com/forum/gforum.cgi?post=39025
+http://forum.bcdb.com/forum/gforum.cgi?post=39025;sb=post_latest_reply;so=ASC;forum_view=forum_view_collapsed;page=last;guest=4075529
+http://forum.bcdb.com/gforum.cgi?post=39025
+http://forum.belmont.edu/umac/archives/2004/04/belmont_univers_1.html
+http://forum.bodybuilding.com/showthread.php?t=245561&page=3
+http://forum.bodyconcept.com/Trouble_Gaining_Weight/m_33/tm.htm
+http://forum.canadianparents.ca/ubbthreads/showflat.php?Cat=&Number=190566&page=0&view=collapsed&sb=5&o=&fpart=1
+http://forum.digitalspy.co.uk/board/showthread.php?mode=hybrid&t=188054
+http://forum.digitalspy.co.uk/board/showthread.php?mode=hybrid&t=232753
+http://forum.digitalspy.co.uk/board/showthread.php?p=3333811&mode=threaded
+http://forum.digitalspy.co.uk/board/showthread.php?t=161638
+http://forum.digitalspy.co.uk/board/showthread.php?t=183428&goto=nextnewest
+http://forum.digitalspy.co.uk/board/showthread.php?t=184594
+http://forum.digitalspy.co.uk/board/showthread.php?t=188054
+http://forum.digitalspy.co.uk/board/showthread.php?t=232753
+http://forum.digitalspy.co.uk/board/showthread.php?threadid=237550
+http://forum.doityourself.com/showthread.php?t=181244
+http://forum.doom9.org/showthread.php?s=&threadid=44223
+http://forum.doom9.org/showthread.php?s=&threadid=79898
+http://forum.e46fanatics.com/forumdisplay.php?forumid=11
+http://forum.e46fanatics.com/showthread.php?goto=newpost&t=269226
+http://forum.ecoustics.com/bbs/messages/34579/109459.html
+http://forum.elvenjess.com/read.php?TID=4157
+http://forum.eminem.net/archive/index.php/t-9182.html
+http://forum.frankblack.net/topic.asp?TOPIC_ID=3015&whichpage=6
+http://forum.freeadvice.com/archive/index.php/t-181544.html
+http://forum.freeadvice.com/archive/index.php/t-203746.html
+http://forum.freeadvice.com/archive/index.php/t-219708.html
+http://forum.freeadvice.com/archive/index.php/t-220020.html
+http://forum.freeadvice.com/printthread.php?t=207649
+http://forum.freeadvice.com/printthread.php?t=210665
+http://forum.freeadvice.com/showthread.php?goto=lastpost&t=199494
+http://forum.freeadvice.com/showthread.php?mode=hybrid&t=199494
+http://forum.freeadvice.com/showthread.php?p=747234&mode=threaded
+http://forum.freeadvice.com/showthread.php?p=831002
+http://forum.freeadvice.com/showthread.php?t=147840&page=2
+http://forum.freeadvice.com/showthread.php?t=199067&goto=nextnewest
+http://forum.freeadvice.com/showthread.php?t=199494
+http://forum.freeadvice.com/showthread.php?t=203971&goto=nextoldest
+http://forum.freeadvice.com/showthread.php?t=207372
+http://forum.freeadvice.com/showthread.php?t=217465&page=1
+http://forum.goteamspeak.com/archive/index.php/t-1466.html
+http://forum.homesecuritystore.com/
+http://forum.hotplugins.com/cgi-bin/showreply.cgi?tpid=50755
+http://forum.hypnosis.com/archive/index.php/t-724.html
+http://forum.hypnosis.com/newreply.php?do=newreply&noquote=1&p=9715
+http://forum.hypnosis.com/printthread.php?t=724
+http://forum.icann.org/nsi2001/3AA50E3F000001C8.html
+http://forum.icann.org/org/3D5B45DE000001F1.html
+http://forum.icann.org/tldapps/3A05F59C000011EF.html
+http://forum.japantoday.com/fb.asp?m=104532&key=
+http://forum.japantoday.com/m_23676/mpage_3/key_/tm.htm
+http://forum.japantoday.com/m_23676/mpage_3/printable.htm
+http://forum.japantoday.com/m_313972/printable.htm
+http://forum.java.sun.com/thread.jspa?threadID=176779&messageID=1630635
+http://forum.java.sun.com/thread.jspa?threadID=176779&messageID=1632620
+http://forum.java.sun.com/thread.jspa?threadID=544112&tstart=60
+http://forum.java.sun.com/thread.jspa?threadID=575095&start=2100&tstart=0
+http://forum.java.sun.com/thread.jspa?threadID=575095&start=960&tstart=0
+http://forum.java.sun.com/thread.jspa?threadID=639196&tstart=0
+http://forum.lef.org/default.aspx?f=41&m=17717&g=22408
+http://forum.logofreetv.org/topic.asp?TOPIC_ID=469
+http://forum.lowcarber.org/archive/index.php/t-188255.html
+http://forum.lowcarber.org/archive/index.php/t-224041.html
+http://forum.lowcarber.org/archive/index.php/t-228099.html
+http://forum.lowcarber.org/archive/index.php/t-58029.html
+http://forum.lowcarber.org/showthread.php?t=204548&page=2
+http://forum.mamboserver.com/archive/index.php/t-46535.html
+http://forum.mamboserver.com/showthread.php?goto=lastpost&t=25500
+http://forum.mamboserver.com/showthread.php?t=25500
+http://forum.mamboserver.com/showthread.php?t=44484&goto=lastpost
+http://forum.mamboserver.com/showthread.php?t=946&goto=lastpost
+http://forum.netball.org.sg/post.asp?REPLY_ID=1856&TOPIC_ID=384&method=ReplyQuote
+http://forum.netball.org.sg/post.asp?REPLY_ID=1861&TOPIC_ID=384&method=ReplyQuote
+http://forum.ogrish.com/forum/archive/index.php/t-5685.html
+http://forum.pbase.com/viewtopic.php?p=49712
+http://forum.pbase.com/viewtopic.php?p=49971
+http://forum.pbase.com/viewtopic.php?t=8714
+http://forum.physorg.com/index.php?showtopic=1572
+http://forum.physorg.com/index.php?showtopic=1572&view=getnewpost
+http://forum.physorg.com/index.php?showtopic=1828&view=getnewpost
+http://forum.physorg.com/index.php?showtopic=2059&view=new
+http://forum.physorg.com/index.php?showtopic=2150&view=getlastpost
+http://forum.planeta.com/viewtopic.php?p=336
+http://forum.planeta.com/viewtopic.php?t=129
+http://forum.plebius.org/forum.php?t=182
+http://forum.rivercottage.net/viewtopic.php?t=4623&highlight=crayfish
+http://forum.rockridgeinstitute.org/?q=dialogue05/day10/movement
+http://forum.rpg.net/archive/index.php/t-69623.html
+http://forum.spamcop.net/forums/index.php?showtopic=2472&view=findpost&p=15986
+http://forum.spamcop.net/forums/lofiversion/index.php/t3972.html
+http://forum.statcounter.com/phpBB2/viewtopic.php?p=24370&
+http://forum.statcounter.com/phpBB2/viewtopic.php?p=27485&
+http://forum.statcounter.com/phpBB2/viewtopic.php?p=27517&
+http://forum.statcounter.com/phpBB2/viewtopic.php?p=27558&
+http://forum.statcounter.com/phpBB2/viewtopic.php?p=27753&highlight=&
+http://forum.statcounter.com/phpBB2/viewtopic.php?p=27757&
+http://forum.statcounter.com/phpBB2/viewtopic.php?p=28452&
+http://forum.statcounter.com/phpBB2/viewtopic.php?t=2122&view=next&
+http://forum.statcounter.com/phpBB2/viewtopic.php?t=4127&view=next&
+http://forum.statcounter.com/phpBB2/viewtopic.php?t=4341&highlight=&
+http://forum.statcounter.com/phpBB2/viewtopic.php?t=4858&
+http://forum.tabletpcreviewspot.com/showthread.php?t=501
+http://forum.teamxbox.com/archive/index.php/t-321605.html
+http://forum.textpattern.com/viewtopic.php?id=6810&p=8
+http://forum.textpattern.com/viewtopic.php?pid=60928
+http://forum.uniforminsignia.net/viewtopic.php?p=9601
+http://forum.vgcats.com/archive/index.php/t-1048.html
+http://forum.vgcats.com/archive/index.php/t-1793.html
+http://forum.virtualtourist.com/forum-11-1-Travel-Germany-1-forum.html
+http://forum.visitsierraleone.org/forum_posts.asp?TID=55&PN=1
+http://forum.visitsierraleone.org/forum_posts.asp?TID=55&PN=1&TPN=1
+http://forum.wolframscience.com/archive/topic/222-1.html
+http://forum.wolframscience.com/archive/topic/788-1.html
+http://forum.wordreference.com/archive/index.php?t-2374.html
+http://forums.3drealms.com/ubbthreads/showflat.php?Cat=0&Board=popularmedia&Number=707291&page=0&fpart=2
+http://forums.abrsm.org/index.php?act=ST&f=2&t=7766&hl=&
+http://forums.abrsm.org/index.php?act=boardrules
+http://forums.abrsm.org/lofiversion/index.php/t4704.html
+http://forums.abum.com/lofiversion/index.php/t333.html
+http://forums.ac2.turbinegames.com/archive/index.php/t-3892.html
+http://forums.afterdawn.com/thread_view.cfm/146432
+http://forums.afterdawn.com/thread_view.cfm/155139
+http://forums.aliensoup.com/printthread.php?t=529
+http://forums.aliensoup.com/showthread.php?mode=hybrid&t=529
+http://forums.aliensoup.com/showthread.php?t=529
+http://forums.aliensoup.com/showthread.php?t=529&page=2&pp=15
+http://forums.alternet.org/guest/motet?show+-ujI1PA+-ilad+Issues+14
+http://forums.anandtech.com/messageview.aspx?catid=28&threadid=1488376&STARTPAGE=1&enterthread=y
+http://forums.anandtech.com/messageview.aspx?catid=31&threadid=1500969&enterthread=y
+http://forums.anandtech.com/messageview.aspx?catid=50&threadid=1481055&enterthread=y
+http://forums.anandtech.com/messageview.cfm?catid=28&threadid=1488376
+http://forums.anandtech.com/messageview.cfm?catid=31&threadid=1500969
+http://forums.anarchy-online.com/showthread.php?goto=lastpost&t=368882
+http://forums.anarchy-online.com/showthread.php?t=366749&goto=nextnewest
+http://forums.anarchy-online.com/showthread.php?t=368882
+http://forums.armageddononline.org/archive/index.php/t-252.html
+http://forums.army.ca/forums/index.php?topic=16908.75
+http://forums.army.ca/forums/index.php?topic=23745;prev_next=next
+http://forums.audioholics.com/forums/archive/index.php/t-1322.html
+http://forums.audioholics.com/forums/showthread.php?p=75163
+http://forums.beyond.ca/showthread/t-74828.html
+http://forums.booktrade.info/booktrade.php?&do=news&bit=CompanyNews&find=20
+http://forums.bridgetalk.com/index.php?showtopic=922
+http://forums.cafepress.com/eve/ubb.x/a/tpc/f/863104/m/7511095
+http://forums.cjb.net/helloweenid-about86.html
+http://forums.clan-mac.com/ubb/ultimatebb.php?/ubb/get_topic/f/9/t/000115/p/1.html
+http://forums.comicbookresources.com/archive/index.php/t-350.html
+http://forums.comicbookresources.com/archive/index.php/t-4568.html
+http://forums.deeperblue.net/showthread.php?goto=lastpost&t=53152
+http://forums.deeperblue.net/showthread.php?t=53152
+http://forums.designtechnica.com/showthread.php?t=7155
+http://forums.designtechnica.com/showthread.php?threadid=7155
+http://forums.dvdoctor.net/archive/index.php/t-27250.html
+http://forums.ebay.com.sg/thread.jsp?forum=1&thread=300000525&modified=1107055935512
+http://forums.ebay.com/db1/thread.jspa?threadID=200086015&tstart=0&mod=1116356225983
+http://forums.ebay.com/db1/thread.jspa?threadID=200091811&tstart=0&mod=1118082445635
+http://forums.ebay.com/db1/thread.jspa?threadID=200091811&tstart=0&mod=1118082445635&ssPageName=CMDV:AB
+http://forums.ebay.com/db1/thread.jspa?threadID=410550532&tstart=0&mod=1118164587362
+http://forums.ebay.com/db2/thread.jsp?forum=13&thread=8105&start=120&msRange=40
+http://forums.ebay.com/db2/thread.jsp?forum=145&thread=410098169&modified=1084718537697
+http://forums.ebay.com/db2/thread.jsp?forum=95&thread=410098072&modified=1081925408322
+http://forums.ebay.com/db2/thread.jspa?threadID=200106097&tstart=0&mod=1118162762559
+http://forums.ebay.com/db2/thread.jspa?threadID=200114068&tstart=0&mod=1119152348862
+http://forums.ebay.ph/thread.jspa?threadID=300000251&tstart=120&mod=1113247696858
+http://forums.egullet.com/index.php?act=SF&f=38&%22
+http://forums.egullet.com/index.php?showforum=38
+http://forums.fark.com/cgi/fark/comments.pl?IDLink=1528971
+http://forums.flightinfo.com/showthread.php?t=56173&page=1&pp=15
+http://forums.french-property.com/showthread.php?threadid=716
+http://forums.g4techtv.com/messageview.cfm?catid=24&threadid=322603
+http://forums.gamedaily.com/index.php?showtopic=81001
+http://forums.gamedaily.com/index.php?showtopic=84786
+http://forums.gamespot.com/gamespot/show_messages.php?board=534914&topic=21639792&page=2
+http://forums.gamespot.com/gamespot/show_messages.php?board=920419&topic=21519848&page=9
+http://forums.gamespot.com/gamespot/show_messages.php?board=928377&topic=21242688&page=0
+http://forums.gardenweb.com/forums/load/allium/msg0809080722757.html
+http://forums.gardenweb.com/forums/load/alpines/msg0720595620668.html
+http://forums.gardenweb.com/forums/load/bamboo/msg121147379122.html
+http://forums.gardenweb.com/forums/load/botany/msg11071612722.html
+http://forums.gardenweb.com/forums/load/butterfly/gal0909511424268.html
+http://forums.gardenweb.com/forums/load/citrus/msg0117504627765.html
+http://forums.gardenweb.com/forums/load/citrus/msg1211295110432.html
+http://forums.gardenweb.com/forums/load/commgard/msg011218346271.html
+http://forums.gardenweb.com/forums/load/cutting/msg0206220819864.html
+http://forums.gardenweb.com/forums/load/daylily/msg011033265968.html
+http://forums.gardenweb.com/forums/load/difficult/msg0507112015564.html
+http://forums.gardenweb.com/forums/load/farnorth/msg121458463803.html
+http://forums.gardenweb.com/forums/load/favorite/msg110805274013.html
+http://forums.gardenweb.com/forums/load/gesneriad/msg1223403713680.html
+http://forums.gardenweb.com/forums/load/herbs/msg1114124911258.html
+http://forums.gardenweb.com/forums/load/hibisc/msg111502571864.html
+http://forums.gardenweb.com/forums/load/mastgard/msg0120013512019.html
+http://forums.gardenweb.com/forums/load/okgard/msg1109425013231.html
+http://forums.gardenweb.com/forums/load/rosesgal/msg0116470216249.html
+http://forums.gardenweb.com/forums/load/rosesname/msg110313144582.html
+http://forums.gardenweb.com/forums/load/upstateny/msg1011344912880.html
+http://forums.gardenweb.com/forums/load/writers/msg011315521582.html
+http://forums.gminsidenews.com/showthread.php?goto=lastpost&t=11039
+http://forums.gminsidenews.com/showthread.php?goto=newpost&t=11039
+http://forums.gminsidenews.com/showthread.php?t=10669
+http://forums.gminsidenews.com/showthread.php?t=10669&page=1
+http://forums.gminsidenews.com/showthread.php?t=11039
+http://forums.gminsidenews.com/showthread.php?t=7948&goto=nextnewest
+http://forums.go.com/abc/thread?threadID=209857
+http://forums.go.com/abc/thread?threadID=216839
+http://forums.go.com/abclocal/WPVI/thread?threadID=58868
+http://forums.go.com/abcnews/GMA/thread?threadID=164722
+http://forums.go.com/abcnews/thread?threadID=169994
+http://forums.go.com/soccernet/thread?threadID=2664
+http://forums.go.com/soccernet/thread?threadID=34519
+http://forums.govteen.com/archive/index.php/t-51367.html
+http://forums.gucomics.com/viewtopic.php?t=5927
+http://forums.happy-messaging.com/discus/messages/35/47.html
+http://forums.hardwarezone.com/showthread.php?t=864285&page=4
+http://forums.hardwarezone.com/showthread.php?t=867205&goto=nextoldest
+http://forums.healthyplace.com/ubbthreads/showflat.php?Cat=&Number=11667&page=0&view=collapsed&sb=5&o=&fpart=1
+http://forums.ibsys.com/viewmessages.cfm?sitekey=bos&Forum=6&Topic=11263
+http://forums.idlethumbs.net/printthread.php?t=1717
+http://forums.idlethumbs.net/showthread.php?p=24375
+http://forums.invisionpower.com/index.php?showtopic=173718&mode=threaded&pid=1204307
+http://forums.invisionpower.com/lofiversion/index.php/t173718.html
+http://forums.invisionpower.com/lofiversion/index.php/t40799-2250.html
+http://forums.java.net/jive/thread.jspa?threadID=686&tstart=0
+http://forums.johnstonefitness.com/showthread.php?p=92949
+http://forums.johnstonefitness.com/showthread.php?p=92963
+http://forums.johnstonefitness.com/showthread.php?t=3982
+http://forums.jolt.co.uk/showthread.php?t=355475
+http://forums.jolt.co.uk/showthread.php?t=362800
+http://forums.kayako.com/showthread.php?goto=lastpost&t=3560
+http://forums.lclmag.com/forums/index.php?showtopic=277&view=getnewpost
+http://forums.linkinpark.com/archive/index.php/t-305571.html
+http://forums.lycaeum.org/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=8&t=001067
+http://forums.macnn.com/showthread.php?t=258681
+http://forums.macosxhints.com/showthread.php?s=&threadid=40932
+http://forums.macrumors.com/showthread.php?mode=hybrid&t=79073
+http://forums.macrumors.com/showthread.php?s=&threadid=107670
+http://forums.macrumors.com/showthread.php?t=107670
+http://forums.men.style.com/thread.jspa?messageID=71223
+http://forums.mg-rover.org/showthread.php?goto=newpost&t=80146
+http://forums.microsoft.com/MSDN/default.aspx
+http://forums.military.com/eve/ubb.x/a/tpc/f/3241924461/m/666102875
+http://forums.military.com/eve/ubb.x/a/tpc/f/3701925702/m/521108883/r/last_reply
+http://forums.military.com/eve/ubb.x/a/tpc/f/553107331/m/678100113/r/9930051200001
+http://forums.military.com/eve/ubb.x/a/tpc/f/553107331/m/72600580813/inc/1
+http://forums.military.com/eve/ubb.x/a/tpc/f/672198221/m/1050054200001/p/2
+http://forums.military.com/eve/ubb.x/a/tpc/f/78192862/m/8950042100001
+http://forums.military.com/eve/ubb.x/a/tpc/f/78192862/m/8950042100001/r/2330033100001
+http://forums.military.com/eve/ubb.x/a/tpc/f/78192862/m/8950042100001/r/3730044100001
+http://forums.military.com/eve/ubb.x/a/tpc/f/78192862/m/8950042100001/r/8740033100001
+http://forums.military.com/eve/ubb.x/a/tpc/f/78192862/m/8950042100001/r/9570032100001
+http://forums.mobileburn.com/archive/index.php/t-430.html
+http://forums.mobileburn.com/archive/index.php/t-7284.html
+http://forums.mobileburn.com/showthread.php?t=7284
+http://forums.mogusland.com/archive/index.php/t-18166.html
+http://forums.mtbr.com/showthread.php?t=34015
+http://forums.nyyfans.com/archive/index.php/t-12852.html
+http://forums.nyyfans.com/showthread.php?t=78613
+http://forums.organicgardening.com/thread.jspa?messageID=106349
+http://forums.organicgardening.com/thread.jspa?threadID=19224&messageID=106349
+http://forums.organicgardening.com/thread.jspa?threadID=19224&tstart=30
+http://forums.oscommerce.com/lofiversion/index.php/t156585.html
+http://forums.pcworld.co.nz/archive/index.php/t-43684.html
+http://forums.pcworld.co.nz/archive/index.php/t-47564.html
+http://forums.phantomgourmet.com/forums/shwmessage.aspx?ForumID=9&MessageID=3422
+http://forums.photobucket.com/archive/index.php/t-4213.html
+http://forums.procooling.com/vbb/showthread.php?t=9828
+http://forums.relicnews.com/archive/index.php/t-2124.html
+http://forums.relicnews.com/showthread.php?goto=lastpost&t=33619
+http://forums.relicnews.com/showthread.php?t=34406&page=2
+http://forums.relicnews.com/showthread.php?t=53858&page=2
+http://forums.relicnews.com/showthread.php?t=53858&page=4
+http://forums.rpghost.com/archive/index.php/t-17045.html
+http://forums.runnersworld.com/thread.jspa?threadID=244899&tstart=0
+http://forums.sjgames.com/showthread.php?t=3496&page=5
+http://forums.snapstream.com/vb/showthread.php?t=22115&goto=nextnewest
+http://forums.starwars.com/thread.jspa?threadID=112668&start=90
+http://forums.starwars.com/thread.jspa?threadID=213527&tstart=225
+http://forums.starwars.com/thread.jspa?threadID=213527&tstart=250
+http://forums.starwars.com/thread.jspa?threadID=222689&start=104
+http://forums.starwars.com/thread.jspa?threadID=222689&start=105
+http://forums.starwars.com/thread.jspa?threadID=73789&start=135
+http://forums.station.sony.com/swg/board/message?board.id=general_star_wars&message.id=35106
+http://forums.station.sony.com/swg/board/message?board.id=in_live&message.id=43271
+http://forums.tantra.ph/index.php?showtopic=19417&view=getnewpost
+http://forums.tantra.ph/lofiversion/index.php/t19417.html
+http://forums.techguy.org/archive/index.php/t-198534.html
+http://forums.techguy.org/forumdisplay.php?do=markread
+http://forums.techguy.org/showthread.php?goto=lastpost&t=318702
+http://forums.techguy.org/showthread.php?p=2295245
+http://forums.techguy.org/showthread.php?t=318702&page=2
+http://forums.techguy.org/showthread.php?t=319985
+http://forums.televisionwithoutpity.com/index.php?showtopic=3118386&st=0
+http://forums.televisionwithoutpity.com/index.php?showtopic=3118386&st=15
+http://forums.thecpl.com/ubb/ultimatebb.php?ubb=get_topic;f=30;t=000095
+http://forums.thesimsresource.com/showthread.php?t=204785
+http://forums.thesimsresource.com/showthread.php?t=204785&page=1
+http://forums.ubi.com/eve/ubb.x/a/frm/f/9371032962
+http://forums.ubi.com/eve/ubb.x/a/tpc/f/26310365/m/9691056133/inc/-1
+http://forums.ubi.com/eve/ubb.x/a/tpc/f/857101043/m/2161022923/r/2711091133
+http://forums.vogue.com.au/archive/index.php/t-179.html
+http://forums.warwick.ac.uk/wf/browse/thread.jsp?fid=1&tid=14383
+http://forums.webhostdir.com/showthread.php?p=28010&mode=threaded
+http://forums.webhostdir.com/showthread.php?t=10206
+http://forums.whirlpool.net.au/forum-replies.cfm?t=131657&p=14
+http://forums.whirlpool.net.au/forum-replies.cfm?t=283519
+http://forums.whirlpool.net.au/forum-replies.cfm?t=290397
+http://forums.winamp.com/showthread.php?s=&threadid=171754
+http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=140319
+http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=781943
+http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=788265
+http://forums2.battleon.com/f/fb.asp?m=301477
+http://forums2.gardenweb.com/forums/load/accout/msg081910434466.html
+http://forums2.gardenweb.com/forums/load/design/msg092248278303.html
+http://forums2.gardenweb.com/forums/load/ponds/msg0622391520038.html
+http://forums2.gardenweb.com/forums/load/seed/msg012108104920.html
+http://forums2.gardenweb.com/forums/load/strucs/msg0114565431072.html
+http://forums3.aclu.org/messageview.cfm?catid=107&threadid=7155
+http://forward.com/articles/2729
+http://foucault.info/Foucault-L/archive/msg05919.shtml
+http://found-art.com/index.php
+http://foundation.intouch.org/foundation/legacy/household.html
+http://foundation1.org/papers-policy/intl-jewish-parliament.htm
+http://fox40.trb.com/ktxl-petzold_article.htmlstory
+http://foxborough.k12.ma.us/fpsweb/TAY/Taylorspeech/TAYWhat%20do%20we%20do%20in%20speech.html
+http://foxsoccershop.com/testimonials.html
+http://foxsports.news.com.au/story/0,8659,15620239-23210,00.html
+http://fp.arizona.edu/mesassoc/Bulletin/Pres%20Addresses/khalidi.htm
+http://fp.arizona.edu/senate/minutefs/1997-98/mn03-98.htm
+http://fp.bio.utk.edu/mycology/papers.htm
+http://fp.ignatz.plus.com/roadtonowhere.htm
+http://fp.miranda.f9.co.uk/trenches/chapter2a.html
+http://fparchive.ceip.org/aboutfp/press/news.php
+http://fpc.state.gov/fpc/45701.htm
+http://fpc.state.gov/fpc/48259.htm
+http://fpc.state.gov/fpc/6176.htm
+http://fragments.consc.net/djc/2005/03/major_figures_i.html
+http://fraser.cc/Talks/Chronicle.html
+http://fray.com/events/fray_day_8_new_haven/
+http://fray.slate.msn.com/id/2120853/
+http://frazer.rice.edu/~mgpowell/mt/archives/000074.html
+http://free-dating.net.ru/love/coupons/
+http://free-fire.blogspot.com/2004/10/wishing-and-hoping.html
+http://free.freespeech.org/americanstateterrorism/vietnamgenocide/Mylai.html
+http://free.freespeech.org/manushi/136/homeless.html
+http://free.freespeech.org/unlimitedfreedom/seattle.html
+http://free.hostultra.com/~jarvis/vile.html
+http://free.ngo.pl/lastrada/page2.html
+http://free.oth.net/td/free.html
+http://freeahmed.blogspot.com/
+http://freebies.about.com/library/weekly/aa100100a.htm
+http://freecycle.org/archives/000264.php
+http://freedaemonconsulting.com/rates.php.en
+http://freedom.orlingrabbe.com/lfetimes/balance_sheet.htm
+http://freedomhouse.org/religion/sudan/publications/Reeves_UN_Sudan_vote.htm
+http://freedomkeys.com/machancollection.htm
+http://freedomlaw.com/nlp.htm
+http://freedomministries.com/alabama.html
+http://freedomministries.com/northtenn.html
+http://freedomofflight.tv/public/index.php?which=canopy
+http://freedomofmind.com/resourcecenter/contact/
+http://freedomofmind.com/resourcecenter/groups/s/soka/raped.htm
+http://freeinternetpress.com/modules.php?name=News&file=article&sid=3828
+http://freelancewrite.about.com/od/weeklyqa/a/qa020105.htm
+http://freemasonry.bcy.ca/anti-masonry/anti-masonry01.html
+http://freemasonry.bcy.ca/grandlodge/addresses/walls_annual.html
+http://freemind.sourceforge.net/
+http://freepages.genealogy.rootsweb.com/~allpoms/genetics3.html
+http://freepages.genealogy.rootsweb.com/~gentutor/churches.html
+http://freepages.genealogy.rootsweb.com/~jdevlin/town_hist/durham_ct_hist.htm
+http://freepages.genealogy.rootsweb.com/~nzbound/nelson.htm
+http://freepages.history.rootsweb.com/~dav4is/people/X-C.htm
+http://freerangelibrarian.com/
+http://freerangelibrarian.com/archives/013105/the_last_mile_a_cha.php
+http://freerangelibrarian.com/archives/2004_10.php
+http://freerangelibrarian.com/archives/blogging_and_journalism_and_usn/index.php
+http://freerangelibrarian.com/archives/five_minute_reviews/index.php
+http://freerangelibrarian.com/archives/movable_type/index.php
+http://freerangelibrarian.com/archives/regular_issues/index.php
+http://freerepublic.com/focus/f-news/1319856/posts
+http://freespace.virgin.net/clare.h/hdg3Court.htm
+http://freespace.virgin.net/d.gardiner/GrandOD.html
+http://freespace.virgin.net/gerald.hughes/history/valmag.htm
+http://freespace.virgin.net/john.cletheroe/usa_can/driving/right.htm
+http://freespace.virgin.net/john.cletheroe/usa_can/money/usa_cur.htm
+http://freespace.virgin.net/karl_and.gnome/origins.htm
+http://freespace.virgin.net/peter_d.brown/rail.htm
+http://freethoughts.org/archives/000258.php
+http://freethoughts.org/archives/000688.php
+http://freethoughts.org/archives/000698.php
+http://freethoughts.org/archives/000749.php
+http://freethoughts.splinder.com/
+http://freetrial.sitesell.com/
+http://freeware.sgi.com/Installable/plan-1.8.5.html
+http://french.about.com/library/bl-frenchinenglish-list.htm
+http://french.about.com/library/weekly/aa111000.htm
+http://freshmeat.net/articles/view/100/
+http://freshmeat.net/articles/view/1026/
+http://freshmeat.net/articles/view/1049/
+http://freshmeat.net/articles/view/1267/
+http://freshmeat.net/articles/view/141/
+http://freshmeat.net/articles/view/145/
+http://freshmeat.net/articles/view/147/
+http://freshmeat.net/articles/view/216/
+http://freshmeat.net/articles/view/494/
+http://freshmeat.net/articles/view/495/
+http://freshmeat.net/articles/view/557/
+http://freshmeat.net/articles/view/639/
+http://freshmeat.net/articles/view/774/
+http://freshmeat.net/projects/acctmgr/
+http://freshmeat.net/projects/gentoo/
+http://freshmeat.net/projects/openwebmail/
+http://freshtakes.typepad.com/znetlady/2005/06/modern_tools_fo.html
+http://fresno.networkofcare.org/family/library/detail.cfm?id=567&cat=77
+http://frictionmagazine.com/politik/columns/february.asp
+http://friends.macjournals.com/mattd/losingABS
+http://friends.pcukraine.org/
+http://friendsinbusiness.com/board1/index.cgi?read=90329
+http://frist.senate.gov/index.cfm?FuseAction=Speeches.Detail&Speech_id=113&Month=9&Year=2004
+http://frist.senate.gov/index.cfm?FuseAction=Speeches.Detail&Speech_id=202&Month=5&Year=2005
+http://frist.senate.gov/index.cfm?FuseAction=Speeches.Detail&Speech_id=226&Month=6&Year=2005
+http://frl.bluehighways.com/frlarchives/regular_issues/index.php
+http://frli.law.gov.au/s97.vts?VdkVgwKey=1997B02749&ViewTemplate=frliview.hts&action=View
+http://frontier.userland.com/stories/storyReader$3041
+http://frontpagemag.com/Articles/Printable.asp?ID=16625
+http://frontwheeldrive.com/erik_davis.html
+http://frontwheeldrive.com/manuel_de_landa.html
+http://frost.freehosting.net/coll1.htm
+http://frozentexan.typepad.com/frozentexan/2005/03/
+http://frp.aysps.gsu.edu/frp/frpreports/Rpt68/
+http://frugalliving.about.com/
+http://frugalliving.about.com/cs/consumeraddiction/a/043002.htm
+http://frugalliving.about.com/cs/tips/a/blvinpets.htm
+http://fruhead.com/aspects/plot/
+http://fseg.gre.ac.uk/fire/PED03_proceedings_preface_toc.html
+http://fseg.gre.ac.uk/mscfire/
+http://fsfeurope.org/documents/whyfs.en.html
+http://fsfeurope.org/documents/whyfs.html
+http://fsfeurope.org/projects/swpat/letter-20041206.en.html
+http://fsnews.findlaw.com/cases/1st/042234.html
+http://fsos2.che.umn.edu/mtarp/Icarpapers/macdonal.htm
+http://fsu.campusrec.com/im/faq/howto.html
+http://ftad.osu.edu/dosomethinggreat/miranda.html
+http://fte.org/teachers/lessons/edsu/edsuless1.htm
+http://fte.org/teachers/lessons/edsu/edsuless3.htm
+http://fte.org/teachers/lessons/edsu/edsuless5.htm
+http://fte.org/teachers/lessons/prize/where_2many$.htm
+http://ftp.arl.mil/~mike/ping.html
+http://fuckcorporategroceries.net/
+http://fuggingitup.blogspot.com/
+http://fulcruminquiry.com/article28.htm
+http://fullcourt.scout.com/2/374331.html
+http://fullcoverage.yahoo.com/i/732
+http://fullduplex.org/tardblog/sa/1-16.htm
+http://fullmoon.typepad.com/chaos/2005/01/as_previously_a.html
+http://fullmoon.typepad.com/chaos/2005/06/oh_lord_theres_.html
+http://fumbling.com/blog/
+http://funagain.com/control/product/~product_id=013745
+http://fundraising-directory.fundraiserhelp.com/fundraiser-ideas/directory/ideas-booster-club-fundraising.html
+http://fundraising-directory.fundraiserhelp.com/fundraising-ideas/directory/high-school-booster-club-fundraising-ideas.html
+http://funds.reuters.com/lipper/retail/reuters/researchstudies.asp?type=all
+http://funds.reuters.com/lipper/retail/reuters/researchstudies.asp?type=etf
+http://fungus.org.uk/nwfg.htm
+http://funk.co.uk/2005/02/streatham-common.html
+http://funky16corners.blogspot.com/2004/12/sir-douglas-quintet-car-crash-recovery.html
+http://funnybusiness.typepad.com/funnybusiness/2005/05/
+http://fusionanomaly.net/go.html
+http://fusionanomaly.net/hairstyles.html
+http://fusionanomaly.net/mysteryofchance.html
+http://future.iftf.org/2005/01/the_value_of_ge.html
+http://future.state.gov/where/exchange/44906.htm
+http://future.state.gov/where/exchange/44928.htm
+http://future.state.gov/where/exchange/44929.htm
+http://futurecam.com/dustDevils.html
+http://futurepositive.synearth.net/2002/10/27
+http://futurepositive.synearth.net/2004/03/24
+http://futures.fxstreet.com/Futures/content/100120/content.asp?data=12/17/2004
+http://futures.fxstreet.com/Futures/content/100400/content.asp?data=1/17/2005
+http://futures.fxstreet.com/Futures/content/100400/content.asp?data=1/18/2005
+http://futures.fxstreet.com/Futures/content/100530/content.asp?data=5/31/2005
+http://futurshox.net/aero.php3
+http://fuzzysoftware.com/default.asp?id=8&parentID=233
+http://fwp.state.mt.us/mtoutdoors/HTML/Articles/2004/wardens.htm
+http://fxr.watson.org/fxr/source/mm/readahead.c?v=linux-2.6.9
+http://fyi.cnn.com/2001/fyi/teachers.ednews/08/30/girls.schools/
+http://fyi.cnn.com/2002/fyi/teachers.ednews/08/27/sat.scores/
+http://ga.redblackandgreen.net/justiceForRusty.htm
+http://ga.water.usgs.gov/edu/dictionary.html
+http://ga1.org/nmac/notice-description.tcl?newsletter_id=1199188
+http://gacc.nifc.gov/swcc/
+http://gachristiancoalition.org/chairman2.html
+http://gaclark.com/articles/debate_over_direct_marketing_vs.htm
+http://gadflyer.com/articles/?ArticleID=198
+http://gadflyer.com/articles/?ArticleID=216
+http://gadflyer.com/warandpiece/
+http://gadflyer.com/warandpiece/index.php?Week=200435
+http://gadflyonline.com/05-06-02/ftr-smile.html
+http://gag.org/newyork/pictureshow/faq.php
+http://galileo.rice.edu/lib/student_work/astronomy95/telescope_design.html
+http://galileo.rice.edu/sci/observations/saturn.html
+http://galileoandeinstein.physics.virginia.edu/lectures/sreltwins.html
+http://gallery.carnegiefoundation.org/mpincus/circle_narrative.htm
+http://gallery.poetshaven.com/bookcontents.php?action=&section=2&page=21&viewis=&id=
+http://galliform.bhs.mq.edu.au/
+http://gameboy.ign.com/articles/454/454349p1.html
+http://gameboy.ign.com/articles/507/507432p1.html
+http://gameboy.ign.com/articles/537/537972p1.html
+http://gameboy.ign.com/articles/562/562958p1.html
+http://gamefest.com/product_info.php/products_id/1222
+http://gamefest.com/product_info.php/products_id/1223
+http://gamefest.com/product_info.php/products_id/1302
+http://gamefest.com/product_info.php/products_id/985
+http://gamegroup.ziffdavis.com/rates/specs.html
+http://gamerhelp.com/gameboy_advance/PokemonFireRed/101246.shtml
+http://games.channel.aol.com/article.adp?articleID=301095
+http://games.channel.aol.com/previews.adp?gameID=26748&articleID=304864
+http://games.channel.aol.com/review.adp?gameID=8650
+http://games.espn.go.com/content/uber/2004/story?page=overallchamp
+http://games.slashdot.org/
+http://games.slashdot.org/article.pl?sid=05/02/21/1023219&tid=187&tid=97&tid=10
+http://games.softpedia.com/get/Patch/Chaos-League-Patch.shtml
+http://gamesandbeyond.com/ca/caction.html
+http://gamesandbeyond.com/review/batmobile/batmobilereview1.html
+http://gamingfloor.biz/forum/showthread.php?goto=lastpost&t=1465
+http://garden.lifetips.com/
+http://garden.lifetips.com/TipSC.asp__Q__id__E__57769
+http://garden.lifetips.com/TipSC.asp__Q__id__E__57797
+http://gardenline.usask.ca/pests/kitchen.html
+http://gardens.bobvila.com/Article/778.html
+http://gardenstate.typepad.com/zach_braffs_garden_state_/2004/09/
+http://garnet.acns.fsu.edu/~jroche/road_rod.html
+http://garnet.acns.fsu.edu/~phensel/data.html
+http://garnet.acns.fsu.edu/~whmoore/ipi/ipiscale.html
+http://garyrosenzweig.com/books/book3.html
+http://garyrosenzweig.com/books/book7.html
+http://gas.sagepub.com/cgi/content/refs/18/1/82
+http://gaslight.mtroyal.ca/gaultX04.htm
+http://gaucher.mgh.harvard.edu/living.html
+http://gauss.ffii.org/PatentView/EP760564
+http://gawdessness.blogspot.com/
+http://gay_blog.blogspot.com/2004/07/church-and-civil-rights-groups-try-to.html
+http://gaycitynews.com/gcn_358/newsbriefs.html
+http://gaycitynews.com/gcn_358/thetroublewithshirley.html
+http://gayguy.blogs.com/
+http://gazette.ireland.anglican.org/160404/letters160404.htm
+http://gazette.ireland.anglican.org/201202/index201202.htm
+http://gazette.unc.edu/archives/04jul14/file.2.html
+http://gbgm-umc.org/global_news/full_article.cfm?articleid=2709
+http://gbgm-umc.org/global_news/full_article.cfm?articleid=3260
+http://gbgm-umc.org/navitext.html
+http://gbgm-umc.org/umcor/hunger/coffee.cfm
+http://gbgm-umc.org/umhistory/wesley/advice.html
+http://gbgm-umc.org/umhistory/wesley/sermons/serm-139.stm
+http://gbgm-umc.org/umw/bible/mawomen.stm
+http://gbmna.org/a.php?id=89
+http://gbr.pepperdine.edu/014/teams.html
+http://gbxforums.gearboxsoftware.com/showthread.php?goto=lastpost&t=38358
+http://gbxforums.gearboxsoftware.com/showthread.php?t=38358
+http://gcc.gnu.org/onlinedocs/gcc-3.2.3/cpp/Traditional-Mode.html
+http://gcmd.nasa.gov/records/GCMD_TWPC2surface_meteorology.html
+http://gcrc.meds.cwru.edu/stachy/default.htm
+http://gd.cnread.net/cnread1/ewjd/g/gibbon/hor/239.htm
+http://gdl.cdlr.strath.ac.uk/100men/gm82.htm
+http://gdl.cdlr.strath.ac.uk/aspect/aspect2003/lab/a03labdfw.htm
+http://gdl.cdlr.strath.ac.uk/aspect/aspect2003/lab/a03labfaw.htm
+http://gear.ign.com/articles/307/307123p1.html
+http://gearup.k12.wv.us/?acs=sap
+http://gee.cs.oswego.edu/dl/coord/
+http://geekbird.blogspot.com/2005/05/exclusive-combat-jack-interview.html
+http://geekswithblogs.net/SabotsShell/
+http://geekswithblogs.net/ksellenrode/archive/2004/05/13/4845.aspx
+http://geekswithblogs.net/rumair/archive/2004/03/28/3460.aspx
+http://gefen.blogspot.com/2003_11_01_gefen_archive.html
+http://gefilte.blogspot.com/
+http://gemini.tntech.edu/~mwmcrae/esre95.html
+http://genealogy.about.com/library/blquery121600.htm
+http://genealogy.drefs.net/Introduction.htm
+http://genehack.net/diary/2003/03/20030324.html
+http://generous.net/nav/col.shtml
+http://geneva.rutgers.edu/src/christianity/church.html
+http://genome-www.stanford.edu/yeast-worm/worm_methods.html
+http://genome.pfizer.com/hsl3.cfm
+http://genomebiology.com/2002/3/8/interactions/1004
+http://genomebiology.com/2005/6/2/R21
+http://genomebiology.com/researchnews/default.asp?arx_id=gb-spotlight-20030814-01
+http://genomebiology.com/researchnews/default.asp?arx_id=gb-spotlight-20050324-01
+http://gentshair.com/feedback.htm
+http://genuki.cs.ncl.ac.uk/DEV/OPCproject.html
+http://genxmisanthrope.blogspot.com/2004/07/reader-emails-finally.html
+http://geo.arc.nasa.gov/sge/landsat/lcarwg3.html
+http://geochange.er.usgs.gov/sw/impacts/biology/crypto/
+http://geodsoft.com/about/making/stupid.htm
+http://geodsoft.com/book/softsys/
+http://geography.about.com/library/cia/blc3bahraine.htm
+http://geography.about.com/library/cia/blc3canadae.htm
+http://geography.about.com/library/cia/blc3usgue.htm
+http://geography.about.com/library/faq/blqzsafcapitals.htm
+http://geography.bu.edu/Faculty/Phillips/michael.htm
+http://geology.about.com/
+http://geology.about.com/library/weekly/aa080998.htm
+http://geology.dictonarypage.co.uk/
+http://geopubs.wr.usgs.gov/docs/wrgis/oct_04.html
+http://geopubs.wr.usgs.gov/i-map/i2431/
+http://georgeboone.blogspot.com/2005/02/r-kelly-has-set-new-low.html
+http://georgegraham.com/producer.html
+http://georgegraham.com/solas3.html
+http://georgemustgo.blogspot.com/
+http://geraschenko.blogspot.com/2004_06_01_geraschenko_archive.html
+http://gerd.msn.com/article.aspx?aid=27
+http://german.about.com/od/teaching/a/realia.htm
+http://germanvillage.com/
+http://gerontologist.gerontologyjournals.org/cgi/content/full/44/6/818
+http://gershkuntzman.homestead.com/files/New_Trash_City.htm
+http://gesswhoto.com/paradise-chapter6.html
+http://gestalttheory.net/archive/henle.html
+http://get.info.bg/properties/Dir.asp?r=MEZDRA
+http://getbuf.com/articles/geneticfactors.shtml
+http://getgrants.ca.gov/Topic12.html
+http://getsmaart.com/student-guides/index.php/career-news/applied-science-at-wolverhampton
+http://getthenews.net/Sam/ransom.htm
+http://gfp.typepad.com/the_garden_of_forking_pat/2004/09/free_will_and_g.html
+http://gfp.typepad.com/the_garden_of_forking_pat/2004/12/determinism_and.html
+http://ghanareview.com/review/index.php?class=Int&date=2004-11-05&id=8341
+http://ghc.ctc.edu/
+http://ghw.wordherders.net/archives/001684.html
+http://gia.azn-bish.com/
+http://giagia.blogspot.com/2004/11/this-is-where-we-begin-over-past.html
+http://gifford-observatory.wellington.net.nz/Progress.html
+http://giftshop.scottishtartans.org/
+http://gigadial.net/public/station/4605
+http://gigibeads.net/prayerbeads/saints/clareassisi.html
+http://gilletts.com.au/information.php?info_id=32
+http://gimbo.org.uk/archives/2001/07/
+http://ginnybonk.blogspot.com/
+http://ginnybonk.blogspot.com/2005/05/ah-procrastination.html
+http://ginnybonk.blogspot.com/2005_06_01_ginnybonk_archive.html
+http://giove.cnuce.cnr.it/interact2005/submit.html
+http://gippsland.seafm.com.au/conditions.asp
+http://girardianlectionary.net/res/jbw_ch4c_paul.htm
+http://girlcomeundone.com/
+http://gis.esri.com/library/userconf/proc96/camber_bosnia.htm
+http://gislounge.com/ucon/ucgml3.shtml
+http://gkokot.free.fr/ipaqp02a.htm
+http://glazkov.com/blog/archive/2005/04/18.aspx
+http://glef.org/modules/LASS/index.php
+http://glenfuller.blogspot.com/2005/05/on-shared-event-of-kiss.html
+http://glenngouldstudio.cbc.ca/box_office.html
+http://glesgapals.proboards19.com/index.cgi?action=display&board=contact&num=1071519477&start=30
+http://glimpsesofgrace.org/html/Nov98.html
+http://glish.com/css/hacks.asp
+http://global.mci.com/uk/news/newsletters/mcinews/enl.xml?snlid=61&scountry=gb&slang=en
+http://global.mci.com/us/enterprise/insight/cerfs_up/
+http://global.mci.com/us/enterprise/insight/cerfs_up/fun/
+http://global.med.cornell.edu/news/wcmc/wcmc_2005/05_16_05.shtml
+http://global.solutions.brother.com/Library/en_us/faq/faq000447_000/
+http://global.tommy.com/opencms/opencms/tommy-europe/company-info/global-labor-practices/mae-sot-norwegian-church.html
+http://global.yesasia.com/en/PrdDept.aspx/pid-1003991337/section-videos/code-k/version-all/
+http://globaledge.msu.edu/KnowledgeRoom/FeaturedInsights/0002.asp
+http://globaledge.msu.edu/ibrd/busresmain.asp?ResourceCategoryID=7
+http://globalguerrillas.typepad.com/johnrobb/
+http://globalia.net/donlope/fz/lyrics/Fillmore_East_June_1971.html
+http://globalization.about.com/
+http://globalresearch.ca.myforums.net/viewtopic.php?t=651
+http://globalrph.healthology.com/globalrph/14887.htm
+http://globblog.blogspot.com/
+http://globblog.blogspot.com/2003_06_01_globblog_archive.html
+http://globeandmail.workopolis.com/content/resource/testimonials.html
+http://globetrotter.berkeley.edu/911/courses/study_guideS05.html
+http://globetrotter.berkeley.edu/Elberg/GartonAsh/gartonash6.html
+http://globetrotter.berkeley.edu/Elberg/Hitchens/hitchens-con3.html
+http://globetrotter.berkeley.edu/conversations/Ball/ball-con4.html
+http://globetrotter.berkeley.edu/conversations/Weisskopf/weisskopf2.html
+http://globetrotter.berkeley.edu/people/York/york82-con3.html
+http://globetrotter.berkeley.edu/people2/Burghardt/burghardt-con3.html
+http://globetrotter.berkeley.edu/people2/Lyman/lyman-con2.html
+http://globetrotter.berkeley.edu/people2/Marmot/marmot-con3.html
+http://globetrotter.berkeley.edu/people2/Nagler/nagler-con3.html
+http://globetrotter.berkeley.edu/people3/Arquilla/arquilla-con2.html
+http://globetrotter.berkeley.edu/people3/Beilin/beilin-con2.html
+http://globetrotter.berkeley.edu/people3/Hass/hass-con3.html
+http://globetrotter.berkeley.edu/people3/Krasner/krasner-con4.html
+http://globetrotter.berkeley.edu/people3/MSmith/msmith-con3.html
+http://globetrotter.berkeley.edu/people4/Chu/chu-con3.html
+http://globetrotter.berkeley.edu/people4/Chu/chu-con5.html
+http://globetrotter.berkeley.edu/people4/Urquhart/urquhart04-con5.html
+http://globetrotter.berkeley.edu/people5/Dobbins/dobbins-con5.html
+http://globin.cse.psu.edu/html/pip/examples.html
+http://glocktalk.com/sitemap/topic/317628-1.html
+http://gloria-brame.com/therapy/
+http://gloryroad.blog-city.com/
+http://glowlab.com/lab/goods.php
+http://glucat.sourceforge.net/
+http://glycob.oupjournals.org/cgi/content/full/9/3/293
+http://gmj.gallup.com/content/default.asp?ci=9841
+http://gmpg.org/xfn/background
+http://gnomedesktop.org/node/2227
+http://gnomedesktop.org/taxonomy/term/32?from=75
+http://gnosis.cx/publish/mertz/eowilson.html
+http://gnrt.terena.nl/content.php?section_id=187
+http://gnso.icann.org/meetings/minutes-dow12tf-22feb05.shtml
+http://gnso.icann.org/meetings/minutes-gnso-25sep03.shtml
+http://gnu.digitaltrust.it/gnu/linux-and-gnu.html
+http://gnu.freehistory.org/gnu/linux-and-gnu.html
+http://gnu.fyxm.net/gnu/linux-and-gnu.html
+http://gnu.ghks.de/philosophy/motivation.html
+http://gnu.intissite.com/philosophy/motivation.html
+http://gnu.mirror.fr/gnu/linux-and-gnu.html
+http://go.microsoft.com/fwlink/?linkid=3052&kbid=284204
+http://go.theregister.com/pearson/100000000030876
+http://goanna.cs.rmit.edu.au/~jah/
+http://goarmysports.collegesports.com/sports/m-footbl/spec-rel/120704aac.html
+http://gobulldogs.collegesports.com/genrel/060805aaa.html
+http://gobulls.usf.edu/tickets/tickets.htm
+http://gocrimson.collegesports.com/sports/m-hockey/archive/081204aal.html
+http://god-of-small-things.blogspot.com/2004_03_03_god-of-small-things_archive.html
+http://goddamliberal.port5.com/
+http://goddem.blogspot.com/
+http://godkind.org/kind.html
+http://godonline.co.za/Article94-mode=thread-order0-threshold0.html
+http://godscopybook.blogs.com/
+http://godsdirectcontact.us/com/walkthewayofLove/spiritualleaders.html
+http://godshot.blogspot.com/2005_02_20_godshot_archive.html
+http://goes.gsfc.nasa.gov/text/goes12results.html
+http://goeurope.about.com/
+http://goeurope.about.com/cs/languages/a/language_trav.htm
+http://gofrance.about.com/b/a/168945.htm
+http://gofrance.about.com/b/a/169931.htm
+http://gofrance.about.com/b/a/2004_05_19.htm
+http://gofrance.about.com/b/archives.htm
+http://gofugyourself.typepad.com/go_fug_yourself/2005/04/a_royal_fugging_3.html
+http://gofugyourself.typepad.com/go_fug_yourself/bai_ling/
+http://gohuskies.collegesports.com/sports/m-footbl/spec-rel/101899aab.html
+http://goinside.com/01/6/ashtanga.html
+http://goinside.com/02/10/square1.html
+http://goinside.com/02/2/bank.html
+http://goinside.com/03/12/pcs.html
+http://goinside.com/97/11/qv700.html
+http://goinside.com/98/1/kirk-1.html
+http://goinside.com/98/10/llbean.html
+http://goinside.com/98/3/elite.html
+http://goinside.com/98/5/aoe.html
+http://goinside.com/99/2/concepts.html
+http://goinside.com/99/4/cfs.html
+http://goinside.com/99/9/reunion.html
+http://goland.org/financial/buyingautoinsurance.htm
+http://goldismoney.info/forums/archive/index.php/f-5.html
+http://goldsea.com/Air/Issues/Spending/spending.html
+http://goldsea.com/Parenting/Crises/crises2.html
+http://goldsea.com/Personalities/Wenmingna/wenmingna.html
+http://goldsea.com/Poll/Date/date.html
+http://golf.about.com/cs/annikasorenstam/a/annikaupdate.htm
+http://golfinvestors.com/about/get_started_investor.php
+http://golfspast.com/page/E/CTGY/HMM
+http://goliath.ecnext.com/coms2/summary_0199-273053_ITM&referid=2090
+http://goliath.inrs-ener.uquebec.ca/surfsci/sc2k2p/
+http://gonyc.about.com/od/planyourtriptonyc/a/December.htm
+http://gonzoengaged.blogspot.com/2001_10_21_gonzoengaged_archive.html
+http://goodandhappy.typepad.com/g_as_in_good_h_as_in_happ/
+http://goodfelloweb.com/werbe/rikkie.htm
+http://goodlooguide.freeservers.com/UK/
+http://goodoman.blogspot.com/2003_06_29_goodoman_archive.html
+http://googolplex.cuna.org/12433/cnote/story.html?doc_id=838
+http://googolplex.cuna.org/15378/ajsmall/story.html?doc_id=768
+http://googolplex.cuna.org/23683/ajsmall/story.html?doc_id=877
+http://gopack.collegesports.com/sports/m-footbl/spec-rel/112704aaa.html
+http://goprincetontigers.collegesports.com/sponsorship/cp-promos-entitlement.html
+http://gorp.away.com/gorp/activity/hiking/skills/found.htm
+http://gort.ucsd.edu/mtdocs/archives/ssh/cat_from_the_suggestion_box.html
+http://gos.sbc.edu/c/ct3.html
+http://gos.sbc.edu/f/ferraro.html
+http://gos.sbc.edu/k/khouri.html
+http://gos.sbc.edu/r/eleanor1.html
+http://gos.sbc.edu/s/shipley.html
+http://gotchange.blogspot.com/
+http://gouk.about.com/od/whattoseedo/
+http://gourmetsleuth.com/recipe_dogbiscuit.htm
+http://governance.wri.org/pubs_content_text.cfm?ContentID=1750
+http://governing.com/articles/10elect.htm
+http://governing.com/class.htm
+http://governing.com/gpp/2003/gp3intro.htm
+http://governing.com/notebook/prev.htm
+http://governor.mt.gov/speeches/gov/inaugural.asp
+http://govinfo.library.unt.edu/accessamerica/text/milgoods.html
+http://govinfo.library.unt.edu/npr/library/direct/memos/disputre.html
+http://govinfo.library.unt.edu/seniorscommission/pages/final_report/minorityReport.html
+http://govnet.co.uk/heading.php?magazine=1&ID=602
+http://govtsecurity.com/news/tom-ridge-difference/
+http://gr.bolt.com/games/codes/sony/bloodwalk.htm
+http://gr.bolt.com/games/dreamcast/rpg/phantasy_star_online_v2.htm
+http://gr.bolt.com/games/pc/action/half-life_2.htm
+http://gr.bolt.com/games/pc/action/half-life_counterstrike.htm
+http://gr.bolt.com/games/pc/action/unreal_return_na_pali.htm
+http://gr.bolt.com/games/pc/rpg/world_of_warcraft.htm
+http://gr.bolt.com/games/ps2/sim/dance_dance_revolution_max.htm
+http://gr.bolt.com/games/sony/action/gex_gecko.htm
+http://gr.bolt.com/games/xbox/action/simpsons_hit_and_run.htm
+http://gradpsych.apags.org/sep04/match.cfm
+http://grads.iges.org/grads/gadoc/bufrformat.html
+http://grads.iges.org/grads/gds/doc/user.html
+http://graduate.louisville.edu/prog_pubs/mentorhandbook.htm
+http://graduates.lovells.com/nextstep/calendar.shtml
+http://graham.main.nc.us/~bhammel/INS/abcnews.html
+http://grahamglass.blogs.com/main/
+http://grahamglass.blogs.com/main/2005/01/
+http://grande-bretagne.net/presshistory.htm
+http://grandrapidssafekids.org/carseatcheck.php?sec=4
+http://grannygear.com/AMTRI/rules.shtml
+http://grannyinsanity.blogspot.com/2005_02_20_grannyinsanity_archive.html
+http://grants.library.wisc.edu/individuals/internationalstudentsbooks.html
+http://grants.nih.gov/grants/glossary.htm
+http://grants.nih.gov/grants/guide/pa-files/PA-99-014.html
+http://grants.nih.gov/grants/guide/rfa-files/RFA-HL-98-010.html
+http://grants.nih.gov/grants/policy/nihgps_2001/part_iia_5.htm
+http://grants.nih.gov/grants/policy/nihgps_2001/part_iib_6.htm
+http://grants.nih.gov/training/faq_fellowships.htm
+http://graphicdesign.about.com/
+http://graphicdesign.meetup.com/boards/view/viewthread?thread=1230756
+http://graphics.csail.mit.edu/~hbriceno/climb/stroke2000/
+http://graphics.ethz.ch/~rkeiser/publications.html
+http://graphics.stanford.edu/software/scanview/instructions.html
+http://graphics.stanford.edu/~billyc/class/vis_win0304/as2/
+http://graphics.tomshardware.com/display/20021211/lcd-01.html
+http://graphics.tomshardware.com/graphic/19980202/
+http://graphics.tomshardware.com/graphic/20030930/radeon_9800-01.html
+http://graphicssoft.about.com/library/uc/g/ucg024cornelian.htm
+http://grassley.senate.gov/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=15&Month=7&Year=2004
+http://grassley.senate.gov/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=3554&Month=1&Year=2003
+http://grassley.senate.gov/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=4924&Month=3&Year=2005
+http://grassley.senate.gov/index.cfm?FuseAction=PressReleases.View&PressRelease_id=4924
+http://gray-robinson.com/practice%20areas/Admiralty.html
+http://gray-seddon-tea.com/fujian.shtml
+http://graytonbeach.com/
+http://grc.com/cttech.htm
+http://grc.com/default.htm
+http://grc.com/discussions.htm
+http://greatcommandment.net/content.php?id=36
+http://greaterboston.tv/features/cj_20040722.html
+http://greatsfandf.com/AUTHORS/BranchCabell.shtml
+http://grebel.uwaterloo.ca/aboutgrebel/releases/2004_7_lenenns.shtml
+http://greeneyedpagan.blogspot.com/
+http://greenhorizon.rec.org/insight-clean.html
+http://greenleaf.uncg.edu/community_supported_agriculture.html
+http://greenpeaceweb.org/shipbreak/
+http://greenplans.rri.org/resources/greenplanningarchives/germany/archives_germany.html
+http://greenroom.nochex.com/showthread.php?t=3593
+http://greenspin.blogspot.com/2003_11_02_greenspin_archive.html
+http://greenvilleonline.com/citypeople/news/2005/01/18/2005011856976.htm
+http://greenvilleonline.com/news/specialreport/2003/01/27/20030127371.htm
+http://greg.org/archive/2003/07/
+http://gregg.senate.gov/statements/0205BudgetStatement.htm
+http://gregg.senate.gov/statements/0205Genetic_Information.htm
+http://grimreaper.org/
+http://grnydgrl.typepad.com/
+http://grognard.com/pbem.html
+http://groovy.codehaus.org/
+http://grouchygolf.blogspot.com/
+http://grouchygolf.blogspot.com/2005/05/ohair-real-iron-asshole-bastard.html
+http://ground-transport.tradeworlds.com/web_category_14508.html
+http://grouper.ieee.org/groups/754/meeting-minutes/01-10-18.html
+http://grouper.ieee.org/groups/754/meeting-minutes/02-09-19.html
+http://grouphug.us/random
+http://grouphug.us/random/friends
+http://grouphug.us/random/girls
+http://grouphug.us/random/love
+http://groups.colgate.edu/aarislam/response.htm
+http://groups.google.com/googlegroups/archive_announce_20.html
+http://groups.google.com/googlegroups/help.html
+http://groups.inf.ed.ac.uk/enhance/
+http://groups.msn.com/-Middle-Earth-/elvesbios.msnw?action=view_list&viewtype=0&row=15&sortstring=
+http://groups.msn.com/ActingFamily/general.msnw?action=get_message&mview=1&ID_Message=596
+http://groups.msn.com/AmericanFreeSpeech/thedungeon.msnw?action=get_message&mview=0&ID_Message=5980&LastModified=4675493360642300129
+http://groups.msn.com/BarrheadHighSchoolExPupils/wanttocontact.msnw?action=get_message&mview=0&ID_Message=837&LastModified=4675465468896187645
+http://groups.msn.com/BestFootForward/factsaboutmma1.msnw
+http://groups.msn.com/DealingwithChronicPain/helpfulhints.msnw
+http://groups.msn.com/DisabledWritersGroup/books.msnw
+http://groups.msn.com/DominicRoccosWeather/yourwebpage3.msnw
+http://groups.msn.com/EternalStardust/jamesleestanley71803parttwo.msnw
+http://groups.msn.com/FamiliesDealingWIthDownSyndrome/membersfamilyinfo.msnw
+http://groups.msn.com/GHCharacterBiosatGHFF/tracyquartermaine.msnw
+http://groups.msn.com/GlobalAffairs/europe.msnw?action=get_message&mview=0&ID_Message=23518&LastModified=4675469802011001393
+http://groups.msn.com/GossamerWingsGraphics/art101.msnw
+http://groups.msn.com/GrandLodgeofOntarioKofP/briefhistory.msnw
+http://groups.msn.com/GrundyNation/gcwboard.msnw?action=get_message&mview=0&ID_Message=5858&LastModified=4675493956292941496
+http://groups.msn.com/HolguinClub/aboutrelationships.msnw
+http://groups.msn.com/LosingwithGod/hintsandtips.msnw
+http://groups.msn.com/MORMONWhatDoLatterDaySaintsBelieve/readitagain1.msnw?action=get_message&mview=0&ID_Message=19025&LastModified=4675425874716413111
+http://groups.msn.com/MrBasilAmmori/laparoscopisherniarepair.msnw
+http://groups.msn.com/MyChristianDebate/discussdebate.msnw?action=get_message&mview=0&ID_Message=6785&LastModified=4675492698679070564
+http://groups.msn.com/NARCISSISTICPERSONALITYDISORDER/criticalerrors.msnw
+http://groups.msn.com/NewYorkActingStudio/general.msnw?action=get_message&mview=1&ID_Message=238
+http://groups.msn.com/NoFearCoalition/press1.msnw
+http://groups.msn.com/PRISONLONGHOUSE/tattoowithlove.msnw
+http://groups.msn.com/PaulMichaelGlaserandDavidSoulAppreciationSite/antoniofargasunofficialbiography.msnw
+http://groups.msn.com/Rumaenien2007Romania/romanianlanguage.msnw
+http://groups.msn.com/SpaceCowboySaloon/challengersts51l.msnw
+http://groups.msn.com/TeacupAndToyPetscom/waitinglistrulespart2.msnw
+http://groups.msn.com/TheVioletVoice/nancysjournal1.msnw
+http://groups.msn.com/asinglestandingteepee/alternativeenergy.msnw
+http://groups.msn.com/asinglestandingteepee/waterhowpurify.msnw
+http://groups.msn.com/asinglestandingteepee/yourwebpage10.msnw
+http://groups.msn.com/browse.msnw?catid=61&sortby=2&alphastart=Q
+http://groups.msn.com/itsaROTTnPITy/application.msnw
+http://groups.msn.com/nofearcoalition/press1.msnw
+http://groups.msn.com/spacecowboysaloon/challengersts51l.msnw
+http://groups.msn.com/whispas/morepoems.msnw
+http://groups.sims.berkeley.edu/msmdx/wiki/
+http://groups.ucanr.org/cvr/links.htm
+http://grouptravelleader.com/destination/7-99/orlando.htm
+http://grove.ufl.edu/~facss/club.htm
+http://growingsolutions.com/home/gs1/page/1/13
+http://growingsolutions.com/home/gs1/page/121/13
+http://growingsolutions.com/home/gs1/page/123/13
+http://growth-strategies.com/subpages/articles/092.html
+http://grunge.freeshell.org/sos/
+http://grunt.space.swri.edu/a-h.htm
+http://grunt.space.swri.edu/visit/px/a-h.htm
+http://gsb.uchicago.edu/news/2005-06-10h_lublin.aspx
+http://gse.ed.uiuc.edu/links.html
+http://gseweb.harvard.edu/news/features/johnson09012002.html
+http://gseweb.harvard.edu/~cso/int.html
+http://gseweb.harvard.edu/~hepg/marshall.html
+http://gslc.genetics.utah.edu/features/biowarfare/
+http://gsnv.org/
+http://gsusking.blogspot.com/
+http://gtk-wimp.sourceforge.net/news/rss.xml
+http://gtresearchnews.gatech.edu/newsrelease/advance.htm
+http://gtresearchnews.gatech.edu/newsrelease/movies.htm
+http://gtresearchnews.gatech.edu/newsrelease/reasoning.htm
+http://gtresearchnews.gatech.edu/reshor/rh-f00/math.html
+http://gtresearchnews.gatech.edu/reshor/rh-f02/fac-news.html
+http://gttr.sourceforge.net/
+http://guamcustoms.org/oco2005.htm
+http://guardian.150m.com/pentagon/what-hit-it.htm
+http://guide.darwinmag.com/technology/communications/voip/
+http://guide.darwinmag.com/technology/communications/voip/?action=print
+http://guide.gospelcom.net/resources/church-pages.php
+http://guide.gospelcom.net/resources/free-papers.php
+http://guide.gospelcom.net/resources/writing.php
+http://guide.symplicity.com/resources/industry_article.php?id=21
+http://guidelines.gov/summary/summary.aspx?ss=15&doc_id=5430&nbr=3724
+http://guides.ign.com/guides/497900/page_10.html
+http://guides.yourct.com/magazine/8/993/
+http://guitar-masters.com/Subst/Jazz2.html
+http://gundoghousedoor.com/articles/orphan_puppies.htm
+http://gunston.doit.gmu.edu/healthscience/722/frsession1.asp
+http://gunstonhall.org/georgemason/quotes.html
+http://gurno.com/adam/bleat/poker.shtml
+http://guru.krishna.org/Articles/2002/02/014.html
+http://gurukul.american.edu/heintze/stories.htm
+http://gurukul.american.edu/heintze/wilson.htm
+http://gurukul.ucc.american.edu/ted/deadsea.htm
+http://gutenberg.net.au/ausdisc/ausdisc2-04.html
+http://gutenberg.net.au/ebooks04/0400031h.html
+http://gutenberg.net.au/pgaus.html
+http://guthvenus.tripod.com/
+http://gwally.com/directions/000013.php
+http://gwally.com/directions/leaving.php
+http://gwnorth.blogspot.com/
+http://gwpapers.virginia.edu/articles/allison.html
+http://gwpapers.virginia.edu/project/stylemanual/copyediting.html
+http://gwtf.clu-in.org/resources/
+http://gyral.blackshell.com/hegel/hegedu.html
+http://h.webring.com/hub?ring=promoteyourself
+http://h.webring.com/hub?ring=royalnavyinteres
+http://h18000.www1.hp.com/products/quickspecs/11935_na/11935_na.html
+http://h18002.www1.hp.com/products/quickspecs/11411_div/11411_div_Changes.HTML
+http://h18004.www1.hp.com/products/servers/benchmarks/
+http://h20219.www2.hp.com/services/cache/106489-0-0-225-121.html
+http://h20219.www2.hp.com/services/cache/126445-0-0-225-121.html
+http://h20247.www2.hp.com/PublicSector/cache/96688-0-0-0-121.html
+http://h20247.www2.hp.com/PublicSector/cache/96688-0-0-82-150.html
+http://h30046.www3.hp.com/casestudy.php?topiccode=20040229_45509_0_121_0_0&pagesite=SUCCESS
+http://h40084.www4.hp.com/events/universe/2004/a-z.php
+http://h50025.www5.hp.com/hpcom/my_en/10_25_102_2685sna.html
+http://h50025.www5.hp.com/hpcom/my_en/10_25_59_861sna.html
+http://h50025.www5.hp.com/hpcom/my_en/10_25_86_2531sna.html
+http://h71000.www7.hp.com/wizard/wiz_9475.html
+http://h71036.www7.hp.com/hho/cache/275-0-0-225-121.aspx
+http://h71036.www7.hp.com/hho/cache/275-0-0-39-121.aspx
+http://h71036.www7.hp.com/hho/cache/342-0-0-225-121.aspx
+http://haasadventures.blogspot.com/
+http://habitaten.artgroup.com/mall/infopageviewer.cfm?store=HabitatEN&pagename=help
+http://hackvan.com/etext/studies-find-rewards-often-no-motivator.html
+http://hadm.sph.sc.edu/
+http://hagar.up.ac.za/catts/abc/rbo96.html
+http://hagsociety.tripod.com/
+http://hah.ask.co.uk/docs/about/affiliates_agreement.asp
+http://haitipolicy.org/content/2430.htm
+http://haitisupport.gn.apc.org/urgent.htm
+http://haldjas.folklore.ee/~aado/infl.htm
+http://hamsterrepublic.com/james/writing/stories/it-closed-with-a-click.html
+http://handbooks.btcv.org.uk/handbooks/content/section/1584
+http://hannah.smith-family.com/archive/000740.html
+http://happy.net.ut.ee/42/archives/000478.html
+http://happyandblue2.blogspot.com/
+http://happyhomeschooler.blog-city.com/
+http://happyhooking.blogspot.com/
+http://hardlyart.blogspot.com/2004_09_01_hardlyart_archive.html
+http://hardlyart.blogspot.com/2005_04_01_hardlyart_archive.html
+http://hardware.gamespot.com/AOpen-QF-50A-F-16-22-x-x
+http://hardware.gamespot.com/Apex-ATX-2900MA-F-16-22-x-x
+http://hardware.gamespot.com/Cases-F-16-22-x-x
+http://hardware.gamespot.com/Cooler-Master-Praetorian-PAC-T01-E1-F-16-22-x-x
+http://harpur.binghamton.edu/campus/policy.htm
+http://harrylimetheme.blogspot.com/2004_09_01_harrylimetheme_archive.html
+http://hartford.about.com/c/ht/00/07/How_Obtain_Connecticut_Marriage0962933321.htm
+http://hartford.about.com/od/gardencenters/l/aadzentreefarm.htm
+http://harvester.embl.de/harvester/Q9BX/Q9BXQ7.htm
+http://hasbrouck.org/blog/archives/000192.html
+http://hasbrouck.org/blog/archives/000203.html
+http://hasbrouck.org/blog/archives/000258.html
+http://hassid.blogspot.com/2005/04/royal-couple.html
+http://havanajournal.com/business/C0_56_4/
+http://havanajournal.com/culture_archives/A2004073/
+http://havanajournal.com/culture_comments/A1320_0_3_0_M/
+http://havanajournal.com/culture_comments/A1932_0_3_0_M/
+http://hawaii.indymedia.org/news/2003/07/3037_comment.php
+http://hawaiianlanguage.com/o-localhawaiian-k.html
+http://hawaiiweathertoday.com/content.php?pid=19
+http://hawkeyeview.blogspot.com/2004/12/p-o-r-n-o-g-r-p-h-y.html
+http://hazard.com/msds/man/man.html
+http://hazing.cornell.edu/pages/research.shtml
+http://hbswk.hbs.edu/item.jhtml?id=1165&t=finance
+http://hbswk.hbs.edu/item.jhtml?id=1609&t=finance
+http://hbswk.hbs.edu/item.jhtml?id=1949&t=heskett&oid=1949&rid=-1&hid=1952&aid=1951
+http://hbswk.hbs.edu/item.jhtml?id=2121&t=nonprofit
+http://hbswk.hbs.edu/item.jhtml?id=2538&t=organizations.
+http://hbswk.hbs.edu/item.jhtml?id=2722&t=nonprofit
+http://hbswk.hbs.edu/item.jhtml?id=2732&t=globalization
+http://hbswk.hbs.edu/item.jhtml?id=2732&t=marketing&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=2732&t=strategy&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=2839&t=outsourcing
+http://hbswk.hbs.edu/item.jhtml?id=2970&t=globalization
+http://hbswk.hbs.edu/item.jhtml?id=2970&t=globalization&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3029&t=globalization
+http://hbswk.hbs.edu/item.jhtml?id=3029&t=globalization&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3075&t=globalization
+http://hbswk.hbs.edu/item.jhtml?id=3075&t=globalization&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3075&t=leadership
+http://hbswk.hbs.edu/item.jhtml?id=3087&t=nonprofit
+http://hbswk.hbs.edu/item.jhtml?id=3409&t=leadership
+http://hbswk.hbs.edu/item.jhtml?id=3418&t=heskett&oid=3417&rid=3418&hid=3448&aid=-1
+http://hbswk.hbs.edu/item.jhtml?id=3420&t=finance
+http://hbswk.hbs.edu/item.jhtml?id=3420&t=operations&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3459&t=innovation&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3459&t=marketing&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3459&t=technology&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3483&t=career_effectiveness&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3483&t=organizations
+http://hbswk.hbs.edu/item.jhtml?id=3483&t=organizations&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3483&t=srobbins
+http://hbswk.hbs.edu/item.jhtml?id=3483&t=strategy&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3493&t=bizhistory&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3500&t=leadership&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3500&t=moral_leadership&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3738&t=bizhistory
+http://hbswk.hbs.edu/item.jhtml?id=3780&t=bizhistory
+http://hbswk.hbs.edu/item.jhtml?id=3780&t=bizhistory&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3780&t=innovation&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3780&t=marketing
+http://hbswk.hbs.edu/item.jhtml?id=3780&t=strategy&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3844&t=strategy&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3917&t=finance
+http://hbswk.hbs.edu/item.jhtml?id=3966&t=moral_leadership
+http://hbswk.hbs.edu/item.jhtml?id=3990&t=bizhistory&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=3990&t=entrepreneurship
+http://hbswk.hbs.edu/item.jhtml?id=3990&t=nonprofit&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=4115&t=operations
+http://hbswk.hbs.edu/item.jhtml?id=4134&t=srobbins
+http://hbswk.hbs.edu/item.jhtml?id=4137&t=technology
+http://hbswk.hbs.edu/item.jhtml?id=4238&t=entrepreneurship
+http://hbswk.hbs.edu/item.jhtml?id=4240&t=career_effectiveness
+http://hbswk.hbs.edu/item.jhtml?id=4240&t=organizations&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=4268&t=innovation
+http://hbswk.hbs.edu/item.jhtml?id=4269&t=operations&noseek=one
+http://hbswk.hbs.edu/item.jhtml?id=4277&t=organizations
+http://hbswk.hbs.edu/item.jhtml?id=4359&t=heskett&oid=4359&rid=4368&hid=4398&aid=-1
+http://hbswk.hbs.edu/item.jhtml?id=4368&t=heskett&oid=4359&rid=4368&hid=4398&aid=-1
+http://hbswk.hbs.edu/item.jhtml?id=4429&t=innovation
+http://hbswk.hbs.edu/item.jhtml?id=4438&t=srobbins
+http://hbswk.hbs.edu/item.jhtml?id=4538&t=career_effectiveness
+http://hbswk.hbs.edu/item.jhtml?id=4563&t=leadership
+http://hbswk.hbs.edu/item.jhtml?id=4573&t=leadership
+http://hbswk.hbs.edu/item.jhtml?id=4587&t=finance
+http://hbswk.hbs.edu/item.jhtml?id=4599&t=globalization
+http://hbswk.hbs.edu/item.jhtml?id=4599&t=strategy
+http://hbswk.hbs.edu/item.jhtml?id=4782&t=dispatch
+http://hbswk.hbs.edu/item.jhtml?id=4824&t=career_effectiveness
+http://hbswk.hbs.edu/item.jhtml?id=4824&t=organizations
+http://hbswk.hbs.edu/item.jhtml?id=4828&t=srobbins
+http://hbswk.hbs.edu/item.jhtml?id=4834&t=technology
+http://hbswk.hbs.edu/item.jhtml?id=4835&t=entrepreneurship
+http://hbswk.hbs.edu/item.jhtml?id=4854&t=dispatch
+http://hbswk.hbs.edu/item.jhtml?id=841&t=finance
+http://hbswk.hbs.edu/item_sidebar.jhtml?id=4778
+http://hbswk.hbs.edu/pubitem.jhtml?id=1382&t=special_reports
+http://hbswk.hbs.edu/pubitem.jhtml?id=1793&t=special_reports
+http://hbswk.hbs.edu/pubitem.jhtml?id=2188&t=special_reports
+http://hbswk.hbs.edu/pubitem.jhtml?id=2732&t=globalization
+http://hbswk.hbs.edu/pubitem.jhtml?id=2855&t=knowledge
+http://hbswk.hbs.edu/pubitem.jhtml?id=3087&t=nonprofit
+http://hbswk.hbs.edu/pubitem.jhtml?id=3170&t=dispatch
+http://hbswk.hbs.edu/pubitem.jhtml?id=3188&t=marketing
+http://hbswk.hbs.edu/pubitem.jhtml?id=3420&t=finance
+http://hbswk.hbs.edu/pubitem.jhtml?id=3459&t=innovation
+http://hbswk.hbs.edu/pubitem.jhtml?id=3483&t=srobbins
+http://hbswk.hbs.edu/pubitem.jhtml?id=3500&t=organizations
+http://hbswk.hbs.edu/pubitem.jhtml?id=3583&t=organizations
+http://hbswk.hbs.edu/pubitem.jhtml?id=3780&t=bizhistory
+http://hbswk.hbs.edu/pubitem.jhtml?id=3917&t=special_reports
+http://hbswk.hbs.edu/pubitem.jhtml?id=3990&t=special_reports
+http://hbswk.hbs.edu/pubitem.jhtml?id=4587&t=finance
+http://hbswk.hbs.edu/specialReport.jhtml?id=2268&t=special_reports
+http://hca.gilead.org.il/danish.html
+http://hcch.e-vision.nl/index_en.php?act=conventions.text&cid=71
+http://hcd2.bupa.co.uk/fact_sheets/html/conjunctivitis.html
+http://hcd2.bupa.co.uk/fact_sheets/html/hospital_treatments_heart.html
+http://hcd2.bupa.co.uk/fact_sheets/html/leaving_children.html
+http://hclabs.ncsu.edu/responsibilities.html
+http://hcr3.isiknowledge.com/formViewCharacteristic.cgi?table=Publication&link1=Browse&link2=Results&link3=Biography&id=1780
+http://hcrenewal.blogspot.com/2005/05/troubling-study-of-contracts-between.html
+http://hcs.harvard.edu/manager/policy.shtml
+http://hcs.harvard.edu/~pslm/livingwage/dissent.html
+http://hdf.ncsa.uiuc.edu/HDF5/doc/Groups.html
+http://hdfeos.gsfc.nasa.gov/hdfeos/HDFEOS_status/HDFEOSStatus.htm
+http://hdr.undp.org/hd/glossary.cfm
+http://hea-www.harvard.edu/~fine/opinions/childcarriers.html
+http://headaches.about.com/cs/druginfo/a/fiorinal_care.htm
+http://headaches.about.com/library/weekly/aa-dell.htm
+http://headaches.about.com/od/asktheclinicia1/f/110204_5f.htm
+http://headheeb.blogmosis.com/archives/027565.html
+http://headlines.agapepress.org/archive/10/afa/252004a.asp
+http://headrush.typepad.com/creating_passionate_users/2004/12/learning_isnt_a.html
+http://headrush.typepad.com/creating_passionate_users/2005/01/learning_doesnt.html
+http://headrush.typepad.com/creating_passionate_users/2005/05/context_matters.html
+http://headrush.typepad.com/creating_passionate_users/2005/05/managements_rol.html
+http://headrush.typepad.com/creating_passionate_users/2005/06/your_turn_freer.html
+http://healersoftheworld.com/services/astrosun.html
+http://healing.about.com/cs/selfactualization/a/gutinstincts.htm
+http://healing.about.com/library/bl_book_painbuster.htm
+http://healing.about.com/library/bl_essence_rescue.htm
+http://healing.about.com/library/weekly/aa010899.htm
+http://healing.about.com/od/breathwork/
+http://healingiraq.blogspot.com/
+http://healingiraq.blogspot.com/archives/2003_12_01_healingiraq_archive.html
+http://healingiraq.blogspot.com/archives/2004_04_01_healingiraq_archive.html
+http://health-information.advanceweb.com/common/editorial/editorial.aspx?CC=25174
+http://health.allrefer.com/alternative-medicine/dietary-supp-ex.html
+http://health.allrefer.com/health/celiac-disease-sprue-pictures-images.html
+http://health.allrefer.com/health/fat-burning-and-exercise-info.html
+http://health.asiangate.com/English/Immunization_WhatWouldHappen.html
+http://health.byu.edu/HPfaq.asp
+http://health.csusb.edu/CourseDescripHealth.htm
+http://health.discovery.com/centers/articles/articles.html?chrome=c14&article=LC_121&center=p10
+http://health.discovery.com/centers/loverelationships/articles/dating_rules.html
+http://health.discovery.com/centers/loverelationships/articles/divorce.html
+http://health.discovery.com/encyclopedias/2349.html
+http://health.discovery.com/encyclopedias/3166.html
+http://health.discovery.com/minisites/dna/zs_forensics.html
+http://health.indiatimes.com/articleshow/910413.cms
+http://health.ivillage.com/active/astrength/0,,6ffp-3,00.html
+http://health.ivillage.com/active/astrength/0,,6ffp-p,00.html
+http://health.ivillage.com/diabetesthy/di/0,,pzkf-p,00.html
+http://health.mattersonline.net/ClinicalEffectiveness/default.htm
+http://health.msn.com/dailytips/964598.armx
+http://health.state.ga.us/programs/emerprep/links.asp
+http://health.telegraph.co.uk/health/main.jhtml?xml=/health/2001/08/31/htime31.xml
+http://health.yahoo.com/centers/women/19985.html
+http://health.yahoo.com/clinical_trials/onc_s0127_IA.html
+http://health.yahoo.com/drug/202216/
+http://health.yahoo.com/drug/202216/_overview
+http://health.yahoo.com/drug/202216/precaution
+http://health.yahoo.com/drug/d00380a1
+http://health.yahoo.com/ency/adam/000967/overview
+http://health.yahoo.com/ency/adam/002391/overview
+http://health.yahoo.com/ency/adam/003054
+http://health.yahoo.com/ency/healthwise/_ps1324
+http://health.yahoo.com/ency/healthwise/ps1324
+http://health.yahoo.com/ency/healthwise/ps1349
+http://health.yahoo.com/ency/healthwise/ps1458
+http://health.yahoo.com/ency/healthwise/ps1582
+http://health.yahoo.com/ency/healthwise/ta7012
+http://health.yahoo.com/ency/healthwise/tx4097abc
+http://health.yahoo.com/ency/healthwise/tx4185
+http://health.yahoo.com/health/centers/diabetes/22
+http://health.yahoo.com/health/centers/pregnancy/438
+http://health.yahoo.com/health/centers/pregnancy/438.html
+http://health.yahoo.com/health/centers/relationships/1652.html
+http://health.yahoo.com/health/centers/sleep_disorders/103
+http://health.yahoo.com/health/centers/women/19985.html
+http://health.yahoo.com/health/centers/work_life/1921
+http://health.yahoo.com/health/encyclopedia/000739/0.html
+http://health.yahoo.com/news/34890
+http://health.yahoo.com/news/53786
+http://health.yahoo.com/news/54238
+http://health.yahoo.com/news/77456
+http://health.yahoo.com/news/_77446
+http://healthandenergy.com/gasoline_prices.htm
+http://healthandenergy.com/the_oil_we_eat.htm
+http://healthandenergy.com/where_are_we_headed.htm
+http://healthcare.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=JY43C6KQW6VBRKJS06
+http://healthcenter.ucdavis.edu/selfcare/sprains.htm
+http://healthfullife.umdnj.edu/archives/lung_cancer_archive.htm
+http://healthfullife.umdnj.edu/story/
+http://healthgate.partners.org/browsing/browseContent.asp?fileName=%09%09%09%0914847.xml&title=Myringotomy
+http://healthjournal.upmc.com/0605/AEmigraines.htm
+http://healthlink.mcw.edu/article/1031002366.html
+http://healthlink.mcw.edu/article/1031002459.html
+http://healthlink.mcw.edu/article/907444461.html
+http://healthnet.umassmed.edu/chinfhealth/foryou.html
+http://healthquarterly.com/spring_2003/default.asp?filename=HQspringDepressionLBDS&adfile=ads11
+http://healthsignals.typepad.com/newyork/2004/10/whos_got_the_da.html
+http://healthweb.nashville.org/env/food/food_scores/env_1099fscr.html
+http://healthydrinkingscience.com/howfegoandme.html
+http://healthyskinshop.com/
+http://heartburn.about.com/
+http://heartcorps.com/melanie/diary/diary013.htm
+http://heartdisease.about.com/cs/riskfactors/a/highrisk.htm
+http://heartjnl.highwire.org/cgi/content/abstract/79/4/345
+http://heartsoulandhumor.blogspot.com/
+http://heartspring.net/infections.html
+http://heasarc.gsfc.nasa.gov/docs/heasarc/mou.html
+http://heasarc.gsfc.nasa.gov/docs/heasarc/ofwg/docs/general/ogip_93_001/ogip_93_001.html
+http://heather.cs.ucdavis.edu/~matloff/Elvis/Doc/elvisexp.html
+http://heatherw.com/mk/seen.htm
+http://heavensangel.net/rudolph2.htm
+http://heavy-metals.gpa.unep.org/
+http://hebert.kitp.ucsb.edu/studio/a-m/mb-v.html
+http://hec.osu.edu/news/memoriam/
+http://hectorshardware.com/hectors876/plumdep.html
+http://hectorshardware.com/hotshothotbe.html
+http://heg.tonbridge-school.co.uk/resources.usml
+http://heismanpundit.com/?postid=331
+http://helendowland.terminus.net.au/If%20my%20child%20seems%20happy%20at%20school%20is%20all%20ok.htm
+http://helios.bto.ed.ac.uk/bto/microbes/control.htm
+http://hellskitchen.net/
+http://helmethair.gluestain.com/
+http://help-csli.stanford.edu/tex/suthesis/
+http://help.deviantart.com/23/
+http://help.discogs.com/wiki/SubmissionGuidelinesUpdatingArtist
+http://help.eclipse.org/help30/topic/org.eclipse.jdt.doc.user/tasks/tasks-9.htm
+http://help.enterthegame.com/etg-rules.htm
+http://help.internet-trading1.com/notices/FastMarkets.html
+http://help.twcable.com/html/twc_sub_agreement.html
+http://help.yahoo.com/help/au/auct/agen/agen-09.html
+http://help.yahoo.com/help/sg/auct/agen/agen-09.html
+http://help.yahoo.com/help/uk/paydirect/faq/faq-17.html
+http://help.yahoo.com/help/us/fin/port/port-18.html
+http://help.yahoo.com/help/us/paydirect/faq/faq-17.html
+http://helpdesk.ebid.tv/
+http://hem.dis.anl.gov/eehem/01/010316.html
+http://hem.dis.anl.gov/eehem/96/960709.html
+http://hem.dis.anl.gov/eehem/98/980915.html
+http://hem.dis.anl.gov/eehem/99/990112.html
+http://hem.dis.anl.gov/eehem/99/990912.html
+http://hem.dis.anl.gov/eehem/99/991102.html
+http://hendrix.imm.dtu.dk/services/jerne/brede/WOEXP_109.html
+http://hendrix.imm.dtu.dk/services/jerne/brede/WOEXP_245.html
+http://henning.makholm.net/
+http://henryblog.blogspirit.com/archive/2005/01/23/boring_sat.html
+http://henrysturman.com/english/articles/passivesmoking.html
+http://henton.com/tele/0cents.html
+http://henton.com/tele/purpose.html
+http://hepatitis-central.com/hcv/whatis/vl.html
+http://hepatitis.va.gov/vahep?page=nw-00-00
+http://hepatitis.va.gov/vahep?page=tp03-01-05-93
+http://hepunx.rl.ac.uk/uknf/sg/2003-09-09-Seed/response-2003-09-09.txt
+http://herald-review.com/askourexpert/cardwell.php
+http://herbalifedistributor.herbalcoach.com/
+http://herbaria.plants.ox.ac.uk/dlf/collaboration.htm
+http://here-and-now.org/judith/purpose.html
+http://herecomeseverybody.blogspot.com/2004/11/marcella-durand-is-author-of-western.html
+http://hereticalideas.com/index.php?cat=35
+http://heretogoal.blogspot.com/
+http://heritage.scotsman.com/news.cfm?id=599502005
+http://heritage.scotsman.com/people.cfm?id=41822005
+http://heritage.scotsman.com/topics.cfm?tid=1272&id=1338482003
+http://hes.lbl.gov/hes/geninfo.html
+http://hgi.columbus-dublin-ohio.ezhotelsite.com/
+http://hgic.clemson.edu/factsheets/HGIC2505.htm
+http://hgtv.ca/tv/schedule/default.asp?scheduleTime=afternoon&dateDelta=6
+http://hhi.corecom.com/spyware.htm
+http://hibernian.netsource.ie/insurance/motor.asp
+http://hiddenway.tripod.com/hero/rules.html
+http://highdesertfarmersmarket.com/hdfmvrpage.html
+http://highered.mcgraw-hill.com/sites/0070889740/student_view0/chapter5/cyberlecture.html
+http://highered.mcgraw-hill.com/sites/0072396814/information_center_view0/a_text_feature_summary.html
+http://highergroundmusic.com/calendar/?show=48
+http://highlands.gospelcom.net/journals/hsc/
+http://highschooljournalism.org/teachers/LessonPlan_Display.cfm?Type=L&LessonplanId=285&AuthorId=159
+http://hightower.fmp.com/weblog.php
+http://hike.mountainzone.com/blogs/
+http://hikingincolorado.org/morm.html
+http://hillcrestbb.com/bedandbreakfast.htm
+http://hilt.cdlr.strath.ac.uk/Reports/museumsreport.html
+http://hilt.cdlr.strath.ac.uk/bib/BrowseHilt.cfm?Query=Technological%20Solutions
+http://hilton.org.uk/budapest.phtml
+http://hilton.org.uk/international_assignment.phtml
+http://hinduwebsite.com/selfdevt/career.htm
+http://hinduwebsite.com/selfdevt/onlosingjob.htm
+http://hinessight.blogs.com/church_of_the_churchless/science/
+http://hinojosa.house.gov/
+http://hipforums.com/forums/archive/index.php/t-21364.html
+http://hiqnews.megafoundation.org/GoF157.htm
+http://hir.harvard.edu/articles/1253/
+http://hire.unlv.edu/parents/parents.htm
+http://hirr.hartsem.edu/bookshelf/clergywomen_summary.html
+http://hirr.hartsem.edu/cong/cong_website_review_index.html
+http://hiru.mcmaster.ca/acpjc/Pplong.htm
+http://his.osu.edu/webdev/webtools/definitions.cfm
+http://hiskidsradio.gospelcom.net/quicklinks/?category=Seasonal%20Stuff
+http://histalk.blog-city.com/
+http://histalk.blog-city.com/an_exclusive_interview_with_erik_johnson_managing_director_of_the_advisory_board_company.htm
+http://historicaltextarchive.com/sections.php?op=viewarticle&artid=721
+http://historiccamdencounty.com/ccnews04.shtml
+http://historiccamdencounty.com/ccnews81.shtml
+http://history-nz.org/discovery1.html
+http://history-sites.com/mb/cw/vacwmb/index.cgi?noframes;read=1050
+http://history.amedd.army.mil/booksdocs/korea/recad1/ch10-2.htm
+http://history.berkeley.edu/faculty/Carson/carson_heis.html
+http://history.berkeley.edu/faculty/Carson/fall02/138/class25.html
+http://history.evansville.net/industry.html
+http://history.hanover.edu/hhr/98/hhr98_1.html
+http://history.hanover.edu/hhr/hhr4-1.html
+http://history.hyperjeff.net/hypercomplex.html
+http://history.osu.edu/projects/coal/1902AnthraciteStrike/MitchellLaborLeader/MitchellLaborLeader.htm
+http://history.sandiego.edu/gen/20th/coldwarspies.html
+http://history1900s.about.com/library/misc/blnobelchem.htm
+http://history1900s.about.com/od/holocaust/a/gerstein.htm
+http://historymatters.gmu.edu/browse/manypasts/
+http://historymatters.gmu.edu/d/5563/
+http://historymatters.gmu.edu/d/5712
+http://historymatters.gmu.edu/d/6448/
+http://historymatters.gmu.edu/mse/letters/model2.html
+http://historymatters.gmu.edu/search.php?function=print&id=5563
+http://historynet.com/acw/blvicksburg/
+http://historynet.com/wwii/bleaglesnest/
+http://hisxpress.com/studio-2000-dvds.html
+http://hisxpress.com/vhs-gay-video.html
+http://hisxpress.com/vhs-tapes-by-studio.html
+http://hit.demonhosting.co.uk/cgi-bin/yabb/YaBB.cgi/YaBB.cgi?board=trib;action=display;num=1101763224
+http://hit.demonhosting.co.uk/cgi-bin/yabb/YaBB.cgi/YaBB.cgi?board=trib;action=display;num=1104199987
+http://hit.demonhosting.co.uk/cgi-bin/yabb/YaBB.cgi/YaBB.cgi?board=trib;action=display;num=1107211593
+http://hitspot.state.tn.us/hitspot/stdtnpop.htm
+http://hivaidsclearinghouse.unesco.org/ev_en.php?ID=1663_201&ID2=DO_TOPIC
+http://hivinsite.ucsf.edu/InSite.jsp?doc=2098.3df4&page=pr-04-02
+http://hjem.get2net.dk/gronlund/Aarhus_void94.html
+http://hm.indymedia.org/newswire/index.php?section=&category=&limit_start=6600
+http://hmg.oupjournals.org/cgi/content/full/6/3/357
+http://hmiworld.org/hmi/past_issues/May_June_2002/feature_dresden.html
+http://hmiworld.org/hmi/past_issues/Sept_Oct_2002/features_health_systems.html
+http://hms.harvard.edu/admissions/default.asp?page=admissions
+http://hn01.dhs.vic.gov.au/bodw/Home.asp
+http://hnn.us/articles/10904.html
+http://hnn.us/articles/1207.html
+http://hnn.us/articles/1491.html
+http://hnn.us/articles/1518.html
+http://hnn.us/articles/1671.html
+http://hnn.us/articles/1711.html
+http://hnn.us/articles/5650.html
+http://hnn.us/articles/691.html
+http://hnn.us/articles/7288.html
+http://hnn.us/articles/895.html
+http://hnn.us/articles/900.html
+http://hnn.us/articles/920.html
+http://hnn.us/articles/9949.html
+http://hnn.us/blogs/25.html
+http://hnn.us/blogs/4.html
+http://hnn.us/blogs/archives/25/2004/07/
+http://hnn.us/blogs/archives/3/2004/01/
+http://hnn.us/roundup/11.html
+http://hnn.us/roundup/comments/9446.html
+http://hobbit.griffler.co.nz/CXANZ.html
+http://hockeyjournal.com/women/200501/harvard12.htm
+http://hoder.com/cgi-bin/mt-comments.cgi?entry_id=9382
+http://hoder.com/weblog/
+http://hoder.com/weblog/archives/014173.shtml
+http://hoder.com/weblog/archives/2004_09_01_index.html
+http://hoder.com/weblog/archives/2005_01_01_index.html
+http://hogandata.com/act/
+http://holisticonline.com/Remedies/weight/weight_risk-factors-and-causes-of-obesity.htm
+http://hollylisle.com/greylog/archives/00000048.html
+http://holonet.swrpgnetwork.com/showthread.php?s=&threadid=16988
+http://holovaty.com/blog/archive/2004/07/19/2210
+http://holywhapping.blogspot.com/
+http://holzkontor.us/rainbow.php
+http://home-school.com/
+http://home-security.youdoitsecurity.com/security-contact.htm
+http://home.aanet.com.au/robertw/FAQ.html
+http://home.absurgery.org/default.jsp?policyappeals
+http://home.alltel.net/johnshan/contest_ss_tips.html
+http://home.att.ne.jp/red/gaijin/tribal-hardware/211_fiend.html
+http://home.att.net/~Berliner-Ultrasonics/lirrhs.html
+http://home.att.net/~DLeddy/signs.html
+http://home.att.net/~Resurgence/L-taxestheft.htm
+http://home.att.net/~Tom.Horsley/phonetale/markII.html
+http://home.att.net/~a.junkins/scots.html
+http://home.att.net/~allaboutromance/uktripday4.html
+http://home.att.net/~allaboutromance/uktripday8.html
+http://home.att.net/~artarchives/strangelyfamiliar.html
+http://home.att.net/~berliner-ultrasonics/limpsuff.html
+http://home.att.net/~coriolan/places/hbp.htm
+http://home.att.net/~cwletters/Letters_Chronology.htm
+http://home.att.net/~doctordialtone/aletha.htm
+http://home.att.net/~edboots/edwardnboots.htm
+http://home.att.net/~francis-noel/jgexile.html
+http://home.att.net/~jackthompson/page62.htm
+http://home.att.net/~jak.stargate/wsb/html/view.cgi-html2.html--SiteID-458427.html
+http://home.att.net/~jbcole/humor/Microsoft_patents.htm
+http://home.att.net/~larvaluebug/archlarry2-01.html
+http://home.att.net/~mwhodges/debt.htm
+http://home.att.net/~nickols/KM_and_Processes.htm
+http://home.att.net/~nickols/review_behavior.htm
+http://home.att.net/~rayfontaine/
+http://home.att.net/~rayfontaine/home.htm
+http://home.att.net/~rjnorton/Lincoln49.html
+http://home.att.net/~texhwyman/autobahn.htm
+http://home.att.net/~topconcollection/Main-Page/page28.html
+http://home.avianto.com/archives/2004/03/
+http://home.bluepin.net.au/sdn/ian_mason/vision/aware_society_14.htm
+http://home.bresnan.net/~bpratt15/existing_rolling_stock.htm
+http://home.c2i.net/monsalvat/progress.htm
+http://home.christianity.com/topics/bible_study/generalletters/103653.html
+http://home.clara.net/chriswinter/1970.htm
+http://home.clara.net/chriswinter/1977.htm
+http://home.clara.net/wfha/wales/feedback.htm
+http://home.clara.net/xenotoca/variety.htm
+http://home.clear.net.nz/pages/cpa/news/MajorityRule.htm
+http://home.clear.net.nz/pages/cpa/news/news.html
+http://home.cogeco.ca/~camstuff/dnd_realworld.txt
+http://home.cogeco.ca/~mansion/stevens1.html
+http://home.cogeco.net/~vsi/other%20programs.htm
+http://home.columbus.rr.com/ancienttextiles/Social%20Responsibility%20Textile%20Fiber%20Industry.htm
+http://home.columbus.rr.com/murrell/Final.htm
+http://home.comcast.net/~MEWF_Short_Stories/DeaconThomasWalesWill.htm
+http://home.comcast.net/~arrefmak/zsar.htm
+http://home.comcast.net/~buck0/app.htm
+http://home.comcast.net/~dblaine/gimdoc/gimdoc6.html
+http://home.comcast.net/~fosteronfilm/shortmod.htm
+http://home.comcast.net/~garbl/stylemanual/a.htm
+http://home.comcast.net/~garbl/stylemanual/m.htm
+http://home.comcast.net/~garbl/stylemanual/p.htm
+http://home.comcast.net/~garbl/stylemanual/s.htm
+http://home.comcast.net/~garbl/stylemanual/tthruu.htm
+http://home.comcast.net/~mabhat/pages/roots.htm
+http://home.comcast.net/~neoeugenics/miele.htm
+http://home.comcast.net/~peterbarnes/PBPersna2.htm
+http://home.comcast.net/~robertandmichael/garden_2004.htm
+http://home.cshore.com/himes/dennis/sa.htm
+http://home.cwru.edu/cwru_gss/reorg/ftdinfo.html
+http://home.cwru.edu/~ijd3/authorship/
+http://home.cwru.edu/~sjr16/advanced/comets.html
+http://home.debitel.net/user/RMittelstaedt/Money/Exchange.htm
+http://home.earthlink.net/~alanyu76/part2a19.htm
+http://home.earthlink.net/~astrology/confessi.html
+http://home.earthlink.net/~beverlyandjim/id6.html
+http://home.earthlink.net/~bmattlin/id17.html
+http://home.earthlink.net/~busenitz/bs.html
+http://home.earthlink.net/~cevent/11-4-04_king_coal.html
+http://home.earthlink.net/~cnew/research.htm
+http://home.earthlink.net/~count_belisarius/camejo3.htm
+http://home.earthlink.net/~ddstuhlman/defin1.htm
+http://home.earthlink.net/~dianegreco/
+http://home.earthlink.net/~djmp/Mathematica.html
+http://home.earthlink.net/~durable/
+http://home.earthlink.net/~ellozy/4000-footer-club.html
+http://home.earthlink.net/~firstunivsalem/html/sermon100503.htm
+http://home.earthlink.net/~fomalhaut/fcfaq.html
+http://home.earthlink.net/~germania46/scott.htm
+http://home.earthlink.net/~glhr/aboutglh.htm
+http://home.earthlink.net/~haskman/loophole.htm
+http://home.earthlink.net/~hsbecker/mills.html
+http://home.earthlink.net/~hsbecker/theory.html
+http://home.earthlink.net/~jarmstrongatech/JustStanding.html
+http://home.earthlink.net/~jesmith/Char99.html
+http://home.earthlink.net/~jimlux/
+http://home.earthlink.net/~johnrpenner/Articles/EmbryonicCosmo.html
+http://home.earthlink.net/~kdthrge/
+http://home.earthlink.net/~mrob/pub/math/largenum.html
+http://home.earthlink.net/~mrob/pub/math/numbers-10.html
+http://home.earthlink.net/~mrob/pub/math/numbers-6.html
+http://home.earthlink.net/~neoludd/crunch.htm
+http://home.earthlink.net/~patriciahendricksen/_wsn/page3.html
+http://home.earthlink.net/~phlow/music_f.htm
+http://home.earthlink.net/~smithmoran/stfnewsletter2-3.html
+http://home.earthlink.net/~solidarity/leadership.html
+http://home.earthlink.net/~steve_waldee/faq.htm
+http://home.earthlink.net/~tedthebear/chapter%20four.html
+http://home.earthlink.net/~truth444/BRG5-1-2WrkrMarried.html
+http://home.eg-gym.dk/fagene/religion/Ortodokse%20kirke/dox.html
+http://home.entouch.net/dmd/oandgart.htm
+http://home.epix.net/~hawkmtn/rowe.html
+http://home.epix.net/~landis/antelope.html
+http://home.epix.net/~landis/histry.html
+http://home.flash.net/~nymaz/religion/modpagan.html
+http://home.flash.net/~rhmjr/c0819.html
+http://home.freeuk.net/intermedieval/rules.htm
+http://home.freeuk.net/ray.wilson/gsia/gevent.htm
+http://home.freeuk.net/webbuk2/tolkien-biography.htm
+http://home.golden.net/~csp/cd/reviews/brotherfromanother.htm
+http://home.golden.net/~ptpi/goodies.html
+http://home.hamptonroads.com/stories/print.cfm?story=76975&ran=144478
+http://home.hamptonroads.com/stories/print.cfm?story=81069&ran=197650
+http://home.hamptonroads.com/stories/print.cfm?story=81744&ran=58697
+http://home.hamptonroads.com/stories/story.cfm?story=79578&ran=43481
+http://home.hamptonroads.com/stories/story.cfm?story=81076&ran=45232
+http://home.hamptonroads.com/stories/story.cfm?story=85972&ran=211067
+http://home.hamptonroads.com/stories/story.cfm?story=88328&ran=202163
+http://home.hawaii.rr.com/dochazenfield/new_patients.htm
+http://home.hetnet.nl/~ex-baba/engels/articles/secretive.html
+http://home.hetnet.nl/~wegweeda/DretskeEng.htm
+http://home.hiwaay.net/~jalison/Art4.html
+http://home.hockaday.org/HockadayNet/academic/physics/Poetry/sum05.html
+http://home.iae.nl/users/astrid/rainy.htm
+http://home.ingdirect.com/about/aboutus_board.html
+http://home.ingdirect.com/pop_up/e1st_contest_popup.html
+http://home.ingdirect.com/privacy/security_content.html
+http://home.inreach.com/burghart/asia.html
+http://home.inreach.com/rtowle/Chronicles/Chronicles.html
+http://home.iprimus.com.au/li1st/Ark/Combat_Attacks.htm
+http://home.iprimus.com.au/ltuffin/akermanlink.html
+http://home.iprimus.com.au/morningstar/stm/reflect.htm
+http://home.iprimus.com.au/rboon/EarlyInterventionInquiry.htm
+http://home.iprimus.com.au/rboon/EssentialOils.htm
+http://home.it.net.au/~opalowl/2001A.html
+http://home.judson.edu/academic/spinner/donut.html
+http://home.listings.ebay.com/Pet-Supplies_Dogs_W0QQfclZ3QQfcmdZListingItemListQQfsooZ2QQfsopZ2QQsacatZ20742QQsocmdZListingItemList
+http://home.mchsi.com/~jnwatkins/campaign2004.htm
+http://home.merlin.mb.ca/~stuparyk/
+http://home.mindspring.com/~mcmoss/cedargrove/id20.html
+http://home.mindspring.com/~paulsc/phatt.html
+http://home.mira.net/~andy/bs/bs2-2.htm
+http://home.mira.net/~wreid/bali_p4u.html
+http://home.mweb.co.za/re/redcap/rmp.htm
+http://home.mynewroads.com/~domo/NewArk.htm
+http://home.nas.net/~dbc/cic_hamilton/crys.html
+http://home.nas.net/~jgeorge/Samsara/Clickable/Compare.html
+http://home.nc.rr.com/shadynook/SpottedLair/DarkOnes.html
+http://home.net.my/
+http://home.netcom.com/~royalef/gctmap.htm
+http://home.netcom.com/~symbios/thepath.html
+http://home.netvigator.com/~wbutcher/articles/24m.htm
+http://home.no.net/asiandub/news.html
+http://home.nycap.rr.com/klarsen/learnorg/
+http://home.nycap.rr.com/tricitycricketcl/matches2004/MCH82304.htm
+http://home.nycap.rr.com/useless/garfield/
+http://home.olemiss.edu/~djr/pages/teacher/perfprag/chap1.html
+http://home.pacbell.net/ray2288/technicb.html
+http://home.pacifier.com/~dkossy/fratus.html
+http://home.pes.com/iwowss.html
+http://home.pipeline.com/~hbaker1/Iterator.html
+http://home.planet.nl/~faase009/D0112.html
+http://home.planet.nl/~faase009/D0205.html
+http://home.planet.nl/~faase009/D0305.html
+http://home.planet.nl/~faase009/D0307.html
+http://home.planet.nl/~faase009/D0410.html
+http://home.planet.nl/~privacy1/wbp_en_rev.htm
+http://home.planet.nl/~schri474/duk3.htm
+http://home.san.rr.com/schroederfamily/JonStewartJimWallisInterview.html
+http://home.sprynet.com/~frfrog/glossary.htm
+http://home.sprynet.com/~holtrun/10k1of20.htm
+http://home.sprynet.com/~owl1/memory.htm
+http://home.stores.ebay.com/Air-Conditioners_Window-AC-Units_W0QQcatZ79625QQtZlw
+http://home.swbell.net/mpion/TIPcritique/tip.html
+http://home.swipnet.se/~w-61325/ConsciousnessTheDetectorApproach/
+http://home.tiac.net/~cri/1999/coldeq.html
+http://home.trtc.com.tw/EINTRO/eintroduction_6.asp
+http://home.ubalt.edu/bbrownstein/presentations/jondapra.htm
+http://home.ubalt.edu/ntsbarsh/opre640/partXIII.htm
+http://home.universalclass.com/engineering/telecommunications/
+http://home.universalclass.com/i/courses/14.htm
+http://home.vicnet.net.au/~adhs/142Oct96.html
+http://home.vicnet.net.au/~badger04/parks_nt.htm
+http://home.vicnet.net.au/~dealcc/Regosrc.htm
+http://home.vicnet.net.au/~gnaust/life/truthfl-20.html
+http://home.vicnet.net.au/~ozlit/edit9807.html
+http://home.vicnet.net.au/~stpaulch/History.htm
+http://home.wanadoo.nl/rhodesia/firefor1.htm
+http://home.wanadoo.nl/rhodesia/lanc1.html
+http://home.wangjianshuo.com/archives/20031220_friend_is_sick_please_show_your_support.htm
+http://home.wish.net/~rawkite/kite_surfing.htm
+http://home.worldoptions.com.au/nadsett/ads6.htm
+http://home.xtra.co.nz/hosts/Wingmakers/Invisibility.html
+http://home.xtra.co.nz/hosts/Wingmakers/The%20planet%20Neptune.html
+http://home.xtra.co.nz/hosts/xtr209663/articles/ETJun02.htm
+http://home.xtra.co.nz/hosts/xtr209663/articles/proskip_Apr01.htm
+http://home01.wxs.nl/~amorc.nl/envragen.html
+http://home1.gte.net/dschrode/newtransplant-tales.htm
+http://home1.inet.tele.dk/torlars/searchhelp.htm
+http://home3.americanexpress.com/corp/corpinfo/scb03/default.asp
+http://home3.inet.tele.dk/mcamara/cu.html
+http://home4.inet.tele.dk/lepan/lene/indiana/jul99.htm
+http://home4.inet.tele.dk/lepan/lene/indiana/nov98.htm
+http://home8.inet.tele.dk/aaaa/Schindler2.htm
+http://homebuying.about.com/cs/beforeyouclose/a/home_buying.htm
+http://homebuying.about.com/cs/mortgagearticles/a/biweekly_plan.htm
+http://homebuying.about.com/cs/realestatepros/a/square_footage.htm
+http://homeenergy.org/archive/hem.dis.anl.gov/eehem/95/951109.html
+http://homeenergy.org/archive/hem.dis.anl.gov/eehem/95/951112.html
+http://homeenergy.org/archive/hem.dis.anl.gov/eehem/98/980915.html
+http://homeenergy.org/archive/hem.dis.anl.gov/eehem/98/981103.html
+http://homeenergy.org/archive/hem.dis.anl.gov/eehem/99/991102.html
+http://homelands.org/worlds/quotes.html
+http://homelandsecurity.osu.edu/focusareas/transportation.html
+http://homelandsecurity.osu.edu/focusareas/university.html
+http://homemovies.toonzone.net/PizzaClub.html
+http://homenet.hcii.cs.cmu.edu/progress/research.html
+http://homeopathyworld.com/woods_for_the_trees.htm
+http://homepage.eircom.net/~maryhenry/articles/25jun01.htm
+http://homepage.eircom.net/~maryhenry/debates/12june01b.htm
+http://homepage.eircom.net/~maryhenry/debates/21feb02.htm
+http://homepage.eircom.net/~maryhenry/debates/24may01b.htm
+http://homepage.eircom.net/~maryhenry/debates/26mar02b.htm
+http://homepage.eircom.net/~maryhenry/debates/adjourn/13dec01.htm
+http://homepage.eircom.net/~seanjmurphy/chiefs/armscrisis.htm
+http://homepage.mac.com/applegrrl/iblog/B848060887/C996095058/E574610545/
+http://homepage.mac.com/cparada/GML/004Postscripts/TimeBeginning.html
+http://homepage.mac.com/cparada/GML/Sisyphus.html
+http://homepage.mac.com/donfrancisco864/iblog/
+http://homepage.mac.com/elliottday/theoffice/handbags_gladrags.html
+http://homepage.mac.com/j.monro/LordKelvinLetter/lordkelvinletter.html
+http://homepage.mac.com/jhjenkins/Asimov/Books/Book051.html
+http://homepage.mac.com/kdavies/B1837585481/C1817147064/
+http://homepage.mac.com/leperous/PhotoAlbum1.html
+http://homepage.mac.com/lisareinke/B928712598/C2144533559/E1581228078/
+http://homepage.mac.com/nikondriver/voodoolily/seabasics.htm
+http://homepage.mac.com/nirmalabains/blogwavestudio/LH20050115193228/LHA20050118215429/
+http://homepage.mac.com/rpar01/iblog/
+http://homepage.mac.com/rpar01/iblog/C578811192/
+http://homepage.mac.com/svc/prevalence/readme.html
+http://homepage.mac.com/wbaltyn/ektheatre/
+http://homepage.ntlworld.com/alan.stuart/music/lyrics/caramel.html
+http://homepage.ntlworld.com/alan.stuart/music/sin2000d.html
+http://homepage.ntlworld.com/carousel/nottsbox90s.html
+http://homepage.ntlworld.com/dave.whitney/NZroute3.htm
+http://homepage.ntlworld.com/david.habberfield/cup.htm
+http://homepage.ntlworld.com/derek.critoph/used.htm
+http://homepage.ntlworld.com/forgottenfutures/krom/kromskop.htm
+http://homepage.ntlworld.com/ian.lloyd23/holiday/crete/day_10_rethymno_chania.htm
+http://homepage.ntlworld.com/jksonc/docs/vietnam-hadhoc-19710423.html
+http://homepage.ntlworld.com/kennethdrury/buy.htm
+http://homepage.ntlworld.com/marek.kohn/slate.html
+http://homepage.ntlworld.com/parallel/thesis/sample/fourcir.htm
+http://homepage.ntlworld.com/pat.richmonds/vidaud.htm
+http://homepage.ntlworld.com/peter.fairweather/docs/belton.htm
+http://homepage.ntlworld.com/peter.fairweather/docs/stained_glass.htm
+http://homepage.tinet.ie/~ahlulbyteassociation/
+http://homepage.virgin.net/david.torkington/1.%20General%20Turning%20towards%20God.htm
+http://homepages.donobi.net/timer/walkaroundgarden.html
+http://homepages.gold.ac.uk/mark/icsm99/
+http://homepages.ihug.co.nz/~awoodley/regency/marry.html
+http://homepages.ihug.co.nz/~greg.c/practice.html
+http://homepages.ihug.co.nz/~mpeyroux/marinoto.htm
+http://homepages.ihug.com.au/~squires/vt/
+http://homepages.paradise.net.nz/jetaa_south_island/jetache/jul2002/interviews.htm
+http://homepages.paradise.net.nz/pdg/CenEurope.htm
+http://homepages.paradise.net.nz/~pip/will.html
+http://homepages.picknowl.com.au/Syntax/azrael/whyilike.html
+http://homepages.primex.co.uk/~sproston/sstar3.htm
+http://homepages.rootsweb.com/~ncuv/collins1.htm
+http://homepages.shu.ac.uk/~conseal/history.htm
+http://homepages.tcp.co.uk/~maya/thug/thug7.html
+http://homepages.tcp.co.uk/~miracal/The%20duty%20officer%20of%20Executions.htm
+http://homepages.uc.edu/thro/Kosovo/ClintonMrch24.html
+http://homepages.uhwo.hawaii.edu/~senate/WASC2004.html
+http://homepages.unl.ac.uk/~rogersi/gdsnet/profiles/profiles.html
+http://homepages.which.net/~john.king/ecs/notice.htm
+http://homepages.wmich.edu/~dilworth/Index.html
+http://homepages.wwc.edu/staff/wiggjo/summer1998.html
+http://homeparents.about.com/cs/personalhomepages/a/homepages.htm?terms=homepages
+http://homer.cheme.cmu.edu/hypotheses_2.htm
+http://homer.ornl.gov/oepa/guidance/cercla/siteclosure/remedialCompletion.cfm
+http://homes.longandfoster.com/Sell_Home/Sellers_Guide/Sellers_Guide_For_Sale.aspx
+http://homes.mainetoday.com/gardening/040711landsculptin.shtml
+http://homes.mainetoday.com/homecare/050605pools.shtml
+http://homes.mainetoday.com/news/050605pools.shtml
+http://homes.phillyburbs.com/articles/resistfees.shtml
+http://homeschooling.about.com/library/weekly/aa030801m.htm
+http://homeschoolunitstudies.com/TG/Approaches/Writing%20to%20learn.htm
+http://homeschoolunitstudies.com/tg.htm
+http://homesite.com.au/renovate/flooring/ideas_and_designs/energy_efficient_floor_structures/
+http://homesite.com.au/renovate/flooring/ideas_and_designs/energy_efficient_floor_structures/3/
+http://homesteaderlife.blogspot.com/
+http://hometheater.about.com/cs/television/a/16x9tvfactor.htm
+http://hometheaterinfo.com/i_married_a_monster_from_outer_space.htm
+http://hometown.aol.co.uk/--121b-SprHaEqKr1LPiKz21/mbvFbXh3F4E8hvZagIpUywoBc=
+http://hometown.aol.co.uk/__121b_sgxQAOul47hNI4wl76eChschCvrdo/skz9n5KBneWdSivYa/w6wiZw==
+http://hometown.aol.co.uk/monopolycheat/strat/house.html
+http://hometown.aol.co.uk/riscakarate/myhomepage/martialarts.html
+http://hometown.aol.co.uk/suttonunited/links.html
+http://hometown.aol.com/Bbqprod/dino.html
+http://hometown.aol.com/_ht_a/atobrukh/archaeology/matara/MatHistory.html
+http://hometown.aol.com/_ht_a/west24th/main.htm
+http://hometown.aol.com/cajunflok/maggiespage.htm
+http://hometown.aol.com/chicfair/Japan.html
+http://hometown.aol.com/erikschiff/municip.htm
+http://hometown.aol.com/gootchcutters/myhomepage/startrek.html
+http://hometown.aol.com/panda34911/KidsParties/HolidayFunPg11DFallA.html
+http://hometown.aol.com/seivadj18/5000fingers.html
+http://hometown.aol.com/thkalinke/homepage/19CSPP.html
+http://hometown.aol.com/toglobalvillage/myhomepage/
+http://hometown.aol.com/vwdude1957/
+http://homevideo.about.com/cs/newreleases/p/TheFightingTemp.htm
+http://homewithgod.com/Cool/
+http://homeworktips.about.com/
+http://homeworktips.about.com/b/a/057286.htm
+http://homeworktips.about.com/cs/productreviews/gr/oxforddict.htm
+http://homeworktips.about.com/library/shop/aaproxforddict.htm
+http://honesttea.com/news/nytimes0800.html
+http://hongkong.usconsulate.gov/uscn/state/2004/021601.htm
+http://honolulu.hawaii.edu/intranet/committees/FacDevCom/guidebk/faqs/question.htm
+http://honolulu.hawaii.edu/intranet/committees/FacDevCom/guidebk/teachtip/m-files/m-adult3.htm
+http://hoopmountaincentral.com/testimonials.php
+http://hopeathome.crosswinds.net/sronin/foas04/tour2004.htm
+http://hopkinssports.collegesports.com/sports/m-lacros/spec-rel/011205aab.html
+http://hoppermountain.fws.gov/Guadalupe/history.html
+http://horizon.unc.edu/conferences/scot.asp
+http://horizon.unc.edu/projects/CSM/default.asp?chap=8
+http://horizon.unc.edu/projects/HSJ/Morrison.asp
+http://horizon.unc.edu/projects/issues/papers/Veitch2.asp
+http://horizon.upmc.com/News2004/PainSuffering.htm
+http://horizons-2000.org/7.%20Archive/EDA/Personal%20Design%20and%20Action/life%20unity%20meaning.html
+http://hornygoat.org/2000_12_01_archive.php
+http://hornygoat.org/2001_02_01_archive.php
+http://hornygoat.org/2001_03_01_archive.php
+http://horse-canada.com/html/IDupdates.html
+http://horsegazette.com/dear-rufus.html
+http://horseracing.about.com/cs/productreviews/fr/aafr042604a.htm
+http://horses.about.com/care/nutrition/
+http://hortparadise.unl.edu/Newsrelease/News/WinterCareIndoorPlants.htm
+http://host.uniroma3.it/progetti/kant/field/hurleysymp_replytonoe.htm
+http://hosted.ap.org/dynamic/stories/A/AFGHAN_MISSING_PLANE?SITE=NYELM&SECTION=HOME
+http://hosted.ap.org/dynamic/stories/B/BOLTON_UN_FIRING?SITE=APWEB&SECTION=HOME&TEMPLATE=DEFAULT
+http://hosted.ap.org/dynamic/stories/U/US_HELICOPTER_CRASH?SITE=VAROA&SECTION=HOME&TEMPLATE=DEFAULT
+http://hostings.diplomacy.edu/baldi/articles/protest1.htm
+http://hotel-in-montreal.ffind.servebeer.com/
+http://hotels.sandiego.org/493/-/city/viewer/i14/pageNum=2/sortBy=hotelName
+http://hotelschool.scu.edu.au/index.php?page_id=6&menu=6_13
+http://hotjobs.yahoo.com/jobs/FL/Lake-Mary/Accounting-Finance/J7PNNB7RL
+http://hotjobs.yahoo.com/jobs/IL/Argo/Manufacturing-Operations-jobs
+http://hotjobs.yahoo.com/jobs/NY/New-York/Sales/J568423DL
+http://houseandhome.msn.com/Food/Experts/ChristmasFun0.aspx
+http://houseandhome.msn.com/Garden/Flower-GroomingBasics0.aspx
+http://houseandhome.msn.com/Garden/ThreeScenicTreescapes0.aspx
+http://houseandhome.msn.com/Homes/5ToughQuestionstoAskaSeller0.aspx
+http://houseandhome.msn.com/Move/BestPlacestoLive2003.aspx
+http://houseandhome.msn.com/decorate/guidetokitchencosts0.aspx
+http://houseandhome.msn.com/food/elegant.aspx
+http://houseandhome.msn.com/food/traditional.aspx
+http://householdproducts.nlm.nih.gov/cgi-bin/household/brands?tbl=brands&id=19022022
+http://housekeeping.about.com/cs/organizing101/a/orgnzngrgsale.htm
+http://houseofhock.blogspot.com/
+http://houseofstrauss.co.uk/modules/wfsection/article.php?articleid=240
+http://houseoftartan.co.uk/viewinf.htm
+http://houseonahill.net/index.php/blog/permalink/corruption-it-takes-two-to-tango/
+http://housing.uiowa.edu/housing/reshallappinfo.htm
+http://houston.astros.mlb.com/NASApp/mlb/hou/ballpark/directions.jsp
+http://houston.bizjournals.com/bizspace/houston/news_of_note/?story_id=1113374
+http://houston.bizjournals.com/houston/stories/2005/06/06/focus3.html
+http://houston.indymedia.org/news/2005/01/36276_comment.php
+http://houstonindependentfilmmakers.blogspot.com/2005/01/philip-johnson-is-dead-at-98.html
+http://howard.weaver.org/ussr/ussr89.html
+http://howardlewisship.com/blog/2003_09_01_archive.html
+http://howlingpoint.net/life/index.php?m=20030109
+http://howtolive.blogspot.com/
+http://hprcc.unl.edu/impacts/july_2004_impact.html
+http://hprcc.unl.edu/impacts/march_2004_impact.html
+http://hprcc.unl.edu/impacts/october_1999_impact.htm
+http://hprcc.unl.edu/impacts/october_2002_impact.html
+http://hprcc.unl.edu/impacts/september_2004_impact.html
+http://hps.org/publicinformation/ate/q971.html
+http://hq.protestwarrior.com/?page=/featured/PHS/PHS.php
+http://hq.ssrn.com/Participant.cfm?rectype=add&funct=new
+http://hr-internet.ccra-adrc.gc.ca/CcraExternal/1999-CCRA-NOR-1210-0003-Poster-e.html
+http://hr-internet.ccra-adrc.gc.ca/CcraExternal/1999-CCRA-NOR-1220-0037-Poster-e.html
+http://hr-internet.ccra-adrc.gc.ca/CcraExternal/2000-CCRA-NOR-1236-0003-Poster-e.html
+http://hr-internet.ccra-adrc.gc.ca/CcraExternal/2000-CCRA-NOR-1295-0034-Poster-e.html
+http://hr.blr.com/
+http://hr.concordia.ca/benefits/quickclicks/glossary.shtml
+http://hr.concordia.ca/collectiveagreements/tuition_waiver/acumae/
+http://hr.dop.wa.gov/lib/hrdr/asmtpay.htm
+http://hr.fsu.edu/hrms/9900/wnewp00.html
+http://hr.od.nih.gov/ER/ERCases/default.htm
+http://hr.od.nih.gov/ER/Empl-Disc/IntramuralERProc.htm
+http://hr.od.nih.gov/benefits/OpenSeason/FEHB_open2004.htm
+http://hr.unc.edu/Data/SPA/leave/bonusleave
+http://hrw.org/audio/2002/peter/
+http://hrw.org/doc/?t=hivaids&document_limit=0,2
+http://hrw.org/doc/?t=news&cd1=1/1/2001&cd2=1/31/2001
+http://hrw.org/english/docs/2004/10/22/india9556.htm
+http://hrw.org/english/docs/2004/10/22/india9556_txt.htm
+http://hrw.org/wr2k4/5.htm
+http://hrweb.berkeley.edu/hrms/transreclass.htm
+http://hsc.csu.edu.au/ipt/info_systems/2-4/database_modelling.htm
+http://hsgac.senate.gov/022200_press_lieberman.htm
+http://hsgac.senate.gov/index.cfm?FuseAction=PressReleases.Detail&Affiliation=C&PressRelease_id=726&Month=5&Year=2004
+http://hsgac.senate.gov/index.cfm?Fuseaction=PressReleases.View&PressRelease_id=726&Affiliation=C
+http://hsgac.senate.gov/index.cfm?Fuseaction=PressReleases.View&PressRelease_id=726&Affiliation=C&IsTextOnly=1
+http://hspm.sph.sc.edu/Courses/Econ/Classes/Cost/intro/cost.html
+http://hsus.ga4.org/campaign/AZ_2005_animal_fighting
+http://hsv.com/weather/unusual/
+http://hsvmovies.com/static_subpages/personal/education/classes.html
+http://htexplained.com/watches/SS-vs-Gold.htm
+http://htssasol.vaal.co.za/ConductCode.htm
+http://http.persfin.co.za/index.php?fSectionId=708&fArticleId=280023
+http://httpd.apache.org/docs-2.0/env.html
+http://httpd.apache.org/docs-2.0/misc/perf-tuning.html
+http://httpd.apache.org/docs-2.0/ssl/ssl_intro.html
+http://httpd.apache.org/docs-2.1/env.html
+http://httpd.apache.org/docs-2.1/ssl/ssl_intro.html
+http://httpd.apache.org/docs/env.html
+http://httpunit.sourceforge.net/doc/servletunit-intro.html
+http://hua.umf.maine.edu/China/nneigh.html
+http://hua.umf.maine.edu/China/xian.html
+http://hub.interaction-ivrea.it/resources/000201
+http://hubblesite.org/newscenter/newsdesk/archive/releases/1996/01/text/
+http://hubblesite.org/newscenter/newsdesk/archive/releases/2002/20/text/
+http://hubblesite.org/newscenter/newsdesk/archive/releases/2003/22/astrofile/
+http://hubblesite.org/newscenter/newsdesk/archive/releases/2004/07/text/
+http://hughhewitt.com/
+http://hugoboy.typepad.com/hugo_schwyzer/2004/03/obesity_poverty.html
+http://hul.harvard.edu/publications/library_notes/1301/ackerman.html
+http://human-nature.com/ep/
+http://human-nature.com/free-associations/engel1.html
+http://human-nature.com/hraj/events.html
+http://human-resources.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J3X7BJ6RZNZGJX4KJ58
+http://humancapital.doe.gov/elr/CBA_Training.htm
+http://humancapital.doe.gov/pers/JobsONLINEFAQs.htm
+http://humanchess.typepad.com/lowereastside/
+http://humanfactory.caret.cam.ac.uk/careers/gp.html
+http://humanhead.blogspot.com/
+http://humanics-es.com/armrestabstracts.htm
+http://humanics-es.com/present.htm
+http://humaniststudies.org/humphil.html
+http://humanities.byu.edu/home/infopages/construct.html
+http://humanities.lehman.cuny.edu/blackstudies/blscourses.htm
+http://humanities.uchicago.edu/about/
+http://humanities.uchicago.edu/classes/zbikowski/15100.html
+http://humanresources.about.com/
+http://humanresources.about.com/cs/meetingmanagement/ht/meetings.htm
+http://humanresources.about.com/od/leadership/a/leader_inspire.htm
+http://humanresources.about.com/od/motivationrewardretention/a/holidays_work.htm
+http://humanresources.about.com/od/selectemployees/p/apprevu_advice.htm
+http://humansubjects.stanford.edu/education/subject.html
+http://huminf.uib.no/~jill/archives/blog_theorising/final_version_of_weblog_definition.html
+http://huminf.uib.no/~jill/archives/phd/the_story.html
+http://humor.about.com/library/ds/blds120700.htm
+http://humor.catweasel.org/Site1/Digests/H0102170.php
+http://humorix.org/
+http://humphrys.humanists.net/atheism.html
+http://humrep.oupjournals.org/cgi/content/full/19/4/911
+http://hungryjo.journalspace.com/?m=1&y=2004
+http://hunkabutta.com/
+http://huronbox.com/~james/jdlog/
+http://hurricane.atmos.colostate.edu/forecasts/2005/june2005/
+http://hurricanetrack.com/archive.html
+http://hurryupharry.bloghouse.net/
+http://hurryupharry.bloghouse.net/archives/2004/01/21/the_english_question.php
+http://hurryupharry.bloghouse.net/archives/2004/10/15/labour_friends_of_iraq.php
+http://hurryupharry.bloghouse.net/archives/2004/11/26/peace_and_progress.php
+http://hurryupharry.bloghouse.net/archives/2005/01/12/in_defence_of_reaction.php
+http://hurryupharry.bloghouse.net/archives/2005/01/13/wrong_bloke.php
+http://hurryupharry.bloghouse.net/archives/2005/02/02/george_knows_best.php
+http://hutchison.senate.gov/speec165.htm
+http://hven.swarthmore.edu/~cohen/pix/pix.html
+http://hvfd.com/
+http://hvo.wr.usgs.gov/kilauea/history/1960Jan13/
+http://hvo.wr.usgs.gov/volcanowatch/1999/99_09_16.html
+http://hvousa.org/trpop.cfm?TrPDID=13
+http://hybrid2.honda-perf.org/tech/z10.html
+http://hycolake.com/facts.htm
+http://hydrogen.pallasweb.com/cgi-bin/yabb/YaBB.cgi?board=history;action=display;num=1103409844
+http://hypatia.math.uri.edu/~kulenm/diffeqaturi/m381f00fp/andrea/andreamp.html
+http://hyperex.co.uk/reviewpayments.php
+http://hypertext.rmit.edu.au/subjects/hypertext_production/
+http://hypertext.rmit.edu.au/vlog/
+http://hypertext.rmit.edu.au/~gregg/archives/2005/04/13/book-project-clarification-attempt-1/
+http://hypertext.rmit.edu.au/~gregg/archives/2005/04/22/public-holiday-blues/
+http://hypertext.rmit.edu.au/~profash/
+http://hypertextbook.com/chaos/92a.shtml
+http://hypertextbook.com/physics/foundations/system-international/
+http://hyscience.typepad.com/hyscience/2005/03/making_food_and.html
+http://hyscience.typepad.com/hyscience/2005/06/when_a_pictures.html
+http://i-girl.diaryland.com/040602_76.html
+http://i18n.kde.org/doc/doc-primer/getting-started.html
+http://i2i.org/SuptDocs/Enviro/HousingAffordability.htm
+http://i2i.org/article.aspx?ID=1039
+http://i2i.org/article.aspx?ID=297
+http://i4u.com/article2426.html
+http://i4u.com/article2711.html
+http://ia.ita.doc.gov/esel/brazil/98-713.htm
+http://ia.ita.doc.gov/frn/frnmay96/c421601a.html
+http://iac.dtic.mil/
+http://iaeste.free.fr/UK/Uk_index.htm
+http://iafrica.com/highlife/dining_in/di_henrieshotchpotch/starters/
+http://iafrica.com/highlife/herlife/spoil_yourself/229411.htm
+http://iafrica.com/highlife/longlife/features/386392.htm
+http://iafrica.com/news/sa/44109.htm
+http://iafrica.com/news/worldnews/156823.htm
+http://ialbcble.tripod.com/minutes1998.htm
+http://iamfashion.blogspot.com/2004_12_26_iamfashion_archive.html
+http://iammadonna.oracleswar.com/
+http://ianandmanda.typepad.com/blog/2004/09/lets_get_cookin.html
+http://ianrpubs.unl.edu/consumered/g960.htm
+http://ianrpubs.unl.edu/family/nf101.htm
+http://ianrpubs.unl.edu/family/nf494.htm
+http://iaodb.ish-lyon.cnrs.fr/Shanghai/Album_result.php?Album_Select=2&Nb=0
+http://iasym.org/conf2005london/
+http://iblsjournal.typepad.com/illinois_business_law_soc/2005/01/the_name_game_t.html
+http://ibronew.alp.mcgill.ca/Pub_Events_Display.asp?Events_Id=388
+http://ibs.derby.ac.uk/gallery/types.shtml
+http://ic.arc.nasa.gov/story.php?id=219&sec=
+http://ic.daad.de/sydney/living.htm
+http://ic.net/~erasmus/RAZ103.HTM
+http://icantbelieveitsnotademocracy.blogs.com/
+http://icare4u.com/mancare.htm
+http://icasualties.org/oif/
+http://icbirmingham.icnetwork.co.uk/0150business/0200news/tm_objectid=15213398&method=full&siteid=50002&headline=home-asking-prices-rise-in-region-name_page.html
+http://iccheshireonline.icnetwork.co.uk/0100news/chronicleletters/page.cfm?objectid=12066133&method=full&siteid=50020
+http://iccoventry.icnetwork.co.uk/1300ichomes/prestigeproperty/tm_objectid=15513915&method=full&siteid=50002&headline=rare-chance-for-a-foot-on-the-ladder-name_page.html
+http://iccstudy.org/StudiesUnderway.php?pageId=5
+http://ice.he.net/~freepnet/kerry/index.php?topic=Quotes
+http://iceteam.com/resourcecenter/searching.htm
+http://ichuddersfield.icnetwork.co.uk/community/town/tm_objectid=15403474&method=full&siteid=50060&headline=town-and-district--april-14--name_page.html
+http://ichuddersfield.icnetwork.co.uk/community/town/tm_objectid=15612399&method=full&siteid=50060&headline=town-and-district--june-8--name_page.html
+http://icl-server.ucsd.edu/~kirsh/Articles/Earwig/earwig-cleaned.html
+http://icliverpool.icnetwork.co.uk/0100news/0100regionalnews/tm_objectid=14039608&method=full&siteid=50061&page=2&headline=euro-cash-has-given-us-happier-tomorrows-name_page.html
+http://icm.landcareresearch.co.nz/science_themes/human-dimensions/arts_and_science_collaboration.htm
+http://icnewcastle.icnetwork.co.uk/0100news/thejournal/page.cfm?objectid=13491635&method=full&siteid=50081
+http://icnewcastle.icnetwork.co.uk/0700learning/0200pupils/tm_objectid=15126098&method=full&siteid=50081&headline=lessons-in-how-to-cut-stress-name_page.html
+http://icnewcastle.icnetwork.co.uk/eveningchronicle/features/tm_objectid=15035382&method=full&siteid=50081&headline=we-re-hoping-for-a-fantastic-2005-name_page.html
+http://icperthshire.icnetwork.co.uk/news/localnews/strathearnnews/strathnews/tm_objectid=15126550&method=full&siteid=88886&headline=bad-press-distorts-g8-pass-picture-name_page.html%C2%A3
+http://icpvegetation.ceh.ac.uk/intro.htm
+http://icr.byu.edu/bylaws.htm
+http://icrenfrewshire.icnetwork.co.uk/guestbook/
+http://icssa.org/MushKhilafah.htm
+http://icteesside.icnetwork.co.uk/sundaysun/news/tm_objectid=15136344&method=full&siteid=50081&headline=beatrix-sell-off-outrage-name_page.html
+http://icwales.icnetwork.co.uk/0100news/columnists/tm_objectid=15615278&method=full&siteid=50082&headline=ah--mrs-robinson-----nailing-a-few-myths-name_page.html
+http://icwales.icnetwork.co.uk/0100news/columnists/tm_objectid=15624454&method=full&siteid=50082&headline=summer-flocks-of-cash-hungry-students-learn-to-show-and-sell-name_page.html
+http://icwales.icnetwork.co.uk/0100news/letters/tm_objectid=15083068&method=full&siteid=50082&headline=sunday--16-january-2005-name_page.html
+http://icwales.icnetwork.co.uk/0100news/letters/walesonsunday/tm_objectid=15083068&method=full&siteid=50082&headline=sunday--16-january-2005-name_page.html
+http://icwales.icnetwork.co.uk/0300business/0100news/tm_objectid=15099504&method=full&siteid=50082&headline=question-mark-over-future-of-sony-jobs-in-wales-name_page.html
+http://icwales.icnetwork.co.uk/0600soccer/0200news/tm_objectid=15088395&method=full&siteid=50082&headline=heroic-swans-in-extra-time-exit-name_page.html
+http://icwales.icnetwork.co.uk/0600soccer/columnists/tm_objectid=15559425&method=full&siteid=50082&headline=sam-s-the-man-for-the-upbeat-bluebirds-name_page.html
+http://id-archserve.ucsb.edu/Anth3/Courseware/Chronology/10_Obsidian_Hydration.html
+http://id-www.ucsb.edu/fscf/library/plantinga/dennett.html
+http://idalert.berkeley.edu/faq.html
+http://idalert.okstate.edu/faq.htm
+http://ideant.typepad.com/ideant/2004/01/technology_and_.html
+http://ideaplace.blogspot.com/
+http://ideas.repec.org/a/aea/aecrev/v94y2004i3p730-740.html
+http://ideas.repec.org/a/bla/scotjp/v49y2002i2p150-61.html
+http://ideas.repec.org/a/ecj/econjl/v112y2002i481p625-648.html
+http://ideas.repec.org/p/dgr/eureri/30001046.html
+http://ideas.repec.org/p/dgr/uvatin/20000073.html
+http://ideas.repec.org/p/fth/sydnec/2001-2.html
+http://ideas.repec.org/p/iza/izadps/dp318.html
+http://ideas.repec.org/p/iza/izadps/dp48.html
+http://ideas.repec.org/p/lec/leecon/02-2.html
+http://ideas.repec.org/p/nbr/nberwo/4910.html
+http://ideas.repec.org/p/nbr/nberwo/8610.html
+http://ideas.repec.org/p/nbr/nberwo/9004.html
+http://ideas.repec.org/p/nbr/nberwo/9155.html
+http://ideas.repec.org/p/upj/weupjo/04-106.html
+http://ideas.repec.org/p/wpa/wuwpgt/0309002.html
+http://ideasandsociety.ucr.edu/redrhythms/schedule.htm
+http://identityweb.umich.edu/students.html
+http://ideonomy.mit.edu/whatcan/things071-080.html
+http://idiosyncrasy.rediffblogs.com/
+http://idoc.davisvision.com/davis/public/VisionCareResources/vision_07.htm
+http://idp.bl.uk/chapters/links/links.html
+http://ie.oregonstate.edu/news/story/1310
+http://ie3global.oregonstate.edu/Robinson,%20c%20AmCham%20Win04.html
+http://ie3global.oregonstate.edu/sing1a.html
+http://ieas.berkeley.edu/shorenstein/1999.12.html
+http://ies.berkeley.edu/calendar/archive/shansa/
+http://ietfreport.isoc.org/cgi-bin/htmlwdiff?f1=..%2Frfc%2Frfc2425.txt&f2=..%2Fall-ids%2Fdraft-ietf-asid-mime-direct-07.txt
+http://ietfreport.isoc.org/cgi-bin/id2pdf?f1=draft-ietf-asid-mime-direct-06.txt
+http://ietfreport.isoc.org/cgi-bin/id2pdf?f1=draft-ietf-asid-mime-direct-07.txt
+http://ietfreport.isoc.org/idref/draft-ietf-asid-mime-direct/
+http://if.psfk.com/if/2005/05/thought_blurrin.html
+http://ific.org/publications/reviews/scientificir.cfm
+http://ifrl.org/IFRLDailyNews/050128/2/
+http://ifyoumust.blogspot.com/
+http://ihaveacrazywife.com/
+http://iic.edu/Main/MastersProg/CourseCatalog.htm
+http://iiit.net/academics/admissions/pgadmissions/faq.html
+http://ijc.iatp.md/buletin_agrar/bul_agrar_eng_2003_9.html
+http://ije.oupjournals.org/cgi/content/full/33/2/382
+http://ilia.ws/
+http://ilia.ws/archives/5_Top_10_ways_to_crash_PHP.html
+http://ilikeithere.blogspot.com/
+http://ilil.essortment.com/glaucomaeyener_ruij.htm
+http://illuminations.nctm.org/index_o.aspx?id=69
+http://illusivemind.blogspot.com/2005/05/evolution-altruism-and-ethics.html
+http://ilpundit.blogspot.com/2005/02/staring-into-abyss.html
+http://ils.pennnet.com/Articles/Article_Display.cfm?Section=Articles&Subsection=Display&ARTICLE_ID=229568
+http://ils.unc.edu/~fents/310/
+http://im3.imagemaker360.com/AudioFeatureOverview.asp
+http://imacs.org/IMACSWeb/default.aspx?page=About
+http://image.gsfc.nasa.gov/poetry/weekly/weekly.html
+http://imagebase.lib.vt.edu/browse.php?folio_ID=/uni/class&num_rows=284&start_row=31
+http://images.maariv.co.il/images/isuzu_challenge/e/expedition_route_e2003.html
+http://images.military.com/NewContent/0,13190,Weisman_043003,00.html
+http://images.spinics.net/am/1576105202
+http://imagine.gsfc.nasa.gov/docs/teachers/lessons/supernova/supernova_student.html
+http://imaginis.com/breasthealth/pregnancy.asp
+http://imaginis.com/heart-disease/cad_screen.asp
+http://imaginis.com/t-scan/faq.asp
+http://imao.us/
+http://ime.imb.org/offering/quotablesgive.asp
+http://imej.wfu.edu/articles/2003/1/02/index.asp
+http://immigration.about.com/library/blboards.htm
+http://immigration.about.com/library/blvisafaq.htm
+http://immigration.about.com/library/blwhocanchange.htm
+http://impossiblist.blogspot.com/2004_09_01_impossiblist_archive.html
+http://improving-ser.sti.jrc.it/default/show.gx?Object.object_id=TSER----0000000000000232&_app.page=show-TSR.html
+http://improving-ser.sti.jrc.it/default/show.gx?Object.object_id=TSER----000000000000034E&_app.page=show-TSR.html
+http://imra.org.il/story.php3?id=25488
+http://imshin.blogspot.com/2004_04_25_imshin_archive.html
+http://imv.au.dk/publikationer/pov/Issue_01/Avndldg/Avndldg7.html
+http://in.dir.yahoo.com/Business_and_Economy/Shopping_and_Services/Travel_and_Transportation/Frequent_Travel_Programmes/
+http://in.news.yahoo.com/050103/137/2it80.html
+http://in.rediff.com/cricket/2004/feb/19inter.htm
+http://in.rediff.com/money/2004/jun/24rash.htm
+http://in.rediff.com/movies/2004/jan/29pooja.htm
+http://in.us.biz.yahoo.com/bw/050207/65020_1.html
+http://inanna.virtualave.net/hekate.html
+http://incestabuse.about.com/cs/legalsystem/a/stognervsCA.htm
+http://inch-aweigh.com/dietstats.htm
+http://incometaxdelhi.nic.in/payers/house.htm
+http://incometaxindia.gov.in/Pamphlets_Split/ONEBYSIXSCHEME.asp
+http://incommunicado.info/aggregator/sources/7
+http://incontinence.depend.com/articles/talk/
+http://incsub.org/blog/
+http://incubator.apache.org/derby/papers/optimizer.html
+http://indcoup.blogspot.com/
+http://indecentblogging.com/blog.php?user=easily_aroused
+http://independencejournal.com/buyfarm.htm
+http://india.indymedia.org/en/2005/06/210681.shtml
+http://indiabudget.nic.in/ub2000-01/bs/bsb1.htm
+http://indiaimage.nic.in/pmcouncils/reports/admin/chap1.htm
+http://indiaimage.nic.in/pmcouncils/reports/infra/ichap3.htm
+http://indiamonitor.com/news/readCatFullNews.jsp?ni=4078&ct=Outsourcing
+http://indianafind.com/Localities/H/Hammond/Business_and_Economy/Industrial_Supplies/
+http://indianaobserver.com/index.php/archives/category/scitec/
+http://indianapolismusic.net/events_day.php
+http://indianarmy.nic.in/ararty1.htm
+http://indianarmy.nic.in/arta1.htm
+http://indianbloggers.blogspot.com/
+http://indiauncut.blogspot.com/2004/12/picture-of-hell-and-no-kerosene.html
+http://indiboi.com/history/2003/09/
+http://indiboi.com/history/2004/10/24/2887408
+http://indieslate.com/Iss_40_StarScript.html
+http://individual.utoronto.ca/johnbowen/dare/lotr.html
+http://industrial-robotics.globalspec.com/Industrial-Directory/robot_arm
+http://industrial-robotics.globalspec.com/Industrial-Directory/robotic_arm
+http://industries.bnet.com/GOVERNMENT/Homeland+Security/Decision+Support+Systems/?scname=Decision+Support+Systems&sortby=comp
+http://industries.bnet.com/whitepaper.aspx?cid=268&docid=118558
+http://industries.bnet.com/whitepaper.aspx?scname=Film+Production&docid=112840
+http://industries.bnet.com/whitepaper.aspx?scname=Medical+Equipment+and+Supplies&docid=126841
+http://industries.bnet.com/whitepaper.aspx?scname=Supermarkets&docid=101977
+http://industrycentral.net/director_interviews/MIAP01.HTM
+http://industrycentral.net/director_interviews/MIFO01.HTM
+http://industrycentral.net/director_interviews/PW01.HTM
+http://indyweek.com/durham/2001-10-31/backtalk.html
+http://indyweek.com/durham/2002-03-06/cover.html
+http://indyweek.com/durham/2003-10-22/casa2.html
+http://indyweek.com/durham/2003-11-05/triangles.html
+http://indyweek.com/durham/2004-04-21/cover4.html
+http://indyweek.com/durham/2004-12-15/ae.html
+http://indyweek.com/durham/current/movie.html
+http://infavorofthinking.blogspot.com/
+http://infertility.adoption.com/fertility/39-rights-of-the-infertile-couple.html
+http://infinityprosports.com/portfolio/case/
+http://info-pollution.com/huber.htm
+http://info-theory.blogspot.com/
+http://info.ag.uidaho.edu/homewise/homewise_111900.htm
+http://info.ag.uidaho.edu/magazine/summer2002/living.html
+http://info.anu.edu.au/hr/Recruitment/New_Staff_Information/You_and_Your_Role.asp
+http://info.anu.edu.au/policies/Policies/Human_Resources/Leave_and_Absences/Study_Leave.asp
+http://info.caldwell.edu/IOE/
+http://info.cancerresearchuk.org/cancerandresearch/ourcurrentresearch/researchinyourregion/southern/oxford/
+http://info.cancerresearchuk.org/healthyliving/reducetherisk/aboutthecampaign/?a=5441
+http://info.cancerresearchuk.org/publicpolicy/scotland/?a=5441
+http://info.ccone.at/INFO/Samba/ServerType.html
+http://info.channelnewsasia.com/bb/viewtopic.php?p=120139&
+http://info.channelnewsasia.com/bb/viewtopic.php?p=127366&
+http://info.channelnewsasia.com/bb/viewtopic.php?t=419&start=20&
+http://info.channelnewsasia.com/bb/viewtopic.php?t=419&start=20&postdays=0&postorder=asc&highlight=&
+http://info.detnews.com/history/story/index.cfm?id=100&category=business
+http://info.detnews.com/history/story/index.cfm?id=189&category=business
+http://info.detnews.com/joyrides/index.cfm?action=calendar
+http://info.detnews.com/joyrides/story/index.cfm?id=133
+http://info.detnews.com/weightloss/lettersindex.cfm
+http://info.detnews.com/wine/columns/silfven/details.cfm?id=195
+http://info.gradsch.wisc.edu/admin/academicservices/pguide.html
+http://info.gradsch.wisc.edu/admin/fellowships/fellowfacts04.html
+http://info.gradsch.wisc.edu/admin/fellowships/fellowfacts05.html
+http://info.gradsch.wisc.edu/admin/fellowships/fellowfacts06.html
+http://info.gradsch.wisc.edu/admin/gsc/gradguide/ch5.html
+http://info.laworks.com/plrecognition.html
+http://info.lboro.ac.uk/departments/cv/wedc/papers/jain.html
+http://info.lboro.ac.uk/orgs/opp2000/chap3.htm
+http://info.lib.uh.edu/sca/collections/faids/html/hawc.html
+http://info.library.unsw.edu.au/osd/using/mycoursefaq.html
+http://info.linspire.com/10Reasons/
+http://info.med.yale.edu/chldstdy/plomdevelop/genetics/03aprgen.htm
+http://info.med.yale.edu/comer/about/newsletter/Fall00B.html
+http://info.med.yale.edu/yarc/vcs/preventi.htm
+http://info.royaloperahouse.org/Synopses/index.cfm?ccs=467&cs=1012
+http://info.susu.org/article.php?sid=50
+http://info.tc.msu.edu/faculty/larose/html/fonbehav.html
+http://info.web.cern.ch/Press/PressReleases/Releases1993/PR12.93Ecouncil.html
+http://info.winnefox.org/blogs/ask/archives/2004_12.html
+http://info.wlu.ca/~wwwpress/jrls/cjc/BackIssues/16.3/surlin.html
+http://info.wlu.ca/~wwwpress/jrls/cjc/BackIssues/22.2/gosselin.html
+http://info.wlu.ca/~wwwregi/examtest/classroominfo.shtml
+http://info.wlu.ca/~wwwregi/examtest/classroominfo2.shtml
+http://information-technology.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPATH=JR&Job_DID=J3X7LF5XMG61QHMPZTN
+http://information-technology.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?Job_DID=JY24R6424BFG9PVQRN
+http://information-technology.careerbuilder.com/it.ic/Florida_Miami?radius=5
+http://information-technology.careerbuilder.com/it.ic/Florida_Miami_ProjectManagement.htm?radius=5
+http://information-technology.careerbuilder.com/it.ic/Michigan_Lansing_WindowsDevelopment.htm?radius=10
+http://information-technology.careerbuilder.com/it.ic/Missouri_KansasCity_WindowsDevelopment.htm?radius=5
+http://information-technology.careerbuilder.com/it.ic/Missouri_Liberty_WindowsDevelopment.htm?radius=20
+http://information-technology.careerbuilder.com/it.ic/NewYork_LongIsland_WindowsDevelopment.htm?radius=50
+http://information-technology.msn.careerbuilder.com/it.ic/Illinois_Gurnee_AS400.htm
+http://informationr.net/ir/4-2/paper53.html
+http://informationr.net/ir/6-2/ws7.html
+http://informationr.net/ir/8-1/paper142.html
+http://informationr.net/ir/8-1/paper144.html
+http://informationr.net/ir/8-2/paper150.html
+http://informationr.net/ir/9-2/paper170.html
+http://informationr.net/ir/reviews/revs050.html
+http://informationr.net/ir/reviews/revs138.html
+http://informationr.net/ir/reviews/revs156.html
+http://informationr.net/ir/reviews/revs164.html
+http://informationr.net/tdw/publ/papers/1984emim.html
+http://informationr.net/tdw/publ/papers/acuril.html
+http://informationr.net/tdw/publ/papers/klpaper.html
+http://informationservices.swets.com/web/show/id=40149
+http://informationweek.com/story/showArticle.jhtml?articleID=159908281
+http://informationweek.com/story/showArticle.jhtml?articleID=18900187
+http://informationweek.com/story/showArticle.jhtml?articleID=29100189
+http://informationweek.com/story/showArticle.jhtml?articleID=49901543
+http://informationweek.com/story/showArticle.jhtml?articleID=53200338
+http://informedesign.umn.edu/Rs_detail.aspx?rsId=1609
+http://infosecuritymag.techtarget.com/2002/jan/columns_note.shtml
+http://infosecuritymag.techtarget.com/articles/1999/toolsofthetrade.shtml
+http://infosecuritymag.techtarget.com/articles/april00/columns_cryptorhythms.shtml
+http://infosecuritymag.techtarget.com/articles/august01/securitymarket.shtml
+http://infosecuritymag.techtarget.com/ss/0,295796,sid6_iss205_art465,00.html
+http://infosecuritymag.techtarget.com/ss/0,295796,sid6_iss506_art1038,00.html
+http://infoserver.ciesin.org/datasets/nesedb/nesedb-home.html
+http://infoshare1.princeton.edu/libraries/firestone/rbsc/finding_aids/ball/boxes158-222.html
+http://infotoday.com/searcher/sep02/Block.htm
+http://infotrac.thomsonlearning.com/infowrite/ex_argu.htm
+http://infoworld.com/article/04/03/10/HNsqldelay_1.html
+http://infoworld.com/article/04/10/20/HNconsistency_1.html?APPLICATION%20SECURITY
+http://infozone.imcpl.org/kids_path_gardening.htm
+http://inhofe.senate.gov/pressreleases/climateupdate.htm
+http://inhome.rediff.com/news/2004/dec/26tn.htm?zcc=ar
+http://injil.org/TWOR/96.html
+http://injury-attorneys.com/cell_phone_car_accidents.html
+http://injury.freeadvice.com/injury_help.php/115_136_631.htm
+http://inner-smile.com/dl_inf.htm
+http://innerself.com/Relationships/farmer_steven_01254.htm
+http://innocent.org.uk/cases/barrygeorge/
+http://innovation.ic.gc.ca/gol/innovation/site.nsf/en/in04877.html
+http://inouye.senate.gov/~inouye/05pr/20050318pr01.html
+http://inpress.lib.uiowa.edu/poroi/papers/throgmorton050301.html
+http://insidebayarea.com/timesstar/prepsports/ci_2537452
+http://insidehighered.com/careers/2005/05/31/hyun
+http://insidehighered.com/news/2005/05/20/roundtable
+http://insidehighered.com/news/2005/06/17/hea
+http://insidehighered.com/views/2005/05/23/johnson
+http://insidehighered.com/views/2005/05/24/mclemee
+http://insider.tv.yahoo.com/celeb/insdr20050624t120300002568/
+http://insight.chicagoconsultingactuaries.com/Insight/Documents/cashballit.aspx
+http://insight.zdnet.co.uk/0,39020415,39115499,00.htm
+http://insight.zdnet.co.uk/archive.htm?CALENDAR=2005%7C02%7C06
+http://insignificantthoughts.com/index.php?p=190
+http://insomniac.blogeasy.com/article.view.run?articleID=16406
+http://insp.pnl.gov/?info/brochure/progbroch98e
+http://instapundit.com/
+http://insti.physics.sunysb.edu/~allen/
+http://insti.physics.sunysb.edu/~allen/LJ/
+http://insti.physics.sunysb.edu/~siegel/parodies/sgsft.html
+http://institution.gallup.com/documents/questionnaire.aspx?STUDY=P0411042
+http://institution.gallup.com/documents/questionnaire.aspx?STUDY=P0411044_2
+http://instruct1.cit.cornell.edu/courses/aem425/Luby.htm
+http://instructionaltechnology.editthispage.com/
+http://instructivist.blogspot.com/2005/05/trivial-hands-on-activities.html
+http://instructordiploma.com/core/303/Giselle.htm
+http://instrumentation.co.za/News.ASP?pklNewsID=16381&pklIssueID=451
+http://insurance.essentialtravel.co.uk/skiguide/switzerland/champery.htm
+http://intarch.ac.uk/journal/issue12/editorial.html
+http://intarch.ac.uk/journal/issue9/reviews/beowulf.html
+http://integration-net.cic.gc.ca/inet/english/elt-clna/elt-clna-Q&A.htm
+http://integritycasinoguide.com/
+http://inteldump.powerblogs.com/archives/archive_2004_12_12-2004_12_18.shtml
+http://inteldump.powerblogs.com/archives/archive_2005_01_02-2005_01_08.shtml
+http://intelligentassistance.com/blog/?p=21
+http://intelligentassistance.com/blog/?p=26
+http://intellit.muskingum.edu/russia_folder/pcw_era/sect_05.htm
+http://inter-mex.net/
+http://interaccess.org/arg/arg-list/msg01001.html
+http://interact.iparenting.com/showthreaded.php?Cat=&Board=preteen&Number=1394148&page=0&view=expanded&sb=5&o=&fpart=
+http://interact.uoregon.edu/MediaLit/WFAE/readings/copeland/sounds.html
+http://interact.uoregon.edu/MediaLit/mlr/readings/articles/emperor.html
+http://interactive.linuxjournal.com/article/7488
+http://interactive.usc.edu/members/msteffen/archives/001486.html
+http://interactive.usc.edu/members/tripp/
+http://interactive.usc.edu/members/tripp/archives/004371.html
+http://interactive.usc.edu/members/tripp/archives/2005_05.html
+http://interactive.zogby.com/fuse/messageview.cfm?catid=8&threadid=2142
+http://interactiveinvestor.money.msn.co.uk/sharedealing/terms.epl
+http://interactives.alxnet.com/cgi-bin/slither/Driver.py/WebTools/Guestbook/Guestbook.render?guestbook_id=47170&page=5&logged_in=0
+http://intercom.virginia.edu/SurveySuite/Surveys/BMDCA2005HealthSurvey/index2.html
+http://interconnected.org/home/2002/11/week/10/
+http://interconnected.org/matt/archive/james/Base-Superstructure.html
+http://interestingtimes.blogspot.com/archives/2003_07_13_interestingtimes_archive.html
+http://interguild.com/
+http://interiordec.about.com/od/designershowhouse/a/a_2004orangecty.htm
+http://internalcleansing.com/testimonials/
+http://international.adoption.com/
+http://international.fhwa.dot.gov/eurorightofway/02.htm
+http://international.fws.gov/cites/update86.html
+http://international.helplinelaw.com/lawyers/pakistan/attock
+http://international.helplinelaw.com/lawyers/pakistan/daska
+http://international.helplinelaw.com/lawyers/pakistan/faisalabad
+http://international.helplinelaw.com/lawyers/pakistan/hyderabad
+http://international.helplinelaw.com/lawyers/pakistan/islamabad
+http://international.helplinelaw.com/lawyers/pakistan/lahore
+http://international.helplinelaw.com/lawyers/pakistan/multan
+http://international.helplinelaw.com/lawyers/pakistan/rawalpindi
+http://international.helplinelaw.com/lawyers/pakistan/sargodha
+http://international.missouri.edu/studyabroad/predepart/culture.shtml
+http://internationalecon.com/fairtrade/feature1.html
+http://internationalezaken.szw.nl/index.cfm?fuseaction=dsp_rubriek&rubriek_id=13059&lijstm=0,322_6610
+http://internet-work-at-home-opportunity.com/
+http://internetretailer.com/article.asp?id=14851
+http://internetworldstats.com/products/17EasyWays/
+http://interplace-agency.com/SouthBay.html
+http://interview.monster.com/articles/thankyou/
+http://interviews.teamxbox.com/xbox/681/The-Suffering-Richard-Rouse-III-Interview/p1
+http://intheaquarium.blogspot.com/archives/2003_10_01_intheaquarium_archive.html
+http://inthebarrenseason.blogspot.com/2004_09_01_inthebarrenseason_archive.html
+http://inthefray.com/html/article.php?sid=616
+http://inthefray.com/html/article.php?sid=616&mode=thread&order=0
+http://inthefray.com/html/article.php?sid=629&mode=thread&order=0
+http://into-stone.co.uk/classifieds.php3
+http://intra.unops.org/va/VacancyControls/File.aspx/2005-GLO-DSS-L3-DFSO.pdf?no=188
+http://intra.unops.org/va/VacancyControls/File.aspx/2005-GLOS-DSS-L4-FSC.pdf?no=189
+http://intranet.arts.ac.uk/online/stu_faq.php
+http://intranet.bedfordschool.org.uk/system/registration/agreement.htm
+http://intranet.lternet.edu/archives/documents/Newsletters/NetworkNews/fall01/fall01_pg12.html
+http://intro.phm.auckland.ac.nz/i-course.html
+http://intron.kz.tsukuba.ac.jp/vrlab_web/CirculaFloor/CirculaFloor_e.htm
+http://invent.ucsd.edu/faculty/policies/UC_copyright.htm
+http://inventors.about.com/library/inventors/bledisonbiographyPart%202.htm
+http://inventors.about.com/library/inventors/blholly.htm
+http://inventors.about.com/library/inventors/blrailroad7.htm
+http://inventors.about.com/library/weekly/aa062398.htm
+http://inventors.about.com/library/weekly/aa072897.htm
+http://inversionmagazine.com/features/whale012704.htm
+http://investigations.terc.edu/relevant/EffectiveUse.html
+http://investing.reuters.co.uk/Stocks/QuoteCompanyNewsArticle.aspx?view=PR&symbol=ADL.L&storyID=76573+30-Nov-2004+RNS
+http://investing.reuters.co.uk/stocks/QuoteCompanyNewsArticle.aspx?type=pressReleases&symbol=ADL.L&storyID=76573+30-Nov-2004+RNS
+http://investment.azur-online.com/content/view/14/2/
+http://investor.ag-industries.com/Annual_reports/2001/afglass_ar01/corp_gov/corp_main.htm
+http://investor.anntaylor.com/news/20011114-64752.cfm?t=n
+http://investor.anntaylor.com/news/20021205-96504.cfm?t=n
+http://investor.kelloggs.com/ReleaseDetail.cfm?ReleaseID=155654
+http://investor.news.com/Engine?Account=cnet&PageName=NEWSREAD&ID=1325653&Ticker=ICGE&SOURCE=072579.nitf
+http://investor.ninemsn.com.au/investor/osshares/ukreview/story_detail.asp
+http://investor.nuance.com/ireye/ir_site.zhtml?ticker=nuan&script=460&layout=6&item_id=282840
+http://investor.officemax.com/releaseDetail.cfm?ReleaseID=156997
+http://investor.stpaultravelers.com/phoenix.zhtml?c=177842&p=irol-govmanage
+http://invisiblegovernment.net/
+http://ioe.engin.umich.edu/home/overview.html
+http://iol.co.za/index.php?set_id=1&click_id=13&art_id=qw1119283560505B255
+http://iowahawk.typepad.com/iowahawk/2005/06/from_the_desk_o.html
+http://ipcm.wisc.edu/uw_weeds/extension/
+http://ipf-orc.sourceforge.net/readme-release-1.1.0.htm
+http://ipodstudio.com/forums/archive/index.php/t-476.html
+http://ipodstudio.com/forums/showthread.php?t=483&goto=nextoldest
+http://ipp.nasa.gov/innovation/innovation103/7-techop.html
+http://ipsnews.net/news.asp?idnews=29176
+http://iquebec.ifrance.com/inuit/pages/2b.htm
+http://iquote.com/LifeInsurance/default.htm
+http://ir.bpb.com/bpb/financialnews/currentnews/2002-11-27
+http://ir.mc.com/phoenix.zhtml?c=118140&p=irol-newsArticle_Print&ID=344872&highlight=
+http://ir.mc.com/phoenix.zhtml?c=118140&p=irol-newsArticle_Print&ID=459237&highlight=
+http://ir.mc.com/phoenix.zhtml?c=118140&p=irol-newsArticle_Print&ID=630629&highlight=
+http://ir.unlv.edu/who_we_are/meet_the_staff.htm
+http://ir.wallstraits.net/segi/page.asp?id=klse_040218c
+http://iraq.news.designerz.com/british-born-top-aid-official-kidnapped-in-iraq.html
+http://iraq.usembassy.gov/iraq/irs.html
+http://iraqblogcount.blogspot.com/
+http://iraqelect.com/index.php/archives/2005/01/03/iraqi-defence-minister-floats-election-delay/
+http://iraqthemodel.blogspot.com/
+http://iraqthemodel.blogspot.com/2003_12_01_iraqthemodel_archive.html
+http://iraqthemodel.blogspot.com/2004_01_01_iraqthemodel_archive.html
+http://iraqthemodel.blogspot.com/2004_05_01_iraqthemodel_archive.html
+http://iraqthemodel.blogspot.com/2004_06_01_iraqthemodel_archive.html
+http://iraqthemodel.blogspot.com/2004_07_01_iraqthemodel_archive.html
+http://iraqthemodel.blogspot.com/2004_11_01_iraqthemodel_archive.html
+http://iraqthemodel.blogspot.com/2005/04/eid-of-liberty.html
+http://iraqthemodel.blogspot.com/2005/06/egypt-and-fear-from-hasty-change.html
+http://iraqthemodel.blogspot.com/2005_01_01_iraqthemodel_archive.html
+http://irascibleprofessor.com/comments-07-08-02.htm
+http://iraszl.brinkster.net/creativebits/2005/01/pixelfonts-for-better-legibility.html
+http://irb.ua.edu/reviewinfo.html
+http://irc.nrc-cnrc.gc.ca/cbd/cbd192e.html
+http://irc.nrc-cnrc.gc.ca/pubs/ctus/53_e.html
+http://irfca.org/faq/faq-travel.html
+http://iri.columbia.edu/climate/ENSO/background/basics.html
+http://iri.columbia.edu/climate/ENSO/currentinfo/archive/200411/technical.html
+http://iri.columbia.edu/climate/forecast/net_asmt/2002/jul2002/text/MEast.html
+http://iri.columbia.edu/climate/forecast/net_asmt/2002/may2002/text/Asia.html
+http://iris.ingentaselect.com/vl=1394146/cl=36/nw=1/fm=docpdf/rpsv/cw/igsoc/02603055/v37n1/s41/p263
+http://iris.peabody.vanderbilt.edu/howtoCSfaculty.html
+http://irm.cit.nih.gov/att6sewp.html
+http://irm.cit.nih.gov/policy/DHHS_SecLev.html
+http://irm.wharton.upenn.edu/MBA.html
+http://irregulartimes.com/index.php
+http://irregulartimes.com/index.php/archives/2005/02/18/united-states-of-cheap/
+http://irregulartimes.com/religionscienceschools.html
+http://isaac.idkcomp.com/EDTORIAL/PASSIVE.HTM
+http://isakson.senate.gov/floor/030305drugsafety.htm
+http://ishindler.com/articles/TSPKeepingupwithChangingTechnology.htm
+http://isis.csuhayward.edu/dbsw/anthropology/claus/a1006/lec3-f98.htm
+http://islam.about.com/cs/divisions/f/shia_sunni.htm
+http://islam.itl.org.uk/why_jesus/wfj_16.html
+http://islamic-world.net/economics/consumer_theory.htm
+http://islamlib.com/en/page.php?page=article&id=519
+http://islands.unep.ch/isldir.htm
+http://isloveoutthere.blog-city.com/
+http://islscp2.sesda.com/ISLSCP2_1/html_pages/whats_new.html
+http://isna.org/
+http://iso.china-labour.org.hk/iso/article.adp?article_id=2059
+http://israelvisit.co.il/BehindTheNews/
+http://ist-socrates.berkeley.edu/~bsp/extremism.html
+http://ist-socrates.berkeley.edu/~hanj/
+http://ist-socrates.berkeley.edu:7502/GSS/HTMLBOOK/gssx06.html
+http://istanbul.european-patent-office.org/programme/index.en.php
+http://istf.ucf.edu/What_We_Learned/Teachers/2002_2003/
+http://istpub.berkeley.edu:4201/style/
+http://istresults.cordis.lu/index.cfm/section/news/BrowsingType/Long%20Feature/Tpl/article/ID/76556
+http://istresults.cordis.lu/index.cfm/section/news/Tpl/article/BrowsingType/Long%20Feature/ID/59305
+http://istresults.cordis.lu/index.cfm/section/news/tpl/article/BrowsingType/Features/ID/59305
+http://istresults.cordis.lu/index.cfm/section/news/tpl/article/BrowsingType/Features/ID/76556
+http://istresults.cordis.lu/index.cfm/section/news/tpl/article/ID/76556/BrowsingType/Features
+http://ists.pls.uni.edu/minutes/minutes02.html
+http://istu2.apl.washington.edu/abstracts_ah.html
+http://it-director.com/article.php?articleid=2263
+http://it.coe.uga.edu/~lrieber/seriousdesign/
+http://it.jhu.edu/applications/clinical/
+http://it.pcconnection.com/Webcontent/SiteHelp/Reports.htm
+http://it.slashdot.org/index.pl?issue=20050108
+http://it.uts.edu.au/course/shortcourse/itmanage/itcontracts.html
+http://italian.about.com/
+http://italic.org/initiat5.htm
+http://itc.napier.ac.uk/ITC_Home/ITC/Projects.asp
+http://itd.idaho.gov/row/new/workfiles/Help.html
+http://ite.sfcc.edu/~sat/courslnk.htm
+http://iteslj.org/Articles/Offner-HowToLearn.html
+http://iteslj.org/Articles/Stibbard-Intonation/
+http://iteslj.org/Articles/Talebinezhad-EIL.html
+http://iteslj.org/Techniques/Hussain-Questions.html
+http://iteslj.org/Techniques/Lee-Writing/
+http://iteslj.org/Techniques/Lingzhu-Listening.html
+http://itfnz.org.nz/ref/essays/demosmq.htm
+http://itinfo.mit.edu/article?id=5833
+http://itinfo.mit.edu/article?id=7039
+http://itlookslikethis.blogeasy.com/main.page.run?startIndex=6
+http://itmanagement.earthweb.com/cio/article.php/1563701
+http://itmanagement.earthweb.com/netsys/article.php/3369841
+http://itmatters.com.ph/news/news_06012004a.html
+http://itmatters.com.ph/news/news_07262004h.html
+http://ito.gn.apc.org/WC14_YUG.HTM
+http://itotd.com/blog.alt?WTheme=9
+http://itpapers.techrepublic.com/abstract.aspx?docid=45114&promo=300111&tag=wpr.6274
+http://itpapers.techrepublic.com/casestudy.aspx?ucname=PROFESSIONS+and+INDUSTRIES&docid=45114
+http://itpapers.techrepublic.com/search.aspx?compid=lo623779012
+http://itpapers.techrepublic.com/webcast.aspx?dtid=2&promo=1500&scid=262&docid=39189
+http://itpapers.techrepublic.com/webcast.aspx?dtid=2&promo=1500&scid=85&docid=38702
+http://itpapers.zdnet.com/casestudy.aspx?dtid=3&scid=267&docid=92465
+http://itpapers.zdnet.com/search.aspx?dtid=2&scid=87
+http://itpolicy.berkeley.edu/cpc502.html
+http://itre.cis.upenn.edu/~myl/languagelog/archives/000292.html
+http://itre.cis.upenn.edu/~myl/languagelog/archives/000844.html
+http://itre.cis.upenn.edu/~myl/languagelog/archives/000918.html
+http://itre.cis.upenn.edu/~myl/languagelog/archives/001303.html
+http://itre.cis.upenn.edu/~myl/languagelog/archives/002006.html
+http://itresearch.forbes.com/rlist/term/Computer-Aided-Design-Software.html
+http://its.psu.edu/wireless/wirelessSecureNet.html
+http://itsaboutimewriters.homestead.com/LenS.html
+http://itso.iu.edu/
+http://itsolutions.forbes.com/forbes/search/viewabstract/60217/index.jsp
+http://itsolutions.forbes.com/search/keyword/forbes/Desktop%20Video%20Conference/Desktop%20Video%20Conference
+http://itsolutions.forbes.com/search/keyword/forbes/Health%20Care%20Case%20Management%20Software/Health%20Care%20Case%20Management%20Software
+http://itstheeconomy.blogspot.com/
+http://itusupport.gmu.edu/stu_purch.asp
+http://iunctura.com/members/2004/51/newsletter.shtml
+http://iupress.indiana.edu/faq.html
+http://iupress.indiana.edu/textnet/0-253-33848-4/0253108438.htm
+http://iusedtobelieve.com/the_past/colour/colour_d8.php
+http://iwc04.events.pennnet.com/content.cfm?Navid=2231&Language=
+http://iwsun4.infoworld.com/articles/hn/xml/01/06/25/010625hnflaw.html
+http://j.webring.com/hub?ring=anabridgementofs
+http://jabbs.blogspot.com/
+http://jabbs.blogspot.com/2005/06/cheney-clarifies-comment-about-last.html
+http://jac.gsu.edu/jac/10/Reviews/12.htm
+http://jac.gsu.edu/jac/12.2/reviews/6.htm
+http://jack-johnson.lyrics-songs.com/lyrics/76324/
+http://jackandbooperschateau.ibforums.com/index.php?showtopic=8330&view=getnewpost
+http://jackmyers.com/jmr/2004/12/21/jmr-12-21-04/
+http://jacksonfreepress.com/
+http://jacpoc.oandp.com/library/1986_03_046.asp
+http://jade.bioware.com/forums/viewtopic.html?topic=271260&forum=79
+http://jade.bioware.com/forums/viewtopic.html?topic=271260&forum=79&sp=0
+http://jade.bioware.com/game_info/labour_of_love_p3.html
+http://jaggi.caltech.edu/misc/travel/index6.html
+http://jaguar.mobygames.com/info/MobyScale
+http://jakarta.apache.org/commons/httpclient/tutorial.html
+http://jakarta.apache.org/jcs/UsingJCSBasicWeb.html
+http://jakarta.apache.org/poi/hpsf/internals.html
+http://jakarta.apache.org/site/idedevelopers.html
+http://jakarta.apache.org/site/mail.html
+http://jam.canoe.ca/Television/TV_Shows/A/Amazing_Race/2005/02/09/925261.html
+http://jama.ama-assn.org/cgi/content/full/282/21/2068
+http://jama.ama-assn.org/cgi/content/full/284/6/681
+http://jama.ama-assn.org/cgi/content/full/286/22/2849
+http://jamaicaobserver.com/sports/
+http://james.anthropiccollective.org/
+http://james.infernal.net.nz/
+http://james.seng.cc/
+http://james.seng.cc/archives/000325.html
+http://jamesbredin.tripod.com/numberfour/id10.html
+http://jameshammerton.blogspot.com/
+http://jameshowardkunstler.typepad.com/clusterfuck_nation/
+http://jameshudnall.com/blog.php?/weblog/C28/
+http://jamesrskemp.net/
+http://jamesrskemp.net/html/jms2/wakinglife/jms2wakinglifetheimportanceofknowingthatyouarealive.htm
+http://jamesthornton.com/eckel/TIJ-1st-edition/Chapter12.html
+http://jamesthornton.com/eckel/TIJ-2nd-edition/AppendA.htm
+http://jamesthornton.com/postgres/7.3/postgres/ddl-alter.html
+http://jamesvdelong.com/articles/ip/jail-break.html
+http://jameswolcott.com/archives/2005/06/the_early_bird.php
+http://jameswolcott.com/archives/2005/06/the_price_of_be.php
+http://jan.netcomp.monash.edu.au/java/jnlp/paper.html
+http://jan.ucc.nau.edu/~doetqp-p/courses/env320/lec5/Lec5.html
+http://jan.ucc.nau.edu/~jar/Factors.html
+http://jan.ucc.nau.edu/~jar/TIL_25.html
+http://janesassaman.com/store-pages/booksvids/booksvids.html
+http://janmariedore.com/html/BS0704.html
+http://janus.lib.cam.ac.uk/db/node.xsp?id=EAD%2FGBR%2F0272%2FREF%2F13
+http://janus.state.me.us/legis/statutes/8/title8sec271.html
+http://japan.fjordaan.net/02_meiji_harajuku.html
+http://japantoday.com/e/?content=news&cat=6&id=326486
+http://japantoday.com/e/?content=news&cat=8&id=326934
+http://japanupdate.com/en/?id=3360
+http://japanupdate.com/en/?id=5628
+http://jaq.chaosmagic.com/SStones.htm
+http://jas.fass.org/cgi/content/full/80/7/1771
+http://jasewells.com/gayicons/
+http://jasewells.com/meetmichael.html
+http://jason.similarselection.org/2002_03_01_jasonsutter_archive.php
+http://jasonnolan.net/papers/comp1.html
+http://jasons.wumple.com/Interests/Nature/WeedLaws/Welcome.html
+http://jasss.soc.surrey.ac.uk/4/2/5.html
+http://jasss.soc.surrey.ac.uk/4/3/0.html
+http://jasss.soc.surrey.ac.uk/5/3/reviews/jaramillo.html
+http://java.sun.com/developer/JDCTechTips/2003/tt0204.html
+http://java.sun.com/developer/JDCTechTips/2005/tt0118.html
+http://java.sun.com/developer/technicalArticles/Interviews/Chaffee/
+http://java.sun.com/developer/technicalArticles/J2SE/Desktop/Mustang_build39.html
+http://java.sun.com/developer/technicalArticles/Media/timing/
+http://java.sun.com/developer/technicalArticles/javaopensource/plg.html
+http://java.sun.com/developer/technicalArticles/releases/j2se15langfeat/
+http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html
+http://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html
+http://java.sun.com/docs/books/tutorial/collections/interfaces/set.html
+http://java.sun.com/docs/books/tutorial/essential/exceptions/definition.html
+http://java.sun.com/docs/books/tutorial/essential/system/properties.html
+http://java.sun.com/docs/books/tutorial/security1.2/tour1/step3.html
+http://java.sun.com/docs/books/tutorial/uiswing/components/frame.html
+http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html
+http://java.sun.com/docs/books/tutorial/uiswing/misc/access.html
+http://java.sun.com/features/1998/01/security.html
+http://java.sun.com/features/1998/03/inetbiz.html
+http://java.sun.com/features/1998/05/birthday.html
+http://java.sun.com/features/2000/06/billday.html
+http://java.sun.com/features/2000/08/instinet.html
+http://java.sun.com/features/2003/05/bloch_qa.html
+http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JMS4.html
+http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSFConfigure10.html
+http://java.sun.com/j2ee/index.jsp
+http://java.sun.com/j2se/
+http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html
+http://java.sun.com/j2se/1.5.0/docs/guide/xml/jaxp/JAXP-Compatibility_150.html
+http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html
+http://java.sun.com/j2se/index.jsp
+http://java.sun.com/javaone/general_sessions5.html
+http://java.sun.com/jdc/onlineTraining/new2java/supplements/2003/Aug03.html
+http://java.sun.com/people/jag/Ariane5.html
+http://java.sun.com/products/jfc/tsc/
+http://java.sun.com/products/jfc/tsc/articles/performance/
+http://java.sun.com/products/jini/2.0/doc/specs/html/entry-spec.html
+http://javaboutique.internet.com/jini/
+http://javalobby.com/forums/thread.jspa?threadID=16730&messageID=91823950
+http://javalobby.com/forums/thread.jspa?threadID=16730&messageID=91823950&tstart=0
+http://javascript.weblogsinc.com/entry/1234000473042295/
+http://javatapestry.blogspot.com/archives/2004_01_01_javatapestry_archive.html
+http://jaycost.blogspot.com/2004/10/theorizing-about-oh-ground-game.html
+http://jbpm.org/article.html
+http://jbtank.com/indians/sittingbull.html
+http://jchemed.chem.wisc.edu/Journal/Issues/1999/Apr/abs578.html
+http://jcpenney.imdb.com/title/tt0099785/news
+http://jcwalsh.bravejournal.com/
+http://jdawg4949.tripod.com/id10.html
+http://jdj.sys-con.com/read/103740.htm
+http://jdmx.blogspot.com/2002_05_05_jdmx_archive.html
+http://jducoeur.org/game-hist/game-rules.html
+http://jducoeur.org/game-hist/seaan-cardhist.html
+http://jeaninenoyes.com/performances.php
+http://jeff-lab.queensu.ca/stat/sas/sasman/sashtml/proc/zdarex02.htm
+http://jeffcovey.net/personal/weight/?comments
+http://jefferson.blogdrive.com/archive/cm-01_cy-2005_m-01_d-02_y-2005_o-0.html
+http://jeffrey.yasskin.info/blog/archives/2005/05/21/graduation-speech/
+http://jehovah.to/glos/=B.html
+http://jellieszone.com/camerasystems.htm
+http://jena.typepad.com/
+http://jenett.org/asap/divertie/
+http://jenniferweiner.blogspot.com/
+http://jennytc.blogspot.com/
+http://jennytc.blogspot.com/2004_10_10_jennytc_archive.html
+http://jeremy.hopkins-family.org/journal/2004/05/index.php
+http://jeremy.zawodny.com/blog/
+http://jeremy.zawodny.com/blog/archives/000305.html
+http://jeremy.zawodny.com/blog/archives/001056.html
+http://jeremy.zawodny.com/blog/archives/001067.html
+http://jeremy.zawodny.com/blog/archives/002498.html
+http://jeremy.zawodny.com/blog/archives/002568.html
+http://jeremy.zawodny.com/blog/archives/002931.html
+http://jeremy.zawodny.com/blog/archives/003071.html
+http://jeremy.zawodny.com/blog/archives/003079.html
+http://jeremy.zawodny.com/blog/archives/003252.html
+http://jeremy.zawodny.com/blog/archives/003868.html
+http://jeremy.zawodny.com/blog/archives/004362.html
+http://jeremy.zawodny.com/blog/archives/004792.html
+http://jeremy.zawodny.com/blog/archives/004802.html
+http://jeremy.zawodny.com/blog/archives/004853.html
+http://jeremy.zawodny.com/linkblog/archives/2004_09.html
+http://jerryandmartha.com/red/
+http://jerryandmartha.com/red/2004_12_01_archive.html
+http://jerseygirlz.blog-city.com/
+http://jerz.setonhill.edu/weblog/categories/Science.html?category=Science&pageNumber=7
+http://jerz.setonhill.edu/writing/creative/shortstory/
+http://jerz.setonhill.edu/writing/creative/showing.htm
+http://jerz.setonhill.edu/writing/technical/mechanism.htm
+http://jessemccartney.tblog.com/
+http://jetex.org/archive/article-smith-ama-51.html
+http://jetiranger.tripod.com/BLOG/index.blog?topic_id=1018836
+http://jewel.morgan.edu/~cglobal/info.htm
+http://jewelry.about.com/od/shopforjewelry/tp/diamond_stud.htm
+http://jewelrymaking.about.com/cs/glassjewelrybead/index_2.htm
+http://jewishwhistleblower.blogspot.com/2005/05/rabbi-david-lapin-brother-of-daniel.html
+http://jfamilyenterprises.com/bush/page2.html
+http://jfi.uchicago.edu/~tten/Chile/ChileGrad.html
+http://jfly.iam.u-tokyo.ac.jp/html/color_blind/
+http://jfsp.nifc.gov/documents/1999-1%20RFP.html
+http://jgwebber.blogspot.com/2005/02/mapping-google.html
+http://jibbering.com/blog/index.php?m=200401
+http://jibbering.com/blog/index.php?p=122
+http://jihadwatch.org/
+http://jim.roepcke.com/webobjects/articles/wowackreview
+http://jimbosbalto.blogspot.com/
+http://jimbosbalto.blogspot.com/2005_03_01_jimbosbalto_archive.html
+http://jimfl.tensegrity.net/eb/archives/2002_09.shtml
+http://jimfl.tensegrity.net/eb/archives/2003_06.shtml
+http://jimtreacher.com/
+http://jimworld.com/apps/gethigh.forums/action::thread/thread::1057179165/forum::direct-mail/
+http://jip.kentlaw.edu/art/volume1/1-1-2.htm
+http://jiv.sagepub.com/cgi/content/refs/19/5/503
+http://jkalb.org/node/2
+http://jkalb.org/node/47
+http://jkontherun.blogs.com/jkontherun/2004/11/problems_in_oqo.html
+http://jkweb.berkeley.edu/external/research-in-progress/5-3/processive.html
+http://jl.toonzone.net/003/003.htm
+http://jme.bmjjournals.com/cgi/content/full/30/5/487
+http://jmenad.typepad.com/lapdwife/
+http://jmichaelrussell.org/philosop.htm
+http://jmm.aaa.net.au/articles/5584.htm
+http://jmm.aaa.net.au/articles/5586.htm
+http://jmm.aaa.net.au/articles/9442.htm
+http://jmm.aaa.net.au/articles/9833.htm
+http://jmsenglish.com/docpages/christmascarol/stave1p4.html
+http://jn.physiology.org/cgi/content/full/78/5/2336
+http://jn.physiology.org/cgi/content/full/84/1/401
+http://jn.physiology.org/cgi/content/full/87/3/1376
+http://jn.physiology.org/cgi/content/full/91/1/239
+http://jn.physiology.org/cgi/content/full/92/2/1105
+http://jncicancerspectrum.oupjournals.org/cgi/pdq/jncipdq;CDR0000270487?version=professional
+http://jnnp.bmjjournals.com/cgi/content/full/67/4/556a
+http://jnnp.bmjjournals.com/cgi/content/full/68/4/458
+http://jobfunctions.bnet.com/LEADERSHIP/Growth+Strategies+and+Tools/?cname=Growth+Strategies+and+Tools&sortby=default
+http://jobfunctions.bnet.com/whitepaper.aspx?scname=Culture&docid=61916
+http://jobfunctions.bnet.com/whitepaper.aspx?scname=Culture&docid=90223
+http://jobguide.symplicity.com/resources/profession_article.php?id=20
+http://jobguide.thegoodguides.com.au/book.cfm?contentfile=3-9-workterms.htm
+http://jobguide.thegoodguides.com.au/book.cfm?contentfile=3-9-workterms.htm&printonly=true
+http://jobinthesun.com/forum/topic.asp?TOPIC_ID=2441
+http://joblynx.com/
+http://jobprofiles.monster.com/Content/job_content/JC_Science/JSC_ScienceGeneral/copy_of_JOB_MarineBiologist/jobzilla_html?jobprofiles=1
+http://jobs.about.com/
+http://jobs.aol.careerbuilder.com/al.ic/Alabama_Montgomery_Distribution-Shipping.htm
+http://jobs.aol.careerbuilder.com/al.ic/Alaska_Anchorage/
+http://jobs.aol.careerbuilder.com/al.ic/Connecticut_Hartford?radius=10
+http://jobs.aol.careerbuilder.com/al.ic/Hawaii_Honolulu/
+http://jobs.aol.careerbuilder.com/al.ic/Hawaii_Honolulu_CustomerService.htm
+http://jobs.aol.careerbuilder.com/al.ic/Nevada_LasVegas_Accounting.htm
+http://jobs.aol.careerbuilder.com/al.ic/Nevada_LasVegas_Finance.htm
+http://jobs.aol.careerbuilder.com/al.ic/NorthDakota_GrandForks/
+http://jobs.careerbuilder.com/JobSeeker/Companies/CompanyJobResults.aspx?Comp_DID=C231Z6JQ766SBZPQJQ
+http://jobs.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J37X065J6L83K652HW
+http://jobs.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J8E6ZV6TQ8D94KGKB3K
+http://jobs.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=JQ5HK6G4TQFDBH8RB9
+http://jobs.careerbuilder.com/al.ic/Georgia_Conyers_Insurance.htm?radius=20
+http://jobs.careerbuilder.com/al.ic/Minnesota_Bloomington_Banking.htm?radius=10
+http://jobs.careerbuilder.com/al.ic/NorthCarolina_ProfessionalServices.htm
+http://jobs.careerbuilder.com/al.ic/Ohio_Cincinnati_Banking.htm?radius=20
+http://jobs.careerbuilder.com/al.ic/Texas_Denton_Banking.htm?radius=50
+http://jobs.careerbuilder.com/al.ic/Utah_StGeorge/
+http://jobs.collegerecruiter.com/JS/General/Job.asp?id=3434741
+http://jobs.collegerecruiter.com/JS/General/Job.asp?id=3456043
+http://jobs.collegerecruiter.com/JS/General/Job.asp?id=3460142
+http://jobs.collegerecruiter.com/JS/General/Job.asp?id=3489352
+http://jobs.esc.state.nc.us/soicc/info/briefs.htm
+http://jobs.fidelity.com/business/career_rms.shtml
+http://jobs.hospitalityonline.com/69079/
+http://jobs.mammothmountain.com/career/index.cfm
+http://jobs.mammothmountain.com/season/
+http://jobs.red-sea.com/terms.php
+http://jobs.state.va.us/careerguides/EEOMgr.htm
+http://jobs.state.va.us/careerguides/EmplRelMgr.htm
+http://jobs.state.va.us/careerguides/EmployeeRelationsSpec.htm
+http://jobs.uiowa.edu/employee_spotlights/details.php?ID=0
+http://jobsadvice.guardian.co.uk/secretarial/story/0,14448,1182934,00.html
+http://jobsearch.about.com/cs/jobsearchhelp/a/10tips.htm
+http://jobsearch.about.com/cs/networking/a/networking.htm
+http://jobsearch.about.com/cs/summercampjobs/a/summercamp.htm
+http://jobsearch.about.com/od/careeradvice/a/careerchange2.htm
+http://jobsearch.about.com/od/employmentlaw/a/childlaborlaw.htm
+http://jobsearch.about.com/od/employmentlaw/index_a.htm
+http://jobsearch.about.com/od/jobsearchtips/a/jobsearchtool.htm
+http://jobsearch.about.com/od/networking/a/networkingtips.htm
+http://jobsearch.about.com/od/sampleresumes/l/blsampcoverlett.htm
+http://jobsearch.about.com/od/summercampjobs/a/summercamptip.htm
+http://jobsearch.about.com/od/teenstudentgrad/
+http://jobsearch.about.com/od/unemployment/
+http://jobsearch.gov.au/harvesttrail/info.aspx
+http://jobsearchtech.about.com/od/laborlaws/l/blt_legal.htm
+http://jobseeker.unicru.com/asp/home/terms.asp
+http://jobsinpsychology.com/featured_article.asp
+http://jodi.ecs.soton.ac.uk/Articles/v01/i08/Hunter/
+http://jodi.tamu.edu/Articles/v03/i02/Mohr/
+http://jodi.tamu.edu/Articles/v03/i02/Mohr/?printable=1
+http://jodi.tamu.edu/Articles/v04/i03/Deniman/
+http://joelando.tv/mag/fu/fu.html
+http://joemygod.blogspot.com/2004/05/deal-breaker.html
+http://joemygod.blogspot.com/2005/04/deal-breaker.html
+http://joesacher.com/documents/commandline.php?Page=All
+http://joesacher.com/documents/commandline.php?Page=ETRE
+http://joesdiecastshack.com/mytakeon3.htm
+http://john.curtin.edu.au/events/speeches/grattanlecture.html
+http://john.hoke.org/
+http://johnarthur.tripod.com/leithhistory/siege.htm
+http://johnaugust.com/
+http://johnaugust.com/archives/category/qanda/television/
+http://johnaugust.com/index.php
+http://johnbrashear.tripod.com/bio/KeelerJ.htm
+http://johnharkeygibbs.typepad.com/jhg/
+http://johnharkeygibbs.typepad.com/jhg/2005/01/best_of_with_li.html
+http://johnkerrythenewsoldier.blogspot.com/
+http://johnmartintaylor.com/newsletter_20011209_tallinn.html
+http://johnporcaro.typepad.com/blog/2005/03/work_relationsh.html
+http://johnquiggin.com/index.php/archives/2005/04/18/duffy-and-carter-on-counterpoint/
+http://johnquiggin.com/index.php/archives/2005/06/02/industrial-relations-reforms-part-2/
+http://johnrlott.tripod.com/op-eds/IBDGunConFailure.html
+http://johnrlott.tripod.com/postsbyday/7-4-03.html
+http://johnsons-rambler.blogspot.com/2005_03_01_johnsons-rambler_archive.html
+http://johnvcooper.home.mindspring.com/ralcomma.htm
+http://joi.ito.com/archives/2002/04/09/trilateral_commission_speech.html
+http://joi.ito.com/archives/2003/02/05/keiji_shima.html
+http://joi.ito.com/archives/2003/08/06/going_ptime.html
+http://joi.ito.com/archives/2003/08/15/article_in_the_economist_about_commercialization_of_weblogs.html
+http://joi.ito.com/archives/2004/05/30/garbage_day_in_the_village.html
+http://joi.ito.com/archives/2004/08/29/wikipedia_attacked_by_ignorant_reporter.html
+http://jollyroger.com/rogerlodge.html
+http://jonathan.mueller.faculty.noctrl.edu/toolbox/howstep1.htm
+http://jonathanscorner.com/tms/complex/complex8.html
+http://jonathanscorner.com/writings/awakening/printer.html
+http://jonathanscorner.com/writings/peace/peace2.html
+http://jonathanscorner.com/writings/watch/watch.html
+http://jonjayray.netfirms.com/psychlef.html
+http://jonjayray.tripod.com/ethatt.html
+http://jonnybillericay.blogspot.com/
+http://jonnybillericay.blogspot.com/2005_03_01_jonnybillericay_archive.html
+http://jonnybillericay.blogspot.com/2005_04_01_jonnybillericay_archive.html
+http://jonsullivan.com/
+http://jophan.org/mimosa/m13/13_p31.html
+http://jorite.blogspot.com/
+http://joshuaink.com/blog/196/a-simple-guide-to-3-column-layouts
+http://joslin.org/news/prevent_type2.shtml
+http://journal.aiga.org/content.cfm?ContentAlias=_getfullarticle&aid=926343
+http://journal.einsure.com/archive/2004/11/29/194.aspx
+http://journal.media-culture.org.au/0501/05-parikka.php
+http://journal.media-culture.org.au/0502/08-hood.php
+http://journal.smsmasters.co.uk/
+http://journal.sumdog.com/index.php?page=89
+http://journalclub.org/
+http://journalism.berkeley.edu/ngno/stories/001401.html
+http://journalism.berkeley.edu/ngno/stories/003863.html
+http://journalism.berkeley.edu/ngno/stories/003863_print.html
+http://journalism.berkeley.edu/projects/biplog/
+http://journalism.berkeley.edu/projects/biplog/archive/000382.html
+http://journalism.berkeley.edu/projects/southafrica/news/traumaprinterfriendly.html
+http://journalism.nyu.edu/mt/mt-comments.cgi?entry_id=577
+http://journalism.nyu.edu/pubzone/streetlevel/union/000530.html
+http://journalism.nyu.edu/pubzone/streetlevel/union/000534.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/01/14/watch_sites.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/03/31/ryan_video.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/04/07/atrios_kos.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/04/16/con_prelude.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/04/25/bush_muscle.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/06/28/gates_blog.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/07/29/edsall_blogs.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/08/11/heaton_unity.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/09/15/get_win.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/09/28/four_years.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/10/29/mcgill_essay.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2004/12/26/tptn04_intro.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2005/01/04/lex_report.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2005/03/14/kmng_pwr.html
+http://journalism.nyu.edu/pubzone/weblogs/pressthink/2005/05/08/rutt_evo.html
+http://journals.aol.ca/plittle/AuroraWalkingVacation/
+http://journals.aol.com/boiseladie/MyWorld/
+http://journals.aol.com/jeffrowan111/PoliticalWaves/entries/368
+http://journals.aol.com/jgalarza879/SmallTownLife/
+http://journals.aol.com/jjsilcocks/TheLast50Pounds/
+http://journals.aol.com/johnmscalzi/bytheway/entries/197
+http://journals.aol.com/robinngabster/Thesearethedaysofourlives/entries/770
+http://journals.aol.com/schnozbeary/FreshCupMoveDown
+http://journals.aol.com/schnozbeary/FreshCupMoveDown/
+http://journals.aol.com/scottishracer9/TheunofficialEverybodyNEXTELCham/
+http://journals.aol.com/shallwetalkabout/Letstalkaboutwhatever/entries/730
+http://journals.aol.com/sounbelievableme/PassingTime/
+http://journals.aol.com/thcaraja/AJournal/entries/839
+http://journals.iucr.org/b/issues/1997/05/00/isscontsbdy.html
+http://journals.iucr.org/iucr-top/cong/18/poster/P8.html
+http://journalstar.com/articles/2005/06/23/local/doc42b9f456d06c3543896642.txt
+http://journaltimes.abracat.com/c2/legal/results/index.xml
+http://journey.20fr.com/custom3.html
+http://journeytoforever.org/biodiesel_make.html
+http://journeytoforever.org/biofuel_food.html
+http://journeytoforever.org/farm_library/medtest/medtest_refs.html
+http://journeytoforever.org/farm_library/medtest/medtest_sykes.html
+http://journeytoforever.org/keith/MMT/keith_harrods.html
+http://joy2meu.com/World_Trade_Center.html
+http://joy2meu.com/jump_start_recovery.htm
+http://jp.physoc.org/cgi/content/abstract/419/1/405
+http://jpn.cec.eu.int/CGI/topiclink.php?page=/home/news_newsobj766.php&language=en
+http://jpn.cec.eu.int/CGI/topiclink.php?page=/home/news_newsobj8.php&language=en
+http://jpn.cec.eu.int/CGI/topiclink.php?page=/home/speech_Speech201203.php&language=en
+http://jpn.cec.eu.int/CGI/topiclink.php?page=/home/speech_Speech202801.php&language=en
+http://jppr.psychiatryonline.org/cgi/content/full/10/4/262
+http://jquarter.members.beeb.net/moreattwood.htm
+http://jquarter.members.beeb.net/walk5.htm
+http://jquarter.members.beeb.net/walk8.htm
+http://jrhull.typepad.com/seward_street/2005/04/an_incredible_m.html
+http://jri.org.uk/news/letter/summer2002.htm
+http://jrobb.mindplex.org/2004/10/13.html
+http://jroller.com/page/Noniko/20050402
+http://jroller.com/page/Noniko/20050608
+http://jrscience.wcp.muohio.edu/Research/HNatureProposalsArticles/FinalPaper.Cananindividua.html
+http://jrscience.wcp.muohio.edu/html/Astronomy.html
+http://jrscience.wcp.muohio.edu/html/astronomy.html
+http://jschoolyear.blogspot.com/
+http://jsis.artsci.washington.edu/programs/cwesuw/mancini.htm
+http://jsr.fsu.edu/2003/Cutrer.htm
+http://jtc.blogs.com/just_left/2004/10/in_defence_of_p.html
+http://jubileesouth.org/news/EpZlEkkEkEzoYeOfYF.shtml
+http://judaism.about.com/od/jewishgenealogy/a/jewpas_kerry.htm
+http://judiciary.house.gov/OversightTestimony.aspx?ID=176
+http://judiciary.house.gov/OversightTestimony.aspx?ID=55
+http://judiciary.house.gov/legacy/5102.htm
+http://judiciary.house.gov/legacy/546.htm
+http://judiciary.senate.gov/faq.htm
+http://judiciary.senate.gov/oldsite/32320pl2.htm
+http://judiciary.senate.gov/oldsite/7272000_pjl1.htm
+http://judo1.net/ju01010.htm
+http://judoinfo.com/weers93.htm
+http://jukebox.thing.net/projet/textealeng.htm
+http://juliamae.com/
+http://juniortennis.com/Science/AdamNaylor/GrowingOlder.htm
+http://junit.sourceforge.net/doc/testinfected/testing.htm
+http://junk.haughey.com/doctorow-drm-ms.html
+http://junkyardblog.net/archives/week_2002_11_24.html
+http://junkyardblog.net/archives/week_2003_08_24.html
+http://junkyardblog.net/archives/week_2004_01_18.html
+http://junkyardblog.net/archives/week_2004_02_01.html
+http://junkyardblog.net/archives/week_2005_06_12.html
+http://jurist.law.pitt.edu/paperchase/
+http://jurist.law.pitt.edu/paperchase/2004/10/developing-story-afghan-election-in.php
+http://jurist.law.pitt.edu/paperchase/2004/10/german-court-orders-release-of.php
+http://jurist.law.pitt.edu/paperchase/2005/01/german-high-court-judge-revives.php
+http://jurist.law.utoronto.ca/dictionary.htm
+http://justacup.blogs.com/
+http://justgoodcompany.org/2.1/dellacava-engel.htm
+http://justlightning.net/html/policies/spam.html
+http://justoneminute.typepad.com/main/2004/07/what_i_didnt_fi.html
+http://justoneminute.typepad.com/main/2004/09/who_is_robert_m.html
+http://justoneminute.typepad.com/main/2005/01/hanoi_john_we_h.html
+http://justoneminute.typepad.com/main/2005/02/ny_times_plame_.html
+http://justsue.ca/?p=803
+http://justus.anglican.org/resources/pc/dekoven/letter1875.html
+http://justus.anglican.org/resources/pc/england/church/om/9.html
+http://justworldnews.org/MT/mt-comments.cgi?entry_id=1019
+http://justworldnews.org/archives/000895.html
+http://jvandorp.blogspot.com/2004_07_01_jvandorp_archive.html
+http://jvi.asm.org/cgi/content/full/76/10/5094
+http://jvis.com/articles/default.htm
+http://jwz.livejournal.com/494040.html
+http://jxquick.sourceforge.net/quick3/
+http://k12linux.mesd.k12.or.us/using_samba/ch05_04.html
+http://k2.kirtland.cc.mi.us/~balbachl/step.htm
+http://kabuki.eecs.berkeley.edu/~luns/papers/241rep.html
+http://kabuki.eecs.berkeley.edu/~rsn/papers/EE241/final.html
+http://kairosnews.org/
+http://kaixun.en.alibaba.com/group/0.html
+http://kaixun.en.alibaba.com/group/0f2f21.html
+http://kalsey.com/2003/05/newly_digital/
+http://kansas.uscity.net/Animal/
+http://kaprekar.sourceforge.net/
+http://karaart.com/contests/contests.06.html
+http://kari.hiitola.net/audrey/blog.html
+http://karws.gso.uri.edu/JFK/conspiracy_theory/the_paranoid_mentality/The_paranoid_style.html
+http://kate.nerdsluts.com/
+http://katespot.com/archives/2004/10/
+http://katiej.typepad.com/mzsmlph/2005/02/dealing.html
+http://kauaiworld.com/articles/2005/01/21/news/news01.txt
+http://kazmer.uml.edu/Research/robust_design.htm
+http://kbs.cs.tu-berlin.de/~jutta/ht/writing/text.html
+http://kcal9.com/topstories/topstories_story_030140005.html
+http://kccesl.tripod.com/spring2001/studentprojects/sociology.html
+http://kclibrary.nhmccd.edu/music-2.html
+http://kcs-csi.blogspot.com/
+http://kdiff3.sourceforge.net/doc/options.html
+http://kdoch.state.ks.us/public/resources/businesses/list.jsp
+http://kdoch.state.ks.us/public/resources/individuals/list.jsp
+http://keepandbeararms.com/information/XcIBViewItem.asp?ID=1159
+http://keepandbeararms.com/information/XcIBViewItem.asp?ID=3100
+http://keepandbeararms.com/information/XcIBViewItem.asp?ID=3210
+http://keepandbeararms.com/information/XcIBViewItem.asp?ID=511
+http://keepandbeararms.com/information/XcIBViewItem.asp?ID=588
+http://keepandbeararms.com/information/XcIBViewItem.asp?ID=630
+http://keepandbeararms.com/information/XcIBViewItem.asp?ID=832
+http://keepoutoftrouble.blogspot.com/
+http://keeptrying.blogspot.com/
+http://kehillatisrael.net/docs/atp.htm
+http://keirsey.com/pumII/tf.html
+http://keithdevens.com/wiki/Why+I'm+not+a+Roman+Catholic
+http://keithp.com/~keithp/talks/xarch_ols2004/xarch-ols2004-html/
+http://kelly.usd259.org/PTA%20Newsletter.htm
+http://kellyanncollins.com/2005/01/lets-wait.html
+http://kenmacleod.blogspot.com/2005_05_01_kenmacleod_archive.html
+http://kenneth.moyle.com/cp/
+http://kennethandersonlawofwar.blogspot.com/
+http://kenpom.typepad.com/ha/2005/01/
+http://kentucky.gov/Portal/FollowLink/kyethics_leaving-gov
+http://kenyada.com/onporch.htm
+http://kerlins.net/bobbi/Eriador/links/health.html
+http://kerneltrap.org/
+http://kerneltrap.org/mailarchive/1/message/69843/thread
+http://kerneltrap.org/node/3522
+http://kerneltrap.org/node/3522/10513
+http://kerneltrap.org/node/3522/print
+http://kerneltrap.org/node/4622
+http://kerneltrap.org/node/4818
+http://kerneltrap.org/node/4966
+http://kerneltrap.org/node/5073
+http://kerneltrap.org/node/view/3240
+http://kerrymccall.com/tips.html
+http://kervinphotos.blogspot.com/
+http://kevinholtsberry.com/blog/archives/003150.html
+http://kevinholtsberry.com/ellahope/archives/2005_02.html
+http://kevinpierpont.com/library/archives/2005/05/15/living-above-circumstances-phil-4-12/
+http://keyetv.com/topstories/topstories_story_030140005.html
+http://keyissues.mu.nu/
+http://keystosaferschools.com/LOVECampaignTrademark.htm
+http://kfmonkey.blogspot.com/2005/06/its-global-frequency-now.html
+http://kfreshn.tripod.com/
+http://khason.biz/blog/2004/12/why-microsoft-can-blow-off-with-c.html
+http://kids.discovery.com/fansites/saddleclub/quiz/quiz.html
+http://kidshealth.org/PageManager.jsp?dn=familydoctor&article_set=22955&lic=44&cat_id=190
+http://kidshealth.org/breaking_news/terrorist_attacks.html
+http://kidshealth.org/kid/body/heart_noSW.html
+http://kidshealth.org/kid/feeling/emotion/anger.html
+http://kidshealth.org/kid/feeling/emotion/stress.html
+http://kidshealth.org/kid/grow/tough_topics/running_away.html
+http://kidshealth.org/kid/health_problems/allergiesimmune/food_allergies.html
+http://kidshealth.org/kid/health_problems/allergy/asthma_triggers.html
+http://kidshealth.org/kid/health_problems/learning_problem/adhdkid.html
+http://kidshealth.org/kid/misc/terrorist_attacks.html
+http://kidshealth.org/kid/stay_healthy/fit/no_sports.html
+http://kidshealth.org/kid/stay_healthy/food/comments_new_pyramid.html
+http://kidshealth.org/kid/watch/out/water.html
+http://kidshealth.org/parent/emotions/behavior/suicide.html
+http://kidshealth.org/parent/firstaid_safe/home/products.html
+http://kidshealth.org/parent/firstaid_safe/travel/job.html
+http://kidshealth.org/parent/general/sick/labtest6_p2.html
+http://kidshealth.org/parent/general/sleep/cosleeping.html
+http://kidshealth.org/parent/general/teeth/healthy.html
+http://kidshealth.org/parent/growth/movement/move12yr.html
+http://kidshealth.org/parent/medical/heart/murmurs.html
+http://kidshealth.org/parent/medical/kidney/chronic_kidney_disease.html
+http://kidshealth.org/parent/misc/teachers_tragedies.html
+http://kidshealth.org/parent/nutrition_fit/nutrition/childs_weight_prt.htm
+http://kidshealth.org/parent/positive/talk/news.html
+http://kidshealth.org/parent/pregnancy_newborn/pregnancy/medical_care_pregnancy.html
+http://kidshealth.org/parent/pregnancy_newborn/pregnancy/pregnancy.html
+http://kidshealth.org/parent/system/doctor/birth_centers_hospitals.html
+http://kidshealth.org/teen/diseases_conditions/personal_stories/kristin.html
+http://kidshealth.org/teen/diseases_conditions/sight/kristin.html
+http://kidshealth.org/teen/food_fitness/exercise/compulsive_exercise.html
+http://kidshealth.org/teen/safety/first_aid/nosebleeds.html
+http://kidshealth.org/teen/your_body/skin_stuff/skin_tips.html
+http://kidshealth.org/teen/your_body/take_care/teeth.html
+http://kidshealth.org/teen/your_mind/families/divorce.html
+http://kidshealth.org/teen/your_mind/problems/pet_death.html
+http://kijabe.org/kenya2001/6.html
+http://kildare.ie/countycouncil/corporateaffairs/motortaxation/MotorTaxationGuide/
+http://kimberleyclub.co.za/history.htm
+http://kimwells.blogspot.com/2003/12/temporarily-single-girls-guide-to.html
+http://kinja.com/user/emas
+http://kinja.com/user/mrbarger
+http://kinja.com/user/nhelpern
+http://kinks.it.rit.edu/charts.html
+http://kiosan.blogharbor.com/
+http://kirchelconsulting.com/guest1/index.php
+http://kirkland.date.com/black-dating/washington.htm
+http://kirsi.zerodistance.org/blog/archives/2004_02.php
+http://kiteonline.net/gvep/gvepactivities.htm
+http://kiwiwebhost.co.nz/clientfeedback.htm
+http://kjcb.jacksoncountygov.com/aboutus.asp
+http://kjo84.typepad.com/cta_tattler/2005/02/eyewitness_acco.html
+http://kjzz.org/
+http://klabs.org/DEI/References/design_guidelines/design_analysis_test_guides.htm
+http://klingon.dw-world.de/english/history.php
+http://klobouk.fsv.cvut.cz/~ondra/sade/sade.html
+http://klomdark.servebeer.com:8081/messagebase/ReadMessage.asp?MsgNum=669
+http://knitnthink.blogspot.com/
+http://knitting.about.com/library/weekly/aa060197.htm
+http://knitting.xaviermusketeer.com/
+http://knitty.com/ISSUEsummer03/FEATtheresa.html
+http://knottyboy.blogspot.com/
+http://knowgramming.com/introduction/rules2.htm
+http://knowledge.nzoom.com/knowledge_detail/0,2210,106102-181-183,00.html
+http://knowledge.wharton.upenn.edu/article/1219.cfm
+http://knowledge.wharton.upenn.edu/article/1227.cfm
+http://knowledge.wharton.upenn.edu/articles.cfm?catid=7&articleid=863&homepage=yes
+http://knowledge.wharton.upenn.edu/index.cfm?fa=specialsection&specialid=29
+http://knowledge.wharton.upenn.edu/index.cfm?fa=viewArticle&id=1154&specialId
+http://knowledge.wharton.upenn.edu/index.cfm?fa=viewArticle&id=1227
+http://knowledge.wharton.upenn.edu/index.cfm?fa=viewfeature&id=1172
+http://knowledge.wharton.upenn.edu/index.cfm?fa=viewfeature&id=1219
+http://knowledge.wharton.upenn.edu/index.cfm?fa=whatshot
+http://knowledgeloom.org/elemlit/ells_meetnds.jsp
+http://knowledgestorm.co.uk/search/keyword/ksuk/UK%20Private%20Club%20Managing%20Software/UK%20Private%20Club%20Managing%20Software
+http://knowledgestorm.inc.com/search/keyword/inc/Telephone%20Record%20Software/Telephone%20Record%20Software
+http://knowledgestorm.techtarget.com/searchcio/search/tabkeyword/software/data+life+cycle+management/1/index.jsp
+http://knowledgestorm.techtarget.com/searchenterprisevoice/search/keyword/Managed%20Service%20Provider%20Webcast/Managed%20Service%20Provider%20Webcast
+http://knowledgestorm.techtarget.com/searchwin2000/search/keyword/Department%20Of%20Labor%20Jobs%20Dallas%20Texas%20Software/Department%20Of%20Labor%20Jobs%20Dallas%20Texas%20Software
+http://knowtruth.tripod.com/ess_doct.htm
+http://knus99.virtbiz.com/kdnt.html
+http://ko.cwru.edu/services/musfrming.html
+http://koala.ilog.fr/twikiirc/bin/irclogger_log/twiki?date=2003-10-19,Sun&twiki=on
+http://koala.ilog.fr/twikiirc/bin/irclogger_log/twiki?date=2004-11-22,Mon&twiki=on
+http://kobek.com/detnews91835.html
+http://kohbunny.com/holes.html
+http://koiness.emopsychostar.com/
+http://kol.coldfront.net/index.php/content/view/161/73/
+http://kol.coldfront.net/index.php/content/view/254/67/
+http://kollman-saucier.com/quick/quickseptember2004.shtml
+http://kondor.etf.bg.ac.yu/~lutovac/confer.htm
+http://kongehuset.dk/artikel.php?dogtag=k_en_org_hou
+http://kongehuset.dk/artikel.php?dogtag=k_en_org_hou_mem
+http://konrad.lawson.net/interests.html
+http://korea.co.kr/korealink/kn.html
+http://korealife.blogspot.com/archives/2004_08_15_korealifeblog_archives.html
+http://koti.mbnet.fi/~kakoskin/penpal/1830/octo04.html
+http://kotn.ntu.ac.uk/create/archive/nickijan.htm
+http://kottke.org/
+http://kr.cs.ait.ac.th/~radok/physics/b5.htm
+http://kr.cs.ait.ac.th/~radok/physics/k10.htm
+http://kristala.diaryland.com/
+http://kristopherjohnson.blogspot.com/2005/04/holy-wars-in-aviation.html
+http://kristynleighrobinson.4t.com/custom4.html
+http://kron4.com/Global/story.asp?S=2854226
+http://ks.water.usgs.gov/Kansas/pubs/reports/wrir.01-4205.html
+http://ksghome.harvard.edu/~.JNewhouse.Wiener.Ksg/fullbio.html
+http://ksghome.harvard.edu/~SDynarski/publications.htm
+http://ksghome.harvard.edu/~pnorris/Books/On%20Message.htm
+http://ksgnotes1.harvard.edu/degreeprog/courses.nsf/0/274e306d1252424f85256ef2005b8f39?OpenDocument&ExpandSection=2
+http://ksgnotes1.harvard.edu/degreeprog/courses.nsf/0/462ecaab1cba1e3c85256edd00175169?OpenDocument&ExpandSection=2
+http://ksgnotes1.harvard.edu/degreeprog/courses.nsf/0/7124cda47190585585256ef2005b8f6b?OpenDocument&ExpandSection=2
+http://ksgnotes1.harvard.edu/degreeprog/courses.nsf/0/bf1141d68db2c5ae85256ef2005b8f3b?OpenDocument&ExpandSection=2
+http://ksi.cpsc.ucalgary.ca/IMS/GNOSIS/TC7F5.html
+http://ksi.cpsc.ucalgary.ca/KAW/KAW96/fensel/ambd.html
+http://kstavino.home.texas.net/Tower17%20Webpage%2005.htm
+http://kuathletics.collegesports.com/chat/092404aaa.html
+http://kudzu.ipr.sc.edu/effectiveness/assessment/IEReports/unin1997.htm
+http://kulichki.com/moshkow/SONGS/plant.txt
+http://kutv.com/business/finance_story_174103051.html
+http://kva.tkk.fi/en/Studies/enrolment.html
+http://kwelos.tripod.com/memes.htm
+http://kyem.dma.state.ky.us/training/exercise.htm
+http://kypros.org/Loizidou/tstatemnt.html
+http://kypros.org/halfmarathon/
+http://kyw.com/finance/finance_story_174103049.html
+http://kzsu.stanford.edu/~cathya/Playlists/jul97.html
+http://la.cancer.gov/evaluate.html
+http://la.com.toursandshows.com/Body.asp?tour=SFO-B0015&page=TourDetails
+http://la.com.toursandshows.com/body.asp?tour=LAS-WED15&page=TourDetails
+http://la.com.toursandshows.com/body.asp?tour=LON-T0009&page=TourDetails
+http://la.com.toursandshows.com/body.asp?tour=SFO-B0015&page=TourDetails&headerson=off
+http://la.oodle.com/sale/tickets/
+http://lab.msdn.microsoft.com/vs2005/get/currentreadme/
+http://labanimalwelfare.org/animals_in_education.html
+http://laboratory-supply.globalspec.com/Specifications/Labware_Scientific_Instruments/Labware_Consumables/Glass_Plastic_Labware
+http://labour-watch.blogspot.com/2004_09_26_labour-watch_archive.html
+http://labour.gov.mu/empment/wpermit.htm
+http://labour.org.uk/privacy
+http://labourlawblog.typepad.com/managementupdates/2005/02/when_should_you.html
+http://labrocca.com/marybrunton/d/disciplinech018.html
+http://labs.pcw.co.uk/
+http://labs.pcw.co.uk/2005/02/
+http://labs.pcw.co.uk/2005/05/
+http://labs.pcw.co.uk/storage/
+http://labs.silverorange.com/local/solabs/include/styleguide/
+http://lachlan.bluehaze.com.au/pubs_etc/
+http://lachlan.gemmell.com/2004/11/adjusting-expectations-and-strategies.html
+http://lacoquette.blogs.com/la_coquette/2004/10/13_reasons_to_f.html
+http://ladida.blog-city.com/
+http://laii.unm.edu/conference/rojas.php
+http://laivakoira.typepad.com/blog/2005/05/morse_texter.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1007.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1008.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1037.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1040.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1042.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1045.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1053.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1054.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1080.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1087.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1090.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1097.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1103.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1105.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1106.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1146.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1158.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1160.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1170.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1177.html
+http://laluni.helloyou.ws/netnews/bk/astrology/astr1191.html
+http://laluni.helloyou.ws/netnews/bk/atom/atom1007.html
+http://laluni.helloyou.ws/netnews/bk/atom/atom1016.html
+http://laluni.helloyou.ws/netnews/bk/atom/atom1025.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1005.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1008.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1010.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1011.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1014.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1017.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1018.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1021.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1022.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1026.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1029.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1031.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1032.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1034.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1036.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1039.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1040.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1043.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1047.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1048.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1049.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1056.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1061.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1063.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1065.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1066.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1068.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1069.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1073.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1074.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1075.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1078.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1080.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1087.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1088.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1091.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1092.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1093.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1094.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1096.html
+http://laluni.helloyou.ws/netnews/bk/autobiography/auto1103.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1005.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1008.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1010.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1021.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1024.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1026.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1033.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1047.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1054.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1058.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1059.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1071.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1074.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1078.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1083.html
+http://laluni.helloyou.ws/netnews/bk/bethlehem/beth1084.html
+http://laluni.helloyou.ws/netnews/bk/destiny/dest1008.html
+http://laluni.helloyou.ws/netnews/bk/destiny/dest1063.html
+http://laluni.helloyou.ws/netnews/bk/destiny/dest1065.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1002.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1006.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1025.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1042.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1047.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1055.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1067.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1071.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1096.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1098.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1214.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1256.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1302.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1316.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1327.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1330.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1340.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1362.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1367.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1382.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1395.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1401.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1403.html
+http://laluni.helloyou.ws/netnews/bk/discipleship1/disc1417.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2002.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2004.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2008.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2012.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2027.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2040.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2063.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2066.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2109.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2147.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2150.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2159.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2164.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2172.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2204.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2205.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2244.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2248.html
+http://laluni.helloyou.ws/netnews/bk/discipleship2/disc2255.html
+http://laluni.helloyou.ws/netnews/bk/education/edu1003.html
+http://laluni.helloyou.ws/netnews/bk/education/edu1008.html
+http://laluni.helloyou.ws/netnews/bk/education/edu1014.html
+http://laluni.helloyou.ws/netnews/bk/education/edu1018.html
+http://laluni.helloyou.ws/netnews/bk/education/edu1034.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1012.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1040.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1102.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1133.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1134.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1157.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1161.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1180.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1236.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1254.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1269.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1272.html
+http://laluni.helloyou.ws/netnews/bk/externalisation/exte1288.html
+http://laluni.helloyou.ws/netnews/bk/fire/fire1003.html
+http://laluni.helloyou.ws/netnews/bk/fire/fire1052.html
+http://laluni.helloyou.ws/netnews/bk/fire/fire1283.html
+http://laluni.helloyou.ws/netnews/bk/fire/fire1288.html
+http://laluni.helloyou.ws/netnews/bk/fire/fire1321.html
+http://laluni.helloyou.ws/netnews/bk/fire/fire1469.html
+http://laluni.helloyou.ws/netnews/bk/glamour/glam1067.html
+http://laluni.helloyou.ws/netnews/bk/healing/heal1025.html
+http://laluni.helloyou.ws/netnews/bk/healing/heal1046.html
+http://laluni.helloyou.ws/netnews/bk/healing/heal1084.html
+http://laluni.helloyou.ws/netnews/bk/healing/heal1086.html
+http://laluni.helloyou.ws/netnews/bk/healing/heal1130.html
+http://laluni.helloyou.ws/netnews/bk/healing/heal1174.html
+http://laluni.helloyou.ws/netnews/bk/healing/heal1181.html
+http://laluni.helloyou.ws/netnews/bk/healing/heal1203.html
+http://laluni.helloyou.ws/netnews/bk/healing/heal1238.html
+http://laluni.helloyou.ws/netnews/bk/hercules/herc1003.html
+http://laluni.helloyou.ws/netnews/bk/hercules/herc1014.html
+http://laluni.helloyou.ws/netnews/bk/hercules/herc1016.html
+http://laluni.helloyou.ws/netnews/bk/hercules/herc1028.html
+http://laluni.helloyou.ws/netnews/bk/hercules/herc1030.html
+http://laluni.helloyou.ws/netnews/bk/hercules/herc1032.html
+http://laluni.helloyou.ws/netnews/bk/hercules/herc1034.html
+http://laluni.helloyou.ws/netnews/bk/hercules/herc1037.html
+http://laluni.helloyou.ws/netnews/bk/hercules/herc1043.html
+http://laluni.helloyou.ws/netnews/bk/hercules/herc1062.html
+http://laluni.helloyou.ws/netnews/bk/initiation/init1023.html
+http://laluni.helloyou.ws/netnews/bk/meditation/medi1132.html
+http://laluni.helloyou.ws/netnews/bk/problems/prob1027.html
+http://laluni.helloyou.ws/netnews/bk/problems/prob1041.html
+http://laluni.helloyou.ws/netnews/bk/problems/prob1048.html
+http://laluni.helloyou.ws/netnews/bk/problems/prob1068.html
+http://laluni.helloyou.ws/netnews/bk/psychology1/psyc1093.html
+http://laluni.helloyou.ws/netnews/bk/psychology2/psyc2089.html
+http://laluni.helloyou.ws/netnews/bk/psychology2/psyc2235.html
+http://laluni.helloyou.ws/netnews/bk/psychology2/psyc2245.html
+http://laluni.helloyou.ws/netnews/bk/psychology2/psyc2251.html
+http://laluni.helloyou.ws/netnews/bk/psychology2/psyc2264.html
+http://laluni.helloyou.ws/netnews/bk/rays/rays1047.html
+http://laluni.helloyou.ws/netnews/bk/rays/rays1085.html
+http://laluni.helloyou.ws/netnews/bk/rays/rays1140.html
+http://laluni.helloyou.ws/netnews/bk/rays/rays1157.html
+http://laluni.helloyou.ws/netnews/bk/rays/rays1279.html
+http://laluni.helloyou.ws/netnews/bk/reappearance/reap1011.html
+http://laluni.helloyou.ws/netnews/bk/reappearance/reap1044.html
+http://laluni.helloyou.ws/netnews/bk/reappearance/reap1049.html
+http://laluni.helloyou.ws/netnews/bk/soul/soul1008.html
+http://laluni.helloyou.ws/netnews/bk/telepathy/tele1036.html
+http://laluni.helloyou.ws/netnews/bkindex/c1000/f1254.html
+http://laluni.helloyou.ws/netnews/bkindex/c1031/f1393.html
+http://laluni.helloyou.ws/netnews/bkindex/c1033/f1081.html
+http://laluni.helloyou.ws/netnews/bkindex/c1038/f1348.html
+http://laluni.helloyou.ws/netnews/bkindex/c1045/f1400.html
+http://laluni.helloyou.ws/netnews/bkindex/c1065/f1294.html
+http://lamar.colostate.edu/~barberhd/agingquotes.htm
+http://lamar.colostate.edu/~clifton/agingquotes.htm
+http://lamar.colostate.edu/~montrose/fire.htm
+http://lamar.colostate.edu/~montrose/fire.html
+http://lamar.colostate.edu/~rolston/weir.htm
+http://lambda-the-ultimate.org/classic/message11326.html
+http://lambda-the-ultimate.org/node/view/257
+http://lambda-the-ultimate.org/node/view/489
+http://lambda-the-ultimate.org/node/view/673
+http://lambda-the-ultimate.org/node/view/758
+http://lambda-the-ultimate.org/node/view/769
+http://lancaster.unl.edu/enviro/pest/factsheets/007-98.htm
+http://lancaster.unl.edu/enviro/pest/factsheets/018-99.htm
+http://lancaster.unl.edu/enviro/pest/wildlife.htm
+http://lancaster.unl.edu/food/ftmar03.htm
+http://landofpuregold.com/frisbee.htm
+http://landru.i-link-2.net/shnyves/church_bells.htm
+http://landscapeimage.com/phorum/read.php?1,1018,1018,quote=1
+http://landscaping.about.com/cs/groundcovervines1/p/moss.htm
+http://langcent.man.ac.uk/olf/library.htm
+http://languagelegend.blogspot.com/
+http://lanl-the-real-story.blogspot.com/2005/06/community-meeting-and-survey_19.html
+http://lanther.co.uk/
+http://laotze.blogspot.com/2005/04/cheese-tycoons-meet-chinese.html
+http://lapband.angelcities.com/obesity_help-01-01.html
+http://lark.phoblacht.net/imcmartin.html
+http://lark.phoblacht.net/quartercentam.html
+http://larvatusprodeo.redrag.net/2005/06/22/stjames-square/
+http://las-vegas-hotels.tripadvisor.com/ShowUserReviews-g45963-d91673-r2965437-Rio_Suite_Hotel_and_Casino-Las_Vegas_Nevada.html
+http://las-vegas-hotels.tripadvisor.com/ShowUserReviews-g45963-d91844-r3547901-Flamingo_Las_Vegas-Las_Vegas_Nevada.html
+http://lashawnbarber.com/archives/2004/10/05/yay/
+http://lashawnbarber.com/archives/2005/06/07/brown-2/
+http://lashawnbarber.com/archives/2005/06/13/miltary/
+http://lashawnbarber.com/archives/2005/06/14/lynching/
+http://lashawnbarber.com/index.php
+http://lasp.colorado.edu/sorce/July02ScienceMeeting.html
+http://lasthome.blogspot.com/
+http://latexmindresearch.tripod.com/stories/TheGlassShrine.htm
+http://latterday.newstrove.com/
+http://latticeqcd.blogspot.com/2005/03/strong-coupling-constant.html
+http://laughingmeme.org/archives/001055.html
+http://launch.yahoo.com/ar-251929-bio--Husker-Du
+http://launch.yahoo.com/ar-252360-bio--Michael-Jackson
+http://launch.yahoo.com/ar-254247-bio--Gene-Autry
+http://launch.yahoo.com/ar-259246-reviews--No-Doubt
+http://launch.yahoo.com/ar-260983-bio--Pet-Shop-Boys
+http://launch.yahoo.com/ar-268634-bio--Jackie-Wilson
+http://launch.yahoo.com/ar-269576-news--Mary-J-Blige
+http://launch.yahoo.com/ar-271195-bio--Blur
+http://launch.yahoo.com/ar-271319-news--Smash-Mouth
+http://launch.yahoo.com/ar-291021-news--Ja-Rule
+http://laurieannweis.com/0share_your_stories.html
+http://laurierking.blogspot.com/2005/03/old-folks.html
+http://lautenberg.senate.gov/~lautenberg/press/2003/01/2005629543.html
+http://lav.scripps.edu/jjgroup_archive/
+http://law.baylor.edu/CareerSvcs/Handouts/interviewingguidelines.htm
+http://law.bepress.com/cgi/viewcontent.cgi?article=1008&context=uiuclwps
+http://law.bepress.com/cgi/viewcontent.cgi?article=1079&context=alea
+http://law.richmond.edu/jolt/v2i1/stinger.html
+http://law.vanderbilt.edu/admiss/llm.html
+http://law.wustl.edu/Registrar/Registration/summer2002/index2.html
+http://law.wustl.edu/WULQ/76-1/761-08.html
+http://law2.house.gov/uscode-cgi/fastweb.exe?getdoc+uscview+t05t08+175+1++'5%20USC%20Sec
+http://lawisfun.crimeny.net/
+http://lawrenceofcyberia.blogs.com/news/2005/03/blood.html
+http://laws.findlaw.com/4th/971523P.html
+http://laws.findlaw.com/5th/9910331cr0.html
+http://laws.findlaw.com/9th/9935209.html
+http://laws.findlaw.com/US/407/1.html
+http://laws.findlaw.com/dc/001141a.html
+http://laws.findlaw.com/us/000/u10414.html
+http://laws.justice.gc.ca/en/C-10.4/C.R.C.-c.1222/60473.html
+http://laws.justice.gc.ca/en/N-5/text.html
+http://laws.lawsociety.com.au/resources/library/cat/p-index.html
+http://laws.lp.findlaw.com/1st/01-1405.html
+http://laws.lp.findlaw.com/us/000/001937.html
+http://lawssb.com/currentcases.html
+http://lawtec.net/Members/antonh/articles/Aug2003/010502/view
+http://lawweb.usc.edu/admissions/nextsteps/pages/fellowship.html
+http://lawyers.findlaw.com/lawyer/practicestate/Medical%20Malpractice/Arkansas
+http://lawyers.findlaw.com/lawyer/practicestate/Medical%20Malpractice/South%20Carolina
+http://lawyers.martindale.com/marhub/firm/945988404
+http://lawyers.martindale.com/marhub/firm/953339921
+http://lazarus.elte.hu/hun/tantort/1999/mmm/sch1.htm
+http://lazarus.elte.hu/hun/tantort/1999/mmm/sch2.htm
+http://lazarus.elte.hu/tajfutas/isom/web/o44.htm
+http://lazygeek.net/
+http://lbis.kenyon.edu/colldev/guidelines/
+http://lblog.jalcorn.net/
+http://lc.byuh.edu/CNN-N/w00/vocab27Jan.html
+http://lcamtuf.coredump.cx/strikeout/
+http://lcb.me.uk/
+http://lcdev.kek.jp/ML/BDS/msg00031.html
+http://lcif-openingeyes.org/lionarticle.html
+http://lcweb2.loc.gov/frd/cs/kptoc.html
+http://lcweb2.loc.gov/frd/cs/soviet_union/su_glos.html
+http://lcweb2.loc.gov/hlas/help.html
+http://ldbelveal.net/
+http://lds.about.com/od/generalstores/
+http://ldt.stanford.edu/~ndaniels/design_process.html
+http://le.atk.com/
+http://leadership.au.af.mil/sls-skil.htm
+http://league.xgamingservers.com/
+http://leahwithanh.blogspot.com/
+http://leahy.senate.gov/press/200404/040104b.html
+http://leahy.senate.gov/press/200505/051205.html
+http://leahy.senate.gov/vermont/chats/chat010213b.html
+http://learn.amnh.org/institutions/institutions.php
+http://learn.arc.nasa.gov/svs/forums/index.php?showtopic=11&view=old
+http://learn.arc.nasa.gov/svs/forums/index.php?showtopic=3&mode=linearplus
+http://learn.arc.nasa.gov/svs/forums/index.php?showtopic=3&view=getlastpost
+http://learn.jtsa.edu/topics/luminaries/monograph/masoret_holding.shtml
+http://learn.nsdl.org/feature_3.htm
+http://learninfreedom.org/readseri.html
+http://learning.ericsson.net/mlearning2/project_one/thebook/chapter3.html
+http://learning.indiatimes.com/bm/features/trends/dodos_dinosaurs.htm
+http://learning.indiatimes.com/test_papers/model/biology/bio_mod2_ans.htm
+http://learning.snowboarding2.com/
+http://learningphysics.iop.org/beyond_school/university/ubs.html
+http://learnv.ycdsb.edu.on.ca/lt/FMMC/hpteacher.nsf/Files/mcmanad/$FILE/unisx.html
+http://learnware.uwaterloo.ca/projects/GeorgeGadanidis/re-use.htm
+http://learnweb.harvard.edu/ent/gallery/pop1/pop1_1.cfm
+http://leavelife.com/LLQ%20Full%20Version/VII%20Other%20factors%20affecting%20the%20decision%20to%20leave%20life.htm
+http://leda.lycaeum.org/?ID=5041
+http://leegoldberg.typepad.com/
+http://leegoldberg.typepad.com/a_writers_life/2005/05/when_the_selfpu.html
+http://leelydon.tripod.com/ragesexdev.html
+http://left2right.typepad.com/main/2004/12/faithbased_prog.html
+http://left2right.typepad.com/main/2005/01/equality_of_opp.html
+http://left2right.typepad.com/main/2005/01/why_i_reject_na.html
+http://left2right.typepad.com/main/2005/03/social_security.html
+http://left2right.typepad.com/main/2005/05/history_lessons.html
+http://left2right.typepad.com/main/2005/06/deep_throat_and.html
+http://leftcenterleft.typepad.com/blog/
+http://leftcenterleft.typepad.com/blog/2004/11/tax_brackets.html
+http://lefti.blogspot.com/2004_05_01_lefti_archive.html
+http://lefti.blogspot.com/2005_06_01_lefti_archive.html
+http://leftjustified.net/site-in-an-hour/
+http://leg1.state.va.us/cgi-bin/legp504.exe?051+ful+HB1942
+http://leg2.state.va.us/dls/h&sdocs.nsf/0/e17460a631fc550f85256f6a0067135e?OpenDocument
+http://legacyweb.com/fanfic_library/ff64_Karen.htm
+http://legal.20m.com/health.htm
+http://legal.web.aol.com/policy/aolpol/privpol.html
+http://legalliaisons.com/parajobs.htm
+http://legallienne.thefreelibrary.com/Quest-of-the-Golden-Girl/1-14
+http://legalmarketing.typepad.com/blog/
+http://legatcorbishley.co.uk/docs/sales.htm
+http://legislative.nasa.gov/hearings/4-20-05%20Readdy.htm
+http://legisweb.state.wy.us/2005/amends/HAMD0208.htm
+http://legisweb.state.wy.us/statutes/titles/Title20.htm
+http://leiterreports.typepad.com/blog/2005/06/can_bush_be_con_1.html
+http://leninology.blogspot.com/2005_03_01_leninology_archive.html
+http://leo.stcloudstate.edu/
+http://leopold.wilderness.net/confwork/wscpordr.htm
+http://les.man.ac.uk/government/about/staff_profiles/simon_bulmer.htm
+http://les1.man.ac.uk/chnn/CHNN02CPI.html
+http://lesbian-fucking.videoera.com/
+http://leshumas.insa-lyon.fr/crl/anglais/anglais_eng/Internet%20listening.htm
+http://leslie.harpold.com/presents/000081the_thread_that_runs_so_true.html
+http://lessig.org/blog/archives/002826.shtml
+http://lestblood.imagodirt.net/
+http://letsroll911.org/ipw-web/bulletin/bb/viewtopic.php?p=50109
+http://letterfromgotham.blogspot.com/
+http://lettermanslair.blogspot.com/2005/06/npr-icon-comes-to-fairbanks-evening.html
+http://letters.johnkusch.com/1582.php
+http://lexsc.com/Economic%20Development.htm
+http://leyton.org/techiemusings/2005/06/10/a-fuzzy-screen-thing-imac-g5-problems/
+http://lg.loversguide.com/content/article.2.49.433.phpx
+http://lgbt.studentaffairs.duke.edu/info/comingout.html
+http://lgxserver.uniba.it/lei/rassegna/001230d.htm
+http://lheawww.gsfc.nasa.gov/~richard/Wurzburg.html
+http://lib.law.washington.edu/ref/nonlegal.htm
+http://lib.law.washington.edu/ref/writing.htm
+http://lib.ru/INOFANT/DOGERTI_R/zona51_engl.txt
+http://lib.ru/PERL/perltut.txt
+http://lib.ru/SONGS/moodyblu/long.txt
+http://lib.ru/SONGS/plant.txt
+http://libarts.wsu.edu/philo/faculty-staff/holbrook%20new/Traditional%20Sexual%20Ethics.htm
+http://libcat.maricopa.gov/mysteryclub/teachers/chapter_guides.cfm
+http://liberalstreetfighter.com/
+http://liberalstudies.georgetown.edu/DLS/dlsgeneral.htm
+http://libertariangirl.typepad.com/my_weblog/2005/01/
+http://libertariannation.org/a/f31l1.html
+http://libertus.net/censor/senatecomm.html
+http://libertyunbound.com/archive/2005_03/sandefur-land.html
+http://libr.unl.edu:2000/LPP/Paulmetz.htm
+http://libr.unl.edu:2000/LPP/jestin2.html
+http://libraries.universityofcalifornia.edu/hots/hotsmin11102.html
+http://library.adoption.com/Holiday-ideas/A-Birthday-Party-with-Meaning/article/2367/1.html
+http://library.adoption.com/Hoping-to-Adopt/The-Final-Step/article/135/1.html
+http://library.adoption.com/Infertility/Beyond-the-Semen-Analysis/article/1039/1.html
+http://library.adoption.com/Multi-generational-Interaction/Enhancing-the-Communication-Skills-of-Newly-Arrived-Asian-American-Students/article/4077/1.html
+http://library.ahima.org/xpedio/groups/public/documents/ahima/pub_bok1_026428.html
+http://library.albany.edu/internet/www.html
+http://library.berkeley.edu/~skoskine/spaceplanners.html
+http://library.caltech.edu/openurl/Record_Documents/Minutes%20Dec.%206-8.htm
+http://library.canterbury.ac.nz/services/disabled.shtml
+http://library.chisholm.vic.edu.au/researchHelp.htm
+http://library.christchurch.org.nz/Heritage/BallantynesFire/StarSun191147.asp
+http://library.ci.homer.ak.us/srch-bm.htm
+http://library.csu.edu/guides/hospitality.htm
+http://library.csu.edu/news/kiosk/TheGrowthOfCredibility.html
+http://library.dialog.com/bluesheets/html/bl0011.html
+http://library.dialog.com/bluesheets/html/bl0050.html
+http://library.dialog.com/bluesheets/html/bl0185.html
+http://library.findlaw.com/2005/Jan/6/133679.html
+http://library.georgetowncollege.edu/Staff/Dealing.htm
+http://library.georgiasouthern.edu/specialcollections/manu/inv/geer/geer21.html
+http://library.gsfc.nasa.gov/mrg/htm/qualifiedDC-GC-5-28-03.htm
+http://library.humboldt.edu/~ccm/fingertips/kuhlthau.html
+http://library.kent.ac.uk/library/special/html/specoll/melbio.htm
+http://library.loganutah.org/directory/links/gardening.html
+http://library.louisville.edu/loex2005/program.htm
+http://library.lp.findlaw.com/articles/file/00016/006714/title/Subject/topic/Health_Managed%20Care/filename/health_1_625
+http://library.lp.findlaw.com/articles/file/00026/005908/title/Subject/topic/Communications_Telephones/filename/communications_2_1758
+http://library.lp.findlaw.com/articles/file/00073/005626/title/Subject/topic/Employment%20Law_Hours/filename/employmentlaw_1_470
+http://library.lp.findlaw.com/articles/file/00322/003926/title/Subject/topic/Intellectual%20Property_Infringement/filename/intellectualproperty_2_4564
+http://library.lp.findlaw.com/articles/file/00340/001466/title/Subject/topic/Health_Refusal%20of%20Care/filename/health_1_635
+http://library.lp.findlaw.com/articles/file/00343/004774/title/Subject/topic/Securities%20Law_Registration%20and%20Distribution/filename/securitieslaw_2_5643
+http://library.lp.findlaw.com/articles/file/00546/001866/title/Subject/topic/Family%20Law_Adoption%20of%20Persons/filename/familylaw_2_3181
+http://library.lp.findlaw.com/articles/file/00687/003823/title/Subject/topic/Administrative%20Law_Particular%20Administrative%20Agencies/filename/administrativelaw_2_36
+http://library.lp.findlaw.com/articles/file/00687/003823/title/Subject/topic/Civil%20Procedure_Privileges/filename/civilprocedure_2_924
+http://library.lp.findlaw.com/articles/file/00749/001799/title/Subject/topic/Torts/%20Personal%20Injury_Invasion%20of%20Privacy/filename/tortspersonalinjury_2_6203
+http://library.lp.findlaw.com/articles/file/00964/006122/title/Subject/topic/Intellectual%20Property_Internet/filename/intellectualproperty_1_750
+http://library.lp.findlaw.com/articles/file/00980/008920/title/Subject/topic/Bankruptcy_Professionals/filename/bankruptcy_2_569
+http://library.lp.findlaw.com/articles/file/01009/009696/title/Subject/topic/Antitrust%20and%20Trade%20Regulation_Unfair%20Trade%20Practices/filename/antitrustandtraderegulation_2_237
+http://library.lp.findlaw.com/insurance_2_4117_1.html
+http://library.marketingsherpa.com/search.cfm?contentCode=ib
+http://library.mcmaster.ca/archives/findaids/findaids/g/greenwoo.htm
+http://library.northampton.ac.uk/subjects/subject.php?sid=12&pid=4
+http://library.nybg.org/finding_guide/hollick1.php
+http://library.nybg.org/finding_guide/pironwb4.php
+http://library.osu.edu/sites/archives/glenn/collection/senate/politicalcareer.htm
+http://library.paisley.ac.uk/services/schoolscomp/year11.htm
+http://library.primate.wisc.edu/collections/books/ecosoc.html
+http://library.puc.edu/pitcairn/bounty/crew2.shtml
+http://library.sanger.ac.uk/uhtbin/cgisirsi/0/0/520/a12334b?user_id=HYP-REST
+http://library.stmarytx.edu/acadlib/doc/guides/pathleg.htm
+http://library.stmarytx.edu/acadlib/subject/misc/eldoapsa.htm
+http://library.thinkquest.org/12153/hr&bf.html
+http://library.thinkquest.org/17131/scripting/vbscript/tut_ch4.html
+http://library.thinkquest.org/20619/Present.html
+http://library.thinkquest.org/23846/library/terms/
+http://library.thinkquest.org/26026/Classroom_Connection/elementary_school_lesson_plans.html
+http://library.thinkquest.org/27034/chem.html
+http://library.thinkquest.org/29285/filmmaking/ffe.html
+http://library.thinkquest.org/3120/text/c-his1.htm
+http://library.thinkquest.org/C003603/english/tornadoes/casestudies.shtml
+http://library.thinkquest.org/C005704/content_hwl_glc.php3
+http://library.thinkquest.org/C007555/play.html
+http://library.thinkquest.org/C0116628/Russia.htm
+http://library.thinkquest.org/C0130844/THE%20PSYCHOLOGY%20OF%20COLOUR.htm
+http://library.thinkquest.org/J0112391/myth_8.htm
+http://library.timelesstruths.org/texts/Just_Mary/A_Baby_Girl/
+http://library.trinity.wa.edu.au/subjects/re/action/rights.htm
+http://library.uce.ac.uk/inform15.htm
+http://library.uchc.edu/departm/hnet/advocacy.html
+http://library.uchc.edu/departm/hnet/agingresource.html
+http://library.uncg.edu/depts/speccoll/lenski/lenskip.html
+http://library.ust.hk/res/beyond/Humanities_and_Social_Sciences/Environmental_Studies/
+http://library.uwsp.edu/depts/archives/preservationtips.htm
+http://libro.uca.edu/dillard/drintro.htm
+http://libro.uca.edu/lewis/preface.htm
+http://libro.uca.edu/perry/csms5.htm
+http://libtext.library.wisc.edu/cgi-bin/History/History-idx?type=HTML&rgn=DIV1&byte=10253511
+http://libweb.sfasu.edu/real/vol28-1/menintrees.htm
+http://libweb.sfasu.edu/real/vol28-2/notmerelyacad.htm
+http://libweb.uoregon.edu/it/prereqs.html
+http://libwww.cabrillo.edu/about/technologyplan.html
+http://life.firelace.com/archives/personal/index.php
+http://life.firelace.com/archives/tips_and_tricks/index.php
+http://lifecenter.ric.org/content/384/?topic=4&subtopic=176
+http://lifeiscold.blogspot.com/
+http://liferants.rantworks.com/2003/12/turning-twenty-one-and-writing-for.php
+http://lifestyle.scotsman.com/foodanddrink/bws_headlines_specific.cfm?articleid=8888
+http://lifestyle.timesofmalta.com/article.php?id=496
+http://lifetech.blogs.com/bionanoblawg/2004/10/
+http://liftoff.msfc.nasa.gov/News/2001/News-MoonLanding.asp
+http://light-of-reason.blogspot.com/
+http://lightning.prohosting.com/~tbates/gravity/secrets.html
+http://lilinote.k12.hi.us/STATE/BOE/Minutes.nsf/0/175ec31963ed74820a2566d1000c0616?OpenDocument
+http://lilinote.k12.hi.us/STATE/BOE/Minutes.nsf/0/6a33b5b43e6e33190a25659b00621578?OpenDocument
+http://lilt.ilstu.edu/gmklass/pos334/Default.htm
+http://lima.usembassy.gov/wwwspase.shtml
+http://limany.org/culture.html
+http://limpets.noaa.gov/monitoring/developProgram/welcome.html
+http://linas.org/linux/graphics.html
+http://linas.org/linux/load.html
+http://ling.ucsd.edu/Language/faq/faq.html
+http://link.aps.org/doi/10.1103/PhysRev.70.978
+http://link.aps.org/doi/10.1103/PhysRevB.50.5429
+http://link.aps.org/doi/10.1103/PhysRevLett.54.2521
+http://link.aps.org/doi/10.1103/PhysRevLett.58.1861
+http://linkrank.cs.ucla.edu/userguide/
+http://linux.sys-con.com/read/44882.htm
+http://linux.sys-con.com/read/45528.htm
+http://linux.sys-con.com/read/97521.htm
+http://linuxdevices.com/articles/AT2631955248.html
+http://linuxdevices.com/articles/AT4520490885.html
+http://linuxdevices.com/articles/AT7441855870.html
+http://linuxdevices.com/articles/AT7751365763.html
+http://linuxdevices.com/news/NS4964141825.html
+http://linuxgazette.net/115/andreasen.html
+http://linuxgazette.net/issue30/ayers1.html
+http://linuxgazette.net/issue36/lg_backpage36.html
+http://linuxgazette.net/issue46/lg_bytes46.html
+http://linuxinsider.com/story/37806.html
+http://linuxjournal.com/article.php?sid=5976
+http://linuxmafia.com/refund/
+http://linuxtoday.com/news_story.php3?ltsn=2002-05-02-015-26-NW-BZ-SV-0012
+http://linuxtoday.com/storage/
+http://lions.com.au/default.asp?pg=players&spg=playerprofile&personid=13129
+http://lions2e1.org/cab2e1.html
+http://lionvs40midgets.uk-directory.com/
+http://liquidtheater.com/
+http://lissack.com/greatideas/giws/Wcb2718aa45fa3.htm
+http://lissack.com/greatideas/giws/Wcb7fe30cef62.htm
+http://lissack.com/greatideas/giws/Wcc9145b1d7948.htm
+http://lissack.com/greatideas/giws/Wcd4675098c2a1.htm
+http://list.massbike.org/archive/199407/0019.html
+http://list.massbike.org/archive/199608/0111.html
+http://list.terc.edu/pipermail/maine_science/2004-June/004595.html
+http://listenmissy.com/blog/archives/2004_12.php
+http://listingsca.com/Resource_Industries/Oil_and_Gas/index2.asp
+http://lists.adeptscience.co.uk/mathcad/mathcad_Jul_2003/thid_b139ee8fe0adea34b1fbeb3c85b67b49.html
+http://lists.arts.usyd.edu.au/phorum/read.php?f=23&i=9&t=5
+http://lists.debian.org/debian-consultants/2001/12/msg00000.html
+http://lists.debian.org/debian-devel-announce/2003/08/msg00008.html
+http://lists.debian.org/debian-devel/1995/12/msg00068.html
+http://lists.debian.org/debian-legal/2005/05/msg00342.html
+http://lists.errc.org/rr_nr4_2000/legal_defence.shtml
+http://lists.essential.org/pipermail/ok-sustainability/2003-March/000999.html
+http://lists.evolt.org/archive/Week-of-Mon-20010813/055009.html
+http://lists.gnu.org/archive/html/bug-cvs/2003-10/msg00377.html
+http://lists.gnu.org/archive/html/emacs-bidi/2003-03/msg00001.html
+http://lists.gnu.org/archive/html/guile-devel/2002-08/msg00046.html
+http://lists.gnu.org/archive/html/lynx-dev/1999-10/msg00343.html
+http://lists.ibiblio.org/pipermail/permaculture/1999-July/009977.html
+http://lists.indymedia.org/pipermail/imc-oxford/2005-January/0124-6f.html
+http://lists.isb.sdnpk.org/pipermail/gsd-list/2003-April/001062.html
+http://lists.iww.org/pipermail/iww-news/2004-February/004480.html
+http://lists.netlojix.com/pipermail/noahs-window/2003-February/000150.html
+http://lists.oasis-open.org/archives/security-services/200411/msg00102.html
+http://lists.repec.org/pipermail/nep-ind/2000-October/000094.html
+http://lists.runrev.com/pipermail/use-revolution/2004-November/046581.html
+http://lists.samba.org/archive/samba/2005-January/098591.html
+http://lists.sans.org/pipermail/list/2002-May/052957.html
+http://lists.ssc.com/pipermail/suitwatch/2004-April/000065.html
+http://lists.trolltech.com/qt-embedded-interest/2001-03/msg00011.html
+http://lists.trolltech.com/qt-embedded-interest/2001-03/msg00015.html
+http://lists.trolltech.com/qt-interest/1998-06/msg00179.html
+http://lists.trolltech.com/qt-interest/2003-01/thread00145-0.html
+http://lists.uakron.edu/cgi-bin/wa.exe?A1=ind0302d&L=h-france
+http://lists.uakron.edu/cgi-bin/wa.exe?A2=ind0405d&L=h-france&F=&S=&P=469
+http://lists.village.virginia.edu/lists_archive/Humanist/v16/0307.html
+http://lists.village.virginia.edu/lists_archive/Humanist/v17/0329.html
+http://lists.village.virginia.edu/sixties/HTML_docs/Resources/Primary/Manifestos/SDS_Port_Huron.html
+http://lists.village.virginia.edu/sixties/HTML_docs/Resources/Primary/Manifestos/VVAW_Kerry_Senate.html
+http://lists.virus.org/isn-0205/msg00167.html
+http://lists.w3.org/Archives/Public/ietf-dav-versioning/2001JulSep/0200.html
+http://lists.w3.org/Archives/Public/ietf-discuss/2000Sep/0002.html
+http://lists.w3.org/Archives/Public/ietf-http-wg-old/1995MayAug/0113.html
+http://lists.w3.org/Archives/Public/ietf-http-wg-old/1995SepDec/0457.html
+http://lists.w3.org/Archives/Public/ietf-http-wg-old/1995SepDec/0535.html
+http://lists.w3.org/Archives/Public/ietf-http-wg-old/1997JanApr/0286.html
+http://lists.w3.org/Archives/Public/ietf-http-wg-old/1997JanApr/0290.html
+http://lists.w3.org/Archives/Public/ietf-tls/1997JanMar/0089.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2003Dec/0005.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2003Nov/0043.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2004Jul/0015.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2004Mar/0000.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2004May/0018.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2004Oct/0024.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2004Oct/0124.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2004Oct/0157.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2005Feb/0009.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2005Jan/0070.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2005Jun/0002.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2005Mar/0024.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2005May/0004.html
+http://lists.w3.org/Archives/Public/public-esw-thes/2005May/0007.html
+http://lists.w3.org/Archives/Public/public-glossary/2003Sep/0003.html
+http://lists.w3.org/Archives/Public/public-i18n-geo/2002Dec/0034.html
+http://lists.w3.org/Archives/Public/public-i18n-geo/2005Feb/0009.html
+http://lists.w3.org/Archives/Public/public-i18n-its/2005JanMar/0018.html
+http://lists.w3.org/Archives/Public/public-qa-dev/2004Oct/0030.html
+http://lists.w3.org/Archives/Public/public-qt-comments/2002May/0079.html
+http://lists.w3.org/Archives/Public/public-qt-comments/2004Jun/0127.html
+http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2005Jun/0021.html
+http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2005May/0029.html
+http://lists.w3.org/Archives/Public/public-rdf-dawg/2004AprJun/0468.html
+http://lists.w3.org/Archives/Public/public-rdf-dawg/2005AprJun/0326.html
+http://lists.w3.org/Archives/Public/public-sw-meaning/2003Oct/0010.html
+http://lists.w3.org/Archives/Public/public-swbp-wg/2004Jun/0071.html
+http://lists.w3.org/Archives/Public/public-swbp-wg/2004May/0109.html
+http://lists.w3.org/Archives/Public/public-swbp-wg/2004Oct/0115.html
+http://lists.w3.org/Archives/Public/public-swbp-wg/2005May/0042.html
+http://lists.w3.org/Archives/Public/public-ws-addressing/2005Apr/0003.html
+http://lists.w3.org/Archives/Public/public-ws-addressing/2005Mar/0240.html
+http://lists.w3.org/Archives/Public/public-ws-chor/2003Jun/0015.html
+http://lists.w3.org/Archives/Public/public-ws-chor/2003Jun/0113.html
+http://lists.w3.org/Archives/Public/public-ws-chor/2003Mar/0182.html
+http://lists.w3.org/Archives/Public/public-ws-desc-state/2003Jun/0061.html
+http://lists.w3.org/Archives/Public/public-xml-binary/2004Nov/0019.html
+http://lists.w3.org/Archives/Public/semantic-web/2005Mar/0241.html
+http://lists.w3.org/Archives/Public/semantic-web/2005Mar/0243.html
+http://lists.w3.org/Archives/Public/semantic-web/2005Mar/0244.html
+http://lists.w3.org/Archives/Public/semantic-web/2005Mar/0249.html
+http://lists.w3.org/Archives/Public/semantic-web/2005Mar/0262.html
+http://lists.w3.org/Archives/Public/uri/2003May/0040.html
+http://lists.w3.org/Archives/Public/uri/2004Mar/0039.html
+http://lists.w3.org/Archives/Public/uri/2004Mar/0040.html
+http://lists.w3.org/Archives/Public/w3c-dist-auth/1997JulSep/0065.html
+http://lists.w3.org/Archives/Public/w3c-dist-auth/1997OctDec/0205.html
+http://lists.w3.org/Archives/Public/w3c-dist-auth/1998OctDec/0107.html
+http://lists.w3.org/Archives/Public/w3c-dist-auth/1998OctDec/0118.html
+http://lists.w3.org/Archives/Public/w3c-dist-auth/1999JulSep/0358.html
+http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0247.html
+http://lists.w3.org/Archives/Public/w3c-dist-auth/2002JulSep/0063.html
+http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/1999JulSep/0095.html
+http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2000JanMar/0031.html
+http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2000JanMar/0180.html
+http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2000JanMar/0184.html
+http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2002AprJun/0064.html
+http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2002AprJun/0065.html
+http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2002AprJun/0066.html
+http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2002JulSep/0176.html
+http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2001Nov/0072.html
+http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2001Oct/0213.html
+http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Feb/0497.html
+http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Nov/0006.html
+http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Feb/0152.html
+http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Feb/0201.html
+http://lists.w3.org/Archives/Public/w3c-sgml-wg/1997Apr/0193.html
+http://lists.w3.org/Archives/Public/w3c-sgml-wg/1997Jan/0087.html
+http://lists.w3.org/Archives/Public/w3c-sgml-wg/1997May/0272.html
+http://lists.w3.org/Archives/Public/w3c-wai-au/2004JanMar/0103.html
+http://lists.w3.org/Archives/Public/w3c-wai-eo/1998OctDec/0086.html
+http://lists.w3.org/Archives/Public/w3c-wai-eo/2001AprJun/0041.html
+http://lists.w3.org/Archives/Public/w3c-wai-er-ig/1999Aug/0002.html
+http://lists.w3.org/Archives/Public/w3c-wai-er-ig/1999May/0049.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/1998OctDec/0270.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/1998OctDec/0335.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/1999AprJun/0006.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/1999JanMar/0169.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/2000JulSep/0043.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/2001JanMar/0142.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/2001JanMar/0151.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/2001JanMar/0510.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/2001JanMar/0518.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/2002JanMar/0326.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/2004JulSep/0558.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/2004JulSep/0564.html
+http://lists.w3.org/Archives/Public/w3c-wai-gl/2004OctDec/0212.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/1997JulSep/0024.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/1999JulSep/0441.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/1999OctDec/0045.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/1999OctDec/0621.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2001JanMar/0613.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2002JanMar/0214.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2002OctDec/0285.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2002OctDec/0510.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2004AprJun/0236.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2004OctDec/0069.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2004OctDec/0070.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2004OctDec/0072.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2004OctDec/0073.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2004OctDec/0374.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2004OctDec/0375.html
+http://lists.w3.org/Archives/Public/w3c-wai-ig/2004OctDec/0376.html
+http://lists.w3.org/Archives/Public/w3c-wai-ua/1998OctDec/0190.html
+http://lists.w3.org/Archives/Public/w3c-wai-ua/2000JulSep/0225.html
+http://lists.w3.org/Archives/Public/wai-site-comments/2002Sep/0006.html
+http://lists.w3.org/Archives/Public/wai-xtech/2004Jul/0001.html
+http://lists.w3.org/Archives/Public/www-archive/2001Mar/0000.html
+http://lists.w3.org/Archives/Public/www-archive/2002Oct/0030.html
+http://lists.w3.org/Archives/Public/www-archive/2004Apr/0070.html
+http://lists.w3.org/Archives/Public/www-archive/2004Apr/0073.html
+http://lists.w3.org/Archives/Public/www-archive/2004Apr/0079.html
+http://lists.w3.org/Archives/Public/www-dom/1999OctDec/0005.html
+http://lists.w3.org/Archives/Public/www-dom/2001AprJun/0033.html
+http://lists.w3.org/Archives/Public/www-dom/2001JulSep/0056.html
+http://lists.w3.org/Archives/Public/www-dom/2001JulSep/0078.html
+http://lists.w3.org/Archives/Public/www-dom/2005JanMar/0011.html
+http://lists.w3.org/Archives/Public/www-html/2001Apr/0029.html
+http://lists.w3.org/Archives/Public/www-html/2001Apr/0031.html
+http://lists.w3.org/Archives/Public/www-html/2001Apr/0040.html
+http://lists.w3.org/Archives/Public/www-html/2004Jan/0088.html
+http://lists.w3.org/Archives/Public/www-international/1997JulSep/0009.html
+http://lists.w3.org/Archives/Public/www-patentpolicy-comment/2001Oct/0009.html
+http://lists.w3.org/Archives/Public/www-qa-wg/2002Dec/0110.html
+http://lists.w3.org/Archives/Public/www-qa-wg/2002Dec/0117
+http://lists.w3.org/Archives/Public/www-qa-wg/2002Oct/0140.html
+http://lists.w3.org/Archives/Public/www-qa-wg/2003Apr/0190.html
+http://lists.w3.org/Archives/Public/www-qa-wg/2004Jun/0051.html
+http://lists.w3.org/Archives/Public/www-qa/2002Jan/0064.html
+http://lists.w3.org/Archives/Public/www-qa/2003Jan/0007.html
+http://lists.w3.org/Archives/Public/www-qa/2004Jun/0007.html
+http://lists.w3.org/Archives/Public/www-qa/2004Jun/0008.html
+http://lists.w3.org/Archives/Public/www-rdf-comments/2002OctDec/0299.html
+http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0002.html
+http://lists.w3.org/Archives/Public/www-rdf-dspace/2003May/0088.html
+http://lists.w3.org/Archives/Public/www-rdf-interest/2000Sep/0158.html
+http://lists.w3.org/Archives/Public/www-rdf-interest/2001Mar/0061.html
+http://lists.w3.org/Archives/Public/www-rdf-interest/2001Mar/0064.html
+http://lists.w3.org/Archives/Public/www-rdf-interest/2001Mar/0066.html
+http://lists.w3.org/Archives/Public/www-rdf-interest/2001Mar/0163.html
+http://lists.w3.org/Archives/Public/www-rdf-interest/2003May/0018.html
+http://lists.w3.org/Archives/Public/www-rdf-interest/2004Apr/0124.html
+http://lists.w3.org/Archives/Public/www-rdf-logic/2001Apr/0016.html
+http://lists.w3.org/Archives/Public/www-rdf-rules/2003Dec/0043.html
+http://lists.w3.org/Archives/Public/www-style/1996Aug/0191.html
+http://lists.w3.org/Archives/Public/www-style/1996Nov/0025.html
+http://lists.w3.org/Archives/Public/www-style/1998Feb/0037.html
+http://lists.w3.org/Archives/Public/www-style/2003Oct/0307.html
+http://lists.w3.org/Archives/Public/www-style/2004Jan/0193.html
+http://lists.w3.org/Archives/Public/www-style/2004Jun/0071.html
+http://lists.w3.org/Archives/Public/www-style/2004Oct/0067.html
+http://lists.w3.org/Archives/Public/www-svg/2002Sep/0002.html
+http://lists.w3.org/Archives/Public/www-tag/2003Jan/0351.html
+http://lists.w3.org/Archives/Public/www-talk/2002JanFeb/0018.html
+http://lists.w3.org/Archives/Public/www-talk/2002JanFeb/0019.html
+http://lists.w3.org/Archives/Public/www-validator-css/2004Mar/0020.html
+http://lists.w3.org/Archives/Public/www-validator-css/2004Mar/0023.html
+http://lists.w3.org/Archives/Public/www-validator/2000Oct/0124.html
+http://lists.w3.org/Archives/Public/www-validator/2004Apr/0186.html
+http://lists.w3.org/Archives/Public/www-validator/2004Apr/subject.html
+http://lists.w3.org/Archives/Public/www-voice/2003JulSep/0029.html
+http://lists.w3.org/Archives/Public/www-voice/2003OctDec/0038.html
+http://lists.w3.org/Archives/Public/www-voice/2005JanMar/0020.html
+http://lists.w3.org/Archives/Public/www-webdav-dasl/2000AprJun/0050.html
+http://lists.w3.org/Archives/Public/www-webont-wg/2002Nov/0119.html
+http://lists.w3.org/Archives/Public/www-webont-wg/2002Nov/0157.html
+http://lists.w3.org/Archives/Public/www-webont-wg/2002Oct/0314.html
+http://lists.w3.org/Archives/Public/www-webont-wg/2002Sep/0146.html
+http://lists.w3.org/Archives/Public/www-webont-wg/2003May/0083.html
+http://lists.w3.org/Archives/Public/www-webont-wg/2003May/0271.html
+http://lists.w3.org/Archives/Public/www-webont-wg/2003Sep/0163.html
+http://lists.w3.org/Archives/Public/www-ws-arch/2002Dec/0179.html
+http://lists.w3.org/Archives/Public/www-ws-arch/2002Sep/0258.html
+http://lists.w3.org/Archives/Public/www-ws-arch/2002Sep/0266.html
+http://lists.w3.org/Archives/Public/www-ws-arch/2002Sep/0271.html
+http://lists.w3.org/Archives/Public/www-ws-arch/2002Sep/0282.html
+http://lists.w3.org/Archives/Public/www-ws-arch/2003Jan/0005.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2002May/0137.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2002May/0151.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2003Apr/0030.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2003May/0017.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2003Sep/0207.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0194.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2004Jul/0398.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2004Jun/0112.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2004May/0040.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2005Jan/0019.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2005Jan/0054.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2005Jan/0065.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2005Jan/0067.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2005Jan/0083.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2005Jan/0093.html
+http://lists.w3.org/Archives/Public/www-ws-desc/2005Jan/0094.html
+http://lists.w3.org/Archives/Public/www-xkms/2004Jul/0013.html
+http://lists.w3.org/Archives/Public/www-xml-schema-comments/2000JanMar/0043.html
+http://lists.w3.org/Archives/Public/www-xml-schema-comments/2002AprJun/0070.html
+http://lists.w3.org/Archives/Public/www-xml-schema-comments/2002AprJun/0073.html
+http://lists.w3.org/Archives/Public/www-xml-schema-comments/2002JanMar/1091.html
+http://lists.w3.org/Archives/Public/www-xml-schema-comments/2002JanMar/1092.html
+http://lists.w3.org/Archives/Public/www-xsl-fo/2003Jan/0002.html
+http://lists.w3.org/Archives/Public/xml-dist-app/2000Oct/0093.html
+http://lists.w3.org/Archives/Public/xml-dist-app/2002Oct/0040.html
+http://lists.w3.org/Archives/Public/xml-dist-app/2002Oct/0041.html
+http://lists.w3.org/Archives/Public/xml-dist-app/2002Oct/0072.html
+http://lists.w3.org/Archives/Public/xml-dist-app/2002Sep/0079.html
+http://lists.w3.org/Archives/Public/xml-dist-app/2002Sep/0081.html
+http://lists.w3.org/Archives/Public/xml-dist-app/2002Sep/0085.html
+http://lists.w3.org/Archives/Public/xml-dist-app/2002Sep/0140.html
+http://lists.w3.org/Archives/Public/xml-dist-app/2003Oct/0022.html
+http://lists.w3.org/Archives/Public/xml-dist-app/2003Sep/0032.html
+http://lists.w3.org/Archives/Public/xml-encryption/2004May/0005.html
+http://lists.w3.org/Archives/Public/xml-uri/2000Jun/0054.html
+http://lists.w3.org/Archives/Public/xsl-editors/1999AprJun/0002.html
+http://lists.w3.org/Archives/Public/xsl-editors/2003JanMar/0004.html
+http://lists.xml.org/archives/xml-dev/199705/msg00037.html
+http://lists.xml.org/archives/xml-dev/199712/msg00383.html
+http://listserv.brown.edu/archives/cgi-bin/wa?A2=ind0007&L=tei-l&F=&S=&P=769
+http://listserv.cnr.it/cgi-bin/wa?SHOWTPL=LISTSERV-HOME-HELP&L=W3C-IT
+http://listserv.repp.org/pipermail/bioenergy/2000-August/008557.html
+http://listserv.repp.org/pipermail/pvusers/1999-October/000933.html
+http://listserv.spc.edu/cgi-bin/wa?A2=ind9506&L=eyemov-l&F=&S=&P=831
+http://listserv.uark.edu/scripts/wa.exe?A1=ind0404&L=vmesa-l
+http://listserv.uel.ac.uk/pipermail/centrefornarrativeresearch/Week-of-Mon-20040823/000189.html
+http://lit.ubalt.edu/db/
+http://litsite.alaska.edu/uaa/familygatherings/hospitalgame.html
+http://litsite.alaska.edu/uaa/workbooks/midnewswrite.html
+http://litsite.alaska.edu/uaa/workbooks/textinterpret.html
+http://litten.de/fulltext/fujian1f.htm
+http://little-girl-lost.org/
+http://littleenglishgirl.com/
+http://littleindia.com/june2002/An%20Indian%20in%20Paris.htm
+http://live.oregoncc.org/ex_services_orders/c&r.htm
+http://livedocs.macromedia.com/coldfusion/6.1/htmldocs/main_ap3.htm
+http://livedocs.macromedia.com/wtg/public/machiidevguide/structure.html
+http://livehope.org/
+http://livingheritage.org/pole-spirits.htm
+http://livingindryden.org/
+http://livingindryden.org/archives/001557.html
+http://livingtreasures.kxx.com/hndbk.html
+http://liw.iki.fi/liw/log/2005-02.html
+http://lizditz.typepad.com/i_speak_of_dreams/2004/09/disaster_hero_w.html
+http://lizditz.typepad.com/i_speak_of_dreams/education_independent_and_private_schools/
+http://ljworld.com/section/schoolfinance/story/169548
+http://lkmp.blogspot.com/2005/06/rich-people-are-governments-best.html
+http://llamabutchers.mu.nu/archives/2005_01.php
+http://llt.msu.edu/vol4num1/review2/default.html
+http://llt.msu.edu/vol9num1/review2/default.html
+http://lmno4p.org/fa/
+http://lmri.ucsb.edu/resdiss/2/lmri_newsletters/volume4/news44/v4n4.htm
+http://ln.hixie.ch/
+http://lnweb03.co.wake.nc.us/EmploymentApplication/code/postings_Healthcare.html
+http://loadedmouth.com/
+http://loadedmouth.com/2004/05/sunday-sunday-fun-day-sunday-sunday.html
+http://loadedmouth.com/node/1367
+http://loadingdockantiques.com/fullsizeironbeds.htm
+http://loadingdockantiques.com/fullsizeironbedspage2.htm
+http://loan.yahoo.com/m/cq_amort.html
+http://loan.yahoo.com/m/cq_homequestions.html
+http://loan.yahoo.com/m/q_amort.html
+http://loan.yahoo.com/m/q_refidec.html
+http://local.parade.com/
+http://local.sacramento.com/palo-alto/Mirrors---Sales.zp.html
+http://local.yahoo.com/IL/Allerton/7737215/Education+and+Instruction/8236475/Community+Colleges/
+http://lockss.stanford.edu/lockssresearchfaq.html
+http://lodelink.com/titanic/
+http://log.ninthworld.net/
+http://log.ometer.com/2004-11.html
+http://log.ometer.com/2005-05.html
+http://loggingmallets.railfan.net/sub/malletinfo.htm
+http://logic.csci.unt.edu/tarau/research/99/lm.html
+http://logic.philosophy.ox.ac.uk/tutorial1/tut1-01.htm
+http://logica.rug.ac.be/centrum/events/WCP97/hotels.html
+http://logicerror.com/w3c-meeting-2001-2-26
+http://logofreetv.org/
+http://lois.co.uk/web/articles/colour-access.shtml
+http://london.freeexchange.co.uk/pages/5004.html
+http://london.greenparty.org.uk/
+http://london.openguides.org/index.cgi?Bus_Route_74
+http://london.openguides.org/index.cgi?Calthorpe_Arms,_WC1X_8JR
+http://londonlostandfound.com/response/interview8.htm
+http://londonmark.blogspot.com/
+http://lone-eagles.com/aussielinks.htm
+http://lone-eagles.com/chap2.htm
+http://lonestar.texas.net/~colby/quakersa.htm
+http://long-range-sportfishing-landings.allcoastsportfishing.com/sportfishinglandings.pl?ciscos=baja&newport=boat&cabo=maui
+http://long-range-sportfishing-landings.allcoastsportfishing.com/sportfishinglandings.pl?ciscos=morro&ensenada=american
+http://long-range-sportfishing-landings.allcoastsportfishing.com/sportfishinglandings.pl?harbor=long&cabo=newport
+http://longislandpress.com/v02/i17040429/news_01.asp
+http://longtail.typepad.com/the_long_tail/
+http://longtail.typepad.com/the_long_tail/2005/01/variety_is_not_.html
+http://longtail.typepad.com/the_long_tail/2005/04/media_meltdown.html
+http://longtail.typepad.com/the_long_tail/2005/05/natural_portion.html
+http://longtail.typepad.com/the_long_tail/2005/06/more_on_signals.html
+http://lookingglass.blogsome.com/2004/09/
+http://lookingglass.org/about/faqdetails.php
+http://lookingglass.org/publications/pubdetails.php
+http://loop.interop.com/
+http://lordofthelinks.blogspot.com/
+http://lordrich.com/
+http://lorelightarts.ladymoonkennels.com/LoreLight_Ecards6.htm
+http://lorenwebster.net/In_a_Dark_Time/archives/000279.html
+http://lorenwebster.net/In_a_Dark_Time/archives/000390.html
+http://lorenwebster.net/In_a_Dark_Time/archives/cat_hemingways_old_man_and_the_sea.html
+http://lorenwebster.net/In_a_Dark_Time/archives/cat_wallace_stevens.html
+http://lorenzen.blogspot.com/2004_04_04_lorenzen_archive.html
+http://losangeles.china-consulate.org/eng/Topics/sinousrelations/t56337.htm
+http://losing-weight.ffind.servebeer.com/
+http://losingmyedge.com/2003_09_01_imlosingmyedge_archive.html
+http://lostgarden.com/2005/06/nintendogs-case-of-non-game-that.html
+http://lostintransit.org/archives/000802.html
+http://lostworld.pair.com/blog/archives/000415.html
+http://louisdorfman.com/articles.php
+http://loveandcooking.blogspot.com/2004_10_01_loveandcooking_archive.html
+http://lovelikepop.blogspot.com/
+http://lovemore.com/articles/heartofjealousy
+http://lovemore.com/faq
+http://lovemyspca.com/Lost%20Dogs.html
+http://loveyoujy.tblog.com/
+http://lowcarb.blogs.com/blog/2004/01/coming_soon_low.html
+http://lowcarbdiets.about.com/cs/a.htm
+http://lowcarbdiets.about.com/od/lowcarbbasic1/a/carbdietfailure.htm
+http://lowcountry.humanists.net/SEPS/sep-2003-01.html
+http://lowendmac.com/botmw/011126.html
+http://lowendmac.com/orchard/05/0613.html
+http://lowercaser.blogspot.com/
+http://lozwordz.blogdrive.com/
+http://lpa.igc.org/lpv43/lpp43_steward.html
+http://lphrc.org/rmk/London/week2b.html
+http://lpi.oregonstate.edu/f-w97/reactive.html
+http://lrb.veriovps.co.uk/v21/n07/nage01_.html
+http://lrb.veriovps.co.uk/v23/n13/mcki01_.html
+http://lrc.cornell.edu/asian/graduate/EAL/faculty
+http://lrc.cornell.edu/asian/undergrad/faqs
+http://lrionline.com/unionsitesample/theUnion.htm
+http://lrs.ed.uiuc.edu/Guidelines/Levin-AERA-18Ap95.html
+http://lsa.colorado.edu/essence/texts/wind.htm
+http://lsd-pl.net/argus.html
+http://lsda.jsc.nasa.gov/books/mercury/ch09.htm
+http://lsda.jsc.nasa.gov/books/mercury/ch10.htm
+http://lsn.curtin.edu.au/dist-ed/useful_terms.html
+http://lsn.curtin.edu.au/tlf/tlf1997/bencini.html
+http://lsn.curtin.edu.au/tlf/tlf1998/sly.html
+http://lsr.nellco.org/cgi/viewcontent.cgi?article=1005&context=uconn/ucwps
+http://lsss.homestead.com/YouCanFlyRC.html
+http://ltn-archive.hotresponse.com/october00/mis_p12.html
+http://lttf.ieee.org/learn_tech/issues/october2002/
+http://ltts.indiana.edu/faq.html
+http://lu.com/odlis/
+http://luciensteil.tripod.com/katarxis02-1/id8.html
+http://lucifer.intercosmos.net/index.php?view=phpalphawall
+http://lucy.ukc.ac.uk/EthnoAtlas/Hmar/Cult_dir/Culture.7859
+http://lucy.ukc.ac.uk/csacpub/Mono19/Html/wrapped_gifts-2_-9.html
+http://lucy.ukc.ac.uk/stirling.html
+http://lugar.senate.gov/newsletter/2004/october.html
+http://lugar.senate.gov/vhp/2003/01.html
+http://lugar.senate.gov/vhp/2004/01.html
+http://lugar.senate.gov/vhp/2005/01.html
+http://lugar.senate.gov/vhp/2005/03.html
+http://luke.enlow.net/music.html
+http://lullianarts.net/infusa/rhet.html
+http://lumen.georgetown.edu/projects/posterTool/index.cfm?fuseaction=poster.display&posterid=251
+http://lumen.georgetown.edu/projects/postertool/index.cfm?fuseaction=poster.display&posterID=638
+http://luna.moonstar.com/~dyoung/
+http://lundbooks.co.uk/books/V30.html
+http://lusan.id.au/~nikolai/blog/
+http://lustylady.blogspot.com/2005/01/pit-blood-drive-fyi.html
+http://lustymusketeer.blog-city.com/read/126282.htm
+http://lux.cummonday.net/
+http://lwf.ncdc.noaa.gov/oa/climate/extremes/1999/april/rapidres0499.html
+http://lwn.net/2001/features/LarryWall/
+http://lwn.net/Articles/133146/
+http://lwn.net/Articles/139354/
+http://lwn.net/Reviews/Firewalls.php3
+http://lxer.com/
+http://lxer.com/module/newswire/view/10507/
+http://lxer.com/module/newswire/view/37022/
+http://lxer.com/module/newswire/view/37130/
+http://lxr.linux.no/
+http://lymeacademy.edu/new-england-art-college-news-events.htm
+http://lynnpalm.com/horses/myroyallark-passing.php
+http://lyptonvillage.org/blog/?m=200307
+http://lyrics.donyell.net/index.php/lyrics/category/w/
+http://lyrics.donyell.net/index.php/lyrics/to-the-floor-tonight-lyrics-mariah-carey/
+http://lyrics.duble.com/lyrics/0/504-boyz-lyrics/504-boyz-haters-gon-hate-lyrics.htm
+http://lyrics.duble.com/lyrics/A/avant-lyrics/avant-serious-lyrics.htm
+http://lyrics.duble.com/lyrics/I/imx-lyrics/imx-hate-the-playa-lyrics.htm
+http://lyrics.duble.com/lyrics/M/memphis-bleek-lyrics/memphis-bleek-change-up-lyrics.htm
+http://lyrics.net.ua/song/123298
+http://lyrics.net.ua/song/123347
+http://lyrics.net.ua/song/48701
+http://lyrics.net.ua/song/64288
+http://lyrics.rare-lyrics.com/I/IMX/Hate-The-Playa.html
+http://lyrics.rare-lyrics.com/R/Resurrection/War-Machine.html
+http://lyrics.rare-lyrics.com/T/Tupac-Shakur/A-Crooked-Nigga-Too-(Raphael-Saadiq-Remix).html
+http://lyrics.rockmagic.net/lyrics/queen/sheer_heart_attack_1974.html
+http://lyrics.rockmagic.net/lyrics/zappa_frank/absolutely_free_1967.html
+http://lyrics.songtext.name/50%20Cent/Banks-Victory-Feat.-Lloyd-Banks-4799.html
+http://lyrics.songtext.name/50%20Cent/Banks-Victory-feat.-Lloyd-Banks-8330.html
+http://lyrics.songtext.name/Eminem/Still-Don-t-Give-A-Fuck-495.html
+http://lyrics.songtext.name/Rozalla/Everybody-s-Free-28649.html
+http://m1.mny.co.za/MNBTalk.nsf/0/C2256907002CDE514225692A0036C796?OpenDocument
+http://m1.mny.co.za/WGETrnd.nsf/0/C2256A2A0056310742256E7000504087?OpenDocument
+http://m1.mny.co.za/mncg.nsf/0/C2256A8C00448C6BC2256E31004D4A71?OpenDocument
+http://m1.mny.co.za/mnyfast.nsf/0/C2256907002CE1D442256A5700254BCD?OpenDocument
+http://m37.crwdesigns.com/usaaf.htm
+http://ma.carp.nl/opleiding/opleiding.asp?nOpleidingTaalID=15229
+http://maaber.50megs.com/nineth_issue/nonviolence_4e.htm
+http://macarthur.virginia.edu/treatment.html
+http://macdailynews.com/index.php/weblog/comments/5933/
+http://macintouch.com/
+http://macintouch.com/newsrecent.shtml
+http://macnstuff.com/
+http://macobserver.com/article/2001/05/08.3.shtml
+http://macys-registry.weddingchannel.com/catalog/fds/gra/guestviewcatalog_new.asp?upc=000000800298358742&retailer_registry_uid=302355703
+http://madasafish.com/news/news.asp?cat=sport&aid=7724700
+http://madchat.org/vxdevl/papers/avers/codered.html
+http://maddingue.free.fr/carmina-burana/cb-by-Orff.en.html
+http://madison.indymedia.org/info/display/whole_foods/index.php
+http://madminerva.blog-city.com/
+http://madpenguin.org/cms/?m=show&id=1131&page=1
+http://maevekerry.blog-city.com/
+http://magazine.audubon.org/backyard/backyard9909.html
+http://magazine.audubon.org/population.html
+http://magazine.audubon.org/truenature/truenature0005.html
+http://magazine.fandm.edu/spring02/sp02_story1.html
+http://magazine.globeinvestor.com/servlet/ArticleNews/commentarystory/GIGOLD/20050603/magkoza0603/GIGOLDMAG/home
+http://magazine.uchicago.edu/0108/features/
+http://magazine.wustl.edu/Spring05/StevenTeitelbaum.htm
+http://magazine.wustl.edu/Winter02/alumniactivities.html
+http://magazines.ivillage.com/cosmopolitan/sex/no/articles/0,,544153_285746-2,00.html
+http://magazines.ivillage.com/goodhousekeeping/ghtv/articles/0,,284608_607667-2,00.html
+http://magazines.ivillage.com/goodhousekeeping/print/0,,558251,00.html
+http://magazines.ivillage.com/housebeautiful/recipefinder/recipe/0,,590091,00.html
+http://magazines.ivillage.com/marieclaire/beauty/expert/qas/0,,434729_437561,00.html
+http://magazines.ivillage.com/redbook/dh/diet/articles/0,,284479_664618,00.html
+http://magazines.ivillage.com/redbook/sex/great/articles/0,,284442_289181-8,00.html
+http://magazines.ivillage.com/redbook/sex/happy/articles/0,,284445_599323-3,00.html
+http://magazines.ivillage.com/redbook/you/beauty/articles/0,,284484_289454-7,00.html
+http://magazines.proboards9.com/index.cgi?board=MensMisc&action=post&num=1057667166
+http://magazines.proboards9.com/index.cgi?board=MensMisc&action=post&num=1057667166&quote=1086538757&start=0
+http://magazines.proboards9.com/index.cgi?board=MensMisc&action=post&num=1057667166&start=0
+http://magellans.co.uk/store/article/23?Args=
+http://magentathelion.deviantart.com/journal/
+http://maggidawn.typepad.com/maggidawn/2005/01/why_i_want_to_b.html
+http://maggidawn.typepad.com/maggidawn/lifestyle/
+http://magic-city-news.com/article_1063.shtml
+http://magic-city-news.com/article_3333.shtml
+http://magic-city-news.com/article_3363.shtml
+http://magick-whispers.com/handfasting.htm
+http://magickalrealm.com/spellcasting.html
+http://magma.nationalgeographic.com/ngm/data/2001/09/01/html/ft_20010901.1.html
+http://magnapak-magnetic-mattress-health-therapy.com/xcart/catalog/product_66_Blood_Pressure_Monitor__OBP2.html
+http://magnificat.ca/cal/engl/06-03.htm
+http://mahjoob.com/en/forums/showthread.php?t=124404
+http://mahjoob.com/en/forums/showthread.php?t=124404&page=1
+http://mahjoob.com/en/forums/showthread.php?t=124404&page=2
+http://mail.ctcnet.org/americaconnects/panel14/0015.htm
+http://mail.rcds.rye.ny.us/~anne_sampson/Civil%20War%20DOcuments/Nevins_Where_Difference.htm
+http://mail.sarai.net/pipermail/reader-list/2004-March/003531.html
+http://mail.zope.org/pipermail/zope/2003-January/129951.html
+http://mailformat.dan.info/body/charsets.html
+http://mailman.greennet.org.uk/public/plenary/2003-September/000545.html
+http://mailman.webdav.org/pipermail/acl/2002-March/001096.html
+http://main.edc.org/mosaic/Mosaic9/beneath.asp
+http://main.edc.org/mosaic/Mosaic9/immokalee.asp
+http://main.uab.edu/show.asp?durki=31538
+http://main.uab.edu/show.asp?durki=57652
+http://main.uab.edu/show.asp?durki=64117
+http://main.wgbh.org/wgbh/producingfortv/shorts.html
+http://mainlymartian.blogs.com/semijournal/2005/01/alas.html
+http://maintenanceforums.com/eve/ubb.x/a/tpc/f/615103861/m/755103812/r/2371052241
+http://majikthise.typepad.com/majikthise_/2005/02/ah_the_liberal_.html
+http://majikthise.typepad.com/majikthise_/2005/02/women_bloggers_.html
+http://majikthise.typepad.com/majikthise_/2005/03/dr_william_ches.html
+http://mamacat.typepad.com/main/2004/10/making_room_for.html
+http://mamaroobabysling.com/WearingDirections.htm
+http://mamboforge.net/tracker/index.php?func=detail&aid=1109&group_id=89&atid=416
+http://mampam.50megs.com/bv2001report.htm
+http://man.netbsd.se/?find=groff_out+5+161
+http://man.netbsd.se/?find=groff_out+5+162
+http://management.monster.com/articles/workstyle/
+http://managingwholes.com/bobleo.htm
+http://managua.usembassy.gov/wwwhe34.html
+http://managua.usembassy.gov/wwwhe70.html
+http://manana.typepad.com/manana/2004/12/
+http://manda1poo.blogspot.com/2004/11/in-news-gayness-and-sex-discrimination.html
+http://mandajuice.typepad.com/
+http://mandajuice.typepad.com/mandajuice/
+http://manhattan.about.com/
+http://manhattantransfer.blogspot.com/
+http://maniacalrage.net/archives/2003/02/tabular/
+http://maniebuhr.journalspace.com/
+http://manila.usembassy.gov/wwwhr401.html
+http://manila_wetland.tripod.com/manila_amd_wetland.htm
+http://manipurassembly.nic.in/Ses6Asm8/Bul29Jul.htm
+http://manipurassembly.nic.in/Ses6Asm8/Bul30Jul.htm
+http://manipurassembly.nic.in/govadd98.htm
+http://manstouch.com/maleart.html
+http://manstouch.com/nudephotography.html
+http://manufacturing-fabrication.globalspec.com/ProductFinder/Part_Fabrication_Production/Machine_Shop_Services
+http://mapatentlawyers.leadcounsel.com/questions.html
+http://mapj.org/modules.php?name=News&new_topic=2
+http://mapleleafrabbitry.tripod.com/id12.html
+http://marathon.uwc.edu/student_services/res_hall/Web%20Page/Contract.htm
+http://marathon68.homestead.com/Page22.html
+http://marc.blogs.it/archives/2005/06/response_to_mik.html
+http://marc.theaimsgroup.com/?l=bugtraq&m=95671578912963&w=2
+http://marcopolo.mci.com/marcograms/Feb2005.html
+http://mardiweb.com/web/psp6/stainglass/stainglass.html
+http://marelias.ca/news.htm
+http://mariadaines.dmusic.com/trackinfo/221976
+http://marine.rutgers.edu/cool/coolresults/papers/orion_rpt_5%2027%2004a
+http://marinecareers.net/outlook.htm
+http://marinermusings.blogspot.com/
+http://maritimes.indymedia.org/news/2005/06/10348.php
+http://marjoriebrody.com/directions.asp
+http://marjoriebrody.com/directionsp.asp
+http://mark-reviews-movies.tripod.com/reviews/L/lostintranslation.htm
+http://mark-twain.classic-literature.co.uk/mark-twains-speeches/ebook-page-39.asp
+http://mark.stubbornlights.org/phils/archives/2004_04.html
+http://markarkleiman.blogspot.com/2003_08_01_markarkleiman_archive.html
+http://markbahner.typepad.com/random_thoughts/2004/01/why_social_secu.html
+http://markcrispinmiller.blogspot.com/2005/05/disabled-youth-kidnapped-by-us-army.html
+http://marketing-bulletin.massey.ac.nz/article2/article5b.asp
+http://marketing-bulletin.massey.ac.nz/article3/article5b.asp
+http://marketing.about.com/
+http://marketing.about.com/cs/a.htm
+http://marketing.injersey.com/dr.html
+http://marketplace.publicradio.org/shows/1997/12/18_mpp.html
+http://markhancock.blogspot.com/2004/09/how-pjs-deal-with-rain.html
+http://markkennedy.house.gov/cgi-data/column/files/38.shtml
+http://marksarvas.blogs.com/elegvar/2005/03/i_step_briefly_.html
+http://marksarvas.blogs.com/elegvar/2005/06/bea_post_4_fina.html
+http://markschmitt.typepad.com/decembrist/2003/12/deans_pengun_or.html
+http://markschmitt.typepad.com/decembrist/2004/05/a_theory_about_.html
+http://markschmitt.typepad.com/decembrist/2004/11/pottery_barn_ru.html
+http://markschmitt.typepad.com/decembrist/2004/11/the_right_quest.html
+http://markschmitt.typepad.com/decembrist/2005/01/bill_thomas_giv.html
+http://markschmitt.typepad.com/decembrist/2005/04/that_which_cann.html
+http://markshea.blogspot.com/
+http://marlongofast.tripod.com/events/5kevent2.htm
+http://maroney.blogs.com/sounds_like_new/2004/11/composers_voice_1.html
+http://maroon.uchicago.edu/news/articles/2004/03/09/comedians_take_on_pe.php
+http://maroon.uchicago.edu/viewpoints/articles/2005/04/29/chicagos_your_final_.php
+http://marriage.about.com/od/entertainmen1/p/johnnycarson.htm
+http://marriagemoments.byu.edu/
+http://mars.acnet.wnec.edu/~grempel/courses/wc2/lectures/industrialrev.html
+http://mars.acnet.wnec.edu/~grempel/courses/ww2/lectures/nazidiplomacy.html
+http://marshallbrain.blogspot.com/2005/06/peak-oil-will-be-non-event.html
+http://marshallbrain.com/manna1.htm
+http://marshallbrain.com/robotic-nation.htm
+http://marsrovers.jpl.nasa.gov/mission/status.html
+http://marsrovers.jpl.nasa.gov/spotlight/opportunity/b19_20040304.html
+http://martinez.senate.gov/index.cfm?FuseAction=PressReleases.Detail&PressRelease_id=259&Month=6&Year=2005
+http://martinirepublic.com/
+http://martinirepublic.com/item/when-not-too-bright-wingnuts-attack-a-tribute-to-cathy-seipp
+http://marybakereddy.rolf-witzsche.com/mary_baker_eddy_life.html
+http://marykay.typepad.com/gallimaufry/2004/11/
+http://marylaine.com/bookbyte/getbooks.html
+http://marylaine.com/exlibris/xlib212.html
+http://marylaine.com/myword/converse.html
+http://marylaine.com/myword/govinfo.html
+http://marylaine.com/myword/stuff.html
+http://masada2000.org/al-dura.html
+http://masamania.com/archives/2004/09/japanese_busine.html
+http://masamania.com/archives/2005/06/funny_man_never.html
+http://mason.gmu.edu/~emoody/emion2-3.htm
+http://mason.gmu.edu/~emoody/rfranklin.html
+http://mass.gov/samh/coping/kids_teens.html
+http://massmurder.zyns.com/murder.php?sortfield=date
+http://massmurder.zyns.com/patrick_sherrill_04.html
+http://mast.unco.edu/cas/etconference/index.php
+http://mastergardener2005.usask.ca/program-details24.html
+http://matchingtracksuits.com/
+http://matchopolis.com/
+http://matcmadison.edu/is/as/math/mathclub/MathEvents/WWTBAM05/default.htm
+http://materials.netskills.ac.uk/offer.html
+http://matewan.squarespace.com/journal/2005/5/14/wal-mart-closes-union-store-shuts-down-satirical-student-site-and-otherwise-covers-itself-in-glory-as-stock-price-plummets.html
+http://math-www.uni-paderborn.de/~axel/huetchen.html
+http://math.cofc.edu/faculty/kasman/MATHFICT/mfview.php?callnumber=mf181
+http://math.hws.edu/eck/cs120/f02/lab12/
+http://math.hws.edu/javamath/config_applets/Generic-params.html
+http://math.hws.edu/javamath/config_applets/ScatterPlotApplet.html
+http://math.ucr.edu/home/baez/physics/General/open_questions.html
+http://math.ucr.edu/home/baez/physics/Relativity/GR/energy_gr.html
+http://math.usask.ca/document/netinfo/careers.html
+http://mathbykoehler.com/gmp4-parents.htm
+http://mathcentral.uregina.ca/RR/database/RR.09.97/seaman4.html
+http://mathforum.org/dr.math/faq/faq.bases.html
+http://mathforum.org/dr.math/faq/faq.integers.html
+http://mathforum.org/dr.math/faq/faq.pascal.triangle.html
+http://mathforum.org/dr.math/faq/faq.prob.world.html
+http://mathforum.org/library/drmath/view/52143.html
+http://mathforum.org/library/drmath/view/56461.html
+http://mathforum.org/library/drmath/view/59027.html
+http://mathforum.org/library/drmath/view/63516.html
+http://mathforum.org/pow/solutio53.html
+http://mathforum.org/trails/feedback.results.html
+http://mathforum.org/~sarah/Discussion.Sessions/Collins.html
+http://mathforum.org/~sarah/Discussion.Sessions/biblio.attitudes.html
+http://mathworks.txstate.edu/Website/news/2003/nytimes.htm
+http://matrix.bangkokpost.co.th/forums/thread.php?Thread_ID=845
+http://matrix.scranton.edu/uram/papers_2002.html
+http://matrixcognition.com/PARALLEL.HTM
+http://mats.imk.fraunhofer.de/pipermail/pykde/2001-October/001657.html
+http://mats.imk.fraunhofer.de/pipermail/pykde/2001-October/001658.html
+http://matse1.mse.uiuc.edu/~tw/energy/prin.html
+http://matt.blogeasy.com/main.terms.run
+http://matt.blogs.it/2003/06/19.html
+http://maudnewton.com/blog/
+http://maudnewton.com/blog/index.php?p=4168
+http://maui-kamaole.ffind.servebeer.com/
+http://maxpages.com/raindrops/Stimulation
+http://maxpages.com/swaauganda/KEY_PRESENTATIONS
+http://maxpower.blogspot.com/
+http://maxspeak.org/mt/archives/000988.html
+http://maxweber.hunter.cuny.edu/pub/eres/EDSPC715_MCINTYRE/Inspriration.html
+http://mayoresearch.mayo.edu/mayo/research/staff/mcgregor_cg.cfm
+http://mayoresearch.mayo.edu/mayo/research/staff/publications-listed.cfm?personid=10251715
+http://mb-soft.com/believe/
+http://mb-soft.com/believe/indexa.html
+http://mb-soft.com/believe/txw/hailmary.htm
+http://mb.winneronline.com/showthread.html?t=18302
+http://mba.eiu.com/index.asp?layout=view_article&eiu_article_id=1377249537
+http://mba.eiu.com/index.asp?layout=view_article&eiu_article_id=627249462
+http://mba.studylink.com/display/provider/provider-info.html?pid=pid-si-20-wala
+http://mba.wharton.upenn.edu/mba/academics/curriculum/core.php
+http://mbdefault.org/18_benefits/default.asp
+http://mbhs.bergtraum.k12.ny.us/cybereng/shorts/botd.html
+http://mbhs.bergtraum.k12.ny.us/cybereng/shorts/phctf.html
+http://mbsunderlandmusic.co.uk/terms.html
+http://mcadams.posc.mu.edu/ruby4.htm
+http://mcanerin.blogspot.com/2005_01_01_mcanerin_archive.html
+http://mccabe.blogdrive.com/
+http://mccain.senate.gov/index.cfm?fuseaction=Newscenter.ViewPork&Content_id=1320
+http://mccain.senate.gov/index.cfm?fuseaction=Newscenter.ViewPressRelease&Content_id=1007
+http://mccain.senate.gov/index.cfm?fuseaction=Newscenter.ViewPressRelease&Content_id=1127
+http://mcconnell.senate.gov/whip_facts.cfm
+http://mccrossan.org/news/index.php?newsid=35
+http://mceer.buffalo.edu/meetings/2004AnnualMeeting/review.asp
+http://mcel.pacificu.edu/as/students/stanley/sumner.html
+http://mcgirl.blogspot.com/
+http://mciu.org/~spjvweb/fiftyways.html
+http://mckeesport.dementia.org/blog/000061.html
+http://mclc.osu.edu/jou/abstracts/foster2.htm
+http://mclc.osu.edu/rc/pubs/sekine.htm
+http://mcmcweb.er.usgs.gov/platte/cottonwood_ranch/cotton_protocol.html
+http://mdbenoit.com/trouble.htm
+http://mdn.mainichi.co.jp/news/archive/200506/17/20050617p2a00m0dm014000c.html
+http://mdtp.ucsd.edu/Apr02Nwsltr.shtml
+http://me.stanford.edu/faculty/facultydir/mitchell.html
+http://me.warcry.com/
+http://me.warcry.com/index.php/content/quests/quests.html
+http://me.warcry.com/scripts/faq/faq.phtml?id=11&site=25
+http://me.warcry.com/scripts/links/archive.phtml?id=13&site=25
+http://meaindia.nic.in/indiapublication/The%20Indian%20economy.htm
+http://mearu.deviantart.com/
+http://measureb.clpccd.cc.ca.us/district/bond/BondHistory.php
+http://meath.gaa.ie/minorresults.htm
+http://med.stanford.edu/anesthesia/newsletter/new.html
+http://med.stanford.edu/personal/boydhouse/frank_tales/first_fish.html
+http://medact.org/article_wmd.php?articleID=324
+http://medeamelana.deviantart.com/
+http://meded.im.wustl.edu/resources/forresidents/Rotations/Curricula/MICU-south.htm
+http://meded.ucsd.edu/osa/resources/srvlguide/bars.html
+http://medfacilities.stanford.edu/facilities/preventive.html
+http://media-server.amazon.com/jobs/jobs.html
+http://media.aoltimewarner.com/media/newmedia/cb_press_view.cfm?release_num=55254368
+http://media.digitalglobe.com/index.php?s=customer_testimonials&ITEM=1
+http://media.eriposte.com/4-5.htm
+http://media.ford.com/article_display.cfm?article_id=16911&make_id=96
+http://media.graytvinc.com/documents/Lightening+info.htm
+http://media.guardian.co.uk/site/story/0,14173,1498148,00.html
+http://media.mitsubishi-motors.com/pressrelease/e/motorsports/detail897.html
+http://media.nationalreview.com/066026.asp
+http://media.orkut.com/articles/0209.html
+http://media.timewarner.com/media/newmedia/cb_press_view.cfm?release_num=55254355
+http://mediabistro.com/articles/cache/a3599.asp
+http://mediabistro.com/articles/cache/a3599.asp?pntvs=1&
+http://mediabistro.com/articles/cache/a3600.asp
+http://mediabistro.com/bbs/cache%5Ct18563_1.asp
+http://mediacenter.blogs.com/morph/2005/04/it_can_be_tough.html
+http://medialit.med.sc.edu/mcreltv.htm
+http://medialit.med.sc.edu/mediapolitics.htm
+http://medialit.med.sc.edu/multimediaendorsement.htm
+http://mediamatters.org/
+http://mediamatters.org/items/200410150004
+http://mediamatters.org/items/200410220008
+http://mediamatters.org/items/200410250001
+http://mediamatters.org/items/200411050005/
+http://mediamatters.org/items/200501150001
+http://mediamatters.org/items/itembody/200411050005
+http://mediamatters.org/items/leftsideitem/200407020007
+http://mediamatters.org/items/leftsideitem/200410220009
+http://medicalmadhouse.blogspot.com/2005_01_01_medicalmadhouse_archive.html
+http://medicalreporter.health.org/tmr0695/eye0695.html
+http://medicalreporter.health.org/tmr1296/carstensen1296.html
+http://medicare.commission.gov/medicare/coughlantest.html
+http://medicare.regence.com/beneficiary/claimBilling/
+http://medicine.plosjournals.org/perlserv/?request=get-document&doi=10.1371/journal.pmed.0020041
+http://medicine.plosjournals.org/perlserv/?request=get-document&doi=10.1371/journal.pmed.0020098
+http://medicine.plosjournals.org/perlserv/?request=get-document&doi=10.1371/journal.pmed.0020131
+http://medicine.plosjournals.org/perlserv/?request=read-response&doi=10.1371/journal.pmed.0020041
+http://medicine.ucsd.edu/clinicalmed/eyes.htm
+http://medicine.ucsd.edu/clinicalmed/genital.htm
+http://medicine.ucsd.edu/clinicalmed/heart.htm
+http://medicine.ucsf.edu/housestaff/handbook/HospH2002_C7.htm
+http://medicines.mhra.gov.uk/ourwork/licensingmeds/types/thmpd/qa/traduse.htm
+http://medienkritik.typepad.com/
+http://medienkritik.typepad.com/blog/2004/08/but_what_about_.html
+http://medienkritik.typepad.com/blog/2005/05/germanys_larges.html
+http://medienkritik.typepad.com/blog/2005/05/goebbels_would_.html
+http://medienkritik.typepad.com/blog/2005/06/otto_schily.html
+http://medinfo.ufl.edu/cme/hmoa2/
+http://mediocrefred.mu.nu/archives/046568.php
+http://mediresource.sympatico.ca/channel_health_news_detail.asp?channel_id=131&menu_item_id=4&news_id=5552
+http://mediresource.sympatico.ca/channel_health_news_detail.asp?channel_id=133&menu_item_id=4&news_id=5552
+http://mediresource.sympatico.ca/channel_health_news_detail.asp?channel_id=60&menu_item_id=4&news_id=5552
+http://mediresource.sympatico.ca/channel_health_news_detail_pf.asp?channel_id=133&menu_item_id=4&news_id=5552
+http://mediresource.sympatico.ca/channel_health_news_detail_pf.asp?channel_id=60&menu_item_id=4&news_id=5552
+http://mediresource.sympatico.ca/health_news_detail.asp?channel_id=131&menu_item_id=&news_id=5552
+http://mediresource.sympatico.ca/health_news_detail.asp?channel_id=133&menu_item_id=&news_id=5552
+http://mediresource.sympatico.ca/health_news_detail.asp?channel_id=60&menu_item_id=&news_id=5552
+http://medlem.spray.se/gamow/georgegamow.html
+http://medlib.bu.edu/generic/ip.cfm
+http://medlib.bu.edu/generic/ip.cfm?format=text
+http://mednews.stanford.edu/releases/2002/may/home_exercise.html
+http://mednews.stanford.edu/releases/2003/june/diabetes_drug.html
+http://mednews.wustl.edu/group/page/normal/82.html
+http://mednews.wustl.edu/news/page/normal/4247.html
+http://mednews.wustl.edu/news/page/print/5325.html
+http://mednews.wustl.edu/tips/page/normal/4222.html
+http://mednews.wustl.edu/tips/page/normal/975.html
+http://mednews.wustl.edu/tips/page/print/975.html
+http://mednewsarchive.wustl.edu/medadmin/PAnews.nsf/0/5D8309886214267886256B1E0078F3DC
+http://mednewsarchive.wustl.edu/medadmin/PAnews.nsf/0/9F7DD26F198DDA6186256B1E00792D2C
+http://mednewsarchive.wustl.edu/medadmin/PAnews.nsf/0/B6ADE8FC84A7CAF086256B1E00792CDE
+http://medrants.com/archives/2003/05/13/
+http://medrants.com/archives/2003/10/27/
+http://medrants.com/archives/2003/10/27/the-debate-over-retainer-medicine/
+http://medrants.com/archives/2004/04/01/maybe-my-last-post-on-paternalism-and-prescription-drugs/
+http://medrants.com/archives/2005/04/20/maybe-we-should-have-a-small-spare-tire/
+http://medrants.com/archives/2005/04/26/ask-your-doctor/
+http://medrants.com/archives/2005/06/13/db-gets-published/
+http://medvedfans.blog-city.com/read/977539.htm
+http://medweb.bham.ac.uk/easdec/laserdiabetic_retinopathy.html
+http://medworld.stanford.edu/features/cases/lanctot.html
+http://medworld.stanford.edu/research_journals.html
+http://meeting-place.net/matchmaking.shtml
+http://meetme.hotornot.com/keyword/evanescence
+http://meetme.hotornot.com/r/?emid=GMOYH8E
+http://meetme.hotornot.com/r/?emid=NZKQSZN
+http://megafitness.com/weighted-fitness-shoes.html
+http://megan.navstaff.com/
+http://melizzard.typepad.com/
+http://melladrama.com/
+http://member.expertpages.com/jpina/Jon.html
+http://members.accessus.net/~tmcdonld/lighthse/Texas.htm
+http://members.aol.com/AngriesOut/fairfigh.htm
+http://members.aol.com/BruceG6069/RoboTech_faq/Robotech_S5.html
+http://members.aol.com/DATSCOPE/30inchTROKmachine.html
+http://members.aol.com/DanMRosen/donner/feb47.htm
+http://members.aol.com/DrMWEcker/Mersenne.htm
+http://members.aol.com/ERACampaignWeb/newsletter13.html
+http://members.aol.com/JehanaS/c_basics/behave.html
+http://members.aol.com/KMarkus/ed.html
+http://members.aol.com/LPMICKEY/Actingresource.index.html
+http://members.aol.com/Loig7/filmincoherence8.htm
+http://members.aol.com/MrDonnUnits/ColonialMexico.html
+http://members.aol.com/OCESS/
+http://members.aol.com/Patriarchy/definitions/nature.htm
+http://members.aol.com/RulesPA/73.Cp.25.html
+http://members.aol.com/Wmkoenig/uncle4.htm
+http://members.aol.com/_ht_a/skyelander/sbattles.html
+http://members.aol.com/_ht_a/sobertransitions/step8.html
+http://members.aol.com/acockburn/riskcata/risktoc.htm
+http://members.aol.com/althist1/Apr01/rocketrace.htm
+http://members.aol.com/autoharps/producing.html
+http://members.aol.com/bblum6/booming.htm
+http://members.aol.com/bear317/scjones.htm
+http://members.aol.com/bluekate/june_aug_01.htm
+http://members.aol.com/bookhaven/
+http://members.aol.com/chalew/turtle.htm
+http://members.aol.com/davidpb4/legal.html
+http://members.aol.com/depress/ccarol1b.htm
+http://members.aol.com/discanner/hgfull.html
+http://members.aol.com/ejcrighten/
+http://members.aol.com/eugeneb/richard.htm
+http://members.aol.com/genfir1/srcheng.htm
+http://members.aol.com/gordonkwok/occwrt.html
+http://members.aol.com/hannuschka/lyrics/vagab_ly.htm
+http://members.aol.com/jeff570/o.html
+http://members.aol.com/jfepperson/gwill.html
+http://members.aol.com/kjblaw/jun98.html
+http://members.aol.com/kptacek/faq1.html
+http://members.aol.com/kthynoll/schools.htm
+http://members.aol.com/ldbarns/selfhelp.htm
+http://members.aol.com/lochlan2/fordun.htm
+http://members.aol.com/lshauser/tweng.html
+http://members.aol.com/macmurdie/editorial/4002_ed.html
+http://members.aol.com/matherbw/SRAWeb/IssuesPhoenix/Phoenix98Summer.html
+http://members.aol.com/nataw/puppymillstory.html
+http://members.aol.com/nostrumrus/nos56.html
+http://members.aol.com/nostrumrus/nos78.html
+http://members.aol.com/oldbicycle/index2.html
+http://members.aol.com/petemellen/smplana2.htm
+http://members.aol.com/projectk9/
+http://members.aol.com/rdkfive/MaternalHallenbecks.html
+http://members.aol.com/rechtman/faq-army.html
+http://members.aol.com/reinbeaux/pass/pass.htm
+http://members.aol.com/rslts/prins.html
+http://members.aol.com/sherbornma/GBL.html
+http://members.aol.com/shobansen3/
+http://members.aol.com/spoons1000/break/
+http://members.aol.com/steamdoc/writings/thermo.html
+http://members.aol.com/stocksystm/view_holdings.html
+http://members.aol.com/timprinty/myhomepage/Rosmyths.html
+http://members.chello.at/herbert.paulis/CoS-FAQ.html
+http://members.chello.nl/cvanderlely/bfrond/articles/interview.htm
+http://members.chello.nl/mgormez/books/chr/chr01.htm
+http://members.cox.net/batchild1/transcript/spamplan.htm
+http://members.cox.net/caidmp/speceyeref.html
+http://members.cox.net/kevinsblogs/Liberal%20Media%20Bias%20and%20the%202000%20election.htm
+http://members.cox.net/kipw/kipspix.html
+http://members.cox.net/mpetracca/plover.html
+http://members.cox.net/prayersandposters/page5.html
+http://members.cox.net/wtws/memlinks.htm
+http://members.dallypost.com/pcpress/page4320.php
+http://members.dodo.net.au/~scribbledot/nutsep11pd.html
+http://members.ebay.com/aboutme/cathgram
+http://members.ebay.com/aboutme/cmsquareb
+http://members.ebay.com/aboutme/fqgipsy/
+http://members.ebay.com/aboutme/jamma456
+http://members.ebay.com/aboutme/kittenkat1958
+http://members.ebay.com/aboutme/quickdeal4u/
+http://members.ebay.com/aboutme/tonyrobertsglass
+http://members.fortunecity.com/belindavault/album6.htm
+http://members.fortunecity.com/chezmoi/bloodsport.html
+http://members.fortunecity.es/sololetras/canciones/letra_can/canc_1787.htm
+http://members.fortunecity.es/sololetras/canciones/letra_can/canc_2084.htm
+http://members.freespeech.org/ehj/news/n_economy_laccidents.html
+http://members.freespeech.org/humanityinaction/2000/8.htm
+http://members.gamedev.net/D1/journal/
+http://members.iinet.net.au/~bill/bylaws.html
+http://members.iinet.net.au/~bnc/al.htm
+http://members.iinet.net.au/~jgowland/plp/The%20Republic.htm
+http://members.iinet.net.au/~marshal/Clubpics.html
+http://members.iinet.net.au/~mewilson/menindeehistory.htm
+http://members.iinet.net.au/~sejones/cmnctsry.html
+http://members.iinet.net.au/~westps/authorshowcase/authorshowcase.html
+http://members.internet2.edu/memberupdates/MemUpdate-July03.html
+http://members.lycos.co.uk/Chaundy/ox_cen_John_Ric.html
+http://members.lycos.co.uk/bradgate/twoqueens.htm
+http://members.lycos.co.uk/bwitched/lyrics.html
+http://members.lycos.co.uk/gary_hart/lyricsd/destinys.html
+http://members.lycos.co.uk/hospital/chester-royal-infirmary.html
+http://members.lycos.co.uk/peterbeardsley/phpBB2/viewtopic.php?p=1400&
+http://members.lycos.co.uk/peterbeardsley/phpBB2/viewtopic.php?p=453&
+http://members.lycos.co.uk/peterbeardsley/phpBB2/viewtopic.php?t=59&start=0&postdays=0&postorder=asc&highlight=&
+http://members.lycos.nl/Deerhound/true-2.htm
+http://members.lycos.nl/Kritisch/Dualismlives.htm
+http://members.networx.net.au/~dennisg/poetry.htm
+http://members.optushome.com.au/aussff/Rosedoc.html
+http://members.optusnet.com.au/exponentialist/Dawkins.htm
+http://members.optusnet.com.au/~austbua/masturbation.htm
+http://members.optusnet.com.au/~cohousing/merri/site/indicativearea.htm
+http://members.optusnet.com.au/~gtosiris/page1.html
+http://members.ozemail.com.au/~annandbilld/vomitorium/
+http://members.ozemail.com.au/~born1820/mlmethod.htm
+http://members.ozemail.com.au/~ddasp/newsdec1997.htm
+http://members.ozemail.com.au/~donaldh/hr/art34-45.htm
+http://members.ozemail.com.au/~mhempel/publications/mponic1.htm
+http://members.ozemail.com.au/~mickay/enemy.htm
+http://members.ozemail.com.au/~netsafe/trojan_index.html
+http://members.rediff.com/NCCTCE/
+http://members.rediff.com/kunjethy/vatican.htm
+http://members.rediff.com/ruskinbond/openinglines.htm
+http://members.rogers.com/hypnotize/
+http://members.shaw.ca/ancienteyes/Zo's%20palindromes11.htm
+http://members.shaw.ca/bethcandlish/daws1.htm
+http://members.shaw.ca/cartermyths/cartersep.htm
+http://members.shaw.ca/crystaljems/standard.htm
+http://members.shaw.ca/h-chartrand/6.1.htm
+http://members.shaw.ca/mefreeman/sports/cycling/kv-day2.htm
+http://members.shaw.ca/nelsonbc/west_kootenaysold.html
+http://members.shaw.ca/remember-laurie/feel.htm
+http://members.shaw.ca/save-wild-horses/index1.htm
+http://members.shaw.ca/winonakent/cillaroseaffair/cr-chaptertwelve.html
+http://members.surfeu.fi/wpk/articles/relationships.htm
+http://members.thegeekgroup.org/~pawinemaker/numbers.html
+http://members.tripod.com/Caroline_Bowen/BrownsStages.htm
+http://members.tripod.com/OldRedHills/sfanw-yorkureview.html
+http://members.tripod.com/RSaffran/aba.html
+http://members.tripod.com/ResurrectionWillows/propagation.html
+http://members.tripod.com/Thryomanes/AnimalSounds.html
+http://members.tripod.com/capitan/George.html
+http://members.tripod.com/mahalia_fan/mahaliajacksonlyricspage/
+http://members.tripod.com/mwolff/see.html
+http://members.tripod.com/realaliyah/banking.htm
+http://members.tripod.com/rem_ind/audio/esalacks.htm
+http://members.tripod.com/saif_w/curious/philosophy/maftab/teleological_arguments.htm
+http://members.tripod.com/sharing_science/ktkstudentoutline.html
+http://members.tripod.com/wordjumble/Tearsvideo.html
+http://members.tripod.com/~DanCassian/RobertDaviFanClub.html
+http://members.tripod.com/~GOPcapitalist/clintonpage.html
+http://members.tripod.com/~GSOLTESZ/ian.htm
+http://members.tripod.com/~Patyrsun/GURPS-5-0001.html
+http://members.tripod.com/~ScienceWars/ullica1.html
+http://members.tripod.com/~Startag/USApg1.html
+http://members.tripod.com/~SuzVoy/jcfics/almost.html
+http://members.tripod.com/~TVHistory/paper.html
+http://members.tripod.com/~WOLFIELUC/xmascarol01.html
+http://members.tripod.com/~Write4801/docs/moboats-2.html
+http://members.tripod.com/~a_spring/fem-celeb.html
+http://members.tripod.com/~afronord/direct.html
+http://members.tripod.com/~batesca/epilogue.htm
+http://members.tripod.com/~batesca/mybook.htm
+http://members.tripod.com/~beulahland/
+http://members.tripod.com/~bloodhound/longwalk.htm
+http://members.tripod.com/~candst/studygd1.htm
+http://members.tripod.com/~candst/toc.htm
+http://members.tripod.com/~charles_W/arthritis10b.html
+http://members.tripod.com/~donalo/yang.htm
+http://members.tripod.com/~ehlavaty/scires1.htm
+http://members.tripod.com/~greatamericanhistory/gr02011.htm
+http://members.tripod.com/~greatamericanhistory/gr02014.htm
+http://members.tripod.com/~histclo/
+http://members.tripod.com/~klok/WRINKLY_.HTM
+http://members.tripod.com/~leavis/aussie.htm
+http://members.tripod.com/~manchurianhitchcock/keebee.html
+http://members.tripod.com/~midgley/chapel.html
+http://members.tripod.com/~nigelef/higherorg.htm
+http://members.tripod.com/~night_wanderer/bloodrose/archives/mar2000/downtothewoods.html
+http://members.tripod.com/~repowers/manic/s-seasn3.html
+http://members.tripod.com/~sarant_2/ks3gervasi.html
+http://members.tripod.com/~tsc/advice.htm
+http://members.tripod.com/~wackyanne/library/xlcarol1.htm
+http://members.tripod.com/~wackyanne/library/xlsignal.htm
+http://members.tripod.com/~warlight/UZUNDEMIR.html
+http://members.virtualtourist.com/m/8b6c8/fac/
+http://members.westnet.com.au/web/talltrees/clunes/Clunes%20Primary.htm
+http://members.whattheythink.com/home/041202mailnow.cfm
+http://members4.boardhost.com/liveworkplay/msg/1142.html
+http://memberscu.cusiteonline.com/129.php
+http://membrane.com/security/secure/yahoo_attack.html
+http://membres.lycos.fr/anarchives/site/rocker/prol.htm
+http://membres.lycos.fr/ufocenter/Musiques/Saison1/1ADA10.html
+http://memory.loc.gov/ammem/aaohtml/exhibit/aopart9.html
+http://memory.loc.gov/ammem/arendthtml/mharendtFolder07.html
+http://memory.loc.gov/ammem/ccmphtml/colahist.html
+http://memory.loc.gov/ammem/fsahtml/fachap03.html
+http://memory.loc.gov/ammem/naw/nawstime.html
+http://memory.loc.gov/ammem/ndlpedu/collections/amwest/history6.html
+http://memory.loc.gov/ammem/ndlpedu/collections/coolidge/history.html
+http://memory.loc.gov/ammem/ndlpedu/collections/ed/thinking.html
+http://memory.loc.gov/ammem/ndlpedu/collections/gw/history.html
+http://memory.loc.gov/ammem/ndlpedu/collections/map/thinking.html
+http://memory.loc.gov/ammem/ndlpedu/features/doc_analysis/movie/index_winter.html
+http://memory.loc.gov/ammem/smhtml/audiodir.html
+http://memory.loc.gov/ammem/today/dec07.html
+http://memory.loc.gov/ammem/today/jan15.html
+http://memory.loc.gov/ammem/today/jan19.html
+http://memory.loc.gov/ammem/today/nov27.html
+http://memory.loc.gov/ammem/today/oct21.html
+http://memory.loc.gov/ammem/today/sep11.html
+http://memory.loc.gov/ammem/today/sep12.html
+http://memory.loc.gov/ammem/vshtml/vsflme.html
+http://memory.loc.gov/learn/community/chat/oct16_03.html
+http://memory.loc.gov/learn/community/chat/oct17_02.html
+http://memory.loc.gov/learn/lessons/99/edison/teach.html
+http://memory.loc.gov/learn/lessons/99/fun/townschool.html
+http://memory.loc.gov/learn/lessons/primary.html
+http://memphis.bizjournals.com/memphis/stories/2005/01/03/daily39.html?jst=cn_cn_lk
+http://memphis.bizjournals.com/memphis/stories/2005/01/03/daily39.html?jst=m_ln_hl
+http://memphis.bizjournals.com/memphis/stories/2005/01/03/daily39.html?jst=pn_pn_lk
+http://men.typepad.com/mens_hour/2005/03/
+http://men.typepad.com/mens_hour/2005/03/sexist_oxfam_se.html
+http://menagerie.mactyre.net/article.php?story=20040110123331608
+http://mensnewsdaily.com/blog/2005/06/its-not-your-mothers-fathers-movement.htm
+http://mentalhealth.about.com/
+http://mentalhealth.about.com/cs/mindandbody/a/immunelaughter.htm
+http://mentalhealth.about.com/cs/mindandbody/a/immunelaughter_2.htm
+http://mentalhealth.about.com/cs/suicideresources/a/killself.htm
+http://mentalhelp.net/books/books.php?type=de&id=2101
+http://mentalhelp.net/poc/view_doc.php?type=doc&id=629&cn=8
+http://mentalhelp.net/psyhelp/chap1/chap1d.htm
+http://mentalhelp.net/psyhelp/chap11/chap11f.htm
+http://mentalhelp.net/psyhelp/chap13/chap13b.htm
+http://mentalhelp.net/psyhelp/chap13/chap13h.htm
+http://mentalhelp.net/psyhelp/chap4/chap4d.htm
+http://mentalhelp.net/psyhelp/chap4/chap4m.htm
+http://mentalhelp.net/psyhelp/chap8/chap8f.htm
+http://mentalhygiene.com/index.php/2005/06/04/post-it-mosaic-howto/
+http://mentor.lscf.ucsb.edu/course/summer/eemb127/syllabus.html
+http://mentura.com/Content/Library.aspx?Mode=Subject&ID=238
+http://mentura.com/Content/Library.aspx?Mode=Subject&ID=240
+http://merc.mcmaster.ca/symposium/SCMSymposium2003.html
+http://mercurior.blogspot.com/
+http://mercury.soas.ac.uk/staffdevelopment/news.html
+http://mergercentral.com/default.cfm?division=20
+http://meria.idc.ac.il/journal/1997/issue1/jv1n1a4.html
+http://meria.idc.ac.il/journal/2004/issue2/jv8n2a2.html
+http://meria.idc.ac.il/research-g/maps.html
+http://merlin.blogs.com/43folders/2004/09/quicksilver_mov.html
+http://merodeando.com/en/
+http://merseybasin.itcuk.net/page.asp?id=2963&docid=19
+http://mesh.medill.northwestern.edu/mnschicago/archives/2005/06/ethnceat_chicag.html
+http://messageboard.tuckermax.com/showthread.php?t=1551&page=2
+http://messageboards.active.com/jive/thread.jspa?threadID=1209&messageID=10641
+http://messageboards.active.com/jive/thread.jspa?threadID=1209&tstart=0
+http://messenger-inquirer.com/index/kentucky.htm
+http://messenger-inquirer.com/sports/professional/8038657.htm
+http://messybeast.com/catarchive.htm
+http://messybeast.com/faddycats.htm
+http://met-www.cit.cornell.edu/glossary.html
+http://metamorphosism.com/fiction/archives/000419.html
+http://metaphilm.com/philm.php?id=391_0_2_0_M
+http://meted.ucar.edu/dlac/lesson3c/print.htm
+http://meted.ucar.edu/mesoprim/seabreez/print.htm
+http://meted.ucar.edu/norlat/snow/lake_effect/print_whole.htm
+http://meteoritics.org/Abst_39-2.htm
+http://metro.sandiegometro.com/dbr/index.php?dbrID=784
+http://metromix.chicagotribune.com/movies/mmx-041207-movies-review-rke-blade.story
+http://metromix.chicagotribune.com/movies/mmx-050224-movies-review-mw-diary.story
+http://metropolis.japantoday.com/moneytalks/287/moneytalksinc.htm
+http://metropolis.japantoday.com/tokyotravel/tokyoworldtravel/391/tokyoworldtravelinc.htm
+http://metroyouthsymphony.org/announce.shtml
+http://mevault.ign.com/
+http://meyerweb.com/eric/thoughts/2004/10/18/ssup5sup-10/
+http://meyerweb.com/eric/thoughts/200401.html
+http://mfa.gov.il/mfa/go.asp?MFAH0i1x0
+http://mfa.gov.il/mfa/go.asp?MFAH0iiz0
+http://mfweb.com.au/wc.dll?event~events_MIAA_anon~&criteria=%7C%7CNSW%7C%7C%7C
+http://mgilleland.com/dec2003.htm
+http://mgoblue.com/document_display.cfm?document_id=11420
+http://mgonline.com/architect.html
+http://mgv.mim.edu.my/Articles/00574/9602473.Htm
+http://mh.bmjjournals.com/cgi/content/full/30/1/27
+http://mha-net.org/msb/html/papers-n/palo01/wastewa.htm
+http://mhking.mu.nu/archives/034157.php
+http://mhmonline.com/defaultdirectory.asp
+http://miagoddess.blogspot.com/2005/05/tuesday-activity-1.html
+http://miami.about.com/
+http://miami.indymedia.org/news/2005/05/1396.php
+http://miaw.nami.org/mediatip.html
+http://micahchallenge.org/Christians_Poverty_and_Justice/98.asp
+http://michael-friedman.com/archives/000312.html
+http://michael-friedman.com/archives/2004_03.html
+http://michael.casavant.us/SRIII/reality.htm
+http://michael.casavant.us/SRIII/srterms.htm
+http://michael.ellerman.id.au/index.cgi/2004/07/
+http://michaelbluejay.com/sri/
+http://michaelgersh.blogspot.com/2003_09_28_michaelgersh_archive.html
+http://michaelhyatt.blogs.com/workingsmart/2004/11/the_concept_7_s.html
+http://michaelhyatt.blogs.com/workingsmart/2005/03/corporate_blogg.html
+http://michaelmoore.com/words/index.php?messageDate=2004-04-14
+http://michaelyon.blogspot.com/2005/05/little-girl.html
+http://micheleagnew.com/
+http://michelleandchristy.typepad.com/work_in_progress/2004/10/
+http://michellemalkin.com/archives/000246.htm
+http://michellemalkin.com/archives/000292.htm
+http://michellemalkin.com/archives/001220.htm
+http://michellemalkin.com/archives/002712.htm
+http://michigan.gov/scope/0,1607,7-155-10710_10733_10735-40269--,00.html
+http://michigan.sierraclub.org/about/retreat.html
+http://michigan.sierraclub.org/action/Watchdog.html
+http://micro.balances.com/
+http://micro5.mscc.huji.ac.il/~msjan/neutron.html
+http://microcosmpublishing.com/
+http://microhealthsolutions.com/index.php?cPath=4
+http://microsoft.toddverbeek.com/wp.html
+http://microvet.arizona.edu/Courses/MIC438/VirusQuestions.htm
+http://microwave.nsstc.nasa.gov:5721/dataset_documents/lolracts_dataset.html
+http://mid.wesmo.com/machine/?changelog=1
+http://middle.river.jobs.topusajobs.com/
+http://middlebury.net/acsa/
+http://middleeast.sun.com/service/support/warranty/
+http://middleware.internet2.edu/dir/groups/internet2-mace-dir-groups-best-practices-200210.htm
+http://middleware.internet2.edu/dir/groups/rpr-nmi-edit-mace_dir-groups_best_practices-1.0.html
+http://midwest.construction.com/features/archive/0305_Weekend.asp
+http://midwest.fws.gov/endangered/birds/hens_dec.html
+http://midwifeinfo.com/FAQs.php
+http://mightypets.com/links/Veterinary.asp
+http://migration.ucdavis.edu/mn/comments.php?id=3016_0_9_0_C
+http://mikesejournal.com/archives/2003_01.php
+http://mikewest.org/
+http://mikezellers.com/blog2/2005/02/what-ive-been-reading-listening-to.html
+http://mikonos.globat.com/~joeworld-online.com/news/publish/article_187.shtml
+http://mileageplusvisa.ualmiles.com/TermsAndConditions.jsp
+http://miles-davis.com/GilEvans/MilesAhead/linernotes.html
+http://milgram.tripod.com/works/gefilm1.html
+http://militaryhistory.about.com/b/a/053482.htm
+http://militaryweek.com/archived-africa.shtml
+http://militaryweek.com/casualties.shtml
+http://millennium-debate.org/abridged.htm
+http://millhill.co.nz/wairaka.htm
+http://millimeter.com/mag/video_creative_stock_innovative/
+http://millimeter.com/mag/video_di_innovations/
+http://millimeter.com/mag/video_future_stock_boutique/
+http://millimeter.com/mag/video_la_confidential_los/
+http://millimeter.com/news/video_guide_understanding_networkattached/
+http://millionsmaker.armchairmillionaire.com/
+http://millionsmaker.armchairmillionaire.com/faqs/
+http://miltsfile.blogspot.com/2005_01_16_miltsfile_archive.html
+http://milwaukee.bizjournals.com/milwaukee/stories/2005/01/24/story3.html
+http://mimeograph.org/Old/places/03/05/40000_feet_below_binions_lowrolling_near_the_world_series_of_poker_121.php
+http://mindfreedom.org/mindfreedom/news/010308.shtml
+http://mindismoving.org/blog/
+http://mindpower.smartads.info/visioneering/meditation-why-just-sitting-there-just-isnt-enough.html
+http://mindprod.com/iraq.html
+http://miniatures.de/html/int/hasegawa-MT05-grant.html
+http://minimsft.blogspot.com/
+http://minister.dva.gov.au/speeches/2002/03_mar/kokoda.htm
+http://ministryemployment.com/jobs/2177
+http://ministryemployment.com/services/ministersearch.asp
+http://minneapolis.metblogs.com/archives/2005/04/index.phtml
+http://minneapolisfed.org/info/mpls/history/deming.cfm
+http://minneapolisfed.org/pubs/region/04-05/essay.cfm
+http://minneapolisfed.org/pubs/region/04-09/wirtz.cfm
+http://minneapolisfed.org/pubs/region/89-05/reg895d.cfm
+http://minneapolisfed.org/pubs/region/95-09/int959.cfm
+http://minnesota.publicradio.org/radio/programs/open_air/
+http://minnow.cc.gatech.edu/squeak/158
+http://minnow.cc.gatech.edu/squeak/1928
+http://minorjive.typepad.com/hungryblues/2004/10/some_notes_on_t.html
+http://minusspace.com/kraus/kraus.html
+http://mirror.perupetro.com.pe/negociaciones01-e.asp
+http://misapplied.blogdrive.com/
+http://mishalov.net/joongang23oct03.html
+http://mission.itu.ch/MISSIONS/Myanmar/00nlm/n001223.htm
+http://mission.itu.ch/MISSIONS/Myanmar/01nlm/n010110.htm
+http://mission.itu.ch/MISSIONS/Myanmar/05nlm/n050331.htm
+http://mission.itu.ch/MISSIONS/Myanmar/05nlm/n050603.htm
+http://missmellie.blogspot.com/2004_10_01_missmellie_archive.html
+http://mit.edu/biology/www/facultyareas/facresearch/sauer.shtml
+http://mit.edu/cre/careers/careerservices.html
+http://mit.edu/its/courseevent.html
+http://mitglied.lycos.de/DreamsNeverEnd/osrev006.htm
+http://mitpress.mit.edu/catalog/item/default.asp?tid=15&ttype=4&xcid=0&xid=6
+http://mitpress.mit.edu/catalog/item/default.asp?ttype=5&tid=1401&xid=6&xcid=0
+http://miva.sctimes.com/miva/cgi-bin/miva?Web/page.mv+1+local+20050115055140
+http://mixingmemory.blogspot.com/2004/10/once-more-into-breach.html
+http://mixonline.com/mag/audio_malcolm_burn/
+http://mjr.towers.org.uk/swn/
+http://mjroseblog.typepad.com/buzz_balls_hype/
+http://mkurniawan.textamerica.com/
+http://mlb.mlb.com/NASApp/mlb/mil/news/mil_news.jsp?ymd=20021204&content_id=181276&vkey=news_mil&fext=.jsp
+http://mlb.mlb.com/NASApp/mlb/mlb/official_info/community/btf.jsp?content=turf_designs
+http://mlb.mlb.com/NASApp/mlb/mlb/official_info/official_rules/game_preliminaries_3.jsp
+http://mlb.mlb.com/NASApp/mlb/mlb/schedule/important_dates_05.jsp
+http://mlb.mlb.com/NASApp/mlb/news/article_leftfield.jsp?ymd=20050221&content_id=947223&vkey=leftfield&fext=.jsp
+http://mlbplayers.mlb.com/NASApp/mlb/pa/releases/releases.jsp?content=0317
+http://mlmlaw.blogspot.com/2004/08/scamology-101-introduction-to-pyramid.html
+http://mmlpool.org/shared/public/right_side_navigation/risk_management_tips/educational_opportunity.php
+http://mo.water.usgs.gov/
+http://moab.eecs.wsu.edu/~kfitz/FitzResearch.html
+http://moat.nlanr.net/NAI/
+http://mobile.banananetwork.com/ringtonelist.asp?lt=5&CategoryID=1&page=3
+http://mobile.ntlworld.com/logos/Food_And_Drink_logos/Fast_Food_logos/heinz_306898_logo.asp
+http://mobile.ntlworld.com/logos/Food_And_Drink_logos/Fast_Food_logos/heinz_306944_logo.asp
+http://mobile.ntlworld.com/logos/Food_And_Drink_logos/Fast_Food_logos/hot_coffee_305799_logo.asp
+http://mobile.ntlworld.com/logos/Food_And_Drink_logos/Fast_Food_logos/pepsi_306468_logo.asp
+http://mobile.ntlworld.com/logos/Food_And_Drink_logos/Fast_Food_logos/pizza_hut_307435_logo.asp
+http://mobile.ntlworld.com/logos/Food_And_Drink_logos/Fast_Food_logos/pringles_302521_logo.asp
+http://mobile.ntlworld.com/logos/Food_And_Drink_logos/Fast_Food_logos/robinson-s_307712_logo.asp
+http://mobile.ntlworld.com/logos/Nature_logos/Fish_logos/drink_like_a_fish_300669_logo.asp
+http://mobile.ntlworld.com/mms_pictures/Other_mms_pictures/Pictures_mms_pictures/fancy_a_drink-_400102_mms_picture.asp
+http://mobilemomentum.msn.com/article.aspx?aid=12
+http://mobyrebuttal.blogspot.com/
+http://mochi.blogs.com/happylife/2004/06/
+http://mockingbird.creighton.edu/english/micsun/IrishResources/archaeol.htm
+http://mod.nic.in/aforces/body.htm
+http://modeemi.cs.tut.fi/~tuomov/ion/
+http://modelminority.com/printout260.html
+http://moderick.typepad.com/life/2005/04/
+http://moderncrusader.blogspot.com/
+http://modernfabulousity.blogspot.com/
+http://modernkicks.typepad.com/modern_kicks/
+http://modies.blogspot.com/2005/06/adoption-changes-some-questions-for.html
+http://modifiedliving.com/archive1.htm
+http://modperlbook.org/html/ch21_01.html
+http://moglen.law.columbia.edu/publications/maine-speech.html
+http://mojo.calyx.net/~olsen/HEMP/IHA/iha02109.html
+http://mojo.calyx.net/~olsen/HEMP/IHA/iha03211.html
+http://mojo.skazat.com/
+http://mold-help.org/content/view/155/
+http://mold-help.org/content/view/18/
+http://mold-help.org/content/view/341/
+http://mold-help.org/content/view/50/
+http://mold-help.org/content/view/509/
+http://mold-help.org/content/view/82/
+http://molehr.oupjournals.org/cgi/content/full/10/10/729
+http://moliere.byu.edu/digital/heroesa5.html
+http://molly.open.ac.uk/Personal-pages/Pubs/Profiles/tbl.htm
+http://moltag.blogspot.com/
+http://molvis.sdsc.edu/vmi_docs/newsite.htm
+http://mom.lifetips.com/
+http://momentarymadness.typepad.com/nipponnotesandqueries/2004/08/
+http://moncon.greenmuseum.org/papers/harrison1.html
+http://monde-diplo-friends.org.uk/LMDarticles/sept01art1.html
+http://mondediplo.com/1997/02/05korea2
+http://mondediplo.com/1997/09/magnitka
+http://mondediplo.com/1998/03/16zonesla
+http://mondediplo.com/1998/07/02kosov
+http://mondediplo.com/1998/07/18israel
+http://mondediplo.com/1999/05/14tele
+http://mondediplo.com/1999/09/06poverty
+http://mondediplo.com/1999/10/03timor
+http://mondediplo.com/1999/11/10skorea
+http://mondediplo.com/1999/12/12comb
+http://mondediplo.com/2000/09/03russia
+http://mondediplo.com/2001/01/05israelleft
+http://mondediplo.com/2001/07/07aids
+http://mondediplo.com/2001/10/06wagner
+http://mondediplo.com/2001/12/08euro
+http://mondediplo.com/2002/06/08france
+http://mondediplo.com/2002/06/09couscous
+http://mondediplo.com/2002/09/08sabra
+http://mondediplo.com/2003/09/07jourde
+http://mondediplo.com/2004/02/05europefailure
+http://mondediplo.com/2004/02/12economy
+http://mondediplo.com/2004/04/08francegermany
+http://mondediplo.com/2004/06/05thewall
+http://mondediplo.com/2004/09/19walking
+http://mondediplo.com/2004/11/07usivyleague
+http://mondediplo.com/2005/06/07uspensions
+http://money.cnn.com/
+http://money.cnn.com/1999/03/01/life/q_trusts/
+http://money.cnn.com/2000/10/27/soho/q_janeidea64/
+http://money.cnn.com/2001/11/09/companies/aftershock_banks/
+http://money.cnn.com/2002/04/03/pf/college/q_hotdiploma/
+http://money.cnn.com/2002/08/26/news/9-11retail/
+http://money.cnn.com/2003/09/25/markets/beforebell/
+http://money.cnn.com/2003/12/22/pf/expert/ask_expert/
+http://money.cnn.com/2004/02/09/news/economy/jobs_model/
+http://money.cnn.com/2004/02/11/news/economy/greenspan/
+http://money.cnn.com/2004/03/05/pf/saving/willis_tips/
+http://money.cnn.com/2004/03/18/technology/techinvestor/hellweg/
+http://money.cnn.com/2004/03/19/pf/prenups/
+http://money.cnn.com/2004/07/28/pf/saving/willis_tips/
+http://money.cnn.com/2004/08/20/funds/funds_muni_0409/
+http://money.cnn.com/2004/08/24/pf/expert/ask_expert/
+http://money.cnn.com/2004/09/28/news/economy/icr_feb/
+http://money.cnn.com/2004/09/28/pf/debt/chatzky_program_0406/
+http://money.cnn.com/2004/10/11/pf/expert/ask_expert/
+http://money.cnn.com/2004/10/15/pf/saving/willis_tips/
+http://money.cnn.com/2004/10/22/pf/insurance/healthcare_cdhc_0411/
+http://money.cnn.com/2005/02/11/pf/magpl_suddenly_0503/
+http://money.cnn.com/2005/02/17/news/midcaps/mso_walkup/
+http://money.cnn.com/2005/03/22/news/economy/taxreform_vat/
+http://money.cnn.com/2005/04/08/pf/taxes/tax_freedom/
+http://money.cnn.com/2005/04/28/pf/college/cost/
+http://money.cnn.com/2005/05/03/technology/techinvestor/lamonica/
+http://money.cnn.com/2005/05/10/news/fortune500/summer_movies/
+http://money.cnn.com/2005/05/24/news/economy/amt_reform/
+http://money.cnn.com/2005/05/25/news/economy/newhomes/
+http://money.cnn.com/2005/05/27/markets/markets_rangebound/
+http://money.cnn.com/2005/06/10/markets/sun_lookahead/
+http://money.cnn.com/2005/06/21/markets/markets_newyork/
+http://money.cnn.com/cnnsi/2005/basketball/nba/specials/playoffs/2005/06/23/larry.brown.ap/
+http://money.cnn.com/markets/news/
+http://money.excite.com/jsp/nw/nwdt_rt.jsp?section=news&news_id=dji-00101020050615&feed=dji&date=20050615&cat=RET
+http://money.guardian.co.uk/cashclinic/
+http://money.guardian.co.uk/endowments/story/0,6453,1304089,00.html
+http://money.guardian.co.uk/ethicalmoney/story/0,1356,1227100,00.html
+http://money.guardian.co.uk/howtocomplain/story/0,11609,758323,00.html
+http://money.guardian.co.uk/howtocomplain/story/0,11609,957631,00.html
+http://money.guardian.co.uk/interestrates/0,6453,594819,00.html
+http://money.guardian.co.uk/news_/
+http://money.guardian.co.uk/news_/0,1456,,00.html
+http://money.guardian.co.uk/news_/0,1456,567791,00.html
+http://money.guardian.co.uk/news_/0,1456,567791,00.html?76%3A+Money+news
+http://money.guardian.co.uk/news_/story/0,1456,1405304,00.html
+http://money.guardian.co.uk/news_/story/0,1456,1493700,00.html
+http://money.guardian.co.uk/property/buyingtolet/0,14431,1181036,00.html
+http://money.guardian.co.uk/property/buyingtolet/story/0,14434,1427201,00.html
+http://money.guardian.co.uk/retirementhousing/story/0,11720,672402,00.html
+http://money.guardian.co.uk/saving/banks/story/0,12410,1493701,00.html
+http://money.guardian.co.uk/saving/story/0,1456,1171154,00.html
+http://money.guardian.co.uk/scamsandfraud/story/0,13802,1252835,00.html
+http://money.guardian.co.uk/splitcapitalinvestmenttrusts/story/0,12051,819447,00.html
+http://money.guardian.co.uk/tax/
+http://money.guardian.co.uk/travel/story/0,1456,1328447,00.html
+http://money.guardian.co.uk/work/
+http://money.guardian.co.uk/work/howto/story/0,1456,1135552,00.html
+http://money.independent.co.uk/property/homes/story.jsp?story=604493
+http://money.independent.co.uk/property/homes/story.jsp?story=644976
+http://money.inq7.net/features/view_features.php?yyyy=2005&mon=06&dd=13&file=1
+http://money.msn.co.uk/Bank_Plan/insurance/Guides/Basics/005004/default.asp
+http://money.msn.co.uk/Bank_Plan/savings/Journals/StashThatCash/FinancialPhobia/default.asp
+http://money.msn.co.uk/MyMoney/Insight/MyBusiness/StartingOut/Workingfromhome/default.asp
+http://money.msn.co.uk/MyMoney/Insight/SpecialFeatures/PAFeatures/articlethree/default.asp
+http://money.msn.co.uk/Planning/life_events/myhome/insight/propertymatters/HousePriceLeague/default.asp
+http://money.msn.co.uk/Student/SFUKDiaries/Home/gapyearstudents/helenrowles/4joytemping/
+http://money.msn.co.uk/Student/SFUKDiaries/Home/secondyearstudents/safinaahmad/2Timetopriority/
+http://money.msn.co.uk/insurance/Insight/Guides/Basics/005004/default.asp
+http://money.msn.co.uk/investing/Insight/SpecialFeatures/ActiveInvestor/EthicalInvesting/default.asp
+http://money.msn.co.uk/investing/Insight/SpecialFeatures/ActiveInvestor/Ethicalinvesting/default.asp
+http://money.msn.co.uk/investing/Insight/SpecialFeatures/ActiveInvestor/sexindustry/default.asp
+http://money.msn.co.uk/investing/Insight/SpecialFeatures/shareacademy/intermediate/EFlotationsIPOs/9Startofdealing/default.asp
+http://money.msn.co.uk/life_events/myhome/insight/propertymatters/averagehouseprice/default.asp
+http://money.msn.co.uk/mortgages/Insight/Buytolet/buytoletinsurance/default.asp
+http://money.msn.co.uk/mortgages/Insight/buytolet/buytoletinsurance/
+http://money.msn.co.uk/specials/ChristmasMoney/Christmasmoneyhangover/
+http://money.msn.co.uk/specials/newyearnewmoney/Christmasmoneyhangover/default.asp
+http://money.msn.co.uk/yourhome/averagehouseprice/
+http://money.telegraph.co.uk/money/main.jhtml?xml=/money/2005/02/02/cmatm02.xml
+http://moneycentral.groups.msn.com/ADSXMoneyCentral/general.msnw?action=get_message&mview=0&ID_Message=112964&LastModified=4675507508398851329
+http://moneycentral.groups.msn.com/MSFTMoneyCentral/general.msnw?action=get_message&mview=0&ID_Message=10706&LastModified=4675494748395779891
+http://moneycentral.msn.com/Content/CNBCTV/Articles/TVReports/Index.asp
+http://moneycentral.msn.com/articles/invest/careful/5934.asp
+http://moneycentral.msn.com/articles/invest/company/6086.asp
+http://moneycentral.msn.com/content/Banking/Betterbanking/P38218.asp
+http://moneycentral.msn.com/content/Banking/Betterbanking/P77160.asp
+http://moneycentral.msn.com/content/Banking/Homebuyingguide/P84657.asp
+http://moneycentral.msn.com/content/Banking/P57803.asp
+http://moneycentral.msn.com/content/Banking/P59113.asp
+http://moneycentral.msn.com/content/Banking/P71745.asp
+http://moneycentral.msn.com/content/Banking/bankruptcyguide/P108797.asp
+http://moneycentral.msn.com/content/Banking/creditcardsmarts/P55860.asp
+http://moneycentral.msn.com/content/CNBCTV/Articles/Dispatches/P108986.asp
+http://moneycentral.msn.com/content/CNBCTV/Articles/Dispatches/P121394.asp
+http://moneycentral.msn.com/content/CollegeandFamily/Cutcollegecosts/P57116.asp
+http://moneycentral.msn.com/content/CollegeandFamily/Loveandmoney/P43152.asp
+http://moneycentral.msn.com/content/CollegeandFamily/Moneyinyour20s/P37554.asp
+http://moneycentral.msn.com/content/CollegeandFamily/P94152.asp
+http://moneycentral.msn.com/content/Insurance/Insureyourlife/P77616.asp
+http://moneycentral.msn.com/content/Insurance/Insureyourlife/P77616.asp?Printer
+http://moneycentral.msn.com/content/Insurance/P46242.asp
+http://moneycentral.msn.com/content/Investing/Findhotstocks/P101782.asp
+http://moneycentral.msn.com/content/Investing/Findhotstocks/P90038.asp
+http://moneycentral.msn.com/content/Investing/Realestate/P63968.asp
+http://moneycentral.msn.com/content/Investing/Startinvesting/P38386.asp
+http://moneycentral.msn.com/content/P103394.asp
+http://moneycentral.msn.com/content/P105037.asp
+http://moneycentral.msn.com/content/P107527.asp
+http://moneycentral.msn.com/content/P109887.asp
+http://moneycentral.msn.com/content/P119388.asp
+http://moneycentral.msn.com/content/P120882.asp
+http://moneycentral.msn.com/content/P50152.asp
+http://moneycentral.msn.com/content/P65606.asp
+http://moneycentral.msn.com/content/P87339.asp?GT1=4244
+http://moneycentral.msn.com/content/P99095.asp
+http://moneycentral.msn.com/content/RetirementandWills/P52389.asp
+http://moneycentral.msn.com/content/RetirementandWills/P52389.asp?Printer
+http://moneycentral.msn.com/content/Retirementandwills/Createaplan/P87296.asp
+http://moneycentral.msn.com/content/SavingandDebt/P101679.asp
+http://moneycentral.msn.com/content/SavingandDebt/P111061.asp
+http://moneycentral.msn.com/content/SavingandDebt/P43217.asp
+http://moneycentral.msn.com/content/SavingandDebt/P59862.asp
+http://moneycentral.msn.com/content/SavingandDebt/P59862.asp?Printer
+http://moneycentral.msn.com/content/Savinganddebt/Finddealsonline/P36487.asp
+http://moneycentral.msn.com/content/Savinganddebt/Managedebt/P107758.asp
+http://moneycentral.msn.com/content/Savinganddebt/Savemoney/P36016.asp
+http://moneycentral.msn.com/content/Savinganddebt/Savemoney/P36016.asp?special=0501freedom
+http://moneycentral.msn.com/content/Savinganddebt/Savemoney/P90000.asp
+http://moneycentral.msn.com/content/Savinganddebt/Travelforless/P105676.asp
+http://moneycentral.msn.com/content/Savinganddebt/Travelforless/P105676.asp?Printer
+http://moneycentral.msn.com/content/Savinganddebt/Travelforless/P36628.asp
+http://moneycentral.msn.com/content/Taxes/Cutyourtaxes/P100609.asp
+http://moneycentral.msn.com/content/Taxes/P80242.asp
+http://moneycentral.msn.com/content/invest/extra/P100059.asp
+http://moneycentral.msn.com/content/invest/extra/P100059.asp?Printer
+http://moneycentral.msn.com/content/invest/extra/P101099.asp?Printer
+http://moneymanager.smh.com.au/articles/2005/06/14/1118645801530.html
+http://moneymanager.smh.com.au/banking/guides/accounts_guide.html
+http://monkeybargym.com/jon.asp
+http://monkeymagic.net/blog/archives/2004/01/14/the_making_of_memory_chapter_4_notes_pt_ii.html
+http://monmouthcounty911memorial.com/index.asp?action=5
+http://monoborg.law.indiana.edu/LawRank/methods.shtml
+http://monographs.iarc.fr/htdocs/monographs/vol57/03-hcbl1.htm
+http://monrovia.usembassy.gov/liberia/July92002.html
+http://monster-island.org/tinashumor/humor/deadmail.html
+http://monstro.com/2005/04/i-hear-what-youre-saying-but-youre.php
+http://monstro.com/2005/04/we-are-what-we-are-willing-to-put-up.php
+http://montevideo.usembassy.gov/usaweb/paginas/424d-00EN.shtml
+http://montevideo.usembassy.gov/usaweb/paginas/435-00EN.shtml
+http://montevideo.usembassy.gov/usaweb/paginas/STATE007869EN.shtml
+http://montgomery.thefreelibrary.com/Anne-Of-Green-Gables/5-1
+http://montrose.date.com/singles/colorado6.htm
+http://moonfishgroup.com/GBP2Commerce/product_reviews_info.php?products_id=57&reviews_id=25
+http://moonic.tblog.com/
+http://moorewatch.com/index.php/C11/
+http://moorewatch.com/index.php/buying_opinions/
+http://moorewatch.com/index.php/stickers_on_tapes/
+http://moorewatch.com/index.php/warning_to_all/
+http://moorewatch.com/index.php/weblog/C11/
+http://moorewatch.com/index.php/weblog/C11/P0/
+http://moorewatch.com/index.php/weblog/C11/index.php/weblog/privacy/
+http://moorewatch.com/index.php/weblog/buying_opinions/
+http://moorewatch.com/index.php/weblog/comments/1024/
+http://moorewatch.com/index.php/weblog/comments/1158/
+http://moorewatch.com/index.php/weblog/comments/1169/
+http://moorewatch.com/index.php/weblog/comments/1196/
+http://moorewatch.com/index.php/weblog/comments/1377/
+http://moorewatch.com/index.php/weblog/comments/347/
+http://moorewatch.com/index.php/weblog/comments/537/
+http://moorewatch.com/index.php/weblog/comments/796/
+http://moorewatch.com/index.php/weblog/comments/796/P50/
+http://moorewatch.com/index.php/weblog/comments/blegging_time/
+http://moorewatch.com/index.php/weblog/comments/keep_on_lying_in_the_free_world/
+http://moorewatch.com/index.php/weblog/comments/the_lying_liar1/
+http://moorewatch.com/index.php/weblog/does_michael_moore_ineed_i/
+http://moorewatch.com/index.php/weblog/warning_to_all/
+http://moorewatch.com/index.php/why_people_fear_guns/
+http://mootpoint.blogdrive.com/
+http://moreena.blogspot.com/2003_08_01_moreena_archive.html
+http://morethandonuts.blogspot.com/archives/2005_01_01_morethandonuts_archive.html
+http://morganwebb.textamerica.com/?r=2603944
+http://morganwebb.textamerica.com/?r=2603944&_go=act.lc.head
+http://morganwebb.textamerica.com/details/?r=2603944
+http://moritzlaw.osu.edu/admissions/academics/requirements.html
+http://moritzlaw.osu.edu/lawjournal/rose.htm
+http://morningsentinel.mainetoday.com/news/local/1362398.shtml
+http://mortgage-x.com/general/indexes/libor.asp
+http://mortgage-x.com/library/loans.htm
+http://mortgage.mentor4inc.com/Recruiting-Staffing/Default.aspx
+http://mortgages.interest.com/content/refinance/refinance_qanda.asp
+http://moses.creighton.edu/JRS/2002/2002-r4.html
+http://mossback.org/
+http://mostlyglass.com/new_at_mostly_glass.htm
+http://motherdaughterrelations.com/soupstory.html
+http://motor.insurancenow.com/
+http://motorcycleaupairboy.com/interviews/1990/mozzer.htm
+http://motorcycleinfo.calsci.com/Tickets.html
+http://motoring.asia1.com.sg/cgi-bin/motorbb/ultimatebb.cgi?ubb=reply;f=7;t=001962
+http://motoring.asia1.com.sg/cgi-bin/motorbb/ultimatebb.cgi?ubb=reply;f=7;t=001998
+http://motoring.asiaone.com.sg/articles/O_20050524_002.html
+http://motoring.timesofmalta.com/article.php?id=655
+http://motorpsycho.fix.no/thisis/media/pulsinter5_01_eng.htm
+http://motortrend.com/future/concepts/112_0109futcruis/
+http://motortrend.com/roadtests/sedan/112_0407_first_kia/
+http://mountain-realty-guide.com/listings/GA/BlueRidge/102809-ga-blairsville-union-county-houses-homes-for-sale.htm
+http://mountain-realty-guide.com/listings/GA/BlueRidge/97978-ga-blairsville-private-new-mountain-view-cabin-for-sale.htm
+http://mousetrap-cars.com/distance_pics.htm
+http://movetocanada.blogware.com/blog/_archives/2004/11/23/189614.html
+http://movie-reviews.colossus.net/movies/b/beautiful_mind.html
+http://movie-reviews.colossus.net/movies/b/black_hawk.html
+http://movie-reviews.colossus.net/movies/b/bowling_columbine.html
+http://movie-reviews.colossus.net/movies/c/chocolat.html
+http://movie-reviews.colossus.net/movies/g/garden_state.html
+http://movie-reviews.colossus.net/movies/h/heavy.html
+http://movie-reviews.colossus.net/movies/p/psycho98.html
+http://movie-reviews.colossus.net/movies/s/shaft.html
+http://movie-reviews.colossus.net/movies/s/snow_falling.html
+http://movie-reviews.colossus.net/movies/t/total_recall.html
+http://movie-reviews.colossus.net/movies/w/whats_eating.html
+http://movieextras.ie/MovieExtras/ME/info/SiteFAQ.html
+http://moviepoopshoot.com/comics101/11.html
+http://movies.about.com/od/beyondthesea/a/beyondks121004_4.htm
+http://movies.about.com/od/sideways/a/sideth101204.htm
+http://movies.bizhat.com/review_god_only_knows.php
+http://movies.dcealumni.com/archives/2301-yash-raj-to-distribute-my-brother-nikhil/
+http://movies.go.com/marketplace/details?asin=B0007TKNIS&allreviews=true
+http://movies.go.com/moviesdynamic/intheaters
+http://movies.yahoo.com/mvc/drv?mid=1808436764
+http://movies.yahoo.com/shop?d=hc&id=1800020155&cf=biog&intl=us
+http://movies.yahoo.com/shop?d=hc&id=1800022021&cf=biog&intl=us
+http://movies.yahoo.com/shop?d=hv&cf=info&id=1808529211
+http://movies.yahoo.com/shop?d=hv&id=1808529211&cf=info&intl=us
+http://movies.yahoo.com/shop?id=1800025331&d=hv&cf=info
+http://movies2.nytimes.com/gst/movies/movie.html?v_id=129691
+http://movies2.nytimes.com/gst/movies/movie.html?v_id=283264
+http://moviesonline.ca/
+http://movietrak.dvds365.com/action/films~search/filter_star/Luther%20Adler/
+http://movietrak.dvds365.com/action/films~search/filter_star/Mary%20Kay%20Place/
+http://movietrak.dvds365.com/action/films~search/filter_star/Mary%20Steenburgen/
+http://movieweb.com/forums/viewtopic.php?t=1715&postdays=0&postorder=asc&start=15
+http://movieweb.com/forums/viewtopic.php?t=1715&start=15
+http://movieweb.com/movies/film.php?1346
+http://movieweb.com/movies/film.php?1812
+http://movieweb.com/movies/film.php?344
+http://movieweb.com/movies/film.php?588
+http://moving-car.ffind.servebeer.com/
+http://movingparts.net/index.php?cat=10
+http://mowabb.com/ai/archives/week_2004_04_18.html
+http://mp3.about.com/
+http://mp_pollett.tripod.com/rione01.htm
+http://mprofaca.cro.net/al_zarqawi.html
+http://mpt.net.nz/archive/2004/02/16/os-x
+http://mpt.net.nz/archive/2005/04/11/ubuntu
+http://mpws01.rsmi.com/Network/rsmmnet_pub.nsf/pages/strategicalliances?OpenDocument
+http://mrbeaks.typepad.com/for_no_good_reason/
+http://mrbeaks.typepad.com/for_no_good_reason/2005/01/
+http://mrbehi.blogs.com/i/2005/06/you_snooze_or_n.html
+http://mrblunt.com/forums/archive/index.php/t-68149.html
+http://mrbobhatesyou.blogspot.com/2005_03_01_mrbobhatesyou_archive.html
+http://mrdebt.phpnuke.org/article3.html
+http://mrgadget.com/flash/%22action.lasso?-database=mrgadget.fp5&-layout=data%20entry&-Search&-response=detail.lasso&ID=2003065
+http://mrlt.allrecipes.com/mr/17046.asp?lnkid=631
+http://mrmom.amaonline.com/information.htm
+http://mrsun.us/
+http://mrsun.us/2005/01/ascd.html
+http://mrsun.us/2005/03/mr-sun-citizen-journalist-starter-pack.html
+http://mrtg.planetmirror.com/pub/descrack/
+http://mrtmag.com/pubsafety/dispatch/radio_iafc_conference_hardly_2/
+http://msa.press.jhu.edu/faq.html
+http://msdn.microsoft.com/SQL/sqlmultidata/default.aspx?pull=/library/en-us/dnvbpj00/html/complex.asp
+http://msdn.microsoft.com/archive/en-us/dnarntpro00/html/wnp0095.asp
+http://msdn.microsoft.com/archive/en-us/dnarstone/html/stone04162001.asp
+http://msdn.microsoft.com/chats/transcripts/enterprise/comm_011905.aspx
+http://msdn.microsoft.com/chats/transcripts/mobileembedded/embedded_080703.aspx
+http://msdn.microsoft.com/coding4fun/gamedevelopment/beginning2/default.aspx
+http://msdn.microsoft.com/coding4fun/webcoder/musiclib/default.aspx
+http://msdn.microsoft.com/library/en-us/cpgenref/html/cpconAsynchronousProgrammingDesignPattern.asp
+http://msdn.microsoft.com/library/en-us/cpguide/html/cpconcreatingkeypairforuseincreatingstrongly-namedassembly.asp
+http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemdrawing.asp
+http://msdn.microsoft.com/library/en-us/dnacc/html/atg_driverchain.asp
+http://msdn.microsoft.com/library/en-us/dnapg/html/apgapx01.asp
+http://msdn.microsoft.com/library/en-us/dndeepc/html/deep051099.asp
+http://msdn.microsoft.com/library/en-us/dndevio/html/msdn_pnpapp.asp
+http://msdn.microsoft.com/library/en-us/dndotnet/html/callcomcomp.asp
+http://msdn.microsoft.com/library/en-us/dngenlib/html/msdn_manamemo.asp
+http://msdn.microsoft.com/library/en-us/dnhess/html/hess071299.asp
+http://msdn.microsoft.com/library/en-us/dnmes2k/html/NewDevFeaturesE2K.asp
+http://msdn.microsoft.com/library/en-us/dnnetsec/html/THCMCh08.asp
+http://msdn.microsoft.com/library/en-us/dnpag/html/despublishsubscribe.asp
+http://msdn.microsoft.com/library/en-us/dnsmart01/html/sa01j1.asp
+http://msdn.microsoft.com/library/en-us/dnvbadev/html/implementingbinarytree.asp
+http://msdn.microsoft.com/library/en-us/dnvs600/html/HungaNotat.asp
+http://msdn.microsoft.com/library/en-us/dnvsent/html/vsent_soadover.asp
+http://msdn.microsoft.com/library/en-us/dnvsent/html/vsts-dev.asp
+http://msdn.microsoft.com/library/en-us/dnwebteam/html/webteam03052001.asp
+http://msdn.microsoft.com/library/en-us/dnwebteam/html/webteam10012002.asp
+http://msdn.microsoft.com/library/en-us/dnwui/html/msdn_subclas3.asp
+http://msdn.microsoft.com/library/en-us/odc_pb2003_ta/html/ODC_PB_MergeSortFilter.asp
+http://msdn.microsoft.com/library/en-us/odc_vsto2003_ta/html/odc_VSTExlWeb.asp
+http://msdn.microsoft.com/library/en-us/stg/stg/ilockbytes_stat.asp
+http://msdn.microsoft.com/library/en-us/vdbref/html/dvovrvisualdatabasetoolsglossary.asp
+http://msdn.microsoft.com/library/en-us/vsintro7/html/vxurffindreplacedialogboxess.asp
+http://msdn.microsoft.com/library/en-us/winsock/winsock/wsaasyncgetprotobynumber_2.asp
+http://msdn.microsoft.com/library/en-us/winsock/winsock/wsaasyncgetservbyname_2.asp
+http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardaccelerators/usingkeyboardaccelerators.asp
+http://msdn.microsoft.com/library/en-us/wmform95/htm/gettingthebestvideoseekingperformance.asp
+http://msdn.microsoft.com/library/en-us/wmisdk/wmi/iwbemservices_getobjectasync.asp
+http://msdn.microsoft.com/library/en-us/xmlsdk/html/xmconincreasingperformancebyusingthexsltemplateobject.asp
+http://msdn.microsoft.com/mobility/understanding/books/default.aspx
+http://msdn.microsoft.com/msdnmag/issues/01/10/BizTalk/default.aspx
+http://msdn.microsoft.com/msdnmag/issues/02/12/XMLSchemaImporting/default.aspx
+http://msdn.microsoft.com/msdnmag/issues/03/09/MicrosoftOffice2003/
+http://msdn.microsoft.com/msdnmag/issues/04/05/visualc2005/default.aspx
+http://msdn.microsoft.com/msdnmag/issues/04/06/NET/
+http://msdn.microsoft.com/msdnmag/issues/04/08/NETMatters/
+http://msdn.microsoft.com/msdnmag/issues/04/11/AttackSurface/default.aspx
+http://msdn.microsoft.com/msdnmag/issues/04/12/ServiceStation/default.aspx
+http://msdn.microsoft.com/msdnmag/issues/05/02/CuttingEdge/default.aspx
+http://msdn.microsoft.com/msdntv/transcripts/20050414IndigoRTTranscript.aspx
+http://msdn.microsoft.com/msdntv/transcripts/20050531SQLServerCCTranscript.aspx
+http://msdn.microsoft.com/vbasic/support/vb6.aspx
+http://msdn.microsoft.com/vstudio/
+http://msdn.microsoft.com/vstudio/java/compare/webserviceperf/default.aspx
+http://msfrizzle.blogspot.com/
+http://msg.calsnet.arizona.edu/fcs/content.cfm?content=facing_challenges
+http://msl1.mit.edu/ESD10/old_block2_index.shtml
+http://msl1.mit.edu/furdlog/index.php?m=20050606
+http://msmvps.com/threlkeld/archive/2004/06/30/9333.aspx
+http://msn-cnet.com.com/4520-10165_7-5699466-1.html
+http://msn-cnet.com.com/4520-10165_7-5699466-1.html?part=msn-cnet&subj=re_5699466-1
+http://msn-cnet.com.com/4520-10602_1-5619858-1.html
+http://msn-cnet.com.com/Microsoft,+Feds+reach+a+deal/2100-1001_3-275317.html
+http://msn.match.com/msn/article.aspx?articleid=3990&articleSrc=5&lid=92
+http://msn.pcworld.com/news/article/0,aid,119357,00.asp
+http://msnbc.msn.com/Default.aspx?id=3449870&p1=0
+http://msnbc.msn.com/Default.aspx?id=3449870&p1=01%7C%7C%7C%7C001/
+http://msnbc.msn.com/ID/6869973/
+http://msnbc.msn.com/id/3080244/default.htm
+http://msnbc.msn.com/id/3225752/
+http://msnbc.msn.com/id/3449870/
+http://msnbc.msn.com/id/4917480/
+http://msnbc.msn.com/id/4999734/site/newsweek/
+http://msnbc.msn.com/id/5445086/
+http://msnbc.msn.com/id/5807600
+http://msnbc.msn.com/id/5900933/
+http://msnbc.msn.com/id/5946244/
+http://msnbc.msn.com/id/6088976/
+http://msnbc.msn.com/id/6346939/
+http://msnbc.msn.com/id/6382571/
+http://msnbc.msn.com/id/6667405/
+http://msnbc.msn.com/id/6676765/
+http://msnbc.msn.com/id/6707542/
+http://msnbc.msn.com/id/6803645/site/newsweek/
+http://msnbc.msn.com/id/6828810/
+http://msnbc.msn.com/id/6886612/
+http://msnbc.msn.com/id/6894643/
+http://msnbc.msn.com/id/6969478/
+http://msnbc.msn.com/id/7160264/site/newsweek/
+http://msnbc.msn.com/id/7276286/
+http://msnbc.msn.com/id/7306433/site/newsweek/
+http://msnbc.msn.com/id/7487935/
+http://msnbc.msn.com/id/7873141/
+http://msnbc.msn.com/id/7992747/
+http://msnbc.msn.com/id/8014670/
+http://msnbc.msn.com/id/8130648/
+http://msnbc.msn.com/id/8130676/
+http://msnbc.msn.com/id/8203257/
+http://msnbc.msn.com/id/8291478/
+http://msnbc.msn.com/id/8331750/
+http://msprozac.zoovy.com/category/collectibles/
+http://mstp.stanford.edu/structure.html
+http://msucares.com/poultry/management/poultry_care.html
+http://msucares.com/pubs/publications/p1557.htm
+http://msvnyc.blogspot.com/2004_05_01_msvnyc_archive.html
+http://msworld.riddlesoft.com/EES.php?s=951
+http://mt.hockeybird.com/archives/002233.html
+http://mt.middlebury.edu/middblogs/ganley/bgblogging/006557.html
+http://mtp.jpl.nasa.gov/notes/sat/sat.html
+http://mtp.jpl.nasa.gov/notes/software/Nomenclature%20and%20Abbreviations.html
+http://mtprof.msun.edu/Spr1997/TROUT-ST.html
+http://mts-ejhg.nature.com/cgi-bin/main.plex?form_type=display_auth_instructions
+http://mtsai.blogspot.com/2005/04/look-at-me.html
+http://mtsu32.mtsu.edu:11091/provision_iii-c.htm
+http://mtsu32.mtsu.edu:11416/information.htm
+http://mtvshop.mtv.com/product.aspx?loc=101&sku=40223627
+http://mtvshop.mtv.com/product.aspx?sku=63909280&loc=33656
+http://mu.ranter.net/theory/economy.html
+http://mua.org.au/war/
+http://muarchives.missouri.edu/c-rg22-s27.html
+http://muextension.missouri.edu/explore/miscpubs/mp0657.htm
+http://muextension.missouri.edu/explore/miscpubs/mp0659.htm
+http://muextension.missouri.edu/explore/regpubs/ncr475.htm
+http://muextension.missouri.edu/xplor/envqual/wq0303.htm
+http://muextension.missouri.edu/xplor/miscpubs/mp0657.htm
+http://multinationalmonitor.org/hyper/mm1094.html
+http://multinationalmonitor.org/hyper/mm1293.html
+http://multinationalmonitor.org/mm2000/00june/bank.html
+http://multinationalmonitor.org/mm2004/09012004/september04corp2.html
+http://mumbai.usconsulate.gov/wwwhwashnews2714.html
+http://muninn.net/blog/2005/06/a-little-history-outside-the-library.html
+http://muninn.net/blog/index.php
+http://muse.jhu.edu/journals/africa_today/v047/47.1brockman.html
+http://muse.jhu.edu/journals/american_indian_quarterly/v028/28.3johansen.html
+http://muse.jhu.edu/journals/american_journal_of_bioethics/v002/2.3whitehouse.html
+http://muse.jhu.edu/journals/american_quarterly/v049/49.3irr.html
+http://muse.jhu.edu/journals/american_quarterly/v052/52.2mechling.html
+http://muse.jhu.edu/journals/american_quarterly/v052/52.3linkon.html
+http://muse.jhu.edu/journals/american_speech/v075/75.4linn.html
+http://muse.jhu.edu/journals/american_speech/v076/76.2canada.html
+http://muse.jhu.edu/journals/asian_theatre_journal/v020/20.1su.html
+http://muse.jhu.edu/journals/biography/v025/25.1reed-danahay.html
+http://muse.jhu.edu/journals/brookings_trade_forum/v2002/2002.1park.html
+http://muse.jhu.edu/journals/buddhist-christian_studies/v023/23.1kaza.html
+http://muse.jhu.edu/journals/callaloo/v018/18.4de_almeida_pereira9.html
+http://muse.jhu.edu/journals/callaloo/v020/20.3gonzalez.html
+http://muse.jhu.edu/journals/callaloo/v025/25.1allen.html
+http://muse.jhu.edu/journals/chaucer_review/v034/34.4longsworth.html
+http://muse.jhu.edu/journals/civil_war_history/v047/47.1egnal.html
+http://muse.jhu.edu/journals/comparative_technology_transfer_and_society/v002/2.2lockemann.html
+http://muse.jhu.edu/journals/cultural_critique/v049/49.1favero.html
+http://muse.jhu.edu/journals/demography/v040/40.2mensch.html
+http://muse.jhu.edu/journals/eighteenth-century_studies/v032/32.1schechter.html
+http://muse.jhu.edu/journals/eighteenth-century_studies/v035/35.1kates.html
+http://muse.jhu.edu/journals/essays_in_medieval_studies/v021/21.1lower.html
+http://muse.jhu.edu/journals/henry_james_review/v017/17.2armstrong.html
+http://muse.jhu.edu/journals/human_biology/v075/75.2manfredini.html
+http://muse.jhu.edu/journals/international_security/v026/26.2rosecrance.html
+http://muse.jhu.edu/journals/israel_studies/v001/1.2levi_faur.html
+http://muse.jhu.edu/journals/israel_studies/v009/9.3karlinsky.html
+http://muse.jhu.edu/journals/journal_of_cold_war_studies/v006/6.2bernhard.html
+http://muse.jhu.edu/journals/journal_of_democracy/v008/8.1murshed.html
+http://muse.jhu.edu/journals/journal_of_general_education/v050/50.1lattuca.html
+http://muse.jhu.edu/journals/journal_of_lesbian_and_gay_studies/v009/9.1clare.html
+http://muse.jhu.edu/journals/journal_of_the_early_republic/v025/25.1roth.html
+http://muse.jhu.edu/journals/journal_of_the_history_of_ideas/v057/57.4fieser.html
+http://muse.jhu.edu/journals/journal_of_the_history_of_ideas/v063/63.3guyer.html
+http://muse.jhu.edu/journals/journal_of_world_history/v008/8.1karras.html
+http://muse.jhu.edu/journals/kritika/v004/4.1baron.html
+http://muse.jhu.edu/journals/lion_and_the_unicorn/v025/25.3logan.html
+http://muse.jhu.edu/journals/literature_and_medicine/v014/14.2caron.html
+http://muse.jhu.edu/journals/literature_and_medicine/v023/23.2rudnytsky.html
+http://muse.jhu.edu/journals/marvels_and_tales/v017/17.1mcgillis.html
+http://muse.jhu.edu/journals/missouri_review/v027/27.1babic.html
+http://muse.jhu.edu/journals/missouri_review/v027/27.3selgin.html
+http://muse.jhu.edu/journals/modernism-modernity/v011/11.2rainey.html
+http://muse.jhu.edu/journals/new_centennial_review/v003/3.3swami.html
+http://muse.jhu.edu/journals/new_literary_history/v035/35.2allen.html
+http://muse.jhu.edu/journals/nwsa_journal/v011/11.2stanovsky.html
+http://muse.jhu.edu/journals/nwsa_journal/v016/16.3specht.html
+http://muse.jhu.edu/journals/performing_arts_journal/v025/25.1attisani.html
+http://muse.jhu.edu/journals/performing_arts_journal/v025/25.2ebrahimian.html
+http://muse.jhu.edu/journals/performing_arts_journal/v027/27.2malina.html
+http://muse.jhu.edu/journals/perspectives_in_biology_and_medicine/v045/45.2montello.html
+http://muse.jhu.edu/journals/perspectives_in_biology_and_medicine/v048/48.1connelly.html
+http://muse.jhu.edu/journals/perspectives_on_science/v010/10.4steinle02.html
+http://muse.jhu.edu/journals/philosophy_and_literature/v029/29.1boyd.html
+http://muse.jhu.edu/journals/philosophy_of_music_education_review/v012/12.2ogawa.html
+http://muse.jhu.edu/journals/portal_libraries_and_the_academy/v001/1.2bazillion.html
+http://muse.jhu.edu/journals/public_culture/v014/14.3bach.html
+http://muse.jhu.edu/journals/radical_history_review/v082/82.1legassick.html
+http://muse.jhu.edu/journals/reviews_in_american_history/v023/23.4schatz.html
+http://muse.jhu.edu/journals/reviews_in_american_history/v024/24.2wrobel.html
+http://muse.jhu.edu/journals/reviews_in_american_history/v028/28.2oshinsky.html
+http://muse.jhu.edu/journals/sais_review/v021/21.1thomas.html
+http://muse.jhu.edu/journals/shofar/v021/21.2miles.html
+http://muse.jhu.edu/journals/sign_language_studies/v002/2.3morgan.html
+http://muse.jhu.edu/journals/social_forces/v080/80.2cotter.html
+http://muse.jhu.edu/journals/social_science_history/v026/26.1rossel.html
+http://muse.jhu.edu/journals/social_text/v018/18.4martin.html
+http://muse.jhu.edu/journals/social_text/v020/20.3butler.html
+http://muse.jhu.edu/journals/south_central_review/v021/21.2lehnhof.html
+http://muse.jhu.edu/journals/southern_literary_journal/v035/35.1mckee.html
+http://muse.jhu.edu/journals/technology_and_culture/v040/40.4bix.html
+http://muse.jhu.edu/journals/technology_and_culture/v041/41.2farnie.html
+http://muse.jhu.edu/journals/the_drama_review/v044/44.1senda.html
+http://muse.jhu.edu/journals/theatre_journal/v049/49.4pr_wasserstein.html
+http://muse.jhu.edu/journals/theatre_journal/v050/50.2pr_wallace.html
+http://muse.jhu.edu/journals/theatre_journal/v053/53.1erdman.html
+http://muse.jhu.edu/journals/theatre_journal/v055/55.3jacobs-huey.html
+http://muse.jhu.edu/journals/theatre_journal/v057/57.1graham-jones.html
+http://muse.jhu.edu/journals/washington_quarterly/v023/23.3gregg.html
+http://muse.jhu.edu/journals/world_politics/v050/50.1bienen.html
+http://muse.jhu.edu/journals/world_politics/v056/56.2anderson.html
+http://muse.jhu.edu/journals/world_politics/v056/56.3brooks.html
+http://museum.gov.ns.ca/museumweekend.htm
+http://museum.msu.edu/museum/msgc/jan04.html
+http://museum.nhm.uga.edu/gawildlife/gawwclassification.html
+http://museum.nhm.uga.edu/gawildlife/glossary/gawwglossary.html
+http://museum.nist.gov/exhibits/timeline/item.cfm?itemId=38
+http://museum.posco.co.kr/museum/docs/eng/newsReview/s91b5060010v.jsp?fd_idx=670&menuNum=4
+http://museumeclipse.org/about/faqs.html
+http://music.channel.aol.com/artist/artistbio.adp?_pgtyp=pdct&artistid=4576
+http://music.com/
+http://music.download.com/tranceauthority/3600-8263_32-100667994.html
+http://music.for-robots.com/
+http://music.ign.com/articles/087/087582p1.html
+http://music.iupui.edu/newsarchive.htm
+http://music.luther.edu/curriculum/courses/
+http://music.luther.edu/curriculum/major/
+http://music.msn.com/album/default.aspx?album=10197846&palbum=41657705&stab=3
+http://music.msn.com/album/default.aspx?album=10197846&palbum=41681413&stab=3
+http://music.msn.com/artist/?artist=16071414&partist=16071665
+http://music.msn.com/artist/?artist=16071414&partist=16072731
+http://music.msn.com/artist/?artist=16071414&partist=16090270
+http://music.msn.com/artist/?artist=16071575&partist=16071402
+http://music.msn.com/artist/?artist=16074062&palbum=10007579
+http://music.msn.com/artist/default.aspx?artist=16360935&stab=4
+http://music.msn.com/list/default.aspx?list=00000000-0201-0001-0000-000000000000&mpc=1&sbc=4&sdr=0
+http://music.yahoo.com/ar-258218-reviews--Nas
+http://music.yahoo.com/ar-289282-bio--Britney-Spears
+http://music.yahoo.com/read/interview/12043624
+http://music.yahoo.com/read/interview/18129661
+http://musicandcats.blogspot.com/2005_01_01_musicandcats_archive.html
+http://musicbeat.searchbeat.com/classical/philip-glass.htm
+http://musicbulletinboards.net/rhythm.htm
+http://musicformaniacs.blogspot.com/
+http://musicians.about.com/library/experts/bass_plus/bl_092402_walkinglines.htm
+http://musicians.about.com/library/lyrics/bllyrics3.htm
+http://musick.blogspot.com/
+http://musicmavericks.publicradio.org/features/essay_gann06.html
+http://musicthing.blogspot.com/2005/06/learn-to-play-guitar-like-superdork.html
+http://musicviews.blogspot.com/2004_01_01_musicviews_archive.html
+http://musil.blogspot.com/2005_05_29_musil_archive.html
+http://muskie.outdoorsfirst.com/articles/02.01.2005/714/Landmeier.and.Rusteberg.Rule.Shelbyville;.Win.2nd.PMTT/index.htm
+http://muslim-canada.org/brochure.htm
+http://muslim-canada.org/sex.htm
+http://mutualfunds.about.com/cs/retirement/a/millionaire.htm
+http://mutualfunds.about.com/od/educateyourself/a/fundmanager.htm
+http://muyil.smv.org/methodology.htm
+http://mva.state.md.us/OnlineServices/Docs/default.htm
+http://mvp.support.microsoft.com/default.aspx?scid=fh;EN-US;mvpins200412&style=flat
+http://mwhodges.home.att.net/education-c.htm
+http://mwhodges.home.att.net/education.htm
+http://mwhodges.home.att.net/new_96_report.htm
+http://mwhodges.home.att.net/reserves.htm
+http://mwhodges.home.att.net/summary-b.htm
+http://mwhodges.home.att.net/summary.htm
+http://mwp01.mwp.hawaii.edu/resources/wm6.htm
+http://mwp01.mwp.hawaii.edu/wm10.htm
+http://mxdj.sys-con.com/read/45623.htm
+http://mxdj.sys-con.com/read/45623_f.htm
+http://mxdj.sys-con.com/read/47583.htm
+http://my.athenet.net/~franklin/
+http://my.brandeis.edu/news/item?news_item_id=103466&show_release_date=1
+http://my.brandeis.edu/news/item?news_item_id=103690&show_release_date=1
+http://my.brandeis.edu/news/item?news_item_id=103855
+http://my.brandeis.edu/profiles/one-profile?profile_id=173
+http://my.core.com/~oldgrendel/spyware.htm
+http://my.dreamwiz.com/muguet51/What's_2_In%20defense_3%20The%20Holy%20Sprit.bak
+http://my.execpc.com/~regent/mfso.htm
+http://my.opera.com/angel292005/journal
+http://my.opera.com/community/dev/operashow/documentation/doc_stylesheets.html
+http://my.sunderland.ac.uk/web/services/hse/she_contents/f_5
+http://my.sunderland.ac.uk/web/services/hse/she_contents/f_5/
+http://my.sunderland.ac.uk/web/services/hse/she_contents/f_5/PageText
+http://my.voyager.net/~stargazer/starmap.html
+http://my.webmd.com/content/Article/72/81519.htm?printing=true
+http://my.webmd.com/content/Article/99/105124.htm?printing=true
+http://my.webmd.com/content/article/11/1671_50455
+http://my.webmd.com/content/article/18/1678_50885
+http://my.webmd.com/content/article/34/1728_90047.htm
+http://my.webmd.com/content/article/65/72756.htm?z=1668_00000_0000_f1_04
+http://my.webmd.com/content/article/72/81519.htm
+http://my.webmd.com/content/pages/16/98759
+http://my.webmd.com/content/pages/16/98759?printing=true
+http://my.webmd.com/hw/diet_and_nutrition/aa158966.asp?printing=true
+http://my.webmd.com/hw/health_guide_atoz/hw3681.asp
+http://my.webmd.com/hw/heart_disease/ue4688.asp
+http://my.webmd.com/hw/raising_a_family/nord976.asp
+http://myblog.de/showpage.php?blog=sadako&id=189956
+http://mycareer.com.au/jobs-for/customer-service-contact-centre.aspx
+http://mycareer.com.au/jobseeker/search/results.aspx?s=107&ag=2036726&pg=3
+http://mycareer.com.au/jobseeker/search/results.aspx?s=107&ag=2036726&pg=5
+http://mycareer.com.au/jobseeker/search/results.aspx?s=113&d=30&pub=7&pg=7
+http://myeurope.eun.org/eun.org2/eun/en/myEurope_News/sub_area.cfm?sa=2332
+http://myeurope.eun.org/ww/en/pub/myeurope/home/archives/practices_archive.htm
+http://myfloridalegal.com/newsrel.nsf/newsreleases/003110DCD3BA5C8E85256F4E0056B86C
+http://myhealth.chh.org/HealthyLiving/mindbody/sept04mindbodyfacingfear.htm
+http://myhero.com/myhero/hero.asp?hero=a_fleming
+http://myhome.elim.net/taekwondo/games/competition.html
+http://myillusion.net/itsumo/index.php?cat=32
+http://myitforum.techtarget.com/blog/rthrelkeld/
+http://mylittlekingdom.blogspot.com/2004/09/cub-soccer.html
+http://mylittlekingdom.blogspot.com/2004_09_01_mylittlekingdom_archive.html
+http://mylittlelifebythesea.blogspot.com/
+http://myliverpoolfc.org/rumours.htm
+http://myliverpoolfc.org/rumours0404.htm
+http://mymwly.blogspot.com/2005/05/mymwly-gets-some-swedish-press.html
+http://mynas.sitesell.com/
+http://myoss.bytebot.net/
+http://mypetjawa.mu.nu/
+http://mypetjawa.mu.nu/archives/047937.php
+http://mypetjawa.mu.nu/archives/063627.php
+http://mypetjawa.mu.nu/archives/064907.php
+http://myprofile.cos.com/banksd1
+http://myprofile.cos.com/botton
+http://myprofile.cos.com/kitchenk88
+http://mypropaganda.co.uk/article
+http://myschoolonline.com/site/0,1876,48624-196200-51-96003,00.html
+http://mysite.verizon.net/dlmadnes/sitebuildercontent/sitebuilderfiles/mabcmembershipappleal.htm
+http://mysite.verizon.net/justreed/irewatchnews.htm
+http://mysite.verizon.net/niteflytes/writings/xmasvillage.htm
+http://mysite.verizon.net/vze85s68/unionsq.htm
+http://mysociety.blogs.com/mysociety/2003/10/database_of_pri.html
+http://myss.sitesell.com/
+http://mystery-school.com/ANFTP-code.htm
+http://mystic.nazirene.org/reincarnation.htm
+http://myvoice.typepad.com/finelines/
+http://myweb.facstaff.wwu.edu/~riedesg/sysadmin1138/archive/2004_05_01_sysadmin.html
+http://myweb.lmu.edu/fjust/Docs/PBC_Interp1.htm
+http://myweb.lsbu.ac.uk/~teamcxx/esdt/esdtCswkReviewTask4.html
+http://myweb.tiscali.co.uk/erthworks/reichian2.htm
+http://myweb.tiscali.co.uk/market/history.htm
+http://myweb.unomaha.edu/~jreameszimmerman/Hephaistion/students.html
+http://mywebpage.netscape.com/GSMYCO/2003-Forays.HTM
+http://mywebpages.comcast.net/Deneb/Steps.htm
+http://mywebpages.comcast.net/bondono2/WebJokes/Joke0002.html
+http://mywebpages.comcast.net/dchappell/weather/wx.htm
+http://mywordsonly.blogspot.com/2005_04_03_mywordsonly_archive.html
+http://nabataea.net/who1.html
+http://nadabs.tripod.com/writing/
+http://nadc.nol.org/conflict_of_interest_laws_.htm
+http://naeblis.cx/rtomayko/
+http://nafe.com/calofeventsSept.php
+http://nafe.com/ef_fall.shtml
+http://naggum.no/lugm-time.html
+http://naggum.no/motivation.html
+http://naic.acf.hhs.gov/pubs/f_issues.cfm
+http://nala.blog-city.com/
+http://namibia.movers.com/international-movers/countryCity-moving.htm
+http://namta.com.tripod.com/namtacouk/id15.html
+http://nancysnatural.expage.com/id25.html
+http://nanebs.nan.usace.army.mil/ViewSolicitation.asp?SolicitationNumber=W912DS-05-B-0007&RegisterOption=True&ID=
+http://nanosft.com/walden/essays/wal8village.html
+http://napps.nwfusion.com/alliance/gaskin.html
+http://nar.oupjournals.org/cgi/content/full/32/suppl_2/W213
+http://narcosphere.narconews.com/story/2004/12/17/124459/55
+http://narmada.org/
+http://narpa.org/integrity.htm
+http://nasadaacs.eos.nasa.gov/articles/2005_malaria.html
+http://nasaexplores.com/show2_5_8a.php?id=03-053&gl=58
+http://nascar.about.com/cs/nascar101/a/getstarted.htm
+http://nascar.about.com/od/buschtracks/
+http://nascar.about.com/od/nextelcuptracks/
+http://nasw.org/const.htm
+http://nasw.org/users/Katwong/mocoherald/tea.html
+http://nasw.org/users/llamberg/larkowl.htm
+http://nat.uca.org.au/assembly2000/reports/c28-TGTMMC.html
+http://natewentbaka.ukepile.com/lyrics/letitout.htm
+http://nation.com.pk/daily/oct-2004/22/index6.php
+http://nation.ittefaq.com/artman/publish/article_15812.shtml
+http://national.clubindustryshow.com/
+http://national.unitedway.org/eway/OnlineAuctions/index.cfm
+http://national.unitedway.org/tsunamiresponse/
+http://nationalatlas.gov/wallmaps.html
+http://nationaldefense.ndia.org/issues/2001/Feb/Psyops_Units.htm
+http://nationaldefense.ndia.org/issues/2002/Jan/French_Firm.htm
+http://nationaldefense.ndia.org/issues/2002/Sep/Transportation_Policy.htm
+http://nationaldefense.ndia.org/issues/2003/Jan/UK_Defense.htm
+http://nationaldefense.ndia.org/issues/2003/Mar/Joint_Bases.htm
+http://nationalforum.com.au/the_domain/archives/currumbin2cook/000164.html
+http://nationalgeographic.com/ngm/0308/resources_cre.html
+http://nationalhogfarmer.com/mag/farming_producer_groups_ask/
+http://nationalhogfarmer.com/mag/farming_reproductive_biology/
+http://nationalreview.com/comment/comment-donnelly032703.asp
+http://nationalreview.com/comment/oppenheimer200501260747.asp
+http://nationalzoo.si.edu/Animals/AfricanSavanna/
+http://nationalzoo.si.edu/Animals/NorthAmerica/BaldEagleRefuge/LucyOnEagles.cfm
+http://nationalzoo.si.edu/Animals/OceanLiving/whataname.cfm
+http://nationalzoo.si.edu/ConservationAndScience/SpotlightOnVetMedicine/
+http://nationalzoo.si.edu/Publications/PressMaterials/Archive04.cfm
+http://nativetimes.com/index.asp?action=frontpage&txt_Section=NEWS&frontpagecategory=17&categoryname=Crime
+http://natsumemaya.terminus.net.au/shopping_mc.htm
+http://naturalhealthline.com/newsletter/1feb01/mccarron.htm
+http://naturalphysiques.blogspot.com/2005/05/new-style-of-writing-and-lot-of.html
+http://nature.ac.uk/browse/333.95099.html
+http://nature.ac.uk/browse/577.69.html
+http://nature.ac.uk/text/browse/333.95099.html
+http://nature.ac.uk/text/browse/577.69.html
+http://nature.berkeley.edu/csrd/technology/cvhtag/minutes32096berkeley.htm
+http://nature.org/wherewework/fieldguide/projectprofiles/ksi.html
+http://nature.org/wherewework/northamerica/states/arkansas/press/press1761.html
+http://natureinstitute.org/pub/ic/ic2/goldstein.htm
+http://natureklog.blogspot.com/
+http://naturenoted.blogspot.com/
+http://nautarch.tamu.edu/anth/sea/volumes.htm
+http://nauticalcharts.noaa.gov/csdl/ctp/metadata_vs.htm
+http://nauticalcharts.noaa.gov/nsd/cphistory.htm
+http://naval.tradeworlds.com/web_category_14644.html
+http://navdweb.spawar.navy.mil/holidays/04PrevAlc/document.asp
+http://nb.wsd.wednet.edu/big6/big6_resources.htm
+http://nbr.infometrics.co.nz/teachers-pay--flick-a-coin_105.html
+http://nc.easterseals.com/site/PageServer?pagename=NCDR_homepage
+http://ncam.wgbh.org/resources/talkingmenus/practices.html
+http://ncas.sawco.com/condon/text/case17.htm
+http://ncb.intnet.mu/audit/rep00/pmo.htm
+http://ncb.intnet.mu/ivtb/ft_hotel2.htm
+http://nccam.nih.gov/about/advisory/capcam/minutes/1999july.html
+http://nccam.nih.gov/about/advisory/capcam/minutes/2000sept.htm
+http://nccam.nih.gov/health/acupuncture/
+http://nccam.nih.gov/health/backgrounds/mindbody.htm
+http://nccam.nih.gov/health/stjohnswort/
+http://nccanch.acf.hhs.gov/pubs/otherpubs/il/execsum.cfm
+http://nccic.org/ccpartnerships/facts/fs4.htm
+http://ncehr.medical.org/english/communique/calndr_e.html
+http://nces.ed.gov/naal/resources/execsumm.asp
+http://nces.ed.gov/programs/digest/d95/lta.asp
+http://nces.ed.gov/programs/projections/ch_7.asp
+http://nces.ed.gov/pubs2005/tech_suite/part_2c.asp
+http://nces.ed.gov/pubs98/teaching9394/chapter2.asp
+http://nces.ed.gov/pubs98/tech/7.asp
+http://nces.ed.gov/pubs98/twelfth/chap4.asp
+http://nces.ed.gov/pubsearch/search.asp?searchcat=subjectindex&L1=42&L2=0
+http://nces.ed.gov/surveys/frss/publications/1999080/6.asp
+http://ncis.gov.uk/ukta/2003/threat05.asp
+http://ncqlp.org/certification/intern.html
+http://ncronline.org/NCR_Online/archives2/2005a/031105/031105s.htm
+http://ncronline.org/NCR_Online/archives2/2005b/042905/042905i.php
+http://ncronline.org/NCR_Online/archives2/2005b/061705/061705z.htm
+http://ncrve.berkeley.edu/AllInOne/MDS-1047.html
+http://ncrve.berkeley.edu/ST1.1/NCPQVEStandards.html
+http://ncrve.berkeley.edu/ST2.1/NCPQStandards.html
+http://nctimes.com/
+http://ne.essortment.com/birdsshelter_rjmr.htm
+http://neaap.ncat.org/national/sept03-nn.htm
+http://nealpollack.com/archives/2005/05/
+http://nearsf.astate.edu/Junior%20Academy.htm
+http://neasimone.com/bkexcerpt.html
+http://nebraska.uscity.net/Tools/Power/
+http://ned.ucam.org/~sdh31/misc/destroy.html
+http://nedv.net/kids/museums.html
+http://neebelung.blogspot.com/
+http://nefac.net/node/1416
+http://nefertiti.iwebland.com/funerary_practices/judgment.htm
+http://nefertiti.iwebland.com/people/citizens.htm
+http://nefertiti.iwebland.com/timelines/topics/workrelations.htm
+http://negroplease.typepad.com/my_weblog/
+http://negroplease.typepad.com/my_weblog/2003/07/where_is_the_lo_1.html
+http://negroplease.typepad.com/my_weblog/2003/09/
+http://negroplease.typepad.com/my_weblog/2005/01/52_books_in_52_.html
+http://nehemiah.gospelcom.net/badday.htm
+http://nehemiah.gospelcom.net/kgwxchap.htm
+http://nehemiah.gospelcom.net/playing.htm
+http://nehemiah.gospelcom.net/suggest3.htm
+http://neic.usgs.gov/neis/eq_depot/usa/1886_09_01.html
+http://neighbors.columbia.edu/aboutus/aboutUsSearchResults.php?projectID=1000032&sectionName=campusplanning
+http://neighbors.columbia.edu/general/faq.php?rNavID=5.0&faqID=1000013&sectionName=campusplanning
+http://neighbourhood.statistics.gov.uk/ShowMetaData.asp?tn=Product&id=9502
+http://nelc.osu.edu/courses/Persian.htm
+http://neo.jpl.nasa.gov/risk/doc/sentry_faq.html
+http://neon.polkaroo.net/~mhoye/blarg/archives/2005_05.php
+http://neowin.net/
+http://neowin.net/comments.php?id=23683&category=main
+http://neptune.spacebears.com/cars/stories/oil-life.html
+http://net-burst.net/book/c13.htm
+http://netaloid.com/index.php/archives/category/science/
+http://netlist.co.nz/gardens/RoseGarden/WinterCare.htm
+http://netmedia.co.uk/pages/halls-booking-system.htm
+http://netrn.net/spywareblog/archives/2004/08/27/user-reports-damage-done-by-adwarespy-false-positives/
+http://netscape.bhg.com/bhg/story.jhtml?storyid=/templatedata/bhg/story/data/treesshrubsqa_02242004.xml&catref=bcat12&page=2
+http://netscape.lhj.com/bhg/story.jhtml?storyid=/templatedata/bhg/story/data/treesshrubsqa_02242004.xml&catref=bcat12&page=2
+http://netsquirrel.com/roadmap96/map20.html
+http://netti.nic.fi/~bcassidy/moosehunting.html
+http://netwinsite.com/dmailweb/cwm_user.htm
+http://networkingpipeline.com/57701421
+http://neuag.gn.apc.org/archive/RestLink.html
+http://neuro-mancer.mgh.harvard.edu/ubb/Forum108/HTML/006388.html
+http://neuro-mancer.mgh.harvard.edu/ubb/Forum129/HTML/000129.html
+http://neuro-mancer.mgh.harvard.edu/ubb/Forum152/HTML/000142.html
+http://neuro-mancer.mgh.harvard.edu/ubb/Forum51/HTML/001510.html
+http://neuro-mancer.mgh.harvard.edu/ubb/Forum82/HTML/000103.html
+http://neuro-mancer.mgh.harvard.edu/ubb/Forum82/HTML/000520.html
+http://neuro-mancer.mgh.harvard.edu/ubb/Forum97/HTML/000014.html
+http://neuro-mancer.mgh.harvard.edu/ubb/Forum99/HTML/005902.html
+http://neuro-www.mgh.harvard.edu/forum/SpeechDisordersF/8.24.982.19PMHelpConfused.2yro
+http://neuro-www.mgh.harvard.edu/forum_2/OCDF/7.16.995.07PMSkin-Picking.html
+http://neuro.med.harvard.edu/site/dh/b40.htm
+http://neverdream.com/ArchiveList/092603.html
+http://new-parents.adoption.com/
+http://new.albanywifi.com/
+http://new.channel5belize.com/index.php
+http://new.theleopard.org/html/rules.php
+http://newark.rutgers.edu/~hbf/menhaden.htm
+http://newbieclub.com/efncopy/
+http://newdeal.feri.org/power/pwr1-07.htm
+http://newdeal.feri.org/wallace/haw13.htm
+http://newflux.blogspot.com/
+http://newmedia.umaine.edu/stillwater/
+http://newmexiken.com/archives/issues_of_the_day/index.php
+http://newmusicbox.org/article.nmbx?id=4261
+http://newpaper.asia1.com.sg/learning/story/0,4136,89905,00.html
+http://newpaper.asia1.com.sg/news/story/0,4136,89283,00.html
+http://newpaper.asia1.com.sg/news/story/0,4136,90538,00.html
+http://news-info.wustl.edu/cat/page/normal/135.html
+http://news-info.wustl.edu/feature/1999/JuneJuly99-drivers.html
+http://news-info.wustl.edu/group/page/normal/100.html
+http://news-info.wustl.edu/group/page/normal/7.html?s=pages&n=51
+http://news-info.wustl.edu/news/page/normal/575.html
+http://news-service.stanford.edu/news/1997/november12/teenmusic.html
+http://news-service.stanford.edu/news/1997/november5/gradcrunch.html
+http://news-service.stanford.edu/news/2001/november14/ammerman.html
+http://news-service.stanford.edu/news/2001/november28/shenoy-1128.html
+http://news-service.stanford.edu/news/february14/minutes-214.html
+http://news-service.stanford.edu/news/january31/minutes-131.html
+http://news-service.stanford.edu/news/october4/minutes-104.html
+http://news.adventist.org/data/2001/03/0988232042/index.html.en
+http://news.adventist.org/data/2005/01/1108493577/index.html.en
+http://news.amnesty.org/index/ENGMDE14310320042004
+http://news.amnesty.org/mav/index/ENGACT770342004
+http://news.bbc.co.uk/1/hi/business/1640869.stm
+http://news.bbc.co.uk/1/hi/business/1935546.stm
+http://news.bbc.co.uk/1/hi/business/2088090.stm
+http://news.bbc.co.uk/1/hi/business/3169611.stm
+http://news.bbc.co.uk/1/hi/business/3516041.stm
+http://news.bbc.co.uk/1/hi/business/3701070.stm
+http://news.bbc.co.uk/1/hi/business/3703496.stm
+http://news.bbc.co.uk/1/hi/business/3721644.stm
+http://news.bbc.co.uk/1/hi/business/3724357.stm
+http://news.bbc.co.uk/1/hi/business/3736964.stm
+http://news.bbc.co.uk/1/hi/business/3750745.stm
+http://news.bbc.co.uk/1/hi/business/3953907.stm
+http://news.bbc.co.uk/1/hi/business/4076106.stm
+http://news.bbc.co.uk/1/hi/business/4195241.stm
+http://news.bbc.co.uk/1/hi/business/4223181.stm
+http://news.bbc.co.uk/1/hi/business/4353503.stm
+http://news.bbc.co.uk/1/hi/business/4367197.stm
+http://news.bbc.co.uk/1/hi/business/4480897.stm
+http://news.bbc.co.uk/1/hi/business/4485361.stm
+http://news.bbc.co.uk/1/hi/business/4542913.stm
+http://news.bbc.co.uk/1/hi/business/4545123.stm
+http://news.bbc.co.uk/1/hi/business/4553933.stm
+http://news.bbc.co.uk/1/hi/business/4598789.stm
+http://news.bbc.co.uk/1/hi/business/4602815.stm
+http://news.bbc.co.uk/1/hi/education/1689966.stm
+http://news.bbc.co.uk/1/hi/education/1960469.stm
+http://news.bbc.co.uk/1/hi/education/1960475.stm
+http://news.bbc.co.uk/1/hi/education/2479189.stm
+http://news.bbc.co.uk/1/hi/education/2601831.stm
+http://news.bbc.co.uk/1/hi/education/2794289.stm
+http://news.bbc.co.uk/1/hi/education/3645278.stm
+http://news.bbc.co.uk/1/hi/education/4100936.stm
+http://news.bbc.co.uk/1/hi/education/4117997.stm
+http://news.bbc.co.uk/1/hi/education/4258011.stm
+http://news.bbc.co.uk/1/hi/education/4291459.stm
+http://news.bbc.co.uk/1/hi/education/655551.stm
+http://news.bbc.co.uk/1/hi/england/4104096.stm
+http://news.bbc.co.uk/1/hi/england/gloucestershire/4334365.stm
+http://news.bbc.co.uk/1/hi/england/london/3199594.stm
+http://news.bbc.co.uk/1/hi/england/nottinghamshire/4091178.stm
+http://news.bbc.co.uk/1/hi/england/oxfordshire/3435713.stm
+http://news.bbc.co.uk/1/hi/entertainment/arts/3550924.stm
+http://news.bbc.co.uk/1/hi/entertainment/film/4510703.stm
+http://news.bbc.co.uk/1/hi/entertainment/film/4529451.stm
+http://news.bbc.co.uk/1/hi/entertainment/film/4547707.stm
+http://news.bbc.co.uk/1/hi/entertainment/music/2220117.stm
+http://news.bbc.co.uk/1/hi/entertainment/music/3917949.stm
+http://news.bbc.co.uk/1/hi/entertainment/reviews/1866279.stm
+http://news.bbc.co.uk/1/hi/entertainment/tv_and_radio/2157275.stm
+http://news.bbc.co.uk/1/hi/entertainment/tv_and_radio/4102712.stm
+http://news.bbc.co.uk/1/hi/health/2703529.stm
+http://news.bbc.co.uk/1/hi/health/2972471.stm
+http://news.bbc.co.uk/1/hi/health/3608931.stm
+http://news.bbc.co.uk/1/hi/health/4115506.stm
+http://news.bbc.co.uk/1/hi/health/4203625.stm
+http://news.bbc.co.uk/1/hi/health/4232009.stm
+http://news.bbc.co.uk/1/hi/help/rss/default.stm
+http://news.bbc.co.uk/1/hi/in_depth/education/2003/he_overview/2685753.stm
+http://news.bbc.co.uk/1/hi/magazine/4138095.stm
+http://news.bbc.co.uk/1/hi/magazine/4149835.stm
+http://news.bbc.co.uk/1/hi/magazine/4617315.stm
+http://news.bbc.co.uk/1/hi/northern_ireland/2888463.stm
+http://news.bbc.co.uk/1/hi/northern_ireland/4122703.stm
+http://news.bbc.co.uk/1/hi/northern_ireland/4191453.stm
+http://news.bbc.co.uk/1/hi/northern_ireland/4282073.stm
+http://news.bbc.co.uk/1/hi/northern_ireland/4577529.stm
+http://news.bbc.co.uk/1/hi/programmes/breakfast_with_frost/2695903.stm
+http://news.bbc.co.uk/1/hi/programmes/breakfast_with_frost/3990069.stm
+http://news.bbc.co.uk/1/hi/programmes/correspondent/2372457.stm
+http://news.bbc.co.uk/1/hi/programmes/crossing_continents/europe/392324.stm
+http://news.bbc.co.uk/1/hi/programmes/crossing_continents/europe/556927.stm
+http://news.bbc.co.uk/1/hi/programmes/inside_money/3151685.stm
+http://news.bbc.co.uk/1/hi/programmes/the_westminster_hour/3018343.stm
+http://news.bbc.co.uk/1/hi/sci/tech/1740879.stm
+http://news.bbc.co.uk/1/hi/sci/tech/2251386.stm
+http://news.bbc.co.uk/1/hi/sci/tech/2373303.stm
+http://news.bbc.co.uk/1/hi/sci/tech/2764039.stm
+http://news.bbc.co.uk/1/hi/sci/tech/2784227.stm
+http://news.bbc.co.uk/1/hi/sci/tech/3535272.stm
+http://news.bbc.co.uk/1/hi/sci/tech/3997249.stm
+http://news.bbc.co.uk/1/hi/sci/tech/4123826.stm
+http://news.bbc.co.uk/1/hi/sci/tech/4362505.stm
+http://news.bbc.co.uk/1/hi/sci/tech/4563499.stm
+http://news.bbc.co.uk/1/hi/sci/tech/4564477.stm
+http://news.bbc.co.uk/1/hi/sci/tech/864777.stm
+http://news.bbc.co.uk/1/hi/scotland/2555753.stm
+http://news.bbc.co.uk/1/hi/scotland/3685470.stm
+http://news.bbc.co.uk/1/hi/scotland/4111718.stm
+http://news.bbc.co.uk/1/hi/scotland/4287039.stm
+http://news.bbc.co.uk/1/hi/scotland/4361079.stm
+http://news.bbc.co.uk/1/hi/scotland/4483663.stm
+http://news.bbc.co.uk/1/hi/scotland/4541793.stm
+http://news.bbc.co.uk/1/hi/talking_point/2290990.stm
+http://news.bbc.co.uk/1/hi/talking_point/2520961.stm
+http://news.bbc.co.uk/1/hi/talking_point/2729161.stm
+http://news.bbc.co.uk/1/hi/talking_point/2771713.stm
+http://news.bbc.co.uk/1/hi/talking_point/3248715.stm
+http://news.bbc.co.uk/1/hi/talking_point/3583864.stm
+http://news.bbc.co.uk/1/hi/talking_point/3681710.stm
+http://news.bbc.co.uk/1/hi/talking_point/3971429.stm
+http://news.bbc.co.uk/1/hi/talking_point/4041629.stm
+http://news.bbc.co.uk/1/hi/talking_point/4080120.stm
+http://news.bbc.co.uk/1/hi/talking_point/4088590.stm
+http://news.bbc.co.uk/1/hi/talking_point/4095252.stm
+http://news.bbc.co.uk/1/hi/talking_point/4118222.stm
+http://news.bbc.co.uk/1/hi/talking_point/4154385.stm
+http://news.bbc.co.uk/1/hi/talking_point/4235767.stm
+http://news.bbc.co.uk/1/hi/talking_point/4239401.stm
+http://news.bbc.co.uk/1/hi/talking_point/4308369.stm
+http://news.bbc.co.uk/1/hi/talking_point/4436425.stm
+http://news.bbc.co.uk/1/hi/talking_point/4487373.stm
+http://news.bbc.co.uk/1/hi/talking_point/4493769.stm
+http://news.bbc.co.uk/1/hi/talking_point/4602371.stm
+http://news.bbc.co.uk/1/hi/talking_point/4606267.stm
+http://news.bbc.co.uk/1/hi/talking_point/4632159.stm
+http://news.bbc.co.uk/1/hi/talking_point/forum/1960582.stm
+http://news.bbc.co.uk/1/hi/talking_point/forum/2754183.stm
+http://news.bbc.co.uk/1/hi/technology/2621745.stm
+http://news.bbc.co.uk/1/hi/technology/3392733.stm
+http://news.bbc.co.uk/1/hi/technology/3727692.stm
+http://news.bbc.co.uk/1/hi/technology/4101325.stm
+http://news.bbc.co.uk/1/hi/technology/4148473.stm
+http://news.bbc.co.uk/1/hi/technology/4265407.stm
+http://news.bbc.co.uk/1/hi/technology/4431893.stm
+http://news.bbc.co.uk/1/hi/technology/4474143.stm
+http://news.bbc.co.uk/1/hi/technology/4586525.stm
+http://news.bbc.co.uk/1/hi/technology/4607449.stm
+http://news.bbc.co.uk/1/hi/uk/1193810.stm
+http://news.bbc.co.uk/1/hi/uk/1443324.stm
+http://news.bbc.co.uk/1/hi/uk/1873419.stm
+http://news.bbc.co.uk/1/hi/uk/2019180.stm
+http://news.bbc.co.uk/1/hi/uk/2538613.stm
+http://news.bbc.co.uk/1/hi/uk/2710257.stm
+http://news.bbc.co.uk/1/hi/uk/2828945.stm
+http://news.bbc.co.uk/1/hi/uk/3646890.stm
+http://news.bbc.co.uk/1/hi/uk/3915639.stm
+http://news.bbc.co.uk/1/hi/uk/4037873.stm
+http://news.bbc.co.uk/1/hi/uk/4054421.stm
+http://news.bbc.co.uk/1/hi/uk/4083260.stm
+http://news.bbc.co.uk/1/hi/uk/4133987.stm
+http://news.bbc.co.uk/1/hi/uk/4327225.stm
+http://news.bbc.co.uk/1/hi/uk/4412347.stm
+http://news.bbc.co.uk/1/hi/uk_politics/2518877.stm
+http://news.bbc.co.uk/1/hi/uk_politics/3749548.stm
+http://news.bbc.co.uk/1/hi/uk_politics/4026019.stm
+http://news.bbc.co.uk/1/hi/uk_politics/4578889.stm
+http://news.bbc.co.uk/1/hi/uk_politics/4602515.stm
+http://news.bbc.co.uk/1/hi/uk_politics/vote_2005/frontpage/4409935.stm
+http://news.bbc.co.uk/1/hi/uk_politics/vote_2005/frontpage/4449829.stm
+http://news.bbc.co.uk/1/hi/uk_politics/vote_2005/frontpage/4476847.stm
+http://news.bbc.co.uk/1/hi/uk_politics/vote_2005/frontpage/4523415.stm
+http://news.bbc.co.uk/1/hi/uk_politics/vote_2005/frontpage/4523689.stm
+http://news.bbc.co.uk/1/hi/uk_politics/vote_2005/have_your_say/4519517.stm
+http://news.bbc.co.uk/1/hi/uk_politics/vote_2005/issues/4372135.stm
+http://news.bbc.co.uk/1/hi/uk_politics/vote_2005/wales/4523247.stm
+http://news.bbc.co.uk/1/hi/wales/1985931.stm
+http://news.bbc.co.uk/1/hi/wales/2290189.stm
+http://news.bbc.co.uk/1/hi/wales/2987177.stm
+http://news.bbc.co.uk/1/hi/wales/3488440.stm
+http://news.bbc.co.uk/1/hi/wales/3853127.stm
+http://news.bbc.co.uk/1/hi/wales/north_west/4071414.stm
+http://news.bbc.co.uk/1/hi/wales/north_west/4072820.stm
+http://news.bbc.co.uk/1/hi/wales/north_west/4117942.stm
+http://news.bbc.co.uk/1/hi/world/africa/2896793.stm
+http://news.bbc.co.uk/1/hi/world/africa/3679706.stm
+http://news.bbc.co.uk/1/hi/world/africa/4020259.stm
+http://news.bbc.co.uk/1/hi/world/africa/4035701.stm
+http://news.bbc.co.uk/1/hi/world/africa/4073465.stm
+http://news.bbc.co.uk/1/hi/world/africa/4604215.stm
+http://news.bbc.co.uk/1/hi/world/africa/4637069.stm
+http://news.bbc.co.uk/1/hi/world/americas/3523283.stm
+http://news.bbc.co.uk/1/hi/world/americas/3720724.stm
+http://news.bbc.co.uk/1/hi/world/americas/4084996.stm
+http://news.bbc.co.uk/1/hi/world/americas/4392253.stm
+http://news.bbc.co.uk/1/hi/world/americas/4450941.stm
+http://news.bbc.co.uk/1/hi/world/asia-pacific/2989479.stm
+http://news.bbc.co.uk/1/hi/world/europe/2289714.stm
+http://news.bbc.co.uk/1/hi/world/europe/3954327.stm
+http://news.bbc.co.uk/1/hi/world/europe/4092854.stm
+http://news.bbc.co.uk/1/hi/world/europe/4093966.stm
+http://news.bbc.co.uk/1/hi/world/europe/4428149.stm
+http://news.bbc.co.uk/1/hi/world/europe/4552937.stm
+http://news.bbc.co.uk/1/hi/world/europe/4592243.stm
+http://news.bbc.co.uk/1/hi/world/middle_east/3628069.stm
+http://news.bbc.co.uk/1/hi/world/middle_east/4082540.stm
+http://news.bbc.co.uk/1/hi/world/middle_east/4367897.stm
+http://news.bbc.co.uk/1/hi/world/middle_east/4547195.stm
+http://news.bbc.co.uk/1/hi/world/middle_east/737483.stm
+http://news.bbc.co.uk/1/hi/world/south_asia/1735912.stm
+http://news.bbc.co.uk/1/hi/world/south_asia/3014674.stm
+http://news.bbc.co.uk/1/hi/world/south_asia/3995007.stm
+http://news.bbc.co.uk/1/hi/world/south_asia/4087470.stm
+http://news.bbc.co.uk/1/hi/world/south_asia/4182151.stm
+http://news.bbc.co.uk/1/hi/world/south_asia/4192569.stm
+http://news.bbc.co.uk/1/hi/world/south_asia/4566091.stm
+http://news.bbc.co.uk/1/hi/world/south_asia/4572657.stm
+http://news.bbc.co.uk/1/hi/world/south_asia/964914.stm
+http://news.bbc.co.uk/1/low/business/3701070.stm
+http://news.bbc.co.uk/1/low/talking_point/2771713.stm
+http://news.bbc.co.uk/1/low/talking_point/forum/2750107.stm
+http://news.bbc.co.uk/1/low/uk_politics/vote_2005/issues/4372135.stm
+http://news.bbc.co.uk/1/low/uk_politics/vote_2005/wales/4523247.stm
+http://news.bbc.co.uk/1/low/world/south_asia/4470367.stm
+http://news.bbc.co.uk/1/northern_ireland/3604338.stm
+http://news.bbc.co.uk/1/shared/spl/hi/newswatch/online_stats/html/latest.stm
+http://news.bbc.co.uk/2/hi/africa/2756961.stm
+http://news.bbc.co.uk/2/hi/africa/2896793.stm
+http://news.bbc.co.uk/2/hi/africa/4087158.stm
+http://news.bbc.co.uk/2/hi/africa/4096706.stm
+http://news.bbc.co.uk/2/hi/africa/4191885.stm
+http://news.bbc.co.uk/2/hi/africa/4604215.stm
+http://news.bbc.co.uk/2/hi/africa/4637069.stm
+http://news.bbc.co.uk/2/hi/americas/2638437.stm
+http://news.bbc.co.uk/2/hi/americas/3775329.stm
+http://news.bbc.co.uk/2/hi/americas/4075252.stm
+http://news.bbc.co.uk/2/hi/americas/4339511.stm
+http://news.bbc.co.uk/2/hi/americas/4439053.stm
+http://news.bbc.co.uk/2/hi/asia-pacific/4157121.stm
+http://news.bbc.co.uk/2/hi/business/1526604.stm
+http://news.bbc.co.uk/2/hi/business/3440487.stm
+http://news.bbc.co.uk/2/hi/business/3630986.stm
+http://news.bbc.co.uk/2/hi/business/4167633.stm
+http://news.bbc.co.uk/2/hi/business/4367197.stm
+http://news.bbc.co.uk/2/hi/business/4388349.stm
+http://news.bbc.co.uk/2/hi/business/4532617.stm
+http://news.bbc.co.uk/2/hi/business/4602325.stm
+http://news.bbc.co.uk/2/hi/business/4602815.stm
+http://news.bbc.co.uk/2/hi/entertainment/4095074.stm
+http://news.bbc.co.uk/2/hi/entertainment/4489271.stm
+http://news.bbc.co.uk/2/hi/europe/2006507.stm
+http://news.bbc.co.uk/2/hi/europe/3367495.stm
+http://news.bbc.co.uk/2/hi/europe/4592243.stm
+http://news.bbc.co.uk/2/hi/health/2905665.stm
+http://news.bbc.co.uk/2/hi/health/3735897.stm
+http://news.bbc.co.uk/2/hi/health/4088824.stm
+http://news.bbc.co.uk/2/hi/health/4203625.stm
+http://news.bbc.co.uk/2/hi/health/4396387.stm
+http://news.bbc.co.uk/2/hi/middle_east/2871775.stm
+http://news.bbc.co.uk/2/hi/middle_east/4395525.stm
+http://news.bbc.co.uk/2/hi/middle_east/4400801.stm
+http://news.bbc.co.uk/2/hi/programmes/newsnight/3052726.stm
+http://news.bbc.co.uk/2/hi/science/nature/2784227.stm
+http://news.bbc.co.uk/2/hi/science/nature/3662928.stm
+http://news.bbc.co.uk/2/hi/science/nature/4084058.stm
+http://news.bbc.co.uk/2/hi/science/nature/4095360.stm
+http://news.bbc.co.uk/2/hi/science/nature/4097258.stm
+http://news.bbc.co.uk/2/hi/science/nature/4258417.stm
+http://news.bbc.co.uk/2/hi/science/nature/4362505.stm
+http://news.bbc.co.uk/2/hi/science/nature/4384813.stm
+http://news.bbc.co.uk/2/hi/south_asia/1735912.stm
+http://news.bbc.co.uk/2/hi/south_asia/3014674.stm
+http://news.bbc.co.uk/2/hi/south_asia/3995007.stm
+http://news.bbc.co.uk/2/hi/south_asia/4103554.stm
+http://news.bbc.co.uk/2/hi/south_asia/4192569.stm
+http://news.bbc.co.uk/2/hi/south_asia/4470367.stm
+http://news.bbc.co.uk/2/hi/south_asia/4572657.stm
+http://news.bbc.co.uk/2/hi/talking_point/2570613.stm
+http://news.bbc.co.uk/2/hi/talking_point/3248715.stm
+http://news.bbc.co.uk/2/hi/talking_point/4080120.stm
+http://news.bbc.co.uk/2/hi/talking_point/4269753.stm
+http://news.bbc.co.uk/2/hi/talking_point/4632159.stm
+http://news.bbc.co.uk/2/hi/technology/2702889.stm
+http://news.bbc.co.uk/2/hi/technology/4079818.stm
+http://news.bbc.co.uk/2/hi/technology/4088702.stm
+http://news.bbc.co.uk/2/hi/technology/4099802.stm
+http://news.bbc.co.uk/2/hi/technology/4327067.stm
+http://news.bbc.co.uk/2/hi/technology/4472219.stm
+http://news.bbc.co.uk/2/hi/technology/4474143.stm
+http://news.bbc.co.uk/2/hi/technology/4514489.stm
+http://news.bbc.co.uk/2/hi/technology/4540595.stm
+http://news.bbc.co.uk/2/hi/uk_news/2538613.stm
+http://news.bbc.co.uk/2/hi/uk_news/2621581.stm
+http://news.bbc.co.uk/2/hi/uk_news/3383589.stm
+http://news.bbc.co.uk/2/hi/uk_news/3448713.stm
+http://news.bbc.co.uk/2/hi/uk_news/3651482.stm
+http://news.bbc.co.uk/2/hi/uk_news/4412347.stm
+http://news.bbc.co.uk/2/hi/uk_news/education/2053475.stm
+http://news.bbc.co.uk/2/hi/uk_news/england/4104096.stm
+http://news.bbc.co.uk/2/hi/uk_news/england/kent/3619250.stm
+http://news.bbc.co.uk/2/hi/uk_news/england/oxfordshire/3435713.stm
+http://news.bbc.co.uk/2/hi/uk_news/magazine/4149835.stm
+http://news.bbc.co.uk/2/hi/uk_news/magazine/4587629.stm
+http://news.bbc.co.uk/2/hi/uk_news/northern_ireland/3886411.stm
+http://news.bbc.co.uk/2/hi/uk_news/northern_ireland/4217545.stm
+http://news.bbc.co.uk/2/hi/uk_news/politics/vote_2005/frontpage/4449829.stm
+http://news.bbc.co.uk/2/hi/uk_news/politics/vote_2005/frontpage/4476847.stm
+http://news.bbc.co.uk/2/hi/uk_news/politics/vote_2005/have_your_say/4519517.stm
+http://news.bbc.co.uk/2/hi/uk_news/scotland/2226085.stm
+http://news.bbc.co.uk/2/hi/uk_news/scotland/4317469.stm
+http://news.bbc.co.uk/2/hi/uk_news/scotland/4341913.stm
+http://news.bbc.co.uk/2/hi/uk_news/scotland/4635771.stm
+http://news.bbc.co.uk/2/hi/uk_news/wales/2290189.stm
+http://news.bbc.co.uk/2/hi/uk_news/wales/4107949.stm
+http://news.bbc.co.uk/2/hi/uk_news/wales/north_west/4117942.stm
+http://news.bbc.co.uk/2/low/south_asia/4470367.stm
+http://news.bbc.co.uk/2/low/talking_point/2570613.stm
+http://news.bbc.co.uk/2/low/uk_news/politics/1136223.stm
+http://news.bbc.co.uk/cbbcnews/hi/newsid_4080000/newsid_4081100/4081170.stm
+http://news.bbc.co.uk/cbbcnews/hi/newsid_4580000/newsid_4583400/4583407.stm
+http://news.bbc.co.uk/cbbcnews/hi/newsid_4600000/newsid_4605800/4605873.stm
+http://news.bbc.co.uk/go/click/rss/0.91/public/-/1/hi/wales/4107949.stm
+http://news.bbc.co.uk/go/click/rss/0.91/public/-/sport2/hi/other_sports/horse_racing/4197427.stm
+http://news.bbc.co.uk/go/click/rss/1.0/-/1/hi/northern_ireland/4217545.stm
+http://news.bbc.co.uk/go/click/rss/1.0/-/1/hi/uk/4106230.stm
+http://news.bbc.co.uk/go/click/rss/1.0/-/2/hi/africa/4087158.stm
+http://news.bbc.co.uk/go/click/rss/1.0/-/2/hi/talking_point/4602371.stm
+http://news.bbc.co.uk/go/em/-/1/hi/uk_politics/3725380.stm
+http://news.bbc.co.uk/go/rss/-/1/hi/scotland/4545299.stm
+http://news.bbc.co.uk/hi/english/business/newsid_653000/653813.stm
+http://news.bbc.co.uk/hi/english/education/specials/unions99/newsid_315000/315200.stm
+http://news.bbc.co.uk/hi/english/entertainment/new_media/newsid_1866000/1866552.stm
+http://news.bbc.co.uk/hi/english/entertainment/newsid_651000/651057.stm
+http://news.bbc.co.uk/hi/english/health/newsid_1023000/1023366.stm
+http://news.bbc.co.uk/hi/english/health/newsid_1144000/1144872.stm
+http://news.bbc.co.uk/hi/english/health/newsid_1441000/1441898.stm
+http://news.bbc.co.uk/hi/english/health/newsid_1738000/1738487.stm
+http://news.bbc.co.uk/hi/english/health/newsid_771000/771324.stm
+http://news.bbc.co.uk/hi/english/in_depth/northern_ireland/2000/bloody_sunday_inquiry/default.stm
+http://news.bbc.co.uk/hi/english/static/in_depth/uk/2002/budget_2002/be_chancellor/help/1.stm
+http://news.bbc.co.uk/hi/english/uk/newsid_384000/384596.stm
+http://news.bbc.co.uk/hi/english/uk/newsid_89000/89864.stm
+http://news.bbc.co.uk/hi/english/uk/newsid_992000/992144.stm
+http://news.bbc.co.uk/hi/english/uk/northern_ireland/newsid_1886000/1886481.stm
+http://news.bbc.co.uk/hi/english/uk/northern_ireland/newsid_2132000/2132102.stm
+http://news.bbc.co.uk/hi/english/uk/wales/newsid_1872000/1872863.stm
+http://news.bbc.co.uk/hi/english/uk_politics/newsid_1458000/1458049.stm
+http://news.bbc.co.uk/hi/english/uk_politics/talking_politics/newsid_1136000/1136223.stm
+http://news.bbc.co.uk/hi/english/world/americas/newsid_1113000/1113811.stm
+http://news.bbc.co.uk/hi/english/world/europe/newsid_360000/360507.stm
+http://news.bbc.co.uk/hi/english/world/europe/newsid_557000/557332.stm
+http://news.bbc.co.uk/newswatch/ifs/hi/newsid_4070000/newsid_4079100/4079171.stm
+http://news.bbc.co.uk/newswatch/ukfs/hi/newsid_4070000/newsid_4079100/4079171.stm
+http://news.bbc.co.uk/newswatch/ukfs/low/newsid_4070000/newsid_4079100/4079171.stm
+http://news.bbc.co.uk/nolpda/ukfs_news/hi/newsid_4149000/4149835.stm
+http://news.bbc.co.uk/nolpda/ukfs_news/hi/newsid_4393000/4393853.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/april/13/newsid_2524000/2524159.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/april/26/newsid_2503000/2503271.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/august/6/newsid_2527000/2527863.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/december/11/newsid_2546000/2546167.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/december/18/newsid_2538000/2538439.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/february/15/newsid_3529000/3529447.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/july/24/newsid_2515000/2515041.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/november/6/newsid_2538000/2538505.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/october/11/newsid_3714000/3714612.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/october/19/newsid_3112000/3112466.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/october/21/newsid_2489000/2489325.stm
+http://news.bbc.co.uk/onthisday/hi/dates/stories/september/18/newsid_3790000/3790079.stm
+http://news.bbc.co.uk/onthisday/low/dates/stories/november/6/newsid_2538000/2538505.stm
+http://news.bbc.co.uk/onthisday/low/dates/stories/october/11/newsid_3714000/3714612.stm
+http://news.bbc.co.uk/sport1/hi/cricket/3508959.stm
+http://news.bbc.co.uk/sport1/hi/cricket/counties/scotland/4439895.stm
+http://news.bbc.co.uk/sport1/hi/cricket/england/4188581.stm
+http://news.bbc.co.uk/sport1/hi/football/4542681.stm
+http://news.bbc.co.uk/sport1/hi/football/europe/4400139.stm
+http://news.bbc.co.uk/sport1/hi/football/fa_cup/2749401.stm
+http://news.bbc.co.uk/sport1/hi/football/teams/c/clyde/4493441.stm
+http://news.bbc.co.uk/sport1/hi/football/teams/d/dundee_utd/4233093.stm
+http://news.bbc.co.uk/sport1/hi/football/teams/h/heart_of_midlothian/4414691.stm
+http://news.bbc.co.uk/sport1/hi/motorsport/formula_one/3563322.stm
+http://news.bbc.co.uk/sport1/hi/olympics_2004/canoeing/3573578.stm
+http://news.bbc.co.uk/sport1/hi/other_sports/horse_racing/2964323.stm
+http://news.bbc.co.uk/sport1/hi/other_sports/horse_racing/2998381.stm
+http://news.bbc.co.uk/sport1/hi/other_sports/horse_racing/4086904.stm
+http://news.bbc.co.uk/sport1/hi/rugby_union/international/4003989.stm
+http://news.bbc.co.uk/sport1/low/football/europe/4400139.stm
+http://news.bbc.co.uk/sport1/low/football/europe/4579949.stm
+http://news.bbc.co.uk/sport1/low/football/teams/p/portsmouth/4037591.stm
+http://news.bbc.co.uk/sport1/low/motorsport/formula_one/4103892.stm
+http://news.bbc.co.uk/sport1/low/rugby_union/international/4003989.stm
+http://news.bbc.co.uk/sport2/hi/rugby_league/super_league/st_helens/4071038.stm
+http://news.bbc.co.uk/sport2/hi/rugby_union/international/4243757.stm
+http://news.bbc.co.uk/sport2/low/football/teams/m/motherwell/4247255.stm
+http://news.bbc.co.uk/sport2/low/rugby_union/international/weblog/4617911.stm
+http://news.bbc.co.uk/sport3/worldcup2002/hi/matches_wallchart/germany_v_brazil/newsid_2072000/2072282.stm
+http://news.bbc.co.uk/sport3/worldcup2002/hi/sports_talk/newsid_1921000/1921873.stm
+http://news.bbc.co.uk/sport3/worldcup2002/hi/sports_talk/newsid_1921000/1921893.stm
+http://news.bbc.co.uk/sportacademy/hi/sa/athletics/give_it_a_go/newsid_3412000/3412989.stm
+http://news.bbc.co.uk/sportacademy/hi/sa/basketball/give_it_a_go/newsid_3403000/3403953.stm
+http://news.bbc.co.uk/sportacademy/hi/sa/netball/give_it_a_go/newsid_3416000/3416325.stm
+http://news.bbc.co.uk/sportacademy/hi/sa/rugby_union/give_it_a_go/newsid_3363000/3363097.stm
+http://news.bookweb.org/features/1517.html
+http://news.bookweb.org/news/3421.html
+http://news.bostonherald.com/localRegional/view.bg?articleid=57683&format=
+http://news.bostonherald.com/localRegional/view.bg?articleid=57683&format=text
+http://news.bostonherald.com/opinion/view.bg?articleid=69454&format=
+http://news.bostonherald.com/opinion/view.bg?articleid=69454&format=text
+http://news.bostonherald.com/talkBack/index.php?topic=9738.165
+http://news.bostonherald.com/talkBack/index.php?topic=9738.msg255328
+http://news.channels.aol.ca/news/article.adp?id=20050210000009990002
+http://news.cnet.com/news/0-1003-200-5655247.html
+http://news.cnet.com/news/0-1005-200-1551165.html
+http://news.cnet.com/news/0-1005-200-1596934.html
+http://news.cnet.com/news/0-1005-200-2767582.html
+http://news.cnet.com/news/0-1005-200-3665605.html
+http://news.cnet.com/news/0-1005-200-7389552.html
+http://news.com.com/2008-1082-277050.html?legacy=cnet&tag=rc_news
+http://news.com.com/2009-1001-961354.html
+http://news.com.com/2009-1023-5103882.html
+http://news.com.com/2038-12_3-0-topic.html?id=6272&name=Storage+software&tag=st.topic
+http://news.com.com/2060-10787_3-0.html
+http://news.com.com/2060-12_3-7253.html
+http://news.com.com/2100-1001-912128.html
+http://news.com.com/2100-1001-947164.html
+http://news.com.com/2100-1001-955842.html
+http://news.com.com/2100-1006_3-5207837.html?tag=nefd.top
+http://news.com.com/2100-1008_3-5110910.html
+http://news.com.com/2100-1011_3-5075629.html
+http://news.com.com/2100-1016-5060965.html
+http://news.com.com/2100-1016_3-1010981.html
+http://news.com.com/2100-1016_3-5060965.html
+http://news.com.com/2100-1016_3-5060965.html?tag=fd_top
+http://news.com.com/2100-1016_3-5746046.html
+http://news.com.com/2100-1023-872765.html
+http://news.com.com/2100-1025_3-5071108.html
+http://news.com.com/2100-1027_3-5074227.html
+http://news.com.com/2100-7344-5190975.html
+http://news.com.com/2104-1001_3-275677.html
+http://news.com.com/2104-1012_3-5076778.html
+http://news.com.com/5208-1028-0.html?forumID=1&threadID=4783&messageID=28351&start=-150
+http://news.com.com/5208-7351-0.html?forumID=1&threadID=3558&messageID=23705&start=-1
+http://news.com.com/5208-7354-0.html?forumID=1&threadID=4137&messageID=23526&start=-1
+http://news.com.com/ARM+to+put+a+lock+on+mobile+chips/2100-1006_3-1010157.html
+http://news.com.com/Adobe+touts+OS+X+advantage+over+Quark/2100-1040_3-957737.html
+http://news.com.com/Adware+anxiety+gives+Claria+cold+feet/2100-1024_3-5307545.html
+http://news.com.com/After+delays,+Windows+security+update+ready+to+go/2100-1016_3-5300317.html
+http://news.com.com/Analyst+Outsourcing+to+grow+in+fresh+field/2100-7341_3-5719106.html
+http://news.com.com/Antipiracy+bill+targets+technology/2100-1028_3-5238140.html
+http://news.com.com/Apple+unveils+smaller+iPod,+new+software/2100-1045_3-5135865.html
+http://news.com.com/At+tech+firms,+time+again+for+flextime/2100-1022_3-5448994.html
+http://news.com.com/Ballmer+Microsoft+needs+better+sales+pitch/2100-7343_3-5259001.html
+http://news.com.com/Big+Blue+earnings+meet+expectations/2100-1001_3-5192396.html
+http://news.com.com/Big+Blue+files+counterclaims+against+SCO/2100-1016_3-5060965.html
+http://news.com.com/Blogs+and+social+networks+and+wikis,+oh+my/2100-1030_3-5705376.html
+http://news.com.com/CMGI+moves+slightly+despite+downgrades/2100-1023_3-248526.html
+http://news.com.com/Cable+firms+bet+on+broadband+speed,+not+price/2100-1034_3-5089322.html
+http://news.com.com/Cable+joins+broadband+price+war/2100-1034_3-5106326.html
+http://news.com.com/Can+Firefox+outfox+IE+in+browser+wars/2030-1069_3-5616002.html
+http://news.com.com/ChoicePoint+data+theft+widens+to+145,000+people/2100-1029_3-5582144.html
+http://news.com.com/Cisco+investigates+source+code+leak/2100-7349_3-5213724.html
+http://news.com.com/Commentary:+Apple's+missed+opportunity/2030-1042_3-5331861.html?tag=nl
+http://news.com.com/DSL+wars+come+down+to+a+battle+of+the+bundles/2100-1034_3-5445712.html
+http://news.com.com/DVD+price+wars+How+low+can+they+go/2100-1026_3-5439388.html
+http://news.com.com/Damage+control/2009-1001_3-983540.html
+http://news.com.com/Dell+closing+in+on+plans+for+new+U.S.+plant/2100-1003_3-5437137.html
+http://news.com.com/Dell+to+open+new+PC+plant+in+United+States/2100-1003_3-5418321.html
+http://news.com.com/Dell+to+spend+115+million+on+new+plant/2100-1003_3-5445055.html
+http://news.com.com/Developers+get+taste+of+Intel-based+Macs/2100-1016_3-5739589.html
+http://news.com.com/EU+slaps+record+fine+on+Microsoft/2100-7343_3-5178281.html
+http://news.com.com/EUs+statement+on+end+of+Microsoft+investigation/2100-1014_3-5178465.html
+http://news.com.com/Energy+heats+up+high+tech/2009-7337_3-5263772.html
+http://news.com.com/Experts+Next+tsunami+a+matter+of+time/2100-1008_3-5751404.html
+http://news.com.com/France's+Alcatel+eyes+North+American+networking+market/2100-1033_3-243675.html
+http://news.com.com/Friendster+A+little+cash+goes+a+long+way/2100-1026_3-5071021.html
+http://news.com.com/Gates+trots+out+Longhorn/2100-7345_3-5097537.html
+http://news.com.com/Gores+TV+network+set+to+launch+with+Google+tie-in/2100-1047_3-5653913.html
+http://news.com.com/HP+mulls+$18+billion+bid+for+PricewaterhouseCoopers+arm/2100-1017_3-245530.html
+http://news.com.com/Have+e-books+turned+a+page/2100-1025_3-5326015.html
+http://news.com.com/How+much+is+digital+music+worth/2100-1027_3-5117275.html
+http://news.com.com/IBM+pushes+Linux+on+Power+processors/2100-7344_3-5144897.html
+http://news.com.com/IRS+notice+sparks+VoIP+taxation+fears/2100-1036_3-5261200.html
+http://news.com.com/Intel+chips+to+do+double+duty/2100-1006_3-5077336.html
+http://news.com.com/Intel+hastily+redraws+road+maps/2100-1006_3-5207837.html
+http://news.com.com/Is+the+white+box+the+right+box+for+Dell/2100-1042_3-995046.html
+http://news.com.com/Jobs+defends+Apples+record+on+environment/2100-1041_3-5680152.html
+http://news.com.com/Libraries+get+a+break+on+Net+filters/2100-1016_3-5053614.html
+http://news.com.com/Loss+of+contract+may+hit+EDS+earnings/2100-1011_3-5121786.html
+http://news.com.com/Lycos+Europe+denies+attack+on+zombie+army/2100-7349_3-5473005.html
+http://news.com.com/Lycos+Europes+antispam+tool+no+longer+available/2100-7349_3-5476451.html
+http://news.com.com/McAfee+selling+research+arm+to+Sparta/2100-7350_3-5533582.html
+http://news.com.com/Micron+Electronics+makes+final+PC+sale/2100-1001_3-256770.html
+http://news.com.com/Microsoft+meets+the+hackers/2009-1002_3-5747813.html
+http://news.com.com/Microsoft,+Google+may+go+head-to-head/2009-1032_3-1020641.html
+http://news.com.com/Most+dot-coms+sitting+out+the+big+game/2100-1017_3-249920.html
+http://news.com.com/Motorola's+Dragonball+pumps+up+on+ARM/2009-1040_3-249739.html
+http://news.com.com/Music+services+jump+on+iTunes+bandwagon/2100-1027_3-5056162.html
+http://news.com.com/New+Microsoft+Office+faces+dual+obstacles/2100-1001_3-253796.html
+http://news.com.com/New+file+system+has+long+road+to+Windows/2100-1016_3-5487641.html
+http://news.com.com/New+swap+shop+for+Napster+founder/2008-1082_3-5475465.html
+http://news.com.com/News.com+Extra/2001-9373_3-0.html
+http://news.com.com/Nokia+to+open+factory+in+India/2100-1041_3-5473120.html
+http://news.com.com/Offshoring+U.S.+needs+reforms,+not+rhetoric/2009-1070_3-5198156.html
+http://news.com.com/Old-school+theory+is+a+new+force/2009-1001_3-984695.html
+http://news.com.com/Open+Source+Solaris+to+debut+this+year/2100-7344_3-5364052.html
+http://news.com.com/Phone+firms+can't+spare+a+dime/2100-1033_3-241057.html
+http://news.com.com/Push+into+living+room+is+a+gamble/2100-1003_3-5137997.html
+http://news.com.com/Red+Hat+to+serve+Java/2100-7344_3-5288902.html
+http://news.com.com/Red+Hat+tries+again+with+Linux+enthusiasts/2100-7344_3-5534343.html
+http://news.com.com/Shorter+hours+in+software/2100-1022_3-5582885.html
+http://news.com.com/Skype+ready+for+both+telephone+worlds/2100-7352_3-5445922.html
+http://news.com.com/Sprucing+up+open+sources+GPL+foundation/2100-7344_3-5501561.html
+http://news.com.com/States+missed+a+break+in+Microsoft+trial/2100-1001_3-912128.html
+http://news.com.com/Strategies+for+small+fish+in+a+big+pond/2030-1069_3-5326004.html
+http://news.com.com/Students+uncover+dozens+of+Unix+software+flaws/2100-1002_3-5492969.html
+http://news.com.com/Study:+Net+users+spend+less+time+in+%22real%22+world/2100-1023_3-236990.html
+http://news.com.com/Sun+open-source+license+could+mean+Solaris-Linux+barrier/2100-7344_3-5475182.html
+http://news.com.com/Supreme+Court+rules+against+file+swapping/2100-1030_3-5764135.html
+http://news.com.com/The+Google+gods/2009-1023_3-963618.html
+http://news.com.com/The+slow+road+to+Windows+XP/2100-1016_3-5746046.html
+http://news.com.com/The+slow+road+to+Windows+XP/2100-1016_3-5746046.html?part=rss&tag=5746046&subj=news
+http://news.com.com/Understanding+tech+and+terror/2008-1082_3-274708.html
+http://news.com.com/Vonage+to+Uncle+Sam+Hands+off+VoIP/2008-7352_3-5158133.html
+http://news.com.com/Web+on+watch+for+common+enemies/2100-7349_3-5466524.html?tag=nefd.lede
+http://news.com.com/Why+Net+marketers+love+mom/2100-1017_3-900615.html
+http://news.com.com/Wireless+tech+may+hinder+workers+breaks/2100-1022_3-5748579.html
+http://news.com.com/Wireless+tech+may+hinder+workers+breaks/2100-1022_3-5748579.html?part=rss&tag=5748579&subj=news
+http://news.com.com/Year+of+the+Worm/2009-1001_3-254061.html
+http://news.com.com/news/0-1003-200-5067906.html
+http://news.com.com/news/0-1003-201-4591473-0.html
+http://news.com.com/news/0-1004-200-3338556.html
+http://news.com.com/news/0-1005-200-1596934.html
+http://news.com.com/news/0-1005-200-3665605.html
+http://news.com.com/news/0-1005-200-7389552.html
+http://news.com.com/news/0-1006-201-4104737-0.html
+http://news.corporate.findlaw.com/ap_stories/s/2020/2-9-2005/20050209171501_02.html
+http://news.deviantart.com/article/18004/
+http://news.efinancialcareers.com/EMPLOYER_PROFILE_ITEM/newsItemId-18500000000020598
+http://news.efinancialcareers.com/SECTOR_PROFILE_ITEM/newsItemId-16500000000016366
+http://news.enquirer.com/apps/pbcs.dll/article?AID=/20050209/BIZ01/502090342
+http://news.findlaw.com/ap_stories/high_tech/1700/2-2-2005/20050202221502_12.html
+http://news.forum.publicradio.org/article.pl?sid=05/05/02/1837224
+http://news.ft.com/cms/s/05773bca-df1d-11d9-84f8-00000e2511c8.html
+http://news.ft.com/cms/s/0862366a-8445-11d9-ad81-00000e2511c8.html
+http://news.ft.com/cms/s/107f015e-d065-11d9-abb8-00000e2511c8,dwp_uuid=b29636b0-20ee-11d8-81c6-0820abe49a01.html
+http://news.ft.com/cms/s/107f015e-d065-11d9-abb8-00000e2511c8.html
+http://news.ft.com/cms/s/1ea23b3e-3f15-11d9-8e70-00000e2511c8.html
+http://news.ft.com/cms/s/21dded80-d6b3-11d9-b0a4-00000e2511c8.html
+http://news.ft.com/cms/s/24fecf42-e44c-11d9-a754-00000e2511c8.html
+http://news.ft.com/cms/s/2c04d39e-ec5a-11d8-b35c-00000e2511c8.html
+http://news.ft.com/cms/s/329cb864-e1bb-11d9-9460-00000e2511c8.html
+http://news.ft.com/cms/s/3f92052a-6b86-11d9-94dc-00000e2511c8,dwp_uuid=faea3cb6-6893-11d9-9183-00000e2511c8.html
+http://news.ft.com/cms/s/4cd4941e-3cab-11d9-bb7b-00000e2511c8.html
+http://news.ft.com/cms/s/6f92283c-2373-11d9-aee5-00000e2511c8.html
+http://news.ft.com/cms/s/85e93934-d171-11d9-9c1d-00000e2511c8,ft_acl=.html
+http://news.ft.com/cms/s/85e93934-d171-11d9-9c1d-00000e2511c8.html
+http://news.ft.com/cms/s/8ae03004-c943-11d9-b9f4-00000e2511c8.html
+http://news.ft.com/cms/s/99105b1a-d35f-11d9-ad4b-00000e2511c8.html
+http://news.ft.com/cms/s/b4d443ce-e7f6-11d9-9786-00000e2511c8.html
+http://news.ft.com/companies/aerospace
+http://news.ft.com/companies/europe
+http://news.fws.gov/speeches/director2003jan1103.htm
+http://news.fws.gov/speeches/director2004oct22.htm
+http://news.gilbert.org/features/featureReader$4677
+http://news.goldseek.com/DailyReckoning/1079981073.php
+http://news.goldseek.com/DailyReckoning/1106346825.php
+http://news.goldseek.com/DailyReckoning/1117742387.php
+http://news.goldseek.com/RichardDaughty/1079538009.php
+http://news.hst.org.za/view.php3?id=20030826
+http://news.independent.co.uk/low_res/story.jsp?story=647432&host=3&dir=94
+http://news.independent.co.uk/uk/
+http://news.independent.co.uk/uk/crime/index.jsp?page=2
+http://news.independent.co.uk/uk/environment/story.jsp?story=649018
+http://news.independent.co.uk/uk/politics/story.jsp?story=637454
+http://news.independent.co.uk/uk/politics/story.jsp?story=649003
+http://news.independent.co.uk/world/americas/story.jsp?story=649440
+http://news.independent.co.uk/world/middle_east/story.jsp?story=499955
+http://news.independent.co.uk/world/middle_east/story.jsp?story=648976
+http://news.indiainfo.com/2004/11/22/2211bandh.html
+http://news.indiainfo.com/2004/11/22/2211gujbandh.html
+http://news.indiainfo.com/2005/01/03/0301industry.html
+http://news.indiainfo.com/2005/02/01/0102goa.html
+http://news.ists.dartmouth.edu/
+http://news.lp.findlaw.com/ap_stories/a/w/1151/2-8-2005/20050208093030_26.html
+http://news.mamboserver.com/index.php?option=com_content&task=view&id=813&Itemid=46
+http://news.minnesota.publicradio.org/features/2004/09/20_pugmiret_gapdaytonsbluff/
+http://news.minnesota.publicradio.org/features/2005/01/31_pugmiret_wasecapay/
+http://news.minnesota.publicradio.org/features/2005/04/12_robertsont_redlakereopens/
+http://news.minnesota.publicradio.org/features/2005/05/16_zdechlikm_localbiz/
+http://news.mod.uk/news/press/news_press_notice.asp?newsItem_id=1936
+http://news.mod.uk/news/press/news_speech.asp?newsItem_id=473
+http://news.mod.uk/news/press/news_speech.asp?newsItem_id=478
+http://news.mod.uk/news/press/news_speech.asp?newsItem_id=489
+http://news.mod.uk/news/press/news_speech.asp?newsItem_id=493
+http://news.mod.uk/news/press/news_speech.asp?newsItem_id=557
+http://news.mod.uk/news/press/news_speech.asp?newsItem_id=559
+http://news.mod.uk/news/press/news_speech.asp?newsItem_id=659
+http://news.mod.uk/news/press/news_speech.asp?newsItem_id=754
+http://news.mod.uk/news_press_notice.asp?newsItem_id=2070
+http://news.mod.uk/news_press_notice.asp?newsItem_id=498
+http://news.moneycentral.msn.com/briefing/StoryStocks.asp
+http://news.morningstar.com/classroom/article/1,3163,4443-3,00.html
+http://news.morningstar.com/classroom/print_quiz/0,3270,4443,00.html
+http://news.nanoapex.com/modules.php?name=News&file=article&sid=2640
+http://news.nationalgeographic.com/news/2002/10/1022_021022_seatroutfish.html
+http://news.nationalgeographic.com/news/2002/12/1206_021206_IraqArnett.html
+http://news.nationalgeographic.com/news/2002/12/1212_021213_journeyofman_2.html
+http://news.nationalgeographic.com/news/2002/12/1220_021224_reindeerban.html
+http://news.nationalgeographic.com/news/2003/06/0619_030619_killerasteroids.html
+http://news.nationalgeographic.com/news/2003/09/0916_030916_primatepets.html
+http://news.nationalgeographic.com/news/2003/10/1009_031009_moonpower.html
+http://news.nationalgeographic.com/news/2003/12/1203_031203_aidworkers.html
+http://news.nationalgeographic.com/news/2004/02/0219_040219_seacorals.html
+http://news.nationalgeographic.com/news/2004/05/0512_animaloverpasses.html
+http://news.nationalgeographic.com/news/2004/08/0819_040819_nanointernet.html
+http://news.nationalgeographic.com/news/2004/11/1108_041108_north_pole.html
+http://news.nationalgeographic.com/news/2004/11/1124_041124_neanderthals_language.html
+http://news.nationalgeographic.com/news/2004/12/1206_041206_global_warming.html
+http://news.nationalgeographic.com/news/2005/02/0209_050209_octopus.html
+http://news.nationalgeographic.com/news/2005/04/0428_050428_tsunamibuildings.html
+http://news.neilrogers.com/news/articles/2005020502.html
+http://news.netcraft.com/archives/2003/01/
+http://news.netcraft.com/archives/2004/03/25/interview_peter_pathos_president_the_planet.html
+http://news.ninemsn.com.au/article.aspx?id=21321
+http://news.ninemsn.com.au/article.aspx?id=22226
+http://news.ninemsn.com.au/article.aspx?id=46332
+http://news.ninemsn.com.au/article.aspx?id=52424
+http://news.ninemsn.com.au/article.aspx?sectionid=388&subsectionid=645&id=21321
+http://news.ninemsn.com.au/article.aspx?sectionid=391&subsectionid=0&id=22226
+http://news.postnuke.com/PrintArticle2548.html
+http://news.scotsman.com/arts.cfm?id=637342005
+http://news.scotsman.com/celebrities.cfm?id=73672005
+http://news.scotsman.com/columnists.cfm?id=669762005
+http://news.scotsman.com/edinburgh.cfm?id=637342005
+http://news.scotsman.com/edinburgh.cfm?id=667262005
+http://news.scotsman.com/edinburgh.cfm?id=667932005
+http://news.scotsman.com/edinburgh.cfm?id=668072005
+http://news.scotsman.com/education.cfm?id=49242005
+http://news.scotsman.com/education.cfm?id=661192005
+http://news.scotsman.com/features.cfm?id=121552005
+http://news.scotsman.com/features.cfm?id=232472004
+http://news.scotsman.com/features.cfm?id=617802005
+http://news.scotsman.com/features.cfm?id=644042005
+http://news.scotsman.com/features.cfm?id=659422005
+http://news.scotsman.com/features.cfm?id=814602004
+http://news.scotsman.com/health.cfm?id=568892005
+http://news.scotsman.com/health.cfm?id=658042005
+http://news.scotsman.com/index.cfm?id=693952005
+http://news.scotsman.com/inverness.cfm?id=476202005
+http://news.scotsman.com/inverness.cfm?id=481512005
+http://news.scotsman.com/latest.cfm?id=4704587
+http://news.scotsman.com/opinion.cfm?id=669762005
+http://news.scotsman.com/scitech.cfm?id=587132005
+http://news.scotsman.com/scotland.cfm?id=561312005
+http://news.scotsman.com/scotland.cfm?id=637462005
+http://news.scotsman.com/scotland.cfm?id=656452005
+http://news.scotsman.com/scotland.cfm?id=658042005
+http://news.scotsman.com/scotland.cfm?id=658832005
+http://news.scotsman.com/scotland.cfm?id=668102004
+http://news.scotsman.com/topics.cfm?tid=10&id=158012005
+http://news.scotsman.com/topics.cfm?tid=1089&id=1229362004
+http://news.scotsman.com/topics.cfm?tid=1126&id=314602005
+http://news.scotsman.com/topics.cfm?tid=1219&id=85912005
+http://news.scotsman.com/topics.cfm?tid=1234&id=48122005
+http://news.scotsman.com/topics.cfm?tid=1251&id=318262005
+http://news.scotsman.com/topics.cfm?tid=1256&id=282762005
+http://news.scotsman.com/topics.cfm?tid=1271&id=158012005
+http://news.scotsman.com/topics.cfm?tid=1277&id=321202005
+http://news.scotsman.com/topics.cfm?tid=132&id=1213002004
+http://news.scotsman.com/topics.cfm?tid=152&id=265762005
+http://news.scotsman.com/topics.cfm?tid=181&id=609432005
+http://news.scotsman.com/topics.cfm?tid=181&id=663492005
+http://news.scotsman.com/topics.cfm?tid=225&id=592912005
+http://news.scotsman.com/topics.cfm?tid=264&id=211572005
+http://news.scotsman.com/topics.cfm?tid=337&id=549572005
+http://news.scotsman.com/topics.cfm?tid=337&id=567702005
+http://news.scotsman.com/topics.cfm?tid=369&id=640772005
+http://news.scotsman.com/topics.cfm?tid=373&id=1327562004
+http://news.scotsman.com/topics.cfm?tid=374&id=586602002
+http://news.scotsman.com/topics.cfm?tid=374&id=586612002
+http://news.scotsman.com/topics.cfm?tid=44&id=1373742004
+http://news.scotsman.com/topics.cfm?tid=445&id=516752005
+http://news.scotsman.com/topics.cfm?tid=5&id=658442005
+http://news.scotsman.com/topics.cfm?tid=591&id=660672005
+http://news.scotsman.com/topics.cfm?tid=591&id=674372004
+http://news.scotsman.com/topics.cfm?tid=591&id=685522004
+http://news.scotsman.com/topics.cfm?tid=609&id=366302005
+http://news.scotsman.com/topics.cfm?tid=629&id=1226622002
+http://news.scotsman.com/topics.cfm?tid=635&id=606682002
+http://news.scotsman.com/topics.cfm?tid=642&id=587132005
+http://news.scotsman.com/topics.cfm?tid=690&id=651032003
+http://news.scotsman.com/topics.cfm?tid=784&id=265662003
+http://news.scotsman.com/topics.cfm?tid=873&id=280532004
+http://news.scotsman.com/topics.cfm?tid=896&id=986072004
+http://news.scotsman.com/topics.cfm?tid=909&id=239712005
+http://news.scotsman.com/topics.cfm?tid=91&id=1063572004
+http://news.scotsman.com/topics.cfm?tid=922&id=149712004
+http://news.scotsman.com/topics.cfm?tid=926&id=495802005
+http://news.scotsman.com/topics.cfm?tid=950&id=827522003
+http://news.scotsman.com/topics.cfm?tid=978&id=963412003
+http://news.scotsman.com/uk.cfm?id=48122005
+http://news.serbianunity.net/bydate/2005/May_19/29.html
+http://news.siu.edu/focalpoint/oct2002/
+http://news.softpedia.com/newsLatestComments/en
+http://news.spirithit.com/index/north_america/more/canadian_hospital_bans_bedside_bibles/
+http://news.spirithit.com/index/north_america/more/house_resolution_urges_respect_for_koran/
+http://news.surfwax.com/art/files/Pattern_Art.html
+http://news.surfwax.com/authors/files/James_Burke_Book.html
+http://news.surfwax.com/biology/files/Human_Subjects.html
+http://news.surfwax.com/clothing/files/Sleeveless_Clothing.html
+http://news.surfwax.com/collectibles/files/Scottish_Collectibles.html
+http://news.surfwax.com/economics/files/Bilateralism.html
+http://news.surfwax.com/fitness/files/Exercise_Machine.html
+http://news.surfwax.com/gardening/files/Garden_Design.html
+http://news.surfwax.com/gardening/files/Rose_Flowers.html
+http://news.surfwax.com/health/files/Memory_Health.html
+http://news.surfwax.com/history/files/Henry_VII.html
+http://news.surfwax.com/history/files/James_Buchanan_America.html
+http://news.surfwax.com/history/files/William_Tecumseh_Sherman_America.html
+http://news.surfwax.com/law/pubs/Federal_Tort_Claims_Act.html
+http://news.surfwax.com/law/pubs/Forced_Sale.html
+http://news.surfwax.com/movies/files/Ran_Movie.html
+http://news.surfwax.com/sports/files/Rice_Football.html
+http://news.surfwax.com/tech/files/Cassette_Players.html
+http://news.surfwax.com/ushotels/files/Roger_Smith_New_York.html
+http://news.tbo.com/news/MGBKW7VUN8E.html
+http://news.teamxbox.com/comments/8055/Halo-2-Containment-3D-Screenshot/
+http://news.telegraph.co.uk/gardening/main.jhtml?xml=/gardening/2005/02/03/gdown05.xml&sSheet=/gardening/2005/02/04/ixgmain.html
+http://news.telegraph.co.uk/news/main.jhtml?xml=/news/2005/01/13/nharry13.xml
+http://news.thomasnet.com/IMT/archives/2001/07/the_evershrinki.html
+http://news.thomasnet.com/IMT/archives/2005/02/top_ten_predict.html
+http://news.thomasnet.com/IMT/archives/2005/05/the_living_comp.html?WT.mc_t=imt&WT.mc_n=site_entry
+http://news.thomasnet.com/fullstory/14703
+http://news.thomasnet.com/fullstory/18508
+http://news.thomasnet.com/fullstory/29458/2585
+http://news.thomasnet.com/fullstory/450858/1424
+http://news.thomasnet.com/fullstory/450963
+http://news.thomasnet.com/fullstory/451867/1324
+http://news.thomasnet.com/fullstory/457649/writerelease.html
+http://news.thomasnet.com/fullstory/461097
+http://news.thomasnet.com/fullstory/461097/1303
+http://news.thomasnet.com/news/1450/880
+http://news.thomasnet.com/news/1525/100
+http://news.thomasnet.com/news/plant_furnishings_accessories/40
+http://news.ucc.org/index.php?option=com_content&task=view&id=105&Itemid=0
+http://news.ucc.org/index.php?option=com_content&task=view&id=105&Itemid=1
+http://news.uns.purdue.edu/UNS/html4ever/2004/040608.DeBranges.Riemann.html
+http://news.uns.purdue.edu/UNS/html4ever/2005/050112.Richert.odor.html
+http://news.xinhuanet.com/english/20010428/402949.htm
+http://news.xinhuanet.com/english/2005-05/02/content_2908774.htm
+http://news.xinhuanet.com/english/2005-05/23/content_2990285.htm
+http://news.xinhuanet.com/english/2005-06/12/content_3073161.htm
+http://news.xinhuanet.com/english/2005-06/20/content_3112816.htm
+http://news.yahoo.com/
+http://news.yahoo.com/i/1440%3B_ylt=A9FJqaneyndCqKUAexOmOrgF%3B_ylu=X3oDMTA2MnU4czRtBHNlYwNzbg--
+http://news.yahoo.com/news?tmpl=index2&cid=964
+http://news.yahoo.com/news?tmpl=story&cid=578&u=/nm/20050619/ts_nm/iraq_dc_37
+http://news.yahoo.com/news?tmpl=story&u=/afp/20050210/ts_alt_afp/afplifestyleusfashion_050210190701
+http://news.yahoo.com/news?tmpl=story&u=/ap/20050614/ap_on_hi_te/china_microsoft
+http://news.yahoo.com/news?tmpl=story&u=/ap/20050615/ap_on_bi_ge/opec_meeting_67
+http://news.yahoo.com/news?tmpl=story&u=/ap/20050619/ap_on_re_as/japan_nagasaki_a_bomb_4
+http://news.yahoo.com/news?tmpl=story&u=/ap/20050620/ap_on_re_mi_ea/syria_iraq_border
+http://news.yahoo.com/news?tmpl=story&u=/ap/20050620/ap_on_re_mi_ea/syria_iraq_border_1
+http://news.yahoo.com/news?tmpl=story&u=/ap/20050623/ap_on_re_mi_ea/iraq
+http://news.yahoo.com/news?tmpl=story&u=/ap/20050625/ap_on_re_us/half_ton_man
+http://news.yahoo.com/news?tmpl=story&u=/ap/20050625/ap_on_re_us/half_ton_man_1
+http://news.yahoo.com/news?tmpl=story&u=/nm/20050619/ts_nm/iraq_dc
+http://news.yahoo.com/news?tmpl=story&u=/nm/20050621/bs_nm/markets_oil_dc
+http://news.yahoo.com/news?tmpl=story&u=/nm/weather_arlene_dc
+http://news.yahoo.com/s/afp/20050613/tc_afp/chinainternetcompanymicrosoft;_ylt=AsL7orP4gnws5tkilESYvF0jtBAF;_ylu=X3oDMTBiMW04NW9mBHNlYwMlJVRPUCUl
+http://news.yahoo.com/s/afp/20050615/bs_afp/commoditiesenergyoil_050615173323
+http://news.yahoo.com/s/afp/20050617/bs_afp/commoditiesenergyoil_050617212646%3B_ylt=A9FJqZFei7NC6BwA7gumOrgF%3B_ylu=X3oDMTBiMW04NW9mBHNlYwMlJVRPUCUl
+http://news.yahoo.com/s/afp/20050620/sc_afp/environmentwhalingiwc_050620143135
+http://news.yahoo.com/s/afp/20050623/sp_wl_afp/cricketengaus_050623215433
+http://news.yahoo.com/s/afp/20050623/wl_uk_afp/cricketengaus
+http://news.yahoo.com/s/afp/20050623/wl_uk_afp/cricketengaus/nc:732
+http://news.yahoo.com/s/ap/20050614/ap_on_hi_te/aol_s_crumbling_walls
+http://news.yahoo.com/s/ap/20050619/ap_on_bi_ge/oil_prices
+http://news.yahoo.com/s/ap/20050619/ap_on_re_as/japan_nagasaki_a_bomb
+http://news.yahoo.com/s/ap/20050623/ap_on_re_us/missing_scout
+http://news.yahoo.com/s/ap/20050624/ap_on_sp_ho_ne/hkn_lemieux_labor
+http://news.yahoo.com/s/ap/20050625/ap_on_re_us/half_ton_man
+http://news.yahoo.com/s/ap/20050627/ap_on_sp_bo_ne/box_koreas_boxing_diplomacy
+http://news.yahoo.com/s/ap/adelphia_fraud
+http://news.yahoo.com/s/ap/economy
+http://news.yahoo.com/s/ap/hkn_lemieux_labor
+http://news.yahoo.com/s/ap/iraq
+http://news.yahoo.com/s/chitribts/20050623/ts_chicagotrib/airforcesaysnowidespreadreligiousbiasatacademy
+http://news.yahoo.com/s/cpress/20050620/ca_pr_on_na/air_india_cda
+http://news.yahoo.com/s/cpress/20050620/ca_pr_on_wo/air_india_cda
+http://news.yahoo.com/s/cpress/20050623/ca_pr_on_ho/nhl_lockout_buffalo
+http://news.yahoo.com/s/cpress/20050623/ca_pr_on_wo/israel_palestinians
+http://news.yahoo.com/s/cpress/20050623/ca_pr_on_wo/israel_palestinians&printer=1
+http://news.yahoo.com/s/csm/20050609/cm_csm/ycobban09x
+http://news.yahoo.com/s/latimests/losttotheonlylifetheyknew
+http://news.yahoo.com/s/nm/20050601/hl_nm/health_obesity_dc
+http://news.yahoo.com/s/nm/20050612/sc_nm/weather_arlene_dc/nc:1112
+http://news.yahoo.com/s/nm/20050612/ts_nm/weather_arlene_dc_29
+http://news.yahoo.com/s/nm/20050620/ts_nm/security_bush_dc
+http://news.yahoo.com/s/nm/iraq_dc
+http://news.yahoo.com/s/nm/iraq_usa_dc
+http://news.yahoo.com/s/nm/mlb_clemens_dc
+http://news.yahoo.com/s/nm/security_bush_dc
+http://news.yahoo.com/s/nm/weather_arlene_dc
+http://news.yahoo.com/s/sn/20050617/sp_sn/rockiesplanintothinairagain
+http://news.yahoo.com/s/thenation/133360
+http://news.yahoo.com/s/thenation/20050613/cm_thenation/133360
+http://news.yahoo.com/s/ucgg/20050604/cm_ucgg/foreigndonorspressureugandatobemorelikethem
+http://news.yahoo.com/s/ucgg/20050604/cm_ucgg/foreigndonorspressureugandatobemorelikethem/nc:2215
+http://news.yahoo.com/s/usatoday/20050617/tc_usatoday/hydrogenprototypeaclassisatotalgas
+http://news.yahoo.com/s/usatoday/20050617/tc_usatoday/hydrogenprototypeaclassisatotalgas&printer=1
+http://news.yahoo.com/s/usatoday/20050629/bs_usatoday/whitecollarcrimecasesprovedifficulttoprosecute
+http://news.yahoo.com/s/usatoday/20050629/bs_usatoday/whitecollarcrimecasesprovedifficulttoprosecute%3B_ylt=A9FJqabCzcJCiK4AMgqs0NUE%3B_ylu=X3oDMTA3bGI2aDNqBHNlYwM3NDk-
+http://news.yahoo.com/s/usatoday/hydrogenprototypeaclassisatotalgas
+http://news.yahoo.com/s/usnw/20050624/pl_usnw/senate_may_reconsider_voting_on_fuel_economy_standards315_xml
+http://news.yahoo.com/s/zd/20050602/tc_zd/153327
+http://news.zdnet.co.uk/software/0,39020381,2125222,00.htm
+http://news.zdnet.com/2100-1009_22-5458505.html
+http://news.zdnet.com/2100-3513_22-5074227.html?tag=zdfd.newsfeed
+http://news.zdnet.com/2100-3513_22-5375070.html
+http://news.zdnet.com/2100-3513_22-5378366.html
+http://news.zdnet.com/2100-3513_22-5726714.html
+http://news.zdnet.com/2100-3513_22-5746046.html
+http://news.zdnet.com/2100-9584_22-5187609.html
+http://news.zdnet.com/2100-9588_22-5630529.html
+http://news.zdnet.com/2100-9589_22-5658944.html
+http://news.zdnet.com/2100-9589_22-5662226.html
+http://news.zdnet.com/5208-9595-0.html?forumID=1&threadID=8765&messageID=176304&start=-1
+http://news2.news.wisc.edu/whyfiles/212elect_ID/4.html
+http://news24.wordtravels.com/Travelguide/Countries/South+Africa/Regions/Johannesburg
+http://news4colorado.com/campaign2004/local_story_231123027.html
+http://news8austin.com/content/contact_us/news_8_events/
+http://newsarama.com/forums/showthread.php?s=&threadid=23601
+http://newsarama.com/forums/showthread.php?s=&threadid=8533
+http://newsblaster.cs.columbia.edu/dev/archives/2003-07-25-00-15-36/web/summaries/2003-07-25-00-16-37-us.html
+http://newsbureau.upmc.com/MediaKits/Concussion/CJSMConcussionAmnesiaStudy.htm
+http://newsfromrussia.com/science/2004/04/26/53643.html
+http://newsfromrussia.com/science/2004/11/17/57153.html
+http://newsfromrussia.com/science/2004/12/28/57614.html
+http://newsfromrussia.com/world/2004/05/18/53987.html
+http://newsfromrussia.com/world/2005/01/04/57700.html
+http://newsfromrussia.com/world/2005/02/06/58122.html
+http://newsgd.com/specials/deng100thbirthanniversary/biography/200407290012.htm
+http://newsgd.com/travel/toursites/200305120359.htm
+http://newsgrist.typepad.com/underbelly/current_affairs/
+http://newshound.de.siu.edu/online/stories/storyReader$4272
+http://newsinfo.colostate.edu/index.asp?page=news_item_display&news_item_id=1066408489
+http://newsinfo.iu.edu/cat/page/normal/121.html
+http://newsinfo.iu.edu/news/page/normal/1097.html
+http://newsinfo.iu.edu/news/page/normal/1355.html
+http://newsinfo.iu.edu/news/page/normal/531.html
+http://newsinfo.iu.edu/news/page/normal/559.html
+http://newsmax.com/archives/articles/2005/1/27/93054.shtml
+http://newsmax.com/archives/ic/2004/10/24/30416.shtml
+http://newsmax.com/commentmax/get.pl?a=2001/10/5/010750
+http://newsonjapan.com/html/linkbase/Lifestyle/Music/
+http://newspaper.catgames.com/slh_story_2.html
+http://newsroom.wri.org/mediakits_text.cfm?ContentID=704
+http://newsroom.wri.org/newsrelease_text.cfm?NewsReleaseID=24
+http://newstandardnews.net/?refid=u-00000242
+http://newstandardnews.net/alivewires/staff/content/?show_item=1281
+http://newstandardnews.net/content/?action=show_item&itemid=1402
+http://newstandardnews.net/content/?action=show_item&itemid=1860
+http://newstandardnews.net/content/?action=show_item&itemid=918
+http://newstandardnews.net/content/index.cfm/items/1311
+http://newstandardnews.net/content/index.cfm/items/1965
+http://newsthoughts.net/index.php?p=500
+http://newstodaynet.com/190605.htm
+http://newsweaver.ie/bizofemail/e_article000136927.cfm
+http://newsweaver.ie/ralphaverbuch/index000039908.cfm
+http://newswww.bbc.net.uk/1/hi/programmes/3732544.stm
+http://newswww.bbc.net.uk/1/hi/uk/3675961.stm
+http://newswww.bbc.net.uk/1/hi/uk/4412347.stm
+http://newtimes.rway.com/2005/brides05/gown.shtml
+http://newtimes.rway.com/2005/summer05/1000.shtml
+http://newwinnipeg.com/news/info/new-democratic-party-mb.htm
+http://newyork.citysearch.com/profile/7160382
+http://newyork.citysearch.com/profile/7160382/
+http://newyork.citysearch.com/profile/7160382/new_york_ny/stephen_knoll_salon.html
+http://newyork.citysearch.com/review/7160382
+http://newyork.craigslist.org/lgs/
+http://newyorker.com/fact/content/?030901fa_fact1
+http://newyorker.com/online/content/?040913on_onlineonly01
+http://newyorkguide.blogs.com/uknyc/
+http://newyorkmetro.com/nymetro/arts/music/jazz/reviews/4973/
+http://newyorkmetro.com/nymetro/arts/music/pop/reviews/414/
+http://newyorkmetro.com/nymetro/arts/tv/reviews/2782/
+http://newyorkmetro.com/nymetro/arts/tv/reviews/4367/
+http://newyorkmetro.com/nymetro/movies/columns/hollywood/n_9585/
+http://newyorkmetro.com/nymetro/news/media/features/9226/
+http://newyorkmetro.com/nymetro/news/people/columns/intelligencer/n_9160/
+http://newyorkmetro.com/nymetro/news/politics/columns/citypolitic/4559/
+http://newyorkmetro.com/nymetro/news/politics/national/features/10194/index2.html
+http://newyorkmetro.com/nymetro/news/sept11/features/5196/
+http://newyorkmetro.com/nymetro/nightlife/sex/columns/mating/11515/
+http://newyorkmetro.com/nymetro/nightlife/sex/columns/nakedcity/5663/
+http://newyorkmetro.com/nymetro/realestate/columns/realestate/11820/
+http://newyorkmetro.com/nymetro/shopping/fashion/spring05/11014/
+http://nextwave.sciencemag.org/cgi/content/full/2003/12/03/3?ck=nck
+http://nextwave.sciencemag.org/cgi/content/full/2004/10/20/3
+http://nexus.nasa.gov/ESP/SchedulingEngine.aspx
+http://nfapp.east.asu.edu/Newsletters/1997/nov97.htm
+http://nfapp.east.asu.edu/Newsletters/1997/oct97.htm
+http://nfbcal.org/nfbc/journal/fw2004/presmessage.html
+http://nflrc.hawaii.edu/rfl/April2005/chujo/chujo.html
+http://nflrc.hawaii.edu/rfl/April2005/reviews/harvey.html
+http://ngccoin.com/legal.asp
+http://ngeorgia.com/history/recon.html
+http://ngeorgia.com/people/bartram.html
+http://ngeorgia.com/people/gordon.html
+http://ngeorgia.com/people/mcpherson.html
+http://ngin.tripod.com/271002a.htm
+http://ngin.tripod.com/haskins.htm
+http://nh.essortment.com/newbornpuppies_rdsj.htm
+http://nhsc.bhpr.hrsa.gov/applications/lrp_05/h.asp
+http://nhsc.bhpr.hrsa.gov/news/nhscurrent_may_2004.asp
+http://nhse.cs.rice.edu/NHSEreview/CMS/
+http://nhtsa.gov/people/injury/NewmediaForumWeb/MediaForumPlanner/pages/ResearchPlanning.htm
+http://nicedoggie.net/
+http://nicklewis.smartcampaigns.com/node/416
+http://nickm.com/2002/spring/computers/
+http://nickscape.net/recoveryzone/recovery1.htm
+http://nid-34.newsdetail.bc.ndp.ca/
+http://nielsenhayden.com/electrolite/
+http://nielsenhayden.com/electrolite/archives/001487.html
+http://nielsenhayden.com/electrolite/archives/006163.html
+http://nielsenhayden.com/makinglight/archives/002708.html
+http://nielsenhayden.com/makinglight/archives/004641.html
+http://nielsenhayden.com/makinglight/archives/005569.html
+http://nielsenhayden.com/makinglight/archives/006339.html
+http://nielsenhayden.com/makinglight/archives/006346.html
+http://nielsenhayden.com/makinglight/archives/006389.html
+http://nielsenhayden.com/makinglight/archives/006460.html
+http://nifty.nisusnet.com/nifty/Vince_Water/Pottery-Shards/Pottery-Shards-1
+http://nifty.nisusnet.com/nifty/bestiality/dog-tales
+http://nifty.nisusnet.com/nifty/lesbian/young-friends/marie-and-dawn
+http://nigeriasports.com/2276
+http://nigeriavillagesquare1.com/Articles/Abati/2004/08/in-search-of-character.html
+http://niherlas.com/stella/archives/000366.php
+http://nihoshi.com/miblog/
+http://niklovr.tvheaven.com/Jessy/returning.htm
+http://nikondigital.org/articles/digital_lenses.htm
+http://ninr.nih.gov/ninr/about/legislation/transplants.htm
+http://nique.net/issues/1999-08-27/sports/4
+http://nireland.humanists.net/handbk/ulsterskillingfaiths.html
+http://njpo.org/Highstate2635.htm
+http://nkzone.typepad.com/nkzone/
+http://nkzone.typepad.com/nkzone/2004/05/kim_jongil_vs_h.html
+http://nkzone.typepad.com/nkzone/2004/06/pravda_mobile_p.html
+http://nlp.snowseed.com/
+http://nm.water.usgs.gov/nawqa/abstract.moss.html
+http://nma1.us/manage/1997-02/
+http://nmml.afsc.noaa.gov/CetaceanAssessment/bluewhale/bluhabitat.htm
+http://nmp.jpl.nasa.gov/ds1/mrlog.html
+http://nmsantos.com/cgi-local/shop.pl/page%3DRioPuerco11.htm
+http://nmsrfr.com/adv_corner/05%20THE%20MEANING%20OF%20IMMEDIATE%20-%20FEBRUARY%202003.htm
+http://nn.cs.utexas.edu/web-pubs/lissom/CODEDOC/html/inputs_8c-source.html
+http://no-pasaran.blogspot.com/
+http://no-url-left.blogspot.com/
+http://no.speling.org/
+http://nobelprize.org/chemistry/laureates/1904/ramsay-lecture.html
+http://nobelprize.org/chemistry/laureates/1986/lee-bio.html
+http://nobelprize.org/chemistry/laureates/1996/kroto-autobio.html
+http://nobelprize.org/chemistry/laureates/1996/smalley-autobio.html
+http://nobelprize.org/economics/laureates/1970/press.html
+http://nobelprize.org/economics/laureates/1974/hayek-lecture.html
+http://nobelprize.org/economics/laureates/1977/meade-autobio.html
+http://nobelprize.org/economics/laureates/1978/simon-autobio.html
+http://nobelprize.org/economics/laureates/1979/lewis-autobio.html
+http://nobelprize.org/economics/laureates/1979/presentation-speech.html
+http://nobelprize.org/economics/laureates/1987/press.html
+http://nobelprize.org/economics/laureates/1991/press.html
+http://nobelprize.org/economics/laureates/1993/north-autobio.html
+http://nobelprize.org/economics/laureates/1993/press.html
+http://nobelprize.org/economics/laureates/1997/scholes-autobio.html
+http://nobelprize.org/economics/laureates/1999/press.html
+http://nobelprize.org/economics/laureates/2002/public.html
+http://nobelprize.org/economics/laureates/2003/engle-autobio.html
+http://nobelprize.org/medicine/articles/lewis/
+http://nobelprize.org/medicine/laureates/1912/carrel-lecture.html
+http://nobelprize.org/medicine/laureates/1932/press.html
+http://nobelprize.org/medicine/laureates/1932/sherrington-bio.html
+http://nobelprize.org/medicine/laureates/1934/minot-lecture.html
+http://nobelprize.org/medicine/laureates/1936/loewi-lecture.html
+http://nobelprize.org/medicine/laureates/1937/szent-gyorgyi-speech.html
+http://nobelprize.org/medicine/laureates/1951/theiler-lecture.html
+http://nobelprize.org/medicine/laureates/1976/gajdusek-speech.html
+http://nobelprize.org/medicine/laureates/1980/presentation-speech.html
+http://nobelprize.org/medicine/laureates/1989/bishop-autobio.html
+http://nobelprize.org/peace/laureates/1909/press.html
+http://nobelprize.org/peace/laureates/1946/balch-lecture.html
+http://nobelprize.org/peace/laureates/1950/press.html
+http://nobelprize.org/peace/laureates/1963/red-cross-lecture.html
+http://nobelprize.org/peace/laureates/1964/press.html
+http://nobelprize.org/peace/laureates/1970/press.html
+http://nobelprize.org/peace/laureates/1975/press.html
+http://nobelprize.org/peace/laureates/1985/physicians-acceptance.html
+http://nobelprize.org/peace/laureates/1989/presentation-speech.html
+http://nobelprize.org/peace/laureates/1991/presentation-speech.html
+http://nobelprize.org/peace/laureates/1994/arafat-bio.html
+http://nobelprize.org/peace/laureates/1994/presentation-speech.html
+http://nobelprize.org/peace/laureates/1995/pugwash-history.html
+http://nobelprize.org/peace/laureates/1999/msf-lecture.html
+http://nobelprize.org/peace/laureates/2003/presentation-speech.html
+http://nobelprize.org/physics/articles/brink/
+http://nobelprize.org/physics/laureates/1957/lee-speech.html
+http://nobelprize.org/physics/laureates/1980/cronin-autobio.html
+http://nocapital.blogspot.com/
+http://nocapital.blogspot.com/2004_09_19_nocapital_archive.html
+http://nocasinoerie.org/hoytlet1.htm
+http://nochildleft.com/2005/may05foolish.html
+http://noflyingnotights.com/bebold2.html
+http://nofreelist.com/review/?movieid=569
+http://noggs.typepad.com/outsidetext/
+http://noggs.typepad.com/outsidetext/2005/02/
+http://noggs.typepad.com/the_reading_experience/
+http://noggs.typepad.com/the_reading_experience/2004/07/in_one_of_the_m.html
+http://noggs.typepad.com/the_reading_experience/filmfilm_and_literature/
+http://nolomar.nineshadoweyes.com/015.shtml
+http://nolomar.nineshadoweyes.com/046.shtml
+http://nolotech.com/CA/DYOD/
+http://nolotech.com/Yes-Better.html
+http://nomoremister.blogspot.com/
+http://nonaknits.typepad.com/nonaknits/project_this_and_that/
+http://noncorporeal.com/people/pathfinder/shoot_yourself_in_the_foot.html
+http://nonprofit.about.com/od/managinganonprofitorg/a/board_basics.htm
+http://nonprofit.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPATH=JR&Job_DID=J8B5ZD72QKB5Y58GN7Y
+http://nonprofit.careerbuilder.com/np.ic/GeneralLabor.htm
+http://nonprofits.accesscomm.ca/reginaperformingartscentre/Rental_Rates.htm
+http://nontradmedjournals.blog-city.com/read/749986.htm
+http://nontroppo.org/test/
+http://noordinarylove.blogdrive.com/archive/97.html
+http://noosphere.princeton.edu/terror.html
+http://nootropics.com/smartdrugs/brainviagra.html
+http://nopunditintended.com/
+http://norbizness.com/
+http://norbizness.com/archives/001118.html
+http://norbizness.com/archives/001127.html
+http://norbizness.com/archives/cat_operation_shifting_rationale.html
+http://nordic.humanrights.dk/bogbutik/challenges/
+http://normblog.typepad.com/normblog/
+http://normblog.typepad.com/normblog/2005/06/writers_choice_.html
+http://north.cbc.ca/regional/servlet/View?filename=tupic-correnctions-23062005
+http://north.ecc.edu/gis/gis_projects.htm
+http://northcentralkansas.redcross.org/
+http://northeast.nic.in/tea.htm
+http://northernireland.ideasfactory.com/funding_awards/features/ni_feature02.htm
+http://northgateexploration.ca/press_release_files/pr_aug7_2002.html?OpenDocument
+http://northgateexploration.ca/press_release_files/pr_july31.html?OpenDocument
+http://northgateexploration.ca/press_release_files/pr_may7b_2004.htm
+http://northofwrigleyfield.blogspot.com/
+http://northumbria.ac.uk/brochure/visit/el/info_day/openday_individual
+http://northumbria.ac.uk/browse/naa/famous/?view=Standard
+http://northwestvoice.com/page.asp?item=63146
+http://norwesty.blogspot.com/
+http://nosferatu.cas.usf.edu/lis/lis6585/class/tradlit.html
+http://notanotherhollywoodfilm.com/jackie/short_films.html
+http://noted.blogs.com/westcoastmusic/2004/12/dick_heckstalls.html
+http://noteitposts.com/index.php?m=20040613
+http://noteitposts.com/index.php?m=200408
+http://noteitposts.com/index.php?m=20040829
+http://noteitposts.com/index.php?p=612
+http://notesontheatrocities.blogspot.com/
+http://nothing-less.net/!/archives/000803.php
+http://nothingfancy.blogspot.com/
+http://notindifferentnotsceptical.blogspot.com/
+http://nottingham.lta.org.uk/News/050618FinalsDay.htm
+http://novametrix.respironics.com/nova/pr/pr010725.htm
+http://novanewsnet.ukings.ns.ca/nova_news_3588_3865.html
+http://novaspivack.typepad.com/
+http://novaspivack.typepad.com/nova_spivacks_weblog/2004/01/social_networks.html
+http://novaspivack.typepad.com/nova_spivacks_weblog/2004/10/common_antibiot.html
+http://novaspivack.typepad.com/nova_spivacks_weblog/2005/01/whats_after_fol.html
+http://novaspivack.typepad.com/nova_spivacks_weblog/global_brain_and_global_mind/
+http://nowherethoughts.net/sarpysam/
+http://npj.goinfo.com/NPJMain.nsf/0/7198af905bccec3286256af50079046f?OpenDocument
+http://nrc.uchsc.edu/CFOC/HTMLVersion/Chapter_9.html
+http://nri.ucsb.edu/AR/01_director_statement/01_DirState_02_03.htm
+http://nrich.maths.org/public/viewer.php?obj_id=1321&part=index&refpage=monthindex.php
+http://nrims.nsw.gov.au/policies/metadata_policy.html
+http://nrm.massey.ac.nz/changelinks/webware.html
+http://nsarchive.chadwyck.com/icintro.htm
+http://nsarchive.chadwyck.com/nh_intr.htm
+http://nsarchive.chadwyck.com/pdintro.htm
+http://nsit.uchicago.edu/pubs/telebits/index_new.html
+http://nsr.mij.mrs.org/1/20/complete.sym.html
+http://nsr.mij.mrs.org/1/27/complete.mac.html
+http://nsr.mij.mrs.org/1/27/text.html
+http://nssdc.gsfc.nasa.gov/nssdc/data_retention.html
+http://nssdc.gsfc.nasa.gov/planetary/chiron.html
+http://nssdc.gsfc.nasa.gov/planetary/planetaryfaq.html
+http://nsw.uca.org.au/whatis.htm
+http://nswas.org/article154.html
+http://nsweb.itinfo.dk/uk/news684.asp
+http://nsweb.nursingspectrum.com/ce/ce251.htm
+http://nsweb.nursingspectrum.com/cfforms/GuestLecture/Eyes.cfm
+http://nsweb.nursingspectrum.com/cfforms/GuestLecture/missionstatement.cfm
+http://nt.watauga.k12.nc.us/br/sound.htm
+http://ntama.uni-mainz.de/content/view/10/29/1/4/
+http://nte-socio.univ-lyon2.fr/Marc_Grange/Geo_en.htm
+http://ntl.bts.gov/DOCS/bob.html
+http://nuclearfree.lynx.co.nz/tour05.htm
+http://nuclearhistory.tripod.com/glossary/s.html
+http://nuclearweaponarchive.org/Usa/Weapons/B41.html
+http://nuke.goblins.net/modules.php?name=Reviews&rop=showcontent&id=135&newlang=english
+http://numeralist.blogspot.com/
+http://nursing.dal.ca/nursing_440.html
+http://nursing.umaryland.edu/longworkhours/pres_summ.htm
+http://nursingassistants.net/index.php?p=56
+http://nursingoutreach.missouri.edu/behind05.htm
+http://nurture.nature.com/rss/modules/mod_prism.html
+http://nutrition.about.com/od/healthyshopping/qt/healthyshopping.htm
+http://nutrition.tufts.edu/news/notes/
+http://nutrition.tufts.edu/news/notes/2003-03.html
+http://nutrition.ucdavis.edu/briefs/Issues/JulAug04.htm
+http://nutrition.ucdavis.edu/perspectives/NovDec01.htm
+http://nutsandbolts.washcoll.edu/
+http://nuwen.net/culture.html
+http://nvcc.edu/home/etrumbull/classes/thclass2.htm
+http://nvizx.typepad.com/nvizx_weblog/2005/04/full_motion_cam.html
+http://nwanews.com/story.php?paper=adg&section=Outdoors&storyid=106198
+http://nwc.networkingpipeline.com/159908328
+http://nwc.networkingpipeline.com/news/159908328
+http://nwc.securitypipeline.com/160911511
+http://nwc.systemsmanagementpipeline.com/GLOBAL/btg/pipeline/shared/article/showArticle.jhtml?articleId=57701013&pgno=2
+http://nwc.systemsmanagementpipeline.com/showArticle.jhtml?articleID=164303342
+http://nwn.bioware.com/forums/viewtopic.html?topic=234960&forum=47&sp=15
+http://nwn.bioware.com/underdark/character_dragonkin.html
+http://nwtxsite.brickriver.com/page.asp?TableName=oPages_6KF3UU&PrimaryKey=oPages_6KF3UU_ID&PKValue=774
+http://nwtxsite.brickriver.com/page_print.asp?PKValue=774
+http://ny.fabricshow.com/fabricshowny/v42/index.cvn?id=10007
+http://nyc.indymedia.org/newswire/display/95440/index.php
+http://nydailynews.healthology.com/nydailynews/15341.htm
+http://nydailynews.healthology.com/nydailynews/17377.htm
+http://nyjm.albany.edu:8000/nyjstyle.html
+http://nyjobsource.com/stern.html
+http://nytimes.com/2005/06/24/books/24grim.html?pagewanted=print
+http://o-n-a.blogspot.com/2004_05_01_o-n-a_archive.html
+http://o2collective.org/archives/000022.html
+http://o3.indiatimes.com/lawsofattraction/
+http://o3.indiatimes.com/talktome/archive/2005/06/07.aspx
+http://oa.waveflex.com/profiles/prof_disp.asp?id=1016
+http://oa.waveflex.com/profiles/prof_disp.asp?id=1056
+http://oa.waveflex.com/profiles/prof_disp.asp?id=317
+http://oa.waveflex.com/profiles/prof_disp.asp?id=480
+http://oa.waveflex.com/profiles/prof_disp.asp?id=532
+http://oaa.osu.edu/handbook/i_prototypepoa.html
+http://oaa.osu.edu/handbook/iii_facextracomp.html
+http://oak.cats.ohiou.edu/~bg362397/unc.htm
+http://oakroadsystems.com/genl/relation.htm
+http://oaks.nvg.org/defence-mechanisms.html
+http://oasis.gov.ie/birth/after_your_baby_is_born/breastfeeding.html
+http://oasis.gov.ie/consumer_affairs/consumers_and_the_law_in_ireland.html
+http://oasis.gov.ie/consumer_affairs/pricing_of_goods_and_services.html
+http://oasis.gov.ie/culture_and_recreation/arts_and_culture/arts_council.html
+http://oasis.gov.ie/education/primary_education/ownership_of_schools.html
+http://oasis.gov.ie/environment/litter_law.html
+http://oasis.gov.ie/health/blood_donation.html
+http://oasis.gov.ie/health/health_services_in_ireland/health_services_and_visitors_to_ireland.html
+http://oasis.gov.ie/housing/local_authority_housing/applying_for_local_authority_housing.html
+http://oasis.gov.ie/housing/local_authority_housing/housing_associations.html
+http://oasis.gov.ie/public_utilities/telecommunications/tv_licences.html
+http://oasis.gov.ie/relationships/marriage/taxation_of_married_people_in_ireland.html
+http://oasis.gov.ie/retirement/pensions/oap_contributory.html
+http://oasis.gov.ie/transport/motoring/driving_offences.html
+http://oasis.gov.ie/transport/motoring/parking_fines_and_vehicle_clamping.html
+http://oasis.gov.ie/transport/public_transport/public_transport_commuter_tickets_and_tax.html
+http://obama.senate.gov/blog/
+http://obama.senate.gov/speech/050426-_a_hope_to_fulfill/
+http://obelia.jde.aca.mmu.ac.uk/giscons/unitintr.htm
+http://obesity.lap-band-surgery.org/LAP-BAND-01-01.html
+http://obnoxio.us/
+http://observantlittle.blogspot.com/2005/06/dr-death-enquiry.html
+http://observer.com/pages/offtherec.asp
+http://observer.guardian.co.uk/Politics/columnist/story/0,9321,962410,00.html
+http://observer.guardian.co.uk/cash/story/0,6903,1499249,00.html
+http://observer.guardian.co.uk/children/story/0,12816,1086452,00.html
+http://observer.guardian.co.uk/focus/story/0,6903,1396563,00.html
+http://observer.guardian.co.uk/foodmonthly/story/0,9950,1342296,00.html
+http://observer.guardian.co.uk/foodmonthly/story/0,9950,1481443,00.html
+http://observer.guardian.co.uk/foodmonthly/story/0,9950,519590,00.html
+http://observer.guardian.co.uk/foodmonthly/story/0,9950,547768,00.html
+http://observer.guardian.co.uk/foodmonthly/story/0,9950,711834,00.html
+http://observer.guardian.co.uk/foodmonthly/story/0,9950,951715,00.html
+http://observer.guardian.co.uk/international/story/0,6903,1148577,00.html
+http://observer.guardian.co.uk/international/story/0,6903,1153513,00.html
+http://observer.guardian.co.uk/international/story/0,6903,1510003,00.html
+http://observer.guardian.co.uk/iraq/story/0,12239,905990,00.html
+http://observer.guardian.co.uk/leaders/story/0,6903,1066158,00.html
+http://observer.guardian.co.uk/magazine/story/0,11913,962948,00.html
+http://observer.guardian.co.uk/osm/story/0,6903,708240,00.html
+http://observer.guardian.co.uk/osm/story/0,6903,803092,00.html
+http://observer.guardian.co.uk/osm/story/0,6903,884570,00.html
+http://observer.guardian.co.uk/politics/story/0,6903,1484334,00.html
+http://observer.guardian.co.uk/review/story/0,6903,1396275,00.html
+http://observer.guardian.co.uk/sport/story/0,6903,1514939,00.html
+http://observer.guardian.co.uk/styleguide/page/0,14495,1196865,00.html
+http://observer.guardian.co.uk/uk_news/story/0,,1366843,00.html
+http://observer.guardian.co.uk/uk_news/story/0,6903,1406987,00.html
+http://observer.guardian.co.uk/waronterrorism/story/0,1373,556626,00.html
+http://observer.guardian.co.uk/waronterrorism/story/0,1373,573728,00.html
+http://observer.guardian.co.uk/waronterrorism/story/0,1373,624183,00.html
+http://observer.guardian.co.uk/worldview/story/0,11581,643391,00.html
+http://observer.guardian.co.uk/worldview/story/0,11581,643484,00.html
+http://observer.guardian.co.uk/worldview/story/0,11581,651674,00.html
+http://observer.guardian.co.uk/worldview/story/0,11581,680095,00.html
+http://observer.guardian.co.uk/worldview/story/0,11581,776680,00.html
+http://observers.org/tac.mailing.list/2000/October/
+http://obsessed.modblog.com/
+http://obsidianwings.blogs.com/obsidian_wings/2004/09/for_the_record.html
+http://obsidianwings.blogs.com/obsidian_wings/2005/01/lucky_trade_def.html
+http://obsidianwings.blogs.com/obsidian_wings/2005/05/to_my_governmen.html
+http://obsidianwings.blogs.com/obsidian_wings/2005/06/john_bolton_neg.html
+http://obsidianwings.blogs.com/obsidian_wings/2005/06/more_things_we_.html
+http://oca.slu.edu/year42004/index.phtml?page=sur408&cat=requiredtoc
+http://oca.slu.edu/year42004/index.phtml?page=sur409&cat=requiredtoc
+http://occupational-therapy.advanceweb.com/common/editorial/editorial.aspx?CC=43837
+http://oceancurrents.rsmas.miami.edu/atlantic/north-atlantic.html
+http://oceanexplorer.noaa.gov/explorations/deepeast01/background/plan/plan.html
+http://oceanexplorer.noaa.gov/library/readings/vicissitudes/vicissitudes.html
+http://oceanworld.tamu.edu/students/coral/coral_web.htm
+http://ocl.od.nih.gov/updates/OCLUpdateJulyAug_02.htm
+http://ocpe.gmu.edu/certificate_programs/proj_man.html
+http://oddnews.orb6.com/stories/nm/20050111/oukoe_usa_court_spies.php
+http://odfi.org/archives/000018.html
+http://odin.dep.no/asd/norsk/aktuelt/taler/044051-090110/dok-bn.html
+http://odin.dep.no/bfd/engelsk/publ/handbooks/004021-120005/dok-bn.html
+http://odin.dep.no/fd/engelsk/publ/periodika/010011-280020/dok-bn.html
+http://odin.dep.no/fd/english/doc/fiscal_budget/006005-990224/dok-bn.html
+http://odin.dep.no/fd/english/news/speeches/010011-090063/dok-bn.html
+http://odin.dep.no/hod/engelsk/news/new_publ/030071-200002/index-dok000-b-n-a.html
+http://odin.dep.no/krd/english/news/speeches/taler_politisk_ledelse/016081-090157/dok-bn.html
+http://odin.dep.no/lmd/mf/Conferences/020031-990195/dok-bn.html
+http://odin.dep.no/nhd/norsk/aktuelt/taler/politisk_ledelse/024111-090015/dok-bn.html
+http://odin.dep.no/odinarkiv/norsk/dep/ud/2000/eng/032091-990292/dok-bn.html
+http://odin.dep.no/oed/english/news/speeches/minister/026031-090140/dok-bn.html
+http://odin.dep.no/ud/english/doc/plans/032181-220005/dok-bn.html
+http://odin.dep.no/ud/english/news/speeches/minister_a/032021-090004/dok-bn.html
+http://odin.dep.no/ud/norsk/aktuelt/taler/minister_b/032171-090231/dok-bn.html
+http://odin.dep.no/ud/norsk/aktuelt/taler/minister_b/032171-090368/dok-bn.html
+http://odin.prohosting.com/highsoc/langscont.htm
+http://ods.od.nih.gov/factsheets/vitaminb6.asp
+http://odur.let.rug.nl/~robbert/sources/jc_src.pas
+http://odur.let.rug.nl/~usa/B/north/north.htm
+http://odur.let.rug.nl/~usa/P/rr40/speeches/su88rwr.htm
+http://odwin.ucsd.edu/glossary/glossary.html
+http://oe.quickbooks.com/about_us.shtml
+http://oee.nrcan.gc.ca/energystar/english/consumers/index.cfm
+http://oeh.cals.cornell.edu/heatstress.html
+http://oemagazine.com/fromTheMagazine/jan04/tutorial.html
+http://oemagazine.com/fromTheMagazine/mar03/busspot.html
+http://oeop.larc.nasa.gov/hep/hep-events.html
+http://ofeuillerat.free.fr/htm/itw_gh_0105.htm
+http://offcampus.union.rpi.edu/legal/fheo.asp
+http://offcampushousing.ucsd.edu/faq.html
+http://offcentre.net/sage/gp3.html
+http://office.microsoft.com/en-us/assistance/CH062556181033.aspx
+http://office.microsoft.com/en-us/assistance/HA010429371033.aspx
+http://office.microsoft.com/en-us/assistance/HA010917601033.aspx
+http://office.microsoft.com/en-us/assistance/HA011032471033.aspx
+http://office.microsoft.com/en-us/assistance/HA011193841033.aspx
+http://office.microsoft.com/en-us/assistance/HA011196551033.aspx
+http://office.microsoft.com/en-us/assistance/HA011513301033.aspx
+http://officediversions.com/discover/modules/wfsection/article.php?articleid=41
+http://officediversions.com/discover/modules/wfsection/article.php?articleid=90
+http://officediversions.com/discover/modules/xoopsheadline/index.php?id=2
+http://ogb.wfu.edu/?id=1575_0_6_0_M
+http://ogj.pennnet.com/Articles/Article_Display.cfm?Section=HOME&ARTICLE_ID=227269&VERSION_NUM=2&p=82
+http://ogj.pennnet.com/news/wire_story_display.cfm?C=GenIn&NewsId=119332
+http://ogov.newswire.ca/ontario/GONE/2005/05/17/c0303.html?lmatch=&lang=_e.html
+http://oha.ci.alexandria.va.us/fortward/special-sections/baseball/
+http://ohioline.osu.edu/ae-fact/0005.html
+http://ohioline.osu.edu/als-fact/1005.html
+http://ohioline.osu.edu/b472/grain.html
+http://ohioline.osu.edu/b504/b504_18.html
+http://ohioline.osu.edu/b604/b604_15.html
+http://ohioline.osu.edu/b782/b782_9.html
+http://ohioline.osu.edu/b853/b853_6.html
+http://ohioline.osu.edu/b867/b867_3.html
+http://ohioline.osu.edu/b875/b875_4.html
+http://ohioline.osu.edu/b882/b882_10.html
+http://ohioline.osu.edu/b908/b908_80.html
+http://ohioline.osu.edu/b915/part_four.html
+http://ohioline.osu.edu/cd-fact/0108.html
+http://ohioline.osu.edu/cd-fact/1153.html
+http://ohioline.osu.edu/ga-fact/0004.html
+http://ohioline.osu.edu/hyg-fact/1000/1236.html
+http://ohioline.osu.edu/hyg-fact/1000/1239.html
+http://ohioline.osu.edu/hyg-fact/1000/1247.html
+http://ohioline.osu.edu/hyg-fact/2000/2105.html
+http://ohioline.osu.edu/hyg-fact/2000/2130.html
+http://ohioline.osu.edu/hyg-fact/3000/3304.html
+http://ohioline.osu.edu/hyg-fact/5000/5150.html
+http://ohioline.osu.edu/hyg-fact/5000/5211.html
+http://ohioline.osu.edu/hyg-fact/5000/5227.html
+http://ohioline.osu.edu/hyg-fact/5000/5231.html
+http://ohioline.osu.edu/hyg-fact/5000/5268.html
+http://ohioline.osu.edu/hyg-fact/5000/5317.html
+http://ohioline.osu.edu/hyg-fact/5000/5706.html
+http://ohioline.osu.edu/mm-fact/0002.html
+http://ohioline.osu.edu/sc156/sc156_55.html
+http://ohioline.osu.edu/sc157/sc157_5.html
+http://ohioline.osu.edu/ss-fact/0170.html
+http://ohiovoter.blogspot.com/
+http://ohq.tpl.toronto.on.ca/gr10-tp-2b.jsp
+http://ohrm.doc.gov/employees/telework/fam_fr_workplace/fam_fr_wrkpl_info.htm
+http://ohsr.od.nih.gov/guidelines/belmont.html
+http://oi.uchicago.edu/OI/AR/92-93/92-93_Scrolls.html
+http://oikos.com/esb/
+http://oikos.com/library/naturalbuilding/design_principles.html
+http://oikos.com/news/2005/01.html
+http://oil-gas.state.co.us/Hearings/Notices/Dec_03/0312AW13.htm
+http://oil-gas.state.co.us/Hearings/Notices/Dec_03/0312GA06.htm
+http://oil-gas.state.co.us/Hearings/Notices/Dec_03/0312UP05.htm
+http://oil-gas.state.co.us/RR_Asps/700-ser.htm
+http://oil-spill-pollution-control-degreasing-bioremediation.co.uk/pressrel/prdec97.asp
+http://oisa.mcmaster.ca/handbook/entry.htm
+http://oisss.unc.edu/forms/1938app.html
+http://ojr.org/ojr/glaser/1098225187.php
+http://ojr.org/ojr/technology/1095977436.php
+http://ojr.org/ojr/workplace/1090395903.php
+http://ok-lah.blogspot.com/
+http://ok.essortment.com/christmastree_rezn.htm
+http://ok.essortment.com/disneyworldon_rjbb.htm
+http://okcitykid.bravejournal.com/
+http://okebffa.tripod.com/katrinka/matter1.html
+http://okebffa.tripod.com/katrinka/matter3.html
+http://okebffa.tripod.com/katrinka/nigai1.html
+http://okebffa.tripod.com/krychick/heartbond.html
+http://oklahoman.diaryland.com/041220_67.html
+http://okrasoup.typepad.com/black_looks/
+http://ol.scc.spokane.edu/jstrever/models/essays/c&c/c&c&&002.htm
+http://old.ccer.edu.cn/en/ceq/ceq.html
+http://old.cruisingworld.com/gps/1997/gps1897.htm
+http://old.cruisingworld.com/gps/1997/gps1997.htm
+http://old.fairfieldweekly.com/anman00/lifun.html
+http://old.mbconf.ca/mb/mbh3610/people.htm
+http://old.merlion.ru/eng/business/events/acorp10year/
+http://old.techdis.ac.uk/seven/papers/colour-contrast5.html
+http://oldfraser.lexi.net/publications/critical_issues/2001/flat_tax/section_09.html
+http://oldfraser.lexi.net/publications/onbalance/1993/6-1/
+http://oldhag.blogspot.com/2003_10_27_oldhag_archive.html
+http://oldkunnel.net/poodle.html
+http://oldpoetry.com/
+http://oldpoetry.com/oprintall/Cicely%20Fox%20Smith
+http://oldsaybrook.findlinks.com/
+http://olimu.com/Journalism/Texts/Commentary/FilialReflections.htm
+http://olimu.com/WebJournalism/Texts/Commentary/JROTC.htm
+http://olivercowdery.com/hurlbut/HChron3.htm
+http://oliverkamm.typepad.com/blog/2004/02/lib_dems_and_lo.html
+http://oll.libertyfund.org/Texts/Acton0003/LecturesOnModernHistory/HTMLs/0028_Pt17_Lecture15.html
+http://oll.libertyfund.org/Texts/Erasmus0096/ComplaintOfPeace/0047_Bk.html
+http://oll.libertyfund.org/Texts/LFBooks/Smith0232/GlasgowEdition/MoralSentiments/HTMLs/0141-01_Pt03_Part2.html
+http://oll.libertyfund.org/Texts/LFBooks/Smith0232/GlasgowEdition/MoralSentiments/HTMLs/0141-01_Pt07_Part7.html
+http://ollie.dcccd.edu/mgmt1374/book_contents/4directing/leading/lead.htm
+http://olo.wooster.edu/news.php
+http://olpa.od.nih.gov/hearings/107/session1/reports/bioterror.asp
+http://olympia.anglican.org/churches/B/stdunstan/events.htm
+http://omega13a.ultimate-results.net/modules.php?name=Palindromes
+http://omni.ac.uk/browse/mesh/D000428.html
+http://omni.ac.uk/browse/mesh/D003195.html
+http://omni.ac.uk/browse/mesh/D005123.html
+http://omniverse.blogspot.com/2004_11_21_omniverse_archive.html
+http://on.starblvd.net/meet/betty
+http://onafrica.net/jill/2001/20011130_crayfish1.html
+http://oncampus.richmond.edu/academics/quest/2002/question.html
+http://onebag.oratory.com/home.html
+http://onedonkeyarmy.blogspot.com/
+http://oneflynangel.com/timelinemed.html
+http://onegoodmove.org/1gm/
+http://onegoodmove.org/1gm/1gmarchive/000913.html
+http://onegoodmove.org/1gm/1gmarchive/002155.html
+http://onemorefortheroad.blogspot.com/2005_03_01_onemorefortheroad_archive.html
+http://onet.rti.org/pdf/dsp_ShowSOC_Limited.cfm?SOC=39-3011.00
+http://online.northumbria.ac.uk/faculties/art/humanities/cns/m-intro.html
+http://online.onetcenter.org/link/summary/13-1041.03
+http://online.onetcenter.org/link/summary/19-4051.01
+http://online.onetcenter.org/link/summary/19-4091.00
+http://online.onetcenter.org/link/summary/25-1123.00
+http://online.onetcenter.org/link/summary/27-1026.00
+http://online.onetcenter.org/link/summary/31-2021.00
+http://online.onetcenter.org/link/summary/33-1021.01
+http://online.onetcenter.org/link/summary/33-1021.02
+http://online.onetcenter.org/link/summary/33-9032.00
+http://online.onetcenter.org/link/summary/35-3021.00
+http://online.onetcenter.org/link/summary/37-1012.02
+http://online.onetcenter.org/link/summary/45-1011.01
+http://online.onetcenter.org/link/summary/45-1011.02
+http://online.onetcenter.org/link/summary/45-1011.03
+http://online.onetcenter.org/link/summary/45-1011.04
+http://online.onetcenter.org/link/summary/45-1011.06
+http://online.onetcenter.org/link/summary/47-1011.01
+http://online.onetcenter.org/link/summary/47-1011.02
+http://online.onetcenter.org/link/summary/47-2042.00
+http://online.onetcenter.org/link/summary/47-2051.00
+http://online.onetcenter.org/link/summary/47-2071.00
+http://online.onetcenter.org/link/summary/47-2073.01
+http://online.onetcenter.org/link/summary/49-2011.02
+http://online.onetcenter.org/link/summary/49-9095.00
+http://online.onetcenter.org/link/summary/51-4033.01
+http://online.onetcenter.org/link/summary/51-4033.02
+http://online.onetcenter.org/link/summary/51-6042.00
+http://online.onetcenter.org/link/summary/51-7032.00
+http://online.onetcenter.org/link/summary/51-8021.02
+http://online.onetcenter.org/link/summary/51-9023.00
+http://online.onetcenter.org/link/summary/51-9061.03
+http://online.onetcenter.org/link/summary/51-9121.02
+http://online.onetcenter.org/link/summary/51-9132.00
+http://online.onetcenter.org/link/summary/51-9198.01
+http://online.onetcenter.org/link/summary/51-9198.02
+http://online.sfsu.edu/~psych200/unit4/47.htm
+http://online.sfsu.edu/~rone/GEessays/SterileHarvest.html
+http://onlineathens.com/stories/011505/dog_20050115056.shtml
+http://onlineathens.com/stories/013005/dog_20050130100.shtml
+http://onlineathens.com/stories/050105/mov_20050501009.shtml
+http://onlinedictionary.datasegment.com/word/Canonical+books
+http://onlinedictionary.datasegment.com/word/Near
+http://onlinedictionary.datasegment.com/word/Reduce
+http://onlinedictionary.datasegment.com/word/board
+http://onlinedictionary.datasegment.com/word/fine
+http://onlinedictionary.datasegment.com/word/free
+http://onlineecom01.thomson.com.au/thomson/Catalog.asp?EES_CMD=SC&EES_ID=100700
+http://onlineethics.org/cases/nspe/nspe90-7.html
+http://onlineethics.org/cases/pritchard/inside-luebke.html
+http://onlineethics.org/codes/ACS-Employmt-Guide.html
+http://onlineethics.org/codes/guidelines.html
+http://onlineethics.org/div/abstracts/sci-eng-prog-1.html
+http://onlineethics.org/edu/cwethed.html
+http://onlineethics.org/essays/shuttle/post-dis.html
+http://onlineethics.org/essays/shuttle/pre-dis.html
+http://onlineethics.org/glossary.html
+http://onlineethics.org/moral/carson/cafaro.html
+http://onlyonanisland.blogspot.com/2004_12_01_onlyonanisland_archive.html
+http://onlyonanisland.blogspot.com/2005_01_01_onlyonanisland_archive.html
+http://onoffonoff.org/imma/trow/floor.html
+http://ontario.sierraclub.ca/peel/listserve.php
+http://ontonet.com/blog/index.php?m=200309
+http://ontrack.ncsu.edu/Documents/
+http://opcug.ca/public/Reviews/SpamKiller.htm
+http://open-site.org/Kids/People_and_Society/Psychology/
+http://openacs.org/forums/message-view?message_id=149982
+http://openarmsadoption.org/adoption_process.htp
+http://opendemocracy.typepad.com/wsf/
+http://opendoors.iienetwork.org/?p=29413
+http://opendoors.iienetwork.org/?p=29454
+http://opendoors.iienetwork.org/?p=50137
+http://openemotion.typepad.com/
+http://openp2p.com/pub/a/p2p/2003/04/25/swarms_mobs.html
+http://opensource.weblogsinc.com/entry/1234000070046214/
+http://opera.inrialpes.fr/people/Tayeb.Lemlouma/doc1.html
+http://operationhope.org/AboutOHI/speeches/EMPOWERING%20JAPAN.htm
+http://operationhope.org/AboutOHI/speeches/empoweringjapan.htm
+http://operationhope.org/epublications/September2004/default.htm
+http://operationmilitarypride.org/oyr.html
+http://opgratitude.com/website/html/modules/news/
+http://opgratitude.com/website/html/modules/news/index.php?storytopic=4
+http://opinion.paifamily.com/?p=1470
+http://opinion.paifamily.com/wp-trackback.php?p=1248
+http://oppenheim.thefreelibrary.com/A-Millionaire-of-Yesterday/7-1
+http://oppenheim.thefreelibrary.com/The-Kingdom-of-the-Blind/32-1
+http://ops.dot.gov/whatsnew/2004/Ext-Notice-4-012704.htm
+http://ops.fhwa.dot.gov/freight/publications/secur_exec_summ.htm
+http://ops.fhwa.dot.gov/program_areas/sp-events-mgmt/handbook/chapter7_01.htm
+http://optics.org/articles/ole/10/6/1/1
+http://optics.org/articles/ole/10/6/4/1
+http://optometry.berkeley.edu/~library/stats.htm
+http://or.essortment.com/lawnbowlinghis_rbpl.htm
+http://oracknows.blogspot.com/2005/04/field-guide-to-biomedical-meeting.html
+http://orangeclerk.onetgov.net/faq/faq-marriagelicense.htm
+http://orangeclerk.onetgov.net/service/marriage.shtml
+http://orangepolitics.org/2005/05/say-goodbye-to-airport-road/
+http://oregonpacific.redcross.org/?zone=&id=28&sid=
+http://oregonpeaceworks.org/main/pwkr/0303/happening.html
+http://oregonstate.edu/dept/affact/
+http://oregonstate.edu/dept/counsel/brochures.php
+http://oregonstate.edu/instruct/phl302/distance/locke2/back2.html
+http://oregonstate.edu/instruct/phl302/philosophers/descartes-god.html
+http://oregonstate.edu/instruct/phl302/texts/bacon/bacon_essays.html
+http://oreillynet.com/pub/wlg/6429
+http://org.eea.eu.int/documents/newsreleases/ghg_report2005-en
+http://org.eea.eu.int/documents/speeches/1-12-2004
+http://org.eea.eu.int/documents/speeches/10-11-2004
+http://organizations.uncfsu.edu/acctsoc/research_information.htm
+http://organizedchristmas.com/ftopic-5136-30.html
+http://organizedchristmas.com/ftopict-5034.html
+http://organizedchristmas.com/ftopict-5160.html
+http://organizedchristmas.com/ftopict-5523.html
+http://organizedscrapbooks.com/article9.html
+http://orgs.carleton.edu/saga/04_fall_Minutes.html
+http://oriel.ysgolccc.org.uk/boathouse/speakingdog1.html
+http://orient.bowdoin.edu/orient/article.php?date=2004-10-15&section=3&id=1
+http://orient.bowdoin.edu/orient/article.php?date=2004-11-12&section=2&id=7
+http://orienteering.ie/builder.php3?Events
+http://orienteering.ie/builder.php3?events.html
+http://orig.app.com/njpowerbrokers/
+http://orig.citizen-times.com/cgi-bin/article/38478
+http://orig.citizen-times.com/cgi-bin/article/71560
+http://origin.bankrate.com/brm/news/DrDon/20031111a1.asp
+http://orlink.oldrepnatl.com/Bulletins/201/201-96-0127%20Impact%20of%20plan%20confirmation%20upon%20pre-petition%20liens.htm
+http://ors.uchc.edu/ehs/ppeplcy.html
+http://orsa.blogspot.com/
+http://ortho.smith-nephew.com/ca_en/Standard.asp?NodeId=3417
+http://orthodoxeurope.org/page/14/23.aspx
+http://orwell.ru/library/articles/As_I_Please/english/eaip_03.html
+http://oryza.com/global/marketreview/index.shtml
+http://oryza.com/glossary/grainsmarkets.shtml
+http://osa.leg.wa.gov/Fiscal_Notes.htm
+http://oscars.about.com/od/thenominees/a/etsmkw030904_2.htm
+http://oscars.about.com/od/thenominees/a/million123104.htm
+http://osconf.kmdi.utoronto.ca/panel_social.html
+http://osdir.com/Article1687.phtml
+http://oser.state.wi.us/docview.asp?docid=1111
+http://osp.stanford.edu/apply/contract.html
+http://osp.stanford.edu/welcome/overview.html
+http://ospa.utdallas.edu/UTDPerspectives/Fall2003/Page3.htm
+http://osrl.uoregon.edu/projects/mwmc/mwmc.html
+http://ostinato.stanford.edu/acronyms/alpha.asp?P
+http://osulibrary.oregonstate.edu/research/srg/peace.htm
+http://oswegocountybusiness.com/issue55/55EconomicTrends.html
+http://ot.f00f.com/
+http://otakuworld.com/games/psx/monranch.htm
+http://otec.uoregon.edu/tspc.htm
+http://otherisrael.home.igc.org/ed.html
+http://othernessblue.blogspot.com/
+http://otl.berkeley.edu/inventor/uccopyright.php
+http://otsp.missouri.edu/business/Guidelines.asp
+http://ottawa.ca/city_services/permits/15_13_1_en.shtml
+http://ottawa.rasc.ca/astronomy/amat_prof_partnerships/amproposter.html
+http://ottawa.rasc.ca/astronomy/amat_prof_partnerships/amprotalk.html
+http://ottoandsons-nursery.com/otto-press.htm
+http://ourco.buxtontech.com/crew/index.php?d=3&category_id=111
+http://ourco.buxtontech.com/crew/index.php?d=3&category_id=131
+http://oursenioryears.com/medrecords.html
+http://ourworld.compuserve.com/homepages/CarolASThompson/Baker.htm
+http://ourworld.compuserve.com/homepages/Carpathia/page5.htm
+http://ourworld.compuserve.com/homepages/JWCRAWFORD/combs.htm
+http://ourworld.compuserve.com/homepages/PZarembka/uup.htm
+http://ourworld.compuserve.com/homepages/billramey/kalam.htm
+http://ourworld.compuserve.com/homepages/dp5/relativ.htm
+http://ourworld.compuserve.com/homepages/dp5/sex1.htm
+http://ourworld.compuserve.com/homepages/joelg/plum.htm
+http://ourworld.compuserve.com/homepages/jsuebersax/agree.htm
+http://ourworld.compuserve.com/homepages/jsuebersax/ltrait.htm
+http://ourworld.compuserve.com/homepages/lennich/histfig.htm
+http://ourworld.compuserve.com/homepages/profirst/h.htm
+http://ourworld.compuserve.com/homepages/profirst/k.htm
+http://ourworld.compuserve.com/homepages/profirst/t.htm
+http://ourworld.worldlearning.org/site/PageServer?pagename=40Conference
+http://ous.curtin.edu.au/risk_compliance/insurance/personal_accident.html
+http://outdoors.mainetoday.com/trailhead/2004_09.shtml
+http://outdoorsbest.zeroforum.com/zerothread?id=276802
+http://outletshirts.com/product_info.php?products_id=256
+http://outlook.wustl.edu/fall2004/cilia.html
+http://outofambit.blogspot.com/2005_06_01_outofambit_archive.html
+http://outside.away.com/
+http://outside.away.com/magazine/0496/9604fmon.html
+http://outside.away.com/outside/bodywork/200505/fitness-guide-2.html
+http://outside.away.com/outside/destinations/199609/199609_into_thin_air_1.html
+http://outside.away.com/outside/features/200302/200302_anwr_1.html
+http://outside.away.com/outside/magazine/0496/9604fmon.html
+http://outside.away.com/outside/magazine/200001/200001body3.html
+http://outside.away.com/outside/magazine/travelguide2001/base.html
+http://outsourcing.weblogsinc.com/
+http://outsourcing.weblogsinc.com/entry/2509517851773617/
+http://oval.mitre.org/community/board/minutes/2004-09-21.html
+http://overcaffeinated.net/archives/2004_08.html
+http://overcaffeinated.net/archives/2005_05.html
+http://overcaffeinated.net/comments/2172
+http://overlawyered.com/pages/webada.html
+http://overlawyered.com/topics/harass.html
+http://overtaken.blogmosis.com/
+http://owasbhat.com/_blog/
+http://owl.english.purdue.edu/handouts/esl/eslprep.html
+http://owl.english.purdue.edu/handouts/general/gl_block.html
+http://owl.english.purdue.edu/handouts/general/gl_patvar.html
+http://owl.english.purdue.edu/handouts/general/gl_sentvar.html
+http://owl.english.purdue.edu/handouts/grammar/g_parallel.html
+http://owl.english.purdue.edu/handouts/grammar/g_tensec.html
+http://owl.english.purdue.edu/handouts/index2.html
+http://owl.english.purdue.edu/handouts/print/general/gl_patvar.html
+http://owl.english.purdue.edu/handouts/print/research/r_plagiar.html
+http://owl.english.purdue.edu/handouts/pw/p_applettr.html
+http://owl.english.purdue.edu/handouts/pw/p_experienceEX.html
+http://owl.english.purdue.edu/handouts/pw/p_perstate.html
+http://owl.english.purdue.edu/handouts/pw/p_yresum.html
+http://owl.english.purdue.edu/handouts/research/r_apa.html
+http://owl.english.purdue.edu/handouts/research/r_mla.html
+http://owl.english.purdue.edu/handouts/research/r_paraphr.html
+http://owl.english.purdue.edu/handouts/research/r_plagiar.html
+http://owl.english.purdue.edu/handouts/research/r_quotprsum.html
+http://owl.english.purdue.edu/lab/faq.html
+http://owl.english.purdue.edu/workshops/hypertext/ResearchW/notes.html
+http://oxblog.blogspot.com/
+http://oxblog.blogspot.com/2004_03_28_oxblog_archive.html
+http://oxblog.blogspot.com/2004_04_11_oxblog_archive.html
+http://oxblog.blogspot.com/2004_08_15_oxblog_archive.html
+http://oxblog.blogspot.com/2005_06_12_oxblog_archive.html
+http://oxford.berkeleypta.org/handbook.htm
+http://oxford.date.com/singles/mississippi10.htm
+http://oxomoxo.blogspot.com/
+http://oxomoxo.blogspot.com/2005_01_30_oxomoxo_archive.html
+http://p066.ezboard.com/ftryingtoconceive74330frm63.showMessage?topicID=970.topic
+http://p076.ezboard.com/fpoliticalpalacefrm56.showMessage?topicID=4.topic
+http://p076.ezboard.com/fpoliticalpalacefrm57.showMessage?topicID=46.topic
+http://p077.ezboard.com/famericanviewfrm2.showMessage?topicID=6240.topic
+http://p077.ezboard.com/fextracrispyfrm17.showMessage?topicID=134.topic
+http://p077.ezboard.com/fntrmindiscussionboardfrm9.showMessage?topicID=773.topic&index=21
+http://p079.ezboard.com/folderchildadoptionfrm5.showMessage?topicID=56.topic
+http://p084.ezboard.com/fbluemoon22203frm11.showMessage?topicID=93.topic
+http://p086.ezboard.com/fsonsofsamhornbostonredsox.showMessageRange?topicID=15497.topic&start=1&stop=20
+http://p086.ezboard.com/fsonsofsamhornbostonredsox.showMessageRange?topicID=15497.topic&start=21&stop=40
+http://p088.ezboard.com/ftheworldoftaelaenfrm12.showMessage?topicID=58.topic
+http://p098.ezboard.com/fwordoriginsorgfrm1.showMessage?topicID=12244.topic
+http://p197.ezboard.com/fengrishmessageboardsfrm2.showMessage?topicID=1213.topic
+http://p197.ezboard.com/fthesonnetboardfrm7.showMessage?topicID=383.topic
+http://p199.ezboard.com/fdragontailsfrm7.showMessageRange?topicID=928.topic&start=41&stop=60
+http://p199.ezboard.com/fmiddleearth99434frm4
+http://p2.hostingprod.com/@phocuswright.com/events/travdex-04-program.php
+http://p200.ezboard.com/faseasononthebrinkfrm2.showMessageRange?topicID=5.topic&start=21&stop=37
+http://p200.ezboard.com/fecodefense12287frm2.showMessageRange?topicID=130.topic&start=41&stop=56
+http://p200.ezboard.com/fthecivilwarhomepagediscussion2824frm11.showMessageRange?topicID=119.topic&start=81&stop=90
+http://p201.ezboard.com/fthelegendofzeldarpg7366frm20.showMessage?topicID=8.topic
+http://p206.ezboard.com/fthewalkingsitefrm19.showMessage?topicID=9.topic
+http://p209.ezboard.com/faffinityrpgdiscussionfrm9.showMessage?topicID=26.topic
+http://p216.ezboard.com/fhogwartsforeverfrm95
+http://p221.ezboard.com/fsplitscreensadnessfrm7.showMessageRange?topicID=13.topic&start=1&stop=20
+http://p221.ezboard.com/fthehighmiddleagesfrm32.showMessage?topicID=40.topic
+http://p2p.wrox.com/TopicIndex/246.htm
+http://pablo.pernot.free.fr/trucs/Clarksdalelyrics.htm
+http://pacificviews.org/
+http://pacs.petfinder.org/
+http://page.sourceforge.net/vrex.html
+http://pages.abcantique.com/9459/InventoryPage/1614733/1.html
+http://pages.abcantique.com/9459/InventoryPage/1758660/1.html
+http://pages.britishlibrary.net/ahs/castellacontroversy.htm
+http://pages.britishlibrary.net/blwww3/3way/blairitemisogyny.htm
+http://pages.britishlibrary.net/charles.darwin/texts/variation/variation07.html
+http://pages.britishlibrary.net/charles.darwin4/liv_balanidae/balanidae07.html
+http://pages.britishlibrary.net/liam.connell/bais.html
+http://pages.ca.inter.net/~ttoyooka/takashi/trudeau.html
+http://pages.cpsc.ucalgary.ca/~saul/vb_examples/tutorial8/xparant.html
+http://pages.ebay.co.uk/safetycentre/safety_tips.html
+http://pages.ebay.com.au/help/sell/creating-products-templates.html
+http://pages.ebay.com/help/sell/leave-feedback-for-buyer.html
+http://pages.ebay.com/help/sell/second_chance_offer.html
+http://pages.eidosnet.co.uk/~no2labour/
+http://pages.ivillage.com/emptynester12/id13.html
+http://pages.ivillage.com/fredies/id18.html
+http://pages.ivillage.com/healingjourney/
+http://pages.ivillage.com/rootarchive/Epescapefromgarden.html
+http://pages.ivillage.com/winmotion/June2001.html
+http://pages.liveauctions.ebay.com/catalogs/catalog16904.html
+http://pages.liveauctions.ebay.com/catalogs/catalog17401.html
+http://pages.liveauctions.ebay.com/catalogs/catalog17496.html
+http://pages.liveauctions.ebay.com/catalogs/catalog17607.html
+http://pages.prodigy.net/aesir/ww3.htm
+http://pages.prodigy.net/krtq73aa/arms.htm
+http://pages.prodigy.net/krtq73aa/family.htm
+http://pages.prodigy.net/l.hodges/joanne2.htm
+http://pages.prodigy.net/l.hodges/ukraine.htm
+http://pages.prodigy.net/mattgreen/sibling.htm
+http://pages.prodigy.net/mjjsan/FestMisty.html
+http://pages.prodigy.net/mr_art/educators.html
+http://pages.prodigy.net/thomasn528/blog/2005_04_03_newsarcv.html
+http://pages.prodigy.net/thomasn528/blog/newsrackblog.html
+http://pages.slc.edu/~eraymond/ccorner/exchange/clements2.html
+http://pages.slc.edu/~eraymond/ccorner/exchange/hill2.html
+http://pages.sssnet.com/go2erie/calhome.htm
+http://pages.sssnet.com/ohiobar/moment3.htm
+http://pages.stern.nyu.edu/~nroubini/Emu/EMU-NYT997.html
+http://pages.tias.com/6859/PictPage/1921422440.html
+http://pages.tias.com/9034/InventoryPage/1583723/1.html
+http://pages.zdnet.com/rchbrecht/id29.html
+http://pages.zdnet.com/sartre65/gulag/id26.html
+http://pages.zoom.co.uk/netdesign/notesonstc.htm
+http://paincontrolproducts.com/free_cart_ii.htm
+http://paintball.com/pb/forums/index.cfm?fuseaction=read&forum=41&id=92714
+http://paipm.cas.psu.edu/schools/schoolMangm.html
+http://pajk.arh.noaa.gov/lightning.php
+http://pakistanidefenceforum.com/lofiversion/index.php/t46379.html
+http://paktribune.com/news/index.php?id=102433
+http://paleo.anglo-norman.org/law2.html
+http://paler.com/price_comparison.html
+http://palimpsest.lss.wisc.edu/~danaher/metaphor/survey.html
+http://palimpsest.stanford.edu/byauth/trinkley/wildfire.html
+http://palimpsest.stanford.edu/byorg/abbey/an/an10/an10-5/an10-515.html
+http://palimpsest.stanford.edu/byorg/abbey/an/an14/an14-6/an14-615.html
+http://palimpsest.stanford.edu/byorg/abbey/an/an23/an23-5/an23-502.html
+http://palimpsest.stanford.edu/byorg/abbey/ap/ap05/ap05-6/ap05-603.html
+http://palimpsest.stanford.edu/byorg/abbey/napp/facts.html
+http://palimpsest.stanford.edu/byorg/georgia/basics.html
+http://palimpsest.stanford.edu/byorg/lc/massdeac/domach.html
+http://palimpsest.stanford.edu/misc/commercial.html
+http://palimpsest.stanford.edu/waac/wn/wn13/wn13-3/wn13-306.html
+http://palimpsest.stanford.edu/waac/wn/wn19/wn19-2/wn19-208.html
+http://palimpsest.stanford.edu/waac/wn/wn21/wn21-1/wn21-108.html
+http://palipaths.tripod.com/sermon.htm
+http://palmoilis.mpob.gov.my/webpubs/2004-pest.html
+http://pami.uwaterloo.ca/nav.php?site=groups&action=view&gid=asrtdd
+http://pami.uwaterloo.ca/nav.php?site=pub&action=list&researcher=xhyuan
+http://panavox.panaserve.net/index.php?q=module:article,action:view,id:336
+http://pancero.com/Sample_Agenda/Video_Training_Programs/Speaking_Vs_In-Depth_Training/speaking_vs_in-depth_training.html
+http://panchayat.nic.in/kerala.htm
+http://pangaea.org/street_children/latin/mnmmr.htm
+http://pangloss.ucsfmedicalcenter.org/bloodcenters/bcdonationpage.htm
+http://panopticon.csustan.edu/filling/dissertation.ch5.htm
+http://pantransit.reptiles.org/zzz/1998-05-18.html
+http://pao.cnmoc.navy.mil/Educate/zeus/teacher/lesson/social/newspapr.htm
+http://pao.navair.navy.mil/press_releases/index.cfm?fuseaction=press_release_view&Press_release_id=3239&site_id=6
+http://papernapkin.typepad.com/papernapkin/
+http://paperpenalia.com/handwriting.html
+http://papers.ssrn.com/sol3/JELJOUR_Results.cfm?form_name=journalbrowse&journal_id=306191
+http://parablemania.ektopos.com/archives/2005/05/the_feminist_mi.html
+http://paradigmassociates.org/ParadigmParentsArchives.html
+http://paramita.typepad.com/dharma_forest/2005/04/pope_benedict_x.html
+http://paranormal.about.com/library/blstory_october04_16.htm
+http://parentcenter.babycenter.com/general/preschooler/1390667.html
+http://parentcenter.babycenter.com/general/preschooler/1399336.html
+http://parentcenter.babycenter.com/general/preschooler/1403154.html
+http://parentcenter.babycenter.com/general/preschooler/1406742.html
+http://parentcenter.babycenter.com/general/preschooler/72439.html
+http://parentcenter.babycenter.com/general/preschooler/72465.html
+http://parentcenter.babycenter.com/general/preschooler/72481.html
+http://parentcenter.babycenter.com/general/preschooler/72543.html
+http://parentcenter.babycenter.com/general/preschooler/72607.html
+http://parentcenter.babycenter.com/newpoll/bigkid/gsafety/77238.html
+http://parentcenter.babycenter.com/refcap/bigkid/gpreschool/1382308.html
+http://parentcenter.babycenter.com/refcap/bigkid/gspecialneeds/67393.html
+http://parentcenter.babycenter.com/refcap/preschooler/praising/64583.html
+http://parentcenter.babycenter.com/refcap/preschooler/praising/67698.html
+http://parenting.ivillage.com/
+http://parenting.ivillage.com/author/bio/0,,4rrv_70x1,00.html
+http://parenting.ivillage.com/baby/bhealth/0,,46wf,00.html
+http://parenting.ivillage.com/baby/bsafety/0,,3q6v,00.html
+http://parenting.ivillage.com/baby/bsafety/0,,3q6v-p,00.html
+http://parenting.ivillage.com/gs/gsbehavior/0,,qmlx,00.html
+http://parenting.ivillage.com/mom/structure/0,,3wh3,00.html
+http://parenting.ivillage.com/mom/structure/0,,427j,00.html
+http://parenting.ivillage.com/mom/structure/0,,42q3,00.html
+http://parenting.ivillage.com/newborn/nbreastfeed/0,,3wsl,00.html
+http://parenting.ivillage.com/newborn/topics/0,,4rn6-p4,00.html
+http://parenting.ivillage.com/pregnancy/plabor/0,,midwife_3pfm,00.html
+http://parenting.ivillage.com/pregnancy/plabor/0,,midwife_44gx,00.html
+http://parenting.ivillage.com/pregnancy/plabor/topics/0,,4rrv,00.html
+http://parenting.ivillage.com/teen/teducation/0,,s1lt,00.html
+http://parenting.ivillage.com/tp/tpdevelopment/0,,46tg,00.html
+http://parentingteens.about.com/library/weekly/aa092397.htm
+http://parents.berkeley.edu/FAQ/commercial.html
+http://parents.berkeley.edu/advice/babies/laundry.html
+http://parents.berkeley.edu/advice/family/husbandhelp.html
+http://parents.berkeley.edu/advice/family/teenbrother.html
+http://parents.berkeley.edu/advice/going/leavingkids.html
+http://parents.berkeley.edu/advice/parents/stepgrand.html
+http://parents.berkeley.edu/advice/playing/invitation.html
+http://parents.berkeley.edu/advice/pregnancy/checklist.html
+http://parents.berkeley.edu/advice/school/meetingteachers.html
+http://parents.berkeley.edu/advice/school/preschool_when.html
+http://parents.berkeley.edu/advice/school/starting_early.html
+http://parents.berkeley.edu/advice/sleep/babytroublefalling.html
+http://parents.berkeley.edu/advice/sleep/crib.html
+http://parents.berkeley.edu/advice/sleep/crib2bed.html
+http://parents.berkeley.edu/advice/sleep/extendnap.html
+http://parents.berkeley.edu/advice/teens/boysparents.html
+http://parents.berkeley.edu/advice/teens/teensathome.html
+http://parents.berkeley.edu/recommend/schools/waldorf.html
+http://pareonline.net/getvn.asp?v=4&n=11
+http://pareonline.net/getvn.asp?v=7&n=17
+http://pareonline.net/getvn.asp?v=8&n=22
+http://park.robcol.k12.tr/mun/constitution.html
+http://parkwayreststop.com/
+http://parli.com/main.htm
+http://parliamentofindia.nic.in/ls/debates/vol7p1b.htm
+http://parlinfoweb.aph.gov.au/piweb/view_document.aspx?ID=201805&TABLE=HANSARDS
+http://partners-service.cordis.lu/index.cfm?pgname=Success+Stories
+http://partners.inq7.net/newsbreak/istories/index.php?story_id=21716
+http://partners.inq7.net/newsbreak/istories/index.php?story_id=40755
+http://partners.nytimes.com/books/first/l/lebrecht-music.html
+http://partners.nytimes.com/library/financial/personal/050700personal-privacy.html
+http://partners.nytimes.com/library/tech/99/08/circuits/articles/12keys.html
+http://parts.jpl.nasa.gov/asic/Sect.2.5.html
+http://pasadena.wr.usgs.gov/office/ganderson/es10/lectures/lecture06/lecture06.html
+http://pasquino.blogspot.com/2005/04/from-archives-homage-to-press.html
+http://passmoore.com/titles.php
+http://pat.nol.org/info/PRIVATECARLINESANDAIRCARRIERS.htm
+http://patents.gusmanolaw.com/
+http://patesslinger.com/wakeup/tribart.html
+http://patheticearthlings.com/archives/2003_01.html
+http://pathsoflight.us/musing/index.php
+http://pathstat1.ucop.edu/ag/course_submissions/design_specific.html
+http://pathwaysoflight.org/lessons/51.html
+http://patient.cancerconsultants.com/hodgkins_cancer_news.aspx?id=17757
+http://patient.cancerconsultants.com/stemcell_treatment.aspx?id=942
+http://patients.uptodate.com/abstract.asp?TR=genr_med/31356&viewAbs=5~7~8~9~10&title=5,7-10
+http://patients.uptodate.com/frames.asp?page=topic.asp&file=endo_hor/6525
+http://patients.uptodate.com/frames.asp?page=topic.asp&file=wom_issu/2527
+http://patients.uptodate.com/print.asp?print=true&file=gi_dis/30709
+http://patients.uptodate.com/print.asp?print=true&file=hrt_fail/13549
+http://patients.uptodate.com/topic.asp?file=chd/45506
+http://patients.uptodate.com/topic.asp?file=pulm_inf/8745
+http://patrick.net/housing/crash.html
+http://patriotboy.blogspot.com/
+http://patriotboy.blogspot.com/2005_02_20_patriotboy_archive.html
+http://patriotleague.collegesports.com/sports/m-lacros/spec-rel/061505aaa.html
+http://paul-lehrman.com/insider/2003/08insider.html
+http://paulapeterson.com/Dr_Joe_Champion.html
+http://paulconley.blogspot.com/
+http://paulding.osu.edu/4h/fair/Handbook/handbook.htm
+http://paulorwin.blogspot.com/
+http://paulstudier.com/incometax/taxgo2.htm
+http://paultan.org/
+http://pavlov.net/blog/archives/2002/04/
+http://pawss.hampshire.edu/students/grad/
+http://payquickly.com/chargebacks_and_retrievals.htm
+http://pbackwriter.blogspot.com/
+http://pbahq.smartcampaigns.com/?q=
+http://pbahq.smartcampaigns.com/aggregator?from=35340
+http://pbahq.smartcampaigns.com/index.php?q=node/294
+http://pbahq.smartcampaigns.com/taxonomy/term/93
+http://pbisotopes.ess.sunysb.edu/esp/589_98/leibowitz/Index.htm
+http://pbokelly.blogspot.com/2005/04/seattle-times-business-technology_27.html
+http://pbskids.org/arthur/parentsteachers/schedule/ep_desc1_3.html
+http://pbskids.org/clifford/caregivers/activities/act_106b.html
+http://pbskids.org/clifford/parentsteachers/activities/be_a_good_friend/04_be_a_good_friend.html
+http://pbskids.org/clifford/parentsteachers/activities/play_fair/06_play_fair.html
+http://pbskids.org/dragontales/parentsteachers/episode_descriptions.html
+http://pbskids.org/itsmylife/emotions/death/print_article7.html
+http://pbskids.org/itsmylife/emotions/depression/article6.html
+http://pbskids.org/itsmylife/emotions/depression/print_article6.html
+http://pbskids.org/itsmylife/parents/lesson_plans/dangers_of_drug_abuse.html
+http://pbskids.org/itsmylife/school/teacher/article3.html
+http://pbskids.org/lions/newsletter/dad.html
+http://pbskids.org/lions/words/glass.html
+http://pbskids.org/rogers/parentsteachers/theme/1481_t_act.html
+http://pbskids.org/rogers/parentsteachers/theme/1576_p_act.html
+http://pbskids.org/sesame/caregivers/watch.html
+http://pbskids.org/zoom/activities/sci/coinsorter.html
+http://pbskids.org/zoom/activities/sci/coloringflowers.html
+http://pbskids.org/zoom/activities/sci/papercupwalk.html
+http://pbskids.org/zoom/activities/sci/recyclingpaper.html
+http://pc.gamespy.com/articles/549/549038p1.html
+http://pc.gamespy.com/pc/doom-3-resurrection-of-evil/601519p1.html
+http://pc.gamezone.com/gzreviews/r22041.htm
+http://pc.gamezone.com/gzreviews/r23276.htm
+http://pc.gamezone.com/news/10_13_04_09_39AM.htm
+http://pc.ign.com/
+http://pc.ign.com/articles/160/160584p1.html
+http://pc.ign.com/articles/162/162061p1.html
+http://pc.ign.com/articles/164/164170p1.html
+http://pc.ign.com/articles/164/164270p1.html
+http://pc.ign.com/articles/324/324034p2.html
+http://pc.ign.com/articles/431/431143p1.html
+http://pc.ign.com/articles/523/523604p1.html
+http://pc.ign.com/articles/584/584909p1.html
+http://pc.pickeringcollege.on.ca/faculty/shammell/website/Unit%20Website/03%20Field%20Mapping%20and%20Field%20Strength.htm
+http://pcasacas.org/SPC/spcissues/20.3/wedwick.htm
+http://pcasacas.org/SPC/spcissues/21.1/sauls.htm
+http://pcasacas.org/SPC/spcissues/21.3/hdavis.htm
+http://pclt.cis.yale.edu/pclt/COMM/ETHER.HTM
+http://pcp.lanl.gov/HAPPINES.html
+http://pcpfc.com/common_legal_terms.htm
+http://pcpitstop.ibforums.com/index.php?showtopic=79914
+http://pcpitstop.ibforums.com/index.php?showtopic=79914&view=getlastpost
+http://pcs.mgh.harvard.edu/Caring_Headlines/Archive/HTML/January%203,%202002%20Caring%20Headlines.htm
+http://pcs.mgh.harvard.edu/Caring_Headlines/Archive/HTML/July%2019,%202001%20Caring%20Headlines.htm
+http://pcworld.about.com/
+http://pcworld.about.com/news/Apr182001id47666.htm
+http://pcworld.about.com/news/Feb272002id86243.htm
+http://pcworld.about.com/news/May122004id116106.htm
+http://pcworld.about.com/news/Nov132001id70826.htm
+http://pcworld.com/resource/browse/0,cat,1272,pg,1,00.asp
+http://pd.cpim.org/2004/0118/01182004_h%20s%20surjeet.htm
+http://pd.cpim.org/2004/0411/04112004_Vajpayee-2.htm
+http://pd.cpim.org/2004/0725/07252004_parliament.htm
+http://pd.cpim.org/2004/0815/08152004_sitaram.htm
+http://pd.sparknotes.com/lit/casterbridge/section24.html
+http://pd.sparknotes.com/lit/dracula/section23.html
+http://pd.sparknotes.com/lit/opioneers/section16.html
+http://pd.sparknotes.com/shakespeare/romeojuliet/section9.html
+http://pdamerica.org/articles/events/play_LA-2004-10-18.php
+http://pdg.cecm.sfu.ca/hpcnet/hpn2000/final/
+http://pdixon.blogspot.com/2004_02_06_pdixon_archive.html
+http://pdonline.ascd.org/pd_demo/lesson.cfm?SID=48
+http://pe.usps.gov/text/Pub25/Pub25ch2.htm
+http://pe.usps.gov/text/standardeligibility/
+http://peace.mennolink.org/articles/weldonvictims.html
+http://peaceandjustice.org/article.php?story=20041227083808673
+http://peaceandjustice.org/index.php?topic=otherIssues
+http://peacecorpsonline.org/messages/messages/467/2021974.html
+http://peacefuljustice.caltech.edu/0418/1.shtml
+http://peacehq.tripod.com/peaceporridge2/PP-14.html
+http://peacemaker.zuiken.net/
+http://peaceworks.missouri.org/monitor/2005/spring-summer/5.html
+http://peakoil.blogspot.com/
+http://peakxml.com/archive/2003/11/03/150.aspx
+http://peanutmahoney.blogspot.com/
+http://peasoup.typepad.com/peasoup/2005/01/
+http://pebb.das.state.or.us/DAS/PEBB/eligrulehandbook.shtml
+http://pebbles.yewenyi.net/
+http://peculiar.wcw.net/
+http://ped.eurodyn.com/research/finished/rd_projects_materials-ps-fin.html
+http://pedagogism.blogspot.com/
+http://pediatrics.aappublications.org/cgi/content/full/111/6/1433
+http://pediatrics.about.com/library/blgiving_medicine_children.htm
+http://pedsccm.wustl.edu/EBJ/PROGNOSIS/Bandla-postop_CHD.html
+http://pedsccm.wustl.edu/EBJ/THERAPY/Busund-plasmaphersis.html
+http://peedee.redcross.org/chapter%207.htm
+http://peerspectives.org/ft/index.peer?page=fulltext&storyid=0177
+http://peerspectives.org/index.peer?page=main&storyid=0177
+http://peerspectives.org/index.peer?page=main&storyid=2158
+http://peerspectives.org/pages/printview.peer?type=main&storyid=0177
+http://peerspectives.org/pages/printview.peer?type=main&storyid=2158
+http://pegasus.cc.ucf.edu/~surette/lawenf.html
+http://pegasus.cityofveils.com/sffknow.phtml
+http://pegasus.rutgers.edu/~elflord/unix/bash-tute.html
+http://peggiesplace.gospelcom.net/words188.htm
+http://peixin.blogdrive.com/
+http://pej.org/html/modules.php?op=modload&name=News&file=article&sid=2720
+http://pej.org/html/print.php?sid=2720
+http://pekingduck.org/archives/001102.php
+http://pekingduck.org/archives/002171.php
+http://penelope.uchicago.edu/Thayer/E/Biographical/Diary/edited/1296/28.html
+http://penelope.uchicago.edu/Thayer/E/Gazetteer/Places/Europe/Italy/Lazio/Roma/Rome/Trajans_Column/John_Pollen/Arms_and_Equipment*.html
+http://penguincentral.com/journal-Jul04.html
+http://penguinscience.com/globec.htm
+http://penonfire.blogspot.com/2005/01/does-blogging-make-for-less-real.html
+http://pensieve.thinkingms.com/CommentView,guid,81e20e21-6ec6-4fed-9c89-a5b77d21aec6.aspx
+http://people-press.org/reports/display.php3?PageID=317
+http://people-press.org/reports/display.php3?PageID=879
+http://people.bu.edu/gorelik/Strasbourg_99.htm
+http://people.clarkson.edu/~shrm/membership.htm
+http://people.cs.uchicago.edu/~levow/research.htm
+http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03171.html
+http://people.debian.org/~enrico/survey/survey.php?field=IDF
+http://people.debian.org/~jblache/events/sl2004/
+http://people.freenet.de/patentgeschichte/dickens.htm
+http://people.hofstra.edu/faculty/Stefan_Waner/RealWorld/Summary5.html
+http://people.hofstra.edu/faculty/Stefan_Waner/RealWorld/finitetopic1/sampldistr.html
+http://people.howstuffworks.com/art.htm
+http://people.ucsc.edu/~boobles/album.php
+http://people.ucsc.edu/~mloik/
+http://people.ucsc.edu/~pasotti/140a/syllabus.htm
+http://people.ucsc.edu/~rosewood/writing/fiction/percytheghost.htm
+http://people.uis.edu/rschr1/onlinelearning/archive/2005_06_12_archive.html
+http://people.w3.org/rishida/scripts/bidi/
+http://pepperspray.lifetips.com/Cat.asp__Q__id__E__59741
+http://pepperspray.lifetips.com/cs/PepperSpray/Carrying-Pepper-Spray-When-and-Where/Tips.htm
+http://percy.leonardslosers.com/LLForm.nsf/0/1058f94dd7c178b485256db2004716a3?OpenDocument
+http://peripherals.about.com/od/cddvdburners/ss/NeroBackup_4.htm
+http://perl.apache.org/docs/1.0/guide/performance.html
+http://perl.plover.com/Questions.html
+http://perldoc.perl.org/perlbug.html
+http://perlmonks.thepen.com/415895.html
+http://perltidy.sourceforge.net/Tidy.html
+http://perlworks.com/papers/overture-click-protection-12_10_03.html
+http://pers-www.wlv.ac.uk/~in2021/friary.htm
+http://perseus.herts.ac.uk/prospectus/faculty_he/dep_hum/mg_humanities_modular/c_eng_lang_communication.cfm
+http://perseus.herts.ac.uk/uhinfo/prospectus/faculty_he/dep_hum/mg_humanities_modular/c_eng_lang_communication.cfm
+http://perso.fraise.net/
+http://personal.ecu.edu/mccartyr/poor-richards.html
+http://personal.fidelity.com/myfidelity/atn/archives/july2004.shtml
+http://personal.fidelity.com/myfidelity/atn/cover.shtml
+http://personal.fidelity.com/webxpress/help/topics/help_definition_m.shtml
+http://personal.law.miami.edu/~froomkin/articles/oceanno.htm
+http://personal.linkline.com/xymox/surnfor/surnam01.htm
+http://personal.macquarie.com.au/personal/access/online_access.htm
+http://personal.nbnet.nb.ca/rmcusack/Story-05.html
+http://personalinsure.about.com/
+http://personalinsure.about.com/od/health/a/aa102604a.htm
+http://personals-elite.com/search-pages/adult-personals.html
+http://personals.yahoo.com/static/success-story_23
+http://personalweb.miningco.com/b/a/142278.htm
+http://personalweb.smcvt.edu/thefort/History/ELMenOnDuty.htm
+http://personnel.ky.gov/info/emphb/leave.htm
+http://perspectives.com/forums/forum5/25716-6.html
+http://pespmc1.vub.ac.be/CLEA/Groups/Progress.html
+http://pespmc1.vub.ac.be/HAPPINES.html
+http://peswiki.com/index.php/Directory:Bedini_SG
+http://peswiki.com/index.php/Main_Page
+http://peteashton.com/01/05/chron.html
+http://peteashton.com/01/07/
+http://peteashton.com/01/07/chron.html
+http://peteashton.com/02/06/chron.html
+http://peteashton.com/02/07/chron.html
+http://peteashton.com/03/06/08/bringing_in_the_shee.html
+http://peteashton.com/04/04/
+http://peteashton.com/04/04/chron.html
+http://peteashton.com/04/05/
+http://peteashton.com/04/05/chron.html
+http://peteashton.com/cat/politics.html
+http://peterdavid.malibulist.com/
+http://peterdavid.malibulist.com/archives/000778.html
+http://peterdavid.malibulist.com/archives/001891.html
+http://petergreenaway.co.uk/dearphone.htm
+http://petermulhern.typepad.com/
+http://peterthink.blogs.com/
+http://peterthink.blogs.com/thinking/
+http://peterthink.blogs.com/thinking/2004/09/tips_for_pitchi.html
+http://peterthink.blogs.com/thinking/design/
+http://peterwestpublicrelations.blogspot.com/
+http://petesbloggerama.blogspot.com/2005/04/aspnet-20-speed-tests-wheres-fire.html
+http://petit.sebastien.free.fr/cutler.html
+http://petit.sebastien.free.fr/denio.html
+http://petplace.netscape.com/Articles/artShow.asp?artID=2583
+http://petplace.netscape.com/IntLearning/IntLearningResults.asp?cboAnimalType=4&optTopic=487&parentTopic=374
+http://petplace.netscape.com/articles/artPrinterFriendly.asp?conID=19752
+http://petplace.netscape.com/articles/artPrinterFriendly.asp?conID=22388
+http://petplace.netscape.com/articles/artShow.asp?artID=1218
+http://petplace.netscape.com/articles/artShow.asp?artID=2415
+http://petrarch.petersadlon.com/submissions/Alfrey.html
+http://pets.yahoo.com/pets/dogs/hn/caring_for_your_older_dog
+http://petsafe-warehouse.com/
+http://petshopgirl.blogsome.com/
+http://pewforum.org/docs/index.php?DocID=26
+http://pewforum.org/events/index.php?EventID=28
+http://pewforum.org/events/index.php?EventID=37
+http://pewforum.org/events/index.php?EventID=68
+http://pewforum.org/press/index.php?ReleaseID=13
+http://pfranc.com/projects/g45contr/status/v960219.htm
+http://pg.sitebase.net/global/aai/pages/content/faq.html
+http://pghbridges.com/articles/
+http://pghbridges.com/articles/pressroto_nevilleisland_i79/
+http://pghbridges.com/pittsburghW/0584-4480/eaststreetbr.htm
+http://pgmeter.sourceforge.net/pgmeter.htm
+http://phark.typepad.com/phark/2004/01/the_mysterious_.html
+http://pharmacy.dal.ca/pharmacy_1822.html
+http://pharmainfo.net/index.php?module=subjects&func=viewpage&pageid=89
+http://pharmainfo.net/subjects-viewpage-pageid-89.html
+http://pharmalicensing.com/features/disp/1117721311_429f12df5c8ee
+http://pharyngula.org/comments/426_0_1_0_C/
+http://pharyngula.org/index/pirate/comments/be_one_with_your_buddha_nature_my_son/
+http://pharyngula.org/index/weblog/comments/creationism_in_york_pennsylvania/
+http://pharyngula.org/index/weblog/comments/more_details_of_cephalopod_dinner_etiquette/
+http://pharyngula.org/index/weblog/comments/the_proper_reverence_due_those_who_have_gone_before/
+http://pharyngula.org/index/weblog/comments/torture_powerline_style/
+http://phaseit.net/claird/comp.lang.tcl/tk_option.tutorial
+http://pheedo.com/pollingstation/archives/2005/01/were_the_black.php
+http://phil.web.arizona.edu/faculty/extra/rhealey_realtime.htm
+http://philadelphia.about.com/cs/sports/a/smarty_jones_a.htm
+http://philadelphia.extension.psu.edu/Horticulture/UrbanGardenNewsletter_fall_01.html
+http://philgaming.com/boards/show.php/act/ST/f/5/t/78
+http://philip.greenspun.com/bboard/q-and-a-fetch-msg?msg_id=0004qU
+http://philip.greenspun.com/bg/
+http://philip.greenspun.com/materialism/kitchen
+http://philip.greenspun.com/photography/building-a-digital-slr-system
+http://philip.greenspun.com/research/year-2000
+http://philip.greenspun.com/tcl/introduction.adp
+http://philippinejobs.ph/companies/2004_05_12_jobs
+http://phillip.l.sublett.com/family/RedSublett.htm
+http://phillips.blogs.com/goc/2005/03/product_endorse.html
+http://philobiblion.blogspot.com/2005/03/carnivalesque-no-4.html
+http://philosophy.hku.hk/think/logic/basic.php
+http://philosophy.hku.hk/think/meaning/nsc.php
+http://philosophy.osu.edu/prospect.html
+http://philringnalda.com/blog/2005/04/got_bandwidth.php
+http://phoenicia.org/wreck.html
+http://phoenix.about.com/cs/events/a/festivals03.htm
+http://phoenix.bizjournals.com/phoenix/stories/2003/12/29/editorial3.html
+http://phoenix.gov/BUDGET/budmsg00.html
+http://phoenix.gov/DEVELOP/dabdec99.html
+http://phoenix.gov/NEWSREL/hlthfair.html
+http://phoenix.swarthmore.edu/2004-04-08/living/13930
+http://phoenix.swarthmore.edu/2005-02-17/news/14681
+http://phonebook.superpages.com/yellowpages/C-Heavy+Duty+Trucking/S-PA/T-Philadelphia/
+http://phonebook.superpages.com/yellowpages/C-Organ+Donation+&+Tissue+Banks/S-OH/T-Cincinnati/
+http://phonebook.superpages.com/yellowpages/C-Radio+Stations/S-MN/T-Marshall/
+http://phong.com/chunks/mysticism.php
+http://photography.about.com/
+http://photography.about.com/cs/digital/a/040703_3.htm
+http://photojpn.org/istore/shipping.php
+http://photomatt.net/2003/01/24/the-blogging-software-dilemma/
+http://photomatt.net/2005/04/01/a-response/
+http://php.dsnsports.com/lifesaving/content.php?name=medical&file=medical_policy_07
+http://phx.corporate-ir.net/phoenix.zhtml?c=132215&p=irol-newsArticle&ID=645478&highlight=
+http://phx.corporate-ir.net/phoenix.zhtml?c=147716&p=irol-newsArticle&ID=523070&highlight=
+http://phx.corporate-ir.net/phoenix.zhtml?c=147716&p=irol-newsArticle_Print&ID=523070&highlight=
+http://phx.corporate-ir.net/phoenix.zhtml?c=64256&p=irol-newsArticle&ID=705178&highlight=
+http://phx.corporate-ir.net/phoenix.zhtml?c=64256&p=irol-newsArticle_Print&ID=705178&highlight=
+http://phx.corporate-ir.net/phoenix.zhtml?c=71352&p=irol-newsArticle&ID=705740&highlight=
+http://phx.corporate-ir.net/phoenix.zhtml?c=79757&p=irol-IRHome
+http://phx.corporate-ir.net/phoenix.zhtml?c=80927&p=irol-newsArticle&t=Regular&id=637714&
+http://phx.corporate-ir.net/phoenix.zhtml?c=93082&p=irol-newsArticle&t=Regular&id=470501&
+http://phx.corporate-ir.net/phoenix.zhtml?c=93290&p=irol-newsArticle&ID=138710&highlight=
+http://phx.corporate-ir.net/phoenix.zhtml?c=93290&p=irol-newsArticle_Print&ID=138710&highlight=
+http://phys4.harvard.edu/~wilson/resource_letter.html
+http://physicaltherapy.org/packer/backpain/
+http://physics.bu.edu/gradreq.html
+http://physics.iop.org/IOP/Press/PR7603.html
+http://physics.nist.gov/GenInt/Time/early.html
+http://physics.nist.gov/TechAct/Div840/director.html
+http://physics.uchicago.edu/instruction/general.html
+http://physics.ucsd.edu/~iksgrp/HighTemp.html
+http://physics.usask.ca/~angie/ep414/labmanual/GNUdoc/make/make_17.html
+http://physics.webplasma.com/physics01.html
+http://physics.webplasma.com/physics09.html
+http://physicsweb.org/article/news/6/4/12
+http://physicsweb.org/article/world/11/11/10
+http://physicsweb.org/article/world/12/2/8
+http://physicsweb.org/article/world/13/11/8
+http://physicsweb.org/article/world/13/11/9
+http://physicsweb.org/articles/world/12/2/8/1
+http://physicsweb.org/articles/world/13/11/9/1
+http://physicsweb.org/articles/world/17/10/2
+http://physicsweb.org/resources/
+http://physnet2.pa.msu.edu/workbook/m401.html
+http://physorg.com/news2703.html
+http://physorg.com/news2845.html
+http://physorg.com/news2861.html
+http://physuna.phs.uc.edu/suranyi/IntroQM/Conceptual/session-s3a.html
+http://pi0657.kub.nl/~signll/cfp.html
+http://pianoeducation.org/pnojudge.html
+http://pianoeducation.org/pnolearn.html
+http://pianoeducation.org/pnosoftr.html
+http://pianoeducation.org/pnousoft.html
+http://pib.nic.in/archive/bud9899/98budget994.html
+http://pidp.eastwestcenter.org/pireport/2005/February/02-02-06.htm
+http://pidp.eastwestcenter.org/pireport/2005/February/tcp-cnmi.htm
+http://pierre.typepad.com/pierre/2004/01/dont_cut_my_tax.html
+http://pigpog.com/sam/blog/
+http://pilger.carlton.com/forums?mid=20163
+http://pilger.carlton.com/globalisation/economy
+http://pilgrimproduction.net/sacredharp/union/whenwordsfail.html
+http://pinayexpat.net/
+http://pinayexpat.net/?p=165
+http://pinkadelic.typepad.com/body/
+http://pinker.wjh.harvard.edu/articles/media/2005_02_14_newrepublic.html
+http://pinkmonkey.com/booknotes/monkeynotes/pmBeanTrees21.asp
+http://pinr.com/report.php?ac=view_printable&report_id=249&language_id=1
+http://pinr.com/report.php?ac=view_report&report_id=249&language_id=1
+http://pipe.laying.fitter.jobs.jobsearchsite.com/
+http://pipka.org/blog/
+http://pirate.planetarion.com/showthread.php?goto=lastpost&t=182109
+http://pirate.planetarion.com/showthread.php?t=182109&page=4
+http://pirt.asu.edu/detail_10.asp?ID=1929
+http://pirt.asu.edu/detail_10.asp?ID=1929&offset=-1
+http://pisa.ucsd.edu/cse125/2004/cse125g5/final.html
+http://pith.org/pith/?20000512
+http://pith.org/pith/?20000810
+http://pith.org/pith/?20000825
+http://pith.org/pith/?20001019
+http://pittsburgh.about.com/cs/pennsylvania/a/amish_2.htm
+http://pittsburgh.bizjournals.com/pittsburgh/stories/2004/05/17/daily29.html
+http://pittsburgh.indymedia.org/news/2005/06/18874.php
+http://pittsburghendthewar.org/mamb/index.php?option=com_content&task=view&id=52&Itemid=2
+http://pittsburghlive.com/x/dailycourier/progress2004/s_184775.html
+http://pittsburghlive.com/x/tribune-review/trib/regional/s_339167.html
+http://pittsburghskiclub.org/racing.htm
+http://piug.derwent.co.uk/archive/piug/0218.html
+http://pizzatoday.com/frontofthehouse_articles.shtml?article=MjIxOXN1cGVyMjIxNnNlY3JldDIyMjM=
+http://pla.blogspot.com/2003_07_20_pla_archive.html
+http://planet.tvi.edu/perkins/infotech/Infotech%20Advisiory%20Committee%20-%20Gallery%20Walk%20summary.htm
+http://planetmagrathea.com/longreview1.html
+http://planetsean.blogspot.com/archives/2004_05_23_planetsean_archive.html
+http://planetside.stratics.com/content/gameplay/outfits/index.php
+http://planning.city.cleveland.oh.us/cwp/landuse.htm
+http://planning.co.cuyahoga.oh.us/blog/2005_04_01_archive.html
+http://planningcommission.nic.in/reports/genrep/arep9099/ar98-99.htm
+http://plantpath.osu.edu/faculty/ellis.php
+http://plasticbugs.com/
+http://plastics.2456.com/eng/epub/details.asp?epubiid=3&id=9751
+http://platform.blogs.com/passionofthepresent/2004/07/update_talks_ha.html
+http://platinum.freetranslation.com/help_and_faq.asp
+http://plato-dialogues.org/works.htm
+http://plato.acadiau.ca/courses/biol/Microbiology/transfer.htm
+http://plato.stanford.edu/entries/beauvoir/
+http://plato.stanford.edu/entries/brentano-judgement/
+http://plato.stanford.edu/entries/contractarianism-contemporary/
+http://plato.stanford.edu/entries/darwinism/
+http://plato.stanford.edu/entries/doing-allowing/
+http://plato.stanford.edu/entries/events/
+http://plato.stanford.edu/entries/evolutionary-genetics/
+http://plato.stanford.edu/entries/federalism/
+http://plato.stanford.edu/entries/film/
+http://plato.stanford.edu/entries/freedom-speech/
+http://plato.stanford.edu/entries/freewill/
+http://plato.stanford.edu/entries/game-theory/
+http://plato.stanford.edu/entries/godwin/
+http://plato.stanford.edu/entries/heaven-hell/
+http://plato.stanford.edu/entries/hobbes-moral/
+http://plato.stanford.edu/entries/legal-econanalysis/
+http://plato.stanford.edu/entries/legal-econanalysis/notes.html
+http://plato.stanford.edu/entries/legal-rights/
+http://plato.stanford.edu/entries/montesquieu/
+http://plato.stanford.edu/entries/moral-responsibility/
+http://plato.stanford.edu/entries/necessary-sufficient/
+http://plato.stanford.edu/entries/patrizi/
+http://plato.stanford.edu/entries/peter-spain/
+http://plato.stanford.edu/entries/principia-mathematica/
+http://plato.stanford.edu/entries/private-language/
+http://plato.stanford.edu/entries/reference/
+http://plato.stanford.edu/entries/rights-human/
+http://plato.stanford.edu/entries/scottish-19th/
+http://plato.stanford.edu/entries/set-theory/
+http://plato.stanford.edu/entries/whewell/
+http://plato.thefreelibrary.com/Republic/2-23
+http://plausible.custompublish.com/cparticle203175-5911.html
+http://plaza.ufl.edu/brusky/finalresearchpaper.html
+http://plaza.ufl.edu/chanji/MUS1500.htm
+http://pleasantonrage.org/
+http://pless.princeton.edu/faq.html
+http://plig.org/things/beatles.html
+http://plone.urbanforestrysouth.org/Resources/Library/Citation.2004-05-24.5019
+http://pluckypunk.blogspot.com/2005_03_01_pluckypunk_archive.html
+http://plumer.blogspot.com/
+http://pluralsight.com/blogs/craig/archive/2004/09/15/2274.aspx
+http://plus.maths.org/issue14/features/smith/
+http://plus.maths.org/issue27/interview/
+http://plus.maths.org/issue30/features/wilson/
+http://plus.maths.org/issue32/interview/
+http://plus.maths.org/people/
+http://pm.gc.ca/eng/news.asp?id=177
+http://pm.gc.ca/eng/news.asp?id=266
+http://pm.gc.ca/eng/news.asp?id=379
+http://pm.gc.ca/eng/news.asp?id=476
+http://pm.gc.ca/eng/news.asp?id=501
+http://pm.gc.ca/eng/sft-ddt.asp
+http://pm.gc.ca/eng/sft-ddt.asp?id=2
+http://pm.typepad.com/professional_marketing_bl/
+http://pmb.co.za/business/classifieds.asp?classType=classifieds
+http://pmbryant.typepad.com/b_and_b/2005/02/cloudy_skies.html
+http://pmd.sourceforge.net/rules/design.html
+http://pmep.cce.cornell.edu/profiles/miscpesticides/methylchloride-xanthangum/pigments/pigment-prop-tol.html
+http://pmj.bmjjournals.com/cgi/content/full/76/897/426
+http://pmj.bmjjournals.com/cgi/content/full/78/924/573
+http://pmo-sun.uoregon.edu/~pmo/class_outreach_gen_overview_nov03.html
+http://podaac.jpl.nasa.gov/sst/
+http://podiumgames.net/eternaldaughter/enemies.htm
+http://poetryclub.blogdrive.com/
+http://point.blogs.com/
+http://poisonivy.aesir.com/view/control.html
+http://pokedream.com/games/fireleaf/linking/
+http://pokerintheweeds.blogspot.com/2004_07_01_pokerintheweeds_archive.html
+http://poland.indymedia.org/pl/2005/06/14496.shtml
+http://polaris.gseis.ucla.edu/pagre/
+http://polaris.gseis.ucla.edu/pagre/conservatism.html
+http://polaris.gseis.ucla.edu/pagre/notes/98-8-12.html
+http://polaris.gseis.ucla.edu/pagre/organizing.html
+http://policechiefmagazine.org/magazine/index.cfm?fuseaction=display_arch&article_id=336&issue_id=72004
+http://policies.memphis.edu/UM1598.htm
+http://policy.fws.gov/621fw3.html
+http://policy.greenparty.org.uk/mfss/agric.html
+http://policy.greenparty.org.uk/mfss/industry.html
+http://policy.ssa.gov/poms.NSF/LNX/0424515055
+http://polihale.com/display/60186
+http://politedissent.com/archives/223
+http://politicalbetting.com/index.php/archives/2004/09/02/can-blair-do-it-without-the-chattering-classes/
+http://politicalbetting.com/index.php/archives/2004/09/email_form.php?p=324
+http://politicalbetting.com/index.php/archives/2005/01/07/general-election-competition-two-days-to-go/
+http://politicalbetting.com/index.php/archives/2005/01/21/index.php?p=621
+http://politicalbetting.com/index.php/archives/2005/02/02/index.php?p=621
+http://politicalbetting.com/index.php/archives/2005/02/02/scottish-boundary-changes-finalised/
+http://politicalbetting.com/index.php/archives/2005/02/04/could-the-scottish-regiment-issue-cost-labour-seats/
+http://politicalbetting.com/index.php/archives/2005/06/08/populus-boost-for-clarke/index.php?p=974
+http://politicalbetting.com/index.php/archives/2005/06/17/index.php?p=974
+http://politicalbetting.com/index.php/archives/2005/06/email_form.php?p=974
+http://politicalgraveyard.com/special/attempts.html
+http://politicalhumor.about.com/library/bldailyfeed3.htm
+http://politicalhumor.about.com/library/blschwarzeneggerjokes.htm
+http://politicalhumor.about.com/od/multimedia/v/colinpowellymca_p.htm
+http://politicalusa.com/columnists/andersen/andersen_042.htm
+http://politicalwire.com/
+http://politics.guardian.co.uk/apathy/comment/0,12822,1205037,00.html
+http://politics.guardian.co.uk/cherie/story/0,12713,857761,00.html
+http://politics.guardian.co.uk/columnist/story/0,9321,1129889,00.html
+http://politics.guardian.co.uk/columnist/story/0,9321,1231268,00.html
+http://politics.guardian.co.uk/columnist/story/0,9321,1496386,00.html
+http://politics.guardian.co.uk/conservatives/story/0,9061,1479572,00.html
+http://politics.guardian.co.uk/constitution/story/0,9061,1424086,00.html
+http://politics.guardian.co.uk/economics/comment/0,11268,1288180,00.html
+http://politics.guardian.co.uk/economics/story/0,11268,1515042,00.html
+http://politics.guardian.co.uk/egovernment/story/0,12767,1272498,00.html
+http://politics.guardian.co.uk/election/comment/0,15803,1475139,00.html
+http://politics.guardian.co.uk/election/story/0,15803,1457721,00.html
+http://politics.guardian.co.uk/election/story/0,15803,1473993,00.html
+http://politics.guardian.co.uk/election/story/0,15803,1477676,00.html
+http://politics.guardian.co.uk/election/story/0,15803,1477853,00.html
+http://politics.guardian.co.uk/election/story/0,15803,1478484,00.html
+http://politics.guardian.co.uk/election2005/policyguide/environment.html
+http://politics.guardian.co.uk/elections2004/story/0,14549,1238319,00.html
+http://politics.guardian.co.uk/esf/0,15212,1326215,00.html
+http://politics.guardian.co.uk/eu/comment/0,9236,1496387,00.html
+http://politics.guardian.co.uk/eu/story/0,9061,1494445,00.html
+http://politics.guardian.co.uk/euro/story/0,9061,972414,00.html
+http://politics.guardian.co.uk/foreignaffairs/story/0,11538,1322563,00.html
+http://politics.guardian.co.uk/gall/0,9352,802530,00.html
+http://politics.guardian.co.uk/green/story/0,9061,1500648,00.html
+http://politics.guardian.co.uk/interviews/story/0,11660,1473994,00.html
+http://politics.guardian.co.uk/iraq/story/0,12956,1170635,00.html
+http://politics.guardian.co.uk/kelly/0,13747,1002607,00.html
+http://politics.guardian.co.uk/labour/story/0,9061,1484106,00.html
+http://politics.guardian.co.uk/labour2001/story/0,1414,562006,00.html
+http://politics.guardian.co.uk/labour2002/0,12294,765672,00.html
+http://politics.guardian.co.uk/labour2004/story/0,14991,1313138,00.html
+http://politics.guardian.co.uk/labour2004/story/0,14991,1313223,00.html
+http://politics.guardian.co.uk/libdems/story/0,9061,1457722,00.html
+http://politics.guardian.co.uk/lords/story/0,9061,858034,00.html
+http://politics.guardian.co.uk/media/story/0,12123,1500222,00.html
+http://politics.guardian.co.uk/politicspast/story/0,9061,1410907,00.html
+http://politics.guardian.co.uk/polls/story/0,11030,1313082,00.html
+http://politics.guardian.co.uk/tories2003/0,13807,1017052,00.html
+http://politics.guardian.co.uk/tories2003/story/0,13807,1057994,00.html
+http://politics.guardian.co.uk/tories2003/story/0,13807,1058763,00.html
+http://politics.onlinebizplanner.com/flying-debris.htm
+http://politicspa.com/features/mostpoliticallypowerfulwomen.htm
+http://polyticks.com/home/Talora/Dragon/Mad.htm
+http://pondside.uchicago.edu/ecol-evol/faculty/bergelson_j.html
+http://poneill.ucd.ie/imc/Playbank.htm
+http://poolmgr.informatik.uni-freiburg.de/extern/doc/make/make_17.html
+http://poorman.blogspot.com/
+http://popconnect.org/Action_Alerts/alert458.html
+http://popeyeafrica.blogspot.com/2004_12_05_popeyeafrica_archive.html
+http://popshot.net/features/000063.html
+http://popularandcompetent.blognz.com/
+http://popularandcompetent.blognz.com/archives/2005_02.html
+http://porktornado.diaryland.com/albumcover.html
+http://porktornado.diaryland.com/neighbor.html
+http://porsche.tobe.com/
+http://port80.blogsome.com/2004/06/
+http://portal.acm.org/citation.cfm?doid=501978.501979
+http://portal.acm.org/citation.cfm?id=1052829.1052843
+http://portal.acm.org/citation.cfm?id=1063979.1063983
+http://portal.acm.org/citation.cfm?id=1065895.1065906
+http://portal.acm.org/citation.cfm?id=120319.120323
+http://portal.acm.org/citation.cfm?id=168430
+http://portal.acm.org/citation.cfm?id=203330.203347
+http://portal.acm.org/citation.cfm?id=203345
+http://portal.acm.org/citation.cfm?id=203347
+http://portal.acm.org/citation.cfm?id=223268
+http://portal.acm.org/citation.cfm?id=272329
+http://portal.acm.org/citation.cfm?id=29023
+http://portal.acm.org/citation.cfm?id=305786.305842
+http://portal.acm.org/citation.cfm?id=356612.356615
+http://portal.acm.org/citation.cfm?id=356615
+http://portal.acm.org/citation.cfm?id=359842.359848
+http://portal.acm.org/citation.cfm?id=582152
+http://portal.acm.org/citation.cfm?id=628306.628532
+http://portal.acm.org/citation.cfm?id=634067.634146
+http://portal.acm.org/citation.cfm?id=634146
+http://portal.acm.org/citation.cfm?id=67449.67516
+http://portal.acm.org/citation.cfm?id=67450.67516
+http://portal.acm.org/citation.cfm?id=774159
+http://portal.acm.org/citation.cfm?id=83644
+http://portal.acm.org/ft_gateway.cfm?id=1037316&type=pdf
+http://portal.acm.org/ft_gateway.cfm?id=218347&type=pdf
+http://portal.acm.org/ft_gateway.cfm?id=230513&type=pdf
+http://portal.acm.org/ft_gateway.cfm?id=354682&type=pdf
+http://portal.acm.org/ft_gateway.cfm?id=602883&type=pdf
+http://portal.acm.org/ft_gateway.cfm?id=985718&type=pdf
+http://portal.opera.com/search/dir.dml?cat=140566
+http://portal.sfusd.edu/template/default.cfm?page=board_policies
+http://portal.telegraph.co.uk/news/main.jhtml?xml=/news/2005/02/04/nrack104.xml&sSheet=/news/2005/02/04/ixhome.html
+http://portal.unesco.org/ci/en/ev.php-URL_ID=17482&URL_DO=DO_TOPIC&URL_SECTION=201.html
+http://portal.unesco.org/education/en/ev.php-URL_ID=10318&URL_DO=DO_PRINTPAGE&URL_SECTION=201.html
+http://portal.unesco.org/education/en/ev.php-URL_ID=10318&URL_DO=DO_TOPIC&URL_SECTION=201.html
+http://portal.wikinerds.org/styleguide
+http://portalsanmiguel.com/lifestyle/residents-speak.html
+http://portland.indymedia.org/en/2004/10/300649.shtml
+http://portland.indymedia.org/en/2005/04/315763.shtml
+http://portland.indymedia.org/en/feature/archive30.shtml
+http://portlandor.about.com/od/tvcelebs/a/amrace5epi1.htm
+http://portugal-info.net/costaprata/coimbra.htm
+http://post-dogmatist-arts.net/museum/lingo/document17.htm
+http://post.queensu.ca/~jameswc/Design/backgroundinterests.htm
+http://postcard-direct.com/
+http://postharvest.tfrec.wsu.edu/pgDisplay.php?article=N4I1A
+http://postsecret.blogspot.com/
+http://potrace.sourceforge.net/potrace.html
+http://povonline.com/cols/COL018.htm
+http://povonline.com/cols/COL157.htm
+http://powayusd.sdcoe.k12.ca.us/projects/ms/scifair.htm
+http://powellassoc.com/contact.html
+http://powereality.tripod.com/capitalpunishment/
+http://powerlineblog.com/archives/001884.php
+http://powerlineblog.com/archives/009062.php
+http://powerlineblog.com/archives/009397.php
+http://powerlineblog.com/archives/010601.php
+http://powerlineblog.com/archives/2005_02.php
+http://powerlineblog.com/archives/2005_03.php
+http://powerlineblog.com/archives/2005_04.php
+http://powermarketers.netcontentinc.net/newsreader.asp?ppa=8kowu%5DZkoieiqqTUjf%7D38%7Dbfek%5C!
+http://powermin.nic.in/acts_notification/electricity_act2003/appellate_tribunal_%20electricity.htm
+http://powermin.nic.in/acts_notification/electricity_act2003/offences_%20penalties.htm
+http://powermin.nic.in/acts_notification/energy_conservation_act/chapter9.htm
+http://powersitesystem.com/
+http://powwow-online.tripod.com/urbanlegends.htm
+http://poynter.indiana.edu/tre/kdp-writing.html
+http://poynter.org/column.asp?id=32&aid=48098
+http://poynter.org/content/content_view.asp?id=5882
+http://ppbsa.org/cam/sabattis/Trek.htm
+http://ppc.thomson.com/ppcNet/index.cfm?txtFuse=dspShellContent&fuseAction=DISPLAY&numContentID=87443&numTaxonomyID=220
+http://ppc.uiowa.edu/driving-assessment/2001/Summaries/Driving%20Assessment%20Papers/53_Staplin_Loren.htm
+http://ppewww.ph.gla.ac.uk/~flavell/marmalade.html
+http://ppewww.ph.gla.ac.uk/~flavell/www/
+http://ppm.intergraph.com/insight/5-2/4-taw.asp
+http://pptkids.org/
+http://pr.caltech.edu/events/caltech_nobel/
+http://pr.caltech.edu/periodicals/336/articles/Volume%202/02-21-02/davidson.html
+http://pr.caltech.edu/periodicals/CaltechNews/articles/v37/caltech911.html
+http://pr.gallaudet.edu/dpn/issues/THEWEEK/whysuccess.html
+http://practice.findlaw.com/20questions-1003.html
+http://practice.findlaw.com/archives/20questions_1202.html
+http://practice.findlaw.com/archives/editorscorner_0403.html
+http://practice.findlaw.com/archives/litcost_1102.html
+http://practice.findlaw.com/archives/tooltalk_1002.html
+http://practice.findlaw.com/archives/tooltalk_1202.html
+http://practice.findlaw.com/feature-0505.html
+http://prairiehome.publicradio.org/
+http://prairiehome.publicradio.org/features/deskofgk/990906_time.shtml
+http://prairiehome.publicradio.org/features/hodgepodge/19951028_writers/
+http://prants.paulnyujeo.com/
+http://pratie.blogspot.com/2005/03/where-did-this-come-from-part-two.html
+http://praxeology.net/GM-PS.htm
+http://praxeology.net/unblog05-04.htm
+http://prayerfoundation.org/lay_monastic_community_portland.htm
+http://pregnancy.about.com/
+http://pregnancy.about.com/b/archives.htm
+http://pregnancy.parenthood.com/visitor.html
+http://pregnancytoday.com/reference/articles/waitingtoeat.htm
+http://preposterousuniverse.blogspot.com/2004/10/tangled-bank-13.html
+http://preposterousuniverse.blogspot.com/2004_04_01_preposterousuniverse_archive.html
+http://prepsports.stltoday.com/ssi/prep/stories2005.nsf/football/story/5E8D1E05FA34DA1286256F750014D480?OpenDocument&Headline=%3Cfont+size%3D0%3EFootball%3C%2Ffont+size%3E%3Cbr%3EParkway+Central's+Scott
+http://presenter.openworld.com/
+http://presentsimple.blogspot.com/
+http://president.arizona.edu/initiatives/focused-excellence/changing-directions/historic-opportunity/
+http://president.osu.edu/speeches/trustees_02-04-05.php
+http://president.osu.edu/speeches/trustees_09-22-04.php
+http://presidioworldcollege.org/mba_curriculum.php
+http://press-pubs.uchicago.edu/founders/documents/a1_8_12s19.html
+http://press-pubs.uchicago.edu/founders/documents/a1_8_12s23.html
+http://press-pubs.uchicago.edu/founders/documents/a1_8_18s11.html
+http://press-pubs.uchicago.edu/founders/documents/bill_of_rightss7.html
+http://press-pubs.uchicago.edu/founders/documents/v1ch15s34.html
+http://press-pubs.uchicago.edu/founders/documents/v1ch17s22.html
+http://press-pubs.uchicago.edu/founders/documents/v1ch18s5.html
+http://press-pubs.uchicago.edu/founders/documents/v1ch2I.html
+http://press-pubs.uchicago.edu/founders/documents/v1ch2s12.html
+http://press-pubs.uchicago.edu/founders/documents/v1ch2s24.html
+http://press-pubs.uchicago.edu/founders/documents/v1ch2s25.html
+http://press-pubs.uchicago.edu/founders/documents/v1ch2s5.html
+http://press-pubs.uchicago.edu/founders/documents/v1ch2s6.html
+http://press-pubs.uchicago.edu/founders/documents/v1ch7s1.html
+http://press-pubs.uchicago.edu/founders/print_documents/v1ch18s5.html
+http://press-pubs.uchicago.edu/founders/print_documents/v1ch2I.html
+http://press-pubs.uchicago.edu/founders/print_documents/v1ch2s12.html
+http://press.arrivenet.com/bus/article.php/549825.html
+http://press.arrivenet.com/nfp/article.php/649715.html
+http://press.georgetown.edu/checklist.html
+http://press.hotwire.com/index.php/press_releases/pr2001/4.html
+http://press.jrc.it/NewsBrief/alertedition/en/Transport.html
+http://press.nokia.com/PR/200109/834494_5.html
+http://press.oreilly.com/pub/pr/1066
+http://press.oreilly.com/pub/pr/1343
+http://pressherald.mainetoday.com/news/state/050609redtide.shtml
+http://pressherald.mainetoday.com/specialrpts/sanford/san43.htm
+http://pressroom.hallmark.com/val_day_universal-symbol.html
+http://preteenagerstoday.com/resources/articles/mamasboy.htm
+http://prezkennedy.org/
+http://primal-page.com/gerald.htm
+http://primary2000.ss.ca.gov/VoterGuide/Propositions/18text.htm
+http://primates.ximian.com/~federico/news-2001-05.html
+http://primates.ximian.com/~federico/news-2002-05.html
+http://primeministers.naa.gov.au/meetpm.asp?pmId=23&pageName=inoffice
+http://primermovie.com/phpBB2/viewtopic.php?t=628
+http://primes.utm.edu/largest.html
+http://primetimetv.about.com/library/bler9episode17.htm
+http://primetimetv.about.com/library/bler9episode19.htm
+http://print.bankruptcy.findlaw.com/bankruptcy/debt_options/bankruptcy_overview_overview.html
+http://print.bankruptcy.findlaw.com/bankruptcy/debt_options/debt_options_bankruptcy.html
+http://print.jobfind.com/news/career_connection/cannon10162001.htm
+http://prior-learning.athabascau.ca/cgi-bin/PLA/fullcritview.cgi?CriteriaTableID=v1&ProgName=UC%20Counselling%20Women&ProgID=14
+http://prisonerjw7874.blogspot.com/
+http://prisonministry.net/brcbc
+http://prisonplanet.com/Pre_Attack_Memo_Cited_Bin_Laden.htm
+http://prisonplanet.com/president_holds_town_hall_forum.html
+http://privacy.yahoo.com/privacy/ca/
+http://privacypolicy.umusic.com/
+http://privatecitizen.com/tcpa.htm
+http://privateschool.about.com/
+http://privateschool.about.com/cs/choosingaschool/a/rightchoice_2.htm
+http://privateschool.about.com/cs/forteachers/a/beating_2.htm
+http://privateschool.about.com/od/identifyingschools/qt/criteria.htm
+http://prl.jpl.nasa.gov/projects/lemur1/technology/lemur_vision.html
+http://prochoiceaction.org/can/notice-description.tcl?newsletter_id=3677045
+http://productfinder.gcn.com/search/keyword/gcn/Biometrics%20Conference/Biometrics%20Conference
+http://productfinder.gcn.com/search/keyword/gcn/Congressional%20Conference/Congressional%20Conference
+http://productfinder.gcn.com/search/keyword/gcn/Government%20Technology%20Conference/Government%20Technology%20Conference
+http://productfinder.gcn.com/search/keyword/gcn/How%20Government%20Has%20Helped%20With%20Public%20Safety/How%20Government%20Has%20Helped%20With%20Public%20Safety
+http://productfinder.gcn.com/search/keyword/gcn/Medication%20Compliance%20Expert%20Conference%20Software/Medication%20Compliance%20Expert%20Conference%20Software
+http://productfinder.gcn.com/search/keyword/gcn/Medication%20Compliance%20Expert%20Conference/Medication%20Compliance%20Expert%20Conference
+http://productfinder.infoworld.com/infoworld/search/viewabstract/60217/index.jsp
+http://productfinder.infoworld.com/search/keyword/infoworld/Web%20Builder%20Conference/Web%20Builder%20Conference
+http://productfinder.washingtontechnology.com/search/keyword/washingtontechnology/Congressional%20Conference%20Software/Congressional%20Conference%20Software
+http://productfinder.washingtontechnology.com/search/keyword/washingtontechnology/Defense%20Supply%20Service-%20Washington%20Statement%20Of%20Work%20Software/Defense%20Supply%20Service-%20Washington%20Statement%20Of%20Work%20Software
+http://productfinder.washingtontechnology.com/search/keyword/washingtontechnology/Government%20Business%20Process%20Management/Government%20Business%20Process%20Management
+http://productivity-software.com/aetracker/
+http://productivity-software.com/sbtracker/
+http://products.consumerguide.com/articles/view.epub?articleId=100016
+http://products.consumerguide.com/reviews/product.epub?productId=23675
+http://products.consumerguide.com/reviews/product.epub?productId=25954
+http://products.ecommerce-guide.com/networking/tools/1105379646.html
+http://products.thalesnavigation.com/en/products/aboutgps/rtk.asp
+http://products.thalesnavigation.com/en/solutions/marine/hydrography.asp
+http://profblogger.blogspot.com/
+http://profdev.lp.findlaw.com/column/article1.html
+http://profdev.lp.findlaw.com/column/column18.html
+http://professionalslacker.blogspot.com/2004_07_01_professionalslacker_archive.html
+http://profs.lp.findlaw.com/bankruptcy/bankruptcy_7.html
+http://profs.lp.findlaw.com/c_enforce/c_enforce_1.html
+http://profs.lp.findlaw.com/privacy/1b.html
+http://programs.gradschools.com/east/health_services_research.html
+http://programs.gradschools.com/west/applied_psychology.html
+http://progressivegoldbeta.blogspot.com/
+http://proicehockey.about.com/
+http://proicehockey.about.com/cs/2003stanleycup/a/Devils_win.htm
+http://proicehockey.about.com/cs/2004stanleycup/a/round_two_prevu_2.htm
+http://proicehockey.about.com/cs/stanleycupbunker/a/2004_contenders.htm
+http://project-care.org/stress.htm
+http://project-pat.letras.terra.com.br/letras/183399/
+http://projectaon.proboards30.com/index.cgi?action=gotopost&board=open&thread=1091331521&post=1118652807
+http://projectparadox.f2o.org/thoughts/sayings.php
+http://projects-2005.jrc.cec.eu.int/show.gx?Object.object_id=PROJECTS000000000001A2ED
+http://projects.is.asu.edu/pipermail/hpn/2001-March/003164.html
+http://projects.jrc.cec.eu.int/show.gx?Object.object_id=PROJECTS000000000001AB36
+http://projects.o-hand.com/matchbox/
+http://projects.puremagic.com/greylisting/whitepaper.html
+http://projects.vassar.edu/1896/whatsthematter.html
+http://proliberty.com/observer/19990305.htm
+http://proliberty.com/observer/20030104.htm
+http://prome.snu.ac.kr/~igucom/activities.html
+http://promontoryartists.org/lookingcloser/movie%20reviews%5CA-G%5Cenglishpatient.htm
+http://promontoryartists.org/lookingcloser/movie%20reviews%5CH-P%5Clittlesecrets.htm
+http://promote-opensource.org/
+http://proofingsolutions.efi.com/index.php?sv=127
+http://property.timesonline.co.uk/article/0,,14029-1469514,00.html
+http://property.timesonline.co.uk/article/0,,14049-1665898,00.html
+http://property.uk.freeads.net/floor.htm
+http://prorev.com/2005/06/glass-wall-of-media-coverage.htm
+http://prorev.com/freedc.htm
+http://prorev.com/thingstodo.htm
+http://prototypo.blogspot.com/
+http://provost.ucsd.edu/muir/commencement/faq.htm
+http://proxy.espn.go.com/chat/chatESPN?event_id=6615
+http://proxy.espn.go.com/et/corr/corrview?id=367&leagueCup=ENG.1&cc=5901
+http://prstudies.typepad.com/weblog/books/
+http://prtl.uhcl.edu/pls/portal/url/ITEM/80B7C2937E3846539941B871066DC402
+http://pruffle.mit.edu/~ccarter/tms_evolver_paper/tms_paper/node4.html
+http://prwdot.org/?p=archives/cat_married_life
+http://prwdot.org/archives/cat_married_life.html
+http://ps.psychiatryonline.org/cgi/content/full/49/9/1187
+http://ps.psychiatryonline.org/cgi/content/full/55/1/19
+http://ps.psychiatryonline.org/cgi/content/full/55/4/445
+http://ps2.gamespy.com/
+http://ps2.gamespy.com/playstation-2/the-suffering-ties-that-bind/588689p1.html
+http://ps2.gamezone.com/gzreviews/r23068.htm
+http://ps2.ign.com/articles/084/084291p1.html
+http://ps2.ign.com/articles/164/164008p1.html
+http://ps2.ign.com/articles/165/165003p1.html
+http://ps2.ign.com/articles/166/166438p1.html
+http://psa-rising.com/caplinks/livingwell.htm
+http://psa-rising.com/med/painmanage/radiotherapy_for_pain.html
+http://psac.uchicago.edu/blogs/libby.html
+http://psalm121.ca/BlessingsOfChristmas/troubleinn.html
+http://psalm121.ca/april2004.html
+http://psalm121.ca/prayer.html
+http://psbg.emusician.com/ar/emusic_good_references/
+http://psc.cyoconnor.tafe.wa.edu.au/student/search/ModuleDetail.asp?ID=17537
+http://psci-com.ac.uk/browse/detail/e9c744bcaa70221c7bc1aad781b42252.html
+http://psci-com.ac.uk/browse/detail/ec9e7bc17af3a1122f25f9ed35a3d7d3.html
+http://psidonline.isr.umich.edu/Guide/Quality/q_inc_data.html
+http://psnet.ahrq.gov/glossary.aspx
+http://psp.gamezone.com/gamesell/p25466.htm
+http://psy.otago.ac.nz/epc/abstracts/abstractsB.htm
+http://psy1.clarion.edu/mm/General/Methods/Methods.html
+http://psych.athabascau.ca/html/Cade205/Manual/method.shtml
+http://psych.fullerton.edu/rlippa/gender/study.htm
+http://psych0sis.pansitan.net/2005/05/i-heard-one-of-most-touching-lines.html
+http://psycharts.com/products.htm
+http://psychclassics.yorku.ca/Buchner/quarter.htm
+http://psychclassics.yorku.ca/James/Principles/wozniak.htm
+http://psychclassics.yorku.ca/Maslow/motivation.htm
+http://psychematters.com/papers/hopper3.htm
+http://psychology.ucdavis.edu/rainbow/html/comeout1.html
+http://psychology.unn.ac.uk/nick/EPgloss.htm
+http://psychology.wichita.edu/surl/usabilitynews/3S/websurvey.htm
+http://psychology.wichita.edu/surl/usabilitynews/62/whitespace.htm
+http://psychsoc.gerontologyjournals.org/cgi/content/full/60/1/P34
+http://pt.radicaldesigns.org/article.php?id=541
+http://pt.unlv.edu/admission.html
+http://ptgptb.org/0025/retro.html
+http://ptgptb.org/0026/genetics.html
+http://ptgptb.org/0026/theory101-01.html
+http://ptolemy.tlg.uci.edu/~opoudjis/unicode/unicode_adscript.html
+http://ptrc.oldscollege.ab.ca/1997_ar/9614.html
+http://pub.ucsf.edu/magazine/200412/genetic.html
+http://pub188.ezboard.com/bhogwartsschoolofwitchcraftandwizardry11065
+http://pub19.bravenet.com/guestbook/show.php?usernum=1556501612&vid=
+http://pub51.ezboard.com/fgreensborohockeyfrm7.showMessage?topicID=148.topic
+http://pub60.ezboard.com/fourchildrenleftbehindfrm17.showMessage?topicID=147.topic
+http://pub60.ezboard.com/fourchildrenleftbehindfrm22.showMessage?topicID=37.topic
+http://pubadvocate.nyc.gov/policy/prescription_drugs.html
+http://pubcrawler.org/2005/05/17/life-is-the-bed-in-which-we-all-lie/
+http://pubcrawler.org/archives/2002_06.html
+http://pubcrawler.org/archives/cat_features.html
+http://pubdb3.census.gov/macro/032004/pov/toc.htm
+http://publib.boulder.ibm.com/html/as400/v4r5/ic2924/info/db2/rbafymst02.htm
+http://publib.boulder.ibm.com/infocenter/iadthelp/topic/com.ibm.etools.iseries.pgmgd.doc/cpprog02.htm
+http://publib.boulder.ibm.com/infocenter/iadthelp/topic/com.ibm.etools.iseries.tutorials.rse.doc/turserpg02.htm
+http://publib.boulder.ibm.com/infocenter/iadthelp/topic/com.ibm.etools.iseries.tutorials.webtoolsrpg.doc/webtoolsrpg02.htm
+http://publib.boulder.ibm.com/infocenter/iadthelp/topic/com.ibm.etools.iseries.varpg.doc/fvdeguib02.htm
+http://publib.boulder.ibm.com/infocenter/iadthelp/topic/com.ibm.etools.iseries.varpg.doc/sc09244902.htm
+http://publib.boulder.ibm.com/infocenter/iadthelp/topic/com.ibm.etools.iseries.varpg.doc/sc09245102.htm
+http://publib.boulder.ibm.com/infocenter/ids9help/topic/com.ibm.sqls.doc/sqls02.htm
+http://publib.boulder.ibm.com/infocenter/pdthelp/topic/com.ibm.debugtool5.doc/eqa5ug0202.htm
+http://publib.boulder.ibm.com/infocenter/pdthelp/topic/com.ibm.entcobol3.doc/rlpsacce.htm
+http://publib.boulder.ibm.com/infocenter/pdthelp/topic/com.ibm.filemanager4.doc/db2/fmnu2d0302.htm
+http://publib.boulder.ibm.com/infocenter/pdthelp/topic/com.ibm.filemanager5.doc/db2/fmnu2e0102.htm
+http://publib.boulder.ibm.com/infocenter/tiv3help/topic/com.ibm.tivoli.tdwi.doc/insmst02.htm
+http://publib.boulder.ibm.com/infocenter/tivihelp/topic/com.ibm.itsm390n.doc/anrmgd5302.htm
+http://publib.boulder.ibm.com/infocenter/tivihelp/topic/com.ibm.itsm400.doc/anrpgd52202.htm
+http://publib.boulder.ibm.com/infocenter/tpfhelp/v1r3m0/topic/com.ibm.tpf.doc_put.19/gtpg2/gtpg2m3x.htm
+http://publib.boulder.ibm.com/infocenter/tpfhelp/v1r3m0/topic/com.ibm.tpf.doc_put.19/gtps2/gtps2m3i.htm
+http://publib.boulder.ibm.com/infocenter/txen/topic/com.ibm.txseries510.doc/erzhae0002.htm
+http://publib.boulder.ibm.com/infocenter/wc56help/topic/com.ibm.commerce.business_process.doc/concepts/phitype.htm
+http://publib.boulder.ibm.com/iseries/v5r1/ic2924/info/sqlp/rbafymst02.htm
+http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/sqlp/rbafymst02.htm
+http://publib16.boulder.ibm.com/pseries/en_US/libs/commtrf2/ioctl.htm
+http://public.afosi.amc.af.mil/global/may_jun_03/junior_agents.asp
+http://public.fecava.org/pub/index.php?session=&main=6&sub=4
+http://public.scott.amc.af.mil/Review/Private%20FA/
+http://public.travis.amc.af.mil/dgmc/mission.htm
+http://publicaddress.net/default,hardnews.sm
+http://publication-store.gamestalks.com/bollywood_girl_indian.html
+http://publication-store.gamestalks.com/delhi_escorts.html
+http://publicdomainprogress.info/
+http://publicinterest.blogspot.com/
+http://publicpolicy.pepperdine.edu/davenportinstitute/reports/center/center1.html
+http://publicrelations.meetup.com/25/
+http://pubpages.unh.edu/~wad/HTMA/HTMA10
+http://pubs.acs.org/cen/coverstory/8029/8029finechemicals.html
+http://pubs.acs.org/cen/coverstory/8049/8049homeland.html
+http://pubs.acs.org/cen/coverstory/8108/8108energy.html
+http://pubs.acs.org/cen/coverstory/8130/8130drugdiscovery1.html
+http://pubs.acs.org/cen/coverstory/8141/8141pharmaceuticals.html
+http://pubs.acs.org/cen/coverstory/8141/8141pharmaceuticals4.html
+http://pubs.acs.org/cen/coverstory/83/8307biology.html
+http://pubs.acs.org/cen/employment/8215/8215employment.html
+http://pubs.acs.org/cen/employment/8249/8249employment.html
+http://pubs.acs.org/cen/employment/8249/print/8249employment.html
+http://pubs.acs.org/cgi-bin/jtextd?esthag/asap/html/es9902726.html
+http://pubs.acs.org/hotartcl/chemtech/97/jan/bad.html
+http://pubs.caes.uga.edu/caespubs/pubcd/b1096-w.html
+http://pubs.logicalexpressions.com/Pub0009/LPMArticle.asp?ID=493
+http://pubs.socialistreviewindex.org.uk/isj69/trudell.htm
+http://pubs.socialistreviewindex.org.uk/sr197/notes.htm
+http://pubs.socialistreviewindex.org.uk/sr261/notes.htm
+http://pubs.socialistreviewindex.org.uk/sr267/letters.htm
+http://pubs.socialistreviewindex.org.uk/sr279/rose.htm
+http://pubs.usgs.gov/fs/2002/fs034-02/
+http://pubs.usgs.gov/fs/2003/fs014-03/
+http://pubs.usgs.gov/gip/continents/
+http://pubs.usgs.gov/of/2005/1165/508OF05-1165.html
+http://pubsociology.typepad.com/
+http://pubweb.northwestern.edu/~srmina/palindrome.html
+http://puffin.creighton.edu/jesuit/relations/relations_35.html
+http://puffin.creighton.edu/lakota/teaching.html
+http://puffin.ptialaska.net/~pharmacy/looking.htm
+http://pulse.tiaonline.org/article.cfm?id=269
+http://pulse.tiaonline.org/article.cfm?id=458
+http://pulse.tiaonline.org/pda.cfm?ID=458
+http://pulserecording.com/college/home.asp
+http://pulverblog.pulver.com/archives/002189.html
+http://puma.kvcc.edu/midwest/modules/economics/ECO201TS.htm
+http://punditwatch.blogspot.com/
+http://punjabgovt.nic.in/Industry/ind553.htm
+http://pupils.newstrove.com/
+http://puravida.typepad.com/only_connect/2004/10/talking_points_.html
+http://purchase.cmsmerchant.com/modules.php?op=modload&name=FAQ&file=index&myfaq=yes&id_cat=1
+http://puregold.cooltrap.com/rm031103.html
+http://purl.oclc.org/norc/dlib/m-89.htm
+http://pygmalionproject.tripod.com/true.html
+http://pyobjc.sourceforge.net/doc/tutorial.php
+http://python.binarycompass.org/peps/pep-0310.html
+http://q.queso.com/archives/000948
+http://q.queso.com/archives/001299
+http://q.queso.com/archives/2002_04
+http://qcpages.qc.cuny.edu/newlaborforum/html/9_article79.html
+http://qcpages.qc.cuny.edu/~efernand/CUNY2002/program/absts/109.htm
+http://qd.typepad.com/10/2005/01/
+http://qd.typepad.com/33/2005/06/
+http://qd.typepad.com/34/2005/04/
+http://qd.typepad.com/5/2005/02/particle_produc.html
+http://qhr.sagepub.com/cgi/content/abstract/14/2/204
+http://qmulweb.my-ehost.com/qmul/courses/study_degree_london_uk.php?dept_id=4
+http://qmulweb.my-ehost.com/qmul/courses/study_degree_london_uk.php?dept_id=4&email=1
+http://qnc.queensu.ca/queenscentre/Oct_04/history.html
+http://quadrant4.org/docs/consent.html
+http://quaker.org.nz/faq.htm
+http://queenofsky.journalspace.com/
+http://quentintait.myknet.org/
+http://queribus.free.fr/Astronomie/edebutants.html
+http://queserasera.org/archives/2003_10.html
+http://quest.arc.nasa.gov/events/connect/2001/
+http://quest.arc.nasa.gov/mars/teachers/tg/program5/5.2.html
+http://quest.nasa.gov/projects/space/iss2001/transcripts/april/virtual_tour_4-4-02.html
+http://question-everything.mahost.org/Philosophy/eden.html
+http://questioning.org/grazing.html
+http://questmodels.com/
+http://quicksitebuilder.cnet.com/fleisherfamily/booksbycraigsfleisher/id2.html
+http://quickstart.clari.net/qs_se/webnews/wed/ai/Spga-lgns-rydercuprentals.RnFR_DO8.html
+http://quietearth.freeyellow.com/
+http://quietfm.com/jcblog/?cat=3
+http://quietmountain.org/dharmacenters/buddhadendo/wheel_of_life.htm
+http://quietwaterweb.com/archives/000986.html
+http://quilting.about.com/library/reviews/bl_qltshop_la.htm
+http://quilting.about.com/library/reviews/bl_qltshop_pa.htm
+http://quinnell.us/methods/misperception.html
+http://quirkyalone.net/qa/
+http://quitsmoking.about.com/cs/ourstories/a/karenquit.htm
+http://quitsmoking.about.com/cs/preparation/a/resolve.htm
+http://quixote.rincondelvago.com/1_37/
+http://quizilla.com/users/17catherines/quizzes/What%20Christmas%20Carol%20are%20you%3F/
+http://quizilla.com/users/Hinote/quizzes/Staring%20Across%20the%20Commonroom%20((Sirius%20Black))/
+http://quizilla.com/users/Hinote/quizzes/Staring%20Across%20the%20Commonroom:%20Knives%20and%20Hiding%20Spots/
+http://quizilla.com/users/Hinote/quizzes/Staring%20Across%20the%20Commonroom:%20Lost%20and%20Found:%20Moony%20((Sirius%20Black))/
+http://quizilla.com/users/Hinote/quizzes/Staring%20Across%20the%20Commonroom:%20Snap%20Back%20to%20Reality%20((Sirius%20Black))/
+http://quizilla.com/users/Jackob/quizzes/Which%20Firefly%20character%20are%20you%3F/
+http://quizilla.com/users/Love-The-Dark/quizzes/%7C%7CForced%20To%20Be%20Mrs.Malfoy...%7C%7CLife%20Isn't%20A%20Game%20Katherin!!%7C%7CPart5%7C%7C/
+http://quizilla.com/users/griffin-tamer/quizzes/Teen%20Titans:%207th%20Titan%20Rising-%20Part%205-%20Seeing%20is%20Believing/
+http://quizilla.com/users/justsugar/quizzes/The%20Benefits%20Of%20Falling%20For%20Your%20Friend%2025(The%20Countdown)/
+http://quizilla.com/users/mishcka/quizzes/What%20are%20you%20wearing%3F/
+http://quizilla.com/users/torinaura/quizzes/would%20a%20nice%20guy,%20%20badass,%20punk,%20or%20a%20goth%20boy%20go%20for%20you%208/
+http://quotations.about.com/cs/inspirationquotes/a/Birthday1.htm
+http://quote.the-insuranceshop.co.uk/
+http://quotes.prolix.nu/Drugs/Alchohol/
+http://qyrang.org/battle.htm
+http://r.webring.com/hub?ring=allansgreatestbe
+http://r0.unctad.org/conference/address/malaysia17_e.htm
+http://r0.unctad.org/ecommerce/ecommerce_en/freeopen_en.htm
+http://r0.unctad.org/infocomm/anglais/platinum/uses.htm
+http://ra.microslu.washington.edu/aboutus/location.html
+http://ra.nilenet.com/~wlg/Rocky/news.htm
+http://rab.spriproducts.com/warranty.cfm
+http://rabbitblog.com/
+http://rabi.phys.virginia.edu/105/1999/PS5a.html
+http://rac.alionscience.com/DATA/JOURNAL/2ND_Q1994/reliability_tech.html
+http://rac.org/Articles/index.cfm?id=1075&pge_prg_id=5594&pge_id=1001
+http://rac.org/Articles/index.cfm?id=973&pge_prg_id=5217
+http://rac.org/_kd/go.cfm?destination=ShowItem&Item_ID=959
+http://raceagainstwaste.ie/take_action/at_home/recycle/
+http://racerelations.about.com/cs/affirmativeaction/a/aareview.htm
+http://racerelations.about.com/library/weekly/aa041400a.htm
+http://racingarticles.com/article_racing-74.html
+http://racingsecrets.com/drag_race_finish_line.shtml
+http://rad.usuhs.mil/medpix/medpix.html?mode=single&comebackto=mode%3Dgeo_browse&recnum=2759
+http://rad.usuhs.mil/medpix/medpix.html?mode=single&recnum=2759
+http://radar.oreilly.com/archives/2005/06/supernova_2005.html
+http://radar.smh.com.au/archives/2004/11/the_final_chapt.html
+http://radar.smh.com.au/archives/2004/12/keeping_up_with.html
+http://radar.smh.com.au/archives/2005/05/the_story_shot.html
+http://radaronline.com/fresh-intelligence/index.php
+http://radfilms.com/huac_study_guide.htm
+http://radhome.gsfc.nasa.gov/radhome/papers/seeca4.htm
+http://radiantlife.org/articles/ec_lesson_plan_intrst_cntr.cfm
+http://radicalacademy.com/adiphilcritextrareality.htm
+http://radicalacademy.com/adiphilislamessay3.htm
+http://radicalacademy.com/adlerideatruth1.htm
+http://radicalacademy.com/philjames.htm
+http://radicalpedagogy.icaap.org/content/issue4_2/03_hampsten.html
+http://radio.about.com/b/a/015459.htm
+http://radio.about.com/b/a/2003_08_05.htm
+http://radio.about.com/library/showprepsecrets/blshowprepsecrets6a.htm
+http://radio.blogware.com/blog/DigitalRadio
+http://radio.blogware.com/blog/_archives/2004/10/17/161695.html
+http://radio.weblogs.com/0001011/
+http://radio.weblogs.com/0001011/2003/02/23.html
+http://radio.weblogs.com/0001011/2004/03/13.html
+http://radio.weblogs.com/0001011/2004/03/20.html
+http://radio.weblogs.com/0001011/2004/04/25.html
+http://radio.weblogs.com/0001011/2004/05/12.html
+http://radio.weblogs.com/0001011/2004/10/07.html
+http://radio.weblogs.com/0001011/2004/11/28.html
+http://radio.weblogs.com/0001011/2005/04/23.html
+http://radio.weblogs.com/0001011/2005/06/03.html
+http://radio.weblogs.com/0100148/
+http://radio.weblogs.com/0100191/
+http://radio.weblogs.com/0101747/
+http://radio.weblogs.com/0103213/
+http://radio.weblogs.com/0105455/2002/04/15.html
+http://radio.weblogs.com/0105910/categories/sidebars/
+http://radio.weblogs.com/0106327/2005/01/20.html
+http://radio.weblogs.com/0106698/2003/09/17.html
+http://radio.weblogs.com/0107127/stories/2002/07/17/collaborationOnlyAWordUntilYouHaveExperiencedIt.html
+http://radio.weblogs.com/0107127/stories/2003/01/26/marmotOnHierarchywhitehall.html
+http://radio.weblogs.com/0107233/2004/12/02.html
+http://radio.weblogs.com/0107233/2004/12/03.html
+http://radio.weblogs.com/0107233/2004/12/09.html
+http://radio.weblogs.com/0107233/2004/12/13.html
+http://radio.weblogs.com/0107233/categories/thanks/2005/01/03.html
+http://radio.weblogs.com/0107946/
+http://radio.weblogs.com/0109150/2002/11/24.html
+http://radio.weblogs.com/0110187/
+http://radio.weblogs.com/0110772/stories/2002/10/03/personalKnowledgePublishingAndItsUsesInResearch.html
+http://radio.weblogs.com/0110793/
+http://radio.weblogs.com/0111165/
+http://radio.weblogs.com/0119080/2004/04/29.html
+http://radio.weblogs.com/0119318/stories/2003/03/08/myAccutaneExperience.html
+http://radio.weblogs.com/0128341/stories/2004/12/21/jinnisJournal122004.html
+http://radio.weblogs.com/0129278/2004/03/
+http://radiodx.com/spdxr/bill_marsh.htm
+http://radiographics.rsnajnls.org/cgi/content/full/21/2/463
+http://radiographics.rsnajnls.org/cgi/content/full/24/4/1185
+http://radioinsidescoop.com/mt-posts-archive/000175.html
+http://radiology.unm.edu/Residency/TeachingBlocks/
+http://raibledesigns.com/page/rd/20040403
+http://raisingcanes.net/RC3.html
+http://rajkblogs.blogspot.com/
+http://rajkblogs.blogspot.com/2004_07_01_rajkblogs_archive.html
+http://rajyasabha.nic.in/rsdebate/deb_ndx/204/17032005/6to7.htm
+http://ramchandraj.tripod.com/london.htm
+http://rams.atmos.colostate.edu/cotton/archives/travels/kenyasoaring.html
+http://random.average-bear.com/archive/2004_01.html
+http://randomwalks.com/drublood/
+http://randomwalks.com/drublood/archives/016496.html
+http://randomwalks.com/drublood/archives/021387.html
+http://randomwalks.com/drublood/archives/2003_04.html
+http://randomwalks.com/drublood/archives/2003_07.html
+http://randomwalks.com/drublood/archives/2005_06.html
+http://ranprieur.com/essays/dropout.html
+http://ranprieur.com/essays/habit.html
+http://rantastic.spacemonkeys.ca/
+http://rapidnet.com/~jbeard/bdm/Letter/v9n3.htm
+http://rapidttp.com/milhist/vol102rt.html
+http://rateyourmusic.com/lists/list_view/list_id_is_13993
+http://rateyourmusic.com/view_album_details/album_id_is_25613
+http://rateyourmusic.com/view_album_details/album_id_is_4653
+http://ratings.designerz.com/?ratingfor_item=
+http://ratings2004.healthcarecommission.org.uk/help.asp
+http://rationalreasons.blogspot.com/2005/06/in-defence-of-public-universal-single.html
+http://raven.theraider.net/archive/index.php/t-6952.html
+http://ravenstonepress.com/katietch.html
+http://ravingatheist.com/archives/2003/06/mother_of_god_graces_hospital_window_as_caucasian_chemical_stain.php
+http://rawstory.com/exclusives/byrne/secret_service_gannon_424.htm
+http://rawstory.com/news/2005/Congressman_Conyers_hammers_the_Washington_Posts_D_0617.html
+http://rawstory.com/news/2005/Nonpartisan_government_watchdog_to_investigate_White_House_contracts_0621.html
+http://rawstory.com/news/2005/index.php?p=72
+http://raysweb.net/banff/pages/page.html
+http://raysweb.net/specialplaces/pages-species-ej/dwindlinglegacy-ej.html
+http://raywelch.com/
+http://rbg-web2.rbge.org.uk/bbs/Bryodiversity/recorders.htm
+http://rcgroups.com/links/index.php?t=article&cat=237&id=4152
+http://rconversation.blogs.com/rconversation/2005/06/confirmed_all_t.html
+http://rcpoet.com/issue14.html
+http://rcpoet.com/issue15.html
+http://rcpoet.com/issue16.html
+http://rcrec.org/r/index.php?module=ContentExpress&func=display&meid=78&ceid=44
+http://rcs.law.emory.edu/rcs/titles/i/i_.htm
+http://rcs.law.emory.edu/rcs/titles/i/im.htm
+http://rcs.law.emory.edu/rcs/titles/s/si.htm
+http://rd1.surfernetwork.com/snfaq.htm
+http://reachingforljc.proboards19.com/index.cgi?action=display&board=gendisarea&num=1057896066&start=60
+http://reachingforljc.proboards19.com/index.cgi?board=gendisarea&num=1057896066&action=display&start=60
+http://reactor-core.org/ogg-tagging.html
+http://readingpost.com/bush_kerry_one.html
+http://reagle.org/joseph/1996/poetry/poems-s1998.html
+http://real-estate-agents.com/tips/interior/floor-plan.shtml
+http://realbig.com/miata/miata/1998-09/
+http://realestate.escapeartist.com/P-25849
+http://realestate.escapeartist.com/P-27397
+http://realestate.yahoo.com/realestate/story.html?s=n/inman/realestate/20050620/20050620301
+http://reality-check.org/salon-bin/salon_bios.cgi?salon=Dialogue+Group+10
+http://reality-check.org/salon-bin/salon_bios.cgi?salon=Dialogue+Group+7
+http://reality-check.org/salon-bin/salon_bios.cgi?salon=Dialogue+Group+8
+http://reality-hammer.livejournal.com/
+http://realitydeviant.chimerical.org/
+http://realityj2ee.iterationtwo.com/downloads.jsp
+http://realmagick.com/articles/58/2058.html
+http://realtegan.blogspot.com/
+http://realtytimes.com/printrtpages/20021029_sellerlies.htm
+http://realtytimes.com/printrtpages/20041231_askquestions.htm
+http://realtytimes.com/rtapages/20020604_salesmeeting.htm
+http://realtytimes.com/rtapages/20050505_fdicfocusesonissues.htm
+http://realtytimes.com/rtcpages/19991224_arms.htm
+http://realtytimes.com/rtcpages/20011025_calmart.htm
+http://realtytimes.com/rtcpages/20011218_wrapup.htm
+http://realtytimes.com/rtcpages/20020924_septrup.htm
+http://realtytimes.com/rtcpages/20030630_losing.htm
+http://realtytimes.com/rtcpages/20030930_septrup.htm
+http://realtytimes.com/rtcpages/20040209_divorce.htm
+http://realtytimes.com/rtcpages/20040315_greenspan.htm
+http://reason.com/0001/fe.ml.rampaging.html
+http://reason.com/0010/fe.fg.science.shtml
+http://reason.com/0104/int.sk.sex.shtml
+http://reason.com/0106/fe.bs.city.shtml
+http://reason.com/0108/cr.jw.film.shtml
+http://reason.com/0110/fe.dp.schools.shtml
+http://reason.com/0204/fe.cs.asthma.shtml
+http://reason.com/0207/fe.jj.stand.shtml
+http://reason.com/0311/fe.jb.kroger.shtml
+http://reason.com/7507/int_reagan.shtml
+http://reason.com/9510/GARVINfeat.html
+http://reason.com/9911/fe.ap.falling.html
+http://reason.com/previousissues.shtml
+http://reasonsyouwillhateme.blogspot.com/
+http://rebecca.hitherby.com/archives/000606.php
+http://rebeccablood.net/
+http://rebelpixel.com/archives/2004/10/13/the-saddest-lines/
+http://recenter.tamu.edu/mreports02/fortworth16.asp
+http://recenter.tamu.edu/news/recon012105.html
+http://recenter.tamu.edu/news/recon031105.html
+http://recenter.tamu.edu/news/recon070604.html
+http://recenter.tamu.edu/news/recon102204.html
+http://recenter.tamu.edu/tgrande/vol10-1/1600.html
+http://recently.rainweb.net/hive/_Politics_/
+http://recipestoday.com/resources/articles/cholesterol.htm
+http://recklessme.blogspot.com/
+http://reclaimdemocracy.org/weekly_2003/computers_dumbingdown_kids.html
+http://reclaimdemocracy.org/weekly_article/a_senate_majority_perishes.html
+http://recognizethesigns.tripod.com/
+http://record.wustl.edu/2002/04-12-02/endowedprofessors.html
+http://record.wustl.edu/2003/2-14-03/washington_people.html
+http://record.wustl.edu/archive/1999/03-25-99/people.html
+http://recording.org/ftopict-24892.html
+http://records.fai.org/general_aviation/
+http://recruit.sciencemag.org/feature/advice/nw-2000jan.shl
+http://recruit.sciencemag.org/feature/advice/writing_postings.shl
+http://recruit.sciencemag.org/feature/cperspec/biosci.shl
+http://recycling.stanford.edu/5r/government.html
+http://redbetweenthelines.modblog.com/
+http://redbetweenthelines.modblog.com/core.mod?show=main
+http://redbirdblogs.typepad.com/red_bird_rising/2004/11/on_why_the_elec.html
+http://redbook.cs.berkeley.edu/redbook3/lec28.html
+http://redclay.chattablogs.com/
+http://redclay.chattablogs.com/archives/020769.html
+http://redclayramblers.tripod.com/stories.htm
+http://redcouch.typepad.com/weblog/
+http://redcouch.typepad.com/weblog/2005/02/chapter_1.html
+http://redcross.org/article/0,1072,0_312_4050,00.html
+http://redcross.org/article/printer/0,1075,0_312_4050,00.html
+http://redesenaccion.org/Disparities/
+http://redhat.meetup.com/create/
+http://redmindbluestate.blogspot.com/
+http://redmondmag.com/columns/article.asp?EditorialsID=282
+http://redmondmag.com/columns/article.asp?EditorialsID=590
+http://redmondmag.com/features/article.asp?EditorialsID=2
+http://redmondmag.com/features/article.asp?EditorialsID=439
+http://redmondmag.com/features/article.asp?editorialsid=485
+http://redmondmag.com/forums/forum_posts.asp?tid=1433&pn=1&get=last
+http://redonion.blogspot.com/2005_03_27_redonion_archive.html
+http://reds.enquirer.com/2001/01/21/red_reds_have_to_draw.html
+http://redsox.bostonherald.com/redSox/view.bg?articleid=91323&format=text
+http://redsox.mostvaluablenetwork.com/index.php?p=399
+http://redstatediaries.blogspot.com/
+http://redstatelaw.blogspot.com/
+http://redstatemoron.typepad.com/
+http://redstatemoron.typepad.com/red_state_moron/
+http://redstatemoron.typepad.com/red_state_moron/2005/06/cord_blood_bank.html
+http://redstaterant.com/
+http://redstaterebels.typepad.com/
+http://redstateson.blogspot.com/
+http://redtag.onthetop.com/
+http://reedfloren.com/stocks/view.php?kwd=content/August%201st.htm
+http://ref.web.cern.ch/ref/CERN/CNL/2001/001/tcpip/
+http://ref.web.cern.ch/ref/CERN/CNL/2001/001/tcpip/Pr/
+http://ref.web.cern.ch/ref/CERN/CNL/2001/002/cern-computing/
+http://reformclub.blogspot.com/2005/06/forgotten-mcqueen-film.html
+http://reformed-theology.org/html/books/wall_street/chapter_05.htm
+http://regionalhelpwanted.com/BrowseAds/index.cfm?SN=170
+http://regionalhelpwanted.com/BrowseAds/index.cfm?SN=177
+http://regionals.burningman.com/network_letter.html
+http://regions.ivcf.org/prayer/3713
+http://regionsofmind.blog-city.com/index.cfm?m=10&y=2003
+http://regionsofmind.blogspot.com/2002_09_15_regionsofmind_archive.html
+http://register.mnaidsproject.org/site/PageServer?pagename=PI_04_Spring
+http://registeredrep.com/mag/finance_psychology_money/
+http://regnumcrucis.blogspot.com/2004_03_14_regnumcrucis_archive.html
+http://reincarnation2002.com/chapter_33.htm
+http://reinhold.typepad.com/
+http://rel.intersil.com/docs/lexicon/S.html
+http://relativelyabsolute.com/archives/2004/07/
+http://relativelyabsolute.com/index.php
+http://relativity.livingreviews.org/Articles/lrr-2004-1/articlesu3.html
+http://relativity.livingreviews.org/Articles/lrr-2004-4/articlesu24.html
+http://releases.usnewswire.com/GetRelease.asp?id=42372
+http://religion-of-one.org/defeated-by-terror.htm
+http://religiousmovements.lib.virginia.edu/lectures/influenc.html
+http://religioustolerance.org/hom_umc7.htm
+http://reluctant-messenger.com/9kalams.htm
+http://reluctant-messenger.com/HWA/Mystery/
+http://reluctant-messenger.com/essene/gospel_10.htm
+http://reluctant-messenger.com/history08.htm
+http://remedyfind.com/rm-3295-Bextra.asp
+http://remorselessapology.blogspot.com/2004_05_09_remorselessapology_archive.html
+http://remtek.com/arms/hk/mil/mp5/choice/coang.htm
+http://renaissancegurl.blogspot.com/
+http://renegaderebbetzin.blogspot.com/2004/09/sitting-standing-front-back-talking-in.html
+http://rengelink.textdriven.com/blog/index.php?id=2
+http://repairfaq.ece.drexel.edu/REPAIR/F_DC_tape.html
+http://repetae.net/john/computer/tao.html
+http://reporter.leeds.ac.uk/press_releases/current/bretton_dec04.htm
+http://reports.eea.eu.int/92-826-5409-5/en/page009new.html
+http://repositories.cdlib.org/cgi/viewcontent.cgi?article=1002&context=ies
+http://repositories.cdlib.org/cgi/viewcontent.cgi?article=1002&context=igcc
+http://repositories.cdlib.org/cgi/viewcontent.cgi?article=1091&context=boaltwp
+http://repositories.cdlib.org/cgi/viewcontent.cgi?article=1235&context=lbnl
+http://repro-med.net/guides/experience.php
+http://republican.sen.ca.gov/web/mcclintock/article_detail.asp?PID=15
+http://republican.sen.ca.gov/web/mcclintock/article_detail.asp?PID=275
+http://rermag.com/issue_20020201/
+http://rermag.com/rentalnews/index1.html
+http://res.betterworldclub.com/hotel/10010428-10231652O.html?hr=9005
+http://res.weathercentral.com/hotel/10010162-10231652O.html?hr=9005
+http://res2.agr.gc.ca/brandon/nn/nn218_e.htm
+http://res2.agr.gc.ca/publications/marquis/page03_e.htm
+http://resale.headgap.com/
+http://rescueattempt.tripod.com/id3.html
+http://rescuemike.blogspot.com/2004_10_24_rescuemike_archive.html
+http://research.aarp.org/econ/boomer_seg_2.html
+http://research.amnh.org/herpetology/amphibia/references.php?id=6073
+http://research.amnh.org/herpetology/amphibia/references.php?id=6545
+http://research.berkeley.edu/urap/appapp/faq.html
+http://research.microsoft.com/adapt/TaskGallery/pages/user_studies.htm
+http://research.microsoft.com/displayArticle.aspx?id=260
+http://research.microsoft.com/features/StudioMIT.asp
+http://research.opt.indiana.edu/Library/FourierBook/ch01.html
+http://research.sun.com/features/tenyears/
+http://research.ucdavis.edu/home.cfm?id=OVC,2,1024,1178
+http://research.unc.edu/endeavors/win2005/hadler.php
+http://research.unc.edu/oct/faq.html
+http://research.universalclass.com/i/research/12740.htm
+http://research.utk.edu/ora/sections/compliances/humsub/system.html
+http://research.yale.edu/lawmeme/modules.php?name=News&file=article&sid=1706
+http://research.yale.edu/lawmeme/modules.php?name=News&new_topic=54
+http://reservations.quebec-city-hotels.com/hotel/10007777-11250741O.html
+http://reservations.victoria-hotel-lites.com/hotel/10004826-10215657O.html
+http://reserve.airport-carrentals.com/hotels/hotels.mv?action=hotel_information&agent_id=9217&tn_hotel_id=207256
+http://residentwife.typepad.com/resident_wife/modest_proposals/
+http://resistance.chiffonrouge.org/article.php3?id_article=90
+http://resmagonline.com/articles/publish/article_283.shtml
+http://resource.berkeley.edu/r_html/r10_04hi.html
+http://resource.intel.com/telecom/support/appnotes/PCI.htm
+http://resource.library.tmc.edu/newsArch.php
+http://resources.christianity.com/ministries/lwftv/service/help.jhtml
+http://resourcescommittee.house.gov/108cong/fish/2003apr29/baughman.htm
+http://resourcescommittee.house.gov/issues/nprpl/cadesert_access101.htm
+http://resourcescommittee.house.gov/issues/nprpl/cadesert_access101pf.htm
+http://respectfulofotters.blogspot.com/2004_07_01_respectfulofotters_archive.html
+http://response.restoration.noaa.gov/cameo/cameo.html
+http://response.restoration.noaa.gov/cameo/dr_aloha/grnbook/grnbook.html
+http://response.restoration.noaa.gov/cameo/dr_aloha/inputs/inputs.html
+http://response.restoration.noaa.gov/cameo/dr_aloha/limits/limits.html
+http://response.restoration.noaa.gov/kids/spills.html
+http://restorationbookstore.org/articles/testimonies/peaceinwar.htm
+http://resume.monster.com/articles/education/
+http://resume.monster.com/articles/recommendation/
+http://reswriter.com/career_links.html
+http://retail.careerbuilder.com/rt.ic/Georgia_Columbus?radius=5
+http://retail.careerbuilder.com/rt.ic/Illinois_Chicago_SalesManager.htm?radius=50
+http://retail.careerbuilder.com/rt.ic/Texas_Galveston?sc=3&sd=0
+http://retail.careerbuilder.com/rt.ic/Washington_Seattle?radius=20
+http://retail.careerbuilder.com/rt.ic/Wisconsin_GreenBay?radius=5
+http://retail.careerbuilder.com/rt.ic/Wisconsin_Oshkosh?radius=50
+http://retailers.roman.com/pls/htmldb/f?p=141:6:6940029621611423437
+http://retailindustry.about.com/cs/sup_management/a/uc_allen1.htm
+http://retailindustry.about.com/od/sales_retailers/a/bl_top100pcg.htm
+http://retailtrafficmag.com/mag/retail_living_serious_architecture/
+http://reti.blogspot.com/
+http://retrobits.net/sam.html
+http://returnhappy.blogspot.com/2005/05/rug-underneath-me.html
+http://returning.to-change.chandler-hill-employers-partners.com/
+http://returning.to-change.chandlerhill.com/
+http://returning.to-change.chandlerhillcareers.com/
+http://returning.to-change.chandlerhillresults.com/
+http://rev-ed.blogspot.com/2005/06/spoiled.html
+http://revels.bizland.com/store/page1.html
+http://reverse-mortgage.ffind.servebeer.com/
+http://review.ucsc.edu/summer-02/alumni_news.html
+http://review.ucsc.edu/summer-02/techtutors.html
+http://reviewing.co.uk/actrev.htm
+http://reviewing.co.uk/articles/visible-reflection.htm
+http://reviewing.co.uk/stories.htm
+http://reviews-zdnet.com.com/
+http://reviews-zdnet.com.com/4520-7297_16-4207842.html
+http://reviews-zdnet.com.com/4540-6490_16-30978812-4.html
+http://reviews-zdnet.com.com/4540-6490_16-31296983-4.html
+http://reviews-zdnet.com.com/AnchorDesk/4520-7297_16-5142452.html
+http://reviews-zdnet.com.com/Ask_Jeeves_Toolbar/4505-3514_16-31213311.html
+http://reviews-zdnet.com.com/Labs/4520-6603_16-5020816-1.html
+http://reviews-zdnet.com.com/MP3_players/4540-6490_16-30978812-4.html
+http://reviews-zdnet.com.com/McAfee_Internet_Security_6_0/4505-3513_16-30521087.html
+http://reviews-zdnet.com.com/Norton_Internet_Security_2005/4505-3667_16-30998884.html
+http://reviews-zdnet.com.com/Sony_Cyber_Shot_DSC_V1/4852-6501_16-20851377.html
+http://reviews.cnet.com/4520-10165_7-5699466-1.html
+http://reviews.cnet.com/4520-10168_7-5834832-1.html
+http://reviews.cnet.com/4520-3513_7-5023853-1.html
+http://reviews.cnet.com/4520-3513_7-5073597.html
+http://reviews.cnet.com/4520-3513_7-5142439-1.html
+http://reviews.cnet.com/4520-3513_7-5142439.html
+http://reviews.cnet.com/4520-6449_7-6233821-1.html
+http://reviews.cnet.com/4520-6450_7-5020764-1.html
+http://reviews.cnet.com/4520-6450_7-5107938-1.html
+http://reviews.cnet.com/4520-6450_7-5553141-1.html
+http://reviews.cnet.com/4520-7899_7-5513972-1.html
+http://reviews.cnet.com/4540-6490_7-30906242-4.html
+http://reviews.cnet.com/4540-6490_7-30907933-4.html
+http://reviews.cnet.com/4540-6490_7-31256885-4.html
+http://reviews.cnet.com/4540-6490_7-31278883-4.html
+http://reviews.cnet.com/4540-6490_7-31296983-4.html
+http://reviews.cnet.com/4540-6490_7-31319524-4.html
+http://reviews.cnet.com/5208-3513-0-10.html?forumID=104&threadID=38140&messageID=453216&start=-96
+http://reviews.cnet.com/5208-6142-0.html?forumID=5&threadID=57767&messageID=691421
+http://reviews.cnet.com/5208-6618-0.html?forumID=6&threadID=50947&messageID=607672
+http://reviews.cnet.com/Abbyy_FineReader_7_0_Professional/4505-3523_7-30571456-7.html
+http://reviews.cnet.com/Adobe_Acrobat_Professional_____v__7_0_____product_upgrade_package/4505-3628_7-31246526-7.html
+http://reviews.cnet.com/Anarchy_Online_PC/4512-9696_7-30977189.html
+http://reviews.cnet.com/Apple_Mac_OS_10_4_Tiger/4505-3673_7-31256837-2.html
+http://reviews.cnet.com/Apple_iPod_Mini__4GB__Green_/4505-6490_7-30657036-2.html
+http://reviews.cnet.com/Buffalo_AirStation_Extended_Range_Antenna/4505-6461_7-21204239.html
+http://reviews.cnet.com/Canon_EOS_1Ds_Digital_SLR/4510-6501_7-20610303.html
+http://reviews.cnet.com/Colin_McRae_Rally_2005_Xbox/4505-9789_7-30960347-4.html
+http://reviews.cnet.com/Creative_Zen_Touch__20GB_/4852-6490_7-30907933.html?pn=1&fb=1&ob=0
+http://reviews.cnet.com/Dell_DJ-20/4505-6490_7-31149174.html
+http://reviews.cnet.com/Dell_DJ_20/4505-6490-31149174.html?reviewId=5538471
+http://reviews.cnet.com/Dell_DJ_20/4505-6490_7-31149174.html
+http://reviews.cnet.com/Dell_DJ_20/4535-6490_7-31149174.html
+http://reviews.cnet.com/Dell_Digital_Jukebox_DJ_15GB/4505-6490_7-30582921.html
+http://reviews.cnet.com/Dell_W2600/4852-6482_7-31006682.html?pn=1&fb=1&ob=0
+http://reviews.cnet.com/Denon_DVD_2900/4514-6473_7-20847768.html
+http://reviews.cnet.com/Home_audio/4502-6467_7-0.html
+http://reviews.cnet.com/Labs/4520-6603_7-5020816-1.html
+http://reviews.cnet.com/MP3_players/4540-6490_7-30984154-4.html
+http://reviews.cnet.com/Memorex_16X_double_layer_drive/4505-3212_7-31109465-2.html
+http://reviews.cnet.com/Panasonic_ToughBook_Y2/4505-3121_7-30882164.html
+http://reviews.cnet.com/RCA_Lyra_RD1080/4514-6490_7-20569073.html
+http://reviews.cnet.com/Red_Hat_Linux_9_0_Professional/4505-3678_7-21136281-7.html
+http://reviews.cnet.com/Rio_Carbon__5GB_/4514-6490_7-30984154.html
+http://reviews.cnet.com/Rio_Nitrus__1_5GB_/4505-6490_7-30474132.html
+http://reviews.cnet.com/Rio_S35S/4514-6490_7-20573566.html
+http://reviews.cnet.com/Serious_Sam_Next_Encounter_GameCube/4512-9583_7-30976229.html
+http://reviews.cnet.com/Serious_Sam__Next_Encounter__GameCube_/4505-9583_7-30976229.html
+http://reviews.cnet.com/Sony_Cyber_Shot_DSC_M1/4510-6501_7-31117284.html
+http://reviews.cnet.com/Sony_HDR_FX1/4852-6500_7-31085889.html?pn=1&fb=1&ob=0
+http://reviews.cnet.com/Sony_Handycam_DCR_PC109/4514-6500_7-30671374.html
+http://reviews.cnet.com/Toshiba_SD5700/4514-6473_7-6150337.html
+http://reviews.cnet.com/Unreal_Mission_Pack_Return_to_Na_Pali_PC/4512-9696_7-30986586.html
+http://reviews.cnet.com/ZoneAlarm_Internet_Security_5_5/4505-3667_7-31109473.html
+http://reviews.cnet.com/ZoneAlarm_Security_Suite/4505-3667_7-30898745.html
+http://reviews.cnet.com/iRiver_H320_20GB/4535-6490_7-31120667.html
+http://reviews.cnet.com/iRiver_H320__20GB_/4514-6490_7-31120667.html
+http://reviews.cnet.com/iRiver_iMP_350_SlimX/4514-6490_7-8591280.html
+http://reviews.iwon.com/pscVideoGameReview/Action/King,of,Fighters,Dream,Match,99/PRD_86588_3730crx.aspx
+http://reviews.iwon.com/pscVideoGameReview/Dreamcast/Action/King,of,Fighters,Dream,Match,99/PRD_86588_3730crx.aspx
+http://revistas.bancomext.gob.mx/rce/en/articleReader.jsp?id=8&idRevista=29
+http://rf-web.tamu.edu/security/secguide/Eap/Depress.htm
+http://rf-web.tamu.edu/security/secguide/V1comput/Case1.htm
+http://rfc.net/rfc1918.html
+http://rfc.sunsite.dk/rfc/rfc3245.html
+http://rfc.sunsite.dk/rfc/rfc932.html
+http://rfc1651.x42.com/
+http://rfc2778.x42.com/
+http://rfc3234.x42.com/
+http://rfc3710.x42.com/
+http://rfidanalysis.org/
+http://rfidinsights.blogspot.com/2004_10_01_rfidinsights_archive.html
+http://rhea.redhat.com/bboard-archive/acs_applications/000at6.html
+http://rhetorica.net/archives/004071.html
+http://rhetorica.net/bias.htm
+http://rhetorica.net/me/
+http://rhizome.org/object.rhiz?32053
+http://rhodesminnis.org.uk/Councilminutes/CouncilminutesNovember04.htm
+http://rhymeswithright.mu.nu/archives/086019.php
+http://ricanconservative.blogspot.com/
+http://riccistreet.net/port80/shoreline/economics.htm
+http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html
+http://richardwhitehead.com/
+http://richeyxx.blogspot.com/2005/06/few-thoughts-at-this-particular-moment.html
+http://richmarkpi.com/04-electronicdebugging.html
+http://richmond.indymedia.org/newswire/display/10633/index.php
+http://ricksegal.typepad.com/pmv/2005/week18/
+http://ricksegal.typepad.com/pmv/2005/week22/
+http://ridgefieldct.virtualtownhall.net/Public_Documents/RidgefieldCT_SelectMin/S00071C19-00071C1A
+http://ridingsun.blogspot.com/2005/05/newsweek-america-is-dead.html
+http://right-mind.us/
+http://right-thinking.blogspot.com/
+http://right-thinking.com/index.php
+http://right-thinking.com/index.php/C1/
+http://right-thinking.com/index.php/C20/
+http://right-thinking.com/index.php/weblog/C1/
+http://right-thinking.com/index.php/weblog/C20/
+http://rightreason.ektopos.com/
+http://rightreason.ektopos.com/archives/2005/04/bad_choice.html
+http://rightreason.ektopos.com/archives/2005/05/conservatives_i.html
+http://rights.journalspace.com/
+http://rights.journalspace.com/?b=1104566400&e=1105171200
+http://rightthinkinggirl.typepad.com/
+http://rightthinkinggirl.typepad.com/right_thinking_girl/
+http://rightthinkinggirl.typepad.com/right_thinking_girl/2004/12/former_radical_.html
+http://rigorousintuition.blogspot.com/2005/03/conspiracy-theory-made-easy.html
+http://rii.ricoh.com/~stork/DHS.html
+http://rileymccarthy.blogspot.com/2003_07_27_rileymccarthy_archive.html
+http://rimone.org/archives/2004/10/11/reading-matters-scottish-style-by-nomad/
+http://rinkworks.com/stupid/cs_os.shtml
+http://rino.rummage.net.au/rino/articles/iraq_angle.html
+http://rion.nu/
+http://riot-proof.diaryland.com/january03.html
+http://ripoffreport.com/reports/ripoff128459.htm
+http://rippedtoshreds.blogspot.com/
+http://riscakarate.tripod.com/id5.html
+http://rising-hegemon.blogspot.com/2005/06/history-doesnt-really-change.html
+http://riverbendblog.blogspot.com/
+http://riverbendblog.blogspot.com/2004_04_01_riverbendblog_archive.html
+http://riverbendblog.blogspot.com/2004_05_01_riverbendblog_archive.html
+http://riverbendblog.blogspot.com/2005_01_01_riverbendblog_archive.html
+http://riverbendblog.blogspot.com/2005_02_01_riverbendblog_archive.html
+http://riverbendblog.blogspot.com/2005_04_01_riverbendblog_archive.html
+http://rivers.affordabletours.com/Value_World/
+http://rivers.affordabletours.com/search/it/?id=365
+http://rixstep.com/2/20050321,00.html
+http://rjanderson.blogspot.com/2005/05/why-i-am-soooooo-glad-i-have-midwife.html
+http://rjohara.net/darwin/logs/1994/9405-08.html
+http://rlai.cs.ualberta.ca/rlbenchmarks.html
+http://rleweb.mit.edu/rlestaff/p-wiesj-dp.HTM
+http://rmfo-blogs.com/karibeth/
+http://rmfo-blogs.com/rageforjesus/
+http://rmhh.co.uk/tree2/individual.php?pid=ID.288
+http://rmisweb.com/rmisartc/103000.htm
+http://rmmla.wsu.edu/ereview/53.2/articles/nolan.asp
+http://rmp.nlm.nih.gov/RM/G/G/A/L/_/rmggal.html
+http://rnbob.tripod.com/abbreviationsandrespiratoryterms.htm
+http://rncwatch.typepad.com/counterrecruiter/2005/week22/
+http://rndr4food.blogspot.com/
+http://roadtosurfdom.com/
+http://robk.proboards13.com/index.cgi?board=book&action=display&num=1106725456
+http://roblimo.com/node/view/44
+http://robnyc.blogspot.com/
+http://robolympics.net/rules/magellan.shtml
+http://robotics.megagiant.com/history.html
+http://robyn.thinkpub.com/
+http://rochellejustrochelle.typepad.com/copilot/apropos_of_nothing/
+http://rochesterwi.us/may_20051.htm
+http://rockbpubl.com/bks_RPC/mutinyat.htm
+http://rockefeller.uchicago.edu/Sermons/guests/021702sermon.htm
+http://rockhay.tripod.com/worship/prayers-etc/offering.htm
+http://rockthrower.blogs.com/rockthrower/2005/01/bundt_pans.html
+http://rockyweb.cr.usgs.gov/outreach/globalgis/europe/population_europe.html
+http://rockyweb.cr.usgs.gov/outreach/sgu/firetowerlesson.html
+http://rockyweb.cr.usgs.gov/public/outreach/sgu/firetowerlesson.html
+http://rodcorp.typepad.com/rodcorp/2005/03/
+http://rodeorob.blogspot.com/
+http://roderickmann.org/embedded/ichibot/status.jsp
+http://rodneyhide.com/Diary/index.php?p=1399
+http://rogerebert.suntimes.com/apps/pbcs.dll/article?AID=/19851225/REVIEWS/512250301
+http://rogerebert.suntimes.com/apps/pbcs.dll/article?AID=/20030124/REVIEWS/301240301/1023
+http://rogerebert.suntimes.com/apps/pbcs.dll/article?AID=/20041109/REVIEWS/41006005/1001
+http://rogerebert.suntimes.com/apps/pbcs.dll/article?AID=/20050123/PEOPLE/401230304
+http://rogersmantalk.com/employment.html
+http://rollerweblogger.org/comments/roller/blog/jsp_control_flow_engine
+http://romancelibrary.com/travel/hotels0016.html
+http://romancestuck.com/holidays/sweetestday-quotes.htm
+http://romanticmovies.about.com/library/weekly/aaamericanweddingreview.htm
+http://romanticmovies.about.com/od/moviesinproduction/
+http://romanticmovies.about.com/od/moviesinproduction/index_a.htm
+http://romanticmovies.about.com/od/moviesinproduction/index_r.htm
+http://rome-hotels.tripadvisor.com/ShowUserReviews-g187791-d203211-r2715377-Hotel_Genova-Rome_Lazio.html
+http://rome-hotels.tripadvisor.com/ShowUserReviews-g187791-d259310-r2149170-Montecarlo_Hotel-Rome_Lazio.html
+http://rome-hotels.tripadvisor.com/ShowUserReviews-g187791-d275766-r2855361-Hotel_Ottocento-Rome_Lazio.html
+http://rome.gema.state.ga.us/WebGema/prepare.nsf/0/e60ca2f6c08e11f085256cbc0079d438?OpenDocument
+http://rooba.net/will/archives/2004_01.php
+http://rootprompt.org/article.php3?article=903
+http://rop5.blogspot.com/2005/06/shooting-private-stacey.html
+http://rory.sharp.fm/rites/archive/000393.html
+http://rosacea.ii.net/
+http://rosasay.typepad.com/talkingstory/2004/10/human_beings_de.html
+http://rosemaryamey.ca/opinion/essays/fishie.html
+http://rosenylundfan001.tripod.com/id41.html
+http://ross.typepad.com/blog/2005/05/finding_a_home.html
+http://ross.typepad.com/blog/2005/06/email_privacy_h.html
+http://ross.typepad.com/blog/media/
+http://rossputin.com/blog/index.php/a/2005/06/02/
+http://rossputin.com/blog/index.php/a?cat=18
+http://rossputin.com/blog/index.php/a?cat=30
+http://rotarnet.com.au/users/9/96905/annual_reports/international.htm
+http://rotaryhistoryfellowship.org/leaders/morrow/
+http://rotation.infopop.cc/eve/ubb.x/a/tpc/f/982604404/m/728604404
+http://roundandwhite.blogspot.com/
+http://routt.net/bill/madness/
+http://rover.cs.northwestern.edu/~surana/blog/past/2003_07.html
+http://royalmusic.blogspot.com/
+http://royaltoybox.blogspot.com/
+http://roydevile.blogspot.com/2004/10/oh-boy.html
+http://roydevile.blogspot.com/2004_10_01_roydevile_archive.html
+http://rp.rac.co.uk/routeplanner
+http://rps.gn.apc.org/cat10.htm
+http://rr.latenightpc.com/wp/archives/2005/03/02/cell-phones-and-games-please/
+http://rrd.premiers.nsw.gov.au/rrd/public/2000/planning.html
+http://rredc.nrel.gov/solar/pubs/shining/chap5.html
+http://rru.worldbank.org/PapersLinks/Open.aspx?id=3761
+http://rsaffran.tripod.com/aba.html
+http://rsd.gsfc.nasa.gov/rsd/RemoteSensing.html
+http://rsh.dabu4u.com/forums/index.php?showtopic=8662&view=getnewpost
+http://rsjames.com/
+http://rspa-atty.dot.gov/appeals/dussia.html
+http://rspas.anu.edu.au/qb/articleFile.php?searchterm=2-1-4
+http://rtc.umn.edu/pub/
+http://rts.gn.apc.org/9805lanc.htm
+http://rtw.heavengames.com/rtw/info/units/rome/
+http://rubyglen.com/articles/senior.htm
+http://rugby.itv.com/Latest_News/story_36168.shtml
+http://ruk.ca/discuss/2290
+http://rules.senate.gov/history.html
+http://rules.senate.gov/senaterules/rule25.htm
+http://rules.tamu.edu/urules/100/170202M1.htm
+http://rullsenbergrules.blogspot.com/
+http://runehq.com/cache/itemsdbc.htm
+http://runehq.com/cache/viewitems0065.htm
+http://runehq.com/cacheguides/viewskillguide00422.htm
+http://runevillage.com/city2Lumby.php
+http://runevillage.com/specialHerblaw.php
+http://runevillage.com/whatis2.php
+http://ruoffcampus.rutgers.edu/apt/birchwood/pricelist.asp
+http://ruoffcampus.rutgers.edu/guide/landlord.asp
+http://ruoffcampus.rutgers.edu/ochs/help.asp
+http://ruralhealth.hrsa.gov/pub/Goldsmith.htm
+http://russell.blogs.com/mysore_musings/2004/11/leaving_bushcou.html
+http://russelldavies.typepad.com/ateaandathink/
+http://rutgers.placementmanual.com/interviewing/interviewing-04.html
+http://ruthlessreviews.com/interviews/mikeh/finntroll.html
+http://ruthlessreviews.com/movies/m/modigliani.html
+http://rvb.roosterteeth.com/home.php?page=2
+http://rwc.hunter.cuny.edu/writing/on-line/act-guidelines.html
+http://rwdmag.com/music_articles/features/89654378/roll_deep/roll_deep_crew/
+http://rwor.org/a/004/filibuster-wars.htm
+http://rwor.org/a/1203/bareach8.htm
+http://rwor.org/a/v20/980-89/986/yuri.htm
+http://rwor.org/a/v24/1181-1190/1188/carlinterview.htm
+http://rwor.org/chair_e.htm
+http://rylibweb.man.ac.uk/geography/geogclas.html
+http://rylibweb.man.ac.uk/guides/dsu.html
+http://ryzom.com/forum/showthread.php?t=15329&page=5
+http://s-train.kaphmedia.net/archives/000159.php
+http://s13a.math.aca.mmu.ac.uk/Student_Writings/DMELE/Marion_Ghey.html
+http://s4.invisionfree.com/Popular_Technology/index.php?showtopic=497
+http://s4.invisionfree.com/Popular_Technology/index.php?showtopic=497&view=getlastpost
+http://s4.invisionfree.com/Popular_Technology/index.php?showtopic=497&view=getnewpost
+http://s90209925.onlinehome.us/trfogey/archives/2004/09/
+http://s90209925.onlinehome.us/trfogey/archives/2004/09/11/
+http://s90209925.onlinehome.us/trfogey/archives/2004/09/11/74
+http://s93504554.onlinehome.us/sa/weblog.php?id=C0_3_1
+http://sa.indymedia.org/news/2003/02/3038.php
+http://saa.dva.state.wi.us/SAA_Wisconsin.asp
+http://saas.byu.edu/tuition/
+http://saas.byu.edu/tuition/index.aspx?lms=4
+http://sabbah.biz/mt/archives/2005/04/18/wafa-bin-ladens-niece-a-material-girl-not-madonna/
+http://sabbaticalhomes.com/result_query_details.asp?MessageID=15588
+http://sabong.net.ph/news/
+http://sadlyno.com/archives/001377.html
+http://sadlyno.com/archives/001421.html
+http://safariexamples.informit.com/0321154991/bookse15.html
+http://safety.ngfl.gov.uk/schools/document.php3?D=d55
+http://safrica.lionsands.com/index_800.asp
+http://sagp.kelley.indiana.edu/index.cfm?pageid=72
+http://sahs.utmb.edu/calendar/default.asp
+http://saint-johns-brunswick.pvt.k12.me.us/school/sjshist.htm
+http://saintfaron.blogspot.com/2004_03_01_saintfaron_archive.html
+http://saints.com.au/default.asp?pg=news&spg=noticeboard
+http://saints.merseyworld.com/html/news/news.shtml
+http://saintswithouthalos.com/
+http://saitekhelp.simhq.com/trouble_shooting.htm
+http://saladin.blogdrive.com/
+http://salazar.senate.gov/news/releases/050620hscresults.htm
+http://sales-marketing.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=JR&job_did=J8F0DN6YFV1R7SCYLZG
+http://sales-marketing.msn.careerbuilder.com/sm.ic/Louisiana_NewOrleans?radius=5
+http://sales-marketing.msn.careerbuilder.com/sm.ic/Missouri_Independence?radius=10
+http://sales-marketing.msn.careerbuilder.com/sm.ic/Missouri_Independence?radius=50
+http://sales-marketing.msn.careerbuilder.com/sm.ic/Missouri_Liberty?radius=50
+http://salina.areaconnect.com/
+http://salisburypages.blogspot.com/
+http://salmon.psy.plym.ac.uk/YEAR1/inttopic/gender.html
+http://salmon.psy.plym.ac.uk/year1/inttopic/gender.html
+http://salmon.psy.plym.ac.uk/year1/psy128animal_behaviour/animbeha.htm
+http://salmon.psy.plym.ac.uk/year3/maternal.htm
+http://salon.com/ent/feature/2002/12/17/tolkien_brin/
+http://salon.com/news/feature/2005/05/12/nuclear_option_primer/index2.html
+http://salt.claretianpubs.org/issues/prmin/madigan.html
+http://saltonseamovie.warnerbros.com/cmp/filmmakers.html
+http://saltyt.antville.org/20021114/
+http://samba.oss.eznetsols.org/samba/docs/man/Samba-HOWTO-Collection/printing.html
+http://samizdat.mines.edu/howto/HowToBeAProgrammer.html
+http://sammarshall.blogspot.com/2003_11_01_sammarshall_archive.html
+http://samples.gotdotnet.com/quickstart/howto/doc/useresources.aspx
+http://samsdotpublishing.com/aoife/AndersonCalling.htm
+http://samvak.tripod.com/nm031.html
+http://samvak.tripod.com/nm076.html
+http://sanantonio.bizjournals.com/sanantonio/stories/2005/01/31/daily10.html?jst=m_ln_hl
+http://sanantonio.ccimnet.com/jsp/resources/resources_event.jsp
+http://sanantonio.ccimnet.com/jsp/resources/resources_event_details.jsp?event_id=2971
+http://sanctityofmarriage.ca/speaking-out/Howard.htm
+http://sanctityofmarriage.ca/statements/OCC.htm
+http://sandhill.typepad.com/sandhill_trek/2004/05/royal_processio.html
+http://sandiegoblog.com/archives/category/sports/
+http://sandorian.us/newslog2.php/__show_article/_a000245-000090.htm
+http://sandwichshop.blogspot.com/
+http://sandyhershelman.com/RotarySeptember2002.htm
+http://sanjose.bizjournals.com/sanjose/stories/2004/07/05/daily2.html
+http://sanjose.bizjournals.com/sanjose/stories/2005/01/24/daily6.html
+http://sanskrit.forums.bhaarat.com/showthread.php?threadid=142
+http://santa-monica.org/epwm/utilities/text.html
+http://santabarbara.networkofcare.org/aging/news/detail.cfm?articleID=6883
+http://santificarnos.com/santiblog/index.php/english/2005/01/19/spanish_church_in_favor_of_condoms_to_st
+http://sapiens.ya.com/medik7/American-Board-Sleep-Medicine.htm
+http://sapir.ukc.ac.uk/Guests/g-mw/nyole4problems.html
+http://sara2000.unl.edu/cfp.php3
+http://sarahlane.typepad.com/sarahword/2004/10/photo_phun.html
+http://sarmerchandise.safeshopper.com/about.htm?335
+http://sarongpartygirl.blogspot.com/2004_04_11_sarongpartygirl_archive.html
+http://sartorius.centralcarolinascale.com/
+http://sartre.inrets.fr/english/sartre1E/text-en.htm
+http://sat-receiver-world.com/discl.htm
+http://sat-receiver-world.com/pd-1194756255.htm
+http://satucket.com/lectionary/Michael.htm
+http://saturdaynight.typepad.com/home/
+http://saturdaynight.typepad.com/home/2005/02/beads_for_socks.html
+http://savagepencil.typepad.com/confessions/
+http://savannahnow.com/diversions/stories/060205/STGdollhouse.shtml
+http://savannahnow.com/stories/081204/2366859.shtml
+http://savepublicaccess.org/forum/viewtopic.php?p=1612
+http://savepublicaccess.org/forum/viewtopic.php?p=1704
+http://savvytraveler.publicradio.org/show/features/1999/19990109/literary-heaven.shtml
+http://saw.themurdaughs.com/
+http://sbarrera.home.mindspring.com/game/civ/SMCivilized.html
+http://sbc.edu/president/perspective_summer04.html?newsletter
+http://sbc.senate.gov/democrat/record.cfm?id=215990
+http://sbcf.iu.edu/about/abstracts/round1.php
+http://sbcf.iu.edu/about/finrpts/rosenbaum.html
+http://sbinfocanada.about.com/
+http://sbinfocanada.about.com/cs/management/qt/powerptpres.htm
+http://sbinfocanada.about.com/cs/marketing/a/targetmarket.htm
+http://sbinfocanada.about.com/od/salesselling/
+http://sbinfocanada.about.com/od/salesselling/index_a.htm
+http://sbinfocanada.about.com/od/speakforsuccesscourse/a/buzzwords.htm
+http://sbm.sbmin.com/asp/DisplayArticles.asp?ArticleId=2305&CatId=74
+http://sbrady2.blogspot.com/
+http://sbrady2.blogspot.com/2005_06_01_sbrady2_archive.html
+http://sbschool.net/price2.html
+http://scalingup.smartlibrary.info/NewInterface/segment.cfm?segment=2074
+http://scatoday.net/node/view/3657
+http://scatoday.net/node/view/4295
+http://scbe.stanford.edu/research/programs/film/film_library.html
+http://sccbank.sc.gov/
+http://sccdcc.mn.sabren.com/mt-static/archives/issues/cat_ahnold.html
+http://scentral.iop.org/portsmouth-old.html
+http://sceschools.com/schools/CYPRUS/KINGR.HTM
+http://scheherazadetales.com/faq.html
+http://schematics.sourceforge.net/
+http://schlepper.hanse.de/redwolf/tacops-for-cmplayers-amp.html
+http://schmucknews.blogspot.com/2002_07_01_schmucknews_archive.html
+http://scholar.google.com/scholar/libraries.html
+http://scholar.lib.vt.edu/VA-news/VA-Pilot/issues/1994/vp941015/10150367.htm
+http://scholar.lib.vt.edu/VA-news/VA-Pilot/issues/1995/vp951029/10290142.htm
+http://scholar.lib.vt.edu/VA-news/VA-Pilot/issues/1997/vp970109/01090327.htm
+http://scholar.lib.vt.edu/ejournals/ALAN/spring96/pubconnection.html
+http://scholar.lib.vt.edu/ejournals/ElAnt/V1N7/kelly.html
+http://scholar.lib.vt.edu/ejournals/JITE/v34n1/jite-v34n1.book_review.html
+http://scholar.lib.vt.edu/ejournals/JITE/v36n1/boutin.html
+http://scholar.lib.vt.edu/ejournals/JITE/v37n3/hill.html
+http://scholar.lib.vt.edu/ejournals/JITE/v40n3/editor.html
+http://scholar.lib.vt.edu/ejournals/JTE/jte-v7n1/gokhale.jte-v7n1.html
+http://scholar.lib.vt.edu/ejournals/JTE/v13n2/becker.html
+http://scholar.lib.vt.edu/ejournals/JTE/v1n1/falco.jte-v1n1.html
+http://scholar.lib.vt.edu/ejournals/JTE/v7n1/herschbach.jte-v7n1.html
+http://scholar.lib.vt.edu/ejournals/JVME/V21-1/Seeler1.html
+http://scholar.lib.vt.edu/faculty_archives/mountain_slavery/race.htm
+http://schoogle.blogspot.com/2005/04/some-thoughts-on-acrl-long.html
+http://school.discovery.com/lessonplans/programs/biomes_inuit/
+http://school.discovery.com/lessonplans/programs/bodysystems/
+http://school.discovery.com/lessonplans/programs/creaturesofskies/
+http://school.discovery.com/lessonplans/programs/cubanmissile/
+http://school.discovery.com/lessonplans/programs/energyefficiency/
+http://school.discovery.com/lessonplans/programs/expansion/
+http://school.discovery.com/lessonplans/programs/forcesandmotion/
+http://school.discovery.com/lessonplans/programs/geo_northeast/
+http://school.discovery.com/lessonplans/programs/iceman/
+http://school.discovery.com/lessonplans/programs/measure_lengths/
+http://school.discovery.com/lessonplans/programs/octopus/
+http://school.discovery.com/lessonplans/programs/operationantibody/
+http://school.discovery.com/lessonplans/programs/time/
+http://school.discovery.com/lessonplans/programs/understanding-bacteria/
+http://school.discovery.com/schooladventures/spacestation/teachertips.html
+http://school.discovery.com/schrockguide/assess.html
+http://school.discovery.com/sciencefaircentral/dysc/tips/tips.html
+http://schoolgrades.fldoe.org/
+http://schoolnet.gov.mt/thinkingskills/thinkingtools.htm
+http://schoolnotes.com/06001/aperrault.html
+http://schoolreferenda.blogspot.com/
+http://schools.dor.org/board_members.cfm?master=5&subpage=55
+http://schools.gradschools.com/graduate-schools/North-Dakota.html
+http://schools.harrisoncsd.org/lmk/student.htm
+http://schools.moe.edu.sg/blgps/dept/noncore/cip/Activities.htm
+http://schoolstudio.engr.wisc.edu/futureclassrooms.html
+http://schoolweb.psdschools.org/she/SIT/SITMinutes19990218.html
+http://sci.esa.int/science-e/www/object/index.cfm?fobjectid=34840
+http://scidiv.bcc.ctc.edu/LS/MountSi/
+http://scidiv.bcc.ctc.edu/LS/MountSi/Race2002/
+http://science-biotech.careerbuilder.com/sb.ic/Tennessee_Memphis?sc=3&sd=0
+http://science-environment.nzpages.co.nz/Government/Agencies_and_Departments/
+http://science-environment.nzpages.co.nz/Home_and_Garden/Services/Electrical/
+http://science-project.org/inspire/in_bday_pt.htm
+http://science.education.nih.gov/supplements/nih3/alcohol/guide/lesson2.htm
+http://science.education.nih.gov/women/careers/Rodriguez/rodriguez.html
+http://science.howstuffworks.com/oil-drilling2.htm
+http://science.howstuffworks.com/oil-refining2.htm
+http://science.howstuffworks.com/question57.htm
+http://science.howstuffworks.com/question633.htm
+http://science.hq.nasa.gov/earth-sun/applications/
+http://science.krishna.org/Articles/2002/12/014.html
+http://science.nasa.gov/headlines/y2001/ast19sep_1.htm
+http://science.nasa.gov/headlines/y2002/06dec_dunes.htm
+http://science.nasa.gov/headlines/y2004/04jul_titanrevealed.htm
+http://science.nasa.gov/headlines/y2004/05mar_arctic.htm
+http://science.nasa.gov/headlines/y2004/23apr_biocorr2.htm
+http://science.nasa.gov/headlines/y2004/28may_cook.htm
+http://science.nasa.gov/headlines/y2005/24jun_electrostatics.htm
+http://science.nasa.gov/headlines/y2005/27may_approachingmars.htm
+http://science.nasa.gov/newhome/headlines/features/ast21sep98_1.htm
+http://science.nsta.org/nstaexpress/nstaexpress_2004_03_08_padilla.htm
+http://science.palomar.edu/physics/Physics230/Tutor/Tutor14.html
+http://science.uniserve.edu.au/newsletter/vol10/zadnik.html
+http://science_boy.blogspot.com/
+http://scienceclub.org/scifair.html
+http://scienceforpeace.sa.utoronto.ca/Video_Blurbs2.html
+http://sciencemag.blogs.com/sfgblog/2004/week36/
+http://sciencepolicy.colorado.edu/scienceadvisors/gibbons_transcript.html
+http://sciencespot.net/Pages/adtinspg.html
+http://scienceweek.com/2005/sc050204-6.htm
+http://scienceworld.wolfram.com/biography/Kelvin.html
+http://scienceworld.wolfram.com/biography/Shannon.html
+http://scientium.com/
+http://scifac.arcticscience.org/index3.php?thread=56
+http://scifair.ednet.ns.ca/AVRSF/Attitudes.html
+http://scifantastic.tripod.com/stories/change.html
+http://scifipulse.net/
+http://scilib.ucsd.edu/sio/nsf/fguide/thankyou.html
+http://scme-uchicago.blogspot.com/2004_09_01_scme-uchicago_archive.html
+http://scn.infopop.cc/eve/ubb.x/a/tpc/f/22310331/m/71710940563
+http://scn.infopop.cc/eve/ubb.x/a/tpc/f/84310492/m/72710227563
+http://scn.infopop.cc/eve/ubb.x/a/tpc/f/91310331/m/13110741
+http://scn.infopop.cc/eve/ubb.x/a/tpc/f/91310331/m/13110741/xsl/print_topic
+http://scncatalog.scientology.net/OA_HTML/Help.htm
+http://scoobiedavis.blogspot.com/
+http://scoop.agonist.org/story/2005/1/27/193027/242
+http://score.rims.k12.ca.us/activity/castle_builder/
+http://score.rims.k12.ca.us/activity/islam/
+http://score.rims.k12.ca.us/activity/project_helping_hand/
+http://scotland.ideasfactory.com/film_tv/features/feature53.htm
+http://scotland.ideasfactory.com/glasgow/features/feature17.htm
+http://scotland.indymedia.org/newswire/display/1669/index.php
+http://scotland.indymedia.org/newswire/display/1719/index.php
+http://scotlandgolftouring.com/Links---Outside-St.-Andrews/index.php
+http://scotlandonsunday.scotsman.com/business.cfm?id=561922003
+http://scotlandonsunday.scotsman.com/business.cfm?id=644112005
+http://scotlandonsunday.scotsman.com/entertainment.cfm?id=141502005
+http://scotlandonsunday.scotsman.com/index.cfm?id=141502005
+http://scotlandonsunday.scotsman.com/index.cfm?id=274332005
+http://scotlandonsunday.scotsman.com/index.cfm?id=4012005
+http://scotlandonsunday.scotsman.com/index.cfm?id=635312003
+http://scotlandonsunday.scotsman.com/thereview.cfm?id=849142004&20040728132020
+http://scotlandonsunday.scotsman.com/thereview.cfm?id=940712004
+http://scotlandonsunday.scotsman.com/uk.cfm?id=463782004
+http://scotlandvacations.com/joseph_lister.htm
+http://scott.sauyet.com/thoughts/archives/2004/11/
+http://scottishchristian.com/news/index.shtml
+http://scottishlamb.typepad.com/the_scottish_lamb/2005/01/i_dont_mean_to_.html
+http://scottishnous.typepad.com/
+http://scottishritemasons-can.org/hamibody.htm
+http://scottishritemasons-can.org/srcanada.htm
+http://scottneigh.blogspot.com/
+http://scottstuff.net/scott/archives/000320.html
+http://scoutdocs.ca/Scouts_Canada_Act/Statutes.php
+http://scoutingweb.com/scoutingweb/Training/LdrTrain.htm
+http://scpp.ubalt.edu/services.cgi?id=4
+http://screenandsound.llgc.org.uk/cronfa/main.htm
+http://scribbling.net/help_the_googlebot_understand_your_web_site
+http://scribbling.net/how-to-fix-moms-computer
+http://scriptingnews.userland.com/backIssues/2001/09/11
+http://scriptorium.lib.duke.edu/broadside/number7.html
+http://scripts.ireland.com/ancestor/magazine/heraldry/
+http://scripts.iucr.org/cgi-bin/paper?a02224
+http://scripts.iucr.org/cgi-bin/paper?a25401
+http://scripts.lovingyou.com/mdb/search.cgi?mdb=gifts&cat=recp05
+http://scrivenerspen.org/Volume5Issue1/creek.asp
+http://scs.une.edu.au/Bushrangers/songs.htm
+http://scsc.essortment.com/lavendarherbpl_rkgg.htm
+http://sctvguide.ca/episodes/sctv_s43.htm
+http://sd-1.net/lofiversion/index.php/t13397.html
+http://sd-1.net/lofiversion/index.php/t14021.html
+http://sd-1.net/lofiversion/index.php/t19549.html
+http://sd-1.net/lofiversion/index.php/t21942.html
+http://sd-1.net/lofiversion/index.php/t22680.html
+http://sd-1.net/lofiversion/index.php/t23980.html
+http://sd-1.net/lofiversion/index.php/t30095.html
+http://sd-1.net/lofiversion/index.php/t34225.html
+http://sd-1.net/lofiversion/index.php/t37893.html
+http://sd-www.jhuapl.edu/IMAGE/serv_data2/products/manuals/euv_imtool_manual/euv_imtool.html
+http://sd.yeahbabyexpo.com/
+http://sd.yeahbabyexpo.com/main.html
+http://sd.znet.com/~schester/fallbrook/maps/
+http://sd.znet.com/~schester/financial_advice/before_investing.html
+http://sd71.bc.ca/sd71/school/cumberland-jr/school/hw/default.asp?catid=995&cattitle=What+Students+Like+About+Cumberland+Jr.+Secondary
+http://sdguard.ngb.army.mil/careers/careers.asp
+http://sdrc.lib.uiowa.edu/iwa/findingaids/html/LewisThelma.htm
+http://sdsd.essortment.com/richardallenme_rnys.htm
+http://sdwhiteshell.mb.ca/earlychildhood/ecdinterest.htm
+http://seacoastnh.com/arts/please052299.html
+http://seagrant.gso.uri.edu/41N/Vol2No2/fish_feature.html
+http://seagrant.oregonstate.edu/sgpubs/onlinepubs/s02001.html
+http://seagrant.oregonstate.edu/sgpubs/onlinepubs/w99001.html
+http://sealevelsky.blogspot.com/
+http://seamonkey.ed.asu.edu/~alex/teaching/sunday_school/free_will.html
+http://search-engines.allinfoabout.com/Search-Engine-Optimization/Karon-SEO-2.html
+http://search.atomz.com/search/?sp-a=00082ce6-sp00000001&sp-q=='SURF+MOTEL+-+CARLSBAD'
+http://search.atomz.com/search/?sp-q=Balance+of+Payments+and+Components&sp-a=00070447-sp00000000
+http://search.atomz.com/search/?sp-q=Bank+of+Canada+Review&sp-a=00070447-sp00000000
+http://search.atomz.com/search/?sp-q=House+of+Commons&sp-a=00070447-sp00000000
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?cds2Pid=1527&displayonly=EXC&ean=9780743246347&linkid=422977
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?cds2Pid=3057&kids=y&isbn=0618428585&linkid=413123
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?cds2Pid=4359&isbn=0316346624&linkid=410282
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?cds2Pid=6831&PWB=1&ean=9780316346627&linkid=413029
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=0195282779
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=074324690X&itm=2
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=0761115706
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=0783891377&itm=3
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=0786101970&itm=4
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=0786262060&itm=4
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=0805047905&itm=8
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=0830832149&itm=9
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=0836822765&itm=3
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=1402897685&itm=5
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=1402897685&itm=77
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=1402897685&itm=9
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=1585422029&itm=9
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?endeca=1&isbn=1885167601&itm=2
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=0060530472&itm=19
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=0316316962&itm=3
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=0316316962&itm=4
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=0316346624&itm=2
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=0465051359&itm=12
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=0679728759&itm=3
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=0743256166&endeca=1&cds2Pid=163&linkid=485816
+http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=1570427933&itm=5
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?cds2Pid=4217&brg=y&isbn=0641626754
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?cds2Pid=5515&isbn=1885167601
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?cds2Pid=5555&brg=y&isbn=1402897685
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?cds2Pid=5575&isbn=0316346624
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?cds2Pid=5884&brg=y&isbn=0641626754
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?cds2Pid=8735&isbn=0399152849
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?ean=9780440236177&displayonly=EXC
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?ean=9780440241416&pwb=1&displayonly=CHP
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?ean=9780689874741&displayonly=CRV&idx=25
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?ean=9781400077823&displayonly=EXC
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?endeca=1&cds2Pid=155&isbn=0743256166
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?endeca=1&cds2Pid=5515&isbn=1885167601
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?isbn=0679728759
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780060530471
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780316346627
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780375422881
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780380713806
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780425179871
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780465051359
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780505525833
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780553274875
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780670033270
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780671671563
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780671797256
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780679772897
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780743246903
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780743256162
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780787979102
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780830832149
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9780895260895
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9781402897689
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9781558216846
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&ean=9781885167606
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&isbn=0316316962
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?pwb=1&isbn=1570427933
+http://search.barnesandnoble.com/booksearch/isbninquiry.asp?sourceid=M000000269&ean=9780767912914&displayonly=EXC
+http://search.cpan.org/src/JMASON/HTML-WebMake-2.2/doc/making.html
+http://search.cpan.org/~jhi/perl-5.8.0/pod/perlfaq4.pod
+http://search.cxo.com/darwin/query.html?ql=&qt=CRM&charset=iso-8859-1&col=darwin
+http://search.cxo.com/darwin/query.html?ql=a&qt=CRM&charset=iso-8859-1&col=darwin
+http://search.cxo.com/darwin/query.html?qm=1&charset=iso-8859-1&col=darwin&qt=CRM
+http://search.cxo.com/darwin/query.html?qt=CRM&col=darwin
+http://search.eb.com/Blackhistory/activity4.jsp
+http://search.eb.com/blackhistory/micro/329/99.html
+http://search.ebay.co.uk/monitor_Cardiovascular-Equipment_W0QQsacategoryZ28059QQsosortpropertyZ1
+http://search.ebay.com/american-telephone
+http://search.ebay.com/custom-classic
+http://search.hotbot.co.uk/results/blinds-buy-window/
+http://search.montanaweb.com/browse.cfm/333,2,14
+http://search.news.yahoo.com/search/news/?p=Federal+Open+Market+Committee
+http://search.news.yahoo.com/search/news/?p=Toni+Collette
+http://search.news.yahoo.com/search/news?p=oil+gas+petroleum&n=10&c=news
+http://search.rubylane.com/search/,id=87,page=2.html
+http://search.universalclass.com/i/search/5345.htm
+http://search.universalclass.com/i/search/Creating-information.htm
+http://search.universalclass.com/i/search/petsit-information.htm
+http://search2.ananzi.co.za/catalog/HealthandBeauty/Beauty/CosmeticsandSkinCare/
+http://search2.downtownmusicgallery.com/Searching/WWW_DMG_Search.cgi?label.orange%5C%5C%20Mountain
+http://searchbox.hyperdictionary.com/dictionary/free
+http://searchdomino.techtarget.com/originalContent/0,289142,sid4_gci1033493,00.html
+http://searchdomino.techtarget.com/tip/1,289483,sid4_gci771657,00.html
+http://searchforlove.blogspot.com/2004_09_01_searchforlove_archive.html
+http://searchkey.com/books/doyle/big_city11.html
+http://searchnetworking.techtarget.com/originalContent/0,289142,sid7_gci962259,00.html
+http://searchnetworking.techtarget.com/tip/1,289483,sid7_gci918038,00.html
+http://searchnetworking.techtarget.com/whitepaperPage/0,293857,sid7_gci1009049,00.html
+http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci966403,00.html
+http://searchstorage.techtarget.com/ateQuestionNResponse/0,289625,sid5_cid562402_tax295552,00.html
+http://searchstorage.techtarget.com/originalContent/0,289142,sid5_gci966137,00.html
+http://searchstorage.techtarget.com/tip/1,289483,sid5_gci1034300,00.html
+http://searchstorage.techtarget.com/tip/1,289483,sid5_gci1034733,00.html
+http://searchstorage.techtarget.com/tip/1,289483,sid5_gci808783,00.html
+http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci842794,00.html
+http://searsmedia.com/mediatools/press.jsp
+http://seasonsseminars.com/goodpeople.html
+http://seattle.bizjournals.com/seattle/stories/2002/04/08/daily8.html
+http://seattle.indymedia.org/en/2005/01/244360.shtml
+http://seattlemariners.blogspot.com/2004_06_01_seattlemariners_archive.html
+http://seattlep-i.nwsource.com/football/48557_hawk29.shtml
+http://seattlep-i.nwsource.com/local/24202_uwbiz23.shtml
+http://seattlep-i.nwsource.com/local/30466_frontier07.shtml
+http://seattleperforms.com/index.php?option=com_nathevents&action=view_day&year=2005&month=5&day=29
+http://seattleperforms.com/index.php?option=com_nathevents&action=view_month&year=2005&month=5
+http://seattlepi.nwsource.com/
+http://seattlepi.nwsource.com/athome/229714_homecal25.html
+http://seattlepi.nwsource.com/attack/43546_chaplains20.shtml
+http://seattlepi.nwsource.com/baseball/227445_maridraft07.html
+http://seattlepi.nwsource.com/baseball/31009_ellis12.shtml
+http://seattlepi.nwsource.com/business/126622_vulcan14.html
+http://seattlepi.nwsource.com/business/210947_listening07.html
+http://seattlepi.nwsource.com/business/223367_homecall09.html
+http://seattlepi.nwsource.com/business/apbiz_story.asp?category=1310&slug=Rowing%20Against%20Offshore
+http://seattlepi.nwsource.com/football/222895_hawk05.html
+http://seattlepi.nwsource.com/getaways/040298/dest02.html
+http://seattlepi.nwsource.com/getaways/090398/braz03.html
+http://seattlepi.nwsource.com/getaways/145991_shorttrips30.html
+http://seattlepi.nwsource.com/getaways/226827_out02.html
+http://seattlepi.nwsource.com/getaways/81705_hike08.shtml
+http://seattlepi.nwsource.com/graham/208220_billy01.html
+http://seattlepi.nwsource.com/hax/210223_hax02.html
+http://seattlepi.nwsource.com/health/226147_condor30.html
+http://seattlepi.nwsource.com/health/227764_mold09.html
+http://seattlepi.nwsource.com/jamieson/226988_robert03.html
+http://seattlepi.nwsource.com/legislature/conflicts_house.asp
+http://seattlepi.nwsource.com/lifestyle/218453_punkymoms04.html
+http://seattlepi.nwsource.com/local/108579_missingday17.shtml
+http://seattlepi.nwsource.com/local/149699_coma25.html
+http://seattlepi.nwsource.com/local/158099_nodoctorhere26.html
+http://seattlepi.nwsource.com/local/179766_navywife28.html
+http://seattlepi.nwsource.com/local/194977_animals13.html
+http://seattlepi.nwsource.com/local/204624_politics21.html
+http://seattlepi.nwsource.com/local/205131_dalcospill24.html
+http://seattlepi.nwsource.com/local/205486_freighter28.html
+http://seattlepi.nwsource.com/local/206939_greene07.html
+http://seattlepi.nwsource.com/local/211012_tsunamiscience07.html
+http://seattlepi.nwsource.com/local/211615_vcenter11.html
+http://seattlepi.nwsource.com/local/216047_bankruptcy15.html
+http://seattlepi.nwsource.com/local/219000_teachers06.html?searchpagefrom=1&searchdiff=0
+http://seattlepi.nwsource.com/local/222943_safety05.html
+http://seattlepi.nwsource.com/local/223950_dumpster12.html
+http://seattlepi.nwsource.com/local/224153_anorexia13.html?searchpagefrom=1&searchdiff=0
+http://seattlepi.nwsource.com/local/225559_payday24.html?searchpagefrom=1&searchdiff=0
+http://seattlepi.nwsource.com/local/227638_brownfield08.html
+http://seattlepi.nwsource.com/local/227638_brownfield08.html?searchpagefrom=1&searchdiff=0
+http://seattlepi.nwsource.com/local/227965_salmon10.html
+http://seattlepi.nwsource.com/local/229506_manleycustody22.html
+http://seattlepi.nwsource.com/local/229689_cashingfood23.html
+http://seattlepi.nwsource.com/local/wtoo25.shtml
+http://seattlepi.nwsource.com/movies/115713_tango04q.shtml
+http://seattlepi.nwsource.com/movies/apmovies_story.asp?category=1402&slug=Movies%20AP%20AOL%20Poll
+http://seattlepi.nwsource.com/national/145267_arctic24.html
+http://seattlepi.nwsource.com/national/228556_blairmemo15.html
+http://seattlepi.nwsource.com/nwgardens/217240_wingate24.html
+http://seattlepi.nwsource.com/nwgardens/225912_lovejoy28.html
+http://seattlepi.nwsource.com/opinion/227891_tony10.html
+http://seattlepi.nwsource.com/opinion/228981_schiavo19.html
+http://seattlepi.nwsource.com/transportation/119423_design26.html
+http://seattlepi.nwsource.com/transportation/227159_monorail04.html
+http://seattlepi.nwsource.com/transportation/228903_trolley17.html
+http://seattlepi.nwsource.com/transportation/96121_get18.shtml
+http://seattlepi.nwsource.com/venture/121167_vc09.html
+http://seattlepi.nwsource.com/venture/191189_vc17.html?searchpagefrom=1&searchdiff=4
+http://seattlepi.nwsource.com/venture/225088_vc20.html
+http://seattlepi.nwsource.com/venture/227904_vc10.html
+http://seattletimes.nwsource.com/homes/html/2001/homeshock20.html
+http://seattletimes.nwsource.com/html/businesstechnology/2002179287_paul14.html
+http://seattletimes.nwsource.com/html/businesstechnology/2002196324_jaech04.html
+http://seattletimes.nwsource.com/html/businesstechnology/2002223020_gatesthink29.html
+http://seattletimes.nwsource.com/html/businesstechnology/2002225729_graying31.html
+http://seattletimes.nwsource.com/html/education/2002340942_sos19e.html?syndication=rss
+http://seattletimes.nwsource.com/html/health/2002258621_liztaylor02.html
+http://seattletimes.nwsource.com/html/health/2002324856_healthetiquette12.html
+http://seattletimes.nwsource.com/html/iraq/2002172341_iraqchatter06.html
+http://seattletimes.nwsource.com/html/living/2002347389_jdl26.html
+http://seattletimes.nwsource.com/html/localnews/2002141045_doctor05m.html
+http://seattletimes.nwsource.com/html/localnews/2002160868_dige26m.html
+http://seattletimes.nwsource.com/html/localnews/2002167537_webwolves01.html
+http://seattletimes.nwsource.com/html/localnews/2002321032_healthincentives08m.html
+http://seattletimes.nwsource.com/html/localnews/2002340883_gayscience19m.html
+http://seattletimes.nwsource.com/html/nationworld/2001909526_coffinside22m.html
+http://seattletimes.nwsource.com/html/nationworld/2002150449_yeechapter8.html
+http://seattletimes.nwsource.com/html/nationworld/2002150604_yeeepilogue.html
+http://seattletimes.nwsource.com/html/nationworld/2002172341_iraqchatter06.html
+http://seattletimes.nwsource.com/html/nationworld/2002345123_flag23.html
+http://seattletimes.nwsource.com/html/opinion/2002167361_larson02.html
+http://seattletimes.nwsource.com/html/travel/2002168239_nwwcomics03.html
+http://seattletimes.nwsource.com/news/local/737/part01/
+http://seattletimes.nwsource.com/pacificnw/2003/0727/cover.html
+http://seattletimes.nwsource.com/text/2002347555_longtermloans26.html
+http://seattletimes.nwsource.com/uninformed_consent/bloodcancer/story1_p3.html
+http://seattlewebcrafters.com/nsecc/?q=node/view/10
+http://seattlewebcrafters.com/nsecc/?q=node/view/8
+http://seattlewebcrafters.com/nsecc/?q=node/view/9
+http://seawifs.gsfc.nasa.gov/OCEAN_PLANET/HTML/ps_power.html
+http://seazoo.com/about.htm
+http://secc.rti.org/display.cfm?t=m&i=Chapter_50
+http://secc.rti.org/display.cfm?t=m&i=Chapter_53_3
+http://secret.oucs.ox.ac.uk/dv/files/dv-9.html
+http://secretariat.concordia.ca/policies/vrs/en/VRS-49.shtml
+http://secrets.scripting.com/
+http://sections.asme.org/SyracuseNY/notice.htm
+http://secure.ultracart.com/catalog/bbco/women/
+http://security.linux.com/article.pl?sid=03/08/22/0443248&tid=90&tid=35
+http://security.royans.net/info/papers/statistical_attack.shtml
+http://security.uchicago.edu/docs/userpassword.shtml
+http://security.vt.edu/gotoclass/
+http://securityresponse.symantec.com/avcenter/venc/data/backdoor.trojan.html
+http://securityresponse.symantec.com/avcenter/venc/data/codered.ii.html
+http://securityresponse.symantec.com/avcenter/venc/data/w32.dumaru.ah@mm.html
+http://securityresponse.symantec.com/avcenter/venc/data/w32.korgo.removal.tool.html
+http://securityresponse.symantec.com/avcenter/venc/data/w32.netsky@mm.removal.tool.html
+http://securityresponse.symantec.com/avcenter/venc/data/w32.randex.e.html
+http://securityresponse.symantec.com/avcenter/venc/data/w32.sasser.removal.tool.html
+http://securityresponse.symantec.com/avcenter/venc/data/win.script.hosting.html
+http://sedis.blogspot.com/2005/06/anthropological-film-in-finland-from.html
+http://seed.scit.wlv.ac.uk/papers/position.html
+http://seedsforchange.org.uk/free/diary
+http://seegreenink.typepad.com/seegreenink/2005/01/_i_was_at_the.html
+http://seeingthedifference.berkeley.edu/micco
+http://seekers.100megs6.com/gran-cayenne.htm
+http://seetheforest.blogspot.com/2004_04_01_seetheforest_archive.html
+http://seetheforest.blogspot.com/2004_11_01_seetheforest_archive.html
+http://segwaychat.com/forum/topic.asp?whichpage=-1&TOPIC_ID=10048&REPLY_ID=86038
+http://seis.bris.ac.uk/~glcjh/ivhhn/news/news.html
+http://seisatsu.net/
+http://sekaiseifuku.net/floating1.html
+http://selborne.parish.hants.gov.uk/village.html
+http://selfpublishing.lifetips.com/
+http://sell-your-home-fsbo.com/
+http://selland.boisestate.edu/academic_programs/BASD.htm
+http://sellingtobigcompanies.blogs.com/selling/2004/08/
+http://sellingtobigcompanies.blogs.com/selling/sales_training_tips/
+http://sellingtobigcompanies.blogs.com/selling/tough_questions_ask_the_expert/
+http://semale.atspace.com/free/shemale-toons-free.html
+http://semanticcompositions.typepad.com/index/2004/05/happy_mothers_d.html
+http://semanticcompositions.typepad.com/index/2004/week44/
+http://semcosh.org/cold%20stress.htm
+http://semenlostatsea.blogspot.com/
+http://semiconweb.com/microscope.html
+http://seminardirect.com/?trackcode=bizcom
+http://sen.parl.gc.ca/dhays/information-en.htm
+http://sen.parl.gc.ca/ymorin/en/speeches_template.asp?speechID=17
+http://seniorhealth.about.com/library/weekly/aa062401a.htm
+http://seniorhealth.about.com/od/prevention/a/doc_fitness.htm
+http://seniorliving.about.com/od/healthnutrition/a/7agingskincause.htm
+http://seniorliving.about.com/od/visionproblems/a/macularstudyfru.htm
+http://seniorliving.miningco.com/od/healthnutrition/a/7agingskincause.htm
+http://seniors.hothost.tv/free_foot_fetish_thumbnails.html
+http://seniorshop.gamestalks.com/cocegas.html
+http://seniorshop.gamestalks.com/foot_fetish_and_model_content.html
+http://seniorshop.gamestalks.com/footsie.html
+http://seniorshop.gamestalks.com/free_foot_fetish_site.html
+http://seniorshop.gamestalks.com/gay_male_foot_fetish.html
+http://senseis.xmp.net/?SomeBasicTipsForFuseki
+http://sensors.lbl.gov/sf_particle.html
+http://sentencing.typepad.com/sentencing_law_and_policy/2005/01/scotus_speaks_e.html
+http://sentencing.typepad.com/sentencing_law_and_policy/2005/01/take_a_deep_bre.html
+http://sentencing.typepad.com/sentencing_law_and_policy/race_class_and_gender/
+http://seosamh.blogspot.com/
+http://septterror.tripod.com/memory4.html
+http://sepwww.stanford.edu/~morgan/snwburd/trip_reports/round_top_2.html
+http://serc.carleton.edu/NAGTWorkshops/teacherprep03/low.html
+http://serendip.brynmawr.edu/Mind/James.html
+http://serendip.brynmawr.edu/bb/EncyHumBehav.html
+http://serendip.brynmawr.edu/bb/neuro/neuro01/web3/Webb.html
+http://serendip.brynmawr.edu/biology/b103/f01/web2/dada.html
+http://serendip.brynmawr.edu/biology/b103/f01/web3/ginanni.html
+http://serendip.brynmawr.edu/biology/b103/f01/web3/rosas.html
+http://serendip.brynmawr.edu/biology/b103/f02/web1/mrhyu.html
+http://serendip.brynmawr.edu/complexity/complexity.html
+http://serendip.brynmawr.edu/local/scisoc/sports02/forumarchive2-3.html
+http://serendip.brynmawr.edu/sci_cult/courses/beauty/syllabus.html
+http://serendip.brynmawr.edu/sci_cult/courses/knowbody/f04/web3/nevans.html
+http://serendip.brynmawr.edu/sci_cult/culturedisability.html
+http://serendip.brynmawr.edu/serendipia/Serendipia-Shen.html
+http://serg.uvweb.org/ar_2003_2004
+http://serg.uvweb.org/stories/storyReader$38
+http://server.alabamacu.com/Alabama%20CU%20pages/MoreSvcs.html
+http://server.bmod.athabascau.ca/html/prtut/reinpair.htm
+http://server.boardgamestuff.com:8000/pair-of-dice-games-reviews.html
+http://server1.fandm.edu/levittown/three/kitchen.html
+http://server1.msn.co.in/boxoffice/articles/output.asp?urlid=4
+http://server2.dyned.com/voande4.htm
+http://service.real.com/realplayer/streamhelp/
+http://service.spiegel.de/cache/international/0,1518,343281,00.html
+http://service.spiegel.de/cache/international/0,1518,346951,00.html
+http://service.spiegel.de/cache/international/0,1518,357342,00.html
+http://service.spiegel.de/cache/international/0,1518,360285,00.html
+http://service.spiegel.de/cache/international/spiegel/0,1518,357366,00.html
+http://service.spiegel.de/cache/international/spiegel/0,1518,357628,00.html
+http://service.spiegel.de/cache/international/spiegel/0,1518,359690,00.html
+http://service.spiegel.de/cache/international/spiegel/0,1518,361236,00.html
+http://service.spiegel.de/cache/international/spiegel/0,1518,362110,00.html
+http://service.spiegel.de/cache/international/spiegel/0,1518,362574,00.html
+http://servicelearningcommission.org/slcommission/profiles.html
+http://services.vsac.org/ilwwcm/connect/VSAC/Library/Pathfinders/VSAC%20-%20LIBRARY%20-%20Pathfinders%20-%20Self-Employment
+http://servlets.com/tools/
+http://seshperankh.blogspot.com/2005_04_01_seshperankh_archive.html
+http://sessioneast1.tripod.com/id2.html
+http://sessions.senate.gov/pressapp/record.cfm?id=178453
+http://sessions.senate.gov/pressapp/record.cfm?id=231087
+http://sessions.senate.gov/pressapp/record.cfm?id=236199
+http://set-upinc.com/rp5/nctshome.shtml
+http://sethgodin.typepad.com/seths_blog/2004/09/
+http://sethgodin.typepad.com/seths_blog/2005/05/a_letter_from_k.html
+http://sethgodin.typepad.com/seths_blog/2005/05/seths_new_ebook.html
+http://sethgodin.typepad.com/seths_blog/2005/06/small_is_the_ne.html
+http://setiathome.berkeley.edu/forum_thread.php?id=16267
+http://setiweb.ssl.berkeley.edu/forum_thread.php?id=15278
+http://seven.com.au/seven/as_howard
+http://sevenoaksmag.com/features/49_feat1.html
+http://sewell.thefreelibrary.com/Black-Beauty/1-13
+http://sexfitness.lifevistas.com/
+http://sexstory.blogsome.com/2005/06/20/
+http://sexstory.blogsome.com/2005/06/20/sex-story-caught-in-the-act/
+http://sexton.library.dal.ca/newbooks/nb010504.html
+http://sexton.library.dal.ca/newbooks/nb101204.html
+http://seychellesoffshore.com/index.php?lang=en&page=1_4_3
+http://sf.indymedia.org/news/2005/06/1716277.php
+http://sfa.knowledgestorm.com/kssfa/search/browse/1390/1390.jsp
+http://sfa.knowledgestorm.com/search/keyword/kssfa/Sales%20Representatives%20White%20Paper/Sales%20Representatives%20White%20Paper
+http://sfattorney.typepad.com/law/
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/01/14/DDGG048F0G1.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/07/27/DEMOS.TMP
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/10/15/BUG7T8E81H63.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/01/23/LVGT7ASCMR1.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/01/24/MNGJKAVAAL1.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/02/02/HOGSI717TT30.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/02/05/MNG0TB6KQ91.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/02/17/BUG5QBCI5B1.DTL&type=business
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/03/03/BUGQVBJDI01.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/03/17/BUGN2BQE9T1.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/04/11/MNGKIC697J1.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/04/18/MNGMFCAH6A1.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/05/09/MNG5LCLEU41.DTL&type=science
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/05/22/INGUNCQHKJ1.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/06/05/TRGOOD1RFN1.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/06/12/MNGJND7G5T1.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2005/01/22/MNGN2AUP8O1.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2005/06/12/SPG5PD7F531.DTL&type=golf
+http://sfgate.com/cgi-bin/article.cgi?f=/g/a/2005/06/22/gree.DTL
+http://sfgate.com/cgi-bin/article.cgi?f=/news/archive/2005/01/06/sports1407EST0350.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2003/09/10/MN266317.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2004/10/25/MNGED9FNH01.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/01/28/BUG46B1PJU1.DTL&type=printable
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/02/03/WIG5IB45A71.DTL&type=printable
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/02/05/MNG0TB6KPV1.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/02/13/MNGSGBAGRH1.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/03/03/BUGQVBJDI01.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/04/11/MNGKIC697J1.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/04/15/MNG29C9D8D1.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/04/24/PKGCACAHS91.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/04/29/MNGT1CHIU11.DTL&type=science
+http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/06/28/BUSH.TMP
+http://sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/07/28/DDG287THBA1.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/10/30/BAG4S9IHPG27.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/12/21/MNGN8AEV0J1.DTL
+http://sfgate.com/cgi-bin/article.cgi?file=/gate/archive/2004/06/18/notes061804.DTL
+http://sfhelp.org/04/myths.htm
+http://sfhs.eget.net/P_articles/Pelo88.html
+http://sfmicroangels.org/CustomPage5.html
+http://sfy.iv.ru/sfy.html?script=o_brother
+http://sg.ksdb.com/
+http://sga.utdallas.edu/web1/sga_standing_rules.html
+http://sgce.cbse.uab.edu/carson/papers/wavelets/wave_dis.html
+http://sgs.cnr.colostate.edu/EdWeb/EdResourceCenter/carbon.htm
+http://sgtlizzie.blogspot.com/2004/12/in-hosptital.html
+http://sgtlizzie.blogspot.com/2005_01_01_sgtlizzie_archive.html
+http://shakespeareauthorship.com/
+http://shakespeareauthorship.com/bacpenl.html
+http://shakespeareauthorship.com/bacpl2.html
+http://shamankinghq.net/fanchar1.html
+http://shamusissues.blogspot.com/
+http://shanghaiexpat.com/admin.php?module=Web_Links&op=main
+http://share.studio.adobe.com/axBrowseProductType.asp?t=45
+http://share.studio.adobe.com/axBrowseSubmit.asp?c=161
+http://share.studio.adobe.com/axBrowseSubmit.asp?r=0&t=45&pgsel1=1
+http://sharedjourney.com/articles/3vs5.html
+http://shareholders.commbank.com.au/group_display/0,1922,NI2181%255FCH2181,00.html
+http://sharingpensions.co.uk/legislation2.htm
+http://sharingsteve.blogspot.com/2004/03/exerpt-from-book-about-dating-steve.html
+http://shatnerian.blogspot.com/2003_07_01_shatnerian_archive.html
+http://shauny.org/pussycat/
+http://sheepandgoat.com/articles/WMD.html
+http://sheesh.pitas.com/
+http://sheetmusic.music123.com/search_query.asp?all=%22Plant%2C+Robert%22&who=Artist&cookie=yes
+http://shekel.jct.ac.il/cc-res/online-doc/libgPP/iostream_toc.html
+http://sheknows.com/about/look/2948.htm
+http://sheknows.com/about/look/4298.htm
+http://shelby.senate.gov/news/record.cfm?id=182340
+http://shelby.senate.gov/news/record.cfm?id=237005
+http://shelby.senate.gov/newsletter/050408.html
+http://shellcity.net/content8.htm
+http://shenuts.com/index.php?p=815
+http://shewhoeats.blogspot.com/2005/02/tea-break-with-costs-and-efforts.html
+http://shika.aist-nara.ac.jp/products/wcol/tech/p_concept.html
+http://shittyblogsclub.blogcafe.com/
+http://shop.3rdedition.org/product_info.php?products_id=32401&
+http://shop.abc.net.au/help/faq.shtm
+http://shop.canada.nhl.com/helpdesk/index.jsp?display=safety&subdisplay=terms&clickid=botnav_terms_txt
+http://shop.comedycentral.com/sm-dane-cook-lewis-black-and-jim-breuer-on-dvd--pi-1422847.html
+http://shop.comedycentral.com/sm-lewis-black-books--fi-1989151_cp-1080338.html
+http://shop.comedycentral.com/sm-lewis-black-books--fi-1989151_cp-1334645.html
+http://shop.comedycentral.com/sm-lewis-black-cd-and-dvd-pack--pi-2014889.html
+http://shop.comedycentral.com/sm-lewis-black-luther-burbank-performing-arts-center-blues-cd--pi-1923497.html
+http://shop.comedycentral.com/sm-lewis-black-unleashed-and-black-on-broadway-dvd-set--pi-2011509.html
+http://shop.deviantart.com/featuredartist/?id=3
+http://shop.divebooty.com/products/ms_miscellaneous-drysuits.html
+http://shop.homeenergy.org/chapt1.html
+http://shop.mlb.com/helpdesk/index.jsp?display=ordering&subdisplay=checkout
+http://shop.nhl.com/sm-hockey-protective-equipment--bg-222795.html
+http://shop.orange.co.uk/shop/reasons_html
+http://shop.scottish.parliament.uk/item.jsp?ID=1888
+http://shop.scottish.parliament.uk/item.jsp?ID=2279
+http://shop.scran.ac.uk/prod.php?prod_id=SC006
+http://shop.store.yahoo.com/4crests/shcoofarfacr.html
+http://shop.store.yahoo.com/a-s-publishing/coverletters.html
+http://shop.store.yahoo.com/a-s-publishing/covletstratt.html
+http://shop.store.yahoo.com/a-s-publishing/provresstrat1.html
+http://shop.store.yahoo.com/allergybuyersclub/bedfur.html
+http://shop.store.yahoo.com/brandsplace/0097-42092.html
+http://shop.store.yahoo.com/brandsplace/0097-42093.html
+http://shop.store.yahoo.com/esistore-store/artoffocgrou1.html
+http://shop.store.yahoo.com/foosdirect-store/neon-signs.html
+http://shop.store.yahoo.com/hopup1/info.html
+http://shop.store.yahoo.com/longskate/info.html
+http://shop.store.yahoo.com/museumjt/
+http://shop.store.yahoo.com/sharperimage-best/si448.html
+http://shopfort1.com/wi/land-o'lakes.cfm
+http://shopper.cnet.com/WizCom_Quicktionary_II_Chinese_Traditional/4014-3141_9-5609401.html?noid=4014-3141_9-5609401&orderby=90&sort=
+http://shopper.cnet.com/WizCom_Quicktionary_II_Chinese_Traditional/4014-3141_9-5609401.html?q=
+http://shopper.howstuffworks.com/products/Craft+Supplies/SF-3/BEFID-96464/NM-20/ND-20/PGNUM-7
+http://shopper.howstuffworks.com/products/KEYWORD-Aircraft+Carriers
+http://shopper.howstuffworks.com/products/KEYWORD-Aircraft+Carriers/shopping.howstuffworks.com/
+http://shopper.howstuffworks.com/products/SF-3/BEFID-31515/DNATRS-price_range_price_range_15_30/NM-20/ND-20/SB-2
+http://shopper.howstuffworks.com/products/SF-3/BEFID-31515/KEYWORD-body+armor
+http://shopper.howstuffworks.com/products/SF-3/BEFID-96392/LINKIN_ID-3070556/DNATRS-ibm
+http://shopping.hostrave.com/B0002XVQSU/24___Season_Three.html
+http://shopping.lycos.co.uk/c8196p1m0b0/sony_ericsson.html
+http://shopping.lycos.co.uk/c8204p1m0b0/samsung.html
+http://shopping.msn.com/fts/ftsresults.aspx?searchText=&fcId=5&pcId=13812&order=2
+http://shopping.msn.com/marketplace.aspx?catId=0&pmpType=1&pcId=1059&merchId=2646&invMerchModel=23687
+http://shopping.msn.com/marketplace.aspx?mpId=13635&catId=267&pmpType=0
+http://shopping.msn.com/marketplace.aspx?mpId=16769&catId=183&pmpType=0
+http://shopping.msn.com/marketplace.aspx?pmpType=1&mpId=0&pcId=1062&catId=381&page=1
+http://shopping.msn.com/marketplace.aspx?pmpType=1&pcId=1059&catId=380
+http://shopping.msn.com/marketplace.aspx?pmpType=1&pcId=15474&catId=391
+http://shopping.msn.com/marketplace.aspx?pmpType=1&pcId=2383&catId=391
+http://shopping.msn.com/softcontent/softcontent.aspx?scpId=2186&scmId=1029
+http://shopping.msn.com/softcontent/softcontent.aspx?scpId=4509&scmId=1498
+http://shopping.yahoo.com/merchrating/user_rv.html?merchant_id=1011251
+http://shopping.yahoo.com/p:Buffalo%20Bill%20and%20the%20Indians%20or%20Sitting%20Bull's%20History%20Lesson:1802838411
+http://shopping.yahoo.com/p:Coming%20to%20America:1800049701
+http://shopping.yahoo.com/p:Creepin%20on%20ah%20Come%20Up:1921155450:page=user-reviews
+http://shopping.yahoo.com/p:Dave%20Barry%20Is%20Not%20Taking%20This%20Sitting%20Down:3001603543
+http://shopping.yahoo.com/p:Giovanni%20Marradi:1927287679
+http://shopping.yahoo.com/p:Microsoft%20Project%20Standard%202002%20Software:1990860428
+http://shopping.yahoo.com/p:Miles%20Davis%2FCharlie%20Parker:1927753909:page=discography:subpage=boxsets
+http://shopping.yahoo.com/p:Sitting%20Ducks%20Game%20Boy%20Advance:1951016541
+http://shopping.yahoo.com/p:Sitting%20Ducks%20PlayStation%202:1951016570
+http://shopping.yahoo.com/p:The%20Wonder%20Stuff:1927011287
+http://shopping.yahoo.com/premium/consumerreports/silver.html?id=41233409
+http://shopping.yahoo.com/s:Pants:4157-Gender=Female,Unisex:4204-Age=Adult:browsename=Women's%20Pants:4348-Pant%20Fit=Loose%20Fit:4349-Pant%20Leg=Tapered:refspaceid=20151776
+http://shore.com/commentary/newsanal/items/2005/20050207siia.html
+http://shot.holycross.edu/manifesto/
+http://shotinthedark.info/
+http://shotsacrossthebow.com/archives/2004_12.html
+http://showboard.com/index.php?option=content&task=view&id=78
+http://showboard.com/index2.php?option=content&task=view&id=56&pop=1&page=0
+http://showcase.netins.net/web/creative/lincoln/speeches/fair.htm
+http://showdogs-l.com/Westminster2005.html
+http://shows.airamericaradio.com/alfrankenshow/
+http://shows.airamericaradio.com/direct/node/14
+http://shows.airamericaradio.com/ms/node?from=200
+http://shows.airamericaradio.com/ms/node?from=240
+http://shr.aaas.org/report/xxiii/chixoy_dam.htm
+http://shrillblog.blogspot.com/
+http://shrinkinggurl.blogspot.com/
+http://shroudedindoubt.typepad.com/bodyparts/
+http://shs.iienet.org/
+http://shubhayan.com/gandhi/chap114.html
+http://siarchives.si.edu/history/exhibits/thisday/january.htm
+http://sibbyonline.blogs.com/sibbyonline/argus_leader_bias/
+http://sickle.bwh.harvard.edu/comp_care.html
+http://sicsa.huji.ac.il/WUPJ-Wistrich-2004-items%206-9-17.htm
+http://sids-network.org/experts/bedshare.htm
+http://sids-network.org/fp/prescott.htm
+http://sify.com/education/fullstory.php?id=13643893
+http://sify.com/itihaas/fullstory.php?id=13375072
+http://sify.com/motoring/fullstory.php?id=13599458
+http://sify.com/news/fullstory.php?id=13655264
+http://sify.com/news/international/
+http://sify.com/news/politics/fullstory.php?id=13465216
+http://sify.com/peopleandplaces/fullstory.php?id=13611036
+http://sig.nfc.usda.gov/capps/cappsnotes/2003/mar/mar19.html
+http://siiap.sagyp.mecon.ar/http-hsi/english/bse/August23.htm
+http://silencefalls.blogspot.com/2005/04/bikini-girls-with-machine-guns.html
+http://silenteloquence.suryaonline.org/2005/05/12/the-handshake-and-such/
+http://silentio.blogspot.com/
+http://silflayhraka.com/archives/001283.html
+http://siliconvalley.internet.com/news/article.php/362561
+http://sillydog.org/forum/viewtopic.php?p=50085
+http://sillydog.org/forum/viewtopic.php?p=50270
+http://sillydog.org/forum/viewtopic.php?p=50286
+http://sillydog.org/forum/viewtopic.php?p=50296
+http://sillydog.org/forum/viewtopic.php?p=50321
+http://sillydog.org/forum/viewtopic.php?p=50395
+http://sillydog.org/forum/viewtopic.php?p=50490
+http://sillydog.org/forum/viewtopic.php?p=50495
+http://sillydog.org/forum/viewtopic.php?t=7562&postdays=0&postorder=asc&start=210
+http://sillydog.org/forum/viewtopic.php?t=8911
+http://sillyklutz.tblog.com/
+http://silverchips.mbhs.edu/inside.php?sid=2955
+http://silverrights.blogspot.com/
+http://silverstr.ufies.org/blog/archives/000635.html
+http://sim.law.uu.nl/SIM/CaseLaw/tribunals.nsf/0/23e97b8cba84f9bfc1256aa700474761?OpenDocument
+http://simonc.f2o.org/south/
+http://simonworld.mu.nu/archives/037779.php
+http://simple.wikipedia.org/wiki/2001
+http://simple.wikipedia.org/wiki/Communism
+http://simple.wikipedia.org/wiki/Communists
+http://simple.wikipedia.org/wiki/Talk:E_Prime
+http://simplesubjects.blogspot.com/
+http://simplyrestless.netfirms.com/
+http://simplyscripts.com/scripts/fightingmarvin.html
+http://simulistics.com/tour/elements.htm
+http://sin.uwaterloo.ca/examInformation.php
+http://sine.ni.com/csol/cds/item/vw/p/id/249/nid/124100
+http://sine.ni.com/csol/cds/item/vw/p/id/249/nid/124200
+http://sine.ni.com/csol/cds/item/vw/p/id/249/nid/124300
+http://singleparents.about.com/cs/getorganized/a/personalrecords.htm
+http://singleparents.about.com/cs/stressmanagement/a/5stagesofgrief.htm
+http://singpraises.blogspot.com/
+http://singyee-muistory.blogdrive.com/archive/cm-06_cy-2005_m-06_d-01_y-2005_o-0.html
+http://singyee-muistory.blogdrive.com/archive/cm-06_cy-2005_m-06_d-04_y-2005_o-0.html
+http://singyee-muistory.blogdrive.com/archive/cm-06_cy-2005_m-06_d-08_y-2005_o-0.html
+http://sinnfein.ie/peace/document/116
+http://siop.org/Conferences/99Con/99ConProg/FridayAM.htm
+http://siop.org/Conferences/99Con/99ConProg/SaturdayAM.htm
+http://siostudents.ucsd.edu/2003_Teaching_Award.html
+http://sipreal.com/sipreal/index-4.html
+http://siss.ucdavis.edu/student_financial_info.htm
+http://sisters.islamway.com/modules.php?name=News&file=article&sid=298
+http://sites.scran.ac.uk/films_of_scotland/Citizenship/chapter02.htm
+http://sites.state.pa.us/PA_Exec/Fish_Boat/promo/initiatives/leg/hr222_response.htm
+http://sites.stocksphere.com/cds/articles.asp?articleid=26
+http://sitesm2.org/sitesm2_search/adv_orand.html
+http://sittingduckradio.com/nuke/index.php
+http://siy.cars.com/siy/qsg/qsg.jsp?aff=cnewsday
+http://siy.cars.com/siy/qsg/qsg.jsp?aff=ithaca
+http://siy.cars.com/siy/qsg/qsg.jsp?aff=mcall
+http://siy.cars.com/siy/qsg/qsg.jsp?aff=national
+http://siy.cars.com/siy/qsg/qsg.jsp?aff=newsjour
+http://siy.cars.com/siy/qsg/qsg.jsp?aff=olympian
+http://siy.cars.com/siy/qsg/qsg.jsp?aff=pe
+http://siy.cars.com/siy/qsg/qsg.jsp?aff=usatoday
+http://sja.ucdavis.edu/avoid.htm
+http://skazat.com/justin/currents.cgi/1999/7
+http://skepdic.com/althelth.html
+http://skepdic.com/coldread.html
+http://skepdic.com/emdr.html
+http://skepdic.com/enneagolf.html
+http://skepdic.com/intelligentdesign.html
+http://skepdic.com/mindcont.html
+http://skepdic.com/myersb.html
+http://skepdic.com/news/newsletter41.html
+http://skepdic.com/sat.html
+http://skepdic.com/tt.html
+http://ski.mtbuller.com.au/lessons/instructor.html
+http://skincarerx.com/acne.html
+http://skiteam.union.rpi.edu/aboutus.html
+http://skyedreams.blogspot.com/archives/2003_02_23_skyedreams_archive.html
+http://skywatch.brainiac.com/Palmastro/project1.htm
+http://skyways.lib.ks.us/history/hands.html
+http://slacktivist.typepad.com/slacktivist/2005/05/pastor_billy_bo.html
+http://slacktivist.typepad.com/slacktivist/2005/05/private_propert.html
+http://slacktivist.typepad.com/slacktivist/2005/06/private_propert.html
+http://slacktivist.typepad.com/slacktivist/2005/06/threshholds.html
+http://slacktivist.typepad.com/slacktivist/left_behind/
+http://slam.canoe.ca/Slam040608/nhl_caltb4-sun.html
+http://slam.canoe.ca/SlamChats/gd_010130.html
+http://slashdot.org/
+http://slashdot.org/faq/metamod.shtml
+http://slashgoth.org/stories.php?story=02/07/30/3722029
+http://slate.msn.com/?id=2065551
+http://slate.msn.com/?id=2065586
+http://slate.msn.com/?id=2067592&
+http://slate.msn.com/?id=2070499
+http://slate.msn.com/?id=91839
+http://slate.msn.com/default.aspx?id=2067592
+http://slate.msn.com/default.aspx?id=27730
+http://slate.msn.com/id/1001921/
+http://slate.msn.com/id/1004707/
+http://slate.msn.com/id/1005136/
+http://slate.msn.com/id/1007292/
+http://slate.msn.com/id/101318/
+http://slate.msn.com/id/101726/
+http://slate.msn.com/id/102689/
+http://slate.msn.com/id/109707
+http://slate.msn.com/id/111905/
+http://slate.msn.com/id/2000102/entry/1003372/
+http://slate.msn.com/id/2000102/entry/1003377/
+http://slate.msn.com/id/2060840/
+http://slate.msn.com/id/2061465/
+http://slate.msn.com/id/2065586/
+http://slate.msn.com/id/2065895/
+http://slate.msn.com/id/2073997/
+http://slate.msn.com/id/2076621/
+http://slate.msn.com/id/2076621/entry/2077012/
+http://slate.msn.com/id/2076621/entry/2077036/
+http://slate.msn.com/id/2077294/
+http://slate.msn.com/id/2078584/
+http://slate.msn.com/id/2081085/
+http://slate.msn.com/id/2082829/
+http://slate.msn.com/id/2082846/
+http://slate.msn.com/id/2083704/
+http://slate.msn.com/id/2083847
+http://slate.msn.com/id/2083847/
+http://slate.msn.com/id/2083857/entry/2083881/
+http://slate.msn.com/id/2086427/
+http://slate.msn.com/id/2087654/
+http://slate.msn.com/id/2087984/
+http://slate.msn.com/id/2088948/
+http://slate.msn.com/id/2089298/
+http://slate.msn.com/id/2091218/
+http://slate.msn.com/id/2091774/
+http://slate.msn.com/id/2091949/
+http://slate.msn.com/id/2092442/
+http://slate.msn.com/id/2093620/entry/2093641/
+http://slate.msn.com/id/2093620/entry/2094001/
+http://slate.msn.com/id/2094145/
+http://slate.msn.com/id/2095158/
+http://slate.msn.com/id/2095876/entry/2096214/
+http://slate.msn.com/id/2096973
+http://slate.msn.com/id/2096973/
+http://slate.msn.com/id/2097473/
+http://slate.msn.com/id/2100900/
+http://slate.msn.com/id/2101011/
+http://slate.msn.com/id/2101678
+http://slate.msn.com/id/2101698/
+http://slate.msn.com/id/2102006/
+http://slate.msn.com/id/2102203/
+http://slate.msn.com/id/2102723/
+http://slate.msn.com/id/2103239/
+http://slate.msn.com/id/2104755/
+http://slate.msn.com/id/2105096/
+http://slate.msn.com/id/2107063/entry/2107071/
+http://slate.msn.com/id/2107890/
+http://slate.msn.com/id/2108171/
+http://slate.msn.com/id/2108509/
+http://slate.msn.com/id/2108887/
+http://slate.msn.com/id/2109167/
+http://slate.msn.com/id/2109558/
+http://slate.msn.com/id/2109908/
+http://slate.msn.com/id/2110504/
+http://slate.msn.com/id/2110601/
+http://slate.msn.com/id/2110977
+http://slate.msn.com/id/2110987/
+http://slate.msn.com/id/2111135/
+http://slate.msn.com/id/2111172/
+http://slate.msn.com/id/2111499/
+http://slate.msn.com/id/2112608/
+http://slate.msn.com/id/2112621/
+http://slate.msn.com/id/2112653/
+http://slate.msn.com/id/2112695/
+http://slate.msn.com/id/2113964/
+http://slate.msn.com/id/2114154
+http://slate.msn.com/id/2118109/
+http://slate.msn.com/id/2118394/
+http://slate.msn.com/id/2119536/
+http://slate.msn.com/id/2119998/
+http://slate.msn.com/id/2120222/
+http://slate.msn.com/id/2120229/
+http://slate.msn.com/id/2120487/
+http://slate.msn.com/id/2120553/
+http://slate.msn.com/id/2120554/
+http://slate.msn.com/id/2120574/
+http://slate.msn.com/id/2120785/
+http://slate.msn.com/id/2120855/
+http://slate.msn.com/id/2121177/
+http://slate.msn.com/id/2121367/
+http://slate.msn.com/id/2354/entry/2110427/
+http://slate.msn.com/id/27730/
+http://slate.msn.com/id/30161/
+http://slate.msn.com/id/3097/
+http://slate.msn.com/id/3330/
+http://slate.msn.com/id/76624/
+http://slate.msn.com/id/76886/
+http://slate.msn.com/id/89524/entry/89599/
+http://slate.msn.com/id/89524/entry/89639/
+http://slerp.rutgers.edu/retrieve.php?id=148-3
+http://slhs.org.uk/
+http://slic.info/archives/2005/05/03/information-for-slic-and-ifla-events-june-2005/
+http://slidingconstant.net/entry/category/deep-thoughts/
+http://sligoir.ags.myareaguide.com/detail.html?cityguide=history
+http://slisweb.lis.wisc.edu/~SLA/tour5.html
+http://sln.suny.edu/sln/public/cshome.nsf/docs/55
+http://sloanreview.mit.edu/smr/issue/1993/fall/4/
+http://slovensko.com/forum/read.php?11,16178,page=3
+http://slovensko.com/forum/read.php?2,7411,page=2
+http://slsp.arts.unsw.edu.au/home/graduates.html
+http://slumbering.lungfish.com/
+http://slumberingpierrot.blogspot.com/2003_07_01_slumberingpierrot_archive.html
+http://smallbusiness.findlaw.com/business-forms-contracts/contracts/alpha/p/1034.html
+http://smallbusiness.findlaw.com/business-forms-contracts/contracts/type/compensation/benefits.html
+http://smallbusiness.findlaw.com/business-forms-contracts/contracts/type/compensation/retirement.html
+http://smallbusiness.yahoo.com/resources/article.php?mcid=1&scid=13&aid=2311
+http://smallbusiness.yahoo.com/resources/article.php?mcid=1&scid=9&aid=2316
+http://smallbusiness.yahoo.com/resources/article.php?mcid=6&scid=35&aid=2714
+http://smallbusiness.yahoo.com/resources/article.php?mcid=7&scid=29&aid=2163
+http://smallcomets.physics.uiowa.edu/blackspot.html
+http://smalldogrescue.com/available.html
+http://smallfarms.wsu.edu/crops/christTreeAnnosusRootRot.html
+http://smartmoney.com/consumer/index.cfm?story=working-june02
+http://smartmoney.com/theproshop/?nav=dropTab
+http://smartpei.typepad.com/robert_patersons_weblog/2004/03/sex_education_a.html
+http://smartpei.typepad.com/robert_patersons_weblog/bloggers_parliament_energy/
+http://smartpei.typepad.com/robs_thoughts/culture_family/
+http://smatters.com/
+http://smh.com.au/handheld/articles/2005/06/03/1117568376791.html
+http://smh.com.au/letters/
+http://smh.com.au/news/Breaking-News/Pigs-looking-to-stay-in-NBL-finals-hunt/2005/02/10/1107890342889.html
+http://smh.com.au/news/Breaking-News/Prostate-cancer-hits-rural-men-harder/2005/02/07/1107625086985.html
+http://smh.com.au/news/Ross-Gittins/Trade-deficit-the-key-to-avoiding-debt-trap/2005/06/03/1117568376791.html
+http://smh.com.au/news/Sport/Pigs-looking-to-stay-in-NBL-finals-hunts/2005/02/10/1107890342889.html
+http://smh.com.au/news/Sport/Tszyu-stays-true/2005/06/03/1117568382292.html
+http://smh.com.au/news/Stephen-Bartholomeusz/Hedge-funds-in-trouble-as-more-sharks-join-the-pool/2005/01/28/1106850109161.html
+http://smh.com.au/news/World/Judge-rejects-parents-appeal-for-critically-ill-baby/2005/01/29/1106850159985.html
+http://smh.com.au/news/World/New-Palestinian-cabinet-approveds/2005/02/21/1108834712380.html
+http://smh.com.au/news/World/Rugby-fan-cuts-off-testicles-to-celebrate-win/2005/02/08/1107625187885.html
+http://smh.com.au/news/national/man-abducted-wife-tied-up-during-robbery/2005/06/27/1119724549363.html
+http://smh.com.au/text/articles/2005/06/03/1117568376791.html
+http://smis.iki.rssi.ru/public/eng/spisok.htm
+http://smokeyspice.blogspot.com/
+http://smokingsides.com/asfs/C/Church.html
+http://smt.blogs.com/trends_style_culture/trends_style_and_culture_in_tokyo/
+http://snaffer.typepad.com/viewpoints/2004/10/whats_tough_abo.html
+http://snap.lbl.gov/news/brn_09_26_04.htm
+http://snap.lbl.gov/news/nyt_02_21_04.htm
+http://snard.com/sg/guide/?ep=41&fmt=0
+http://snltranscripts.jt.org/03/03qgoodtimes.phtml
+http://snltranscripts.jt.org/04/04fbush.phtml
+http://snltranscripts.jt.org/04/04sgrind.phtml
+http://snltranscripts.jt.org/78/78tolympia.phtml
+http://snltranscripts.jt.org/80/80lcat.phtml
+http://snltranscripts.jt.org/86/86fupdate.phtml
+http://snltranscripts.jt.org/90/90hgame.phtml
+http://snow.grounds-mag.com/ar/grounds_maintenance_january_2/
+http://snow.utoronto.ca/access/higher/
+http://socap.blogspot.com/
+http://soccernet.espn.go.com/feature?id=269745&cc=5739
+http://soccernet.espn.go.com/feature?id=270193&cc=%25
+http://soccernet.espn.go.com/feature?id=270193&cc=5739
+http://soccernet.espn.go.com/feature?id=287331&cc=5901
+http://soccernet.espn.go.com/feature?id=293034&cc=5901
+http://soccernet.espn.go.com/feature?id=293214&cc=5739
+http://soccernet.espn.go.com/feature?id=305593&cc=%25
+http://soccernet.espn.go.com/feature?id=305593&cc=5739
+http://soccernet.espn.go.com/feature?id=305593&cc=5901
+http://soccernet.espn.go.com/feature?id=324398&cc=5901
+http://soccernet.espn.go.com/feature?id=324688&cc=5901
+http://soccernet.espn.go.com/feature?id=332535&
+http://soccernet.espn.go.com/feature?id=332535&cc=%25
+http://soccernet.espn.go.com/feature?id=332535&cc=5901
+http://soccernet.espn.go.com/feature?id=332610&cc=5739
+http://soccernet.espn.go.com/feature?id=334696&cc=5901
+http://soccernet.espn.go.com/headlinenews?id=313658&cc=5901
+http://soccernet.espn.go.com/headlinenews?id=314526&cc=5901
+http://social.chass.ncsu.edu/jouvert/v7i2/hicrev.htm
+http://socialalert.org/doc/denonciation_urgente_phil_en.htm
+http://socialjustice.nic.in/social/sdcop/benefits.htm
+http://socialunion.gc.ca/ecd/2004/english/page09.html
+http://society.guardian.co.uk/2001budget/comment/0,8146,449113,00.html
+http://society.guardian.co.uk/2001election/story/0,8150,495254,00.html
+http://society.guardian.co.uk/NHSstaff/story/0,7991,1479951,00.html
+http://society.guardian.co.uk/adoption/story/0,8150,1356153,00.html
+http://society.guardian.co.uk/alderhey/story/0,7999,431014,00.html
+http://society.guardian.co.uk/alderhey/story/0,7999,431313,00.html
+http://society.guardian.co.uk/children/story/0,1074,557455,00.html
+http://society.guardian.co.uk/childreninpoverty/comment/0,8146,522500,00.html
+http://society.guardian.co.uk/christmasappeal/story/0,11321,858267,00.html
+http://society.guardian.co.uk/climbie/story/0,10939,616539,00.html
+http://society.guardian.co.uk/climbie/story/0,10939,884088,00.html
+http://society.guardian.co.uk/commongood/story/0,8150,461446,00.html
+http://society.guardian.co.uk/conferences/story/0,9744,1428676,00.html
+http://society.guardian.co.uk/e-public/story/0,13927,1362746,00.html
+http://society.guardian.co.uk/glossary/story/0,11811,673793,00.html
+http://society.guardian.co.uk/healthandsocialcarebill/story/0,7991,443818,00.html
+http://society.guardian.co.uk/homelessness/story/0,8150,1475533,00.html
+http://society.guardian.co.uk/housing/
+http://society.guardian.co.uk/housing/0,7886,374539,00.html
+http://society.guardian.co.uk/housingdemand/comment/0,14488,1397203,00.html
+http://society.guardian.co.uk/housingdemand/story/0,14488,1502615,00.html
+http://society.guardian.co.uk/labourspublicservices/story/0,11943,1361752,00.html
+http://society.guardian.co.uk/localgovelections/story/0,8150,948040,00.html
+http://society.guardian.co.uk/longtermcare/story/0,8150,1488739,00.html
+http://society.guardian.co.uk/longtermcare/story/0,8150,1509088,00.html
+http://society.guardian.co.uk/managingnewrealities/story/0,14030,1165545,00.html
+http://society.guardian.co.uk/nhsperformance/story/0,8150,1439529,00.html
+http://society.guardian.co.uk/nhsplan/story/0,7991,1127241,00.html
+http://society.guardian.co.uk/privatefinance/story/0,8150,1502362,00.html
+http://society.guardian.co.uk/privatehealthcare/story/0,8150,825567,00.html
+http://society.guardian.co.uk/publichealth/comment/0,11098,1501707,00.html
+http://society.guardian.co.uk/publicvoices/education/story/0,11989,716086,00.html
+http://society.guardian.co.uk/publicvoices/emergencyplanning/story/0,12873,900074,00.html
+http://society.guardian.co.uk/publicvoices/nhs/story/0,11809,671713,00.html
+http://society.guardian.co.uk/publicvoices/nhs/story/0,11809,677645,00.html
+http://society.guardian.co.uk/publicvoices/story/0,11803,670357,00.html
+http://society.guardian.co.uk/publicvoices/story/0,11803,917623,00.html
+http://society.guardian.co.uk/socialexclusion/story/0,11499,1439797,00.html
+http://socs.berkeley.edu/~olney/spring05/econ1/oldfinal.html
+http://socserv2.mcmaster.ca/soc/courses/soc4s3/house/domindex.htm
+http://socserv2.mcmaster.ca/~econ/ugcm/3ll3/clarkjb/clarkjb001.html
+http://socserv2.socsci.mcmaster.ca/~econ/ugcm/3ll3/maitland/domesday
+http://soeweb.syr.edu/thefci/6-2mey.htm
+http://sofia.usgs.gov/metadata/
+http://softcom.biz/Newsletter/Summer2004/
+http://software.ericsink.com/Act_Your_Age.html
+http://software.ericsink.com/scm/scm_basics.html
+http://softwarehero.com/main_new/products.htm
+http://sohodojo.com/newsletters/rnr_newsletter_07.html
+http://soidisantra.typepad.com/soi_disantra/2005/06/voice_of_author.html
+http://sol.lp.findlaw.com/
+http://solarcooking.org/Solar-Ovens-for-Developing-Countries.htm
+http://solarcooking.org/sbcdes2.htm
+http://solfertje.student.utwente.nl/~dalroi/bedtime.php
+http://soli.inav.net/~catalyst/Humor/ahcomp.htm
+http://soli.inav.net/~circle/spdir.html
+http://solidarity.igc.org/atc/martin72.html
+http://solitaryphoenix.com/WitchbladeEpisodeGuideS2P6.html
+http://solomonspalding.com/Lib/Fulr1994.htm
+http://solomonspalding.com/SRP/SRPpap04.htm
+http://solomonsrefuge.com/it/roma1.htm
+http://solomonsrefuge.com/wp/
+http://solophile.com/Mar30_Apr05.html
+http://solstice.crest.org/repp_pubs/articles/issuebr5/issuebr5b.html
+http://solstice.crest.org/repp_pubs/articles/issuebr5/issuebr5i.html
+http://solstice.crest.org/repp_pubs/articles/issuebr9/summary.html
+http://solutions.synearth.net/2001/10/04
+http://som.binghamton.edu/programs/phd/marketing.htm
+http://somervillenews.typepad.com/the_somerville_news/kate_a_hecht/
+http://somesongs.com/song_info.php?select=3238
+http://son.nasa.gov/tass/magnetosphere/ob_tromso_e.htm
+http://songfight.net/forums/viewtopic.php?t=1158
+http://songstress7.typepad.com/beyond/
+http://songstress7.typepad.com/beyond/2005/06/everything_that.html
+http://sonk.deviantart.com/
+http://sonnets.onlinebizplanner.com/ah-speak-to-me-of-age-and-i-reply.htm
+http://soo.studentorg.wisc.edu/0405_pages/reserving_space.htm
+http://sor.cua.edu/ChMon/USASyr/BurbankSEphraim.html
+http://sos.state.mt.us/css/BSB/RA9.asp
+http://soscanada2000.com/higherstudies/gradstud.html
+http://soul.scan.swin.edu.au/~hinnesbrown/diary.php
+http://soulitude.net/fgconsume.htm
+http://soundmoney.publicradio.org/programs/2003/shows03_03.htm
+http://soundproofing.org/ChurchBook/church_sound_book.htm
+http://soundthinking.typepad.com/some_sound_thinking/wallet_pictures/
+http://soundwaves.usgs.gov/2003/07/fieldwork2.html
+http://sourcebooks.com/content/catalog/catalog.asp?isbn=157248330x
+http://sources.redhat.com/ml/binutils/2003-12/msg00260.html
+http://south-carolina-plantations.com/beaufort/village-farm.html
+http://south-carolina-plantations.com/colleton/village.html
+http://south-korea.designerz.com/south-korea-maps-and-views.php
+http://southafrica.indymedia.org/
+http://southafricanews.net/
+http://southasia.net/article159.html
+http://southasia.net/article162.html
+http://southasia.oneworld.net/article/country/360/160
+http://southburnett.com.au/cgi-bin/calendar/calendar.cgi
+http://southburnett.com.au/cgi-bin/calendar/calendart.cgi
+http://southdakotapolitics.blogs.com/
+http://southdakotapolitics.blogs.com/south_dakota_politics/
+http://southeastfarmpress.com/news/farming_grazing_study_looks/
+http://southernappeal.blogspot.com/2004_08_29_southernappeal_archive.html
+http://southernlibrarianship.icaap.org/content/v03n03/Jurkowski_o01.htm
+http://southernlibrarianship.icaap.org/content/v04n01/Mckay_s01.htm
+http://southflorida.bizjournals.com/southflorida/stories/2005/01/17/daily4.html
+http://southmed.usouthal.edu/library/auth-ins.htm
+http://southpaw.goodshow.net/
+http://southport.jpl.nasa.gov/cdrom/sirced03/cdrom/ROADMAP/EDUOVIEW/OVERVUWD.HTM
+http://southport.jpl.nasa.gov/cdrom/sirced03/cdrom/ROADMAP/REFERMAP/FAQ.HTM
+http://southsudanfriends.org/wunlit/day2.html
+http://southwest.library.arizona.edu/azsk/body.1_div.8.html
+http://southwestfarmpress.com/mag/farming_oh_baby_finally/
+http://southwestfarmpress.com/news/farming_farming_numbers/
+http://southwestfarmpress.com/news/farming_rangeland_weed_control/
+http://soybeandigest.com/news/soybean_new_root_rotresistant/
+http://space.about.com/cs/marsrovers/a/opp020104a.htm
+http://space.about.com/od/livinginspace/
+http://space.about.com/od/livinginspace/index_a.htm
+http://space.about.com/od/livinginspace/index_r.htm
+http://space.mit.edu/CSR/outreach/PressXray.html
+http://spaceandculture.org/2005_01_01_archive.php
+http://spaceflightnow.com/cassini/050115science.html
+http://spaceflightnow.com/delta/d304/status.html
+http://spaceflightnow.com/delta/d311/050106preview.html
+http://spaceflightnow.com/news/n0503/23blackhole/
+http://spaceformusic.com/theporch.html
+http://spaces.msn.com/members/ManchesterBuccaneers/
+http://spaces.msn.com/members/aboudavid/Blog/cns!1p9Ev48i1mLI3u52I0M6FTKA!388.entry
+http://spaces.msn.com/members/cyndysplace/
+http://spaces.msn.com/members/discoverabeautifulheart/
+http://spaces.msn.com/members/dullneon/
+http://spaces.msn.com/members/mike/
+http://spaces.msn.com/members/oogabooga/
+http://spaces.msn.com/members/squawkblog/
+http://spaces.msn.com/members/theredcouch/Blog/cns!1pu14osYRd1qo-cP37HiEsow!105.entry
+http://spaces.msn.com/members/tt-siesta/Blog/cns!1pA04VuxycjSc-Izqxn_onGg!178.entry
+http://spaceweather.com/
+http://spaceyideas.com/publicity/ozcomputer.html
+http://spainforvisitors.com/sections/eatinganddrinking.htm
+http://spam.gunters.org/archive/2004/12/09/spam-poetry-is-beautiful-stuff
+http://spamwars.com/archives/2005/03/
+http://spanish.about.com/
+http://spanish.about.com/od/tipsforlearningspanish/f/two_languages.htm
+http://spankyjewels.blogspot.com/
+http://spareroom.org/mailart/mis_4.html
+http://spartan.ac.brocku.ca/~lward/Mead/pubs/Mead_1907a.html
+http://spartan.ac.brocku.ca/~lward/Mead/pubs/Mead_1915a.html
+http://sparvus-krebbs.journalspace.com/
+http://spas.about.com/library/weekly/aa070702g.htm
+http://spd.aas.org/minutes/20030617_Laurel.html
+http://speakingoffaith.publicradio.org/programs/2004/10/07_faith/index.shtml
+http://speakingoffaith.publicradio.org/programs/2005/01/06_spiritofislam/ramadan.shtml
+http://speakout.com/forum_view.asp?Forum=Homeland_Security&MID=1153&mMID=1153
+http://specialchildren.about.com/od/therapies/a/specialist.htm
+http://specialevents.com/operations/events_secrets_staying_power_20050116/
+http://specials.ft.com/euro/FT30PW7IXQC.html
+http://specials.ft.com/lifeonthenet/FT3VFL9OOCC.html
+http://specials.ft.com/nicocolchester/FT30GEQCKIC.html
+http://specials.ft.com/timeoff/film/FT3YVT6KOZC.html
+http://specialtychemicalsales.com/
+http://speech-language-pathologist.ffind.servebeer.com/
+http://speedclimb.com/14ers/
+http://speeddemosarchive.com/MetroidPrime.html
+http://speeddemosarchive.com/news.html
+http://spell-bound.net/Archives/2004/12/new_years_the_a.html
+http://spellingrules.com/succeed/
+http://spiceplay.com/spices/Ravoness/
+http://spicerweb.org/pages/strike/Oshkosh_wwstrike.html
+http://spider.georgetowncollege.edu/htallant/border/bs10/grubbs.htm
+http://spider.ipac.caltech.edu/staff/roc/2mass/catalogs/final/singleband/single_band.html
+http://spinegrinder.deviantart.com/journal/
+http://spinwatch.server101.com/modules.php?name=News&file=article&sid=53
+http://spirituality.rolf-witzsche.com/sex.html
+http://spiritvillage.blogspot.com/
+http://spleenville.com/journal/archives/005486.php
+http://spleenville.com/journal/archives/cat_arcadia.php
+http://splmtoday.com/modules.php?name=News&file=article&sid=1565
+http://splmtoday.com/modules.php?name=News&file=article&sid=2269
+http://splmtoday.com/modules.php?name=News&file=print&sid=1565
+http://splmtoday.com/modules.php?name=News&file=print&sid=2736
+http://spltrak.com/pages/support_home.html
+http://spokanevalleycommunitycenter.org/letter_from_director.htm
+http://spoonertrainride.com/church_groups.htm
+http://sport.guardian.co.uk/columnists/theobserver/story/0,10541,1514937,00.html
+http://sport.guardian.co.uk/lions2005/story/0,15994,1498887,00.html
+http://sport.guardian.co.uk/lions2005/story/0,15994,1514938,00.html
+http://sport.guardian.co.uk/lions2005/story/0,15994,1514938,00.html?gusrc=rss
+http://sport.guardian.co.uk/news/story/0,10488,1112584,00.html
+http://sport.guardian.co.uk/rugbyunion/comment/0,10070,1391379,00.html
+http://sport.guardian.co.uk/rugbyunion/comment/0,10070,1514936,00.html
+http://sport.guardian.co.uk/rugbyworldcup2003/story/0,13904,1081266,00.html
+http://sport.guardian.co.uk/rugbyworldcup2003/story/0,13904,1091626,00.html
+http://sport.independent.co.uk/football/comment/
+http://sport.independent.co.uk/football/european/
+http://sport.independent.co.uk/football/liverpool/
+http://sport.independent.co.uk/football/liverpool/story.jsp?story=646730
+http://sport.independent.co.uk/general/
+http://sport.independent.co.uk/low_res/story.jsp?story=646730&host=18&dir=124
+http://sport.independent.co.uk/rugby_union/
+http://sport.scotsman.com/football_stmirren.cfm?display=season&id=1
+http://sport.scotsman.com/topics.cfm?tid=1060&id=443382005
+http://sport.scotsman.com/topics.cfm?tid=1274&id=300032005
+http://sport.scotsman.com/topics.cfm?tid=668&id=1367012004
+http://sport.telegraph.co.uk/sport/main.jhtml?view=DETAILS&grid=&xml=/sport/2004/09/15/socoe15.xml
+http://sports-cards.listings.ebay.ca/Autographs-Original_Olympics_W0QQsacatZ23798QQsocmdZListingItemList
+http://sports-law.blogspot.com/2003_12_01_sports-law_archive.html
+http://sports.espn.go.com/chat/sportsnation/story?page=FranchiseKeating2005
+http://sports.espn.go.com/espn/page2/story?page=lovinger/050111
+http://sports.espn.go.com/espn/page2/story?page=lovinger/050208
+http://sports.espn.go.com/espn/print?id=742912&type=story
+http://sports.espn.go.com/espn/sportsbusiness/news/story?id=1968869
+http://sports.espn.go.com/mlb/columns/story?columnist=neyer_rob&id=1506813
+http://sports.espn.go.com/nba/playoffs2003/story?id=1551303
+http://sports.espn.go.com/ncf/statistics
+http://sports.espn.go.com/nfl/columns/story?columnist=paolantonio_sal&id=1791416
+http://sports.espn.go.com/nfl/statistics
+http://sports.espn.go.com/nfl/statistics?stat=team&league=afc&season=2&year=2004
+http://sports.espn.go.com/nfl/statistics?stat=team&league=nfc&season=2&year=2004
+http://sports.espn.go.com/nfl/statistics?stat=team&sort=ypg&pos=def&league=nfc&year=2004&season=2
+http://sports.espn.go.com/nfl/statistics?stat=team&sort=ypg&pos=off&league=nfc&year=2004&season=2
+http://sports.espn.go.com/nhl/columns/story?id=1841487
+http://sports.espn.go.com/nhl/playoffs2004/columns/story?columnist=buccigross_john&id=1799817
+http://sports.espn.go.com/rpm/news/story?series=wc&id=2041844
+http://sports.intertext.com/
+http://sports.mainetoday.com/seadogs/stories/030209springbb.shtml
+http://sports.mainetoday.com/seadogs/stories/050324snowdogs.shtml
+http://sports.smumn.edu/baseball/2005/newsletter/bbrueda.html
+http://sports.yahoo.com/golf/pga/news?slug=ap-timdahlberg&prov=ap&type=lgns
+http://sports.yahoo.com/irl/news?slug=bm-newmanhaas051405&prov=yhoo&type=lgns
+http://sports.yahoo.com/irl/news?slug=indy500curry&prov=st&type=lgns
+http://sports.yahoo.com/mlb/news?slug=rs-spring05nlwest&prov=yhoo&type=lgns
+http://sports.yahoo.com/nascar/news?slug=bm-nascarissues021105&prov=yhoo&type=lgns
+http://sports.yahoo.com/nascar/news?slug=jb-juniorglasses060305&prov=yhoo&type=lgns
+http://sports.yahoo.com/nascar/news?slug=jb-martinretires1014&prov=yhoo&type=lgns
+http://sports.yahoo.com/nascar/news?slug=jt-robbygordon062505&prov=yhoo&type=lgns
+http://sports.yahoo.com/nba/news?slug=sk-surething&prov=yhoo&type=lgns
+http://sports.yahoo.com/nba/recap?gid=2005030104
+http://sports.yahoo.com/nba/recap?gid=2005052314
+http://sports.yahoo.com/ncaaf/news?slug=uwire-newathleticdirectorsaysbuf&prov=uwire&type=lgns
+http://sports.yahoo.com/ncaaf/news?slug=uwire-neweastcarolinastrengthcoa&prov=uwire&type=lgns
+http://sports.yahoo.com/nfl/boxscore?gid=20041206026
+http://sports.yahoo.com/nfl/news?slug=ap-patriotsdynasty&prov=ap&type=lgns
+http://sports.yahoo.com/nfl/news?slug=cnnsi-whileiwasaway&prov=cnnsi&type=lgns
+http://sports.yahoo.com/nfl/news?slug=cr-bucs042905&prov=yhoo&type=lgns
+http://sports.yahoo.com/nfl/news?slug=cr-combinenotes022705&prov=yhoo&type=lgns
+http://sports.yahoo.com/sow/news?slug=reu-confedaustralia_sports_featu&prov=reuters&type=lgns
+http://sports.yahoo.com/sow/news?slug=reu-uefa&prov=reuters&type=lgns
+http://sports.yahoo.com/ten/news?slug=ap-frenchopen-women&prov=ap&type=lgns
+http://sports.yahoo.com/top/news?slug=dw-mailbag011805&prov=yhoo&type=lgns
+http://sports.yahoo.com/top/news?slug=dw-mailbag121404&prov=yhoo&type=lgns
+http://sportsgoods.listings.ebay.com.au/Exercise-Fitness_Step-Machines_W0QQfsooZ1QQfsopZ12QQsacatZ28062QQsocmdZListingItemList
+http://sportsmedicine.about.com/cs/sport_psych/a/aa010603a.htm
+http://sportsmedicine.about.com/od/sportsnutrition/a/wtlosestrategy.htm
+http://sportsvl.com/ball/handball.htm
+http://spot.colorado.edu/~ashtonm/owpp/marriage.html
+http://spot.colorado.edu/~kaplan/econ2010/section7/section7-main.html
+http://spotlighton.tripod.com/Column_11-30-2003.htm
+http://sprg.ssl.berkeley.edu/~cyclopi/lesson1.html
+http://springfield.news-leader.com/opinions/ozarksvoices/0628-Trainswhis-121558.html
+http://springfield.news-leader.com/opinions/today/20050203-Senateopensseas.html
+http://sprott.physics.wisc.edu/pickover/noodlead.html
+http://sps.k12.mo.us/khs/german/germany/teacher/dttakeover.htm
+http://sptimes.com/2005/06/15/Hernando/County_stealthily_aba.shtml
+http://sptimes.com/2005/06/23/Opinion/The_plight_of_migrant.shtml
+http://spub.ksu.edu/article.php?a=2240
+http://spyed.deviantart.com/journal/?jid=609173
+http://spyshop2000.com/dvr_recorders.htm
+http://squat.net/archiv/cracking/text7.html
+http://squat.net/archiv/squatbook1/
+http://squelchie325.blogspot.com/
+http://src-h.slav.hokudai.ac.jp/publictn/45/matsuzato/matsuzato-e.html
+http://srfi.schemers.org/srfi-28/mail-archive/msg00018.html
+http://srforums.prosoundweb.com/index.php/m/29724/0
+http://srforums.prosoundweb.com/index.php/m/35892/0
+http://srforums.prosoundweb.com/index.php/t/3999/0
+http://srg.digitalbrain.com/srg/web/frontpage/documents/Gwyn%20News%2003-04/issue%2020.htm
+http://srirangan.net/india-defence/node/254
+http://srmwww.gov.bc.ca/risc/pubs/tebiodiv/marshbirds/biraml20-01.htm
+http://sro.theory.org/library/For_the_Love_of_Hacking/lovehack.html
+http://sromagazine.biz/mag/show_show_control/
+http://ssax.sourceforge.net/
+http://ssd.oregonstate.edu/facultyProceduresDE.aspx
+http://ssfin.missouri.edu/report.htm
+http://ssr1.uchicago.edu/PRELIMS/Strat/stmisc2.html
+http://ssrn.com/abstract=225320
+http://ssrn.com/abstract=236671
+http://ssrn.com/abstract=483483
+http://ssrn.com/abstract=511362
+http://ssrn.com/abstract=636166
+http://st.matthews.jobs.topusajobs.com/
+http://staff.ccis.edu/yliow/Courses/CISS245/
+http://staff.psy.gla.ac.uk/~steve/interactivity.html
+http://staff.science.uva.nl/~andrew/NewWiki/InterestsPage
+http://stagedoor.totallyhip.com/helpdesk/support_terms.html
+http://staging.unit1.com/
+http://stalkergame.studentcenter.org/about.php
+http://stampauctionnetwork.com/f/f4677.cfm
+http://standards.ieee.org/corpforum/cag/wgproc.html
+http://standdown.net/
+http://standingonthebox.blogspot.com/
+http://staplhorse.tripod.com/feeding.html
+http://star-techcentral.com/tech/story.asp?file=/2005/6/21/corpit/11237448&sec=corpit
+http://star.cde.ca.gov/star2004/help_comparescores.asp
+http://starbucksgossip.typepad.com/_/2004/11/starbucks_to_do.html
+http://starbulletin.com/1999/09/27/news/story1.html
+http://starbulletin.com/2003/01/20/features/story3.html
+http://starbulletin.com/2003/10/30/sports/story2.html
+http://starbulletin.com/2004/10/04/features/story1.html
+http://starbulletin.com/2005/01/23/sports/story5.html
+http://starbulletin.com/2005/03/15/news/story3.html
+http://starbulletin.com/97/04/28/sports/story2.html
+http://starchefs.com/ask_the_expert/trendspotters/html/issue_04.shtml
+http://starchefs.com/business_tools/learning_materials/html/financial_reports.shtml
+http://starchefs.com/wine/starspirits/html/del_maguey/del_maguey.shtml
+http://starfire.ne.uiuc.edu/~ne201/1995/jennings/hydro.html
+http://starform.infj.ulst.ac.uk/Billsweb/PGCert/intranets/Graham/Assignment/History5.htm
+http://starryskies.com/
+http://starryskies.com/articles/spec/hooks.html
+http://start-successful-business-online-in-48-hours.com/blog/2004/09/whats-happening-to-pagerank.html
+http://start.earthlink.net/article/bus?guid=20050623/42ba33c0_3421_1334520050623-1155592830
+http://starthealthylife.com/page266.htm
+http://startup.curtin.edu.au/study/literature.html
+http://starwars.atomfilms.com/
+http://starwarsgalaxies.station.sony.com/content.jsp?page=Accounts%20Billing%20Creating%20Account
+http://starwarsgalaxies.station.sony.com/manual_detail.jsp?chapter=7
+http://starwarsgalaxies.station.sony.com/manual_printview.jsp?chapter=7
+http://stat-www.berkeley.edu/Gmatters/gradcourses.html
+http://stat.genopole.cnrs.fr/periods/help.jsp
+http://statecore.its.txstate.edu/
+http://static.userland.com/gems/joel/uibookcomplete.htm
+http://station05.qc.ca/css/cybersite/reach-out/strategies/TEACHING.htm
+http://stations.cpb.org/radio/mip/implications.html
+http://stations.cpb.org/tv/highlights/99paper.html
+http://stats.bls.gov/oco/ocos058.htm
+http://stats.bls.gov/oco/ocos083.htm
+http://stats.bls.gov/oco/ocos175.htm
+http://status-women.utoronto.ca/Oct21_2004_event.htm
+http://status-women.utoronto.ca/Oct22event.htm
+http://status.motime.com/
+http://status.srcf.ucam.org/
+http://stc.utk.edu/htm/pdf%20files/hver/khattak.htm
+http://steelgryphon.com/blog/
+http://steelgryphon.com/blog/?p=34
+http://steelgryphon.com/blog/index.php?p=34
+http://stefanostadal.homedns.org/hillwalking.htm
+http://stemcells.nih.gov/policy/statements/120298.asp
+http://stephanieklein.blogs.com/
+http://stephenlewisfoundation.org/docs/20020721-G6B-Opening.html
+http://stephenschneider.stanford.edu/Climate/Climate_Policy/Policy.html
+http://stereophile.com/analogsourcereviews/796/
+http://stereophile.com/news/10246/
+http://stereophile.com/news/11315/
+http://steve-and-pattie.com/esperantujo/vocab.html
+http://steve-parker.org/random/2004/nov/
+http://steveb290671.blogspot.com/
+http://stevesmind.blogspot.com/
+http://stgc.myjamaica.com/can-29.htm
+http://stillhq.com/planet-aus-dotnet/
+http://stillswebsite.tripod.com/british_medical_journal.htm
+http://stingersbaseball.com/stadium/
+http://stitches.com/mag/apparel_embroidery_front_lines/
+http://stjohns.cbc.ca/morningshow/features.html
+http://stlconline.org/sermons/20050123.html
+http://stlouis.bizjournals.com/site_map/stlouis_sitemap_102.html
+http://stlouis.bizjournals.com/site_map/stlouis_sitemap_151.html
+http://stlouis.indymedia.org/
+http://stlouis.missouri.org/5yearstrategy/app_d.html
+http://stlouis.missouri.org/cin/privacy.html
+http://stlouis.missouri.org/gatewaygreening/GrowLab.htm
+http://stlouisfed.org/news/speeches/2002/04_04_02.html
+http://stlouisfed.org/publications/re/2003/c/pages/central_bank.html
+http://stockgarden.com/garden-pass.htm
+http://stocks.about.com/od/advancedtrading/
+http://stocks.about.com/od/advancedtrading/a/Stoksel060905.htm
+http://stocks.about.com/od/understandingstocks/a/stocksectors.htm
+http://stolenthunder.blogspot.com/
+http://stommel.tamu.edu/~baum/paleo/paleogloss/node5.html
+http://stone.undp.org/undpweb/ohr/ohrjbview.cfm?jaf_uid_c=1656
+http://stone.undp.org/undpweb/ohr/ohrjbview.cfm?jaf_uid_c=1745
+http://stonecamel.com/wp/archives/2005/06/09/156/sonya-the-black-widow-thomas
+http://stopdesign.com/log/2004/08/10/present-wish-list.html
+http://stopshopping.journurl.com/
+http://stopshoppingmonitor.journurl.com/
+http://stopshoppingmonitor.journurl.com/index.cfm?mode=page&month=6-14-2005
+http://stoptheaca.net/about/indy/def-complex-coming-en.html
+http://storage.itworld.com/4653/050607hddvd/
+http://storage.itworld.com/4653/050607hddvd/page_1.html
+http://storagemagazine.techtarget.com/magItem/1,291266,sid35_gci828799,00.html
+http://storagetek.shareholder.com/ReleaseDetail.cfm?ReleaseID=149512
+http://store.adobe.com/activation/main.html
+http://store.aetv.com/html/dvdlibrary.jhtml
+http://store.annabellina.com/prac1oz.html
+http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore?productLearnMore=M9893Z/A
+http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore?productLearnMore=TC292LL/A
+http://store.apple.com/Catalog/US/Images/salespolicies.html
+http://store.atozteacherstuff.com/merchant.mvc?Screen=PROD&Product_Code=TD_Glue-A-Word
+http://store.babycenter.com/parentpicks/clothing_maternity/boy_0_12_months
+http://store.babycenter.com/product/clothing/sleepwear/baby_sleepwear/5472
+http://store.babycenter.com/product/clothing/sleepwear/baby_sleepwear/5473
+http://store.babycenter.com/product/toys/by_type/arches_and_gyms/4544
+http://store.cmpu.com/itemview.cfm?itemno=RMSDX2UI
+http://store.eharlequin.com/t3_excerpt.jhtml?PRODID=10003
+http://store.goldfeverprospecting.com/gobug2byfi.html
+http://store.ic.org/products/turning-to-one-another.html
+http://store.klearscreen.com/conditions.php
+http://store.newadventures.com/newadv/wslactecweat.html
+http://store.newadventures.com/ws2310wirwea.html
+http://store.newadventures.com/wslactecweat.html
+http://store.patiohearth.com/
+http://store.payloadz.com/detail.asp?i=5898&c=13&s=28
+http://store.shopenglandonline.com/info.html
+http://store.stormsong.org/cart/product.php/4314/0/
+http://store.weather.com/policies_main?cat_id=320&link=SPD-Googlebot
+http://store.web-helper.net/r-/m-Music/b-301668/a-B0000634HG/Default.aspx
+http://stories.adoption.com/story/choices-times-three.html
+http://stories.adoption.com/story/meeting-my-family.html
+http://storiesonline.net/library/st_get.php?id=44437
+http://stormchasing.ca/_wsn/page4.html
+http://stormfront.typepad.com/journal/2004/04/night_driving.html
+http://story.news.yahoo.com/news?tmpl=index&cid=737
+http://story.news.yahoo.com/news?tmpl=story2&u=/nm/20050204/sc_nm/environment_mexico_spills_dc
+http://straightblack.com/stripfighter/Diary/Fights/Fucking_Fighting_Sexfight.html
+http://straightwords.typepad.com/straightwords_ezine/2004/12/medical_aparthe.html
+http://strategis.ic.gc.ca/epic/internet/incb-bc.nsf/en/ct01507e.html
+http://strategis.ic.gc.ca/epic/internet/inctp-ptc.nsf/en/h_mn00003e.html
+http://strategis.ic.gc.ca/epic/internet/inhfc-hpc.nsf/en/mc00010e.html
+http://strategis.ic.gc.ca/epic/internet/inimr-ri.nsf/en/gr-72993e.html
+http://strategis.ic.gc.ca/epic/internet/inimr-ri.nsf/fr/gr109272f.html
+http://strategis.ic.gc.ca/epic/internet/inippd-dppi.nsf/en/ip01137e.html
+http://strategis.ic.gc.ca/epic/internet/inmfbs-gprea.nsf/en/lu00023e.html
+http://strategis.ic.gc.ca/sc_mangb/stepstogrowth/engdoc/step8/ssg-8-1.php
+http://strategypage.com/onpoint/articles/20010516.asp
+http://streaming.polito.it/aggregator/categories/1?from=20
+http://street.safeshopper.com/faq.htm?618
+http://streetcat.bankstreet.edu/essays/howdoweknow.html
+http://streetcat.bankstreet.edu/essays/main.html
+http://streetcat.bankstreet.edu/essays/supervising.html
+http://streetcat.bnkst.edu/html/resources.html
+http://strivinglife.net/jamesrskemp/html/jms2/jms2onthesayingidlehandsarethedevilstools.htm
+http://stroke.ahajournals.org/cgi/content/full/29/8/1595
+http://stroke.ahajournals.org/cgi/content/full/29/8/1740
+http://stroke.ahajournals.org/cgi/content/full/31/12/2901
+http://strongandfree.blogspot.com/
+http://strongandright.blogspot.com/
+http://struts.apache.org/api/org/apache/struts/config/ActionConfig.html
+http://struts.apache.org/userGuide/struts-bean.html
+http://sttf.org/wires/index.php?m=199902
+http://stuaff.clemson.edu/campusrec/stepsfitfacts3.html
+http://stuartbuck.blogspot.com/2004_03_01_stuartbuck_archive.html
+http://stuarthughes.blogspot.com/
+http://student-support.cant.ac.uk/childcare/
+http://student-support.cant.ac.uk/handbook/page004.htm
+http://student.hull.ac.uk/support/hull/dropping.html
+http://student.hull.ac.uk/support/scboro/dropping.html
+http://student.some.ox.ac.uk/jcr/altprospectus.html
+http://student.valpo.edu/sbruno/psychlawstudy.html
+http://student.vwc.edu/~chronicle/10_27_00/feature2.htm
+http://studentaccounts.vassar.edu/faq.html
+http://studentactivities.nd.edu/studentleadership/advisorresources/advisorrole.shtml
+http://studentaffairs.stonybrook.edu/ucc/refer
+http://studentaid.ed.gov/PORTALSWebApp/students/english/closedschool.jsp?tab=attending
+http://studentaid.ed.gov/students/publications/completing_fafsa/2004_2005/faq.html
+http://studentaid.ed.gov/students/publications/completing_fafsa/2005_2006/faq.html
+http://studentdev.unr.edu/asc/connection/quotes.cfm
+http://studenthealth.oregonstate.edu/answerspot/message.php?message=692
+http://studenthealth.oregonstate.edu/topics/grief-loss.php
+http://studentloan.citibank.com/slcsite/citiassist/claw.asp
+http://studentloans.ednet.ns.ca/info2001/howloanaredetermined01.shtml
+http://studentloans.ednet.ns.ca/info2002/howloanaredetermined01.shtml
+http://studentloans.ednet.ns.ca/info2003/howloanaredetermined01.shtml
+http://studentpolicies.dsa.umich.edu/statementstudentrights.htm
+http://students.bath.ac.uk/su5bang/pastevents/retreat2004.shtml
+http://students.georgiasouthern.edu/counseling/services/group.htm
+http://students.law.wisc.edu/rules/appendia.htm
+http://students.ou.edu/W/Heather.E.Worley-2/0308.html
+http://students.shu.ac.uk/lc/psalter/plcoll1.html
+http://students.shu.ac.uk/lc/ssb/euinternet.html
+http://students.uis.edu/jkenn03s/blog/archive/2005_05_01_archive.html
+http://students.washington.edu/loverro/projects/AUP-NECC.htm
+http://students.washington.edu/psa/psa_constitution.htm
+http://students.washington.edu/~ukc/sea/2001SKschedule.htm
+http://students.washington.edu/~ukc/sea/UKCSea.html
+http://studentservices.humberc.on.ca/stress/response.htm
+http://studentsfororwell.org/
+http://studentweb.ncf.edu/ncsa/student%20code.htm
+http://studiegids.uva.nl/web/sgs/en/p/10_63002.html
+http://studyabroad.msu.edu/programs/senegalfranco.html
+http://studyat.nmit.ac.nz/portal/OfferID__3349316/TemplateID__1863673/TabID__3526/DesktopDefault.aspx
+http://studyat.nmit.ac.nz/portal/TabID__3526/OfferID__3349316/TemplateID__1863673/DesktopDefault.aspx
+http://stuff4bub.com/
+http://stuffeddog.com/
+http://stupidevilbastard.com/
+http://stupidevilbastard.com/index/seb/2003/12/
+http://stupidevilbastard.com/index/weblog/C34/
+http://style.cleverchimp.com/font_size/livetext.html
+http://su.netsoc.tcd.ie/modules.php?op=modload&name=XForum&file=viewthread&fid=6&tid=1043
+http://su.netsoc.tcd.ie/modules.php?op=modload&name=XForum&file=viewthread&fid=6&tid=1043&orderdate=
+http://su.netsoc.tcd.ie/modules.php?op=modload&name=XForum&file=viewthread&tid=1043
+http://su.netsoc.tcd.ie/modules.php?op=modload&name=XForum&file=viewthread&tid=571
+http://su.netsoc.tcd.ie/modules.php?op=modload&name=XForum&file=viewthread&tid=981
+http://su.netsoc.tcd.ie/print.php?sid=247
+http://su.wadham.ox.ac.uk/freshers/president.shtml
+http://su.wadham.ox.ac.uk/su/officers/index.shtml
+http://subliminalrecorder.com/
+http://submityourarticle.com/articles/easypublish.php?art_id=752
+http://subscript.bna.com/SAMPLES/ohd.nsf/0/caf893856e1b2a8a85256e6800084c3a?OpenDocument
+http://subsite.icu.ac.jp/elp/ELP_Sample_Reading.html
+http://successdoctor.com/articles/the_number_one_reason_for_a_web_presence.htm
+http://successdoctor.com/articles/written_words_help_walk_your_talk.htm
+http://successdoctor.com/legal/
+http://successfulaging.ca/tips.php
+http://successmanifesto.com/blogs/young-entrepreneur/
+http://suddenlyroutine.blogspot.com/
+http://suepelletier.typepad.com/meetingsblog/destinations/
+http://suicideandmentalhealthassociationinternational.org/femsui.html
+http://suicidegirls.com/members/Jeeper/
+http://suicidegirls.com/members/mrzarquon/
+http://suicidegirls.com/news/advice/7152/
+http://sultrix.com.au/our_policies.html
+http://sumarah.tripod.com/sh1.htm
+http://summersession.rutgers.edu/fees.jsp
+http://sun-angel.com/articles/pw/thework/chapt6.html
+http://sun.yumasun.com/artman/publish/articles/story_14734.php
+http://sunandfun.blogspot.com/2004_09_01_sunandfun_archive.html
+http://sunbridgesofia.blogspot.com/2005/03/played.html
+http://sunbridgesofia.blogspot.com/2005_01_01_sunbridgesofia_archive.html
+http://sunbridgesofia.blogspot.com/2005_02_01_sunbridgesofia_archive.html
+http://sundance.weblogsinc.com/entry/1234000410028547/
+http://sundappledwood.blogspot.com/
+http://sundappledwood.blogspot.com/2005/05/in-memory-of-abigail.html
+http://sundappledwood.blogspot.com/2005/06/well-did-you-evah.html
+http://sunday.ninemsn.com.au/sunday/
+http://sunday.ninemsn.com.au/sunday/investigative/case1.asp
+http://sunday.ninemsn.com.au/sunday/political_transcripts/article_1442.asp
+http://sunday.ninemsn.com.au/sunday/political_transcripts/article_1582.asp
+http://sunday.ninemsn.com.au/sunday/political_transcripts/article_1689.asp
+http://sundayschool.ag.org/00Top/faq.cfm
+http://sundayschool.ag.org/02Administration/a_tconf_0401_disabilities.cfm
+http://sundialservices.com/products/chimneysweep/traditional.htm
+http://sundriesshack.com/index.php?p=885
+http://sunews.syr.edu/Comm03/comm14.htm
+http://sunlitecorp.com/definitions.html
+http://sunnyvale.ca.gov/City+Council/Boards+and+Commissions/Planning/Minutes/2003-0537+SCC+Church.htm
+http://sunnyvale.ca.gov/pc2001/reports/01-0277.htm
+http://sunnyvale.ca.gov/reports/1997-07/97-335.html
+http://sunnyvale.ca.gov/voices/Alexander/denise3.html
+http://sunportal.sunmanagers.org/pipermail/summaries/2002-September/002453.html
+http://sunsite.berkeley.edu/GODORT/whiteiv.html
+http://sunsite.berkeley.edu/Goldman/Writings/Drama/doll.html
+http://suntimes.com/index/business1.html
+http://suntimes.com/output/books/sho-sunday-patchett09.html
+http://suntimes.healthology.com/skinhealth
+http://sunysb.hosts.atlas-sys.com/illiad/FAQ.html
+http://supak.squarespace.com/catskills/
+http://supct.law.cornell.edu/supct/html/03-6696.ZX.html
+http://supct.law.cornell.edu/supct/html/03-674.ZO.html
+http://supct.law.cornell.edu/supct/html/91-1721.ZD.html
+http://supct.law.cornell.edu/supct/html/92-1639.ZO.html
+http://supct.law.cornell.edu/supct/html/93-1677.ZS.html
+http://supct.law.cornell.edu/supct/html/94-23.ZO.html
+http://supct.law.cornell.edu/supct/html/historics/USSC_CR_0455_0104_ZO.html
+http://supct.law.cornell.edu/supct/pdf/03-674P.ZO
+http://superdrive.cynikal.net/
+http://superiorwatch.com/Pages/facts.html
+http://superman.ws/archive/History/SandSaga.html
+http://superstringtheory.com/cosmo/cosmo41.html
+http://superwisdom.typepad.com/superwisdom_weblog/2005/06/immanuel_kant_a.html
+http://supplychain.ittoolbox.com/nav/t.asp?t=373&p=373&h1=373
+http://support.atmail.com/upgrade.html
+http://support.indigorose.com/?_a=knowledgebase&_j=questiondetails&_i=182
+http://support.indigorose.com/?_a=knowledgebase&_j=questiondetails&_i=191
+http://support.indigorose.com/index.php?_a=knowledgebase&_j=questiondetails&_i=182
+http://support.indigorose.com/index.php?_a=knowledgebase&_j=questiondetails&_i=182&nav=
+http://support.indigorose.com/index.php?_a=knowledgebase&_j=questiondetails&_i=191
+http://support.indigorose.com/index.php?_a=knowledgebase&_j=questiondetails&_i=191&nav=
+http://support.microsoft.com%2Fservicedesks%2Fwebcasts%2Fen%2Fwc051100%2Fwct051100.asp
+http://support.microsoft.com%2Fservicedesks%2Fwebcasts%2Fen%2Fwc113000%2Fwct113000.asp
+http://support.microsoft.com/?id=327334
+http://support.microsoft.com/?kbid=162214
+http://support.microsoft.com/?kbid=810646
+http://support.microsoft.com/?scid=
+http://support.microsoft.com/default.aspx?scid=kb;EN-US;177561
+http://support.microsoft.com/default.aspx?scid=kb;en-us;161609
+http://support.microsoft.com/default.aspx?scid=kb;en-us;177321
+http://support.microsoft.com/default.aspx?scid=kb;en-us;269802
+http://support.microsoft.com/default.aspx?scid=kb;en-us;306554&sd=tech
+http://support.microsoft.com/default.aspx?scid=kb;en-us;308978&sd=tech
+http://support.microsoft.com/default.aspx?scid=kb;en-us;322692
+http://support.microsoft.com/kb/237960
+http://support.microsoft.com/kb/306902
+http://support.microsoft.com/kb/831715
+http://support.microsoft.com/kb/887797
+http://support.microsoft.com/kb/888162
+http://support.microsoft.com/kb/889654
+http://support.microsoft.com/lifecycle/
+http://support.microsoft.com/support/kb/articles/Q186/8/97.ASP
+http://support.newsstand.com/cgi-bin/rnwenduser.cfg/php/enduser/std_adp.php?p_faqid=211
+http://support.novell.com/subscriptions/subscriber_resources/highlights/2005/nprs_highlights_mar05.html
+http://support.sas.com/events/sasforuminternational/agenda.html
+http://support.sas.com/rnd/scalability/tools/arm/v9sasdoc.html
+http://support.westciv.com/article.php?story=20050615181011170
+http://supportconnectw.ca.com/public/modelmart/infodocs/afmodelmgr_faq.asp
+http://supporteconomy.meetup.com/groups/
+http://supporteconomy.meetup.com/groups/?sort=ctime&desc=1&all=1
+http://supportuw.washington.edu/
+http://supreme.lp.findlaw.com/constitution/amendment01/18.html
+http://supreme.lp.findlaw.com/supreme_court/guides/guideforcounsel/
+http://surbrook.devermore.net/smz/char/smzshiko.html
+http://surfskatesnow.blogharbor.com/
+http://surveycentral.org/survey/19617.html
+http://survivalring.org/nwss/s60p780.htm
+http://survivalskills.blogs.com/outdoor_survival_skills/meteorology/
+http://susanireland.com/interviewwork.html
+http://susanjacobson.livejournal.com/
+http://susanohanian.org/show_special_commentaries.html?id=11
+http://svnbook.red-bean.com/en/1.0/ch03s05.html
+http://svnbook.red-bean.com/en/1.0/ch04s04.html
+http://svnbook.red-bean.com/en/1.1/ch03s05.html
+http://svs.gsfc.nasa.gov/stories/aura_prelaunch_20040517/page2.html
+http://svs.vascularweb.org/_CONTRIBUTION_PAGES/Practice_Issues/Practice_Issues/Relations_with_Industry.html
+http://svs.vascularweb.org/_CONTRIBUTION_PAGES/SVS_About_Us/Policies/Professional_Conduct_CT.html
+http://swanjackarmy.2itb.com/snowdonia/ukrec.htm
+http://swapatorium.blogspot.com/2005_03_01_swapatorium_archive.html
+http://swc2.hccs.edu/gis/exercise/Ex40.htm
+http://swdesertrat.blogspot.com/2005/06/talk-about-uneven-playing-field.html
+http://sweb.uky.edu/~elclin0/bw_open.htm
+http://swedenborgchapel.org/read_sa_bt050403.html
+http://swedenborgchapel.org/read_sa_sb030309.html
+http://sweetisu.blogspot.com/
+http://swetietoc.pc.cc.cmu.edu/swe/volunteer.php
+http://swg.allakhazam.com/db/guides.html?guide=179
+http://swg.allakhazam.com/db/guides.html?guide=88
+http://swiftreport.blogs.com/news/2005/06/ethics_troubles.html
+http://swiftreport.blogs.com/news/2005/06/gay_coloring_as.html
+http://swiftvets.eriposte.com/appendixb.htm
+http://swiftvets.eriposte.com/archive_2004_0824.htm
+http://switzerland.isyours.com/e/guide/basics/carrying.html
+http://swordandspirit.com/LIBRARY/FAQS/Q46_50.php
+http://swordforum.com/swords/nihonto/shintokatana.html
+http://swos.hajas.org/sounds.htm
+http://swpat.ffii.org/analysis/epc52/index.en.html
+http://swpat.ffii.org/log/intro/index.en.html
+http://swpat.ffii.org/news/03/plen0626/index.en.html
+http://swpat.ffii.org/papers/eubsa-swpat0202/index.en.html
+http://swpat.ffii.org/papers/eubsa-swpat0202/plen0309/resu/index.en.html
+http://swpat.ffii.org/papers/eubsa-swpat0202/plen0309/resu/index.es.html
+http://swpat.ffii.org/papers/europarl0309/amends05/juri0504/trips.en.html
+http://swpat.ffii.org/papers/europarl0309/cons0401/index.en.html
+http://swpat.ffii.org/papers/europarl0309/index.en.html
+http://swpat.ffii.org/patents/effects/index.en.html
+http://swpat.ffii.org/pikta/txt/ep/1240/797/
+http://swpat.ffii.org/players/index.en.html
+http://swpat.ffii.org/stidi/epc52/index.en.html
+http://swpat.ffii.org/vreji/quotes/index.en.html
+http://swpat.ffii.org/xatra/parl034/index.en.html
+http://swvault.ign.com/?start_from=1
+http://swvault.ign.com/View.php?view=Fanfic.Detail&id=83
+http://sybilsden.com/gc/gc1.html
+http://synapses.mcg.edu/lab/smith/smith.htm
+http://synthesispartnership.com/case_04.html
+http://syracuse.date.com/dating/utah.htm
+http://syracuse.date.com/girls-single/utah.htm
+http://syroid_insights.orbdesigns.com/1999/19990906.htm
+http://sysbio.med.harvard.edu/phd/
+http://sysrick.com/
+http://taarafu.islamonline.net/English/Taarafo_Conference/2003/article19.shtml
+http://tablegamer.com/starmada/camp2pt0.htm
+http://tabletalk.typepad.com/tabletalk/2005/06/being_myself_in.html
+http://tabletennis.miningco.com/od/tournamentplayers/
+http://tabula.rutgers.edu/spectator/text/may1711/no78.html
+http://tabulas.com/community/creative_writing/
+http://tabulas.com/~_neko
+http://tabulas.com/~budzter/
+http://tabulas.com/~sorrow16/friendof.html
+http://tactile3d.com/
+http://tadl.tcnet.org/mtgroom.htm
+http://taintedglass.blogspot.com/2004_05_01_taintedglass_archive.html
+http://taipei.tzuchi.org.tw/tzquart/2002wi/qw8.htm
+http://taipei.tzuchi.org.tw/tzquart/2003sp/qp13.htm
+http://taipei.tzuchi.org.tw/tzquart/98summer/qs98-11.htm
+http://taiwansecurity.org/News/2001/IHT-121801.htm
+http://taiwansecurity.org/Reu/2004/Reuters-230204.htm
+http://taiwansecurity.org/TSR-CNL.htm
+http://takesat.com/display.php?testid=C004
+http://talentdevelop.com/acting-ya4.html
+http://talentdevelop.com/failure.html
+http://talentdevelop.com/learndisord.html
+http://talesetc.com/jfaba133xcake.htm
+http://talesmag.com/tales/road/jamaica_no_problem.shtml
+http://talk.collegeconfidential.com/showthread.php?goto=lastpost&t=74353
+http://talk.myoc.com/archive/index.php/t-7043.html
+http://talk.thewb.com/viewtopic.php?topic=424780&forum=8&24
+http://talking-caller-id.ffind.servebeer.com/
+http://talkingpointsmemo.com/
+http://talkleft.com/new_archives/001848.html
+http://talkleft.com/new_archives/003141.html
+http://talkleft.com/new_archives/003734.html
+http://talkleft.com/new_archives/004245.html
+http://talkleft.com/new_archives/004326.html
+http://talkleft.com/new_archives/004451.html
+http://talkleft.com/new_archives/004810.html
+http://talkleft.com/new_archives/004833.html
+http://talkleft.com/new_archives/006380.html
+http://talkleft.com/new_archives/006744.html
+http://talkleft.com/new_archives/007205.html
+http://talkleft.com/new_archives/007566.html
+http://talkleft.com/new_archives/007663.html
+http://talkleft.com/new_archives/007687.html
+http://talkleft.com/new_archives/008286.html
+http://talkleft.com/new_archives/008723.html
+http://talkleft.com/new_archives/008832.html
+http://talkleft.com/new_archives/008924.html
+http://talkleft.com/new_archives/009111.html
+http://talkleft.com/new_archives/009318.html
+http://talkleft.com/new_archives/009579.html
+http://talkleft.com/new_archives/009711.html
+http://talkleft.com/new_archives/009781.html
+http://talkleft.com/new_archives/009925.html
+http://talkleft.com/new_archives/010114.html
+http://talkleft.com/new_archives/010115.html
+http://talkleft.com/new_archives/010122.html
+http://talkleft.com/new_archives/010158.html
+http://talkleft.com/new_archives/010369.html
+http://talkleft.com/new_archives/010650.html
+http://talkleft.com/new_archives/010715.html
+http://talkleft.com/new_archives/011016.html
+http://talkleft.com/new_archives/011081.html
+http://talkleft.com/new_archives/011091.html
+http://talkleft.com/new_archives/011106.html
+http://talkshows.about.com/od/ratingspolls/a/daytimemmy2004.htm
+http://talldarkandmysterious.ca/category/i-read-the-news-today-oh-boy/
+http://tallskinnykiwi.typepad.com/tallskinnykiwi/2004/09/carson_and_my_s.html
+http://talon.stockton.edu/polandtour/
+http://tam.cornell.edu/~ruina/hplab/Practical_Writing_advice.html
+http://tamizhan.com/tags/life
+http://tampabay.bizjournals.com/tampabay/stories/2003/11/03/story6.html
+http://tampabay.bizjournals.com/tampabay/stories/2005/06/06/daily29.html
+http://tampatrib.com/FloridaMetro/columns/MGBFN9AXT2E.html
+http://tampatrib.com/FloridaMetro/columns/MGBNX61VT2E.html
+http://tamusystem.tamu.edu/chancellor/mcteer/speeches/2001/ms010511.html
+http://tanagrampartners.com/site/products/ssm.php
+http://tanaquil.paradygma.com/
+http://tancredo.house.gov/abouttom.asp?about=1
+http://tangentsoft.net/audio/opamp-wv.html
+http://tanzania.northjersey.com/promo/flashfinal/intro.html
+http://tanzania.usembassy.gov/wwwhpr51.html
+http://tapestry-os.org/systems/kernel/discussion/overview/kernel-primitives.lp
+http://tapol.gn.apc.org/press/files/pr050412.htm
+http://tapol.gn.apc.org/reports/r050430.htm
+http://tar.weatherson.net/archives/000979.html
+http://tar.weatherson.net/archives/002857.html
+http://tar.weatherson.net/archives/004282.html
+http://tar.weatherson.net/archives/004353.html
+http://target.com/target_group/pharmacy/healthinfo/health_news/health_news_article.jhtml?urn=urn:content:healthscout:htm:2612005:2612005_5
+http://tarheelblue.collegesports.com/
+http://tarheelblue.collegesports.com/sports/extrapoints/spec-rel/112403aab.html
+http://tarlton.law.utexas.edu/dawson/amea/aug94nws.htm
+http://tarlton.law.utexas.edu/dawson/cases/racing/bluegrass.htm
+http://tarlton.law.utexas.edu/lpop/etext/newgate5/greenacre.htm
+http://tarunsblog.blogspot.com/2004/11/ah-technology.html
+http://tash.gn.apc.org/allsystm.htm
+http://tax.co.monmouth.nj.us/index.asp?action=12
+http://tax.co.monmouth.nj.us/index.asp?action=13
+http://taxes.yahoo.com/guide/amt/amt101.html
+http://taxes.yahoo.com/tips/deduct/
+http://taxprof.typepad.com/taxprof_blog/2004/09/red_states_feed.html
+http://taxprofessor.blogspot.com/
+http://taxtime.about.com/b/a/160397.htm
+http://tblogs.bootsnall.com/billy/
+http://tblogs.bootsnall.com/boo/
+http://tblogs.bootsnall.com/egypt/archives/003265.shtml
+http://tblogs.bootsnall.com/sonshade/
+http://tbrnews.nminews.com/articles/2005/01/06/crime_log/crime.prt
+http://tc.nic.in/ar02-03/maj.htm
+http://tcds.edb.utexas.edu/
+http://tchin.org/resource_room/c_art_16.htm
+http://tcla.gseis.ucla.edu/reportcard/college/1/oakes.html
+http://tcla.gseis.ucla.edu/rights/background/salina.html
+http://tcla.gseis.ucla.edu/rights/features/3/perspectives/krug_seiden.html
+http://tcla.gseis.ucla.edu/rights/features/5/doubletree/community.html
+http://tcllib.sourceforge.net/doc/pool.html
+http://tcp.dramatools.net/archives/000056.html
+http://tcpmag.com/features/article.asp?EditorialsID=50
+http://tcpmag.com/salarysurveys/article.asp?EditorialsID=97
+http://tdworld.com/mag/power_exploring_transmission_relay/
+http://teacher.nsrl.rochester.edu/phy_labs/AppendixB/AppendixB.html
+http://teacher.scholastic.com/activities/government/tguide.htm
+http://teacher.scholastic.com/activities/wwatch/hurricanes/witnesses.htm
+http://teacher.scholastic.com/activities/wwatch/winter_storms/witnesses.htm
+http://teacher.scholastic.com/authorsandbooks/teachingplans/lucky_mar03.htm
+http://teacher.scholastic.com/lessonrepro/lessonplans/womwalker.htm
+http://teacher.scholastic.com/pearl/transcript.htm
+http://teacher.scholastic.com/products/instructor/medieval_times.htm
+http://teacher.scholastic.com/professional/bruceperry/using_technology.htm
+http://teacher.scholastic.com/professional/futureteachers/otherways.htm
+http://teacher.scholastic.com/scholasticnews/indepth/war-iraq/path/index.asp?article=european_union
+http://teacher.scholastic.com/technology/tutor/movie/production.htm
+http://teacher.scholastic.com/writewit/biograph/biography_sketch.htm
+http://teacherlink.ed.usu.edu/tlresources/units/Byrnes-celebrations/christmas.html
+http://teachers.net/archive/national_boards042002.html
+http://teachers.net/archive/national_boards042101.html
+http://teachers.net/gazette/APR01/sigmon.html
+http://teachers.net/gazette/AUG00/humor.html
+http://teachers.net/gazette/DEC00/wong.html
+http://teachers.net/gazette/FEB01/marshall.html
+http://teachers.net/gazette/JUL02/fyi2.html
+http://teachers.net/gazette/JUL02/gruber.html
+http://teachers.net/gazette/JUL02/page.html
+http://teachers.net/gazette/JUL03/editor.html
+http://teachers.net/gazette/MAR01/biase.html
+http://teachers.net/gazette/MAR02/covera.html
+http://teachers.net/gazette/MAR02/wong.html
+http://teachers.net/gazette/MAY02/gruber.html
+http://teachers.net/gazette/NOV00/wong.html
+http://teachers.net/gazette/OCT00/wong.html
+http://teachers.net/gazette/SEP00/sigmon.html
+http://teachers.net/mentors/high_school/topic5747/2.12.05.04.21.10.html
+http://teachertech.rice.edu/Participants/mborrow/Lessons/nuclear_.html
+http://teacherweb.com/KY/HartCountyHighSchool/HartCountyCheerleading/h1.stm
+http://teaching.arts.usyd.edu.au/history/hsty3080/StudentWebSites/Nixon%20Obits/source9
+http://teaching.path.cam.ac.uk/partIB_pract/NHP1/
+http://teachpol.tcnj.edu/book_reviews/1998/Lentner_H._H._3_98.htm
+http://team-math.net/faq.htm
+http://teamespn.com/TeamESPN/winning_lifestyles.html
+http://teamfu.freeshell.org/
+http://teamfu.freeshell.org/partypoker_faq.html
+http://teamfu.freeshell.org/poker_hands.html
+http://teamfu.freeshell.org/poker_terms.html
+http://teamhouse.tni.net/militaryretiree-031202.htm
+http://teamrock.blogspot.com/
+http://teapot.usask.ca/cdn-firearms/Snyder/right2carry.html
+http://tech.irt.org/articles/js124/
+http://tech.irt.org/articles/opera.htm
+http://tech.msn.com/guides/853666.armx
+http://techcenter.gmu.edu/programs/summit/cohen's_2001_remarks.html
+http://techcentralstation.com/061803A.html
+http://techdocs.postgresql.org/techdocs/portingdbiv.php
+http://techfee.washington.edu/proposals/2005-059
+http://techguide.merit.edu/furtherstudy.htm
+http://techlawadvisor.com/ip/shrinkwrap.html
+http://techmall.dis.wa.gov/services/ask_george.asp
+http://technology.monster.com/articles/cioitsal/
+http://technorati.com/tag/Environment
+http://techrepublic.com.com/
+http://techrepublic.com.com/5100-22_11-5329791.html
+http://techrepublic.com.com/5100-22_11-5544944-1-1.html
+http://techrepublic.com.com/5100-6228-5212239.html
+http://techrepublic.com.com/5100-6262-1054628-2.html
+http://techrepublic.com.com/5100-6262-5054561.html
+http://techrepublic.com.com/5100-6262_11-1054628-2.html
+http://techrepublic.com.com/5100-6270-1054430.html
+http://techrepublic.com.com/5100-6331_11-5059931-2.html
+http://techrepublic.com.com/5102-6270-1033367.html
+http://techrepublic.com.com/5208-6230-0.html?forumID=6&threadID=166642&messageID=1703719
+http://techrepublic.com.com/5208-6230-0.html?forumID=7&threadID=157302&messageID=1671405
+http://techrepublic.com.com/5208-6230-0.html?forumID=7&threadID=157302&messageID=1671442
+http://techrepublic.com.com/5208-6230-0.html?forumID=89&threadID=173443&messageID=1770652
+http://techrepublic.com.com/5208-6247-0.html?forumID=12&threadID=40065&messageID=243003
+http://techrepublic.com.com/5208-6319-0.html?forumID=14&threadID=121849&messageID=737343
+http://techstrategy.typepad.com/emerging/2005/01/great_good_spac.html
+http://techupdate.zdnet.com/
+http://ted.coe.wayne.edu/sse/units/newyr.htm
+http://teenadvice.about.com/library/weekly/aa022201a.htm
+http://teenagerstoday.com/resources/articles/turningpoints2.htm
+http://teenwriting.about.com/cs/writingpoetry/a/HeartOfPoetry.htm
+http://teenwriting.about.com/library/weekly/aa041403a.htm
+http://teenwriting.about.com/library/weekly/aa111102f.htm
+http://tefvater.org/board/%20my%20baby%20was%20born%20without%20kidneys%20and%20esophagus.html
+http://telebody.com/nk/appeal.html
+http://telebody.com/nk/disobedience.html
+http://telecom.esa.int/telecom/www/object/index.cfm?fobjectid=904
+http://telegraph.proshareclubs.co.uk/cgi-bin/proshareclubs/pagewiz.cgi?pg=/investing_tips.htm
+http://telelearning.dcccd.edu/prodsvcs/previews.htm
+http://telephonyonline.com/ar/telecom_telecom_ready_emergencies/
+http://telephonyonline.com/mag/telecom_concert_disharmony/
+http://telephonyonline.com/mag/telecom_fast_forward_5/
+http://telephonyonline.com/mag/telecom_network_seismic_proportions/
+http://telephonyonline.com/mag/telecom_putting_bull_cable/
+http://telephonyonline.com/mag/telecom_smaller_customers_maintain/
+http://telephonyonline.com/mag/telecom_valley_days/
+http://televisionwithoutpity.com/show.cgi?show=70
+http://temagami.carleton.ca/jmc/cnews/04022000/c3.htm
+http://temagami.keewaydin.org/article/view/2579/1/298/
+http://templer.modblog.com/
+http://tenant.net/pipermail/hkonline/1999-July/000169.html
+http://tendence-lifestyle.messefrankfurt.com/global/en/presse-center_news.html?guid=mf_ddsp1432_6459&language=en&show_date_detail=yes
+http://tennessean.com/features/health/archives/05/01/64373939.shtml?Element_ID=64373939
+http://tennessean.com/features/home/archives/05/01/64715364.shtml?Element_ID=64715364
+http://tennessean.com/government/archives/05/01/64903642.shtml?Element_ID=64903642
+http://tennessean.com/sports/titans/archives/04/12/63706824.shtml?Element_ID=63706824
+http://tennessean.com/sports/titans/archives/05/01/63706824.shtml?Element_ID=63706824
+http://tennessean.com/sports/ut/archives/05/01/63706923.shtml?Element_ID=63706923
+http://tenonline.org/art/8905.html
+http://tenonline.org/art/9006.html
+http://tenonline.org/art/9010.html
+http://tenonline.org/art/9603.html
+http://tenonline.org/art/9812.html
+http://tenonline.org/art/brv/9801.html
+http://tenonline.org/art/imi/0003.html
+http://tenonline.org/art/imi/9912.html
+http://tenrec.xardas.lima-city.de/gerritse.htm
+http://teo.elte.hu/fs/geogteach.html
+http://tequilamockingbird.blogspot.com/2004_07_01_tequilamockingbird_archive.html
+http://terayah.journalspace.com/
+http://teresi.us/html/writing/handwriting.html
+http://terranova.blogs.com/terra_nova/2003/10/growth_rates_of.html
+http://terranova.blogs.com/terra_nova/2004/04/journalist_earn.html
+http://terranova.blogs.com/terra_nova/2005/01/the_theory_of_f.html
+http://terranova.blogs.com/terra_nova/2005/06/contradictions_.html
+http://terranova.blogs.com/terra_nova/2005/06/i_want_to_hear_.html
+http://terranova.blogs.com/terra_nova/2005/06/playing_alone.html
+http://terrenceberres.com/2003-08.html
+http://terrenceberres.com/2003-12.html
+http://terrenceberres.com/gar-how.html
+http://terrestrialball.blogspot.com/2004_12_01_terrestrialball_archive.html
+http://tesibria.typepad.com/thistletea/theres_something_happenin_here/
+http://teslamania.delete.org/frames/lichtenbergs.html
+http://test2.cyberdash.net/?q=node/4
+http://testced.cahners1.com/ced/2003/0303/id2.htm
+http://testmy.net/topic-1305
+http://texannusa36.tripod.com/thehouseofcrocker1ch2.html
+http://texas-sea-grant.tamu.edu/pubs/Ports/Washington/PortCapitalInvestment.php
+http://texas-sea-grant.tamu.edu/pubs/Ports/Washington/TheProcessofCapitalInvestmentatUSPublicPorts.php
+http://texasgrassfedbeef.com/id80.htm
+http://texaspolitics.laits.utexas.edu/html/vce/0502.html
+http://text.broadbandreports.com/comment/555/31718
+http://text.kids.nsw.gov.au/publications/feedback2002.html
+http://textileinfo.com/en/manage/ronten/inkjet/page03.html
+http://textonly.thomasdanby.ac.uk/about/leeds.cfm
+http://textpattern.org/tips/328/style-switcher-non-plugin
+http://tftb.com/deify/
+http://thailandbirding.com/favourites.htm
+http://thailandbirding.com/glossary.htm
+http://thalamus.wustl.edu/course/eyeret.html
+http://tharpa.co.uk/background/about-buddhism.htm
+http://tharpa.co.uk/background/dealing-with-fear.htm
+http://thatsjustnotright.com/board/lofiversion/index.php/t4947.html
+http://the-contact-network.com/otheregg/rocketblog/
+http://the-goddess.org/blog/
+http://the-idea-shop.com/
+http://the-mid-west-web.com/
+http://the-op.com/view/article.php?sect=2100&a=115
+http://the-riotact.com/
+http://the-science-of-choice.blogspot.com/
+http://the-sea.com/storystore/html/html.php?id=605-88464494-17
+http://the-spark.net/cs/18002.html
+http://the.honoluluadvertiser.com/article/2005/Feb/11/sp/sp30p.html
+http://the.honoluluadvertiser.com/article/2005/Jan/24/ln/ln01p.html
+http://the.honoluluadvertiser.com/commemorative/history
+http://theacc.collegesports.com/sports/m-wrestl/spec-rel/120504aac.html
+http://theage.com.au/letters/
+http://theage.com.au/news/National/Douglas-Wood-freed-in-military-operation/2005/06/15/1118645861915.html
+http://theages.superman.ws/History/whatever.php
+http://theamericanbook.blogspot.com/
+http://theamericanmuslim.org/2005apr_comments.php?id=179_0_38_0_C
+http://theamericanrevolution.org/ipeople/gwash.asp
+http://theater2.nytimes.com/2005/06/17/theater/reviews/17wife.html
+http://theater2.nytimes.com/2005/07/01/theater/reviews/01driv.html
+http://theatomicmoose.ca/g4u/
+http://theatre.fsu.edu/academic/about/careers.htm
+http://theatreleague.net/members_bylaws.cfm
+http://theatreorgans.com/clevelan.arm/
+http://theaustralian.news.com.au/common/story_page/0,5744,12149774%255E401,00.html
+http://theband.hiof.no/articles/genetically_speaking.html
+http://thebayonet.com/stories/061804/04.htm
+http://thebedandbreakfastman.blogs.com/the_bed_and_breakfast_man/
+http://theblackkeys.com/news.php
+http://thebooksellers.blogspot.com/2003_09_01_thebooksellers_archive.html
+http://theboost.net/unlisted_phone_number/
+http://thebrycegroup.com/american_cocker_spaniel/
+http://thecheerfuloncologist.blogsome.com/
+http://thecommunityengine.com/home/archives/2005/03/ibms_intranet_a.html
+http://theconcordcoach.tripod.com/abbotdowning/id16.html
+http://theconnexion.net/wp/
+http://theconnexion.net/wp/index.php
+http://thecoracle.tripod.com/vol01/01/v101_pre.html
+http://thecouriermail.com.au/extras/federation/CMFedDDlead.htm
+http://thedailypolemic.blogs.com/rand/2005/02/postiraqi_elect.html
+http://thedailywtf.com/forums/AddPost.aspx?PostID=35947&Quote=True
+http://thedecadentwest.blogspot.com/
+http://thederanged.blogdrive.com/
+http://thediamondangle.com/blogger/general.html
+http://thedirectorintheclassroom.com/dcnewsletter.php
+http://theepicenter.com/military_surplus.html
+http://theepicenter.com/tow02077.html
+http://theepicenter.com/tow02136.html
+http://theguinnessdiet.blogspot.com/2005/06/final-day.html
+http://thehealthline.ca/details.asp?id=564
+http://theinq.com/?article=20782
+http://theintermountain.com/letter.htm
+http://thejoint.atlblogs.com/archives/003263.html
+http://thelances.org/hr3/badair.html
+http://thelawwestofealingbroadway.blogspot.com/
+http://theliteraryreview.org/u2004/chung.html
+http://theliteraryreview.org/wi97-sd.htm
+http://thelookingglass.blogspot.com/2004_05_16_thelookingglass_archive.html
+http://thelowroad.blogspot.com/2004_09_01_thelowroad_archive.html
+http://themis.la.asu.edu/zoom-20020628a.html
+http://thenonbillablehour.typepad.com/nonbillable_hour/
+http://thenonbillablehour.typepad.com/nonbillable_hour/2005/01/
+http://thenonbillablehour.typepad.com/nonbillable_hour/practice_of_law/
+http://thenorwichgroup.blogs.com/
+http://theologica.blogspot.com/2005/06/modesty-hooters-girls-and-church.html
+http://theologytoday.ptsem.edu/oct1978/v35-3-criticscorner2.htm
+http://theorem.ca/~mvcorks/salvador.html
+http://theorem.ca/~yaacov/lyrics.php?key=song_title&ID=16
+http://theorem.ca/~yaacov/lyrics.php?key=song_title&ID=30
+http://theory.cs.uvic.ca/~cos/amof/e_combI.htm
+http://theory.isthereason.com/
+http://theory.lcs.mit.edu/~iandc/ic68.html
+http://theory.lcs.mit.edu/~iandc/ic87.html
+http://theory.lcs.mit.edu/~iandc/ic89.html
+http://theory.lcs.mit.edu/~iandc/ic94.html
+http://theory.lcs.mit.edu/~iandc/ic95.html
+http://theory.lcs.mit.edu/~iandc/ic96.html
+http://theory.lcs.mit.edu/~jacm/jacm65.html
+http://theory.lcs.mit.edu/~jacm/jacm80.html
+http://theory.stanford.edu/~mihaela/theorylunch/index_2005_winter.html
+http://theory.whirlycott.com/~phil/antispam/rbl-bad/rbl-bad.html
+http://theosophy.org/tlodocs/hpb/IsDenunciationADuty.htm
+http://theosophy.org/tlodocs/teachers/FranzAntonMesmer.htm
+http://theothermother.typepad.com/bigwindow/2005/01/
+http://theover.tripod.com/Nano/brain1.html
+http://thepalinode.blogspot.com/
+http://thepcyoubuy.com/03252001.htm
+http://thepcyoubuy.com/4292001.htm
+http://thepeerreview.ca/view.php?aid=90
+http://thephantomwriters.com/free_content/d/b/eliminate-your-competition.shtml
+http://thepill.blogs.com/
+http://thepoint.invisibleinstitute.com/082503.html
+http://thepoliticalteen.net/2005/06/05/two-charged-in-natalee-holloway-case/
+http://thepoliticalteen.net/2005/06/11/natalee-holloway-is-dead/
+http://thepoliticalteen.net/2005/06/15/police-search-joran-van-der-sloot/
+http://thepoliticalteen.net/2005/06/17/1724/
+http://theprimeone.com/
+http://theproles.blogspot.com/2004_09_01_theproles_archive.html
+http://therabbitlived.typepad.com/the_rabbit_lived/2004/08/for_now.html
+http://therac.com/services_kid_central.htm
+http://therapists.psychologytoday.com/medicinenet/34698.html
+http://therapists.psychologytoday.com/medicinenet/6692.html
+http://therapists.psychologytoday.com/rms/33576.html
+http://thereandbackagain.blogs.com/ttcmilitary/2004/08/
+http://theremnant.com/m'chayne.html
+http://therevealer.org/
+http://therightcoast.blogspot.com/2005_06_01_therightcoast_archive.html
+http://theriverkelvin.co.uk/blog/index.php?p=316
+http://thesafehouse.org/faq.php
+http://thesaurus.reference.com/search?q=giving
+http://thesaurus.reference.com/search?q=leaving
+http://thescotsman.scotsman.com/business.cfm?id=1802004
+http://thescotsman.scotsman.com/business.cfm?id=269052005
+http://thescotsman.scotsman.com/business.cfm?id=269122005
+http://thescotsman.scotsman.com/business.cfm?id=457162005
+http://thescotsman.scotsman.com/business.cfm?id=500552004
+http://thescotsman.scotsman.com/business.cfm?id=500722004
+http://thescotsman.scotsman.com/business.cfm?id=688652005
+http://thescotsman.scotsman.com/edinburgh.cfm?id=727462005
+http://thescotsman.scotsman.com/index.cfm?id=1416592004
+http://thescotsman.scotsman.com/index.cfm?id=228672005
+http://thescotsman.scotsman.com/index.cfm?id=344162005
+http://thescotsman.scotsman.com/index.cfm?id=475582005
+http://thescotsman.scotsman.com/index.cfm?id=540962005
+http://thescotsman.scotsman.com/index.cfm?id=627502005
+http://thescotsman.scotsman.com/index.cfm?id=680402005
+http://thescotsman.scotsman.com/index.cfm?id=727462005
+http://thescotsman.scotsman.com/opinion.cfm?id=555262005
+http://thescotsman.scotsman.com/politics.cfm?id=727462005
+http://thescotsman.scotsman.com/scitech.cfm?id=680402005
+http://thescotsman.scotsman.com/scotland.cfm?id=640792005
+http://thescotsman.scotsman.com/scotland.cfm?id=727462005
+http://thescotsman.scotsman.com/sport.cfm?id=772572004
+http://thescotsman.scotsman.com/sport.cfm?id=772672004
+http://theshredder.com/russtuff/vodka51.htm
+http://thespoonsexperience.com/
+http://thesportseconomist.com/archive/2005_06_01__arch_file.htm
+http://thestar.com.my/news/list.asp?file=/2005/1/20/focus/9935097&sec=focus
+http://thestar.com.my/services/printerfriendly.asp?file=/2005/1/20/focus/9935097.asp&sec=focus
+http://thestar.com.my/services/printerfriendly.asp?file=/2005/1/27/nation/10001574.asp&sec=nation
+http://thestar.com.my/services/printerfriendly.asp?file=/2005/2/4/sports/10082484.asp&sec=sports
+http://thestarport.org/suites/Starport/Family/Amethyst/amy.html
+http://thestoppedclock.blogspot.com/2004_01_04_thestoppedclock_archive.html
+http://thestoppedclock.blogspot.com/2004_09_26_thestoppedclock_archive.html
+http://thestraights.com/aarc.html
+http://thestranger.com/1999-04-29/art.html
+http://thestranger.com/1999-07-08/cd_revue.html
+http://thestranger.com/2000-10-05/chow.html
+http://thesundevils.collegesports.com/sports/m-footbl/stats/042304aaa.html
+http://thesundevils.collegesports.com/sports/w-gym/spec-rel/122304aab.html
+http://thetalkingdrum.com/freedomfighters.html
+http://thetask.org/Frontline/Excuse.asp
+http://thetruthaboutyork.blogspot.com/
+http://thetyee.ca/Mediacheck/2005/06/13/LeftWingCNN/
+http://thetyee.ca/Views/2005/06/20/ExpelExam2/
+http://thetyee.ca/pundit/?p=250
+http://theuncommontater.blogspot.com/
+http://theunion.com/article/20050111/OPINION/101110078
+http://theunionleader.com/articles_showa.html?article=37341
+http://theunionleader.com/articles_showa.html?article=44235
+http://theunionleader.com/articles_showa.html?article=50082
+http://theunionleader.com/columns.html?body=By%20Charles%20Krauthammer
+http://theunionleader.com/yesterday.html?date=4-04-2004
+http://theunionleader.com/yesterday.html?date=5-08-2004
+http://theunionleader.com/yesterday.html?date=6-30-2004
+http://theweekly.co.uk/4801/your_name_here/index.cgi
+http://thewhir.com/features/king-switchanddata.cfm
+http://thewillamettestore.com/cgi-bin/store/service.html
+http://thingamy.typepad.com/sigs_blog/2005/06/
+http://thinkblade.typepad.com/upgradeyourmind/2004/11/the_power_of_fo_3.html
+http://thinkblade.typepad.com/upgradeyourmind/2005/03/
+http://thinkblade.typepad.com/upgradeyourmind/2005/04/
+http://thinkdrastic.net/journal/subjects/friends/
+http://thinkingaboutart.blogs.com/art/
+http://thinkingaboutart.blogs.com/art/2005/06/
+http://thinkingmeat.blogspot.com/2003_08_01_thinkingmeat_archive.html
+http://thinkingright.net/
+http://thinkingright.net/archives/2005/05/08/jims-illness/
+http://thinkprogress.org/index.php?p=1004
+http://thinkprogress.org/index.php?p=545
+http://thinkprogress.org/index.php?p=904
+http://this-space.blogspot.com/2005_06_01_this-space_archive.html
+http://thisfish.com/Archives/2003_04.html
+http://thismilkishot.blogspot.com/2002_11_10_thismilkishot_archive.html
+http://thismustbetheplace.net/talking-heads-rock-and-roll-hall-of-fame.asp
+http://thistuesday.org/node/31
+http://thomas.loc.gov/cgi-bin/bdquery/?&Db=d101&querybd=@FIELD(FLD004+@4((@1(Rep+Gray++William+H.++III))+00460))
+http://thomas.loc.gov/cgi-bin/bdquery/?&Db=d107&querybd=@FIELD(FLD003+@4((@1(Rep+Gillmor++Paul+E.))+00439))
+http://thomas.loc.gov/cgi-bin/bdquery/?&Db=d108&querybd=@FIELD(FLD004+@4((@1(Rep+Delahunt++William+D.))+01480))
+http://thomas.loc.gov/cgi-bin/bdquery/d?d096:0:./list/bss/d096SP.lst:%7CTOM:/bss/d096query.html%7C
+http://thomas.loc.gov/cgi-bin/bdquery/z?d101:SN00580:@@@D&summ2=m&
+http://thomas.loc.gov/cgi-bin/bdquery/z?d101:SN00580:@@@L&summ2=m&
+http://thomas.loc.gov/cgi-bin/bdquery/z?d102:HE00396:@@@L&summ2=m&
+http://thomas.loc.gov/cgi-bin/bdquery/z?d102:SN01722:@@@D&summ2=m&
+http://thomas.loc.gov/cgi-bin/bdquery/z?d108:HR02119:@@@L&summ2=m&
+http://thomas.loc.gov/cgi-bin/bdquery/z?d109:HC00095:@@@S
+http://thomas.loc.gov/cgi-bin/cpquery/?&&dbname=cp108&&&r_n=sr344.108&&sel=TOC_771306&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp104&r_n=hr076.104&sel=TOC_52091&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp104&r_n=hr076.104&sel=TOC_53251&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp104&r_n=hr099.104&sel=TOC_63820&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp104&r_n=sr069.104&sel=TOC_68956&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp104&r_n=sr069.104&sel=TOC_69653&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp104&r_n=sr069.104&sel=TOC_70174&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp105&r_n=hr078p1.105&sel=TOC_24189&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp105&r_n=hr083.105&sel=TOC_127289&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp105&r_n=hr558.105&sel=TOC_37466&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp105&r_n=hr558.105&sel=TOC_37943&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp105&r_n=hr588.105&sel=TOC_218100&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp105&r_n=hr588.105&sel=TOC_219519&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp105&r_n=sr298.105&sel=TOC_26454&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp106&r_n=hr099p1.106&sel=TOC_72618&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp106&r_n=hr479.106&sel=TOC_2982344&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp106&r_n=sr362.106&sel=TOC_195022&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp107&r_n=hr667.107&sel=TOC_17411&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp107&r_n=hr667.107&sel=TOC_18621&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp107&r_n=hr746.107&sel=TOC_139913&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp108&r_n=hr391.108&sel=TOC_2120728&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp108&r_n=hr662p1.108&sel=TOC_238466&
+http://thomas.loc.gov/cgi-bin/cpquery/?&db_id=cp108&r_n=sr344.108&sel=TOC_771506&
+http://thomas.loc.gov/cgi-bin/cpquery/R?cp105:FLD010:@1(hr193)
+http://thomas.loc.gov/cgi-bin/cpquery/R?cp105:FLD010:@1(hr506)
+http://thomas.loc.gov/cgi-bin/cpquery/R?cp106:FLD010:@1(hr157):
+http://thomas.loc.gov/cgi-bin/cpquery/R?cp107:FLD010:@1(hr116)
+http://thomas.loc.gov/cgi-bin/cpquery/R?cp107:FLD010:@1(hr623):
+http://thomas.loc.gov/cgi-bin/cpquery/R?cp108:FLD010:@1(hr584)
+http://thomas.loc.gov/cgi-bin/cpquery/R?cp108:FLD010:@1(hr653)
+http://thomas.loc.gov/cgi-bin/cpquery/R?cp109:FLD010:@1(hr102)
+http://thomas.loc.gov/cgi-bin/cpquery/T?&report=hr771&dbname=cp107&
+http://thomas.loc.gov/cgi-bin/cpquery/T?&report=sr079&dbname=cp108&
+http://thomas.loc.gov/cgi-bin/cpquery/z?cp104:hr613:
+http://thomas.loc.gov/cgi-bin/cpquery/z?cp104:sr317:
+http://thomas.loc.gov/cgi-bin/query/z?c103:S.1592.IS:
+http://thomas.loc.gov/cgi-bin/query/z?r102:E23JA1-599:
+http://thomas.loc.gov/home/histdox/fed_43.html
+http://thomas.loc.gov/home/histdox/fed_66.html
+http://thomer.com/mit/9.html
+http://thompsonclan6.typepad.com/thompsonclan6/
+http://thorax.bmjjournals.com/cgi/content/full/55/10/826
+http://thorax.bmjjournals.com/cgi/content/full/57/6/513
+http://thorntree.lonelyplanet.com/categories.cfm?catid=30
+http://thornybush.krugerpark.co.za/Safari_Essentials-travel/kruger-park-private-lodges-on-safari-in-africa_6.html
+http://thorpe.ou.edu/IRA/craigchrtr.html
+http://thoughts04.blogspot.com/2004/02/keeping-you-updated-26-jan04-dear.html
+http://thoughts04.blogspot.com/2004/10/different-approach-dear-friends-where.html
+http://thoughts04.blogspot.com/2004_10_01_thoughts04_archive.html
+http://thoughtsfromgod.blogdrive.com/
+http://threerivershms.com/hvvanews1-7.htm
+http://threesixty.yarinareth.net/
+http://threesixty.yarinareth.net/archives/category/general/
+http://threeyearsofhell.com/
+http://throwingthings.blogspot.com/2005_06_12_throwingthings_archive.html
+http://ths.gardenweb.com/forums/load/build/msg020055351340.html
+http://ths.gardenweb.com/forums/load/care/msg1223482723814.html
+http://ths.gardenweb.com/forums/load/hvac/msg011627059117.html
+http://ths.gardenweb.com/forums/load/kitchbath/msg02184137756.html
+http://ths.gardenweb.com/forums/load/saving/msg010241439302.html
+http://ths.gardenweb.com/forums/load/saving/msg041149016973.html
+http://ths.gardenweb.com/forums/load/step/msg041814184606.html
+http://thyroid.about.com/b/a/037299.htm
+http://thyroid.about.com/cs/hypothyroidism/a/undertreated.htm
+http://thyroid.about.com/od/drsrichkarileeshames/a/fatfuzzyfrazz.htm
+http://tibetan.review.to/art.html
+http://tidygarage.com/tek9.asp?pg=products&grp=30
+http://tie.telemed.org/articles/article.asp?path=articles&article=chfPilotStudy_cljmg_hhct04.xml
+http://tieguy.org/blog/index.cgi/2004/Mar
+http://tim.griffins.ca/writings/w_body.html
+http://tim.oreilly.com/
+http://timblair.net/weblog.php?id=P95
+http://timblair.spleenville.com/
+http://timblair.spleenville.com/archives/007027.php
+http://timblair.spleenville.com/archives/007242.php
+http://timblair.spleenville.com/archives/007656.php
+http://time.blogs.com/daily_rx/
+http://times.cybercatholics.com/
+http://timesofindia.indiatimes.com/articlelist/30359486.cms
+http://timesofindia.indiatimes.com/articleshow/1146878.cms
+http://timesofindia.indiatimes.com/articleshow/711180.cms
+http://timesofindia.indiatimes.com/articleshow/822916.cms
+http://timewitnesses.org/english/~alsmith.html
+http://timon.sir.arizona.edu/sm02/560/
+http://timss.bc.edu/timss1995i/HiLightC.html
+http://timss.bc.edu/timss1999b/mathbench_report/t99bmath_chap_6_5.html
+http://tinctoris.com/archives/2004/septembe.html
+http://tinpan.fortunecity.com/ebony/546/bumbershoot.html
+http://tipperography.typepad.com/tipperography/
+http://tisc.planet-f1.com/news/story_19860.shtml
+http://tiscali.football365.com/opinion/john_nicholson/story_138506.shtml
+http://titan.iwu.edu/~wchapman/britpoet/1126vicrelig.html
+http://titan.iwu.edu/~wchapman/sophist.html
+http://titusonenine.classicalanglican.net/
+http://titusonenine.classicalanglican.net/index.php?p=1740
+http://tjshome.com/jokepage.php
+http://tkri.tu.ac.th/archive/publication12.html
+http://tlc.epsb.ca/aauthor/teachers.htm
+http://tln.lib.mi.us/~amutch/jen/boys.htm
+http://tln.typepad.com/tln_voices/2005/04/inserting_teach.html
+http://tls.macrobyte.net/discussionThread$msgNum=53
+http://tls.utsc.utoronto.ca/TWC/writeguides/webwriting.htm
+http://tlt.its.psu.edu/dmd/teachact/teachactFAQ.html
+http://tlt.its.psu.edu/suggestions/techagogy/SelfExpress.shtml
+http://tmda.net/config-pre.html
+http://tn.essortment.com/learnplay_rbii.htm
+http://tntluoma.com/beyond30/2005/01/act_and_mac
+http://tntn.essortment.com/whoissojourn_rkss.htm
+http://tobacco.rti.org/data/New/catsearch.cfm?CategoryID=28&Category=Demographics&SubCategory=
+http://today.java.net/jag/
+http://today.java.net/jag/page5.html
+http://today.java.net/jag/page7.html
+http://today.java.net/pub/a/today/2004/07/06/3ddesktop.html
+http://today.java.net/pub/a/today/2004/07/06/3ddesktop.html?page=last&x-order=date
+http://today.java.net/pub/a/today/2005/02/15/timing.html
+http://today.java.net/pub/a/today/2005/03/01/InstallingJBoss.html
+http://today.uci.edu/news/intersection.asp?title=Vitamin+E+reduces+high+blood+pressure+in+cases+of+kidney+failure%2C+UCI+study+finds
+http://todaysseniorsnetwork.com/pharma_suits.htm
+http://tokyo.usembassy.gov/e/p/tp-20040517-17.html
+http://tokyotidbits.com/archives/000269.html
+http://tolweb.org/tree?group=Chiroteuthidae
+http://tomama.blogs.com/mubar/our_baby_girl/
+http://tomburka.com/
+http://tomburka.com/archives2/2005_01.php
+http://tomlevymd.com/archiveissue8.htm
+http://tommangan.net/
+http://tomyee3.home.comcast.net/WriteKanji.htm
+http://tonto.eia.doe.gov/oog/info/twip/twiparch/020313/twipprint.html
+http://tonto.eia.doe.gov/oog/info/twip/twiparch/021002/twipprint.html
+http://tonto.eia.doe.gov/oog/info/twip/twiparch/021211/twipprint.html
+http://tonto.eia.doe.gov/oog/info/twip/twiparch/030423/twipprint.html
+http://tonto.eia.doe.gov/oog/info/twip/twiparch/030507/twipprint.html
+http://tonto.eia.doe.gov/oog/info/twip/twiparch/031105/twipprint.html
+http://tonto.eia.doe.gov/oog/info/twip/twiparch/040512/twipprint.html
+http://tonytalkstech.com/2004/09/22/taking-oral-drugs-orally/
+http://toolittletime.com/free/f01.html
+http://tools.devshed.com/c/a/Online%20Business%20Help/Differentiate-and-Grow-Rich-The-Critical-Importance-of-a-Strong-USP-Unique-Selling-Proposition
+http://top-lyrics.elizov.com/?lyrics=Usher
+http://topchefs.chef2chef.net/recipes-2/carter/
+http://topekahomefinder.com/
+http://topicmaps.it.bond.edu.au/docs/27/3
+http://torillsin.blogspot.com/
+http://torillsin.blogspot.com/2005/05/under-pressure.html
+http://torrez.org/archives/000168.php
+http://torvald.aksis.uib.no/corpora/2003-1/0438.html
+http://toshare.servepics.com/w/en/10.htm
+http://touch-the-sky.mylog.pl/omnie.php
+http://touchngo.com/lglcntr/akstats/Statutes/Title45/Chapter04/Section214.htm
+http://touchngo.com/lglcntr/akstats/Statutes/Title45/Chapter04/Section401.htm
+http://touchngo.com/lglcntr/ctrules/judcon/CJC-07.htm
+http://touchngo.com/sp/html/sp-5293.htm
+http://touchsamadhi.com/ts/index.php/samadhi/bsm/215
+http://tougherthanblog.blogspot.com/
+http://touregypt.net/historicalessays/hatshepsut.htm
+http://tourismgrading.co.za/tourism/news/messages/41.html
+http://towergames.com/help.jsp
+http://towleroad.typepad.com/towleroad/
+http://townandcountryrcd.org/sustainable_agriculture_issue_team.asp
+http://townsendcenter.berkeley.edu/working_groups_more.shtml
+http://townsquarehawaii.blogspot.com/
+http://toxsci.oupjournals.org/cgi/content/full/59/2/193
+http://tph.statikmajik.com/band/
+http://tqe.quaker.org/2001/TQE012-EN-Trade.html
+http://tqe.quaker.org/2003/TQE086-EN-MarshallPlan.html
+http://tqe.quaker.org/old/quakerhillsept2002.htm
+http://trace.wisc.edu/bugzilla_wcag/show_bug.cgi?id=221
+http://trace.wisc.edu/bugzilla_wcag/show_bug.cgi?id=509
+http://trace.wisc.edu/docs/2003-12-1-FCC-VoIP-Forum/transcript.htm
+http://tradermike.net/2004/11/william_oneils_how_to_make_money_selling_stocks_short.html
+http://traditionalmidwife.com/teenpregnancy.html
+http://traditionalvalues.org/
+http://traditionalvalues.org/index.php
+http://trailer-bodybuilders.com/mag/trucks_trailer_outlookslight_slowdown/
+http://training.dialog.com/onlinecourses/patents/lesson4/e_full_rec.html
+http://training.engineworks.co.uk/employer.html
+http://training.freeskills.com/employer.html
+http://training.gbdirect.co.uk/courses/oracle_training/oracle_9i_dba_part_1.html
+http://training.gbdirect.co.uk/courses/php/introduction_to.html
+http://training.gbdirect.co.uk/courses/web/
+http://training.gbdirect.co.uk/courses/web/css_training_courses_uk.html
+http://training.gbdirect.co.uk/leeds_training_centre.html
+http://training.gbdirect.co.uk/terms/in-house.html
+http://training.itcilo.it/decentwork/staffconf2003-sep/introduction.htm
+http://training.itcilo.it/ils/foa/library/digestdecisions_en/indexdiges_en.html
+http://training.theinquirer.net/employer.html
+http://training.theregister.co.uk/employer.html
+http://training.worldwidelearn.com/employer.html
+http://trainingmanchester.co.uk/resource/inf_VA.htm
+http://trans.nih.gov/cehp/HBPdemo-socioecon.htm
+http://transatlanticassembly.blogspot.com/2005/01/private-and-public-morals-in-eu-third.html
+http://transient.moltenglobule.org/past/2004/02/Inclusion/
+http://transit.511.org/tripplanner/help.asp
+http://transobj.workopolis.com/servlet/Content/fasttrack/20050615/BURKE15?section=Executive
+http://transobj.workopolis.com/servlet/Content/qprinter/20050615/BURKE15
+http://transportation.engadget.com/entry/1234000810042014/
+http://transportation.northwestern.edu/programs/patterson/lecturers/02Mineta/minetaSpeech.html
+http://transporttechjournal.com/200504_newslog.html
+http://trashotron.com/agony/reviews/2004/george-faces_mist_flame.htm
+http://traumwerk.stanford.edu/~mshanks/weblog/index.php?m=200308
+http://travel.canoe.ca/SkiCanadaPrevious/november98.html
+http://travel.guardian.co.uk/activities/culture/story/0,7447,413039,00.html
+http://travel.guardian.co.uk/activities/culture/story/0,7447,423673,00.html
+http://travel.guardian.co.uk/activities/food/story/0,7447,1365899,00.html
+http://travel.guardian.co.uk/activities/wintersports/story/0,7447,1401569,00.html
+http://travel.guardian.co.uk/askatraveller/story/0,8915,685473,00.html
+http://travel.guardian.co.uk/cheapflights/story/0,8945,665627,00.html
+http://travel.guardian.co.uk/cities/story/0,7450,397410,00.html
+http://travel.guardian.co.uk/cities/story/0,7450,919715,00.html
+http://travel.guardian.co.uk/countries/story/0,7451,1025914,00.html
+http://travel.guardian.co.uk/countries/story/0,7451,1060486,00.html
+http://travel.guardian.co.uk/countries/story/0,7451,1252794,00.html
+http://travel.guardian.co.uk/countries/story/0,7451,1323104,00.html
+http://travel.guardian.co.uk/countries/story/0,7451,1406799,00.html
+http://travel.guardian.co.uk/countries/story/0,7451,1488590,00.html
+http://travel.guardian.co.uk/countries/story/0,7451,1498911,00.html
+http://travel.guardian.co.uk/ecotourism/story/0,8945,664242,00.html
+http://travel.guardian.co.uk/hotels/story/0,11327,1050369,00.html
+http://travel.guardian.co.uk/readeroffers/cities/page/0,12300,1171359,00.html
+http://travel.guardian.co.uk/restaurants/story/0,13739,1079067,00.html
+http://travel.guardian.co.uk/saturdaysection/story/0,8922,1385589,00.html
+http://travel.guardian.co.uk/shortbreaks/story/0,11335,630644,00.html
+http://travel.guardian.co.uk/solo/story/0,12391,781368,00.html
+http://travel.holylandtrust.org/modules.php?name=Content&pa=showpage&pid=8
+http://travel.independent.co.uk/americas/south/story.jsp?story=643849
+http://travel.state.gov/family/abduction/country/country_507.html
+http://travel.state.gov/family/abduction/resources/resources_544.html
+http://travel.state.gov/family/adoption/country/country_331.html
+http://travel.state.gov/law/legal/testimony/testimony_797.html
+http://travel.state.gov/law/legal/testimony/testimony_799.html
+http://travel.state.gov/passport/about/agencies/agencies_913.html
+http://travel.state.gov/passport/pptphotos/glossary.html
+http://travel.state.gov/travel/cis_pa_tw/cis/cis_1014.html
+http://travel.state.gov/travel/cis_pa_tw/tsunami/tsunami_2049.html
+http://travel.state.gov/travel/tips/brochures/brochures_1230.html
+http://travel.state.gov/travel/tips/health/health_1185.html
+http://travel.state.gov/travel/tips/safety/safety_1179.html
+http://travel.state.gov/visa/frvi/bulletin/bulletin_2007.html
+http://travel.state.gov/visa/frvi/bulletin/bulletin_2111.html
+http://travel.state.gov/visa/laws/telegrams/telegrams_1401.html
+http://travel.state.gov/visa/laws/telegrams/telegrams_1438.html
+http://travel.state.gov/visa/temp/info/info_1298.html
+http://travel.state.gov/visa/temp/types/types_1262.html
+http://travel.state.gov/visa/tempvisitors_types_students2.html
+http://travel.state.gov/visa/tempvisitors_types_students3.html
+http://travel.telegraph.co.uk/travel/main.jhtml?xml=/travel/2005/01/31/etwalk.xml
+http://travel.timesonline.co.uk/article/0,,10293-1265817,00.html
+http://travel.yahoo.com/p-hotel-191501889-b-41-nearoid-2909271-radius-35-san_francisco_hotels-i-sort-distance
+http://travel.yahoo.com/p-hotel-191501889-nearoid-2909271-radius-35-san_francisco_hotels-i-sort-distance
+http://travel.yahoo.com/p-reviews-329344-prod-hotel-action-read-ratings_and_reviews-i
+http://travel.yahoo.com/p-reviews-329344-prod-hotel-action-read-ratings_and_reviews-i?from=1
+http://travel.yahoo.com/p-reviews-332021-prod-hotel-action-read-ratings_and_reviews-i?from=-49
+http://travel.yahoo.com/p-reviews-339487-prod-hotel-action-read-ratings_and_reviews-i
+http://travel.yahoo.com/p-reviews-339487-prod-hotel-action-read-ratings_and_reviews-i-sortorder-5
+http://travel.yahoo.com/p-reviews-350964-action-read-from-11-prod-hotel-ratings_and_reviews-i
+http://travel.yahoo.com/p-reviews-375658-prod-hotel-action-read-ratings_and_reviews-i
+http://travel.yahoo.com/p-reviews-375658-prod-hotel-action-read-ratings_and_reviews-i-sortorder-1
+http://travel.yahoo.com/p-reviews-375658-prod-hotel-action-read-ratings_and_reviews-i?from=-29
+http://travel.yahoo.com/p-reviews-375658-prod-hotel-action-read-ratings_and_reviews-i?from=1
+http://travel.yahoo.com/p-reviews-472467-prod-hotel-action-read-ratings_and_reviews-i
+http://travel.yahoo.com/p-reviews-472467-prod-hotel-action-read-ratings_and_reviews-i?from=-29
+http://travel.yahoo.com/p-reviews-472467-prod-hotel-action-read-ratings_and_reviews-i?from=1
+http://travel.yahoo.com/p-travelguide-2733520-nhood-Union+Square-san_francisco_things_to_do-i
+http://travel.yahoo.com/p-travelguide-2801686-vancouver_things_to_do-i
+http://travel2.nytimes.com/fodors/top/features/travel/destinations/unitedstates/newyork/newyorkcity/fdrs_feat_111_4.html?n=Top%2FFeatures%2FTravel%2FDestinations%2FUnited+States%2FNew+York%2FNew+York+City
+http://travelevents.discovery.com/sisp/?fx=event&event_id=109792
+http://travelevents.discovery.com/sisp/?fx=event.detail&event_id=109792
+http://travelevents.discovery.com/sisp/?fx=event.office&event_id=109792
+http://travelindependent.info/
+http://travelmax.statravel.co.uk/sisp/?fx=theme&loc_id=132789&cat_id=2233
+http://travelswithlizbeth.typepad.com/travels_with_lizbeth/
+http://travelvideo.tv/news/index.php?id=C0_37_1
+http://travelwithkids.about.com/b/a/023575.htm
+http://trc.ucdavis.edu/trc/teachguide/before.html
+http://trc.virginia.edu/Publications/OP_Cook/Cook_Nobelists.htm
+http://trc.virginia.edu/Publications/Teaching_Concerns/Fall_1997/TC_Fall_1997_Change-Up.htm
+http://tremont-tearoom.com/welcome.html
+http://trevorcook.typepad.com/weblog/2005/01/here_comes_ever.html
+http://treyjackson.typepad.com/junction/2005/06/video_connelly_.html
+http://triangle.bizjournals.com/triangle/stories/2003/08/18/story3.html?page=2
+http://triangle.bizjournals.com/triangle/stories/2005/01/17/editorial2.html
+http://trinity.neooffice.org/modules.php?name=Forums&file=viewtopic&t=1346&start=15
+http://triptronix.net/ishbadiddle/archives/2005/06/07/12.50.28/
+http://trishul.sci.gu.edu.au/courses/ss12bmi/gene_transfer.html
+http://trishwilson.typepad.com/blog/2005/02/term_wife_beate.html
+http://trojanhorseshoes.blogfodder.net/archives/2004_04.html
+http://trojanhorseshoes.blogfodder.net/archives/cat_north_carolina.html
+http://tronche.com/gui/x/xlib/event-handling/protocol-errors/default-handlers.html
+http://troppoarmadillo.ubersportingpundit.com/archives/004662.html
+http://trueboy.blogspot.com/
+http://trumpeter.athabascau.ca/content/v10.3/Hawley.html
+http://trushare.com/07DEC95/DE95LEGA.htm
+http://trustees.msu.edu/dec/may03/budget.html
+http://truthlaidbear.com/
+http://truthminers.com/hoaxarticles/carjack.htm
+http://tsa.transform.to/furry/downtherabbithole.html
+http://tsa.transform.to/worlds/woc/4daytheuniversechanged.html
+http://tsmi.blogs.com/tsmiblog/2005/02/staying_current.html
+http://tsn.dk/about.php
+http://tspweb02.tsp.utexas.edu/webarchive/02-05-01/2001020501_s05_See.html
+http://tsunamihelp.blogspot.com/
+http://tsunamihelp.blogspot.com/2005/01/first-person-account-from-northeast.html
+http://ttb.eng.wayne.edu/~grimm/BME5210/005210Exam1.html
+http://ttc-2.coe.uga.edu/training_evaluation/index.php
+http://tti.tamu.edu/researcher/newsletter.asp?vol=39&issue=4&article=3
+http://tttrustee.whitleynet.org/
+http://tube.tfl.gov.uk/content/pressreleases/0109/27.asp
+http://tube.tfl.gov.uk/content/pressreleases/0210/02.asp
+http://tuck06.blogspot.com/
+http://tulanegreenwave.collegesports.com/sports/m-basebl/recaps/032005aaa.html
+http://tulanegreenwave.collegesports.com/sports/m-basebl/spec-rel/05-cws-question.html
+http://tulsahurricane.collegesports.com/multimedia/real-info.html
+http://tunagirl.blogspot.com/2004_03_01_tunagirl_archive.html
+http://tunt.blogspot.com/2004_10_01_tunt_archive.html
+http://turf.ufl.edu/residential/paspalum_management.html
+http://turing.une.edu.au/~comp131/ResSchoolTutorials/Lab1/exercise/
+http://turnbull.mcs.st-and.ac.uk/circa/gapstuff/gapfiles/Ex.20.html
+http://tursiops.org/modules.php?name=News&file=article&sid=1193
+http://tutakai.typepad.com/tutakai/2004/09/does_kerry_have.html
+http://tutorials.alsacreations.com/tutocss/
+http://tutorials.beginners.co.uk/read/id/132
+http://tutorials.findtutorials.com/read/id/135/headline/Professional+XML+Part+5+-+The+Rule-Based+Design+Pattern
+http://tv.cream.org/specialassignments/films/christmas/
+http://tvbb.zap2it.com/showflat.php?Cat=&Board=UBB13&Number=14070&page=0&view=collapsed&sb=7&o=&fpart=3
+http://tvbb.zap2it.com/showflat.php?Cat=&Board=UBB13&Number=14070&page=0&view=collapsed&sb=9&o=&fpart=3
+http://tvbb.zap2it.com/showflat.php?Cat=&Number=84934&page=0&view=collapsed&sb=5&o=
+http://tveasy.co.uk/
+http://tvgameshows.net/
+http://tvnz.co.nz/view/tv2_minisite_story_skin/465176?format=html
+http://twaintimes.net/boat/sbpage4a.htm
+http://tweetie.comstar.net/
+http://twg.sbs.com.au/home/index.php3?id=58760
+http://twhs.district205.net/html/parents___family.html
+http://twiceisnice.hispeed.com/0-6%20month%20boys%20clothes.html
+http://twiki.org/cgi-bin/view/Codev/RemoveNewTopicLinkStyleFromRenderDotPm
+http://twiki.org/cgi-bin/view/Codev/UseCasesInDocumentation
+http://twiki.org/cgi-bin/view/Plugins/CalendarPluginDev
+http://twincities.bizjournals.com/site_map/twincities_sitemap_46.html
+http://twinrose.net/dataproducts9.php
+http://twinschatter.blogspot.com/
+http://twm.co.nz/Saht_indig_way.html
+http://twm.co.nz/consciousness.html
+http://twm.co.nz/harm_consc1.htm
+http://twnafrica.org/news_detail.asp?twnID=787
+http://two-wrong.blogdrive.com/
+http://twoandtwomakesfive.blogs.com/two_and_two_makes_five/2005/06/church_and_mone.html
+http://twofeetin.typepad.com/elisa/2004/10/
+http://twopiers.co-op.org/guide/vacency.htm
+http://twovoyagers.com/metamorphosis/faq/faqi.html
+http://twtd.bluemountains.net.au/Rick/votd.htm
+http://txstatebobcats.collegesports.com/bobcat-ath-foundation/endzone-complex.html
+http://type1info.com/Your%20Stories.htm
+http://typewriter.rydia.net/trouble.htm
+http://typo3.jweiland.net/typo3_languages+M57a0db1111c.98.html
+http://u.dailybulletin.com/Stories/0,1413,212~23497~2907020,00.html
+http://u.dailynews.com/Stories/0,1413,211~30797~2887405,00.html
+http://u2log.com/archive/2005/02/u2s_larry_mullen_writes_open_letter_to_u2com_members.php
+http://uanews.opi.arizona.edu/cgi-bin/WebObjects/UANews.woa/wa/MainStoryDetails?ArticleID=3817
+http://uanews.ua.edu/anews2004/guess05/
+http://ubb.empireonline.co.uk/showflat.php?Cat=&Board=bookworms&Number=725552&page=5&view=collapsed&sb=5&o=&fpart=2
+http://ubb.empireonline.co.uk/showflat.php?Cat=&Board=bookworms&Number=725552&page=5&view=collapsed&sb=5&o=&fpart=all
+http://ubelhor.home.mindspring.com/pulsar/issue18/panicked.html
+http://ubersoft.net/features/uletters/chapter00.html
+http://ublib.buffalo.edu/libraries/projects/cases/curriculum.html
+http://ublib.buffalo.edu/libraries/projects/cases/salton.html
+http://uboat.net/ops/scapa_flow.htm
+http://ubuntu.upc.es/comuni.php?id=pax&lg=eng
+http://ubuntuforums.org/archive/index.php/t-8035.html
+http://ucdavis.placementmanual.com/resume/resume-26.html
+http://uchs.net/Rosenthal/powvil.html
+http://ucollege.wustl.edu/summer
+http://ucrturf.ucr.edu/UCRTRAC/BTTA/cumindex.htm
+http://ucsbgauchos.collegesports.com/sports/m-track/recaps/052905aaa.html
+http://ucsfhr.ucsf.edu/jobs/tep/faqs.html
+http://ucsu.colorado.edu/~obrian/01rev2.html
+http://ucsu.colorado.edu/~obrian/01rev3.html
+http://ucsu.colorado.edu/~obrian/02rev4.html
+http://ufies.org/archives/000187.html
+http://ufocasebook.com/CashLandrum2.html
+http://ug-finaid.northwestern.edu/incomingFAQ.html
+http://ug.studylink.co.uk/featured/pid-si-40-a40/
+http://uh88.ifa.hawaii.edu/LinuxTCS/UH88display.html
+http://uhathletics.hawaii.edu/pr.html?prid=13570&p=18
+http://uhavax.hartford.edu/bugl/legal.htm
+http://uhaweb.hartford.edu/highberg/blog/
+http://uhcougars.collegesports.com/tickets/hou-tickets-m-footbl.html
+http://uicflames.collegesports.com/facilities/les.html
+http://uigarden.net/english/methods.php/2005/06/05/ten_ways_to_kill_design
+http://ujs.ucsd.edu/
+http://uk.alphacourse.org/runningacourse/news/2002/03/successfulbusinessman.htm
+http://uk.alphacourse.org/runningacourse/tours/world/default.htm
+http://uk.biz.yahoo.com/050121/290/farxd.html
+http://uk.biz.yahoo.com/050209/35/fc3pk.html
+http://uk.biz.yahoo.com/050602/66/fk97h.html
+http://uk.biz.yahoo.com/050603/214/fkdqs.html
+http://uk.biz.yahoo.com/050613/323/fl14g.html
+http://uk.biz.yahoo.com/050613/323/fl1mm.html
+http://uk.biz.yahoo.com/050613/323/fl1yk.html
+http://uk.biz.yahoo.com/050617/66/flexs.html
+http://uk.biz.yahoo.com/050622/323/fls3c.html
+http://uk.biz.yahoo.com/050623/17/flt6b.html
+http://uk.biz.yahoo.com/050624/323/flyk9.html
+http://uk.biz.yahoo.com/glossary_mort4.html
+http://uk.biz.yahoo.com/moneyweekly/expertopinion.html
+http://uk.bizrate.com/buy/products__att1162--2438-,cat_id--95.html
+http://uk.bizrate.com/features/merchant_reviews/write_review__mid--82750.html
+http://uk.dir.yahoo.com/Business_and_Economy/Business_to_Business/Education/By_Subject/Science/Teaching_and_Learning_Aids/Lab_Equipment_and_Supplies/
+http://uk.dir.yahoo.com/Business_and_Economy/Business_to_Business/Education/Employment/
+http://uk.dir.yahoo.com/Business_and_Economy/Business_to_Business/Office_Supplies_and_Equipment/
+http://uk.dir.yahoo.com/Business_and_Economy/Shopping_and_Services/Gifts_and_Occasions/
+http://uk.dir.yahoo.com/Education/Early_Childhood_Education/
+http://uk.dir.yahoo.com/Education/Higher_Education/College_and_University_Planning/
+http://uk.dir.yahoo.com/Regional/Countries/United_Kingdom/Business_and_Economy/Business_to_Business/Education/Employment/
+http://uk.dir.yahoo.com/Science/Energy/Conservation_and_Efficiency/
+http://uk.dir.yahoo.com/Society_and_Culture/Environment_and_Nature/Environmental_History/
+http://uk.dir.yahoo.com/regional/countries/united_kingdom/business_and_economy/employment_and_work/careers_and_jobs/jobs/
+http://uk.dk.com/
+http://uk.encarta.msn.com/encyclopedia_761573010/United_States_of_America.html
+http://uk.gay.com/boards/read.php?f=7&i=2115&t=2115
+http://uk.geocities.com/banshee1970/interests.html
+http://uk.geocities.com/gking.stpauls_egham_hythe@btinternet.com/inside.html
+http://uk.geocities.com/johnandrewscott@btopenworld.com/
+http://uk.geocities.com/jonpartin/2corinthians8-13.html
+http://uk.geocities.com/stephenbirkett/04.html
+http://uk.geocities.com/stmarys_moseley@btopenworld.com/dimurag.htm
+http://uk.holidaysguide.yahoo.com/g-europe-czech_republic-sport_activity.html
+http://uk.hotels.com/hotel/hotels-in-spain/tenerife-hotels/europe-villa-cortes.htm
+http://uk.insight.com/apps/productpresentation/index.php?product_id=TOAA0287K
+http://uk.insight.com/apps/productpresentation/index.php?product_id=TOAA0287M
+http://uk.news.yahoo.com/050608/17/fkn3x.html
+http://uk.news.yahoo.com/050611/344/fkwfg.html
+http://uk.news.yahoo.com/050615/325/fl74q.html
+http://uk.news.yahoo.com/050615/325/fl7fa.html
+http://uk.news.yahoo.com/050620/325/fljyf.html
+http://uk.newsbot.msn.com/s/default.aspx?id=10
+http://uk.oneworld.net/guides/childlabour?PrintableVersion=enabled
+http://uk.rleague.com/cc/news/
+http://uk.sports.yahoo.com/050110/3/8ezb.html
+http://uk.sports.yahoo.com/050501/4/ani3.html
+http://uk.sports.yahoo.com/050616/3/bl9h.html
+http://uk.sports.yahoo.com/050620/40/boao.html
+http://uk.towerrecords.com/product.aspx?pfid=1015489&dm=t&recfrom=BBC+Sessions+1964-1977-2319158
+http://uk.tv.yahoo.com/050526/344/fjtg9.html
+http://uk.videogames.games.yahoo.com/ds/reviews/mr--driller--drill-spirits-b9778d.html
+http://uk.videogames.games.yahoo.com/pc/reviews/ground-control-2--operation-exodus-6e7f53.html
+http://uk.virginmoney.com/travel-insurance/pages/faqs.html
+http://ukcdr.org/issues/cd/bad/
+http://ukweatherworld.co.uk/forum/forums/thread-view.asp?tid=21652&posts=356
+http://ultibase.rmit.edu.au/Articles/dec98/gajad1.htm
+http://ultibase.rmit.edu.au/Articles/nov03/creese2.htm
+http://ultibase.rmit.edu.au/Articles/oct98/ulvund1.htm
+http://ultimateavmag.com/features/1004way/index4.html
+http://ultimateavmag.com/news/11337/
+http://um-jmh.org/body.cfm?id=8371
+http://umami.typepad.com/umami_2/2004/10/
+http://umanitoba.ca/admin/governance/policies/section_1400/1405.shtml
+http://umanitoba.fitdv.com/new/articles/article.html?artid=361
+http://umanitoba.fitdv.com/new/articles/article.html?artid=47
+http://umanitoba.fitdv.com/new/articles/article.html?artid=47&print_art=1
+http://umassathletics.collegesports.com/sports/m-footbl/spec-rel/050405aad.html
+http://unadorned.org/dandruff/
+http://unadorned.org/dandruff/archives/2002/01/
+http://unadorned.org/dandruff/archives/2002/07/
+http://unadorned.org/dandruff/archives/2003/04/
+http://uncpress.unc.edu/chapters/burk_never.html
+http://uncpress.unc.edu/chapters/cox_proper.html
+http://uncpress.unc.edu/chapters/dougherty_more.html
+http://uncpress.unc.edu/chapters/fussell_blue.html
+http://uncpress.unc.edu/chapters/mobley_way.html
+http://uncpress.unc.edu/stet/
+http://und.collegesports.com/sports/w-golf/spec-rel/050305aaa.html
+http://undeadart.org/
+http://underneaththeirrobes.blogs.com/main/questions_presented_a3g_interviews_federal_judicial_celebrities/
+http://undying.ea.com/official/lordoftherings/thebattleformiddleearth/us/battleground.jsp?src=060305
+http://unescodelhi.nic.in/natural/basic-engineering.htm
+http://unfutz.blogspot.com/2004_03_07_unfutz_archive.html
+http://unfutz.blogspot.com/2004_03_28_unfutz_archive.html
+http://union-bulletin.com/main.asp?SectionID=17&SubSectionID=30&ArticleID=24952
+http://union-bulletin.com/main.asp?SectionID=17&SubSectionID=30&ArticleID=25103
+http://unionplus.educationplanner.com/education_planner/c_and_p_article.asp?articleName=Pressure_Points&sponsor=2866&PageType=Selecting-Counselors
+http://unit.aist.go.jp/crm/basic/e_3.html
+http://united-nations-building.visit-new-york-city.com/
+http://unitedworkers.org/
+http://unitymarketing.ecnext.com/coms2/gi_0270-221/Gifting-Report-The-Who-What.html
+http://universe.nasa.gov/technology/probes.html
+http://university.smartmoney.com/glossary/index.cfm?letter=D
+http://universitycenter.cua.edu/students/neworg.cfm
+http://unix.cms.gre.ac.uk/web/php.html
+http://unixdocs.stanford.edu/usingX.html
+http://unmp.forumone.com/eng_html_11.html
+http://unpac.ca/economy/globglossary.html
+http://unpac.ca/economy/historyecon.html
+http://unr.edu/homepage/crowther/ejse/crowther999.html
+http://uofitelecom.cso.uiuc.edu/illicall/guidevoi.htm
+http://uoflsports.collegesports.com/sports/m-xc/spec-rel/111104aab.html
+http://update.unu.edu/archive/issue31_3.htm
+http://update.unu.edu/issue35_7.htm
+http://uplink.space.com/printthread.php?Cat=&Board=freespace&main=141973&type=thread
+http://uplink.space.com/printthread.php?Cat=&Board=sciastro&main=68839&type=thread
+http://uplink.space.com/showflat.php?Board=businesstech&Number=132694
+http://uplink.space.com/showflat.php?Cat=&Board=freespace&Number=141973&page=1&view=collapsed&sb=5&o=0&fpart=
+http://upn54.com/shows/
+http://upsaid.com/sarsparilla/
+http://urbanarmy.blogspot.com/
+http://urbanideas.com/columns/penney.htm
+http://urbanlegends.about.com/
+http://urbanlegends.about.com/library/weekly/aa081199.htm
+http://urbanlegends.about.com/library/weekly/aa082497.htm
+http://urbanmainframe.com/teleport
+http://uregina.ca/~starkc/pubs.html
+http://urj.org/Articles/index.cfm?id=6665&pge_prg_id=25165&pge_id=4314
+http://urj.org/_kd/go.cfm?destination=ViewItem&Item_ID=3291
+http://url.co.nz/african_trip/stories.php?story_id=9
+http://urlgreyhot.com/personal/taxonomy/term/143
+http://urlgreyhot.com/personal/taxonomy/term/289
+http://urn1350.net/article/440
+http://ursu.uregina.ca/news/display.php?id=247
+http://us-africa.tripod.com/zambia.html
+http://us.altnews.com.au/drop/node/view/929
+http://us.altnews.com.au/drop/taxonomy/page/or/153?from=60
+http://us.deskdemon.com/pages/uk/events/formsofaddress
+http://us.history.wisc.edu/hist102/lectures/lecture08.html
+http://us.pampers.com/en_US/content/type/101/contentId/12078.do
+http://us.pampers.com/en_US/content/type/118/contentId/13738.do
+http://us.penguingroup.com/nf/Book/BookDisplay/0,,0_0451207351,00.html
+http://us.rediff.com/movies/2004/oct/15selv.htm
+http://us.tom.com/english/4438.htm
+http://us.yesasia.com/
+http://usa.manuginobili.com/Noticias/Noticias____ByManu/byManu____03_04/by_Manu____50_questions_-_Part/by_Manu____50_questions_-_Part/by_manu____50_questions_-_part.html
+http://usa.scratchrecords.com/
+http://usa.visa.com/visaextras/program_details.html
+http://usa1.ebooks.com/ebooks/book_display.asp?IID=193374
+http://usa1.ebooks.com/ebooks/book_display.asp?IID=221290
+http://usa2.ebooks.com/ebooks/book_display.asp?IID=222497
+http://usa2.ebooks.com/news/article.asp?AID=60
+http://usa2.ebooks.com/subjects/browse.asp?SID=17
+http://usability.gov/guidelines/designprocess.html
+http://usaip.info/faq.htm
+http://usaip.info/faqprint.htm
+http://usatownmeeting.com/
+http://uscis.gov/graphics/
+http://uscis.gov/graphics/aboutus/repsstudies/parolrpt97.htm
+http://uscis.gov/graphics/fieldoffices/losangeles/GCrenewalLOA.htm
+http://uscis.gov/graphics/howdoi/Health_Cert.htm
+http://uscis.gov/graphics/howdoi/fororphan.htm
+http://usclancaster.sc.edu/faculty/scarlett/acrnsmry.htm
+http://usctrojans.collegesports.com/genrel/usc-recruiting-definitions-common-questions.html
+http://use.perl.org/~jouke/journal/7414
+http://usefulinc.com/edd/blog/2003/7/8
+http://uselectionatlas.org/INFORMATION/INFORMATION/electcollege_curiosities.php
+http://uselessjunk.com/modules.php?name=News&file=article&sid=954
+http://usembassy.egnet.net/ambassador/iv101903.htm
+http://usembassy.state.gov/cambodia/wwwh0111.html
+http://usembassy.state.gov/guatemala/wwwhfte21.html
+http://usembassy.state.gov/posts/sf1/wwwhic00.html
+http://usembassy.state.gov/posts/sf1/wwwhic26.html
+http://usenetsports.com/archive/index.php/t-135675.html
+http://user.aol.com/bassinreid/products.html
+http://user.aol.com/deanpaint/create/tech2.htm
+http://user.fundy.net/fpweb/index-3.htm
+http://user.tninet.se/~ecf599g/aardasnails/java/Monkey/webpages/
+http://user.tninet.se/~jyg699a/fallout2.html
+http://user688038.wx13.registeredsite.com/speech/welteke%202002.htm
+http://userpages.aug.com/captbarb/
+http://userpages.umbc.edu/~dni1/humor/lists/obgyn.shtml
+http://users.actcom.co.il/~choo/lupg/tutorials/xlib-programming/xlib-programming.html
+http://users.adelphia.net/~lilavois/Seven/pergamum.html
+http://users.andara.com/~grose/marr1870.html
+http://users.andara.com/~grose/marr1900.html
+http://users.aol.com/eegspectrm/tova/tova.htm
+http://users.aol.com/s6sj7gt/primeval.htm
+http://users.argonet.co.uk/users/johnward/ade/flyer1.html
+http://users.auracom.com/wordsmith/spam.html
+http://users.belgacom.net/gc674645/heaven/sexinhev.htm
+http://users.belgacom.net/wagnerlibrary/prose/wagartfut.htm
+http://users.belgacom.net/wagnerlibrary/prose/wlpr0181.htm
+http://users.bigpond.net.au/convicts/page126.html
+http://users.bigpond.net.au/pknife/aboutme.htm
+http://users.ca.astound.net/gaughan/
+http://users.commspeed.net/k6xf/clock.htm
+http://users.compaqnet.be/cn127848/obev/obev069.html
+http://users.compaqnet.be/cn127848/obev/obev111.html
+http://users.compaqnet.be/cn127848/obev/obev158.html
+http://users.compaqnet.be/cn127848/obev/obev205.html
+http://users.compaqnet.be/cn127848/obev/obev229.html
+http://users.compaqnet.be/cn127848/obev/obev272.html
+http://users.compaqnet.be/cn127848/obev/obev328.html
+http://users.drew.edu/dwilkins/Poetry.htm
+http://users.erols.com/k3mt/hints/hints.htm
+http://users.erols.com/mdinolfo/bc348ps.htm
+http://users.erols.com/spba/
+http://users.ev1.net/~homeville/fictionmag/s1161.htm
+http://users.ev1.net/~homeville/fictionmag/s369.htm
+http://users.ev1.net/~homeville/isfac/s21.htm
+http://users.frii.com/mytymyk/lions/attacks3.htm
+http://users.ipa.net/~dwighth/squeak/oopsla_squeak.html
+http://users.marktwain.net/jready/joann.html
+http://users.metro2000.net/~stabbott/genx.htm
+http://users.michiana.org/greens/cong_97.htm
+http://users.netonecom.net/~manleyk/509outline.htm
+http://users.ox.ac.uk/~anthsoc/contents/newsletter_M02_W2.html
+http://users.ox.ac.uk/~climbing/articles/daurada.html
+http://users.ox.ac.uk/~croquet/oucc/documents/hs.htm
+http://users.ox.ac.uk/~dplb0070/cv.html
+http://users.ox.ac.uk/~invar/lions.html
+http://users.ox.ac.uk/~magd1368/weblog/2005_05_01_archive.html
+http://users.ox.ac.uk/~mansassc/other.html
+http://users.ox.ac.uk/~ojs/events.htm
+http://users.ox.ac.uk/~ouccc/beginners/atoz/
+http://users.ox.ac.uk/~ouengsoc/societyconstitution.html
+http://users.ox.ac.uk/~ougym/constitution.htm
+http://users.ox.ac.uk/~oumpa/constitution.htm
+http://users.ox.ac.uk/~ouoc/about/constitution.shtml
+http://users.ox.ac.uk/~oupc/0203/varsitymatch_05.htm
+http://users.ox.ac.uk/~quarrell/hrr1.html
+http://users.ox.ac.uk/~quarrell/hrr99sat.html
+http://users.ox.ac.uk/~scat0385/19wu.html
+http://users.ox.ac.uk/~scat1663/Index%20Main%20Items/Presentations.htm
+http://users.ox.ac.uk/~shil0124/mystuff/for-intolerance.html
+http://users.ox.ac.uk/~ssfc0041/sortedpubs.html
+http://users.rcn.com/crfriend/museum/narrative.html
+http://users.rcn.com/jkimball.ma.ultranet/BiologyPages/G/GasExchange.html
+http://users.rcn.com/jkimball.ma.ultranet/BiologyPages/N/Nutrition.html
+http://users.rcn.com/jkimball.ma.ultranet/BiologyPages/T/Transposons.html
+http://users.rcn.com/jtitus/Holding/NRJ.html
+http://users.rcn.com/tdiann/d_kitch.htm
+http://users.sgi.net/~elcore/truth.htm
+http://users.skynet.be/avalon/avalonuk/activities/activ2001.htm
+http://users.skynet.be/spinnen/bioeng.htm
+http://users.telenet.be/ananda/bc.htm
+http://users.ticnet.com/mikefirth/glos-obj.htm
+http://users.ticnet.com/mikefirth/hotbit11.htm
+http://users.ticnet.com/mikefirth/hotbit26.htm
+http://users.ticnet.com/mikefirth/hotbit27.htm
+http://users.ticnet.com/mikefirth/hotbit35.htm
+http://users.tpg.com.au/pharma_/43.htm
+http://users.tyenet.com/kozlich/bogomil2.htm
+http://users.uniserve.com/~synergy/pg1-37.htm
+http://users4.cgiforme.com/dragonball/messages/7561.html
+http://users4.cgiforme.com/dragonball/messages/7562.html
+http://users4.cgiforme.com/dragonball/messages/7913.html
+http://users4.cgiforme.com/dragonball/messages/7938.html
+http://userwww.service.emory.edu/~cmadd01/chpaul04.html
+http://userwww.sfsu.edu/~infoarts/links/wilson.artlinks2.html
+http://usgovinfo.about.com/library/weekly/aa031200a.htm
+http://usgovinfo.about.com/library/weekly/aa062702a.htm
+http://usgovinfo.about.com/library/weekly/aa092501a.htm
+http://usgovinfo.about.com/library/weekly/bliraqreshouse.htm
+http://usgovinfo.about.com/od/technologyandresearch/a/forests6months.htm
+http://usgovinfo.about.com/od/technologyandresearch/a/hazebegone.htm
+http://usinfo.org/facts/holiday/hd2.htm
+http://usinfo.state.gov/af/Archive/2004/Oct/28-382811.html
+http://usinfo.state.gov/dhr/Archive/2005/Feb/02-37221.html
+http://usinfo.state.gov/eap/
+http://usinfo.state.gov/eap/Archive/2005/Feb/23-749179.html
+http://usinfo.state.gov/eap/Archive/2005/Mar/21-227840.html
+http://usinfo.state.gov/ei/Archive/2005/Jun/07-850754.html
+http://usinfo.state.gov/gi/Archive/2004/Dec/03-378340.html
+http://usinfo.state.gov/gi/Archive/2004/Dec/08-935820.html
+http://usinfo.state.gov/gi/Archive/2004/Jul/15-123355.html
+http://usinfo.state.gov/gi/Archive/2004/Nov/03-339852.html
+http://usinfo.state.gov/is/Archive/2004/Dec/08-366411.html
+http://usinfo.state.gov/is/Archive_Index/Compliance_Diplomacy_Takes_on_Greater_Emphasis.html
+http://usinfo.state.gov/journals/itgic/1103/ijge/gj08.htm
+http://usinfo.state.gov/journals/itps/0305/ijpe/kongdan.htm
+http://usinfo.state.gov/journals/itsv/0403/ijse/jones.htm
+http://usinfo.state.gov/journals/itsv/0403/ijse/smith.htm
+http://usinfo.state.gov/journals/itsv/0600/ijse/standards.htm
+http://usinfo.state.gov/journals/itsv/0704/ijse/friedman.htm
+http://usinfo.state.gov/journals/itsv/1204/ijse/west.htm
+http://usinfo.state.gov/journals/itsv/1204/ijse/wolfe.htm
+http://usinfo.state.gov/mena/Archive/2004/Dec/12-982394.html
+http://usinfo.state.gov/mena/Archive/2004/Feb/05-47804.html
+http://usinfo.state.gov/mena/Archive/2004/Nov/05-904208.html
+http://usinfo.state.gov/mena/Archive/2005/Jun/19-282442.html
+http://usinfo.state.gov/mena/Archive/2005/Jun/21-632540.html
+http://usinfo.state.gov/products/pubs/democracy/dmpaper9.htm
+http://usinfo.state.gov/products/pubs/election04/campaign$.htm
+http://usinfo.state.gov/products/pubs/election04/congress.htm
+http://usinfo.state.gov/products/pubs/election04/procedure.htm
+http://usinfo.state.gov/products/pubs/geography/geog10.htm
+http://usinfo.state.gov/products/pubs/geography/geog16.htm
+http://usinfo.state.gov/products/pubs/history/ch13.htm
+http://usinfo.state.gov/products/pubs/intelprp/
+http://usinfo.state.gov/products/pubs/intelprp/homepage.htm
+http://usinfo.state.gov/products/pubs/legalotln/criminal.htm
+http://usinfo.state.gov/products/pubs/market/mktsb5.htm
+http://usinfo.state.gov/products/pubs/muslimlife/immigrat.htm
+http://usinfo.state.gov/products/pubs/oecon/chap2.htm
+http://usinfo.state.gov/products/pubs/oecon/chap4.htm
+http://usinfo.state.gov/products/pubs/oecon/chap5.htm
+http://usinfo.state.gov/products/pubs/oecon/chap6.htm
+http://usinfo.state.gov/products/pubs/press/press05.htm
+http://usinfo.state.gov/products/pubs/rightsof/press.htm
+http://usinfo.state.gov/products/pubs/writers/butler.htm
+http://usinfo.state.gov/sa/Archive/2004/Oct/07-669633.html
+http://usinfo.state.gov/special/Archive/2005/Jan/20-603979.html
+http://usinfo.state.gov/special/Archive/2005/May/05-299294.html
+http://usinfo.state.gov/special/Archive_Index/Copy_of_Compilation_of_VE_Day_Memories_Part_1.html
+http://usinfo.state.gov/usa/infousa/facts/democrac/22.htm
+http://usinfo.state.gov/usa/infousa/facts/democrac/4.htm
+http://usinfo.state.gov/usa/infousa/facts/symbols/songs.htm
+http://usinfo.state.gov/usa/infousa/society/socwelf/ss2000.htm
+http://usinfo.state.gov/usinfo/Archive/2005/Jun/15-742705.html
+http://usinfo.state.gov/usinfo/Archive/2005/Jun/20-442305.html
+http://usinfo.state.gov/wh/Archive/2005/May/03-250853.html
+http://usinfo.state.gov/wh/Archive/2005/May/16-117827.html
+http://usite.army.mod.uk/aru/features/7drills.html
+http://uslaboragainstwar.org/article.php?id=7596
+http://usmarriagelaws.com/search/weddings/wedding_vows/wedding_books/index.shtml
+http://usmilitary.about.com/cs/army/a/armygrooming_3.htm
+http://usmilitary.about.com/cs/joiningup/a/recruitgoals.htm
+http://usmilitary.about.com/cs/moneymatters/a/foodstamps.htm
+http://usmilitary.about.com/cs/wars/a/wartrophies.htm
+http://usmilitary.about.com/cs/weapons/a/newassaultgun.htm
+http://usmilitary.about.com/library/milinfo/arjobs/bl15b.htm
+http://usmilitary.about.com/library/milinfo/arjobs/bl15g.htm
+http://usmilitary.about.com/library/milinfo/arjobs/bl15v.htm
+http://usmilitary.about.com/library/milinfo/arjobs/bl67y.htm
+http://usmilitary.about.com/library/milinfo/blnavytrad-8.htm
+http://usmilitary.about.com/od/armypromotions/a/armywarrant.htm
+http://usmilitary.about.com/od/familydomestic/a/serviceflags.htm
+http://usnholpm.unh.edu/USY/V.Pers/F.9.htm
+http://uspirg.org/uspirg.asp?id2=13649&id3=USPIRG&
+http://uspresident.blogspot.com/
+http://utahutes.collegesports.com/ot/strength-conditioning.html
+http://utamagazine.uta.edu/fall_2001/sports/gould.html
+http://utangente.free.fr/anewpages/govinfo.html
+http://utility.plant.jobs.jobsearchsite.com/
+http://utopia.knoware.nl/users/modijk/huygvort.htm
+http://utopia.utexas.edu/articles/alcalde/bevo.html?sec=health&sub=sports
+http://utopia.utexas.edu/articles/alcalde/bevo.html?sec=texas&sub=university
+http://utopia.utexas.edu/articles/alcalde/gray_matters.html?sec=science&sub=biology
+http://utopia.utexas.edu/articles/alcalde/prensa_libre.html?sec=arts&sub=journalism
+http://utrockets.collegesports.com/sports/m-footbl/spec-rel/020205aab.html
+http://uts.cc.utexas.edu/~pmullins/chapter12.htm
+http://uuhome.de/global/english/vision001.html
+http://uuhsc.utah.edu/healthinfo/pediatric/growth/encopres.htm
+http://uuhsc.utah.edu/prevcard/cardioTests/
+http://uw.physics.wisc.edu/~himpsel/wires.html
+http://uwacadweb.uwyo.edu/RSO/ProfessionalAndDepartmental.asp
+http://uwadmnweb.uwyo.edu/InfoTech/Support/phone/vminstruc.htm
+http://uwadmnweb.uwyo.edu/RanchRecr/handbook/business_plan.htm
+http://uwadmnweb.uwyo.edu/RanchRecr/handbook/whoa.htm
+http://uwadmnweb.uwyo.edu/hrclasscomp2/jobdescrip/AssociateDirectorPhysicalPlant.htm
+http://va-interactive.com/inbusiness/editorial/bizdev/ibt/business_plan.html
+http://vaandel.co.za/our%20english%20page.htm
+http://vabenefits.vba.va.gov/vonapp/instructions.asp
+http://vads.ahds.ac.uk/guides/creating_guide/sect23.html
+http://vads.ahds.ac.uk/guides/creating_guide/sect28.html
+http://vads.ahds.ac.uk/guides/creating_guide/sect51.html
+http://vads.ahds.ac.uk/guides/creating_guide/sect65.html
+http://vain-glorious.net/
+http://valinor.ca/el3.htm
+http://valkenaar.net/davidlisa2000/journal/I-wales.html
+http://valley.vcdh.virginia.edu/Browser1/aubrowser/ssoct60.html
+http://valueoverreplacement.blogspot.com/
+http://vanessa.thebestporn.com/review/nightclubgirls
+http://vark.blogspot.com/
+http://vasab.leontief.net/countries/denmark1.htm
+http://vastudies.pwnet.org/vs2/vs2_d.htm
+http://vathena.arc.nasa.gov/curric/land/global/greenhou.html
+http://vatican.usembassy.it/embassy/statement.asp
+http://vb.mvps.org/news.asp
+http://vb.oreilly.com/news/vb_tips_1098.html
+http://vbba.org/rules/1884.html
+http://vbc.cityrepair.org/vbc5/blog.php?category=4
+http://vbc.cityrepair.org/vbc5/blog.php?d=10&m=05&y=05&category=4
+http://vbnet.mvps.org/code/browse/shdocvwfavadv.htm
+http://vbulletin.thesite.org/archive/index.php/t-17311.html
+http://vbulletin.thesite.org/archive/index.php/t-17453.html
+http://vbulletin.thesite.org/archive/index.php/t-55644.html
+http://vccslitonline.cc.va.us/ReadingPoetry/collab.htm
+http://vcexperts.com/vce/library/encyclopedia/documents_view.asp?document_id=100
+http://vch.ru/cgi-bin/guide.cgi?table_code=27&action=show_section&id=5
+http://vegasnews.squarespace.com/las-vegas-convention-news/2005/1/7/remarks-by-bill-gates-chairman-and-chief-software-architect-microsoft-corporation.html
+http://vendors.dsm.org/
+http://vered.rose.utoronto.ca/people/anu_dir/thesis/fchp2.fm.html
+http://verificationguild.com/modules.php?name=Forums&file=viewtopic&p=1376
+http://veryveryhappy.blogspot.com/2003_03_09_veryveryhappy_archive.html
+http://veterans.house.gov/hearings/schedule107/nov01/11-14-01/sbersoff.htm
+http://veterans.house.gov/news/108/6-16-03.html
+http://veterans.house.gov/news/108/9-3-03.html
+http://veterans.uconn.edu/aboutme.htm
+http://vetgate.ac.uk/browse/cabi/8208ec2b40c7243e82dacca11d952925.html
+http://vetgate.ac.uk/browse/cabi/8deed6277234dd267fda4956e6ef0a63.html
+http://vetgate.ac.uk/browse/cabi/d28d2d3560fa76f0dbb1a452f8c38169.html
+http://vetmedicine.about.com/cs/diseasesall/a/petdentalcare_2.htm
+http://vetmedicine.about.com/od/pethealthinsurance/a/061604a.htm
+http://vettesndreamcars.com/coupes_1.html
+http://vgn.dm.gov.ae/DMEGOV/OSI/dm-osi-definitions-e
+http://vhidiet.ediets.ie/news/article.cfm/article_id,2056
+http://vic.org/archives/2004_06.html
+http://vichaar.org/article77.html
+http://vickers.homedns.org/PV2mods.htm
+http://victorhanson.com/
+http://victorian.fortunecity.com/carmelita/435/New_Chaos.html
+http://video.barnesandnoble.com/search/glossary.asp?cat=1005874&TRM=1006855
+http://video.barnesandnoble.com/search/product.asp?ean=43396062528&frm=0&itm=2
+http://video.barnesandnoble.com/search/product.asp?ean=43396096783&frm=0
+http://video.barnesandnoble.com/search/product.asp?ean=43396222199&frm=0
+http://videosystems.com/mag/video_cedia_expo/
+http://vietnamnews.vnagency.com.vn/2004-03/20/Stories/28.htm
+http://vietnamnews.vnagency.com.vn/2004-04/24/Columns/Short%20Story.htm
+http://vietnamnews.vnagency.com.vn/showarticle.php?num=01INN010505
+http://vietnamnews.vnagency.com.vn/showarticle.php?num=03WAR170405
+http://vietnamnews.vnanet.vn/showarticle.php?num=03WAR170405
+http://viewfromiran.blogspot.com/2003/06/june-20-2003-arak-i-have-seen-more.html
+http://viewpointjournal.com/archives/2003/12/28/democrats-play-game-of-follow-the-loser/
+http://vijaykumar.com/questionandanswer/pain-and-suffering.html
+http://vikingphoenix.com/public/rongstad/home.html
+http://vikk.typepad.com/down_the_writers_path/2005/04/caution_is_book.html
+http://village.homewood.il.us/zoning/sections/sectionframes/section8pt1fr.htm
+http://village.massena.ny.us/treasurer.html
+http://villagebooks.booksense.com/NASApp/store/IndexJsp?s=storepicks&page=2667
+http://villagenews.weblogger.com/
+http://villamartelli.com/
+http://vimdoc.sourceforge.net/htmldoc/usr_02.html
+http://vincentdunn.com/wtc.html
+http://vinland.org/heathen/pagancee/lithrel.html
+http://virginiasports.collegesports.com/sports/m-baskbl/spec-rel/020805aaa.html
+http://virtual.park.uga.edu/cdesmet/wordcrun/wordcrun.htm
+http://virtualtrials.com/news3.cfm?item=2941
+http://virtuelvis.com/archives/2004/01/orkut-terms-of-service
+http://vision-nary.com/content/rook.html
+http://vision.arc.nasa.gov/personnel/jbm/home/vislab/exps/java/safe_txt.html
+http://vision.york.ac.uk/articles/141/books/42937.shtml
+http://visit.ipswitch.com/aprcase
+http://visitcroatia.proboards21.com/index.cgi?board=anything&action=post&thread=1118460189&page=1
+http://visitcroatia.proboards21.com/index.cgi?board=anything&action=post&thread=1118460189&quote=1118460189&page=1
+http://visitcroatia.proboards21.com/index.cgi?board=anything&action=post&thread=1118460189&quote=1118616441&page=1
+http://visitcroatia.proboards21.com/index.cgi?board=anything&action=post&thread=1118460189&quote=1118685100&page=1
+http://visitcroatia.proboards21.com/index.cgi?board=anything&action=post&thread=1118460189&quote=1118691112&page=1
+http://visitcroatia.proboards21.com/index.cgi?board=anything&action=post&thread=1118460189&quote=1118766352&page=1
+http://visitcroatia.proboards21.com/index.cgi?board=anything&action=post&thread=1118460189&quote=1119098479&page=1
+http://visitors.bestofhealth.com/get_fit/strength_LL.html
+http://vismod.media.mit.edu/courses/cgw96/1-12/
+http://vismod.media.mit.edu/courses/cgw97/1-10/
+http://viterbi.usc.edu/news/news/2005/2005_06_06_rome.htm
+http://vivabit.co.uk/articles/wsbp/
+http://vizier.u-strasbg.fr/~heck/waworal.html
+http://vjarmy.com/archives/2004/03/quicksilver_a_b.php
+http://vlacc.org/~morgan/assignments/assgt10.htm
+http://vlhc.org/pipetron_meetings/past97.html
+http://vlsi.colorado.edu/~mooni/N_ABLE/N_ABLE.html
+http://vm.cfsan.fda.gov/~lrd/tpsylliu.html
+http://vme.net/bluesky/year-end-sale.html
+http://vmyths.com/rant.cfm?id=274&page=4
+http://vmyths.com/rant.cfm?id=420&page=4
+http://vmyths.com/rant.cfm?id=562&page=4
+http://vnboards.ign.com/MMORPG_Player_Reviews/b22600/59743524/p1/
+http://vnd.theterrene.net/?m=Jul04
+http://vnuuk.typepad.com/pcwlabs/
+http://vocserve.berkeley.edu/Summaries/949sum.html
+http://voi.org/books/ayodhya/ch2.htm
+http://voice.paly.net/view_story.php?id=231
+http://voice.paly.net/view_story.php?id=2599
+http://voice123.com/l/voice_over_jobs.html
+http://voiceinthedesert.netfirms.com/keith/archives/2005/05/the_temperature.html
+http://voiceoftheturtle.org/raj/blog/archive/2004_09_01_archive.html
+http://voinovich.senate.gov/biography/
+http://voip-blog.tmcnet.com/blog/rich-tehrani/voip/just-in-time-communications.html
+http://voip-forum.tmcnet.com/voip-forum/forum/forum_posts.asp?TID=2228&PN=1&get=last
+http://voip-forum.tmcnet.com/voip-forum/forum/get_topic.asp?FID=17&TID=2201&DIR=N
+http://voip.weblogsinc.com/entry/1234000583039423
+http://volfangary.tripod.com/Difficult.html
+http://volokh.com/
+http://volokh.com/2002_09_08_volokh_archive.html
+http://volokh.com/2003_05_25_volokh_archive.html
+http://volokh.com/2003_06_29_volokh_archive.html
+http://volokh.com/2003_10_19_volokh_archive.html
+http://volokh.com/2003_11_02_volokh_archive.html
+http://volokh.com/2003_11_30_volokh_archive.html
+http://volokh.com/2004_01_18_volokh_archive.html
+http://volokh.com/2004_05_02_volokh_archive.html
+http://volokh.com/archives/archive_2004_05_14.shtml
+http://volokh.com/archives/archive_2004_05_21.shtml
+http://volokh.com/archives/archive_2004_06_00.shtml
+http://volokh.com/archives/archive_2004_06_14.shtml
+http://volokh.com/archives/archive_2004_06_28.shtml
+http://volokh.com/archives/archive_2004_07_00.shtml
+http://volokh.com/archives/archive_2004_07_14.shtml
+http://volokh.com/archives/archive_2004_09_14.shtml
+http://volokh.com/archives/archive_2004_10_14.shtml
+http://volokh.com/archives/archive_2004_12_00.shtml
+http://volokh.com/archives/archive_2004_12_07.shtml
+http://volokh.com/archives/archive_2004_12_14.shtml
+http://volokh.com/archives/archive_2004_12_28.shtml
+http://volokh.com/archives/archive_2005_01_00.shtml
+http://volokh.com/archives/archive_2005_01_07.shtml
+http://volokh.com/archives/archive_2005_01_28.shtml
+http://volokh.com/archives/archive_2005_02_20-2005_02_26.shtml
+http://volokh.com/archives/archive_2005_03_13-2005_03_19.shtml
+http://volokh.com/archives/archive_2005_03_20-2005_03_26.shtml
+http://volokh.com/archives/archive_2005_03_27-2005_04_02.shtml
+http://volokh.com/archives/archive_2005_04_17-2005_04_23.shtml
+http://volokh.com/archives/archive_2005_04_24-2005_04_30.shtml
+http://volokh.com/archives/archive_2005_05_15-2005_05_21.shtml
+http://volokh.com/archives/archive_2005_05_29-2005_06_04.shtml
+http://volokh.com/archives/archive_2005_06_05-2005_06_11.shtml
+http://volokh.com/archives/archive_2005_06_19-2005_06_25.shtml
+http://volokh.com/posts/1116453076.shtml
+http://volokh.com/posts/1119035247.shtml
+http://volvo-cars-na.usa18.info/
+http://vortex.plymouth.edu/precip/precip2aaa.html
+http://vos.noaa.gov/MWL/spring_03/circulation.shtml
+http://vos.ucsb.edu/browse.asp?id=2720
+http://vote.sparklit.com/comments.spark?contentID=843803&page=2&action=viewTopic&commentID=&pollID=797692
+http://vote.sparklit.com/comments.spark?contentID=843803&page=2&action=viewTopic&commentID=all&pollID=797692
+http://vote2004.eriposte.com/
+http://voyageur.idic.ca/deJagerJulyAug03.htm
+http://vr.dv8.net/tfs_lyrics4.html
+http://vranet.com/IDEA/IDEARelationship.asp?for=mid2idea
+http://vranet.com/IDEA/coderhelp/sourceexamples.htm
+http://vt.placementmanual.com/jobsearch/jobsearch-19.html
+http://vtc.ngfl.gov.uk/docserver.php?docid=10970
+http://vxl.sourceforge.net/
+http://w3.agsfoundation.com/press_011102.htm
+http://w3.arizona.edu/~records/retention.html
+http://w3.byuh.edu/devotionals/media/2005/0203hatch.htm
+http://w3.byuh.edu/devotionals/media/2005/0526rogers.htm
+http://w3.hwdsb.on.ca/tailslap/other/rvrnews/rn-mar00.htm
+http://w3.mesd.k12.or.us/admin/Suptreport.htm
+http://w3.ouhsc.edu/sfs/faq.asp
+http://w3.rz-berlin.mpg.de/cmp/ives_fathers_influence.html
+http://w3.rz-berlin.mpg.de/cmp/wagner.html
+http://w3.uokhsc.edu/pathology/deptlabs/Alzheimer/mech-dementia.htm
+http://w3.whosea.org/en/Section1243/Section1374/Section1426_5834.htm
+http://w4.ed.uiuc.edu/faculty/westbury/Paradigm/mcgeorge.html
+http://w4.evectors.it/itEntDirectory/topic?topic=peter_drucker&chunck=1
+http://w4.evectors.it/itEntDirectory/topic?topic=siebel&chunck=1
+http://w4.publicappeal.org/book/view/121
+http://w4.publicappeal.org/node/view/121
+http://w4.publicappeal.org/node/view/50
+http://wa.audubon.org/wetnet/chap1.htm
+http://wac.colostate.edu/aw/reviews/mla_2000.htm
+http://wah1ne.blogspot.com/
+http://wahshashe.org/nihkagahah/
+http://waiterrant.blogspot.com/
+http://wake-village.texas.com/hotels.html
+http://wakeforestsports.collegesports.com/trads/wake-strength.html
+http://wakeforestsports.collegesports.com/trads/wake-strength.html?page=1
+http://wakeforestsports.collegesports.com/trads/wake-strength.html?pic=0
+http://wakeforestsports.collegesports.com/trads/wake-strength.html?pic=2
+http://wakeforestsports.collegesports.com/trads/wake-strength.html?pic=3
+http://wales.rleague.com/index2.shtml
+http://walk-away.info/
+http://walk.free.bm/
+http://walkah.net/
+http://walking.about.com/cs/measure/a/aaidol.htm
+http://walking.about.com/cs/shoecare/a/keepthemtied.htm
+http://walking.about.com/library/weekly/aa120797.htm
+http://walking.about.com/od/medhot/
+http://walking.about.com/od/polereviews/gr/dvdnordicwalk.htm
+http://walking.miningco.com/od/publications/
+http://walking.timeoutdoors.com/kit/3WLKDUD02010201E.htm
+http://wall.oise.utoronto.ca/events/speakers_series.htm
+http://walleyeguys.com/web1297.html
+http://wallkill.k12.nj.us/finearts/artcurriculum.html
+http://wallstreet-updown.com/NewPage3-FAQ-21sec-6.htm
+http://wally.rit.edu/cary/CP_pages/caryorder.html
+http://walrus.wr.usgs.gov/tsunami/itst.html
+http://waltonfeed.com/old/soap/soap.html
+http://wardsauto.com/ar/auto_visteon_settles_new/
+http://warincontext.org/
+http://warincontext.org/2004_11_14_archive.html
+http://warincontext.org/2005_01_02_archive.html
+http://warner.senate.gov/pressoffice/statements/20050525.htm
+http://warrior.xenu.ca/1997-0814b.html
+http://was4.hewitt.com/hewitt/ap/resource/rptspubs/hewittquart/HQ_11/articles/putting_front.html
+http://was4.hewitt.com/hewitt/resource/rptspubs/hewitt_magazine/vol8_iss1/features-hewitt-01.html
+http://washingtonhistory.com/OHJ/OHJ_0802_Shutters.htm
+http://washingtonhistory.org/wshs/columbia/articles/0200-a2.htm
+http://washingtonpost.com/
+http://washingtonpost.com/ac3/ContentServer?pagename=article&articleid=A99067-1998Aug9&node=travel/archive/subject/family
+http://washingtontimes.com/metro/20050628-115938-3363r.htm
+http://washingtontimes.com/national/20050126-114921-7399r.htm
+http://washingtontimes.com/national/20050127-122517-1306r.htm
+http://washingtontimes.com/national/20050324-114419-7900r.htm
+http://washingtontimes.com/national/20050610-123152-3823r.htm
+http://washingtontimes.com/national/20050613-120230-6283r.htm
+http://washingtontimes.com/national/20050624-105738-9688r.htm
+http://washingtontimes.com/upi-breaking/20041013-115710-9162r.htm
+http://washingtontimes.com/upi-breaking/20041028-120146-8244r.htm
+http://washingtontimes.com/upi-breaking/20041213-121621-7693r.htm
+http://washingtontimes.com/upi-breaking/20050119-042204-4915r.htm
+http://washingtontimes.com/upi-breaking/20050317-063734-5283r.htm
+http://washingtontimes.com/upi-breaking/20050406-010101-1385r.htm
+http://washingtontimes.com/upi-breaking/20050412-064305-5519r.htm
+http://washingtontimes.com/upi/20050616-053346-8976r.htm
+http://washingtontimes.com/world/20040110-115103-7051r.htm
+http://wastedday.diaryland.com/
+http://watarts.uwaterloo.ca/~acheyne/Misc/SeriousPlay.html
+http://watch.pair.com/occult.html
+http://watch.pair.com/reich.html
+http://watch.pair.com/roundtable.html
+http://watch.windsofchange.net/0729_0804.htm
+http://watchingthewatchers.org/
+http://water.library.arizona.edu/body.1_div.34.html
+http://watercenter.colostate.edu/overview.html
+http://watercolourboy.blogspot.com/2003_07_01_watercolourboy_archive.html
+http://watermattersaustralia.org/lent/000007.htm
+http://watford.rivals.net/default.asp?sid=898&p=2&stid=8245653
+http://watski.blogspot.com/2004_10_01_watski_archive.html
+http://watthai.net/talon/jataka/jataka81.htm
+http://watty.diaryland.com/
+http://wave.prohosting.com/helppat/
+http://waynesword.palomar.edu/lmexe10b.htm
+http://waynesword.palomar.edu/mucuna.htm
+http://waynesword.palomar.edu/plmay97.htm
+http://waysandmeans.house.gov/About.asp?section=23
+http://waysandmeans.house.gov/about.asp?section=23&comm=0
+http://waysandmeans.house.gov/hearings.asp?formmode=printfriendly&id=2803
+http://waysandmeans.house.gov/hearings.asp?formmode=printfriendly&id=900
+http://waysandmeans.house.gov/hearings.asp?formmode=view&id=1440
+http://waysandmeans.house.gov/hearings.asp?formmode=view&id=147
+http://waysandmeans.house.gov/hearings.asp?formmode=view&id=2492
+http://waysandmeans.house.gov/hearings.asp?formmode=view&id=2519
+http://waysandmeans.house.gov/hearings.asp?formmode=view&id=2668
+http://waysandmeans.house.gov/hearings.asp?formmode=view&id=2783
+http://waysandmeans.house.gov/hearings.asp?formmode=view&id=2798
+http://waysandmeans.house.gov/hearings.asp?formmode=view&id=2815
+http://waysandmeans.house.gov/hearings.asp?formmode=view&id=2859
+http://waysandmeans.house.gov/legacy/fullcomm/107cong/2-13-01/2-13onie.htm
+http://waywildpets.com/Animal-Rescue_CPR-Cats-Dogs_Emergency-First-Aid.html
+http://wbai.org/index.php?option=content&task=view&id=4013&Itemid=2
+http://wbaifree.org/sloan/road/elizabeth.html
+http://wbgosampad.nic.in/about.htm
+http://wbln0018.worldbank.org/eurvp/web.nsf/Pages/United+Kingdom-Activities
+http://wbz1030.com/topstories/local_story_038122850.html
+http://wcc.dli.state.mt.us/S/Smith_KeithWarren_Finding.htm
+http://wcco.com/
+http://wcco.com/health/health_story_030090208.html
+http://wcs-old.atlasworks.com/67090/201142
+http://wdcrobcolp01.ed.gov/cfapps/free/displaysubject.cfm?sid=4&subid=38
+http://wdcrobcolp01.ed.gov/cfapps/free/displaysubject.cfm?sid=9
+http://wdfw.wa.gov/fish/regs/commregs/2003framework.htm
+http://wdfw.wa.gov/wlm/game/hunter/scoping.htm
+http://we04.com/privacy.cfm
+http://wearables.engadget.com/entry/1234000257023494/
+http://wearablesbusiness.com/mag/apparel_self_promotion_wearing/
+http://wearablesbusiness.com/mag/apparel_womens_sales_increase/
+http://weather.unisys.com/model/details.html
+http://weathereye.kgan.com/expert/blizzard/WinterSafe.html
+http://weathereye.kgan.com/expert/blizzard/bliz_glossary.html
+http://weatherization.ornl.gov/sep_evaluation-2004.htm
+http://weatheroffice.ec.gc.ca/mainmenu/faq_e.html
+http://weatheroffice.ec.gc.ca/saisons/info_prev_proba_e.html
+http://weatheroffice.ec.gc.ca/saisons/info_prev_proba_e.html?b_templatePrint=true
+http://web-1.bidz.com/productDisplay.php?lotid=8642631
+http://web-1.bidz.com/productDisplay.php?lotid=8706488&live=Y
+http://web-1.bidz.com/productDisplay.php?lotid=8706579&live=Y
+http://web-guides.com/successletter/archives/2005/03/
+http://web-japan.org/trends/sports/spo040204.html
+http://web-japan.org/trends98/honbun/ntj971121.html
+http://web.1earth.net/~fullpwr/martialarts.html
+http://web.africa.ufl.edu/asq/v1/3/2.htm
+http://web.amnesty.org/ai.nsf/Recent/MDE140082001?Open
+http://web.amnesty.org/library/Index/ENGACT300012004
+http://web.amnesty.org/library/Index/ENGACT300012004?open&of=ENG-315
+http://web.amnesty.org/library/Index/ENGACT300012004?open&of=ENG-352
+http://web.amnesty.org/library/Index/ENGACT300012004?open&of=ENG-366
+http://web.amnesty.org/library/Index/ENGACT300012004?open&of=ENG-390
+http://web.amnesty.org/library/Index/ENGAFR170021999?open&of=ENG-CMR
+http://web.amnesty.org/library/Index/ENGAFR300041998?open&of=ENG-SEN
+http://web.amnesty.org/library/Index/ENGAFR430012000?open&of=ENG-NER
+http://web.amnesty.org/library/Index/ENGAMR140032004?open&of=ENG-2M5
+http://web.amnesty.org/library/Index/ENGAMR140032004?open&of=ENG-BHS
+http://web.amnesty.org/library/Index/ENGAMR150052002?open&of=ENG-BRB
+http://web.amnesty.org/library/Index/ENGAMR450042001?open&of=ENG-PRY
+http://web.amnesty.org/library/Index/ENGASA130062000?open&of=ENG-BGD
+http://web.amnesty.org/library/Index/ENGASA170182004?open&of=ENG-2S2
+http://web.amnesty.org/library/Index/ENGASA310222005?open&of=ENG-366
+http://web.amnesty.org/library/Index/ENGASA310222005?open&of=ENG-394
+http://web.amnesty.org/library/Index/ENGEUR290012004?open&of=ENG-2U3
+http://web.amnesty.org/library/Index/ENGEUR290012004?open&of=ENG-364
+http://web.amnesty.org/library/Index/ENGEUR290012004?open&of=ENG-385
+http://web.amnesty.org/library/Index/ENGEUR380012004?open&of=ENG-2U3
+http://web.amnesty.org/library/Index/ENGEUR380012004?open&of=ENG-PRT
+http://web.amnesty.org/library/Index/ENGEUR460291996?open&of=ENG-381
+http://web.amnesty.org/library/Index/ENGEUR720012000?open&of=ENG-SVK
+http://web.amnesty.org/library/Index/ENGIOR610122005
+http://web.amnesty.org/library/Index/ENGIOR610122005?open&of=ENG-369
+http://web.amnesty.org/library/Index/ENGIOR800112003?open&of=ENG-398
+http://web.amnesty.org/library/Index/ENGMDE180142001?open&of=ENG-2MD
+http://web.amnesty.org/library/Index/ENGMDE180142001?open&of=ENG-360
+http://web.amnesty.org/library/Index/ENGMDE180142001?open&of=ENG-LBN
+http://web.amnesty.org/library/Index/ENGMDE300022003?open&of=ENG-TUN
+http://web.amnesty.org/library/Index/ENGMDE300042003?open&of=ENG-TUN
+http://web.amnesty.org/library/index/engasa410182003
+http://web.amnesty.org/library/index/engeur450142003
+http://web.amnesty.org/report2003/message-eng
+http://web.amnesty.org/report2005/message-eng
+http://web.amnesty.org/web/ar2001.nsf/webeurcountries/UZBEKISTAN?OpenDocument
+http://web.amnesty.org/web/ar2002.nsf/asa/myanmar?Open
+http://web.apu.ac.uk/webteam/webtemplates/points.phtml
+http://web.balliol.ox.ac.uk/library/jowett/jwt-2h.asp
+http://web.clas.ufl.edu/users/rhatch/pages/01-Courses/current-courses/SCI-SEX-RACE-SP-2002-now.htm
+http://web.clas.ufl.edu/users/rhatch/pages/03-Sci-Rev/SCI-REV-Home/resource-ref-read/chief-systems/boulliau-prob/06rp-b-planet4.htm
+http://web.clas.ufl.edu/users/rhatch/pages/05-SecondaryTeaching/NSF-PLANS/2-3_SCIENCE.htm
+http://web.csp.edu/cspupdate/june2003/060603.html
+http://web.esf.edu/calendar.asp
+http://web.gc.cuny.edu/Computerscience/about_program/matricul_students.html
+http://web.gc.cuny.edu/Eusc/activities/paper/davidson.htm
+http://web.gc.cuny.edu/Eusc/activities/paper/godal.htm
+http://web.gc.cuny.edu/dept/class/rhetfig.htm
+http://web.haystack.mit.edu/mark5/newsletter1.htm
+http://web.idrc.ca/en/ev-27446-201-1-DO_TOPIC.html
+http://web.idrc.ca/en/ev-27498-201-1-DO_TOPIC.html
+http://web.idrc.ca/en/ev-28818-201-1-DO_TOPIC.html
+http://web.idrc.ca/en/ev-28829-201-1-DO_TOPIC.html
+http://web.idrc.ca/en/ev-29525-201-1-DO_TOPIC.html
+http://web.idrc.ca/en/ev-30200-201-1-DO_TOPIC.html
+http://web.idrc.ca/en/ev-31158-201-1-DO_TOPIC.html
+http://web.idrc.ca/en/ev-43013-201-1-DO_TOPIC.html
+http://web.idrc.ca/en/ev-43147-201-1-DO_TOPIC.html
+http://web.idrc.ca/en/ev-67615-201-1-DO_TOPIC.html
+http://web.idrc.ca/en/ev-68397-201-1-DO_TOPIC.html
+http://web.idrc.ca/es/ev-27498-201-1-DO_TOPIC.html
+http://web.idrc.ca/es/ev-28818-201-1-DO_TOPIC.html
+http://web.idrc.ca/es/ev-29525-201-1-DO_TOPIC.html
+http://web.idrc.ca/es/ev-43013-201-1-DO_TOPIC.html
+http://web.indstate.edu/ctl/tips/tip1_16.html
+http://web.israelinsider.com/Articles/AntiSemi/4854.htm
+http://web.israelinsider.com/Articles/Politics/3412.htm
+http://web.israelinsider.com/views/4938.htm
+http://web.lemoyne.edu/~giunta/lavoisier.html
+http://web.lemoyne.edu/~hevern/nr-theorists-mno.html
+http://web.library.uiuc.edu/ahx/uaccard/UAControlCard.asp?RG=15&SG=35&RS=54
+http://web.mala.bc.ca/black/amrc/Research/Papers/GASCOIGN.HTM
+http://web.media.mit.edu/~nitin/NomadicRadio/SpatialAudio.htm
+http://web.mid-day.com/columns/shanta_gokhle/2004/october/95585.htm
+http://web.mid-day.com/news/world/2005/february/102711.htm
+http://web.missouri.edu/~servlrn/article_reaching_out.htm
+http://web.mit.edu/21fms/www/faculty/henry3/Intro-Katz.html
+http://web.mit.edu/21fms/www/faculty/henry3/dennis.html
+http://web.mit.edu/21fms/www/faculty/henry3/profjenkins.html
+http://web.mit.edu/adorai/timetraveler/
+http://web.mit.edu/annualreports/pres01/03.00.html
+http://web.mit.edu/annualreports/pres01/13.20.html
+http://web.mit.edu/answers/xess/xess_functions.html
+http://web.mit.edu/arts/announcements/prs/2002/0206_ams.html
+http://web.mit.edu/bcs/newsevents/bcsnews.shtml
+http://web.mit.edu/biology/www/facultyareas/facresearch/tonegawa.shtml
+http://web.mit.edu/biology/www/undergrad/instauth.html
+http://web.mit.edu/canes/symposia/ngnp/home.html
+http://web.mit.edu/career/www/guide/interviews.html
+http://web.mit.edu/cms/betweenthelines/summaries.html
+http://web.mit.edu/comm-forum/forums/art_of_prime_time.html
+http://web.mit.edu/comm-forum/papers/alfrey.html
+http://web.mit.edu/comm-forum/papers/butler.html
+http://web.mit.edu/committees/rotc/rotchist.html
+http://web.mit.edu/committees/sll/f6.html
+http://web.mit.edu/cultureshock/fa2004/cutting.htm
+http://web.mit.edu/e-club/hadzima/do-you-still-have-the-right-people.html
+http://web.mit.edu/e-club/hadzima/outside-directors.html
+http://web.mit.edu/finances/services-available.html
+http://web.mit.edu/first-east/www/useful.1e.info.html
+http://web.mit.edu/gtmarx/www/whenworks.html
+http://web.mit.edu/hr/benefits/health.html
+http://web.mit.edu/hr/policy/4-5.html
+http://web.mit.edu/icl/icl/ultra_rep_i_1_1.html
+http://web.mit.edu/ist/topics/athena/differences.html
+http://web.mit.edu/ist/topics/training/registration.html
+http://web.mit.edu/ist/topics/windows/server/essential_tasks.html
+http://web.mit.edu/kirason/www/archives/20040628.html
+http://web.mit.edu/krugman/www/
+http://web.mit.edu/krugman/www/euronote.html
+http://web.mit.edu/lking/www/writing/design.html
+http://web.mit.edu/m-i-t/articles/alfrey.html
+http://web.mit.edu/mitccc/WhatsYourStory/testrush.htm
+http://web.mit.edu/mitmsa/www/NewSite/libstuff/nasr/nasrspeech1.html
+http://web.mit.edu/newsoffice/1999/artery-0421.html
+http://web.mit.edu/newsoffice/1999/hood-0609.html
+http://web.mit.edu/newsoffice/2000/cmvemail-0920.html
+http://web.mit.edu/newsoffice/2001/sebbar-1205.html
+http://web.mit.edu/newsoffice/2002/horvitz-1023.html
+http://web.mit.edu/newsoffice/2002/horvitz-speech.html
+http://web.mit.edu/newsoffice/2005/matter.html
+http://web.mit.edu/newsoffice/2005/melatonin.html
+http://web.mit.edu/newsoffice/nr/2003/mindell/
+http://web.mit.edu/newsoffice/tt/1999/dec15/pay.html
+http://web.mit.edu/nh4/www/housing_rules.html
+http://web.mit.edu/om_p/www/hiking.html
+http://web.mit.edu/ombud/documents/drafting_a_letter.html
+http://web.mit.edu/orientation/fpop/dme.html
+http://web.mit.edu/pgbovine/www/quicktips.htm
+http://web.mit.edu/president/communications/com04.html
+http://web.mit.edu/rocsa/www/dontyouhear/
+http://web.mit.edu/scholars/healthinsopts.html
+http://web.mit.edu/scholarships/details/beinecke.htm
+http://web.mit.edu/security/www/mit-mostly/bcmt/drduty.html
+http://web.mit.edu/slp/finances/outside-accounts.html
+http://web.mit.edu/sma/students/faq.htm
+http://web.mit.edu/sma/students/programmes/ce.htm
+http://web.mit.edu/ssp/fall02/michel.htm
+http://web.mit.edu/storborg/ddf/design.html
+http://web.mit.edu/thistle/www/v9/9.05/7backyard.html
+http://web.mit.edu/tll/published/efforts.html
+http://web.mit.edu/urbanupgrading/urbanenvironment/issues/how-much-poverty.html
+http://web.mit.edu/urop/preuropapp.html
+http://web.mit.edu/urop/speaking.html
+http://web.mit.edu/womens-studies/www/new/writingPrize/lk97.html
+http://web.mit.edu/womens-studies/www/writingPrize/lk97.html
+http://web.mit.edu/zoz/www/academics/
+http://web.nmsu.edu/~dboje/TDgreenlinks.html
+http://web.onetel.net.uk/~gnudawn/johnny/leaving.html
+http://web.onetel.net.uk/~gnudawn/johnny/visitors.html
+http://web.onetel.net.uk/~zakalwe/imb/notes.htm
+http://web.pitas.com/kudaranai/kenzhu.html
+http://web.pref.hyogo.jp/syoubou/english/dmh1.html
+http://web.presby.edu/~jtbell/usenet/newgroup/how-submit.faq
+http://web.princeton.edu/sites/career/Alumni/job_search.html
+http://web.princeton.edu/sites/chapel/Sermon%20Files/2004_sermons/091204.htm
+http://web.princeton.edu/sites/ehs/heatstress/heatstress.htm
+http://web.princeton.edu/sites/ehs/pmguide/
+http://web.princeton.edu/sites/politics/grad/gradcurric.shtm
+http://web.psych.ualberta.ca/~iwinship/vision/mst_path.html
+http://web.realitytvworld.com/theamazingracesucks.com/tar4ep6.shtml
+http://web.singnet.com.sg/~chlim/indies.html
+http://web.singnet.com.sg/~tay06/
+http://web.singnet.com.sg/~tt71163/
+http://web.stclair.k12.il.us/splashd/flowrexp.htm
+http://web.stlawu.edu/career/vivien.htm
+http://web.stlawu.edu/gallery/exhibit-f03.htm
+http://web.stlawu.edu/resources/positions/administrative/fy%202003-2004/hshldmgr0605.htm
+http://web.stlawu.edu/scarlet/1-21-02.htm
+http://web.stlawu.edu/scarlet/10-18-04.htm
+http://web.syr.edu/~jryan/infopro/statpub.html
+http://web.syr.edu/~sndrake/hentoff.htm
+http://web.takebackthemedia.com/geeklog/public_html/article.php?story=20040731134333869
+http://web.tampabay.rr.com/mspusf/PearlHarbor
+http://web.tampabay.rr.com/mspusf/pearlharbor.html
+http://web.tiscali.it/sv2001/cormo_abstract/bull4_docs/Bregnballe%20&%20Asferg.htm
+http://web.twinisles.com/golive.html
+http://web.ubc.ca/okanagan/education/degreeplanning.html
+http://web.uccs.edu/history/student%20presentations/alivia/
+http://web.uct.ac.za/depts/maths/ibc98/tours.htm
+http://web.uflib.ufl.edu/cm/business/cases/commercial.htm
+http://web.uflib.ufl.edu/pers/training/office_ergonomics.htm
+http://web.ukonline.co.uk/bsac/
+http://web.ukonline.co.uk/chapmani/cretes.htm
+http://web.ukonline.co.uk/cj.tolley/nch-william-ockham.htm
+http://web.ukonline.co.uk/heroese/mypage3zz.htm
+http://web.ukonline.co.uk/webwise/spinneret/circuln/blood.htm
+http://web.utk.edu/~hwallac2/weblog/
+http://web.utk.edu/~impact/languagearts.html
+http://web.uvic.ca/ablo/awdbusbgrnd.html
+http://web.uvic.ca/strategicplan/context.html
+http://web.worldbank.org/WBSITE/EXTERNAL/COUNTRIES/LACEXT/COSTARICAEXTN/0,,contentMDK:20252791~pagePK:141137~piPK:141127~theSitePK:295413,00.html
+http://web.worldbank.org/WBSITE/EXTERNAL/COUNTRIES/WBEUROPEEXTN/BELGIUMEXTN/0,,contentMDK:20234975~hlPK:468472~menuPK:486918~pagePK:141137~piPK:217854~theSitePK:387730,00.html
+http://web.worldbank.org/WBSITE/EXTERNAL/NEWS/0,,contentMDK:20025027~menuPK:34472~pagePK:34370~piPK:34424~theSitePK:4607,00.html
+http://web.worldbank.org/WBSITE/EXTERNAL/NEWS/0,,contentMDK:20046707~menuPK:34457~pagePK:34370~piPK:34424~theSitePK:4607,00.html
+http://web.worldbank.org/WBSITE/EXTERNAL/NEWS/0,,contentMDK:20114354~menuPK:34463~pagePK:34370~piPK:34424~theSitePK:4607,00.html
+http://web.worldbank.org/WBSITE/EXTERNAL/NEWS/0,,contentMDK:20276925~menuPK:34475~pagePK:34370~piPK:34424~theSitePK:4607,00.html
+http://web.worldbank.org/WBSITE/EXTERNAL/NEWS/0,,contentMDK:20282823~menuPK:34457~pagePK:34370~piPK:34424~theSitePK:4607,00.html
+http://web.worldbank.org/WBSITE/EXTERNAL/NEWS/0,,contentMDK:20390880~menuPK:34473~pagePK:34370~piPK:42770~theSitePK:4607,00.html
+http://web.worldbank.org/WBSITE/EXTERNAL/NEWS/0,,contentMDK:20477490~pagePK:64257043~piPK:437376~theSitePK:4607,00.html
+http://web.worldbank.org/WBSITE/EXTERNAL/NEWS/0,,contentMDK:20511866~pagePK:64257043~piPK:437376~theSitePK:4607,00.html
+http://web1.msue.msu.edu/msue/imp/modtd/33420042.html
+http://web1.tch.harvard.edu/cfapps/CHdeptPagePressDisplay.cfm?Dept=Press%20Room&PageNbr=49&ParentPage=1
+http://web2.airmail.net/ktrig246/out_of_cave/mf.html
+http://web2.concordia.ca/financialaid/planning/
+http://web2.gov.mb.ca/bills/sess/b017e.php
+http://web2.gov.mb.ca/laws/statutes/2003/c00703e.php
+http://web2.gov.mb.ca/laws/statutes/ccsm/c240e.php
+http://web2.gov.mb.ca/laws/statutes/ccsm/l010e.php
+http://web2.gov.mb.ca/laws/statutes/private/c14190e.php
+http://web2.unt.edu/news/print.cfm?story=9228
+http://web2.unt.edu/news/story.cfm?story=9228
+http://web2.westsiderentals.com/nwsrc/tl-signup.shtml
+http://web5.uottawa.ca/admingov/met-e.php?id=12-2
+http://web73.enux.dk/index.php?id=37
+http://webapp.icpsr.umich.edu/cocoon/DDI/SAMPLES/07728.xml?part=2
+http://webapps.acs.carleton.edu/events/commencement/05speeches/stigler/
+http://webapps.acs.carleton.edu/voice/PDFStory.php?id=67&type=features
+http://webapps.acs.carleton.edu/voice/features.php3?id=67
+http://webapps.cc.umanitoba.ca/calendar04/faculties/arts/labour/
+http://webapps.cc.umanitoba.ca/calendar05/faculties/arts/labour/
+http://webapps.cc.umanitoba.ca/calendar06/faculties/arts/labour/
+http://webapps.cc.umanitoba.ca/regguide04/faculties/phys_ed/section2.asp
+http://webapps.yorku.ca/nonacademicpostings/complete.jsp?postingnumber=4270
+http://webcenter.health.webmd.netscape.com/hw/hypertension/hw227495.asp
+http://webcenter.health.webmd.netscape.com/hw/raising_a_family/nord976.asp
+http://webcenters.compuserve.com/compuserve/love/advice.jsp
+http://webcenters.compuserve.com/compuserve/love/confession.jsp?confession=625
+http://webcentral.uc.edu/IPO/index.cfm?fuseaction=home.conflict
+http://webclipart.about.com/
+http://webclipart.about.com/library/hvarious/blcinco12.htm
+http://webclipart.miningco.com/library/Stpats/blstbar1.htm
+http://webclipart.miningco.com/library/Stpats/blstbar2.htm
+http://webdesign.about.com/od/charactersets/a/aa081000a.htm
+http://webdesign.informit.com/title/013146745X
+http://webdiary.smh.com.au/archives/margo_kingston/000663.html
+http://webdiary.smh.com.au/archives/margo_kingston/001204.html
+http://webdiary.smh.com.au/archives/margo_kingston/001210.html
+http://webdirectory.natlib.govt.nz/dir/en/nz/business-and-economy/transport/
+http://webdocs.caspur.it/ibm/pssp-3.5/html/diag/am0dgmst02.html
+http://weber.ucsd.edu/~dkjordan/chin/hbnames-u.html
+http://webexhibits.org/butter/history-creamery.html
+http://webexhibits.org/calendars/calendar-roman.html
+http://webexhibits.org/daylightsaving/c.html
+http://webexhibits.org/daylightsaving/franklin3.html
+http://webexhibits.org/daylightsaving/g.html
+http://webexhibits.org/hockneyoptics/post/falcograves4.html
+http://webeye.ophth.uiowa.edu/dept/Websites/eyeres.htm
+http://webeye.ophth.uiowa.edu/dept/websites/eyeres.htm
+http://webguide.webmagic.com/Hair.com/Hair_Care/Styles_and_Salons/
+http://webhome.idirect.com/~born2luv/FRUGAL.HTML
+http://webhome.idirect.com/~born2luv/expert.html
+http://webhome.idirect.com/~readon/lies.html
+http://webjay.org/about
+http://webjcli.ncl.ac.uk/2003/issue5/bulvinaite5.html
+http://webjcli.ncl.ac.uk/articles3/clements3.html
+http://weblog.blogads.com/comments/929_0_1_0_C/
+http://weblog.burningbird.net/archives/2004/12/03/kitchen-was-hacked/
+http://weblog.burningbird.net/archives/2005/06/09/what-we-hear/
+http://weblog.burningbird.net/archives/2005/06/13/the-playing-field/
+http://weblog.burningbird.net/fires/000880.htm
+http://weblog.burningbird.net/fires/001373.htm
+http://weblog.cemper.com/
+http://weblog.delacour.net/
+http://weblog.delacour.net/archives/2003/03/telepathy.php
+http://weblog.delacour.net/archives/2003/07/japanese_text.php
+http://weblog.delacour.net/archives/2003/08/you_can_put_your_god_over_there.php
+http://weblog.delacour.net/archives/2003/12/beauty_sadness_and_existential_choice.php
+http://weblog.delacour.net/archives/2005/01/something_i_also_believe.php
+http://weblog.flora.ca/article.php3?story_id=112
+http://weblog.flora.ca/article.php3?story_id=112&submit=print
+http://weblog.fortnow.com/2005/06/growth-causes-shrinking.html
+http://weblog.greenpeace.org/wto/archives/2003_08.html
+http://weblog.halmacomber.com/2003_09_21_archive.html
+http://weblog.halmacomber.com/2004_08_08_archive.html
+http://weblog.herald.com/column/davebarry/archives/015899.html
+http://weblog.infoworld.com/thestoragenetwork/archives/2005_06.html
+http://weblog.infoworld.com/udell/stories/2002/12/11/librarylookup.html
+http://weblog.juima.org/
+http://weblog.physorg.com/news2187.html
+http://weblog.siliconvalley.com/column/dangillmor/archives/2003_01.shtml
+http://weblog.sinteur.com/index.php?p=8595
+http://weblog.soulhuntre.com/
+http://weblogs.asp.net/cazzu/archive/2004/02/13/XseIntro.aspx
+http://weblogs.asp.net/datagridgirl/
+http://weblogs.asp.net/jamauss/archive/2004/04/22/118718.aspx
+http://weblogs.asp.net/jgalloway/archive/2004/06/23/163393.aspx
+http://weblogs.asp.net/justin_rogers/archive/2004/04/12/111892.aspx
+http://weblogs.asp.net/larryosterman/archive/2004/10/20/245221.aspx
+http://weblogs.asp.net/mikechampion/archive/2005/01/28/362395.aspx
+http://weblogs.asp.net/mikhailarkhipov/archive/2004/05/21/136532.aspx
+http://weblogs.asp.net/oldnewthing/archive/2004/07/06/173935.aspx
+http://weblogs.asp.net/oldnewthing/archive/2004/07/28/199589.aspx
+http://weblogs.asp.net/scottgu/
+http://weblogs.asp.net/stevencohn/articles/62551.aspx
+http://weblogs.asp.net/vga/archive/2004/11/08/CppAndResponseWrite.aspx
+http://weblogs.asp.net/wallym/
+http://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000107.html
+http://weblogs.csmonitor.com/my_american_experience/
+http://weblogs.design.fh-aachen.de/owrede/publikationen/weblogs_and_discourse
+http://weblogs.java.net/blog/chet/archive/2005/06/
+http://weblogs.java.net/blog/editors/archives/2005/03/keeping_custome.html
+http://weblogs.java.net/blog/hansmuller/archive/2005/06/if_youve_got_a.html
+http://weblogs.java.net/blog/invalidname/archive/2004/10/why_mac_develop.html
+http://weblogs.java.net/blog/invalidname/archive/2004/10/why_mac_develop_1.html
+http://weblogs.java.net/blog/kirillcool/archive/2005/01/
+http://weblogs.java.net/blog/tball/archive/2004/10/the_problem_wit_1.html
+http://weblogs.java.net/jag/
+http://weblogs.java.net/pub/wlg/223
+http://weblogs.jupitermedia.com/meckler/
+http://weblogs.mozillazine.org/asa/archives/004796.html
+http://weblogs.mozillazine.org/asa/archives/007532.html
+http://weblogs.mozillazine.org/asa/archives/008092.html
+http://weblogs.mozillazine.org/asa/archives/008121.html
+http://weblogs.mozillazine.org/asa/archives/008389.html
+http://weblogs.mozillazine.org/ben/archives/2004_04.html
+http://weblogs.mozillazine.org/djst/archives/003892.html
+http://weblogs.mozillazine.org/gerv/archives/007562.html
+http://weblogs.mozillazine.org/hyatt/
+http://weblogs.mozillazine.org/josh/archives/2005/04/
+http://weblogs.mozillazine.org/mt/comment.cgi?entry_id=8121
+http://weblogs.mozillazine.org/pinkerton/archives/2004_07.html
+http://weblogs.mozillazine.org/roadmap/archives/005632.html
+http://weblogs.mozillazine.org/zach/archives/008088.html
+http://weblogs.oxegen.us/oxegen/archive/2004/07/28/3613.aspx
+http://weblogs.swarthmore.edu/burke/
+http://weblogs.swarthmore.edu/burke/?p=27
+http://weblogs.uncc.edu/blog/jwedgeco/2004/06
+http://weblogs.us/
+http://weblogs.variety.com/eeg_news/2004/09/mobile_game_bat.html
+http://weblogs.variety.com/outside_the_box/
+http://webmake.taint.org/doc/making.html
+http://webmaster.iu.edu/account_info/iubacinfo.shtml
+http://webmasteredge.smesource.com/webmasters/resources/S1.cfm/MainCatID/3/S1ID/13
+http://webmedbooks.com/default.aspx
+http://weboflife.nasa.gov/faq.htm
+http://webpages.charter.net/bowlfit/ask/
+http://webpages.charter.net/chalosi/pastorandmary.html
+http://webpages.charter.net/dnance/concpark/concpark-abt.htm
+http://webpages.charter.net/greatwesterndragon/
+http://webpages.charter.net/mad_prophet/articles/poli/majrule.html
+http://webpages.charter.net/mamamojo/pregna~1.html
+http://webpages.charter.net/maxflack/CHRISTMAS%20CAROL.htm
+http://webpages.csus.edu/~sac23835/Imax%20page.htm
+http://webquest.org/bdodge/2002_09_01_archive.htm
+http://webreference.com/dlab/
+http://webreview.com/topics/cpp/compilers/
+http://webs.wichita.edu/dt/beta.asp?u=humanr&p=/employment/recruitment/temp_instructions/
+http://webserv.chatsystems.com/~doswell/guns.html
+http://webservices.sys-con.com/read/100687.htm
+http://webservices.sys-con.com/read/104611.htm
+http://webservices.sys-con.com/read/39342.htm
+http://webservices.sys-con.com/read/49164.htm
+http://webservices.sys-con.com/read/96599.htm
+http://webservices.xml.com/pub/a/ws/2001/10/17/slippery-soap.html
+http://webservices.xml.com/pub/a/ws/2002/10/23/taglines.html
+http://webservices.xml.com/pub/a/ws/2004/04/21/protocols.html
+http://webshots.com.com/Canon_EOS_1Ds_Digital_SLR/4510-6501_7-20610303.html
+http://website.education.wisc.edu/rla/ADSITE/linkpgs/task3.htm
+http://website.lineone.net/~eshp/grammar.htm
+http://website.lineone.net/~florenceshinn/game.htm
+http://website.lineone.net/~galaxypix/
+http://website.lineone.net/~gambiagts/News18.htm
+http://websphere.sys-con.com/read/47217.htm
+http://webstandardsgroup.org/features/
+http://webstandardsgroup.org/features/andy-budd.cfm
+http://webstandardsgroup.org/features/nick-finck.cfm
+http://webstandardsgroup.org/features/russ-weakley.cfm
+http://webster.commnet.edu/grammar/concise.htm
+http://webster.commnet.edu/grammar/numbers.htm
+http://webster.commnet.edu/mla/notes.shtml
+http://webster.commnet.edu/slat/workshop_2004.htm
+http://webster.commnet.edu/writing/symbols.htm
+http://webster.cs.ucr.edu/AsmTools/HLA/HLADoc/HTMLDoc/WhatIsHLA.html
+http://webster.cs.ucr.edu/Page_win32/IczelionTuts/tut3.html
+http://webstore.longwood.com/winxp/LwSe/LwSeEULA.html
+http://websvcs.itcs.umich.edu/jobnet/job_posting.php?postingnumber=030859
+http://websvcs.itcs.umich.edu/jobnet/job_posting_printable.php?postingnumber=030859
+http://webtips.dan.info/new-window.html
+http://webvision.med.utah.edu/space_perception.html
+http://webword.com/moving/death.html
+http://webwynk.net/jrb/
+http://wedding.jamesoff.net/blog/
+http://weekendamerica.publicradio.org/programs/index_20040814.html
+http://weekly.ahram.org.eg/1999/441/re3.htm
+http://weekly.ahram.org.eg/2000/468/bk4_468.htm
+http://weekly.ahram.org.eg/2001/565/fe1.htm
+http://weekly.ahram.org.eg/2003/642/feature.htm
+http://weekly.ahram.org.eg/2003/646/eg1.htm
+http://weekly.ahram.org.eg/2003/665/pe2.htm
+http://weekly.ahram.org.eg/2004/700/cu1.htm
+http://weekly.ahram.org.eg/2004/707/letters.htm
+http://weekly.ahram.org.eg/2005/724/profile.htm
+http://weekly.ahram.org.eg/2005/742/re1.htm
+http://weekly.ahram.org.eg/2005/743/op11.htm
+http://weekly.ahram.org.eg/2005/747/cu1.htm
+http://weekly.ahram.org.eg/2005/747/eg4.htm
+http://weeklywire.com/ww/04-10-00/austin_xtra_feature.html
+http://weeklywire.com/ww/06-01-99/boston_movies_1.html
+http://weeklywire.com/ww/10-26-98/austin_music_feature3.html
+http://weeklywire.com/ww/11-22-99/nash_ol-online.html
+http://weewave.mer.utexas.edu/DPN_files/courses/FabLab/Fab_Lab_Manual/TROUBLE.html
+http://weez.oyzon.com/index.php?/weezblogtemplates/2003/12/
+http://wegoweb.net/schools/edfund.html
+http://weightloss.about.com/cs/moretips/a/aa021301a.htm
+http://welcome.topuertorico.org/economy.shtml
+http://welfarewarriors.org/W03--youth.dis.gay.htm
+http://wells.thefreelibrary.com/Time-Machine/1-7
+http://welshhumanshields.co.uk/blog/?postid=26
+http://wendy.seltzer.org/blog/archives/2004/11/21/perfect_10_takes_aim_at_google.html
+http://wesnerm.blogs.com/net_undocumented/2004/09/net_vs_native_p.html
+http://wesnerm.blogs.com/net_undocumented/2005/01/
+http://west-yorkshire.england.designerz.com/west-yorkshire-keighley.php
+http://westbynorthwest.org/fall01/farmwork.shtml
+http://westciv.typepad.com/dog_or_higher/2004/10/free_trade_agre_1.html
+http://westernchanfellowship.org/dharmatalks/ncf22_InTheSpiritOfChan.html
+http://westernjew.blogspot.com/
+http://westernstandard.blogs.com/shotgun/
+http://westernstandard.blogs.com/shotgun/2004/11/how_the_left_se.html
+http://wfhummel.cnchost.com/governmentspending.html
+http://wfrv.com/topstories/local_story_053193655.html
+http://wfrv.com/trouble/recalls_story_027171635.html
+http://wgfl.westminster.gov.uk/showcase/
+http://wgntv.trb.com/business/yourmoney/sns-yourmoney-0102complain,0,6739139.story?coll=wgntv-default-nav
+http://wgntv.trb.com/business/yourmoney/sns-yourmoney-0822value,0,237302.story
+http://wgntv.trb.com/entertainment/wbnetwork/stv-charmed-pkgepisodes1.special
+http://wgntv.trb.com/entertainment/wbnetwork/stv-smallville-pkgcast.special
+http://wgordon.web.wesleyan.edu/dolls/american/individual/fuzoku/
+http://wham.canoe.ca/gcn/features/2005/03/22/969110.html
+http://whatcomshellfish.wsu.edu/classification.htm
+http://whatdoiknow.org/
+http://whatdoiknow.org/archives/000273.shtml
+http://whateveritisimagainstit.blogspot.com/2005_01_01_whateveritisimagainstit_archive.html
+http://whatinvestment.money.msn.co.uk/msnwi153.htm
+http://whatis.techtarget.com/definition/0,,sid9_gci1002556,00.html
+http://whatscookingamerica.net/OliveOil.htm
+http://whc.unesco.org/archive/repcom78.htm
+http://whc.unesco.org/archive/repcom84.htm
+http://whc.unesco.org/en/list/611
+http://whc.unesco.org/en/list/623
+http://whc.unesco.org/en/list/781
+http://whedonesque.com/?comments=5877
+http://wheels.hothost.tv/bare_foot_teen_girl.html
+http://wheresmyplan.blog-city.com/
+http://whinecoloredsea.blogspot.com/
+http://whispy.com/positive_energy.htm
+http://whitefairblessed.blogspot.com/2005_02_13_whitefairblessed_archive.html
+http://whitemountainart.com/bibliography.htm
+http://whitepaper.governmententerprise.com/cmpgovernmententerprise/search/browse/1474/1474.jsp
+http://whitepaper.informationweek.com/cmpinformationweek/search/keyword/Security%20Research/CMPINFORMATIONWEEK/Security%20Research
+http://whitepaper.informationweek.com/cmpinformationweek/search/keyword/security%20research/CMPINFORMATIONWEEK/security%20research
+http://whitepaper.informationweek.com/cmpinformationweek/search/tabsortkeyword/research/Security+Research/1/2/index.jsp
+http://whitepaper.networkcomputing.com/cmpnetworkcomputing/search/keyword/security%20researchCMPNETWORKCOMPUTING/security%20research
+http://whitepaper.networkcomputing.com/cmpnetworkcomputing/search/keyword/security+research/CMPNETWORKCOMPUTING/security+research
+http://whitepaper.optimizemag.com/cmpoptimizemag/search/browse/1390/1390.jsp
+http://whitepaper.optimizemag.com/cmpoptimizemag/search/browse/1474/1474.jsp
+http://whitepaper.sdmagazine.com/cmpsdmagazine/search/browse/1474/1474.jsp
+http://whitepaper.securitypipeline.com/cmpsecuritypline/search/browse/1620/1620.jsp
+http://whitepaper.techweb.com/cmptechweb/MainServlet?ksAction=privacy
+http://whitepaper.techweb.com/cmptechweb/search/tabsortkeyword/research/mobile+wireless/1/6/index.jsp
+http://whitepapers.frontlinetoday.com/olist/Networking-Hardware.html
+http://whitepapers.frontlinetoday.com/olist/Wireless-LAN.html
+http://whiterose.saddleworth.net/news05.htm
+http://whiterose.saddleworth.net/news22.htm
+http://whitewolf.newcastle.edu.au/words/authors/H/HarteBret/prose/roaringcamp/nightwingdam.html
+http://whitewolf.newcastle.edu.au/words/authors/L/LawsonHenry/prose/sendroundthehat/shearerdream.html
+http://whitman.syr.edu/prospective/army/comptroller_course.asp
+http://whitman.syr.edu/prospective/army/resource.asp
+http://wholesomebalance.com/General_Balance.html
+http://whoswho-teachers.com/3attitudeANDsopinions/performance.aspx
+http://whoviating.blogspot.com/2005/05/exception-to-rule.html
+http://whtq.com/common/inside/visitor_agreement.html
+http://whyaretheydead.net/childabuse/
+http://whyfiles.org/021climate/ringers.html
+http://whyfiles.org/102spareparts/4.html
+http://whyfiles.org/114music/4.html
+http://whyquit.com/whyquit/A_NRT_JAMA.html
+http://whyslopes.com/complex.html
+http://whyslopes.com/etc/CalculusAndBeyond/ch22.html
+http://whyslopes.com/etc/ComplexNumbers/complex.html
+http://whyslopes.com/etc/MathCurriculumNotes/ch11L.html
+http://whyslopes.com/etc/ThreeSkillsForAlgebra/ch26.html
+http://whyslopes.com/volume1a/ch19.html
+http://whytheluckystiff.net/articles/seeingMetaclassesClearly.html
+http://wiccanet.net/wicca/1734/index2.shtml
+http://wicip.uwplatt.edu/green/ci/monroe/balloon/about.htm
+http://wickedwife.diaryland.com/convent.html
+http://wid.ndia.org/archive/2003november.cfm
+http://widemouthmason.com/dotnet/?page=getinterview&interviewid=3
+http://wifinetnews.com/
+http://wiki.asiasource.tacticaltech.org/cgi-bin/wiki.pl?FLOSSforEducationandSchools
+http://wiki.atitd.net/tale1/Summary_Of_New_Tests_Ideas
+http://wiki.blender.org/bin/view.pl/Blenderdev/CCGSubSurf
+http://wiki.gb.nrao.edu/bin/view/Data/FitsQueryLanguage
+http://wiki.gb.nrao.edu/bin/view/Mechanical/WebHome
+http://wiki.gb.nrao.edu/bin/view/Projects/ChangeControlCommittee
+http://wiki.gb.nrao.edu/bin/view/Software/ModificationRequest11C304
+http://wiki.gb.nrao.edu/bin/view/Software/WebHome?skin=print&sortcol=0&table=2&up=0
+http://wiki.gb.nrao.edu/bin/view/Software/WebHome?sortcol=0&table=2&up=0
+http://wiki.gb.nrao.edu/bin/view/Software/WebHome?sortcol=0&table=2&up=1
+http://wiki.java.net/bin/view/Javadesktop/SummerOfCode2005
+http://wiki.mozilla.org/wiki/Help:Renaming_(moving)_a_page
+http://wiki.tcl.tk/3731
+http://wikitravel.org/en/Cape_Town
+http://wikitravel.org/en/article/Minot
+http://wilber.shambhala.com/html/books/kosmos/excerptB/intro.cfm
+http://wildcat.arizona.edu/papers/90/147/13_2_m.html
+http://wildcat.arizona.edu/papers/95/61/03_3.html
+http://wildevogel.blogspot.com/
+http://wildlife.state.co.us/fishing/fishcond.asp
+http://wildlifeonlesvos.org/newsletters/October2004.html
+http://wildmonk.net/
+http://williambragg.com/wordpress/index.php?p=74
+http://williamcalvin.com/1990s/1997DeaconBkRevNYT.htm
+http://williamcalvin.com/1990s/1998EvolConscNoSlides.htm
+http://williamcalvin.com/BrainForAllSeasons/Nairobi.htm
+http://williamgibsonboard.com/eve/ubb.x/a/tpc/f/8606097971/m/475105953/p/6
+http://williamsullivanadvertising.com/radioreality.html
+http://williamwatkin.blogspot.com/
+http://willwilkinson.net/flybottle/
+http://willwilkinson.net/flybottle/archives/2005/06/bentham_on_the.html
+http://wilsonhellie.typepad.com/
+http://wilsonhellie.typepad.com/for_the_record/racism_and_other_isms/
+http://wilsonhellie.typepad.com/for_the_record/the_environment/
+http://win-edge.com/
+http://win.niddk.nih.gov/notes/fal_wi96/Pharmoco.htm
+http://win.niddk.nih.gov/notes/spring00/toppage2.htm
+http://win.niddk.nih.gov/publications/for_life.htm
+http://win.niddk.nih.gov/publications/myths.htm
+http://win.niddk.nih.gov/publications/physical.htm
+http://win2000mag.com/Articles/Index.cfm?ArticleID=8288
+http://wincent.com/a/knowledge-base/archives/2004/11/costs_of_runnin.php
+http://windeis.anl.gov/faq/index.cfm
+http://windeis.anl.gov/faq/index.cfm?printversion=true
+http://windingroad.typepad.com/
+http://windingroad.typepad.com/columns/
+http://windowglass.blogspot.com/
+http://windowmanager.blogspot.com/archives/2004_04_11_windowmanager_archive.html
+http://windowsmarketplace.com/
+http://windowsmarketplace.com/default.aspx
+http://windowsmarketplace.com/results.aspx?bCatID=442&av=14-697
+http://windsofchange.net/archives/005499.php
+http://windsormedia.blogs.com/lipsticking/2004/10/smart_man_onlin.html
+http://windturbine-analysis.com/index-build.htm
+http://wings.avkids.com/Careers/golf.html
+http://wings.avkids.com/Curriculums/Nature/nature_links.html
+http://winosandfoodies.typepad.com/my_weblog/2005/02/imbb12_taboo_or.html
+http://wintellect.com/WEBLOGS/wintellect/archive/2004/12/23.aspx
+http://wired-vig.wired.com/news/business/0,1367,39526,00.html?tw=wn_story_related
+http://wired.com/wired/archive/2.12/linklater.html
+http://wirednews.com/wired/archive/5.01/ffsupertoys_pr.html
+http://wireless.fcc.gov/services/amateur/callsigns/vanity/faq.html
+http://wireless.ittoolbox.com/nav/t.asp?t=399&p=399&h1=399
+http://wireless.sys-con.com/read/49013.htm
+http://wirelessreview.com/ar/wireless_nice_quiet_young/
+http://wirelessreview.com/mag/wireless_music_games_text/
+http://wireservice.wired.com/wired/story.asp?section=Sports&storyId=1053050
+http://wiscinfo.doit.wisc.edu/arboretum/arbnews/natnotes2004/Winter%20Water%20Walk,%20January%2011,%202004.htm
+http://wise-obs.tau.ac.il/judaism/jewish_astro.html
+http://wisechoiceeducationalservices.com/article2.htm
+http://wiseli.engr.wisc.edu/office_library/WISE.htm
+http://wisplants.uwsp.edu/BotanyNews.html
+http://wistechnology.com/article.php?id=1111
+http://wistechnology.com/article.php?id=1538
+http://witchesblood.blogspot.com/2005_04_01_witchesblood_archive.html
+http://witchinhour.blogspot.com/2004_04_01_witchinhour_archive.html
+http://wizbangblog.com/archives/006156.php
+http://wizmo.blogspot.com/2005/03/ah-quiet-times.html
+http://wlapwww.gov.bc.ca/wat/gws/gwbc/C1011_Thompson_Plateau.html
+http://wma.pvt.k12.ma.us/pages/news.cfm
+http://wmarr9.home.comcast.net/wap.htm
+http://wneurope.com/
+http://womanlabor.blogspot.com/
+http://womansworld.atalink.co.uk/articles/finances/316.html
+http://women.cs.uiuc.edu/
+http://women.indiatimes.com/articleshow/992396.cms
+http://women.msn.com/1176464.armx
+http://womencentral.net/darwin2.html
+http://womeninministry.ag.org/history/index.cfm
+http://womeninministry.ag.org/resources/articles/ministry/min0309_grant2001wim.cfm
+http://womenshealth.about.com/cs/hysterectomy/a/hysterectomy.htm
+http://womenshealth.about.com/cs/menopaus1/a/menopause6.htm
+http://womenshealth.about.com/od/menstruation/
+http://womenshealth.aetna.com/WH/ihtWH/r.WSIHW000/st.36121/t.36149.html
+http://womenshistory.about.com/library/bio/bltruth.htm
+http://womenshistory.about.com/library/ency/blwh_add_entry3.htm
+http://womensissues.about.com/cs/cedaw/
+http://womensissues.about.com/cs/reproductive/a/blmorningafter.htm
+http://womensissues.about.com/od/eatingdisorders/a/bledbshare7.htm
+http://wonder.cdc.gov/wonder/sci_data/mort/english/type_txt/englmort.asp
+http://wonderwinds.com/Great_Adventure/
+http://wongkk.com/general/respect.html
+http://woodrow.mpls.frb.fed.us/pubs/region/95-09/int959.cfm
+http://woodshole.er.usgs.gov/operations/obs/acrup94.html
+http://woorisol.kyungpook.ac.kr/lab/prof/SoftEng/ch9.htm
+http://worcester.indymedia.org/news/2004/09/289.php
+http://wordbytes.org/healing/waiting.htm
+http://wordpress.org/support/topic/33453/rss/
+http://wordprocessing.about.com/od/wordquicktips/qt/autolink.htm
+http://words.grubbykid.com/2005/04/18/union_square_clock.html
+http://wordunheard.com/archives/2005/05/linda_foley_mee.php
+http://work-at-home.momsbreak.com/
+http://work-offshore.com/resume2.htm
+http://workabroad.monster.com/articles/cost/
+http://workabroad.monster.com/articles/esltraining/
+http://workathome.biz-whiz.com/
+http://workers.labor.net.au/59/news82_tafe.html
+http://workhelp.org/index.php?option=content&task=view&id=66
+http://workingknowledge.hbs.edu/item.jhtml?id=3533&t=innovation&noseek=one
+http://workingknowledge.hbs.edu/item.jhtml?id=4855&t=heskett&oid=4836&rid=4855&hid=-1&aid=-1
+http://workinglife.typepad.com/daily_blog/2005/06/further_reflect.html
+http://workingsmarter.typepad.com/
+http://workingsmarter.typepad.com/my_weblog/
+http://workingsmarter.typepad.com/my_weblog/in_the_news/
+http://workplace.samhsa.gov/fedprograms/MandatoryGuidelines/MG04132004.htm
+http://worksite.actu.asn.au/showall.php3?secid=12
+http://world-affairs.com/34merger.htm
+http://world-evangelism.com/evcost.htm
+http://world-information.org/wio/readme/992006691/1078488055
+http://world.std.com/~ahern/CIGOrept.htm
+http://world.std.com/~eshu/osc/bylawsdf.htm
+http://world.std.com/~eshu/osc/oscfaq.htm
+http://world.std.com/~griesngr/SUSSEX.html
+http://world.std.com/~rkarash/GW-OL/
+http://world.std.com/~wij/hiv-neg/Appendix-B.html
+http://world.std.com/~wij/hiv-neg/Chapter13.html
+http://worldcommunity.com/htj/htj_0203.htm
+http://worldculinaryinstitute.com/hospitality/hospitality1.html
+http://worldfilm.about.com/cs/festival1/a/phillyflmfest03.htm
+http://worldfilm.about.com/od/newdvds/
+http://worldfootbag.com/catalog2/showgroup/clothing
+http://worldforge.org/worlds/dural/gazetteer/ardmor/mostice/
+http://worldhistoryconnected.press.uiuc.edu/2.2/stearns.html
+http://worldnetdaily.com/news/article.asp?ARTICLE_ID=39418
+http://worldnow.healthology.com/focus_article.asp?f=elderly&c=elderly_homeimprovement&b=worldnow
+http://worldofends.com/
+http://worldofwonder.net/archives/2005/Jun/08/exclusive_on_the_brown_low.wow
+http://worldpages-ads.com/bookindex/HUMB/k.html
+http://worldsofpossibility.blogspot.com/
+http://worldtradeaftermath.com/wta/older_updates.asp
+http://worldwatchdaily.org/
+http://worldwide.typepad.com/schoolhouse/2003/09/landmark_breakt.html
+http://worldwideaddiction.com/articles/diseaseconcept.htm
+http://worldwideaddiction.com/articles/rebuild.htm
+http://wouldashoulda.com/
+http://wowirondragons.org/powmia.html
+http://wp.rutgers.edu/teachers/101/sample_assignments/sa_nussbaum.html
+http://wpblog.ohpinion.com/
+http://wpblog.ohpinion.com/index.php?cat=8
+http://wpmc1.wpafb.af.mil/pages/hbo/pthndbk.htm
+http://wps.prenhall.com/bp_atkinson_mgmtacct_4/0,,973943-,00.utf8.html
+http://wrc.iewatershed.com/education-coast-05-b.php
+http://wrestlegirl.com/gnews1291.htm
+http://writ.news.findlaw.com/dorf/20041124.html
+http://writ.news.findlaw.com/grossman/20020611.html
+http://writ.news.findlaw.com/grossman/20040927.html
+http://writ.news.findlaw.com/hamilton/20010802.html
+http://writ.news.findlaw.com/leavitt/20040922.html
+http://writersalmanac.publicradio.org/docs/00_09_25.htm
+http://writersalmanac.publicradio.org/docs/98_03_23.htm
+http://writersrealm0.tripod.com/stories/02-2.htm
+http://writing-program.uchicago.edu/resources/grammar.htm
+http://writing.colostate.edu/references/teaching/esl/listening.cfm
+http://writing.fsu.edu/cwc/sp02/cel41452/Death.html
+http://writing.upenn.edu/cw/courses04c.html
+http://writing4success.com/copywriting_features_into_benefits_td.htm
+http://writingcenters.org/
+http://writingcraft.deep-magic.net/
+http://wronginjapan.blogspot.com/
+http://wrrc.ucdavis.edu/baby_book/clock.html
+http://wrt-brooke.syr.edu/cgbvb/about.html
+http://wrt-intertext.syr.edu/ii1/curtis.html
+http://wrt-intertext.syr.edu/ii1/yu.html
+http://wrt.syr.edu/uc/archivedsyllabi/thorley205.html
+http://ws.web.arizona.edu/ws200/fall97/grp16/part5.htm
+http://wsdtx.org/bulletin/graduation.php
+http://wso.williams.edu/blog/main?wso=dkane
+http://wso.williams.edu/blog/main?wso=rgarcia
+http://wso.williams.edu/blog/view?id=1883
+http://wso.williams.edu/orgs/cc/minutes/11-20-02.htm
+http://wsq.nichebox.com/
+http://wsucougars.collegesports.com/sports/w-crew/spec-rel/012505aae.html
+http://wths.tn.org/wths.papers.html
+http://wtoctv.com/Global/story.asp?S=2979716&nav=0qq5BnCg
+http://wuphysicians.wustl.edu/dept.asp?pageID=18&ID=8
+http://wuphysicians.wustl.edu/dept_print.asp?ID=8&pageID=18
+http://wuphysicians.wustl.edu/page.asp?pageID=145&NavID=4
+http://wuphysicians.wustl.edu/physician2.asp?PhysNum=3013&deptID=5&divisionID=7
+http://wusatv9.com/news/news_article.aspx?storyid=40026
+http://wusb.fm/archive/articles/Hitchcock.html
+http://wvuminute.wvu.edu/Archive/?type=date
+http://ww1.mid-day.com/columns/farahbaria/parentthesis/2004/october/93768.htm
+http://ww1.mid-day.com/columns/vir_sanghvi/2005/april/108053.htm
+http://ww1.oppd.com/edu/environment/index.cfm
+http://ww1.sundayherald.com/38340
+http://ww1.sundayherald.com/47481
+http://ww2.asme.org/cfforum2000/viewmessages.cfm?forum=32&topic=328
+http://ww2.asme.org/pd/courseDetail.cfm?CO_ID=1010
+http://ww2.asme.org/pd/courseDetail.cfm?CO_ID=5
+http://ww2.asme.org/pd/courseDetail.cfm?CO_ID=662
+http://ww2.asme.org/pd/courseDetail.cfm?CO_ID=809
+http://ww2.heartandstroke.ca/Page.asp?PageID=548&CategoryID=23&Src=about
+http://ww2.lafayette.edu/~hollidac/pastresstuds.html
+http://ww3.weatherbug.com/spbg/default.asp?cid=21
+http://ww4.americanbaby.com/ab/story.jhtml?storyid=/templatedata/ab/story/data/AB0704FirstAid.xml
+http://wwcoco.com/cfids/jackiisolation.html
+http://wwics.si.edu/index.cfm?fuseaction=topics.home&topic_id=1413
+http://wwics.si.edu/index.cfm?fuseaction=wq.essay&essay_id=115960
+http://wwics.si.edu/index.cfm?topic_id=1408&fuseaction=topics.event&event_id=128775
+http://wwics.si.edu/index.cfm?topic_id=1411&fuseaction=topics.event_summary&event_id=101918
+http://wwics.si.edu/index.cfm?topic_id=1411&fuseaction=topics.event_summary&event_id=116883
+http://wwics.si.edu/index.cfm?topic_id=1417&fuseaction=topics.text_1417&topicid=1417
+http://wwics.si.edu/index.cfm?topic_id=1422&fuseaction=topics.publications&doc_id=18755&group_id=7427
+http://wwics.si.edu/index.cfm?topic_id=1422&fuseaction=topics.publications&doc_id=8580&group_id=7427
+http://wwics.si.edu/index.cfm?topic_id=6105&fuseaction=topics.event_summary&event_id=113952&doc_id=121568
+http://www-1.ibm.com/industries/financialservices/doc/content/news/newsletter/999394103.html
+http://www-1.ibm.com/industries/media/doc/content/casestudy/357105111.html?g_type=rhc
+http://www-106.ibm.com/developerworks/blogs/dw_blog_comments.jspa?blog=351&entry=81108&ca=drs-bl
+http://www-106.ibm.com/developerworks/grid/library/dw-proto2/
+http://www-106.ibm.com/developerworks/library/gr-watch2.html
+http://www-106.ibm.com/developerworks/library/j-test.html
+http://www-106.ibm.com/developerworks/library/os-ecnbeans/?ca=dgr-lnxw41NetBeans
+http://www-106.ibm.com/developerworks/library/wa-probab/?ca=dgr-lnxw03PDL
+http://www-106.ibm.com/developerworks/library/ws-basicprofile11.html
+http://www-106.ibm.com/developerworks/linux/library/l-ipaq.html
+http://www-106.ibm.com/developerworks/webservices/library/ws-peer1.html?dwzone=ws
+http://www-106.ibm.com/developerworks/webservices/library/ws-soapenc/
+http://www-106.ibm.com/developerworks/xml/library/x-dita3/
+http://www-106.ibm.com/developerworks/xml/library/x-soapcl/
+http://www-106.ibm.com/developerworks/xml/library/x-xdxqry.html
+http://www-128.ibm.com/developerworks/blogs/dw_blog_comments.jspa?blog=399&entry=83227
+http://www-128.ibm.com/developerworks/java/library/j-statcvs/
+http://www-128.ibm.com/developerworks/linux/library/l-pow-devoverview/?ca=drs-1505
+http://www-128.ibm.com/developerworks/power/library/pa-unrollav1/
+http://www-128.ibm.com/developerworks/websphere/techjournal/0410_col_willenborg/0410_col_willenborg.html
+http://www-132.ibm.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=-840&langId=-1&storeId=1&partNumber=92P3429
+http://www-132.ibm.com/webapp/wcs/stores/servlet/ProductDisplay?productId=8667810&storeId=1&langId=-1&catalogId=-840
+http://www-132.ibm.com/webapp/wcs/stores/servlet/ProductDisplay?productId=8667812&storeId=1&langId=-1&catalogId=-840
+http://www-136.ibm.com/developerworks/rational/library/4127.html
+http://www-2.cs.cmu.edu/People/rgs/avon-XXVII.html
+http://www-2.cs.cmu.edu/People/rgs/scarp-XV.html
+http://www-2.cs.cmu.edu/afs/cs/Web/People/dst/Library/Shelf/wakefield/testimony-10.html
+http://www-2.cs.cmu.edu/afs/cs/project/jair/pub/volume21/stanley04a-html/node7.html
+http://www-2.cs.cmu.edu/~NatProg/marmalade.html
+http://www-2.cs.cmu.edu/~awm/tutorials/
+http://www-2.cs.cmu.edu/~dst/Library/Shelf/atack/bs7-3.htm
+http://www-2.cs.cmu.edu/~dst/Library/Shelf/xenu/xenu-03.html
+http://www-2.cs.cmu.edu/~dst/Library/Shelf/xenu/xenu-10.html
+http://www-2.cs.cmu.edu/~dst/Secrets/E-Meter/courtfile-7-71-mn.html
+http://www-2.cs.cmu.edu/~dst/Secrets/E-Meter/fuller.html
+http://www-2.cs.cmu.edu/~ggordon/
+http://www-3.627cars.com/
+http://www-306.ibm.com/software/info/middleware/workplace/index.jsp
+http://www-306.ibm.com/software/info/workplace/live/
+http://www-306.ibm.com/software/pervasive/news/press_releases/anchors_0501.shtml
+http://www-306.ibm.com/software/success/cssdb.nsf/CS/DNSD-63HJKZ?OpenDocument&Site=default
+http://www-306.ibm.com/software/swnews/swnews.nsf/n/jmae5rfja2?OpenDocument&Site=default
+http://www-306.ibm.com/software/swnews/swnews.nsf/n/lsan69e5rl?OpenDocument&Site=default
+http://www-afa.adm.ohio-state.edu/u-majors/FLUIDPOW.HTML
+http://www-ang.kfunigraz.ac.at/~katzer/engl/Rosa_dam.html
+http://www-anw.cs.umass.edu/~rich/book/1/node7.html
+http://www-atdp.berkeley.edu/sec.faq.html
+http://www-biology.ucsd.edu/faculty/holway.html
+http://www-cad.eecs.berkeley.edu/~vinayak/TIJ/AppendixA.html
+http://www-cdf.fnal.gov/upgrades/daq_trig/trigger/svt/Beam/Docs/BeamAlignment_LR.html
+http://www-cgi.cnn.com/US/9510/megamarch/10-16/clinton/update/
+http://www-chancellor.ucsd.edu/letters08_16.html
+http://www-chaos.umd.edu/research.html
+http://www-classes.usc.edu/engr/ise/582/2002/old.html
+http://www-cmod.psfc.mit.edu/cmod/shot_display.php?shot=1010719014
+http://www-cs-faculty.stanford.edu/~knuth/mmix.html
+http://www-cs-students.stanford.edu/~amitp/Articles/AStar3.html
+http://www-cs-students.stanford.edu/~amitp/gameprog.html
+http://www-cs.stanford.edu/News/
+http://www-cs.stanford.edu/News/index.php?printer_friendly=true
+http://www-cse.ucsd.edu/users/goguen/misc/ab2.html
+http://www-cvrl.ucsd.edu/osa/
+http://www-dateline.ucdavis.edu/012100/DL_growth.html
+http://www-db.stanford.edu/pub/voy/museum/pictures/IBM.html
+http://www-db.stanford.edu/~sergey/dic.html
+http://www-distance.syr.edu/ndacelech1.html
+http://www-dse.doc.ic.ac.uk/events/policy-2001/home.html
+http://www-dse.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/sab/report.html
+http://www-ee.eng.hawaii.edu/Courses/EE150/Book/chap15/section2.1.2.html
+http://www-eng.expocentr.ru/site/559/
+http://www-envirinfo.llnl.gov/
+http://www-formal.stanford.edu/jmc/nature/node17.html
+http://www-formal.stanford.edu/jmc/progress/marxism.html
+http://www-formal.stanford.edu/jmc/robotandbaby/robotandbaby.html
+http://www-fp.mcs.anl.gov/otc/Guide/OptWeb/continuous/constrained/stochastic/
+http://www-fp.mcs.anl.gov/~lusk/aurora/aurora.app/subsection3.5.2.html
+http://www-glast.slac.stanford.edu/Elec_DAQ/ELX_test/content/meetings/etg_060704.htm
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Beginnings_of_set_theory.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Brachistochrone.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Golden_ratio.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Greek_astronomy.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Light_2.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Maxwell_House.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Nine_chapters.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Perfect_numbers.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Quadratic_etc_equations.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Special_relativity.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/The_four_colour_theorem.html
+http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Voting.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Abel.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Archimedes.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Artin.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Auslander.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Bacon.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Batchelor.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Berkeley.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Bohr_Niels.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Born.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Brahe.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Brauer.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Cardan.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Chebyshev.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Chrystal.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Courant.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Cusa.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Dedekind.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Einstein.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Euclid.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Eudoxus.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Faraday.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/FitzGerald.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Fourier.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Fresnel.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Friedmann.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Gregory.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Hall.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Hemchandra.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Hipparchus.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Hooke.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Hutton_James.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Jeans.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Khayyam.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Lagrange.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Littlewood.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Lobachevsky.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Lovelace.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/MacCullagh.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Madhava.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Maxwell.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Newton.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Nightingale.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Pascal.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Poisson.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Richmond.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Salmon.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Simson.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Stokes.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Tait.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Taylor.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Thomson.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Tukey.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Turing.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Watson.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Wedderburn.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Whitehead.html
+http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Wiener_Norbert.html
+http://www-groups.dcs.st-and.ac.uk/~history/PrintHT/Beginnings_of_set_theory.html
+http://www-groups.dcs.st-and.ac.uk/~history/PrintHT/Brachistochrone.html
+http://www-histecon.kings.cam.ac.uk/eventsrecent.htm
+http://www-hl.syr.edu/depts/MES/PastEvents.htm
+http://www-hoover.stanford.edu/presswebsite/dstudies.html
+http://www-hoover.stanford.edu/pubaffairs/newsletter/01winter/epp.html
+http://www-hoover.stanford.edu/publications/books/electricity.html
+http://www-hoover.stanford.edu/publications/he/22/22g.html
+http://www-ieem.ust.hk/dfaculty/liming/silk/
+http://www-ilo-mirror.cornell.edu/public/english/bureau/inf/features/05/flexicurity.htm
+http://www-ilo-mirror.cornell.edu/public/english/bureau/inf/pkits/wer5.htm
+http://www-ilo-mirror.cornell.edu/public/english/bureau/leg/agreements/switz.htm
+http://www-inst.eecs.berkeley.edu/~cs162/Nachos/chess.shtml
+http://www-irps.ucsd.edu/about/innews2002/ajc042102.php
+http://www-irps.ucsd.edu/about/tr061505.php
+http://www-istp.gsfc.nasa.gov/Education/FAQs4.html
+http://www-istp.gsfc.nasa.gov/stargaze/Svenus1.htm
+http://www-leibniz.imag.fr/perso/r7/prost/public_html/Bibliographie_personnelle.html
+http://www-leland.stanford.edu/~rmahony/Breastfeeding.html
+http://www-med.stanford.edu/shs/update/archives/DEC2003/sorensen.html
+http://www-med.stanford.edu/shs/update/archives/aug2000/welch.html
+http://www-med.stanford.edu/shs/update/archives/mar2000/pres.html
+http://www-micro.msb.le.ac.uk/MBChB/6a.html
+http://www-mpl.ucsd.edu/cg/people/rparker.html
+http://www-msu.mcmaster.ca/events/events.php?cmd=view&date=2005-05-19
+http://www-msu.mcmaster.ca/events/events.php?cmd=view&date=2005-06-02
+http://www-msu.mcmaster.ca/events/events.php?cmd=view&date=2005-06-09
+http://www-msu.mcmaster.ca/events/events.php?cmd=view&date=2005-06-16
+http://www-msu.mcmaster.ca/events/events.php?cmd=view&date=2005-06-23
+http://www-msu.mcmaster.ca/events/events.php?cmd=view&date=2005-06-30
+http://www-nrd.nhtsa.dot.gov/departments/nrd-01/presentations/SAE.html
+http://www-nrd.nhtsa.dot.gov/departments/nrd-11/childsafety/chap_1.htm
+http://www-p24.lanl.gov/OMEGA/mainpage.html
+http://www-pao.ksc.nasa.gov/kscpao/briefing/sts110/mission.htm
+http://www-pao.ksc.nasa.gov/kscpao/history/apollo/apollo-13/apollo-13.htm
+http://www-personal.ksu.edu/~kbmill/
+http://www-personal.umd.umich.edu/~jonsmith/disease.html
+http://www-personal.umich.edu/~acm/WIG/WIG13.html
+http://www-personal.umich.edu/~airyn/spirit.html
+http://www-personal.umich.edu/~alandear/glossary/d.html
+http://www-personal.umich.edu/~alandear/glossary/m.html
+http://www-personal.umich.edu/~alandear/glossary/o.html
+http://www-personal.umich.edu/~alandear/glossary/t.html
+http://www-personal.umich.edu/~alicyn/HFWEA.html
+http://www-personal.umich.edu/~bcash/critiicalanalysis.html
+http://www-personal.umich.edu/~bgoodsel/venezuelatalk.htm
+http://www-personal.umich.edu/~dallan/nre220/outline23.htm
+http://www-personal.umich.edu/~jaylemke/papers/Identity/IDENTITY3.htm
+http://www-personal.umich.edu/~lormand/agenda/0109/datinggame.htm
+http://www-personal.umich.edu/~lormand/phil/epist/how2search4truth.htm
+http://www-personal.umich.edu/~mfcraig/simons_place/news.html
+http://www-personal.umich.edu/~rtanter/W96PS353S1/Peres.Shimon
+http://www-personal.umich.edu/~velleman/Practical_Reflection/chapter2.html
+http://www-phil.tamu.edu/~gary/intro/paper.paley.html
+http://www-pors.hit.no/tf/icee01/iceesc.htm
+http://www-psych.stanford.edu/~hmarkus/articles/place_matters.htm
+http://www-relg-studies.scu.edu/facstaff/spohn/
+http://www-rohan.sdsu.edu/dept/sdsutrio/PCI-CP.html
+http://www-rohan.sdsu.edu/doc/oracle/server803/A54653_01/hs_ch8.htm
+http://www-rohan.sdsu.edu/faculty/feenberg/kawabata.html
+http://www-rohan.sdsu.edu/~3gleep6/rrsd/runsp.html
+http://www-safety.deas.harvard.edu/textonly/min02-01.html
+http://www-saps.plantsci.cam.ac.uk/worksheets/ssheets/ssheet11.htm
+http://www-scf.usc.edu/~vsa/opportunities.htm
+http://www-sci.pac.dfo-mpo.gc.ca/mehsd/sea_lice/2004/2004_intro_e.htm
+http://www-spof.gsfc.nasa.gov/Education/FAQs3.html
+http://www-spof.gsfc.nasa.gov/Education/whmfield.html
+http://www-sul.stanford.edu/catdb/alldata.html
+http://www-sul.stanford.edu/depts/physics/collections/newbooksapril05.html
+http://www-sul.stanford.edu/depts/ssrg/africa/boers.html
+http://www-sul.stanford.edu/depts/ssrg/africa/labor.html
+http://www-tec.open.ac.uk/eeru/natta/
+http://www-tech.mit.edu/Shakespeare/1henryvi/full.html
+http://www-tech.mit.edu/Shakespeare/lear/lear.5.3.html
+http://www-tech.mit.edu/Shakespeare/lll/lll.4.3.html
+http://www-tech.mit.edu/V112/N12/mhockey.12s.html
+http://www-tech.mit.edu/V121/N11/11RCupdate.11n.html
+http://www-ucdmag.ucdavis.edu/fall02/feature_1.html
+http://www-ucsu.colorado.edu/GovDocs/UCSU%20bylaws.htm
+http://www-unix.gridforum.org/mail_archive/dais-wg/2005/01/msg00003.html
+http://www-unix.gridforum.org/mail_archive/dais-wg/2005/01/msg00004.html
+http://www-unix.gridforum.org/mail_archive/dais-wg/2005/01/msg00005.html
+http://www-unix.mcs.anl.gov/~bacon/guide-verify.html
+http://www-users.cs.umn.edu/~baoquan/pubs.html
+http://www-users.cs.york.ac.uk/~kimble/teaching/Sogn_og_Fjordane/KM_and_CoPs.html
+http://www-users.cs.york.ac.uk/~kimble/teaching/hi-2/CoPs.html
+http://www-users.med.cornell.edu/~jdvicto/nips2000old.html
+http://www-users.york.ac.uk/~socs203/luddites.htm
+http://www-wfau.roe.ac.uk/sss/halpha/haspurious_images.html
+http://www-writing.berkeley.edu/TESL-EJ/ej17/r15.html
+http://www-writing.berkeley.edu/TESL-EJ/ej21/f1.html
+http://www-wsl.state.wy.us/sis/wyfdlc/oct95mtg.html
+http://www-zeus.desy.de/physics/sfew/PUBLIC/sfew_results/preliminary/british_royal00/
+http://www.007b.com/breast_gallery.php
+http://www.00de.de/archive/topic/19502-1-Ketamine-Leecher-Mod-v9-Final.html
+http://www.0xdeadbeef.com/html/2002/07/
+http://www.0xdeadbeef.com/html/2003/01/
+http://www.0xdeadbeef.com/html/2005/01/
+http://www.1-language.com/library/sherlockholmes/mantwistedlip3.htm
+http://www.100.nist.gov/growth.htm
+http://www.10000birds.com/may2004.htm
+http://www.1000files.com/Business_and_Finance/Docflow/Procedure_Charter_Standard_3866_Review.html
+http://www.1000ventures.com/business_guide/crosscuttings/cross-functional_expertise.html
+http://www.1000ventures.com/ten3_operations/ten3_products.html
+http://www.1001-hairstyles.com/links/health.htm
+http://www.100best-affiliate-programs.com/tutorials9.html
+http://www.100megsfree4.com/farshores/ufojd.htm
+http://www.100webads.com/
+http://www.101hollywood.com/3suicide/chapk.htm
+http://www.101hollywood.com/3suicide/chapzb.htm
+http://www.101offshoreoiljobs.com/
+http://www.101offshoreoiljobs.com/offshore2.htm
+http://www.101writinganswers.com/links/helpandassistance.html
+http://www.1031commercialproperties.com/singletenantpropertyportfolios.htm
+http://www.1060research.com/license/faq.html
+http://www.1077theend.com/
+http://www.1077theend.com/community/communitycalendar.asp?MONTHADD=0
+http://www.1099.com/c/ar/ta/speechify_t028.html
+http://www.1099.com/c/co/gw/na/naustin002.html
+http://www.1099.com/c/co/in/insanity012.html
+http://www.1099.com/c/co/in/insanity021.html
+http://www.10best.com/Bloomington;Normal/Leisure_Activities/index.html
+http://www.10best.com/Chicago/Personal_Services/Personal_Services/
+http://www.10ktruth.com/the_races/marathonrelay.htm
+http://www.10ktruth.com/track/preclassic.htm
+http://www.10xmarketing.com/About-Us/Executive-Team/Executive-Team-3.html
+http://www.1115.org/
+http://www.1115.org/index.php?cat=28
+http://www.111minnagallery.com/archives/2005_01.html
+http://www.11211magazine.com/hiphit4.html
+http://www.11alive.com/
+http://www.1206am.com.au/news.asp
+http://www.123child.com/fall/hall.html
+http://www.123helpme.com/assets/3803.html
+http://www.123infinity.com/ethical_dilemmas.html
+http://www.123movers.com/company.asp?c=eastwest_moving&s=residential&z=92101
+http://www.123youth.com/article43266.html
+http://www.12gracestreet.com/
+http://www.12travel.com/aboutus/faq.html
+http://www.1311events.net/emblem.html
+http://www.1311events.net/melodyfakers.html
+http://www.1311events.net/rockandpop.html
+http://www.1311events.net/sttsource.html
+http://www.1335.com/unionjack.html
+http://www.135steward.org/rights.htm
+http://www.15seconds.com/
+http://www.15seconds.com/faq/Security/653.htm
+http://www.15thwisconsin.net/15brfhis.htm
+http://www.16horsepower.com/lyricsother.html
+http://www.1704.deerfield.history.museum/popups/scenes.do?shortName=Parting
+http://www.1729.com/consciousness/feelings.html
+http://www.1729.com/music/whatismusic.html
+http://www.1800clean54.com/knowledge/response/default.asp
+http://www.1800mobiles.com/f8e471-dl.html
+http://www.1800probate.com/probate-lawyer/south-dakota.html
+http://www.1800skyride.com/BalloonRides/Testimonials/
+http://www.1811house.com/accommodations.html
+http://www.187ridefind.com/taxbreaks.html
+http://www.1888pets911.org/forthedogs/7habits.php
+http://www.18software.com/hawk.htm
+http://www.1914-1918.net/BATTLES/bat13_loos/bat13_actual2.htm
+http://www.1914-1918.net/sacredground/cambrai/flesquieres.htm
+http://www.1914-1918.net/women_orgs.htm
+http://www.19thc-artworldwide.org/autumn_04/reviews/sik.html
+http://www.1aiel.com/risky.htm
+http://www.1automationwiz.com/
+http://www.1chapter.com/step2.cfm?Cat=Counseling&Sub=Addictions
+http://www.1fish.co.uk/fun/competitions.htm
+http://www.1id.army.mil/1ID/safety/Cold_weather_Injury_prevention/hypothermia.htm
+http://www.1site.info/
+http://www.1src.com/forums/archive/index.php/t-4647.html
+http://www.1srg.org/Contributed-Materials/HowToAvoidGettingLost.htm
+http://www.1st-in-synthetics.com/
+http://www.1st-in-synthetics.com/amsoil_opportunity.htm
+http://www.1st-self-sunless-fake-indoor-discount-tanning-lotion-products.com/
+http://www.1st-writer.com/CareerResources.htm
+http://www.1st4ukdirectorjobs.co.uk/Pages/career_tips_cv_tips.asp
+http://www.1stchoicecorporategifts.com/b/index.php?m=200411
+http://www.1sthowtoworkathome.com/advertising-lead-generation-02.html
+http://www.1sthowtoworkathome.com/layoff-news-April-2004.html
+http://www.1stindustrialdirectory.com/Air_Conditioning_Supplies_and_Parts/Air_Conditioning_Supplies_and_Parts.html
+http://www.1stindustrialdirectory.com/HVAC_Equipment_and_Supplies/HVAC_Equipment_and_Supplies.html
+http://www.1stvoice.com/quartet.html
+http://www.1to1.com/Glossary.aspx
+http://www.1to1.com/view.aspx?DocID=28670
+http://www.1up.com/do/previewPage?cId=3138507
+http://www.1way2god.net/2peter.html
+http://www.1worldglobes.com/globereferencetool.htm
+http://www.2-tiersoftware.com/index.2ts?page=affsignup&sub=commission
+http://www.2000greetings.com/inspire30.htm
+http://www.201mass.com/modules.php?name=Forums&file=viewtopic&p=10654
+http://www.2020site.org/trees/cypress.html
+http://www.20by20room.com/2005/01/how_rpg_rules_w.html
+http://www.20six.co.uk/Cllr_Andrew_Brown
+http://www.20six.co.uk/Marshall/archive/2003/07/
+http://www.20six.co.uk/Sammyface/archive/2004/09/
+http://www.20six.co.uk/black_box
+http://www.20six.co.uk/black_box/archive/2003/10/13/zz4al5xy4ye.htm
+http://www.20six.co.uk/gargi
+http://www.20six.co.uk/lonewalker/archive/2005/02/
+http://www.20six.co.uk/thinkingtony
+http://www.20six.co.uk/vodka_dothiepin
+http://www.21stcenturysciencetech.com/articles/chernobyl.html
+http://www.21stcenturysciencetech.com/articles/summ01/cold_fusion/cold_fusion.html
+http://www.23-skidoo.com/list/spaceflight.html
+http://www.2357.a-tu.net/index.php?link=Links
+http://www.24-7pressrelease.com/view_press_release.php?rID=6469
+http://www.24-7valencia.com/
+http://www.246.dk/teachamney.html
+http://www.246.dk/teachronology.html
+http://www.246.dk/teatbot.html
+http://www.24carat.co.uk/humourandjokes.html
+http://www.24drtravel.com/reference/library/blood_care/transfusions_general.asp
+http://www.24fpsmagazine.com/Archive/Matinee.html
+http://www.24hdc.com/
+http://www.24hourmuseum.org.uk/museum_gfx_en/AM10448.html
+http://www.24hourmuseum.org.uk/museum_gfx_en/AM12247.html
+http://www.24hourmuseum.org.uk/museum_gfx_en/AM71.html
+http://www.24hourmuseum.org.uk/museum_gfx_en/MW899.html
+http://www.24hourmuseum.org.uk/nwh_gfx_en/ART17649.html
+http://www.24hourmuseum.org.uk/nwh_gfx_en/ART24974.html
+http://www.24hourmuseum.org.uk/trlmi_txo_en/TRA4.html
+http://www.24hourmuseum.org.uk/trlout_gfx_en/EMMS.html
+http://www.24hourmuseum.org.uk/trlout_gfx_en/WALES3.html
+http://www.24hourscholar.com/p/articles/mi_m2005/is_n4_v31/ai_20870395
+http://www.2bangkok.com/news04n.shtml
+http://www.2become1weddings.com/Articles/detail~iData~14~iCat~2224~iChannel~2~nChannel~Articles.asp
+http://www.2blowhards.com/archives/002049.html
+http://www.2camels.com/worlds-biggest-parties/
+http://www.2dobeforeidie.com/mrrogers.htm
+http://www.2f3.com/bulletin0211.asp
+http://www.2haveand2hold.com/
+http://www.2nd-tier.com/articles/showfax/
+http://www.2ndlaw.com/obstructions.html
+http://www.2ontario.com/welcome/codb_301.asp
+http://www.305hiphop.com/modules.php?name=News&file=article&sid=798
+http://www.30goodminutes.org/csec/sermon/coffin_3519.htm
+http://www.30music.com/rev.php?rev=1023
+http://www.321free.com/listings.php?catid=8&subcat=48
+http://www.365englandfans.com/your_stories/shizuoka.htm
+http://www.37signals.com/
+http://www.37signals.com/svn/archives/001060.php
+http://www.37signals.com/svn/archives/001084.php?35
+http://www.37signals.com/svn/archives2/google_web_accelerator_hey_not_so_fast_an_alert_for_web_app_designers.php
+http://www.37signals.com/svn/archives2/some_notes_on_the_building_of_codezoo.php
+http://www.39reasons.com/
+http://www.3ammagazine.com/fiction/2003/jun/stages.html
+http://www.3ammagazine.com/nonfiction/2005/feb/secularism.html
+http://www.3d.sk/
+http://www.3dactionplanet.com/bridgecommander/faq/general.shtml
+http://www.3dactionplanet.com/undying/help/walkthrough/aaron.shtml
+http://www.3dgamers.com/articles/more/35/
+http://www.3dmonth.org/nyrc_ideas.cfm
+http://www.3drealms.com/index.shtml
+http://www.3dshoots.com/archery_reviews.html
+http://www.3dsystems.com/products/solidimaging/accura/index.asp
+http://www.3dv.com/dvsoftware/pyro/pyro.html
+http://www.3dviewmax.com/page71.htm
+http://www.3g.co.uk/PR/Feb2005/9048.htm
+http://www.3g.co.uk/PR/March2003/5022.htm
+http://www.3gnewsroom.com/phorum-3.4.8a/read.php?f=34&i=9442&t=9442
+http://www.3i.com/media/fj.html
+http://www.3m.com/meetingnetwork/articles_advice/marjorie/03-spring.html
+http://www.3m.com/us/mfg_industrial/indtape/
+http://www.3oddballz.com/hoaxes/
+http://www.3r.ie/
+http://www.3rdearmusic.com/forum/forumfeb03/cricket.html
+http://www.3rdedition.org/agimimnon/viewer.asp?ID=87
+http://www.3rdedition.org/merricb/musings/2004_04_01_musings_archive.htm
+http://www.3rdparty.org/forum/Forum17/HTML/000015.html
+http://www.3vb.com/pgs-members/m_gmitchell.shtml
+http://www.4-11.org/books/1thes/1th12.html
+http://www.4-11.org/books/2thes/2th06.html
+http://www.4-safety.com/Lifts.htm
+http://www.40k.org.uk/blog/2004_06_01_old
+http://www.40konline.com/community/index.php/topic,57063.0.html
+http://www.411kids.org/inspiration.htm
+http://www.419eater.com/html/samuel_eze.htm
+http://www.43folders.com/2004/09/quicksilver_mov.html
+http://www.43folders.com/2004/11/hack_your_way_o_1.html
+http://www.43folders.com/2004/12/devonthink_inte.html
+http://www.43folders.com/2005/05/cringebusting_y.html
+http://www.43folders.com/2005/05/impressive_pape.html
+http://www.43folders.com/2005/05/review_scott_be.html
+http://www.43things.com/entries/view/26754
+http://www.456bereastreet.com/archive/200410/office_work_environment/
+http://www.456bereastreet.com/archive/200411/quotations_and_citations_quoting_text/
+http://www.456bereastreet.com/archive/200411/quotations_and_citations_quoting_text/?q=p
+http://www.456bereastreet.com/archive/200501/the_writing_process/
+http://www.456bereastreet.com/archive/200502/basics_of_search_engine_optimisation.html
+http://www.456bereastreet.com/archive/200502/basics_of_search_engine_optimisation/
+http://www.456bereastreet.com/archive/200504/definitive_solution_to_image_replacement/
+http://www.456bereastreet.com/archive/200506/customising_custom_corners_and_borders/
+http://www.456bereastreet.com/archive/200506/the_bullhorns_and_shortterm_thinking/
+http://www.456bereastreet.com/lab/developing_with_web_standards/css/
+http://www.456bereastreet.com/lab/developing_with_web_standards/full/
+http://www.461st.org/Missions/August1944.htm
+http://www.48north.com/mar2000/acinsights.htm
+http://www.4barsrest.com/articles/2005/art431.asp
+http://www.4children.org/parents.htm
+http://www.4degreez.com/quotes/mquotes_education_d.html
+http://www.4developers.com/news/
+http://www.4developers.com/ts/
+http://www.4girls.gov/SpeakUp/AllComments.cfm?TopicID=57
+http://www.4girls.gov/body/period.htm
+http://www.4girls.gov/nutrition/bonehealth.htm
+http://www.4hearingloss.com/archives/2005/06/gift_of_hearing.html
+http://www.4hoteliers.com/4hots_fshw.php?mwi=532
+http://www.4hotels.co.uk/uk/hotels/theoldbridge.html
+http://www.4hurtingchristians.com/i_need_a_cure_because_i_am_suffering_from_epilepsy.html
+http://www.4husablogs.org/CCN/
+http://www.4jobs.com/JS/General/Job.asp?id=3460141
+http://www.4jobs.com/JS/General/Job.asp?id=3460142
+http://www.4law.co.il/sar1.htm
+http://www.4literature.net/Washington_Irving/Widow_and_Her_Son/
+http://www.4ni.co.uk/listing.asp?cat=848&style=0&company=89217&mb=391057&level1=9
+http://www.4p8.com/eric.brasseur/solid_rocket_motor.html
+http://www.4peaks.com/fotrails.htm
+http://www.4qd.co.uk/faq/bmnc3.html
+http://www.4rfv.co.uk/brieflisting.asp?scategory=216&company=10587&start=0
+http://www.4rfv.co.uk/default.asp
+http://www.4rfv.co.uk/fulllisting.asp?scategory=150
+http://www.4seasonsford.biz/service.htm
+http://www.4thfest.org/attend_faq.asp
+http://www.4thfest.org/donate_volunteer.asp
+http://www.4thmichigan.com/journal_of_james_houghton.htm
+http://www.4to40.com/folktales/index.asp?article=folktales_roshnisfeast
+http://www.4ukshopping.co.uk/
+http://www.4um.com/ireland/
+http://www.4woman.gov/faq/bloodpress.htm
+http://www.4woman.gov/faq/coronary.htm
+http://www.4woman.gov/faq/perimenopause.htm
+http://www.4woman.gov/newsletter/2004.01.htm
+http://www.4woman.gov/owh/international.htm
+http://www.4woman.gov/pypth/articles/aa_check_it_out.html
+http://www.4zzzfm.org.au/services/index.cfm
+http://www.50birds.com/dfeedingbirds.htm
+http://www.50cups.com/strange/brew/0009.asp
+http://www.50minutehour.net/
+http://www.50minutehour.net/archive/2005_01_01_index.htm
+http://www.50plus.org/survey%20results.htm
+http://www.50plushealth.co.uk/index.cfm?articleid=507
+http://www.50states.com/bird/goldfinc.htm
+http://www.50states.com/facts/ndakota.htm
+http://www.50years.org/cms/ejn/story/114
+http://www.50years.org/cms/ejn/story/250
+http://www.50years.org/cms/updates/story/11
+http://www.51capitalmarch.com/51CapitalMarchProtestLogistics.shtml
+http://www.525reasons.com/
+http://www.57aromas.com/57aroma/store/index.php?techcode=&category=kitsretail
+http://www.57aromas.com/about_us.html
+http://www.5bbc.org/
+http://www.5dt.com/virtualinfo.html
+http://www.5tigers.org/news/CatNews/cn13.htm
+http://www.646industries.com/beyond_s/archives/2003/12/ryan_air_destin.html
+http://www.646industries.com/beyond_s/archives/environment/
+http://www.6moons.com/audioreviews/meadowlark3/kestrel2.html
+http://www.6thinternational.org/
+http://www.6thinternational.org/2004/09/on_letting_the_.html
+http://www.70south.com/resources/environment/ice
+http://www.70wildmiles.org/links.htm
+http://www.7415comics.com/?month=20050601
+http://www.755club.com/guidelines.html
+http://www.7days.ae/content/view/2887/16/
+http://www.7dayshop.com/catalog/product_info.php?products_id=7925
+http://www.7habits4teens.com/teen_northamerica.html
+http://www.7most.com/
+http://www.7nights.com/asterisk/archive/2004/07/the-big-web-design-details-list
+http://www.7nights.com/asterisk/archives/xfn_friendly_link_list_with_movable_type.php
+http://www.7nights.com/asterisk/archives05/2005/04/the-difficulty-with-originality
+http://www.7nights.com/asterisk/archives05/2005/05/technological-excuses-a-rant
+http://www.7nights.com/asterisk/archives05/2005/06/a-few-tips-on-estimating-web-projects
+http://www.7nights.com/asterisk/archives05/2005/06/do-all-web-sites-need-usability-testing
+http://www.7nights.com/asterisk/store-books/product/0679805273/Oh-the-Places-Youll-Go-Classic-Seuss.html
+http://www.7nights.com/dkrprod/gwt_seven.php
+http://www.7nights.com/dkrprod/gwt_ten.php
+http://www.7thstep.ca/membership.html
+http://www.800ceoread.com/reader/readmore.asp?isbn=0131409956
+http://www.800ceoread.com/reader/readmore.asp?isbn=0471491918
+http://www.800ceoread.com/reader/readmore.asp?isbn=0743251415
+http://www.800helpfla.com/nosales.html
+http://www.800saving.com/
+http://www.80smusiclyrics.com/artists/gloriaestefan.htm
+http://www.826nyc.org/writingGallery/stories/interview_ahamdan.php
+http://www.848.com/calendar.html
+http://www.8ball.org/blackjack_10_good_habits.htm
+http://www.9-1-1magazine.com/FeatureDetail.asp?ArticleID=240
+http://www.9-11heroes.us/news-children-violence.php
+http://www.9-11usg.org/index3.asp?page=REPSTUDIDX
+http://www.911dossier.co.uk/gen10.html
+http://www.911hotjobs.com/eastern/chicago.htm
+http://www.911hotjobs.com/pacific/battleground.htm
+http://www.911hotjobs.com/pacific/riverside2.htm
+http://www.911independentcommission.org/questions.html
+http://www.911jobforums.com/vB/showthread.php3?goto=lastpost&t=38943
+http://www.911truth.org/
+http://www.911truth.org/index.php
+http://www.91expresslanes.com/generalinfo/tollpolicy.asp?p=m6&s=n1toll
+http://www.93feeteast.co.uk/diary/
+http://www.955klos.com/listingsEntry.asp?ID=230439&PT=onaircrew
+http://www.9622.net/archives/000750.html
+http://www.965krock.com/djs/billreid.php
+http://www.96x.fm/info/musicnews.shtml
+http://www.99shadesofgrey.com/fitness/me_sqdl/
+http://www.99w.com/rules.htm
+http://www.9mmfilm.com/accessibility.htm
+http://www.9nerds.com/isabelle/AFK/
+http://www.a-car.com/new/liu.html
+http://www.a-digital-eye.net/forums/viewtopic.php?t=57
+http://www.a-human-right.com/RKBA/government.html
+http://www.a-human-right.com/RKBA/jewsfight.html
+http://www.a-i.com/show_tree.asp?id=96&level=4&root=115&item_num=341&item_name=Session+56699+Apr.+04%2C++...
+http://www.a-love-supreme.com/archive/archive071.htm
+http://www.a-love-supreme.com/archive/archive112.htm
+http://www.a-love-supreme.com/archive/archive113.htm
+http://www.a-love-supreme.com/archive/archive124.htm
+http://www.a-love-supreme.com/random/sobs%20crimbo.htm
+http://www.a-nutritional-supplements.com/food-nutrition.htm
+http://www.a-p-e-x.org/ecolecon/ee_centralconcepts.html
+http://www.a-star.edu.sg/astar/about/action/pressrelease_details.do?id=2925937cfeg2
+http://www.a-t.co.uk/
+http://www.a180.net/whore_of_babylon.html
+http://www.a1b2c3.com/drugs/gen006a.htm
+http://www.a1b2c3.com/drugs/mj014.htm
+http://www.a1nutritionproducts.com/instone-stallone
+http://www.a2z.org/acts/cathapol/jw_debate1_response.htm
+http://www.a2zrewards.com/free.html
+http://www.a4uforum.co.uk/archive/topic/21369-1.html
+http://www.aa.tufs.ac.jp/~tagengo/E-wales.html
+http://www.aaa-calif.com/westways/0505/features/deadlygame.asp
+http://www.aaa.asn.au/issinfo/vision-zero2.htm
+http://www.aaaai.org/aadmc/ate/allergic_bronchopulmonary.html
+http://www.aaacu.com/mortgage.htm
+http://www.aaai.com.au/coaching/coaches.html
+http://www.aaai.org/AITopics/assets/AIalerts/alert.9.30.03.html
+http://www.aaai.org/AITopics/html/archvE8.html
+http://www.aaai.org/AITopics/html/common.html
+http://www.aaai.org/Magazine/Editorial/Author/magazine-guidelines.html
+http://www.aaainc.org/press/release.php?pressID=558
+http://www.aaal.org/aaal2003/sunpapers.html
+http://www.aaanativearts.com/article888.html
+http://www.aaanet.org/press/an/0505/Kaufman.htm
+http://www.aaas.org/international/africa/coralreefs/ch4.shtml
+http://www.aaas.org/news/releases/2005/0114nanotech.shtml
+http://www.aaas.org/news/releases/2005/0624itw.shtml
+http://www.aaas.org/spp/cstc/pne/pubs/fundscience/papers/koizumi.htm
+http://www.aaas.org/spp/dser/evolution/issues/pennsylvania/9.5.04article.shtml
+http://www.aaas.org/spp/dser/evolution/perspectives/durant.shtml
+http://www.aaas.org/spp/rd/agri05s.htm
+http://www.aaas.org/spp/yearbook/chap13.htm
+http://www.aaasc.org/features/monitor2003/six_steps_create_positive.html
+http://www.aaaworld.com/pages/articles.asp?id=94
+http://www.aabalonered.com/200.html
+http://www.aabb.org/About_the_AABB/Nbf/nbf2.htm
+http://www.aabb.org/All_About_Blood/FAQs/aabb_faqs.htm
+http://www.aabb.org/All_About_Blood/Receiving_Blood/receive.htm
+http://www.aabc.us/ksm_xml_art23.asp
+http://www.aabchq.com/resources/tabjournals/previousissues.aspx
+http://www.aacap.org/legislation/107/107-8.htm
+http://www.aacap.org/popCulture/articles/un-tv.htm
+http://www.aacc.org/divisions/divawards.stm
+http://www.aace.org/pubs/etr/issue2/burgstahler.cfm
+http://www.aaceinc.org/breeds/ben.htm
+http://www.aacn.org/AACN/jrnlajcc.nsf/0/4e4026632d649cf0882568d6006d9299?OpenDocument
+http://www.aact.org/aacttip.html
+http://www.aact.org/cgi-bin/webdata_links.pl?Technical-General=y&cgifunction=Search
+http://www.aacu-edu.org/CALL/CALLrelease.cfm
+http://www.aacu-edu.org/liberaleducation/le-sp01/le-sp01bennett2.cfm
+http://www.aacu-edu.org/liberaleducation/le-su03/le-su3fperspective.cfm
+http://www.aacu-edu.org/liberaleducation/le-su04/le-su04feature3.cfm
+http://www.aacu-edu.org/peerreview/pr-fa02/pr-fa02reality.cfm
+http://www.aacu-edu.org/peerreview/pr-su00/pr-su00feature1.cfm
+http://www.aacu-edu.org/peerreview/pr-wi05/pr-wi05feature1.cfm
+http://www.aacu-edu.org/pff/PFFpublications/what_difference/research_campus_diff.cfm
+http://www.aacu-edu.org/phhe/past_projects/principle_findings.cfm
+http://www.aad.gov.au/default.asp?casid=4366
+http://www.aadexpo.co.za/speech%20mosioual.htm
+http://www.aaea.org/fund/docs/aaea-mins99-08.cfm
+http://www.aaenvironment.com/GlobalWarming1.htm
+http://www.aaets.org/article27.htm
+http://www.aafa.com/perspect3.html
+http://www.aafp.org/afp/20001101/practice.html
+http://www.aafp.org/afp/20010215/679.html
+http://www.aafp.org/afp/20020115/229.html
+http://www.aafp.org/afp/20030801/483.html
+http://www.aafp.org/afp/20040215/853.html
+http://www.aafp.org/afp/980315ap/hueston.html
+http://www.aafp.org/afp/980415ap/wang.html
+http://www.aafp.org/afp/991015ap/1743.html
+http://www.aafp.org/afp/991101ap/2043.html
+http://www.aafp.org/fpm/20011100/ask.html
+http://www.aafp.org/fpm/20040100/39crea.html
+http://www.aafp.org/fpm/990500fm/29.html
+http://www.aafp.org/fpm/990600fm/salaried.html
+http://www.aafp.org/x3873.xml
+http://www.aafsw.org/articles/linderman/movingstress.htm
+http://www.aagpbl.org/articles/biographies.cfm?ID=3
+http://www.aagpbl.org/articles/general.cfm?ID=4
+http://www.aagpbl.org/articles/general.cfm?ID=5
+http://www.aagpbl.org/articles/general.cfm?ID=8
+http://www.aagunsales.com/News/Fall%20Pheasant%20Stocking%20Plans%20Announced
+http://www.aahc.com.au/palc/news/mr/2004/aug/aug03.htm
+http://www.aahn.org/feature1.html
+http://www.aahom.org/classes/ft_pw_electricity.htm
+http://www.aahom.org/classes/ft_pw_light.htm
+http://www.aahom.org/jobs/employment.htm
+http://www.aahperd.org/naspe/grantconference/template.cfm?template=call.html
+http://www.aai.com/News/inthenews/abcprimetime.html
+http://www.aaiep.org/general/bvisas_policy.htm
+http://www.aaiep.org/memdetail.cfm?memid=165
+http://www.aaiep.org/memdetail.cfm?memid=324
+http://www.aais.org.uk/html/careersai.html
+http://www.aaiusa.org/famous_arab_americans.htm
+http://www.aaiusa.org/wwatch/052101.htm
+http://www.aakp.org/AAKP/RenalifeArt/2002/uniquecamp.htm
+http://www.aakp.org/AAKP/RenalifeArt/2003/keepingfit.htm
+http://www.aallnet.org/about/financial_plan_07_pricing.asp
+http://www.aallnet.org/chapter/basic_info.asp
+http://www.aallnet.org/chapter/sandall/rept_bdminutes2002-02.htm
+http://www.aals.org/2000international/english/australia.htm
+http://www.aals.org/2000international/english/china.htm
+http://www.aals.org/2000international/english/futureeropean.htm
+http://www.aals.org/FRS/FAR/faq.html
+http://www.aals.org/am2002/angresano.html
+http://www.aals.org/mlt2.html
+http://www.aamc.org/data/facultyroster/reports.htm
+http://www.aamc.org/members/facultydev/facultyvitae/jan05/lessons.htm
+http://www.aamc.org/newsroom/pressrel/2003/031109.htm
+http://www.aamc.org/newsroom/reporter/feb03/extramile.htm
+http://www.aameda.org/Specialtygroups/ActionAlerts/cardio90501.html
+http://www.aamft.org/families/Consumer_Updates/After_An_Affair.asp
+http://www.aami.org/CommitteeCentral/Committee/ShowMembershipForm.cfm
+http://www.aaminahdance.com/MEDiM7jan.2005.htm
+http://www.aamindell.net/specials_conflict.htm
+http://www.aaml.org/Articles/2002-2/Tips-McCullough.htm
+http://www.aaml.org/hiddenassets.htm
+http://www.aandaresume.com/
+http://www.aaos.org/wordhtml/bulletin/jan96/rays.htm
+http://www.aap.org/advocacy/washing/rick_09_24_2002_testimony.htm
+http://www.aap.org/advocacy/washing/test8039.htm
+http://www.aap.org/family/steroids.htm
+http://www.aapa.org/annual-conf/neworleans03/traveltips.html
+http://www.aapd-dc.org/News/medicaid/longtermcare.html
+http://www.aapd-dc.org/policies/HIVdrug.html
+http://www.aapg.org/business/hod/pre2000/9802.cfm
+http://www.aapn.org/kunming.html
+http://www.aapny.com/slinky.html
+http://www.aappb.net/ma_the_defendant.html
+http://www.aaps.ed.ac.uk/Committees/Senate/ugsc/RecentGuide/SpecialCircumstances.htm
+http://www.aaps.ed.ac.uk/committees/Senate/ugsc/RecentGuide/guidanceonSpecialCircumstancesCommittee.htm
+http://www.aapsj.org/view.asp?art=aapsj060319
+http://www.aapsj.org/view.asp?art=ps040427
+http://www.aapspharmscitech.org/view.asp?art=pt020421&pdf=yes
+http://www.aarc.org/education/meetings/congress_04/program/saturday.asp
+http://www.aardvark.co.nz/daily/2002/0508.shtml
+http://www.aare.edu.au/00pap/ems00149.htm
+http://www.aare.edu.au/00pap/mcd00101.htm
+http://www.aare.edu.au/02pap/and02399.htm
+http://www.aare.edu.au/02pap/kle02231.htm
+http://www.aare.edu.au/99pap/edm99535.htm
+http://www.aare.edu.au/99pap/leo99542.htm
+http://www.aare.edu.au/99pap/smi99558.htm
+http://www.aareit.com/article1.html
+http://www.aarf.org/scrapbook.htm
+http://www.aaronshep.com/rt/RTE13_Team.html
+http://www.aaronshep.com/stories/021.html
+http://www.aaronspersonaltraining.com/archive_110303.html
+http://www.aaronsw.com/weblog/000650
+http://www.aarp.org/Articles/a2003-06-04-nr041301b.html
+http://www.aarp.org/bulletin/prescription/Articles/a2003-11-26-oppurtunity.html
+http://www.aarp.org/bulletin/socialsec/Articles/a2004-12-28-success.html
+http://www.aarp.org/bulletin/yourlife/breakthrough.html
+http://www.aarp.org/families/caregiving/
+http://www.aarp.org/health-active/Articles/a2004-06-04-walking-fun.html
+http://www.aarp.org/health-active/Articles/a2004-06-17-walking-numerousbenefits.html
+http://www.aarp.org/health-active/walking/Articles/a2004-06-04-walking-fun.html
+http://www.aarp.org/health-active/walking/Articles/a2004-06-17-walking-numerousbenefits.html
+http://www.aarp.org/learntech/computers/books_sites/
+http://www.aarp.org/leisure/radio/pt/
+http://www.aarp.org/life/caregiving/Articles/a2003-10-27-caregiving-wholefamily.html
+http://www.aarp.org/money/careers/findingajob/interviews/Articles/a2004-06-24-first90days.html
+http://www.aarp.org/money/taxaide/taxcounseling/custom/taxaide_scripts/taxcounseling/get_faqs_py?faq=10
+http://www.aarp.org/olderwiserwired/oww-features/Articles/a2004-03-03-usability-studies.html
+http://www.aarp.org/research/assistance/medicaid/aresearch-import-45-INB79
+http://www.aarp.org/worldwide/Articles/a2004-09-29-faq-livingabroad.html
+http://www.aarpmagazine.org/health/Articles/a2003-08-20-going_steady
+http://www.aarpmagazine.org/lifestyle/Articles/a2003-09-23-seekinglove.html
+http://www.aarpmagazine.org/lifestyle/Articles/a2004-07-20-mag-oldlove.html
+http://www.aarpmagazine.org/money/whose_house_is_it_anyway
+http://www.aarpmagazine.org/money/whose_house_is_it_anyway.html
+http://www.aarrgghh.com/no_way/japRock.htm
+http://www.aarweb.org/faq/annualmeet.asp
+http://www.aas.duke.edu/comp/lrp/appendixH.html
+http://www.aas.duke.edu/faculty/dusbook/role.html
+http://www.aas.duke.edu/news/topstories/preprofessional_advising.php
+http://www.aas.duke.edu/trinity/prehealth/faq/
+http://www.aas.org/career/Summer.html
+http://www.aasa.dshs.wa.gov/Library/publications/htmlversions/Alzheimer.htm
+http://www.aasa.org/issues_and_insights/district_organization/Reform/Approach/highscp.htm
+http://www.aasa.org/publications/sa/1997_10/weast_sidebar_merger.htm
+http://www.aasa.org/publications/sa/1999_03/lawton.htm
+http://www.aasa.org/publications/sa/2001_05/2001_mcbeath.htm
+http://www.aasa.org/publications/sa/2002_02/Farson.htm
+http://www.aasa.org/publications/sa/2003_01/SmolkinIAQ.htm
+http://www.aasa.org/publications/sa/2004_11/focus_young.htm
+http://www.aascu.org/policy/alerts_05/011105.htm
+http://www.aascu.org/policy/sid_04/leg.htm
+http://www.aasianst.org/EAA/drake.htm
+http://www.aasianst.org/absts/1997abst/japan/j118.htm
+http://www.aasted.org/GC/c-tut.php
+http://www.aatraffic.com/downloads.htm
+http://www.aauj.edu/faculties/art/biologycourses.htm
+http://www.aaup.org/Com-a/Com-a%20Archives/2001/a01dub1.htm
+http://www.aaup.org/publications/Academe/2000/00nd/ND00MORT.HTM
+http://www.aaup.org/publications/Academe/2002/02so/02somey.htm
+http://www.aaup.org/publications/Academe/2003/03ja/03jacrai.htm
+http://www.aaup.org/publications/Academe/2003/03nd/03ndaw.htm
+http://www.aaup.org/publications/Academe/2004/04ja/04jareed.htm
+http://www.aaup.org/statements/Redbook/StDistEd.HTM
+http://www.aauw.org/about/jobmarket.cfm
+http://www.aauw.org/community_programs/leadership_opportunities/leadership_dev.cfm
+http://www.aave.com/questions.php
+http://www.ab-workout.com/Newsletters/6-newsletter-ab-workout.htm
+http://www.ab.com/safety/safety_now/february04/bright_future/
+http://www.aba.com/Industry+Issues/BankEconomistOutlook.htm
+http://www.ababj.com/Feature10.html
+http://www.ababj.com/community_1297.html
+http://www.abacc.com/07Employment/PostingEmp.html
+http://www.abacci.com/atlas/economy.asp?countryID=234
+http://www.abacci.com/atlas/economy3.asp?countryID=234
+http://www.abacom.com/~jkrause/barebone.html
+http://www.abag.ca.gov/planning/smartgrowth/2ndRndworkshop.html
+http://www.abag.ca.gov/planning/smartgrowth/FAQ1.html
+http://www.abanet.org/buslaw/blt/bltjan01greenberger.html
+http://www.abanet.org/cpr/2005topics.html
+http://www.abanet.org/genpractice/newlawyer/april03/dearmike.html
+http://www.abanet.org/irr/hr/spring02/benner.html
+http://www.abanet.org/irr/hr/spring02/vitiello.html
+http://www.abanet.org/irr/hr/summer00humanrights/grossman.html
+http://www.abanet.org/legaled/prelaw/prep.html
+http://www.abanet.org/legaled/publications/occasionalonline/occasional9.html
+http://www.abanet.org/legalservices/probono/soc/domesticviolence.html
+http://www.abanet.org/legalservices/specialization/your.html
+http://www.abanet.org/lpm/lpt/articles/fin0214031.html
+http://www.abanet.org/lpm/lpt/articles/nosearch/fin0214031_print.html
+http://www.abanet.org/poladv/priorities/tax.html
+http://www.abanico-es.com/
+http://www.abanico-es.com/spanish/courses/08-spanish-medical-course.html
+http://www.abarnett.demon.co.uk/atheism/eden.html
+http://www.abb.com/global/abbzh/abbzh250.nsf/0/8503aa82ad77d85fc1256ce10051e8d3?OpenDocument
+http://www.abb.com/global/seitp/seitp202.nsf/0/c1256c290031524bc12567310024e1f8?OpenDocument
+http://www.abb.com/global/seitp/seitp255.nsf/0/d5210c4e1f10e6c1c1256c6a004870fc?OpenDocument
+http://www.abbasite.com/music/
+http://www.abbasite.com/music/album.php?id=192
+http://www.abbey.com/future/taxeff/savings_isas/savings_isas_easy_isa.html
+http://www.abbey.com/guides_tools/guides_tools_home_guide.html
+http://www.abbeycarpet.com/guides_preparing.asp
+http://www.abbeyclock.com/cecil/
+http://www.abbeyskaffeehaus.com/beautiful_muslim_women.htm
+http://www.abbeyskaffeehaus.com/dating_bangalore_india.htm
+http://www.abbeyskaffeehaus.com/georgia_black_single.htm
+http://www.abbeyskaffeehaus.com/indian_girls_for_dating.htm
+http://www.abbeyskaffeehaus.com/muslim_marriage.htm
+http://www.abbeyskaffeehaus.com/muslim_matrimony.htm
+http://www.abbeyskaffeehaus.com/online_date.htm
+http://www.abbeyskaffeehaus.com/seeking_romance.htm
+http://www.abbeyskaffeehaus.com/single_christian_network.htm
+http://www.abbeyskaffeehaus.com/single_teens.htm
+http://www.abbott-langer.com/alafun.html
+http://www.abbott-langer.com/lawsumm.html
+http://www.abbottcom.com/new_page_5.htm
+http://www.abbottcom.com/teaching_in_africa.htm
+http://www.abbytravis.com/dearest.html
+http://www.abc-of-yoga.com/beginnersguide/yogasystem.asp
+http://www.abc-usa.org/gensec/200411armgbreport.html
+http://www.abc-usa.org/news/2002/20021116.html
+http://www.abc.net.au/7.30/content/2004/s1126651.htm
+http://www.abc.net.au/7.30/content/2005/s1323223.htm
+http://www.abc.net.au/7.30/content/2005/s1376202.htm
+http://www.abc.net.au/7.30/content/2005/s1382443.htm
+http://www.abc.net.au/7.30/stories/s61189.htm
+http://www.abc.net.au/arts/artok/bodyart/s197594.htm
+http://www.abc.net.au/arts/books/stories/s424272.htm
+http://www.abc.net.au/arts/strange/workshop/symbols.htm
+http://www.abc.net.au/atthemovies/txt/s1171834.htm
+http://www.abc.net.au/austory/content/2005/s1385834.htm
+http://www.abc.net.au/austory/transcripts/s479623.htm
+http://www.abc.net.au/blackfriday/misc/about.htm
+http://www.abc.net.au/cgi-bin/common/printfriendly.pl?/science/features/skippysizeme/default.htm
+http://www.abc.net.au/classic/daily/stories/s1151251.htm
+http://www.abc.net.au/corp/pubs/legal/court/chap9.html
+http://www.abc.net.au/dynasties/txt/s1254636.htm
+http://www.abc.net.au/elections/wa/2005/guide/darl.htm
+http://www.abc.net.au/elections/wa/2005/guide/electoralsystem.htm
+http://www.abc.net.au/elections/wa/2005/guide/keysbyparty.htm
+http://www.abc.net.au/federation/fedstory/ep4/ep4_places.htm
+http://www.abc.net.au/health/regions/features/countrylife/default.htm
+http://www.abc.net.au/hobart/stories/s937312.htm
+http://www.abc.net.au/lateline/content/2001/s393842.htm
+http://www.abc.net.au/lateline/content/2003/s1003782.htm
+http://www.abc.net.au/lateline/content/2004/s1257787.htm
+http://www.abc.net.au/lateline/stories/s148830.htm
+http://www.abc.net.au/lateline/stories/s551417.htm
+http://www.abc.net.au/lawmatters/s322818.htm
+http://www.abc.net.au/mediawatch/transcripts/s175489.htm
+http://www.abc.net.au/message/blackarts/film/s977838.htm
+http://www.abc.net.au/message/tv/ms/s1040944.htm
+http://www.abc.net.au/pm/content/2005/s1381412.htm
+http://www.abc.net.au/pm/content/2005/s1396353.htm
+http://www.abc.net.au/quantum/stories/s112352.htm
+http://www.abc.net.au/rn/arts/deepend/features/slam/slam2004/slammers.htm
+http://www.abc.net.au/rn/bigidea/stories/s1077245.htm
+http://www.abc.net.au/rn/music/mshow/s697057.htm
+http://www.abc.net.au/rn/science/incon/stories/s1370806.htm
+http://www.abc.net.au/rn/science/mind/s850880.htm
+http://www.abc.net.au/rn/science/mind/s919229.htm
+http://www.abc.net.au/rn/science/mind/stories/s1343419.htm
+http://www.abc.net.au/rn/science/ockham/stories/s1074413.htm
+http://www.abc.net.au/rn/talks/8.30/helthrpt/stories/s1059052.htm
+http://www.abc.net.au/rn/talks/8.30/helthrpt/stories/s1329165.htm
+http://www.abc.net.au/rn/talks/8.30/helthrpt/stories/s1356468.htm
+http://www.abc.net.au/rn/talks/8.30/helthrpt/stories/s1372036.htm
+http://www.abc.net.au/rn/talks/8.30/helthrpt/stories/s1396044.htm
+http://www.abc.net.au/rn/talks/8.30/helthrpt/stories/s19957.htm
+http://www.abc.net.au/rn/talks/8.30/lawrpt/stories/s1374457.htm
+http://www.abc.net.au/rn/talks/8.30/relrpt/stories/s1267862.htm
+http://www.abc.net.au/rn/talks/bbing/stories/s1265568.htm
+http://www.abc.net.au/rn/talks/bbing/stories/s607577.htm
+http://www.abc.net.au/rn/talks/natint/stories/s1379462.htm
+http://www.abc.net.au/rural/content/2005/s1384063.htm
+http://www.abc.net.au/science/bigquestions/s460740.htm
+http://www.abc.net.au/science/descent/trans4a.htm
+http://www.abc.net.au/science/features/liars/default.htm
+http://www.abc.net.au/science/features/skippysizeme/
+http://www.abc.net.au/science/forensic/the_suspects.htm
+http://www.abc.net.au/science/k2/stn/
+http://www.abc.net.au/science/k2/stn/default.htm
+http://www.abc.net.au/science/news/stories/s1364351.htm
+http://www.abc.net.au/shortstories/stories/s1390769.htm
+http://www.abc.net.au/shortstories/stories/s1390942.htm
+http://www.abc.net.au/sport/content/200506/s1394995.htm
+http://www.abc.net.au/sundaynights/stories/s1238296.htm
+http://www.abc.net.au/triplej/review/album/s784867.htm
+http://www.abc.net.au/triplej/review/film/s1054241.htm
+http://www.abc.net.au/tropic/
+http://www.abc.net.au/worldcup2002/croatia/croatia.htm
+http://www.abc.net.au/worldtoday/content/2005/s1354465.htm
+http://www.abc.net.au/worldtoday/content/2005/s1393886.htm
+http://www.abcadvisors.com/resources.asp?ARTICLEID=wag0006.htm
+http://www.abcawards.co.uk/counselling.html
+http://www.abcbodybuilding.com/anatomy/zfactor2.htm
+http://www.abcbodybuilding.com/magazine/windowofopportunity.htm
+http://www.abcbookworld.com/?state=view_author&author_id=7197
+http://www.abchance.com/about/about.html
+http://www.abchomepreschool.com/
+http://www.abcnews.go.com/sections/politics/DailyNews/TheNote_Dec6.html
+http://www.abcnews.go.com/sections/politics/TheNote/TheNote_Aug2004.html
+http://www.abcny.org/taskforce.html
+http://www.abcofcricket.com/Article_Library/news120203/news120203a/news120203a.htm
+http://www.abcog.org/bsunday.htm
+http://www.abcog.org/plant.htm
+http://www.abcog.org/xmas.htm
+http://www.abcounties.co.uk/bpa/bpasection2.htm
+http://www.abcte.org/about.html
+http://www.abcteach.com/StudentTeachers/StudentTeacher.htm
+http://www.abcteach.com/directory/basics/reading/
+http://www.abcteach.com/directory/theme_units/month_to_month/i_september/apples/
+http://www.abcteachingjobs.com/terms.html
+http://www.abctranslations.com/education-translation.aspx
+http://www.abcusamissions.org/missiongiving/treasurer.cfm
+http://www.abdn.ac.uk/bestiary/codicology.hti
+http://www.abdn.ac.uk/heru/bpocpublications.hti
+http://www.abdn.ac.uk/mammal/recording.shtml
+http://www.abdn.ac.uk/mediareleases/archive/2000/pr765.hti
+http://www.abdn.ac.uk/prospectus/ugrad/law/law_info.php?code=law
+http://www.abdn.ac.uk/registry/graduation/info.shtml
+http://www.abdn.ac.uk/registry/tuitionfees/support.shtml
+http://www.abdn.ac.uk/sras/international/shorttime2.shtml
+http://www.abdn.ac.uk/~nhi600/zoo/manuals/level3/page%2016.html
+http://www.abe.com/
+http://www.abeautifulrevolution.com/andre/
+http://www.abebooks.com/
+http://www.abebooks.com/docs/BooksellerCentral/Tips/Account/
+http://www.abel.net.uk/~sayer/looking.htm
+http://www.abelard.org/hear/hear.htm
+http://www.abelard.org/news/behaviour0501.php
+http://www.abelard.org/news/behaviour5.htm
+http://www.abelard.org/turpap/turpap.htm
+http://www.abelladental.com/office/financial.html
+http://www.abelplacement.com/jobs.html
+http://www.aber.ac.uk/history/bigbib.html
+http://www.aber.ac.uk/infopolicies/pub-scheme-intro.shtml
+http://www.aber.ac.uk/media/Modules/MC30820/last_stick.html
+http://www.aber.ac.uk/media/Modules/TF33120/tv-violence_and_kids.html
+http://www.aber.ac.uk/media/Students/crl9501.html
+http://www.aber.ac.uk/media/Students/cvp0001.html
+http://www.aber.ac.uk/media/Students/lzh9402.html
+http://www.aber.ac.uk/plantpathol/celldeath.htm
+http://www.aberdeencity.gov.uk/acc/yourcouncil/bonaccord/13%20january%202003/frontpage.asp
+http://www.aberdeencity.gov.uk/acc/yourcouncil/departments/citydev/default.asp
+http://www.aberdeencvb.com/grouptours.html
+http://www.aberdeennews.com/mld/aberdeennews/news/breaking_news/10827692.htm
+http://www.abess.com/glossary.html
+http://www.abffe.com/myth1.htm
+http://www.abhijeetsingh.com/arms/india/laws/rules/rule_37_40.html
+http://www.abika.com/Reports/Samples/Verifycollegedegree.htm
+http://www.ability.com/sales/products/abvsms.php?ln=us
+http://www.abilitycenter.org/newsletters/defiance/summer2004.html
+http://www.abilitymaine.org/guides/medical.html
+http://www.abim.org/cert/comccm.shtm
+http://www.abim.org/faq/faqresults.shtm
+http://www.abiresearch.com/products/market_research/Worldwide_CATV_Infrastructure_Market
+http://www.abisource.com/information/news/2004/awn180.phtml
+http://www.abisource.com/information/news/2004/awn180.phtml?printable=1
+http://www.abisource.com/information/news/2004/awn184.phtml
+http://www.abisource.com/information/news/2004/awn184.phtml?printable=1
+http://www.abiword.org/information/news/2004/awn184.phtml
+http://www.abiword.org/information/news/2004/awn184.phtml?printable=1
+http://www.abiz.com.au/Black_Friday_online_sales_hit_new_high_but_survey_suggests_caution.htm
+http://www.abkhazia-georgia.parliament.ge/Publications/Foreign/maarten.htm
+http://www.able.state.pa.us/able/cwp/view.asp?a=15&Q=81273
+http://www.able2know.com/forums/about16547.html&highlight=
+http://www.able2know.com/forums/about39599-300.html
+http://www.able2know.com/forums/about43121-0.html
+http://www.able2know.com/forums/about43121.html
+http://www.able2know.com/forums/about52693.html
+http://www.able2know.com/forums/about8728.html
+http://www.abledata.com/abledata_docs/One_Eye.htm
+http://www.ablestable.com/resources/library/glossary/p.htm
+http://www.ablongman.com/mikelonis/introStudyGuideGSEA.html
+http://www.abnamroprivatebanking.com/lc-glos-f6.htm
+http://www.aboriginalgenocide.com.au/current/00071.html
+http://www.aboriginalradio.com/main.shtml
+http://www.abortionconcern.org/stories/story036.php
+http://www.abortionconcern.org/stories/story048.php
+http://www.abortionfacts.com/online_books/giving_God_your_worst/chapter_10.asp
+http://www.abortionfacts.com/online_books/giving_God_your_worst/chapter_2.asp
+http://www.aboundinglove.org/sensational/sen-006c.php
+http://www.about-antiques.com/Cut-Glass.htm
+http://www.about-top-culinary-schools.com/
+http://www.aboutairships.com/
+http://www.aboutbritain.com/Articles/dales-way.asp
+http://www.aboutbritain.com/BradfordIndustrialMuseum.htm
+http://www.aboutbritain.com/IndustrialAllRegions.htm
+http://www.aboutcoffee.net/2003_01_26_bcearc.html
+http://www.aboutcoffee.net/2003_06_08_bcearc.html
+http://www.aboutcosmeticdentistry.com/faqs/
+http://www.aboutfilm.com/movies/m/matrix-anlys.htm
+http://www.aboutibs.org/Publications/currentParticipate.html
+http://www.aboutincontinence.org/Gas.html
+http://www.aboutmyjob.com/main.php3?action=displayarticle&artid=1539
+http://www.aboutourkids.org/aboutour/articles/friends.html
+http://www.aboutourkids.org/aboutour/articles/grief.html
+http://www.aboutourkids.org/aboutour/articles/life_after_hs.html
+http://www.aboutourkids.org/aboutour/articles/mirror.html
+http://www.aboutscotland.com/bbsw.html
+http://www.aboutscotland.com/theroyalscots/histmcbane.html
+http://www.aboutseniors.com.au/Aged-Care-Housing-RVM.html
+http://www.aboutseniors.com.au/Aged-Care-Housing13.html
+http://www.aboutseniors.com.au/Computers-Seniors-Opinion-QA.html
+http://www.above-all.org/templates/cla15bl/Details.asp?id=24498&PID=125440
+http://www.abovetheorangetrees.com/journal/
+http://www.abovetopsecret.com/forum/thread103089/pg1
+http://www.abovetopsecret.com/forum/thread108492/pglastpost
+http://www.abovetopsecret.com/forum/thread113/pg1
+http://www.abovetopsecret.com/forum/thread84/pg5
+http://www.abovetopsecret.com/forum/thread95729/pg1
+http://www.aboyandhiscomputer.com/show.php?ItemID=2149
+http://www.abp.org/resident/profvign.htm
+http://www.abqjournal.com/north/157812north_news03-14-04.htm
+http://www.abqjournal.com/north/venuenorth/266431venuenorth12-03-04.htm
+http://www.abqjournal.com/santafe/277952north_news12-23-04.htm
+http://www.abqtrib.com/albq/bu_local/article/0,2565,ALBQ_19838_3459266,00.html
+http://www.abraauto.com/customer_education_description.cfm
+http://www.abrite.com/frelectrocleaners.htm
+http://www.abrn.com/abrn/article/articleDetail.jsp?id=49778
+http://www.abroadchina.net/past_experience/successful_stories.asp
+http://www.abroadviewmagazine.com/spring_04/cultivation.html
+http://www.abs-cbnnews.com/storypage.aspx?StoryId=9078
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/0b82c2f2654c3694ca2569de002139d9?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/0f071953d72f0323ca2569ad000402c9?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/135cb3f6cdc8210aca2569de002a302e?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/2d82eba2166e40b8ca256bd0002842b6?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/3be24b1cb70dcae1ca2568a90013941e?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/3f14d8d52dbf8c89ca256ef9000c2074?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/525e198ee27f1682ca2569de00267e45?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/56ddaf03cbb43963ca256a6200037785?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/8f91371434a8b77fca2569ad000402b8?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/989527f462991f5eca2568a90013933e?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/bcab87af85aec554ca256bd00026dcfb?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/0/fd628ff0e3f011d2ca256d32001cd4fd?OpenDocument
+http://www.abs.gov.au/Ausstats/abs@.nsf/Lookup/342ADDD50B93893BCA2569AD000402B1
+http://www.abs.gov.au/Ausstats/abs@.nsf/Lookup/B44BBD3B15E508F5CA256D32001DA2C8
+http://www.abs.gov.au/Ausstats/abs@.nsf/lookupMF/51C21550F77FDEA8CA2568A9001393E9
+http://www.abs.gov.au/ausstats/abs@.nsf/0/3ea34838c27eb18dca257030007c68a0?OpenDocument
+http://www.abs.gov.au/websitedbs/D3310114.nsf/home/What's%20New
+http://www.abs.gov.au/websitedbs/D3310116.NSF/0/2908d1611ede63dbca2566150081b263?OpenDocument
+http://www.absa.co.za/Individual/0,2999,21,00.html
+http://www.absc.usgs.gov/research/walrus/bering/bathy/
+http://www.absinthe-literary-review.com/stories/dekrey.htm
+http://www.absoft.com/Support/FAQ/win62tfaq.html
+http://www.absolutearts.com/artsnews/1999/07/21/25651.html
+http://www.absolutearts.com/artsnews/2001/02/19/28115.html
+http://www.absolutearts.com/artsnews/2004/01/12/31708.html
+http://www.absolutearts.com/artsnews/2005/01/03/32646.html
+http://www.absolutelypr.com/_wsn/page18.html
+http://www.absolutelyrics.com/lyrics/view/2pac/crooked_nigga_too_(produced_by_raphael_saadiq)/
+http://www.absolutelyrics.com/lyrics/view/memphis_bleek/change_up/
+http://www.absolutewrite.com/classes/Rosien/soulstories.htm
+http://www.absolutewrite.com/freelance_writing/falling_back_in_love.htm
+http://www.absolutewrite.com/freelance_writing/waiting_for_dollars.htm
+http://www.absolutewrite.com/novels/critique.htm
+http://www.absolutewrite.com/screenwriting/Cleaver/hollyweird_education_4.htm
+http://www.abstractconcreteworks.com/essays/teaching/beingateacher.html
+http://www.abstracts.net/nick-carter/
+http://www.absurdity.org/rmr/
+http://www.absurdity.org/rmr/lofi/
+http://www.abtdvd.com/archives/2003_12.html
+http://www.abundanthealth.com/video.html
+http://www.abuse-recovery-and-marriage-counseling.com/articles/addictions/step5.html
+http://www.abwag.com/
+http://www.abwag.com/act.htm
+http://www.abwag.com/how_to_get_started.htm
+http://www.ac.wwu.edu/~stephan/malthus/malthus.16.html
+http://www.ac.wwu.edu/~zaferan/index%20-%20sustainable%20design%20minor.htm
+http://www.aca.ch/acane55.htm
+http://www.acacamps.org/campmag/rm023risk.htm
+http://www.acacamps.org/media_center/view.php?file=camp_trends_article11.html
+http://www.acacamps.org/media_center/view.php?file=how_to_choose_article_aarp.html
+http://www.acacanines.com/liftleg.htm
+http://www.acad.sunytccc.edu/instruct/sbrown/math/study.htm
+http://www.acadat.com/HLC/Preseli/area/area272.htm
+http://www.academic.salford.ac.uk/sao/finance/access_learning_fund.php
+http://www.academicdb.com/seeing_world_around_usand_making_sense_it_seems_ve_3620/
+http://www.academicdress.com.au/Hoodcolours.html
+http://www.academicfoundation.com/n_detail/lawliber.asp
+http://www.academicinfo.net/usmod.html
+http://www.academicintl.com/spain/seville/summer_hispstu.html
+http://www.academicsenate.cc.ca.us/icas/Agendas/Downloads/EnclosuresJan05/ENCL%207A_AB%2023%20Assembly%20Bill.htm
+http://www.academon.com/lib/essay/church-of-england.html
+http://www.academon.com/lib/essay/jamaican-history-and-culture.html
+http://www.academy.umd.edu/AboutUs/news/articles/01-01-02.htm
+http://www.academyofbards.org/fanfic/p/psidraconis_adeptus7.html
+http://www.academyprosthodontics.org/outreach1.htm
+http://www.acadian-cajun.com/money.htm
+http://www.acadiawindows.com/aama.htm
+http://www.acadiawindows.com/guarante.htm
+http://www.acadweb.wwu.edu/hr/disability/FMLA.shtml
+http://www.acaeum.com/phpBB2/about1521.html
+http://www.acainternational.org/intcontent.aspx?via=search&cid=3205
+http://www.acas.org.uk/publications/AL05.html
+http://www.acas.org.uk/publications/B17.html
+http://www.acas.org.uk/services/dispute_mediation.html
+http://www.acb.org/resources/sports.html
+http://www.acbl.org/play/explanationEvents.html
+http://www.acbl.org/play/pairGamesExplained.html
+http://www.acbohio.org/newsletter.php?news=10
+http://www.acbs-adc.org/fwatch.html
+http://www.acbspn.com/lectures/Animal_expertise.htm
+http://www.acc-society.bc.ca/files_new/support.html
+http://www.acc.org/advocacy/weekly/archives/oct_01/102201.htm
+http://www.acc.org/clinical/bethesda/beth33/task_3.htm
+http://www.acc.org/clinical/consensus/ethics/taskforce3.htm
+http://www.acca.co.uk/publications/hsr/49/618275
+http://www.accaglobal.com/publications/corpsecrev/38/155743
+http://www.accaglobal.com/publications/public_eye/31/22765
+http://www.accaglobal.com/publications/studentaccountant/180984
+http://www.accampbell.uklinux.net/assassins/assassins-html/prologue.html
+http://www.accautomation.com/art4.htm
+http://www.accc.gov.au/content/index.phtml/itemId/606668/fromItemId/2332
+http://www.accc.gov.au/content/index.phtml/itemId/606668/fromItemId/2332?pageDefinitionItemId=16940
+http://www.accc.gov.au/content/index.phtml/itemId/88229
+http://www.accci.com.au/hill.htm
+http://www.accd.edu/sac/gov/alfaro/2301inetsyl.htm
+http://www.accd.edu/sac/lrc/susan/fitness.htm
+http://www.accelerando.org/
+http://www.accelerated-dog-training-health-grooming.com/
+http://www.acceleratingfuture.com/michael/
+http://www.accent-resume-writing.com/tips/
+http://www.accenture.com/xd/xd.asp?it=enweb&xd=ideas%5Coutlook%5C1.2002%5Csiam.xml
+http://www.accenture.com/xd/xd.asp?it=enweb&xd=ideas%5Coutlook%5C1_2004%5Cmanage.xml
+http://www.accenture.com/xd/xd.asp?it=enweb&xd=ideas%5Coutlook%5C1_2005%5Cit_gov.xml
+http://www.accenture.com/xd/xd.asp?it=enweb&xd=ideas%5Coutlook%5C2.2003%5Cinfo_tech.xml
+http://www.accenture.com/xd/xd.asp?it=enweb&xd=ideas%5Coutlook%5C3_2004%5Cinterview_szygenda.xml
+http://www.accenture.com/xd/xd.asp?it=enweb&xd=ideas%5Coutlook%5C6.99%5Cover_reform.xml
+http://www.accenture.com/xd/xd.asp?it=enweb&xd=ideas%5Coutlook%5Cpov%5Cpov_convert.xml
+http://www.accenture.com/xd/xd.asp?it=enweb&xd=ideas%5Crole%5Ccio.xml
+http://www.accenture.com/xd/xd.asp?it=enweb&xd=industries%5Cresources%5Cenergy%5Courideas%5Cener_poveandp.xml
+http://www.accenture.com/xd/xd.asp?it=enweb&xd=locations%5Cmalaysia%5Cideas%5Crevenue.xml
+http://www.accepted.com/aboutus/presentations.aspx
+http://www.access-africa.com/Sudan%20Map%20and%20%20Sudan%20information-africa.htm
+http://www.access-board.gov/links/disability.htm
+http://www.access-board.gov/prowac/comments/comments-10-28/saltlake.htm
+http://www.access-board.gov/research&training/Toilet-Bath/report.htm
+http://www.access-board.gov/sec508/guide/1194.22.htm
+http://www.access-travel.co.uk/bookcond.html
+http://www.access.gpo.gov/bis/fedreg/ear_fedreg97.html
+http://www.access.gpo.gov/congress/senate/srules04.htm
+http://www.access.gpo.gov/congress/senate/srules17.html
+http://www.access.gpo.gov/nara/cfr/waisidx_01/26cfr1v7_01.html
+http://www.access.gpo.gov/nara/cfr/waisidx_03/26cfr1v7_03.html
+http://www.access.gpo.gov/nara/cfr/waisidx_03/29cfr778_03.html
+http://www.access.gpo.gov/nara/cfr/waisidx_04/26cfrv7_04.html
+http://www.access.gpo.gov/nara/cfr/waisidx_98/29cfr778_98.html
+http://www.access.gpo.gov/nara/cfr/waisidx_99/5cfr532_99.html
+http://www.access.gpo.gov/uscode/title28a/28a_5_9_.html
+http://www.access.uconn.edu/foic.html
+http://www.accessabc.com/press1/ma0704.htm
+http://www.accessarkansas.org/dhs/webpolicy/TEA%20Policy/TEA2000.htm
+http://www.accessatlanta.com/arts/content/arts/0605/17spoletolessons.html
+http://www.accesscom.com/~darius/writings/scheme-for-lispers.html
+http://www.accessdata.fda.gov/scripts/cdrh/cfdocs/psn/transcript.cfm?show=22
+http://www.accessdata.fda.gov/scripts/cdrh/cfdocs/psn/transcript.cfm?show=31
+http://www.accessexcellence.org/HHQ/qow/qow03/qow040510.html
+http://www.accessexcellence.org/RC/AB/BA/European_Attitudes.html
+http://www.accessexcellence.org/RC/AB/IE/Future_Of_Genetic_Research.html
+http://www.accessexcellence.org/RC/AB/IE/Genetic_Testing.html
+http://www.accessexcellence.org/RC/AB/IWT/Why_it_Matters.html
+http://www.accessgenealogy.com/native/tribes/abenaki/abenakichiefs.htm
+http://www.accessibilityforum.org/docs/webcast_10-30/ecast_part2.html
+http://www.accessify.com/blog/archive/2005_03_01_default.asp
+http://www.accessifyforum.com/viewtopic.php?t=2905&start=15
+http://www.accessnorthga.com/news/hall/newfullstory.asp?ID=85507
+http://www.accessnorthga.com/news/hall/newfullstory.asp?ID=88609
+http://www.accesspr.com/mediarelations.html
+http://www.accesstoinsight.org/bfaq.html
+http://www.accesstoinsight.org/canon/sutta/majjhima/mn054.html
+http://www.accesstoinsight.org/glossary.html
+http://www.accesstoinsight.org/lib/authors/thanissaro/likefire/
+http://www.accesstoinsight.org/lib/bps/leaves/bl137.html
+http://www.accesstoinsight.org/lib/bps/news/essay09.html
+http://www.accesstoinsight.org/lib/bps/news/essay14.html
+http://www.accesstoinsight.org/lib/bps/wheels/wheel367.html
+http://www.accesstoinsight.org/lib/modern/thanissaro/economy.html
+http://www.accesstoinsight.org/lib/thai/
+http://www.accessup.org/anime/comment.asp?file=Final%20Fantasy7%60game&wanted=ze&lang=e
+http://www.accessup.org/anime/comment.asp?file=Final%20Fantasy8%60game&wanted=pe&lang=e
+http://www.accessup.org/anime/comment.asp?file=Final%20Fantasy9%60game&wanted=p&lang=e
+http://www.accf.org/publications/newsletter/
+http://www.accf.org/publications/testimonies/test-maine-climate.html
+http://www.accidentaljulie.com/index2.php?p=2002_07_01_archive.html
+http://www.accidentdynamics.com/Manual.htm
+http://www.acclaimimages.com/search_terms/stock_markets.html
+http://www.acclaimimages.com/search_terms/stockmarket.html
+http://www.acclaimimages.com/search_terms/stockmarkets.html
+http://www.accom.com/support/tech-support/faqs/wsd-faqs/faq_xtreme_hardware.html
+http://www.accordions.com/index/gen/lea/gen_lea.shtml
+http://www.accordionusa.com/ar_07_01.htm
+http://www.accorhotels-asia.com/hotel/nov/sport.asp
+http://www.accorhotels-asia.com/hotel/sof/sport.asp
+http://www.accorthalassa.com/hotel_accor_thalassa_england/hotel_thalasso.html
+http://www.accorthalassa.com/hotel_accor_thalassa_england/serenity_spa.html
+http://www.accountancy.com.pk/newsgen.asp?newsid=1556
+http://www.accountancy.com.pk/newsgen.asp?newsid=912
+http://www.accountancyage.com/analysis/1131559
+http://www.accountancyage.com/comment/1134305
+http://www.accountancyage.com/news/1139344
+http://www.accountancyagejobs.com/features/1154883
+http://www.accountancyireland.ie/dsp_articles.cfm/goto/1009/page/Corporate_Social_Responsibility.htm
+http://www.accountantsworld.com/DesktopDefault.aspx?Page=practicedev&Category=Resources&Links=New+Service-+Fin.+Planning
+http://www.accountingsoftwarenews.com/accpacadvan/index.shtml
+http://www.accountixstaffing.com/readarticle.asp?file=brokenjobmarket.htm
+http://www.accpa.com.au/page.php?d=88
+http://www.acct.ipfw.edu/ap/pers_scv/itinssn.htm
+http://www.accta.net/2004_Conference/Conference%20Minutes/Awards%20Dinner%20w-revisions.htm
+http://www.accts.org/ethics/norway/garrettt.htm
+http://www.accu-usa.org/2000-08.html
+http://www.accu.org/bookreviews/public/reviews/0cv/10-4.htm
+http://www.accu.org/resources/public/terse/cpp.htm
+http://www.accugenix.com/reflib-gloss.htm
+http://www.accunet.org/
+http://www.acde.org/common/alerts/ecstasystory.htm
+http://www.acdlabs.com/publish/chemsketch_reviews.html
+http://www.acdoctor.com/air_quality/indoor_air_quality.htm
+http://www.ace-centre.org.uk/html/cap/capdescription.html
+http://www.ace-scla.com/04/agenda/sl1.html
+http://www.ace.co.nz/tools/courses/course_app.asp?ccode=WES
+http://www.acecameras.co.uk/asp/web/content/termsandconditions/content.asp
+http://www.acefitness.org/fitfacts/fitfacts_display.cfm?itemid=37
+http://www.acegraphics.com.au/articles/wagner03.html
+http://www.acehkita.com/en/content.php?op=modload&name=berita&file=print&coid=530&lang=2
+http://www.acehkita.com/en/content.php?op=modload&name=reportase&file=view&coid=530&lang=2
+http://www.acei.neu.edu/CONSTIT.htm
+http://www.aceinfo.net.au/Services/DRA/Products/children.html
+http://www.acenet.edu/hena/readArticle.cfm?articleID=16
+http://www.acenetworks.org/frames/fvorientation_guide.htm
+http://www.acenursing.com/
+http://www.acep.org/1,33259,0.html
+http://www.acepilots.com/unscam/
+http://www.acepilots.com/usaaf_eto_aces.html
+http://www.acepilots.com/wwi/pio_ksmith.html
+http://www.aceproject.org/main/english/es/esy_ie.htm
+http://www.aceproject.org/main/english/lf/lfb.htm
+http://www.acerentalcars.co.nz/new-zealand/clothing.html
+http://www.aces.edu/department/crd/publications/CRD-22.html
+http://www.aces.edu/urban/metronews/vol2no1/ecosystem.html
+http://www.acet-international.org/
+http://www.acf.asn.au/Standards/Bengal.htm
+http://www.acf.dhhs.gov/programs/cse/pol/DCL/dcl-02-35.htm
+http://www.acf.dhhs.gov/programs/ofa/pi2002-3.htm
+http://www.acf.dhhs.gov/programs/pcpid/pcpid_12703meetingminutes.html
+http://www.acf.hhs.gov/programs/cse/pol/PIQ/2004/piq-04-01.htm
+http://www.acf.hhs.gov/programs/cse/rpt/chap4.htm
+http://www.acf.hhs.gov/programs/hsb/publications/communiqueApr03.htm
+http://www.acf.hhs.gov/programs/hsb/research/21_century/expanding.htm
+http://www.acf.hhs.gov/programs/ofa/annualreport6/chapter01/chap01.htm
+http://www.acf.hhs.gov/programs/opre/ehs/ehs_resrch/instruments/instructors_manual/instructors_manual01.html
+http://www.acf.hhs.gov/programs/opre/ehs/ehs_resrch/reports/how_tosave_ppt.html
+http://www.acf.hhs.gov/trafficking/campaign_kits/tool_kit_health/identify_victims.html
+http://www.acfb.org/help/give_food/
+http://www.acfcheckers.com/scans1.html
+http://www.acfid.asn.au/code/Code_complaint.htm
+http://www.acfn.org/news/100704-3/
+http://www.acftu.org.cn/unionlaw.htm
+http://www.acg.gi.org/patients/gibleeding/index.asp
+http://www.acg.jhsph.edu/library/conference_2003/
+http://www.acghs.org/
+http://www.acgs.qld.edu.au/content/?id=34
+http://www.acheronengineering.com/Proffesional%20Staff.htm
+http://www.achewood.com/raysplace.php?date=05172005&allnav=
+http://www.achewood.com/raysplace.php?date=07092003&allnav=1
+http://www.achievebc.ca/cpt/jobprofiles/513.aspx?n=1
+http://www.achievement.org/autodoc/page/alb0int-1
+http://www.achievement.org/autodoc/page/ban0int-3
+http://www.achievement.org/autodoc/page/cam0int-4
+http://www.achievement.org/autodoc/page/hil0int-1
+http://www.achievement.org/autodoc/page/sch3int-2
+http://www.achievement.org/autodoc/page/tut0pro-1
+http://www.achievenetprofits.com/
+http://www.achievenetprofits.com/affiliate/scripts/t.php?a_aid=11&a_bid=3
+http://www.achievesuccess.uk.com/research.html
+http://www.achilltourism.com/festivals.html
+http://www.acholipeace.org/justice_news.html
+http://www.achp.gov/news-2-05achpbizmtg.html
+http://www.achr.net/000ACHRTsunami/Sri%20Lank%20TS/Tsunami%20Sri%20Lanka.htm
+http://www.achrnews.com/CDA/ArticleInformation/features/BNP__Features__Item/0,1338,92252,00.html
+http://www.aci.on.ca/catv/analog/troubleshooting.htm
+http://www.acia.sun.ac.za/projects/research/researcht.htm
+http://www.acid.uk.com/asp/display.asp?cat=membership+benefits
+http://www.acidmothers.com/Cgi-bin/crew/B_fathermoo/index_main.html
+http://www.aciworldwide.com/casestudies/
+http://www.acjournal.org/holdings/vol2/Iss1/essays/foster.htm
+http://www.aclaro.com/Site/Client_Center/WhitePapers.html
+http://www.aclosereyeview.com/Guest_Articles/Getting_Close/get_close.htm
+http://www.acls.org/op5brom.htm
+http://www.aclu-ky.org/
+http://www.aclu-sc.org/
+http://www.aclu-wa.org/Issues/students/Emmett-Kentlake.Student.Release3.30.00.html
+http://www.aclu-wa.org/Publications/Streetspeechpamphlet.html
+http://www.aclu-wi.org/youth/issues/issues.html
+http://www.aclu.org/Privacy/Privacy.cfm?ID=15952&c=39
+http://www.aclu.org/ReproductiveRights/ReproductiveRights.cfm?ID=10155&c=147
+http://www.aclu.org/ReproductiveRights/ReproductiveRights.cfm?ID=12944&c=147
+http://www.aclu.org/getequal/orga/launching2.html
+http://www.aclu.org/getequal/orga/launching5.html
+http://www.aclu.org/getequal/orga/making.html
+http://www.aclunc.org/students/demonstrate.html
+http://www.aclunc.org/students/guide/searches.html
+http://www.acluofnorthcarolina.org/studentrights2.html
+http://www.aclusandiego.org/protester_rights2003.html
+http://www.acluutah.org/prismorder.htm
+http://www.acluva.org/pages/requesthelp.html
+http://www.acm.ac.uk/disciplines/guitar.asp
+http://www.acm.ac.uk/learn-to-play-guitar.htm
+http://www.acm.ac.uk/music-business.htm
+http://www.acm.ac.uk/music-schools-in-the-uk.htm
+http://www.acm.ac.uk/part-time-music-courses.htm
+http://www.acm.ac.uk/rock-and-pop-musicians.htm
+http://www.acm.ac.uk/school-for-music.htm
+http://www.acm.edu/nickadams/01story2.htm
+http://www.acmandal.com/
+http://www.acmanet.org/about/committees.cfm
+http://www.acmegamer.com/
+http://www.acmela.com/shop.htm
+http://www.acmevermont.org/curriculum/curriculum_middle_electionLesson.asp
+http://www.acmi.net.au/AIC/DIORAMA_WOOD_1_4.html
+http://www.acmi.net.au/AIC/RADIO_HIST_AUS.html
+http://www.acmi.net.au/AIC/TELSTRA_CONNECT.html
+http://www.acmi.net.au/AIC/TV_HIST_CLIFFORD.html
+http://www.acmi.net.au/FAA4B196847E476EB67B398CD319FAB3.htm
+http://www.acminet.org/youth_art_month.htm
+http://www.acmuller.net/xml-tei-tut/ogahae-tgu2003.html
+http://www.acnatsci.org/museum/jefferson/otherPages/epochs.html
+http://www.acne-ltd.com/
+http://www.acne-tab.com/site/acupuncture-and-chinese-medicine-schools.html
+http://www.acnielsen.ca/Insights/Global%20Studies/ReachingtheBillionDollarMark.htm
+http://www.acnp.org/g4/GN401000184/CH180.html
+http://www.aco.org/ethics_technology/johannesburg_2002.htm
+http://www.aco.org/ethics_technology/lambeth_1998.htm
+http://www.acofp.org/member_publications/ca_0303.html
+http://www.acor.org/cnet/62944.html
+http://www.acord.org.uk/e-news/No4/Art6.htm
+http://www.acorntheater.com/expectations.htm
+http://www.acoustics.org/press/140th/lehrman.htm
+http://www.acoustics.org/press/145th/Newman.htm
+http://www.acoustics.org/press/147th/pedersen.htm
+http://www.acoustics.org/press/swa9601.html
+http://www.acousticshock.org/?id=press
+http://www.acoustiproducts.com/en/acoustifan.asp
+http://www.acp-cpa.ca/lettertoeditortips.htm
+http://www.acparis.org/sermons/2003_09_28_Blair.htm
+http://www.acpd.co.uk/48.html
+http://www.acponline.org/ethics/map_bibliography.htm
+http://www.acponline.org/journals/ecp/julaug01/shojania.htm
+http://www.acponline.org/journals/ecp/novdec00/hofer.htm
+http://www.acponline.org/journals/news/apr02/research.htm
+http://www.acponline.org/journals/news/may05/pm.htm
+http://www.acponline.org/public/h_care/10-griev.htm
+http://www.acq.osd.mil/dpap/contractpricing/vol2chap2.htm
+http://www.acq.osd.mil/dpap/contractpricing/vol2chap3.htm
+http://www.acq.osd.mil/dpap/contractpricing/vol2chap5.htm
+http://www.acq.osd.mil/dpap/contractpricing/vol4chap8.htm
+http://www.acq.osd.mil/dpap/contractpricing/vol5chap5.htm
+http://www.acq.osd.mil/dpap/dfars/html/current/252217.htm
+http://www.acq.osd.mil/sadbu/mentor_protege/participate/
+http://www.acqnet.gov/GSAM/current/html/Part502.html
+http://www.acqnet.gov/Library/OFPP/BestPractices/pastpeformguide.htm
+http://www.acre.org.uk/villagehalls.htm
+http://www.acs-aec.org/intss_eng.htm
+http://www.acs.edu.au/hort/roses/
+http://www.acs.ohio-state.edu/org/osuaaup/whitacre.html
+http://www.acs.org.au/national/pospaper/acs131.htm
+http://www.acs.org.au/president/1998/past/newlt.htm
+http://www.acscan.org/northcarolina
+http://www.acscd.ca/acscd/public/dhwn.nsf/0/69f5c5f3296f562288256b970082d1fd?OpenDocument
+http://www.acscsn.org/Talk_Shows_and_Stories/Featured_Talk_Shows/show74.html
+http://www.acsm-healthfitness.org/pt/re/acsm/fulltext.00135124-200505000-00008.htm
+http://www.acsnet.com/~cnoble/Tasks.html
+http://www.acsonline.org/factpack/bluewhl.htm
+http://www.acss.org/
+http://www.act-sat-prep.com/act2x.html
+http://www.act.org.nz/action/campaigns/manifesto2002/taxation.html
+http://www.act.org/actcenters/faq/
+http://www.actec.org/pubInfoArk/comm/engltrch1.htm
+http://www.acteonline.org/members/techniques/nov_dec02-story4.cfm
+http://www.acteonline.org/members/techniques/novdec03_story2.cfm
+http://www.acterna.com/united_states/workflow_solutions/
+http://www.actingconnection.com/coachingquotes.html
+http://www.actingconnection.com/sample.html
+http://www.action-figure.com/Article13266.html
+http://www.action-for-un-renewal.org.uk/pages/proposal_canadian_teacher.htm
+http://www.actionaid.org.uk/1092/press_release.html
+http://www.actionaid.org/pakistan/672.html
+http://www.actionaid.org/stratshope/oslaunch.html
+http://www.actionaids.org/
+http://www.actionbioscience.org/biotech/borlaug.html
+http://www.actionbioscience.org/evolution/benton.html
+http://www.actionbioscience.org/evolution/lenski.html
+http://www.actioncutprint.com/ezine-31.html
+http://www.actionsworld.com/termsandconditio.php
+http://www.actiontab.com/reading.html
+http://www.activator.com/classified.asp
+http://www.active-learning-site.com/sum1.htm
+http://www.active-marketer.com/2002/june/24.html
+http://www.active.com/healthclub/
+http://www.active.com/myevent/onestopshop/whateventdirectorssay.cfm
+http://www.active.com/story.cfm?story_id=6717&sidebar=569&category=century_challenge
+http://www.active.com/story.cfm?story_id=7874&sidebar=571&category=give_tri
+http://www.active.com/story.cfm?story_id=9363
+http://www.active.com/story.cfm?story_id=9703&page=2
+http://www.active.com/story.cfm?story_id=9769&category=healthclub&page=print
+http://www.active.com/story.cfm?story_id=9769&sidebar=576&category=healthclub
+http://www.active.com/walking/
+http://www.activebirthcentre.com/pb/cat_calendarofevents.shtml
+http://www.activeforlife.info/about_the_program/program_information.html
+http://www.activehotels.com/marketing_partners/item3.html
+http://www.activeliferx.com/
+http://www.activesurrey.com/content-1554
+http://www.activewin.com/reviews/xbox/software/2004/red/
+http://www.activia.co.uk/termsandconditions.asp
+http://www.activistnetwork.org.uk/modules.php?op=modload&name=News&file=article&sid=183
+http://www.activistnetwork.org.uk/modules.php?op=modload&name=News&file=article&sid=219
+http://www.activitiesforkids.com/holiday/holiday_hints.htm
+http://www.activitiesforkids.com/teacher.htm
+http://www.activitiesforkids.com/travel/travel_hints.htm
+http://www.activitywales.com/zap_cats.html
+http://www.activshopping.co.uk/
+http://www.actmagazine.com/appliedclinicaltrials/article/articleDetail.jsp?id=127796
+http://www.acton.org/blog/?/archives/224-The-New-Space-Capitalists.html
+http://www.acton.org/publicat/randl/article.php?id=344
+http://www.actorpoint.com/forums/archive/index.php/t-454.html
+http://www.actorsart.com/qualifiedcoaches.html
+http://www.actorschecklist.com/resources/commercial.html
+http://www.actorschecklist.com/resources/fitness.html
+http://www.actortips.com/products/clickbank_bsa_desc.htm
+http://www.acts.twu.ca/lbr/research_essays2.htm
+http://www.actsa.org/Angola/apm/apm0609.html
+http://www.actsofvolition.com/archives/2002/september/humanoidrobot
+http://www.actu.asn.au/public/international/apheda/1105576936_19292.html
+http://www.actu.asn.au/public/papers/2001july/
+http://www.actuaries.ie/About_the_Society/Constitution/Disciplinary_Scheme_Rules/Disciplinary_Scheme_Rules.htm
+http://www.actuary.ca/actuarial_discussion_forum/showthread.php?t=44714
+http://www.actuaryonline.com/announce.htm
+http://www.acu.edu/academics/adamscenter/resources/coursedev/syllabus/model/policies/content.html
+http://www.acu.org.uk/Home.asp
+http://www.acufinder.com/Learning_Center/Herbal_Medicine/Way_of_Tea.htm
+http://www.acufinder.com/learningcenter_article.asp?DID=43
+http://www.acuho.ohio-state.edu/2005conf/Staff%20Supervision%20and%20Developement.htm
+http://www.acumedic.com/mediapu/cnj200602.htm
+http://www.acupuncture.com/qigong_tuina/24rules.htm
+http://www.acupuncturetoday.com/archives2000/aug/08ginkgo.html
+http://www.acupuncturetoday.com/archives2000/may/05sheng.html
+http://www.acupuncturetoday.com/archives2004/jan/01tea.html
+http://www.acus.org/publications/bulletins/Other%20Bulletins/ForRelPriorities.html
+http://www.acutcmdetox.com/hiv.htm
+http://www.acypher.com/BookNotes/Gilligan.html
+http://www.ad-tech.com/sessions_byDay.asp?reqEvent=7
+http://www.ad.uiuc.edu/implement_sla.htm
+http://www.ad2000.com.au/articles/1996/oct1996p10_879.html
+http://www.ada.asn.au/policy3.htm
+http://www.ada.asn.au/policy6.htm
+http://www.adaction.org/Campaign2004/BushRecord/bushrecord.html
+http://www.adaeveningnews.com/Adanewswebpages/lettertoeditor.htm
+http://www.adage.com/news.cms?newsId=35639
+http://www.adahome.com/FAQ/team-ada.html
+http://www.adam2.org/dir/Society/Religion_and_Spirituality/Opposing_Views/Christianity/Latter_Day_Saints/index.cgi
+http://www.adambosworth.net/archives/000016.html
+http://www.adambosworth.net/archives/000017.html
+http://www.adambosworth.net/archives/000031.html
+http://www.adammathes.com/academic/computer-mediated-communication/folksonomies.html
+http://www.adammessinger.com/
+http://www.adammessinger.com/2004/05/18/michael-moore-lights-a-fire-under-cannes-with-fahrenheit-911
+http://www.adammessinger.com/2005/01/
+http://www.adammessinger.com/category/arty-stuff/web-design/
+http://www.adamsgs.org.uk/parents/Independent%20Learning%20Project%20report%20with%20Y7%202003-4.htm
+http://www.adamsmith.org/cissues/education/education-dept.htm
+http://www.adamsmith.org/cissues/pharmacy-distribution.htm
+http://www.adamsmith.org/home.htm
+http://www.adamsmith.org/policy/publications/tax-and-economy-pub.htm
+http://www.adamsmith.org/smith/quotes.htm
+http://www.adamsmith.org/smith/tms/tms-p1-s3-c3.htm
+http://www.adamsmith.org/smith/won-b2-c5.htm
+http://www.adamsmith.org/smith/won-b3-c1.htm
+http://www.adamsmith.org/thinkpiece/001337.php
+http://www.adaptivepath.com/publications/essays/archives/000032.php
+http://www.adaptivepath.com/publications/essays/archives/000365.php
+http://www.adaptivepath.com/publications/essays/archives/000385.php
+http://www.adaptivepath.com/publications/newsletter/archives/032105/index.php
+http://www.adawatch.org/
+http://www.adb.org/Documents/Speeches/2001/ms2001012.asp
+http://www.adb.org/Publications/default.asp
+http://www.adc.org/action/2001/14september2001.htm
+http://www.adc.org/index.php?id=275
+http://www.addaong.org/abc.html
+http://www.addconsults.com/
+http://www.addenbrookes.org.uk/shac/contracept.html
+http://www.addenbrookes.org.uk/working/work_life.html
+http://www.addictioncareoptions.com/club-drugs.htm
+http://www.addictmud.org/files/impale.html
+http://www.addistribune.com/Archives/2003/11/07-11-03/Agony.htm
+http://www.additudemag.com/experts.asp?DEPT_NO=302&SUB_NO=6
+http://www.additudemag.com/selfhelp.asp?DEPT_NO=408&SUB_NO=26
+http://www.addresources.org/article_home_school_report_rabiner.php
+http://www.addresources.org/article_social_skills_brown.php
+http://www.addresources.org/conference_2003_presenters.php
+http://www.addvance.com/help/adults/challenges.html
+http://www.ade.state.az.us/standards/aims/PerformanceStandards/hsreadingdescrip.asp
+http://www.adeanet.org/wgnfe/publications/abel/abel1.html
+http://www.adec.edu/clemson/papers/stukel.html
+http://www.adecco.co.uk/pr
+http://www.adecco.co.uk/pr?year=0
+http://www.adelaide.edu.au/ANZCCART/text/ethics.html
+http://www.adelaide.edu.au/campuses/northtce/
+http://www.adelaide.edu.au/news/news281.html
+http://www.adelaidejmuseum.org/history/peopleinthearts.htm
+http://www.adelphia.net/news/read.php?id=11693004&ps=1018&cat=&cps=0
+http://www.adelphia.net/news/read.php?id=11992325&ps=1014&cat=&cps=0
+http://www.adem.state.ar.us/documents/SERC/SERC%20minutes.htm
+http://www.adeptscience.dk/produkter/chemoffice/akcros.html
+http://www.adequacy.org/public/stories/2001.10.17.7917.2028.html
+http://www.adest.com.au/joe-dinapoli-trades.htm
+http://www.adf.gov/enews0504war.htm
+http://www.adhdnews.com/testforum/test1024.htm
+http://www.adhdstormwatch.com/newsletters/2003March.html
+http://www.adherents.com/largecom/fam_lds_inv.html
+http://www.adherents.com/largecom/lds_aog.html
+http://www.adhesions.org/forums/ADHESIONS.0204/0610.html
+http://www.adidas-salomon.com/en/investor/strategy/Outlook/default.asp
+http://www.adionline.org/model.html
+http://www.adis.washington.edu/policies/Glossary/Pglossary.htm
+http://www.adiscountbeauty.com/page167.html
+http://www.adit.co.uk/html/a_question_of_sorts.html
+http://www.adiversity.com/magazine/article_detail.htm?AID=95286646&rd=pf
+http://www.adjunction.com/
+http://www.adl.org/NR/exeres/B667904B-D8FF-484D-A993-96E26C714048,3EE9C1C0-EA4B-47AF-832A-92A26F3DE2FB,frameless.htm
+http://www.adl.org/hate-patrol/hate_patrol_print.asp
+http://www.adl.org/learn/adl_law_enforcement/training_israel_shai.htm?LEARN_Cat=Training&LEARN_SubCat=Training_News
+http://www.adl.org/learn/ext_us/Militia_M.asp?LEARN_Cat=Extremism&LEARN_SubCat=Extremism_in_America&xpicked=4&item=mm
+http://www.adl.org/learn/news/Amichai_Shai.asp
+http://www.adl.org/learn/news/Amichai_Shai.asp?print=true
+http://www.adl.org/religion_ps_2004/expression.asp
+http://www.adm.monash.edu.au/unisec/com/ab/aba/abahtm/04-04aba.html
+http://www.adm.uwaterloo.ca/infofsp/Fin/AFF/org_unit.html
+http://www.adm.uwaterloo.ca/interdis/international/about.htm
+http://www.admani.com/AllianceEquine/FAQs.htm
+http://www.admfincs.forces.gc.ca/admfincs/subjects/cfao/020-05_e.asp
+http://www.admfincs.forces.gc.ca/admfincs/subjects/cfao/024-01_e.asp
+http://www.admfincs.forces.gc.ca/admfincs/subjects/cfao/209-14_e.asp
+http://www.admfincs.forces.gc.ca/admfincs/subjects/daod/2008/0_e.asp
+http://www.admfincs.forces.gc.ca/admfincs/subjects/daod/6001/1_e.asp
+http://www.admh.org/data/fifa.htm
+http://www.admin.cam.ac.uk/news/press/factsheets/admissions.html
+http://www.admin.cam.ac.uk/offices/gradstud/current/thesis/format.html
+http://www.admin.cam.ac.uk/offices/pensions/cuacps/reports/cps2002/investment.html
+http://www.admin.cam.ac.uk/offices/personnel/benefits/travel.html
+http://www.admin.cam.ac.uk/offices/personnel/handbook/7.html
+http://www.admin.cam.ac.uk/reporter/1997-8/special/07/43.html
+http://www.admin.cam.ac.uk/reporter/1997-8/weekly/5746/24.html
+http://www.admin.cam.ac.uk/reporter/1998-9/weekly/5775/23.html
+http://www.admin.cam.ac.uk/reporter/1999-2000/weekly/5795/4.html
+http://www.admin.cam.ac.uk/reporter/2000-01/weekly/5851/5.html
+http://www.admin.cam.ac.uk/reporter/2002-03/special/05/45.html
+http://www.admin.cam.ac.uk/reporter/2002-03/weekly/5915/18.html
+http://www.admin.cam.ac.uk/reporter/2003-04/weekly/5965/22.html
+http://www.admin.cam.ac.uk/reporter/2004-05/weekly/5973/33.html
+http://www.admin.cam.ac.uk/reporter/2004-05/weekly/5982/21.html
+http://www.admin.cam.ac.uk/reporter/2004-05/weekly/5996/17.html
+http://www.admin.cam.ac.uk/reporter/2004-05/weekly/6001/16.html
+http://www.admin.cam.ac.uk/univ/gsprospectus/applying/entry.html
+http://www.admin.cam.ac.uk/univ/gsprospectus/subjects/landeconomy/landeconomy2b.html
+http://www.admin.cam.ac.uk/univ/newsletter/2003/aug-sep/2.html
+http://www.admin.ias.edu/air/words/Glass7.html
+http://www.admin.ias.edu/eas/
+http://www.admin.mtu.edu/admin/boc/riskindex.htm
+http://www.admin.ox.ac.uk/eop/disab/dis.shtml
+http://www.admin.ox.ac.uk/eop/har/contact.shtml
+http://www.admin.ox.ac.uk/gsp/courses/conted/arch.shtml
+http://www.admin.ox.ac.uk/ps/staff/handbooks/3/3.shtml
+http://www.admin.ox.ac.uk/safety/s600.shtml
+http://www.admin.ox.ac.uk/shw/food.shtml
+http://www.admin.ox.ac.uk/statutes/regulations/248-062.shtml
+http://www.admin.qmul.ac.uk/welfare/concerns/course/leaving/
+http://www.admin.qmul.ac.uk/welfare/money/ug/part.html
+http://www.admin.state.mn.us/assistivetechnology/transcripts/BAT.htm
+http://www.admin.state.mn.us/assistivetechnology/transcripts/freedom.htm
+http://www.admin.utah.edu/ppmanual/2/2-9-1.html
+http://www.adminassist.ca/Nina%20Spencer/listening_to_others_with_heart.htm
+http://www.adminprof.com/administrative-assistant-iscpgs/organizekids.htm
+http://www.adminschoice.com/docs/exam_stratgy.htm
+http://www.admiraltylawguide.com/conven/containers1972.html
+http://www.admiringkate.com/LettermanFeb1403.htm
+http://www.admissions.appstate.edu/residency/manual/2.htm
+http://www.admissions.ox.ac.uk/courses/mema.shtml
+http://www.admissionsconsultants.com/college/sat.asp
+http://www.admissionsforum.co.uk/archive/index.php?t-7444.html
+http://www.admissionsforum.co.uk/intl/fresher.html
+http://www.admissionsforum.co.uk/showthread.php?p=106066
+http://www.admissionsforum.co.uk/showthread.php?p=5309
+http://www.adn.com/evos/stories/EV72.html
+http://www.adn.com/life/story/6629542p-6515444c.html
+http://www.adn.com/sports/story/5972985p-5874226c.html
+http://www.adobe.co.uk/education/digkids/news/articles/3D.html
+http://www.adobe.co.uk/print/spotlights/bradshaw/main.html
+http://www.adobe.com/
+http://www.adobe.com/education/adaa/faq.html
+http://www.adobe.com/education/digkids/lessons/activities/haunted_house.html
+http://www.adobe.com/education/digkids/lessons/dali.html
+http://www.adobe.com/education/digkids/lessons/light_makes_right.html
+http://www.adobe.com/education/digkids/news/articles/space.html
+http://www.adobe.com/products/main.html
+http://www.adobe.com/support/main.html
+http://www.adobeww.org/
+http://www.adopt2000houston.org/faqs.html
+http://www.adoptachild.us/Guatemala.htm
+http://www.adopting.org/adltcope.html
+http://www.adoption.org/adopt/waiting-kids-for-adoption.php
+http://www.adoptionblog.com/MT/archives/2003_12.html
+http://www.adoptionhelp.org/adoptive_parent/what_to_expect/two_parents.html
+http://www.adoptioninformation.com/resources/article/051401a.htm
+http://www.adoptioninstitute.org/proed/forum99.html
+http://www.adoptionnetwork.com/waitingfamilies/success-stories.html?type=success&start=1
+http://www.adoptiononline.com/findafamily.html
+http://www.adoptionopen.com/waitingfamilies/
+http://www.adoptions.com/aecdevelopmental.cfm
+http://www.adoptions.com/bparpage.cfm
+http://www.adoptions.com/findafamily.html
+http://www.adoremus.org/0302wreckingball.html
+http://www.adpost.com/ca/software/Multimedia/
+http://www.adprima.com/mistakes.htm
+http://www.adprima.com/teacherwit.htm
+http://www.adr.af.mil/general/EO13203.htm
+http://www.adr.org/sp.asp?id=22014
+http://www.adr.org/sp.asp?id=22024
+http://www.adr.org/sp.asp?id=22099
+http://www.adr.org/sp.asp?id=22112
+http://www.adrants.com/2005/01/matchcom-launches-national-print.php?show_id=110718173829094499
+http://www.adrants.com/2005/01/sony-endorses-weblogs-with-site.php
+http://www.adrants.com/2005/02/body-billboardz-launches-exchange-for.php?show_id=110926093982139951
+http://www.adrants.com/headlines/2005/02/dealing-with-radios-perception-problem.php
+http://www.adrc.or.jp/view_disaster_en.php?Lang=en&Key=37&Frame=yes
+http://www.adrelevance.com/about/release6oct99.jsp
+http://www.adriangilbert.co.uk/docus/letters/letter3.html
+http://www.adrift.com/famtrpinfo02.htm
+http://www.adrift.com/rockartinfo.htm
+http://www.adslbookmarks.com/
+http://www.adslguide.org.uk/hardware/reviews/2005/q1/billion-5100s.asp
+http://www.adss.org.uk/
+http://www.adta.org/resources/students.cfm
+http://www.adtechblog.com/archives/20031103/advertainment_reaching_the_unreachable/
+http://www.adtmag.com/article.asp?id=11210
+http://www.adtmag.com/article.asp?id=9781
+http://www.adtmag.com/java/articleold.asp?id=223
+http://www.adtrader.co.uk/classhome.php?trader_id=6681&class_id=127&prevpage=1&page_id=2&search_words=
+http://www.adultwork.co.uk/SearchEnginesProfile.asp?UserID=17502
+http://www.adultwork.co.uk/SearchEnginesProfile.asp?UserID=17660
+http://www.adultwork.co.uk/SearchEnginesProfile.asp?UserID=22756
+http://www.adultwork.co.uk/SearchEnginesProfile.asp?UserID=23369
+http://www.advaita.org.uk/discourses/atmananda/atmananda5.htm
+http://www.advaita.org.uk/discourses/teachers/essence_wheeler.htm
+http://www.advamed.org/business-solutions/riskmanagement.html
+http://www.advamed.org/publicdocs/cataracts-case-study.html
+http://www.advance.uconn.edu/2000/000313/000313hs.htm
+http://www.advance.uconn.edu/2005/050124/05012410.htm
+http://www.advance.uconn.edu/2005/050131/05013101.htm
+http://www.advanced-television.com/pages/pagesb/newsdaily.html
+http://www.advanced.org/IPPM/archive.2/0867.html
+http://www.advancededucation.gov.ab.ca/other/prognewcomer/immigrantagency.asp
+http://www.advancedenergycommerce.com/fixed%20price%20program.htm
+http://www.advancedfertility.com/earlypre.htm
+http://www.advancedfightingfantasy.com/
+http://www.advancedfightingfantasy.com/amateur1.htm
+http://www.advancedsalesinstitute.com/total_selling_system.htm
+http://www.advancedscientifichealth.com/youropportunity.asp
+http://www.advancingwomen.com/career/takecharge.html
+http://www.advantageathletics.com/polevault/powervaulting.html
+http://www.advantageconsumer.com/supreme5.html
+http://www.advantagewm.co.uk/site-map.html
+http://www.advbiostructuralcorr.com/articles/professional%20references.htm
+http://www.advent-truth.co.uk/aboutus.htm
+http://www.advent-truth.co.uk/health.htm
+http://www.advent3b2.com/index.php?section=custmark&sub=casestudy_stm_triltsch
+http://www.adventist.org/beliefs/statements/main_stat29.html
+http://www.adventurasia.com/editorials/taiwan/jh_rulesroad.php
+http://www.adventure-life.com/costa/almondscoralsactivities.php
+http://www.adventurecentre.co.za/contents/training/articles/articles.asp?MID=59&Section=Articles
+http://www.adventuregamers.com/article/id,527
+http://www.adventuregamers.com/article/id,527/
+http://www.adventuregamers.com/print.php?id=373
+http://www.adventures-abroad.com/tours/html/IN4.htm
+http://www.adventuresabroad.com/index/before_you_go/money.html
+http://www.adventuresports.ie/approval-scheme/sui.html
+http://www.adverblog.com/archives/000161.htm
+http://www.adverblog.com/archives/2003_07.htm
+http://www.advicebox.com/faq.htm
+http://www.advicegoddess.com/archives/2003/08/shocked_simply.html
+http://www.adviceguide.org.uk/nm/index/family_parent/education/adult_education_organisations_which_give_information_and_advice.htm
+http://www.adviceguide.org.uk/nm/index/family_parent/family/cohabitation_and_marriage_legal_differences.htm
+http://www.adviceguide.org.uk/nm/index/family_parent/family/wills.htm
+http://www.adviceguide.org.uk/nm/index/life/employment/basic_rights_at_work.htm
+http://www.adviceguide.org.uk/nm/index/life/employment/redundancy.htm
+http://www.adviceguide.org.uk/nm/index/life/tax/income_tax_allowances.htm
+http://www.adviceguide.org.uk/nm/index/life/tax/pay_as_you_earn_common_problems.htm
+http://www.adviceguide.org.uk/nm/index/your_world/consumer_affairs/dealing_with_water.htm
+http://www.adviceguide.org.uk/nm/index/your_world/consumer_affairs/gas_supply.htm
+http://www.adviceguide.org.uk/nm/index/your_world/consumer_affairs/keeping_lost_found_and_uncollected_goods.htm
+http://www.adviceguide.org.uk/nm/nireland/family_parent/family_family_northern_ireland/cohabitation_and_marriage_legal_differences.htm
+http://www.adviceguide.org.uk/nm/scotland/family_parent/education_scotland/help_with_the_costs_of_education_scotland.htm
+http://www.adviceguide.org.uk/nm/scotland/life/employment_scotland/basic_rights_at_work.htm
+http://www.adviceguide.org.uk/nm/scotland/life/tax_scotland/income_tax_allowances.htm
+http://www.advicehq.co.uk/Divorce.htm
+http://www.advicejoe.com/
+http://www.advicenow.org.uk/go/feature/feature_142.html
+http://www.advicenow.org.uk/go/feature/feature_199.html
+http://www.adviceonline.co.uk/topicalcontent/are_you/
+http://www.advising.ltsc.ucsb.edu/transfer/newtr.php
+http://www.advising.ufl.edu/faq/probfaq.html
+http://www.advising.ufl.edu/prehealth/appservices.html
+http://www.advising.wayne.edu/curr/precls.html
+http://www.advisorybodies.doh.gov.uk/comeap/minsagenda/nt18jun99.htm
+http://www.advocacyguru.com/tipsheet.htm
+http://www.advocacyonline.net/nspcc/Nov04/past_camp_pp_young.htm
+http://www.advocatehealth.com/luth/about/patient.html
+http://www.advocatehealth.com/ssub/about/patient.html
+http://www.advocatesforchildren.org/pubs/ELLteachRepFINAL.htm
+http://www.advogato.org/article/844.html
+http://www.advogato.org/person/Artimage/
+http://www.advogato.org/person/Bram/
+http://www.advogato.org/person/guerby/
+http://www.advogato.org/person/rbultje/
+http://www.advogato.org/person/twcook/
+http://www.advogato.org/person/uweo/
+http://www.advogato.org/person/uzi/
+http://www.advogato.org/person/wiggly/
+http://www.advogato.org/person/zed/
+http://www.adwarereport.com/
+http://www.ae.ca/foodwater.html
+http://www.aea10.k12.ia.us/purpose/fund.html
+http://www.aeaweb.org/aer/styleguide.html
+http://www.aebc.gov.uk/aebc/meetings/meetings_091204_minutes.shtml
+http://www.aebc.gov.uk/aebc/subgroups/consumer_choice_meetings_280103_minutes.shtml
+http://www.aec.gov.au/_content/what/faqs/elections.htm
+http://www.aecbytes.com/review/DataCAD11.htm
+http://www.aecbytes.com/viewpoint/issue_12.htm
+http://www.aecf.org/initiatives/jobsinitiative/milwaukee.htm
+http://www.aecf.org/initiatives/jobsinitiative/seatle_sea.htm
+http://www.aecf.org/initiatives/jobsinitiative/sept_02_news.htm
+http://www.aecf.org/initiatives/success/smschool.htm
+http://www.aecnewswire.com/industrynews/Detailed/331.shtml
+http://www.aecyr-grene.org/session4.shtml
+http://www.aednet.org/ced/nov95/minds.htm
+http://www.aeecenter.org/certification/CEMpage.htm
+http://www.aegis.com/news/ap/1989/AP890402.html
+http://www.aegis.com/news/lt/2001/LT011206.html
+http://www.aegis.com/news/mh/1985/MH851104.html
+http://www.aegis.com/news/sfe/1999/SE990302.html
+http://www.aegis.com/news/suntimes/2004/ST040901.html
+http://www.aegis.com/pubs/atn/1992/ATN15609.html
+http://www.aegis.com/pubs/atn/1992/ATN15702.html
+http://www.aegis.com/pubs/iapac/2003/IA030204.html
+http://www.aei.org/events/filter.all,eventID.1064/transcript.asp
+http://www.aei.org/news/newsID.16443/news_detail.asp
+http://www.aei.org/publications/filter.all,pubID.22324/pub_detail.asp
+http://www.aei.org/publications/pubID.11424/pub_detail.asp
+http://www.aei.org/publications/pubID.14909/pub_detail.asp
+http://www.aei.org/publications/pubID.14917/pub_detail.asp
+http://www.aei.org/publications/pubID.16564/pub_detail.asp
+http://www.aei.org/publications/pubID.17760/pub_detail.asp
+http://www.aei.org/publications/pubID.20491/pub_detail.asp
+http://www.aei.org/publications/pubID.20588/pub_detail.asp
+http://www.aei.org/publications/pubID.21445/pub_detail.asp
+http://www.aei.org/publications/pubID.22275,filter.all/pub_detail.asp
+http://www.aeispeakers.com/5ktim.htm
+http://www.aeispeakers.com/lifebalance.htm
+http://www.aemj.org/cgi/content/full/9/12/1423
+http://www.aenet.org/manila-expo/page25.htm
+http://www.aeoe.org/conference/conferencearchives/spr00/knapp.html
+http://www.aerieinn.com/hospitality-agreement.htm
+http://www.aero.org/news/newsitems/awards-092401.html
+http://www.aero.und.edu/safecon2003/information.html
+http://www.aeroaccessories.com/faqs.html
+http://www.aeroflight.co.uk/waf/lith/lithaf1.htm
+http://www.aeroinfo.co.uk/
+http://www.aeronautics.ru/news/news001/news040.htm
+http://www.aeroschoolkemble.co.uk/minimise_training_time.asp
+http://www.aerosonic.com/lib2004-08-2.htm
+http://www.aerotraderonline.com/about.html?view=visitor
+http://www.aes.org/events/109/events.cfm
+http://www.aes.org/sections/chicago/
+http://www.aes.org/sections/chicago/dec97review.html
+http://www.aesessex.co.uk/Bus%20Service.htm
+http://www.aestheticrealism.org/Elijah_Cummings_Congressional_Record.html
+http://www.aetna.com/about/disclmr.html
+http://www.aetna.com/about/disclmr_docfindcustom.html
+http://www.aetna.com/cpb/data/CPBA0452.html
+http://www.aetna.com/employer/natural_alt_99.html
+http://www.aetna.com/legal_issues/saying/aei.htm
+http://www.aetna.com/producer/natural_alt_99.html
+http://www.aetnaushc.com/products/natural_alt_99.html
+http://www.aetv.com/tv/shows/city/cityconfidential2.html
+http://www.aeufederal.org.au/About/index2.html
+http://www.aeufederal.org.au/Campaigns/nowar.html
+http://www.aeufederal.org.au/Debates/index2.html
+http://www.aexusa.com/ah.htm
+http://www.af.mil/news/airman/0402/consumer.html
+http://www.af.mil/news/story.asp?storyID=123008032
+http://www.af.mil/news/story.asp?storyID=123010693
+http://www.af.mil/news/story.asp?storyID=123010778
+http://www.af.mil/news/story.asp?storyID=123010844
+http://www.af.mil/news/story.asp?storyID=91902372
+http://www.af.mil/policy/letters/pl2004_10.html
+http://www.afa.net/
+http://www.afa.org/Media/scripts/Cartwright_AWS05.asp
+http://www.afa.org/Media/scripts/Cartwright_AWS05.html
+http://www.afa.org/magazine/april2002/0402airwar.asp
+http://www.afa.org/magazine/jan1999/0199desertone.asp
+http://www.afa.org/magazine/oct2002/1002reach.asp
+http://www.afa.org/magazine/valor/1191valor.asp
+http://www.afa.org/media/scripts/Cook_Conf.asp
+http://www.afac.ab.ca/lawsregs/crueltyanimals.htm
+http://www.afausairways.org/PHL/newsline1_13_05.htm
+http://www.afb.org/CareerConnect/users/audiologist.asp
+http://www.afb.org/JVIB/JVIB950904.asp
+http://www.afb.org/Section.asp?SectionID=1&TopicID=193&SubTopicID=11&DocumentID=972
+http://www.afb.org/Section.asp?SectionID=3&TopicID=237&DocumentID=2364
+http://www.afb.org/Section.asp?SectionID=8&TopicID=197&DocumentID=2149
+http://www.afb.org/afbpress/pub.asp?DocID=aw040406
+http://www.afb.org/message_board_replies.asp?TopicID=124&FolderID=1
+http://www.afc.gov.au/filminginaustralia/unionsassoc/fiapage_27.aspx
+http://www.afc.gov.au/industrylinks/unions.aspx
+http://www.afcan.org/dossiers_mars/mars66.html
+http://www.afdb.org/opsd/what_we_do/non_lending_activities/franchising_to_support_smes_development_in_africa
+http://www.afdb.org/opsdfr/what_we_do/non_lending_activities/franchising_to_support_smes_development_in_africa
+http://www.afe.org/membership.html
+http://www.affa.gov.au/content/mediareleases.cfm?ObjectID=8FDBA198-D263-450B-88ED7E1D96ABB201
+http://www.affa.gov.au/content/output.cfm?ObjectID=C23B881C-86CD-40C3-804AAF41F7378283
+http://www.affbrainwash.com/archives/013088.php
+http://www.affbrainwash.com/archives/015080.php
+http://www.affbrainwash.com/chrisroach/archives/016089.php
+http://www.affbrainwash.com/genehealy/
+http://www.affdoublethink.com/archives/018881.php
+http://www.affiliatemarketing.co.uk/affiliatenetworks.htm
+http://www.affiliateprimer.com/starting-an-affiliate-program.html
+http://www.affinitygroup.com/gscCleanUp.htm
+http://www.affinitymc.com/Lead_People_Manage_Things.html
+http://www.affirmware.com.au/
+http://www.affitech.com/news_press.shtml
+http://www.affordablesound.com/faqs.html
+http://www.affymetrix.com/community/wayahead/coping_with_heart_failure.affx
+http://www.afge.org/splash/splash.htm
+http://www.afghanembassy.net/n_me_events.html
+http://www.afghanembassy.net/nov_diary.html
+http://www.afhu.org/site/planned_giving.htm
+http://www.afi.com/tvevents/laa/laa05.aspx
+http://www.afia.com/
+http://www.afip.org/cgi-bin/whatsnew.cgi/current.html?article=184
+http://www.afirstlook.com/applogs.cfm?expand=4
+http://www.aflcio.org/aboutaflcio/magazine/0903_amjobs.cfm
+http://www.aflcio.org/aboutaflcio/wip/wip04042005.cfm
+http://www.aflcio.org/aboutunions/joinunions/whyjoin/professionals.cfm
+http://www.aflcio.org/mediacenter/prsptm/pr01272005a.cfm
+http://www.aflcio.org/mediacenter/prsptm/tm11192002.cfm
+http://www.aflcio.org/yourjobeconomy/help/creditors.cfm
+http://www.aflcio.org/yourjobeconomy/jobs/ns05172005.cfm
+http://www.aflcio.org/yourjobeconomy/overtimepay/ns07132004.cfm
+http://www.aflcio.org/yourjobeconomy/rights/rightsatwork/reservists.cfm
+http://www.aflcio.org/yourjobeconomy/rights/workersrights/profiles.cfm
+http://www.aflcio.org/yourjobeconomy/safety/wc/wc_notes.cfm
+http://www.aflyer.com/RIGGERS.html
+http://www.afma.co.za/AFMA_Template/code_of_salmonella.htm
+http://www.afma.co.za/AFMA_Template/feedpaper7.html
+http://www.afmc-pub.wpafb.af.mil/HQ-AFMC/PA/news/archive/2003/June/0633-03.htm
+http://www.afnews.af.mil/iraq/tallil/042205-family-tallil.htm
+http://www.afognak.org/education/dw_lesson6.php
+http://www.afognak.org/education/history_chapter3.php
+http://www.afp.gov.au/afp/page/Employment/AFPRecruitment/General/PoliceMoreInfoForApplicants.htm
+http://www.afpafitness.com/articles/AStretchingFlexibility.htm
+http://www.afpc.randolph.af.mil/pahistory/Comm/comm2004/05/May6/Sports.htm
+http://www.afrepren.org/Pubs/Occasional_Papers/summ/oc9_sum.htm
+http://www.africa-confidential.com/index.aspx?pageid=22&countryid=55
+http://www.africa-first.com/Special%20ReportLeahRPatterson.htm
+http://www.africa-focus.co.za/ageo/a100705/a100705.htm
+http://www.africaaction.org/bp/ethall.htm
+http://www.africaaction.org/docs00/ang0006.htm
+http://www.africaaction.org/docs03/acc0304b.htm
+http://www.africaaction.org/docs03/hdr0307.htm
+http://www.africaaction.org/docs03/tac0303.htm
+http://www.africaaction.org/docs97/sud9702.nav.htm
+http://www.africabookcentre.com/acatalog/Non_Fiction_Picture_Books.html
+http://www.africacentre.org.uk/habari4.htm
+http://www.africadaily.com/
+http://www.africaeconomicanalysis.org/articles/gen/venturehtm.html
+http://www.africaeconomicanalysis.org/articles/gen/wtohtm.html
+http://www.africafiles.org/article.asp?ID=3832
+http://www.africafocus.org/docs04/hiv0412a.php
+http://www.africafocus.org/docs04/mal0405.php
+http://www.africaguide.com/culture/events.htm
+http://www.africamigration.com/submissions.html
+http://www.africanbirdclub.org/feature/vanga.html
+http://www.africanet.com/countries/tanzania.htm
+http://www.africanews.com/article431.html
+http://www.africanfilmny.org/network/news/Fmeyer.html
+http://www.africanfriendsearch.com/
+http://www.africanfront.com/Omarkabajj.php?printable=1
+http://www.africanfront.com/industry/industry6.php
+http://www.africanfront.com/sovereign.php
+http://www.africanhaircare.com/dreadz.htm
+http://www.africanreviewofbooks.com/100best/100bestsamples/amadiume.html
+http://www.africanreviewofbooks.com/100best/100bestsamples/magona.html
+http://www.africanreviewofbooks.com/Reviews/collen0408.html
+http://www.africanreviewofbooks.com/Reviews/fowler.html
+http://www.africare.org/at_work/sierra_leone/
+http://www.africatvl.com/safaris/zambia19day.html
+http://www.africawithin.com/bios/walker_appeal.htm
+http://www.africawoman.net/newsdetails.php?NewsID=258&AuthorID=65&CountryID=13&NewsTypeID=11&IssueID=31
+http://www.afriendlyletter.com/afl145.html
+http://www.afrika.no/Detailed/9998.html
+http://www.afrikaworld.net/afrel/atr-women.htm
+http://www.afrikaworld.net/afrel/atrxadocs.htm
+http://www.afrikaworld.net/afrel/igbo-marriage.htm
+http://www.afrikaworld.net/afrel/zinzindohoue.htm
+http://www.afrlhorizons.com/Briefs/Feb04/SN0310.html
+http://www.afrlhorizons.com/Briefs/Mar02/OSR0108.html
+http://www.afrlhorizons.com/Briefs/Sept01/ML0004.html
+http://www.afrlhorizons.com/Briefs/Sept01/SN0006.html
+http://www.afrol.com/News/sil003_ruf_abducts.htm
+http://www.afrol.com/articles/14900
+http://www.afrol.com/html/News/sil003_ruf_abducts.htm
+http://www.afrolumens.org/rising_free/waskie2.html
+http://www.afropunk.com/community/viewtopic.php?t=3430
+http://www.afsa.org/fsj/may01/dormanmay01.cfm
+http://www.afsc.org/events/baltimore.htm
+http://www.afsc.org/events/default.php
+http://www.afsc.org/iraq/news/2004/09/car-bombs-kill-42-in-baghdad-hostages.htm
+http://www.afsc.org/midatlantic/charleston.htm
+http://www.afsc.org/pwork/0112/peacewrk.htm
+http://www.afsc.org/pwork/0202/020219.htm
+http://www.afsc.org/pwork/0600/062k10.htm
+http://www.afsc.org/youthmil/conscientious-objection/counseling-during-war-time.htm
+http://www.afscme.org/wrkplace/gr05.htm
+http://www.afsi.org/OUTPOST/2001NOV/nov3.htm
+http://www.afsi.org/pblog/index.php?entry=entry050224-115049
+http://www.aft.org/pubs-reports/american_educator/issues/spring05/aypquotes.htm
+http://www.aft.org/pubs-reports/american_educator/issues/summer04/legislatecrow.htm
+http://www.aft.org/pubs-reports/american_educator/spring2003/catastrophe.html
+http://www.aft.org/pubs-reports/american_educator/winter2002/DefendWorkers.html
+http://www.aft2121.com/union_action.html
+http://www.afterabortion.info/twodead.html
+http://www.afterdawn.com/guides/archive/nero6_review_d1.cfm
+http://www.afterellen.com/TV/SFsetting.html
+http://www.afterellen.com/TV/er-season10.html
+http://www.aftermarketbusiness.com/aftermarketbusiness/article/articleDetail.jsp?id=130672
+http://www.aftimes.com/aprequel/prequel.shtml
+http://www.aftimes.com/rumors/arumor.shtml
+http://www.aftresearch.org/researchresource/wp/wp97-9.html
+http://www.ag.auburn.edu/aaes/communications/highlights/spring99/cooperative.html
+http://www.ag.auburn.edu/srs/
+http://www.ag.gov.au/agd/WWW/protectivesecurityHome.nsf/Page/Security_In_Government_Transcripts_11_May_2005_-_Speech_by_Leonie_Horrocks
+http://www.ag.iastate.edu/aginfo/speech.html
+http://www.ag.iastate.edu/agonline/ag-online.11.html
+http://www.ag.iastate.edu/centers/ccur/cropprodpilotplant.html
+http://www.ag.iastate.edu/global/newsletter/newssept_oct04.html
+http://www.ag.ndsu.nodak.edu/aginfo/entomology/entupdates/Indoor_pest/bed_bug.htm
+http://www.ag.ndsu.nodak.edu/bqa/manual/overview.htm
+http://www.ag.ohio-state.edu/~news/story.php?id=3088
+http://www.ag.org/top/beliefs/christian_character/charctr_08_drugs.cfm
+http://www.ag.org/top/beliefs/christian_character/charctr_13_social_dancing.cfm
+http://www.ag.org/top/beliefs/christian_character/charctr_15_ch_attendance.cfm
+http://www.ag.org/top/beliefs/position_papers/4171_deacons.cfm
+http://www.ag.org/top/beliefs/relationships/relations_07_ldrshphome.cfm
+http://www.ag.org/top/section_ministries.cfm
+http://www.ag.state.nd.us/
+http://www.aga.org/Content/NavigationMenu/Membership_Services/Become_a_Member/Apply_for_AGA_Limited_Membership/Apply_for_AGA_Limited_Membership.htm
+http://www.aga.org/PrinterTemplate.cfm?Section=Overview_and_FAQs&template=/ContentManagement/ContentDisplay.cfm&ContentID=14578
+http://www.aga.org/Template.cfm?Section=Overview_and_FAQs&template=/ContentManagement/ContentDisplay.cfm&ContentID=14578
+http://www.aga.org/Template.cfm?Section=Public_Relations1&template=/ContentManagement/ContentDisplay.cfm&ContentID=12641
+http://www.aga.org/Template.cfm?Section=Public_Relations1&template=/ContentManagement/ContentDisplay.cfm&ContentID=14578
+http://www.againstbombing.org/chinahands.htm
+http://www.agassifoundation.org/programs_projects.html
+http://www.agbioforum.missouri.edu/v7n3/v7n3a05-stewart.htm
+http://www.agbiotechnet.com/proceedings/May%202000/11_mcintyre.htm
+http://www.agbioworld.org/biotech_info/articles/interviews/biospectrum.html
+http://www.agbioworld.org/newsletter_wm/index.php?caseid=archive&newsid=1119
+http://www.agbu.org/agbunews/display.asp?A_ID=115
+http://www.agc.co.jp/english/rd/library/03/03.html
+http://www.agc.co.jp/english/rd/library_2001/01/01.html
+http://www.agc.co.jp/rd/library/03/03.html
+http://www.agcom.it/eng/rel_99/rel_99_44.htm
+http://www.agd.org/library/2003/april/200304_diogo.asp
+http://www.agda.asn.au/education/scholarships/ISS/TaleofTwoStudios.html
+http://www.age.uiuc.edu/bee/Research/multi-sampler/multi3.htm
+http://www.age.uiuc.edu/faculty/jkm/
+http://www.agecon.uga.edu/~wacra/presents.htm
+http://www.ageconcern.co.uk/
+http://www.ageconcern.org.uk/AgeConcern/News_775.htm
+http://www.ageconcern.org.uk/AgeConcern/News_865.htm
+http://www.ageconcern.org.uk/AgeConcern/News_871.htm
+http://www.ageconcern.org.uk/AgeConcern/News_910.htm
+http://www.ageconcern.org.uk/AgeConcern/information_768.htm
+http://www.ageconcern.org.uk/donate/
+http://www.ageconcernhillingdon.org.uk/
+http://www.ageconcernlancs.org.uk/index.cfm?id=211
+http://www.ageefilms.org/tgTATS.html
+http://www.agehr.org/publishing/catalog3oct.asp
+http://www.agelessdesign.com/nl0101-Falls1.htm
+http://www.agencypreview.com/info/about/privacy_policy.asp
+http://www.agenda2005.com/52fotos.htm
+http://www.agentsearch.com/real_estate/indiana.htm
+http://www.agentsmith.com/introguide.php?page=3
+http://www.ageworks.com/course_demo/200/module2/module2b.htm
+http://www.agfc.com/critters/endangered_species_p5.html
+http://www.aggielandcu.org/about/faq.asp
+http://www.agh-attorneys.com/3_camo_appendix_c0_.htm
+http://www.aghall.co.za/Company%20History.html
+http://www.agi-usa.org/pubs/journals/3309401.html
+http://www.agilebrain.com/jakob.html
+http://www.agiledata.org/essays/enterpriseArchitecture.html
+http://www.agilemodeling.com/essays/agileModelingXPLifecycle.htm
+http://www.agimo.gov.au/infrastructure/oss/what
+http://www.aging.pitt.edu/seniors/ethical-issues.asp
+http://www.agingkansas.org/kdoa/publications/alzheimers/chapt8.htm
+http://www.agingstats.gov/chartbook2000/economics.html
+http://www.agingstats.gov/chartbook2000/healthcare.html
+http://www.agingstats.gov/chartbook2004/healthcare.html
+http://www.agingstats.gov/chartbook2004/healthrisks.html
+http://www.agingwithdignity.org/answers.html
+http://www.agitprop.org.au/nowar/20030210_fair_failure_of_skepticism.php
+http://www.agiweb.org/gap/legis107/energy.html
+http://www.agnld.uni-potsdam.de/~marwan/rp/crps.php
+http://www.agnostic.org/BIBLEE-03.htm
+http://www.ago.state.ma.us/sp.cfm?pageid=1443
+http://www.ago.state.ma.us/sp.cfm?pageid=1444
+http://www.ago.state.ma.us/sp.cfm?pageid=1459
+http://www.ago.state.nm.us/divs/civil/opinions/a2003/DefinitionOfWildHorses.htm
+http://www.agocg.ac.uk/reports/graphics/31/chapter4.htm
+http://www.agocg.ac.uk/reports/mmedia/network/sect2.htm
+http://www.agonybooth.com/lepus/default.asp?Page=5
+http://www.agora-gallery.com/artInvestFAQ.asp
+http://www.agoramed.gr/agoramed_04/PAST_agoras/agora98/sun16_20.htm
+http://www.agorics.com/Library/agoricpapers/ce/ce5.html
+http://www.agorics.com/Library/dsr.html
+http://www.agr.gc.ca/itpd-dpci/english/consultations/infodocIII.htm
+http://www.agr.gc.ca/pfra/drought/info/dugout_e.htm
+http://www.agr.gc.ca/pfra/water/wqcattle_e.htm
+http://www.agr.gov.sk.ca/DOCS/econ_farm_man/risk/grainmrkt.asp
+http://www.agr.state.tx.us/producer_info/livestock/mkt_export.htm
+http://www.agrabilityproject.org/2001workshop.cfm
+http://www.agrabilityproject.org/events/workshop2002.cfm
+http://www.agrabilityproject.org/events/workshop2004/
+http://www.agreaterdate.com/Categories/Regional-minnesota.htm
+http://www.agreaterdate.com/Categories/Webcam-Dating.htm
+http://www.agri-labourpool.com/jobseekers/postings/electricalindustrialcontrolposition/8387.html
+http://www.agriaware.ie/default.asp?com=&org=&ACT=5&content=15&id=22&mnu=22
+http://www.agriaware.ie/default.asp?com=&org=&ACT=5&content=25&id=22&mnu=22
+http://www.agriaware.ie/default.asp?com=&org=&ACT=5&content=26&id=22&mnu=22
+http://www.agriaware.ie/default.asp?com=&org=&ACT=5&content=28&id=22&mnu=22
+http://www.agriaware.ie/default.asp?com=&org=&ACT=5&content=34&id=22&mnu=22
+http://www.agriaware.ie/default.asp?com=&org=&ACT=5&content=45&id=22&mnu=22
+http://www.agriaware.ie/default.asp?com=&org=&ACT=5&content=5&id=22&mnu=22
+http://www.agriaware.ie/default.asp?com=&org=&ACT=5&content=8&id=22&mnu=22
+http://www.agriaware.ie/default.asp?com=&org=&ACT=5&content=9&id=22&mnu=22
+http://www.agricareersinc.com/cand_bank.htm
+http://www.agricoreunited.com/cgi-bin/bvsm/AU/Invest/QuarterlyReports/index.jsp?auReport=1999_q1_report_u
+http://www.agriculturaleducation.org/workroom/Vacancies/vacancylist.asp
+http://www.agridata.co.uk/agridata_support_faq.htm
+http://www.agrihelp.com/pdlfsheep.htm
+http://www.agrnews.org/issues/66/
+http://www.ags.gov.ab.ca/publications/ATLAS_WWW/A_CH33/CH_33.shtml
+http://www.ags.uci.edu/~dehill/witchhunt/ccla/pages/swan.htm
+http://www.agu.org/history/SV.shtml
+http://www.agu.org/inside/awards/langmuir.html
+http://www.agu.org/meetings/cc03acall.html
+http://www.agu.org/meetings/sm05/sm05-sessions/sm05_A14A.html
+http://www.agu.org/meetings/sm05/sm05-sessions/sm05_SA12A.html
+http://www.agu.org/meetings/sm05/sm05-sessions/sm05_SH43B.html
+http://www.agu.org/sci_soc/cowley.html
+http://www.agu.org/sci_soc/prrl/jh012003.html
+http://www.agu.org/sci_soc/prrl/prrl0335.html
+http://www.agway.com/pet_owners/
+http://www.agyris.net/v3/articles/article.asp?id=50
+http://www.agyris.net/v3/encyclopedia/gods/god.asp?id=970843675
+http://www.ahapoetry.com/PP1000..htm
+http://www.ahawkins.org/
+http://www.ahc.gov.au/publications/generalpubs/annual-report2002/chapter13.html
+http://www.ahc.gov.au/publications/generalpubs/nourishing/chapter1.html
+http://www.ahcj.umn.edu/qualityguide/chapter2.html
+http://www.ahcpr.gov/clinic/alzcons.htm
+http://www.ahcpub.com/ahc_root_html/hot/archive/2004/hiv062004.html
+http://www.ahcpub.com/ahc_root_html/hot/archive/ama0100.html
+http://www.aheadinc.org/activities/tanzania/phc.htm
+http://www.ahf.org.uk/Sainsburysfeb2001.asp
+http://www.ahherald.com/herald_1101.htm
+http://www.ahimsadogtraining.com/handouts/leash.html
+http://www.ahma.org/library/public/2003%20Annual%20Report/page13.html
+http://www.ahold.com/
+http://www.ahpp.org/about/core.htm
+http://www.ahpweb.org/cbi/icr.html
+http://www.ahpweb.org/pub/perspective/heart.html
+http://www.ahrma.org/whatsnew.htm
+http://www.ahrmio.org/board.php
+http://www.ahrq.gov/browse/hospital.htm
+http://www.ahrq.gov/clinic/epcsums/prolongsum.htm
+http://www.ahrq.gov/clinic/prev/lipidwh.htm
+http://www.ahrq.gov/clinic/ptsafety/chap16a.htm
+http://www.ahrq.gov/clinic/vision/
+http://www.ahrq.gov/consumer/20tipkid.htm
+http://www.ahrq.gov/consumer/20tips.htm
+http://www.ahrq.gov/consumer/hlthpln1.htm
+http://www.ahrq.gov/consumer/quicktips/doctalk.htm
+http://www.ahrq.gov/consumer/uterine1.htm
+http://www.ahrq.gov/data/hcup/factbk4/factbk4.htm
+http://www.ahrq.gov/news/press/pr2002/ostscrpr.htm
+http://www.ahrq.gov/news/ulp/indinsurancetele/indinsurtran1.htm
+http://www.ahrq.gov/news/ulp/safety/ulpsfty4.htm
+http://www.ahrq.gov/news/workfact.htm
+http://www.ahrq.gov/ppip/activity.htm
+http://www.ahrq.gov/ppip/manual/
+http://www.ahrq.gov/ppip/pptools.htm
+http://www.ahrq.gov/qual/cahps/hcahpmtg03.htm
+http://www.ahrq.gov/qual/nhqr04/premeasures.htm
+http://www.ahrq.gov/qual/ptsfconf2.htm
+http://www.ahrq.gov/research/altsites/altsite7.htm
+http://www.ahrq.gov/research/cbmprophyl/cbmpgde2.htm
+http://www.ahrq.gov/research/hospdrills/hospdrill.htm
+http://www.ahrq.gov/research/jul96/dept1.htm
+http://www.ahs.uwaterloo.ca/~wells/workplace_studies.htm
+http://www.ahsd25.k12.il.us/LearningStandards/six.html
+http://www.ahuri.edu.au/global/global/modules/getDocument.cfm?documentId=728
+http://www.ahya.org/amm/modules.php?name=Sections&op=viewarticle&artid=158
+http://www.ai.org.za/electronic_monograph.asp?ID=2
+http://www.aia-aerospace.org/aianews/features/team_america/faq.cfm
+http://www.aia.com.sg/Content.asp?ca_typeid=1&ca_categoryid=7&ca_articleid=2
+http://www.aia.org/aiarchitect/thisweek05/tw0527/0527pw_greenstreetarts.htm
+http://www.aia.org/aiarchitect/thisweek05/tw0603/0603bp_riskman.htm
+http://www.aia.org/aiarchitect/thisweek05/tw0603/0603restore.htm
+http://www.aia.org/cae_a_education
+http://www.aia.org/nwsltr_cae.cfm?pagename=cae_a_education
+http://www.aia.org/nwsltr_pm.cfm?pagename=pm_a_balance
+http://www.aia.org/nwsltr_pm.cfm?pagename=pm_a_planning
+http://www.aia.org/nwsltr_print.cfm?pagename=cae_a_education
+http://www.aia.org/pa_strategicplan
+http://www.aia.org/pm_a_20030801_managing_design
+http://www.aia.org/pm_a_planning
+http://www.aia.org/print_template.cfm?pagename=cae_a_education
+http://www.aia.org/print_template.cfm?pagename=pm_a_planning
+http://www.aia.org/release_042605_sdat
+http://www.aiaa.org/content.cfm?pageid=300
+http://www.aiada.org/article.asp?id=23797
+http://www.aiada.org/article.asp?id=31092
+http://www.aiada.org/article.asp?id=36854
+http://www.aiada.org/article.asp?id=37725&cat=Death+Tax
+http://www.aiaff.org/pages/593657/
+http://www.aiafla.org/
+http://www.aiai.ed.ac.uk/~bat/sea-city.html
+http://www.aiasnatl.org/info/0409/forum.htm
+http://www.aiatsis.gov.au/lbry/dig_prgm/sorrybooks/sorrybooks_intro.htm
+http://www.aibs.org/careers/
+http://www.aibs.org/public-policy-reports/public-policy-reports-2005_01_18.html
+http://www.aicae.org/
+http://www.aiccumentor.org/FinAid/step1.asp
+http://www.aicgs.org/c/brimmer.shtml
+http://www.aicgs.org/c/nesshoever.shtml
+http://www.aicgs.org/c/transatlantic.shtml
+http://www.aicgs.org/events/2001/balkans_conf_summary.shtml
+http://www.aiche.org/careerservices/manage/cheprofiles/jonho.htm
+http://www.aicpa.org/info/birdseye02.htm
+http://www.aicpa.org/members/glossary/a.htm
+http://www.aicpa.org/pubs/cpaltr/Oct2002/add.htm
+http://www.aicpa.org/pubs/jofa/dec2003/beaton.htm
+http://www.aicpa.org/pubs/jofa/jul2002/lindow.htm
+http://www.aicpa.org/pubs/jofa/nov2004/newman.htm
+http://www.aicpa.org/pubs/jofa/oct2000/opinion.htm
+http://www.aicpa.org/pubs/jofa/oct2004/burrage.htm
+http://www.aicr.org.uk/news.stm
+http://www.aicr.org/press/pubsearchdetail.lasso?index=1318
+http://www.aidanbell.com/html/hkbell/AhFactor.htm
+http://www.aidc.org.za/?q=book/view/128
+http://www.aidc.org.za/?q=book/view/94
+http://www.aides.org/europe/exec/chngexec/expmeet1.htm
+http://www.aidindia.org/publications/proceedings/india_1999/volun2.htm
+http://www.aids.org/factSheets/202-Choosing-an-HIV-Care-Provider.html
+http://www.aidsalliance.org/sw5207.asp?page=1
+http://www.aidscience.org/Articles/AIDScience037.asp
+http://www.aidscience.org/Science/Cohen289(5478)368.html
+http://www.aidshealth.org/askthedoc/
+http://www.aidsinfonyc.org/pwahg/notes/pwg1.html
+http://www.aidsinfonyc.org/pwahg/notes/wtp1.html
+http://www.aidslaw.ca/Maincontent/issues/Immigration/immigrationFAQ2003_part1.htm
+http://www.aidslaw.ca/Maincontent/issues/care-treatment.htm
+http://www.aidslaw.ca/Maincontent/otherdocs/Newsletter/October1996/23HOMEE.html
+http://www.aidsmap.com/en/docs/41A3E89E-BD53-4D01-8D58-3C16F6676DE1.asp
+http://www.aidsmap.com/en/docs/969A6B2B-595F-4F05-BD07-534F8FAF9CFE.asp
+http://www.aidsmap.com/en/docs/A7FEA71A-7129-4CA7-B086-E593A75085F2.asp
+http://www.aidsmap.com/en/docs/C7462826-8708-4C21-90EB-7AE354CBE24D.asp
+http://www.aidsmap.com/en/news/871A9B2F-7349-4405-974C-5ADF02D1844F.asp
+http://www.aidsmap.com/en/news/94698640-181B-4D28-931E-0844006CCA15.asp
+http://www.aidsmeds.com/Fusetalk/messageview.cfm?catid=10&threadid=16298
+http://www.aidsmeds.com/Fusetalk/messageview.cfm?catid=8&threadid=17590
+http://www.aidsonline.com/pt/re/aids/fulltext.00002030-199811000-00007.htm
+http://www.aidsonline.com/pt/re/aids/fulltext.00002030-199818000-00006.htm
+http://www.aidworkers.net/admin/records3.html
+http://www.aidworkers.net/personal/health.html
+http://www.aif.com/2003articles/Medmaljoint.htm
+http://www.aifs.gov.au/institute/afrc7/warner-smith.html
+http://www.aifs.gov.au/institute/afrcpapers/devaus.html
+http://www.aifs.gov.au/institute/afrcpapers/skoien.html
+http://www.aiga.org/content.cfm?contentalias=cg_popupbriefinbriefpromo
+http://www.aigany.org/tools/taxes.html
+http://www.aiic.net/ViewPage.cfm/article21.htm
+http://www.aiic.net/en/prof/how/paradigms_gained.htm
+http://www.aikido-world.com/articles/Peter_Bussell/Peter%20Bussell-interview1a.htm
+http://www.aikidoonline.com/Discussions/discuss_anecdote.html
+http://www.aikidoonline.com/Features/Kurita.htm
+http://www.aikiweb.com/about/seminars/saito0999.html
+http://www.aila.org.au/information/landscape-architecture/historyhendry/history-hendry.htm
+http://www.aila.org/
+http://www.aila.org/fileViewer.aspx?docID=12760
+http://www.ails.com.au/enquiries.php3
+http://www.ails.com.au/register.html
+http://www.aim-digest.com/gateway/pages/heart/articles/gene1.htm
+http://www.aim.org/briefing/A2209_0_5_0_C/
+http://www.aim.org/don_blog
+http://www.aim25.ac.uk/cgi-bin/search2?coll_id=2333&inst_id=5
+http://www.aim25.ac.uk/cgi-bin/search2?coll_id=7104&inst_id=8
+http://www.aima.com.au/customs.html
+http://www.aimawaymessages.com/awaymessages.php?category=Food
+http://www.aims.gov.au/pages/about/communications/expert-listing.html
+http://www.aims.gov.au/pages/research/coral-bleaching/scr2000/scr-00gcrmn-report.html
+http://www.aims.gov.au/pages/research/marlin/black/pages/bm-01.html
+http://www.aimsa.com.au/ir.cfm
+http://www.aimshomeloans.com.au/aboutaims/aboutus.htm
+http://www.aimwell.org/Books/Library/Mahasi/Hemavata/Lying/lying.html
+http://www.ain.cu/2004/noviembre/nov05iggenglish04.htm
+http://www.ainc-inac.gc.ca/ch/wmn/index_e.html
+http://www.ainc-inac.gc.ca/nr/tran/fpt_e.html
+http://www.ainc-inac.gc.ca/pr/info/info104_e.html
+http://www.ainc-inac.gc.ca/ps/ecd/env/rsp_e.html
+http://www.aintitcool.com/display.cgi?id=15853
+http://www.aip.org/148th/schroeter.html
+http://www.aip.org/history/climate/sloan/icedrill/euro-amer.htm
+http://www.aip.org/tip/INPHFA/vol-10/iss-5/p26.html
+http://www.aip.org/tip/INPHFA/vol-10/iss-6/p15.html
+http://www.aiph.artinstitutes.edu/programs_detail.asp?ProgramID=6&locid=9&degtype=3
+http://www.aips-media.com/cgi-aips/news.cgi?iss=2004/1&chap=5
+http://www.aipsnews.com/pr08.htm
+http://www.air-land-sea-products.com/
+http://www.air-separation-plants.com/oxygen-plants-expansion-engine.html
+http://www.air-zone.com/truth.html
+http://www.air.org/cecp/resources/safe&drug_free/appendixD.htm
+http://www.air.org/usability/
+http://www.airamericaplace.com/index.php
+http://www.airamericaradio.com/
+http://www.airamericaradio.com/shows/morningsedition/comedy.asp
+http://www.airbagindustries.com/archives/006719.php
+http://www.airbagindustries.com/archives/007058.php
+http://www.airbornemuseum.org/nieuws/news_uk.htm
+http://www.airc.org/bio_sittingbull.cfm?ep=10&ec=16
+http://www.airchek-windowdepot.com/products.html
+http://www.aircourier.co.uk/faq3.htm
+http://www.airdocs.com/why_business.aspx
+http://www.airenet.co.uk/alife/
+http://www.airenet.co.uk/alife/2003_07.html
+http://www.airflow.com/techtop/techf002.htm
+http://www.airforce.forces.gc.ca/central_band/directors_detail_e.asp
+http://www.airguns.net/aafta/faq.html
+http://www.airguns.net/faq.html
+http://www.airheads.org/old/index.php?Events
+http://www.airlinequality.com/Forum/air_can_2.htm
+http://www.airlinequality.com/Forum/biman-2.htm
+http://www.airlinequality.com/Forum/eva.htm
+http://www.airlines.org/ga/d.aspx?nid=9014
+http://www.airmailpioneers.org/Pilots/AartSmith.htm
+http://www.airmalta.com/page.jsp?id=4048&siteid=1
+http://www.airmech.co.uk/ubb/ultimatebb.php?/topic/80/233.html
+http://www.airnav.com/airport/12J
+http://www.airporticearena.com/
+http://www.airports.co.za/home.asp?pid=394
+http://www.airports.co.za/tools/Printbody.asp?pid=394
+http://www.airpower.maxwell.af.mil/airchronicles/apj/apj04/fal04/vorfal04.html
+http://www.airpower.maxwell.af.mil/airchronicles/apj/apj04/win04/cox.html
+http://www.airpower.maxwell.af.mil/airchronicles/apj/apj94/lewis.html
+http://www.airpower.maxwell.af.mil/airchronicles/apj/mann.html
+http://www.airpower.maxwell.af.mil/airchronicles/aureview/1984/may-jun/jensen.html
+http://www.airpower.maxwell.af.mil/airchronicles/cc/baker.html
+http://www.airpower.maxwell.af.mil/airchronicles/cc/shaw.html
+http://www.airpower.maxwell.af.mil/airchronicles/cc/sofpaper.html
+http://www.airpower.maxwell.af.mil/airchronicles/cc/strong.html
+http://www.airquality.co.uk/archive/what_are_we_doing.php
+http://www.airraro.com/general_conditions.html
+http://www.airsafe.com/kidsafe/kidsolo.htm
+http://www.airtransat.com/en/4_6_1.asp
+http://www.airwolf-shake.com/
+http://www.ais-sim.com/news_press_releases_082603.htm
+http://www.aisavannah.com/
+http://www.aisg.on.ca/stained_glass_publications/leadline/1994/portfolio.htm
+http://www.aish.com/SSI/articleToPrint.asp?PageURL=/family/rebbitzen/Struggling_With_Overeating.xml&torahportion=
+http://www.aish.com/SSI/articleToPrint.asp?PageURL=/literacy/mitzvahs/Lively_Introduction_to_Blessings.xml&torahportion=
+http://www.aish.com/SSI/articleToPrint.asp?PageURL=/torahportion/shalomweekly/Beshalach_5764.xml&torahportion=
+http://www.aish.com/SSI/articleToPrint.asp?PageURL=/torahportion/shalomweekly/Beshalach_5764.xml&torahportion=Beshalach
+http://www.aish.com/SSI/articleToPrint.asp?PageURL=/tubshvat/tubshvatcustoms/Kabbalistic_Tu_Bshvat_Seder.xml&torahportion=
+http://www.aish.com/SSI/articleToPrint.asp?PageURL=/tubshvat/tubshvatdefault/Kabbalistic_Tu_Bshvat_Seder.xml&torahportion=
+http://www.aish.com/dating/advice/Dating_Advice_108_-_Leaving_the_Nest.asp
+http://www.aish.com/dating/advice/Dating_Advice_12_-_Financial_Decisions.asp
+http://www.aish.com/dating/advice/Dating_Advice_158_-_The_Negative_Role_Models.asp
+http://www.aish.com/dating/advice/Dating_Advice_34_-_Physical_Barrier.asp
+http://www.aish.com/dating/advice/Dating_Advice_72_-_Breaking_the_Barrier.asp
+http://www.aish.com/family/mensch/Life_is_for_Love.asp
+http://www.aish.com/literacy/jewishhistory/The_Impact_of_the_Bible_4_-__-Proclaim_Liberty_throughout_the_Land...-.asp
+http://www.aish.com/societyWork/society/Standing_Strong_against_Terrorism.asp
+http://www.aish.com/spirituality/growth/Growth_or_Death_Ethics_of_the_Fathers_113.asp
+http://www.aish.com/spirituality/growth/I_Cant_Wait_for_the_Day_When....asp
+http://www.aish.com/spirituality/odysseys/The_Yo-Yo_In_the_Window.asp
+http://www.aishe.org/iutn-cutl-1998/
+http://www.aishe.org/resources/oecd-review-2004/oecd-review-2004.html
+http://www.aisn.net/facility.asp
+http://www.aisq.qld.edu.au/
+http://www.ait.org.tw/en/about_ait/tra/
+http://www.aitc.co.uk/press_centre/default.asp?id=3568
+http://www.aitc.co.uk/press_centre/default.asp?id=4225
+http://www.aitchisons.co.uk/about.htm
+http://www.aitech.ac.jp/~ckelly/SMF.html
+http://www.aitechnology.com/avantetech/hipa-trakker/errors.html
+http://www.aiv.aii.edu/aboutus_jobs.asp
+http://www.aivosto.com/project/project.html
+http://www.ajarn.com/
+http://www.ajarn.com/Banter/whereare%20the%20teachers.htm
+http://www.ajarn.com/Contris/schertzerfebruary2005.htm
+http://www.ajc.com/fitandtrim
+http://www.ajc.com/health/content/custom/blogs/weightloss/
+http://www.ajc.com/metro/content/metro/atlanta/0605/20southfulton.html
+http://www.ajc.com/news/content/custom/blogs/guard/
+http://www.ajc.com/news/content/custom/blogs/guard/entries/2005/05/
+http://www.ajc.com/news/content/living/homeandgarden/0305/25lighting.html
+http://www.ajc.com/news/content/metro/atlanta/0605/20southfulton.html
+http://www.ajc.com/opinion/content/opinion/bookman/
+http://www.ajc.com/travel/content/travel/cruises/stories/cruiseguide/13trcruisesailing.html
+http://www.ajc.com/travel/content/travel/resources/stories/goguide2005/13trgoeuro.html
+http://www.ajc.com/travel/content/travel/southeast/fl_stories/0105/09trflaseminolex.html
+http://www.ajc.org/InTheMedia/PubAntisemitism.asp?did=619
+http://www.ajc.org/InTheMedia/PubAntisemitism.asp?did=619&pid=1418
+http://www.ajc.org/InTheMedia/PublicationsPrint.asp?did=619
+http://www.ajc.org/InTheMedia/RelatedArticles.asp?did=1066
+http://www.ajccars.com/content/2004carguide/brand_ford.html
+http://www.ajchomefinder.com/content/news.html
+http://www.ajchomefinder.com/newsinclude/content/0104/21small.html
+http://www.ajchomefinder.com/newsinclude/content/0504/30inside.html
+http://www.ajcn.org/cgi/content/full/73/5/914
+http://www.ajcn.org/cgi/content/full/79/3/487
+http://www.ajcn.org/cgi/content/full/80/2/526
+http://www.ajcn.org/cgi/content/full/80/3/633
+http://www.ajdrake.com/e456_spr_03/materials/guides/syl_advice.htm
+http://www.ajdrake.com/teachers/teaching/questions/johnson_rasselas_drake.htm
+http://www.ajkids.com/hr_site/AboutUs.asp
+http://www.ajnascarracing.com/050904.htm
+http://www.ajph.org/cgi/content/full/93/8/1342
+http://www.ajplus.co.uk/b_bank/search_results_details/?report_ID=6518&report_num=0&channelid=6
+http://www.ajr.org.uk/pastjournal36.htm
+http://www.ajr.org/Article.asp?id=3613
+http://www.ajr.org/Article.asp?id=3736
+http://www.ajr.org/Article.asp?id=3807
+http://www.ajr.org/Article.asp?id=3812
+http://www.ajr.org/article_printable.asp?id=3172
+http://www.ajtmh.org/cgi/content/full/68/4_suppl/128
+http://www.ajwrb.org/jme/jme.html
+http://www.ajwrb.org/science/meal.shtml
+http://www.ajwrb.org/wjm/wjm.htm
+http://www.ak-sar-ben.com/years.html
+http://www.akc.org/breeds/boxer/index.cfm
+http://www.akc.org/breeds/rottweiler/index.cfm
+http://www.akenglish.com/Windows/AKEnglish/AKEnglish_Two/akenglish_two.html
+http://www.akerbeltz.org/rannsachadh/gaeliclearners.htm
+http://www.akerbeltz.org/rannsachadh/officialstatus.htm
+http://www.akf.dk/dk2005/summary/pisa_kbh.htm
+http://www.akirarabelais.com/i/i.html
+http://www.akme.btinternet.co.uk/mhblack.html
+http://www.aknerr.com/newsletter1/essentials.html
+http://www.aksharamala.com/forums/showthread.php?threadid=13994
+http://www.akshin.net/introduction/intro-suffering.htm
+http://www.akzonobel.com/misc/downloadabledoc.asp?tp=1&id=ZlMmpXf5UzQ%3D&number=4&l=English
+http://www.al-amana.org/index.php
+http://www.al-bab.com/arab/countries/iraq/who.htm
+http://www.al-bab.com/arab/docs/pal/mitchell3.htm
+http://www.al-bab.com/bys/articles/matthews96.htm
+http://www.al-bab.com/yemen/gov/amend00.htm
+http://www.al-bab.com/yet/places.htm
+http://www.al-islam.com/articles/articles-e.asp?fname=tui%20ch6
+http://www.al-islam.org/laws/marriage1.html
+http://www.al-jarida.net/Magazine/Hamza1.html
+http://www.ala.org/Template.cfm?Section=coppa&Template=/ContentManagement/ContentDisplay.cfm&ContentID=11061
+http://www.ala.org/Template.cfm?Section=mediarelations&Template=/ContentManagement/ContentDisplay.cfm&ContentID=16663
+http://www.ala.org/ala/accreditation/lisdirb/lisdirectory.htm
+http://www.ala.org/ala/acrl/acrlissues/effectiveprac/contributeeffective.htm
+http://www.ala.org/ala/acrl/acrlpubs/crlnews/backissues1999/julyaugust4/grantresources.htm
+http://www.ala.org/ala/acrl/acrlstandards/infolitscitech.htm
+http://www.ala.org/ala/oif/bannedbooksweek/challengedbanned/challengedbanned.htm
+http://www.ala.org/ala/washoff/WOissues/civilliberties/coppa/coppaexamples.htm
+http://www.ala.org/ala/yalsa/booklistsawards/selecteddvds/selecteddvdsvideospolicies.htm
+http://www.ala.org/template.cfm?Section=pio&Template=/cfapps/pio/statesort2.cfm&state=IN
+http://www.alabamaforestowners.com/CILive/CI041117.htm
+http://www.alabamagameandfish.com/fishing/stripers-hybrids-fishing/AL_0505_01/
+http://www.aladdin.com/HASPSL/Reduce_Costs.asp
+http://www.alakhawayn.ma/CampusLife/6-4-2asofJuly092004.htm
+http://www.alamod.net/alamod/index_en.php3?page=agenda
+http://www.alamut.com/cv/interviews/0103_INS.html
+http://www.alamut.com/past/0002.html
+http://www.alan-mason.co.uk/wedding_page_12.htm
+http://www.alan-partridge.co.uk/scripts/thedaytoday/daytod2.htm
+http://www.alanemrich.com/CSR_pages/CSRspeaks.htm
+http://www.alanluber.com/pcfearfactor/Commentary/pcmigrationtools.htm
+http://www.alanluber.com/pcfearfactor/readerscomments.htm
+http://www.alaska.edu/opa/eInfo/index.xml?StoryID=114
+http://www.alaskastatefair.org/2005/aboutus/directions.html
+http://www.alaskawebs.com/adsa/akdsacharters.htm
+http://www.alastairmcintosh.com/articles/2005-ern.htm
+http://www.alaw.org/air_quality/breathe_easy_network/
+http://www.alaw.org/support_alaw/climb_for_clean_air/registered_climbers/training_schedule.html
+http://www.alba.org.uk/links/org.html
+http://www.alba.org.uk/localby/localbyreview.html
+http://www.alba.org.uk/nescotland/nescotresult9.html
+http://www.alba.org.uk/polls/030804.html
+http://www.alba.org.uk/scot99constit/w02.html
+http://www.albahouse.org/Dealing.htm
+http://www.albany.edu/grad/expenses.html
+http://www.albany.edu/veterans/archives/individuals/jonesletter.htm
+http://www.albanyinstitute.org/HTML/history.htm
+http://www.albasrah.net/maqalat/english/0105/GI-Special-3A17-I%20Didnt-Go-Into-The-Army-To-Kill.htm
+http://www.albasrah.net/maqalat/english/1204/GI-Specia-l2C65-Military-Resistance-To-War-Growing.htm
+http://www.albasrah.net/moqawama/english/0504/iraqiresistancereport_8-90504.htm
+http://www.albasrah.net/moqawama/english/0804/iraqiresistancereport_010804.htm
+http://www.albasrah.net/moqawama/english/1104/iraqiresistancereport_271104.htm
+http://www.albasrah.net/moqawama/english/1204/iraqiresistancereport_231204.htm
+http://www.albawest.com/scots.html
+http://www.albedo.co.uk/goodies/logsite/lsdsdoc.cfm
+http://www.albemarle-london.com/rnt-talkingcure.html
+http://www.albemarle-london.com/taboo.html
+http://www.albertapalliative.net/APN/PCHB/15_SupportiveCarePatientsFamily.html
+http://www.albertarose.org/
+http://www.albertson.edu/aboutaci/liberal_arts/la_lecture.asp
+http://www.albinism.org/conference.html
+http://www.albionmich.com/history/histor_notebook/R980413.shtml
+http://www.albmolecular.com/features/tekreps/vol07/no11/
+http://www.albright.edu/reporter/wint02/edge1.html
+http://www.albumvote.co.uk/u/u2/achtung_baby.htm
+http://www.albuquerquejournal.com/santafe/venuenorth/266431venuenorth12-03-04.htm
+http://www.alchemyinstitute.com/course.htm
+http://www.alchemyinstitute.com/ptrans.htm
+http://www.alchemysite.com/blog/more_human.html
+http://www.alchemywebsite.com/p-fermen.html
+http://www.alcoa.com/australia/en/news/speeches/ageing_population.asp
+http://www.alcoa.com/global/en/environment/climate_change/saying.asp
+http://www.alcoholconcern.org.uk/servlets/doc/465
+http://www.alcoholconcern.org.uk/servlets/wrapper/knowledgebase.jsp?topic_id=5
+http://www.alcoholfreechildren.org/en/research/index.cfm
+http://www.alcoholinformation.isdscotland.org/alcohol_misuse/servlet/controller?p_service=Content.show&p_applic=CCC&pContentID=1599
+http://www.alcoholinformation.isdscotland.org/alcohol_misuse/servlet/controller?p_service=Content.show&p_applic=CCC&pContentID=2013
+http://www.alcoholismtreatment.org/step_one.htm
+http://www.alcoholreviews.com/ALCOHOLTOOLS/index.shtml
+http://www.alcor.org/Library/html/CostOfCryonics.html
+http://www.alcor.org/Library/html/bringingdixieback.html
+http://www.alcor.org/Library/html/standby3.html
+http://www.alcor.org/conferences/2002/
+http://www.alcor.org/printable.cgi?fname=Library%2Fhtml%2Fbringingdixieback.html
+http://www.alcrevival.com/statement_of_faith.htm
+http://www.alcyone.com/max/lit/war/xii.html
+http://www.aldea.com/cenic/phase2/amb.html
+http://www.alderhey.com/RLCH/cardiac_statistics_data.asp
+http://www.aldine.k12.tx.us/
+http://www.aldine.k12.tx.us/news/index.cfm
+http://www.aldine.k12.tx.us/news/specific_article.cfm?ID=609
+http://www.aldridge.com/t86_fea.html
+http://www.alertnet.org/thefacts/reliefresources/106802851261.htm
+http://www.alertnet.org/thenews/fromthefield/claerpath/110749490851.htm
+http://www.alessandra.com/meettony/rave_reviews.asp
+http://www.aletheia.fsnet.co.uk/cache/ulloa.html
+http://www.alexa.com/browse/general?catid=278417&mode=general
+http://www.alexa.com/browse/general?catid=5742&mode=general
+http://www.alexa.com/browse/general?catid=5744&mode=general
+http://www.alexandbetsy.com/idx/elistingManager/?stapass=%7C'act'%7C'pend'
+http://www.alexanderlaw.com/
+http://www.alexanderlaw.com/bextra/side-effects.html
+http://www.alexanderlaw.com/cases.html
+http://www.alexanderlaw.com/class-action-cases.html
+http://www.alexanderlaw.com/our-law-firm.html
+http://www.alexanderlaw.com/vioxx/
+http://www.alexanderlaw.com/vioxx/side-effects.html
+http://www.alexanderpalace.org/palace/boydream.html
+http://www.alexanderpalace.org/palace/travelinfo.html
+http://www.alexanderstreetpress.com/products/nadr.htm
+http://www.alexandertechworks.com/Literature/alexander_ucla.html
+http://www.alexandrasamuel.com/netpolitics/studentsites/publicsites/Susan_Avar%20Folder/page4.html
+http://www.alexandria-press.com/online/online20_dusan_velickovic_my_europe.htm
+http://www.alexcia.com/sounds/soundmain.shtml
+http://www.alexflood.org.nz/Articles/Trouble%20with%20Dams.htm
+http://www.alexist.com/
+http://www.alexking.org/fantasy_sports/baseball/baseball_2002/midseason_review.html
+http://www.alexking.org/sports/golf/
+http://www.alexrivera.com/PAGES/PRESS/DSCOOP.html
+http://www.alexyellowlees.com/reviews.htm
+http://www.alfafarmers.org/issues/farmbill.phtml
+http://www.alfiekohn.org/teaching/ftt.htm
+http://www.alfiekohn.org/teaching/hnttv.htm
+http://www.alfred.edu/students/student_services/csdc_guide_suicide.html
+http://www.alga.asn.au/policy/regional/2002sor.php
+http://www.algathafi.org/kuria/kuria-en.htm
+http://www.algebra.com/algebra/about/history/Oxford-English-Dictionary.wikipedia
+http://www.alhaq.org/cp-campaign/news/replacing_politics_with_law.htm
+http://www.alhewar.com/percy.html
+http://www.alhfam.org/alhfam.jobs.html
+http://www.ali.gov.uk/htm/inspection_provision_Jobcentre.htm
+http://www.alia.ie/tirnanog/cafe.html
+http://www.alia.ie/tirnanog/sochis/xviiic.html
+http://www.alibaba.com/catalogs/1217/Second_Hand.html
+http://www.alibaba.com/catalogue/100102c5p0h/Lubricant.html
+http://www.alibaba.com/catalogue/136c1p0h/asi/Plant_Animal_Oil.html
+http://www.alibaba.com/catalogue/136c1p0h/mea/Plant_Animal_Oil.html
+http://www.alibaba.com/catalogue/136c1p0h/weu_eec/Plant_Animal_Oil.html
+http://www.alibaba.com/catalogue/311c1p0h/nam/Children_Garment.html
+http://www.alibris.com/search/books/author/Citrin,%20James%20M
+http://www.alibris.com/search/books/author/Patterson,%20James
+http://www.alibris.com/search/books/subject/Christmas
+http://www.alice-in-wonderland.net/explain/alice863.html
+http://www.alice-smith.edu.my/secondary-school/academic-leadership/ict.htm
+http://www.alice-smith.edu.my/secondary-school/academic-leadership/science.htm
+http://www.alice.org/Randy/raibert.htm
+http://www.aliceandbill.com/2004/11/computers-make-school-kids-dumber.html
+http://www.aliceandbill.com/2005/01/one-word-is-worth-thousand-confusing.html
+http://www.alicebtoklas.org/abt/newsletter0502.htm
+http://www.alicepauldirect.com/directmail.htm
+http://www.alicespringsnews.com.au/0434.html
+http://www.alicespringsnews.com.au/0508.html
+http://www.alicespringsnews.com.au/0626.html
+http://www.alicespringsnews.com.au/0719.html
+http://www.aliciapatterson.org/APF0206/Viorst/Viorst.html
+http://www.aliciapatterson.org/APF0401/Denenberg/Denenberg.html
+http://www.aliciapatterson.org/APF1804/Schulte/Schulte.html
+http://www.aliconferences.com/conferences/homeland_security/main.html
+http://www.alieniloquent.com/
+http://www.alienresistance.org/roswell1947ufocrash.htm
+http://www.alienware.com/Profile_Pages/Customer_Terms.aspx
+http://www.alienware.com/main_creative_pro.aspx
+http://www.alienware.com/workstations_dcc.aspx?from=CGFocus:workstation_pc_banner_160x600_dcc&cs=0
+http://www.alienware.com/workstations_dcc.aspx?from=info2x:workstation_pc_banner_120x60_dcc
+http://www.alienware.com/workstations_dcc.aspx?from=tikistudios:workstation_pc_banner_468x60_dcc
+http://www.alif-india.com/legend.html
+http://www.alif-india.com/love.html
+http://www.alif.com/afc/profile-ammar.htm
+http://www.alifelessnormal.com/
+http://www.alinaadams.com/counterpoint/backissues/counter32.html
+http://www.alinaam.org.za/library/business/bscompliant2.htm
+http://www.alinghi.com/en/32ndac/rules/
+http://www.alionka.com/
+http://www.alioth.net/Fiction/heaven.html
+http://www.aliran.com/ms/2003/0228.html
+http://www.alislam.org/library/links/73-01.html
+http://www.alistapart.com/articles/alternate/
+http://www.alistapart.com/articles/artdirweb/
+http://www.alistapart.com/articles/bodyswitchers/
+http://www.alistapart.com/articles/cms1/
+http://www.alistapart.com/articles/cssdrop2/
+http://www.alistapart.com/articles/csstalking/
+http://www.alistapart.com/articles/customcorners/
+http://www.alistapart.com/articles/elastic/
+http://www.alistapart.com/articles/flashsatay/
+http://www.alistapart.com/articles/fragments/
+http://www.alistapart.com/articles/helpingvisitors/
+http://www.alistapart.com/articles/pngopacity/
+http://www.alistapart.com/articles/searchhighlight/
+http://www.alistapart.com/articles/tohell/
+http://www.alistapart.com/stories/fear/
+http://www.alistapart.com/stories/ie5mac/
+http://www.alistapart.com/stories/journey/
+http://www.alistapart.com/stories/sizematters/
+http://www.alistapart.com/stories/writebetter/
+http://www.alite.co.uk/cuttings/fidgetingsuntelegraph.htm
+http://www.alittlepregnant.com/alittlepregnant/2004/10/they_were_no_do.html
+http://www.alittlepregnant.com/alittlepregnant/2005/05/keep_your_powde.html
+http://www.aliveandpicking.com/3rd01.html
+http://www.alivewithlove.com/alluring/flaxseedoil.html
+http://www.aljazeera.com/cgi-bin/news_service/article_full_story.asp?service_id=8602
+http://www.aljazeera.com/cgi-bin/news_service/article_full_story.asp?service_id=8687
+http://www.aljazeera.com/cgi-bin/news_service/middle_east_full_story.asp?service_id=6977
+http://www.aljazeera.com/cgi-bin/news_service/middle_east_full_story.asp?service_id=8328
+http://www.aljazeera.com/cgi-bin/news_service/middle_east_full_story.asp?service_id=8929
+http://www.aljazeera.com/me.asp?service_ID=6900
+http://www.aljazeerah.info/News%20archives/2003%20News%20archives/March%202003%20News/14%20New/6%20Palestinians%20killed%20in%20Israeli%20occupation%20raid%20on%20Jenin%20%20aljazeerah.info.htm
+http://www.alkermes.com/news/index.asp?id=35
+http://www.alkhortoastmasters.com/grammarians/grammarian.htm
+http://www.all-baseball.com/cubreporter/archives/019180.html
+http://www.all-baseball.com/cubreporter/archives/019263.html
+http://www.all-chinese-tea.com/
+http://www.all-creatures.org/mfz/health-highprotein2.html
+http://www.all-energy.co.uk/speech.php
+http://www.all-hands.net/pn/modules.php?op=modload&name=News&file=article&sid=375
+http://www.all-homedecor.com/
+http://www.all-internet-security.com/web_site_hacked.html
+http://www.all-internet.com/articles/home-decorating-tips.html
+http://www.all-internet.com/lawn-garden-articles.html
+http://www.all-natural.com/expose.html
+http://www.all-natural.com/gersten.html
+http://www.all-rooms.com/dyfed/hotels/Boars_Head_Hotel.htm
+http://www.all-science-fair-projects.com/science_fair_projects/28/455/f96f8be10bdc9413c758911d2e385ed3.html
+http://www.all-science-fair-projects.com/science_fair_projects/92/49/f0ef8e5b2514803f45d91ea5e208786a.html
+http://www.all-story.com/extra/issue32/running.html
+http://www.all-story.com/issues.cgi?action=show_story&story_id=239
+http://www.all.org/activism/970910.htm
+http://www.all4ed.org/publications/MeasuringGraduationToMeasureSuccess/bios.html
+http://www.all4ed.org/teacher_principal/research_reports.html
+http://www.allaboutbeer.com/features/206.gas4.html
+http://www.allaboutcountry.com/cfm/Articles.cfm?articleID=577
+http://www.allaboutgames.co.uk/gamereviews.php?185
+http://www.allabouthome.com/tips/moving_tips.html
+http://www.allaboutjazz.com/php/article_print.php?id=15310
+http://www.allaboutlawns.com/lawn-maintenance-care/getting-to-know-your-lawn.php
+http://www.allaboutmassagers.com/app/content/biomagnetic
+http://www.allaboutmassagers.com/app/content/biomagnetic/print_page
+http://www.allaboutmedicalsales.com/msr/230204.html
+http://www.allaboutmoms.com/powerstruggles.htm
+http://www.allaboutngage.com/mobile/reviews/review2.php?id=116
+http://www.allaboutsymbian.com/reviews/review2.php?id=116
+http://www.allaboutsymbian.com/reviews/review2.php?id=122
+http://www.allaboutturkey.com/info.htm
+http://www.allaboutvision.com/eyeglasses/eyeglasses_shape_color_analysis.htm
+http://www.allaboutvision.com/resources/glossary.htm
+http://www.allaboutvision.com/sports/protection.htm
+http://www.allaboutvision.com/visionsurgery/asksurgeon.htm
+http://www.allaboutvision.com/visionsurgery/custom_lasik.htm
+http://www.allavida.org/alliance/axmar05c.html
+http://www.allbooks4less.com/b4less/show_books_pub.asp?publisher=William+Morrow+%26+Company&search_type=P
+http://www.allbusiness.com/articles/CareerAdvice/1594-27-1807.html
+http://www.allbusiness.com/articles/EmploymentHR/1471-33-1829.html
+http://www.allbusiness.com/articles/EmploymentHR/725-33-1829.html
+http://www.allbusiness.com/articles/SalesMarketing/762-26-1782.html
+http://www.allbusiness.com/articles/content/1471-33-1829.html
+http://www.allbusiness.com/articles/content/322.asp
+http://www.allbusiness.com/blog/ManagementCraft/3356/001773.html
+http://www.allbusiness.com/blog/ManagementCraft/3356/001784.html
+http://www.allcoastsportfishing.com/fishing-report-information/fishingreports.pl/fishing-saltwater-fish.html
+http://www.allcrafts.net/Links/quilting.htm
+http://www.allcrafts.net/gardening.htm
+http://www.allculinaryschools.com/schools/ID147/
+http://www.alldayentertainment.com/online-store/scstore/allday/monsters/reviews.html
+http://www.alleged.com/radio/Beverage2/
+http://www.allenandunwin.com/estudy/takingnotes.asp
+http://www.allenandunwin.com/estudy/timemanagement.asp
+http://www.allenaustin.net/oab.htm
+http://www.allencowling.com/outstate.htm
+http://www.allenlane.org.uk/grants1.htm
+http://www.allenwsmith.com/id5.html
+http://www.alleycatscratch.com/lotr/Elf/Legolas/Jerkin.htm
+http://www.alleycatscratch.com/lotr/makingem/Patterns.htm
+http://www.allfreecrafts.com/craftlinks.htm
+http://www.allfreelancework.com/articleho6prof.php
+http://www.allgohere.com/adverti2.htm
+http://www.allhallows.ie/index.php?option=content&task=view&id=188&Itemid=149
+http://www.allhatnocattle.net/6-10-04_walking_the_walk.htm
+http://www.allhiphop.com/hiphopnews/?ID=3364
+http://www.alliance-natural-health.org/index.cfm?action=events&ID=all
+http://www.alliance.brown.edu/programs/eac/lncblt_v2-8.shtml
+http://www.alliancebschool.org/htmls/Programs/abaumf.htm
+http://www.alliancecapital.com/DomesticPortal/MutualFundDetail.aspx?cid=18670&ft=f
+http://www.alliancecm.org/index.php?page_id=31
+http://www.allianceenterprises.com/alliance/Products/Features.htm
+http://www.allianceforsecurity.org/basictraining
+http://www.allianceparty.org/showconsultation.asp?id=18
+http://www.allianceparty.org/showspeech.asp?id=38
+http://www.alliancesouthasia.org/index.cfm?sectionID=27&objectID=203
+http://www.alliantenergy.com/stellent/groups/public/documents/pub/bus_ps_012348.hcsp
+http://www.allinlondon.co.uk/jobs/job.php?jid=232
+http://www.allinlondon.co.uk/jobs/job.php?jid=449
+http://www.allmaninternet.com/safrica/home.html
+http://www.allmontaukflyfishing.com/fishing_report.htm
+http://www.allmusic.com/cg/amg.dll?p=amg&sql=11:5q4tk6hx9krg~T1
+http://www.allnetwebdesign.com/development.htm
+http://www.allowe.com/Humor/video.htm
+http://www.allpapers.com/sample2.htm
+http://www.allpar.com/amc/gremlin.html
+http://www.allpar.com/history/inside/commentary.shtml
+http://www.allpar.com/model/upcoming.html
+http://www.allpm.com/modules.php?op=modload&name=PNphpBB2&file=viewtopic&p=601
+http://www.allpm.com/modules.php?op=modload&name=PNphpBB2&file=viewtopic&t=278
+http://www.allreaders.com/Topics/info_11653.asp
+http://www.allreaders.com/Topics/info_13449.asp
+http://www.allreaders.com/Topics/info_7466.asp?BSID=20567816
+http://www.allreaders.com/board.asp?BoardID=10479
+http://www.allsaintsonline.org.uk/features/stewardship.htm
+http://www.allsanfranciscotours.com/Body.asp?Page=TourDetails&tour=SFO-B0015
+http://www.allschools.com/stratford-cooking/career-services/
+http://www.allshakespeare.com/loves-labors/37907
+http://www.allsoulskc.org/sermons/021020.html
+http://www.allstaragency.com/cgi-bin/speaker2001.asp?ID=57
+http://www.allthatmatters.com/healing.php
+http://www.allthelyrics.com/lyrics/a_walk_to_remember_soundtrack/a_walk_to_remember/mandy_moorecry-74303-lyric/
+http://www.allthelyrics.com/lyrics/cant_hardly_wait_soundtrack/cant_hardly_wait/blink_182dammit-75471-lyric/
+http://www.allthelyrics.com/lyrics/cant_hardly_wait_soundtrack/cant_hardly_wait/matthew_sweetfarther_down-66854-lyric/
+http://www.allthelyrics.com/lyrics/peter_gabriel/
+http://www.allthelyrics.com/lyrics/suzi_quatro/main_attraction/oh_baby-69942-lyric/
+http://www.allthingschristie.com/archives/002538.html
+http://www.allthingsfrugal.com/p_wearout.htm
+http://www.allthingswilliam.com/beauty.html
+http://www.allthingswilliam.com/business.html
+http://www.allthingswilliam.com/duty.html
+http://www.allthingswilliam.com/sex.html
+http://www.allthingswilliam.com/truth.html
+http://www.allthingszombie.com/news.php
+http://www.alltooflat.com/about/personal/sean/index.php?BeginDate=20031124&EndDate=20031130
+http://www.alltooflat.com/serious/adventures/birthday/
+http://www.allwatchers.com/topics/info_28952.asp
+http://www.allweathersports.com/winter/winter.html
+http://www.allwinecountrytours.com/company/affiliate_business.html
+http://www.allwinecountrytours.com/tours/wine_country_tours_info.html
+http://www.allworth.com/Articles/article14.htm
+http://www.alma.nrao.edu/memos/html-memos/alma216/memo216.html
+http://www.almac.co.uk/proven/Funding1.htm
+http://www.almaden.ibm.com/cs/wbi/doc/examples/history/
+http://www.almaguinnews.com/Letters/14_LET_11_12_03.htm
+http://www.almanacnews.com/morgue/1998/1998_11_11.votewrap.html
+http://www.almanacnews.com/morgue/2004/2004_08_11.annex.shtml
+http://www.almenconi.com/topics/chr_music/music_reviews/pivitplex.html
+http://www.alminbar.com/khutbaheng/9012.htm
+http://www.almishkat.org/engdoc99/rn13/rn13_02.htm
+http://www.almosthomerescue.org/
+http://www.aln.org/publications/magazine/v2n2/mason.asp
+http://www.aloha.com/~craven/chcmedia/jrdpaper.html
+http://www.alor.org/Canada/Royal%20Bank%20Discriminates%20Against%20Pro-Life%20Family%20Organisations%20Nov%202001.htm
+http://www.alor.org/Volume23/Vol23No14.htm
+http://www.alor.org/Volume36/Vol36No50.htm
+http://www.alovelinksplus.com/advice/ask_april/finding-your-perfect-partner.htm
+http://www.alovelinksplus.com/advice/nice_guy_test.htm
+http://www.alovelinksplus.com/advice/rinatta_paries/how_we_affect_other_lives.htm
+http://www.alovelinksplus.com/area/international10a.htm
+http://www.alp.org.au/action/electionresult.php
+http://www.alp.org.au/action/electionresult.php?print=on
+http://www.alp.org.au/action/electionresult.php?tv=on
+http://www.alp.org.au/media/0605/dsiloo080.php
+http://www.alpacanaca.com/
+http://www.alpacas.com/Resources/TaxPlanner.aspx
+http://www.alpca.org/faq.beginners.html
+http://www.alperlaw.com/asset_planning_newsletter.html
+http://www.alpha-thrall-web-art.com/museumindex/museumindex.htm
+http://www.alphachimp.com/clients/blog.html
+http://www.alphadeltaplus.20m.com/contact.html
+http://www.alphalink.com.au/~drednort/lablocus.html
+http://www.alphalink.com.au/~rez/Journey/fraserspeech.htm
+http://www.alphane.com/moon/PalmTree/tomorrow.htm
+http://www.alphapk.com/alphapk/section.cfm?wSectionID=227
+http://www.alphasearch.ca/events/index.php
+http://www.alpine-usa.com/products/leading_technology/leading_tech_SAT_Radio.htm
+http://www.alpineclubofcanada.ca/whoweare/faq.html
+http://www.alpinefund.org/garth/tea-delivery.htm
+http://www.alpinehikers.com/contact.html
+http://www.alpinehomeair.com/walloffame.cfm
+http://www.alpinesurvival.com/immigration.html
+http://www.alrdesign.com/pages/philo.html
+http://www.alsabaah.com/20040905/english.htm
+http://www.alsabaah.com/English.html
+http://www.alsagerschool.co.uk/subjects/sub_content/geography/Gpop/HTMLENH/pproblem/xt6.htm
+http://www.alsont.ca/about_us.aspx
+http://www.alsont.ca/services.aspx
+http://www.alsopreview.com/thewriters/slyman/esorphan.html
+http://www.alta.org/
+http://www.altassets.com/knowledgebank/leadingedge/2002/nz3089.php
+http://www.altavista.com/about/privacy
+http://www.altavista.com/news/results?q=domain%3Auk+alan+greenspan&sort=date&stq=60
+http://www.altcorp.com/DentalInformation/2ndvacconf.htm
+http://www.alte.org/quality_assurance/quality.cfm
+http://www.alternatiff.com/scripting/
+http://www.alternative-windows.com/sitemap.htm
+http://www.alternativementalhealth.com/articles/estogen.htm
+http://www.alternativementalhealth.com/ezine/Ezine29.htm
+http://www.alternativemusic.com/deana.html
+http://www.alternativepethealth.com/canine-diet.html
+http://www.alternativetentacles.com/
+http://www.alternet.org/columnists/story/13307/
+http://www.alternet.org/columnists/story/18291/
+http://www.alternet.org/election04/19047/
+http://www.alternet.org/envirohealth/19104/
+http://www.alternet.org/envirohealth/19719/
+http://www.alternet.org/envirohealth/21852/
+http://www.alternet.org/mediaculture/19811/
+http://www.alternet.org/mediaculture/20309/
+http://www.alternet.org/mediaculture/21034/
+http://www.alternet.org/mediaculture/22072/
+http://www.alternet.org/mediaculture/22213/
+http://www.alternet.org/rights/21957/
+http://www.alternet.org/rights/22179/
+http://www.alternet.org/rights/22199/
+http://www.alternet.org/sms/22162/
+http://www.alternet.org/story.html?StoryID=13160
+http://www.alternet.org/story.html?StoryID=15027
+http://www.alternet.org/story.html?StoryID=17466
+http://www.alternet.org/story.html?StoryID=178
+http://www.alternet.org/story/12956
+http://www.alternet.org/story/15414
+http://www.alternet.org/story/16325/
+http://www.alternet.org/story/16474
+http://www.alternet.org/story/178/
+http://www.alternet.org/story/20991/
+http://www.alternet.org/story/21641/
+http://www.alternet.org/story/22039/
+http://www.alternet.org/story/22125/?comments=view&cID=8292&pID=8153
+http://www.alternet.org/story/22135/
+http://www.alternet.org/story/22233/
+http://www.alternet.org/story/22235/
+http://www.alternet.org/story/22298/
+http://www.alternet.org/story/22304/?comments=view&cID=13131&pID=13114
+http://www.alternet.org/story/23195/
+http://www.alternet.org/waroniraq/18634/
+http://www.alternet.org/waroniraq/19258/
+http://www.alternet.org/waroniraq/19620/
+http://www.alternet.org/waroniraq/20739/
+http://www.alternet.org/waroniraq/21780/?comments=view&cID=2652&pID=2621
+http://www.altiris.com/company/pressreleases/view.asp?pr=341
+http://www.altisinc.com/Links/100_Rules.html
+http://www.altonweb.com/cs/downsyndrome/duffen1975.html
+http://www.altpenis.com/penis_news/women_penis_size.shtml
+http://www.altpr.org/
+http://www.altpr.org/apr14/luddite_films.html
+http://www.altpr.org/index.php
+http://www.altsex.org/altsex-home.html
+http://www.altsex.org/contquest.html
+http://www.alttext.com/archives/02/05/020513did_you_know_tha.html
+http://www.altvetmed.com/face/8723-aquatic-exercise.html
+http://www.alumaxbath.com/tech/tgp.htm
+http://www.alumbo.com/article/11589-Fighting-Obesity-an-ayurvedic-way.html
+http://www.alumbo.com/discussion39.html
+http://www.alumbo.com/magazine39.html
+http://www.alumbo.com/resources39.html
+http://www.alumbo.com/shopping39.html
+http://www.alumni.ca/~frick3a/
+http://www.alumni.cornell.edu/orgs/clubs/germany/news.html
+http://www.alumni.net/press/press_01012000.asp
+http://www.alumni.umich.edu/travel/2005itin.php?trip=16
+http://www.alumni.umn.edu/Campus_Digest6.html
+http://www.alumni.utah.edu/continuum/fall01/legal.htm
+http://www.alvincyork.org/Biography.htm
+http://www.always-health.com/Whattheneed_healthinsurance.html
+http://www.alwaysimproving.com/church/aboutus.htm
+http://www.alwayson-network.com/comments.php?id=4133_0_6_0_C
+http://www.alwayson-network.com/comments.php?id=4735_0_6_0_C
+http://www.alwayson-network.com/comments.php?id=P1859_0_6_0_C
+http://www.alwayson-network.com/comments.php?id=P4133_0_6_0_C
+http://www.alwayson-network.com/comments.php?id=P4735_0_6_0_C
+http://www.alwaysontherun.net/martina.htm
+http://www.alwaysontherun.net/neneh.htm
+http://www.alwaysontherun.net/portis.htm
+http://www.alwaysontherun.net/ruby.htm
+http://www.alwaysontherun.net/walk.htm
+http://www.alwaysthinking.com/support/
+http://www.alwl.org/
+http://www.alz.org/preventionconference/pc2005/062005innovativetherapies.asp
+http://www.alzheimer.ca/english/creativespace/artgallery-renee-twopaintings.htm
+http://www.alzheimers.org.uk/
+http://www.alzheimers.org.uk/After_diagnosis/Sorting_out_your_money/info_financiallegal.htm
+http://www.alzheimers.org.uk/BranchWebsites/WestKent/branchservices.htm
+http://www.alzheimers.org.uk/Caring_for_someone_with_dementia/Coping_with_caring/info_shorttermcare.htm
+http://www.alzheimers.org.uk/Caring_for_someone_with_dementia/Residential_and_nursing_care/info_choicesincare.htm
+http://www.alzheimers.org.uk/Caring_for_someone_with_dementia/Residential_and_nursing_care/info_localauthority.htm
+http://www.alzheimers.org.uk/Caring_for_someone_with_dementia/Residential_and_nursing_care/info_payingfees.htm
+http://www.alzheimers.org.uk/Working_with_people_with_dementia/Publications/buyonline.htm
+http://www.alzheimersupport.com/library/showarticle.cfm?id=1393
+http://www.am-i-fat.com/setting_goals.html
+http://www.ama-assn.org/ama/pub/category/12331.html
+http://www.ama-assn.org/ama/pub/category/168.html
+http://www.ama-assn.org/ama/pub/category/2714.html
+http://www.ama-assn.org/amednews/2000/12/04/hlsc1204.htm
+http://www.ama-assn.org/public/peer/7_15_98/jpv71015.htm
+http://www.amacad.org/news/induct2002release.aspx
+http://www.amacad.org/news/new2002.aspx
+http://www.amacad.org/publications/china2.aspx
+http://www.amacad.org/publications/lethal.aspx
+http://www.amadorbooks.com/nocardsh.htm
+http://www.amadrama.co.uk/setdesign.shtml
+http://www.amanet.org/books/catalog/0814408370_ch.htm
+http://www.amanet.org/movingahead/editorial2004/blame_game.htm
+http://www.amanet.org/press/archives/yk2_holi.htm
+http://www.amanresorts.com/offers/ganisummer.htm
+http://www.amaranthwomyn.com/hbpage-2.html
+http://www.amaravati.org/abm/english/documents/the_way_it_is/15tte.html
+http://www.amarilloart.org/hs_cult_creatingplace.html
+http://www.amartusa.com/mall/theloadingdockbeds.htm
+http://www.amasci.com/amateur/elecdir.html
+http://www.amasci.com/emotor/chargdet.html
+http://www.amasci.com/freenrg/audwall.html
+http://www.amasci.com/freenrg/ideas.html
+http://www.amasci.com/tesla/tmistk.html
+http://www.amasci.com/weird/unusual/blold.html
+http://www.amatecon.com/etext/cftoi/cftoi-ch20.html
+http://www.amateurgourmet.com/the_amateur_gourmet/2004/08/the_woman_outsi.html
+http://www.amaxa.com/publicrelations.html
+http://www.amazing-cover-letters.com/
+http://www.amazing.com/isp/hardware.html
+http://www.amazing.com/politics/malibu/
+http://www.amazingdreamspublishing.com/above.html
+http://www.amazingpregnancy.com/articles/finding-out-sex-of-baby.html
+http://www.amazon.co.uk/exec/obidos/ASIN/0199111693
+http://www.amazon.co.uk/exec/obidos/ASIN/0261102389
+http://www.amazon.co.uk/exec/obidos/ASIN/0471986232
+http://www.amazon.co.uk/exec/obidos/ASIN/0750658584
+http://www.amazon.co.uk/exec/obidos/ASIN/1405206128
+http://www.amazon.co.uk/exec/obidos/ASIN/B000024DOR
+http://www.amazon.co.uk/exec/obidos/ASIN/B00005A0Z7
+http://www.amazon.co.uk/exec/obidos/ASIN/B00005AFQZ
+http://www.amazon.co.uk/exec/obidos/ASIN/B00008YNGV
+http://www.amazon.co.uk/exec/obidos/ASIN/B0002UUO9K
+http://www.amazon.co.uk/exec/obidos/tg/browse/-/274661
+http://www.amazon.co.uk/exec/obidos/tg/browse/-/275044
+http://www.amazon.co.uk/exec/obidos/tg/browse/-/276817
+http://www.amazon.co.uk/exec/obidos/tg/browse/-/278148
+http://www.amazon.co.uk/exec/obidos/tg/browse/-/284657
+http://www.amazon.co.uk/exec/obidos/tg/browse/-/291864
+http://www.amazon.co.uk/exec/obidos/tg/browse/-/468294
+http://www.amazon.co.uk/exec/obidos/tg/browse/-/713100
+http://www.amazon.co.uk/exec/obidos/tg/stores/detail/-/books/0099281821/customer-reviews
+http://www.amazon.co.uk/exec/obidos/tg/stores/detail/-/books/0349116032/customer-reviews
+http://www.amazon.co.uk/exec/obidos/tg/stores/detail/-/books/0752837990/customer-reviews
+http://www.amazon.co.uk/exec/obidos/tg/stores/detail/-/electronics/B00016ZOSQ/customer-reviews
+http://www.amazon.co.uk/exec/obidos/tg/stores/detail/-/health-and-beauty/B00027LHGM/customer-reviews
+http://www.amazon.co.uk/exec/obidos/tg/stores/detail/-/videogames/B0001ZX9XO/customer-reviews
+http://www.amazon.com/exec/obidos/ASIN/0060728256/
+http://www.amazon.com/exec/obidos/ASIN/0060925175/
+http://www.amazon.com/exec/obidos/ASIN/006093817X/
+http://www.amazon.com/exec/obidos/ASIN/0070480176/
+http://www.amazon.com/exec/obidos/ASIN/0070522359/
+http://www.amazon.com/exec/obidos/ASIN/0071383832/
+http://www.amazon.com/exec/obidos/ASIN/0078824451/
+http://www.amazon.com/exec/obidos/ASIN/0131014056/
+http://www.amazon.com/exec/obidos/ASIN/0140144560/
+http://www.amazon.com/exec/obidos/ASIN/0140259775/
+http://www.amazon.com/exec/obidos/ASIN/0140266321/qid%3D996359179/sr%3D1-1/ref%3Dsc_b_1
+http://www.amazon.com/exec/obidos/ASIN/0151039682/
+http://www.amazon.com/exec/obidos/ASIN/0151039682/qid=994519188/sr=1-3/ref=sc_b_3/arabworldbooksA/
+http://www.amazon.com/exec/obidos/ASIN/015602876X/
+http://www.amazon.com/exec/obidos/ASIN/0192833731/ref=nosim/mantexinformat0b
+http://www.amazon.com/exec/obidos/ASIN/0195029100/
+http://www.amazon.com/exec/obidos/ASIN/0195215737/
+http://www.amazon.com/exec/obidos/ASIN/0195218884/
+http://www.amazon.com/exec/obidos/ASIN/0195218884/ref=nosim/briandanaakers
+http://www.amazon.com/exec/obidos/ASIN/0198505051/
+http://www.amazon.com/exec/obidos/ASIN/0198611862/
+http://www.amazon.com/exec/obidos/ASIN/0201633612
+http://www.amazon.com/exec/obidos/ASIN/0201633612/
+http://www.amazon.com/exec/obidos/ASIN/0201775948/
+http://www.amazon.com/exec/obidos/ASIN/020530902X/
+http://www.amazon.com/exec/obidos/ASIN/0253211190/
+http://www.amazon.com/exec/obidos/ASIN/0262731401/
+http://www.amazon.com/exec/obidos/ASIN/0300067453/
+http://www.amazon.com/exec/obidos/ASIN/0312135211/ref=nosim/speculativefic051-20
+http://www.amazon.com/exec/obidos/ASIN/0312174918/
+http://www.amazon.com/exec/obidos/ASIN/0312282567/
+http://www.amazon.com/exec/obidos/ASIN/0316001015/
+http://www.amazon.com/exec/obidos/ASIN/0324016271/
+http://www.amazon.com/exec/obidos/ASIN/034539769X/
+http://www.amazon.com/exec/obidos/ASIN/0385337116/
+http://www.amazon.com/exec/obidos/ASIN/0394746163/
+http://www.amazon.com/exec/obidos/ASIN/0394800133/
+http://www.amazon.com/exec/obidos/ASIN/0395845203/
+http://www.amazon.com/exec/obidos/ASIN/0395910900/
+http://www.amazon.com/exec/obidos/ASIN/0399145796/
+http://www.amazon.com/exec/obidos/ASIN/0399234039/
+http://www.amazon.com/exec/obidos/ASIN/0399523839/
+http://www.amazon.com/exec/obidos/ASIN/0415941644/
+http://www.amazon.com/exec/obidos/ASIN/0425157725/
+http://www.amazon.com/exec/obidos/ASIN/042518739X/ref=nosim/refundingmakesce
+http://www.amazon.com/exec/obidos/ASIN/0441007554/
+http://www.amazon.com/exec/obidos/ASIN/0446300152/
+http://www.amazon.com/exec/obidos/ASIN/0446677477/
+http://www.amazon.com/exec/obidos/ASIN/0451529294/
+http://www.amazon.com/exec/obidos/ASIN/0452281326/
+http://www.amazon.com/exec/obidos/ASIN/047112351X/
+http://www.amazon.com/exec/obidos/ASIN/0471239941/
+http://www.amazon.com/exec/obidos/ASIN/0471443069/
+http://www.amazon.com/exec/obidos/ASIN/0500280959/
+http://www.amazon.com/exec/obidos/ASIN/0521777682/
+http://www.amazon.com/exec/obidos/ASIN/0521777682/ref=nosim/searchbyisbn/
+http://www.amazon.com/exec/obidos/ASIN/0553371657/
+http://www.amazon.com/exec/obidos/ASIN/059035342X/
+http://www.amazon.com/exec/obidos/ASIN/0595008038/
+http://www.amazon.com/exec/obidos/ASIN/0609808699/
+http://www.amazon.com/exec/obidos/ASIN/0670850543/
+http://www.amazon.com/exec/obidos/ASIN/0671521543/
+http://www.amazon.com/exec/obidos/ASIN/0671663984/
+http://www.amazon.com/exec/obidos/ASIN/0671708635/
+http://www.amazon.com/exec/obidos/ASIN/067232587X/
+http://www.amazon.com/exec/obidos/ASIN/067232587X/ref=nosim/forlagetadland00
+http://www.amazon.com/exec/obidos/ASIN/0672326302/
+http://www.amazon.com/exec/obidos/ASIN/0674411528/
+http://www.amazon.com/exec/obidos/ASIN/067973421X/
+http://www.amazon.com/exec/obidos/ASIN/0679751114/
+http://www.amazon.com/exec/obidos/ASIN/068486410X/
+http://www.amazon.com/exec/obidos/ASIN/0688132286/
+http://www.amazon.com/exec/obidos/ASIN/0688162746/
+http://www.amazon.com/exec/obidos/ASIN/068987474X/
+http://www.amazon.com/exec/obidos/ASIN/0691044228/ref=nosim/artimagecollecti
+http://www.amazon.com/exec/obidos/ASIN/0691065012/
+http://www.amazon.com/exec/obidos/ASIN/0691065012/ref=nosim/artimagecollecti
+http://www.amazon.com/exec/obidos/ASIN/0691066019/
+http://www.amazon.com/exec/obidos/ASIN/0691067236/
+http://www.amazon.com/exec/obidos/ASIN/0698117913/
+http://www.amazon.com/exec/obidos/ASIN/0701162538/ref=nosim/speculativefic05
+http://www.amazon.com/exec/obidos/ASIN/0735606382/
+http://www.amazon.com/exec/obidos/ASIN/0735709017/
+http://www.amazon.com/exec/obidos/ASIN/0738205699/
+http://www.amazon.com/exec/obidos/ASIN/0738206075/
+http://www.amazon.com/exec/obidos/ASIN/0738207403/
+http://www.amazon.com/exec/obidos/ASIN/0740721976/
+http://www.amazon.com/exec/obidos/ASIN/0743224876/
+http://www.amazon.com/exec/obidos/ASIN/0743226232/
+http://www.amazon.com/exec/obidos/ASIN/0743419340/
+http://www.amazon.com/exec/obidos/ASIN/0761504109/
+http://www.amazon.com/exec/obidos/ASIN/0761510168/
+http://www.amazon.com/exec/obidos/ASIN/0761524266/
+http://www.amazon.com/exec/obidos/ASIN/0764534300/
+http://www.amazon.com/exec/obidos/ASIN/0764550365/
+http://www.amazon.com/exec/obidos/ASIN/076455168X/
+http://www.amazon.com/exec/obidos/ASIN/0786883189/ref=nosim/thebookhavenn-20
+http://www.amazon.com/exec/obidos/ASIN/0786883189/ref=nosim/thenewhomemake
+http://www.amazon.com/exec/obidos/ASIN/0787949329/
+http://www.amazon.com/exec/obidos/ASIN/078795649X/
+http://www.amazon.com/exec/obidos/ASIN/0789450739/
+http://www.amazon.com/exec/obidos/ASIN/0789718103/
+http://www.amazon.com/exec/obidos/ASIN/0802851207/
+http://www.amazon.com/exec/obidos/ASIN/0811826856/
+http://www.amazon.com/exec/obidos/ASIN/0812215613/
+http://www.amazon.com/exec/obidos/ASIN/0812233239/
+http://www.amazon.com/exec/obidos/ASIN/0814328490/
+http://www.amazon.com/exec/obidos/ASIN/0814477186/
+http://www.amazon.com/exec/obidos/ASIN/0814797636/
+http://www.amazon.com/exec/obidos/ASIN/0815603886/
+http://www.amazon.com/exec/obidos/ASIN/0849935830/
+http://www.amazon.com/exec/obidos/ASIN/0873645863/
+http://www.amazon.com/exec/obidos/ASIN/087486903X/
+http://www.amazon.com/exec/obidos/ASIN/0877456690/
+http://www.amazon.com/exec/obidos/ASIN/0879758481/
+http://www.amazon.com/exec/obidos/ASIN/088385158X/
+http://www.amazon.com/exec/obidos/ASIN/0891417125/
+http://www.amazon.com/exec/obidos/ASIN/0898798108/
+http://www.amazon.com/exec/obidos/ASIN/0911226338/
+http://www.amazon.com/exec/obidos/ASIN/0911647309/
+http://www.amazon.com/exec/obidos/ASIN/0911647589/
+http://www.amazon.com/exec/obidos/ASIN/0962770124/
+http://www.amazon.com/exec/obidos/ASIN/0965987302/
+http://www.amazon.com/exec/obidos/ASIN/0966377400/
+http://www.amazon.com/exec/obidos/ASIN/0966963520/
+http://www.amazon.com/exec/obidos/ASIN/0967251435/
+http://www.amazon.com/exec/obidos/ASIN/0970251823/
+http://www.amazon.com/exec/obidos/ASIN/1400052904/
+http://www.amazon.com/exec/obidos/ASIN/1560254890/
+http://www.amazon.com/exec/obidos/ASIN/1561840033/
+http://www.amazon.com/exec/obidos/ASIN/1562790218/
+http://www.amazon.com/exec/obidos/ASIN/1564143236/
+http://www.amazon.com/exec/obidos/ASIN/1572160268/
+http://www.amazon.com/exec/obidos/ASIN/1572160268/ref=nosim/heartofscotla-20
+http://www.amazon.com/exec/obidos/ASIN/1578516803/
+http://www.amazon.com/exec/obidos/ASIN/1579546986
+http://www.amazon.com/exec/obidos/ASIN/1579546986/
+http://www.amazon.com/exec/obidos/ASIN/1581800460/
+http://www.amazon.com/exec/obidos/ASIN/1585423017/
+http://www.amazon.com/exec/obidos/ASIN/1590170245
+http://www.amazon.com/exec/obidos/ASIN/1590593685/
+http://www.amazon.com/exec/obidos/ASIN/1590594304/
+http://www.amazon.com/exec/obidos/ASIN/1591840147/
+http://www.amazon.com/exec/obidos/ASIN/1592400175/
+http://www.amazon.com/exec/obidos/ASIN/1593600232/
+http://www.amazon.com/exec/obidos/ASIN/1840460105/ref=nosim/rebeccaspocke-20
+http://www.amazon.com/exec/obidos/ASIN/1842152432/
+http://www.amazon.com/exec/obidos/ASIN/1842152432/qid=992896446/sr=1-36/howtoknowtheeart
+http://www.amazon.com/exec/obidos/ASIN/1842152432/ref=nosim/shroomery-20/
+http://www.amazon.com/exec/obidos/ASIN/1878424114/
+http://www.amazon.com/exec/obidos/ASIN/1879678101/
+http://www.amazon.com/exec/obidos/ASIN/1883219027/
+http://www.amazon.com/exec/obidos/ASIN/188321937X/
+http://www.amazon.com/exec/obidos/ASIN/1889772038/
+http://www.amazon.com/exec/obidos/ASIN/1890310034/
+http://www.amazon.com/exec/obidos/ASIN/B00005ME4O/ref=nosim/monstermadness.com-20
+http://www.amazon.com/exec/obidos/ASIN/B000096RCB/
+http://www.amazon.com/exec/obidos/ISBN%3D0201633612/
+http://www.amazon.com/exec/obidos/ISBN%3D047115279X/
+http://www.amazon.com/exec/obidos/ISBN%3D0520087127/
+http://www.amazon.com/exec/obidos/ISBN%3D0671708635/
+http://www.amazon.com/exec/obidos/ISBN%3D0679772677/
+http://www.amazon.com/exec/obidos/ISBN%3D0789714140/
+http://www.amazon.com/exec/obidos/ISBN%3D0810961733/
+http://www.amazon.com/exec/obidos/ISBN%3D0916078329/
+http://www.amazon.com/exec/obidos/ISBN%3D0965987302/
+http://www.amazon.com/exec/obidos/ISBN=0028610415/
+http://www.amazon.com/exec/obidos/ISBN=002861397X/
+http://www.amazon.com/exec/obidos/ISBN=0072257946/
+http://www.amazon.com/exec/obidos/ISBN=0136298419/
+http://www.amazon.com/exec/obidos/ISBN=0140144560/
+http://www.amazon.com/exec/obidos/ISBN=0140153519/
+http://www.amazon.com/exec/obidos/ISBN=0152005420/
+http://www.amazon.com/exec/obidos/ISBN=0195119010/
+http://www.amazon.com/exec/obidos/ISBN=0195215737/
+http://www.amazon.com/exec/obidos/ISBN=0201633612
+http://www.amazon.com/exec/obidos/ISBN=0201633612/
+http://www.amazon.com/exec/obidos/ISBN=0201924781
+http://www.amazon.com/exec/obidos/ISBN=0201924781/
+http://www.amazon.com/exec/obidos/ISBN=0253210283/
+http://www.amazon.com/exec/obidos/ISBN=0253211190/
+http://www.amazon.com/exec/obidos/ISBN=0300078269/
+http://www.amazon.com/exec/obidos/ISBN=0304343374/
+http://www.amazon.com/exec/obidos/ISBN=0310417414/
+http://www.amazon.com/exec/obidos/ISBN=0312069146/
+http://www.amazon.com/exec/obidos/ISBN=0312135211/
+http://www.amazon.com/exec/obidos/ISBN=0312167857/
+http://www.amazon.com/exec/obidos/ISBN=0312283970/
+http://www.amazon.com/exec/obidos/ISBN=0345400917/
+http://www.amazon.com/exec/obidos/ISBN=0393045374/
+http://www.amazon.com/exec/obidos/ISBN=0394469674/
+http://www.amazon.com/exec/obidos/ISBN=0395410568/
+http://www.amazon.com/exec/obidos/ISBN=0395710901/
+http://www.amazon.com/exec/obidos/ISBN=0399142045/
+http://www.amazon.com/exec/obidos/ISBN=0399223363/
+http://www.amazon.com/exec/obidos/ISBN=0452263948/
+http://www.amazon.com/exec/obidos/ISBN=0471113565/
+http://www.amazon.com/exec/obidos/ISBN=047112351X/
+http://www.amazon.com/exec/obidos/ISBN=0471155063/
+http://www.amazon.com/exec/obidos/ISBN=0471165530/
+http://www.amazon.com/exec/obidos/ISBN=0471239941/
+http://www.amazon.com/exec/obidos/ISBN=0521777682/
+http://www.amazon.com/exec/obidos/ISBN=052594527X/
+http://www.amazon.com/exec/obidos/ISBN=0553107046/
+http://www.amazon.com/exec/obidos/ISBN=0553455710/
+http://www.amazon.com/exec/obidos/ISBN=0671663984/
+http://www.amazon.com/exec/obidos/ISBN=0671708635/
+http://www.amazon.com/exec/obidos/ISBN=0671742515/
+http://www.amazon.com/exec/obidos/ISBN=0671870831/
+http://www.amazon.com/exec/obidos/ISBN=0674893069/
+http://www.amazon.com/exec/obidos/ISBN=0674893077/
+http://www.amazon.com/exec/obidos/ISBN=0679730540/
+http://www.amazon.com/exec/obidos/ISBN=0679772677/
+http://www.amazon.com/exec/obidos/ISBN=0684807726/
+http://www.amazon.com/exec/obidos/ISBN=0684829924/
+http://www.amazon.com/exec/obidos/ISBN=0684852861/
+http://www.amazon.com/exec/obidos/ISBN=0684863375/
+http://www.amazon.com/exec/obidos/ISBN=0738203084/
+http://www.amazon.com/exec/obidos/ISBN=0767900111/
+http://www.amazon.com/exec/obidos/ISBN=0786862173/
+http://www.amazon.com/exec/obidos/ISBN=0789714140/
+http://www.amazon.com/exec/obidos/ISBN=0789718103/
+http://www.amazon.com/exec/obidos/ISBN=0803709692/
+http://www.amazon.com/exec/obidos/ISBN=0805210288/
+http://www.amazon.com/exec/obidos/ISBN=0806127716/
+http://www.amazon.com/exec/obidos/ISBN=0806129476/
+http://www.amazon.com/exec/obidos/ISBN=0806316292/
+http://www.amazon.com/exec/obidos/ISBN=0809133148/
+http://www.amazon.com/exec/obidos/ISBN=0812927907/
+http://www.amazon.com/exec/obidos/ISBN=0813120284/
+http://www.amazon.com/exec/obidos/ISBN=0813330858/
+http://www.amazon.com/exec/obidos/ISBN=0814477186/
+http://www.amazon.com/exec/obidos/ISBN=0815627351/
+http://www.amazon.com/exec/obidos/ISBN=0815724691/
+http://www.amazon.com/exec/obidos/ISBN=0844231118/
+http://www.amazon.com/exec/obidos/ISBN=0844238155/
+http://www.amazon.com/exec/obidos/ISBN=0876054084/
+http://www.amazon.com/exec/obidos/ISBN=0879101113/
+http://www.amazon.com/exec/obidos/ISBN=0879515007/
+http://www.amazon.com/exec/obidos/ISBN=0879758481/
+http://www.amazon.com/exec/obidos/ISBN=0887404898/
+http://www.amazon.com/exec/obidos/ISBN=0911647406/
+http://www.amazon.com/exec/obidos/ISBN=0930031571/
+http://www.amazon.com/exec/obidos/ISBN=0940450429/
+http://www.amazon.com/exec/obidos/ISBN=094045064X/
+http://www.amazon.com/exec/obidos/ISBN=0960695400/
+http://www.amazon.com/exec/obidos/ISBN=0969527217/
+http://www.amazon.com/exec/obidos/ISBN=1556156502/
+http://www.amazon.com/exec/obidos/ISBN=1561003840/
+http://www.amazon.com/exec/obidos/ISBN=1564143236/
+http://www.amazon.com/exec/obidos/ISBN=1573560693/
+http://www.amazon.com/exec/obidos/ISBN=1578515130/
+http://www.amazon.com/exec/obidos/ISBN=158488388X/
+http://www.amazon.com/exec/obidos/ISBN=1586480499/
+http://www.amazon.com/exec/obidos/ISBN=1586481207/
+http://www.amazon.com/exec/obidos/ISBN=1587151758/
+http://www.amazon.com/exec/obidos/ISBN=1884777597/
+http://www.amazon.com/exec/obidos/ISBN=1887078002/
+http://www.amazon.com/exec/obidos/ISBN=1891620177/
+http://www.amazon.com/exec/obidos/ISBN=1891661302/
+http://www.amazon.com/exec/obidos/ISBN=283151794X/
+http://www.amazon.com/exec/obidos/asin/0201924781/philosophe-20
+http://www.amazon.com/exec/obidos/asin/0201924781/therobertsgroup
+http://www.amazon.com/exec/obidos/asin/0961863617/casel
+http://www.amazon.com/exec/obidos/tg/browse/-/14831
+http://www.amazon.com/exec/obidos/tg/browse/-/301857
+http://www.amazon.com/exec/obidos/tg/browse/-/4538
+http://www.amazon.com/exec/obidos/tg/browse/-/5868
+http://www.amazon.com/exec/obidos/tg/detail/-/0007141076?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0007154607?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0007154615?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0020100604?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0028610105?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0029227917?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0029257506?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060005726?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006001279X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006008197X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060086270?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060088303?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060170131?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060187239?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006019247X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060192992?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060193050?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060196793?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060198400?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060270209?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060271396?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006029325X?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0060392452?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060392959?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060514558?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060516267?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060517123?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060520612?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060524367?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060525894?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060539259?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006054175X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060563079?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060563893?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060565349?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060570938?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060610638?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060723475?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006072398X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060728264?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060730242?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060746874?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060776579?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060776579?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0060792299?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060910666?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060924349?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060924810?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006092621X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006092621X?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0060930888?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060931671?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060931841?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060933798?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060935332?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060936959?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060952733?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060956348?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060958286?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060964049?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006097396X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060975776?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060984287?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0060988894?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0061010251?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0061044431?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0061093467?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006109773X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0061813109?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0062500872?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0062502182?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0062503227?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0062515861?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0062732366?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/006440739X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0064409651?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0064442055?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0064473368?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0064603067?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0066211727?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0066620023?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0070006571?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0070066477?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0070224439?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0070479046?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0070647623?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0070653380?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0070680345?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0071353178?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0071354697?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0071358366?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0071360654?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0071370161?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0071382313?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0071387730?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0071395555?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/007141231X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0071413863?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0071417842?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/007142220X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0072131454?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0072131829?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0072193042?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/007222696X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0072863641?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0072873078?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0091886171/?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0123903602?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/012426297X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0130313580?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0130461067?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0130489751?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0130819336?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0130869724?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0130891347?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0130894656?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0130952842?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0131038052?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0131401629?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0131829939?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0134546466?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0136059406?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0136360025?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0137261675?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0137581866?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0137903952?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/013791864X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0139696946?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140042431?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140077022?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140131558?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140133968?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140135154?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140157352?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140187952?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140194703?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140249192?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140249389?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140255346?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140264450?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140266909?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140272798?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140280243?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/014034893X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140371508?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140384510?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140442014?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0140501789?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0141001844?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/014130636X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0142002518?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0142002607?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0142002798?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0142003816?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0142004235?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0142004235?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0142196177?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0142437255?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0143034979?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0151007349?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0151011060?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0151011354?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0151699410?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0152008659?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/015205118X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0152163875?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/015505113X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0156005603?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0156007754?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0156011077?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/015602943X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0156029634?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0156030241?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0156468999?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0192801724?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0192813897?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0192836323?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0192838768?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195000528?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0195030958?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195091140?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195092694?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195093852?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195108094?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195110536?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195133420?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195144201?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195157990?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195168402?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0195218884/?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0195218884?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0198503709?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0198519737?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0198606648?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0198691564?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/020111982X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201310058?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/020132797X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/020132802X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201360799?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201485435?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201571692?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201633612
+http://www.amazon.com/exec/obidos/tg/detail/-/0201633612/qid%3D1070341486/sr%3D8-1/ref%3Dsr_8_1
+http://www.amazon.com/exec/obidos/tg/detail/-/0201633612?_encoding=UTF8&no=283155&me=ATVPDKIKX0DER&st=books
+http://www.amazon.com/exec/obidos/tg/detail/-/0201633612?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201702797?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201709201?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201709694?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201749629?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201750430?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201835959?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201896850?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0201924889?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0205266541?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0205329551?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0226066819?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0226092011?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0226104036?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0226143295?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0226278794?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0226458083?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0226468011?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0226468046?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0226532003?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0226904350?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0231131860?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0253340543?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0262024829?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0262133601?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0262162024?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0262240459?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0262541483?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0262560992?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/026256100X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0262581205?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0262661810?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0262661853?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0273645919?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0292752466?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0292752474?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0300070136?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0300076754?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0300088981?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0300092245?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0300093454?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0300102321?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0304333948?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0306810719?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0306813548?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0310205719?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0310239648?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0310245648?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0310925886?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312069146?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312083165?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312152329?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312171218?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312176392?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312181175?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312194552?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312225784?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312252501?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312265999?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/031227260X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312275013?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312289723?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312312601?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312313810?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312313829?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312341156?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312342985?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312421435?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312423608?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312423764?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312858515?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312869657?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0312872593?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312875290?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312890265?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312931158?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0312966482?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0314241302?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0314241302?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0316000647?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316039306?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316089761?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316277126?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316346624?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316363502?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316735124?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316777498?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316779148?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316880655?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316890790?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316899984?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316908452?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0316912123?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0321112717?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0321202988?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0324171730?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345315227?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345339711?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345339738?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345340426?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345388666?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345389964?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345396456?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/034541005X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345416422?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345417607?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345417941?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345427181?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345428684?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345435168?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/034543871X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345441036?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345446089?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345448375?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345457129?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345461924?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/034546625X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0345478061?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0373250134?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0373250290?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0374138583?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0374172811?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0374186871?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0374236488?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0374256284?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0374299897?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0374311013?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0374361738?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375400362?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375404481?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375408908?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375411453?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375412085?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375412425?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375421726?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375422889?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375422986?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375423125?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375432108?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/037550351X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375504397?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/037550477X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375506039?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375506160?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375509038?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375703012?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375703063?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375703799?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375705112?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375708219?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375726403?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375752285?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/037575492X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375758291?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375760474?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375813616?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0375822984?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380004232?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380006766?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380506092?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380713802?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380717492?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380717832?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380723239?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/038077108X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380783568?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380785080?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380793253?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380805413?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380806312?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380806436?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380810549?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380812053?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380979004?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0380979004?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0385199732?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385313543?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385319940?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385335121?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385335881?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385336535?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385419945?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385468059?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385473079?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385475292?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385479689?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385483295?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385484186?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385494149?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385497296?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/038549730X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385497989?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385498802?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385504357?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385509278?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385512457?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0385720041?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0385720610?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/038572179X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0387026207?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0387949569?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0387988998?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393001423?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393010465?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393020371?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393038912?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393051358?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393058697?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393059162?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393303756?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393309649?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393315290?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393317552?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393320405?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393323528?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393325350?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0393950751?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0394508246?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0394519922?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0394747003?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0394752848?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0394758269?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0394823370?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0395070627?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0395181585?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0395193958?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/039541685X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/039548930X?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0395592208?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0395599253?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0395720265?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0395720265?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0395770173?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0395950112?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399144390?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399147403?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399147810?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399147853?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399149457?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399149457?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0399149554?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399151613?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399151729?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399151753?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399152423?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399524118?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0399525386?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0415261279?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0415929423?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0415939518?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0415949475?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0415951283?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0425099660?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0425141551?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/042518238X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0425195430?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0425195430?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0439050227?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0439131952?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0439139317?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/043932162X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0440145368?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0440206154?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0440208939?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0440235596?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0440236738?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0440241367?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0440385814?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0440500893?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0440507855?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0441788386?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0441790348?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0443062617?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446353256?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446364800?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446519006?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446519138?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446523089?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446527556?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446528315?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446531081?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446531324?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446577812?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446602868?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446607584?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446671444?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446672238?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446674362?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446675385?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446676969?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446677469?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446678643?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446678791?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446679496?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446690953?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446691356?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0446695114?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0448416735?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0449003612?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0449005747?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0449211479?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0449218597?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0449219143?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/044991058X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0449983676?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451164695?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451184734?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451185110?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451191757?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451197461?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451209672?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451211766?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451212762?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451213939?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451456718?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451523377?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451529294?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0451627210?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0451628357?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0452260094?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0452267560?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0452272424?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0452278155?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0452278236?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0452279062?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0452281806?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0452282950?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0452284058?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0452284503?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0460870270?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/046500637X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465016146?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465016154?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465017193?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465022812?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465023622?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465025102?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465027458?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465038352?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/046505434X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465088961?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465090826?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465090974?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0465092667?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0470833556?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471042064?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471111864?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471113565?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471137731?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471137847?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471154040?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471159794?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/047118117X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471189626?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471225568?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471247618?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471267368?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471304654?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471319201?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471322865?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471384011?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471402737?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/047141980X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471432210?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471453978?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471460613?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471469645?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471470643?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471478644?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471529125?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471569348?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471584282?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471593613?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471617156?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/047164515X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471645486?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471667307?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471705284?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0471706043?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/047173876X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0472066048?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/047208478X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0472088378?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0486202917?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0486227987?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0486273679?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0486295966?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0486408434?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0486605868?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0486677486?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0505522675?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0505525526?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0515103012?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0515122858?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0515132284?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0515135739?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0515138150?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0517122839?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0517220652?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0517412659?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0517880342?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0520018710?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0520052560?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0520217853?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0520221532?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0520225341?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0520235509?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521164389?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521278716?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521370957?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521425379?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521456908?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521563305?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0521577799?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521645832?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521646529?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521647010?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521653835?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521777682?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521780195?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521782325?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521785723?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521808324?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521819164?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521828384?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0521831431?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/052594673X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553210092?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553273825?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553283960?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553284363?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/055329461X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553345842?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553375067?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553380397?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553381903?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553456539?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553472283?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/055356076X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553573403?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553573411?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553581929?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553582658?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553584510?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0553801414?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0590519220?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0590519700?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0595290590?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0595325270?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0595773842?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0596003471?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/059600527X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0609603523?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0609606441?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0609607278?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0609607820?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0609610848?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0609801090?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0609805851?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0609805932?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0609805940?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0609807838?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0613215389?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0613452860?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0613867165?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0618002235?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0618002243?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0618055444?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0618056777?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0618083456?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0618164723?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/061819729X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0618219277?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0618260277?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0618352104?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0658006436?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0670031771?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067003178X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067003231X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0670033049?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0670033049?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0670033162?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0670059242?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0670841803?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0670885460?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671010069?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671019015?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671023934?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0671026534?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671039741?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671454927?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0671493256?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0671582488?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671582488?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0671659898?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671693808?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671708635/
+http://www.amazon.com/exec/obidos/tg/detail/-/0671720147?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671723650?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671724002?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671726099?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671736450?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671746499?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067176358X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671769723?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067179437X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671795538?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671872664?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671878654?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671878859?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671884271?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0671885286?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0672314096?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0672317249?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067232587X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0674002717?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0674002784?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0674006135?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0674011120?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0674055454?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0674411528?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067463442X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0674637526?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679442545?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679445218?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679445358?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679454438?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679456570?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679459618?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679600507?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679600760?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679720340?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679721037?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679728899?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067973404X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067973421X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679735690?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067973807X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679738959?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679738975?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067974021X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679745092?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067974567X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679746048?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679747044?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679759069?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679770992?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679772898?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/067978330X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679805273?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679847367?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0679882804?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684801221?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684801523?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684807319?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684813637?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684818868?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684824299?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684826305?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684827050?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684828006?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684828189?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684830493?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684831260?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684831309?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684833026?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684834952?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684836688?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684837188?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684838451?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684841363?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684843242?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684843927?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684846225?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684847337?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684848597?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684849623?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684850141?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684852667?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684853116?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684853949?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684856360?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684857952?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684863162?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/068486410X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684867443?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684867486?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684868792?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684869020?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684869195?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0684870592?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0687012384?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0688128408?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0688133541?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0688141994?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0688144772?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0688149251?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0688166288?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0688174418?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0688175716?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/068817986X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0689807570?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0689835493?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0689856849?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0689877323?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0691006202?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0691009031?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0691026483?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0691037388?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0691043019?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0694514772?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0698118022?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0700608796?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/070061088X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0713992816?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0716730901?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0716733870?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0723244049?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735201463?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735201978?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735609047?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735609381?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/073561184X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735611882?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735618038?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735618518?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735620520?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735709211?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735710783?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735712085?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/073571228X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0735713634?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0736649999?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0736908242?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0738200913?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0738202096?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0738205435?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0738205699?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0738207411?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/073820756X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0738208442?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0738857645?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0739309536?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0739441183?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0740718584?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0740721135?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0740721976?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0740726145?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0742526992?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743200438?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743203259?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743203585?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743204441?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743211456?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743213874?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743223136?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743225708?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743226712?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743227328?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743227441?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743227581?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743227867?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743234480?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743235460?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743236203?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743241908?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743245938?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743245962?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743249410?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743250117?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743251008?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/074325192X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743251989?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743254945?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743256166?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743257529?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743260716?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743264436?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0743265025?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743266196?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743267133?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743410149?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743410386?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743412435?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743419340?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743460529?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743480651?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743482549?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743484738?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743499336?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743504143?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0743520815?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743542002?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0743542010?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0744000653?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0745616704?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0745616712/?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0750671858?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0750675993?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0750677783?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0754095762?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0757000371?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0761506691?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0761513167?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0761515631?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0761522786?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0761531157?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/076153394X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0761977848?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0762724803?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0763616052?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0763619612?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0763623334?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764100610?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764102990?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764107909?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764112007?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764122096?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764300725?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764507206?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764547542?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764548573?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764549642/
+http://www.amazon.com/exec/obidos/tg/detail/-/0764549642?_encoding=UTF8&no=283155&me=ATVPDKIKX0DER&st=books
+http://www.amazon.com/exec/obidos/tg/detail/-/0764549642?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764552775?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764554255?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764554638?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0764576429?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0765307901?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0765311852?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0765760630?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0765804875?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0767420489?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0767902602?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0767903447?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0767903692?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0767908171?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0767908864?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0767911733?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0767914104?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0768919754?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0773527958?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0782141064?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0782143237?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0782143245?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0783547501?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0783891024?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0783893965?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0783896190?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0783896190?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0785108068?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0785263705?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0785265392?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0785266046?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0785271368?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/078612301X?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0786223413?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0786245999?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0786267135?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786269405?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786278455?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0786708468?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786712813?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786854456?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786864540?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786865954?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786866314?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786866314?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0786881852?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/078688598X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786886757?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786914297?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0786934107?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0787263168?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0787908088?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0787910155?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0787947652?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0787948039?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0787953431?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/078795652X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0787962910?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0787963879?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0787964239?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0787971375?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0788789848?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0789300249?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0789447355?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0789484250?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0789489597?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/078949647X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0789714140?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0789718103?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0789719576?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0789723344?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0789728249?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0789729717?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0790731037?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0791046346?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0791448940?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0792274717?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0792838068?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0793154707?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0793187990?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0800626818?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0800717880?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0800793110?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/080105723X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0801058066?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/080106211X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0801869188?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0802115888?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0802117112?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0802131565?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0802150845?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0802713548?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0802801587?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0802840353?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0802851207?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0804831882?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0805062386?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0805062394?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0805063315?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0805066977?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0805067809?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0805070893?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0805073132?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0805073396?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0805075372?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0805075593?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0806512717?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0806516054?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0807027197?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0807128031?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0807501964?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0807589551?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0807822736?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0809001586?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0809029561?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0809088541?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0809224887?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0809228572?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0809234300?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0809235005?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0809297825?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0810928558?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0810931060?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0810935805?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0811700844?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0811726371?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0811837858?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/081184109X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812074807?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812079191?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812215613?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812218876?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812233239?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0812511069?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812519590?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812534972?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812558251?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812579259?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812584341?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812928350?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812930428?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812932188?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/081296392X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812968255?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/081296845X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0812969650?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0814328490/
+http://www.amazon.com/exec/obidos/tg/detail/-/0814407617?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0814408680?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0814470637?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0814477186?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0814478808?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0814751717?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0815340222?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0815764367?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0816144575?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0819215635?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0821217992?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0821227556?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0821758551?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0823083462?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0823083691?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0827607598?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0830813578?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0830815155?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0830815813?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/083081597X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/083081891X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/083082314X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0830827420?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0833032909?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0833502115?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0833551299?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0836252829?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0840389086?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0842329218?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0842329293?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0842355588?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0842384065?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0844225533?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0844238619?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0844242691?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0847693325?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0847827615?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0849381266?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0849912229?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0849916399?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0849918200?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0849938619?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0853459401?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0854402217?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0859916197?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/0861710649?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0865475105?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0865475814?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0867130504?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0870114247?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0870700510?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0871137380?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0871137690?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0871137895?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0871205696?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/087154234X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0871563312?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0871563851?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0873226445?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0873378547?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0873648994?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0874776945?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/087477893X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0875423248?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0875846556?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0875848141?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0875848575?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0875848818?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0875849040?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0875849113?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/087584913X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/087605596X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/087612144X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0876146272?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0876281447?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0877193673?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0877939586?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0878083510?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0878770771?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0879758481?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0880117702?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0880119136?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0880889187?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0881504211?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0881923125?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0882847953?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/088385158X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0884153967?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0884158217?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0886779065?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0887306136?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0887306292?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0887307396?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0887308805?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0887308872?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0887308880?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0887309577?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0890242372?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0890511128?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0890818347?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0890878153?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0891078932?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0891417125?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0892552360?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0892810882?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0892812885?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0892813113?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0892815256?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0892815310?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0892817356?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0892818662?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0892818883?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0892819758?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/089296801X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0893817325?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/089480619X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0894807536?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0895261219?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0895261405?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0895871106?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0896218600?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/089733535X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0898598591?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0898702976?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0898797063?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0898799449?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0899193498?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0899576656?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0911647716?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0913589969?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0915299143?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0915811731?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0918477794?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0922915636?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0923550127?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0924486031?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0925480533?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0926412132?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/093058838X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0932633390?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0934211345?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0935012184?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0935926216?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0937765023?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/093852903X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/093852920X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0939040158?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0939165317?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0940160781?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0941532437?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0944502105?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0960695400?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0962770124?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0962867802?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0963617885?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0963753053?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0963815210?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0964782405?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0965748367?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0966103297?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0966275217?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0966612779?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0966722167?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0966972309?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0967035902?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0967251435?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0967605075?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0967759412?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0968676022?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0970222807?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0970827601?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0971330808?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0971799008?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0971887004?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0972507809?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0972577017?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0974297615?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0974998605?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/0975320513?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/140003065X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1400041619?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1400046459?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1400046610?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1400050081?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1400050669?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1400051576?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1400061199?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1400063531?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1401301568?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1401903193?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1413300839?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/141330088X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1550225308?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1550225626?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1550226002?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/155166674X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1555422659?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1555580416?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1555611176?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1556431694?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1556433778?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1556434197?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1556522118?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1557283885?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1558320385?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1558492348?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1558504443?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1558504974?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1558508473?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1558602461?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1558611584?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1558682511?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1559272392?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1559276657?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/1559635894?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1559705477?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1559706848?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1560003197?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/156054788X?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/1560850272?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1560988924?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1561580724?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1561581305?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1561583766?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1561586196?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1561631574?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1561707406?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1561708755?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1561709336?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1562056484?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1562474820?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1562613413?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1563523302?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1563524694?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1563894696?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1563896699?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1563897563?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1564145190?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1564145883?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1564146146?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1565116976?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/1565116984?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/1565122046?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1565302079?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/156584100X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1565844025?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1565844394?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/156584565X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1565847334?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1565922824?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1565925157?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1565925823?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1565928415?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1566391636?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1566565529?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1566890942?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1566913969?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1567512585?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1568361637?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1568362927?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1568381387?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1568386206?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1568811306?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1569245037?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1569552924?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1569717923?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1569902380?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1570429596?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1570613087?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1570641161?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1570713375?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1570750408?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/157174083X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1571781803?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1572242558?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1572481684?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1572703016?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1573221813?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1573223077?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1573225789?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1573240206?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1573241547?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1573921238?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1573927554?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1574323539?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1575420007?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1575450593?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1575663724?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1575668955?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1576104109?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1576104656?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1576750140?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1576751074?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1576751457?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1576752755?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1576752828?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1576833887?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1577240456?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1577310411?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1577311523?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1577311566?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1578050839?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1578063418?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1578260949?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1578511240?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1578513014?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/157851441X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1578568420?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1578630010?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1579107877?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1579540570?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1579546463?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1579546986?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1579547141?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1579547346?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1579549543?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1579652204?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1580086152?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1580110010?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1580421431?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1580533329?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1580625371?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1580626823?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1580627560?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1580910637?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1581311796?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1582342806?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1582344876?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1582369518?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1582404135?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1582430349?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1583762051?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1583940677?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1584503440?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1584650389?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1584792108?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/158479349X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1585420042?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1585421456?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1585421464?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1585423092?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1585670693?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1586390007?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1586481037?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1586481878?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1586482084?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1586482106?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1587241730?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/1587741202?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1587990717?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/158799190X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1588341526?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1590075528?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1590170245?_encoding=UTF8&no=283155&me=ATVPDKIKX0DER&st=books
+http://www.amazon.com/exec/obidos/tg/detail/-/1590170245?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1590591577?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1590702808?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1590861507?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1591391105?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1591392888?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1591840139?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1591840597?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1591840600?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1592001416?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1592330401?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1592400876?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1593090080?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1593356560?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/159355561X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1593558058?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1593558074?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1593558074?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/1594200041?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1594200084?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1594200335?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1594830339?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1594860866?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1840460105?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1842152432?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1844670023?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1852426047?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1855858843?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/185649831X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/185973958X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/185984054X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1861001061?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1861005512?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1861007213?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1878424114?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1878424165?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1878424750?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/1878585215?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1879181487?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1879425920?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1879440067?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1880418622?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1880582244?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1880685094?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1881052990?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1881374904?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1882109384?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1882423070?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1882423100?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1882580109?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1883010918/
+http://www.amazon.com/exec/obidos/tg/detail/-/1883011035?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1883629004?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1883672511?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/188382348X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1885003757?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1885211279?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1885358962?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1885904088?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1885904142?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1886230188?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1886346518?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/188641128X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1886939535?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1887178503?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/1887571051?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1888043040?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1888645377?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/188913175X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1889762105?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1890310034?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/189076504X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1891105167?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1891400274?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1891984322?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1893005054?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1893302563?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1903450381?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1904344003?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1928806082?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1929998813?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1930575165?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1931584036?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1931834067?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1932111921?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1932111972?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1932156798?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1932273190?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1932273271?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/1932420053?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/2880466563?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/3540203656?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/4770015836?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/4770020988?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/4770027567?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/6301777387?v=glance&vi=quotes-trivia
+http://www.amazon.com/exec/obidos/tg/detail/-/6301978188?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/6302794331?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/6303306497?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/6304234635?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/630438551X?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/6305972079?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/8120310462?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/B000000SNL?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000014RC?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000024R5?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00000272Q?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000002JJS?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000002KN8?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000002UAI?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000002VPH?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000003CWC?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000003RGH?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000005H44?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00000IBDY?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00000IBMB?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00000IQCA?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00000JHBU?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00000JYFO?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00001IVFH?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000222XM?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00003001Z?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000031VR1?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00004SCH8?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00004SGDI?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00004T9AS?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00004TTGW?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00004TX1R?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00004WG2D?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00004WGD2?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00004Y7SL?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00004YXVG?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000051XPZ?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000059XOD?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005B1Y1?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005B2VI?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005B6YY?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005JLFT?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005JNSE?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005K9OF?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005KB9W?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005N6OK?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005NR03?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005OQMG?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005R5CC?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005R8PV?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005S85L?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005UM4D?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00005UM4G?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000060OFT?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000634HG?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000638SO?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000063CBR?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000063URD?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000640NN?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000065DWB?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000065T26?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000065V41?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000067J1H?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00006CY3Z?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00006IUID?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00006RGI2?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/B000070IXU?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000077KJL?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000084313?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000844JR?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00008UA61?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00008UA61?v=glance&me=ATVPDKIKX0DER
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000996IX?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00009AKLJ?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000AOV39?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000B29N7?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000C3I4A?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000CD5GV?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000DC12T?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000DK5BB?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/B0000Y3G0C?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0001ADAME?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0001ADAMO?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0001ATELK?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0001BMMHW?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0001I2CFM?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0001ZMX7C?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00020P7TM?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000225ZRE?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B000235UBE?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00023EPEW?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00023EPFQ?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00025L42Q?v=glance&vi=reviews
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002717ZI?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002ABURA?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002BKSUE?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002CTL2O?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002E3754?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002E377M?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002F5BPW?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002F6M00?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002F6MQO?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002F6Y3U?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002I82Z0?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002NUTS8?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002TX4J8?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002X1JPU?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002XDN3G?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002XVKMC?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002Y0SHY?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0002YCV10?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00030EFO4?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00030M9OW?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00049QKZG?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00061XQUY?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00065GX64?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0006GQMCS?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0006HBLEG?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0006I0I76?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0006Q9AOU?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B00076F0GQ?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0007D9VNC?v=glance
+http://www.amazon.com/exec/obidos/tg/detail/-/B0007D9VNC?v=glance&st=*
+http://www.amazon.com/exec/obidos/tg/guides/guide-display/-/1587HVGDLDQCI
+http://www.amazon.com/exec/obidos/tg/guides/guide-display/-/19UP7VG1O606L
+http://www.amazon.com/exec/obidos/tg/guides/guide-display/-/1NY6THS2TTT1W
+http://www.amazon.com/exec/obidos/tg/listmania/list-browse/-/1FPPM0MRRJ45P
+http://www.amazon.com/exec/obidos/tg/listmania/list-browse/-/2G8IRW2E09ZFV
+http://www.amazon.com/exec/obidos/tg/listmania/list-browse/-/3J2CBBPBPR67J
+http://www.amazon.com/exec/obidos/tg/listmania/list-browse/-/EFI6XHUKAC6A
+http://www.amazon.com/exec/obidos/tg/stores/detail/-/borders/0060728256
+http://www.amazon.com/exec/obidos/tg/stores/offering/list/-/0192800930/all
+http://www.amazon.com/exec/obidos/tg/stores/offering/list/-/0192824252/all
+http://www.amazon.com/exec/obidos/tg/stores/offering/list/-/0192839314/all
+http://www.amazon.com/exec/obidos/tg/stores/offering/list/-/0879758481/all
+http://www.amazon.com/exec/obidos/tg/stores/static/-/jobs/department/Kansas/014/
+http://www.amazon.com/gp/browse.html?_encoding=UTF8&node=10304651&no=10169511&me=A3ITI9OL2RKBEO
+http://www.amazon.com/gp/browse.html?_encoding=UTF8&node=13584171&no=13584001&me=A36L942TSJ2AJA
+http://www.amazon.com/gp/cdp/member-reviews/A116ZSMZRT9RUN
+http://www.amazon.com/gp/cdp/member-reviews/A12PAMLZ1QJ1UA?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A16JUK0J07A6MC?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A17FLA8HQOFVIG?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A17M20ISV4BP07?_encoding=UTF8&display=public&page=3
+http://www.amazon.com/gp/cdp/member-reviews/A185N9XQW1P5D6?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A189GX08UTEAXT?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1B6SNJSCSP45B
+http://www.amazon.com/gp/cdp/member-reviews/A1B6SNJSCSP45B?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1B6SNJSCSP45B?_encoding=UTF8&display=public&page=1
+http://www.amazon.com/gp/cdp/member-reviews/A1BXLY77IJIR4I?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1J1X0T9KP5YP3?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1KGNXKJ9BWK9
+http://www.amazon.com/gp/cdp/member-reviews/A1KY2SE12T3UXH?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1LVZOK9F7K4CN?_encoding=UTF8&display=public&page=5
+http://www.amazon.com/gp/cdp/member-reviews/A1P45ZB60ZQDSY?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1PFRFGX0SXSKZ?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1RAUVCWYHTQI4?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1RDKBX3WAL5I8
+http://www.amazon.com/gp/cdp/member-reviews/A1T13S3JPJQ99M
+http://www.amazon.com/gp/cdp/member-reviews/A1T13S3JPJQ99M?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1TPW86OHXTXFC?_encoding=UTF8&display=public&page=7
+http://www.amazon.com/gp/cdp/member-reviews/A1TXD4O7Z15FY4?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1V11YFWQX2VS1?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1XJOSJN6FHFO0?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1ZOYQ41EGZJ7D?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A1ZOYQ41EGZJ7D?_encoding=UTF8&display=public&page=2
+http://www.amazon.com/gp/cdp/member-reviews/A21279TEPJ8YJ9?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A23DFB8IUTIZM0?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A25ESHN4WITIW2
+http://www.amazon.com/gp/cdp/member-reviews/A26JGAM6GZMM4V?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A27ACVYFK9GXGS
+http://www.amazon.com/gp/cdp/member-reviews/A27WFT91VBM8YO
+http://www.amazon.com/gp/cdp/member-reviews/A29CK3R8EIDEJG?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A2B9Y0WXNSN17U?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A2BEU7GPGNIG44
+http://www.amazon.com/gp/cdp/member-reviews/A2BODHJNOO5M9X
+http://www.amazon.com/gp/cdp/member-reviews/A2C3E35FDWR8WV?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A2DYLP69KB1GZ6
+http://www.amazon.com/gp/cdp/member-reviews/A2ET21TYVYJZVW
+http://www.amazon.com/gp/cdp/member-reviews/A2EYYAKH4VF70T
+http://www.amazon.com/gp/cdp/member-reviews/A2EYYAKH4VF70T?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A2FXSRQCPOP3G5?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A2I18AO597DSDI?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A2LLH74Y2M0VHH
+http://www.amazon.com/gp/cdp/member-reviews/A2M4KVJ9E2AM7C?_encoding=UTF8&display=public&page=2
+http://www.amazon.com/gp/cdp/member-reviews/A2MFUK442KQAPQ?_encoding=UTF8&display=public&page=7
+http://www.amazon.com/gp/cdp/member-reviews/A2MG8DHACXH5MS?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A2NS1S1GIPGDAY
+http://www.amazon.com/gp/cdp/member-reviews/A2O5TLE802NTA8?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A2QQ2HQ4WQM1EP
+http://www.amazon.com/gp/cdp/member-reviews/A2ULPJ9UDZCGQ2
+http://www.amazon.com/gp/cdp/member-reviews/A2X6GEC6LCDN4S?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A2YNIRQA2JJTKQ?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A30AO422P01XK0?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3119V9POC03YM?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A31C6V1CIM04SV?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A32Q0R5AVPCNWO?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A337VQW00OJ5I5?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A34EQA9J9EDWNC?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A34KZYE51A0A19?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A34OZMGD9QBLTW?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A356TJCTCLDN89?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A372VRLDV38BRY
+http://www.amazon.com/gp/cdp/member-reviews/A372VRLDV38BRY?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A37BLSYZNNJA7O?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A39FAFC1YQNCE4?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3A48XEYWLWH7T?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3BJZ6UN3CFO1W
+http://www.amazon.com/gp/cdp/member-reviews/A3CZHZAH62GY22
+http://www.amazon.com/gp/cdp/member-reviews/A3CZHZAH62GY22?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3EUTO1D02130H?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3FF71OAL9FKW2?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3FGFF44RCOZXG?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3G545YMVB6CUZ?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3GFLNQE45KUMN?_encoding=UTF8&display=public&page=3
+http://www.amazon.com/gp/cdp/member-reviews/A3GPFHWJ1SSIHE?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3HXT0WRHKT2AW?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3KV6TFH8F9FD7?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3KVT8TRSI44NU
+http://www.amazon.com/gp/cdp/member-reviews/A3KVT8TRSI44NU?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3LZ9KEOZBNZPE
+http://www.amazon.com/gp/cdp/member-reviews/A3N10W4T5GBPR2
+http://www.amazon.com/gp/cdp/member-reviews/A3N10W4T5GBPR2?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3N424DMIJVYAK
+http://www.amazon.com/gp/cdp/member-reviews/A3OG3HV48J3VQM
+http://www.amazon.com/gp/cdp/member-reviews/A3P738KVXL2YYM?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3PR0KNBP01UR9?_encoding=UTF8&display=public&page=2
+http://www.amazon.com/gp/cdp/member-reviews/A3Q77CS1DEQLMG?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3SJR9A7T8W40W?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3T8AC805UZWZR?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A3UZ0I4XXYDQ4P?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A57VAB1GKMBUA?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A67NO0TFRCNK1?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A6YK7TEYVSSA3?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A7UGEZ6KTJLIT?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A82L6C4237BWV?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/A9AZJGWMDJ7SR
+http://www.amazon.com/gp/cdp/member-reviews/AC8E3L5ZM01P
+http://www.amazon.com/gp/cdp/member-reviews/AD4XSEKD62S2H?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/ADYED6Z2R1R0Z?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AE31M52VLKOG6
+http://www.amazon.com/gp/cdp/member-reviews/AE31M52VLKOG6?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AFITDZEWKJKAM?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AGFW667QNHDOY?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AHDKBOV5IT7RV?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AK7CAW3N1XZV6?_encoding=UTF8&display=public&page=7
+http://www.amazon.com/gp/cdp/member-reviews/AKXSTJQH1YUL7?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AL204P2GKCB1S?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AL339TZFO5CNL?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/ALDA72MNSJVOK?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AMTV3L9A3WPSG
+http://www.amazon.com/gp/cdp/member-reviews/AP18VHMTAG8J2?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AP839YM0XJ664?_encoding=UTF8&display=public&page=2
+http://www.amazon.com/gp/cdp/member-reviews/AQ81HZS5XRNPL
+http://www.amazon.com/gp/cdp/member-reviews/ARJIAB8SLWAOU
+http://www.amazon.com/gp/cdp/member-reviews/AT0QG1CGLM0ST
+http://www.amazon.com/gp/cdp/member-reviews/ATN1SSKTJD8Z8?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AUAQ5JH3CNAXJ?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AV0I0ZZOBMBBF?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AVMNVT2KRXELO?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AW2T0G57RPUH5
+http://www.amazon.com/gp/cdp/member-reviews/AXFI7TAWD6H6X?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AXW444VIV75UF?_encoding=UTF8
+http://www.amazon.com/gp/cdp/member-reviews/AXZILZSO1ETBM
+http://www.amazon.com/gp/cdp/member-reviews/AYPCUQS6ARWFH
+http://www.amazon.com/gp/help/seller/feedback.html?_encoding=UTF8&asin=&marketplaceSeller=&seller=A3QSK5W9R94SE1
+http://www.amazon.com/gp/product/0827386222?_encoding=UTF8
+http://www.amazon.com/gp/product/customer-reviews/0452285356?_encoding=UTF8
+http://www.amazon.com/gp/product/customer-reviews/0679863729?_encoding=UTF8
+http://www.amazon.com/gp/product/customer-reviews/0743222970?_encoding=UTF8&customer-reviews.sort_by=-SubmissionDate&n=283155
+http://www.amazon.com/gp/product/customer-reviews/074352490X?_encoding=UTF8&n=283155&s=books
+http://www.amazon.com/gp/product/customer-reviews/0743524918?_encoding=UTF8&n=283155&s=books
+http://www.amazon.com/gp/product/customer-reviews/0761130632?_encoding=UTF8&customer-reviews.sort_by=-SubmissionDate&n=283155
+http://www.amazon.com/gp/product/customer-reviews/0761130632?_encoding=UTF8&n=283155&s=books
+http://www.amazon.com/gp/product/customer-reviews/087605596X?_encoding=UTF8&n=283155&s=books
+http://www.amazon.com/gp/product/customer-reviews/0911226338?_encoding=UTF8&customer-reviews.sort_by=-SubmissionDate&n=283155
+http://www.amazon.com/gp/product/customer-reviews/0911226338?_encoding=UTF8&n=283155&s=books
+http://www.amazon.com/gp/product/customer-reviews/1592400175?_encoding=UTF8&n=283155&s=books
+http://www.amazon.com/gp/product/customer-reviews/B000000SNL/?_encoding=UTF8&me=ATVPDKIKX0DER&s=music
+http://www.amazon.com/gp/product/product-description/0312993560?_encoding=UTF8&n=283155
+http://www.amazon.com/gp/product/product-description/0345444094?_encoding=UTF8&n=283155&s=books
+http://www.amazon.com/o/ASIN/0151007349?_encoding=UTF8&coliid=&colid=
+http://www.amazon.com/o/ASIN/042518739X?_encoding=UTF8&coliid=&colid=
+http://www.amazon.com/o/ASIN/0595325270?_encoding=UTF8&coliid=&colid=
+http://www.amazon.com/o/ASIN/067232587X?_encoding=UTF8&coliid=&colid=
+http://www.amazon.com/o/ASIN/0911226338?_encoding=UTF8&coliid=&colid=
+http://www.amazon.com/o/ASIN/1890310034?_encoding=UTF8&coliid=&colid=
+http://www.amb-usa.fr/consul/oas_birth.htm
+http://www.ambafrance-ca.org/ambafrance-ca.org_non_ssl/gallery/genese/pages/vimy.htm
+http://www.ambafrance-uk.org/asp/service.asp?SERVID=100&LNG=en&PAGID=102
+http://www.ambafrance-us.org/news/standpoint/stand123.asp
+http://www.ambafrance-us.org/news/statmnts/2004/levitte_bar111104.asp
+http://www.ambafrance-us.org/news/statmnts/2005/barnier_gymnich041505.asp
+http://www.ambafrance-us.org/news/statmnts/2005/villepin_secularism022405.asp
+http://www.ambassadorgroup.org/html/order_form_music.html
+http://www.ambientvisions.com/1212001.htm
+http://www.ambientvisions.com/defresnes.htm
+http://www.ambiguous.org/robin/word/argue.html
+http://www.ambion.com/catalog/CatNum.php?1564
+http://www.ambion.com/catalog/ProdGrp.html?fkApp=29&fkSubApp=176&fkProdGrp=348
+http://www.ambisonic.net/mlp.html
+http://www.amblesideonline.org/PR/PR11p149Memoryand%20Forgetfulness.shtml
+http://www.ambrosiasw.com/forums/lofiversion/index.php/t15313.html
+http://www.ambrosiasw.com/forums/lofiversion/index.php/t33578.html
+http://www.ambrosine.com/resource.html
+http://www.ambulancetrader.com/cgi/classifieds/classifieds.cgi?db=mediumduty&website=&language=&session_key=&print_tips_page_button=on
+http://www.amc-ny.org/
+http://www.amc-ny.org/rec_actv/canoe/
+http://www.amc.army.mil/amc/pa/aprilissue.html
+http://www.amc.edu/unionupdate/SEIU/seiulabor.cfm?action=fp
+http://www.amcad.com/projects.html
+http://www.amcgltd.com/archives/002057.html
+http://www.amcham.co.nz/
+http://www.amcham.co.nz/Events.htm
+http://www.amcham.co.nz/INDEX.HTM
+http://www.amci.com/stepper-motor-control/integrated-stepper-motor-drive-23-FAQs.asp
+http://www.amconmag.com/02_10_03/feature.html
+http://www.amconmag.com/2004_04_12/article1.html
+http://www.amconmag.com/2005_02_28/article.html
+http://www.amconmag.com/2005_06_20/article1.html
+http://www.amcpages.com/atwt/whoswho/william.php
+http://www.amda.com/
+http://www.amda.com/caring/july2003/medical_direction.htm
+http://www.amda.com/industry/
+http://www.amdacmedirect.com/
+http://www.amdocs.com/hotnews.asp?news_id=479
+http://www.ame-church.org/amehist.htm
+http://www.ame-church.org/amehist.html
+http://www.ameinfo.com/
+http://www.ameinfo.com/38236.html
+http://www.ameinfo.com/58120.html
+http://www.ameinfo.com/60824.html
+http://www.ameinfo.com/62759.html
+http://www.ameinfo.com/db-823424.html
+http://www.ameinfo.com/news/Detailed/25449.html
+http://www.ameinfo.com/news/Detailed/46645.html
+http://www.ameinfo.com/news/Detailed/50401.html
+http://www.america.cry.org/project_details.asp?project_id=1
+http://www.americaconnects.net/learn/involvement.asp
+http://www.americaheldhostile.com/ed040804-1.shtml
+http://www.americamagazine.org/BookReview.cfm?articleTypeID=31&textID=1200&issueID=350
+http://www.americamagazine.org/articles/martin-opusdei.cfm
+http://www.americamagazine.org/gettext.cfm?articleTypeID=1&textID=1539&issueID=330
+http://www.american-buddha.com/profit.disease.htm
+http://www.american-buddha.com/trouble.shangri.htm
+http://www.american-buddha.com/unauthor.bio.bush.24.2.htm
+http://www.american-health-insurance.com/privacy.htm
+http://www.american-music-club.com/
+http://www.american-partisan.com/cols/2003/hall/qtr4/1204.htm
+http://www.american-philosophy.org/archives/2003_Institute/readings/dombrowski1.htm
+http://www.american.edu/projects/mandala/TED/ice/IRANIRAQ.HTM
+http://www.american.edu/projects/mandala/TED/rose.htm
+http://www.american.edu/projects/mandala/TED/smith/Nassopoulos.htm
+http://www.american.edu/psm/FAQs.htm
+http://www.americanairsoft.com/faqs.htm
+http://www.americanantigravity.com/podkletnov.html
+http://www.americanapparel.net/presscenter/articles/20031101swaspirit.html
+http://www.americanartists.org/art/article_a_crack_in_the_bubble.htm
+http://www.americanassembly.org/programs.dir/prog_display_ind_pg.php?this_filename_prefix=accounting&this_ind_prog_pg_filename=outcom
+http://www.americanatheist.org/supplement/conspiracy.html
+http://www.americanatheist.org/win99-00/T2/remnants.html
+http://www.americanbamboo.org/ChapterPages/NoCalChapterInfo.html
+http://www.americanbrittanyrescue.org/success/success.html
+http://www.americancatholic.org/Messenger/Jan2001/Feature3.asp
+http://www.americancatholic.org/Messenger/Jan2005/Eye_On_Entertainment.asp
+http://www.americancatholic.org/Messenger/Oct2000/feature2.asp
+http://www.americancatholic.org/Messenger/Oct2004/Eye_On_Entertainment.asp
+http://www.americancatholic.org/Newsletters/CU/ac0799.asp
+http://www.americancatholic.org/Newsletters/EDC/ag1202.asp
+http://www.americancatholic.org/Newsletters/YU/ay0797.asp
+http://www.americancatholic.org/Newsletters/YU/ay1195.asp
+http://www.americanchristianhistory.com/grammar.html
+http://www.americanchristianhistory.com/principleapproach02.html
+http://www.americancity.org/article.php?id_article=103
+http://www.americancity.org/article.php?id_article=86
+http://www.americanconference.com/program_conference/print_conf.cfm?ID=2549
+http://www.americandaily.com/article/6423
+http://www.americandaily.com/article/8015
+http://www.americandebtresources.com/creditreports.html
+http://www.americanembassy.org.cy/USpolicy/sp-train_trainersSept04.htm
+http://www.americanet.com/Classified/
+http://www.americanexpress.com.bh/mena/personal/cards/benefits/blue/uae_deals_retail.jsp
+http://www.americanexpress.com/uk/customerservice/contactamex_phone.shtml?uk_nav=cscontactmain
+http://www.americanfenceassociation.com/page.cfm?pageid=1666
+http://www.americanfootballmonthly.com/Subaccess/Magazine/03mar/spotlight.html
+http://www.americanforests.org/productsandpubs/magazine/archives/2005winter/feature1_1.php
+http://www.americanfundamentalists.com/cast.html
+http://www.americanfunding.com/mortgage.htm
+http://www.americanfunds.com/funds/details.htm?fundGroupNumber=10&fundClassNumber=0
+http://www.americanfunds.com/funds/details.htm?fundGroupNumber=10&fundClassNumber=0&layout=print
+http://www.americanfunds.com/funds/details.htm?fundGroupNumber=5&fundClassNumber=0
+http://www.americangaming.org/rgq/rgq_detail.cfv?id=291
+http://www.americangeriatrics.org/policy/med_expands.shtml
+http://www.americangeriatrics.org/products/positionpapers/treatdec.shtml
+http://www.americanheart.org/presenter.jhtml?identifier=11064
+http://www.americanheart.org/presenter.jhtml?identifier=2873
+http://www.americanheart.org/presenter.jhtml?identifier=3003156
+http://www.americanheart.org/presenter.jhtml?identifier=3008517
+http://www.americanheart.org/presenter.jhtml?identifier=3017030
+http://www.americanheart.org/presenter.jhtml?identifier=3029029
+http://www.americanheart.org/presenter.jhtml?identifier=4554
+http://www.americanheart.org/presenter.jhtml?identifier=4565
+http://www.americanheart.org/presenter.jhtml?identifier=467
+http://www.americanheart.org/presenter.jhtml?identifier=562
+http://www.americanhistory.com/history/RedBadge/rboc1.mgi
+http://www.americanhonor.net/
+http://www.americanhorsepubs.org/communication/newsletter_archive/
+http://www.americanhumane.org/site/DocServer/ProtectingAnimals_20.4B.pdf?docID=1242
+http://www.americanhumanist.org/humanism/thebible.html
+http://www.americanidle.org/MT/archives/american_idle/index.php
+http://www.americanliterature.com/LM/LM28.HTML
+http://www.americanliterature.com/WP/WP08.HTML
+http://www.americanmissionary.org/
+http://www.americanmusical.com/item--i-FOC-MH447--brand-97.html
+http://www.americanmusicscene.com/site/11607-orchid-arrangements.html
+http://www.americanmusicscene.com/site/24319-dusk-to-dawn-lights.html
+http://www.americanmusicscene.com/site/29154-kenwood-wine.html
+http://www.americanmusicscene.com/site/32240-shepherd-dog.html
+http://www.americanmusicscene.com/site/36067-silk-floral-arrangement.html
+http://www.americanmusicscene.com/site/37326-century-village-pembroke-pines.html
+http://www.americanmusicscene.com/site/38023-seoul-airport-hotel.html
+http://www.americanmusicscene.com/site/46844-lighted-makeup-mirrors.html
+http://www.americanmusicscene.com/site/669-standing-frames.html
+http://www.americanmusicscene.com/site/8145-trampoline-equipment.html
+http://www.americanparknetwork.com/parkinfo/sl/history/liberty.html
+http://www.americanpoems.com/search/dare_further_stare_with_me
+http://www.americanpopularculture.com/archive/sports/american_soccer_popularity.htm
+http://www.americanpopularculture.com/journal/articles/fall_2002/silbergleid.htm
+http://www.americanpopularculture.com/journal/articles/spring_2002/pratt.htm
+http://www.americanpopularculture.com/journal/articles/spring_2003/rothenberg.htm
+http://www.americanpopularculture.com/journal/articles/spring_2004/king.htm
+http://www.americanpresbyterianchurch.org/church_union.htm
+http://www.americanpresident.org/history/harrytruman/biography/domesticpolicy.common.shtml
+http://www.americanpresident.org/history/johnadams/firstlady/
+http://www.americanpresident.org/history/johnadams/firstlady/printable.html
+http://www.americanpresident.org/history/zacharytaylor/firstlady/
+http://www.americanpresident.org/history/zacharytaylor/firstlady/printable.html
+http://www.americanpressinstitute.org/content/p1446_c1382.cfm
+http://www.americanprogress.org/site/pp.asp?c=biJRJ8OVF&b=13717
+http://www.americanprogress.org/site/pp.asp?c=biJRJ8OVF&b=253512
+http://www.americanprogress.org/site/pp.asp?c=biJRJ8OVF&b=65916
+http://www.americanprogress.org/site/pp.asp?c=biJRJ8OVF&b=68488
+http://www.americanprogress.org/site/pp.asp?c=biJRJ8OVF&b=9205
+http://www.americanprogress.org/site/pp.asp?c=biJRJ8OVF&b=9205&printmode=1
+http://www.americanprogressaction.org/site/pp.asp?c=klLWJcP7H&b=100480
+http://www.americanprogressaction.org/site/pp.asp?c=klLWJcP7H&b=118263&rghtnav=readmore2
+http://www.americanprogressaction.org/site/pp.asp?c=klLWJcP7H&b=187035
+http://www.americanprogressaction.org/site/pp.asp?c=klLWJcP7H&b=237258
+http://www.americanredcrossblood.org/all_about_us_in_the_news.asp
+http://www.americanreligion.org/cultwtch/mormon.html
+http://www.americanresearchco.com/
+http://www.americanreview.us/back70.htm
+http://www.americanreview.us/jane75.htm
+http://www.americanrhetoric.com/speeches/annashawrepublic.htm
+http://www.americanrhetoric.com/speeches/barbarajordanjudiciarystatement.htm
+http://www.americanrhetoric.com/speeches/charltonhestonculturalwar.htm
+http://www.americanrhetoric.com/speeches/gferraroacceptanceaddress.html
+http://www.americanrhetoric.com/speeches/jfkamericanuniversityaddress.html
+http://www.americanrhetoric.com/speeches/richardnixongreatsilentmajority.html
+http://www.americanrhetoric.com/speeches/tedkennedychappaquiddick.htm
+http://www.americans-world.org/digest/global_issues/intertrade/helpingworkers.cfm
+http://www.americans-world.org/digest/global_issues/intertrade/laborstandards.cfm
+http://www.americans-world.org/digest/global_issues/intertrade/onbalance.cfm
+http://www.americans-world.org/digest/regional_issues/IsraelPalestinians/summary_ME.cfm
+http://www.americans-world.org/digest/regional_issues/china/china7.cfm
+http://www.americansc.org.uk/Online/
+http://www.americansc.org.uk/Online/cooper.htm
+http://www.americanschoolofaviation.com/Testimonials.htm
+http://www.americanscientist.org/template/AssetDetail/assetid/17663
+http://www.americanscientist.org/template/AssetDetail/assetid/28365
+http://www.americanscientist.org/template/AssetDetail/assetid/33954
+http://www.americansforgunsafety.com/ags_in_the_news_article.asp?id=304&page=2
+http://www.americansingles.com/default.asp?p=13000&CategoryID=4
+http://www.americanthinker.com/articles.php?article_id=3514
+http://www.americantrakehner.com/
+http://www.americanturf.com/scripts/item.cfm?cat=&itemid=592&itmcnt=10&secid=6&eflag=0&catalogname=wincommerce
+http://www.americanturf.com/scripts/item.cfm?cat=&itemid=592&itmcnt=47&secid=6&eflag=0&catalogname=wincommerce
+http://www.americanunsecured.com/direct-finance-n.html
+http://www.americanvillage.org/boardmembers.shtml
+http://www.americanvillage.org/history.shtml
+http://www.americanvoice2004.org/
+http://www.americanwhitewater.org/rivers/id/2123/
+http://www.americanwhitewater.org/rivers/id/3645/
+http://www.americanwhitewater.org/rivers/id/3949/
+http://www.americanwhitewater.org/rivers/id/868/
+http://www.americanwriters.org/writers/truth.asp
+http://www.americaputmeoutofbusiness.com/news-june-22-05-002.php
+http://www.americas.org/item_15886
+http://www.americasblood.org/index.cfm?fuseaction=display.showPage&pageID=151
+http://www.americasblood.org/index.cfm?fuseaction=display.showPage&pageID=247
+http://www.americasdebate.com/forums/index.php?showtopic=2446&st=40
+http://www.americasdebate.com/forums/index.php?showtopic=8710
+http://www.americasdebate.com/forums/simple/index.php/t8117.html
+http://www.americasdemocrats.org/st122303.cfm
+http://www.americastestkitchen.com/Episode/330.htm
+http://www.americasvalueinvestor.com/receiver/schedules11-5-02.html
+http://www.americasvalueinvestor.com/receiver/status_rept_11-8-02.html
+http://www.americasvoices.org/archives2004/PattonD/PattonD_110204.htm
+http://www.americawest.com/
+http://www.americorps.org/rulemaking/rulemaking_background.htm
+http://www.ameripros.org/faq.html
+http://www.ameritech.net/users/rrpromo/show-list.html
+http://www.ametsoc.org/POLICY/stoistmntjan01.html
+http://www.ametsoc.org/amscouncilminutes/council_minutes/CMIN10_2004.html
+http://www.ametsoc.org/pubs/crpolicy.html
+http://www.amfdn.org/ubb/Forum32/HTML/000989.html
+http://www.amfdn.org/ubb/Forum37/HTML/000906.html
+http://www.amfed.org/news/n2000_09.htm
+http://www.amfed.org/news/n2003_09.htm
+http://www.amfsoftware.com/ezine/issue85.html
+http://www.amgen.com/tularik/press/
+http://www.amgot.org/hist/
+http://www.amherst.edu/~careers/gradstudy/gradschool.html
+http://www.amherst.edu/~phyplant/standards.html
+http://www.amherst.edu/~rjyanco/genealogy/acbiorecord/1865.html
+http://www.amherstsecurities.com/fin_notes.asp
+http://www.ami.ac.uk/courses/ami4982_lfi/u01/index.asp
+http://www.amianet.org/publication/resources/cataloging/compendium/introduction.html
+http://www.amichai.com/kodesh/brother/
+http://www.amicus-group.co.uk/index.cfm?articleid=23
+http://www.amiga.org/modules/newbb/viewtopic.php?topic_id=24885&forum=22
+http://www.amigospais-guaracabuya.org/oagim009.php
+http://www.amigospais-guaracabuya.org/oagim012.php
+http://www.amigospais-guaracabuya.org/oagrc015.php
+http://www.amigospais-guaracabuya.org/oagrr024.php
+http://www.amigospais-guaracabuya.org/oagsg002.php
+http://www.amipp.org.uk/shareholders/usanews1.html
+http://www.amiright.com/parody/misc/traditional514.shtml
+http://www.amitai-notes.com/blog/archives/000483.html
+http://www.amityfoundation.org/Amity/teacher/resources/sep/septoolkit/supmat/grabbag.htm
+http://www.amjbot.org/cgi/content/full/86/2/198
+http://www.amk.ca/quotations/neil-gaiman/page-2
+http://www.amm.com/recman/
+http://www.ammocity.com/forum/viewtopic.php?t=2
+http://www.amnation.com/vfr/archives/001777.html
+http://www.amnesty.ca/
+http://www.amnesty.ca/about/history/history_of_amnesty_international/september_11_2001_&_after.php
+http://www.amnesty.ca/take_action/actControlArms_230605.php
+http://www.amnesty.ie/user/content/view/full/2480
+http://www.amnesty.org.il/israel/press2.html
+http://www.amnesty.org.uk/deliver/keyword/10.html
+http://www.amnesty.org/ailib/intcam/east-timor/
+http://www.amnestyusa.org/activist_toolkit/runyourgroup/recruit.html
+http://www.amnestyusa.org/annualreport/statement.html
+http://www.amnestyusa.org/arms_trade/ustraining/military_101.html
+http://www.amnh.org/education/child_youth_fam/hsresearch.html
+http://www.amomslove.com/moms-business-overlookobvious.html
+http://www.amonline.com/article/archive_article.jsp?siteSection=1&displayMonth=March&displayYear=2003
+http://www.amonline.net.au/fishes/about/research/leis5.htm
+http://www.amonline.net.au/geoscience/collections/types.htm
+http://www.amonline.net.au/terrestrial_ecology/research/bioindicators_frogs.htm
+http://www.amorelicious.com/
+http://www.amorhq.net/blogs/index.php/rts
+http://www.ampcomusical.com/roadready-list.php
+http://www.ampersandcom.com/ampersandcommunications/mariorodriguez.htm
+http://www.amprogress.org/
+http://www.amptoons.com/blog/archives/2003/04/
+http://www.amptoons.com/blog/archives/2003/06/13/israeli-palestinian-relations-redux/
+http://www.amptoons.com/blog/archives/category/21/the-wage-gap-series/
+http://www.amputee-coalition.org/inmotion/feb_mar_97/garden.html
+http://www.amquix.info/amway.html
+http://www.amquix.info/aus/directly.htm
+http://www.amrc.org.hk/
+http://www.amrc.org.hk/4903.htm
+http://www.amrc.org.hk/5302.htm
+http://www.amren.com/mtnews/archives/2004/10/adoptive_parent.php
+http://www.amren.com/mtnews/archives/2004/10/endangered_spec.php
+http://www.amren.com/mtnews/archives/2005/06/li_home_held_up.php
+http://www.amrep.org/marat/weiss.html
+http://www.amritapuri.org/amma/2005/501prayersfor.php
+http://www.amritapuri.org/teachings/katha/talking.htm
+http://www.amrresearch.com/AboutUs/Analysts.asp?EmpId=261
+http://www.amrresearch.com/Events/Conference.asp?id=167
+http://www.amrresearch.com/content/resourcecenter.asp?id=436
+http://www.ams.mod.uk/ams/content/docs/sse/strategy/l_vision.htm
+http://www.ams.mod.uk/ams/content/docs/toolkit/gateway/guidance/peopiss/apprcc.htm
+http://www.ams.org/featurecolumn/archive/marriage.html
+http://www.ams.usda.gov/contracting/contracting.htm
+http://www.ams.usda.gov/science/PVPO/Forms/GuidelinesB.htm
+http://www.amsa.org/div/divres.cfm
+http://www.amsa.org/humed/hv/0204writing6.cfm
+http://www.amsa.org/humed/hv/1104writing5.cfm
+http://www.amsa.org/programs/hdencounters.cfm
+http://www.amsac.org/news.html
+http://www.amsat.org/amsat/news/ans2001/ans01063.html
+http://www.amsmeteors.org/mcleod/mcleod4.html
+http://www.amss.net/Abstract_32ndConference/WendyOsheaMeddour32.htm
+http://www.amstadt.com/tblarchive/VOL1997/400-499/bl406.html
+http://www.amstat.org/publications/jse/v10n3/chance.html
+http://www.amsterdam.info/job/
+http://www.amsterdam.nl/asp/get.asp?ItmIdt=00001251&SitIdt=00000005&VarIdt=00000002
+http://www.amt-sybex.com/index.asp?id=74
+http://www.amtech2010.com/
+http://www.amtech2010.com/free_insurance_leads_report.html
+http://www.amtsoft.com/deepfreeze/
+http://www.amun.org/differences.php
+http://www.amundsen.com/
+http://www.amvets.org/HTML/for_our_members/pr_manual.html
+http://www.amwa-dvc.org/toolkit/index.shtml
+http://www.amytart.com/archived/2003_07.php
+http://www.ana.net/com/pm/pmpast.cfm
+http://www.anabaptistnetwork.com/book/view/26
+http://www.anabaptistnetwork.com/donatists
+http://www.anabaptists.org/clp/cfl/cfl-5.html
+http://www.analitica.com/va/ttim/international/4969131.asp
+http://www.analog.com/library/analogDialogue/archives/37-01/compact_flash.html
+http://www.analog.cx/docs/othreps.html
+http://www.analogzone.com/aved0901.htm
+http://www.analyticalcontrols.com/factlmwh.htm
+http://www.analyticalsci.com/Astronomy/Telescopes/imagestv/cleaning_eyepiece_and_telescope_.htm
+http://www.analytiqa.com/ProductsandServices.asp
+http://www.analytiqa.com/productsandservices.asp
+http://www.anandtech.com/memory/showdoc.aspx?i=2130
+http://www.anandtech.com/news/shownews.aspx?i=23303
+http://www.anandtech.com/news/shownews.aspx?i=24477
+http://www.ananews.com/ANANEWS/myarticles.asp?S=251&PubID=2616&P=635782
+http://www.ananzi.co.za/catalog/BuildingandDecor/Architecture/
+http://www.ananzi.co.za/catalog/FunctionsandExhibitions/FunctionServices/
+http://www.anao.gov.au/WebSite.nsf/Publications/044C8F83E2A56B60CA256D4F002232EB
+http://www.anao.gov.au/WebSite.nsf/Publications/3435B5DAA450C6704A256D7500209598
+http://www.anao.gov.au/WebSite.nsf/Publications/4A256AE90015F69BCA256A6C0007392A
+http://www.anapsid.org/frogdecline2.html
+http://www.anapsid.org/handling.html
+http://www.anapsid.org/uvtable.html
+http://www.anarchogeek.com/archives/000257.html
+http://www.anasazi.org/index.php?programs_5
+http://www.anastasiaweb.com/
+http://www.anastasiaweb.com/russian-women-from-Sevastopol-Veronika-name-68474.htm
+http://www.anastasiaweb.com/success_stories/
+http://www.anatomicpathology.com/pt/re/aapath/fulltext.00125480-200109000-00015.htm
+http://www.anats.org.au/
+http://www.anaurora.co.uk/Win2004/Winter2004Text.htm
+http://www.anb.com.au/news.cfm
+http://www.anbg.gov.au/birds/birds.html
+http://www.anbg.gov.au/fungi/dispersal.html
+http://www.anc.org.za/ancdocs/discussion/leadership.html
+http://www.anc.org.za/ancdocs/history/ancylpol.html
+http://www.anc.org.za/ancdocs/history/lutuli/prime.html
+http://www.anc.org.za/ancdocs/history/wcharter.html
+http://www.anc.org.za/ancdocs/history/zuma/2000/jz0113.htm
+http://www.anc.org.za/ancdocs/pubs/umrabulo/umrabulo19/quarantine.html
+http://www.anc.org.za/ancdocs/pubs/umrabulo/umrabulo22/empower.html
+http://www.anc.org.za/ancdocs/speeches/2003/sp0217b.html
+http://www.anc.org.za/ancdocs/speeches/2004/sp0621.html
+http://www.anc.org.za/books/ccsa.html
+http://www.anc.org.za/books/ccsa22.html
+http://www.anc.org.za/books/ccsa26.html
+http://www.anc.org.za/books/escape14.html
+http://www.anc.org.za/people/mandela.html
+http://www.anc.org.za/un/gm-93-3a.html
+http://www.anc.org.za/wl/docs/conf97/wlprsdntreport.html
+http://www.anc.org.za/youth/docs/submissions/fet%20bill.html
+http://www.ancestralbranches.com/
+http://www.ancestralscotland.com/america_t_c
+http://www.ancestry.com/learn/library/article.aspx?article=8419
+http://www.ancestry.com/learn/library/article.aspx?article=9149
+http://www.ancestry.com/learn/library/article.aspx?article=9702
+http://www.ancestry.com/learn/library/article.aspx?article=extra
+http://www.ancestry.com/library/view/ancmag/2526.asp
+http://www.ancient-egypt.org/language/titulary/
+http://www.ancient-scotland.co.uk/changes.php
+http://www.ancientcoinmarket.com/ds/fakes/fakes.html
+http://www.ancientegyptmagazine.com/writing11.htm
+http://www.ancientforest.org/flb5.html
+http://www.andalucia.com/news/cdsn/home.htm
+http://www.andante.com/article/article.cfm?id=25408
+http://www.andda.org/breed_standards.htm
+http://www.andersen.sdu.dk/forskning/konference/tekst_e.html?id=10933
+http://www.anderson.ucla.edu/faculty/dick.rumelt/rumelt_teaching.htm
+http://www.anderson.ucla.edu/faculty/shlomo.benartzi/savemore.htm
+http://www.anderson.ucla.edu/x7544.xml
+http://www.anderson.ucla.edu/x8603.xml
+http://www.andicap.com/acatalog/
+http://www.andinia.com/articulos_expediciones_exploracion_exploration_expeditionsen.shtml
+http://www.andinia.com/articulos_senderismo_acampada_trekking_campingen.shtml
+http://www.andnet.org/goodneighbors/studies/costs.html
+http://www.andover.edu/cs/projects.htm
+http://www.andover.edu/iap/professional_development.htm
+http://www.andra.fr/radioactive_waste/nuclear_waste.htm
+http://www.andra.fr/radioactive_waste/radioactives_wastes_management.htm
+http://www.andra.fr/radioactive_waste/radioactivity_useful.htm
+http://www.andra.fr/radioactive_waste/waste_industry.htm
+http://www.andra.fr/radioactive_waste/wastes_receptacles.htm
+http://www.andreadoria.org/Recollections/Rea/Default.htm
+http://www.andreaubhi.com/laser_teeth_whitening.php
+http://www.andrew-clayton.co.uk/
+http://www.andrew-hall-artist.com/journal/index.php?p=89
+http://www.andrew.cmu.edu/org/circlek/bylaws.htm
+http://www.andrew.cmu.edu/org/fac-senate/Mtg8April03.htm
+http://www.andrew.cmu.edu/org/fac-senate/Mtg8March02.html
+http://www.andrew.cmu.edu/user/ecoffey/fall2004.html
+http://www.andrewclem.com/Baseball/RogersCentre.html
+http://www.andrewgraves.biz/Shakespeare/Shakespeare%20Comedy/loveslabourslost.4.3.html
+http://www.andrewnewberg.com/qna.asp
+http://www.andrewnorsworthy.com/index.cfm/lev1/145/divid/0
+http://www.andrews.edu/HR/ben_leave.html
+http://www.andrewsstarspage.com/CBA/12-28cba.htm
+http://www.andrewsullivan.com/
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2003_02_23_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2003_04_06_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2003_10_26_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2003_11_02_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2004_02_08_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2004_02_22_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2004_08_29_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2004_10_03_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2004_10_10_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2004_10_31_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2004_12_05_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2005_01_23_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2005_01_30_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2005_04_17_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2005_05_22_dish_archive.html
+http://www.andrewsullivan.com/index.php?dish_inc=archives/2005_06_19_dish_archive.html
+http://www.andrewsullivan.com/thewar.php
+http://www.andrewsw.com/news/index.php?p=407
+http://www.andrewtobias.com/newcolumns/050621.html
+http://www.andromeda.com/people/ddyer/topten.html
+http://www.andromedia.com/cfusion/showcase/index.cfm?event=finder&productID=1525&loc=en_us
+http://www.andybudd.com/archives/2004/01/a_couple_of_questions_about_web_standards_advocacy_and_w3c_validation_buttons/
+http://www.andyburkina.com/index.php?bid=58
+http://www.andycarvin.com/archives/2005/06/
+http://www.andyschest.com/WTC_Diary.html
+http://www.andyspenpals.com/comm/archive/index.php/t-17.html
+http://www.andyweiser.com/listings/
+http://www.andywoolley.zen.co.uk/Matches.htm
+http://www.anecdotage.com/index.php?aid=15907
+http://www.anesthesia.cc/new/tipsarc.html
+http://www.anesthesiology.org/pt/re/anes/fulltext.00000542-199808000-00020.htm
+http://www.anesthesiology.org/pt/re/anes/fulltext.00000542-200210000-00035.htm
+http://www.anesthesiology.org/pt/re/anes/fulltext.00000542-200501000-00027.htm
+http://www.anfearrua.com/ViewSectionDetail.asp?docid=1521
+http://www.ang.af.mil/history/Forging.asp
+http://www.ang6666.blogspot.com/
+http://www.angelcare.org/madd/diff.html
+http://www.angelfire.com/ak/sellassie/page4.html
+http://www.angelfire.com/alt2/unionlost/ul_4.htm
+http://www.angelfire.com/az/phatsuperman/joeyrumors.html
+http://www.angelfire.com/az2/arizonadry/truth/kingfollett.html
+http://www.angelfire.com/bc/peacelovehope/asking.html
+http://www.angelfire.com/blues/buffalohunter/Selkirk.htm
+http://www.angelfire.com/ca/beekeeper/foot.html
+http://www.angelfire.com/ca/curlycr/social.html
+http://www.angelfire.com/co/powerpraise/APhysicianLooksAtJesus.html
+http://www.angelfire.com/electronic/awakening101/road_trip.html
+http://www.angelfire.com/electronic/bodhidharma/modern-era.html
+http://www.angelfire.com/empire/qbrute/puzzles.htm
+http://www.angelfire.com/film/chrisrankin/
+http://www.angelfire.com/fl/EeirensFaerieTales/SevenDeadly/Lust.html
+http://www.angelfire.com/fl5/iww/
+http://www.angelfire.com/ga/page451/articles.html
+http://www.angelfire.com/games/zombiereviews/reviews/roborallyrvw.html
+http://www.angelfire.com/games4/doctorwhoeyespy/universal.html
+http://www.angelfire.com/geek/tetrisnomiko/gto/10summary.html
+http://www.angelfire.com/hi/kulasoft/apbooks.html
+http://www.angelfire.com/ia/jdmorrison/ends/ia131.html
+http://www.angelfire.com/il2/figskating/issues/anorexia.html
+http://www.angelfire.com/in3/theodore/opinion/articles/goudman2.html
+http://www.angelfire.com/indie/anna_jones1/daily_record02.html
+http://www.angelfire.com/journal/executivetime/pressing.htm
+http://www.angelfire.com/journal/ggbtps/ST031004.htm
+http://www.angelfire.com/journal/ggbtps/centprog.htm
+http://www.angelfire.com/journal/timbuktu/text/submissions_info.html
+http://www.angelfire.com/mac/egmatthews/worldinfo/asia/indonesia.html
+http://www.angelfire.com/md2/BrokenArrow/
+http://www.angelfire.com/md2/simianline/QuotesWar1.htm
+http://www.angelfire.com/mi/dinosaurs/carbondating.html
+http://www.angelfire.com/mi/enheduanna/Enhedbibliography.html
+http://www.angelfire.com/mi/libertyinstitute/es1of99.html
+http://www.angelfire.com/mi3/cookarama/vanfairoct01_2.html
+http://www.angelfire.com/mi3/eric260b/howto.html
+http://www.angelfire.com/mo/sassafrassgrove/homeschool/unit_studies.html
+http://www.angelfire.com/ms/seanie/history/oxford1.html
+http://www.angelfire.com/nc/vgfics/maa.html
+http://www.angelfire.com/nd/danscorpio/
+http://www.angelfire.com/nd/danscorpio/union.html
+http://www.angelfire.com/nf/chess/Frenchbooks.html
+http://www.angelfire.com/nv/billsthunder/
+http://www.angelfire.com/nv/sacred/eumi1.html
+http://www.angelfire.com/ny/davidbelasco/
+http://www.angelfire.com/oh2/fountainofyouth/skin.html
+http://www.angelfire.com/ok/worldofradio/grafgaff.html
+http://www.angelfire.com/pa/aohdivision1berks/
+http://www.angelfire.com/pa/sergeman/issues/education/homeschooling.html
+http://www.angelfire.com/poetry/talina/journalbeth.html
+http://www.angelfire.com/poetry/yourpage/2burns.html
+http://www.angelfire.com/pop2/deborahgibson/lyrics/live.html
+http://www.angelfire.com/pop2/deborahgibson/lyrics/otherlyr.html
+http://www.angelfire.com/pro/gyorgyigabor/Szloven_turaajanlo_eng.html
+http://www.angelfire.com/realm/bodhisattva/meeting.html
+http://www.angelfire.com/realm/obsidianquills/fannishindex.html
+http://www.angelfire.com/tn/MythsDreamsSymbols/shadow.html
+http://www.angelfire.com/tx/reachme/NAMBLA.html
+http://www.angelfire.com/tx3/circleofangels/PoemsStoriesLittleQuotesLifeLessons.html
+http://www.angelfire.com/ultra/miahops/drugrecall.html
+http://www.angelfire.com/wi/rsdhopeteens/Unite.html
+http://www.angelfire.com/wv/mikerayer/
+http://www.angelfire.com/wv2/bulliten/Ronniemem.html
+http://www.angelfire.com/yt/rockyroad/PRIME_DIRECTIVE.html
+http://www.angelfire.com/zine2/Number666/war.html
+http://www.angelflightamerica.org/
+http://www.angelicslayer.com/tbcs/anya.html
+http://www.angkor.com/2bangkok/2bangkok/forum/showthread.php?goto=lastpost&t=514
+http://www.angkor.com/2bangkok/2bangkok/forum/showthread.php?t=514
+http://www.angkor.com/2bangkok/2bangkok/forum/showthread.php?t=557&goto=nextoldest
+http://www.anglersnet.co.uk/authors/barbel09.htm
+http://www.anglesey.gov.uk/english/council/constitution/part2/part2_7.htm
+http://www.anglesey.gov.uk/english/phoenix/home.htm
+http://www.anglican.ca/faith/ministry/euc-practice-infection.htm
+http://www.anglican.ca/partnerships/PIM/TSIP/letter-2003-09-03.htm
+http://www.anglicanlibrary.org/images/blogstuff/ivleague.htm
+http://www.angloirishbank.co.uk/investor/chairman.asp
+http://www.angmail.fsnet.co.uk/rulespam.htm
+http://www.angola.org.uk/press_release_aid.htm
+http://www.angriesout.com/grown14.htm
+http://www.angriesout.com/madattack.htm
+http://www.angry.net/people/h/husbands.htm
+http://www.angryharry.com/esMenearnquarterofamillionpoundsmore.htm
+http://www.angstlust.com/write/archive/archive/indiscretion.html
+http://www.anheuser-busch.com/news/BudCup.htm
+http://www.animal-law.org/commentaries/fe15.htm
+http://www.animal-rights-library.com/texts-m/singer04.htm
+http://www.animalaid.org.uk/shop/toiletries.htm
+http://www.animalaidsw.org/adopt8.html
+http://www.animalatlas.com/encyclo/reptiles/information/lizardclassfamilies.htm
+http://www.animalbehaviorassociates.com/rmn_articles.htm
+http://www.animalconnectiontx.org/issues/KC.htm
+http://www.animalearn.org/docs/mh/mht2tjt.php
+http://www.animalguardians.com/
+http://www.animalhealthchannel.com/newpet/index.shtml
+http://www.animalinfo.org/species/artiperi/oryxleuc.htm
+http://www.animalinfo.org/species/artiperi/tragbuxt.htm
+http://www.animalinstincts.com/finani000327.html
+http://www.animallaw.info/statutes/stusscst50_11_780.htm
+http://www.animalliberation.org.au/pigsuffer.html
+http://www.animalnetwork.com/critters/library/older/age_ferr_2.asp
+http://www.animalrescuecoalitions.com/
+http://www.animalrights.net/archives/related_topics/animals/chickens.html
+http://www.animalrights.net/discussion/fullthread$msgNum=75485
+http://www.animalrights.net/discussion/fullthread$msgnum=38149
+http://www.animalshelter.com/newsletter_07_01.html
+http://www.animated-teeth.com/cosmetic_dentistry/t30_cosmetic_dentistry.htm
+http://www.animatedsoftware.com/cassini/
+http://www.animatedsoftware.com/environm/onofre/ca2001ar.htm
+http://www.animationnation.com/ubb/ultimatebb.php?ubb=faq
+http://www.animationschoolreview.com/sketches/2004/09/king-camera-used-toon-boom-animation-software-for-ad-spot.html
+http://www.animationschoolreview.com/sketches/2004/09/king-camera-uses-toon-boom-animation-software-for-ad-spot.html
+http://www.animationtrip.com/submissions/animators.php
+http://www.animeboredom.co.uk/games-reviews/ps2-nhl-hitz-2003/118/
+http://www.animefringe.com/magazine/2004/10/feature/03.php
+http://www.animelyrics.com/forum/topic_show.pl?tid=12541
+http://www.animeondvd.com/reviews2/disc_reviews/3854.php
+http://www.anitabell.com/ccoffinnotes.htm
+http://www.anitavacation.com/articles/cruise/cruisespending.shtml
+http://www.anklebiter.net/log/archives/2003_05.html
+http://www.anklebiter.net/log/archives/2003_06.html
+http://www.anl.gov/Media_Center/Argonne_News/
+http://www.anl.gov/Media_Center/News/2004/ES041015.html
+http://www.annalog.co.za/
+http://www.annals.org/cgi/content/full/127/5/403
+http://www.annalsofsurgery.com/pt/re/annos/fulltext.00000658-199905000-00001.htm
+http://www.annalsofsurgery.com/pt/re/annos/fulltext.00000658-200507000-00001.htm
+http://www.annalssurgicaloncology.org/cgi/content/full/11/9/875
+http://www.annalyn.net/2005_04_01_scorpioneyes_archive.html
+http://www.annaswebart.com/culture/dancehistory/charact/
+http://www.annblack.com/nec_oct2002.htm
+http://www.anneapplebaum.com/communism/1999/11_07_wpost_berlin.html
+http://www.anneapplebaum.com/politics/1998/10_11_wpost_russians.html
+http://www.annecollins.com/
+http://www.annelisabeth.com/blog/archives/2005_05.html
+http://www.annenberginstitute.org/mediacenter/race_bios.html
+http://www.anneschuster.co.za/flash/0407/adonis.htm
+http://www.annexed.net/box/augustheat/
+http://www.annickpress.com/forteachers/weighingtheelephant.html
+http://www.anniearmstrong.com/missionaries_05/missionaries_smith.asp
+http://www.annieshomepage.com/christmaskids.html
+http://www.annieshomepage.com/homedecorations.html
+http://www.annieshomepage.com/june.html
+http://www.annieshomepage.com/presidents.html
+http://www.anniesprinkle.org/html/writings/ftmts.html
+http://www.annlawrence.com/DYBexcerpt.html
+http://www.annoyances.org/exec/forum/winxp/1099932171
+http://www.annoyatorium.com/fb.aspx?m=114215&go=last
+http://www.annoyatorium.com/fb.aspx?m=123418
+http://www.annoyatorium.com/tm.aspx?m=114215&mpage=2
+http://www.annualreviews.org/index.asp
+http://www.annuiweb.com/news/article.asp?artID=30
+http://www.annurev.org/
+http://www.anointedlinks.com/cgi-bin/clickit/tk.cgi?freewill
+http://www.anomalies-unlimited.com/Britney.html
+http://www.anomalynews.com/phorum/read.php?f=4&i=88&t=87
+http://www.anonymousjuice.com/review/hp01.html
+http://www.anormed.com/investors/q105.cfm
+http://www.anotherperspective.org/advoc286.html
+http://www.anotherurl.com/photos/family/old_hubbard/intro.htm
+http://www.anrcoins.com/auctionlots.aspx?lsid=AN00000533
+http://www.ans.org.uk/archive/issue_083.html.en
+http://www.ans.org/pi/news/d-1022187916
+http://www.anschechesed.org/education/dvar/divrei/curzon%2040503.html
+http://www.anselm.edu/homepage/dbanach/infin.htm
+http://www.ansi.org/news_publications/media_tips/playing.aspx?menuid=7
+http://www.ansi.org/news_publications/media_tips/standards_overview_cont.aspx?menuid=7
+http://www.anstaskforce.gov/sec1202.htm
+http://www.ansteorra.org/regnum/hospitaler/GuidingHand/personna.htm
+http://www.answerbag.com/c_view.php/1603
+http://www.answerbag.com/q_view.php/14264
+http://www.answerbag.com/q_view.php/24290
+http://www.answerpoint.org/reading_room/book_list.asp?sort=101&list=1341
+http://www.answers.com/the+muppets
+http://www.answers.com/topic/10-downing-street
+http://www.answers.com/topic/2004
+http://www.answers.com/topic/africa
+http://www.answers.com/topic/bank-of-scotland
+http://www.answers.com/topic/beard
+http://www.answers.com/topic/bed-furniture
+http://www.answers.com/topic/black
+http://www.answers.com/topic/bowing-social
+http://www.answers.com/topic/boy-scouts-of-america
+http://www.answers.com/topic/brigadier-lethbridge-stewart
+http://www.answers.com/topic/capital-economics
+http://www.answers.com/topic/central-bank-and-financial-services-authority-of-ireland
+http://www.answers.com/topic/commune-in-france
+http://www.answers.com/topic/deep-throat
+http://www.answers.com/topic/developing-nation
+http://www.answers.com/topic/factors-of-production
+http://www.answers.com/topic/factory
+http://www.answers.com/topic/first-class-cricket
+http://www.answers.com/topic/george-gilbert-scott
+http://www.answers.com/topic/german-empire
+http://www.answers.com/topic/german-language
+http://www.answers.com/topic/get
+http://www.answers.com/topic/gungan-grand-army
+http://www.answers.com/topic/human-sexual-behavior
+http://www.answers.com/topic/interest
+http://www.answers.com/topic/j-m-barrie
+http://www.answers.com/topic/jessica-lynch
+http://www.answers.com/topic/largest-cities-of-the-european-union-by-population
+http://www.answers.com/topic/let-it-be
+http://www.answers.com/topic/magnetic-core-memory
+http://www.answers.com/topic/mathematical-model
+http://www.answers.com/topic/military-history-of-the-roman-empire
+http://www.answers.com/topic/minnesota-vikings
+http://www.answers.com/topic/oldboy
+http://www.answers.com/topic/oxford-english-dictionary-1
+http://www.answers.com/topic/paul-of-tarsus
+http://www.answers.com/topic/privatization
+http://www.answers.com/topic/sitting-ducks
+http://www.answers.com/topic/south-vietnam
+http://www.answers.com/topic/st-john-s-college-cambridge
+http://www.answers.com/topic/subject-philosophy
+http://www.answers.com/topic/tax-evasion
+http://www.answers.com/topic/television
+http://www.answers.com/topic/triad
+http://www.answers.com/topic/venture-capital
+http://www.answers.com/topic/watt
+http://www.answers.com/topic/weapon
+http://www.answers.com/topic/western-africa
+http://www.answers.uk.com/office/gasurv.htm
+http://www.answersingenesis.org/cec/docs/one_blood_sg.asp
+http://www.answersingenesis.org/creation/v18/i4/naming.asp
+http://www.answersingenesis.org/docs/1254.asp
+http://www.answersingenesis.org/docs/2.asp
+http://www.answersingenesis.org/docs/3784.asp
+http://www.answersingenesis.org/docs2002/0308ohio.asp
+http://www.answersingenesis.org/docs2003/0617cavemen.asp
+http://www.answersingenesis.org/docs2005/0205telegraph.asp
+http://www.answersingenesis.org/home/area/faq/dont_use.asp
+http://www.answersingenesis.org/home/area/tools/cains_wife.asp
+http://www.answersingenesis.org/news/lerner_resp.asp
+http://www.answersingenesis.org/news/scientific_american.asp
+http://www.answersingenesis.org/tj/v15/i2/behemoth.asp
+http://www.anta.gov.au/vetWinners.asp
+http://www.antarctic-circle.org/advert.htm
+http://www.antarctica.ac.uk/Key_Topics/Climate_Change/Climate_Change_Position.html
+http://www.antarctica.ac.uk/News_and_Information/Press_Releases/1998/19980619.html
+http://www.antarcticacup.com/x_qanda.cfm
+http://www.antarestech.com/products/kantos.html
+http://www.antarestech.com/products/quotations.html
+http://www.antcrc.utas.edu.au/scar/antime/report.html
+http://www.antecint.co.uk/main/infectbr.htm
+http://www.antenna.nl/wise/340/3399.html
+http://www.antenna.nl/wise/433-4/4283.html
+http://www.antenna.nl/wise/435/4299.html
+http://www.anteques.com/srv/antaday/15390.htm
+http://www.anth.ucsb.edu/forms/Faculty.Research.Trip.Req.html
+http://www.anthraxadeadlyshotinthedark.com/
+http://www.anthro.ku.dk/Studier/Hvad_er_antropologi/Pjece-om-faget-E.htm
+http://www.anthrobase.com/Txt/P/Pedersen_A-S_01/01_Bilag_01.htm
+http://www.anthrofiction.com/Stories/S/Spoor/Chapter_02.shtml
+http://www.anthropic-principle.com/primer1.html
+http://www.anthrosource.net/doi/abs/10.1525/tea.1998.5.2.18
+http://www.anthrosource.net/doi/abs/10.1525/var.1975.2.1.25
+http://www.anthrosource.net/doi/pdf/10.1525/awr.2001.22.3.7
+http://www.anthrosource.net/doi/pdf/10.1525/mua.1988.12.1.3
+http://www.anthrosource.net/doi/pdfplus/10.1525/jlat.1976.1.1.7
+http://www.anthrosource.net/doi/pdfplus/10.1525/napa.1995.15.1.33
+http://www.anti-bases.org/blue_paper/defrev_proposed_res.htm
+http://www.anti-dmca.org/
+http://www.anti-rev.org/textes/VidalNaquet92b/notes.html
+http://www.anti-war.jp/english/index_e.htm
+http://www.antibullying.net/praisesystem.htm
+http://www.anticoagulation.org.uk/FAQs.htm
+http://www.anticruelty.ca/p17b.htm
+http://www.anticz.com/heads.htm
+http://www.antigua-barbuda.com/news_information/index.asp
+http://www.antiguanice.com/
+http://www.antiguanice.com/babyanya/update.htm
+http://www.antioch-college.edu/AEA/faq.htm
+http://www.antioch.com.sg/~vcfnus/doubts/problem.htm
+http://www.antiochian-orthodox.co.uk/george_hackney.htm
+http://www.antiochian.org/dynamis/1095998400.html
+http://www.antiochsea.edu/about/stories/stories04.html
+http://www.antioffline.com/framingryan.html
+http://www.antion.com/public-speaking.htm
+http://www.antipas.org/books/be_ye_transformed/ready_to_be_offered.html
+http://www.antipas.org/magazine/tv/4_arguments_book/argument3.html
+http://www.antipope.org/charlie/blog-archive/September_2002.html
+http://www.antipope.org/charlie/blosxom.cgi
+http://www.antipope.org/charlie/journo/linux-in-94.html
+http://www.antique-artfairs.com.au/Top.htm
+http://www.antiquelures.com/Identify.htm
+http://www.antiquemapsandprints.com/lancashire-illustrated.htm
+http://www.antiquetelephones.net/
+http://www.antiquewireless.org/otb/tvcolumn0803.htm
+http://www.antiquing.com/shops/specjoy/
+http://www.antiscam.net/
+http://www.antislavery.org/archive/submission/submission2005-sudan.htm
+http://www.antislavery.org/homepage/antislavery/award/award2001speeches.htm
+http://www.antislavery.org/homepage/antislavery/childlabour.htm
+http://www.antiwar.com/bock/
+http://www.antiwar.com/hacohen/?articleid=793
+http://www.antiwar.com/ips/parry.php?articleid=3581
+http://www.antiwar.com/justin/j012901.html
+http://www.antiwar.com/justin/j070903.html
+http://www.antiwar.com/justin/j082703.html
+http://www.antiwar.com/lobe/?articleid=4419
+http://www.antiwar.com/orig/brown2.html
+http://www.antiwar.com/orig/jatras10.html
+http://www.antiwar.com/orig/stone3.html
+http://www.antiwar.com/spectator/spec345.html
+http://www.antiwar.com/stromberg/?articleid=655
+http://www.antiwar.com/stromberg/index.php?articleid=655
+http://www.antiwar.com/stromberg/s090799.html
+http://www.antonellagambotto.com/NonfictionInstinctExtract.htm
+http://www.antonine-education.co.uk/Physics_AS/Module_2/Topic_3/topic_3.htm
+http://www.anu.edu.au/asianstudies/textnotes/buddhism.html
+http://www.anu.edu.au/music/finishing_touch/index.php
+http://www.anu.edu.au/people/Roger.Clarke/DV/ContactPITs.html
+http://www.anu.edu.au/people/Roger.Clarke/DV/IDCards97.html
+http://www.anu.edu.au/people/Roger.Clarke/DV/NotesCFP02.html
+http://www.anu.edu.au/people/Roger.Clarke/SOS/ResPubEth.html
+http://www.anu.edu.au/polsci/marx/contemp/pamsetc/perm/perm.htm
+http://www.anu.edu.au/records/EI.php
+http://www.anu.org/
+http://www.anus.com/zine/articles/kitchen/
+http://www.anvari.org/fun/Marriage/Mean_Punishment.html
+http://www.anvari.org/fun/Truth/What_a_Difference_a_Century_Makes.html
+http://www.anvari.org/shortjoke/Shaggy_Dog_Humor/2896.html
+http://www.anver.com/document/vacuum%20components/vacuum%20cups/cup-material.htm
+http://www.anvilfire.com/FAQs/archives/v052003.htm
+http://www.anvilpub.com/part_2.htm
+http://www.anxietyaustralia.com.au/
+http://www.any-book-in-print.com/_grades_k5/group_act_k5.htm
+http://www.any-photo-album-software.com/
+http://www.anybrowser.org/campaign/
+http://www.anybrowser.org/shadowbane/faq/
+http://www.anyonefortee.com/HP/PS1.html
+http://www.anzapt.org/mambo/index.php?option=content&task=blogsection&id=12&Itemid=57
+http://www.anzsrs.org.au/trainofthoughtdec2004.html
+http://www.ao.net/~jmo/john/music/fairuses.html
+http://www.ao.uiuc.edu/ijet/v1n1/author-bios.html
+http://www.aoa.dhhs.gov/
+http://www.aoa.gov/
+http://www.aoa.gov/eldfam/Money_Matters/Money_Matters.asp
+http://www.aoa.gov/eldfam/Money_Matters/Money_Matters_pf.asp
+http://www.aoa.gov/index.asp
+http://www.aoa.gov/youcan/about/faqs.asp
+http://www.aoa.gov/youcan/about/faqs_pf.asp
+http://www.aoa.gov/youcan/org/overview/faqs.asp
+http://www.aoc.gov/cc/capitol/capitol_construction.cfm
+http://www.aoc.state.nc.us/www/copyright/aoc/speeches/greene.html
+http://www.aoc.state.nc.us/www/public/aoc/barrules.html
+http://www.aoc.state.nc.us/www/public/coa/opinions/2004/030674-1.htm
+http://www.aofoundation.org/portal/wps/portal/!ut/p/.cmd/cs/.ce/7_0_A/.s/7_0_7UF/_s.7_0_A/7_0_7UF
+http://www.aoghs.org/
+http://www.aol.ca/webcentres/entertainment/
+http://www.aomin.org/bjmthug.html
+http://www.aoml.noaa.gov/hrd/hurdat/august01/Powell_summary.html
+http://www.aomonline.org/Publications/Articles/BSchools.asp
+http://www.aomw.org/sarah/poetry.html
+http://www.aopa.org/
+http://www.aopa.org/learntofly/startfly/getstart.html
+http://www.aopa.org/pilot/never_again/2004/na0410.html
+http://www.aopa.org/whatsnew/newsitems/2002/020621_homeland_security.html
+http://www.aota.net/forums/showthread.php?t=18579&page=2
+http://www.aota.net/forums/showthread.php?t=19687
+http://www.ap-foodtechnology.com/nl/allNLs.asp
+http://www.ap.columbia.edu/apam/ChuSymposium.html
+http://www.apa.edu.au/
+http://www.apa.org/books/teengirls/teen-samp3.html
+http://www.apa.org/ce/conventionsun.html
+http://www.apa.org/journals/faq.html
+http://www.apa.org/monitor/jul98/joy.html
+http://www.apa.org/monitor/mar99/humor.html
+http://www.apa.org/monitor/sep98/isolat.html
+http://www.apa.org/pi/pii/care.html
+http://www.apa.org/pi/urbaned/scaling.html
+http://www.apa.org/ppo/issues/pdzdltr.html
+http://www.apa.org/practice/practitionerhelp.html
+http://www.apa.org/practice/ptguidelines.html
+http://www.apa.org/psycinfo/training/thesintro.html
+http://www.apa.org/pubinfo/altruism.html
+http://www.apa.org/pubinfo/answers.html
+http://www.apa.org/releases/adhdteens.html
+http://www.apa.org/releases/success.html
+http://www.apa.org/science/faq-findtests.html
+http://www.apa.org/science/ic-ramsberger.html
+http://www.apa.org/science/psa/ic-callan.html
+http://www.apa.org/science/ttrr.html
+http://www.apa.org/videos/4310330.html
+http://www.apa.org/work-family/schools.html
+http://www.apacheria.com/toysmisc.htm
+http://www.apacheweek.com/issues/01-09-28
+http://www.apahelpcenter.org/articles/article.php?id=22
+http://www.apahelpcenter.org/articles/article.php?id=35
+http://www.apahelpcenter.org/articles/article.php?id=69
+http://www.apartmentcities.com/Washington-DC-Apartments/Falls_Church_Apartments.asp
+http://www.apartments.ie/
+http://www.apartments2book.com/terms.htm
+http://www.apartmenttherapy.com/main/archives/002753.html
+http://www.apas.org.uk/new_page_43.htm
+http://www.apastyle.org/aboutstyle.html
+http://www.apastyle.org/elecref.html
+http://www.apcc.org/index.php?src=gendocs&link=GrowthBylaws2002&category=Business%20Roundtable
+http://www.apcca.org/Pubs/21st/agenda2.htm
+http://www.apci.asso.fr/design_uk/design_faq.php
+http://www.apcims.co.uk/public/news/releases/2002/Conference%202002/angelak.asp
+http://www.apcss.org/Publications/Report_International_Game_98.html
+http://www.apcug.net/Reports/July04/more_miles_for_the_buck.htm
+http://www.apec.org/apec/ministerial_statements/sectoral_ministerial/environment/1994_environment.html
+http://www.apechild.com/archives/feb2003.php
+http://www.aperfectcause.org/artman/publish/article_769.asp
+http://www.aperfectcause.org/artman/publish/article_941.asp
+http://www.aperfectcause.org/artman/publish/printer_769.asp
+http://www.apersonalsite.com/pixnbook/journal/jul03/jul3103.html
+http://www.apfn.net/messageboard/8-12-03/discussion.cgi.58.html
+http://www.apfn.org/enron/fortunes.htm
+http://www.apfs-tv.com/apfs_presents/nstapley_televisionwales.htm
+http://www.apfw.org/indexenglish.asp?fname=report%5Cenglish%5Cspe1001.htm
+http://www.aph.gov.au/Senate/pubs/proc_bul/bull_184.htm
+http://www.aph.gov.au/house/committee/efpa/rbs/15jul98.htm
+http://www.aph.gov.au/house/committee/em/1993fed.htm
+http://www.aph.gov.au/house/house_news/magazine/ATH_may_june_03.htm
+http://www.aph.gov.au/library/intguide/sp/digdata.htm
+http://www.aph.gov.au/library/parl/hist/primmins.htm
+http://www.aph.gov.au/library/pubs/bd/1996-97/97bd149.htm
+http://www.aph.gov.au/library/pubs/bd/2002-03/03bd062.htm
+http://www.aph.gov.au/library/pubs/bd/2002-03/03bd162.htm
+http://www.aph.gov.au/library/pubs/bd/2003-04/04bd036.htm
+http://www.aph.gov.au/library/pubs/rn/1995-96/96rn48.htm
+http://www.aph.gov.au/library/pubs/rn/1999-2000/2000rn26.htm
+http://www.aph.gov.au/library/pubs/rn/2004-05/05rnAbstracts.htm
+http://www.apha.org.uk/arfmicorif.htm
+http://www.apha.org/codeofethics/ethics.htm
+http://www.apha.org/media/science.htm
+http://www.apha.org/news/press/2003_journal/jun03.htm
+http://www.apha.org/ppp/science/10ES.htm
+http://www.aphafoundation.org/API/APIDiabetes.htm
+http://www.aphanet.org/AM/TemplateRedirect.cfm?Template=/CM/HTMLDisplay.cfm&ContentID=2337
+http://www.aphasia.ca/training/index.shtml
+http://www.aphasia.org/NAAfactsheet.html
+http://www.aphex.com/320A.htm
+http://www.aphis.usda.gov/lpa/issues/bse/bse-overview.html
+http://www.aphroditewomenshealth.com/ubb/ultimatebb.php?/topic/7/75/4.html
+http://www.apic.jiii.or.jp/n_c/wsquare/2002032501.htm
+http://www.apl.com/press_releases/html/press_release_NOLLOSSES02_032702.html
+http://www.aplaceofhope.com/Merchant2/merchant.mv
+http://www.aplawrence.com/Blog/B1229.html
+http://www.aplawrence.com/Unixart/bbolderhardware.html
+http://www.apme-credibility.org/BrickmanExecSummary.html
+http://www.apme.com/soundingboard/33.shtml
+http://www.apo.ucla.edu/call/regular.htm
+http://www.apolloalliance.org/about_the_alliance/aboutapollo.cfm
+http://www.apolloalliance.org/strategy_center/gerardtakebackameric.cfm
+http://www.apolloalliance.org/strategy_center/iucresolution.cfm
+http://www.apollowebworks.com/russell/mindcrime.html
+http://www.apologetics.org/articles/wager1.html
+http://www.apologeticsindex.org/an990514.html
+http://www.apologeticsindex.org/b10.html
+http://www.apologeticsindex.org/f00.html
+http://www.apologeticsindex.org/p00.html
+http://www.apologeticsindex.org/s00.html
+http://www.apologeticspress.org/defdocs/rr1990/r&r9012a.htm
+http://www.apologeticspress.org/modules.php?name=Read&itemid=2022&cat=11
+http://www.appa.org/FacilitiesManager/articleDetail.cfm?ItemNumber=475
+http://www.appa.org/FacilitiesManager/articleDetail.cfm?ItemNumber=581
+http://www.appa.org/FacilitiesManager/articleDetail.cfm?ItemNumber=622
+http://www.appaloosa.org.uk/about.htm
+http://www.appanet.org/legislative/index.cfm?itemnumber=12648
+http://www.apparelsearch.com/calendar.htm
+http://www.apparenting.com/our_longterm_birth_control_option_of_choice_a_vasectomy.html
+http://www.appartparis.com/uk/paris_rentals/15_apartment_paris_rental/57_apartments_in_paris.html
+http://www.appdevadvisor.co.uk/
+http://www.appdrugs.com/090803PR.htm
+http://www.appea.com.au/Conference/Exhibition.htm
+http://www.appellate-brief.com/Forms-DivNWS.htm
+http://www.appellate.net/articles/wilpin799.asp
+http://www.apphotomanagers.org/Ten-things.html
+http://www.applausesw.org.uk/pages/pages/h9prodd/rehears.html
+http://www.applays.com/plays/description/title_description_A.html
+http://www.applays.com/plays/description/title_description_B.html
+http://www.apple-history.com/frames/body.php?page=mirror
+http://www.apple-history.com/frames/body.php?page=recent_changes
+http://www.apple-history.com/noframes/
+http://www.apple-history.com/noframes/body.php?page=recent_changes
+http://www.apple.com.au/iwork/pages/word.html
+http://www.apple.com/airportexpress/
+http://www.apple.com/de/finalcutstudio/finalcutpro/worktogether.html
+http://www.apple.com/games/articles/2003/12/toysight/
+http://www.apple.com/hotnews/articles/2002/08/cheeseman/
+http://www.apple.com/ipod/
+http://www.apple.com/ipodshuffle/
+http://www.apple.com/iwork/pages/word.html
+http://www.apple.com/macosx/
+http://www.apple.com/powerbook/
+http://www.apple.com/pro/music/rothschild/index2.html
+http://www.apple.com/pro/video/pearljam/
+http://www.apple.com/science/profiles/black/index2.html
+http://www.apple.com/switch/whyswitch/
+http://www.apple.com/za/education/ilife/creativity/
+http://www.apple.com/za/xserve/management.html
+http://www.applefritter.com/node/5185
+http://www.applefritter.com/node/6146
+http://www.applefritter.com/node/728
+http://www.applematters.com/comments.php?id=179_0_1_0_C
+http://www.applematters.com/comments.php?id=20_0_1_0_C
+http://www.apples4theteacher.com/holidays/christmas/stories/the-cratchits-christmas-dinner.html
+http://www.applevinegar.com/horses.html
+http://www.appliedartsmag.com/careers/ontario_area.html
+http://www.appliedergo.org/conference/travel.htm
+http://www.appliedimprov.net/articles/parachute.htm
+http://www.appliedlanguage.com/country_guides/italy_country_economy.shtml
+http://www.appliedozone.com/books.html
+http://www.appliedozone.com/parasites.html
+http://www.appraisalfoundation.org/html/USPAP2004/ao23.htm
+http://www.appraisalfoundation.org/html/USPAP2005/ao23.htm
+http://www.appraiservalues.com/
+http://www.appropriate-economics.org/ebooks/exchange/Exchange.htm
+http://www.approximity.com/cgi-bin/blogtariAgile/index.rb/+Life/RantonGmail.rdoc
+http://www.approximity.com/cgi-bin/blogtariAgile/index.rb/+Linux/ValidatorFirefox.rdoc
+http://www.approximity.com/cgi-bin/blogtariAgile/index.rb/+Ruby/eclipse09.rdoc
+http://www.approximity.com/cgi-bin/blogtariAgile/index.rb/+SmallWorld/kiwi.rdoc
+http://www.apria.com/channels/0,2748,100-218,00.html
+http://www.apria.com/channels/0,2748,101-186,00.html
+http://www.apria.com/channels/0,2748,96-218,00.html
+http://www.apriaseoul.org/overview_main.htm
+http://www.apricot.net/apricot2000/keynote_1.htm
+http://www.apricotpie.com/about.html
+http://www.aps.anl.gov/News/Meetings/CAT_Chat/1997/19970307.htm
+http://www.aps.anl.gov/epics/
+http://www.aps.edu/aps/Eisenhower/Brugge/XerxesToTheRescue.html
+http://www.apsc.gov.au/mab/person.htm
+http://www.apsc2orbit.com/faqs/faqs.html
+http://www.apscentral.org/inc/terms.html
+http://www.apsf.org/resource_center/clinical_safety/adverse_event.mspx
+http://www.apsnet.org/online/feature/cacao/
+http://www.apsoc.ox.ac.uk/Oxpop/
+http://www.apstherapy.co.nz/hpa.html
+http://www.apsu.edu/letsgopeay/updates/mbasketball/mbkb.htm
+http://www.apsu.edu/~lesterj/CYBER3.HTM
+http://www.apsu.edu/~lesterj/CYBER4.HTM
+http://www.apt-finder.com/tupeloguide.html
+http://www.apta.com/about/committees/UTFS/task_force_meeting_minutes_040422.cfm
+http://www.apta.com/about/committees/utfs/task_force_meeting_minutes_040422.cfm
+http://www.apta.com/passenger_transport/helpwanted/index.cfm
+http://www.aptea.com/history_timeline.asp
+http://www.aptribes.com/GOs/GOMs106_2004_HMFW.htm
+http://www.apwa.net/Publications/Reporter/ReporterOnline/index.asp?DISPLAY=ISSUE&ISSUE_DATE=092004&ARTICLE_NUMBER=873
+http://www.aqa.org.uk/news/
+http://www.aqeta.qc.ca/english/general/language.htm
+http://www.aqha.com/magazines/aqhj/classifieds.cfm
+http://www.aquaaerobics.com/art_part2.htm
+http://www.aqualandpetsplus.com/Amphibian,%20Terrarium%20II.htm
+http://www.aqualink.com/columns/k-cory7.html
+http://www.aquariumfish.net/_newsletter/newsletters/newsletter_current.htm
+http://www.aquariumfish.net/information/water_conditioner_p2.htm
+http://www.aquasanaofcentralflorida.com/
+http://www.aquaticape.org/summary.html
+http://www.aquila.com/corpgov/principles.shtml
+http://www.aquinas.edu/athletics/mens_cross.html
+http://www.arabeyes.org/
+http://www.arabmediawatch.com/modules.php?name=News&file=article&sid=1344
+http://www.arabmediawatch.com/modules.php?name=News&file=article&sid=1366
+http://www.arabmediawatch.com/modules.php?name=News&file=article&sid=1407
+http://www.arabmediawatch.com/modules.php?name=News&file=article&sid=1437
+http://www.arabmediawatch.com/modules.php?name=News&file=article&sid=910
+http://www.arabmediawatch.com/modules.php?name=News&file=print&sid=1437
+http://www.arabmediawatch.com/modules.php?name=News&file=print&sid=1442
+http://www.arabmediawatch.com/modules.php?name=News&file=print&sid=1861
+http://www.arabmedicare.com/SingaporeMedicine_News.htm
+http://www.arabnews.com/?page=9&section=0&article=53315&d=23&m=10&y=2004
+http://www.arabwideweb.com/english/Information_Technology_News.asp?id=221
+http://www.arabworldanalysis.com/blog/
+http://www.arachnoid.com/lutusp/consumerangst.html
+http://www.aracnet.com/~dcf/irnew/
+http://www.aracnet.com/~dcf/irnew/archives/2002_06.html
+http://www.aracnet.com/~pdxavets/broudy17.htm
+http://www.arap.org/docs/produce.html
+http://www.arapahoe.edu/aboutacc/diversity/studentdiversity.html
+http://www.arasite.org/nshertge.htm
+http://www.arasite.org/wldoubt.html
+http://www.arav.com.au/portal/page.pl?id=172
+http://www.arb.org.uk/education/validation-procedures/visiting-board-schedule.shtml
+http://www.arb.org.uk/regulation/pcc-decisions/schneider.shtml
+http://www.arbforum.com/domains/decisions/101518.htm
+http://www.arbforum.com/domains/decisions/104997.htm
+http://www.arbforum.com/domains/decisions/105890.htm
+http://www.arbforum.com/domains/decisions/95158.htm
+http://www.arbitrators.org/abta/Rules.htm
+http://www.arbo.org/greensheets/gsdec2000.htm
+http://www.arboretum.harvard.edu/aboutus/tf_minutes_march7_05.html
+http://www.arboristsite.com/archive/index.php/t-9501.html
+http://www.arboristsite.com/showthread.php?goto=lastpost&t=19725
+http://www.arbortext.com/html/heavy_equip.html
+http://www.arborwood.com/awforums/show-topic-1.php?start=1&fid=8072&taid=1&topid=252&ut=1108999751
+http://www.arc.gov/index.do?nodeId=1333
+http://www.arc.gov/index.do?nodeId=878
+http://www.arc.org.uk/about_arth/booklets/6001/6001.htm
+http://www.arc.org.uk/about_arth/booklets/6055/6055.htm
+http://www.arc.org/C_Lines/CLArchive/story1_2_01.html
+http://www.arcadiaproducts.com/definitions.htm
+http://www.arch.columbia.edu/gsap/47/
+http://www.arch.hku.hk/~marcaurel/phd/1stveds.html
+http://www.arch.hku.hk/~marcaurel/phd/implementingveds.html
+http://www.arch.usyd.edu.au/~adong/courses/deco3002/july03/
+http://www.arch.utah.edu/people/faculty/julio/studio96.htm
+http://www.archaemedia.net/st1.asp
+http://www.archaeological-services.co.uk/recenttexthtml.html
+http://www.archaeology.co.uk/others/thinktank/who/ch2.htm
+http://www.archaeology.org/interactive/sagalassos/field04/romanbaths5.html
+http://www.archaeology.org/online/features/crimea/dispatch2.html
+http://www.archaeologychannel.org/member.html
+http://www.archaeospain.com/faq.htm
+http://www.archbishopofcanterbury.org/sermons_speeches/050615.htm
+http://www.archbishopofcanterbury.org/sermons_speeches/2003/030227.html
+http://www.archbold-station.org/abs/Biennial99/R9Research/R9VertebrateRes.htm
+http://www.arches.uga.edu/~dfreems/dfreems2.htm
+http://www.archfoundation.org/education/1.htm
+http://www.archiebray.org/gallery.html
+http://www.archimac.org/Profession/Lists/index.spml
+http://www.archimuse.com/mw2001/papers/bennett/bennett.html
+http://www.archimuse.com/mw2004/papers/johnson/johnson.html
+http://www.archinect.com/forum/threads.php?id=20697_0_42_0_C
+http://www.archipelago.org/vol7-1/endnotes.htm
+http://www.archipelago.org/vol8-4/bell.htm
+http://www.architecture.yale.edu/admissions/intl_students.htm
+http://www.architecture.yale.edu/tropical_house/credits.htm
+http://www.architectureforhumanity.org/
+http://www.architexturez.net/+/
+http://www.archivaria.com/BusDbios/BusDbios14.html
+http://www.archive-india.org/arce_profile.html
+http://www.archive.official-documents.co.uk/document/caboff/foi/chap2.htm
+http://www.archive.official-documents.co.uk/document/cm38/3889/sct280.htm
+http://www.archive.official-documents.co.uk/document/cm39/3901/appndx-a.htm
+http://www.archive.official-documents.co.uk/document/cm39/3922/e-chap-3.htm
+http://www.archive.official-documents.co.uk/document/cm40/4010/tc-02.htm
+http://www.archive.official-documents.co.uk/document/cm40/4011/401113.htm
+http://www.archive.official-documents.co.uk/document/cm41/4177/chap-03.htm
+http://www.archive.official-documents.co.uk/document/cm42/4273/mod34.htm
+http://www.archive.official-documents.co.uk/document/doh/ih/part2g.htm
+http://www.archive.official-documents.co.uk/document/doh/sddyp/sddyp09.htm
+http://www.archive.official-documents.co.uk/document/doh/sddyp/sddyp14.htm
+http://www.archive.official-documents.co.uk/document/doh/tobacco/part-2.htm
+http://www.archive.official-documents.co.uk/document/hmt/budget98/annexc.htm
+http://www.archive.official-documents.co.uk/document/hmt/budget98/chap5.htm
+http://www.archive.official-documents.co.uk/document/ofsted/ciar/primary3.htm
+http://www.archive.org/audio/audiolisting-browse.php?cat=1345
+http://www.archive.org/audio/etree-band-showall.php
+http://www.archive.org/details-db.php?mediatype=movies&identifier=StoryofS1930&from=mainReviews
+http://www.archive2.official-documents.co.uk/document/cm56/5661/chap06.htm
+http://www.archives.gov/about_us/regulations/part_1258.html
+http://www.archives.gov/digital_classroom/lessons/federal_indian_policy/teaching_activities.html
+http://www.archives.gov/digital_classroom/lessons/volstead_act/teaching_activities.html
+http://www.archives.gov/exhibit_hall/charters_of_freedom/constitution/connecticut.html
+http://www.archives.gov/exhibit_hall/charters_of_freedom/constitution/virginia.html
+http://www.archives.gov/facilities/md/researcher_information.html
+http://www.archives.gov/federal_register/electoral_college/faq.html
+http://www.archives.gov/publications/prologue/fall_2003_building_renovation.html
+http://www.archives.gov/publications/prologue/winter_1986_civil_war_tax_records.html
+http://www.archives.gov/records_of_congress/house_guide/chapter_23_joint_atomic_energy.html
+http://www.archives.gov/research_room/alic/government_publications/about_frus_serial_set.html
+http://www.archives.gov/research_room/alic/staff_resources/organizational_change_bibliography/organizational_change.html
+http://www.archives.gov/research_room/federal_records_guide/na_collection_of_seized_foreign_rg242.html
+http://www.archives.gov/research_room/genealogy/census/census_clues_1850_to_1930.html
+http://www.archives.gov/research_room/research_topics/native_americans/select_list_026.html
+http://www.archives.mcgill.ca/resources/guide/vol1/rg44.htm
+http://www.archives.nd.edu/aidan/aidan537.htm
+http://www.archives.premier-ministre.gouv.fr/jospin_version3/en/ie4/contenu/32696.htm
+http://www.archiveshub.ac.uk/news/0407cf.html
+http://www.archivists.org/governance/handbook/nominating_com.asp
+http://www.archivists.org/saagroups/sthc/aelements2004.html
+http://www.archleague.org/nyc/newnewsummary.html
+http://www.archpundit.com/archives/010019.html
+http://www.archsfa.com/blog
+http://www.archsfa.com/store
+http://www.archsoc.com/kcas/Doctors.html
+http://www.archvoices.org/pg.cfm?nid=home&IssueID=272
+http://www.arcmv.org/?zone=&id=9&sid=
+http://www.arcouncil.org/Talking.html
+http://www.arcsandsparks.com/usedbookpage.html
+http://www.arctic-council.org/en/main/infopage/224/
+http://www.arctic-experience.co.uk/DTW/responsible.htm
+http://www.arctic-experience.co.uk/tour10w/
+http://www.arctic-experience.co.uk/tour17/
+http://www.arcticwildlife.org/alaskawild198.htm
+http://www.arcuk.org/pages/quotes.htm
+http://www.arcula.demon.co.uk/bhist1.htm
+http://www.arcw.org/hippa.htm
+http://www.arcytech.org/java/population/facts_foodchain.html
+http://www.ardisbooks.com/pub_details.asp?ISBN=0-87501-108-X
+http://www.ardnamurchan.com/association/news.html
+http://www.ardue.org.uk/university/degs/deg06.html
+http://www.areastudies.org/documents/dprk003.html
+http://www.arenaleisureplc.com/components/78.cres
+http://www.arescuemom.org/MONTANALIFE2-99.htm
+http://www.aresearchguide.com/800literature.html
+http://www.aresearchguide.com/lord.html
+http://www.aresearchguide.com/time.html
+http://www.aresti-realestate.com/default.aspx?articleID=7613&heading=Customer%20Services
+http://www.areyouprepared.com/nuclear-survival/s20.htm
+http://www.arfli.com/modules.php?name=Sections&op=printpage&artid=2
+http://www.arfli.com/modules.php?name=Sections&op=viewarticle&artid=2
+http://www.arfunk.com/rw-article.html
+http://www.argentinethoroughbreds.com/links.htm
+http://www.argo-navis.com/
+http://www.argos-sports.co.uk/
+http://www.arguscourier.com/news/news/marinegrad050601.html
+http://www.arguscourier.com/school/news/edissuesricher050223.html
+http://www.argusdesigns.com/lib/libhs.php4
+http://www.argusleaderonline.com/forum/showthread.php?t=1061&goto=lastpost
+http://www.argyll-bute.gov.uk/content/news/general/rothesay?s=135&a=0
+http://www.ariadne.ac.uk/issue15/main/
+http://www.ariadne.ac.uk/issue24/oed-tech/
+http://www.ariadne.ac.uk/issue36/maccoll-rpt/
+http://www.ariadne.ac.uk/issue39/web-focus/
+http://www.ariadne.ac.uk/issue42/ananiadou/
+http://www.ariadne.ac.uk/issue43/search-engines/
+http://www.ariadne.org/studio/michelli/12601intro.html
+http://www.ariadne.org/studio/michelli/sgnewdir.html
+http://www.ariagoesdown.blogspot.com/
+http://www.ariannaonline.com/columns/column.php?id=120
+http://www.ariannaonline.com/columns/column.php?id=659
+http://www.ariannaonline.com/columns/column.php?id=93
+http://www.ariannaonline.com/columns/printer_friendly.php?id=120
+http://www.ariannaonline.com/columns/printer_friendly.php?id=659
+http://www.arie.org/japan/
+http://www.arielpartners.com/arielpartners/content/public/topics/technology/technologyReviews/zopeVsCocoon
+http://www.ariga.com/2004-03-01.shtml
+http://www.arij.org/paleye/
+http://www.arin.net/meetings/minutes/ARIN_III/
+http://www.arin.net/policy/2004_4.html
+http://www.arishost.com/newsletter/archive/v3/v39_i1.shtml
+http://www.arishost.com/newsletter/archive/v4/v43_i3.shtml
+http://www.aristeia.com/authorAdvice.html
+http://www.aristotle.net/~bhuie/satan.htm
+http://www.arizona-bed-breakfast.com/print.html?id=about-standards&ttl=AABBI%20Standards%20and%20By%20Laws
+http://www.arizona-bed-breakfast.com/standards-and-bylaws.html
+http://www.arizona-dui-defense.com/Arizona-DUI-Winning.htm
+http://www.arizonaroadracers.com/acrosstheyearsinside.htm
+http://www.ark-nursing-students.com/campaign_regulations.htm
+http://www.arkansas-ican.org/Used_Equip.htm
+http://www.arkansas.com/interactive-fun/wallpaper/default.asp
+http://www.arkansasleader.com/frontstories/st_09_22_04/methhouse.html
+http://www.arkansasleader.com/frontstories/st_12_29_04/change.html
+http://www.arkansasnursing.com/lpn_links.htm
+http://www.arkansaspreservation.org/history/civilwar.asp
+http://www.arkansasties.com/Special/BoydDiary/1913.htm
+http://www.arks.co.uk/
+http://www.arl.army.mil/ARL-Directorates/HRED/imb/imprint/Imprint7.htm
+http://www.arl.noaa.gov/faq/
+http://www.arl.noaa.gov/ss/group3.html
+http://www.arl.org/arl/proceedings/129/earlybird.html
+http://www.arl.org/arl/proceedings/130/garcia.html
+http://www.arl.org/arl/proceedings/132/programIII/fuller.html
+http://www.arl.org/info/frn/copy/intl/wipoprinciples.html
+http://www.arl.org/info/frn/copy/primer.html
+http://www.arl.org/newsltr/187/peace.html
+http://www.arl.org/newsltr/222/collabwash.html
+http://www.arl.org/newsltr/234/investing.html
+http://www.arl.org/scomm/subversive/sub04.html
+http://www.arl.org/spec/211fly.html
+http://www.arlesforum.com/index.php?showtopic=1289
+http://www.arlgp.org/Education/CAT%20TO%20PEOPLE.htm
+http://www.arlington.co.uk/default.asp?page=532&id=G130105
+http://www.arlingtoncemetery.com/womens.htm
+http://www.arlingtoncemetery.net/clbolte.htm
+http://www.arlingtoncemetery.net/jfadamouski.htm
+http://www.arlingtoncemetery.net/malane.htm
+http://www.arlingtoncemetery.net/michaels.htm
+http://www.arlingtoninn.com/civilunionguidelines.html
+http://www.arlis-txmx.org/medium/issues/2003_v29_no1/2003_v29_no1.shtml
+http://www.arlisna.org/news/conferences/1999/proceedings/irc.htm
+http://www.arlisna.org/news/conferences/2000/proceedings/irc.html
+http://www.arm.com/employment/
+http://www.arm.com/ir/financialnews/3863.html
+http://www.arm.com/ir/financialnews/477.html
+http://www.arm.com/ir/financialnews/480.html
+http://www.arm.com/ir/financialnews/525.html
+http://www.arm.com/ir/financialnews/531.html
+http://www.arm.com/ir/financialnews/564.html
+http://www.arm.com/ir/financialnews/573.html
+http://www.arm.com/ir/financialnews/578.html
+http://www.arm.com/news/2212.html
+http://www.armadillosoft.com/booksetc/gifted.php
+http://www.armca.net/Decemberr2002.htm
+http://www.armedforces.co.uk/army/listings/l0069.html
+http://www.armedforces.co.uk/projects/raq3f3a4e479735d
+http://www.armedforcesnews.com/backissues/index2002.htm
+http://www.armedia.net.au/archive/1997b/rev02.html
+http://www.armenian-genocide.org/br-11-27-16-text.html
+http://www.armfor.uscourts.gov/opinions/1999Term/98-0775.htm
+http://www.armfor.uscourts.gov/opinions/2005Term/04-0208.htm
+http://www.arminfo.am/news-issue431.htm
+http://www.armishaws.com/theform.html
+http://www.armory.com/~spcecdt/text/supercool.html
+http://www.armscontrol.org/act/1997_03/summit.asp
+http://www.armscontrol.org/act/1997_10/chinaoct.asp
+http://www.armscontrol.org/act/1999_06/scijun99.asp
+http://www.armscontrol.org/act/1999_07-08/taija99.asp
+http://www.armscontrol.org/act/1999_09-10/ctbso99.asp
+http://www.armscontrol.org/act/2000_03/remr00.asp
+http://www.armscontrol.org/act/2000_11/pressconnk.asp
+http://www.armscontrol.org/act/2000_12/briefsdec00.asp
+http://www.armscontrol.org/act/2001_04/press.asp
+http://www.armscontrol.org/act/2001_05/steinbrunner.asp
+http://www.armscontrol.org/act/2001_06/nefjun01.asp
+http://www.armscontrol.org/act/2001_07-08/rosenbergjul_aug01.asp
+http://www.armscontrol.org/act/2001_07-08/rosenbergjul_aug01.asp?print
+http://www.armscontrol.org/act/2002_04/colwolfapril02.asp
+http://www.armscontrol.org/act/2002_05/briefsmay02.asp
+http://www.armscontrol.org/act/2002_10/secstrategyoct02.asp
+http://www.armscontrol.org/act/2003_05/gillthompson_may03.asp
+http://www.armscontrol.org/act/2003_12/Bunn.asp
+http://www.armscontrol.org/act/2004_06/NewsAnalysis.asp?print
+http://www.armscontrol.org/act/2004_07-08/acprint.asp
+http://www.armscontrol.org/act/2004_07-08/acprint.asp?print
+http://www.armscontrol.org/act/2005_03/ElBaradei.asp
+http://www.armscontrol.org/act/2005_05/NK_Talks.asp
+http://www.armscontrol.org/act/2005_05/NK_Talks.asp?print
+http://www.armscontrol.org/act/2005_06/LB_Holum.asp
+http://www.armscontrol.org/act/2005_06/LB_Holum.asp?print
+http://www.armscontrol.org/country/northkorea/North%20Korea%20Nuclear%20Nonproliferation%20Treaty%20Status.asp
+http://www.armscontrol.org/documents/salt2.asp
+http://www.armscontrol.org/events/May_2004PressConference.asp
+http://www.armscontrol.org/events/May_2004PressConference.asp?print
+http://www.armscontrol.org/events/blixinterview_june03.asp
+http://www.armscontrol.org/events/iraq_july03.asp
+http://www.armscontrol.org/factsheets/agreedframework.asp
+http://www.armscontrol.org/factsheets/ctbtissue.asp
+http://www.armscontrol.org/factsheets/newnuclearweaponsissuebrief.asp
+http://www.armscontrol.org/pressroom/2003/Pritchardinterview.asp
+http://www.armscontrol.org/pressroom/2003/Pritchardinterview.asp?print
+http://www.armscontrol.org/subject/ctbt/Daryl'sRemarks_Bunn_04.asp
+http://www.armscontrolcenter.org/about/employment.html
+http://www.armscontrolcenter.org/archives/000402.php
+http://www.armscontrolwonk.com/
+http://www.armstrong.com/resbrucewoodna/article7829.asp
+http://www.army-of-brides.com/
+http://www.army-technology.com/projects/arrow2/
+http://www.army.dnd.ca/Land_Force_Central_Area/32_Canadian_Brigade_Group/Queens_Own_Rifles_of_Canada/bosnia98_e.html
+http://www.army.forces.gc.ca/lf/English/5_5.asp
+http://www.army.forces.gc.ca/lf/English/6_1_1.asp?id=556
+http://www.army.mil/
+http://www.army.mil/CMH-PG/BOOKS/70-7_05.htm
+http://www.army.mil/aps/00/aps00.htm
+http://www.army.mil/aps/04/core.html
+http://www.army.mil/cmh-pg/books/DAHSUM/1988/ch03.htm
+http://www.army.mil/cmh-pg/books/Vietnam/northern/nprovinces-ch2.htm
+http://www.army.mil/cmh-pg/books/pd-c-01.htm
+http://www.army.mil/cmh-pg/books/wwii/Wac/ch09.htm
+http://www.army.mil/cmh-pg/brochures/ike/ike.htm
+http://www.army.mil/cmh-pg/mohiia1.htm
+http://www.army.mil/cmh-pg/mohkor1.htm
+http://www.army.mil/features/beret/beret.htm
+http://www.army.mil/prof_writing/volumes/volume1/august_2003/8_03_5.html
+http://www.army.mil/prof_writing/volumes/volume1/august_2003/8_03_6.html
+http://www.army.mil/prof_writing/volumes/volume1/august_2003/8_03_8.html
+http://www.army.mil/prof_writing/volumes/volume1/august_2003/8_03_8_pf.html
+http://www.army.mil/professionalwriting/volumes/volume1/august_2003/8_03_1.html
+http://www.army.mil/professionalwriting/volumes/volume1/august_2003/8_03_3.html
+http://www.army.mil/professionalwriting/volumes/volume1/june_2003/6_03_1.html
+http://www.army.mil/professionalwriting/volumes/volume1/june_2003/6_03_1_pf.html
+http://www.army.mil/professionalwriting/volumes/volume1/september_2003/9_03_2.html
+http://www.army.mil/professionalwriting/volumes/volume1/september_2003/9_03_2_pf.html
+http://www.army.mil/professionalwriting/volumes/volume2/december_2004/12_04_4.html
+http://www.army.mil/professionalwriting/volumes/volume2/december_2004/12_04_4_pf.html
+http://www.army.mil/professionalwriting/volumes/volume2/february_2004/2_04_2.html
+http://www.army.mil/professionalwriting/volumes/volume2/february_2004/2_04_2_pf.html
+http://www.army.mil/professionalwriting/volumes/volume2/february_2004/2_04_4.html
+http://www.army.mil/professionalwriting/volumes/volume2/february_2004/2_04_4_pf.html
+http://www.army.mil/professionalwriting/volumes/volume2/june_2004/6_04_1.html
+http://www.army.mil/professionalwriting/volumes/volume2/june_2004/6_04_1_pf.html
+http://www.army.mil/professionalwriting/volumes/volume2/march_2004/3_04_4.html
+http://www.army.mil/professionalwriting/volumes/volume3/april_2005/4_05_3.html
+http://www.army.mil/professionalwriting/volumes/volume3/january_2005/1_05_1.html
+http://www.army.mod.uk/blackwatch/joining.htm
+http://www.army.mod.uk/brunei/shop.htm
+http://www.army.mod.uk/greenhowards/archive_news/news_quarter_1_2004.htm
+http://www.army.mod.uk/medical/royal_army_veterinary_corps/ravc_history/
+http://www.army.mod.uk/para/3bn.htm
+http://www.army.mod.uk/royalengineers/org/mwfv/
+http://www.army.mod.uk/tigers/current.htm
+http://www.armyg1.army.mil/RSO/CurrentNews.asp
+http://www.armyg1.army.mil/WellBeing/RRLeave/index.HTM
+http://www.armyofgod.com/AOGsel3.html
+http://www.armyofgod.com/PHillMessageBoard.html
+http://www.armyradio.co.uk/publish/Articles/William_Howard/Introduction.htm
+http://www.armytimes.com/static.php?f=view.php
+http://www.arobooks.org/WTBOVchapter.html
+http://www.aromadictionary.com/articles/winetasting_article.html
+http://www.aromanotes.com/biz.html
+http://www.aromanotes.com/thewholeyoustore/biz.html
+http://www.aroundphilly.com/article.php?a_id=508
+http://www.arpegemusic.com/manual/EN580.htm
+http://www.arrivealive.co.za/pages.asp?mc=history&nc=confiscation
+http://www.arrivebylimo.com/ratesand.htm
+http://www.arrl.org/FandES/field/pscm/sec1-ch4.html
+http://www.arrod.co.uk/essays/matrix.php
+http://www.arrowgear.com/stockgears/stockgears_designcon4.htm
+http://www.arrt.org/web/egcontent.jsp?include=/eduguide/military.htm
+http://www.ars-logo-design.com/ar_semiotics_corporate_logo_design.htm
+http://www.ars.usda.gov/Research/Research.htm?docid=3337&modecode=36-11-30-00&page=3
+http://www.arseastus.com/Programs/ARSProgramsBottom.htm
+http://www.arsenicfilters.com/glass.htm
+http://www.arseweb.com/ufn/
+http://www.art-care.com/
+http://www.art-in-miniature.org/lecture.htm
+http://www.art-is-life.com/experimental.htm
+http://www.art-teez.org/mac_inq.htm
+http://www.art.co.za/willemboshoff/sand/sand01.htm
+http://www.art.com/asp/display-asp/_/id--10571/Firm.htm
+http://www.art.man.ac.uk/Lacs/news/index.shtml
+http://www.art.man.ac.uk/english/prereg/descriptions/am1031.htm
+http://www.art.net/studios/visual/lile/house/
+http://www.art2admire.com/
+http://www.artandantiques.net/Links.htm
+http://www.artandvision.com/webpages/fiction/puttingapriceonthepriceles.html
+http://www.artba.org/about_artba/history/overview.htm
+http://www.artbusiness.com/arttarget.html
+http://www.artbusiness.com/sellmyart.html
+http://www.artbusinessnews.com/aabn/june05/dept_profile.cfm
+http://www.artbusinessnews.com/aabn/june05/features1.cfm
+http://www.artcataloging.net/ala/mw04/summary.html
+http://www.artchive.com/artchive/R/rivera.html
+http://www.artcyclopedia.com/feature-2001-11.html
+http://www.artdaily.com/section/lastweek/index.asp?int_sec=2&int_new=13914&int_modo=2
+http://www.artemis.bm/html/glossary/
+http://www.artemismanagement.com/Pages/WorkLifeSub/WorkbookEnglish.html
+http://www.artes.uu.se/mobility/reports/euromicro9906_ebbe.shtml
+http://www.artfact.com/features/artistLot.cfm?iid=O27CV6J7
+http://www.artforum.com/diary/
+http://www.artfullodger.co.uk/content.php?categoryId=867
+http://www.artgallery.com.ua/search.php?p=night_landscape&lng=eng
+http://www.artgallery.com.ua/still_life_paintings_for_sale.php
+http://www.arthritis-cats-dogs.com/resources.php
+http://www.arthritis.ca/types%20of%20arthritis/pagets/default.asp?s=1
+http://www.arthritis.ca/types%20of%20arthritis/pagets/printer%20friendly/default.asp?s=1
+http://www.arthritis.ca/types%20of%20arthritis/pagets/quick%20facts/default.asp?s=1
+http://www.arthritis.ca/types%20of%20arthritis/raynauds%20phenomenon/default.asp?s=1
+http://www.arthritis.org/Communities/Chapters/Chapter.asp?chapid=61
+http://www.arthritis.org/resources/arthritistoday/1999_archives/1999_01_02exercise.asp
+http://www.arthritis.org/resources/arthritistoday/2004_archives/2004_07_08/2004_07_08_Focus_3.asp
+http://www.arthur-ransome.org/ar/literary/pyrates.htm
+http://www.arthurmag.com/magpie/?p=490
+http://www.artic.edu/webspaces/siskelfilmcenter/2004/feb/lin.htm
+http://www.article19.org/ViewArticle.asp?AreaID=42&SubAreaID=137&PageID=302&ElementID=299&ArticleID=1129&Comment=
+http://www.article19.org/ViewArticle.asp?AreaID=42&SubAreaID=137&PageID=302&ElementID=299&ArticleID=1159&Comment=
+http://www.article19.org/ViewArticle.asp?AreaID=42&SubAreaID=137&PageID=302&ElementID=299&ArticleID=1427&Comment=
+http://www.article19.org/ViewArticle.asp?AreaID=42&SubAreaID=137&PageID=302&ElementID=299&ArticleID=971&Comment=
+http://www.article19.org/docimages/307.htm
+http://www.article19.org/docimages/714.htm
+http://www.articlecity.com/articles/computers_and_internet/article_909.shtml
+http://www.articlecity.com/articles/family/article_690.shtml
+http://www.articlecity.com/articles/women/article_395.shtml
+http://www.articlesforeducators.com/math/000008.asp
+http://www.artificiallove.com/blog/
+http://www.artificialreefs.org/Articles/Discovery%20Magazine.htm
+http://www.artima.com/intv/dry.html
+http://www.artima.com/weblogs/viewpost.jsp?thread=86641
+http://www.artimis.org/stadium.php
+http://www.artinternationalwholesale.com/artresources/artinternationalwholesale_resources14.html
+http://www.artinthemountains.com/richardmckinley.htm
+http://www.artistcareertraining.com/aapacks.asp
+http://www.artistdirect.com/nad/music/artist/bio/0,,688808,00.html
+http://www.artistdirect.com/nad/store/artist/album/0,,2934006,00.html
+http://www.artistinresidence.org/
+http://www.artists-press.net/kim-berman/kim-berman.htm
+http://www.artists.ca/resources/rgenn-0410.html
+http://www.artistscornerstainedglass.com/classes.php
+http://www.artistsmagazine.com/tam_clinic.asp
+http://www.artistsnetwork.org/news5/news213.html
+http://www.artjewelrymag.com/art/community/forum/topic.asp?TOPIC_ID=6748
+http://www.artjewelrymag.com/art/community/forum/topic.asp?page=-1&TOPIC_ID=6748&REPLY_ID=71037
+http://www.artjewelrymag.com/art/community/forum/topic.asp?page=7&TOPIC_ID=1224
+http://www.artknowledgenews.com/
+http://www.artknowledgenews.com/?q=node&from=36
+http://www.artlex.com/ArtLex/Ch.html
+http://www.artlex.com/ArtLex/FAQ/MRD&history.html
+http://www.artlex.com/ArtLex/d/drawing.html
+http://www.artmargins.com/content/feature/efimova1.html
+http://www.artmargins.com/content/feature/sokolina3.html
+http://www.artmarshall.org/news/news24.htm
+http://www.artmissoula.org/Collection/2004%20Acq.htm
+http://www.artnet.com/Magazine/features/jsaltz/saltz9-28-04.asp
+http://www.artnet.com/Magazine/index/polsky/polsky5-23-03.asp
+http://www.artnet.com/Magazine/news/artnetnews2/artnetnews1-18-05.asp
+http://www.artnet.com/Magazine/news/artnetnews2/artnetnews5-19-05.asp
+http://www.artnet.com/Magazine/news/waltzer/waltzer5-6-04.asp
+http://www.artnet.com/Magazine/reviews/henry/henry2-28-01.asp
+http://www.artnewsonline.com/pastarticle.cfm?art_id=842
+http://www.artofabundance.com/freetithingbook.htm
+http://www.artofbreastfeeding.com/cgi-bin/store/AoB2.cgi?ORDER_ID=405786582922&CPAGE=nutrtn.html
+http://www.artofloving.com/family/30lovemeantobe.htm
+http://www.artofproblemsolving.com/Community/AoPS_Y_MJ_Transcripts.php?mj_id=55
+http://www.artofproblemsolving.com/LaTeX/AoPS_L_GuideLay.php
+http://www.artofthegreyhound.com/inthestudio.html
+http://www.artoftheprint.com/mainpages/gallery_n.htm
+http://www.artonline4u.com/help.html
+http://www.artpapa.com/forum/DCForumID14/6.html
+http://www.artpromote.com/copyrighthelp.shtml
+http://www.artquest.org.uk/artlaw/studios/spacerace1.htm
+http://www.artquest.org.uk/exhibit/mememe/before_you_start.htm
+http://www.artquest.org.uk/opportunities/talks.htm
+http://www.artrenewal.org/
+http://www.artrenewal.org/articles/columns/show.asp?eid=28
+http://www.artrumour.com/Newsletter/newsletter31.htm
+http://www.arts-accredit.org/
+http://www.arts-accredit.org/intro.jsp
+http://www.arts.ac.uk/6652.htm
+http://www.arts.ac.uk/international/9151.htm
+http://www.arts.ac.uk/research/filmcentre/maziere/paper.html
+http://www.arts.ac.uk/student/careers/1868.htm
+http://www.arts.auckland.ac.nz/online/sociol331/lec0304.html
+http://www.arts.cornell.edu/dendro/
+http://www.arts.cornell.edu/romance/italian/it_grad.html
+http://www.arts.gla.ac.uk/SESLL/EngLang/staff.htm
+http://www.arts.gla.ac.uk/SESLL/ScotLit/bibliography/resources.html
+http://www.arts.ouc.bc.ca/fiar/basic.html
+http://www.arts.ouc.bc.ca/fina/glossary/f_list.html
+http://www.arts.ri.gov/education/connec9.htm
+http://www.arts.ualberta.ca/~dmiall/RomCD/Clarkson.htm
+http://www.arts.ubc.ca/Standing_Committees.345.0.html
+http://www.arts.unimelb.edu.au/currentstudents/programs/ug_1styrfaqs.html
+http://www.arts.uwa.edu.au/MotsPluriels/MP1400akan.html
+http://www.arts.uwa.edu.au/MotsPluriels/MP1600gk.html
+http://www.arts.uwaterloo.ca/FINE/juhde/baird962.htm
+http://www.arts.yorku.ca/soci/video/videos/hear.html
+http://www.arts.yorku.ca/sosc/labour/degree/
+http://www.arts.yorku.ca/sosc/labour/degree/option_courses.html
+http://www.arts.yorku.ca/wmst/wsBridgingProgram.html
+http://www.artsadmin.co.uk/artistsadvisor/labsandworkshopstext.html
+http://www.artsalumni.net/awardee04/Writing/
+http://www.artsandscience.utoronto.ca/current/petitions/process.shtml
+http://www.artsandscience.utoronto.ca/ofr/calendar/prg_fys.htm
+http://www.artsandscience.utoronto.ca/ofr/timetable/winter/payotherfees.html
+http://www.artschoolreview.com/fashion/
+http://www.artschoolreview.com/interior_des/
+http://www.artschools.com/interviews/beth-lipman/
+http://www.artsci.lsu.edu/phil/phil1/cogburn/currentcourses/4914/2milleronmill.htm
+http://www.artsci.washington.edu/newsletter/Autumn01/Second%20Career-Simons%20section.htm
+http://www.artsci.wustl.edu/~djkaiser/175/
+http://www.artsci.wustl.edu/~english/courses/undergrad_fall03.htm
+http://www.artsci.wustl.edu/~esl/assessment.html
+http://www.artsci.wustl.edu/~faculty/teaching/dossier_instructions.html
+http://www.artsci.wustl.edu/~fms/about.html
+http://www.artsci.wustl.edu/~music/programs/undergrad/undergrad.description.html
+http://www.artscroll.com/Chapters/voih-009.html
+http://www.artsdata.net/common/META_AudAttenders.htm
+http://www.artservices2000.com/
+http://www.artshapes.net/Celtic-Symbols/Celtic-Art-Designs/dublin.html
+http://www.artshole.co.uk/01directory.htm
+http://www.artsjournal.com/
+http://www.artsjournal.com/aboutlastnight/archives20050313.shtml
+http://www.artsjournal.com/artfulmanager/
+http://www.artsjournal.com/artfulmanager/archives/April_2004.php
+http://www.artsjournal.com/artfulmanager/archives/March_2005.php
+http://www.artsjournal.com/ideas/20040701archive.shtml
+http://www.artsjournal.com/man/archives20050101.shtml
+http://www.artsjournal.com/muse/reverse.php
+http://www.artsjournal.com/muse/sandowcase.html
+http://www.artsjournal.com/pixelpoints/
+http://www.artsjournal.com/theatre/
+http://www.artsjournal.com/yesterdays/20041119-15960.shtml
+http://www.artsjournal.com/yesterdays/20050302-17386.shtml
+http://www.artslaw.com.au/ArtLaw/Archive/00LicensingCartoonCharacters.asp
+http://www.artslaw.com.au/reference/publicliability02/
+http://www.artslynx.org/theatre/design.htm
+http://www.artspace2000.com/
+http://www.artspace2000.com/artspace_II/Directories/art_consultants.htm
+http://www.artsreformation.com/a001/ih-music-rules.html
+http://www.artsudbury.org/past.asp?155id117-pn=&view=2289
+http://www.artsudbury.org/past.asp?155id117-pn=0&view=2289
+http://www.artswales.org/pressoffice/printable.asp?newsid=231
+http://www.artsystems.com/software/faqs.html
+http://www.artthrob.co.za/
+http://www.artthrob.co.za/03sept/reviews/jag.html
+http://www.arttrail.org/June.html
+http://www.artukraine.com/famineart/conquest_lect.htm
+http://www.artukraine.com/famineart/duranty61.htm
+http://www.artuproar.com/?page=moreinfo&num=37071
+http://www.artweek.com/previews.shtml
+http://www.artwithheart.org/960.html
+http://www.arugam.info/
+http://www.arvintd.com/faqs.asp
+http://www.arxan.com/about/business.php
+http://www.aryabhatt.com/
+http://www.aryabhatt.com/articles/Palmistry%20and%20Marriage%20Compltibility.htm
+http://www.aryabhatt.com/fast_fair_festival/Fairs/Kaila_Devi_Fair.htm
+http://www.as-seen-on-tv-discounts.com/avacor_hair_care_system.asp
+http://www.as.wvu.edu/coll03/phys/www/ferer.htm
+http://www.as.wvu.edu/~equity/equity.html
+http://www.as.wvu.edu/~scidis/motor.html
+http://www.as220.org/news/calendar.html
+http://www.asa.org.uk/asa/news/news/2005/Being+an+ASA+Council+Member.htm
+http://www.asa3.org/ASA/PSCF/1988/PSCF9-88Wiester.html
+http://www.asa3.org/ASA/PSCF/1998/PSCF12-98Mills.html
+http://www.asa3.org/ASA/resources/Wiens.html
+http://www.asa3.org/ASA/topics/Philosophy/PSCF6-99Touyran.html
+http://www.asa3.org/ASA/topics/PsychologyNeuroscience/PSCF3-92Thorson.html
+http://www.asa3.org/archive/evolution/199903/0348.html
+http://www.asac.ab.ca/BI_fall01/malcolm.html
+http://www.asahi.com/english/Herald-asahi/TKY200506030126.html
+http://www.asahi.com/english/Herald-asahi/TKY200507010156.html
+http://www.asahp.org/history.htm
+http://www.asahq.org/Newsletters/1997/06_97/Trends_Litigation.html
+http://www.asahq.org/Newsletters/1997/08_97/Outcomes_0897.html
+http://www.asahq.org/publicationsAndServices/chronic_pain.html
+http://www.asaiojournal.com/pt/re/asaio/fulltext.00002480-200007000-00015.htm
+http://www.asamanthinketh.net/bornrich-excerpt.htm
+http://www.asamanthinketh.net/mentor/naamtsap.htm
+http://www.asanet.org/footnotes/septoct02/indexthree.html
+http://www.asanet.org/governance/glbtrpt.html
+http://www.asante.com/
+http://www.asaoakland.org/upcomingevents.htm
+http://www.asashop.org/autoinc/april2001/safetyinspect.cfm
+http://www.asashop.org/autoinc/july2004/techtips.cfm
+http://www.asatonline.org/resources/library/speech-language_therapy.html
+http://www.asbahr.com/paper1html/paper1.html
+http://www.asbbank.co.nz/section307.asp
+http://www.asbj.com/current/research.html
+http://www.asbj.com/lbd/2003/designing.html
+http://www.asbj.com/lbd/2004/inprint/shorr.html
+http://www.asbj.com/schoolspending/carey.html
+http://www.asbj.com/schoolspending/rothstein.html
+http://www.asbmb.org/ASBMB/site.nsf/0/D8A96A1DCC007A1385256C7C00535A7C?OpenDocument
+http://www.asc-cybernetics.org/foundations/history2.htm
+http://www.asc.upenn.edu/usr/chunter/info_society/caught_in_the_web/caught_in_the_web_paper.html
+http://www.ascb.org/news/vol20no11/briefing.html
+http://www.ascd.org/ed_topics/el200110_singh.html
+http://www.asce.org/kids/handson.cfm
+http://www.ascendpress.org/articles/creepy-crawlers/Octopus.htm
+http://www.ascensionbalhamhill.org.uk/Resources/Growth%20Group%20Sunday%202004-NG.html
+http://www.ascensionbalhamhill.org.uk/Resources/sermons/Jesus%20heals%20the%20gentile%20woman.htm
+http://www.asciiartfarts.com/20001213.html
+http://www.asciimation.co.nz/ascii_faq.html
+http://www.asciipr0n.com/condolences/index.php?old=78
+http://www.ascilite.org.au/conferences/adelaide96/papers/07.html
+http://www.asconi.com/investors.html
+http://www.ascp.com/MedicareRx/
+http://www.ascp.com/public/news/2004/11/18/brickley/
+http://www.ascribe.org/ClipPages/clipping10.html
+http://www.ascribe.org/cgi-bin/behold.pl?ascribeid=20050610.071606&time=08%2012%20PDT&year=2005&public=1
+http://www.ascsa.edu.gr/publications/p_books.htm
+http://www.ascusc.org/jcmc/vol2/issue3/gordin.html
+http://www.ascusc.org/jcmc/vol2/issue3/perrone.html
+http://www.asdafilm.org.au/information.html
+http://www.asdafinance.com/home-insurance-what-youre-covered-for.html
+http://www.asdafinance.com/travel-insurance-what-youre-covered-for.html
+http://www.asdd.sa.gov.au/asdd/ANZSA1022000021.html
+http://www.asdk12.org/recognition/archives/may.asp
+http://www.ase.org/content/article/detail/1860
+http://www.ase.org/content/article/detail/2075
+http://www.ase.org/content/news/detail/1828
+http://www.aseam.com.my/news/articles/sc1.htm
+http://www.aseansec.org/6578.htm
+http://www.aseg.org.au/business_plan.htm
+http://www.asent.org/newsletter/2004/july/
+http://www.asgla.com/links/newsfaq/considerations.html
+http://www.asgp.info/rulesandworking.htm
+http://www.asgt.org/am05/program/info.shtml
+http://www.asgt.org/regulatory_issues/fda_response_proposed_rule.html
+http://www.ash-tree.bc.ca/acdsfairies.htm
+http://www.ash.org.uk/html/factsheets/html/fact08.html
+http://www.asha.org/
+http://www.asha.org/about/leadership-projects/national-office/exec-updates/082004.htm
+http://www.asha.org/public/speech/disorders/Communication+Decisions.htm
+http://www.asha.org/public/speech/disorders/Voice-problems.htm
+http://www.asha.org/public/speech/disorders/aac-growing-up-with-aac.htm
+http://www.asha.org/public/speech/disorders/als-voice-lessons-speaking-with-als.htm
+http://www.ashanet.org/Dbase/inv-new-over.html
+http://www.ashanet.org/projects-new/documents/Nutanhat-SiteVisit-Feb01
+http://www.ashanet.org/projects-new/documents/umbvs-raj-visit
+http://www.ashanet.org/projects/document-view.php?id=1283
+http://www.ashanet.org/projects/document-view.php?id=1743
+http://www.ashanet.org/projects/tamilnadu/irulas/SiteVisitReport2000Govind.html
+http://www.asharewarelife.com/2004_04_18_archive.html
+http://www.asharewarelife.com/2004_07_01_archive.html
+http://www.ashbourne-town.com/history/labour.htm
+http://www.ashbourne-town.com/history/life.htm
+http://www.ashcraftandgerel.com/Welcome.html
+http://www.ashdenawards.org/finalist04.html
+http://www.ashelf.com/ashelf/wordlists/e/eec/www/=A.html
+http://www.ashelf.com/ashelf/wordlists/e/eec/www/=B.html
+http://www.ashelf.com/ashelf/wordlists/e/eec/www/=C.html
+http://www.ashelf.com/ashelf/wordlists/e/eec/www/=P.html
+http://www.ashlandschoolsfoundation.org/Page.asp?NavID=41
+http://www.ashleyfurniture.com/WebMisc/Legal.asp?SFID=
+http://www.ashoka.org/fellows/viewprofile3.cfm?reid=99573
+http://www.ashp.org/rtp/MCPhP-stnd.cfm
+http://www.ashrae.org/template/AssetDetail/assetid/24701
+http://www.ashrae.org/template/PDFDetail/assetid/31590
+http://www.ashridge.org.uk/web/leadconf2002.nsf/pages/openSpace
+http://www.ashridge.org.uk/www/OpenProgrammes.nsf/web/msa+Making+Successful+Acquisitions+Timetable
+http://www.ashtabula.kent.edu/Academics/math_dept/najafi.cfm
+http://www.ashton-dennis.org/polar_bear.html
+http://www.ashton-dennis.org/post799a.html
+http://www.asi-mag.com/air_watch/feb-mar2003.htm
+http://www.asia-art.net/coffee_painting.html
+http://www.asia.manufacturers.globalsources.com/gsol/I/Womens-pullover/a/9000000055070.htm
+http://www.asiahotels.com/hotelinfo/Ambassador_Hotel_Taipei_The/
+http://www.asiahotels.com/hotelinfo/Goldiana_Hotel/
+http://www.asiahotels.com/hotelinfo/Jiva_Resort_and_Spa/
+http://www.asiahotels.com/hotelinfo/Lorenzo_Resort_Main/
+http://www.asialink.unimelb.edu.au/arts/residencies/varesappinfo.htm
+http://www.asianart.com/exhibitions/korea/intro.html
+http://www.asianartnow.com/articles/withoutborders.html
+http://www.asianclassics.org/mission/stpeteformat.html
+http://www.asiandb.com/browse/movie_detail.pfm?code=5514&mode=review&num=1356
+http://www.asianfilms.org/korea/kky/KKY/Stairway/KJStext.htm
+http://www.asiangateway.net/advice.htm
+http://www.asianjobsite.co.uk/showvacancy.php/JobID=1039
+http://www.asianlabour.org/archives/000455.php
+http://www.asianlabour.org/archives/000627.php
+http://www.asianlabour.org/archives/001499.php
+http://www.asianlabour.org/archives/cat_burma.php?page=3
+http://www.asianlabour.org/archives/cat_thailand.php?page=7
+http://www.asianlegalonline.com/asia/detail_article.cfm?articleID=1461
+http://www.asianlegalonline.com/usa/detail_article.cfm?articleID=1461
+http://www.asianmanrecords.com/newsletter.php?id=24
+http://www.asianpacificpost.com/news/article/93.html
+http://www.asiansinmedia.org/industry/article.php/profiles/59/
+http://www.asiantribune.com/show_news.php?id=9030
+http://www.asiasource.org/views/av_mp_09_country.cfm?countryid=62
+http://www.asiaspirit.com/lavatory.htm
+http://www.asiatraveltips.com/ShoppinginBangkok.shtml
+http://www.asic-cafe.org/htm/eng/colloquium.htm
+http://www.asid.org/ASID2/resource/newsflash.asp
+http://www.asidsouthernaccents.com/design_specialities/hospitality.asp
+http://www.asij.ac.jp/elementary/gr4web/c4f/professional/teaching/subjects/ss_sci_tech/rube/machineweb/teacher.htm
+http://www.asijobs.com/interviewtips.cfm
+http://www.asil.org/insights/insigh122.htm
+http://www.asimovs.com/_issue_0505/onthenet.shtml
+http://www.asis.org/Bulletin/Dec-03/williams.html
+http://www.asisonline.org/chapters/CPPChapterInfo.xml
+http://www.asja.org/cw/cwfiles/cw031030.php
+http://www.ask-a-librarian.org.uk/mla_vrt/staffing.html
+http://www.askaboutwriting.net/
+http://www.askapatient.com/viewrating.asp?drug=20635&name=LEVAQUIN
+http://www.askapatient.com/viewrating.asp?drug=20711&name=ZYBAN
+http://www.askapatient.com/viewratings.asp?drug=20635&name=LEVAQUIN&sort=age
+http://www.askapatient.com/viewratings.asp?drug=20711&name=ZYBAN&sort=Timelength
+http://www.askapatient.com/viewratings.asp?drug=20711&name=ZYBAN&sort=age
+http://www.askapatient.com/viewratings.asp?drug=20711&name=ZYBAN&sort=gender
+http://www.askapatient.com/viewratings.asp?drug=20711&name=ZYBAN&sort=satisfaction
+http://www.askart.com/interest/nude_art.asp
+http://www.askasia.org/Korea/lp10.html
+http://www.askasia.org/frclasrm/lessplan/l000045.htm
+http://www.askasia.org/teachers/Instructional_Resources/Lesson_Plans/India/LP_india_2.htm
+http://www.askasia.org/teachers/Instructional_Resources/Materials/Readings/China/R_china_10.htm
+http://www.askatl.org.uk/atl_en/news/general_election/candidates_responses.asp
+http://www.askatl.org.uk/atl_en/union/policy/responses/new_professionalism.asp
+http://www.askcedric.org.uk/commnotes.php?note=23
+http://www.askdocweb.com/retin-a2.html
+http://www.askdrgayle.com/qa333.htm
+http://www.askdrsears.com/html/2/T022800.asp
+http://www.askdrsears.com/html/2/T023600.asp
+http://www.askdrsears.com/html/8/T080800.asp
+http://www.askdrshah.com/alzhdis.htm
+http://www.askedu.com/course/ks/ks_E19.htm
+http://www.askheartbeat.com/html/1mar01.html
+http://www.asklyrics.com/display/504_Boyz/Haters_Gon_Hate_Lyrics/125547.htm
+http://www.asklyrics.com/display/B.G./Bounce_With_Me_Lyrics/97091.htm
+http://www.askman.com/fashion/body_and_mind/11_better_living.html
+http://www.askmehelpdesk.com/forum/archive/t-4740.html
+http://www.askmen.com/fashion/body_and_mind/16_better_living.html
+http://www.askmen.com/money/successful/19_success.html
+http://www.askncvo.org.uk/Asp/search/docViewer.aspx?siteID=2&sID=24&documentID=633&catID=119
+http://www.askrose.org/cgi-bin/viewnews.cgi?id=1094047188
+http://www.askthebuilder.com/385_Window_Glass_Replacement_is_Tricky.shtml
+http://www.askthebuilder.com/Premium-Ask-The-Builder.shtml
+http://www.asktheheadhunter.com/hafallacytwo.htm
+http://www.asktheheadhunter.com/hastartjob.htm
+http://www.asktheheadhunter.com/industryinsider8.htm
+http://www.asktheheadhunter.com/women1.htm
+http://www.askthelawguy.info/ask2/2003.08.01_arch.html
+http://www.askthemeatman.com/beef_nutritional_value.htm
+http://www.asktog.com/basics/firstPrinciples.html
+http://www.asktog.com/books/booksDesign.html
+http://www.asktog.com/columns/034OSX-FirstLook.html
+http://www.asktog.com/columns/058SecurityD'ohlts.html
+http://www.asktog.com/columns/061PantherReview.html
+http://www.asktog.com/columns/064MonsterPalm.html
+http://www.asktog.com/reviews/001GoLiveCyberStudio3.html
+http://www.askwhy.co.uk/truth/121QuestioningBelief.html
+http://www.askwhy.co.uk/truth/epistles/009ROdell3.html
+http://www.askyourass.com/askyourass.asp
+http://www.aslab.com/warranty/warrantypolicies.html
+http://www.aslet.org/i4a/pages/Index.cfm?pageid=682
+http://www.asmallvictory.net/
+http://www.asme.org/pubs/detailspecs.html
+http://www.asmera.nl/eritrea2004/eritrea518.htm
+http://www.asmicro.com/supplies.htm
+http://www.asminternational.org/emails/chapter_nexus_0505/May05nexus.htm
+http://www.asn-online.org/newsletter/renal_express/2003/03-08_Rxpress.aspx
+http://www.asn-online.org/policy_and_public_affairs/archives/asnConcern.aspx
+http://www.asne.org/ideas/codes/yorkdailyrecord.htm
+http://www.asne.org/index.cfm?ID=2528
+http://www.asne.org/index.cfm?ID=395
+http://www.asne.org/kiosk/editor/01.may-june/hoyt1.htm
+http://www.asne.org/kiosk/editor/97.mar-may/fry1.htm
+http://www.asno.dfat.gov.au/annual_report_9899/bkg_iaea_o.html
+http://www.asno.dfat.gov.au/annual_report_9900/asno_office_functions.html
+http://www.asno.dfat.gov.au/annual_report_9900/current_topics.html
+http://www.asor.ms.unimelb.edu.au/
+http://www.asp-shareware.org/membership/profile-2003-06.asp
+http://www.asp101.com/
+http://www.asp101.com/articles/john/classicaspinvsnet/default.asp
+http://www.aspartame.com/lydon.htm
+http://www.aspatore.com/bookstore2.asp
+http://www.aspatore.com/bookstore6.asp
+http://www.aspb.org/meetings/pb-2005/housing.cfm
+http://www.aspca.org/site/PageServer?pagename=companionlines_dogs&s_state=06
+http://www.aspca.org/site/PageServer?pagename=companionlines_dogs&s_state=06&printer_friendly=1
+http://www.aspennj.org/playd.html
+http://www.aspensnowmass.com/environment/AboutEAC/recognition1999.cfm?var=1&hasFlash=0
+http://www.aspergerfriends.com/
+http://www.aspet.org/AMSPC/Minutes_Winter_%20Mtng.htm
+http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=182
+http://www.aspiesforfreedom.org/phpBB2/viewtopic.php?t=321
+http://www.aspire2write.com/Columns/WritingHelp.htm
+http://www.aspnews.com/analysis/analyst_cols/article.php/3306521
+http://www.aspnews.com/strategies/asp_basics/article.php/900991
+http://www.asponline.com/10tips.html
+http://www.asponline.com/jmolisani.html
+http://www.aspoonfulofsugar.net/blog/2004/01/
+http://www.aspower.com/2issue1pg4.htm
+http://www.asppb.org/publications/model/act.aspx
+http://www.asppb.org/publications/model/regulations.aspx
+http://www.asprs.org/publications/pers/2004journal/august/
+http://www.aspsys.com/clusters/history/
+http://www.aspsys.com/systems/viewspecs.aspx/video/29/14.aspx
+http://www.aspsys.com/systems/viewspecs.aspx/video/29/8.aspx
+http://www.asres.org/program_1.htm
+http://www.asrm.org/Professionals/PG-SIG-Affiliated_Soc/MHPG/mhpgbooks.html
+http://www.asrt.org/content/ASRTStore/Marketplace/Marketplace_Jobs.aspx
+http://www.assa.org.au/edm.html
+http://www.assainternational.com/workshops/iwpcps_5/exhibitors.cfm
+http://www.assamtea.biz/teabasics.htm
+http://www.assatashakur.org/forums/upload/showthread.php?goto=lastpost&t=3261
+http://www.asse.org/breview14.htm
+http://www.asseenontv.com/
+http://www.assembly-weu.org/en/documents/sessions_ordinaires/pv/2004/pv05.html
+http://www.assembly-weu.org/en/presse/cp/2004/2.html
+http://www.assistbcs.com/bin/web/real_estate/AR56276/ACTIVATE_FRAMES/PROMOTE_FHEO/1103662608.html
+http://www.assistedsuicide.org/typical_example.html
+http://www.assitej-usa.org/Next/a/2004_10/conundrum.html
+http://www.associateprograms.com/search/Books_and_Art/art/index2.shtml
+http://www.associateprograms.com/search/Health_and_Beauty/fitness/index2.shtml
+http://www.associationheadquarters.com/AMCBasics/rfp.htm
+http://www.associationmagazine.com/client/csae/AM.nsf/0/CF4A7D896E2CA668852569D1006B551D?OpenDocument
+http://www.assortedstuff.com/
+http://www.asss.utvinternet.com/buildingcollection/build12writingup1.htm
+http://www.asstr.org/files/Collections/Alt.Sex.Stories.Moderated/Year2002/35258
+http://www.asstr.org/~Kristen/28/timmy.txt
+http://www.asstr.org/~velocity/stories/toilkien040.html
+http://www.assumption.edu/HTML/Faculty/Kantar/HKANTAR2.html
+http://www.assumption.edu/html/Faculty/Kantar/HKANTAR2.HTML
+http://www.assumption.edu/users/Kantar/IICEcall.html
+http://www.assureconsulting.com/workplace/expect.shtml
+http://www.astdhpphe.org/about.asp
+http://www.astdhpphe.org/infect/hanta.html
+http://www.astdps.org/newsletters/2005/May/home.htm
+http://www.astecmodels.co.uk/fgallery.htm
+http://www.asterhobbies.co.uk/pages/models/br03.htm
+http://www.asterius.com/atari/cyberpaint
+http://www.asthm.com.au/courses/courses.htm
+http://www.asthma-drsprecace.com/sinus.html
+http://www.asthma.org.uk/discus/messages/91/1114.html?1111588522
+http://www.asti-usa.com/support/appnotes/26/pt1.htm
+http://www.astm.org/SNEWS/JANUARY_2005/beakley_jan05.html
+http://www.aston.ac.uk/fees
+http://www.aston.ac.uk/international-students/preparingforaston/1orientation.jsp
+http://www.aston.ac.uk/lss/research/prodd/CD/Ch4.jsp
+http://www.aston.ac.uk/lss/wide_languages/index.jsp
+http://www.astondane.plc.uk/about/news.htm
+http://www.astoriasoftware.com/solutions/aerospace/afastdoc.jsp
+http://www.astorytoshare.com/lovequotes.php?&page=6
+http://www.astphnd.org/
+http://www.astr.ua.edu/keel/agn/quasar40.html
+http://www.astralreflections.com/html/karmic.html
+http://www.astro.caltech.edu/~wsk/2004.htm
+http://www.astro.com.my/v5/programming/weekly/weekly.asp?channel_id=M029
+http://www.astro.com/astrology/in_millennium_e.htm
+http://www.astro.com/people/smith_e.htm
+http://www.astro.com/people/smith_g.htm
+http://www.astro.com/people/smith_h.htm
+http://www.astro.com/people/smith_i.htm
+http://www.astro.com/people/smith_p.htm
+http://www.astro.com/people/smith_s.htm
+http://www.astro.com/samples/sp_cash_e.htm?lang=h
+http://www.astro.com/samples/sp_cash_e.htm?lang=s
+http://www.astro.psu.edu/users/lewis/ASTRO11/syllabus.html
+http://www.astro.psu.edu/users/sharma/Astro1/2005Summer/syllabus.html
+http://www.astro.umn.edu/links/
+http://www.astro.unibas.ch/forschung/pe/mw-structure.shtml
+http://www.astro.uu.nl/~strous/AA/en/antwoorden/planeten.html
+http://www.astro.uu.nl/~strous/AA/en/antwoorden/tijd.html
+http://www.astrobio.net/news/article1455.html
+http://www.astrobio.net/news/article389.html
+http://www.astrobiology.com/asc2000/abstract.html?ascid=217
+http://www.astrofish.net/fineprint.html
+http://www.astrohbg.org/
+http://www.astroimages.com/digital.htm
+http://www.astroleague.org/al/socaids/leadship/leadrun.html
+http://www.astrology.com.au/face/theface.asp
+http://www.astrology.com/examples/new/222/bt.html
+http://www.astrology101.com/Heavens/default.asp
+http://www.astrologyalive.com/AA-News-Goods.html
+http://www.astrologycom.com/facts.html
+http://www.astrologyzine.com/love-lady.shtml
+http://www.astromart.com/news/news.asp?news_id=286
+http://www.astronomy.com/asy/default.aspx?c=a&id=2193
+http://www.astronomy.com/asy/default.aspx?c=a&id=2465
+http://www.astronomy.com/asy/default.aspx?c=ss&id=10
+http://www.astronomytower.org/authors/luthiensunstar/PAETF.html
+http://www.astronomytower.org/authors/olitrin/BAR01.html
+http://www.astrosoftware.com/astrolog.htm
+http://www.astrostar.com/articles/BornInFebruary.htm
+http://www.astrosurf.org/buil/us/bestar.htm
+http://www.asu.asn.au/media/ca/
+http://www.asu.edu/caed/proceedings01/ESDP/faludi.htm
+http://www.asu.edu/caed/proceedings97/freund.html
+http://www.asu.edu/caed/proceedings98/Garvin/garvin.html
+http://www.asu.edu/copp/morrison/may05.htm
+http://www.asu.edu/counseling_center/lifeascollegestudent.html
+http://www.asu.edu/educ/epsl/CERU/Community%20Corner/baecherspeech.html
+http://www.asu.edu/educ/epsl/EPRU/documents/EPRU%202002-101/Summary-02.Finn.htm
+http://www.asu.edu/emergency/bcp/pages/miscellaneous_14.html
+http://www.asu.edu/english/englished/yalit/engedya01honorlist.htm
+http://www.asu.edu/graduate/facstaff/mentors/foster89.htm
+http://www.asu.edu/mu/dining.htm
+http://www.asuqld.asn.au/
+http://www.asv-archeology.org/timcrime.htm
+http://www.asw2.net/samples/housing.html
+http://www.asw4autism.org/vision.htm
+http://www.aswift.com/servlet/Job.Search?job.sectorId=34
+http://www.aswm.org/wbn/current.htm
+http://www.asx.com.au/about/l3/AdviserServicesSOA_AA3.shtm
+http://www.at-bristol.org.uk/Newton/experiment.htm
+http://www.ata.org/programs/service_connected.html
+http://www.ataa.org/spotlight/courtrecords.htm
+http://www.atanet.org/pd/finance/bios.htm
+http://www.atariarchives.org/bca/Chapter04_TheOrientExpress.php
+http://www.atariarchives.org/deli/computing_in_europe.php
+http://www.atarihq.com/tsr/special/tetrishist.html
+http://www.atcmag.com/v2n3/article6.asp
+http://www.atdd.noaa.gov/ETOS_additions/etosprogram.htm
+http://www.atdn.org/
+http://www.atdn.org/trs/29.html
+http://www.ateamshrine.co.uk/
+http://www.atelier-vert.com/visitez.tmpl?SKU=31231229422200
+http://www.ateliervanlieshout.com/corporate3/newsletter-no2.htm
+http://www.atfantasy.com/view/453
+http://www.atfantasy.com/view/472
+http://www.atg.com/en/company/atg_management/
+http://www.atg.com/en/news/articles/news_article.jhtml?id=1700036
+http://www.atg.wa.gov/utility/10_97report/title2.html
+http://www.athabascau.ca/calendar/page03_10.html
+http://www.athabascau.ca/course/ug_subject/
+http://www.athabascau.ca/html/courses/list1.htm
+http://www.athe.org/resources/filearchive/ETHICS.html
+http://www.athealth.com/consumer/disorders/alzheimers2.html
+http://www.atheistfoundation.org.au/undec.htm
+http://www.atheistparents.org/pages.php?sc=001&pg=0099
+http://www.atheistparents.org/pages.php?sc=001&pg=0106
+http://www.atheists.org/flash.line/evol7.htm
+http://www.atheists.org/flash.line/kansas5.htm
+http://www.athelstane.co.uk/gmanfenn/begumbag/begum36.htm
+http://www.athenian.org/alumni/AlumniProfiles.php
+http://www.athensguide.com/architecture.html
+http://www.athensguide.com/leaving.html
+http://www.athensguide.com/newmetro.html
+http://www.athensnews.gr/education/1edu19.htm
+http://www.athletesadvisor.com/articles/baseball/pappas.htm
+http://www.athletesedge.com/fall.html
+http://www.athletics.org.au/athletes/bigsister/useful_info.cfm
+http://www.athlonsports.com/articles/3022/
+http://www.athomeplate.com/ethics.shtml
+http://www.ati-net.com/dm-barlo.htm
+http://www.ati-net.com/nausbaum.htm
+http://www.aticourses.com/
+http://www.atimes.com/atimes/Asian_Economy/GF11Dk01.html
+http://www.atimes.com/atimes/Central_Asia/EK06Ag01.html
+http://www.atimes.com/atimes/China/DK02Ad05.html
+http://www.atimes.com/atimes/China/FE26Ad06.html
+http://www.atimes.com/atimes/China/FK18Ad01.html
+http://www.atimes.com/atimes/Global_Economy/FB05Dj01.html
+http://www.atimes.com/atimes/Global_Economy/GE26Dj02.html
+http://www.atimes.com/atimes/Global_Economy/GF16Dj01.html
+http://www.atimes.com/atimes/Korea/FI11Dg03.html
+http://www.atimes.com/atimes/Middle_East/ED04Ak07.html
+http://www.atimes.com/atimes/Middle_East/FG17Ak01.html
+http://www.atimes.com/atimes/Middle_East/FI18Ak02.html
+http://www.atip.org/public/atip.reports.98/atip98.068r.html
+http://www.atips.com/english/news/2004.05.11.htm
+http://www.atis.org/atis/sif/sif1295.htm
+http://www.atis.org/atis/tcif/5tc00a03.htm
+http://www.atkearney.com/main.taf?p=5,3
+http://www.atkielski.com/main/ParisFAQ.html
+http://www.atkinsexposed.org/atkins/135/Corporate_Threat.htm
+http://www.atkinsexposed.org/atkins/65/Atkins_Killed_Our_Daughter.htm
+http://www.atl.ec.gc.ca/climate/nfld.html
+http://www.atl.ec.gc.ca/epb/pollprev/kings_metal.html
+http://www.atl.ec.gc.ca/epb/pollprev/past.html
+http://www.atl.ec.gc.ca/press/01-11-30.html
+http://www.atl.org.uk/atl_en/news/general_election/candidates_responses.asp
+http://www.atl.org.uk/atl_en/union/policy/responses/new_professionalism.asp
+http://www.atla.org/LegalEducationConventions/Tier3/Convenience_AV.aspx
+http://www.atlabama.com/olemissjokes.htm
+http://www.atlantabesthomes.com/
+http://www.atlantaperforms.com/we_inform/hotline/auditions.asp
+http://www.atlantaspeechschool.org/employment.html
+http://www.atlantatribune.com/
+http://www.atlanticbreezes.com/oceancitytownevents/decemberoceancitymaryland.shtml
+http://www.atlanticbulk.com/apply.htm
+http://www.atlanticfirearms.com/rifles/308_rifles/308_rifles.html
+http://www.atlanticfirearms.com/rifles/ar15/ar15.html
+http://www.atlanticgolf.com/aboutcostarica.htm
+http://www.atlanticpanic.com/index.cfm?page=2&chartpage=2&CharterId=152
+http://www.atlantiquecity.com/
+http://www.atlargestudy.org/why-ga-matters.html
+http://www.atlas.sa.gov.au/atlas1986/3PRODUCTION/3MINERALS_ENERGY.cfm
+http://www.atlasmagazine.com/droppings/prev15.html
+http://www.atlassian.com/software/jira/docs/latest/fieldscreenschemes.html
+http://www.atlassian.com/software/jira/docs/v3.2/fieldscreenschemes.html
+http://www.atlassian.com/software/jira/docs/v3.2/issuefield_configuration_schemes.html
+http://www.atlassound.com/contact/warranty.cfm
+http://www.atlastnaturals.com/msm.htm
+http://www.atm.org.uk/professionalofficer/
+http://www.atmos.anl.gov/ABLE/status.html
+http://www.atmosphere.mpg.de/enid/5057ce0c8397e666f5a77ee2a0017790,55a304092d09/1qx.html
+http://www.atnet.org/CR4AT/FocusGroup/FunctionThematic.htm
+http://www.atnf.csiro.au/~rgooch/linux/docs/io-events.html
+http://www.atoday.com/334.0.html
+http://www.atokacity.org/
+http://www.atomicarchive.com/Effects/index.shtml
+http://www.atomicdeathray.com/unprofessional/zombies/reagan.html
+http://www.atomicmuseum.com/tour/decision.cfm
+http://www.atozteacherstuff.com/Tips/Sponge_and_Transition_Activities/
+http://www.atp.nist.gov/alliance/gtc-a.htm
+http://www.atp.nist.gov/eao/gcr02-830/chapt3.htm
+http://www.atp.nist.gov/eao/jtt/jaffe.htm
+http://www.atpm.com/10.10/segments.shtml
+http://www.atpm.com/3.01/page7.shtml
+http://www.atpm.com/5.07/paradigm.shtml
+http://www.atpm.com/5.12/art.shtml
+http://www.atpm.com/6.03/barline.shtml
+http://www.atpm.com/6.08/candy-crisis.shtml
+http://www.atpm.com/6.10/bbedit.shtml
+http://www.atpm.com/7.08/macworld.shtml
+http://www.atpm.com/8.01/howto.shtml
+http://www.atpm.com/9.10/aka.shtml
+http://www.atpobtvs.com/ethqs2.html
+http://www.atptennis.com/en/newsandscores/news/2005/rome_wednesday.asp
+http://www.atreus-systems.com/corporate_info/executive_team.shtml
+http://www.atriarch.com/news/news.html
+http://www.atributetohinduism.com/articles_hinduism/231.htm
+http://www.atriumsoc.org/pages/bullybustersystem.html
+http://www.atropine-live.co.uk/
+http://www.ats-sonic.com/ftsa3.htm
+http://www.ats.org/news.php?id=117
+http://www.atsb.gov.au/road/nrss/nrssp_120804.cfm
+http://www.atsb.gov.au/road/res-exec/cr162ex.cfm
+http://www.atsb.gov.au/road/rpts/cr203/dr_fatigue.cfm
+http://www.atsdr.cdc.gov/HAC/PHA/bridgeport/bro_p3.html
+http://www.atsdr.cdc.gov/HAC/PHA/fafb/faf_p4a.html
+http://www.atsdr.cdc.gov/HAC/PHA/iron/iro_p1.html
+http://www.atsdr.cdc.gov/HAC/PHA/twin/tcr_p3.html
+http://www.atsdr.cdc.gov/tfacts47.html
+http://www.atse.org.au/index.php?sectionid=213
+http://www.atse.org.au/index.php?sectionid=300
+http://www.atsi.org/MemberBenefits/
+http://www.atsnn.com/story/91066.html
+http://www.att.com/gov/voip.html
+http://www.attaboy300.com/6_dog_class.htm
+http://www.attackonamerica.net/operationnorthwoods.htm
+http://www.attainhome.com/
+http://www.attendsource.com/tsb/
+http://www.attendsource.com/tsb/default.asp
+http://www.atthetable.org/extprofile.asp
+http://www.attica.net/usd511/community/information/information.html
+http://www.atticvintage.com/atticpg2.html
+http://www.attitudetravel.com/
+http://www.attorneygeneral.jus.gov.on.ca/english/courts/scc/sccbook-ch6.asp
+http://www.attorneygeneral.jus.gov.on.ca/english/family/pgt/charbullet/bullet4.asp
+http://www.attra.org/attra-pub/cashcropping.html
+http://www.attra.org/attra-pub/organiccrop.html
+http://www.attretirees.org/Articles/Archive%202005/wsj_1-24-05.htm
+http://www.atu2.com/
+http://www.atug.com/andypatterns/rm1.htm
+http://www.atunity.org/nm/publish/news_67.html
+http://www.atvillustrated.com/feature_articles/atv_year_award/prairie650.html
+http://www.au.af.mil/au/awc/awcgate/awc-comm.htm
+http://www.au.af.mil/au/awc/awcgate/awcmedia.htm
+http://www.au.af.mil/au/awc/awcgate/frp/frpcr.htm
+http://www.au.af.mil/au/awc/awcgate/sab-uav/afrttech.htm
+http://www.au.gardenweb.com/forums/load/roses/msg1202291720811.html
+http://www.au.org/site/PageServer?pagename=press_delayfristtranscript
+http://www.au.org/site/PageServer?pagename=resources_brochure_faithbased
+http://www.aua-mirror.com/aua/library/toversionpolicy.htm
+http://www.aua.ac.uk/cpd/PG.cert.htm
+http://www.aua.ac.uk/pubs/pricingtheproduct.htm
+http://www.aubreyturner.org/index.php?/orglog/2004/09/
+http://www.auburn.edu/academic/disabilities/services.html
+http://www.auburn.edu/academic/liberal_arts/cmjn/cmse107/content.php?article.139
+http://www.auburn.edu/academic/liberal_arts/cmjn/cmse107/content.php?article.145
+http://www.auburn.edu/academic/liberal_arts/cmjn/cmse107/content.php?article.146
+http://www.auburn.edu/academic/liberal_arts/cmjn/cmse107/links.php?cat.2
+http://www.auburn.edu/academic/science_math/leach/docs/
+http://www.auburn.edu/administration/business_office/spending/no_po.html
+http://www.auburn.edu/~allenkc/difviews.html
+http://www.auburn.edu/~garriro/d1bohm.htm
+http://www.auburn.edu/~garriro/fk7trouble.htm
+http://www.auburn.edu/~garriro/tamchap1.htm
+http://www.auburn.edu/~johnspm/gloss/growth_theory
+http://www.auburn.edu/~murraba/explor/mcleanrl.html
+http://www.auburn.edu/~murraba/phon.html
+http://www.auca.org/month/project1298.html
+http://www.aucbm.org/english/activiti/research/research.htm
+http://www.aucegypt.edu/faculty/powers/303%5C303Exercises.htm
+http://www.aucta.com.au/projects/displayproject.cfm?pid=29
+http://www.auctioneers.org/conference/conf_ed.php
+http://www.auctionzip.com/cgi-bin/auctionlist.cgi?vuid=1606
+http://www.audata.co.uk/index.php
+http://www.audiblox2000.com/cognitiveskills.htm
+http://www.audiblox2000.com/dyslexia_dyslexic/dyslexia013.htm
+http://www.audiencedialogue.org/kya11b.html
+http://www.audio-t.co.uk/danztramp/walkdiary.html
+http://www.audio-technica.com/using/wireless/advanced/types.html
+http://www.audio-technica2.co.uk/pages/prs/pr.asp?prid=83
+http://www.audiocage.com/1800design.shtml
+http://www.audioenz.co.nz/2004/psb_alphaintro.shtml
+http://www.audioholics.com/news/pressreleases/EnergyReferenceConnoisseur.php
+http://www.audioholics.com/productreviews/loudspeakers/VonSchweikertAudioVR1Page1.html
+http://www.audioholics.com/techtips/audioprinciples/interconnects/audioquestDBScablesrespons.php
+http://www.audioholics.com/techtips/buyingguides/cablebudgetguidelines.php
+http://www.audioholics.com/techtips/buyingguides/interconnects/cable_budget.php
+http://www.audiologyonline.com/articles/arc_disp.asp?id=217
+http://www.audiologyonline.com/articles/pf_arc_disp.asp?id=782
+http://www.audiomidi.com/aboutus/reviews/zvonar_cantor.cfm
+http://www.audiorevolution.com/dvd/revs/buffyseason4.shtml
+http://www.audioscrobbler.com/forum/3/_/7885/0
+http://www.audiotools.com/ordabok.html
+http://www.audiovideo101.com/community/messageboard/displaycategory.asp?catid=9
+http://www.audit.nsw.gov.au/guides-bp/educat98/joint-op.htm
+http://www.audleytravel.com/SouthKorea.shtml
+http://www.audrie.com/open_house_selling.htm
+http://www.audubon.org/bird/at_home/SafeWindows.html
+http://www.audubon.org/campaign/latestnews.html
+http://www.audubon.org/chapter/oh/oh/
+http://www.audubon.org/local/cn/98march/cmas.html
+http://www.augc.aus-soaring.on.net/members/stories.html
+http://www.augcominc.com/whatsnew/ncs4.html
+http://www.augustachronicle.com/race04/
+http://www.augustafreepress.com/stories/storyReader$34583
+http://www.augustafreepress.com/stories/storyReader$35210
+http://www.augustaga.gov/
+http://www.augustaheritage.com/folklore.html
+http://www.aukml.org.uk/deadaug99.htm
+http://www.aukml.org.uk/deadjul00.htm
+http://www.auldhouse.co.nz/CTX-1222.aspx
+http://www.auldhouse.co.nz/CTX-1223AI.aspx
+http://www.aulis.com/nasa-sky-at-night.htm
+http://www.aum-engineering.com/conditions.html
+http://www.aumag.org/coverstory/march03cover.html
+http://www.aura-nio.noao.edu/book/ch4/4_3.html
+http://www.aurauk.com/uk/faqs.htm
+http://www.aurora.edu/catalog/ug04-06/programs/supplemental.htm
+http://www.aurorahealthcare.org/yourhealth/healthgate/getcontent.asp?URLhealthgate=%2222048.html%22
+http://www.auroravideosys.com/buy/termsConditions.html
+http://www.auroville.org/thecity/architecture/arch_regina_mudhousei.htm
+http://www.ausa.org/family/update_0505.html
+http://www.ausa.org/www/armymag.nsf/(all)/D8EC0662B39442CC85256F1D0071514C
+http://www.ausa.org/www/armymag.nsf/0/96A5D4A085D530B185256A370053A931?OpenDocument
+http://www.ausa.org/www/bookprog.nsf/0/624E93D130F122B085256C76004ED8C0?OpenDocument
+http://www.ausaid.gov.au/hottopics/easttimor/easttimor_factfind.cfm
+http://www.ausleisure.com.au/latestnewsDec04.html
+http://www.ausmedia.com.au/omnipg.htm
+http://www.ausport.gov.au/ethics/policy.asp
+http://www.ausport.gov.au/fulltext/1999/acc/icce/kieran1.htm
+http://www.ausport.gov.au/fulltext/2002/ascpub/FuelTennis.asp
+http://www.auspost.com.au/BCP/0,1080,CH2050%257EMO19,00.html
+http://www.auspost.com.au/BCP/0,1080,CH2111%257EMO19,00.html
+http://www.ausref.com/qld/brisbane/content/view/35/49/
+http://www.ausrun.com.au/
+http://www.aussielegal.com.au/informationoutline~nocache~1~SubTopicDetailsID~701.htm
+http://www.aussielegal.com.au/informationoutline~nocache~1~SubTopicDetailsID~972.htm
+http://www.aussieworld.com/newsletter/home.php
+http://www.austa.net/
+http://www.austal.com/product-range/defence-hssv.cfm
+http://www.austehc.unimelb.edu.au/guides/rees/REESS013.htm
+http://www.austehc.unimelb.edu.au/tia/778.html
+http://www.austen.com/derby/amanda2.htm
+http://www.austen.com/derby/elizac8b.htm
+http://www.austen.com/derby/melissr1.htm
+http://www.austen.com/derby/sarahbeth2.htm
+http://www.austen.com/derby/tamz2.htm
+http://www.austinactors.net/classes/
+http://www.austincc.edu/baldwin/Spring05/Itse1356WebPage/ITSE1356.htm
+http://www.austinchronicle.com/2005-01-28/pols_feature.html
+http://www.austinchronicle.com/issues/dispatch/1999-10-08/screens_feature4.html
+http://www.austinchronicle.com/issues/dispatch/1999-12-31/arts_feature.html
+http://www.austinchronicle.com/issues/dispatch/2000-03-10/pols_feature.html
+http://www.austinchronicle.com/issues/dispatch/2000-04-07/xtra_feature.html
+http://www.austinchronicle.com/issues/dispatch/2000-09-22/pols_feature.html
+http://www.austinchronicle.com/issues/dispatch/2000-09-29/xtra_feature6.html
+http://www.austinchronicle.com/issues/dispatch/2001-02-16/screens_feature3.html
+http://www.austinchronicle.com/issues/dispatch/2001-09-21/screens_feature.html
+http://www.austinchronicle.com/issues/dispatch/2001-10-26/books_feature.html
+http://www.austinchronicle.com/issues/dispatch/2003-05-02/pols_feature.html
+http://www.austinchronicle.com/issues/dispatch/2003-05-23/pols_naked3.html
+http://www.austinchronicle.com/issues/dispatch/2003-10-03/pols_feature.html
+http://www.austinchronicle.com/issues/dispatch/2003-10-17/pols_naked9.html
+http://www.austinchronicle.com/issues/dispatch/2004-03-12/pols_feature3.html
+http://www.austinchronicle.com/issues/dispatch/2004-05-07/screens_feature4.html
+http://www.austinchronicle.com/issues/dispatch/2005-01-28/pols_naked7.html
+http://www.austinchronicle.com/issues/dispatch/2005-03-04/screens_feature3.html
+http://www.austinchronicle.com/issues/dispatch/2005-05-20/arts_feature.html
+http://www.austinfilm.org/pov/takeone.php
+http://www.austinisd.org/inside/initiatives/cctltf/index.phtml
+http://www.austinmitchell.org/
+http://www.austinpostcard.com/lhistory.htm
+http://www.austinschools.org/allison/
+http://www.austinwebpros.com/mts/archives/2005/06/
+http://www.austlii.edu.au/au/other/IndigLRes/rciadic/regional/nsw-vic-tas/16.html
+http://www.austlii.edu.au/au/other/alrc/publications/reports/85/ch23.html
+http://www.austlii.edu.au/au/special/alta/alta95/verma.html
+http://www.austlii.edu.au/au/special/alta/alta95/warner.html
+http://www.austlii.edu.au/au/special/rsjproject/rsjlibrary/car/working_together/3.html
+http://www.austmus.gov.au/eureka/schools_earth_sciences/
+http://www.austplants-nsw.org.au/Yr6-Adapt.htm
+http://www.austrac.gov.au/text/publications/moneylaundestimates/chap11.html
+http://www.austrade.gov.au/corporate/layout/0,,0_S1-1_CORPXID0029-2_-3_PWB1181218-4_-5_-6_-7_,00.html
+http://www.australiabasket.com/NCA/nca.asp?NewsNo=19
+http://www.australiablog.com/archives/001851.shtml
+http://www.australiaday.gov.au/your_say2.asp
+http://www.australianbeers.com/culture/poms.htm
+http://www.australianpolitics.com/democracy/terms/federalism.shtml
+http://www.australianpolitics.com/executive/pm/quotes.shtml
+http://www.australianpolitics.com/news/2001/01-08-19.shtml
+http://www.australianpolitics.com/news/2004/10/04-10-30_latham.shtml
+http://www.australianpolitics.com/news/2004/11/04-11-10_gartrell.shtml
+http://www.australianprints.gov.au/Default.cfm?MnuID=SYM2/Nelson
+http://www.australiantelevision.net/bh/series4.html
+http://www.australianvolunteers.com/involved/publications/magazine/winter03/1382
+http://www.auswaertiges-amt.de/www/en/ausgabe_archiv?archiv_id=5467
+http://www.auswaertiges-amt.de/www/en/ausgabe_archiv?archiv_id=5474
+http://www.auswaertiges-amt.de/www/en/ausgabe_archiv?archiv_id=5948
+http://www.auswaertiges-amt.de/www/en/aussenpolitik/ausgabe_archiv?archiv_id=4037&bereich_id=11&type_id=3
+http://www.auswaertiges-amt.de/www/en/laenderinfos/laender/laender_ausgabe_archiv?land_id=162&a_type=Speeches&archiv_id=5035
+http://www.ausxip.com/fanfiction/d/decisions.html
+http://www.ausxip.com/startrek/barbeler/Medical_Emergeny.htm
+http://www.aut.org.uk/media/html/humanrightsactbriefing1.html
+http://www.aut.org.uk/media/html/sh_%20natfheconfspeech.html
+http://www.autc.gov.au/comp_projects.htm
+http://www.authenticityconsulting.com/act-lrn/a-l/coaching.htm
+http://www.authenticwatches.com/info.html
+http://www.author-illustr-source.com/sneedbcollard.htm
+http://www.author-network.com/gould.html
+http://www.author-network.com/wordplay.html
+http://www.authorhouse.com/BookStore/ItemDetail~BookID~25032.aspx
+http://www.authorized-amsoil-dealer-for-synthetic-motor-oil.com/amsoil_testimonies/satisfied_customers_cars/high-mileage-oil.php
+http://www.authorized-amsoil-dealer-for-synthetic-motor-oil.com/amsoil_testimonies/satisfied_customers_cars/oil-police-fleet.php
+http://www.authorized-amsoil-dealer-for-synthetic-motor-oil.com/amsoil_testimonies/satisfied_customers_trucks/amsoil-diesel-oil-going-409000-miles-without-oil-change.php
+http://www.authorsden.com/visit/viewPoetry.asp?AuthorID=22793
+http://www.authorsden.com/visit/viewShortStory.asp?AuthorID=14713&id=11910
+http://www.authorsden.com/visit/viewShortStory.asp?AuthorID=22254&id=14208
+http://www.authorsden.com/visit/viewarticle.asp?AuthorID=17759&id=12232
+http://www.authorsden.com/visit/viewarticle.asp?AuthorID=6274
+http://www.authorsden.com/visit/viewpoetry.asp?AuthorID=14826&id=138750
+http://www.authorsden.com/visit/viewpoetry.asp?AuthorID=2255&id=100946
+http://www.authorsden.com/visit/viewshortstory.asp?authorid=7013
+http://www.authorsden.com/visit/viewshortstory.asp?id=17404&AuthorID=16735
+http://www.autism-society.org/site/PageServer?pagename=TreatmentOptions
+http://www.autism.ca/whataut2.htm
+http://www.autismillinois.org/autprimer.htm
+http://www.autismtoday.com/articles/My-Experiences-with-Visual-Thinking-Sensory-Problems.htm
+http://www.autismwebsite.com/ari/newsletter/negative.htm
+http://www.autisticcuckoo.net/archive.php?id=2005/01/11/block-vs-inline-1
+http://www.autobarn.net/dus20030.html
+http://www.autoblog.com/entry/1234000790027564/
+http://www.autoblog.com/entry/5203211553364187/
+http://www.autoblography.co.uk/backblog/2002_11.php
+http://www.autobytel.com/
+http://www.autobytel.com/content/shared/articles/templates/index.cfm/article_page_order_int/3/article_id_int/237
+http://www.autodidactproject.org/my/phillife.html
+http://www.autodidactproject.org/other/markovic3.html
+http://www.autofieldguide.com/articles/030201.html
+http://www.autofieldguide.com/articles/119705.html
+http://www.autogeek.net/aboutus.html
+http://www.autoinsuraancequote.com/jersey-new.html
+http://www.autoinsuranceindepth.com/auto-insurance-glossary-n-w.html
+http://www.autoinsuranceindepth.com/standard-coverage.html
+http://www.autolawnsprinklers.com/
+http://www.autolinkspro.com/
+http://www.automaatioseura.fi/jaostot/mvn/mvn6/manipulator.html
+http://www.automags.org/forums/archive/index.php/t-163463
+http://www.automatedbuildings.com/news/jun05/articles/cctrls/cctrls.htm
+http://www.automatedbuildings.com/news/nov01/art/ics/ics.htm
+http://www.automationworld.com/articles/Departments/294.html
+http://www.automationworld.com/articles/Departments/294.html?ppr_key=11.2003&sky_key=11.2003&term=11.2003
+http://www.automationworld.com/cds_print.html?rec_id=294
+http://www.automedia.com/affiliate_site/autoCare/ccr20020501pf/ccr20020501pf.asp
+http://www.automotivedesignline.com/howto/bodyelectronics/164302553
+http://www.automotivedesignline.com/howto/infotainment/164302553
+http://www.automotivedesignline.com/howto/showArticle.jhtml?articleID=164302553
+http://www.automotivedesignline.com/showArticle.jhtml?printableArticle=true&articleId=164302553
+http://www.automotiveforums.com/vbulletin/t65283.html
+http://www.automotivejobbank.com/
+http://www.autonav2000.com/faq.asp
+http://www.autonews.com/
+http://www.autoserviceproviders.com/index.cfm
+http://www.autoshuttle.de/A13_en.html
+http://www.autospectator.com/modules/news/article.php?storyid=1514
+http://www.autotax.com/SantaBarbara.htm
+http://www.autotrader.com/research/research.jsp?restype=used
+http://www.autotraining.net/publication3.asp
+http://www.autotransportwatch.com/terms.htm
+http://www.autoworld.com/news/Saab/Saab_9-5_safety.htm
+http://www.auwp.org/HISTORY/history_.htm
+http://www.av1611.org/question/cqtool.html
+http://www.availablelightonline.com/blog/archives/2004/12/
+http://www.avaki.com/news/releases/20040302_61.html
+http://www.avalanche.ca/Forums/ShowPost.aspx?PostID=95
+http://www.avalanche.ca/Forums/ShowPost.aspx?PostID=98
+http://www.avalondesign.com/files_02.html
+http://www.avalonia.co.uk/magickal/david%20rankine/holly%20king%20oak%20king.htm
+http://www.avantek.co.uk/tsandcs.htm
+http://www.avastin.com/avastin/crcBrochure2.m
+http://www.avatara.com/operationignore0.html
+http://www.avdf.com/may96/java_puzzle.html
+http://www.avdf.com/multimedia/samp_neville1.html
+http://www.aved.gov.bc.ca/informedstudent/choosinginstitution.htm
+http://www.aved.gov.bc.ca/psfacilities/environmental/sec-six.htm
+http://www.avellunau.com/vortex/animals.htm
+http://www.avemariasingles.com/success/viewStory.cfm?storyID=28
+http://www.avencentral.org.uk/aven_central_area.php
+http://www.aventispharma-us.com/PIs/lantus_TXT.html
+http://www.averagegirlmagazine.com/Articles/Archive/0411Stuff02.htm
+http://www.avert.org/aafrica.htm
+http://www.avert.org/aidssouthafrica.htm
+http://www.avert.org/drugtreatment.htm
+http://www.avert.org/faq1.htm
+http://www.avert.org/hsexu1.htm
+http://www.avert.org/legislation.htm
+http://www.avert.org/ukaidsnews.htm
+http://www.avert.org/young.htm
+http://www.avert.org/ypbooks.htm
+http://www.avert.org/ypstory.htm
+http://www.averydennison.com/corporate.nsf/PG/LNB1C3_NChina_Operations?OpenDocument
+http://www.averydennison.com/corporate.nsf/PGBUILD/LNB1C3_NChina_Operations?OpenDocument&Click=
+http://www.averyoutdoors.com/stories/Avery_Canada_2003.html
+http://www.averytooley.com/stereo/?itemid=117
+http://www.averytooley.com/stereo/?itemid=368
+http://www.averytooley.com/stereo/?itemid=368&amp;catid=7&catid=7
+http://www.avforums.com/forums/archive/index.php/t-23895.html
+http://www.aviation-health.org/news/browse.php?action=shownews&category=&id=23&topicid=116
+http://www.aviation-health.org/news/browse.php?action=shownews&category=&id=23&topicid=298
+http://www.aviationintegrity.org/word-html/press09-13-02.html
+http://www.aviationtoday.com/cgi/rw/show_mag.cgi?pub=rw&mon=0401&file=0401exectrans.htm
+http://www.avilabeachca.com/march10_01.htm
+http://www.avionix.com/gpscompm.html
+http://www.avionix.com/instruments.html
+http://www.avionix.com/loran.html
+http://www.avionix.com/navcoms.html
+http://www.avip2001.net/OfficialDocuments_files/IOM_010416RD.htm
+http://www.avis.com.mx/english/pages/fra_historia.html
+http://www.avisynth.org/EnhancingDvdVideos
+http://www.avlerchess.com/chess-analysis/Method_in_chess_thinking_70042.html
+http://www.avma.org/careforanimals/animatedjourneys/pethealth/pethealth.asp
+http://www.avma.org/education/cvea/cvtea_faq.asp
+http://www.avma.org/onlnews/javma/dec01/s121501m.asp
+http://www.avma.org/onlnews/javma/feb05/050215a.asp
+http://www.avma.org/onlnews/javma/feb05/x050215a.asp
+http://www.avma.org/statevma/mtvma/default.htm
+http://www.avmaaux.org/info.html
+http://www.avninsider.com/stories/dave110602.shtml
+http://www.avo.alaska.edu/avo4/atlas/volc/spurr/spurr2004/
+http://www.avo.alaska.edu/faq.php
+http://www.avoca.ndirect.co.uk/enigma/enigma2.htm
+http://www.avonandsomerset.police.uk/DocumentsSystem/DownloadDocument.aspx?DocumentID=346
+http://www.avonromance.com.au/books/book_extract.cfm?ISBN=0732281024
+http://www.avonwalk.org/site/DocServer/2.5_New_York_Lead_Release_2004.pdf?docID=1573
+http://www.avopolis.gr/reviews/
+http://www.avtec.alaska.edu/IT-VIA.htm
+http://www.avweb.com/news/airman/184319-1.html
+http://www.aw-bc.com/catalog/academic/product/0,1144,0201485184-PRE,00.html
+http://www.awakenedwoman.com/sh_bari.htm
+http://www.awakenings.com/astronomy/l1.html
+http://www.aware.ie/online%20books/postnatal.html
+http://www.aware.ie/print/support_p.htm
+http://www.aware.ie/support.htm
+http://www.awb.iohome.net/
+http://www.awc.org/Publications/dca/dca3/
+http://www.awea.org/faq/putnam.html
+http://www.awea.org/faq/tutorial/wwt_basics.html
+http://www.awea.org/faq/tutorial/wwt_potential.html
+http://www.awea.org/greenpower/gp_policies1.html
+http://www.awea.org/news/news100899fbl.html
+http://www.awea.org/policy/
+http://www.awea.org/policy/ccwp.html
+http://www.awea.org/smallwind/texas.html
+http://www.aweighout.com/binge/binge_article2.shtml
+http://www.awerty.com/courtshiphtml2.html
+http://www.awerty.com/usher2.html
+http://www.awesomefilm.com/script/hannah.html
+http://www.awesomelibrary.org/Classroom/Social_Studies/Terrorism/Terrorist_Networks.html
+http://www.awfulplasticsurgery.com/
+http://www.awhaleofabook.com/chapter_3.htm
+http://www.awhonn.org/awhonn/?pg=875-3280-7560
+http://www.awi-wa.com/T_MISC.htm
+http://www.awid.org/go.php?list=analysis&prefix=msg&item=00124
+http://www.awid.org/go.php?stid=1441
+http://www.awildtexassoapbar.com/default.asp?pageid=27374
+http://www.awionline.org/Lab_animals/biblio/la-eval.htm
+http://www.awise.org/?q=node/54
+http://www.awm.gov.au/encyclopedia/greek_campaign.htm
+http://www.awm.gov.au/pm/detail.asp?surname=Hughes
+http://www.awma.org/journal/style.htm
+http://www.awmanet.org/dc/dc_cover0402.html
+http://www.awn.com/mag/issue2.1/articles/bevilacqua2.1.html
+http://www.awningsleeveshirt.com/
+http://www.awolbush.com/
+http://www.aworldconnected.org/article.php/483.html
+http://www.aworldconnected.org/article.php/489.html
+http://www.aworldconnected.org/article.php/558.html
+http://www.awprofessional.com/articles/article.asp?p=102614
+http://www.awprofessional.com/articles/article.asp?p=170934&seqNum=2
+http://www.awprofessional.com/articles/article.asp?p=26022
+http://www.awprofessional.com/articles/article.asp?p=30317&seqNum=2
+http://www.awprofessional.com/articles/article.asp?p=357692&seqNum=5
+http://www.awprofessional.com/articles/article.asp?p=379757
+http://www.awprofessional.com/catalog/product.asp?product_id=%7B83B0CC64-C967-41C0-89C7-F1A30260FAB0%7D
+http://www.awprofessional.com/catalog/product.asp?product_id=%7BFA5A9F65-F874-429D-AAE9-8C38974F09D7%7D
+http://www.awprofessional.com/title/0201734095
+http://www.awprofessional.com/title/0201745720
+http://www.awprofessional.com/title/0201775956
+http://www.awprofessional.com/titles/0201775948
+http://www.awqafsa.org.za/public_html/sorce/sustainable2.htm
+http://www.awsna.org/renbalance.html
+http://www.awsp.org/ProDev/pd-2k5-focusonmath.htm
+http://www.awt.org/membr_applic/2002%20memb_applic.htm
+http://www.awwa-hi.org/2_archives/03conf02.htm
+http://www.awwa.org/ace/registration.cfm?event=showEventTrackDetail&meeting=A05&detail=WED25&Track=ALL
+http://www.axcessnews.com/commodities_122204.shtml
+http://www.axcessnews.com/worldnews_011305b.shtml
+http://www.axel-hecht.de/blog/archives/000123.html
+http://www.axel-hecht.de/mt-cgi/mt-RdaREesio.cgi?entry_id=123
+http://www.axethetax.org.uk/
+http://www.axi.ca/TCA/sep2004/betterpractices_3.shtml
+http://www.aximsite.com/boards/archive/index.php/t-62001.html
+http://www.aximsite.com/boards/showthread.php?t=64935&page=1
+http://www.axiomsoftware.com/solutions/mishiring.asp
+http://www.axisoflogic.com/artman/publish/article_16043.shtml
+http://www.axisoflogic.com/artman/publish/article_17015.shtml
+http://www.axledentaldj.com/bpmstudioprofaq.html
+http://www.aya.yale.edu/reunions/ayaReunionInfo.asp?itemType=0&itemID=1300
+http://www.ayeconference.com/wiki/scribble.cgi?read=ProductionPracticesCheckList
+http://www.aylaw.com/bios/r_howell.html
+http://www.aylaw.com/bios/t_whiffen.html
+http://www.aylwardfamily.com/content/200306archive001.asp
+http://www.aypf.org/forumbriefs/2000/fb072700.htm
+http://www.aypf.org/forumbriefs/2005/fb3.18.05.htm
+http://www.aypf.org/tripreports/2002/tr120302.htm
+http://www.ayrshirehistory.org.uk/jsmith/jsmith.htm
+http://www.ayrunitedfc.co.uk/index.asp?p=news&newsid=240
+http://www.ayubmed.edu.pk/JAMC/PAST/14-3/IbrahimMansoor.htm
+http://www.ayubmed.edu.pk/JAMC/PAST/15-1/Shaukat%20DLC.htm
+http://www.ayurvedacollege.com/articles/Asthma1.htm
+http://www.azagel.com/music.html
+http://www.azaleacharities.com/aid.htm
+http://www.azarms.com/nov2001.htm
+http://www.azc.org/azc-zendo-etiquette.html
+http://www.azcardinals.com/news/news_details.html?iid=2878
+http://www.azcentral.com/
+http://www.azcentral.com/business/columns/articles/0124action24.html
+http://www.azcentral.com/families/articles/0824famphonecheating.html
+http://www.azcentral.com/families/articles/1227fam_parenting12251.html
+http://www.azcentral.com/health/kids/articles/0404navajoboy04.html
+http://www.azcentral.com/home/garden/articles/0924putting24.html
+http://www.azcentral.com/news/articles/0202IraqTurnout02-ON.html
+http://www.azcentral.com/news/election/
+http://www.azcentral.com/news/wn.html
+http://www.azcentral.com/specials/special11/articles/0107asuteam09.html
+http://www.azcentral.com/specials/special28/articles/0322evroads22Z12.html
+http://www.azcentral.com/specials/special50/articles/0502guinn0502.html
+http://www.azcentral.com/style/articles/0122eyecream.html
+http://www.azchords.com/b/beatles-tabs-410/shesleavinghome-tabs-101050.html
+http://www.azeri.org/Azeri/az_latin/latin_articles/latin_text/latin_73/eng_73/73_redties.html
+http://www.azfamily.com/news/fireseason/stories/KTVKLNews20050527.2b6096375.html
+http://www.azfamily.com/news/local/stories/KTVKLNews20050622.358dcb9b.html
+http://www.azgita.gov/policies_standards/html/p800_s885_physical_security.htm
+http://www.azh.org/Conservation/azh_cons_grant_app.htm
+http://www.azhikers.org/reports/urique.htm
+http://www.azjungle.com/zonenetbusinessopportunity.html
+http://www.azkidsnet.com/freddy.htm
+http://www.azleg.state.az.us/FormatDocument.asp?inDoc=/legtext/47leg/1R/adopted/H.2462-SE-TRANS.DOC.htm
+http://www.azlyrics.com/lyrics/victoriabeckham/iwish.html
+http://www.azmc.org/aboutus.asp?from=founders
+http://www.azom.com/details.asp?ArticleID=2617
+http://www.azonano.com/news_old.asp?newsID=122
+http://www.azpost.state.az.us/integrity_bulletin/Integrity%20Bulletin%20Vol%2013.htm
+http://www.azpost.state.az.us/integrity_bulletin/Integrity%20Bulletin%20Vol%2020.htm
+http://www.azstarnet.com/dailystar/relatedarticles/20192.php
+http://www.azstarnet.com/dailystar/relatedarticles/57606.php
+http://www.azstarnet.com/neweconomy/biotech1.html
+http://www.azstarnet.com/sn/golf/58725.php
+http://www.azstarnet.com/sn/health/58878.php
+http://www.azstarnet.com/sn/vote_president/45978.php
+http://www.aztriad.com/dl071899.html
+http://www.azundris.com/hacks/ideas/
+http://www.azzcardfile.com/collections/transcriptionists.html
+http://www.b-1st.com/site.php/8.html
+http://www.b-s-h.org.uk/bulletin00.htm
+http://www.b.shuttle.de/wifo/finn/sc-01-c4.htm
+http://www.b2s.com/termsofuse.php
+http://www.b3ta.com/board/2208988
+http://www.b3ta.com/newsletter/issue175/
+http://www.b3ta.com/newsletter/issue185/
+http://www.b975.com/listingsEntry.asp?ID=245621&PT=Community
+http://www.ba.kent.edu:1443/QueryFilter.asp
+http://www.baads.org/news.htm
+http://www.baal.org.uk/seminar_102.htm
+http://www.baas.ac.uk/resources/asib/asibdets.asp?ordernum=7829&head=7829
+http://www.babalublog.com/cgi-bin/mt/valment.cgi?entry_id=1858
+http://www.babcp.org.uk/training/cbtcourses.htm
+http://www.babraham.co.uk/commercial_2.html
+http://www.babybumblebee.com/company/parent_com.cfm
+http://www.babycenter.com/baby/babydevelopment/
+http://www.babycenter.com/baby/babydevelopment/index
+http://www.babycenter.com/bc/plus/readyornot/?binky=CON:TNAV:PLS
+http://www.babycenter.com/comments/baby/babycare/babysoothing/13460
+http://www.babycenter.com/comments/baby/babydevelopment/2347
+http://www.babycenter.com/comments/baby/babyritual/9849
+http://www.babycenter.com/comments/baby/babytravel/11770
+http://www.babycenter.com/comments/pregnancy/pregcomplications/252
+http://www.babycenter.com/comments/pregnancy/prenatalhealth/1480
+http://www.babycenter.com/comments/toddler/toddlerdevelopment/6847
+http://www.babycenter.com/development
+http://www.babycenter.com/dilemma/toddler/toddlerbehavior/1353987.html
+http://www.babycenter.com/dilemma/toddler/toddlerdevelopment/1409439.html
+http://www.babycenter.com/dilemma/toddler/toddlerfeeding/300.html
+http://www.babycenter.com/expert/2709.html
+http://www.babycenter.com/expert/baby/babydevelopment/2347.html
+http://www.babycenter.com/expert/baby/babydevelopment/6569.html
+http://www.babycenter.com/expert/preconception/gettingpregnant/1404503.html
+http://www.babycenter.com/expert/toddler/toddlerdevelopment/14007.html
+http://www.babycenter.com/expert/toddler/toddlerdevelopment/6847.html
+http://www.babycenter.com/general/fetaldevelopment/pregnancy/1290794.html
+http://www.babycenter.com/refcap/1480.html
+http://www.babycenter.com/refcap/baby/babybreastfeed/8910.html
+http://www.babycenter.com/refcap/baby/babydevelopment/6903.html
+http://www.babycenter.com/refcap/baby/babytravel/6991.html
+http://www.babycenter.com/refcap/baby/postpartumsex/1282147.html
+http://www.babycenter.com/refcap/preconception/gettingpregnant/1307393.html
+http://www.babycenter.com/refcap/preconception/gettingpregnant/2915.html
+http://www.babycenter.com/refcap/pregnancy/pregnancynutrition/3542.html
+http://www.babycenter.com/refcap/pregnancy/prenatalhealth/1480.html
+http://www.babycenter.com/refcap/pregnancy/prenatalhealth/1480.html?ccRelLink=&url=%2Fgeneral%2F9254.html&xTopic=prenattest&bus=content
+http://www.babycenter.com/refcap/toddler/toddlerdevelopment/11739.html
+http://www.babycenter.com/refcap/toddler/toddlerdevelopment/1213788.html
+http://www.babycenter.com/refcap/toddler/toddlerdevelopment/6507.html
+http://www.babycenter.com/refcap/toddler/toddlerritual/9833.html
+http://www.babycentre.co.uk/bbs/536611/
+http://www.babycentre.co.uk/bbs/545588/
+http://www.babycentre.co.uk/expert/2069.html
+http://www.babycentre.co.uk/expert/561011.html
+http://www.babycentre.co.uk/refcap/178.html
+http://www.babycentre.co.uk/refcap/196.html
+http://www.babycentre.co.uk/refcap/3585.html
+http://www.babycentre.co.uk/refcap/545272.html
+http://www.babycentre.co.uk/refcap/550468.html
+http://www.babycentre.co.uk/refcap/7864.html
+http://www.babycentre.co.uk/tips/1551.html
+http://www.babycentre.co.uk/tips/1614.html
+http://www.babycentre.co.uk/tips/559067.html
+http://www.babycentre.co.uk/tips/563827.html
+http://www.babyfeathers.net/fine_print.htm
+http://www.babyfriendly.org.uk/uklaw.asp
+http://www.babynames.com.au/Child-Development/0-3-months.htm
+http://www.babynames.com.au/Child-Development/3-6-months.htm
+http://www.babynames.com.au/Child-Development/6-9-months.htm
+http://www.babynamesofireland.com/pages/boy-names-a-c.html
+http://www.babynamesworld.com/forum/topic22513.html
+http://www.babypolargear.com/infant_car_seat_cover.htm
+http://www.babyshopmagazine.com/fall00/mistakes.htm
+http://www.babyswimming.com/Bio.htm
+http://www.babyuniverse.com/cat.asp?store=baby&catid=173&secid=16&lang=
+http://www.babyuniverse.com/pro.asp?store=baby&lang=&id=67852&catid=173
+http://www.babyworld.co.uk/information/birth/birth_plan/bethhomebirthplan.asp
+http://www.babyzone.com/features/content/display.asp?ContentID=1571
+http://www.babyzone.com/features/expertsqa/default.asp?QAID=15559&ExpertID=1
+http://www.bach-cantatas.com/Articles/Keyboard-Temperament%5BFrancis%5D-FB-2.htm
+http://www.bachsociety.com/constitution.html
+http://www.back-to-iraq.com/archives/000218.php
+http://www.back.com/articles-chicken.html
+http://www.back2college.com/asktheexpertsforum.htm
+http://www.back2college.com/asktheexpertsforum1104a.htm
+http://www.back2college.com/bookshelf2.htm
+http://www.backache.md/
+http://www.backandforthfilms.com/pages/films/facevalueproject.html
+http://www.backcare.co.uk/solutions/desk
+http://www.backcare.co.uk/solutions/desk?print_bool=1
+http://www.backfreechurch.co.uk/History/history.htm
+http://www.backpacker.co.uk/rugbyabfranceweekendcoach.htm
+http://www.backpacker.co.uk/rugbyausfranceweekend.htm
+http://www.backpacker.co.uk/rugbyausfranceweekendcoach.htm
+http://www.backpacker.ie/article.php?id=219
+http://www.backpackgeartest.org/reviews/Packs/Infant%20and%20Child%20Carriers/Yakima%20Grasshopper%20Child%20Carrier/Curt%20Peterson/Long%20Term%20Report/
+http://www.backpackgeartest.org/reviews/Shelters/Hammocks/Lawson%20Hammock/David%20Foote/2nd%20Report/
+http://www.backpackgeartest.org/reviews/Sleep%20Gear/Pads%20and%20Air%20Mattresses/Bozeman%20Mountain%20Works%20TorsoLite/Jim%20Sabiston/Initial%20Report/
+http://www.backpackgeartest.org/reviews/Snow%20Gear/Snowshoes/MSR%20Denali%20Classics/MSR%20Denali%20Classic%20Snowshoes%20%20Marge%20Prothman/
+http://www.backpacking.net/bad-back.html
+http://www.backpacking.net/soapbox.html
+http://www.backspace.com/notes/topic/energy
+http://www.backstage.com/backstage/features/article_display.jsp?vnu_content_id=1000964042
+http://www.backstage.com/backstage/news/article_display.jsp?vnu_content_id=1000781078
+http://www.backtothebible.org/gateway/today/18562
+http://www.backtothebible.org/gateway/today/18673
+http://www.backtothebible.org/gateway/today/20842
+http://www.backtothebible.org/gateway/today/20917
+http://www.backtothebible.org/radio/today/
+http://www.backtothecottage.co.uk/ffc.htm
+http://www.backwoodshome.com/articles/silveira58.html
+http://www.backwoodshome.com/articles/williams45.html
+http://www.backwoodshome.com/articles2/chance88.html
+http://www.backwoodshome.com/energy.html
+http://www.backwoodshome.com/store/files/anws.html
+http://www.backyardgardener.com/article/greenhouse.html
+http://www.backyardgardener.com/organic/oct00.htm
+http://www.backyardobservatories.com/comments.htm
+http://www.bacp.co.uk/prof_conduct/faq.html
+http://www.bacp.co.uk/prof_conduct/subject_complaint.html
+http://www.bacp.co.uk/shop/terms.html
+http://www.bad.org.uk/doctors/guidelines/aids.asp
+http://www.badanalysis.com/blog/
+http://www.badanalysis.com/blog/?m=200303
+http://www.badastronomy.com/bablog/
+http://www.badastronomy.com/bablog/?p=33
+http://www.badastronomy.com/bablog/?p=67
+http://www.badbishops.com/leu/cathchur.htm
+http://www.baddteddy.com/stories/baby.htm
+http://www.badfaithinsurance.org/reference/HL/0119a.htm
+http://www.badgeraap.org/index.shtml
+http://www.badgerrealty.com/services.html
+http://www.badgirls.co.uk/arc/arc_s3/arc_s3ep11.html
+http://www.badgirlsonly.com/mardi-gras-2005.htm
+http://www.badil.org/Publications/Press/2001/press204-01.htm
+http://www.badmanrecordingco.com/buy/default.aspx?productDetail=bread
+http://www.badmintoncentral.com/forums/showthread.php?goto=lastpost&t=23804
+http://www.badmothersclub.co.uk/jsp/index.jsp?lnk=306
+http://www.badmovieplanet.com/3btheater/i/idrinkyourblood.html
+http://www.badmovies.org/movies/attackmars/
+http://www.badrap.org/rescue/myths.cfm
+http://www.badsamaritan.com/authors/mg.php
+http://www.badsamaritan.com/original/archives/001934.php
+http://www.badsoftware.com/sepg.htm
+http://www.bae.ncsu.edu/programs/extension/publicat/postharv/ag-413-7/
+http://www.bae.ncsu.edu/programs/extension/publicat/wqwm/he419.html
+http://www.baeabermaw.com/Weddings/YourWedding.htm
+http://www.baekdal.com/articles/Usability/usable-XMLHttpRequest/
+http://www.baen.com/chapters/W200011/0671319744___1.htm
+http://www.baen.com/chapters/W200308/0743436199___3.htm
+http://www.baen.com/chapters/W200408/0743488415___1.htm
+http://www.baen.com/library/home.htm
+http://www.baen.com/library/palaver6.htm
+http://www.bafa.de/1/en/tasks/01_control.htm
+http://www.bafrenz.com/birds/Belize03/BZ3-C8.htm
+http://www.bag2002.co.uk/
+http://www.bagelhole.org/article.php/Miscellaneous/340/
+http://www.bagelhole.org/article.php/Transportation/171/
+http://www.bagheera.com/inthewild/van_anim_turtle.htm
+http://www.bagroup.com/Pages/briefs/empress_walk.html
+http://www.bahaibookstore.com/client/client_pages/bahai_glossary.cfm
+http://www.bahrain.bnpparibas.com/en/information/legal_information.asp
+http://www.bainbridgeisland.org/vobis/
+http://www.bajr.org/ResourcesLinks/ChooseResourceAll.asp
+http://www.bajr.org/ResourcesLinks/ChooseResourceRecordsLegal.asp
+http://www.bajr.org/ResourcesLinks/ChooseResourceRecordsMagazine.asp
+http://www.bakercommunications.com/
+http://www.bakersfieldcondors.com/condors_town/events.asp
+http://www.bakkermarine.com/search.php?attempt=1
+http://www.bakkermarine.com/search.php?attempt=1&condition=1
+http://www.bakkermarine.com/search.php?attempt=1&searchstyle=2
+http://www.balaams-ass.com/alhaj/append-9.htm
+http://www.balagan.org.uk/war/1700/rules_1700.htm
+http://www.balance-and-dizziness.com/
+http://www.balancetv.ca/balancetv/client/en/Obesity_Special/DetailNews.asp?idNews=3
+http://www.baldrus.com/askthebaldguy.shtml
+http://www.baldwins.com.au/a_precgtasset.htm
+http://www.bali-information.com/expat_forum/viewtopic.php?p=9485
+http://www.baliblog.com/
+http://www.baliblog.com/03-01/may-i-sit-here.html
+http://www.balihilton.com/corp/links14.html
+http://www.balispirit.com/food/
+http://www.balkan-speleo.org/modules.php?name=News&file=article&sid=7
+http://www.ballet-dance.com/200403/
+http://www.ballet-dance.com/200411/articles/ABT20041024.html
+http://www.balloontales.com/articles/tutorial/part2.html
+http://www.ballot-access.org/2004/0501.html
+http://www.ballymena.gov.uk/economic.asp
+http://www.ballymoney.gov.uk/htmlsite/heritage.asp?id=22&step=2&pstring=13,22
+http://www.ballymoney.gov.uk/htmlsite/heritage.asp?id=22&step=2&pstring=13,22&output=print
+http://www.ballymoney.gov.uk/htmlsite/heritagedetails.asp?id=40
+http://www.balticon.org/
+http://www.baltimorepsych.com/On_Beyond_Ritalin.htm
+http://www.baltimorepsych.com/aspergers.htm
+http://www.baltimoreravens.com/template.php?subsection=single_news_show&section=press&content_id=5678&section_id=109
+http://www.baltimoresun.com/news/local/bal-hit29,1,1293257.story?coll=bal-home-headlines
+http://www.baltimoresun.com/news/local/howard/bal-ho.eligibility02feb02,1,6162961.story?coll=bal-local-howard
+http://www.balynce.com/breyer/
+http://www.bambi.net/bob/homebrew.html
+http://www.bamburghresearchproject.co.uk/media.htm
+http://www.bamford.com.au/rampump/qa.htm
+http://www.bampfa.berkeley.edu/exhibits/rubens/essays/essay01.html
+http://www.bampfa.berkeley.edu/exhibits/rubens/essays/essay02.html
+http://www.bampfa.berkeley.edu/exhibits/rubens/exhibition/head5detail.html
+http://www.banbloodsports.com/pqs.htm
+http://www.banc.org.uk/ecosarta/arts23_1/ecosart3.html
+http://www.bandbhac.org.uk/cr192-111999.html
+http://www.bandddesigns.com/energy/
+http://www.bandlife.com/stories.cfm?getstory=714
+http://www.bandlink.net/forum/topic.asp?ARCHIVE=true&TOPIC_ID=21976
+http://www.bandlink.org/director/minute98.htm
+http://www.bandsupplies.co.uk/Disclaimer.asp
+http://www.banffcentre.ca/media_room/Media_Releases/Arts_MVA/2002/020111_WIDC.htm
+http://www.banfffilmlab.com/digitalimage.html
+http://www.bangitout.com/reviews83.html
+http://www.bangkok-hotel.net/go/faq.htm
+http://www.bangkokpost.co.th/election2005/norteast.html
+http://www.bangkokpost.net/News/
+http://www.bangkokpost.net/ecoreviewye2004/health.html
+http://www.bangkokpost.net/ecoreviewye2004/media.html
+http://www.bangkokpost.net/education/site2002/cvdc1801.htm
+http://www.bangkokpost.net/education/site2003/cvoc0703.htm
+http://www.bangkokpost.net/education/site2003/ftdc2303.htm
+http://www.bangkokpost.net/education/site2005/wnfb0805.htm
+http://www.bangkokpost.net/scorecard2005/
+http://www.bangladesh.embassy.gov.au/consular.htm
+http://www.bangladeshobserveronline.com/young/p1_2.htm
+http://www.bangor.ac.uk/ml/abroad.htm
+http://www.bangor.ac.uk/ml/mmlc-eng.htm
+http://www.bangthecorner.com/da/14430
+http://www.bangthecorner.com/default.asp?m=da&id=14430
+http://www.bank.guide2care.com/
+http://www.bankdirector.com/issues/articles.pl?article_id=10002
+http://www.bankdirector.com/issues/articles.pl?article_id=10005
+http://www.bankdirector.com/issues/articles.pl?article_id=11509
+http://www.bankdirector.com/issues/articles.pl?article_id=11509&V=1
+http://www.bankdirector.com/issues/articles.pl?article_id=11512&V=1
+http://www.bankdirector.com/issues/articles.pl?article_id=11649
+http://www.bankdirector.com/supplements/articles.pl?article_id=10969
+http://www.bankdirector.com/supplements/articles.pl?article_id=11309
+http://www.bankerme.com/bme/2003/may/risk_management_2.asp
+http://www.bankersonline.com/lending/ci-appraisaleval.html
+http://www.bankersonline.com/security/fraudgallery1002.html
+http://www.banking.state.tx.us/exec/speeches/04-14-98.htm
+http://www.banknotes.com/pricelst.htm
+http://www.bankofamerica.com/creditcards/application/modules/mod_page_popup.cfm?product_id=mexicana_plat_visa&content=tc_print&
+http://www.bankofamerica.com/military/index.cfm?view=DISCLOSURE
+http://www.bankofamerica.com/newsroom/pr/pr-lobs.cfm
+http://www.bankofamerica.com/newsroom/press/archives.cfm?LOBID=8
+http://www.bankofamerica.com/newsroom/presskits/
+http://www.bankofamerica.com/newsroom/presskits/view.cfm?page=climateandforests
+http://www.bankofamerica.com/smallbusiness/creditcards/data/terms_popup.cfm?app=alaska_air_creditcard&orig=&nav=
+http://www.bankofamerica.com/supplierdiversity/index.cfm?template=sddi_faqs_ov.cfm
+http://www.bankofbotswana.bw/article.php?articleid=143
+http://www.bankofcanada.ca/en/famescript.htm
+http://www.bankofcanada.ca/en/repo_comments.htm
+http://www.bankofcanada.ca/en/speeches/2004/sp04-5.htm
+http://www.bankofcanada.ca/en/speeches/spde01.htm
+http://www.bankofengland.co.uk/education/poundsandpence/
+http://www.bankofengland.co.uk/education/targettwopointzero/mpframework/independentBankEngland.htm
+http://www.bankofengland.co.uk/inflationreport/infrep.htm
+http://www.bankofengland.co.uk/mpc/
+http://www.bankofengland.co.uk/publications/speeches/monetary.htm
+http://www.bankofengland.co.uk/speeches/speech138.htm
+http://www.bankofengland.co.uk/speeches/speech97.htm
+http://www.bankofireland.ie/html/gws/personal/buy_house/step_by_step.html
+http://www.bankofireland.ie/html/gws/personal/credit_card/faqs/
+http://www.bankofireland.ie/html/gws/personal/insurance/terms.html
+http://www.bankofscotland.ie/company/articles/article4.htm
+http://www.bankofscotlandhalifax.co.uk/creditcards/secure_faqs.shtml
+http://www.bankofscotlandhalifax.co.uk/savingsandisas/halifax_impinfo.shtml
+http://www.bankofthejames.com/disclaimer.htm
+http://www.bankone.com/answers/BolAnswersDetail.aspx?top=you&segment=PFS&topic=DebitCards&item=UnitedMileagePlusTHEONECard
+http://www.bankone.com/answers/BolAnswersDetail.aspx?top=you&segment=PFS&topic=Promotion&item=SettingUpPayees
+http://www.bankrate.com/brm/cheap_home.asp
+http://www.bankrate.com/brm/cheap_home.asp?link=2
+http://www.bankrate.com/brm/itax/edit/news/stories/news_071900.asp
+http://www.bankrate.com/brm/itax/tips/20010319a.asp
+http://www.bankrate.com/brm/itax/tips/20010327a.asp
+http://www.bankrate.com/brm/news/advice/20031223a1.asp?prodtype=advice
+http://www.bankrate.com/brm/news/auto/20001129a.asp
+http://www.bankrate.com/brm/news/auto/20040413a1.asp
+http://www.bankrate.com/brm/news/bank/20020823c.asp
+http://www.bankrate.com/brm/news/biz/Cashflow_banking/20021002a.asp
+http://www.bankrate.com/brm/news/checkup/savings2.asp
+http://www.bankrate.com/brm/news/debt/20021018a.asp
+http://www.bankrate.com/brm/news/mtg/20010111a.asp
+http://www.bankrate.com/brm/news/mtg/20010830a.asp
+http://www.bankrate.com/brm/news/mtg/20010830a.asp?prodtype=loan
+http://www.bankrate.com/brm/news/real-estate/20030918a1.asp
+http://www.bankrate.com/brm/news/real-estate/20040910a2.asp?print=on
+http://www.bankrate.com/brm/rate/movingon_home.asp
+http://www.banktech.com/features/showArticle.jhtml?articleID=14701469
+http://www.banktech.com/news/showArticle.jhtml?articleID=164302111
+http://www.banktech.com/showArticle.jhtml?articleID=56900373
+http://www.banktech.com/story/showArticle.jhtml?articleID=59200015
+http://www.banned-books.com/truth-seeker/1995archive/122_2/ts222n.html
+http://www.bannerofliberty.com/
+http://www.banneroflove.net/issues/2000s/2002/2002-01_tour.htm
+http://www.banterist.com/archivefiles/000213.html
+http://www.banyule.vic.gov.au/content.aspx?TopicID=823
+http://www.baobabtravel.com/Zambia/lower_zambezi_national_park.shtm
+http://www.bapo.com/BAPOConf2005.php
+http://www.baptist-health.com/orthopedics/faqs/faqs.asp?s=7
+http://www.baptist2baptist.net/Issues/Marriage/MohlerFeb062004.asp
+http://www.baptist2baptist.net/Issues/Marriage/MohlerOct292003.asp
+http://www.baptistboard.com/ubb/ultimatebb.php/topic/3/2745/2.html
+http://www.baptisthealth.net/greystone/content.jsp?pageid=P00148
+http://www.baptistonline.org/health/healthieryou/family/CurbCompulsiveSpend.asp
+http://www.baptistonline.org/health/healthieryou/family/cyclestress.asp
+http://www.baptistregional.com/brmc.cfm
+http://www.baptistregional.com/brmc.cfm?renderforprint=1
+http://www.barabooyoga.com/wisconsin_acting_classes.html
+http://www.baraita.net/blog/archives/2005_01.html
+http://www.baraita.net/blog/archives/2005_05.html
+http://www.barbadosadvocate.com/NewViewNewsleft.cfm?Record=20342
+http://www.barbara-bell.com/alzheimers.html
+http://www.barbarabretton.com/books/chances_are/index.shtml
+http://www.barbarafeldman.com/cat_working_at_home.html
+http://www.barbaralarock.com/presentations.htm
+http://www.barbarasehr.com/
+http://www.barbsbooks.com/LITguide.htm
+http://www.barbsbooks.com/newARV1.htm
+http://www.barbsbooks.com/physical.htm
+http://www.barca.fsnet.co.uk/punic-wars-muhlberger.htm
+http://www.barcelona-tourist-guide.com/access-barcelona-disabled.html
+http://www.barcelonareview.com/20/e_ln.htm
+http://www.barcelonareview.com/28/e_jk.htm
+http://www.barcelonareview.com/32/e_ka.htm
+http://www.barclays.com/supplier/aiming_high_feedback.html
+http://www.barcouncil.org.uk/document.asp?documentid=2886&languageid=1
+http://www.barcouncil.org.uk/document.asp?documentid=2968&languageid=1
+http://www.barcouncil.org.uk/document.asp?languageid=1&documentid_ddl=1258&documentid=2488&original_documentid=1258
+http://www.barefootsworld.net/13essay.html
+http://www.barefootsworld.net/bftwrite.html
+http://www.barefootsworld.net/monsterunderbed.html
+http://www.barficulture.com/community/chilling/topic.php/150239/
+http://www.barficulture.com/reality/article.php/culture/154/
+http://www.bargainseeker.com.au/warranty.html
+http://www.barking-dagenham.gov.uk/5-work/business/commercial-to-let.cfm
+http://www.barna.org/FlexPage.aspx?Page=BarnaUpdate&BarnaUpdateID=97
+http://www.barnard.edu/dance/majorpage.html
+http://www.barnard.edu/fitbear/flex.htm
+http://www.barnard.edu/hr/info.htm
+http://www.barnesandnoble.com/drweil/index.asp
+http://www.barnesjewish.org/groups/default.asp?NavID=2029
+http://www.barnesreview.org/July_2003/Robert_F/robert_f.html
+http://www.barnsley.gov.uk/education/doing_business.asp
+http://www.barnsleyfc.premiumtv.co.uk/page/MatchReports/0,,10309~27050,00.html
+http://www.barnstablepatriot.com/legals__doc_26_6519.html
+http://www.baronage.co.uk/bphtm-01/badges02.html
+http://www.baronage.co.uk/bphtm-03/hogarth1.htm
+http://www.baroquemusic.org/barvlnbo.html
+http://www.baroquetrumpet.com/trombones.htm
+http://www.barr-rosin.ca/chinese/fields/c1.html
+http://www.barr-rosin.ca/english/fields/c1.html
+http://www.barracudanetworks.com/support/instant_replacement.php
+http://www.barronvangortoth.com/?con=bunny&doc=bunny/vol005
+http://www.barrowdowns.com/
+http://www.barrowlawfirm.com/
+http://www.barrycomp.com/safety_rep190105.htm
+http://www.barryd.com/Airsoft/airsoftreviews.htm
+http://www.barryfarber.com/arton/ibd.html
+http://www.barrymoltz.com/book/
+http://www.barse.org/blog/archives/2004_09.html
+http://www.bartcop.com/
+http://www.bartcop.com/diebold.htm
+http://www.barthanderson.com/wordblog/2005.06.01_arch.html
+http://www.bartleby.com/1004/13.html
+http://www.bartleby.com/11/9006.html
+http://www.bartleby.com/124/pres31.html
+http://www.bartleby.com/124/pres41.html
+http://www.bartleby.com/124/pres59.html
+http://www.bartleby.com/187/3.html
+http://www.bartleby.com/197/33.html
+http://www.bartleby.com/268/10/7.html
+http://www.bartleby.com/268/2/8.html
+http://www.bartleby.com/268/4/3.html
+http://www.bartleby.com/302/1802.html
+http://www.bartleby.com/320/2/3.html
+http://www.bartleby.com/33/1001.html
+http://www.bartleby.com/45/5/205.html
+http://www.bartleby.com/61/5.html
+http://www.bartleby.com/70/1743.html
+http://www.bartlett.ucl.ac.uk/dpu/programmes/msc_dp/ued.htm
+http://www.baruch.cuny.edu/magazine/fall04/notes1.html
+http://www.basc.org.uk/content/choosingadogarticle
+http://www.base21.org/show/show.php?p_cd=0&p_dv=0&p_docnbr=29789
+http://www.base21.org/show/show.php?p_cd=205&p_dv=0&p_docnbr=29789
+http://www.baseball-almanac.com/articles/george_steinbrenner_biography.shtml
+http://www.baseball-almanac.com/hero/hero2002a.shtml
+http://www.baseball-almanac.com/teams/kcratte.shtml
+http://www.baseball-almanac.com/yearly/yr1903n.shtml
+http://www.baseball-almanac.com/yearly/yr1927a.shtml
+http://www.baseball-almanac.com/yearly/yr1927n.shtml
+http://www.baseball-almanac.com/yearly/yr1989a.shtml
+http://www.baseball-almanac.com/yearly/yr1989n.shtml
+http://www.baseball-fever.com/showthread.php?t=23035
+http://www.baseball-fever.com/showthread.php?t=6235
+http://www.baseballevolution.com/asher/what.html
+http://www.baseballprospectus.com/article.php?articleid=1974
+http://www.baseballprospectus.com/news/20020620balls.shtml
+http://www.baseballthinkfactory.org/files/primer/discussion/sorry_for_the_technical_problems/
+http://www.basecamphq.com/
+http://www.basees.org.uk/~conference/abstracts-abc.html
+http://www.basegear.com/hotbuys.html
+http://www.baselinedgsi.com/applications/case_hist8.asp
+http://www.baselinemag.com/print_article2/0,2533,a=132584,00.asp
+http://www.baselinemag.com/print_article2/0,2533,a=152141,00.asp
+http://www.basementideas.com/mag.php
+http://www.basenta.co.uk/useful_links/viagra_europe.html
+http://www.baseops.net/basictraining/airforce.html
+http://www.basic-skills.co.uk/site/page.php?cms=4&p=264&action=changetextSize&txtsz=plus
+http://www.basicint.org/WT/pubs.htm
+http://www.basicint.org/WT/smallarms/main.htm
+http://www.basicint.org/pubs/BReports/BR77.htm
+http://www.basicint.org/pubs/NATObref.htm
+http://www.basicint.org/pubs/Notes/BN041118.htm
+http://www.basicint.org/pubs/Research/1998nuclearfutures5.htm
+http://www.basiclaw.net/Principles/Competitive%20Governments.htm
+http://www.basicsoftrading.com/journal/2002-3/03-08/
+http://www.basictechnologies.gov.uk/site/about/default.cfm?subcat=TechTransfer
+http://www.basketball-drills-and-plays.com/youth-basketball-drills.html
+http://www.basketball.unsw.edu.au/Administration/Meetings/2002/Minutes/05/
+http://www.basketball.unsw.edu.au/Administration/Meetings/2002/Minutes/06/
+http://www.basketballvideosusa.com/passing
+http://www.bassettrealty.com/area_information.htm
+http://www.basspro.com/servlet/catalog.CFPage?&mode=article&objectID=29715&cmid=AOL3_Bass_Tackle
+http://www.bassresource.com/fishing/bass_tournament_strategies.html
+http://www.bastards.org/bq/bq15/babylife.htm
+http://www.bastun.nu/documents/minutes06102001.htm
+http://www.basw.co.uk/articles.php?articleId=83
+http://www.batcon.org/binb/doityourself.html
+http://www.batcon.org/discover/rabies.html
+http://www.bateylink.org/policypontealdia.htm
+http://www.batguano.com/Xqueenofprussia.html
+http://www.bath.ac.uk/bucs/accept-regs.shtml
+http://www.bath.ac.uk/bucs/outhours.shtml
+http://www.bath.ac.uk/esml/profiles/german.htm
+http://www.bath.ac.uk/internal/news/fbstrikeupdate.htm
+http://www.bath.ac.uk/internal/news/promotions-nov04
+http://www.bath.ac.uk/internal/news/tsunami-support
+http://www.bath.ac.uk/international-office/orientation/
+http://www.bath.ac.uk/physics/pgadmissions/
+http://www.bath.ac.uk/staff-development/sdu/service%20level.htm
+http://www.bathnes.gov.uk/BathNES/transportandroads/transportationstrategy/plansandstrategies/LocalTransportPlan/default.htm
+http://www.bathspa.ac.uk/about/profiles/profile.asp?user=academic%5Chilt1
+http://www.bathspa.ac.uk/prospectus/students-union.asp
+http://www.bathwindsorhotel.com/location/mendips.html
+http://www.batnet.com/mfwright/sputnik.html
+http://www.batnet.com/seeandsea/latest/mag3roe_2.html
+http://www.batod.org.uk/index.php?id=/batod/regions/scotland/scotcurrentnews.htm
+http://www.batory.org.pl/art/cultural-policy/guidelines.html
+http://www.batteryinflux.com/interviews/digizine.htm
+http://www.batterysavers.com/
+http://www.battle.net/war2/gs/control.shtml
+http://www.battle.net/war3/basics/specialcommands.shtml
+http://www.battleforaustralia.org.au/kokoda11.html
+http://www.battlefront.co.nz/Article.asp?ArticleID=324
+http://www.battleoffulford.org.uk/ev_york_tidal.htm
+http://www.baudline.com/manual/average.html
+http://www.bauerinnercity.co.uk/pages/news.htm
+http://www.bauhaus.de/english/bauhaus1919/zeittafel1919.htm
+http://www.bavaria.com/misc/useful_us.html
+http://www.bavf.org/shaft/010430.htm
+http://www.bawtc.com/company/membership.asp?PartnerID=
+http://www.baxka.com/hcmc.htm
+http://www.baxter.com/about_baxter/news_room/news_releases/2005/04-11-05-sackett.html
+http://www.baxterregional.org/body.cfm?id=51
+http://www.bayarea-redcross.org/topnav/news/2004/sept04.htm
+http://www.baycongroup.com/education/ed_ESL.htm
+http://www.baycouples.com/articles/first_time.html
+http://www.baydog.com/dogads2.htm
+http://www.bayer.com/stockholders-newsletter-1q2005-id1405/financial_statements/notes.php
+http://www.bayercropscienceus.com/=file:Labels%20MSDS/20050112170600109974094437384248/file
+http://www.bayerdiag.com/conditions_of_use.cfm
+http://www.bayhealth.org/hipaa/faq.asp
+http://www.bayislandsvoice.com/
+http://www.bayjournal.com/article.cfm?article=2464
+http://www.bayjournal.com/article.cfm?article=66
+http://www.baylor.edu/hr_services/index.php?id=1784
+http://www.baylor.edu/pr/news.php?action=story&story=1681
+http://www.baylor.edu/pr/news.php?action=story&story=5283
+http://www.baylor.edu/scholarships/index.php?id=1994
+http://www.baylor.edu/student_union/index.php?id=8194
+http://www.baymarineelectronics.co.nz/ordering.html
+http://www.baynature.com/2002julysept/etg_2002julysept.html
+http://www.bayrose.co.uk/faqs.htm
+http://www.bayshoreeducational.com/bkintro.html
+http://www.bayst-search-engine-optimization.com/large-seo-companies.html
+http://www.baytown.org/
+http://www.bazelon.org/newsroom/10-24-02overlandpark.htm
+http://www.bba.org.uk/bba/jsp/polopoly.jsp?d=122&a=393
+http://www.bba.org.uk/bba/jsp/polopoly.jsp?d=143&a=5653&view=print
+http://www.bba.org.uk/bba/jsp/polopoly.jsp?d=145
+http://www.bba.org.uk/bba/jsp/polopoly.jsp?d=145&a=5067
+http://www.bba.org.uk/bba/jsp/polopoly.jsp?d=223
+http://www.bba.org.uk/bba/jsp/polopoly.jsp?d=259&a=3545
+http://www.bbaf-arts.org.uk/sites/bbaf/art-in-env/cat.asp?cat=13
+http://www.bbaf-arts.org.uk/sites/bbaf/art-in-env/cat.asp?cat=4
+http://www.bbb.org/alerts/article.asp?ID=441
+http://www.bbbsilicon.org/news_Nov2003.html
+http://www.bbc.co.uk/6music/shows/music_week/debate_manchester.shtml
+http://www.bbc.co.uk/africalives/features/girl.shtml
+http://www.bbc.co.uk/asiannetwork/presenters/top40_soundtracks_no23.shtml
+http://www.bbc.co.uk/bbctwo/listings/programme.shtml?day=monday&service_id=4286&filename=20050207/20050207_2140_4286_48618_20
+http://www.bbc.co.uk/beasts/teachers/what_killed_dinosaurs.shtml
+http://www.bbc.co.uk/blackcountry/uncovered/walk_through_time/03.shtml
+http://www.bbc.co.uk/blast/music/faq/faq33.shtml
+http://www.bbc.co.uk/blast/music/faq/faq34.shtml
+http://www.bbc.co.uk/burmese/forum/story/2004/09/040909_nld_central_comm_revival.shtml
+http://www.bbc.co.uk/cbeebies/grownups/about_cbeebies/shows/somethingspecial.shtml?ss_teachers
+http://www.bbc.co.uk/cbeebies/tikkabilla/music/wish.shtml
+http://www.bbc.co.uk/comedy/guide/articles/y/yesminister_7777145.shtml
+http://www.bbc.co.uk/comedy/news/2004/11/12/15432.shtml
+http://www.bbc.co.uk/commissioning/contacts/index.shtml?genre=D&category=EB&template=contacts.tmpl&data=contacts.dat
+http://www.bbc.co.uk/commissioning/contacts/index.shtml?genre=L&category=EB&template=contacts.tmpl&data=contacts.dat
+http://www.bbc.co.uk/commissioning/marketresearch/audiencegroup3.shtml
+http://www.bbc.co.uk/communicate/archive/sonofgod/page1.shtml
+http://www.bbc.co.uk/crime/caseclosed/florence1.shtml
+http://www.bbc.co.uk/crime/caseclosed/rillingtonplace.shtml
+http://www.bbc.co.uk/crime/caseclosed/simpsoncase.shtml
+http://www.bbc.co.uk/crime/fighters/dayinthelife/btp.shtml
+http://www.bbc.co.uk/crime/law/becomingapoliceofficer.shtml
+http://www.bbc.co.uk/crime/law/communitylegalservice.shtml
+http://www.bbc.co.uk/devon/news_features/2004/chilli_farmers.shtml
+http://www.bbc.co.uk/dna/collective/A1316071
+http://www.bbc.co.uk/dna/h2g2/A3031949
+http://www.bbc.co.uk/dna/h2g2/A734933
+http://www.bbc.co.uk/dna/h2g2/alabaster/A524242
+http://www.bbc.co.uk/dna/h2g2/alabaster/A536410
+http://www.bbc.co.uk/dna/ican/A2369892
+http://www.bbc.co.uk/dna/ican/speedbumps
+http://www.bbc.co.uk/dna/ww2/A3026693
+http://www.bbc.co.uk/dna/ww2/Help-Technical
+http://www.bbc.co.uk/dna/ww2/Story-Sort
+http://www.bbc.co.uk/education/beyond/factsheets/changing_r_z.shtml
+http://www.bbc.co.uk/education/beyond/factsheets/printable/changing_rz_print.html
+http://www.bbc.co.uk/election97/background/parties/panblair2.htm
+http://www.bbc.co.uk/essex/features/gardening/december_2004.shtml
+http://www.bbc.co.uk/films/2001/05/04/romeo_juliet_1996_review.shtml
+http://www.bbc.co.uk/films/2004/06/01/daniel_radcliffe_emma_watson_rupert_grint_azkaban_interview.shtml
+http://www.bbc.co.uk/food/tv_and_radio/vegtalk_brazilian.shtml
+http://www.bbc.co.uk/freshstart/start_a_business/tools.shtml
+http://www.bbc.co.uk/gardening/tv_and_radio/ginvaders_ten.shtml
+http://www.bbc.co.uk/health/conditions/bedwetting1.shtml
+http://www.bbc.co.uk/health/conditions/cancer/usefulcontacts_index5.shtml
+http://www.bbc.co.uk/health/talking/features/stress.shtml
+http://www.bbc.co.uk/history/scottishhistory/modern/features_modern_women.shtml
+http://www.bbc.co.uk/history/scottishhistory/union/features_union_jacobites.shtml
+http://www.bbc.co.uk/history/war/wwone/battle_passchendaele.shtml
+http://www.bbc.co.uk/history/war/wwtwo/allies_at_war_04.shtml
+http://www.bbc.co.uk/holbycity/reviews/20050503.shtml
+http://www.bbc.co.uk/holiday/destinations/roundtheworld_5/index.shtml
+http://www.bbc.co.uk/homes/design/period_artscrafts.shtml
+http://www.bbc.co.uk/info/licencefee/
+http://www.bbc.co.uk/info/policies/pdf/dig_rev_5sportsextra.htm
+http://www.bbc.co.uk/info/policies/producer_guides/text/elections.shtml
+http://www.bbc.co.uk/info/report99/board3b.shtml
+http://www.bbc.co.uk/info/statements2004/docs/commitments.htm
+http://www.bbc.co.uk/insideout/yorkslincs/series7/mugging.shtml
+http://www.bbc.co.uk/jersey/content/articles/2004/09/01/collinson_oz_4_feature.shtml
+http://www.bbc.co.uk/jobs/about/breadthofservices.shtml
+http://www.bbc.co.uk/jobs/nss/
+http://www.bbc.co.uk/jobs/ourculture/meettheteam/6music/antony_bellekom.shtml
+http://www.bbc.co.uk/jobs/ourculture/meettheteam/6music/miles_mendoza.shtml
+http://www.bbc.co.uk/jobs/ourculture/meettheteam/6music/sarah_cohen.shtml
+http://www.bbc.co.uk/jobs/privacy/index.shtml
+http://www.bbc.co.uk/learning/returning/betterlearner/studyskills/b_control_04.shtml
+http://www.bbc.co.uk/learning/returning/betterlearner/studyskills/b_control_10.shtml
+http://www.bbc.co.uk/learning/returning/betterlearner/studyskills/d_reading_01.shtml
+http://www.bbc.co.uk/learning/returning/betterlearner/studyskills/f_notetaking_05.shtml
+http://www.bbc.co.uk/learning/returning/betterlearner/studyskills/j_essays_01.shtml
+http://www.bbc.co.uk/london/carnival/travel_tips_2004.shtml
+http://www.bbc.co.uk/london/entertainment/films/carryonlondon.shtml
+http://www.bbc.co.uk/london/walks/whattodo.shtml
+http://www.bbc.co.uk/manchester/music/2004/07/12/doors_review.shtml
+http://www.bbc.co.uk/music/classical/reviews/macmillan_sparks.shtml
+http://www.bbc.co.uk/music/experimental/reviews/gybe_yanqui.shtml
+http://www.bbc.co.uk/music/pop/reviews/davidsneddon_sevenyears.shtml
+http://www.bbc.co.uk/music/urban/reviews/50cent_getrich.shtml
+http://www.bbc.co.uk/nationonfilm/location/north/
+http://www.bbc.co.uk/nature/animals/features/298feature1.shtml
+http://www.bbc.co.uk/nature/animals/features/329feature1.shtml
+http://www.bbc.co.uk/nature/animals/mammals/explore/behaviour.shtml
+http://www.bbc.co.uk/nature/wildfacts/animals_a_z.shtml
+http://www.bbc.co.uk/nature/wildfacts/factfiles/3002.shtml
+http://www.bbc.co.uk/nature/wildfacts/factfiles/681.shtml
+http://www.bbc.co.uk/northamptonshire/features/poetry_prose/2004/write/richard_ridley_03.shtml
+http://www.bbc.co.uk/northernireland/oyb/benefits/pensions_part-time_victory.shtml
+http://www.bbc.co.uk/northernireland/talkni/ask_kathy_fulcher.shtml
+http://www.bbc.co.uk/northyorkshire/greedypig/food/reviews/restaurants/plunketts.shtml
+http://www.bbc.co.uk/northyorkshire/iloveny/devolution/your_parliament/index.shtml
+http://www.bbc.co.uk/northyorkshire/sport/football/york_city_fc/have_your_say.shtml
+http://www.bbc.co.uk/ouch/features/fernandez.shtml
+http://www.bbc.co.uk/ouch/tvradio/thisismyfamily/julie_aboutmyhusband.shtml
+http://www.bbc.co.uk/oxford/murder/messageboard.shtml
+http://www.bbc.co.uk/parenting/family_matters/you_dad.shtml
+http://www.bbc.co.uk/parenting/your_kids/teen_risky.shtml
+http://www.bbc.co.uk/parenting/your_kids/toddlers_listentalk1.shtml
+http://www.bbc.co.uk/politics97/devolution/scotland/briefing/1707.shtml
+http://www.bbc.co.uk/politics97/devolution/scotland/briefing/history.shtml
+http://www.bbc.co.uk/pressoffice/commercial/worldwidestories/pressreleases/2002/01_january/xmas_sales_figures.shtml
+http://www.bbc.co.uk/pressoffice/pressreleases/stories/2004/05_may/18/westons_warriors.shtml
+http://www.bbc.co.uk/pressoffice/pressreleases/stories/2004/06_june/29/bpv.shtml
+http://www.bbc.co.uk/pressoffice/pressreleases/stories/2005/01_january/20/girl.shtml
+http://www.bbc.co.uk/pressoffice/pressreleases/stories/2005/03_march/08/kapil_dev.shtml
+http://www.bbc.co.uk/pressoffice/pressreleases/stories/2005/04_april/08/new_tricks.shtml
+http://www.bbc.co.uk/pressoffice/pressreleases/stories/2005/04_april/08/new_tricks_guests.shtml
+http://www.bbc.co.uk/pressoffice/pressreleases/stories/2005/04_april/27/proms.shtml
+http://www.bbc.co.uk/pressoffice/pressreleases/stories/2005/05_may/26/africa_cafe_intro.shtml
+http://www.bbc.co.uk/pressoffice/speeches/stories/thompson_churches.shtml
+http://www.bbc.co.uk/radio1/onelife/personal/relationships/comingout.shtml
+http://www.bbc.co.uk/radio1/onelife/personal/safety/rape_janestory.shtml
+http://www.bbc.co.uk/radio2/shows/criticallist/must_have_diamonddogs.shtml
+http://www.bbc.co.uk/radio2/shows/wright/web_archive.shtml
+http://www.bbc.co.uk/radio2/soldonsong/genres/analysis/soul.shtml
+http://www.bbc.co.uk/radio2/soldonsong/songlibrary/reasontobelieve.shtml
+http://www.bbc.co.uk/radio2/soldonsong/songlibrary/yourviews/one.shtml
+http://www.bbc.co.uk/radio3/africaonyourstreet/shaheeraasante.shtml
+http://www.bbc.co.uk/radio3/intune/rednose.shtml
+http://www.bbc.co.uk/radio4/arts/bookclub/running3.shtml
+http://www.bbc.co.uk/radio4/factual/intouch_transcript_20041102.shtml
+http://www.bbc.co.uk/radio4/factual/intouch_transcript_20041130.shtml
+http://www.bbc.co.uk/radio4/factual/intouch_transcript_20050215.shtml
+http://www.bbc.co.uk/radio4/news/bh/this_week.shtml
+http://www.bbc.co.uk/radio4/reith2003/lecture2.shtml
+http://www.bbc.co.uk/radio4/reith2005/lecture3.shtml
+http://www.bbc.co.uk/radio4/science/casenotes_tr_20050531.shtml
+http://www.bbc.co.uk/radio4/science/migration_schedule.shtml
+http://www.bbc.co.uk/radio4/today/listenagain/
+http://www.bbc.co.uk/radio4/youandyours/?focuswin
+http://www.bbc.co.uk/rd/milestones/1980s.shtml
+http://www.bbc.co.uk/relationships/sex_and_sexual_health/stis_hivaids.shtml
+http://www.bbc.co.uk/religion/programmes/search/2prog2.shtml
+http://www.bbc.co.uk/religion/religions/islam/beliefs/sharia/practical.shtml
+http://www.bbc.co.uk/schools/victorians/parents/contents.shtml
+http://www.bbc.co.uk/schools/wordsandpictures/teachers/phonemeinfo.shtml
+http://www.bbc.co.uk/science/horizon/2000/boyturnedgirl.shtml
+http://www.bbc.co.uk/science/horizon/2001/parallelunitrans.shtml
+http://www.bbc.co.uk/science/horizon/2002/columbusqa.shtml
+http://www.bbc.co.uk/science/humanbody/body/factfiles/heart/heart.shtml
+http://www.bbc.co.uk/science/humanbody/mind/surveys/brainsex/index.shtml
+http://www.bbc.co.uk/science/humanbody/tv/teenspecies/index.shtml
+http://www.bbc.co.uk/science/space/exploration/astronaut/part1.shtml
+http://www.bbc.co.uk/scotland/education/as/tech/shared_area/index.shtml?glossary
+http://www.bbc.co.uk/scotland/education/as/tech/shared_area/index_wwww.shtml?glossary
+http://www.bbc.co.uk/scotland/education/bitesize/standard/french/speaking_writing/planning_rev4.shtml
+http://www.bbc.co.uk/scotland/education/bitesize/standard/other/sos/chemistry/general_questions/index.shtml
+http://www.bbc.co.uk/scotland/history/scotlandonfilm/map/location.shtml?borders
+http://www.bbc.co.uk/scotland/sportscotland/
+http://www.bbc.co.uk/stoke/sport/non_league/index.shtml
+http://www.bbc.co.uk/suffolk/content/articles/2005/02/17/sitting_pretty_review_feature.shtml
+http://www.bbc.co.uk/tees/content/articles/2005/01/26/tsunami_gig_feature.shtml
+http://www.bbc.co.uk/thefuture/text/bbc_bpv_chap1.html
+http://www.bbc.co.uk/tyne/sport/localradio/index.shtml
+http://www.bbc.co.uk/wales/eisteddfodarts03/artist/richard-bevan.shtml
+http://www.bbc.co.uk/wales/info/review_2003/connecting_audiences_television.shtml
+http://www.bbc.co.uk/wales/mid/sites/ilovewales/pages/hotels.shtml
+http://www.bbc.co.uk/wales/mid/sites/weird/pages/martin.shtml
+http://www.bbc.co.uk/wales/music/sites/howto/pages/television.shtml
+http://www.bbc.co.uk/wales/northeast/guides/weird/ufos/pages/vallecrucis.shtml
+http://www.bbc.co.uk/wales/northeast/sites/flintshire/pages/ysceifiog.shtml
+http://www.bbc.co.uk/wales/northeast/sites/rhyl_town/pages/memories.shtml
+http://www.bbc.co.uk/wales/northeast/yoursay/topics/cameras15.shtml
+http://www.bbc.co.uk/wales/northeast/yoursay/topics/rhyl.shtml
+http://www.bbc.co.uk/wales/northwest/sites/football/pages/roundup100404.shtml
+http://www.bbc.co.uk/wales/northwest/sites/history/pages/johngriffiths.shtml
+http://www.bbc.co.uk/wales/northwest/sites/mystory/pages/pilot.shtml
+http://www.bbc.co.uk/wales/northwest/yoursay/topics/speed_cams.shtml
+http://www.bbc.co.uk/wales/oceanrow/daily/update2.shtml
+http://www.bbc.co.uk/wales/raiseyourgame/motivation/goal_setting/rick_evans.shtml
+http://www.bbc.co.uk/wales/scrumv/archive/hook/rugby-writing-42.shtml
+http://www.bbc.co.uk/wales/scrumv/onthebox/tvcoverage/index.shtml
+http://www.bbc.co.uk/wales/scrumv/social/rugbywritings/englandeffects.shtml
+http://www.bbc.co.uk/wales/southeast/sites/ilovewales/pages/scary.shtml
+http://www.bbc.co.uk/wales/southeast/sites/weird/pages/nation066.shtml
+http://www.bbc.co.uk/wales/southeast/yoursay/topics/travel_roads24.shtml
+http://www.bbc.co.uk/wales/southwest/nature/features/pages/gardens2709.shtml
+http://www.bbc.co.uk/wales/southwest/webguide/pages/nature.shtml
+http://www.bbc.co.uk/wales/southwest/yoursay/topics/traffic.shtml
+http://www.bbc.co.uk/wales/surfing/sites/features/pages/duckdiving.shtml
+http://www.bbc.co.uk/wales/walestoday/pages/walestodayon2w.shtml
+http://www.bbc.co.uk/weather/features/understanding/lightning_strike.shtml
+http://www.bbc.co.uk/weather/help.shtml
+http://www.bbc.co.uk/webwise/celeb/melc.shtml
+http://www.bbc.co.uk/worldservice/learningenglish/youmeus/learnit/learnit_archive.shtml
+http://www.bbc.co.uk/worldservice/people/features/ihavearightto/four_b/programmes_archive.shtml
+http://www.bbc.co.uk/writersroom/writing/tvdrama_p5.shtml
+http://www.bbc.net/
+http://www.bbc.net/index.shtml
+http://www.bbc.tv/insideout/yorkslincs/series7/mugging.shtml
+http://www.bbcanada.com/bb_traveller/edition31/
+http://www.bbcenglish.com/tv/engzone/prog20.html
+http://www.bbcworld.com/content/template_clickonline.asp?pageid=666&co_pageid=16
+http://www.bbcworld.com/content/template_customer_faq.asp?pageid=29
+http://www.bbcworld.com/content/whatpage.asp?pageid=29
+http://www.bber.umt.edu/content/?x=1113,1117,1114,1123,1115,1116
+http://www.bbg.org/gar2/topics/kitchen/handbooks/chile/3.html
+http://www.bbhighway.com/Talk/Coach%20Library/reviews/Videos/RMiller_pressure_review.asp
+http://www.bbhq.com/bomrgenx.htm
+http://www.bbhq.com/thiz0726.htm
+http://www.bbk.ac.uk/ccs/courses/
+http://www.bbk.ac.uk/hr/nursery.html
+http://www.bblog.com/viewtopic.php?t=146
+http://www.bbnola.com/bylaws.asp
+http://www.bbonline.com/oh/sassafras/history.html
+http://www.bbsgov.org/ana_vol2/Chapter2.htm
+http://www.bbsrc.ac.uk/news/features/02jan/02_01_transporter.html
+http://www.bbsunshinecoast.com/standards.php
+http://www.bc.edu/bc_org/ath/plex/membership/rules.htm
+http://www.bc.edu/bc_org/avp/soe/academics/grad/masters/ed_admin/default.html
+http://www.bc.edu/bc_org/avp/soe/cihe/newsletter/News34/text012.htm
+http://www.bc.edu/bc_org/research/cjl/Documents/dabru_emet.htm
+http://www.bc.edu/bc_org/rvp/pubaf/04/StarLedgerCameraMouse.html
+http://www.bc.edu/offices/policies/meta-elements/doc/policies/IV/4-700-100.shtml
+http://www.bc.edu/offices/stserv/academic/current/exams/
+http://www.bc.edu/schools/law/lawreviews/meta-elements/journals/bclawr/42_1/04_TXT.htm
+http://www.bc.edu/schools/law/lawreviews/meta-elements/journals/bclawr/45_1/04_TXT.htm
+http://www.bca-europe.com/main.asp?page=89
+http://www.bca.ac.uk/prospectus/site/equestr.html
+http://www.bcab.org.uk/
+http://www.bcaction.org/Pages/SearchablePages/2001Newsletters/Newsletter064C.html
+http://www.bcbs.com/tec/vol18/18_07.html
+http://www.bcbs.com/tec/vol19/19_02.html
+http://www.bcbudget.gov.bc.ca/annualreports/wlap/Report_on_Performance.htm
+http://www.bccba.org/Guest_Lounge/dialcontent.asp?id=120
+http://www.bccf.bc.ca/learn/coup_confl.html
+http://www.bccf.com/ecoed/Teachers/bkgrgriz.html
+http://www.bccla.org/positions/discrim/83vismin.html
+http://www.bccla.org/positions/freespeech/85keegstra.html
+http://www.bcconservatives.ca/history/
+http://www.bccresearch.com/advmat/GB185.html
+http://www.bccresearch.com/advmat/GB196B.html
+http://www.bccresearch.com/advmat/GB196C.html
+http://www.bccresearch.com/archive/C178.html
+http://www.bccresearch.com/biotech/B114R.html
+http://www.bccresearch.com/biotech/B186.html
+http://www.bccresearch.com/biotech/C184R.html
+http://www.bccresearch.com/chem/C184R.html
+http://www.bccresearch.com/food/C203.html
+http://www.bccresearch.com/food/GA101.html
+http://www.bcdc.ca.gov/nam/comm/1999/091699cm.htm
+http://www.bce.ca/en/news/releases/bc/2004/09/16/71654.html
+http://www.bced.gov.bc.ca/irp/germ512/12ucs.htm
+http://www.bced.gov.bc.ca/irp/he1112/fos12fpp.htm
+http://www.bced.gov.bc.ca/irp/math1012/pm10prrf.htm
+http://www.bcen.bc.ca/bcerart/Vol10/eco-cert.htm
+http://www.bcentral.cl/eng/funorg/organiclaw/law04.htm
+http://www.bcfamilylaw.ca/samesex.html
+http://www.bcfamilylawresource.com/04/0400body.htm
+http://www.bcfamilylawresource.com/08/0801body.htm
+http://www.bcfamilylawresource.com/definition%20pop%20ups.html
+http://www.bcfilmclass.com/home.htm
+http://www.bcgcertification.org/resources/heraldry.html
+http://www.bcgs.ca/mememail.htm
+http://www.bch.org.uk/parents_carers/hospitalfacilities.htm
+http://www.bchealthguide.org/healthfiles/hfile41k.stm
+http://www.bchealthguide.org/kbase/dp/topic/aa37799/dp.htm
+http://www.bchealthguide.org/kbase/nord/nord717.htm
+http://www.bchealthguide.org/kbase/nord/nord832.htm
+http://www.bchomesforsale.com/view/shuswap/lori/Default.htm
+http://www.bci.org/prophecy-fulfilled/pk7.htm
+http://www.bcjunction.com/logos.shtml
+http://www.bclumbertrade.com/faq.htm
+http://www.bcmfindings.net/vol1/is4/03apr_m.htm
+http://www.bcmpa.bc.ca/2004_olympics.htm
+http://www.bcnys.org/ppi/drive.htm
+http://www.bcodp.org.uk/
+http://www.bcpl.net/~lmoskowi/hounds/intro/VALL.HTM
+http://www.bcpl8s.ca/boer/chapter1.htm
+http://www.bcpolitics.ca/int_spacewar.htm
+http://www.bcps.org/offices/lis/models/highcore.html
+http://www.bcps.org/offices/lis/models/middle.html
+http://www.bcps.org/offices/lis/models/sub_abuse/
+http://www.bcpsea.bc.ca/public/emplgroups/teacher/eservices/esarchive.html
+http://www.bcpublicservice.ca/workforce/erip/increaseop.htm
+http://www.bcr.com/bcrmag/2005/06/p18.php
+http://www.bcrea.bc.ca/publications/2004-03-29.htm
+http://www.bcrescue.org/epilepsy.html
+http://www.bcs-hci.org.uk/hci2004/confprog-showpapers.asp?pcid=6&t=Workshop
+http://www.bcs-hci.org.uk/hci2005/overview.asp
+http://www.bcs.org/BCS/News/ThoughtLeadership/pastdebates/ITSystems.htm
+http://www.bcs.org/BCS/Products/Publications/JournalsAndMagazines/ComputerBulletin/OnlineArchive/mar02/needtoknow.htm
+http://www.bcschools.net/staff/PowerPointHelp.htm
+http://www.bcsfootball.org/news.cfm?headline=15
+http://www.bcsfootball.org/news.cfm?headline=43
+http://www.bctf.bc.ca/ResearchReports/97tr01/
+http://www.bctf.bc.ca/ResearchReports/97wlc01/
+http://www.bctf.bc.ca/education/health/ResponseOnSchoolFacilities.html
+http://www.bctop100.com/convention_centers.htm
+http://www.bctop100.com/mangement.htm
+http://www.bcwa.co.uk/companygroups/pref/whatisnt.aspx
+http://www.bd.com/leaving/?/thermometers/howto/
+http://www.bd.com/vacutainer/labnotes/Volume14Number2/
+http://www.bda-dentistry.org.uk/advice/news.cfm?ContentID=1357
+http://www.bda-dentistry.org.uk/advice/news.cfm?ContentID=1525
+http://www.bda-dentistry.org.uk/advice/news.cfm?ContentID=871
+http://www.bda.uk.com/BBC_office_weight_loss.html
+http://www.bdcl.org/History1.htm
+http://www.bdcu.org.au/BDDR/bddr12no2/stupa.html
+http://www.bdonline.co.uk/magazine/html/14_May_2004.html
+http://www.be-central.be/modules.php?op=modload&name=phpBB_14&file=index&action=viewtopic&topic=878&7
+http://www.be.com.au/conditions%20of%20use/default.asp
+http://www.be.udel.edu/business/faculty/kent/kentcv.html
+http://www.be.wvu.edu/grad/msir/
+http://www.beacham.com/
+http://www.beachbody.com/forums/T250102273.jsp
+http://www.beachbody.com/forums/T786106563.jsp
+http://www.beachdestinations.com/Cancun_Hotels/Oasis_Cancun_All_Inclusive.asp
+http://www.beachwalker.com/CharlestonEvents.html
+http://www.beachwatchnj.com/
+http://www.beachwed.com/reservations.htm
+http://www.beaconfellowship.org.uk/press_releases.asp?rel=1049
+http://www.beadandbutton.com/bnb/community/forum/topic.asp?TOPIC_ID=6748
+http://www.beadandbutton.com/bnb/community/forum/topic.asp?page=-1&TOPIC_ID=6748&REPLY_ID=66433
+http://www.beadandbutton.com/bnb/community/forum/topic.asp?page=-1&TOPIC_ID=6748&REPLY_ID=69410
+http://www.beadandbutton.com/bnb/community/forum/topic.asp?page=-1&TOPIC_ID=6748&REPLY_ID=71588
+http://www.beadesigngroup.com/blog/archives/2005/01/grid_systems.html
+http://www.beadnell.org/harbour/
+http://www.beadstylemag.com/bds/community/forum/topic.asp?page=2&TOPIC_ID=5666
+http://www.beahr.com/privacy.aspx?language=0
+http://www.beakman.com/feet/feet-smell.html
+http://www.beale.af.mil/9RW_PA/community.asp
+http://www.bealenet.com/~wchapel/serForgiveness.html
+http://www.beanogas.com/living.asp?AID=7
+http://www.bear.org/Kids/Black_Bear_Facts_Kids.html
+http://www.beardeddragon.org/bjive/viewtopic.php?t=13579
+http://www.beardyfreak.com/rvPrime.htm
+http://www.bearinfo.org/FAQ.htm
+http://www.bearlakemichigan.org/wellhead/wellhead2.html
+http://www.bearstudy.org/Educational_Outreach/Museum_Exhibit.htm
+http://www.beartown.co.uk/sectionviewer.asp?ID=70
+http://www.beatletracks.com/bt45chron.html
+http://www.beaumonthospitals.com/pls/portal30/cportal30.webpage?l_recent=P00342
+http://www.beaumonthospitals.com/pls/portal30/cportal30.webpage?l_recent=P07260
+http://www.beautifuldecay.com/faq.html
+http://www.beauty507.allabout156.info/
+http://www.beauty522.allabout158.info/Mature-Changing-Body-Man-Hair.html
+http://www.beautybeyond50.com/links-humor.htm
+http://www.beautybymatt.com/Wigs.html
+http://www.beauxarts-wa.gov/BOA_Minutes/boa0405.htm
+http://www.beauxarts-wa.gov/Ords/ord267_consol.htm
+http://www.beavercreekreserve.org/BCR/Upcoming%20Events.htm
+http://www.bebits.com/talkback/3323
+http://www.bechervaise.com/BCONF/BCONF5.html
+http://www.becker-posner-blog.com/
+http://www.becker-posner-blog.com/archives/2004/12/disease_populat.html
+http://www.becker-posner-blog.com/archives/2005/05/blogging--a_res.html
+http://www.beckercollege.edu/information/datelinemar03.htm
+http://www.beckman.com/products/instrument/analytical/scintillation/ls6500_countingsystems_inst_dcr.asp
+http://www.beckman.com/resourcecenter/labresources/protein/proteome_litlist.asp
+http://www.beckman.com/resourcecenter/labresources/protein/proteome_litlist.asp?pf=1
+http://www.beckmandavis.com/articles.htm
+http://www.beckncoll.com/
+http://www.becomeaplayer.com/bodylanguage.htm
+http://www.becomehealthynow.com/article/chirohelp/312/
+http://www.becomingtheparent.com/subsections1/question15.html
+http://www.becomingtheparent.com/subsections1/question58.html
+http://www.beconvinced.com/RELIGION/SANTA.htm
+http://www.becreativebooks.com/fabric_crafts.asp
+http://www.becta.org.uk/leaders/leaders.cfm?section=4&id=3286
+http://www.bectu.org.uk/policy/pol073.html
+http://www.bectu.org.uk/policy/pol087.html
+http://www.bedandbreakfastforsale.com/index.cfm?fuseaction=TermsofUse
+http://www.bedbathandbeyond.com/product.asp?order_num=-1&SKU=13653151
+http://www.bedbathandbeyond.com/rdPolicyLegal.asp?order_num=-1
+http://www.bedfordstmartins.com/seeingandwriting/interviews/interview1.html
+http://www.bedfordstmartins.com/seeingandwriting/interviews/interview2.html
+http://www.bedfordstmartins.com/technotes/comment/respondingncbsm.html
+http://www.bedsdirect.com/acatalog/howtoorder.htm
+http://www.bedsguiding.org.uk/annreport2003.htm
+http://www.beebo.com.my/moneytree.html
+http://www.beefusa.org/dsp/dsp_content.cfm?locationId=1602&contentTypeId=1&contentId=18379
+http://www.beehive.govt.nz/ViewDocument.aspx?DocumentID=21545
+http://www.beekeeping.com/articles/us/saville/farmer_participatory.htm
+http://www.beekmanwine.com/prevtopab.htm
+http://www.beemans.net/a_shot_of_humor.htm
+http://www.beemnet.com/win/7-2000news.html
+http://www.beenleigss.qld.edu.au/webquest/actualquest/actualquest.htm
+http://www.beenthere-donethat.org.uk/essex/tollesbury2.html
+http://www.beerhunter.com/documents/19133-000059.html
+http://www.beerhunter.com/documents/19133-001575.html
+http://www.beerhunter.com/documents/19133-001914.html
+http://www.beerintheevening.com/pubs/show.shtml/3012/Harcourt_Arms/Marylebone
+http://www.beertown.org/events/teach/
+http://www.beetleinabox.com/blog/
+http://www.befit.ca/drinks.html
+http://www.befit.ca/fitness_accessories.html
+http://www.beggingtodiffer.com/archives/2005_03.html
+http://www.beginnertriathlete.com/Ron/Book%20Review%20-%20When%20Big%20Boys%20Tri.htm
+http://www.behindthebadge.net/articles/a123.html
+http://www.behindthechair.com/displayarticle.aspx?ID=787
+http://www.behrbemine.com/oblivion/fiction/btvs/buffy-meets-star_8.html
+http://www.behrbemine.com/oblivion/fiction/btvs/even-the-mona-lisa_4.html
+http://www.beijingsoftball.com/results.asp
+http://www.beingvirtuouswomen.com/bookwormcorner/hero/chapter7.htm
+http://www.belairfinishing.com/practical_guide_to_mass_finishing.htm
+http://www.belbin.info/team-roles-answr.htm
+http://www.belcherfoundation.org/admiral_sir_edward_belcher.htm
+http://www.belfastcity.gov.uk/buildingControl/complaints.asp
+http://www.belfastharlequinsrfc.com/Lanarchivenovember2003.asp
+http://www.belfastroyalacademy.com/extra/doe.html
+http://www.belfastroyalacademy.com/extra/industry.html
+http://www.belgraviadispatch.com/archives/001570.html
+http://www.belgraviadispatch.com/archives/004022.html
+http://www.beliefnet.com/frameset.asp?pageLoc=/story/122/story_12259_1.html&storyID=12259&boardID=53216
+http://www.beliefnet.com/frameset.asp?pageLoc=/story/47/story_4779_1.html&boardID=6562
+http://www.beliefnet.com/frameset.asp?pageLoc=/story/97/story_9715_1.html&boardID=31525
+http://www.beliefnet.com/milestones/commemoration.asp?milestoneTypeID=6&pageID=4&milestoneID=17744
+http://www.beliefnet.com/milestones/commemoration.asp?milestoneTypeID=6&pageID=67&milestoneID=2354
+http://www.beliefnet.com/milestones/commemoration.asp?milestoneTypeID=6&pageID=7&milestoneID=17744
+http://www.beliefnet.com/prayer/commemoration.asp?milestoneTypeID=6&pageID=67&milestoneID=2354
+http://www.beliefnet.com/story/129/story_12972.html
+http://www.beliefnet.com/story/139/story_13948_1.html
+http://www.beliefnet.com/story/156/story_15629.html
+http://www.beliefnet.com/story/156/story_15629_1.html
+http://www.beliefnet.com/story/157/story_15773.html
+http://www.beliefnet.com/story/159/story_15988.html
+http://www.beliefnet.com/story/35/story_3518.html
+http://www.beliefnet.com/story/97/story_9715.html
+http://www.believermag.com/exclusives/interview_black.php
+http://www.believetyler.org/
+http://www.belize-challenge.com/main_pages/news.asp
+http://www.belize.gov.bz/library/humandevelopment/chapter3.html
+http://www.belizemissions.com/fishing.htm
+http://www.bellagiopublishingnetwork.org/newsletter21/ranger.htm
+http://www.bellagiopublishingnetwork.org/newsletter26-27/ofori-mensah.htm
+http://www.bellaonline.com/ArticlesP/art26224.asp
+http://www.bellaonline.com/articles/art15801.asp
+http://www.bellaonline.com/articles/art25188.asp
+http://www.bellaonline.com/articles/art26004.asp
+http://www.bellaonline.com/articles/art26224.asp
+http://www.bellaonline.com/articles/art26298.asp
+http://www.bellaonline.com/articles/art27517.asp
+http://www.bellaonline.com/articles/art27725.asp
+http://www.bellaonline.com/articles/art28325.asp
+http://www.bellaonline.com/articles/art5459.asp
+http://www.bellaonline.com/subjects/1204.asp
+http://www.bellaonline.com/subjects/2172.asp
+http://www.bellcraft.com/forum/topic.asp?TOPIC_ID=637
+http://www.belleandsebastian.com/diary.php?did=193
+http://www.belleville.com/mld/belleville/news/10494011.htm
+http://www.bellinghamweekly.com/bw/content/astrology/
+http://www.bellmicro.com/atabased/Products/DYNdatamax8000plus.asp
+http://www.bellmore-merrick.k12.ny.us/catcher2.html
+http://www.bellona.no/en/international/russia/envirorights/36480.html
+http://www.bellspalsy.ws/residual.htm
+http://www.bellsystemmemorial.com/canadian_bell_companies.html
+http://www.bellsystemmemorial.com/comments.html
+http://www.bellsystemmemorial.com/the_att_telephone_story.html
+http://www.bellsystemmemorial.com/tradingpost.html
+http://www.bellsystemmemorial.com/whatkilledmabell.html
+http://www.bellwetherdrygoods.com/
+http://www.belmontclub.blogspot.com/2003_09_01_belmontclub_archive.html
+http://www.belowempty.com/vr/concerts/2005/050109_LondonEngland.php
+http://www.belvpresbyterian.org/
+http://www.bena.com/sherpa1/bpa/Marriage/bCompati.htm
+http://www.benabraham.com/html/30_-_character_and_aims_of_the.html
+http://www.benadorassociates.com/article/11281
+http://www.benadorassociates.com/article/15633
+http://www.benadorassociates.com/article/15792
+http://www.benadorassociates.com/article/2260
+http://www.benadorassociates.com/article/8408
+http://www.benadorassociates.com/article/879
+http://www.benadorassociates.com/events.php?id=350
+http://www.benbest.com/cryonics/protocol.html
+http://www.benbest.com/history/xmas.html
+http://www.bendigo.vic.gov.au/Page/Page.asp?Page_Id=599&h=1
+http://www.bendpress.com/
+http://www.benedict.koeln-service.de/en/c2.htm
+http://www.benefitnews.com/detail.cfm?id=6703
+http://www.benefitsandwork.co.uk/benefits/unspun/ib_pilots_nov03.htm
+http://www.bengaldevelopment.com/
+http://www.bengals.com/press/hobsononline.asp?ho_id=170
+http://www.bengals.com/press/news.asp?news_id=2899
+http://www.benisrael.org/shoah/shoah09.htm
+http://www.benjaminadam.com/
+http://www.benjaminadam.com/archives/2005/05/09/better-blockquote-styling
+http://www.benjaminrosenbaum.com/blog/archives/2005_05.html
+http://www.benjaminzephaniah.com/outernet_kidz.html
+http://www.benmclane.com/climax.htm
+http://www.bennettgold.ca/resources/articles-25.shtml
+http://www.bennettjones.ca/publications_classaction-fall-2004.htm
+http://www.bennettstamps.com/cgi-bin/viewchap.pl?site=1&sale=284&chapter=1&page=1&lang=1
+http://www.bensilverstone.net/bsstoryserver-library.asp?bookid=36
+http://www.bensoc.asn.au/parc_search/transracial_articles_returning.html
+http://www.bensonassoc.com/pct/teapast11.html
+http://www.bensonassoc.com/pct/teapast19.html
+http://www.benthos.org/Links/index.cfm/task/Display/URLtopic/Images
+http://www.bentleyrailway.co.uk/locos.php?cat=svisitors
+http://www.benton.org/publibrary/practice/features/environdefense.html
+http://www.bepress.com/context/gruterclassics/article/1025/viewcontent/
+http://www.bera.ac.uk/oldwelcomes.asp
+http://www.bergen-guide.com/345.htm
+http://www.bergen.org/AAST/Projects/3DSMaxTutorial/mapping_coordinates.html
+http://www.berghuis.co.nz/abiator/patana/5t/literacy/sj-1-2-2003_text.html
+http://www.beri.com/
+http://www.berjaya.com.my/080502matrix_matrix.htm
+http://www.berjaya.com.my/210200unza.htm
+http://www.berkeley.edu/calendar/index_p2.html
+http://www.berkeley.edu/news/berkeleyan/2004/03/03_large.shtml
+http://www.berkeley.edu/news/berkeleyan/2005/01/27_acfreedom.shtml
+http://www.berkeley.edu/news/berkeleyan/2005/06/03_grad.shtml
+http://www.berkeley.edu/news/media/releases/2003/02/12_akerlof.shtml
+http://www.berkeley.edu/news/media/releases/2003/07/22_politics.shtml
+http://www.berkeley.edu/news/media/releases/2004/05/07_pecase.shtml
+http://www.berkeley.edu/news/media/releases/2004/10/11_hersh.shtml
+http://www.berkeley.edu/news/media/releases/2004/10/26_breastfeeding.shtml
+http://www.berkeley.edu/news/media/releases/2004/11/30_BushIraq.shtml
+http://www.berkeley.edu/news/media/releases/2005/03/24_octopus.shtml
+http://www.berkeley.edu/news/media/releases/2005/05/04_sontag.shtml
+http://www.berkeley.edu/news/students/2003/borneo/6.shtml
+http://www.berkeleybuddhistpriory.org/suffering.htm
+http://www.berkeleydaily.org/article.cfm?archiveDate=02-22-05&storyID=20778
+http://www.berkeleysprings.com/shopping.htm
+http://www.berkeleywellness.com/html/ds/dsZinc.php
+http://www.berkshirehumane.org/Adoption_Pages/Adopt_A_Dog
+http://www.berkshirehumane.org/Kids_Who_Care
+http://www.berkshires.org/What_to_Do/index.php?cat=Music
+http://www.berlinpraktikum.de/english/warumwowie.asp
+http://www.bermuda-online.org/sirgeorgesomers.htm
+http://www.bermuda.org.uk/defence.htm
+http://www.bermudasun.bm/archives/2005-06-22/05Life01/
+http://www.bernardcornwell.net/index.cfm?page=11
+http://www.bernardomahoney.com/forthcb/pdt/hajarticles2/footwiaem.shtml
+http://www.bernsteinmedical.com/resources/publications.php
+http://www.berry.edu/phs/
+http://www.berrypatchfarms.net/history.htm
+http://www.berryscotland.com/berryproducts.htm
+http://www.bersin.com/newsletters/dec_2003.asp
+http://www.bertoncini.net/lyrics/article.php?story=20050527152156751
+http://www.berzinarchives.com/e-books/spiritual_teacher/spiritual_teacher_13.html
+http://www.besiweb.com/HKANTAR2.html
+http://www.besse.at/sms/matter.html
+http://www.bessel.org/natlstan.htm
+http://www.best-interview-strategies.com/article35.html
+http://www.best-interview-strategies.com/jobinterviewsuccesssystem.html
+http://www.best-of-cincinnati.com/goods.html
+http://www.bestfreestuffonline.com/costumes.html
+http://www.bestfriends.org/allthegoodnews/specialfeatures/volunteers3.cfm
+http://www.bestjobsca.com/em-cvs-SC016-121-Skilled_labour_Trades_resume_bank.htm
+http://www.bestjudo.com/brmechanicsofjudo.shtml
+http://www.bestofbroadway.com/
+http://www.bestofhealth.com/pvgh/Current/fitfor.html
+http://www.bestplaces.net/docs/studies/crime1.aspx
+http://www.bestplacesonearth.com/destinations/ireland_guides.shtml
+http://www.bestprices.com/cgi-bin/vlink/030277009321BT.html
+http://www.beststuff.com/articles/8497/
+http://www.besttreatments.co.uk/btuk/electsurgery/18620.html
+http://www.bestwebbuys.com/History-Modern-20th_Century-N_10014384-books.html
+http://www.bestwebbuys.com/History-United_States-20th_Century-N_10014664-books.html
+http://www.bestwestern.co.uk/regions/whats-on-when.aspx?region=15&section=11
+http://www.bestwestern.co.uk/rewards/faq.aspx
+http://www.bestwestern.co.uk/rewards/termsandconditions.aspx
+http://www.bet.com/Health/GetFitClub/
+http://www.beta-theta.com/mall/hailo-cash-master-32-lock-box-hailo-cash-master-32-cash-box-assorted-colours-953502-ok/
+http://www.beta-theta.com/s/recreation-sports/sports-gear-equipment/home-gym-equipment-weights-machines/
+http://www.betanews.com/article/Does_Open_Source_Closed_Mind/1113572174
+http://www.betanews.com/article/MP3_Player_Market_Set_to_Explode/1119452328
+http://www.betanews.com/article/Microsoft_Opens_Office_File_Formats/1117692086
+http://www.betanews.com/article/Windows_XP_Adoption_Rates_Slow/1118943913
+http://www.bethanywv.edu/tower/opinions/79.04.09.17.04_opinion.html
+http://www.bethdavidsynagogue.org/happenings.html
+http://www.bethedream.net/GenesisII/GaiaTech.htm
+http://www.bethedream.net/mylife_files/Ashtar-Athena.htm
+http://www.bethel.edu/bgcarchives/friends/trailmarkers/03-04.html
+http://www.bethelks.edu/news/context/archives/001053.php?presentation=normal&issue=February2004
+http://www.bethepeterson.com/econfron.html
+http://www.bethlehemmedia.net/feat46.htm
+http://www.bethor.org/narrishkeit/narrish.html
+http://www.bethquick.com/8-29-04notes.htm
+http://www.betsson.com/cs/poker/pokerschool.asp?id=27
+http://www.better-investing.org/articles/bi/366/5032
+http://www.betterbaking.com/viewArticle.php?article_id=16
+http://www.betterbasketball.com/basketball-passing-video/
+http://www.betterbricks.com/default.aspx?pid=article&articleid=169&typeid=3&topicname=operationsmaintenance&indextype=
+http://www.bettercaring.co.uk/index_pub.cfm?content=Mail/pressrelease.htm&navtable=navtable_about.cfm
+http://www.bettergov.ie/index.asp?docID=184
+http://www.betterhealth.vic.gov.au/bhcv2/BHCLang.nsf/0/C53D7FCBC4CA7D8D4A256B640083B7D8?OpenDocument
+http://www.betterhealth.vic.gov.au/bhcv2/bhcarticles.nsf/pages/Aerobic_exercise?OpenDocument
+http://www.betterhealth.vic.gov.au/bhcv2/bhcarticles.nsf/pages/Eating_tips_for_children_(1)_babies?Open
+http://www.betterhealth.vic.gov.au/bhcv2/bhcarticles.nsf/pages/Eating_tips_for_children_(1)_babies?OpenDocument
+http://www.betterhealth.vic.gov.au/bhcv2/bhcarticles.nsf/pages/Eating_tips_for_children_(1)_babies?open
+http://www.betterhealth.vic.gov.au/bhcv2/bhcarticles.nsf/pages/Olive_oil?OpenDocument
+http://www.betterhealth.vic.gov.au/bhcv2/bhcarticles.nsf/pages/Tertiary_studies_friends_and_family?OpenDocument
+http://www.betterhealth.vic.gov.au/bhcv2/bhcarticles.nsf/pages/Trauma_helping_loved_ones?OpenDocument
+http://www.betterhealth.vic.gov.au/bhcv2/bhcarticles.nsf/pages/hl_stressreduction_general?open
+http://www.betterhealth.vic.gov.au/bhcv2/bhcsite.nsf/pages/sub17?Open
+http://www.betterliving.co.nz/content/atPlay/beauty/sleep-and-our-skin.aspx
+http://www.betterlivingnow.com/main/custsupport/insurance.cfm
+http://www.bettermanagement.com/bettermanagementlive/session.aspx?libraryid=10264
+http://www.bettermanagement.com/keycode.aspx?keycode=511348
+http://www.bettermanagement.com/seminars/seminar.aspx?l=12087
+http://www.betteroralhealth.info/uk-orbit/commercial-dental-companies-and-dental-professionals--a-win-win-situation--by-simon-m-roland-bds-lond--ldsrcs-eng-.html
+http://www.betterpenis.info/alternatives.htm
+http://www.betterworkplacenow.com/flexart.html
+http://www.betterworldclub.com/about/faq.htm
+http://www.bettingadvice.com/
+http://www.bettydodson.com/links3.htm
+http://www.bettyelders.com/encourag4.htm
+http://www.bettysattic.com/website/store/search.asp?UID=&keyword=1980s&cat_keyword=beras&search_page_no=3
+http://www.bettyslist.com/advertise.php
+http://www.between.ne.jp/sij/en/support/koutsu.html
+http://www.beust.com/cedric/perry/
+http://www.beust.com/weblog/archives/000084.html
+http://www.beust.com/weblog/archives/000259.html
+http://www.beust.com/weblog/mt-cedricqwerty.cgi?entry_id=84
+http://www.bev.net/about/research/reports/summary.php
+http://www.bevart.co.uk/links/design.html
+http://www.beveragedaily.com/news/news-ng.asp?n=54095-drinks-manufacturers-hoping
+http://www.beverleyfestival.com/04-festinfo.htm
+http://www.bevhoward.com/CFCamera.htm
+http://www.bewrite.net/modules.php?name=News&file=article&sid=1871
+http://www.bewrite.net/modules.php?name=News&file=article&sid=2054
+http://www.bexcrayconservatives.org.uk/
+http://www.bexley.gov.uk/news/2005/05/
+http://www.bexley.gov.uk/service/education/pass/musicgrants.html
+http://www.beyondacademe.com/
+http://www.beyondblue.org.au/index.aspx?link_id=12
+http://www.beyondblue.org.au/index.aspx?link_id=4.66&oid=418
+http://www.beyondblue.org.au/index.aspx?link_id=9.234&oid=418
+http://www.beyondbooks.com/bb/press/henrico.asp
+http://www.beyondbooks.com/help/guide/page_unit.asp
+http://www.beyondbullets.com/2005/01/face.html
+http://www.beyondcompliance.net/training.html
+http://www.beyonddieting.com/thesis1.html
+http://www.beyondfertility.com/resource.htm
+http://www.beyondintractability.org/m/distributive_bargaining.jsp
+http://www.beyondintractability.org/m/large_scale_communication.jsp
+http://www.beyondmoseying.com/customer-comments.html
+http://www.beyondpesticides.org/infoservices/pesticidesandyou/
+http://www.beyondplay.com/CATALOG/CAU1.HTM
+http://www.beyondplay.com/CATALOG/PRO1.HTM
+http://www.beyondroi.com/Tina-Kelso.php
+http://www.beyondtheclassroom.umd.edu/service.htm
+http://www.beyondtheclassroom.umd.edu/servicetxt.htm
+http://www.beyondthecommons.com/understandingenclosure.html
+http://www.beyondvc.com/
+http://www.beyondvc.com/2004/09/running_an_effi.html
+http://www.beyondweird.com/nuclearwar/s73p926.htm
+http://www.bffsnw.org.uk/modules.php?op=modload&name=FAQ&file=index&myfaq=yes&id_cat=2
+http://www.bfi.gov.uk/reports/2002/bfi/salford/conclusions/
+http://www.bfi.gov.uk/reports/2002/bfi/salford/recommendations/
+http://www.bfi.org.uk/sightandsound/2004_09/father-son.php
+http://www.bfi.org/EveryThing/everything_i_know1.htm
+http://www.bfi.org/EveryThing/everything_i_know9.htm
+http://www.bfi.org/grunch_of_giants6.htm
+http://www.bfms.org.uk/Text_Assets/Newsletter_Aug99.htm
+http://www.bfms.org.uk/Text_Assets/Newsletter_Dec2003.htm
+http://www.bfms.org.uk/Text_Assets/Newsletter_July2003.htm
+http://www.bfrc.org/General_Publications-Windows-A_Total_Cost_Approach.htm
+http://www.bftv.ac.uk/newslet2/sum04p2.htm
+http://www.bg-group.com/international/int-UK_downstream.htm
+http://www.bgclansing.org/donor_page.htm
+http://www.bgcp.org/physical_education_programs.php
+http://www.bgpexpert.com/archive2004q1.php
+http://www.bgs.ac.uk/mineralsuk/links/quarrying/home.html
+http://www.bgsu.edu/cconline/DavisHardy/certeau.html
+http://www.bgsu.edu/offices/president/page693.html
+http://www.bgu.ac.il/chem/Bittner_cv.html
+http://www.bgu.ac.il/html/march2000.htm
+http://www.bham.ac.uk/POLSIS/postgraduate/admissions/FAQ.htm
+http://www.bham.ac.uk/POLSIS/tony_blair.htm
+http://www.bham.ac.uk/ctimath/workshops/wncet2.htm
+http://www.bharat-rakshak.com/LAND-FORCES/Army/Articles/Article07.html
+http://www.bharat-rakshak.com/MONITOR/ISSUE6-4/routray.html
+http://www.bharatmatrimony.com/consult/private/conapr302005.html
+http://www.bharattimes.com/BT_WEB/Economy.htm
+http://www.bhb.hu/
+http://www.bhel.com/bhel/press_conf/2004/press_conference.htm
+http://www.bhf.org.uk/about/index.asp?secID=17&secondlevel=1504&thirdlevel=1576&artID=7211
+http://www.bhf.org.uk/events/index.asp?secID=12&secondlevel=1006&thirdlevel=1017&artID=6830
+http://www.bhf.org.uk/events/printout.asp?secID=12&secondlevel=1006&thirdlevel=1017&artID=6830
+http://www.bhf.org.uk/hearthealth/index.asp?secID=1&secondlevel=77&thirdlevel=352&artID=428
+http://www.bhf.org.uk/hearthealth/index.asp?secID=1&secondlevel=79&thirdlevel=171&artID=700
+http://www.bhf.org.uk/news/index.asp?secID=16&secondlevel=241&thirdlevel=1533&artID=7064
+http://www.bhf.org.uk/news/index.asp?secID=16&secondlevel=241&thirdlevel=1607&artID=7266
+http://www.bhf.org.uk/news/index.asp?secID=16&secondlevel=241&thirdlevel=922&artID=4385
+http://www.bhg.com.au/home_improvement.nsf/Content/Decorating_Curtains_MakingUp
+http://www.bhg.com/bhg/story.jhtml?storyid=/templatedata/ab/story/data/AB0804MaternityLeave.xml&catref=bcat289
+http://www.bhg.com/bhg/story.jhtml?storyid=/templatedata/bhg/step-by-step/data/hie_452.xml&catref=cat4450002&page=2
+http://www.bhg.com/bhg/story.jhtml?storyid=/templatedata/bhg/story/data/BHBL_FramingTheFuture_12092004.xml&catref=cat320002
+http://www.bhg.com/bhg/story.jhtml?storyid=/templatedata/bhg/story/data/kids_furniture_07262001.xml
+http://www.bhhrg.org/CountryReport.asp?ChapterID=220&CountryID=2&ReportID=75&keyword=
+http://www.bhhrg.org/CountryReport.asp?ChapterID=88&CountryID=4&ReportID=14&keyword=
+http://www.bhi.co.uk/hints/bluing.htm
+http://www.bhiva.org/guidelines/2004/adherence/table.html
+http://www.bholland90.fsnet.co.uk/Canoes_And_Kayaks.htm
+http://www.bhsi.org/ageguide.htm
+http://www.biaeducationjobs.com/mnlst.htm
+http://www.bianca.com/whatsnew/
+http://www.biancoblu.fi/tekijat_e.htm
+http://www.biathloncanada.ca/main.asp?cmd=fil&ID=329&lan=0
+http://www.biax.com/mesim/mesim.asp
+http://www.biba.org.uk/mediacentre/medianotes/announcements/25.htm
+http://www.bible-researcher.com/language-koine.html
+http://www.bible.acu.edu/missions/page.asp?ID=780
+http://www.bible.acu.edu/stone-campbell/States/Illinois/cook.htm
+http://www.bible.ca/7-Bacchiocchi.htm
+http://www.bible.ca/ef/expository-2-corinthians-5-10.htm
+http://www.bible.ca/tracks/b-hill-roberts.htm
+http://www.bible.com/bs.html
+http://www.bible.org/illus.asp?topic_id=967
+http://www.bible.org/page.asp?page_id=104
+http://www.bible.org/page.asp?page_id=2450
+http://www.bible.org/page.asp?page_id=414
+http://www.bible.org/page.asp?page_id=45
+http://www.bibleandscience.com/science/evolution.htm
+http://www.biblebb.com/files/GR1120.htm
+http://www.biblebb.com/files/MAC/1947.HTM
+http://www.biblebb.com/files/MAC/1949.HTM
+http://www.biblebb.com/files/MAC/45-4.htm
+http://www.biblebb.com/files/MAC/sg1944.htm
+http://www.biblebb.com/files/MAC/sg27-8.htm
+http://www.biblebb.com/files/MAC/tithe.htm
+http://www.biblebb.com/files/spurgeon/0341.htm
+http://www.biblebb.com/files/spurgeon/2868.htm
+http://www.biblebelievers.com/Streetpreaching6.html
+http://www.biblebelievers.org.au/bb950526.htm
+http://www.biblebelievers.org.au/f&l.htm
+http://www.biblebelievers.org.au/jewhis.htm
+http://www.biblebelievers.org.au/radio119.htm
+http://www.biblebelievers.org/lcomm1.htm
+http://www.biblebelievers.org/lfinl.htm
+http://www.biblebell.org/mbag/mailbcb.html
+http://www.bibleexplained.com/other-early/1&2-Kings/2ki07.html
+http://www.biblegateway.com/cgi-bin/bible?version=NIV&passage=james
+http://www.bibleinterp.com/articles/Isbell-Kitchen_and_Minimalism.htm
+http://www.biblelands.org.uk/project_partners/by_location/egypt/el_saray_church/
+http://www.bibleman.net/Keys_for_numbers.htm
+http://www.bibleplants.com/water.htm
+http://www.bibleplus.org/health/ms_lupus.htm
+http://www.bibleprophesy.org/wrong/stone.htm
+http://www.biblequestlink.com/workshop_rotational.htm
+http://www.biblesearch.com/answers/chrstliving/relothers1.htm
+http://www.biblesearch.com/answers/compteach/compcath1.htm
+http://www.biblesociety.org/wr_342/342_fund.htm
+http://www.biblestudylessons.com/cgi-bin/gospel_way/why_believe.php
+http://www.biblestudymanuals.net/chrstnresp2.htm
+http://www.bibletexts.com/qa/qa133.htm
+http://www.bibletexts.com/terms/redsea.htm
+http://www.bibletopics.com/biblestudy/3.htm
+http://www.bibletopics.com/biblestudy/92b.htm
+http://www.bibleviews.com/
+http://www.biblicalresearch.info/page36.html
+http://www.biblio.com/books/12725134.html
+http://www.biblio.com/catalogs/sub/567/Nature_Writing.html
+http://www.bibliomania.com/0/0/6/10/12640/2.html
+http://www.bibliomania.com/2/1/68/115/24948/1.html
+http://www.bibliomania.com/2/3/270/1820/21945/1.html
+http://www.bibliomania.com/2/9/70/117/24592/1.html
+http://www.bibliomania.com/2/9/70/117/24597/6.html
+http://www.bibliomania.com/2/9/70/117/24601/3.html
+http://www.biblioteksvagten.dk/english/sporgetjenester.asp
+http://www.bicc.de/publications/survey/2001/introduction.php
+http://www.bicusa.org/bicusa/issues/world_bank/index.php
+http://www.bicycle.sfgov.org/site/dptbike_index.asp?id=4040
+http://www.bicyclehabitat.com/site/page.cfm?PageID=410
+http://www.bicyclewv.com/tours.cfm
+http://www.bicyclinglife.com/NewsAndViews/Prodriver.htm
+http://www.biddingtons.com/content/creativehewitt.html
+http://www.bidorbuy.co.za/static/BillingStatement.html
+http://www.bidstrup.com/creation.htm
+http://www.bidstrup.com/phone.htm
+http://www.bieberlabs.com/wordpress/archives/2004/11/30/using-svk
+http://www.biemiller.com/albinoa.htm
+http://www.big-boys.com/articles/2004darwinawards.html
+http://www.big-boys.com/articles/lindsaylip.html
+http://www.big-boys.com/details/3161.html
+http://www.big-boys.com/details/3319.html
+http://www.big-boys.com/picture0.html
+http://www.big-penis-secrets.com/penis-enlargement-program.htm
+http://www.bigalcohol.com/p_profile.php?player_id=20
+http://www.bigbooster.com/business_opportunities/
+http://www.bigboystoyz.co.uk/ecom/magic/magic.htm
+http://www.bigbridge.org/Site/Text/Geist.html
+http://www.bigbrotherinside.org/
+http://www.bigbrotheronline.co.uk/bigbrother6/betting.htm
+http://www.bigbrothersvancouver.com/03-OurPrograms/OurBigBunch.html
+http://www.bigdeadplace.com/contract.html
+http://www.bigdeadplace.com/welcome.html
+http://www.bigempire.com/sake/panty.html
+http://www.bigeye.com/bigeye1.htm
+http://www.bigfatblog.com/archives/001293.php
+http://www.bigfatblog.com/faq/
+http://www.bigfivesafaris.co.za/bushtalk.htm
+http://www.bigga.org.uk/greenkeeper/viewstory.php?id=484
+http://www.biggerbras.com/productsan/opera_length_gloves_air-1416.shtml
+http://www.biggerbras.com/productsan/opera_length_gloves_air-3004.shtml
+http://www.biggerbras.com/productsb/AIR-1415.shtml
+http://www.biggerbras.com/productsb/AIR-840.shtml
+http://www.biggerbras.com/productsb/air-3004.shtml
+http://www.biggerbras.com/productscn/satin_opera_gloves_air-1415.shtml
+http://www.biggeworld.com/avlp/advicebook2.html
+http://www.biggsworkers.com/talkin.php
+http://www.bigham.ca/packing.html
+http://www.bigkeys.co.uk/
+http://www.bigleftoutside.com/
+http://www.biglist.com/2BigList/help/listowners/email_from_webpage.shtml
+http://www.bigmagic.com/pages/blackj/column2e.html
+http://www.bigmouthmedia.com/live/articles/seo-customer-guide-14.asp
+http://www.bigmoviezone.com/articles/?uniq=109
+http://www.bigpicnic.com/
+http://www.bigpicture.org/publications/2004archives/SchoolBoardNews04.htm
+http://www.bigpinkcookie.com/2003/04/24/returning-to-90210/
+http://www.bigredc.com/
+http://www.bigscreen.com/ReaderReview.php?movie=FellowshipoftheRing
+http://www.bigskyastroclub.org/constellation.htm
+http://www.bigsoccer.com/forum/archive/index.php/t-14351.html
+http://www.bigtreemurphy.com/Using%20Usual%20Things.htm
+http://www.bigwhiteguy.com/
+http://www.biipb.org/biipb/committee/commd/d9302.htm
+http://www.bijouflix.com/goods/bijou_store1vcd_B.htm
+http://www.bike.com/template.asp?date=5%2F12%2F2003+1%3A10%3A12+PM&lsectionnumber=24&display=True
+http://www.bikeforums.net/archive/index.php/t-42454
+http://www.bikeforums.net/archive/index.php/t-74796
+http://www.bikekatytrail.com/ktcomments.asp?thid=145
+http://www.bikekatytrail.com/ktcomments.asp?thid=145&full=0&ascdesc=0
+http://www.bikereader.com/contributors/misc/takestwo.html
+http://www.bikerevuk.com/customertestimonials.html
+http://www.bikeweb.com/bff
+http://www.bikexprt.com/research/kaplan/recom.htm
+http://www.bikexprt.com/research/kaplan/specific.htm
+http://www.bilaterals.org/article.php3?id_article=122
+http://www.bilaterals.org/article.php3?id_article=1272
+http://www.bilaterals.org/article.php3?id_article=2090
+http://www.bilkent.edu.tr/bilkent/academic/summer-school/2005/faq.html
+http://www.bilkent.edu.tr/~cindoglu/pre.htm
+http://www.bilkent.edu.tr/~jast/Number15/Maragou.htm
+http://www.billandnancy.com/bnblog/bnblog.html
+http://www.billblaikie.ca/ndp.php/SEC40059776dbb54/ART401038bf5c83e
+http://www.billbright.com/ryw/
+http://www.billiardsdigest.com/ccboard/showflat.php?Cat=&Board=ccb&Number=168241&page=&view=&sb=&o=&vc=1
+http://www.billingsclinic.com/AboutUs/NN_011602.htm
+http://www.billmon.org/archives/000242.html
+http://www.billofrights.com/HistoryoftheConstitution.htm
+http://www.billofrightsinstitute.org/ondindex.php
+http://www.billpalmer.net/
+http://www.billparish.com/msftfraudfacts.html
+http://www.billpetro.com/HolidayHistory/hol/jerusalem1.html
+http://www.billrichardsracing.com/
+http://www.billsells.com/home-buyer_listings-malvern-paoli-pennsylvania-homes.asp
+http://www.billson4dunkley.com/speechs/sp_20.html
+http://www.billsparks.org/BlindTalk/
+http://www.billspens.com/billssale/parker/parker51.htm
+http://www.billyblue.com.au/english/aboutus.html
+http://www.billyblue.com.au/hotel/new.html
+http://www.billycorgan.com/confession24.html
+http://www.billyrawlett.com/moneyback.html
+http://www.binarybits.org/
+http://www.binarybits.org/archives/2004/06/
+http://www.bindependent.com/hompg/bi/bindep/store/aisles/exercise/balls/exerciseballuse.htm
+http://www.binggallery.com/dixon.html
+http://www.bingham.com/Bingham/ourfirm_probonoItem.asp
+http://www.binghamtoncrimestoppers.org/case/
+http://www.bio-itworld.com/archive/101404/firstbase.html
+http://www.bio-itworld.com/archive/101404/firstbase.html?action=print
+http://www.bio-itworld.com/careers/viewpoints/1430.html
+http://www.bio-itworld.com/products/090902_assays-on-demand.html
+http://www.bio.com/industryanalysis/industryanalysis_features.jhtml?cid=ci17921521
+http://www.bio.com/store/terms.jhtml
+http://www.bio.miami.edu/hare/ileus.html
+http://www.bio.org/bioethics/background/okarmatestimony.asp
+http://www.bio.org/foodag/animalpoints.asp?p=yes
+http://www.bio.org/speeches/speeches/plenary2000.asp
+http://www.bio.psu.edu/People/Faculty/Fisher/fisher.htm
+http://www.bio.psu.edu/directory/homepages/crf2.action
+http://www.bio.uu.nl/intecol/programme/list.php?sy=28&ord=session
+http://www.bio.uu.nl/intecol/programme/list.php?sy=35&ord=session
+http://www.biochem.northwestern.edu/ibis/faculty/morimoto.htm
+http://www.biochem.wisc.edu/biochem636/exercise2.html
+http://www.biochemistry.unimelb.edu.au/students/undergrad200.htm
+http://www.biocontrols.com/aero120.htm
+http://www.biodiesel.org/markets/hom/default.asp
+http://www.bioethics.gov/background/callahan_intro.html
+http://www.bioethics.gov/bookshelf/reader/chapter10.html
+http://www.bioethics.gov/reports/cloningreport/children.html
+http://www.bioethics.gov/reports/stemcell/chapter3.html
+http://www.bioethics.gov/reports/stemcell/chapter4.html
+http://www.bioethics.gov/transcripts/jan02/opening01.html
+http://www.bioethics.gov/transcripts/sep03/session3.html
+http://www.bioethics.gov/transcripts/sep03/session4.html
+http://www.bioethics.msu.edu/mhr/04f/continuing_the_discussion.html
+http://www.bioethics.net/articles.php?viewCat=7&articleId=139
+http://www.bioethics.net/journal/j_articles.php?aid=61
+http://www.biogen.nu.ac.za/research.htm
+http://www.biohelsinkiconf.com/programme/liikanen-speech.htm
+http://www.biola.edu/admin/auxil/hb_occupancy.cfm
+http://www.biola.edu/admin/auxil/hb_roomrates.cfm
+http://www.biola.edu/ceacademic/bensonc2.cfm
+http://www.biolbull.org/cgi/content/full/200/2/206
+http://www.bioline.org.br/request?am04034
+http://www.bioline.org.br/request?ni04070
+http://www.biology-online.org/9/3_movement_molecules.htm
+http://www.biology.eku.edu/FOSTER/514syl.htm
+http://www.biology.qmul.ac.uk/teaching/csum.asp?Course_Code=SBS-928
+http://www.biologylessons.sdsu.edu/classes/lab6/lab6.html
+http://www.biologylessons.sdsu.edu/ta/classes/lab6/lab6.html
+http://www.biols.susx.ac.uk/resgroups/biochem/smith.html
+http://www.biom.net/dojo.php/teahouse/INDEX/C108/P10/
+http://www.biom.net/dojo.php/teahouse/INDEX/C182/P10/
+http://www.biomech.com/db_area/archives/2002/0212.cover.bio.shtml
+http://www.biomedcentral.com/1092-8464/7/55/abstract
+http://www.biomedcentral.com/1471-2091/6/4
+http://www.biomedcentral.com/1471-2105/6/77
+http://www.biomedcentral.com/1471-2105/6/S1/S12
+http://www.biomedcentral.com/1471-2105/6/S1/S15
+http://www.biomedcentral.com/1471-213X/2/8
+http://www.biomedcentral.com/1471-2199/6/11
+http://www.biomedcentral.com/1471-2261/2/15
+http://www.biomedcentral.com/1471-2261/5/5
+http://www.biomedcentral.com/1471-2288/4/29
+http://www.biomedcentral.com/1471-2393/5/8
+http://www.biomedcentral.com/1471-244X/5/17
+http://www.biomedcentral.com/1471-2458/3/34
+http://www.biomedcentral.com/1471-2458/4/20
+http://www.biomedcentral.com/1471-2458/4/51
+http://www.biomedcentral.com/1472-6807/2/8
+http://www.biomedcentral.com/1472-6815/2/2
+http://www.biomedcentral.com/1472-6831/5/2
+http://www.biomedcentral.com/1472-6920/5/6
+http://www.biomedcentral.com/1472-6955/3/2
+http://www.biomedcentral.com/1741-7007/3/9
+http://www.biomedcentral.com/1741-7015/2/8
+http://www.biomedcentral.com/1741-7015/3/1
+http://www.biomedcentral.com/info/about/pr-releases?pr=20040510b
+http://www.biomedcentral.com/news/20030312/01/
+http://www.biomedcentral.com/news/20040528/01/
+http://www.biomedcentral.com/openaccess/forum/?letter=20030722ej
+http://www.biomedcomm.com/store/pi_ghc_immune.html
+http://www.biomedicalinstitute.org/index.cfm/fa/press.item/PressID/27
+http://www.biomicrobics.com/
+http://www.biomorphdesk.com/computer_desk.html
+http://www.biomorphdesk.com/ergonomic_furniture.html
+http://www.biomorphdesk.com/human_factors.html
+http://www.biomorphdesk.com/music_production.html
+http://www.biomorphdesk.com/video_production_desk.html
+http://www.bionews.net/B/5/I41CD498-001.htm!ArcEntryInfo=0004.21.I41CD498
+http://www.bionews.net/B/5/I41CD7A6-001.htm!ArcEntryInfo=0004.75.I41CD7A6
+http://www.bionews.net/b/5/I41CD498-001.htm!ArcEntryInfo=0004.21.I41CD498
+http://www.bionow.co.uk/manufacturing.htm
+http://www.bionow.co.uk/monthlynews/number36.htm
+http://www.bioone.org/bioone/?request=get-document&issn=0002-7685&volume=062&issue=08&page=0553
+http://www.bioone.org/bioone/?request=get-document&issn=0002-8444&volume=092&issue=01&page=0030
+http://www.bioone.org/bioone/?request=get-document&issn=0013-0001&volume=056&issue=01&page=0027
+http://www.bioone.org/bioone/?request=get-document&issn=0015-4040&volume=086&issue=01&page=0089
+http://www.bioone.org/bioone/?request=get-document&issn=0022-0493&volume=098&issue=03&page=0976
+http://www.bioone.org/bioone/?request=get-document&issn=0022-3360&volume=074&issue=02&page=0224
+http://www.bioone.org/bioone/?request=get-document&issn=0045-8511&volume=004&issue=04&page=0883
+http://www.bioone.org/bioone/?request=get-document&issn=0046-225X&volume=031&issue=06&page=0977
+http://www.bioone.org/bioone/?request=get-document&issn=0094-8373&volume=029&issue=01&page=0030
+http://www.bioone.org/bioone/?request=get-document&issn=0273-8570&volume=074&issue=04&page=0349
+http://www.bioone.org/bioone/?request=get-document&issn=0890-037X&volume=019&issue=01&page=0043
+http://www.bioone.org/bioone/?request=get-document&issn=1082-6742&volume=014&issue=01&page=0060
+http://www.biopark.org/peru/amazonreading.html
+http://www.biophysj.org/cgi/content/full/74/2/681
+http://www.biophysj.org/cgi/content/full/79/6/2902
+http://www.biophysj.org/cgi/content/full/81/2/1093
+http://www.biopoint.com/inquiry/ibr.html
+http://www.biospace.com/news_category.cfm?CategoryID=24&SR=141
+http://www.biospectrumindia.com/content/shakers/104061001.asp
+http://www.biota.org/people/douglasadams/
+http://www.bioteach.ubc.ca/CellBiology/TheCellCycle/
+http://www.biotech-info.net/Roundup_soybeans_yield_less.html
+http://www.biotech.ca/EN/nrSept1800.html
+http://www.bioterrorism.slu.edu/bt/official.htm
+http://www.biothinking.com/applysd/projects.htm
+http://www.biotopics.co.uk/circuln/blood.html
+http://www.bipolaraware.co.uk/forum/archive/index.php/t-37
+http://www.bipolaraware.co.uk/forum/archive/index.php/t-681.html
+http://www.bipolaraware.co.uk/forum/archive/index.php/t-943.html
+http://www.bipolarworld.net/Bipolar%20Disorder/Diagnosis/dsmv.htm
+http://www.bipsolutions.com/briefings/Briefings2004/Brief04_12.php
+http://www.bipsolutions.com/pass/consultants.php
+http://www.bird.co.uk/
+http://www.birdhop.net/
+http://www.birdpages.co.uk/main%20pages/sleevenotes.htm
+http://www.birds-eye.net/article_archive/distributed_systems.htm
+http://www.birds-eye.net/article_archive/non-invasive_network_mgt.htm
+http://www.birds-n-garden.com/grow_lights_plants_carts_stands.html
+http://www.birlasunlife.com/home1/school/Tax_issues.asp
+http://www.birthcenters.org/faq/clientsatis.php
+http://www.birthingbetter.com/expectant/special/disabilities.htm
+http://www.bis.org/cbhub/indexc6.htm
+http://www.bis.org/cbhub/indexp4.htm
+http://www.bis.org/events/agm2005/sp050627a.htm
+http://www.bis.org/press/p020710.htm
+http://www.bis.org/press/p031011.htm
+http://www.bis.org/press/p050509b.htm
+http://www.bis.org/publ/cpss68.htm
+http://www.bis.org/speeches/sp000505.htm
+http://www.bis.org/speeches/sp001124.htm
+http://www.bis.org/speeches/sp010621.htm
+http://www.bis.org/speeches/sp030205.htm
+http://www.bis.org/speeches/sp040921.htm
+http://www.bis.org/speeches/sp040927.htm
+http://www.bis.org/speeches/sp050330.htm
+http://www.bis.org/speeches/sp991002.htm
+http://www.biscuitfire.com/workshop_notes12_9aft.htm
+http://www.bisnar-chase.com/medical_malpractice.html
+http://www.bisnis.doc.gov/bisnis/bisdoc/010724vlad_banking.htm
+http://www.bisnis.doc.gov/bisnis/bisdoc/0310AutoRFE.htm
+http://www.bisnis.doc.gov/bisnis/bisdoc/0411KZagribusiness%20report.htm
+http://www.bisnis.doc.gov/bisnis/bisdoc/0412pharmge.htm
+http://www.bisnis.doc.gov/bisnis/lead.cfm?1333
+http://www.bisoncentre.com/resources/bce330/bce330_feed_weigh_station.html
+http://www.bit-tech.net/bits/2005/05/24/amd_lucas_starwars/1.html
+http://www.bit-tech.net/columns/2004/10/08/hands_on_the_keyboard/
+http://www.bitbrothers.com/sea/jobs.htm
+http://www.bitc.org.uk/resources/viewpoint/david_frost.html
+http://www.bitc.org.uk/resources/viewpoint/indexhiggs.html
+http://www.bitlaw.com/patent/international.html
+http://www.bitlessbridle.com/about/lighthearted.phtml
+http://www.bitpipe.com/rlist/term/Application-Integration.html
+http://www.bitrixsoft.com/editions/professional.php
+http://www.bitron.com.au/page2.html
+http://www.bitscapesolutions.com/offshore-outsourcing-india.htm
+http://www.bitstream.com/corporate/news/press_2004/bt_041108_q3results.html
+http://www.bitter-girl.com/blogger.html
+http://www.bitterjerksociety.org/
+http://www.bitterpill.org/
+http://www.bitterroot.com/grizzly/bears8n.htm
+http://www.bitvise.com/contact.html
+http://www.biz-community.com/196/18.html
+http://www.biz-community.com/Article/196/20/4860.html
+http://www.biz-community.com/Companies/196/70.html
+http://www.biz-community.com/PressOffice/PressRelease.aspx?i=209&ai=4576
+http://www.biz-day.com/read/general_news/26_jun_05/gqf9t-4/professional_move_by_singapore_india.htm
+http://www.bizarshop.com.au/products/bizar_shop_specs.html
+http://www.bizatomic.com/terms.html
+http://www.bizauto.com/speak.htm
+http://www.bizbooksoftware.com/sellingsystem.htm
+http://www.bized.ac.uk/
+http://www.bized.ac.uk/compfact/no31/no315.htm
+http://www.bized.ac.uk/current/mind/2003_4/031103.htm
+http://www.bized.ac.uk/current/mind/2003_4/080903.htm
+http://www.bized.ac.uk/current/mind/2004_5/140305.htm
+http://www.bized.ac.uk/dataserv/ons/onsadvice.htm
+http://www.bized.ac.uk/educators/16-19/business/marketing/activity/research.htm
+http://www.bized.ac.uk/learn/sheets/glossary.htm
+http://www.bized.ac.uk/timeweb/digging/dig_source_illus.htm
+http://www.bized.ac.uk/virtual/dc/copper/theory/th17.htm
+http://www.bized.ac.uk/virtual/dc/resource/glos3.htm
+http://www.bized.ac.uk/virtual/economy/library/glossary/glossarymp.htm
+http://www.bizfilings.com/advanta/LLCFAQ.htm
+http://www.bizfilings.com/choosepastissue.asp?issue=75
+http://www.bizforward.com/wdc/issues/2002-03/buzzguide/
+http://www.bizhelp24.com/accounting/first-year-tax-capital-allowances-1.shtml
+http://www.bizhelp24.com/personal_development/body_language.shtml
+http://www.bizintelligencepipeline.com/57700251
+http://www.bizjournals.com/albany/stories/2002/12/09/focus4.html
+http://www.bizjournals.com/albany/stories/2002/12/09/focus4.html?jst=s_rs_hl
+http://www.bizjournals.com/atlanta/stories/2001/12/10/daily33.html
+http://www.bizjournals.com/austin/stories/2004/10/11/daily12.html?jst=s_cn_hl
+http://www.bizjournals.com/austin/stories/2004/12/06/daily34.html
+http://www.bizjournals.com/bizwomen/consultants/sales_moves/1999/08/30/column160.html
+http://www.bizjournals.com/bizwomen/consultants/winning_at_work/2004/03/01/column5.html
+http://www.bizjournals.com/boston/stories/2000/10/02/daily10.html?jst=s_rs_hl
+http://www.bizjournals.com/boston/stories/2002/03/25/story5.html
+http://www.bizjournals.com/buffalo/stories/1999/03/01/smallb1.html
+http://www.bizjournals.com/charlotte/stories/2005/04/11/daily3.html?jst=s_cn_hl
+http://www.bizjournals.com/dallas/stories/2005/01/03/daily42.html
+http://www.bizjournals.com/extraedge/consultants/small_business_briefing/2004/04/26/column114.html
+http://www.bizjournals.com/industries/banking_financial_services/commercial_banking/2005/01/31/portland_focus2.html
+http://www.bizjournals.com/industries/real_estate/residential/2005/06/20/memphis_story1.html?page=2
+http://www.bizjournals.com/industries/real_estate/residential/2005/06/20/memphis_story1.html?t=email_story
+http://www.bizjournals.com/jacksonville/stories/2002/05/06/daily35.html
+http://www.bizjournals.com/nashville/stories/1999/07/19/focus3.html
+http://www.bizjournals.com/orlando/stories/2004/12/06/daily6.html?jst=s_cn_hl
+http://www.bizjournals.com/phoenix/stories/2005/01/24/smallb1.html?jst=s_cn_hl
+http://www.bizjournals.com/sanfrancisco/stories/2004/11/01/daily6.html
+http://www.bizjournals.com/sanfrancisco/stories/2005/01/31/editorial3.html
+http://www.bizjournals.com/seattle/stories/2001/03/12/newscolumn2.html
+http://www.bizjournals.com/seattle/stories/2002/02/04/smallb4.html
+http://www.bizjournals.com/seattle/stories/2002/02/18/newscolumn1.html
+http://www.bizjournals.com/seattle/stories/2002/09/30/newscolumn1.html
+http://www.bizjournals.com/seattle/stories/2003/09/22/smallb4.html
+http://www.bizjournals.com/southflorida/stories/2003/05/19/daily28.html
+http://www.bizjournals.com/tampabay/stories/1997/07/07/daily5.html
+http://www.bizjournals.com/twincities/stories/1997/10/06/focus1.html
+http://www.bizjournals.com/washington/stories/2004/01/26/newscolumn2.html
+http://www.bizmonthly.com/6_2005/5.shtml
+http://www.bizrate.com/buy/noncat_prod_details__cat_id--10260100,keyword--Shoe%20Jordan,mid--39490,oid--179183374.html
+http://www.bizrate.com/buy/noncat_prod_details__oid--309663945.html
+http://www.bizrate.com/buy/products__att1162--1127-,att280721--272635-,cat_id--10100000.html
+http://www.bizrate.com/buy/products__att1162--1127-,cat_id--10100000.html
+http://www.bizrate.com/buy/products__att1162--264716-,att364779--271051-,cat_id--13050805.html
+http://www.bizrate.com/buy/products__att259--393647-,att270257--270258-,cat_id--13030200.html
+http://www.bizrate.com/buy/products__att259--395580-,att296669--270263-,cat_id--16010300.html
+http://www.bizrate.com/buy/products__att288121--266491-,cat_id--14010100.html
+http://www.bizrate.com/buy/products__att296669--270263-,cat_id--16010300.html
+http://www.bizrate.com/buy/products__att364779--271051-,cat_id--13050805.html
+http://www.bizrate.com/buy/products__att372172--294218-,cat_id--12020400,keyword--Mitchell%20Ness.html
+http://www.bizrate.com/buy/products__cat_id--10090300,keyword--easy%20fit.html
+http://www.bizrate.com/buy/products__cat_id--14010100,keyword--Lord%20Of%20Rings.html
+http://www.bizrate.com/buy/products__cat_id--8049,keyword--York.html
+http://www.bizrate.com/buy/refine__att--259818,att259818--more,cat_id--10180000.html
+http://www.bizrate.com/buy/refine__att--298072,att298072--more,cat_id--10090300,keyword--easy%20fit.html
+http://www.bizrate.com/marketplace/product_info/overview/index__cat_id--13110104,prod_id--276883712.html
+http://www.bizrate.com/marketplace/product_info/overview/index__cat_id--420,prod_id--11234843.html
+http://www.bizrate.com/marketplace/product_info/overview/index__cat_id--5213,prod_id--1151322.html
+http://www.bizsites.com/webxtras/ebay.html
+http://www.bizspirit.com/bsj/archive/articles/steckel1.html
+http://www.biztimes.com/index.cfm?fuseaction=currentissue.columnists&issuesColumnistsID=16
+http://www.biztimes.com/index.cfm?fuseaction=currentissue.welcome&display=PubHigh&num=5
+http://www.biztroubleshooter.com/Glossary/glossary_a-n.htm
+http://www.bizwiz.com/bizwizwire/pressrelease/2299/848k8wf8x44ww8ske8j.htm
+http://www.bizwiz.com/salesjobs/topcand.htm
+http://www.bizzykidz.com/faq.php
+http://www.bjcc.org/contact/ctofaq.html
+http://www.bjharvest.co.uk/baby.htm
+http://www.bjinvest.gov.cn/english/8bjhk/fy6.jsp
+http://www.bjmjr.com/afromestizo/el_salvador.htm
+http://www.bjophthalmol.com/cgi/content/full/89/2/151
+http://www.bjreview.com.cn/200420/World-200420(C).htm
+http://www.bjreview.com.cn/200421/Cover-200421(A).htm
+http://www.bjreview.com.cn/En-2005/05-10-e/10-bus-3.htm
+http://www.bkd.com/service/tax/CostSegregation-SaveTaxes.htm
+http://www.bkmarcus.com/blog/
+http://www.bkslegal.com/html/newsletters/lawnotes/SecondQuarter2004.html
+http://www.bl.uk/about/policies/digital.html
+http://www.bl.uk/collections/patents/faq.html
+http://www.bl.uk/collections/social/asylum.html
+http://www.bl.uk/projects/theatrearchive/cheeseman.html
+http://www.bl.uk/projects/theatrearchive/draper.html
+http://www.bl.uk/services/learning.html
+http://www.blaauwberg.net/milnertonbook/CHAPTER7.asp
+http://www.blachford.info/computer/Cells/Cell2.html
+http://www.black-collegian.com/african/kingact101.shtml
+http://www.blackaids.org/kujisource/kuji0102/oasis.htm
+http://www.blackamericaweb.com/site.aspx/misc/aboutus
+http://www.blackandasiangrad.ac.uk/students/initiatives.asp?initiativeID=12
+http://www.blackathletesportsnetwork.net/artman/publish/article_0798.shtml
+http://www.blackboxvoting.org/
+http://www.blackboyscan.co.uk/Mainstream.htm
+http://www.blackbritain.co.uk/columnists/category.aspx?c=Legal
+http://www.blackcatholicchicago.org/news_04/family_reflection_0204.htm
+http://www.blackchat.co.uk/theblackforum/forum16/805.html
+http://www.blackchat.co.uk/theblackforum/forum17/3157.html
+http://www.blackchat.co.uk/theblackforum/forum17/8271.html
+http://www.blackchat.co.uk/theblackforum/view_forum.php?id=16&sort_by=starter
+http://www.blackcommentator.com/133/133_kilson_1.html
+http://www.blackcommentator.com/19_commentary.html
+http://www.blackcommentator.com/38/38_e_mail.html
+http://www.blackcommentator.com/47/47_bacon.html
+http://www.blackcommentator.com/48/48_bubble.html
+http://www.blackdoginstitute.org.au/gettinghelp/links/index.cfm
+http://www.blackducksoftware.com/
+http://www.blackfilm.com/20041224/
+http://www.blackfilm.com/20050617/features/angelarobinson.shtml
+http://www.blackfilm.com/20050624/features/georgearomero.shtml
+http://www.blackfive.net/main/2005/06/blackfive_blogi.html
+http://www.blackfive.net/main/2005/06/the_warrior_liv.html
+http://www.blackfive.net/main/listening_to/
+http://www.blackgate.com/jan02/fiction/3nights.htm
+http://www.blackgate.com/july02/fiction/mama.htm
+http://www.blackgirl.org/beauty.html
+http://www.blackhat.com/html/bh-europe-05/bh-eu-asia-05-cfp.html
+http://www.blackhat.info/live/
+http://www.blackhillsfc.org/answerstoquestions.htm
+http://www.blackhole.on.ca/richardson.htm
+http://www.blackmagic-design.com/company/overview/
+http://www.blackmask.com/cgi-bin/newlinks/page.cgi?g=Gothic_Tales%2FM_R_James%2Findex.html&d=1
+http://www.blackmask.com/jrusk/wcollins/ad/pro4.htm
+http://www.blackmask.com/jrusk/wcollins/deep/deep17.htm
+http://www.blackmountainnews.com/?module=displaystory&story_id=662&format=html
+http://www.blackpool.ac.uk/html/content/schools/curriculumdepartments/visualperformingarts/artdesign/fe/
+http://www.blackpower.de/lyrics/main_artist_ede4984689988a5259925b926e7a6743_lyric_fbdddf6d4fe08a6b74613cb4a5e6808f.html
+http://www.blackpresence.co.uk/pages/historical/jeff_green.htm
+http://www.blackradicalcongress.org/mustsucceed.html
+http://www.blackraptor.net/m7fic-13/debts1.htm
+http://www.blackraptor.net/m7fic-27/tomorrow.htm
+http://www.blackraptor.net/m7fic2/nextday1.htm
+http://www.blackrockresidential.com/br-designs.htm
+http://www.blackshipsandsamurai.com/compsite/core_gifts.html
+http://www.blackskies.com/intro.html
+http://www.blackstoneaudio.com/audiobook.cfm?ID=3155
+http://www.blacktable.com/
+http://www.blacktable.com/blacklist040330.htm
+http://www.blacktable.com/gillin030901.htm
+http://www.blacktable.com/maurier050111.htm
+http://www.blacktown.nsw.gov.au/our-city/history/the-landmarks/royal-cricketers-arms-hotel.cfm
+http://www.blacktriangle.org/blogarchive/2003_09_01_archive.html
+http://www.blackwell-synergy.com/doi/abs/10.1111/j.1365-4632.2004.02079.x
+http://www.blackwell-synergy.com/doi/abs/10.1111/j.1398-9995.2005.00773.x
+http://www.blackwell-synergy.com/doi/abs/10.1111/j.1442-9993.2005.01444.x
+http://www.blackwell-synergy.com/doi/abs/10.1111/j.1471-4159.2004.02942.x
+http://www.blackwell-synergy.com/doi/pdf/10.1111/1467-9701.00558
+http://www.blackwell-synergy.com/links/doi/10.1111/0591-2385.00369
+http://www.blackwell-synergy.com/links/doi/10.1111/1475-4983.00331/abs/
+http://www.blackwell-synergy.com/links/doi/10.1111/j.1365-2745.2004.00945.x
+http://www.blackwell-synergy.com/links/doi/10.1111/j.1365-2966.2005.08844.x/abs/
+http://www.blackwellpublishing.com/Dentistry/authors/permission.asp
+http://www.blackwellpublishing.com/PlantSci/latest/article.asp?id=43
+http://www.blackwellpublishing.com/bauthor/ppoint.asp
+http://www.blackwellpublishing.com/socialpolicy/hillinterview.htm
+http://www.blackwellpublishing.com/submit.asp?ref=0308-0110
+http://www.blackwellpublishing.com/submit.asp?ref=1097-3923
+http://www.bladam.com/archives/0209011828.htm
+http://www.bladeforums.com/forums/archive/index.php/t-176733.html
+http://www.bladeforums.com/forums/showthread.php?t=331930&page=2
+http://www.blagger.com/form2.php
+http://www.blah.me.uk/archive/2005_03_01_archive.html
+http://www.blaine.k12.wa.us/EStandards/Standards/document/chapter4/alg.htm
+http://www.blairbancroft.com/major/excerpt.htm
+http://www.blakeneymanor.com/books/sp/15.html
+http://www.blakes.com/english/publications/brip/article.asp?A_ID=161&DB=blakesProperty
+http://www.blakeston.stockton.sch.uk/subjects/ict/blakyinternet.html
+http://www.blakjak.demon.co.uk/bear_tal.htm
+http://www.blanchardonline.com/aboutblanchard/liberty_head_nickel.php
+http://www.blankrome.com/Publications/maritime/update0105_04.asp
+http://www.blastitude.com/4/pg2.htm
+http://www.blather.net/archives3/issue3no5.html
+http://www.blazerscats.com/german_pinscher/pinscher.html
+http://www.blc.org/task_forces/FY02/tf_rss/rss_wd.html
+http://www.ble.org/pr/news/newsflash.asp?id=4062
+http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm
+http://www.blender3d.org/cms/Blender_Architecture.336.0.html
+http://www.blepharospasm.org/1999baker.html
+http://www.blert.net/fleetwood/repaint.html
+http://www.blessing.org/
+http://www.bletchleyparkheritage.org.uk/aescvh.htm
+http://www.bletchleyrugby.com/club_news.html
+http://www.bletchleyrugby.com/community_development.html
+http://www.blhumber.co.uk/eventsmain.php?s=01-Jul-2005
+http://www.blimpcam.com/guide/basics/setgoals.html
+http://www.blind.state.ia.us/Bep/ch-216d.htm
+http://www.blind.state.ia.us/code.htm
+http://www.blind.state.ia.us/laws/chapter1-rules.htm
+http://www.blindeyemedia.com/chashama.html
+http://www.blindmindseye.com/
+http://www.blindmusicstudent.org/Articles/learning_teaching.htm
+http://www.blink.org.uk/pdescription.asp?key=3418&grp=44&cat=356
+http://www.blink.org.uk/pdescription.asp?key=4205&grp=2&cat=365
+http://www.blink.org.uk/print.asp?key=3418
+http://www.bliss.org.uk/pagebuild.php?texttype=whatsnew_babywalkers_paper
+http://www.blitzpromotions.com/blitz183.htm
+http://www.blizzard.com/war3x/insider/pardo-interview.shtml
+http://www.blm.gov/education/00_resources/articles/alaskas_cold_desert/classroom.html
+http://www.blm.gov/nhp/NPR/pe_dgst4.html
+http://www.blm.gov/nhp/efoia/or/fy2005/ib/ib-or-2005-064.htm
+http://www.blm.gov/nhp/efoia/wo/fy03/im2003-233.htm
+http://www.blm.gov/nhp/efoia/wo/fy05/im2005-006.htm
+http://www.blm.gov/nhp/news/legislative/pages/2000/te000224.htm
+http://www.blm.gov/nhp/news/legislative/pages/2000/te000720PC.htm
+http://www.blm.gov/nhp/news/legislative/pages/2001/te010308.htm
+http://www.blm.gov/nhp/news/legislative/pages/2003/te030604a.htm
+http://www.blm.gov/nhp/news/legislative/pages/2005/te050427.htm
+http://www.blm.gov/nhp/pubs/rewards/2003/fire.htm
+http://www.blog-irish.com/devil2.htm
+http://www.blog-irish.com/jansen.htm
+http://www.blog-irish.com/noirish.htm
+http://www.blog.com.np/index.php?p=611
+http://www.blog.com.np/index.php?p=671
+http://www.blog.mweb.co.za/users/ntsunda
+http://www.blog.mweb.co.za/users/onlythelonely/
+http://www.blogactive.com/
+http://www.blogactive.com/2005/01/take-action-house-republicans-line-up.html
+http://www.blogfc.com/theblog/?p=276
+http://www.blogfodder.net/archives/2002_07.html
+http://www.blogforamerica.com/
+http://www.blogforamerica.com/archives/006455.html
+http://www.blogforamerica.com/archives/006481.html
+http://www.blogforamerica.com/archives/006526.html
+http://www.blogforcleanair.blogspot.com/
+http://www.blogger.com/about
+http://www.blogger.com/knowledge/2004/07/blogging-from-boston.pyra
+http://www.blogger.com/knowledge/2004/09/promoting-your-blog.pyra
+http://www.blogger.com/knowledge/2005/02/so-you-wanna-be-blogstar.pyra
+http://www.bloggerheads.com/archives/2005/04/im_busy.asp
+http://www.bloggerheads.com/bbc/
+http://www.bloggerheads.com/can_weblogs/bush_bum.asp
+http://www.bloggerme.co.uk/the_uk_web_log_forum/9_my_wifes_shoes/
+http://www.bloggers.ca/
+http://www.bloggingbaby.com/entry/1234000407044150/
+http://www.bloggingbaby.com/entry/1234000527047736/
+http://www.blogherald.com/2005/01/07/gates-claims-nearly-1-million-users-for-msn-spaces/
+http://www.blogherald.com/2005/06/07/100000-bloggers-in-germany/
+http://www.bloglet.com/
+http://www.bloglicious.com/tony/
+http://www.bloglines.com/blog/sanjiva?subid=914623
+http://www.bloglogic.net/
+http://www.blogmaverick.com/
+http://www.blogmaverick.com/entry/1234000270043583/
+http://www.blogorithm.com/
+http://www.blogscanada.ca/blog/default.aspx?date=2004-01-30
+http://www.blogscanada.ca/egroup/default.aspx
+http://www.blogscanada.ca/topblogs/
+http://www.blogsforbush.com/
+http://www.blogsforbush.com/mt/archives/002682.html
+http://www.blogsforbush.com/mt/archives/004595.html
+http://www.blogskins.com/info.php?sid=1208
+http://www.blogsofwar.com/
+http://www.blogtimore.com/
+http://www.blogto.com/city/2005/06/good_enough_is_no_longer_good_enough_for_toronto/
+http://www.blonnet.com/ew/2003/02/19/stories/2003021900080100.htm
+http://www.blonnet.com/iw/2004/01/25/stories/2004012500391200.htm
+http://www.blonnet.com/iw/2004/03/28/stories/2004032800150900.htm
+http://www.blonnet.com/iw/2004/08/01/stories/2004080100060900.htm
+http://www.blood-sports.net/mk/mkfaqs/mkgoldfaqs.shtml
+http://www.blood.co.uk/hospitals/communications/concessionary_letter.htm
+http://www.blood.co.uk/hospitals/communications/hl/0410/0410.htm
+http://www.blood.co.uk/hospitals/library/bm/issue6/BM64.htm
+http://www.blood.co.uk/hospitals/library/shot/shot99a.htm
+http://www.blood.co.uk/hospitals/services/user_guide/UG02.htm
+http://www.blood.co.uk/pages/b10faq.html
+http://www.blood.co.uk/pages/bloodonormd.html
+http://www.blood.co.uk/visually_impaired/vi_bloodonormd.html
+http://www.bloodandtreasure.blogspot.com/
+http://www.bloodbath.biz/
+http://www.bloodbook.com/rare.html
+http://www.bloodbook.com/titles.html
+http://www.bloodjournal.org/cgi/content/full/105/2/750
+http://www.bloodline.net/stories/storyReader$3065
+http://www.bloodservices.ca/CentreApps/Internet/UW_V502_MainEngine.nsf/page/E_FAQSafety_Security?OpenDocument
+http://www.bloodstockireland.co.uk/
+http://www.bloomberg.com/analysis/glossary/bfglosn.htm
+http://www.bloomberg.com/apps/news?pid=10000087&sid=aOrdZLguwGWg&refer=top_world_news
+http://www.bloomfield.me.uk/
+http://www.bloomingpc.com/
+http://www.bloomington.in.us/~phototex/transfer.html
+http://www.bloomquist.ca/publications/Church%20materials/lent%201.HTM
+http://www.blopens.com/faq.htm
+http://www.blossomswap.com/garden-forums/index.php?showtopic=5881
+http://www.blounttn.org/trustee/default.htm
+http://www.blowingrock.com/construction.html
+http://www.bls.census.gov/cps/pub/jec_1298.htm
+http://www.bls.census.gov/cps/pub/jec_dec2000.htm
+http://www.bls.gov/mls/home.htm
+http://www.bls.gov/news.release/empsit.nr0.htm
+http://www.bls.gov/oco/cg/cgs005.htm
+http://www.bls.gov/oco/cg/cgs026.htm
+http://www.bls.gov/oco/cg/cgs031.htm
+http://www.bls.gov/oco/oco2001.htm
+http://www.bls.gov/oco/oco2006.htm
+http://www.bls.gov/oco/ocos002.htm
+http://www.bls.gov/oco/ocos023.htm
+http://www.bls.gov/oco/ocos025.htm
+http://www.bls.gov/oco/ocos048.htm
+http://www.bls.gov/oco/ocos053.htm
+http://www.bls.gov/oco/ocos055.htm
+http://www.bls.gov/oco/ocos058.htm
+http://www.bls.gov/oco/ocos059.htm
+http://www.bls.gov/oco/ocos092.htm
+http://www.bls.gov/oco/ocos114.htm
+http://www.bls.gov/oco/ocos121.htm
+http://www.bls.gov/oco/ocos122.htm
+http://www.bls.gov/oco/ocos160.htm
+http://www.bls.gov/oco/ocos162.htm
+http://www.bls.gov/oco/ocos174.htm
+http://www.bls.gov/oco/ocos192.htm
+http://www.bls.gov/oco/ocos260.htm
+http://www.bls.gov/oco/print/ocos192.htm
+http://www.bls.gov/oco/print/ocos260.htm
+http://www.bls.gov/oes/current/naics3_451000.htm
+http://www.bls.gov/oes/current/naics4_448300.htm
+http://www.bls.gov/oes/current/naics4_451100.htm
+http://www.bls.gov/opub/cwc/cm20030124ar03p1.htm
+http://www.bls.gov/opub/hom/homch13_a.htm
+http://www.bls.gov/opub/hom/homch14_g.htm
+http://www.bls.gov/opub/hom/homch1_f.htm
+http://www.bls.gov/opub/mlr/2001/03/bookrevs.htm
+http://www.bls.gov/opub/ted/2001/mar/wk4/art01.htm
+http://www.bls.gov/ro5/cexmpls.htm
+http://www.bls.gov/ro6/ro6pay.htm
+http://www.bls.gov/ro7/aapaymtn.htm
+http://www.bls.gov/ro7/aapayplains.htm
+http://www.bls.gov/ro9/aapca.htm
+http://www.bls.gov/soc/soc_sept.htm
+http://www.blue-room.org.uk/index.php?showtopic=5303&view=getlastpost
+http://www.bluearc.com/html/solutions/solutions-vm-entertainment.shtml
+http://www.bluebirdlane.com/books.htm
+http://www.bluebirdtransfer.com/movingpolicy.html
+http://www.bluebus.org/archives/000183.php
+http://www.bluebytesoftware.com/blog/default.aspx?date=2004-10-10
+http://www.bluecollarandproudofit.com/advice.htm
+http://www.bluecorncomics.com/primtive.htm
+http://www.bluecornmusic.com/site/artists/1092603973/
+http://www.bluecrossca.com/JobOpportunities/HowtoApply.htm
+http://www.bluediamond.com/growers/grower_news/index.cfm?l_tableid=159
+http://www.bluediamond.com/growers/techniques/pest_management/antAttack.cfm
+http://www.bluefish.org/bpaspark.htm
+http://www.bluegrass.net/~jclark/coral_calcium.htm
+http://www.bluegreenearth.us/archive/reviews/2003b/tim_book1.html
+http://www.bluehaze.com.au/humour/2001_06_01.html
+http://www.bluehaze.com.au/vinyl/tech1.html
+http://www.bluehoney.org/Chaos.htm
+http://www.blueindex.co.uk/stock-trading-strategies-forex.html
+http://www.bluejacketscentral.com/
+http://www.bluekipper.com/chippapers/03_04/league/Leicester(a).htm
+http://www.bluelemur.com/index.php?p=388
+http://www.bluelemur.com/index.php?p=519
+http://www.bluemoonranch.net/what's%20new.htm
+http://www.bluemountains.org.au/bushliving/livingnearthebush/recreation.shtml
+http://www.bluenote.com/detail.asp?SelectionID=10218
+http://www.bluenote.com/detail.asp?SelectionID=10246
+http://www.blueoceaninstitute.org/36?speciesId=34
+http://www.blueoregon.com/2005/05/isnt_it_ironic.html
+http://www.blueoregon.com/2005/06/considering_ira.html
+http://www.blueoxfarms.com/Crossbreeding%20Program/cross_breeding_utilizing_scottis.htm
+http://www.blueoxfarms.com/Crossbreeding_Program/cross_breeding_highland_genetics.htm
+http://www.blueplanetaquarium.com/NewBP/terms.html
+http://www.blueribbontaskforce.ohio.gov/committees/FS_3-8-04_minutes.asp
+http://www.blueridgecountry.com/melung/melung.html
+http://www.bluerodeo.com/archive/2004_05_01_showreviews.html
+http://www.bluerodeo.com/br/onedegree.html
+http://www.bluescopesteel.com/navajo/display.cfm/objectID.796068FF-EB58-6098-F49DA32E4F4AB88F/navID.833E9045-A83B-4A3E-BD7D711CB4446C5A
+http://www.bluescopesteel.com/printfriendly.cfm/objectid.796068FF-EB58-6098-F49DA32E4F4AB88F
+http://www.bluesky-tvc.com/FAQ.htm
+http://www.bluesmatters.com/
+http://www.bluesnews.com/
+http://www.bluesuitmom.com/career/findingbalance/familytime.html
+http://www.blueudewritersservices.com/tipsandmarkets.htm
+http://www.bluewaterbiggame.com/hunting_news/world_conservation_force_200408.cfm
+http://www.bluewatersys.com/consulting/doc/tools/pcb.php
+http://www.bluewatersys.com/development/doc/realview/integrator/im/logic.php
+http://www.bluewatersys.com/development/doc/realview/versatile/lt.php
+http://www.bluewillowinn.com/recipes/recipe1.htm
+http://www.bluffton.edu/~bergerd/NSC_111/science1.html
+http://www.bluhorizonlines.org/kno/kno1.html
+http://www.bluhorizonlines.org/kno1.html
+http://www.blumhardts.com/articles/bl/ActionInWaiting.htm
+http://www.blupete.com/Hist/BiosNS/1700-63/Monckton.htm
+http://www.blupete.com/Hist/NovaScotiaBk1/Part6/Ch03.htm
+http://www.blupete.com/Literature/Essays/Hazlitt/DiffWritSpeak.htm
+http://www.blupete.com/Literature/Essays/Hazlitt/Political/MalthusIII.htm
+http://www.blurredistinction.com/director/
+http://www.blurredistinction.com/director/links.htm
+http://www.bm.com/pages/insights/pubs/articles/as-05-01-2003
+http://www.bma.org.uk/ap.nsf/Content/CCSCconf03sp
+http://www.bma.org.uk/ap.nsf/Content/DDRBEvidenceOct04~DDRBEvidenceOct04App1
+http://www.bma.org.uk/ap.nsf/Content/DemographyMedSchls
+http://www.bma.org.uk/ap.nsf/Content/End+of+life+decisions+-+June+2000
+http://www.bma.org.uk/ap.nsf/Content/PR-Why+are+we+waiting+for+action+on+public+health%3F+asks+BMA+-+04+Feb+2005
+http://www.bma.org.uk/ap.nsf/Content/Prison+medicine
+http://www.bma.org.uk/ap.nsf/Content/annrep2002~annrep2002+-+scotland
+http://www.bma.org.uk/ap.nsf/Content/learnexperience
+http://www.bma.org.uk/ap.nsf/content/demographymedschls
+http://www.bma.org.uk/tcrc.nsf/0/5489cda8ae5a9b6c8025688f00527523?OpenDocument
+http://www.bmbf.de/en/757.php
+http://www.bmcc.org/Headstart/Act/
+http://www.bmd.org/health/glossary.html
+http://www.bme.jhu.edu/~jdiedric/state_space_workshop/
+http://www.bme.sunysb.edu/bme/people/faculty/fac_core.html
+http://www.bme.vanderbilt.edu/research_erc.html
+http://www.bmezine.com/caba/cc95.html
+http://www.bmezine.com/news/people/A10101/nohand/
+http://www.bmezine.com/news/presenttense/20050203.html
+http://www.bmezine.com/news/pubring/20040120.html
+http://www.bmezine.com/news/pubring/20050401.html
+http://www.bmezine.com/pierce/02-tongue/A50118/tngfaile.html
+http://www.bmezine.com/pierce/04-eyebrow/A41014/eyemysec.html
+http://www.bmezine.com/pierce/11-surface/A50127/srfkeepi.html
+http://www.bmezine.com/scar/A41006/scrnaihe.html
+http://www.bmgmusic.com/catalog/product/cd_detail.jhtml?productId=59739
+http://www.bmhcc.org/facilities/oxford/visitors.asp
+http://www.bmjbookshop.com/shop/product_display.asp?productid=072772018X&productname=Alternative+Materials+in+Road+Construction
+http://www.bmjcareers.com/static/soapopera/episode10.html
+http://www.bmjcareers.com/static/soapopera/episode7.html
+http://www.bmn.com/
+http://www.bmo.com/economic/regular/sector.html
+http://www.bmpg.co.uk/problem.html
+http://www.bms.abdn.ac.uk/undergraduate/bi20b2cn.htm
+http://www.bmsworldmission.org/14702
+http://www.bmsworldmission.org/15572
+http://www.bmtnews.org/bmt/bmt.book/chapter.6.html
+http://www.bmwassembly.ie/ga/main_ga.asp?lang=ga&text=&filename=comp/social_care/4_local_develop.htm
+http://www.bmyers.com/coolsite.htm
+http://www.bmyers.com/products/item13.cfm
+http://www.bmyers.com/public/department48.cfm
+http://www.bmz.amsterdam.nl/adam/uk/bruggen.html
+http://www.bna.com/
+http://www.bnai.com/cms.aspx?qpcode=iplw
+http://www.bnaibrith.ca/institute/dfait/DFAIT2003-03.html
+http://www.bnatax.com/tm/insights_JuneCPJ.htm
+http://www.bnatax.com/tm/insights_treatmentofoptions.htm
+http://www.bne.state.tx.us/breakem.htm
+http://www.bne.state.tx.us/telenurse.htm
+http://www.bnet.com/abstract.aspx?cid=161&docid=100882
+http://www.bnet.com/story.html?id=28168
+http://www.bni.com/successnet/2nd_qtr_2001/news-na.shtml
+http://www.bnl.gov/bnlweb/Museum/CampUpton_museum.html
+http://www.bnl.gov/bnlweb/pubaf/pr/2002/bnlpr102902.htm
+http://www.bnl.gov/bnlweb/pubaf/pr/PR_display.asp?prID=05-15
+http://www.bnms.org.uk/radiopharmacists.htm
+http://www.bnn-online.co.uk/news_datesearch.asp?SearchDate=12/Apr/2003&Year=2003
+http://www.bnn-online.co.uk/news_datesearch.asp?page=3&SearchDate=25/Oct/2000&Year=2000
+http://www.bnn-online.co.uk/news_datesearch.asp?page=5&SearchDate=26/Oct/2000&Year=2000
+http://www.bnvn.com/latestvideo/Feb04.htm
+http://www.bo-hemian.com/di02nov.html
+http://www.boajjang.com/
+http://www.boalt.org/bjcl/v8/v8dewey.htm
+http://www.boalt.org/bjcl/v8/v8deweyprint.htm
+http://www.boardco.com/Customerser/return_policy.htm
+http://www.boardgamegeek.com/game/398
+http://www.boardingschoolsusa.com/factshts/purnell.asp
+http://www.boardmember.com/issues/archive.pl?article_id=11907
+http://www.boardmember.com/network/index.pl?section=1022&article_id=11980&show=article
+http://www.boardmember.com/network/index.pl?section=1071&article_id=10229&show=article
+http://www.boardmember.com/network/index.pl?section=1086&article_id=11980&show=article
+http://www.boardmember.com/network/index.pl?section=1152&article_id=10555&show=article
+http://www.boardoftrade.com/vbot_speech.asp?pageID=174&speechID=735&offset=&speechfind=
+http://www.boardofwenches.com/fq77.html
+http://www.boardoptions.com/HEADLINE_apr21.htm
+http://www.boards.ie/vbulletin/archive/index.php/t-205660.html
+http://www.boardsource.org/LandingPage.asp?ID=60
+http://www.boatsandoutboards.com/
+http://www.boattraderonline.com/about.html?view=visitor
+http://www.boatus.com/news/seafood_0304.htm
+http://www.bob-baker.com/qt/supercharge.html
+http://www.bobbergen.com/class.htm
+http://www.bobethomas.com/monologues/monologues_catfish_frameset.htm
+http://www.bobfromaccounting.com/shizzypage9.html
+http://www.boblucky.com/Biking/Holland/day3.htm
+http://www.bobparsons.com/50000foramannottoeatarabbitThecuriouscaseofSaveTobycomt.html
+http://www.bobpikegroup.com/perform_sol/training/decisionfocus.html
+http://www.bobrivers.com/ontheshow/brsnews.asp?dismode=article&artid=2366
+http://www.bobtuley.com/pointshooting.htm
+http://www.boc.ca.gov/BoardMembers.htm
+http://www.boc.net/service.html
+http://www.bocaresort.com/Questions/index.aspx
+http://www.bocce.net/research.jsp?lng=eng
+http://www.bocce.net/research.jsp?lng=fre
+http://www.bocce.net/research.jsp?lng=ita
+http://www.bochk.com/web/home/hyperlink_policy.xml
+http://www.bodegaharbourrestaurant.com/menus.html
+http://www.bodley.ox.ac.uk/dept/readerserv/history/westeuropean.htm
+http://www.bodley.ox.ac.uk/icsu/kingppr.htm
+http://www.bodley.ox.ac.uk/librarian/fiesole/fiesole.htm
+http://www.bodossaki-foundation.gr/dren4.htm
+http://www.bodybreak.com/jen_diet.html
+http://www.bodybuilding.com/fun/atd5.htm
+http://www.bodybuilding.com/fun/babyboom46.htm
+http://www.bodybuilding.com/fun/bbinfo.php?page=Myths
+http://www.bodybuilding.com/fun/david46.htm
+http://www.bodybuilding.com/fun/dickinson8.htm
+http://www.bodybuilding.com/fun/mahler30.htm
+http://www.bodybuilding.com/fun/matt18.htm
+http://www.bodybuilding.com/fun/moser7.htm
+http://www.bodybuilding.com/fun/planet47.htm
+http://www.bodybuilding.com/fun/planet6.htm
+http://www.bodybuilding.com/fun/saunders2.htm
+http://www.bodybuildingforyou.com/health-supplements/green-tea-extract.htm
+http://www.bodychangers.com/nextlevel.shtml
+http://www.bodydharma.org/choices/Iraq/klein2.html
+http://www.bodyfatguide.com/Testimonials.htm
+http://www.bodyguardmagazine.net/subscriptions/subscribenow.php
+http://www.bodyline.co.za/fitfacts2003_day1sessions.htm
+http://www.bodymindinformation.com/articles/article4.htm
+http://www.bodytrends.com/articles/flexibility/inachair.htm
+http://www.boe.ca.gov/sptaxprog/sb_50_bill_20040929_chaptered.htm
+http://www.boe.ca.gov/sutax/faqpurch.htm
+http://www.boe.ca.gov/sutax/taxdecrease.htm
+http://www.bogdana.net/
+http://www.boggsspace.com/
+http://www.boghill.com/Workshops.htm
+http://www.bohlmanquarterhorses.com/equinetips.html
+http://www.bohol.ph/article75.html
+http://www.boingboing.net/images/blobjects.htm
+http://www.boiseartmuseum.org/forum/topic.asp?TOPIC_ID=109
+http://www.boj.com/opportunities/Spring_Green/Spring_Green.htm
+http://www.boku.ac.at/iam/singlecell/
+http://www.bolcomandmorris.com/bolcom.html
+http://www.boldapproach.com/
+http://www.boldapproach.com/public_relations.html
+http://www.boldoutlaw.com/robint/watson1.html
+http://www.boldoutlaw.com/robspot/0199.html
+http://www.bolender.com/Sociological%20Theory/Park,%20Robert%20Ezra/park,_robert_ezra.htm
+http://www.bolingbrook.com/index.php?page_id=33
+http://www.boloji.com/cinema/sod.htm
+http://www.boloji.com/computing/015.htm
+http://www.boloji.com/sikhism/japujisahib/js01.htm
+http://www.boloji.com/stories/003.htm
+http://www.boloji.com/wfs/wfs056.htm
+http://www.bolshevik.org/Leaflets/Vote%20Spartacist.html
+http://www.bolt.com/editor/page/paLmtreeundOne?catname=/Sex
+http://www.bom.gov.au/announcements/media_releases/sa/saro_19981201.shtml
+http://www.bom.gov.au/bmrc/SatRainVal/validation-intercomparison.html
+http://www.bom.gov.au/bmrc/ocean/GODAE/Symposium%20II/Breakout_Abstracts.htm
+http://www.bom.gov.au/faq/
+http://www.bom.gov.au/lam/Students_Teachers/lesson13.shtml
+http://www.bom.gov.au/other/wbf/wa.shtml
+http://www.bomberblitz.com/
+http://www.bomengids.nl/uk/hoofdsleutel.html
+http://www.bond.org.uk/classifieds/jobs.html
+http://www.bondmarkets.com/story.asp?id=782
+http://www.bondmarkets.com/w-weekly/2004.shtml
+http://www.bondtalk.com/global.cfm?S=marcom&SS=market_commentaries&ID=3361
+http://www.bondtrades.com/essent/essent1.html
+http://www.bonhams.com/cgi-bin/wspd_cgi.sh/pubweb/publicSite.r?sContinent=EUR&screen=Staffordshire
+http://www.bonhaven.org/form.shtml
+http://www.bonitanews.com/03/07/bonita/d941360a.htm
+http://www.bonsai-wbff.org/rjapan.shtml
+http://www.bonsaisite.com/survey10.html
+http://www.booch.com/architecture/blog.jsp?archive=2004-02.html
+http://www.boogenstein.com/?c=Music
+http://www.boogenstein.com/?pg=3
+http://www.boogiejack.com/
+http://www.book-worm.org/doyle-arthur-conan/beyond-the-city/chapter-15.html
+http://www.bookbaskets.net/cupbrowse.html
+http://www.bookbay.com/bookfaq.htm
+http://www.bookbrowse.com/bookclubfun/
+http://www.bookbrowse.com/bookclubfun/page4.cfm
+http://www.bookbrowse.com/bookclubfun/page5.cfm
+http://www.bookbrowse.com/dyn_/title/titleID/1202.htm
+http://www.bookbrowse.com/index.cfm?page=author&authorID=123&view=Interview
+http://www.bookbrowse.com/index.cfm?page=title&titleID=1202
+http://www.bookbrowse.com/index.cfm?page=title&titleID=438&view=printguide
+http://www.bookcloseouts.com/default.asp?No=300&N=665&Ne=349&org=sub
+http://www.bookcloseouts.com/default.asp?R=0743248570S
+http://www.bookclubs.ca/catalog/display.pperl?037575881X&view=printrg
+http://www.bookclubs.ca/catalog/display.pperl?0812966015&view=printexcerpt
+http://www.bookclubs.ca/catalog/display.pperl?isbn=037575881X&view=rg
+http://www.bookclubs.ca/catalog/display.pperl?isbn=0812966015&view=excerpt
+http://www.bookclubs.ca/catalog/display.pperl?isbn=9780739302071&view=excerpt
+http://www.bookcrossing.com/articles/1451/Changes-in-Reading-Tastes,-Usually-Cheaper
+http://www.bookcrossing.com/forum/6/2269860/subj_-BLOOD-MERIDIAN
+http://www.bookcrossing.com/journal/2712123
+http://www.bookcrossing.com/journal/2905905
+http://www.bookforum.com/archive/apr_05/vanderbilt.html
+http://www.bookforum.com/boynton.html
+http://www.bookforum.com/vanderbilt.html
+http://www.bookings.org/hotel/gb/carltongeorge.html?aid=300047
+http://www.bookmarc.com/
+http://www.booknoise.net/flickeringmind/reviews/
+http://www.bookpool.com/ct/183
+http://www.bookpool.com/sm/0201752840
+http://www.bookpool.com/sm/0789732564
+http://www.bookpool.com/sm/1578700418
+http://www.bookpool.com/sm/1578700949
+http://www.bookpool.com/sm/1587200880
+http://www.bookrags.com/biography/james-george-frazer-sir/
+http://www.bookreporter.com/reviews/006056038X-excerpt.asp
+http://www.bookreporter.com/reviews/0440241413-excerpt.asp
+http://www.bookreporter.com/reviews2/0060572140-excerpt.asp
+http://www.bookreporter.com/reviews2/0385336675-excerpt.asp
+http://www.bookreporter.com/suspense_thriller/0412montanari/montanari-richard_books.asp
+http://www.bookreporter.com/wom/wom-010525.asp
+http://www.bookreporter.com/wom/wom-010810.asp
+http://www.bookreporter.com/wom/wom-020201.asp
+http://www.bookreporter.com/wom/wom-040109.asp
+http://www.bookreporter.com/wom/wom-040227.asp
+http://www.bookrevue.com/about.html
+http://www.books-about-california.com/Pages/The_Jewel_City/The_Jewel_City_Chap_15.html
+http://www.books.brodart.com/products/automation/dartclix.htm
+http://www.booksandauthors.net/Reviews/GraciesLastSmile.html
+http://www.booksattransworld.co.uk/catalog/extract.htm?command=search&db=twmain.txt&eqisbndata=0593051823
+http://www.booksbyandromeda.alaskawriters.com/kenai2.html
+http://www.booksellers.org.uk/launchdates/code.asp
+http://www.bookslut.com/comicbookslut/2005_03_004682.php
+http://www.bookslut.com/features/2003_12_001158.php
+http://www.booksofzimbabwe.com/page4aa.html
+http://www.booksoup.com/authorevents.asp?LocationID=1
+http://www.bookstore.washington.edu/trade.taf?dept=attribute&category=events&par=trade&ttl=events&page=1
+http://www.booksxyz.com/results.php?sub=2&gg=820
+http://www.bookviews.com/
+http://www.bookviews.com/archive/bookviews-oct2004.htm
+http://www.bookwolf.com/Free_Booknotes/All_Quiet_on_the_Western_Front/Chapter_6_-_All_Quiet_on_the_W/chapter_6_-_all_quiet_on_the_w.html
+http://www.bookzonepro.com/profiles.cfm
+http://www.boombasticradio.com/index.cfm/load/album%20info/albumID/1495/
+http://www.boombasticradio.com/index.cfm/load/album%20info/albumId/1495/
+http://www.boomerangbooks.com/help.htm
+http://www.boomerangbooks.com/reciprocal_links.htm
+http://www.boomkat.com/
+http://www.boomspeed.com/joseph2/aUFOhistoryPage2.htm
+http://www.boonecountyky.org/EM/FamilyDisasterPlan.htm
+http://www.boosey.com/pages/teaching/news/further_info.asp?NewsID=10737&LangID=
+http://www.boosman.com/blog/archives/2005/01/when_does_350_m.html
+http://www.boot.com/
+http://www.boot.com/bsizcvt.htm
+http://www.bootsnall.com/articles/01-02/it-doesnt-matter-which-road-you-take-6.html
+http://www.bootsnall.com/articles/01-09/er-in-guatemala-guatemala.html
+http://www.bootsnall.com/articles/04-12/heart-of-a-lyon-lyon-france.html
+http://www.bootsnall.com/asiatravelguides/apr02aleppo.shtml
+http://www.bootsnall.com/oddsnends/nov03egypt.shtml
+http://www.bootsnall.com/rtw/05-03/personal-stories-petra-stormen.html
+http://www.bopnews.com/archives/001813.html
+http://www.bopnews.com/archives/002390.html
+http://www.bopnews.com/archives/003067.html
+http://www.bopnews.com/archives/003150.html
+http://www.boprugby.co.nz/union/about.htm
+http://www.bopsecrets.org/PH/cem.htm
+http://www.bopsecrets.org/rexroth/essays/new-english-bible.htm
+http://www.bordercollie.org/core.html
+http://www.borderlands-books.com/about_history.html
+http://www.borderlands.com/archives/arch/thermo.html
+http://www.borderlinks.org/bl/wordfromrick/rickoct2000.htm
+http://www.bordersunion.org/node?from=50
+http://www.bordersunion.org/node?from=70
+http://www.borealcanada.ca/news_e.cfm?p_id=222
+http://www.borenstein-online.com/jobs.asp
+http://www.borg.com/~rparkany/Standards/HOPE/NYSSchoolAidDecisionNYT.htm
+http://www.borndigital.com/holm/kurtz.htm
+http://www.bornfree.org.uk/elephantfree/elefree05.html
+http://www.bornfree.org.uk/zoocheck/zcprojects01.htm
+http://www.borntoinspire.com/articles/barbara.rose/personal.alchemy.rsw%7CPOZKSPHEHMOGPVNYWCPBXXSCCZJDLTEA%7C
+http://www.bortonwallace.com/pcl_choosingfirm.html
+http://www.bos.frb.org/economic/nerr/rr2002/q4/doingtime.htm
+http://www.bos.frb.org/finsvcs/services/cash/cash.htm
+http://www.bos.frb.org/news/speeches/cem/2005/011205.htm
+http://www.bos.frb.org/news/speeches/cem/2005/040105.htm
+http://www.bosnianembassypakistan.org/culture&economy.htm
+http://www.bosskey.net/q3a/powerups.html
+http://www.boston.com/
+http://www.boston.com/beyond_bigdig/cases/barcelona/index.shtml
+http://www.boston.com/beyond_bigdig/news/artery_033003_magazine_entire.htm
+http://www.boston.com/beyond_bigdig/opinion/artery_032903.htm
+http://www.boston.com/business/articles/2005/05/18/romney_aide_targets_debt_at_hospitals?mode=PF
+http://www.boston.com/business/articles/2005/06/20/companies_seek_foothold_in_heartland/
+http://www.boston.com/business/articles/2005/06/20/companies_seek_foothold_in_heartland?mode=PF
+http://www.boston.com/business/globe/articles/2005/06/23/abiomeds_heart_device_may_get_ok/
+http://www.boston.com/business/technology/articles/2003/11/02/boston_contractor_helping_us_companies_find_low_wage_labor_abroad/
+http://www.boston.com/globe/metro/packages/tickets/072103.shtml
+http://www.boston.com/globe/nation/packages/nuclear_shadow/061802.htm
+http://www.boston.com/movies/display?display=movie&id=6869
+http://www.boston.com/news/chats/at_home/meltz_121003.htm
+http://www.boston.com/news/education/higher/articles/2004/03/18/medical_students_celebrate_their_match_and_seem_to_back_system/
+http://www.boston.com/news/education/higher/articles/2005/05/01/science_friction?pg=full
+http://www.boston.com/news/education/higher/articles/2005/05/08/in_maine_a_totally_green_graduation/
+http://www.boston.com/news/education/higher/articles/2005/05/15/holy_cross_scraps_sat_admissions_requirement/
+http://www.boston.com/news/education/higher/articles/2005/07/01/ramen_stand_proves_popular_in_greenwich/
+http://www.boston.com/news/education/k_12/articles/2004/07/25/kindergarten_scares_parents_more_than_child/
+http://www.boston.com/news/education/k_12/mcas/articles/2005/06/05/girls_put_numbers_up_in_math/
+http://www.boston.com/news/globe/city_region/
+http://www.boston.com/news/globe/editorial_opinion/oped/articles/2004/12/01/the_fairy_tale_about_soft_drink_nutrition_wont_sell/
+http://www.boston.com/news/globe/editorial_opinion/oped/articles/2005/03/30/charter_schools_troubled_waters/
+http://www.boston.com/news/globe/health_science/articles/2004/04/06/drink_to_this/
+http://www.boston.com/news/globe/health_science/articles/2005/06/14/advice_to_physicians_make_yourself_matter/
+http://www.boston.com/news/globe/ideas/articles/2004/02/29/good_fences/
+http://www.boston.com/news/globe/ideas/articles/2004/10/10/the_revolution_next_time?pg=full
+http://www.boston.com/news/globe/ideas/articles/2005/06/19/downing_street_secrets/
+http://www.boston.com/news/globe/living/articles/2005/06/12/once_upon_a_hill/
+http://www.boston.com/news/globe/magazine/articles/2004/12/05/left_behind?mode=PF
+http://www.boston.com/news/globe/magazine/articles/2004/12/05/left_behind?pg=full
+http://www.boston.com/news/globe/magazine/articles/2005/05/29/same_old_southie?pg=full
+http://www.boston.com/news/globe/magazine/articles/2005/06/26/finishing_his_sentence/
+http://www.boston.com/news/local/articles/2004/05/10/blogs_colliding_with_traditional_media/
+http://www.boston.com/news/local/articles/2005/06/05/girls_put_numbers_up_in_math/
+http://www.boston.com/news/local/articles/2005/06/19/immigrant_labor_force_booming/
+http://www.boston.com/news/local/articles/2005/06/19/not_so_strange_political_bedfellows/
+http://www.boston.com/news/local/massachusetts/articles/2005/06/19/immigrant_population_still_growing/
+http://www.boston.com/news/nation/articles/2004/04/14/a_medical_match_game/
+http://www.boston.com/news/nation/articles/2004/10/03/back_room_dealing_a_capitol_trend?pg=full
+http://www.boston.com/news/packages/iraq/globe_stories/022603_goodbyes.htm
+http://www.boston.com/news/packages/nightclub_fire/Series_of_errors_sealed_crowd_s_fate+.shtml
+http://www.boston.com/news/packages/underattack/weaponry.htm
+http://www.boston.com/news/politics/president/articles/2004/11/04/hope_and_concern_voiced_after_bush_victory?pg=full
+http://www.boston.com/news/specials/gay_marriage/sjc_020404/
+http://www.boston.com/news/world/middleeast/articles/2005/01/08/us_general_warns_of_attacks_before_vote?mode=PF
+http://www.boston.com/realestate/communities/profiles/2001/cohasset.html
+http://www.boston.com/sports/baseball/redsox/articles/2005/02/24/loud_and_clear/
+http://www.boston.com/sports/baseball/redsox/articles/2005/06/09/team_will_have_to_manage_without_him/
+http://www.boston.com/sports/baseball/redsox/articles/2005/06/20/francona_had_patchwork_plan_up_his_sleeve/
+http://www.boston.com/sports/baseball/redsox/articles/2005/06/20/francona_had_patchwork_plan_up_his_sleeve/?page=2
+http://www.boston.com/sports/basketball/celtics/articles/2005/02/03/a_passing_interest_in_kidd/
+http://www.boston.com/sports/football/articles/2005/02/04/pols_get_access_to_relatively_cheap_bowl_tickets/
+http://www.boston.com/sports/football/patriots/articles/2005/02/07/otoole_gets_street_level_view_of_security/
+http://www.boston.com/sports/football/patriots/articles/2005/06/12/terms_of_enrichment/
+http://www.boston.com/sports/hockey/articles/2005/06/07/nhl_attempts_to_redraw_lines_rink_revision_gets_a_test_drive/
+http://www.boston.com/sports/hockey/bruins/articles/2005/06/09/power_trip/
+http://www.boston.com/sports/other_sports/olympics/local_athletes/
+http://www.boston.com/travel/articles/2003/12/28/st_louis_blues____not_for_gay_visitors?mode=PF
+http://www.boston.com/travel/articles/2003/12/28/st_louis_blues____not_for_gay_visitors?pg=full
+http://www.boston.com/travel/articles/2005/02/06/watch_whats_happening_here_cool_contented_in_berlin/
+http://www.boston.com/travel/articles/2005/02/06/watch_whats_happening_here_cool_contented_in_berlin?mode=PF
+http://www.boston.com/travel/articles/2005/02/06/watch_whats_happening_here_cool_contented_in_berlin?pg=full
+http://www.boston.com/travel/getaways/europe/articles/2005/02/06/watch_whats_happening_here_cool_contented_in_berlin/
+http://www.boston.com/travel/getaways/europe/articles/2005/02/06/watch_whats_happening_here_cool_contented_in_berlin?mode=PF
+http://www.boston.com/travel/getaways/europe/articles/2005/02/06/watch_whats_happening_here_cool_contented_in_berlin?pg=full
+http://www.boston.com/yourlife/health/children/articles/2005/06/12/adult_diabetes_hitting_children/
+http://www.boston.com/yourlife/health/diseases/articles/2005/03/10/new_heart_attack_drug_treatment_hailed?mode=PF
+http://www.boston.com/yourlife/health/other/articles/2004/04/06/drink_to_this/
+http://www.bostonbar.org/pw/bw/0304/112303/bw112303.htm
+http://www.bostonbaseball.com/whitesox/baseball_extras/steal.html
+http://www.bostoncomment.com/bostonc3.htm
+http://www.bostoncriticalmass.org/legaldefense.html
+http://www.bostondirtdogs.com/
+http://www.bostongolfschool.com/golf2002.html
+http://www.bostonmagazine.com/ArticleDisplay.php?id=234
+http://www.bostonmagazine.com/ArticleDisplay.php?id=300
+http://www.bostonmagazine.com/ArticleDisplay.php?id=322
+http://www.bostonmagazine.com/ArticleDisplay.php?id=322&print=yes
+http://www.bostonmagazine.com/ArticleDisplay.php?id=432
+http://www.bostonphoenix.com/boston/news_features/dont_quote_me/multi-page/documents/02814301.htm
+http://www.bostonphoenix.com/boston/news_features/editorial/documents/01655665.htm
+http://www.bostonphoenix.com/boston/news_features/other_stories/multipage/documents/04414482.asp
+http://www.bostonphoenix.com/medialog/2003_03_30_archive.asp
+http://www.bostonrecords.com/
+http://www.bostonreview.net/BR21.3/Bankman.html
+http://www.bostonsingersresource.com/elizabethpoe1.asp
+http://www.bostonstrategy.com/players/01_police/01_evans.html
+http://www.botanical.com/botanical/mgmh/r/roses-18.html
+http://www.botanicaldog.com/clientlogin.php
+http://www.botany.hawaii.edu/faculty/wong/BOT135/LECT12.HTM
+http://www.botball.org/standards/
+http://www.bothell.washington.edu/writingcenter/readwrite.html
+http://www.bottle-bong.com/disclaimer.html
+http://www.bottlebooks.com/medicinf.htm
+http://www.bou.org.uk/recnews.html
+http://www.boucherenergy.com/heat.htm
+http://www.boulderbookstore.com/StMartins.html
+http://www.bouncingbearbotanicals.com/nymphaea_caerulea.htm
+http://www.boundbygravity.com/2005_01_01_bbgarchive.aspx
+http://www.boundless.org/2002_2003/features/a0000651.html
+http://www.boundless.org/features/a0000879.html
+http://www.boundless.org/features/a0000879.html?ResultsOnly=livingathome
+http://www.boundless.org/features/a0000879.html?ResultsOnly=valentineshope
+http://www.bountifulbaby.com/seaside/index/destiny
+http://www.bowdoin.edu/counseling/eating/index.shtml
+http://www.bowdoin.edu/profiles/archives/students/elena_roseo_05.shtml
+http://www.bowhunting.net/SteveBartylla/2004-Illinois-03.html
+http://www.bowhunting.net/SteveBartylla/BluffCountry2004b.html
+http://www.bowjamesbow.net/2002/11/18-the_villag.shtml
+http://www.bowjamesbow.net/2003/07/28-writing_fo.shtml
+http://www.bowjamesbow.net/2003/08/22-the_myth_o.shtml
+http://www.bowjamesbow.net/2005/06/02-fifteen_co.shtml
+http://www.bowjamesbow.net/blog.shtml
+http://www.bowlingalone.com/data.php3
+http://www.bowlingfortruth.com/bowlingforcolumbine/scenes/bank.htm
+http://www.boxer2008.com/
+http://www.boxerlaw.com/bg04006.htm
+http://www.boxerrescue.com/foster_home_appl.htm
+http://www.boxerworld.com/rescue/abra/
+http://www.boxerworld.com/rescue/commercial/
+http://www.boxesandarrows.com/archives/cognitive_psychology_ia_from_theory_to_practice.php
+http://www.boxesandarrows.com/archives/computer_human_values.php
+http://www.boxesandarrows.com/archives/defining_feature_sets_through_prototyping.php
+http://www.boxesandarrows.com/archives/got_usability_talking_with_jakob_nielsen.php
+http://www.boxesandarrows.com/archives/oversimple_answers_for_simple_minds.php
+http://www.boxesandarrows.com/archives/site_diagrams_mapping_an_information_space.php
+http://www.boxesandarrows.com/archives/synonym_rings_and_authority_files.php
+http://www.boxesandarrows.com/archives/talking_with_virginia_postrel.php
+http://www.boxesandarrows.com/archives/toggling_shapes_in_visio_special_deliverable_12.php
+http://www.boxesandarrows.com/archives/use_of_narrative_in_interactive_design.php
+http://www.boxesandarrows.com/archives/whats_in_a_name_or_what_exactly_do_we_call_ourselves.php
+http://www.boxesandbubbles.co.uk/moving-tips.php
+http://www.boxtops4education.com/global/rules.asp
+http://www.boycottgreenmountain.com/
+http://www.bozzysworld.com/archives/2003/09/24/michael_moore_responds_to_critics.php
+http://www.bpassoc.org.uk/fundraising/fundraising.htm
+http://www.bpaww.com/about_bpa/team/
+http://www.bpc.edu/administration/human_resources/human_resources_employment.htm
+http://www.bpc.org/resources/articles/machen/culture.html
+http://www.bpcpa.ca/Consumers/help/consumers-help-debt-collection.htm
+http://www.bpcweb.net/official/socratic.htm
+http://www.bpdcentral.com/bks/more_books.shtml
+http://www.bpfh.net/stories/tcp-towers/plaza.html
+http://www.bpkids.org/learning/reference/articles/
+http://www.bplans.com/qa/article.cfm?i=178
+http://www.bplans.com/spv/3003/index.cfm?affiliate=pas
+http://www.bplans.com/spv/3015/1.cfm
+http://www.bplans.com/spv/3015/index.cfm?affiliate=pas
+http://www.bplans.com/spv/3103/index.cfm?affiliate=pas
+http://www.bplans.com/spv/3382/2.cfm
+http://www.bpmotorsports.net/lb2cat-press-7-23-04-web.htm
+http://www.bpp.com/law/left_menu/open_days/open_days.htm
+http://www.bps.org.uk/e-services/faqs/faqs_home.cfm
+http://www.bps.org.uk/e-services/faqs/faqs_home.cfm?templatetheme=textonly
+http://www.bps.org.uk/the-society/ethics-rules-charter-code-of-conduct/code-of-conduct/a-briefing-paper-on-sexual-harassment-at-work-and-the-ethics-of-dual-relationships.cfm
+http://www.bps.org.uk/the-society/ethics-rules-charter-code-of-conduct/code-of-conduct/guidelines-for-psychologists-working-with-animals.cfm
+http://www.bpwpa.org/Programs.htm
+http://www.brabazon.org.uk/brab20.htm
+http://www.bracebridgeexaminer.com/news_-_sept_02_04.htm
+http://www.braces.org/braces/about/faq/faq_concerns.cfm
+http://www.braces.org/news/main.cfm
+http://www.braces.org/news/pf_main.cfm
+http://www.bracu.ac.bd/academics/dept/course.php?code=SADC
+http://www.brad-oliver.com:8080/~boliver/blog/archives/000592.html
+http://www.brad.ac.uk/university/pgpros/mgt-mba.php
+http://www.bradburydesign.com/appliedarts_feature.html
+http://www.bradfallon.com/articles/embed.html
+http://www.bradford.ac.uk/acad/civeng/skills/spelling.htm
+http://www.bradford.ac.uk/university/ugpros/business.php
+http://www.bradfordbulls.co.uk/bb_news_full.asp?newsid=1304
+http://www.bradfordgibson.net/comment/reply/164
+http://www.bradfordgibson.net/node/164
+http://www.bradleyrhodes.com/Papers/remembrance.html
+http://www.bradshawfoundation.com/thor/
+http://www.bradycenter.org/
+http://www.bradymagazine.com/workshops/directory/novel.html
+http://www.bradynet.com/bbs/venezuela/100048-0.html
+http://www.bragdoninsurance.com/privacystatement.htm
+http://www.bragg.army.mil/528csc/FM22-51AxE.htm
+http://www.brainbench.com/xml/bb/aboutus/whitepaper.xml?contentId=627
+http://www.brainbench.com/xml/bb/partners/community/whitepaper.xml?contentId=627
+http://www.brainbox.com.au/members/brainbox/home.nsf/0/7BFD069D9B35F91ACA256CCB00031ED3?opendocument
+http://www.brainconnection.com/content/112_1
+http://www.brainconnection.com/content/112_2
+http://www.brainconnection.com/content/112_3
+http://www.brainconnection.com/content/112_4
+http://www.brainconnection.com/topics/?main=fa/brain-evolution5
+http://www.brainexplorer.org/anxiety/Anxiety_Diagnosis.shtml
+http://www.braingym.org/faq.html
+http://www.brainpowertraining.com.au/
+http://www.brainticket.com/newarr.htm
+http://www.brainydictionary.com/words/fe/feed164146.html
+http://www.brainyquote.com/quotes/authors/s/samuel_smiles.html
+http://www.brama.com/travel/messages/35457.html
+http://www.brandchannel.com/features_effect.asp?pf_id=248
+http://www.brandchannel.com/start1.asp?fa_id=221
+http://www.brandchannel.com/start1.asp?fa_id=248
+http://www.brandeis.edu/departments/philosophy/philpays.html
+http://www.brandnewdad.com/homedaddy/walkontheretailside.asp
+http://www.brandon.org/events.htm
+http://www.brandonblog.com/John_D_Hart.html
+http://www.brandonstaggs.com/star-trek-tng-spoof.html
+http://www.brandonu.ca/Administration/HumanResources/CollectiveAgreements/mgeu/mgeu1.htm
+http://www.brandsmartusa.com/customer_relations.htm
+http://www.brasscompass.com/dalveyclocks.htm
+http://www.brasscompass.com/dalveycup.htm
+http://www.brattle.com/Consultants/ConsultantView.asp?ConsultantID=38
+http://www.braungardt.com/Philosophy/Marx/Money%20into%20Capital.htm
+http://www.brautigan.net/brautigan/recordings.html
+http://www.bravadas.com/medicallyrelatedhairloss.php
+http://www.bravotv.com/Newsletter/
+http://www.brazeau.ab.ca/aservice.html
+http://www.brazier.mistral.co.uk/christmas_stories/1994CharlesAndGenie.html
+http://www.brazilhouston.org/ingles/vitem1.htm
+http://www.brazzil.com/content/view/9275/76/
+http://www.brazzil.com/index2.php?option=com_content&do_pdf=1&id=8926
+http://www.brazzilmag.com/content/view/134/41/
+http://www.brazzilmag.com/content/view/2419/49/
+http://www.brazzilmag.com/content/view/514/41/
+http://www.brc21.org/carson/carson_long.html
+http://www.breacais.demon.co.uk/abs/bsr04/44_momen_women.htm
+http://www.bread-and-roses.com/maathai.html
+http://www.breakbeat.co.uk/features/silver.html
+http://www.breakfastandbrunch.com/recipes2.php?rcpid=54
+http://www.breakfastanytime.net/
+http://www.breakingnewsenglish.com/0506/050625-zimbabwe.html
+http://www.breakswithtradition.com/areas/countrysideandcoastal/kent/attractions/kentattractions.htm
+http://www.breakthechain.org/exclusives/clintonhunt.html
+http://www.breaktheglassceiling.com/Art-Tech.htm
+http://www.breakthroughchurch.com/articles2.html
+http://www.breakthroughonskis.com/Pages/_ski_instruction/instruction12.html
+http://www.breakupgirl.net/advice/980622/980622.html
+http://www.breakupgirl.net/advice/980817/980817d.html
+http://www.breakupgirl.net/todo/001004.html
+http://www.breastcheck.ie/publications/stats03.html
+http://www.breastfeeding.asn.au/bfinfo/galact.html
+http://www.breastfeeding.org/articles/beforebaby.html
+http://www.breasthealth.com.au/livingwithcancer/whattosay.html
+http://www.breasthealthonline.org/cgi-bin/mwf/topic_show.pl?tid=93312
+http://www.breastimplants411.com/dbii/locations.asp~region=&city=Green%20Bay
+http://www.breathineasy.com/tips_sea.html
+http://www.breathingspace.com/content/view/120/152/
+http://www.brechin.com/games2/strong_weak/strong_weak.html
+http://www.brecker.com/
+http://www.brecon-beacons.com/ramblers-merthyr-valley.htm
+http://www.breeders.animaleyecare.com.au/eyecertificates.htm
+http://www.breedingbetterdogs.com/aging.html
+http://www.breeze-courier.com/Main.asp?SectionID=38&SubSectionID=464&ArticleID=56882
+http://www.breggin.com/
+http://www.bren.ucsb.edu/facilities/
+http://www.bren.ucsb.edu/supporting/corporate_giving.html
+http://www.bren.ucsb.edu/supporting/investing_dbhall.html
+http://www.brendan-nyhan.com/blog/2004/11/hoping_for_a_de.html
+http://www.brendashoshanna.com/BrendaShoshanna_noframes/Zen%20and%20the%20Art.htm
+http://www.brendastardom.com/arch.asp?ArchID=308
+http://www.brent.gov.uk/services.nsf/0/0d950490394a0b9e80256e9700491c13?OpenDocument
+http://www.bresink.de/osx/orderfaq.html
+http://www.bretonhomes.com/brittany_property_morbihan.php
+http://www.bretonhomes.com/commercial_property_brittany.php
+http://www.brevard.leon.k12.fl.us/teacher_login.htm
+http://www.brfwitness.org/Articles/1985v20n3.htm
+http://www.brhc.org.uk/css_faq.htm
+http://www.brian894x4.com/BlueMountainsTrip.html
+http://www.brianclardy.com/12022003.html
+http://www.brianharrisonsmith.com/tips,_hints_and_advice.htm
+http://www.brianmac.demon.co.uk/
+http://www.brianmac.demon.co.uk/imagery.htm
+http://www.brianmac.demon.co.uk/weight.htm
+http://www.brianmadden.com/content/content.asp?id=318
+http://www.brianpalmerdds.com/bfing_import.htm
+http://www.bridgeguys.com/LittleKnown/BiedermeijerSAYCThygesen.html
+http://www.bridgend.gov.uk/Web1/groups/public/documents/services/000919.hcsp
+http://www.bridgeport.edu/Indexhtml/Schools/schbus.html
+http://www.bridgeport.wednet.edu/Admin%20&%20News/Moving%20Wall.htm
+http://www.bridgeportvillage.com/htmlsite/article_trib11012003.html
+http://www.bridger.us/2002/12/16/CrashTestingMINICooperVsFordF150
+http://www.bridges4kids.org/articles/9-02/ABCnews9-02.html
+http://www.bridgesforpeace.com/publications/dispatch/archaeology/Article-27.html
+http://www.bridgesforpeace.com/publications/teaching/Article-26.html
+http://www.bridgevictoria.com/
+http://www.bridgewater.edu/WritingCenter/Resources/102in-class4.htm
+http://www.bridgeworld.com/default.asp?d=article_sampler&f=sambp.html
+http://www.bridportred.co.uk/Players%20I%20-%20J%20-%20K.htm
+http://www.brighamandwomens.org/patient/walkingtips.asp
+http://www.bright-europe.org/bright.php/conference/debates
+http://www.bright-wave.co.uk/05_00_04.htm
+http://www.bright-wave.co.uk/05_00_05.htm
+http://www.bright.net/~double/euchre.htm
+http://www.bright.net/~gshaffer/earthchange.htm
+http://www.brightenyourlife.info/ch8.html
+http://www.brighthand.com/article/Three_Hot_Technologies_Part_4?site=Learn
+http://www.brightonandhovegreenparty.org.uk/h/n/NEWS/press_releases/ALL/201/
+http://www.brightplanet.com/deepcontent/tutorials/search/part4.asp
+http://www.brightwhitepaper.com/design.htm
+http://www.brikkerogbrett.com/games/kleppspelet.shtml
+http://www.brikwars.com/
+http://www.brillig.com.au/sitepages/archives.htm
+http://www.bringyou.to/apologetics/num2.htm
+http://www.briomag.com/briomagazine/fictionfix/a0004628.html
+http://www.briomag.com/briomagazine/fictionfix/a0005283.html
+http://www.briomag.com/briomagazine/reallife/a0005293.html
+http://www.bris.ac.uk/Depts/CMPO/workingpapers/abstracts2.htm
+http://www.bris.ac.uk/Depts/CMPO/workingpapers/abstracts3.htm
+http://www.bris.ac.uk/Depts/CMPO/workingpapers/abstracts4.htm
+http://www.bris.ac.uk/Depts/History/Postgrads/pgdissertations.htm
+http://www.bris.ac.uk/Depts/Italian/it3yearpractical.html
+http://www.bris.ac.uk/Depts/SecurityServices/advice.htm
+http://www.bris.ac.uk/Depts/THRS/Admissionsstatement.htm
+http://www.bris.ac.uk/ISC/zope/vine/vinezope.html
+http://www.bris.ac.uk/cas/jobs/termtime.htm
+http://www.bris.ac.uk/english/mm-tributes.html
+http://www.bris.ac.uk/english/undergraduate/current/student-reps.html
+http://www.bris.ac.uk/english/undergraduate/prospective/application-advice.html
+http://www.bris.ac.uk/studentfinance/financing-studies.html
+http://www.bristol-city.gov.uk/artsdev/artbul3.htm
+http://www.bristol-inquiry.org.uk/evidence/transcripts/day18.htm
+http://www.bristol-inquiry.org.uk/evidence/transcripts/day4.htm
+http://www.bristol-inquiry.org.uk/evidence/transcripts/day47.htm
+http://www.bristol-inquiry.org.uk/evidence/transcripts/day52.htm
+http://www.bristol-inquiry.org.uk/evidence/transcripts/day60.htm
+http://www.bristol-inquiry.org.uk/final_report/annex_a/chapter_12_5.htm
+http://www.bristol-inquiry.org.uk/final_report/annex_a/chapter_14_18.htm
+http://www.bristolfoe.org.uk/wildfire/iraq/datescase.htm
+http://www.bristolfoe.org.uk/wildfire/iraq/iraqaug01.htm
+http://www.bristolfoe.org.uk/wildfire/iraq/jo.iraq.2003.04.14.htm
+http://www.brit.croydon.sch.uk/dbold/page34.htm
+http://www.britac.ac.uk/news/reports/ahrbresponse.html
+http://www.britain-in-indonesia.or.id/advice.htm
+http://www.britain.tv/beautyfashion_lipscare.shtml
+http://www.britain.tv/health_a_new_year_a_new_you.shtml
+http://www.britainexpress.com/hotels/yorkshire/113650.php
+http://www.britainexpress.com/hotels/yorkshire/York.htm
+http://www.britainincanada.org/News/100questions/custom.htm
+http://www.britainincanada.org/News/Attractions/traveller.htm
+http://www.britains-smallwars.com/Borneo/paul.html
+http://www.britains-smallwars.com/suez/GROUND-LIAISON.html
+http://www.britainusa.com/consular/houston/other_show.asp?Sarticletype=25&other_ID=389
+http://www.britainusa.com/houston/other_show.asp?Sarticletype=25&other_ID=1237
+http://www.britainusa.com/nireland/articles.asp?SarticleType=21&SCategory=88
+http://www.britainusa.com/nireland/ni_paper1.asp
+http://www.britainusa.com/science/articles_show.asp?SarticleType=1&Article_ID=4789&i=
+http://www.britainusa.com/science/other_show.asp?Sarticletype=2&other_ID=567
+http://www.britainusa.com/sections/articles_show.asp?SarticleType=1&Article_ID=1956&i=117
+http://www.britainusa.com/sections/other_show.asp?SarticleType=2&other_ID=672
+http://www.britannia.co.uk/c_loans/non_product/important_legal_information.html
+http://www.britannia.co.uk/mufc/redrewards_tandc.html
+http://www.britannica.com/Blackhistory/activity4.jsp
+http://www.britannica.com/eb/article?tocId=231679
+http://www.britannica.com/eb/article?tocId=233255
+http://www.britannica.com/eb/article?tocId=233560
+http://www.britannica.com/eb/article?tocId=25979
+http://www.britannica.com/eb/article?tocId=39429
+http://www.britannica.com/eb/article?tocId=9043296
+http://www.britannica.com/ebi/article?tocId=9322886
+http://www.britannica.com/ebi/article?tocId=9325795
+http://www.britannica.com/nobel/micro/204_57.html
+http://www.britarch.ac.uk/ba/ba46/ba46news.html
+http://www.britarch.ac.uk/ba/ba56/ba56feat.html
+http://www.britarch.ac.uk/ba/ba59/feat1.shtml
+http://www.britarch.ac.uk/ba/ba62/news.shtml
+http://www.britarch.ac.uk/conserve/RCEPpol.html
+http://www.britarch.ac.uk/conserve/UncLndEA.html
+http://www.britarch.ac.uk/projects/dob/dl12b.html
+http://www.brite-sparks.com/
+http://www.britfilmusa.com/newsl_jan_29_03.php
+http://www.britglass.co.uk/NewsEvents/BGNewsCurrent/KeyIndustryFiguresMeettoT.html
+http://www.britglass.org.uk/NewsEvents/BGNewsCurrent/AnalysisHighlightsUniqueN.html
+http://www.britgo.org/const.html
+http://www.britischebotschaft.de/en/embassy/agriculture/Agri-Note-Ecolabel.htm
+http://www.british-aggregates.com/pr040609.htm
+http://www.british-franchise.org/
+http://www.british-history.ac.uk/report.asp?compid=36336
+http://www.british-publishing.com/Pages/AberdeenOG/diversifying.html
+http://www.british-study.com/
+http://www.british-study.com/fees/index.php?page=fee_oxford
+http://www.britishcivildefence.org/BCD_NP/York_Flood_PT_1/york_flood_pt_1.html
+http://www.britishcomedy.org.uk/comedy/isirta.htm
+http://www.britishcompanies.co.uk/furniture.htm
+http://www.britishcouncil.org/arts-literature-matters-newsletter-2-fiction2004.htm
+http://www.britishcouncil.org/arts-literature-matters-newsletter-2-fiction2004.htm?printout=1
+http://www.britishcouncil.org/estonia-education-elt-archive.htm
+http://www.britishcouncil.org/languageassistant-cooking.htm
+http://www.britishcouncil.org/languageassistant-essential-famous-britons.htm
+http://www.britishcouncil.org/languageassistant-gambling.htm
+http://www.britishcouncil.org/languageassistant-gambling.htm?printout=1
+http://www.britishcouncil.org/learning-elt-hornby-information.htm
+http://www.britishcouncil.org/learning-elt-hornby-information.htm?printout=1
+http://www.britishecologicalsociety.org/articles/meetings/current/annualmeeting2005/
+http://www.britishexpat.com/Mike_s_Mutts__Jake_The_Dawg_s.178.0.html
+http://www.britishfencing.com/wearingofmasks.html
+http://www.britishhighcommission.gov.uk/servlet/Front?pagename=OpenMarket/Xcelerate/ShowPage&c=Page&cid=1054572033377
+http://www.britishlifeinsurance.gb.com/term-life-insurance-articles/personal-equity-plans-advantages.htm
+http://www.britishlungfoundation.org/north-west-touch.asp
+http://www.britishmarines.org/armchest3.htm
+http://www.britishmarines.org/armchest4.htm
+http://www.britishorienteering.org.uk/asp/makepage.asp?PID=MEMBPROP
+http://www.britishsoftdrinks.com/htm/qa/Packaging/Packaging.htm
+http://www.britishwaterways.co.uk/newsroom/stories/home_ready.html
+http://www.britkid.org/si-ukimmlaw.html
+http://www.britsoc.co.uk/new_site/index.php?area=about&id=14
+http://www.brns.com/pages4/comed174.html
+http://www.broadbandreports.com/forum/news,59609~reverse=0;mode=flat;days=2000;root=news,59609
+http://www.broadbandreports.com/forum/remark,11887835~mode=flat~start=20
+http://www.broadbandreports.com/forum/remark,12491317
+http://www.broadbandreports.com/forum/remark,12491317~mode=flat
+http://www.broadbandreports.com/forum/remark,12501568~mode=flat
+http://www.broadbandreports.com/forum/remark,12501568~start=-1~mode=flat
+http://www.broadbandreports.com/forum/remark,12575031~mode=flat~start=40
+http://www.broadbandreports.com/forum/remark,12575031~start=38~mode=flat
+http://www.broadbandreports.com/shownews/64859
+http://www.broadcaster.org.uk/invision_forum/lofiversion/index.php/t178.html
+http://www.broadcaster.org.uk/section2/jokes/funnynews.html
+http://www.broadcasting.co.nz/faqspage.htm
+http://www.broadcom.com/press/release.php?id=659800
+http://www.broadstonemiddle.poole.sch.uk/SchoolInfo/Policies.htm
+http://www.broadwaysd.com/seasonofchoiceopener.php
+http://www.broadwayworld.com/blogs/viewblog.cfm?blogid=699
+http://www.brocku.ca/communityservices/youthuniversity/campinfo.php
+http://www.brocku.ca/healthservices/education/depression.html
+http://www.brocku.ca/healthservices/pages/depression.html
+http://www.brocku.ca/instanalysis/taskforce/CntrArts.htm
+http://www.brocku.ca/international/intlstudnts/predep.html
+http://www.brocku.ca/music/degrees_courses.htm
+http://www.brocku.ca/sdc/discipline/conduct.php
+http://www.brodies.co.uk/services/litigation/family_law/
+http://www.brojed.org/newboard/Posts/8725F.html
+http://www.brokenfrontier.com/columns/details.php?id=194
+http://www.brokenfrontier.com/lowdown/details.php?id=19
+http://www.brokenkode.com/archives/manji-spotlight-2-with-spirit/
+http://www.brokentype.com/blog/000107.html
+http://www.bromleyhealthmanagement.com/38remedies.htm
+http://www.bromsgrove-school.co.uk/departments/upper/physics/links.htm
+http://www.bronchosports.com/Wrestlingoutlook.htm
+http://www.bronxmall.com/norwoodnews/past/050604/news/page3.html
+http://www.bronxnet.com/info/program/program.htm
+http://www.brookes.ac.uk/other/conmark/IJCM/issue_02/010202.html
+http://www.brookes.ac.uk/services/ocsd/2_learntch/theories.html
+http://www.brookesnews.com/040612history.html
+http://www.brookesnews.com/040612history_print.html
+http://www.brookesnews.com/041312colebatch.html
+http://www.brookesnews.com/041312colebatch_print.html
+http://www.brookespublishing.com/store/books/notari-3173/
+http://www.brookfields.co.nz/property_law/latest_plcn_index.html
+http://www.brookings.edu/comm/events/20040504lugar.htm
+http://www.brookings.edu/comm/policybriefs/pb121.htm
+http://www.brookings.edu/comm/policybriefs/pb139.htm
+http://www.brookings.edu/fp/projects/terrorism/analysis.htm
+http://www.brookings.edu/views/op-ed/ohanlon/20040604.htm
+http://www.brooklyn.liu.edu/depts/socialworkwebsite/msw/
+http://www.brooklynbirdclub.org/tildenriis.htm
+http://www.brooklynmuseum.org/exhibitions/
+http://www.brooksnet.com/faq/rfc1179.html
+http://www.brother.com/as_oc/printer/info/hl6050dn/hl6050dn_fea.html
+http://www.brother.com/brother_En/news_e/001.html
+http://www.brother.com/europe/printer/info/hl6050dn/hl6050dn_fea.html
+http://www.brotherjeff.com/Pages/HIV_info.html
+http://www.brothersjudd.com/blog/archives/024751.html
+http://www.brouhaha.com/~eric/bad_laws/dat_tax.html
+http://www.broward.com/mld/mercurynews/news/special_packages/5630613.htm
+http://www.broward.com/mld/observer/news/local/states/north_carolina/counties/cabarrus/10120434.htm
+http://www.browardschools.com/schoolboard/board_members.htm
+http://www.brown.edu/Administration/Brown_Alumni_Magazine/95/5-95/mail.html
+http://www.brown.edu/Administration/EEO-AA/sexpol1.html
+http://www.brown.edu/Administration/George_Street_Journal/vol26/26GSJ23c.html
+http://www.brown.edu/Administration/News_Bureau/1999-00/99-035.html
+http://www.brown.edu/Administration/News_Bureau/2001-02/01-090t.html
+http://www.brown.edu/Administration/News_Bureau/2003-04/03-098.html
+http://www.brown.edu/Departments/Brown_Is_Green/greenarch/winintro.html
+http://www.brown.edu/Departments/Taubman_Center/polls/rel603.html
+http://www.brown.edu/Student_Services/Writing_Center/lodewick.htm
+http://www.brown.edu/Students/INDY/archives/2005-04-21/articles/sports-neipris_bassfishing.php
+http://www.brownalumnimagazine.com/storyDetail.cfm?ID=2346
+http://www.brownandcrouppen.com/enbrel.html
+http://www.brownandcrouppen.com/medical_malpractice.html
+http://www.brownbooks.com/authors.htm
+http://www.browndailyherald.com/news/2004/10/22/CampusNews/Breaking.News.Library.Workers.Reach.Tentative.Contract.Agreement-778552.shtml
+http://www.browndailyherald.com/news/2004/10/25/CampusNews/Library.Workers.Reach.Tentative.Contract.Agreement-779528.shtml
+http://www.browndategarden.com/
+http://www.brownielocks.com/notes.html
+http://www.brownielocks.com/wordorigins.html
+http://www.brownledge.org/horseback-riding.html
+http://www.brownmarine.com/story06.htm
+http://www.brownprecision.com/how-i-build-a-rifle-for-myself.htm
+http://www.brownrigg-interiors.com/brownrigg/picture_gallery/286.asp
+http://www.brownrigg-interiors.com/brownrigg/picture_gallery/87.asp
+http://www.brownsmarina.com/tech-winter-outboard.html
+http://www.brp.com/en-CA/Media.Center/Press.Releases/1997/1/1997.09.24.htm
+http://www.brreg.no/workshop/
+http://www.bruceleebook.com/exlcusive_introduction.html
+http://www.brucemcmillan.com/FRB_Book012_StepbyStep.html
+http://www.brucewillis.com/fans/ubb/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=17;t=000098
+http://www.bruderhof.co.uk/articles/Anabaptist.htm
+http://www.bruderhof.co.uk/e-books/EarlyChristians.htm
+http://www.bruderhoffoundation.org/tbf/Projects/NIpeacewalk.htm%20
+http://www.brudirect.com/DailyInfo/News/Archive/Jan05/060105/nite02.htm
+http://www.brudirect.com/Happenings/BBOpinion25012003.htm
+http://www.brugesgroup.com/mediacentre/index.live?article=113
+http://www.brugesgroup.com/mediacentre/interviews.live?article=147
+http://www.brugesgroup.com/mediacentre/speeches.live?article=169
+http://www.brugesgroup.com/mediacentre/speeches.live?article=49
+http://www.brugesgroup.com/news.live?article=101&keyword=14
+http://www.brugesgroup.com/news.live?article=101&keyword=15
+http://www.brugesgroup.com/news.live?article=140&keyword=8
+http://www.brugesgroup.com/news.live?article=17&keyword=11
+http://www.brugesgroup.com/news.live?article=17&keyword=15
+http://www.brugesgroup.com/news.live?article=28&keyword=15
+http://www.brundagepublishing.com/brhel.html
+http://www.brunel.ac.uk/bst/1no1/PETRAkuppers.htm
+http://www.brunerconsulting.com/article_vol03_19.htm
+http://www.brunosbestbets.com/mortem04.htm
+http://www.brw.com.au/
+http://www.bryan-talbot.com/FAQ.html
+http://www.brynmawr.edu/cities/history.htm
+http://www.brynmawr.edu/deans/fellowships/marshall.html
+http://www.brynmawr.edu/sandt/2002_october/studyingproteins.html
+http://www.brysons.net/miltonweb/milton05.html
+http://www.bsaa.com.au/H_101.html
+http://www.bsad.org/victory/1984.html
+http://www.bsdforums.org/docs/rules.html
+http://www.bsdmall.com/info.html
+http://www.bsdmc.com/press_release_07_11_02.htm
+http://www.bshf.org/en/to.php/about/dih/projects.php?pID=159
+http://www.bshs.org.uk/news/displayrecord.php?eventID=583
+http://www.bsi-global.com/News/Releases/2004/July/n410f452545d64.xalter
+http://www.bsos.umd.edu/gvpt/lpbr/subpages/reviews/rosenne605.htm
+http://www.bsos.umd.edu/gvpt/lpbr/subpages/reviews/simpson605.htm
+http://www.bsos.umd.edu/socy/theory/Thdis.htm
+http://www.bsr.org/CSRResources/Environment/EnvResources.cfm
+http://www.bsr.org/CSRResources/IssueBriefDetail.cfm?DocumentID=48948
+http://www.bstkd.com/JudoHistory/HistorySix.htm
+http://www.bsu.edu/cob/article/0,,3979--,00.html
+http://www.bt.cdc.gov/coca/summaries/anthrax031604.asp
+http://www.bt.cdc.gov/coca/summaries/tularemia042704.asp
+http://www.bt.infonet.com/about/featured/featured_alinghi2003.asp
+http://www.btboutique.com/privacy.php
+http://www.btbroadbandoffice.com/broadband/terms_busi
+http://www.btexact.com/generalinformation?doc=42981
+http://www.btglobalservices.com/business/global/en/products/mpls/applications.html
+http://www.btglobalservices.com/en/products/mpls/index_print.html
+http://www.bth.se/tks/ctup.nsf/0/6f228f1f36b94a6ac1256f4a0052db19?OpenDocument
+http://www.btimes.co.za/99/0801/comp/comp10.htm
+http://www.btimes.co.za/guide/labour/labour19.htm
+http://www.btimes.co.za/guide/labour/labour26.htm
+http://www.btinternet.com/~J.Dean/nictc.htm
+http://www.btinternet.com/~dafyddk/louis.htm
+http://www.btinternet.com/~nlpwessex/Documents/WATwoolseypeakoil.htm
+http://www.btinternet.com/~nlpwessex/Documents/gmnebraskasoycomment.htm
+http://www.btinternet.com/~ted.power/ted.html
+http://www.btinternet.com/~troubleatmill/speak.htm
+http://www.btinternet.com/~vrota/homepage.htm
+http://www.btlonline.org/
+http://www.btlonline.org/btl032505.html
+http://www.btnmag.com/businesstravelnews/magazine/article_display.jsp?vnu_content_id=1000963789
+http://www.btobonline.com/
+http://www.btobonline.com/article.cms?articleId=5353
+http://www.btobonline.com/article.cms?articleId=9948
+http://www.bton.ac.uk/adc-ltsn/html/about/about-team.html
+http://www.btonline.com.au/content/resources/faqs.htm
+http://www.btp.police.uk/areas/scottish.htm
+http://www.btplc.com/Innovation/Mobility/backup/
+http://www.bts.gov/press_releases/2005/bts014_05/html/bts014_05.html
+http://www.btslessonplans.org/article2.htm
+http://www.btsrr.com/btsdet01.htm
+http://www.btu.org/leftnavbar/HP_Jackson_Charter%20Schools.htm
+http://www.btu.org/leftnavbar/benefitsfsa.html
+http://www.bu.edu/asllrp/fl/
+http://www.bu.edu/calendar/
+http://www.bu.edu/celop/part-time/courses-GenEng.html
+http://www.bu.edu/library/education/glenn1.html
+http://www.bu.edu/wcp/Papers/Aest/AestLam2.htm
+http://www.bu.edu/wcp/Papers/Asia/AsiaKhan.htm
+http://www.bu.edu/wcp/Papers/Cont/ContAssy.htm
+http://www.bu.edu/wcp/Papers/Educ/EducBail.htm
+http://www.bu.edu/wcp/Papers/Inte/InteDudd.htm
+http://www.bu.edu/wcp/Papers/Math/MathMroz.htm
+http://www.bu.edu/wcp/Papers/Onto/OntoRahn.htm
+http://www.bu.edu/wcp/Papers/TEth/TEthScho.htm
+http://www.bu.edu/wcp/Papers/Tech/TechGend.htm
+http://www.buav.org/news/2003/12-09.html
+http://www.buav.org/press/2003/12-09.html
+http://www.bubblycrew.org.uk/interviews.html
+http://www.bubbygram.com/datetowin/advice11.htm
+http://www.buckeye-web.com/prox/77tour.html
+http://www.buckeyewebdesign.com/southeast/southeast2.htm
+http://www.buckhead.org/eastvillage/
+http://www.buckmanelementary.org/archives/2005_03.html
+http://www.bucknell.edu/News_Events/More_News/September_2004/Pennsylvania_House.html
+http://www.bucks.edu/~glassart/
+http://www.bucks.edu/~specpop/knowing.htm
+http://www.buckscc.gov.uk/economic_development/business_events.stm
+http://www.buckscc.gov.uk/foi/step_by_step_guide.htm
+http://www.bucksrestaurant.com/m_hall.htm
+http://www.bucurestiwww.ro/indexart.php?%20noa=63
+http://www.budapest.com/
+http://www.budapesttimes.hu/index.php?art=807
+http://www.buddhamind.info/leftside/actives/drama/sit.htm
+http://www.buddhanet.net/4noble8.htm
+http://www.buddhanet.net/bt_2c3.htm
+http://www.buddhanet.net/hospices.htm
+http://www.buddhanet.net/vmed_9.htm
+http://www.buddhist-astrology.com/monthly/this.html
+http://www.buddhist-temples.com/buddhist-religion.html
+http://www.buddhistinformation.com/mudita.htm
+http://www.buddhistinformation.com/true_buddhist.htm
+http://www.budget.gov.au/2005-06/ministerial/html/dotars-19.htm
+http://www.budget.house.gov/020402pr.htm
+http://www.budget.house.gov/photo/odellstmnt.htm
+http://www.budgetlife.com/whole_life_insurance.htm
+http://www.budgetplanners.net/creditreports.html
+http://www.budgettravel.com/paris.htm
+http://www.budgettravel.com/shop.htm
+http://www.budobs.org/cult-dipl-intl.htm
+http://www.budobs.org/grant-paper.htm
+http://www.budsir.org/Part2_3.htm
+http://www.buffalo.edu/~ddchase/vrPaper.htm
+http://www.buffalobeast.com/75/feature6.htm
+http://www.buffalobreath.com/html/howtoorder.asp
+http://www.buffalodiocese.org/
+http://www.buffalofieldcampaign.org/factsheets/ibmp.html
+http://www.bufton.org/meggiesoft/canasta.htm
+http://www.bugsweeps.com/info/big_bro.html
+http://www.bugsweeps.com/info/eavesdropping_detection.html
+http://www.bugsysclub.com/club/newsletters/club-newsletter2003-04.htm
+http://www.build.com.au/building/regulararticles_1.htm
+http://www.build2pro.co.uk/uk/terms
+http://www.buildeazy.com/diy_plansforsale.html
+http://www.builderau.com.au/architect/work/0,39024596,20283058,00.htm
+http://www.builderau.com.au/manage/project/0,39024668,20272552,00.htm
+http://www.builderau.com.au/manage/work/0,39024674,20282737,00.htm
+http://www.builderau.com.au/manage/work/0,39024674,39173564,00.htm
+http://www.builderau.com.au/program/0,39024614,39173564,00.htm
+http://www.builderau.com.au/program/development/0,39024626,39173564,00.htm
+http://www.builderau.com.au/program/web/0,39024632,39128984,00.htm
+http://www.builderau.com.au/webdev/sitedesign/0,39024698,20282999,00.htm
+http://www.builderonline.com/industry-news.asp?sectionID=26&articleID=141998
+http://www.builderonline.com/industry-news.asp?sectionID=30&articleID=140046
+http://www.buildfreedom.com/healmean.htm
+http://www.building-contract.co.uk/building-contract-package.htm
+http://www.building-muscle101.com/weight-lifting-routines.html
+http://www.buildingconservation.com/articles/fire/fire.htm
+http://www.buildingdesign.co.uk/facil-group5/just-kitchens/
+http://www.buildingdesign.co.uk/facil/west-london-security/
+http://www.buildinggreen.com/auth/article.cfm?fileName=040301a.xml
+http://www.buildinggreen.com/auth/article.cfm?fileName=070801a.xml
+http://www.buildinggreen.com/products/gossamer.html
+http://www.buildingonline.com/news/viewnews.pl?id=2865
+http://www.buildings.com/Articles/detailBuildings.asp?ArticleID=2301
+http://www.bujinkan-cambridge.com/links.shtml
+http://www.bukitbendera.com.my/issdtl.asp?ID=96
+http://www.bukovinasociety.org/Rose-1995.html
+http://www.bulgariandreams.com/property/iskarcentral_sofia/
+http://www.bulkmaterialsinternational.com/
+http://www.bulldogblue.com/cat_domestic_policy.shtml
+http://www.bulletin.uwaterloo.ca/1997/jul/22tu.html
+http://www.bulletin.uwaterloo.ca/1998/jul/20mo.html
+http://www.bulletin.uwaterloo.ca/1998/sep/23we.html
+http://www.bulletin.uwaterloo.ca/1999/jun/29tu.html
+http://www.bulletin.uwaterloo.ca/2000/mar/20mo.html
+http://www.bulletin.uwaterloo.ca/2000/may/04th.html
+http://www.bulletin.uwaterloo.ca/2000/oct/24tu.html
+http://www.bulletin.uwaterloo.ca/2000/sep/13we.html
+http://www.bulletin.uwaterloo.ca/2001/may/23we.html
+http://www.bulletin.uwaterloo.ca/2003/dec/17we.html
+http://www.bulletin.uwaterloo.ca/2003/jan/21tu.html
+http://www.bulletin.uwaterloo.ca/2004/feb/04we.html
+http://www.bulletin.uwaterloo.ca/2004/jun/22tu.html
+http://www.bulletin.uwaterloo.ca/2004/mar/03we.html
+http://www.bulletin.uwaterloo.ca/2005/jan/13th.html
+http://www.bullfrogfilms.com/atozc.html
+http://www.bullfrogfilms.com/catalog/bank.html
+http://www.bullfrogfilms.com/subjects/animals.html
+http://www.bullmarket.com/success.php3
+http://www.bullyinginstitute.org/home/twd/bb/bbstudies/japanese.html
+http://www.bullyonline.org/stress/ww1.htm
+http://www.bumperdumper.com/bumper2.htm
+http://www.bundabergrum.com.au/common/terms_conditions.html
+http://www.bundyology.com/opening.html
+http://www.bungeezone.com/disasters/jumper.shtml
+http://www.bunker8.pwp.blueyonder.co.uk/misc/defence.htm
+http://www.bunkertours.co.uk/barnham.htm
+http://www.bunkosquad.com/
+http://www.bunkosquad.com/archives/2002_03.php
+http://www.bunkosquad.com/archives/2002_05.php
+http://www.bunkosquad.com/archives/2004_10.php
+http://www.bunniestudios.com/wordpress/?p=12
+http://www.bunnyclark.com/97gstltr.htm
+http://www.bunnyears.net/gb/building.html
+http://www.bupa.co.uk/about/asp/pr/index.asp
+http://www.bupa.co.uk/about/html/pub/annual_review_2003/chief2003.html
+http://www.bupa.co.uk/health_information/html/health_news/070303who.html
+http://www.bupa.co.uk/health_information/html/health_news/240904walking.html
+http://www.bupa.co.uk/health_information/html/healthy_living/general/sun_care/kids.html
+http://www.bupa.co.uk/health_information/html/healthy_living/heart/stress.html
+http://www.bupa.co.uk/health_information/html/healthy_living/senior/gardening/alzheimers.html
+http://www.bupa.co.uk/jobs/html/graduate_recruitment/pers_prof.html
+http://www.bupahospitals.co.uk/asp/patientcare/hospital.asp
+http://www.bupers.navy.mil/pers440/pers440e2/Subspec%20Overview.htm
+http://www.burdell.org/articles/macplus.html
+http://www.burdines-macysjobs.com/burdines-macys/career/index2.asp
+http://www.bureau-13.com/query.html
+http://www.bureau42.com/view/2639
+http://www.burke.k12.nc.us/Administration___Staff/Board_of_Education/12_06_04/12_06_04.html
+http://www.burkes-landed-gentry.com/sites/common/sitepages/at0104.asp
+http://www.burkesbackyard.com.au/2004/archives/2004/roadtests/others/dog_dumpage
+http://www.burlco.lib.nj.us/njala/05conference.html
+http://www.burlingtonfreepress.com/specialnews/dean/269.htm
+http://www.burlingtonfreepress.com/specialnews/death/16.htm
+http://www.burmalibrary.org/reg.burma/archives/199609/msg00097.html
+http://www.burmalibrary.org/reg.burma/archives/199906/msg00156.html
+http://www.burmalibrary.org/reg.burma/archives/199909/msg01348.html
+http://www.burmalibrary.org/reg.burma/archives/199911/msg00058.html
+http://www.burmalibrary.org/reg.burma/archives/199911/msg00059.html
+http://www.burmalibrary.org/reg.burma/archives/199911/msg00060.html
+http://www.burningman.com/blackrockcity_yearround/related_groups/related_busi.php
+http://www.burningman.com/blackrockcity_yearround/special_events/decompression/decom2004.html
+http://www.burningman.com/installations/creating_dangerous_art.html
+http://www.burningman.com/whatisburningman/2000/00n_letter_sum_1.html
+http://www.burningman.com/whatisburningman/lectures/90s_art.html
+http://www.burnstimesherald.com/news/story.cfm?story_no=11
+http://www.burridge.nscc.ns.ca/testdrive/site/about/hta/1.html
+http://www.burryman.com/
+http://www.bursitis.org/
+http://www.burtandkurt.com/Stem%20Cell%20Notebook.htm
+http://www.bus.qut.edu.au/teaching/plan.jsp
+http://www.bus.ualberta.ca/Finance-MgmtSci/aboutdepartment.htm
+http://www.bus.ualberta.ca/rfield/Courses/OA402/syllabus.htm
+http://www.bus.wisc.edu/update/june04/mergers.asp
+http://www.bushcountry.org/bush_speeches/n_043004_text_bush.htm
+http://www.bushcountry.org/news/jun_news_pages/g_060304_schmitz_bush_hatred.htm
+http://www.bushfiles.com/bushfiles/dcderby.html
+http://www.bushfiles.com/bushfiles/lomax_mansion.html
+http://www.bushgreenwatch.org/back_issues.php
+http://www.bushidoknights.com/
+http://www.bushisms.com/index1a.html
+http://www.bushnews.com/oil.htm
+http://www.business-advantage.co.uk/cs/issue21/reading.htm
+http://www.business-english-training.com/meeting.htm
+http://www.business-english-training.com/nego.htm
+http://www.business-ethics.com/annual.htm
+http://www.business-in-asia.com/korea_book.html
+http://www.business-marketing.com/store/icebreakers.html
+http://www.business-marketing.com/store/salesmeet.html
+http://www.business-plan-secrets-revealed.com/business-plan-library.html
+http://www.business-standard.com/special/fund/2003/smart.htm
+http://www.business.act.gov.au/text/investing/efficientinfrastructureandservices.html
+http://www.business.com/directory/aerospace_and_defense/equipment_and_supplies/
+http://www.business.com/directory/energy_and_environment/oil_and_gas/tom_brown_inc/news/
+http://www.business.com/directory/transportation_and_logistics/airlines_and_aviation/equipment_and_supplies/parts_and_equipment/test_equipment/
+http://www.business.gov/phases/managing/lead/business_ethics.html
+http://www.business.mmu.ac.uk/newsandevents/news.php?uref=112
+http://www.business.no/artikkel_cultural_issues.htm
+http://www.business.uc.edu/msqa/curriculum/requirements
+http://www.business2.com/b2/web/articles/0,17863,512764,00.html
+http://www.business2.com/b2/web/articles/0,17863,514273,00.html
+http://www.business2000.ie/cases/cases_6th/case30.htm
+http://www.business2000.ie/cases/cases_8th/case4.htm
+http://www.businessawardsforscotland.com/pages/categories.htm
+http://www.businessballs.com/freebusinessplansandmarketingtemplates.htm
+http://www.businessballs.com/johariwindowmodel.htm
+http://www.businessballs.com/meetings.htm
+http://www.businessballs.com/motivation.htm
+http://www.businessballs.com/negotiation.htm
+http://www.businessballs.com/puzzles.htm
+http://www.businessballs.com/roleplayinggames.htm
+http://www.businessballs.com/stories.htm
+http://www.businessballs.com/workshops.htm
+http://www.businesscentral.ws/servlet/go_ProcServ/dbpage=page&gid=01002011540939411066522859&pg=01002011540939411066623800&mode=display&listicid=01002011540939411066783006x27x1&liststart=2
+http://www.businessclique.com/articles/FreddyDavis/Falling_Up_The_Stairs.shtml
+http://www.businessexcellenceaustralia.com.au/GROUPS/ABEF/
+http://www.businesseye.org.uk/2478.html
+http://www.businessfightsaids.org/site/pp.asp?c=nmK0LaP6E&b=202274
+http://www.businessfightsaids.org/site/pp.asp?c=nmK0LaP6E&b=202274&printmode=1
+http://www.businessfundamentals.com/answer.htm
+http://www.businessinafrica.co.za/conferences_events/forum.htm
+http://www.businessinafrica.net/features/tourism/393552.htm
+http://www.businessinafrica.net/technology/314311.htm
+http://www.businessintelligence.com/ex/asp/code.89/xe/article.htm
+http://www.businessintelligence.com/ex/asp/id.4/page.1/xe/biextractdetail.htm
+http://www.businessintelligence.com/ex/asp/id.8/page.1/xe/biextractdetail.htm
+http://www.businessintelligence.com/print_biextract.asp?id=4&page=1
+http://www.businessjournalism.org/05/Lifestyle/
+http://www.businessjournalism.org/content/5621.cfm
+http://www.businessknowhow.com/
+http://www.businessknowhow.com/marketing/membmark.htm
+http://www.businessknowhow.com/marketing/mktgformula.htm
+http://www.businessknowhow.com/marketing/reaching.htm
+http://www.businessladiesgolf.com/birdie.html
+http://www.businessleader.com/bl/aug97/prncpls.html
+http://www.businesslink.gov.uk/bdotg/action/detail?r.s=sl&type=CASE%20STUDIES&itemId=1075062298
+http://www.businesslink.gov.uk/bdotg/action/detail?type=CASE%20STUDIES&itemId=1074726893
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1073790681
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1073791122
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1073791134
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1073791760
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1074424773
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1074424951
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1074428483
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1074441122
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1074441388
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1074446915
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1074453495
+http://www.businesslink.gov.uk/bdotg/action/detail?type=RESOURCES&itemId=1074467460
+http://www.businesslink.gov.uk/bdotg/action/layer?topicId=1073876962
+http://www.businesslink.gov.uk/bdotg/action/layer?topicId=1074027316
+http://www.businesslink.gov.uk/bdotg/action/layer?topicId=1074414647
+http://www.businessmeetinglocation.com/planning_tips/hotellingo.html
+http://www.businessmeetinglocation.com/planning_tips/tips.html
+http://www.businessnation.com/Businesses_for_Sale/Featured/page21.html
+http://www.businessnation.com/Businesses_for_Sale/Featured/page8.html
+http://www.businessopportunity4u.info/brian4.htm
+http://www.businessownersideacafe.com/cyberschmooz/GenX/1596.html
+http://www.businessplans.org/Green/Green02.html
+http://www.businessplans.org/Green/Green03.html
+http://www.businesspundit.com/
+http://www.businesspundit.com/archives/000666.html
+http://www.businesspundit.com/archives/000796.html
+http://www.businessreport.co.za/index.php?fArticleId=370592
+http://www.businesstown.com/accounting/projections-advice.asp
+http://www.businesstown.com/planning/creating-bank.asp
+http://www.businesstown.com/planning/creating-plan.asp
+http://www.businessweek.com/1997/52/b3559054.htm
+http://www.businessweek.com/1998/21/b3579165.htm
+http://www.businessweek.com/1999/99_50/b3659118.htm
+http://www.businessweek.com/2000/00_45/b3706051.htm
+http://www.businessweek.com/2001/01_08/b3720135.htm
+http://www.businessweek.com/adsections/extravel/frequent/mortgages_flyer.htm
+http://www.businessweek.com/bw50/content/mar2003/a3826067.htm
+http://www.businessweek.com/bwdaily/dnflash/dec2004/nf20041217_8524_db086.htm
+http://www.businessweek.com/careers/content/sep2001/ca20010918_8565.htm
+http://www.businessweek.com/ebiz/0011/es1116.htm
+http://www.businessweek.com/magazine/content/03_09/b3822617_tc102.htm
+http://www.businessweek.com/magazine/content/03_52/b3864056.htm
+http://www.businessweek.com/magazine/content/04_24/b3887077.htm
+http://www.businessweek.com/magazine/content/04_30/b3893001_mz001.htm
+http://www.businessweek.com/magazine/content/04_40/b3902094_mz063.htm
+http://www.businessweek.com/magazine/content/04_43/b3905090_mz017.htm
+http://www.businessweek.com/magazine/content/04_52/b3914504.htm
+http://www.businessweek.com/smallbiz/content/jan2005/sb20050112_7252_sb040.htm
+http://www.businessweek.com/smallbiz/content/jan2005/sb20050112_7252_sb040.htm?chan=sb
+http://www.businessweek.com/smallbiz/content/jun2000/nj000623.htm
+http://www.businessweekeurope.com/magazine/content/05_07/b3920081_mz054.htm
+http://www.businesswest.co.uk/become_a_member/member_directory/a-z.asp?xsl_arg=/h%25/
+http://www.businesswire.com/cgi-bin/f_headline.cgi?bw.040802/220982381
+http://www.businesswritingtips.com/wbwt/tip337.htm
+http://www.busride.com/2005/01/From_Where_I_m_Sitting.asp
+http://www.busserv.ucsb.edu/contractsproperty/speakers_trainers.htm
+http://www.bust.com/news/arc9-2001.shtml
+http://www.bustrace.com/products/delayedwrite.htm
+http://www.butlerwooten.com/CM/Custom/FlaxVerdict.asp
+http://www.butterfliesandwheels.com/dictionary.php
+http://www.butterflyreleases.com/butterflyreleases.com_friends.html
+http://www.butterflyutopia.com/testimonials.html
+http://www.buttpillow.com/history.htm
+http://www.buy-and-sell.com/vega.asp?id=21611
+http://www.buy.co.uk/info/scottish_gas.asp
+http://www.buyagift.co.uk/products/2135.htm
+http://www.buyagift.co.uk/products/2217.htm
+http://www.buyagift.co.uk/products/4074.htm
+http://www.buyagift.co.uk/products/8103.htm
+http://www.buyamower.co.uk/T_and_C.asp
+http://www.buyblue.org/archives/2004/12/cleveland_plain.html
+http://www.buyblue.org/archives/2005/04/help_wanted_out.html
+http://www.buyblue.org/archives/2005/05/buyblue_communi.html
+http://www.buyblue.org/archives/2005/05/walmart_vs_targ_1.html
+http://www.buyblue.org/detail.php?corpId=7
+http://www.buyersmls.com/fitness/benches.htm
+http://www.buyitsellit.com.au/files/departments.php?page_ID=Electronics
+http://www.buylebanese.com/about.asp
+http://www.buymebuyme.com/retail/customer/product.php?productid=44369
+http://www.buymebuyme.com/retail/customer/product.php?productid=44369&cat=288&page=1
+http://www.buymebuyme.com/retail/customer/product.php?productid=44369&cl=1&partner=bobsherman
+http://www.buyonlinenow.com/viewproduct.asp?sku=BFDEC2741GM
+http://www.buyselltix.com/mlb/cardinals.php
+http://www.buyside.com/archives/2004/0411/0412_buyside/0412tel.asp
+http://www.buytelescopes.com/container.asp?dest=/products/hotproduct.html
+http://www.buyusa.gov/china/en/doingbizinchina.html
+http://www.buyusa.gov/colombia/en/pastevents.html
+http://www.buyusa.gov/singapore/en/singapore_market.html
+http://www.buyya.com/libra/
+http://www.buzzfans.com/sports/story/4381636p-4152303c.html
+http://www.buzzflash.com/
+http://www.buzzflash.com/editorial/03/04/04.html
+http://www.buzzle.com/editorials/4-13-2003-39023.asp
+http://www.buzzmetrics.com/about/ab_newscoverage.htm
+http://www.bvalphaserver.com/article12561.html
+http://www.bvf.org.uk/donations/info.asp
+http://www.bvnemba.org/directions.htm
+http://www.bw.lehigh.edu/standard.asp?section=6
+http://www.bw.lehigh.edu/story.asp?ID=18747
+http://www.bwctc.northants.sch.uk/pages/beacon/beacon_swipe.html
+http://www.bweaver.nom.sh/g_melliss/gmelliss.htm
+http://www.bweaver.nom.sh/j_melliss/jmelliss-pt5.htm
+http://www.bwee.com/products_services/3rd_history.htm
+http://www.bwht.org/sc_chinatown3.html
+http://www.bwkayak.com/DirectionsNew.htm
+http://www.bwpics.co.uk/river.html
+http://www.bwrdd-yr-iaith.org.uk/download.php/pID=1102.2
+http://www.bwrdd-yr-iaith.org.uk/download.php/pID=2421.5
+http://www.bwrdd-yr-iaith.org.uk/download.php/pID=3674
+http://www.bwrdd-yr-iaith.org.uk/en/cynnwys.php?cID=6&pID=6&nID=223
+http://www.bwrdd-yr-iaith.org.uk/en/cynnwys.php?cID=6&pID=72&nID=118
+http://www.bxa.doc.gov/News/2004/USPanama7_22.htm
+http://www.bxa.doc.gov/News/Archive98/WARHighComputers.html
+http://www.bxa.doc.gov/news/2003/ForeignPolicyReport/fprchap5_embargoedcountries.html
+http://www.bxa.doc.gov/policiesandregulations/LibyaOveralGuidance.htm
+http://www.bxsciencepa.org/
+http://www.bygonebyways.com/hist_alt_80.htm
+http://www.bymt.co.uk/courses.cfm
+http://www.byndlimits.com/adventure-travel/rest.htm
+http://www.bynkii.com/archives/2005/04/microsofts_neut.html
+http://www.bynkii.com/archives/2005/05/i_hates_lucas_i.html
+http://www.byregion.net/articles-healers/manifesting.html
+http://www.byte.com/art/9403/sec5/art1.htm
+http://www.byteandswitch.com/document.asp?doc_id=28323&page_number=2
+http://www.byteandswitch.com/document.asp?doc_id=35912&page_number=2
+http://www.bytecool.com/faqs.htm
+http://www.bytefarmers.com/log/index.php?m=20050112
+http://www.byteland.org/projectk9/gdod.htm
+http://www.bytesector.com/data/bs-article.asp?ID=211&ct=LCD
+http://www.bytesector.com/data/index.asp
+http://www.bytheseajewelry.com/about/raves.php
+http://www.bythom.com/support.htm
+http://www.bytware.com/
+http://www.bytware.com/press/case12.html
+http://www.bytware.com/press/news51.html
+http://www.byu.edu/
+http://www.byu.edu/edlf/archives/mckay/46feb5.html
+http://www.byu.edu/tma/arts-ed/units/moveunit.htm
+http://www.byu.edu/~hurlbut/mrds/news-f97.html
+http://www.c-b.com/information%20center/public%20works/ic.asp?tID=14&pID=122
+http://www.c-c-d.org/2005HUD.htm
+http://www.c-design.com/c-design/accrec.html
+http://www.c-level.cc/CorinnaSchnitt.html
+http://www.c-n.com/apps/pbcs.dll/article?AID=/20050608/CJL/505060382/1059
+http://www.c-n.com/apps/pbcs.dll/article?AID=/20050622/NEWS02/506220301/1004
+http://www.c-r.org/accord/sri/accord4/background.shtml
+http://www.c-r.org/pubs/occ_papers/Bright.shtml
+http://www.c-r.org/pubs/occ_papers/af_media/baglo.shtml
+http://www.c-span.org/2004vote/jkerrytestimony.asp
+http://www.c-span.org/executive/transcript.asp?cat=current_event&code=bush_admin&year=1968
+http://www.c-span.org/executive/transcript.asp?cat=current_event&code=bush_admin&year=1978
+http://www.c-span.org/executive/transcript.asp?cat=current_event&code=bush_admin&year=1982
+http://www.c-span.org/executive/transcript.asp?cat=current_event&code=bush_admin&year=2004
+http://www.c-span.org/executive/transcript.asp?cat=current_event&code=bush_admin&year=2005
+http://www.c-ville.com/www/archives/2004/12-28-2004/asp/3.asp
+http://www.c20th.com/ppdukeofyorks.htm
+http://www.c2kni.org.uk/etstrat/elearning/neelb.htm
+http://www.c3f.com/ntytoday.html
+http://www.c4vct.com/kym/vivisect/nnbsad.htm
+http://www.ca-missions.org/illusgl.html
+http://www.ca.blm.gov/alturas/telephone/chapter07.htm
+http://www.ca.uky.edu/agc/pubs/4af/4af05ma/4af05ma.htm
+http://www.ca.uky.edu/agc/pubs/agr/agr33/agr33.htm
+http://www.ca1.uscourts.gov/cgi-bin/getopn.pl?OPINION=03-2096.01A
+http://www.ca1.uscourts.gov/cgi-bin/getopn.pl?OPINION=04-1286.01A
+http://www.caapa.org/english/organize/organiza_4.htm
+http://www.caat.org.uk/campaigns/dsei/dsei2003.php
+http://www.caat.org.uk/information/magazine/article.php?edition=0803&article=Stop+Week+shuts+arms+trade
+http://www.caat.org.uk/information/publications/government/ecgd-submission-1099.php
+http://www.caat.org.uk/information/publications/other/intro-briefing-0901.php
+http://www.caaws.ca/girlsatplay/experts/fitness/
+http://www.cabalamat.org/weblog/current_europe.html
+http://www.cabinda.net/Cabinda08.html
+http://www.cabinetmagazine.org/issues/1/i_moglen_2.php
+http://www.cabinetmagazine.org/issues/9/wall.php
+http://www.cable-modems.org/shop/am_detail.php?ASIN=B00005T3T6
+http://www.cableforum.co.uk/board/article.php?goto=lastcomment&a=42
+http://www.cableorganizer.com/raised-floors/
+http://www.cabq.gov/waterconservation/xeric.html
+http://www.cabrini.edu/writing/assessment/characteristics.html
+http://www.cacatholic.org/enl/enl40527.html
+http://www.cacianalyst.org/view_article.php?%20articleid=1143
+http://www.cactusteachers.com/everythingspain/everythingspainarticle.php
+http://www.cadbury.co.uk/EN/CTB2003/about_chocolate/making_chocolate/cocoa_countries.htm
+http://www.caddigest.com/subjects/research/select/cadspaghetti_reading.htm
+http://www.caddpower.com/B742661069/C1513140654/E776545009/
+http://www.caddprimer.com/cad_software_vendors/cad_cam_general_purpose.htm
+http://www.caddprimer.com/library/
+http://www.caddybytes.com/golf_club(s)_order_FAQ_page.htm
+http://www.cadeca.org/blog/vp_norcal.php
+http://www.cadenhead.org/workbench/entry/2005/06/17
+http://www.cadenhead.org/workbench/news/2622
+http://www.cadets.ca/seacad/resources-ressources/phase1/10_e.asp
+http://www.cadetstuff.org/archives/p000107.html
+http://www.cadserver.co.uk/common/viewer/archive/2000/Oct/12/feature2.phtm
+http://www.cae.com/www2004/Products_and_Services/Military_Simulation_and_Training/Portfolio_of_Experience/helicopterExperience.shtml
+http://www.caem.org/website/pages/PJM_Workshop.htm
+http://www.caep.ca/002.policies/002-04.romanow/romanow-07.htm
+http://www.caerdydd.ac.uk/research/activity/maths/
+http://www.caerdydd.ac.uk/research/publications/pubs/year2003/page25817.html
+http://www.caerdydd.ac.uk/schoolsanddivisions/divisions/humrs/jobs/academicresearchsenior/ref0304.html
+http://www.caf.wvu.edu/wvafes/projects2001/PSS_WVA00161.htm
+http://www.caf.wvu.edu/~forage/vpi/418-012/418-012.htm
+http://www.cafamily.org.uk/Direct/a54.html
+http://www.cafamily.org.uk/Direct/c58.html
+http://www.cafeaulait.org/
+http://www.cafebabel.com/en/article.asp?T=T&Id=3713
+http://www.cafecampesino.com/Atlanta_Journal_Jan_9_2005.html
+http://www.cafecampesino.com/coffee/fairtrade.html
+http://www.cafecancun.com/guide/transprt.htm
+http://www.cafeconleche.org/books/effectivexml/chapters/03.html
+http://www.cafedirect.co.uk/pressoffice/release.builder/00023.html
+http://www.cafedoom.com/black.html
+http://www.cafemama.com/truman/
+http://www.cafepress.com/00ps/458133
+http://www.cafepress.com/americanstyle/516593
+http://www.cafepress.com/cp/browse/N-1551_Ne-25_bt-2
+http://www.cafepress.com/cp/browse/Ne-1160_N-1547+1273+20611267_nr-1_bt-2
+http://www.cafepress.com/danesrusduds/16206
+http://www.cafepress.com/datingdesign
+http://www.cafepress.com/ejournalstuff/388876
+http://www.cafepress.com/irregulargoods/107850
+http://www.cafepress.com/joeandmoe/496310
+http://www.cafepress.com/philosophy_shop/637682
+http://www.cafepress.com/subgen
+http://www.cafepy.com/articles/python_types_and_objects/python_types_and_objects.html
+http://www.cafeunderground.com/Cafesite/Rooms/Writing/MossGard/moss_5.html
+http://www.cafilm.org/
+http://www.cafm-services.com/badug/BADUG-TOC.htm
+http://www.cafod.org.uk/policy_and_analysis/policy_papers/debt/debt_and_mdgs
+http://www.cafonline.org/company/smegrant/main.cfm
+http://www.cafonline.org/news/news_story.cfm?whichStory=3779
+http://www.caft.org.uk/factsheets/reasons-for-trapping.html
+http://www.cafta.org/Response_to_Harbinson_Feb_2003.html
+http://www.cag.lcs.mit.edu/~rinard/paper/
+http://www.cahperd.ca/YearofSportandPE/e/winterweek/lesson_plans.cfm
+http://www.cahro.co.uk/index.cfm?act=gen&page=What%20are%20NVQs
+http://www.cai.gouv.qc.ca/11_foire_aux_questions/entreprises-en.html
+http://www.caihometype.com/cgi-bin/eboard30/index2.cgi?frames=no&board=Main&mode=Current&message=3005
+http://www.caionline.org/excerpts/index.cfm?ProductCode=5613
+http://www.cairnsholiday.com/hotel/casino.htm
+http://www.cairnsmuseum.org.au/aboriginal.htm
+http://www.caithness.org/
+http://www.caj.ca/mediamag/summer2002/info-forbid.html
+http://www.caj.ca/mediamag/winter2001/writingtoolbox.html
+http://www.cajunchess.com/affiliates/aff-signup.htm
+http://www.cakafete.com/election_2000/
+http://www.cakewalk.com/x64/whitepaper.asp
+http://www.cal-neva.com/gallery
+http://www.cal.org/caela/digests/mental.htm
+http://www.cal.org/ebonics/ebfillmo.html
+http://www.cal.org/resources/News/200012/assessment.html
+http://www.cal.org/resources/digest/0108ortiz.html
+http://www.cal.org/resources/digest/ncrcds03.html
+http://www.cal.org/topics/dialres.htm
+http://www.calaa.net/resource_finmngmt.html
+http://www.calcleanair.org/
+http://www.calcuttaweb.com/people/rammohan.shtml
+http://www.caldeson.com/iso15489.html
+http://www.caldiatech.com/legal_internet_marketing.php4
+http://www.caledonia.org.uk/friend_foe.htm
+http://www.caledonia.org.uk/land/response.htm
+http://www.caledonia.org.uk/land/zimbabwe.htm
+http://www.caledonia.org.uk/socialland/loft.htm
+http://www.caledoniankitchen.com/catalog/aboutourhaggis.php
+http://www.calendarlive.com/cl-et-rutten14may14,0,1989743.column
+http://www.calendarlive.com/columnists/cl-et-rutten14may14,0,7928705.column
+http://www.calendarlive.com/movies/cl-ca-cinefile6feb06,2,4725464.story?coll=cl-movies
+http://www.calendarlive.com/movies/cl-et-sundance31jan31,2,4231016.story?coll=cl-home-more-channels
+http://www.calendarlive.com/music/pop/cl-ca-dylan04apr04,0,3583678.story
+http://www.calepa.ca.gov/About/History01/building.htm
+http://www.calfarleysboysranch.org/whatshappening_2004archive.html
+http://www.calgarylabservices.com/LabTests/AlphabeticalListing/MicroTests/HIV-Viral-Load.htm
+http://www.calgarylabservices.com/LabTests/TransfusionMedicine/BloodAdministration.htm
+http://www.calgarywomensshelter.com/html/education/safety_plan.html
+http://www.calharvest.com/trade.html
+http://www.cali.org/jlsc/simonds.html
+http://www.calicocat.com/2003/11/new-sat-why-fix-what-works.html
+http://www.california.com/~mcmf/ts202a.html
+http://www.californiaaggie.com/article/?id=8134
+http://www.californialung.org/press/030617epa.html
+http://www.californialung.org/spotlight/cleanair03_milestones.html
+http://www.californiapeaceaction.org/action/booksnotbombs.htm
+http://www.californiaspeedway.com/news/news.jsp?news_id=45
+http://www.californiaspeedway.com/news/news.jsp?news_id=58
+http://www.californiaspeedway.com/news/news.jsp?news_id=58&print=yes
+http://www.caligirl.net/cg/aboutme-cravings.htm
+http://www.calit2.net/technology/features/3-04_yee.html
+http://www.call-with-current-continuation.org/manual/FAQ.html
+http://www.callcentermagazine.com/article/CCM20020303S0005
+http://www.callcentermagazine.com/shared/article/showArticle.jhtml?articleId=8701474&classroom=
+http://www.callcentermagazine.com/shared/printableArticle.jhtml?articleID=8701474
+http://www.callnetuk.com/home/sjprice/sthilarys/sundayschool.html
+http://www.callofdutyelement.com/forum/index.php?act=ST&f=24&t=2789
+http://www.callofdutyelement.com/forum/index.php?showtopic=2789
+http://www.callofdutyelement.com/forum/index.php?showtopic=2789&view=getnewpost
+http://www.callsense.com/resources/callglossary.htm
+http://www.callsforpapers.com/Categorypages/Business%20Environment%20&%20Managerial%20Economics.html
+http://www.callsure07050.co.uk/
+http://www.calmis.ca.gov/file/oesstructure/oes_def3.htm
+http://www.calmun.org/AMSOUTH/AMSOUTH.htm
+http://www.calorie-count.com/calories/activities/5.html
+http://www.caloriescount.com/testimonials.html
+http://www.calottery.com/games/gamespecifics/claimingprizes.html
+http://www.calpine.com/tools/faqs.asp
+http://www.calpoly.edu/~brupnik/tale.html
+http://www.calpoly.edu/~spc/debate/careers.htm
+http://www.calq.gouv.qc.ca/artistes/architecture_en.htm
+http://www.calq.gouv.qc.ca/artistes/danse_en.htm
+http://www.calq.gouv.qc.ca/artistes/faq_art_en.htm
+http://www.calq.gouv.qc.ca/artistes/studios_prog_en.htm
+http://www.calren2.net/musicsoftware/
+http://www.calresco.org/emerge.htm
+http://www.calresco.org/lucas/eiem.htm
+http://www.calresco.org/lucas/fitness.htm
+http://www.calresco.org/lucas/natures.htm
+http://www.calresco.org/lucas/quantify.htm
+http://www.cals.cornell.edu/human_price_of_land_preservation.cfm
+http://www.cals.ncsu.edu/agcomm/magazine/winter05/productive.htm
+http://www.cals.ncsu.edu/course/ent425/text19/physmech.html
+http://www.cals.ncsu.edu:8050/plantpath/mis&vis.html
+http://www.calsharp.com/music/Cold2.html
+http://www.calsoftware.co.uk/custcase2.htm
+http://www.calsoftware.co.uk/custcase4.htm
+http://www.calstart.org/aboutus/nl_detail.php?id=77
+http://www.caltax.org/member/digest/June2004/6.2004.Coupal-CaliforniaTaxBurden.02.htm
+http://www.calvin-coolidge.org/pages/homestead/
+http://www.calvin.edu/academic/cas/gpa/weserems.htm
+http://www.calvin.edu/academic/engl/ks/teams/nnts99.htm
+http://www.calvin.edu/~dhaarsma/scifaith/chapel.00Nov.htm
+http://www.calvin.edu/~dvrb/sector_files/reports/pollution.htm
+http://www.calvincrc.ca/Sermons/ro12'9f.htm
+http://www.calvincrc.org/sermons/2005/potluckMedJan05.html
+http://www.calypso.org/~neill/guide/emergency.htm
+http://www.calyx.net/~schaffer/GOVPUBS/gao/gao30.html
+http://www.calyx.net/~schaffer/LIBRARY/studies/vlr/vlr8.htm
+http://www.cam.ac.uk/cambuniv/childcare/childguide/nonuniv1.html
+http://www.cam.ac.uk/cambuniv/disability/support/college.html
+http://www.cam.ac.uk/cambuniv/nobelprize.html
+http://www.cam.ac.uk/cs/newsletter/2005/nl224/general.html
+http://www.cam.org/~ifva/Advocacy/BriefStandCommittee.html
+http://www.camagazine.com/index.cfm/ci_id/18168/la_id/1.htm
+http://www.camaraslate.com/flagstone.htm
+http://www.camartech.com.au/ress/shop.php3?aisle=resources-tech
+http://www.camaweb.org/corporate/index.php
+http://www.cambodianbuddhist.org/english/website/canon/sutta/anguttara/an08-039.html
+http://www.cambriachamber.org/cambria/cambria_map.htm
+http://www.cambridge-fpas.co.uk/rules.htm
+http://www.cambridge-news.co.uk:8036/businessawards/categories/categories6.asp
+http://www.cambridge-pubs.co.uk/yellow.html
+http://www.cambridge-united.premiumtv.co.uk/page/News/Feature/0,,10423~468426,00.html
+http://www.cambridge.gov.uk/public/ff/disabled_facilities.html
+http://www.cambridge.org/aus/catalogue/catalogue.asp?isbn=0521529921&ss=exc
+http://www.cambridge.org/aus/catalogue/catalogue.asp?isbn=0521532183&ss=exc
+http://www.cambridge.org/aus/catalogue/catalogue.asp?isbn=0521540712&ss=exc
+http://www.cambridge.org/aus/catalogue/catalogue.asp?isbn=0521547571&ss=toc
+http://www.cambridge.org/aus/catalogue/catalogue.asp?isbn=0521825326&ss=exc
+http://www.cambridge.org/catalogue/catalogue.asp?isbn=0521532183&ss=exc
+http://www.cambridge.org/catalogue/catalogue.asp?isbn=0521547571&ss=toc
+http://www.cambridge.org/catalogue/catalogue.asp?isbn=0521825326&ss=exc
+http://www.cambridge.org/elt/englishinmind/teacher_resources/portfolio.htm
+http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=0521010632
+http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=0521521009
+http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=0521532183&ss=exc
+http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=0521556252
+http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=0521825326&ss=exc
+http://www.cambridge.org/uk/catalogue/print.asp?isbn=0521521009&print=y
+http://www.cambridge.org/uk/journals/libserv/consortia.htm
+http://www.cambridgeesol.org/exams/pet.htm
+http://www.cambridgeesol.org/research/savisual.htm
+http://www.cambridgeesol.org/teach/ielts/listening/aboutthepaper/faqs.cfm
+http://www.cambridgeforum.org/
+http://www.cambridgemuslims.info/services/
+http://www.cambridgenetwork.co.uk/pooled/profiles/BF_COMP/view.asp?Q=BF_COMP_17797
+http://www.cambridgescp.com/latin/clc/teachers_area/clc_ta_ped_t_method.html
+http://www.cambridgeshire.gov.uk/council/involved/
+http://www.cambridgevineyard.com/about/staff.htm
+http://www.camcentral.com/review_pccam600.php
+http://www.camcnty.gov.uk/sub/tsd/press.htm
+http://www.camcorderinfo.com/bbs/archive/index.php/t-110548.html
+http://www.camcorderinfo.com/bbs/t110548.html
+http://www.camcycle.org.uk/about/manifesto.html
+http://www.camcycle.org.uk/events/archive/2004.html
+http://www.camcycle.org.uk/newsletters/1/article2.html
+http://www.camcycle.org.uk/newsletters/4/article6.html
+http://www.camdennewjournal.co.uk/2004%20archive/200504/n200504_1.htm
+http://www.camdennewjournal.co.uk/archive/n210803_5.htm
+http://www.cameco.com/investor_relations/annual/1999/marketing.php
+http://www.cameco.com/investor_relations/annual/2002/md_and_a/market.php
+http://www.cameco.com/investor_relations/quarterly/2000-q2/overview.php
+http://www.camelliawaldorf.org/calendar.htm
+http://www.cameraguild.com/magazine/stoo699.htm
+http://www.cameraontheroad.com/
+http://www.cameraontheroad.com/being/lmover9.html
+http://www.camerasunderwater.co.uk/info/pages/d_stills.html
+http://www.cameronmedical.com/whiplash-abroad.html
+http://www.cameronmoll.com/archives/000267.html
+http://www.camh.net/about_addiction_mental_health/take_action_deal_with_drugs.html
+http://www.camhs.net/main/parents01.asp
+http://www.cami.jccbi.gov/AAM-400A/FASMB/HOP/hop_2002_3.htm
+http://www.camla.org/garnier/425bldg.htm
+http://www.camlawstudio.com/legal_English_Plus.html
+http://www.camls.org/news/sep2001/mem.html
+http://www.camp-a-roo.com/UDGD/moms.shtml
+http://www.camp4.com/morerockart.php?newsid=374
+http://www.campaignfinance.org/tracker/summer00/warner.html
+http://www.campaignfinancesite.org/history/reform1.html
+http://www.campaignformuseums.org.uk/html/conf/cr_mm.htm
+http://www.campaignlegalcenter.org/press-1388.html
+http://www.campaignwatch.org/
+http://www.campbell.amedd.army.mil/patient_rights.shtml
+http://www.campbellsci.com/bridge-monitoring
+http://www.campbellsci.com/structural-seismic
+http://www.campbethelvirginia.org/philosophy.htm
+http://www.campchippewa.com/images2002/2002_Sandford_Log.htm
+http://www.campcreative.com.au/courses-visual-arts.html
+http://www.campexperts.com/Testimonials.aspx
+http://www.camphill.org/stories.php
+http://www.campinglife.com/site_page_902/article_page_59.cfm
+http://www.campmanitou.com/directors/
+http://www.campoutlaw.com/blog/archives/000127.html
+http://www.campsilos.org/excursions/hc/fieldtrip.htm
+http://www.campsisterspirit.com/
+http://www.campsitereviews.com/english/site_000176.htm
+http://www.campus-germany.de/
+http://www.campus-germany.de/english/
+http://www.campus-germany.de/english/4.22.3.858.html
+http://www.campus-germany.de/english/4.80.305.html
+http://www.campus-technology.com/article.asp?id=6985
+http://www.campus-technology.com/article.asp?id=7092
+http://www.campus-technology.com/campusmobility/article.asp?id=6985
+http://www.campus-technology.com/news_article.asp?id=10865&typeid=153
+http://www.campus-watch.org/article/id/1104
+http://www.campus-watch.org/article/id/406
+http://www.campus-watch.org/article/id/419
+http://www.campus-watch.org/article/id/432
+http://www.campus-watch.org/article/id/611
+http://www.campusactivism.org/
+http://www.campusblues.com/s_inven.asp
+http://www.campusbooks.com/search.asp?selType=Keyword&txtValue=Fortune%20Telling
+http://www.campuscareercenter.com/students/article.asp?news_id=381
+http://www.campuscareercenter.com/students/article.asp?news_id=903
+http://www.campusgermany.de/english/4.90.337.html
+http://www.campusprogress.org/features/297/everyone-remember-were-doing-this-for-minorities-and-women--minorities-women-and-small-farmers
+http://www.campusprogress.org/page/community/post_group/main/BvR
+http://www.campzine.com/archive/2001/11_2001.html
+http://www.camtp.uni-mb.si/books/Thinking-in-Java/AppendixA.html
+http://www.camwib.org.uk/core.html
+http://www.camwood.org/identity.htm
+http://www.camworld.com/
+http://www.can-cara.com/application_form.htm
+http://www.canada.com/national/features/aircanada/story.html?id=7E2DC895-80CB-44B5-8C0D-71334E7AB6F8
+http://www.canada.com/national/features/iraq/story.html?id=926CC4D1-C63B-4643-A3BB-605E1A71DFEA
+http://www.canadacareerweek.com/products/cp_nav/home_e.cfm?art_number=3&sectionid=5
+http://www.canadafreepress.com/2003/main100603.htm
+http://www.canadafreepress.com/2005/cover022405.htm
+http://www.canadaone.com/ezine/feb05/art_fine_business.html
+http://www.canadaone.com/ezine/nov02/competitors.html
+http://www.canadapost.ca/textonly/tools/pg/manual/b03-E.asp
+http://www.canadapost.ca/tools/pg/manual/b03-e.asp
+http://www.canadavacationplanner.com/listings/EN/518
+http://www.canadianactor.com/info/thebiz.html
+http://www.canadianbiodiversity.mcgill.ca/english/theory/abundance.htm
+http://www.canadianchristianity.com/cgi-bin/na.cgi?nationalupdates/040205galileo
+http://www.canadianchristianity.com/cgi-bin/na.cgi?nationalupdates/050202liberals
+http://www.canadianclayandglass.ca/Ione%20Thorkelsson%20press.html
+http://www.canadianclayandglass.ca/Strategic_plan_2004.html
+http://www.canadianclayandglass.ca/Thorn_Glass.html
+http://www.canadiancontent.ca/articles/092704marriage.html
+http://www.canadiancontent.ca/articles/100501terrorism.html
+http://www.canadiancrc.com/articles/Ottawa_Citizen_RCMP_Officer_sues_Ottawa_police_DV_12MAY04.htm
+http://www.canadiandemocraticmovement.ca/displayarticle559.html
+http://www.canadiandimension.mb.ca/extra/d0428md.htm
+http://www.canadiandimension.mb.ca/v38/v38_1dp.htm
+http://www.canadiandriver.com/articles/bv/wagons.htm
+http://www.canadianexpeditions.com/questions.php
+http://www.canadianfreespeech.com/cafegrams/feb-19-04.html
+http://www.canadianfreespeech.com/cafegrams/feb-23-04.html
+http://www.canadianfreespeech.com/updates/warman/warman_threatens_to_sue.html
+http://www.canadianfriendsearch.com/
+http://www.canadianheritage.gc.ca/pc-ch/min/discours-speech/2004-11-24_e.cfm
+http://www.canadianlawsite.com/intellectual.htm
+http://www.canadiannetworkoncuba.ca/Documents/Petras-1may03.shtml
+http://www.canadiannorthern.ca/chronicle14-1
+http://www.canadianpersonalchefalliance.ca/Topic2.html
+http://www.canadianpokerplayer.com/?pageID=10408
+http://www.canadianpoultry.ca/chapter_iv.htm
+http://www.canadiansport.ca/newsletters/June/strategies_e.cfm
+http://www.canadiansportsman.ca/articles/dec202004.html
+http://www.canalboatholidays.com/canalboat/emerald_star/index.shtml
+http://www.canalconcerts.com/2004_shows.asp?artist=bacon-brothers-kevin
+http://www.canalmuseum.org.uk/venue/meeting.htm
+http://www.canbap.org/sermon46.html
+http://www.canberra.edu.au/studyskills/learning/reading.html
+http://www.canberra.edu.au/studyskills/learning/tutorials.html
+http://www.canberrahouse.com.au/profiles/northbourne.html
+http://www.canberramarathon.com.au/index.php?pageid=52
+http://www.cancer.gov/cancertopics/make-a-difference/allpages
+http://www.cancer.gov/cancertopics/make-a-difference/allpages/print
+http://www.cancer.gov/cancertopics/pdq/cam/cartilage/HealthProfessional/page5
+http://www.cancer.gov/clinicaltrials/finding/treatment-trial-guide/allpages
+http://www.cancer.gov/templates/db_alpha.aspx?expand=F
+http://www.cancer.org/docroot/CRI/content/CRI_2_4_3X_Can_breast_cancer_be_found_early_5.asp?sitearea=
+http://www.cancer.org/docroot/CRI/content/CRI_2_6X_Dealing_With_Treatment.asp?sitearea=CRI
+http://www.cancer.org/docroot/ESN/content/ESN_2_1x_Communicating_with_Friends_and_Relatives_About_Your_Cancer.asp
+http://www.cancer.org/docroot/ESN/content/ESN_2_1x_Helping_Your_Child_Deal_with_a_Family_Members_Cancer_Treatment.asp?sitearea=ESN
+http://www.cancer.org/docroot/ESN/content/ESN_2_4X_Cancer_information_and_support_available_online.asp
+http://www.cancer.org/docroot/MIT/content/MIT_2_3X_What_Supervisors_Can_Do.asp?sitearea=MIT
+http://www.cancer.org/docroot/MIT/content/MIT_7_2X_Keeping_Your_Sex_Life_Going.asp
+http://www.cancer.org/docroot/MIT/content/MIT_7_2X_Keeping_Your_Sex_Life_Going.asp?sitearea=MIT&viewmode=print&
+http://www.cancer.org/docroot/MIT/content/MIT_7_2x_Rekindling_Sexual_Interest.asp?sitearea=MIT
+http://www.cancer.org/docroot/NWS/content/NWS_1_1x_Eating_Lots_of_Red_Meat_Linked_to_Colon_Cancer.asp
+http://www.cancer.org/docroot/NWS/content/NWS_2_1xU_Chemotherapy%E2%80%99s_Side_Effects_Worth_Enduring.asp
+http://www.cancer.org/docroot/NWS/content/update/NWS_2_1xU_Chemotherapy%E2%80%99s_Side_Effects_Worth_Enduring.asp
+http://www.cancer.org/docroot/PED/content/PED_3_1x_Link_Between_Lifestyle_and_CancerMarch03.asp
+http://www.cancer.org/docroot/PUB/PUB_1.asp?sitearea=PUB&level=1
+http://www.cancer.org/docroot/SPC/content/SPC_1_Love_Means_Getting_Men_the_Checkups_They_Need.asp
+http://www.cancer.org/docroot/SPC/content/SPC_1_Love_Means_Getting_Men_the_Checkups_They_Need.asp?sitearea=SPC&viewmode=print&
+http://www.cancer.org/docroot/SPC/content/SPC_1_QandA_Should_You_Exercise_During_Cancer_Treatment.asp
+http://www.cancer.org/docroot/cri/content/cri_2_4_1x_what_is_colon_and_rectum_cancer.asp?sitearea=cri
+http://www.cancer.org/docroot/ped/content/ped_10_14_how_to_fight_teen_smoking.asp
+http://www.cancer.org/docroot/ped/content/ped_10_14_how_to_fight_teen_smoking.asp?sitearea=PED&viewmode=print&
+http://www.canceradvocacy.org/resources/essential/end/decisions.aspx
+http://www.canceradvocacy.org/resources/essential/pain/elderly.aspx
+http://www.cancerbacup.org.uk/Resourcessupport/Eatingwell/Eatingproblems/Feelingsick
+http://www.cancerbacup.org.uk/Resourcessupport/Relationshipscommunication/Talkingaboutyourcancer/Askingforinformation
+http://www.cancerbacup.org.uk/Resourcessupport/Relationshipscommunication/Talkingaboutyourcancer/Askingforsupport
+http://www.cancerbacup.org.uk/Treatments/Chemotherapy/Linesports
+http://www.cancerbacup.org.uk/Treatments/Radiotherapy/Sideeffects
+http://www.cancerbacup.org.uk/Treatments/Supportivetherapies/Bloodtransfusions
+http://www.cancerboard.ab.ca/patient/patient_committed_paying.html
+http://www.cancerconferences.com/sobo/meeting_schedule/saturday.html
+http://www.cancercouncil.com.au/editorial.asp?pageid=1056
+http://www.cancercouncil.com.au/editorial.asp?pageid=1233
+http://www.cancercouncil.com.au/editorial.asp?pageid=1371
+http://www.cancerdecisions.com/062104_page.html
+http://www.cancerdiagnosis.nci.nih.gov/diagnostics/advice.html
+http://www.cancerguide.org/alternative_philosophy.html
+http://www.cancerguide.org/small_trial_stats.html
+http://www.cancerhelp.org.uk/help/default.asp?page=314
+http://www.cancerimmunity.org/SEREX/immunogenicity.htm
+http://www.cancerscreening.nhs.uk/cervical/
+http://www.cancersupportivecare.com/second_opinions.html
+http://www.cancersupportivecare.com/selfcare.html
+http://www.cancersupportivecare.com/surgerypain.html
+http://www.cancerwatch.org/glossary/glossary_10.cfm
+http://www.cancuncare.com/spring_break/spring_break.htm
+http://www.cancure.org/legislation.htm
+http://www.candlepowerforums.com/ubbthreads/showflat.php?Cat=&Number=820222&page=&view=&sb=5&o=
+http://www.candlesandsupplies.com/classes.htm
+http://www.candlesupply.com/
+http://www.candoo.com/genresources/antiguafilms7.htm
+http://www.candoo.com/genresources/antiguafilms8.htm
+http://www.canemasters.com/newsletter/sept2001news.htm
+http://www.canfitpro.com/html/montreal_saturday.asp
+http://www.canfor.com/2200.asp
+http://www.canine-epilepsy.com/FAQ.html
+http://www.canismajor.com/dog/firstsix.html
+http://www.canismajor.com/dog/meanit.html
+http://www.canismajor.com/dog/obedshow.html
+http://www.canismajor.com/dog/rottweil.html
+http://www.canismajor.com/dog/skin1.html
+http://www.canismajor.com/dog/srcshelt.html
+http://www.canismajor.com/dog/thunder.html
+http://www.cankan.com/gizmir/13-interesting_places_of_izmir.htm
+http://www.canlaw.com/scc/smallclaims.htm
+http://www.canlii.org/ca/cas/scc/1992/1992scc78.html
+http://www.canlii.org/ca/cas/scc/2004/2004scc23.html
+http://www.canlii.org/mb/laws/sta/c-240/20041104/whole.html
+http://www.canlii.org/on/laws/sta/o-44/20041104/whole.html
+http://www.canmoreleader.com/story.php?id=141215
+http://www.cannabiscup.com/ht/cancup/content.php?bid=202&aid=3
+http://www.cannabiscup.com/ht/cancup/content.php?bid=9&aid=9
+http://www.cannabiscup.com/ht/cancup/content.php?bid=94&aid=3
+http://www.cannabisnews.com/news/thread14727.shtml
+http://www.canoe-kayak.org/pages/t2.html
+http://www.canoe.ca/LifewiseBeauty0412/21_london-can.html
+http://www.canoe.ca/LifewiseMirrorsBodyMind00/0707_tankard.html
+http://www.canoe.ca/LifewiseWorkEtiquetteladies/011031_etiquette-par.html
+http://www.canoe.ca/NewsStand/CalgarySun/Sports/2005/07/01/1112997-sun.html
+http://www.canoe.ca/NewsStand/LondonFreePress/News/2004/10/12/665385.html
+http://www.canoe.ca/NewsStand/LondonFreePress/News/2005/06/12/1083012-sun.html
+http://www.canoe.ca/NewsStand/LondonFreePress/News/2005/06/19/1094890-sun.html
+http://www.canoe.ca/Slam020724/col_jones-sun.html
+http://www.canoe.ca/SlamNaganoAlpineSkiingArchive/feb16_wea.html
+http://www.canoe.ca/WesternTicker/
+http://www.canoeplants.com/maia.html
+http://www.canoepolo.com/forum/archive/index.php/t-1865.html
+http://www.canoestories.com/bike1c3.html
+http://www.canola-council.org/about/digests/0301.html
+http://www.canolainfo.org/html/truthmyths.html
+http://www.canon-europe.com/For_Work/Products/index.asp
+http://www.canon.com.au/supplies/products/supplies/story_881.html
+http://www.canon.com/environment/eco2004e/p09.html
+http://www.canoncollins.org.uk/about/aboutHistoryIDAF.shtml
+http://www.canongate.net/Weed/SeekingThoseResponsibleForA
+http://www.canopener.ca/article.php?story=20041114134142946
+http://www.canow.org/issues/repro_protectnow.html
+http://www.canpension.ca/pages/national.html
+http://www.canpo.org/workshops_listing.cfm
+http://www.canren.gc.ca/prod_serv/index.asp?CaId=130&PgId=1232
+http://www.cantaloupemusic.com/CA21012.html
+http://www.canteach.ca/elementary/sikhism15.html
+http://www.canteach.ca/elementary/songspoems32.html
+http://www.canterbury.ac.nz/courses/undergrad/bcom.shtml
+http://www.canterbury.nsw.gov.au/history/cantbell/nov98.htm
+http://www.canterburyconservatives.co.uk/page/3/44/
+http://www.cantoraccess.com/keyaccess/keyaccessfaq.htm
+http://www.cantorconcern.com/
+http://www.cantufind.com/acting.htm
+http://www.canuckabroad.com/overseasjobs/korea/cultural.shtml
+http://www.canuckflack.com/
+http://www.canurb.com/programs/int_about_globaldev.php
+http://www.canveyislandfc.com/History%20of%20Canvey%20Island%20FC%20By%20Robert%20Errington%20part%2043.htm
+http://www.canyoncreek.com/about_us/cabinet_care/
+http://www.cao-aco.org/MEDIA/FAQ.html
+http://www.caomhin.org/baseball/
+http://www.cap-caraibes.com/Salesproduct.html
+http://www.cap.nsw.edu.au/projects/2000_inits/moree_2000.htm
+http://www.capax.se/solutions/FormFactors.htm
+http://www.capcollege.bc.ca/programs/psychology/students/esl/
+http://www.capdefnet.org/htm_library/Chandler1.htm
+http://www.capeanimals.org/happyendings.htm
+http://www.capeannweb.com/AGH/
+http://www.capecodfrosty.org/newslets/fall96.htm
+http://www.capecodhealth.org/falmouthhospital/medicalservices.asp
+http://www.capecodonline.com/cctimes/edits/cctblogs/gb/archives/000869.htm
+http://www.capecodonline.com/cctimes/edits/cctblogs/gb/archives/2004_09.htm
+http://www.capecodonline.com/cctimes/update/
+http://www.capecodtoday.com/modules.php?op=modload&name=News&file=article&sid=0175
+http://www.capecodtravelguide.com/literay-provincetown.php
+http://www.capeelizabeth.com/aPlan.html
+http://www.capegateway.gov.za/eng/pubs/guides/R/85540/2
+http://www.capetownpride.co.za/
+http://www.capewind.org/modules.php?op=modload&name=News&file=article&sid=100
+http://www.capeyorkmotorcycles.com.au/tours-road.php
+http://www.capi.uvic.ca/pubs/newsletter/sept99.htm
+http://www.capita-ld.co.uk/capita-ld/resources/employment_law/updates/2005/03.05.05.htm
+http://www.capital-books.com/Books/BookDetail.aspx?productID=73011
+http://www.capital.edu/cc/finaid/finaidworkstudy.cfm
+http://www.capital.edu/mysecondyear/post_body.cfm?pid=293
+http://www.capital.net/~force/126aeca.html
+http://www.capitalaction.org/archive/
+http://www.capitalcampaigns.com/e1.htm
+http://www.capitalcentury.com/1911.html
+http://www.capitalcentury.com/1976.html
+http://www.capitalcorpandtrust.com/estabcorp.php3
+http://www.capitaldisney.co.uk/article.asp?id=1827
+http://www.capitalistchicks.com/html/news-viewarticle-14.html
+http://www.capitalone.com/misc/ya/index.shtml?linkid=WWW_Z_Z_Z_GBLFO_FO_05_T_YA1
+http://www.capitaloto.com/acoustic.htm
+http://www.capitalregional.com/En/gestion/message_president_directeur.html
+http://www.capitol.hawaii.gov/hrscurrent/Vol04_Ch0201-0257/HRS0237/HRS_0237-0025.htm
+http://www.capitol.hawaii.gov/senmaj/legislativeAccomplishments/military.htm
+http://www.capitol.hawaii.gov/session2002/bills/sb2179_cd2_.htm
+http://www.capitol.state.tx.us/statutes/docs/CV/content/htm/cv.086.00.000004.00.htm
+http://www.capitol.state.tx.us/statutes/docs/GV/content/htm/gv.009.00.001204.00.htm
+http://www.capitol.state.tx.us/statutes/docs/HS/content/htm/hs.002.00.000143.00.htm
+http://www.capitol.state.tx.us/statutes/docs/NR/content/htm/nr.002.00.000012.00.htm
+http://www.capitol.state.tx.us/statutes/docs/PR/content/htm/pr.006.00.000071.00.htm
+http://www.capitol.state.tx.us/tlo/76R/billtext/HR00706I.HTM
+http://www.capitol.state.tx.us/tlo/78R/billtext/HC00213I.HTM
+http://www.capitol.state.tx.us/tlo/78R/billtext/HC00215I.HTM
+http://www.capm.qc.ca/international/international_usa_20000218_eng.htm
+http://www.capmag.com/article.asp?ID=241
+http://www.capmag.com/article.asp?ID=2485
+http://www.capo.net/StateOfJudiciary.1.03.html
+http://www.cappdt.ca/summer.html
+http://www.capps-help.bham.ac.uk/batch.htm
+http://www.caps-web.org/3_4petland.htm
+http://www.caps.ucsf.edu/capsweb/networks.html
+http://www.captaincynic.com/thread.php3/thrdid=18554-u-frmid=16
+http://www.captainmike.org/Galactopedia/a3.html
+http://www.captainsquartersblog.com/mt/
+http://www.captainsquartersblog.com/mt/archives/004220.php
+http://www.captainsquartersblog.com/mt/archives/004252.php
+http://www.captainsquartersblog.com/mt/archives/004573.php
+http://www.captainsquartersblog.com/mt/archives/004618.php
+http://www.captainsquartersblog.com/mt/archives/004746.php
+http://www.captainsquartersblog.com/mt/archives/004796.php
+http://www.capterra.com/medical-scheduling-software
+http://www.captivasoftware.com/products/casestudies/casestudies_view.asp?wcs_id=48
+http://www.capveterans.com/caprd_014.htm
+http://www.caraudiocentre.co.uk/glossary.asp
+http://www.caraudiocentre.co.uk/shopfront/glossary.asp
+http://www.caravansitesuk.co.uk/ensite0055.htm
+http://www.carbc.com/Car-News-879.html
+http://www.carbuyingtips.com/
+http://www.carbuyingtips.com/rv.htm
+http://www.carbwire.com/
+http://www.carc.org/pubs/v22no1/know.htm
+http://www.carclubs.org.uk/carclubs/local-authorities.htm
+http://www.carcontrol.com/wxia.htm
+http://www.card.iastate.edu/iowa_ag_review/summer_04/article3.aspx
+http://www.cardboardvampyres.com/
+http://www.cardesignnews.com/news/2005/050420milan-designweek/
+http://www.cardhouse.com/home.htm
+http://www.cardi.org/newsroom/06-01-2005-01.php
+http://www.cardiff.ac.uk/for/prospective/undergradrecruitment/study/p3192.html
+http://www.cardiff.ac.uk/schoolsanddivisions/divisions/stude/advis/page22976.html
+http://www.cardiffblues.com/index.cfm?method=news.news
+http://www.cardozaplayer.com/go/archives/v02/i03/holdem
+http://www.cardozojcr.com/iap/2002_01.html
+http://www.cardplayer.com/poker_magazine/archives/?a_id=13697&m_id=80
+http://www.cardplayer.com/poker_magazine/archives/showarticle.php?a_id=12733
+http://www.cardplayer.com/poker_magazine/archives/showarticle.php?a_id=13264&m_id=63
+http://www.cardplayer.com/poker_magazine/archives/showarticle.php?a_id=13795
+http://www.cardplayer.com/poker_magazine/archives/showarticle.php?a_id=14793&m_id=65565
+http://www.care-givers.com/pages/journal/feelingoverly.html
+http://www.care.ca/work/emergency/tsunami/tsunami_e.shtm
+http://www.care.ed.ac.uk/snl/freestyle/teachimp.php
+http://www.career-resumes.com/blog/
+http://www.career.fsu.edu/ccis/guides/write_eff.html
+http://www.career.fsu.edu/documents/technical%20reports/Technical%20Report%2025/Technical%20Report%2025.htm
+http://www.career.fsu.edu/documents/technical%20reports/Technical%20Report%2034/Technical%20Report%2034.htm
+http://www.career.virginia.edu/students/education/handbook/planning.php
+http://www.career.virginia.edu/students/programs/internship/parentsprogram.php
+http://www.careerbabe.com/yourcareer/legalfaq.html
+http://www.careerbank.com/job.cfm/167724.htm
+http://www.careerbuilder.com/JobSeeker/CareerBytes/1104dolooksmatter.htm
+http://www.careerbuilder.com/JobSeeker/CareerBytes/Headway0900.htm
+http://www.careerbuilder.com/JobSeeker/Companies/CompanyDetails.aspx?Comp_DID=C237R696ZZMNV80LGC&Page=Products
+http://www.careerbuilder.com/JobSeeker/Companies/CompanyJobResults.aspx?Comp_DID=C31F66PNV0Q26Z3HR9
+http://www.careerbuilder.com/JobSeeker/Companies/CompanyJobResults.aspx?Comp_DID=C32TJ5XMCCVTZN0TRQ
+http://www.careerbuilder.com/JobSeeker/Jobs/JobResults.aspx?ncc=%5E%22Advance+America%22%24&IPath=JR
+http://www.careerbuilder.com/JobSeeker/Jobs/JobResults.aspx?ncc=%5E%22RadioShack+Corporation%22%24&IPath=JR
+http://www.careerbuilder.com/JobSeeker/Jobs/JobResults.aspx?ncn=%5E%22Claymont%22%24&IPath=JR
+http://www.careerbuilder.com/JobSeeker/Jobs/JobResults.aspx?ncn=%5E%22North+Chicago%22%24&IPath=JR
+http://www.careerbuilder.com/JobSeeker/Jobs/JobResults.aspx?ncn=%5E%22Wellington%22%24&IPath=JR
+http://www.careerbuilder.com/JobSeeker/Jobs/JobResults.aspx?nsn=%5E%22ND%22%24&IPath=JR
+http://www.careercc.com/resumpr.shtml
+http://www.careercenter.sjsu.edu/careerplanning/whatcanido/majorsheets/speechcomm.html
+http://www.careerchange.com/faq.htm
+http://www.careercornerstone.org/mecheng/megetstart.htm
+http://www.careercross.com/en/0021099.html
+http://www.careerdevelopmentgroup.org.uk/impact/0501/proforma.htm
+http://www.careerenergy.co.uk/career-advice-casestudies.shtml
+http://www.careerexplorer.net/unemployment/south-dakota-unemployment-benefits.asp
+http://www.careergoals.com/perspec3.html
+http://www.careerjournal.com/columnists/diversityreport/20021022-sappal.html
+http://www.careerjournal.com/columnists/weddlesguide/20041115-weddle190.html
+http://www.careerjournal.com/hrcenter/ipma/20040107-ipma.html
+http://www.careerjournal.com/jobhunting/change/20031120-meyers.html
+http://www.careerjournal.com/jobhunting/interviewing/19980505-patterson.html
+http://www.careerjournal.com/jobhunting/interviewing/20041116-marcus.html
+http://www.careerjournal.com/jobhunting/jobloss/20021219-delapa.html
+http://www.careerjournal.com/myc/diversity/20021022-capell.html
+http://www.careerjournal.com/myc/fifty/20021031-buss.html
+http://www.careerjournal.com/myc/management/20020430-careercorner.html
+http://www.careerjournal.com/myc/negotiate/19980126-mende.html
+http://www.careerjournal.com/myc/workfamily/20041116-lisle.html
+http://www.careerjournal.com/salaryhiring/negotiate/20040527-lisle.html
+http://www.careerjournal.com/sidebars/20031028-marcus-sb3.html
+http://www.careerjournal.com/specialreports/bschool03/articles/20020909-alsop-mbsurvey.html
+http://www.careerjournaleurope.com/myc/legal/20040715-kelly.html
+http://www.careerkey.com/career_questions1.htm
+http://www.careerknowhow.com/
+http://www.careerknowhow.com/advancement/polling.htm
+http://www.careernet.state.md.us/careertheory.htm
+http://www.careerone.com.au/newsviews/story/0,8523,11697002-22565,00.html
+http://www.careeroverview.com/air-traffic-controller-careers.html
+http://www.careerplanner.com/Career-Articles/All-About-Career-Tests.htm
+http://www.careerplaybook.com/resume.asp
+http://www.careers-in-finance.com/reoptions.htm
+http://www.careers.bham.ac.uk/links/company.htm
+http://www.careers.cmmc.nhs.uk/utilities/privacy.asp
+http://www.careers.ed.ac.uk/STUDENTS/Applications_Interviews/Effectiveapplications/cv.HTM
+http://www.careers.ed.ac.uk/STUDENTS/Further_Study/howtodecide.HTM
+http://www.careers.iptv.org/enhanced/1139/ec_profile.cfm
+http://www.careers.ox.ac.uk/
+http://www.careers.salford.ac.uk/events
+http://www.careers.strath.ac.uk/intra/empatoz/engineering.htm
+http://www.careerservicescentral.com/asp.cfm
+http://www.careersingovernment.com/index.cfm?page=custom&pageid=80
+http://www.careerswales.com/adult/content.asp?id=609
+http://www.careerswales.com/employers/content.asp?id=768
+http://www.careerswales.com/youngpeople/content.asp?id=4
+http://www.careerswales.com/youngpeople/content.asp?id=687
+http://www.careertimes.com.hk/english/academia/education/COEXX_1107200301.asp?page=1
+http://www.careerwebschool.com/North-Dakota-Home-Inspection/licenseBeginningACareer.html?ernid=747
+http://www.careerwomen.com/resources/resources_511.jsp
+http://www.caregiver.org/caregiver/jsp/content_node.jsp?nodeid=396
+http://www.caregiver.org/caregiver/jsp/content_node.jsp?nodeid=396&expandnodeid=384
+http://www.caregiver.org/caregiver/jsp/content_node.jsp?nodeid=396&expandnodeid=387
+http://www.caregiver.org/caregiver/jsp/content_node.jsp?nodeid=396&expandnodeid=464
+http://www.caregiver.org/caregiver/jsp/content_node.jsp?nodeid=396&expandnodeid=481
+http://www.caregiver.org/caregiver/jsp/content_node.jsp?nodeid=404&expandnodeid=387
+http://www.caregiver.org/caregiver/jsp/content_node.jsp?nodeid=407&expandnodeid=480
+http://www.caregiver.org/caregiver/jsp/content_node.jsp?nodeid=460
+http://www.caregiver.org/caregiver/jsp/content_node.jsp?nodeid=891&expandnodeid=443
+http://www.caregivershome.com/news/article.cfm?UID=53
+http://www.caregivershome.com/news/practical.cfm
+http://www.carehealth.co.uk/pmiexpln.htm
+http://www.careinternational.org.uk/about/faqs.htm
+http://www.carenclub.com/skywarn.php
+http://www.carestudy.com/CareStudy/SRVP/Intro.asp
+http://www.careusa.org/newsroom/featurestories/2003/nov/11162003_pbellafghaneducation.asp
+http://www.careusa.org/newsroom/pressreleases/2005/jan/20050126_pb_tsunami_testimony_pr.asp
+http://www.carfree.com/papers/crawford_ags.html
+http://www.cargoandjames.com/public/teasaurus.cfm
+http://www.cargolaw.com/New_Carissa_Ship_Disaster.html
+http://www.carib1500.com/c1500/
+http://www.caribbean-weather.net/win.html
+http://www.caribbeancricket.com/modules.php?name=News&file=article&sid=1771
+http://www.caribbeanedu.com/kewl/language/language04.asp
+http://www.caribbeangraphic.net/gt_news.html
+http://www.caribbeanhotels.org/DOCSpublic/ovr-publications.htm
+http://www.caribbeanmedicine.com/article19.htm
+http://www.cariboo.bc.ca/ae/php/phil/mclaughl/students/phil433/jonas1.htm
+http://www.caribsurf.com/news/LOCAL/INDEX.CFM?RECORD=21564
+http://www.caricom.org/archives/rules-lac.htm
+http://www.caringonline.com/eatdis/people.htm
+http://www.caringtogether.com/exotics/iguanas2.html
+http://www.carinsurance.com/news/content3.aspx
+http://www.carkeys.co.uk/columns/david_finlay/413.asp
+http://www.carl-acrl.org/Archives/ConferencesArchive/Conference02/posterabs.html
+http://www.carla.umn.edu/culture/resources/exercises.html
+http://www.carlamathis.com/Image/Shopping.asp
+http://www.carle.com/Hospital/about/facts.shtml
+http://www.carleton.ca/cu/aboutus/years/s3.html
+http://www.carleton.ca/duc/News/Speech_Content/address-spring04-fisk.html
+http://www.carleton.ca/jmc/cnews/n2.shtml
+http://www.carleton.ca/npsia/whats_new/notices_and_deadlines.html
+http://www.carleton.ca/orientation/faqsub/faqservice.htm
+http://www.carleton.ca/tuition/payment/refund.html
+http://www.carleton.ca/~mmacneil/lablaw1.htm
+http://www.carleton.ca/~thenigha/th_html/fiction_demon.htm
+http://www.carlheilman.com/links.html
+http://www.carlingnet.com/result.php?Keywords=goal&host=www.carlingnet.com&cat=1
+http://www.carlisle.army.mil/ssi/about/faq.cfm
+http://www.carlisle.army.mil/usawc/Parameters/04autumn/ohanlon.htm
+http://www.carlislestudenthousing.co.uk/
+http://www.carlmautz.com/palmquist.html
+http://www.carlocompanies.com/newsroom.asp
+http://www.carlyonbaywatch.co.uk/pr151004.shtml
+http://www.carlyonbaywatch.co.uk/pr170204.shtml
+http://www.carm.org/atheism/lonovya.htm
+http://www.carm.org/diff/Isaiah45_7.htm
+http://www.carm.org/index/helpwanted.htm
+http://www.carmarthentownafc.net/latham.htm
+http://www.carmel.ac.uk/pages/english/art_courses.html
+http://www.carmengroup.com/philosophy.htm
+http://www.carmengroup.com/philosophy.html
+http://www.carnegie.org/reporter/01/russia/index3.html
+http://www.carnegie.org/reporter/05/homeland/protectprivacy.html
+http://www.carnegie.org/reporter/05/homeland/protectprivacy_low.html
+http://www.carnegie.org/reporter/10/bandwidth/index4.html
+http://www.carnegiecouncil.org/printerfriendlymedia.php/prmID/972
+http://www.carnegiecouncil.org/viewMedia.php/prmTemplateID/2/prmID/97
+http://www.carnegiecouncil.org/viewMedia.php/prmTemplateID/2/prmID/972
+http://www.carnegiecouncil.org/viewMedia.php/prmTemplateID/8/prmID/147
+http://www.carnegiecouncil.org/viewMedia.php/prmTemplateID/8/prmID/97
+http://www.carnegiecouncil.org/viewMedia.php/prmTemplateID/8/prmID/972
+http://www.carnegieendowment.org/events/index.cfm?fa=eventDetail&id=126
+http://www.carnegieendowment.org/events/index.cfm?fa=eventDetail&id=49
+http://www.carnegieendowment.org/npp/
+http://www.carnegieendowment.org/publications/index.cfm?fa=view&id=1460
+http://www.carnegieendowment.org/publications/index.cfm?fa=view&id=17006&prog=zgp&proj=zsa
+http://www.carnegieendowment.org/publications/index.cfm?fa=view&id=696
+http://www.carnegiegreenaway.org.uk/shadow/teach/lib_dund.html
+http://www.carnelian-international.com/angola/war_and_the_rol_in_society.htm
+http://www.carolark.com/tips.html
+http://www.carolchanel.com/success_stories.html
+http://www.carolhurst.com/subjects/nativeamericans.html
+http://www.carolina-disability.com/social-security-benefits-laws.php
+http://www.carolinagardener.com/talk/talk.html
+http://www.carolinatrust.org/caroliner_08_2004.html
+http://www.carolinelucasmep.org.uk/interests/peace_human_rights.html
+http://www.carolineoconnor.com.au/bringing_down_the_house.htm
+http://www.carollaula.co.uk/diary_aug03.htm
+http://www.carolqueen.com/pages/advice.html
+http://www.carolqueen.com/pages/center.html
+http://www.carolshouse.com/militaryrecords/vietnam/
+http://www.carousel-farms.com/guestlog.htm
+http://www.carpanglersgroup.com/kidsandcarpgallery.html
+http://www.carpenoctem.tv/cons/di.html
+http://www.carpentersunionbc.com/weblog/blogger.html
+http://www.carrentalexpress.com/international/car-rental-europe.htm
+http://www.carrollandgraf.com/shackleton/sea_ice.html
+http://www.carryduffdesigns.co.uk/kitchen/kitchen.html
+http://www.carryongardening.org.uk/page02_3.asp
+http://www.carryongardening.org.uk/page02_6.asp
+http://www.carryonline.com/carry/locationsthen.html
+http://www.cars.com/carsapp/national/?srv=parser&act=display&tf=/advice/shopping/superstores/retail_haggle.tmpl
+http://www.cars.com/go/about/us.jsp?section=H&aff=dallas
+http://www.cars.com/go/about/us.jsp?section=H&aff=national
+http://www.cars.com/go/about/us.jsp?section=H&aff=usatoday
+http://www.cars.com/go/news/Story.jsp?section=news&subject=recent&story=060905storyaDN&aff=starnews
+http://www.cars101.com/subaru_terms.html
+http://www.carshaltonfc.co.uk/home.htm
+http://www.cartage.org.lb/en/themes/Sciences/LifeScience/PhysicalAnthropology/EvolutionFact/Conclusion/Conclusion.htm
+http://www.cartage.org.lb/en/themes/Sciences/LifeScience/PhysicalAnthropology/EvolutionFact/Otherprocesses/Otherprocesses.htm
+http://www.cartage.org.lb/en/themes/Sciences/Zoology/Animalclassification/OrderPrimates/KindsofTeeth.htm
+http://www.cartage.org.lb/en/themes/Sciences/Zoology/EndangeredSpecies/EndangeredSpeciesFact/GreyWolf/GreyWolf.htm
+http://www.cartercenter.org/doc1620.htm
+http://www.cartersvillemagazine.com/Spring03/events.html
+http://www.cartography.org.uk/Pages/Latest/Archive/Durham11.html
+http://www.cartoonart.org/
+http://www.cartoonbuddy.com/Peter_c1_p8.htm
+http://www.cartoonstock.com/directory/b/bad_employment_agencies_gifts.asp
+http://www.cartoonstock.com/directory/b/bad_employment_agency_gifts.asp
+http://www.cartoonstock.com/directory/e/employment_advert_gifts.asp
+http://www.cartoonstock.com/directory/e/employment_benefits_gifts.asp
+http://www.cartoonstock.com/directory/e/employment_law_gifts.asp
+http://www.cartoonstock.com/directory/e/employment_opportunity_gifts.asp
+http://www.cartoonstock.com/directory/l/long_term_employment_gifts.asp
+http://www.cartoonstock.com/directory/t/temporary_employment_gifts.asp
+http://www.cartoonstock.com/directory/t/termination_of_employment_gifts.asp
+http://www.cartoonstock.com/directory/t/terms_of_employment_gifts.asp
+http://www.cartridgeperformance.com/history.htm
+http://www.cartwheelholidays.co.uk/cornwall-selfcatering.asp
+http://www.carvalu.com/buying.asp
+http://www.carvezine.com/Sept%20stories/a_foot_of_land.htm
+http://www.carynews.com/education/story/1407442p-7530777c.html
+http://www.cas.ca/privacy/
+http://www.cas.usf.edu/english/walker/papers/cyberprop.html
+http://www.cas.usf.edu/~moxley/lc/
+http://www.casa.gov.au/corporat/annualreport/htm/part7a.htm
+http://www.casa.ucl.ac.uk/agent-homepage/visual-fields.htm
+http://www.casadata.org/issuemanager/files/license.html
+http://www.casadeamparo.org/default.asp?S=E3&Document=Employment&NID=21936
+http://www.casas.org/ModelStds/Lsl.cfm
+http://www.casavaria.com/eco/albaeco/sdu36.htm
+http://www.casbah.ac.uk/search/names/az.htm
+http://www.casbah.ac.uk/search/subjects/az.htm
+http://www.cascaid.co.uk/CareerBytes/This_Month.html
+http://www.casdn.neu.edu/~geology/department/staff/colgan/iceland/history.htm
+http://www.case-mod.com/store/product_info.php?products_id=1114
+http://www.case.edu/athletics/varsity/news/2002-03/pr_03-17-03b.htm
+http://www.case.edu/news/2005/5-05/ocasio.htm
+http://www.case.edu/projects/erp/projectdetails.html
+http://www.case.org/Content/Miscellaneous/Display.cfm?CONTAINERID=87&CONTENTITEMID=3805&CRUMB=3
+http://www.case.org/Currents/ViewArticle.cfm?contentItemID=4414
+http://www.casebook.org/victorian_london/jpphotos.html
+http://www.casenet.com/music/music.html
+http://www.casenet.org.uk/voice.html
+http://www.cases.tv/sports1.htm
+http://www.cashregistergroup.com/acatalog/sitemap.html
+http://www.casi.org.nz/issues/family/catholic.html
+http://www.casi.org.uk/discuss/2003/msg00564.html
+http://www.casinocity.com/rule/black.htm
+http://www.casinoelegance.com/rules/keno.html
+http://www.caskating.com/Tour.do?key=171&state=promptTourView
+http://www.caslon.com.au/ipguide15.htm
+http://www.caslt.org/research/aim.htm
+http://www.casperstartribune.net/articles/2004/07/30/news/wyoming/63b4fcb928fe8e6987256ee10054e715.txt
+http://www.caspianstudies.com/recent%20event%20(13%20June).htm
+http://www.caspianstudies.com/recent%20event%20(17%20June).htm
+http://www.caspianstudies.com/recent%20event%20(19%20June).htm
+http://www.caspianstudies.com/recent%20event%20(23%20may).htm
+http://www.caspianstudies.com/recent%20event%20(28%20June).htm
+http://www.caspianstudies.com/recent%20event%20(29%20may).htm
+http://www.cass.net.cn/chinese/s16_sws/English/news/mark.htm
+http://www.cassiopaea.org/
+http://www.cast.org/teachingeverystudent/community/forum.cfm?cp_id=127&f_id=532&t_id=365
+http://www.cast.uark.edu/~kkvamme/geop/army_city.htm
+http://www.castawaysithaca.com/musicschedule.cfm
+http://www.castle-hall.co.uk/main.php?page=prospectus
+http://www.castleofspirits.com/stories03/seeingit.html
+http://www.castleofspirits.com/stories05/ivealways.html
+http://www.castlewales.com/dinas.html
+http://www.castlewales.com/glam_rum.html
+http://www.castlewales.com/hope.html
+http://www.castlewales.com/strngbow.html
+http://www.casusfoederis.org/diplomacy-uk.htm
+http://www.cat.com/cda/layout?m=37670&x=7
+http://www.cat.ilstu.edu/teaching_tips/handouts/criteria.shtml
+http://www.cat.org.au/maffew/decisions.html
+http://www.catalinainfo.com/Events.html
+http://www.catalink.net/brochure_info.php?products_id=01192
+http://www.catalink.net/brochure_info.php?products_id=01312
+http://www.catalog.hawaii.edu/courses/departments/fin.htm
+http://www.catalog.ucsb.edu/2002cat/ls/ic.htm
+http://www.catalog.ucsb.edu/2004cat/LS/ic.htm
+http://www.catalog.ucsb.edu/97cat/fefa.htm
+http://www.catalog.ucsb.edu/98cat/fefa.htm
+http://www.catalog.ucsb.edu/ls/ic.htm
+http://www.catalogingandclassificationquarterly.com/ccq29nr3news.html
+http://www.catalogs.umn.edu/ug/coafes/ag30.html
+http://www.catalogue.nationalarchives.gov.uk/RdLeaflet.asp?sLeafletID=244
+http://www.catalogue.nationalarchives.gov.uk/RdLeaflet.asp?sLeafletID=303
+http://www.catalogue.nationalarchives.gov.uk/RdLeaflet.asp?sLeafletID=336
+http://www.catalogue.nationalarchives.gov.uk/RdLeaflet.asp?sLeafletID=60
+http://www.catalogue.nationalarchives.gov.uk/displaycataloguedetails.asp?CATID=13388&CATLN=3&Highlight=&FullDetails=True
+http://www.catalogue.nationalarchives.gov.uk/displaycataloguedetails.asp?CATID=2356&CATLN=3&Highlight=&FullDetails=True
+http://www.cataplexic.com/
+http://www.catb.org/~esr/guns/gun-ethics.html
+http://www.catb.org/~esr/guns/ipscc1.html
+http://www.catb.org/~esr/writings/cups-horror.html
+http://www.catcharide.co.uk/faq.php
+http://www.catchstar.com/StampDirectory.html
+http://www.cateachingsolutions.com/
+http://www.caterer.com/advice/advice.asp?cate=Employment%20law&FileID=03012246861
+http://www.cateringinscotland.com/2005_03_01_archive.html
+http://www.cateringtruck.com/customunits.htm
+http://www.cathaypacific.com/
+http://www.cathedralofhope.org/morenews.html
+http://www.cathmed.org/
+http://www.catholic-center.rutgers.edu/article3.html
+http://www.catholic-church.org/syrdeaf/aurora.html
+http://www.catholic-forum.com/saints/pope0264hn.htm
+http://www.catholic.com/library/gay_marriage.asp
+http://www.catholic.net/rcc/Periodicals/Faith/Jul-Aug99/mariology.html
+http://www.catholic.org/featured/headline.php?ID=2234
+http://www.catholic.org/featured/reality.php?ID=2234
+http://www.catholicculture.org/docs/doc_view.cfm?recnum=1104
+http://www.catholicculture.org/docs/doc_view.cfm?recnum=271
+http://www.catholicculture.org/docs/doc_view.cfm?recnum=4600
+http://www.catholicculture.org/docs/doc_view.cfm?recnum=6085
+http://www.catholicculture.org/docs/doc_view.cfm?recnum=890
+http://www.catholicculture.org/docs/most/getwork.cfm?worknum=73
+http://www.catholicculture.org/highlights/highlights.cfm?ID=53
+http://www.catholicdoors.com/teaching/book1/1-13.htm
+http://www.catholiceducation.org/articles/catholic_stories/cs0012.html
+http://www.catholicexchange.com/vm/index.asp?art_id=22793
+http://www.catholicherald.com/articles/05articles/sports0113.htm
+http://www.catholicireland.net/pages/index.php?nd=52&art=486
+http://www.catholicity.com/commentary/
+http://www.catholicity.com/mccloskey/articles/princeton.html
+http://www.catholicmatch.com/pl/pages/community/articles/details.html?ra=1;id=153
+http://www.catholicnewsagency.com/document.php?n=2
+http://www.catholicpeacefellowship.org/sopII4/sop9.htm
+http://www.catholicplanet.com/articles/article82.htm
+http://www.catholicrelief.org/our_work/where_we_work/overseas/africa/madagascar/peace.cfm
+http://www.catholicsforchoice.org/new/inthenews/073100ConcernForTheMasses.htm
+http://www.catholicsforchoice.org/nobandwidth/English/new/inthenews/073100ConcernForTheMasses.htm
+http://www.catholicsupply.com/christmas/walldecor.html
+http://www.catholictradition.org/belloc2-4.htm
+http://www.catholicvoice.com.au/196/n_13.htm
+http://www.catholicweb.com/media_index.cfm?fuseaction=view_article&partnerid=40&article_id=2130
+http://www.cathouse-fcc.org/southafrica.html
+http://www.caths.cam.ac.uk/jcr/committee/constitution.php
+http://www.cathsoc.org/2003-04/prog-lent-plain.html
+http://www.cathsoc.org/2003-04/prog-lent.html
+http://www.cathygellis.com/
+http://www.catnutrition.org/LitterBox.htm
+http://www.cato.org/dailys/01-01-04.html
+http://www.cato.org/dailys/01-21-03.html
+http://www.cato.org/dailys/04-23-02.html
+http://www.cato.org/dailys/04-30-04-2.html
+http://www.cato.org/dailys/07-23-02.html
+http://www.cato.org/dailys/10-14-04.html
+http://www.cato.org/dispatch/06-10-05d.html
+http://www.cato.org/moneyconf/14mc-3.html
+http://www.cato.org/new/08-02/08-28-02r.html
+http://www.cato.org/people/basham.html
+http://www.cato.org/pub_display.php?pub_id=2305
+http://www.cato.org/pub_display.php?pub_id=3611
+http://www.cato.org/pub_display.php?pub_id=3611&print=Y
+http://www.cato.org/pubs/books/money/money7.htm
+http://www.cato.org/pubs/pas/pa-226.html
+http://www.cato.org/pubs/pas/pa-277.html
+http://www.cato.org/pubs/pas/pa-284.html
+http://www.cato.org/pubs/pas/pa-392es.html
+http://www.cato.org/pubs/pas/pa-521es.html
+http://www.cato.org/pubs/pas/pa029.html
+http://www.cato.org/pubs/policy_report/cpr-18n5-1.html
+http://www.cato.org/pubs/policy_report/v21n3/events.html
+http://www.cato.org/pubs/regulation/reg19n4e.html
+http://www.cato.org/pubs/regulation/regv14n4/reg14n4-currents.html
+http://www.cato.org/pubs/ssps/ssp7.html
+http://www.cato.org/pubs/tbb/tbb-0204.html
+http://www.cato.org/realaudio/audiopages99.html
+http://www.cato.org/realaudio/drugwar/papers/carpenter.html
+http://www.cato.org/research/articles/gryphon-050217.html
+http://www.cato.org/research/articles/healy-030101.html
+http://www.cato.org/research/articles/moller-050221.html
+http://www.cato.org/research/articles/reynolds-030112.html
+http://www.cato.org/research/articles/taylor-011206.html
+http://www.cato.org/special/ownership_society/boaz.html
+http://www.cato.org/speeches/sp-mg051598.html
+http://www.cato.org/tech/tk/010928-tk.html
+http://www.cato.org/testimony/ct-ce120601.html
+http://www.cato.org/testimony/ct-mg041097.html
+http://www.cato.org/testimony/ct-pi210.html
+http://www.cato.org/testimony/ct-pm100699.html
+http://www.cato.org/testimony/ct-ps720.html
+http://www.catt.com/index.php?page=20
+http://www.cattail.nu/wraithproject/0309waitredem1.html
+http://www.catteacorner.com/ghost.htm
+http://www.catteacorner.com/reviews.htm
+http://www.catteacorner.com/reviews12.htm
+http://www.catteacorner.com/reviews17.htm
+http://www.catteacorner.com/reviews6.htm
+http://www.catteacorner.com/reviews8.htm
+http://www.catteacorner.com/us-t6.htm
+http://www.cattledog.com/rescue/norcal.html
+http://www.cattletoday.com/archive/2004/January/CT306.shtml
+http://www.cattletoday.com/archive/2005/April/CT387.shtml
+http://www.caucasus.dk/publication8.htm
+http://www.caucho.com/resin-3.0/config/control.xtp
+http://www.caught-on-video.com/
+http://www.caught.net/cases/ocg.htm
+http://www.caut.ca/cuasa/benefits/health.html
+http://www.cavalierdaily.com/CVarticle.asp?ID=23414&pid=1297
+http://www.cavalierdaily.com/features/TheFuture/index.aspx?page=future_pat
+http://www.cavaliers.co.uk/articles/testing.htm
+http://www.cave.vt.edu/CAVE/design/design.html
+http://www.cavebear.com/icann-board/diary/mar-13-2001.htm
+http://www.caw.ca/whatwedo/bargaining/bycompany/starbucks/april25_index.asp
+http://www.cawlocal.ca/676/history.asp
+http://www.caymannetnews.com/
+http://www.cb-cda.gc.ca/news/c20012002fs-e.html
+http://www.cb1.com/~john/Religion/returning-rest.html
+http://www.cba.org/CBA/newsletters/con-2003/c3.asp
+http://www.cba.ufl.edu/upo/advising/index.asp
+http://www.cbaa.org.au/content.php/12.html?pubid=63
+http://www.cbass.com/MASTERS.HTM
+http://www.cbbooksdistribution.com/fiction10.html
+http://www.cbbsweb.org/enf/abo_bmt.html
+http://www.cbc.ca/arts/film/oscarchronicles-part4.html
+http://www.cbc.ca/arts/music/leakedmusic.html
+http://www.cbc.ca/canadavotes/analysiscommentary/katherinewalker.html
+http://www.cbc.ca/canadavotes/thecampaign/fightinwords.html
+http://www.cbc.ca/checkup/christmas00.html
+http://www.cbc.ca/consumers/market/files/cars/windshields/
+http://www.cbc.ca/consumers/market/files/home/antitelemarketing/tips.html
+http://www.cbc.ca/hottype/season03-04/04-01-20_sat.html
+http://www.cbc.ca/news/background/drugs/cox-2.html
+http://www.cbc.ca/news/background/forcesofnature/volcanoes.html
+http://www.cbc.ca/news/background/sars/hkdiary030501.html
+http://www.cbc.ca/news/background/uselection2004/swingstates.html
+http://www.cbc.ca/newsreal/teachers.html
+http://www.cbc.ca/ottawamatters/participate/worktales.html
+http://www.cbc.ca/sports/columns/oake/050414.html
+http://www.cbc.ca/sports/columns/running/cause.html
+http://www.cbc.ca/sports/indepth/cba/features/levittreport.html
+http://www.cbc.ca/sports/indepth/cba/features/quotes.html
+http://www.cbc.ca/story/arts/national/2005/05/11/Arts/fiction050511.html
+http://www.cbc.ca/story/canada/national/2004/10/06/subs041006.html
+http://www.cbc.ca/sunday/newman.html
+http://www.cbc.ca/sunday/scheuer.html
+http://www.cbc.ca/thecurrent/2004/200401/20040122.html
+http://www.cbc.ca/thecurrent/2005/200504/20050407.html
+http://www.cbcbooks.org/html/visits.html
+http://www.cbcg.org/beliefs.htm
+http://www.cbe.ab.ca/hr/application.asp
+http://www.cbe.ab.ca/hr/employment.asp
+http://www.cbe.ab.ca/hr/faqs.asp
+http://www.cbe.berkeley.edu/underfloorair/thermalcomfort.htm
+http://www.cbe.wwu.edu/zhang/zhang.htm
+http://www.cbec.gov.in/cae/customs/cs-tariff/cstrulesintrpret.htm
+http://www.cbec.gov.in/cae/draft-circ/fast-track-clearance-procedure.htm
+http://www.cbecal.org/Legal/victoriessum.shtml
+http://www.cbel.com/dance_styles/
+http://www.cbel.com/dance_styles/?order=theme&setcols=2
+http://www.cbel.com/leasing_services/
+http://www.cbest.nesinc.com/CA_sampleques_writing.htm
+http://www.cbgb.com/save_cbgb.htm
+http://www.cbi.org.uk/ndbs/press.nsf/0/b6eda9df7fc67a3d802570070051a2e3?OpenDocument
+http://www.cbi.umn.edu/collections/inv/cbi00006.html
+http://www.cbi.umn.edu/iterations/zabolitzky.html
+http://www.cbintel.com/bankcompliance.htm
+http://www.cbmall.com/join.asp
+http://www.cbmw.org/sermon.php?id=13
+http://www.cbn.com/CBNNews/News/040622c.asp
+http://www.cbn.com/about/jobs/openings.asp
+http://www.cbn.com/health/NaturalHealth/drsears_heartattack.asp
+http://www.cbn.com/health/research/elliott_birthcontrol.asp
+http://www.cbn.com/spirituallife/BibleStudyAndTheology/Discipleship/Murphey_CommittedButFlawedC.asp
+http://www.cbn.com/spirituallife/CBNTeachingSheets/Clearing_The_Air_On_Smoking.asp
+http://www.cbn.com/spirituallife/TeachingSheets/Born_Again_How_To_Be_Saved.asp
+http://www.cbn.com/spirituallife/devotions/vonbuseck_pigeon03.asp
+http://www.cbo.gov/showdoc.cfm?index=1285&sequence=0
+http://www.cbo.gov/showdoc.cfm?index=2731&sequence=6
+http://www.cbo.gov/showdoc.cfm?index=3581&sequence=0
+http://www.cbo.gov/showdoc.cfm?index=4968&sequence=0
+http://www.cbo.gov/showdoc.cfm?index=5085&sequence=0
+http://www.cbo.gov/showdoc.cfm?index=5666&sequence=0
+http://www.cbo.gov/showdoc.cfm?index=5943&sequence=0
+http://www.cbp.org/
+http://www.cbpp.org/11-26-01tax2.htm
+http://www.cbpp.org/2-2-05socsec2.htm
+http://www.cbpp.org/3-10-05bud2.htm
+http://www.cbpp.org/3-10-05tax.htm
+http://www.cbpp.org/3-27-01sfp.htm
+http://www.cbpp.org/3-31-99fs.htm
+http://www.cbpp.org/4-15-04imm.htm
+http://www.cbpp.org/5-2-05socsec3.htm
+http://www.cbpp.org/6-12-01health.htm
+http://www.cbpp.org/6-2-04tax.htm
+http://www.cbpp.org/6-2-05socsec.htm
+http://www.cbpp.org/9-23-03tax.htm
+http://www.cbpp.org/9-4-99tax-rep.htm
+http://www.cbpp.org/taxday98.htm
+http://www.cbr.cam.ac.uk/research/programme3/project3-5.htm
+http://www.cbronline.com/content/COMP/magazine/Articles/Features/AreYouExperienced.asp
+http://www.cbronline.com/content/COMP/magazine/Articles/Features/PerformanceProficiency.asp
+http://www.cbrrescue.org/articles/bringhome.htm
+http://www.cbs.com/daytime/price/community/mailbag/
+http://www.cbs.com/daytime/price/community/mailbag/mailbag_anniversary.shtml
+http://www.cbs.com/daytime/price/community/qa/
+http://www.cbs.dk/cbs_international/programs_courses/prospective_exchange_students/undergraduate_courses
+http://www.cbs.state.or.us/external/imd/rasums/resalert/ewp.html
+http://www.cbs.state.or.us/external/osha/educate/training/pages/200ergofaq.html
+http://www.cbs.state.or.us/external/osha/educate/training/pages/201xmfaq.html
+http://www.cbsa-asfc.gc.ca/E/pub/cp/rc4227/rc4227-e.html
+http://www.cbsa-asfc.gc.ca/import/fast/faq-e.html
+http://www.cbsa-asfc.gc.ca/sima/complain2-e.html
+http://www.cbsc.org/alberta/search/display.cfm?Code=1395&coll=FE_FEDSBIS_E
+http://www.cbsc.org/english/absn/search/display.cfm?code=4029&coll=FE_FEDSBIS_E
+http://www.cbsc.org/english/search/display.cfm?code=1395&coll=FE_FEDSBIS_E
+http://www.cbsc.org/english/search/display.cfm?code=4029&coll=FE_FEDSBIS_E
+http://www.cbsc.org/english/search/display.cfm?code=4077&coll=FE_FEDSBIS_E
+http://www.cbsc.org/ns/english/display_lib.cfm?Code=165254&coll=NS_LIB_COLL_E
+http://www.cbsc.org/nwt/search/display.cfm?Code=4077&Coll=FE_FEDSBIS_E
+http://www.cbsc.org/ontario/absn/english/search/display.cfm?code=4077&coll=FE_FEDSBIS_E
+http://www.cbsc.org/ontario/english/search/display.cfm?Code=1936&coll=FE_FEDSBIS_E
+http://www.cbsc.org/pe/absn/search/display.cfm?code=4077&coll=FE_FEDSBIS_E
+http://www.cbsc.org/pe/english/display.cfm?code=4077&coll=FE_FEDSBIS_E
+http://www.cbsc.org/sask/sbis/search/display.cfm?Code=5917&coll=SK_PROVBIS_E
+http://www.cbsc.org/sask/whats_new.cfm
+http://www.cbsnews.com/sections/earlyshow/saturday/main3480.shtml
+http://www.cbsnews.com/sections/sunday/main3445.shtml
+http://www.cbsnews.com/stories/1999/10/28/48hours/main66317.shtml
+http://www.cbsnews.com/stories/2000/04/25/48hours/main188249.shtml
+http://www.cbsnews.com/stories/2001/01/14/60II/main264144.shtml
+http://www.cbsnews.com/stories/2002/06/20/earlyshow/living/recipes/main512882.shtml
+http://www.cbsnews.com/stories/2002/08/26/earlyshow/contributors/reginalewis/main519808.shtml
+http://www.cbsnews.com/stories/2002/10/03/60minutes/main524268.shtml
+http://www.cbsnews.com/stories/2002/10/30/60II/main527542.shtml
+http://www.cbsnews.com/stories/2002/12/16/60II/main533243.shtml
+http://www.cbsnews.com/stories/2003/01/10/national/main536134.shtml
+http://www.cbsnews.com/stories/2003/01/14/60II/main536416.shtml
+http://www.cbsnews.com/stories/2003/02/24/iraq/main541815.shtml
+http://www.cbsnews.com/stories/2003/03/10/opinion/polls/main543446.shtml
+http://www.cbsnews.com/stories/2003/04/06/60minutes/main548023.shtml
+http://www.cbsnews.com/stories/2003/04/29/earlyshow/living/recipes/main551559.shtml
+http://www.cbsnews.com/stories/2003/08/01/eveningnews/consumer/main566325.shtml
+http://www.cbsnews.com/stories/2003/09/11/tech/main572704.shtml
+http://www.cbsnews.com/stories/2003/09/12/earlyshow/series/main572916.shtml
+http://www.cbsnews.com/stories/2003/11/15/health/main583858.shtml
+http://www.cbsnews.com/stories/2003/11/17/national/main583964.shtml
+http://www.cbsnews.com/stories/2003/11/20/48hours/main584726.shtml
+http://www.cbsnews.com/stories/2003/11/20/tech/digitaldan/main584606.shtml
+http://www.cbsnews.com/stories/2003/11/21/60minutes/main584945.shtml
+http://www.cbsnews.com/stories/2003/11/22/48hours/main585125.shtml
+http://www.cbsnews.com/stories/2003/12/01/48hours/main586151.shtml
+http://www.cbsnews.com/stories/2003/12/23/tech/main589961.shtml
+http://www.cbsnews.com/stories/2004/02/05/iraq/main598147.shtml
+http://www.cbsnews.com/stories/2004/02/25/earlyshow/series/week_of_wishes/main602156.shtml
+http://www.cbsnews.com/stories/2004/03/18/48hours/main607227.shtml
+http://www.cbsnews.com/stories/2004/03/19/60minutes/main607356.shtml
+http://www.cbsnews.com/stories/2004/05/03/60II/main615303.shtml
+http://www.cbsnews.com/stories/2004/05/07/sunday/main616291.shtml
+http://www.cbsnews.com/stories/2004/05/10/tech/main616505.shtml
+http://www.cbsnews.com/stories/2004/05/25/terror/main619569.shtml
+http://www.cbsnews.com/stories/2004/06/01/60minutes/main620619.shtml
+http://www.cbsnews.com/stories/2004/06/01/eveningnews/main620626.shtml
+http://www.cbsnews.com/stories/2004/06/05/national/main621252.shtml
+http://www.cbsnews.com/stories/2004/08/06/earlyshow/leisure/main634424.shtml
+http://www.cbsnews.com/stories/2004/09/06/politics/main641481.shtml
+http://www.cbsnews.com/stories/2004/09/08/60II/main641984.shtml
+http://www.cbsnews.com/stories/2004/09/17/earlyshow/saturday/main644073.shtml
+http://www.cbsnews.com/stories/2004/10/08/60minutes/main648240.shtml
+http://www.cbsnews.com/stories/2004/10/08/earlyshow/saturday/main648269.shtml
+http://www.cbsnews.com/stories/2004/10/13/tech/main649230.shtml
+http://www.cbsnews.com/stories/2004/10/19/health/main650177.shtml
+http://www.cbsnews.com/stories/2004/10/20/earlyshow/series/survivor/main650330.shtml
+http://www.cbsnews.com/stories/2004/10/22/politics/main650966.shtml
+http://www.cbsnews.com/stories/2004/10/25/world/main651191.shtml
+http://www.cbsnews.com/stories/2004/11/03/60II/main653503.shtml
+http://www.cbsnews.com/stories/2004/11/12/60minutes/main655407.shtml
+http://www.cbsnews.com/stories/2004/11/12/world/main655280.shtml
+http://www.cbsnews.com/stories/2004/11/17/48hours/main656245.shtml
+http://www.cbsnews.com/stories/2004/11/18/60minutes/main656458.shtml
+http://www.cbsnews.com/stories/2004/11/24/60II/main657615.shtml
+http://www.cbsnews.com/stories/2004/12/01/60II/main658590.shtml
+http://www.cbsnews.com/stories/2004/12/07/national/main659687.shtml
+http://www.cbsnews.com/stories/2004/12/16/48hours/main661569.shtml
+http://www.cbsnews.com/stories/2004/12/20/earlyshow/living/ConsumerWatch/main661939.shtml
+http://www.cbsnews.com/stories/2005/01/10/national/main665727.shtml
+http://www.cbsnews.com/stories/2005/01/13/48hours/main666740.shtml
+http://www.cbsnews.com/stories/2005/01/14/national/main667118.shtml
+http://www.cbsnews.com/stories/2005/01/16/iraq/main667256.shtml
+http://www.cbsnews.com/stories/2005/01/16/politics/main667243.shtml
+http://www.cbsnews.com/stories/2005/01/21/earlyshow/saturday/main668407.shtml
+http://www.cbsnews.com/stories/2005/01/28/opinion/courtwatch/main670110.shtml
+http://www.cbsnews.com/stories/2005/01/29/tech/main670268.shtml
+http://www.cbsnews.com/stories/2005/01/31/world/main670468.shtml
+http://www.cbsnews.com/stories/2005/02/04/60minutes/main671817.shtml
+http://www.cbsnews.com/stories/2005/02/07/opinion/main672234.shtml
+http://www.cbsnews.com/stories/2005/02/08/national/main672297.shtml
+http://www.cbsnews.com/stories/2005/02/13/tech/main673726.shtml
+http://www.cbsnews.com/stories/2005/02/14/world/main673876.shtml
+http://www.cbsnews.com/stories/2005/02/25/60minutes/main676552.shtml
+http://www.cbsnews.com/stories/2005/03/10/earlyshow/living/money/main679246.shtml
+http://www.cbsnews.com/stories/2005/03/11/60minutes/main679609.shtml
+http://www.cbsnews.com/stories/2005/03/24/national/main682773.shtml
+http://www.cbsnews.com/stories/2005/03/31/earlyshow/series/main684234.shtml
+http://www.cbsnews.com/stories/2005/04/13/earlyshow/living/recipes/main687919.shtml
+http://www.cbsnews.com/stories/2005/04/23/politics/main690360.shtml
+http://www.cbsnews.com/stories/2005/05/06/eveningnews/consumer/main693636.shtml
+http://www.cbsnews.com/stories/2005/06/07/earlyshow/series/main700052.shtml
+http://www.cbsnews.com/stories/2005/06/08/earlyshow/living/main700324.shtml
+http://www.cbsnews.com/stories/2005/06/10/terror/main700815.shtml
+http://www.cbsnews.com/stories/2005/06/13/national/main701355.shtml
+http://www.cbsnews.com/stories/2005/06/14/entertainment/main701735.shtml
+http://www.cbsnews.com/stories/2005/06/14/health/main701753.shtml
+http://www.cbsnews.com/stories/2005/06/17/politics/main702631.shtml
+http://www.cbsnews.com/stories/2005/06/22/terror/main703460.shtml
+http://www.cbss.st/baltinfo/2001/dbaFile635.html
+http://www.cbss.st/documents/cbsspresidencies/10russian/bscc/
+http://www.cbva.ca/rules.htm
+http://www.cc-ob.org/sermons/2005/0105b.htm
+http://www.cc.gatech.edu/classes/cs6751_97_fall/projects/follow_me/exam/kevin.html
+http://www.cc.gatech.edu/fac/Sven.Koenig/icaps/icaps04/acceptedpapers.html
+http://www.cc.gatech.edu/gvu/people/randy.carpenter/folklore/v3n4.html
+http://www.cc.gatech.edu/projects/disl/specialProjects/DeepWeb.html
+http://www.cc.nih.gov/ccc/clinical_pathology_conf/cpccase.html
+http://www.cc.nih.gov/dtm/dtm_directions.htm
+http://www.cc.utah.edu/~gem16460/cirquedusoleil/mystere.html
+http://www.cca.org.au/content.asp?p=108
+http://www.cca.org/dave/fiction/stick
+http://www.ccaej.org/about.htm
+http://www.ccalliance.org/patient/personal/2sharon.html
+http://www.ccatsandiego.org/n_021004DailyTranscript.shtml
+http://www.ccb.se/newsletters/2004/01/news_0401h.htm
+http://www.ccbnet.org/cap02.htm
+http://www.ccboe.com/board.direct.html
+http://www.ccboe.com/site/boardofed/boardprofiles.htm
+http://www.ccbriefing.co.uk/pages/guesteditorials2.php?id=2425
+http://www.ccc.govt.nz/TargetZero/ResourceAndWasteSpecific/
+http://www.ccc.org.au/default.asp?page=risebuild
+http://www.ccchronicle.com/back/2003_spring/2003-02-24/campus5.html
+http://www.cccure.org/Documents/HISM/377-381.html
+http://www.ccdc.com/index.cfm/fuseaction/aboutCCDC.redev_defined
+http://www.ccds.charlotte.nc.us/History/Art/china/writingaboutart.htm
+http://www.cce.ac.nz/info/businessclass/sobnews.html
+http://www.cce.ac.nz/info/whysob/sobnews.html
+http://www.cce.columbia.edu/seas/
+http://www.cce.columbia.edu/seas/advising/basics/cover_letters.php
+http://www.cce.cornell.edu/chemung/energy.htm
+http://www.cce.cornell.edu/seagrant/underwater/underwfiles/scubareport2.html
+http://www.cceconomicdevelopment.com/member_benefits.html
+http://www.ccedtraining.mchenry.edu/courses/ViewCcedCoursesByProgramId.asp?ProgramId=5
+http://www.ccel.org/a/aquinas/summa/FS/FS016.html
+http://www.ccel.org/c/calvin/calcom09/htm/xxiv.ii.htm
+http://www.ccel.org/c/calvin/comment3/comm_vol21/htm/ii.iii.xli.htm
+http://www.ccel.org/fathers/NPNF2-06/letters/letter66.htm
+http://www.ccel.org/pager.cgi?file=fathers/NPNF1-04/augustine/bk_mm/mm.html&from=CHAP16
+http://www.ccel.us/PeaceWithGod.Chapter7.html
+http://www.ccfc.org/design/stories/consumertips/communication.html
+http://www.ccg.org/english/s/p009.html
+http://www.ccgevents.com/detail.php?event=00059
+http://www.cche.net/usersguides/outcomes.asp
+http://www.cche.net/usersguides/prognosis.asp
+http://www.cche.net/usersguides/review.asp
+http://www.cchr.org/art/eng/page28.htm
+http://www.cchra-ccarh.ca/en/skills/thinking_skills.asp
+http://www.cchrc.org/staff.html
+http://www.cchs.net/health/health-info/docs/1100/1185.asp?index=5890
+http://www.cchs.net/health/health-info/docs/1900/1945.asp?index=8615
+http://www.cchsnetwork.org/
+http://www.cci.org.uk/jobs/index.php
+http://www.ccisabroad.org/chinasemester.html
+http://www.cciwa.com/default.aspx?MenuID=1286
+http://www.ccjc.ca/archives/well3.cfm
+http://www.ccjc.ca/resources/fear.cfm
+http://www.ccky.org/Resources/Public%20Witness/Homily_Rev_Richard_Sullivan.htm
+http://www.ccli.com/WorshipResources/Articles.cfm?itemID=14
+http://www.ccm.uc.edu/prep/drama/classes/stage.html
+http://www.ccm.uc.edu/prep/registration/applied_study.html
+http://www.ccmep.org/2003_articles/Iraq/040403_dozens_of_iraqi_dead_after_clust.htm
+http://www.ccmep.org/2003_articles/Iraq/040603_deadly_choice_now_facing_badhdad.htm
+http://www.ccmep.org/hotnews/keepers013102.html
+http://www.ccmi.com/priceindex_0804.html
+http://www.ccmi.com/priceindex_0904.html
+http://www.ccmiservices.com/InTheNews/eprocurementnewdimensions.html
+http://www.ccmtutorials.com/infection/sepsisrx/page23.htm
+http://www.ccn.tv/ccnresources/technology.htm
+http://www.ccne-ethique.fr/english/avis/a_028.htm
+http://www.ccnphawaii.com/FAQ.htm
+http://www.ccnr.net/searchconf/loader.htm
+http://www.ccnr.org/Peaceful_Atom.html
+http://www.ccnr.org/briarpatch_mox.html
+http://www.ccny.cuny.edu/ctl/resource.html
+http://www.cco.caltech.edu/~gatti/gabaldon/writerscorner/writersadvice.html
+http://www.cco.caltech.edu/~ombuds/html/grad_index.html
+http://www.cco.net/~jpete/deepthou.htm
+http://www.cco.net/~watmarc/fdplan.htm
+http://www.ccohs.ca/oshanswers/hsprograms/workingalone.html
+http://www.ccohs.ca/oshanswers/hsprograms/workingalone.html?print
+http://www.ccohs.ca/oshanswers/phys_agents/cold_health.html
+http://www.ccohs.ca/oshanswers/psychosocial/aging_workers.html
+http://www.ccp14.ac.uk/solution/
+http://www.ccpit.org/vhosts/english/IV.htm
+http://www.ccpo.odu.edu/SEES/ozone/class/Chap_2/2_4.htm
+http://www.ccpo.odu.edu/SEES/ozone/class/Chap_4/4_5.htm
+http://www.ccptv.com/business.htm
+http://www.ccri.ca/rcn02-14.html
+http://www.ccri.edu/admissions/glossary.shtml
+http://www.ccriders.us/news.htm
+http://www.ccrkba.org/
+http://www.ccrkba.org/pub/rkba/press-releases/CC-CAlaw.htm
+http://www.ccrl.ca/index.php?id=205
+http://www.ccs.neu.edu/home/matthias/BTLS/preface.html
+http://www.ccs.neu.edu/home/ratinox/champions.html
+http://www.ccscne.org/for/committee/local/
+http://www.ccsf.edu/Services/LAC/lern10/listening.html
+http://www.ccshoreline.org/
+http://www.ccsindia.org/people_dl_nuclear.htm
+http://www.ccsj.edu/academics/syllabi/0102/012mfa150a.htm
+http://www.ccsj.edu/academics/syllabi/0102/012mfa150b.htm
+http://www.ccsj.edu/academics/syllabi/0304/033mfa150a.htm
+http://www.ccsj.edu/academics/syllabi/0405/041mfa150.htm
+http://www.ccsj.edu/academics/syllabi/0405/041mfa150lw.htm
+http://www.ccsn.nevada.edu/planetarium/PPA/DesertSkies/22ds-bowen.html
+http://www.ccso-ccom.ca/sara.html
+http://www.ccsso.org/projects/Interstate_New_Teacher_Assessment_and_Support_Consortium/Projects/Professional_Development_Academies/
+http://www.ccsu.edu/Afstudy/upd3-2.html
+http://www.ccsu.edu/afstudy/upd3-2.html
+http://www.ccsu.edu/afstudy/upd6-2.html
+http://www.ccsu.edu/afstudy/upd9-3.htm
+http://www.cctrail.org/CCT_Points.htm
+http://www.cctrust.org.uk/article5.htm
+http://www.cctv.com/program/bizchina/20040430/101706.shtml
+http://www.ccumc.org/exoffice/anrpts/945com.html
+http://www.ccutler.com/bands/group06.shtml
+http://www.ccvs.state.vt.us/pub_ed/lose.html
+http://www.ccvt.org/azizi.html
+http://www.cd.gov.ab.ca/preserving/parks/managing/managementplans.asp
+http://www.cd1019.com/contests/rules.aspx
+http://www.cda-adc.ca/english/dentistry_in_canada/cdac/default.asp
+http://www.cda-cdai.ca/misc/supportcda.htm
+http://www.cda-cdai.ca/seminars/2001/MND.htm
+http://www.cda.org/public/pubhsrvc.html
+http://www.cdauae.com/Epson%20Page.htm
+http://www.cdb.org/fennel.htm
+http://www.cdbaby.com/cd/ceyjay
+http://www.cdbaby.com/cd/royaljones2/from/musicdish
+http://www.cdbaby.com/dugan
+http://www.cdbaby.com/paulwall1
+http://www.cdbaby.net/articles/review-sales.htm
+http://www.cdbaby.net/dd?f=9
+http://www.cdc.gov/ChooseYourCover/guide.htm
+http://www.cdc.gov/HealthyYouth/physicalactivity/promoting_health/background.htm
+http://www.cdc.gov/communication/emergency/features/f001.htm
+http://www.cdc.gov/cvh/maps/cvdatlas/atlas_mens/01-foreword-toc.htm
+http://www.cdc.gov/diabetes/pubs/focus/step5.htm
+http://www.cdc.gov/doc.do/id/0900f3ec800908f9
+http://www.cdc.gov/drugresistance/community/
+http://www.cdc.gov/drugresistance/community/faqs.htm
+http://www.cdc.gov/elcosh/docs/d0200/d000288/d000288.html
+http://www.cdc.gov/elcosh/docs/d0600/d000626/module12.html
+http://www.cdc.gov/flu/avian/gen-info/facts.htm
+http://www.cdc.gov/mmwr/preview/mmwrhtml/00051435.htm
+http://www.cdc.gov/nasd/docs/d000001-d000100/d000048/d000048.html
+http://www.cdc.gov/nccdphp/dnpa/dnpalink.htm
+http://www.cdc.gov/nccdphp/dnpa/obesity/contributing_factors.htm
+http://www.cdc.gov/nccdphp/dnpa/physical/growing_stronger/exercises/
+http://www.cdc.gov/nccdphp/dnpa/physical/growing_stronger/intensity.htm
+http://www.cdc.gov/nccdphp/dnpa/physical/growing_stronger/staying_on_track.htm
+http://www.cdc.gov/nccdphp/dnpa/physical/health_professionals/
+http://www.cdc.gov/nccdphp/dnpa/physical/importance/why.htm
+http://www.cdc.gov/nccdphp/dnpa/physical/recommendations.htm
+http://www.cdc.gov/nccdphp/dnpa/physical/starting/stage_4.htm
+http://www.cdc.gov/nceh/kids/99kidsday/activities.htm
+http://www.cdc.gov/nchs/hphome.htm
+http://www.cdc.gov/nchstp/od/1997Surveillance_report.htm
+http://www.cdc.gov/nchstp/od/gap/strategies/2_3_blood_safety.htm
+http://www.cdc.gov/ncidod/EID/vol10no2/03-0799.htm
+http://www.cdc.gov/ncidod/EID/vol5no4/kortepeter.htm
+http://www.cdc.gov/ncidod/EID/vol5no4/olson.htm
+http://www.cdc.gov/ncidod/EID/vol8no10/02-0346.htm
+http://www.cdc.gov/ncidod/ar/hughes-fin.htm
+http://www.cdc.gov/ncidod/diseases/hepatitis/c/faq.htm
+http://www.cdc.gov/ncidod/dq/foreign.htm
+http://www.cdc.gov/ncidod/dq/qa_influenza_amendment_to_eo_13295.htm
+http://www.cdc.gov/ncidod/dvbid/jencephalitis/qa.htm
+http://www.cdc.gov/ncidod/dvbid/westnile/qa/insect_repellent.htm
+http://www.cdc.gov/ncidod/dvbid/westnile/qa/transfusion.htm
+http://www.cdc.gov/ncidod/eid/vol4no3/hopkins.htm
+http://www.cdc.gov/ncidod/eid/vol6no5/jelinek.htm
+http://www.cdc.gov/ncipc/factsheets/ipvactivities.htm
+http://www.cdc.gov/niosh/90-100.html
+http://www.cdc.gov/niosh/crane.html
+http://www.cdc.gov/niosh/enews/enewsV2N9.html
+http://www.cdc.gov/niosh/face/In-house/full200305.html
+http://www.cdc.gov/niosh/face/In-house/full200310.html
+http://www.cdc.gov/niosh/face/In-house/full9811.html
+http://www.cdc.gov/niosh/face/stateface/ak/99ak019.html
+http://www.cdc.gov/niosh/face/stateface/wv/01wv034.html
+http://www.cdc.gov/niosh/face/stateface/wy/92wy006.html
+http://www.cdc.gov/niosh/face9317.html
+http://www.cdc.gov/niosh/face9815.html
+http://www.cdc.gov/niosh/hotenvt.html
+http://www.cdc.gov/nip/publications/fs/gen/WhatIfStop.htm
+http://www.cdc.gov/nip/recs/adult-schedule.htm
+http://www.cdc.gov/nip/recs/child-schedule.htm
+http://www.cdc.gov/nip/vacsafe/
+http://www.cdc.gov/node.do/id/0900f3ec80006f95
+http://www.cdc.gov/od/oc/media/mmwrnews/n010216.htm
+http://www.cdc.gov/od/oc/media/mmwrnews/n020111.htm
+http://www.cdc.gov/od/oc/media/mmwrnews/n040326.htm
+http://www.cdc.gov/od/oc/media/mmwrnews/n040409.htm
+http://www.cdc.gov/od/oc/media/mmwrnews/n2k0728.htm
+http://www.cdc.gov/od/oc/media/presskits/conf/cvd.htm
+http://www.cdc.gov/od/oc/media/pressrel/fs040309b.htm
+http://www.cdc.gov/od/oc/media/pressrel/fs040402.htm
+http://www.cdc.gov/od/oc/media/pressrel/r011016.htm
+http://www.cdc.gov/od/oc/media/pressrel/r011016p.htm
+http://www.cdc.gov/od/oc/media/pressrel/r040401.htm
+http://www.cdc.gov/od/oc/media/transcripts/t020321.htm
+http://www.cdc.gov/od/oc/media/transcripts/t020418b.htm
+http://www.cdc.gov/od/oc/media/transcripts/t020509.htm
+http://www.cdc.gov/od/oc/media/transcripts/t020725.htm
+http://www.cdc.gov/od/oc/media/transcripts/t020919.htm
+http://www.cdc.gov/od/oc/media/transcripts/t021017.htm
+http://www.cdc.gov/od/oc/media/transcripts/t030313.htm
+http://www.cdc.gov/od/oc/media/transcripts/t030318.htm
+http://www.cdc.gov/od/oc/media/transcripts/t030321.htm
+http://www.cdc.gov/od/oc/media/transcripts/t030329.htm
+http://www.cdc.gov/od/oc/media/transcripts/t040701.htm
+http://www.cdc.gov/std/Syphilis/STDFact-Syphilis.htm
+http://www.cdc.gov/tobacco/sport_initiatives/facilitators_guide.htm
+http://www.cdc.gov/ulcer/consumer.htm
+http://www.cdc.gov/youthcampaign/research/resources.htm
+http://www.cdc.noaa.gov/Teleconnections/
+http://www.cdc.noaa.gov/coads/climar2/sst_recs.html
+http://www.cdc.noaa.gov/review/Chap02/sec4.html
+http://www.cdc.noaa.gov/review97/overview/chpt6/
+http://www.cdc.ubc.ca/AboutUs/DirectorsMessage.htm
+http://www.cde.ca.gov/be/ms/po/policy99-03-june1999.asp
+http://www.cde.ca.gov/be/st/ss/daglossary.asp
+http://www.cde.ca.gov/be/st/ss/engglossary.asp
+http://www.cde.ca.gov/be/st/ss/scearth.asp
+http://www.cde.ca.gov/fg/fo/r5/ca04cov.asp
+http://www.cde.state.co.us/libnewsletter/sllevel1.htm
+http://www.cde.state.co.us/utility/privacy.htm
+http://www.cdera.org/cunews/news/cayman/article_673.php
+http://www.cdesign.com.au/aate/aate_papers/087_misson.htm
+http://www.cdf.org/7_2_index/acela/acela.html
+http://www.cdfe.org/esa_reform1.htm
+http://www.cdfe.org/wasley.htm
+http://www.cdfohio.org/movement_lncb/the_movement/default.asp
+http://www.cdfreaks.com/article/211/5
+http://www.cdhalton.ca/dispatch/cd0501.htm
+http://www.cdi.anu.edu.au/research_publications/research_LosingControl_2000htm.htm
+http://www.cdi.org/adm/1307/Gurr.html
+http://www.cdi.org/adm/1307/transcript.html
+http://www.cdi.org/adm/1351/transcript.html
+http://www.cdi.org/adm/636/
+http://www.cdi.org/adm/Transcripts/821/
+http://www.cdi.org/blair/launch-on-warning.cfm
+http://www.cdi.org/friendlyversion/printversion.cfm?documentID=1468
+http://www.cdi.org/friendlyversion/printversion.cfm?documentID=2032
+http://www.cdi.org/friendlyversion/printversion.cfm?documentID=2033
+http://www.cdi.org/friendlyversion/printversion.cfm?documentID=2272
+http://www.cdi.org/friendlyversion/printversion.cfm?documentID=2553
+http://www.cdi.org/friendlyversion/printversion.cfm?documentID=2568
+http://www.cdi.org/program/document.cfm?documentid=2568&programID=84&from_page=../friendlyversion/printversion.cfm
+http://www.cdi.org/russia/234-7.cfm
+http://www.cdi.org/russia/johnson/1089.html
+http://www.cdi.org/russia/johnson/8305-21.cfm
+http://www.cdi.org/russia/johnson/9125-6.cfm
+http://www.cdjapan.co.jp/help/product_info.html
+http://www.cdls.org.uk/background/april2001/back2.htm
+http://www.cdlsusa.org/publications/reachingout/archive/facing-up-to-the-behavior-challenge.html
+http://www.cdma.mod.uk/jsp329/dm4a.htm
+http://www.cdma.mod.uk/jsp329/dm6b.htm
+http://www.cdn-friends-icej.ca/antiholo/cantisem.html
+http://www.cdnfilmcentre.com/training/newmedia.html
+http://www.cdnn.info/industry/i040709b/i040709b.html
+http://www.cdnsba.org/issues/innovation.htm
+http://www.cdp.org.au/fed/mr/1998/981015.asp
+http://www.cdr.state.tx.us/Students/FeaturedCareer/TXCARESfeature_2003-07_LVN.html
+http://www.cdra.org.za/nuggets/If%20you%20meet%20the%20White%20Rabbit%20on%20the%20road,%20steal%20his%20watch!%20-%20by%20Doug%20Reeler%20-%20March%202003%20CDRA%20Nugget.htm
+http://www.cdra.org.za/nuggets/Listening%20at%203%20Levels%20-%20Nugget%20-%20%20October%202003%20CDRA%20Nugget.htm
+http://www.cdrcp.com/ccip_tip_rwi.html
+http://www.cdrecycler.com/categories/detail.asp?SubCatID=111&CatID=22
+http://www.cdrfaq.org/faq01.html
+http://www.cdrinfo.com/Sections/News/Details.aspx?NewsId=11839
+http://www.cdrinfo.com/Sections/News/Details.aspx?NewsId=13760
+http://www.cdrom-businesscard.co.uk/content/specials.phtml
+http://www.cdsgi.com/GeneralTerms.htm
+http://www.cdss.org/sales/american_dance.html
+http://www.cdss.org/sales/english_dance.html
+http://www.cdt.org/
+http://www.cdt.org/copyright/
+http://www.cdt.org/dns/icann/020503ceir.shtml
+http://www.cdt.org/publications/pp_5.1.html
+http://www.cdt.org/publications/pp_7.06.shtml
+http://www.cdt.org/security/usapatriot/030520cdt.shtml
+http://www.cdt.org/security/usapatriot/031027cdt.shtml
+http://www.cdt.org/testimony/030304morris.shtml
+http://www.cdt.org/testimony/20040323berman.shtml
+http://www.cdtcmpo.org/rtp2030/qualreg.htm
+http://www.cdtl.nus.edu.sg/brief/V7n7/sec5.htm
+http://www.cdtl.nus.edu.sg/brief/v5n3/default.htm
+http://www.cdtl.nus.edu.sg/ctp/literarystudies.htm
+http://www.cdtl.nus.edu.sg/link/nov2003/cover.htm
+http://www.cdtl.nus.edu.sg/tawards/tawards.htm
+http://www.cdtm.de/index.php?id=304
+http://www.cduniverse.com/productinfo.asp?pid=5618190&style=music&frm=lk_itchy
+http://www.cduniverse.com/search/xx/games/pid/6870393/a/Modern+Air+Combat:+Lock+on+Gold.htm
+http://www.cduniverse.com/search/xx/music/pid/1107874/a/Greatest+Hits.htm
+http://www.cduniverse.com/search/xx/music/pid/1430927/a/Wo+Ist+Zuhause+Mama.htm
+http://www.cduniverse.com/search/xx/music/pid/3012906/a/Every+Road+Leads+Back+To+You.htm
+http://www.cduniverse.com/search/xx/music/pid/4983042/a/W.O.+Techno+V.6.htm
+http://www.cduniverse.com/search/xx/music/pid/6097287/a/Wings+To+Walk+This+Road.htm
+http://www.cduniverse.com/search/xx/music/pid/6816035/a/Road+Island.htm
+http://www.cdymca.org/branches/chingachgook/sumjobs.htm
+http://www.ce-pro.com/default.asp?NodeID=2946
+http://www.ce.columbia.edu/_Syllabus.cfm?prmID=709
+http://www.ce.columbia.edu/alp/regs.cfm
+http://www.ce.msstate.edu/envr/safety.html
+http://www.ce.umn.edu/~smith/supplements/staq/supnotes6.html
+http://www.ce9.uscourts.gov/Web/OCELibra.nsf/0/ed8849928d18f21988256730007ffe14?OpenDocument
+http://www.ceaa-acee.gc.ca/012/atk_e.htm
+http://www.cebe.ltsn.ac.uk/news/events/sc2/programme.html
+http://www.cebik.com/amod/amod37.html
+http://www.cebik.com/yagi/beam1.html
+http://www.cebrooks.com/representative.htm
+http://www.cec.org/news/details/index.cfm?varlan=english&ID=2441
+http://www.cecarf.org/PressReleases/TransForumPressReleaseFinal.html
+http://www.cecaust.com.au/main.asp?sub=mobilisations/nbw&id=nbw23_05_2005.html
+http://www.cecc.gov/pages/virtualAcad/exp/exptinkerdecision.php
+http://www.cecunc.org/business/ten/businessplans.html
+http://www.cecunc.org/marketing/pc/ad-checklist.html
+http://www.cecwellington.ac.nz/fitness.htm
+http://www.cecwellington.ac.nz/transport.htm
+http://www.ced.com/ced/cedweb3.nsf/0/77707dfc158f0c3086256b56006436f1?OpenDocument
+http://www.cedarbuilt.com/difference.html
+http://www.cedarland.org/black.html
+http://www.cedarlane.org/whodoeswhat.html
+http://www.cedarpark.org/LeadersDay/Leaders_Day_2002.htm
+http://www.cedartubs.com/tub-talk-04-010.html
+http://www.cedmagazine.com/cedailydirect/0903/cedaily030923.htm
+http://www.cee-foodindustry.com/nl/allNLs.asp
+http://www.ceekay.com/
+http://www.ceenet.org/ceenet_cbyc_anicaee.html
+http://www.cefas.co.uk/fishinfo/Surveys.htm
+http://www.cefas.co.uk/fishinfo/gadus_morhua.htm
+http://www.cefi.org/STAGES/G_CHAP4.HTM
+http://www.cefpi.org/atlanta2004/
+http://www.cefpi.org/issue1.html
+http://www.cefpi.org/issue2.html
+http://www.cehn.org/cehn/cccehpressrelease.html
+http://www.cei.org/gencon/005,04304.cfm
+http://www.cei.org/gencon/019,03784.cfm
+http://www.ceid.upatras.gr/faculty/peter/cv.php
+http://www.ceintl.com/products/animation-wp3.html
+http://www.ceip.org/files/Publications/2004-02-03-MichaelSwaine-TroubleInTaiwan.asp?from=pubdate
+http://www.ceip.org/files/nonprolif/templates/article.asp?NewsID=4379
+http://www.celebagents.co.uk/html/mike_reid.html
+http://www.celebratelove.com/jeffglaze4.htm
+http://www.celebratingpeace.com/Peacemakers.htm
+http://www.celebritycookware.com/fdm300.html
+http://www.celebritymoviearchive.com/tour/whatshot.php/4
+http://www.celestica.com/investor/historicalindex.cfm?Act=HFQ299_MDA
+http://www.celestica.com/investor/historicalindex.cfm?Act=HFQ498_MDA
+http://www.cellhealthmakeover.com/skin.html
+http://www.cellml.org/private/progress_reports/20040430_meeting_minutes.html
+http://www.cello.org/heaven/bios/coleap.htm
+http://www.cellofpeace.com/cp_method.htm
+http://www.cellular.co.za/option_fifo.htm
+http://www.celluloid-wisdom.com/pw/index.php?/weblog/entry/scenes_from_my_driveway_continued_x_37/
+http://www.celluloid-wisdom.com/pw/washtimes.html
+http://www.celsatlife.com/Cels-CentreofExcellenceforLifeSciences-WhereBiosciencemeansBusiness.htm
+http://www.celt.dias.ie/english/tionol/synop01.html
+http://www.celtic-manor.com/activities/
+http://www.celtic-nation.com/
+http://www.celticmalts.com/journal-a8.htm
+http://www.celticmalts.com/journal-f1.htm
+http://www.cem.msu.edu/~reusch/VirtualText/react3.htm
+http://www.cema-converting.org/industry/story.asp?RECORD_KEY=ID&ID=351
+http://www.cen-chemjobs.org/employer/chemhr/July02/salarybenchpr.html
+http://www.cen-chemjobs.org/jobseeker/articles/industrialrecruiting.html
+http://www.censa.net/Publications_Passing_The_Torch.asp
+http://www.census.gov/Press-Release/www/2001/raceqandas.html
+http://www.census.gov/Press-Release/www/releases/archives/income_wealth/002484.html
+http://www.census.gov/foreign-trade/Press-Release/current_press_release/ftdpress.txt
+http://www.census.gov/foreign-trade/schedules/b/2004/sb20.html
+http://www.census.gov/foreign-trade/schedules/b/2005/c20.html
+http://www.census.gov/ipc/www/wp96glos.html
+http://www.census.gov/popest/archives/challenges.html
+http://www.census.gov/population/www/socdemo/workathome.html
+http://www.censusindia.net/census2001/history/censusobjectives.html
+http://www.centacs.com/how_to_learn.htm
+http://www.centar-za-mir.hr/engaktivnostiold1.php
+http://www.centaur.co.uk/communities/creative/dw/advertising.aspx
+http://www.centcom.mil/operations/coalition/Coalition_pages/canada.htm
+http://www.centenarystageco.org/07Education/actingclasses.htm
+http://www.centennialofflight.gov/2003FF/primary1.html
+http://www.centennialofflight.gov/essay/Government_Role/1930-airmail/POL6.htm
+http://www.centennialofflight.gov/essay/Prehistory/Cayley/PH2.htm
+http://www.centennialofflight.gov/essay/SPACEFLIGHT/ASTP/SP24.htm
+http://www.centennialofflight.gov/essay/SPACEFLIGHT/soviet_human/SP20.htm
+http://www.centennialofflight.gov/essay/SPACEFLIGHT/soviet_stations/SP22.htm
+http://www.centennialofflight.gov/essay/Theories_of_Flight/TH-OV.htm
+http://www.center.rpi.edu/GranGuid.html
+http://www.center.rpi.edu/PewGrant/RD2%20Award/UMApr1.html
+http://www.center.rpi.edu/PewSym/mono4.html
+http://www.center4nursing.org/education4.htm
+http://www.centerforbookculture.org/context/no14/simpleQ.html
+http://www.centerforbookculture.org/dalkey/backlist/cerf.html
+http://www.centerforbookculture.org/interviews/interview_wallace.html
+http://www.centerforhistory.org/james_oliver.html
+http://www.centerforloss.com/catalog/productdetails.asp?WhichProduct=100
+http://www.centerforloss.com/catalog/productdetails.asp?WhichProduct=13
+http://www.centerforpharmacy.com/resources/reimbursement_tool/reimburse_APC.htm
+http://www.centerforpi.com/BModcourse.htm
+http://www.centerforpolitics.org/crystalball/2004/house/?state=TX
+http://www.centerforpolitics.org/crystalball/article.php?id=LJS2004101201
+http://www.centeronline.org/knowledge/aboutJAL.cfm
+http://www.centerpointe.com/index.php?page=newsletter
+http://www.centerpointe.com/index.php?page=product&sub_page=holosync
+http://www.centerslo.net/l4.asp?L1_ID=31&L2_ID=13&L3_ID=111
+http://www.centervalleyclubgolf.com/outings.php
+http://www.central-city.net/parking.php
+http://www.centralassembly.org/default.aspx?pid=26
+http://www.centralbank.gov.cy/nqcontent.cfm?a_id=660&lang=en
+http://www.centralbank.ie/abt_goviss.asp
+http://www.centralbank.ie/nws_article.asp?ID=92
+http://www.centralbankmalta.com/site/currency2a.html
+http://www.centralcal.com/christ6a.htm
+http://www.centralcityhotel.com/
+http://www.centralconnector.com/GAMES/bocce.html
+http://www.centralequity.com.au/faqs.asp
+http://www.centralmanclc.com/docs/userguide.htm
+http://www.centralohio.com/ohiostate/stories/20020921/football/128896.html
+http://www.centralohioansforpeace.org/FirstYear.asp
+http://www.centralpark.org/guest/guestbook.html
+http://www.centralpark.org/guest/guestbook2000.html
+http://www.centralparknyc.org/thenandnow/partnership/contract
+http://www.centralpt.com/pageview.aspx?menu=1102&id=3837
+http://www.centralsmt.co.uk/the_car_reigns_supreme.htm
+http://www.centralspeechandhearingclinic.com/cshc_Clinic_Staff.htm
+http://www.centralvabank.com/presidents.html
+http://www.centre4activeliving.ca/Research/ResearchUpdate/1995/WellBeing_sept_95.htm
+http://www.centre4artsboca.com/PGE_HowTo.asp
+http://www.centredaily.com/mld/centredaily/2772373.htm
+http://www.centreforenergy.com/displayNewsArticle.asp?From=Sector&template=2,2&NewsID=4427058&ResultCategoryType=2,3&NewsPageID=3
+http://www.centrelink.gov.au/internet/internet.nsf/news_room/vardon98guidingcoalition.htm
+http://www.centrica.co.uk/files/presentations/prelim02/q_a/trans4.htm
+http://www.centrinet.com/christmas/party_games.htm
+http://www.centristcoalition.com/blog/archives/002218.html
+http://www.centrixfinancial.com/financialinstitutions/
+http://www.centroditerapiastrategica.org/network%20journal.htm
+http://www.centropa.org/reports.asp?rep=&ID=6864&TypeID=0
+http://www.centurionenergy.com/s/NewsReleases.asp?ReportID=64362&_Title=Activity-Update
+http://www.centurions.org.uk/ladies.html
+http://www.century-bank.com/business/businessfee.cfm
+http://www.century-of-flight.freeola.com/Aviation%20history/airplane%20at%20war/nocturnal%20defence.htm
+http://www.century21.com.au/lifeathome/lifeathome.cfm?life_id=111
+http://www.centurytel.com/about/companyProfile/companyTimeline.cfm
+http://www.ceoforum.com.au/200109_remuneration.cfm
+http://www.ceoforum.com.au/200112_leadership.cfm
+http://www.ceoforum.com.au/200302_ceoleisure.cfm
+http://www.ceoforum.com.au/200303_remuneration.cfm
+http://www.ceolas.org/artists/Quick_Takes.html
+http://www.ceoonline.com.au/content/expert_talk/sales_marketing
+http://www.cep.aq/default.asp?casid=5074
+http://www.cep.unep.org/issues/lbsp.html
+http://www.cep.unep.org/issues/lbsp.php
+http://www.cephas-library.com/catholic/catholic_vatican_in_world_politics_chpt_1.html
+http://www.cepr.net/columns/baker/ceopay.htm
+http://www.cepr.net/err/nytimesarticles/2005_05_20euro.html
+http://www.cepr.net/professional_supplement.htm
+http://www.cepr.net/publications/ANWR.htm
+http://www.cepr.net/publications/medicare_choice_plus.htm
+http://www.cepr.org/meets/wkcn/misc/notes_for_claimants.htm
+http://www.cepr.org/pubs/EEP/articles/Realappr.htm
+http://www.cepr.org/search/howto/search.htm
+http://www.ceps.be/wp.php?article_id=423
+http://www.ceptualinstitute.com/genre/benking/UN-climate.htm
+http://www.ceptualinstitute.com/genre/benking/overview.htm
+http://www.ceptualinstitute.com/genre/strickreveal.htm
+http://www.cer.org.uk/articles/speech_barroso_17march05.html
+http://www.cer.org.uk/articles/speech_hoon01july04.html
+http://www.cer.org.uk/defence/
+http://www.ceramicindustry.com/CDA/ArticleInformation/features/BNP__Features__Item/0,2710,114129,00.html
+http://www.ceramicindustry.com/CDA/ArticleInformation/features/BNP__Features__Item/0,2710,11588,00.html
+http://www.ceramicindustry.com/CDA/ArticleInformation/features/BNP__Features__Item/0,2710,8356,00.html
+http://www.ceramicindustry.com/CDA/ArticleInformation/features/BNP__Features__Item/0,2710,96037,00.html
+http://www.cerebellum.com/pls/brain/cerebellum.home
+http://www.cerebusfangirl.com/artists/space03.html
+http://www.cereconline.com/ecomaXL/index.php?site=CEREC_January_2005_Office_of_the_Month
+http://www.cerge-ei.cz/events/roundtab/
+http://www.ceri.com/ed-fda.htm
+http://www.cerkit.com/cerkitBlog/CommentView,guid,219df46d-96ea-47ed-b744-0a12024dfb04.aspx
+http://www.cerncourier.com/articles/cnl/2/6/11/1
+http://www.cert.org/congressional_testimony/Pethia_testimony_06-25-03.html
+http://www.cert.org/congressional_testimony/pethia-11-02/Pethia_testimony_11-19-02.html
+http://www.cert.org/reports/dsit_workshop-final.html
+http://www.cert.org/security-improvement/implementations/i018.01.html
+http://www.certifiedarchivists.org/html/archivalprof.html
+http://www.certoffice.org/pages/index.cfm?pageID=whatsnew
+http://www.certtutor.net/
+http://www.ces.ncsu.edu/bladen/EHhomepg.html
+http://www.ces.ncsu.edu/depts/fcs/NEPEF/embrace/embrace.htm
+http://www.ces.ncsu.edu/depts/fcs/human/disas4.html
+http://www.ces.ncsu.edu/depts/fcs/smp9/imageh.htm
+http://www.ces.ncsu.edu/depts/hort/hil/hil-641.html
+http://www.ces.ncsu.edu/hil/hil-8205.html
+http://www.ces.ncsu.edu/nreos/forest/woodland/won-20.html
+http://www.ces.ncsu.edu/nreos/forest/xmas/growing/ag95-IV.htm
+http://www.ces.ncsu.edu/nreos/wild/wildlife/wdc/beavers.html
+http://www.ces.purdue.edu/extmedia/EC/EC-674.html
+http://www.ces.sdsu.edu/creditnocredit.html
+http://www.ces.sdsu.edu/satsems.html
+http://www.cesa.org.uk/conference2003Report.asp
+http://www.cesew.org.uk/news/guidance/04_edskillsdelresults.htm
+http://www.cesnur.org/testi/McPherson.htm
+http://www.cesnur.org/testi/bryn/chen_cook.htm
+http://www.cesnur.org/testi/panic.htm
+http://www.cetconnect.org/geozone/lesson.html
+http://www.cete.org/acve/textonly/docgen.asp?tbl=digests&ID=116
+http://www.cetis.ac.uk/content2/20040724101134
+http://www.cetis.ac.uk/content2/20040724101134/printArticle
+http://www.cetonline.org/AboutCET/hampshire_gazette.htm
+http://www.ceu-net.org/id17_m.htm
+http://www.ceupress.com/books/html/CarryingASecret.html
+http://www.ceutt.org/CEUTTx98.htm
+http://www.cf.ac.uk/hisar/archaeology/reports/hebrides99/TheFaunalRemains.html
+http://www.cf.ac.uk/hisar/history/postgrad.htm
+http://www.cf.adfg.state.ak.us/region2/finfish/salmon/pws/pwsfor05.php
+http://www.cfa.com/Statistics/2000_survey_highlights.htm
+http://www.cfa.gov/meetings/archive/2005/june/appendices/20050616og.html
+http://www.cfa.gov/meetings/archive/2005/may/appendices/20050519og.html
+http://www.cfa.gov/print/meetings/archive/2005/may/appendices/20050519og.html
+http://www.cfa.org/registration-rules.html
+http://www.cfac.org/AGOpinions/opinion_62_658.html
+http://www.cfah.org/factsoflife/vol6no5.cfm
+http://www.cfainc.org/articles/why-not-coerce.html
+http://www.cfainstitute.org/pressroom/fjnews/fjMay02.html
+http://www.cfapubs.org/shared/topical_2.html
+http://www.cfb.ie/fisheries_protection/salmon_tagging/
+http://www.cfbnews.com/mac/Ball_State.htm
+http://www.cfc-efc.ca/docs/cccf/00000065.htm
+http://www.cfcf.ca/cfcf/happening/takeone
+http://www.cfcl.com/cfcl/vlb/Cuute/Questionaires/aspects_of_myself.html
+http://www.cfdonline.org/afterthefire.htm
+http://www.cfdp.ca/sen2000.htm
+http://www.cfe-eutax.org/Activities/frames_activities/european_reports/2005_06.html
+http://www.cff.org/Action/act_GetContent.cfm?ID=4990&FILE=LungTransplant11-04Final.pdf&TYPE=1208
+http://www.cfhs.ca/CriminalCode/analysis.htm
+http://www.cfif.org/htdocs/freedomline/current/in_our_opinion/oil_for_osama.htm
+http://www.cfit.gov.uk/foi/0501mf.htm
+http://www.cfit.gov.uk/mf/reports/roadsafety/ucl/a5.htm
+http://www.cfit.gov.uk/reports/physical/02.htm
+http://www.cfit.gov.uk/reports/regionaltransport/04.htm
+http://www.cfit.gov.uk/research/10year/mms/01.htm
+http://www.cfit.gov.uk/research/psbi/faber/ab.htm
+http://www.cflogic.com/Hotspot2.htm
+http://www.cflri.ca/cflri/pa/surveys/99survey/99survey.html
+http://www.cfmeu.asn.au/national/int_issues/20011203_Activism.html
+http://www.cfo.com/article.cfm/3003600?f=related
+http://www.cfo.com/article.cfm/3006170/3/c_3046580?f=insidecfo
+http://www.cfo.com/article.cfm/3012533?f=archives
+http://www.cfo.com/printable/article.cfm/3010827?f=options
+http://www.cfo.com/printable/article.cfm/3013301?f=options
+http://www.cfo.com/printable/article.cfm/4007442?f=options
+http://www.cfo.com/printable/article.cfm/4055146?f=options
+http://www.cfoasia.com/_rc_treasury.htm
+http://www.cfoasia.com/archives/200001-55.htm
+http://www.cfoasia.com/archives/200204-03.htm
+http://www.cfoasia.com/archives/200210-06.htm
+http://www.cfoasia.com/archives/200303-05.htm
+http://www.cfoasia.com/archives/200309-01.htm
+http://www.cfoasia.com/archives/200407-07.htm
+http://www.cfoeurope.com/displayStory.cfm/1736250
+http://www.cfoeurope.com/displayStory.cfm/1736562
+http://www.cfoeurope.com/displaystory.cfm/1736284/l_print
+http://www.cfoi.org.uk/blairltr191198.html
+http://www.cfoproject.com/solutions.asp?sID=278&n=Business+Intelligence
+http://www.cfoproject.com/solutions.asp?sID=280&n=Electronic+Payments
+http://www.cfoproject.com/solutions.asp?sID=281&n=ERP
+http://www.cfoproject.com/solutions.asp?sID=282&n=Financial+Operations
+http://www.cfoproject.com/solutions.asp?sID=339&n=Regulation+and+Compliance
+http://www.cfoproject.com/solutions.asp?sID=342&n=Shareholder+Value
+http://www.cfoproject.com/solutions.asp?sID=343&n=Financial+Tools
+http://www.cforl.org.uk/aboutus/IntroPack/Intropack_2.asp
+http://www.cfoweb.com.au/freearticle.aspx?relId=14278
+http://www.cfp.net/teamup/cetools.asp
+http://www.cfpc.ca/English/cfpc/programs/patient%20education/activity%20heart%20attack/default.asp?s=1
+http://www.cfpc.ca/English/cfpc/programs/patient%20education/anemia/default.asp?s=1
+http://www.cfpc.ca/English/cfpc/programs/patient%20education/constipation/default.asp?s=1
+http://www.cfpc.ca/English/cfpc/programs/patient%20education/smoking/default.asp?s=1
+http://www.cfpc.ca/cfp/2002/Feb/vol48-feb-editorials-1.asp
+http://www.cfpeople.org/Apologetics/page51a085.html
+http://www.cfpf.org.uk/articles/mediums/rose.html
+http://www.cfpsa.com/en/deployed/jobs/index.asp
+http://www.cfr.org/background/northkorea_japan.php
+http://www.cfr.org/background/trade_jobs.php
+http://www.cfr.org/pub3857/richard_bitzinger/problems_and_prospects_facing_secondtier_armsproducing_states_in_the_postcold_war_era_a_comparative_assessment.php
+http://www.cfr.org/pub5562/david_g_victor/nuclear_energy_not_oil_should_fuel_usrussian_ties.php
+http://www.cfr.org/pub6576/john_f_kerry/making_america_secure_again_setting_the_right_course_for_foreign_policy.php
+http://www.cfr.org/pub7203/zbigniew_brzezinski_robert_m_gates_lee_feinstein_suzanne_maloney/iran_time_for_a_new_approach_an_independent_task_force_on_us_policy_toward_iran.php
+http://www.cfr.washington.edu/internal/Facstaff/CFR%20Leave%20Policy%20Post.htm
+http://www.cfsan.fda.gov/~dms/admehg3.html
+http://www.cfsan.fda.gov/~dms/fdalead.html
+http://www.cfsan.fda.gov/~dms/prodques.html
+http://www.cfsan.fda.gov/~furls/cpgreg.html
+http://www.cfsan.fda.gov/~furls/cpgreg2.html
+http://www.cfsan.fda.gov/~pn/pnqaguid.html
+http://www.cfsan.fda.gov/~pn/pnsiqa.html
+http://www.cfsdoc.org/good_fats.htm
+http://www.cfsfibromyalgia.com/
+http://www.cfsloans.com/en/AboutCFS/PressReleases/news100404.htm
+http://www.cfsuo.forces.gc.ca/booklet/intro_e.asp
+http://www.cftc.gov/opa/speeches/opadial-55.htm
+http://www.cftc.gov/opa/speeches04/opanewsm-49.htm
+http://www.cftl.org/initiatives_TDRDC_KC_JS.php
+http://www.cfxcreative.com/news_june01.html
+http://www.cga.ct.gov/asp/cgabillstatus/cgabillstatus.asp?selBillType=Bill&bill_num=343&which_year=2004
+http://www.cga.ct.gov/pri/archives/1999sbfinalreport1overview.htm
+http://www.cgal.org/Manual/doc_html/cgal_manual/Optimisation/Chapter_main.html
+http://www.cgap.org/direct/docs/donor_briefs/db_08.php
+http://www.cgarchitect.com/vb/showthread.php?t=8501&page=1
+http://www.cgernon.com/sptf/care.htm
+http://www.cgfi.org/materials/speeches/nutrients_gone.htm
+http://www.cgh.com.sg/public/caring/issue65/pulse.html
+http://www.cgibin.ncsu.edu/ced-bin/article.pl?a=200407071
+http://www.cgiphils.org/literature/armor/canscience/canscience.htm
+http://www.cgjungpage.org/talk/showthread.php?t=3693&page=3&pp=10
+http://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/render/render.html
+http://www.cgl.uwaterloo.ca/~rhbartel/
+http://www.cgonline.com/
+http://www.cgp.org/index.php?option=article&task=default&articleid=132&id=4
+http://www.cgpl.org/
+http://www.cgps.org/view_page.php?Current_Section=5&Current_SubSection=2
+http://www.cgtalk.com/archive/index.php/f-7-p-40.html
+http://www.cgtalk.com/archive/index.php/t-198342.html
+http://www.cgtalk.com/archive/index.php/t-221897.html
+http://www.cgtalk.com/archive/index.php/t-58274.html
+http://www.cgtalk.com/showthread.php?t=205236
+http://www.cgtd.com/global/directory/veconomy.htm
+http://www.ch2bc.org/index11.htm
+http://www.ch2m.com/corporate_2004/Services/Sectors/Transportation/PM_transportation.asp
+http://www.cha.uga.edu/bjc/pursuit.htm
+http://www.chacocanyon.com/essays/whattodo.shtml
+http://www.chacocanyon.com/pointlookout/031008.shtml
+http://www.chacocanyon.com/pointlookout/040526.shtml
+http://www.chacocanyon.com/pointlookout/041103.shtml
+http://www.chaddesley-corbett.co.uk/ringers.htm
+http://www.chaffeezoo.org/animals/bateleurEagle.html
+http://www.chain.net.cn/aidsenglish/aboutus/activities.htm
+http://www.chaindlk.com/reviews/index.php?type=music&category=7
+http://www.chainreaction.com/canada_road.htm
+http://www.challies.com/archives/000569.php
+http://www.challies.com/archives/000632.php
+http://www.chally.com/hiring-mistakes.htm
+http://www.challzine.net/17/17utopia.html
+http://www.cham-ministry.org/ministry/women/lakota1.html
+http://www.chamber.org.hk/info/the_bulletin/dec2001/legco.asp
+http://www.champaign.org/whatshappening/adult_programs.html
+http://www.champaignschools.org/
+http://www.championpersonnel.com/salary_guide.html
+http://www.championtrees.org/forests5.htm
+http://www.championtrees.org/yarrow/snakeoil.htm
+http://www.chan1.org/activities.html
+http://www.chan1.org/activities_0712.html
+http://www.chanceandchoice.com/ChanceandChoice/chapter7.html
+http://www.change-management-toolbook.com/tools/systems.html
+http://www.changemakers.net/journal/02may/sen.cfm
+http://www.changethatsrightnow.com/problem_detail.asp?SDID=1084:1784
+http://www.changingchannels.org/
+http://www.changingcourse.com/archives/issue22.htm
+http://www.changingfaces.co.uk/staring.html
+http://www.changingourworld.com/
+http://www.changingourworld.com/news4.html
+http://www.changingourworld.com/news5.html
+http://www.changingourworld.com/news9.html
+http://www.channel-e.com.my/wps/portal/!ut/p/.scr/channele_securitypolicy
+http://www.channel3000.com/money/3596979/detail.html
+http://www.channel4.com/4car/road-tests/C/citroen/c3pluriel03-/c3pluriel03--comequipt.html
+http://www.channel4.com/4homes/buyingabroad/features/foreign_finance.html
+http://www.channel4.com/community/showcards/0-9/10_Years_Younger.html
+http://www.channel4.com/culture/microsites/B/believeitornot/bornagain2.html
+http://www.channel4.com/culture/microsites/B/believeitornot/bornagain2_t.html
+http://www.channel4.com/culture/microsites/T/thinktv/comments/0105_waac.html
+http://www.channel4.com/entertainment/games/submit-terms-and-conditions.html
+http://www.channel4.com/entertainment/tv/microsites/D/dating/therapy_2.html
+http://www.channel4.com/entertainment/tv/microsites/R/richardandjudy/keep4archive/useful.html
+http://www.channel4.com/entertainment/tv/microsites/R/richardandjudy/regular_features/summer_read_05.html
+http://www.channel4.com/health/microsites/0-9/4health/sex/sar_lovehurts.html
+http://www.channel4.com/health/microsites/0-9/4health/sex/sar_talking.html
+http://www.channel4.com/health/microsites/0-9/4health/teenlife/rel_jealousy.html
+http://www.channel4.com/health/microsites/F/family/baby/ivf.html
+http://www.channel4.com/health/microsites/F/family/parenting/disabled.html
+http://www.channel4.com/history/microsites/H/history/a-b/blackdeath.html
+http://www.channel4.com/history/microsites/H/history/n-s/stone3.html
+http://www.channel4.com/history/timeteam/archive/timeteamlive99/glossary.html
+http://www.channel4.com/learning/main/netnotes/sectionid100663980.htm
+http://www.channel4.com/learning/main/netnotes/sectionid100665559.htm
+http://www.channel4.com/learning/microsites/B/brickingit/training/job_profiles_c2.html
+http://www.channel4.com/life/microsites/R/racism/language/
+http://www.channel4.com/science/microsites/S/science/medicine/humanclone.html
+http://www.channelbeat.com/products/dance/dance_maniax___dance_freaks_series/90.html
+http://www.channelnewsasia.com/stories/afp_asiapacific/view/154092/1/.html
+http://www.channelnewsasia.com/stories/afp_world/view/80951/1/.html
+http://www.channelnewsasia.com/stories/afp_world_business/view/127084/1/.html
+http://www.chanrobles.com/aquinoexecutiveorderno270.htm
+http://www.chantwest.com.au/cwPublic.aspx?MenuItemID=206
+http://www.chaosmailorder.com/stories/warhammer40k/battle/assult_on_gelbryn.php
+http://www.chapel-hill.nc.us/apioa/funstuff.htm
+http://www.chapinsc.com/
+http://www.chaplog.co.uk/blog/index.php?cat=6
+http://www.chapmantripp.co.nz/resource_library/published_article.asp?id=2634
+http://www.chapters.indigo.ca/default.asp?N=35+528484&Section=Books&Catalog=&Lang=en&zxac=1
+http://www.chapters.indigo.ca/default.asp?N=43+528484&Section=Kids&Catalog=&Lang=en&zxac=1
+http://www.chapters.indigo.ca/default.asp?N=43+528484+321131&Section=kids&Catalog=&Lang=en&zxac=1
+http://www.character-shop.com/
+http://www.charactercounts.org/booklist1.htm
+http://www.charactercounts.org/knxwk350.htm
+http://www.charactercounts.org/sports/accord.htm
+http://www.charactercounts.org/sports/gameplan.htm
+http://www.charactercounts.org/sports/team-approach.htm
+http://www.charactered.net/parent/parenttwenty.asp
+http://www.charakclinics.com/2005_01_01_archiveblogs.htm
+http://www.charity-commission.gov.uk/investigations/inquiryreports/whit.asp
+http://www.charity-commission.gov.uk/publications/cc38.asp
+http://www.charity-commission.gov.uk/publications/rs9.asp
+http://www.charity-commission.gov.uk/registeredcharities/rorfaq.asp
+http://www.charity-commission.gov.uk/spr/nopweb.asp
+http://www.charity-commission.gov.uk/tcc/ccnews8.asp
+http://www.charitygift.com/docs/about_us/letter.jsp
+http://www.charitynavigator.org/index.cfm/bay/content.view/catid/2/cpid/35.htm
+http://www.charitynavigator.org/index.cfm/bay/content.view/catid/3/cpid/28.htm
+http://www.charitynavigator.org/index.cfm/bay/content.view/catid/3/cpid/28/print/1.htm
+http://www.charitytimes.com/pages/features/feature%20archive/thecashincentive.htm
+http://www.charlatans.8k.com/
+http://www.charlesbiederman.net/noteworthy.html
+http://www.charlescityia.com/Assist/txtassist.html
+http://www.charlesedwin.com/rdbrms.htm
+http://www.charleshudson.net/weblog/
+http://www.charlesives.org/02bio.htm
+http://www.charleskennedy.org.uk/article190601.htm
+http://www.charleskennedy.org.uk/article290204.htm
+http://www.charleslindbergh.com/history/index.asp
+http://www.charleslipson.com/
+http://www.charlespetzold.com/pwcs/typos.html
+http://www.charlesriverrc.org/articles/flying/joewurts_xcattempt.htm
+http://www.charlestheclown.com/hospital.htm
+http://www.charlierose.com/archives/archive11.shtm
+http://www.charlierose.com/archives/archive5.shtm
+http://www.charminghealth.com/applicability/guilt.htm
+http://www.charminghealth.com/applicability/homesickness.htm
+http://www.chartattack.com/DAMN/2003/03/0334.cfm
+http://www.chartattack.com/Gallery/20000619-cure.cfm
+http://www.chartattack.com/damn/2001/02/0801.cfm
+http://www.chartattack.com/damn/2005/01/2605.cfm
+http://www.chartattack.com/damn/2005/02/0105.cfm
+http://www.chartattack.com/damn/2005/02/0304.cfm
+http://www.charter-boatfishing.com/
+http://www.charter-travel.com/scotland.htm
+http://www.charter88.com/pubs/brief/0201lords.html
+http://www.charteredforesters.org/news_archive2001/news_may.html
+http://www.chartingnature.com/
+http://www.chartingthenation.lib.ed.ac.uk/mapscot.html
+http://www.chase-pitkin.com/How-To/Projects/doors_win/vwindow/vinwin.htm
+http://www.chasefreedom.com/exercise.html
+http://www.chasesc.com/
+http://www.chasingmatisse.com/html/cover-proloque.htm
+http://www.chass.utoronto.ca/mcluhan-studies/v1_iss1/1_1art14.htm
+http://www.chass.utoronto.ca/polsci/writing_uft.htm
+http://www.chatmag.com/help/softwareguide.html
+http://www.chattanoogan.com/articles/article_62972.asp
+http://www.chattanoogan.com/home.asp
+http://www.chattanoogapulse.com/vnews/display.v/ART/2005/06/01/429d1997bd66f
+http://www.chavscum.co.uk/forum/archive/index.php/t-4757.html
+http://www.chavscum.co.uk/forum/showthread.php?t=83
+http://www.chawton.org/biography.php?AuthorID=40
+http://www.chcf.org/topics/download.cfm?pg=insurance&fn=HIMUIndividualMarketRules.pdf&pid=92255&itemid=20739
+http://www.chch.ox.ac.uk/framestructure/getpage.asp?id=373
+http://www.chclibrary.org/micromed/00036630.html
+http://www.chclibrary.org/micromed/00036960.html
+http://www.chclibrary.org/micromed/00045370.html
+http://www.chclibrary.org/micromed/00047720.html
+http://www.chclibrary.org/micromed/00051720.html
+http://www.chclibrary.org/micromed/00054530.html
+http://www.chclibrary.org/micromed/00056800.html
+http://www.chclibrary.org/micromed/00060060.html
+http://www.chclibrary.org/micromed/00062720.html
+http://www.chclibrary.org/micromed/00066650.html
+http://www.chclibrary.org/micromed/00069390.html
+http://www.chcp.org/memorialday.html
+http://www.chcs-ks.org/lifecare_fitness_center.htm
+http://www.chdf.org.au/i-cms?page=111
+http://www.cheap-discount-computer-parts.com/
+http://www.cheap-hostels-in.com/tours-in/kenmare.htm
+http://www.cheap-international-calls-guide.co.uk/
+http://www.cheapflowers.com/category/6
+http://www.cheapsmokesbymail.com/faq.htm
+http://www.cheatcc.com/pc/suffering.html
+http://www.cheatcc.com/psx2/suffering.html
+http://www.cheatcc.com/xb/suffering.html
+http://www.cheatingculture.com/$1billionforconservativeideas.htm
+http://www.cheatingculture.com/exerciseinoverkill.htm
+http://www.cheatingdome.com/pc/11286.htm
+http://www.cheatingspousepi.com/
+http://www.cheatingspousepi.com/cheating_husband/
+http://www.cheatplanet.com/n64cheats/strategy/international_superstar_soccer.htm
+http://www.cheatplanet.com/psstrategy/nhl_2000.htm
+http://www.cheblogs.com/roller/page/1234/EconomicReport
+http://www.chebucto.ns.ca/Philosophy/Sui-Generis/Emerson/success.htm
+http://www.check-in.com.au/Melbourne/Abacus_Apartments.htm
+http://www.check-in.com.au/QLD/Nautilus_Holiday_Apartments.htm
+http://www.check-in.com.au/Sydney/Meriton_World_Tower_Apartments.htm
+http://www.check-in.com.au/customer/HotelDetails.asp?iHotelId=1264
+http://www.check-in.com.au/customer/HotelDetails.asp?iHotelId=856
+http://www.check-in.com.au/rg-2-HotelDetails.asp?iHotelId=858
+http://www.checkerdist.com/patterns/patterns_index.html
+http://www.checkmatic.com/
+http://www.checkplus.info/
+http://www.checkpoint.com/press/2003/q303earnings102003.html
+http://www.checkupdown.com/status/E008.html
+http://www.checnet.org/healthehouse/virtualhouse/search-results-articles.asp?Main_Room_FamilyLiving=1
+http://www.cheef.com/buffaloskin/Answers/The_Pro___Con/Skin_Cancer/Fluorescent_Lighting/fluorescent_lighting.html
+http://www.cheekymonkey.ca/Other%20Products/Product%20Images/MamaKangaroo/What%20is%20Baby%20Wearing.htm
+http://www.cheesereporter.com/editorial.htm
+http://www.chefdepot.net/benchscraper.htm
+http://www.chefelf.com/archives/00000050.shtml
+http://www.chefschoolreview.com/
+http://www.chefwalter.com/WP-events.html
+http://www.chek.org/2005_CHEK_Leadership_Conference.htm
+http://www.chekhovsmistress.com/2004/09/trivia_n_someth.html
+http://www.chelationtherapyonline.com/anatomy/p102.htm
+http://www.chelationtherapyonline.com/anatomy/p91.htm
+http://www.chelationtherapyonline.com/anatomy/p93.htm
+http://www.chelationtherapyonline.com/articles/p195.htm
+http://www.chelonia.org/Articles/TerrapenecareSZ.htm
+http://www.chelseablog.com/category/matches/fa-cup/
+http://www.chelseagreen.com/1992/items/lovingandleaving
+http://www.cheltenham.gov.uk/libraries/templates/page.asp?URN=2388
+http://www.chem.qmul.ac.uk/iubmb/kinetics/ek7.html
+http://www.chem.ucl.ac.uk/basictechorg/results/
+http://www.chem.uwec.edu/Chem406_F04/Pages/lab_assignments/Lab5/lab_5.html
+http://www.chem.uwec.edu/Chem406_F04/Pages/lab_assignments/Lab6/lab_6.html
+http://www.chem.uwec.edu/Chem406_F04/Pages/lab_assignments/Lab7/lab_7.html
+http://www.chem1.com/acad/sci/pseudosci.html
+http://www.chemalliance.org/Handbook/background/back-cercla.asp
+http://www.chemaxon.com/marvin/license.html
+http://www.chemeng.ucl.ac.uk/research/multiphase/projects.html
+http://www.chemguide.co.uk/physical/acidbaseeqia/indicators.html
+http://www.chemguide.co.uk/physical/phaseeqia/vapourpress.html
+http://www.chemistry.org/portal/a/c/s/1/acsdisplay.html?DOC=meetings%5Csandiego2005%5Chousing.html
+http://www.chemistry.org/portal/a/c/s/1/acsdisplay.html?DOC=membership%5Cnetworking.html
+http://www.chemistry.org/portal/a/c/s/1/acsdisplay.html?DOC=vc2%5C3wk%5Cwk3_cpd.html
+http://www.chemistry.org/portal/a/c/s/1/acsdisplay.html?DOC=vc2%5C3wk%5Cwk3_mat.html
+http://www.chemistry.org/portal/a/c/s/1/feature_pro.html?DOC=professionals%5Cpro_nanotech.html
+http://www.chemistrycoach.com/lbe2.htm
+http://www.chemistrycoach.com/student.htm
+http://www.chemoangels.com/In%20the%20News/angels_patients_talk.htm
+http://www.chems.msu.edu/curr.stud/mse.sops/sem.oper.htm
+http://www.chemsoc.org/exemplarchem/entries/2004/dublin_fowler/experiments.html
+http://www.chemtopics.com/elements/act/actf.htm
+http://www.chemtutor.com/sta.htm
+http://www.chenderit.northants.sch.uk/about/sixth-form-prospectus/music.html
+http://www.chenequa.wi.us/Newsletters/summer%202004.htm
+http://www.cheng.cam.ac.uk/groups/biochem/Recent_Research_Projects.htm
+http://www.cheniere.org/briefings/Hubbert/hubbert.htm
+http://www.cheniere.org/misc/qp.htm
+http://www.cheninfo.com/maddychen/blog/?m=200503
+http://www.chennaionline.com/Hotelsandtours/Placesofworship/index.asp
+http://www.chennaionline.com/astro/newyearvishu.asp
+http://www.chennaionline.com/columns/variety/variety4.asp
+http://www.chennaionline.com/health/hopeislife/12life25.asp
+http://www.chennaionline.com/science/Environment/concern.asp
+http://www.chentaiji.com/articles/nurturingways.html
+http://www.cherrylanecollection.com/CloseoutYankeeCandleAromaTherapyTarts0.html
+http://www.cherrylanecollection.com/html/5706.html
+http://www.cherrylanecollection.com/html/620.html
+http://www.cherryleaf.com/examples.htm
+http://www.cherryred.co.uk/cherryred/artists/cliffordtward.htm
+http://www.cherwell.org/?author=Susannah+Atkins
+http://www.cherwell.org/?id=2145
+http://www.cherwell.org/?id=2193
+http://www.cherwell.org/?id=3146
+http://www.cherwell.org/?id=745
+http://www.cherwell.org/?id=985
+http://www.cherwell.org/?s=sports&date=2004-11-12
+http://www.cherwell.org/?s=sports&page=sportsreports&date=2004-11-12
+http://www.cheshire.gov.uk/Planning/ForwardPlanning/Structure+Plan/FP_SP_EIP_EIPparticipants.htm
+http://www.cheslog.com/craig/parrhesia/archives/week_2004_01_04.html
+http://www.chess-dictionary-chesmayne.net/Tree.htm
+http://www.chess-dictionary-chesmayne.net/Women.htm
+http://www.chess.co.uk/books2003.html
+http://www.chess.co.uk/books2003_05.html
+http://www.chess.co.uk/books2004_02.html
+http://www.chess21.com/info/privacy.asp
+http://www.chessbase.com/newsdetail.asp?newsid=1474
+http://www.chessbase.com/newsdetail.asp?newsid=1734
+http://www.chessbase.com/newsdetail.asp?newsid=2094
+http://www.chessbase.com/newsdetail.asp?newsid=2258
+http://www.chessdirect.co.uk/acatalog/info.html
+http://www.chessingtonradiocarclub.co.uk/homepage.html
+http://www.chessvariants.com/people.dir/izzard.html
+http://www.chessvariants.com/ratings.html
+http://www.chester.ac.uk/undergraduate/management.html
+http://www.chestercathedral.com/newsletter.htm
+http://www.chestercc.gov.uk/main.asp?page=257
+http://www.chesterfield.labour.co.uk/ViewPage.cfm?Page=3489
+http://www.chesterton.org/gkc/philosopher/The%20Approach%20To%20Thomism.htm
+http://www.chestjournal.org/cgi/content/full/116/2/539
+http://www.chestjournal.org/cgi/content/full/126/3_suppl/265S
+http://www.chestnet.org/networks/home_care/reviews/2003/management.php
+http://www.chestnuthillinstitute.com/EmotionalEnergyFactor/book/samplechapter.html
+http://www.chetholmes.com/sales_manager.htm
+http://www.cheungswingchun.com/newSite/cdt.htm
+http://www.chevron.com/about/pascagoula/community/firesafetyed.shtml
+http://www.chevron.com/news/archive/chevron_speech/1998/98-5-18.asp
+http://www.chevron.com/news/current_issues/price_supply.asp
+http://www.chevrontexaco.com/news/speeches/2002/12feb2002_robertson.asp
+http://www.chevrontexaco.com/news/speeches/2004/2004-04-13_kirkland.asp
+http://www.chevychasebank.com/htm/banking.html
+http://www.chevychasebank.com/htm/p_online.html
+http://www.chforum.org/scenarios/yc203.html
+http://www.chfpatients.com/faq/dhf.htm
+http://www.chfpatients.com/heartforum.htm
+http://www.chfweb.com/smith/message6.html
+http://www.chi-charity.org.uk/Article1.htm
+http://www.chi2004.org/cfp/doccon.html
+http://www.chi2004.org/cfp/student.html
+http://www.chi2004.org/geninfo/s_volunteers.html
+http://www.chi2005.org/cfp/guide.html
+http://www.chi2005.org/program/prog_workshops.html
+http://www.chiariglione.org/mpeg/standards/mpeg-21/mpeg-21.htm
+http://www.chiark.greenend.org.uk/ucgi/~sret1/analog/olddocs.pl?version=4.90beta1&file=othreps.html
+http://www.chiark.greenend.org.uk/ucgi/~sret1/analog/olddocs.pl?version=4.90beta2&file=othreps.html
+http://www.chiark.greenend.org.uk/ucgi/~sret1/analog/olddocs.pl?version=4.90beta3&file=othreps.html
+http://www.chiark.greenend.org.uk/ucgi/~sret1/analog/olddocs.pl?version=4.90beta4&file=othreps.html
+http://www.chiark.greenend.org.uk/ucgi/~sret1/analog/olddocs.pl?version=4.91beta1&file=othreps.html
+http://www.chiark.greenend.org.uk/ucgi/~sret1/analog/olddocs.pl?version=5.01&file=othreps.html
+http://www.chiark.greenend.org.uk/ucgi/~sret1/analog/olddocs.pl?version=5.02&file=othreps.html
+http://www.chiark.greenend.org.uk/~sgtatham/tweak/btree.html
+http://www.chic.org.uk/chicmco/feelingunwell/ear_mounth.htm
+http://www.chic.org.uk/symptoms/eye.asp
+http://www.chicagobotanic.org/plantinfo/pp/PPHeuchera.html
+http://www.chicagobotanic.org/pr/press05/ProfDevelop.html
+http://www.chicagoboyz.net/mt/mt-comments.cgi?entry_id=2996
+http://www.chicagofed.org/about_the_fed/our_history.cfm
+http://www.chicagofed.org/consumer_information/purchase_options_for_consumers.cfm
+http://www.chicagoflame.com/news/2003/11/04/Opinions/Falling.In.Love.With.the.Factor-546472.shtml
+http://www.chicagofreemumia.org/cookdecl.html
+http://www.chicagofreepress.com/freetime/sukiedelacroix/
+http://www.chicagogsb.edu/news/2005-06-10h_lublin.aspx
+http://www.chicagolandtails.com/index.pl/heroes_of_the_canine_kind
+http://www.chicagomarriage.com/frequently_asked_questions.htm
+http://www.chicagorules.com/
+http://www.chicagosuntimes.com/output/lazare/cst-fin-lew31.html
+http://www.chicagotheband.com/historychap08.htm
+http://www.chicagotraveler.com/chicago-events-calendar.htm
+http://www.chicagotribune.com/news/custom/special3/chi-oaklawn.storygallery
+http://www.chicagotribune.com/news/local/north/
+http://www.chicagotribune.com/news/nationworld/chi-garymarx.storygallery
+http://www.chicagovolunteer.net/SearchResults.asp?Page=18&txtSearchType=2&lstJobType=33&cboRegion=1
+http://www.chichester.ac.uk/FOI/foi.htm
+http://www.chichester.gov.uk/work/estates_service_contacts.cfm
+http://www.chickasaw.net/government_133.htm
+http://www.chickensoup.com/Teachers/Teachers_Sample3.htm
+http://www.chicklit.com/paperjam/paperjam60.html
+http://www.chicklit.us/catalog_qs.htm
+http://www.chickmoorman.com/PAlying.html
+http://www.chicogreeks.com/parents.asp
+http://www.chiefdelphi.com/forums/papers.php?s=&categoryid=10&perpage=10&direction=DESC&sort=date
+http://www.chiefengineer.org/content/all_archive_list.cfm/search_year/2004.htm
+http://www.chiefexecutive.net/depts/mkthoriz/179.htm
+http://www.chiefofficer.com/particle.php?t=47
+http://www.chiefsupply.com/safety.phtml
+http://www.chiexplorer.com/chi0010.html
+http://www.chiffandfipple.com/low.html
+http://www.chikamaka-cwy.org/dikaneisdi2.htm
+http://www.child-abuse.com/childhouse/childrens_rights/dci_what.html
+http://www.child-soldiers.org/document_get.php?id=861
+http://www.childbirtheducation.net/services.html
+http://www.childcareaware.org/en/dailyparent/0298/
+http://www.childcareaware.org/en/dailyparent/0399/
+http://www.childcareaware.org/en/dailyparent/0498/
+http://www.childcareaware.org/en/dailyparent/vol12/
+http://www.childcareaware.org/en/dailyparent/vol5/
+http://www.childcareaware.org/en/dailyparent/vol9/
+http://www.childcustodyattorney.com/ohio/_disc54/000006a1.htm
+http://www.childdevelopmentinfo.com/parenting/communication.shtml
+http://www.childfocus-net-alert.be/uk/UK_news_sub01.htm
+http://www.childfun.com/
+http://www.childfun.com/modules.php?name=News&file=article&sid=165
+http://www.childpolicy.org.uk/news/index.cfm?ccs=89
+http://www.childpolicyintl.org/issuebrief/issuebrief5.htm
+http://www.childpro.org/
+http://www.children.smartlibrary.org/NewInterface/segment.cfm?segment=1800
+http://www.children.smartlibrary.org/NewInterface/segment.cfm?segment=2524
+http://www.childrenfirst.org.uk/cis/New%20Initiatives/existing.htm
+http://www.childreninscotland.org.uk/html/poly_i_leg.htm
+http://www.childrennow.org/media/medianow/mnsummer2002.htm
+http://www.childrennow.org/media/medianow/mnwinter1998.html
+http://www.childrens-heart-fed.org.uk/chf%20response%20feb%202003.htm
+http://www.childrens-heart-fed.org.uk/teachers.htm
+http://www.childrensabilityfund.ab.ca/donatenow.htm
+http://www.childrensaidsociety.org/news/1980386
+http://www.childrensbloodfoundation.org/thalassemia.html
+http://www.childrenshospital.org/az/Site508/mainpageS508P0.html
+http://www.childrenshospital.org/cfapps/A2ZtopicDisplay.cfm?Topic=Hypoglycemia
+http://www.childrenshospital.org/cfapps/A2ZtopicDisplay.cfm?Topic=Ineffective%20Latch-On%20or%20Sucking
+http://www.childrenshospital.org/cfapps/A2ZtopicDisplay.cfm?Topic=Motor%20Vehicle%20Safety%20-%20Identifying%20High-Risk%20Situations
+http://www.childrenshospital.org/cfapps/CHdeptPagePressDisplay.cfm?Dept=Press%20Room&PageNbr=49&ParentPage=1
+http://www.childrenshospital.org/dream/DreamWin04/obesity.html
+http://www.childrenshospitalla.org/11381.cfm
+http://www.childrenshospitaloakland.org/t_healthcare.cfm?id=259
+http://www.childrenshospitals.net/TemplateRedirect.cfm?template=/ContentManagement/ContentDisplay.cfm&ContentID=14586
+http://www.childrenslegalcentre.com/Templates/Internal.asp?NodeID=90186
+http://www.childrensmemorial.org/jobs/jobListing.asp?jobID=709
+http://www.childrensmusic.org/light6.html
+http://www.childsupportanalysis.co.uk/information_and_explanation/newspaper_articles/news_articles_1999_q1.htm
+http://www.chilternrugby.co.uk/club_history_3.htm
+http://www.chimesofsolvang.com/wind-chimes/
+http://www.chimie.umontreal.ca/chm109.html
+http://www.china-aids.org/english/five-Year-Plan.htm
+http://www.china-asean.net/asean_biz/myanmar/country_econ/asean_my_econ_basic.html
+http://www.china-embassy.is/eng/7168.html
+http://www.china-embassy.org/eng/jjmy/b/t36297.htm
+http://www.china-embassy.org/eng/zt/first%20beginning/t56123.htm
+http://www.china-embassy.org/eng/zt/zgrq/t36633.htm
+http://www.china-labour.org.hk/iso/article.adp?article_id=1012
+http://www.china-labour.org.hk/iso/article.adp?article_id=1021
+http://www.china-teachers.com/article34.html
+http://www.china-teachers.com/modules.php?name=News&file=print&sid=34
+http://www.china-window.com/china_market/china_industry_reports/western-region-developmen.shtml
+http://www.china.org.cn/e-white/phumanrights19/p-5.htm
+http://www.china.org.cn/english/2003/Sep/74607.htm
+http://www.china.org.cn/english/BAT/76637.htm
+http://www.china.org.cn/english/China/50142.htm
+http://www.china1900.info/ereignisse/nanjingvertrag.htm
+http://www.chinabusinessreview.com/public/0103/horsley.html
+http://www.chinabusinessreview.com/public/0103/keck.html
+http://www.chinabusinessreview.com/public/0409/cheng.html
+http://www.chinabusinessreview.com/public/9911/commentary.html
+http://www.chinacp.com/eng/cpcasestudies/casestudy5.html
+http://www.chinacp.com/eng/cptools/cpt_book00.htm
+http://www.chinadaily.com.cn/en/doc/2003-08/26/content_258459.htm
+http://www.chinadaily.com.cn/en/doc/2003-09/09/content_262342.htm
+http://www.chinadaily.com.cn/english/doc/2004-02/05/content_303348.htm
+http://www.chinadaily.com.cn/english/doc/2004-04/26/content_326365.htm
+http://www.chinadaily.com.cn/english/doc/2004-07/23/content_351109.htm
+http://www.chinadaily.com.cn/english/doc/2004-10/25/content_385293.htm
+http://www.chinadaily.com.cn/english/doc/2004-11/14/content_391332.htm
+http://www.chinadaily.com.cn/english/doc/2004-11/15/content_391483.htm
+http://www.chinadaily.com.cn/english/doc/2005-01/08/content_407138.htm
+http://www.chinadaily.com.cn/english/doc/2005-01/13/content_408478.htm
+http://www.chinadaily.com.cn/english/doc/2005-01/31/content_413729.htm
+http://www.chinadaily.com.cn/english/doc/2005-03/13/content_424372.htm
+http://www.chinadaily.com.cn/english/doc/2005-03/17/content_425973.htm
+http://www.chinadaily.com.cn/english/doc/2005-06/20/content_452774.htm
+http://www.chinaembassy.org.in/eng/zgbd/t165860.htm
+http://www.chinaexcite.com/tradeguide/culture-festival.htm
+http://www.chinafrominside.com/ma/xyxy/guoweihan.html
+http://www.chinainformed.com/Archive/x9710/971004.html
+http://www.chinaknowledge.de/Literature/radicals.html
+http://www.chinamyopia.org/healthnewsguyton.htm
+http://www.chinaonline.com/refer/ministry_profiles/SETCL3.asp
+http://www.chinareform.org/cgi-bin/ResearchPaper/ResearchPaper_main.asp?Ggwk_ID=51&Ggwk_Type=1
+http://www.chinaroad.org/motor.html
+http://www.chinatownsydney.com/social.cfm?id=55
+http://www.chinbin.com/chinfriends.html
+http://www.chincare.com/Activism/ACCKchangebychoice.htm
+http://www.chinese-embassy.org.uk/eng/xw/t182125.htm
+http://www.chinese-forums.com/viewtopic.php?p=30665
+http://www.chinese-forums.com/viewtopic.php?t=3980
+http://www.chinesecinemas.org/reelasian.html
+http://www.chinesetide.com/english/Online_Course/standard_chinese/Course/index.asp?course_id=2
+http://www.chineseupress.com/Chinese/tc1/Dr.luk/Dr.Luk.html
+http://www.chinfo.navy.mil/navpalib/cno/n87/usw/issue_21/subforce.htm
+http://www.chinfo.navy.mil/navpalib/policy/vision/vis99/v99-ch1b.html
+http://www.chinfo.navy.mil/navpalib/ships/carriers/histories/cv43-coralsea/cv43-coralsea.html
+http://www.chinmusicpress.com/
+http://www.chipr.sunysb.edu/sam85/SAM85Manual/Chapter3.htm
+http://www.chips.navy.mil/archives/03_spring/webpages/fargo.htm
+http://www.chipsquinn.org/skills/learning/learning.aspx?id=358
+http://www.chiptaylor.com/ht/srls0067.cfm
+http://www.chirk.com/stmary.html
+http://www.chiro.cc/chiro_testimony.shtml
+http://www.chirosmart.net/fourthjuly.txt
+http://www.chiroweb.com/archives/12/15/03.html
+http://www.chiroweb.com/archives/16/04/02.html
+http://www.chiroweb.com/archives/20/23/14.html
+http://www.chirpingbat.com/
+http://www.chirpingbat.com/index.shtml
+http://www.chistell.com/breast_cancer_health.htm
+http://www.chitraloka.com/sections/stock_shots/awards_stateaward01_02_nanditha.html
+http://www.chitterlings.com/affiliate.html
+http://www.chloeholt.co.uk/toc.html
+http://www.chmed.com/mod.php?mod=userpage&menu=1809&page_id=112
+http://www.chmed.com/mod.php?mod=userpage&menu=2005&page_id=167
+http://www.chnedu.net/20030829/02.htm
+http://www.chnedu.net/20030829/18.htm
+http://www.chnetwork.org/journals/sola/sola5.htm
+http://www.choate.edu/supportchoate/staffdirectory.asp
+http://www.chob.edu/art/index.asp
+http://www.chocolatefantasies.com/shipping.htm
+http://www.chocolatetradingco.com/special.asp?ID=3
+http://www.choice.com.au/goArticle.aspx?ID=104591&p=01
+http://www.choice.com.au/goArticle.aspx?id=101541&p=5
+http://www.choice.com.au/goArticle.aspx?id=103599&p=1
+http://www.choice.com.au/viewArticleAsOnePage.aspx?id=104585&p=1
+http://www.choiceclub.net/memberrules.asp
+http://www.choiceusa.org/editorial/article.php?type=voice
+http://www.choike.org/nuevo_eng/informes/1374.html
+http://www.choisser.com/faceblind/about.html
+http://www.choisser.com/faceblind/who.html
+http://www.chompchomp.com/terms/adjective.htm
+http://www.chomsky.info/books/warfare01.htm
+http://www.choosebooks.com/dealer_details.jsp?dealer_id=5217
+http://www.choosehope.com/support/
+http://www.chooseyourcharity.com/glossary5.htm
+http://www.choralmusic.com/church_christmas.htm
+http://www.chorltonfringe.com/newslog.html
+http://www.chotank.com/gindex.html
+http://www.chox.org.uk/abbey/item.asp?ID=24
+http://www.chox.org.uk/news/fullnews.asp?ID=51
+http://www.chpa.co.uk/
+http://www.chpi.org/history.htm
+http://www.chrc-ccdp.ca/adr/settlements/family-en.asp
+http://www.chrc-ccdp.ca/employment_equity/part1-en.asp
+http://www.chrc-ccdp.ca/legislation_policies/factum/page4-en.asp
+http://www.chrc-ccdp.ca/legislation_policies/preface-en.asp
+http://www.chrc-ccdp.ca/publications/1997_ar/page11-en.asp
+http://www.chrc-ccdp.ca/publications/screening_employment-en.asp
+http://www.chrc-ccdp.ca/publications/screening_employment-en.asp?pm=1
+http://www.chris-lambert.com/SALE/sale.html
+http://www.chris-longhurst.com/carbibles/additives.html
+http://www.chrisabraham.com/community/
+http://www.chriscmooney.com/archives.asp?start=7/5/2004&end=7/11/2004
+http://www.chriscmooney.com/blog.asp
+http://www.chriscorrigan.com/parkinglot/
+http://www.chrisdunmire.com/tidbits/archives/2005/may.shtml
+http://www.chrisjdavis.org/2005/05/14/cjd-rate-it/
+http://www.chrisjdavis.org/sandbox/
+http://www.chrisman.org/LyleChrisman/LyleBiography.htm
+http://www.chrisnolan.com/2003_10_08.html
+http://www.chrisnolan.com/2003_10_8.html
+http://www.chrisnolan.com/archives/000281.html
+http://www.chrisnolan.com/archives/000659.html
+http://www.christaresources.com/energy_attunements/
+http://www.christcenteredmall.com/teachings/kings/ahaz.htm
+http://www.christchurch-virginiawater.co.uk/sermons/genesis6.htm
+http://www.christendom-awake.org/pages/mshivana/logos.html
+http://www.christendom-awake.org/pages/tteague/law&ethics/law&ethics-1.htm
+http://www.christers.net/veeps/charles-fairbanks.html
+http://www.christian-aid.org.uk/indepth/0001biot/biotech.htm
+http://www.christian-aid.org.uk/indepth/0209puzz/debt.htm
+http://www.christian-bookshop.co.uk/free/r04/rev04n4.htm
+http://www.christian-teachers.org.uk/faq.html
+http://www.christian.org.uk/html-publications/gtc.htm
+http://www.christian.org.uk/html-publications/r18submission.htm
+http://www.christianaid.org.uk/indepth/0001biot/biotech.htm
+http://www.christianaid.org.uk/indepth/0003bios/biosafet.htm
+http://www.christianaid.org.uk/news/features/0209corp.htm
+http://www.christianaid.org.uk/seasia/
+http://www.christiananswers.net/godstory/prayer1.html
+http://www.christiananswers.net/q-abr/abr-a023.html
+http://www.christiananswers.net/q-eden/edn-thermodynamics.html
+http://www.christiananswers.net/spotlight/games/2004/doom3.html
+http://www.christiananswers.net/spotlight/movies/2005/sonofthemask2005.html
+http://www.christianbook.com/Christian/Books/cms_content/185665229?page=735685&sp=1052
+http://www.christianbook.com/Christian/Books/cms_content/186466271?page=386186&event=1010SBF
+http://www.christianbook.com/Christian/Books/cms_content/186466271?page=735685&sp=1052
+http://www.christianbook.com/Christian/Books/cms_content/187131446?page=735685&sp=1052
+http://www.christianbook.com/Christian/Books/cms_content/187556868?page=735685&sp=1052
+http://www.christianbook.com/Christian/Books/product/186466271?item_no=836916&event=1025SPF
+http://www.christianbookshops.org.uk/shopname_b.htm
+http://www.christiancourier.com/penpoints/noDesignerArgument.htm
+http://www.christiancrafters.com/sermon_Godscall.html
+http://www.christiancrafters.com/skits.html
+http://www.christianemployment.com/resources/articles.asp?ID=64
+http://www.christianethicstoday.com/Issue/019/Truth-Telling%20-%20An%20Exercise%20In%20Practical%20Morality%20By%20Charles%20Wellborn_019_13_.htm
+http://www.christiangays.com/marriage.shtml
+http://www.christiangoth.com/cutting.html
+http://www.christianity.ca/education/homeschooling/2005/02.000.html
+http://www.christianity.co.nz/born1.htm
+http://www.christianity.co.nz/forgive5.htm
+http://www.christianity.com/CC/article/0,,PTID4211%7CCHID617574%7CCIID1873486,00.html
+http://www.christianity.com/CC/article/0,,PTID42281%7CCHID147904%7CCIID306440,00.html
+http://www.christianity.com/partner/Article_Display_Page/0,,PTID5339%7CCHID14%7CCIID1875788,00.html
+http://www.christianitytoday.com/bc/2005/001/3.8.html
+http://www.christianitytoday.com/biblestudies/areas/biblestudies/articles/040818.html
+http://www.christianitytoday.com/books/web/2001/jan17a.html
+http://www.christianitytoday.com/ch/2003/002/10.32.html
+http://www.christianitytoday.com/cl/2000/002/6.36.html
+http://www.christianitytoday.com/cl/7c6/7c6026.html
+http://www.christianitytoday.com/cpt/2001/002/15.18.html
+http://www.christianitytoday.com/ct/2001/009/15.22.html
+http://www.christianitytoday.com/ct/2001/110/55.0.html
+http://www.christianitytoday.com/ct/2001/140/23.0.html
+http://www.christianitytoday.com/ct/2001/151/31.0.html
+http://www.christianitytoday.com/ct/2002/006/1.38.html
+http://www.christianitytoday.com/ct/2002/125/23.0.html
+http://www.christianitytoday.com/ct/2003/127/46.0.html
+http://www.christianitytoday.com/ct/2003/138/23.0.html
+http://www.christianitytoday.com/ct/2003/139/31.0.html
+http://www.christianitytoday.com/ct/2004/001/30.35.html
+http://www.christianitytoday.com/ct/2004/001/4.52.html
+http://www.christianitytoday.com/ct/2004/118/22.0.html
+http://www.christianitytoday.com/ct/2004/136/41.0.html
+http://www.christianitytoday.com/ct/2005/002/11.66.html
+http://www.christianitytoday.com/ct/2005/101/31.0.html
+http://www.christianitytoday.com/ct/2005/104/53.0.html
+http://www.christianitytoday.com/ct/2005/112/48.0.html
+http://www.christianitytoday.com/ctmag/special/samesexmarriage.html
+http://www.christianitytoday.com/history/newsletter/2003/jul18.html
+http://www.christianitytoday.com/history/newsletter/2005/feb4.html
+http://www.christianitytoday.com/music/artists/jonah33.html
+http://www.christianitytoday.com/music/artists/robertrandolph.html
+http://www.christianitytoday.com/smallgroups/articles/giveservantsheart.html
+http://www.christianitytoday.com/smallgroups/articles/makingrealfriends.html
+http://www.christianitytoday.com/tcw/2000/004/10.37.html
+http://www.christianitytoday.com/tcw/2002/003/15.29.html
+http://www.christianitytoday.com/tcw/8w3/8w3060.html
+http://www.christianitytoday.com/tcw/8w6/8w6037.html
+http://www.christianlaw.org/courtroom.html
+http://www.christianlegalfellowship.org/Conference/Conference%202001/conference2001.html
+http://www.christianmartialartist.com/boborlando.html
+http://www.christianmusicplanet.com/magazine/viewarticle.asp?id=45
+http://www.christianpost.com/article/ministries/95/full/pastor.for.the.armed.forces/1.htm
+http://www.christianpost.com/dbase/education/46/full/1.htm
+http://www.christiansciencemonitor.com/2001/1217/p1s1-wosc.htm
+http://www.christiansciencemonitor.com/2004/0114/p01s01-uspo.html
+http://www.christianwolmar.co.uk/articles/pslg/feb,03.shtml
+http://www.christie.nhs.uk/patientinfo/booklets/TextBooklets/sexandcancer/sexandcancer.htm
+http://www.christinecolumbus.com/airsecurity.asp
+http://www.christinecolumbus.com/products.asp?pID=435
+http://www.christinefeehan.com/dark_melody/
+http://www.christinespeaks.com/reelingcusts.htm
+http://www.christkitchen.org/newsletters/mar_2004.html
+http://www.christmas-time.com/ct-poetry.htm
+http://www.christmascountry.com/treefarm.html
+http://www.christmasinegypt.com/Info-Center/Transportation.asp
+http://www.christmasmountainvillage.com/townhome.html
+http://www.christmasspiritshop.com/product.taf?id=AR-1000
+http://www.christmastrees.org/archived_articles/articles1.htm
+http://www.christojeanneclaude.net/errors.html
+http://www.christopher-gordon.com/Authors/jalongo.shtml
+http://www.christophernolan.net/interviews_qa.php
+http://www.christopherradko.com/html/history.html
+http://www.christopherradko.com/html/press-room-history.html
+http://www.christs.cam.ac.uk/catalog/careers/career_options.html
+http://www.christusrex.org/www1/ofm/mad/discussion/023discuss.html
+http://www.chriswoods.com/archives/2004/10/chicago_radio_s_5.html
+http://www.chrlitworld.com/BookSGP/MKJVExplain.htm
+http://www.chromaenergy.com/ourtechnology_glossary.asp
+http://www.chron.com/class/jobs/recruitment_solutions.html
+http://www.chron.com/content/interactive/space/archives/87/871004.html
+http://www.chron.com/content/interactive/space/missions/sts-092/stories/20000811.html
+http://www.chron.com/content/interactive/special/school/safety.2-1.html
+http://www.chron.com/content/interactive/voyager/sail/mindi/97/08/bg.html
+http://www.chron.com/cs/CDA/ssistory.mpl/ae/books/reviews/1861982
+http://www.chron.com/cs/CDA/ssistory.mpl/ae/books/reviews/2252338
+http://www.chron.com/cs/CDA/ssistory.mpl/ae/books/reviews/2696310
+http://www.chron.com/cs/CDA/ssistory.mpl/ae/books/reviews/2871511
+http://www.chron.com/cs/CDA/ssistory.mpl/business/buggs/3015581
+http://www.chron.com/cs/CDA/ssistory.mpl/business/energy/3015977
+http://www.chron.com/cs/CDA/ssistory.mpl/business/lipman/2208856
+http://www.chron.com/cs/CDA/ssistory.mpl/business/steffy/2729591
+http://www.chron.com/cs/CDA/ssistory.mpl/business/steffy/2808535
+http://www.chron.com/cs/CDA/ssistory.mpl/ec/demconv/2705261
+http://www.chron.com/cs/CDA/ssistory.mpl/editorial/hines/2757371
+http://www.chron.com/cs/CDA/ssistory.mpl/front/3027332
+http://www.chron.com/cs/CDA/ssistory.mpl/metropolitan/3022702
+http://www.chron.com/cs/CDA/ssistory.mpl/outdoors/doggett/2397507
+http://www.chron.com/cs/CDA/ssistory.mpl/outdoors/doggett/2566611
+http://www.chron.com/cs/CDA/ssistory.mpl/politics/2705261
+http://www.chron.com/cs/CDA/ssistory.mpl/prn/texas/3008157
+http://www.chron.com/cs/CDA/ssistory.mpl/sports/justice/extra/2983644
+http://www.chron.com/cs/CDA/story.hts/texas/1451645
+http://www.chronicillnet.org/online/Fisher.html
+http://www.chronicle-independent.com/
+http://www.chronicprostatitis.com/nerves.html
+http://www.chronwatch.com/content/contentDisplay.asp?aid=11114
+http://www.chronwatch.com/content/contentDisplay.asp?aid=11114&catcode=13
+http://www.chronwatch.com/content/contentDisplay.asp?aid=9669
+http://www.chrr.ohio-state.edu/closed_cases/glossary_cc.html
+http://www.chs.harvard.edu/classicsat/issue_2/due-ebbott_2004_all.html
+http://www.chs.med.ed.ac.uk/phs/advisory/advisory.php
+http://www.chsbs.cmich.edu/Desheng_Zong/Zong's%20teaching%20folder/PHL%20118%20at%209%20am.htm
+http://www.chsd.org/1251.cfm
+http://www.chsd.org/166.cfm
+http://www.chsd.org/body.cfm?id=1495
+http://www.chsrf.ca/final_research/ogc/lavis_e.php
+http://www.chsrf.ca/final_research/ogc/roos_e.php
+http://www.chsrf.ca/final_research/ogc/roos_e.php?mode=print&
+http://www.chsrf.ca/final_research/ogc/tomblin_e.php
+http://www.chsrf.ca/final_research/ogc/tomblin_e.php?mode=print&
+http://www.chsrf.ca/other_documents/listening/immedissues_e.php
+http://www.chss.montclair.edu/english/furr/glaspie.html
+http://www.chss.montclair.edu/english/furr/pol/wtc/leibovitz091101.html
+http://www.chss.montclair.edu/english/furr/politics.html
+http://www.chss.montclair.edu/~landwebj/wpp/QEI.htm
+http://www.chtu.org/795Memories.html
+http://www.chubb.com/news/pr20050111.html
+http://www.chuckherrin.com/hackthevotedemo.htm
+http://www.chud.com/fetal/stages.php3
+http://www.chuggnutt.com/
+http://www.chuhak.com/articles/new_proposed_HIPAA_privacy_rules.htm
+http://www.chulavistaca.gov/City_Services/Community_Services/Recreation/RecreationFacilities/parkway.asp
+http://www.chulavistaca.gov/City_Services/Community_Services/Recreation/RecreationFacilities/youth.asp
+http://www.chuliege.be/plancos/english.html
+http://www.chumba.com/_rebelstext.htm
+http://www.chumlimited.com/press/releasetelevision.asp?stationID=28&pressID=1095
+http://www.chumlimited.com/radio/community.asp
+http://www.chumworth.com/december2000.html
+http://www.chuonthis.com/extensions/
+http://www.churchalive.ca/tdo/tdosept98.html
+http://www.churcharmy.org.uk/five_areas_focus/homeless_people/homeless.htm
+http://www.churchbusiness.com/articles/0a1webx3.html
+http://www.churchbusiness.com/articles/111feat4.html
+http://www.churchbusiness.com/articles/121cover.html
+http://www.churchbusiness.com/articles/121webx1.html
+http://www.churchbusiness.com/articles/151webx1.html
+http://www.churchbusiness.com/articles/171webx1.html
+http://www.churchbusiness.com/articles/451feat5.html
+http://www.churchbusiness.com/articles/4c1news.html
+http://www.churchcommunitybuilder.com/knowledge_press_version_7.php
+http://www.churchexecutive.com/2004/09/Capitalize_on_lay_support_to_reach_campaign_goals.asp
+http://www.churchfundingcounsel.com/newsletter2.htm
+http://www.churchill-society-london.org.uk/NmnLbrct.html
+http://www.churchillbooks.com/flatfile.shtml
+http://www.churchinwales.org.uk/gb/apr2004/rb%20review/2_agenda.html
+http://www.churchofcraft.org/doors/new%20york/nyed-sum2005.html
+http://www.churchofcriticalthinking.com/archives/000114issues_with_a_capita.html
+http://www.churchofdeepecology.org/action.htm
+http://www.churchofeuthanasia.org/coefaq.html
+http://www.churchofeuthanasia.org/e-sermons/heavgate.html
+http://www.churchofeuthanasia.org/press/noise_einstein.html
+http://www.churchofeuthanasia.org/snuffit4/askchris.html
+http://www.churchofeuthanasia.org/snuffit4/editor.html
+http://www.churchofgoddfw.com/children/4_garden.html
+http://www.churchofgoddfw.com/children/4_garden.shtml
+http://www.churchofgodonline.com/concerning-women-in-the-ministry.htm
+http://www.churchofscotland.org.uk/discussion/discussion0204a.htm
+http://www.churchofscotland.org.uk/together/togetherupdate.htm
+http://www.churchofscotland.org.uk/webcast/webcastfeedback.htm
+http://www.churchofthemasses.blogspot.com/
+http://www.churchstaffing.com/html/miscellaneous/background_checks.shtml
+http://www.churchworldservice.org/FactsHaveFaces/childwrk.html
+http://www.churchworldservice.org/annualreport2003/letter.html
+http://www.churchworldservice.org/planned_giving.html
+http://www.chw.edu.au/research/sleep_study/overview.htm
+http://www.ci-ce-ct.com/Feature%20articles/11-11-2003.asp
+http://www.ci.albany.or.us/council/citymanager/briefs.php
+http://www.ci.american-canyon.ca.us/Key_links/City_Information/economic_profile.html
+http://www.ci.arlington.tx.us/publicworks/faq_drainage_concern.html
+http://www.ci.auburn.ne.us/attract.htm
+http://www.ci.austin.tx.us/benefits/
+http://www.ci.austin.tx.us/channel6/
+http://www.ci.austin.tx.us/council/ds_11_11_00.htm
+http://www.ci.austin.tx.us/council/ds_11_14_00.htm
+http://www.ci.austin.tx.us/fire/employment.htm
+http://www.ci.austin.tx.us/library/news/nr20050418.htm
+http://www.ci.bend.or.us/cityservices/publicworks/Water_supply.htm
+http://www.ci.berkeley.ca.us/commissions/aging/2003aging/minutes/031903M11.htm
+http://www.ci.berkeley.ca.us/energy/Powerplay%20articles/1PowerplayFacts%20of%20Light.html
+http://www.ci.berkeley.ca.us/prc/ordinance4644.htm
+http://www.ci.berkeley.ca.us/psc/valuation.html
+http://www.ci.berkeley.ca.us/rent/OrdRegs/gcause/Ordinance.html
+http://www.ci.berkeley.ca.us/rent/meetings&events/newslet.html
+http://www.ci.boulder.co.us/openspace/nature/weeds.htm
+http://www.ci.carrboro.nc.us/TC/advisoryboards.htm
+http://www.ci.champaign.il.us/public_works/pwsspl.php
+http://www.ci.citrus-heights.ca.us/home/index.asp?page=1009
+http://www.ci.citrus-heights.ca.us/home/index.asp?page=716
+http://www.ci.concord.nh.us/codeadmin/minutes/ZoningMinutes10-03.asp
+http://www.ci.durham.nc.us/departments/onecall/faq.cfm
+http://www.ci.edmonds.wa.us/current_jobs/041213_emt.htm
+http://www.ci.edmonds.wa.us/current_jobs/041213_paramedic.htm
+http://www.ci.elmira.ny.us/police/child_safety_tips.html
+http://www.ci.fairfield.ca.us/1626.htm
+http://www.ci.fullerton.ca.us/comm_serv/commission/cscmin20040809.html
+http://www.ci.fullerton.ca.us/dev_serv/pc/pcmin001213.html
+http://www.ci.fullerton.ca.us/personnel/ed.html
+http://www.ci.gilbert.az.us/pw/hhw.cfm
+http://www.ci.greeley.co.us/2n/PageNewsDetails.asp?fkOrgID=12&pkNewsDetailsID=698
+http://www.ci.greensboro.nc.us/bad/tax_information.htm
+http://www.ci.howells.ne.us/econ.htm
+http://www.ci.indian-hill.oh.us/planning/septemberplan00.html
+http://www.ci.lakewood.wa.us/index.php?option=com_content&task=view&id=70&Itemid=116
+http://www.ci.larchmont.ny.us/history/streetnames.html
+http://www.ci.leicester.ma.us/calendar/thanks.htm
+http://www.ci.logan.ut.us/commdev/Building/Residential%20Plan%20Checklist.htm
+http://www.ci.malibu.ca.us/download/index.cfm?fuseaction=download&cid=5088
+http://www.ci.manhattan.ks.us/view/faq.asp?id=Finance%20Dept/Utility%20Billing/FAQs
+http://www.ci.marina.ca.us/codehtml/Mrna05/05-20.htm
+http://www.ci.mashpee.ma.us/pages/mashpeema_selectmin/0047E972-000F8513
+http://www.ci.merrimack.nh.us/swedu/ProposedArticle.htm
+http://www.ci.minneapolis.mn.us/about/maps/public-maps-pip.asp
+http://www.ci.mtnview.ca.us/citydepts/cs/rec/yag.htm
+http://www.ci.mtnview.ca.us/citydepts/pw/swp/faq.htm
+http://www.ci.mtnview.ca.us/citygov/council/agendas/cca032205.htm
+http://www.ci.mtnview.ca.us/citygov/council/minutes/rva101403.htm
+http://www.ci.nyc.ny.us/html/dep/html/history.html
+http://www.ci.nyc.ny.us/html/dep/html/news/tokyo.html
+http://www.ci.nyc.ny.us/html/doh/html/public/press05/pr004-05.html
+http://www.ci.pasadena.ca.us/fire/history.asp
+http://www.ci.pasadena.ca.us/trans/parking/pkng_rates.asp
+http://www.ci.phoenix.az.us/FIRE/highrise.html
+http://www.ci.pinetop-lakeside.az.us/pzfaq.shtml
+http://www.ci.pleasanton.ca.us/archive/ccminutes980305.html
+http://www.ci.poquoson.va.us/phone.html
+http://www.ci.poquoson.va.us/solid.htm
+http://www.ci.richmond.ca.us/~hrweb/descriptions/html/Workers_Comp_Exam_08.htm
+http://www.ci.richmond.va.us/visitor/cdxxi_comindex.asp
+http://www.ci.royal-oak.mi.us/clerk/urichsca.html
+http://www.ci.salina.ks.us/HRelations/EqualOpp.htm
+http://www.ci.saline.mi.us/features/econ_dev_link
+http://www.ci.santa-cruz.ca.us/fd/fdhis.html
+http://www.ci.seattle.wa.us/light/conserve/sustainability/
+http://www.ci.seattle.wa.us/neighborhoods/ppatch/start.htm
+http://www.ci.seattle.wa.us/parks/centers/BitterLake/activity.htm
+http://www.ci.sf.ca.us/site/recpark_page.asp?id=20276
+http://www.ci.southside-place.tx.us/index.cfm/MenuItemID/109.htm
+http://www.ci.st-charles.il.us/news/legals.htm
+http://www.ci.superior.wi.us/publicwks/streetdiv.htm
+http://www.ci.tumwater.wa.us/Departments/Parks/Winter%202004/Youth%20Enrichment%20Winter%202004.htm
+http://www.ci.wilmington.nc.us/manager/pio.htm
+http://www.ci.windsor.wi.us/110404boardminutes.htm
+http://www.cia-g.com/~gismc/f1hf.htm
+http://www.cia-g.com/~gismc/f2hf.htm
+http://www.cia-g.com/~gismc/f3hf.htm
+http://www.cia-g.com/~gismc/f4hf.htm
+http://www.cia-g.com/~gismc/f5hf.htm
+http://www.cia-g.com/~gismc/f6hf.htm
+http://www.cia-g.com/~gismc/f7hf.htm
+http://www.cia.gov/cia/public_affairs/speeches/1996/dci_speech_072596.html
+http://www.cia.gov/cia/public_affairs/speeches/1999/nceita_keynote_speech.html
+http://www.cia.gov/cia/public_affairs/speeches/2004/Goss_testimony_02162005.html
+http://www.cia.gov/cia/public_affairs/speeches/2004/dci_speech_07082004.html
+http://www.cia.gov/cia/publications/chiefs/
+http://www.cia.gov/cia/publications/factbook/print/jm.html
+http://www.cia.gov/cia/reports/chile/
+http://www.cia.gov/csi/studies/95unclass/100Days.html
+http://www.cia.gov/csi/studies/97unclass/failure.html
+http://www.cia.gov/employment/student.html
+http://www.ciagents.com/content/view/38/41/
+http://www.ciao.co.uk/Tiscali__5170768/TabId/2
+http://www.ciao.co.uk/studentcomp_co_uk__Review_5413839
+http://www.ciaonet.org/isa/wrs01/
+http://www.ciaonet.org/olj/sa/sa_june01pas02.html
+http://www.ciaonet.org/olj/wt/wt_98howard.html
+http://www.ciaonet.org/wps/bir01/
+http://www.ciaonet.org/wps/bom01/
+http://www.ciaonet.org/wps/str13/
+http://www.ciaonet.org/wps/wak02/
+http://www.cias.wisc.edu/wicst/research/covcrop.htm
+http://www.cibi.org.uk/progress.asp
+http://www.cic.gc.ca/english/pub/study.html
+http://www.cic.gc.ca/english/study/change-renew.html
+http://www.cic.org/projects_services/epe/greensboro.asp
+http://www.cica.org.uk/integration-web/it-integration-conclusions-v3.htm
+http://www.cicero.uio.no/humsec/
+http://www.cicerofoundation.org/lectures/bertozzi_nov02.html
+http://www.cichw.net/pmswvdv2.html
+http://www.cichw.net/pmvw.html
+http://www.cid.bg/en/left/genoverview.htm
+http://www.cid.harvard.edu/cidwp/002.htm
+http://www.cidajamaica.org.jm/cidaproj2.htm
+http://www.cidb.ie/live.nsf/0/27d6bdcc6629698580256dc9004d5f34?OpenDocument
+http://www.cidcm.umd.edu/inscr/stfail/
+http://www.cidh.oas.org/countryrep/Uruguay78eng/chap.7.htm
+http://www.cie.ca/otherpro.htm
+http://www.ciec.org/
+http://www.cieca-drivinglicense.org/html/eng/Advanced/ENG_EXAMPLE_4_2.htm
+http://www.ciee.org/volunteer/terms_conditions.aspx
+http://www.cieh.org/about/policy/responses/illegal_meat_imports.htm
+http://www.ciel.org/Ifi/ifibs.html
+http://www.ciena.com/jp/news/news_619.htm
+http://www.ciena.com/news/news_619.htm
+http://www.ciera.org/library/archive/1999-01/art-online-99-01.html
+http://www.cietours.com/2005vacations/GoAsYouPleaseIreland2005.htm
+http://www.cieux.com/bm/fun.html
+http://www.cifunds.com/web/straighttalk/straight.jsp?lang=ENG&no=2
+http://www.cigaraficionado.com/Cigar/CA_Features/CA_Feature_Basic_Template/0,2344,570,00.html
+http://www.cihr-irsc.gc.ca/e/10968.html
+http://www.cihr-irsc.gc.ca/e/1384.html
+http://www.cihr-irsc.gc.ca/e/27819.html
+http://www.ciis.org.cn/item/2004-12-24/50698.html
+http://www.cilicia.com/armo10c-nyt19151008a.html
+http://www.cilip.org.uk/jobscareers/careeradvice/workingforyourself
+http://www.cilip.org.uk/professionalguidance/ethics
+http://www.cilip.org.uk/publications/updatemagazine/archive/archive2004/november/lorcan.htm
+http://www.cilt.org.uk/green_paper_response.htm
+http://www.cim.sfu.ca/pages/resources_collaborative.htm
+http://www.cimaworld.com/htdocs/targets.htm
+http://www.cimdata.com/PLM/cpdm.html
+http://www.cimetrix.com/launch.cfm?file_load=CIMPortalBeta.html
+http://www.cin.org/jp2/jp97jan1.html
+http://www.cin.org/users/james/ebooks/master/trent/tsacr-m.htm
+http://www.cin.org/users/james/files/lent.htm
+http://www.cincinnati.com/reds/peterose.html
+http://www.cincinnatichildrens.org/give/lb/archives/apr-03/bike.htm
+http://www.cincinnatichildrens.org/health/heart-encyclopedia/signs/chf.htm
+http://www.cincinnatichildrens.org/research/administration/ipvd/licensing/proprietary/eosinophilic-treatment.htm
+http://www.cincinnatiusa.org/faq.asp
+http://www.cincom.com/global/eng/careers/colleagues.html
+http://www.cincypost.com/2004/03/31/pobook033104.html
+http://www.cincypost.com/news/1997/chase061697.html
+http://www.cinderellaaupairs.co.uk/family.htm
+http://www.cindyrushton.com/cgi-bin/cutecast/cutecast.pl?session=BafNA1cVEmHWI8cZa6vAbnccam&forum=16&thread=564&page=
+http://www.cindyseyeofthemoon.com/shop/default.asp?ID=27
+http://www.cinefex.com/weeklyupdate/mailings/17_05112004/web.html
+http://www.cineform.com/customer/ArialFoundation/ArialFoundation.htm
+http://www.cinema-crazed.com/mansquito.htm
+http://www.cinema.com/films/4814/broken_hearts_club/production_notes.phtml
+http://www.cinemablend.com/review.php?id=535
+http://www.cinemainfocus.com/Waterworld_2.htm
+http://www.cineman.co.uk/absolute.html
+http://www.cineman.co.uk/role.html
+http://www.cineman.co.uk/super35.html
+http://www.cinemarati.org/features/awards2001.shtml
+http://www.cinemareview.com/production.asp?prodid=2982
+http://www.cinemascreen.co.uk/filmdata/filmdata.asp?filmid=6561
+http://www.cinemasense.com/Reviews/BeautifulMind.htm
+http://www.cinematography.com/forum2004/lofiversion/index.php?t1121.html
+http://www.cinematography.net/Pages%20DW/OnSetColourCorrection.htm
+http://www.cinemaweb.com/silentfilm/bookshelf/32_inv_6.htm
+http://www.cinemaweb.com/silentfilm/bookshelf/32_inv_9.htm
+http://www.cinemusic.net/reviews/2003/from_beyond.html
+http://www.cinemusic.net/reviews/2004/final_cut.html
+http://www.cinemusic.net/reviews/2004/fog_of_war.html
+http://www.cinenikki.com/Pages/DVD/BrassEyeRegion2/
+http://www.cinenikki.com/Pages/DVD/MADEandSwingersTheMoneyCollection/
+http://www.cinepad.com/vatican.htm
+http://www.cinephilia.net.au/show_links.php?category=Australian
+http://www.cinescene.com/Nat/chimney.html
+http://www.cintel.co.kr/eng/prodt/pack/prodt_pack_ica_03.asp
+http://www.cintelliq.com/res_photo.htm
+http://www.cio-dpi.gc.ca/emf-cag/ppto-gtpss/projplantemplate/ppt-mpp00_e.asp
+http://www.cio-dpi.gc.ca/im-gi/mwg-gtm/typ-typ/docs/2003/schem/schem_e.asp
+http://www.cio.com.au/index.php/id;1473509389;fp;4;fpid;7
+http://www.cio.com.au/index.php/id;200194937;fp;262144;fpid;1
+http://www.cio.com/
+http://www.cio.com/analyst/112801_ca.html
+http://www.cio.com/archive/010102/shop_content.html
+http://www.cio.com/archive/010199_know.html
+http://www.cio.com/archive/021502/security.html
+http://www.cio.com/archive/030100/chase.html
+http://www.cio.com/archive/030105/reality.html
+http://www.cio.com/archive/031504/analysts.html
+http://www.cio.com/archive/031505/leadership.html
+http://www.cio.com/archive/040101/remote.html
+http://www.cio.com/archive/040105/keynote_sidebar_one.html
+http://www.cio.com/archive/041504/excerpt.html
+http://www.cio.com/archive/050103/bad.html
+http://www.cio.com/archive/050103/bad.html?printversion=yes
+http://www.cio.com/archive/050103/portfolio.html
+http://www.cio.com/archive/051502/excerpt.html
+http://www.cio.com/archive/060101/fbi.html
+http://www.cio.com/archive/060104/project.html
+http://www.cio.com/archive/061504/infrastructure.html
+http://www.cio.com/archive/061504/infrastructure.html?printversion=yes
+http://www.cio.com/archive/061505/km.html
+http://www.cio.com/archive/061505/km.html?printversion=yes
+http://www.cio.com/archive/071502/value_financial.html
+http://www.cio.com/archive/090103/money.html
+http://www.cio.com/archive/100102/et_article.html
+http://www.cio.com/archive/101504/km.html
+http://www.cio.com/archive/101504/km.html?printversion=yes
+http://www.cio.com/archive/101504/school.html
+http://www.cio.com/archive/110104/risk.html?printversion=yes
+http://www.cio.com/archive/120102/budget.html?printversion=yes
+http://www.cio.com/archive/enterprise/051599_hs.html
+http://www.cio.com/archive/enterprise/101599_book.html
+http://www.cio.com/communications/edit/glossary.html?action=print
+http://www.cio.noaa.gov/hpcc/access/technews.htm
+http://www.ciobinternational.org/openArticle.asp?ArticleID=4531
+http://www.cioinsight.com/article2/0,1397,1458937,00.asp
+http://www.cioinsight.com/article2/0,1397,1459031,00.asp
+http://www.cioinsight.com/article2/0,1397,1570310,00.asp
+http://www.cioinsight.com/article2/0,1397,1822493,00.asp
+http://www.cioinsight.com/article2/0,1397,1826510,00.asp
+http://www.cioinsight.com/article2/0,1397,1828544,00.asp
+http://www.cioinsight.com/article2/0,1397,1828546,00.asp
+http://www.cios.org/getfile%5CPryluck_V5N195
+http://www.cipd.co.uk/annualconf-ex
+http://www.cipd.co.uk/cande/annconf2005.htm
+http://www.cipd.co.uk/helpingpeoplelearn/researchinpractice_3.asp
+http://www.cipd.co.uk/subjects/corpstrtgy/busiperfm/peoperfki.htm
+http://www.cipd.co.uk/subjects/corpstrtgy/busiperfm/peoperfki.htm?IsSrchRes=1
+http://www.cipd.co.uk/subjects/empbnfts/flexbens/flexiben.htm
+http://www.cipd.co.uk/subjects/hrpract/general/webepolicy.htm
+http://www.cipd.co.uk/subjects/maneco/ecolabmrkt/
+http://www.cipdd.org/cipdd/_a&s/a&s1998/septem~1.htm
+http://www.cipe.org/publications/fs/ert/e13/north-3.htm
+http://www.cipe.org/publications/fs/ert/e25/grahae25.htm
+http://www.cipfa.org.uk/publicfinance/features_details.cfm?News_id=24045
+http://www.cira.ca/en/cat_Registrar.html
+http://www.circinfo.com/methods/circ_methods.html
+http://www.circleofa.com/Q_and_A/denial.html
+http://www.circleofa.com/articles/personal_teacher.html
+http://www.circleofseeds.com/GardeningWithKids.html
+http://www.circlon-theory.com/HTML/earthfallsup.html
+http://www.circuitree.com/CDA/ArticleInformation/coverstory/BNPCoverStoryItem/0,2135,19600,00.html
+http://www.circularstrengthmag.com/27/sonnon6.html
+http://www.circus2iraq.org/updates.asp?page=56
+http://www.circuses.com/fact-george.asp
+http://www.circuses.com/ringling-complaint1.asp
+http://www.cirencester.co.uk/eat.asp
+http://www.ciri.org/resources/reading_room/articles/stock_exchanges/
+http://www.ciri.org/resources/reading_room/street/
+http://www.ciri.org/resources/reading_room/street/?sort_field=a.article_created_date&sort_dir=ASC
+http://www.ciriusonline.dk/Default.asp?id=3799&Printerfriendly=1
+http://www.ciriusonline.dk/default.asp?id=3799
+http://www.cirnetwork.org/education/pphh/index.cfm
+http://www.cirp.org/library/ethics/milos-macris/
+http://www.cirp.org/library/pain/
+http://www.cirp.org/library/psych/rhinehart1/
+http://www.cirt.org/public/pages/index.cfm?pageid=166
+http://www.cirtl.org/partial.htm
+http://www.cis-ieee.org/excomminutes.asp?mm=2004-02
+http://www.cis.org.au/IssueAnalysis/ia23/IA23.htm
+http://www.cis.org.au/IssueAnalysis/ia26/IA26.htm
+http://www.cis.org.au/IssueAnalysis/ia33/ia33.htm
+http://www.cis.org/articles/2002/back1302.html
+http://www.cis.org/articles/2002/back1402.html
+http://www.cis.org/articles/2002/back203.html
+http://www.cis.org/articles/2002/back902.html
+http://www.cis.org/articles/2004/marktestimony032404.html
+http://www.cis.org/articles/2004/petertestimony021304.html
+http://www.cis.temple.edu/~ingargio/cis587/readings/id3-c45.html
+http://www.cis.upenn.edu/~wjposer/RedetManual.html
+http://www.cis.yale.edu/ynhti/curriculum/units/1981/cthistory/81.ch.04.x.html
+http://www.cisatlantic.com/trimix/emaiken/Argon.htm
+http://www.cisco.com/en/US/about/ac123/iqmagazine/archives/q2_2004/features/wyntk.html
+http://www.cisco.com/en/US/netsol/ns339/ns395/ns360/ns365/networking_solutions_customer_profile09186a00801dfeaf.html
+http://www.cisco.com/en/US/netsol/ns339/ns395/ns360/ns372/networking_solutions_customer_profile09186a008014d400.html
+http://www.cisco.com/en/US/netsol/ns339/ns395/ns360/ns372/networking_solutions_customer_profile09186a00801dfeaf.html
+http://www.cisco.com/en/US/netsol/ns340/ns394/ns107/networking_solutions_customer_profile09186a008014d400.html
+http://www.cisco.com/en/US/netsol/ns340/ns394/ns165/ns45/ns14/net_value_proposition09186a00800b4363.html
+http://www.cisco.com/en/US/netsol/ns341/ns396/ns114/networking_solutions_audience_business_benefit0900aecd80119de9.html
+http://www.cisco.com/en/US/netsol/ns341/ns396/ns177/networking_solutions_white_paper0900aecd8013f65a.shtml
+http://www.cisco.com/en/US/netsol/ns341/ns396/ns223/networking_solutions_white_paper09186a00800a11a2.shtml
+http://www.cisco.com/en/US/netsol/ns341/ns396/ns223/ns227/networking_solutions_white_paper09186a00800a11a2.shtml
+http://www.cisco.com/en/US/netsol/ns470/networking_solutions_customer_profile0900aecd801bca40.html
+http://www.cisco.com/en/US/netsol/ns477/networking_solutions_white_paper0900aecd80162f66.shtml
+http://www.cisco.com/en/US/products/hw/gatecont/ps3869/products_configuration_guide_chapter09186a00801e737c.html
+http://www.cisco.com/en/US/products/hw/gatecont/ps3869/products_configuration_guide_chapter09186a00801e737e.html
+http://www.cisco.com/en/US/products/hw/gatecont/ps3869/products_configuration_guide_chapter09186a00801e737f.html
+http://www.cisco.com/en/US/products/hw/switches/ps1901/products_white_paper09186a0080088896.shtml
+http://www.cisco.com/en/US/products/hw/switches/ps1938/products_configuration_guide_chapter09186a00802daef9.html
+http://www.cisco.com/en/US/products/hw/switches/ps1938/products_configuration_guide_chapter09186a00802daefc.html
+http://www.cisco.com/en/US/products/hw/switches/ps1938/products_configuration_guide_chapter09186a00802daefd.html
+http://www.cisco.com/en/US/products/hw/switches/ps293/products_white_paper09186a0080088896.shtml
+http://www.cisco.com/en/US/products/hw/wireless/ps430/prod_business_case09186a0080155835.html
+http://www.cisco.com/en/US/products/hw/wireless/ps430/products_case_study09186a00801f96ee.shtml
+http://www.cisco.com/en/US/products/ps5888/prod_bulletin0900aecd800fd124.html
+http://www.cisco.com/en/US/products/sw/conntsw/ps491/products_case_study09186a00800a18ca.shtml
+http://www.cisco.com/en/US/products/sw/iosswrel/ps5207/products_configuration_guide_chapter09186a008020ecff.html
+http://www.cisco.com/en/US/products/sw/secursw/ps2086/products_case_study09186a008014d400.shtml
+http://www.cisco.com/univercd/cc/td/doc/cisintwk/ics/cs003.htm
+http://www.cisco.com/univercd/cc/td/doc/product/lan/c2900xl/29_35xu/scg/kiclust.htm
+http://www.cisco.com/warp/public/477/RMON/alarm_event.shtml
+http://www.ciscopress.com/articles/article.asp?p=29640&seqNum=2
+http://www.ciscopress.com/articles/article.asp?p=30686
+http://www.ciscopress.com/series/index.asp
+http://www.cise.ufl.edu/~apol/services/distributions.htm
+http://www.cisga.org/QA.html
+http://www.cistercianfamily.org/e-document10.asp
+http://www.cisv.ca/whatispeace.htm
+http://www.cit.cornell.edu/computer/history/Ostrom.html
+http://www.cit.cornell.edu/services/phones/digital.html
+http://www.cit.nih.gov/dnst/DNSTweb/voice_mail.html
+http://www.citb.co.uk/site_info/bookshop_terms.asp
+http://www.citejournal.org/vol1/iss2/currentpractice/article1.htm
+http://www.citejournal.org/vol1/iss2/seminal/article1.htm
+http://www.citiesthatwork.com/Present/TEA21pres/TEA21_position_FAPA.htm
+http://www.citistates.com/blogs/homepageblog/archives/000127.html
+http://www.citizen.org/cmep/energy_enviro_nuclear/nuclear_power_plants/reactor_safety/articles.cfm?ID=4446
+http://www.citizen.org/trade/issues/singapore/articles.cfm?ID=9671
+http://www.citizencorps.gov/ready/faq.shtm
+http://www.citizensadvice.org.uk/macnn/index/campaigns/social_policy/consultation_responses/cr_legalaffairs/cr_communications_bill
+http://www.citizensadvice.org.uk/macnn/index/campaigns/social_policy/parliamentary_briefings/pb_benefitsandtaxcredits/tax_credit_bill_-_exercise_of_right_of_appeal
+http://www.citizensadvice.org.uk/macnn/index/campaigns/social_policy/parliamentary_briefings/pb_legalaffairs/cr_anti-social_behaviour_bill
+http://www.citizensadvice.org.uk/macnn/index/pressoffice/press_index/press-040315.htm
+http://www.citizensagainstsellingtelstra.com/content/2/line-rental.html
+http://www.citizenschools.org/teachingfellows/fellowscircle-april2004.cfm
+http://www.citizenshipfoundation.org.uk/main/news.php?p96
+http://www.citizensleague.net/blogs/homepageblog/archives/2004_03.html
+http://www.citrix.com/site/PS/products/caseStudies.asp?familyID=19&productID=186
+http://www.city-data.com/city/Evening-Shade-Arkansas.html
+http://www.city-data.com/city/Evening-Shade-Oklahoma.html
+http://www.city-data.com/city/Kingston-Rhode-Island.html
+http://www.city-journal.org/article01.php?aid=1508
+http://www.city-journal.org/html/eon_8_19_03sm.html
+http://www.city-net.com/~amandel/portfolio/masters.html
+http://www.city-visitor.com/york/
+http://www.city.ac.uk/healthservice/student/finding.htm
+http://www.city.ac.uk/is_media/print/default_print_1_2769_2769.html
+http://www.city.ames.ia.us/parkrecweb/CommunityCtr.html
+http://www.city.davis.ca.us/pcs/rec/gymnastics/
+http://www.city.hamilton.on.ca/CITY-HALL/parking-and-enforcement/enforcement-operations/default.asp
+http://www.city.kenora.on.ca/city_of_kenora/planning_building/official_plan.html
+http://www.city.kingston.on.ca/
+http://www.city.langley.bc.ca/
+http://www.city.londonmet.ac.uk/deliberations/collab.learning/panitz2.html
+http://www.city.melville.sk.ca/recreation.html
+http://www.city.port-coquitlam.bc.ca/Dynamic/Page275.aspx
+http://www.city.port-coquitlam.bc.ca/Dynamic/Page425.aspx
+http://www.city.port-coquitlam.bc.ca/Dynamic/Page603.aspx
+http://www.city.port-coquitlam.bc.ca/Dynamic/Page605.aspx
+http://www.city.port-coquitlam.bc.ca/Dynamic/Page607.aspx
+http://www.city.port-coquitlam.bc.ca/Page1310.aspx
+http://www.city.toronto.on.ca/fire/prevention/christmas_tree.htm
+http://www.city.toronto.on.ca/publications/cracks.htm
+http://www.city.vancouver.bc.ca/commsvcs/cityplans/transportation/insightintotransportation.htm
+http://www.city.vancouver.bc.ca/commsvcs/planning/udp/2005/minutes/apr13.htm
+http://www.city.vancouver.bc.ca/commsvcs/planning/udp/2005/minutes/apr27.htm
+http://www.city.vancouver.bc.ca/ctyclerk/cclerk/960730/ag960730.htm
+http://www.city.victoria.bc.ca/cityhall/currentprojects_dockside_qna2.shtml
+http://www.city.waltham.ma.us/emweb/trucks.html
+http://www.city.west-lafayette.in.us/government/minutes/cc050602.htm
+http://www.citybeat.com/2002-06-20/sports.shtml
+http://www.citybeat.com/2003-03-05/musicshorttakes.shtml
+http://www.citybeat.com/2004-12-22/cover5.shtml
+http://www.cityequities.com/penny_share_review.asp
+http://www.cityequities.com/penny_share_review.asp?issue=121
+http://www.cityequities.com/penny_share_review.asp?issue=172
+http://www.cityequities.com/penny_share_review.asp?issue=194
+http://www.cityequities.com/penny_share_review.asp?issue=220
+http://www.cityequities.com/penny_share_review.asp?issue=221
+http://www.cityequities.com/penny_share_review.asp?issue=251
+http://www.cityequities.com/penny_share_review.asp?issue=272
+http://www.cityequities.com/uk_company_information.html
+http://www.cityfarmer.org/
+http://www.cityfeet.com/Tools/Glossary/CommercialRealEstateGlossary.aspx
+http://www.cityfeet.com/tools/glossary.asp
+http://www.cityindex.co.uk/citymobile/home.aspx
+http://www.citylinks.org.uk/Default.aspx
+http://www.citymarket.coop/
+http://www.citymayors.com/
+http://www.citymayors.com/business/euro_bizcities.html
+http://www.citymayors.com/gratis/us_mayors.html
+http://www.citymayors.com/politics/uk_neref.html
+http://www.citymayors.com/sections/organisations_content.html
+http://www.citymayors.com/sport/olympics2012_votescast.html
+http://www.cityofalhambra.org/government/city_manager.html
+http://www.cityofbeaumont.com/hist.htm
+http://www.cityofboston.gov/bra/press/PressDisplay.asp?pressID=153
+http://www.cityofbuckley.com/
+http://www.cityofchino.org/
+http://www.cityofcordova.net/council%20minutes%2004/MIN%209-2-04%20PZ.htm
+http://www.cityofcumming.net/Departments/Fairgrounds/Fair/Heritage_Village/heritage_village.html
+http://www.cityofdunedin.com/city/?page=consult_taeirilb
+http://www.cityoffortwayne.org/metro2/courtdecisions.htm
+http://www.cityofhancock.com/info-housing.html
+http://www.cityofhawarden.com/Gov/Min/04min/04-28-04.html
+http://www.cityofhope.org/BloodDonorCenter/bloodDon.htm
+http://www.cityofhope.org/ccc/db/cancer.asp?c=CDR0000062944
+http://www.cityofindustry.org/dex_14.html
+http://www.cityofkingston.ca/residents/recreation/events/november11.asp
+http://www.cityofmyrtlebeach.com/employ.html
+http://www.cityofoxford.org/Page.asp?NavID=699
+http://www.cityofparma-oh.gov/cityhall/service.htm
+http://www.cityofportaransas.org/employment.html
+http://www.cityofsancarlos.org/is/display/0,1124,deptid-20_isid-682,00.html
+http://www.cityofsancarlos.org/jobs/announcement_print/1,1147,deptid-15_jobid-15,00.html
+http://www.cityofseattle.net/commnty/histsea/preservationseattle/techniques/defaultaugust2.htm
+http://www.cityofseattle.net/light/conserve/sustainability/
+http://www.cityofseattle.net/parks/centers/BitterLake/activity.htm
+http://www.cityofseattle.net/tda/talkingpoints.htm
+http://www.cityofsedgwick.org/minutes.htm
+http://www.cityofsound.com/blog/2005/06/the_theft_of_be.html
+http://www.cityofsouthlake.com/recreation/Special%20Events/FallWinter/BooBooBuddies/what's%20a%20dog%20park.htm
+http://www.cityofstandrews.co.uk/link.asp?TOPIC_ID=586&view=lasttopic
+http://www.cityofswan.com/altonepark/staff.asp
+http://www.cityofsydney.nsw.gov.au/catz_ditc_das_on_exhibition.asp
+http://www.cityofsydney.nsw.gov.au/catz_rs_road_safety_strategy.asp
+http://www.cityofyork.com/econfact/company.htm
+http://www.cityofyork.com/tourinfo/faq.htm
+http://www.citypages.com/databank/19/907/article4801.asp
+http://www.citypages.com/databank/25/1240/article12443.asp
+http://www.citypages.com/databank/25/1253/article12756.asp
+http://www.citypages.com/databank/26/1264/article12985.asp
+http://www.citypages.com/databank/26/1280/article13405.asp
+http://www.citypages.com/databank/26/1280/article13407.asp
+http://www.citypages.com/detail.asp?ArticleID=10848
+http://www.citypages.com/detail.asp?ArticleID=11845
+http://www.citypages.com/detail.asp?ArticleID=12459
+http://www.citypages.com/detail.asp?ArticleID=4801
+http://www.citypaper.com/news/story.asp?id=10101
+http://www.citypaper.com/special/story.asp?id=9453
+http://www.citypaper.net/articles/101801/news.godfrey.shtml
+http://www.citypaper.net/articles/121699/news.cb.blue.shtml
+http://www.citysoftware.com.au/Privacy.asp
+http://www.citytech.cuny.edu/academics/continuinged/
+http://www.cityu.edu.hk/HKMetS/acid_guide.htm
+http://www.cityu.edu.hk/cityu/course/deptcurr/eecurr/ee6412.htm
+http://www.cityweekend.com.cn/en/features/2003_08/Profile_LiuHong
+http://www.citywindsor.ca/000881.asp
+http://www.citywire.co.uk/News/NewsArticle.aspx?VersionID=70287
+http://www.citywire.co.uk/News/NewsArticle.aspx?VersionID=70287&MenuKey=News
+http://www.cityyear.org/alumni/enews/feb-2004/events.htm
+http://www.cityzones.co.uk/albertroad.html
+http://www.civc.ca/about/security.asp
+http://www.civeng.unsw.edu.au/about/IAC/Env/
+http://www.civicgardencentre.org/aboutcgc.htm
+http://www.civicheraldry.co.uk/leics.html
+http://www.civics-online.org/library/formatted/texts/house_divided.html
+http://www.civictrust.org.uk/evening/events.shtml
+http://www.civil-war.net/pages/georgia_declaration.asp
+http://www.civil.canterbury.ac.nz/staff/cfleischmann.asp
+http://www.civil.canterbury.ac.nz/staff/pmoss.asp
+http://www.civildefence.govt.nz/memwebsite.nsf/wpg_URL/For-the-CDEM-Sector-Emergency-Update-Waiho-River?OpenDocument&menuexpand=forthecdemsector&topicexpand=forthecdemsectoremergencyupdate
+http://www.civilization.ca/archeo/hnpc/npvol30e.html
+http://www.civilization.ca/media/docs/fsddd01e.html
+http://www.civilrights.org/research_center/civilrights101/desegregation.html
+http://www.civilrightsteaching.org/assemblyspotlight.htm
+http://www.civilservice.gov.uk/improving_services/delivery_and_reform/news/nsg_and_reform_progress.asp
+http://www.civilwarartillery.com/inventors/Parrott.htm
+http://www.civilwarhome.com/chattanoogasummary.htm
+http://www.civilwarhome.com/confedsignalcorps.htm
+http://www.civilwarhome.com/gordonwilderness1.htm
+http://www.civilwarhome.com/grantbio.htm
+http://www.civilwarhome.com/hoodnash.htm
+http://www.civilwarhome.com/shermangeorgia.htm
+http://www.civilwarhome.com/southernseccession.htm
+http://www.civilwarhome.com/unioncav.htm
+http://www.civilwarmedicine.aphillcsa.com/article.html
+http://www.civilwarweb.com/articles/04-99/medicine.htm
+http://www.civilweek.com/1863/feb0163.htm
+http://www.civitas.org.uk/pubs/NHSBriefingApr05.php
+http://www.ciwec-clinic.com/altitude/alti2.html
+http://www.ciwec-clinic.com/diar/
+http://www.ciwmb.ca.gov/MktGuides/Glass/
+http://www.ciwmb.ca.gov/Packaging/Design/TotalPkg.htm
+http://www.ciwmb.ca.gov/Rulemaking/DRSAdjMethod/
+http://www.cix.co.uk/~briksdal/escape/
+http://www.cix.co.uk/~jimh/weblog/2003_04_01_archive.html
+http://www.cj-hosting.com/?page=terms
+http://www.cjac.org/balance/bal3-97.html
+http://www.cjc-online.ca/viewarticle.php?id=73&layout=html
+http://www.cjcj.org/cpp/prisoners_toughen.html
+http://www.cjcj.org/pubs/florida/florida.html
+http://www.cjd.org/paper/people.html
+http://www.cjlf.org/briefs/hghtn3.htm
+http://www.cjlmilwaukee.org/Video/Video%20Catalog%201/Women%20Sections/WOMEN%20(A-H).htm
+http://www.cjlmilwaukee.org/Video/Video%20Catalog%201/World%20Jewry%20Sections/American%20Jewry%20(H-K).htm
+http://www.cjlmilwaukee.org/Video/Video%20Catalog%201/World%20Jewry%20Sections/Soviet%20Jewry.htm
+http://www.cjonline.com/decision2002/generalelection/grid.secretaryofstate.shtml
+http://www.cjonline.com/stories/052404/loc_citygovt.shtml
+http://www.cjr.org/issues/2003/5/lie-greenberg.asp
+http://www.cjr.org/issues/2004/4/felch-peru.asp
+http://www.cjr.org/issues/2004/6/letter-berkeley-siamdoust.asp
+http://www.cjr.org/issues/2004/6/mooney-science.asp
+http://www.cjr.org/issues/2005/1/goldman-caste.asp
+http://www.cjr.org/issues/2005/1/maharidge-hurt.asp
+http://www.cjr.org/issues/2005/1/pein-blog.asp
+http://www.cjr.org/issues/2005/3/hst.asp
+http://www.cjr.org/tools/lc/who.asp
+http://www.cjrdaily.org/archives/000924.asp
+http://www.cjrdaily.org/archives/001121.asp
+http://www.cjrdaily.org/archives/001566.asp
+http://www.cjvlang.com/Writing/writsys/writchin3.html
+http://www.ckbc.org/DonateBlood.jsp
+http://www.ckco.ca/weatherfacts.php
+http://www.cknow.com/cknewsletter/0303.htm
+http://www.cknow.com/vtutor/vtfalseauth.htm
+http://www.ckrumlov.cz/uk/region/histor/t_sport.htm
+http://www.ckrumlov.cz/uk/zamek/zahrada/t_oziven.htm
+http://www.cksales.com/shopdisplayproducts.asp?id=109&cat=Sit+%26+Be+Fit
+http://www.cl.cam.ac.uk/UoCCL/research_degrees/
+http://www.cl.cam.ac.uk/users/mn200/music/composers.html
+http://www.cl.cam.ac.uk/users/rja14/wtc.html
+http://www.cl.cam.ac.uk/~mgk25/ca-law/
+http://www.cl.cam.ac.uk/~rnc1/descrack/
+http://www.cla-net.org/resources/articles/minow_pirating.php
+http://www.cla.sc.edu/PSYC/psycugrad/ugindep.html
+http://www.clac.ca/information/labour_board_decisions/062701.asp
+http://www.clac.ca/publications/government_submissions/Time-For-Change.asp
+http://www.clac.ca/publications/government_submissions/submission-to-section-3-committee.asp
+http://www.clagnut.com/archive/design_thinking/
+http://www.clagnut.com/blog/168/
+http://www.claimsguides.com/
+http://www.clal.org/coc16.html
+http://www.clambake.org/archive/books/apobs/bs1-3.htm
+http://www.clambake.org/archive/books/isd/isd-2n.htm
+http://www.clamcity.com/june2001/pg15jesus.html
+http://www.clannada.org/docs/culture.html
+http://www.clanofthecats.com/fanfic/The%20Son%20of%20the%20Return__%20by%20John%20Beattie.htm
+http://www.clansofscotland.org/bloodandsnow.html
+http://www.clare.cam.ac.uk/admissions/interviews.html
+http://www.clare.cam.ac.uk/admissions/subjects/land-econ.html
+http://www.clarelibrary.ie/eolas/coclare/history/holiday_haunts/blackhead.htm
+http://www.claremont.org/
+http://www.claremont.org/weblog/
+http://www.claremont.org/weblog/2004_01.html
+http://www.claremont.org/writings/keyword-morality_natlaw.html
+http://www.clarifyingchristianity.com/creation.shtml
+http://www.clarinetstudio.com/artists/cipolla.htm
+http://www.clarityworks.biz/Resources/GoodStuff.htm
+http://www.clarkconnect.org/forums/showflat.php?Cat=&Board=backup&Number=59568&page=0&view=expanded&sb=5&o=&fpart=
+http://www.clarkconnect.org/forums/showflat.php?Cat=&Board=backup&Number=59691&page=0&view=expanded&sb=5&o=&fpart=
+http://www.clarke-energy.co.uk/clarke_group/vacancies.htm
+http://www.clarkson.edu/giving/annual_giving/
+http://www.clarku.edu/newsite/alumni/clarknews/fall01/summer.shtml
+http://www.clarku.edu/offices/dos/newstudents/parents/advice.shtml
+http://www.clarku.edu/offices/research/funding/undergrad.shtml
+http://www.clas.ufl.edu/CLAS/jur/0401/mcgradypaper.html
+http://www.clas.ufl.edu/users/gthursby/rel/gate/return.htm
+http://www.clas.ufl.edu/users/gthursby/socsci/ejournal.htm
+http://www.clas.ufl.edu/users/gthursby/taoism/suntext.htm
+http://www.clas.ufl.edu/users/gthursby/taoism/ttcmerel.htm
+http://www.clas.uiowa.edu/faculty/teaching/summer_winter_sessions.shtml
+http://www.classbrain.com/artteenst/publish/article_120.shtml
+http://www.classervices.com/dawnmooring.htm
+http://www.classervices.com/poppysmith.htm
+http://www.classervices.com/secrets.html
+http://www.classic.archined.nl/news/0111/westelijke_tuinsteden_amsterdam_eng.html
+http://www.classical.net/music/comp.lst/copland.html
+http://www.classical.net/music/comp.lst/works/stravinsky/fieryangel.html
+http://www.classicaldressage.co.uk/Sitting_Trot_Woes/sitting_trot_woes.html
+http://www.classicalfencing.com/articles/Palladini.shtml
+http://www.classicalhomeschooling.org/trivium.html
+http://www.classicallibrary.org/maupassant/ossv7/1.htm
+http://www.classicalpursuits.com/toplevel/testimonials.php
+http://www.classicalsource.com/db_control/db_features.php?id=2557
+http://www.classicalvalues.com/
+http://www.classicalvalues.com/archives/001450.html
+http://www.classicalvalues.com/archives/001968.html
+http://www.classicalvalues.com/archives/002454.html
+http://www.classicalvalues.com/archives/2004_03.html
+http://www.classiccarsofne.com/about.htm
+http://www.classiccinemas.com/
+http://www.classicgaming.com/
+http://www.classicgaming.com/doubledragon/ddvcastle.htm
+http://www.classicgaming.com/features/articles/computergaminghistory/index4-3.shtml
+http://www.classicglassstudio.com/contact/Testimonials.asp
+http://www.classicglastron.com/
+http://www.classicmovies.org/
+http://www.classicreader.com/read.php/sid./bookid.221/sec.33/
+http://www.classicreader.com/read.php/sid./bookid.2345/sec.10/
+http://www.classicreader.com/read.php/sid.6/bookid.2160/
+http://www.classicreader.com/read.php/sid.6/bookid.255/
+http://www.classicreader.com/read.php/sid.6/bookid.2953/
+http://www.classicreader.com/read.php/sid.6/bookid.3001/
+http://www.classics.cam.ac.uk/triennial/
+http://www.classicturning.com/contact.php
+http://www.classifiedpost.com/jsarticle.php?lcid=HK.EN&artid=3000007385&arttype=MOVE&artsection=CAREER&communitycode=
+http://www.classontheweb.com/samples/getsetgo/cbse/clas7/science/chap6a.htm
+http://www.classsizematters.org/
+http://www.classtraining.com.au/services/sbtrnfac.htm
+http://www.clausewitz.com/CWZHOME/On_War/Bk5ch12.html
+http://www.clausewitz.com/CWZHOME/On_War/Bk6ch23.html
+http://www.clausewitz.com/CWZHOME/Trinity/TrinityTeachingNote.htm
+http://www.clavius.org/perspshdw.html
+http://www.clay.net/conf.html
+http://www.claytoncramer.com/popularmagazines.htm
+http://www.clc.com.hk/link.html
+http://www.clchamber.com/programs.cfm
+http://www.cle.bc.ca/CLE/Contributors/Profiles/F/FISBA0.htm
+http://www.clean-credit.us/how.to.budget.your.spending.htm
+http://www.clean-funnies.com/html/f458.htm
+http://www.cleanair-coolplanet.org/information/seriouswind.php
+http://www.cleanair.com/About/FAQ/faq.html
+http://www.cleanair.org/CEH/CEHHazards.html
+http://www.cleanairchampions.ca/onetonnechallenge/default.asp?title=aboutotc
+http://www.cleanairtrust.org/
+http://www.cleanclothes.org/codes/fifa.htm
+http://www.cleanclothes.org/urgent/01-02-21-2.htm
+http://www.cleanedge.com/reports-trends2005.php
+http://www.cleanerproduction.com/misc/pubs/Nepalarticle.html
+http://www.cleanlink.com/cp/article.asp?id=1651
+http://www.cleansweepsupply.com/pages/skugroup30992.html
+http://www.cleansweepsupply.com/pages/skugroup30997.html
+http://www.cleansweepsupply.com/pages/skugroup30999.html
+http://www.clearanswers.co.uk/newsstory.aspx?NewsID=61
+http://www.clearanswers.co.uk/newsstory.aspx?NewsID=77
+http://www.cleardata.biz/articles/storedproc.aspx
+http://www.clearharmony.net/
+http://www.clearharmony.net/articles/200405/19529.html
+http://www.clearharmony.net/articles/200406/20329.html
+http://www.clearharmony.net/articles/200409/21965.html
+http://www.clearharmony.net/articles/200411/22916.html
+http://www.clearharmony.net/articles/200505/26337.html
+http://www.clearharmony.net/articles/200505/26337p.html
+http://www.clearpassage.com/contactus2.htm
+http://www.clearpathinternational.org/casestudies/archives/000267.php
+http://www.cleartest.com/testinfo/woody_harrelson.html
+http://www.cleftadvocate.org/cleftteams.html
+http://www.cleftline.org/publications/choosingTeam.htm
+http://www.clementsonresort.com/spring04.html
+http://www.clemmer.net/books/tldpp_intro.shtml
+http://www.clemmer.net/excerpts/pf_whatweget.html
+http://www.clemmer.net/excerpts/whatwe_get.shtml
+http://www.clemmer.net/newsl/dec2003pf.html
+http://www.clemmer.net/newsl/jan2004pf.html
+http://www.clemmer.net/newsl/july2003.html
+http://www.clemmer.net/newsl/july2003pf.html
+http://www.clemmer.net/newsl/sept2003pf.html
+http://www.clemmonscourier.com/obits12.shtml
+http://www.cleoscholars.com/applying_to_law_school/finaid.htm
+http://www.cleovoulou.com/wcgames.htm
+http://www.clerk.co.hernando.fl.us/Other/AlternativeCourts.html
+http://www.cleveland.oh.us/wmv_news/jherr71.htm
+http://www.clevelandacupuncture.com/newpatient.html
+http://www.clevelandart.org/Kids/art/glass/
+http://www.clevelandbrowns.com/news_room/press/arts/3797.0.html
+http://www.clevelandcinemas.com/cedarlee/coming_attractions.asp
+http://www.clevelandclinic.org/cancer/trial/
+http://www.clevelandclinic.org/health/health-info/docs/0300/0359.asp?index=4485
+http://www.clevelandclinic.org/health/health-info/docs/3300/3313.asp?index=11311
+http://www.clevelandclinic.org/heartcenter/pub/history/future/intervention.asp?firstCat=56&secondCat=57&thirdCat=481
+http://www.clevelandclinicmeded.com/diseasemanagement/gastro/intrahepatic/intrahepatic.htm
+http://www.clevelandclinicmeded.com/diseasemanagement/psychiatry/depression/depression.htm
+http://www.clevelanddogparks.com/fido.html
+http://www.clevelandgrowth.com/Working_in_Cleveland/WLA/index.asp
+http://www.clevelandgrowth.com/market_data/Publications/quick_Q&A.asp
+http://www.clevelandonstage.com/interviews/lpinterview.htm
+http://www.clevelandonstage.com/michaelsinterview.htm
+http://www.cley.org.uk/walk_the_village_trail.htm
+http://www.clf.org/general/index.asp?id=457
+http://www.clf.org/programs/cases.asp?id=188
+http://www.cliapei.ca/69.html
+http://www.cliapei.ca/publications.html
+http://www.cliburn.org/blog/?p=60
+http://www.click4tickets.com/index.asp
+http://www.clickandtreat.com/Clicker_Training/GG/GG001/GG002/gg002.htm
+http://www.clickandtreat.com/ff02.htm
+http://www.clickertrain.com/articles/articleofmonth.shtml
+http://www.clickertraining.com/training/shelters/?loaditem=discussion_one
+http://www.clickertraining.com/training/shelters/?loaditem=discussion_one&print=1
+http://www.clickitjobs.com/facinginterview.htm
+http://www.clicknotes.com/hamlet/H12.html
+http://www.clicktime.com/support_news.asp
+http://www.clickx.com/saveonscents/importantfragranceinfo.html
+http://www.clickz.com/stats/sectors/finance/article.php/807451
+http://www.clientelplus.com/paging.htm
+http://www.cliffordbeers.org/getinvolved.htm
+http://www.cliffordstower.com/petition/
+http://www.cliffpearson.com/black_singles.htm
+http://www.cliffsnotes.com/WileyCDA/LitNote/id-124,pageNum-14.html
+http://www.cliffsnotes.com/WileyCDA/LitNote/id-161,pageNum-8.html
+http://www.cliffsnotes.com/WileyCDA/LitNote/id-22,pageNum-27.html
+http://www.cliffsnotes.com/WileyCDA/LitNote/id-29,pageNum-5.html
+http://www.cliffsnotes.com/WileyCDA/LitNote/id-29,pageNum-8.html
+http://www.cliffsnotes.com/WileyCDA/LitNote/id-39,pageNum-27.html
+http://www.cliffsnotes.com/WileyCDA/LitNote/id-39,pageNum-40.html
+http://www.cliffsnotes.com/WileyCDA/LitNote/id-91,pageNum-27.html
+http://www.cliftonunitarian.com/toddstalks/breakingthechains.htm
+http://www.cliftonunitarian.com/toddstalks/practicalmysticism.htm
+http://www.climate-standards.org/news/news_may2005_interest.html
+http://www.climate.org.ua/sectors/methane.html
+http://www.climate.org/aboutus/inaug_lecture.shtml
+http://www.climateark.org/articles/2001/3rd/caurpowe.htm
+http://www.climateark.org/articles/reader.asp?linkid=26601
+http://www.climateark.org/articles/reader.asp?linkid=33464
+http://www.climateark.org/articles/reader.asp?linkid=34322
+http://www.climatechange.gc.ca/english/publications/team_p3plan/phase3_a_a.asp
+http://www.climatechange.govt.nz/resources/cabinet/pol-03-240.html
+http://www.climatechange.govt.nz/resources/cabinet/pol-min-03-21-7.html
+http://www.climateforum2002.org/statement.cfm
+http://www.climbing.com.au/training.php?page=training_programme.htm
+http://www.clinical-depression.co.uk/Depression_Information/signs.htm
+http://www.clinicalevidence.com/ceweb/conditions/end/0607/0607_I5.jsp
+http://www.clinicalevidence.com/ceweb/conditions/nud/1201/1201_I5.jsp
+http://www.clinicaltrials.gov/ct/gui/show/NCT00001308
+http://www.clinicaltrials.gov/ct/gui/show/NCT00069212
+http://www.clinicaltrials.gov/ct/info/glossary
+http://www.clinicaltrials.gov/ct/info/help
+http://www.clinicaltrials.gov/ct/show/NCT00005758
+http://www.clinicaltrials.gov/ct/show/NCT00069212
+http://www.clinicaltrials.gov/ct/show/NCT00115401
+http://www.clinicaltrials.gov/show/NCT00001308
+http://www.clinicians.org/ourmembers/our_members_intro.shtml
+http://www.clintonbusiness.org/pages/626408/page626408.html?refresh=1117455720361
+http://www.clintonpresidentialcenter.org/031303-y-speech.htm
+http://www.clintonpresidentialcenter.org/120804-nr-sp-cf-egy-re-wjc-closing-remarks-at-clinton-foundation-energy-forum.htm
+http://www.clintonpresidentialcenter.org/120804-nr-sp-closing-remarks-at-energy-conf.htm
+http://www.clintonpresidentialcenter.org/legacy/011995-press-release-on-anniversary-of-inauguration-b.htm
+http://www.clintonpresidentialcenter.org/legacy/012396-press-briefing-by-chief-of-staff-panetta.htm
+http://www.clintonpresidentialcenter.org/legacy/013098-speech-by-president-to-conference-of-mayors.htm
+http://www.clintonpresidentialcenter.org/legacy/020896-press-briefing-by-robert-bell-on-b2s-review.htm
+http://www.clintonpresidentialcenter.org/legacy/030200-speech-by-president-to-football-champions.htm
+http://www.clintonpresidentialcenter.org/legacy/040296-joint-press-conference-with-scalfaro.htm
+http://www.clintonpresidentialcenter.org/legacy/040800-press-release-on-legislation-before-congress.htm
+http://www.clintonpresidentialcenter.org/legacy/042293-speech-by-president-at-opening-of-holocaust-museum.htm
+http://www.clintonpresidentialcenter.org/legacy/050399-press-briefing-background-on-chernomyrdin-meeting.htm
+http://www.clintonpresidentialcenter.org/legacy/070293-press-briefing-on-the-travel-office.htm
+http://www.clintonpresidentialcenter.org/legacy/070994-press-backgrounder-on-g-seven-international-trade.htm
+http://www.clintonpresidentialcenter.org/legacy/070996-press-briefing-by-mike-mccurry.htm
+http://www.clintonpresidentialcenter.org/legacy/090398-presidential-letter-to-congress-on-iraq.htm
+http://www.clintonpresidentialcenter.org/legacy/092198-speech-by-president-at-nyu-law-school.htm
+http://www.clintonpresidentialcenter.org/legacy/100495-remarks-by-president-and-pope-at-newark-airport.htm
+http://www.clintonpresidentialcenter.org/legacy/110298-fact-sheet-on-release-of-patients-bill-of-rights-report.htm
+http://www.clintonpresidentialcenter.org/legacy/110598-presidential-letter-to-congress-on-iraq.htm
+http://www.clintonpresidentialcenter.org/legacy/110600-press-briefing-by-jake-siewart.htm
+http://www.clintonpresidentialcenter.org/legacy/121800-press-briefing-by-jake-siewart.htm
+http://www.clip.ubc.ca/research.shtm
+http://www.clipperfund.com/qtr902.html
+http://www.clir.org/pubs/reports/pub114/contents.html
+http://www.clir.org/pubs/reports/pub114/forward.html
+http://www.clis.com/friends/chicamac.htm
+http://www.clissoldleisure.com/
+http://www.cliterati.co.uk/page/article.php?story=20030517214128602&mode=print
+http://www.cliterati.co.uk/page/article.php?story=20041013205843609&mode=print
+http://www.clivar.org/publications/other_pubs/iplan/iip/data_set.htm
+http://www.clivar.org/publications/wg_reports/aamon/aa-monsoon2.htm
+http://www.clive.canoe.ca/filmfestor/home.html
+http://www.clivebarker.dial.pipex.com/ints85.html
+http://www.cll.edu/regions/ncr.htm
+http://www.clltopics.org/Ethics%20and%20Conflicts.htm
+http://www.clms.le.ac.uk/students/
+http://www.cln.org/lists/nuggets/EdTech_report.html
+http://www.cln.org/lists/nuggets/world.html
+http://www.cln.org/themes/masks.html
+http://www.clocktowerfiction.com/Fiction/wishes.shtml
+http://www.clomagazine.com/content/templates/clo_feature.asp?articleid=359&zoneid=31
+http://www.clomedia.com/content/anmviewer.asp?a=222&print=yes
+http://www.clomedia.com/content/anmviewer.asp?a=567&print=yes
+http://www.clomedia.com/content/anmviewer.asp?a=700&print=yes
+http://www.clomedia.com/content/anmviewer.asp?a=823&z=162
+http://www.clomedia.com/content/templates/clo_cloprofile.asp?articleid=517&zoneid=4
+http://www.clomedia.com/content/templates/clo_feature_ls.asp?articleid=388&zoneid=63
+http://www.clomedia.com/content/templates/clo_feature_ls.asp?articleid=486&zoneid=63
+http://www.clomedia.com/content/templates/clo_inpractice.asp?articleid=44&zoneid=83
+http://www.closertotruth.com/topics/technologysociety/110/110transcript.html
+http://www.closertotruth.com/videoarchive/
+http://www.closetsmagazine.com/
+http://www.clothingdoctor.com/magazines.html
+http://www.cloudnet.com/~edrbsass/applerootstocks.html
+http://www.cloudsandclocks.net/CD_reviews/parkereae_mv_E.html
+http://www.clovermoore.com/issues/development/major/scottish/wmc_ida_310_00.htm
+http://www.clown-ministry.com/skits/TrueMeaningOfXmas.html
+http://www.clpe.co.uk/publications/public22.html
+http://www.clpha.org/page.cfm?pageID=276
+http://www.cls.yale.edu/dils/languagepartner/additionalinfo.html
+http://www.club-mgmt.com/course/spikeless.html
+http://www.club-mgmt.com/manager/admin.html
+http://www.clubbing-uk.com/highland_gathering_nye_@_royal_highland_centre,_edinburgh.htm
+http://www.clubdeparis.org/en/countries/countries.php?CONTINENT_ID=&DETAIL_DETTE_PAGE=4&IDENTIFIANT=210&PAY_ISO_ID=UG
+http://www.clubdeparis.org/en/countries/countries.php?CONTINENT_ID=&DETAIL_DETTE_PAGE=4&IDENTIFIANT=26&PAY_ISO_ID=BO
+http://www.clubforgrowth.org/blog/
+http://www.clubfreetime.com/vieweventdetails.asp?ID=38888
+http://www.clubimate.com/index.asp?PAGEACTION=TERMS
+http://www.clublaurier.ca/
+http://www.clubmadrid.org/cmadrid/index.php?id=533
+http://www.cluboc.net/reviews/cases/dynapowerusa/BlackWidow/
+http://www.clubofamsterdam.com/press.asp?contentid=358&catid=85
+http://www.clubofamsterdam.com/press.asp?contentid=359&catid=85
+http://www.clubsafety.com/freeweights.htm
+http://www.cluck.com/SpeakForTJDJ.html
+http://www.cluetrain.com/
+http://www.clunet.edu/Student_Services/StudentPrograms/CSC/AfterYouGraduate.html
+http://www.clunet.edu/cpe
+http://www.cluonline.com/christian-counseling-distance-learning.htm
+http://www.clw.csiro.au/ImageGallery/image-info.html
+http://www.clw.csiro.au/publications/general2002/effectiveness/leakage_casestudies.html
+http://www.clw.org/atop/restrictions_defensenews092601.html
+http://www.clw.org/bush/feith-crouch.html
+http://www.clw.org/cat/atn0100.html
+http://www.clw.org/cat/csmoped.html
+http://www.clw.org/milspend/newsupdates/020510.html
+http://www.clyde.org/www2/dir_amendardnamurchan.shtml
+http://www.clydebank.ac.uk/page.asp?page_id=12
+http://www.clydebank.ac.uk/text.asp?page_id=12
+http://www.clynefarm.com/newsletter/edition_nine.htm
+http://www.cmaj.ca/cgi/content/full/167/6/674
+http://www.cmaj.ca/cgi/content/full/169/1/38
+http://www.cmalliance.org/news/news.jsp
+http://www.cmap.polytechnique.fr/~rama/events.html
+http://www.cmbm.org/trainings/ProfTrainingProgram/
+http://www.cmcpoliceacademy.com/coursedesc.html
+http://www.cmcric.org/resource/national/
+http://www.cmcrossroads.com/bradapp/acme/branching/
+http://www.cmcrossroads.com/bradapp/acme/scm-defs.html
+http://www.cmcrossroads.com/link/1260
+http://www.cmcrossroads.com/newsletter/articles/agilejul03.html
+http://www.cmcsb.com/position.htm
+http://www.cmd.rutgers.edu/Advanced_HRM_cur.htm
+http://www.cmdg.org/Surfer_Warning/surfer_warning.htm
+http://www.cmetfreetown.org/Media/Print/Articles/CSS_Articles/ConcordTimes/CT-010430-02.stm
+http://www.cmf.org.uk/ethics/turning_tide/principle.htm
+http://www.cmha.ca/phorum/read.php?f=5&i=1620&t=1620
+http://www.cmhc-schl.gc.ca/en/burema/gesein/abhose/abhose_ce08.cfm
+http://www.cmic.info/stories01C/
+http://www.cmis.cotswold.gov.uk/CMISWebPublic/Binary.ashx?Document=9193
+http://www.cmis.csiro.au/healthycountry/updates/apr05/story3.htm
+http://www.cmit.csiro.au/brochures/tech/energyexp/
+http://www.cmmonline.com/ENewsArticle.asp?ArticleID=344
+http://www.cmn.hs.h.kyoto-u.ac.jp/CMN7/lambert.html
+http://www.cmn.ie/cmnsitenew/trackark/tol_html/vaa.html
+http://www.cmpbooks.com/all_authors.html
+http://www.cmqr.rmit.edu.au/aqhe.html
+http://www.cms.hhs.gov/about/history/kahn.asp
+http://www.cms.hhs.gov/about/history/rubin.asp
+http://www.cms.hhs.gov/about/oeocr/EEOPolicy.asp
+http://www.cms.hhs.gov/healthplans/pob/mar00pob.asp
+http://www.cms.hhs.gov/healthplans/rates/2000/45day-03.asp
+http://www.cms.hhs.gov/media/press/release.asp?Counter=1150
+http://www.cms.hhs.gov/publications/trusteesreport/
+http://www.cms.hhs.gov/researchers/demos/preventiveservices/3q4.asp
+http://www.cms.int/species/iosea/IOSEAturtle_bkgd.htm
+http://www.cmsrents.com/services_special.asp
+http://www.cmstar.net/
+http://www.cmste.uregina.ca/valley/glossary.html
+http://www.cmstudies.org/CJdocs/Thompson2.htm
+http://www.cmswatch.com/Feature/126-Professional-Services
+http://www.cmswatch.com/Features/ProductWatch/FeaturedProduct/?feature_id=126
+http://www.cmt.com/artists/az/autry_gene/bio.jhtml
+http://www.cmt.com/artists/az/carlisle_bill/bio.jhtml
+http://www.cmu.edu/PR/releases05/050516_blum.html
+http://www.cmu.edu/clips/v102.html
+http://www.cmu.edu/cmnews/011205/011205_fellowships.html
+http://www.cmu.edu/computing/documentation/calendar/calendar_3.html
+http://www.cmu.edu/computing/idtheft/faq.html
+http://www.cmu.edu/hub/finaid.html
+http://www.cmwf.org/newsroom/newsroom_show.htm?doc_id=244495
+http://www.cmwf.org/publications/publications_show.htm?doc_id=229494
+http://www.cmwf.org/publications/publications_show.htm?doc_id=239779
+http://www.cmwf.org/publications/publications_show.htm?doc_id=245178
+http://www.cmwf.org/publications/publications_show.htm?doc_id=281960
+http://www.cmwf.org/tools/tools_show.htm?doc_id=257008
+http://www.cnb.com/ir/annual_reports/annreport00/lttrcalsix.asp
+http://www.cncden.com/renegade_weapons.shtml
+http://www.cnduk.org/pages/binfo/mdcnd.html
+http://www.cndyorks.gn.apc.org/news/articles/reshaping_footprint.htm
+http://www.cndyorks.gn.apc.org/yspace/articles/bmd/space_bombs.htm
+http://www.cne-siar.gov.uk/minbycom/social/E-Minute-Social%20Work%20-%203%20November%202004.htm
+http://www.cnet.com.au/smartappliances/0,39025738,40001281,00.htm
+http://www.cnewmark.com/mt/mt-comments.cgi?entry_id=232
+http://www.cnib.ca/eng/publications/pamphlets/lwvl/chapter3.htm
+http://www.cnlm.org/soq.html
+http://www.cnn.com/2000/TECH/ptech/01/27/glasstron.review/
+http://www.cnn.com/2000/US/08/02/kansas.evolution.01/
+http://www.cnn.com/2000/WORLD/meast/01/30/mideast.talks/
+http://www.cnn.com/2001/WORLD/asiapcf/east/04/09/air.collision.06/
+http://www.cnn.com/2001/WORLD/europe/04/27/oakley.bush/
+http://www.cnn.com/2002/ALLPOLITICS/08/22/bush.timber/
+http://www.cnn.com/2002/BUSINESS/asia/07/01/monmarkets.close/
+http://www.cnn.com/2002/US/08/08/porn.patriot/
+http://www.cnn.com/2002/WORLD/europe/09/30/eu.iraq/
+http://www.cnn.com/2002/WORLD/meast/01/22/mideast/
+http://www.cnn.com/2003/ALLPOLITICS/12/08/elec04.medicare.ap/
+http://www.cnn.com/2003/EDUCATION/08/13/sprj.sch.overview/
+http://www.cnn.com/2003/LAW/11/10/scotus.detainees/
+http://www.cnn.com/2003/SHOWBIZ/12/05/hln.hot.buzz.foaf.networks/
+http://www.cnn.com/2003/SHOWBIZ/TV/02/27/rogers.obit/
+http://www.cnn.com/2003/TECH/ptech/08/18/biological.computing.ap/
+http://www.cnn.com/2003/TECH/space/02/01/shuttle.columbia/
+http://www.cnn.com/2003/TECH/space/02/18/sprj.colu.space.future/
+http://www.cnn.com/2003/TECH/space/02/25/sprj.colu.debris/
+http://www.cnn.com/2003/US/Northeast/02/21/Cappadocia.cnna/
+http://www.cnn.com/2003/WORLD/meast/03/23/sprj.irq.war.main/
+http://www.cnn.com/2003/WORLD/meast/03/24/sprj.irq.marines.nasariya/
+http://www.cnn.com/2003/WORLD/meast/03/30/sprj.irq.arnett.transcript/
+http://www.cnn.com/2004/ALLPOLITICS/10/08/debate.transcript/
+http://www.cnn.com/2004/ALLPOLITICS/10/13/debate.transcript/
+http://www.cnn.com/2004/ALLPOLITICS/11/22/opinion.poll/
+http://www.cnn.com/2004/HEALTH/01/21/sleep.creativity.ap/
+http://www.cnn.com/2004/LAW/05/17/mass.samesex.marriage/
+http://www.cnn.com/2004/LAW/07/09/exorcism/
+http://www.cnn.com/2004/SHOWBIZ/Movies/03/25/review.jersey/
+http://www.cnn.com/2004/WORLD/meast/11/01/binladen.tape/
+http://www.cnn.com/2005/ALLPOLITICS/01/20/bush.transcript/
+http://www.cnn.com/2005/ALLPOLITICS/02/02/sotu.viewer.reax/
+http://www.cnn.com/2005/ALLPOLITICS/02/02/speech.reax/
+http://www.cnn.com/2005/ALLPOLITICS/02/25/dean.democrats.ap/
+http://www.cnn.com/2005/HEALTH/06/06/profile.assistant.kapes/
+http://www.cnn.com/2005/HEALTH/06/06/wnv.location/
+http://www.cnn.com/2005/HEALTH/diet.fitness/01/13/weight.loss/
+http://www.cnn.com/2005/HEALTH/diet.fitness/06/13/elderly.nutrition.ap/
+http://www.cnn.com/2005/LAW/03/14/smith.transcript/
+http://www.cnn.com/2005/LAW/06/14/jackson.trial/
+http://www.cnn.com/2005/LAW/06/21/mississippi.killings/
+http://www.cnn.com/2005/LAW/06/23/scotus.property.ap/
+http://www.cnn.com/2005/POLITICS/04/20/rice.bolton/
+http://www.cnn.com/2005/POLITICS/04/28/bush.transcript/
+http://www.cnn.com/2005/POLITICS/05/12/senate.bolton/
+http://www.cnn.com/2005/POLITICS/05/25/judicial.nominees/
+http://www.cnn.com/2005/POLITICS/06/10/npr.cpb/
+http://www.cnn.com/2005/SHOWBIZ/Movies/06/17/movies.poll.ap/
+http://www.cnn.com/2005/TECH/internet/03/18/artists.online/
+http://www.cnn.com/2005/TECH/internet/06/09/google.map.hacks.ap/
+http://www.cnn.com/2005/TECH/internet/06/14/china.microsoft.ap/
+http://www.cnn.com/2005/TECH/science/04/13/dolphin.rehab/
+http://www.cnn.com/2005/TRAVEL/ADVISOR/05/19/honeymoon.planning/
+http://www.cnn.com/2005/TRAVEL/DESTINATIONS/02/22/sorcerer.lodge/
+http://www.cnn.com/2005/US/05/05/uk.consulate/
+http://www.cnn.com/2005/US/05/16/iraq.memo/
+http://www.cnn.com/2005/US/06/07/bush.blair.africa/
+http://www.cnn.com/2005/US/06/10/fbi.missed.ap/
+http://www.cnn.com/2005/US/06/16/ford.vehicles/
+http://www.cnn.com/2005/US/06/22/missing.scout/
+http://www.cnn.com/2005/WORLD/europe/01/20/ukraine.ap/
+http://www.cnn.com/2005/WORLD/meast/01/13/iraq/
+http://www.cnn.com/2005/WORLD/meast/01/28/media.election/
+http://www.cnn.com/2005/WORLD/meast/04/26/iraq.zarqawi/
+http://www.cnn.com/2005/WORLD/meast/06/08/iraq.family.tragedy/
+http://www.cnn.com/ALLPOLITICS/stories/1999/02/12/senate.statements/akaka.html
+http://www.cnn.com/ALLPOLITICS/stories/1999/02/12/senate.statements/boxer.html
+http://www.cnn.com/ALLPOLITICS/stories/1999/02/12/senate.statements/bunning.html
+http://www.cnn.com/ALLPOLITICS/stories/1999/02/12/senate.statements/collins.html
+http://www.cnn.com/ALLPOLITICS/stories/1999/02/12/senate.statements/johnson.html
+http://www.cnn.com/ALLPOLITICS/stories/1999/02/12/senate.statements/wyden.html
+http://www.cnn.com/ELECTION/2000/debates/history.story/1992.html
+http://www.cnn.com/HEALTH/library/CA/00012.html
+http://www.cnn.com/HEALTH/library/CA/00037.html
+http://www.cnn.com/HEALTH/library/DS/00063.html
+http://www.cnn.com/HEALTH/library/DS/00171.html
+http://www.cnn.com/HEALTH/library/DS/00284.html
+http://www.cnn.com/HEALTH/library/DS/00295.html
+http://www.cnn.com/HEALTH/library/DS/00303.html
+http://www.cnn.com/HEALTH/library/DS/00534.html
+http://www.cnn.com/HEALTH/library/HA/00001.html
+http://www.cnn.com/HEALTH/library/HQ/00507.html
+http://www.cnn.com/HEALTH/library/HQ/01010.html
+http://www.cnn.com/HEALTH/library/HQ/01612.html
+http://www.cnn.com/HEALTH/library/NU/00203.html
+http://www.cnn.com/SHOWBIZ/Movies/9905/13/review.phantom.menace/
+http://www.cnn.com/SHOWBIZ/TV/9807/24/must.sell.tv/
+http://www.cnn.com/SPECIALS/2000/russia/story/analysis/putin2/
+http://www.cnn.com/SPECIALS/cold.war/episodes/14/documents/debate/
+http://www.cnn.com/SPECIALS/cold.war/episodes/22/script.html
+http://www.cnn.com/TECH/computing/9909/21/hushmail/
+http://www.cnn.com/US/9607/09/newsbriefs/
+http://www.cnn.com/US/9909/10/soda.schools/
+http://www.cnn.com/chat/transcripts/2000/3/berkley/
+http://www.cnn.com/fyi/interactive/news/10/election.special/teachers/bg.6.html
+http://www.cnn.com/money/2005/02/02/news/economy/bush_speech/
+http://www.cnn.com/money/?cnn=yes
+http://www.cnn.com/si/2005/tennis/specials/french_open/2005/06/05/bc.ten.french.open.men.ap/
+http://www.cnn.com/si/2005/writers/dr_z/04/21/mock.draft.expanded.part1/?cnn=yes
+http://www.cnnames.net/
+http://www.cnnet.com.au/index.php?option=content&task=view&id=242&Itemid=180
+http://www.cnnfn.com/2000/09/29/career/q_degreephysed/
+http://www.cnnsi.com/2004/football/nfl/04/23/tillman.killed/
+http://www.cnnsi.com/2004/writers/richard_deitsch/11/12/media.circus/
+http://www.cnnsi.com/2005/football/nfl/02/10/bc.fbn.probowl.vick.stu.ap/
+http://www.cnnsi.com/2005/scorecard/02/04/truth.rumors.nba/
+http://www.cnnsi.com/2005/tennis/specials/wimbledon/2005/06/29/bc.ten.wimbledon.notebook.ap/
+http://www.cnnsi.com/2005/writers/don_banks/02/02/pats.versatility/
+http://www.cnnsi.com/2005/writers/jon_wertheim/seed.report.women/
+http://www.cnnsi.com/2005/writers/peter_king/01/03/mmqb.week17/
+http://www.cnnsi.com/2005/writers/peter_king/01/24/mmqb.conf/
+http://www.cnnsi.com/basketball/news/2001/12/29/hornets_wizards_ap/
+http://www.cnnsi.com/features/1998/weekly/980921/standingtall.html
+http://www.cnnsi.com/soccer/world/1999/womens_worldcup/news/1999/06/19/wwc_script/
+http://www.cno.org/reg/nonmemb/progs_rpn.htm
+http://www.cnponline.org/Issue%20Briefs/Statelines/statelin0301.htm
+http://www.cnr.berkeley.edu/ucce50/ag-labor/7labor/02.htm
+http://www.cnr.colostate.edu/frws/research/cook/cook/cookcarb/Carbohydrates.htm
+http://www.cnr.colostate.edu/prospective/profiles/chase.html
+http://www.cnr.uidaho.edu/winr/kd24.3.htm
+http://www.cnsnews.com/Culture/archive/200405/CUL20040513c.html
+http://www.cnsnews.com/ViewCommentary.asp?Page=%5CCommentary%5Carchive%5C200301%5CCOM20030127e.html
+http://www.cnsnews.com/ViewCulture.asp?Page=/Culture/archive/200111/CUL20011126d.html
+http://www.cnsnews.com/ViewNation.asp?Page=%5CForeignBureaus%5Carchive%5C200506%5CFOR20050616d.html
+http://www.cnsonline.org/www/archive/alzhmr/alz-01.html
+http://www.cnt.com/documents/?ext=pdf&filename=PL592
+http://www.cnt.gouv.qc.ca/en/lois/normes/commission/index.asp
+http://www.cnt.gouv.qc.ca/en/lois/reglements/normes/index.asp
+http://www.cnu.edu/lls/gardenworkshops.html
+http://www.cnvc.org/spirital.htm
+http://www.co-intelligence.org/I-SynDivWhol.html
+http://www.co-intelligence.org/y2k_WASHsign-on.html
+http://www.co-intelligence.org/y2k_nukeWASH.html
+http://www.co-motion.com/
+http://www.co-motion.com/home.html
+http://www.co-operativebank.co.uk/servlet/Satellite?cid=1079944047609&pagename=CoopBank%2FPage%2FtplPageStandard&c=Page
+http://www.co-ophthalmology.com/pt/re/coophth/fulltext.00055735-200504000-00002.htm
+http://www.co-ownership.org/news/20
+http://www.co.boulder.co.us/bocc/BCNews/1996/september.htm
+http://www.co.boulder.co.us/bocc/BCNews/2000/september.htm
+http://www.co.cook.il.us/secretary/CommitteePages/Meeting%20Reports/Education%20Committee/2001/02-08-01.htm
+http://www.co.cumberland.nj.us/facts/history/unalachtigo/unalachtigo.html
+http://www.co.douglas.ne.us/dept/civil/webjobs.html
+http://www.co.fairfax.va.us/library/internet/home.htm
+http://www.co.ha.md.us/housing/PATH.html
+http://www.co.hennepin.mn.us/vgn/portal/internet/hcdetailmaster/0,2300,1273_82191_101935416,00.html
+http://www.co.honolulu.hi.us/ethics/complaintform.htm
+http://www.co.jackson.or.us/Page.asp?NavID=237
+http://www.co.kandiyohi.mn.us/depts/EnvSvcs/waterplanning.htm
+http://www.co.kern.ca.us/courts/smallclaims.asp
+http://www.co.larimer.co.us/parks/carter_lake_meeting.htm
+http://www.co.mason.wa.us/health/Cshcn.shtml
+http://www.co.mille-lacs.mn.us/Cb030204.htm
+http://www.co.orange.ny.us/documentView.asp?docID=1944
+http://www.co.pacific.wa.us/boards%20and%20commissions/boewin.htm
+http://www.co.pierce.wa.us/pc/abtus/ourorg/distct/dc1faq.htm
+http://www.co.pierce.wa.us/text/abtus/ourorg/distct/dc1faq.htm
+http://www.co.prince-william.va.us/default.aspx?topic=010010000810002865
+http://www.co.prince-william.va.us/default.aspx?topic=010010000830001056
+http://www.co.prince-william.va.us/default.aspx?topic=01001600011
+http://www.co.prince-william.va.us/default.aspx?topic=020010000810002865
+http://www.co.prince-william.va.us/default.aspx?topic=030010000810002865
+http://www.co.prince-william.va.us/default.aspx?topic=040033000100001736
+http://www.co.prince-william.va.us/print.aspx?topic=010010000810002865
+http://www.co.santa-fe.nm.us/departments/hrd_asd/registered_nurse.htm
+http://www.co.solano.ca.us/Links/Link.asp?NavID=1190
+http://www.co.st-louis.mo.us/parks/mountedpatrol.html
+http://www.co.suffolk.ny.us/legis/clerk/cmeet/vm/2004/vm012104R.htm
+http://www.co.summit.co.us/Ehealth/foodsafety.html
+http://www.co.travis.tx.us/dro/common_law.asp
+http://www.co.yavapai.az.us/Meeting/PNB/2005/0406.htm
+http://www.co2clean.com/faqs.html
+http://www.coachability.com/discoveryourpassionbook.htm
+http://www.coachcentral.info/Merrill_study.htm
+http://www.coachesinfo.com/category/swimming/335/
+http://www.coachingforchange.com/pub10.html
+http://www.coachingtohappiness.com/How_Can_I_Be_Happy_When-Happy-When-010.html
+http://www.coachmaria.com/
+http://www.coachwyatt.com/successes.html
+http://www.coag.uvic.ca/cdsmp/cdsmp_program.htm
+http://www.coaleducation.org/lessons/middle/import.htm
+http://www.coaltechnologies.com/
+http://www.coastal.ca.gov/publiced/marinedebris.html
+http://www.coastal.edu/magazine/fall2003/classnotes.html
+http://www.coastalsenior.com/archives/april2004/SNRgracefulelder.html
+http://www.coastalstudies.org/what-we-do/whale-rescue/faq.htm
+http://www.coastcapital.com/library/mbashop.html
+http://www.coastepa.com/php/service/bylaws.php
+http://www.coastkid.org/l03bx.html
+http://www.coastlinecu.com/
+http://www.coat-of-arms.biz/customers.php
+http://www.coax.net/people/erics/TFARM_supercon1.htm
+http://www.coax.net/people/lwf/watch.htm
+http://www.cob.ohio-state.edu/dept/fin/journal/jofsites.htm
+http://www.cob.org/features/2004-11-30-water-rates.htm
+http://www.cob.org/web/council.nsf/0/580821224ead9dbb88257004007a7a43?OpenDocument
+http://www.cob.sjsu.edu/facstaff/nellen_a/TaxComp/exercise.html
+http://www.cobankopegi.com/prong.html
+http://www.cobar.org/opinions/opinionlist.cfm?CaseDate=2/23/2004&CourtID=2
+http://www.cobbcommunications.org/direction_cobb/aug_04/senior.htm
+http://www.cobbcommunications.org/direction_cobb/june_02/dc_june_02.htm
+http://www.cobbetts.co.uk/main/cms/cmRender.asp?i=1163&p=h58p2
+http://www.cobbles.com/simpp/chapter1.htm
+http://www.cobbles.com/simpp_archive/paramountcase_1slump1938.htm
+http://www.cobbles.com/simpp_archive/simpp_1942umpi.htm
+http://www.cobecv.com/cobecv.htm
+http://www.cobracountry.com/york/home.html
+http://www.coc.cc.ca.us/library/Closed_captioned1.asp
+http://www.coc.cc.ca.us/library/Closed_captioned2.asp
+http://www.coc.cc.ca.us/library/Closed_captioned3.asp
+http://www.coc.cc.ca.us/library/Closed_captioned4.asp
+http://www.coc.cc.ca.us/offices/Library/Closed_captioned2.asp
+http://www.coc.cc.ca.us/offices/library/Closed_captioned1.asp
+http://www.coc.cc.ca.us/offices/library/Closed_captioned2.asp
+http://www.coc.org/focus/ej/display.html?ID=126
+http://www.cocaineblunts.com/blog/2004_12_01_cocaineblunts_archive.html
+http://www.coccyx.org/investig/dynamic.htm
+http://www.coccyx.org/personal/2003/cj.htm
+http://www.cochisestrongholdbb.com/guest03.html
+http://www.cochranfirm.com/areas-medmal-heart.html
+http://www.cocoadevcentral.com/articles/000028.php
+http://www.cocoadevcentral.com/articles/000036.php
+http://www.cocoadevcentral.com/articles/000044.php
+http://www.cocoadevcentral.com/articles/000066.php
+http://www.coconut-island.co.uk/main.html
+http://www.coconuts.com/namepage.aspx?pid=P4532&type=P&loc=41159
+http://www.cocoonnutrition.org/catalog/page_hormone_NL.php
+http://www.cod.edu/Academic/AcadProg/Hon_Prog/did_you_know.htm
+http://www.cod.edu/DEPT/REGNER/robert_morris.htm
+http://www.cod.edu/NewsEvnt/Evnt_Cal.htm
+http://www.cod.edu/yrtk/
+http://www.codecomments.com/Cobol/message371320.html
+http://www.codecomments.com/Java_Databases/message392274.html
+http://www.codecomments.com/archive307-2004-9-286523.html
+http://www.codecomments.com/forum290/message354679-1.html
+http://www.codegroup.co.yu/links.htm
+http://www.codeguru.com/Cpp/W-P/ce/registry/article.php/c8301/
+http://www.codeguru.com/forum/showthread.php?t=327820
+http://www.codeguru.com/java/tij/tij_c.shtml
+http://www.codeindigo.co.uk/davidwright/music/ghostsreview.shtml
+http://www.codella.com/shotguns.htm
+http://www.codeonemagazine.com/archives/2003/articles/oct_03/c130/
+http://www.codeproject.com/aspnet/DataPassingBtPages.asp
+http://www.codeproject.com/aspnet/IFrameParams.asp
+http://www.codeproject.com/aspnet/wait_page.asp
+http://www.codeproject.com/csharp/
+http://www.codeproject.com/csharp/csdespat_6.asp?df=100&forumid=13761&exp=0&select=743201
+http://www.codeproject.com/directx/tetris.asp
+http://www.codeproject.com/dotnet/bridge.asp
+http://www.codeproject.com/gen/work/standaloneinnovative.asp?df=100&forumid=14709&exp=0&select=501739
+http://www.codeproject.com/gen/work/standaloneinnovative.asp?df=100&forumid=14709&exp=0&select=501808
+http://www.codeproject.com/gen/work/standaloneinnovative.asp?df=100&forumid=14709&exp=0&select=502480
+http://www.codeproject.com/gen/work/standaloneinnovative.asp?df=100&forumid=14709&exp=0&select=502921
+http://www.codeproject.com/html/webspeed.asp
+http://www.codeproject.com/html/webspeed.asp?df=100&forumid=74944&exp=0&select=872308
+http://www.codeproject.com/html/webspeed.asp?df=100&forumid=74944&exp=0&select=874929
+http://www.codeproject.com/listctrl/
+http://www.codeproject.com/miscctrl/rgba_colour_control.asp
+http://www.codeproject.com/netcf/PpcCompPocketBalance.asp
+http://www.codeproject.com/property/resizeable_wizard97.asp
+http://www.codeproject.com/threads/process_class.asp
+http://www.codeproject.com/threads/processapi.asp
+http://www.codepublishing.com/OR/Fairview/fairvw19/fairvw19110.html
+http://www.codersworkshop.com/viewshowcase.php?id=140
+http://www.codex-politics.com/pcodex/contents.nsf/0/74B9296D82C9C45E00256BD600531C77?OpenDocument
+http://www.codyenterprise.com/guestbook
+http://www.codynamics.net/science.htm
+http://www.coe.berkeley.edu/labnotes/0405/commuter.html
+http://www.coe.int/T/E/Commissioner_H.R/Communication_Unit/Documents/CommDH(1999)1_E.asp
+http://www.coe.int/T/E/Cultural_Co-operation/Heritage/Resources/econfer5.asp
+http://www.coe.int/T/E/Cultural_Co-operation/Youth/4._Financial_support/Study_Sessions/Call4_Application2005.asp
+http://www.coe.int/T/E/cultural_co-operation/Sport/Doping/eEuropack.asp
+http://www.coe.iup.edu/wiupfm/newmembers.htm
+http://www.coe.iup.edu/worldofkindergarten/T/T.html
+http://www.coe.neu.edu/Depts/SET/lis/financial.html
+http://www.coe.uga.edu/sdpl/articlesandpapers/reviewcaringspaces/caringspaces.html
+http://www.coe.uh.edu/courses/cuin6373/onlineinfo/faq.html
+http://www.coega.co.za/content.asp?id=229&node0id=163&node1id=129&node2id=70
+http://www.cof.org/Content/General/Display.cfm?contentID=2570
+http://www.cof.orst.edu/cof/teach/for446/
+http://www.cof.orst.edu/net/software/present/powerpnt/ppguide.sht
+http://www.cof.orst.edu/org/scicomm/030298.htm
+http://www.cofc.edu/~portmord/phil4f97.htm
+http://www.cofchrist.org/called/default.asp
+http://www.cofcu.org/
+http://www.cofe.anglican.org/lifeevents/ministry/safwp/sfot/
+http://www.coffee-makers-espresso-machines.com/aquabrew-commercial-thermal-drip-coffee-makers.html
+http://www.coffeecoffee.com/
+http://www.coffeeforless.com/pressroom.asp
+http://www.coffeefranchisereview.com/coffee-shop-franchise/java_grande
+http://www.coffeefranchisereview.com/franchise/java_grande
+http://www.coffeefranchisereview.com/java/java_grande
+http://www.coffeegeek.com/forums/espresso/general/109154
+http://www.coffeegeek.com/reviews/commercial/isomac_tea/Cafetera
+http://www.coffeegeek.com/reviews/commercial/isomac_tea/mhanley
+http://www.coffeegeek.com/reviews/commercial/isomac_tea/ozzie
+http://www.coffeereview.com/article.cfm?ID=76
+http://www.coffeereview.com/article.cfm?ID=8
+http://www.coffeereview.com/article.cfm?ID=93
+http://www.coffeereview.com/article.cfm?ID=95
+http://www.coffeereview.com/reference.cfm?ID=88
+http://www.coffman.umn.edu/whole/
+http://www.cog.org/interfaith/pwr124.html
+http://www.cog7day.org/applications/message/index.asp?s=7&r=60&numMaxPage=10
+http://www.cogapp.com/home/3975536.html
+http://www.cogentsolver.com/find.htm
+http://www.cognetics.com/papers/charlie/charlie9.html
+http://www.cognitiveliberty.org/neuro/memory_drugs_sd.html
+http://www.cograilway.com/ratestimes.htm
+http://www.cogs.asn.au/orgdefn.html
+http://www.coha.org/Anything%20PHP/by_edition.php
+http://www.coha.org/NEW_PRESS_RELEASES/New_Press_Releases_2004/04.07_Haiti_Waiting.htm
+http://www.coha.org/PHP/by_edition.php
+http://www.cohre.org/FilmsMain.htm
+http://www.coiera.com/bk-intro.htm
+http://www.coinarchives.com/faq.php
+http://www.coinresource.com/guide/exhibit/panama_pacific_fifty.htm
+http://www.coinsofamerica.com/public_folder/50sq.htm
+http://www.cointalk.org/newpostinthread7528.html
+http://www.cojoweb.com/host-andrew-h-jacouse-CD.html
+http://www.cokesbury.com/disciple_controller.aspx?pageid=163&id=17&type=Comm
+http://www.col.org/clippings/leg_draft.htm
+http://www.col.org/events/9707events.htm
+http://www.colby-sawyer.edu/campus-life/commencement/studentawards.html
+http://www.colby.edu/cpse/equipment2/human/human.html
+http://www.colby.edu/home/orgs.shtml
+http://www.colby.edu/personal/r/rmscheck/GermanyC1.html
+http://www.cold-war-crisis.de/wbboard/thread.php?threadid=571&boardid=27
+http://www.coldandflucouncil.org/html/council_gp.htm
+http://www.coldbacon.com/music/calypso.html
+http://www.coldcallpro.com/demo_tour.asp
+http://www.coldcallpro.com/support_gold.asp
+http://www.coldcure.com/html/results.html
+http://www.coldfusionvideo.com/l/lotrtwotowers.html
+http://www.coldspring.co.uk/index.cgi?keywords=Ionosphere
+http://www.coldsteel.co.uk/articles/bayarea.html
+http://www.coldwar.org/articles/90s/fall_of_the_soviet_union.php3
+http://www.colebrooke.info/firearms.htm
+http://www.coleman-firm.com/practiceareas-pa-hacker.php
+http://www.colemanforag.com/biography.asp
+http://www.coleporter.org/bio.html
+http://www.colgate.edu/index.aspx?pgID=6013&nwID=206
+http://www.colgate.edu/index.aspx?pgID=6013&nwID=2689
+http://www.colgatecountryshowdown.com/rules.asp
+http://www.colidoscope.com/fellows/stipends.html
+http://www.colinfirth.com/truth.html
+http://www.coliseum.org.uk/pages/edu_outreach.php
+http://www.colitz.com/site/4120053/4120053f.htm
+http://www.collectics.com/education_imperial.html
+http://www.collectingbooksandmagazines.com/annuals.html
+http://www.collectinsure.com/faqstampcollector.htm
+http://www.collectionscanada.ca/2/16/h16-6201-e.html
+http://www.collectionscanada.ca/6/18/s18-212-e.html
+http://www.collectionscanada.ca/9/13/p13-104-e.html
+http://www.collectionscanada.ca/glenngould/m23-310.1.3-e.html
+http://www.collectionscanada.ca/information-management/06040101_e.html
+http://www.collectionscanada.ca/information-management/060401_e.html
+http://www.collectionscanada.ca/information-management/0609_e.html
+http://www.collectionscanada.ca/primeministers/h4-4060-e.html
+http://www.collectionscanada.ca/primeministers/h4-4072-e.html
+http://www.collectionscanada.ca/superheroes/t3-303-e.html
+http://www.collectmad.com/COLLECTIBLES/toylst.htm
+http://www.collectormania.com.au/storydetail.asp?storyID=3813&storylink=d:%5Cinetpub%5CTopStory%5CStories%5C4799_3813.txt
+http://www.collectorsnet.com/warstuff/civilwar.htm
+http://www.collectspace.com/resources/patches_soviet.html
+http://www.college-of-law.co.uk/20462.html
+http://www.college-of-law.co.uk/senda/20462-4.html
+http://www.collegeart.org/conference/2005/seekers/
+http://www.collegeboard.com/article/0,3868,6-29-0-4494,00.html
+http://www.collegeboard.com/collegecosts
+http://www.collegeboard.com/highered/res/tax.html
+http://www.collegeboard.com/parents/article/0,3708,703-705-0-21290,00.html
+http://www.collegeboard.com/prof/counselors/apply/3.html
+http://www.collegeboard.com/student/testing/clep/ex_us1.html
+http://www.collegecentral.com/NewsDetail.cfm?Consortium=HLT&IND=11
+http://www.collegecentral.com/NewsDetail.cfm?Consortium=ISS&IND=9
+http://www.collegecharlie.com/vandy.html
+http://www.collegeconfidential.com/discus/messages/5711/59170.html
+http://www.collegeconfidential.com/discus/messages/70/82010.html
+http://www.collegefootballnews.com/2003/Bowls/Bowl_Central.htm
+http://www.collegefootballnews.com/2004/Draft/2005_Pro_Prospects_41_70.htm
+http://www.collegefootballnews.com/Mountain_West/Mountain%20West.htm
+http://www.collegefootballnews.com/Top_100_Players/Top_100_Players_23_Tony_Dorsett.htm
+http://www.collegefootballnews.com/mac/2004_Previews/2004_MAC_Preview.htm
+http://www.collegegrad.com/book/21-5.shtml
+http://www.collegegrad.com/careers/manag19.shtml
+http://www.collegegrad.com/careers/servi13.shtml
+http://www.collegegrad.com/jobsearch/21-5.shtml
+http://www.collegehillna.org/MAR2304minutes.htm
+http://www.collegehumor.com/
+http://www.collegejournal.com/aidadmissions/financialissues/20040227-chaker.html
+http://www.collegejournal.com/bschool03/articles/20020909-alsop-mbasurvey.html
+http://www.collegejournal.com/careerpaths/findcareerpath/20050610-millman.html
+http://www.collegejournal.com/columnists/myopinion/20030924-newport.html
+http://www.collegemedianews.com/category.php?catID=1
+http://www.collegeparents.org/cpa/resource-everyone-financial-scholarship_look.html
+http://www.colleges.com/Umagazine/articles.taf?category=features&article=bingedrinking
+http://www.colleges.com/admissions/essays/lf_wordchoice.html
+http://www.collegesexadvice.com/masturbation-mistakes.shtml
+http://www.collegesports.com/sports/m-footbl/stories/081804aat.html
+http://www.collegevalues.org/practices.cfm?id=212&a=1
+http://www.collegevalues.org/reflections.cfm?id=185&a=1
+http://www.collegevalues.org/scholarships.cfm?id=1174&a=1
+http://www.collegeview.com/career/ask_experts/prevet.html
+http://www.collegeview.com/college/ask_experts/choosing_mj/publicrelations.html
+http://www.collegeview.com/college/library/excerpts/101chapter13.html
+http://www.collegian.com/vnews/display.v/SEC/News%3E%3ECampus
+http://www.collegian.psu.edu/archive/2002/10/10-23-02tdc/10-23-02dsports-02.asp
+http://www.collegiatetimes.com/index.php?ID=4856
+http://www.collegiatewaterpolo.org/html/SAACminutes.htm
+http://www.collegiumusa.com/other/3_christmas2004_index.html
+http://www.collinsclubs.com/rcrv/community_projects.php?projID=16
+http://www.collinspartners.com/relationships/meltdowns.htm
+http://www.collisiondetection.net/mt/archives/2004/05/can_you_hear_me.html
+http://www.collisiondetection.net/mt/archives/2004/05/of_texting_teac.html
+http://www.collyerbristow.com/site/default.asp?s=61&cID=12&ctID=5
+http://www.collylogic.com/index.php?/weblog/comments/so_where_does_media_leave_us/
+http://www.coloma.com/business/shopping.php
+http://www.colombiaembassy.org/en/index.php?option=com_content&task=view&id=233&Itemid=146
+http://www.colombiasolidarity.org.uk/
+http://www.colombiasolidarity.org.uk/Solidarity%2014/waronthepeople.html
+http://www.colombiasolidarity.org.uk/UA%20Jan-Mar%2004/UA04.03.04.html
+http://www.colonelmaggie.com/vets.htm
+http://www.colonialhall.com/adamsj/adamsAbigail.php
+http://www.colorado.edu/SASC/tips/enrollstatus/fullcircle.html
+http://www.colorado.edu/StaffCouncil/minutesapril2004.htm
+http://www.colorado.edu/StaffCouncil/minutesnovember2004.htm
+http://www.colorado.edu/StaffCouncil/totalcompensation.htm
+http://www.colorado.edu/StudentGroups/MEChA/MEXAplansb.html
+http://www.colorado.edu/StudentGroups/PhilosophyClub/Referees/SubstitutivityandContext.htm
+http://www.colorado.edu/conflict/peace/!core_problems.htm
+http://www.colorado.edu/conflict/peace/!treating_core.htm
+http://www.colorado.edu/conflict/peace/!treating_overlays.htm
+http://www.colorado.edu/cuenvironmentalcenter/greening_cu/green_building/
+http://www.colorado.edu/ealld/atj/Bridging/talk-advice.html
+http://www.colorado.edu/ealld/atj/Teamreports/Chap4.html
+http://www.colorado.edu/geography/gcraft/warmup/txelect/txelect.bak4
+http://www.colorado.edu/geography/gcraft/warmup/txelect/txelect.bak5
+http://www.colorado.edu/geography/gcraft/warmup/txelect/txelect.bak7
+http://www.colorado.edu/geography/gcraft/warmup/txelect/txelect.html
+http://www.colorado.edu/geography/geomorph/usfs.html
+http://www.colorado.edu/hazards/dr/dr224.html
+http://www.colorado.edu/hazards/dr/dr427.html
+http://www.colorado.edu/history/students/undergrad/papguide.htm
+http://www.colorado.edu/humres/policies/adminleave.html?a=1
+http://www.colorado.edu/humres/policies/adminleave.html?a=5
+http://www.colorado.edu/humres/policies/adminleave.html?a=51
+http://www.colorado.edu/humres/policies/adminleave.html?a=8
+http://www.colorado.edu/journals/standards/V6N1/EDUCATION/jaramillo1.html
+http://www.colorado.edu/journals/standards/V7N2/about.html
+http://www.colorado.edu/kines/ivblab/Brian.htm
+http://www.colorado.edu/news/cgi-bin/print.cgi?year=2003&id=284
+http://www.colorado.edu/news/releases/2003/284.html
+http://www.colorado.edu/ptsp/retreatspring2002/three.html
+http://www.colorado.edu/studentaffairs/sofo/dos_donts.html
+http://www.colorado.edu/topscholarships/geninfo.htm
+http://www.coloradocollege.edu/dept/en/cos/1/sustainablility.asp
+http://www.coloradocollege.edu/dept/en/cos/1/veronica.asp
+http://www.coloradocollege.edu/dept/en/cos/1/wolves.asp
+http://www.coloradocollege.edu/dept/en/cos/vol1/ae_kingb.cfm
+http://www.coloradocollege.edu/dept/en/cos/vol1/pro_hilda.cfm
+http://www.coloradocollege.edu/dept/en/cos/vol1/sports_tigers.cfm
+http://www.coloradodoulas.com/hospitals.html
+http://www.coloradomusicfest.org/conductors.htm
+http://www.coloradosprings.com/relocation/fullstory.php?id=1640
+http://www.coloradotown.com/classifieds/classified_list.cfm?cityid=8&pagenameid=9&subid=41
+http://www.coloransas.com/sbh.html
+http://www.colormatters.com/factoid.html
+http://www.colorpro.com/services/designs.html
+http://www.colorschemer.com/forums/showthread.php?t=130
+http://www.colossal-fossil-site.com/475-legislative/red-white-blue.htm
+http://www.colostate.edu/Depts/CoopExt/4DMG/Plants/cont.htm
+http://www.colourflair.com/Colour___StyleTraining/Training_Course_Prospectus/training_course_prospectus.html
+http://www.colourtherapyhealing.com/crystals/
+http://www.colschildrenstheatre.org/academy/class2005a-winter.htm
+http://www.colts.com/sub.cfm?page=article7&news_id=2630
+http://www.coltsfordmill-fishery.co.uk/members-news-03nov.phtml
+http://www.columba.ie/catalogue.php?cat=Religious%20Life
+http://www.columbia.edu/cu/cspa/97GoldKeyRecipients.html
+http://www.columbia.edu/cu/cssn/cssn-list/2002/01/00146.html
+http://www.columbia.edu/cu/cup/catalog/data/023104/0231046111.HTM
+http://www.columbia.edu/cu/cup/catalog/data/023112/0231125704.HTM
+http://www.columbia.edu/cu/cup/catalog/data/023112/0231127766.HTM
+http://www.columbia.edu/cu/cup/catalog/data/071030/0710305907.HTM
+http://www.columbia.edu/cu/ealac/dkc/chushingura/gonza_film_notes.html
+http://www.columbia.edu/cu/ire/stumsc.html
+http://www.columbia.edu/cu/opg/policies/small-bus.html
+http://www.columbia.edu/cu/polisci/grad/main/faculty/
+http://www.columbia.edu/cu/polisci/printable/grad/main/faculty/
+http://www.columbia.edu/cu/senate/annual_reports/97-98/library.html
+http://www.columbia.edu/cu/senate/resolutions/01-02/CEres.htm
+http://www.columbia.edu/cu/tat/2_roles.html
+http://www.columbia.edu/itc/cerc/danoff-burg/invasion_bio/inv_spp_summ/Apis_mellifera_scutellata.htm
+http://www.columbia.edu/itc/cerc/danoff-burg/invasion_bio/inv_spp_summ/WestNile.html
+http://www.columbia.edu/itc/mealac/pritchett/00islamlinks/txt_sir_sayyid_lucknow_1887.html
+http://www.columbia.edu/itc/mealac/pritchett/00islamlinks/txt_sir_sayyid_meerut_1888.html
+http://www.columbia.edu/kermit/case09.html
+http://www.columbia.edu/kermit/support.html
+http://www.columbia.edu/~ariel/hr695/crowell-mar20.html
+http://www.columbia.edu/~em36/wpdos/wptoword.html
+http://www.columbia.edu/~ftg1/WRITING%20EXECUT.SUMMARY.html
+http://www.columbia.edu/~jrs9/Navy-Yard-Org.html
+http://www.columbia.edu/~rr91/3567/sample_biographies/annette_baxter_rr_bio.htm
+http://www.columbiadems.org/blog/?p=175
+http://www.columbiaforestproducts.com/company/nyw.php
+http://www.columbiagasohio.com/home/glossary/
+http://www.columbian.com/reflections/tornado.cfm
+http://www.columbiaseminary.edu/coffeetalk/grammar.html
+http://www.columbiaspectator.com/vnews/display.v/ART/2005/04/01/424d12cdd2b1b
+http://www.columbiaspectator.com/vnews/display.v/SEC/Manhattanville+Expansion
+http://www.columbiasurgery.org/divisions/pediatrics/stories.html
+http://www.columbineuuchurch.org/sermons/corwin_sermon1.html
+http://www.columbusalive.com/2005/20050223/022305/02230501.html
+http://www.columbusart.com/artscene/tradewinds.html
+http://www.columbusinfobase.org/
+http://www.columbuswired.net/Columns/DollarStretcher/BigHomes_081802.htm
+http://www.com.washington.edu/rccs/bookinfo.asp?AuthorID=58&BookID=200
+http://www.comalco.com/freedom.aspx?pid=406
+http://www.comare.org.uk/statements/comare_statement_wales.htm
+http://www.combat-diaries.co.uk/diary22chapter_9.htm
+http://www.comcare.gov.au/comcare-annual-report-2004/report-operations-5.html
+http://www.comcat.com/~peace/ptelmtn.html
+http://www.comcom121.org/imitation.htm
+http://www.comdev.ca/investors/faq/faq_fin_info.html
+http://www.comdex.com/news/fall2002/features/index.php?s=common&c=keynote_bonilla
+http://www.comdig.com/index.php?id_issue=2000.34
+http://www.comdig.com/index.php?id_issue=2002.06
+http://www.comdig.com/index.php?id_issue=2002.23
+http://www.comdig.com/index.php?id_issue=2003.06
+http://www.comdig.com/index.php?id_issue=2003.34
+http://www.comdig.com/index.php?id_issue=2004.28
+http://www.comdig.com/index.php?id_issue=2004.39
+http://www.comdig.com/index.php?id_issue=2004.41
+http://www.comdig.org/index.php?id_issue=2003.33
+http://www.comdig.org/index.php?id_issue=2004.51
+http://www.come-and-hear.com/bababathra/bababathra_28.html
+http://www.come-clean.org/
+http://www.comedition.com/Fine%20Arts/
+http://www.comedition.com/Money/
+http://www.comedition.com/News/
+http://www.comedition.com/Young%20Adults/
+http://www.comedycentral.com/tv_shows/travelsick/
+http://www.comehearbooks.com/Faq.php
+http://www.comeoverandhelpus.com/blog/2004_10_01_archive.html
+http://www.comerica.com/cma/cda/main/0,00,1_A_2128,00.html
+http://www.comet-cartoons.com/toons/3ddocs/lipsync/lipsync.html
+http://www.comeunity.com/adoption/realmoms/1maria.html
+http://www.comeunity.com/adoption/special_needs/arthrogryposis.html
+http://www.comicbookresources.com/
+http://www.comicbookresources.com/columns/index.cgi?column=litg&article=1508
+http://www.comicbookresources.com/columns/index.cgi?column=tcp&article=1753
+http://www.comicroasts.com.au/Parties2.htm
+http://www.cominganarchy.com/
+http://www.comingsoon.net/forums/archive/index.php/t-10161-p-35.html
+http://www.comingsoon.net/forums/showthread.php?t=12923&page=3
+http://www.comingsoon.net/forums/showthread.php?t=12923&page=3&pp=25
+http://www.comingsoon.net/news.php?id=10127
+http://www.comingsoon.net/news/topnews.php?id=10059
+http://www.comisiwnrichard.gov.uk/content/events/lawsociety/hwilliams-w.asp
+http://www.comisiwnrichard.gov.uk/content/evidence/oral/belld/index-w.htm
+http://www.comisiwnrichard.gov.uk/content/evidence/oral/huttj/index-w.asp
+http://www.comisiwnrichard.gov.uk/content/evidence/oral/huttj/index-w.htm
+http://www.comisiwnrichard.gov.uk/content/evidence/oral/ucac/index-w.asp
+http://www.comisiwnrichard.gov.uk/content/evidence/oral/ucac/index-w.htm
+http://www.comisiwnrichard.gov.uk/content/evidence/oral/wdavidmp/index.asp
+http://www.comisiwnrichard.gov.uk/content/evidence/oral/wtb/index-w.asp
+http://www.comisiwnrichard.gov.uk/content/evidence/oral/wtb/index-w.htm
+http://www.comisiwnrichard.gov.uk/content/evidence/written/cardiffpublic/index-w.asp
+http://www.comisiwnrichard.gov.uk/content/evidence/written/cetw/index-w.asp
+http://www.comisiwnrichard.gov.uk/content/evidence/written/stonewall/stonewall-cymru-w.asp
+http://www.comisiwnrichard.gov.uk/content/printpage.asp?ID=/content/evidence/oral/ucac/index-w.asp
+http://www.comisiwnrichard.gov.uk/content/printpage.asp?ID=/content/evidence/written/cetw/index-w.asp
+http://www.comixpedia.com/modules.php?op=modload&name=News&file=article&sid=2039
+http://www.comm.toronto.edu/~frank/guide/guide3.html
+http://www.command-post.org/2004/2004_print.html
+http://www.command-post.org/2_archives/007353.html
+http://www.command-post.org/gwot/2_archives/009991.html
+http://www.command-tab.com/index.php/ipod-super
+http://www.commentarymagazine.com/Summaries/V102I3P6-1.htm
+http://www.commentarymagazine.com/Summaries/V10I4P106-1.htm
+http://www.commentarymagazine.com/Summaries/V32I1P92-1.htm
+http://www.commentarymagazine.com/podhoretz.htm
+http://www.commentarymagazine.com/tips.asp
+http://www.commentarypage.com/
+http://www.commerce.otago.ac.nz/mgmt/nzjir/feature2402-02.html
+http://www.commerce.uct.ac.za/Managementstudies/bbussci/degree.asp
+http://www.commerce.uct.ac.za/managementstudies/bbussci/degree.asp
+http://www.commerceqld.com.au/www/index.cfm?itemID=172
+http://www.commercialalert.org/index.php/category_id/2/subcategory_id/35/article_id/144
+http://www.commercialalert.org/index.php/external/true/article_id/292
+http://www.commercialalert.org/obesitynestle.htm
+http://www.commercialappeal.com/mca/goelvis_king_weeks/article/0,1426,MCA_2779_1303346,00.html
+http://www.commercialappeal.com/mca/red_hot/article/0,1426,MCA_15397_3502718,00.html
+http://www.commercialappeal.com/mca/tigers_mens_basketball/article/0,1426,MCA_652_3464246,00.html
+http://www.commercialappeal.com/mca/tigers_mens_basketball/article/0,1426,MCA_652_3467195,00.html
+http://www.commercialdiplomacy.org/articles_news/trade_inservices9.htm
+http://www.commercialdiplomacy.org/cd_programs/darling/barmeier.htm
+http://www.commercialdiplomacy.org/manuals/manual_economic.htm
+http://www.commercialisation.strath.ac.uk/ResearchExpertise/Business.htm
+http://www.comminit.com/events_calendar/2003-events/events-1877.html
+http://www.commissioneadozioni.it/site/en-GB/Per_una_famiglia_adottiva/The_Path_of_Adoption_/default.html
+http://www.committment.com/alower.html
+http://www.committment.com/kron.html
+http://www.committment.com/taylor1.html
+http://www.commodities-now.com/content/market-news/market-news-2004110853147.php
+http://www.commodities-now.com/content/market-news/market-news-20041117141850.php
+http://www.common-place.org/vol-01/no-01/arming/
+http://www.common-place.org/vol-04/no-01/tales/
+http://www.common-place.org/vol-05/no-03/reviews/hoeflich.shtml
+http://www.commoncause.org/site/pp.asp?c=dkLNK1MQIwG&b=200104
+http://www.commoncounsel.org/pages/workplace.html
+http://www.commondreams.org/bernie_sanders_vs_alan_greenspan.htm
+http://www.commondreams.org/cgi-bin/newsprint.cgi?file=/news2004/1102-05.htm
+http://www.commondreams.org/cgi-bin/print.cgi?file=/headlines03/0402-10.htm
+http://www.commondreams.org/cgi-bin/print.cgi?file=/headlines04/1126-03.htm
+http://www.commondreams.org/cgi-bin/print.cgi?file=/views04/0513-09.htm
+http://www.commondreams.org/cgi-bin/print.cgi?file=/views04/1015-30.htm
+http://www.commondreams.org/cgi-bin/print.cgi?file=/views04/1210-24.htm
+http://www.commondreams.org/cgi-bin/print.cgi?file=/views05/0102-02.htm
+http://www.commondreams.org/headlines01/0307-01.htm
+http://www.commondreams.org/headlines01/0505-01.htm
+http://www.commondreams.org/headlines01/0619-02.htm
+http://www.commondreams.org/headlines01/1220-02.htm
+http://www.commondreams.org/headlines01/1224-02.htm
+http://www.commondreams.org/headlines02/0128-02.htm
+http://www.commondreams.org/headlines02/0513-05.htm
+http://www.commondreams.org/headlines02/0915-07.htm
+http://www.commondreams.org/headlines02/1127-01.htm
+http://www.commondreams.org/headlines02/1203-03.htm
+http://www.commondreams.org/headlines03/0329-03.htm
+http://www.commondreams.org/headlines03/0402-10.htm
+http://www.commondreams.org/headlines03/0414-03.htm
+http://www.commondreams.org/headlines03/0509-08.htm
+http://www.commondreams.org/headlines03/0630-03.htm
+http://www.commondreams.org/headlines03/0831-04.htm
+http://www.commondreams.org/headlines03/1024-01.htm
+http://www.commondreams.org/news2001/0320-03.htm
+http://www.commondreams.org/pressreleases/Dec98/120198b.htm
+http://www.commondreams.org/pressreleases/July98/073198a.htm
+http://www.commondreams.org/pressreleases/June98/062798a.htm
+http://www.commondreams.org/pressreleases/may99/052599i.htm
+http://www.commondreams.org/views/022400-108.htm
+http://www.commondreams.org/views/081400-101.htm
+http://www.commondreams.org/views01/0418-01.htm
+http://www.commondreams.org/views01/0701-02.htm
+http://www.commondreams.org/views01/0723-01.htm
+http://www.commondreams.org/views01/0814-06.htm
+http://www.commondreams.org/views01/0901-03.htm
+http://www.commondreams.org/views01/0915-08.htm
+http://www.commondreams.org/views01/1029-08.htm
+http://www.commondreams.org/views01/1109-01.htm
+http://www.commondreams.org/views01/1222-02.htm
+http://www.commondreams.org/views02/0125-03.htm
+http://www.commondreams.org/views02/0420-01.htm
+http://www.commondreams.org/views02/0719-01.htm
+http://www.commondreams.org/views03/0212-07.htm
+http://www.commondreams.org/views03/0316-08.htm
+http://www.commondreams.org/views03/0403-06.htm
+http://www.commondreams.org/views03/0416-01.htm
+http://www.commondreams.org/views03/0521-10.htm
+http://www.commondreams.org/views03/0701-09.htm
+http://www.commondreams.org/views03/0806-02.htm
+http://www.commondreams.org/views03/0817-07.htm
+http://www.commondreams.org/views03/1027-01.htm
+http://www.commondreams.org/views03/1216-10.htm
+http://www.commondreams.org/views04/0208-05.htm
+http://www.commondreams.org/views04/0308-08.htm
+http://www.commondreams.org/views04/0513-09.htm
+http://www.commondreams.org/views04/0709-11.htm
+http://www.commondreams.org/views04/1014-30.htm
+http://www.commondreams.org/views04/1027-35.htm
+http://www.commondreams.org/views04/1202-33.htm
+http://www.commondreams.org/views04/1215-26.htm
+http://www.commondreams.org/views05/0102-02.htm
+http://www.commondreams.org/views05/0120-22.htm
+http://www.commondreams.org/views05/0207-32.htm
+http://www.commoner.org.uk/02-9groundzero.htm
+http://www.commongoodmovement.com/articles/TheTruthOfScience.asp
+http://www.commonground.ca/iss/0310147/dauncey.shtml
+http://www.commonground.ca/iss/0505166/cg166_weil.shtml
+http://www.commonground.org/org_info/media/articles/2004-04-01_chronicle/
+http://www.commongroundcommonsense.org/forums/index.php?showtopic=28424&view=getnewpost
+http://www.commongroundnews.org/
+http://www.commongroundnews.org/article.php?id=678
+http://www.commongroundnews.org/article.php?mode=2&id=678
+http://www.commongroundnews.org/article.php?mode=3&id=60
+http://www.commongroundradio.org/shows/00/0021.html
+http://www.commonsblog.org/
+http://www.commonsensemedia.org/reviews/review.php?show=kid&id=3049&type=Video%20Game
+http://www.commonsleader.gov.uk/output/page887.asp
+http://www.commonsleader.gov.uk/output/page893.asp
+http://www.commonwealinstitute.org/itstime.html
+http://www.commonwealmagazine.org/article.php?id_article=1002
+http://www.commonwealth.virginia.gov/FAQs/FAQs.cfm
+http://www.commonwealthclub.org/featured.html
+http://www.commonwealthcommonsense.com/
+http://www.commonwealthknowledge.net/MetCD/Chapter5/C5P08.htm
+http://www.commonwealthnorth.org/transcripts/04annual.html
+http://www.commonwealthnorth.org/transcripts/2000meetingintro.html
+http://www.commsdesign.com/design_corner/showArticle.jhtml?articleID=16504307
+http://www.commsdesign.com/main/9803fe4.htm
+http://www.commsdesign.com/news/tech_beat/OEG20030512S0055
+http://www.commtechreview.net/persdfns/secofr.htm
+http://www.commun-i-care.org/faq.html
+http://www.communication.northwestern.edu/csd/courses/?textOnly=1
+http://www.communication.northwestern.edu/performancestudies/programs/graduate/requirements/
+http://www.communication.northwestern.edu/rtf/faculty/Annette_Barbier/
+http://www.communigate.co.uk/york/ynet/page4.phtml
+http://www.communities.qld.gov.au/family/familiesfirst/policy/outcome_1.html
+http://www.communities.qld.gov.au/family/familiesfirst/tipsheets/tipsheet_babies.html
+http://www.communities.qld.gov.au/family/familiesfirst/tipsheets/tipsheet_moretoddlers.html
+http://www.communitiesscotland.gov.uk/nmsruntime/saveasdialog.asp?lID=3284&sID=249
+http://www.communitiesscotland.gov.uk/stellent/groups/public/documents/webpages/cs_007155.hcsp
+http://www.community.net.nz/CommunityCentre/News/National/CharitiesCommissioner.htm
+http://www.communityarts.net/readingroom/archive/56mount.php
+http://www.communityarts.net/readingroom/archive/fuquay68.php
+http://www.communityassociations.net/weblog/
+http://www.communitycare.co.uk/articles/article.asp?liarticleid=44177&liSectionID=10
+http://www.communitycurrency.org/Prime.html
+http://www.communitygreens.org/ExistingGreens/villagehomes/villagehomes.htm
+http://www.communitygreens.org/Resources/FRhdmrcgen.htm
+http://www.communityinclusion.org/publications/text/rp26.html
+http://www.communitymatters.org.uk/aboutus/objectives.htm
+http://www.communityprofiles.mb.ca/province/advantages/business_climate.html
+http://www.communityprofiles.mb.ca/province/advantages/print-business_climate.html
+http://www.communityselfbuildagency.org.uk/index2.html
+http://www.communitysolution.org/sched.html
+http://www.communitytheater.org/discuss/forum/forum_posts.asp?TID=1218&PN=1&get=last
+http://www.commuterpage.com/atp/ben-biking.cfm
+http://www.comnet.ca/~pballan/C3P1.htm
+http://www.comodogroup.com/repository/docs/instantssl_subscriber_agreement.html
+http://www.comp.hkbu.edu.hk/en/undergrad/?content=IS
+http://www.compactequip.com/features.php?Show=gettingthemost
+http://www.compactlaw.co.uk/free_legal_articles/employment_act_2002.html
+http://www.compad.com.au/cms/prinfluences/articles/472
+http://www.companieshouse.gov.uk/about/policyDocuments/welshLangSc.shtml
+http://www.companybarclaycard.co.uk/bus_silver_policy_details.html
+http://www.compar.com/infopool/articles/news1vs8.html
+http://www.compareinterestrates.com/harmonhomes/lib_how_to_shop.html
+http://www.compassconsulting.com/articles/voipintro.html
+http://www.compassionatefriends.org/2005_national_conference/2005_National_Confernce_in_Boston.htm
+http://www.compassionatefriends.org/survey.shtml
+http://www.compassionatwork.com/art_facing_grief.html
+http://www.compassionindying.org/giving.php
+http://www.compassrosesociety.org/BoardMtg2005.htm
+http://www.compassweb.com/cob/kiplinger/200411/us-brazilian_relations.html
+http://www.compax.com/helpful_hints/buying_tips.html
+http://www.compet.com/alphalist.html
+http://www.competencesw.com/csnews/CSNJan03.htm
+http://www.competition-commission.org.uk/our_peop/members/chair_speeches/html/link2-11.htm
+http://www.competitionelectronics.com/media-files/park_pal_operating_instructions.htm
+http://www.competitivehorse.com/
+http://www.compiler.fi/idankaupan/tutkimukset/specialreports/Liuhto-visons.html
+http://www.compilerpress.atfreeweb.com/Anno%20Mirowski%20On%20Playing%20the%20Economics%20Trump%20Card%20in%20the%20Philosophy%20of%20Science%20Why%20It.htm
+http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Advanced-does--usage-example.html
+http://www.compleatmother.com/homebirth.htm
+http://www.compleatmother.com/hosp/liz5.htm
+http://www.compleatmother.com/tea_company.htm
+http://www.compleatsteve.com/essays/toby_art.htm
+http://www.compleatsteve.com/person/scotland_1995.htm
+http://www.complete-review.com/links/links.html
+http://www.complete-review.com/reviews/mcewani/saturday.htm
+http://www.complete-review.com/saloon/
+http://www.complete-review.com/saloon/archive/200308a.htm
+http://www.complete-review.com/saloon/archive/200501a.htm
+http://www.completelindalovelace.com/html/ihow2.html
+http://www.complex-oil.com/eng/
+http://www.compliancepipeline.com/trends/18100122
+http://www.componentsoftware.com/csrcs/Integration/scc.htm
+http://www.compostguide.com/51-100.html
+http://www.compromise.com/
+http://www.compsoc.com/discus4/messages/205/870.html?1044901700
+http://www.compstrategies.com/staffdevelopment/sdresources2.html
+http://www.comptelascent.org/news/member-profiles/profiles/looking-glass.html
+http://www.comptonfoundation.org/environ.html
+http://www.compudirect.net/oki/okidata_toner_is_special.htm
+http://www.compulsivecreative.com/interview.php?intid=24
+http://www.compuserve.co.uk/content/news/more_package.asp
+http://www.compusmart.ab.ca/designs/
+http://www.compusys.co.uk/Compusys/News+and+Promotions/News/Compusys+achieves+Gold+status+in+MPP.htm
+http://www.computacenter.com/Investor/report-accounts-2004/chairman-statement.asp
+http://www.computalaw.com/order/order.asp
+http://www.computer-darkroom.com/ione/ione-1.htm
+http://www.computer-games-station.com/cats/platform,Windows/genre,Action,_Arcade_and_Shooter_Games/
+http://www.computer-jokes.co.uk/computer-joke-10.html
+http://www.computer-training-software.com/digihome.htm
+http://www.computer-vet.com/weblog/
+http://www.computer.org/computer/author.htm
+http://www.computer.org/computer/homepage/0202/ec/
+http://www.computer.org/computer/homepage/0505/profession/
+http://www.computer.org/computer/homepage/0505/random/
+http://www.computer.org/computer/homepage/0604/random/
+http://www.computer.org/computer/homepage/0802/Security/
+http://www.computer50.org/mark1/newman.html
+http://www.computeractive.co.uk/features/1108674
+http://www.computeractive.co.uk/features/1160013
+http://www.computeramerica.com/content/columns/craig/2005/2005-01-17.htm
+http://www.computerbits.com/aboutus/authors.htm
+http://www.computerbits.com/archive/2001/0100/crossplatform.html
+http://www.computerbits.com/archive/2001/0500/telecommuting.html
+http://www.computerbits.com/archive/2004/1100/vaughan0411.html
+http://www.computerbusinessreview.com/content/COMP/magazine/Articles/Business_Applications/PictureThis.asp
+http://www.computerchat.co.nz/stories.php?story=01/08/21/9142920
+http://www.computercrowsnest.com/Holotales/edit_aug2001.htm
+http://www.computercrowsnest.com/sfnews2/02_march/news0302_8.shtml
+http://www.computercrowsnest.com/sfnews2/03_april/review0403_3.shtml
+http://www.computerhistory.org/timeline/timeline.php?timeline_year=1982
+http://www.computerlearningcenter.org/Dreamweaver.html
+http://www.computers.us.fujitsu.com/www/about.shtml?aboutus/backgrounder/index
+http://www.computersolutionsireland.com/serviceagreement.htm
+http://www.computertakeback.com/the_problem/poisonpcstoxictvs.cfm
+http://www.computertakeback.com/the_problem/ppcsttvs2004.cfm
+http://www.computertimes.com/jul03edchoicefamilylawyer.htm
+http://www.computertimes.com/may01edcoicePresario7000.htm
+http://www.computertrainingschools.com/search/PA/
+http://www.computeruser.com/news/00/08/31/news4.html
+http://www.computerwatch.net/content/view/43/
+http://www.computerweekly.com/Article134082.htm
+http://www.computerweekly.com/Article135145.htm
+http://www.computerworld.com.au/index.php
+http://www.computerworld.com.au/index.php/id;471038434;fp;2;fpid;2
+http://www.computerworld.com.au/index.php/id;471038434;relcomp;1
+http://www.computerworld.com.au/index.php/id;589958305;relcomp;1
+http://www.computerworld.com/blogs/node/390
+http://www.computerworld.com/databasetopics/data/software/story/0,10801,100571,00.html
+http://www.computerworld.com/governmenttopics/government/itgovernment/story/0,10801,96288,00.html
+http://www.computerworld.com/governmenttopics/government/legalissues/story/0,10801,96288,00.html
+http://www.computerworld.com/hardwaretopics/storage/story/0,10801,101628,00.html
+http://www.computerworld.com/hardwaretopics/storage/story/0,10801,102325,00.html?SKC=storage-102325
+http://www.computerworld.com/hardwaretopics/storage/story/0,10801,64572,00.html
+http://www.computerworld.com/hardwaretopics/storage/story/0,10801,98148,00.html
+http://www.computerworld.com/managementtopics/management/story/0,10801,99834,00.html
+http://www.computerworld.com/managementtopics/management/story/0,10801,99834,00.html?source=x10
+http://www.computerworld.com/mobiletopics/mobile/story/0,10801,102503,00.html
+http://www.computerworld.com/mobiletopics/mobile/story/0,10801,102503,00.html?SKC=mobile-102503
+http://www.computerworld.com/mobiletopics/mobile/story/0,10801,102503,00.html?from=story_rules
+http://www.computerworld.com/mobiletopics/mobile/story/0,10801,63887,00.html
+http://www.computerworld.com/news/2003/story/0,11280,83864,00.html
+http://www.computerworld.com/news/2005/story/0,11280,100571,00.html
+http://www.computerworld.com/securitytopics/security/holes/story/0,10801,102747,00.html
+http://www.computerworld.com/softwaretopics/os/linux/story/0,10801,88065,00.html
+http://www.computerworld.com/softwaretopics/os/story/0,10801,96288,00.html
+http://www.computerworld.com/softwaretopics/software/appdev/story/0,10801,54157,00.html
+http://www.computerworld.com/softwaretopics/software/groupware/story/0,10801,95471,00.html
+http://www.computerworld.com/softwaretopics/software/report/0,11188,07192004,00.html
+http://www.computerworld.idg.com.au/index.php/id;1074788073;relcomp;1
+http://www.computex.biz/computex2004/Default.asp?HtmlFile=bestchoice4.htm
+http://www.computex.com.tw/show_Special.asp?id=590
+http://www.computhink.com/_documents/articles/Compliance_Top_Concern.asp
+http://www.computing.co.uk/features/1154907
+http://www.computing.co.uk/news/1139486
+http://www.computing.co.uk/products/hardware/1144347
+http://www.computing.dcu.ie/~away/
+http://www.computing.net/gaming/wwwboard/forum/3759.html
+http://www.computing.net/security/wwwboard/forum/14119.html
+http://www.computing.net/windowsme/wwwboard/forum/43907.html
+http://www.comradesandcolleagues.com/pages/help.asp
+http://www.comunidadandina.org/ingles/press/ottawa23-04-99.htm
+http://www.comw.org/poc/0401.html
+http://www.comw.org/rma/
+http://www.comw.org/rma/fulltext/terrorism.html
+http://www.concealedcarry.com/site_news.php
+http://www.conceptualguerilla.com/wagesandresponsibility.htm
+http://www.concern.ie/pressroom_latest.php?Ds_pressroom_latest_ToStep=step_load_news&news_id=80
+http://www.concern.net/pressroom_features.php?Ds_PressroomFeatures_ToStep=step_load_id&article=19
+http://www.concern.net/pressroom_latest.php?Ds_pressroom_latest_ToStep=step_load_news&news_id=215
+http://www.concern.net/pressroom_latest.php?Ds_pressroom_latest_ToStep=step_load_news&news_id=80
+http://www.concernusa.org/fast/CaseStudies.asp
+http://www.concernusa.org/fast/FASTNews.asp
+http://www.concertina.net/guide_english.html
+http://www.concertposterart.com/postersE.htm
+http://www.concierge.com/destination/nevada/search/result/articles?DestinationName=Nevada
+http://www.concierge.com/destination/nevada/search/result/articles?DestinationName=Nevada&ContentSource=Cond%26%23233%3B+Nast+Traveler
+http://www.concierge.com/destination/newyorkcity/features/Editorial/Feature/data/newyorkcity/fodors/WalkingTour_EastVillage.xml/
+http://www.conciergerie.com/foryou/what-to-do/paris/visit-pass.html
+http://www.concord.org/newsletter/2000fall/onlinedev.html
+http://www.concord.org/~kathy/Walden/wldvillage.html
+http://www.concordant.org/expohtml/HumanDestiny/1cor15.html
+http://www.concordcoalition.org/facing_facts/alert_v5_n4.html
+http://www.concordcoalition.org/facing_facts/ff_fax31.html
+http://www.concordcoalition.org/socialsecurity/010806cssssdtestimony.htm
+http://www.concordia.onlinecommunity.com/scamp/
+http://www.concordiahospital.mb.ca/patients.html
+http://www.concordregionalcrimeline.com/crimeline_concord2003.htm
+http://www.concretecentre.com/main.asp?page=671
+http://www.concretechange.org/cost.htm
+http://www.concretelifestyles.com/DecorativeFinishes.htm
+http://www.condohotelcenter.com/alerts/av1.html
+http://www.conductive-education.com/html/news/wright.html
+http://www.conejo-valley-dream-homes.com/index.asp
+http://www.conejo-valley-dream-homes.com/m_about.asp
+http://www.conejo-valley-dream-homes.com/m_home-seller.asp
+http://www.conejo-valley-dream-homes.com/m_homes.asp
+http://www.conejo-valley-dream-homes.com/m_local.asp
+http://www.conejo-valley-dream-homes.com/m_resources.asp
+http://www.conelrad.com/atomic_cafe.html
+http://www.conference-board.org/utilities/pressDetail.cfm?press_ID=2409
+http://www.conferencealerts.com/language.htm
+http://www.conferenceboard.ca/conf/may05/natl-security/overview.htm
+http://www.conferencecall.com/canada/help/tips/attendance.php
+http://www.conferencecall.com/help/tips/attendance.php
+http://www.conferencemediagroup.com/newarrivals.asp
+http://www.conferenceonline.com.au/index.cfm?page=details_venue&pg=1&id=630
+http://www.confidenceworld.com/speaking.htm
+http://www.conflictresolution.uiuc.edu/mediation/roomsurvey.asp
+http://www.congaree.org/justforgirls/fun_faq.html
+http://www.congercoach.com/simply.html
+http://www.congregationalresources.org/article0132.asp
+http://www.congress.org/congressorg/issues/alert/?alertid=7708566&content_dir=ua_congressorg
+http://www.congressfordemocracy.org.uk/bonde%20speech.html
+http://www.congresslink.org/print_basics_histmats_civilrights64_doc7.htm
+http://www.congressmerge.com/onlinedb/cgi-bin/newmemberbio.cgi?member=SCJR&site=congressmerge
+http://www.congressmerge.com/onlinedb/cgi-bin/newmemberbio.cgi?member=SCJR&site=espanol
+http://www.congressonlineproject.org/121803.html
+http://www.conicyt.cl/version-ingles/explora.html
+http://www.coniston-net.com/clubs/community/community.htm
+http://www.conjunctions.com/webcon/roeggla.htm
+http://www.connect-9.com/bethlehem1.htm
+http://www.connectcreditunion.com.au/subpage.cgi?sectionID=6&subsectionID=68
+http://www.connected.org/learn/knowing.html
+http://www.connectedhomemag.com/HomeTheater/Articles/Index.cfm?ArticleID=41473
+http://www.connectforkids.org/content1556/content_show.htm?attrib_id=348&doc_id=71659
+http://www.connectforkids.org/resources3139/resources_show.htm?attrib_id=354&doc_id=43556&parent=82331
+http://www.connectionnewspapers.com/article.asp?article=46721&paper=70&cat=104
+http://www.connerprairie.org/HistoryOnline/economy.html
+http://www.connexions-direct.com/index.cfm?pid=133&catalogueContentID=169
+http://www.connexions.co.uk/culture/html/stones.htm
+http://www.connexions.gov.uk/jobs4u/furtherdetails.cfm?id=110&parentID=270
+http://www.connpsych.org/
+http://www.conquistador.com/lusitano.html
+http://www.consciouschoice.com/2000/cc1304/anotherwomanstreasure1304.html
+http://www.consciouschoice.com/choicebooks/choicebooks1305.html
+http://www.consciouschoice.com/issues/cc1201/y2kandyou.html
+http://www.consciousness.arizona.edu/tucson2002/
+http://www.conseil-constitutionnel.fr/decision/2004/2004498/eng.htm
+http://www.conseil-constitutionnel.fr/decision/2004/2004498/engc.htm
+http://www.conservation.state.mo.us/nathis/exotic/vegman/nineteen.htm
+http://www.conservation.state.mo.us/nathis/insects/butterf/
+http://www.conservationtech.com/FEMA-WEB/FEMA-subweb-flood/01-06-FLOOD/7-Misc-facilities/B.(Misc)HighV-flows.htm
+http://www.conservativeforum.org/EssaysForm.asp?ID=6270
+http://www.conservativenews.org/Politics/archive/199903/POL19990319a.html
+http://www.conservatives.com/policies/
+http://www.conservatives.com/tile.do?def=news.story.page&obj_id=118408
+http://www.conservatives.com/tile.do?def=news.story.page&obj_id=123249&speeches=1
+http://www.conservatives.com/tile.do?def=news.story.page&obj_id=123325
+http://www.conservatives.com/tile.do?def=news.story.page&obj_id=228&speeches=1
+http://www.conservatives.com/tile.do?def=news.story.page&obj_id=96096&speeches=1
+http://www.conservatives.com/tile.do?def=policy.listing.page
+http://www.conservatives.com/tile.do?def=scotland.news.story.page&obj_id=120792&speeches=1
+http://www.conservativethinking.com/archives/round-the-reader/
+http://www.conservativetruth.org/article.php?id=1931
+http://www.consolationchamps.com/
+http://www.consolidated.com/cc/resi/cc_resi_voicemail_help.jsp
+http://www.consortium-chicago.org/research/ria03.html
+http://www.consortiuminfo.org/what/
+http://www.consortiumnews.com/1999/121499b.html
+http://www.consortiumnews.com/1999/122299a.html
+http://www.consortiumnews.com/2001/050101a.html
+http://www.consortiumnews.com/2003/120103.html
+http://www.consortiumnews.com/2004/101904.html
+http://www.consortiumnews.com/2004/102904.html
+http://www.consortiumnews.com/2005/050905.html
+http://www.consortiumnews.com/2005/061205.html
+http://www.conspiracyarchive.com/NWO/Paranoid.htm
+http://www.conspiracypenpal.com/columns/sosorry.htm
+http://www.consrv.ca.gov/CGS/geologic_resources/gold/
+http://www.consrv.ca.gov/cgs/geologic_resources/gold/
+http://www.constitution.org/2ll/schol/jfp5ch04.htm
+http://www.constitution.org/ac/maclay/journal05.htm
+http://www.constitution.org/afp/brutus10.htm
+http://www.constitution.org/ari/ethic_10.htm
+http://www.constitution.org/wr/rawle_17.htm
+http://www.constitution.org/wr/rawle_32.htm
+http://www.constitutioncenter.org/education/ForEducators/LessonPlans/FifthAmendment/5480.shtml
+http://www.constructatlanta.com/featurea/receptionist.html
+http://www.constructionweblinks.com/Resources/Industry_Reports__Newsletters/Aug_16_2004/dist.html
+http://www.constructionweblinks.com/Resources/Industry_Reports__Newsletters/Dec_15_2003/eichleay.htm
+http://www.constructionweblinks.com/Resources/Industry_Reports__Newsletters/Feb_12_2001/productivity_claim.htm
+http://www.constructionwork.com/glossary/s11.html
+http://www.construx.com/returnonsw/support/AssetRetirementUserGuide.txt
+http://www.consular.australia.or.jp/justarrived.html
+http://www.consultingskills.net/resources/
+http://www.consultingtimes.com/archives/2004_11.html
+http://www.consultwebs.com/st-louis-personal-injury-lawyers/
+http://www.consumer-action.org/English/CANews/1997_Summer_Advocacy_EBT/index.php
+http://www.consumer-action.org/English/library/cars/2003_BofA_CarLoan/index.php
+http://www.consumer-guides.info/employment/employment_interviewers/
+http://www.consumer.gov.au/html/direct_marketing/html/Report/3Environment.html
+http://www.consumer.gov.au/html/direct_marketing/html/Report/7TOR4.html
+http://www.consumer.gov.uk/rda/guide/chapter7.htm
+http://www.consumer.qld.gov.au/oft/oftweb.nsf/0/4C95CD28D4DC34CF4A256D410008E744?OpenDocument&L1=Youth+Section
+http://www.consumer.qld.gov.au/oft/oftweb.nsf/0/D99E11C6CFC1A95A4A256D410003EDAF?OpenDocument&L1=Youth+Section
+http://www.consumeraffairs.com/cell_phones/local_phone.htm
+http://www.consumeraffairs.com/homeowners/us_window.html
+http://www.consumeraffairs.com/news04/2005/experian_abandons_data.html
+http://www.consumeraffairs.com/news04/2005/patriot01.html
+http://www.consumeraffairs.com/news04/2005/us_air_attendants.html
+http://www.consumeraffairs.com/news04/vioxx_wsj.html
+http://www.consumeraffairs.govt.nz/aboutus/review/background/key-trends/key-trends-04.html
+http://www.consumeraffairs.govt.nz/consumerinfo/layby.html
+http://www.consumeralert.org/pubs/research/sept97.htm
+http://www.consumerauto.com/scenario.html
+http://www.consumerbuilding.com/ideas_you_can_use_unique.html
+http://www.consumerdirect.gov.uk/before-u-buy/fs_b01.shtml
+http://www.consumerlab.com/results/flaxseed.asp
+http://www.consumerlaw.com/481j.html
+http://www.consumerlaw.org/initiatives/energy_and_utility/liheap52303.shtml
+http://www.consumerlaw.org/initiatives/predatory_mortgage/fdic_com1.shtml
+http://www.consumerpsychologist.com/international.htm
+http://www.consumerreports.org/main/content/display_content.jsp?CONTENT%3C%3Ecnt_id=297923&FOLDER%3C%3Efolder_id=162679&ASSORTMENT%3C%3East_id=333147
+http://www.consumerreports.org/main/content/display_content.jsp?CONTENT%3C%3Ecnt_id=331855&FOLDER%3C%3Efolder_id=162679&ASSORTMENT%3C%3East_id=333147
+http://www.consumerreports.org/main/content/display_content.jsp?CONTENT%3C%3Ecnt_id=378185&FOLDER%3C%3Efolder_id=162679&ASSORTMENT%3C%3East_id=333147
+http://www.consumerreports.org/main/content/display_content.jsp?CONTENT%3C%3Ecnt_id=4071&FOLDER%3C%3Efolder_id=142789&ASSORTMENT%3C%3East_id=333133
+http://www.consumerreports.org/main/content/display_report.jsp?FOLDER%3C%3Efolder_id=419337&ASSORTMENT%3C%3East_id=333141
+http://www.consumerreports.org/main/detailv2.jsp?CONTENT%3C%3Ecnt_id=23347&FOLDER%3C%3Efolder_id=23051
+http://www.consumerreports.org/main/detailv2.jsp?CONTENT%3C%3Ecnt_id=297923&FOLDER%3C%3Efolder_id=162679
+http://www.consumerreports.org/main/detailv4.jsp?CONTENT%3C%3Ecnt_id=161629&FOLDER%3C%3Efolder_id=161605&ASSORTMENT%3C%3East_id=333133
+http://www.consumerreports.org/static/0110bio0.html
+http://www.consumersearch.com/www/automotive/luxury_sedans/fullstory.html
+http://www.consumersearch.com/www/automotive/used_cars_economy_cars/fullstory.html
+http://www.consumersearch.com/www/house_and_home/long_distance_phone_service/fullstory.html
+http://www.consumersonline.gov.au/content/ProductSafety/RIS/resources_RIS_98_2.asp
+http://www.consumersonline.gov.au/content/ProductSafety/RIS/resources_RIS_98_3.asp
+http://www.consumersunion.org/finance/mrgreqfedwc498.htm
+http://www.consumersunion.org/products/fordc1000.htm
+http://www.consumersunion.org/tips/tips-holiday.htm
+http://www.consumerwatchdog.org/healthcare/nw/nw000233.php3
+http://www.consumerwatchdog.org/utilities/nw/nw001582.php3
+http://www.consumerwebwatch.org/dynamic/press-release-beau-brendler.cfm
+http://www.cont-ed.cam.ac.uk/IntSummer/sschools/International/term1/c01.htm
+http://www.cont-ed.cam.ac.uk/IntSummer/sschools/Science/courses/p16.htm
+http://www.cont-ed.cam.ac.uk/PublicCourses/Res/c.html
+http://www.contactinnovations.com/
+http://www.contactpakistan.com/legal/faqs.htm
+http://www.contactprofessional.com/issues/article.asp?ID=57
+http://www.contaxguide.com/archive_contax/050120/050120_florida_news_groups_address_important_concerns_of_gay_seniors.html
+http://www.conted.ox.ac.uk/cpd/healthsciences/courses/ebhc/pg_diploma/fees_and_terms.asp
+http://www.contemplativemind.org/resources/pubs/02lawreport.html
+http://www.contemporaryartscenter.org/calendar/default.lasso
+http://www.contemporarybathdesign.com/stained-glass/
+http://www.contemporaryfamilies.org/2-income%20trap.htm
+http://www.contemporaryfamilies.org/public/articles/change24.htm
+http://www.content-wire.com/Media/Media.cfm?ccs=129&cs=1784
+http://www.contentious.com/articles/1-9/contender1-9.html
+http://www.contentquality.com/tutorial/c21.htm
+http://www.context.co.nz/newsitems/viewdepartment$Defence
+http://www.context.co.nz:8080/stories/storyReader$546
+http://www.context.org/GROUPS/CI/ci.htm
+http://www.context.org/ICLIB/IC02/Gilman2.htm
+http://www.context.org/ICLIB/IC02/Paulson.htm
+http://www.context.org/ICLIB/IC11/WholePer.htm
+http://www.context.org/ICLIB/IC12/Sheldrak.htm
+http://www.context.org/ICLIB/IC13/Playfair.htm
+http://www.context.org/ICLIB/IC20/Shuman.htm
+http://www.context.org/ICLIB/IC22/Barry.htm
+http://www.context.org/ICLIB/IC23/Elgin.htm
+http://www.context.org/ICLIB/IC37/Gartenst.htm
+http://www.context.org/ICLIB/IC37/Gilbert.htm
+http://www.context.org/ICLIB/IC38/Gerbner.htm
+http://www.context.org/ICLIB/IC42/Jeavons.htm
+http://www.contextmag.com/archives/199903/BookExcerpt.asp
+http://www.contextmag.com/archives/199911/VirtualHorizons.asp
+http://www.contextmag.com/archives/199911/VirtualHorizons.asp?process=print
+http://www.contextmag.com/archives/200002/Feature1BlandAmbition.asp
+http://www.contextmag.com/archives/200004/VirtualHorizons.asp
+http://www.contextsmagazine.org/content_sample_v3-4.php
+http://www.conti-tyres.co.uk/conticycle/news/news_sept03.htm
+http://www.conti-tyres.co.uk/conticycle/news/news_sept03part2.htm
+http://www.continentaldrifters.com/betterreview.htm
+http://www.contingentlaw.com/Hiirng%20Temps%20Riskier%20Business.htm
+http://www.continuitycentral.com/feature0136.htm
+http://www.contracostatimes.com/mld/cctimes/living/home/home_improvement/exterior/doors_and_windows/ask_expert_front.htm?forumId=178&mode=display&action=&type=list&pageNo=8
+http://www.contracostatimes.com/mld/cctimes/living/home/home_improvement/exterior/doors_and_windows/ask_expert_front.htm?forumId=178&mode=display&action=&type=list&pageNo=9
+http://www.contracostatimes.com/mld/cctimes/news/state/10708123.htm
+http://www.contracthireandleasing.com/cars/Audi/
+http://www.contracthireandleasing.com/cars/Citroen/
+http://www.contracthireandleasing.com/cars/Vauxhall/
+http://www.contractingbusiness.com/25/SiteMap/Article/False/5351/
+http://www.contractorguides.com/2002costguides.html
+http://www.contractorguides.com/bnifacman20c.html
+http://www.contractors-license.org/oh/Ohio.html
+http://www.contrails.nl/contrails%20research/Contrails%20NASA%2001.htm
+http://www.contrast.org/treesit/archives/2004_07.html
+http://www.contrasto.it/eng/communication/index_stock.asp
+http://www.contributionsmagazine.com/direct_response.html
+http://www.contributionsmagazine.com/julaug03.html
+http://www.control.com.au/bi2003/articles241/feat3_241.shtml
+http://www.control.com/964796944/index_html
+http://www.control.com/965047727/index_html
+http://www.control.com/965237156/index_html
+http://www.converge.org.nz/pma/fs191104a.htm
+http://www.converge.org.nz/pma/rob00231.htm
+http://www.convergedigest.com/standards/standardsarticle.asp?ID=12913
+http://www.conversation-king.com/
+http://www.conversations.org/99-1-turrell.htm
+http://www.conversations.org/jim_campbell.htm
+http://www.conversely.com/Stori/st028.shtml
+http://www.conversionchronicles.com/page.php?PageID=36&tracking=articledifferentiateembedded
+http://www.convivial.com/
+http://www.conzz.com/thump/thump/ltr_931222_tomyfather.html
+http://www.cooking.com/products/shprodde.asp?SKU=300593
+http://www.cookingforengineers.com/article.php?id=45
+http://www.cookmn.com/V,%20Bill%20Lobe.htm
+http://www.cooks.com/rec/search/0,1-00,prime_rib_in_rock_salt,FF.html
+http://www.coolabah.com/ausblog/marie/
+http://www.coolantarctica.com/Antarctica%20fact%20file/antarctica%20environment/whats%20it%20like%20in%20Antarctica2.htm
+http://www.coolcleveland.com/index.php/Main/SkirtingTheIssueWeAreAllMisfits
+http://www.coolios.net/archives/matth.php
+http://www.coollessons.org/
+http://www.coollessons.org/spacecolony.htm
+http://www.coolnurse.com/rape2.htm
+http://www.coolnurse.com/smoking_quit.htm
+http://www.coolrunning.com.au/cgi-bin/ubbcgi/ultimatebb.cgi?ubb=get_topic;f=8;t=000355
+http://www.coolrunning.com/engine/1/1_31/2444.shtml
+http://www.coolrunning.com/engine/2/2_1/165.shtml
+http://www.coolrunning.com/engine/2/2_1/262.shtml
+http://www.coolrunning.com/engine/6/6_1/1073.shtml
+http://www.coolrunning.com/engine/6/6_1/288.shtml
+http://www.coolrunning.com/forums/Forum1/HTML/073047.shtml
+http://www.coolrunning.com/mtwashington/info_week.html
+http://www.coolrunning.com/rd_newsletter/0703.html
+http://www.coolstuffalaska.com/Mall/Stores/StoreInfo/asp/store-id/1000043213.html
+http://www.cooltown.com/cooltown/mpulse/0602-thinker.asp
+http://www.cooltown.com/cooltown/mpulse/0803-moblogging.asp
+http://www.cooltown.com/cooltown/mpulse/1103-computon.asp
+http://www.cooltown.com/cooltown/mpulse/1202-rulesbazaar.asp
+http://www.coolwomen.org/coolwomen/CWsite.nsf/0/A2ACAB7B9C78EE9285256CE60055A94C?OpenDocument
+http://www.coopamerica.org/yearend/fairtrade.html
+http://www.cooper.com/content/insights/newsletters/2004_issue04/Ten_ways_to_kill_design.asp
+http://www.cooscountydemocrat.com/topstories.shtml
+http://www.copebhs.com/Careers%20COPE.htm
+http://www.copeland-corp.com/co/co_6_3_.htm
+http://www.copernic.com/en/products/desktop-search/
+http://www.copernicus.org/EGU/hess/assignment.html
+http://www.copernicus.org/ems/2004/guidelines_for_pc.htm
+http://www.copernicus.org/ems/2005/guidelines_for_pc.htm
+http://www.copernicus.org/icrc/manuscript.htm
+http://www.copernicusmarketing.com/about/mzine/monthlyeds/julaug03.htm
+http://www.coping.org/anger/blocks.htm
+http://www.coping.org/control/letgo.htm
+http://www.coping.org/growth/patient.htm
+http://www.coping.org/victorious/letgovic1.htm
+http://www.copper.org/applications/electrical/pq/casestudy/kgbi_station_A6082.html
+http://www.copper.org/environment/uk/ukrecyc.html
+http://www.copperlily.com/AboutRayWinstone/themartins.html
+http://www.copperriver.org/residentvalues.html
+http://www.copus.org.uk/grants_awarded_2001nsw.html
+http://www.copware.com/support/
+http://www.copyright.cornell.edu/training/Hirtle_Public_Domain.htm
+http://www.copyright.gov/circs/circ1.html
+http://www.copyright.gov/circs/circ15t.html
+http://www.copyright.gov/docs/regstat62499r.html
+http://www.copyright.gov/fedreg/2001/66fr29700.html
+http://www.copyright.gov/title17/92chap1.html
+http://www.copyright.gov/title17/92chap12.html
+http://www.copyright.gov/title17/92chap4.html
+http://www.copyrightaware.gov.au/pathways/students/mean.html
+http://www.cor.eu.int/en/presentation/prior_pres.htm
+http://www.coralcay.org/costs/how_much.php
+http://www.coralss.moe.edu.sg/emagazine/archive/archive2002/sem1/febweek2/educationsystems.htm
+http://www.corante.com/copyfight/archives/2005/05/09/hilary_rosen_laments_apples_drm_strategy.php
+http://www.corante.com/copyfight/archives/2005/05/25/the_economist_rails_on_flawed_bsa_piracy_study.php
+http://www.corante.com/customer/archives/2004_07.html
+http://www.corante.com/importance/
+http://www.corante.com/importance/archives/002098.html
+http://www.corante.com/importance/archives/002343.html
+http://www.corante.com/importance/archives/004563.html
+http://www.corante.com/importance/archives/cat_induce_act.php
+http://www.corante.com/loom/archives/cat_hobbits_homo_floresiensis.html
+http://www.corante.com/many/archives/2004/01/14/adolescence_goes_public.php
+http://www.corante.com/many/archives/2004/01/26/is_social_software_bad_for_the_dean_campaign.php
+http://www.corante.com/many/archives/2004/03/22/relationship_two_worldviews.php
+http://www.corante.com/many/archives/2004/08/02/mimi_ito_on_mobile_devices_and_presence.php
+http://www.corante.com/many/archives/2005/01/20/social_consequences_of_social_tagging.php
+http://www.corante.com/many/archives/2005/01/22/folksonomies_are_a_forced_move_a_response_to_liz.php
+http://www.corante.com/many/archives/2005/01/22/more_on_social_software_as_a_term.php
+http://www.corante.com/mooreslore/archives/2005/06/06/second_secular_humanist_revival_meeting.php
+http://www.corante.com/openmind/archives/001898.php
+http://www.corante.com/personal/
+http://www.corante.com/pipeline/archives/cat_how_not_to_do_it.php
+http://www.corbinball.com/articles_meeting/index.cfm?fuseaction=cor_ArticleView&artid=503&sectionCode=art_meet
+http://www.corbytoday.co.uk/
+http://www.cord.edu/dept/soc.socwk/soc_socwkdept_swcourses.html
+http://www.cordblood.com/cord_blood_news/stem_cell_news/a_heart_muscle.asp
+http://www.cordblood.com/cord_blood_news/stem_cell_news/a_promise.asp
+http://www.cordis.lu/greece/conclusions.htm
+http://www.cordis.lu/improving/public-awareness/science.htm
+http://www.cordis.lu/ist/bwp_en7f.htm
+http://www.cordis.lu/libraries/en/nfp/france-en.html
+http://www.cordis.lu/mariecurie-actions/mscoop/apply.htm
+http://www.core77.com/resource/sell.html
+http://www.coreknowledge.org/CK/about/articles/miscon.htm
+http://www.corelmag.com/newdream/dream101/CHAP03.HTM
+http://www.coreyandjayshow.com/Retrosexuals.html
+http://www.corezon.com/products/CFA.shtml
+http://www.corfield.org/index.cfm?event=blog.archive&month=2003_04
+http://www.cori.ie/justice/about/role_policy.htm
+http://www.corichan.com/contrib/eigocuri.html
+http://www.corichan.com/lyrics/albums/namie-style.html
+http://www.corinproinca.com/english/notes.htm
+http://www.corkcorp.ie/ourservices/environment/demcon.shtml
+http://www.corkcorp.ie/ourservices/finance/revenue.shtml
+http://www.corkid.co.uk/southafricasample.htm
+http://www.corkkerry.ie/accommodation/accomm_types.asp
+http://www.corkmasters.com/index.php?article=44&layout=61&visual=1&view=chronicles
+http://www.corn.org/faq.htm
+http://www.corn.org/web/faq.htm
+http://www.cornell.edu/president/speeches_2003_1012.cfm
+http://www.cornerstone.com/4threcor.html
+http://www.cornerstone.com/antitrus.html
+http://www.cornerstonemag.com/features/iss119/great_is_repentance.html
+http://www.cornerstoneri.com/comments/no,_mr__chairman.htm
+http://www.corning.com/displaytechnologies/ww/en/media_center/press_releases/2004/2004042801.aspx
+http://www.cornwall.gov.uk/Tourism/caccess/prow/budewalk.htm
+http://www.cornwall.gov.uk/Transport/Ltp/detstr/Detstr2f.htm
+http://www.cornwall.gov.uk/business/objone/qr/penwithsep03.htm
+http://www.cornwall.gov.uk/fire/fsafety/fs04.htm
+http://www.cornwall.nhs.uk/rcht/CLIENT/05_facilities/facilities.asp
+http://www.corp.aol.com/whoweare/comminv.shtml
+http://www.corporate-ir.net/ireye/ir_site.zhtml?ticker=AETC&script=400&layout=11
+http://www.corporate-ir.net/ireye/ir_site.zhtml?ticker=BDK&script=1801
+http://www.corporate-ir.net/ireye/ir_site.zhtml?ticker=SIAL&script=410&layout=-6&item_id=634263
+http://www.corporate-ir.net/ireye/ir_site.zhtml?ticker=SIAL&script=410&layout=-6&item_id=671921
+http://www.corporate-ir.net/ireye/ir_site.zhtml?ticker=alex&script=400&item_id=1020304050607
+http://www.corporate-ir.net/ireye/ir_site.zhtml?ticker=alex&script=400&layout=7&item_id=1020304050607
+http://www.corporateaccountability.org/regulation/main.htm
+http://www.corporateartists.com/comedy_the_passing_zone.html
+http://www.corporatelogo.com/articles/341apparel.html
+http://www.corporatetraining.ie/info/about.php
+http://www.corporatewatch.org.uk/magazine/issue9/cw9cm2.html
+http://www.corporatewatch.org.uk/newsletter/issue16/part5.htm
+http://www.corporatewatch.org.uk/profiles/nfu/nfu8.htm
+http://www.corporatewatch.org.uk/resources/working_from_within.htm
+http://www.corporationcentre.ca/docen/pinc/home.asp?t=checkab
+http://www.corporationcentre.ca/docen/pinc/home.asp?t=checkqc
+http://www.corporationcentre.ca/docen/pinc/home.asp?t=checksk
+http://www.corpse.org/issue_14/unm_person/smith.html
+http://www.corptech.com/business-information/applications.php
+http://www.corpun.com/mys00310.htm
+http://www.corpun.com/uks00407.htm
+http://www.corpwatch.org/article.php?id=10449
+http://www.corpwatch.org/article.php?id=11127
+http://www.corpwatch.org/article.php?id=11192
+http://www.corpwatch.org/article.php?id=11244
+http://www.corpwatch.org/article.php?id=11260
+http://www.corpwatch.org/article.php?id=11325
+http://www.corpwatch.org/article.php?id=11624
+http://www.corpwatch.org/article.php?id=11799
+http://www.corpwatch.org/article.php?id=12020
+http://www.corpwatch.org/article.php?id=12201
+http://www.corpwatch.org/article.php?id=12433
+http://www.corpwatch.org/article.php?id=1375
+http://www.corpwatch.org/article.php?id=1810
+http://www.corpwatch.org/article.php?id=447
+http://www.corpwatch.org/article.php?id=4708
+http://www.corpwatch.org/article.php?id=6008
+http://www.corpwatch.org/article.php?id=7608
+http://www.corpwatch.org/article.php?id=7628
+http://www.corpwatch.org/article.php?id=7856
+http://www.corpwatch.org/article.php?id=7890
+http://www.corpwatch.org/article.php?id=852
+http://www.corpwatch.org/article.php?id=878
+http://www.corpwatch.org/print_article.php?&id=10449
+http://www.corpwatch.org/print_article.php?&id=11244
+http://www.corpwatch.org/print_article.php?&id=11799
+http://www.corpwatch.org/print_article.php?&id=11836
+http://www.corpwatch.org/print_article.php?&id=7890
+http://www.corpwatch.org/print_article.php?&id=878
+http://www.corralitoshistory.com/families.html
+http://www.correctionalnews.com/index.cfm?do=otm&action=archive&otm_id=86
+http://www.correctionhistory.org/html/chronicl/nycdoc/html/hynesirish.htm
+http://www.corrections.govt.nz/public/research/psychiatricmorbidity/
+http://www.corrections.state.ne.us/administration/support_services/engineering.html
+http://www.correllconcepts.com/Pizza_Packaging/dream_box.htm
+http://www.correspondences.org/archives/000390.html
+http://www.corrosion-doctors.org/MonitorBasics/Introduction.htm
+http://www.corusconstruction.com/page_9124.htm
+http://www.corvettechallenge.info/04clubchallengepoints.php
+http://www.corwm.org.uk/content-486
+http://www.cos-trust.com/utility/legal.aspx
+http://www.cos.edu/view_page.asp?nodeid=2744&parentid=2258&moduleid=1
+http://www.cosatu.org.za/news/weekly/20050603.htm
+http://www.cosatu.org.za/shop/shop1004/shops1004-04.htm
+http://www.cosatu.org.za/shop/ss0706-3.htm
+http://www.cosforums.com/archive/index.php/t-12303.html
+http://www.cosforums.com/archive/index.php/t-45392.html
+http://www.cosforums.com/archive/index.php/t-7866.html
+http://www.cosmeticpackaginganddesign.com/features/featureJulyAugust041.htm
+http://www.cosmeticsdesign.com/news/listnews.asp?m=1&y=2004
+http://www.cosmeticsdesign.com/news/listnews.asp?m=1&y=2005
+http://www.cosmiclight.com/imagegalleries/beyond.htm
+http://www.cosmoetica.com/B103-DES58.htm
+http://www.cosmos-club.org/journals/1998/ausubel.html
+http://www.cosmos-club.org/journals/1999/kaplan.html
+http://www.cossa.org/CPR/toomeytranscript.htm
+http://www.costablanca-news.com/archives/28nov.htm
+http://www.costablanca-news.com/employ.htm
+http://www.costco.com/Browse/Product.aspx?prodid=10038551&whse=BC&topnav=&cat=115&hierPath=114*115*
+http://www.costik.com/weblog/
+http://www.costik.com/weblog/2004_06_01_blogchive.html
+http://www.costik.com/weblog/2005_04_01_blogchive.html
+http://www.costumes.org/advice/costcraftsmanual/tmpjk8.htm
+http://www.cosworth-technology.co.uk/700_information/700_fuel_eng.htm
+http://www.cotf.edu/ete/modules/korea/kactivities.html
+http://www.cotf.edu/ete/teacher/teacherout.html
+http://www.cotr.bc.ca/trades/cotr_web.asp?IDNumber=199&MenuItem=Heavy+Duty%2FCommercial+Transport+Mechanics&ParentID=Pages
+http://www.cotr.bc.ca/trades/cotr_web_text.asp?IDNumber=199&MenuItem=Heavy+Duty%2FCommercial+Transport+Mechanics&ParentID=Pages
+http://www.cotsjournalonline.com/home/article.php?id=100158
+http://www.cotswolds.info/accommodation/northleach-lodgings.htm
+http://www.cotswolds.info/cotswold-books.htm
+http://www.cotswolds.info/places/moreton-in-marsh.htm
+http://www.cottages4you.co.uk/c4y?action=xsl&view=xsl&xsltId=allabout
+http://www.cottagesunlimited.com/sales.htm
+http://www.cotton.org/issues/2004/csp-comments.cfm
+http://www.cottonboard.org/index.asp?Cat=&sub=&cid=318
+http://www.cottonexperts.com/=file:Labels%20MSDS/20050112170600109974094437384248/file
+http://www.cottonexperts.com/=file:Labels%20MSDS/20050112170609456628694829688581/file
+http://www.cottonexperts.com/beltwide_daily05/
+http://www.cottonsjourney.com/Storyofcotton/page7.asp
+http://www.couchsurfing.com/map_surf.html?id=105625&show=friend_links
+http://www.cougarmtn.com/support/softwareAssurance.asp
+http://www.couns.msu.edu/emotional-trauma.htm
+http://www.couns.uiuc.edu/Brochures/friends.htm
+http://www.couns.uiuc.edu/Brochures/grief.htm
+http://www.counsel.nysed.gov/Decisions/volume38/d13970.htm
+http://www.counsel.nysed.gov/edtopics/technology.htm
+http://www.counsel.ufl.edu/selfHelp/datingSkills.asp
+http://www.counsel.ufl.edu/selfHelp/fairFighting.asp
+http://www.counsel.ufl.edu/selfHelp/handlingFears.asp
+http://www.counsel.ufl.edu/selfHelp/helpingFriend.asp
+http://www.counseling.umd.edu/Infodata/inf_bd5.htm
+http://www.counselingservices.org/past%20spotlights/june2003.htm
+http://www.counselling.cam.ac.uk/eating.html
+http://www.counselling.cam.ac.uk/exams.html
+http://www.counselling.cam.ac.uk/groups.html
+http://www.count.com.au/planning_life/kids_corner.htm
+http://www.counter-surveillance.com/Page_16x.html
+http://www.counterbias.com/blog/
+http://www.countercurrents.org/ei-abunimah240604.htm
+http://www.countercurrents.org/gen-banerjee010503.htm
+http://www.countercurrents.org/iraq-hitmat210804.htm
+http://www.countercurrents.org/pa-omer191004.htm
+http://www.countercurrents.org/peakoil-deffeys270204.htm
+http://www.counterpane.com/jobsfull.html
+http://www.counterpunch.com/jacobs02052005.html
+http://www.counterpunch.org/floyd02152003.html
+http://www.counterpunch.org/leopold01172005.html
+http://www.counterpunch.org/madarasz0527.html
+http://www.counterpunch.org/patrick12222004.html
+http://www.counterpunch.org/sohel1220.html
+http://www.country-data.com/cgi-bin/query/r-13951.html
+http://www.country-studies.com/china/common-social-patterns.html
+http://www.country-studies.com/japan/relations-with-the-united-states.html
+http://www.country-studies.com/pakistan/foreign-economic-relations.html
+http://www.country95.fm/home/results.cfm?QID=464
+http://www.country95.fm/home/results.cfm?QID=624
+http://www.countrycottagesonline.com/Self-catering-August-Bank-Holiday.htm
+http://www.countrycottagesonline.net/project/site/Cottage_details.php?Cottageid=298
+http://www.countryholidays.com.sg/tourDetails.asp?tripKey=111
+http://www.countrynews.com.au/story.asp?TakeNo=200501104548420
+http://www.countryseat.com/store.htm
+http://www.countryside-alliance.org/media-centre/nca/main/010703the.htm
+http://www.countryside.gov.uk/LivingLandscapes/finest_countryside/new_designations/SouthDowns/index.asp
+http://www.countryside.gov.uk/WhoWeAreAndWhatWeDo/boardMeetings/annexes/CA_AP02_28.asp
+http://www.countryside.gov.uk/WhoWeAreAndWhatWeDo/boardMeetings/boardPapers/CA_AP01_17.asp
+http://www.countryside.gov.uk/WhoWeAreAndWhatWeDo/boardMeetings/minutes/12th_minutes.asp
+http://www.countryside.gov.uk/WhoWeAreAndWhatWeDo/boardMeetings/minutes/20th_minutes.asp
+http://www.countryside.gov.uk/WhoWeAreAndWhatWeDo/whoWeAre/speeches_visits/speeches_jan_jun_/chairspeech_23Jan03.asp
+http://www.countrysidemodels.co.uk/homepages/questionnaireonline.htm
+http://www.countrysingles.com/female_personals.htm
+http://www.countrywalker.com/madeira/mad_monte.htm
+http://www.countway.harvard.edu/informatics/courseware/BioCompWWW/generalConsiderations.htm
+http://www.countway.med.harvard.edu/archives/guidanceCommittees.shtml
+http://www.countway.med.harvard.edu/archives/historyNotes.shtml
+http://www.county.oxford.on.ca/economics/economicdevenglish.htm
+http://www.countycar.ie/resources.html
+http://www.countyofinyo.org/Board%20Agenda%20Minutes/board_mi_nutes_-_july_23,_2002.htm
+http://www.countyofinyo.org/Board%20Agenda%20Minutes/board_minutes_-_november_26,_2002.htm
+http://www.countyofrenfrew.on.ca/humanresources/AccessCommittee.htm
+http://www.countyofrenfrew.on.ca/publicworks/roads.htm
+http://www.countyoursheep.com/d/20040125.html
+http://www.couplescompany.com/Advice/Chris/BitesBreaks.htm
+http://www.couplescompany.com/Features/CT/Movies/Fahrenheit911.htm
+http://www.couplescompany.com/Features/Politics/2004/ChildBehind.htm
+http://www.couplesinstitute.com/couples/artman2/publish/article_5.shtml
+http://www.couragetospeak.org/DrugInformation.htm
+http://www.courier-journal.com/cjextra/2005projects/charles/0110/A1-alzdaytwo0110-11961.html
+http://www.courierpostonline.com/columnists/cxan062504a.htm
+http://www.courierpostonline.com/columnists/cxan091904a.htm
+http://www.coursearch.com/articles/school/sat/Sat.html
+http://www.coursecalendar.mcgill.ca/UndergraduateOnline200405-03-1.html
+http://www.courses.lsbu.ac.uk/postgrad/research/index.asp?v1=4
+http://www.courses.vcu.edu/INFO465-gs/orders_&_details.htm
+http://www.coursework.info/i/15914.html
+http://www.coursework.info/i/16256.html
+http://www.coursework.info/i/16913.html
+http://www.coursework.info/i/19046.html
+http://www.coursework.info/i/20950.html
+http://www.coursework.info/i/23106.html
+http://www.coursework.info/i/29795.html
+http://www.coursework.info/i/63983.html
+http://www.court.state.nd.us/court/Notices/970225/rule2.1.htm
+http://www.courts.ie/offices.nsf/lookuppagelink/A92C1F176946C63680256E770049F4A8
+http://www.courts.mo.gov/courts/pubopinions.nsf/0/655db8e2def439a486256e47006ab7bb?OpenDocument
+http://www.courts.mo.gov/courts/pubopinions.nsf/0/fccce115c2be033c86256db0004f50b7?OpenDocument
+http://www.courts.state.me.us/opinions/2004%20documents/04me41hu.htm
+http://www.courts.state.me.us/opinions/2005%20documents/05me20ph.htm
+http://www.courts.state.nh.us/supreme/opinions/2001/neuma173.htm
+http://www.courts.state.ny.us/ctapps/510rules.htm
+http://www.courts.state.ny.us/rules/chiefadmin/116.shtml
+http://www.courts.state.ny.us/supctmanh/brown_at_50.htm
+http://www.courts.state.va.us/drs/faq.html
+http://www.courts.state.wi.us/news/archives/2004/newrule110204.htm
+http://www.courtservice.gov.uk/about_us/our_performance/welsh_lang/e_welshlang/annex_c.htm
+http://www.courtservice.gov.uk/legal_pro/tariffs/tarif_stemp.htm
+http://www.courttv.com/onair/shows/mugshots/indepth/harding_rosenberg.html
+http://www.courttv.com/talk/chat_transcripts/2004/0506houseofclues-karim.html
+http://www.courttv.com/talk/chat_transcripts/2005/0323heists-brasselle.html
+http://www.courttv.com/talk/chat_transcripts/2005/0412heists-myers.html
+http://www.coutts.com/info/contact.asp
+http://www.covchurch.org/cov/financial/12A.html
+http://www.covchurch.org/cov/financial/contents.html
+http://www.covchurch.org/cov/stewardship/help-chair.html
+http://www.covenanter.org/Steele/declarationandtestimony.htm
+http://www.covenanthealthcare.com/body.cfm?id=212
+http://www.coventry.ac.uk/courses/course/279.html
+http://www.coventry.ac.uk/courses/course/9041.html
+http://www.coventry.gov.uk/ccm/navigation/community-and-living/consumer-advice-and-protection/faulty-goods/
+http://www.coventryhall.com.au/hintjones.htm
+http://www.coverbands.com.au/MessageBoard2/topic.asp?ARCHIVE=true&TOPIC_ID=1490&whichpage=6
+http://www.coveredbridgegirlscouts.org/forms.asp
+http://www.coverfire.com/
+http://www.coveringallfamilies.org/Programs.html
+http://www.coveryourasp.net/
+http://www.covewoodlodge.com/cw-njs/lodging-summer.htm
+http://www.cowbeech.force9.co.uk/TOWN.htm
+http://www.cowboylyrics.com/
+http://www.cowsinthebarn.com/
+http://www.coxandforkum.com/
+http://www.coxrail.com/infowanted.htm
+http://www.coyoteblog.com/coyote_blog/2005/06/time_to_thaw_re.html
+http://www.coyoteblog.com/coyote_blog/general_business/
+http://www.cozashop.co.za/spotlight/nissan-micra/index.shtm
+http://www.cp.duluth.mn.us/~ennyman/xon.html
+http://www.cp.org/english/copytalk/ct021997.htm
+http://www.cp.org/survey/c8.htm
+http://www.cp.umist.ac.uk/JCSE/details.html
+http://www.cpa-apc.org/Publications/Archives/CJP/2003/july/vaiva.asp
+http://www.cpa-exam.org/cpa/literature.html
+http://www.cpa.ca/factsheets/parenting.htm
+http://www.cpa.ca/ogloff.htm
+http://www.cpa.ed.ac.uk/edit/2.03/018_Itsafamilyaffair.html
+http://www.cpa.ed.ac.uk/edit/2.04/16_TheOldCollegeDome.html
+http://www.cpa.org.au/garchve5/1111worth.html
+http://www.cpaaindia.org/aboutus/genesis.htm
+http://www.cpaaindia.org/infocentre/
+http://www.cpaaustralia.com.au/cps/rde/xchg/SID-3F57FEDF-38070C80/cpa/hs.xsl/871_11297_ENA_HTML.htm
+http://www.cpag.org.uk/campaigns/press041102_notes.htm
+http://www.cpaireland.ie/custom49/
+http://www.cpatechconf.com/sub-1.htm
+http://www.cpaws-ov.org/a2a7.htm
+http://www.cpaws.org/grassroots-chapters/mb-editorial.html
+http://www.cpb.nl/eng/news/2004_27.html
+http://www.cpc-cpp.gc.ca/DefaultSite/Reppub/index_e.aspx?ArticleID=56
+http://www.cpc-cpp.gc.ca/DefaultSite/Reppub/index_e.aspx?CategoryID=32
+http://www.cpc.ncep.noaa.gov/products/wesley/toga/toga.html
+http://www.cpcb.delhi.nic.in/coinds41.htm
+http://www.cpccorp.com/deep.htm
+http://www.cpcgamereviews.com/t/index5.html
+http://www.cpcml.ca/tmld/D35R10.htm
+http://www.cpcumc.org/elink/around_conf/
+http://www.cpe-sf.com/ruthgroup/downloads/Energy/energypolicyweb.htm
+http://www.cpearson.com/excel/Debug.htm
+http://www.cpen.med.navy.mil/nhcp.cfm?c=msc&sc=child_safety&t=childsafety
+http://www.cpgb.org.uk/worker/241/msacollapses.html
+http://www.cpgb.org.uk/worker/580/aggregate.htm
+http://www.cpi.org/cpiblog/archives/cat_johnson_state_2005.php
+http://www.cpinternet.com/~bhill/sibr/
+http://www.cpinternet.com/~jime/lugers.htm
+http://www.cpiworld.com/started/articles/tellme.asp
+http://www.cpixel.com/other/honesty_friend_zone.asp
+http://www.cpj.org/attacks02/preface.html
+http://www.cpjustice.org/stories/storyReader$383
+http://www.cpjustice.org/stories/storyReader$920
+http://www.cpl33.org/union_factor.htm
+http://www.cpmt.org/scv/courses/csp.html
+http://www.cpmtsudan.org/investigations/Duk%20Padiet/roi_Duk%20Padiet.htm
+http://www.cpomc.org/home.html
+http://www.cpp.com/support/faq.asp
+http://www.cpradr.org/arb-comment.htm
+http://www.cpre.org.uk/campaigns/planning/greenbelts/the-green-belt-success-story.htm
+http://www.cprs.org/conference-educationSaturday.htm
+http://www.cprw.org.uk/press/pn250604.htm
+http://www.cps.ca/english/statements/FN/fn96-02.htm
+http://www.cps.gov.uk/legal/section15/chapter_k.html
+http://www.cps.gov.uk/london/advice_for_professionals/serious_casework_circulars/abuse_of_process_(delay)/
+http://www.cpsalsa.com/Forum/viewtopic.php?t=263
+http://www.cpsd.us/Web/Curriculum/Drama/animalfarm.html
+http://www.cpsp.edu.pk/JCPSP/ARCHIEVE/June2004/page386.asp
+http://www.cpsu.org.au/
+http://www.cpt.coe.int/documents/irl/1999-16-inf-eng.htm
+http://www.cpt.coe.int/documents/irl/2003-37-inf-eng.htm
+http://www.cpt.org/archives/1996/september.html
+http://www.cptonline.org/behindscenes/artstatement.cfm
+http://www.cpuc.ca.gov/proceedings/I0402007.htm
+http://www.cpuc.ca.gov/static/industry/telco/consumer+information/billofrights/archive/040514_brownalt.htm
+http://www.cpuplanet.com/news/article.php/2213141
+http://www.cqaf.com/news.html
+http://www.cqc.state.ny.us/Bestpractices/bestethical.htm
+http://www.cqc.state.ny.us/could_this_happen/case2.htm
+http://www.cqc.state.ny.us/could_this_happen/case29.htm
+http://www.cqc.state.ny.us/hottopics/Leben%20Home%20settlement.htm
+http://www.cqc.state.ny.us/newsletter/87SafetyAlertCautionaryNotesSwimming.htm
+http://www.cqs.com/y2kad.htm
+http://www.cqsb.qc.ca/svs/ginfodc.htm
+http://www.cr.nps.gov/aad/PUBS/NHLEAM/E-Introduction.htm
+http://www.cr.nps.gov/hps/gis/reports/gloss/glossary.htm
+http://www.cr.nps.gov/hps/tps/briefs/brief12.htm
+http://www.cr.nps.gov/hps/tps/briefs/brief15.htm
+http://www.cr.nps.gov/hps/tps/tax/IRSrecapture.htm
+http://www.cr.nps.gov/nr/publications/bulletins/nrb40/nrb40_5.htm
+http://www.cr.nps.gov/nr/travel/baltimore/b31.htm
+http://www.cr.nps.gov/nr/travel/hardin/hon.htm
+http://www.cra-arc.gc.ca/E/pub/tg/rc4108/rc4108eq.html
+http://www.cra-arc.gc.ca/agency/budget2005/changes-e.html
+http://www.cra-arc.gc.ca/tax/charities/policy/ces/ces-013-e.html
+http://www.cra-arc.gc.ca/tax/individuals/topics/income-tax/return/completing/menu-e.html
+http://www.cra-arc.gc.ca/taxcredit/sred/publications/heavy_oil-e.html
+http://www.cra.ba/en/broadcast/?cid=3065
+http://www.cra.org/Activities/craw/dmp/awards/2004/Clodfelter/summerlog.htm
+http://www.cra.org/Activities/snowbird/2002/slides/freeman.html
+http://www.cra.org/govaffairs/blog/archives/000334.html
+http://www.cra.org/reports/wits/chapter_6.html
+http://www.crab.rutgers.edu/~deppen/teach.htm
+http://www.crabcoll.com/journal/sixty.html
+http://www.cradkilodney.net/dmt-1999-05.shtml
+http://www.craft.on.ca/events/ccf_advocacy.html
+http://www.craftcouncil.org/html/magazine/book_dec-jan_2001.shtml
+http://www.crafterschoice.com/doc/full_site_enrollment/fse_about_the_club.jhtml
+http://www.crafterschoice.com/doc/help/help_category.jhtml?category_name=Your%20Account
+http://www.crafterschoice.com/doc/mini_site/ms_about_the_club.jhtml
+http://www.craftfreebies.com/rocklerholiday.html
+http://www.craigentinny.co.uk/resources/ohselect.htm
+http://www.craighospital.org/SCI/METS/breathing.asp
+http://www.craiginteractive.com/
+http://www.craigmarlatt.com/canada/security&defence/caf.html
+http://www.craigmedical.com/Ovu_Cue.htm
+http://www.craigmedical.com/salivascreen5_drug_tests.htm
+http://www.craigslist.org/about/best/bos/23223389.html
+http://www.craigslist.org/about/best/lax/23807450.html
+http://www.craigslist.org/about/best/nyc/27933938.html
+http://www.craigslist.org/about/best/sfo/23025686.html
+http://www.craigslist.org/about/best/sfo/35218073.html
+http://www.craigslist.org/about/best/sfo/71428254.html
+http://www.crankreport.org/2004_11_01_blogarchive.html
+http://www.craphound.com/
+http://www.craphound.com/down/
+http://www.craphound.com/someone/download.php
+http://www.crapville.com/village_idiot/index.asp
+http://www.crash.net/uk/en/feature_view.asp?cid=18&fid=5901
+http://www.crash.net/uk/en/news_view.asp?cid=2&nid=105664
+http://www.crashdown.com/fanfic/crossovers/AKnownStranger_1_Tara.shtml
+http://www.crashonline.org.uk/26/enigma.htm
+http://www.crashonline.org.uk/46/pcw_hardware.htm
+http://www.crashprevention.org/news/news.php?iss=3
+http://www.crashtackle.co.za/features/themaul/themaul.html
+http://www.crashtestdummies.com/albums/god_shuffled_his_feet.html
+http://www.crasiworld.com/beyond/nightfall/turn1.htm
+http://www.crassh.cam.ac.uk/events/2004-5/customarylaw.html
+http://www.cravenpropertydirectory.co.uk/www.mswhewetsons.co.uk/property_details.asp?ID=2498
+http://www.crawforddirect.com/worth.html
+http://www.crawley.org.uk/newslett.htm
+http://www.crayola.com/colorcensus/americas_favorites/display.cfm?color=32
+http://www.crayzee.com/straight/
+http://www.crazyapplerumors.com/archives/000476.html
+http://www.crazycolour.com/os/writing_02.shtml
+http://www.crazydogaudiotheatre.com/deeley.php
+http://www.crazyweiler.com/archives/000596.html
+http://www.crbestbuydrugs.org/drugreports_RXInformation.html
+http://www.crc-net.org.uk/CRC-programme.htm
+http://www.crcah.org.au/index.cfm?attributes.fuseaction=links
+http://www.crcpd.ab.ca/rt2005.html
+http://www.crcsite.org/perspective.htm
+http://www.crd.bc.ca/actionteam/parents.htm
+http://www.cre.gov.uk/duty/reia/how_stage2.html
+http://www.cre.gov.uk/duty/reia/statistics_education.html
+http://www.cre.gov.uk/gdpract/ed_cop_ew_work.html
+http://www.cre.gov.uk/gdpract/ed_cop_scot_work.html
+http://www.crea.co.uk/createcyprus.html
+http://www.creamtec.com/webcream/doc/multithreading.html
+http://www.createcovenants.com/article_dmaa1.htm
+http://www.createstudio.com/art/widenightsky.html
+http://www.createstudio.com/ramallahjourney/RamallahJourneyEmails.html
+http://www.creatinestore.co.uk/categories/Exercise_Equipment.asp
+http://www.creatinglearningcommunities.org/book/additional/holme.htm
+http://www.creatinglearningcommunities.org/book/additional/schafer.htm
+http://www.creatinglearningcommunities.org/book/roots/meighan.htm
+http://www.creatinglearningcommunities.org/book/roots/walkinshaw.htm
+http://www.creatingtechnology.org/concept.htm
+http://www.creationcare.org/responses/faq.php
+http://www.creationent.com/past_events/hx_events/con2001/hxcon2001_4.htm
+http://www.creationethics.org/index.cfm?fuseaction=webpage&page_id=175
+http://www.creationethics.org/index.cfm?fuseaction=webpage&page_id=190
+http://www.creationinthecrossfire.com/documents/Radiomentric%20Dating/Radiometric%20Dating.html
+http://www.creationresearch.org/Merchant2/merchant.mv?Screen=CTGY&Store_Code=CRSOS&Category_Code=C6-SA
+http://www.creationresearch.org/creation_matters/97/cm9711.html
+http://www.creationscience.com/onlinebook/Comets3.html
+http://www.creativecommunities.org.uk/mapdoc.html
+http://www.creativecow.net/show.php?page=/articles/simpson_mark/tornado/index.html
+http://www.creativecremains.com/style.html
+http://www.creativehomeowner.com/glossary/Glossd.html
+http://www.creativehotlist.com/fullProfile.asp?linktarget=fullProfile.asp&indID=47011
+http://www.creativeinfo.net/contact.html
+http://www.creativeinvest.com/cirm/cirm22.html
+http://www.creativekeys.net/FreelanceLiving/article1047.html
+http://www.creativekeys.net/PowerfulPresentations/article1063.html
+http://www.creativepro.com/book/search/583.html
+http://www.creativepro.com/directory/papersupplier/
+http://www.creativepro.com/story/feature/14490.html
+http://www.creativepro.com/story/review/20609.html
+http://www.creativepublic.com/getting_past_tough_times.php
+http://www.creativerefuge.com/pages/spotlight5.htm
+http://www.creativeresistance.ca/united-states/2002-mar30-waist-deep-in-the-big-muddy-interview-with-peete-seeger-orion-afield.htm
+http://www.creativescotland.org.uk/press/releases/121201.htm
+http://www.creativesynth.com/OPINIONS/004_Installations/op_Installations.html
+http://www.creativeteachingsite.com/teach2.htm
+http://www.creativeteachingsite.com/videogames.htm
+http://www.creativewritingcenter.com/Chapbooks%20&%20Tapes.htm
+http://www.creativity-portal.com/becreative/activities/
+http://www.creativity.co.uk/creativity/guhen/rapport_article/
+http://www.creativityshop.com/
+http://www.creator-creation.com/science.htm
+http://www.creb.com/public/careers/bec-a-realtor/new-realtor-courses.php
+http://www.crede.org/research/sd/4.1es.html
+http://www.credit-report-scores.us/budget.you.spending.htm
+http://www.credit-to-cash-advisor.com/news_87.html
+http://www.creditcollectionsworld.com/11sr01.htm
+http://www.creditcollectionsworld.com/cgi-bin/readstory2.pl?story=20040202CCRZ284.xml
+http://www.creditguarantee.co.za/Default.asp?Index=39&ID=44&ISub=9936&sub=2
+http://www.creditinfocenter.com/mortgage/PointsRipOff.shtml
+http://www.credittoday.net/members/1460.cfm
+http://www.creditunions.com/home/articles/template.asp?article_id=1446
+http://www.creia.org/press/
+http://www.creighdeeds.com/blog.htm
+http://www.creighton.edu/~rocsj/liturgy/plan-xmas_contents.html
+http://www.creonline.com/inside.html
+http://www.creonline.com/success-stories/ss-110.html
+http://www.crescent-resources.com/communit/james/drycreek/default.asp
+http://www.crescent-springs.ky.us/another_perspective.htm
+http://www.crescentlife.com/articles/fair_use.htm
+http://www.crescentlife.com/articles/social%20issues/honor2.htm
+http://www.crescentlife.com/disorders/autism.htm
+http://www.cresourcei.org/S-hope.html
+http://www.cresourcei.org/cyeaster.html
+http://www.cresourcei.org/hmovement.html
+http://www.cresourcei.org/isa61.html
+http://www.cresourcei.org/lowhighchurch.html
+http://www.crestnetsales.com/
+http://www.crestor.info/index.asp?did=3430&aid=46623&l1=9&l2=0&ch=Congress+Reports
+http://www.crestwoodmedcenter.com/CustomPage.asp?PageName=Lab%20-%20Operations
+http://www.crf-usa.org/bria/bria12_1.html
+http://www.crf-usa.org/network/net64.html
+http://www.crfc.org/americanjury/damage_awards.html
+http://www.crfonline.org/orc/cro/cro-7.html
+http://www.crgconsulting.co.uk/projects.php?ptype=1
+http://www.crge.umd.edu/publications/Intersection_97/walters.html
+http://www.crh.noaa.gov/dtx/1899.htm
+http://www.crh.noaa.gov/dtx/?page=climate/dtw_summary_2004
+http://www.crh.noaa.gov/dtx/?page=glossary/w
+http://www.crh.noaa.gov/dtx/?page=stories/blizzard1978
+http://www.crh.noaa.gov/dtx/?page=stories/foliage2003
+http://www.crh.noaa.gov/dtx/?page=summer2004_outlook
+http://www.crh.noaa.gov/dtx/?page=summer2004_review
+http://www.crh.noaa.gov/fgf/hydro/red_river_flood.shtml
+http://www.crh.noaa.gov/lmk/soo/research/paps_11794.htm
+http://www.crh.noaa.gov/lsx/climate/torcli/monroemo.htm
+http://www.crh.noaa.gov/pah/1925/fha_body.html
+http://www.crh.noaa.gov/product.php?site=JKL&product=PNSJKL.0506211017
+http://www.crh.noaa.gov/product.php?site=JKL&product=PNSJKL.0506211152
+http://www.crh.noaa.gov/pub/blizzard97/blizzard97.html
+http://www.crh.noaa.gov/pub/ltg/ltg_24aug03_parkcnty_biker_fatal.php
+http://www.cri.ca/publications/june03_communique/licence_application.html
+http://www.cribnotes.com/html/dj-05/dj-05-money.html
+http://www.crichton-official.com/speeches/speeches_quote05.html
+http://www.crichton-official.com/~adara/cgi-bin/messageboard-mc/ultimatebb.cgi
+http://www.cricket.com.au/portal/site/cricketaustralia/menuitem.d4ad98cdc69686be6918d6104420a2a0/
+http://www.cricket365.com/
+http://www.cricketnext.com/news1/next/reporters/rep018.htm
+http://www.crikey.com.au/articles/2004/01/29-0004.html
+http://www.crikey.com.au/articles/2004/06/01-0002.html
+http://www.crikey.com.au/articles/2005/05/09-1204-7954.html
+http://www.crikey.com.au/articles/2005/05/16-1603-9314.html
+http://www.crikey.com.au/media/2002/02/17-triolireith.print.html
+http://www.crikey.com.au/politics/2000/08/13-hillary24.html
+http://www.crikey.com.au/whistleblower/2003/07/01-solomans.html
+http://www.crimblawg.com/waiver/
+http://www.crimedoctor.com/atm.htm
+http://www.crimedoctor.com/home.htm
+http://www.crimelibrary.com/criminal_mind/forensics/serology/3.html?sect=21
+http://www.crimelibrary.com/criminal_mind/forensics/serology/8.html?sect=21
+http://www.crimelibrary.com/criminal_mind/psychology/robert_hare/11.html?sect=19
+http://www.crimelibrary.com/criminology/hazelwood/
+http://www.crimelibrary.com/gangsters_outlaws/mob_bosses/kray/removal_12.html?sect=15
+http://www.crimelibrary.com/gangsters_outlaws/outlaws/kelly/10.html?sect=17
+http://www.crimelibrary.com/gangsters_outlaws/outlaws/kelly/4.html?sect=17
+http://www.crimelibrary.com/notorious_murders/family/crimmins/14.html?sect=12
+http://www.crimelibrary.com/notorious_murders/mass/south_africa/2.html?sect=8
+http://www.crimelibrary.com/notorious_murders/mass/work_homicide/
+http://www.crimelibrary.com/notorious_murders/women/velma_barfield/4.html?sect=11
+http://www.crimelibrary.com/serial_killers/history/gunness/8.html?sect=12
+http://www.crimelibrary.com/serial_killers/predators/heirens/thief_3.html
+http://www.crimelibrary.com/serial_killers/unsolved/diary/two_4.html
+http://www.crimelibrary.com/serial_killers/weird/kids2/effect_5.html?sect=10
+http://www.crimelibrary.com/sheppard/sheppard.htm
+http://www.crimelibrary.com/terrorists_spies/terrorists/jackal/10.html?sect=1
+http://www.crimeprevent.com/docs/v0102.htm
+http://www.crimereduction.co.uk/vehiclecrime41.htm
+http://www.crimereduction.gov.uk/learningzone/cco.htm
+http://www.crimes-of-persuasion.com/Crimes/Delivered/pen_pals.htm
+http://www.crimes-of-persuasion.com/Crimes/InPerson/MajorPerson/ponzi.htm
+http://www.crimes-of-persuasion.com/search.htm
+http://www.crimesofwar.org/archive/archive-deadlycomp.html
+http://www.crimesofwar.org/expert/bush-intro.html
+http://www.crimesofwar.org/expert/me-intro.html
+http://www.crimesofwar.org/expert/me-shamas.html
+http://www.crimesofwar.org/icc_magazine/icc-glasius.html
+http://www.crimesofwar.org/print/expert/me-Shamas-print.html
+http://www.crimesofwar.org/print/expert/me-introduction-print.html
+http://www.crimesofwar.org/thebook/book-review.html
+http://www.crimesofwar.org/thebook/gulf-war.html
+http://www.crimespree.ca/home.php/index.php?m=200411
+http://www.crimethinc.com/a/sh/letters.html
+http://www.crimethinc.com/library/english/washing.html
+http://www.crimetime.co.uk/features/franktallis.php
+http://www.crimlaw.org/defbrief321.html
+http://www.crimlaw.org/defbrief322.html
+http://www.crimsonfeet.org/article123.html
+http://www.crimsonfeet.org/article127.html
+http://www.crimsonfeet.org/article137.html
+http://www.crimsonfeet.org/article184.html
+http://www.crimsonfeet.org/article303.html
+http://www.crimsonfeet.org/article316.html
+http://www.crimsonfeet.org/article321.html
+http://www.crimsonfeet.org/article35.html
+http://www.crin.org/resources/infoDetail.asp?ID=849&flag=report
+http://www.crin.org/violence/search/closeup.asp?infoID=5703
+http://www.crinet.co.uk/news/bulletins.php?view=55
+http://www.crinfo.org/v3-masterresults.cfm?pid=1764
+http://www.crinkles.com/b3act.html
+http://www.crinkles.com/janegood2.html
+http://www.cripplecreekplayers.com/butte.htm
+http://www.crisiscounseling.com/Articles/YouOweMe.htm
+http://www.crisiscounseling.org/TraumaLoss/CopingWithTrauma.htm
+http://www.crisismagazine.com/december2002/feature4.htm
+http://www.crisispapers.org/essays/repub-friend.htm
+http://www.crisispregnancy.com/birth-mother/hospital-time.html
+http://www.crisispregnancy.com/birth-mother/labor-preparation-hospital-checklist.html
+http://www.crisispregnancy.com/birth-mother/post-placement-relating-to-others.html
+http://www.crissycorkboard.org/iyel/voices.htm
+http://www.criswell.edu/facilities.html
+http://www.criticaldance.com/dca/info.html
+http://www.criticalhit.co.uk/w40krp/WD126_knights.shtml
+http://www.criticalmiss.com/issue7/barchapter6-1.html
+http://www.criticalreading.com/novels.htm
+http://www.criticalthinking.com/getProductDetails.do?id=01511&code=c&model=01511BBP&r_section_to_display=product_toc_page.jsp
+http://www.criticalthinking.net/SSConcCTApr3.html
+http://www.criticalthinking.org/forum/index.php?action=recent
+http://www.criticalthinking.org/resources/articles/intellectual-foundations-the-key-missing.shtml
+http://www.criticsociety.com/review.asp?id=1345
+http://www.critpsynet.freeuk.com/pharmaceuticalindustry.htm
+http://www.critrcall.com/key3article.htm
+http://www.crittenden.mvwsd.k12.ca.us/polrules.html
+http://www.crjc.org/heritage/N07-26.htm
+http://www.crjc.org/heritage/V07-3.htm
+http://www.crk.umn.edu/campusinfo/policies/closing.htm
+http://www.crk.umn.edu/people/athletics/fitnesscenter/Nutrition.htm
+http://www.crlaf.org/ab2222.htm
+http://www.crlaf.org/pcun814.htm
+http://www.crlp.org/hill_usfp_icpd.html
+http://www.crlp.org/pr_02_0513la.html
+http://www.crm2day.com/library/EpFkEEyAZAdwvuxtmS.php
+http://www.crmbuyer.com/story/32752.html
+http://www.crn.com/sections/BreakingNews/dailyarchives.asp?ArticleID=41580
+http://www.crn.com/sections/special/hof/hof01.asp?ArticleID=31282
+http://www.crn.vnunet.com/analysis/1153237
+http://www.crn.vnunet.com/analysis/1158112
+http://www.crn.vnunet.com/comment/1156043
+http://www.crn.vnunet.com/comment/1158924
+http://www.crn.vnunet.com/features/1160012
+http://www.crn.vnunet.com/news/1151850
+http://www.crnano.org/Bridges.htm
+http://www.crnano.org/dangers.htm
+http://www.crnano.org/everyone.htm
+http://www.crnano.org/inside.htm
+http://www.crnano.org/products.htm
+http://www.crnano.org/solutions.htm
+http://www.crnano.org/study2.htm
+http://www.crnhomecare.com/html/new_page_7.htm
+http://www.crnusa.org/Shellmedia042401a.html
+http://www.croatiaemb.org/politics/2003/Racan%20PosjetaSve.htm
+http://www.crochet.org/chapter.html
+http://www.crockford.com/wrrrld/begr.html
+http://www.crocus.co.uk/features2/ceanothus/
+http://www.crocus.co.uk/gossip/humour/
+http://www.crocus.co.uk/whatsgoingon/regionallondon/
+http://www.crofterscommission.org.uk/gaidhlig/pi_croftentrantexample.htm
+http://www.crofterscommission.org.uk/pi_croftentrantexample.htm
+http://www.crookedtimber.org/archives/000211.html
+http://www.crookedtimber.org/archives/003197.html
+http://www.crooksandliars.com/
+http://www.cropcirclenews.com/modules/newbb_plus/viewtopic.php?topic_id=237&forum=2
+http://www.cropcircleresearch.com/research/sound/whitecrow.html
+http://www.croquet.org.uk/news/world_player_pack.htm
+http://www.croquetamerica.com/6-wicket-Am.asp
+http://www.croquetamerica.com/gams-rls.asp
+http://www.croquetamerica.com/glossary.asp
+http://www.croquetworld.com/Game/basicbreak.asp
+http://www.cross-stitching.com/awards~year~2002.asp
+http://www.crosscurrents.info/aboutUs.jsp
+http://www.crosscurrents.org/doering.htm
+http://www.crosscurrents.org/kaufman.htm
+http://www.crossharborstudy.com/faq.htm
+http://www.crossroad.to/Books/InvWar/12-gamel.htm
+http://www.crossroad.to/articles2/HP-Movie.htm
+http://www.crossroad.to/articles2/TwistingTruth.html
+http://www.crossroad.to/text/articles/ctfgc97.html
+http://www.crossroads.com/Products/AtTheEdge.asp
+http://www.crossroads.nsc.org/articleTemplate.cfm?id=192&subjectID=4
+http://www.crosssearch.com/People/Youth/Youth_Groups/
+http://www.crosstalk.org/articles/manger.shtml
+http://www.crowcanyon.org/ResearchReports/Shields/Shields_1999_Text.htm
+http://www.crowcanyon.org/ResearchReports/Shields/Shields_2000_text.htm
+http://www.crowddynamics.com/News/jamarat_bridge.htm
+http://www.crp.unt.edu/Design/distance_learning/
+http://www.crpc.rice.edu/newsletters/oct94/director.html
+http://www.crpc.rice.edu/newsletters/sum99/spotlight.html
+http://www.crt-online.org/action.html
+http://www.crtc.gc.ca/archive/ENG/Decisions/2003/db2003-154.htm
+http://www.crtc.gc.ca/eng/NEWS/SPEECHES/2005/s050420.htm
+http://www.cru.uea.ac.uk/~markn/carbon/nerc.htm
+http://www.crucial.com/var/index.asp
+http://www.cruise-eta.com/
+http://www.cruisecritic.com/cruisestyles/articles.cfm?ID=160
+http://www.cruisecritic.com/features/articles.cfm?ID=160
+http://www.cruisediva.com/cost_saving_tips.htm
+http://www.cruisenewsdaily.com/nf40820.html
+http://www.cruisenh.com/2005/highres/about/staff.html
+http://www.cruiseserver.net/travelpage/millennium/day_two.asp
+http://www.cruising.org/About.cfm
+http://www.cruising.org/about.cfm
+http://www.cruisingpower.com/USP/General/PrivacyPolicy.asp?s=5107015C58
+http://www.crummy.com/rachel/2005/04
+http://www.crunchyfrog.net/dixiecup/events.phtml
+http://www.crusader.net/texts/mk/mkch5.html
+http://www.crusader.net/texts/mk/mkv1ch05.html
+http://www.crusader.net/texts/ygg/y21.html
+http://www.crutchfieldadvisor.com/ISEO-rgbtcspd/learningcenter/home/hometheater_planning.html
+http://www.crutchfieldadvisor.com/ISEO-rgbtcspd/learningcenter/home/tv.html
+http://www.crv.com/NewsEvents/News/newsMay122003.html
+http://www.crvp.org/book/Series02/II-2/chapter_v.htm
+http://www.crvp.org/book/Series03/III-14/chapter_xviii.htm
+http://www.crvp.org/book/Series03/III-15/chapter_ix.htm
+http://www.crvp.org/book/Series03/III-7a/chapter_x.htm
+http://www.crwmag.com/CRW/BusRes/Motivate2.html
+http://www.cryingvoice.com/Evolution/Darwin_Owen.html
+http://www.cryonics.org/surgery.html
+http://www.crypticide.com/dropsafe/2004/03/24/
+http://www.crystal-green.com/Past%20Crystal%20Says/crystal_says_05_04.htm
+http://www.crystal-green.com/Past%20Crystal%20Says/crystal_says_08_04.htm
+http://www.crystalacarte.com/about.asp
+http://www.crystalbay.net/
+http://www.crystalclarity.com/author/skarticle11.asp
+http://www.crystalcreeklodge.com/fish.html
+http://www.crystalinks.com/candles.html
+http://www.crystalinks.com/contrails.html
+http://www.crystalinks.com/day6candlemagic.html
+http://www.crystalinks.com/dayafterxmas.html
+http://www.crystalinks.com/dss.html
+http://www.crystalinks.com/egyptexts.html
+http://www.crystalinks.com/egyptmedicine.html
+http://www.crystalinks.com/emerald11bw.html
+http://www.crystalinks.com/indiascience.html
+http://www.crystalinks.com/newmexico.html
+http://www.crystalinks.com/psychicscanning.html
+http://www.crystalinks.com/teutonicknights.html
+http://www.crystalinks.com/weepingstatues.html
+http://www.crystalinks.com/workshop10_10_04.html
+http://www.crystalpalacefoundation.org.uk/Shop/default.asp?id=11
+http://www.crystalwoodlodge.com/act.html
+http://www.crystiesgifts.com/cgi-bin/webc.cgi/NAA.html
+http://www.cs.auckland.ac.nz/diploma/diploma-entry.html
+http://www.cs.auckland.ac.nz/~alan/worknote.htm
+http://www.cs.auckland.ac.nz/~pgut001/
+http://www.cs.berkeley.edu/~jrs/
+http://www.cs.bgu.ac.il/~omri/NNUGA/
+http://www.cs.bham.ac.uk/research/cogaff/crp/
+http://www.cs.bham.ac.uk/resources/staffinfo/handbook/LTStrategy03.html
+http://www.cs.bilkent.edu.tr/~david/derya/stbks1/stbk561.htm
+http://www.cs.bilkent.edu.tr/~david/derya/stbks1/stbk997.htm
+http://www.cs.bris.ac.uk/Tools/Local/Handbook/course.html
+http://www.cs.bris.ac.uk/~flach/ICML04tutorial/
+http://www.cs.bris.ac.uk/~stefan/culture.html
+http://www.cs.clemson.edu/~artpell/classes/462_662/ProjectGuide.html
+http://www.cs.cmu.edu/afs/cs.cmu.edu/user/bam/www/numbers.html
+http://www.cs.colby.edu/~rjones/courses/cs398/history.html
+http://www.cs.columbia.edu/~hgs/etc/writing-bugs.html
+http://www.cs.cornell.edu/Info/People/hollandm/study.html
+http://www.cs.earlham.edu/~jrogers/classes/C++/cplusplus15.html
+http://www.cs.indiana.edu/how.2b/how.2b.community.html
+http://www.cs.jhu.edu/academics_spring04.html
+http://www.cs.jyu.fi/~jpt/doc/thesis/ime-1_5.html
+http://www.cs.man.ac.uk/Research_subweb/Links.asp
+http://www.cs.man.ac.uk/fellowsd-bin/TIP/105.html
+http://www.cs.man.ac.uk/playing-cards/faq.html
+http://www.cs.man.ac.uk/~schalk/work.html
+http://www.cs.mdx.ac.uk/staff/profiles/r_adams.html
+http://www.cs.ncl.ac.uk/old/events/intl.seminars/
+http://www.cs.northwestern.edu/~ian/
+http://www.cs.nsw.gov.au/rpa/RespMed/sleep.htm
+http://www.cs.nyu.edu/courses/fall04/G22.2580-001/lec10.html
+http://www.cs.okstate.edu/~pdcp/vols/vol02/vol02no3soft_reviews.html
+http://www.cs.olemiss.edu/academics/degrees/ms.html
+http://www.cs.olemiss.edu/academics/degrees/phd.html
+http://www.cs.princeton.edu/courses/archive/fall04/cos109/
+http://www.cs.princeton.edu/courses/archive/spr05/cos126/assignments/markov.html
+http://www.cs.princeton.edu/courses/archive/spr05/cos126/faq.html
+http://www.cs.princeton.edu/courses/archive/spring05/cos491/writing/
+http://www.cs.princeton.edu/~jhalderm/cd3/
+http://www.cs.purdue.edu/homes/hosking/cricket/explanation.htm
+http://www.cs.rhul.ac.uk/CompSci/Studying/courses.html
+http://www.cs.rice.edu/CS/CSGSA/DeptInfo/Guidelines/mentor.html
+http://www.cs.rice.edu/~ssiyer/minstrels/poems/1.html
+http://www.cs.rutgers.edu/~lou/530/
+http://www.cs.rutgers.edu/~shklar/www4/rmiller/rhmpapr.html
+http://www.cs.rutgers.edu/~village/opportunities.html
+http://www.cs.sfu.ca/CC/Labs/CSILetiquette.html
+http://www.cs.sfu.ca/~anoop/weblog/archives/2004_10.html
+http://www.cs.sfu.ca/~anoop/weblog/archives/2004_12.html
+http://www.cs.smith.edu/Dept_page/announcements.html
+http://www.cs.state.ny.us/pmi/proposals/ism01.html
+http://www.cs.technion.ac.il/Resources/CS/month-March2005.html
+http://www.cs.toronto.edu/~tfowler/NicomenLake/
+http://www.cs.tut.fi/~jkorpela/HTML3.2/3.7.html
+http://www.cs.tut.fi/~jkorpela/HTML3.2/4.7.html
+http://www.cs.tut.fi/~jkorpela/HTML3.2/5.31.html
+http://www.cs.tut.fi/~jkorpela/html/euro.html
+http://www.cs.tut.fi/~jkorpela/memes.html
+http://www.cs.tut.fi/~jkorpela/prog.html
+http://www.cs.ualberta.ca/~csgsa/modules.php?name=Content&pa=showpage&pid=8
+http://www.cs.ubc.ca/~mrobilla/jex/
+http://www.cs.ucc.ie/~johnj/cs7200/practicals/practical6.html
+http://www.cs.ucl.ac.uk/staff/J.Riegelsberger/trustbuilders_and_trustbusters.htm
+http://www.cs.ucl.ac.uk/staff/W.Langdon/WBL_papers.html
+http://www.cs.ucsb.edu/~agravel/bioproject.html
+http://www.cs.uiowa.edu/~jones/book/dust.html
+http://www.cs.uiuc.edu/graduate/admissions.php
+http://www.cs.umd.edu/gvil/seminar/2002summer.shtml
+http://www.cs.umd.edu/~oleary/gradstudy/node9.html
+http://www.cs.unc.edu/~plaisted/ce/genetics.html
+http://www.cs.unc.edu/~smithja/facetop/
+http://www.cs.usfca.edu/~parrt/course/601/lectures/programming.by.contract.tml
+http://www.cs.usm.maine.edu/~welty/cos368/topics/prototypingB.htm
+http://www.cs.utah.edu/flux/mach4-parisc/html/pamach.html
+http://www.cs.utep.edu/grad/PhD.html
+http://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD619.html
+http://www.cs.utexas.edu/users/vl/notes/weinberg.html
+http://www.cs.uu.nl/wais/html/na-dir/finding-groups/general.html
+http://www.cs.uu.nl/wais/html/na-dir/gardens/plants-by-mail.html
+http://www.cs.uu.nl/wais/html/na-dir/net-abuse-faq/troll-faq.html
+http://www.cs.uu.nl/wais/html/na-dir/tv/er-series/questions.html
+http://www.cs.vassar.edu/~priestdo/lyre.html
+http://www.cs.virginia.edu/research/descriptions.html
+http://www.cs.virginia.edu/~techrep/CS-93-60.ps.Z
+http://www.cs.vu.nl/~aske/db.html
+http://www.cs.waikato.ac.nz/Research/starlog/
+http://www.cs.waikato.ac.nz/genquery.php?linklevel=3&linklist=CS&linkname=Postgraduate_Degrees&linktype=report&listby=Degree_Title&lwhere=unique_record_id=5
+http://www.cs.waikato.ac.nz/studentacm/
+http://www.cs.washington.edu/homes/klee/misc/slashdot.html
+http://www.cs.wisc.edu/graphics/Courses/f2003-cs559/p3.htm
+http://www.cs.wisc.edu/~markhill/conference-talk.html
+http://www.cs.wright.edu/~jslater/syllabi.shtml
+http://www.cs.wustl.edu/icse05/Tutorials/Tutorials.shtml
+http://www.cs.wustl.edu/~schmidt/reuse-lessons.html
+http://www.cs.wustl.edu/~sck/132/current-semester/lab/lab1a/
+http://www.cs.york.ac.uk/hci/seminars.html
+http://www.cs.york.ac.uk/~ian/routes.html
+http://www.csa-dixie.com/liverpool_dixie/stonewall.htm
+http://www.csa.com/hottopics/ern/05jun/overview.php
+http://www.csa.com/hottopics/lang/overview.php
+http://www.csa.com/hottopics/snakehead/overview.php
+http://www.csa.com/hottopics/snakehead/oview.html
+http://www.csa.gov.au/parents/agree.htm
+http://www.csa.gov.au/parents/agree_egs.htm
+http://www.csa.gov.uk/about/foi.asp
+http://www.csa.gov.uk/csreform/existing/index.asp
+http://www.csa.gov.uk/newcsaweb/about/foi.asp
+http://www.csaaul.org/DoNotCallClarification.htm
+http://www.csaceliacs.org/library/gliadinfood.php
+http://www.csaceliacs.org/library/howsandwhys.php
+http://www.csae.com/bookstore
+http://www.csae.com/client/csae/payflow.nsf/home?OpenForm
+http://www.csail.mit.edu/research/abstracts/abstracts04/html/118/118.html
+http://www.csail.mit.edu/research/abstracts/abstracts04/html/247/247.html
+http://www.csam.montclair.edu/~whitener/courses/sp2004/108_sp2004_lec.html
+http://www.csba.org/csmag/Spring05/csMagStoryTemplate.cfm?id=65
+http://www.csba.org/pa/GoldenBell/2005/grant.htm
+http://www.csbmb.princeton.edu/ncc/jdc.html
+http://www.csbps.com/overview/directions.shtml
+http://www.csbsju.edu/admission/apply/
+http://www.csbsju.edu/humanrights/complaint2.htm
+http://www.csc-scc.gc.ca/text/pblct/longterm/long-08_e.shtml
+http://www.csc-scc.gc.ca/text/pblct/methadone/a_e.shtml
+http://www.csc-scc.gc.ca/text/prgrm/corcan/eep_final1_e.shtml
+http://www.csc-scc.gc.ca/text/rsrch/reports/r29/r29e_e.shtml
+http://www.csc.ca/news/default.asp?aID=1108
+http://www.csc.com/industries/financialservices/news/2531.shtml
+http://www.csc.liv.ac.uk/~agents2001/accepted.html
+http://www.csc.noaa.gov/magazine/2004/03/california.html
+http://www.csc.tcd.ie/~vdepaul/modules.php?op=modload&name=XForum&file=viewthread&tid=80
+http://www.csctoronto.com/store/privacy.php
+http://www.csd.uu.se/ifip_tc13/ShackelAward.html
+http://www.csdr.org/2004book/Sedivy.htm
+http://www.cse.lehigh.edu/~dkessler/Projects/VirtualLehigh/vr.html
+http://www.cse.org.uk/cgi-bin/news.cgi?list&archive
+http://www.cse.psu.edu/~nate/pretzel.html
+http://www.cse.ucsc.edu/~karplus/bike/pointers.html
+http://www.cse.unsw.edu.au/~lambert/guns/lindgren.html
+http://www.cseasyrstatelocal013.org/1_9_01minutes.html
+http://www.csemag.com/article/CA499040.html?industryid=23443
+http://www.cset.nesinc.com/CS_altarrgs.htm
+http://www.csfb.com/investment_banking/regional/australia.shtml
+http://www.csft.org.uk/health/default.asp?p=f41
+http://www.csh.k12.ny.us/highschool/data/100_best_high_schools_in_america.htm
+http://www.cshl.edu/96AnReport/report.html
+http://www.csicop.org/doubtandabout/peerreview/
+http://www.csicop.org/doubtandabout/sciencewars/
+http://www.csicop.org/scienceandmedia/blockbuster/
+http://www.csicop.org/si/2000-03/stare.html
+http://www.csicop.org/si/2001-03/stare.html
+http://www.csicop.org/si/9505/belief.html
+http://www.csicop.org/si/9607/tt.html
+http://www.csicop.org/superstition/predict/
+http://www.csidata.com/techjournal/csinews/199911/page01.htm
+http://www.csiguide.com/episode.asp?csi=114
+http://www.csilmilano.com/furniture/Sfastgro.html
+http://www.csimadrasdiocese.org/ecumenical.htm
+http://www.csindy.com/csindy/2004-07-01/village.html
+http://www.csiro.au/melbcsirosec/helix/previous/dec95.html
+http://www.csis.co.uk/travel/annual.asp
+http://www.csis.org/asia/pubs/010413csm_article.htm
+http://www.csis.org/ee/events/
+http://www.csis.org/europe/eurofocus/v2n1.html
+http://www.csis.org/hs/
+http://www.csis.org/html/sp010307lindh.html
+http://www.csis.org/ics/dia/intdebor.html
+http://www.csis.org/pacfor/cc/002Qjapan_rus.html
+http://www.csis.org/pacfor/cc/002Qus_china.html
+http://www.csis.org/pacfor/cc/003Qjapan_rus.html
+http://www.csis.org/pacfor/cc/004Qchina_skorea.html
+http://www.csis.org/pacfor/cc/004Qoverview.html
+http://www.csis.org/pacfor/cc/004Qus_skorea.html
+http://www.csis.org/pacfor/cc/0102Qnk_sk.html
+http://www.csis.org/pacfor/cc/0103Qoa.html
+http://www.csis.org/pacfor/cc/0201Qjapan_china.html
+http://www.csis.org/pacfor/cc/0301Qnk_sk.html
+http://www.csis.org/pacfor/cc/0401Qnk_sk.html
+http://www.csis.org/pacfor/cc/992Qchina_asean.html
+http://www.csis.org/pacfor/ccejournal.html
+http://www.csis.org/pacfor/issues/v04n04_ch1.cfm
+http://www.csiss.org/events/workshops/2002/access2002/
+http://www.csiwisepractices.org/?read=22
+http://www.csiwisepractices.org/?read=39
+http://www.csj.org/infoserv_articles/hassan_steven_strategicinteractionapproach.htm
+http://www.csj.org/infoserv_articles/lottick_edward_physician_experience.htm
+http://www.csl.com.au/CSL_Marketing_Statement.asp
+http://www.csls.ca/books/escc.asp
+http://www.csm.arts.ac.uk/textsite/summer.asp?MA=2&CAT=11&CSM=yes
+http://www.csmonitor.com/2002/0329/p11s02-coop.html
+http://www.csmonitor.com/2002/0618/p14s02-lecl.html
+http://www.csmonitor.com/2002/0805/p02s01-ussc.html
+http://www.csmonitor.com/2003/0416/p13s02-lihc.html
+http://www.csmonitor.com/2003/0701/p18s02-hfks.html
+http://www.csmonitor.com/2003/0813/p01s02-wome.html
+http://www.csmonitor.com/2004/0527/p01s03-woeu.html
+http://www.csmonitor.com/2004/0528/p08s02-coop.html
+http://www.csmonitor.com/2004/0624/p09s02-coop.html
+http://www.csmonitor.com/2004/1118/p15s02-sten.html
+http://www.csmonitor.com/2004/1209/p01s02-usmi.html
+http://www.csmonitor.com/2004/1213/p09s01-coop.html?s=hns
+http://www.csmonitor.com/2005/0124/p11s02-ussc.html
+http://www.csmonitor.com/2005/0202/p11s01-lire.html
+http://www.csmonitor.com/2005/0203/p09s02-coop.html
+http://www.csmonitor.com/2005/0510/p11s01-legn.html
+http://www.csmonitor.com/2005/0510/p11s01-legn.html?s=hns
+http://www.csmonitor.com/2005/0531/p11s01-legn.html
+http://www.csmonitor.com/2005/0607/p03s02-uspo.html
+http://www.csmonitor.com/2005/0609/p09s01-coop.html
+http://www.csmonitor.com/2005/0615/p01s03-ussc.html
+http://www.csmonitor.com/2005/0616/p13s01-sten.html
+http://www.csmonitor.com/durable/1998/02/24/home/home.1.html
+http://www.csmonitor.com/durable/1999/09/30/p15s1.htm
+http://www.csmonitor.com/newsinbrief/brieflies.html
+http://www.csmonitor.com/specials/neocon/quiz/neoconQuiz.html
+http://www.csmworld.org/public/csr_brazil.htm
+http://www.csnews.com/csn/search/article_display.jsp?schema=&vnu_content_id=1000845657
+http://www.csolutions.com.sg/services/industrial/index.shtml
+http://www.csoonline.com/analyst/report383.html
+http://www.csp.org.uk/physiotherapy/features/olympic_tips_guide.cfm
+http://www.cspaaa.com/news/news.asp?Goto=1
+http://www.cspinet.org/integrity/press/200502251.html
+http://www.cspinet.org/nah/dhea1.html
+http://www.cspinet.org/nah/marolest.htm
+http://www.csrees.usda.gov/nea/food/efnep/success-beyond.html
+http://www.csreurope.org/news/page1844/
+http://www.csreurope.org/whatwedo/Stakeholderdialogue/CSREuropesresponse/
+http://www.csrwire.com/article.cgi/3297.html
+http://www.css.edu/users/tboone2/asep/JEPgurney.html
+http://www.cssa.org.za/home.asp?pid=724
+http://www.cssin24hours.com/updates.php
+http://www.cssny.org/pubs/urbanagenda/urban-agenda40.htm
+http://www.cssr.uct.ac.za/
+http://www.cstock.org/news/082001/ticket_prices_going_up.html
+http://www.cstv.com/sports/m-basebl/stories/062005aaf.html
+http://www.csu.edu.au/division/regist/agenda/afc0299.htm
+http://www.csu.edu.au/special/raiss99/brochure/program6.htm
+http://www.csub.edu/ssric-trd/crit/ct12/ctpart2.htm
+http://www.csub.edu/~lwildman/syl576.htm
+http://www.csuchico.edu/phil/ct/ct_assess.htm
+http://www.csuchico.edu/plc/coverltr-ex.html
+http://www.csuchico.edu/sac/staff.html
+http://www.csuchico.edu/~pmccaff/syllabi/SPPA336/336unit15.html
+http://www.csudh.edu/dearhabermas/apsappr01.htm
+http://www.csudh.edu/dearhabermas/autism02.htm
+http://www.csudh.edu/dearhabermas/religion42bk.htm
+http://www.csulb.edu/~eruyle/puvudoc_9506_expense.html
+http://www.csulb.edu/~jsmith10/fanfict.html
+http://www.csulb.edu/~jvancamp/freedom1.html
+http://www.csulb.edu/~jvancamp/freedom4.html
+http://www.csulb.edu/~karenk/20thcwebsite/438final/ah438fin-Info.00003.html
+http://www.csulb.edu/~kmacd/361SEX.html
+http://www.csulb.edu/~sbsluss/Women_and_Business.html
+http://www.csulb.edu/~tstevens/h51worth.htm
+http://www.csun.edu/cod/conf/1999/proceedings/session0080.htm
+http://www.csun.edu/cod/conf/2000/proceedings/0069Romich.htm
+http://www.csun.edu/cod/conf/2000/proceedings/0099Baquis.htm
+http://www.csun.edu/cod/conf/2000/proceedings/0164Navrotski.htm
+http://www.csun.edu/cod/conf/2001/proceedings/0130velasco.htm
+http://www.csun.edu/cod/conf/2002/proceedings/247.htm
+http://www.csun.edu/cod/conf/2003/proceedings/225.htm
+http://www.csun.edu/cod/conf/2003/proceedings/324.htm
+http://www.csun.edu/cod/conf/2004/proceedings/156.htm
+http://www.csun.edu/itr/guides/webpagedesign.html
+http://www.csun.edu/~lg48405/vsf/ch4/ch4_the.html
+http://www.csupomona.edu/~biosci/info/
+http://www.csupomona.edu/~honorsprogram/about.htm
+http://www.csupomona.edu/~hsleff/phys.hs.view.htm
+http://www.csupomona.edu/~jcclark/encelia/abstracts.html
+http://www.csurams.com/article.aspx?articleID=6951
+http://www.csus.edu/president/athletictaskforce.stm
+http://www.csv-rsvpscotland.org.uk/AWARD%20HIGHLIGHTS%20SUCCESS%20OF%20RSVP.htm
+http://www.csv.org.uk/News/Award+for+RSVP+Primary+Care.htm
+http://www.csv.org.uk/News/Press+Releases/Press+Releases+17+July+03+MD+Day+launch.htm
+http://www.csvr.org.za/papers/papewgs.htm
+http://www.csvr.org.za/papers/papfish.htm
+http://www.csvr.org.za/papers/paprapej.htm
+http://www.csvr.org.za/papers/papritch.htm
+http://www.csweek.com/customer_service_week_agendas.php
+http://www.cswu.cz/obiwan/eng/profil.html
+http://www.ct-labs.com/Dr%20C/q33.htm
+http://www.ct.gov/
+http://www.ct.gov/ctportal/cwp/view.asp?a=843&q=246434
+http://www.ct.gov/governorrell/cwp/view.asp?A=1793&Q=285214
+http://www.cta-otc.gc.ca/about-nous/excellence/capacity-assessment_e.html
+http://www.cta.org/CaliforniaEducator/v6i4/feature_miracles.htm
+http://www.ctaa.org/
+http://www.ctba.com/calcup04/oct13prev.htm
+http://www.ctbi.org.uk/index.php?op=modload&name=knowledge&file=kbasepage&LinkID=206
+http://www.ctcchicago.org/mission_sponsors.htm
+http://www.ctcfl.ox.ac.uk/FDTL/three%20skills%20report.shtml
+http://www.ctcnet.org/stories/v5/Story6.htm
+http://www.ctcri.ca/en-pages/nationalbest.htm
+http://www.ctcscotland.org.uk/events/sv2004.html
+http://www.ctdata.com/about_ctdata/2005/01/02/225245.shtml
+http://www.ctdlc.org/Faculty/TeachingTips/avoidcheating.html
+http://www.ctds.info/menorrhagia.html
+http://www.cte.dal.ca/course_detail.php?id=4984
+http://www.ctgolfer.com/boards/instruct/instruction.html
+http://www.ctheory.net/printer.asp?id=111
+http://www.ctheory.net/printer.asp?id=65
+http://www.cthrc.ca/news_dec.shtml
+http://www.cthree.org/Publisher/Article.aspx?id=1116
+http://www.ctic.purdue.edu/KYW/Brochures/Wetlands.html
+http://www.ctie.monash.edu.au/hargrave/righter4.html
+http://www.ctinquiry.org/publications/reflections_volume_4/jenson2.htm
+http://www.ctjts.com/
+http://www.ctk9.com/professional.htm
+http://www.ctkelc.org/thisweek/2004/tw040125.html
+http://www.ctlibrary.com/topics/christian-life/character
+http://www.ctmc.org/
+http://www.ctn.state.ct.us/civics/general%20activites/journalistic_politics.htm
+http://www.ctpberk.org/successstory.htm
+http://www.ctrade.org/
+http://www.ctredpol.org/nclb/
+http://www.ctrf.org/
+http://www.ctrl-a.org/docs/survey-w04.html
+http://www.ctserc.org/summit/Articles/StakeholdersPlanningGroup-2.html
+http://www.ctstateu.edu/univrel/ctreview/spring97/ssahle.html
+http://www.cttjobs.com/resources.cfm?task=viewcategory&categoryid=1236&area=g
+http://www.ctu.edu.vn/coursewares/kinhte/Anhvanchuyennganhkinhte/chapter5.htm
+http://www.ctv.ca/servlet/ArticleNews/idol/CTVShows/1118261346699_113669353/
+http://www.ctv.ca/servlet/ArticleNews/mini/CTVNews/1087347912382_160
+http://www.ctv.ca/servlet/ArticleNews/mini/CTVNews/1087347912382_160?s_name=election2004&no_ads=
+http://www.ctv.ca/servlet/ArticleNews/print/CTVNews/1087347912382_160/?hub=CTVNewsAt11&subhub=PrintStory
+http://www.ctv.ca/servlet/ArticleNews/show/CTVShows/1063299170023_58705707/
+http://www.ctv.ca/servlet/ArticleNews/story/CTVNews/1087347912382_160?s_name=&no_ads=
+http://www.ctv.ca/servlet/ArticleNews/story/CTVNews/1107176107632_5/?hub=TopStories
+http://www.ctv.ca/servlet/ArticleNews/story/CTVNews/1107346804507_43?hub=Canada
+http://www.ctv.ca/servlet/ArticleNews/story/CTVNews/1116950430807_112359630/?hub=TopStories
+http://www.ctv.consumerreports.org/transfat.htm
+http://www.cu-portland.edu/financialaid/faqs.cfm
+http://www.cu-watch.com/
+http://www.cu.edu/~policies/General/email.html
+http://www.cubaminrex.cu/bloqueo/Eng/03_eng_d.htm
+http://www.cubavsbloqueo.cu/LinkClick.aspx?link=390&mid=1409
+http://www.cubbobwhite.net/urbanlegends.htm
+http://www.cube-europe.com/news.php?nid=7152
+http://www.cucy.net/lacp/archives/000001.html
+http://www.cudenver.edu/Resources/Human+Resources/Policies-Rules-Procedures/Policies/Leave+Abuse+Policy.htm
+http://www.cue.org/newsletter/may01.html
+http://www.cug.org/S_Cray/Cray_Pepper.html
+http://www.cuhk.edu.hk/adm/handbook/eng/misc/colleges_e.html
+http://www.cuhk.edu.hk/med/hep/eng/courses/e_healthstudies.htm
+http://www.cuke.com/excerpts-articles/cc%20excerpts/Final%20Season,%20ch19%20Ryuho.html
+http://www.culham.ac.uk/sg/inset_institutional.php
+http://www.culham.ac.uk/watch-christianity/head_view.html
+http://www.culinaryprograms.com/work.htm
+http://www.culma.wayne.edu/students/undergrad_academic_programs.htm
+http://www.cult.canterbury.ac.nz/research/res_student.shtml
+http://www.cultdeadcow.com/panel2001/hacktivism_panel.htm
+http://www.culticstudiesreview.org/csr_news/csr_newsgrp/aylmer_church_2002_02_15.htm
+http://www.cultivate-int.org/issue3/presentations/
+http://www.cultivate-int.org/issue4/ketubbot/
+http://www.cultivate-int.org/issue8/mag-news/
+http://www.cultivate-int.org/issue9/mag-news/
+http://www.cultsock.ndirect.co.uk/MUHome/cshtml/media/peacock.html
+http://www.cultsock.ndirect.co.uk/MUHome/cshtml/nvc/nvc5.html
+http://www.cultsoncampus.com/harekrishna.html
+http://www.cultural-enterprise.com/english/clients.html
+http://www.culturaleconomics.atfreeweb.com/Towards.htm
+http://www.culturalorientation.net/kenyareport03.html
+http://www.culturalstudies.net/
+http://www.culture.gouv.fr/culture/archeosm/en/cosqu2.htm
+http://www.culture.gov.uk/global/press_notices/archive_2005/dvdmarketboost_pactdcms.htm
+http://www.culture.gov.uk/global/press_notices/archive_2005/opo_speech_17jan05.htm?month=January&properties=archive_2005%2C%2Fglobal%2Fpress_notices%2Farchive_2005%2F%2C
+http://www.culture.gov.uk/global/press_notices/archive_2005/opo_speech_17jan05.htm?properties=archive_2005%2C%2Fsport%2FQuickLinks%2Fpress_notices%2Fdefault%2C&month=
+http://www.cultureandrecreation.gov.au/conference4/program.htm
+http://www.cultureby.com/trilogy/archives/000164.html
+http://www.culturechange.org/e-letter-57.html
+http://www.culturechange.org/e-letter-peakoil.html
+http://www.culturechange.org/e-letter-resist.html
+http://www.culturechange.org/fall_of_petroleum_civilization.html
+http://www.culturekitchen.com/archives/003074.html
+http://www.culturelle.com/story_time.jsp
+http://www.culturevulture.net/Television2/InspectorLynley.htm
+http://www.culturevulture.net/Theater/FullMonty.htm
+http://www.culturevulture.net/Theater5/WomanWhoWalked.htm
+http://www.culturewars.org.uk/2004-01/calico.htm
+http://www.culturewars.org.uk/2005-01/indopak2.htm
+http://www.cumberlink.com/PSUfootball/01/Game04/game4.html
+http://www.cumbieloac.com/north_carolina_lawyer_d.html
+http://www.cumbria.gov.uk/ccs/news/archive/140303a.asp
+http://www.cumbria.gov.uk/ccs/news/archive/140303b.asp
+http://www.cumc.columbia.edu/dept/nsg/NSGCPMC/specialties/backpain.html
+http://www.cumminsnursery.com/cherry.htm
+http://www.cumrec.org/newsletter/vol_xx/issue_no1/story7.asp
+http://www.cuna.org/gov_affairs/grassroots/project_d/howto.html
+http://www.cupe.sk.ca/nr-march31-04b.htm
+http://www.cupe3903.tao.ca/
+http://www.cupinfo.com/
+http://www.cupofcomfort.com/page7.htm
+http://www.cura.net/dierenbescherming/fundraising.html
+http://www.curbed.com/archives/categories/manhattan_harlem_east_harlem.php
+http://www.curbed.com/archives/categories/world_trade_center_redevelopment.php
+http://www.curehodgkins.com/hodgkins_experiences/jo_ready.html
+http://www.curia.eu.int/en/instit/presentationfr/rapport/preface.htm
+http://www.curiouslabs.com/go/community/currentnews
+http://www.curiousmath.com/
+http://www.curling.ca/inside_the_cca/about_the_organization/event_management.asp
+http://www.curp.neu.edu/aboutus/associates.htm
+http://www.current.org/
+http://www.current.org/cpb/cpb0510stationsreact.shtml
+http://www.current.org/dtv/
+http://www.current.org/outreach/out020dying.html
+http://www.currentfilm.com/dvdreviews2/xfilesseasontwodvd.html
+http://www.currenthistory.com/archivesep03/currentissue.html
+http://www.currentpsychiatry.com/2003_02/0203_psyber_psy.asp
+http://www.curriculumlink.org/mythicmirror/wk5.html
+http://www.curriculumonline.gov.uk/Subjects/FYr/browselist.htm?taxonid=3325&hid=3002197&navid=3500008
+http://www.curriculumsupport.nsw.edu.au/getFile.cfm?i=194&t=5&d=csdPDHPE
+http://www.cursa-ur.com/articles/BornToSing.htm
+http://www.cursor.org/buddrugg/rugg9.htm
+http://www.cursor.org/stories/oldnews.htm
+http://www.curtalliaume.com/winnings.html
+http://www.curtismedia.com/companyinfo.htm
+http://www.curvemag.com/Detailed/143.html
+http://www.cus.cam.ac.uk/~ppgb/Catdevelopment.html
+http://www.cushings-help.com/cynthia.htm
+http://www.custodyreform.com/reform-files/wwwboard/oldmessages/04-04-01to04-04-30/messages/45557.html
+http://www.custodywar.com/kids.htm
+http://www.customcandybars.com/pricing/
+http://www.customerservicecareers.com/jobs_dir/Champaign_Jobs.asp
+http://www.customguide.com/
+http://www.customrodderweb.com/tech/0207cr_binder/
+http://www.customs.go.th/Customs-Eng/TariffNomenclature/TariffNomenclature.jsp?menuNme=Tariff
+http://www.customs.gov.my/html/eng/pelabur.asp?id=130&category=4
+http://www.customs.gov/nafta/docs/us/chap-17.html
+http://www.customs.gov/xp/CustomsToday/2001/January/custoday_oit.xml
+http://www.cusu.cam.ac.uk/campaigns/womens/minutes_easterI_2004_council.htm
+http://www.cusu.cam.ac.uk/publications/altpro/colleges/trinity.html
+http://www.cut-the-knot.org/ctk/GeometryPraise.shtml
+http://www.cut-the-knot.org/ctk/LiberalArts.shtml
+http://www.cut-the-knot.org/ctk/pww.shtml
+http://www.cutglass.org/articles/art11.htm
+http://www.cutimes.com/links/adlinks.asp
+http://www.cuttingedge.org/articles/p235.html
+http://www.cuttingedge.org/ce1042.html
+http://www.cuttingedge.org/news/n1095.cfm
+http://www.cuttingedge.org/news/n1344.cfm
+http://www.cuttingedge.org/news/n1550.cfm
+http://www.cuttingedge.org/news/n1571.cfm
+http://www.cuttingedge.org/news/n1714.cfm
+http://www.cuttingedge.org/news/n1912.cfm
+http://www.cuttingedgeinfo.com/news/past_news.htm
+http://www.cuug.ab.ca/~lapierrs/creative/kraftwerk/
+http://www.cv4success.com/info/letter_application.html
+http://www.cva.edu/about/about_faqs.htm
+http://www.cvc.org/christmas/
+http://www.cvccomm.com/n_l/idea_exchange_nl7.html
+http://www.cvillenews.com/2005/03/28/council-may-put-art-in-place-back-in-budget/
+http://www.cvwd.org/wateriss/colorado.htm
+http://www.cw.ua.edu/vnews/display.v/ART/2004/09/10/4141429f186ad
+http://www.cw.ua.edu/vnews/display.v/ART/2005/06/16/42b12e16f3c2d
+http://www.cwa-union.org/issues/telecom/fcc/chgrefm.asp
+http://www.cwa.tnet.co.th/Network/tf_domestic.html
+http://www.cwb.ca/en/topics/value_added/index.jsp
+http://www.cwc.gov/treaty/annex_veri/annex-06_html
+http://www.cwfa.org/articledisplay.asp?id=910&department=CWA&categoryid=education
+http://www.cwfa.org/articles/5048/CWA/misc/
+http://www.cwfa.org/familyvoice/2001-09/06-15.asp
+http://www.cwnews.com/news/viewstory.cfm?recnum=21821
+http://www.cwob.com/yellowtext/yellowtext0204.html
+http://www.cwob.com/yellowtext/yellowtext0405.html
+http://www.cwoodshop.com/gun_knife.shtml
+http://www.cwrl.utexas.edu/about/about_history.shtml
+http://www.cwrl.utexas.edu/~bump/FS3011/web/Jose/rlm.htm
+http://www.cwrnh.com/
+http://www.cwrr.com/Amtrak/w_chief.html
+http://www.cwrr.com/Amtrak/w_cno.html
+http://www.cwru.edu/development/staff/
+http://www.cwru.edu/finadmin/humres/eerel/ecsg.html
+http://www.cwru.edu/pubaff/univcomm/rel-archive/med-stud.htm
+http://www.cws-scf.ec.gc.ca/nwrc-cnrf/migb/memo_75_e.cfm
+http://www.cwsf.info/response.php
+http://www.cwu.edu/~cob/news/research.html
+http://www.cwu.edu/~cwuadmis/international.html
+http://www.cwu.edu/~observer/story.php?storyid=3168&navArea=Sports
+http://www.cwu.edu/~saffairs/studentjudicialcode.html
+http://www.cwu.ie/members/Agreements/PPFFram2.htm
+http://www.cwu.ie/members/Agreements/PPFOver.htm
+http://www.cxcskiing.org/midWest/0304/Forms/StaringLake.htm
+http://www.cxlogic.com/index.php?p=writing/yesterday
+http://www.cyansoftware.com/eProof_success_stories.htm
+http://www.cyb-glassfibre.co.uk/GRPMaintenance.htm
+http://www.cyb-glassfibre.co.uk/grpdoc.htm
+http://www.cyber-rights.org/reports/hl-let2.htm
+http://www.cyber-sea.com/htmfiles/web9.htm
+http://www.cyber-tango.com/art/code.html
+http://www.cyber-village.net/ginfo_payment.htm
+http://www.cyberattic.com/directory/Holiday580.html
+http://www.cyberbilly.com/meathenge/archives/000225.html
+http://www.cyberclass.net/cooper.htm
+http://www.cybercollege.com/tvp030.htm
+http://www.cybercollege.com/tvp037.htm
+http://www.cyberdating.net/glen_truth1.html
+http://www.cyberdyaryo.com/bboard/bboard.htm
+http://www.cyberedge.com/vru_papers/barber.htm
+http://www.cybergecko.com/events.htm
+http://www.cyberindian.com/mother-teresa/beyond-the-image-book.php
+http://www.cyberinsights.com/s_smarterstats.htm
+http://www.cybernetexpo.com/
+http://www.cyberpat.com/essays/flan.html
+http://www.cyberpet.com/cyberdog/articles/behavior/addpet2d.htm
+http://www.cyberpsych.org/pdg/pdghist.htm
+http://www.cyberroach.com/analog/an18/an18-044.htm
+http://www.cyberscore.net/chart/371
+http://www.cyberscrub.com/antivirus/glossary.php
+http://www.cybersecuritieslaw.com/GDC/fd_call1.htm
+http://www.cybersmartcurriculum.org/lesson_plans/68_03.asp
+http://www.cybertherapy.info/pages/hfact.htm
+http://www.cyberunions.net/articles/article_shostak_1.htm
+http://www.cyberunions.net/articles/article_shostak_3.html
+http://www.cyberus.ca/~carls/cs_sig97.htm
+http://www.cyberussr.com/hcunn/guns/proh-def.html
+http://www.cyberussr.com/rus/dreiser.html
+http://www.cyberwest.com/cw09/v9scwst3.html
+http://www.cyc-net.org/Journals/rty-5-2.html
+http://www.cyc-net.org/cyc-online/cycol-0500-modelling1.html
+http://www.cyc-net.org/cyc-online/cycol-1201-dovey.html
+http://www.cyclades.com/solutions/security.php
+http://www.cycle-heaven.co.uk/folding_bikes.html
+http://www.cycleclub-bexley.org.uk/
+http://www.cyclewales.org.uk/newsapr04.htm
+http://www.cycling.pdx.edu/Training.htm
+http://www.cyclingforums.com/archive/index.php/t-107128.html
+http://www.cyclingforums.com/t211140-just-feeling-sad-and-scared-right-now.html
+http://www.cyclingnews.com/letters/2001/jul04letters.shtml
+http://www.cyclingnews.com/mtb.php?id=riders/2003/interviews/JHK03
+http://www.cyclingnews.com/riders/2002/interviews/?id=ogrady021
+http://www.cyclingnews.com/road/2002/tour02/?id=diaries/etxebarria_022
+http://www.cyclingnews.com/road/2002/tour02/?id=diaries/sanchez02
+http://www.cyclingnews.com/road/2003/tour03/?id=news/jul03/jul24news2
+http://www.cyclingnews.com/road/2003/tour03/?id=photos
+http://www.cyclingnews.com/road/2004/tour04/?id=features/interviews/stuart_ogrady04
+http://www.cyclingnews.com/tech.php?id=tech/2004/reviews/polar725
+http://www.cyclingnews.com/tech/2001/tech16aug.shtml
+http://www.cyclingnews.com/tech/?id=2002/letters/october29
+http://www.cyclingnews.com/track/2005/mar05/bendigo05/?id=results/bendigo051
+http://www.cyclingnz.com/science.phtml?n=49
+http://www.cyclingplus.co.uk/forum/topic.asp?TOPIC_ID=53078&whichpage=1
+http://www.cyclingplus.co.uk/forum/topic.asp?TOPIC_ID=68721&whichpage=2
+http://www.cyclingplus.co.uk/forum/topic.asp?whichpage=-1&TOPIC_ID=53078&REPLY_ID=541744
+http://www.cyclingscotland.org/forum/topic.asp?TOPIC_ID=263
+http://www.cyclismo.org/tutorial/matlab/vector.html
+http://www.cyclone.com/warranty/
+http://www.cydjournal.org/2003Spring/checkoway.html
+http://www.cyg.net/~jblackmo/diglib/telc.html
+http://www.cygnus-books.co.uk/features/full_catastrophe_living.htm
+http://www.cygnus-books.co.uk/features/lovesong_universe_mary_sparrowdancer.htm
+http://www.cylab.cmu.edu/default.aspx?id=296
+http://www.cylab.cmu.edu/files/winternewsletter.htm
+http://www.cymbet.com/cr_021016.php
+http://www.cymok.com/index2.asp
+http://www.cyndislist.com/medical.htm
+http://www.cynical-c.com/archives/2005_04.html
+http://www.cynicscorner.org/ds9_6/ds9_6s.html
+http://www.cynthiaharrison.com/
+http://www.cynthialeitichsmith.com/newreading.htm
+http://www.cypherltd.com/ebmachine.php
+http://www.cypressnet.com/Products/autotask/autotask.htm
+http://www.cyprus-apartments.net/balmyra.html
+http://www.cyprus-mail.com/news/main.php?id=17735&cat_id=4
+http://www.cysanorth.org/Coaching/coaching.htm
+http://www.cyto.purdue.edu/
+http://www.cytographics.com/resource/catalog/tapes/in-cp.htm
+http://www.cytosport.com/news/pr_11_06_04.htm
+http://www.czech.cz/inc/print.php?action=text&id=21
+http://www.czech.cz/index.php?section=3&menu=113&action=text&id=88
+http://www.d-a-l.com/help/archive/index.php/t-15329.html
+http://www.d-a-l.com/help/archive/index.php/t-708.html
+http://www.d-a-l.com/help/showthread.php?goto=lastpost&t=302
+http://www.d-a-l.com/help/showthread.php?goto=newpost&t=302
+http://www.d-a-l.com/help/showthread.php?t=15329
+http://www.d-a-l.com/help/showthread.php?t=302&page=3
+http://www.d-a-l.com/help/showthread.php?t=302&page=3&pp=10
+http://www.d-and-d.com/tinas/actionbox.html
+http://www.d-n-i.net/al_aqsa_intifada/plo_response_mitchell_report.htm
+http://www.d-n-i.net/fcs/comments/c214.htm
+http://www.d-n-i.net/lind/lind_1_14_05.htm
+http://www.d-n-i.net/lind/lind_archive.htm
+http://www.d-r.com/articles/article/art_111.htm
+http://www.d.umn.edu/ehso/infectious_waste/dispose.htm
+http://www.d.umn.edu/lib/librarycopyright.html
+http://www.d.umn.edu/~dcole/phillang/WilliamJamesPragmatismLecture6.htm
+http://www.d.umn.edu/~scastleb/Some%20Interesting%20(and%20some%20useful)%20Web%20Pages.htm
+http://www.d.umn.edu/~svanderh/plato_soc.htm
+http://www.d20zines.com/html/modules.php?op=modload&name=News&file=article&sid=586
+http://www.d3football.com/dailydose/?p=36
+http://www.da.org.za/da/Site/Eng/campaigns/BIG.asp
+http://www.dabar.org/Homiletics/Celebrating/Pageants.htm
+http://www.dabnet.org/mar_fam.htm
+http://www.dachshund-tips.com/
+http://www.dacton.com/rose.html
+http://www.dad.shoesforindustry.net/dad11.html
+http://www.dadalos-europe.org/int/grundkurs1/grundkurs_1.htm
+http://www.dadalos.org/frieden_int/grundkurs_4/peer_mediation.htm
+http://www.dadamo.com/bloggers/k/
+http://www.dadamo.com/columns/profiles/ask2.pl
+http://www.dadamo.com/fao/smartfaq.cgi?answer=1090346257
+http://www.dadamo.com/napharm/store3/template2/encyclopedia.html
+http://www.dadams.co.uk/celebs.htm
+http://www.dadashri.org/dadavideo.html
+http://www.daddac.com/articles_&_poems.htm
+http://www.daddys.com/content/geartips/mtocker/june05.shtml
+http://www.dadgum.com/giantlist/
+http://www.dads.state.tx.us/homepage/hhs_drug_benefit.html
+http://www.dads.state.tx.us/services/
+http://www.daelnet.co.uk/countrynews/archive/2001/country_news_241002.cfm
+http://www.daemonology.net/hyperthreading-considered-harmful/
+http://www.daffodil.org/ncds/shows.htm
+http://www.daft.ie/mortgages/mortgagesexplained.daft
+http://www.daft.ie/ni/rooms_to_share/
+http://www.dafyomi.co.il/berachos/reviewa/br-ra-28.htm
+http://www.dahrjamailiraq.com/hard_news/archives/hard_news/000160.php
+http://www.dai-sho.com/colorblindness/ran.htm
+http://www.daibosatsu.org/sf02news/sf02nyz.html
+http://www.dailybible.com/tev/01/tev0129t.htm
+http://www.dailybreeze.com/news/regstate/articles/1234017.html
+http://www.dailybreeze.com/news/regstate/articles/1623726.html
+http://www.dailybruin.ucla.edu/news/articles.asp?ID=33532
+http://www.dailybruin.ucla.edu/news/articles.asp?id=33780
+http://www.dailycamera.com/bdc/theater/article/0,1713,BDC_2515_3466161,00.html
+http://www.dailycandy.com/article.jsp?ArticleId=22247&city=5
+http://www.dailycardinal.com/news/2002/10/21/Features/Falling.Into.The.Scariest.Time.Of.The.Year-301943.shtml
+http://www.dailycardinal.com/news/2004/03/22/News/Swing.States.Remain.Crucial.To.2004.Presidential.Election-637850.shtml
+http://www.dailycollegian.com/vnews/display.v/ART/2005/02/15/42116d7305dfe
+http://www.dailyemerald.com/vnews/display.v/ART/2005/05/27/429708e5b42fb
+http://www.dailyfreepress.com/news/2003/05/01/News/President.Search.Could.End.By.Next.September-430775.shtml
+http://www.dailyfreepress.com/news/2003/10/14/Sports/Thank.You.Come.Again.You.Want.Pressure.Well.Come.And.Get.It-527794.shtml
+http://www.dailyfx.com/index.php?option=com_content&task=view&id=1495&Itemid=50
+http://www.dailyfx.com/index.php?option=com_content&task=view&id=186&Itemid=39
+http://www.dailygrail.com/node/1516
+http://www.dailygrail.com/node/254
+http://www.dailygrail.com/node/view/254
+http://www.dailyguideposts.com/PositiveThinking/ptm.asp
+http://www.dailyhampshiregazette.com/entertainment/dining/entstory.cfm?id_no=10700152005
+http://www.dailyherald.com/business/businessstory.asp?id=62142
+http://www.dailyhowler.com/dh020305.shtml
+http://www.dailyhowler.com/dh061305.shtml
+http://www.dailyhowler.com/dh101602.shtml
+http://www.dailyhowler.com/h011300_1.shtml
+http://www.dailyhowler.com/h011800_1.shtml
+http://www.dailyhowler.com/h030601_1.shtml
+http://www.dailyhowler.com/h041098_1.shtml
+http://www.dailyhowler.com/h041599_1.shtml
+http://www.dailyhowler.com/h042699_1.shtml
+http://www.dailyhowler.com/h052400_1.shtml
+http://www.dailyhowler.com/h061400_1.shtml
+http://www.dailyhowler.com/h070699_1.shtml
+http://www.dailyhowler.com/h071300_1.shtml
+http://www.dailyhowler.com/h071399_1.shtml
+http://www.dailyhowler.com/h082301_1.shtml
+http://www.dailyhowler.com/h110201_1.shtml
+http://www.dailyinfo.co.uk/guide/leisure_recreation.htm
+http://www.dailyiowan.com/news/2002/10/15/Nation/Va.Female.Killed.At.Home.Depot.Sniper.Suspected-297030.shtml
+http://www.dailyitem.com/archive/2004/0823/biz/stories/06biz.htm
+http://www.dailyitem.com/archive/2005/0217/local/stories/12local.htm
+http://www.dailykos.com/section/Democrats
+http://www.dailykos.com/section/culture
+http://www.dailykos.com/story/2003/11/5/164116/935
+http://www.dailykos.com/story/2004/10/10/225656/93
+http://www.dailykos.com/story/2004/10/31/84014/820
+http://www.dailykos.com/story/2004/10/7/195425/367
+http://www.dailykos.com/story/2004/11/29/72830/001
+http://www.dailykos.com/story/2004/12/24/18317/056
+http://www.dailykos.com/story/2004/3/7/213753/1954
+http://www.dailykos.com/story/2005/1/19/181824/607
+http://www.dailykos.com/story/2005/1/22/233743/636
+http://www.dailykos.com/story/2005/1/26/144024/687
+http://www.dailykos.com/story/2005/2/5/231925/7787
+http://www.dailykos.com/story/2005/2/7/142129/5541
+http://www.dailykos.com/story/2005/3/29/113651/512
+http://www.dailykos.com/story/2005/4/27/104035/827
+http://www.dailykos.com/story/2005/5/6/22220/02926
+http://www.dailykos.com/story/2005/6/18/5297/35724
+http://www.dailykos.com/story/2005/6/2/12202/37060
+http://www.dailykos.com/storyonly/2004/12/9/12813/2522
+http://www.dailykos.com/storyonly/2005/6/18/31146/3144
+http://www.dailykos.com/storyonly/2005/6/18/5297/35724
+http://www.dailylobo.com/news/2003/04/15/Opinion/Cannot.Judge.Life.Too.Soon-418020.shtml
+http://www.dailymail.co.uk/pages/live/articles/columnists/columnists.html?in_page_id=1772&in_article_id=338567&in_author_id=255
+http://www.dailymail.co.uk/pages/live/articles/health/healthmain.html?in_article_id=255329&in_page_id=1774
+http://www.dailymail.co.uk/pages/live/articles/health/healthmain.html?in_article_id=353614&in_page_id=1774
+http://www.dailymail.com/static/movies/
+http://www.dailymedication.com/modules.php?name=News&file=print&sid=32
+http://www.dailynews.com/Stories/0,1413,200~20954~2909246,00.html
+http://www.dailynews.lk/2005/01/13/spo05.html
+http://www.dailynewstranscript.com/localRegional/view.bg?articleid=49880&format=
+http://www.dailynexus.com/feature/2005/9684.html
+http://www.dailynexus.com/print_article.php?a=8704
+http://www.dailyom.com/articles/2005/329.html
+http://www.dailypeloton.com/displayarticle.asp?pk=7969
+http://www.dailypennsylvanian.com/vnews/display.v/ART/2002/03/26/3ca034ed1eebb
+http://www.dailypennsylvanian.com/vnews/display.v/ART/41b571760b20e
+http://www.dailypennsylvanian.com/vnews/display.v/ART/41b571760b20e?in_archive=1
+http://www.dailyprincetonian.com/archives/1998/02/04/news/5844.shtml
+http://www.dailyprincetonian.com/archives/2000/05/03/news/939.shtml
+http://www.dailyprincetonian.com/archives/2003/04/03/arts/7766.shtml
+http://www.dailyprincetonian.com/archives/2004/09/22/news/10793.shtml
+http://www.dailypundit.com/
+http://www.dailypundit.com/archives/013308.php
+http://www.dailyrecord.co.uk/news/news/page.cfm?method=full&objectid=14556816
+http://www.dailyrecord.com/sports/pro/sports1-060405french.htm
+http://www.dailysouthtown.com/southtown/dsliving/031ldfla.htm
+http://www.dailysouthtown.com/southtown/yrtwn/seast/163seyt1.htm
+http://www.dailystar.com.lb/article.asp?article_ID=10669&categ_ID=5&edition_id=10
+http://www.dailystar.com.lb/article.asp?edition_id=10&categ_id=5&article_id=15299
+http://www.dailytargum.com/news/2003/04/23/News/Group.Amends.Constitution.To.Aid.In.Impeachment-423452.shtml
+http://www.dailytexanonline.com/news/2001/04/16/Sports/Softball.Snaps.Losing.Streak.With.Isu.Sweep-699908.shtml
+http://www.dailytimes.com.pk/default.asp?page=story_10-9-2003_pg7_48
+http://www.dailytimes.com.pk/default.asp?page=story_11-3-2004_pg4_20
+http://www.dailytimes.com.pk/default.asp?page=story_13-2-2005_pg7_24
+http://www.dailytimes.com.pk/default.asp?page=story_13-5-2005_pg7_37
+http://www.dailytimes.com.pk/default.asp?page=story_2-3-2004_pg7_31
+http://www.dailytimes.com.pk/default.asp?page=story_22-12-2004_pg5_1
+http://www.dailytimes.com.pk/default.asp?page=story_22-4-2003_pg2_18
+http://www.dailytimes.com.pk/default.asp?page=story_23-12-2003_pg7_33
+http://www.dailytimes.com.pk/default.asp?page=story_3-6-2005_pg7_41
+http://www.dailytimes.com.pk/default.asp?page=story_4-8-2003_pg6_10
+http://www.dailytimes.com.pk/default.asp?page=story_5-5-2005_pg7_11
+http://www.dailytimes.com.pk/default.asp?page=story_6-12-2002_pg4_1
+http://www.dailywriting.net/AthertonGrove.htm
+http://www.daimlerchrysler.com/dccom/0,,0-5-7171-1-304195-1-0-0-0-0-0-70-7164-0-0-0-0-0-0-0,00.html
+http://www.dairy.nu/
+http://www.dairycare.com/investor_relations_information.html
+http://www.dairyfarmer.net/news/program05.html
+http://www.dairyfoods.com/CDA/ArticleInformation/features/BNP__Features__Item/0,6775,110862,00.html
+http://www.dairyreporter.com/nl/allNLs.asp
+http://www.daisy.freeserve.co.uk/bonniewoods.htm
+http://www.dalbeattie.com/domesticcivildefence/refuse.html
+http://www.dalefranks.com/eu.asp
+http://www.daleleatherman.com/GolfSt.AndrewsBay.htm
+http://www.dalian-gov.net/about.asp
+http://www.dalian.gov.cn/i18n/en/intro/culture.htm
+http://www.dalits.org/CERDStatementSDJM.htm
+http://www.dallasartsrevue.com/shows/dma100cover/Inducing-Passion.shtml
+http://www.dallascvb.com/visitors/50free.php
+http://www.dallasfed.org/educate/everyday/ev8.html
+http://www.dallasfed.org/research/beige/bb040728.html
+http://www.dallasfed.org/research/busfront/bus9804.html
+http://www.dallasfed.org/research/swe/2002/swe0202b.html
+http://www.dallasnews.com/breakroom/
+http://www.dallasnews.com/registration/terms/
+http://www.dallasnews.com/s/dws/dn/education/stories/033105dnnatevolution.11b7a.html
+http://www.dallasnews.com/s/dws/news/nation/vitindex.html
+http://www.dallasnews.com/sharedcontent/dws/bus/columnists/rmiller/stories/011605dnbusmiller.52bd2.html
+http://www.dallasnews.com/sharedcontent/dws/bus/personalfinance/stories/052305dnbusperfiinside.d3e6800f.html
+http://www.dallasnews.com/sharedcontent/dws/bus/scottburns/columns/2004/stories/060104dnbusburns.4bb14.html
+http://www.dallasnews.com/sharedcontent/dws/bus/scottburns/columns/2004/stories/100504dnbusburns.939b5.html
+http://www.dallasnews.com/sharedcontent/dws/bus/scottburns/columns/2005/stories/051205dnbusburns.2660f9c53.html
+http://www.dallasnews.com/sharedcontent/dws/bus/scottburns/qa/2005/stories/051205dnbusburns.2660f9c53.html
+http://www.dallasnews.com/sharedcontent/dws/dn/education/stories/121904dnmetcheating.64fa3.html
+http://www.dallasnews.com/sharedcontent/dws/news/city/northwest/stories/060205dnweslandswap.1080a4127.html
+http://www.dallasnews.com/sharedcontent/dws/news/dmn/stories/010305dnmetharvard.46dcc.html
+http://www.dallasnews.com/sharedcontent/dws/news/politics/local/stories/010305dnmetharvard.46dcc.html
+http://www.dallasnews.com/sharedcontent/dws/news/politics/national/vitindex.html
+http://www.dallasnews.com/sharedcontent/dws/news/world/mexico/stories/061005dnintpolicechief.2f9639f9d.html
+http://www.dallasnews.com/sharedcontent/dws/news/world/stories/012905dnintstakes.4a00e.html
+http://www.dallasnews.com/sharedcontent/dws/spe/2005/dfwtop200/stories/051105dnbuspriv2.998f761a.html
+http://www.dallasnews.com/sharedcontent/dws/spt/columnists/bhorn/stories/060405dnspohorncol.111becd0f.html
+http://www.dallasnews.com/sharedcontent/dws/spt/columnists/ksherrington/stories/060705dnsposherrington.1214f185c.html
+http://www.dallasnews.com/sharedcontent/dws/wfaa/jstjames/stories/wfaa040922_wz_medbrkthru.13fb565d6.html
+http://www.dallasnews.com/sharedcontent/dws/wfaa/jstjames/stories/wfaa041119_wz_medbrkthru.70909b5e.html
+http://www.dallasnews.com/sharedcontent/dws/wfaa/jstjames/stories/wfaa050415_wz_medbrkthru.1dcd4cd80.html
+http://www.dallasnews.com/sharedcontent/ptech/gamereviews2/052705ccjrptechgamer.2c6750814.html
+http://www.dallasobserver.com/issues/2005-02-03/news/news.html
+http://www.daltonstate.edu/galeps/Gynandromorphs.htm
+http://www.damagecontrolonline.com/moreabout.htm
+http://www.damageplan.com/
+http://www.damemaggiesmith.com/confessions.html
+http://www.damianpenny.com/
+http://www.damnforeigner.com/archives/2004_02.html
+http://www.damngood.com/catalog/problems.html
+http://www.damnittohell.com/2004/11/white_guy_dread.html
+http://www.dams.org/kbase/consultations/sasia/field.htm
+http://www.dan.sperber.com/pragmatics-modularity-and-mindreading.htm
+http://www.dana-net.com/s_offshore_dev.htm
+http://www.danadelany.com/forum.php
+http://www.danagioia.net/essays/elongfellow.htm
+http://www.danappleman.com/index.php?p=14
+http://www.danbrown.com/secrets/digital_fortress/spying.html
+http://www.dance.com/
+http://www.dance.com/store/customer/home.php
+http://www.dance.com/store/customer/home.php?partner=angst
+http://www.danceartistinfo.com/2brother.htm
+http://www.dancecorner.com/teacher/lessons/probsolv.html
+http://www.danceemc.com/what_feedback_pa.html
+http://www.dancefreak.com/interviews/sir_harry.htm
+http://www.danceholidays.co.uk/ArabicOriental.asp
+http://www.danceholidays.co.uk/Testimonials.asp
+http://www.danceholidays.com/ArabicOriental.asp
+http://www.danceholidays.com/BeforeYouGo.asp
+http://www.danceholidays.com/Testimonials.asp
+http://www.danceinsider.com/f2001/f309_1.html
+http://www.danceinsider.com/f915_1.html
+http://www.danceintimeproductions.com/philos.htm
+http://www.dancemagazine.com/dance_magazine/reviews/show_review.php?f=may_2004/zaccho.php
+http://www.dancepants.com/pages/dancefaq.html
+http://www.dancesask.com/links/
+http://www.dancewithshadows.com/royalair-kingfisher-go.asp
+http://www.danchan.com/weblog/theVooner/2003/8
+http://www.dancingaboutarc.com/lists/plagiarismlist.html
+http://www.dancinghands.com/
+http://www.dandelionbooks.net/archives/the_unexplained_21.html
+http://www.dandies.to/
+http://www.dane-online.org/blog/
+http://www.danelec.com/company/history/
+http://www.danes.org.uk/sponsor/index.shtml
+http://www.danfingerman.com/dtm/archives/cat_privacy.html
+http://www.danforthreview.com/features/interviews/tim_conley.htm
+http://www.dangermouse.net/gurps/amber/log/2775_05_04.html
+http://www.dangerouschunky.com/notebook/
+http://www.dangerouslaboratories.org/drillhistory.html
+http://www.dangerouslaboratories.org/radscout.html
+http://www.danheller.com/biz-sales.html
+http://www.danheller.com/photobiz-book.html
+http://www.danielboonehomestead.org/history.htm
+http://www.danielchampion.com/archives/2005/01/
+http://www.danieldrezner.com/archives/000768.html
+http://www.danieldrezner.com/archives/001047.html
+http://www.danieldrezner.com/archives/001098.html
+http://www.danieldrezner.com/archives/001155.html
+http://www.danieldrezner.com/archives/001670.html
+http://www.danieldrezner.com/archives/001720.html
+http://www.danieldrezner.com/archives/002005.html
+http://www.danieldrezner.com/archives/002016.html
+http://www.danieldrezner.com/blog/
+http://www.danieljackson.co.uk/fun/wenty/
+http://www.danielpipes.org/article/78
+http://www.danielpipes.org/cair.php
+http://www.danielpipes.org/comments/20156
+http://www.danillitphil.com/union.html
+http://www.daniweb.com/techtalkforums/lastpostinthread11602.html
+http://www.daniweb.com/techtalkforums/lastpostinthread16216.html
+http://www.daniweb.com/techtalkforums/thread11602.html
+http://www.daniweb.com/techtalkforums/thread16216.html
+http://www.dankat.com/tales1/rearls.htm
+http://www.danlamont.com/photoEssaysandPortfolios/editorialServices/writings/writingsIndex.html
+http://www.danmahony.com/nellstories4.htm
+http://www.dannychai.com/mymind/2002/mymind298.html
+http://www.dannygregory.com/weblog/archives/2005_02.html
+http://www.danone.com/wps/portal/download/?id=CMS.DanoneAttachments.Finance.RapAnnuel2003_Globalization_US&session=MYSESSION
+http://www.danpinello.com/LawSch.htm
+http://www.danradcliffe.co.uk/shortstories_10.htm
+http://www.dansdata.com/catapultwatch.htm
+http://www.dansdata.com/panther.htm
+http://www.dansdata.com/sbs3.htm
+http://www.dansdata.com/speakersets.htm
+http://www.dansjp3page.com/oldnews7.asp
+http://www.dansworld.com/brit_sk8.html
+http://www.dantecdynamics.com/LDA/Princip/Index.html
+http://www.danwismar.com/archives/wizblog/002515.html
+http://www.daqarta.com/ww00wndo.htm
+http://www.dar-al-masnavi.org/forgiveness.html
+http://www.darcynorman.net/
+http://www.darden.virginia.edu/olsson/
+http://www.dare.org.nz/daretomakechange.html
+http://www.darjnet.com/darjeeling/darjeeling/travel/train/train.htm
+http://www.dark-universe.com/forum/misc.php?do=bbcode
+http://www.dark-wraith.com/2005/05/analysis-if-truth-be-told.html
+http://www.darkaustin.com/index.php?page=reviews
+http://www.darkcarnival.com/dc_history.html
+http://www.darke.k12.oh.us/HPEcos/first.html
+http://www.darkforce.com/royce/w.o.b.htm
+http://www.darkhalf.com/online_Story_Board_Story.asp?Story_ID=12
+http://www.darkicon.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=120&MMN_position=181:181
+http://www.darkicon.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=25&MMN_position=41:41
+http://www.darklite.ie/copyright.php
+http://www.darklyrics.com/lyrics/queensryche/operationmindcrime.html
+http://www.darkshire.net/~jhkim/rpg/encyclopedia/alphabetical/H.html
+http://www.darkshire.net/~jhkim/rpg/encyclopedia/alphabetical/W.html
+http://www.darkshire.net/~jhkim/rpg/theory/examples/bond_sample.html
+http://www.darkshire.net/~jhkim/rpg/theory/genre/death.html
+http://www.darksideofsleepingpills.com/ch2.html
+http://www.darksideofsleepingpills.com/ch9.html
+http://www.darksky.org/
+http://www.darksky.org/infoshts/is026.html
+http://www.darksky.org/infoshts/is033.html
+http://www.darksky.org/key/keyecon.html
+http://www.darkzen.com/Articles/AZI.html
+http://www.darkzen.com/teachings/thekoanqa.htm
+http://www.darlington.gov.uk/Health/Hygiene+and+Healthy+Eating+Awards+2003.htm
+http://www.darpa.mil/ato/solicit/IBC/
+http://www.darpa.mil/baa/baa01-05.htm
+http://www.darpa.mil/body/NewsItems/darpa_fact.html
+http://www.darrenbarefoot.com/archives/001233.html
+http://www.darrenbarefoot.com/archives/001435.html
+http://www.darsie.net/string/
+http://www.darsie.net/string/vhard.html
+http://www.dart.org/boardminutes.asp?zeon=2004
+http://www.dart15.com/buysell.php3
+http://www.dartmoorsociety.com/debate.military.htm
+http://www.dartmouth.edu/dms/students/resources/resources/resources_housing.shtml
+http://www.dartmouth.edu/~chance/course/student_projects/Kristin/Kristin.html
+http://www.dartmouth.edu/~dartfac/coverfeature/0102/healthcare2.html
+http://www.dartmouth.edu/~dartfac/features/message.html
+http://www.dartmouth.edu/~deancoll/documents/handbook/conduct/structure/guidelines.html
+http://www.dartmouth.edu/~news/releases/2004/01/05.html
+http://www.dartmouth.edu/~reg/courses/desc/film.html
+http://www.dartmouth.edu/~toxmetal/bibliogSF.html
+http://www.dartmouth.edu/~uja/resources/accused.html
+http://www.dartmouth.edu/~upne/0-87451-754-0.html
+http://www.dartmouth.edu/~writing/materials/student/ac_paper/research.shtml
+http://www.dartmouthjapan.org/
+http://www.darwin.ws/RationallySpeaking/RS2004-10.htm
+http://www.darwinmag.com/read/feature/column.html?ArticleID=1133
+http://www.darwinmag.com/read/feature/column.html?ArticleID=1133&action=print
+http://www.darwinwars.com/cuts/indie/linc2.html
+http://www.das.psu.edu/index.cfm?pagedefs=NewsApp/_incPgDefsFullStory.cfm&id=442
+http://www.das.state.ct.us/Business_Svs/HCVP/HCVP_FAQs.asp
+http://www.das.state.ct.us/Business_Svs/HCVP/HCVP_Home.asp
+http://www.das.state.ct.us/Purchase/Portal/Portal_Bids_Open.asp?F_Bid_Type=1&F_Unit=TOS
+http://www.dashofmilk.co.uk/
+http://www.dashto.com/links.htm
+http://www.dassk.org/news.php?offset=195&where=
+http://www.data-archive.ac.uk/findingData/snDescription.asp?sn=4097
+http://www.databasetrends.com/datacenter/archives/current.html
+http://www.datadirect.com/techzone/dotnet/topics/managed-code/index.ssp
+http://www.datadirect.com/techzone/jdbc/basics/basics/index.ssp
+http://www.datadynamics.com/ShowPost.aspx?PostID=11815
+http://www.dataglider.com/onDemand.htm
+http://www.datamass.net/ox/oxford-english-dictionary.html
+http://www.datarecoveryreport.com/
+http://www.datascansystems.com/applications/toyota_paintshop.html
+http://www.datasec.co.uk/press/2004_01_22.html
+http://www.datastorex.com/
+http://www.datastorex.com/main.asp
+http://www.datawarehouse.com/article/?articleid=4797
+http://www.date.com/girls-single/unitedkingdom-sheffield.htm
+http://www.datejesus.com/
+http://www.datenschutzzentrum.de/material/recht/bdsg/bdsgeng.htm
+http://www.dating-world.net/Russia%20and%20Russians.htm
+http://www.datingfast.com/datingnew/articleArtID_43.html
+http://www.daughtersandsonstowork.org/wmspage.cfm?parm1=293
+http://www.daughtersofstpaul.com/growinginfaith/scripture/
+http://www.dauphinfriendshipcentre.com/staff.php
+http://www.davekahle.com/article/motivated.htm
+http://www.davekahle.com/bootcamp/seminar.htm
+http://www.davekopel.com/Terror/Fiftysix-Deceits-in-Fahrenheit-911.htm
+http://www.davekopel.org/Media/lrmassag.htm
+http://www.davekopel.org/Terror/Fiftysix-Deceits-in-Fahrenheit-911.htm
+http://www.davesite.com/computers/system/checklist.shtml
+http://www.davesite.com/hodgkins/treatment.shtml
+http://www.david-reid.com/cynic/index.php?paged=2
+http://www.davidappleyard.com/japan/jp4.htm
+http://www.davidbates.free-online.co.uk/prop1.htm
+http://www.davidbrin.com/disputationarticle1.html
+http://www.davidbrin.com/tolkienarticle1.html
+http://www.davidbrittan.com/harmonic_convergence.html
+http://www.davidbudbill.com/jme9.html
+http://www.davidcairns.com/speeches/data/?040220051021
+http://www.davidcorn.com/2005/02/the_state_of_ge.php
+http://www.daviddarling.info/works/ZenPhysics/ZenPhysics_ch6.html
+http://www.davidde.com/articles/zeisscopies.html
+http://www.daviddfriedman.com/Laws_Order_draft/laws_order_ch_17.htm
+http://www.daviddfriedman.com/Lott_v_Teret/Response_to_Webster.html
+http://www.davidgrenier.com/000307.html
+http://www.davidhewson.com/index.php/blogs/C20/
+http://www.davidicke.net/emagazine/vol10/articles/unification.html
+http://www.davidicke.net/emagazine/vol10/articles/unificationt.html
+http://www.davidkrut.com/resources/newyork_all.asp
+http://www.davidlammy.co.uk/da/13280
+http://www.davidlawson.co.uk/Files/Serviced01_093.htm
+http://www.davidlesh.net/
+http://www.davidmaki.net/
+http://www.davidmcwilliams.ie/Articles/comment.asp?ArticleID=210
+http://www.davidmyers.org/Brix?pageID=65
+http://www.davidorchard.com/online/media-2003/mackayonlimbs-wnpgfreepress-030926.html
+http://www.davidpbrown.co.uk/miscellaneous/really-useful-trivia.html
+http://www.davidrendel.org.uk/speeches/17.html
+http://www.davidrmunson.com/bloodinthesnow/
+http://www.davidsemporium.co.uk/_THIRTYEIGHT.html
+http://www.davidsherman.com/legal/ppolicy.html
+http://www.davidson-law.net/dlblog/
+http://www.davidsouthgate.com/030721a.shtml
+http://www.davidsuzuki.org/About_us/Dr_David_Suzuki/Article_Archives/weekly06280201.asp
+http://www.davidsuzuki.org/Climate_Change/Solutions/Green_Leaders.asp
+http://www.davidsuzuki.org/Oceans/CoastalOil/background.asp
+http://www.davidsuzuki.org/about_us/Dr_David_Suzuki/Article_Archives/weekly03120401.asp
+http://www.davincisinquest.com/stories/season3/37.asp
+http://www.davosnewbies.com/
+http://www.davros.org/rail/signalling/bellcodes.html
+http://www.daweslane.com/sane1.html
+http://www.dawn.com/2004/11/24/nat22.htm
+http://www.dawn.com/2004/12/17/spt1.htm
+http://www.dawn.com/2005/01/15/local17.htm
+http://www.dawn.com/2005/01/30/nat11.htm
+http://www.dawn.com/2005/02/04/op.htm
+http://www.dawn.com/2005/02/06/ed.htm
+http://www.dawn.com/2005/02/07/nat12.htm
+http://www.dawn.com/2005/text/op.htm
+http://www.dawn.com/cgi-bin/today.cgi?file=ed.htm
+http://www.dawnbarnhart.com/affa/campaign.html
+http://www.dawncanada.net/voteforequality/issues.htm
+http://www.dawneden.com/2005/01/peace-and-carats.html
+http://www.dawnministries.org/regions/nam/johnwhite/meeting/breaking_bread.html
+http://www.dawodu.com/omoigui10.htm
+http://www.dawodu.com/omoigui35.htm
+http://www.day-tripper.net/price-surveys.html
+http://www.day-tripper.net/pricesexchangemoney.html
+http://www.day1.net/transcript.php?id=374
+http://www.daydreamvillas.co.uk/crevillente/crevillente-bb.htm
+http://www.daynadunbar.com/exerpts.html
+http://www.dayton.bbb.org/rel_nov2100.html
+http://www.dayton.lib.oh.us/~kambitsch/netscape/bogus-proxy-server.html
+http://www.daytradeteam.com/dtt/tradingtips.asp?id=20009
+http://www.db.ucsd.edu/CSE232BS03/
+http://www.dba-oracle.com/art_unix_mig.htm
+http://www.dbazine.com/ofinterest/oi-articles/pascal19
+http://www.dbbalance.com/
+http://www.dbdebunk.com/page/page/622312.htm
+http://www.dbenton.com/go/chronicles/2004/08/
+http://www.dbforums.com/t1114068.html
+http://www.dbl-s.com/dblreadymix.htm
+http://www.dbmarketing.com/articles/Art145.htm
+http://www.dbrmfg.co.nz/Strategy%20Holistic%20Approach.htm
+http://www.dbsalliance.org/Info/clinical.html
+http://www.dbsalliance.org/info/suicide.html
+http://www.dbsalliance.org/survey/index.asp?survey_ID=1
+http://www.dbta.com/in-depth/june04/mckendrick.html
+http://www.dbta.com/in-depth/sept04/baker.html
+http://www.dc.k12.mn.us/mschool/Handbook/Default.htm
+http://www.dca.gov.uk/atoj2000.htm
+http://www.dca.gov.uk/civil/final/sec4b.htm
+http://www.dca.gov.uk/compleng2.htm
+http://www.dca.gov.uk/consult/lcoffice/
+http://www.dca.gov.uk/consult/meta/metafr.htm
+http://www.dca.gov.uk/criminal/auldcom/jud/jud20.htm
+http://www.dca.gov.uk/dept/rulecomms/criminalprc.htm
+http://www.dca.gov.uk/enforcement/enfadgp/open131101.htm
+http://www.dca.gov.uk/family/annrep99/four.htm
+http://www.dca.gov.uk/foi/implement.htm
+http://www.dca.gov.uk/foi/map/modactplan.htm
+http://www.dca.gov.uk/links/gov-legal.htm
+http://www.dca.gov.uk/menincap/ch9.htm
+http://www.dca.gov.uk/pubs/statements/legal-services.htm
+http://www.dca.gov.uk/risk/hlria.htm
+http://www.dca.gov.uk/speeches/1997/lab-sp.htm
+http://www.dca.gov.uk/speeches/2003/lc101203.htm
+http://www.dca.gov.uk/speeches/2003/ps090503.htm
+http://www.dca.gov.uk/speeches/2004/lc181004.htm
+http://www.dca.gov.uk/speeches/2005/lc080605.htm
+http://www.dca.gov.uk/speeches/2005/lc160605.htm
+http://www.dca.gov.uk/speeches/2005/lc210305.htm
+http://www.dcardillo.com/articles/moveon.html
+http://www.dcbar.org/for_lawyers/washington_lawyer/june_2003/lives.cfm
+http://www.dcdoctor.com/pages/rightpages_healthconditions/workerinjuries/california/wi_ca_whattodo.html
+http://www.dce.harvard.edu/pubs/alum/1996/fall/13.html
+http://www.dce.harvard.edu/pubs/charles/2000/fall/btwickler.html
+http://www.dce.harvard.edu/pubs/charles/2001-02/awojnar.html
+http://www.dce.harvard.edu/pubs/charles/2002/fall/skimberly.html
+http://www.dce.k12.wi.us/midschool/information.htm
+http://www.dcfp.navy.mil/checksheets/checksheets.htm
+http://www.dci-pal.org/english/PrinterF.cfm?DocId=252&CategoryID=9
+http://www.dcisc.org/14th/volume2/d01_fact_2003_07_29.html
+http://www.dcita.gov.au/ie/publications/2002/november/advancing_australia_-_the_information_economy_progress_report_2002/international_dimensions
+http://www.dcjs.org.uk/news/summer2001/art12/
+http://www.dckings.com/tips.html
+http://www.dclab.com/dclnews0503.asp
+http://www.dclab.com/dclnews0702.asp
+http://www.dclab.com/xmlwhitepaper.asp
+http://www.dcma.mil/communicator/archives/spring%20summer%202004/ncma_assoc_news_06_04.htm
+http://www.dcmilitary.com/army/standard/8_09/health/22866-1.html
+http://www.dcmilitary.com/tricare/5_1/news/31134-1.html
+http://www.dcmnr.gov.ie/Home/Energy/Sustainable+Energy+Division/Green+Paper+on+Sustainable+Energy/Summary+of+Submissions+to+the+Green+Paper/
+http://www.dcmnr.gov.ie/Home/Energy/Sustainable+Energy+Division/Green+Paper+on+Sustainable+Energy/Summary+of+Submissions+to+the+Green+Paper/Summary+of+Submissions+to+the+Green+Paper.htm
+http://www.dcmstarships.com/article-dse-inquiry-part-5.html
+http://www.dcnr.state.pa.us/wrcf/keynotes/summer01/bats.htm
+http://www.dcr.net/~stickmak/Gaming/magmn.htm
+http://www.dcr.state.va.us/parks/1stland.htm
+http://www.dcrafts.com/motherday.htm
+http://www.dcs.ex.ac.uk/~pjbrown/papers/acm.html
+http://www.dcs.ex.ac.uk/~pjbrown/papers/huc2k_as_submitted.html
+http://www.dcs.kcl.ac.uk/staff/lappin/recent_papers.html
+http://www.dcs.shef.ac.uk/~ajc/
+http://www.dcs.warwick.ac.uk/research/hpsg/ARM/ARM.html
+http://www.dcsconsulting.biz/article4.html
+http://www.dcthomson.co.uk/mags/post/hospice/htm_2003/120103_2.htm
+http://www.dcthornton.com/
+http://www.dctta.asn.au/services.htm
+http://www.dcu.org/streetwise/kids/toy.html
+http://www.dcwatch.com/govern/opm030613.htm
+http://www.dcwatch.com/wasa/040317b.htm
+http://www.ddadelhi.com/planning/how_to_apply.htm
+http://www.ddeamc.amedd.army.mil/clinical/Pathology/DPALSGiveBlood.htm
+http://www.ddfl.org/behavior.htm
+http://www.ddfl.org/behavior/cratetraining.htm
+http://www.ddfl.org/behavior/educated_dog.htm
+http://www.ddfl.org/faq.htm
+http://www.ddin.com/sep15-96pp.htm
+http://www.ddjembedded.com/resources/articles/2001/0110m/0110m.htm
+http://www.ddm.uci.edu/Assembly/instructions.html
+http://www.ddos.com/index.php?content=jobs/content.php
+http://www.ddpartyrental.com/about.html
+http://www.dea.gov/pubs/intel/intel0901.html
+http://www.deabirkett.com/pages/journalism_film/journalism/dream_on.htm
+http://www.deaconessokc.org/
+http://www.deadlybloodyserious.com/Python/
+http://www.deadparrots.net/
+http://www.deadparrots.net/archives/2005/01/
+http://www.deadparrots.net/archives/cat_language.html
+http://www.deadsea-cosmetics.com/b2b/mineral-care.htm
+http://www.deafblind.com/australia.html
+http://www.deafblind.com/dbequipm.html
+http://www.deafblind.com/deafness.html
+http://www.deaflawyers.org/resources.htm
+http://www.deafnative.com/whatsnew.htm
+http://www.deafnessatbirth.org.uk/content2/develop/encourage/02/
+http://www.deafunderstanding.com/book_excerpt.html
+http://www.deakin.edu.au/dlt2005/deakin_online/dso/06components_tools.html
+http://www.deakin.edu.au/its/telephone/voice.php
+http://www.deakin.edu.au/studentlife/careers/career_planning/vocational_assessment.php
+http://www.deakin.edu.au/studentlife/orientation/online_workshops/exam_preparation.php
+http://www.deakin.edu.au/~agoodman/scc219/practical9.php
+http://www.dealtime.co.uk/xDN-Cartridges_and_Toners--hewlett_packard-price_range_1000_2000~V-rows
+http://www.dealtime.com/xDN-Baby_Care--nursery_furniture~S-2~OR-0~V-rows~PG-4
+http://www.dealtime.com/xDN-Clothing--12975_price_range_under_15-artapart_com-ap_gender_age_women~V-rows
+http://www.dealtime.com/xDN-Clothing--ap_gender_age_girls-~V-rows~PG-4
+http://www.dealtime.com/xDN-Clothing--ap_gender_age_girls~V-rows~PG-4
+http://www.dealtime.com/xDN-Sport_and_Outdoor---rollerskating_and_inline_skating-onlinesports~V-rows
+http://www.dealtime.com/xDN-Sport_and_Outdoor--baseball_and_softball-sp_brand_mizuno-fielding_gloves-dicks_sporting_goods~V-rows
+http://www.dealtime.com/xDN-Sport_and_Outdoor--office___desk_accessories-12530_price_range_50_75~V-rows
+http://www.dealtime.com/xDN-Sport_and_Outdoor--personal_fitness-weight_training_equipment-weight_lifting_equipment_guide~V-rows
+http://www.dealtime.com/xPR-Far_Cry~RD-137385315972
+http://www.dealtime.com/xPR-Kodak_EasyShare_CX6230~RD-127692279428
+http://www.dealtime.com/xPR-Nokia_N_Gage~RD-130583006852
+http://www.dealtime.com/xPR-Pioneer_PDP_503CMX~RD-61093023364
+http://www.dealtime.com/xPR-Sony_CCD_TRV308~RD-81212771972
+http://www.dealtime.com/xPR-iRiver_iHP_140~RD-165598629508
+http://www.dean.sbc.edu/pegues.html
+http://www.deanesmay.com/
+http://www.deanesmay.com/archives/000098.html
+http://www.deanesmay.com/archives/005634.html
+http://www.deanesmay.com/posts/1098420917.shtml
+http://www.deanesmay.com/posts/1106938238.comments.shtml
+http://www.deanesmay.com/posts/1106938238.shtml
+http://www.deanza.fhda.edu/specialed/dish/section3/grid.html
+http://www.death-valley.us/article1125.html
+http://www.death-valley.us/article316.html
+http://www.deathandpopcorn.com/thekernel.html
+http://www.deathpenaltyinfo.org/article.php?scid=17&did=448
+http://www.deathpenaltyinfo.org/article.php?scid=21&did=1135
+http://www.deathpenaltyinfo.org/article.php?scid=27&did=1010
+http://www.deathpenaltyinfo.org/article.php?scid=66&did=946
+http://www.deathstar.org/~krlipka/ps/fiction/archive/color.html
+http://www.deb.uscourts.gov/Attorney/Payment_of_Filing_Fees_by_Credit_Card.htm
+http://www.debatabase.org/details.asp?topicID=182
+http://www.debates.org/pages/trans2004a.html
+http://www.debates.org/pages/trans2004c.html
+http://www.debating.org.za/documents/29sep2002.shtml
+http://www.debbieallen.com/pressroom_articles/make_sure_your_holding_right_cards.htm
+http://www.debbieallen.com/pressroom_articles/wearing_lots_of_hats.htm
+http://www.debbiemacomber.com/16LighthouseRoadexcerpt.htm
+http://www.debbiemacomber.com/navywifeexcerpt.htm
+http://www.debbiemacomber.com/shoponblossomstreetexcerpt.htm
+http://www.debbieschlussel.com/bio.shtml
+http://www.debbieweil.com/archives/2003/06/24/take_this_instant_survey/index.php
+http://www.debian.org/devel/wnpp/
+http://www.debian.org/doc/manuals/debian-java-faq/ch-debian-java-woody.html
+http://www.debian.org/support
+http://www.debka.com/article.php?aid=466
+http://www.deblogan.com/win.html
+http://www.deborahhage.com/lying.htm
+http://www.debraashton.com/test.html
+http://www.debradickerson.com/articles/johnny.htm
+http://www.debramullins.com/donovans_bed.html
+http://www.debunker.com/texts/goddess.html
+http://www.debunker.com/texts/vanatinai.html
+http://www.dec.state.ny.us/
+http://www.dec.state.ny.us/website/bondact/publicmeetings2005.html
+http://www.dec.state.ny.us/website/dar/beim/failtext02.html
+http://www.dec.state.ny.us/website/dfwmr/wildlife/deer/bgbaprjun03.htm
+http://www.dec.state.ny.us/website/dfwmr/wildlife/guide/trapping.html
+http://www.dec.state.ny.us/website/dfwmr/wildlife/ifyoucar.html
+http://www.dec.state.ny.us/website/greatlakes/quantity.html
+http://www.dec.state.ny.us/website/ohms/decis/adkfishr.htm
+http://www.dec.state.ny.us/website/ohms/notices/suffolkcowater.html
+http://www.dec.state.ny.us/website/press/pressrel/2005/200505.html
+http://www.dec.state.ny.us/website/regs/part422.html
+http://www.dec.state.ny.us/website/regs/part597a.html
+http://www.dec.state.ny.us/website/regs/subpart225_2.html
+http://www.decanter.com/specials/49312.html
+http://www.decaturdaily.com/decaturdaily/news/031123/election.shtml
+http://www.decaturdaily.com/decaturdaily/news/041121/trade.shtml
+http://www.decaturdaily.com/decaturdaily/religion/040228/pastor.shtml
+http://www.deccanherald.com/deccanherald/jun192005/district180502005618.asp
+http://www.deccanherald.com/deccanherald/jun62005/eb14527200564.asp
+http://www.deccanherald.com/deccanherald/may72005/national135628200556.asp
+http://www.deccanherald.com/deccanherald/nov26/s10.asp
+http://www.december.com/places/faq.html
+http://www.december.com/places/mke/cafes.html
+http://www.december.com/places/sea/events.html
+http://www.decemberists.com/news/
+http://www.decentfilms.com/reviews/finalsolution.html
+http://www.decentfilms.com/reviews/greenmile.html
+http://www.decentfilms.com/reviews/jimmyneutronboygenius.html
+http://www.decentfilms.com/reviews/roadhome2001.html
+http://www.deceptiondollar.com/Inquiry911.htm
+http://www.deceptioninthechurch.com/covering.html
+http://www.deceptioninthechurch.com/orrel19.html
+http://www.deceptioninthechurch.com/thecall.html
+http://www.dechencholing.org/info/
+http://www.decision-finance.co.uk/aff/members/agreement.jsp
+http://www.decisionanalyst.com/publ_art/track.asp
+http://www.decisioncraft.com/datamining/keydrivers.htm
+http://www.decisionquest.com/press_center.php?NewsID=239
+http://www.deco-dence.com/generic29.html
+http://www.decongested.com/story.php?id=19
+http://www.decorate-redecorate.com/certified-redesigner.html
+http://www.decorate-redecorate.com/work-at-home.html
+http://www.decoratingadvice.com/freehelp.html
+http://www.decoupageforthesoul.com/livingintune.tevet5762.htm
+http://www.ded-tanzania.de/countryp.html
+http://www.dedicatedspace.com/
+http://www.deed.state.mn.us/cjs/cjsbook/finish1.htm
+http://www.deeko.com/reviewdetail.asp?id=158
+http://www.deep-software.com/faq.asp
+http://www.deepblacklies.co.uk/operation_black_dog_pr.htm
+http://www.deepchip.com/items/0343-13.html
+http://www.deepchip.com/items/0433-07.html
+http://www.deepchip.com/posts/0132.html
+http://www.deepchip.com/posts/0274.html
+http://www.deepcoveheritage.com/newsvol5.html
+http://www.deepdisc.com/smallpress/
+http://www.deepdiscoforce.com/
+http://www.deepdownproductions.com/ccnoworderfrm2.shtml
+http://www.deepdownwellness.com/diets/southbeach.html
+http://www.deepecology.org/gandmgrantees.html
+http://www.deepeddy.com/~cwg/profession.html
+http://www.deepnetworks.net/help/printers.htm
+http://www.deepred.co.uk/swt.php
+http://www.deepriverct.com/library/history.htm
+http://www.deepseamusic.com/musiclib1.html
+http://www.deepskytech.com/prod_4dextensions/fu4d/recommendations.html
+http://www.deepskytech.com/prod_components/bash_pro/licensing.html
+http://www.deepskytech.com/prod_components/http_client_deux_pro/licensing.html
+http://www.deepskytech.com/prod_components/smtp_client_deux_pro/licensing.html
+http://www.deepskytech.com/prod_components/tcp_deux_pro/licensing.html
+http://www.deepskytech.com/prod_components/tcpsd_pro.html
+http://www.deepsoil.com/
+http://www.deepspring.org/classes_CONTENTS.htm
+http://www.deepstealth.com/store/both.htm
+http://www.deepstealth.com/store/makeup.htm
+http://www.deepstealth.com/store/makeupconsult.htm
+http://www.deere.com/en_US/deerecom/sitemap/
+http://www.deeredoctor.com/mule_testimonial.htm
+http://www.def2.org/submission/guidelines.html
+http://www.defalco.com/sold.htm
+http://www.defamer.com/
+http://www.defamer.com/hollywood/diary/sightings/hollywood-privacywatch-the-butterscotch-stallion-rides-again-106268.php
+http://www.defamer.com/hollywood/gossip/tom-cruise/index.php
+http://www.defamer.com/hollywood/movies/awards/index.php
+http://www.defamer.com/hollywood/tv/the-apprentice/index.php
+http://www.defcom.com.au/cairnsnorthqld_PP_trinity.htm
+http://www.defcom.com.au/sunshinecoast_hd_australis_noosa.htm
+http://www.defeatdiabetes.org/Archives%20of%20News/2003decemberarticles.htm
+http://www.defence-estates.mod.uk/access/walks/walks/walks_otterburn.htm
+http://www.defence.gov.au/budget/02-03/dar/02_04_01army.htm
+http://www.defence.gov.au/budget/02-03/dar/02_04_02armycapinfo.htm
+http://www.defence.gov.au/budget/02-03/dar/03_01_notes01.htm
+http://www.defence.gov.au/budget/02-03/dar/05_02priorities.htm
+http://www.defence.gov.au/budget/03-04/dar/05_06_ohs.htm
+http://www.defence.gov.au/cfo/csp/manual/pdf/menu_pn.htm
+http://www.defence.gov.au/discover/fs004.cfm
+http://www.defence.gov.au/equity/disability/supportinternal.htm
+http://www.defence.gov.au/media/DepartmentalTpl.cfm?CurrentId=2368
+http://www.defence.gov.au/media/DepartmentalTpl.cfm?CurrentId=3048
+http://www.defence.gov.au/media/SpeechTpl.cfm?CurrentId=3608
+http://www.defence.gov.au/media/SpeechTpl.cfm?CurrentId=4097
+http://www.defence.gov.au/media/speechtpl.cfm?CurrentId=3609
+http://www.defence.gov.au/news/armynews/editions/1102/health/story01.htm
+http://www.defence.gov.au/news/armynews/editions/past_editions01.htm
+http://www.defence.gov.au/news/navynews/editions/4804/topstories/STORY02.HTM
+http://www.defence.gov.au/optsunamiassist/gallery.htm
+http://www.defence.gov.au/raaf/reserves/join/join_gdrg.htm
+http://www.defence.gov.au/rusi/State/act%20lectures%20selth.htm
+http://www.defence.gov.au/rusi/state/act%20lectures%20selth.htm
+http://www.defence.govt.nz/public_docs/aircombat/4-air-combat-force.shtml
+http://www.defence.govt.nz/public_docs/mfr/4req-navy.shtml
+http://www.defencebills.gov.uk/community.htm
+http://www.defencejournal.com/dec98/battle-dhalai.htm
+http://www.defencemechanism.com/
+http://www.defencemechanism.com/default.asp
+http://www.defencetalk.com/news/publish/article_002531.shtml
+http://www.defendamerica.gov/
+http://www.defendamerica.mil/archive/2003-09/20030910pm.html
+http://www.defendamerica.mil/archive/2003-09/20030911am.html
+http://www.defenddemocracy.org/in_the_media/in_the_media_show.htm?doc_id=275822
+http://www.defenddemocracy.org/research_topics/research_topics_show.htm?doc_id=281354
+http://www.defenddemocracy.org/research_topics/research_topics_show.htm?doc_id=281354&attrib_id=7575
+http://www.defenders.org/bio-co04.html
+http://www.defenders.org/pubs/nsi09.html
+http://www.defenders.org/pubs/save06.html
+http://www.defense.gov/transcripts/2005/tr20050629-secdef3201.html
+http://www.defensedaily.com/cgi/rw/show_mag.cgi?pub=rw&mon=0401&file=0401exectrans.htm
+http://www.defenselink.mil/news/Mar2005/20050308_122.html
+http://www.defenselink.mil/news/May2004/n05302004_200405303.html
+http://www.defenselink.mil/news/Nov1995/x112295_x1122tri.html
+http://www.defenselink.mil/pubs/prolif97/trans.html
+http://www.defenselink.mil/releases/1996/b022996_bt110-96.html
+http://www.defenselink.mil/releases/2000/b03242000_bt146-00.html
+http://www.defenselink.mil/specials/hispanic02/army.html
+http://www.defenselink.mil/specials/secdef_histories/bios/cheney.htm
+http://www.defenselink.mil/speeches/1995/s19950130-perry.html
+http://www.defenselink.mil/speeches/1995/s19950202-denman.html
+http://www.defenselink.mil/speeches/1995/s19950602-widnall.html
+http://www.defenselink.mil/speeches/1995/s19950622-clinton.html
+http://www.defenselink.mil/speeches/1995/s19951011-moore.html
+http://www.defenselink.mil/speeches/1996/s19960518-white.html
+http://www.defenselink.mil/speeches/1996/s19960917-fogleman.html
+http://www.defenselink.mil/speeches/1997/s19970517-pang.html
+http://www.defenselink.mil/speeches/1997/s19970806-dalton.html
+http://www.defenselink.mil/speeches/1998/s19980519-gansler.html
+http://www.defenselink.mil/speeches/2002/s20020409-depsecdef2.html
+http://www.defenselink.mil/transcripts/1995/t110695_t$b1106.html
+http://www.defenselink.mil/transcripts/2003/tr20030508-0160.html
+http://www.defenselink.mil/transcripts/2003/tr20030529-secdef0230.html
+http://www.defenselink.mil/transcripts/2003/tr20030825-secdef0621.html
+http://www.defenselink.mil/transcripts/2003/tr20031214-1021.html
+http://www.defenselink.mil/transcripts/2004/tr20040907-secdef1281.html
+http://www.defenselink.mil/transcripts/2005/tr20050111-secdef1961.html
+http://www.defenselink.mil/transcripts/2005/tr20050323-2325.html
+http://www.defenselink.mil/transcripts/2005/tr20050517-2841.html
+http://www.defenselink.mil/transcripts/2005/tr20050520-2881.html
+http://www.defenselink.mil/transcripts/2005/tr20050601-secdef2981.html
+http://www.defenselink.mil/transcripts/2005/tr20050609-secdef3021.html
+http://www.defenseofmarriagecoalition.org/gaymarriageqa.php
+http://www.defensetech.org/
+http://www.defensetech.org/archives/001619.html
+http://www.defensetech.org/archives/2005_03.html
+http://www.defra.gov.uk/animalh/quarantine/pets/
+http://www.defra.gov.uk/corporate/consult/fawc-slaughter/consultlist.htm
+http://www.defra.gov.uk/corporate/ministers/speeches/mb031028.htm
+http://www.defra.gov.uk/environment/acre/meetings/00/000203m.htm
+http://www.defra.gov.uk/environment/acre/meetings/00/000720m.htm
+http://www.defra.gov.uk/environment/acre/meetings/02/020321m.htm
+http://www.defra.gov.uk/environment/acre/meetings/02/020523m.htm
+http://www.defra.gov.uk/environment/acre/meetings/04/min040819.htm
+http://www.defra.gov.uk/environment/acre/meetings/98/agen0406m.htm
+http://www.defra.gov.uk/environment/acre/meetings/99/990218m.htm
+http://www.defra.gov.uk/environment/climatechange/trading/uk/faq.htm
+http://www.defra.gov.uk/environment/consult/eeccl/
+http://www.defra.gov.uk/environment/darwin/lecture/030521.htm
+http://www.defra.gov.uk/environment/eaf/
+http://www.defra.gov.uk/environment/economics/appraisal/
+http://www.defra.gov.uk/environment/energy/heca95/
+http://www.defra.gov.uk/environment/energy/heca95/circulars/fpguide.htm
+http://www.defra.gov.uk/environment/energy/hees/
+http://www.defra.gov.uk/environment/rcep/21/05.htm
+http://www.defra.gov.uk/farm/capreform/singlepay/natreserve/
+http://www.defra.gov.uk/farm/organic/actionplan/
+http://www.defra.gov.uk/fish/sea/fleet/
+http://www.defra.gov.uk/foodrin/poultry/legislation.htm
+http://www.defra.gov.uk/hort/Bees/Health/
+http://www.defra.gov.uk/news/latest/2003/poland.htm
+http://www.defra.gov.uk/rural/hunting/hunting_qa_g.htm
+http://www.defra.gov.uk/rural/ruralwp/regional/west_midlands.htm
+http://www.defra.gov.uk/wildlife-countryside/cl/circular/
+http://www.defra.gov.uk/wildlife-countryside/issues/public/
+http://www.defrancostraining.com/articles/archive/articles_t-mag_promaker.htm
+http://www.deftone.com/blogzilla/archives/stuff_my_wife_will_never_use_in_mozilla.html
+http://www.degreechk.com/help/demo.html
+http://www.deh.gov.au/biodiversity/threatened/publications/recovery/abbotts-booby/actions.html
+http://www.deh.gov.au/biodiversity/threatened/publications/tap/phytophthora/appendixa.html
+http://www.deh.gov.au/coasts/pollution/dumping/guidelines/overview2.html
+http://www.deh.gov.au/discussion-groups/public/environment-news/msg00099.html
+http://www.deh.gov.au/erin/cyplus/lup/chapter4.html
+http://www.deh.gov.au/heritage/worldheritage/sites/kakadu/
+http://www.deh.gov.au/industry/waste/elv/chapter6.html
+http://www.deh.gov.au/minister/env/2003/tr03jul03.html
+http://www.deh.gov.au/minister/env/2003/tr15dec03.html
+http://www.deh.gov.au/minister/env/2005/tr14feb05.html
+http://www.deh.gov.au/minister/env/97/sp31may97.html
+http://www.deh.gov.au/minister/env/97/sp9jul97.html
+http://www.deh.gov.au/minister/ps/97/mc26nov97_fenner.html
+http://www.deh.gov.au/parks/kakadu/artculture/art/nourlangie.html
+http://www.dekay.org/blog/archives/2005/04/
+http://www.delafont.com/Jugglers/E/Passing-Zone.htm
+http://www.delafont.com/Jugglers/passing-zone.htm
+http://www.delaneychurch.com/
+http://www.delawaregrapevine.com/12-04minner.asp
+http://www.delawareonline.com/primelife/issues/2000/junjuly/cover_story.html
+http://www.delawareonline.com/spark/2005/01/19hotlanta,georgi.html
+http://www.delawarewoman.com/200312/hothothotf.html
+http://www.delawarewoman.com/june99/beauty.html
+http://www.delcode.state.de.us/title15/c021/
+http://www.delcode.state.de.us/title6/c029/
+http://www.delcotimes.com/site/news.cfm?BRD=1675&dept_id=18170&newsid=13722601&PAG=461&rfi=9
+http://www.delcyp.cec.eu.int/en/qa/emmission.htm
+http://www.delind.cec.eu.int/en/features/faqs.htm
+http://www.deliveryourmedia.com/article-audio-primer-3.html
+http://www.delnet.com/org/csingers/aboutcast.htm
+http://www.deloitte.com/dtt/article/0,1002,cid%253D69660%2526pre%253DY%2526lid%253D1%2526new%253DU,00.html
+http://www.deloitte.com/dtt/article/0,1002,sid%253D2240%2526cid%253D50344,00.html
+http://www.deloitte.com/dtt/press_release/0,1014,sid%253D1018%2526cid%253D28769,00.html
+http://www.delorie.com/gnu/docs/make/make_131.html
+http://www.delorme.com/bluelogger/order.asp
+http://www.delphiforfun.org/Programs/ChickenCrossing.htm
+http://www.delphion.com/help/workfiles
+http://www.delsolstores.com/scripts/shopplus.cgi?DN=delsolstores.com&CARTID=141104273589425&ACTION=action&FILE=/html/rugcare.html
+http://www.delta.edu/rdhoag/
+http://www.deltablues.net/nell2.html
+http://www.deltadiscovery.com/teddykitchen/teddykitch.html
+http://www.deltadiscovery.com/tundrateachtale/tundrateach.html
+http://www.deltafire.ca/Xmas_Tree.htm
+http://www.deltanewsweb.com/archives/september2003.htm
+http://www.deltasociety.org/dsc060.htm
+http://www.deltasociety.org/nsdc/alertv06n03.htm
+http://www.deltek.com/deltekweb.asp?id=477
+http://www.deltur.cec.eu.int/english/e-g-acquiscommunautaire07_3.html
+http://www.delush.com/q_and_a/
+http://www.dem.state.az.us/calendar/wc01200502s.html
+http://www.demensionszine.com/stories/0605s7.html
+http://www.demingcenter.com/html_files/the_center/the_center_bios.htm
+http://www.demko.com/m001014.htm
+http://www.democ.uci.edu/courses/hdk03.htm
+http://www.democracy.ru/english/quotes.php
+http://www.democracycellproject.net/blog/archives/2005/06/congress_shoots.html
+http://www.democracyctr.org/blog/2005_01_01_democracyctr_archive.html
+http://www.democracyforcalifornia.com/blog/archives/000142.html
+http://www.democracyforcalifornia.com/cgi-bin/mt-mojo.cgi?entry_id=780
+http://www.democracymeansyou.com/articles/article.php?ID=144
+http://www.democracynow.org/article.pl?sid=03/04/07/0216217
+http://www.democracynow.org/article.pl?sid=03/04/07/0216217&mode=thread&tid=5
+http://www.democracynow.org/article.pl?sid=04/07/14/1410247
+http://www.democracynow.org/article.pl?sid=04/11/11/1540235
+http://www.democracynow.org/static/ny_model.shtml
+http://www.democratandchronicle.com/apps/pbcs.dll/article?AID=/20050612/NEWS01/506120344/-1/ARCHIVE7
+http://www.democratictalkradio.com/demvoices-03-calif-gop-scandals.html
+http://www.democraticunderground.com/articles/05/04/13_radical.html
+http://www.democraticunderground.com/discuss/duboard.php?az=show_mesg&forum=104&topic_id=2871575&mesg_id=2871575
+http://www.democraticunderground.com/discuss/duboard.php?az=view_all&address=203x15567
+http://www.democraticunderground.com/top10/
+http://www.democraticunderground.com/top10/04/168.html
+http://www.democrats.com/display.cfm?id=157
+http://www.democrats.com/node/4926
+http://www.democrats.com/node/4978
+http://www.democrats.com/node/5043
+http://www.democrats.org.au/speeches/?speech_id=278&display=1
+http://www.demon-tweeks.co.uk/help/default.asp?category_id=4
+http://www.demos.co.uk/
+http://www.demos.co.uk/aboutus/internships/
+http://www.demosondemand.com/dod/feat_cont/gsp/index.aspx
+http://www.demosondemand.com/dod/proddemos/frontend/fed_arms.aspx
+http://www.demuynck.org/feature/mop/task2.html
+http://www.denbighshire.gov.uk/LL/LifeLong.nsf/0/9D8DD5D760C64ED880256FAB00590837?OpenDocument
+http://www.dendy.com.au/
+http://www.deneysreitz.co.za/news/news.asp?ThisCat=2&ThisItem=522
+http://www.denholmvillage.co.uk/19thcentury.htm
+http://www.denic.de/en/bedingungen.html
+http://www.denic.de/en_1/bedingungen.html
+http://www.deniskitchen.com/Merchant2/merchant.mv?Screen=PROD&Store_Code=S&Product_Code=BP_KSP.212
+http://www.deniskitchen.com/docs/TMCM.Bushmiller.html
+http://www.denison.edu/student-affairs/handbook/harassmentprohibited.html
+http://www.dennishensley.com/Press_TalkingPictures.htm
+http://www.denniskennedy.com/archives/cat_legal_technology.html
+http://www.denniskyne.com/Military%20Intervention.htm
+http://www.dennislocorriere.com/tour-dates.htm
+http://www.dennisprager.com/showTapes.html?id=04-03
+http://www.dennisyang.com/archive/2005/04/
+http://www.dent.ohio-state.edu/Outreach/Geriatric_Dental_Program.htm
+http://www.dent.unimelb.edu.au/dsweb/continuing_dev/location_parking.html
+http://www.dentalfearcentral.com/
+http://www.dentalfearcentral.com/dental_phobia_websites.html
+http://www.dentalgentlecare.com/oral_cancer_disease.htm
+http://www.dentalgentlecare.com/playsafe.htm
+http://www.denveraudubon.org/calendar.htm
+http://www.denverbroncos.com/page.php?id=334&storyID=3751
+http://www.denverbroncos.com/page.php?id=334&storyID=3832
+http://www.denverbroncos.com/page.php?id=609&videoID=392
+http://www.denverbrown.com/union.html
+http://www.denvergov.com/GamePlan/template21667.asp
+http://www.denvergov.org/MOEDIT/moed.asp?section=business&page=dus&category_id=1
+http://www.denvergov.org/Moedit/moed.asp?section=business&page=dus&category_id=1
+http://www.denvergov.org/Police/template310226.asp
+http://www.denvergov.org/moedit/moed.asp?section=business&page=dus&category_id=1
+http://www.denverhealth.org/TraumaCenter/Polyheme.aspx
+http://www.denverpost.com/Stories/0,1413,36%257E33%257E2463919,00.html
+http://www.denverseminary.edu/dj/articles2004/0100/0102.php
+http://www.denvervisualstudio.net/
+http://www.denverzoo.org/conservation/conservation.htm
+http://www.dep.org.uk/resources/Race/RaceTeachbks.htm
+http://www.dep.state.fl.us/lands/invaspec/2ndlevpgs/faq.htm
+http://www.dep.state.pa.us/dep/counties/york/Land_Recycling_Program.htm
+http://www.depandagifts.com/33teacstay11.html
+http://www.departments.bucknell.edu/career_dev/prelaw/academicprep.shtml
+http://www.departments.dsu.edu/disted/orientation/tips.htm
+http://www.depauw.edu/news/index.asp?id=13057
+http://www.depauw.edu/sfs/backissues/3/huntington3art.htm
+http://www.depravityscale.org/depravity1.htm
+http://www.depression2.tv/nwo/archives/000018.html
+http://www.depressioncenter.net/depressiontest/
+http://www.depts.drew.edu/jhc/eisenman.html
+http://www.deq.state.or.us/wmc/solwaste/moa11b.html
+http://www.deq.state.or.us/wmc/tank/hotfaqs.htm
+http://www.dequinix.com/a/perfect.php
+http://www.der.org/resources/curriculum-guide-for-film.html
+http://www.derby.ac.uk/prospectus/ugprospectus/coursedetails.asp?Id=373
+http://www.derbyarboretum.co.uk/visitors.htm
+http://www.derbymanagement.com/knowledge/pages/creating/winning.html
+http://www.derbymanagement.com/knowledge/pages/tactics/managing.html
+http://www.derbyshireuk.net/cromford.html
+http://www.derbyshireuk.net/shardlow.html
+http://www.dere-street.com/archives/retail/index.php
+http://www.derelictstudios.net/cta/
+http://www.deremilitari.org/resources/ARTICLES/eltis.htm
+http://www.derickrethans.nl/20021230.php
+http://www.derivativesstrategy.com/magazine/archive/1995-1996/0496test.asp
+http://www.dermstore.com/list_100110-300019ipp500.htm
+http://www.derrittmeister.com/navy.htm
+http://www.derrittmeister.com/robpost.htm
+http://www.dervala.net/archives/000021.html
+http://www.dervala.net/archives/000628.html
+http://www.dervala.net/archives/000671.html
+http://www.desales.edu/default.aspx?pageid=1436
+http://www.descend.com.au/newsletter/2003912912.htm
+http://www.desertskycommunications.com/bulletin-spring2000.html
+http://www.desertsunonline.com/
+http://www.desertsunonline.com/apps/pbcs.dll/frontpage?date=20050131
+http://www.desertusa.com/utfield/utfield.html
+http://www.design-council.org.uk/webdav/servlet/XRM?Page/@id=6003&Session/@id=D_jm42q4dtLEgw2wCTU9AK&Document/@id=3666
+http://www.design-council.org.uk/webdav/servlet/XRM?Page/@id=6011&Session/@id=D_jm42q4dtLEgw2wCTU9AK&Section/@id=1240
+http://www.design-council.org.uk/webdav/servlet/XRM?Page/@id=6046&Session/@id=D_jm42q4dtLEgw2wCTU9AK&Document%5B@id%3D5185%5D/Chapter/@id=3
+http://www.design-council.org.uk/webdav/servlet/XRM?Page/@id=6048&Session/@id=D_jm42q4dtLEgw2wCTU9AK&Document/@id=4690
+http://www.design-publications.co.uk/mike_carver.htm
+http://www.design.iastate.edu/LABS/
+http://www.designaddict.com/design_shop/index.cfm/fuseaction/amazon_list/scope_id/1/scopes_group_id/1/key/COUNTRY/index.cfm
+http://www.designawards.com.au/ADA/INFO/APPLICATION-FORM/APPLICATION-FORM.HTM
+http://www.designawards.com.au/ADA/INFO/APPLICATION-FORM/APPLICATION-FORM.HTM?type=print
+http://www.designboom.com/eng/funclub/designnow.html
+http://www.designbyfire.com/000068.html
+http://www.designbyfire.com/000099.html
+http://www.designbyfire.com/000111.html
+http://www.designbyfire.com/cat_everything.html
+http://www.designbyfire.com/index.xml
+http://www.designchambers.com/wolfhound/
+http://www.designcouncil.info/webdav/servlet/XRM?Page/@id=6048&Session/@id=D_UWask62umMwh2doBlmuC&Document/@id=4690
+http://www.designcouncil.org.uk/webdav/servlet/XRM?Page/@id=6003&Session/@id=D_5AFlTvf705tL9HUtNzYb&Document/@id=5033
+http://www.designcouncil.org.uk/webdav/servlet/XRM?Page/@id=6011&Session/@id=D_QRul95zO1CmOfkaTdaiW&Section/@id=1240
+http://www.designcouncil.org.uk/webdav/servlet/XRM?Page/@id=6046&Session/@id=D_5AFlTvf705tL9HUtNzYb&Document%5B@id%3D5185%5D/Chapter/@id=3
+http://www.designcouncil.org.uk/webdav/servlet/XRM?Page/@id=6048&Session/@id=D_5kVgHuOXLhTfO9T5X06q&Document/@id=4690
+http://www.designcouncil.org.uk/webdav/servlet/XRM?Page/@id=6048&Session/@id=D_QRul95zO1CmOfkaTdaiW&Document/@id=4690
+http://www.designcrux.netfirms.com/trouble_with_information.html
+http://www.designcutters.com/dog-feeders.htm
+http://www.designfor21st.org/pg.cfm?nid=saturday&l=en
+http://www.designinference.com/documents/2003.02.Miller_Response.htm
+http://www.designingforlearning.info/services/writing/conrad.htm
+http://www.designlab-chicago.com/Sales/New%20Sales/Lighting%20Effects.htm
+http://www.designmuseum.org/design/index.php?id=103
+http://www.designmuseum.org/designerex/eileen-gray.htm
+http://www.designnews.com/article/CA130002.html
+http://www.designnews.com/article/CA610462.html
+http://www.designobserver.com/
+http://www.designobserver.com/archives/000121.html
+http://www.designobserver.com/archives/000159.html
+http://www.designobserver.com/archives/000216.html
+http://www.designobserver.com/archives/000883.html
+http://www.designobserver.com/archives/002161.html
+http://www.designobserver.com/archives/002917.html
+http://www.designobserver.com/archives/003459.html
+http://www.designshare.com/Research/Boney/Renovation2.htm
+http://www.designshare.com/Research/Taylor/Taylor_Programming_3.htm
+http://www.designshare.com/Research/Wolff/Project_Learning.htm
+http://www.designtaxi.com/privacypolicy.jsp
+http://www.designthatmatters.org/field-journal/archives/week_2003_08_10.html
+http://www.designweenie.com/blog/
+http://www.designweenie.com/blog/index.php/category/5
+http://www.desiringgod.org/library/biographies/02wilberforce.html
+http://www.desitunes4u.com/Album_Reviews_Get_Ready_Get_Set.htm
+http://www.deskeng.com/Articles/Applications/Making-the-Right-Connection-Can-Lower-Costs-20041001126.html
+http://www.deskeng.com/Articles/Applications/Reducing-Wind-Fatigue-and-Summer-Headaches-20041201213.html
+http://www.deskeng.com/Articles/Cover-Story/Solid-Edge-16:-As-Good-as-the-Previous-Updates?-2004090162.html
+http://www.deskeng.com/index.php?option=content&task=view&id=213
+http://www.deskeng.com/index.php?option=content&task=view&id=62&Itemid=80
+http://www.desktoplinux.com/articles/AT2779208064.html
+http://www.desktoppipeline.com/trends/163703039
+http://www.desmoinesregister.com/apps/pbcs.dll/article?AID=/20050607/OPINION01/506070357/1035/OPINION
+http://www.dest.gov.au/Ministers/Media/Nelson/2003/10/n485141003.asp
+http://www.dest.gov.au/Ministers/Media/Nelson/2004/04/n693300404.asp
+http://www.dest.gov.au/Ministers/Media/Nelson/2004/12/n1022071204.asp
+http://www.dest.gov.au/archive/publications/annual_reports/9697/web/01vol2.htm
+http://www.dest.gov.au/ministers/nelson/jul_03/aim.htm
+http://www.dest.gov.au/schools/recap/section4/nsw.htm
+http://www.destination-scotland.com/activities/regionactivities.asp?region=14
+http://www.destination-scotland.com/activities/water_sports.asp
+http://www.destinationcrm.com/articles/default.asp?ArticleID=1018
+http://www.destinationcrm.com/articles/default.asp?ArticleID=3160&TopicID=9
+http://www.destinationcrm.com/articles/default.asp?ArticleID=5031
+http://www.destinationfootball.net/mainsite/fullStory.aspx?pg=1&newsURL=/competitions/UCL/News/index,newsId=274199.html&country=
+http://www.destinationpartners.com/maritime_park.htm
+http://www.destroy-all-monsters.com/yoshiinterview.shtml
+http://www.det.vic.gov.au/det/about/corpplan/context.htm
+http://www.det.wa.edu.au/connectedlearning/presenters_concurrent_presenters.html
+http://www.dethorpe.demon.co.uk/
+http://www.detnews.com/
+http://www.detnews.com/2002/specialreport/0211/03/a01-629401.htm
+http://www.detnews.com/2003/autosinsider/0309/17/autos-271166.htm
+http://www.detnews.com/2003/autosinsider/0309/21/a01-275770.htm
+http://www.detnews.com/2003/schools/0310/28/a03-309820.htm
+http://www.detnews.com/2003/technology/0307/23/technology-224829.htm
+http://www.detnews.com/2004/autosinsider/0410/12/autos-298236.htm
+http://www.detnews.com/2004/health/0411/29/health-17165.htm
+http://www.detnews.com/2004/health/0412/03/health-17165.htm
+http://www.detnews.com/2004/metro/0412/19/metro-36349.htm
+http://www.detnews.com/2004/specialreport/0403/11/a01-84173.htm
+http://www.detnews.com/2004/specialreport/0403/18/a01-84173.htm
+http://www.detnews.com/2004/technology/0407/12/technology-206044.htm
+http://www.detnews.com/2005/autosconsumer/0501/14/G01-57578.htm
+http://www.detnews.com/2005/autosconsumer/0501/19/G01-57578.htm
+http://www.detnews.com/2005/autosconsumer/0501/23/G01-57578.htm
+http://www.detnews.com/2005/autosconsumer/0501/24/G01-57578.htm
+http://www.detnews.com/2005/autosinsider/0502/03/C01-78397.htm
+http://www.detnews.com/2005/eatsdrinks/0501/24/E03-67911.htm
+http://www.detnews.com/2005/eatsdrinks/0501/28/E03-67911.htm
+http://www.detnews.com/2005/screens/0501/29/E01-72609.htm
+http://www.detnews.com/2005/screens/0502/04/E01-79149.htm
+http://www.detnews.com/2005/technology/0501/04/B01-47391.htm
+http://www.detnews.com/2005/wings/0502/03/F01-78778.htm
+http://www.detnews.com/2005/wings/0502/05/F01-78778.htm
+http://www.detnews.com/2005/wings/0502/06/F01-78778.htm
+http://www.detnews.com/autosconsumer/
+http://www.detoxamin.com/index.asp?pgid=1134
+http://www.detrick.army.mil/cutting_edge/index.cfm?chapter=chapter9
+http://www.detroitkidshow.com/Maureen_Bailey.htm
+http://www.detroitnewspapers.com/deathnotices/displaytext.cfm
+http://www.detroitnewspapers.com/deathnotices/displaytext.cfm?PageNum_get_records=2&keyword=&month=a&perpage=10&day=a&year=a&action=today
+http://www.detto.com/learningcenter/MLCTOTMjune2003.htm
+http://www.detzner.com/answrcop.htm
+http://www.deusex-machina.com/
+http://www.deutschakademie.com/learn-german-courses/Service-AGB.htm
+http://www.deutsche-welle.de/dw/article/0,1564,1414195,00.html
+http://www.devarticles.com/c/a/JavaScript/Suggest-As-You-Type
+http://www.devarticles.com/c/a/JavaScript/Suggest-As-You-Type/
+http://www.devarticles.com/c/b/Web-Design-Standards/
+http://www.develop.com/whidbey
+http://www.developer.com/design/article.php/1593811
+http://www.developer.com/java/other/article.php/627001
+http://www.developer.com/tech/article.php/3306771
+http://www.developer.com/tech/article.php/606241
+http://www.developerfusion.co.uk/csharp/206/
+http://www.developerfusion.co.uk/scripts/print.aspx?id=13
+http://www.developerfusion.co.uk/show/13/3/
+http://www.developerfusion.co.uk/show/4665/
+http://www.developerfusion.co.uk/show/4665/1/
+http://www.developerfusion.co.uk/show/4693/
+http://www.developerfusion.com/show/4665/
+http://www.developeriq.com/articles/view_article.php?id=422
+http://www.developerpipeline.com/59300711
+http://www.developingteachers.com/tips/currenttip.htm
+http://www.development.uwaterloo.ca/ways/grad_gift_progs.html
+http://www.developmentaldisability.org/ChallengesFacingParents.htm
+http://www.developmentinpractice.org/abstracts/vol12/edv12n3guest.htm
+http://www.developmentinpractice.org/readers/Learning%20Org/intro%20essay.htm
+http://www.developments.org.uk/data/issue28/indian-lunch.htm
+http://www.developreneurs.com/all/SC/Cottageville.html
+http://www.developreneurs.com/all/SC/Ehrhardt.html
+http://www.devereonline.co.uk/interactive/subscribe/
+http://www.devereux1.org/books/books.php?id=2162&type=de
+http://www.devguru.com/features/tutorials/AdvancedSQL/advancedSQL.html
+http://www.deviantart.com/
+http://www.deviantart.com/deviation/14480396/
+http://www.deviantart.com/deviation/18984262/
+http://www.deviantart.com/deviation/3491437/
+http://www.deviceforge.com/articles/AT5785815397.html
+http://www.devicelink.com/mddi/archive/03/01/004.html
+http://www.devicelink.com/mddi/archive/03/08/013.html
+http://www.devicelink.com/pmpn/archive/00/01/003.html
+http://www.devicelink.com/pmpn/archive/00/08/004.html
+http://www.devin.com/jg.php3
+http://www.devmaster.net/articles/particle_systems/
+http://www.devon-calling.com/touring%20devon/se-devon.htm
+http://www.devonfarms.co.uk/links.htm
+http://www.devpsy.org/teaching/method/confirmation_bias.html
+http://www.devsource.com/article2/0,1759,1777534,00.asp
+http://www.devunit.gov.ms/budget/2004/budget2004.htm
+http://www.devvy.com/200306031651.html
+http://www.devvy.com/notax.html
+http://www.devweek.com/speakers/
+http://www.devx.com/amd/Article/20555
+http://www.devx.com/dotnet/Article/10921
+http://www.devx.com/dotnet/Article/10921/1763
+http://www.devx.com/getHelpOn/10MinuteSolution/20332/1763
+http://www.devx.com/getHelpOn/10MinuteSolution/20547
+http://www.devx.com/getHelpOn/10MinuteSolution/20547/1763
+http://www.devx.com/ibmpervasive/Article/22148
+http://www.devx.com/ibmpervasive/Article/22148/1763
+http://www.devx.com/opensource/Article/11839/0/page/2
+http://www.devx.com/opensource/Article/11839/1763/page/2
+http://www.devx.com/opensource/Article/11839/1954?pf=true
+http://www.devx.com/opinion/Article/26776/1954?pf=true
+http://www.devx.com/wireless/Article/21452/1954?pf=true
+http://www.dewitt.wramc.amedd.army.mil/News/FAQs.htm
+http://www.dewitt.wramc.amedd.army.mil/Patinfo_ns/appointment.htm
+http://www.dexterdyne.org/302.HTM
+http://www.dexterity.com/aargon-deluxe/
+http://www.dexterity.com/dweep/
+http://www.dfa.gov.za/docs/speeches/2003/zuma1008.htm
+http://www.dfa.ns.ca/dial1003.html
+http://www.dfait-maeci.gc.ca/arms/gov_report-en.asp
+http://www.dfait-maeci.gc.ca/arms/moens/a_eurocopter-en.asp
+http://www.dfait-maeci.gc.ca/arms/westdal2-en.asp
+http://www.dfait-maeci.gc.ca/arts/visual-en.asp
+http://www.dfait-maeci.gc.ca/cfsi-icse/cil-cai/inter-source/cc-en.asp?iso=ps
+http://www.dfait-maeci.gc.ca/cfsi-icse/cil-cai/inter-source/cc-en.asp?iso=sl
+http://www.dfait-maeci.gc.ca/cip-pic/current_discussions/group-en.asp?topic_id=34&bnum=2
+http://www.dfait-maeci.gc.ca/cip-pic/ips/ips-overview2-en.asp
+http://www.dfait-maeci.gc.ca/ciw-cdm/Archer-en.asp
+http://www.dfait-maeci.gc.ca/department/history/canada4-en.asp
+http://www.dfait-maeci.gc.ca/department/history/dcer/details-en.asp?intRefid=6060
+http://www.dfait-maeci.gc.ca/nafta-alena/nafta5_section07-en.asp
+http://www.dfait-maeci.gc.ca/tna-nac/prev-stories-en.asp
+http://www.dfat.gov.au/aib/competitive_economy.html
+http://www.dfat.gov.au/environment/climate/
+http://www.dfat.gov.au/geo/fyrom/fyrom_brief.html
+http://www.dfat.gov.au/media/transcripts/1999/990907_downer_timor_3aw.html
+http://www.dfat.gov.au/media/transcripts/2000/000531_vaile.html
+http://www.dfat.gov.au/media/transcripts/2000/000605_mvt_apecdarwin.html
+http://www.dfat.gov.au/media/transcripts/2000/000606_darwin0630.html
+http://www.dfat.gov.au/media/transcripts/2002/020513_t_geneva.html
+http://www.dfat.gov.au/media/transcripts/2002/020531_t_mex_apec.html
+http://www.dfat.gov.au/media/transcripts/2003/031029_doorstop_sydney.html
+http://www.dfat.gov.au/trade/negotiations/environment/fisheries_subsidies.html
+http://www.dfat.gov.au/trade/negotiations/us_fta/outcomes/02_key_outcomes.html
+http://www.dfcint.com/game_article/2001highlght.html
+http://www.dfes.gov.uk/achievingsuccess/chap1.shtml
+http://www.dfes.gov.uk/alevelreport/
+http://www.dfes.gov.uk/choiceprotects/bulletins/issue2.shtml
+http://www.dfes.gov.uk/curriculum_literacy/access/physical/
+http://www.dfes.gov.uk/dfee/heqe/lmi_ies4.htm
+http://www.dfes.gov.uk/indpartnerships/partnerships/chapters1.shtml
+http://www.dfes.gov.uk/listeningtolearn/
+http://www.dfes.gov.uk/pns/DisplayPN.cgi?pn_id=2001_0129
+http://www.dfes.gov.uk/pns/DisplayPN.cgi?pn_id=2004_0093
+http://www.dfes.gov.uk/pns/DisplayPN.cgi?pn_id=2005_0053
+http://www.dfes.gov.uk/publications/
+http://www.dfes.gov.uk/qualityprotects/work_pro/project_9.shtml
+http://www.dfes.gov.uk/studentsupport/eustudents/pos_postgraduate_st_1.shtml
+http://www.dfg.de/en/news/press_releases/2005/press_release_2005_20.html
+http://www.dfg.de/raumtransportsysteme/einsatz_4_e.html
+http://www.dfglondon.com/training/training_terms.php
+http://www.dfi.wa.gov/cu/bulletins2005.htm
+http://www.dfki.uni-kl.de/~miller/no-word
+http://www.dfo-mpo.gc.ca/canwaters-eauxcan/infocentre/legislation-lois/policies/fhm-policy/chap5_e.asp
+http://www.dfo-mpo.gc.ca/communic/fish_man/ardmp/ardmp-pvqra_e.htm
+http://www.dfpni.gov.uk/economics_division/general/recruitmentandcareerdev.htm
+http://www.dfr.state.nc.us/fire_control/fire_glossary.htm
+http://www.dft.gov.uk/stellent/groups/dft_about/documents/page/dft_about_022067-10.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_about/documents/page/dft_about_031274.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_about/documents/page/dft_about_034404.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_foi/documents/page/dft_foi_507544-04.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_mobility/documents/page/dft_mobility_024869-06.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_mobility/documents/page/dft_mobility_028957-02.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_mobility/documents/page/dft_mobility_028957.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_mobility/documents/page/dft_mobility_503229-04.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_mobility/documents/page/dft_mobility_503240.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_mobility/documents/page/dft_mobility_503284.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_rdsafety/documents/page/dft_rdsafety_028165-08.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_roads/documents/page/dft_roads_022762.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_roads/documents/page/dft_roads_029787.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_roads/documents/page/dft_roads_038153.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_science/documents/page/dft_science_504480-10.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_susttravel/documents/page/dft_susttravel_503984-02.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_susttravel/documents/page/dft_susttravel_504071-02.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_susttravel/documents/page/dft_susttravel_504076-10.hcsp
+http://www.dft.gov.uk/stellent/groups/dft_susttravel/documents/page/dft_susttravel_504078-15.hcsp
+http://www.dfw.state.or.us/ODFWhtml/InfoCntrFish/FRIMAout.htm
+http://www.dfw.state.or.us/agency/commission/minutes/05/May/index.asp
+http://www.dfwonline.org/resources-grantwritingtips.asp
+http://www.dfwpest.com/
+http://www.dfwpugs.com/health.html
+http://www.dg.dial.pipex.com/plowden17b.shtml
+http://www.dg.dial.pipex.com/plowdenore01.shtml
+http://www.dgp.utoronto.ca/~rudy/mushroom.html
+http://www.dgs.edu.hk/
+http://www.dh.gov.uk/PolicyAndGuidance/HealthAndSocialCareTopics/BloodSafety/DVT/DVTArticle/fs/en?CONTENT_ID=4071438&chk=2OT7NG
+http://www.dh.gov.uk/PolicyAndGuidance/HealthAndSocialCareTopics/CJD/fs/en
+http://www.dh.gov.uk/PolicyAndGuidance/HealthAndSocialCareTopics/FiveADay/FiveADayGeneralInformation/FiveADayGeneralArticle/fs/en?CONTENT_ID=4002343&chk=6XTIfl
+http://www.dh.gov.uk/PolicyAndGuidance/HealthAndSocialCareTopics/Genetics/GeneticsGeneralInformation/GeneticsGeneralArticle/fs/en?CONTENT_ID=4071376&chk=Lhdf9a
+http://www.dh.gov.uk/PolicyAndGuidance/HealthAndSocialCareTopics/LongTermConditions/fs/en
+http://www.dh.gov.uk/PolicyAndGuidance/HumanResourcesAndTraining/NationalTaskforceOnViolence/SelfAuditTool/SelfAuditToolArticle/fs/en?CONTENT_ID=4073881&chk=QVdeAq
+http://www.dh.gov.uk/PublicationsAndStatistics/PressReleases/PressReleasesNotices/fs/en?CONTENT_ID=4111988&chk=PumBe6
+http://www.dh.gov.uk/PublicationsAndStatistics/PressReleases/PressReleasesNotices/fs/en?CONTENT_ID=4113558&chk=gQA8K6
+http://www.dh.gov.uk/PublicationsAndStatistics/Publications/AnnualReports/DHAnnualReportBrowsableDocument/fs/en?CONTENT_ID=4097707&amp;MULTIPAGE_ID=4921426&amp;chk=9cnIbi
+http://www.dh.gov.uk/PublicationsAndStatistics/Publications/PublicationsStatistics/PublicationsStatisticsArticle/fs/en?CONTENT_ID=4111548&chk=sPWTda
+http://www.dh.gov.uk/PublicationsAndStatistics/PublishedSurvey/NationalSurveyOfNHSPatients/NationalSurveyInpatients/NationalSurveyInpatientsArticle/fs/en?CONTENT_ID=4016444&chk=dVFdy3
+http://www.dha.gov.au/dhacontent.asp?menuid=472
+http://www.dha.gov.au/dhacontent.asp?menuid=482
+http://www.dharma-talks.com/
+http://www.dharmacentral.com/faq.htm
+http://www.dharmafish.org/s1018/stuff_show.htm?content_id=3453
+http://www.dharmalife.com/issue26/playing.html
+http://www.dharmamind.net/Archive5.htm
+http://www.dhcd.state.md.us/hidp/index.asp
+http://www.dhhs.state.sc.us/InsideDHHS/Bureaus/BureauofSeniorServices/service1038532003.htm
+http://www.dhn-online.org/freeIssue/cholesterol.html
+http://www.dhp2.com/color/written_general06.shtml
+http://www.dhs.ca.gov/lnc/default.htm
+http://www.dhs.gov/dhspublic/display?content=3870
+http://www.dhs.gov/dhspublic/display?content=3934
+http://www.dhs.gov/dhspublic/display?content=4153
+http://www.dhs.gov/dhspublic/display?content=4246
+http://www.dhs.gov/dhspublic/display?content=490
+http://www.dhs.state.il.us/ts/fss/IL444-2378B(Text).html
+http://www.dhs.state.ri.us/dhs/famchild/dcspgm.htm
+http://www.dhs.vic.gov.au/ahs/archive/nap/biblio7.htm
+http://www.dhushara.com/book/hieros/hieros.htm
+http://www.dhushara.com/book/sci/sexdeth.htm
+http://www.dhyanapeetam.org/Teachings.asp
+http://www.diabetes.fi/english/programme/programme/chapter11.htm
+http://www.diabetes.org.uk/apc/
+http://www.diabetes.org.uk/balance/191/191ladychamp.htm
+http://www.diabetes.org.uk/research/grants/types.htm
+http://www.diabetes.org/type-1-diabetes/smoking.jsp
+http://www.diabetesindia.com/diabetes/diabetes_sdict.htm
+http://www.diabetesinsipidus.org/pets_di_in_bestfriends.htm
+http://www.diabetesmonitor.com/b245.htm
+http://www.diabetesmonitor.com/pima10.htm
+http://www.diabetesnet.com/diabetes_control_tips/hypoglycemia_unawareness.php
+http://www.diabetesportal.com/teentalk/articles/ronan.htm
+http://www.diabetesselfmanagement.com/article.cfm?sid=1&tid=24&stid=44&aid=107&sk=5WZ2
+http://www.diabetic-lifestyle.com/articles/may98_trave_1.htm
+http://www.diabetic-recipes.com/cat_vegetables.htm
+http://www.diabetic.com/newsletter/archives/April2001/index.asp
+http://www.diablogrande.com/winegallery/reception-details.htm
+http://www.diag.org.uk/
+http://www.diagnose-me.com/cond/C47895.html
+http://www.diahome.org/docs/Journal/Journal_author_information.cfm
+http://www.diakrisis.org/messages_15.htm
+http://www.dialdesign.com.au/about.html
+http://www.dialog.com/
+http://www.dialog.inwent.org/en/rub_20020219180527/artikel_20050116164158.html?print=1
+http://www.dialspace.dial.pipex.com/town/terrace/adw03/peel/chartism/o'conmod.htm
+http://www.diamondblog.com/archives/cat_science.html
+http://www.diamondregistry.com/jewel.htm
+http://www.diamondtalk.com/forums/showthread.php?t=47297&pagenumber=3
+http://www.diamondtalk.com/forums/showthread.php?t=47297&pagenumber=9
+http://www.diamondway-buddhism.org/terms/au-signs.htm
+http://www.diana-east.co.uk/frametuition.htm
+http://www.dianaewald.com/
+http://www.dianefarrisgallery.com/artist/chihuly/garfield/
+http://www.dianemiddlebrook.com/tipton/btexcerpt.html
+http://www.diapozytyw.pl/en/site/slady_i_judaica/kazimierz_dolny
+http://www.dickbaldwin.com/python/Pyth0001.htm
+http://www.dickens-literature.com/Bleak_House/33.html
+http://www.dickeybetts.com/
+http://www.dickgregory.com/dick/web_of_lies_.html
+http://www.dickinson.edu/departments/polcy/styles.html
+http://www.dickinson.edu/nectfl/workshops05.html
+http://www.dickinson.edu/prorg/nectfl/workshops05.html
+http://www.dicksonrealty.com/
+http://www.dictionary.net/free
+http://www.didata.com.au/ourclients/clientstory.asp?ctID=262
+http://www.didjshop.com/affiliates/affiliate_FAQs.html
+http://www.diduknow.info/docks/access/dock_history12.html
+http://www.diecast.org/diecast98/html/asp/faq/faq.asp
+http://www.diem.dk/english/diem/digdance/movement.php
+http://www.dier.tas.gov.au/publications/annualre/workplace_standards.html
+http://www.dieselnet.com/tech/fuel_alt.html
+http://www.dieselpage.com/art0500rf.htm
+http://www.diet-i.com/carb-intake.htm
+http://www.diet-step.com/comingsoon.html
+http://www.dieteticintern.com/distance/trendstechnology.htm
+http://www.dietitian.com/choleste.html
+http://www.dietitian.com/fertility.html
+http://www.dietitian.com/general.html
+http://www.dietitian.com/salt.html
+http://www.dietotenhosen.de/en/alldieganzenjahre_interviews_studio.php
+http://www.dietpower.com/getslimslippers.htm
+http://www.dietpower.com/help/diet/exercise_dictionary_1.htm
+http://www.differentstrings.info/archives/2002/09/science_and_the.html
+http://www.difu.de/publikationen/dfk/en/02_2/02_2_kodolitsch.shtml
+http://www.difu.de/publikationen/dfk/en/04_1/04_1_koziol.shtml
+http://www.dig.wroc.pl/en/102/
+http://www.diggerhistory.info/pages-badges/qualification.htm
+http://www.diggerhistory.info/pages-battles/ww1/anzac/timeline.htm
+http://www.diggerhistory.info/pages-battles/ww1/france/yank.htm
+http://www.diggerhistory.info/pages-battles/ww2/maroubra.htm
+http://www.diggers.org/kaliflower/dtf.htm
+http://www.digi-darkroom.com/archive/index.php/t-10527.html
+http://www.digidesign.com/news/details.cfm?story_id=1161
+http://www.digihitch.com/amazonroad-0375509127.html
+http://www.digihitch.com/amazonroad-B00005N7OS.html
+http://www.digihitch.com/ftopic-2305-0.html
+http://www.digihitch.com/ftopicp-14369.html
+http://www.digihitch.com/ftopict-2305.html
+http://www.digilearnonline.com/first_time.asp
+http://www.digiserve.com/eescape/closet/pratchett/Johnny-and-the-Dead.html
+http://www.digiserve.com/eescape/closet/silly/50-Reasons-Jedi-Sucks.html
+http://www.digiserve.com/er/episodes/season5/er509cn.html
+http://www.digiserve.com/er/faq/node9.html
+http://www.digiserve.com/peter/blues.htm
+http://www.digit-life.com/articles2/video/dx-update.html
+http://www.digit-life.com/forum/0004/000191.html
+http://www.digital-copyright.ca/node/view/818
+http://www.digital-teacher.com/homepage/userguide/chapter12.htm
+http://www.digital-tutors.com/forums/showthread.php?threadid=5949
+http://www.digital-web.com/articles/completely_rethinking_the_web
+http://www.digital-web.com/articles/completely_rethinking_the_web/
+http://www.digital-web.com/articles/computer_based_music_production_on_a_budget/
+http://www.digital-web.com/articles/how_to_write_effective_mailing_list_email/
+http://www.digital-web.com/articles/peter_morville_and_lou_rosenfeld/
+http://www.digital-web.com/features/feature_2002-09.shtml
+http://www.digital-web.com/tutorials/tutorial_2002-08.shtml
+http://www.digitalbrain.com/roztru/web/AF/George%20Orwell.db_psc
+http://www.digitalcenter.org/webreport95/history.htm
+http://www.digitaldeck.com/2.2_company_investors.htm
+http://www.digitaldivide.net/articles/view.php?ArticleID=32
+http://www.digitaldivide.net/articles/view.php?ArticleID=70
+http://www.digitaleconomist.com/as_4020.html
+http://www.digitaleconomist.com/intro_4020.html
+http://www.digitaleconomist.com/ms_4020.html
+http://www.digitaledge.org/monthly/2001_06/primer.html
+http://www.digitalfire.ab.ca/cermat/education/45.html
+http://www.digitalgovernment.org/news/stories/2004/1004/1004_ctg_heyman.jsp
+http://www.digitalguestlist.com/media-tjchapman.shtml
+http://www.digitalhistory.uh.edu/modules/coming_civilwar/index.cfm
+http://www.digitaljesters.com/forums/showthread.php?t=2675&goto=nextoldest
+http://www.digitaljournalist.org/issue0005/burnett.htm
+http://www.digitaljournalist.org/issue0110/drew.htm
+http://www.digitaljournalist.org/issue0111/biggart_intro.htm
+http://www.digitaljournalist.org/issue0412/faas-reuters.html
+http://www.digitalmaidstone.co.uk/councils/wkendfreighter.php
+http://www.digitalmedievalist.com/faqs/taliesin.html
+http://www.digitalmonkeybox.com/star_wars_the_phantom_menace.htm
+http://www.digitalmusicnews.com/yesterday/march2005
+http://www.digitalnaturopath.com/cond/C3441.html
+http://www.digitalnorseman.com/healing/archive/2004_02_22_hvarchive
+http://www.digitalnpq.org/global_services/global%20viewpoint/04-20-04.html
+http://www.digitalnpq.org/global_services/global_ec_viewpoint/05-15-01.html
+http://www.digitaloutput.net/content/ContentCT.asp?P=199
+http://www.digitaloutput.net/content/ContentCT.asp?P=53
+http://www.digitalpersona.com/support/custServ/endUserLicense.html
+http://www.digitalpersona.com/terms.html
+http://www.digitalpreservation.gov/formats/content/video_quality.shtml
+http://www.digitalproducer.com/articles/viewarticle.jsp?id=28807
+http://www.digitalproducer.com/articles/viewarticle.jsp?id=7408
+http://www.digitalscrapbookplace.com/shop/Albums/index.shtml
+http://www.digitalspace.com/content/atmosphere/2003/fitsfu/chatlogs/
+http://www.digitalspeech.org/bpdg.shtml
+http://www.digitalspy.co.uk/article/ds16735.html
+http://www.digitalspy.co.uk/tv/beontv/
+http://www.digitaltelevision.com/articles/article_865.shtml
+http://www.digitaltermpapers.com/c4405.htm
+http://www.digitalthreads.com/rada/engr.html
+http://www.digitalvillage.com.au/DiscountInvestment/glossary/glossarybody.htm
+http://www.digitas.harvard.edu/~wdbridge/about.php
+http://www.digitecoptical.com/tele-meade-lxseries-comparison.htm
+http://www.digiwis.com/dwi_ugp5.htm
+http://www.digsmagazine.com/host/host_kickback.htm
+http://www.dillonadopt.com/orphanCare/
+http://www.dilmahtea.com/faq.asp
+http://www.dimacc.com/cdproj.shtml
+http://www.dimensionsmagazine.com/dimtext/Barbers/morphing.html
+http://www.dinesletter.com/mastercourse.html
+http://www.dinf.ne.jp/doc/english/Us_Eu/ada_e/ada/ada_preamble.htm
+http://www.dinf.ne.jp/doc/english/global/david/dwe001/dwe00107.htm
+http://www.dinoridge.org/news_Feb_2004.htm
+http://www.dinovite.com/supplement-tips.html
+http://www.dinsdoc.com/greene-3-18.htm
+http://www.dioala.org/
+http://www.diobeth.org/Bishop/Secular/sec51.html
+http://www.diocal.org/
+http://www.dioceseofcleveland.org/hispanicministry/what's%20happening.htm
+http://www.dioceseofgaylord.org/inside/called-by-god-9/
+http://www.diocesereport.com/rose_m/castro_idiot.shtml
+http://www.diolex.org/advocate/0212/021211t.htm
+http://www.diplom.org/Zine/S1995M/Nelson/Latest.html
+http://www.diplomatie.be/en/press/homedetails.asp?TEXTID=5377
+http://www.diplomatie.gouv.fr/label_france/46/gb/06.html
+http://www.diplomatie.gouv.fr/label_france/49/gb/07.html
+http://www.diploweb.com/english/russia/laughland1.htm
+http://www.diploweb.com/p27.htm
+http://www.dippyrecords.com/Trades/trades-ns.htm
+http://www.dir.ca.gov/oshab/decisions/sweatheart_final.htm
+http://www.dir.ie/interest/Drowsey%20Driving.htm
+http://www.dir.qld.gov.au/privacy.htm
+http://www.dir.qld.gov.au/privacy/faqs/
+http://www.dir.state.tx.us/dir_overview/main/012401minutes.htm
+http://www.dir.state.tx.us/dir_overview/main/022002minutes.htm
+http://www.dir.state.tx.us/dir_overview/main/100401minutes.htm
+http://www.dircsa.org.au/docs/anorex.htm
+http://www.direct-golf.co.uk/
+http://www.direct-golf.co.uk/product/product.asp?product_ID=1464
+http://www.direct-golf.co.uk/product/product.asp?product_ID=278
+http://www.direct-golf.co.uk/product/sections/sections.asp?search_product_type=3
+http://www.direct-golf.co.uk/product/sections/sections.asp?search_product_type=3&pagenum=2
+http://www.direct-golf.co.uk/proshops/ladies.asp
+http://www.direct-golf.co.uk/proshops/newProduct.asp
+http://www.direct-golf.co.uk/sale/index.asp?search_product_type=3
+http://www.direct-golf.co.uk/static/contact/contact.asp
+http://www.direct.gov.uk/Audiences/DisabledPeople/Rights/YourRights/RightsArticle/fs/en?CONTENT_ID=4001076&chk=s9%2BC8q
+http://www.direct.gov.uk/MoneyTaxAndBenefits/PensionsAndRetirement/FinancialPlanningForRetirement/FinancialPlanningArticles/fs/en?CONTENT_ID=10014579&amp;chk=5o6VcJ
+http://www.direct.gov.uk/MoneyTaxAndBenefits/Taxes/InheritanceTaxEstatesAndTrusts/InheritanceTaxArticles/fs/en?CONTENT_ID=10010612&amp;chk=9Tm0VZ
+http://www.direct.gov.uk/Topics/Learning/Glossary/fs/en?CONTENT_ID=4017681&chk=VnhxEI
+http://www.direct.gov.uk/Topics/Learning/Glossary/fs/en?CONTENT_ID=4017696&chk=OEYyQ/
+http://www.direct.gov.uk/Topics/Motoring/CarDrivers/CarDriversInformation/fs/en?CONTENT_ID=4016323&chk=6yLSgW
+http://www.directadvisers.com.au/Financial%20Planning%20FSG.htm
+http://www.directcareclearinghouse.org/l_additions.jsp
+http://www.directessays.com/viewpaper/61035.html
+http://www.directessays.com/viewpaper/96566.html
+http://www.directionjournal.com/spirituality/rumme.htm
+http://www.directionjournal.org/article/?1032
+http://www.directionjournal.org/article/?764
+http://www.directionsmag.com/article.php?article_id=306
+http://www.directionsmag.com/blog/
+http://www.directionsmag.com/blog/archives/200506.html
+http://www.directlyhome.com/contemporary-platform.html
+http://www.directlyhome.com/crawford.html
+http://www.directmag.com/columns/marketing_state_union/
+http://www.directmag.com/mag/marketing_new_blood_finding/
+http://www.directmag.com/mag/marketing_swiss_clinique_terrifique/
+http://www.directmarketingcenter.com/
+http://www.directmarketingcenter.net/
+http://www.directory.co.uk/History_Of_Mobile_Phones.htm
+http://www.directoryofschools.com/auto-mechanic-school.htm
+http://www.directrelief.org/sections/our_work/asia_earthquake.html
+http://www.directron.com/clearance.html
+http://www.directron.com/clearpc.html
+http://www.directron.com/systems-customized-systems.html
+http://www.directron.com/systems.html
+http://www.directwatch.com/Bagpipe/directory/pipe-band.html
+http://www.directwatch.com/SPDADirectoryGenerator/directory/bagpipe-history-scottish.html
+http://www.directwatch.com/SPDADirectoryGenerator/directory/kilt-pattern-scottish.html
+http://www.directwatch.com/SPDADirectoryGenerator/directory/scottish-culture.html
+http://www.directwatch.com/SPDADirectoryGenerator/directory/scottish-play.html
+http://www.dirfile.com/freeware/cellular.htm
+http://www.dirfile.com/freeware/free-mortgage-software.htm
+http://www.dirfile.com/freeware/light.htm
+http://www.dirfile.com/freeware/players.htm
+http://www.dirfile.com/freeware/pressure.htm
+http://www.dirtyfighting.com/
+http://www.disability.gov.uk/campaigns/regs_final.html
+http://www.disability.gov.uk/legislation/ddb/response.asp
+http://www.disabilitycentral.com.au/disAbilityCentral/about.asp
+http://www.disabilitycentral.com/activteen/camp/camp_art_01.htm
+http://www.disabilitycentral.com/activteen/magazine/news_views/news_views.htm
+http://www.disabilitycentral.com/world/special_thoughts.htm
+http://www.disabilityisnatural.com/book.htm
+http://www.disabilitysupplies.co.uk/acatalog/tv_listening_equipment.html
+http://www.disabilitytax.ca/subs/ldac-e.html
+http://www.disabilityworld.org/11-12_02/gov/lagadien.shtml
+http://www.disablejobsite.co.uk/accessible/pro_showvacancy.php/JobID=1882
+http://www.disablejobsite.co.uk/pro_showvacancy.php/JobID=1882
+http://www.disasteraction.org.uk/support/da_guide06.htm
+http://www.disasteraction.org.uk/support/da_guide06p.htm
+http://www.disastereducation.org/guide.html
+http://www.disasterscharter.org/charter_e.html
+http://www.disasterwarning.com/DWN_21_CENTURY.htm
+http://www.disciples.org/ccu/documents/dialpapmorr.htm
+http://www.disciplescross.com/
+http://www.disciplescross.com/index.asp?PageAction=Custom&ID=23
+http://www.disclosureproject.org/responses.htm
+http://www.disco-disco.com/labels/tkdisco.html
+http://www.discount-body-building-supplements.com/m1p.html
+http://www.discount-tickets.us/disney-wide-world-of-sports/disney-wide-world-of-sports.htm
+http://www.discountart.com/store/grumbacher-max-oils.html
+http://www.discountart.com/store/grumbacher-pretest-oils.html
+http://www.discountart.com/store/rembrandtoilcolor.html
+http://www.discountcoffee.com/Catalog.htm
+http://www.discountpetmedicines.com/pet-products.htm
+http://www.discourse.net/archives/2004/06/apologia_pro_tormento_analyzing_the_first_56_pages_of_the_walker_working_group_report_aka_the_torture_memo.html
+http://www.discourse.net/archives/2005/01/how_to_deal_with_this_classroom_situation.html
+http://www.discourse.net/archives/2005/04/those_shirts_are_looking_mighty_brown_sir.html
+http://www.discourse.net/mt/mt-comments.cgi?entry_id=2188
+http://www.discourses.ca/v2n1a4.html
+http://www.discover.com/web-exclusives-archive/world-wide-mind-meld0408/
+http://www.discover.tased.edu.au/english/stand.htm
+http://www.discoverabroad.com/US/LivingAbroad/careers/StepstoTake.htm
+http://www.discovergames.com/Tales2.html
+http://www.discoveringfossils.co.uk/gettingstarted.htm
+http://www.discoveringmontana.com/doa/gsd/procurement/centralstoresprogram.asp
+http://www.discoverjamaica.com/gleaner/discover/tour_ja/tour11.htm
+http://www.discovernorthernireland.com/product.aspx?ProductID=7448
+http://www.discoverohio.com/search/results.asp?From=CategoryDrill&ID=98
+http://www.discoverourtown.com/TownPage.php?Town=3347&Cat=Shopping
+http://www.discoverparis.net/newsletter.html
+http://www.discoversimcoe.com/MappingHelp.cfm
+http://www.discovervancouver.com/forum/topic.asp?TOPIC_ID=4231
+http://www.discovervancouver.com/forum/topic.asp?TOPIC_ID=9323
+http://www.discoverwest.com.au/hotels/country-club-hotel-kununurra-8381.html
+http://www.discovery.org/scripts/viewDB/index.php?command=view&id=2670&program=CSC%20-%20Views%20and%20News
+http://www.discovery.org/scripts/viewDB/index.php?command=view&program=CSC-News&id=2274
+http://www.discovery.org/scripts/viewDB/index.php?command=view&program=Misc&id=1148
+http://www.discoveryfund.org/auction_update.html
+http://www.discoveryinitiatives.co.uk/articleschimp.asp
+http://www.discoveryinitiatives.co.uk/oman.asp
+http://www.discoveryourpersonality.com/newsletter14.html
+http://www.discoverytools.com/
+http://www.discriminations.us/storage/002534.html
+http://www.discriminations.us/storage/003134.html
+http://www.discussanything.com/forums/archive/index.php/t-68557.html
+http://www.discussbodybuilding.com/Another_question/m_34792/tm.htm
+http://www.discussbodybuilding.com/fb.asp?m=34977
+http://www.disinfo.com/archive/pages/article/id1728/pg1/
+http://www.disinfo.com/archive/pages/dossier/id356/pg1/
+http://www.disinfo.com/site/displayarticle1843.html
+http://www.disinfo.com/site/displayarticle7613.html
+http://www.disinfotainmenttoday.com/issue96.htm
+http://www.dislam.org/love/approvable.html
+http://www.dislam.org/science/universe_physics.html
+http://www.disney.ca/vacations/disneyworld/VIIII/magical.html
+http://www.dispatch.com/
+http://www.dispatchesfromfrance.blogspot.com/
+http://www.dissectionchoice.org/
+http://www.dissentmagazine.org/menutest/articles/fa04/brook.htm
+http://www.dissidentvoice.org/Articles/Nader_TitleIX.htm
+http://www.dissidentvoice.org/Nov2004/Berkowitz1125.htm
+http://www.dissidentvoice.org/Nov2004/Reichel1118.htm
+http://www.dissidentvoice.org/Sept04/Petersen0901.htm
+http://www.dissociation.co.uk/links.htm
+http://www.distantcousin.com/Cemetery/PA/Berks/LongswampUnion/
+http://www.distributiondrive.com/Article7.html
+http://www.district.north-van.bc.ca/article.asp?c=126
+http://www.district76.org/int_rules.html
+http://www.district87.org/
+http://www.districtadministration.com/page.cfm?p=611
+http://www.districtadministration.com/page.cfm?p=761
+http://www.districtadministration.com/page.cfm?p=762
+http://www.districtadministration.com/page.cfm?p=811
+http://www.districtenergy.com/CurrentActivities/
+http://www.dit.ie/DIT/graduate/ethics/
+http://www.dit.ie/DIT/news/perspectives/jmolloy.html
+http://www.ditchley.co.uk/news/arms01-01.htm
+http://www.ditd.org/Cybersource/record.aspx?sid=11333&scat=902&stype=110
+http://www.dititu.dk/page103.html
+http://www.divasthesite.com/Society_Divas/ann_woodward_a.htm
+http://www.divatribe.com/articles/coleman_resolutions.shtml
+http://www.diverdiver.com/2002_10_16_diverdiver_archive.html
+http://www.diversitas-international.org/news_events_calendar.html
+http://www.diversityatwork.com/news/jul00/code_sa.html
+http://www.diversitycareers.com/articles/pro/octnov02/mng_martin.htm
+http://www.diversitynow.ca/features/article.jsp?content=20041102_085628_3172&sec=MYSTORY
+http://www.diversityweb.org/Digest/Sp01/mediawatch.html
+http://www.diversityweb.org/diversity_innovations/curriculum_change/advanced_courses_pluralism/ethnic_id_intergroup.cfm
+http://www.diveweb.com/commdive/features/mayjune2000.03.htm
+http://www.diveweb.com/commdive/index.shtml
+http://www.dividedbypolitics.com/fear.htm
+http://www.divine-heart.org/how-to-pick-healer.html
+http://www.divinestra.com/profess01.html
+http://www.division42.org/PublicArea/Info_Public/Info_You_Can_Use/heller_infertility.html
+http://www.divisionoflabour.com/
+http://www.divorce.co.uk/legal/englandwales/legalcloserlook/questions/freqaskquestions.htm
+http://www.divorceaid.co.uk/emotional/HELP/
+http://www.divorceaid.co.uk/emotional/tell-spouse.htm
+http://www.divorceaid.co.uk/financial/settlement.htm
+http://www.divorceaid.co.uk/legal/short-term.htm
+http://www.divorcehelp.com/faq.html
+http://www.divorcehelp.com/shortcourse/C23.html
+http://www.divorceinfo.com/standardvisitation.htm
+http://www.divorcekit.com/memory.htm
+http://www.divorcenet.com/divorcenet_2/states/new_york/military_divorce_and_pensions
+http://www.divorcenet.com/filing/states/minnesota/divorce_toppling_12_myths
+http://www.divorcenet.com/states/colorado/co_art09
+http://www.divorcenet.com/states/maryland/mdart_14
+http://www.divorcenet.com/states/massachusetts/the_financial_affidavit
+http://www.divorcenet.com/states/minnesota/divorce_toppling_12_myths
+http://www.divorcenet.com/states/nationwide/checklist
+http://www.divorcenet.com/states/nationwide/checklist/view
+http://www.divorcenet.com/states/nationwide/the_walkaway_wife_syndrome
+http://www.divorcenet.com/states/new_jersey/njart27/view
+http://www.divorcenet.com/states/new_york/military_divorce_and_pensions
+http://www.divorcenet.com/states/new_york/nyart11
+http://www.divorcenet.com/states/new_york/nyart11/view
+http://www.divorcenet.com/states/new_york/nyart17
+http://www.divorcesource.com/book/categories/mediation.shtml
+http://www.dix.army.mil/PAO/Post02/post091302/pattack.htm
+http://www.dixiesappers.org/hhc/journal/june/june_07.html
+http://www.diygames.com/index.php?p=907&more=1
+http://www.diynet.com/diy/fc_brick/article/0,2037,DIY_13810_2277756,00.html
+http://www.diynet.com/diy/fv_maintenance/article/0,2029,DIY_13825_2273061,00.html
+http://www.diynet.com/diy/gf_types/article/0,2029,DIY_13837_2270427,00.html
+http://www.diynet.com/diy/he_diagnostics/article/0,2037,DIY_13893_2274799,00.html
+http://www.diynet.com/diy/hi_bathrooms/article/0,2037,DIY_13903_3239951,00.html
+http://www.diynet.com/diy/ll_chandeliers/article/0,2041,DIY_14048_2275288,00.html
+http://www.diynet.com/diy/programdaily/0,2019,DIY_14196_2-28-2005_EST,00.html
+http://www.diynet.com/diy/sc_techniques/article/0,2025,DIY_14232_2275010,00.html
+http://www.diynet.com/diy/shows_cds/article/0,2045,DIY_15079_2499051,00.html
+http://www.diynet.com/diy/shows_dqoc/0,2044,DIY_16163,00.html
+http://www.diynet.com/diy/ww_other/article/0,2049,DIY_14443_2492380,00.html
+http://www.diynetwork.com/diy/hi_outdoor_structures/article/0,2037,DIY_13927_2370969,00.html
+http://www.diynetwork.com/diy/os_activities/article/0,2033,DIY_14149_2271261,00.html
+http://www.dizbeaux.net/erin/fiction/lancewentdowntogeorgiaremix.html
+http://www.djamkaret.com/reviews.php
+http://www.djangomontreal.com/doc/djangobooks.htm
+http://www.djangomusic.com/item_movie.asp?dt=53&id=V+++249603
+http://www.djc.com/news/re/11119158.html
+http://www.djdchronology.com/irisguardian011202.htm
+http://www.djmgr.com/public/license_agreement.htm
+http://www.djrhythms.com/db/lb/promoonly/u-radio-1996-01.htm
+http://www.djroger.com/berry%20culture.htm
+http://www.djsource.co.uk/forums/archive/t-17535.html
+http://www.djsource.co.uk/forums/archive/t-19737.html
+http://www.djsource.co.uk/forums/archive/t-30560.html
+http://www.djsource.co.uk/forums/showthread.php?goto=lastpost&t=19737
+http://www.djsource.co.uk/forums/showthread.php?t=19737
+http://www.djspooky.com/articles/kutculture.html
+http://www.djurdjevic.com/Bulletins2002/09(IBM-Insiders).html
+http://www.dkeithrobinson.com/asterisk/archive/2004/08/successful-blog
+http://www.dkeithrobinson.com/asterisk/archive/2004/09/mt-31-impressions
+http://www.dkosopedia.com/index.php/Paul_Dundes_Wolfowitz
+http://www.dkosopedia.com/index.php/Paul_Wolfowitz
+http://www.dksg.org/mia.htm
+http://www.dla.mil/Dimensions/Septoct99/Y2k%20news.htm
+http://www.dla.mil/j-3/a-76/A-76Guidebook29May04AppendA.html
+http://www.dlapiper.com/us/firm/probono.aspx
+http://www.dli.state.pa.us/landi/cwp/browse.asp?A=3&tx=1
+http://www.dli.state.pa.us/landi/cwp/view.asp?a=152%7CQ=59265%7ClandiPNavCtr=%7C905%7C@2010
+http://www.dli.state.pa.us/landi/site/default.asp
+http://www.dlia.org/atbi/science/ex_sum_2004_awards.shtml
+http://www.dlib.org/dlib/february98/arms/02arms.html
+http://www.dlib.org/dlib/january02/berthon/01berthon.html
+http://www.dlib.org/dlib/june04/king/06king.html
+http://www.dlib.org/dlib/june05/lee/06lee.html
+http://www.dlib.org/dlib/may03/authors/05authors.html
+http://www.dlib.org/dlib/october01/garrison/10garrison.html
+http://www.dlib.org/dlib/september02/galloway/09galloway.html
+http://www.dlib.org/dlib/september04/providenti/09providenti.html
+http://www.dlink.com/corporate/news/pr040728.asp
+http://www.dllr.state.md.us/whatsnews/whatsnews.htm
+http://www.dlncoalition.org/dln_issues/2003may10bernard.htm
+http://www.dlnets.com/mctft_20May04.htm
+http://www.dlscouts.ie/scot2002.html
+http://www.dltk-kids.com/rhymes/princessandfrog/mprincessbag.htm
+http://www.dltk-teach.com/rhymes/princessandfrog/mprincessbag.htm
+http://www.dlynnwaldron.com/South_Africa.html
+http://www.dmaconsumers.org/consumerassistance.html
+http://www.dmcityview.com/main.asp?SectionID=12&SubSectionID=73&BrowseClass=1&Category=1000&SubCategory=1000
+http://www.dmeb2.org/authors/redone/ms6.html
+http://www.dmeurope.com/default.asp?ArticleID=2738
+http://www.dmeurope.com/default.asp?ArticleID=7504
+http://www.dmhall.co.uk/news_year_2002.asp
+http://www.dmi.org/dmi/html/publications/news/ebulletin/may04ebulletin.htm
+http://www.dmm.org.uk/colliery/w003.htm
+http://www.dmnforums.com/cgi-bin/displaywwugpost.fcgi?forum=cinema4d&post=050510122123.htm
+http://www.dmreview.com/article_sub.cfm?articleID=1019956
+http://www.dmreview.com/article_sub.cfm?articleID=8222
+http://www.dmreview.com/article_sub.cfm?articleId=1003792
+http://www.dmreview.com/article_sub.cfm?articleId=1012404
+http://www.dmreview.com/article_sub.cfm?articleId=1014146
+http://www.dmreview.com/article_sub.cfm?articleId=1016310
+http://www.dmreview.com/article_sub.cfm?articleId=1016478
+http://www.dmreview.com/article_sub.cfm?articleId=1023911
+http://www.dmreview.com/article_sub.cfm?articleId=1024526
+http://www.dmreview.com/article_sub.cfm?articleId=2553
+http://www.dmreview.com/article_sub.cfm?articleId=4625
+http://www.dmreview.com/article_sub.cfm?articleId=5346
+http://www.dmreview.com/article_sub.cfm?articleId=5891
+http://www.dmreview.com/master.cfm?NavID=55&EdID=7915
+http://www.dmulawsociety.btinternet.co.uk/mooting/midland_comp/midlandscompformat.html
+http://www.dmv.ca.gov/faq/genfaq.htm
+http://www.dmvnv.com/namechange.htm
+http://www.dmxzone.com/go?8200
+http://www.dmxzone.com/go?9167
+http://www.dnaperfection.com/pages/4/page4.html?refresh=1116971491449
+http://www.dnd.ca/somalia/vol4/v4c29e.htm
+http://www.dnd.ca/somalia/vol4/v4c31e.htm
+http://www.dndresources.com/index.php/articles/89
+http://www.dndresources.com/index.php/articles/c122/
+http://www.dnjournal.com/archive/deardomey-archive.htm
+http://www.dnr.state.ak.us/ssd/recoff/default.htm
+http://www.dnr.state.md.us/bay/protect/home.html
+http://www.dnr.state.md.us/humanresources/careers/onlinecareer.htm
+http://www.dnr.state.md.us/wildlife/furbearermgt.asp
+http://www.dnr.state.md.us/wildlife/home4turkeys.asp
+http://www.dnr.state.md.us/wildlife/wthunting/index.asp
+http://www.dnr.state.mn.us/canoeing/straightriver/
+http://www.dnr.state.mn.us/forestry/fire/dangerrating.html
+http://www.dnr.state.mn.us/fwt/back_issues/march98/mcbs.html
+http://www.dnr.state.mn.us/volunteer/julaug02/firewise.html
+http://www.dnr.state.mn.us/volunteer/novdec97/tdeer.html
+http://www.dnr.state.mn.us/young_naturalists/deer/
+http://www.dnr.state.mo.us/concern.htm
+http://www.dnr.state.oh.us/dnap/location/smith_cemetery.html
+http://www.dnr.state.oh.us/parks/parks/clevelkf.htm
+http://www.dnr.state.oh.us/policy/PerformanceReviewProcedure.htm
+http://www.dnr.state.sc.us/cec/news/apr0901.html
+http://www.dnr.state.sc.us/climate/sercc/education/saer/aer_fall_97.html
+http://www.dnr.state.sc.us/marine/pub/seascience/jellyfi.html
+http://www.dnr.state.wi.us/org/caer/ce/news/on/
+http://www.dnr.state.wi.us/org/land/wildlife/whealth/issues/CWD/askscott1_05.htm
+http://www.dnsstuff.com/
+http://www.dnye.co.uk/stock.shtml
+http://www.dnzb.govt.nz/dnzb/Find_Quick.asp?PersonEssay=4B6
+http://www.dnzone.com/go?48
+http://www.doa.state.wi.us/docs_view2.asp?docid=2604
+http://www.doacs.state.fl.us/ai/main/equine_ecard.shtml
+http://www.dobbertinhydrocar.com/Orbiter%20Magazine%20Quotes.htm
+http://www.dobkin.com/content/Articles/CreatingSuccessfulSalesLetters.asp
+http://www.dobkin.com/content/articles/SimpleObjectiveOfAMarketingCampaign.asp
+http://www.doc.govt.nz/Conservation/003~Weeds/south-island-wilding-conifer-strategy/001~The-Wilding-Conifer-Problem/2.2-Characteristics-of-Wilding-Conifer-Spread.asp
+http://www.doc.ic.ac.uk/~dcw/
+http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol2/aa18/article2.html
+http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html
+http://www.doc.ic.ac.uk/~nd/surprise_97/journal/vol2/mssa/
+http://www.doceo.co.uk/original/learnloss_1.htm
+http://www.doceo.com/bday%20script.htm
+http://www.docep.wa.gov.au/lr/LabourRelations/Content/Work%20Life%20Balance/Pay%20Equity/Pages/History%20of%20Women%20in%20.html
+http://www.docfilm.com/mexfilms/tepoz/Resonancia.html
+http://www.docfizzix.com/distance_pics.htm
+http://www.docguide.com/dg.nsf/PrintPrint/BFB7320155978CBD85256F17004A81F7
+http://www.docheritage.state.pa.us/documents/lancasterpetitiontrans.asp
+http://www.docnotes.net/stories/2003/01/26/treatmentOfTheIngrownToenail.html
+http://www.doctechnical.com/fst/notes/fc-cd.htm
+http://www.doctor-hill.com/iol-master/alm.htm
+http://www.doctorbyte.us/datarecoverylevels.htm
+http://www.doctorfloyd.com/pblog/
+http://www.doctorg.com/amazon_products.htm
+http://www.doctorgavin.com/Writing/Fishermans.html
+http://www.doctorsoftheworld.org/common/news/details.cfm?QID=1153&ClientID=11012
+http://www.doctorspiller.com/Dr_Spiller_Biography.htm
+http://www.doctorspiller.com/Root_Canals.htm
+http://www.doctortravel.ca/thrombosis.asp
+http://www.doctronics.co.uk/meter.htm
+http://www.documentary-video.com/displayitem.cfm?vid=1103
+http://www.documentedlife.com/welcome.htm
+http://www.documentsonline.nationalarchives.gov.uk/medals.asp
+http://www.docusearch.com/client_pr.html
+http://www.dod.gov/speeches/1997/s19970806-dalton.html
+http://www.dod.gov/transcripts/2003/tr20030414-secdef0104.html
+http://www.dod.mil/comptroller/icenter/dwcf/gatewaydwcf.htm
+http://www.dod.mil/mapsite/jrspouse.html
+http://www.dod.mil/news/Feb2005/n02242005_2005022402.html
+http://www.dod.mil/news/Mar2005/20050318_240.html
+http://www.dod.mil/transcripts/2004/tr20041208-secdef1761.html
+http://www.dod.mil/transcripts/2005/tr20050207-2104.html
+http://www.dod.mil/transcripts/2005/tr20050614-secdef3041.html
+http://www.dodgestudio.com/
+http://www.dodpi.army.mil/docs/research/97r0003.htm
+http://www.doe.mass.edu/frameworks/foreign/1996/wlpart.html
+http://www.doe.mass.edu/frameworks/scitech/2001/standards/strand4.html
+http://www.doe.state.in.us/olr/archive/infolit/welcome.html
+http://www.dog-play.com/petshop2.html
+http://www.dog.dnr.state.ak.us/oil/products/publications/otherreports/5year99/5year99_og_results.html
+http://www.dogbarter.com/sellerscorner.aspx
+http://www.dogbehaviour.com/behaviourproblems/dogs/yourdog/pullinglead.htm
+http://www.dogclub.co.uk/regions/region-sc.php
+http://www.dogfind.com/apb.asp
+http://www.doggonesafe.com/Become%20a%20Presenter.htm
+http://www.doghouserules.net/
+http://www.doglinks.co.nz/
+http://www.doglinks.co.nz/problems/problems.htm
+http://www.doglogic.com/bloat.htm
+http://www.dogomania.com/names/type/human_names.shtml
+http://www.dogpatch.org/agility/FAQs/faqsho04.html
+http://www.dogplay.com/GettingDog/petshop2.html
+http://www.dogs4sale.com.au/Dog_Names.htm
+http://www.dogscouts.com/clicker.shtml
+http://www.dogsdontbite.com/pages/wisdom.htm
+http://www.dogshome.org/go.rm?id=1118
+http://www.dogshome.org/go.rm?id=494
+http://www.dogshome.org/rehabilitate/behaviour_school/
+http://www.dogster.com/?diary=152196
+http://www.dogstory.net/news_archives_jan_03.htm
+http://www.dogtagsdirect.com/
+http://www.dogthebountyhunter.com/about.html
+http://www.dogtrainersite.com/dogtrainer/becoming-a-dog-trainer.html
+http://www.dogtraining-online.co.uk/
+http://www.dogtrainingblueprint.com/56.html
+http://www.dogtrainingblueprint.com/articles.html
+http://www.dogtulosba.com/archives/cat_hardly_working_is_haaaaaard_work.html
+http://www.doh.gov.za/docs/sp/2004/sp0830.html
+http://www.doh.gov.za/docs/sp/2005/sp0618.html
+http://www.doh.wa.gov/Data/Guidelines/HumanSubjectsguide.htm
+http://www.doh.wa.gov/Hanford/publications/health/working.html
+http://www.doh.wa.gov/Leg/2004_Legup/02_05_04_BillWatch.htm
+http://www.doh.wa.gov/Publicat/2002_News/02-159.htm
+http://www.dohc.ie/publications/fulltext/quality_and_fairness/part3.html
+http://www.dohistory.org/interests/i_teaching.html
+http://www.doi.gov.mt/en/press_releases/2004/03/pr340.asp
+http://www.doi.gov/hrm/pmanager/er9k.html
+http://www.doi.gov/news/finaltfreport.html
+http://www.doi.gov/news/opeds/bend.htm
+http://www.doi.state.id.us/sfm/fm_library.asp
+http://www.doi.vic.gov.au/DOI/Internet/transport.nsf/0/DF597F556E7229C4CA256C1C0017CB91?OpenDocument
+http://www.doit.gmu.edu/portfolio/2004/CS/SCEval04.htm
+http://www.doit.wisc.edu/accessibility/online-course/standards/tables.htm
+http://www.doktorandhandboken.nu/english/after_degree.shtml
+http://www.doktorfrank.com/
+http://www.doktorfrank.com/archives/003166.html
+http://www.dol.gov/dol/allcfr/ESA/Title_29/Part_24/29CFR24.5.htm
+http://www.dol.gov/ebsa/media/congress/20030501_combs_house_approp.htm
+http://www.dol.gov/ebsa/publications/AC_1114b01_report.html
+http://www.dol.gov/esa/regs/compliance/ofccp/directives/dir260.htm
+http://www.dol.gov/esa/regs/compliance/olms/localelec/localelec.htm
+http://www.dol.gov/esa/regs/compliance/owcp/blbenact.html
+http://www.dol.gov/esa/regs/compliance/whd/printpage.asp?REF=whdfs22.htm
+http://www.dol.gov/esa/regs/compliance/whd/whdfs22.htm
+http://www.dol.gov/esa/regs/compliance/whd/whdfs31.htm
+http://www.dol.gov/esa/regs/compliance/whd/whdfs45.htm
+http://www.dol.govt.nz/futureofwork/workforce.asp
+http://www.dol.govt.nz/productivity/whatis/index.asp
+http://www.dol.ks.gov/wcboard/CH8_RES.html
+http://www.dola.state.co.us/doh/Documents/Advances/tenant-l.htm
+http://www.dolacamotorplex.com/rules.htm
+http://www.dole.gov.ph/speeches/speeches2004/nationalconferenceITGLWF_speech.htm
+http://www.dole5aday.com/Grownups/Fun/G_GetKidsToEat5ADay.jsp
+http://www.dole5aday.com/Kids/Friends/K_Peter_Peach.jsp
+http://www.doleta.gov/BRG/
+http://www.doleta.gov/sga/awards/99-008award.cfm
+http://www.dollsntoys.com/liddle.htm
+http://www.dolly-hotel.co.uk/h-a-5063.html
+http://www.dolorouscanter.com/
+http://www.dolphinexplorer.com/tours.html
+http://www.dolphinfreedom.com/d1.html
+http://www.dolphinsfilm.com/Learn/General.htm
+http://www.dolphinuk.co.uk/audio/support/warranty.htm
+http://www.dolphinuk.co.uk/support/warranty_statement.htm
+http://www.dom.com/news/gas2001/pr0104.jsp
+http://www.domain-b.com/organisation/jrd_tata_ecotechnology/20030307_ecology.htm
+http://www.domain.com.au/general/display.aspx?id=HPEp_3Sep04&mode=tvvid
+http://www.domain.com.au/real-estate/VIC/North+East/10.html
+http://www.domain.com.au/real-estate/sydney/unit/48.html
+http://www.domania.com/
+http://www.domeplans.com/text.html
+http://www.domesdaybook.co.uk/william.html
+http://www.domestic-church.com/CONTENT.DCC/19980901/SAINTS/ARCHANGELS.HTM
+http://www.domestic-church.com/CONTENT.DCC/20020101/ESSAY/suffering.htm
+http://www.dominicaninlove.com/latin-girls-49.html
+http://www.dominickeating.com/2005_january.htm
+http://www.domotics.com/homesys/HSpapers/daimlerbenz.htm
+http://www.domtar.com/corporate_section/code_of_ethics/individual_policies/human_rights_policy.asp
+http://www.don-lindsay-archive.org/creation/behe.html
+http://www.don-lindsay-archive.org/creation/denton.html
+http://www.donaghue.org/bio1.htm
+http://www.donaldbaechler.com/info/info.html
+http://www.donaldedavis.com/BM04WEB/Bokstory.html
+http://www.donaldsensing.com/2003_06_01_archive.html
+http://www.donate-blood.com/site2/content/about/blood_supply.asp
+http://www.donatelifeny.org/transplant/murray.html
+http://www.doncaster.gov.uk/Leisure_in_Doncaster/Sports_and_games/Sports_and_leisure_centres/St_James/St_James_Pool_and_Health_Club_-_Prices_2004-05.asp
+http://www.donegalcottageholidays.com/ellyhouse/
+http://www.donegalcottageholidays.com/mountainlodge/
+http://www.donegalcottageholidays.com/thebarn/
+http://www.donegalcottageholidays.com/windyridge/
+http://www.donewaiting.com/
+http://www.donewaiting.com/archives/2005_06.php
+http://www.donewaiting.com/atomicned/
+http://www.donewaiting.com/oh/
+http://www.donhead.com/oldhouse.htm
+http://www.donkeyontheedge.com/2002/10/
+http://www.donlemmon.com/exercise-101-working-out-and-weight-training.html
+http://www.donnunn.com/spiel/2004/01/cnncom_cyanide_.html
+http://www.donquijote.org/english/la/pricelist.courses.asp
+http://www.donquijote.org/english/pricelist.courses.asp
+http://www.dontfretpet.com.au/franchises.php
+http://www.dontronics.com/auto.html
+http://www.dontshake.com/Audience.aspx?categoryID=1&PageName=grandmaspromise.htm
+http://www.dontveter.com/probp/prodoc/example.html
+http://www.dooce.com/
+http://www.dooce.com/archives/daily/07_10_2003.html
+http://www.dooce.com/archives/daily/09_16_2004.html
+http://www.doom9.org/Old_news/august04.htm
+http://www.doom9.org/mpg/ifoedit-dvdauthor.htm
+http://www.dooneyscafe.com/modules.php?op=modload&name=News&file=article&sid=408
+http://www.doors.pe.kr/doors/wainting%20for%20the%20sun/waiting.htm
+http://www.dooyoo.co.uk/archive-electronics/general-comments-2/358918/
+http://www.dooyoo.co.uk/credit-card/marks-spencer-financial-services/1002703/
+http://www.dooyoo.co.uk/discussion/manchester-united-general/1006806/
+http://www.dooyoo.co.uk/garden-furniture/hydropool-hot-tubs/1005653/
+http://www.dooyoo.co.uk/hair-care/futura-hair-styling-irons/reviews/
+http://www.dooyoo.co.uk/hair-care/jerome-russell-hair-colour/reviews/
+http://www.dooyoo.co.uk/mobile-phone/samsung-sgh-a800/reviews/
+http://www.dooyoo.co.uk/multimedia/adobe-audition/1007072/
+http://www.dooyoo.co.uk/pets-and-animals/cocker-spaniels/139982/
+http://www.dooyoo.co.uk/pubs-bars-national/basketmakers-arms/384622/
+http://www.dooyoo.co.uk/transport-international/p-o-north-sea-ferries-1/434590/
+http://www.dooyoo.co.uk/tv-programs/operation-good-guys/
+http://www.dopaminethemovie.com/filmmakers.html
+http://www.dopcampaign.org/action_guide.htm
+http://www.dopcampaign.org/media.htm
+http://www.dor.state.wi.us/faqs/pcs/sales.html
+http://www.doraweiner.org/e_w_report.html
+http://www.dorevillage.co.uk/doretodoorspr05/newsandcomment.htm
+http://www.dorsetforyou.com/index.jsp?articleid=338222
+http://www.dorsethouse.com/books/hire.html
+http://www.dorsey.com/publications/legal_detail.aspx?FlashNavID=pubs_legal&pubid=6618303
+http://www.dos.state.ny.us/lcns/exams/jan-jun2005/esthet.htm
+http://www.dosado.com/articles/hist-callerlab.html
+http://www.dosite.jp/e/do/j-state_infra.html
+http://www.dot-com-alliance.org/newsletter/article.php?article_id=107
+http://www.dot.gov/affairs/shane050905.htm
+http://www.dot.state.ia.us/mvd/ods/
+http://www.dotars.gov.au/localgovt/publications/national_report/01_02/appendix_e/index.aspx
+http://www.dotars.gov.au/terr/xmas/cui/add_port_fac/appendices/app_b.htm
+http://www.dotars.gov.au/terr/xmas/cui/add_port_fac/cui_8.htm
+http://www.dotlessbraille.org/dbnemeth.htm
+http://www.dotnet247.com/247reference/__site/85/2004/3/9
+http://www.dotnetfreak.co.uk/blog/archive/2004/11/06/166.aspx
+http://www.dotpcvc.gov.ph/Packages/Wow-Incentives/wowinc-mla.html
+http://www.dotpcvc.gov.ph/VPY-calendar/vpy-apriljune.html
+http://www.dotrs.gov.au/regional/northern_forum/locations/indian_ocean_territories/christmas_island/first_consult.htm
+http://www.doublezeroproductions.com/loretta.html
+http://www.dougknox.com/xp/tips/xp_bad_search.htm
+http://www.douglasgroup.net/selling_business_art.htm
+http://www.douglasjohnston.net/weblog/archives/2005/05/22/devonthink-attic/
+http://www.douglasknight.org/mambo/content/view/32/38/
+http://www.dountoothers.org/mormonchurchmoney.html
+http://www.doupleinsurance.com/faq.htm
+http://www.dove777.com/
+http://www.dovebid.com/
+http://www.dovebook.com/contact/sellyour.asp
+http://www.dovedale-video-studio.co.uk/titles1.htm
+http://www.dover-web.co.uk/hall_of_fame.asp
+http://www.dover.gov.uk/councillors/key-decisions/home.asp
+http://www.dow.com/dow_news/corporate/2003/20030424b.htm
+http://www.dow.com/dow_news/speeches/20020221_liveris.htm
+http://www.dow.com/dow_news/speeches/20020221a.htm
+http://www.dow.com/merger/pressconf.htm
+http://www.dowagro.com/natreon/resource/faq.htm
+http://www.dowethics.com/r/dow_news/speeches/20021028a.htm
+http://www.downers.us/govt/archives/1998/980511work.html
+http://www.downers.us/govt/archives/1999/990517meet.html
+http://www.downers.us/govt/archives/1999/990621work.html
+http://www.downers.us/govt/archives/2001/010410.htm
+http://www.downes.ca/cgi-bin/website/view.cgi?dbs=Article&key=1012279256
+http://www.downes.ca/cgi-bin/website/view.cgi?dbs=Article&key=964813240
+http://www.downeybrand.com/publications/articles/050118_wrongpremise.php
+http://www.downhillbattle.org/defense/
+http://www.downhillbattle.org/eyes/
+http://www.downhillbattle.org/reasons/
+http://www.downingstreetsays.com/
+http://www.downingstreetsays.org/
+http://www.downingstreetsays.org/archives/000173.html
+http://www.downingstreetsays.org/archives/000209.html
+http://www.downingstreetsays.org/archives/000526.html
+http://www.downingstreetsays.org/archives/000568.html
+http://www.downingstreetsays.org/archives/000619.html
+http://www.downingstreetsays.org/archives/000853.html
+http://www.downingstreetsays.org/archives/001665.html
+http://www.downingstreetsays.org/archives/001685.html
+http://www.downingstreetsays.org/archives/2004_09.html
+http://www.download.com/1200-2001-998542.html
+http://www.download.com/1200-2023-998542.html
+http://www.download.com/3000-2144-10045910.html
+http://www.download.com/3000-2144-10045910.html?part=69274&subj=dlpage&tag=button
+http://www.download.com/3000-8022-10045910.html
+http://www.download.com/3101-2016-0-1.html
+http://www.download.com/Ares-Galaxy/3640-2166_4-10174222.html
+http://www.download.com/CoffeeCup-Free-FTP/3640-2160_4-10287417.html
+http://www.download.com/Spyware-Doctor/3640-8022-10361503.html
+http://www.download.com/Spyware-Doctor/3640-8022_4-10361503.html
+http://www.download2you.com/details_page.asp?titleID=3906
+http://www.download2you.com/details_page.asp?titleID=4590
+http://www.downloadfreetrial.com/employment/amazing-cover-letters-2.html
+http://www.downloadfreetrial.com/family/build-an-automatic-lawn-sprinkler-system.html
+http://www.downloadmagic.com/blog/index.php
+http://www.downtheroad.org/Journals/1BeforeTrip/BikeMovie.htm
+http://www.downtimecentral.com/AboutDowntime.htm
+http://www.downtimecentral.com/Glossary.htm
+http://www.downtown-burbank.org/events.htm
+http://www.downtowndistrict.org/DowntownDistrict/AboutDowntown/WhatstheDifference/
+http://www.downtownexpress.com/de_89/writersspaceopens.html
+http://www.downunderonline.com/
+http://www.doyle.com.au/vikings_in_ireland.htm
+http://www.doylesdartden.com/fruitfly.html
+http://www.doyletics.com/arj/tamrev.htm
+http://www.doyletics.com/arj1revs.htm
+http://www.doyourownpestcontrol.com/mousebait.htm
+http://www.doyourownpestcontrol.com/ratbait.htm
+http://www.doyourownpestcontrol.com/rodcide.htm
+http://www.doyourownpestcontrol.com/rodenticides.htm
+http://www.doyukai.or.jp/en/chairmansmsg/articles/960424.html
+http://www.dpa.ca.gov/collbarg/contract/bu050697.htm
+http://www.dpac.tas.gov.au/divisions/lgo/legislation/LGA%20Review%202002-03/downloads.html
+http://www.dpawson.co.uk/xsl/sect2/N8321.html
+http://www.dpc.ucar.edu/earthscopeVoyager/JVV_Jr/help/helpfeat.html
+http://www.dpent.com/STReportsCat.html
+http://www.dpi.qld.gov.au/animalwelfare/15890.html
+http://www.dpi.qld.gov.au/kids/
+http://www.dpi.qld.gov.au/news/NewsReleases/16771.html
+http://www.dpi.qld.gov.au/pigs/7972.html
+http://www.dpi.vic.gov.au/dse/nrenpa.nsf/FID/-8C3B1A6104EBE3A34A2567CC0001B1B4?OpenDocument
+http://www.dpi.wa.gov.au/licensing/vehcomp/heavy/unit2.html
+http://www.dpmc.govt.nz/cabinet/guide/11a.html
+http://www.dpreview.com/news/0007/00070801psp7beta.asp
+http://www.dpreview.com/news/article_print.asp?date=0007&article=00070801psp7beta
+http://www.dpreview.com/reviews/adobeelements3/
+http://www.dpreview.com/reviews/read_opinion_text.asp?prodkey=oly_c720uz&opinion=12461
+http://www.dps.state.mn.us/patrol/safety/bikesafety/
+http://www.dps61.org/schools/south_shores/k-3%20.htm
+http://www.dqindia.com/dqtop20/2004/artdisp.asp?artid=60650
+http://www.dr-bob.org/babble/psycho/20050129/msgs/453123.html
+http://www.dr-bob.org/tips/maoi.html
+http://www.dr-delgado.com/pro_armlift.html
+http://www.dr1.com/legal/migration/residences.shtml
+http://www.dr1.com/living/customs/11.shtml
+http://www.dr911.com/
+http://www.dra.ie/dublinpact/history.html
+http://www.draaisma.net/rudi/science_cosmology/3-dimensional_time.html
+http://www.drabruzzi.com/taliban_war_on_women.htm
+http://www.draeger.com/HG/internet/AR/en/Anhang/Gewinn_Verlust/erlaeuterungen_guv.jsp
+http://www.dragg.net/jbrown/construc.htm
+http://www.dragon-amazon.net/wilpfaustralia/journal/April2001/Reports%20from%20the%20branches.html
+http://www.dragonflymedia.com/em/em2008/goodfit2008.html
+http://www.dragonlink.co.uk/forums/archive/index.php/t-13152.html
+http://www.dragonscience.com/view/specs.html
+http://www.dragonspiritcomputing.com/internet101.html
+http://www.drakensberg-tourism.com/drakensberg-conference-venues.html
+http://www.dramatec.com/articles/library/a199501001/
+http://www.dramatica.com/theory/theory_faqs/smg/basics.html
+http://www.dramatists.com/cgi-bin/db/single.asp?index=0&key=3126
+http://www.draplin.com/1999/12/
+http://www.draplin.com/2002/05/
+http://www.draplindustries.com/archives/2002/05/
+http://www.draughthorsepress.com/notesonlivinreeltime.html
+http://www.dravard.com/FAQ.htm
+http://www.drawerb.com/features/1058220166.htm
+http://www.drawfluffy.com/facts2.html
+http://www.drbanks.com/thesis/discussion.html
+http://www.drbradley.com/blog/2003/04/
+http://www.drbradley.com/blog/2003/10/
+http://www.drbradley.com/blog/2003/10/she_starts_to_s.html
+http://www.drbradley.com/blog/2004/10/i_know_you_watc.html
+http://www.drbrucegoldberg.com/Exercise1.htm
+http://www.drburnstutor.com/staff.asp
+http://www.drbusch.com/default.html
+http://www.drc-gb.org/askdrc/category/show.asp?id=190
+http://www.drc-gb.org/education/knowyourrights/parentsenglandwales.asp
+http://www.drc-gb.org/newsroom/cehrdetails.asp?id=4
+http://www.drc-gb.org/newsroom/commissionerspeechdetails.asp?id=42
+http://www.drc-gb.org/newsroom/newsdetails.asp?print=true&id=772&section=1
+http://www.drc-gb.org/open4all/publications/campaigndetails.asp?id=398
+http://www.drc-gb.org/publicationsandreports/campaigndetails.asp?print=true&section=access&id=398
+http://www.drc-gb.org/publicationsandreports/campaigndetails.asp?section=access&id=398
+http://www.drc-gb.org/publicationsandreports/campaigndetails.asp?section=oth&id=414
+http://www.drc-gb.org/thelaw/dutyevents.asp
+http://www.drdc-rddc.gc.ca/publications/lfsa/objectives_e.asp
+http://www.drdni.gov.uk/foi/classes_of_info/default.asp?category=Management%20and%20policy%20information
+http://www.drdobbsjournal.com/topics/cpp/compilers/
+http://www.drduru.com/Kim/Kim.html
+http://www.dream-love.com/advice/
+http://www.dreamdoctor.com/romance/stayingpower1.shtml
+http://www.dreamhawk.com/dyd-ch4.htm
+http://www.dreamhawk.com/seitai1.htm
+http://www.dreaminglucid.com/samplewilds.html
+http://www.dreammoods.com/dreamdictionary/c.htm
+http://www.dreamsalivemagazine.com/summer2004/idesign/
+http://www.dreamtheater.net/info_projects.php?s=ayreon
+http://www.dreamtheater.net/news_labrie.php
+http://www.dreamthread.com/spiritdream.html
+http://www.dreamtimevillage.org/faq.html
+http://www.dreddyclinic.com/integrated_med/mercurydetoxification.htm
+http://www.dredf.org/rrn/briefing33.html
+http://www.dredwerkz.com/archive:2005-01-21/13:42:26/
+http://www.dressforsuccess.nl/pagina-7--0000440601.dfs
+http://www.drewbates.com/poetry.htm
+http://www.drexel.edu/doj/artsands/movieview_killbill.asp
+http://www.drexel.edu/doj/fictions/cnf_winner_pritchie_pigroad.asp
+http://www.drexel.edu/doj/myspace/greenberg_losing.asp
+http://www.drfogarty.co.uk/gyn_heavy.html
+http://www.drfogarty.co.uk/gyn_heavy_print.html
+http://www.drgatell.com/wellness.htm
+http://www.drgreene.com/21_1649.html
+http://www.drgreene.com/21_794.html
+http://www.drheller.com/gnration.html
+http://www.drheller.com/tbppangr.html
+http://www.dri.edu/ResearchSupport/techtransferpolicy.htm
+http://www.driftbag.com/saltwater/wave_tamer.shtml
+http://www.drilldr.com/index.php?option=content&task=view&id=196&Itemid=157
+http://www.drilldr.com/index.php?option=content&task=view&id=71&Itemid=95
+http://www.drillers.com/links.cfm
+http://www.drimple.net/
+http://www.drinet.com/seniorshealth.asp
+http://www.drinkanddrugs.net/training/conferences.html
+http://www.drinkboy.com/Cocktails/
+http://www.drinkboy.com/Essays/CocktailOrigins.html
+http://www.drinkboy.com/Essays/CocktailPopularity.html
+http://www.drinkboy.com/Essays/StockingTheBar.html
+http://www.drinkboy.com/press/
+http://www.drinkme.net/dmtext2.html
+http://www.drinkme.net/mayjj04.html
+http://www.drinkstreet.com/searchresults.cgi?drinkid=108&drinkname=category:34
+http://www.drinkstuff.com/comments/
+http://www.drinkstuff.com/products/sale-stuff.asp
+http://www.drirene.com/fighting_rules.htm
+http://www.drive.com.au/buy/finance/tax.aspx
+http://www.driveandstayalive.com/articles%20and%20topics/road%20safety%20overviews/road-safety-past-present-and-future.htm
+http://www.drivecleanacrosstexas.org/for_teachers/grades_k-5/unit2/lesson1.stm
+http://www.drivedemand.com/roimatterspart3.html
+http://www.drivehomesafe.com/
+http://www.drivers.com/article/329/
+http://www.driverzone.com/obb/read.php?TID=886
+http://www.drivingforcemag.com/articles/2003-06-family-matters.html
+http://www.drj.com/forums/lofiversion/index.php/t29.html
+http://www.drjamesanthony.com/procedures.cfm
+http://www.drjanetphd.com/Dr-Janet-guidance.html
+http://www.drjeanette.com/tapes.html
+http://www.drjontry.com/articles/celebration.htm
+http://www.drkaplan.co.uk/art_therapy.htm
+http://www.drkoop.com/encyclopedia/93/135.html
+http://www.drkoop.com/newsdetail/93/519761.html
+http://www.drkoop.com/newsdetail/93/526434.html
+http://www.drlowe.com/emailnewsletter/2003archive2.htm
+http://www.drlowe.com/frf/2004studya/importance.htm
+http://www.drnorthrup.com/health_store-cr-lit.php
+http://www.drnunley.com/123.asp
+http://www.droprightin.co.uk/
+http://www.drownedinsound.com/articles/11234.html
+http://www.drownedinsound.com/articles/11697.html
+http://www.drownedinsound.com/articles/12406.html
+http://www.drownedinsound.com/articles/9822.html
+http://www.drpetra.com/Dogs/Breeding%20&%20Raising%20Puppies.htm
+http://www.drpressman.com/News/news04-05.htm
+http://www.drpribut.com/sports/shoes.html
+http://www.drpribut.com/sports/spshin.html
+http://www.drs.wa.gov/member/publications/pers/pers1returntowork.htm
+http://www.drscience.com/who.htm
+http://www.drthrockmorton.com/article.asp?id=88
+http://www.drudgereport.com/dixie.htm
+http://www.drug-rehabs.org/content.php?cid=263&state=Missouri
+http://www.drugabuse.gov/DrugPages/DrugsofAbuse.html
+http://www.drugabuse.gov/MarijBroch/Marijparentstxt.html
+http://www.drugabuse.gov/NIDA_Notes/NNVol13N6/GoestoSchool.html
+http://www.drugdeliverytech.com/cgi-bin/articles.cgi?idArticle=86
+http://www.drugdigest.org/DD/DVH/Uses/0,3915,1062%7CProcainamide+ER,00.html
+http://www.drugfree.org/Portal/DrugIssue/Research/PATS_Study_2003_-_Teens/Teen_Ecstasy_Use_Leveling_Off_After_Steep_Increas
+http://www.drugfree.org/Portal/Stories/My_Son_Justin
+http://www.drugguide.com/drugOweek.asp?show=dowDetail
+http://www.drughelp.org/intervention/partner.htm
+http://www.druglibrary.org/schaffer/DEBATE/open_letter2.htm
+http://www.druglibrary.org/schaffer/History/kalant.htm
+http://www.druglibrary.org/schaffer/LIBRARY/studies/vlr/vlr8.htm
+http://www.druglibrary.org/schaffer/MISC/Selectivity.html
+http://www.druglibrary.org/schaffer/Misc/driving/s5p5.htm
+http://www.druglibrary.org/schaffer/library/studies/vlr/vlr8.htm
+http://www.drugpolicy.org/
+http://www.drugs.com/PDR/Inderal_LA_Long_Acting_Capsules.html
+http://www.drugs.com/avastin.html
+http://www.drugs.com/data/channel/md/usatoday.cfm?file=nd1935G.htm&ID=1935&type=GI
+http://www.drugs.com/diovan.html
+http://www.drugs.com/medicine/actifed+cold
+http://www.drugs.com/medicine/collagenase
+http://www.drugs.com/morphine.html
+http://www.drugs.com/zyprexa.html
+http://www.drugs.health.gov.au/families/drugs.htm
+http://www.drugscope.org.uk/druginfo/drugsearch/ds_report_results.asp?file=%5Cwip%5C11%5C3%5C004chapter2.html
+http://www.drugscope.org.uk/news_item.asp?a=3&intID=840
+http://www.drugwar.com/byrnedole.shtm
+http://www.druidsofparanor.org/library/gbosch/lesson
+http://www.drunkdrivingdefense.com/publications-articles/intoxilyzer-5000-features.htm
+http://www.drunkenfist.com/oldNews.shtm
+http://www.drvino.net/retailers.php
+http://www.drweil.com/u/QA/QA41143/
+http://www.drwhoguide.com/gallifrey04.htm
+http://www.drwhoguide.com/kennedy.htm
+http://www.drwhoguide.com/sj_05.htm
+http://www.drwnet.com/bfly/colors.htm
+http://www.drwnet.com/bfly/share3.htm
+http://www.drwnet.com/bfly/stories.htm
+http://www.dryburgh.co.uk/cgi-bin/listboard2.pl?thisboard=dryburgh&template=dryburgh
+http://www.dryjapat.com/look.htm
+http://www.ds-invest.co.il/ds-e/pages-t/skira-q499.html
+http://www.dsa.gov.uk/Category.asp?cat=266
+http://www.dsa.org/selling/pyramid.htm
+http://www.dsavoy.com/text/lady_in_red.htm
+http://www.dscr.dla.mil/
+http://www.dscs.state.la.us/progasst/csrules/Chapter5/CHAP5.HTM
+http://www.dsei.co.uk/guidelines/prohibited_weapons.htm
+http://www.dself.dsl.pipex.com/MUSEUM/COMMS/pneumess/pneumess.htm
+http://www.dsfy.com/Japanese_symbol.htm
+http://www.dsl.org/cookbook/cookbook_16.html
+http://www.dslprime.com/Providers/providers.html
+http://www.dslreports.com/forum/remark,11522421~mode=journal~start=60
+http://www.dslreports.com/forum/remark,12496937~mode=flat~start=80
+http://www.dslreports.com/forum/remark,8726649~mode=flat
+http://www.dsm5.org/whitepapers.cfm
+http://www.dspglobal.com/
+http://www.dsrotenstein.com/html/pottery.htm
+http://www.dss.state.va.us/printer/facility/licensed_cr_facts.html
+http://www.dstl.gov.uk/pr/press/pr2003/15-10-03.htm
+http://www.dsu.ca/ourservices.asp?cmPageID=202
+http://www.dsu.org.uk/campaigns/sip/index.php
+http://www.dsu.org.uk/enviro/index.php
+http://www.dsusa.org/ChallMagarchive/Winter04/challmag-winter04-MilitaryRepAthens.html
+http://www.dsvr.co.uk/Services/email/trustedmail.html
+http://www.dtae.org/public/results2/lingo.html
+http://www.dtechgroup.com/dteamwp.htm
+http://www.dtheatre.com/read.php?sid=3224
+http://www.dti.gov.uk/about/procurement/procue5-5.htm
+http://www.dti.gov.uk/ccp/topics1/guide/distsell.htm
+http://www.dti.gov.uk/ccp/topics1/guide/homeshop.htm
+http://www.dti.gov.uk/ccp/topics1/safety.htm
+http://www.dti.gov.uk/energy/domestic_markets/security_of_supply/index.shtml
+http://www.dti.gov.uk/energy/nuclear/fsu/cnci.shtml
+http://www.dti.gov.uk/er/equality/
+http://www.dti.gov.uk/er/er_act_2004.htm
+http://www.dti.gov.uk/er/erbill_2003.htm
+http://www.dti.gov.uk/er/fixed/fixed-pl512b.htm
+http://www.dti.gov.uk/er/nmw/nmwres00.htm
+http://www.dti.gov.uk/er/work_time_regs/exsectors.htm
+http://www.dti.gov.uk/er/work_time_regs/wtr3.htm
+http://www.dti.gov.uk/ewt/nafrica.htm
+http://www.dti.gov.uk/export.control/notices/2000/notice113.htm
+http://www.dti.gov.uk/industries/broadcasting/standards.html
+http://www.dti.gov.uk/industries/broadcasting/technology.html
+http://www.dti.gov.uk/ministers/archived/hewitt130900.html
+http://www.dti.gov.uk/ministers/archived/sainsbury041099.html
+http://www.dti.gov.uk/ministers/archived/sainsbury060901.html
+http://www.dti.gov.uk/ministers/archived/sainsbury061200.html
+http://www.dti.gov.uk/ministers/archived/sainsbury070901.html
+http://www.dti.gov.uk/ministers/archived/sainsbury070998.html
+http://www.dti.gov.uk/ministers/archived/sainsbury170402.html
+http://www.dti.gov.uk/ministers/archived/sainsbury180101.html
+http://www.dti.gov.uk/ministers/archived/sainsbury240602.html
+http://www.dti.gov.uk/ministers/archived/sainsbury260602.html
+http://www.dti.gov.uk/ministers/speeches/Sainsbury260702.html
+http://www.dti.gov.uk/ost/ostbusiness/puset/report.htm
+http://www.dti.gov.uk/renewable/faqs.html
+http://www.dti.nus.edu.sg/industry/coursesseminars_ismdt.htm
+http://www.dtic.mil/domesticviolence/article082901.htm
+http://www.dtic.mil/domesticviolence/meetings02.htm
+http://www.dtic.mil/dpmo/sovietunion/korean_working.htm
+http://www.dtic.mil/jcs/chairman/fox_news_sunday_23mar2003.htm
+http://www.dtic.mil/ndp/ndpbios.htm
+http://www.dtint.com/pswp/dtint/pagespeed/url/Home/story/2850/
+http://www.dtl.org/dtl/article/c-g-p.htm
+http://www.dtl.org/versions/e-mails/obsessed/part-1.htm
+http://www.dtmag.com/divegeo/florida-keys.html
+http://www.dtr.isy.liu.se/en/location
+http://www.dtsonline.com/pro-audio/products.php?ID=1002434300
+http://www.dtvprofessional.com/
+http://www.du.edu/bdld/supintro.htm
+http://www.du.edu/~agrieu/northernireland.htm
+http://www.du.edu/~jcalvert/math/calculus.htm
+http://www.du.edu/~jcalvert/waves/wavefun.htm
+http://www.duallens.com/index.asp?reviewId=12802
+http://www.duallens.com/index.asp?reviewId=22803
+http://www.duang-prateep.de/news/news2002/aktuelles_april2002.htm
+http://www.duas.org/alaviya/dua-154.htm
+http://www.duas.org/imp_of_hajj.htm
+http://www.dubaiworldcup.com/media/press_show.asp?news_id=81
+http://www.dublex-inc.com/blank.php?dir=/About/Content/Test/
+http://www.dublin.ie/forums/showthread.php?goto=lastpost&t=879
+http://www.dublin.ie/getFile.asp?FC_ID=27&docID=129
+http://www.dublinpass.com/dublinpass/detail/default.asp?ID=83
+http://www.duby.com/
+http://www.duc.org/900ssduc_owner.htm
+http://www.duei.de/doi/en/content/research/centralasia_caucasus/geiss_project.html
+http://www.duelzone.net/forums/viewtopic.php?t=1991
+http://www.duesberg.com/articles/iypoppers.html
+http://www.duferco.com/annual/message.html
+http://www.duhaime.org/contract/ca-con2.aspx
+http://www.duindoorn.nl
+http://www.duke-energy.com/company/ehs/news/021029cwrp.asp
+http://www.duke-energy.com/news/mediainfo/viewpoint/2003/030412MW.asp
+http://www.duke.edu/ugm/proposal-submission.html
+http://www.duke.edu/web/DRAGO/humor/mud.html
+http://www.duke.edu/web/brown/
+http://www.duke.edu/web/iaudit/SELF%20ASSESSMENT%20SURVEY.htm
+http://www.duke.edu/web/investment/information.html
+http://www.duke.edu/web/tiss/programs/conferences/Media/Program.html
+http://www.duke.edu/~charvey/Classes/glossary/g_d.htm
+http://www.duke.edu/~mshumate/original.html
+http://www.dukefcu.duke.edu/site/about_calendar.html
+http://www.dukehealth.org/ServicesAndLocations/Services/Surgical/WeightLoss
+http://www.dukehealth.org/articles/20040714143649558
+http://www.dukemagazine.duke.edu/dukemag/issues/091002/mall1.html
+http://www.dukemagazine.duke.edu/dukemag/issues/111202/brink1.html
+http://www.dukemednews.org/news/article.php?id=184
+http://www.dukenews.duke.edu/2000/02/south218.html
+http://www.dukenews.duke.edu/2003/03/grieco0303_print.htm
+http://www.dukenews.duke.edu/news/mandela_1203.html
+http://www.duluthsuperior.com/mld/duluthsuperior/news/world/10703497.htm
+http://www.dulwichcommunityhospital.nhs.uk/index.php?PID=0000000195
+http://www.dumbcriminalacts.com/criminals.php?p=1&site=criminals&cid=4
+http://www.dummies.com/WileyCDA/DummiesArticle/id-1480.html
+http://www.dummies.com/WileyCDA/DummiesArticle/id-1481.html
+http://www.dummies.com/WileyCDA/DummiesArticle/id-1702.html
+http://www.dummies.com/WileyCDA/DummiesArticle/id-1826.html
+http://www.dummies.com/WileyCDA/DummiesArticle/id-2582,subcat-PERSONAL.html
+http://www.dummies.com/WileyCDA/DummiesArticle/id-2679.html
+http://www.dummies.com/WileyCDA/DummiesTitle/productCd-0764554468,page-tableOfContents.html
+http://www.dumpblair.co.uk/btactical.html
+http://www.dumpinggoods.com/dumpinggoods/go.asp?ic=1185482
+http://www.duncanmcneil.com/News/Committee_News/CN_137.htm
+http://www.duncanwil.co.uk/gcsemonte.html
+http://www.dundee.ac.uk/admissions/visit.htm
+http://www.dundee.ac.uk/disabilityservices/access/description.html
+http://www.dundee.ac.uk/english/linksliterary.htm
+http://www.dundee.ac.uk/english/wics/gmh/gmh8.htm
+http://www.dundee.ac.uk/learning/qau/taught/prog/progrev_policy.htm
+http://www.dundee.ac.uk/learning/wasc/outreach/outreach_officer.htm
+http://www.dundee.ac.uk/pressreleases/prdec04/mastersexpo.html
+http://www.dundee.ac.uk/prospectus/graduate/profiles/design.htm
+http://www.dundee.ac.uk/prospectus/undergrad/courses/cestudies.htm
+http://www.dundee.ac.uk/safety/Policy/05-2005.htm
+http://www.dundee.com/
+http://www.dundeecity.gov.uk/registrars/appmarven.htm
+http://www.dundrumfestival.com/
+http://www.dunedinmethodist.org.nz/meth/heresy.html
+http://www.dunedinmethodist.org.nz/mind/ff2.htm
+http://www.dunedinmethodist.org.nz/mind/hlow.htm
+http://www.dunhamssports.com/family/index.jsp?categoryId=863232&cp=710956
+http://www.dunoon-observer.co.uk/archive/arcaug20008.html
+http://www.dunveganprimary.co.za/Past%20Pupils.htm
+http://www.dunway.com/petersun/html/recession.html
+http://www.dunway.com/wealth/html/recession.html
+http://www.dunxd.com/articles.php?show=37
+http://www.dupont.com/safetyglass/lgn/stories/2802.html
+http://www.duport.co.uk/
+http://www.dur.ac.uk/faculty.handbook/module_description.php?module_code=BIOL3351
+http://www.dur.ac.uk/geolsci.www/undergraduates/safety/undergrad_safety.htm
+http://www.dur.ac.uk/student.support/current/managingyourmoney.htm
+http://www.durable-goods.com/article-rsm.html
+http://www.durable-goods.com/blog/
+http://www.duras.blogspot.com/
+http://www.durban.gov.za/eThekwini/Municipality/real_estate/faq
+http://www.durban.gov.za/eThekwini/Services/parks/dbn_botanic_gardens/contact_details
+http://www.durham-business.com/
+http://www.durham.gov.uk/durhamcc/usp.nsf/pws/Local+Transport+Plan+-+Annual+Progress+Report+-+Progress+in+2002-2003
+http://www.durham.gov.uk/durhamcc/usp.nsf/pws/Walking+and+Cycling+-+Walking+Strategy
+http://www.durhamcentral.com/health/article1.htm
+http://www.dusanov-zakonik.co.yu/1-40e.htm
+http://www.dustandashes.com/freebooks/lighttruth1/Chapter56.htm
+http://www.dutchlandinc.com/products2.htm
+http://www.duxcw.com/forum/_forum/jan2000.htm
+http://www.dva.gov.au/adf/dlp/aboutdlp.htm
+http://www.dvcentral.org/input.html
+http://www.dvd.net.au/review.cgi?review_id=1603
+http://www.dvd.net.au/review.cgi?review_id=3684
+http://www.dvd.net.au/review.cgi?review_id=660
+http://www.dvdanswers.com/index.php?r=0&s=2&c=1070
+http://www.dvdbeaver.com/film/DVDCompare2/kingofmasks.htm
+http://www.dvdbeaver.com/film/DVDCompare6/happytogether.htm
+http://www.dvddebate.com/modules.php?name=Forums&file=viewtopic&t=170&start=15
+http://www.dvdinformation.com/news/press/043002.htm
+http://www.dvdjournal.com/quickreviews/a/allmonstersattack.q.shtml
+http://www.dvdjournal.com/quickreviews/s/st-tng.season03.q.shtml
+http://www.dvdork.com/publish/printer_rbk_fearcc.shtml
+http://www.dvdork.com/publish/rbk_fearcc.shtml
+http://www.dvdoverseas.com/sonycamera_keyfeature.htm
+http://www.dvdoverseas.com/sonytv_keyfeature.htm
+http://www.dvdtalk.com/charlesfleischerinterview.html
+http://www.dvdtalk.com/cinemagotham/archives/000203.html
+http://www.dvdtalk.com/dvdsavant/s766lying.html
+http://www.dvdtalk.com/forum/archive/index.php/t-164340.html
+http://www.dvdtalk.com/forum/archive/index.php/t-422906.html
+http://www.dvdtalk.com/forum/showthread.php?goto=lastpost&t=387538
+http://www.dvdtalk.com/forum/showthread.php?t=342981&page=2
+http://www.dvdtalk.com/forum/showthread.php?t=387538
+http://www.dvdtalk.com/forum/showthread.php?t=407474&page=3
+http://www.dvdtalk.com/gangtapesinterview.html
+http://www.dvdtalk.com/grooveinterview.html
+http://www.dvdtalk.com/reviews/read.php?ID=10829
+http://www.dvdtalk.com/reviews/read.php?ID=12205
+http://www.dvdtalk.com/reviews/read.php?ID=12934
+http://www.dvdtalk.com/reviews/read.php?ID=13219
+http://www.dvdtalk.com/reviews/read.php?ID=14278
+http://www.dvdtalk.com/reviews/read.php?ID=15084
+http://www.dvdtalk.com/reviews/read.php?ID=15123
+http://www.dvdtalk.com/reviews/read.php?ID=15226
+http://www.dvdtalk.com/reviews/read.php?ID=15875
+http://www.dvdtalk.com/reviews/read.php?ID=9638
+http://www.dvdtimes.co.uk/content.php?contentid=248
+http://www.dvdtimes.co.uk/content.php?contentid=3717
+http://www.dvdtimes.co.uk/content.php?contentid=4916
+http://www.dvdtimes.co.uk/content.php?contentid=5266
+http://www.dvdtown.com/review/starwarstrilogywidescreen/11796/2329/
+http://www.dvdtown.com/review/troywidescreen/12965/2573/
+http://www.dvdverdict.com/reviews/angelseason1.php
+http://www.dvdverdict.com/reviews/defiantones.php
+http://www.dvdverdict.com/reviews/girlsgirlsfemales.php
+http://www.dvdverdict.com/reviews/lotrrotk.php
+http://www.dvdverdict.com/reviews/soundofmusic.php
+http://www.dvdverdict.com/reviews/startrektngseasonsix.php
+http://www.dvdverdict.com/reviews/windandlion.php
+http://www.dvg.org/aboutgp/art_char_plan/info-url_nocat-2.htm
+http://www.dvhardware.net/article2528.html
+http://www.dvhsmovieguide.com/dvd_detail2.php?free=c
+http://www.dvinfo.net/articles/business/copyrightfaq3.php
+http://www.dvirc.org.au/publications/friendsfamily.htm
+http://www.dvjc.org/beytmidrash/Spring%202005.htm
+http://www.dvla.gov.uk/drivers/applydl.htm
+http://www.dvla.gov.uk/drivers/medical/minutes_2004/meeting_minutes_24_mar_04.htm
+http://www.dvla.gov.uk/drivers/medical/reports_2003/vision_annrep_2003.htm
+http://www.dvmen.org/dv-26.htm
+http://www.dvmnewsmagazine.com/dvm/article/articleDetail.jsp?id=31506
+http://www.dvorak.org/blog/
+http://www.dvorkin.com/essays/unemben.htm
+http://www.dvrepublic.com/link/women.html
+http://www.dvshop.ca/dvcafe/acting/actorbooks.htm
+http://www.dvshop.ca/dvcafe/canada/actorbooks.html
+http://www.dvshop.ca/dvcafe/writing/screenbooks.htm
+http://www.dw-world.de/dw/article/0,1564,1414195,00.html
+http://www.dw-world.de/dw/article/0,1564,1415042,00.html
+http://www.dw-world.de/dw/article/0,1564,1463273,00.html
+http://www.dw-world.de/dw/article/0,1564,1467115,00.html
+http://www.dw-world.de/dw/article/0,1564,1471751,00.html
+http://www.dw-world.de/dw/article/0,1564,1493894,00.html
+http://www.dw-world.de/dw/article/0,1564,1504503,00.html
+http://www.dw-world.de/english/0,3367,1432_A_1236383_1_A,00.html
+http://www.dwcdesignet.com/DWC/2004/mar/indpro.html
+http://www.dwcdesignet.com/DWC/Oct'00/designp.html
+http://www.dwcdesignet.com/DWC/oct03/spotlight.html
+http://www.dwcorp.net/education.htm
+http://www.dwd.state.wi.us/dws/tanf/stanfamn.htm
+http://www.dwd.state.wi.us/er/discrimination_civil_rights/publication_erd_7899_pweb.htm
+http://www.dwd.state.wi.us/ui/Whatsnew/Current.htm
+http://www.dwd.state.wi.us/ui/whatsnew/erupdates/2003qtr1.htm
+http://www.dwd.state.wi.us/ui/whatsnew/erupdates/2003qtr4.htm
+http://www.dwd.state.wi.us/ui/whatsnew/erupdates/2004qtr3.htm
+http://www.dwheeler.com/oss_fs_why.html
+http://www.dwi.gov.uk/pubs/bouchier/bou005.htm
+http://www.dwi.gov.uk/pubs/private/
+http://www.dwp.gov.uk/asd/asd5/134summ.asp
+http://www.dwp.gov.uk/lifeevent/penret/penreform/
+http://www.dwp.gov.uk/lifeevent/penret/penreform/3_fas.asp
+http://www.dwp.gov.uk/lifeevent/penret/penreform/fas_list.asp
+http://www.dws.us/weblog/
+http://www.dxarts.washington.edu/coupe/reading.html
+http://www.dyadic-group.com/wt/redirect_new/pr_1092677279
+http://www.dyenamicmovement.com/Airwalkerguide.html
+http://www.dyenamicmovement.com/ElastaBlastguide.html
+http://www.dyenamicmovement.com/therapistpage.html
+http://www.dyestat.com/3us/4xc/NTN/meet/northwest-julian.htm
+http://www.dynamic-apps.com/tutorials/classpath.jsp
+http://www.dynamic-med.com/content/4/1/3
+http://www.dynamicflight.com/avcfibook/methods/
+http://www.dynamicforces.com/htmlfiles/topcowpress011705.html
+http://www.dynamist.com/weblog/
+http://www.dyrevernalliansen.org/english.php
+http://www.dyske.com/default.asp?view_id=707
+http://www.dyske.com/default.asp?view_id=814
+http://www.dyske.com/design/paper.asp?id=707
+http://www.dyske.com/index.php?view_id=435
+http://www.dyske.com/index.php?view_id=738
+http://www.dyske.com/index.php?view_id=762
+http://www.dyske.com/index.php?view_id=811
+http://www.dyslexia-teacher.com/t114.html
+http://www.dyslexia.com/library/getready.htm
+http://www.dyslexiatalk.com/messages/5/3675.shtml?1097223149
+http://www.dyslexiawales.com/course.htm
+http://www.dystopical.com/W2/week.041002.html
+http://www.dzfx.com/workshops/list/2/Microsoft_Word-Office-XP/
+http://www.e-a-a.org/codef.htm
+http://www.e-bug.net/forum/messages/14482.shtml
+http://www.e-bug.net/forum/messages/15087.shtml
+http://www.e-bug.net/forum/messages/15413.shtml
+http://www.e-bug.net/forum/messages/15414.shtml
+http://www.e-businessguide.gov.au/building/e-commerce
+http://www.e-c-h-o.org/Conf2004intro.htm
+http://www.e-celtic.co.uk/aaods/history.htm
+http://www.e-comprofits.com/offlinepromo.html
+http://www.e-consultancy.com/newsfeatures/360276/uk-high-street-retailers-lack-coherent-leading-e-commerce-provider-screen-pages-publishes-detailed-study-and-benchmarks-of-the-performance-of-major-retailers-in-the-search-engines.html
+http://www.e-driveonline.com/edrive_newsletter_3-03.htm
+http://www.e-guiden.no/cparticle52270-4833a.html
+http://www.e-gun.com/Guns/Safety_and_Safety_Products/Gun_Safe/
+http://www.e-hresources.com/laws.html
+http://www.e-insuranceireland.com/pensions/news.asp
+http://www.e-learningcentre.co.uk/eclipse/showcase/profdev.htm
+http://www.e-learningguru.com/articles/art1_4.htm
+http://www.e-linkschools.org/japanese/school_j/seeking.htm
+http://www.e-mago.co.il/e-magazine/bestsystem.html
+http://www.e-mds.com/emds/prodserv/bill.html
+http://www.e-n.org.uk/1998-05/562-Mad-for-it-in-Manchester.htm
+http://www.e-normous.biz/benchpresstips.asp
+http://www.e-quies.com/funsms/funny.html
+http://www.e-ratecentral.com/archive/News/News2005/weekly_news_20050307.asp
+http://www.e-sthetics.com/BACKGROUND/BASICS/EMOTIONS/anxietysurgery.html
+http://www.e-strategy.ubc.ca/news/update0503/0503-careers.html
+http://www.e-thepeople.org/about/fullstory/Tips
+http://www.e-tote.com/rfu/rules.php
+http://www.e-tutor.com/eNews/issue0205/
+http://www.e.bell.ca/filmfest/2004/livefromthefestival/dailynews.asp?id=26
+http://www.e2open.com/news/article.html?1348
+http://www.eaa-knowledge.com/ojni/ni/8_1/kokol.htm
+http://www.eaa.org/chapters/resources/reference/Reference%20Papers,%20Alert%20the%20Media!%20How%20to%20publicize%20Chapter%20events.html
+http://www.eaa.org/communications/eaanews/pr/020510_distancelearning.html
+http://www.eab.gov.bc.ca/health/96-06.htm
+http://www.eab.gov.bc.ca/pest/96-02(a).htm
+http://www.eab.gov.bc.ca/pest/pestsm93.htm
+http://www.eab.gov.bc.ca/waste/99was23a.htm
+http://www.eaba.co.uk/articles/tomCleary/chapter11.html
+http://www.eaba.co.uk/articles/tomCleary/chapter12.html
+http://www.eaca.com/.docs/pg/11360
+http://www.each1reach1.org/young/plays/indiv/lifeis.html
+http://www.eaesp.org/activities/own/grants.htm
+http://www.eagames.com/official/moh/alliedassault/us/usershowcase/clan_showcase_01.jsp
+http://www.eagle.ca/~matink/holidays.html
+http://www.eagle.org/news/speeches/apr11-2005.html
+http://www.eaglerockschool.org/ER33CourseDescriptions.htm
+http://www.eagletribune.com/news/stories/20041102/LI_001.htm
+http://www.eaipatterns.com/ramblings/26_symmetry.html
+http://www.eajc.org/publish_print_e.php?rowid=13
+http://www.ealinglibdems.org.uk/
+http://www.ean.ie/health.shtml?sid=3&ssid=53
+http://www.eandpnet.com/ep/previous/0100/vision.htm
+http://www.eap.mcgill.ca/CPTFP_7.htm
+http://www.eapglass.com/RiversideSociety/ApplicationPage.htm
+http://www.eapn.ie/events/114
+http://www.eappi.org/eappi.nsf/index/rep-bs-05011721.html
+http://www.eappi.org/eappi.nsf/index/rep-bt-05031802.html
+http://www.eappi.org/eappi.nsf/index/rep-bt-05032907.html
+http://www.eappi.org/eappi.nsf/index/rep-tm-08.html
+http://www.eaprotection.com/eguipment/DVR.htm
+http://www.earcmn.org/html/eng/education/china.html
+http://www.earlham.edu/~guvenfe/philosophyofsocialscifall2004.html
+http://www.earlham.edu/~peters/fos/fosblog.html
+http://www.earlibrary.org/nclive.htm
+http://www.early2bed.com/pages/calendar.html
+http://www.earlybritishkingdoms.com/adversaries/bios/penda.html
+http://www.earlychildhood.com/Articles/index.cfm?FuseAction=Article&A=11&PrintVersion=46
+http://www.earlychildhood.com/community/ask/ask_current.asp?ExpertID=138&QuesId=166
+http://www.earlychildhood.com/community/ask/ask_current.asp?ExpertID=287&QuesId=86
+http://www.earlychristianwritings.com/passion.html
+http://www.earlyflute.com/pages/flutehistory.htm
+http://www.earlygirl.com/schooldaze.shtml
+http://www.earlylearning.ubc.ca/people.htm
+http://www.earlymodernweb.org.uk/emn/
+http://www.earlymodernweb.org.uk/waleslaw/sacheverell.htm
+http://www.earlystageeast.org/success.asp
+http://www.earlytexashistory.com/Tx1836/dispatch9.htm
+http://www.earsurgery.org/meniere.html
+http://www.earsurgery.org/serous.html
+http://www.earth-history.com/Judaism/Philo/philo12.htm
+http://www.earth-pages.com/journals.asp
+http://www.earth-policy.org/Books/Out/Ote2_3adapt.htm
+http://www.earth-policy.org/Updates/Update42.htm
+http://www.earth2tv.com/information/secondseason.html
+http://www.earth360.com/ed-criticallinking.html
+http://www.earth911.org/master.asp?s=e911&a=partners/update/display.asp&b=2004/September
+http://www.earthalchemy.com/onanger.html
+http://www.earthaven.org/LifeTogether/CreatingaLifeTogether.html
+http://www.earthbaby.com/herbsforkids.html
+http://www.earthenergy.co.uk/eegrswel.html
+http://www.earthfromtheair.co.uk/guestbook/index.php?from=300&more=20&key=
+http://www.earthinstitute.columbia.edu/sop2002/sopnews.html
+http://www.earthjustice.org/news/display.html?ID=166&friend=1
+http://www.earthliberationfront.com/
+http://www.earthlydelights.com.au/history6.htm
+http://www.earthlypursuits.com/WarGarV/WarGard1.htm
+http://www.earthlypursuits.com/WarGarV/WarGard6.htm
+http://www.earthprint.com/
+http://www.earthsave.bc.ca/materials/articles/articles/enviro/why_does.html
+http://www.earthsave.bc.ca/materials/articles/enviro/why_does.html
+http://www.earthshare-oregon.org/Events.html
+http://www.earthshelters.com/passive_solar_design.html
+http://www.earthstation9.com/1876_phi.htm
+http://www.earthstation9.com/1904_stl.htm
+http://www.earthstation9.com/1907_jam.htm
+http://www.earthstation9.com/1933_chi.htm
+http://www.earthtym.net/bal-disaster.htm
+http://www.earthtym.net/ref-altitude.htm
+http://www.earthweshare.org/oped970501.html
+http://www.eas.ee/?id=2031
+http://www.easb.edu.sg/programme_year3_acct.htm
+http://www.east-harlem.com/mt/archives/000108.html
+http://www.east-harlem.com/mt/archives/cat_hall_of_fame.html
+http://www.east-tennessee-history.org/
+http://www.eastalabamacycling.org/
+http://www.eastandard.net/hm_news/news_is.php?articleid=22122
+http://www.eastandard.net/mags/executives/articles.php?articleid=22257
+http://www.eastandard.net/print/news.php?articleid=22122
+http://www.eastangelharbor.com/_wsn/page18.html
+http://www.eastasian.ucsb.edu/projects/fswlc/tlsd/research/Journal08/foreword8e.html
+http://www.eastbaycf.org/grantmaking/faq.html
+http://www.eastbayexpress.com/Issues/2005-06-22/news/cityofwarts.html
+http://www.eastbourne.gov.uk/Your_Home/Council_Tenants/your_environment.asp
+http://www.eastbrunswick.org/aroundtown/crystal_springs.asp
+http://www.eastern-europe-women.com/articles.html
+http://www.easterncougarnet.org/prairiestates.html
+http://www.easternct.edu/depts/edu/units/alphabet.html
+http://www.easternforensic.com/fair_settlement.htm
+http://www.easterngreenparty.org.uk/news-2001_03_25.html
+http://www.easterngreenparty.org.uk/news/2004-03-09.html
+http://www.easternmarket.net/pr/pr_063004.html
+http://www.easternprogress.com/news/2002/10/10/News/Assault.Suspect.Wanted.Campus.Sex.Offenses.Rise-293625.shtml
+http://www.easternprogress.com/news/2004/01/22/TheStudio/Cell-Phones.Hang.Them.Up-584857.shtml
+http://www.eastgate.com/HypertextNow/archives/Attention.html
+http://www.eastgwillimbury.ca/current/events.htm
+http://www.eastkingdom.org/combat/fighting/policies.html
+http://www.eastlondoncentre.co.uk/elc/training_opportunities.asp
+http://www.eastlothiancourier.com/news/archivestory.php/aid/1733/Injury_put_international_mountain_race_in_doubt.html
+http://www.eastman.ucl.ac.uk/~epa/conforg.html
+http://www.eastmeetswest.org/
+http://www.eastofenglandobservatory.org.uk/searchResponse.asp?categoryGEOID=902
+http://www.eastofthesun.com/pi6/santa.htm
+http://www.eastoftheweb.com/short-stories/UBooks/Cobw.shtml
+http://www.eastoftheweb.com/short-stories/UBooks/PieSte.shtml
+http://www.eastonbh.ac.nz/article308.html
+http://www.eastpointpolice.org/ws.htm
+http://www.eastrenfrewshire.gov.uk/pls/pestro/url/ITEM/D0F6CD4E158B8DBAE030928D43B1115F
+http://www.eastvalleytribune.com/index.php?sty=43522
+http://www.easy-forex.com/en/Forex.dollareuro.aspx
+http://www.easy-online-loans.co.uk/easy-personal-loans.html
+http://www.easy2.com/tutorials/diy0319/index.asp
+http://www.easy502nd.com/bylaws.htm
+http://www.easyaccesselectronics.com/Products.htm
+http://www.easyenglish.info/teachall/nt02-lbw.htm
+http://www.easygolf.co.uk/acatalog/Online_Catalogue_SALE_SECTION__20.html
+http://www.easyjob.net/faq.htm
+http://www.easypano.com/support/faq/support_faq.asp?rID=118
+http://www.easypooltutor.com/modules.php?name=FAQ&myfaq=yes&id_cat=12&categories=
+http://www.easyracers.com/racing.htm
+http://www.easystand.com/healthbenefits/general_benefits.html
+http://www.easystar.com/jbbnews.html
+http://www.easytraining.com/terms.htm
+http://www.easyweb.co.uk/articles/corporate_sales.html
+http://www.eatingwell.com/articles_recipes/nutrition/willett.html
+http://www.eatnpark.com/aboutus.asp
+http://www.eatright.org/Public/GovernmentAffairs/92_17504.cfm
+http://www.eatright.org/Public/GovernmentAffairs/92_8236.cfm
+http://www.eatsafe.gov.uk/about_us/
+http://www.eatwild.com/products/montana.html
+http://www.eatwild.com/products/multistate.html
+http://www.eatyourbest.com/promotions/
+http://www.eauk.org/contentmanager/content/iraq.cfm
+http://www.eauk.org/contentmanager/content/wales/gweini/english/
+http://www.eb2000.org/ITSR1.htm
+http://www.ebdir.net/olson/teamsternet3.html
+http://www.ebfonline.com/at_forum/at_forum.asp?id=255&linked=252
+http://www.ebgs.co.uk/album/sleeve/index.php
+http://www.ebi.ac.uk/interpro/DisplayIproEntry?ac=IPR007253
+http://www.ebird.org/content/news/LocManage.html
+http://www.ebird.org/content/tutorials/tutorialViewData.html
+http://www.ebonmusings.org/atheism/ruletheworld.html
+http://www.ebooked.co.uk/ebooks/wsonline.htm
+http://www.ebooks.com/
+http://www.ebookweb.org/opinion/roger.sperberg.20010715.aebpr.htm
+http://www.ebparks.org/employ/heavy_equip_oper.htm
+http://www.ebparks.org/parks/hayward.htm
+http://www.ebparks.org/parks/pleasrig.htm
+http://www.ebparks.org/parks/tilanza.htm
+http://www.ebparks.org/parks/tilden.htm
+http://www.ebra.org/regulat/germany.html
+http://www.ebrc.info/conference2004/pages_5CA77A67-AE33-429B-8904-FA33994E73C8.asp
+http://www.ebrd.com/country/sector/energyef/industry/main.htm
+http://www.ebrd.com/oppor/procure/opps/consult/050113b.htm
+http://www.ebrd.com/pubs/insti/basic/basic3.htm
+http://www.ebrd.com/pubs/insti/basic/basic5.htm
+http://www.ebri.org/
+http://www.ebsg.org/program/educational.htm
+http://www.ebsmba.com/new_dec.asp
+http://www.ebsqart.com/artMagazine/za_103.htm
+http://www.ebtx.com/theory/direvolv.htm
+http://www.ec-finance.com/site/about_us/press_releases/10-12-2000-Isabella_Capital.htm
+http://www.ec-online.net/Community/transcript61400.htm
+http://www.ec-online.net/Knowledge/Articles/reflections.html
+http://www.ec.gc.ca/climate/overview_science-e.html
+http://www.ec.gc.ca/ee-ue/incidents/iron_ore_company_e.asp
+http://www.ec.gc.ca/ee-ue/incidents/iron_ore_company_e.asp?print=1
+http://www.ec.gc.ca/ee-ue/pub/chocolate/chpt5_e.asp
+http://www.ec.gc.ca/marine/debris/eng/facts.htm
+http://www.ec.gc.ca/substances/ese/eng/psap/final/roadsalts.cfm
+http://www.ec.gc.ca/water/en/info/pubs/sss/e_sss31.htm
+http://www.ec.gc.ca/water/en/nature/lakes/e_levels.htm
+http://www.eca-watch.org/problems/eu_russ/germany/hermes_sitout.html
+http://www.ecaar.org/Iraq.htm
+http://www.ecampustours.com/campuslife/schoolstress.aspx
+http://www.ecampustours.com/payingcollege/financialaid/financialaidawardletter.aspx
+http://www.ecampustours.com/payingcollege/financialaid/financialaidawardletter.htm
+http://www.ecanews.org/minutes_durban.htm
+http://www.ecanews.org/minutes_krakow.htm
+http://www.ecarcenter.org/fl/fl-usedoil.htm
+http://www.ecav.sk/intl/english/state.htm
+http://www.ecb.int/home/glossary/html/glossn.en.html
+http://www.ecb.int/home/html/disclaimer.en.html
+http://www.ecb.int/press/key/date/1997/html/sp971017.en.html
+http://www.ecb.int/press/key/date/1999/html/sp990427.en.html
+http://www.ecb.int/press/key/date/2000/html/sp000320.en.html
+http://www.ecb.int/press/key/date/2000/html/sp001026_1.en.html
+http://www.ecb.int/press/key/date/2001/html/sp010518.en.html
+http://www.ecb.int/press/key/date/2001/html/sp010608.en.html
+http://www.ecb.int/press/key/date/2001/html/sp010830_5.en.html
+http://www.ecb.int/press/key/date/2001/html/sp011108.en.html
+http://www.ecb.int/press/key/date/2004/html/sp040513_1.en.html
+http://www.ecb.int/press/key/date/2005/html/sp050128.en.html
+http://www.ecb.int/press/pressconf/2002/html/is021205.en.html
+http://www.eccafe.org/sto/alevenson.html
+http://www.eccafe.org/sto/lcoleman.html
+http://www.ecchk.org/T01/tapestry-01Q1-e1.htm
+http://www.eccj.or.jp/ambassador/eng/34/04/4_3.html
+http://www.ecct.com.tw/euroview/issue85/euroview_article0.php
+http://www.ecd.govt.nz/publications/bibliographies/bibchdev.html
+http://www.ece.eps.hw.ac.uk/Research_degrees/guide.htm
+http://www.ece.mtu.edu/faculty/bamork/ee380/
+http://www.ece.uiuc.edu/ingenuity/399/design.html
+http://www.ece.utoronto.ca/undergrad/bahen/main.html
+http://www.ecf.utoronto.ca/apsc/registrar/C.O.S._2.htm
+http://www.ecf.utoronto.ca/~writing/bbieee-help.html
+http://www.ecgd.gov.uk/lrgtxt/index/ps_home/lcfs/lcfs_mi.htm
+http://www.ecgd.gov.uk/news_home.htm?id=6213
+http://www.echochamberproject.com/taxonomy/term/74
+http://www.echoditto.com/node/552
+http://www.echoedvoices.org/Aug2002/IGI_GI_Dream.html
+http://www.echoedvoices.org/Nov2001/NovGoddess.html
+http://www.echoinggreen.org/index.cfm?fuseaction=Page.viewPage&pageID=153
+http://www.eci.ox.ac.uk/biodiversity/bio_publications.html
+http://www.ecis.com/~alizard/technology.html
+http://www.eckerd.edu/aspec/swisspage/Scientific%20Papers.htm
+http://www.eclecticacademy.com/websitedev.htm
+http://www.eclipse.co.uk/mikey/colour2.html
+http://www.eclipse.co.uk/wodehouse/savage020702.htm
+http://www.eclipsechaser.com/eclink/image/widetech.htm
+http://www.eclipsetours.com/1193.html
+http://www.eclipseunleashed.com/tut/feet/feet.htm
+http://www.eclipseunleashed.com/tut/head/lips.htm
+http://www.ecloanpro.com/Content/InThePress/pressRelease20010531.html
+http://www.ecmagazine.net/fa04htm/scoopfa04.htm
+http://www.ecmagazine.net/sp03htm/energybuzzsp03.htm
+http://www.ecmi.de/rubrik/13/opening+celebration/
+http://www.ecmweb.com/mag/electric_code_qa_5/
+http://www.ecmweb.com/mag/electric_options_power_conditioning/
+http://www.ecn.purdue.edu/KDDCUP/
+http://www.ecnp.nl/Congresses/2005Amsterdam/Guidelines/basic_guidelines.html
+http://www.eco-action.org/efau/issues/1998/efau1998_01.html
+http://www.eco-justice.org/lexicon.asp
+http://www.eco-labels.org/home.cfm
+http://www.eco-labels.org/label.cfm?LabelID=272
+http://www.eco-labels.org/label.cfm?LabelID=272&mode=text
+http://www.eco-labels.org/program.cfm?LabelID=272
+http://www.eco-web.com/info/intro.html
+http://www.eco.freedom.org/el/20040802/caruba.shtml
+http://www.ecocycle.org/charm/index.cfm
+http://www.ecofuture.org/pk/pkar9506.html
+http://www.ecoglobe.org/nz/ge-news/rcgm1o30.htm
+http://www.ecohealth101.org/questions/eat.html
+http://www.ecohealth101.org/whats_left/eat7.html
+http://www.ecoindia.com/health7.htm
+http://www.ecok.edu/academics/schools/hss/soc/sociology_courses.asp
+http://www.ecolitgy.com/JLD/people.html
+http://www.ecologicalsystems.biz/windpage.html
+http://www.ecology.kyoto-u.ac.jp/biwako/teikan/
+http://www.ecologyandsociety.org/policies.php
+http://www.ecologyandsociety.org/vol2/iss2/art10/
+http://www.ecologyandsociety.org/vol2/iss2/art4/
+http://www.ecologyfund.com/ecology/info_canada.html
+http://www.ecom.jp/ecom_e/latest/newsletter_no16.htm
+http://www.ecom.unimelb.edu.au/iaesrwww/people/ascott/present.html
+http://www.ecom.unimelb.edu.au/iaesrwww/people/ascott/pub.html
+http://www.ecomhelp.com/KB/inspiration/kb_reaching-your-goals.htm
+http://www.ecomhelp.com/KB/internet/kb_internet-the-amazing-website-makeover.htm
+http://www.ecomhelp.com/KB/marketing/kb_direct-marketing.htm
+http://www.ecominfo.net/supplychaindata/arts/835_atms.htm
+http://www.ecommerce-digest.com/internet-marketing-solution.html
+http://www.ecommerce-guide.com/solutions/customer_relations/article.php/3428931
+http://www.ecommercetimes.com/
+http://www.ecommercetimes.com/perl/board/mboard.pl?board=ecttalkback&thread=2029&id=2174&display=1
+http://www.ecommercetimes.com/story/35383.html
+http://www.ecommercetimes.com/story/36507.html
+http://www.ecommercetimes.com/story/36601.html
+http://www.ecommercetimes.com/story/38826.html
+http://www.ecommercetimes.com/story/39005.html
+http://www.ecommercetimes.com/story/43423.html
+http://www.econ.cam.ac.uk/electricity/research/comparison/groups.htm
+http://www.econ.iastate.edu/classes/econ302/tesfatsion/ht3.htm
+http://www.econ.iastate.edu/classes/econ502/tesfatsion/502fef01.htm
+http://www.econ.iastate.edu/classes/econ502/tesfatsion/502fef99.htm
+http://www.econ.iastate.edu/classes/econ502/tesfatsion/ferevf02.htm
+http://www.econ.qmw.ac.uk/NHS_reforms.com/virtual_ha/health_authority.html
+http://www.econ.usyd.edu.au/drawingboard/digest/0206/mcauley.html
+http://www.econ.usyd.edu.au/drawingboard/digest/0301/sylvan.html
+http://www.econ.usyd.edu.au/drawingboard/digest/0312/wright.html
+http://www.econ.usyd.edu.au/wos/workinglives/register.html
+http://www.econ.vt.edu/research.php?2002
+http://www.econdash.net/econ101_all.html
+http://www.econdoms.co.uk/news.html
+http://www.econedlink.org/lessons/index.cfm?lesson=EM222
+http://www.econedlink.org/lessons/index.cfm?lesson=EM252&page=teacher
+http://www.econedlink.org/lessons/index.cfm?lesson=EM522&page=teacher
+http://www.econlib.org/library/Buchanan/buchCv5c6.html
+http://www.econlib.org/library/Columns/Teachers/riskuncertainty.html
+http://www.econlib.org/library/Enc/Antitrust.html
+http://www.econlib.org/library/Enc/Apartheid.html
+http://www.econlib.org/library/Enc/BankRuns.html
+http://www.econlib.org/library/Enc/FederalReserveSystem.html
+http://www.econlib.org/library/Enc/ForeignInvestmentintheUnitedStates.html
+http://www.econlib.org/library/Enc/GermanEconomicMiracle.html
+http://www.econlib.org/library/Enc/NaturalResources.html
+http://www.econlib.org/library/Enc/ProgramTrading.html
+http://www.econlib.org/library/Enc/SupplySideEconomics.html
+http://www.econmethodology.org/inem/inemconstitution.html
+http://www.econogrind.com/es.html
+http://www.econogrind.com/esc.html
+http://www.econogrind.com/esp.html
+http://www.economagic.com/cenc25.htm
+http://www.economagic.com/em-cgi/data.exe/blscu/CUUR0000SEED03
+http://www.economagic.com/em-cgi/data.exe/blscu/CUUR0000SEHJ03
+http://www.economagic.com/em-cgi/data.exe/blscu/CUUR0000SS0501A
+http://www.economic-examiner.com/Europe_20020107.asp
+http://www.economica.ca/ew13p1.htm
+http://www.economica.ca/ew91p2.htm
+http://www.economicjustice.org/resources/media/wsj-indonesia.html
+http://www.economicprincipals.com/issues/03.05.18.html
+http://www.economicprincipals.com/issues/04.02.22.html
+http://www.economicprincipals.com/issues/04.05.16.html
+http://www.economicsuk.com/blog/000015.html
+http://www.economicsuk.com/original/freelunchsample.html
+http://www.economicswebinstitute.org/glossary/interest.htm
+http://www.economicswebinstitute.org/glossary/socialgroups.htm
+http://www.economicswithaface.com/weblog/archives/2004/10/
+http://www.economist.com.na/2002/1mar/1mar.htm
+http://www.economist.com/PrinterFriendly.cfm?Story_ID=1213392
+http://www.economist.com/PrinterFriendly.cfm?Story_ID=3503700
+http://www.economist.com/PrinterFriendly.cfm?Story_ID=434168
+http://www.economist.com/World/europe/displayStory.cfm?story_id=2250706
+http://www.economist.com/World/europe/displayStory.cfm?story_id=4033465
+http://www.economist.com/World/na/displayStory.cfm?story_id=3503700
+http://www.economist.com/agenda/displayStory.cfm?story_id=3146724
+http://www.economist.com/business/displayStory.cfm?story_id=2054746
+http://www.economist.com/business/displaystory.cfm?story_id=2787854
+http://www.economist.com/business/displaystory.cfm?story_id=4032842
+http://www.economist.com/countries/denmark/profile.cfm?folder=Profile-Economic%20Structure
+http://www.economist.com/countries/southafrica/
+http://www.economist.com/displayStory.cfm?Story_ID=3503700
+http://www.economist.com/displayStory.cfm?Story_id=3422957
+http://www.economist.com/displayStory.cfm?Story_id=457311
+http://www.economist.com/displaystory.cfm?story_id=1213392
+http://www.economist.com/displaystory.cfm?story_id=2071855
+http://www.economist.com/displaystory.cfm?story_id=3909517
+http://www.economist.com/diversions/millennium/PrinterFriendly.cfm?Story_ID=347033
+http://www.economist.com/diversions/millennium/displayStory.cfm?Story_ID=346726
+http://www.economist.com/diversions/millennium/displayStory.cfm?Story_ID=346780
+http://www.economist.com/diversions/millennium/displayStory.cfm?Story_ID=347033
+http://www.economist.com/encyclopedia/Dictionary.cfm?Char=L
+http://www.economist.com/finance/displayStory.cfm?story_id=1748607
+http://www.economist.com/finance/displayStory.cfm?story_id=4010945
+http://www.economist.com/opinion/displayStory.cfm?story_id=2350115
+http://www.economist.com/opinion/displayStory.cfm?story_id=2745515
+http://www.economist.com/printedition/displayStory.cfm?Story_ID=771542
+http://www.economist.com/research/Economics/alphabetic.cfm?LETTER=M
+http://www.economist.com/research/Economics/alphabetic.cfm?LETTER=P
+http://www.economist.com/research/Economics/alphabetic.cfm?TERM=EXPENDITURE%20TAX
+http://www.economist.com/research/Economics/alphabetic.cfm?TERM=INFERIOR%20GOODS
+http://www.economist.com/research/Economics/alphabetic.cfm?TERM=LIBOR
+http://www.economist.com/research/Economics/alphabetic.cfm?TERM=OECD
+http://www.economist.com/research/Economics/alphabetic.cfm?TERM=REAL%20TERMS
+http://www.economist.com/research/Economics/alphabetic.cfm?TERM=RENT
+http://www.economist.com/research/Economics/alphabetic.cfm?TERM=RESIDUAL%20RISK
+http://www.economist.com/research/Economics/alphabetic.cfm?TERM=RISKS
+http://www.economist.com/research/Economics/alphabetic.cfm?TERM=SECURITIES
+http://www.economist.com/research/Economics/alphabetic.cfm?TERM=SUPPLY
+http://www.economist.com/science/displayStory.cfm?story_id=2281888
+http://www.economist.com/science/displaystory.cfm?story_id=2121720
+http://www.economist.com/science/tq/displayStory.cfm?Story_id=3422957
+http://www.economist.com/science/tq/displayStory.cfm?Story_id=3423074
+http://www.economist.com/science/tq/displayStory.cfm?story_id=1841108
+http://www.economist.com/science/tq/displayStory.cfm?story_id=2724420
+http://www.economist.com/surveys/PrinterFriendly.cfm?Story_ID=145631
+http://www.economist.com/surveys/PrinterFriendly.cfm?Story_ID=326221
+http://www.economist.com/surveys/displayStory.cfm?Story_id=1188787
+http://www.economist.com/surveys/displayStory.cfm?Story_id=176637
+http://www.economist.com/surveys/displayStory.cfm?Story_id=326221
+http://www.economist.com/surveys/displayStory.cfm?Story_id=335039
+http://www.economist.com/surveys/displayStory.cfm?Story_id=596927
+http://www.economist.com/surveys/displaystory.cfm?story_id=3785166
+http://www.economist.com/world/europe/displayStory.cfm?story_id=4033465
+http://www.economist.com/world/na/displayStory.cfm?story_id=1270755
+http://www.economist.com/world/na/displayStory.cfm?story_id=2501977
+http://www.economistconferences.com/roundtable/public/con_common.asp?rtID=777&area=2&preview=&rtRegion=2&fprevrt=
+http://www.economy.ws/
+http://www.econphd.net/overview.htm
+http://www.econres.com/documents/Smart_Growth.html
+http://www.ecop.ucl.ac.be/aebiom/biomassnews/News8/Biomass8_6.htm
+http://www.ecoplan.org/children/general/walkingbus.htm
+http://www.ecorecycle.vic.gov.au/www/newsletter_article.asp?id=1172
+http://www.ecos.com/NEWSITE/pages/aboutsub/profile.html
+http://www.ecoschools.com/SFGSA/Publicity/SFGSA_2004Conf_workshops.html
+http://www.ecostudies.org/syefest/ap1res17.htm
+http://www.ecosystem.org/OG/science_letter.html
+http://www.ecotourism.org.au/neap.asp
+http://www.ecotrans.org/acta_en.htm
+http://www.ecouncil.ac.cr/rio/national/reports/europe/hungary.htm
+http://www.ecowaste.com/swanabc/
+http://www.ecoworld.org/Articles/Estok_part2_ew.htm
+http://www.ecoworld.org/Articles/HayesRAN.cfm
+http://www.ecoworld.org/Home/Articles2.cfm?TID=328
+http://www.ecp.fr/en/B_formations/B4_masteres/B4b_mastere_detail.htm?formation_id=3
+http://www.ecpp.co.uk/core_individuals.htm
+http://www.ecs.org/clearinghouse/11/87/1187.htm
+http://www.ecs.org/clearinghouse/16/53/1653.htm
+http://www.ecs.soton.ac.uk/~harnad/Hypermail/Amsci/0000.html
+http://www.ecs.soton.ac.uk/~harnad/Hypermail/Amsci/0090.html
+http://www.ecs.soton.ac.uk/~harnad/Hypermail/Amsci/0572.html
+http://www.ecs.soton.ac.uk/~harnad/Hypermail/Amsci/1361.html
+http://www.ecs.soton.ac.uk/~harnad/Hypermail/Amsci/2003.html
+http://www.ecs.soton.ac.uk/~harnad/Hypermail/Author.Eprint.Archives/0005.html
+http://www.ecs.soton.ac.uk/~harnad/Hypermail/Thinking.Psychologically96/0059.html
+http://www.ecs.soton.ac.uk/~harnad/Hypermail/Thinking.Psychologically98/0017.html
+http://www.ecs.soton.ac.uk/~harnad/Temp/UKSTC.htm
+http://www.ecs.soton.ac.uk/~harnad/Temp/greenroad.html
+http://www.ecsa-nc.com/maps.html
+http://www.ecsail.org/mar01.htm
+http://www.ecsanet.org/conferences/ecsaworld2/CHRYSSOCHOOU.htm
+http://www.ecsite-uk.net/news/e_news/ecsite-uk_e-news_oct_2003.html
+http://www.ecsite-uk.net/news/e_news/enews_jun04.html
+http://www.ecsite.net/new/who_are_we.asp?type=intro&keyword=intro2
+http://www.ect.org/news/thomas_reserve.html
+http://www.ectaco.co.uk/Non-talking-Dictionaries/German-items/
+http://www.ectep.com/literacias/discourses.html
+http://www.ectodermaldysplasia.org/text/xrts6.htm
+http://www.ectopic.org/medical_information/detailed_account.asp
+http://www.ectra.org/scenery.htm
+http://www.ecu.edu.au/pr/pines
+http://www.ecu.edu.au/pr/pines.htm
+http://www.ecu.edu/csd/rose.htm
+http://www.ecu.edu/dhs/news/newsstory.cfm?ID=98
+http://www.ecuadordiscover.com/calendar.htm
+http://www.ecuadorexplorer.com/html/weather.html
+http://www.ecureme.com/emyhealth/Pediatrics/Flat_Feet.asp
+http://www.ecureme.com/emyhealth/Pediatrics/Pes_Planus.asp
+http://www.ecustomerserviceworld.com/earticlesstore_articles.asp?type=article&id=1047
+http://www.ecustomerserviceworld.com/earticlesstore_articles.asp?type=article&id=108
+http://www.ecy.wa.gov/programs/wq/plants/weeds/aqua007.html
+http://www.ed-data.k12.ca.us/Glossary.asp
+http://www.ed.gov/Speeches/02-1998/980202.html
+http://www.ed.gov/Speeches/03-1997/secy.html
+http://www.ed.gov/Speeches/04-1997/98senate.html
+http://www.ed.gov/Speeches/08-1995/religion.html
+http://www.ed.gov/Technology/Futures/riel.html
+http://www.ed.gov/Technology/Futures/serim.html
+http://www.ed.gov/about/bdscomm/list/acsfa/edlite-membios.html
+http://www.ed.gov/about/inits/list/fbci/grants2.html
+http://www.ed.gov/about/offices/list/ope/trio/
+http://www.ed.gov/about/offices/list/osdfs/programs.html
+http://www.ed.gov/admins/tchrqual/learn/preparingteachersconference/gordon.html
+http://www.ed.gov/admins/tchrqual/learn/preparingteachersconference/whitehurst.html
+http://www.ed.gov/emergencyplan/
+http://www.ed.gov/legislation/ESEA/sec1124.html
+http://www.ed.gov/news/newsletters/achiever/2003/03012003.html
+http://www.ed.gov/news/opeds/edit/2005/04072005.html
+http://www.ed.gov/news/pressreleases/2001/07/07272001a.html
+http://www.ed.gov/news/pressreleases/2002/03/03052002.html
+http://www.ed.gov/news/pressreleases/2003/03/03072003.html
+http://www.ed.gov/news/pressreleases/2003/06/06242003.html
+http://www.ed.gov/news/pressreleases/2004/01/01142004.html
+http://www.ed.gov/news/pressreleases/2004/02/02042004.html
+http://www.ed.gov/news/pressreleases/2005/02/02282005.html
+http://www.ed.gov/news/pressreleases/2005/04/04072005.html
+http://www.ed.gov/news/speeches/2003/12/12022003a.html
+http://www.ed.gov/news/speeches/2004/10/10142004.html
+http://www.ed.gov/news/speeches/2005/02/02282005.html
+http://www.ed.gov/offices/OERI/ECI/digests/99may.html
+http://www.ed.gov/offices/OSDFS/parents_guide/parents_guide6.html
+http://www.ed.gov/offices/OSERS/Policy/IDEA/article1.html
+http://www.ed.gov/offices/OUS/PES/finaid/enroll98.html
+http://www.ed.gov/policy/elsec/guid/secletter/010813.html
+http://www.ed.gov/policy/elsec/guid/secletter/030220.html
+http://www.ed.gov/policy/fund/reg/edgarReg/edlite-part99c.html
+http://www.ed.gov/prog_info/SFA/StudentGuide/2000-1/apply3.html
+http://www.ed.gov/programs/earlyreading/faq.html
+http://www.ed.gov/pubs/AchGoal5/doengy.html
+http://www.ed.gov/pubs/CPRE/fb2sbm.html
+http://www.ed.gov/pubs/CPRE/t61/
+http://www.ed.gov/pubs/CollegeForAll/graduates.html
+http://www.ed.gov/pubs/CollegeWeek/conclusionb.html
+http://www.ed.gov/pubs/EdReformStudies/EdTech/reasons.html
+http://www.ed.gov/pubs/EdReformStudies/SysReforms/shields1.html
+http://www.ed.gov/pubs/EdReformStudies/SysReforms/shields2.html
+http://www.ed.gov/pubs/EdTechGuide/appc-6.html
+http://www.ed.gov/pubs/GermanCaseStudy/chapter5c.html
+http://www.ed.gov/pubs/LearnCenters/execsum.html
+http://www.ed.gov/pubs/ReadWithMe/onecomm.html
+http://www.ed.gov/pubs/Reform/pt2d.html
+http://www.ed.gov/pubs/Reform/pt4.html
+http://www.ed.gov/pubs/SER/Technology/ch7.html
+http://www.ed.gov/pubs/SER/Technology/ch8.html
+http://www.ed.gov/pubs/USCaseStudy/chapter3.html
+http://www.ed.gov/pubs/charter3rdyear/execsum.html
+http://www.ed.gov/pubs/collegecosts/handbkp7.html
+http://www.ed.gov/pubs/parents/TestTaking/
+http://www.ed.gov/pubs/startearly/ch_1.html
+http://www.ed.gov/pubs/startearly/cite.html
+http://www.ed.gov/rschstat/eval/disadv/promisingresults/edlite-hlights.html
+http://www.ed.gov/rschstat/eval/other/learningcenters/
+http://www.ed.gov/teachers/become/about/survivalguide/parent.html
+http://www.ed.gov/teachers/how/early/cognitivedevsummit02/page_pg2.html
+http://www.ed.gov/teachers/how/early/cognitivedevsummit02/page_pg4.html
+http://www.ed.psu.edu/acsde/deos/deosnews/deosnews5_3.asp
+http://www.ed.psu.edu/englishpds/inquiry/projects/yerkes04.htm
+http://www.ed.psu.edu/insys/ESD/choice/MAChoice.html
+http://www.ed.sc.edu/EDLP/NewsArchive.asp
+http://www.ed.uiuc.edu/EPS/PES-Yearbook/94_docs/SELMAN.HTM
+http://www.ed.uiuc.edu/EPS/PES-Yearbook/95_docs/o'loughlin.html
+http://www.ed.umuc.edu/syllabi/20043/harrogate/bmgt378.awolf.htm
+http://www.ed2go.com/cgi-bin/newoic/newofferings.cgi?name=olemiss&dept=PF
+http://www.eda.admin.ch/geneva_miss/e/home/guide/trav/locaux.html
+http://www.edabg.com/en/hardware/scs_008.php
+http://www.edalive.com/allinfo/purchasingdet.php
+http://www.edauk.com/sub_effects_of_the_media.htm
+http://www.edba.org.au/articles/mugford.html
+http://www.edbroadbent.ca/en/abouted/news/oc_012405.htm
+http://www.edcenter.sdsu.edu/news/news_2004.html
+http://www.edcmag.com/CDA/ArticleInformation/features/BNP__Features__Item/0,4120,18769,00.html
+http://www.edcmag.com/CDA/ArticleInformation/features/BNP__Features__Item/0,4120,19444,00.html
+http://www.edcmag.com/CDA/ArticleInformation/features/BNP__Features__Item/0,4120,20030,00.html
+http://www.edcnews.se/Research/Farewelltoarms.html
+http://www.edcollins.com/stratego/stratego-rule-variations.htm
+http://www.edd.state.nm.us/FILM/RULES/blm.html
+http://www.edd.state.nm.us/FILM/RULES/npm.html
+http://www.edd.state.nm.us/FILM/RULES/ruleregs.html
+http://www.edd.state.nm.us/FILM/RULES/tc.html
+http://www.eddiem.com/projects/csmill/mill.htm
+http://www.eddylaw.com/vol3_no2_art4.htm
+http://www.edelman.com/insights/ShowOne.asp?ID=76
+http://www.edelman.com/speak_up/blog/
+http://www.edelman.com/speak_up/blog/archives/2005/04/where_have_all.html
+http://www.eden.rutgers.edu/~pstuart/ab2/k12schools.html
+http://www.edenvbc.org/news.htm
+http://www.eders.com/Redneck-Stand-p256c35-path0.html
+http://www.edfacilities.org/pubs/fundraising3.html
+http://www.edfacilities.org/pubs/outdoor3.html
+http://www.edfacilities.org/rl/disaster.cfm
+http://www.edfacilities.org/rl/facilities_management.cfm
+http://www.edfacilities.org/rl/facility_assessment.cfm
+http://www.edgateteam.net/wl/aboutwlc.htm
+http://www.edge.org/
+http://www.edge.org/3rd_culture/ledoux/ledoux_p3.html
+http://www.edge.org/3rd_culture/seligman04/seligman_index.html
+http://www.edge.org/discourse/sulloway_personality.html
+http://www.edge.org/documents/archive/edge114.html
+http://www.edge.org/q2005/q05_print.html
+http://www.edgehill.ac.uk/Faculties/HMSAS/ngas/research.htm
+http://www.edgehill.ac.uk/Faculties/HMSAS/ngas/staff.htm
+http://www.edgeleynd.com/edgeleymail/060204/chu_findssimilarities_and_differ.htm
+http://www.edgenews.com/directory/wi.html
+http://www.edgenews.com/issues/2002/04/louise.html
+http://www.edhanced.com/ask-mred/?q=taxonomy/view/or/7&from=20
+http://www.edhec-risk.com/about_us/Advisory%20Board
+http://www.edhelper.com/ReadingComprehension_35_76.html
+http://www.edibleschoolyard.org/cla_eco.html
+http://www.edict.com.hk/polylex/conceng/related.htm
+http://www.edict.com.hk/vlc/GrammarCourse/Lesson10_WordOrder/lesson10.htm
+http://www.edict.com.hk/vlc/articles/ArtAns3.htm
+http://www.edie.net/feedback/index.asp?channel=3
+http://www.edie.net/news/news_story.asp?id=10004&channel=6
+http://www.ediets.com/myDiet/recipeClub.cfm
+http://www.ediets.com/news/article.cfm/cmi_847567
+http://www.ediets.com/news/article.cfm/cmi_915356/cid_1
+http://www.ediets.com/news/article.cfm/cmi_915356/cid_29
+http://www.ediets.com/news/article.cfm/cmi_915356/code_12738
+http://www.ediets.com/news/article.cfm/cmi_915357/cid_28
+http://www.ediets.com/start.cfm?nopop=1&media=healthyliving&dietchoice=11
+http://www.edietsuk.co.uk/news/supersuccesses.cfm?StoryID=1660&code=24005
+http://www.edina.co.uk/stories/storyReader$29
+http://www.edinburgh-festivals.com/topics.cfm?tid=909&id=239712005
+http://www.edinburgh.gov.uk/CEC/Member_Services/List_of_Councillors/RegisterOfInterests.jsp?CllrID=26&CllrName=Hinds
+http://www.edinburgh.gov.uk/cpzextension/whatis.html
+http://www.edinburgh.gov.uk/libraries/historysphere/burkeandhare/burkeandhare.html
+http://www.edinburgh.labour.co.uk/viewpage.cfm?Page=5296
+http://www.edinburghgunners.org.uk/articles/199
+http://www.edinphoto.org.uk/4/4_eps_exhibitions_1922_members.htm
+http://www.edirectory.co.uk/pf/pages/moreinfoa.asp?recordid=1725997
+http://www.edition-reuss.de/pages/nudes/e_family_nudes.html
+http://www.editorsoftware.com/corporate/corporate_main.html
+http://www.edletter.org/current/snow.shtml
+http://www.edletter.org/past/issues/1999-mj/learning.shtml
+http://www.edletter.org/past/issues/1999-so/forum.shtml
+http://www.edletter.org/past/issues/2004-jf/abstracts.shtml
+http://www.edletter.org/past/issues/2004-jf/hiring.shtml
+http://www.edmunds-enterprises.com/
+http://www.edmunds.com/advice/buying/articles/74786/article.html
+http://www.edmunds.com/advice/selling/articles/45786/article.html
+http://www.edmunds.com/advice/selling/articles/74786/article.html
+http://www.edmunds.com/advice/specialreports/articles/103708/article.html
+http://www.edmunds.com/advice/strategies/articles/102203/article.html
+http://www.edmunds.com/advice/strategies/articles/46946/article.html
+http://www.edmunds.com/help/about/press/101432/article.html
+http://www.edmunds.com/insideline/do/Columns/articleId=104582
+http://www.edmunds.com/insideline/do/Drives/FirstDrives/articleId=62442
+http://www.edmunds.com/insideline/do/Drives/FullTests/articleId=103495
+http://www.edmunds.com/insideline/do/Drives/FullTests/articleId=44245
+http://www.edmunds.com/insideline/do/Drives/LongTerm/articleId=103704
+http://www.edn.com/article/CA196478.html
+http://www.edn.com/article/CA438330.html
+http://www.edn.com/article/CA480589.html
+http://www.edn.com/article/CA480589.html?industryid=2853
+http://www.edn.com/article/CA480589.html?text=arm
+http://www.edp24.co.uk/Content/Columnists/NeilHaverson/2003/030426NeilHaverson.asp
+http://www.edrants.com/reluctant/000546.html
+http://www.edrants.com/reluctant/002168.html
+http://www.edri.org/issues/copyright/WIPO
+http://www.edri.org/issues/governance/eupolicy?from=70
+http://www.eds-destatis.de/en/theme3/theme3.php?th=3
+http://www.eds.org.nz/news/consumer_guide.cfm
+http://www.edsgonesouth.com/blog/
+http://www.edsource.org/edu_acc_law.cfm
+http://www.edsource.org/edu_ass_law.cfm
+http://www.edsource.org/edu_sta_law.cfm
+http://www.edsource.org/edu_tea_law.cfm
+http://www.edst.educ.ubc.ca/aerc/2000/nolanr-web.htm
+http://www.edstrong.blog-city.com/radical_left_slogan_turn_antiwar_to_class_war.htm
+http://www.edsw.usyd.edu.au/current_students/policies/style_guide_04.shtml
+http://www.edta.org/rehearsal_hall/acting_1.asp
+http://www.edthibodeau.com/nonplussed/2004/week6/
+http://www.edu-cyberpg.com/Literacy/Play.asp
+http://www.edu-cyberpg.com/Literacy/play.asp
+http://www.edu-cyberpg.com/Teachers/brain.html
+http://www.edu-cyberpg.com/Teachers/cwomen.html
+http://www.edu-cyberpg.com/Teachers/standards.html
+http://www.edu-cyberpg.com/Technology/allengreenspan.html
+http://www.edu-cyberpg.com/culdesac/bhm/bhm.html
+http://www.edu-cyberpg.com/literacy/play.asp
+http://www.edu-orchard.net/PROFESS/ILESSON/ilesmb1.html
+http://www.edu.cn/20010101/22290.shtml
+http://www.edu.cn/20050530/3139084.shtml
+http://www.edu.gov.on.ca/eng/document/curricul/secondary/business/busiful.html
+http://www.edu.gov.on.ca/eng/document/discussi/degree/degree.html
+http://www.edu.gov.on.ca/eng/general/college/progstan/broadcst/radio.html
+http://www.edu.helsinki.fi/activity/pages/chatanddwr/activitysystem/
+http://www.educ.iastate.edu/newvisions/newsite/docarch/trr/1999discuss.html
+http://www.educ.iastate.edu/nflrc/news/200402/homepage.html
+http://www.educaid.com/learningcenter/financialaid.htm
+http://www.educarer.com/culture-who-are-you.htm
+http://www.educarer.com/current-article-relationships.htm
+http://www.education-reform.net/follow_leader.htm
+http://www.education-world.com/
+http://www.education-world.com/a_admin/admin126.shtml
+http://www.education-world.com/a_books/books146.shtml
+http://www.education-world.com/a_curr/curr037.shtml
+http://www.education-world.com/a_curr/curr134.shtml
+http://www.education-world.com/a_curr/curr154.shtml
+http://www.education-world.com/a_curr/curr167.shtml
+http://www.education-world.com/a_curr/curr171.shtml
+http://www.education-world.com/a_curr/curr179.shtml
+http://www.education-world.com/a_curr/curr217.shtml
+http://www.education-world.com/a_curr/curr241.shtml
+http://www.education-world.com/a_curr/curr310.shtml
+http://www.education-world.com/a_curr/curr381.shtml
+http://www.education-world.com/a_curr/profdev053.shtml
+http://www.education-world.com/a_curr/strategy/strategy056.shtml
+http://www.education-world.com/a_issues/chat/chat010.shtml
+http://www.education-world.com/a_issues/chat/chat084.shtml
+http://www.education-world.com/a_lesson/
+http://www.education-world.com/a_lesson/03/lp312-02.shtml
+http://www.education-world.com/a_lesson/lesson/lesson009.shtml
+http://www.education-world.com/a_lesson/lesson/lesson073.shtml
+http://www.education-world.com/a_lesson/lesson073.shtml
+http://www.education-world.com/a_lesson/lesson196.shtml
+http://www.education-world.com/a_tech/tech035.shtml
+http://www.education-world.com/a_tech/tech041.shtml
+http://www.education-world.com/a_tech/tech145.shtml
+http://www.education-world.com/best_of/1999/articles_curr.shtml
+http://www.education-world.com/parents/activities/index.shtml
+http://www.education-world.com/tools_templates/index.shtml
+http://www.education.gov.ab.ca/k_12/testing/diploma/bulletins/humanities/eng301/part_a_example.asp
+http://www.education.gov.ab.ca/k_12/testing/diploma/dip_gib/admin.asp
+http://www.education.gov.ab.ca/news/1997nr/may97/nr-Vegreville.asp
+http://www.education.gov.ab.ca/news/1998nr/May98/NRglobal.asp
+http://www.education.ie/home/home.jsp?pcategory=10917&ecategory=27180&language=EN&letter=M
+http://www.education.ky.gov/KDE/Instructional+Resources/Curriculum+Documents+and+Resources/Library+Media/
+http://www.education.tas.gov.au/delic/publications/physics.htm
+http://www.education.tas.gov.au/equitystandards/esl/overview/eslrole.htm
+http://www.education.theage.com.au/history.asp
+http://www.education.theage.com.au/pagedetail.asp?intpageid=863&strsection=students&intsectionid=0
+http://www.education.ucsb.edu/tep/
+http://www.educationaladvancement.org/resources/search/testing_search.php
+http://www.educationallearninggames.com/the-ungame-cards-family.asp
+http://www.educationallearninggames.com/ungame-christian.asp
+http://www.educationallearninggames.com/ungame.asp
+http://www.educationarcade.org/modules.php?op=modload&name=Sections&file=index&req=printpage&artid=72
+http://www.educationdirect.com/computerscience/
+http://www.educationet.org/
+http://www.educationforthepeople.org/Background%2097statement.htm
+http://www.educationnews.org/George-Scott-Senior-Editorial-Writer.htm
+http://www.educationnews.org/blame-game.htm
+http://www.educationnews.org/letter-from-a-frustrated-english.htm
+http://www.educationnext.org/20013/38moe.html
+http://www.educationnext.org/20014/56.html
+http://www.educationnext.org/2001sp/65.html
+http://www.educationnext.org/20021/50.html
+http://www.educationnext.org/20022/73.html
+http://www.educationnext.org/20031/73.html
+http://www.educationnext.org/20032/68.html
+http://www.educationnext.org/20033/14.html
+http://www.educationnext.org/20033/71.html
+http://www.educationnext.org/20042/30.html
+http://www.educationnext.org/20052/65.html
+http://www.educationpays.org/rreport.asp
+http://www.educationpolicy.org/files/neaftbk/book0004.htm
+http://www.educationworld.com/a_admin/admin/admin297.shtml
+http://www.educationworld.com/a_admin/admin/admin389.shtml
+http://www.educationworld.com/a_curr/columnists/jones/jones014.shtml
+http://www.educationworld.com/a_curr/profdev/profdev039.shtml
+http://www.educationworld.com/a_issues/chat/chat071.shtml
+http://www.educationworld.com/a_lesson/02/lp290-02.shtml
+http://www.educationworld.com/a_lesson/lesson154.shtml
+http://www.educationworld.com/a_lesson/lesson242.shtml
+http://www.educause.edu/Browse/645?PARENT_ID=329
+http://www.educause.edu/Browse/705?ITEM_ID=213
+http://www.educause.edu/January282004/1924
+http://www.educause.edu/apps/coredata/members.asp
+http://www.educause.edu/pub/er/erm04/erm0452.asp
+http://www.edufind.com/english/grammar/ADVERBS7.cfm
+http://www.eduplace.com/math/mw/background/1/11/te_1_11_intervals_ask.html
+http://www.eduplace.com/parents/homework/ss/ss8.html
+http://www.eduplace.com/parents/ss8.html
+http://www.eduplace.com/tview/pages/g/The_Great_Kapok_Tree_Lynne_Cherry.html
+http://www.eduplace.com/tview/rules.html
+http://www.eduref.org/lm_net/directory/o's.htm
+http://www.eduresources.net/science/general/bsa40.htm
+http://www.eduskunta.fi/kirjasto/Home/Julkaisut/Puheita/change-management.htm
+http://www.edutopia.org/modules/LASS/index.php
+http://www.edutopia.org/php/article.php?id=Art_1048&key=189
+http://www.edutopia.org/php/article.php?id=Art_798&key=039
+http://www.eduweb.vic.gov.au/sofweb/science/sampleprogram/early/unitdesc.htm
+http://www.edwalicki.com/studio_tour.htm
+http://www.edwardhugh.net/deflation.html
+http://www.edwardhumes.com/books/baby_er/index.shtml
+http://www.edwardsaquifer.net/medina.html
+http://www.edwardsvilleonline.com/stmary/SCHOOL/policies.htm
+http://www.edwardtbabinski.us/creationism/leaving_yec.html
+http://www.edwardtbabinski.us/religion/cross_evangelist.html
+http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0000D1&topic_id=1
+http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0000Jr&topic_id=1
+http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0000M7&topic_id=1
+http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0000ml&topic_id=1
+http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001FG&topic_id=1
+http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001pB&topic_id=1
+http://www.edwebproject.org/carter.html
+http://www.edwebproject.org/edref.choice.html
+http://www.edwebproject.org/susanne/luangprabang1.html
+http://www.edweek.org/agentk-12/2004/12/15/12market_cc.html
+http://www.edweek.org/agentk-12/articles/2005/03/30/29working.h24.html
+http://www.ee-21.net/projects/show_project.php?pid=254539254333254141254343253934253544
+http://www.ee-21.net/projects/show_project.php?pid=254539254337254141254343253934253544
+http://www.ee.columbia.edu/~sfchang/talks.html
+http://www.ee.gatech.edu/users/3304/icassp96/guide/tutorial.html
+http://www.ee.ryerson.ca:8080/~elf/abacus/history.html
+http://www.ee.scu.edu/eefac/healy/Ibsen4.html
+http://www.ee.upenn.edu/rca/instruments/misctutorials/Ground/grd.html
+http://www.ee.vt.edu/~ha/research/research.html
+http://www.ee.washington.edu/conselec/CE/kuhn/hdtv/95x5.htm
+http://www.eecis.udel.edu/~mills/exec.html
+http://www.eecs.harvard.edu/cs245/pughadvice.html
+http://www.eecs.umich.edu/~lnewton/music/JarrettSketch.html
+http://www.eecufresno.org/security.html
+http://www.eeel.nist.gov/817/817g/acdc.html
+http://www.eehealy.com/healy1.html
+http://www.eelaart.com/control.htm
+http://www.eeoc.gov/abouteeoc/35th/voices/making.html
+http://www.eeoc.gov/abouteeoc/plan/par/2004/management_discussion.html
+http://www.eeoc.gov/ada/adahandbook.html
+http://www.eeoc.gov/policy/docs/qanda-inquiries.html
+http://www.eera.ac.uk/networks/reports00/n14_00.html
+http://www.eera.gov.uk/category.asp?cat=392
+http://www.eere.energy.gov/buildings/info/components/envelope/framing/strawbale.html
+http://www.eere.energy.gov/buildings/info/design/integratedbuilding/passive.html
+http://www.eere.energy.gov/consumerinfo/factsheets/aircond.html
+http://www.eere.energy.gov/consumerinfo/factsheets/bc2.html
+http://www.eere.energy.gov/consumerinfo/factsheets/bd4.html
+http://www.eere.energy.gov/consumerinfo/factsheets/eb9.html
+http://www.eere.energy.gov/consumerinfo/factsheets/ed4.html
+http://www.eere.energy.gov/consumerinfo/factsheets/eewindows.html
+http://www.eere.energy.gov/consumerinfo/factsheets/eewindows.html?print
+http://www.eere.energy.gov/consumerinfo/factsheets/hydropower.html
+http://www.eere.energy.gov/consumerinfo/factsheets/passive_solar.html
+http://www.eere.energy.gov/consumerinfo/factsheets/pool_covers.html
+http://www.eere.energy.gov/consumerinfo/factsheets/pool_covers.html?print
+http://www.eere.energy.gov/consumerinfo/factsheets/pool_heatpumps.html
+http://www.eere.energy.gov/consumerinfo/factsheets/savenrgy.html
+http://www.eere.energy.gov/femp/technologies/techdemo_comp1.cfm
+http://www.eere.energy.gov/femp/technologies/techdemo_comp1.cfm?print
+http://www.eere.energy.gov/news/archive.cfm/pubDate=%7Bd%20'2002-01-23'%7D
+http://www.eere.energy.gov/solar_decathlon/faqs.html
+http://www.eere.energy.gov/troughnet/component_dev.html
+http://www.eesi.org/programs/agriculture/RFS.htm
+http://www.eesi.org/publications/Fact%20Sheets/RFS_issue_summary.htm
+http://www.eeye.com/html/Research/Advisories/AL20010717.html
+http://www.efa.org.au/Issues/Privacy/spam.html
+http://www.efa.org.au/Publish/tape5.htm
+http://www.efc.ca/pages/pr/efc-pr.22apr99.html
+http://www.efca.org/campaign/faq/
+http://www.efcer.org/resources/answers/salvation.html
+http://www.efcf.com/media/ep030727.shtml
+http://www.efda-taskforce-itm.org/MainSite/main.htm
+http://www.efdeportes.com/efd57/cancer1.htm
+http://www.eff.org/IP/?f=Apple_Complaint.html
+http://www.eff.org/Privacy/Crypto_export/Bernstein_case/Legal/
+http://www.eff.org/Privacy/cappsii/concern.php
+http://www.eff.org/broadcastflag/cookbook/
+http://www.eff.org/congress/
+http://www.eff.org/legal/cases/EFGA_v_GA/960924_troyer.affidavit
+http://www.eff.org/news/archives/2004_06.php
+http://www.eff.org/news/archives/2004_10.php
+http://www.eff.org/news/archives/2005_01.php
+http://www.eff.org/patriot/
+http://www.eff.org/wp/eula.php
+http://www.effectingchange.luton.ac.uk/leading_change/index.php?content=legal&a=p
+http://www.effectiveorganization.com/www/displayarticle.asp?ArticleID=163
+http://www.effingpot.com/slang.shtml
+http://www.efinanceinsider.com/email10802.htm
+http://www.efineantiques.com/empress.htm
+http://www.efl-law.com/contracts.html
+http://www.efl.lk/biosafety.html
+http://www.efloristsrus.com.au/
+http://www.efloristsrus.com.au/asp/welcome.asp
+http://www.efmd.org/html/Knowledge/cont_detail.asp?id=041103sqlv&aid=050112rpjt&tid=1
+http://www.efmoody.com/planning/cd.html
+http://www.efn.org/~fairhous/usc4245.html
+http://www.efn.org/~rick/trips/asia2000/
+http://www.efnet-math.org/math_tech/trig0.html
+http://www.efomp.org/policy/policy8.html
+http://www.efpa.be/taskpagina.htm
+http://www.efsa.eu.int/science/biohaz/biohaz_documents/787_en.html
+http://www.efsa.eu.int/science/biohaz/biohaz_documents/catindex_en.html
+http://www.efsec.wa.gov/cert.html
+http://www.efsol.com/golden.html
+http://www.eftasurv.int/?1=1&showLinkID=587&1=1
+http://www.eftours.ca/public/magazine/glspotlight.asp
+http://www.eftours.ca/public/magazine/issues/2002_07/idea.asp
+http://www.eftours.com/public/magazine/issues/2002_07/idea.asp
+http://www.efuse.com/Design/wa-voice.html
+http://www.efuse.com/Design/wa-writing_and_the_web.htm
+http://www.egaa.org/policies.htm
+http://www.egale.ca/features/employer.htm
+http://www.egale.ca/index.asp?lang=E&menu=33&item=169
+http://www.egee.nesc.ac.uk/schedreg/
+http://www.egglestontrust.com/df_intro.html
+http://www.eglobalhealth.com/OutreachProducts.html
+http://www.egoli.com.au/egoli/egoliEducationPage.asp?PageID=%7B856FE4C9-BAD1-4282-B2CC-CC1FEA713E7C%7D
+http://www.egonzehnderknowledge.com/knowledge/content/articles/index.php?article=911
+http://www.egos.co.uk/offshore.HTM
+http://www.egov4dev.org/etranscostbenef.htm
+http://www.egov4dev.org/gyandoot.htm
+http://www.egov4dev.org/impactfailure.htm
+http://www.egr.msu.edu/age/aenewsletter/ae_1_99/ae_1_99.htm
+http://www.egr.msu.edu/~lira/supp/steam/
+http://www.egr.uh.edu/parameters/fall2002/?e=classnotes
+http://www.egr.vcu.edu/me/faculty/me-faculty_tepper.html
+http://www.egrad.com/index.cfm?action=story&iStoryID=271&sectionID=98&subsectionID=102
+http://www.egreeley.com/noticeboard.html
+http://www.egreenway.com/months/monaug.htm
+http://www.egreenway.com/vsjournal/vsjindex.htm
+http://www.egs.edu/faculty/greenaway-resources.html
+http://www.egtaguitarforum.org/ExtraArticles/ingram.html
+http://www.egy.com/historica/97-07-05.shtml
+http://www.egyptmagic.com/
+http://www.egyptmagic.com/visit_redsea.htm
+http://www.egyptmyway.com/articles/mastaba_ti2.html
+http://www.egyptmyway.com/hotels/luxor/isisluxor.html
+http://www.egyptmyway.com/north_coast.html
+http://www.eh.net/bookreviews/library/0518.shtml
+http://www.eh.net/bookreviews/library/easterlin.shtml
+http://www.eh.net/bookreviews/library/grantham.shtml
+http://www.eh.net/encyclopedia/?article=cowen.banking.first_bank.us
+http://www.eh.net/encyclopedia/?article=noll.publicdebt
+http://www.eh.net/hmit/compare/
+http://www.eh.uc.edu/imby/friends.asp
+http://www.eham.net/reviews/detail/1683
+http://www.eharlequin.com/cms/learntowrite/ltwArticle.jhtml?pageID=040601wo02001
+http://www.eharmony.com/core/eharmony?cmd=community-spokespeople
+http://www.ehcs.org/
+http://www.ehealthnurse.com/ehealthi.html
+http://www.ehendrick.org/healthy/003975.htm
+http://www.ehistory.com/uscw/features/articles/0005/vivandieres.cfm
+http://www.ehistory.com/uscw/library/or/108/0981.cfm
+http://www.ehistory.com/world/PeopleView.Cfm?PID=48
+http://www.eho.org/features/article.asp?articleid=187&resourceid=270&topicid=16
+http://www.ehotelbooking.com/thailand/bangkok/sathornvilla/Index.htm
+http://www.ehotelier.com/browse/foodbeverage.php
+http://www.ehotelier.com/news/08/Aug13.htm
+http://www.ehow.com/how_109434_sell-used-baby.html
+http://www.ehow.com/how_109609_buy-bonds.html
+http://www.ehow.com/how_11042_block-straight-punch.html
+http://www.ehow.com/how_111364_shop-warehouse-stores.html
+http://www.ehow.com/how_111790_buy-weight-lifting.html
+http://www.ehow.com/how_12542_research-salary-ranges.html
+http://www.ehow.com/how_12803_aromatherapy-constipation.html
+http://www.ehow.com/how_14336_start-glass-collection.html
+http://www.ehow.com/how_14369_research-salary-ranges.html
+http://www.ehow.com/how_18010_defend-yourself-traffic.html
+http://www.ehow.com/how_9119_run-with-dog.html
+http://www.ehow.com/tips_4743.html
+http://www.ehs.buffalo.edu/food/food.htm
+http://www.ehs.psu.edu/paint/lead.html
+http://www.ehs.ucsf.edu/Manuals/BSM/oehsBSMC12.asp
+http://www.ehs.ucsf.edu/Manuals/RSM/oehsRSMC5.asp
+http://www.ehs.ucsf.edu/Manuals/RSTM/RSTM%20chap9.htm
+http://www.ehs.ufl.edu/General/fallprot.htm
+http://www.ehsco.com/opinion/19980209.html
+http://www.ehsco.com/opinion/20010305.html
+http://www.ehsni.gov.uk/natural/country/70.shtml
+http://www.ehss.vt.edu/Programs/OHIH/Resp/RespiratoryFAQs.htm
+http://www.ehw.org/Lead/LEAD_home3.htm
+http://www.ei-ie.org/ressourc/english/erec1966.htm
+http://www.eia.doe.gov/emeu/cabs/archives/africa/africa.html
+http://www.eia.doe.gov/emeu/cabs/archives/africa/chapter3.html
+http://www.eia.doe.gov/emeu/cabs/archives/africa/chapter6.html
+http://www.eia.doe.gov/emeu/cabs/indoe.html
+http://www.eia.doe.gov/emeu/cabs/safrenv.html
+http://www.eia.doe.gov/emeu/cabs/safrica.html
+http://www.eia.doe.gov/emeu/cabs/usa.html
+http://www.eia.doe.gov/emeu/consumptionbriefs/transportation/rtecs_fuel_economy.html
+http://www.eia.doe.gov/emeu/efficiency/ee_ch3.htm
+http://www.eia.doe.gov/emeu/finance/fdi/
+http://www.eia.doe.gov/emeu/steo/pub/special/mtbecost.html
+http://www.eia.doe.gov/emeu/steo/pub/steo.html
+http://www.eia.doe.gov/kids/energyfacts/saving/recycling/solidwaste/paperandglass.html
+http://www.eia.doe.gov/kids/energyfacts/sources/non-renewable/nuclear.html
+http://www.eia.doe.gov/kids/energyfacts/sources/non-renewable/oil.html
+http://www.eia.doe.gov/kids/energyfacts/sources/renewable/wind.html
+http://www.eia.doe.gov/neic/aboutEIA/budget.htm
+http://www.eia.doe.gov/neic/brochure/ieps2001/chapter1.html
+http://www.eia.doe.gov/oiaf/1605/gg00rpt/emission.htm
+http://www.eia.doe.gov/oiaf/1605/gg97rpt/chap2.html
+http://www.eia.doe.gov/oiaf/aeo/economic.html
+http://www.eia.doe.gov/oiaf/economy/energy_price.html
+http://www.eia.doe.gov/oiaf/issues/wind_supply.html
+http://www.eia.doe.gov/oiaf/kyoto3/chapter2.html
+http://www.eia.doe.gov/oiaf/kyoto3/execsummary.html
+http://www.eia.doe.gov/oiaf/servicerpt/fuel/ozone.html
+http://www.eia.doe.gov/oiaf/servicerpt/natgas/preface.html
+http://www.eia.doe.gov/oiaf/servicerpt/naturalgas/chapter_2.html
+http://www.eia.doe.gov/oiaf/servicerpt/subsidy/introduction.html
+http://www.eia.doe.gov/oiaf/servicerpt/subsidy1/exec_summary.html
+http://www.eia.doe.gov/oiaf/servicerpt/subsidy1/summary.html
+http://www.eia.doe.gov/pub/oil_gas/petroleum/analysis_publications/oil_market_basics/Price_transactions.htm
+http://www.eia.doe.gov/pub/oil_gas/petroleum/analysis_publications/oil_market_basics/Supply_text.htm
+http://www.eib.org/site/index.asp?designation=environment
+http://www.eibis.com/eibis/eibiswww/eibisdoc/4186en.htm
+http://www.eic.ac.cy/EN/E-Dec01.htm
+http://www.eighthsquare.com/strongspirit.html
+http://www.eijkhout.net/lead_follow/arm_tone.html
+http://www.eijkhout.net/lead_follow/connection.html
+http://www.eijkhout.net/lead_follow/multiple_turns.html
+http://www.eijkhout.net/lead_follow/wcs_specific.html
+http://www.einnews.com/mediakit/awards.php
+http://www.einnews.com/pennsylvania/
+http://www.einnews.com/russia/florists.php
+http://www.einnews.com/uk/newsfeed-DavidBlunkett
+http://www.einsteinconspiracy.co.uk/c11.htm
+http://www.einsteinyear.org/facts/physicsFacts
+http://www.eireview.com/standard/faqs/hs-faqs.htm
+http://www.eiro.eurofound.eu.int/1997/12/feature/de9712251f.html
+http://www.eiro.eurofound.eu.int/1998/10/feature/ie9810261f.html
+http://www.eiro.eurofound.eu.int/1999/06/feature/eu9906178f.html
+http://www.eiro.eurofound.eu.int/2001/06/feature/se0106105f.html
+http://www.eiro.eurofound.eu.int/2002/01/feature/no0201187f.html
+http://www.eiro.eurofound.eu.int/2003/country/ireland.html
+http://www.eiro.eurofound.eu.int/2004/06/inbrief/at0406201n.html
+http://www.eiro.eurofound.eu.int/2004/06/tfeature/no0406103t.html
+http://www.eiro.eurofound.eu.int/2004/08/feature/ie0408203f.html
+http://www.eiro.eurofound.eu.int/2004/11/inbrief/se0411102n.html
+http://www.eiro.eurofound.eu.int/print/1999/06/feature/eu9906178f.html
+http://www.eis-learnrep.org.uk/
+http://www.eis.org.uk/
+http://www.eisschool.co.uk/opportunities.html
+http://www.eiu.com/site_info.asp?info_name=ps_cityData&entry1=psNav&page=noads
+http://www.eiu.edu/~finaid/scholarships/fcs.htm
+http://www.eiu.edu/~localite/coles/mattoon/street_fairs/
+http://www.eiy.co.uk/events.htm
+http://www.ejc.nl/hp/je/publicfigure.html
+http://www.ejcl.org/52/art52-3.html
+http://www.ejcl.org/64/art64-20.html
+http://www.ejectejecteject.com/cgi-bin/mt-comments.cgi?entry_id=118
+http://www.ejectorseats.co.uk/russia.htm
+http://www.ejeg.com/volume-2/volume2-issue3/v2-i3-art4.htm
+http://www.ejfi.org/DV/dv-21.htm
+http://www.ejil.org/journal/Vol2/No1/sr1-01.html
+http://www.ejil.org/journal/Vol7/No1/art1-01.html
+http://www.ejil.org/journal/Vol9/No2/sr1-07.html
+http://www.ejnet.org/rachel/rhwn248.htm
+http://www.ejrc.cau.edu/ISEEWEB98.htm
+http://www.ejumpcut.org/archive/jc44.2001/garcia/garciaforsite.html
+http://www.ejumpcut.org/currentissue/KillBill/text.html
+http://www.ejumpcut.org/gatewaypages/aboutus.html
+http://www.ekcep.org/Archive/EdDeptScholarships.htm
+http://www.ekcsk12.org/elem/standards.html
+http://www.ekkane.org/Biographies/ladies_repository_excerpt_1856.htm
+http://www.ektopia.co.uk/ektopia/archives/2004/08/
+http://www.el-comandante.com/mayday.htm
+http://www.el-haqq.com/Islamic_Knowledge/Worship/benefits/benefits.html
+http://www.ela-iet.com/el04000.htm
+http://www.elaineflinn.com/chapter1.htm
+http://www.elainemcewan.com/otherissuescaqs.htm
+http://www.elationlighting.com/warranty.asp
+http://www.elaw.org/resources/text.asp?id=1089
+http://www.elbornes.com/articles/employment/emp_0011.htm
+http://www.elc.jcu.edu.au/accom_options_tsv.shtml
+http://www.elc.org.uk/pages/news_family_poisoned.htm
+http://www.elca.org/candidacy/vision_aim.html
+http://www.elca.org/co/news/images.peace_initiative.html
+http://www.elca.org/disaster/durham_township.html
+http://www.elca.org/jle/articles/contemporary_issues/article.stiltner_brian_pf.html
+http://www.elca.org/schools/perspviolence.html
+http://www.elca.org/youth/helpsheets/riskybus.html
+http://www.elchempub.com/epfiles/ep27.htm
+http://www.elcic.ca/steward/mno/tcalendar.html
+http://www.elcsads-lwf.org/archive/development.html
+http://www.elderhostel.org/about/questions_default.asp
+http://www.eldis.org/static/DOC14815.htm
+http://www.eldrbarry.net/mous/rflt/eb03.htm
+http://www.eldritchpress.org/chh/h1.html
+http://www.eldritchpress.org/chh/h6.html
+http://www.eldritchpress.org/nh/pfenb01.html
+http://www.eldritchpress.org/nh/vir.html
+http://www.elearnaid.com/elearnaid/oedoxendisee1.html
+http://www.elearnaid.com/oedoxendicse.html
+http://www.elearnaid.com/oedoxendisee1.html
+http://www.elearningeuropa.info/index.php?page=doc&doc_id=5082&doclng=6&menuzone=2%20
+http://www.elearningeuropa.info/index.php?page=doc&doc_id=5103&doclng=1&mtopic=5
+http://www.elearningmag.com/ltimagazine/article/articleDetail.jsp?id=36878
+http://www.elearningpost.com/features/archives/001859.asp
+http://www.elearningpost.com/features/archives/002099.asp
+http://www.elearningpost.com/features/archives/006742.asp
+http://www.elearningtoys.com/PROD/Fairies_Stained_Glass_Coloring_Book_Dover423855
+http://www.elearnspace.org/Articles/Preparingstudents.htm
+http://www.elearnspace.org/Articles/connectivism.htm
+http://www.elearnspace.org/Articles/wholepicture.htm
+http://www.elec.uq.edu.au/~rae/LyX/
+http://www.elec.york.ac.uk/comms/researchdegrees.html
+http://www.elecdesign.com/
+http://www.electionprojection.com/archives090104.html
+http://www.electionprojection.com/archives100104.html
+http://www.electionprojection.com/essay1.html
+http://www.elections2004.eu.int/highlights/en/401.html
+http://www.electionsalberta.ab.ca/annualrpt24th.html
+http://www.electrician.com/articles/driller_accident.htm
+http://www.electricityindia.org/workshops.php
+http://www.electricquilt.com/Albums/04/0404/0404p4.htm
+http://www.electricscotland.com/burns/rburns.html
+http://www.electricscotland.com/canada/fraser/eliza_fraser.htm
+http://www.electricscotland.com/canada/guelph/studies2.htm
+http://www.electricscotland.com/espeople/
+http://www.electricscotland.com/familytree/magazine/febmar2004/burns.htm
+http://www.electricscotland.com/history/australia/scotsin_australia.htm
+http://www.electricscotland.com/history/castles/dunnottar.htm
+http://www.electricscotland.com/history/charles/44.htm
+http://www.electricscotland.com/history/highlands/2no13.htm
+http://www.electricscotland.com/history/ho4.htm
+http://www.electricscotland.com/history/leith/4.htm
+http://www.electricscotland.com/history/mcintyre/chap22.htm
+http://www.electricscotland.com/history/mcintyre/chap26.htm
+http://www.electricscotland.com/history/other/scott/lesleys_march.htm
+http://www.electricscotland.com/history/prussia/part1-7.htm
+http://www.electricscotland.com/history/wallace.htm
+http://www.electricscotland.com/history/wylie/vol1ch26.htm
+http://www.electricscotland.com/music/tales/doris.htm
+http://www.electricscotland.com/poetry/logue/logue6.htm
+http://www.electricscotland.com/webclans/m/maclach2.html
+http://www.electro-optical.com/whitepapers/candela.htm
+http://www.electrodrive.com.my/products/cleaner.htm
+http://www.electroherbalism.com/Naturopathy/SelfEducationTips.htm
+http://www.electroline.com.au/elc/feature_article/item_022002b.asp
+http://www.electroline.com.au/elc/feature_article/item_072003a.asp
+http://www.electromagnetism.demon.co.uk/19161.htm
+http://www.electronic-school.com/0198f1.html
+http://www.electronic-school.com/0198f4.html
+http://www.electronic-school.com/0696f4.html
+http://www.electronic-school.com/0995ew1.html
+http://www.electronic-school.com/0996f7.html
+http://www.electronic-school.com/199909/0999f4.html
+http://www.electronic-school.com/2000/03/0300f1.html
+http://www.electronicappraiser.com/Questions
+http://www.electroniccottage.com/websiteinfo.html
+http://www.electronicproducts.com/ShowPage.asp?FileName=spiratech.jun2005.HTML
+http://www.electronicstalk.com/news/doc/doc631.html
+http://www.electronicstalk.com/news/hlt/hlt111.html
+http://www.electronicstoday.org/Emerging_Trends.htm
+http://www.electronixwarehouse.com/humor/animal-farm.htm
+http://www.electronpusher.org/
+http://www.electrovoice.com/Electrovoice3/features.nsf/allpages/736CC646759BA5B586256F82005F4232
+http://www.eleganza.com/fresco-minoan-gallery/1-01-wall-murals-akrotiri.html
+http://www.elementk.com/ourcompany/htm/jobopenings.asp
+http://www.elementk.com/training_advice/htm/05-03-whenwillwelearn.asp
+http://www.elenasmodels.com/
+http://www.elenasmodels.com/?goto=liliya
+http://www.elenasmodels.com/?goto=wesse
+http://www.elenasmodels.com/index.php?list=profile_fav&m=s
+http://www.elenasmodels.com/index.php?list=profile_fav&method=showhtmllist
+http://www.elenasmodels.com/services/ads.htm
+http://www.elenasmodels.com/services/listings.htm
+http://www.elephantpharmacy.com/calendar/events/days/2003/08/16_Sat.php
+http://www.elfrock.com/wildernesssanctuary/shelters2/annaCV.html
+http://www.elfsoft.com/ns/demos.htm
+http://www.elgee.com/about_us.html
+http://www.eli.sdsu.edu/courses/fall95/cs596_1/notes/class3/Class3.html
+http://www.eli.ufl.edu/firsttime/publications/ELI-Gator/spring99.htm
+http://www.eli.ufl.edu/firsttime/publications/voices/spring992.htm
+http://www.elib.scot.nhs.uk/portal/elib/Pages/help/Help.aspx?nid=46507
+http://www.elijahfan.com/index.php?subaction=showcomments&id=1099352538&archive=&start_from=&ucat=1&
+http://www.elinfonet.com/fedarticles/7/4
+http://www.elise.com/lmtstore/B000051SEP/Suunto_X-Lander_Wristop_Computer_Watch_w_Altimeter_Barometer_Compass__Chronograph.html
+http://www.elisiegel.net/poetry/Dissatisfaction-MC.htm
+http://www.elite.net/~ebedyah/PastorsSite/weeklystudies/questionsalways/study4.htm
+http://www.eliteskills.com/c/3623
+http://www.eliteskills.com/c/562
+http://www.eliteskills.com/c/571
+http://www.eliteskills.com/c/589
+http://www.eliteskills.com/z/25377
+http://www.elitestv.com/pub/2005/Mar/EEN4235de4b35060.html
+http://www.eliwhitney.org/arms.htm
+http://www.elixa.com/float/floatREST.htm
+http://www.elixa.com/mattress/mattress.htm
+http://www.elizabethbauchner.info/columns/throw.html
+http://www.elizabethbauchner.info/columns2004/samesex.html
+http://www.elizabethi.org/us/essays/marriage.htm
+http://www.elizabethsoutter.com/
+http://www.ellaz.com/AI/Tips.aspx
+http://www.ellegirl.com/article/article.do?articleId=2612
+http://www.ellegirl.com/article/article.do?articleId=2840&layout=print-layout.vm
+http://www.ellenhume.com/articles/talkshow2.htm
+http://www.ellensburgextreme.com/news/
+http://www.ellenwhite.org/canright/can9.htm
+http://www.ellipsispartners.com/about_us/consultants.html
+http://www.elliptical-trainer-guide.com/catalog/shop/Star_Trac_Natural_Runner_Elliptical_Trainer
+http://www.elmbrook.org/finearts/index.shtml
+http://www.elmhurst.k12.il.us/publications/Welcome_to_BOE.htm
+http://www.elmoreoil.com.au/sports_massage_relief.html
+http://www.elmstocktea.com.au/body_about_tea.html
+http://www.eloisajames.com/bookshelf/enchanting.html
+http://www.eloisajames.com/bookshelf/talk.html
+http://www.elotouch.com/company/elopress/closegap.asp
+http://www.elpasotimes.com/apps/pbcs.dll/article?AID=/20050701/NEWS/507010349/1001
+http://www.elpasotimes.com/openmic/012105marina.html
+http://www.elroy.net/ehr/abortionanswers.html
+http://www.elroy.net/ehr/aboutelroy.html
+http://www.elroy.net/ehr/dountoothers.html
+http://www.elroy.net/ehr/fascism.html
+http://www.elroy.net/ehr/steps.html
+http://www.elsevier.com/locate/ijsolstr
+http://www.elsevier.com/wps/product/cws_home/600644
+http://www.elsevier.com/wps/product/cws_home/706498
+http://www.elsevier.com/wps/product/editors/600644
+http://www.elt-online.co.uk/bookacourse.htm
+http://www.eltnews.com/jobs/
+http://www.elumax.com/en/contact.asp
+http://www.elvenwork.com/book_1.html
+http://www.elwa.ac.uk/elwaweb/elwa.aspx?pageid=2216
+http://www.elwa.ac.uk/elwaweb/elwa.aspx?pageid=2216&tx=y
+http://www.elwa.org.uk/elwaweb/elwa.aspx?pageid=2216
+http://www.elysianholidays.co.uk/?Module=VillaDetails&VillaID=9236&CurrencyCode=
+http://www.ema.org.nz/
+http://www.emag.org.uk/committee_minutes/cm100703.htm
+http://www.email4property.co.uk/wimbledon-village/estate-agents.htm
+http://www.emailreplies.com/
+http://www.emalaysiahotel.com/placesofinterests/sabah/
+http://www.emanet.org/postgraduate/
+http://www.emaxhealth.com/23/2212.html
+http://www.emayzine.com/lectures/writing.htm
+http://www.embedded.com/showArticle.jhtml?articleID=16100908
+http://www.embedded.com/showArticle.jhtml?articleID=20000085
+http://www.embl-heidelberg.de/Conferences/SciSoc02/c2002/cfeedback02.html
+http://www.embl-heidelberg.de/ExternalInfo/fuller/icos0.html
+http://www.embo.org/fellowships/
+http://www.embo.org/fellowships/fellow_guide.html
+http://www.embo.org/projects/fellowsnet/survey2000.html
+http://www.embo.org/projects/world/
+http://www.embratur.gov.br/en/segmento/ver.asp?ServicoId=60&id=387
+http://www.emc.com/ir/annual/annual95/annual_sony_union.htm
+http://www.emc.maricopa.edu/faculty/farabee/BIOBK/BioBookEVOLII.html
+http://www.emc.maricopa.edu/faculty/farabee/BIOBK/BioBookPLANTANAT.html
+http://www.emc.maricopa.edu/faculty/farabee/BIOBK/BioBookintro.html
+http://www.emcc.eurofound.eu.int/content/source/eu04017a.html?p1=ef_publication&p2=null
+http://www.emcit.com/emcit047.shtml
+http://www.emcit.com/emcit109.shtml
+http://www.emcit.com/emcit113.shtml
+http://www.emcit.com/hugo_types.shtml
+http://www.emcreg.org/history.html
+http://www.emd.dk/energyPRO/Price%20List/
+http://www.emeap.org/whats.htm
+http://www.emediacommunications.biz/articles.html
+http://www.emediawire.com/
+http://www.emedicine.com/MED/topic855.htm
+http://www.emedicine.com/PED/topic286.htm
+http://www.emedicine.com/aaem/topic290.htm
+http://www.emedicine.com/derm/topic342.htm
+http://www.emedicine.com/emerg/topic387.htm
+http://www.emedicine.com/ent/topic685.htm
+http://www.emedicine.com/med/topic1193.htm
+http://www.emedicine.com/med/topic2011.htm
+http://www.emedicine.com/med/topic2980.htm
+http://www.emedicine.com/med/topic3281.htm
+http://www.emedicine.com/med/topic3386.htm
+http://www.emedicine.com/med/topic782.htm
+http://www.emedicine.com/med/topic855.htm
+http://www.emedicine.com/med/topic959.htm
+http://www.emedicine.com/oph/topic552.htm
+http://www.emedicine.com/orthoped/topic451.htm
+http://www.emedicine.com/ped/topic2117.htm
+http://www.emedicine.com/ped/topic2494.htm
+http://www.emedicine.com/plastic/topic424.htm
+http://www.emedicine.com/pmr/topic25.htm
+http://www.emedicine.com/radio/topic668.htm
+http://www.emedicinehealth.com/Articles/19039-1.asp
+http://www.emedicinehealth.com/articles/13891-1.asp
+http://www.emedicinehealth.com/articles/17113-3.asp
+http://www.emedicinehealth.com/articles/19039-1.asp
+http://www.emedicinehealth.com/articles/5962-6.asp
+http://www.emeraldbooks.com/astrology/stars/billhillary.html
+http://www.emergency.com/dhahnrpt.htm
+http://www.emergency.com/dtbankrb.htm
+http://www.emergency.com/nycbio98.htm
+http://www.emergency.com/stratknw.htm
+http://www.emergencydispatch.org/JOURNAL/articles/SP04domestic.html
+http://www.emergentmind.org/JNLRMI_I2.htm
+http://www.emergentmind.org/articles.htm
+http://www.emergic.org/archives/2004/06/28/
+http://www.emergic.org/archives/2004/09/29/
+http://www.emergic.org/archives/2005/06/24/
+http://www.emergic.org/collections/tech_talk_thinking_a_new_food_portal.html
+http://www.emergingdemocraticmajorityweblog.com/cgi/dr/mt-comments.cgi?entry_id=360
+http://www.emergingdemocraticmajorityweblog.com/donkeyrising/
+http://www.emergingdemocraticmajorityweblog.com/donkeyrising/archives/000321.php
+http://www.emergingdemocraticmajorityweblog.com/donkeyrising/archives/000481.php
+http://www.emergingdemocraticmajorityweblog.com/donkeyrising/archives/001025.php
+http://www.emergingdemocraticmajorityweblog.com/donkeyrising/index.php
+http://www.emergingleader.com/article27.shtml
+http://www.emergis.com/en/news_events/news/2005/april29.asp
+http://www.emergogroup.com/news_new_markets.htm
+http://www.emeriocorp.com/speak.htm
+http://www.emerling.com/service_dept.php3
+http://www.emersonvet.co.uk/
+http://www.emersonvet.co.uk/lost_found.php
+http://www.emeta.com/products/
+http://www.emhc.org/clinic/specialties/pulmonary.html
+http://www.emiclassics.com/phpNewSite/news/news.php?mode=archive
+http://www.emigrant.ie/
+http://www.emigrant.ie/category.asp?iCategoryID=200&iPage=6
+http://www.emigroup.com/news/pr258.html
+http://www.emilyslist.org/do/jobs/
+http://www.eminent.demon.co.uk/dgie.htm
+http://www.eminfo.com/article.asp?aid=21
+http://www.emints.org/ethemes/resources/S00001080.shtml
+http://www.emints.org/ethemes/resources/S00001382.shtml
+http://www.emints.org/ethemes/resources/by-title.shtml
+http://www.emmasdiary.co.uk/fi_moving_house.asp
+http://www.emmathevet.co.uk/pettalk.asp?id=27
+http://www.emmitsburg.net/gardens/articles/frederick/2001/fall_lawn_fertilization.htm
+http://www.emofree.com/cases/gymnast.htm
+http://www.emofree.com/palace/palaceof4.htm
+http://www.emory.edu/ACAD_EXCHANGE/2002/decjan/kellermannqa.html
+http://www.emory.edu/EDUCATION/mfp/jpluralism.html
+http://www.emory.edu/EDUCATION/mfp/kuhnsyn.html
+http://www.emory.edu/EDUCATION/mfp/tt1.html
+http://www.emory.edu/OXFORD/Publications/Review/reform.html
+http://www.emory.edu/netcom/RatesAndBilling/understandingstatement.htm
+http://www.emoryhealthcare.org/departments/Radiation/patient_info/treatment_cycle.html
+http://www.emotionallyengaged.com/newsletter_couples.htm
+http://www.emotrics.com/people/milton/papers/presenceEmot/
+http://www.emp-serv.com/hot9.html
+http://www.emp.ac.uk/programme/Stage_Two/
+http://www.empcol.com/Financial_Aid/financial_aid.html
+http://www.empereur.com/tanzania.html
+http://www.emperordivers.com/enews/2004_10.html
+http://www.emperorsherbologist.com/stevia-tea.shtml
+http://www.emphysema.net/art.html
+http://www.empire-town.org/land_definition.html
+http://www.empireclubfoundation.com/details.asp?SpeechID=1545&FT=yes
+http://www.empiremovies.com/reviews/reviews.php?id=1669
+http://www.empirenotes.org/shamelections.html
+http://www.empirepage.com/eye_from_albany/pb_802.html
+http://www.empiretickets.com/empiretickets/sports/ncaabasketball/illinois_tickets.asp
+http://www.empiretickets.com/empiretickets/sports/ncaafootball/illinois_tickets.asp
+http://www.empirewholesale.com/employment.htm
+http://www.emploisetc.ca/flmm.jsp?category_id=292&lang=e
+http://www.employeradvisorsnetwork.com/members/joesmith/training.asp
+http://www.employers.careers.utoronto.ca/services/rgestxt.asp?tr=
+http://www.employment-studies.co.uk/summary/summary.php?id=dobusbet
+http://www.employmentguide.com/careeradvice/Leading_the_Way_in_Diversity.html
+http://www.employmentmatters.net.nz/employmentmatters-textonly.asp?v=13&i=3
+http://www.employmentmatters.net.nz/employmentmatters-textonly.asp?v=14&i=2
+http://www.employmentmatters.net.nz/employmentmatters.asp?v=13&i=3
+http://www.employmentmatters.net.nz/employmentmatters.asp?v=14&i=2
+http://www.employmentspot.com/state/employment/Carlisle-PA.htm
+http://www.employmentspot.com/state/employment/Harrisburg-PA.htm
+http://www.employmentspot.com/state/employment/Lebanon-PA.htm
+http://www.employmentspot.com/state/employment/York-PA.htm
+http://www.employmenttribunals.gov.uk/ptwp-information_bulletin-7.asp
+http://www.employmenttribunals.gov.uk/ptwp-information_bulletin-9.asp
+http://www.emporia.edu/earthsci/amber/recover.htm
+http://www.emporia.edu/president/98inaugaddress.htm
+http://www.emporia.edu/smnh/history.htm
+http://www.empowermentgroup.com/empowerment_group_site_map.html
+http://www.empowermentsystems.com/truthcnt.html
+http://www.empproject.com/terms/index1.shtml
+http://www.emptybottle.org/glass/2004/01/never_mind_the_bollocks_heres_the_wonderchicken.php
+http://www.emptyspace.dk/default~KatID~~page~130.htm
+http://www.emptyspace.dk/default~KatID~~page~133.htm
+http://www.emro.who.int/Publications/EMHJ/0203/04.htm
+http://www.emro.who.int/Publications/HealthEdReligion/AIDS/Chapter6.htm
+http://www.ems-c.org/cfusion/saverecord.cfm?type=pdf&filename=EMSManagedCare&id=000874
+http://www.ems.org/nws/2004/01/28/oil_supply_short
+http://www.ems.psu.edu/~fraser/Bad/BadCoriolis.html
+http://www.emsc.nysed.gov/ciai/biling/pub/overage.html
+http://www.emsc.nysed.gov/mgtserv/budget-02.htm
+http://www.emsd.gov.hk/emsd/eng/pee/index.shtml
+http://www.emsl.pnl.gov/docs/mscf/qbank-2.8/features/features.html
+http://www.emsvillage.com/forums/messageview.cfm?catid=28&threadid=631
+http://www.emsvillage.com/forums/messageview.cfm?catid=42&threadid=1009&STARTPAGE=1
+http://www.emtech.net/links/construc.htm
+http://www.emtrading.com/em/htmlpapers/kysuei1higa.html
+http://www.emulators.com/xptutor.htm
+http://www.emulex.com/corp/corpgov/auditor.html
+http://www.emulex.com/ts/docfc/utilities/elxcfg/141a14/change_timer.htm
+http://www.emusic.com/artist/10557/10557363.html
+http://www.emwis.org/MEDA/about_meda.htm
+http://www.enabling.org/ia/celiac/
+http://www.enature.com/fieldguide/showSpeciesFT.asp?fotogID=524&curPageNum=63&recnum=AR0121
+http://www.enature.com/fieldguide/showSpeciesRECNUM.asp?recNum=AR0121
+http://www.enc.org/features/focus/archive/edtech/document.shtm?input=FOC-000697-index
+http://www.enc.org/features/focus/archive/family/document.shtm?input=FOC-000726-index
+http://www.enc.org/features/focus/archive/inquiry/document.shtm?input=FOC-000711-index
+http://www.encana.com/investor/news_releases/news_2002/pcp_0301_2.html
+http://www.encana.com/legal.html
+http://www.enchantedlearning.com/coloring/Africa.shtml
+http://www.enchantedlearning.com/coloring/oceanlife.shtml
+http://www.enchantedlearning.com/geography/glossary/
+http://www.enchantedlearning.com/report/animal/
+http://www.enchantedlearning.com/subjects/animals/Animalbabies.shtml
+http://www.enchantedlearning.com/subjects/butterfly/species/Monarch.shtml
+http://www.enchantedlearning.com/subjects/dinosaurs/classroom/Poem.shtml
+http://www.enchantedlearning.com/subjects/dinosaurs/questions/QnsAug00.shtml
+http://www.enchantedlearning.com/subjects/mammals/Beaver.shtml
+http://www.enchantedlearning.com/subjects/mammals/Placental.shtml
+http://www.enchantedlearning.com/subjects/mammals/lagomorphs/Arctichareprintout.shtml
+http://www.enchantedlearning.com/subjects/mammals/panda/
+http://www.enchantedlearning.com/subjects/ocean/Oceanlife.shtml
+http://www.enchantedlearning.com/subjects/sharks/classification/Carcharhiniformes.shtml
+http://www.enchantedlearning.com/subjects/sharks/species/Greatwhite.shtml
+http://www.enchantedlearning.com/subjects/sharks/species/Hammerhead.shtml
+http://www.enchantedlearning.com/subjects/whales/species/Humpbackwhale.shtml
+http://www.enchantedlearning.com/testoftime/chap/37.shtml
+http://www.enchantedlearning.com/themes/letters/e.shtml
+http://www.enchantedlearning.com/themes/letters/o.shtml
+http://www.enchantedlearning.com/usa/states/michigan/
+http://www.enchantedspirit.org/FamilyMatters/39.php
+http://www.enchantedspirit.org/LifeLines/3228.php
+http://www.encompassinsurance.com/consumer/cc/plan_and_learn/abcs/abcs_of_insurance.asp
+http://www.encorp.ca/cfm/index.cfm?It=908&Id=3
+http://www.encounterbooks.com/books/tipl/tipl_intro.html
+http://www.encourageconnection.com/cgi-bin/mbviewall.pl?msg=117236
+http://www.encyclopedia.com/html/R/Richard1.asp
+http://www.endhomelessness.org/pub/fostercare/webfapdx.htm
+http://www.endicott-studio.com/rdrm/forwmnft.html
+http://www.endicott-studio.com/rdrm/rrMonkeyGirl.html
+http://www.endicott-studio.com/rdrm/rrPeterPan2.html
+http://www.endicott-studio.com/rdrm/rrPeterPan3.html
+http://www.endlessagony.com/Problem_detail.asp?Category=Family&problem_id=1355
+http://www.endo-society.org/journalspublications/rapidreview/index.cfm
+http://www.endocrineweb.com/diabetes/treatment.html
+http://www.endocrinologist.com/Complications.html
+http://www.endowment-compensation.co.uk/16.html
+http://www.endowmentjustice.com/Blog/blog_abloglessmonth.asp
+http://www.endsdirectory.com/articles/index.cfm?action=dir10
+http://www.endsleigh.co.uk/web/policies/travel/activity/cover.html
+http://www.endtheoccupation.org/article.php?id=15
+http://www.enduringword.com/commentaries/5810.htm
+http://www.ene.gov.on.ca/envision/deloro/riskstudy.htm
+http://www.ene.gov.on.ca/envision/techdocs/3794e.htm
+http://www.ene.gov.on.ca/envregistry/016576er.htm
+http://www.energy-garden.com/article020218.html
+http://www.energy-spiritual-healing.com/
+http://www.energy.ca.gov/places/
+http://www.energy.gov.on.ca/index.cfm?fuseaction=conservation.guide4
+http://www.energy.state.or.us/bus/light/
+http://www.energyaction.ie/iher/04.htm
+http://www.energyadvocate.com/burkonly.htm
+http://www.energyalternatives.ca/conservation.asp
+http://www.energybuilder.com/greenhome-basics.htm
+http://www.energybulletin.net/105.html
+http://www.energybulletin.net/1465.html
+http://www.energybulletin.net/1816.html
+http://www.energybulletin.net/3018.html
+http://www.energybulletin.net/320.html
+http://www.energybulletin.net/3249.html
+http://www.energybulletin.net/3691.html
+http://www.energybulletin.net/3702.html
+http://www.energybulletin.net/3792.html
+http://www.energybulletin.net/3846.html
+http://www.energybulletin.net/3898.html
+http://www.energybulletin.net/4055.html
+http://www.energybulletin.net/419.html
+http://www.energybulletin.net/4424.html
+http://www.energybulletin.net/4483.html
+http://www.energybulletin.net/4720.html
+http://www.energybulletin.net/4733.html
+http://www.energybulletin.net/4740.html
+http://www.energybulletin.net/5077.html
+http://www.energybulletin.net/5517.html
+http://www.energybulletin.net/5673.html
+http://www.energybulletin.net/print.php?id=4015
+http://www.energycentral.com/centers/calendar/default.cfm
+http://www.energydesignresources.com/category/stores/
+http://www.energydesignresources.com/resource/130/
+http://www.energyhealingart.com/
+http://www.energyinst.org.uk/content/files/file164
+http://www.energyjustice.net/rps/
+http://www.energyquest.ca.gov/story/chapter01.html
+http://www.energyquest.ca.gov/story/chapter03.html
+http://www.energystar.gov/index.cfm?c=bldrs_lenders_raters.pt_home_industry_professional
+http://www.energystar.gov/index.cfm?c=industry.bus_industry_elevating
+http://www.energytrust.org/Pages/about/library/news/
+http://www.energyusernews.com/CDA/ArticleInformation/features/BNP__Features__Item/0,2584,84743,00.html
+http://www.energyvortex.com/faq/index.cfm?opentopic=1&openquestion=735
+http://www.energyvortex.com/faq/index.cfm?opentopic=2
+http://www.enferscientific.com/news.html
+http://www.enfield.ac.uk/new/rec_docs/details/CAMoperatorecn139Jan05.htm
+http://www.eng-tips.com/viewthread.cfm?qid=101185
+http://www.eng-tips.com/viewthread.cfm?qid=101185&page=1
+http://www.eng-tips.com/viewthread.cfm?qid=104481
+http://www.eng-tips.com/viewthread.cfm?qid=104481&page=1
+http://www.eng-tips.com/viewthread.cfm?qid=107592&page=1
+http://www.eng-tips.com/viewthread.cfm?qid=108691
+http://www.eng-tips.com/viewthread.cfm?qid=110102
+http://www.eng-tips.com/viewthread.cfm?qid=111683&page=1
+http://www.eng-tips.com/viewthread.cfm?qid=125669&page=1
+http://www.eng-tips.com/viewthread.cfm?qid=1510&page=1
+http://www.eng-tips.com/viewthread.cfm?qid=51434
+http://www.eng-tips.com/viewthread.cfm?qid=55891
+http://www.eng-tips.com/viewthread.cfm?qid=55891&page=6
+http://www.eng-tips.com/viewthread.cfm?qid=61988&page=3
+http://www.eng-tips.com/viewthread.cfm?qid=64519&page=1
+http://www.eng-tips.com/viewthread.cfm?qid=67125
+http://www.eng-tips.com/viewthread.cfm?qid=68047&page=9
+http://www.eng-tips.com/viewthread.cfm?qid=69233&page=9
+http://www.eng-tips.com/viewthread.cfm?qid=86650&page=3
+http://www.eng-tips.com/viewthread.cfm?qid=94653&page=1
+http://www.eng-tips.com/viewthread.cfm?qid=98766&page=2
+http://www.eng.yabloko.ru/Publ/2002/papers/moscow-times-251002.html
+http://www.engadget.com/entry/1234000093042918/
+http://www.engadget.com/entry/1234000137045772/
+http://www.engadget.com/entry/1234000137047875/
+http://www.engadget.com/entry/1234000187045382/
+http://www.engadget.com/entry/1234000363043430/
+http://www.engadget.com/entry/1234000370040046/
+http://www.engadget.com/entry/1234000440041962/
+http://www.engadget.com/entry/1234000470021242/
+http://www.engadget.com/entry/1234000490042605/
+http://www.engadget.com/entry/1234000680044499/
+http://www.engadget.com/entry/1234000703046439/
+http://www.engadget.com/entry/1234000767048139/
+http://www.engadget.com/entry/1234000793030739/
+http://www.engadget.com/entry/1234000860046669/
+http://www.engadget.com/entry/1234000960042753/
+http://www.engadget.com/entry/1234000993032986/
+http://www.engadget.com/entry/1234000993047742
+http://www.engadget.com/entry/1234000993047742/
+http://www.engadget.com/entry/2116781680277657/
+http://www.engadget.com/entry/5843952395227141/
+http://www.engadget.com/entry/7796925370303347/
+http://www.engadget.com/entry/8277407851784728/
+http://www.engadget.com/search/?sourceid=Mozilla-search&q=lifedrive
+http://www.engageselling.com/fallingshort/
+http://www.engageselling.com/salesfallingshort/
+http://www.engelbergkristy.com/myths.htm
+http://www.engelen.demon.nl/mariange.htm
+http://www.engelreiman.com/resume.htm
+http://www.engelsk.ku.dk/translationstudies/lifedk.htm
+http://www.engin.brown.edu/undergrad/mechengin/resources.htm
+http://www.engin.umich.edu/dept/name/facilities/refroom/Search.html
+http://www.engineering.swan.ac.uk/vinfo_student.htm
+http://www.engineering.ualberta.ca/nav02.cfm?nav02=26728&nav01=18430
+http://www.engineering.usu.edu/jrestate/workshops/water/water.php
+http://www.engineeringlab.com/
+http://www.engineeringnews.co.za/eng/features/develop/?show=21199
+http://www.engineeringtalk.com/news/ptc/ptc108.html
+http://www.engl.duq.edu/servus/PR_Critic/SP4oct51.html
+http://www.engl.polyu.edu.hk/EECTR/awphandbook/AWPUnittwo.htm
+http://www.engl.uvic.ca/Faculty/MBHomePage/ISShakespeare/LLL/LLL4.3.html
+http://www.englandsnorth.worldweb.com/York/Events/AllEvents/
+http://www.englandsnorthwest2020.com/context.htm
+http://www.englefieldgreen.org.uk/
+http://www.englemed.demon.co.uk/auscol02.htm
+http://www.english-heritage.org.uk/default.asp?wci=Node&wce=8429
+http://www.english-heritage.org.uk/knights/news/tournament_update.asp
+http://www.english-test.net/forum/ftopic567.html
+http://www.english-test.net/forum/ftopic862.html
+http://www.english-test.net/lessons/4/
+http://www.english-to-go.com/
+http://www.english.cam.ac.uk/vclass/class1/note6.htm
+http://www.english.emory.edu/Bahri/Alexander.html
+http://www.english.ox.ac.uk/undergraduate/course.htm
+http://www.english.uiuc.edu/cws/grad_program/grad_resources/sample_reading_bruckner.htm
+http://www.english.uiuc.edu/cws/grad_program/grad_resources/spfld_conversation_exam_day.htm
+http://www.english.uiuc.edu/cws/wworkshop/advice/writing_resumes.htm
+http://www.english.uiuc.edu/maps/poets/a_f/ai/aboutopp.htm
+http://www.english.uiuc.edu/maps/poets/a_f/baca/melendez.html
+http://www.english.uiuc.edu/maps/poets/a_f/frost/apple.htm
+http://www.english.uiuc.edu/maps/poets/g_l/lowell/uniondead.htm
+http://www.english.uiuc.edu/maps/poets/m_r/rich/trying.htm
+http://www.english.uiuc.edu/maps/poets/m_r/robinson/cory.htm
+http://www.english.uiuc.edu/maps/poets/s_z/j_wright/ode.htm
+http://www.english.uiuc.edu/maps/poets/s_z/tolson/liberia.htm
+http://www.english.uiuc.edu/maps/vietnam/timeline.htm
+http://www.englishbaby.com/lessons/slang/slang.php
+http://www.englishcut.com/
+http://www.englishcut.com/archives/000032.html
+http://www.englishdemocrats.org.uk/
+http://www.englishforums.com/ShowPost.aspx?PostID=107077
+http://www.englishforums.com/ShowPost.aspx?PostID=55383
+http://www.englishforums.com/ShowPost.aspx?PostID=68705
+http://www.englishforums.com/ShowPost.aspx?PostID=73
+http://www.englishgardeningschool.co.uk/DLGDStruct.htm
+http://www.englishlearner.com/teachers/writing.html
+http://www.englishraven.com/SLAC_finding_out.html
+http://www.englishschoolwatch.org/webboard_detail.php?topic_id=397
+http://www.englit.ed.ac.uk/studying/undergrd/english_lit_1/Common/essay_guidance.htm
+http://www.englit.ed.ac.uk/studying/undergrd/english_lit_2/Common/essay_guidance.htm
+http://www.englit.ed.ac.uk/studying/undergrd/scottish_lit_1/Common/essay_guidance.htm
+http://www.englit.ed.ac.uk/studying/undergrd/scottish_lit_2/Common/essay_guidance.htm
+http://www.engr.colostate.edu/~dga/high_speed_video/
+http://www.engr.iupui.edu/~orr/webpages/cpt120/mathbios/hamil.htm
+http://www.engr.pitt.edu/industrial/pages/grad_concentrations.html
+http://www.engr.sjsu.edu/rsingh/conference/papers/west.htm
+http://www.engr.ucr.edu/~tbp/
+http://www.engr.uiuc.edu/communications/eupdate/spring03/030303.shtml
+http://www.engr.uiuc.edu/students/prospective/computer.php
+http://www.engr.utexas.edu/alumni/groups/distgrads/2004DG.cfm
+http://www.engr.utexas.edu/news/articles/20020711357/index.cfm
+http://www.engsc.ac.uk/nef/events/past_ltsn.asp
+http://www.engsc.ac.uk/nef/events/southeast03.asp
+http://www.engsw.com/Drawings/Huculak/Huculak.html
+http://www.enhancefrance.com/
+http://www.enhg.org/iddison/folklore.htm
+http://www.enigma.co.nz/hcro/website/index.cfm?fuseaction=articledisplay&FeatureID=1
+http://www.enigma.co.nz/hcro/website/print_issue.cfm?issueid=1
+http://www.enjoy-europe.com/hte/chap05/clothes.htm
+http://www.enjoy-europe.com/hte/chap11/electric.htm
+http://www.enjoyaurora.com/events_drill.cfm?month=01&year=2005
+http://www.enjoythedrive.com/content/?id=7311
+http://www.enjoythemusic.com/magazine/equipment/0204/meadowlarkosprey.htm
+http://www.enjoythemusic.com/magazine/equipment/0205/nadl53.htm
+http://www.enjoythemusic.com/magazine/equipment/1101/swanm200.htm
+http://www.enkueros.net/726016004497.html
+http://www.enlightened.org.uk/communication.html
+http://www.enn.com/aff.html?id=684
+http://www.enn.com/today.html?id=7952
+http://www.enneagraminstitute.com/4and4.asp
+http://www.enneagraminstitute.com/books/Books_UTE.asp
+http://www.enneagraminstitute.com/personalgrowth.asp
+http://www.enotalone.com/books/044657709X.html
+http://www.enotalone.com/forum/viewtopic.php?p=370199
+http://www.enotes.com/leaving-this/copyright
+http://www.enotes.com/old-dick-qn/
+http://www.enquire.org.uk/youngpeople/imap_1.php?laa=GLAS
+http://www.enquirer.com/
+http://www.enquirer.com/editions/2000/01/04/loc_middletown.html
+http://www.enquirer.com/editions/2000/06/11/loc_thoroughbred_owners.html
+http://www.enquirer.com/editions/2000/09/05/loc_kenton_jail_kitchen.html
+http://www.enquirer.com/editions/2001/11/27/loc_world_war_ii_hero.html
+http://www.enquirer.com/editions/2003/02/19/tem_health19lede.html
+http://www.enquirer.com/editions/2004/02/22/biz_warshak22.1.html
+http://www.enquirer.com/editions/2004/06/05/loc_GTHAllen05.html
+http://www.enquirer.com/editions/2004/07/28/loc_cvn1atxt.html
+http://www.enquirer.com/editions/2004/08/29/loc_col1howard.html
+http://www.enquirewithin.co.nz/BUS_APP/buschap6.htm
+http://www.enrager.net/thought/topics/parenting.php
+http://www.enrg.lsu.edu/projects/
+http://www.enrp.undp.org/general/default.htm
+http://www.ensight.org/archives/2004/02/23/its-happening-oss-browsers-taking-over/
+http://www.ensight.org/archives/2004/03/10/wow-dave-caught-cnets-attention/
+http://www.ensignmessage.com/archives/bloodln.html
+http://www.ensignsoftware.com/tips/tradingtips24.htm
+http://www.ent.uga.edu/pmh/Aquatic/Weed_Control.htm
+http://www.entemp.ie/corporate/planning/work.htm
+http://www.entemp.ie/press/1999/130499m.htm
+http://www.entemp.ie/press/2003/230103.htm
+http://www.entemp.ie/press/2005/20050519B.htm
+http://www.entercom.com/pages/pr_march03122.html
+http://www.enterprise-edge.co.uk/articles/penfalprofile.asp
+http://www.enterprisecare.com.au/news0006.htm
+http://www.enterpriseitplanet.com/security/features/
+http://www.enterpriseitplanet.com/storage/
+http://www.enterpriseitplanet.com/storage/features/
+http://www.enterprisemission.com/
+http://www.enterprisemission.com/oh_my_god.htm
+http://www.enterprisemission.com/pasadena2.html
+http://www.enterprisemission.com/sir.htm
+http://www.enterprisenetwork.co.uk/search/business_challenges_select.asp?biz_chal_id=10
+http://www.enterprisenetwork.co.uk/search/business_challenges_select.asp?biz_chal_id=2
+http://www.enterprisenetwork.co.uk/search/business_challenges_select.asp?biz_chal_id=3
+http://www.enterprisenetwork.co.uk/search/business_challenges_select.asp?biz_chal_id=4
+http://www.enterprisenetwork.co.uk/search/business_challenges_select.asp?biz_chal_id=5
+http://www.enterprisenetwork.co.uk/search/business_challenges_select.asp?biz_chal_id=6
+http://www.enterprisenetwork.co.uk/search/business_challenges_select.asp?biz_chal_id=7
+http://www.enterprisenetwork.co.uk/search/business_challenges_select.asp?biz_chal_id=9
+http://www.enterprisenetwork.co.uk/search/search_tips.asp
+http://www.enterprisenetworksandservers.com/monthly/art.php/1128
+http://www.enterprisenetworksandservers.com/monthly/art.php/1494
+http://www.enterprisestorageforum.com/ipstorage/features/article.php/3421111
+http://www.enterprising-communities.org.uk/rpt-ch1-5.shtml
+http://www.entersandiego.com/point_loma.cfm
+http://www.enterstageright.com/
+http://www.enterstageright.com/archive/articles/0402/0402condi.htm
+http://www.enterstageright.com/archive/articles/0500overpopulation.htm
+http://www.enterstageright.com/archive/articles/1104/1104tomsawyer.htm
+http://www.entertainmentcareers.net/jobid.asp?jcode=32325
+http://www.entertainmentpro.com/Casino-page.htm
+http://www.entertainmenttv.com/astro_2005.htm
+http://www.entil2001.com/series/firefly/season1dvd/ff1-9.html
+http://www.entish.org/willwhim/
+http://www.entnet.org/healthinfo/balance/dizziness.cfm
+http://www.entnet.org/healthinfo/sinus/sinusitis.cfm
+http://www.ento.co.uk/news/newsletter_xmas2001/
+http://www.entofga.com/Aao/aao460/me.get?WEB.websections.show&AAO460_618
+http://www.entomology.cornell.edu/Extension/DiagnosticLab/IDLFS/BedBugs/BedBugs.html
+http://www.entomology.wisc.edu/mbcn/fea201.html
+http://www.entomology.wisc.edu/mbcn/fea610.html
+http://www.entremundos.org/faq.html
+http://www.entrepreneur.com/Magazines/Copy_of_MA_ColumnArchive/0,4448,321737,00.html
+http://www.entrepreneur.com/Magazines/Copy_of_MA_SegArticle/0,4453,229837,00.html
+http://www.entrepreneur.com/Magazines/Copy_of_MA_SegArticle/0,4453,232505,00.html
+http://www.entrepreneur.com/Magazines/Copy_of_MA_SegArticle/0,4453,269401,00.html
+http://www.entrepreneur.com/Magazines/Copy_of_MA_SegArticle/0,4453,300677,00.html
+http://www.entrepreneur.com/Magazines/Copy_of_MA_SegArticle/0,4453,301605,00.html
+http://www.entrepreneur.com/Magazines/Copy_of_MA_SegArticle/0,4453,303925,00.html
+http://www.entrepreneur.com/Magazines/Copy_of_MA_SegArticle/0,4453,305365,00.html
+http://www.entrepreneur.com/Magazines/Copy_of_MA_SegArticle/0,4453,306072,00.html
+http://www.entrepreneur.com/Magazines/MA_SegArticle/0,1539,269401,00.html
+http://www.entrepreneur.com/Your_Business/YB_Node/0,4507,111,00.html
+http://www.entrepreneur.com/Your_Business/YB_Node/0,4507,512,00.html
+http://www.entrepreneur.com/article/0,4621,232505,00.html
+http://www.entrepreneur.com/article/0,4621,269401,00.html
+http://www.entrepreneur.com/article/0,4621,279346,00.html
+http://www.entrepreneur.com/article/0,4621,286649,00.html
+http://www.entrepreneur.com/article/0,4621,287856-4,00.html
+http://www.entrepreneur.com/article/0,4621,287856-7,00.html
+http://www.entrepreneur.com/article/0,4621,293752,00.html
+http://www.entrepreneur.com/article/0,4621,298213,00.html
+http://www.entrepreneur.com/article/0,4621,299619,00.html
+http://www.entrepreneur.com/article/0,4621,300866,00.html
+http://www.entrepreneur.com/article/0,4621,301605,00.html
+http://www.entrepreneur.com/article/0,4621,303987,00.html
+http://www.entrepreneur.com/article/0,4621,304084,00.html
+http://www.entrepreneur.com/article/0,4621,305365,00.html
+http://www.entrepreneur.com/article/0,4621,306053,00.html
+http://www.entrepreneur.com/article/0,4621,306774,00.html
+http://www.entrepreneur.com/article/0,4621,308140,00.html
+http://www.entrepreneur.com/article/0,4621,310776,00.html
+http://www.entrepreneur.com/article/0,4621,315265,00.html
+http://www.entrepreneur.com/article/0,4621,315561,00.html
+http://www.entrepreneur.com/article/0,4621,316202,00.html
+http://www.entrepreneur.com/article/0,4621,316416,00.html
+http://www.entrepreneur.com/article/0,4621,316494,00.html
+http://www.entrepreneur.com/article/0,4621,316521,00.html
+http://www.entrepreneur.com/article/0,4621,318357,00.html
+http://www.entrepreneur.com/article/0,4621,318430,00.html
+http://www.entrepreneur.com/article/0,4621,318600,00.html
+http://www.entrepreneur.com/article/0,4621,320297,00.html
+http://www.entrepreneur.com/article/print/0,2361,301982,00.html
+http://www.entrepreneur.com/article/sbc/0,6136,317790,00.html
+http://www.entrepreneur.com/homeoffice/0,6289,,00.html
+http://www.entrepreneur.com/mag/article/0,1539,311867,00.html
+http://www.entrepreneurslife.com/archives/category/random-stuff/
+http://www.entreworld.org/Channel/GYB.cfm?Topic=FincInvs
+http://www.entreworld.org/Channel/SYB.cfm?Topic=FincInvs
+http://www.entsoc.org/newsletter/2004/jun/founders.htm
+http://www.entsweb.co.uk/eventman/medical/
+http://www.enviro-shield.com/
+http://www.enviroalternatives.com/toiletgraywater.html
+http://www.envirocitizen.org/region/index.asp
+http://www.envirohealthtech.com/coilresearch.htm
+http://www.enviroliteracy.org/subcategory.php/252.html
+http://www.enviroliteracy.org/subcategory.php?id=252&print=1
+http://www.environ.ie/DOEI/DOEIPol.nsf/wvNavView/fsaep?OpenDocument&Lang=en
+http://www.environ.ie/DOEI/DOEIPol.nsf/wvNavView/wwdEnvironment?OpenDocument&Lang=en
+http://www.environ.ie/DOEI/DOEIPol.nsf/wvNavView/wwdRoads?OpenDocument&Lang=en
+http://www.environet.org/
+http://www.environment-agency.gov.uk/aboutus/512398/289428/655143/?lang=_e
+http://www.environment-agency.gov.uk/regions/anglian/484767/652199/?lang=_e&textonly=on&format=
+http://www.environment-agency.gov.uk/regions/anglian/484767/652199/?version=1&lang=_e&textonly=on&format=
+http://www.environment-agency.gov.uk/subjects/flood/826674/927042/?lang=_e
+http://www.environment-agency.gov.uk/subjects/flood/826674/927042/?version=1&lang=_e
+http://www.environment-agency.gov.uk/yourenv/consultations/glass/?lang=_w&version=1&textonly=on
+http://www.environment-agency.gov.uk/yourenv/eff/natural_forces/flooding/?lang=_e
+http://www.environment-agency.gov.uk/yourenv/eff/natural_forces/flooding/?version=1&lang=_e
+http://www.environment-hawaii.org/1000caught.htm
+http://www.environment-hawaii.org/1093public.htm
+http://www.environment-hawaii.org/1295neit.htm
+http://www.environment-hawaii.org/695cov.htm
+http://www.environment.co.il/ArticlePrint.asp?id=103&lang=eng
+http://www.environment.gov.za/DOCUMENTS_UPLOAD/DocumentViewNewsMedia1.aspx?qstrSubCategory=Speeches
+http://www.environment.sa.gov.au/reporting/biodiversity/introduced.html
+http://www.environment.sa.gov.au/reporting/land/landuse/change.html
+http://www.environment.soton.ac.uk/waste/waste.htm
+http://www.environmental-center.com/articles/article1004/article1004.htm
+http://www.environmental-center.com/tech_result.asp?cod=738&idmainpage=29
+http://www.environmental-expert.com/events/cohab2005/cohab2005.htm
+http://www.environmental-expert.com/events/tmdl2005/tmdl2005.htm
+http://www.environmental-expert.com/technology/slickbar/slickbar.htm
+http://www.environmental.org.uk/
+http://www.environmentaldefense.org/article.cfm?contentid=1242
+http://www.environmentaldefense.org/documents/525_Case%20Study%20Pacific%20Fishery.htm
+http://www.environmentalreview.org/vol02/feschba.html
+http://www.environmentnepal.com.np/news_d.asp?id=88
+http://www.environmenttimes.net/article.cfm?pageID=132
+http://www.envisionus.com/article.asp?AID=67
+http://www.eoc-law.org.uk/cseng/tribunalandcourtprocedures/alternatives_to_tribunal.asp?tct=sd
+http://www.eoc.org.uk/cseng/advice/seminar_report_march_04.asp
+http://www.eoc.org.uk/cseng/tribunalandcourtprocedures/alternatives_to_tribunal.asp?PrintIt=yes&SubDate=Wednesday+2+February%2C+2005
+http://www.eoc.org.uk/cseng/tribunalandcourtprocedures/alternatives_to_tribunal.asp?SubDate=Wednesday+2+February%2C+2005
+http://www.eoc.sa.gov.au/public/equity22.html
+http://www.eofftv.com/review/s/silence_of_the_lambs_review.htm
+http://www.eohr.org/report/2005/re0321.htm
+http://www.eoneill.com/texts/tomorrow/contents.htm
+http://www.eonline.com/On/Holly/
+http://www.eos-experience.co.uk/seminar/02.php
+http://www.eos.uoguelph.ca/webfiles/wjames/homepage/Teaching/437/wj437hi.htm
+http://www.eostreorganics.co.uk/boxes_norfolk.htm
+http://www.eowa.gov.au/Information_Centres/Resource_Centre/Directors_Speeches/ahra_0503.asp
+http://www.ep1.rub.de/~panda/doc/PhonebookWeb_HowTo.htm
+http://www.epa.gov/OCEPAterms/aajq.html
+http://www.epa.gov/OCEPAterms/aterms.html
+http://www.epa.gov/OCEPAterms/sterms.html
+http://www.epa.gov/agriculture/factsheets/epa-305-f-98-017ag.html
+http://www.epa.gov/air/clearskies/state/al.html
+http://www.epa.gov/air/clearskies/state/fl.html
+http://www.epa.gov/air/clearskies/state/il.html
+http://www.epa.gov/air/clearskies/state/ms.html
+http://www.epa.gov/air/clearskies/state/nh.html
+http://www.epa.gov/air/clearskies/state/oh.html
+http://www.epa.gov/air/clearskies/state/ok.html
+http://www.epa.gov/air/eac/faq.html
+http://www.epa.gov/airmarkets/acidrain/society/
+http://www.epa.gov/boston/pr/2002/jun/020603.html
+http://www.epa.gov/dears/info.htm
+http://www.epa.gov/envirohealth/children/contaminants/e3.htm
+http://www.epa.gov/eogapti1/glossary/
+http://www.epa.gov/epaoswer/hazwaste/usedoil/usedoil.htm
+http://www.epa.gov/etv/etvoice/01-12.html
+http://www.epa.gov/fedrgstr/EPA-AIR/2004/May/Day-05/a10335.htm
+http://www.epa.gov/fedrgstr/EPA-IMPACT/2002/July/Day-15/i17744.htm
+http://www.epa.gov/fedrgstr/EPA-MEETINGS/2005/January/Day-06/m263.htm
+http://www.epa.gov/fedrgstr/EPAFR-CONTENTS/2003/July/Day-01/contents.htm
+http://www.epa.gov/glnpo/aoc/st-clair.html
+http://www.epa.gov/glnpo/aoc/trchlke.html
+http://www.epa.gov/greenchemistry/whats_gc.html
+http://www.epa.gov/history/topics/canada/02.htm
+http://www.epa.gov/iaq/pubs/ozonegen.html
+http://www.epa.gov/maia/html/intro-species.html
+http://www.epa.gov/oar/eac/faq.html
+http://www.epa.gov/oar/oaqps/air_risc/3_90_024.html
+http://www.epa.gov/oar/oaqps/peg_caa/pegcaa10.html
+http://www.epa.gov/oilspill/edueff.htm
+http://www.epa.gov/oppbppd1/PESP/strategies/2005/nypa05.htm
+http://www.epa.gov/oppsrrd1/op/primer.htm
+http://www.epa.gov/opptintr/pcb/effects.html
+http://www.epa.gov/ost/fishadvice/advice.html
+http://www.epa.gov/otaq/consumer/f00013.htm
+http://www.epa.gov/owow/monitoring/mtg1200.html
+http://www.epa.gov/owow/nps/cwact.html
+http://www.epa.gov/privacy/assess/cdx.htm
+http://www.epa.gov/projectxl/scaqmd2/rule2501.htm
+http://www.epa.gov/radiation/terms/
+http://www.epa.gov/radiation/understand/health_effects.htm
+http://www.epa.gov/region6/6ra/community.htm
+http://www.epa.gov/safewater/arsenic.html
+http://www.epa.gov/superfund/programs/recycle/success/casestud/armycsi.htm
+http://www.epa.gov/superfund/programs/recycle/tools/faq.htm
+http://www.epa.gov/superfund/programs/reforms/reforms/2-6.htm
+http://www.epa.gov/superfund/sites/npl/f840508.htm
+http://www.epa.gov/superfund/sites/npl/pd050218.htm
+http://www.epa.gov/superfund/students/clas_act/haz-ed/ff_09.htm
+http://www.epa.gov/swerffrr/documents/land_use_cercla_remedy.htm
+http://www.epa.gov/swerffrr/documents/pip2.htm
+http://www.epa.gov/swerffrr/documents/pip3.htm
+http://www.epa.gov/swerffrr/documents/pip7_1.htm
+http://www.epa.gov/swerffrr/documents/pip8_1.htm
+http://www.epa.gov/tio/char1_tech.htm
+http://www.epa.gov/water/speeches/041503tm.html
+http://www.epa.gov/waterscience/methods/det/withdrawfs.htm
+http://www.epa.gov/wtc/stories/yearreview.htm
+http://www.epa.nsw.gov.au/envalue/studydetail.asp?id_study=311
+http://www.epa.nsw.gov.au/envalue/studydetail.asp?id_study=399
+http://www.epa.nsw.gov.au/legal/aboutpoeo.htm
+http://www.epanorama.net/links/telephone.html
+http://www.epc.bc.ca/poll.html
+http://www.epcorcentre.org/ecartslearning/development.html
+http://www.ephesians5-11.org/ex_masons_for_jesus/jean.htm
+http://www.ephesians5-11.org/stoney.htm
+http://www.ephilosopher.com/bb-print-43-0.html
+http://www.ephilosopher.com/bb-topic-138.html
+http://www.ephilosopher.com/index.php?name=PNphpBB2&file=viewtopic&p=975
+http://www.ephilosopher.com/index.php?name=PNphpBB2&file=viewtopic&p=977
+http://www.epi-centre.com/reports/9511cs.html
+http://www.epi-global.com/en/Technology/TDPA_faq.htm
+http://www.epi.org/content.cfm/bp162
+http://www.epibiostat.ucsf.edu/courses/masters.html
+http://www.epic.co.uk/content/resources/email_newsletter/December2002.htm
+http://www.epic.co.uk/content/resources/email_newsletter/December2004.htm
+http://www.epic.org/alert/EPIC_Alert_10.09.html
+http://www.epic.org/free_speech/tribe.html
+http://www.epicurious.com/drinking/wine_dictionary/entry?id=6556
+http://www.epicurusconsulting.com/foodservice/index.php
+http://www.epidem.com/pt/re/epidemiology/fulltext.00001648-200007000-00009.htm
+http://www.epigee.org/pregnancy/birthcontrol.html
+http://www.epilepsy.com/epilepsy/team_10common.html
+http://www.epilepsy.com/stories/ps_1094853702.html
+http://www.epilepsy.com/web/print.php?page_name=ps_1094853702
+http://www.epinet.org/content.cfm/Issuebriefs_ib176
+http://www.epinet.org/content.cfm/books_exceptional_returns
+http://www.epinet.org/content.cfm/books_hardships
+http://www.epinet.org/content.cfm/books_rethinking_growth
+http://www.epinet.org/content.cfm/books_swa2002_swa2002intro
+http://www.epinet.org/content.cfm/briefingpapers_117_bp117
+http://www.epinet.org/content.cfm/briefingpapers_bp130
+http://www.epinet.org/content.cfm/briefingpapers_bp150
+http://www.epinet.org/content.cfm/briefingpapers_comp
+http://www.epinet.org/content.cfm/briefingpapers_flsa_jun03
+http://www.epinet.org/content.cfm/briefingpapers_labor99
+http://www.epinet.org/content.cfm/issuebriefs_ib141
+http://www.epinet.org/content.cfm/issuebriefs_ib176
+http://www.epinet.org/content.cfm/webfeatures_econindicators_jobspict_20041008
+http://www.epinet.org/content.cfm/webfeatures_snapshots_07162004
+http://www.epinet.org/content.cfm/webfeatures_snapshots_20050112
+http://www.epinet.org/content.cfm/webfeatures_viewpoints_slouch
+http://www.epinet.org/index.cfm
+http://www.epinet.org/printer.cfm?id=858&content_type=1&nice_name=books_hardships
+http://www.epinions.com/Finding_Our_Roots_Facing_Our_Future_America_in_the_21st_Century_edited_by_Robert_E_Freer_Jr__/display_~latest_prices
+http://www.epinions.com/Honeywell_Enviracaire_HEPA_Air_Purifier_50250_Air_Filters
+http://www.epinions.com/Office_Furniture-Brand_Fulmarque
+http://www.epinions.com/Office_Furniture-Chairs-Brand_Fulmarque
+http://www.epinions.com/Office_Furniture-Fulmarque_Traditional_Series_Conference_Reception_Chair_Forest_Green_Fabric
+http://www.epinions.com/Office_Furniture-Fulmarque_Traditional_Series_Conference_Reception_Chair_w_Casters_Forest_Green_Fabric
+http://www.epinions.com/Office_Furniture-Fulmarque_Traditional_Series_Mid-Manager_s_Tufted_Guest_Chair_Olefin_Forest_Green
+http://www.epinions.com/Pokemon__Ruby_Version_for_Game_Boy_Advance/display_~reviews
+http://www.epinions.com/Pokemon__Ruby_Version_for_Game_Boy_Advance/display_~reviews/pp_~1/sort_~prdrt/sort_dir_~des/sec_~opinion_list
+http://www.epinions.com/Story_Land/display_~reviews
+http://www.epinions.com/The_Beach_House_by_James_Patterson_and_by_Peter_De_Jonge_and_by_Peter_De_Jonge_and_narrated_by_Gil_Bellows/display_~reviews
+http://www.epinions.com/Walking_and_Eating_in_Tuscany_and_Umbria_by_James_Ladsun
+http://www.epinions.com/Walking_and_Eating_in_Tuscany_and_Umbria_by_James_Ladsun/display_~latest_prices
+http://www.epinions.com/Wild_Arms_3_for_PlayStation_2/display_~reviews
+http://www.epinions.com/Wilson_Deep_Red_Irons_Golf_Clubs/display_~reviews
+http://www.epinions.com/Wilson_Deep_Red_Irons_Golf_Clubs/display_~reviews/pp_~1/sort_~date/sort_dir_~des/sec_~opinion_list
+http://www.epinions.com/auto-review-344D-B36CA89-39F5DE20-prod2
+http://www.epinions.com/auto-review-590D-1251985A-39B52554-prod6
+http://www.epinions.com/auto-review-6026-33605AB7-3A40EAF8-prod5
+http://www.epinions.com/auto-review-792E-913E692-3822116C-bd3
+http://www.epinions.com/beat-review-F20-31597A94-39A94616-prod5
+http://www.epinions.com/bicycles_2003_Felt_F75/display_~reviews
+http://www.epinions.com/cmd-review-7BFB-4BB800A6-3A5BE48C-prod3
+http://www.epinions.com/content_102506401412
+http://www.epinions.com/content_103560154756
+http://www.epinions.com/content_103691685508
+http://www.epinions.com/content_105222606468
+http://www.epinions.com/content_105809809028
+http://www.epinions.com/content_106485747332
+http://www.epinions.com/content_109356879492
+http://www.epinions.com/content_109691768452
+http://www.epinions.com/content_112298069636
+http://www.epinions.com/content_112461188740
+http://www.epinions.com/content_113378889348
+http://www.epinions.com/content_1146069124
+http://www.epinions.com/content_115638963844
+http://www.epinions.com/content_115779800708
+http://www.epinions.com/content_116044762756
+http://www.epinions.com/content_116606865028
+http://www.epinions.com/content_118689074820
+http://www.epinions.com/content_122735791748
+http://www.epinions.com/content_125080080004
+http://www.epinions.com/content_126061678212
+http://www.epinions.com/content_1288151172
+http://www.epinions.com/content_129776258692
+http://www.epinions.com/content_130877197956
+http://www.epinions.com/content_133720411780
+http://www.epinions.com/content_134704107140
+http://www.epinions.com/content_135610928772
+http://www.epinions.com/content_141810372228
+http://www.epinions.com/content_142006718084
+http://www.epinions.com/content_143743749764
+http://www.epinions.com/content_145566699140
+http://www.epinions.com/content_145843064452
+http://www.epinions.com/content_147829591684
+http://www.epinions.com/content_147926912644
+http://www.epinions.com/content_148225363588
+http://www.epinions.com/content_148939771524
+http://www.epinions.com/content_150332542596
+http://www.epinions.com/content_1545314436
+http://www.epinions.com/content_156953775748
+http://www.epinions.com/content_16170978948
+http://www.epinions.com/content_165598629508
+http://www.epinions.com/content_169937374852
+http://www.epinions.com/content_170391539332
+http://www.epinions.com/content_171825401476
+http://www.epinions.com/content_173357174404
+http://www.epinions.com/content_178640031364
+http://www.epinions.com/content_179145510532
+http://www.epinions.com/content_180093619844
+http://www.epinions.com/content_181924695684
+http://www.epinions.com/content_183184887428
+http://www.epinions.com/content_183190982276
+http://www.epinions.com/content_184056974980
+http://www.epinions.com/content_184329866884
+http://www.epinions.com/content_184710696580
+http://www.epinions.com/content_186238799492
+http://www.epinions.com/content_20573818500
+http://www.epinions.com/content_21008977540
+http://www.epinions.com/content_21454098052
+http://www.epinions.com/content_22407712388
+http://www.epinions.com/content_22440873604
+http://www.epinions.com/content_2585043076
+http://www.epinions.com/content_2880086148
+http://www.epinions.com/content_36469378692
+http://www.epinions.com/content_38602968708
+http://www.epinions.com/content_3878985860
+http://www.epinions.com/content_3912933508
+http://www.epinions.com/content_40123534980
+http://www.epinions.com/content_40851050116
+http://www.epinions.com/content_4114522244
+http://www.epinions.com/content_43852271236
+http://www.epinions.com/content_47318797956
+http://www.epinions.com/content_48752856708
+http://www.epinions.com/content_52617514628
+http://www.epinions.com/content_53841464964
+http://www.epinions.com/content_57329290884
+http://www.epinions.com/content_60369833604
+http://www.epinions.com/content_63067295364
+http://www.epinions.com/content_66865172100
+http://www.epinions.com/content_67130003076
+http://www.epinions.com/content_67688304260
+http://www.epinions.com/content_67950251652
+http://www.epinions.com/content_74777726596
+http://www.epinions.com/content_74933636740
+http://www.epinions.com/content_75998006916
+http://www.epinions.com/content_76819041924
+http://www.epinions.com/content_77948817028
+http://www.epinions.com/content_80807431812
+http://www.epinions.com/content_88887824004
+http://www.epinions.com/content_89677860484
+http://www.epinions.com/content_91803127428
+http://www.epinions.com/content_92074708612
+http://www.epinions.com/content_92930084484
+http://www.epinions.com/content_93024784004
+http://www.epinions.com/content_94181953156
+http://www.epinions.com/content_95047552644
+http://www.epinions.com/content_95961517700
+http://www.epinions.com/content_96655937156
+http://www.epinions.com/game-Software-All-Gameboy-Pokemon_Gold/display_~reviews
+http://www.epinions.com/help/faq/?show=faq_earnings
+http://www.epinions.com/hmgd-review-1F49-4CA207B-39D32A54-prod1
+http://www.epinions.com/inst-review-120-11F157CF-39775E60-prod2
+http://www.epinions.com/kifm-B-BEquip-Nursery-Bassinets-Arms_Reach_Co-Sleeper_Bedside/display_~reviews/pp_~1/sort_~date/sort_dir_~des/sec_~opinion_list
+http://www.epinions.com/kifm-Safety-Bed_Rails-Safety_1st_Home___Travel_Bed_Rail/display_~reviews
+http://www.epinions.com/kifm-Topics-All-Health/show_~recent_content
+http://www.epinions.com/kifm-review-3224-2709FC5-38C420A6-prod9
+http://www.epinions.com/kifm-review-4B1-E2C7A7D-38ECE3AF-prod4
+http://www.epinions.com/kifm-review-4DE6-3361A664-3A09C8DF-prod6
+http://www.epinions.com/kifm-review-5320-D598550-38EAC505-prod2
+http://www.epinions.com/kifm-review-5D2-3C578BE-3A24BBE6-prod1
+http://www.epinions.com/kifm-review-7E61-13E4382B-38FB86C0-prod4
+http://www.epinions.com/member/?show=news&sub=032201transcript
+http://www.epinions.com/musc-review-34B4-31FEBA00-3A5926A1-prod2/tk_~CB008.1.3
+http://www.epinions.com/musc_mu-109194
+http://www.epinions.com/musc_mu-393064/display_~reviews
+http://www.epinions.com/musc_mu-83103/display_~reviews
+http://www.epinions.com/pr-Coffee-La_Torcaza_Estate_Traditional_Washed-Green
+http://www.epinions.com/pr-Kirby_Air_Ride_for_GameCube
+http://www.epinions.com/pr-Nyko_Air_Flo_EX_For_PlayStation_2_80501_Game_Pad
+http://www.epinions.com/sprt-All-Exercise_Equipment/show_~recent_content
+http://www.epinions.com/sprt-Golf-Nicklaus_Air_Max_Driver/display_~reviews
+http://www.epinions.com/sprt-Strength-Bowflex_Power_Pro_XT/display_~reviews
+http://www.epinions.com/sprt-Topics-All-Exercise_Equipment-How_To/show_~recent_content
+http://www.epinions.com/sprt-review-3FB9-108D6B71-3991D090-prod1
+http://www.epinions.com/sprt-review-5BAF-118C9EA0-39EA525C-prod5
+http://www.epinions.com/srvc-review-2BFD-6576A1A-3871627C-bd3
+http://www.epinions.com/well-review-7AE5-B57CE9E-396682D9-prod3
+http://www.epionline.org/study_detail.cfm?sid=40
+http://www.episcopalchurch.org/hr_54324_ENG_HTM.htm
+http://www.episcopalchurch.org/hr_54324_ENG_Print.html
+http://www.episcopalian.org/efac/lit.html
+http://www.episcopalstmatthew.org/sunday_school.html
+http://www.epistemelinks.com/Edge/Essays/lt_selecting.asp
+http://www.epitonic.com/genres/punk_5.html
+http://www.eplans.com/luxury-home-plans/
+http://www.epmlaw.com/serious_personal_injury.html
+http://www.epn-online.com/index.php?content=page&page=13667
+http://www.epodunk.com/cgi-bin/genInfo.php?locIndex=1819
+http://www.epolitix.com/EN/ForumBriefs/200409/80c2e441-82a0-4af0-8739-5a65eb17d9fa.htm
+http://www.epowhost.com/faq.html
+http://www.epox.com.tw/eng/news_content.php?serno=24
+http://www.epoxysystems.com/
+http://www.epp-ed.org/Policies/pargu/02-economy_en.asp
+http://www.eppc.org/publications/pubID.1964/pub_detail.asp
+http://www.epri.com/newsletter.asp?issueid=231401&marketnid=207813
+http://www.epri.com/newsletter.asp?issueid=231401&marketnid=207813&targetnid=221745&value=01T084.2
+http://www.eprints.org/self-faq/
+http://www.epromos.com/ProductIndex/BrowseCategory.jhtml?categoryId=2069
+http://www.epropertygold.com/advicecenter/selling/getbestprice.cfm
+http://www.eps.ac.uk/members/rules.html
+http://www.epsa.org/forms/documents/DocumentFormPublic/view?id=30630000000B
+http://www.epsa.uq.edu.au/?page=7587
+http://www.epsaweb.org/primary_education_in_member_states.htm
+http://www.epsg.org.uk/meetings/leaves/
+http://www.epson.co.uk/products/inkjet_printers/product_spec/Stylus_Pro_4000.htm
+http://www.epson.co.uk/products/inkjet_printers/product_spec/Stylus_Pro_7600.htm
+http://www.epson.co.uk/products/inkjet_printers/product_spec/Stylus_Pro_9600.htm
+http://www.epson.com.au/products/pro_graphics/SP10600UC_specs.asp
+http://www.epson.com.au/products/pro_graphics/stylusPro4000_specs.asp
+http://www.epson.com.au/products/pro_graphics/stylusPro7600_specs.asp
+http://www.epson.com.au/products/pro_graphics/stylusPro9600_specs.asp
+http://www.epsscentral.info/knowledgebase/articles/timetoknowledge/view
+http://www.epsscentral.info/knowledgebase/desdev/epiplexsuite/epioverview/view
+http://www.epsscentral.info/knowledgebase/related/proceedingschi
+http://www.epsscentral.info/knowledgebase/reportsstudies/3csofcritical/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/aisforamazon/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/bringingdead/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/givinggood/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/informationseeking/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/itexchange/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/keystoimproving/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/makingthecase/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/onlinedrugstores/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/onlinefinancialservices/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/reachingout/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/sitedesignasa
+http://www.epsscentral.info/knowledgebase/reportsstudies/theholidaysonline/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/webpagedesignimplications/view
+http://www.epsscentral.info/knowledgebase/reportsstudies/workingtogether/view
+http://www.eqdruids.com/reference/tactics/tactics_advanced.htm
+http://www.eqgroup.com/Library/court.tn.2001.htm
+http://www.eqos.com/casestudy_bbuy.shtml
+http://www.equality-network.org/Glossary.shtml
+http://www.equaljusticeworks.org/faq/
+http://www.equaljusticeworks.org/faq/index.php?print=1
+http://www.equestrian.co.uk/ShowJumping/OlympiaInternationalShowJ.html
+http://www.equine-world.co.uk/topic.asp?TOPIC_ID=8150&FORUM_ID=28&CAT_ID=6&Topic_Title=In+hand+Showing&Forum_Title=Showing
+http://www.equineadvertiser.co.uk/tack_and_equipment1.htm
+http://www.equinemotifs.com/
+http://www.equineox.com/technology.html
+http://www.equipped.com/
+http://www.equipped.com/shot_show_2002.htm
+http://www.equipped.org/
+http://www.equisearch.com/care/illness/choke010404/
+http://www.equisearch.com/care/illness/eqcolic287/
+http://www.equisearch.com/care/nutrition/eqbranmash497/
+http://www.equisearch.com/care/nutrition/eqfeed3132/
+http://www.equisearch.com/care/nutrition/eqsoak480/
+http://www.equisearch.com/care/nutrition/specialneedsfeeding112397/
+http://www.equisearch.com/community/chattrans/eqfarrier1703/
+http://www.equisearch.com/community/chattrans/eqfencing1940/
+http://www.equisearch.com/community/chattrans/eqhayes2660/
+http://www.equisearch.com/equiwire/results/eqtravers2721/
+http://www.equisearch.com/equiwire/results/sept-oct03/belmont090603/
+http://www.equisearch.com/farm/arenas/eqchat991/
+http://www.equisearch.com/farm/feed/eqbeetpulp660/
+http://www.equisearch.com/farm/stable/eqbarn915/
+http://www.equisearch.com/magazines/Equus/mounting_120503/
+http://www.equisearch.com/magazines/practicalhorseman/straighten_080803/
+http://www.equisearch.com/sports/dressage/eqfeed1805/
+http://www.equisearch.com/sports/driving/driving021603/
+http://www.equisearch.com/tack/eq9points447/
+http://www.equity.psu.edu/framework/institutional.asp
+http://www.equityapartments.com/content/militaryhousing.asp
+http://www.equiworld.net/uk/horsecare/Breeds/morab/
+http://www.equiworld.net/uk/training/foundation.htm
+http://www.er.doe.gov/production/grants/Fr01_03.html
+http://www.era.anthropology.ac.uk/Era_Resources/Era/Kinship/kinSpecification.html
+http://www.era.anthropology.ac.uk/Era_Resources/Era/Stirling/Thesis/StirlingThesis_1.html
+http://www.era.com/erasell/answers-ssp.html
+http://www.eranova.com/about.htm
+http://www.erasmatazz.com/library/Miscellania/AustraliaTrip/Australia_Trip.html
+http://www.erasmatazz.com/library/Politics/A%20conclusion%20of%20sorts.html
+http://www.erblist.com/erbmania/tangor/ephiphany.html
+http://www.erbook.net/
+http://www.erbook.net/enter.htm
+http://www.erbook.net/ermedcat.htm
+http://www.erbook.net/even_more_er_questions_part2.htm
+http://www.erbook.net/more_advice_on_%20becoming_an_ER_doctor_part2.htm
+http://www.ercim.org/publication/Ercim_News/enw39/van_schuppen.html
+http://www.ercrugby.co.uk/cup/25_4207.php
+http://www.erdc.usace.army.mil/pls/erdcpub/!www_fact_sheet.research_page?ps_rp_numb=57742&tmp_Main_Topic=51594&page=All
+http://www.erdc.usace.army.mil/pls/erdcpub/!www_fact_sheet.research_page?ps_rp_numb=57742&tmp_Main_Topic=51594&page=PRODUCTS&page=USERS&page=BENEFITS
+http://www.ereader.com/product/book/excerpt/10950
+http://www.erenkrantz.com/Words/UntitledSnapshot2.shtml
+http://www.eresonant.com/pages/publications/atc1997.html
+http://www.erexchange.com/articles/db/845A640E67C5486BA15400D2AA92036D.asp
+http://www.ergoindemand.com/
+http://www.ergonomics.org.uk/society/external/press03.htm
+http://www.ergonomics4schools.com/lzone/workspace.htm
+http://www.ergospec.com/products/office_furniture/workstations_adj_tables/electric_height.html
+http://www.ergoweb.com/news/detail.cfm?id=335
+http://www.ergoweb.com/training/seminar/
+http://www.erh.noaa.gov/er/pit/branick2.html
+http://www.erh.noaa.gov/ersd/okx.htm
+http://www.ericdigests.org/1992-1/hispanic.htm
+http://www.ericdigests.org/1992-5/reform.htm
+http://www.ericdigests.org/1996-3/in.htm
+http://www.ericdigests.org/1999-1/asian.html
+http://www.ericdigests.org/1999-2/latina.htm
+http://www.ericdigests.org/2002-3/music.htm
+http://www.ericdigests.org/2003-4/judicial-review.html
+http://www.ericdigests.org/pre-927/soviet.htm
+http://www.ericdsnider.com/view.php?srkey=252
+http://www.ericfrancis.com/articles/death_penalty.html
+http://www.ericfrancis.com/essays/state.html
+http://www.erickerickson.org/blog/index.php/category/church-revitalization/
+http://www.ericlee.me.uk/archive/000100.html
+http://www.ericmackonline.com/emo/emonline.nsf/dx/dr-radicati-responds-sort-of
+http://www.ericmackonline.com/ica/blogs/emonline.nsf/dx/sorry-toshiba-Im-not-yabhtu?opendocument&comments
+http://www.ericmeyeroncss.com/bonus/render-mode.html
+http://www.ericsecho.org/scottish.htm
+http://www.ericsson.com/press/20050422-073048.html
+http://www.ericzorn.com/mailbag/wrigley/
+http://www.erie.gov/executive110504.phtml
+http://www.eriebar.org/
+http://www.erikbenson.com/
+http://www.erin.utoronto.ca/~w3mat132/announcements.html
+http://www.erinoconnor.org/reviews/swade.shtml
+http://www.eriposte.com/election04/appalling_polling.htm
+http://www.erisk.com/ResourceCenter/Regulation/MoneylaunderingAreregulat.asp
+http://www.erlang.com/design.html
+http://www.ero.govt.nz/Publications/pubs2002/Montessori.htm
+http://www.erobertparker.com/info/rparker.asp
+http://www.erosboutique.com/
+http://www.erowid.org/chemicals/ayahuasca/ayahuasca_culture3.shtml
+http://www.erowid.org/chemicals/caffeine/caffeine_effects.shtml
+http://www.erowid.org/general/about/about_software.shtml
+http://www.erowid.org/general/mentions/2001_halpern_amjpsyc.shtml
+http://www.erpcsales.com/faq.cfm
+http://www.erranet.org/Events/ERRA/2003/investmentconference
+http://www.errolmorris.com/film/fow_glossary.html
+http://www.ers.dol.govt.nz/goodfaith/code_print.html
+http://www.ers.dol.govt.nz/help/ers.asp
+http://www.ers.dol.govt.nz/holidays/faqs.html
+http://www.ers.usda.gov/Briefing/FarmPolicy/background.htm
+http://www.ers.usda.gov/Briefing/SoybeansOilCrops/
+http://www.ersnet.org/ers/show/default.aspx?id_attach=9127
+http://www.ert.be/pd/pdc/endc03.htm
+http://www.ertnet.demon.co.uk/RightToKnow.html
+http://www.erubberstamp.com/products.htm
+http://www.erudit.org/revue/meta/1999/v44/n1/002224ar.html
+http://www.erunda.org/hooey/2003/09/going-going-here.html
+http://www.es.flinders.edu.au/~mattom/ShelfCoast/notes/chapter17.html
+http://www.esa.int/SPECIALS/Space_Shuttle_Columbia/SEMY2O1A6BD_0.html
+http://www.esa.int/esaCP/ASE4YZ9KOYC_FeatureWeek_0.html
+http://www.esa.int/esaCP/ESA6L7ZPD4D_Protecting_0.html
+http://www.esa.int/esaCP/ESAQRHPZ9NC_index_0.html
+http://www.esa.int/esaCP/Pr_14_2003_i_EN.html
+http://www.esa.int/esaCP/Pr_17_1999_p_EN.html
+http://www.esa.int/esaCP/Pr_27_2005_p_EN.html
+http://www.esa.int/esaCP/Pr_35_2003_p_EN.html
+http://www.esa.int/esaCP/Pr_3_2003_i_EN.html
+http://www.esa.int/esaCP/SEMEGDS1VED_Benefits_0.html
+http://www.esa.int/esaCP/SEMEGDS1VED_index_0.html
+http://www.esa.int/esaCP/SEMF0K0DU8E_Benefits_0.html
+http://www.esa.int/esaCP/SEMF0K0DU8E_index_0.html
+http://www.esa.int/esaTE/SEM90ZR1VED_index_0.html
+http://www.esa.int/esapub/br/br114/br114tec.htm
+http://www.esa.int/esapub/bulletin/bullet88/daman88.htm
+http://www.esa.int/esapub/bulletin/bullet88/steve88.htm
+http://www.esa.int/export/esaCP/Pr_6_2002_i_EN.html
+http://www.esa.int/export/esaEO/ESA6L7ZPD4D_index_0.html
+http://www.esa.int/export/esaHS/ESAGO90VMOC_astronauts_2.html
+http://www.esa.org/benthic/benthicabstracts.htm
+http://www.esaa.com.au/store/page.pl?id=1492
+http://www.esai.org/
+http://www.esajournals.org/esaonline/?request=get-abstract&issn=0012-9658&volume=080&issue=06&page=2064
+http://www.esajournals.org/esaonline/?request=get-document&issn=0012-9615&volume=075&issue=02&page=0231
+http://www.esajournals.org/esaonline/?request=get-document&issn=0012-9658&volume=080&issue=06&page=1806
+http://www.esajournals.org/esaonline/?request=get-document&issn=0012-9658&volume=080&issue=06&page=2064
+http://www.esajournals.org/esaonline/?request=get-document&issn=0012-9658&volume=083&issue=02&page=0480
+http://www.esato.com/archive/t.php/t-74042
+http://www.esato.com/board/viewtopic.php?topic=74042&r=a
+http://www.esato.com/news/article.php/id=402
+http://www.esato.com/news/article.php/id=428
+http://www.esb.ie/main/news_events/press_release247.jsp
+http://www.esbvm.org.uk/oxford2000.htm
+http://www.esc.mtu.edu/EarthWeek2003/houseTours.htm
+http://www.esc1.net/mcec.asp
+http://www.esc2000.com/
+http://www.escan.org.uk/
+http://www.escape-co.com/budget_preparedness.htm
+http://www.escapeartist.com/International_Living/French_Riviera.html
+http://www.escapeartist.com/International_Living/Languedoc.html
+http://www.escapeartist.com/Offshore_Webhosting/Making_Money.html
+http://www.escapeartist.com/e_Books/Ireland_Report/
+http://www.escapeartist.com/efam/38/offshore_companies.html
+http://www.escapeartist.com/efam/56/Istanbul_Travel.html
+http://www.escapeartist.com/efam/57/Authors_Wanted.html
+http://www.escapeartist.com/efam/57/Making_Money.html
+http://www.escapeartist.com/efam34/ESL_teaching_overseas.html
+http://www.escapeartist.com/efam6/Investing_in_Panama.html
+http://www.escapeartist.com/expatriate/expatriate1.htm
+http://www.escapeartist.com/expatriate/expatriate2.htm
+http://www.escapeartist.com/expatriate/insurance.htm
+http://www.escapeartist.com/international/0400_ireland.html
+http://www.escapeartist.com/international/ireland_0300.html
+http://www.escapeartist.com/moving/moving.htm
+http://www.escapeartist.com/transatlantic/magazine4.htm
+http://www.escapefromknab.com/educational-bottom.html
+http://www.escapehomes.com/cities/Sea_Ranch.htm
+http://www.escapehomes.com/main.aspx?Tabid=46&EscapeTownID=157
+http://www.escapehomes.com/main.aspx?tabid=31&ListingID=5905
+http://www.escc.se/misc/hostels.html
+http://www.escmid.org/sites/science/meetings/calendar/index.asp
+http://www.escort.sexcia.com/toronto.html
+http://www.escrs.org/eurotimes/September2003/supplement/Good_technique.asp
+http://www.escrutgers.com/publications/howto/FS607.htm
+http://www.escusd.k12.ca.us/mission_trail/SJBautista/MissionSanJuanBautista.html
+http://www.esd.mun.ca/~gac/PUBLICAT/editors.html
+http://www.esd.ornl.gov/PGG/HERMES/description.html
+http://www.esd.ornl.gov/ern/embyr/embyr.html
+http://www.esd112.org/workshops/elementk_courses.html
+http://www.esdesign.com/projects_comm_page2.htm
+http://www.esf.edu/catalog/WPE.htm
+http://www.esf.edu/newspubs/news/2005/05.03.richter.htm
+http://www.esf.edu/resorg/rooseveltwildlife/Roosevelt.htm
+http://www.esf.org/esf_domain_home.php?section=2&language=0&domain=1
+http://www.esgt.org/president.html
+http://www.eshop.msn.com/marketplace.aspx?pmpType=1&mpId=0&pcId=7714&catId=681&page=4
+http://www.eshre.com/emc.asp?pageId=435
+http://www.eshre.com/emc.asp?pageId=459
+http://www.eshre.com/emc.asp?pageId=627
+http://www.esi-europe.com/case_studies/j_siemens.asp
+http://www.esi-intl.com/Public/consulting/index.asp
+http://www.esi-topics.com/breast-cancer/interviews/dr-khandan-keyomarsi.html
+http://www.eskimo.com/~bpentium/articles/thegates.html
+http://www.eskimo.com/~leiba/history.html
+http://www.eskimo.com/~rkj/e.htm
+http://www.eskimo.com/~robla/politics/condorcet.html
+http://www.eslarp.uiuc.edu/ibex/archive/IDOT/idot26.htm
+http://www.eslcafe.com/forums/job/viewtopic.php?t=12326
+http://www.eslcafe.com/forums/job/viewtopic.php?t=16575
+http://www.eslcafe.com/forums/job/viewtopic.php?t=23135
+http://www.eslcafe.com/forums/job/viewtopic.php?t=23524
+http://www.eslcafe.com/forums/job/viewtopic.php?t=24273
+http://www.eslcafe.com/forums/job/viewtopic.php?t=25510
+http://www.eslcafe.com/forums/job/viewtopic.php?t=25523
+http://www.eslcafe.com/forums/job/viewtopic.php?t=26097
+http://www.eslcafe.com/jobinfo/asia/sefer.cgi?display:1058657421-29133.txt
+http://www.eslcafe.com/jobinfo/europe/sefer.cgi?display:960556612-26372.txt
+http://www.eslcity.com/english/?doc=bbs/gnuboard.php&bo_table=games&page=1&wr_id=44
+http://www.eslnotes.com/movies/html/sleeper.html
+http://www.eslpartyland.com/teachers/grammar/Simplepresandprog.htm
+http://www.esmagazine.com/CDA/ArticleInformation/features/BNP__Features__Item/0,2503,83357,00.html
+http://www.esmo.org/SummerConference/patientSeminar.html
+http://www.eso.org/outreach/info-events/hale-bopp/comet-hale-bopp-summary-mar07-97-rw.html
+http://www.eso.org/outreach/press-rel/pr-1994/pr-16-94.html
+http://www.eso.org/outreach/press-rel/pr-2000/phot-26-00.html
+http://www.eso.org/outreach/press-rel/pr-2000/phot-27-00.html
+http://www.eso.org/outreach/press-rel/pr-2001/pr-10-01.html
+http://www.eso.org/outreach/press-rel/pr-2001/pr-28-01.html
+http://www.eso.org/outreach/press-rel/pr-2003/pr-18-03.html
+http://www.eso.org/outreach/press-rel/pr-2003/pr-26-03.html
+http://www.espac.org/csi_pages/predudiced_discredited.html
+http://www.espace.gc.ca/asc/eng/apogee/2003/09_interview.asp
+http://www.espc.co.uk/news_data/releases/ESPC/2000/PR_2000.asp
+http://www.espen.com/links.htm
+http://www.espen.com/papers/ifip.htm
+http://www.esperanto.ie/english/zaft/zaft(1).htm
+http://www.espnstar.com/facup/facup_newsdetail_1414047.html
+http://www.espnstar.com/studio/studio_coldetail_1037018.html
+http://www.espnstar.com/studio/studio_coldetail_1383318.html
+http://www.espnstar.com/studio/studio_coldetail_887805.html
+http://www.espnstar.com/studio/studio_coldetail_911389.html
+http://www.espressobusiness.com/
+http://www.espressotec.com/iccoffee215.asp
+http://www.esrb.org/about_updates.asp
+http://www.esrc.ac.uk/ESRCContent/news/june04-6.asp
+http://www.esrf.fr/NewsAndEvents/PressReleases/sorel/
+http://www.esri.go.jp/en/archive/bun/abstract/bun165-e.html
+http://www.esri.ie/content.cfm?t=Irish%20Economy&mid=4
+http://www.esrnational.org/guide.htm
+http://www.ess.ucla.edu/faculty/sornette/
+http://www.essaydepot.com/essayme/508/index.php
+http://www.essayedge.com/business/admissions/interview.shtml
+http://www.essayedge.com/college/essayadvice/course/lfour_tone.shtml
+http://www.essayedge.com/graduate/essayadvice/course/lo_flaws.shtml
+http://www.essayedge.com/medical/essayadvice/course/residency.shtml
+http://www.essayproof.net/museum/articles/auctioncats.html
+http://www.essaysample.com/essay/000937.html
+http://www.essaysample.com/essay/001609.html
+http://www.essaysample.com/essay/002142.html
+http://www.essaysample.com/essay/003658.html
+http://www.essaytown.net/boston-tea-party_essays_papers.html
+http://www.essaytown.net/glass-ceiling_essays_papers.html
+http://www.essaytown.net/soviet-union_essays_papers.html
+http://www.essence.com/essence/themix/takebackthemusic/whattheyresaying.html
+http://www.essent-finance.nl/knowledge/bg4.jsp
+http://www.essential-skills.com/RAPPORT.html
+http://www.essential-training.co.uk/reviews.htm
+http://www.essentialbaby.com.au/CFForum/viewmessages.cfm?Forum=27&Topic=138498
+http://www.essentialbaby.com.au/CFForum/viewmessages.cfm?forum=64&topic=138271
+http://www.essentialbaby.com.au/GettingPregnant/Preparing/YourBody/EatingHabits.cfm
+http://www.essentialbaby.com.au/Pregnancy/Complications.cfm
+http://www.essentialschools.org/cs/resources/view/ces_res/137
+http://www.essentialschools.org/cs/resources/view/ces_res/178
+http://www.essentialschools.org/cs/resources/view/ces_res/225
+http://www.essentialschools.org/cs/resources/view/ces_res/74
+http://www.essentialschools.org/cs/resources/view/ces_res/98
+http://www.essentialsuede.com/lyricshm.html
+http://www.essentialtremor.org/discus_adult/messages/9/32.html?1107325525
+http://www.essex.ac.uk/ccfea/people/members.htm
+http://www.essex.ac.uk/centres/euro/news.htm
+http://www.essex.ac.uk/economics/department/new-ug04.shtm
+http://www.essex.ac.uk/filmstudies/news_and_events/mike_leigh.htm
+http://www.essex.ac.uk/methods/Archive/2004%20website/application%20procedure.htm
+http://www.essex.ac.uk/overseas/
+http://www.essex.ac.uk/personnel/Pol&Proc/Grading/c&sfactors.htm
+http://www.essex.ac.uk/programmespecs/oneyear.asp?prog=MA++W6103505
+http://www.essex.ac.uk/programmespecs/threeyear.asp?prog=BA++V1W6++05
+http://www.essex.ac.uk/scra/constitution/default.htm
+http://www.essex.ac.uk/theatre/students/
+http://www.essexjunction.org/pc052004.htm
+http://www.essexpast.co.uk/essexreview/notes1.html
+http://www.essexstudent.com/main/union/membershipservices/ESCA/getmore/degreerelevantopps
+http://www.essortment.com/in/Careers.How-To/
+http://www.essp.be/egnos_receivers.htm
+http://www.estancialajolla.com/careers/index.asp
+http://www.esterline.com/investor/news2001/n-E252_01.stm
+http://www.estevanmassagetherapy.com/doula.html
+http://www.estheryoga.com/vanda.html
+http://www.estss.org/events/tsunam.htm
+http://www.esva.net/~rwest/trouble.html
+http://www.esvon.com/pg/products/p_cl_auto/
+http://www.eta.co.uk/news/newsview.asp?n=306
+http://www.etan.org/et2001c/december/01-8/08were.htm
+http://www.etan.org/et2004/january/18-24/21group.htm
+http://www.etan.org/et99c/october/01-9/3drmurp.htm
+http://www.etan.org/news/2003a/01senate.htm
+http://www.etan.org/news/2003a/10col.htm
+http://www.etch.com/tourip.cfm
+http://www.etci.ie/
+http://www.eteamz.com/gapearlsbasketball/
+http://www.eteamz.com/hllbb/
+http://www.eternalegypt.org/EternalEgyptWebsiteWeb/HomeServlet?ee_website_action_key=action.display.topic.details&language_id=1&trait_item_id=10000031
+http://www.eternalnight.co.uk/fiction/2004s/scentofthewolf-sample.html
+http://www.etesters.com/search/product/listAll.cfm/keyword/Stand_Alone
+http://www.etext.org/Zines/Quanta/circumstances.html
+http://www.etext.org/Zines/Quanta/rules.html
+http://www.etf.bg.ac.yu/Fakultet/donacije.html?lang=en
+http://www.ethailand.com/index.php?id=1774
+http://www.ethanwiner.com/AdultBeg.html
+http://www.ethanzuckerman.com/blog/
+http://www.ethanzuckerman.com/blog/?cat=5
+http://www.ethanzuckerman.com/blog/?cat=6
+http://www.ethanzuckerman.com/blog/?p=85
+http://www.ethanzuckerman.com/blog/index.php?paged=2
+http://www.ethericrainengineering.info/clincher/o_clincher.html
+http://www.ethicalatheist.com/docs/questions_for_god.html
+http://www.ethicalcorp.com/labour2003/programme.shtml
+http://www.ethicalcorporation.com/content.asp?ContentID=3405
+http://www.ethicaltraveler.com/aid_disp.php?disp=3
+http://www.ethics-network.org.uk/Cases/previous/cost.htm
+http://www.ethics-network.org.uk/Course/courses.htm
+http://www.ethics.harvard.edu/welcome_practical.php
+http://www.ethics.org.au/things_to_do/whats_new.asp
+http://www.ethicsclassroom.info/
+http://www.ethicsclassroom.info/index.asp
+http://www.ethicsforschools.org/suffering/why.htm
+http://www.ethos.org/
+http://www.eths.k12.il.us/dept/appliedarts/
+http://www.etiquettehell.com/businessetiquette/PlainBadBusiness/ebusinessarc1999.htm
+http://www.etiquettehell.com/everydayetiquette/RoadRage/roadrage2003arc.htm
+http://www.etiquettehell.com/everydayetiquette/babyshwr/ebabyswrarc2000-3.htm
+http://www.etiquettehell.com/everydayetiquette/guests/guests2000arc.htm
+http://www.etiquettehell.com/weddingetiquette/guests/eguests2002arc.htm
+http://www.etmachinist.com/nov_dec04/product.htm
+http://www.etn.nl/frq/fusiedub.htm
+http://www.etn.nl/frq/fusiesnn.htm
+http://www.etni.org.il/holidays/happening.html
+http://www.etnj.com/tatshack/tattoo/books-a-z.html
+http://www.eto.org.uk/faq/faq04.htm
+http://www.etoile.co.uk/Muse/020215.html
+http://www.etoile.co.uk/Muse/020404.html
+http://www.etoiline.com/dreamer/dev.html
+http://www.etown.edu/vl/eurunion.html
+http://www.etown.edu/vl/globenv.html
+http://www.etprofessional.com/modules.php?name=Content&pa=showpage&pid=33
+http://www.etr.org/recapp/column/column200303.htm
+http://www.etr.org/recapp/practice/youthskills200403.htm
+http://www.etretailbiz.com/Jan2003/guest2.html
+http://www.ets.org/disability/adhdplcy.html
+http://www.ets.org/regions/dco/castle.html
+http://www.ets.org/research/pic/twsec2.html
+http://www.ets.org/research/pic/twsec3.html
+http://www.ets.org/research/pic/v8n1a.html
+http://www.etsc.be/documents/rep_road2.htm
+http://www.etsu.com/activate/closure.htm
+http://www.etsu.edu/wrcetsu/Wmwrdi5.htm
+http://www.etuc.org/a/1176
+http://www.etuc.org/a/237
+http://www.eu-energy.com/Nuclear%20package.html
+http://www.eu-exams.com/eu_institution_overview.html
+http://www.eu-newgov.org/datalists/project_detail.asp?Project_ID=22
+http://www.eu-romani.org/nupepet.htm
+http://www.eu2002.dk/news/news_read.asp?iInformationID=25834
+http://www.eu2004.ie/templates/news.asp?sNavlocator=66&language_id=1&list_id=271
+http://www.eu2005.lu/en/actualites/communiques/2005/02/22us-conf/
+http://www.eubusiness.com/East_Europe/050623120856.d39ad1iw
+http://www.eubusiness.com/East_Europe/050623142344.e9yr1twy
+http://www.eubusiness.com/East_Europe/enlargement.2005-06-20/view
+http://www.eubusiness.com/East_Europe/sex-trade.2005-06-22/view
+http://www.eubusiness.com/East_Europe/turkey.2005-06-22
+http://www.eubusiness.com/Energy/050623125841.dvqup3u0/view
+http://www.eubusiness.com/Finance/050624094302.f4883mvl
+http://www.eubusiness.com/Finance/050626032249.0gset0n3
+http://www.eubusiness.com/Finance/9819
+http://www.eubusiness.com/Finance/index_html?b_start:int=60
+http://www.eubusiness.com/Homepage_Breaking_News/23359
+http://www.eubusiness.com/Institutions/050623153624.gb59uokg
+http://www.eubusiness.com/Institutions/050624090310.wdrvwply/view
+http://www.eubusiness.com/Institutions/050624112924.cz8dbpxp/view
+http://www.eubusiness.com/Institutions/050626025147.u19weebe
+http://www.eubusiness.com/Newswire/plonearticle.2005-06-03.6389895181
+http://www.eubusiness.com/Rd/network.2005-06-23
+http://www.eubusiness.com/afp/050124132711.8n3ajd1h/view
+http://www.eubusiness.com/go/www.meganobeirne.com/joyce-2004.htm
+http://www.eubusiness.com/imported/1999/02/10250
+http://www.eubusiness.com/imported/1999/02/10250/
+http://www.eubusiness.com/imported/2001/11/63162
+http://www.eubusiness.com/imported/2001/11/63162/
+http://www.eubusiness.com/imported/2003/03/105845
+http://www.eubusiness.com/imported/2003/05/109652/
+http://www.eubusiness.com/press/ueapme.2005-06-22
+http://www.eubusiness.com/topics/Constitution/index_html?b_start:int=20
+http://www.eubusiness.com/topics/Employment/ind.2005-01-21/view
+http://www.eubusiness.com/topics/Food/EUNews.2004-05-26.3259
+http://www.eubusiness.com/topics/Institutions/
+http://www.eubusiness.com/topics/Institutions/index_html?b_start:int=20
+http://www.eubusiness.com/topics/Portugal/index_html?b_start:int=20
+http://www.eubusiness.com/topics/Rd/budget.2005-02-07
+http://www.eubusiness.com/topics/Rd/budget.2005-02-07/view
+http://www.eubusiness.com/topics/SMEs/lisbon.2005-02-05/view
+http://www.euconferences.com/chemicals04_agenda.htm
+http://www.euconferences.com/chemicals04_speakers.htm
+http://www.euconferences.com/chemicalsmanagement04/day2presentations.htm
+http://www.eufic.org/gb/food/pag/food04/food041.htm
+http://www.eufic.org/gb/food/pag/food09/food092.htm
+http://www.euforbih.org/links.htm
+http://www.eugeneglassschool.org/
+http://www.eugeneglassschool.org/m_dupille.cfm
+http://www.eugrants.org/choices_mdetail2.asp?id=87
+http://www.euireland.ie/news/
+http://www.euireland.ie/news/echo/
+http://www.eumas.org/2003/venue.html
+http://www.eun.org/ww/en/pub/comenius/about/comenius_action_1__school_part.htm
+http://www.euphorochrome.com/photoblog/index.php?p=131
+http://www.eupolitix.com/EN/Interviews/200309/4f0dc049-33ec-4f24-a0d0-9fd2be364cae.htm
+http://www.euprojects.net/ebygov/team.html
+http://www.euractiv.com/Article?tcmuri=tcm:29-110149-16&type=Analysis
+http://www.euractiv.com/Article?tcmuri=tcm:29-117775-16&type=News
+http://www.euractiv.com/Article?tcmuri=tcm:29-128499-16&type=Analysis
+http://www.euractiv.com/Article?tcmuri=tcm:29-129587-16&type=LinksDossier
+http://www.euractiv.com/Article?tcmuri=tcm:29-131147-16&type=LinksDossier
+http://www.euractiv.com/Article?tcmuri=tcm:29-131692-16&type=News
+http://www.euractiv.com/Article?tcmuri=tcm:29-133371-16&type=LinksDossier
+http://www.euractiv.com/Article?tcmuri=tcm:29-140197-16&type=News
+http://www.euractiv.com/Article?tcmuri=tcm:29-140336-16&type=Interview
+http://www.eurasianet.org/departments/insight/articles/eav082703.shtml
+http://www.eurasianet.org/departments/insight/articles/pp010305.shtml
+http://www.eurasianet.org/departments/rights/articles/eav020303.shtml
+http://www.eurekacyclists.co.uk/HTMLFiles/homePage.htm
+http://www.eurekalert.org/aaasnewsroom/
+http://www.eurekalert.org/features/doe/2002-12/dgi-ssd122602.php
+http://www.eurekalert.org/pub_releases/2003-03/ecrd-ab032703.php
+http://www.eurekalert.org/pub_releases/2003-07/icc-gwi072703.php
+http://www.eurekalert.org/pub_releases/2003-10/uou-bm9102603.php
+http://www.eurekalert.org/pub_releases/2005-05/sri-tse051805.php
+http://www.eurekalert.org/pub_releases/2005-06/aaft-bsi062405.php
+http://www.eurekalert.org/pub_releases/2005-06/df-fsa060205.php
+http://www.eurekalert.org/pub_releases/2005-06/dumc-dkh060205.php
+http://www.eurekalert.org/pub_releases/2005-06/uomh-aae061505.php
+http://www.eurekalert.org/pub_releases/2005-06/vt-5my061305.php
+http://www.eureporter.co.uk/mediacenter/release.cfm?r=103
+http://www.euribor.org/
+http://www.euring.org/edb/methods.htm
+http://www.euro-emergencymed.com/pt/re/ejem/fulltext.00063110-200209000-00006.htm
+http://www.euro-emergencymed.com/pt/re/ejem/fulltext.00063110-200406000-00011.htm
+http://www.euro-tongil.org/1957/570210.html
+http://www.euro.gov.uk/committee_pages.asp?id=11&pg=1&ls=1
+http://www.euro.gov.uk/committee_pages.asp?id=9&pg=1&ls=1
+http://www.euro.who.int/HEN/Syntheses/injuries/20041016_4
+http://www.euro.who.int/eprise/main/WHO/Progs/HPA/Publications/20020423_3
+http://www.euroaccessibility.org/tf3.php
+http://www.eurobasket.com/
+http://www.euroblind.org/fichiersGB/ga7pswrep.htm
+http://www.eurocall-languages.org/news/newsletter/3/
+http://www.eurocean.org/categories.php?category_no=126
+http://www.eurocean.org/categories.php?category_no=95
+http://www.eurocheapo.com/prague/listings/selection/andante.asp
+http://www.eurochristmas.com/euroinfo/iceland.htm
+http://www.eurocomms.co.uk/news/story.shtml?news.REF=1267
+http://www.euroconex.com/aboutus/execbiogs.htm
+http://www.eurocosm.com/Eurocosm/AppEC/Pdcd/Advice/ALLGB.asp
+http://www.eurodata.com/
+http://www.euroeducation.net/prof/albanco.htm
+http://www.euroeducation.net/prof/ukrco.htm
+http://www.eurofighter-typhoon.co.uk/Eurofighter/tech.html
+http://www.eurofound.eu.int/living/socpub_cstudies/ir1.htm
+http://www.eurofunding.com/news_info.asp?idnews=1835
+http://www.eurogamer.net/archive.php?platform=pc&type=feature&sort=reversechrono
+http://www.eurogamer.net/article.php?article_id=2222
+http://www.eurogamer.net/article.php?article_id=57448
+http://www.eurogamer.net/article.php?article_id=59600
+http://www.eurogamer.net/forum_thread_posts.php?thread_id=33043&forum_id=1
+http://www.eurogamer.net/forum_thread_posts.php?thread_id=33308&forum_id=1
+http://www.eurogreens.org/cms/default/dok/37/37562.a_common_manifesto_for_a_common_european.htm
+http://www.eurogreens.org/cms/default/rubrik/3/3133.manifesto.htm
+http://www.eurojgh.com/pt/re/ejgh/fulltext.00042737-200407000-00004.htm
+http://www.eurojobs.com/privacyStatementTemplate.jsp
+http://www.euroleather.com/lithuanian_event.htm
+http://www.eurolink-eu.net/newsletter_november.htm
+http://www.euromonitor.com/Cosmetics_and_Toiletries_in_Romania
+http://www.euromonitor.com/Cosmetics_and_Toiletries_in_Thailand
+http://www.euromonitor.com/Dietetic_Foods_in_France
+http://www.euromonitor.com/Dietetic_Foods_in_Hong_Kong
+http://www.euromonitor.com/Soft_Drinks_in_Slovakia
+http://www.euromonitor.com/Toys_and_Games_in_Turkey
+http://www.europa-pages.com/uk/london.html
+http://www.europaworld.org/week125/europeancommission18403.htm
+http://www.europaworld.org/week169/europeat19304.htm
+http://www.europaworld.org/week227/speechmandelson10605.htm
+http://www.europe-airsports.fai.org/policystatements2
+http://www.europe-technologies.com/index.php?option=com_docman&task=view_category&Itemid=26&subcat=1&catid=83&limitstart=0&limit=10
+http://www.europe-technologies.com/index.php?option=com_docman&task=view_category&Itemid=46&subcat=1&catid=83&limitstart=0&limit=10
+http://www.europe.org/london.html?l=
+http://www.european-biosolids.com/Introduction.htm
+http://www.european-schoolprojects.net/festivals/France/Historic/history.html
+http://www.european-voice.com/archive/issue.asp?id=200
+http://www.european-voice.com/archive/issue.asp?id=318
+http://www.european-voice.com/archive/issue.asp?id=354
+http://www.european-voice.com/archive/issue.asp?id=422
+http://www.european-voice.com/archive/volume.asp?id=2
+http://www.european-wall-tapestries.com/store/catalog/Fleur_De_Lis_Antique_Rod_p_629.html
+http://www.europeanaffairs.org/
+http://www.europeanaffairs.org/current_issue/2004_fall/2004_fall_107.php4
+http://www.europeancarweb.com/longtermers/0105ec_tt/
+http://www.europeancarweb.com/longtermers/0201ec_bmw330i/
+http://www.europeancarweb.com/longtermers/0209ec_jaguar/
+http://www.europeanenergyfocus.com/detail.aspx?pcode=113
+http://www.europeanforum.net/news/131
+http://www.europeanguesthouse.com/dancing_street.htm
+http://www.europeanhostels.com/fall/faq/default.asp
+http://www.europeanrailguide.com/trains/es.html
+http://www.europeantour.com/tournaments/latest.sps?iTourNo=2003028
+http://www.europeanvegetarian.org/evu/english/news/news974/ironman.html
+http://www.europeetravel.net/2004/12/31/196/worlds-greatest-dog-show/
+http://www.europhysicsnews.com/full/12/article12/article12.html
+http://www.europrail.net/service/faq.html
+http://www.euroregion.net/business/jobs/unemployment/governmentpolicy.html
+http://www.eurosport.co.uk/home/pages/v4/l2/s22/e6902/sport_lng2_spo22_evt6902_sto681398.shtml
+http://www.eurosport.com/home/pages/v4/l0/s57/e7184/sport_lng0_spo57_evt7184_sto681052.shtml
+http://www.eurosport.com/home/pages/v4/l2/s13/MessageBoard_lng2_spo13_sto551825.shtml
+http://www.eurosur.org/wide/Globalisation/IvS-Info_gender-indicators.htm
+http://www.eurosurveillance.org/em/v05n03/0503-224.asp
+http://www.eurosurveillance.org/em/v08n02/0802-223.asp
+http://www.eurosurveillance.org/em/v09n12/0912-225.asp
+http://www.eurosurveillance.org/em/v10n02/1002-221.asp
+http://www.eurosurveillance.org/em/v10n02/1002-227.asp
+http://www.eurosurveillance.org/em/v10n03/1003-224.asp
+http://www.eurosurveillance.org/em/v10n04/1004-223.asp
+http://www.eurosurveillance.org/em/v10n04/1004-224.asp
+http://www.eurosurveillance.org/ew/1999/991013.asp
+http://www.eurosurveillance.org/ew/2000/000420.asp
+http://www.eurotechnology.com/austriajapantechforum/
+http://www.eurotherm.com/training/tutorial/instrumentation/holland/measure.htm
+http://www.eursoc.com/news/categoryfront.php/id/27/Europe_Round-Up.html
+http://www.eurunion.org/News/press/2004/200400137.htm
+http://www.eurunion.org/News/press/2004/200400155.htm
+http://www.eurunion.org/News/press/2004/20040077.htm
+http://www.eurunion.org/News/press/2005/2005006.htm
+http://www.eurunion.org/News/press/2005/2005062.htm
+http://www.eurunion.org/News/speeches/2005/050209jmb.htm
+http://www.eurunion.org/News/speeches/2005/050322jbarrotprconf.htm
+http://www.eurunion.org/delegati/ppa/interns.htm
+http://www.eurunion.org/infores/otherweb.htm
+http://www.eurunion.org/legislat/DeathPenalty/deathpenhome.htm
+http://www.eurunion.org/legislat/agd2000/agd2000.htm
+http://www.eurunion.org/news/press/2004/20040073.htm
+http://www.euteach.com/euteach_module_b2
+http://www.evalutech.sreb.org/21stcentury/Standards.asp
+http://www.evan-moor.com/catalog/book.asp?BID=412
+http://www.evan-moor.com/catalog/book.asp?CID=8&SID=9&BID=412
+http://www.evangelicalfellowship.ca/social/page_viewer.asp?SI_Page_ID=3
+http://www.evangelist.org/evv/bish1102.htm
+http://www.evangelsociety.org/francisco/gaychange.html
+http://www.evansranchmercantile.com/crittercorner.html
+http://www.evb-aromatherapy.com/importance.html
+http://www.evcforum.net/cgi-bin/dm.cgi?action=msg&f=28&t=5&m=12
+http://www.evcforum.net/cgi-bin/dm.cgi?action=msg&f=3&t=68&m=1
+http://www.evcj.com/evcj/1093015868277.html
+http://www.eveandersson.com/pi/
+http://www.evenflo.com/pa/bg/pabg_exerciser.phtml
+http://www.eveningtelegraph.co.uk/output/2005/05/23/gensport.shtm
+http://www.eveningtimes.co.uk/features/7013268.html
+http://www.eveningtimes.co.uk/features/7014880.html
+http://www.evenstar8.co.uk/script.html
+http://www.event-solutions.com/halloffame/2002halloffamers.html
+http://www.eventsandadventures.com/FAQ.html
+http://www.eventus.org.uk/fewer/outside.html
+http://www.ever-readyglass.com/auto/
+http://www.evereden.com/villageidiom/column5.html
+http://www.everest.co.uk/everest-windows/trad_timber_sash_windows.cfm
+http://www.everestnews2004.com/everestnews2/mseverest2004dis2.htm
+http://www.everestnews2004.com/malloryandirvine2004/malloryandirvineroute2004.htm
+http://www.everestnews2004.com/summitclimb/chooyuautumn2004dis09112004.htm
+http://www.evergladesplan.org/pm/studies/wpa.cfm
+http://www.evergreen.ca/en/cg/cg-resources.html
+http://www.evergreen.edu/financialaid/FAQ.htm
+http://www.evergreen.edu/financialaid/faq.htm
+http://www.evergreen.edu/studentemployment/Jobs/_View_All_On_Campus_Institutional_Jobs_1.html
+http://www.evergreen.edu/washcenter/resources/acl/c2.html
+http://www.eversheds.com/international/europe.asp
+http://www.eversheds.com/international/usa.asp
+http://www.evert.de/eft807e.htm
+http://www.evertype.com/standards/og/ogmharc.html
+http://www.everybody.co.nz/ubb/ultimatebb.php?ubb=get_topic;f=79;t=000026
+http://www.everydaysteward.com/enewsletter/dec04/budgeting.php
+http://www.everyhit.com/timelines/elvis_presley.html
+http://www.everystudent.com/features/gettingconnected.html
+http://www.everystudent.com/wires/toxic.html
+http://www.everything2.com/?node_id=1116119
+http://www.everything2.com/?node_id=536533
+http://www.everything2.com/index.pl?node=Earth%3A%20Final%20Conflict
+http://www.everything2.com/index.pl?node=The%20%22Watch%20on%20the%20Heather%22%20argument%20for%20creation%20from%20design
+http://www.everything2.com/index.pl?node=arm
+http://www.everything2.com/index.pl?node=blood
+http://www.everything2.com/index.pl?node=death
+http://www.everything2.com/index.pl?node=fear%20and%20loathing
+http://www.everything2.com/index.pl?node=husband
+http://www.everything2.com/index.pl?node=meaning
+http://www.everything2.com/index.pl?node=pi
+http://www.everything2.com/index.pl?node=skin%20cancer
+http://www.everything2.com/index.pl?node=sorry
+http://www.everything2.com/index.pl?node=thank%20you
+http://www.everything2.com/index.pl?node=tremolo
+http://www.everything2.com/index.pl?node=union
+http://www.everything2.com/index.pl?node_id=104744&lastnode_id=11081
+http://www.everything2.com/index.pl?node_id=118419
+http://www.everything2.com/index.pl?node_id=1280792
+http://www.everything2.com/index.pl?node_id=1343265
+http://www.everything2.com/index.pl?node_id=1368793
+http://www.everything2.com/index.pl?node_id=1446862
+http://www.everything2.com/index.pl?node_id=1470814
+http://www.everything2.com/index.pl?node_id=1540153
+http://www.everything2.com/index.pl?node_id=1732555
+http://www.everything2.com/index.pl?node_id=1732556
+http://www.everything2.com/index.pl?node_id=494930&lastnode_id=1694430
+http://www.everything2.com/index.pl?node_id=536533
+http://www.everything2.com/index.pl?node_id=560749
+http://www.everything2.com/index.pl?node_id=724598
+http://www.everything2.com/index.pl?node_id=812459
+http://www.everything2.com/index.pl?node_id=845923
+http://www.everything2.com/index.pl?node_id=865883
+http://www.everythingcomputers.com/presbushspeech.htm
+http://www.everythingesl.net/lessons/american_celebration.php
+http://www.everythingesl.net/quicktips/
+http://www.everythingiknowiswrong.com/2004/04/the_torricelli_.html
+http://www.everythingiknowiswrong.com/2004/05/ahahahhchrumsfe.html
+http://www.everythingt1.com/states/arizona/t1-sun-city-west-arizona.php
+http://www.everythingunderthemoon.net/dealing_with_assholes.htm
+http://www.everytomorrow.org/
+http://www.evilavatar.com/forums/archive/index.php/t-1979.html
+http://www.evilwhiteguy.com/blog/archive/2005/06/04/2611.aspx
+http://www.evite.com/pages/venue/venueDetails.jsp?venueID=ZQXBMLSKWWFAIUVWESPY
+http://www.evl.uic.edu/aej/ESCHOOL/enewsstory.html
+http://www.evl.uic.edu/aej/vrais99/vrais99.html
+http://www.evms.edu/about/news/features/2004-07-26-25-year-reunion.html
+http://www.evolt.org/article/comment/17/60369/
+http://www.evolt.org/article/evolt_org_On_The_Move/27/60493/
+http://www.evolutionday.com/June_2003.htm
+http://www.evolutionfairytale.com/articles_debates/mutation_rate.htm
+http://www.evolutionnyc.com/IBS/SimpleCat/Shelf/ASP/Hierarchy/000Z.html
+http://www.evolvefish.com/
+http://www.evolvefish.com/fish/magnets.html
+http://www.evote.com/features_section/2002-09/archive.asp
+http://www.evsc.k12.in.us/icats/projects/feedback/afterschool.html
+http://www.evsc.virginia.edu/courses/ugrad/specializations.shtml
+http://www.evtek.fi/technology/applying/otherinfo
+http://www.ew.govt.nz/policyandplans/rcpintro/coastalplan/CoastalPlan_124.htm
+http://www.ew.govt.nz/policyandplans/rpsintro/rps/RPS.3.htm
+http://www.ew.govt.nz/policyandplans/wrpintro/wrp/wrp.1.htm
+http://www.ewea.org/03publications/WindDirections_advertising.htm
+http://www.ewea.org/src/directionsadvertising.htm
+http://www.eweek.com/article2/0,1759,1413013,00.asp
+http://www.eweek.com/article2/0,1759,1622086,00.asp
+http://www.eweek.com/article2/0,1759,1656539,00.asp
+http://www.eweek.com/article2/0,1759,1666134,00.asp
+http://www.eweek.com/article2/0,1759,1666353,00.asp
+http://www.eweek.com/article2/0,1759,1751858,00.asp
+http://www.eweek.com/article2/0,1759,1770806,00.asp
+http://www.eweek.com/article2/0,1759,1777493,00.asp
+http://www.eweek.com/article2/0,1759,1812908,00.asp
+http://www.eweek.com/article2/0,1759,1824867,00.asp
+http://www.eweek.com/article2/0,1759,1825008,00.asp
+http://www.eweek.com/article2/0,1759,1825058,00.asp
+http://www.eweek.com/article2/0,1759,1825494,00.asp
+http://www.eweek.com/article2/0,4149,1413013,00.asp
+http://www.eweek.com/category2/0,1738,1237934,00.asp
+http://www.eweek.com/category2/0,1738,1640279,00.asp
+http://www.eweek.org/site/News/newsletter/021103.shtml
+http://www.eweightlosstips.com/weightlossltr.htm
+http://www.ewh.ieee.org/reg/2/r2sac/2004papercontestrules2004.htm
+http://www.ewh.ieee.org/reg/2/r2sac/papercontestrules2003.htm
+http://www.ewh.ieee.org/soc/ias/pub-dept/style.html
+http://www.ewildagain.org/Homeopathy/gunpowder.htm
+http://www.ewmortgage.com/resources/yourproperty.asp
+http://www.eworldwire.com/n_distribution-tips.php
+http://www.ewsi.msu.edu/coursedesc.html
+http://www.ewtn.com/library/THEOLOGY/FR91102.HTM
+http://www.ewtn.com/library/THEOLOGY/PROVID.HTM
+http://www.ewtn.com/library/papaldoc/jp2bvm47.htm
+http://www.ewtn.com/vexperts/showmessage.asp?Pgnu=1&Pg=Forum13&recnu=13&number=425089
+http://www.ewtn.com/vexperts/showmessage_print.asp?number=425089&language=en
+http://www.ewtoo.org/~matt/samsung/
+http://www.ex-astris-scientia.org/inconsistencies5.htm
+http://www.ex-atheist.com/from-skepticism-to-worship.html
+http://www.ex-parrot.com/~chris/wwwitter/20040405-is_all_hope_now_lost.html
+http://www.ex-premie.org/pages/trainings_19990726.htm
+http://www.ex.ac.uk/phytonet/escop.html
+http://www.ex.ac.uk/~PErnest/pome11/art16.htm
+http://www.ex.ac.uk/~RDavies/arian/barter.html
+http://www.ex.ac.uk/~RDavies/arian/emu.html
+http://www.ex.ac.uk/~RDavies/bankfiction/bigbang.html
+http://www.ex.org/1.4/22-gon.html
+http://www.ex0tique.org/carli/
+http://www.examinations.ie/main.php?l=en&mc=ca&sc=sa
+http://www.exampler.com/training.html
+http://www.examstutor.com/chemistry/resources/studyroom/index_gcse.php
+http://www.exatest.com/Research.htm
+http://www.excelforum.com/archive/index.php/t-182242.html
+http://www.excelgov.org/displayContent.asp?NewsItemID=6094&Keyword=mReleases
+http://www.excellon.com/Press/Default.asp?info=/Articles/20030925.htm
+http://www.exceptionalmarriages.com/weblog/BlogDetail.asp?ID=20757
+http://www.excessvoice.com/current.htm
+http://www.excessvoice.com/marketing-experiments.htm
+http://www.exchange4media.com/viewpoint/viewpoint.asp?view_id=44
+http://www.exchangehouse.ie/youth_early.htm
+http://www.exchangenetwork.net/progress/
+http://www.exchangesjournal.org/reviews/review_1086.html
+http://www.exchangeuk.co.uk/exuk/index.php?act=Help&CODE=01&HID=4
+http://www.exchangeuk.co.uk/exuk/index.php?act=Help&CODE=01&HID=6
+http://www.exchippy.org.uk/chippylist50s.html
+http://www.exchippy.org.uk/chippylistM-S.html
+http://www.excitementmachine.org/log/2003_07.html
+http://www.excitementmachine.org/log/cat_excitement_machine_news.html
+http://www.excitementmachine.org/log/cat_readings.html
+http://www.excitepr.com/03b_NIA100104.html
+http://www.exclaim.ca/index.asp?layid=22&csid=799&csid1=3523
+http://www.execstrategies.com/Books%20Etc/Speaking_Success.htm
+http://www.executive-speaker.com/spch0006.html
+http://www.executive.com/fragbook/chapter1.htm
+http://www.executivecoachingstudio.com/sucesfactorresume.htm
+http://www.executivecoachingstudio.com/testimonials.htm
+http://www.executiveplanet.com/business-culture-in/132249775868.html
+http://www.executiveplanet.com/business-culture-in/132272178001.html
+http://www.executiveplanet.com/business-culture-in/132425792783.html
+http://www.executiveplanet.com/business-culture-in/132447984443.html
+http://www.executiveplanet.com/business-culture-in/139447363250.html
+http://www.executivesearch.tv/html/case_histories.html
+http://www.exel.com/exel/home/media/casestudies/importingcasestudy.htm
+http://www.exercisevideosreviews.com/links.html
+http://www.exercisevideosreviews.com/tonestep.html
+http://www.exero.com/mastergate/secured/boytoys/patek.htm
+http://www.exetel.com.au/mobile_terms_conditions.htm
+http://www.exeter.anglican.org/diocese/buildings/dacsound.htm
+http://www.exeterfriendly.co.uk/over_seas_faqs.htm
+http://www.exeterfriendly.co.uk/uk_faqs.htm
+http://www.exhumedfilms.com/whatis.html
+http://www.exim.gov/news/speeches/apr2904a.html
+http://www.exim.gov/products/policies/environment/envproc.html
+http://www.exim.gov/products/policies/environment/envtbl1.html
+http://www.exim.org/exim-html-1.90/doc/html/spec_21.html
+http://www.exim.org/exim-html-2.00/doc/html/spec_20.html
+http://www.exim.org/exim-html-2.10/doc/html/oview.html
+http://www.exim.org/exim-html-2.10/doc/html/spec_20.html
+http://www.exim.org/exim-html-3.00/doc/html/spec_20.html
+http://www.exim.org/exim-html-3.20/doc/html/spec_21.html
+http://www.exim.org/exim-html-3.20/doc/html/spec_3.html
+http://www.exmoorholidayguide.co.uk/list.php?accmtype=Self-Catering
+http://www.exmormon.org/mormon/mormon187.htm
+http://www.exmormon.org/stories.htm
+http://www.exmormon.org/whylft60.htm
+http://www.exoticpetvet.net/avian/strange.html
+http://www.expandinglight.org/retreat/retreat.htm
+http://www.expansys.co.nz/product.asp?code=113873
+http://www.expat-village.com/
+http://www.expat.or.id/aida/myhairdone.html
+http://www.expat.or.id/business/jobseekers.html
+http://www.expat.or.id/business/moveoffice.html
+http://www.expat.or.id/info/batik.html
+http://www.expat.or.id/info/prepare.html
+http://www.expat.or.id/info/weddings.html
+http://www.expatexchange.com/goingabroad.cfm?networkid=28
+http://www.expatexchange.com/lib.cfm?networkID=159&articleID=1103
+http://www.expatexchange.com/rspgennet.cfm?rid=58&answerid=614&networkid=159
+http://www.expatfocus.com/expatriate-spain-telephone-post-internet-tv.php
+http://www.expatica.com/date/dating_edit_user.asp?function=new
+http://www.expatica.com/source/forum_thread.asp?channel_id=1&thread_id=17674
+http://www.expatica.com/source/forum_thread.asp?channel_id=3&thread_id=15300
+http://www.expatica.com/source/forum_thread.asp?channel_id=3&thread_id=6006
+http://www.expatica.com/source/site_article.asp?subchannel_id=26&story_id=16220&name=Fischer+calls+for+unity+on+Iran%3B+talk+with+Rice
+http://www.expatica.com/source/site_article.asp?subchannel_id=36&story_id=1127&name=Tax+time
+http://www.expatica.com/source/site_article.asp?subchannel_id=56&story_id=5540&name=Berlin's+new+airport+%96+still+waiting+for+take-off
+http://www.expatica.com/source/site_article.asp?subchannel_id=58&story_id=15829&name=Building+bridges
+http://www.expatica.com/source/site_article.asp?subchannel_id=6&story_id=143&name=Anti+matters
+http://www.expatica.com/source/site_article.asp?subchannel_id=81&story_id=12569&name=Waiting+to+be+seen
+http://www.expatica.com/source/site_content_subchannel.asp?subchannel_id=3&name=Netherlands+Relocation
+http://www.experience-seminars.co.uk/seminar/02.php
+http://www.experience-seminars.co.uk/seminar/02.php?ih=
+http://www.experience-seminars.co.uk/seminar/02.php?ih=0
+http://www.experiencecafe.com/Day_09.htm
+http://www.experiencedesignernetwork.com/
+http://www.experiencedesignernetwork.com/archives/000540.html
+http://www.experiencefestival.com/a/Ancient_Celts/id/35232
+http://www.experiencefestival.com/a/Feng_Shui/id/35343
+http://www.experiencefestival.com/a/Poltergeists/id/21865
+http://www.experiencefestival.com/comparison
+http://www.experiencefestival.com/essential_oil
+http://www.experiencefestival.com/writing
+http://www.experiencenottinghamshire.com/exec/102507/1499/PROFILE=
+http://www.experienceworks.org/primetime/Primetime2004/oowbios/oklahoma.html
+http://www.experimentaltvcenter.org/history/collections/collections_links.html
+http://www.experimentaltvcenter.org/history/groups/gtext.php3?id=81
+http://www.experit.com/
+http://www.expertbettingadvice.co.uk/forum/index.php?action=profile;u=202;sa=showPosts
+http://www.expertbettingadvice.co.uk/forum/index.php?action=profile;u=76;sa=showPosts
+http://www.expertbettingadvice.co.uk/forum/index.php?topic=11856.15
+http://www.expertfootball.com/training/passing.php
+http://www.expertlaw.com/forums/post-859.html
+http://www.expertreloader.com/
+http://www.experts-exchange.com/Applications/MS_Office/Outlook/Q_21253922.html
+http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/ASP_DOT_NET/Q_21015699.html
+http://www.experts-exchange.com/Web/Web_Languages/JavaScript/Top_Solutions_7.html
+http://www.explodedlibrary.info/2004/01/how_academic_li.html
+http://www.explodedlibrary.info/2005/02/
+http://www.exploit-lib.org/issue5/peer-review/
+http://www.exploit-lib.org/issue7/newsagent/
+http://www.exploratorium.edu/IFI/activities/pinholeinquiry/starting.html
+http://www.explore-edinburgh.com/museum.html
+http://www.explore.co.uk/worldwide/essentials.jsp
+http://www.explorefairbanks.com/FAQ/
+http://www.explorefaith.org/forgive/mraz.html
+http://www.exploreminnesota.com/6Jun200512.html
+http://www.exploreworldwide.com/onfoot/newsarchive.jsp
+http://www.expmath.org/expmath/philosophy.html
+http://www.expo.deschutes.org/index.cfm?fuseaction=cExpo.Directions
+http://www.expomed.com/drugtest/clubdrugs.htm
+http://www.export.gov/comm_svc/press_room/marketofthemonth/Singapore/singapore.html
+http://www.export.gov/exportamerica/NewOpportunities/no_chinabusiness_0304.html
+http://www.export.gov/fas/fas.asp?pName=tsmo
+http://www.exposedbrain.com/archives/000141.html
+http://www.express-cleaning-supplies.co.uk/aboutord.html
+http://www.expressgenes.com/Biodefense-2004-main.htm
+http://www.expressindia.com/
+http://www.expression.edu/admissions/degrees.html
+http://www.expressitpeople.com/20031020/cover.shtml
+http://www.expressivetherapy.com/18thlist2.html
+http://www.expressnews.ualberta.ca/expressnews/articles/ideas.cfm?p_ID=6359&section=Feature&s=m
+http://www.expresspersonnel.com/jobs.asp?id=1498&cc=1
+http://www.expresswayauthority.com/constructionupdate/roadworkupdate.html
+http://www.exrx.net/Store/HK/MethodsGroupExerciseInstr.html
+http://www.exsys.com/publicCIO.html
+http://www.ext.nodak.edu/extpubs/alt-ag/ostrich.htm
+http://www.ext.nodak.edu/extpubs/h2oqual/watsys/ae1047w.htm
+http://www.ext.nodak.edu/extpubs/plantsci/hortcrop/h885w.htm
+http://www.ext.nodak.edu/extpubs/plantsci/hortcrop/pp697-1.htm
+http://www.ext.nodak.edu/extpubs/plantsci/weeds/h1009w.htm
+http://www.ext.nodak.edu/extpubs/plantsci/weeds/w765w.htm
+http://www.ext.nodak.edu/extpubs/yf/foods/he176w.htm
+http://www.ext.vt.edu/news/periodicals/livestock/aps-03_06/aps-236.html
+http://www.ext.vt.edu/pubs/dairy/404-286/404-286.html
+http://www.ext.vt.edu/pubs/envirohort/426-100/426-100.html
+http://www.ext.vt.edu/pubs/family/350-096/350-096.html
+http://www.ext.vt.edu/pubs/family/354-030/354-030.html
+http://www.ext.vt.edu/pubs/forestry/420-085/420-085.html
+http://www.ext.vt.edu/pubs/forestry/420-641/420-641.html
+http://www.extang.com/feedback.html
+http://www.extendedstaynetwork.com/Details/Details.cfm?LocationID=3399&Best=1&In=7/4/2005
+http://www.extension.iastate.edu/Pages/communications/EPC/Spring03/response.html
+http://www.extension.iastate.edu/acreage/AL2000/aljan00.html
+http://www.extension.iastate.edu/agdm/wholefarm/html/c4-72.html
+http://www.extension.iastate.edu/cyf/rating.html
+http://www.extension.iastate.edu/foodsafety/
+http://www.extension.umn.edu/accessmn/final3.html
+http://www.extension.umn.edu/distribution/businessmanagement/DF3700.html
+http://www.extension.umn.edu/distribution/communications/DL6052.html
+http://www.extension.umn.edu/distribution/horticulture/DG3825.html
+http://www.extension.umn.edu/distribution/naturalresources/DD5944.html
+http://www.extension.umn.edu/distribution/naturalresources/M1156.html
+http://www.extension.umn.edu/distribution/naturalresources/components/2022_12.html
+http://www.extension.umn.edu/distribution/nutrition/DJ5513.html
+http://www.extension.umn.edu/distribution/nutrition/DJ5711.html
+http://www.extension.umn.edu/pesticides/pat/2005recert.html
+http://www.extension.umn.edu/projects/yardandgarden/YGLNews/YGLNews.html
+http://www.extique.com/diet.html
+http://www.extra-mile.com/calendars/custom.htm
+http://www.extra-mile.com/kids/
+http://www.extra-mile.com/kids/child-ID.htm
+http://www.extra-mile.com/textiles/beach-towels.htm
+http://www.extra.research.philips.com/euprojects/beyond/presence@finland.htm
+http://www.extraaircraft.com/media/0504_sa.html
+http://www.extrahandsforals.org/mt/archives/000375.html
+http://www.extramile.us/honorees/smithwilson.cfm
+http://www.extremeautoaccessories.co.uk/products.php?section=56
+http://www.extremefilmmaker.com/111Articles111/Article0001_GettingStarted.htm
+http://www.extremefunnypictures.com/funnypic208.htm
+http://www.extremetech.com/article2/0,1558,1228860,00.asp
+http://www.extremetech.com/article2/0,1558,1750720,00.asp
+http://www.extremetech.com/article2/0,1558,863408,00.asp
+http://www.extremetech.com/article2/0,3973,1228860,00.asp
+http://www.ey.com/GLOBAL/content.nsf/UK/TaxMap_-_in_house_support
+http://www.ey.com/global/content.nsf/Luxembourg_E/media_press_articles_luxembourg_real_estate_funds
+http://www.ey.com/global/content.nsf/US/Human_Capital_-_Overview
+http://www.eye.net/eye/issue/issue_06.17.04/op/oped.html
+http://www.eyeassociates.com/images/an_introduction_to_low_vision_re.htm
+http://www.eyeassociates.com/images/common_vision_problems_from_stro.htm
+http://www.eyeassociates.com/images/stroke_second_copy_page.htm
+http://www.eyecancer.com/Editorials/Speak.html
+http://www.eyedesignbook.com/ch2/eyech2-abc.html
+http://www.eyedesignbook.com/ch3/eyech3-b.html
+http://www.eyedesignbook.com/ch3/eyech3-d.html
+http://www.eyeforchem.com/index.asp?news=38082
+http://www.eyeforenergy.com/financingnorthsea/programme.shtml
+http://www.eyeforpharma.com/salesusa05/program.shtml
+http://www.eyemagazine.com/review.php?id=62&rid=72
+http://www.eyemdlink.com/NewsArticle.asp?NewsID=40
+http://www.eyenet.co.za/html/dry_eye_syndrome.html
+http://www.eyeoneducation.tv/reform/curriculum_frameworks.html
+http://www.eyepiece.com/ent/0002/000211al.asp
+http://www.eyesearch.com/corneal.disease.htm
+http://www.eyeshot.net/karaoke1.html
+http://www.eyeshot.net/maudattorney1.html
+http://www.eyesight-2020.com/technology/faq.asp
+http://www.eyesontheprize.org/about/kudos.html
+http://www.eyesontheprize.org/stories/michelet.html
+http://www.eyesurgeon.com.au/services.htm
+http://www.eyewitnesstohistory.com/appomatx.htm
+http://www.eyewitnesstohistory.com/londonfire.htm
+http://www.eyewitnesstohistory.com/pearl.htm
+http://www.eyewitnesstohistory.com/pearl2.htm
+http://www.eyewitnesstohistory.com/richmond.htm
+http://www.eyezone.co.uk/glossary.htm
+http://www.eypuk.com/ncprocedure.htm
+http://www.eypuk.com/rfprocedure.htm
+http://www.eyrie.net/UF/FI/SOS/images-comm.html
+http://www.ezinearticles.com/?How-to-Master-the-Art-of-Salesmanship&id=45422
+http://www.ezinearticles.com/?Meditation:-Why-Just-Sitting-There-Isnt-Just-Sitting-There&id=13180
+http://www.ezinearticles.com/?Real-Weight-Loss-Begins-Today...With-Cliff-Kuhn,-M.D.s-Fun-Factor-Diet!&id=10523
+http://www.ezinearticles.com/?cat=News-and-Society:Politics
+http://www.ezslimdown.com/
+http://www.f-secure.com/virus-info/iraq.shtml
+http://www.f1inschools.co.uk/rule.asp?ID=3
+http://www.f4g.net/vb/archive/index.php/t-55891.html
+http://www.f5.com/solutions/success/PDXLAN_ss.html
+http://www.f5sitedesign.com/Demo/
+http://www.fabcats.org/earproblems.html
+http://www.fabian-society.org.uk/documents/ViewADocument.asp?ID=41&CatID=52
+http://www.fabian-society.org.uk/documents/ViewADocument.asp?ID=97&CatID=52
+http://www.fabjob.com/PublicRelations.asp
+http://www.fabjob.com/publicrelations.asp
+http://www.fabjob.com/publicrelations.asp?affiliate=236
+http://www.fabjob.com/tips148.html
+http://www.fables.org/autumn04/embers.html
+http://www.fac.gov.bc.ca/bcca_dec.htm
+http://www.face.bnl.gov/Modelling/growth1.htm
+http://www.face.bnl.gov/Modelling/results.htm
+http://www.facesandfortunes.com/links.html
+http://www.fachrs.com/pages/members/papers/b_o_p.htm
+http://www.facilitiesnet.com/bom/article.asp?id=1386
+http://www.facilitiesnet.com/bom/article.asp?id=1535
+http://www.facilitiesnet.com/fsd/article.asp?id=2860
+http://www.facilitycity.com/busfac/bf_04_10_cover3.asp
+http://www.facilitycity.com/tfm/tfm_02_10_news1.asp
+http://www.facilitycity.com/tfm/tfm_05_01_cover3.asp
+http://www.facilitygroup.com/tandcps_12_0_0.html
+http://www.facingthechallenge.org/scopes1.htm
+http://www.facingthemirror.org/about_the_book/reviews.php
+http://www.facs.org/ahp/testimony/bariatric.html
+http://www.facsimilation.com/anderson03.html
+http://www.fact.on.ca/facthome/fact_not.htm
+http://www.fact.on.ca/news/news0110/ts01102b.htm
+http://www.factcheck.org/article.aspx@DocID=264.html
+http://www.factcheck.org/article208.html
+http://www.factcheck.org/article239.html
+http://www.factcheck.org/article305.html
+http://www.factcheck.org/article330.html
+http://www.factcheck.org/specialreports188.html
+http://www.factiva.com/network/IBM/register.asp
+http://www.factmonster.com/spot/affirmative1.html
+http://www.factmonster.com/spot/wtc1.html
+http://www.factnet.org/
+http://www.factnet.org/Scientology/hubbard_death.htm?FACTNet
+http://www.factnet.org/discus/messages/1/293.html?1089383136
+http://www.factnet.org/discus/messages/6/1004.html?1091181291
+http://www.factnet.org/headlines/1999_CULTinfo_Conf_TEXT.html?FACTNet
+http://www.factnet.org/singer.htm?FACTNet
+http://www.faculty.de.gcsu.edu/~dvess/ids/courseportfolios/2205/rainf/stu29.htm
+http://www.faculty.de.gcsu.edu/~mmagouli/performance.htm
+http://www.faculty.piercelaw.edu/redfield/library/case-texas.pprinciple.htm
+http://www.faculty.rsu.edu/~felwell/Theorists/Malthus/Index.htm
+http://www.faculty.rsu.edu/~felwell/Theorists/Weber/Whome.htm
+http://www.facultysenate.villanova.edu/FACULTAS99F.htm
+http://www.fadavis.com/townsend/learningactivities.asp
+http://www.fadingwaysmusic.com/
+http://www.fadingwaysmusic.com/mission.html
+http://www.faem.com/
+http://www.fafia-afai.org/Bplus5/altrepf2_e.htm
+http://www.fafia-afai.org/Bplus5/altrepf3_e.htm
+http://www.fafsa.ed.gov/faq002.htm
+http://www.fai.org/aeromodelling/competitions/free_flight/wc03/wcp03f1.htm
+http://www.faia.org.uk/roleofnutrition.php
+http://www.failuremag.com/arch_history_cable_ready.html
+http://www.failuremag.com/arch_history_charles_goodyear.html
+http://www.fair-pr.com/meet-aae/whec15/presentation.php
+http://www.fair.org/articles/cruise-control.html
+http://www.fair.org/press-releases/un-powell-iraq.html
+http://www.fairchildgarden.org/education/n_classes.html
+http://www.fairchildgarden.org/publicprograms/n_employment.html
+http://www.faireconomy.org/research/
+http://www.faireconomy.org/research/Economic_Apartheid_Data.html
+http://www.fairfaxcounty.gov/parks/performances.htm
+http://www.fairfield-city.org/PubWorks/pwdump.cfm
+http://www.fairfield.edu/x532.html
+http://www.fairfordna.com/
+http://www.fairhousing.com/
+http://www.fairlds.org/news/news006.html
+http://www.fairlds.org/pubs/journal/FJ200403.html
+http://www.fairlds.org/pubs/tagm/tagm30.html
+http://www.fairlieburne.co.uk/fairlie.htm
+http://www.fairmark.com/amt/amt101.htm
+http://www.fairmark.com/execcomp/nqostock.htm
+http://www.fairmark.com/rothira/taxfeat.htm
+http://www.fairness.com/resources/by-relation?relation_id=7723
+http://www.fairtradefederation.com/networks/archive/vol12_no1/features.html
+http://www.fairtrading.nsw.gov.au/business/cooperatives/formationkits.html
+http://www.fairview.org/healthlibrary/content/pa_tnbedwet_hhg.htm
+http://www.fairvote.org/reports/1995/chp1/skillen.html
+http://www.fairys.com/newsspring2004.htm
+http://www.faispdx.org/faisfacts/history.asp
+http://www.faithandfamily.com/partner/Article_Display_Page/0,,PTID313086%7CCHID590694%7CCIID1990690,00.html
+http://www.faithandliferesources.org/guidelines.htm
+http://www.faithandvalues.com/tx/CBFN-71/1/
+http://www.faithfreedom.org/Articles/ohmyrus30816.htm
+http://www.faithissues.ca/ChristianLiving/DumpTheRubbleAndRubbish.asp
+http://www.faithnet.org.uk/Science/Science/bigbang.htm
+http://www.faithwebbin.net/grow/family/content/ritalin.html
+http://www.fajrfilmfest.com/23/competition/far/international-film-kot-detail-eng.htm
+http://www.falconblanco.com/fbgb/what.html
+http://www.falklandnews.com/public/story.cfm?get=3280&source=2
+http://www.falklandnews.com/public/story.cfm?get=3285&source=2
+http://www.falklandnews.com/public/story.cfm?get=3292&source=2
+http://www.fallenbrothers.com/community/showthread.php?goto=lastpost&t=4196
+http://www.fallenheroesmemorial.com/oef/profiles/lanemitchella.html
+http://www.fallenheroesmemorial.com/oif/profiles/cedergrendavida.html
+http://www.fallenheroesmemorial.com/oif/profiles/cliftonrichardc.html
+http://www.fallenheroesmemorial.com/oif/profiles/smithpaulr.html
+http://www.fallingawake.com/displayQuote.asp
+http://www.fallingawake.com/maininfo.asp
+http://www.fallingawake.com/maininfo.html
+http://www.falloutsoftware.com/tutorials/ktm/ktm0.htm
+http://www.falls-chutes.com/guide/english/resources/programtools/risk-3.html
+http://www.fallscreek.com.au/summer/Calendar.asp
+http://www.falmouth.ac.uk/en/press-releases/falmouth-college-of-arts-television.asp
+http://www.falmouthicearena.com/funfacts.htm
+http://www.falseallegations.com/drano119-bbo-prop-findings-fact-rulings-law-41404.htm
+http://www.falundafa.org/book/eng/dymf_2.htm
+http://www.falungong.org.uk/article.php?op=Print&sid=28
+http://www.fama.net/Process__Chapter_1/Process__Chapter_2/process__chapter_2.html
+http://www.familialdysautonomia.org/FD_Day_Dr_Axelrod_Speech-2003.htm
+http://www.familiesusa.org/site/PageServer?pagename=Paying_a_Premium_splash
+http://www.familiesusa.org/site/PageServer?pagename=Related_Links_Index
+http://www.family-crests.com/
+http://www.family-crests.com/coat-of-arms-library/family-crest/abbreviations-genealogy.html
+http://www.family-crests.com/contact.html
+http://www.family.msn.com/tool/article.aspx?dept=crafts&sdept=cas&name=sc_111803_givingspirit
+http://www.family.msn.com/tool/article.aspx?dept=raising&sdept=rks&name=me_011304_trailinghusband
+http://www.family.msn.com/tool/article.aspx?dept=raising&sdept=rks&name=sc_111803_givingspirit
+http://www.family.org.au/update/2004/u20040105.htm
+http://www.family.org/cforum/citizenmag/departments/a0004401.cfm
+http://www.family.org/cforum/feature/a0033978.cfm
+http://www.family.org/cforum/fosi/abstinence/parents/a0035110.cfm
+http://www.family.org/cforum/fosi/marriage/ssuap/a0029773.cfm
+http://www.family.org/docstudy/newsletters/a0035339.cfm
+http://www.family.org/fmedia/askdrbill/
+http://www.family.org/fofmag/pp/a0024028.cfm
+http://www.family.org/married/growth/a0022221.cfm
+http://www.family.org/topics/a0034455.cfm
+http://www.familybuilders.net/Seminar%20pages/Seminar_Schedule_Question_4.htm
+http://www.familybusinessstrategies.com/articles05/011505rs.html
+http://www.familycar.com/Classics/SeagraveSafetySedan/
+http://www.familycar.com/RoadTests/LexusGS430/
+http://www.familycaregiversonline.com/100_simple_ways.htm
+http://www.familycircle.com/info/regional.jsp
+http://www.familycircle.com/parenting/archive_braz_040309_everybodysspecial.jsp
+http://www.familycorner.com/dir/Parenting/Humor/index.shtml
+http://www.familydigest.com/stories/happy_marriage.cfm
+http://www.familyeducation.com/article/0,1120,1-20927,00.html
+http://www.familyeducation.com/article/0,1120,1-3482,00.html
+http://www.familyeducation.com/article/0,1120,68-9307,00.html
+http://www.familyeducation.com/experts/advice/0,1183,1-9786,00.html
+http://www.familyeducation.com/experts/advice/0,1183,68-27840,00.html
+http://www.familyeducation.com/topic/front/0,1156,1-10230,00.html
+http://www.familyeducation.com/topic/front/0,1156,22-3189,00.html
+http://www.familyfight.com/american/washington_post_053004.htm
+http://www.familyfirst.net/famlife/halloween.htm
+http://www.familyforest.info/killedinaction.htm
+http://www.familyguyfiles.com/episodes/viewref.php?id=40&title=To%20Love%20and%20Die%20in%20Dixie
+http://www.familyhaven.com/gardening/garden28/garden282.html
+http://www.familylife.co.za/news2005.htm
+http://www.familylife.com/community/church/needs/thirtyone_needs.asp
+http://www.familymanagement.com/aging-index.html
+http://www.familymanagement.com/aging/sexuality.html
+http://www.familymanagement.com/literacy/grimms/grimms39.html
+http://www.familyprocess.org/featured_articles_display.asp?id=35
+http://www.familyradio.com/english/oldbrowsers/literature/llo/llo_1.html
+http://www.familyrecords.gov.uk/focuson/womeninuniform/wrns_profile.htm
+http://www.familyrecords.gov.uk/frc/your_frc/ug-09-10-02.htm
+http://www.familyresource.com/health/23/667/
+http://www.familyresource.com/parenting/26/547/
+http://www.familyresource.com/parenting/34/154/
+http://www.familyresource.com/parenting/52/474/
+http://www.familyresource.com/pregnancy/16/284/
+http://www.familytlc.net/giving_choices.html
+http://www.familyvacationcenter.com/Kids_Activities/2nd_grade.html
+http://www.faminegenocide.com/resources/teachingkuryliw.html
+http://www.famousquotes.me.uk/speeches/John_F_Kennedy/1.htm
+http://www.famsi.org/cgi-bin/print_friendly.pl?file=97068
+http://www.famsi.org/cgi-bin/print_friendly.pl?file=99009
+http://www.fanball.com/fb/article.cfm/ID.3494
+http://www.fandemonium.blogdrive.com/
+http://www.fanfic.net/~jeffwong/rant60-Speeding.html
+http://www.fanfiction-library.com/Simon%20and%20Simon/wiseguys.html
+http://www.fanfiction.mugglenet.com/oc.html
+http://www.fanfiction.net/r/2007542/0/1/
+http://www.fanfiction.net/r/2229738/0/1/
+http://www.fanfiction.net/s/1000604/1/
+http://www.fanfiction.net/s/1391642/1/
+http://www.fanfiction.net/s/752197/1/
+http://www.fanfiction.net/s/98473/1/
+http://www.fanfiction.net/u/218005/
+http://www.fanficweb.net/tvs/pretender/season5/primer.htm
+http://www.fangoriablooddrive.com/rules_and_regulations/
+http://www.fanlight.com/catalog/films/263_btl.shtml
+http://www.fanniemaefoundation.org/ESOL_ABE/tools/tool27.html
+http://www.fanning.uga.edu/About%20Fanning/Pillars.htm
+http://www.fansfocus.com/forum/showflat.php/Cat/0/Number/433612/an/0/page/0
+http://www.fansfocus.com/forum/showflat.php/Cat/0/Number/442923/Main/441900
+http://www.fansonly.com/schools/msu/sports/m-footbl/spec-rel/042603aaa.html
+http://www.fantastically-blonde.com/
+http://www.fantasticfiction.co.uk/authors/James_Ellroy.htm
+http://www.fantasyguru.com/2005-rookie-report.html
+http://www.fantasyinglass.com/
+http://www.fantasyjazz.com/catalog/soulstirrers_cat.html
+http://www.fantasyspringsresort.com/
+http://www.fantasytoyland.com/info.html
+http://www.fao.org/DOCREP/003/AB412E/ab412e06.htm
+http://www.fao.org/DOCREP/003/S6091E/S6091E05.htm
+http://www.fao.org/DOCREP/003/T0388E/T0388E00.HTM
+http://www.fao.org/DOCREP/003/W8989E/W8989E03.htm
+http://www.fao.org/DOCREP/003/X3680E/x3680e02.htm
+http://www.fao.org/DOCREP/003/Y0911E/y0911e04.htm
+http://www.fao.org/DOCREP/004/W3240E/W3240E05.htm
+http://www.fao.org/DOCREP/004/X3936E/X3936E03.htm
+http://www.fao.org/DOCREP/005/Y4143E/y4143e0a.htm
+http://www.fao.org/DOCREP/005/Y4172M/rep2/saintvincent.htm
+http://www.fao.org/DOCREP/005/Y4671E/y4671e09.htm
+http://www.fao.org/DOCREP/006/AD233E/AD233E02.htm
+http://www.fao.org/DOCREP/006/W9941E/w9941e02.htm
+http://www.fao.org/DOCREP/006/Y4961E/y4961e06.htm
+http://www.fao.org/DOCREP/MEETING/004/Y2650e/Y2650e05.htm
+http://www.fao.org/DOCREP/MEETING/006/Y8994e.HTM
+http://www.fao.org/DOCREP/MEETING/008/J1948E/j1948e05.htm
+http://www.fao.org/DOCREP/W7440E/w7440e06.htm
+http://www.fao.org/DOCREP/x0262e/x0262e13.htm
+http://www.fao.org/Gender/en/Lesson-e/Gambia.htm
+http://www.fao.org/WAICENT/FAOINFO/SUSTDEV/WPdirect/WPan0022.htm
+http://www.fao.org/WAICENT/FAOINFO/SUSTDEV/WPdirect/WPan0046.htm
+http://www.fao.org/ag/AGS/AGSE/agse_e/7mo/iita/iita.htm
+http://www.fao.org/ag/aga/agap/lps/dairy/ECS/Comments/com_dis2.htm
+http://www.fao.org/ag/againfo/subjects/en/infpd/documents/econf_scope/paper2.html
+http://www.fao.org/clim/docs/rrp88e12-04.htm
+http://www.fao.org/docrep/005/AC798E/ac798e0j.htm
+http://www.fao.org/docrep/S8270E/S8270E02.htm
+http://www.fao.org/docrep/V6640E/v6640e03.htm
+http://www.fao.org/docrep/W4347E/w4347e0b.htm
+http://www.fao.org/docrep/meeting/003/Y0174E.htm
+http://www.fao.org/docrep/meeting/009/J4968e/j4968e00.htm
+http://www.fao.org/docrep/t1970e/t1970e05.htm
+http://www.fao.org/docrep/u0700E/u0700e07.htm
+http://www.fao.org/docrep/u4400e/u4400e04.htm
+http://www.fao.org/docrep/w1765e/w1765e0a.htm
+http://www.fao.org/docrep/w4086e/w4086e08.htm
+http://www.fao.org/docrep/w9990e/w9990e02.htm
+http://www.fao.org/docrep/x5305e/x5305e02.htm
+http://www.fao.org/docrep/x5563E/X5563e05.htm
+http://www.fao.org/english/newsroom/news/2003/20863-en.html
+http://www.fao.org/newsroom/en/news/2004/50119/
+http://www.fao.org/sd/EIdirect/EIre0046.htm
+http://www.fao.org/sd/LTdirect/LTan0025.htm
+http://www.fao.org/sd/LTdirect/LTforum/ltfo0016.htm
+http://www.fao.org/sd/dim_pe4/pe4_040501a_en.htm
+http://www.fao.org/sd/rodirect/ROan0012.htm
+http://www.fao.org/sd/wpdirect/WPre0132.htm
+http://www.fao.org/sd/wpdirect/wpan0040.htm
+http://www.fao.org/sd/wpdirect/wpre0132.htm
+http://www.fao.org/trade/docs/FAO-Statement-Nov1997.htm
+http://www.fapeonline.org/
+http://www.faqfarm.com/Computer/3638
+http://www.faqfarm.com/History/Founding/15730
+http://www.faqfarm.com/History/Founding/61169
+http://www.faqfarm.com/History/WWII/16614
+http://www.faqfarm.com/History/WWII/23626
+http://www.faqfarm.com/History/WWII/27478
+http://www.faqfarm.com/History/WWII/28257
+http://www.faqfarm.com/Home/34785
+http://www.faqfarm.com/Insurance/Auto/99719
+http://www.faqfarm.com/Insurance/Disability/3360
+http://www.faqfarm.com/Insurance/Medical/p1
+http://www.faqfarm.com/Love/4449
+http://www.faqfarm.com/Love/819
+http://www.faqs.org/contrib/articles2/report.html
+http://www.faqs.org/docs/ZopeBook/BasicObject.html
+http://www.faqs.org/docs/air/avb25.html
+http://www.faqs.org/docs/electric/DC/DC_6.html
+http://www.faqs.org/docs/electric/Digital/DIGI_3.html
+http://www.faqs.org/docs/electric/Semi/SEMI_9.html
+http://www.faqs.org/docs/factbook/fields/2032.html
+http://www.faqs.org/docs/linux_network/x-087-2-resolv.library.html
+http://www.faqs.org/docs/think_java/TIJ307.htm
+http://www.faqs.org/docs/thinkjava/chap02.htm
+http://www.faqs.org/docs/thinkjava/chap04.htm
+http://www.faqs.org/docs/thinkjava/chap11.htm
+http://www.faqs.org/faqs/dogs-faq/medical-info/epilepsy/
+http://www.faqs.org/faqs/religions/c-o-euthanasia/
+http://www.faqs.org/faqs/tv/er-series/medical-jargon/
+http://www.faqs.org/faqs/tv/er-series/questions/
+http://www.faqs.org/rfcs/rfc2521.html
+http://www.faqs.org/rfcs/rfc3245.html
+http://www.faqs.org/rfcs/rfc394.html
+http://www.fark.com/
+http://www.farlingaye.suffolk.sch.uk/engweb/a-level/essays/dhemma.htm
+http://www.farmboy.ca/index.php?action=terms.home
+http://www.farmequip.org/Dlragree.htm
+http://www.farmersboys.com/Roll_of_Honour_Pages/CSgt_Foster.htm
+http://www.farmersinfo.com.au/pages/news/news.htm
+http://www.farmersmarketsnm.org/managers.htm
+http://www.farmgoodsforkids.com/toys-toys-by-brand-plan-toys.html
+http://www.farmingmatters.org.uk/farming/fm-feb03.html
+http://www.farmington.k12.mi.us/district/ace/saturday/w05/classes.html
+http://www.farn-ct.ac.uk/www/default.asp?id=A:6601
+http://www.farnfilm.com/about.htm
+http://www.farnovision.com/tbwit/appendixA.html
+http://www.farscapeworld.com/transcripts/10304.php
+http://www.farsinet.com/zanamu/religion.html
+http://www.fas.harvard.edu/~afroam/Faculty/Evelynn_M__Hammonds/evelynn_m__hammonds.html
+http://www.fas.harvard.edu/~asiactr/haq/200203/0203a002.htm
+http://www.fas.harvard.edu/~fdo/publications/0304/as/general.htm
+http://www.fas.harvard.edu/~fdo/publications/advance/advstd.html
+http://www.fas.harvard.edu/~fdo/publications/as0405/general.htm
+http://www.fas.harvard.edu/~korea/newsletter/newsletter41_001.html
+http://www.fas.harvard.edu/~lingdept/jeal/jealcontent.html
+http://www.fas.harvard.edu/~research/ISGnew.html
+http://www.fas.harvard.edu/~research/greybook/outside.html
+http://www.fas.harvard.edu/~wgs/people/people.htm
+http://www.fas.ie/annual_report/annual_report00/jobseekers02.html
+http://www.fas.ie/annual_report/annual_report03/statutory.htm
+http://www.fas.ie/services_to_businesses/cdp.htm
+http://www.fas.ie/supported_employment_criteria.htm
+http://www.fas.nus.edu.sg/cls/news.htm
+http://www.fas.org/asmp/atwg/panels/IndiaPakistan-28jan03.html
+http://www.fas.org/asmp/campaigns/control.html
+http://www.fas.org/asmp/library/articles/us-mexico.htm
+http://www.fas.org/asmp/library/asm/asm03.html
+http://www.fas.org/asmp/library/asm/asm29.htm
+http://www.fas.org/asmp/library/reports/AAAS.htm
+http://www.fas.org/asmp/profiles/israel.htm
+http://www.fas.org/asmp/profiles/saudi_arabia.htm
+http://www.fas.org/bwc/news/anthraxreport.htm
+http://www.fas.org/faspir/2003/v56n2/book.htm
+http://www.fas.org/faspir/v52m6a.htm
+http://www.fas.org/faspir/v52n5.htm
+http://www.fas.org/irp/congress/1996_cr/h60522aa.htm
+http://www.fas.org/irp/congress/1996_cr/h960618j.htm
+http://www.fas.org/irp/congress/1996_hr/h960925d.htm
+http://www.fas.org/irp/congress/1996_hr/s960605b.htm
+http://www.fas.org/irp/congress/1998_rpt/sgo-sir/2-18.htm
+http://www.fas.org/irp/congress/2001_cr/h100501.html
+http://www.fas.org/irp/congress/2001_hr/071801_roberts.html
+http://www.fas.org/irp/congress/2002_hr/092002fbi.html
+http://www.fas.org/irp/congress/2003_cr/s072403.html
+http://www.fas.org/irp/congress/2005_cr/s316-318.html
+http://www.fas.org/irp/doddir/army/fm33-1/fm33-1m.htm
+http://www.fas.org/irp/nsa/standards.html
+http://www.fas.org/irp/offdocs/int015.html
+http://www.fas.org/irp/offdocs/nsc-hst/nsc-68-5.htm
+http://www.fas.org/irp/offdocs/pdd_ntsc7.htm
+http://www.fas.org/irp/offdocs/walsh/chap_02.htm
+http://www.fas.org/irp/offdocs/walsh/chap_09.htm
+http://www.fas.org/irp/offdocs/walsh/execsum.htm
+http://www.fas.org/irp/ops/ci/agnew.html
+http://www.fas.org/irp/ops/ci/docs/ci2/2ch1_b.htm
+http://www.fas.org/irp/ops/ci/king/turley_030601.html
+http://www.fas.org/irp/ops/ci/king/winthrop.html
+http://www.fas.org/irp/threat/missile/rumsfeld/pt2_katz2.htm
+http://www.fas.org/man/congress/1996/s960315t.htm
+http://www.fas.org/man/dod-101/navy/docs/swos/ops/72-22.html
+http://www.fas.org/man/dod-101/sys/land/row/
+http://www.fas.org/man/dod-101/sys/ship/docs/iismartship.html
+http://www.fas.org/man/dod-101/sys/ship/row/overview.htm
+http://www.fas.org/man/nato/ceern/beern12.htm
+http://www.fas.org/nuke/control/ctbt/text/100799garwin.htm
+http://www.fas.org/nuke/control/npt/docs/PCII35.htm
+http://www.fas.org/nuke/guide/china/com84.html
+http://www.fas.org/nuke/guide/uk/corp/17june98.htm
+http://www.fas.org/nuke/guide/usa/c3i/ec-135.htm
+http://www.fas.org/nuke/guide/usa/icbm/sm-62.htm
+http://www.fas.org/pub/gen/mswg/stealth/b2talk.html
+http://www.fas.org/rlg/v095pcwp.htm
+http://www.fas.org/sgp/advisory/state/hac396.html
+http://www.fas.org/sgp/advisory/state/hac398.html
+http://www.fas.org/sgp/advisory/state/hac98.html
+http://www.fas.org/sgp/bush/eoamend.html
+http://www.fas.org/sgp/eprint/mueller.html
+http://www.fas.org/sgp/foia/ciafoia.html
+http://www.fas.org/sgp/foia/ciafoia2.html
+http://www.fas.org/sgp/library/moynihan/appb.html
+http://www.fas.org/sgp/news/2002/09/fr091302.html
+http://www.fas.org/sgp/spb/spf396.html
+http://www.fas.org/spp/military/docops/operate/ds/images.htm
+http://www.fas.org/spp/starwars/crs/94-470f.htm
+http://www.fas.org/spp/starwars/docops/mns95116da.htm
+http://www.fas.usda.gov/Foodaid/Samples/sample_gfe_a.html
+http://www.fas.usda.gov/info/agexporter/1999/articles/gentle.html
+http://www.fas.usda.gov/ustrade/ustlists/ExFASGrp.asp?QI=
+http://www.fashion-era.com/Trends/fashion_trends_05_wardrobe_planning_2004_2005.htm
+http://www.fashion.arts.ac.uk/courses/further_education/5798.htm
+http://www.fashioncapital.co.uk/component/option,com_boutique/Itemid,75/
+http://www.fashioncapital.co.uk/content/view/1427/27/
+http://www.fashioncapital.co.uk/index.php?option=com_whoswho&task=whoswhoDETAIL&search_detail_on=3249
+http://www.fasken.com/AntitrustCompetitionMarketingBulletin/Nov04
+http://www.fasken.com/web/fmdwebsite.nsf/0/95D32D4D76DF5AF185256E3700684332/$File/BUSINESS_ACTIVITIES_OF_HOSPITALS.PPT?OpenElement
+http://www.fassbex.com/forum/viewtopic.php?t=22
+http://www.fast-rewind.com/kansas.htm
+http://www.fast-times.com/dictionaryp.html
+http://www.fast500europe.com/faqs.asp
+http://www.fastcompany.com/articles/2000/11/prob_campanello.html
+http://www.fastcompany.com/articles/2001/07/buckingham.html
+http://www.fastcompany.com/articles/2001/08/susanka.html
+http://www.fastcompany.com/magazine/01/mountain.html
+http://www.fastcompany.com/magazine/02/meyerson.html
+http://www.fastcompany.com/magazine/04/fcke.html
+http://www.fastcompany.com/magazine/10/brandyou.html
+http://www.fastcompany.com/magazine/16/webjobs.html
+http://www.fastcompany.com/magazine/19/one.html
+http://www.fastcompany.com/magazine/27/ideas.html
+http://www.fastcompany.com/magazine/34/allen.html
+http://www.fastcompany.com/magazine/34/slowfood.html
+http://www.fastcompany.com/magazine/42/pp_waldroop.html
+http://www.fastcompany.com/magazine/45/customerservice.html
+http://www.fastcompany.com/magazine/48/house.html
+http://www.fastcompany.com/magazine/67/newface.html
+http://www.fastcompany.com/magazine/69/growth.html
+http://www.fastcompany.com/magazine/72/gps.html
+http://www.fastcompany.com/magazine/75/angry.html
+http://www.fastcompany.com/magazine/77/sequelking.html
+http://www.fastcompany.com/magazine/81/smartstrategies.html
+http://www.fastcompany.com/magazine/83/playbook.html
+http://www.fastcompany.com/magazine/88/fast-forward-18-24.html
+http://www.fastcompany.com/magazine/90/open_ashoka.html
+http://www.fastcompany.com/magazine/92/open_power-couple.html
+http://www.fastcompany.com/magazine/93/design.html
+http://www.fastcompany.com/magazine/94/fasttalk.html
+http://www.fastcompany.com/online/10/brandyou.html
+http://www.fastcompany.com/online/16/webjobs.html
+http://www.fastcompany.com/online/18/coppola.html
+http://www.fastcompany.com/online/27/ideas.html
+http://www.fastcompany.com/online/39/brilliant.html
+http://www.fastcompany.com/online/45/customerservice.html
+http://www.fastcompany.com/online/53/teaching.html
+http://www.fastcompany.com/social/2005/explanation.html
+http://www.fastfacility.com/FastInfo/info7.asp
+http://www.fastforwardclub.com/
+http://www.fastfreenet.com/archive.html
+http://www.fasting.com/spiritual.html
+http://www.fastmail.fm/docs/faqparts/ChargingAndBilling.htm
+http://www.fastmetrics.com/biznet/fst1.html
+http://www.fastmetrics.com/biznet/t3.html
+http://www.fastrak-consulting.co.uk/tactix/features.htm
+http://www.fastrak-consulting.co.uk/tactix/features/games.htm
+http://www.fastrak-consulting.co.uk/tactix/features/pickmix/pickmix.htm
+http://www.fastrak-consulting.co.uk/tactix/features/tngroi/tngroi.htm
+http://www.fastsearch.com/en/content/view/full/759
+http://www.fastsearch.com/us/content/download/1516/13329/file/
+http://www.fastsearch.com/us/content/view/full/759
+http://www.fastsports.com/tips/tip04/
+http://www.fasttrac.org/article.cfm?id=203
+http://www.fatherlove.com/articles/standing_fire.html
+http://www.fathersdirect.com/news/?page=news&id=667&sub=29
+http://www.fathersforlife.org/per/med2.htm
+http://www.fathersforlife.org/pizzey/pizzey.htm
+http://www.fathertodd.com/blog/archives/2003/09/
+http://www.fathom.com/course/10701044/session4.html
+http://www.fathom.com/course/10701050/session1.html
+http://www.fathom.com/course/21701727/session1.html
+http://www.fathom.com/course/21701736/session1.html
+http://www.fathom.com/course/21701747/session5.html
+http://www.fathom.com/course/21701759/session4.html
+http://www.fathom.com/course/28701907/
+http://www.fathom.com/feature/121625/
+http://www.fathom.com/feature/122290/
+http://www.fathom.com/feature/122347/
+http://www.fathom.com/feature/60800/
+http://www.fathom.com/feature/60993/
+http://www.fathomfive.com/diveteam.htm
+http://www.fatport.com/aboutus/events.php
+http://www.fatprophets.com.au/content.aspx?page=Managed+Funds
+http://www.fattyweightloss.com/
+http://www.fatwa-online.com/scholarsbiographies/15thcentury/abdulmuhsin.htm
+http://www.fatwallet.com/t/18/434191/
+http://www.fatwallet.com/t/52/428098/
+http://www.fatwire.com/news/inthenews_the451_012405.html
+http://www.fau.edu/divdept/exsci/coudesp.htm
+http://www.fau.edu/student/camprec/rent/intro.htm
+http://www.faultline.org/place/pinolecreek/archives/002196.html
+http://www.fauxtan.com/
+http://www.favicon.com/
+http://www.fawc.org.uk/letters/broillet.htm
+http://www.fazekas.hu/~nagydani/rth/Russian-tea-HOWTO-v2.html
+http://www.fazeteen.com/articles/hardlessons.htm
+http://www.fb.org/news/fbn/98/03_16/
+http://www.fb10.uni-bremen.de/anglistik/kerkhoff/AfricanLit/Ngugi/NgugiDorn.htm
+http://www.fbcgalt.org/
+http://www.fbe.unsw.edu.au/learning/Excel97/
+http://www.fbforyouth.com/so_you_think_a_passing_game_is_a_good_idea.htm
+http://www.fbi.gov/congress/congress04/lewis051804.htm
+http://www.fbi.gov/hq/cid/arttheft/arttheft.htm
+http://www.fbi.gov/hq/lab/fsc/current/standards/2005standards5.htm
+http://www.fbi.gov/hq/lab/handbook/intro8.htm
+http://www.fbi.gov/majcases/fraud/fraudschemes.htm
+http://www.fbia.org/fbia.asp?ID=26767
+http://www.fbresearch.org/education/organizations.htm
+http://www.fca.gov/apps/infomemo.nsf/0/ff5559aecfd125738525670c006d5bc0?OpenDocument
+http://www.fcac-acfc.gc.ca/eng/financialservices/picture.asp
+http://www.fcarcsi.com/general/articles/FinalOct03.htm
+http://www.fcc.gov/Bureaus/Common_Carrier/Orders/1997/access/statements.html
+http://www.fcc.gov/Bureaus/Mass_Media/Orders/1998/da980231.txt
+http://www.fcc.gov/Speeches/Hundt/spreh758.html
+http://www.fcc.gov/Speeches/Kennard/spwek833.html
+http://www.fcc.gov/Speeches/Kennard/spwek929.html
+http://www.fcc.gov/Speeches/Powell/2001/spmkp106.html
+http://www.fcc.gov/Speeches/Powell/2001/spmkp109.html
+http://www.fcc.gov/cgb/consumerfacts/plugandplaytv.html
+http://www.fcc.gov/eb/FieldNotices/2002/DOC-238018A1.html
+http://www.fcc.gov/mb/audio/decdoc/letter/1996--06--27--kcvn.html
+http://www.fcc.gov/mb/audio/decdoc/letter/1999--07--30--kaod.html
+http://www.fcc.gov/mb/shva/
+http://www.fccj.or.jp/modules/wfsection/article.php?category=42&articleid=666
+http://www.fcgov.com/utilities/eps.php
+http://www.fcl.org.uk/benefits.php
+http://www.fcm.ca/english/communications/presbrief.htm
+http://www.fcnl.org/issues/item.php?item_id=845&issue_id=101
+http://www.fco.gov.uk/servlet/Front?pagename=OpenMarket/Xcelerate/ShowPage&c=Page&cid=1019745050212
+http://www.fco.gov.uk/servlet/Front?pagename=OpenMarket/Xcelerate/ShowPage&c=Page&cid=1086624924399
+http://www.fco.gov.uk/servlet/Front?pagename=OpenMarket/Xcelerate/ShowPage&c=Page&cid=1097588364146
+http://www.fcoca.org/history.html
+http://www.fcps.k12.va.us/Directives/topicalindexE.htm
+http://www.fcps.net/crisis/duty.htm
+http://www.fcps.net/crisis/fear.htm
+http://www.fcpworld.com/
+http://www.fcs.iastate.edu/computer/tips/onlinetechtips.html
+http://www.fcs.okstate.edu/food/eatng-kepngfodsafe.htm
+http://www.fcs.uga.edu/cs/tutorials/web_seminar/language/tags.html
+http://www.fcsi.org/glossary.html
+http://www.fcsurplus.ca/
+http://www.fcsutler.com/fcweapons.asp
+http://www.fcw.com/
+http://www.fcw.com/fcw/articles/2002/0415/cov-xml-04-15-02.asp
+http://www.fcw.com/fcw/articles/2002/0429/tec-model-04-29-02.asp
+http://www.fcw.com/fcw/articles/2004/0531/news-egov-05-31-04.asp
+http://www.fcw.com/fcw/articles/2004/0607/tec-google-06-07-02.asp
+http://www.fcw.com/fcw/articles/2004/1018/feat-rewire-10-18-04.asp
+http://www.fcw.com/vendorsolutions/NIHECS_04/contract.asp
+http://www.fda.gov/bbs/topics/CONSUMER/CON284b.html
+http://www.fda.gov/bbs/topics/ENFORCE/ENF00441.html
+http://www.fda.gov/cber/minutes/plast101899.htm
+http://www.fda.gov/cber/rules/bldcellsep.htm
+http://www.fda.gov/cder/dmpq/freshair.htm
+http://www.fda.gov/cder/drug/infopage/accutane/medicationguide.htm
+http://www.fda.gov/cdrh/consumer/laserfacts.html
+http://www.fda.gov/cdrh/d861.html
+http://www.fda.gov/cdrh/devadvice/ide/informed_consent.shtml
+http://www.fda.gov/cdrh/humfac/hufactpg.html
+http://www.fda.gov/cdrh/ode/guidance/793.html
+http://www.fda.gov/cdrh/ohip/guidance/1128.html
+http://www.fda.gov/cdrh/safety.html
+http://www.fda.gov/fdac/departs/196_irs.html
+http://www.fda.gov/fdac/departs/2003/103_word.html
+http://www.fda.gov/fdac/departs/2005/205_upd.html
+http://www.fda.gov/fdac/features/096_nhl.html
+http://www.fda.gov/fdac/features/196_kid.html
+http://www.fda.gov/fdac/features/196_test.html
+http://www.fda.gov/fdac/features/1997/497_menu.html
+http://www.fda.gov/fdac/features/1998/498_eye.html
+http://www.fda.gov/fdac/features/1999/199_chol.html
+http://www.fda.gov/fdac/features/2000/400_sun.html
+http://www.fda.gov/fdac/features/2000/600_phone.html
+http://www.fda.gov/fdac/features/2001/101_fish.html
+http://www.fda.gov/fdac/features/2001/201_food.html
+http://www.fda.gov/fdac/features/2001/401_food.html
+http://www.fda.gov/fdac/features/2001/401_vacc.html
+http://www.fda.gov/fdac/features/2001/501_john.html
+http://www.fda.gov/fdac/features/2001/601_flu.html
+http://www.fda.gov/fdac/features/2002/402_botox.html
+http://www.fda.gov/fdac/features/996_bd.html
+http://www.fda.gov/fdac/special/foodlabel/health.html
+http://www.fda.gov/fdac/special/foodlabel/lite.html
+http://www.fda.gov/oashi/patrep/patientrep.html
+http://www.fda.gov/oc/initiatives/criticalpath/whitepaper.html
+http://www.fda.gov/oc/initiatives/generics/whitepaper.html
+http://www.fda.gov/oc/opacom/hottopics/importdrugs/potter042004.html
+http://www.fda.gov/oc/speeches/2000/nationalpressclub.html
+http://www.fda.gov/oc/speeches/2005/wholegrains0520.html
+http://www.fda.gov/opacom/laws/fplact.htm
+http://www.fda.gov/ope/fy03plan/part2_drugs.html
+http://www.fda.gov/ora/compliance_ref/cpg/cpgdev/cpg310-210.html
+http://www.fda.gov/ora/compliance_ref/cpg/cpgvet/cpg680-100.html
+http://www.fda.gov/ora/compliance_ref/rpm_new2/ch9pers.html
+http://www.fda.gov/ora/import/kullman.htm
+http://www.fdfairfield.com/ARCHIVEcitizen_fire_academy%202002.htm
+http://www.fdfairfield.com/cfa1.htm
+http://www.fdic.gov/consumers/consumer/news/cnfall97/wallet.html
+http://www.fdic.gov/regulations/examinations/offshore/
+http://www.fdic.gov/regulations/laws/rules/6500-200.html
+http://www.fdic.gov/regulations/safety/manual/SENSMRK_BOA.html
+http://www.fdimagazine.com/news/fullstory.php/aid/328/South_Africa%92s_dream_becomes_IDZ_reality.html
+http://www.fdimagazine.com/news/fullstory.php/aid/624/The_evolution_of_trade.html
+http://www.fdisk.com/fdisk/
+http://www.fdlsymphonicband.org/ireland_pictures.htm
+http://www.fds.org.au/letter_sep98_01.html
+http://www.fdu.edu/academic/fis/
+http://www.fdungan.com/stick.htm
+http://www.fdvillage.org/Fordhamresearch.htm
+http://www.fe.doe.gov/international/CentralEastern%20Europe/slv96cnf.html
+http://www.feargalquinn.ie/
+http://www.feargalquinn.ie/m/mcrimins.htm
+http://www.feasta.org/documents/wells/contrib.htm
+http://www.feasta.org/documents/wells/seven/healion.html
+http://www.feathersite.com/Poultry/BRKHatcheries.html
+http://www.febs.org/News/Science_Policy/ERC/2003/ERC_F_Mayor.htm
+http://www.fed-soc.org/Publications/hottopics/august.htm
+http://www.fedee.com/euguide.html
+http://www.fedee.com/workinghours.shtml
+http://www.federalistjournal.com/
+http://www.federalnewsradio.com/index.php?nid=82&sid=177148
+http://www.federalreserve.gov/BoardDocs/speeches/2005/20050112/default.htm
+http://www.federalreserve.gov/FOMC/BeigeBook/1997/19970507/11.htm
+http://www.federalreserve.gov/FOMC/BeigeBook/1998/19980121/12.htm
+http://www.federalreserve.gov/FOMC/BeigeBook/1998/19980805/default.htm
+http://www.federalreserve.gov/FOMC/BeigeBook/1999/19990505/12.htm
+http://www.federalreserve.gov/FOMC/BeigeBook/2000/20000119/12.htm
+http://www.federalreserve.gov/FOMC/BeigeBook/2004/20040616/3.htm
+http://www.federalreserve.gov/FOMC/BeigeBook/2004/20040728/11.htm
+http://www.federalreserve.gov/FOMC/BeigeBook/2005/20050615/3.htm
+http://www.federalreserve.gov/boarddocs/speeches/2001/20011011/default.htm
+http://www.federalreserve.gov/boarddocs/speeches/2004/20040707/default.htm
+http://www.federalreserve.gov/boarddocs/speeches/2004/200410152/default.htm
+http://www.federalreserve.gov/boarddocs/speeches/2004/20041021/default.htm
+http://www.federalreserve.gov/boarddocs/testimony/2004/20040225/default.htm
+http://www.federalreserve.gov/boarddocs/testimony/2004/20040421/default.htm
+http://www.federalreserve.gov/fomc/beigebook/2005/20050119/default.htm
+http://www.federalreserve.gov/fomc/beigebook/2005/20050420/11.htm
+http://www.federalreserve.gov/fomc/beigebook/2005/20050615/3.htm
+http://www.federalreserve.gov/paymentsystems/pricing/faqs2.htm
+http://www.federalreserve.gov/paymentsystems/truncation/faqs2.htm
+http://www.federalreserve.gov/pubs/leasing/resource/faq.htm
+http://www.federalreserve.gov/pubs/staffstudies/2000-present/174sum.htm
+http://www.federalunion.org.uk/uk/houseoflords.shtml
+http://www.federalunion.org.uk/uk/wistrichuk.shtml
+http://www.federatedfarmers.com/article.php?sid=214&catid=31
+http://www.fedex.com/us/about/overview/economy/supplychainimpact.html?link=4
+http://www.fedflyfishers.org/Loop/Loopspr01.shtml.htm
+http://www.fedguide.com/
+http://www.fedhealth.com.au/Rules/Normal/32/
+http://www.fedhealth.com.au/Rules/Normal/35/
+http://www.fedmarket.com/Academy/proposalWriting3.htm
+http://www.fedoralegacy.org/about/faq.php
+http://www.fedpubseminars.com/seminar/cdaiclaims.html
+http://www.fee.org/vnews.php?nid=1393
+http://www.fee.org/vnews.php?nid=2537
+http://www.fee.org/vnews.php?nid=2620
+http://www.fee.org/vnews.php?nid=2798
+http://www.fee.org/vnews.php?nid=3830
+http://www.fee.org/vnews.php?nid=408
+http://www.fee.org/vnews.php?nid=4220
+http://www.fee.org/vnews.php?nid=5231
+http://www.fee.org/vnews.php?nid=6290
+http://www.fee.org/vnews.php?nid=951
+http://www.feelingretro.com/view_toy.cfm?id=69
+http://www.felahfd.com/HFDLaw/notebook/503.htm
+http://www.felbers.net/fa/2003/05/28/stimulating-the-economy-with-one-hand/
+http://www.felbers.net/fa/2003/07/
+http://www.felbers.net/fa/2003/11/14/hearts-minds-and-other-organs/
+http://www.feldenkrais.com/method/questel2.html
+http://www.feldnet.com/ItalyADV.cfm
+http://www.felinecrf.org/the_final_hours.htm
+http://www.felinediabetes.com/newdiag.htm
+http://www.felixonline.co.uk/v2/article.php?id=2030
+http://www.fellowshipchurch.com/FCWeb/powersource/default.aspx?pgId=74
+http://www.fellwalk.co.uk/page64.htm
+http://www.felsted.essex.sch.uk/~jms/history/revision/modruss.htm
+http://www.fema.com/diz01/d1391qanda.shtm
+http://www.fema.gov/emanagers/2005/nat020505.shtm
+http://www.fema.gov/fhm/st_fval.shtm
+http://www.fema.gov/txt/reg-iii/newsletter_february2004.txt
+http://www.femalefirst.co.uk/celebrity/11062004.htm
+http://www.femalemuscle.com/library/weekly/aa021400.htm
+http://www.feminist.com/news/vaw8.html
+http://www.feminist.org/gateway/feministgateway-results.asp?category1=lesbian/LGBT
+http://www.feminist.org/intern/
+http://www.feminista.com/archives/v4n2/woodlock.html
+http://www.feministissues.com/
+http://www.fencingofficials.org/Info/HowToBecomeAFencingReferee.html
+http://www.fenews.com/fen28/siminfe.html
+http://www.fenews.com/fen29/one_on_one_interview/one_on_one_kalotay.html
+http://www.fenews.com/fen31/one_on_one_interview/one_on_one_beder.html
+http://www.fenews.com/fen37/one_on_one_duffie/one_on_one_duffie.html
+http://www.fenews.com/fen42/fin_innovations/fin_innovations.html
+http://www.fenews.com/fen42/topics_act_analysis/topics_act_analysis.html
+http://www.fenews.com/fen43/teach_notes/teaching-notes.html
+http://www.fenews.com/issues.htm
+http://www.fengshuiadvice.com/filoanddi.html
+http://www.fengshuimiracle.com/fengshui_paintings.htm
+http://www.fengshuiprophet.com/yi_jing.htm
+http://www.fengshuisociety.org.uk/index.php?location=pages/G_newsViewSingle.php&pullNews=104
+http://www.fengshuitimes.com/main/fst/Default.asp?pg=117&cid=6
+http://www.fenixpanama.com/offshore-panama.html
+http://www.fento.org/res_and_dev/reports/pt_lect_report_case_stu.htm
+http://www.fenwayculture.org/openingourdoors.htm
+http://www.feonline.net/feportal/display?id=2144
+http://www.fepco.com/PDU-1.lynx-excerpt3.html
+http://www.fepproject.org/commentaries/wordsonfire.html
+http://www.fepproject.org/reviews/mediaviolenceJF.html
+http://www.fepproject.org/reviews/russomanno.html
+http://www.feralchildren.com/en/pager.php?df=singh&pg=24
+http://www.ferguselora.com/medical.htm
+http://www.fergusonfoundation.org/cleanuppartners2005.html
+http://www.fergusonsociety.com/
+http://www.fergusontransport.co.uk/news.asp
+http://www.fermanaghtabletennis.com/
+http://www.fermentmagazine.org/FermentIX/Welf.html
+http://www.fernwoodbooks.ca/pages/fern_style_guidelines.html
+http://www.ferrago.com/portal/cluster/124432
+http://www.ferrago.com/portal/cluster/66590
+http://www.ferret-fact.org/Problems.htm
+http://www.ferret.com.au/articles/ad/0c0259ad.asp
+http://www.ferretguy.com/Downloads-req-MostPopular.html
+http://www.ferretsanon.com/Lawsuit/appeal.htm
+http://www.ferris.edu/htmls/academics/course.offerings/doylet/techniques_for_asking_questions_.htm
+http://www.ferris.edu/htmls/colleges/pharmacy/facultypages/outcome_goals_for.htm
+http://www.ferris.edu/library/Subject/Government/census.html
+http://www.ferris.edu/news/jimcrow/coon/
+http://www.ferris.edu/news/jimcrow/jezebel/
+http://www.ferrum.edu/applit/Lessons/NellLP.htm
+http://www.fertilethoughts.com/
+http://www.fertilityplus.org/faq/lowtechfaq.html
+http://www.fes.uwaterloo.ca/planning/prospective/undergraduate/coopreg.html
+http://www.fese.be/initiatives/speeches/2004/eichel_1jun2004.htm
+http://www.festivalofthesea.co.uk/FAQs.html
+http://www.fetalalcohol.com/what-is-fase.htm
+http://www.fetc.org/fetcon/2000-August/rouse.htm
+http://www.feverdreams.net/hankwasam.htm
+http://www.feverdreams.net/tg.htm
+http://www.few.org/tstructure.htm
+http://www.few.vu.nl/~jhulshof/FA2004/
+http://www.ffcd.org/annualforum/bios.html
+http://www.fff.org/comment/com0404f.asp
+http://www.fff.org/comment/com0404h.asp
+http://www.fff.org/freedom/0199e.asp
+http://www.fff.org/freedom/0300d.asp
+http://www.ffii.org.uk/swpat/eudir/texts/recitals.html
+http://www.ffii.org.uk/swpat/ftc/ftc.html
+http://www.ffineart.com/
+http://www.ffmnet.org/QR2-02.htm
+http://www.ffp.csiro.au/publicat/articles/baitbox/
+http://www.fga.net.au/
+http://www.fgcu.edu/support/office2000/word/page.html
+http://www.fgdc.gov/fgdc/coorwg/2003/cwgapr03.html
+http://www.fhcrc.org/phs/cvdeab/chpt12.html
+http://www.fhpc.org/SecondaryPages/BibleSays/BibleSuffering.htm
+http://www.fhs.mcmaster.ca/slru/clear/completed_projects.htm
+http://www.fhsaa.org/
+http://www.fhsu.edu/kga/lp/6/salsbury.html
+http://www.fhwa.dot.gov/construction/accelerated/wsmt04c3.htm
+http://www.fhwa.dot.gov/construction/accelerated/wswa0403.htm
+http://www.fhwa.dot.gov/construction/oversight.htm
+http://www.fhwa.dot.gov/policy/23scmin1.htm
+http://www.fhwa.dot.gov/pressroom/re030130.htm
+http://www.fhwa.dot.gov/reauthorization/mtnc.htm
+http://www.fhwa.dot.gov/resourcecenter/module_4.htm
+http://www.fi.edu/learn.html
+http://www.fi.edu/pieces/knox/automaton/
+http://www.fi.edu/qa99/attic10/
+http://www.fi.edu/tfi/exhibits/sportschallenge/activities.html
+http://www.fia.com/gate?action=retrievePage&locale=en_GB&PageID=2067534132&printer=on
+http://www.fia.com/mediacentre/FIA_Feature/2004/dublin2.html
+http://www.fia.com/mediacentre/Press_Information/F1/Press_Conferences/2004/France/fra_conf1.html
+http://www.fia.com/mediacentre/Press_Information/F1/Press_Conferences/2004/Japan/jap_conf4.html
+http://www.fias.net/investment_climate.html
+http://www.fiatifta.org/aboutfiat/news/old/1998/9801/12.html
+http://www.fiba.com/asp_includes/download.asp?file_id=133
+http://www.fiba.com/asp_includes/download.asp?file_id=346
+http://www.fiberartshop.com/knclbg.htm
+http://www.fiberlink.com/about/bios.htm
+http://www.fibsboard.com/index.php?showtopic=528
+http://www.fic.gov.bc.ca/pensions/qa.htm
+http://www.fic.nih.gov/services/visa.html
+http://www.ficci-sedf.org/fsedf/child4.htm
+http://www.ficorp.com/fipage.html
+http://www.ficpi.org/library/montecarlo99/opposition.html
+http://www.fictionfactor.com/articles/sex.html
+http://www.fictioninferno.com/fictions/blackston_strategist.html
+http://www.fictionpress.com/read.php?storyid=1827633
+http://www.fictionwarehouse.com/yr02/stories/030806.asp
+http://www.fidh.org/article.php3?id_article=1423
+http://www.fidh.org/article.php3?id_article=1824
+http://www.fidler.co.uk/hnew/property/info/guides/guides.html
+http://www.fidm.com/policies/
+http://www.fidnet.com/~dap1955/dickens/christmas.html
+http://www.fidnet.com/~dap1955/dickens/cratchits_christmas.html
+http://www.fidnet.com/~racug/shortcuts.html
+http://www.fido.org.au/moonbi/moonbi104.html
+http://www.fieggen.com/shoelace/lacingmethods.htm
+http://www.field-notes.net/
+http://www.fieldhockey.ca/e/whatsup/index.cfm?issue=2004jul
+http://www.fieldlines.com/comments/2004/12/29/122414/17/8
+http://www.fieldlines.com/story/2004/7/24/204445/128
+http://www.fieldmuseum.org/research_collections/scholarships/default.htm
+http://www.fieldtrip.com/ny/87844520.htm
+http://www.fiery-foods.com/dave/nancy1200.html
+http://www.fifa.com/en/PrinterFriendly/0,3875,MARTV37-Marketing-2004,00.html
+http://www.fifa.com/en/comp/index/0,2442,70602,00.html?comp=CC&year=2003&articleid=70602
+http://www.fifa.com/en/fairplay/index/0,1255,103078,00.html?articleid=103078
+http://www.fifa.com/en/marketing/licensing/index/0,1315,9,00.html
+http://www.fifa.com/en/marketing/newmedia/index/0,3509,10,00.html
+http://www.fifa.com/en/mens/statistics/index/0,2548,103153,00.html?articleid=103153
+http://www.fifa.com/en/news/feature/0,1451,105535,00.html
+http://www.fifa.com/fifa/pub/magazine/fm8-97.4.html
+http://www.fifoost.org/slowakei/EU_SLovakia_2002/node24.php
+http://www.fifthchair.org/school/lesson9.htm
+http://www.fifthpathway.com/ecfmg.html
+http://www.fifty-five-plus.com/health/fitness/SP0046.htm
+http://www.fiftyfoureleven.com/resources/css
+http://www.fiftystatesfsbo.com/
+http://www.fig.net/commission7/
+http://www.figarosensor.com/terms.html
+http://www.fightaging.org/archives/000363.php
+http://www.fightback.com/everywhere/index.cfm
+http://www.fightcps.com/articles/foia&privacyact.html
+http://www.fightingarts.com/
+http://www.fightingarts.com/forums/ubb/Forum1/HTML/002618.html
+http://www.fightingarts.com/forums/ubb/Forum10/HTML/000032.html
+http://www.fightingarts.com/forums/ubb/Forum11/HTML/000110.html
+http://www.fightingarts.com/forums/ubb/Forum19/HTML/000348.html
+http://www.fightingarts.com/forums/ubb/Forum6/HTML/000080.html
+http://www.fightingarts.com/forums/ubb/Forum8/HTML/000039.html
+http://www.fightingarts.com/reading/article.php?id=45
+http://www.fightingbackuk.com/tips.html
+http://www.fightingdemocrat.com/
+http://www.fightingperverts.com/gallery1.html
+http://www.fightingterror.org/members/index.cfm
+http://www.fightnews.com/
+http://www.figureskatingmystery.com/
+http://www.fii.ie/links.asp
+http://www.fiji.gov.fj/publish/page_4050.shtml
+http://www.fiji.org.nz/trade.htm
+http://www.fijibure.com/naiseuseu/activity.htm
+http://www.fijitimes.com/yourSay.aspx?id=3
+http://www.file.brudirect.com/about_brunei/
+http://www.filefront.com/
+http://www.filesaveas.com/pdachoice.html
+http://www.filesniper.com/eraser-software.html
+http://www.filetek.com/papers/Inmon/inmon.htm
+http://www.filipinoexpress.com/18/49_news.html
+http://www.filipinosoftball.com/lined99/lined9904.htm
+http://www.fillingupspace.com/
+http://www.film-philosophy.com/vol8-2004/n4wright
+http://www.film-sklad.si/client.en/index.php?table=articles&ID=103
+http://www.film-to-video.com/
+http://www.film.queensu.ca/Critical/Lawrie1.html
+http://www.film.vic.gov.au/resources/links.shtml
+http://www.filmakers.com/WOMEN.html
+http://www.filmarchive.org.nz/news/pr_040915_NZFP_LMcD.html
+http://www.filmart.com/cgi-bin/filmart/item_list/cat311/Air_Fresheners.html
+http://www.filmatcolumbia.com/producing/producerresource.html
+http://www.filmcommissionhq.com/news.jsp?r=400
+http://www.filmcommissionhq.com/news.jsp?r=403
+http://www.filmeducation.org/primary/animation/sboard.html
+http://www.filmfocus.co.uk/lookat.asp?FilmbaseID=110&FeatureID=8
+http://www.filmforum.com/archivedfilms/amandla/amandlanytimes.html
+http://www.filmforum.org/faq.html
+http://www.filmfreakcentral.net/diff/diff2004capsules.htm
+http://www.filmfreakcentral.net/dvdreviews/beautifulmind.htm
+http://www.filmfreakcentral.net/screenreviews/shaunofthedirtyshame.htm
+http://www.filminflorida.com/ifi/g.asp
+http://www.filminflorida.com/prl/ss.asp
+http://www.filmjumper.com/
+http://www.filmlinc.com/fcm/9-10-2003/ozu.htm
+http://www.filmmaking.net/
+http://www.filmmonthly.com/Profiles/Articles/GChadha/GChadha.html
+http://www.filmmonthly.com/Video/Articles/BornIntoThis/BornIntoThis.html
+http://www.filmo.com/laser.htm
+http://www.filmposters.com/catalog/results.asp?ProdCat=15&PosterSize=&star=&director=&title=&decade=&country=&ScrollAction=Page+19
+http://www.filmrot.com/articles/news/004185.php
+http://www.filmrot.com/articles/news/005213.php
+http://www.filmrot.com/articles/news/005440.php
+http://www.filmrot.com/main.php
+http://www.films.com.br/put.htm
+http://www.filmscanning.co.uk/
+http://www.filmscoremonthly.com/articles/2004/01_Jun---Aisle_Seat_Reissue_Round_Up.asp
+http://www.filmsite.org/amerg.html
+http://www.filmsite.org/anim.html
+http://www.filmsite.org/arse.html
+http://www.filmsite.org/awfu.html
+http://www.filmsite.org/baby3.html
+http://www.filmsite.org/besty2.html
+http://www.filmsite.org/blaz.html
+http://www.filmsite.org/blue.html
+http://www.filmsite.org/blue3.html
+http://www.filmsite.org/cami.html
+http://www.filmsite.org/cloc.html
+http://www.filmsite.org/crow.html
+http://www.filmsite.org/drst.html
+http://www.filmsite.org/duck.html
+http://www.filmsite.org/filmview.html
+http://www.filmsite.org/fort.html
+http://www.filmsite.org/gone.html
+http://www.filmsite.org/itha4.html
+http://www.filmsite.org/lawr.html
+http://www.filmsite.org/loli2.html
+http://www.filmsite.org/moredirectors2.html
+http://www.filmsite.org/myfa.html
+http://www.filmsite.org/noto.html
+http://www.filmsite.org/scenesC.html
+http://www.filmsite.org/sear2.html
+http://www.filmsite.org/shan.html
+http://www.filmsite.org/some.html
+http://www.filmsite.org/suns.html
+http://www.filmsite.org/take.html
+http://www.filmsite.org/wildb.html
+http://www.filmsite.org/wiza.html
+http://www.filmsondisc.com/features/Harris/Harris.htm
+http://www.filmthreat.com:8000/forums/showthread.php?t=2478&page=1
+http://www.filmtracks.com/titles/loves_labours.html
+http://www.filmtribune.com/remainsoftheday.html
+http://www.filmwisconsin.org/productionguide/weather.htm
+http://www.fims.uwo.ca/MediaStudies/structure/ft-course-of-study.htm
+http://www.fims.uwo.ca/mediastudies/structure/ft-course-of-study.htm
+http://www.fimsic.org/english/info_helsinki.html
+http://www.fin.gc.ca/budget04/pamph/paheae.htm
+http://www.fin.gc.ca/budget04/pamph/paleae.htm
+http://www.fin.gc.ca/gloss/gloss-n_e.html
+http://www.fin.gc.ca/news01/01-108e.html
+http://www.fin.gc.ca/news97/97-062e.html
+http://www.fin.gc.ca/toce/2000/ec00e.htm
+http://www.finaid.gatech.edu/scholarships/inst_nonend.php
+http://www.finalcall.com/artman/publish/article_2072.shtml
+http://www.finalgaming.net/
+http://www.finance.cch.com/text/c20s15d510.asp
+http://www.finance.gov.au/pubs/ncoa/chap7.htm
+http://www.finance.gov.au/scripts/Media.asp?Table=MFA&Id=252
+http://www.finance.ohiou.edu/nwslttr/fall2000/fall2000.htm
+http://www.finance.upenn.edu/comptroller/tax/contractor_guide.shtml
+http://www.finance24.com/register/help/mmx_school/displayarticlewide.asp?ArticleID=273817
+http://www.finance24.com/register/help/mmx_school/displayarticlewide.asp?ArticleID=274006
+http://www.financechoices.co.uk/
+http://www.financewise.com/public/edit/riskm/ewrm00/ewrm-intro.htm
+http://www.financial-education-icfe.org/children_and_money/credit_risk_profile_youths.asp
+http://www.financial-education-icfe.org/financial_news_press_releases/2001/20010818_when_your_money_talks_do_you_hear_spend_or_save.asp
+http://www.financial-education-icfe.org/financial_news_press_releases/2002/20021108_dealing_with_foreclosure_on_your_home.asp
+http://www.financial-insights.com/FI/getdoc.jsp?containerId=IDC_P6582
+http://www.financial-ombudsman.org.uk/news/speech/lessons-from-merging.htm
+http://www.financial-planning.com/pubs/fp/20020401034.html
+http://www.financial-planning.com/pubs/fp/20031201013.html
+http://www.financial-planning.com/pubs/fp/20050101021.html
+http://www.financial-planning.com/pubs/mfm/20030908004.html
+http://www.financial-training.com/about/webpage_content.asp?WebPageContent_id=424
+http://www.financial.de/newsroom/englisch/33109.html
+http://www.financialaid.umd.edu/Scholarships/tips.html
+http://www.financialcryptography.com/mt/archives/000009.html
+http://www.financialdirector.co.uk/analysis/1126427
+http://www.financialexpress.com/fe_full_story.php?content_id=87302
+http://www.financialexpress.com/fe_full_story.php?content_id=94197&spf=true
+http://www.financiallearning.com/ge/articles.jsp?c=articles_business&s=business_article1
+http://www.financialprep.com/cfa/testimony.shtml
+http://www.financials.com/c/info/glossary.cfm
+http://www.financialsense.com/Market/hartman/2004/0707.html
+http://www.financialsense.com/Market/wood/2005/0204.html
+http://www.financialsense.com/editorials/murphy/2004/0531.html
+http://www.financialsense.com/fsu/editorials/saxena/2005/0526.html
+http://www.financialsense.com/series3/part1.htm
+http://www.financialsense.com/stormwatch/oldupdates/2004/0804.html
+http://www.find-a-sweetheart.com/blog/
+http://www.find-a-sweetheart.com/blog/2005/06/internet-datings-dirty-little-secret.html
+http://www.findadeath.com/Deceased/y/Robert%20Young/robert_young.htm
+http://www.findapp.com/fMgmt/PDetails.aspx?PID=323
+http://www.findaproperty.co.uk/region.aspx?regionid=058&opt=story&storyid=4863
+http://www.findaproperty.co.uk/story.aspx?storyid=5440
+http://www.findaproperty.com/agent.aspx?agentid=2134&opt=list&salerent=1
+http://www.findaproperty.com/area.aspx?areaid=0256&opt=prop&salerent=1&sp=0
+http://www.findaproperty.com/regi0007.html
+http://www.findaproperty.com/story.aspx?storyid=2603
+http://www.findaproperty.com/storylist0008.html
+http://www.findaresidence.com/relocation/checklist_buying.htm
+http://www.findarticles.com/p/articles/mi_g1epc/is_bio/ai_2419200525
+http://www.findarticles.com/p/articles/mi_go1495/is_200201/ai_n6701678
+http://www.findarticles.com/p/articles/mi_go1884/is_200210/ai_n7102701
+http://www.findarticles.com/p/articles/mi_go1886/is_200202/pg_3
+http://www.findarticles.com/p/articles/mi_go2804/is_200201/ai_n6743938
+http://www.findarticles.com/p/articles/mi_hb071/is_200202
+http://www.findarticles.com/p/articles/mi_hb264/is_200211/ai_hibm1G1115972803
+http://www.findarticles.com/p/articles/mi_hb3105/is_200404/ai_n7764779
+http://www.findarticles.com/p/articles/mi_hb3238/is_200407
+http://www.findarticles.com/p/articles/mi_m0254/is_5_59/ai_70738929
+http://www.findarticles.com/p/articles/mi_m0254/is_n4_v56/ai_20381875
+http://www.findarticles.com/p/articles/mi_m0365/is_n3_v38/ai_15595435
+http://www.findarticles.com/p/articles/mi_m0377/is_2000_Spring/ai_61600826
+http://www.findarticles.com/p/articles/mi_m0412/is_1_27/ai_55437786
+http://www.findarticles.com/p/articles/mi_m0412/is_3_30/ai_94465273
+http://www.findarticles.com/p/articles/mi_m0422/is_1_81/ai_54517307
+http://www.findarticles.com/p/articles/mi_m0422/is_1_82/ai_63910532/pg_5
+http://www.findarticles.com/p/articles/mi_m0422/is_2_80/ai_54073986/pg_4
+http://www.findarticles.com/p/articles/mi_m0422/is_3_84/ai_91673181
+http://www.findarticles.com/p/articles/mi_m0422/is_n1_v79/ai_20824288
+http://www.findarticles.com/p/articles/mi_m0422/is_n4_v78/ai_19178144
+http://www.findarticles.com/p/articles/mi_m0422/is_n4_v78/ai_19178146
+http://www.findarticles.com/p/articles/mi_m0425/is_2_59/ai_64161060
+http://www.findarticles.com/p/articles/mi_m0425/is_n2_v55/ai_18533952
+http://www.findarticles.com/p/articles/mi_m0675/is_1_21/ai_97171375
+http://www.findarticles.com/p/articles/mi_m0675/is_3_21/ai_112982392
+http://www.findarticles.com/p/articles/mi_m0675/is_3_22/ai_n6057263
+http://www.findarticles.com/p/articles/mi_m0675/is_3_22/ai_n6057270
+http://www.findarticles.com/p/articles/mi_m0675/is_6_17/ai_61181987
+http://www.findarticles.com/p/articles/mi_m0675/is_6_20/ai_94981924
+http://www.findarticles.com/p/articles/mi_m0682/is_3_20/ai_90188654
+http://www.findarticles.com/p/articles/mi_m0795/is_2_22/ai_74798215
+http://www.findarticles.com/p/articles/mi_m0815/is_11_27/ai_93987165
+http://www.findarticles.com/p/articles/mi_m0820/is_n210/ai_16019831
+http://www.findarticles.com/p/articles/mi_m0838/is_120/ai_107894054
+http://www.findarticles.com/p/articles/mi_m0838/is_n77/ai_17623541
+http://www.findarticles.com/p/articles/mi_m0846/is_12_23/ai_n6125777
+http://www.findarticles.com/p/articles/mi_m0846/is_5_21/ai_82333607
+http://www.findarticles.com/p/articles/mi_m0846/is_5_23/ai_111518920
+http://www.findarticles.com/p/articles/mi_m0846/is_9_23/ai_n6004454
+http://www.findarticles.com/p/articles/mi_m0857/is_n2_v13/ai_16896759
+http://www.findarticles.com/p/articles/mi_m0857/is_n5_v10/ai_12709420
+http://www.findarticles.com/p/articles/mi_m0887/is_4_23/ai_n6047689
+http://www.findarticles.com/p/articles/mi_m0902/is_2_33/ai_n13563127
+http://www.findarticles.com/p/articles/mi_m0903/is_n9_v13/ai_17441337
+http://www.findarticles.com/p/articles/mi_m0950/is_6_111/ai_103990563
+http://www.findarticles.com/p/articles/mi_m0999/is_7206_319/ai_55552955
+http://www.findarticles.com/p/articles/mi_m0BPW/is_6_15/ai_n6175512
+http://www.findarticles.com/p/articles/mi_m0BQK/is_3_6/ai_74699554
+http://www.findarticles.com/p/articles/mi_m0BQY/is_3_50/ai_112646145
+http://www.findarticles.com/p/articles/mi_m0BQY/is_3_51/ai_n8709812
+http://www.findarticles.com/p/articles/mi_m0BQY/is_6_50/ai_115495752
+http://www.findarticles.com/p/articles/mi_m0BTT/is_170_28/ai_n6040305
+http://www.findarticles.com/p/articles/mi_m0CUH/is_3_27/ai_n6008648
+http://www.findarticles.com/p/articles/mi_m0CUH/is_8_25/ai_90511354
+http://www.findarticles.com/p/articles/mi_m0CVQ/is_4_38/ai_113887419
+http://www.findarticles.com/p/articles/mi_m0CXQ/is_1_15/ai_97424233
+http://www.findarticles.com/p/articles/mi_m0CXQ/is_2002_August_1/ai_90567291
+http://www.findarticles.com/p/articles/mi_m0CYD/is_8_39/ai_n6025826
+http://www.findarticles.com/p/articles/mi_m0CYP/is_3_110/ai_84865570
+http://www.findarticles.com/p/articles/mi_m0DED/is_5_22/ai_81211890
+http://www.findarticles.com/p/articles/mi_m0DTI/is_3_33/ai_n11836471
+http://www.findarticles.com/p/articles/mi_m0DTI/is_5_32/ai_n6023875
+http://www.findarticles.com/p/articles/mi_m0DTI/is_n6_v26/ai_20802706
+http://www.findarticles.com/p/articles/mi_m0EUB/is_4_11/ai_55009448
+http://www.findarticles.com/p/articles/mi_m0EUY/is_24_4/ai_50129271
+http://www.findarticles.com/p/articles/mi_m0EXV/is_1_10/ai_n8576045
+http://www.findarticles.com/p/articles/mi_m0FCH/is_3_29/ai_78680465
+http://www.findarticles.com/p/articles/mi_m0FCI/is_4_62/ai_98249707
+http://www.findarticles.com/p/articles/mi_m0FCJ/is_5_31/ai_114923307
+http://www.findarticles.com/p/articles/mi_m0FCK/is_3_21/ai_104681091
+http://www.findarticles.com/p/articles/mi_m0FCK/is_5_21/ai_110618469
+http://www.findarticles.com/p/articles/mi_m0FCK/is_6_20/ai_96619906
+http://www.findarticles.com/p/articles/mi_m0FCL/is_8_34/ai_n13562627
+http://www.findarticles.com/p/articles/mi_m0FCL/is_9_30/ai_72684370
+http://www.findarticles.com/p/articles/mi_m0FCO/is_3_5/ai_108049496
+http://www.findarticles.com/p/articles/mi_m0FGI/is_3_13/ai_84304017
+http://www.findarticles.com/p/articles/mi_m0FKE/is_7_47/ai_90925280
+http://www.findarticles.com/p/articles/mi_m0FKX/is_1-2_39/ai_n6146847/pg_7
+http://www.findarticles.com/p/articles/mi_m0FKX/is_1-2_39/ai_n6146848/pg_5
+http://www.findarticles.com/p/articles/mi_m0FKX/is_2002_Spring-Summer/ai_87915678
+http://www.findarticles.com/p/articles/mi_m0FKX/is_3-4_38/ai_111265622
+http://www.findarticles.com/p/articles/mi_m0FQP/is_4568_130/ai_81761669
+http://www.findarticles.com/p/articles/mi_m0FQP/is_4595_131/ai_89858438
+http://www.findarticles.com/p/articles/mi_m0FQP/is_4695_133/ai_n6114762
+http://www.findarticles.com/p/articles/mi_m0FSL/is_n3_v68/ai_21136023
+http://www.findarticles.com/p/articles/mi_m0FXS/is_1_81/ai_82077629
+http://www.findarticles.com/p/articles/mi_m0GER/is_n94/ai_21260233
+http://www.findarticles.com/p/articles/mi_m0HFI/is_2_55/ai_112366866
+http://www.findarticles.com/p/articles/mi_m0HMU/is_13_29/ai_95909523
+http://www.findarticles.com/p/articles/mi_m0HMU/is_13_30/ai_111895912
+http://www.findarticles.com/p/articles/mi_m0HMU/is_4_30/ai_99817173
+http://www.findarticles.com/p/articles/mi_m0HMU/is_6_30/ai_102840385
+http://www.findarticles.com/p/articles/mi_m0HSW/is_2002_June_28/ai_89232778
+http://www.findarticles.com/p/articles/mi_m0HTZ/is_4_130/ai_80303787
+http://www.findarticles.com/p/articles/mi_m0HWW/is_10_4/ai_71711482
+http://www.findarticles.com/p/articles/mi_m0ISW/is_2001_May/ai_73959325
+http://www.findarticles.com/p/articles/mi_m0JIW/is_4_54/ai_83295123
+http://www.findarticles.com/p/articles/mi_m0KFZ/is_2_10
+http://www.findarticles.com/p/articles/mi_m0KFZ/is_2_10/ai_102274081
+http://www.findarticles.com/p/articles/mi_m0KJI/is_3_115/ai_98901459
+http://www.findarticles.com/p/articles/mi_m0KOC/is_3_8/ai_n13503041
+http://www.findarticles.com/p/articles/mi_m0KWG/is_2002_July-Sept/ai_107637284
+http://www.findarticles.com/p/articles/mi_m0KZC/is_2002_July_4/ai_90107695
+http://www.findarticles.com/p/articles/mi_m0MJG/is_4_1/ai_87779403
+http://www.findarticles.com/p/articles/mi_m0MJT/is_3_15/ai_n6134602
+http://www.findarticles.com/p/articles/mi_m0MXI/is_3_24/ai_114476999
+http://www.findarticles.com/p/articles/mi_m0NAH/is_1_34/ai_111896956
+http://www.findarticles.com/p/articles/mi_m0NHG/is_1_16/ai_98542877
+http://www.findarticles.com/p/articles/mi_m0NIU/is_2003_Feb/ai_99429212
+http://www.findarticles.com/p/articles/mi_m0NQM/is_3_42/ai_108442656
+http://www.findarticles.com/p/articles/mi_m0NTG/is_1_3/ai_n6109899
+http://www.findarticles.com/p/articles/mi_m0OUK/is_1_9/ai_101517630
+http://www.findarticles.com/p/articles/mi_m0PAG/is_2003_Oct-Dec/ai_110808262
+http://www.findarticles.com/p/articles/mi_m0PAL/is_505_159/ai_n6157804/pg_3
+http://www.findarticles.com/p/articles/mi_m0PAL/is_509_159/ai_n6153275
+http://www.findarticles.com/p/articles/mi_m0PAL/is_511_160/ai_n9770029
+http://www.findarticles.com/p/articles/mi_m0PAL/is_512_160/ai_n9770073
+http://www.findarticles.com/p/articles/mi_m0PAL/is_515_161/ai_n13499282
+http://www.findarticles.com/p/articles/mi_m0PAM/is_136/ai_106732183
+http://www.findarticles.com/p/articles/mi_m0UBT/is_42_18/ai_n6276318
+http://www.findarticles.com/p/articles/mi_m0UNZ/is_1998_Oct_19/ai_53098137
+http://www.findarticles.com/p/articles/mi_m0WVI/is_1998_June_29/ai_59272593
+http://www.findarticles.com/p/articles/mi_m1038/is_n2_v33/ai_9034471
+http://www.findarticles.com/p/articles/mi_m1038/is_n5_v38/ai_17565127
+http://www.findarticles.com/p/articles/mi_m1041/is_2_81/ai_97173893
+http://www.findarticles.com/p/articles/mi_m1041/is_6_80/ai_86061847
+http://www.findarticles.com/p/articles/mi_m1052/is_n12_v110/ai_7382852
+http://www.findarticles.com/p/articles/mi_m1077/is_7_58/ai_100544491
+http://www.findarticles.com/p/articles/mi_m1082/is_n1_v42/ai_20353608
+http://www.findarticles.com/p/articles/mi_m1082/is_n5_v42/ai_21151811
+http://www.findarticles.com/p/articles/mi_m1134/is_1_113/ai_113456801
+http://www.findarticles.com/p/articles/mi_m1134/is_2_112/ai_98254971
+http://www.findarticles.com/p/articles/mi_m1154/is_n5_v80/ai_12186497
+http://www.findarticles.com/p/articles/mi_m1175/is_4_36/ai_104681954
+http://www.findarticles.com/p/articles/mi_m1175/is_5_34/ai_82261895
+http://www.findarticles.com/p/articles/mi_m1175/is_n12_v22/ai_6995706
+http://www.findarticles.com/p/articles/mi_m1189/is_3_273/ai_73443807
+http://www.findarticles.com/p/articles/mi_m1189/is_4_274
+http://www.findarticles.com/p/articles/mi_m1189/is_4_274/ai_87706209
+http://www.findarticles.com/p/articles/mi_m1189/is_6_272/ai_66456043
+http://www.findarticles.com/p/articles/mi_m1189/is_n1_v260/ai_6273527
+http://www.findarticles.com/p/articles/mi_m1208/is_10_228/ai_114086623
+http://www.findarticles.com/p/articles/mi_m1208/is_25_227/ai_103799818
+http://www.findarticles.com/p/articles/mi_m1208/is_4_228/ai_112647664
+http://www.findarticles.com/p/articles/mi_m1208/is_52_228/ai_n8702696
+http://www.findarticles.com/p/articles/mi_m1216/is_n2_v180/ai_6286265
+http://www.findarticles.com/p/articles/mi_m1216/is_n2_v180/ai_6286289
+http://www.findarticles.com/p/articles/mi_m1248/is_10_92/ai_n7576774/pg_2
+http://www.findarticles.com/p/articles/mi_m1248/is_9_92/ai_n6232154
+http://www.findarticles.com/p/articles/mi_m1248/is_n12_v83/ai_17860704
+http://www.findarticles.com/p/articles/mi_m1264/is_1_31/ai_61891747
+http://www.findarticles.com/p/articles/mi_m1264/is_9_33/ai_96195348
+http://www.findarticles.com/p/articles/mi_m1272/is_2700_132/ai_108791285
+http://www.findarticles.com/p/articles/mi_m1279/is_1999_August/ai_55226118
+http://www.findarticles.com/p/articles/mi_m1279/is_n137/ai_13580738
+http://www.findarticles.com/p/articles/mi_m1282/is_25_53/ai_80932687
+http://www.findarticles.com/p/articles/mi_m1282/is_n7_v45/ai_13699788
+http://www.findarticles.com/p/articles/mi_m1295/is_1_63/ai_53531071
+http://www.findarticles.com/p/articles/mi_m1306/is_4_69/ai_99554650
+http://www.findarticles.com/p/articles/mi_m1306/is_4_70/ai_n5993122
+http://www.findarticles.com/p/articles/mi_m1309/is_3_35/ai_54259348
+http://www.findarticles.com/p/articles/mi_m1310/is_2001_Dec/ai_82066715
+http://www.findarticles.com/p/articles/mi_m1346/is_7_46/ai_76157784
+http://www.findarticles.com/p/articles/mi_m1365/is_11_33/ai_102453200
+http://www.findarticles.com/p/articles/mi_m1511/is_11_20/ai_57042529/pg_2
+http://www.findarticles.com/p/articles/mi_m1511/is_2_20/ai_53631764
+http://www.findarticles.com/p/articles/mi_m1511/is_9_21/ai_64698195
+http://www.findarticles.com/p/articles/mi_m1511/is_n7_v18/ai_19560110
+http://www.findarticles.com/p/articles/mi_m1568/is_11_35/ai_n6030471
+http://www.findarticles.com/p/articles/mi_m1568/is_1_34/ai_84841743
+http://www.findarticles.com/p/articles/mi_m1568/is_2_34/ai_85701096
+http://www.findarticles.com/p/articles/mi_m1568/is_9_35/ai_n6156598/pg_2
+http://www.findarticles.com/p/articles/mi_m1585/is_11_23/ai_50338518
+http://www.findarticles.com/p/articles/mi_m1608/is_4_18/ai_84153427
+http://www.findarticles.com/p/articles/mi_m1608/is_7_18/ai_88583543
+http://www.findarticles.com/p/articles/mi_m1608/is_n7_v14/ai_20946881
+http://www.findarticles.com/p/articles/mi_m1608/is_n9_v14/ai_21099916
+http://www.findarticles.com/p/articles/mi_m2120/is_2_80/ai_54336604
+http://www.findarticles.com/p/articles/mi_m2120/is_6_80/ai_56022627
+http://www.findarticles.com/p/articles/mi_m2185/is_3_14/ai_99430626
+http://www.findarticles.com/p/articles/mi_m2242/is_1645_282/ai_98184520
+http://www.findarticles.com/p/articles/mi_m2294/is_2002_Nov/ai_97728459
+http://www.findarticles.com/p/articles/mi_m2294/is_2003_April/ai_101174062/pg_2
+http://www.findarticles.com/p/articles/mi_m2294/is_2003_April/ai_101174062/pg_3
+http://www.findarticles.com/p/articles/mi_m2294/is_n3-4_v37/ai_20119673
+http://www.findarticles.com/p/articles/mi_m2372/is_3_36/ai_61487450
+http://www.findarticles.com/p/articles/mi_m2405/is_n4_v119/ai_13906384
+http://www.findarticles.com/p/articles/mi_m2472/is_3_13/ai_95148981
+http://www.findarticles.com/p/articles/mi_m2479/is_5_28/ai_73640914
+http://www.findarticles.com/p/articles/mi_m2493/is_6_51/ai_87025854
+http://www.findarticles.com/p/articles/mi_m2822/is_2001_Spring-Summer/ai_100808920
+http://www.findarticles.com/p/articles/mi_m2843/is_2_24/ai_60302609
+http://www.findarticles.com/p/articles/mi_m3012/is_4_179/ai_54480074
+http://www.findarticles.com/p/articles/mi_m3101/is_7_75/pg_2
+http://www.findarticles.com/p/articles/mi_m3165/is_2_40/ai_113644202
+http://www.findarticles.com/p/articles/mi_m3197/is_8_49/ai_n6171795
+http://www.findarticles.com/p/articles/mi_m3225/is_n4_v49/ai_15166719
+http://www.findarticles.com/p/articles/mi_m3230/is_n4_v25/ai_14039870
+http://www.findarticles.com/p/articles/mi_m3284/is_n4_v13/ai_9242982
+http://www.findarticles.com/p/articles/mi_m3289/is_4_171/ai_84652261
+http://www.findarticles.com/p/articles/mi_m3741/is_10_50/ai_93534994
+http://www.findarticles.com/p/articles/mi_m3741/is_9_52/ai_n6210368
+http://www.findarticles.com/p/articles/mi_m3763/is_n5_v91/ai_11847828
+http://www.findarticles.com/p/articles/mi_m3765/is_n3_v16/ai_15349865
+http://www.findarticles.com/p/articles/mi_m3779/is_n51/ai_11917846
+http://www.findarticles.com/p/articles/mi_m3809/is_n63/ai_11173918
+http://www.findarticles.com/p/articles/mi_m3830/is_2_53/ai_n6094125
+http://www.findarticles.com/p/articles/mi_m3888/is_2_28/ai_n6157854
+http://www.findarticles.com/p/articles/mi_m3955/is_n6_v48/ai_18989780
+http://www.findarticles.com/p/articles/mi_m3MKT/is_177_106/ai_50342144
+http://www.findarticles.com/p/articles/mi_m4021/is_2002_Jan_1/ai_82264530
+http://www.findarticles.com/p/articles/mi_m4021/is_n2_v19/ai_19115337
+http://www.findarticles.com/p/articles/mi_m4339/is_2000_Annual/ai_63543388
+http://www.findarticles.com/p/articles/mi_m5072/is_34_25/ai_107255142
+http://www.findarticles.com/p/articles/mi_m5072/is_46_24/ai_97768168
+http://www.findarticles.com/p/articles/mi_m6280/is_4_191/ai_74337793/pg_2
+http://www.findarticles.com/p/articles/mi_m6280/is_5_198/ai_n7584069
+http://www.findarticles.com/p/articles/mi_qa3621/is_199601/ai_n8749389
+http://www.findarticles.com/p/articles/mi_qa3631/is_200207/ai_n9134392
+http://www.findarticles.com/p/articles/mi_qa3647/is_200404/ai_n9377675
+http://www.findarticles.com/p/articles/mi_qa3675/is_200503/ai_n13461603
+http://www.findarticles.com/p/articles/mi_qa3689/is_200208/ai_n9095994
+http://www.findarticles.com/p/articles/mi_qa3705/is_200501/ai_n13632939/pg_3
+http://www.findarticles.com/p/articles/mi_qa3727/is_200104/ai_n8952575
+http://www.findarticles.com/p/articles/mi_qa3742/is_200406/ai_n9452478/pg_3
+http://www.findarticles.com/p/articles/mi_qa3754/is_199803/ai_n8806523
+http://www.findarticles.com/p/articles/mi_qa3772/is_200311/ai_n9313288
+http://www.findarticles.com/p/articles/mi_qa3793/is_200204/ai_n9079825/pg_4
+http://www.findarticles.com/p/articles/mi_qa3798/is_199810/ai_n8814952
+http://www.findarticles.com/p/articles/mi_qa3818/is_200301/ai_n9231299
+http://www.findarticles.com/p/articles/mi_qa3819/is_200403/ai_n9398536
+http://www.findarticles.com/p/articles/mi_qa3844/is_200405/ai_n9427743
+http://www.findarticles.com/p/articles/mi_qa3857/is_200001/ai_n8883712
+http://www.findarticles.com/p/articles/mi_qa3892/is_200501/ai_n12934780
+http://www.findarticles.com/p/articles/mi_qa3900/is_200209/ai_n9137894
+http://www.findarticles.com/p/articles/mi_qa3949/is_200403/ai_n9357932
+http://www.findarticles.com/p/articles/mi_qa3977/is_200409/ai_n9449884
+http://www.findarticles.com/p/articles/mi_qa3981/is_200212/ai_n9153966
+http://www.findarticles.com/p/articles/mi_qa4046/is_200404/ai_n9396959/pg_5
+http://www.findarticles.com/p/articles/mi_qa4083/is_200504/ai_n13634731
+http://www.findarticles.com/p/articles/mi_qn4153/is_200302/ai_n12032582
+http://www.findarticles.com/p/articles/mi_zdcis/is_200212/ai_ziff35096
+http://www.findarticles.com/p/articles/mi_zdoup/is_200411/ai_n7180960
+http://www.findarticles.com/p/articles/mi_zdpcm/is_200502/ai_n9483058
+http://www.findarticles.com/p/search?tb=art&qt=Independent+regulatory+commissions+%2F+Officials+and+employees
+http://www.findaupair.co.uk/fam_what_is_an_aupair.htm
+http://www.findforward.com/about/
+http://www.findgift.com/Holidays/Christmas/Her/Friend/
+http://www.findgift.com/Holidays/Christmas/Him/Friend/
+http://www.findinglisp.com/blog/2004/11/web-application-design-rest-of-story.html
+http://www.finditireland.com/links/businessb.html
+http://www.findlaw.com.au/articles/default.asp?task=read&id=12894&site=GN
+http://www.findlaw.com.au/cases/caseRTF.asp?id=345428
+http://www.findlaw.com.au/cases/caseRTF.asp?id=345716
+http://www.findlaw.com/
+http://www.findlaw.com/12international/countries/nz/articles/2026.html
+http://www.findory.com/source?source=Sadagopan's%20weblog%20on%20Emerging%20Technologies&ib=1
+http://www.finds.org.uk/news/letters3.php
+http://www.finds.org.uk/news/story.php?newsID=142
+http://www.findwatches.co.uk/products_new.php/page/5
+http://www.findyourcoach.com/roi-study.htm
+http://www.fineartforum.org/Backissues/Vol_18/faf_v18_n02/faftext/gye.html
+http://www.fineartsassociation.org/performance.html
+http://www.finecutfilms.com/Interviews/Interee03.html
+http://www.finecutfilms.com/Production/Interviews/Interview1.html
+http://www.finecutfilms.com/Production/Overview/Over1.html
+http://www.finecutfilms.com/Production/Overview/Over2.html
+http://www.finegael.ie/PubUploads/Coveney%20-%20Renewable%20Energy.htm
+http://www.finegael.ie/fine-gael-news.cfm/NewsID/21794/action/detail/year/2005/month/1/level/page/aid/186/
+http://www.finelinefeatures.com/advent/synopsis.htm
+http://www.finelinefeatures.com/lvc/prodnotes.htm
+http://www.fineliving.com/fine/cda/select_print/1,1983,FINE_8068_16819_SELECT-TEXT-DETAIL-PRINT,00.html
+http://www.fineliving.com/fine/practical_living/text/0,1663,FINE_8068_14283,00.html
+http://www.fineliving.com/fine/practical_living/text/0,1663,FINE_8068_16361,00.html
+http://www.fineliving.com/fine/practical_living/text/0,1663,FINE_8068_16616,00.html
+http://www.fineliving.com/fine/practical_living/text/0,1663,FINE_8068_16819,00.html
+http://www.fineliving.com/fine/practical_living/text/0,1663,FINE_8068_17337,00.html
+http://www.fineliving.com/fine/rejuvenation_essentials/article/0,1663,FINE_1422_3506320,00.html
+http://www.finescale.com/
+http://www.finescale.com/fsm/community/forum/topic.asp?TOPIC_ID=32938
+http://www.finestimage.com/singlesnf/scmsw.htm
+http://www.finestimage.com/singlesnf/tnwsm.htm
+http://www.fineticachild.com/html/testimonials.html
+http://www.finewaters.com/Water_Food/Stemware/Fostoria_Glass_Company.asp
+http://www.finfacts.com/biz10/europeanuniontaxationstructuressystems.htm
+http://www.finfacts.com/biz10/idairelandinvestmentreview.htm
+http://www.finfacts.com/irelandeconomy/usmultinationalprofitsireland.htm
+http://www.fingaz.co.zw/fingaz/2005/January/January13/7512.shtml
+http://www.finishsystems.com/accusprayairsprayguns.html
+http://www.fink.com/papers/impossible.html
+http://www.finkelsteinlibrary.org/forthcoming.html
+http://www.finnachta.com/eu-env-comm-m-wallstromm.htm
+http://www.finnfacts.com/english/innovations/investment/
+http://www.finographics.com/schutzhund/protection/preydrive-1.htm
+http://www.finsights.com/article43266.html
+http://www.finsvc.duke.edu/gap/m200-070.html
+http://www.fintrac.gc.ca/re-ed/casinos_e.asp
+http://www.fintrac.gc.ca/re-ed/fx_e.asp
+http://www.fintrac.gc.ca/re-ed/life_e.asp
+http://www.fintrac.gc.ca/re-ed/real_estate_e.asp
+http://www.fintronic.com/manual/farm.html
+http://www.fipr.org/
+http://www.fipresci.org/criticism/archive/archive_2004/szolnok/szolnok_04_tkurelec.htm
+http://www.fire-flies.net/Content/Ecological%20Renewal/Content/Peace%20and%20Intercultural%20perspectives
+http://www.fire-flies.net/Content/Peace%20and%20Intercultural%20perspectives
+http://www.fire-museum.netfirms.com/page4.html
+http://www.fire.ca.gov/FireEmergencyResponse/FirePlan/appendixb.html
+http://www.fire.ca.gov/cdf/incidents/about.html
+http://www.fire.gov/newsletter/fall2004/page_one.htm
+http://www.fire.org.nz/building/faq/DRU.htm
+http://www.fire.org.uk/IETRI/news-desk/template.php?t=4&id=904
+http://www.fire.qld.gov.au/exchange/
+http://www.fire.qld.gov.au/news/view.asp?id=142
+http://www.fire.uni-freiburg.de/GFMCnew/2003/0128/20030128_aus.htm
+http://www.fire.uni-freiburg.de/GFMCnew/2003/0204/20030204_aus.htm
+http://www.fire.uni-freiburg.de/GFMCnew/2003/0214/20030214_aus.htm
+http://www.fireandknowledge.org/archives/2005/01/
+http://www.fireandknowledge.org/archives/category/art-and-design/
+http://www.firearmstactical.com/briefs3.htm
+http://www.firefacts.com/training.html
+http://www.firefightersburnfundvictoria.ca/support/unit/unit1.htm
+http://www.firefightersworkout.com/fitbyte82.html
+http://www.fireflyfans.net/thread.asp?b=18&t=7837
+http://www.fireflymovie.com/news.html
+http://www.fireflysun.com/book/breakingranks.php
+http://www.fireflysun.com/book/match.php
+http://www.firelightpublishing.com/bwprologue.htm
+http://www.firelily.com/gender/gianna/why.come.out.html
+http://www.firelily.com/gender/sstgfaq/family.html
+http://www.firelily.com/gender/sstgfaq/tstg.html
+http://www.fireplan.gov/leadership/meetnote_5_18_04.html
+http://www.fireplan.gov/resources/glossary/c.html
+http://www.firesafe.org.uk/html/basicmoe.htm
+http://www.firesafetytoolbox.org.uk/TwoColumn/FoundationStones/CoreFirePreventionMessages/FirePrevention.asp
+http://www.firethistime.org/feariraqgovt.htm
+http://www.firethistime.org/quotes.htm
+http://www.firetimes.com/subcontent.asp?FragID=11587
+http://www.firetrip.sr.unh.edu/
+http://www.firewheeldesign.com/sparkplug/articles/wwil/
+http://www.fireworld.com/incidents/April2001.htm
+http://www.firingsquad.com/news/newsarticle.asp?searchid=6705
+http://www.firingsquad.com/news/newsarticle.asp?searchid=8191
+http://www.first-business-systems.co.uk/companyformations/termsandconditions.php
+http://www.first-school.ws/activities/firststeps/olympics.htm
+http://www.first-unitarian-pgh.org/worship/sermons/sermon20020915.html
+http://www.first.army.mil/pao/2005_Articles/2_28_BCT_Ready_Iraq.htm
+http://www.firstact.com/www3/tuneandplay/howto/training.asp
+http://www.firstactive.co.uk/fa/forms/application_form_2004.pdf?nourl=www.firstactive.co.uk/nonsales-jobcentre-app_form
+http://www.firstactive.co.uk/fa/journalists.shtml
+http://www.firstaffirmative.com/news/sriArticle.html
+http://www.firstam.com/faf/ir/earnings-2-03b.html
+http://www.firstambank.com/commercialloans.html
+http://www.firstamendmentcenter.org/Speech/arts/faqs.aspx?id=12246
+http://www.firstamendmentcenter.org/Speech/arts/faqs.aspx?id=13482
+http://www.firstamendmentcenter.org/Speech/arts/faqs.aspx?id=14717
+http://www.firstamendmentcenter.org/Speech/arts/topic.aspx?topic=comix
+http://www.firstamendmentcenter.org/Speech/overview.aspx
+http://www.firstamendmentcenter.org/commentary.aspx?id=2704
+http://www.firstamendmentcenter.org/rel_liberty/publicschools/topic_faqs.aspx?topic=religious_clubs
+http://www.firstamendmentcenter.org/rel_liberty/publicschools/topic_faqs.aspx?topic=religious_clubs&printer-friendly=y
+http://www.firstamendmentcenter.org/speech/adultent/topic.aspx?topic=pornography
+http://www.firstamendmentcenter.org/speech/adultent/topic.aspx?topic=pornography&printer-friendly=y
+http://www.firstamendmentcenter.org/speech/internet/topic.aspx?topic=pornography
+http://www.firstamendmentcenter.org/speech/libraries/topic.aspx?topic=banned_books
+http://www.firstamendmentcenter.org/speech/studentexpression/news.aspx?id=14679&printer-friendly=y
+http://www.firstamendmentschools.org/news/article.aspx?id=15122
+http://www.firstbackup.com/Partners/Affiliate/default.asp
+http://www.firstbaptistnorthville.com/fbn_files/adult.html
+http://www.firstbusiness.us/
+http://www.firstcaribbeanbank.com/terms_conditions.html
+http://www.firstchoice.co.uk/info/aboutus/contactus.html
+http://www.firstconsult.com/?action=view_article&id=1037290&type=103&bref=1
+http://www.firstcov.com/happening.htm
+http://www.firstcu.coop/products&services.htm
+http://www.firstenergygroup.com/company/company_profiles.htm
+http://www.firstfoot.com/php/glossary/phpglossar_0.8/index.php?letter=p
+http://www.firstfoot.com/php/glossary/phpglossar_0.8/index.php?letter=s
+http://www.firstgov.gov/
+http://www.firstgov.gov/Agencies/State_and_Territories.shtml
+http://www.firsthome.gov.au/
+http://www.firstmonday.dk/issues/issue9_1/galitsky/
+http://www.firstmonday.org/issues/issue10_2/crowston/
+http://www.firstmonday.org/issues/issue10_4/geist/
+http://www.firstmonday.org/issues/issue10_4/meijer/
+http://www.firstmonday.org/issues/issue10_5/iannacci/
+http://www.firstmonday.org/issues/issue10_6/bloom/
+http://www.firstmonday.org/issues/issue4_6/kelsey/
+http://www.firstmonday.org/issues/issue5_10/smith/
+http://www.firstmonday.org/issues/issue5_2/delong/
+http://www.firstmonday.org/issues/issue5_5/nardi/
+http://www.firstmonday.org/issues/issue5_9/sholtz/
+http://www.firstmonday.org/issues/issue6_10/wiggins/
+http://www.firstmonday.org/issues/issue6_11/ishii/
+http://www.firstmonday.org/issues/issue6_11/poblocki/
+http://www.firstmonday.org/issues/issue6_6/newmarch/
+http://www.firstmonday.org/issues/issue6_7/abel/
+http://www.firstmonday.org/issues/issue6_7/bennett/
+http://www.firstmonday.org/issues/issue6_9/brown/
+http://www.firstmonday.org/issues/issue7_10/cisler/
+http://www.firstmonday.org/issues/issue7_4/hargittai/
+http://www.firstmonday.org/issues/issue7_6/krishnamurthy/
+http://www.firstmonday.org/issues/issue8_2/keats/
+http://www.firstmonday.org/issues/issue8_5/keller/
+http://www.firstmonday.org/issues/issue8_9/tompkins/
+http://www.firstmonday.org/issues/issue9_12/poulin/
+http://www.firstmonday.org/issues/issue9_3/zachary/
+http://www.firstmonday.org/issues/issue9_4/levesque/
+http://www.firstparish.org/sermons/2002-04-07.html
+http://www.firstpreston.com/disclaimers.asp
+http://www.firstrunfeatures.com/th_title_d.html
+http://www.firstscience.com/SITE/editor/045_ramblings_27022004.asp
+http://www.firstscience.com/SITE/factfile/factfile2521_2540.asp
+http://www.firstscience.com/SITE/review_radiant.asp
+http://www.firstscience.com/site/articles/dinosaur.asp
+http://www.firstscience.com/site/articles/rees2.asp
+http://www.firstscience.com/site/editor/045_ramblings_27022004.asp
+http://www.firststone.org/articles/topics/parents/a_model_for_hurting_parents.htm
+http://www.firstthings.com/ftissues/ft0011/articles/coons.html
+http://www.firstthings.com/ftissues/ft0101/public.html
+http://www.firstthings.com/ftissues/ft0106/reviews/carrese.html
+http://www.firstthings.com/ftissues/ft0210/articles/witte.html
+http://www.firstthings.com/ftissues/ft0401/reviews/barr.html
+http://www.firstthings.com/ftissues/ft0403/articles/young.html
+http://www.firstthings.com/ftissues/ft0408/articles/budziszewski.htm
+http://www.firstthings.com/ftissues/ft0410/articles/noll.htm
+http://www.firstthings.com/ftissues/ft0504/public.html
+http://www.firstthings.com/ftissues/ft9202/articles/noll.html
+http://www.firstthings.com/ftissues/ft9504/articles/harvey.html
+http://www.firstthings.com/ftissues/ft9604/articles/stuntz.html
+http://www.firstthings.com/ftissues/ft9702/articles/iannone.html
+http://www.firstthings.com/ftissues/ft9812/public.html
+http://www.firsttracksonline.com/utah2004.htm
+http://www.firsttvdrama.com/enterprise/e8.php3
+http://www.firstusa.com/cgi-bin/webcgi/webserve.cgi?partner_dir_name=midfirst&page=cont&mkid=6029
+http://www.firstwebbuilder.co.uk/ebooks.html
+http://www.firstworldwar.bham.ac.uk/ma/dayschools.htm
+http://www.firstworldwar.com/battles/nasiriyeh.htm
+http://www.firstworldwar.com/battles/overview_gf.htm
+http://www.firstworldwar.com/diaries/cavalrybrigadeatcambrai.htm
+http://www.firstworldwar.com/diaries/labourcompanyatypres.htm
+http://www.firstworldwar.com/diaries/ordinarywaronthesomme.htm
+http://www.firstworldwar.com/features/christmastruce.htm
+http://www.firstworldwar.com/features/foch.htm
+http://www.firstworldwar.com/features/trenchlife.htm
+http://www.firstworldwar.com/features/wilsonadministration.htm
+http://www.firstworldwar.com/source/scrapofpaper2.htm
+http://www.firstworldwar.com/source/serbia_neutralleague.htm
+http://www.firstworldwar.com/weaponry/tanks.htm
+http://www.fis.utoronto.ca/resources/eleccoll/bscw/instructions.htm
+http://www.fish4fun.com/contact.htm
+http://www.fishandgame.com/icefish/wait.htm
+http://www.fishdreamer.com/20jan05.html
+http://www.fisher-price.com/us/playstages/play.asp?lMinAge=1.50&lMaxAge=2.00
+http://www.fisher-price.com/us/prepare/article.asp?c=bg_prgnttn&artid=158553
+http://www.fisher-price.com/us/prepare/qanda.asp?c=bg_prgnttn&qandaid=114279
+http://www.fisheries.co.uk/whitesprings/
+http://www.fisheries.org/html/fisheries/F2809/Guest%20Director.htm
+http://www.fishernuts.com/employ.htm
+http://www.fisherycrisis.com/nscod.htm
+http://www.fishingmegastore.com/acatalog/Books_and_Videos.html
+http://www.fishingnj.org/netusa11.htm
+http://www.fishlakegeorge.com/
+http://www.fishlakia.com/john3.htm
+http://www.fishpondinfo.com/toad.htm
+http://www.fishsniffer.com/cgi-bin/forumsyabb/YaBB.pl?board=general_classifieds;action=display;num=1107283827
+http://www.fishtech.com/speech.html
+http://www.fisme.org.in/custom.htm
+http://www.fiso.co.uk/premiership_players.htm
+http://www.fit.edu/hr/current_postings.htm
+http://www.fitchburg.k12.ma.us/fhs/art.html
+http://www.fitchratings.com/corporate/presentations/asia_glob_bank_conf_jun2005/pages/agenda.html
+http://www.fitfaq.com/2004/12/staying-active-keeps-mind-sharp-in-old.html
+http://www.fitfaq.com/make-time-for-exercise.html
+http://www.fitflex.com/legal_gear_methyl_1_p_review.html
+http://www.fitforpublicconsumption.com/
+http://www.fitlouisville.com/version3/fitLouisville1.asp?p=h
+http://www.fitmaternity.com/Merchant2/merchant.mvc?Screen=CTGY&Category_Code=t2
+http://www.fitness.gov/exerciseweight.html
+http://www.fitness.gov/may_month_2005/maymonth-activityideas.htm
+http://www.fitnessandkids.com/kids-diabetes.html
+http://www.fitnessav.ca/selectingvendor.aspx
+http://www.fitnessboutique.co.uk/default.asp?fonction=eng&option=cond
+http://www.fitnessgram.net/ProgDesc.htm
+http://www.fitnessinfomercialreview.com/hollywooddiet.htm
+http://www.fitnessmanagement.com/FM/tmpl/genPage.asp?p=/information/articles/library/groupex/social0501.html
+http://www.fitnessnetworkcentre.com/PRODUCTS/SHOWPRODUCT.CFM?ISBN=073604907X
+http://www.fittonbooks.com/
+http://www.fitwoman.com/testimonials.htm
+http://www.fitz-claridge.com/node.php?id=7
+http://www.fiu.edu/~mizrachs/techgnosis.html
+http://www.fivemasks.com/indie_eye002.htm
+http://www.fiveoclockclub.com/becomemember2_successStories.shtml
+http://www.fivesevensix.com/articles/2005/05
+http://www.fix.law-firm.co.uk/napier.htm
+http://www.fki.or.kr/letter/issue/0408/activity.asp
+http://www.flabar.org/tfb/TFBConsum.nsf/0/ef6bbf8e74deceaa85256b2f006c5aba?OpenDocument
+http://www.flaghouse.com/jobs.asp?Category=Athletic
+http://www.flags.net/
+http://www.flagstaffactivist.org/fan/study.phtml
+http://www.flahec.org/nfahec/chs/2001/escambia.html
+http://www.flakehq.com/rolemode.htm
+http://www.flanders-image.com/index.php?col=/news&doc=050404_New_MIPTV_05_product_A_to_Z
+http://www.flascot.com/
+http://www.flash-mx.com/news/archives/2005_03.cfm
+http://www.flashbrights.com/research.htm
+http://www.flashplayer.com/games/toprated/
+http://www.flashwebhost.com/circuit/morse_code_tutor.php
+http://www.flasolar.com/overview.htm
+http://www.flastergreenberg.com/services/fed_tax.cfm
+http://www.flat-panel-mount.com/flat_panel_arm_mount/LCD_ARM_610.htm
+http://www.flatbridge.com/inventory_management.aspx
+http://www.flatearth.com/modules.php?name=Forums&file=viewtopic&p=18681
+http://www.flatearth.com/modules.php?name=Forums&file=viewtopic&t=344&view=previous
+http://www.flatearth.com/modules.php?name=Forums&file=viewtopic&t=552
+http://www.flatline.org.uk/
+http://www.flausa.com/cms/index.php/id=149
+http://www.fleetcapital.com/resources/capeyes/a08-04-237.html
+http://www.fleetcounselor.com/
+http://www.fleetwood-trawlers.connectfree.co.uk/monument.html
+http://www.fleitkain.com/page6pub.html
+http://www.fleshbot.com/archives/deep-inside-the-alabama-sex-toy-ban-018818.php
+http://www.fleurdelis.com/coatofarms.htm
+http://www.flexibility.co.uk/flexwork/time/rostima.htm
+http://www.flexiblelearning.net.au/toolbox/series3/315.htm
+http://www.flexicose.com/flexicose-pets/
+http://www.flfairtrade.org/index.php?fuseaction=announcements.List&aCategory=Florida
+http://www.flghrwg.net/index.php?option=content&task=view&id=394&Itemid=84
+http://www.flhosp.org/services/breakchain/
+http://www.flickfilosopher.com/flickfilos/archive/2005/hidealone.shtml
+http://www.flickfilosopher.com/oscars/bestpix/englishpatient.shtml
+http://www.flickr.com/groups/topic/33020/
+http://www.flight93crash.com/flight93_heroes.html
+http://www.flight93crash.com/flight93_military_faq.html
+http://www.flightsimnetwork.com/aea/
+http://www.flightweb.com/archive/flightmed/2003/04/msg00058.html
+http://www.flinders.edu.au/?news=21
+http://www.flinders.edu.au/getconnected/dropout.htm
+http://www.flipcode.com/articles/gprimer1_issue09.shtml
+http://www.flirt.com/forums/index899.html
+http://www.flirtzone.com/testimonial%205.htm
+http://www.flll.jku.at/teaching/Pattern/pattern.html
+http://www.flll.uni-linz.ac.at/teaching/Pattern/pattern.html
+http://www.fln.vcu.edu/grimm/dorneng.html
+http://www.fln.vcu.edu/ld/ld.html
+http://www.flo-joe.co.uk/newsletter/cae/caeletter.htm
+http://www.flo.com.au/History.htm
+http://www.flong.com/parsons/thesis02002/020020926.html
+http://www.floodlight.org/theory/bofna.html
+http://www.floordaily.net/features/Feat100Man0503.htm
+http://www.floordaily.net/features/FeaturesMain.htm
+http://www.floordaily.net/newlayout/floorradioarchives.asp
+http://www.floornature.com/worldaround/articolo.php/art3/5/en/arch3
+http://www.floorpie.net/
+http://www.flopturnriver.com/phpBB2/forum/losing-15-big-bets-per-hour-in-a-fish-tank-2224.htm
+http://www.flopturnriver.com/phpBB2/viewtopic.php?t=2126
+http://www.flora.ca/russell/drafts/globe-20041111.html
+http://www.flora.org/flora.comnet-www/1570
+http://www.flora.org/homeschool-ca/faq.html
+http://www.florahealth.com/flora/home/international/products/7515.asp
+http://www.florida-actors.com/FLjobs.htm
+http://www.florida-estate.com/defence.html
+http://www.florida-inns.com/North-East/staugustine.shtml
+http://www.florida-nursing-home-abuse.com/
+http://www.floridabicycle.org/freedomfromfear.html
+http://www.floridabicycle.org/rights/takethelane.html
+http://www.floridahistory.com/inset99.html
+http://www.floridamalpractice.com/stat400.022.htm
+http://www.floridaramada.com/
+http://www.floridareenactorsonline.com/flatlakelet2000.htm
+http://www.floridasportsman.com/boating/0403_straight/index1.html
+http://www.floridasportsman.com/features/F_9706_Shot/index1.html
+http://www.floridastateparks.org/findapark.htm
+http://www.floridata.com/ref/C/cari_pap.cfm
+http://www.florin.ms/hareflorence4.html
+http://www.flounder.com/bush2.htm
+http://www.flow3d.com/Cfd-101/freesmod.htm
+http://www.flow3d.com/Cfd-101/whatyou.htm
+http://www.flowbiz.com.au/FlowBiz/Information/Procedurecharteredition.asp
+http://www.flowerscanada.com/flwrs35a/El_Mirage_Florist_Fenton_Flowers.html
+http://www.flowershopnetwork.com/search/SC/Rock%20Hill
+http://www.flowmaster.com/case_studies/general/
+http://www.flra.gov/decisions/v23/23-088-3.html
+http://www.flsenate.gov/Session/index.cfm?Mode=Bills&SubMenu=1&Tab=session&BI_Mode=ViewBillInfo&BillNum=0434
+http://www.flsenate.gov/Session/index.cfm?Mode=Bills&SubMenu=1&Tab=session&BI_Mode=ViewBillInfo&BillNum=0558
+http://www.flu.org.cn/hitscount.asp?action=newsHitsCount&link_id=591&filename=2005228257
+http://www.fluka.org/material/Fluka/sect/s014/text.html
+http://www.flutehistory.com/Players/Johann_George_Tromlitz/index.php3
+http://www.flutespirit.com/PrivateLesson/Dvorak/Largo_1a.html
+http://www.fluxion.com/?count=5
+http://www.flwi.ugent.be/AAHE/garbage.htm
+http://www.flwriters.org/
+http://www.fly.co.uk/fly/archives/2004/11/carla_marciano_-_following_in_tranes_groove.html
+http://www.fly2dc.com/db_articles/article.asp?article_id=30
+http://www.fly2neverland.com/issue11.html
+http://www.flyariana.com/history.htm
+http://www.flybournemouth.com/passenger-information/security-advice.php
+http://www.flychicago.com/doa/avi_news/doa_avi_news_pr_86.shtm
+http://www.flydealflies.com/leaderdesign.html
+http://www.flydealflies.com/strikeindicators.html
+http://www.flyernews.com/article.php?section=AE&volume=52&issue=2&artnum=01
+http://www.flyertalk.com/forum/showthread.php?t=394070
+http://www.flyethiopian.com/new/shebamiles/terms.aspx
+http://www.flyfisherman.com/international/ovscotland/
+http://www.flyfisherman.com/skills/brleadercalc/
+http://www.flyfishingforum.com/chronicles/gooddoctor/bonus_trip.htm
+http://www.flyi.com/too-travel_policies.htm
+http://www.flyingsites.co.uk/features/pylon2000.htm
+http://www.flyingsnail.com/Dahbud/rss
+http://www.flyingsnail.com/snailmain.html
+http://www.flynnfiles.com/archives/politics2005/cmon_get_happy.html
+http://www.flyoakland.com/tex/history.shtml
+http://www.flyte.biz/resources/newsletters/05/02-selling-online.html
+http://www.flyted.com/meetted/lowfare.htm?navSource=lowfare
+http://www.flywight.co.uk/news.htm
+http://www.fm.uci.edu/recycling/advantage.html
+http://www.fm1032.com.au/News.asp
+http://www.fmaint.com/
+http://www.fmc.gov/Speeches/Creel/Los%20Angeles.htm
+http://www.fmc.gov/cfr/565.htm
+http://www.fmca.com/motorhomingguide/fulltiming/features/2004/1204.asp
+http://www.fmctechnologies.com/loadingsystems/engineeredproducts/chiksantruckandrailcarloadingarms.aspx
+http://www.fme.fujitsu.com/products/displays/latestnews_4_lcd.html
+http://www.fmep.org/analysis/Robert_Malley_US_failures_under_Clinton.html
+http://www.fmep.org/analysis/wilcox_seize_the_opportunity.html
+http://www.fmglobal.com/about/facts/facts_history.asp
+http://www.fmi.org/advantage/index.cfm?fuseaction=display&article_id=977
+http://www.fmrib.ox.ac.uk/~rami/fmribplugin/
+http://www.fmrib.ox.ac.uk/~steve/susan/susan/node8.html
+http://www.fmrib.ox.ac.uk/~stuart/thesis/chapter_6/section6_4.html
+http://www.fmsbonds.com/strat_costofwaiting3ann.html
+http://www.fnal.gov/orgs/gsa/guide/v2000/WestSuburbs.html
+http://www.fnal.gov/projects/hq98/
+http://www.fnal.gov/pub/inquiring/matter/whysupport/
+http://www.fnga.org/contact.asp
+http://www.fno.org/dec99/scaffold.html
+http://www.fno.org/jun02/impact.html
+http://www.fno.org/may02/discerning.html
+http://www.fno.org/parenting/questioning3.html
+http://www.fno.org/sept00/powerpoints.html
+http://www.fno.org/sept97/online.html
+http://www.fno.org/text/grazing.html
+http://www.fnpw.com.au/enews1/textLetter.htm
+http://www.fns.usda.gov/cga/2002_Farm_Bill/special_nutrition.html
+http://www.fns.usda.gov/cga/PressReleases/2003/irradiation-qas.htm
+http://www.fns.usda.gov/fsp/rules/Memo/PRWORA/99/QandAs.htm
+http://www.fns.usda.gov/oane/MENU/Published/FoodSecurity/FSGuidesum.htm
+http://www.focalpoint.bc.ca/pages/Newsletters/Spring2000News.htm
+http://www.focalpointfires.plc.uk/
+http://www.focusas.com/Ecstasy.html
+http://www.focusas.com/ListeningSkills.html
+http://www.focusas.com/Overweight.html
+http://www.focusas.com/Programs.html
+http://www.focusas.com/Suicide.html
+http://www.focuscareer.com/women.cfm
+http://www.focusdiy.co.uk/stry/pr04&bklist=
+http://www.focusedperformance.com/
+http://www.focusedperformance.com/2003_06_01_blarch.html
+http://www.focusedperformance.com/2004_03_01_blarch.html
+http://www.focusing.org/crossing.htm
+http://www.focusing.org/fot/gendlin_imagery.html
+http://www.focusnfly.com/pages/tipsfromtom.php?selissue=5
+http://www.focusonadhd.com/about_ADHD/talking_about_ADHD.jhtml
+http://www.focusonfertility.org/insure_amicovered.htm
+http://www.focusonfertility.org/pr_holiday.htm
+http://www.focusonyourchild.com/relation/art1/A0001349.html
+http://www.focusweb.org/popups/articleswindow.php?id=437
+http://www.focuswest.org/energy/trans_efficiency.cfm
+http://www.focuswest.org/energy/trans_market.cfm
+http://www.focuswest.org/energy/trans_utilities.cfm
+http://www.fodors.com/miniguides/mgresults.cfm?destination=new_york_city@111&cur_section=fea&feature=30004
+http://www.fodors.com/miniguides/mgresults.cfm?destination=savannah@249&cur_section=fea&feature=30003
+http://www.foe.co.uk/pubsinfo/infoteam/pressrel/1997/19970403134300.html
+http://www.foe.co.uk/pubsinfo/infoteam/pressrel/2002/20020211000120.html
+http://www.foe.co.uk/pubsinfo/infoteam/pressrel/2002/20020901103634.html
+http://www.foe.co.uk/resource/briefings/wake_erika_oil_spill.html
+http://www.foe.co.uk/resource/consultation_responses/climate_change_levy_foe.html
+http://www.foe.co.uk/resource/press_releases/bba_agm_pinnochio_comes_to.html
+http://www.foe.co.uk/resource/press_releases/mps_call_for_ports_strateg.html
+http://www.foe.org.au/docs/pub_an.htm
+http://www.foe.org/new/releases/0503cornshow.html
+http://www.foeeurope.org/press/accountable_to_whom.htm
+http://www.foejapan.org/en/aid/jbic02/sondu-miriu/letter-pm01082001.htm
+http://www.foi-uk.org/hottopics.html
+http://www.foi.gov.ie/foi.nsf/0/ca7db6f848ebadb480256f33004e0af3?OpenDocument&Click=
+http://www.fol.org.au/issues/docs/focus-qld-200408.htm
+http://www.foliomag.com/
+http://www.folklore.bc.ca/Onefineday.htm
+http://www.folklore.ee/rl/pubte/ee/usund/ingl/hoppal.html
+http://www.folkways.si.edu/projects_initiatives/indonesian/liner_notes/volume15.html
+http://www.folusa.org/html/fact10.html
+http://www.folusa.org/html/fact11.html
+http://www.fonerbooks.com/q_sales.htm
+http://www.fonerbooks.com/selling.htm
+http://www.fonerbooks.com/website.htm
+http://www.fontanavillage.com/fontanavillage_activities.html
+http://www.fontcraft.com/csa/politicscomments.php?id=181_0_7_0_C
+http://www.fonterra.com/content/corporategovernance/boardoffonterra/default.jsp
+http://www.fontstuff.com/access/acctut15.htm
+http://www.fontstuff.com/access/acctut15pfv.htm
+http://www.food-irradiation.com/Trade.htm
+http://www.food.gov.uk/aboutus/ourboard/boardmeetings/board2003/boardmeeting111303/boardminutes131103
+http://www.food.gov.uk/aboutus/ourboard/boardmem/johnkrebs/riph
+http://www.food.gov.uk/foodindustry/Consultations/completed_consultations/compconsulteng/additiontofoodstuffs
+http://www.food.gov.uk/foodindustry/Consultations/completed_consultations/compconsulteng/allergenlabelling2004eng
+http://www.food.gov.uk/foodindustry/Consultations/completed_consultations/compconsulteng/recastinfantformconsult
+http://www.food.gov.uk/foodindustry/Consultations/completed_consultations/completconsultscot/recastinfantformscotconsult
+http://www.food.gov.uk/foodindustry/Consultations/completed_consultations/completconsultwales/allergenwales
+http://www.food.gov.uk/foodindustry/Consultations/completed_consultations/completconsultwales/recastdirinfantwales
+http://www.food.gov.uk/foodindustry/Consultations/completed_consultations/completconsultwales/recastdirinfantwales?view=printerfriendly
+http://www.food.gov.uk/foodindustry/Consultations/completed_consultations/completedconsultni/allergenlabelling2004ni
+http://www.food.gov.uk/foodindustry/Consultations/completed_consultations/completedconsultni/recastinfformniconsult
+http://www.food.gov.uk/foodindustry/Consultations/consultni/generalfoodhyregsni
+http://www.food.gov.uk/foodindustry/guidancenotes/labelregsguidance/supplementreformguidance
+http://www.food.gov.uk/multimedia/pdfs/fsanews1
+http://www.food.gov.uk/multimedia/pdfs/fsanews6
+http://www.food.gov.uk/news/newsarchive/2002/may/
+http://www.food.gov.uk/news/newsarchive/2005/may/parared
+http://www.food.gov.uk/science/research/researchinfo/nutritionresearch/foodacceptability/n09programme/n09projectlist/
+http://www.foodbankccs.org/pages/organize-drive.html
+http://www.foodcomm.org.uk/press_junk_marketing_03.htm
+http://www.foodfirst.org/action/2003/2003-08-unorca_update.html
+http://www.foodfirst.org/node/257
+http://www.foodfirst.org/progs/anhr/wafbvol22.php
+http://www.foodfirst.org/pubs/backgrdrs/2003/sp03v9n3.html
+http://www.foodfirst.org/s01v24n82
+http://www.foodfirst.org/taxonomy/term/109
+http://www.foodinstitute.com/pressreleases.cfm
+http://www.foodlandpeople.org/coalition/license.html
+http://www.foodlandpeople.org/newsletter/spring_summer_2002.html
+http://www.foodlandpeople.org/praise/enthusiastic.html
+http://www.foodlaw.rdg.ac.uk/news/uk-00-62.htm
+http://www.foodlaw.rdg.ac.uk/news/uk-04019.htm
+http://www.foodnavigator-usa.com/nl/allNLs.asp
+http://www.foodnavigator.com/
+http://www.foodnavigator.com/news/listnews.asp?m=9&y=2001
+http://www.foodnavigator.com/news/news-ng.asp?id=51840-science-queries-soy
+http://www.foodnavigator.com/news/news-ng.asp?id=59180-costs-rise-for
+http://www.foodnavigator.com/nl/allnls.asp
+http://www.foodnavigator.com/productnews/news.asp?id=59180&k=costs-rise-for
+http://www.foodnetwork.com/food/my_recipe_box/review/0,1973,FOOD_9919_17372,00.html
+http://www.foodnotbombs.net/villagevoice.html
+http://www.foodproductdesign.com/archive/2000/0400cs.html
+http://www.foodproductdesign.com/archive/2000/0600cs.html
+http://www.foodproductdesign.com/archive/2003/0703CS.html
+http://www.foodproductdesign.com/archive/2004/0704NT.html
+http://www.foodproductdesign.com/current/0305AP.html
+http://www.foodproductdesign.com/current/0305NN.html
+http://www.foodproductdesign.com/current/0505CON.html
+http://www.foodproductiondaily.com/news/listnews.asp?m=2&y=2003
+http://www.foodproductiondaily.com/news/news-ng.asp?id=59180-costs-rise-for
+http://www.foodproductiondaily.com/nl/allNLs.asp
+http://www.foodpros.com/allsuppliers.html
+http://www.foodqualitynews.com/news/news-ng.asp?id=59180-costs-rise-for
+http://www.foodqualitynews.com/nl/allNLs.asp
+http://www.foodreference.com/html/artkitchendesign2.html
+http://www.foodreference.com/html/html/february12.html
+http://www.foodreference.com/html/vol_3_no_41_december_12__2002.html
+http://www.foodrevolution.org/becomingagrandfather.htm
+http://www.foodrevolution.org/letter.htm
+http://www.foodriskclearinghouse.umd.edu/eggs_and_egg_products_policy_actions.cfm
+http://www.foodsci.purdue.edu/news/showarticle.cfm?id=58
+http://www.foodsci.purdue.edu/news/showarticle.cfm?id=59
+http://www.foodscience.cornell.edu/Sensory/short.htm
+http://www.foodscience.unsw.edu.au/study/food2490.html
+http://www.foodsciencebureau.com.au/media/media001.htm
+http://www.foodsecurity.org/f2cconf2005.html
+http://www.foodshare.net/toolbox_month09.htm
+http://www.foodsiteoftheday.com/previousitesf.htm
+http://www.foodstuffireland.com/foodfeatures/article.php?id=46
+http://www.foodtimeline.org/food2.html
+http://www.foodwatch.com.au/energy.html
+http://www.fool.com/
+http://www.fool.com/CashKing/CashKingPortStep1.htm
+http://www.fool.com/Iomega/1998/Iomega980227.htm
+http://www.fool.com/News/mft/2005/mft05012420.htm
+http://www.fool.com/News/mft/2005/mft05060811.htm?source=eptyholnk303100&logvisit=y&npu=y
+http://www.fool.com/News/mft/2005/mft05062314.htm
+http://www.fool.com/boringport/2000/boringport000228.htm
+http://www.fool.com/foolish8/2001/foolish8010904.htm
+http://www.fool.com/news/commentary/2003/commentary030822wt.htm
+http://www.fool.com/news/commentary/2004/commentary04081304.htm
+http://www.fool.com/news/commentary/2005/commentary05010502.htm
+http://www.fool.com/news/commentary/2005/commentary05010701.htm
+http://www.fool.com/news/commentary/2005/commentary05011301.htm
+http://www.fool.com/news/commentary/2005/commentary05011402.htm
+http://www.fool.com/news/commentary/2005/commentary05020403.htm?source=eptyholnk303100&logvisit=y&npu=y
+http://www.fool.com/news/commentary/2005/commentary05050207.htm
+http://www.fool.com/news/take/2004/take040416.htm
+http://www.fool.com/news/take/2004/take040802.htm
+http://www.fool.com/portfolios/RuleMaker/2002/rulemaker020605.htm
+http://www.fool.com/portfolios/rulebreaker/2000/rulebreaker000724.htm
+http://www.fool.com/portfolios/rulebreaker/2000/rulebreaker001016.htm
+http://www.fool.com/portfolios/rulebreaker/2002/rulebreaker021029.htm
+http://www.fool.com/portfolios/rulemaker/1999/rulemaker990514.htm
+http://www.fool.com/portfolios/rulemaker/2002/rulemaker020605.htm
+http://www.fool.com/savings/shortterm/01.htm?source=PFinAg
+http://www.fool.com/school/Glossary/glossary.htm?source=PFinAg
+http://www.fool.com/school/taxes/taxes10.htm
+http://www.fool.com/specials/2000/sp000523a.htm
+http://www.fool.com/taxes/2000/taxes000526.htm
+http://www.fool.com/taxes/2003/taxes030131.htm
+http://www.foosballstore.com/
+http://www.football.co.uk/aston_villa/match_reports/story_8194.shtml
+http://www.football.co.uk/football_features/story_11658.shtml
+http://www.football.co.uk/manchester_united/match_reports/story_8194.shtml
+http://www.footballasia.com/en/comps/afcu17/index.asp?id=36854&cid=1149&mth=9&yr=2004
+http://www.footballculture.net/players/feat_women.html
+http://www.footballculture.net/youron/gender_history.html
+http://www.footballfanatics.com/HTMLPages/root/NHL/PhiladelphiaFlyers.html
+http://www.footcaremd.com/gf_footwear.html
+http://www.foothill.edu/news/releases/asianevents2004.html
+http://www.footprints-inthe-sand.com/LettersPage.htm
+http://www.footprintsrecruiting.com/content.php?cat=317&sc=15
+http://www.footprintsrecruiting.com/content.php?cat=339&sc=24
+http://www.footstepstothepast.com/page_15.cfm
+http://www.footstompin.com/artists/edinburgh_military_tattoo
+http://www.footstompin.com/forum?threadid=27967
+http://www.footy4kids.co.uk/Soccer%20injuries%20and%20how%20to%20treat%20them.htm
+http://www.footysa.com/article.php?sid=1008
+http://www.for.gov.bc.ca/his/isis/mlsedt/
+http://www.for.gov.bc.ca/protect/FAQ/behaviour.htm
+http://www.for.gov.bc.ca/tasb/legsregs/fpc/fpcguide/defoliat/chap3.htm
+http://www.forbes.com/
+http://www.forbes.com/2000/10/20/1020simons_print.html
+http://www.forbes.com/2001/10/04/1004short.html
+http://www.forbes.com/2002/05/04/0504hires.html
+http://www.forbes.com/2002/10/17/1017feat.html
+http://www.forbes.com/2002/10/25/cx_bs_1025home.html
+http://www.forbes.com/2003/08/06/cx_kf_0806suite.html
+http://www.forbes.com/2003/08/26/cx_mf_0826vow.html
+http://www.forbes.com/2003/10/07/cx_jf_1007flint.html
+http://www.forbes.com/2003/10/08/cz_af_1008health.html
+http://www.forbes.com/2003/10/30/cx_aw_1030economy.html
+http://www.forbes.com/2004/06/14/0614automarketscan05.html
+http://www.forbes.com/2004/09/27/cz_sk_0927test.html
+http://www.forbes.com/2004/10/15/cx_gl_1015faceweek.html
+http://www.forbes.com/2004/10/20/cx_ab_1020video3_print.html
+http://www.forbes.com/asap/2002/0624/076_print.html
+http://www.forbes.com/associatedpress/feeds/ap/2005/01/13/ap1757130.html
+http://www.forbes.com/associatedpress/feeds/ap/2005/01/19/ap1767986.html
+http://www.forbes.com/associatedpress/feeds/ap/2005/01/19/ap1768188.html
+http://www.forbes.com/business/healthcare/2005/06/03/0603automarketscan07.html
+http://www.forbes.com/businesswire/feeds/businesswire/2005/01/26/businesswire20050126005893r1.html
+http://www.forbes.com/businesswire/feeds/businesswire/2005/02/04/businesswire20050204005056r1.html
+http://www.forbes.com/columnists/free_forbes/2003/1006/037.html
+http://www.forbes.com/finance/2005/02/04/cz_jd_0204watch.html
+http://www.forbes.com/forbes/2001/1029/076.html
+http://www.forbes.com/forbes/2002/0415/056.html
+http://www.forbes.com/free_forbes/2005/0110/142.html
+http://www.forbes.com/global/2002/0204/060_print.html
+http://www.forbes.com/global/2002/1111/044.html
+http://www.forbes.com/global/2003/0414/044.html
+http://www.forbes.com/global/2004/0920/029_print.html
+http://www.forbes.com/home/feeds/afx/2005/06/13/afx2089378.html
+http://www.forbes.com/home_asia/economy/2005/06/01/cx_pm_0602europe.html
+http://www.forbes.com/investmentnewsletters/2004/11/10/cz_jd_1110gurusow.html
+http://www.forbes.com/markets/2004/10/20/cx_ab_1020video3.html
+http://www.forbes.com/markets/2005/01/19/cx_pk_0119eyeonstocks.html
+http://www.forbes.com/markets/2005/01/20/cx_pk_0120eyeonstocks.html
+http://www.forbes.com/markets/2005/02/01/cx_pk_0201splosers.html
+http://www.forbes.com/markets/2005/04/06/cx_pk_0406eyeonstocks.html
+http://www.forbes.com/markets/feeds/ap/2005/06/20/ap2101053.html
+http://www.forbes.com/prnewswire/feeds/prnewswire/2005/01/05/prnewswire200501051057PR_NEWS_B_NET_PH_PHW022.html
+http://www.forbes.com/prnewswire/feeds/prnewswire/2005/01/24/prnewswire200501240100PR_NEWS_B_GBL_HS_UKF014.html
+http://www.forbes.com/prnewswire/feeds/prnewswire/2005/06/20/prnewswire200506201202PR_NEWS_B_MWT_CG_CGM032.html
+http://www.forbes.com/taxes/
+http://www.forbes.com/technology/2005/06/02/cz_qh_0602pillar.html
+http://www.forbes.com/work/feeds/ap/2005/01/19/ap1767986.html
+http://www.forbes.com/work/management/2004/09/10/0910gkbook.html
+http://www.forbeslibrary.org/about/meetings/04-02-16.html
+http://www.forcedmigration.org/about-us.htm
+http://www.forcedmigration.org/faq/
+http://www.forcedmigration.org/papers/
+http://www.forcedmigration.org/webguide/text/1.htm
+http://www.forces.ca/dgcb/educat/howto/engraph/howto16_e.asp?flag=Go
+http://www.forces.gc.ca/admmat/dglepm/wes/questions_e.html
+http://www.forces.gc.ca/hr/scondva/engraph/2001acc_e.asp?cat=1
+http://www.forces.gc.ca/site/Reports/dps/index_e.asp
+http://www.forces.gc.ca/site/community/MapleLeaf/html_files/html_view_e.asp?page=vol6-28p6-7
+http://www.forces.gc.ca/site/community/MapleLeaf/html_files/html_view_e.asp?page=vol8-24army
+http://www.forces.gc.ca/site/newsroom/view_news_e.asp?id=1285
+http://www.forces.gc.ca/site/newsroom/view_news_e.asp?id=1604
+http://www.forces.gc.ca/site/newsroom/view_news_e.asp?id=1670
+http://www.forces.gc.ca/site/newsroom/view_news_e.asp?id=52
+http://www.forces.gc.ca/site/newsroom/view_news_f.asp?id=52
+http://www.forces.org/
+http://www.forces.org/evidence/colby/b-chap6.htm
+http://www.forces.org/writers/hatton/files/talking.htm
+http://www.forces.org/writers/james/files/cigar.htm
+http://www.forces.org/writers/james/leavcorn.htm
+http://www.ford.utexas.edu/grf/bbfbio.htm
+http://www.fordfound.org/news/view_news_detail.cfm?news_index=14
+http://www.fordfound.org/news/view_news_detail.cfm?news_index=14&print_version=1
+http://www.fordham.edu/Academics/Academic_Resources/Middle_States_Accred/Middle_States_Charge_15961.html
+http://www.fordham.edu/Academics/Colleges__Graduate_S/Graduate__Profession/Arts__Sciences/Admissions/FAQ_6515.html
+http://www.fordham.edu/economics/vinod/ehr05.htm
+http://www.fordham.edu/halsall/ancient/1650nesilim.html
+http://www.fordham.edu/halsall/byzantium/
+http://www.fordham.edu/halsall/catholic_sources.html
+http://www.fordham.edu/halsall/courses.html
+http://www.fordham.edu/halsall/india/1870-monier-parsees.html
+http://www.fordham.edu/halsall/jewish/1182-jewsfrance1.html
+http://www.fordham.edu/halsall/medweb/links.htm
+http://www.fordham.edu/halsall/mod/1415janhus.html
+http://www.fordham.edu/halsall/mod/1650bradford.html
+http://www.fordham.edu/halsall/mod/1690locke-sel.html
+http://www.fordham.edu/halsall/mod/1777burney-maoris.html
+http://www.fordham.edu/halsall/mod/1798jenner-vacc.html
+http://www.fordham.edu/halsall/mod/1859Faraday-forces.html
+http://www.fordham.edu/halsall/mod/1865helmholtz-ice.html
+http://www.fordham.edu/halsall/mod/1880huxley-scicult.html
+http://www.fordham.edu/halsall/mod/1905portarthur.html
+http://www.fordham.edu/halsall/mod/1945YALTA.html
+http://www.fordham.edu/halsall/mod/1950-korea-un1.html
+http://www.fordham.edu/halsall/mod/1963Kennedy-peacestrat.html
+http://www.fordham.edu/halsall/mod/hs1000.html
+http://www.fordham.edu/halsall/mod/modsbook3.html
+http://www.fordham.edu/halsall/mod/modsbook45.html
+http://www.fordham.edu/halsall/mod/nightingale-rural.html
+http://www.fordham.edu/halsall/sbook.html
+http://www.fordham.edu/halsall/source/froissart1.html
+http://www.fordham.edu/halsall/source/naprous.html
+http://www.fordham.edu/halsall/source/stlouis1.html
+http://www.fordham.edu/middlestates/Charges.htm
+http://www.fordracingparts.com/announcements/jacksonsupercharger.asp
+http://www.foreclosures.com/pages/gurus_to_avoid.asp?gID=49
+http://www.forefieldkt.com/KT/trns.aspx?xd=ED-FQ-0001-044&il=ba&xsl=content
+http://www.foreignaffairs.gov.ie/information/publications/roc/iii.asp
+http://www.foreignaffairs.org/19930201faessay5924/m-graeme-bannerman/arabs-and-israelis-slow-walk-toward-peace.html
+http://www.foreignaffairs.org/19940101fareviewessay8557/robin-w-winks/the-great-wo-man-theory-of-history.html
+http://www.foreignaffairs.org/20020701fareviewessay8528/barry-eichengreen/the-globalization-wars-an-economist-reports-from-the-front-lines.html
+http://www.foreignaffairs.org/20020701fareviewessay8528/barry-eichengreen/the-globalization-wars-an-economist-reports-from-the-front-lines.html?mode=print
+http://www.foreignaffairs.org/20030501faessay11217-p30/michael-j-glennon/why-the-security-council-failed.html
+http://www.foreignaffairs.org/20030501faessay11217-p40/michael-j-glennon/why-the-security-council-failed.html
+http://www.foreignaffairs.org/20040301faessay83204-p10/andrei-shleifer-daniel-treisman/a-normal-country.html
+http://www.foreignaffairs.org/20040701facomment83401/james-f-hoge-jr/a-global-power-shift-in-the-making.html
+http://www.foreignaffairs.org/20040701faessay83404-p30/john-browne/beyond-kyoto.html
+http://www.foreignaffairs.org/20050101faessay84109/selig-s-harrison/did-north-korea-cheat.html
+http://www.foreignaffairs.org/20050101faresponse84116/robert-kagan/a-matter-of-record.html
+http://www.foreignaffairs.org/20050301faresponse84214/mitchell-b-reiss-robert-gallucci/red-handed.html
+http://www.foreignaffairs.org/background/terrorism
+http://www.foreignborn.com/self-help/banking/
+http://www.foreignborn.com/self-help/banking/5-acct_features.htm
+http://www.foreignminister.gov.au/parlsec/speeches/ps_oyster_020510.html
+http://www.foreignminister.gov.au/speeches/2005/050211_3rd_aust_japan_conf.html
+http://www.foreignpolicy.com/redirect/5417.php
+http://www.foreignword.com/Technology/art/Gross/gross91.htm
+http://www.foremostboaters.com/safety/water_safety.htm
+http://www.foremostonline.co.uk/leaderboard/
+http://www.forensicfocusmag.com/articles/3b1feat2.html
+http://www.forerunner.com/theonomy/conopening.htm
+http://www.foreseeresults.com/Press_OnlineExperience.html
+http://www.foresight.org/EOC/EOC_Chapter_6.html
+http://www.foresight.org/Nanomedicine/SayAh/
+http://www.foresight.org/SciAmDebate/Round3.html
+http://www.foresight.org/Updates/Update17/Update17.5.html
+http://www.foresight.org/about/Bennett.html
+http://www.foresight.org/impact/impossible.html
+http://www.forest.nsw.gov.au/publication/forest_facts/forest_types/default.asp
+http://www.forester.net/ecm_0403_saving.html
+http://www.forestethics.org/article.php?id=1036
+http://www.foresthomes.org.uk/what.html
+http://www.forestnet.com/archives/June_00/roadbuilding.htm
+http://www.forestprod.org/shop/
+http://www.forestry.gov.uk/forestry/infd-5r2cyv
+http://www.forestry.gov.uk/newsrele.nsf/0/9cd50786ee1ede4680256cc90035945c?OpenDocument
+http://www.forestryscotland.com/pages/displaypressrelease.asp?pr=141&loc=latest&home=true
+http://www.forests.org/articles/reader.asp?linkid=37802
+http://www.forestsmonitor.org/reports/highstakes/part2a.htm
+http://www.forestsolutions.ca/articles/041402.htm
+http://www.forestview.dpsnc.net/~forringe/classroomplan.html
+http://www.forex-business.com/glossary.htm
+http://www.forexmillionaire.com/
+http://www.forexnews.com/na/default.asp
+http://www.forfas.ie/news.asp?page_id=218
+http://www.forfas.ie/news.asp?page_id=224
+http://www.forgiver.net/anger.htm
+http://www.forgottenfutures.com/game/ff9/peril/peril06.htm
+http://www.forgottenfutures.com/game/ff9/peril/peril28.htm
+http://www.forio.com/facevalue20010531.htm
+http://www.forkncork.com/content/showthread.php?threadid=72&goto=newpost
+http://www.forministry.com/USNHUCOFCMVCCM
+http://www.forministry.com/vsItemDisplay.dsp&objectID=DFAF4839-994D-4E51-940C199C89AD1C35&method=display&templateID=C3435351-D45C-4B52-867A3F794D1CD85C
+http://www.formrunner.com/frundocs/callprgz.html
+http://www.formula1.com/insight/technicalinfo/11/1421.html
+http://www.formulasystems.com/press/2000/pr100200a.htm
+http://www.forparentsbyparents.com/inter_quotes.html
+http://www.forschung3r.ch/de/publications/bu22.html
+http://www.forschung3r.ch/en/publications/bu22.html
+http://www.forschung3r.ch/fr/publications/bu22.html
+http://www.forsythe.com/Forsythe/pressroombyline.do
+http://www.fortbraggnc.com/info/calendar_instep.php
+http://www.forthoodausa.org/adopt.html
+http://www.fortliberty.org/military-library/nuclear-war.shtml
+http://www.fortnight.org/SUPPS/SUPP_393_01.htm
+http://www.fortressalarms.com/products.html
+http://www.fortune.com/
+http://www.fortune.com/fortune/author_archive?authorname=Julia%20Boorstin&column_id=1&year=2005
+http://www.fortune.com/fortune/author_archive?authorname=Julia%20Boorstin&column_id=21&year=2005
+http://www.fortune.com/fortune/author_archive?authorname=Julia%20Boorstin&column_id=66&year=2005
+http://www.fortune.com/fortune/author_archive?authorname=Julia%20Boorstin&column_id=7&year=2005
+http://www.fortune.com/fortune/smallbusiness/articles/0,15114,1008826,00.html
+http://www.fortune.com/fortune/smallbusiness/managing/articles/0,15114,614421,00.html
+http://www.fortune.com/fortune/smallbusiness/technology/articles/0,15114,1062892-1,00.html
+http://www.fortune.com/fortune/streetlife/archive?year=2005&column_id=21&pub_id=6
+http://www.fortune.com/fortune/technology/articles/0,15114,1011763,00.html
+http://www.fortunechildbooks.com/objector.htm
+http://www.fortunecity.com/bally/durrus/153/gramex10.html
+http://www.fortunecity.com/greenfield/ecolodge/25/yearinlife.htm
+http://www.fortunecity.com/healthclub/cpr/798/paula.htm
+http://www.fortunecity.com/meltingpot/old/431/megan.html
+http://www.fortunecity.com/meltingpot/portland/971/contact.htm
+http://www.fortunecity.com/tatooine/niven/142/talentpo/tp16.html
+http://www.fortunecity.com/tinpan/morrison/794/beyonce.html
+http://www.fortunecity.com/tinpan/morrison/794/redhotchillipeppers.html
+http://www.fortwayne.com/mld/beaconjournal/news/local/states/ohio/counties/summit_county/
+http://www.fortwayne.com/mld/newssentinel/news/editorial/8136223.htm?template=contentModules/printstory.jsp
+http://www.fortworthisd.org/departments/jrotc/hs_jrotc.html
+http://www.forum-global.de/soc/bibliot/comte/comtepositivephilosophy.htm
+http://www.forum.nokia.com/main/0,,010_20_10-Platform-40-6,00.html
+http://www.forum.nokia.com/main/0,,015-empty-empty-9,00.html
+http://www.forum.nokia.com/main/0,,0155-empty-empty-9,00.html
+http://www.forum.nokia.com/main/0,6566,050,00.html
+http://www.forum.psoft.net/showthread.php?p=10568
+http://www.forum18.org/Archive.php?article_id=590
+http://www.forum4designers.com/message180018.html
+http://www.forumasia.org/about/mission.shtml
+http://www.forumoneurope.ie/index.asp?locID=45&docID=614
+http://www.forumplanet.com/planethalflife/topic.asp?fid=2348&tid=1590185
+http://www.forums.improvingsex.com/ubb/Forum8/HTML/000047.html
+http://www.forums.woodnet.net/ubbthreads/showflat.php?Cat=&Number=1275925&page=0&view=collapsed&sb=7&o=
+http://www.forusa.org/programs/colombia/col-pp-update-1104-N.html
+http://www.forusa.org/programs/rej/letters-congress.html
+http://www.forward.com/articles/3392
+http://www.forwarderlaw.com/archive/arch2.htm
+http://www.fosterstudio.co.uk/restoration.htm
+http://www.fostertravel.com/FLMIAM.html
+http://www.fotf.ca/familyfacts/issues/sexeducation/resources.html
+http://www.fotofo.sk/imago/16/czech.htm
+http://www.fotojones.com/onassignment/calendar/oa_info.html
+http://www.fotosbyfrank.com/michele/tips.html
+http://www.fotosearch.com/DGV491/1315023/
+http://www.fotosearch.com/EYW246/uli_028/
+http://www.fotosearch.com/IGS233/is099-008/
+http://www.fotosearch.com/IGS233/is099-017/
+http://www.fotosearch.com/IGS233/is099-033/
+http://www.fotosearch.com/IGS233/is099-036/
+http://www.fotosearch.com/MDG215/833022/
+http://www.fotosearch.com/PDS518/200029134-001/
+http://www.fotosearch.com/PHD354/ss38023/
+http://www.fotosearch.com/RLF114/sh_omsr_25/
+http://www.fotw.us/flags/au-new.html
+http://www.foundationnews.org/CME/article.cfm?id=1418&issueID=1406&authByte=1034&profileID=160129
+http://www.founders.org/library/polity/mohler.htm
+http://www.foundersfcu.com/terms.cfm
+http://www.foundlocally.com/Halifax/Communications/TradeShowImpact.htm
+http://www.foundlocally.com/Rockies/Communications/TradeShowImpact.htm
+http://www.foundmagazine.com/events.html
+http://www.foundrymusic.com/bands/websites.cfm/div/bands/page/bands_websites.html
+http://www.fountaincourt.co.uk/members/m_mclaren.htm
+http://www.fountaingateway.com/Christmas/christmasdira.html
+http://www.fourfoldhealing.com/Printable%20Sample_menus.htm
+http://www.fourfoldhealing.com/Sample_Menus.htm
+http://www.fourgates.com/ghost.asp
+http://www.fourhourday.org/city_paper_article.htm
+http://www.fourmilab.ch/francais/lfrench.html
+http://www.fourmilab.ch/gravitation/orbits/
+http://www.fourmilab.ch/hackdiet/www/subsection1_2_3_0_4.html
+http://www.fourthfreedom.org/Applications/cms.php?page_id=29
+http://www.fourthfreedom.org/Applications/cms.php?page_id=65
+http://www.fourthworld.com/embassy/articles/netapps.html
+http://www.fourwheeldrive.co.za/constitution.htm
+http://www.fourwinds10.com/NESARA/news/2003/09H-11-15-03-what-is-happening-to-our-world.html
+http://www.fox-dreams.com/art/renaissance/kilt.html
+http://www.fox-hills.com/rates_and_packages/
+http://www.fox11az.com/news/local/stories/KMSB-20050622-dsbp-schwartz.35239899.html
+http://www.fox21.com/Global/story.asp?S=2803892&nav=2KPpV9BW
+http://www.fox23news.com/
+http://www.fox30online.com/news/local/story.aspx?content_id=E1FA5E04-CE78-4B77-AEAA-25F98D140296
+http://www.fox41.com/terms.asp
+http://www.foxesonidol.com/cgi-bin/ae.pl?mode=1&article=article1666.art&page=1
+http://www.foxesonidol.com/cgi-bin/ae.pl?mode=1&article=article1738.art&page=1
+http://www.foxinternet.co.uk/
+http://www.foxlawson.com/job_evaluationsPT2.html
+http://www.foxnews.com/story/0,2933,101051,00.html
+http://www.foxnews.com/story/0,2933,105706,00.html
+http://www.foxnews.com/story/0,2933,106198,00.html
+http://www.foxnews.com/story/0,2933,107274,00.html
+http://www.foxnews.com/story/0,2933,107815,00.html
+http://www.foxnews.com/story/0,2933,109441,00.html
+http://www.foxnews.com/story/0,2933,109674,00.html
+http://www.foxnews.com/story/0,2933,115605,00.html
+http://www.foxnews.com/story/0,2933,115682,00.html
+http://www.foxnews.com/story/0,2933,116497,00.html
+http://www.foxnews.com/story/0,2933,130081,00.html
+http://www.foxnews.com/story/0,2933,134978,00.html
+http://www.foxnews.com/story/0,2933,136321,00.html
+http://www.foxnews.com/story/0,2933,138948,00.html
+http://www.foxnews.com/story/0,2933,139208,00.html
+http://www.foxnews.com/story/0,2933,140371,00.html
+http://www.foxnews.com/story/0,2933,140970,00.html
+http://www.foxnews.com/story/0,2933,141073,00.html
+http://www.foxnews.com/story/0,2933,141777,00.html
+http://www.foxnews.com/story/0,2933,143208,00.html
+http://www.foxnews.com/story/0,2933,145449,00.html
+http://www.foxnews.com/story/0,2933,146546,00.html
+http://www.foxnews.com/story/0,2933,146656,00.html
+http://www.foxnews.com/story/0,2933,148775,00.html
+http://www.foxnews.com/story/0,2933,150957,00.html
+http://www.foxnews.com/story/0,2933,152015,00.html
+http://www.foxnews.com/story/0,2933,152020,00.html
+http://www.foxnews.com/story/0,2933,152613,00.html
+http://www.foxnews.com/story/0,2933,157098,00.html
+http://www.foxnews.com/story/0,2933,157537,00.html
+http://www.foxnews.com/story/0,2933,158010,00.html
+http://www.foxnews.com/story/0,2933,158014,00.html
+http://www.foxnews.com/story/0,2933,158166,00.html
+http://www.foxnews.com/story/0,2933,158795,00.html
+http://www.foxnews.com/story/0,2933,159952,00.html
+http://www.foxnews.com/story/0,2933,160755,00.html
+http://www.foxnews.com/story/0,2933,26758,00.html
+http://www.foxnews.com/story/0,2933,46020,00.html
+http://www.foxnews.com/story/0,2933,54478,00.html
+http://www.foxnews.com/story/0,2933,55304,00.html
+http://www.foxnews.com/story/0,2933,59474,00.html
+http://www.foxnews.com/story/0,2933,62992,00.html
+http://www.foxnews.com/story/0,2933,66649,00.html
+http://www.foxnews.com/story/0,2933,76443,00.html
+http://www.foxnews.com/story/0,2933,96109,00.html
+http://www.foxnews.com/story/0,2933,96797,00.html
+http://www.foxnews.com/story/0,2933,98228,00.html
+http://www.foxriverwatch.com/monsanto2a_pcb_pcbs.html
+http://www.foxsearchlight.com/weekendread/
+http://www.foxtel.com.au/209_1264.htm
+http://www.foxtel.com.au/236_377.htm
+http://www.foxtel.com.au/748.htm
+http://www.foxx-industries.com/2300ad/pbemmain.htm
+http://www.foycwidows-widowers.com/we_would_like_to_devote_this_pag.htm
+http://www.fpa-apff.com/constitution.htm
+http://www.fpa.org/topics_info2414/topics_info_show.htm?doc_id=195939
+http://www.fpanet.org/journal/articles/2004_Issues/jfp0404-art1.cfm
+http://www.fpanet.org/journal/articles/index.cfm
+http://www.fpanet.org/member/meetings/online_education/Library/04_14_2004.cfm
+http://www.fpc.org.uk/articles/160
+http://www.fpc.org.uk/articles/184
+http://www.fpc.org.uk/articles/240
+http://www.fpc.org.uk/topics/energy/
+http://www.fpch.org/hollywoodpulpit.org/sermon990117.html
+http://www.fpcnyc.org/volunteer-first.html
+http://www.fpcu.org/loans_improveCredit.asp
+http://www.fpd.finop.umn.edu/groups/ppd/documents/FAQ/InvestmentsFAQ.cfm
+http://www.fpef.org/teacher_resources/teachers_resources.htm
+http://www.fpf.duke.edu/diagnose.html
+http://www.fpg.unc.edu/~ecers/iterscomparison_frame.html
+http://www.fpg.unc.edu/~ncedl/pages/project_summary.cfm?studyid=7
+http://www.fpif.org/briefs/vol6/v6n19defense_body.html
+http://www.fpif.org/papers/03petropol/politics.html
+http://www.fpif.org/papers/0506cafta.html
+http://www.fpl.fs.fed.us/pressroom/newsreleases/filters.htm
+http://www.fplc.edu/risk/vol5/spring/cookdeeg.htm
+http://www.fpm.iastate.edu/recycling/WPDAYS.asp
+http://www.fpml.org/documents/working-papers/standards-c/rules-of-operation.asp
+http://www.fpmt-osel.org/teachings/daily.htm
+http://www.fpp.co.uk/online/02/12/SMH031202.html
+http://www.fprado.com/armorsite/chall2.htm
+http://www.fpri.org/enotes/20040206.middleeast.inbar.israeliperspective.html
+http://www.fpri.org/footnotes/087.200312.ellington.japaneseeducation.html
+http://www.fpri.org/fpriwire/1201.200401.pollack.aftersaddam.html
+http://www.fpri.org/ww/0505.200407.eberstadt.demography.html
+http://www.fpri.org/ww/0508.200410.weaver.europeperfectunion.html
+http://www.fr.com/practice/trade.cfm?child=trade
+http://www.frac.org/html/news/newsdigest/06.19.05.html
+http://www.fractalus.com/gumbycat/lesson2.html
+http://www.fractiles.com/frusers.html
+http://www.fradical.com/Articles_on_Donald_Smith_trial.htm
+http://www.fralippolippi.com/history.htm
+http://www.framtak.com/info/oil.html
+http://www.france-hotel-guide.com/nocommissioneng.htm
+http://www.france.co.nz/personal/children.html
+http://www.francemagazine.org/articles/issue69/article88.asp?issue_id=69&article_id=88
+http://www.francemonthly.com/n/0303/index.php
+http://www.franceonfoot.com/up-index.htm
+http://www.franchise.primroseschools.com/franchise/opportunities/management.asp
+http://www.franchiseadvantage.com/franchises/franchise_health.ihtml
+http://www.franchiseadvantage.com/franchises/l2_weight_loss_franchise.ihtml
+http://www.franchiseregistry.com/Registry/
+http://www.francineyork.com/
+http://www.francisbennion.com/pages/02/05/03/02/03/06chapter.htm
+http://www.franco-scottish.org.uk/
+http://www.franconiaminerals.com/s/SanFrancisco.asp
+http://www.frankecampbell.com/monuments.asp
+http://www.frankfordhospitals.org/wellness/article6597.html
+http://www.franklin.com/pressroom/news/arch00/000106_a.asp
+http://www.franklincovey.com/foryou/articles/seven.html
+http://www.franklinhills.org/bodyshop.html
+http://www.franklintempleton.com/retail/jsp_cm/corp/articles/education/fund_basic/fb_asset_allocation.jsp
+http://www.franksreelreviews.com/reviews/spacestation3d.htm
+http://www.franksreelreviews.com/shorttakes/reelrant/franksrant0703.htm
+http://www.frankston.com/public/essays/EncryptedIPV6.asp
+http://www.fraserinstitute.ca/shared/readmore.asp?sNav=pb&id=178
+http://www.fraserinstitute.org/shared/readmore.asp?sNav=pb&id=604
+http://www.fraterslibertas.com/2003_10_01_archive.html
+http://www.fraterslibertas.com/2004_01_01_archive.html
+http://www.fraudsandscams.com/pyramid.htm
+http://www.fraudulenttransfers.com/1997_WI_1182.htm
+http://www.frbsf.org/federalreserve/careers/benefits.html
+http://www.frc.org/get.cfm?i=PL05B01
+http://www.freaksforum.com/ubb/ultimatebb.php/topic/34/86.html
+http://www.freba.com/
+http://www.fred.net/tzaka/two.html
+http://www.frederickdouglass.org/morsell_bio.html
+http://www.fredericksburg.com/News/FLS/2005/012005/01092005/1627908
+http://www.frederictonfirefighters.ca/museum/stmarysfire.htm
+http://www.fredgarbo.com/guestbook.php
+http://www.fredlaw.com/articles/corporate/corp_0207_js.html
+http://www.fredmiranda.com/reviews/showproduct.php?product=112&sort=7&cat=28&page=1
+http://www.fredoneverything.net/Dating.shtml
+http://www.fredschoeneman.com/archives/000737.html
+http://www.fredsplace.org/
+http://www.free-eco.org/agendas/agenda_seminar_judges_july9_2002.html
+http://www.free-essays.us/dbase/b7/ena70.shtml
+http://www.free-essays.us/dbase/c9/kfw217.shtml
+http://www.free-for-recruiters.com/Resumes/MN/1309528-Resume.html
+http://www.free-minds.org/articles/gods_system/mumin.htm
+http://www.free-n-cool.com/contca18.html
+http://www.free-n-cool.com/contcana.html
+http://www.free-n-cool.com/contlt18.html
+http://www.free-resume-tips.com/10tips.html
+http://www.free-smile.com/
+http://www.free-stay.com/html/hospitality_exchange_experienc.html
+http://www.freeanwar.com/index3.htm
+http://www.freeanwar.net/news/Budi_Report.html
+http://www.freearabvoice.org/Iraq/Report/report108.htm
+http://www.freearabvoice.org/Iraq/Report/report25.htm
+http://www.freebsd.org/doc/en_US.ISO8859-1/articles/committers-guide/ports.html
+http://www.freebsd.org/doc/en_US.ISO8859-1/articles/java-tomcat/x59.html
+http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/x86-environment.html
+http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html
+http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x-understanding.html
+http://www.freecarve.com/gen_tab2.asp?CatID=19
+http://www.freechild.org/ReadingList/reviews/walking.htm
+http://www.freecolorado.com/2005/01/blue77.html
+http://www.freecolorprinters.com/fcp_printer_supplies.cfm
+http://www.freeconference.com/NewsChicagoTribuneAug2004.asp
+http://www.freedieting.com/weight_loss_articles.htm
+http://www.freedive.net/ibsrc/fish_pgs/greater_amb.htm
+http://www.freedom-in-education.co.uk/school/dyslexia.htm
+http://www.freedom-of-information.de/info_berlin/acts/ifg_01_en.htm
+http://www.freedom-to-tinker.com/archives/000573.html
+http://www.freedomdogs.com/
+http://www.freedomdomain.com/concamps/fema01.html
+http://www.freedomdomain.com/ufo/hoagland01.html
+http://www.freedomfiles.org/war/ireland/nireland.htm
+http://www.freedomforum.org/templates/document.asp?documentID=14129
+http://www.freedomforum.org/templates/document.asp?documentID=17869
+http://www.freedomforum.org/templates/document.asp?documentID=17869&printerfriendly=1
+http://www.freedomfromfear.com/genanxiety.asp
+http://www.freedomhall.com/weddingpackages.html
+http://www.freedomofmind.com/resourcecenter/groups/m/moonies/moonies_in_Japan.htm
+http://www.freedomofthought.com/archives/001439.php
+http://www.freedomroad.org/antiwar_statement_102003.html
+http://www.freedomsite.org/cfirc/news/canada_first_on_land_claims.html
+http://www.freedomworks.org/informed/issues_template.php?issue_id=2055
+http://www.freedomworks.org/informed/issues_template.php?issue_id=2163
+http://www.freedomworks.org/informed/issues_template.php?issue_id=683
+http://www.freedomworks.org/informed/issues_template.php?issue_id=684
+http://www.freedomworks.org/informed/issues_template.php?issue_id=926
+http://www.freedomworks.org/processor/printer.php?issue_id=2099
+http://www.freedomyou.com/mil/Seeking%20God's%20Will.htm
+http://www.freedomyou.com/nutrition_book/Let's%20Eat.htm
+http://www.freedownloadscenter.com/Business/MS_Office_Add-ins/ACT_To_Outlook_Convert.html
+http://www.freehi.com/newmain/how2a.html
+http://www.freehills.com/CA256AD900137BAA/page/Listing-acl-Playing+Complex+Games+With+Competition+Policy0002BC8A
+http://www.freeinfosociety.com/computers/coprocessors.html
+http://www.freeinfosociety.com/computers/dostechnical.html
+http://www.freeinfosociety.com/misc/artofsniping.htm
+http://www.freelanceworkexchange.com/find-work.html
+http://www.freelebanon.org/
+http://www.freemaninstitute.com/crazy.htm
+http://www.freemars.org/filk/crackityourself.html
+http://www.freemasonrywatch.org/1index.html
+http://www.freemasonrywatch.org/cardinallaw.html
+http://www.freemasons-freemasonry.com/apikeintro.html
+http://www.freemasons-freemasonry.com/claudy2.html
+http://www.freemerchant.com/tutorial/op.htm
+http://www.freeminds.org/psych/leaving.htm
+http://www.freeminds.org/psych/mindcont.htm
+http://www.freenet.org.nz/python/yahooquote/doc/private/YahooQuote.Ticker-class.html
+http://www.freenet.org.nz/python/yahooquote/doc/public/YahooQuote.Ticker-class.html
+http://www.freenetpages.co.uk/hp/alan.gauld/tutgui.htm
+http://www.freenewmexican.com/news/10167.html
+http://www.freenewmexican.com/news/9163.html
+http://www.freenewmexican.com/news/9194.html
+http://www.freenewmexican.com/recentcomments.php
+http://www.freenewmexican.com/sfguide/127.html
+http://www.freenorthkorea.net/archives/freenorthkorea/cat_reference.html
+http://www.freeos.com/articles/2557/
+http://www.freep.com/features/living/age29e_20041229.htm
+http://www.freep.com/features/living/connec26_20031126.htm
+http://www.freep.com/features/living/shop8e_20050208.htm
+http://www.freep.com/index/business.htm
+http://www.freep.com/money/autonews/autoreport27e_20050127.htm
+http://www.freep.com/money/autoshow/2005/families18e_20050118.htm
+http://www.freep.com/news/health/erica13_20040413.htm
+http://www.freep.com/news/locway/shoot16_20000516.htm
+http://www.freep.com/news/metro/reccenters27e_20041227.htm
+http://www.freep.com/news/mich/date3e_20050103.htm
+http://www.freep.com/news/statewire/sw110755_20050127.htm
+http://www.freep.com/voices/sunday/eban30e_20050130.htm
+http://www.freepatentsonline.com/4013202.html
+http://www.freepatentsonline.com/4131196.html
+http://www.freepatentsonline.com/4355831.html
+http://www.freepatentsonline.com/4471935.html
+http://www.freepatentsonline.com/4542839.html
+http://www.freepatentsonline.com/4554154.html
+http://www.freepatentsonline.com/4698732.html
+http://www.freepatentsonline.com/5073231.html
+http://www.freepatentsonline.com/5096257.html
+http://www.freepatentsonline.com/5275278.html
+http://www.freepatentsonline.com/5622497.html
+http://www.freepatentsonline.com/5630168.html
+http://www.freepatentsonline.com/5785601.html
+http://www.freepatentsonline.com/5904271.html
+http://www.freepaws.org/
+http://www.freepeltier.org/011504_habeas_writ.htm
+http://www.freeplants.com/landscapedesign.htm
+http://www.freeportelectric.com/dereg.htm
+http://www.freepres-markethill.org/LosingTouch.html
+http://www.freepress.org/departments/display/19/2004/886
+http://www.freepress.org/departments/display/19/2005/1102
+http://www.freepress.org/departments/display/20/2005/1333
+http://www.freepressed.com/mygod.htm
+http://www.freeprinterpower.com/
+http://www.freerangegraphics.com/html/valentine/rules.html
+http://www.freereinart.com/WinterQuarterEvents.html
+http://www.freerepublic.com/focus/f-backroom/1308885/posts
+http://www.freerepublic.com/focus/f-chat/1310526/posts
+http://www.freerepublic.com/focus/f-news/1105141/posts
+http://www.freerepublic.com/focus/f-news/1146624/posts
+http://www.freerepublic.com/focus/f-news/1165061/posts
+http://www.freerepublic.com/focus/f-news/1188739/posts
+http://www.freerepublic.com/focus/f-news/1289100/posts
+http://www.freerepublic.com/focus/f-news/1294638/posts
+http://www.freerepublic.com/focus/f-news/1294995/posts
+http://www.freerepublic.com/focus/f-news/1296609/posts
+http://www.freerepublic.com/focus/f-news/1304348/posts
+http://www.freerepublic.com/focus/f-news/1305180/posts
+http://www.freerepublic.com/focus/f-news/1305291/posts
+http://www.freerepublic.com/focus/f-news/1309066/posts
+http://www.freerepublic.com/focus/f-news/1311434/posts
+http://www.freerepublic.com/focus/f-news/1312563/posts
+http://www.freerepublic.com/focus/f-news/1314201/posts
+http://www.freerepublic.com/focus/f-news/1315774/posts
+http://www.freerepublic.com/focus/f-news/1316400/posts
+http://www.freerepublic.com/focus/f-news/1317032/posts?page=56
+http://www.freerepublic.com/focus/f-news/1319991/posts
+http://www.freerepublic.com/focus/f-news/1320342/posts
+http://www.freerepublic.com/focus/f-news/1320399/posts
+http://www.freerepublic.com/focus/f-news/1323399/posts
+http://www.freerepublic.com/focus/f-news/1326420/posts
+http://www.freerepublic.com/focus/f-news/1329126/posts
+http://www.freerepublic.com/focus/f-news/1329881/posts
+http://www.freerepublic.com/focus/f-news/1330029/posts
+http://www.freerepublic.com/focus/f-news/1331358/posts
+http://www.freerepublic.com/focus/f-news/1331549/posts
+http://www.freerepublic.com/focus/f-news/1331756/posts
+http://www.freerepublic.com/focus/f-news/1331864/posts
+http://www.freerepublic.com/focus/f-news/1332158/posts
+http://www.freerepublic.com/focus/f-news/1332226/posts
+http://www.freerepublic.com/focus/f-news/1332226/posts?page=31
+http://www.freerepublic.com/focus/f-news/1332359/posts
+http://www.freerepublic.com/focus/f-news/1334473/posts
+http://www.freerepublic.com/focus/f-news/1334495/posts
+http://www.freerepublic.com/focus/f-news/1335475/posts
+http://www.freerepublic.com/focus/f-news/1336939/posts
+http://www.freerepublic.com/focus/f-news/1337437/posts
+http://www.freerepublic.com/focus/f-news/1346517/posts
+http://www.freerepublic.com/focus/f-news/1430112/posts
+http://www.freerepublic.com/focus/f-news/1430374/posts
+http://www.freerepublic.com/focus/f-news/1432554/posts
+http://www.freerepublic.com/focus/f-news/527264/posts
+http://www.freerepublic.com/focus/f-news/923505/posts
+http://www.freerepublic.com/focus/f-vetscor/1317517/posts
+http://www.freerepublic.com/forum/a3619c6b65ba0.htm
+http://www.freerepublic.com/forum/a364325090ea9.htm
+http://www.freerepublic.com/forum/a36b7494d1f3e.htm
+http://www.freerepublic.com/forum/a3713194926c5.htm
+http://www.freerepublic.com/~sirfrancisdashwood/
+http://www.freeroybennett.com/articles/06072002_standup.html
+http://www.freescale.com/webapp/sps/site/application.jsp?nodeId=02430ZNtdx4J11
+http://www.freescale.com/webapp/sps/site/application.jsp?nodeId=02VS0lxdYLZyky
+http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=02VS0llCc5pzMPYZjg28617061
+http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CAL&parentCode=C-5E&nodeId=018rH3bTdG1729Sb94hm17SZGC
+http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CAL&parentCode=null&nodeId=02VS0lxdYL1r1R
+http://www.freesearch.co.uk/search?q=american+bank
+http://www.freesearching.com/card_az5.htm
+http://www.freespeech.com/archives/001741.html
+http://www.freestanley.com/detroit_letters.html
+http://www.freestateproject.org/about/essay_archive/strategies.jsp
+http://www.freestuff4baby.com/top10babyfreebies.htm
+http://www.freeswan.org/freeswan_trees/freeswan-1.99/doc/quickstart-firewall.html
+http://www.freethechildren.org/youthinaction/war_affected_children.htm
+http://www.freethoughtdebater.com/FEvolutionCase.htm
+http://www.freetibet.org/info/file/file16.html
+http://www.freetime.com/outoftown.html
+http://www.freetimes.com/modules.php?op=modload&name=News&file=article&sid=520
+http://www.freetoon.com/chapter5.php?pageID=110
+http://www.freetrade.org/faqs/faqs.html
+http://www.freetrade.org/pubs/briefs/tpb-002.html
+http://www.freevibe.com/Drug_Facts/why_drugs.asp
+http://www.freevocabulary.com/
+http://www.freewebs.com/2boredinclass/
+http://www.freewebs.com/lester/naarchives.htm
+http://www.freewebs.com/snugglekitten/mywriting.htm
+http://www.freeweightloss.com/article5.html
+http://www.freewillastrology.com/horoscopes/allsigns.html
+http://www.freewillastrology.com/horoscopes/printer-friendly.html
+http://www.freewilliamsburg.com/archives/2005/03/us_military_say.html
+http://www.freewilliamsburg.com/december_2001/interviews.html
+http://www.freewoodworkingplan.com/
+http://www.freeworldgroup.com/news.htm
+http://www.freeworldweb.net/unitedeurope.html
+http://www.freeyourmindproductions.com/archives/01/bound-for-glory-when-the-hammer-falls-lyrics
+http://www.freezedriedmovies.com/review.php?id=178
+http://www.freezerbox.com/archive/article.asp?id=17
+http://www.freezerbox.com/archive/print.asp?id=17
+http://www.fremontartscouncil.org/meetings/minutes/oct04.html
+http://www.fremontbank.com/personal_banking/pam/faqs.htm
+http://www.french-accommodation-bureau.com/
+http://www.french-mortgage-connection.com/mortgages-decisions.htm
+http://www.french-news.com/176/news_briefs_main.shtml
+http://www.french-property.com/info/newsletters/user_003.htm
+http://www.french-property.com/info/newsletters/user_003.htm?printerfv=1
+http://www.frenchculture.org/art/events/othoniel.html
+http://www.frenchculture.org/art/residence/belin.html
+http://www.frenchentree.com/fe-forum/home.asp?status=view&MessageID=4278&origin=4278
+http://www.frenchentree.com/france-limousin-holt-property/DisplayArticle.asp?ID=3115
+http://www.frenchfusion.com/
+http://www.frenchhomerentals.com/swregions/minoune.htm
+http://www.frenchquarter.com/dining/GrandeDames.php
+http://www.frenchquarter.com/nightlife/IrishPubs.php
+http://www.frenchquarterfiction.com/ittybitty.html
+http://www.fresh-hell.com/journal/past/2001_11.html
+http://www.freshdirection.co.uk/forum/messages/12/226.shtml?1101215124
+http://www.freshdirection.co.uk/forum/messages/3/223.shtml?1101214318
+http://www.freshdirection.co.uk/forum/messages/7/225.shtml?1101215060
+http://www.freshfilmfestival.net/pages/Film%20Making%20guide.html
+http://www.freshnews.com/news/fresh-money/article_24837.html
+http://www.freshobsessed.com/faq/faq.aspx?param=faq
+http://www.freshpatents.com/
+http://www.fresno.gov/news&info/03272003_b.asp
+http://www.fresnobee.com/local/sv/story/9898628p-10742512c.html
+http://www.fresnobee.com/local/sv/v-textonly/story/9898628p-10742512c.html
+http://www.fresnocitycollege.edu/policeacademy/advcourses.html
+http://www.fresnorepublican.com/
+http://www.fridgetech.com/articles/acrnews/parallelflowchiller/
+http://www.friederich.net/chapter2.html
+http://www.friedkitten.com/archive/2001/08/
+http://www.friedlnet.com/industry_background_energy.html
+http://www.friedrich-tholstrup.com/
+http://www.friends-classics.demon.co.uk/ancientandmodern.htm
+http://www.friends-partners.org/GLOSAS/Global_University/Guideline/Sharma's_paper_on_Peace.html
+http://www.friends-partners.org/civnet/quarterreport01-vor2.html(opt,mozilla,unix,english,,new)
+http://www.friends-partners.org/friends/news/omri/1998/06/980619I.html(opt,mozilla,unix,english,,new)
+http://www.friends.org.uk/school/headrep/headrepjun02.htm
+http://www.friendsandflags.org/packs.htm
+http://www.friendsearch.com/dating/articlesf.htm
+http://www.friendshiphospital.com/privacy.php
+http://www.friendshipvillage.net/career_openings.html
+http://www.friendsofanimals.org/
+http://www.friendsofanimals.org/news/2005/february/rally-to-protect-the-arctic-refuge.html
+http://www.friendsofanimals.org/news/2005/january/judge-refuses-to-suspend-wolf-control.html
+http://www.friendsofscotland.gov.uk/business/emotion.html
+http://www.friendsofscotland.gov.uk/business/germany.html
+http://www.friendsofscotland.gov.uk/education/islaypower.html
+http://www.friendsreunited.co.uk/FriendsReunited.ASP?WCI=info
+http://www.friesian.com/british.htm
+http://www.friesian.com/universl.htm
+http://www.frif.com/cat97/a-e/blood_in.html
+http://www.frightscape.com/agememnon_messages4.html
+http://www.frischling.com/travelogue/12171999.php3
+http://www.frobenius.com/instruction-set.htm
+http://www.frodus.com/content_acalltoarms.html
+http://www.frogdesign.com/inside/history/
+http://www.froggyswebs.com/popular_aussie_slang-2.htm
+http://www.froginawell.net/japan/
+http://www.frograbbitmonkey.com/archives/000350.html
+http://www.frogwaresoftware.com/weddings.htm
+http://www.frolicanddetour.com/losingthecow/archives/2004/08/changing_tracks.html
+http://www.from-ireland.net/glimpses.htm
+http://www.fromallangles.com/glossary/credit-cards/terms/standard-floor-limit.htm
+http://www.fromartz.com/Pages/workforce.html
+http://www.frommers.com/destinations/paris/0062021098.html
+http://www.fromsitetostory.org/sources/papers/mnarch48/48inv-bf-a.asp
+http://www.fromthewilderness.com/
+http://www.fromthewilderness.com/free/ww3/02_11_02_lucy.html
+http://www.fromthewilderness.com/free/ww3/030402_cornreply.html
+http://www.fromthewilderness.com/free/ww3/040405_writing_wall.shtml
+http://www.fromthewilderness.com/free/ww3/060104_darley_saudi.shtml
+http://www.fromthewilderness.com/free/ww3/060704_tripod_fema.html
+http://www.fromthewilderness.com/free/ww3/060804_coup_detat.html
+http://www.fromthewilderness.com/free/ww3/071503_watergate_II.html
+http://www.fromthewilderness.com/free/ww3/100303_eating_oil.html
+http://www.fromthewilderness.com/free/ww3/102302_campbell.html
+http://www.fromthewilderness.com/free/ww3/111504_privilege_debt.shtml
+http://www.frontcompany.com/src/truth/myths.html
+http://www.frontier-assoc.com/inquiryarchives.htm
+http://www.frontierairlines.com/earlyreturns/
+http://www.frontierairlines.com/travel/early_returns.asp
+http://www.frontierbank.com/?u_ha=189,1743,630
+http://www.frontierpc.com/privacy.aspx
+http://www.frontiertech.com.au/Terms1.htm
+http://www.frontlineonnet.com/fl1422/14220410.htm
+http://www.frontlineonnet.com/fl1808/18080300.htm
+http://www.frontlineonnet.com/fl2015/stories/20030801005403900.htm
+http://www.frontpagemag.com/Articles/Printable.asp?ID=15455
+http://www.frontpagemag.com/Articles/ReadArticle.asp?ID=13682
+http://www.frontpagemag.com/Articles/ReadArticle.asp?ID=14435
+http://www.frontpagemag.com/Articles/ReadArticle.asp?ID=17369
+http://www.frontpagemag.com/Articles/ReadArticle.asp?ID=3833
+http://www.frontpagemag.com/blog/index.asp
+http://www.frontpagemagazine.com/Articles/ReadArticle.asp?ID=15740
+http://www.frontpagemagazine.com/Articles/ReadArticle.asp?ID=16328
+http://www.frontpagemagazine.com/Articles/ReadArticle.asp?ID=7583
+http://www.frootsmag.com/content/about/writeguide/
+http://www.frost.com/prod/servlet/vp.pag/2843802
+http://www.froststreet.net/archives/2004_03.html
+http://www.frostvalley.org/educational_programs/programs/model_forest.htm
+http://www.frozennorth.org/
+http://www.frp.qut.edu.au/train/finance/purchasing/receipting3.jsp
+http://www.frp.uk.com/sub_page.cfm/title/FRP%20Research%20Priorities/section/previous_call/editID/36
+http://www.frsd.k12.nj.us/boe/Board%20Policies/2431%20Athletic%20Competition.htm
+http://www.frst.govt.nz/publications/foundation/downloads/index/issue17.cfm
+http://www.frsuu.org/serm116.htm
+http://www.frugalfun.com/bottomfeeder.html
+http://www.frugalmarketing.com/dtb/sales-garden.shtml
+http://www.fruitfromwashington.com/whatsnew/whatsnew.html
+http://www.fruitfuljobs.com/careers_CV.aspx
+http://www.fruits-passion.com/en/corpo/terms.asp
+http://www.frumster.com/datingadvice.php
+http://www.fs.fed.us/database/feis/plants/tree/jugnig/all.html
+http://www.fs.fed.us/database/feis/wildlife/bird/pibo/all.html
+http://www.fs.fed.us/eco/s21draft.htm
+http://www.fs.fed.us/gpnf/fire/fire-danger-ratings.shtml
+http://www.fs.fed.us/gpnf/mshnvm/education/teachers-corner/library/fast-faqs.shtml
+http://www.fs.fed.us/gpnf/mshnvm/education/teachers-corner/registrations/visitor-centers/a4-eses-in-out-03.shtml
+http://www.fs.fed.us/gpnf/mshnvm/education/teachers-corner/registrations/visitor-centers/b4-mses-in-out-03.shtml
+http://www.fs.fed.us/land/emterms.html
+http://www.fs.fed.us/land/pubs/ecoregions/ch13.html
+http://www.fs.fed.us/ne/delaware/atlas/
+http://www.fs.fed.us/npnht/quotes/fitzgerald.shtml
+http://www.fs.fed.us/nwacfire/robert/news/robert/8-29-am.html
+http://www.fs.fed.us/pnw/corvallis/mdr/mapss/forecastdescription.htm
+http://www.fs.fed.us/r1/gallatin/fire/wyifc/main.htm
+http://www.fs.fed.us/r6/wenatchee/summerhomes/
+http://www.fs.fed.us/r9/ottawa/forest_management/fisheries_water/water_facs.htm
+http://www.fs.fed.us/rm/main/pa/newsclips/01_03/032901_gnarled.html
+http://www.fs.uci.edu/Cashier/checks.htm
+http://www.fsa.go.jp/en/refer/noact/index_menu.html
+http://www.fsa.gov.uk/Pages/Library/Communication/PR/1999/021.shtml
+http://www.fsa.gov.uk/Pages/Library/Cooperate/Performance/standards/complaints/complaints-full.shtml
+http://www.fsa.gov.uk/pages/Doing/Regulated/Fees/faqs/cp0502.shtml
+http://www.fsa.gov.uk/vhb/html/AUTH/authapp2.11.html
+http://www.fsa.gov.uk/vhb/html/GEN/GEN2.2.html
+http://www.fsa.gov.uk/vhb/html/MCOB/MCOB3.6.html
+http://www.fsa.usda.gov/drought/reference/public_law_105.htm
+http://www.fsae.com/fsaej_article.shtml
+http://www.fsbassociates.com/2001-02winter.asp
+http://www.fsc1.wpafb.af.mil/commu.htm
+http://www.fsec.ucf.edu/bldg/baihp/casestud/
+http://www.fsec.ucf.edu/bldg/pubs/egUSA/
+http://www.fsec.ucf.edu/bldg/pubs/japan/
+http://www.fsec.ucf.edu/bldg/pubs/valid/
+http://www.fsec.ucf.edu/ed/activit/bowlrules2003.htm
+http://www.fsec.ucf.edu/ed/activit/scibowlrules2004.htm
+http://www.fsf.org/licensing/licenses/gpl.html
+http://www.fsfe.org/documents/whyfs.en.html
+http://www.fsfeurope.org/documents/eur5greve.en.html
+http://www.fsfeurope.org/documents/eur5greve.sv.html
+http://www.fsfeurope.org/projects/swpat/letter-20040510.cs.html
+http://www.fsfeurope.org/projects/swpat/letter-20040510.en.html
+http://www.fsfeurope.org/projects/swpat/letter-20040510.fr.html
+http://www.fsfeurope.org/projects/swpat/letter-20040510.ro.html
+http://www.fsfeurope.org/projects/swpat/letter-20040510.sq.html
+http://www.fsfeurope.org/projects/swpat/letter-20040510.sv.html
+http://www.fsgkidsbooks.com/teachersguides/atthesign.htm
+http://www.fshsociety.org/fsh/FSHSocietyWTestimony_HouseApprops_FY2006LaborHHS_April12005_Proof.htm
+http://www.fsis.usda.gov/Fact_Sheets/FSIS_Rule_Designed_to_Reduce_Listeria/index.asp
+http://www.fsis.usda.gov/News_&_Events/NR_010405_01/index.asp
+http://www.fsis.usda.gov/News_&_Events/NR_063004_01/index.asp
+http://www.fsis.usda.gov/OA/speeches/2001/mc_publichealth060701.htm
+http://www.fsis.usda.gov/OPPDE/nacmpi/May2000/Wffbriefing_Attachments2.html
+http://www.fsis.usda.gov/Regulations_&_Policies/2003_Interim_&_Final_Rules_Index/index.asp
+http://www.fsis.usda.gov/fact_sheets/listeria_monocytogenes/index.asp
+http://www.fsm-a.org/stacks/AP_files/APAppC.html
+http://www.fsmb.org/Policy%20Documents%20and%20White%20Papers/HealthFraud.htm
+http://www.fsmgov.org/nat_d01.html
+http://www.fsmitha.com/h2/ch19sp.htm
+http://www.fsmitha.com/h2/ch26.htm
+http://www.fsmitha.com/h2/ch33.htm
+http://www.fsmlaw.org/fsm/code/title19/T19_Ch04.htm
+http://www.fso.arizona.edu/fso/deptman/9/912outs.html
+http://www.fss.gsa.gov/
+http://www.fst.org/doyle.htm
+http://www.fst.org/ethics.htm
+http://www.fsu.edu/~CandI/health/courses/4870.htm
+http://www.fsu.edu/~air/Alert2u1.htm
+http://www.fsu.edu/~trauma/T039.html
+http://www.fsu.edu/~trauma/ogcross.html
+http://www.fsu.edu/~trustees/meeting/minutes/03-26-04.html
+http://www.fsu.edu/~trustees/meeting/minutes/09-20-02.html
+http://www.fsunews.com/vnews/display.v/ART/2005/01/17/41eafa14b2ce7
+http://www.fsunion.org.au/article.asp?artid=600
+http://www.fsus.fsu.edu/mcquone/HurrInClass/background.htm
+http://www.ft-wayne.in.us/home/facts.html
+http://www.ft2.org.uk/training/
+http://www.ft2.org.uk/training/pindex.html
+http://www.fta.co.uk/trainingprospectus05/info/terms.jsp
+http://www.ftaa-alca.org/FTAADraft03/ChapterXX_e.asp
+http://www.ftaaimc.org/en/index.shtml
+http://www.ftacusa.org/
+http://www.ftb.ca.gov/aboutftb/annrpt/1996/legis2.html
+http://www.ftb.ca.gov/forms/updates/updateResults.asp?FormNum=Publication+1001
+http://www.ftb.ca.gov/law/rulings/active/lr94_2.html
+http://www.ftb.ca.gov/law/rulings/active/lr98_1.html
+http://www.ftc.gov/acoas/bylaws%20.htm
+http://www.ftc.gov/acoas/papers/acoasdraft2.htm
+http://www.ftc.gov/acoas/papers/finalreport.htm
+http://www.ftc.gov/bc/adops/011.htm
+http://www.ftc.gov/bcp/conline/pubs/alerts/invnalrt.htm
+http://www.ftc.gov/bcp/conline/pubs/autos/usedcar.htm
+http://www.ftc.gov/bcp/conline/pubs/credit/fcb.htm
+http://www.ftc.gov/bcp/conline/pubs/credit/kneedeep.htm
+http://www.ftc.gov/bcp/conline/pubs/credit/repair.htm
+http://www.ftc.gov/bcp/conline/pubs/general/sortgrn.htm
+http://www.ftc.gov/bcp/conline/pubs/invest/vending.htm
+http://www.ftc.gov/bcp/conline/pubs/services/model.htm
+http://www.ftc.gov/bcp/conline/pubs/tmarkg/nine.htm
+http://www.ftc.gov/bcp/franchise/advops/advis97-4.htm
+http://www.ftc.gov/bcp/franchise/advops/advis99-5.htm
+http://www.ftc.gov/bcp/privacy/wkshp97/comments2/dmaapp4.htm
+http://www.ftc.gov/be/v030008.htm
+http://www.ftc.gov/be/v980033.htm
+http://www.ftc.gov/opa/2000/06/comp629.htm
+http://www.ftc.gov/opa/2002/12/fyi0268.htm
+http://www.ftc.gov/opa/2003/06/fyi0336.htm
+http://www.ftc.gov/opa/2004/05/gates.htm
+http://www.ftc.gov/os/1997/06/interado.htm
+http://www.ftc.gov/os/1997/06/kcddo.htm
+http://www.ftc.gov/os/1997/06/shelldo.htm
+http://www.ftc.gov/os/1998/06/9810173.cmp.htm
+http://www.ftc.gov/os/1998/09/9810173.cmp.htm
+http://www.ftc.gov/os/1999/03/9810261northtahoecomplaint.htm
+http://www.ftc.gov/os/1999/08/northtahoecomplaint.htm
+http://www.ftc.gov/os/2000/06/gasolinecommerce.htm
+http://www.ftc.gov/os/2000/06/gasolinegovref.htm
+http://www.ftc.gov/os/2000/06/gasolinejudiciary.htm
+http://www.ftc.gov/os/2001/06/northdakotaletter.htm
+http://www.ftc.gov/os/2002/04/cccicmplnt.htm
+http://www.ftc.gov/os/2003/04/030409testimony.htm
+http://www.ftc.gov/os/2003/06/030611reauthhr.htm
+http://www.ftc.gov/os/2003/06/030611reauthsenate.htm
+http://www.ftc.gov/speeches/anthony/standardppf.htm
+http://www.ftc.gov/speeches/leary/atljva4.htm
+http://www.ftc.gov/speeches/muris/murisaba.htm
+http://www.ftc.gov/speeches/other/ahafin.htm
+http://www.ftc.gov/speeches/swindle/030428aggressive.htm
+http://www.ftexploring.com/askturtleboy/askturtleboy1.html
+http://www.ftlcomm.com/ensign/Sun3pan/areyouready/areyouready.html
+http://www.ftmac.org/preserve.htm
+http://www.ftmastering.com/mmo/mmo13_3.htm
+http://www.fto.nsw.gov.au/content.asp?content=8&Id=29
+http://www.fto.nsw.gov.au/fund.asp?Id=206&subID=3
+http://www.ftponline.com/ea/magazine/fall2004/features/akolawa/
+http://www.ftponline.com/resources/spcollections/servlets_jsp/
+http://www.ftponline.com/vsm/2004_11/magazine/departments/letters/
+http://www.ftponline.com/wss/2004_12/magazine/columns/sqlconnection/default_pf.aspx
+http://www.ftrain.com/astrakhan_awareness.html
+http://www.ftrain.com/run_ground_zero.html
+http://www.ftvideo.com/genex/buzz/04/natswrap/index1.htm
+http://www.fuckfrance.com/read.html?postid=1006317&replies=30&page=1
+http://www.fuckfrance.com/read.html?postid=1012884&replies=11&page=1
+http://www.fuckfrance.com/read.html?postid=711220&replies=59&page=3
+http://www.fucknationalcity.com/pages/locks/index.shtml
+http://www.fuckthesouth.com/
+http://www.fudan.edu.cn/english/about/organization/office_6.html
+http://www.fudco.com/habitat/archives/000023.html
+http://www.fudgecakedesign.co.uk/
+http://www.fuelcelleurope.org/
+http://www.fuelcellstore.com/information/coming_of_age.html
+http://www.fuelcelltoday.com/FuelCellToday/EducationCentre/EducationCentreExternal/EducationCentreLinks/EduCentreDisplayLinks/0,1762,CollegesUSA,00.html
+http://www.fuelcelltoday.com/FuelCellToday/IndustryDirectory/IndustryDirectoryExternal/IndustryDirectoryDisplayCompany/0,1664,1810,00.html
+http://www.fuelcelltoday.com/FuelCellToday/IndustryDirectory/IndustryDirectoryExternal/IndustryDirectoryDisplayCompany/0,1664,2153,00.html
+http://www.fuelcelltoday.com/FuelCellToday/IndustryDirectory/IndustryDirectoryExternal/IndustryDirectoryDisplayCompany/0,1664,2537,00.html
+http://www.fuelcelltoday.com/FuelCellToday/IndustryDirectory/IndustryDirectoryExternal/IndustryDirectoryDisplayCompany/0,1664,559,00.html
+http://www.fuelcelltoday.com/FuelCellToday/IndustryInformation/IndustryInformationExternal/NewsByTaxHome/0,1614,Technology,00.html
+http://www.fuelcelltoday.com/shop/FCTEShopByCategory/0,2205,7,00.html
+http://www.fuelcelltoday.org/FuelCellToday/EducationCentre/EducationCentreExternal/EduCentreDisplay/0,1741,FCInfoUses,00.html
+http://www.fueleconomy.gov/feg/info.shtml
+http://www.fujifilm.co.uk/minilabs/frontier_cs.php?id=47
+http://www.fujifilm.co.uk/technical/hireshop/tandc.html
+http://www.fujiiya.com/bbse/aska_ii.cgi
+http://www.fujispray.com/partsaccessories.htm
+http://www.fujitsu.com/global/news/pr/recent/index-topic_computing.html
+http://www.fujitsu.com/us/services/solutions/lifescience/
+http://www.fukubonsai.com/M-L9d.html
+http://www.fulbright.jp/e4/wj-guide.html
+http://www.fulbrightalumni.org/olc/pub/FBA/programs/rules.html
+http://www.fulbrightthai.org/knowledge/education-us.php
+http://www.fulcrum-books.com/html/rvs_getting_out.html
+http://www.fulcrum-gardening.com/html/intuitive_gardener.html
+http://www.fullcontext.com/archives/000192.html
+http://www.fullliving.com/workshops.html
+http://www.fullyarticulated.com/MATTPAGE.html
+http://www.fullyramblomatic.com/archive/20040818-0908.htm
+http://www.fultonspeedway.com/rules/purestock.html
+http://www.fum.org/QL/issues/0311/passages.htm
+http://www.fumc-conroe.org/
+http://www.fun-with-words.com/neologisms_0007.html
+http://www.funagain.com/control/product/~product_id=014299
+http://www.funattic.com/game_classroom.htm
+http://www.functionalgenomics.org.uk/sections/activitites/Reports/report_geneva_2001.htm
+http://www.functionart.com/Press0104/GlassArtists04.html
+http://www.fundacionfaes.es/boletin/boletines/boletin_1372_ing.htm
+http://www.fundacjauj.pl/information.php?l=en
+http://www.fundadvice.com/FEhtml/InvestingBasics/0009.html
+http://www.fundadvice.com/FEhtml/PsychHurdles/0206b.html
+http://www.fundadvice.com/press/alaskaairlines.html
+http://www.fundaec.org/en/guidingprinciples/principles.htm
+http://www.fundamentalbiblechurch.org/Tracts/fbctruth.htm
+http://www.fundedplans.com/directory/funded-home-business.html
+http://www.fundraiserhelp.com/
+http://www.fundraisingweb.org/world/uk.htm
+http://www.fundsforwriters.com/ebooks.htm
+http://www.fundsupermart.com/main/research/viewHTML.tpl?articleNo=951
+http://www.funeralplan.com/mcfarland/losing
+http://www.funeralplan.com/pgfh/hgrief0
+http://www.funeralplan.com/pgfh/hgrief1
+http://www.funeralplan.com/reinke/hgrief0
+http://www.funeralplan2.com/bakerhazelfuneralhome/hgrief0
+http://www.funeralplan2.com/bakerhazelfuneralhome/hgrief1
+http://www.funeralplan2.com/green/hgrief0
+http://www.funkygrad.com/think/displayarticle.php?artID=13&subcat=study
+http://www.funkymjsite.co.uk/videotabloid5.html
+http://www.funkypancake.com/blog/archives/cat_signs_of_hounds.html
+http://www.funlake.com/accommodations/site_legend.php
+http://www.funlake.com/maps/site_legend.php
+http://www.funsci.com/fun3_en/blood/blood.htm
+http://www.funsci.com/fun3_en/electro/electro.htm
+http://www.funsci.com/fun3_en/usph/usph.htm
+http://www.funsci.com/texts/index_en.htm
+http://www.funsupply.com/parts.html
+http://www.funtrivia.com/playquiz.cfm?qid=141080&origin=
+http://www.funtrivia.com/quizzes/for_children/words_for_kids/word_meanings.html
+http://www.furcadia.com/community/events.html
+http://www.furcadia.com/roleplay/primes.html
+http://www.furholt.net/elaynas_den/_ST_Demons06.html
+http://www.furia.com/twas/twas0012.html
+http://www.furia.com/twas/twas0243.html
+http://www.furia.com/twas/twas0304.html
+http://www.furia.com/twas/twas0328.html
+http://www.furia.com/twas/twas0406.html
+http://www.furia.com/twas/twas0467.html
+http://www.furia.com/twas/twas0485.html
+http://www.furia.com/twas/twas0503.html
+http://www.furious.com/perfect/staff.html
+http://www.furman.edu/summerscholars/psychology.htm
+http://www.furninfo.com/absolutenm/anmviewer.asp?a=3987&z=2
+http://www.furnitureforthepeople.com/bushjokes.htm
+http://www.furnitureforthepeople.com/workpoor.htm
+http://www.furnitureontheweb.com/NoFrame/Products/completefullsizecanopybeds1nf.html
+http://www.furry-paws.com/faq.php
+http://www.furtherconfusion.org/fc2005/hotel.php
+http://www.furtherconfusion.org/fc2006/codeofconduct.php
+http://www.furthermore.org.uk/archives/2003_08.html
+http://www.fusmadison.org/
+http://www.fussell.org/bacds/bacdspriceincrfaq.htm
+http://www.futurecasts.com/25_year_economic_forecasts.html
+http://www.futurecasts.com/Keynes,%20The%20General%20Theory%20(I).htm
+http://www.futurecasts.com/book%20review%205-8.htm
+http://www.futuredynamicadvantage.com/
+http://www.futureenergies.com/modules.php?op=modload&name=News&file=article&sid=884
+http://www.futurefeedforward.com/front.php?fid=21
+http://www.futurefocus.net/news/newsapr05.htm
+http://www.futurefocus.net/news_info.htm
+http://www.futurefocus.net/pages.htm
+http://www.futuregamez.net/ps2games/scell2/scell2.html
+http://www.futureharvest.org/earth/malawi.shtml
+http://www.futurehi.net/archives/000015.html
+http://www.futurehi.net/phlebas/text/cultnote.html
+http://www.futurenetworkusa.com/news/2003/pr-2003-04-22.html
+http://www.futureofchildren.org/information2827/information_show.htm?doc_id=102647
+http://www.futureofmusic.org/articles/INDUCEanalysis.cfm
+http://www.futureofmusic.org/contractcrit.cfm
+http://www.futurepets.com/Cat_Trees.htm
+http://www.futurepets.com/Littermaid_Litter_Boxes.htm
+http://www.futurephysical.org/pages/content/ecotechnology/ecotech/190203_KEYNOTE_SPEECH_MASAKI_FUJIHATA.htm
+http://www.futureproducers.com/forums/showthread/threadid/112725
+http://www.futureproof.org/risk.htm
+http://www.futurepundit.com/archives/000919.html
+http://www.futurepundit.com/archives/001283.html
+http://www.futurepundit.com/archives/001611.html
+http://www.futurepundit.com/archives/001684.html
+http://www.futurepundit.com/archives/002284.html
+http://www.futurepundit.com/archives/002813.html
+http://www.futurepundit.com/archives/cat_brain_disorder_repair.html
+http://www.futurepundit.com/archives/cat_brain_emotions.html
+http://www.futurepundit.com/mt/mt-comments.cgi?entry_id=2813
+http://www.futuresearch.com/articles.php?showsite=65
+http://www.futuresindustry.org/fimagazi-1929.asp?a=893
+http://www.futuretech.blinkenlights.nl/prfdifpro.html
+http://www.futurismic.com/fiction/shibuya.html
+http://www.futurist.com/911/notes_about_calamity.htm
+http://www.futurist.com/portal/science/science_hit.htm
+http://www.fvastro.org/bylaws.htm
+http://www.fvi.org.uk/events/korea2006.html
+http://www.fvpsurgery.com/html/contact.html
+http://www.fvsd.ab.ca/flomac/TLC.htm
+http://www.fvsd.ab.ca/stm/Spring.htm
+http://www.fwas.org/link.asp?TOPIC_ID=891
+http://www.fwfr.com/fourum/topic.asp?ARCHIVE=true&TOPIC_ID=1479
+http://www.fwfr.com/fourum/topic.asp?TOPIC_ID=1388
+http://www.fwoa.org/news/fwoanws8c.html
+http://www.fwointl.com/
+http://www.fwradiology.com/watch.htm
+http://www.fws.gov/habitatconservation/news_archive.htm
+http://www.fws.gov/patuxent/ntedu.html
+http://www.fwtwr.com/18xx/rules_difference_list/2_4.htm
+http://www.fwtwr.com/fwtwr/ra/rules.htm
+http://www.fxstreet.com/nou/content/103340/content.asp?menu=knowledge
+http://www.fye.uconn.edu/awards.htm
+http://www.fyilondon.com/cgi-bin/niveau2.cgi?s=shopping&p=96437.html&a=1
+http://www.fylde.com/bluepan.html
+http://www.fypower.org/faq.html
+http://www.fypower.org/news/back_issue/enewswire_502.html
+http://www.fzaoint.net/dofp/fca.php
+http://www.fzaoint.net/doubt.html
+http://www.g-gej.org/5-2/letter2.html
+http://www.g-nation.co.uk/teachers/mediacentre/news.cfm?contentid=52
+http://www.g21.net/africa55.html
+http://www.g21.net/mars327.htm
+http://www.g21.net/mars374.htm
+http://www.g21.net/mars407.htm
+http://www.g2mil.com/UrbanInf.htm
+http://www.g4tv.com/callforhelp/features/47508/Easy_HomeNetwork_Storage.html
+http://www.g4tv.com/gearandgadgets/features/50081/HDTV_Epiphany_.html
+http://www.g8.utoronto.ca/summit/2004seaisland/fact_mefta.html
+http://www.g8legalsupport.info/addinfo/
+http://www.gabbitas.co.uk/index.cfm?action=rac.jobOp
+http://www.gabbitas.co.uk/index.cfm?action=tea.home
+http://www.gacp.org/webapps/gacp/en/about_history.jsp
+http://www.gactr.uga.edu/gcq/gcqwin96/ronsimpson.html
+http://www.gaddgedlar.com/anglo-scots.htm
+http://www.gadgetopia.com/2003/06/26/WhateverHappenedToKiokenDesign.html
+http://www.gadgetstuff.com/product.asp?id=10118&cid=2
+http://www.gadgetstuff.com/terms.asp
+http://www.gaiahouse.co.uk/booking_retreats.htm
+http://www.gaiam.com/retail/gai_content/learn/gai_learnArticle.asp?article_id=1120
+http://www.gaietyschool.com/04/otp.htm
+http://www.gainesville.com/apps/pbcs.dll/article?AID=/20050205/API/502050525&cachetime=5
+http://www.gainsbc.co.uk/locations.asp
+http://www.gairdner.org/news.html
+http://www.gaisan.com/blogs/archives/2005/04/
+http://www.gal.co.za/newsitem.php?id=51
+http://www.galaktek.com/cgi-bin/index?page=deffect2.html
+http://www.galapagos-ecuador.com/galapagos-islands.html
+http://www.galapagosartspace.com/events2.html
+http://www.galaxy-h.gov.uk/teacher_worklab.html
+http://www.galaxygoo.org/blogs/archives/000589.html
+http://www.gale.com/free_resources/bhm/bio/charles_r.htm
+http://www.galegroup.com/free_resources/bhm/bio/charles_r.htm
+http://www.galegroup.com/free_resources/bhm/bio/jackson_j.htm
+http://www.galegroup.com/free_resources/bhm/bio/lee_s.htm
+http://www.galegroup.com/free_resources/glossary/
+http://www.galegroup.com/free_resources/glossary/glossary_bc.htm
+http://www.galegroup.com/free_resources/whm/bio/curie_m.htm
+http://www.galegroup.com/servlet/HTMLFileServlet?imprint=9999&region=7&fileName=reference/archive/200409/scopus.html
+http://www.galeschools.com/grant_goldmine/foundations/smith_reynolds_foundation.htm
+http://www.galha.org/glh/182/sagan.html
+http://www.galha.org/glh/211/foxwell.html
+http://www.galileoweb.org/galileoLibrary/
+http://www.gallerydir.com/cgi-bin/gd/gd.exe/MEMBERSEARCH
+http://www.galleryone.com/phillips_prints_a-d.htm
+http://www.galleryreina.com/hh_retro/retro.html
+http://www.gallerywalk.org/Hays.html
+http://www.gallifreyone.com/review.php?id=na-46
+http://www.gallowaygroup.co.uk/news.html
+http://www.galwayadvertiser.ie/
+http://www.gamasutra.com/columns/fristrom/20040702/fristrom_01.shtml
+http://www.gamasutra.com/features/19990129/implementing_01.htm
+http://www.gamasutra.com/features/19990924/messiah_02.htm
+http://www.gamasutra.com/features/19991208/imislund_03.htm
+http://www.gamasutra.com/features/20000530/sharp_01.htm
+http://www.gamasutra.com/features/20001101/woodcock_01.htm
+http://www.gamasutra.com/features/20011219/spanel_01.htm
+http://www.gamasutra.com/features/20020401/hancock_01.htm
+http://www.gamasutra.com/features/20031003/lindley_01.shtml
+http://www.gamasutra.com/features/20041123/hall_01.shtml
+http://www.gamasutra.com/features/20041124/mezihorak_01.shtml
+http://www.gamasutra.com/features/20050420/tan_01.shtml
+http://www.gamasutra.com/newswire/eurospeak/20000828/
+http://www.gambletribune.org/article548.html
+http://www.gambling-forum.com/online-casino/ruby-fortune.htm
+http://www.gamblingresearch.org/contentdetail.sz?cid=2007&pageid=289
+http://www.game-group.com/
+http://www.game-over.net/reviews.php?page=gamecubereviews&id=91
+http://www.game-over.net/reviews.php?page=ps2reviews&id=302
+http://www.game-research.com/
+http://www.game-research.com/art_computer_game_research.asp
+http://www.game-research.com/review_what_video_games_have_to_teach.asp
+http://www.game-universe.com/product_info.php?products_id=21968&
+http://www.game-universe.com/product_info.php?products_id=32401&
+http://www.gameai.com/youknow.html
+http://www.gamealbum.com/keyword/free/23.html
+http://www.gameandfishcoalition.com/LegislativeResponses.cfm
+http://www.gameandfishmag.com/gear/gs0205motors/
+http://www.gameandfishmag.com/hunting/bowhunting-hunting/gf_aa076504a/
+http://www.gameandfishmag.com/walleyes/gf_aa026604a/
+http://www.gamearena.com.au/files/details/html/2430
+http://www.gamearena.com.au/files/details/html/4189
+http://www.gamearena.com.au/games/title/pc_naturalselection/messageboard/thread.php/2597461
+http://www.gameblogs.org/view_entry_byday.php?day=2005-06-24
+http://www.gameblogs.org/view_entry_popular.php?day=2005-06-14
+http://www.gameboomers.com/reviews/Pp/PolarExpressbygremlin.htm
+http://www.gameboomers.com/wtcheats/pcQq/QFG1.htm
+http://www.gamedev.net/columns/hardcore/dxshader2/page4.asp
+http://www.gamedev.net/community/forums/ViewReply.asp?id=1844017
+http://www.gamedev.net/community/forums/topic.asp?topic_id=278014
+http://www.gamedev.net/community/forums/topic.asp?topic_id=288493
+http://www.gamedev.net/community/forums/topic.asp?topic_id=295727&whichpage=2
+http://www.gamedev.net/community/forums/viewreply.asp?ID=1872531
+http://www.gamedev.net/reference/articles/article1832.asp
+http://www.gamedev.net/reference/articles/article796.asp
+http://www.gamedev.net/reference/articles/article837.asp
+http://www.gamedev.net/reference/business/features/legalissues1/
+http://www.gamedev.net/reference/list.asp?categoryid=77
+http://www.gamefaqs.com/features/help/entry.html?cat=29
+http://www.gamefaqs.com/portable/gbadvance/code/468480.html
+http://www.gamefaqs.com/portable/gbadvance/code/921183.html
+http://www.gamefaqs.com/portable/gbadvance/review/R51718.html
+http://www.gamegirladvance.com/
+http://www.gamegirladvance.com/archives/2002/12/10/video_games_tech_used_as_research_tool.html
+http://www.gamegirladvance.com/archives/2003/04/16/genderplay_successes_and_failures_in_character_designs_for_videogames.html
+http://www.gamegirladvance.com/archives/2003/07/03/the_choice_to_cheat.html
+http://www.gamegirladvance.com/archives/2003/08/11/silent_hill_3.html
+http://www.gamegirladvance.com/archives/2005/06/04/what_we_learn_from_video_games.html
+http://www.gamegirladvance.com/archives/2005/06/07/workers_of_the_world_unite_maybe.html
+http://www.gamegirlz.com/adventures/game_001.shtml
+http://www.gamegrene.com/node/285
+http://www.gamegrene.com/node/340
+http://www.gamegrene.com/node/490
+http://www.gamegrene.com/node?from=45
+http://www.gamegrene.com/taxonomy/term/14
+http://www.gamegrene.com/taxonomy_menu/2/14
+http://www.gamehippo.com/cat/all_1_64.shtml
+http://www.gamejournalism.com/archives/2004/Nov/03/fragdolls_sex_blogs_and_firstperson_shooters.html
+http://www.gamekids.com/games3.html
+http://www.gameloaded.co.uk/buy-1819-serious-sam-the-.html
+http://www.gameloaded.co.uk/buy-2313-double-pack-poke.html
+http://www.gameplanet.co.nz/mag.dyn/Reviews/2644.html
+http://www.gamer-girl.org/
+http://www.gamerankings.com/cheats/921183
+http://www.gamerifts.com/news/archives/arc10-2004.shtml
+http://www.gameroom.com/gamebits/RULES/Murder_She_Wrote_Rules.html
+http://www.gameroomwarehouse.com/faq.html
+http://www.gamershell.com/news/13201.html
+http://www.gamershell.com/news/21765.html
+http://www.gamershell.com/news/7089.html
+http://www.gamershell.com/ps2/athens_2004/review.html
+http://www.gamersinfo.net/index.php?art/id:307
+http://www.gamersmark.com/reviews/view/499
+http://www.gamerstemple.com/games/000394/000394r01.asp
+http://www.gamerstemple.com/games5/000768/000768r02.asp
+http://www.gamesarefun.com/gamesdb/review.php?reviewid=375
+http://www.gamesconference.org/digra2005/viewabstract.php?id=39
+http://www.gameseek.co.uk/Games/DVD/TV-Series/gso/60/
+http://www.gameseek.co.uk/resultslist.php?ps=TV%20Series&c=&o=td&pc=DVD
+http://www.gamesfromwithin.com/articles/0501/000066.html
+http://www.gamesindustry.biz/content_page.php?aid=9456
+http://www.gamesinvestor.com/Thinkpieces/The_Evolving_Games_Industry__1/the_evolving_games_industry__1.html
+http://www.gamespot.com/gamecube/action/metroidprime/review.html
+http://www.gamespot.com/gamecube/rpg/lostkingdoms/review.html
+http://www.gamespot.com/gamecube/sports/ssx3/review.html
+http://www.gamespot.com/gamespot/features/all/gamespotting/121401/p6_01.html
+http://www.gamespot.com/gba/strategy/advancewars2/printable_6030327.html
+http://www.gamespot.com/gbc/sports/nhl2000/review.html
+http://www.gamespot.com/mobile/driving/asphalturbangt2d/review.html
+http://www.gamespot.com/mobile/puzzle/chipschallenge/review.html
+http://www.gamespot.com/mobile/puzzle/familyfeud2/review.html
+http://www.gamespot.com/mobile/puzzle/optimalvideopoker/review.html
+http://www.gamespot.com/mobile/strategy/ah1seabomber/
+http://www.gamespot.com/mobile/strategy/ah1seabomber/checkprices.html
+http://www.gamespot.com/news/2005/05/26/news_6126595.html?part=rss&tag=gs_news&subj=6126595
+http://www.gamespot.com/pc/action/coldfear/preview_6114393.html
+http://www.gamespot.com/pc/action/freedomthebattleforli/printable_6075492.html
+http://www.gamespot.com/pc/action/halflife2/news_6101409.html
+http://www.gamespot.com/pc/action/thesuffering/review.html
+http://www.gamespot.com/pc/rpg/kotor2/preview_6113336.html
+http://www.gamespot.com/pc/rpg/neverwinternights/review.html
+http://www.gamespot.com/pc/sim/dday1944invasionofeurope/factsheet_6094625.html
+http://www.gamespot.com/ps/action/silhouettemirage/review.html
+http://www.gamespot.com/ps2/action/freedomthebattleforli/printable_6075496.html
+http://www.gamespot.com/ps2/action/rez/news_6092290.html
+http://www.gamespot.com/ps2/action/scarface/news_6104520.html
+http://www.gamespot.com/ps2/driving/streetracingsyndicate/review.html
+http://www.gamespot.com/ps2/rpg/arctheladgeneration/preview_6124397.html
+http://www.gamespot.com/ps2/strategy/kessen3/news_6105822.html
+http://www.gamespot.com/xbox/driving/streetracingsyndicate/review.html
+http://www.gamespyarcade.com/support/help/classicgames.shtml
+http://www.gamespydaily.com/news/fullstory.asp?id=1585
+http://www.gamestation.co.uk/terms.asp
+http://www.gamesurge.com/pc/reviews/nfspu.shtml
+http://www.gamesurge.com/pc/strategy/pc_wt/Blood-omen.shtml
+http://www.gametalk.com/talk/psp/rengoku/72877324.htm
+http://www.gamewinners.com/DOSWIN/blsuffering.htm
+http://www.gamewinners.com/playstation2/Suffering.htm
+http://www.gamewinners.com/xbox/SoulCalibur2.htm
+http://www.gamewinners.com/xbox/Suffering.htm
+http://www.gameworld.com/saved/Award-WinningGame.htm
+http://www.gamingnexus.com/Review.asp?ID=92
+http://www.gamingreport.com/article.php?sid=17473&mode=nested&order=0&thold=0
+http://www.gamingtoday.com/index.cfm?articleid=12164&AIN=510888
+http://www.gammaphibeta.org/news/detail.asp?NEWS_ID=901&NEWS_CATEGORY_ID=11
+http://www.gammassl.co.uk/topics/conundrums.htm
+http://www.gammonitis.com/backgammon_clock%20rules.htm
+http://www.gammonline.com/demo/articles/hank.htm
+http://www.gammonskanska.com/hk/eng/careers.asp
+http://www.gams.com/docs/putt.htm
+http://www.gandhi.ca/activities/speakers/carter.php
+http://www.gandynet.com/art/Masters/Richard_Lack/Lack_bio.htm
+http://www.ganglandnews.com/column114.htm
+http://www.gangofpour.com/underground/nosound/playoff02/
+http://www.gannett.com/go/difference/greatfalls/pages/part4/families.html
+http://www.gannett.com/go/difference/greatfalls/pages/part5/teen.html
+http://www.gannett.com/go/newswatch/2004/december/nw1210-2.htm
+http://www.gannonbroadcasting.com/countryshowdown.html
+http://www.gantthead.com/membership.cfm
+http://www.gao.ca/index.cfm/ci_id/1227/la_id/1.htm
+http://www.gao.gov/cgi-bin/getrpt?GAO-02-1095T
+http://www.gao.gov/decisions/appro/302710.htm
+http://www.gao.gov/decisions/appro/302993.htm
+http://www.gao.gov/decisions/appro/303906.htm
+http://www.gao.gov/decisions/bidpro/295946.htm
+http://www.gao.gov/decisions/other/303767.htm
+http://www.gao.gov/htext/d03723.html
+http://www.gao.gov/htext/d04570r.html
+http://www.gapersblock.com/airbags/archives/ode_to_a_cast_iron_skillet/
+http://www.gapingvoid.com/
+http://www.gapingvoid.com/Moveable_Type/archives/000932.html
+http://www.gapingvoid.com/Moveable_Type/archives/000989.html
+http://www.gapingvoid.com/Moveable_Type/archives/001111.html
+http://www.gapingvoid.com/Moveable_Type/archives/001207.html
+http://www.gapingvoid.com/Moveable_Type/archives/001679.html
+http://www.gapingvoid.com/Moveable_Type/archives/2004_09.html
+http://www.gapingvoid.com/Moveable_Type/archives/2005_01.html
+http://www.gapsemc.com/national/thumbsup.html
+http://www.garage-toys.com/fo25foflho.html
+http://www.garagegames.com/mg/projects/tge/
+http://www.garantibank.com/welcome/cr_nature.html
+http://www.garden-birds.co.uk/guestbook/archive/guestbk03h.htm
+http://www.garden.co.uk/acatalog/THE_GARDEN_PHARMACY__ELECTRICAL_GOODS_13.html
+http://www.garden.co.uk/acatalog/THE_GARDEN_PHARMACY__Electrical_goods_13.html
+http://www.gardenadvice.com/index.cfm/fuseaction/basics.detail/basicsId/105831/catId/31293
+http://www.gardenadvice.com/index.cfm/fuseaction/basics.detail/basicsId/106406/catId/23598
+http://www.gardenadvice.com/index.cfm/fuseaction/basics.detail/basicsId/106440/catId/31257
+http://www.gardenartisans.com/accents.html
+http://www.gardenbuddies.com/forum/messages/4450/1124421.html
+http://www.gardendigest.com/trees2.htm
+http://www.gardenforever.com/pages/artwater.htm
+http://www.gardenguides.com/articles/raisedbedgarden2.htm
+http://www.gardenguides.com/forum/showthread.php?t=10238
+http://www.gardenguides.com/forum/showthread.php?t=11809&page=1
+http://www.gardenguides.com/forum/showthread.php?t=6103&goto=nextoldest
+http://www.gardeningnhc.org/rental_weddings.asp
+http://www.gardenlighting.co.uk/review.asp
+http://www.gardenofdemocracy.org/programmed_to_fail.html
+http://www.gardenofdemocracy.org/transylvania_lecture.html
+http://www.gardenofpraise.com/ibdbell.htm
+http://www.gardenscape.com/GSMagsBooks.html
+http://www.gardenscape.com/GSResources.html
+http://www.gardensonline.com.au/HowToShop/Policies.asp
+http://www.gardenvisit.com/garden_product/design/methods/twelve_things.htm
+http://www.gardenvisit.com/got/17/11.htm
+http://www.garella.com/rich/camret.htm
+http://www.garhwalhimalayas.com/feel_garhwal/fairs_festivals/
+http://www.garlic.com/~tgracyk/value.htm
+http://www.garlikov.com/EPFE/chap19.htm
+http://www.garlikov.com/EPFE/chap21.htm
+http://www.garlikov.com/Soc_Meth.html
+http://www.garlikov.com/philosophy/Tolerance.html
+http://www.garlikov.com/philosophy/majorityrule.htm
+http://www.garments.globalsources.com/gsol/I/Embroidered-emblem/a/9000000064290.htm
+http://www.garmin.com/cartography/mapSource/citynavMideast.jsp
+http://www.garnertedarmstrong.ws/Mark_Wordfroms/Euro1/euro1-17.shtml
+http://www.garnertedarmstrong.ws/breaking.shtml
+http://www.garp.com/risknews/newsfeed.asp?Category=31&MyFile=2004-11-18-9744.html
+http://www.garrettfineteas.com/index.asp?PageAction=Custom&ID=8
+http://www.garretthardinsociety.org/articles/articles.html
+http://www.garswoodsaintswfc.co.uk/computer-course/leading-to-mcse.html
+http://www.gartnerg2.com/research/rpt-0102-0010.asp
+http://www.garyfeldman.com/a_who-realtor-agent-broker.asp
+http://www.garynull.com/Documents/Continuum/HIVATZPart1.htm
+http://www.garynull.com/Documents/Continuum/VentilatingAnAIDSPatient.htm
+http://www.garynull.com/Documents/erf/TheImportanceOfVisionPartI.htm
+http://www.garynull.com/Documents/erf/philadelphia_dumps_on_the_poor.htm
+http://www.garynull.com/Documents/niceeasy.htm
+http://www.garynull.com/Documents/spirit/50adventures.htm
+http://www.garypnunn.com/news-greatness.php
+http://www.gasandoil.com/ogel/samples/freearticles/article_62.htm
+http://www.gasandoil.com/ogel/samples/freearticles/article_75.htm
+http://www.gasandoil.com/ogel/samples/freearticles/roundup_14.htm
+http://www.gasnet.org/societies/apsf/clinical_safety/adverse_event.php
+http://www.gastonchamber.com/ProgramofWork2005.htm
+http://www.gasunie.nl/nv/en/12.htm
+http://www.gatech.edu/accessibility/
+http://www.gatech.edu/news-room/archive/news_releases/light-life.html
+http://www.gatech.edu/news-room/release.php?id=96
+http://www.gatesfoundation.org/MediaCenter/Speeches/BillgSpeeches/BGSpeechNGA-050226.htm
+http://www.gateway.com/work/cp/solutions/case_study.shtml
+http://www.gateway2russia.com/st/art_220533.php
+http://www.gatewaycenter.com/events/events.html
+http://www.gatewaynewspapers.com/southhillsrecord/focus/40293/
+http://www.gateworld.net/movies/02.shtml
+http://www.gatherthewomen.org/gtw/join_us.htm
+http://www.gaudiclub.com/ingles/i_links/sfdes04.asp
+http://www.gavilan.edu/jobs/jobs.html
+http://www.gawa.asn.au/competitions.htm
+http://www.gawker.com/news/culture/blogs/index.php
+http://www.gawker.com/news/culture/jonathan-cheban/my-foray-into-masochism-dinner-with-jonathan-cheban-031611.php
+http://www.gawker.com/news/culture/movies-celebs/index.php
+http://www.gawker.com/news/culture/stalker/index.php
+http://www.gawker.com/news/culture/star-jones/index.php
+http://www.gawker.com/news/media/commentary/index.php
+http://www.gawwk.co.uk/i/clothes%20shopping.html
+http://www.gay.com/support/click.html$rg/5374,80398,c:/health/hiv/news/?date=2004/12/28/3&navpath=channels/health/mental
+http://www.gaycanada.com/pflag-york/our.html
+http://www.gaycenter.org/program_folders/rogram.2004-09-24.6037303604/program_view
+http://www.gaycitynews.com/gcn.356/bombshellcitylacksaids.html
+http://www.gaycitynews.com/gcn_419/acollectiveeffortat.html
+http://www.gaydarthemovie.com/making/producing.html
+http://www.gaydaze.com/feb96/eric/e-60225.htm
+http://www.gaygardener.com/quotes/quotes7.phtml
+http://www.gayhomes.net/rickandsteve/eatingout/eatingcast.htm
+http://www.gayleborden.com/about_us.htm
+http://www.gayot.com/travel/citytrips/nice.html
+http://www.gayoutdoors.org/page.cfm?sectionid=117&typeofsite=snippets&parent=153
+http://www.gaypsychotherapy.com/relstyle.htm
+http://www.gayscribe.com/readingroom/coors.htm
+http://www.gayspirituality.freeservers.com/mirrors.html
+http://www.gaytoz.com/bevents.asp
+http://www.gaywork.com/
+http://www.gayyouthuk.org.uk/speakout/index.phtml
+http://www.gazette.net/200522/princegeorgescty/county/278495-1.html
+http://www.gbacg.org/Patterns/butterick.htm
+http://www.gbairways.com/legal/conditions/term8/
+http://www.gbarto.com/turkey/
+http://www.gbax.com/
+http://www.gbg.bonet.se/bwf/art/industrialTies.html
+http://www.gbgm-umc.org/methchsrilan/SERMON.HTM
+http://www.gblaw.com/news.asp?newsID=18
+http://www.gbn.com/PageDisplayServlet.srv?page=legal
+http://www.gbnet.net/worksys/diplomat/techsum.htm
+http://www.gbrmpa.gov.au/corp_site/info_services/library/resources/online_catalogue.html
+http://www.gbrmpa.gov.au/corp_site/info_services/science/research_priorities/search.html?group=2
+http://www.gbrownc.on.ca/communityservices/programs.html
+http://www.gbtc.org/whatelse.html
+http://www.gcal.ac.uk/radicalglasgow/chapters/tom_bell.html
+http://www.gcc.edu/alumni/giving/outright/default.htm
+http://www.gcc.tas.gov.au/site/page.cfm?u=216
+http://www.gccni.org.uk/education/
+http://www.gcic.peachnet.edu/CRN/goingtohsTEXT.htm
+http://www.gcis.gov.za/docs/portcom/02creative.html
+http://www.gcis.gov.za/media/cabinet/020807.htm
+http://www.gcis.gov.za/media/ceo/020727.htm
+http://www.gcn.com/24_15/dodcomputing/36065-1.html
+http://www.gcn.com/research_results/cybersecurity2.html
+http://www.gcn.com/vol18_no34/guide/781-1.html
+http://www.gcpiano.us/piano_course_application.htm
+http://www.gcrio.org/CONSEQUENCES/vol3no1/biodiversity.html
+http://www.gcrio.org/CONSEQUENCES/vol4no1/carbcycle.html
+http://www.gcrta.org/schedules/rt2sa.html
+http://www.gcsaa.org/gcm/2005/june05/06feature2.asp
+http://www.gcsp.ch/e/training/Out-of-Geneva/SEE/Index.htm
+http://www.gcsrw.org/
+http://www.gct-chinese-translation.com/chinese-services/mandarin-translation.htm
+http://www.gct.org/aug04_1.html
+http://www.gct.org/may04_1.html
+http://www.gdarkness.com/theatre.html
+http://www.gdconf.com/conference/seriousgames.htm
+http://www.gdconf.com/schedule/descriptions.htm
+http://www.gdi-solutions.com/
+http://www.gdr.org/newsletter1.htm
+http://www.gdrc.org/icm/micro/sonfield-barbato.html
+http://www.gdusa.com/lookout/3_03.php
+http://www.ge.com/en/subidea/
+http://www.ge.com/stories/en/10897.html?category=Products_Business
+http://www.geafiltration.com/html/product_services/pilot_testing.html
+http://www.gearbits.com/archives/000620.html
+http://www.gearlive.com/index.php/news/article/the_final_cut_look_hitchhikers_guide_movie_history_04280358/
+http://www.gebible.org/jesus.html
+http://www.geda.co.za/Default.asp?index=9913&ID=233&sub=2
+http://www.geda.co.za/default.asp?index=9913&ID=233&sub=2
+http://www.geek.com/news/geeknews/2001dec/chi20011203009120.htm
+http://www.geek.com/news/geeknews/2001jan/pda20010202004119.htm
+http://www.geek.com/news/geeknews/2002mar/gee20020321010825.htm
+http://www.geek.com/news/geeknews/2003Sep/bpd20030915021752.htm
+http://www.geek.com/news/geeknews/2004Aug/fea20040827026692.htm
+http://www.geek.com/news/geeknews/2004Dec/bch20041214028248.htm
+http://www.geek.com/news/geeknews/2004Jun/fea20040611025542.htm
+http://www.geek.com/news/geeknews/2004Jun/ran20040611025542.htm
+http://www.geek.com/news/geeknews/2004May/bga20040507025046.htm
+http://www.geek.com/news/geeknews/2005Jun/gee20050608030846.htm
+http://www.geek.com/pdageek/newsletter/nlpda08182000.htm
+http://www.geeknewscentral.com/
+http://www.geeknewscentral.com/archives.html
+http://www.geekslut.org/archive/04/09/23/
+http://www.geeksnet.com/faq/faq2.htm
+http://www.geektastic.com/archives/2004_11.php
+http://www.geekwithglasses.com/index.php?display=archives.php
+http://www.geelongcollege.vic.edu.au/com_archives_100_7.html
+http://www.gegenstandpunkt.com/english/northire.html
+http://www.gehealthcare.com/usen/education/patient_channel/tpc_faq_general.html
+http://www.geist.com/notes/issue.php?id=46
+http://www.gelcandlemaking.com/section4.html
+http://www.gem-werc.org/mmrc/mmrc9729.htm
+http://www.gemcal.com/mogok.htm
+http://www.gemdatabase.org/GEMDatabase/BrowseTitles.asp?curpage=30
+http://www.gemedicalsystemseurope.com/euen/monitor/homepage_perinatal.html
+http://www.gemini.no/english/technology_en.asp
+http://www.gemstone.org/gem-by-gem/english/garnet.html
+http://www.gemut.com/News.asp?NewsID=30
+http://www.gemut.com/News.asp?NewsID=33
+http://www.gemut.com/news.asp?NewsID=30
+http://www.gen-probe.com/career_op/index.asp
+http://www.gencourt.state.nh.us/rsa/html/XXXVIII/421-B/421-B-11.htm
+http://www.gender.org.uk/derby/history.htm
+http://www.gendergap.com/elections.htm
+http://www.gendertrust.org.uk/showarticle.php?aid=14
+http://www.genderweb.org/family/gfam4.html
+http://www.gene.ucl.ac.uk/anhumgen/guide-to-authors-2002.htm
+http://www.genealinks.com/marriages/nc.htm
+http://www.genealogyforum.rootsweb.com/gfaol/beginners/Unk4.htm
+http://www.genealogysf.com/Houk-p/p31.htm
+http://www.genealogyweb.com/coatofarms.htm
+http://www.genecampaign.org/archive21.html
+http://www.geneletter.com/page434.htm
+http://www.genelevine.com/toc/assett/toc-assett-chap3.htm
+http://www.genelevine.com/toc/assett/toc-assett.htm
+http://www.genencor.com/wt/gcor/pr_1030661380
+http://www.geneontology.org/GO.evidence.shtml
+http://www.geneontology.org/GO.usage.shtml
+http://www.generalsjoes.com/
+http://www.generation-europe.eu.com/default.asp?sid=110&cid=1100
+http://www.generation-online.org/t/metropolis.htm
+http://www.generationterrorists.com/quotes/firstlines.html
+http://www.generativeart.com/papersga2003/b29.htm
+http://www.genesciences.com/DNAjobsNews/17Dec04.htm
+http://www.genesdev.org/cgi/content/full/14/6/704
+http://www.geneseo.edu/~bicket/panop/topic_semiotic.htm
+http://www.genesiscenters.com/html/Growing_Baby_Businesses.html
+http://www.genesyslab.com/about/news_events/archives/2005/february/gets.asp
+http://www.genetics-and-society.org/resources/items/20041108_biocentury_usdin.html
+http://www.genetics.com.au/factsheet/04.htm
+http://www.genetics.org/cgi/content/full/153/3/1077
+http://www.geneva.ch/genevaguidengCorporationswiss.htm
+http://www.genevac.com/info/atex.html
+http://www.genevacsd.org/curriculum_mapping_science_grade%202.htm
+http://www.geni.org/globalenergy/library/media_coverage/SanDiegoUnionTribune/Power-sharing/Power-sharing.shtml
+http://www.geniushealth.com/
+http://www.geniuspapers.com/index.cfm?page=access
+http://www.genlytethomas.com/pdf/conflictgenlyte.pdf?A=398&B=419
+http://www.genocidewatch.org/BurundianpeacetalksMay2003.htm
+http://www.genome.gov/10001220
+http://www.genome.gov/10001707
+http://www.genome.org/cgi/content/abstract/13/6b/1360
+http://www.genome.org/cgi/content/full/11/6/923
+http://www.genome.org/cgi/content/full/12/7/1091
+http://www.genome.org/cgi/content/full/13/3/347
+http://www.genomenewsnetwork.org/articles/2004/03/04/sargasso.php
+http://www.genpoint.com/Files/news.html
+http://www.gensteel.com/
+http://www.gentel.net/intheloop/
+http://www.gentheoryrubbish.com/
+http://www.gentlebirth.org/archives/comfort.html
+http://www.gentlebirth.org/archives/emotionl.html
+http://www.gentlegiantsrescue.com/adoptions_page_2.htm
+http://www.gentletouchsweb.com/
+http://www.genuineblog.com/
+http://www.genuki.org.uk/big/eng/YKS/ARY/York/YorkHistory6.html
+http://www.genuki.org.uk/big/eng/YKS/Misc/Descriptions/ERY/ERYDescription2.html
+http://www.genuki.org.uk/big/eng/YKS/Misc/MIs/ARY/YorkMinsterBurials5.html
+http://www.genuki.org.uk/big/eng/YKS/Misc/Transcriptions/ARY/YorkMinsterMarriages1.html
+http://www.genuki.org.uk/big/eng/civreg/
+http://www.genworth.com/genworth/terms.jsp
+http://www.genzyme.com/corp/media/GENZ%20PR-110404.asp
+http://www.geo-logistics.com/WTR_Customs/incoterms.asp
+http://www.geo.cornell.edu/geology/faculty/RWA/maintext.html
+http://www.geo.ed.ac.uk/home/hsy/hsy.html
+http://www.geo.hunter.cuny.edu/~mpavlov/Courses/GisSG/MasteryEx4.html
+http://www.geo.msu.edu/geo333/Oil&gas.html
+http://www.geo.msu.edu/geo333/fires_ii.html
+http://www.geo.utep.edu/pub/keller/AGuideforTeachers.html
+http://www.geobop.com/education/Unions/
+http://www.geobytes.com/GeoNetMap.htm
+http://www.geocities.com/AgencyCBS/write.html
+http://www.geocities.com/Area51/Cavern/1841/pds/pds15.htm
+http://www.geocities.com/Area51/Rampart/2060/rules/slamgen.html
+http://www.geocities.com/Area51/Shadowlands/4077/boost.html
+http://www.geocities.com/Area51/Stargate/5103/cryptofiction/moth.html
+http://www.geocities.com/Athens/1534/ruleaug.html
+http://www.geocities.com/Athens/2705/mediarel.html
+http://www.geocities.com/Athens/3682/lord_nelson.html
+http://www.geocities.com/Athens/8945/links.html
+http://www.geocities.com/Athens/Academy/8395/rose.html
+http://www.geocities.com/Athens/Academy/9594/
+http://www.geocities.com/Athens/Academy/9594/tibet.html
+http://www.geocities.com/Athens/Acropolis/4198/rh/0199.html
+http://www.geocities.com/Athens/Acropolis/7001/alrm.htm
+http://www.geocities.com/Athens/Acropolis/8141/halftracks.html
+http://www.geocities.com/Athens/Acropolis/9669/kerala.htm
+http://www.geocities.com/Athens/Aegean/4217/theory.html
+http://www.geocities.com/Athens/Aegean/6354/mla.html
+http://www.geocities.com/Athens/Atlantis/6689/aspects.html
+http://www.geocities.com/Athens/Atrium/5924/forensicscienceactivites.htm
+http://www.geocities.com/Athens/Delphi/1088/natives/sitting.htm
+http://www.geocities.com/Athens/Delphi/1880/spiller/spiller.html
+http://www.geocities.com/Athens/Forum/1611/sins22lies19.html
+http://www.geocities.com/Athens/Forum/5037/Hist.html
+http://www.geocities.com/Athens/Forum/5037/ILS4.html
+http://www.geocities.com/Athens/Forum/6811/yalp/
+http://www.geocities.com/Athens/Olympus/8161/program/busadmin/bcourses.html
+http://www.geocities.com/Athens/Oracle/2351/petro.html
+http://www.geocities.com/Athens/Oracle/2528/br_polideal.htm
+http://www.geocities.com/Athens/Parthenon/4052/laylinin.htm
+http://www.geocities.com/Athens/Parthenon/6528/avoid.htm
+http://www.geocities.com/Athens/Parthenon/6528/peniel.htm
+http://www.geocities.com/Athens/Sparta/6997/rorty.html
+http://www.geocities.com/Athens/Troy/1791/rapallo.html
+http://www.geocities.com/Athens/Troy/3869/Robins.html
+http://www.geocities.com/BourbonStreet/3754/finalround.html
+http://www.geocities.com/BourbonStreet/4587/artcas9.html
+http://www.geocities.com/BourbonStreet/Bayou/1088/int.html
+http://www.geocities.com/Broadway/1906/r_buffy6.html
+http://www.geocities.com/Broadway/1928/pink_hair.htm
+http://www.geocities.com/Broadway/6384/Memoriam/mmoline.html
+http://www.geocities.com/Broadway/Alley/3765/trail7.html
+http://www.geocities.com/Broadway/Stage/2203/SMhandbook.html
+http://www.geocities.com/CapeCanaveral/Hall/9304/
+http://www.geocities.com/CapitolHill/1320/page3.html
+http://www.geocities.com/CapitolHill/1931/secB3.html
+http://www.geocities.com/CapitolHill/1931/secB7.html
+http://www.geocities.com/CapitolHill/5202/canada.html
+http://www.geocities.com/CapitolHill/Embassy/7213/links.html
+http://www.geocities.com/CapitolHill/Lobby/2379/FAILED.HTM
+http://www.geocities.com/CapitolHill/Lobby/2379/echmatt.htm
+http://www.geocities.com/CapitolHill/Parliament/2398/home.htm
+http://www.geocities.com/CapitolHill/Parliament/2398/posts.html
+http://www.geocities.com/CapitolHill/Parliament/4018/when_i_first_arrived_in_montreal.htm
+http://www.geocities.com/CollegePark/6174/eat-dog-groak.htm
+http://www.geocities.com/CollegePark/Quad/6460/CW/index2.html
+http://www.geocities.com/Colosseum/8682/heavy/basic.htm
+http://www.geocities.com/Colosseum/Dugout/4143/
+http://www.geocities.com/Colosseum/Park/2070/KOOLFAQ.HTM
+http://www.geocities.com/Heartland/6508/BLUE.HTM
+http://www.geocities.com/Heartland/7006/psychopolitics.html
+http://www.geocities.com/Heartland/Acres/6826/rhs2.htm
+http://www.geocities.com/Heartland/Fields/1759/volone/dat13.htm
+http://www.geocities.com/Heartland/Prairie/7305/may.htm
+http://www.geocities.com/Heartland/Valley/2822/miles_davis.html
+http://www.geocities.com/Heartland/Valley/7259/earlylife.html
+http://www.geocities.com/Hollywood/6952/7earlyreview.html
+http://www.geocities.com/Hollywood/Bungalow/5014/BREAKING_NEWS.html
+http://www.geocities.com/Hollywood/Cinema/9894/prequels.htm
+http://www.geocities.com/Hollywood/Derby/3267/25.html
+http://www.geocities.com/Hollywood/Hills/7336/503.htm
+http://www.geocities.com/Hollywood/Set/7601/acting.htm
+http://www.geocities.com/HotSprings/2455/asparwt.html
+http://www.geocities.com/MadisonAvenue/Lobby/4500/
+http://www.geocities.com/MotorCity/Downs/6995/archiveindex/fuelcrisis.html
+http://www.geocities.com/Nashville/Stage/7799/hitrecords.htm
+http://www.geocities.com/Paris/2809/peter06.html
+http://www.geocities.com/Pentagon/Bunker/3974/dec98.html
+http://www.geocities.com/Pentagon/Quarters/1975/g_itawna.htm
+http://www.geocities.com/Petsburgh/Fair/3341/
+http://www.geocities.com/RainForest/Canopy/5322/molybdenum.html
+http://www.geocities.com/RainForest/Vines/4825/82sfh-bylaws2001-r1.1.html
+http://www.geocities.com/SoHo/1422/vatican_time_machine.html
+http://www.geocities.com/SoHo/Coffeehouse/4587/others3.html
+http://www.geocities.com/SoHo/Studios/9526/fable018.htm
+http://www.geocities.com/SouthBeach/1285/wedding.html
+http://www.geocities.com/SouthBeach/Port/2470/bio.html
+http://www.geocities.com/SunsetStrip/Bistro/7458/cos/cos.htm
+http://www.geocities.com/TelevisionCity/8627/scrpt110.html
+http://www.geocities.com/TelevisionCity/Lot/2701/Lost2.html
+http://www.geocities.com/TheTropics/3328/navy.htm
+http://www.geocities.com/TheTropics/Island/6810/ivan/lasttown.html
+http://www.geocities.com/TimesSquare/Dungeon/1257/parents2.html
+http://www.geocities.com/Wellesley/4281/groundhog98.htm
+http://www.geocities.com/WestHollywood/Park/6443/Christmas/santa_story.html
+http://www.geocities.com/WestHollywood/Park/6443/Jews/fundamental1.html
+http://www.geocities.com/WileyMike/DenverLyrics.html
+http://www.geocities.com/Yosemite/1015/g1.htm
+http://www.geocities.com/Yosemite/9173/legoland.html
+http://www.geocities.com/acceatherton/html/lawsuit.htm
+http://www.geocities.com/acceatherton/html/letter2.htm
+http://www.geocities.com/aer_mcr/irdance/irdance.html
+http://www.geocities.com/aer_mcr/libjob/interview.html
+http://www.geocities.com/alienaxioms/addicted_automaton.html
+http://www.geocities.com/alienaxioms/alien_god.html
+http://www.geocities.com/apartment_garden/
+http://www.geocities.com/archiebaldsinclair/
+http://www.geocities.com/athens/acropolis/7001/alrm.htm
+http://www.geocities.com/bcbcollegeuk/Information.htm
+http://www.geocities.com/beezer542/2fstanley.htm
+http://www.geocities.com/bethlehem_soccer/gl070722.html
+http://www.geocities.com/bobarnebeck/ch11.html
+http://www.geocities.com/canadian_sf/pages/media/czerneda_interview.htm
+http://www.geocities.com/canadiancelticarts/2005.html
+http://www.geocities.com/catts_way/
+http://www.geocities.com/chessdp/ttchsrules.htm
+http://www.geocities.com/china_e_lobby/03April2002.html
+http://www.geocities.com/china_e_lobby/24September2003.html
+http://www.geocities.com/chtn_nhatrang/grandmother.html
+http://www.geocities.com/craigmaxim/f-4a.html
+http://www.geocities.com/craigsbookclub/sorrywrong.html
+http://www.geocities.com/creche_school/
+http://www.geocities.com/d-patanella/boop.html
+http://www.geocities.com/davidnicholson_99/GovDebate.htm
+http://www.geocities.com/dcjarviks/Idler/vIIIn114.html
+http://www.geocities.com/denisev2/spd_fine_motor_tasks.html
+http://www.geocities.com/doccnagel/satire/computerads.html
+http://www.geocities.com/dosser2/decadetopten.html
+http://www.geocities.com/dyancey3/lutheran.htm
+http://www.geocities.com/ecm_grrl/The_chance_to_say_Goodbye.htm
+http://www.geocities.com/endtimedeception/robert.htm
+http://www.geocities.com/erslyman/newpoems.html
+http://www.geocities.com/evophonic/methods.html
+http://www.geocities.com/fineyoungsocialist/co.d.html
+http://www.geocities.com/freethoughtmecca/bismilwarda.html
+http://www.geocities.com/gameshowguy2000/WINNINGLINES.htm
+http://www.geocities.com/gamut_mag/neverland.htm
+http://www.geocities.com/gedojudea/gundam/zechs2.html
+http://www.geocities.com/giantfideli/CellNEWS_Human_Cloning_Race_Is_On.html
+http://www.geocities.com/grubbymitts/page1.html
+http://www.geocities.com/harlaquinn_2000/fictionsuits.html
+http://www.geocities.com/heluoarticles/art_nfsm_10.htm
+http://www.geocities.com/henry_diamond/russian.htm
+http://www.geocities.com/hiromimw/NYtea.html
+http://www.geocities.com/hislantern/PhysicianLooks.htm
+http://www.geocities.com/historymech/3polarization.html
+http://www.geocities.com/hmelberg/papers/001027.htm
+http://www.geocities.com/hmelberg/papers/970818.htm
+http://www.geocities.com/howtodressemo/
+http://www.geocities.com/iamthekey_2000/jackvanimpe.html
+http://www.geocities.com/icmmclubs/ICMMClubs.htm
+http://www.geocities.com/jeangrey1021/images.html
+http://www.geocities.com/jingram05/Plant2.htm
+http://www.geocities.com/jkeeler415/rest_event_main.html
+http://www.geocities.com/juventusfootball/extra/extra.htm
+http://www.geocities.com/koalakid_1999/UNIVERSITY/vertical.html
+http://www.geocities.com/meagsdream/MeagsDream.html
+http://www.geocities.com/metisnation/culturedog.html
+http://www.geocities.com/mirrorplanets/
+http://www.geocities.com/missionalia/links.htm
+http://www.geocities.com/mizzenwood/shop6.htm
+http://www.geocities.com/mjsayers/owtext.html
+http://www.geocities.com/mknemesis/homerun.html
+http://www.geocities.com/mollyjoyful/marriage.html
+http://www.geocities.com/mr-ostomy/XFilesonostomates.htm
+http://www.geocities.com/mrbeaverfalls/season3.html
+http://www.geocities.com/mukmirai/newssummery3.html
+http://www.geocities.com/munichseptember1972/bloodmoney.htm
+http://www.geocities.com/nigat_uk/BAAT20.html
+http://www.geocities.com/nodotus/hbglass.html
+http://www.geocities.com/noelcox/Diana.htm
+http://www.geocities.com/nzclimbing/guides/farmpark.html
+http://www.geocities.com/ojochan/Namie/style.html
+http://www.geocities.com/onelibrarian.geo/
+http://www.geocities.com/operationshekhinah/one.html
+http://www.geocities.com/ottopallone/tmovies/tomorrow.html
+http://www.geocities.com/p_nut84/lyrics/aliceinchains.html
+http://www.geocities.com/pharsea/RightsOfWrong.html
+http://www.geocities.com/pmj6/
+http://www.geocities.com/presidentialspeeches/1972.htm
+http://www.geocities.com/princeofpeace_07508/Therese.html
+http://www.geocities.com/pythoninsanity/Season3Episode9.html
+http://www.geocities.com/r_deruvo/
+http://www.geocities.com/roboplanes/cessna.html
+http://www.geocities.com/sandychan87/vacation.html
+http://www.geocities.com/sarahmcraig/fam_friends.html
+http://www.geocities.com/saudhouse_p/blood,.htm
+http://www.geocities.com/script_maker33/atwt/scripts01/pr-5-16-02.html
+http://www.geocities.com/sdontrelle/kidsplash/gameshowworld/misc.htm
+http://www.geocities.com/sentryusa2000/reinventtreason.htm
+http://www.geocities.com/sheenaghpugh/folkmusic.html
+http://www.geocities.com/sixtyfourth_ovi/fies_sultana.html
+http://www.geocities.com/smvgrey/signs.html
+http://www.geocities.com/socialistparty/socview/svspring01H.htm
+http://www.geocities.com/sscwon/t21mill.html
+http://www.geocities.com/starheavens_2000/timeline.htm
+http://www.geocities.com/stevestravelguides/ljubljana.htm
+http://www.geocities.com/stgregorysabbey/vocation.html
+http://www.geocities.com/stlaasr/msa1937.html
+http://www.geocities.com/tangawarra/paulwri4.html
+http://www.geocities.com/televisioncity/set/8681/ltlinks.html
+http://www.geocities.com/the_right_turn2003/conservativecorner.html
+http://www.geocities.com/the_wanderling/meeting.html
+http://www.geocities.com/thekickinggame/FGandPAT.htm
+http://www.geocities.com/thenietzschechannel/bgept1.htm
+http://www.geocities.com/vamosness/bruce.htm
+http://www.geocities.com/waddly/york.html
+http://www.geocities.com/willboyne/nosurrender/PotatCom.html
+http://www.geocities.com/willboyne/nosurrender/ws.html
+http://www.geocities.com/wilsontctc/Step_6_How_signplanethouse_meanings_interact.htm
+http://www.geocities.com/xpatriot_1999/One/SJCnorth.html
+http://www.geocities.com/ycgf/arti_TBX.htm
+http://www.geocities.com/yes125/
+http://www.geocities.com/zen_appeal/tipofthemonth.html
+http://www.geocities.com/~abdulwahid/muslimarticles/khutbah.html
+http://www.geocities.com/~bblair/france_twp.htm
+http://www.geocities.com/~bblair/reflections_twp.htm
+http://www.geocities.com/~chronopublish/chronotrigger/
+http://www.geocities.com/~daburton/barnwell/highl.html
+http://www.geocities.com/~johngray/wcon103.htm
+http://www.geocities.com/~pack215/webelos-cere.html
+http://www.geocities.com/~pamsway/karipray.html
+http://www.geocities.jp/cosmos_akino/english/sentence4.html
+http://www.geoffhook.com/archive/2000/
+http://www.geoffrey.com.au/interview_nk.htm
+http://www.geoffrey.com.au/review.htm?ID=14
+http://www.geog.gla.ac.uk:443/staff/hlorimer
+http://www.geog.port.ac.uk/hist-bound/country_rep/poland.htm
+http://www.geog.ubc.ca/graduate/getready.html
+http://www.geog.ucsb.edu/more/history_articles/history_saga_chapter10.htm
+http://www.geog.ucsb.edu/~jeff/115a/lectures/camera_systems.html
+http://www.geog.ucsb.edu/~jeff/sb_69oilspill/69oilspill_articles2.html
+http://www.geography.btinternet.co.uk/reviews4.htm
+http://www.geography.org.uk/theme/theme_archive.asp
+http://www.geography.wisc.edu/classes/geog360/ExamTwoAnswer.htm
+http://www.geographyfieldwork.com/VisitorsBookRead.htm
+http://www.geographypages.co.uk/ictkey4.htm
+http://www.geographypages.co.uk/issue45.htm
+http://www.geomancy.org/secular_space/secular.html
+http://www.geonet.org.nz/mmi.html
+http://www.geonsoul.com/journal/archives/2001_04.htm
+http://www.george-orwell.org/The_Road_to_Wigan_Pier/4.html
+http://www.george.net.au/
+http://www.george.site.btinternet.co.uk/lightyear/lightyearcontd5.html
+http://www.georgedillon.com/theatre/graft_programme_note.shtml
+http://www.georgedillon.com/theatre/the_gospel_of_matthew_programme.shtml
+http://www.georgeformby.co.uk/ladies/gregory/biog.htm
+http://www.georgegoldsmith.com/info/terms.html
+http://www.georgesmay.com/html/our_clients/clients/dewitt.cfm
+http://www.georgetown.edu/bassr/garden.html
+http://www.georgetown.edu/centers/woodstock/business_ethics/hc-news1.htm
+http://www.georgetown.edu/crossroads/AmericanStudiesAssn/newsletter/archive/articles/pokrovsky.html
+http://www.georgetown.edu/crossroads/AmericanStudiesAssn/newsletter/archive/newsarchive/iwtaskforce.html
+http://www.georgetown.edu/crossroads/guide/engines.html
+http://www.georgetown.edu/faculty/ap85/papers/
+http://www.georgetown.edu/faculty/ap85/papers/MaternalLoveandAbortion.html
+http://www.georgetown.edu/faculty/millwarj/
+http://www.georgetown.edu/honor/plagiarism.html
+http://www.georgetown.edu/labyrinth/conf/cs95/papers/moran.html
+http://www.georgetown.edu/research/scdp/News.htm
+http://www.georgetown.edu/sfs/programs/clas/profs/rking/rkcv.htm
+http://www.georgetown.edu/tamlit/teaching/getz.html
+http://www.georgianc.on.ca/hr/proced/sect2/pro2_102.htm
+http://www.georgianc.on.ca/hr/proced/sect5/pro5_105.htm
+http://www.georgiarugbyunion.org/
+http://www.georgiarugbyunion.org/index.php?menu=01
+http://www.georgiascienceteacher.org/
+http://www.geosociety.org/news/pr/01-03.htm
+http://www.geosociety.org/pubs/gsatoday/gsat0006.htm
+http://www.geospectra.net/kite/equip/equip.htm
+http://www.geotimes.org/july00/scene.html
+http://www.gerardkeegan.co.uk/glossary/gloss_c.htm
+http://www.gerardtruffle.com/gerard.htm
+http://www.gerber.com/phase/devcontent?phase=9
+http://www.geriatricsyllabus.com/syllabus/main.jsp?cid=SGS-VIS-4-2
+http://www.german-claims.com/articlelj2.htm
+http://www.german-way.com/german/gwlistarch04.html
+http://www.germanbritishchamber.co.uk/en/links.php
+http://www.germanculture.com.ua/library/weekly/aa022801a.htm
+http://www.germanculture.com.ua/recipes/blbak11.htm
+http://www.germanembassy-singapore.org.sg/en/willkommen/visa/visa_non_sing.html
+http://www.germanfoods.org/consumer/germancomfortfoods.cfm
+http://www.germanlawjournal.com/article.php?id=550
+http://www.germanmart.com/mainstore/content/products/mats-jonasson.asp
+http://www.germantown.k12.il.us/indians/woodland2.html
+http://www.germanunited.com/en/programs/tvmovies/tvmovies08.html
+http://www.germany-tourism.co.uk/pages/camping.html
+http://www.germany-tourism.de/e/business_travel.html
+http://www.germany-tourism.de/e/culinary_route_north_rhine_westphalia.html
+http://www.gerrold.com/
+http://www.gerrymkaye.org/marriage.html
+http://www.gertzfile.com/gertzfile/ring031601.html
+http://www.gesource.ac.uk/hazards/Tornadoes-photography.html
+http://www.gesource.ac.uk/roads/cgi-bin/browsesql.pl?limit=0&subject=363.8&toplevel=environment
+http://www.getamped.co.uk/forum/index.php?showtopic=87
+http://www.getannoyed.com/general.htm
+http://www.getconnected.com/about/legal.asp?tag=f15
+http://www.getcreativeshow.com/seminars/seashells.htm
+http://www.getech.co.uk/security/about_the_getech_intrusion_detection_and_intrusion_prevention_systems_product_portfolio.htm
+http://www.geteducated.com/vug/oct01/vug1001e.htm
+http://www.getforme.com/accommodation_news.htm
+http://www.getintomedschool.com/recommendations.html
+http://www.getlive.co.uk/grandopera/?wid=32&rid=449
+http://www.getorganizednow.com/aboutus.html
+http://www.getorganizednow.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=2;t=002414
+http://www.getorganizednow.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=2;t=002533
+http://www.getorganizednow.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=2;t=002557
+http://www.getorganizednow.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=3;t=002924
+http://www.getorganizednow.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=3;t=002945
+http://www.getorganizednow.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=4;t=000486
+http://www.getorganizednow.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=7;t=001778
+http://www.getorganizednow.com/newbook.html
+http://www.getreading.co.uk/pfriendly.asp?intid=12188
+http://www.getreading.co.uk/story.asp?intid=12188
+http://www.getresponse.com/features.html
+http://www.getrolling.com/fit/resistance.html
+http://www.gettingconnected.org.uk/GCunits.htm
+http://www.gettingthemsober.com/cgi-shl/recwebbbs.pl?noframes;read=8693
+http://www.gettysburg.edu/it/compserv/student/joboppor.htm
+http://www.gettysburgtourguides.org/Dispatch/klingle.html
+http://www.geuatmsu.org/modules.php?name=Forums&file=viewtopic&t=40
+http://www.geuatmsu.org/modules.php?name=Forums&file=viewtopic&t=48&view=previous
+http://www.geus.dk/departments/quaternary-marine-geol/posters/littoral98-uk.htm
+http://www.gf.com.au/articles_269.htm
+http://www.gf.state.az.us/h_f/hunting_units_33.shtml
+http://www.gf9.com/
+http://www.gfamissions.org/saying.html
+http://www.gfk-macon.com/gfk_macon_news/0105_field%20service%20activity%20planning.htm
+http://www.gfkms.com/marketnews/newsarchiv.php/zeige=details&id=2379
+http://www.gfxartist.com/community/forum/68612
+http://www.gg.gov.au/speeches/textonly/speeches/2003/031113.html
+http://www.ggaengrs.com/projEdhigher.html
+http://www.gghc.org/about.cfm
+http://www.gguitars.com/electro.html
+http://www.gha.org/ContentMgr/presentdoc.asp?F=8183
+http://www.ghazi.de/society.html
+http://www.ghbkills.com/memorials.htm
+http://www.ghfordtea.com/history.htm
+http://www.ghi.com/members/understand/m_und_utilization.html
+http://www.ghostroadpress.com/
+http://www.ghosts.org/hellhouse2005.html
+http://www.ghostweb.com/ouija.html
+http://www.ghostwriters.org/poetry.htm
+http://www.gia.edu/newsroom/issue/2798/1362/insider_newsletter_details.cfm
+http://www.giac.org/certifications/security/
+http://www.giac.org/certified/certmatters/steven_drew.php
+http://www.gibbonslaw.com/publications/articlesuser2.cfm?pubid=965
+http://www.gibsondunn.com/practices/publications/detail/id/766/?pubItemId=7610
+http://www.gicare.com/pated/edtgs12.htm
+http://www.gicentre.com/en/hk_4.htm
+http://www.giconsultants.com/patiented.asp?ID=5
+http://www.giconsultants.com/patiented.asp?ID=9
+http://www.gidesigns.net/clearance.html
+http://www.gieson.com/school/flash/ActionScript/04_dotSyntax.html
+http://www.giftsforprofessionals.com/92545335-1179.html
+http://www.giftsforprofessionals.com/92545335-ag-08.html
+http://www.giftsforprofessionals.com/92599910-5707.html
+http://www.gigalaw.com/articles/2000-all/gall-2000-07-all.html
+http://www.gigalaw.com/articles/2000-all/kubiszyn-2000-05b-all.html
+http://www.gigalaw.com/articles/2000-all/smith-2000-06-all.html
+http://www.gigalaw.com/articles/2001-all/gall-2001-03-all.html
+http://www.gigalaw.com/articles/2004-all/ip-2004-03-p2.html
+http://www.giganews.com/useful_links.html
+http://www.gigaom.com/broadbandits/
+http://www.gigglepotz.com/sales.htm
+http://www.gignews.com/bizgamesites.htm
+http://www.gignews.com/careerfeatures/gamewriter.htm
+http://www.gignews.com/careerfeatures/hiringmanager.htm
+http://www.gigwise.com/contents.asp?contentid=3119
+http://www.gigwise.com/post.asp?TOPIC_ID=35262&method=TopicQuote
+http://www.gihyo.co.jp/magazine/SD/pacific/SD_0504.html
+http://www.gilad.co.uk/html%20files/blood.html
+http://www.gilead.com/wt/sec/pr_1067371563
+http://www.gilest.org/36.php3
+http://www.gilkatho.com.au/faqs/ViewItem.asp?ID=119
+http://www.gilli.net/gillimoon/articleartofproduction.htm
+http://www.gillingham-in-dorset.com/games.html
+http://www.gils.net/technical.html
+http://www.gimp.org/
+http://www.gimp.org/tutorials/Red_Eye_Removal/
+http://www.gingerbread.org.uk/wg20001.html
+http://www.gingergeezer.net/stinkfootstory.html
+http://www.gingerjive.co.uk/workshops.asp
+http://www.gingko.ch/cdrom/Haruki_20Murakami.asp
+http://www.ginini.com.au/tools/postcard-direct/
+http://www.ginini.com/software/postcard-direct/
+http://www.ginsengseed.com/brochure.html
+http://www.ginuwine.com/bio.html
+http://www.gio.gov.tw/taiwan-website/5-gp/join_who/2002/who_11.htm
+http://www.gippsland.org/WestSaleMigrant/Pages/times-article.html
+http://www.gipri.ch/spip/gipri_art78.html
+http://www.girl-mom.com/node/125
+http://www.girl-mom.com/node/view/107
+http://www.girlboards.com/ordersecure.htm
+http://www.girldatingtips.com/directory/Ethnic_Dating/
+http://www.girlfriendsmag.com/cover.html
+http://www.girlfromauntie.com/journal/index.php/2005/further-ruminations-on-ease/
+http://www.girlguides.ca/default.asp?id=103
+http://www.girlguides.org.nz/sp-events.asp
+http://www.girlguiding.org.uk/xq/asp/sID.183/aID.1119/qx/new/international/article.asp
+http://www.girlhoodhomecompanion.com/Peoria.htm
+http://www.girlontheright.com/
+http://www.girlpowernow.com/nutrition.html
+http://www.girlsarepretty.com/
+http://www.girlscouts-lonestar.org/volunteer/adult-training_leader.html
+http://www.girlscouts-lonestar.org/volunteer/adult-training_register.html
+http://www.girlscouts.net/f04_gadt.html
+http://www.girlscouts.org/for_adults/leader_magazine/2004_winter/third_culture_kids.asp
+http://www.girlscouts.org/program/gs_central/insignia/online/safety/11_17_safety_award.asp
+http://www.girlscouts.org/program/gs_central/leading_advising_faqs/default.asp
+http://www.girlscouts.org/who_we_are/history/low_biography/
+http://www.girlscoutsclc.org/internal.asp?name=Site&catID=4350&parentID=2374
+http://www.girlslife.com/dec04/youwroteit.php
+http://www.girlsontherun.org/why.htm
+http://www.girlsstuff.co.uk/terms.asp
+http://www.girr.org/girr/tips/tips4/tractive_effort_tests.html
+http://www.girton.cam.ac.uk/about/accommodation/livingout.html
+http://www.gis.net/~acentrik/AAUentryNov13.html
+http://www.gisajob.com/Information_Technology_jobs.html
+http://www.gisajob.com/jobs.cgi?j=3135707&m=more
+http://www.gisdevelopment.net/downloads/toolutil/
+http://www.gisdevelopment.net/magazine/years/2004/aug/jodhpur_project2.htm
+http://www.gismonitor.com/news/newsletter/archive/101002.php
+http://www.givemeliberty.org/
+http://www.givemeliberty.org/default.htm
+http://www.giveneyestosee.com/journal/2003_04_13_archive.html
+http://www.giving.umich.edu/leadersbest/fall2004/giftnews.htm
+http://www.giving.umn.edu/facts/glossary/
+http://www.giving.utoronto.ca/
+http://www.giving.utoronto.ca/osotf/student_ahmed.html
+http://www.givingforum.org/giving/planning/info-u3.htm
+http://www.givingnetwork.org/GNE_npsurvey.html
+http://www.givingtowestern.uwo.ca/ambassador/mahy.htm
+http://www.gizmag.com/goodthinking/
+http://www.gizmo.com.au/go/3503/
+http://www.gizmotron.org/mtml/mtxpl.html
+http://www.gjcc.org/news.htm
+http://www.gla.ac.uk/centres/disabilityresearch/projects.htm
+http://www.gla.ac.uk/departments/sociology/units/media/effects.htm
+http://www.gla.ac.uk/publications/leadingedge/4/diet.html
+http://www.gla.ac.uk:443/avenue/story.cfm?id=118&category=feature
+http://www.glaad.org/publications/resource_doc_detail.php?id=3771
+http://www.gladstoneparkchefs.co.uk/job_pages/chef_de_partie_jobs.htm
+http://www.gladwell.com/1998/1998_08_17_a_harris.htm
+http://www.gladwell.com/2002/2002_04_29_a_blowingup.htm
+http://www.gladwell.com/2002/2002_07_22_a_talent.htm
+http://www.gladwell.com/2002/2002_08_05_a_face.htm
+http://www.gladwell.com/2002/2002_08_12_a_heat.htm
+http://www.gladwell.com/2004/2004_12_13_a_picture.html
+http://www.gladwell.com/blink/
+http://www.gladwell.com/blink/blink_excerpt3.html
+http://www.glafreniere.com/sa_evolution.htm
+http://www.glafreniere.com/sa_scanner.htm
+http://www.glam.ac.uk/courses/detail2.php?id=1926&sfrom=easy&dosommat=stri
+http://www.glamorganantiques.co.uk/royalty.htm
+http://www.glasfit.co.za/scripts/products/res_glass_glossary.asp
+http://www.glasgow.gov.uk/en/AboutGlasgow/History/Cultural+Renaissance.htm
+http://www.glasgow.gov.uk/en/Residents/Environment/FloodPrevention/riverclydefloodprevention.htm
+http://www.glasgow.k12.ky.us/elem/sge/pages/martin%20luther.htm
+http://www.glasgowguide.co.uk/info-fame1.html
+http://www.glasgowsculpture.com/
+http://www.glass-pipes-water-bongs.com/
+http://www.glass.co.nz/johnwalshwalsh.htm
+http://www.glass.co.nz/tarsitano.html
+http://www.glass.org/indres/info.htm
+http://www.glassandpowder.com/
+http://www.glassandpowder.com/index.php?cPath=26_37_78_219
+http://www.glassandpowder.com/product_info.php?cPath=21_22_48&products_id=64
+http://www.glassandpowder.com/product_info.php?cPath=21_22_48&products_id=65
+http://www.glassandpowder.com/product_info.php?cPath=26_37_78_221&products_id=1303
+http://www.glassandpowder.com/product_info.php?products_id=67
+http://www.glassart.biz/Corp/Help-FAQ.asp
+http://www.glassartcanada.ca/glasswire/comings_8.html
+http://www.glassartists.org/Lnk52_Stained_Glass.asp
+http://www.glassartists.org/RichardCarterRick
+http://www.glassartmagazine.com/Art-Glass-Article-6.asp
+http://www.glassclub.org/events.htm
+http://www.glasscolor.com/community/conference_call_1.aspx
+http://www.glasscolor.com/community/conference_call_2.aspx
+http://www.glasscolor.com/community/conference_call_4.aspx
+http://www.glassdog.com/
+http://www.glassdog.com/archives/2004/08/25/whats_wrong_with_feed_readers.html
+http://www.glasseyeweb.com/contract.html
+http://www.glassgardenbeads.com/Classes/class.html
+http://www.glasshalfempty.co.uk/
+http://www.glasssmith.ca/product/catproddetails.cfm?id=26
+http://www.glastara.com/History.htm
+http://www.glastonbury.gov.uk/g_gov/mod.php?mod=userpage&menu=5302&page_id=21
+http://www.glc.k12.ga.us/BuilderV03/LPTools/LPShared/lpdisplay.asp?LPID=15168
+http://www.glcom.com/hassan/kanga_history.html
+http://www.glcq.com/
+http://www.glcq.com/bush_at_arpc1.htm
+http://www.gleim.com/accounting/ea/takingexam.php
+http://www.glen-carbon.il.us/Services/Winter.htm
+http://www.glen-ellyn.com/
+http://www.glen-ellyn.com/gov/
+http://www.glen-ellyn.com/newcomers/
+http://www.glenalmondcollege.co.uk/pages-news/news_lectures-visitors-and-societies.htm
+http://www.glenbow.org/collections/search/findingAids/archhtm/franklin.cfm
+http://www.glenbrook.k12.il.us/gbssci/phys/Class/waves/u10l4a.html
+http://www.glenbrook.k12.il.us/gbssci/phys/visitor/about.html
+http://www.glencoe.com/sec/teachingtoday/educationupclose.phtml/11
+http://www.glendalearenaaz.com/guest_services/az_guide.php
+http://www.glendon.yorku.ca/counselling/studygroups.html
+http://www.glendon.yorku.ca/hispanicstudies/students.htm
+http://www.glenndaily.com/fiduciaries.htm
+http://www.glennmiller.org/scholar.htm
+http://www.glenoaklumber.com/noflash/policies.html
+http://www.glenoaks.cc.mi.us/degrees/AASB-P.html
+http://www.glenwalk.com/stories/wales.html
+http://www.glesga.ukpals.com/GlescaSong2.htm
+http://www.glfc.cfs.nrcan.gc.ca/science/research/fire_e.html
+http://www.glfc.cfs.nrcan.gc.ca/treedisease/index_e.html
+http://www.glidecam.com/article-wedding-event-videography.php
+http://www.glidingmagazine.com/ListFeatureArticleDtl.asp?id=455
+http://www.glinx.com/~djbishop/dogs.htm
+http://www.glitterberries.com/fanfic/richardlobinske/F8_WE.htm
+http://www.global-defence.com/1997/AirbourneRecon.html
+http://www.global-electrolysis-supply.com/
+http://www.global-garden.com.au/gardenbegin_care2.htm
+http://www.global-leader.org/gl_research.htm
+http://www.global-meeting.co.uk/acw.asp
+http://www.global-vision.org/dream/dreamch2.html
+http://www.globalagendamagazine.com/2005/billrichardson.asp
+http://www.globalagendamagazine.com/2005/jamesderderian.asp
+http://www.globalagendamagazine.com/2005/richardcooper.asp
+http://www.globalagendamagazine.com/2005/robertmalley.asp
+http://www.globalaging.org/waa2/articles/abuseolder.htm
+http://www.globalarbitrationmediation.com/india_arbitration_act.shtml
+http://www.globalchallenge2004.com/en/feature.asp?chco_id=11503
+http://www.globalchange.com/drugs/TAD-Chapter%206.htm
+http://www.globalchange.com/drugs/TAD-Chapter%207.htm
+http://www.globalchange.com/ppt2/Saks15/
+http://www.globalchange.com/radiation.htm
+http://www.globalchange.com/rfids.htm
+http://www.globalchange.umich.edu/globalchange2/current/lectures/pop_socio/pop_socio.html
+http://www.globalclassroom.org/jarrell.html
+http://www.globalclassroom.org/trouble.html
+http://www.globalcomment.com/current_affairs/article_38.asp
+http://www.globalcommunity.org/timeline/80/index.shtml
+http://www.globaleconomicsgame.com/TheEuro.htm
+http://www.globaled.org/chinaproject/teachingmaterials/seminar/8a1.php
+http://www.globaled.org/curriculum/site.html
+http://www.globaleducation.edna.edu.au/archives/secondary/casestud/vietnam/1/hiv-aids.html
+http://www.globalenvision.org/index.php?fuseaction=library.print&printerfriendly=1&category=12&itemid=308
+http://www.globalenvision.org/library/11/474/
+http://www.globalenvision.org/library/12/308/
+http://www.globaleventspartners.com/customer.cfm
+http://www.globalexchange.org/campaigns/alternatives/debtCrisis.html
+http://www.globalexchange.org/campaigns/cafta/actions.html
+http://www.globalexchange.org/campaigns/fairtrade/coffee/442.html
+http://www.globalexchange.org/campaigns/sweatshops/
+http://www.globalexchange.org/campaigns/wto/2877.html
+http://www.globalexchange.org/campaigns/wto/prisons.html
+http://www.globalexchange.org/countries/mideast/iraq/2182.html
+http://www.globalexchange.org/wbimf/facts.html
+http://www.globalfundforwomen.org/work/trafficking/garden-of-evil.html
+http://www.globalgraphics.com/news/ggpress.nsf/PressReleasesPublishedCurrent/A476B41ECC21B50C80256CC400517A52
+http://www.globalgreen.org/programs/building.html
+http://www.globalguardians.com/npcs/npcsab/bloodredking.php
+http://www.globalhealth.gov/
+http://www.globalhealth.org/news/search.php3?category=general&offset=1870
+http://www.globalhouseplans.com/colonial_floor_plans.htm
+http://www.globalien.com/aupair.htm
+http://www.globalissues.org/EnvIssues/GEFood/PublicReaction.asp
+http://www.globalissues.org/EnvIssues/GlobalWarming/Hague.asp
+http://www.globalissues.org/EnvIssues/Population/Numbers.asp
+http://www.globalissues.org/Geopolitics/ArmsTrade/CodeOfConduct.asp
+http://www.globalissues.org/Geopolitics/WarOnTerror/FearProfits.asp?p=1
+http://www.globalissues.org/Geopolitics/WarOnTerror/FullList.asp
+http://www.globalissues.org/Geopolitics/WarOnTerror/PropAgenda.asp
+http://www.globalissues.org/HumanRights/Media/Corporations/Owners.asp
+http://www.globalissues.org/HumanRights/Racism.asp
+http://www.globalissues.org/TradeRelated/
+http://www.globalissues.org/TradeRelated/Corporations/Evasion.asp
+http://www.globalissues.org/TradeRelated/Debt/USAid.asp
+http://www.globalissues.org/TradeRelated/Development/PovertyEnv.asp
+http://www.globalissues.org/TradeRelated/FreeTrade/Regional.asp
+http://www.globalissues.org/TradeRelated/Seattle.asp
+http://www.globalissues.org/about.asp
+http://www.globalization101.org/news.asp?NEWS_ID=46
+http://www.globaljusticeecology.org/index.php?set_table=content&articleID=284&page=news
+http://www.globalmeditations.com/kathkeith.htm
+http://www.globalpapermoney.org/tappipm/issues/2004-05-18/22.html
+http://www.globalpolicy.org/empire/analysis/2004/02thinkagain.htm
+http://www.globalpolicy.org/empire/humanint/2004/01nothuman.htm
+http://www.globalpolicy.org/empire/terrorwar/liberties/2005/0612statsterror.htm
+http://www.globalpolicy.org/globaliz/cultural/2003/0812mtv.htm
+http://www.globalpolicy.org/globaliz/politics/prague.htm
+http://www.globalpolicy.org/nations/citizen/2002/0610.htm
+http://www.globalpolicy.org/nations/sovereign/failed/2004/0121feeding.htm
+http://www.globalpolicy.org/ngos/role/index1.htm
+http://www.globalpolicy.org/security/issues/0331resist.htm
+http://www.globalpolicy.org/security/issues/diamond/chowd.htm
+http://www.globalpolicy.org/security/issues/ethiopia/2003/0408hea.htm
+http://www.globalpolicy.org/security/issues/iraq/attack/law/2003/0321illegal.htm
+http://www.globalpolicy.org/security/issues/iraq/occupindex.htm
+http://www.globalpolicy.org/security/issues/kosovo1/2001/0531mac.htm
+http://www.globalpolicy.org/security/natres/oilindex.htm
+http://www.globalpolicy.org/security/oil/2005/0421blood.htm
+http://www.globalpolicy.org/security/sanction/iraq1/2004/01sanctionsworth.htm
+http://www.globalpolicy.org/socecon/bwi-wto/wbank/2003/0925dubairesults.htm
+http://www.globalpolicy.org/socecon/bwi-wto/wbank/2004/0922developmentgateway.htm
+http://www.globalpolicy.org/socecon/develop/2003/0701famine.htm
+http://www.globalpolicy.org/wtc/analysis/2004/0726questions.htm
+http://www.globalpov.com/october/expertpov_forno.htm
+http://www.globalprblogweek.com/archives/pr_is_dead.php
+http://www.globalpsychics.com/lp/Insights/seventeen.htm
+http://www.globalpsychics.com/lp/Tips/colors.htm
+http://www.globalpublicmedia.com/products/167
+http://www.globalrelocate.com/articles/canada/nontradca.htm
+http://www.globalresearch.ca/articles/HAR411A.html
+http://www.globalresearchbusiness.com/paperdis.php?pid=3641
+http://www.globalroadsafety.org/
+http://www.globalsecurity.org/eye/lessons.htm
+http://www.globalsecurity.org/intell/library/congress/1998_hr/alibek.htm
+http://www.globalsecurity.org/intell/library/congress/2004_rpt/iraq-wmd-intell_chapter2-b.htm
+http://www.globalsecurity.org/intell/systems/gbcs.htm
+http://www.globalsecurity.org/military/
+http://www.globalsecurity.org/military/agency/army/arcent-ku.htm
+http://www.globalsecurity.org/military/agency/army/arng-tn.htm
+http://www.globalsecurity.org/military/agency/army/usar-history.htm
+http://www.globalsecurity.org/military/facility/crane.htm
+http://www.globalsecurity.org/military/facility/fairchild.htm
+http://www.globalsecurity.org/military/facility/incirlik.htm
+http://www.globalsecurity.org/military/facility/keflavik.htm
+http://www.globalsecurity.org/military/facility/north-island.htm
+http://www.globalsecurity.org/military/facility/pearl_harbor.htm
+http://www.globalsecurity.org/military/facility/silverbell.htm
+http://www.globalsecurity.org/military/facility/southwest.htm
+http://www.globalsecurity.org/military/library/congress/2000_hr/00-06-21waldron.htm
+http://www.globalsecurity.org/military/library/policy/army/fm/55-20/ch4.htm
+http://www.globalsecurity.org/military/library/report/1991/BWJ.htm
+http://www.globalsecurity.org/military/library/report/1992/BCD.htm
+http://www.globalsecurity.org/military/library/report/1995/AMA.htm
+http://www.globalsecurity.org/military/library/report/1996/9607spd2.html
+http://www.globalsecurity.org/military/library/report/2004/onpoint/ack.htm
+http://www.globalsecurity.org/military/ops/desert_thunder.htm
+http://www.globalsecurity.org/military/ops/enduring-freedom.htm
+http://www.globalsecurity.org/military/ops/iraq_hotdocs.htm
+http://www.globalsecurity.org/military/ops/iraq_orbat.htm
+http://www.globalsecurity.org/military/ops/korea-timeline.htm
+http://www.globalsecurity.org/military/ops/oplan-5027-3.htm
+http://www.globalsecurity.org/military/ops/world_war_2.htm
+http://www.globalsecurity.org/military/systems/aircraft/ah-64-fms.htm
+http://www.globalsecurity.org/military/systems/ground/m107.htm
+http://www.globalsecurity.org/military/systems/ship/cruiser-intro.htm
+http://www.globalsecurity.org/military/systems/ship/cvn-68.htm
+http://www.globalsecurity.org/military/systems/ship/tah-19.htm
+http://www.globalsecurity.org/military/world/iraq/fallujah.htm
+http://www.globalsecurity.org/military/world/para/aceh.htm
+http://www.globalsecurity.org/military/world/para/jaysh-muhammad.htm
+http://www.globalsecurity.org/military/world/ukraine/economy.htm
+http://www.globalsecurity.org/org/news/2005/050522-fort-monmouth.htm
+http://www.globalsecurity.org/security/library/congress/9-11_commission/031119-orszag.htm
+http://www.globalsecurity.org/security/library/report/2004/hsc-planning-scenarios-jul04_09.htm
+http://www.globalsecurity.org/space/agency/afspc.htm
+http://www.globalsecurity.org/space/library/congress/1996_h/h960530c.htm
+http://www.globalsecurity.org/space/library/news/2003/urltrurl-4.htm
+http://www.globalsecurity.org/wmd/library/news/iraq/2004/01/01-28_index.htm
+http://www.globalsecurity.org/wmd/library/news/iraq/2004/10/10-21_index.htm
+http://www.globalsecurity.org/wmd/library/policy/army/fm/3-19/ch82.htm
+http://www.globalshareware.com/Desktop-Enhancements/Screensavers/Michael-Manley-s-Magic-Milk-Machine-Screen-Saver.htm
+http://www.globalsources.com/si/6008814575489/wscase.co
+http://www.globalspec.com/FeaturedProducts/SearchResults?criteria=Magnets&frmtrk=ofInterest
+http://www.globalstoresgroup.com/
+http://www.globalstudies.org.uk/index.php?id=1,28,0,0,1,0
+http://www.globalvolunteers.org/1main/hungary/hungaryfaq.htm
+http://www.globalvolunteers.org/1main/italy/italyfaq.htm
+http://www.globalvolunteers.org/1main/mexico/mexicohistory.htm
+http://www.globalvolunteers.org/1main/tax_deductibility.htm
+http://www.globalwarming.org/
+http://www.globalwarming.org/index.php
+http://www.globalwitness.org/reports/show.php/en.00049.html
+http://www.globalwoodsource.com/oneofakind.html
+http://www.globe-guardian.com/cus.htm
+http://www.globelaw.com/LawSea/lsconts.htm
+http://www.globetechnology.com/servlet/story/RTGAM.20041007.gtevalsoct7/BNStory/TechReviews/
+http://www.globetechnology.com/servlet/story/RTGAM.20050627.gtkapicajun27/BNStory/Technology/
+http://www.globosapiens.net/travel-information/Miami-555.html
+http://www.globusz.com/ebooks/Mormons/00000029.htm
+http://www.globusz.com/ebooks/Tea/00000014.htm
+http://www.glocom.org/opinions/essays/20040301_tsurumi_president/
+http://www.glocom.org/special_topics/eu_report/20040129_eureport_s69/
+http://www.gloomboomdoom.com/marketcoms/010901.htm
+http://www.gloriana.nu/cloud.html
+http://www.glorywrestling.com/News/20041111.asp
+http://www.glos.ac.uk/departments/personnel/staffdev/videos.cfm
+http://www.glos.ac.uk/subjectsandcourses/postgraduatetaught/pc/descriptors/pc403.cfm
+http://www.glos.ac.uk/subjectsandcourses/undergraduatefields/el2/descriptors/el227.cfm
+http://www.glos.ac.uk/subjectsandcourses/undergraduatefields/hm/descriptors/hm216.cfm
+http://www.glotinternational.com/geninfo.htm
+http://www.glovesoff.org/features/caffentzis_030603.html
+http://www.glscs.com/archives/06.03.opinion.htm?adcode=30
+http://www.glscs.com/archives/12.01.technology.htm?adcode=90
+http://www.glscs.com/news/11.30.04.newsletter.htm
+http://www.glscs.com/webzine/04.04.opinion_print.html
+http://www.gluckman.com/Death'Penalty.htm
+http://www.gluckman.com/Pei.htm
+http://www.glucocontrol.org/eng/lk/lk_4653.php
+http://www.glvchina.com/english/teachers/Pings1_e.php
+http://www.gly.bris.ac.uk/WWW/TerraNova/dimple/dimple.html
+http://www.gm-unccd.org/English/DOCS/report_cop2.htm
+http://www.gmabrands.com/news/docs/NewsRelease.cfm?DocID=1430
+http://www.gmabrands.com/news/docs/NewsRelease.cfm?DocID=195
+http://www.gmabrands.com/news/docs/NewsRelease.cfm?DocID=203
+http://www.gmabrands.com/news/docs/NewsRelease.cfm?DocID=203&
+http://www.gmabrands.com/news/docs/NewsRelease.cfm?DocID=882
+http://www.gmabrands.com/news/docs/NewsRelease.cfm?DocID=882&
+http://www.gmabrands.com/publicpolicy/docs/Comment.cfm?DocID=1370&
+http://www.gmailforums.com/index.php?showtopic=3572&st=60
+http://www.gmax.co.za/look/07/30-capitalletters.html
+http://www.gmbodyaware.com/about.cfm
+http://www.gmc-uk.org/standards/CONSENT.HTM
+http://www.gmc-uk.org/standards/consent.htm
+http://www.gmc-uk.org/standards/good.htm
+http://www.gmc-uk.org/standards/manage.htm
+http://www.gmcr.com/ContentPage.aspx?Name=NewsReleases&DeptName=AboutGMCR
+http://www.gmcr.com/ContentPage.aspx?Name=NewsReleases&DeptName=InvestorServices
+http://www.gmdcnd.org.uk/earlywarning/ewfebruarymarch04.htm
+http://www.gmfc.org/index.php/gmc6/content/view/full/580
+http://www.gmhc.org/health/treatment/ti/ti1702.html
+http://www.gmp.police.uk/hot_topics/index.asp
+http://www.gmptools.com/nf/warranty.htm
+http://www.gmsciencedebate.org.uk/topics/forum/0030.htm
+http://www.gmsciencedebate.org.uk/topics/forum/0101.htm
+http://www.gmsciencedebate.org.uk/topics/forum/0102.htm
+http://www.gmu.edu/academic/ijps/vol2_2/seljuq.htm
+http://www.gmu.edu/departments/economics/wew/articles/00/majorityrule.html
+http://www.gmu.edu/facstaff/legal-affairs/signature.htm
+http://www.gn.apc.org/Issues/Community/
+http://www.gn.apc.org/Issues/Cultural/orgs.html
+http://www.gnaa.us/pr.phtml?troll=gnaa-goatse
+http://www.gner.co.uk/GNER/Livewire/Features/Poison.htm
+http://www.gnld.com/store/Product.aspx?STORE_ID=1&CATEGORY_ID=1207&NAV_CATEGORY_ID=1014&PRODUCT_ID=10027
+http://www.gnn.gov.uk/Content/Detail.asp?ReleaseID=156041&NewsAreaID=2
+http://www.gnn.gov.uk/environment/detail.asp?ReleaseID=130626&NewsAreaID=2&NavigatedFromDepartment=False
+http://www.gnn.tv/articles/article.php?id=1029
+http://www.gnn.tv/articles/article.php?id=761
+http://www.gnn.tv/headlines/3344/Sunday_Times_UK_Ministers_were_told_of_need_for_Gulf_war_excuse
+http://www.gnnetcom.com.sg/reseller_toolbox.php
+http://www.gnome.org/~seth/blog/2005/Mar
+http://www.gnosis.org/library/hermes13.html
+http://www.gns.cri.nz/rafter/glossary.htm
+http://www.gns.cri.nz/what/earthact/land_stab/04landslides/
+http://www.gnu.org/brave-gnu-world/issue-13.en.html
+http://www.gnu.org/brave-gnu-world/issue-28.en.html
+http://www.gnu.org/brave-gnu-world/issue-36.en.html
+http://www.gnu.org/brave-gnu-world/issue-37.en.html
+http://www.gnu.org/brave-gnu-world/issue-38.en.html
+http://www.gnu.org/brave-gnu-world/issue-39.en.html
+http://www.gnu.org/brave-gnu-world/issue-46.en.html
+http://www.gnu.org/brave-gnu-world/issue-49.en.html
+http://www.gnu.org/brave-gnu-world/issue-58.en.html
+http://www.gnu.org/gnu/gnu-linux-faq.html
+http://www.gnu.org/gnu/linux-and-gnu.html
+http://www.gnu.org/gnu/manifesto.html
+http://www.gnu.org/gnu/thegnuproject.html
+http://www.gnu.org/licenses/gpl-faq.html
+http://www.gnu.org/philosophy/categories.html
+http://www.gnu.org/philosophy/dat.html
+http://www.gnu.org/philosophy/free-sw.html
+http://www.gnu.org/philosophy/gif.html
+http://www.gnu.org/philosophy/gpl-american-way.html
+http://www.gnu.org/philosophy/motivation.html
+http://www.gnu.org/philosophy/shouldbefree.html
+http://www.gnu.org/philosophy/why-free.html
+http://www.gnu.org/software/guile/
+http://www.gnu.org/software/guile/guile.html
+http://www.gnu.org/software/libc/manual/html_node/Streams-and-I18N.html
+http://www.gnu.org/software/make/manual/html_chapter/make_17.html
+http://www.gnu.org/software/rcs/rcs.html
+http://www.gnucash.org/
+http://www.gnxp.com/MT2/archives/001264.html
+http://www.gnxp.com/MT2/archives/002064.html
+http://www.gnxp.com/MT2/archives/cat_language.html
+http://www.go-adventuresports.com/programsforcamps.htm
+http://www.go-ahead.com/financials/annualreport2004/businessdescription/
+http://www.go-mad.org/13message.html
+http://www.go-newyorkcity.com/
+http://www.go-russia.com/guestbook.php
+http://www.go-russia.com/taffy.htm
+http://www.go-star.com/antiquing/georgia.htm
+http://www.go-star.com/antiquing/gross.htm
+http://www.go-synthetic.com/Quick_Lube/quick_lube.htm
+http://www.go-synthetic.com/save_money/save_money.htm
+http://www.go.com.mt/services/go_live/print_mms_faqs.cfm
+http://www.go2lanka.com/stories/031003.html
+http://www.go2peru.com/cajamarca_travel_guide.htm
+http://www.go2thestart.com/2004/11/
+http://www.goaidc.com/faqs.html
+http://www.goal-setting-guide.com/goal-writing.html
+http://www.goal-setting-guide.com/reaching-beyond-your-goals.html
+http://www.goal.com/
+http://www.goal.com/NewsDetail.aspx?idNews=62124&progr=4
+http://www.goal.com/forum.aspx?p=posts&f=27&t=41311
+http://www.goalline.org/Goal%20Line/CA/HSS/HSS10.html
+http://www.goanews.com/31jan99.htm
+http://www.goang.com/about/aboutang_benefits.aspx
+http://www.goanvoice.ca/2004/issue17/newslinecanada.htm
+http://www.goapply.com/tools/mortgageFAQ.cfm
+http://www.goarch.org/en/ourfaith/articles/article7064.asp
+http://www.goarch.org/en/ourfaith/articles/article8025.asp
+http://www.goarch.org/en/ourfaith/articles/article8434.asp
+http://www.goarch.org/en/resources/saints/
+http://www.goarms.com/winter2001435.html
+http://www.goarmy.com/about/for_parents/personal_growth.jsp?fl=false
+http://www.goarmy.com/life/living_the_army_values.jsp
+http://www.goarmy.com/life/living_the_army_values.jsp?fl=false
+http://www.goaskalice.columbia.edu/0716.html
+http://www.goaskalice.columbia.edu/1475.html
+http://www.goaskalice.columbia.edu/1686.html
+http://www.goaskalice.columbia.edu/2629.html
+http://www.goats.com/forums/news/1467/
+http://www.gobair.org/programs/sculling/sculling_manual.htm
+http://www.gobinder.com/note-taking.aspx
+http://www.goblincombe.org.uk/community/backwell.asp
+http://www.gobosoft.com/eiffel/gobo/structure/traversal.html
+http://www.gocampus.org/alliance/engage/engage1-7.htm
+http://www.gocampus.org/alliance/launch/launch1-5.html
+http://www.goclean.com/kitchencare.htm
+http://www.goclean.com/links.cfm
+http://www.god-dess.com/services_sensesJune03.html
+http://www.god.tv/Europe/Tunein.asp
+http://www.godandscience.org/apologetics/atheismintro.html
+http://www.godandscience.org/doctrine/plannedparenthood.html
+http://www.godcast.org/categories/rachelSChoice/
+http://www.goddardusd.com/GMS/events.html
+http://www.goddessgift.com/goddess_path/goddess_Valentine's_Day_2003.htm
+http://www.godecookery.com/mtales/mtales19.html
+http://www.godestiny.org/ministries/hell-house/kit.php
+http://www.godfire.net/theyknew4.html
+http://www.godlessgeeks.com/pol/doubt.htm
+http://www.godo.visitwales.com/21588/09.AA.html
+http://www.godonfilm.com/about.html
+http://www.godrules.net/library/flavius/flaviusb25c9.htm
+http://www.godsdirectcontact.com/gm.html
+http://www.godshew.org/GodShew.htm
+http://www.godsimmediatecontact.com/meditate_true.html
+http://www.godspy.com/issues/WHATS-LOVE-GOT-TO-DO-WITH-IT-The-Ethical-Contradictions-of-Peter-Singer-by-Dr-Peter-J-Colosi.cfm
+http://www.godspy.com/reviews/Always-Our-Neighbors-Why-the-New-Oxford-Review-Gets-the-Gospels-Wrong-by-David-Morrison.cfm
+http://www.godubai.com/citylife/ls5.asp?article_id=2001/BIK%2312
+http://www.goer.org/Journal/2002/Jul/
+http://www.goer.state.ny.us/cna/bucenter/cseahighlights.html
+http://www.goertzel.org/books/intel/chapter_four.htm
+http://www.goethe.de/kug/kue/arc/thm/en256901.htm
+http://www.goethe.de/kug/kue/flm/thm/en218553.htm
+http://www.goethe.de/kug/kue/flm/thm/en54756.htm
+http://www.goetheanstudies.org/perspectives/giovannamollo.html
+http://www.goexam.com/faq.shtml
+http://www.gofastsports.com/drink/
+http://www.gofishbc.com/maxperformance.htm
+http://www.goflow.com/ac2000.htm
+http://www.gogetlost.com/html/letters.htm
+http://www.gogomag.com/yearbooks/faq.htm
+http://www.goines.net/exchange_qtr1_01.html
+http://www.goines.net/exchange_qtr3_04.html
+http://www.going2usa.com/tourism/afterreaching.html
+http://www.goingfaster.com/angst/awakeron.htm
+http://www.goingfaster.com/angst/hdlclarence.htm
+http://www.goinglobal.com/hot_topics/uk_keener_connect.asp
+http://www.goingunderground.net/maps.html
+http://www.goingware.com/tips/marketing.html
+http://www.goingwirelessbook.com/chap_deathofcash.html
+http://www.golay.com/ve/247.htm
+http://www.gold-eagle.com/editorials_03/helfield022803.html
+http://www.gold-eagle.com/editorials_03/helfield022803pv.html
+http://www.gold-eagle.com/editorials_04/appel051004pv.html
+http://www.gold-eagle.com/editorials_04/chapmand051304pv.html
+http://www.gold-eagle.com/editorials_05/mound060705.html
+http://www.gold-eagle.com/gold_digest_99/joubert091799.html
+http://www.gold.ac.uk/connect/evaluationuk.html
+http://www.gold.org/jewellery/professional/
+http://www.gold.org/value/invest/glossary/
+http://www.gold.org/value/markets/glossary/
+http://www.gold.org/value/markets/supply_demand/mine_production.html
+http://www.gold.org/value/reserve_asset/glossary/
+http://www.gold.org/value/stats/glossary/
+http://www.goldcoast.qld.gov.au/t_gcw.asp?pid=3121
+http://www.goldcoastna.org/20questions.htm
+http://www.golden-rule.com/fi-etiquette.php
+http://www.goldenbar.com/GoldenBarReport/Goldilocks.htm
+http://www.goldenbeartour.com/main.htm
+http://www.goldenessays.com/free_essays/1/business/mis-project.shtml
+http://www.goldenhelix.com/HelixTree_MacOSX_details.html
+http://www.goldenkey.canterbury.ac.nz/aboutus.php
+http://www.goldenpaints.com/technicaldata/florclth.php
+http://www.goldensoftware.com/products/mapviewer/mapviewer.shtml
+http://www.goldenwestflyin.org/volunteers/volopportunitynew.shtml
+http://www.goldenwords.net/issues/article.php?id=3921-5
+http://www.goldlyrics.com/song_lyrics/cannibal_corpse/the_bleeding/she_was_asking_for_it/
+http://www.goldlyrics.com/song_lyrics/george_strait/carrying_your_love_with_me/carrying_your_love_with_me/
+http://www.goldlyrics.com/song_lyrics/george_strait/carrying_your_love_with_me/the_nerve/
+http://www.goldlyrics.com/song_lyrics/george_strait/latest_greatest_straitest_hits/carrying_your_love_with_me/
+http://www.goldlyrics.com/song_lyrics/u2/pop/staring_at_the_sun_lab_rat_mix/
+http://www.goldmark.org/netrants/no-word/attach.html
+http://www.goldpoints.com/en_US/site/earn/Computers.jsp
+http://www.goldpoints.com/en_US/site/earn/Games.jsp
+http://www.goldpoints.com/en_US/site/earn/Gifts.jsp
+http://www.goldpoints.com/en_US/site/earn/Health.jsp
+http://www.goldpoints.com/en_US/site/earn/Jewelry.jsp
+http://www.goldpoints.com/en_US/site/earn/Misc.jsp
+http://www.goldsmiths.ac.uk/study-options/teacher-training/PGCE-Secondary.php
+http://www.goletadepot.org/depohist.htm
+http://www.goletapublishing.com/jstamps/0502deep.htm
+http://www.golf-gear-review.com/review-display/4617.html
+http://www.golf.com/gdc/news/article.asp?id=21149
+http://www.golfclubatlas.com/hiddencreek2.html
+http://www.golfclubatlas.com/interviewmandell.html
+http://www.golfclubreview.com/
+http://www.golfcountryhomes.com/closing.htm
+http://www.golfing-scotland.com/history.asp
+http://www.golfingmobile.com/TC.asp
+http://www.golfinternationalmag.co.uk/News/010205_4.htm
+http://www.golfonline.com/golfonline/equipment/features/article/0,17742,470610,00.html
+http://www.golfonline.com/golfonline/fitness/yoga/article/0,17742,483524,00.html
+http://www.golfonline.com/golfonline/instruction/features/article/0,17742,468908,00.html
+http://www.golfonline.com/golfonline/instruction/shortgame/article/0,17742,469230,00.html
+http://www.golfscotland.com/news.asp
+http://www.golfthemidatlantic.com/story/79
+http://www.golftipsmag.com/content/pastissues/2001/jan/season.html
+http://www.golftipsmag.com/content/pastissues/2001/may/top40.html
+http://www.golftipsmag.com/content/pastissues/2002/apr/wantvsneed.html
+http://www.golftoday.co.uk/news/yeartodate/news05/leonard2.html
+http://www.golftodaymagazine.com/0301Jan/newp11.htm
+http://www.golfweb.com/story/4879735
+http://www.golfweb.com/story/6436857
+http://www.golfweb.com/story/6494889
+http://www.golfweb.com/story/6694905
+http://www.golfweb.com/story/7558553
+http://www.golfweb.com/story/7995513
+http://www.golfweb.com/story/8143678
+http://www.golfweb.com/tournaments/usopen/story/8567175
+http://www.goliathindustries.com/vb/VBNews.html
+http://www.golocaljamaica.com/readarticle.php?ArticleID=1583
+http://www.golocaljamaica.com/readarticle.php?ArticleID=2839
+http://www.gomath.com/Questions/question.php?question=17601
+http://www.gomery.ca/en/openingstatement/
+http://www.gomotorbids.com/LotDetail.cfm?Lot_ID=81130
+http://www.gon.com/deer803.html
+http://www.gon.com/dog503.html
+http://www.gon.com/legis204.html
+http://www.gon.com/lucus405.html
+http://www.gon.com/public7.html
+http://www.gon.com/varner1.html
+http://www.gon.com/wildlifeinmind.html
+http://www.gon.com/winmind.html
+http://www.gonomad.com/traveldesk/0103/javins_extendedtravel.html
+http://www.gonzaga.edu/Academics/Colleges+and+Schools/School+of+Professional+Studies/Ph.D.+-+Leadership+Studies/Syllabi+Index/DPLS+772:+Ways+of+Knowing:+Teaching+Learning+and+Leadership.htm
+http://www.goob.com/
+http://www.good-tutorials.com/author/Think-Designs
+http://www.good-win-racing.com/goodwinracing_004.htm
+http://www.goodadvicepress.com/
+http://www.goodbyemag.com/sep97/animals.html
+http://www.goodbyemag.com/sep97/inventors.html
+http://www.goodcharacter.com/GROARK/Listening.html
+http://www.goodcharacter.com/YCC/Feelings.html
+http://www.gooddogz.org/getadog/petloss.htm
+http://www.goodearthpeanuts.com/aboutpeanuts.htm
+http://www.goodearthtravel.com/FindATripAction.asp?chkSpecials=True
+http://www.goodeatsfanpage.com/Season4/Tea/TeaTranscript.htm
+http://www.goodexperience.com/blog/archives/000165.php
+http://www.goodfight.org/hwcolumbineeffect.html
+http://www.goodfridayappeal.com.au/
+http://www.goodhandarts.com/index.asp?act=g&c=6&begin=46
+http://www.goodinsurance.co.uk/term-life-insurance.html
+http://www.goodnewsbroadcast.com/syltisbeautiful.html
+http://www.goodnewsinc.net/damnnone/manistim.html
+http://www.goodnewsindia.com/index.php/Home/printTextOnly/62/
+http://www.goodnewsindia.com/index.php/Home/printWithImages/62/
+http://www.goodnewsnetwork.org/Pages/inspirational.html
+http://www.goodparentsinc.com/questionofthemonth.htm
+http://www.goodpooch.com/ISSUES/etiquette.htm
+http://www.goodquotes.com/answeringmachine.htm
+http://www.goodschools.com/chandler.htm
+http://www.goodschools.com/mike.htm
+http://www.goodschools.com/myers2.htm
+http://www.goodschools.com/reparations.htm
+http://www.goodthings.com/01_00_gl116.html
+http://www.goodusedstuff.com/search.asp?V=Q&Fp=Y&Category=Office&rs=0
+http://www.goodvibes.com/cgi-bin/sgdynamo.exe?HTNAME=magazine/erotica/2005/20050330.html
+http://www.goodvibes.com/cgi-bin/sgdynamo.exe?HTNAME=magazine/features/sex_and_culture/2003102.html
+http://www.goodvibes.com/cgi-bin/sgdynamo.exe?HTNAME=magazine/features/sex_and_culture/archive.html
+http://www.goodvibes.com/cgi-bin/sgdynamo.exe?HTNAME=magazine/our_regulars/politically_erect/199901.html
+http://www.goodvibes.com/cgi-bin/sgdynamo.exe?HTNAME=magazine/our_regulars/queen_of_hearts/20050112.html
+http://www.goodvibes.com/cgi-bin/sgdynamo.exe?HTNAME=store_news/2001_holiday.html
+http://www.google-watch.org/bigbro.html
+http://www.google.com/help/features.html
+http://www.google.com/jobs/positions-in.html
+http://www.google.com/jobs/sales.html
+http://www.google.com/jobs/search.html
+http://www.google.com/webmasters/seo.html
+http://www.googlism.com/when_is/c/chad/
+http://www.goonan.com/mars.html
+http://www.goonan.com/tirnanog.html
+http://www.gooznews.com/
+http://www.gop.com/GOPAgenda/AgendaPage.aspx?id=2
+http://www.gop.com/news/read.aspx?ID=5320
+http://www.gop.com/news/read.aspx?ID=5330
+http://www.gop.com/news/read.aspx?ID=5358
+http://www.gop.gov/Committeecentral/printversion/20050426dfb.asp
+http://www.gopaddle.com/html/on_the_water.html
+http://www.gopbloggers.org/
+http://www.gopherit.org/Helpdesk/Y2K.htm
+http://www.gophersports.com/Facilities/gibson_nagurski.asp
+http://www.gopsusports.com/pressreleases/pressrelease.cfm?anncid=7489
+http://www.gopteamleader.com/myissues/view_issue.asp?id=2667
+http://www.gopusa.com/florida/
+http://www.gor.de/work_4.htm
+http://www.gor.de/work_e_4.htm
+http://www.gordon-c-harrison.co.uk/lochewe1.htm
+http://www.gordonandgordon.com/marcomwriting.html
+http://www.gordongallery.com/archive/articles/artistsmage5-95arti.html
+http://www.gordonhorseshoes.com/nhpa_rules.html
+http://www.gordonhospital.com/InternetTopicDisplay.asp?TopicID=279
+http://www.gordonresearch.com/articles_oral_chelation/the_great_oral_edta_chelation_debate.html
+http://www.gordonsguide.com/cattle-drives/chicobasinranch/index.cfm
+http://www.gorell.com/pages/gardenwindows.htm
+http://www.gorey.com.au/personal/
+http://www.gorgerentals.com/resources.html
+http://www.gorilla-haven.org/ghdebbie.htm
+http://www.gorin.com/courses.html
+http://www.gorkhapatra.org.np/pageloader.php?file=2004/11/23//topstories/main1
+http://www.gorobotics.net/
+http://www.gorr.state.ny.us/gorr/pf_startbus.htm
+http://www.gorskys.com.au/articles/evolution-improvements.html
+http://www.gorskys.com.au/ask/need-money-before-babys-born.html
+http://www.goshen.edu/art/ed/artlsn.html
+http://www.goski.com/rswi/1arosa.htm
+http://www.gospel-music.de/Bible/Isaiah.htm
+http://www.gospel-music.de/Bible/Jeremiah.htm
+http://www.gospelcom.net/chi/DAILYF/2001/06/daily-06-12-2001.shtml
+http://www.gospelcom.net/chi/DAILYF/2001/11/daily-11-02-2001.shtml
+http://www.gospelcom.net/chi/DAILYF/2003/04/daily-04-08-2003.shtml
+http://www.gospelcom.net/chi/DAILYF/2003/05/daily-05-19-2003.shtml
+http://www.gospelcom.net/chi/DAILYF/2003/12/daily-12-06-2003.shtml
+http://www.gospelcom.net/chi/GLIMPSEF/Glimpses/glmps103.shtml
+http://www.gospelcom.net/guide/resources/church-pages.php
+http://www.gospelcom.net/guide/resources/church-template.php
+http://www.gospelcom.net/guide/resources/hobby.php
+http://www.gospelcom.net/guide/resources/jesus-communicator.php
+http://www.gospelcom.net/guide/resources/teach-it.php
+http://www.gospelcom.net/guide/resources/writing.php
+http://www.gospelcom.net/nehemiah/
+http://www.gospelcom.net/nehemiah/about.htm
+http://www.gospelcom.net/nehemiah/distinct.htm
+http://www.gospelcom.net/nehemiah/distinct2.htm
+http://www.gospelcom.net/nehemiah/kgwxchap.htm
+http://www.gospelcom.net/ocf/pubs/leading.html
+http://www.gospelcom.net/peggiesplace/words49.htm
+http://www.gospelcom.net/rbc/ds/cb922/point5.html
+http://www.gospelcom.net/rbc/ds/cb931/page7.html
+http://www.gospelcom.net/rbc/ds/q1208/point2.html
+http://www.gospelcom.net/watkins/shortsissues.htm
+http://www.gospelcom.net/wcsg/christmas/family_activities/
+http://www.gospelflava.com/articles/newmusicpreview2005.html
+http://www.gospelfortoday.org/men/firmjuly03.htm
+http://www.gospeloutreach.net/doesgodexist.html
+http://www.gospelthomas.com/gospelthomas66.html
+http://www.gospeltruth.net/1837LTPC/ltpc14_christ_husbandofchu.htm
+http://www.gospeltruth.net/1840OE/40%20lets_art/400812_parents_1.htm
+http://www.gospeltruth.net/1840OE/Let_to_parents/400812_parents_1.htm
+http://www.gospeltruth.net/1849-51Penny_Pulpit/501208pp_self_condemnation.htm
+http://www.gospeltruth.net/1851Sys_Theo/st48.htm
+http://www.gospeltruth.net/1861OE/610605_looking2jesus.htm
+http://www.gospeltruth.net/children/400812_parents_1.htm
+http://www.gosullivan.com/mamhitswords.html
+http://www.goswim.tv/pMachinePro/forum/threads.php?id=626_0_13_0_C
+http://www.gothamcomedyclub.com/PressReleases/crains.htm
+http://www.gothamgazette.com/article/20050124/200/1252
+http://www.gothamgazette.com/article/issueoftheweek/20021216/200/20
+http://www.gothamgazette.com/rebuilding_nyc/topics/groundzero/
+http://www.gothamgazette.com/searchlight2001/vallone_urban.html
+http://www.gothamist.com/archives/2003/09/19/gothamist_601am_thank_you.php
+http://www.gothamist.com/archives/2004/09/20/four_and_a_half_up_two_weeks_to_go.php
+http://www.gothamist.com/archives/2004/12/23/nicola_kraus_and_emma_mclaughlin_citizen_girl_and_the_nanny_diaries_authors.php
+http://www.gothamist.com/archives/2005/01/20/sponge_bob_pawn_in_culture_war.php
+http://www.gothamist.com/archives/2005/04/11/jessica_blank_and_erik_jensen_playwrights_the_exonerated_authors_living_justice.php
+http://www.gothamist.com/archives/2005/06/06/city_teachers_still_need_a_contract.php
+http://www.gothamist.com/archives/ask_gothamist/
+http://www.gothamist.com/archives/ask_gothamist/index.php
+http://www.gothamist.com/archives/food/
+http://www.gothamist.com/archives/interview/
+http://www.gothamist.com/forum/viewtopic.php?t=457
+http://www.gothitica.com/memory/education.html
+http://www.goto-silicon-valley.com/articles/mary-gospe/b2b-sales-part2.shtml
+http://www.gotogs.com/
+http://www.gotpoetry.com/index.php?name=Forums&file=viewtopic&p=2700
+http://www.gotthegeek.com/newspro/archive/news-archive-12-2-2004.shtml
+http://www.gottman.com/marriage/
+http://www.gotw.ca/publications/concurrency-ddj.htm
+http://www.gotwavs.com/Movies/Full_Metal_Jacket.shtml
+http://www.goucher.edu/cwpromo/cwsamples/differen.htm
+http://www.goucher.edu/it/index.cfm?view=tips
+http://www.goucher.edu/library/robin/paper.htm
+http://www.goughinfo.co.uk/how%20to%20make%20money%20horse%20racing3.htm
+http://www.gourmetfoodmall.com/
+http://www.gourmetkitchenstore.com/cgi-bin/gks/PDM101.html
+http://www.gourmetkitchenstore.com/cgi-bin/gks/PDM104.html
+http://www.gourmetkitchenstore.com/cgi-bin/gks/PDM121.html
+http://www.gourmetretailer.com/gourmetretailer/magazine/article_display.jsp?vnu_content_id=1000484138
+http://www.gourmetretailer.com/gourmetretailer/magazine/article_display.jsp?vnu_content_id=1000727598
+http://www.gourmetretailer.com/gourmetretailer/magazine/article_display.jsp?vnu_content_id=1068415
+http://www.gourmetretailer.com/gourmetretailer/reports_analysis/feature_display.jsp?vnu_content_id=1000727598
+http://www.gourmetschoice.com/terms_updated.html
+http://www.gouv.qc.ca/wps/portal/!ut/p/.cmd/cs/.ce/7_0_A/.s/7_0_10C/_th/J_3_FL/_s.7_0_A/7_0_105/_me/7_0_104-7_0_A/_s.7_0_A/7_0_10C?lang=en
+http://www.gov.bw/cgi-bin/news.cgi?d=20000922
+http://www.gov.bw/cgi-bin/news.cgi?d=20010919
+http://www.gov.chilliwack.bc.ca/main/page.cfm?id=953
+http://www.gov.im/lib/news/transport/transportpublicn75.xml
+http://www.gov.mb.ca/agriculture/climate/waa50s00.html
+http://www.gov.mb.ca/agriculture/financial/agribus/cch15s02.html
+http://www.gov.mb.ca/agriculture/organizations/wi/mwi12s01.html
+http://www.gov.mb.ca/chc/press/top/2004/08/2004-08-19-02.html
+http://www.gov.mb.ca/finance/labour/class/specs/storekeep.html
+http://www.gov.mb.ca/workandlife.html
+http://www.gov.nf.ca/releases/1997/env_n97.htm
+http://www.gov.nf.ca/releases/1997/envlab/1204n02.htm
+http://www.gov.nl.ca/mines&en/geosurvey/dimension/dimension.stm
+http://www.gov.ns.ca/
+http://www.gov.ns.ca/enla/ohs/info_R6.htm
+http://www.gov.ns.ca/enla/psafe/fsb0303.htm
+http://www.gov.ns.ca/just/regulations/rxam-z.htm
+http://www.gov.ns.ca/legi/legc/statutes/tradeun.htm
+http://www.gov.ns.ca/legislature/hansard/comm/r/re000111.htm
+http://www.gov.ns.ca/news/results.asp?deptnum=21
+http://www.gov.ns.ca/ohp/tcu/quitting.htm
+http://www.gov.ns.ca/snsmr/muns/plan/plandev/news.asp?cmd=view&articleid=419
+http://www.gov.on.ca/FIN/english/scm/peeng.htm
+http://www.gov.on.ca/LAB/english/
+http://www.gov.on.ca/LAB/english/es/factsheets/fs_hours.html
+http://www.gov.on.ca/LAB/english/hs/guidelines/lead/appendix_2.html
+http://www.gov.on.ca/LAB/english/hs/reg838/reg838_draft_1.html
+http://www.gov.on.ca/LAB/english/lr/faq/lr_faq4.html
+http://www.gov.on.ca/LAB/english/news/2004/04-92cp.html
+http://www.gov.on.ca/LAB/english/news/2005/05-71s.html
+http://www.gov.on.ca/OMAFRA/english/crops/facts/00-067.htm
+http://www.gov.on.ca/OMAFRA/english/crops/facts/97-021.htm
+http://www.gov.on.ca/OMAFRA/english/engineer/facts/04-019.htm
+http://www.gov.on.ca/OMAFRA/english/livestock/beef/news/vbn1104a3.htm
+http://www.gov.on.ca/OMAFRA/english/livestock/dairy/facts/cullingcows.htm
+http://www.gov.on.ca/OMAFRA/english/livestock/horses/facts/87-022.htm
+http://www.gov.on.ca/OMAFRA/english/livestock/swine/facts/93-003.htm
+http://www.gov.on.ca/OMAFRA/english/policy/strategic/summary.htm
+http://www.gov.on.ca/OMAFRA/english/rural/facts/88-026.htm
+http://www.gov.on.ca/lab/english/hs/new_workers.html
+http://www.gov.on.ca/lab/english/news/2005/05-71s.html
+http://www.gov.on.ca/lab/olrb/eng/infbul/infbul14.htm
+http://www.gov.pe.ca/lg/gallery/26Dalton.php3
+http://www.gov.ph/forum/thread.asp?rootID=47812&catID=18
+http://www.gov.sk.ca/newsrel/releases/2001/08/10-633.html
+http://www.gov.sk.ca/psc/MgmtComp/Impact_Influence.htm
+http://www.gov.sk.ca/topics/keyword/keyword?topic=arts-culture-recreation&keyword=2177
+http://www.governance.com.au/BoardMatters/brdmattersarticleNew19.htm
+http://www.governance.com.au/BoardMatters/brdmattersarticleNew3.htm
+http://www.governor.state.pa.us/governor/cwp/view.asp?a=1101&q=440184
+http://www.governor.state.tx.us/divisions/music/events/tmec_march.htm
+http://www.govexec.com/calendar/
+http://www.govexec.com/features/0202/0202s2.htm
+http://www.govexec.com/gelive/archive/20050518.htm
+http://www.govexec.com/mailbagDetails.cfm?aid=30667
+http://www.govhouse.wa.gov.au/cgi-bin/engage.pl?Year=2004&Month=3
+http://www.govsux.com/Heir_To_The_Halocost.html
+http://www.govt.co.charles.md.us/
+http://www.govt.nz/services?treeid=172
+http://www.govtech.net/magazine/story.php?id=87473&issue=2:2004
+http://www.govtech.net/magazine/story.php?id=89559
+http://www.govtech.net/magazine/story.php?id=89559&issue=3:2004
+http://www.gower.k12.il.us/Staff/ASSESS/8_apdx2.htm
+http://www.gozochannel.com/customerservice.htm
+http://www.gp.com/build/DocumentViewer.aspx?repository=bp&elementid=4462
+http://www.gpc.edu/forms/program_information.php3?program=fire_management&option=certificate
+http://www.gpforums.co.nz/showthread.php?s=&threadid=222067&pagenumber=3
+http://www.gpifilms.com/berga.html
+http://www.gpmlaw.com/law/page_128_16_151.htm
+http://www.gpnotebook.co.uk/medwebpage.cfm?ID=1107689527
+http://www.gpnotebook.co.uk/medwebpage.cfm?ID=1543897121
+http://www.gpo.gov/bca/decisions/79-5.htm
+http://www.gpo.gov/factsheet/
+http://www.gpo.gov/int/int015.html
+http://www.gpoaccess.gov/branches.html
+http://www.gpoaccess.gov/databases.html
+http://www.gpoaccess.gov/topics/business.html
+http://www.gpoaccess.gov/usbudget/fy00/guide05.html
+http://www.gpoaccess.gov/usbudget/fy01/guide05.html
+http://www.gptboycott.com/dead/disneyawards.php
+http://www.gr8gear.com/
+http://www.graceandpeace.us/archives/2004_12.html
+http://www.graceandtruthbooks.com/links/
+http://www.gracecathedral.org/enrichment/brush_excerpts/brush_20041027.shtml
+http://www.gracethrufaith.com/selah/forgiveness/life-in-the-garden
+http://www.graceyoung.com/excerpts1.html
+http://www.grad.gatech.edu/orientation/
+http://www.grad.niu.edu/osp/FAQs.html
+http://www.graddiv.ucsb.edu/pubs/filing_guide/special/
+http://www.gradesaver.com/ClassicNotes/Authors/about_james_cooper.html
+http://www.gradesaver.com/ClassicNotes/Titles/budd/themes.html
+http://www.gradesaver.com/ClassicNotes/Titles/catcherrye/summ4.html
+http://www.gradesaver.com/ClassicNotes/Titles/communist/summ2.html
+http://www.gradesaver.com/ClassicNotes/Titles/crucible/charlist.html
+http://www.gradesaver.com/ClassicNotes/Titles/earnest/fullsumm.html
+http://www.gradesaver.com/ClassicNotes/Titles/gawain/charlist.html
+http://www.gradesaver.com/ClassicNotes/Titles/liberty/summ2.html
+http://www.gradesaver.com/ClassicNotes/Titles/night/summ7.html
+http://www.gradesaver.com/ClassicNotes/Titles/night/summ8.html
+http://www.gradesaver.com/ClassicNotes/Titles/sense/summ3.html
+http://www.gradesaver.com/ClassicNotes/Titles/thunder/charlist.html
+http://www.gradesaver.com/ClassicNotes/Titles/winesburg/summ6.html
+http://www.gradesaver.com/ClassicNotes/Titles/winesburg/summ7.html
+http://www.gradesaver.com/ClassicNotes/Titles/winesburg/summ9.html
+http://www.gradingthemovies.com/html/mv/gtm_mv00413.shtml
+http://www.gradlink.edu.au/content/view/full/1405
+http://www.gradlink.edu.au/content/view/full/1406
+http://www.gradresources.org/articles/emotional_fatigue.shtml
+http://www.gradschool.unc.edu/events/october2003/lee.html
+http://www.gradschools.com/listings/UK/environ_studies_UK.html
+http://www.gradschools.com/listings/UK/geography_UK.html
+http://www.graduatecareers.hobsons.co.uk/advice_content.jsp?id=FOLLOWING_REJECTION
+http://www.graduatecareers.hobsons.co.uk/careers_content.jsp?id=SCIENCE_ADVICE_FOOD
+http://www.graduatecareers.hobsons.co.uk/result_profile.jsp?EmployerID=373&Content=CaseStudy2
+http://www.gradunion.cam.ac.uk/forum/viewtopic.php?t=665
+http://www.grady.uga.edu/coxcenter/activities/activities0203/act065.htm
+http://www.grady.uga.edu/coxcenter/mapor2.htm
+http://www.graffiti.org/faq/graffiti.glossary.html
+http://www.grahamazon.com/sp/other.php
+http://www.grahamfraserfoundation.org.uk/selvadurai%20report.htm
+http://www.grahamleader.com/Stories/0,1413,242%257E25260%257E2693086,00.html
+http://www.grahamsalisbury.com/books.html
+http://www.grain.org/bio-ipr/?id=386
+http://www.grain.org/seedling/?id=332
+http://www.gramcord.org/hwinnew.htm
+http://www.graminex.com/searching/ch15.php
+http://www.grammarstation.com/UserGuide.html
+http://www.grammarstation.com/grammar_glossary.html
+http://www.grammy.com/news/artswatch/2005/0620oecd.aspx
+http://www.grammy.com/press/upcoming.aspx
+http://www.granarybooks.com/books/clay/clay3.html
+http://www.granburydepot.org/church/elmhist.htm
+http://www.grancanariayoungsters.com/article374.html
+http://www.grancoffee.com/about_us.html
+http://www.grand.teton.national-park.com/boat.htm
+http://www.grandboomers.com/GB_retirement.html
+http://www.grandchalet.com/banquet.html
+http://www.grandin.com/references/acclimate.cattle.horses.html
+http://www.grandiose.com/98/980112.html
+http://www.grandiose.com/vb/femusic.html
+http://www.grandlodge-nc.org/nclor/SJandMHC.htm
+http://www.grandlodgescotland.com/website/famous.html
+http://www.grandmaraismichigan.com/Businesses/Clubs&NPOrgs/historicalsociety/historicalsociety.htm
+http://www.grandmothersforpeace.org/newsletters/December1999/Page02a.html
+http://www.grandparenting.org/New%20Generations.htm
+http://www.grandparenting.org/Stepgrandparenting.htm
+http://www.grandprix.com/ft/ft00034.html
+http://www.grandprix.com/ft/ft00117.html
+http://www.grandprix.com/ft/ft00305.html
+http://www.grandprix.com/race/r730sunpc.html
+http://www.grandtimes.com/Conquering_Sleep.html
+http://www.grandtimes.com/What_Dying.html
+http://www.grandtimes.com/articles/Deferred_Retirement.html
+http://www.grandtimes.com/christmas.html
+http://www.grandvilledrumline.com/FAQ.htm
+http://www.grange.org.uk/afrentrip.htm
+http://www.grannyd.com/speeches.php?id=46&action=list
+http://www.grannyd.com/speeches.php?id=60&action=list
+http://www.grannys.com/
+http://www.grannysgardenschool.com/
+http://www.granta.com/books/chapters/39
+http://www.granta.com/extracts/1872
+http://www.granta.com/extracts/1959
+http://www.granta.com/extracts/2040
+http://www.granta.com/extracts/683
+http://www.grantadesign.com/solutions/polymers/review.htm
+http://www.grantarchitects.com/
+http://www.grants.armstrong.edu/glossary.htm
+http://www.grants.gov/Apply
+http://www.grantthornton.ca/mgt_papers/MIP_template.asp?MIPID=43
+http://www.grantthornton.ca/mgt_papers/MIP_template.asp?MIPID=84
+http://www.grantthornton.com/content/70820.asp
+http://www.grape.org.za/Grape19/is19c.html
+http://www.grapevine.on.ca/faq.html
+http://www.graphesthesia.com/rw/s-Job.html
+http://www.graphics-muse.com/codingstandards.html
+http://www.graphpad.com/www/book/Interpret.htm
+http://www.grasstopsusa.com/boltonfight.html
+http://www.gratefulness.org/books/dsr.htm
+http://www.graveaddiction.com/egrave.html
+http://www.gravett.org/AA/archives/006241.html
+http://www.gravett.org/yobbo/quiz/quiz.htm
+http://www.grayhillsolutions.com/section508/
+http://www.grc-exchange.org/g_themes/ssaj_safety.html
+http://www.grc.com/stevegibson.htm
+http://www.grc.nasa.gov/WWW/Wright/airplane/balance.html
+http://www.grc.nasa.gov/WWW/Wright/airplane/balanceo.html
+http://www.grcnet.20m.com/custom2.html
+http://www.gre.ac.uk/courses/post/sch/bus/elogist.html
+http://www.gre.ac.uk/students/affairs/progression/principle-conditions.htm
+http://www.gre.org/respredict.html
+http://www.gre.org/writdir.html
+http://www.great-adventures.com/destinations/usa/new_york/newyork.html
+http://www.great-britain.co.uk/A-to-Z/accommodation-food.htm
+http://www.great-explorations.com/Pages/sts.html
+http://www.great-ideas.org/
+http://www.great-ideas.org/18prin.htm
+http://www.great-ideas.org/bookordr.htm
+http://www.great-lakes.net/teach/envt/fish/fish_4.html
+http://www.greatandhra.com/interviews/spiritual_stars.html
+http://www.greatbasin.net/index.php?click=sales&click_sub=ipass
+http://www.greatbooks.org/library/guides/steinbeck.html
+http://www.greatbooks.org/library/guides/steinbeck.shtml
+http://www.greatbooks.org/library/guides/trevor.shtml
+http://www.greatbooks.org/tcr/personalchoice.shtml
+http://www.greatbooksandfilm.com/macbeth.htm
+http://www.greatbritishkitchen.co.uk/regional/welshfood.htm
+http://www.greatchange.org/footnotes-overshoot.html
+http://www.greatcom.org/resources/know_why_you_believe/chap09/default.htm
+http://www.greatcommandment.net/content.php?id=62
+http://www.greatdividecyclery.com/techtalk/weight.html
+http://www.greatdreams.com/baby.htm
+http://www.greatdreams.com/diana4.htm
+http://www.greatdreams.com/eeyore/puppymls.htm
+http://www.greatdreams.com/nynuke.htm
+http://www.greatdreams.com/superstorm.htm
+http://www.greatercharlottebiz.com/article.asp?id=439
+http://www.greaterdemocracy.org/2003_07_01_gd.html
+http://www.greaterdemocracy.org/archives/2004_07.html
+http://www.greaterkwchamber.com/market_watch.shtml
+http://www.greaterlafayettedfa.org/
+http://www.greaterthings.com/JJDewey/Critique/suddenly.htm
+http://www.greatervancouverhotels.com/vancouver/carmana-plaza-hotel.htm
+http://www.greatestjeneration.com/archives/001320.php
+http://www.greateyecare.com/faq.html
+http://www.greatfallstribune.com/news/stories/20040829/localnews/1137963.html
+http://www.greatgridlock.net/NYC/nyc2b.html
+http://www.greatharvestministries.com/s16.html
+http://www.greatlists.com/faqs.htm
+http://www.greatnwfcu.com/electronics.html
+http://www.greatplainsgameandfish.com/hunting/guns-shooting/gf_aa096702a/
+http://www.greatplainsgameandfish.com/hunting/hunting-dogs/gf_aa116104a/
+http://www.greatreporter.com/modules.php?name=News&file=print&sid=81
+http://www.greatschools.net/modperl/browse_school/tx/9554
+http://www.greatschools.net/modperl/browse_school/vt/336
+http://www.greatschools.net/modperl/browse_school/wa/3116
+http://www.greatschools.net/modperl/browse_school/wa/3147
+http://www.greatschools.net/modperl/bycity/ok/?city=Felt&showall=1&level=a
+http://www.greatscottishwalk.com/events/rules.htm
+http://www.greatsite.com/featured-items-and-events/symposium.html
+http://www.greatstbarts.com/livery.htm
+http://www.greatvoice.com/archive_ivo/archiveindex_ivo.html
+http://www.greatwar.co.uk/westfront/ypsalient/secondypres/prelude/4thaokplan.htm
+http://www.greatwar.org.nz/leaving.htm
+http://www.greatwardifferent.com/Great_War/Albert/Albert_01.htm
+http://www.greatwardifferent.com/Great_War/Filming_the_War/Filming_the_War_01.htm
+http://www.greatwardifferent.com/Great_War/First_Gas_Attack/First_Gas_Attack_01.htm
+http://www.greatwardifferent.com/Great_War/Flying_Fighting_Men/Flying_Fighting_Men_01.htm
+http://www.grecoreport.com/gwb_&_the_neocons_%5Blay_down_w__dogs,_get_up_w_fleas%5D.htm
+http://www.grecoreport.com/slavery_in_the_ancient_greek_world_an_objective_approach_to_the_matter.htm
+http://www.greece.k12.ny.us/ath/library/high-school-teacher-projects/vail.htm
+http://www.greece.k12.ny.us/ath/library/webquests/backintime/default.htm
+http://www.greece.k12.ny.us/taylor/topics/class_size.htm
+http://www.greecetravel.com/phones/dorian.html
+http://www.greek101.com/customer/policies.php
+http://www.greekislands.com/crete/chania/south.htm
+http://www.greektravel.com/greekislands/kalymnos/
+http://www.greeleytrib.com/apps/pbcs.dll/article?AID=/20030608/ACCESSABILITY04/306070021/-1/ACCESSABILITY
+http://www.green-alliance.org.uk/mediaroom/ChildsPlacePressRelease/
+http://www.green-street.ca/how_it_works/index_e.html
+http://www.greenaction.org.il/english/
+http://www.greenaction.org/cancer/sfdraftlegislation.shtml
+http://www.greenair.com/interpri.htm
+http://www.greenanarchist.org/books/westrise.html
+http://www.greenbarley.com/neurodyne.html
+http://www.greenbeam.com/features/tour090301.stm
+http://www.greenbelt-news.org.uk/
+http://www.greenbelt.org.uk/generous/index.php?p=21
+http://www.greenbelts.ukos.com/gbconclude.html
+http://www.greenbuilder.com/general/articles/GBNews1.97.html
+http://www.greenbuilder.com/general/articles/GBNews10.97.html
+http://www.greenbuilder.com/general/articles/GBNews5.97.html
+http://www.greenbuildingstore.co.uk/regulations.php
+http://www.greenbuildingstudio.com/About.aspx
+http://www.greencarcongress.com/
+http://www.greencarcongress.com/2004/04/the_shadow_of_y.html
+http://www.greencarcongress.com/2004/05/china_and_kazak.html
+http://www.greencarcongress.com/2004/09/more_on_the_che.html
+http://www.greencarcongress.com/2004/10/flex_fuel_zooms.html
+http://www.greencarcongress.com/2005/02/iran_determined.html
+http://www.greencardplus.com/gc_marriage.html
+http://www.greencardplus.com/gc_renewal.html
+http://www.greencine.com/article?action=view&articleID=197&pageID=359
+http://www.greencollege.ubc.ca/gcds/content.cfm?Action=guidlines
+http://www.greenconstruction.co.uk/Archive/RoundUp9.htm
+http://www.greendoorfilms.co.uk/tandc.htm
+http://www.greeneconomics.net/OilWeEat.htm
+http://www.greenerbuilding.org/dealer_list.php?action=state&sid=20
+http://www.greenfeet.net/newsletter/Confessions-of-a-Modern-Day-Greenie.shtml
+http://www.greenfield.com/about_us/newsletters.asp
+http://www.greenfleet.com.au/transport/41.asp
+http://www.greenfutures.org.uk/text/viewpoints/default.asp
+http://www.greenfutures.org.uk/viewpoints/default.asp
+http://www.greengablesdollhouse.com/Miniature%20Lighthouses,%20Firehouses,%20Churches,%20Gazebos.htm
+http://www.greenglobe21.com/Documents/Newsletters/JULY2003.htm
+http://www.greenhomebuilding.com/QandA/earthshelteringQandA.htm
+http://www.greenhosp.org/greenwich/programs_hlc.htm
+http://www.greenhosp.org/greenwich/tyh-14.htm
+http://www.greenhouse.gov.au/coolcommunities/motivating/info.html
+http://www.greenhouse.gov.au/international/
+http://www.greenhouse.gov.au/yourhome/technical/fs75d_4.htm
+http://www.greenhouseonline.org/HC%20briefs.html
+http://www.greeninformation.com/nukeglossary.htm
+http://www.greenjournal.org/cgi/content/full/100/5/992
+http://www.greenjournal.org/cgi/content/full/104/6/1282
+http://www.greenkeybooks.com/
+http://www.greenland.com/Travel_Info/Hiking_Guides/Tasiilaq.php
+http://www.greenleaf-publishing.com/catalogue/unfold.htm
+http://www.greenleft.org.au/back/1992/46/46p10aiw.htm
+http://www.greenleft.org.au/back/2003/532/532p19d.htm
+http://www.greenleft.org.au/back/2004/607/607p6.htm
+http://www.greenleft.org.au/back/2004/609/609pp18f.htm
+http://www.greenleft.org.au/back/2004/610/610p22g.htm
+http://www.greenleft.org.au/back/2004/610/610p24c.htm
+http://www.greenleft.org.au/back/2005/613/613p4b.htm
+http://www.greenlife-herbal.com/version2/Doctor_Patients/case3.htm
+http://www.greenlinnet.com/fineprint/
+http://www.greenlitetravel.co.nz/previousnews.html
+http://www.greenmarketing.com/articles/IB_Nov_03.html
+http://www.greenmediaonline.com/uploads/shoptalk/0409st.asp
+http://www.greenmoneyjournal.com/article.mpl?newsletterid=24&articleid=250
+http://www.greenmountaincenter.org/tnhtour/ymca05.htm
+http://www.greenmountaindiapers.com/howto.htm
+http://www.greenmtn.edu/faculty/gravesj.asp
+http://www.greenockmortonsc.com/whats_new.html
+http://www.greenocktelegraph.co.uk/readstory.php?id=4008
+http://www.greenparty.ie/en/in_the_dail/communications_marine_natural_resources
+http://www.greenparty.org.uk/index.php?nav=speeches&n=29
+http://www.greenpeace.org.uk/contentlookup.cfm?ucidparam=20010730121201&CFID=2549109&CFTOKEN=88004637
+http://www.greenpeace.org.uk/contentlookup.cfm?ucidparam=20010730121201&Menupoint=D-B-C
+http://www.greenpeace.org/features/details?item_id=130555
+http://www.greenpeace.org/features/details?item_id=130555&print=1
+http://www.greenpeace.org/international_en/faq/view-q-and-a?category_id=4396&faq_id=15401
+http://www.greenpeace.org/international_en/news/details?item_id=455673
+http://www.greenpeace.org/international_en/send/send?return_url=%2Finternational_en%2Ffeatures%2Fdetails%3Fitem_id%3D327510
+http://www.greenpeace.org/international_en/victory/
+http://www.greenpeace.org/news/details?item_id=490662
+http://www.greenpeace.org/~toxics/html/content/actswiss.html
+http://www.greenplastic.com/
+http://www.greenplastic.com/discography/videography/fake_plastic_trees/index.php
+http://www.greenplumbers.com.au/index.php?pageID=110
+http://www.greenriverwriters.org/grwblog/archives/00000011.html
+http://www.greens.org.nz/campaigns/buylocal/cic6.htm
+http://www.greens.org.nz/docs/speeches/990606jf-confad.htm
+http://www.greens.org.nz/office/whatsnew2001.htm
+http://www.greens.org.nz/searchdocs/PR5497.html
+http://www.greens.org.nz/searchdocs/speech3001.html
+http://www.greens.org.nz/searchdocs/speech3024.html
+http://www.greens.org.nz/searchdocs/speech8263.html
+http://www.greensborocoliseum.com/calendar_details.cfm?id=168
+http://www.greensborocoliseum.com/ncaa_info.cfm
+http://www.greensborocoliseum.com/special_events_center_production_info.cfm
+http://www.greensborocoliseum.com/ticket_info_seating.cfm
+http://www.greensborocoliseum.com/ticket_outlets.cfm
+http://www.greenshop.co.uk/solar/solar-electric-intro.htm
+http://www.greensocialist.org.uk/ags/umbrella/u045.shtml
+http://www.greenspun.com/bboard/q-and-a-fetch-msg.tcl?msg_id=00458e
+http://www.greenspun.com/bboard/q-and-a.tcl?topic=Coffee%20Related%20Buy%2FSell%2FTrade
+http://www.greenstar.com/index.asp
+http://www.greentourism.org.uk/Default.aspx.LocID-008new085.RefLocID-008015003.Lang-EN.htm
+http://www.greenventure.ca/ecohouse.asp
+http://www.greenville.edu/publications/writing/writing1.shtml
+http://www.greenwichlibrary.org/coscobfriends.htm
+http://www.greenwichtime.com/news/local/scn-gt-wallofsound3jun23,0,2594191.story?coll=green-news-local-headlines
+http://www.greenwoodinstitute.org/resources/resmiss.html
+http://www.greenyearbook.org/agree/mar-env/oprc.htm
+http://www.gregbrown.org/gb4466.html
+http://www.gregburch.net/cars/hotrod.html
+http://www.gregevans.com.au/work.html
+http://www.greggsimpson.com/soundgallerymotionstudio.htm
+http://www.gregorc.com/workshop.html
+http://www.gregpalast.com/detail.cfm?artid=418&row=1
+http://www.gregsegal.com/style_and_scale.htm
+http://www.greippi.net/get/ringtone/All_alone.php
+http://www.grep-fu.net/archives/00000009.html
+http://www.greybearddesign.com/legal-termsofuse.asp
+http://www.greyblue.net/MidnightBlue/Childe/02.htm
+http://www.greyblue.net/MidnightBlue/Childe/03.htm
+http://www.greyblue.net/MidnightBlue/Mirror/12.htm
+http://www.grf-services.com/research.htm
+http://www.grf.k12.il.us/PineCrest/state_learning_standards.htm
+http://www.grida.no/climate/ipcc/emission/060.htm
+http://www.grida.no/climate/ipcc_tar/wg1/006.htm
+http://www.grida.no/climate/ipcc_tar/wg1/049.htm
+http://www.grida.no/climate/ipcc_tar/wg1/052.htm
+http://www.grida.no/climate/ipcc_tar/wg1/059.htm
+http://www.grida.no/climate/ipcc_tar/wg1/071.htm
+http://www.grida.no/climate/ipcc_tar/wg1/082.htm
+http://www.grida.no/climate/ipcc_tar/wg1/089.htm
+http://www.grida.no/climate/ipcc_tar/wg1/092.htm
+http://www.grida.no/climate/ipcc_tar/wg1/247.htm
+http://www.grida.no/climate/ipcc_tar/wg1/303.htm
+http://www.grida.no/climate/ipcc_tar/wg1/357.htm
+http://www.grida.no/climate/ipcc_tar/wg1/365.htm
+http://www.grida.no/climate/ipcc_tar/wg1/369.htm
+http://www.grida.no/climate/ipcc_tar/wg1/388.htm
+http://www.grida.no/climate/ipcc_tar/wg1/451.htm
+http://www.grida.no/climate/ipcc_tar/wg2/498.htm
+http://www.grida.no/geo/geo3/english/498.htm
+http://www.gridtb.org/projects/CEO/annex2.htm
+http://www.grieflossrecovery.com/grief-articles/talbott01.html
+http://www.griffin.uga.edu/fultonmastergarden/
+http://www.griffith.edu.au/text/jobs/med1482505/home.htm
+http://www.griffithobs.org/IPS%20Planetarian/IPSgradeconcepts.html
+http://www.griffjon.com/writing/fuckinghot.html
+http://www.grinningplanet.com/2004/07-08/political-truth-article.htm
+http://www.grist.org/comments/dispatches/2005/01/25/mckibben/index1.html
+http://www.grist.org/news/maindish/2003/02/11/warriors/
+http://www.grist.org/news/maindish/2004/10/27/scherer-christian/
+http://www.gritsonline.org/topo.htm
+http://www.grizedale.org/lying/postscript/
+http://www.grizzlyanalytical.com/
+http://www.grmi.org/renewal/Richard_Riss/sermons/0007.html
+http://www.grmi.org/renewal/Richard_Riss/sermons/0013.html
+http://www.gro-scotland.gov.uk/famrec/from_our_records/hallfame/science_engineering_and_industry.html
+http://www.groireland.ie/fees.htm
+http://www.grokdotcom.com/Volumes/
+http://www.grokdotcom.com/topics/EmotionallySpeaking.htm
+http://www.grokdotcom.com/topics/YouTalkingToMe.html
+http://www.grouchyoldcripple.com/archives/001665.html
+http://www.groundwatercentral.info/
+http://www.groupbstrep.com/brochure.htm
+http://www.groupnbt.com/jobs.php4
+http://www.groupsplus.com/pages/articles.htm
+http://www.grout.demon.co.uk/Barbara/bsrlm.htm
+http://www.grover.org/6week.htm
+http://www.growbag.com/features/all/all.html
+http://www.growingbusiness.co.uk/YQ8Oi6honnYeow.html
+http://www.growingbusiness.co.uk/YXCnZg8.html
+http://www.growingbusinessmag.co.uk/c0zl0aJoG9RP_Q.html
+http://www.growingbusinessmag.co.uk/change_view_mode.axd?id=aBvUT_12bA
+http://www.growingearth.com/six_leading_tree_problems_and_wh.htm
+http://www.growinggreener2.com/default.aspx?id=213
+http://www.growingnd.com/allmedia.pdf?mediaID=147&sz=172549
+http://www.growingsensibly.org/news/clippingsDetail.asp?objectID=1368
+http://www.growingsensibly.org/resources/listservDetail.asp?objectID=1037
+http://www.growingstrong.org/rop/feelings.html
+http://www.growthhouse.org/
+http://www.growthwork.ca/life-coach-weblog-entries/36_0_1_0_C/
+http://www.grrlstories.org/edactivities/ShantelParentTeacherAct.htm
+http://www.grumblemagazine.com/articles/toots/middleeast/
+http://www.grumet.net/writing/web/deep-thinking-about-weblogs.html
+http://www.grumpyspond.com/AUTUMN.HTM
+http://www.gruntdoc.com/2005/06/setting_the_rec.html
+http://www.gruts.com/darwin/
+http://www.gs.com/client_services/urban_investment_group/press_releases/press_release3.html
+http://www.gsa.gov/section515
+http://www.gsacsports.org/
+http://www.gsas.harvard.edu/financial/financialaid.html
+http://www.gsas.harvard.edu/publications/handbook/req_histsci.html
+http://www.gsb.columbia.edu/ipd/j_fdi.html
+http://www.gsb.columbia.edu/ipd/j_gdp_bk.html
+http://www.gsb.stanford.edu/community/bmag/sbsm0396/deregulation.htm
+http://www.gsb.stanford.edu/history/timeline/military.html
+http://www.gsb.stanford.edu/news/bmag/sbsm0411/feature_philanthropy.shtml
+http://www.gsb.stanford.edu/news/headlines/2005alumniconf_london_geopoliticspanel.shtml
+http://www.gsb.stanford.edu/news/headlines/2005healthcareconf.shtml
+http://www.gsb.stanford.edu/news/headlines/2005internatldevconf_zewdie.shtml
+http://www.gsb.stanford.edu/news/headlines/2005studytrip_dc.shtml
+http://www.gsblaw.com/join/dc.asp
+http://www.gsd.harvard.edu/inside/cadcam/description.html
+http://www.gsd.harvard.edu/inside/computer_resources/manual/printing/color/deskpub.htm
+http://www.gsd.harvard.edu/manual/cadcam/
+http://www.gsd.harvard.edu/users/pbcote/enr-100/exercise.htm
+http://www.gsdma.org/plaintruth_sep02/gujrehab.htm
+http://www.gsdring.com/cgi-bin/class/class_ad.pl?action=View+&cat=Older%20Dogs&scat=All&display=25&begin=1&end=10
+http://www.gsdrni.org/
+http://www.gse.buffalo.edu/programs/tei/undergrad/
+http://www.gse.harvard.edu/hfrp/eval/issue27/bbt1.html
+http://www.gse.harvard.edu/hfrp/projects/afterschool/conference/nsaca-2004.html
+http://www.gse.harvard.edu/hfrp/projects/fine/fineforum/forum5/questions.html
+http://www.gse.harvard.edu/hfrp/projects/fine/fineforum/forum7/spotlight.html
+http://www.gse.harvard.edu/hfrp/projects/fine/fineforum/forum8/questions.html
+http://www.gse.harvard.edu/hfrp/projects/fine/memberinsights.html
+http://www.gse.harvard.edu/hfrp/projects/fine/resources/teaching-case/standards.html
+http://www.gse.harvard.edu/hfrp/pubs/onlinepubs/ecd/may99.html
+http://www.gse.harvard.edu/hfrp/pubs/onlinepubs/rrb/learning.html
+http://www.gse.harvard.edu/news/features/boles06012003.html
+http://www.gse.harvard.edu/news/features/digitaldivide07012003.html
+http://www.gse.harvard.edu/~hepg/
+http://www.gse.harvard.edu/~ncsall/fob/2004/garner.html
+http://www.gse.uci.edu/markw/overview.html
+http://www.gseis.ucla.edu/courses/ed253a/2003_03_01_archive.php
+http://www.gseis.ucla.edu/courses/ed253a/2004_12_01_archive.php
+http://www.gseis.ucla.edu/courses/ed253a/Luke/LITLEX1.html
+http://www.gseis.ucla.edu/courses/ed253a/blogger.php
+http://www.gseis.ucla.edu/heri/darcu_pr.html
+http://www.gseis.ucla.edu/news/?id=22
+http://www.gsfc.nasa.gov/topstory/20011016ozonelayer.html
+http://www.gsfc.nasa.gov/topstory/2002/20020806ngst.html
+http://www.gsfc.nasa.gov/topstory/20020806ngst.html
+http://www.gsh.org/GSH/CF/ViewNarrative.cfm?narr=1014
+http://www.gsh.org/GSH/CF/ViewNarrative.cfm?narr=603
+http://www.gsh.org/GSH/CF/ViewNarrative.cfm?narr=985
+http://www.gsh.org/GSH/CF/_cfm/ViewNarrative.cfm?narrID=442
+http://www.gslis.utexas.edu/~palmquis/courses/reviews/judys-n.htm
+http://www.gsm.ucdavis.edu/faculty/Research/Fall2002.htm
+http://www.gsmwvc.org/TradingPost.html
+http://www.gsonet.org/shared/articles/HumanStem.htm
+http://www.gsriverland.com/modules/web/index.php?id=25
+http://www.gssiweb.com/reflib/attachment.cfm?id=4
+http://www.gsspl.org.uk/
+http://www.gstc.org/cookieSale.php
+http://www.gstrc.com/newslist.asp
+http://www.gsu.edu/~eslhpb/grammar/grammar_from_context.htm
+http://www.gsu.edu/~wwwadm/acceptstudent/advisement.htm
+http://www.gsu.edu/~wwwfit/fithome.html
+http://www.gsu.edu/~wwwfit/swimming.html
+http://www.gsu.edu/~wwwhcs/archives/archive_of_current_system.htm
+http://www.gsu.edu/~wwwpug/AppliedPracticaSites.htm
+http://www.gsu.edu/~wwwrtp/overview.htm
+http://www.gsu.tcd.ie/node/109
+http://www.gswc.ws/NewsLinks.htm
+http://www.gtabloggers.com/
+http://www.gtaforums.com/index.php?showtopic=175345
+http://www.gtaforums.com/index.php?showtopic=175555
+http://www.gtap.agecon.purdue.edu/
+http://www.gtap.agecon.purdue.edu/resources/res_display.asp?RecordID=576
+http://www.gtce.org.uk/achieve1national/
+http://www.gtce.org.uk/gtcinfo/remit.asp
+http://www.gtff.net/
+http://www.gthelectronics.com/controls.htm
+http://www.gtlaw.com/pub/pr/2003/dallas03a.htm
+http://www.gtldna.com/testimonials.html
+http://www.gtpcc.org/gtpcc/bullseye2pro.htm
+http://www.gty.org/cgi-bin/store/452001.html
+http://www.gu.edu.au/jobs/med1482505/home.htm
+http://www.gu.edu.au/school/art/text/oct02/letters.htm
+http://www.guantanamohrc.org/
+http://www.guard-ga.org/kids/ear.html
+http://www.guarded.net/solutions_services.html
+http://www.guardian.bz/hot.html
+http://www.guardian.co.uk/
+http://www.guardian.co.uk/Columnists/Column/0,5673,1164181,00.html
+http://www.guardian.co.uk/Columnists/Column/0,5673,1411348,00.html
+http://www.guardian.co.uk/Columnists/Column/0,5673,1489315,00.html
+http://www.guardian.co.uk/Columnists/Column/0,5673,1516043,00.html
+http://www.guardian.co.uk/Film/features/featurepages/0,4120,1477031,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,1083847,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,1206725,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,1210520,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,1215006,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,1403708,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,1411350,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,1423237,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,1432040,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,1508193,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,915579,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,943638,00.html
+http://www.guardian.co.uk/Iraq/Story/0,2763,966819,00.html
+http://www.guardian.co.uk/Northern_Ireland/Story/0,2763,209091,00.html
+http://www.guardian.co.uk/Northern_Ireland/Story/0,2763,725864,00.html
+http://www.guardian.co.uk/Observer/business/story/0,6903,949136,00.html
+http://www.guardian.co.uk/Society/publichealth/comment/0,11098,1352373,00.html
+http://www.guardian.co.uk/afghanistan/story/0,1284,1372484,00.html
+http://www.guardian.co.uk/afghanistan/story/0,1284,1440836,00.html
+http://www.guardian.co.uk/afghanistan/story/0,1284,822344,00.html
+http://www.guardian.co.uk/arts/arttheft/0,13883,1034066,00.html
+http://www.guardian.co.uk/arts/columns/laughingmatters/story/0,12231,946022,00.html
+http://www.guardian.co.uk/arts/critic/feature/0,1169,928930,00.html
+http://www.guardian.co.uk/arts/features/story/0,11710,1191655,00.html
+http://www.guardian.co.uk/arts/features/story/0,11710,1302348,00.html
+http://www.guardian.co.uk/arts/features/story/0,11710,1369643,00.html
+http://www.guardian.co.uk/arts/features/story/0,11710,1476763,00.html
+http://www.guardian.co.uk/arts/features/story/0,11710,1478777,00.html
+http://www.guardian.co.uk/arts/fridayreview/story/0,12102,1512708,00.html
+http://www.guardian.co.uk/arts/news/story/0,11711,1161737,00.html
+http://www.guardian.co.uk/arts/portrait/story/0,11109,1168194,00.html
+http://www.guardian.co.uk/arts/proms2002/story/0,12155,753715,00.html
+http://www.guardian.co.uk/arts/saatchi/story/0,13010,928929,00.html
+http://www.guardian.co.uk/bloodysunday/article/0,2763,184928,00.html
+http://www.guardian.co.uk/britain/article/0,2763,1461790,00.html
+http://www.guardian.co.uk/bulger/article/0,2763,195286,00.html
+http://www.guardian.co.uk/business/story/0,,912387,00.html
+http://www.guardian.co.uk/business/story/0,3604,1393476,00.html
+http://www.guardian.co.uk/business/story/0,3604,1514175,00.html
+http://www.guardian.co.uk/butler/story/0,14750,1332673,00.html
+http://www.guardian.co.uk/cars/story/0,15383,1487020,00.html
+http://www.guardian.co.uk/china/story/0,7369,1489182,00.html
+http://www.guardian.co.uk/china/story/0,7369,1509375,00.html
+http://www.guardian.co.uk/climatechange/story/0,12374,1324379,00.html
+http://www.guardian.co.uk/comment/story/0,3604,1186509,00.html
+http://www.guardian.co.uk/comment/story/0,3604,1287054,00.html
+http://www.guardian.co.uk/comment/story/0,3604,1381165,00.html
+http://www.guardian.co.uk/comment/story/0,3604,1433979,00.html
+http://www.guardian.co.uk/comment/story/0,3604,1435203,00.html
+http://www.guardian.co.uk/comment/story/0,3604,1480279,00.html
+http://www.guardian.co.uk/comment/story/0,3604,1490687,00.html
+http://www.guardian.co.uk/comment/story/0,3604,1495260,00.html
+http://www.guardian.co.uk/comment/story/0,3604,1495640,00.html
+http://www.guardian.co.uk/comment/story/0,3604,1507420,00.html
+http://www.guardian.co.uk/comment/story/0,3604,968356,00.html
+http://www.guardian.co.uk/comment/story/0,3604,975423,00.html
+http://www.guardian.co.uk/conservation/story/0,13369,1324287,00.html
+http://www.guardian.co.uk/drugs/Story/0,2763,961868,00.html
+http://www.guardian.co.uk/economicdispatch/story/0,12498,968842,00.html
+http://www.guardian.co.uk/elsewhere/journalist/story/0,7792,1485890,00.html
+http://www.guardian.co.uk/elsewhere/journalist/story/0,7792,1495570,00.html
+http://www.guardian.co.uk/enron/story/0,11337,650327,00.html
+http://www.guardian.co.uk/equatorialguinea/story/0,15013,1497227,00.html
+http://www.guardian.co.uk/eu/story/0,7369,1492415,00.html
+http://www.guardian.co.uk/fairtrade/story/0,12458,1039189,00.html
+http://www.guardian.co.uk/food/Story/0,2763,1443677,00.html
+http://www.guardian.co.uk/freedom/Story/0,2763,1382740,00.html
+http://www.guardian.co.uk/g2/story/0,3604,813189,00.html
+http://www.guardian.co.uk/guantanamo/story/0,13743,1002942,00.html
+http://www.guardian.co.uk/guardian_jobs_and_money/story/0,3605,1503650,00.html
+http://www.guardian.co.uk/guardianpolitics/story/0,,1486289,00.html
+http://www.guardian.co.uk/guardianpolitics/story/0,3605,1204918,00.html
+http://www.guardian.co.uk/gun/Story/0,2763,1458377,00.html
+http://www.guardian.co.uk/hutton/story/0,13822,1130846,00.html
+http://www.guardian.co.uk/international/story/0,3604,1103566,00.html
+http://www.guardian.co.uk/international/story/0,3604,1484718,00.html
+http://www.guardian.co.uk/international/story/0,3604,344548,00.html
+http://www.guardian.co.uk/israel/Story/0,2763,1374609,00.html
+http://www.guardian.co.uk/japan/story/0,7369,1493940,00.html
+http://www.guardian.co.uk/kashmir/Story/0,2763,748897,00.html
+http://www.guardian.co.uk/korea/article/0,2763,1238120,00.html
+http://www.guardian.co.uk/life/feature/story/0,13026,960681,00.html
+http://www.guardian.co.uk/life/lastword/
+http://www.guardian.co.uk/life/science/story/0,12996,1497195,00.html
+http://www.guardian.co.uk/life/table/0,13235,937441,00.html
+http://www.guardian.co.uk/mayday/story/0,7369,481319,00.html
+http://www.guardian.co.uk/mayor/Story/0,2763,220012,00.html
+http://www.guardian.co.uk/military/story/0,11816,1265824,00.html
+http://www.guardian.co.uk/obituaries/story/0,3604,1200211,00.html
+http://www.guardian.co.uk/online/businesssolutions/story/0,12581,1290734,00.html
+http://www.guardian.co.uk/online/feedback/story/0,12457,1342480,00.html
+http://www.guardian.co.uk/online/news/0,12597,1210455,00.html
+http://www.guardian.co.uk/online/story/0,3605,1374155,00.html
+http://www.guardian.co.uk/online/story/0,3605,1383611,00.html
+http://www.guardian.co.uk/online/story/0,3605,884658,00.html
+http://www.guardian.co.uk/parents/story/0,3605,1476018,00.html
+http://www.guardian.co.uk/racism/0,2759,180308,00.html
+http://www.guardian.co.uk/religion/Story/0,2763,1339532,00.html
+http://www.guardian.co.uk/religion/Story/0,2763,1450292,00.html
+http://www.guardian.co.uk/religion/Story/0,2763,738814,00.html
+http://www.guardian.co.uk/september11/story/0,11209,601396,00.html
+http://www.guardian.co.uk/styleguide/page/0,5817,184827,00.html
+http://www.guardian.co.uk/supermarkets/story/0,12784,1432052,00.html
+http://www.guardian.co.uk/terrorism/story/0,12780,1171905,00.html
+http://www.guardian.co.uk/terrorism/story/0,12780,1486389,00.html
+http://www.guardian.co.uk/thebeatles/story/0,11212,606548,00.html
+http://www.guardian.co.uk/transport/Story/0,2763,1011437,00.html
+http://www.guardian.co.uk/tsunami/story/0,15671,1380838,00.html
+http://www.guardian.co.uk/uk_news/story/0,3604,1484698,00.html
+http://www.guardian.co.uk/ukraine/story/0,15569,1431029,00.html
+http://www.guardian.co.uk/usa/story/0,12271,1033904,00.html
+http://www.guardian.co.uk/usa/story/0,12271,1260037,00.html
+http://www.guardian.co.uk/usa/story/0,12271,1407422,00.html
+http://www.guardian.co.uk/usa/story/0,12271,1411349,00.html
+http://www.guardian.co.uk/usa/story/0,12271,1493443,00.html
+http://www.guardian.co.uk/usa/story/0,12271,1504193,00.html
+http://www.guardian.co.uk/usa/story/0,12271,1505997,00.html
+http://www.guardian.co.uk/usa/story/0,12271,947880,00.html
+http://www.guardian.co.uk/uselections2004/glennreynolds/story/0,15140,1321776,00.html
+http://www.guardian.co.uk/water/story/0,13790,1027654,00.html
+http://www.guardian.co.uk/weather/Story/0,2763,1432699,00.html
+http://www.guardian.co.uk/weekend/story/0,3605,985375,00.html
+http://www.guardian.co.uk/worldsummit2002/story/0,12264,763166,00.html
+http://www.guardian.co.uk/wtccrash/story/0,1300,583869,00.html
+http://www.guardian.co.uk/yugo/article/0,2763,1252052,00.html
+http://www.guardian.co.uk/yugo/article/0,2763,1324024,00.html
+http://www.guardian.co.uk/zimbabwe/article/0,2763,440229,00.html
+http://www.guardianlife.com/solutions/retirement/choose_retirement_destination.html
+http://www.guardianlife.com/study/retirement/choose_retirement_destination.html
+http://www.guardiannewsngr.com/focus_record/article01
+http://www.guardianship.gov.uk/ourcommitment/complaints.htm
+http://www.guardiansorder.com/2005/
+http://www.guernseydems.org/index.php?display=ArticleDetails&id=544330
+http://www.guerrillagirls.com/hotflashes/index.shtml
+http://www.guest-tek.com/index.php?page=30
+http://www.guidant.com/condition/heart/vessel_intro.shtml
+http://www.guidedbiblestudies.com/001res3.htm
+http://www.guidedbiblestudies.com/001sin8.htm
+http://www.guidehorse.com/guide_horse_candidates_grahmann.htm
+http://www.guideline.gov/summary/summary.aspx?doc_id=5888&nbr=3874&ss=6&xl=999
+http://www.guideline.gov/summary/summary.aspx?view_id=1&doc_id=5888
+http://www.guidelines.gov/summary/summary.aspx?ss=15&doc_id=5592&nbr=3778
+http://www.guides.org.uk/members/brownies/brframe.htm
+http://www.guidetocoachingbasketball.com/defense.htm
+http://www.guidetopsychology.com/ad_viol.htm
+http://www.guidetopsychology.com/intro.htm
+http://www.guidetopsychology.com/legal.htm
+http://www.guidewire.com/customers/
+http://www.guidewiregroup.com/archives/ideas/
+http://www.guidingstar.ca/MGVC/Spring_2005_Courses_1.htm
+http://www.guild.org.au/public/nsw/marketing.asp
+http://www.guildofblades.com/retailer-overview.html
+http://www.guitar.co.nz/test.php3
+http://www.guitar9.com/danmc3.html
+http://www.guitar9.com/studionine.html
+http://www.guitaralliance.com/
+http://www.guitarnoise.com/article.php?id=151
+http://www.guitarnoise.com/article.php?id=21
+http://www.guitarnoise.com/article.php?id=318
+http://www.guitarnoise.com/article.php?id=480
+http://www.guitarnoise.com/article.php?id=512
+http://www.guitarnoise.com/article.php?id=516
+http://www.guitarnoise.com/article.php?id=83
+http://www.guitarnoise.com/print_article.php?id=21
+http://www.guitarprinciples.com/GettingBetter/essay6.htm
+http://www.guitarschool.net/product_show.asp?product_id=33
+http://www.guitarschool.net/product_show.asp?product_id=55
+http://www.guitarschool.net/product_show.asp?product_id=81
+http://www.gulfinvestigations.net/document330.html
+http://www.gulflink.osd.mil/2d_recon/2d_recon_refs/n51en083/f545-m.htm
+http://www.gulflink.osd.mil/kuwaiti_final/kuwaiti_final_s03.htm
+http://www.gulflink.osd.mil/m8a1alarms/m8a1s02.htm
+http://www.gulflink.osd.mil/oil_well_fires/oil_well_fires_sec01.htm
+http://www.gulflink.osd.mil/owf_ii/owf_ii_s01.htm
+http://www.gulflink.osd.mil/owf_ii/owf_ii_s02.htm
+http://www.gulfnews.com/Articles/news.asp?ArticleID=46275
+http://www.gulfwarvets.com/hot.htm
+http://www.gulliversports.co.uk/level1.asp?id=2&l2=120&cat=1&c=&r=Y
+http://www.gumbopages.com/music-books.html
+http://www.gumbopages.com/neworleans.html
+http://www.gumtree.com.au/sydney/75/1898475.html
+http://www.gumtree.com/london/43/1508143.html
+http://www.gumtree.com/london/84_1.html
+http://www.gun-control-network.org/IN0204.htm
+http://www.gun-control-network.org/IN0804.htm
+http://www.guncite.com/court/state/72se260.html
+http://www.guncite.com/court/state/80ma614.html
+http://www.guncite.com/gc2ndpur.html
+http://www.guncite.com/journals/halvt.html
+http://www.guncite.com/journals/reytenn.html
+http://www.gunfighter.com/webservices/
+http://www.gunitsoldier.com/
+http://www.gunowners.org/fs0104.htm
+http://www.gunsamerica.com/1101/1101-oldfirst-1.htm
+http://www.gunsamerica.com/1101/1101-random-1.htm
+http://www.gunsamerica.com/1180/1180-oldfirst-1.htm
+http://www.gunsamerica.com/1180/1180-random-1.htm
+http://www.gunsamerica.com/1291/1291-oldfirst-1.htm
+http://www.gunsamerica.com/1291/1291-random-1.htm
+http://www.gunsamerica.com/2350/2350-random-9.htm
+http://www.gunsamerica.com/2371/2371-random-6.htm
+http://www.gunsamerica.com/guns/976458117.htm
+http://www.gunsandammomag.com/values/index1.html
+http://www.gunsandammomag.com/values/september_1216/
+http://www.gunsandammomag.com/values/values0401_0415/
+http://www.gunshop.it/
+http://www.guntheranderson.com/liqueurs/storage.htm
+http://www.gurn.net/forums/archive/forum/14-1.html
+http://www.gurteen.com/gurteen/gurteen.nsf/0/A35FB14183960CB38025699100507D94/
+http://www.gurteen.com/gurteen/gurteen.nsf/id/X00091FC2/
+http://www.gurtler.net/2005/01/big-brother-watching-students-eat.html
+http://www.guru3d.com/article/network/119/6/
+http://www.gurusoftware.com/GuruNet/InternetTechnology.htm
+http://www.gurusoftware.com/GuruNet/Personal/Secret.htm
+http://www.gurusoftware.com/GuruNet/Personal/Topics/Energy.htm
+http://www.gurusoftware.com/GuruNet/Personal/Topics/Process.htm
+http://www.gurusoftware.com/GuruNet/Personal/Topics/Silent.htm
+http://www.gusbooks.com/sfhard1.html
+http://www.gusplc.com/gus/news/gusarchive/gus2004/2004-01-14/
+http://www.gutenberg.org/browse/authors/b
+http://www.gutenberg.org/browse/authors/f
+http://www.gutenberg.org/browse/authors/l
+http://www.gutenberg.org/dirs/1/4/5/6/14562/14562-h/14562-h.htm
+http://www.gutenberg.org/newsletter/features/index.php?article=poe.html
+http://www.guthwulf.com/toys/spawn/alientoys.html
+http://www.guttmacher.org/pubs/journals/2910603.html
+http://www.guttmacher.org/pubs/journals/gr030108.html
+http://www.guttmacher.org/pubs/tgr/05/3/gr050301.html
+http://www.guu.co.uk/debguide.htm
+http://www.guyanajournal.com/charlie.html
+http://www.guyanajournal.com/where_mutton.html
+http://www.guybuys.com/2117730.html
+http://www.guyfinley.com/Key_Lessons/Expanded_Lessons/Further_Understanding/1798/?q=depression&ps=100&print=1
+http://www.gvep.org/section/recentactivities/
+http://www.gvhabitue.com/
+http://www.gvshp.org/fwvlpcsub904.html
+http://www.gw.govt.nz/story6446.cfm
+http://www.gwaliorworld.com/ArticleView.asp?article_id=18
+http://www.gwbc.com/
+http://www.gwcadopt.org/news_display.php?id=16
+http://www.gwentprobation.gov.uk/about/about_pir.html
+http://www.gwhatchet.com/news/2004/10/28/MetroNews/Waiting.In.Line.Is.Now.An.Hourly.Job-784466.shtml
+http://www.gwhatchet.com/news/2005/05/23/CampusNews/PartTime.Faculty.Union.To.Go.Forward.Pending.Certification-953565.shtml
+http://www.gwhealthpolicy.org/newsps/Home/intro.html
+http://www.gwhealthpolicy.org/newsps/SCHIP/intro_ex_sum.htm
+http://www.gwiep.net/books/bp08.htm
+http://www.gwiep.net/books/gwm12.htm
+http://www.gwla.org/governance/digitalref.htm
+http://www.gwla.org/governance/digitalrefpf.htm
+http://www.gwmicro.com/wemanual/section6_6.htm
+http://www.gwpca.org/sections_committees/Committees/commain.htm
+http://www.gwpda.org/naval/bcs002.htm
+http://www.gwpda.org/naval/rnoilnts.htm
+http://www.gwsae.org/executiveupdate/2005/January/actively.htm
+http://www.gwsafrica.org/knowledge/ap1.html
+http://www.gwu.edu/~erpapers/documents/articles/favorsmith.html
+http://www.gwu.edu/~gwpres/speeches_senate_sept04.html
+http://www.gwu.edu/~nsarchiv/NSAEBB/NSAEBB142/
+http://www.gwu.edu/~nsarchiv/NSAEBB/NSAEBB42/
+http://www.gwu.edu/~nsarchiv/NSAEBB/NSAEBB58/
+http://www.gwu.edu/~nsarchiv/NSAEBB/NSAEBB7/nsaebb7.htm
+http://www.gwu.edu/~nsarchiv/NSAEBB/NSAEBB82/
+http://www.gwu.edu/~nsarchiv/NSAEBB/NSAEBB82/press.htm
+http://www.gwu.edu/~nsarchiv/news/19991105/13jun89.htm
+http://www.gwu.edu/~nsarchiv/news/20050310/
+http://www.gwu.edu/~nsarchiv/news/20050510/
+http://www.gwu.edu/~nsarchiv/nsa/publications/nh/
+http://www.gwumc.edu/sphhs/healthpolicy/chsrp/newsps/Home/intro.html
+http://www.gwworx.com/aff/products/cb/indexm0.html
+http://www.gwyneddfriends.org/jenkinschapter10.htm
+http://www.gwyneddfriends.org/jenkinschapter9.htm
+http://www.gyford.com/phil/writing/2004/07/09/what_webloggers_.php
+http://www.gyford.com/phil/writing/2004/08/25/seeing_the_light.php
+http://www.gymboree.ch/play.html
+http://www.gymuser.co.uk/regions/scotland/health-clubs-in-quarter.htm
+http://www.gymuser.co.uk/regions/south-east/health-clubs-in-oxford.htm
+http://www.gypsymoth.ento.vt.edu/~sharov/biosem/geninfo.html
+http://www.gyrodynehelicopters.com/seaman_cindy.htm
+http://www.h-net.org/reviews/showrev.cgi?path=182101087482516
+http://www.h-net.org/reviews/showrev.cgi?path=191131055743941
+http://www.h-net.org/reviews/showrev.cgi?path=275411024069377
+http://www.h-net.org/~german/gtext/nazi/wanneng2.html
+http://www.h-net.org/~habsweb/sourcetexts/serbs1.htm
+http://www.h-u-m.net/
+http://www.h-w-k.de/english/ginneken.htm
+http://www.h1base.com/page.asp?id=326
+http://www.h2om.com/course.htm
+http://www.haaretzdaily.com/hasen/spages/529898.html
+http://www.haas.berkeley.edu/groups/newspubs/haasnews/archives/hn062303.html
+http://www.hab.gov.hk/en/policy_responsibilities/others/gambling.htm
+http://www.habd.org/Social%20Services3.htm
+http://www.habitat.org/hw/feb_march04/feature6.html
+http://www.habonimdror.org/news/btnua/feb2000/activism.htm
+http://www.habraken.com/john/annotate.htm
+http://www.habtheory.com/1/106.php
+http://www.habtoor.com/thinkingclearly/html/issue33.htm
+http://www.hackaday.com/entry/1234000213034956/
+http://www.hackcanada.com/canadian/phreaking/bcps2.html
+http://www.hackcanada.com/ice3/wetware/ratbot_ethics.html
+http://www.hackingnetflix.com/netflix/2004/11/netflix_collect.html
+http://www.hackingnetflix.com/netflix/2005/01/taxing_problem_.html
+http://www.hackingnetflix.com/netflix/2005/02/blockbuster_sup.html
+http://www.hacknot.info/hacknot/action/showEntry?eid=50
+http://www.hackwriters.com/lostcity.htm
+http://www.hada.com/Default.aspx?tabid=46
+http://www.haemibalgassi.com/advice.html
+http://www.haemo-sol.com/faq.html
+http://www.haemofili-advokat.com/media.htm
+http://www.hafftka.com/hunter/
+http://www.hafresno.org/default_sub.asp?page=faq_hcv_evictions
+http://www.hagangroup.com/acepfaqs.asp
+http://www.hahc.org.uk/sltt/SLTT2003-4a.htm
+http://www.hain.org/Ha/haonline2004/Jun2004.htm
+http://www.hair-styles.org/are-salon-products-better.html
+http://www.hairboutique.com/
+http://www.hairboutique.com/snippits/snippits2000.htm
+http://www.hairboutique.com/tips/productreviews.htm
+http://www.hairboutique.com/tips/tip095.htm
+http://www.hairboutique.com/tips/tip10017.htm
+http://www.hairboutique.com/tips/tip1051.htm
+http://www.hairboutique.com/tips/tip1141.htm
+http://www.hairboutique.com/tips/tip1144.htm
+http://www.hairboutique.com/tips/tip826.htm
+http://www.hairboutique.com/tips/tip967.htm
+http://www.hairboutique.com/tips/tips.htm
+http://www.hairlossadvisor.com/webcast_transcript.asp?f=hairloss&c=hairloss_medaction&b=hairlossadvisor
+http://www.haithindustrial.co.uk/index.php?sec=term
+http://www.haiti-info.com/article.php3?id_article=194
+http://www.haiti.org/business&opportunity/bus_guide_investing.htm
+http://www.haitiglobalvillage.com/sd-sd-navmaps/Solidarity%20House.htm
+http://www.haitisurf.com/forums/viewtopic.php?t=1729
+http://www.haiweb.org/medicineprices/faq.html
+http://www.haleproducts.com/customerservice/faq/
+http://www.halexandria.org/dward496.htm
+http://www.halfbakery.com/idea/Big_20Guns
+http://www.halfbakery.com/idea/Celebrity_20Name_20Tag
+http://www.halfbakery.com/idea/Hair_20Whippersnapper
+http://www.halfbakery.com/idea/The_20Euro_20is_20dead
+http://www.halfbakery.com/idea/The_20Evening_20Calculator
+http://www.halfbakery.com/idea/The_20Hundred_20Thousand_20Gallon_20Restaurant
+http://www.halhigdon.com/
+http://www.halhigdon.com/beginningskier/turning.htm
+http://www.halifaxinitiative.org/index.php/Resources_Glossary
+http://www.hallert.net/misc/tankcam/tankcam.html
+http://www.hallgold.com/Neways_training_aspartame2.htm
+http://www.hallgold.com/ailments_aspartame.htm
+http://www.hallofflame.org/KresekReport.htm
+http://www.halloweenishere.com/ghost_stories.html
+http://www.hallrender.com/health_care/health_economics_01.html
+http://www.halobabies.net/archive/04/10/11/monday_fan_art_features/
+http://www.halogensoftware.com/news/May26th2005.php
+http://www.halplotkin.com/cnbcs136.htm
+http://www.halsguide.com/bobm1.html
+http://www.haltabuse.org/help/header.shtml
+http://www.haltonsearch.com/hr/ob/story/2581858p-2993607c.html
+http://www.hamiltoncountyauditor.org/news_dog_article1.asp
+http://www.hamiltonlabels.co.uk/
+http://www.hamline.edu/law/adr/study_abroad/paris_budapest_program_-_courses_and_teachers.html
+http://www.hammerandco.com/publications-agenda-ch2.asp
+http://www.hammerwood.mistral.co.uk/otherbb.htm
+http://www.hammerzone.com/archives/exterior/trim/water_table/pvc.htm
+http://www.hammockcamping.com/Free%20Reports/PeaPod03.htm
+http://www.hampshireprobate.com/common_legal_terms.htm
+http://www.hampton-smith.com/portfolio.html
+http://www.hampton.lib.nh.us/hampton/history/pamphlets/16381888.htm
+http://www.hamptonva.biz/welcome_region.html
+http://www.hancockshakervillage.org/about/employment_and_volunteering.html
+http://www.handbag.com/beauty/skincare/recovery2/
+http://www.handballcity.com/news07122003to04062003.htm
+http://www.handbook.uts.edu.au/law/ug/c10139.html
+http://www.handbook.uts.edu.au/sci/ug/c10174.html
+http://www.handbook.uts.edu.au/sci/ug/c10184.html
+http://www.handgunrepairshop.com/
+http://www.handlebarclub.org.uk/garyspagef.htm
+http://www.handmade4baby.com/
+http://www.handonline.org/parents/
+http://www.handpapermaking.org/BackIssues.html
+http://www.handprint.com/HP/WCL/pigmt2.html
+http://www.handsoffvenezuela.org/natfhe_support_bolivarian_revolution.htm
+http://www.handsoffvenezuela.org/venepal_workers_control.htm
+http://www.handsonenglish.com/
+http://www.handsonnetwork.org/etc/newsletters/200401/news.html
+http://www.handtops.com/show/news/78
+http://www.handweaving.net/ProductDetails.aspx?SKU=5
+http://www.handyarchive.com/free/economic/
+http://www.handymanwire.com/questions/heatingq.html
+http://www.handymate.co.uk/
+http://www.hanen.org/Hanen2002/pages/LearningResourceCentre/BooksVideosAndOtherMaterials/BooksVideosAndOtherMaterials.htm
+http://www.hangtide.com/poetry/066/
+http://www.hanitzotz.com/challenge/76/sowing.htm
+http://www.hanitzotz.com/challenge/83/michal-wall-jm2.htm
+http://www.hankermetal.com/int-ss.htm
+http://www.hankermetal.com/lyriow.htm
+http://www.hankermetal.com/lyriowr.htm
+http://www.hannabery.com/equipment.shtml
+http://www.hannabery.com/products.shtml
+http://www.hannabery.com/spotlightC.shtml
+http://www.hanoverparkillinois.org/ReferenceDesk/PressReleases.htm
+http://www.hanoverparkillinois.org/Services/CommunityDevelopment/GuidesAndPublications/GuideForNewBusinesses.htm
+http://www.hansenonline.net/Networking/bind-spam.html
+http://www.hants.gov.uk/regulatory/busadvice/fish.html
+http://www.hants.gov.uk/regulatory/busadvice/gavew.html
+http://www.hants.gov.uk/regulatory/busadvice/gavew2.html
+http://www.hants.gov.uk/socservs/directpayments/direct113.html
+http://www.hanzismatter.com/
+http://www.happen.ca/terms.html
+http://www.happeningpeople.com/newsletters/newsletter.asp
+http://www.happinessclub.com/FairfieldCitizen/060904.htm
+http://www.happinessonline.org/BeTemperate/
+http://www.happy.co.uk/abouthappy/mediaFT.asp
+http://www.happycampnews.com/
+http://www.happychild.org.uk/nvs/appeals/africa/sle1059.htm
+http://www.happychild.org.uk/translate/english/
+http://www.happydaycards.com/ww/recipeindex.html
+http://www.happyfamilies.com/familypages.html
+http://www.happyhealthypregnancy.com/info/sjmj/index.aspx
+http://www.happypawsdaycare.com/id1.html
+http://www.happyscrappy.com/
+http://www.harborfreight.com/cpi/t/h.taf?acct=2002898&email=&c=1
+http://www.harbour.sfu.ca/freda/reports/mpol10.htm
+http://www.harbour.sfu.ca/~hayward/van/lyrics/days.html
+http://www.harbus.org/news/2003/04/28/Ae/A.Minute.With.Steven.T.Florio-427580.shtml
+http://www.harchester.net/episodes/episodes.php?season=8&episode=335
+http://www.harchester.net/interviews/dt7-interviews.php?interview=7
+http://www.harcourtbooks.com/bookcatalogs/bookpage.asp?isbn=0156030101&option=excerpt
+http://www.hardballtimes.com/main/article/a-world-of-pain/
+http://www.hardballtimes.com/main/article/defensive-regression-analysis-complete-series/
+http://www.hardballtimes.com/main/article/nnq-18august04/
+http://www.hardballtimes.com/main/article/ten-things-i-didnt-know-last-week10/
+http://www.hardgainers-home-gym.com/exer_text/video.htm
+http://www.hardhats.org/history/hardhats.html
+http://www.hardnewscafe.usu.edu/artlife/features/053105_hickman.html
+http://www.hardocp.com/
+http://www.hardwareanalysis.com/content/topic/38863/
+http://www.hardwarecentral.com/hardwarecentral/reviews/4722/1
+http://www.hardwicke.co.uk/housing/articles/01120103.htm
+http://www.hardwicke.co.uk/pi/caselaw/
+http://www.haringkids.com/book/randb/contest/highschool3.htm
+http://www.haringkids.com/lessons/envs/live/htdocs/lesson115.htm
+http://www.harithehadron.blogspot.com/
+http://www.harktheherald.com/index.php
+http://www.harlemlive.org/arts-culture/music/subwaydrumer/
+http://www.harley.com/art/abstract-art/
+http://www.harmonicacountry.com/cowboy/westerns/Pony/Pony1.html
+http://www.harmonicinc.com/ah_investor_relations.cfm
+http://www.harmonicinc.com/gs_techsupport_spr-form.cfm
+http://www.harmonybakery.com/music.html
+http://www.harmreduction.org/idu/chapter2.html
+http://www.haroldpinter.org/acting/acting_forstage.shtml
+http://www.harpanddragon.com/designbooks.htm
+http://www.harperacademic.com/catalog/excerpt_xml.asp?isbn=0380804891
+http://www.harperacademic.com/catalog/instructors_guide_xml.asp?isbn=0060936843
+http://www.harperchildrens.com/catalog/excerpt_xml.asp?isbn=0064400972
+http://www.harpercollins.com.au/title.cfm?ISBN=0007157215&Author=0000000
+http://www.harpercollins.com.au/title.cfm?ISBN=0007157304&Author=0000000
+http://www.harpercollins.com.au/title.cfm?ISBN=0007195222&Author=0000000
+http://www.harpercollins.com/authorevents.asp?ACT=AuthorEvents&EAuthorID=19638
+http://www.harpercollins.com/authorevents.asp?ACT=DisplayType&EventType=BOOKSTORE&EChannel=&EImprint=&EAuthorID=
+http://www.harpercollins.com/authorevents.asp?ACT=DisplayType&EventType=BOOKSTORE&EChannel=History&EImprint=&EAuthorID=
+http://www.harpercollins.com/authorevents.asp?ACT=DisplayType&EventType=EVENT&EChannel=&EImprint=William%20Morrow&EAuthorID=
+http://www.harpercollins.com/authorevents.asp?ACT=DisplayType&EventType=EVENT&EChannel=History&EImprint=&EAuthorID=
+http://www.harpercollins.com/channels.asp?channel=History&section=events
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060092661&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060280921&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060516925&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060528885&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060541644
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060541644&tc=bd
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060543140&tc=ai
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060567031
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060567031&tc=ae
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060580852&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060586370&tc=rg
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060594071&tc=ai
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060594179&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060596376&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060675209&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060721480&tc=ae
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060821655&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060934646&tc=ae
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=006093834X&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0060989033
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0061042935&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0064401146&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0064407330&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0066214130&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0380791234&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0380797631&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0380815370&tc=rg
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0688176941&tc=ai
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0688177824&tc=cx
+http://www.harpercollins.com/global_scripts/product_catalog/book_xml.asp?isbn=0887306152&tc=cx
+http://www.harpercollins.com/imprints.asp?imprint=William%20Morrow&section=events
+http://www.harpercollins.com/rd_om/bbn-0404/book/0060521538
+http://www.harpercollins.com/rd_om/bbn-0404/excerpt/0060578718
+http://www.harperimage.com/anilox-specs-line.asp
+http://www.harpers.org/2004-01-WeComeInPeace.html
+http://www.harpers.org/Business.html
+http://www.harpers.org/Education.html
+http://www.harpers.org/Entertainer.html
+http://www.harpers.org/Folly.html
+http://www.harpers.org/GoodEnoughForWashington.html
+http://www.harpers.org/Holiday.html
+http://www.harpers.org/Oil.html
+http://www.harpers.org/Poverty.html
+http://www.harpers.org/SeizingArabOil.html
+http://www.harpers.org/SoldiersOfChrist.html
+http://www.harpers.org/TheApocalypseWillBeTelevised.html
+http://www.harpers.org/TheColumnsOfLiberty.html
+http://www.harpers.org/TheOilWeEat.html
+http://www.harpers.org/War.html
+http://www.harpsociety.org/handbook/publicity.html
+http://www.harpsonline.org/rescues.htm
+http://www.harriman-house.com/backoffice/
+http://www.harrimanarts.org/0506descriptions.htm
+http://www.harrisinteractive.com/harris_poll/index.asp?PID=304
+http://www.harrisinteractive.com/harris_poll/index.asp?PID=339
+http://www.harrisinteractive.com/harris_poll/index.asp?PID=417
+http://www.harrisinteractive.com/harris_poll/index.asp?PID=454
+http://www.harrisinteractive.com/harris_poll/index.asp?PID=486
+http://www.harrisinteractive.com/harris_poll/index.asp?PID=533
+http://www.harrisinteractive.com/news/allnewsbydate.asp?NewsID=304
+http://www.harrisinteractive.com/news/allnewsbydate.asp?NewsID=338
+http://www.harrisinteractive.com/news/allnewsbydate.asp?NewsID=384
+http://www.harrisinteractive.com/news/allnewsbydate.asp?NewsID=455
+http://www.harrisinteractive.com/news/allnewsbydate.asp?NewsID=485
+http://www.harrisinteractive.com/news/allnewsbydate.asp?NewsID=757
+http://www.harrisinteractive.com/news/allnewsbydate.asp?NewsID=820
+http://www.harrisinteractive.com/news/allnewsbydate.asp?NewsID=837
+http://www.harrisoncountyia.org/assessor/
+http://www.harrisoncsd.org/lmk/student.htm
+http://www.harrybrowne.org/articles/EconomicGrowth.htm
+http://www.harrymccracken.com/blog/
+http://www.harryrinker.com/col-933.html
+http://www.hartford-hwp.com/archives/26/016.html
+http://www.hartford-hwp.com/archives/26/055.html
+http://www.hartford-hwp.com/archives/28/007.html
+http://www.hartford-hwp.com/archives/29/033.html
+http://www.hartford-hwp.com/archives/30/165.html
+http://www.hartford-hwp.com/archives/36/424.html
+http://www.hartford-hwp.com/archives/37a/105.html
+http://www.hartford-hwp.com/archives/40/068.html
+http://www.hartford-hwp.com/archives/45a/004.html
+http://www.hartford-hwp.com/archives/45a/525.html
+http://www.hartford-hwp.com/archives/45a/563.html
+http://www.hartfordchurchdetroit.org/html/who/pastor.html
+http://www.hartfordmarathon.com/
+http://www.hartman-group.com/products/HB/2004_12_23.html
+http://www.hartpub.co.uk/style.html
+http://www.harunyahya.com/solutions01.php
+http://www.haruth.com/Jhumor41.htm
+http://www.harvard-magazine.com/issues/ma00/rightnow.html
+http://www.harvard-magazine.com/issues/mj99/damnd.html
+http://www.harvard-magazine.com/on-line/050465.html
+http://www.harvard-magazine.com/on-line/070474.html
+http://www.harvardlawreview.org/issues/112/7_1610.htm
+http://www.harvardmagazine.com/features/march15-remarks.html
+http://www.harvardmagazine.com/on-line/010452.html
+http://www.harvardmagazine.com/on-line/030597.html
+http://www.harvardmagazine.com/on-line/070281.html
+http://www.harvardmagazine.com/on-line/090453.html
+http://www.harvardsquarelibrary.org/unitarians/whitney.html
+http://www.harvardwestlake.com/students/studyskills/chapter2.html
+http://www.harvardwestlake.com/students/studyskills/chapter4.html
+http://www.harvestfields.ca/ebook/01/037/03.htm
+http://www.harvestfields.netfirms.com/Tea/01tb/017.htm
+http://www.harvestmoonbrewery.com/index.php/pg=brew/menu.html
+http://www.harvestmooncampaign.com/classes/technomagus.htm
+http://www.harveyind.com/homeowner/windows_doors/glossary.asp
+http://www.has-scotland.co.uk/TeachersPensions.htm
+http://www.hasbara.us/Gerald_A.htm
+http://www.hasbro.com/mylittlepony/pl/page.party_fun/dn/default.cfm
+http://www.hasbro.com/pl/page.game_and_toy_instructions/letter.P/dn/default.cfm
+http://www.hasbrouck-heights.nj.us/
+http://www.hasbrouck.org/draft/health.html
+http://www.hashai.com/blog/
+http://www.hashemian.com/
+http://www.haskell.org/tutorial/functions.html
+http://www.hasslberger.com/
+http://www.hasslberger.com/phy/phy.htm
+http://www.hastings-i.org/arch/artman/publish/cat_index_29.shtml
+http://www.hastingslegal.co.uk/Houses/754.htm
+http://www.hat.net/gadgets/audio_and_video.headphones.enclosed_headphones/shure_e5c_sound_isolating_earphones/
+http://www.hat.net/gadgets/audio_and_video.headphones.wireless_headphones/sennheiser_ba151_rechargeable_battery_for_sennheis/
+http://www.hat.net/pop/books.scary/lord_of_the_flies/
+http://www.hattrickpoli.com/cup/
+http://www.hattrickpoli.com/cup/default.asp?action=home
+http://www.hauntedchambers.net/rules.html
+http://www.hauntedhouse.com/submit/suggest.html
+http://www.hauntedink.com/25/definition.html
+http://www.havant.gov.uk/havant-4134
+http://www.have-a-heart.com/bipolar-depression.html
+http://www.havenworks.com/election/2002/
+http://www.haverford.edu/publications/fall97/campaignfinance.html
+http://www.hawaii-realty.com/free-real-estate-reports/8.htm
+http://www.hawaii-relocation.com/
+http://www.hawaii.edu/mauispeech/html/infotopichelp.html
+http://www.hawaii.gov/dbedt/ert/activitybook/cleanfuels.html
+http://www.hawaii.gov/gov/Members/candice/governor-newsletter/Newsletter.2004-12-03
+http://www.hawaiibusiness.cc/hb112002/default.cfm?articleid=19
+http://www.hawaiibusiness.cc/hb92004/default.cfm?articleid=13
+http://www.hawaiifive0.org/links.shtml
+http://www.hawaiiholidays.com/oahu.htm
+http://www.hawaiiplants.com/news.htm
+http://www.hawkesbury.sydneywideconferences.com.au/
+http://www.hawking.org.uk/lectures/warps2.html
+http://www.hawking.org.uk/text/public/warps.html
+http://www.hawksheadshow.co.uk/horticulture.htm
+http://www.hawkslandinggolfclub.com/index.asp?menuID=134
+http://www.haworth-village.org.uk/walks/scarborough/scarborough.asp
+http://www.haworth-village.org.uk/walks/straw-race/straw-race.asp
+http://www.haworthpress.com/store/E-Text/View_EText.asp?a=3&fn=J026v15n04_06&i=4&s=J026&v=15
+http://www.haworthpress.com/store/Toc_views.asp?TOCName=J001v18n01_TOC&desc=Volume%3A%2018%20Issue%3A%201
+http://www.haworthpress.com/store/product.asp?sku=4987
+http://www.hawspets.org/
+http://www.hay-on-wye.co.uk/yorkhouse/
+http://www.haygrove.somerset.sch.uk/data/Curriculum/GCSE_choice1.htm
+http://www.haywardgardens.com/garden.html
+http://www.haywoodhall.org/events/pol_guide.html
+http://www.hazards.org/deadlybusiness/careless.htm
+http://www.hazards.org/diyresearch/
+http://www.hazards.org/news/08jan05.htm
+http://www.hazards.org/rehab/
+http://www.hazards.org/sickness/
+http://www.hba.org.my/news/2004/904/government_servants.htm
+http://www.hbamahoningvalley.com/HBAMembershipFolder/hbamvapprovedpolicies.htm
+http://www.hbc.com/hbcheritage/history/people/builders/simpson.asp
+http://www.hbc.com/hbcheritage/learning/bibliography/
+http://www.hbci.com/~wenonah/new/hsense.htm
+http://www.hbcunetwork.com/modules/Networking/ginascorner/
+http://www.hbd.com/disclaimer.php
+http://www.hbds.co.za/info.asp
+http://www.hbe.co.uk/tolet.htm
+http://www.hbees.com/heretcdeephe.html
+http://www.hbg.psu.edu/LearningCenter/staff/employment.html
+http://www.hbns.org/news/income11-12-02.cfm
+http://www.hbo.com/billmaher/new_rules/
+http://www.hbo.com/films/laramie/
+http://www.hbo.com/sixfeetunder/episode/season4/episode42.shtml
+http://www.hbo.com/sixfeetunder/episode/season4/episode47.shtml
+http://www.hbo.com/thewire/behindthescenes/murderers_row.shtml
+http://www.hbofanclub.com/
+http://www.hbosplc.com/abouthbos/History/BoS%20Tree/Thistle_Bank.asp
+http://www.hbosplc.com/economy/scottisheconomicindex.asp
+http://www.hbs.edu/about/news/030603_erc.html
+http://www.hbs.edu/mba/recruiting/calendar.html
+http://www.hbschool.com/newsbreak/wales.html
+http://www.hc-sc.gc.ca/english/media/releases/2002/2002_51.htm
+http://www.hc-sc.gc.ca/english/media/releases/2003/2003_68.htm
+http://www.hc-sc.gc.ca/english/media/releases/2003/2003_71.htm
+http://www.hc-sc.gc.ca/english/protection/warnings/sars/learning/reports/naylor_ocoth_recommendations.html
+http://www.hc-sc.gc.ca/fnihb-dgspni/fnihb/nihb/pharmacy/bulletin/november2002.htm
+http://www.hc-sc.gc.ca/hecs-sesc/tobacco/council/advisorycouncil_meeting_2.html
+http://www.hc-sc.gc.ca/hecs-sesc/water/factsheets/blue_green_algae.htm
+http://www.hc-sc.gc.ca/hpfb-dgpsa/inspectorate/stand_operat_pro_det_equi_e.html
+http://www.hc-sc.gc.ca/hpfb-dgpsa/nhpd-dpsn/exploration_botanical_07_e.html
+http://www.hc-sc.gc.ca/hpfb-dgpsa/onpp-bppn/fptgn_e.html
+http://www.hc-sc.gc.ca/hppb/healthcare/pubs/selfcare/ch2-2en.htm
+http://www.hc-sc.gc.ca/iacb-dgiac/arad-draa/english/rmdd/bulletin/microbial.html
+http://www.hca.heacademy.ac.uk/history/index.php?section=history
+http://www.hca.heacademy.ac.uk/resources/disability/index.php
+http://www.hca2005.com/Life+_+Work/Biography/Short+Biography
+http://www.hcbible.org/
+http://www.hcc.hawaii.edu/~pine/Phil100/essay3-s-02.html
+http://www.hccentral.com/birkey1/mismod1.html
+http://www.hccentral.com/fdoct.html
+http://www.hcch.net/index_en.php?act=conventions.text&cid=69
+http://www.hccu.com.au/newsletter/default.php
+http://www.hcd.man.ac.uk/content/PubDetails/14629/
+http://www.hcea.org/issuespressbox_practices.html
+http://www.hcfo.net/topic0604.htm
+http://www.hcfo.net/topic0704.htm
+http://www.hcilondon.net/cgi-bin/printnews.pl?NewsCode=1047
+http://www.hcn.org/servlets/hcn.Article?article_id=2692
+http://www.hcourt.gov.au/publications_05.html
+http://www.hcourt.gov.au/speeches/kirbyj/kirbyj_deakin2.htm
+http://www.hcourt.gov.au/speeches/kirbyj/kirbyj_evattexhibition.htm
+http://www.hcourt.gov.au/speeches/kirbyj/kirbyj_genetics.htm
+http://www.hcourt.gov.au/speeches/kirbyj/kirbyj_inaugural.htm
+http://www.hcp.med.harvard.edu/research/quality/
+http://www.hcqualitycommission.gov/cborr/chap2.html
+http://www.hcqualitycommission.gov/cborr/exsumm.html
+http://www.hcqualitycommission.gov/meetings/mar12/discuss.html
+http://www.hcstarck.com/index.php?page_id=320
+http://www.hda.nhs.uk/html/resources/cancer_prevention/chapter8_e.html
+http://www.hda.org.uk/research/rs022.html
+http://www.hdb.gov.sg/isoa020p.nsf/0/6cfd00832cf8266d4825693f00292207?OpenDocument
+http://www.hdc.org/%20testimonyjuly13.htm
+http://www.hdinc.com/Reengineering/other_consult.html
+http://www.hdra.org.uk/publications/pubslist_compbooks.php
+http://www.hds.harvard.edu/news/article_archive/ground_zero.html
+http://www.hds.harvard.edu/prse/ndrs2004.html
+http://www.hds.org/hansonbook.html
+http://www.hdscotland.org/viewContent.php?id=99
+http://www.hdtvinfoport.com/About-HDTV-InfoPort.html
+http://www.hdtvpub.com/articles/whatisdtv/displaytypes.cfm
+http://www.hea.ie/index.cfm/page/sub/id/501
+http://www.hea.ie/index.cfm/page/sub/id/502
+http://www.head-cleaners.com/guilt.htm
+http://www.head-cleaners.com/guiltquilt.html
+http://www.headheritage.co.uk/uknow/features/index.php?id=25
+http://www.headheritage.co.uk/unsung/albumofthemonth/359
+http://www.headinjury.com/doctors.htm
+http://www.headinjuryonline.com/legal_pages/commitment.html
+http://www.headlinehistory.co.uk/teachers.htm
+http://www.headsetzone.com/ergonomics.html
+http://www.headwatersnews.org/p.091802.html
+http://www.headway.org.uk/default.asp?step=4&pid=41
+http://www.headwayireland.ie/about.abi.item.asp?id=6
+http://www.healer.ch/success.html
+http://www.healing-arts.org/mehl-madrona/mmtraditionalpaper.htm
+http://www.healingcrow.com/antibiotics/antibiotics.html
+http://www.healingdaily.com/colon-kidney-detoxification.htm
+http://www.healingheart.ltd.uk/faqs1.htm
+http://www.healingpeople.com/ht/index.php?option=content&task=view&id=56&Itemid=152
+http://www.healingwell.com/library/alzheimers/knox1.asp
+http://www.healingyourchild.com/
+http://www.healpastlives.com/future/rule/rucelmem.htm
+http://www.healpastlives.com/pastlf/exercise/explvows.htm
+http://www.healpastlives.com/pastlf/food/fdpain.htm
+http://www.healternatives.com/2004shows.htm
+http://www.health-heart.org/vitamins.htm
+http://www.health-marketplace.com/article-hair-regrowth.htm
+http://www.health-report.co.uk/aspartame-ailments.html
+http://www.health.adelaide.edu.au/info/bhs/current/enrol.html
+http://www.health.family.org/babies/articles/
+http://www.health.gov.au/internet/wcms/publishing.nsf/Content/ageing-manuals-dam-contents-5classi10.htm
+http://www.health.gov.au/internet/wcms/publishing.nsf/Content/health-archive-mediarel-1996-rwcordbl.htm
+http://www.health.gov.au/internet/wcms/publishing.nsf/Content/health-archive-mediarel-1998-mwsp980610.htm
+http://www.health.gov.au/internet/wcms/publishing.nsf/Content/health-mediarel-yr2004-ta-abb187.htm
+http://www.health.gov.au/nhmrc/publications/humans/preamble.htm
+http://www.health.gov.on.ca/english/providers/program/emu/pan_flu/ohpip/op_sub.html
+http://www.health.gov.on.ca/english/providers/program/mas/reviews/review_evar_0302.html
+http://www.health.gov.on.ca/english/providers/program/mas/reviews/review_vac_1204.html
+http://www.health.gov.on.ca/english/public/program/ltc/11_community.html
+http://www.health.gov.on.ca/english/public/pub/foodsafe/foodhandl.html
+http://www.health.gov.sk.ca/ps_coverage_opoc.html
+http://www.health.harvard.edu/fhg/Harchive/healthy.1100.shtml
+http://www.health.harvard.edu/newsweek/C-Reactive_Protein_test_to_screen_for_heart_disease.htm
+http://www.health.ie/
+http://www.health.net/corp_terms_of_use.asp
+http://www.health.net/disclaimer/
+http://www.health.nsw.gov.au/fcsd/rmc/cib/circulars/archive/index82.html
+http://www.health.nsw.gov.au/public-health/chorep/com/com_syphilisnot_ahs.htm
+http://www.health.ri.gov/publications/phb_8105.php
+http://www.health.sa.gov.au/hsfinder/LinkClick.aspx?link=HSFKeywordList.txt&mid=364
+http://www.health.sa.gov.au/pregnancy/DesktopDefault.aspx?tabid=181
+http://www.health.state.mn.us/divs/chs/mumar03.htm?page=5
+http://www.health.state.mn.us/divs/hpcd/chp/hpkit/text/phase4.htm
+http://www.health.state.ny.us/nysdoh/chplus/disclaim.htm
+http://www.health.state.ny.us/nysdoh/fhplus/disclaim.htm
+http://www.health.state.ny.us/nysdoh/hcra/cash_assess/crinstr.htm
+http://www.health.state.ny.us/nysdoh/lcanal/402news.htm
+http://www.health.state.ny.us/nysdoh/lcanal/902news.htm
+http://www.health.state.ny.us/nysdoh/westnile/final/c3/c3summry.htm
+http://www.health.state.ny.us/press/releases/2000/westnile9.htm
+http://www.health.state.ok.us/program/Injury/okface/Combine.htm
+http://www.health.vic.gov.au/maternity/yourpregnancy/earlydays.htm
+http://www.health.vic.gov.au/privatehospitals/impact/3.htm
+http://www.health24.com/Man/General/748-771,13591.asp
+http://www.health24.com/Man/Work/748-764,14285.asp
+http://www.health24.com/Woman/Common_conditions/711-712,18125.asp
+http://www.health24.com/Woman/Health_by_numbers/711-716,24378.asp
+http://www.health24.com/Woman/Special_events/711-729,20083.asp
+http://www.health24.com/fitness/Getting_started/16-474-486,11382.asp
+http://www.health24.com/man/general/748-771,13591.asp
+http://www.health24.com/medical/Condition_centres/777-792-814-1762,23100.asp
+http://www.health24.com/sex/Dating/1253-1255-1256,13360.asp
+http://www.healthaffairs.org/press/septoct0406.htm
+http://www.healthandage.com/Home/118!gm=1!gid2=1333
+http://www.healthandage.com/Home/122!gid2=2415
+http://www.healthandage.com/Home/130!gid2=2153
+http://www.healthandage.com/Home/832!gm=6!gid1=5203
+http://www.healthandage.com/Home/gc=40!l=2
+http://www.healthandage.com/Home/gc=40!l=2!gid2=1174
+http://www.healthandage.com/Home/gid6=6602
+http://www.healthandage.com/Home/gid6=6602!gm=15
+http://www.healthandage.com/Home/gid6=6602!gm=24
+http://www.healthandage.com/Home/gm=0!gc=36!l=2!gid2=2931
+http://www.healthandage.com/Home/gm=0!gc=9!l=7
+http://www.healthandage.com/Home/gm=1!gid1=6875
+http://www.healthandage.com/Home/gm=2!gid2=2153
+http://www.healthandage.com/Home/gm=20!gid2=2073
+http://www.healthandage.com/Home/gm=20!gid2=2128
+http://www.healthandage.com/PHome/gm=0!gc=36!l=1!gid1=5189
+http://www.healthandage.com/html/res/primer/primer3.htm
+http://www.healthandsafetyzone.com/shewebwatch.nsf/ArticleListHTML/18CA4635C2A22C4E80256D9B0046F4B7
+http://www.healthandwelfare.idaho.gov/
+http://www.healthassistancepartnership.org/site/PageServer?pagename=Preparingforhearings
+http://www.healthatoz.com/healthatoz/Atoz/dc/caz/bone/arth/artrheu.jsp
+http://www.healthatoz.com/healthatoz/Atoz/dc/caz/cosm/face/womturn.jsp
+http://www.healthatoz.com/healthatoz/Atoz/dc/cen/ment/sled/alert01042001.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/alcohol-related_neurologic_disease.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/anorexia_nervosa.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/endocarditis.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/exercise.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/liver_function_tests.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/lung_diseases_due_to_gas_or_chemical_exposure.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/minority_health.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/pseudomonas_infections.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/pulmonary_embolism.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/splenic_trauma.jsp
+http://www.healthatoz.com/healthatoz/Atoz/ency/warts.jsp
+http://www.healthatoz.com/healthatoz/Atoz/hc/chi/teen/alert09242003.jsp
+http://www.healthboards.com/boards/archive/index.php/t-69574.html
+http://www.healthbulletin.org/herbs/herbs13.htm
+http://www.healthbusinessuk.com/default.asp?id=111
+http://www.healthcare.ucla.edu/healthsciences/healthcare/ucla-medical/news/detail?rad_id=5876
+http://www.healthcare.uiowa.edu/InternalMedicine/Patients/bonemarrow/Patients/FAQ.htm
+http://www.healthcarereview.com/latest_news.php?show=109
+http://www.healthcarereview.com/latest_news.php?show=184
+http://www.healthcentral.com/bcp/main.asp?page=newsdetail&id=522192&ap=43&brand=16
+http://www.healthcentral.com/drdean/408/57662.html
+http://www.healthcentral.com/peoplespharmacy/pharmfulltext.cfm?ID=61022&storytype=PPherbdrug
+http://www.healthchoice.org.uk/codex/default.aspx
+http://www.healthcoalition.ca/relman.html
+http://www.healthcomplaints.act.gov.au/c/hcc?a=sendfile&ft=p&fid=1067564949&sid=
+http://www.healthcyclopedia.com/health-issues/body-image.html
+http://www.healthcyclopedia.com/health-products.html
+http://www.healthdefence.com/free_advice.html
+http://www.healthdevelopment.org/hphc/serabu.htm
+http://www.healthdiscovery.net/articles/accept_your_body.htm
+http://www.healthdiscovery.net/bootcamp/chat/chatwelcome.htm
+http://www.healthfulvalley.org/survey.html
+http://www.healthgrades.com/directory_search/Physician/Profiles/Cardiology/alpha19.cfm
+http://www.healthieryou.com/helpdep.html
+http://www.healthindustrycouncil.org/Task_Forces/
+http://www.healthinfonet.ecu.edu.au/html/html_health/specific_aspects/other_aspects/substance_use/alcohol_use1.htm
+http://www.healthinitiative.org/html/stoptb/
+http://www.healthinschools.org/focus/2002/no3.htm
+http://www.healthinschools.org/sh/influenza.asp
+http://www.healthinsite.gov.au/topics/Intellectual__Developmental_and_Learning_Disabilities
+http://www.healthinsite.gov.au/topics/Safe_Sex
+http://www.healthinsite.gov.au/topics/Self_Esteem_in_Childhood
+http://www.healthinsite.gov.au/topics/Young_People_and_Sex
+http://www.healthinsuranceindepth.com/other-self-employed-insurance.html
+http://www.healthlawyers.org/hlw/issues/030502/030502_01_top_01_oigcompguid.cfm
+http://www.healthlawyers.org/hlw/issues/030627/030627_13_reimburse_ibc.cfm
+http://www.healthleaders.com/magazine/feature1.php?contentid=36877
+http://www.healthleaders.com/magazine/feature1.php?contentid=39740
+http://www.healthleaders.com/magazine/roundtable1.php?contentid=35905&issueId=7
+http://www.healthleaders.com/news/archives.php?date=2004-5-25
+http://www.healthleaders.com/news/feature64106.html
+http://www.healthlibrary.com/news/2004/1-6-nov04/news18.html
+http://www.healthmatters.org.uk/stories/weeks.html
+http://www.healthmgttech.com/archives/h0103deadline.htm
+http://www.healthpolicycoach.org/doc.asp?id=3741
+http://www.healthrecipes.com/juice_fasting.htm
+http://www.healthscout.com/rxdetail/68/105/7/main.html
+http://www.healthsquare.com/fgwh/wh1ch07.htm
+http://www.healthsquare.com/mc/fgmc1531.htm
+http://www.healthstylesexercise.com/balance/Weeble-Board-Exercise.htm
+http://www.healthsystem.virginia.edu/UVAHealth/news_DiabetesHealth/0409dh.cfm
+http://www.healthsystem.virginia.edu/UVAHealth/peds_safety/mvseats.cfm
+http://www.healthsystem.virginia.edu/internet/infection-control/ICManual/icmEH&OH.cfm
+http://www.healthsystem.virginia.edu/internet/infection-control/ICManual/icmprinisolation.cfm
+http://www.healthsystem.virginia.edu/uvahealth/adult_breast/lymph.cfm
+http://www.healthsystem.virginia.edu/uvahealth/news_HeartCare/
+http://www.healthsystem.virginia.edu/uvahealth/peds_growth/encopres.cfm
+http://www.healthtogether.org/healthtogether/facingFear/about.html
+http://www.healthtouch.com/bin/EContent_HT/cnoteShowLfts.asp?fname=00412&title=ASTHMA+IN+CHILDREN+&cid=HTHLTH
+http://www.healthtouch.com/bin/EContent_HT/cnoteShowLfts.asp?fname=00412&title=ASTHMA+IN+CHILDREN+&cid=HTHLTH&print=yes
+http://www.healthtouch.com/bin/EContent_HT/cnoteShowLfts.asp?fname=02422&title=BULIMIA+NERVOSA+&cid=HTHLTH
+http://www.healthtouch.com/bin/EContent_HT/cnoteShowLfts.asp?fname=02422&title=BULIMIA+NERVOSA+&cid=HTHLTH&print=yes
+http://www.healthtouch.com/bin/EContent_HT/cnoteShowLfts.asp?fname=02432&title=DEATH+AND+DYING+&cid=HTHLTH
+http://www.healthtouch.com/bin/EContent_HT/cnoteShowLfts.asp?fname=02432&title=DEATH+AND+DYING+&cid=HTHLTH&print=yes
+http://www.healthtouch.com/bin/EContent_HT/cnoteShowLfts.asp?fname=02806&title=DIABETIC+FOOT+CARE+&cid=HTHLTH
+http://www.healthtouch.com/bin/EContent_HT/drugShowLfts.asp?fname=usp0682.htm&title=AlphaNine+SD&cid=HT
+http://www.healthtouch.com/bin/EContent_HT/drugShowLfts.asp?fname=usp0682.htm&title=Christmas+factor&cid=HT
+http://www.healthtouch.com/bin/EContent_HT/drugShowLfts.asp?fname=usp0682.htm&title=Immunine+VH&cid=HT
+http://www.healthtouch.com/bin/EContent_HT/drugShowLfts.asp?fname=usp0682.htm&title=Konyne+80&cid=HT
+http://www.healthtouch.com/bin/EContent_HT/drugShowLfts.asp?fname=usp0682.htm&title=Mononine&cid=HT
+http://www.healthunit.on.ca/faq/faq_parenting.html
+http://www.healthwatcher.net/Quackerywatch/
+http://www.healthwatcher.net/Quackerywatch/Quack-radio/
+http://www.healthworks.com.au/hw4u/2004-12dec.htm
+http://www.healthy.net/collinge/massage.htm
+http://www.healthy.net/scr/Column.asp?id=232
+http://www.healthy.net/scr/article.asp?ID=207
+http://www.healthy.net/scr/column.asp?ColumnId=12&ID=232
+http://www.healthyarkansas.com/services/westnilevirus_main.htm
+http://www.healthyb.dal.ca/latestUpdatesPage.htm
+http://www.healthybuilding.net/news/steingraber-050304.html
+http://www.healthyeating.net/HE_8-05.HTM
+http://www.healthyhairplus.com/the_difference.htm
+http://www.healthylife.net/media/peopletalking.html
+http://www.healthyliving.gov.uk/publications/
+http://www.healthyliving.gov.uk/publications/publications.cfm
+http://www.healthyliving.gov.uk/whatsgoingon/
+http://www.healthymagnets.com/triphala.htm
+http://www.healthynewage.com/free-fitness-tools.htm
+http://www.healthynewage.com/self-healing.htm
+http://www.healthynj.org/dis-con/cat/main.htm
+http://www.healthynj.org/dis-con/ld/main.htm
+http://www.healthynj.org/dis-con/mi/main.htm
+http://www.healthynj.org/health-wellness/fitness/main.htm
+http://www.healthynj.org/health-wellness/seniorfitness/main.htm
+http://www.healthyontario.com/english/features_details.asp?channel_id=0&aggregate_id=71&text_id=2645
+http://www.healthyontario.com/english/features_details.asp?channel_id=0&aggregate_id=75&text_id=1990
+http://www.healthyontario.com/english/features_details.asp?channel_id=4&aggregate_id=209&text_id=2242
+http://www.healthyontario.com/english/printVersion.asp?which=features&text_id=2247&channel_id=0
+http://www.healthyontario.com/english/printVersion.asp?which=features&text_id=2645&channel_id=0
+http://www.healthypages.net/newspage.asp?newsid=4767
+http://www.healthyplace.com/Communities/Abuse/Site/transcripts/sexual_abuse_damage.htm
+http://www.healthyplace.com/Communities/Abuse/lisk/reporting_rape.htm
+http://www.healthyplace.com/Communities/Anxiety/phobias.asp
+http://www.healthyplace.com/Communities/Eating_Disorders/peacelovehope/ask.html
+http://www.healthyplace.com/communities/anxiety/paems/panic/symptoms_anxiety_disorders.htm
+http://www.healthyplace.com/communities/bipolar/kathryn/essay_satisfactionsurveys_01.html
+http://www.healthyplace.com/communities/depression/treatment/therapy/article_overcoming_depression.asp
+http://www.healthyplace.com/communities/depression/treatment/therapy/finding_therapist.asp
+http://www.healthyplace.com/site/support_groups_hp.htm
+http://www.healthyskepticism.org/news/2004/1to3.htm
+http://www.healthytalkradio.com/2002Guests.htm
+http://www.healthyweightnetwork.com/atechs.htm
+http://www.healthyweightnetwork.com/hww.htm
+http://www.healthywomen.org/presskit/meno04/3.html
+http://www.healtoronto.com/starep10.html
+http://www.healtoronto.com/starep3.html
+http://www.healtoronto.com/starep6.html
+http://www.heanosantiq.com/glass%20marks.htm
+http://www.hear-it.org/list.dsp?forside=yes&area=284
+http://www.hearingconcern.com/aai_ahl_faq.html
+http://www.hearingconcern.com/nae_hcn.html
+http://www.hearingvoices.com/carrier.html
+http://www.hearnet.com/events/events_Its-Hip-to-HEAR.shtml
+http://www.heart-disease-bypass-surgery.com/data/articles/125.htm
+http://www.heartball.org/get_involved.html
+http://www.heartcenteronline.com/termsConditions.cfm
+http://www.heartchoice.com/forums/read.php?f=1&i=3092&t=3092
+http://www.heartchoice.com/forums/read.php?f=1&i=3113&t=3092
+http://www.heartfelt.com/hukat-balak.htm
+http://www.heartfeltadoption.com/newbabies.htm
+http://www.heartibet.org/background.html
+http://www.heartinfo.org/ms/guides/4/main.html
+http://www.heartinfo.org/ms/guides/8/main.html
+http://www.heartland.org/Article.cfm?artId=13535
+http://www.heartlight.org/articles/200405/20040511_suffering.html
+http://www.heartmath.com/company/proom/pr/breaking_myth.html
+http://www.heartmontana.com/sitepages/pid2.php
+http://www.heartpath.org/pairs.html
+http://www.heartpoint.com/Chollowfatdiet.html
+http://www.heartpoint.com/highbloodpage.html
+http://www.heartquotes.net/Listening.html
+http://www.heartsfc.premiumtv.co.uk/page/TermsAndConditions/0,,10289,00.html
+http://www.heathgateresources.com.au/public/content/heathgate_public_notices.asp?xcid=138
+http://www.heathrowhikers.org/issue4.htm
+http://www.heatisonline.org/contentserver/objecthandlers/index.cfm?id=3663&method=full
+http://www.heatisonline.org/contentserver/objecthandlers/index.cfm?id=4325&method=full
+http://www.heatpumpcentre.org/Publications/Case_Lowell.asp
+http://www.heavyreading.com/
+http://www.heavyreading.com/details.asp?sku_id=514&skuitem_itemid=544&promo_code=&aff_code=&next_url=%2Fdefault.asp%3F
+http://www.heavyreading.com/details.asp?sku_id=723&skuitem_itemid=717&promo_code=&aff_code=&next_url=%2Fdefault.asp%3F
+http://www.heavyreading.com/details.asp?sku_id=724&skuitem_itemid=718&promo_code=&aff_code=&next_url=%2Fdefault.asp%3F
+http://www.heavyreading.com/document.asp?doc_id=66308&site=lightreading
+http://www.heavysixer.com/atb/index.php?option=content&task=view&id=10&Itemid=29
+http://www.heavysports.com/
+http://www.heavysports.com/emag/athlete_of_month/march_04.html
+http://www.hebrewcollege.edu/html/hc_online/jsarticle.htm
+http://www.hebrewcollege.edu/html/jsarticle.htm
+http://www.hebs.scot.nhs.uk/info/strategy/stratSection.cfm?TxtSNo=4&TxtTCode=331
+http://www.hebs.scot.nhs.uk/topics/diet/dietgroup.cfm?offset=11
+http://www.hec.unil.ch/jantonakis/recent%20publications.htm
+http://www.hec.unil.ch/mbrulhar/SEA2/
+http://www.hedgestreet.com/gettingstarted/faq/trading.html
+http://www.hedgetoad.com/archive/2005_01_01_
+http://www.hedweb.com/bgcharlton/awconlang.html
+http://www.hefce.ac.uk/pubs/hefce/1999/99_07.htm
+http://www.hefce.ac.uk/pubs/hefce/2003/03_36.htm
+http://www.heftyseed.com/agminute.html
+http://www.hegalplace.com/logan/MandM.html
+http://www.heico.com/1998/012_01.htm
+http://www.heidrick.com/IC/Published/Leadership/LeadersTalkLeadership/Biographies.htm
+http://www.heinemann.com/shared/products/E00492.asp
+http://www.heinemann.com/shared/products/SPTC1.asp
+http://www.heinemann.com/shared/products/SPWS1.asp
+http://www.heinleinsociety.org/
+http://www.heinricharnold.com/articles/homage/Sannerz.htm
+http://www.heinricharnold.com/articles/homage/Sannerz.htm?format=print
+http://www.heinricharnold.com/articles/homage/Silum.htm
+http://www.heinzctr.org/ecosystems/fr_water/index.shtml
+http://www.heinzctr.org/ecosystems_copy/fr_water/index.shtml
+http://www.helenbrowningorganics.co.uk/the_farm/walking_tour.phtml
+http://www.heller.brandeis.edu/sid/cid_projects_poverty_rights.htm
+http://www.hellmann.com/mystery-author/image-of-death.htm
+http://www.hello.ac/dataroom/1/2000.html
+http://www.helloboulder.com/YP/c_BEAUTYSALONS.Cfm
+http://www.hellohello.com.au/devotion/premium.html
+http://www.hellohello.com.au/devotion/yuccamix.html
+http://www.helloworldblog.com/2005/04/
+http://www.hellschancecantina.com/ATSOM3.html
+http://www.hellschancecantina.com/Tube_Rat1.html
+http://www.helmets.org/astmdocs/min0211.htm
+http://www.helpdesk.umd.edu/documents/4/4018/
+http://www.helpfulholidays.com/region.asp?regionref=A
+http://www.helpguide.org/aging/healthy_weight_loss.htm
+http://www.helpguide.org/aging/senior_careers_employment.htm
+http://www.helpguide.org/aging/senior_citizen_driving.htm
+http://www.helpguide.org/mental/blended_families_stepfamilies.htm
+http://www.helpguide.org/mental/eating_disorder_treatment.htm
+http://www.helpguide.org/mental/grieving_loss.htm
+http://www.helpiammoving.com/moving_house/4-2weeks_before_moving_day.php
+http://www.helpingdoctors.com/
+http://www.helpinguskids.org/
+http://www.helpinsure.com/lcenter/moldpub.html
+http://www.helpline.org/helpyou.html
+http://www.helpmefind.com/rose/ez.php?publicationID=478&js=0
+http://www.helpmefind.com/rose/ezine.php
+http://www.helsinki.fi/science/xantippa/wee/weetext/wee243.html
+http://www.helsinki.fi/tasa-arvo/english/discplan.html
+http://www.helsinki.fi/~ksiazkie/travel/wales/
+http://www.helsinki.fi/~tasalmin/tvarminne.html
+http://www.helsinki.fi/~vptynkky/elections.html
+http://www.hematology.org/government/policy/open_access.cfm
+http://www.hempevolution.org/media/capital_times/ct040805.htm
+http://www.hempfiles.com/php/page.php?id=56
+http://www.hendersonpetrophysics.com/SVG_Main.html
+http://www.hendersonvillenews.com/apps/pbcs.dll/article?AID=/20041227/NEWS/412270301/1015/OPINION01
+http://www.hendersonvillenews.com/apps/pbcs.dll/article?AID=/20050206/API/502060985
+http://www.hendersonvillenews.com/apps/pbcs.dll/article?Date=20050114&Category=NEWS&ArtNo=501140332&SectionCat=&Template=printart
+http://www.hendonpub.com/lawmag/uniformdepot.htm
+http://www.hendricks.com/dbcart/agl_letter.html
+http://www.henhouses.co.uk/rabbits.html
+http://www.hennepin.us/vgn/portal/internet/hcdetailmaster/0,2300,1273_1716_101935416,00.html
+http://www.hennesseyhouse.com/itinerary_nopop.htm
+http://www.henneth-annun.net/stories/story_recommend.cfm?rcidf=30
+http://www.henryflynt.org/philosophy/substantialpossibility.html
+http://www.henrygeorge.org/chp1.htm
+http://www.henshall.com/blog/archives/2002_06.html
+http://www.heorot.dk/tafl/
+http://www.hep.phys.soton.ac.uk/phd/reading.html
+http://www.hepatitisnetwork.com/hepc/clfpam99.html
+http://www.hepcan.org/passfedlaws.htm
+http://www.heptune.com/StarTrk9.html
+http://www.heptune.com/farts.html
+http://www.heptune.com/preslist.html
+http://www.herald-coaster.com/articles/2004/01/07/news/top_story/topstory.txt
+http://www.heraldmag.org/02mj_8.htm
+http://www.heraldnet.com/homeandgarden/story.cfm?sectionname=GARDENING&file=03100217557714.cfm&keywords=gardening
+http://www.heraldnet.com/stories/05/06/17/100ae_summerinterview002.cfm
+http://www.heraldsun.news.com.au/common/story_page/0,5478,11927795%255E1702,00.html
+http://www.heraldsun.news.com.au/learn/story_page/0,8772,5868452%255E24352,00.html
+http://www.heraldtimesonline.com/stories/thismonth/21/neighbors.0221-HT-B1_WCS17653.sto
+http://www.heraldtribune.com/apps/pbcs.dll/article?AID=/20050129/APA/501290742
+http://www.herbalgram.org/herbalgram/articleview.asp?a=2550
+http://www.herbalife.com/hl/templates/templatepreportal/herbalife/products/success.jsp
+http://www.herbalremedies.com/
+http://www.herc.org/maketheconnection/informed.htm
+http://www.herdesires.net/archives/stories/
+http://www.herecomestheguide.com/fairs/nocal.htm
+http://www.herefordshire.gov.uk/community_and_living/life_events/1378.asp
+http://www.hereinreality.com/hinckley.html
+http://www.hereinreality.com/insidertrading.html
+http://www.heretical.com/bjerre/heaven1.html
+http://www.heretical.com/pound/chicken.html
+http://www.heretical.com/toa/toa-s24.html
+http://www.heretical.com/wilson/ftruth.html
+http://www.herhighnessness.com/2003_08_01_history.html
+http://www.heritage.nf.ca/exploration/avalon.html
+http://www.heritage.nf.ca/society/rhs/terms.html
+http://www.heritage.org.ac/avis11.htm
+http://www.heritage.org.ac/avis12.htm
+http://www.heritage.org/Press/Commentary/ED032300b.cfm
+http://www.heritage.org/Research/Budget/BG1703.cfm
+http://www.heritage.org/Research/Economy/wm527.cfm
+http://www.heritage.org/Research/EnergyandEnvironment/Test072099b.cfm
+http://www.heritage.org/Research/Europe/bg1648.cfm
+http://www.heritage.org/Research/Europe/index.cfm
+http://www.heritage.org/Research/Family/BG1421.cfm
+http://www.heritage.org/Research/Family/HL684.cfm
+http://www.heritage.org/Research/Family/bg1662.cfm
+http://www.heritage.org/Research/GovernmentReform/HL644.cfm
+http://www.heritage.org/Research/HealthCare/HL541.cfm
+http://www.heritage.org/Research/HealthCare/bg1673.cfm
+http://www.heritage.org/Research/HealthCare/wm146.cfm
+http://www.heritage.org/Research/HealthCare/wm297.cfm
+http://www.heritage.org/Research/HealthCare/wm355.cfm
+http://www.heritage.org/Research/HomelandDefense/Test071502.cfm
+http://www.heritage.org/Research/HomelandDefense/bg1723.cfm
+http://www.heritage.org/Research/InternationalOrganizations/bg1772.cfm
+http://www.heritage.org/Research/InternationalOrganizations/wm641.cfm
+http://www.heritage.org/Research/LatinAmerica/bg1787.cfm
+http://www.heritage.org/Research/MiddleEast/wm368.cfm
+http://www.heritage.org/Research/SocialSecurity/CDA04-06.cfm
+http://www.heritage.org/Research/SocialSecurity/wm650.cfm
+http://www.heritage.org/Research/SocialSecurity/wm650.cfm?renderforprint=1
+http://www.heritage.org/Research/SocialSecurity/wm726.cfm
+http://www.heritage.org/Research/SocialSecurity/wm747.cfm
+http://www.heritage.org/Research/SocialSecurity/wm747.cfm?renderforprint=1
+http://www.heritage.org/Research/Taxes/wm572.cfm
+http://www.heritage.org/Research/Taxes/wm704.cfm
+http://www.heritage.org/Research/TradeandForeignAid/BG1634.cfm
+http://www.heritage.org/Research/TradeandForeignAid/HL753.cfm
+http://www.heritage.org/Research/TradeandForeignAid/hl872.cfm
+http://www.heritage.org/Research/Welfare/
+http://www.heritage.org/Research/Welfare/bg1713.cfm
+http://www.heritage.org/Research/Welfare/bg1722.cfm
+http://www.heritage.org/Research/reagan06_12_87.cfm
+http://www.heritage.org/research/family/bg1662es.cfm
+http://www.heritage.org/research/features/Issues2004/socialsecurity.cfm
+http://www.heritage.org/research/features/issues2004/family.cfm
+http://www.heritage.org/research/features/issues2004/poverty-and-inequality.cfm
+http://www.heritage.org/research/welfare/welfarebriefingroom.cfm
+http://www.heritage.vic.gov.au/page.asp?ID=162
+http://www.heritagecomics.com/common/wordfromsteve.php
+http://www.heritagecommunitybank.com/privacy.htm
+http://www.heritagecouncil.ie/publications/biodata/7.html
+http://www.heritagemovieposters.com/common/view_item.php?Sale_No=617&Lot_No=28065
+http://www.heritageopendays.org/about.shtml
+http://www.heritagepartnership.ca/forum/messageview.cfm?catid=10&threadid=36&STARTPAGE=1
+http://www.heritagepartnership.ca/forum/messageview.cfm?catid=10&threadid=36&enterthread=y
+http://www.heritagetours.com.au/15CapeOverSea.html
+http://www.hermangroup.com/retentionconnection/article_keeping_employees_cheap.html
+http://www.hermanmiller.com/CDA/SSA/Category/0,1564,a10-c699,00.html
+http://www.hermanmiller.com/CDA/SSA/Category/0,1564,a4-c699,00.html
+http://www.hermanus.com/whalewatching.mv
+http://www.hermes-press.com/Perennial_Tradition/plato_geometry.htm
+http://www.hermes-press.com/etch1.htm
+http://www.hermetic.com/stavish/essays/secret-fire.html
+http://www.hero.ac.uk/uk/inside_he/archives/2003/when_the_west_goes_to_war4309.cfm
+http://www.hero.ac.uk/uk/studying/archives/2002/look_into_your_coffee_cup3231.cfm
+http://www.hero.ac.uk/uk/studying/archives/2004/fair_copy_5700.cfm
+http://www.hero.ac.uk/uk/studying/careers_and_lifelong_learning/basic_skills_and_literacy.cfm
+http://www.hero.ac.uk/uk/universities___colleges/london/central_school_of_speech_and_drama.cfm
+http://www.hero.ac.uk/uk/universities___colleges/scotland/the_glasgow_school_of_art.cfm
+http://www.hero.ac.uk/uk/universities___colleges/yorkshire_and_humber/university_of_york.cfm
+http://www.heroesofhistory.com/page22.html
+http://www.herogames.com/
+http://www.heroicstories.com/hshelps.html
+http://www.herpesalliance.org/ask_nurse.asp
+http://www.hersethforcongress.org/issues04.htm
+http://www.hertfordshirefa.com/County_Cups/Sunday/Sunday_Intermediate_Cup.htm
+http://www.herts.ac.uk/fhle/faculty/humanities/web%20pages/literature/Grammar.html
+http://www.herts.ac.uk/humanities/philosophy/Presentations_ass.html
+http://www.herts.ac.uk/services/counselling/Eating_Disorders.htm
+http://www.herveybaywhalewatch.com.au/watch.html
+http://www.hesa.ac.uk/circulars/student/2002/02_03.htm
+http://www.hesca.org/
+http://www.het.brown.edu/physics/review/bdecay.html
+http://www.hevanet.com/peace/
+http://www.hewlett.org/Programs/Population/Resources+and+Policies/
+http://www.hewmon.com/
+http://www.hexawizards.com/empire/empirehouses.html
+http://www.hexus.net/
+http://www.heydary.com/internet-laws/20031030.html
+http://www.heyou.net/glaslink.htm
+http://www.hf.uio.no/iakk/roger/lithic/bar/bar4-5.html
+http://www.hfac.uh.edu/gbrown/philosophers/leibniz/BritannicaPages/KingCharles-I/KingCharles-I.html
+http://www.hfac.uh.edu/gbrown/philosophers/leibniz/BritannicaPages/KingJames-II/KingJames-II.html
+http://www.hfalert.com/Public/MarketPlace/LatestLaunches/index.cfm
+http://www.hfg.org/hfg_review/3/blanchard-hebert-3.htm
+http://www.hfienberg.com/kesher/2004/10/sitting-on-sofa-on-sunday-afternoon.html
+http://www.hfienberg.com/scots/490nationalism.html
+http://www.hfs.msu.edu/uh/resources/documents/policy.html
+http://www.hg.org/multi.html
+http://www.hgfound.org/
+http://www.hghhealthshop.com/
+http://www.hgnetwork.co.uk/siye/viewstory.php?sid=4754
+http://www.hgriggs.com/serendipity/
+http://www.hgtv.com/hgtv/about_us/article/0,1783,HGTV_3080_1424672,00.html
+http://www.hgtv.com/hgtv/ah_cleaning_seasonal/article/0,1801,HGTV_3110_1388172,00.html
+http://www.hgtv.com/hgtv/ah_entertaining_wine/article/0,1801,HGTV_3120_1390817,00.html
+http://www.hgtv.com/hgtv/ah_kids_family_infants/article/0,1801,HGTV_3125_1383902,00.html
+http://www.hgtv.com/hgtv/at_home/article/0,1801,HGTV_3221_1380630,00.html
+http://www.hgtv.com/hgtv/cda/article_print/0,1983,HGTV_3080_1424672_ARTICLE-DETAIL-PRINT,00.html
+http://www.hgtv.com/hgtv/cda/article_print/0,1983,HGTV_3120_1390817_ARTICLE-DETAIL-PRINT,00.html
+http://www.hgtv.com/hgtv/cda/article_print/0,1983,HGTV_3256_1373461_ARTICLE-DETAIL-PRINT,00.html
+http://www.hgtv.com/hgtv/cda/article_print/0,1983,HGTV_3298_1507325_ARTICLE-DETAIL-PRINT,00.html
+http://www.hgtv.com/hgtv/cda/article_print/0,1983,HGTV_3322_1377109_ARTICLE-DETAIL-PRINT,00.html
+http://www.hgtv.com/hgtv/cda/article_print/0,1983,HGTV_3330_1394076_ARTICLE-DETAIL-PRINT,00.html
+http://www.hgtv.com/hgtv/cda/article_print/0,1983,HGTV_3563_1399111_ARTICLE-DETAIL-PRINT,00.html
+http://www.hgtv.com/hgtv/chats/article/0,1783,HGTV_3224_1387941,00.html
+http://www.hgtv.com/hgtv/chats/article/0,1783,HGTV_3224_1387951,00.html
+http://www.hgtv.com/hgtv/chats/article/0,1783,HGTV_3224_1387988,00.html
+http://www.hgtv.com/hgtv/chats/article/0,1783,HGTV_3224_1554005,00.html
+http://www.hgtv.com/hgtv/chats/article/0,1783,HGTV_3224_2373499,00.html
+http://www.hgtv.com/hgtv/cr_clay_figures/article/0,1789,HGTV_3237_2859265,00.html
+http://www.hgtv.com/hgtv/cr_kid_crafts/article/0,1789,HGTV_3256_1373461,00.html
+http://www.hgtv.com/hgtv/cr_quilting/article/0,1789,HGTV_3298_1507325,00.html
+http://www.hgtv.com/hgtv/cr_sewing_alterations/article/0,1789,HGTV_3322_1377109,00.html
+http://www.hgtv.com/hgtv/cr_sewing_other/article/0,1789,HGTV_3330_1394076,00.html
+http://www.hgtv.com/hgtv/cr_wood_glass_other/article/0,1789,HGTV_3349_1370940,00.html
+http://www.hgtv.com/hgtv/dc_books_videos_other/article/0,,HGTV_3361_3254000,00.html
+http://www.hgtv.com/hgtv/dc_books_videos_other/article/0,1793,HGTV_3361_3254000,00.html
+http://www.hgtv.com/hgtv/dc_design_bathroom/article/0,1793,HGTV_3365_1380688,00.html
+http://www.hgtv.com/hgtv/dc_design_bedroom/article/0,1793,HGTV_3366_2294884,00.html
+http://www.hgtv.com/hgtv/dc_design_kitchen/article/0,1793,HGTV_3375_1390720,00.html
+http://www.hgtv.com/hgtv/dc_design_themes/article/0,1793,HGTV_3383_1393054,00.html
+http://www.hgtv.com/hgtv/dc_occasions_other/article/0,1793,HGTV_3478_1370340,00.html
+http://www.hgtv.com/hgtv/dc_resources_expert_advice/article/0,1793,HGTV_3492_2236291,00.html
+http://www.hgtv.com/hgtv/decorating/article/0,1793,HGTV_3545_1507998,00.html
+http://www.hgtv.com/hgtv/decorating/article/0,1793,HGTV_3545_1528403,00.html
+http://www.hgtv.com/hgtv/decorating/article/0,1793,HGTV_3545_1704576,00.html
+http://www.hgtv.com/hgtv/decorating/article/0,1793,HGTV_3545_1966891,00.html
+http://www.hgtv.com/hgtv/dream_home_archive/article/0,1783,HGTV_11536_1898730,00.html
+http://www.hgtv.com/hgtv/gl_design_asian/article/0,1785,HGTV_3563_1399111,00.html
+http://www.hgtv.com/hgtv/gl_plants_other/article/0,1785,HGTV_3609_2410757,00.html
+http://www.hgtv.com/hgtv/gl_plants_propagation/article/0,1785,HGTV_3611_2775213,00.html
+http://www.hgtv.com/hgtv/gl_plants_roses/article/0,1785,HGTV_3612_1385144,00.html
+http://www.hgtv.com/hgtv/pac_ctnt/text/0,,HGTV_3936_5800,FF.html
+http://www.hgtv.com/hgtv/pac_ctnt/text/0,1783,HGTV_3936_16292,FF.html
+http://www.hgtv.com/hgtv/shows_dod/episode/0,1806,HGTV_9056_33838,00.html
+http://www.hhlong.com/main/Sinks/9.asp
+http://www.hhmi.org/annual94/c120.html
+http://www.hhmi.org/cgi-bin/askascientist/highlight.pl?kw=&file=answers%2Fgeneral%2Fans_037.html
+http://www.hhmi.org/cgi-bin/askascientist/highlight.pl?kw=&file=answers%2Fgeneral%2Fans_040.html
+http://www.hhmi.org/news/fuchs.html
+http://www.hhmi.org/news/fuchs2.html
+http://www.hhmi.org/news/jacks2.html
+http://www.hhmi.org/news/zoghbi3.html
+http://www.hhmi.umbc.edu/hhmischolars/
+http://www.hhof.com/html/exSCJ_29.shtml
+http://www.hhp.umd.edu/FMST/res/family_policy.html
+http://www.hhpl.on.ca/sigs/ehs/DL1854-7.html
+http://www.hhs.gov/asl/testify/t041118.html
+http://www.hhs.gov/asl/testify/t050405.html
+http://www.hhs.gov/asl/testify/t050405c.html
+http://www.hhs.gov/asl/testify/t050405d.html
+http://www.hhs.gov/asl/testify/t050428a.html
+http://www.hhs.gov/bloodsafety/summaries/sumaug97.html
+http://www.hhs.gov/bloodsafety/summaries/sumaug98.html
+http://www.hhs.gov/bloodsafety/summaries/sumjan98.html
+http://www.hhs.gov/bloodsafety/transcripts/aug27_98.html
+http://www.hhs.gov/bloodsafety/transcripts/jan27_00.html
+http://www.hhs.gov/eeo/no_fear_act_of_2001.html
+http://www.hhs.gov/news/press/2004pres/20040219.html
+http://www.hhs.gov/news/press/2004pres/20040309.html
+http://www.hhs.gov/news/press/2005pres/20050401.html
+http://www.hhs.gov/ocr/lep/finalproposed.html
+http://www.hhs.gov/read/irmpolicy/0003.html
+http://www.hhs.gov/smallpox/
+http://www.hhs.oregonstate.edu/outreach/fsf/blood-screening.html
+http://www.hi-arts.co.uk/jul04_battlefield_band.htm
+http://www.hi-arts.co.uk/training_april05.htm
+http://www.hi-beam.net/hi-beam/Anderson1.html
+http://www.hi-fiworld.co.uk/hfw/featureshtml/turntableroundup.html
+http://www.hi-ways.org/shownewsitem.asp?n=97084&s=2865726
+http://www.hiaper.ucar.edu/monthly/0804.html
+http://www.hibberts.co.uk/collect2/manchth.htm
+http://www.hibbett.com/community/superstars.php
+http://www.hibblenradio.com/CBS.html
+http://www.hic.hr/books/indefence/df113.htm
+http://www.hickoksports.com/rules/raerobatics.shtml
+http://www.hida.jp/english/event_winter.htm
+http://www.hiddenglasgow.com/rotundas/
+http://www.hiddenhurt.co.uk/Articles/Keepingsafe.htm
+http://www.hie.co.uk/default.aspx.locid-0finewkj1.htm
+http://www.hie.co.uk/shetland/skills2industry
+http://www.hifichoice.co.uk/review_print.asp?ID=1725
+http://www.hifichoice.co.uk/review_print.asp?ID=1956
+http://www.hifn.com/technology/HIPP.html
+http://www.highclearing.com/archivesuo/week_2004_04_11.html
+http://www.highcountryranch.com/
+http://www.highcrimesbooks.com/recent.htm
+http://www.highdesert.com/cgi-bin/re/search.cgi?BrokerID=212001789
+http://www.highenergyknits.net/
+http://www.highergroundmusic.com/faqs/
+http://www.higherpraise.com/Lyrics4/MercyIsFalling.htm
+http://www.highertrustmarketing.com/
+http://www.higheryork.org/Project%20codeHigher%20York%20R&CF.htm
+http://www.highland.gov.uk/minutes/areas/skye_and_lochalsh/minutes/sl_site_inspection_min_230204.htm
+http://www.highland.gov.uk/minutes/headquarters/new_archive/prop/prop_min_190398.htm
+http://www.highland.gov.uk/minutes/headquarters/resources/agendas/resources-ag-050608.htm
+http://www.highlandadventure.co.uk/prices.htm
+http://www.highlandcathedral.org/gaelic/psalm10.asp
+http://www.highlandcathedral.org/gaelic/psalm148.asp
+http://www.highlandcattlesociety.com/breedstandard.htm
+http://www.highlanderweb.co.uk/wallace/anne.htm
+http://www.highlandssummerfestival.on.ca/
+http://www.highlandxpress.com/new.html
+http://www.highlysensitivesouls.com/articles/newbie.htm
+http://www.highonadventure.com/Hoa00dec/Catalina/catalina.htm
+http://www.highrankings.com/forum/index.php?showtopic=12185&view=old
+http://www.highrankings.com/forum/index.php?showtopic=12889
+http://www.highrollerssportsbetting.com/
+http://www.highschooljournalism.org/students/AuthorArticles.cfm?articleId=171
+http://www.highschooljournalism.org/teachers/tipshowtowrite.htm
+http://www.highschoolrugby.org/directions.asp
+http://www.highscope.org/EducationalPrograms/Elementary/music.htm
+http://www.hightech.clara.net/feetfirs.htm
+http://www.hightechfinland.com/2003/newmaterialsprocess/transport/kone.html
+http://www.hightechfinland.com/2005/hightech_country/en_GB/tekes/
+http://www.hightimes.com/ht/events/content.php?bid=94&aid=3
+http://www.hightimes.com/ht/grow/content.php?bid=257&aid=4
+http://www.hightimes.com/ht/news/content.php?bid=123&aid=24
+http://www.hightowertrail.com/Huguent.htm
+http://www.hightowertrail.com/ScoutingIntro.HTMl
+http://www.hightowertrail.com/Scoutingintro.html
+http://www.highveld.co.za/thewrap/sapstips.asp
+http://www.highwaycode.gov.uk/01.htm
+http://www.highwaycode.gov.uk/09.shtml
+http://www.highwayengineers.org/scanner010505f.html
+http://www.highwaysmaintenance.com/osophi.htm
+http://www.hikaruchan.com/writings/bhh.html
+http://www.hikercentral.com/dogsled/
+http://www.hilary.com/fashion/yogafashion.html
+http://www.hildebrandt.com/Documents.aspx?Doc_ID=2208
+http://www.hildebrandt.com/Documents.aspx?Doc_ID=588
+http://www.hillandknowlton.be/luxembourg_presidency_2004/hk.html
+http://www.hillary.org/hc/Hillary_Clinton_Forum_583_chat1.cgi
+http://www.hillcrestonline.com/handlers/index.cfm?pageID=200301260000161564
+http://www.hilliard.ws/jokes.htm
+http://www.hillingdon.gov.uk/education/amr/lido.php
+http://www.hillnews.com/news/050703/edwards.aspx
+http://www.hillnews.com/thehill/export/TheHill/Business/041305_congress.html
+http://www.hillnews.com/thehill/export/TheHill/Features/CapitalLiving/011905_cookie.html
+http://www.hillnews.com/thehill/export/TheHill/Features/RestaurantReview/ceiba.html
+http://www.hillnews.com/thehill/export/TheHill/News/Frontpage/052405/ss_reserve.html
+http://www.hillnews.com/thehill/export/TheHill/News/Frontpage/060105/disabilities.html
+http://www.hillnews.com/thehill/export/TheHill/News/Frontpage/060905/thune.html
+http://www.hillnews.com/thehill/export/TheHill/News/UndertheDome/051005.html
+http://www.hillnews.com/thehill/export/TheHill/News/UndertheDome/112404.html
+http://www.hillsidefree.com/sermons/lifestylematters.html
+http://www.hillsong.com/church/women/bin/view.pl?sitename=women&page=ideas&showwomen=true&showMinistries=true
+http://www.hillyard.com/ProductsServices/Products/PSProduct.asp?cid=92&cn=Water-Based+System&srt=seq
+http://www.hillyard.com/ProductsServices/Products/PSProduct.asp?cid=93&cn=Solvent-Based+System&srt=seq
+http://www.hillzoo.com/index.php?id=243
+http://www.hilton.kzn.school.za/subjects/
+http://www.hiltonpark.ie/grounds.htm
+http://www.himalayanacademy.com/resources/books/hbh/hbh_ch-9.html
+http://www.himalmag.com/00Jan/royal.htm
+http://www.himel.com/cgi-bin/himel/hs.cgi?run=top&catid=9&itemid=10&vid=0
+http://www.hindu.com/thehindu/nic/0041/synopsis.htm
+http://www.hindu.com/thehindu/nic/tncmspeech042505.htm
+http://www.hinduhumanrights.org/hindufocus/hindufocus.htm
+http://www.hinduism.co.za/speech-.htm
+http://www.hindunet.com/forum/showflat.php?Cat=&Number=42229&page=0&view=collapsed&sb=5&o=&fpart=1
+http://www.hindunet.org/saraswati/indianarms.htm
+http://www.hindustanlink.com/ebook-download/alternative-health-care-ebooks-e-book.htm
+http://www.hindustanlink.com/ebook-download/remedies-health-care-ebooks-e-book-resources.htm
+http://www.hindustanlink.com/sex/s40sex.htm
+http://www.hindustantimes.com/news/181_400176,00500017.htm
+http://www.hindustantimes.com/news/181_402791,00500017.htm
+http://www.hindustantimes.com/news/181_405200,00500017.htm
+http://www.hindustantimes.com/news/7170_0,00500017.htm
+http://www.hindustantimes.com/news/7242_1237542,00180010.htm
+http://www.hingdaiwui.com/testimonials.html
+http://www.hinkleymall.com/beachboy.html
+http://www.hintsandthings.co.uk/kennel/Tips%20on%20how%20best%20to%20give%20medication%20to%20dogs..htm
+http://www.hipaadvisory.com/live/
+http://www.hiphopdx.com/index/features/id.265
+http://www.hiphopdx.com/index/features/id.325
+http://www.hiphopdx.com/index/features/id.347
+http://www.hiphopdx.com/index/features/id.368
+http://www.hiphopdx.com/index/features/id.373
+http://www.hiphopdx.com/index/reviews/id.488
+http://www.hiphophotspot.com/album_reviews/default.asp
+http://www.hiphopmusic.com/archives/000392.html
+http://www.hiphopmusic.com/archives/000995.html
+http://www.hipmama.com/node/view/1461
+http://www.hippocrates.com/archive/December1999/12departments/12editorial.html
+http://www.hippy.com/php/article-227.html
+http://www.hiprecycling.com/files/about.html
+http://www.hiqhq.com/InterpersonalSkills.asp?Cattype=1001001
+http://www.hiqhq.com/Management.asp?Cattype=1001001
+http://www.hiraganatimes.com/hp/visa/file/visainfo1-e.htm
+http://www.hiram.edu/future/traditional/majors/theatrearts/tyst.html
+http://www.hireamericancitizens.org/fastcompany001.html
+http://www.hirestandard.com/
+http://www.hiroshima-cdas.or.jp/home/yuu/indexen.htm
+http://www.hiroshima-is.ac.jp/Hiroshima/crane.htm
+http://www.hirshorn.com/AFSA2LTCform.html
+http://www.hirstarts.com/tips9/tips9.html
+http://www.his.org.uk/resource_library.cfm?cit_id=242&FAArea1=customWidgets.content_view_1&usecache=false
+http://www.his.org.uk/resource_library/_rinse_water_for_heat_labile_endoscopy_equipment.cfm?cit_id=242&FAArea1=customWidgets.content_view_1&usecache=false
+http://www.his.org.uk/resource_library/gre.cfm?cit_id=242&FAArea1=customWidgets.content_view_1&usecache=false
+http://www.hisandherhealth.com/articles/Beyond_the_G_spot_Where_do_we_go_from_here.shtml
+http://www.hisandherhealth.com/articles/Vasectomy_Reversal_Can_Be_Highly_Successful.shtml
+http://www.hisf.no/njmt/artikkelruudnewmusic.html
+http://www.hislastchance.com/guest/guestbook.shtml
+http://www.hispanicherbs.com/
+http://www.hispaniconline.com/magazine/2004/nov/Cultura/
+http://www.hispeace.org/html/useresrc.htm
+http://www.histori.ca/minutes/minute.do?ID=10225
+http://www.historians.org/Perspectives/Issues/2005/0505/0505tec1.cfm
+http://www.historians.org/info/annualreports/2002/committeereports.cfm
+http://www.historians.org/projects/GIRoundtable/Marriages/Marriages5.htm
+http://www.historians.org/pubs/careers/resources.htm
+http://www.historic-uk.com/HistoryUK/England-History/KingsandQueens.htm
+http://www.historicalvoices.org/spokenword/research.php
+http://www.historichomeworks.com/hhw/pbriefs/pb12.htm
+http://www.historicism.com/Guinness/Light/light22.htm
+http://www.historicjamestowne.org/learn/lesson_plans.php
+http://www.historicsmithfield.org/Summary.htm
+http://www.history-of-rock.com/haley.htm
+http://www.history.ac.uk/ihr/Focus/Victorians/simon.html
+http://www.history.ac.uk/ihr/Focus/War/reviews/revbeckettf.html
+http://www.history.ac.uk/ihr/Focus/War/reviews/revfrostRob2.html
+http://www.history.ac.uk/reviews/paper/stobartresp.html
+http://www.history.navy.mil/docs/wwii/pearl/ph73.htm
+http://www.history.navy.mil/sources/ma/slr.htm
+http://www.history.noaa.gov/stories_tales/saltlake.html
+http://www.history.org/Foundation/journal/Autumn03/society.cfm
+http://www.history.org/visit/eventsAndExhibits/kimballTheatre/history.cfm
+http://www.history.ox.ac.uk/alumni/oxhistorian/issue_2/08_once_a_king.htm
+http://www.history.ox.ac.uk/ecohist/coursebooklet/05_testsexams.htm
+http://www.history.ox.ac.uk/ecohist/synopses/1a_economic_business/child_labour.htm
+http://www.history.rochester.edu/canal/bib/hosack/APP0V.html
+http://www.history.umd.edu/Programs/mastersnew4.html
+http://www.history.upenn.edu/phr/archives/97/sanchez.html
+http://www.historybookworld.com/reviews/acw/hbcivilwarminutes.htm
+http://www.historycooperative.org/journals/ahr/107.3/br_99.html
+http://www.historycooperative.org/journals/ahr/109.2/rodriguez.html
+http://www.historycooperative.org/journals/cp/vol-04/no-01/talk/
+http://www.historycooperative.org/journals/heq/44.2/albisetti.html
+http://www.historycooperative.org/journals/ht/36.2/moyer.html
+http://www.historycooperative.org/journals/jah/87.3/bouton.html
+http://www.historycooperative.org/journals/lhr/18.2/farmer.html
+http://www.historycooperative.org/journals/llt/50/notebook.html
+http://www.historyebook.org/heb-whitepaper-1.html
+http://www.historyguide.org/earlymod/lecture4c.html
+http://www.historyguide.org/europe/lecture13.html
+http://www.historyguide.org/guide/notes2.html
+http://www.historyguide.org/guide/read.html
+http://www.historyguide.org/intellect/lecture21a.html
+http://www.historyguide.org/intellect/lecture25a.html
+http://www.historyhome.co.uk/peel/chartism/o'conmod.htm
+http://www.historylearningsite.co.uk/1997_general_election.htm
+http://www.historylearningsite.co.uk/John_Calvin.htm
+http://www.historylearningsite.co.uk/hiroshima.htm
+http://www.historylearningsite.co.uk/institutions_of_the_european_uni.htm
+http://www.historylearningsite.co.uk/prime_minister_british_politics.htm
+http://www.historyorb.com/today/yesterdaysevents.php
+http://www.historyshelf.org/secf/silver/coull.php
+http://www.historytoday.com/dm_getArticle.asp?gid=10966
+http://www.historytoday.com/dm_getArticle.asp?gid=30935
+http://www.historywise.com/KoTrain/Courses/WHT/WHT_Campaigns_and_Elections.htm
+http://www.hit.org.uk/displayPage.asp?id=18
+http://www.hit40uk.com/article.asp?id=14115
+http://www.hitachi.com/New/cnews/040909a.html
+http://www.hitachifoundation.org/grants/initiatives/infotech/assumptions.html
+http://www.hitentertainment.com/legal/privacy/
+http://www.hitentertainment.com/privacy/
+http://www.hithype.com/lyric-detail.asp?song_id=13477&lyrics=song
+http://www.hitsquad.com/smm/freeware/98/
+http://www.hitsquad.com/smm/programs/Scale_Master/
+http://www.hitthetrail.com/
+http://www.hitthosekeys.com/archives/topics/influences.html
+http://www.hittinthenote.com/featured_release3.asp
+http://www.hitxp.com/person/240303.htm
+http://www.hitz.fm/04/rules.asp
+http://www.hiv.bg/WhatareTCells.english.htm
+http://www.hivan.org.za/campussupport/HIV_AIDS_infoandFAQs.asp
+http://www.hivandhepatitis.com/hiv_aids.html
+http://www.hivnet.ubc.ca/News93.html
+http://www.hixie.ch/advocacy/xhtml
+http://www.hjd.org/hjd/howucanhelp_body_hjd.jsp?hosp=hjd
+http://www.hjta.org/calcommentaryV2-18.htm
+http://www.hkdf.org/pr.asp?func=show&pr=153
+http://www.hkentreview.com/1999/september/0925to0926/0925.html
+http://www.hkentreview.com/2000/march/0305/0305.html
+http://www.hkentreview.com/2001/january/0117/0117.html
+http://www.hktrader.net/200212/myhk/myhk-steiner120202-12.htm
+http://www.hku.hk/cc/sp2/software/stopwatch/doc/user_guide/node26.html
+http://www.hku.hk/cerc/5c.htm
+http://www.hku.hk/chinaed/newsletter/phil-brown.html
+http://www.hku.hk/hkcer/articles/v4/rsui.htm
+http://www.hku.hk/hkcer/articles/v8/renrlich.htm
+http://www.hku.hk/student/all/ugp/html2001/curric.htm
+http://www.hkvpradio.com/
+http://www.hlaweb.org/html/job%20items/JI20031020.html
+http://www.hlf.org.np/ev.html
+http://www.hlfallout.net/comments.php?id=7498
+http://www.hlst.heacademy.ac.uk/resources/leisure_consumerism.html
+http://www.hltcentral.org/page-1049.shtml
+http://www.hltcentral.org/page-245.0.shtml
+http://www.hlth.qut.edu.au/ph/student/faqs.jsp
+http://www.hltmag.co.uk/sep02/ex.htm
+http://www.hm-ng.com/
+http://www.hm-treasury.gov.uk/documents/enterprise_and_productivity/encouraging_enterprise/ent_ee_tonnage.cfm
+http://www.hm-treasury.gov.uk/documents/public_spending_and_services/public_services_productivity_panel/pss_psp_press3.cfm
+http://www.hm-treasury.gov.uk/newsroom_and_speeches/press/2002/press_136_02.cfm
+http://www.hm-treasury.gov.uk/newsroom_and_speeches/press/2005/press_03_05.cfm
+http://www.hm-treasury.gov.uk/newsroom_and_speeches/press/2005/press_36_05.cfm
+http://www.hm-treasury.gov.uk/newsroom_and_speeches/speeches/chancellorexchequer/speech_chex_250902.cfm
+http://www.hm-treasury.gov.uk/pre_budget_report/pre_budget_report_2000/pbr_regional_leaflets/prebud_pbr00_lftwales.cfm
+http://www.hm-treasury.gov.uk/spending_review/spending_review_2000/associated_documents/spend_sr00_ad_ccrappe.cfm
+http://www.hm-treasury.gov.uk/spending_review/spending_review_2000/associated_documents/spend_sr00_ad_ccrgloss.cfm
+http://www.hm-treasury.gov.uk/spending_review/spending_review_2000/associated_documents/spend_sr00_ad_ccrpubs.cfm
+http://www.hmac.org/benefits/
+http://www.hmag.org.uk/robertTressell/
+http://www.hmc.com/content/writingresumes.shtml
+http://www.hmc.psu.edu/healthinfo/b/blooddonation.htm
+http://www.hmc.psu.edu/healthinfo/g/glaucoma.htm
+http://www.hmce.gov.uk/channelsPortalWebApp/channelsPortalWebApp.portal?_nfpb=true&_pageLabel=pageContactUs_ShowContent&id=HMCE_CL_001610&propertyType=document
+http://www.hmce.gov.uk/channelsPortalWebApp/downloadFile?contentID=HMCE_CL_000345
+http://www.hmcourts-service.gov.uk/legalprof/tariffs/tariff_harker.htm
+http://www.hmcstaff.com.au/Products%20and%20Services/Cheques/Member%20Information/MEMBER%20CHEQUING%20TERM%20&%20CONDITIONS.htm
+http://www.hmhm.com/hmhm/serviceofferring/
+http://www.hmongihrw.org/contactlist.html
+http://www.hmongtoday.com/displaynewsRedirectMe.asp?ID=1644
+http://www.hmrc.gov.uk/cnr/nr_landlords.htm
+http://www.hmrc.gov.uk/freedom/foi-02.htm
+http://www.hmrc.gov.uk/payrollgiving/employers/stories.htm
+http://www.hmrc.gov.uk/pdfs/ir148.htm
+http://www.hms.harvard.edu/ombuds/ci_directions.htm
+http://www.hmsconway.org/conway_trust.html
+http://www.hmso.gov.uk/acts/acts1995/Ukpga_19950025_en_5.htm
+http://www.hmso.gov.uk/acts/locact99/90001--b.htm
+http://www.hmso.gov.uk/sr/sr2004/20040519.htm
+http://www.hoadley.net/options/BS.htm
+http://www.hoadley.net/options/bs.htm
+http://www.hoadley.net/options/calculators.htm
+http://www.hoagiesgifted.org/highly_gifted.htm
+http://www.hoagiesgifted.org/lighter_note.htm
+http://www.hoart.cam.ac.uk/staff.htm
+http://www.hoax-slayer.com/current-issue.html
+http://www.hoax-slayer.com/perfume-bogus-warning.html
+http://www.hoax-slayer.com/survive-heart-attack.html
+http://www.hobartpulp.com/
+http://www.hobbico.com/jobs.html
+http://www.hobbshillwood.herts.sch.uk/events/wales/weekend_away_at_wales.htm
+http://www.hobbsnet.com/university/chapter11.html
+http://www.hobby-lobby.com/howto.htm
+http://www.hobbyhouse.co.uk/electric.htm
+http://www.hobbyspace.com/Active/controversy.html
+http://www.hobbyspace.com/SatWatching/
+http://www.hobbyspace.com/Tourism/
+http://www.hobbytalk.com/modules.php?op=modload&name=News&file=index&catid=&topic=&startrow=110
+http://www.hoboes.com/html/NetLife/NSpace/Using/Control.shtml
+http://www.hobotraveler.com/083makingnewslettersshorterinsert.html
+http://www.hobrad.com/acregree.htm
+http://www.hobrad.com/ands.htm
+http://www.hockeyfights.com/articles/194
+http://www.hockeysfuture.com/article.php?sid=7184&mode=threaded&order=0
+http://www.hockeysfuture.com/article.php?sid=7235&mode=threaded&order=0
+http://www.hockeysfuture.com/article.php?sid=7249&mode=threaded&order=0
+http://www.hockeysfuture.com/article.php?sid=7395&mode=threaded&order=0
+http://www.hockeytech.com/summer_camp_program_outlines
+http://www.hockinghills.com/maps/wf_tour.htm
+http://www.hoerl.com/Music/music4_summary.html
+http://www.hoffmannbaron.com/press/trade_dress.cfm
+http://www.hoflin.com/ShortStory.html
+http://www.hoganstand.com/general/ground/articles/03140311.htm
+http://www.holar.is/teach.htm
+http://www.holdenarb.org/detschedule.htm
+http://www.holdthefrontpage.co.uk/day/code/code2.shtml
+http://www.holdthefrontpage.co.uk/news/sept2001newsindex.shtml
+http://www.holdthefrontpage.co.uk/news/titlesdaily/020.shtml
+http://www.holdthefrontpage.co.uk/training/031216nce.shtml
+http://www.holford.org.uk/mt/
+http://www.holiday-rentals.co.uk/index.cfm/property/4242.cfm
+http://www.holiday-rentals.com/index.cfm/property/12185.cfm
+http://www.holiday-rentals.com/index.cfm/property/15107
+http://www.holiday-rentals.com/index.cfm/property/8409.htm
+http://www.holidayhotels.com/hotel.php?HID=20020524182610953909
+http://www.holidayhotels.com/hotel.php?HID=20020815142805491494
+http://www.holidayhotels.com/hotel.php?HID=20020815142805491494&hn=Gran%20Tacande%20Hotel%20(Tenerife)%20
+http://www.holidayhotels.com/hotel.php?HID=20031107091419393111
+http://www.holidayhotels.com/hotel.php?HID=20031126123321820782
+http://www.holidayhotels.com/hotel.php?HID=20040123112135669212
+http://www.holidayhotels.com/hotel.php?HID=20040615171804890778
+http://www.holidaylettings.co.uk/rentals/Italy/Umbria/easy-reach-of-Spoleto-city-centre./above-Ferentillo/4377
+http://www.holidays.net/mlk/holiday.htm
+http://www.holidaytruths.co.uk/viewtopic.php?p=153754
+http://www.holidaytruths.co.uk/viewtopic.php?p=92230
+http://www.holidaze.com/cgi-bin/index.cgi?current=9&subcurrent=55&site=holidaze
+http://www.holistichelp.net/saveplanet.html
+http://www.holisticseek.com/holistic_information_articles.htm
+http://www.hollandconsultinggroup.com/publications_behaviour.HTM
+http://www.hollanddate.com/
+http://www.hollisterkids.com/download.asp?Asset_Id=20&File_Id=263
+http://www.hollowbones.org/sutra6.html
+http://www.hollygolightly.com/forum/forum_posts.asp?TID=29&PN=1
+http://www.hollylisle.com/fm/Articles/wc1-4.html
+http://www.hollylisle.com/fm/Workshops/deeper-people.html
+http://www.hollylisle.com/fm/Workshops/notecard_plotting.html
+http://www.hollywood.com/news/detail/article/1705101
+http://www.hollywoodgateway.com/news-old.php
+http://www.hollywoodjesus.com/truman2.htm
+http://www.hollywoodnorthextras.com/info.htm
+http://www.hollywoodreporter.com/thr/article_display.jsp?vnu_content_id=1000485569
+http://www.hollywoodreporter.com/thr/international/feature_display.jsp?vnu_content_id=1000732581
+http://www.hollywoodteenmovies.com/ForSaleRichardNorton.html
+http://www.hollywoodtheatre.ca/programmes/20021220.html
+http://www.holocaust-history.org/19420605-rauff-spezialwagen/
+http://www.holocaust-history.org/auschwitz/pressac/technique-and-operation/pressac0053.shtml
+http://www.holocaust-history.org/see-no-evil/
+http://www.holocaust-trc.org/fry.htm
+http://www.holoscience.com/news/mystery_solved.html
+http://www.holotank.com/CBS/cbshistory.htm
+http://www.holovaty.com/blog/archive/2005/05/31/0225
+http://www.holstengalleries.com/nl/206.html
+http://www.holstengalleries.com/nl/211.html
+http://www.holtorf.com/Ray/south_park_republicans.htm
+http://www.holy-trinity.org/morality/homosexuality.html
+http://www.holybible.com/resources/about_kjv.htm
+http://www.holycross.edu/departments/theatre/projects/isp/measure/teachguide/pedagogy.html
+http://www.holyexperiment.org/pages/archst.html
+http://www.holyghostchurch.info/social_ministry/
+http://www.holysmoke.org/cos/kent-fake-religion.htm
+http://www.holysmoke.org/cos/the-lrh-abyss.htm
+http://www.holysmoke.org/sdhok/ken-yng.htm
+http://www.holytrinitygerman.org/septlent.html
+http://www.holytrinitynewrochelle.org/yourti17181.html
+http://www.holytrinityseminary.com/FAQ.htm
+http://www.holywar.org/NoPope.htm
+http://www.homa.org/Details.asp?ContentID=2137352748&TOCID=2083225413
+http://www.home-jewelry-business-success-tips.com/increasing-sales.html
+http://www.home.earthlink.net/~lionlamb/WARNING.HTM
+http://www.home.gil.com.au/~bbiggar/india4.htm
+http://www.home.gil.com.au/~vburton/cryptics/answers.htm
+http://www.home.ix.netcom.com/~hancockm/felt_&_tarrant.htm
+http://www.home.turbonet.com/kitchenculture/tcinfo.htm
+http://www.home.zonnet.nl/cterlaan/awesomeputting.htm
+http://www.home.zonnet.nl/ireland22/irlnews4.htm
+http://www.homeandplay.com/Home%20and%20Play/ask_SummerPlayIdeas.shtml
+http://www.homebase-hols.com/news32.shtml
+http://www.homebirth.org.uk/law.htm
+http://www.homebirth.org.uk/overdue.htm
+http://www.homebirth.org.uk/pain.htm
+http://www.homebirth.org.uk/plan.htm
+http://www.homebirth.org.uk/pph.htm
+http://www.homebirth.org.uk/robert.htm
+http://www.homebirth.org.uk/sophiebreech.htm
+http://www.homebirth.org.uk/transferstudies.htm
+http://www.homebirth.org.uk/water.htm
+http://www.homebizbuzz.co.nz/article.php3?ArticleID=661
+http://www.homebusinessmanual.com.au/promotion/selling.html
+http://www.homebuying.co.uk/DontMiss/featuresStories/2.htm
+http://www.homecaremag.com/mag/medical_good_nights_rest/
+http://www.homecaremag.com/mag/medical_road_traveled/
+http://www.homecinemachoice.com/articles/hccarticles/buyingguide/software.php
+http://www.homeconcepts.ca/house-floor-plans-home%20floor%20plans/house-plans-home-plans-building-resources.htm
+http://www.homeconcepts.ca/house-plans-links/exterior_accessories.htm
+http://www.homeconcepts.ca/house-plans-links/interior_accessories.htm
+http://www.homeedmag.com/HEM/214/jatch.html
+http://www.homeedmag.com/HEM/HEM145.97/145.97_clmn_tkch.html
+http://www.homeenergy.org/consumerinfo/
+http://www.homeenergy.org/consumerinfo/air-leaks/
+http://www.homeenvy.com/db/2/12.html
+http://www.homeenvy.com/db/2/712.html
+http://www.homeexchange.com/show.php?id=14311&nav=Previous+Page
+http://www.homeexchange.com/show.php?id=38809&nav=Previous+Page
+http://www.homeexchange.com/show.php?id=39282&nav=Previous+Page
+http://www.homeexchange.com/show.php?id=39282&nav=Previous+page
+http://www.homefinder.com/philly/search_results.jhtml?search_by_type=new_const&geo_area_text_lookup_id=63611
+http://www.homefinder.com/philly/search_results.jhtml?search_by_type=new_const&geo_area_text_lookup_id=63746
+http://www.homefinder.com/philly/search_results.jhtml?search_by_type=new_const&sort_attrib_active_adult=Y&geo_area_text_lookup_id=63746
+http://www.homefromhome.com/mumbles/fishermans_cottages.htm
+http://www.homegain.com/about_hg/man_team
+http://www.homehealth-uk.com/medical/healthybalanceddiet.htm
+http://www.homehealth-uk.com/medical/heartdisease.htm
+http://www.homelanddefensejournal.com/conf_securityGA.htm
+http://www.homelanddefensejournal.com/conf_securitySF.htm
+http://www.homelanddefensejournal.com/conf_securityTX.htm
+http://www.homelandsecurity.mo.gov/ThreatReports080104.htm
+http://www.homelandsecurityus.com/
+http://www.homelandsecurityus.com/aqfrogmen.asp
+http://www.homeless.org.uk/db/20031117160417
+http://www.homeloans.ie/profile_terms.htm
+http://www.homemods.org/homemods_monthly_news/monthly-Feb04.htm
+http://www.homemortgageguide.com/approve/
+http://www.homeoffice.gov.uk/crime/burglary/preventionadvice/
+http://www.homeoffice.gov.uk/crimpol/police/penalty/faq.html
+http://www.homeoffice.gov.uk/docs/s31.html
+http://www.homeoffice.gov.uk/docs2/buildpicturecomcohesion.html
+http://www.homeoffice.gov.uk/docs2/hs_safesecure2.html
+http://www.homeofficereports.com/Anti-Virus%20Software.htm
+http://www.homeofficereports.com/phones_faxes.htm
+http://www.homeofheroes.com/hallofheroes/1st_floor/flag/1bfb_disp6.html
+http://www.homeofheroes.com/wallofhonor/spanish_am/08_roughriders.html
+http://www.homeoint.org/morrell/articles/pm_workl.htm
+http://www.homepokertourney.com/cards.htm
+http://www.homerecordingconnection.com/forum.php?action=view_thread&id=6655&frm=1
+http://www.homerhickam.com/cgi-bin/included/newsletters.cgi?id=8
+http://www.homernews.com/stories/033105/seawatch_0331sea001.shtml
+http://www.homeroomdirect.com/under25/
+http://www.homerton.nhs.uk/visitingus/visitingtimes.html
+http://www.homes4sale.co.nz/useful-links/
+http://www.homeschooling.com.au/index8.asp?tree=3&doc=3&page=catalog1&name=Craft&folder=cat&subjects=Craft
+http://www.homeschoollearning.com/units/unit_04-26-02.shtml
+http://www.homeschoollearning.com/units/unit_09-27-01.shtml
+http://www.homeschools.org/tutorials/
+http://www.homeschoolzone.com/science/butterflies.htm
+http://www.homeseekers.ie/asp/hs_rentallist.asp
+http://www.homesite.com.au/renovate/flooring/ideas_and_designs/energy_efficient_floor_structures/
+http://www.homesite.com.au/renovate/flooring/ideas_and_designs/energy_efficient_floor_structures/2/
+http://www.homespuntapes.com/artists/artistpage.asp?artID=358
+http://www.homestateonline.com/privacy.htm
+http://www.homestead.com/bulldogsworld/IBD.html
+http://www.homestead.com/dclwolf/gospeld31.html
+http://www.homestead.com/dclwolf/gospeld39.html
+http://www.homestead.com/dclwolf/temple.html
+http://www.homestead.com/ohio45/knoxville.html
+http://www.homestead.com/philofreligion/files/Paleyhume.html
+http://www.homesteadhotels.com/siteInfo/makingReservation.asp
+http://www.homestore.com/Finance/Legal/Billcollectors.asp
+http://www.homestore.com/HomeGarden/Decorate/FengShui/1225.asp
+http://www.homestore.com/HomeGarden/Gardening/Features/Gardens/FrontyardFacelift.asp
+http://www.homestore.com/HomeGarden/HomeImprovement/Tools/Glossary/CRHO_D.asp
+http://www.homestore.com/Move/Moving/DIY/Pets.asp
+http://www.homestore.com/RealEstateNews/General/KeepCool.asp
+http://www.homestore.com/homegarden/gardening/landscaping/zones/climate/index.asp
+http://www.homestyleservices.com/askTheExperts.asp
+http://www.homesweetroad.com/
+http://www.hometaught.com/homeschooling/ed_philosophy/app_objective.aspx
+http://www.hometeams.com/stlouisrams1.html
+http://www.hometheaterforum.com/htforum/showthread.php?s=&threadid=209202
+http://www.hometheatermag.com/frontprojectors/305panasonic/
+http://www.hometownlocator.com/City/Fairfax-Station-Virginia.cfm
+http://www.hometownsource.com/columns_opinion/heinzman/stories/120100.html
+http://www.hometoys.com/htinews/apr02/articles/railey/railey.htm
+http://www.hometoys.com/htinews/feb05/articles/rti/baker.htm
+http://www.hometoys.com/tips/tips13.htm
+http://www.hometoys.com/tips/tips22.htm
+http://www.hometrainingtools.com/faq/products/insects/q9.html
+http://www.homevideostudio.com/training.htm
+http://www.homeworking.com/
+http://www.homeworkout.com/equipment.php
+http://www.hominf.org/slat/slatmm.htm
+http://www.hon.ch/Dossier/MotherChild/birth_disorders/down_syndrome.html
+http://www.hon.ch/Dossier/MotherChild/female_repro/puberty.html
+http://www.hon.ch/Library/Theme/HepB/inf.html
+http://www.hon.ch/Library/Theme/HepB/intro.html
+http://www.honda.ca/RacingEng/PressRelease/RoadRacing/2004-07-04-01.htm
+http://www.hondaev.org/acarc.html
+http://www.honestpage.co.uk/index.asp?p=2&stid=276
+http://www.honestselling.com/articles/manipulation_through_truth.htm
+http://www.honestthinking.org/
+http://www.honeybeecentre.com/course_descriptions.htm
+http://www.honeycouncil.ca/users/folder.asp?FolderID=1932
+http://www.honeyharbour.on.ca/Regatta/RegattaOverview2003.htm
+http://www.honeynet.org/papers/bots/
+http://www.hongkong-eu.org/press_release/pressrelease_CNYluncheon_Dublin2005.html
+http://www.hongkongpost.com/eng/products_services/trade_declaration_service/pec_details.htm
+http://www.honkunji.com/okinawa.html
+http://www.honoluluadvertiser.com/specials/pearlharbor60/chapter1.html
+http://www.honors.ufl.edu/applicationprocedure.html
+http://www.honors.umd.edu/ScholarshipFAQ.htm
+http://www.honvedelem.hu/cikk.php?cikk=18221&next=
+http://www.hoo-ah.net/
+http://www.hoo-ah.net/entry1.html
+http://www.hooah4health.com/body/new/askLucyFAQs_2.htm
+http://www.hoobly.com/0/1857/0/
+http://www.hoobly.com/0/2162/0/
+http://www.hoobly.com/10745/0/10/
+http://www.hoobly.com/10745/42/0/
+http://www.hoobly.com/184/1781/0/
+http://www.hood-meddac.army.mil/default.asp?page=adv_med_dir&vi=n&mnu=1
+http://www.hood-meddac.army.mil/default.asp?page=families&vi=n&mnu=1
+http://www.hood-meddac.army.mil/default.asp?page=links&vi=n&mnu=0
+http://www.hood-meddac.army.mil/default.asp?page=news_archive_2001_07&vi=n&mnu=6
+http://www.hood-meddac.army.mil/default.asp?page=pregnancy_series&vi=n&mnu=1
+http://www.hoofcare.com/newproducts1_0599.html
+http://www.hooked-on-nails.com/naildisorders.html
+http://www.hookonline.org/articles/WA_A_06.htm
+http://www.hoopshype.com/rumors.htm
+http://www.hoopsvibe.com/courtside-here-comes-the-sun-again-article-18415.html
+http://www.hoopsvibe.com/eastern-conference-playoff-preview-article-22292.html
+http://www.hoopsworld.com/article_7415.shtml
+http://www.hoopsworld.com/cgi-bin/news/exec/view.cgi?archive=39&num=8569
+http://www.hoopsworld.com/printer_7415.shtml
+http://www.hootenanny.com/hoot/2/jewelry.html
+http://www.hooverdigest.org/974/robinson.html
+http://www.hooverdigest.org/982/anderson_m.html
+http://www.hoovers.com/hni-corporation/--ID__13626--/free-co-factsheet.xhtml
+http://www.hooyou.com/roadtogreencard/faq.html
+http://www.hope.edu/pr/announcements/ten.html
+http://www.hope4kidz.org/Lexi/l_s.html
+http://www.hopeforhealing.org/Maynews98.html
+http://www.hopetillman.com/findqual.html
+http://www.hopeworldwide.org/
+http://www.hopkins-arthritis.som.jhmi.edu/case/case7/7_case.html
+http://www.hopkins-arthritis.som.jhmi.edu/mngmnt/exercise.html
+http://www.hopkins-arthritis.som.jhmi.edu/mngmnt/osteoandweight.html
+http://www.hopkins.k12.mn.us/pages/high/GenInfo/royal_roundtable.html
+http://www.hopkinsafter50.com/html/silos/nutrition/nwLIB_HA50_SeriousDisorders.php
+http://www.hopkinsmedicine.org/hmn/S03/annals.cfm
+http://www.hopstudios.com/nep/column/
+http://www.hoptechno.com/book11.htm
+http://www.horizongalleries.co.uk/artist/index.lasso?artist=34
+http://www.horizonherbs.com/herb-seed-links.html
+http://www.horizonmag.com/2/ira-glass.asp
+http://www.horizonmag.com/5/eaves.htm
+http://www.horizonshelpr.org/science/ecosystems/standards.html
+http://www.hormoneprofile.com/resources.htm
+http://www.hornes.org/theologia/aboutus.htm
+http://www.horoscope.com/samples/future.html
+http://www.horror-wood.com/lewood.htm
+http://www.horror.com/php/article-439-1.html
+http://www.horrorchannel.com/dread/modules.php?op=modload&name=News&file=article&sid=896
+http://www.horse-sense.org/archives/20040619095347.phtml
+http://www.horseandhound.co.uk/best/396/55954.html
+http://www.horseandhound.co.uk/news/397/59397.html
+http://www.horsecouncil.org.au/POCMEDIA.html
+http://www.horsedata.co.uk/Making%20Allowances/Chapter%2013%20Part%201.htm
+http://www.horseflyonline.com/index.php?fuseaction=home.viewarticle&article_id=356
+http://www.horsegroomingsupplies.com/horse-forums/archive/index.php/f-6.html
+http://www.horsekeeping.com/Horse_Newsletter/October_2004.htm
+http://www.horsekeeping.com/horse_care/horse_health_care_program.htm
+http://www.horsekeeping.com/horse_health_care/horse_health_care_program.htm
+http://www.horsemagazine.com/BREEDINGBARN/2005%20Jumping%20Breeders/2005Jumping%20Breeders.html
+http://www.horseracingintfed.com/infoDisplay.asp?section=3
+http://www.horsereview.net/News_2001/footandmouth1.htm
+http://www.horseshoepitching.com/rules/nhparul.shtml
+http://www.horsleylasik.net/index.cfm/news/horsleydocs
+http://www.hort.uconn.edu/2005garden/2005program.htm
+http://www.hort.uconn.edu/cipwg/art_pubs/GUIDE/consideration.htm
+http://www.hort.uconn.edu/cipwg/criteria/criteria.html
+http://www.hort.uconn.edu/ipm/nursery/htms/invasives.htm
+http://www.horwath.com.au/publications/articles/oct_breakup.asp
+http://www.hoseasons.co.uk/holidays/ricottages/conditions.shtml
+http://www.hoseasons.co.uk/holidays/rilodges/conditions.shtml
+http://www.hoseasons.co.uk/holidays/rilodges/parks/clog.asp
+http://www.hoselton.net/religion/hwa/booklets/ptchild/part1.htm
+http://www.hoslink.com/bttut.htm
+http://www.hospice.ie/sorder.htm
+http://www.hospicecare.com/
+http://www.hospicepatients.org/hospic1.html
+http://www.hospices.org/inpatient_unit.htm
+http://www.hospitalconnect.com/aha/about/history.html
+http://www.hospitalityupgrade.com/hospitality/Client/HU/Articles.nsf/0/50C38A8706A13A4585256F8100538531?OpenDocument
+http://www.hospitalmanagement.net/contractors/general/wuzhou/
+http://www.hospitals.be/chuliege/plancos/english.html
+http://www.hostboard.com/cgi-bin/ultimatebb.cgi/ubb/get_topic/f/410/t/6019/p/1
+http://www.hostboard.com/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=410&t=6019
+http://www.hosted-forum.com/index.php?boardid=amisweb&showtopic=28
+http://www.hostels-ireland.com/seedo3.php
+http://www.hostingmetro.com/resources/a-h.html
+http://www.hostingonnet.com/usepolicy.php
+http://www.hostroute.com/tos.html
+http://www.hot-property-spain.com/dreamaccount/?page=static&content=acceptable_use
+http://www.hot.springs.national-park.com/sights.htm
+http://www.hot933.fm/station/privacy.aspx
+http://www.hot933.fm/station/terms.aspx
+http://www.hot937.com/privacy_policy.shtml
+http://www.hot937.com/terms_of_use.shtml
+http://www.hot983.com/rdub.html
+http://www.hotaction.ca/
+http://www.hotboxingnews.com/
+http://www.hotcalaloo.com/oct03.htm
+http://www.hotcalaloo.com/www8v2.htm
+http://www.hotchkiss.k12.co.us/HHS/nobelnov/faulkner.htm
+http://www.hotel-europe.co.uk/brochure/boars-head-hotel-carmarthen/
+http://www.hotel-ireland.com/cork-hotels/cork-city-hotels.html
+http://www.hotel-northwales.com/conferences1.html
+http://www.hotel-online.com/Neo/SpecialReports1998/Nov98_Ferguson.html
+http://www.hotel-rates.com/australia/victoria/melbourne/novotel-melbourne-on-collins.html
+http://www.hotel-rates.com/bahamas/nassau/one-and-only-ocean-club.html
+http://www.hotel-rates.com/us/district-of-columbia/washington/lc-the-st-regis-washington-dc.html
+http://www.hotel-uk.com/uk-hotels/birmingham-hotels.html
+http://www.hotelbruce.com/01_02/bruceblog.php
+http://www.hotelbuenavista.com/2004/04Publishedstories/SDUniontribuneEC.htm
+http://www.hotelfun4kids.com/hotelproducts/diaperchange.htm
+http://www.hotelfun4kids.com/travelnews/resorts-hotels/queenelizabeth.htm
+http://www.hotelfun4kids.com/travelsafetytips/walkingsafe.htm
+http://www.hotelgarza.com/post-texas-lodging.asp
+http://www.hoteli-palace.si/EN/ceniki/posebna_ponudba.php
+http://www.hoteljobresource.com/menu/article14825.html
+http://www.hoteljobs.ie/ireland.asp
+http://www.hotelnet.ro/romania.htm
+http://www.hotelreviewscotland.com/hotel.asp?id=276
+http://www.hotels-huahin.com/praseban/
+http://www.hotels-in-vietnam.com/hotels/hanoi/operahilton.html
+http://www.hotels-prague.org/hotel-carlo-iv-prague.htm
+http://www.hotels-search-engine.org/hotel/11265251
+http://www.hotels-search-engine.org/hotel/11283219
+http://www.hotelstreet.co.uk/Hotels-1052-Jupiter-Saturno-Marte_Complex__Club_Mac_Alcudia_.html
+http://www.hotelthailand.com/advicetovisitors.html
+http://www.hotfair.com/category.cfm?ID=65
+http://www.hothardware.com/hh_files/Drives/plextor_708a.shtml
+http://www.hothardware.com/viewarticle.cfm?articleid=557&cid=4
+http://www.hotlib.com/articles/show.php?t=Heart_Attack_Warning_Signs
+http://www.hotlib.com/articles/show.php?t=Parenting
+http://www.hotlizard.net/terms.asp
+http://www.hotmsnnames.com/msn_names_w.php
+http://www.hotornot.com/pages/faq.html
+http://www.hotplatters.com/lp/Indy.html
+http://www.hotpointstringband.com/raves.html
+http://www.hotsaucelive.com/
+http://www.hotscripts.com/Detailed/11182.html
+http://www.hotscripts.com/Detailed/19450.html
+http://www.hotscripts.com/Detailed/8968.html
+http://www.hotscripts.com/Detailed/9706.html
+http://www.hotstocks.com/
+http://www.hotvsnot.com/
+http://www.hotwire.com/
+http://www.hotworldcustoms.com/BBB%20Project.htm
+http://www.houghtonmifflinbooks.com/catalog/titledetail.cfm?textType=excerpt&titleNumber=688199
+http://www.houghtonmifflinbooks.com/readers_guides/bunting/train.shtml
+http://www.hounslow.gov.uk/home/a-z_services/t/tradingstandardsandconsumeradvice.htm
+http://www.hour.ca/news/news.aspx?iIDArticle=5747
+http://www.hour.ca/news/news.aspx?iIDArticle=6274
+http://www.house-of-tartan.scotland.net/viewinf.htm
+http://www.house-removals-uk.co.uk/guide_house_removals_faq.asp
+http://www.house.gov/appropriations_democrats/press/pr_050624.htm
+http://www.house.gov/apps/list/hearing/ok04_cole/spendingbulge.html
+http://www.house.gov/apps/list/press/mt00_rehberg/2002423rockyboys.html
+http://www.house.gov/bradmiller/legissuessci.html
+http://www.house.gov/budget_democrats/cmte_rules.htm
+http://www.house.gov/budget_democrats/congressional_budgets/fy2004/conf_summary/repubs_cut.htm
+http://www.house.gov/budget_democrats/glossary.htm
+http://www.house.gov/capuano/
+http://www.house.gov/cunningham/
+http://www.house.gov/ethics/DeLay_letter.htm
+http://www.house.gov/hasc/testimony/106thcongress/99-03-04ohle.htm
+http://www.house.gov/hasc/testimony/106thcongress/99-10-13graham.htm
+http://www.house.gov/hasc/testimony/106thcongress/99-10-26jumper.htm
+http://www.house.gov/house/Tying_it_all.shtml
+http://www.house.gov/international_relations/democratic/statement_040421_Hearing_Taiwan.html
+http://www.house.gov/jec/fed/intern.htm
+http://www.house.gov/jec/hearings/intell/alibek.htm
+http://www.house.gov/jec/hearings/radio/merritt.htm
+http://www.house.gov/jec/imf/meltzer.htm
+http://www.house.gov/kingston/2003Nominees.htm
+http://www.house.gov/lucas/news/press108/108subcom.html
+http://www.house.gov/mcdermott/agoa/index.shtml
+http://www.house.gov/mcdermott/sp050609.shtml
+http://www.house.gov/paul/congrec/congrec2003/cr012903.htm
+http://www.house.gov/pitts/press/commentary/050218c-pitts-gerlach-familyfarm.htm
+http://www.house.gov/rehberg/hottopics.shtml
+http://www.house.gov/rules/rules_hear10.htm
+http://www.house.gov/rules/rules_over_106.htm
+http://www.house.gov/rules/rules_over_108.htm
+http://www.house.gov/science/barnard_061799.htm
+http://www.house.gov/science/gardella_071900.htm
+http://www.house.gov/science/hearings/full03/mar12/harnage.htm
+http://www.house.gov/science/hearings/full03/mar26/jacobs.htm
+http://www.house.gov/science/hearings/space02/oct03/weiler.htm
+http://www.house.gov/science/press/107/107-296.htm
+http://www.house.gov/science/press/109/109-10.htm
+http://www.house.gov/science/smith_031199.htm
+http://www.house.gov/scott/press/teachers_guide_in_war.htm
+http://www.house.gov/shays/reform/s98-409.htm
+http://www.house.gov/tauscher/media/speech-warcollege-06-05-00.html
+http://www.house.gov/tierney/press/brownvboard051704.shtml
+http://www.house.gov/transportation/aviation/04-09-03/bolen.html
+http://www.house.gov/transportation/cgmt/12-06-01/loy.html
+http://www.house.gov/transportation/press/press2001/release144.html
+http://www.house.mo.gov/bills051/jrn/jrn051.htm
+http://www.house.state.mo.us/bills01/biltxt01/intro01/HB0267I.htm
+http://www.houseandhomeonline.com/garden0799.html
+http://www.househusband.blogspot.com/
+http://www.houseofbrides.com/national/orderstatus.htm
+http://www.houseofcaron.com/paulette_stinson_molds.htm
+http://www.houseofedu.com/aiuft/design.html
+http://www.houseofmabel.com/programs/winthemes/
+http://www.houseofwonders.com/details.asp?idaccomodation=33&iddestination=2&idarea=
+http://www.houseofwonders.com/details.asp?idaccomodation=63&iddestination=2&idarea=
+http://www.housepals.co.uk/html/faq.html
+http://www.houseplansandmore.com/estimator/index.aspx
+http://www.housepricechat.co.uk/
+http://www.houserabbit.co.uk/rwf/articles/abscesses.htm
+http://www.housesbybonnie.com/main.htm
+http://www.housing.berkeley.edu/student/livingwitharoommate/
+http://www.housing.ku.edu/handbook/03_supportstaff.htm
+http://www.housing.lon.ac.uk/site7/Postcodes/SE15.htm
+http://www.housing.org.uk/library/viewfile.asp?fid=2269
+http://www.housing.org.uk/library/viewfile.asp?fid=2270
+http://www.housing.org.uk/library/viewfile.asp?fid=3563
+http://www.housingauthority.gov.hk/en/aboutus/hd/waitlistapp/0,,,00.html
+http://www.housingoutlook.co.uk/Papers/ancient2.html
+http://www.housingzone.com/topics/giants/management/pbg04ha006.asp
+http://www.housingzone.com/topics/giants/management/pbg04ja006.asp
+http://www.housingzone.com/topics/nahb/green/nhb00ca029.asp
+http://www.houston-press.com/extra/cyberstalk.html
+http://www.houstonculture.org/hispanic/tejano1.html
+http://www.houstonculture.org/hispanic/tejano3.html
+http://www.houstonisd.org/Departments/channel_front/0,3107,49953492_49937982,00.html
+http://www.houstonpress.com/Issues/2005-05-26/news/letters.html
+http://www.houstontexans.com/community/news_detail.php?PRKey=766
+http://www.houstonvoice.com/blog/index.cfm?start=1/28/05&end=2/4/05
+http://www.hoverclubofamerica.org/index.php?showtopic=328&st=30
+http://www.hoverclubofamerica.org/lofiversion/index.php/t328.html
+http://www.howard.k12.md.us/ourschools/terrorism.html
+http://www.howardbloom.net/reinventing_capitalism/
+http://www.howardnations.com/lawlinks/writing_aids.html
+http://www.howardpublishing.com/pcsamples/chapters/sevencheckleader.htm
+http://www.howardwfrench.com/archives/2005/01/13/feel_like_doin_something_wrong/
+http://www.howdesign.com/
+http://www.howe.k12.ok.us/~jimaskew/chem/pass4.htm
+http://www.howe.k12.ok.us/~jimaskew/feynman.htm
+http://www.howestreet.com/
+http://www.howestreetgallery.com/dynamic/artist_artwork.asp?ArtistID=105
+http://www.howlin-wolf.com/about.htm
+http://www.howrey.com/practices/ip/index.cfm?contentID=261
+http://www.howrey.com/practices/ip/index.cfm?contentID=293
+http://www.howstuffworks.com/light1.htm
+http://www.howtocreate.co.uk/sidebarF.php?fullDetails=1
+http://www.howtogermany.com/pages/doctors.html
+http://www.howtolearn.com/personal.html
+http://www.howtomodel.com/ask_aaron/answer_archive.html
+http://www.howtousewhatyouvegot.com/excerpts.htm
+http://www.howtousewhatyouvegot.com/praise.htm
+http://www.hp.com/hpinfo/execteam/speeches/robison/nab04.html
+http://www.hp.com/hpinfo/newsroom/feature_stories/2003/03itanium.html
+http://www.hp.com/hpinfo/newsroom/feature_stories/2004/04smartoffice2.html
+http://www.hp.com/hpinfo/newsroom/feature_stories/2005/05clark.html
+http://www.hp.com/hpinfo/newsroom/press/2004/040802a.html
+http://www.hp.com/products1/servers/scalableservers/superdome/wos.html
+http://www.hp.com/sbso/productivity/color/success_share.html
+http://www.hp.com/sbso/productivity/office/presentations_guide.html
+http://www.hpa.org.au/mary.htm
+http://www.hpa.org.uk/cdr/pages/news.htm
+http://www.hpac.com/member/archive/0004war.htm
+http://www.hpana.com/news.17946.html
+http://www.hpbazaar.com/cooltown/mpulse/0803-moblogging.asp
+http://www.hpbazaar.com/cooltown/mpulse/1202-rulesbazaar.asp
+http://www.hpcc.gov/pubs/blue94/section.4.3.html
+http://www.hpcc.org/datafile/datafilev01.html
+http://www.hpclt.org/min_02-04-23.htm
+http://www.hpclt.org/min_03-11-10.htm
+http://www.hpcnet.org/PresidentCampusPlanningLaunch
+http://www.hpcnursing.com/news.html
+http://www.hpolicy.duke.edu/cyberexchange/conversion/gexecsum.html
+http://www.hpronline.org/news/2002/11/11/BooksAndArts/A.Marriage.Of.Ideas-318707.shtml
+http://www.hps-online.com/disease.htm
+http://www.hps-online.com/hurine1.htm
+http://www.hps.com/~tpg/singapore/index.php?file=vol16
+http://www.hps.com/~tpg/ukdict/index.php?file=ukdict-2
+http://www.hps.com/~tpg/ukdict/index.php?file=ukdict-7
+http://www.hpssims.com/pages/products/adc2/ADC2-Main.html
+http://www.hpworld.com/hpworldnews/hpw009/04mpe.html
+http://www.hq.nasa.gov/office/pao/History/SP-4009/v4p2a.htm
+http://www.hq.nasa.gov/office/pao/History/SP-4009/v4p2c.htm
+http://www.hq.nasa.gov/office/pao/History/SP-4201/ch13-4.htm
+http://www.hq.nasa.gov/office/pao/History/SP-4201/ch9-1.htm
+http://www.hq.nasa.gov/office/pao/History/SP-4203/ch13-6.htm
+http://www.hq.nasa.gov/office/pao/History/SP-4205/ch11-2.html
+http://www.hq.nasa.gov/office/pao/History/SP-4214/ch10-5.html
+http://www.hq.nasa.gov/office/pao/History/SP-4214/ch4-2.html
+http://www.hq.nasa.gov/office/pao/History/SP-4214/ch6-2.html
+http://www.hq.nasa.gov/office/pao/History/augustine/racfup3.htm
+http://www.hq.nasa.gov/office/pao/History/hyperrev-x15/ch-1.html
+http://www.hq.nasa.gov/ogc/general_law/ethics/postemployment.html
+http://www.hr.columbia.edu/hr/benefits/ssbib-2005/dental/twu.html
+http://www.hr.columbia.edu/hr/policies/fmla/fmla/
+http://www.hr.columbia.edu/hr/printable/policies/fmla/fmla/
+http://www.hr.duke.edu/policy/ppm/e-5.htm
+http://www.hr.lanl.gov/JobClassification/jobseries/osgs_standards.shtml
+http://www.hr.msu.edu/HRsite/Documents/Staff/Policies/CFC.htm
+http://www.hr.msu.edu/HRsite/forms/FacultyForms/FormInfoAppt.htm
+http://www.hr.queensu.ca/benefits/sup-plan.php
+http://www.hr.unimelb.edu.au/someone-says-i-harassed-them/
+http://www.hr.upenn.edu/staffrelations/resolution/resolving.asp
+http://www.hr.upenn.edu/staffrelations/resolution/resolving.asp?print=true
+http://www.hr95.org/dw101.htm
+http://www.hrblock.com/taxes/fast_facts/tax_law/taxlaw_wftr.html
+http://www.hrc.co.nz/index.php?p=13886&format=text
+http://www.hrc.org/
+http://www.hrc.org/Content/NavigationMenu/About_HRC/Internships.htm
+http://www.hrc.org/Content/NavigationMenu/Work_Life/Get_Informed2/Marriage_and_Your_Workplace/Marriage_and_Workplace_Introduction.htm
+http://www.hrc.org/Template.cfm?Section=Resources2&Template=/ContentManagement/ContentDisplay.cfm&ContentID=22931
+http://www.hrc.state.vt.us/mediation.htm
+http://www.hrc.wmin.ac.uk/hrc/theory/mediaspectacular/t.1.3%5B3%5D.html
+http://www.hrcberkeley.org/courses/courses_past.html
+http://www.hrcr.org/Text/HotTopics/palestinian.html
+http://www.hrcr.org/safrica/expression/tinker_des_moines.html
+http://www.hrcr.org/safrica/labor/broadcasting_canada.html
+http://www.hrd.qut.edu.au/recruitselect/itembanks/selectionhowto.jsp
+http://www.hrd.qut.edu.au/recruitselect/jobs/25001.jsp
+http://www.hrdirection.co.nz/articles.html
+http://www.hrea.org/learn/guides/slavery.html
+http://www.hreoc.gov.au/
+http://www.hreoc.gov.au/disability_rights/decisions/conciliation/0904.htm
+http://www.hreoc.gov.au/disability_rights/faq/Goods_etc/goods_etc.html
+http://www.hreoc.gov.au/disability_rights/standards/www_3/www_3.html
+http://www.hreoc.gov.au/human_rights/asylum_seekers/
+http://www.hreoc.gov.au/human_rights/human_rights_reports/hrc_report_16.html
+http://www.hreoc.gov.au/info_for_teachers/pregnancy/fact_sheet.html
+http://www.hreoc.gov.au/sex_discrimination/
+http://www.hreoc.gov.au/sex_discrimination/pml2/faq.html
+http://www.hreoc.gov.au/sex_discrimination/sexual_harrassment/guide_to_sda.html
+http://www.hreoc.gov.au/sex_discrimination/young_women/
+http://www.hreoc.gov.au/social_justice/nt_issues/introduction.html
+http://www.hreoc.gov.au/speeches/sex_discrim/making_it_work.html
+http://www.hreoc.gov.au/speeches/social_justice/treaty_conference.html
+http://www.hrforum.com/press/newsletters/enews52.asp
+http://www.hrforumzim.com/evmp/evmpreports/pev000807/peviol000807d.htm
+http://www.hrforumzim.com/members_reports/foodriots98/food9801c5.htm
+http://www.hrh.org/faq.html
+http://www.hri.org/cgi-bin/brief?/news/greek/ana/2000/00-08-01.ana.html
+http://www.hri.org/cgi-bin/brief?/news/greek/apeen/1997/97-06-08.apeen.html
+http://www.hri.org/docs/statedep/1997/97-02-26.std.html
+http://www.hri.org/news/greek/ana/2000/00-08-01.ana.html
+http://www.hrinfodesk.com/
+http://www.hrinfodesk.com/employmentlaw_5.htm
+http://www.hrinz.org.nz/SITE_Default/SITE_HR_Info/SITE_Hot_Stuff/default.asp
+http://www.hrm.neu.edu/benefits-glance.html
+http://www.hrm.uh.edu/docs/lpmi%20archives/2000.04.htm
+http://www.hrma-agrh.gc.ca/scripts/contracts-contrats/reports-rapports_e.asp?r=l&yr=2004&q=1
+http://www.hrmguide.co.uk/amazon-big/heavy.xsl
+http://www.hrnicholls.com.au/nicholls/nichvo20/Dalgleish99.html
+http://www.hrnicholls.com.au/nicholls/nichvo22/elliott2001.html
+http://www.hrnk.org/pr-oct2103.html
+http://www.hrothgar.co.uk/YAWS/practice/pdp-47.htm
+http://www.hrrc.net/news/constitution.html
+http://www.hrs.iastate.edu/AAO/eod/introduction.shtml
+http://www.hrsdc.gc.ca/asp/gateway.asp?hr=/en/cs/sin/0200/0200_010.shtml&hs=sxn
+http://www.hrsdc.gc.ca/asp/gateway.asp?hr=/en/hip/hrp/corporate/labourmobility/labourmobility.shtml&hs=hzp
+http://www.hrsdc.gc.ca/asp/gateway.asp?hr=en/ei/application/applying_for_benefits.shtml&hs=aed
+http://www.hrsdc.gc.ca/asp/gateway.asp?hr=en/isp/pub/cpp/stayntouch-03.shtml&hs=cdp
+http://www.hrsdc.gc.ca/asp/gateway.asp?hr=en/lp/fmcs/07LMPP.shtml&hs=pzp
+http://www.hrsdc.gc.ca/asp/gateway.asp?hr=en/lp/lo/fp/faq.shtml&hs=fzp
+http://www.hrsdc.gc.ca/en/bc-yk/5625/jwtc/lmi/lmr3q02.shtml
+http://www.hrsfc.ac.uk/vacancies/vacancies.asp
+http://www.hrsolidarity.net/mainfile.php/2000vol10no08/656/
+http://www.hrsolidarity.net/mainfile.php/2004vol14no03/2346/
+http://www.hrsonline.org/media/pressDetails.asp?id=5443
+http://www.hrw.org/about/projects/womrep/General-97.htm
+http://www.hrw.org/backgrounder/asia/afghan-bck1005.htm
+http://www.hrw.org/backgrounder/asia/china-bck-0701.htm
+http://www.hrw.org/campaigns/sierra/
+http://www.hrw.org/doc/?t=americas
+http://www.hrw.org/doc/?t=europe
+http://www.hrw.org/doc?t=americas&c=chile&document_limit=20,20
+http://www.hrw.org/editorials/1999/etimor820.htm
+http://www.hrw.org/english/docs/2004/10/04/turkey9433.htm
+http://www.hrw.org/english/docs/2005/01/13/china9809.htm
+http://www.hrw.org/english/docs/2005/01/13/kyrgyz9894.htm
+http://www.hrw.org/english/docs/2005/01/13/tunisi9801.htm
+http://www.hrw.org/press/2000/07/chinaeu0728.htm
+http://www.hrw.org/press98/jan/eu-china.htm
+http://www.hrw.org/reports/1991/us2/
+http://www.hrw.org/reports/1999/india/India994-02.htm
+http://www.hrw.org/reports/2000/frmwrkr/
+http://www.hrw.org/reports/2000/nato/Natbm200.htm
+http://www.hrw.org/reports/2003/iraq1003/6.htm
+http://www.hrw.org/reports/2005/usa0105/12.htm
+http://www.hrw.org/reports/2005/usa0105/13.htm
+http://www.hrw.org/reports/2005/usa0105/7.htm
+http://www.hrw.org/wr2k4/10.htm
+http://www.hrw.org/wr2k4/15.htm
+http://www.hs-stm.org/index.php
+http://www.hsa2005.com/index.php?pd=YXBwbGljYXRpb246e2FjdGlvbj1ldmVudHN9pz_pz_pz_&md=events&view_mode=view_events&id=6
+http://www.hsadvisor.com/bookstore/k_art.shtml
+http://www.hsadvisor.com/bookstore/learning_styles.shtml
+http://www.hsadvisor.com/bookstore/parenting.shtml
+http://www.hsarpabaa.com/main/technical_support_working_group.htm
+http://www.hsba.hostme.com/business/standing.htm
+http://www.hsbc.com/hsbc/graduates/information-technology/apply
+http://www.hsbc.com/hsbc/graduates/information-technology/apply?bt=Apply%20for%20Information%20Technology
+http://www.hsc.missouri.edu/fibro/fm-pt.html
+http://www.hsc.stonybrook.edu/shtm/programs/pa/faq.html
+http://www.hsc.unt.edu/departments/cellbiogen/resinterests.cfm
+http://www.hsc.unt.edu/tcom2007/
+http://www.hsc.wvu.edu/admin/facultydev/Winter%20Spring%202005%20Leadership%20Management%20Series/Handouts/Gunn-conflict.htm
+http://www.hsc.wvu.edu/som/shs/hoursofop_.htm
+http://www.hschange.com/CONTENT/306/?id_conf=8
+http://www.hschange.com/CONTENT/445/?conf=11
+http://www.hschange.org/CONTENT/675/
+http://www.hschange.org/CONTENT/682/
+http://www.hschange.org/CONTENT/684/
+http://www.hschange.org/CONTENT/718/
+http://www.hschange.org/CONTENT/75/
+http://www.hschange.org/index.cgi?topic=topic02
+http://www.hsdc.org/News/Audiology/teachers.htm
+http://www.hse.gov.uk/costs/incost_calc/incost_calc.asp
+http://www.hse.gov.uk/enforce/enforcementguide/investigation/expert/court.htm
+http://www.hse.gov.uk/fod/timber02.htm
+http://www.hse.gov.uk/lau/lacs/23-14.htm
+http://www.hse.gov.uk/services/localgovernment/
+http://www.hse.gov.uk/slips/experience/airport.htm
+http://www.hse.org.uk/events.php
+http://www.hsegroup.com/hse/text/caffiene.htm
+http://www.hsf.ca/research/guidelines/g_1.html
+http://www.hsforum.com/authors
+http://www.hslda.org/courtreport/V20N6/V20N601.asp
+http://www.hslda.org/speakers/speaker.asp?s=16
+http://www.hsletter.com/members/Old_Mkt_Updates/Full/2001/mktupdateFull091001.html
+http://www.hslnkc.org/Posters_and_Presentations.htm
+http://www.hsound.com/malcolm/
+http://www.hsph.harvard.edu/Organizations/healthnet/HUpapers/implosion/depop.html
+http://www.hsph.harvard.edu/Organizations/healthnet/SAsia/suchana/0909/rh057.html
+http://www.hsph.harvard.edu/ats/Dec1/
+http://www.hsph.harvard.edu/erc/somehistory.html
+http://www.hsph.harvard.edu/healthliteracy/talk_drvisit.html
+http://www.hsph.harvard.edu/hsb207b/list3.html
+http://www.hsph.harvard.edu/hsc/faqs.html
+http://www.hsph.harvard.edu/now/apr15/tobacco.html
+http://www.hsph.harvard.edu/nutritionsource/Exercise.htm
+http://www.hsph.harvard.edu/nutritionsource/calcium.html
+http://www.hsph.harvard.edu/organizations/grhf/SAsia/suchana/0500/h003.html
+http://www.hsph.harvard.edu/press/releases/press02021999.html
+http://www.hsph.harvard.edu/review/review_winter_02/special.html
+http://www.hsrc.ac.za/research/npa/HRD/about/hrd_do.html
+http://www.hsrd.houston.med.va.gov/vagenmedsection.htm
+http://www.hssonline.org/meeting/program/archiveprogs/2003%20Abstracts.htm
+http://www.hst.org.za/news/20040394
+http://www.hst.org.za/news/20040868
+http://www.hsus.org/animals_in_research/animals_in_research_news/scottish_research_team_concludes_that_fish_feel_pain.html
+http://www.hsus.org/hsus_field/first_strike_the_connection_between_animal_cruelty_and_human_violence/
+http://www.hsus.org/legislation_laws/wayne_pacelle_the_animal_advocate/shortsighted_how_shortterm_thinking_crashed_a_billiondollar_beef_export_market.html
+http://www.hsus.org/pets/issues_affecting_our_pets/hsus_statement_on_freeroaming_cats.html
+http://www.hsus.org/pets/issues_affecting_our_pets/insurance_companies_unfairly_target_specific_dog_breeds.html
+http://www.hsus.org/wildlife/wildlife_news/us_house_shuts_down_sale_wild_horses.html
+http://www.hswriting.ca/handouts/lit-review.asp
+http://www.hsx.com/help/glossary/
+http://www.hsx.com/help/glossary/index_main.htm
+http://www.hta-bi.bfh.ch/Groups/eduswiss/i-jav.d/Exercises/Problems/StartResumeStop1/
+http://www.hta-bi.bfh.ch/Groups/eduswiss/i-jav.d/Exercises/Problems/StartResumeStop2/
+http://www.htdp.org/2001-01-18/Book/node57.htm
+http://www.htexplained.com/abridged/Chap%20Index.htm
+http://www.htmlbible.com/sacrednamebiblecom/kjvstrongs/FRMSTRHEB47.htm
+http://www.htmldog.com/
+http://www.htmlgoodies.com/letters/016.html
+http://www.htmlgoodies.com/tutors/src.html
+http://www.htmlhelp.com/reference/css/classification/
+http://www.htmlhelp.com/reference/css/classification/list-style-type.html
+http://www.htmlhelp.com/reference/wilbur/quickref.html
+http://www.htpcnews.com/snapstreama2.html
+http://www.htservices.com/Tools/VBandC/SerialCommunications.htm
+http://www.htwm.de/stu-engl/ww/economy.htm
+http://www.hu.mtu.edu/~cwaddell/Basic_Prose_Style.html
+http://www.hubbertpeak.com/
+http://www.hubbertpeak.com/campbell/
+http://www.hubbertpeak.com/campbell/commons.htm
+http://www.huc.edu/newspubs/pressroom/2004/11/ellenson-tide.shtml
+http://www.hud.ac.uk/sas/forensic/news.htm
+http://www.hud.ac.uk/sas/pharmsci/news.htm
+http://www.hud.gov/energy/taskforce.cfm
+http://www.hud.gov/news/release.cfm?content=pr04-097.cfm
+http://www.hudson.k12.ma.us/schools_district/jfk/JFKRara.html
+http://www.hudsonunitedbank.com/faq.html
+http://www.huduser.org/datasets/assthsg/statedata98/descript.html
+http://www.huduser.org/periodicals/fieldworks/1299/fworks2.html
+http://www.huffmaster.com/emails/march_2005/
+http://www.hugelyrics.com/lyrics/134866/Eminem/Mosh
+http://www.hughbayley.labour.co.uk/ViewPage.cfm?Page=12774
+http://www.hughchou.org/calc/
+http://www.hughestrueman.com/people.html
+http://www.hughhewitt.com/
+http://www.hughston.com/hha/a.climb.htm
+http://www.huh.harvard.edu/nebc/Summaries/1998/Dec98sum.html
+http://www.hull.ac.uk/05/news/dec/medical_trial.html
+http://www.hull.ac.uk/05/news/june/tutu.html
+http://www.hullcc.gov.uk/archives/links.php
+http://www.hullcc.gov.uk/conservation/ca_garden_village.php
+http://www.hullcc.gov.uk/publicprotection/tradingstandards/consumer_law_faq.php
+http://www.hullcityafc.net/
+http://www.hullcityafc.premiumtv.co.uk/page/Match/MatchReport/0,,10338~26951,00.html
+http://www.hulubei.net/tudor/humor/marriage.html
+http://www.hulver.com/scoop/story/2005/3/30/74459/2145
+http://www.human-inquiry.com/expsr8.htm
+http://www.human-resources-health.com/content/2/1/5
+http://www.human-resources-health.com/content/2/1/8
+http://www.human.pefri.hr/~lara/oslo.html
+http://www.humanbeams.com/fatman/fm1104kelley-juanasembrace.shtml
+http://www.humanedgetech.com/guide1/choices.htm
+http://www.humanefood.ca/news_35.html
+http://www.humaneteen.org/projects5.htm
+http://www.humaneventsonline.com/blog-cb.php
+http://www.humanflowerproject.com/
+http://www.humanism.org.uk/site/cms/contentViewArticle.asp?article=1260
+http://www.humanismbyjoe.com/Bible_Opposes_Knowledge.htm
+http://www.humanismbyjoe.com/Sex_Industry_Benefits.htm
+http://www.humanistictexts.org/sa'di.htm
+http://www.humanists.net/cdhs/recap-2003-05-11-Gordinier.html
+http://www.humanitarian.net/eidnet/fmd/tripartite2000.html
+http://www.humankinetics.com/products/showexcerpt.cfm?excerpt_id=3235
+http://www.humankinetics.com/products/showexcerpt.cfm?excerpt_id=3387
+http://www.humankinetics.com/products/showexcerpt.cfm?excerpt_id=3474
+http://www.humankinetics.com/products/showproduct.cfm?isbn=073604907X
+http://www.humankinetics.com/products/showproduct.cfm?isbn=073604907x
+http://www.humanposture.com/
+http://www.humanresources-centre.net/
+http://www.humanrights.gov.au/movingforward/speech_ruddock.html
+http://www.humanrights.gov.au/sex_discrimination/exemption/letter1.html
+http://www.humanrightsfirst.org/media/2003_alerts/0221.htm
+http://www.humanrightsfirst.org/media/2003_alerts/0918.htm
+http://www.humanrightsfirst.org/us_law/detainees/status_review_080204.htm
+http://www.humanrightsfirst.org/us_law/loss/loss_ch4a.htm
+http://www.humanrightsinitiative.org/policeemag/innovation_practices.htm
+http://www.humanrightswatch.org/doc/?t=americas
+http://www.humanscale.com/ergo_info/articles.cfm?type=studies
+http://www.humansecuritybulletin.info/February_2005/Home/en/
+http://www.humanshields.org/modules.php?op=modload&name=News&file=article&sid=113
+http://www.humbermouth.org.uk/2000/critical_eye_02.html
+http://www.humberside.police.uk/Publications/pagefive.htm
+http://www.humboldt.edu/~english/gwpepurp.html
+http://www.humboldt.edu/~jcb10/spanwar.shtml
+http://www.humboldt.edu/~pls13/exam2fall-02KEY.html
+http://www.humboldt.edu/~tha1/discip-options.html
+http://www.humboldthomes.com/humboldt-county-real-estate.htm
+http://www.humbul.ac.uk/about/portal.html
+http://www.humeseeds.com/aug01qa.htm
+http://www.humguide.com/seniornews/issues/9901a.shtml
+http://www.humiliationstudies.org/whoweare/evelin.php
+http://www.humiliationstudies.org/whoweare/evelin04.php
+http://www.hummingbird.com/collateral/plugin/category.html?metaConceptId=12&contentId=54776&language=1&contentIndex=45973
+http://www.hummingbird.com/collateral/plugin/category.html?metaConceptId=12&contentIndex=0&contentId=0&language=1
+http://www.hummingbirded.com/fall_apples_acorns.html
+http://www.humnet.ucla.edu/calendar/0102/tesl.html
+http://www.humorcafe.com/da_newz/press1/kfc_taco_bell.htm
+http://www.humormatters.com/aging.htm
+http://www.humorwriters.org/8waystopromote.html
+http://www.humournet.co.uk/Jokes/sex.htm
+http://www.huna.org/html/kuwork_sf.html
+http://www.huna.org/html/lpharmny.html
+http://www.hungryflower.com/links.html
+http://www.hungryghost.net/magpolitics/DarkAngels.htm
+http://www.hunterbear.org/handling_the_klan_on_easter_sund.htm
+http://www.hunterinformation.com/caf99.htm
+http://www.huntgenealogy.com/about.htm
+http://www.huntinginquiry.gov.uk/evidence/huntingassocireland.htm
+http://www.huntinginquiry.gov.uk/evidence/nfucymru.htm
+http://www.huntinginquiry.gov.uk/evidence/wspa.htm
+http://www.huntinginquiry.gov.uk/evidence2/badgerwatch.htm
+http://www.huntingmag.com/small_game/clay_070604/
+http://www.huntington.org/ArtDiv/Morris2003/Morris2003.html
+http://www.huntingtonbeachhostel.com/mitchell.html
+http://www.huntrealestate.com/StaticContent.aspx?sta_name=services_sellersecurity
+http://www.huntsvillealabamausa.com/newcomers/education.html
+http://www.huppi.com/kangaroo/L-chimonetarism.htm
+http://www.huppi.com/kangaroo/L-clintondeserve.html
+http://www.huppi.com/kangaroo/L-evolutiontheory.htm
+http://www.hurstjaws.com/Home/PressReleases.Asp
+http://www.hurston-wright.org/writers.html
+http://www.hus.fi/default.asp?path=59,403,2252,6035
+http://www.hus.fi/default.asp?path=59;403;2252;6035&print=1
+http://www.hus.fi/default.asp?path=59;403;2252;6035&text=1
+http://www.husdal.com/gis/news.htm
+http://www.hussaini.20m.com/photo4.html
+http://www.huuc.net/sermons/KeepingFaith.html
+http://www.hvacmechanic.com/trouble_shooting/commericalsplits.htm
+http://www.hvbgroup.com/-snm-0134963952-1119146548-0000019543-0000000255-1119190325-enm-cms/english/press/showdetail.html?id=8297&pid=0&cid=0&dr=0
+http://www.hvcb.org/membership/DIDYOUKNOW.HTML
+http://www.hvfinc.com/longtermcare.html
+http://www.hvk.org/articles/0603/196.html
+http://www.hvk.org/articles/0704/140.html
+http://www.hvsinternational.com/Personnel/Profile.aspx?Id=47&Bp=380
+http://www.hwcn.org/link/forhv/whatsnew/up200405/up040505replace.htm
+http://www.hwcn.org/link/hasc/letter_cf.html
+http://www.hwcn.org/link/mkg/app_6.html
+http://www.hwfc.com/Sales/
+http://www.hwforums.com/2011/messages/2364.html
+http://www.hwforums.com/2011/messages/2368.html
+http://www.hwize.com/health_product/highstreet/highstreet_purchase_page.html
+http://www.hws.edu/about/history/war.asp
+http://www.hws.edu/admissions/adm_visit/ways.asp?clienttype=parents
+http://www.hws.edu/admissions/adm_visit/ways.asp?clienttype=prospective
+http://www.hws.edu/news/speakers/transcripts/trinitydedication_salisbury.asp
+http://www.hww.ca/hww2p.asp?id=76&cid=0
+http://www.hwwilson.com/Databases/biobank.htm
+http://www.hwwilson.com/print/storeind.cfm
+http://www.hy-vee.com/default.asp?p=healthlibrary
+http://www.hyahya.org/70god_created_sci08.php
+http://www.hyattcarter.com/
+http://www.hybd.net/~mms/forum.php?action=view%20topic&id=175
+http://www.hydepark.org/parks/burnham/burnhamnatctr.htm
+http://www.hydeparkny.us/history.shtml
+http://www.hydraairpacific.com/products2.htm
+http://www.hydro.co.nz/1_information/1_risk_management/risk.html
+http://www.hydrogenforecast.com/JulyArticles/hfc_csmcolumn071504.html
+http://www.hydroponics101.com/sw53074.asp
+http://www.hydroponicsbc.com/propogation.html
+http://www.hydroponicsonline.com/qapages/qapage34.htm
+http://www.hygeia.org/poems10.htm
+http://www.hygra.com/book/
+http://www.hymnsandcarolsofchristmas.com/Hymns_and_Carols/Biographies/robert_may.htm
+http://www.hyms.ac.uk/prospectus/admission.asp
+http://www.hypeandhope.com/wt/page/index/it_1103149394
+http://www.hyper-parenting.com/newsweek5.htm
+http://www.hyperborea.org/alenxa/apk3.html
+http://www.hypercatracing.com/bike_fit_feedback.htm
+http://www.hyperdic.net/dic/go.htm
+http://www.hyperion-records.co.uk/notes/67310-N.asp
+http://www.hyperlogik.com/jerry_gov/3.html
+http://www.hypermail-project.org/archive/99/05/0734.html
+http://www.hyperorg.com/backissues/joho-apr10-99.html
+http://www.hyperorg.com/backissues/joho-aug5-99.html
+http://www.hyperorg.com/backissues/joho-feb5-99.html
+http://www.hyperorg.com/backissues/joho-jan28-05.html
+http://www.hyperorg.com/backissues/joho-jun20-05.html
+http://www.hyperorg.com/backissues/joho-oct25-02.html
+http://www.hyperorg.com/blogger/archive/2002_03_01_archive.html
+http://www.hyperorg.com/blogger/mtarchive/003680.html
+http://www.hyperorg.com/misc/books/amazon.html
+http://www.hyperreal.org/~mpesce/
+http://www.hypertensionaha.org/cgi/content/full/43/5/957
+http://www.hypertextnavigation.com/timstyle.htm
+http://www.hyperthot.com/1115_bk.htm
+http://www.hyperwerks.com/series/deity_chara.html
+http://www.hyperzine.co.nz/hyper_15/intern_15.shtml
+http://www.hypnodean.com/selling%20success.htm
+http://www.hypnos.co.uk/hypnomag/peltbook/chapter10p1.htm
+http://www.hypnos.co.uk/hypnomag/peltbook/chapter9p1.htm
+http://www.hypnos.info/cds/speaking.html
+http://www.hypnosis.org/overcomingCSA.htm
+http://www.hypocrites.com/article11273.html
+http://www.hypography.com/
+http://www.hypography.com/hypography.cfm?id=38
+http://www.hypography.com/scienceforums/showthread.php?goto=lastpost&t=1317
+http://www.hypography.com/scienceforums/showthread.php?t=1002&page=3
+http://www.hypography.com/scienceforums/showthread.php?t=1002&page=3&pp=10
+http://www.hypography.com/scienceforums/showthread.php?t=1053
+http://www.hypography.com/scienceforums/showthread.php?t=1053&page=1
+http://www.hypography.com/scienceforums/showthread.php?t=1053&page=1&pp=10
+http://www.hypography.com/scienceforums/showthread.php?t=1171&goto=nextnewest
+http://www.hypography.com/scienceforums/showthread.php?t=1250&goto=nextnewest
+http://www.hypography.com/scienceforums/showthread.php?t=1317
+http://www.i-america.net/loclinks.htm
+http://www.i-cynic.com/weekly_38.asp
+http://www.i-cynic.com/weekly_51.asp
+http://www.i-d-d.com/interior_design_books/interior_design_professional_books.htm
+http://www.i-hacked.com/content/view/18/94/
+http://www.i-know.at/author_guidelines/style_guide
+http://www.i-resign.com/uk/workinglife/viewarticle_46.asp
+http://www.i-served.com/SilentVictoryTeam.html
+http://www.i-sis.org.uk/ATPA.php
+http://www.i-sis.org.uk/ERCD.php?printing=yes
+http://www.i-sis.org.uk/EngineeringLifeAndMind.php
+http://www.i-sis.org.uk/EngineeringLifeAndMind.php?printing=yes
+http://www.i-sis.org.uk/GMRII.php
+http://www.i-sis.org.uk/isisnews/i-sisnews9-22.php
+http://www.i-sis.org.uk/public.php
+http://www.i-tech.com.au/products/3230_Hardware_Assembled_with_1_Year_Parts.asp
+http://www.i-tech.com.au/products/3231_Hardware_Assembled_with_2_Years_Parts.asp
+http://www.i-tech.com.au/products/3232_Hardware_Assembled_with_3_Years_Parts.asp
+http://www.i-uk.com/servlet/Front?pagename=OpenMarket/Xcelerate/ShowPage&c=Page&cid=1079976720577
+http://www.i-uk.com/servlet/Front?pagename=OpenMarket/Xcelerate/ShowPage&c=Page&cid=1079976722770
+http://www.i18nguy.com/spam_glam/
+http://www.i18nguy.com/unicode/codepages.html
+http://www.i2itelevision.com/video_store.php
+http://www.i4at.org/
+http://www.i4market.com/services/research.html
+http://www.i638.com/p.php?f=iposttoday&title=iPost%20Today&theme=default&page=4
+http://www.ia-sb.org/humanresources/er/ERFeb2002.asp
+http://www.ia-sb.org/humanresources/er/ERJune29.asp
+http://www.ia.net/~gheller/burning/Index.htm
+http://www.iaadp.org/aggression.html
+http://www.iaamrh.org/ic_jursp20003.html
+http://www.iabc.com/members/faqmem.htm
+http://www.iabin-us.org/documents/tor/tor_pilot.html
+http://www.iacenter.org/haiti-030804update.htm
+http://www.iacenter.org/rokke_0205.htm
+http://www.iacenter.org/sacrific.htm
+http://www.iaci-canada.com/Subjects.htm
+http://www.iacocca-lehigh.org/globalvillage/newsletterfall2003.htm
+http://www.iad.org/books/S-women.html
+http://www.iadb.org/EXR/doc98/apr/br772e.htm
+http://www.iadb.org/exr/english/POLICIES/participate/forew.htm
+http://www.iadb.org/idbamerica/English/JAN02E/jan02e2.html
+http://www.iadis.org/confman_es2004/accepted.asp
+http://www.iaea.org/NewsCenter/Focus/IaeaLibya/libya_timeline.shtml
+http://www.iaea.org/NewsCenter/Statements/2004/ebsp2004n012.html
+http://www.iaea.org/NewsCenter/Statements/DDGs/2003/goldschmidt26112003.html
+http://www.iaea.org/PrinterFriendly/NewsCenter/Statements/DDGs/2003/goldschmidt26112003.html
+http://www.iaeste.ie/info2004.html
+http://www.iaff.org/across/local.html
+http://www.iaff.org/build/benefits.html
+http://www.iafss.org/html/newsletter03.htm
+http://www.iafss.org/html/newsletter04.htm
+http://www.iags.org/es042103.html
+http://www.iags.org/es052103.html
+http://www.iags.org/n0124053.htm
+http://www.iah.bbsrc.ac.uk/schools/scientists/pasteur.htm
+http://www.iahcsmm.com/basic_man_0302.htm
+http://www.iaiabc.org/
+http://www.iaje.org/bio.asp?ArtistID=72
+http://www.ialc.org/people.htm
+http://www.ials.ed.ac.uk/eltt/eltt3_8.html
+http://www.iam141.org/legislat.htm
+http://www.iamawlodge1426.org/hisupdate39.htm
+http://www.iamawolf.com/alone/
+http://www.iambic.com/agenduspro/palmos/
+http://www.iamfitforlife.com/air_travel.htm
+http://www.iamg.org/cqs/cqsbook1.htm
+http://www.iaml.com/organize.htm
+http://www.iamm.com/man-cu.htm
+http://www.iamusic.com/articles/source.php
+http://www.ianano.org/abstract-online.htm
+http://www.ianchadwick.com/essays/madness.html
+http://www.ianr.unl.edu/ianr/fcs/upsdowns/upsjune02.htm
+http://www.iansmith.co.uk/lotr/weblogs/July17th2003.htm
+http://www.iap-tv.com/weavahinterview.htm
+http://www.iap.nl.com/falletti.html
+http://www.iap.nl.com/speeches2/alternative.html
+http://www.iap.tuwien.ac.at/www/surface/STM_Gallery/electronwaves.html
+http://www.iapn.org/daniel_m.htm
+http://www.ias.org.uk/licensing/reform_mpsbriefing.html
+http://www.iasb.com/files/j0050603.htm
+http://www.iasb.com/files/nb0602.htm
+http://www.iasb.com/files/nb0701.htm
+http://www.iascp.com/bylaws.html
+http://www.iasig.org/wg/index.shtml
+http://www.iasp-pain.org/PCU01-4.html
+http://www.iasp-pain.org/PCU96a.html
+http://www.iasp-pain.org/PCU99b.html
+http://www.iasp-pain.org/TC97NovDec.html
+http://www.iasp-pain.org/TC98SeptOct.html
+http://www.iaspei.org/commissions/CEH/Hanoi_meeting.html
+http://www.iaspm.net/rpm/jour_Fren.html
+http://www.iastate.edu/~ceah/symposium_info.html
+http://www.iasted.org/conferences/2005/russia/acit-specialsession.htm
+http://www.iat.ac.uk/courses/eleceleceng.htm
+http://www.iatdmct.org/dutchqa.htm
+http://www.iath.virginia.edu/holocaust/spiegelman.html
+http://www.iath.virginia.edu/london/Archive/On-line-pubs/2001/paper4.html
+http://www.iath.virginia.edu/public/jjm2f/rationale.html
+http://www.iath.virginia.edu/waters/front.html
+http://www.iauc.org/convention2004report.htm
+http://www.ibainc.com/sell/
+http://www.ibanet.org/humanrights/Training.cfm
+http://www.ibdhost.com/
+http://www.ibeurope.com/
+http://www.ibiblio.org/ahkitj/diaries/tph/
+http://www.ibiblio.org/ahkitj/section27/
+http://www.ibiblio.org/astrobiology/index.php?page=terraform03
+http://www.ibiblio.org/astrobiology/print.php?page=terraform03
+http://www.ibiblio.org/bosak/pa/pa-act.htm
+http://www.ibiblio.org/cisco/tracy-article.html
+http://www.ibiblio.org/freeburma/humanrights/khrg/archive/khrg2000/khrg0001a.html
+http://www.ibiblio.org/freeburma/humanrights/khrg/archive/khrg2000/khrg0001c.html
+http://www.ibiblio.org/freeburma/humanrights/khrg/archive/khrg2002/khrg0201a.html
+http://www.ibiblio.org/freeburma/humanrights/khrg/archive/khrg2002/khrg02u1.html
+http://www.ibiblio.org/freeburma/humanrights/khrg/archive/khrg96/khrg9605.html
+http://www.ibiblio.org/freeburma/humanrights/khrg/archive/khrg96/khrg96c3.html
+http://www.ibiblio.org/freeburma/humanrights/khrg/archive/khrg99/khrg99u4.html
+http://www.ibiblio.org/herbmed/eclectic/kings/camellia-sine.html
+http://www.ibiblio.org/herbmed/eclectic/tea/chapter-vi.html
+http://www.ibiblio.org/herbmed/rhod/2003/jun03-b.html
+http://www.ibiblio.org/hyperwar/AAF/I/AAF-I-12.html
+http://www.ibiblio.org/hyperwar/UN/UK/rep/PRO/DEFE/5/188/DEFE-5-188-5.html
+http://www.ibiblio.org/hyperwar/USN/ships/dafs/CL/cl50.html
+http://www.ibiblio.org/icky/speech2.html
+http://www.ibiblio.org/obl/docs/KW67.htm
+http://www.ibiblio.org/obl/docs/NN2003-09-03.htm
+http://www.ibiblio.org/obp/electricCircuits/DC/DC_14.html
+http://www.ibiblio.org/obp/electricCircuits/DC/DC_6.html
+http://www.ibiblio.org/obp/thinkCS/cpp/english/chap02.htm
+http://www.ibiblio.org/obp/thinkCS/cpp/english/chap04.htm
+http://www.ibiblio.org/obp/thinkCSpy/chap04.htm
+http://www.ibiblio.org/obp/thinkCSpy/chap10.htm
+http://www.ibiblio.org/rdu/a-apathy.html
+http://www.ibiblio.org/rdu/speedsci.html
+http://www.ibiblio.org/rge/faq-html/appendxb.htm
+http://www.ibiblio.org/warstop/warbfly.html
+http://www.ibill.com/about/gkardagreement.cfm
+http://www.ibis-school.com/about_2.php
+http://www.ibisassoc.co.uk/effective_planning.htm
+http://www.ibizbasics.com/online010201.htm
+http://www.ibm.com/annualreport/2003/noflash/guide_glossary.shtml
+http://www.ibm.com/annualreport/2004/annual/guide_cse.shtml
+http://www.ibm.com/annualreport/2004/annual/guide_csfp.shtml
+http://www.ibm.com/annualreport/2004/annual/guide_glossary.shtml
+http://www.ibm.com/developerworks/library-combined/.backup/gr-gap/
+http://www.ibm.com/developerworks/web/library/us-ucd2/
+http://www.ibm.com/shop/americas/webapp/wcs/stores/servlet/ProductDisplay?productId=8781014&storeId=1&langId=-1&catalogId=-840
+http://www.ibm1130.net/functional/OMPR.html
+http://www.ibmemployee.com/Highlights040201.shtml
+http://www.iboa.ie/
+http://www.iboxpublishing.com/responses1.htm
+http://www.ibrattleboro.com/index.php?topic=Political&page=8
+http://www.ibreathemusic.com/article/46
+http://www.ibreathemusic.com/article/73
+http://www.ibsf.org/wpbsa/worldsnookernews.php
+http://www.ibsnetwork.org.uk/Information/Trustees.htm
+http://www.ibstales.com/women_and_diarrhea_13.htm
+http://www.ibt-pep.com/default.asp?ObjectID=258
+http://www.ibt.org.uk/Images%20&%20Reality%20site/I&Rweb%20folder/I&Rweb/script/lesson1.html
+http://www.ic-network.com/forum/showthread.php?goto=lastpost&t=12420
+http://www.ic-network.com/guestlectures/peters1100transcript.html
+http://www.ic.ac.uk/templates/text_3.asp?P=3398
+http://www.ic.gc.ca/cmb/welcomeic.nsf/0/85256a220056c2a485256a2300603145?OpenDocument
+http://www.ic.sunysb.edu/Clubs/jca/reflections/20031009-Marianne.shtml
+http://www.ic.u-tokyo.ac.jp/japanese/a03_01_01_e.html
+http://www.ic.u-tokyo.ac.jp/japanese/b01_02_e.html
+http://www.icaainc.com/breed_standards.htm
+http://www.ican2000.com/usbuyaut.html
+http://www.ican2000.com/ussethome.html
+http://www.icann.org/committees/nom-comm/coi-subcom-charge-03may03.htm
+http://www.icann.org/gnso/whois-tf/report-19feb03.htm
+http://www.icann.org/tlds/org/applications/unity/VII/C35.htm
+http://www.icao.int/apac/meetings_arch.htm
+http://www.icap.org.pk/TRs/TR-29.htm
+http://www.icar.org.uk/res/nav/ng003/ng003-03.html
+http://www.icard.uillinois.edu/dsp_faqsusesprngfld.cfm
+http://www.icareregistry.com/reunions/mary.asp
+http://www.icas.org.uk/seekingthetruth/paulvolcker.asp
+http://www.icasit.org/km/kmrt/feb03/
+http://www.icbl.hw.ac.uk/ltdi/implementing-it/support.htm
+http://www.icbl.org/4msp/report/annex_v_1.html
+http://www.icbl.org/4msp/report/annex_v_3.html
+http://www.icbl.org/4msp/report/annex_v_4.html
+http://www.icc-cpi.int/recruitment/cc1g/intern_FAQ.html
+http://www.icc-cpi.int/recruitment/vpp1g/vprof_FAQ.html
+http://www.icc-cricket.com/corruption/code_of_conduct_report.html
+http://www.icc-cricket.com/print/corruption/code_of_conduct_report.html
+http://www.icce.rug.nl/documents/cplusplus/cplusplus12.html
+http://www.icce.rug.nl/~soundscapes/DATABASES/CAR/car19.html
+http://www.icce.rug.nl/~soundscapes/DATABASES/MIE/Part2_chapter08.html
+http://www.icce.rug.nl/~soundscapes/DATABASES/RNI/rni02.html
+http://www.icci.org/98final/chugh3.htm
+http://www.iccrimea.org/scholarly/tuarel-hakan.html
+http://www.iccs-isac.org/eng/asd-about.htm
+http://www.iccthailand.or.th/front.asp?id=103
+http://www.iccwbo.org/court/english/arbitration/rules.asp
+http://www.iccwbo.org/home/news_archives/2004/fourtou_pc_may.asp
+http://www.iccwbo.org/home/statements_rules/statements/2002/Arbitration%20in%20International%20Tax%20Matters.asp
+http://www.iccweb.com/industry/industry.asp?pageid=17
+http://www.icdc.com/~neubauer/states.htm
+http://www.icdc.com/~paulwolf/cointelpro/churchfinalreportIIIm.htm
+http://www.icdc.com/~paulwolf/gaitan/memorandumopinionandorder.htm
+http://www.icdri.org/technology/indexbp.htm
+http://www.iceboat.org/
+http://www.iced.org/e-news/0804/
+http://www.icelan.com/glossary/default.htm
+http://www.iceland.org/us/the-embassy/trade-economy/
+http://www.icesports.com/normalpg.php?pageId=5&catId=400
+http://www.icevi-europe.org/tt/ttw3/topic7.html
+http://www.icewebring.com/ICE_Products/RM2/RM2_1600_Companion_II.shtml
+http://www.icfa.org.au/saathi.htm
+http://www.icfconsulting.com/Markets/Community_Development/cd-expertise-4.asp
+http://www.icfconsulting.com/Markets/Homeland-Security/emergency-management-response-recovery.asp
+http://www.icfconsulting.com/Markets/Homeland-Security/vulnerability-assessment.asp
+http://www.icfire.com/thedanielproject/NewFiles/chapter3_3.html
+http://www.icg.org/home/getfile.cfm?id=1559&tid=3156
+http://www.icg.org/home/index.cfm?id=1690&l=1
+http://www.ich.ucl.ac.uk/gosh_families/ask_dr_jane_collins/mind/exam_results.html
+http://www.ichelp.com/TreatmentAndSelfHelp/BladderRetrainingProgram.html
+http://www.ichotelsgroup.com/h/d/pc/1/en/home
+http://www.ichotelsgroup.com/h/d/pc/925/en/home
+http://www.ichotelsgroup.com/priorityclub
+http://www.ichthys.com/Pet14.htm
+http://www.ici.org/i4s/bro_i4s_informed.html
+http://www.ici.org/statements/cmltr/01_sec_related_perf_com.html
+http://www.ici.org/statements/cmltr/03_sec_soft_com.html
+http://www.iciclesoftware.com/vlh7/VLH7Contracts.html
+http://www.icimod.org/sus_options/salt_steps.htm
+http://www.icj-cij.org/icjwww/idecisions/isummaries/ibnlsummary590620.htm
+http://www.icj-cij.org/icjwww/idocket/icn/icnpleadings/icn_rejoinder/icn_ipleadings_nigeria_rejoinder_20010101_Ch09.htm
+http://www.icj-cij.org/icjwww/idocket/icn/icnpleadings/icn_rejoinder/icn_ipleadings_nigeria_rejoinder_20010101_Ch10.htm
+http://www.icj-cij.org/icjwww/idocket/iluk/ilukjudgment/iluk_ijudgment_980227_dissentingjennings.html
+http://www.icjw.org/icjw/site/institutional/newsletter/newsletter08.php
+http://www.icknowledge.com/
+http://www.icle.org/michlaw/Rules/MRE/2001-51_07-16-03_or.html
+http://www.icm-computer.co.uk/products/business_continuity/recovery_solutions/reclocation_details.asp?LocAreaID=8&map=true
+http://www.icmarc.org/xp/news/financialplanning/73742035.xml
+http://www.icmarc.org/xp/vl/learn/glossary/
+http://www.icmc.net/docs/en/programs/help
+http://www.icmc.net/docs/es/programs/help
+http://www.icmc.net/docs/fr/programs/help
+http://www.icmci.org/Istanbul%202003/Delegate.htm
+http://www.icn.org/studentservices/skills.html
+http://www.icols.org/pages/RGrayson/RG_SPAI.html
+http://www.icomm.ca/dragon/igcare.htm
+http://www.icommag.com/directory-post-production.html
+http://www.iconmag.co.uk/gearin_tosh.htm
+http://www.iconnect-online.org/Stories/Story.import4353
+http://www.iconsupperclub.com/events/event-planning/event-planning-firm.html
+http://www.iconsystemsnetwork.com/products/revelations/index.asp
+http://www.icosavillage.net/FAQs_assembly.html
+http://www.icpnm.org/graduatesProfiles.html
+http://www.icponline.org/feature_articles/f10_99.htm
+http://www.icponline.org/world_ed_news/w_ed1_03.htm
+http://www.icponline.org/world_ed_news/w_ed3_01.htm
+http://www.icponline.org/world_ed_news/w_ed5_02.htm
+http://www.icr.org/bible/bhta46.html
+http://www.icr.org/cgi-bin/faq/go.cgi?id=34
+http://www.icr.org/cgi-bin/faq/go.cgi?id=99
+http://www.icr.org/goodsci/bot-9709.htm
+http://www.icrc.org/WEB/ENG/siteeng0.nsf/htmlall/p0361?OpenDocument&style=Custo_Final.4&View=defaultBody2
+http://www.icrc.org/Web/Eng/siteeng0.nsf/htmlall/63AGHE
+http://www.icrc.org/ihl-nat.nsf/0/eb71b7f31aaf3380c1256afb0036970d?OpenDocument
+http://www.icrc.org/ihl.nsf/0/7f15bb724290e0f8c12563cd0042b8ca?OpenDocument
+http://www.icrc.org/themissi.nsf/0/f1c59e06da1a24dfc1256ba50048dacf?OpenDocument
+http://www.icrc.org/web/eng/siteeng0.nsf/htmlall/57JPV7?OpenDocument&View=defaultBody&style=custo_print
+http://www.icrc.org/web/eng/siteeng0.nsf/htmlall/5DGM4K?OpenDocument&View=defaultBody&style=custo_print
+http://www.icrc.org/web/eng/siteeng0.nsf/iwpList121/9DAF0CDB12CFDFFEC1256C24005808FA
+http://www.icrc.org/web/eng/siteeng0.nsf/iwpList165/48380A7CC789E723C1256B890033D659
+http://www.icrc.org/web/eng/siteeng0.nsf/iwpList245/5A6114ED72F9B728C1256B66005C6DAC
+http://www.icrc.org/web/eng/siteeng0.nsf/iwpList377/438B7C44BDEAC7A3C1256B66005DCAAB
+http://www.icrisat.org/text/pubs/fft/fft8/gpub2d.html
+http://www.ics.com/support/docs/viewkit/1.3/pguide/ch04wia1.htm
+http://www.ics.trieste.it/ActivityDetailsArchive.aspx?pcode=2.3&activity_id=43
+http://www.ics.uci.edu/~eppstein/cgt/
+http://www.icsc.org/srch/sct/current/sct0800/02.html
+http://www.icsc.org/srch/sct/sct1002/page53.php?region=
+http://www.icsc.org/srch/sct/sct1203/page39.php?region=
+http://www.icspp.org/index.php?option=com_content&task=view&id=39&Itemid=49
+http://www.icstars.com/HTML/journal/Turkey-Town1.html
+http://www.icsti.org/forum/39/
+http://www.icsu.org/eXcal2/calendar.php4?mode=flyer&date=2005-07-01
+http://www.icsw.org/global-conferences/poverty-eradication.htm
+http://www.ict-uk.org/events_tsunami.html
+http://www.ict.gov.gh/html/prepcom.htm
+http://www.ict.org.il/articles/articledet.cfm?articleid=456
+http://www.ict.org.il/articles/articledet.cfm?articleid=481
+http://www.ict.org.il/spotlight/det.cfm?id=516
+http://www.ictadvice.org.uk/index.php?section=ae
+http://www.icte.org/icteweb1/pmopen.htm
+http://www.icte.uq.edu.au/communityeducation/communityeducation_creativewriting.htm
+http://www.ictr.org/ENGLISH/cases/Akayesu/decisions/WARNING190398.htm
+http://www.ictr.org/ENGLISH/speeches/jallow130605.htm
+http://www.ictr.org/ENGLISH/updates/upd008.htm
+http://www.ictsd.org/biores/02-11-07/inbrief.htm
+http://www.icybrian.com/fanfic/whitecrescent/twilightmeeting.php
+http://www.id.com.au/macroc/commprofile/default.asp?WebID=10&MnID=7&PgID=3
+http://www.id.gov.jo/human/activities2000/t-cult_report.html
+http://www.id21.org/insights/insights36/insights-iss36-art05.html
+http://www.id21.org/insights/insights51/insights-iss51-art00.html
+http://www.id21.org/insights/insights54/insights-iss54-art00.html
+http://www.id21.org/insights/insights56/insights-iss56-art00.html
+http://www.ida.liu.se/~pelab/xjobb/
+http://www.ida.net/users/rdk/ces/maritial_customs.html
+http://www.ida.net/users/tetonsl/railroad/lcb.htm
+http://www.idahobizhelp.org/cf/print_activities.cfm
+http://www.idahostatesman.com/apps/pbcs.dll/article?AID=/20040904/NEWS010702/409040312/1024
+http://www.idaireland.com/home/index.aspx?id=193
+http://www.idaireland.com/home/news.aspx?id=3&content_id=243
+http://www.idaireland.com/home/news.aspx?id=3&content_id=253
+http://www.idatech.com/technology/publications.html?pub=14
+http://www.idblog.org/archives/000276.html
+http://www.idblog.org/archives/000286.html
+http://www.idc.com/getdoc.jsp?containerId=VWP000248
+http://www.idea-knowledge.gov.uk/idk/terms.do
+http://www.ideacenter.org/clubs/resources_meeting.php
+http://www.ideacenter.org/contentmgr/showdetails.php/id/847
+http://www.ideaexplore.net/news/050204.html
+http://www.ideafinder.com/features/century/3m.htm
+http://www.ideafinder.com/history/inventions/story055.htm
+http://www.ideafinder.com/history/inventions/story069.htm
+http://www.ideafinder.com/history/inventions/story078.htm
+http://www.idealcheese.com/
+http://www.idealliance.org/events/calendar.asp
+http://www.idealliance.org/papers/xml2001papers/tm/WEB/06-04-04/06-04-04.htm
+http://www.idealliance.org/proceedings/xml04/papers/27/UBL.html
+http://www.idealword.org/sucker/46/
+http://www.ideamarketers.com/library/article.cfm?articleid=31171&wherefrom=PROFILE
+http://www.ideamarketers.com/library/article.cfm?articleid=37746
+http://www.ideamarketers.com/library/article.cfm?articleid=38174
+http://www.ideamerge.com/
+http://www.ideamerge.com/libraryleasingchapter.html
+http://www.ideas4writers.co.uk/index.php
+http://www.ideasfactory.com/business/features/bus_feature26.htm
+http://www.ideasfactory.com/business/marketing/know_it/insider1.html
+http://www.ideasfactory.com/film_tv/features/ftv_feature13.htm
+http://www.ideasfactory.com/training_courses/features/train_feature29.htm
+http://www.idenise.net/weblog/week_2003_03_30.php
+http://www.identityblog.com/
+http://www.identitytheory.com/fiction/nielsen_fists.php
+http://www.identitytheory.com/interviews/birnbaum140.php
+http://www.identitytheory.com/people/birnbaum20.html
+http://www.identitytheory.com/people/birnbaum89.html
+http://www.identitytheory.com/pokerblog/
+http://www.ideosphere.com/fx/docs/create.cgi
+http://www.ides.state.il.us/general/dirmsg2.asp
+http://www.idevgames.com/articles/programming/id1002/
+http://www.idevnews.com/TipsTricks.asp?ID=30
+http://www.idfa.org/
+http://www.idfa.org/dbrief/dbrief021804.html
+http://www.idfuel.com/index.php?m=200401
+http://www.idiom.com/~drjohn/ect.html
+http://www.idl.dundee.ac.uk/~chris/blog/
+http://www.idlebrain.com/allari/interview.html
+http://www.idler.co.uk/html/chin/happychin.htm
+http://www.idler.co.uk/html/pleasures/pleasures3.htm
+http://www.idmonsters.com/rtc/02/patchadams.html
+http://www.idmu.co.uk/medicinal.htm
+http://www.idolblog.com/node/2002088
+http://www.idoweddingphotography.com/prices/
+http://www.idp.com/adsjakarta/returnedstudents/article30.asp
+http://www.idp.com/adsjakarta/returnedstudents/newsletters/article9.asp
+http://www.idph.state.il.us/public/press96/ems96.htm
+http://www.idra.org/Newslttr/2005/Jan/Cuca.htm
+http://www.idrc.ca/en/ev-1441-201-1-DO_TOPIC.html
+http://www.idrc.ca/en/ev-28595-201-1-DO_TOPIC.html
+http://www.idrc.ca/en/ev-67678-201-1-DO_TOPIC.html
+http://www.idrc.ca/fr/ev-54439-201-1-DO_TOPIC.html
+http://www.idrc.ca/fr/ev-67660-201-1-DO_TOPIC.html
+http://www.idrs.org/Publications/Journal/JNL15/JNL15.Apfelstadt.Canadian.html
+http://www.ids.ac.uk/ids/bookshop/briefs/brief15.html
+http://www.idsachicago.org/past/2003.html
+http://www.idscorral.com/corcamcorder.shtml
+http://www.idsnews.com/subsite/story.php?id=29400
+http://www.idsusa.org/map_frame.html
+http://www.ie.lspace.org/books/dawcn/dawcn-english.html
+http://www.iea.org.uk/record.jsp?type=news&ID=243
+http://www.iea.org/Textbase/press/pressdetail.asp?PRESS_REL_ID=123
+http://www.ieabioenergy.com/directory.php
+http://www.iec.org/online/tutorials/mpls_traffic/topic02.html
+http://www.iee.org/OnComms/PN/sustainability/Event_report.cfm
+http://www.iee.org/oncomms/pn/healthtech/chairmanswelcome.cfm
+http://www.ieee-boston.org/reliability_society.htm
+http://www.ieee-virtual-museum.org/collection/event.php?taid=&id=3456945&lid=1
+http://www.ieee-virtual-museum.org/collection/people.php?taid=&id=1234567&lid=1
+http://www.ieee.be/emsreport.htm
+http://www.ieee.org/organizations/history_center/general_info/lines_menu.html
+http://www.ieee.org/organizations/pubs/newsletters/npss/0904/nuclear.html
+http://www.ieeecolumbus.org/TPI/tpi%20old/tpi.htm
+http://www.ieeeusa.org/policy/LIBRARY/PAPERS/licensing.html
+http://www.ieer.org/pubs/e&g-ch5.html
+http://www.ieer.org/sdafiles/vol_4/4-3/4_3art1.html
+http://www.ieer.org/sdafiles/vol_6/6-2/cleanup.html
+http://www.iei-la.org/projects.asp?File=200803.asp
+http://www.iei.net/~pwagner/brazarticles/Apr2004.htm
+http://www.iemily.com/Article.cfm?ArtID=552
+http://www.ienhance.com/procedure/description.asp?ProcID=4&bodyid=1&specialtyid=1
+http://www.ieor.berkeley.edu/~goldberg/fixturing/fixture_background.htm
+http://www.iep.utm.edu/s/skepmod.htm
+http://www.ies.aust.com/ten/ten10.htm
+http://www.ies.aust.com/~visible/papers/CBT.html
+http://www.ies2005.com/
+http://www.iesabroad.org/vienna.do
+http://www.iesabroad.org/vienna/vienna.html
+http://www.iesna.org/industry/linksallied.cfm
+http://www.ietf.org/proceedings/02nov/214.htm
+http://www.ietf.org/proceedings/03mar/226.htm
+http://www.ietf.org/proceedings/98aug/I-D/draft-ietf-asid-mime-direct-08.txt
+http://www.ieu.asn.au/campaigns/general/61.html
+http://www.ieu.asn.au/issues/general/34.html
+http://www.ieu.asn.au/ohs/stressburnout.html
+http://www.ifad.org/events/gc/28/speech/op.htm
+http://www.ifad.org/events/gc/28/speech/op_s.htm
+http://www.ifad.org/gender/learning/sector/agriculture/in_4_2.htm
+http://www.ifad.org/lrkm/tags/320.htm
+http://www.ifad.org/operations/projects/regions/PF/des/ET.htm
+http://www.ifadu.co.uk/
+http://www.ifamericansknew.org/us_ints/pg-nyt1.html
+http://www.ifasok.co.uk/financial_ombudsman_service.htm
+http://www.ifb.net/webit/recipes.htm
+http://www.ifeminists.net/introduction/essays/introduction.html
+http://www.ifex.org/fr/content/view/full/50174/
+http://www.iffiso.com/tax.htm
+http://www.ifi.ie/links.asp
+http://www.ifia-federation.org/guidelines/chpt3.htm
+http://www.ific.org/publications/brochures/pregnancybroch.cfm
+http://www.ific.org/publications/brochures/sucralosebroch.cfm
+http://www.ific.org/tools/messages.cfm
+http://www.ifip.or.at/minutes/c2001/c2001_part1.htm
+http://www.ifiwatchnet.org/eyes/item.shtml?x=43272
+http://www.ifiwatchnet.org/eyes/item.shtml?x=43274
+http://www.ifj.org/default.asp?index=1232&Language=EN
+http://www.ifj.org/default.asp?index=2757&Language=EN
+http://www.ifla.org/IV/ifla62/62-xiaj.htm
+http://www.ifla.org/IV/ifla69/faq-e.htm
+http://www.ifla.org/IV/ifla69/minutes.htm
+http://www.iflexsolutions.com/news/newsview.asp?cat=273
+http://www.ifma.org/research/research/change.cfm?actionbig=24&actionlil=284
+http://www.ifmagazine.com/common/article.asp?articleID=523
+http://www.ifor.org/WPP/faq.htm
+http://www.ifpafletcherconference.com/oldtranscripts/2003/bolton.htm
+http://www.ifpri.org/divs/mtid/dp/mtidp67.htm
+http://www.ifpri.org/pubs/fps/fps17.htm
+http://www.ifpri.org/pubs/fps/fps25.htm
+http://www.ifpri.org/themes/biotech/022400.htm
+http://www.ifpri.org/themes/mp05/pubs.htm
+http://www.ifpri.org/themes/mp17/results.htm
+http://www.ifpte17.org/organizing/formingunions.htm
+http://www.ifrc.org/docs/news/01/061502/
+http://www.ifrc.org/what/values/discrimination/infokit/bgext.asp
+http://www.ifremer.fr/anglais/plan.htm
+http://www.ifremer.fr/ditigo/molagnon/fortran90/engfaq.html
+http://www.ifs.org.uk/election/index01.php
+http://www.ifshinviolins.com/features_condition.html
+http://www.ifslearning.com/cefs/Units/unit1.htm
+http://www.ifsw.newport.ac.uk/mainpage.html
+http://www.ifsw.org/Activities/3.2.act.html
+http://www.ifsw.org/Directory/2.1.dir.html
+http://www.ifsw.org/Publications/4.4.pub.html
+http://www.ift.org/cms/?pid=1000422
+http://www.ift.org/cms/?pid=1000422&printable=1
+http://www.iftcommand.com/enlist/meminfo.php
+http://www.iftn.ie/awards/terms.htm
+http://www.iftn.ie/handbook/dsp_indexassociations.cfm
+http://www.iftn.ie/mediadesk/markets_marketaccess.htm
+http://www.iftn.ie/mediadesk/markets_third_countries.htm
+http://www.iftta.org/news.php?Region=Wales
+http://www.ifw-kiel.de/konfer/innovation/inno.htm
+http://www.ig.utexas.edu/hess_deep/treport4.htm
+http://www.igames.org/tournaments/MiniNewsView.asp?MiniID=30&AssetID=201
+http://www.igamingnews.com/index.cfm?page=artlisting&tid=5103
+http://www.igcar.ernet.in/transiim/_private/Authors/instructions_to_authors.htm
+http://www.igda.org/articles/miller_time.php
+http://www.igda.org/articles/rreynolds_ethics.php
+http://www.igda.org/smichigan/Jun04/report.htm
+http://www.igigroup.com/
+http://www.igin.com/Irrigation/0304meter.html
+http://www.iglou.com/vrsky/home.html
+http://www.iglss.org/accessible/html/angles/angles1-2_p2.html
+http://www.igluski.com/propertyInfo.cfm?pid=19028&dep=LGW
+http://www.igluski.com/propertyInfo.cfm?pid=19596&dep=EDI
+http://www.ignatzmice.com/Adam/features/Canal_Walk/WALKING_THE_CANALS_OF_AMSTERDAM_2.htm
+http://www.igoldrush.com/feat8.htm
+http://www.igougo.com/planning/journalEntryActivity.asp?JournalID=9028&EntryID=16611&n=Lowery's+Hot+Glass
+http://www.igreens.org.uk/
+http://www.igs.berkeley.edu/library/gallery-ca.html
+http://www.igs.berkeley.edu/publications/uspolitics.html
+http://www.igs.berkeley.edu/reports/democraticDeficit.html
+http://www.igsb.uiowa.edu/gsi/gb70/m_qury_sect_written.htm
+http://www.igtoa.org/news/letters/sepvoz/cdf_bulletin.php
+http://www.ih-osaka.or.jp/enjoy/en/housing/01.html
+http://www.ihavideo.com/RRVideos.html
+http://www.ihc.com/xp/ihc/aboutihc/lifestories.xml
+http://www.ihealthbeat.org/index.cfm?Action=dspItem&itemID=105124
+http://www.iherve.com/oracle/aordby.htm
+http://www.iheu.org/modules/afsection/article.php?articleid=326
+http://www.iheu.org/modules/afsection/article.php?articleid=43
+http://www.iheu.org/modules/bfsection/article.php?articleid=326
+http://www.iheu.org/modules/bfsection/article.php?articleid=96
+http://www.iheu.org/modules/news/article.php?storyid=118
+http://www.iheu.org/modules/news/print.php?storyid=118
+http://www.iheu.org/modules/wfsection/article.php?articleid=257
+http://www.iheu.org/modules/wfsection/article.php?articleid=326
+http://www.iheu.org/modules/wfsection/article.php?articleid=490
+http://www.ihf.info/CDA/tactics_corner,11997,0,,en.html
+http://www.ihhotel.com/overview.html
+http://www.ihigh.com/0,1773,2_1_0_97776,00.html
+http://www.ihigh.com/0,1773,2_4_0_97827,00.html
+http://www.ihispano.com/JobDetails.asp?ReviewJobs=322869&jTitle=General+Manager+3%2C+Food
+http://www.ihp.edu/coficg_tibet.html
+http://www.ihpm.org/programs/4ps/
+http://www.ihr.org/books/kulaszka/33leuchter.html
+http://www.ihr.org/jhr/v02/v02p137_Weber.html
+http://www.ihrc.org.uk/show.php?id=1030
+http://www.ihrim.org/
+http://www.ihsenergy.com/products/geps/index.jsp
+http://www.ihspress.com/whatsnew.htm
+http://www.ihssolutions.com/canada/clients/profiles.cfm?id=27
+http://www.ihssolutions.com/us/clients/profiles.cfm?id=27
+http://www.iht.com/articles/2004/10/18/news/edslaughter.html
+http://www.iht.com/articles/2004/12/28/news/edpfaff.html
+http://www.iht.com/articles/2005/01/23/business/prices.html
+http://www.iht.com/articles/2005/05/23/news/class.php
+http://www.iht.com/articles/2005/05/23/news/korea.php
+http://www.iht.com/articles/2005/06/10/news/india.php
+http://www.iht.com/articles/2005/06/10/opinion/edkrug.php
+http://www.iht.com/articles/2005/06/12/news/ravsaf.php
+http://www.iht.com/articles/2005/06/13/news/defect.php
+http://www.iht.com/articles/2005/06/15/news/troops.php
+http://www.iht.com/articles/2005/06/19/opinion/edbrooks.php
+http://www.iht.com/articles/2005/06/24/sports/tennis.php
+http://www.iht.com/articles/536614.html
+http://www.ihuntalberta.com/showdown.asp
+http://www.iia.edu.au/content/faq.html
+http://www.iiasa.ac.at/Research/LUC/Papers/gkh1/chap1.htm
+http://www.iidc.indiana.edu/irca/education/whoFor.html
+http://www.iie.com/publications/newsreleases/globaleconprospects3.htm
+http://www.iie.com/publications/papers/camdessus0202.htm
+http://www.iie.com/publications/papers/hufbauer0102.htm
+http://www.iie.com/publications/papers/lardy1003.htm
+http://www.iie.com/publications/papers/noland0202.htm
+http://www.iie.com/publications/papers/noland0203.htm
+http://www.iie.com/publications/papers/paper.cfm?ResearchID=354
+http://www.iie.com/publications/papers/paper.cfm?ResearchID=437
+http://www.iie.com/publications/papers/posen1002.htm
+http://www.iie.com/publications/pb/pb01-8.htm
+http://www.iie.org/Content/NavigationMenu/Research_Publications/Chicago1/person1.htm
+http://www.iied.org/mmsd/Bulletin/bulletin_16.html
+http://www.iif.edu/academicprograms/courselisting.htm
+http://www.iif.edu/academicprograms/dlpcourselisting.htm
+http://www.iihs.org/sr.htm
+http://www.iihs.org/vehicle_ratings/ictl/ictl.htm
+http://www.iiim.org/islamed3.html
+http://www.iinet.com.au/~scarffam/cpa.html
+http://www.iir.berkeley.edu/library/blg/unionorg.html
+http://www.iirobotics.com/webpages/robothistory.php
+http://www.iis.ee.ethz.ch/~neeri/soccer/GC95Mar12.html
+http://www.iisc.ernet.in/soi/ch.htm
+http://www.iisd.ca/cairo.html
+http://www.iisd.ca/population/ungass/30june.html
+http://www.iisd.ca/sd/iucn/wcc3/sdvol39num10e.html
+http://www.iisd.ca/sd/iucn/wcc3/sdvol39num13e.html
+http://www.iisd.ca/sd/sdmos/ymbvol110num1e.html
+http://www.iisd.ca/sd/wto-issues/july7am.html
+http://www.iiss.org/news-more.php?itemID=1209
+http://www.iiss.org/stratcomfree.php?scID=419
+http://www.iist.unu.edu/newrh/I/4/page.html
+http://www.iit.edu/departments/msed/msed_philosophy.html
+http://www.iit.edu/~iitcomdev/south_partners/bronzville1.html
+http://www.iit.edu/~osa/Handbook/FinePrint5.html
+http://www.iit.edu/~smile/ma9403.html
+http://www.iitfoundation.org/giving/
+http://www.iitt.org.uk/public/events/conference1.asp
+http://www.iittl.unt.edu/IITTL/about.htm
+http://www.ij.org/publications/liberty/2003/12_6_03_a.html
+http://www.ijc.com/ci1
+http://www.ijc.com/ci1/
+http://www.ijc.org/php/publications/html/osoyoos/osoyoos_cy00.htm
+http://www.ijc.org/php/publications/html/osoyoos/special_statement.htm
+http://www.ijc.org/php/publications/html/pubforum97/labour.html
+http://www.ijc.org/rel/agree/air.html
+http://www.ijccm.org/article.asp?issn=0972-5229;year=2004;volume=8;issue=2;spage=106;epage=110;aulast=Seppelt
+http://www.ijee.dit.ie/OnlinePapers/Interactive/Lundgren/Lundgren04.htm
+http://www.ijf.org/rule/rule_manual_04.php?Code=5
+http://www.ijri.org/teaching/teach.htm
+http://www.ikidney.com/iKidney/Community/Pro2Pro/Administrators/PearlsofWisdomUnityIntheRenalCareEnvironment.htm
+http://www.ikidney.com/iKidney/Community/Pro2Pro/Nurses/PearlsofWisdomUnityIntheRenalCareEnvironment.htm
+http://www.ikidney.com/iKidney/Community/StickySituation.htm
+http://www.ikidney.com/iKidney/Lifestyles/LifestyleTips/Hemodialysis/TheCriticalImportanceofControllingYourBloodPressure.htm
+http://www.ikidney.com/iKidney/Lifestyles/LifestyleTips/PeritonealDialysis/TheCriticalImportanceofControllingYourBloodPressure.htm
+http://www.ikmagazine.com/currentissue.asp
+http://www.ikosmos.com/wisdomeditions/mindscience/mindscience_ch3.htm
+http://www.ikosmos.com/wisdomeditions/mindscience/noetic_review.htm
+http://www.ilaea.org/iaea/careers.htm
+http://www.ilcaonline.org/modules.php?op=modload&name=News&file=article&sid=1688
+http://www.ilcaonline.org/print.php?sid=1688
+http://www.ilga.gov/legislation/publicacts/pubact90/acts/90-0676.html
+http://www.ilga.info/Information/Legal_survey/Asia_Pacific/malaysia.htm
+http://www.ilga.info/Information/Legal_survey/Asia_Pacific/supporting%20files/australia__new_south_wales_.htm
+http://www.ilga.info/Information/Legal_survey/africa/supporting%20files/yan_daudu_and_proud__same.htm
+http://www.ilga.info/Information/Legal_survey/europe/hungary.htm
+http://www.ilga.info/Information/Legal_survey/ilga_world_legal_survey%20introduction.htm
+http://www.ilikelasagna.com/blog/2003_02_01_archive.html
+http://www.ilir.uiuc.edu/faculty/papers.html
+http://www.ilizarov.org.uk/stress.htm
+http://www.illegal-art.org/
+http://www.illegal-art.org/index2.html
+http://www.illinoisbar.org/Association/014-16e.htm
+http://www.illinoisbiz.biz/com/ghta/2004_winners.html
+http://www.illinoisfms.org/BethRu2.html
+http://www.illinoisleader.com/news/newsview.asp?c=2262
+http://www.illinoislegalaid.org/index.cfm?fuseaction=home.dsp_content&contentID=182
+http://www.illinoislegalaid.org/index.cfm?fuseaction=home.dsp_content&contentID=1949
+http://www.illinoislegalaid.org/index.cfm?fuseaction=home.dsp_content&contentID=336
+http://www.illinoisloop.org/
+http://www.illinoisloop.org/brain.html
+http://www.illinoisloop.org/desks.html
+http://www.illinoislottery.com/subsections/news03.htm
+http://www.illinoispolicyinstitute.org/blog/archives/2005/04/index.php
+http://www.illinoistrialpractice.com/
+http://www.illuminati-news.com/e-books/morals-dogma/apikeintro.html
+http://www.ilo.org/dyn/dwresources/iebrowse.home
+http://www.ilo.org/dyn/dwresources/iebrowse.page?p_lang=en&p_ieresource_id=626
+http://www.ilo.org/ilolex/cgi-lex/convde.pl?C146
+http://www.ilo.org/public/english/bureau/inf/magazine/47/globit.htm
+http://www.ilo.org/public/english/bureau/inf/magazine/53/cambodia.htm
+http://www.ilo.org/public/english/bureau/inf/pr/2004/35.htm
+http://www.ilo.org/public/english/bureau/inf/pr/2005/32.htm
+http://www.ilo.org/public/english/bureau/leg/agreements/switz.htm
+http://www.ilo.org/public/english/dialogue/ifpdial/la/gp/quebec.htm
+http://www.ilo.org/public/english/dialogue/sector/sectors/educat.htm
+http://www.ilo.org/public/english/dialogue/sector/techmeet/jmps98/jmpsrep1.htm
+http://www.ilo.org/public/english/dialogue/sector/techmeet/smc97/smcrep.htm
+http://www.ilo.org/public/english/employment/gems/eeo/guide/usa/eeeoc.htm
+http://www.ilo.org/public/english/employment/gems/eeo/law/mexico/inst_sls.htm
+http://www.ilo.org/public/english/employment/recon/crisis/conf/empwork.htm
+http://www.ilo.org/public/english/employment/recon/eiip/countries/asia/india.htm
+http://www.ilo.org/public/english/employment/recon/eiip/news/
+http://www.ilo.org/public/english/employment/skills/recomm/publ/pdf_04.htm
+http://www.ilo.org/public/english/employment/skills/recomm/topic_i/t26_ilo.htm
+http://www.ilo.org/public/english/employment/skills/recomm/topic_i/t7_ilo.htm
+http://www.ilo.org/public/english/employment/skills/training/casest/laiki.htm
+http://www.ilo.org/public/english/employment/strat/publ/iddp8.htm
+http://www.ilo.org/public/english/region/afpro/mdtharare/conf/recentevents.htm
+http://www.ilo.org/public/english/region/eurpro/geneva/activities/ac/ac_02.htm
+http://www.ilo.org/public/english/region/eurpro/london/projects/winwo.htm
+http://www.ilo.org/public/english/standards/norm/whatare/stndards/indrel.htm
+http://www.ilo.org/public/english/standards/relm/ilc/ilc87/com-chid.htm
+http://www.ilo.org/public/english/support/lib/dblist.htm
+http://www.ilo.org/public/english/support/publ/revue/articles/ank97-3.htm
+http://www.ilo.org/public/english/tribunal/fulltext/1277.htm
+http://www.ilocarib.org.tt/meetings/lmis_sem/
+http://www.ilove.co.uk/info/ilove-gb-en-uk/catalogue/england/he-seeking-her-hamish69-1985.html
+http://www.ilove.co.uk/info/ilove-gb-en-uk/catalogue/england/he-seeking-her-peter787-1969.html
+http://www.ilove.co.uk/info/ilove-gb-en-uk/catalogue/england/huddersfield/he-seeking-her-johnyfive-1958.html
+http://www.ilovenapa.com/visitors_activities_home.php
+http://www.ilovephilosophy.com/phpbb/viewtopic.php?p=1620853
+http://www.ilr.cornell.edu/trianglefire/texts/newspaper/cst_032611.html?location=Fire!
+http://www.ilr.tu-berlin.de/WKA/windnet/usw01.html
+http://www.ilrc-trico.org/ilrcnewsltrs/ilrcnews4Q2001.html
+http://www.ilrg.com/forms/realestate-purchase-co.html
+http://www.ilrg.com/forms/realestate-purchase.html
+http://www.ilri.org/html/trainingMat/policy_X5547e/x5547e0z.htm
+http://www.ilsr.org/ecotax/grntaxfn.html
+http://www.ilsr.org/pubs/pubsrules.html
+http://www.ilstu.edu/depts/police/summary/2001/mar19_25.htm
+http://www.ilwu19.com/history/the_ilwu_story/international_solidarity.htm
+http://www.ima.umn.edu/newsltrs/updates/summer03/
+http://www.imacdigest.com/2000rep/p79-84.html
+http://www.image-asia.com/events.htm
+http://www.imagefv.org/services_salons.htm
+http://www.imagematics.com/ProductPage.htm
+http://www.imagens-terra.com/travel/best-guides.htm
+http://www.imageproshop.com/terms.asp
+http://www.imagesjournal.com/issue01/features/wayne2.htm
+http://www.imagesjournal.com/issue10/reviews/blackchristmas/text.htm
+http://www.imaginaryplanet.net/essays/travel/albania2/leaving1.html
+http://www.imagination-institute.com/Martin%20Brofman.htm
+http://www.imaging-resource.com/PRODS/ES10/ES10A.HTM
+http://www.imaging-resource.com/SOFT/SMPE/SMPE.HTM
+http://www.imagingnotes.com/marapr02/murphy.htm
+http://www.imakenews.com/fulbright/e_article000293019.cfm
+http://www.imakenews.com/fulbright/e_article000304348.cfm
+http://www.imakenews.com/psaanews/index000050690.cfm?x=b11,0,w
+http://www.imakenews.com/ptcexpress/e_article000310857.cfm?x=b3G28WM,0,w
+http://www.imao.us/archives/000634.html
+http://www.imaps.org/imaps2004/pdcs_sunday.htm
+http://www.imarest.org/emarine/issue4.htm
+http://www.imarest.org/inews/1998dec/Default.htm
+http://www.imat.ca/emma_sponsorship.shtml
+http://www.imc-usa.org/cgi-bin/cfm/WeeklyDigest.cfm?WDid=108
+http://www.imc.cas.cz/en/imc/dop/
+http://www.imc.co.uk/our_standards/statement_best_practice.php
+http://www.imcworldwide.org/loc_indo-tim012305.shtml
+http://www.imdb.co.uk/title/tt0405159/
+http://www.imdb.com/
+http://www.imdb.com/Newsletter/newsletter-15
+http://www.imdb.com/Title?0375611
+http://www.imdb.com/name/nm0000577/
+http://www.imdb.com/name/nm0001774/
+http://www.imdb.com/name/nm0090124/
+http://www.imdb.com/name/nm0647705/
+http://www.imdb.com/name/nm0667734/news
+http://www.imdb.com/name/nm0787715/
+http://www.imdb.com/news/sb/
+http://www.imdb.com/news/sb/2005-03-18
+http://www.imdb.com/news/wenn/2005-04-18
+http://www.imdb.com/news/wenn/2005-06-24/
+http://www.imdb.com/title/tt0008827/
+http://www.imdb.com/title/tt0031381/fullcredits
+http://www.imdb.com/title/tt0031381/usercomments
+http://www.imdb.com/title/tt0034167/
+http://www.imdb.com/title/tt0036342/quotes
+http://www.imdb.com/title/tt0043274/dvd
+http://www.imdb.com/title/tt0047673/
+http://www.imdb.com/title/tt0047849/
+http://www.imdb.com/title/tt0060196/
+http://www.imdb.com/title/tt0061209/
+http://www.imdb.com/title/tt0064116/
+http://www.imdb.com/title/tt0074084/
+http://www.imdb.com/title/tt0074254/
+http://www.imdb.com/title/tt0076759/quotes
+http://www.imdb.com/title/tt0076984/
+http://www.imdb.com/title/tt0078902/
+http://www.imdb.com/title/tt0083851/
+http://www.imdb.com/title/tt0085334/
+http://www.imdb.com/title/tt0086979/usercomments
+http://www.imdb.com/title/tt0087843/
+http://www.imdb.com/title/tt0089881/
+http://www.imdb.com/title/tt0092099/quotes
+http://www.imdb.com/title/tt0093209/usercomments
+http://www.imdb.com/title/tt0093638/
+http://www.imdb.com/title/tt0094347/usercomments
+http://www.imdb.com/title/tt0097336/usercomments
+http://www.imdb.com/title/tt0098844/
+http://www.imdb.com/title/tt0106341/combined
+http://www.imdb.com/title/tt0107034/
+http://www.imdb.com/title/tt0108778/usercomments
+http://www.imdb.com/title/tt0109642/
+http://www.imdb.com/title/tt0109906/usercomments
+http://www.imdb.com/title/tt0115376/usercomments
+http://www.imdb.com/title/tt0116913/
+http://www.imdb.com/title/tt0117705/usercomments
+http://www.imdb.com/title/tt0118571/
+http://www.imdb.com/title/tt0120586/
+http://www.imdb.com/title/tt0120915/
+http://www.imdb.com/title/tt0128239/usercomments
+http://www.imdb.com/title/tt0151804/quotes
+http://www.imdb.com/title/tt0160289/
+http://www.imdb.com/title/tt0167261/
+http://www.imdb.com/title/tt0190590/quotes
+http://www.imdb.com/title/tt0208654/
+http://www.imdb.com/title/tt0209144/
+http://www.imdb.com/title/tt0221218/
+http://www.imdb.com/title/tt0233200/
+http://www.imdb.com/title/tt0238784/
+http://www.imdb.com/title/tt0243017/usercomments
+http://www.imdb.com/title/tt0243655/
+http://www.imdb.com/title/tt0265666/maindetails
+http://www.imdb.com/title/tt0266697/
+http://www.imdb.com/title/tt0268397/usercomments
+http://www.imdb.com/title/tt0280760/usercomments
+http://www.imdb.com/title/tt0286499/
+http://www.imdb.com/title/tt0294357/
+http://www.imdb.com/title/tt0307453/combined
+http://www.imdb.com/title/tt0316356/
+http://www.imdb.com/title/tt0320808/combined
+http://www.imdb.com/title/tt0326900/combined
+http://www.imdb.com/title/tt0338013/
+http://www.imdb.com/title/tt0338290/usercomments
+http://www.imdb.com/title/tt0339707/usercomments
+http://www.imdb.com/title/tt0350258/usercomments
+http://www.imdb.com/title/tt0363988/
+http://www.imdb.com/title/tt0364828/
+http://www.imdb.com/title/tt0366629/
+http://www.imdb.com/title/tt0368447/
+http://www.imdb.com/title/tt0372784/
+http://www.imdb.com/title/tt0375063/combined
+http://www.imdb.com/title/tt0375063/quotes
+http://www.imdb.com/title/tt0376541/
+http://www.imdb.com/title/tt0387360/
+http://www.imdb.com/title/tt0397065/
+http://www.imdb.com/title/tt0398679/
+http://www.imdb.com/title/tt0405980/
+http://www.imdb.com/title/tt0418819/combined
+http://www.imdb.com/title/tt0424774/
+http://www.imdb.com/title/tt0424774/combined
+http://www.imdb.com/title/tt0424774/usercomments?start=10
+http://www.imdb.com/title/tt0452674/
+http://www.imdiversity.com/Villages/African/Daily_News.asp
+http://www.imdiversity.com/Villages/Asian/Village_Index_List.asp
+http://www.imediaconnection.com/content/1927.asp
+http://www.imediaconnection.com/content/5412.asp
+http://www.imediaconnection.com/content/6146.asp
+http://www.iment.com/maida/family/
+http://www.imergentinc.com/testimonials.html
+http://www.imf.org/external/np/cm/2000/092500.htm
+http://www.imf.org/external/np/cm/2001/111801.htm
+http://www.imf.org/external/np/exr/facts/asia.htm
+http://www.imf.org/external/np/exr/facts/surv.htm
+http://www.imf.org/external/np/exr/ib/2000/041200.htm
+http://www.imf.org/external/np/exr/ib/2000/062600.htm
+http://www.imf.org/external/np/loi/1999/022299.htm
+http://www.imf.org/external/np/loi/2003/mng/01/
+http://www.imf.org/external/np/loi/2004/bgr/01/
+http://www.imf.org/external/np/loi/2004/geo/01/
+http://www.imf.org/external/np/loi/2004/irq/01/
+http://www.imf.org/external/np/ms/2000/070300.htm
+http://www.imf.org/external/np/ms/2002/102802.htm
+http://www.imf.org/external/np/ms/2005/061305.htm
+http://www.imf.org/external/np/omd/2004/eng/041904.htm
+http://www.imf.org/external/np/pdr/sdrm/2002/090402.htm
+http://www.imf.org/external/np/rosc/cmr/banking.htm
+http://www.imf.org/external/np/sec/pr/2000/pr0054.htm
+http://www.imf.org/external/np/speeches/2004/032304a.htm
+http://www.imf.org/external/np/speeches/2004/082504.htm
+http://www.imf.org/external/np/speeches/2004/100404.htm
+http://www.imf.org/external/np/speeches/2004/111104.htm
+http://www.imf.org/external/np/speeches/2004/120604.htm
+http://www.imf.org/external/np/speeches/2004/121504.htm
+http://www.imf.org/external/np/tr/1998/tr980921.htm
+http://www.imf.org/external/np/tr/2003/tr030320.htm
+http://www.imf.org/external/np/tr/2003/tr030916.htm
+http://www.imf.org/external/np/tr/2004/tr040423a.htm
+http://www.imf.org/external/np/tr/2005/tr050511.htm
+http://www.imf.org/external/np/vc/2003/121503.htm
+http://www.imf.org/external/pubs/ft/fandd/1999/12/tapscott.htm
+http://www.imf.org/external/pubs/ft/issues/issues23/
+http://www.imf.org/external/pubs/ft/sd/index.asp?decision=EBM/02/94_2
+http://www.imf.org/external/pubs/ft/weo/1999/01/data/
+http://www.imf.org/external/pubs/ft/weo/2000/01/data/
+http://www.imglobal.com/coverage/
+http://www.imglobal.com/coverage/patriot/
+http://www.imglobal.com/coverage/patriot_extreme/
+http://www.imisite.org/advocacy.php
+http://www.imj.ie/news_detail.php?nNewsId=2629&nVolId=101
+http://www.imj.ie/news_detail.php?nPrint=1&nNewsId=2629&nVolId=101
+http://www.immanuelbible.net/outreach/understanding_homosexuality.htm
+http://www.immd.gov.hk/ehtml/contactus.htm
+http://www.immediatefuture.co.uk/364
+http://www.immi.gov.au/study/working/
+http://www.immigrantgarden.com/cast.htm
+http://www.immigration.ca/permres-citizenship-requirements.asp
+http://www.immigration.ca/permres-gii-election.asp
+http://www.immigrationboards.com/old/index.php?forum_id=1&topic_id=004430
+http://www.imminet.com/about/about_industry.htm
+http://www.imminst.org/forum/index.php?act=ST&f=67&t=3499&s=
+http://www.imminst.org/forum/index.php?act=ST&f=69&t=4947&s=
+http://www.immunesupport.com/Library/showarticle.cfm/ID/4906/HealthWatch/HealthWatch-Treatment-Guide-2003
+http://www.immunesupport.com/library/showarticle.cfm/ID/4620/e/1/T/CFIDS_FM/
+http://www.imnotsorry.net/FAQ.htm
+http://www.imnotsorry.net/stacy.htm
+http://www.imo.ie/
+http://www.imo.ie/view_categories.php?cat_id=126&doc_id=3736
+http://www.imo.ie/view_categories.php?cat_id=15&doc_id=3717
+http://www.imo.ie/view_categories.php?cat_id=536&doc_id=3390&sCat=536
+http://www.imo.ie/view_categories.php?cat_id=560&doc_id=3782
+http://www.imo.ie/view_categories.php?cat_id=568&doc_id=3851
+http://www.imo.ie/view_categories.php?cat_id=568&doc_id=3853
+http://www.imo.ie/view_categories.php?cat_id=572&doc_id=3875
+http://www.imo.org/Conventions/mainframe.asp?topic_id=251
+http://www.imo.org/InfoResource/mainframe.asp?topic_id=835
+http://www.imonline.co.uk/movinghome/guides/conveyancing/acting_for_the_buyer/completion.asp
+http://www.imonline.co.uk/movinghome/guides/conveyancing/acting_for_the_buyer/pre-contract.asp
+http://www.imonline.co.uk/movinghome/guides/conveyancing/acting_for_the_seller/pre-contract.asp
+http://www.imonthe.net/66wnbc/engineer.htm
+http://www.impact-sharing.com/impactsharing/PastEvents
+http://www.impactfactory.com/p/customer_facing_skills_training/snacks_170-2103-63735.html
+http://www.impactgames.biz/newreleases/
+http://www.impactlab.com/modules.php?name=News&file=article&sid=4737
+http://www.impactlab.com/modules.php?name=News&file=print&sid=4737
+http://www.impactpress.com/articles/aprmay04/moore4504.html
+http://www.impactpress.com/articles/aprmay99/newleader4599.html
+http://www.impactpress.com/articles/decjan04/democrats120104.html
+http://www.impactpress.com/articles/febmar99/musicr2399.html
+http://www.impactrm.com/html/airprod.html
+http://www.impactscan.org/
+http://www.impawards.com/
+http://www.impeach-andrewjohnson.com/10RemainderOfAJTermLife/vii-11.htm
+http://www.imperial-software.com/pr7.22.02.html
+http://www.imperial.ac.uk/P2025.htm
+http://www.imperial.ac.uk/P2349.htm
+http://www.imperial.ac.uk/P5155.htm
+http://www.imperial.ac.uk/research/theory/about/useful/eating.htm
+http://www.imperialinnovations.co.uk/news/news2002/innovation_14_05_02.asp
+http://www.imperialoil.ca/Canada-English/Products/Fuels/Road_Transport/PS_F_RT_RoadTransportTipBeforeGo.asp
+http://www.imperialtea.com/about/RecentPress1.asp
+http://www.imperialteagarden.com/blog1.html
+http://www.imperiumjournal.com/0pages/40003.html
+http://www.impetuous-epicure.com/archives/2004_10.html
+http://www.impliedbydesign.com/web-design-clients.html
+http://www.impress.com.au/albinism.htm
+http://www.improvementsart.com/perl/frSearch?collectionID=3190&sortType=MostRelevant&page=6
+http://www.improvresourcecenter.com/mb/showthread.php?s=&threadid=1982
+http://www.ims.org/projects/project_info/irma.html
+http://www.ims.org/projects/project_info/mission.html
+http://www.ims.org/projects/project_info/step_nc.html
+http://www.imserba.com/DownloadsPlus+index-req-viewdownloaddetails-lid-3515-ttitle-Oil_Rig.html
+http://www.imswebtips.com/issue20top1.htm
+http://www.imuis.uiowa.edu/cic/infolink/counseling.shtml
+http://www.imuis.uiowa.edu/services/ges/policies/3.shtml
+http://www.imuna.org/c2c/chapt4.html
+http://www.in-cites.com/journals/EcologyLetters.html
+http://www.in-forum.com/specials/savingnd/index2.cfm?page=chat_inside
+http://www.in.gov/dor/contact/district.html
+http://www.in.gov/dor/contact/indy.html
+http://www.in.gov/judiciary/rules/prof_conduct/
+http://www.in.gov/legislative/bills/2005/IN/IN1025.1.html
+http://www.inanews.com/careers/viewjob.html
+http://www.inarinpaliskunnat.org/rights.html
+http://www.inboxrobot.com/news/DavidDreier
+http://www.inboxrobot.com/news/StateFarmInsurance
+http://www.inboxrobot.com/news/WinstonCup
+http://www.inbusinesslasvegas.com/2005/06/24/smbizpro.html
+http://www.inc.com/articles/2000/02/17239.html
+http://www.inc.com/articles/2004/03/7dayweekend.html
+http://www.inc.com/businessfinance/
+http://www.inc.com/magazine/19971015/1473.html
+http://www.inc.com/magazine/19990401/765.html
+http://www.inc.com/magazine/20000401/18114.html
+http://www.inc.com/magazine/20001101/20915.html
+http://www.inc.com/magazine/20010401/22307.html
+http://www.inc.com/magazine/20010615/22800.html
+http://www.inc.com/magazine/20030301/25211.html
+http://www.inc.com/magazine/20030701/25643.html
+http://www.inc.com/magazine/20040601/nbrodsky.html
+http://www.inc.com/magazine/20040801/optimist.html
+http://www.inc.com/magazine/20041015/why-size-matters.html
+http://www.inc.com/magazine/20050101/eoty-rutan.html
+http://www.inc.com/magazine/20050501/bestcities.html
+http://www.inc.com/resources/finance/articles/20041101/venturecapital.html
+http://www.incaf.com/catalog.php
+http://www.incent.com/pubs/interactions.html
+http://www.inch-aweigh.com/pilatescraze.htm
+http://www.inchem.org/documents/cicads/cicads/cicad47.htm
+http://www.inchem.org/documents/cicads/cicads/cicad50.htm
+http://www.inchem.org/documents/ehc/ehc/ehc086.htm
+http://www.incidentcontrol.com/firethanks.html
+http://www.incloseup.co.uk/reports/gorillas&palmtrees.htm
+http://www.inclusive.co.uk/catalog/touchmon_flat.shtml
+http://www.inclusivechurch.net/news.html?id=62
+http://www.incog.org/City%20of%20Tulsa%20Zoning%20Code/CH_06.htm
+http://www.incoming.com/queuetips/pages/200201/qt02011105.aspx?SelectedNode=QueueTips
+http://www.incredible-adventures.com/coldfinger.html
+http://www.incrediblechange.com/staying.html
+http://www.incremax.com/?clid=76&cid=373&cmid=107
+http://www.incsoftware.co.uk/contact.html
+http://www.ind.homeoffice.gov.uk/ind/en/home/0/preventing_illegal/avoiding_racial_discrimination.html
+http://www.indafusion.co.uk/
+http://www.indax.com/findnpla.html
+http://www.indcatholicnews.com/footm.html
+http://www.indcjournal.com/
+http://www.indcjournal.com/archives/001441.php
+http://www.indeconomist.com/151104_sfl.html
+http://www.indeed.com/jobs?q=&l=Detroit%2C+MI&start=10
+http://www.indeed.com/jobs?q=&l=Detroit%2C+MI&start=20
+http://www.indeed.com/jobs?q=+Director+of+Product+PRICING&l=Seattle%2C+WA&rb=1
+http://www.indegayforum.org/authors/dahl/dahl25.html
+http://www.indegayforum.org/authors/swayne/swayne7.html
+http://www.indepen.co.uk/weeklynews.html
+http://www.independent-media.tv/
+http://www.independent-media.tv/gtheme.cfm?ftheme_id=54&fdate_posted=%7Bts%20'2004-04-27%2000:00:00'%7D
+http://www.independent-media.tv/gtheme.cfm?ftheme_id=54&fdate_posted=%7Bts%20'2004-04-28%2000:00:00'%7D
+http://www.independent-media.tv/index.cfm
+http://www.independent-media.tv/item.cfm?fmedia_id=10232&fcategory_desc=Under%20Reported
+http://www.independent-media.tv/item.cfm?fmedia_id=10312&fcategory_desc=Election%202004
+http://www.independent-media.tv/item.cfm?fmedia_id=10354&fcategory_desc=Under%20Reported
+http://www.independent-media.tv/item.cfm?fmedia_id=1979&fcategory_desc=Under%20Reported
+http://www.independent-media.tv/item.cfm?fmedia_id=3617&fcategory_desc=Under%20Reported
+http://www.independent-media.tv/item.cfm?fmedia_id=7279&fcategory_desc=Promoted%20Materials
+http://www.independent-media.tv/itemprint.cfm?fmedia_id=10354&fcategory_desc=Under%20Reported
+http://www.independent-media.tv/itemprint.cfm?fmedia_id=9183&fcategory_desc=Promoted%20Materials
+http://www.independent.org/aboutus/saying.asp
+http://www.independent.org/newsroom/article.asp?ID=69
+http://www.independent.org/newsroom/article.asp?id=1465
+http://www.independent.org/publications/books/book_summary.asp?bookID=32
+http://www.independent.org/tii/content/pubs/review/books/TIR32_McDougall.html
+http://www.independentinspectors.org/
+http://www.independentjudiciary.com/issues/
+http://www.independentliving.co.uk/financial/jobseeker.html
+http://www.independentliving.co.uk/financial/severe.html
+http://www.independentliving.co.uk/manual-handling.html
+http://www.independentliving.com/
+http://www.independentliving.org/docs2/enilfuture.html
+http://www.independentliving.org/docs6/martinez2003.html
+http://www.independentsector.org/issues/buildingvalue/opsupport.html
+http://www.independenttraveler.com/resources/article.cfm?AID=432&category=11
+http://www.independentvoice.com/sub/ssp.html
+http://www.indepundit.com/archive2/2004/11/rules_of_engage_1.html
+http://www.inderscience.com/filter.php?aid=2535
+http://www.inderscience.com/papers/submissions.php
+http://www.indexbooks.co.uk/complete.html
+http://www.indexmagazine.com/interviews/aphex_twin.shtml
+http://www.indexonline.org/en/news/articles/2005/1/nepal-king-silences-his-own-country.shtml
+http://www.india-seminar.com/2000/491/491%20s.k.%20bhowmik.htm
+http://www.india.moog.com/noq/_news__c284t3529/
+http://www.indiacgny.org/php/showContent.php?linkid=29
+http://www.indiadaily.com/editorial/11-19c-04.asp
+http://www.indiadaily.com/editorial/1610.asp
+http://www.indiadaily.com/editorial/3280.asp
+http://www.indiaday.org/new-development3.htm
+http://www.indiafm.com/interviews/05/vipulwaqt/index.shtml
+http://www.indiahabitat.org/newarrivals/newarrivals_20thjune2k5.html
+http://www.indiainfoline.com/comp/alst/dr00.html
+http://www.indiainfoline.com/lega/feat/cran.html
+http://www.indiainfoline.com/lega/feat/pios.html
+http://www.indiainfoline.com/nevi/mact.html
+http://www.indiainfoline.com/nevi/stst1.html
+http://www.indiainfoline.com/nevi/wadi/
+http://www.indiainfoline.com/nevi/wave.html
+http://www.indiainfoline.com/view/070200.html
+http://www.indiainfoline.com/view/2703.html
+http://www.indiainternets.com/
+http://www.indialantic.com/
+http://www.indialantic.com/contents/news_let/2004/Rec02_04/Rec02_04.htm
+http://www.indialantic.com/contents/news_let/2004/Rec06_04/Rec06_04.htm
+http://www.indialantic.com/contents/news_let/Rec06_99/rec06_99.htm
+http://www.indiana.edu/~ancmed/foundations.htm
+http://www.indiana.edu/~bulletin/iub/grad/2000-2002/speech.html
+http://www.indiana.edu/~csrc/perl2.html
+http://www.indiana.edu/~famlygrf/units/decisions.html
+http://www.indiana.edu/~iaunrc/caweb.html
+http://www.indiana.edu/~idt/shortpapers/documents/design_culture_smith.html
+http://www.indiana.edu/~iubnurse/home/course/description.html
+http://www.indiana.edu/~jah/mexico/jdurand.html
+http://www.indiana.edu/~kettlab/ellen/abstracts.html
+http://www.indiana.edu/~kines/activity_dance.html
+http://www.indiana.edu/~league/1944.htm
+http://www.indiana.edu/~letrs/vwwp/norton/mob.html
+http://www.indiana.edu/~letrs/vwwp/schreiner/closer.html
+http://www.indiana.edu/~libsalc/african/awards/commonwealth.html
+http://www.indiana.edu/~phil/ByLaws.htm
+http://www.indiana.edu/~pietsch/emeritusiu.html
+http://www.indiana.edu/~pietsch/split-brain.html
+http://www.indiana.edu/~sfa/types_aid/ws.html
+http://www.indiana.edu/~sscr/summaries/aas1999/aas_szonyi.html
+http://www.indiana.edu/~west/grant.shtml
+http://www.indiana.edu/~wts/pamphlets/personal_statement.shtml
+http://www.indianacharters.org/faq.asp
+http://www.indianamasons.org/imoanti/isittrue/chap5.htm
+http://www.indianamilitary.org/WakemanHospital/Donations/Donations-11-22-1946.htm
+http://www.indiananurses.org/government/2004_leg_updates/senate_current.htm
+http://www.indiananurses.org/government/2004_leg_updates/senate_current_print.htm
+http://www.indianasoccerleague.com/Policies%20and%20Procedures.htm
+http://www.indianchild.com/child_development.htm
+http://www.indianchild.com/friendship.htm
+http://www.indianchristianity.org/roman.html
+http://www.indiancountry.com/content.cfm?id=1091217296
+http://www.indianembassy.org/indusrel/india_us/nehru_congress_Oct_13_1949.htm
+http://www.indianembassy.org/indusrel/india_us/rao_congress_May_18_1994.htm
+http://www.indianembassy.org/new/NewDelhiPressFile/Kargil_July_1999/Dealing_Pakistan_July_26_1999.html
+http://www.indianembassy.org/policy/Disarmament/technology_armsrace.htm
+http://www.indianembassy.org/policy/Economy/budget-2.htm
+http://www.indianembassy.org/policy/WTO/wto_india/issue_india_98.htm
+http://www.indianexpress.com/columnists/full_column.php?content_id=58454
+http://www.indianexpress.com/columnists/suni/20011124.html
+http://www.indianexpress.com/flair/20010805/1e.html
+http://www.indianexpress.com/full_story.php?content_id=52177
+http://www.indianexpress.com/full_story.php?content_id=61517
+http://www.indianexpress.com/full_story.php?content_id=62927
+http://www.indianexpress.com/full_story.php?content_id=64128
+http://www.indianexpress.com/print.php?content_id=64116
+http://www.indianfoundry.com/excellence/
+http://www.indianfriendsearch.com/
+http://www.indianngos.com/corporate/hongkongconference.htm
+http://www.indianpediatrics.net/april2001/april-332-339.htm
+http://www.indianpediatrics.net/sept2001/sept-1056-1058.htm
+http://www.indianrailways.gov.in/railway/deptts/stores/min-spl-cos.htm
+http://www.indians.org/welker/crazyhor.htm
+http://www.indianstreetbridge.com/faq/
+http://www.indiantelevision.com/headlines/y2k2/mar/mar49.htm
+http://www.indiantelevision.com/headlines/y2k2/may/may39.htm
+http://www.indiantelevision.com/headlines/y2k5/feb/feb23.htm
+http://www.indiantelevision.com/interviews/rajnayak.htm
+http://www.indiantelevision.com/perspectives/y2k4/tv_films.htm
+http://www.indiantelevision.com/tvlinx/y2k4/dec/dec2.htm
+http://www.indiaonestop.com/home2.htm
+http://www.indiaoppi.com/guipage4.htm
+http://www.indiaparenting.com/articles/data/art09_006.shtml
+http://www.indiaparenting.com/articles/data/art09_014.shtml
+http://www.indiaparenting.com/faqs/speech_ent/delayed_speech.shtml
+http://www.indiaplaza.com/catalog/books+software/books_catalog.asp?catid=1659&subcatid=107&majorcat=books&subcat=books&place=US
+http://www.indiapolicy.org/lists/india_policy/2001/Jul/msg00007.html
+http://www.indiapolicy.org/lists/india_policy/2001/Jul/msg00010.html
+http://www.indiapolicy.org/lists/india_policy/2001/Jul/msg00016.html
+http://www.indiapost.org/IMTList1.html
+http://www.indiaproperties.com/research/articles/eco-friendly/eco-living.asp
+http://www.indiatraveltimes.com/weather/
+http://www.indie-rpgs.com/articles/27/
+http://www.indie-rpgs.com/reviews/28/
+http://www.indiebride.com/essays/macadam/
+http://www.indielondon.co.uk/film/criminal_reillyQ&A.html
+http://www.indiescene.net/archives/2004_07.html
+http://www.indieville.net/festivals/b-r2004/MARCH7WEEK.html
+http://www.indiewire.com/biz/alpha33.html
+http://www.indiewire.com/people/alpha13.html
+http://www.indigenouspeople.net/crazyhor.htm
+http://www.indigodev.com/Handbook.html
+http://www.indigogirls.com/lyrics/byalbum/indigo.html
+http://www.indigogirls.com/lyrics/byalbum/swamp.html
+http://www.indigorose.com/forums/showthread.php?t=9765
+http://www.indigovision.com/investorrelations.htm
+http://www.indium.com/bottomline/openworkshops.php
+http://www.indo-us.org/news.htm
+http://www.indonesia-ottawa.org/economy/INCOMETAX/pph08.htm
+http://www.indoor-air-quality.org/Certification-Courses/Course-Descriptions/cmrs-details.htm
+http://www.indranet.com/arts/lcds/facemask2.html
+http://www.indtravel.com/bang/places.html
+http://www.indusscitech.net/
+http://www.industriallabs.net/Customer%20Service%20Support/customer.htm
+http://www.industriallogic.com/papers/learning.html
+http://www.industrialpress.com/topics.asp?Topic=MANU
+http://www.industrialrelationscentre.com/infobank/articles/the_seven_habits_of_successful_mediators.htm
+http://www.industrialrelationscentre.com/newsletters/april2005/
+http://www.industrialsafetytalk.com/news/sve/sve101.html
+http://www.industry.gov.au/content/itrinternet/cmscontent.cfm?ObjectID=44EB0823-308E-4613-91A645017B0DDC5C
+http://www.industrypages.com/artman/publish/Industry_News_3502.stm
+http://www.industryweek.com/CurrentArticles/asp/articles.asp?ArticleID=855
+http://www.industryweek.com/CurrentArticles/asp/articles.asp?ArticleId=1348
+http://www.industryweek.com/CurrentArticles/asp/articles.asp?ArticleId=467
+http://www.industryweek.com/DailyPage/newsitem.asp?id=150
+http://www.industryweek.com/Events/Response/register.asp?Ref=EVARCH
+http://www.indybay.org/news/2004/08/1691169.php
+http://www.indyeastend.com/cgi-bin/indep/news.cgi?action=article&category=Jerry&id=6007
+http://www.indygolf.com/Articles/PM13.html
+http://www.indymedia.nl/nl/2001/11/797.shtml
+http://www.indymedia.org.uk/en/2003/07/274625.html
+http://www.indymedia.org.uk/en/2004/10/298702.html
+http://www.indymedia.org.uk/en/2004/10/300266.html
+http://www.indymedia.org.uk/en/2005/02/304722.html
+http://www.indymedia.org.uk/en/2005/03/307433.html
+http://www.indymedia.org.uk/en/2005/04/308640.html
+http://www.indymedia.org.uk/en/2005/04/309840.html
+http://www.indymedia.org.uk/en/2005/06/312762.html
+http://www.indymedia.org.uk/en/2005/06/314214.html
+http://www.indymedia.org.uk/en/regions/cambridge/2004/02/286118.html
+http://www.indymedia.org.uk/en/regions/cambridge/2005/06/314766.html
+http://www.indymedia.org.uk/en/regions/london/2005/04/308640.html
+http://www.indymedia.org.uk/en/regions/london/2005/06/314766.html
+http://www.indymedia.org.uk/en/regions/manchester/2005/02/304722.html
+http://www.indymedia.org.uk/en/regions/oxford/2004/08/295904.html
+http://www.indymedia.org.uk/en/regions/oxford/topics/indymedia/
+http://www.indymedia.org.uk/en/regions/oxford/topics/socialstruggles/
+http://www.indymedia.org.uk/en/regions/scotland/2005/06/312762.html
+http://www.indymedia.org/en/2004/10/111999.shtml
+http://www.indystar.com/articles/5/006738-6575-092.html
+http://www.indystar.com/articles/6/209263-3146-255.html
+http://www.indyweek.com/durham/2003-12-03/porch.html
+http://www.ined.fr/bdd/projrech/saisie/am_unite_ps.php?idunite=U08
+http://www.ineesite.org/standards/msee.asp
+http://www.inequality.org/lardneressay2.html
+http://www.inequality.uiowa.edu/?whatpage=news&whatID=13
+http://www.inesap.org/bulletin20/bul20art20.htm
+http://www.inesap.org/bulletin21/bul21art15.htm
+http://www.inesap.org/bulletin21/bul21art30.htm
+http://www.inetnews.org/news/article.asp?id=3112
+http://www.inetours.com/New_York/Pages/NYC_Hotels.html
+http://www.inetworld.net/bosworth/tracks.htm
+http://www.inexpressible.com/e232-238.html
+http://www.inf.uniroma3.it/calendar/gd97/gd97scipro.html
+http://www.infantry-sector.com/
+http://www.infashionkids.com/infanttoys.html
+http://www.infc.ulst.ac.uk/~dave/trees/tree4/
+http://www.infectioncontroltoday.com/articles/281topics.html
+http://www.infectiousdiseasenews.com/200403/aids.asp
+http://www.infed.org/archives/e-texts/barnett_club_and_church.htm
+http://www.infed.org/archives/e-texts/ippr_passing_time.htm
+http://www.infed.org/archives/e-texts/owen_new_lanark.htm
+http://www.infed.org/archives/e-texts/robertson_clubs.htm
+http://www.infed.org/archives/gov_uk/circular1486.htm
+http://www.infed.org/archives/nayc/ferris_girls_clubs_leader.htm
+http://www.infed.org/archives/settlements/esa_community_education.htm
+http://www.infed.org/biblio/b-selfdr.htm
+http://www.infed.org/biblio/globalization.htm
+http://www.infed.org/biblio/social_capital.htm
+http://www.infed.org/christianeducation/calling-doyle.htm
+http://www.infed.org/foundations/assess.htm
+http://www.infed.org/groupwork/b-grpwk.htm
+http://www.infed.org/lifelonglearning/b-life.htm
+http://www.infed.org/thinkers/argyris.htm
+http://www.infed.org/thinkers/et-bp.htm
+http://www.infed.org/thinkers/et-freir.htm
+http://www.infed.org/thinkers/et-lewin.htm
+http://www.infed.org/thinkers/leonard_barnett.htm
+http://www.infed.org/thinkers/putnam.htm
+http://www.infed.org/thinkers/stansfeld.htm
+http://www.infed.org/youthwork/b-ywprin.htm
+http://www.infid.be/statementofthestateministerfornationaldevelopmentplanning.htm
+http://www.infidels.org/library/historical/charles_bradlaugh/roberts-bradlaugh/night1/1roberts1.html
+http://www.infidels.org/library/historical/charles_bradlaugh/roberts-bradlaugh/night2/2roberts1.html
+http://www.infidels.org/library/modern/mark_vuletic/five.html
+http://www.infidels.org/news/atheism/logic.html
+http://www.infield.com/Deep_and_Ultra-Deepwater_Annual_Market_Report.htm
+http://www.infield.com/deepwater_ultra_deepwater_market_reports.htm
+http://www.infield.com/services.htm
+http://www.infiltration.org/transit-subway.html
+http://www.infineon.com/boerse/jahresbericht2001/english/1_1_chronik_1_e.htm
+http://www.infinite-energy.com/iemagazine/issue4/whyallthestatic.html
+http://www.infinite-energy.com/resources/faq.html
+http://www.infinitecat.com/
+http://www.infinitemonkeys.co.uk/gasgiant/
+http://www.infinitemonkeys.co.uk/gasgiant/000229.shtml
+http://www.infinityplus.co.uk/nonfiction/intaruch.htm
+http://www.infinityplus.co.uk/stories/fearofwidths.htm
+http://www.infinityplus.co.uk/stories/luxuryofsleep.htm
+http://www.infinitywalk.com/Contact.htm
+http://www.infive.com/NB.html
+http://www.infj.org/rules.html
+http://www.info-france-usa.org/atoz/sea_fish.asp
+http://www.info-france-usa.org/news/statmnts/2005/villepin_secularism022405.asp
+http://www.info.dfat.gov.au/info/historical/HistDocs.nsf/vVolume/3AC2DA12BC9AB4F0CA256B7F0009D6D9
+http://www.info.dfat.gov.au/info/historical/HistDocs.nsf/vVolume/BEC768A80103B61ECA256B7F0009D0EE
+http://www.info.gov.hk/eac/en/legco/230600c.htm
+http://www.info.gov.hk/info/population/eng/summary.htm
+http://www.info.gov.hk/info/structure-e.htm
+http://www.info.gov.hk/itc/eng/technology/foundation.shtml
+http://www.info.gov.za/speeches/1998/98c31_hanek9811575.htm
+http://www.info.gov.za/speeches/1999/9910071007a1001.htm
+http://www.info.gov.za/speeches/2000/0001141036a1006.htm
+http://www.info.gov.za/speeches/2000/000510223p1004.htm
+http://www.info.gov.za/speeches/2000/000725410p1001.htm
+http://www.info.gov.za/speeches/2001/010703945a1004.htm
+http://www.info.gov.za/speeches/2001/010827945a1007.htm
+http://www.info.gov.za/speeches/2002/02080809461002.htm
+http://www.info.gov.za/speeches/2003/03051609461005.htm
+http://www.info.gov.za/speeches/2003/03091809461006.htm
+http://www.info.gov.za/speeches/2003/03092514461002.htm
+http://www.info.gov.za/speeches/2003/03092611461001.htm
+http://www.info.gov.za/speeches/2003/03102309461003.htm
+http://www.info.gov.za/speeches/2004/04022710461002.htm
+http://www.info.gov.za/speeches/2004/04102809451001.htm
+http://www.info.gov.za/speeches/2005/05013115151005.htm
+http://www.info.gov.za/speeches/2005/05031608451007.htm
+http://www.info.gov.za/speeches/2005/05061514451001.htm
+http://www.info.tdri.or.th/pr_mep.htm
+http://www.infoadriatic.com/useful_links.shtml
+http://www.infoadvantage.com/doc/about_press_dotcash.htm
+http://www.infobaseventures.com/blog/
+http://www.infocastinc.com/NanoRoadmap/nnrp.htm
+http://www.infochangeindia.org/PopulationIbp.jsp
+http://www.infochangeindia.org/PopulationItop.jsp?section_idv=3
+http://www.infocomm.org/index.cfm?objectID=74A022E8-FAA2-40C5-81A2DAC388CBED04
+http://www.infocusmag.com/03january/mendes.htm
+http://www.infoforhealth.org/inforeports/mec/mecprint.html
+http://www.infoforhealth.org/pr/j48/chart4.shtml
+http://www.infoisrael.net/cgi-local/text.pl?source=4/b/ii/191220041
+http://www.infomanagementcenter.com/enewsletter/200412/
+http://www.infomat.net/infomat/rd741/rd1/database/RoyalPhotographic/index.asp
+http://www.infomotion.co.za/theatre/news0505.html
+http://www.infomotions.com/musings/systems-administration/
+http://www.infopackets.com/channels/en/windows/gazette/2005/20050520_why_does_windows_constantly_report_virtual_memory_low.htm
+http://www.infopak.gov.pk/SAARCCM/saarc_standing_committee_30th_session_spokesman_opening_statement.htm
+http://www.infopak.gov.pk/news/appnews/appnews2003/app_sep12_2003.htm
+http://www.infopak.gov.pk/news/appnews/appnews2004/app_may07_2004.htm
+http://www.infopak.gov.pk/public/govt/resp_humanright.htm
+http://www.infoplease.com/ce6/people/A0841801.html
+http://www.infoplease.com/ce6/people/A0850140.html
+http://www.infoplease.com/finance/tips/money/money_intern.html
+http://www.infoplease.com/ipa/A0004451.html
+http://www.infoplease.com/ipa/A0107374.html
+http://www.infoplease.com/ipa/A0107484.html
+http://www.infoplease.com/ipa/A0107751.html
+http://www.infoplease.com/ipa/A0148736.html
+http://www.infoplease.com/ipa/A0781456.html
+http://www.infoplease.com/ipa/A0900855.html
+http://www.infoplease.com/ipa/A0904269.html
+http://www.infoplease.com/spot/affirmative1.html
+http://www.infoplease.com/spot/bhmquotes1.html
+http://www.infoplease.com/spot/terror-qaeda.html
+http://www.infoplease.com/spot/wtc1.html
+http://www.infoplease.com/t/hist/inaugural/47.html
+http://www.inforain.org/gfr/4_2.htm
+http://www.inforain.org/gfr/assmnt/usersguide.htm
+http://www.informars.com/barryleeds/legal.asp
+http://www.informatics-review.com/thoughts/next.html
+http://www.informatics.bangor.ac.uk/~dewi/ci_grp/Conference_Abstracts.htm
+http://www.informatik.uni-trier.de/~ley/db/journals/corr/corr0209.html
+http://www.informatik.uni-trier.de/~ley/db/journals/corr/corr0410.html
+http://www.informatik.uni-trier.de/~ley/db/journals/lncs1700-1799.html
+http://www.information-britain.co.uk/showPlace.cfm?Place_ID=28953
+http://www.informationclearinghouse.info/article5365.htm
+http://www.informationclearinghouse.info/article7759.htm
+http://www.informationweek.com/showArticle.jhtml?articleID=16400193
+http://www.informationweek.com/showArticle.jhtml?articleID=19400079
+http://www.informationweek.com/story/IWK20010713S0009
+http://www.informationweek.com/story/showArticle.jhtml?articleID=14100041
+http://www.informationweek.com/story/showArticle.jhtml?articleID=164303537
+http://www.informationweek.com/story/showArticle.jhtml?articleID=17601949
+http://www.informationweek.webservicespipeline.com/57701384
+http://www.informedconsent.org/draft.html
+http://www.informedpublic.com/archive/2005_06_01_archive.html
+http://www.informit.com/
+http://www.informit.com/articles/article.asp?p=102173&seqNum=29
+http://www.informit.com/articles/article.asp?p=102614
+http://www.informit.com/articles/article.asp?p=170432
+http://www.informit.com/articles/article.asp?p=170517&seqNum=2
+http://www.informit.com/articles/article.asp?p=170934&seqNum=2
+http://www.informit.com/articles/article.asp?p=174329
+http://www.informit.com/articles/article.asp?p=174329&seqNum=2
+http://www.informit.com/articles/article.asp?p=18225&seqNum=2
+http://www.informit.com/articles/article.asp?p=24027
+http://www.informit.com/articles/article.asp?p=26022
+http://www.informit.com/articles/article.asp?p=29640&seqNum=2
+http://www.informit.com/articles/article.asp?p=30429
+http://www.informit.com/articles/article.asp?p=30869
+http://www.informit.com/articles/article.asp?p=31105&seqNum=12
+http://www.informit.com/articles/article.asp?p=360063&seqNum=2
+http://www.informit.com/articles/article.asp?p=360649&seqNum=7
+http://www.informit.com/articles/article.asp?p=383854
+http://www.informit.com/articles/article.asp?p=99706&seqNum=3
+http://www.informit.com/guides/content.asp?g=msoffice&seqNum=135
+http://www.informit.com/guides/content.asp?g=msoffice&seqNum=136
+http://www.informit.com/title/0201734095
+http://www.informs.org/Press/barnett02c.htm
+http://www.informs.org/Prizes/TeachingORPracticePrizeDetails.html
+http://www.informs.org/Prizes/whoisErlang.html
+http://www.infoshop.org/inews/article.php?story=20050625113048151&mode=print
+http://www.infosource.gc.ca/emp/emp01_e.asp
+http://www.infosource.gc.ca/fed/fed01_e.asp
+http://www.infosports.com/football/arch/2452.htm
+http://www.infosprts.com/football/arch/2452.htm
+http://www.infostuff.com/carstuff/cartalk1.htm
+http://www.infotechresearch.com/2004/12/intellectual-property-vs-fair-use.html
+http://www.infotoday.com/MMSchools/NovMMS/cyberbee11.html
+http://www.infotoday.com/MMSchools/mar03/cyber0303.shtml
+http://www.infotoday.com/MMSchools/may99/dcon0599.htm
+http://www.infotoday.com/cilmag/mar00/donnelly.htm
+http://www.infotoday.com/cilmag/may04/huwe.shtml
+http://www.infotoday.com/it/oct01/poynder.htm
+http://www.infotoday.com/newsbreaks/nb020422-3.htm
+http://www.infotoday.com/newsbreaks/nb020923-1.htm
+http://www.infotoday.com/searcher/jan01/lambert.htm
+http://www.infotoday.com/searcher/oct02/west.htm
+http://www.infoville.org.uk/business/
+http://www.infowars.com/articles/world/property_of_the_state.htm
+http://www.infowars.com/videos.html
+http://www.infoworld.com/Windows_XP_SP2_(Service_Pack_2)/product_47393.html?view=8&curNodeId=108&prId=UKTH01303022005-1
+http://www.infoworld.com/article/03/05/22/HNwirestandard_1.html
+http://www.infoworld.com/article/04/09/24/39storinside_1.html
+http://www.infoworld.com/article/04/11/19/HNoracle_1.html?DATABASES
+http://www.infoworld.com/article/04/11/19/HNoracle_1.html?s=feature
+http://www.infoworld.com/article/04/12/26/HNcanspamnoteffective_1.html
+http://www.infoworld.com/articles/hn/xml/02/10/04/021004hnliberty.html
+http://www.infozee.com/application-issues/financial-aid.htm
+http://www.infozee.com/application-issues/resume.htm
+http://www.infozee.com/usa/app-procedure-pg.htm
+http://www.infracon.org/EN/ENpropositum02-2003.html
+http://www.infusionpad.com/meditation.html
+http://www.ingenio.com/documents/help/prtoolkit.asp
+http://www.ingeniux.com/x345.xml
+http://www.ingentaconnect.com/content/arn/cg/2004/00000011/00000001/art00006
+http://www.ingentaconnect.com/content/arn/ct/2004/00000001/00000003/art00002
+http://www.ingentaconnect.com/content/bpl/ajsp/1998/00000001/00000001/art00004
+http://www.ingentaconnect.com/content/bpl/area/2002/00000034/00000002/art00066
+http://www.ingentaconnect.com/content/bpl/bjes/2003/00000051/00000003/art00004
+http://www.ingentaconnect.com/content/bpl/bjir/1997/00000035/00000002/art00047
+http://www.ingentaconnect.com/content/bpl/bjom/1998/00000009/00000002/art00080
+http://www.ingentaconnect.com/content/bpl/bjpi/2004/00000006/00000002/art00008
+http://www.ingentaconnect.com/content/bpl/bjsp/2000/00000027/00000001/art00153
+http://www.ingentaconnect.com/content/bpl/dpr/1997/00000015/00000004/art00044
+http://www.ingentaconnect.com/content/bpl/dpr/2003/00000021/00000001/art00006
+http://www.ingentaconnect.com/content/bpl/hist/2001/00000086/00000282/art00186
+http://www.ingentaconnect.com/content/bpl/irel/2002/00000041/00000004/art00268
+http://www.ingentaconnect.com/content/bpl/irj/1998/00000029/00000002/art00085
+http://www.ingentaconnect.com/content/bpl/jors/2001/00000041/00000003/art00224
+http://www.ingentaconnect.com/content/bpl/mila/1997/00000012/00000003/art00059
+http://www.ingentaconnect.com/content/bpl/misr/2004/00000006/00000001/art00017
+http://www.ingentaconnect.com/content/bpl/obes/2004/00000066/00000005/art00002
+http://www.ingentaconnect.com/content/bpl/padm/1999/00000077/00000003/art00164
+http://www.ingentaconnect.com/content/bpl/poqu/1999/00000070/000000s1/art00254
+http://www.ingentaconnect.com/content/bpl/poqu/2004/00000075/00000004/art00005
+http://www.ingentaconnect.com/content/bpl/prog/2004/00000056/00000003/art00004
+http://www.ingentaconnect.com/content/bpl/trps/1999/00000097/00000002/art00049
+http://www.ingentaconnect.com/content/brunner/gasc/2003/00000016/00000004/art00005
+http://www.ingentaconnect.com/content/brunner/uedi/2003/00000011/00000004/art00002
+http://www.ingentaconnect.com/content/bsc/add/2003/00000098/00000007/art00010
+http://www.ingentaconnect.com/content/bsc/aec/2003/00000028/00000005/art00003
+http://www.ingentaconnect.com/content/bsc/afje/2003/00000041/00000001/art00007
+http://www.ingentaconnect.com/content/bsc/anae/1998/00000053/00000003/art00282
+http://www.ingentaconnect.com/content/bsc/anae/2002/00000057/00000005/art00013
+http://www.ingentaconnect.com/content/bsc/anae/2002/00000057/00000005/art00014
+http://www.ingentaconnect.com/content/bsc/ara/2000/00000044/00000003/art00833
+http://www.ingentaconnect.com/content/bsc/ares/2003/00000034/00000010/art00003
+http://www.ingentaconnect.com/content/bsc/bij/2002/00000075/00000004/art00035
+http://www.ingentaconnect.com/content/bsc/bij/2004/00000084/00000002/art00011
+http://www.ingentaconnect.com/content/bsc/bjh/1999/00000105/00000003/art01379
+http://www.ingentaconnect.com/content/bsc/bjh/2001/00000115/00000003/art03155
+http://www.ingentaconnect.com/content/bsc/cbi/2003/00000017/00000001/art00037
+http://www.ingentaconnect.com/content/bsc/cchd/2004/00000030/00000002/art00010
+http://www.ingentaconnect.com/content/bsc/cdi/2003/00000005/00000002/art00020
+http://www.ingentaconnect.com/content/bsc/clh/1999/00000021/00000003/art00218
+http://www.ingentaconnect.com/content/bsc/cpro/2001/00000034/00000006/art00222
+http://www.ingentaconnect.com/content/bsc/vop/2003/00000006/00000003/art00001
+http://www.ingentaconnect.com/content/bto/bird/2000/00000047/00000001/471022
+http://www.ingentaconnect.com/content/bto/bird/2000/00000047/00000003/473352
+http://www.ingentaconnect.com/content/bva/vet/2004/00000154/00000023/art00008
+http://www.ingentaconnect.com/content/bva/vet/2004/00000154/00000025/art00001
+http://www.ingentaconnect.com/content/bva/vet/2004/00000155/00000001/art00006
+http://www.ingentaconnect.com/content/cabi/ber/1999/00000089/00000001/art00002
+http://www.ingentaconnect.com/content/carfax/cjem/2001/00000026/00000003/art00004
+http://www.ingentaconnect.com/content/carfax/cmit/2004/00000009/00000002/art00006
+http://www.ingentaconnect.com/content/fcp/ccp/2002/00000040/00000002/art00004
+http://www.ingentaconnect.com/content/fcp/ep/2003/00000012/00000001/art00012
+http://www.ingentaconnect.com/content/ffp/jfp/2001/00000027/00000001/art00005
+http://www.ingentaconnect.com/content/geol/jgs/1993/00000150/00000004/15040788
+http://www.ingentaconnect.com/content/hsp/jpa/2003/00000003/00000003/art00008
+http://www.ingentaconnect.com/content/hum/endo/2003/00000020/F0020001/art00007
+http://www.ingentaconnect.com/content/iabse/sei/2004/00000014/00000001/art00004
+http://www.ingentaconnect.com/content/imp/hpt/1992/00000013/00000001/258
+http://www.ingentaconnect.com/content/imp/jcs/1998/00000005/00000001/810
+http://www.ingentaconnect.com/content/isis/mitat/2000/00000009/00000005/art00005
+http://www.ingentaconnect.com/content/jbp/bab/2004/00000050/00000001/art00005
+http://www.ingentaconnect.com/content/jhsb/jhsb/2004/00000079/00000002/art00015
+http://www.ingentaconnect.com/content/jws/isaf/2004/00000012/00000001/art00002
+http://www.ingentaconnect.com/content/jws/smi/2002/00000018/00000004/art00939
+http://www.ingentaconnect.com/content/jws/uog/2003/00000022/00000002/art00017
+http://www.ingentaconnect.com/content/kli/cola/2003/00000040/00000004/02003039
+http://www.ingentaconnect.com/content/klu/argu/1998/00000012/00000002/00161753
+http://www.ingentaconnect.com/content/klu/aten/2001/00000090/00000004/00346976
+http://www.ingentaconnect.com/content/klu/bioc/2002/00000011/00000012/05099403
+http://www.ingentaconnect.com/content/klu/biph/2000/00000015/00000004/00264643
+http://www.ingentaconnect.com/content/klu/ccar/2003/00000032/00000001/00458679
+http://www.ingentaconnect.com/content/klu/csow/1997/00000025/00000003/00424571
+http://www.ingentaconnect.com/content/klu/dopc/2002/00000382/F0030001/00370600
+http://www.ingentaconnect.com/content/klu/ebfi/2004/00000070/00000002/05252691
+http://www.ingentaconnect.com/content/klu/educ/1996/00000033/00000003/00119724
+http://www.ingentaconnect.com/content/klu/emas/1999/00000059/00000003/00192023
+http://www.ingentaconnect.com/content/klu/flui/2002/00000037/00000006/00461182
+http://www.ingentaconnect.com/content/klu/jadd/2003/00000033/00000002/00461019
+http://www.ingentaconnect.com/content/klu/jeei/1998/00000019/00000004/00417475
+http://www.ingentaconnect.com/content/klu/lahu/1999/00000023/00000002/00413443
+http://www.ingentaconnect.com/content/klu/mell/2001/00000045/F0020005/00363936
+http://www.ingentaconnect.com/content/maney/pm/2000/00000043/00000001/art00002
+http://www.ingentaconnect.com/content/mcb/002/1997/00000024/00000006/art00003
+http://www.ingentaconnect.com/content/mhra/mlr/2005/00000100/00000001/art00028
+http://www.ingentaconnect.com/content/mitpress/jcn/2002/00000014/00000007/art00011
+http://www.ingentaconnect.com/content/mksg/aos/2003/00000081/00000005/art00013
+http://www.ingentaconnect.com/content/mksg/cod/2004/00000051/00000004/art00006
+http://www.ingentaconnect.com/content/oecd/04745574/2001/00002001/00000002/c18
+http://www.ingentaconnect.com/content/paho/paho557/1996/00000557/00000001/art00023
+http://www.ingentaconnect.com/content/pal/0960085x/2000/00000009/00000001/3000345
+http://www.ingentaconnect.com/content/pal/14724790/2004/00000002/00000002/art00002
+http://www.ingentaconnect.com/content/psych/plat/1997/00000002/00000001/art00005
+http://www.ingentaconnect.com/content/rodopi/ludus/2002/00000006/00000001/art00003
+http://www.ingentaconnect.com/content/routledg/rcjo/2001/00000012/00000003/art00005
+http://www.ingentaconnect.com/content/routledg/rijh/2001/00000012/00000008/art00007
+http://www.ingentaconnect.com/content/saf/fs/2004/00000050/00000002/art00009
+http://www.ingentaconnect.com/content/saf/njaf/2001/00000018/00000002/art00005
+http://www.ingentaconnect.com/content/sage/ecr/2004/00000002/00000002/art00001
+http://www.ingentaconnect.com/content/sage/j224/2001/00000029/00000002/art00004
+http://www.ingentaconnect.com/content/sage/j307/2001/00000035/00000002/art00008
+http://www.ingentaconnect.com/content/sage/j331/1999/00000024/00000001/art00001
+http://www.ingentaconnect.com/content/sage/j363/2001/00000025/00000003/art00007
+http://www.ingentaconnect.com/content/sage/spr/2003/00000020/00000003/art00003
+http://www.ingentaconnect.com/content/tandf/ccos/2004/00000016/00000001/art00003
+http://www.ingentaconnect.com/content/tandf/cijf/2003/00000054/00000006/art00010
+http://www.ingentaconnect.com/content/tandf/tcus/1998/00000030/00000001/art00004
+http://www.ingentaconnect.com/content/tandf/tphb/2000/00000080/00000012/art00006
+http://www.ingentaconnect.com/content/tandf/tsed/2002/00000024/00000001/art00003
+http://www.ingentaconnect.com/content/tandf/usyb/2001/00000050/00000002/art00004
+http://www.ingentaconnect.com/content/tpp/pap/2002/00000030/00000002/art00003
+http://www.ingentaconnect.com/content/urban/281/2001/00000045/00000006/art00103
+http://www.ingentaconnect.com/content/whp/ev/2004/00000013/00000004/art00002
+http://www.ingersoll.com/rs/20031001.htm
+http://www.initaly.co.uk/bologna/fiobolo.rental.apartments.php
+http://www.initaly.com/regions/lakes/lake4.htm
+http://www.initaly.com/regions/latium/ostia.htm
+http://www.initaly.com/regions/museums/sims.htm
+http://www.injusticebusters.com/05/Klassen_appeal.shtml
+http://www.inl.org/bicycle/glacier/day4.html
+http://www.inlander.com/parking/280981676292130.php
+http://www.inlander.com/parking/282302208034715.php
+http://www.inlandrevenue.gov.uk/board/
+http://www.inlandrevenue.gov.uk/cbr-smp/sum_smp_changes.htm
+http://www.inlandrevenue.gov.uk/employers/empbull10.htm
+http://www.inlandrevenue.gov.uk/employers/empbull12.htm
+http://www.inlandrevenue.gov.uk/employers/empbull13.htm
+http://www.inlandrevenue.gov.uk/employers/empbull15.htm
+http://www.inlandrevenue.gov.uk/employers/employee_sick.htm
+http://www.inlandrevenue.gov.uk/manuals/cismanual/html/cis6300/34_0018_CIS6358.htm
+http://www.inlandrevenue.gov.uk/manuals/cismanual/html/cis6300/34_0019_CIS6360.htm
+http://www.inlandrevenue.gov.uk/manuals/samanual/samadj/samadj04107.htm
+http://www.inlandrevenue.gov.uk/pdfs/pse1.htm
+http://www.inletny.com/event.asp?mon=11
+http://www.inliquid.com/art/paint/rosenthal/rosenthal_b.shtml
+http://www.inlovingmemoryonline.com/books2.html
+http://www.inmamaskitchen.com/FOOD_IS_ART/Aboutus.html
+http://www.inmotionmagazine.com/er/pedro34.html
+http://www.inmotionmagazine.com/selling.html
+http://www.inmotionmagazine.com/shiva.html
+http://www.inmusicwetrust.com/articles/31h02.html
+http://www.innerbonding.com/index.lasso?did=content&content.article=218
+http://www.innercitypress.org/2004hmda.html
+http://www.innercitypress.org/bofa.html
+http://www.innerear.on.ca/firstreflections/afternoontubes.html
+http://www.innerself.com/Magazine/Towards_2000_Plus/failed_negative_prophecy.htm
+http://www.innertemple.org.uk/history/lamb.html
+http://www.innerviews.org/inner/manring.html
+http://www.innerviews.org/inner/mclaughlin.html
+http://www.innerviews.org/inner/strawbs.html
+http://www.innfinder.com/innfinder-faq.html
+http://www.innovation-enterprise.com/6.1/6.1.78.php
+http://www.innovation.ca/innovation2/essay_caulfield.html
+http://www.innovationalberta.com/article.php?articleid=129
+http://www.innovationalberta.com/article.php?articleid=395
+http://www.innovationavenue.com/sales-publicrelations-glossary.htm
+http://www.innovationlaw.org/lawforum/pages/traditional_knowledge.htm
+http://www.innovations-report.com/html/profiles/profile-496.html
+http://www.innovations-report.com/html/reports/environment_sciences/report-46001.html
+http://www.innovations-report.com/html/reports/medicine_health/report-24580.html
+http://www.innovations-report.com/html/reports/medicine_health/report-39516.html
+http://www.innovations-report.de/html/berichte/geowissenschaften/bericht-12085.html
+http://www.innovations-report.de/html/berichte/umwelt_naturschutz/bericht-12261.html
+http://www.innovationtools.com/Articles/EnterpriseDetails.asp?a=175
+http://www.innovative-hrsolutions.com/BA.htm
+http://www.innovativebrew.com/hints.htm
+http://www.innvista.com/culture/religion/deities/chris25.htm
+http://www.innvista.com/health/nutrition/essensug/diction.htm
+http://www.inoohr.org/worldpopulationcontrolpromote.htm
+http://www.inpassing.org/node/view/2350
+http://www.inpassing.org/node?from=150
+http://www.inpassing.org/node?from=180
+http://www.inq7.net/globalnation/col_mom/2004/nov08.htm
+http://www.inq7.net/lif/2004/apr/13/lif_22-1.htm
+http://www.inq7.net/opi/2003/oct/27/opi_wesposo-1.htm
+http://www.inq7.net/opi/2004/may/16/opi_rsdavid-1.htm
+http://www.inq7.net/opi/2004/may/22/opi_wbello-1.htm
+http://www.inq7.net/wnw/2004/may/28/wnw_1-1.htm
+http://www.inquebeccity.com/
+http://www.inquiry.net/adult/trainer/urban_legends.htm
+http://www.inquiry.net/outdoor/autumn/taxidermy/taxidermy.htm
+http://www.inquiry.net/outdoor/campfire/helps/story_telling.htm
+http://www.inquiry.net/outdoor/campfire/helps/you_do.htm
+http://www.inquiry.net/outdoor/skills/b-p/staff.htm
+http://www.inquiry.net/patrol/gilwell/quartermaster.htm
+http://www.inquiry.net/traditional/handbook/
+http://www.inquiry.net/uniforms/traditional/shirt01.htm
+http://www.inr.unp.ac.za/vetiver/news7/News7_Applications.htm
+http://www.inria.fr/actualites/colloques/manifestations2004.en.html
+http://www.inria.fr/rapportsactivite/RA2004/orpailleur2004/uid25.html
+http://www.ins.state.ny.us/rg050222.htm
+http://www.insanelygreatsites.com/
+http://www.insanescouter.com/t276/newsletter/0802.htm
+http://www.insc.anl.gov/dbfiles/plant_info/oper_hist/Kola.html
+http://www.insearchofpeace.org/4v36issue.htm
+http://www.insearchofpeace.org/4v41issue.htm
+http://www.insearchofpeace.org/4v48issue.htm
+http://www.insearchofpeace.org/6v23issue.htm
+http://www.insectscience.org/3.11/
+http://www.insectscience.org/4.10/
+http://www.insecure.org/sploits/NT.syscalls.vulnerability.html
+http://www.insidebayarea.com/trivalleyherald/ci_2555407
+http://www.insidecx.com/interviews/archive/nodoubt.html
+http://www.insidedefense.com/public/awardpent20-12-2.asp
+http://www.insidedenver.com/drmn/broncos/article/0,1299,DRMN_17_3493308,00.html
+http://www.insidefilm.com/dealingrewrite.html
+http://www.insideglass.com/poljot/president_Eng.html
+http://www.insidehighered.com/jobs/search/?event=ViewJobDetails&job_posting_id=2468
+http://www.insidehighered.com/news/2005/01/20/penn
+http://www.insidehighered.com/news/2005/05/13/lawrence
+http://www.insidehighered.com/news/2005/06/15/exit
+http://www.insidehighered.com/news/2005/06/20/nyu
+http://www.insidehighered.com/views/2005/03/08/mclemee11
+http://www.insidehighered.com/views/2005/05/09/halberstam
+http://www.insidehighered.com/views/2005/06/22/wilson
+http://www.insidehoops.com/about.shtml
+http://www.insidehoops.com/nash-conference-071404.shtml
+http://www.insideindonesia.org/edit55/beeson.htm
+http://www.insideindonesia.org/edit62/hancock1.htm
+http://www.insideindonesia.org/edit66/yatun.htm
+http://www.insideindonesia.org/edit69/michelef.htm
+http://www.insidejoke.tv/200406/campaign06.asp
+http://www.insideout.com/easyedit/admin/pageeditor.html?sku=directions
+http://www.insider.co.uk/
+http://www.insideronline.org/feature.cfm?id=141
+http://www.insiders.com/bermuda/main-watersports2.htm
+http://www.insiderzim.com/jul03guest.html
+http://www.insideschools.org/fs/school_profile.php?id=737
+http://www.insidetheweb.com/
+http://www.insidetri.com/race/iro/articles/2481.0.html
+http://www.insidetri.com/train/cts/articles/2464.0.html
+http://www.insightful.com/news_events/release.asp?RID=124
+http://www.insightful.com/support/whitepaper_download.asp
+http://www.insightful.com/support/whitepapers.asp
+http://www.insightinvestment.com/Adviser%5Cnews%5C2004%5Cpr_property_fund_oversubscribed.asp
+http://www.insights.org.uk/volumelist.aspx?volumeid=15
+http://www.insightsystem.com/enfj.htm
+http://www.insigne.org/TD-Forces-I.htm
+http://www.insignia.com/content/investor/releases/release_050524.shtml
+http://www.insitefitness.com.au/lessons/General%20Health%20&%20Fitness/Fitness%20Components.html
+http://www.insolitology.com/topten/koostrenite/ri-974i.htm
+http://www.insolvency.gov.uk/guidanceleaflets/cdda.htm
+http://www.insolvency.gov.uk/guidanceleaflets/complain.htm
+http://www.insolvencyhelpline.co.uk/company-info/bullying-policy.htm
+http://www.insomniacure.com/
+http://www.inspection.gc.ca/english/anima/meavia/mmopmmhv/chap4/annexme.shtml
+http://www.inspirationfarm.com/GG/articles/article8.html
+http://www.inspirationpeak.com/shortstories/ronaldmcdonald.html
+http://www.inspiritmusic.com/links/?page=1
+http://www.installshield.com/news/newsletter/0407-articles/deploy.asp
+http://www.installshield.com/products/adminstudio/
+http://www.instantheadacherelief.com/
+http://www.instantmlmsalesletters.com/
+http://www.instantsellhome.com/
+http://www.instantsellhome.com/house_for_sale_by_owner_fsbo.htm
+http://www.instantspeakingsuccess.com/profit.htm
+http://www.instat.com/newmk.asp?ID=726
+http://www.instat.com/press.asp?ID=725&sku=IN0301141MT
+http://www.instawares.com/Tea.10-1579-2.0.1-3.2.htm
+http://www.instepnews.com/cordiallyyours.html
+http://www.instituteofideas.com/publications/
+http://www.institutodopvc.org/english/atualidades5.htm
+http://www.insulators.com/books/oi/
+http://www.insulators.com/computer/1996_01.htm
+http://www.insultmonger.com/swearing/dutch.htm
+http://www.insurance.ca.gov/CSD/Brochure/Residential/ResidInsurance.htm
+http://www.insurance.co.uk/ProductsClassic/travel/info/infojargonbuster.asp
+http://www.insurance.com.hk/tvlsafe/ts3b/bc_declare.htm
+http://www.insurance.com/Article.aspx/artid/157
+http://www.insurance.com/Article.aspx/artid/256
+http://www.insurance.wa.gov/factsheets/factsheet_detail.asp?FctShtRcdNum=26
+http://www.insurance.wa.gov/factsheets/factsheet_detailprint.asp?FctShtRcdNum=26
+http://www.insurancebroadcasting.com/122904retire.htm
+http://www.insurancebrokers.hsbc.com/hsbc/professional_indemnity/frequently-asked-questions
+http://www.insurancejournal.com/magazines/west/2004/04/19/ratings
+http://www.insurancejournal.com/news/national/2005/06/14/55964.htm
+http://www.insurancepoliciesonline.com/resourcecenter/safety/back%20safety.htm
+http://www.insurancetech.com/resources/fss/showArticle.jhtml?articleID=14706417
+http://www.insurancetech.com/story/IST20030403S0010
+http://www.insurancetech.com/story/coverStory/IST20010904S0009
+http://www.insurancetech.com/story/workforce/IST20030403S0010
+http://www.insurgentdesire.org.uk/luddites.htm
+http://www.int.pan.wroc.pl/?lid=7&lang=en
+http://www.int505.org/new3.htm
+http://www.intams.org/library/practical_details.php
+http://www.integramed.com/inmdweb/content/cons/shared.jsp
+http://www.integratedanimal.com/Shopping.asp
+http://www.integritychildren.com/about.html
+http://www.intel-dump.com/archives/archive_2003_12_21.shtml
+http://www.intel-dump.com/archives/archive_2004_12_00.shtml
+http://www.intel-dump.com/archives/archive_2005_05_08-2005_05_14.shtml
+http://www.intel-dump.com/archives/archive_2005_05_29-2005_06_04.shtml
+http://www.intel.com/education/design/resources/what_engineers_do.htm
+http://www.intel.com/education/handhelds/lessonplans/eat.htm
+http://www.intel.com/intel/finance/gcr03/12-ethics_compliance.htm
+http://www.intel.com/netcomms/technologies/wimax/
+http://www.intel.com/pressroom/archive/releases/20020227corp.htm
+http://www.intel.com/pressroom/archive/releases/CN102797.HTM
+http://www.intel.com/pressroom/archive/speeches/otellini20040907.htm
+http://www.intel.com/standards/execqa/qa0904.htm
+http://www.intelihealth.com/IH/ihtIH/WSAZR000/14220/28923/224700.html?d=dmtContent
+http://www.intelihealth.com/IH/ihtIH/WSHPO000/25792/10969.html
+http://www.intelihealth.com/IH/ihtIH/WSHPO000/25792/9407.html
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/14220/28923/224700.html?d=dmtContent
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/23722/20988/232308.html?d=dmtContent
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/24479/24336/187048.html?d=dmtHealthAZ
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/29816/31053.html
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/35263/35269/211317.html?d=dmtHealthAZ
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/7165/25988/194299.html?d=dmtContent
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/8315/23999/366614.html?d=dmtContent
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/9339/10131.html
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/9339/10969.html
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/9339/25866.html
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/9339/31035.html
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/9339/31115.html
+http://www.intelihealth.com/IH/ihtIH/WSIHW000/9339/9407.html
+http://www.intelihealth.com/IH/ihtPrint/WSIHW000/9339/9407.html?hide=t&k=basePrint
+http://www.intellectbooks.com/europa/number8/eu.htm
+http://www.intellectualconservative.com/article2543.html
+http://www.intellectualconservative.com/article2787.html
+http://www.intellibiz.com/realty/credit.html
+http://www.intellichoice.com/carBuying101/Maintenance
+http://www.intellichoice.com/carBuying101/UnloadingOldCar
+http://www.intellichoice.com/reports/vehicleReport/vehicle_nmb/15758/section/all/type/new
+http://www.intelligence.org.il/eng/corruption.htm
+http://www.intelligencer-record.com/
+http://www.intelligentagent.com/archive/march_road.html
+http://www.intelligentcrm.com/showArticle.jhtml?articleID=53700686
+http://www.intelligentedu.com/cat4.html
+http://www.intelligententerprise.com/000626/feat2.jhtml
+http://www.intelligententerprise.com/031030/617feat3_1.shtml
+http://www.intelligententerprise.com/showArticle.jhtml?articleID=22102121
+http://www.intellirecovery.com/data/recovery/
+http://www.intellivisionlives.com/retrotopia/direct2tv.shtml
+http://www.intelproplaw.com/Copyright/Forum/msg/498.shtml
+http://www.intelproplaw.com/Forum/Forum.cgi?board=newspostings;action=display;num=1100267232
+http://www.intense-workout.com/bench_press.html
+http://www.inter.uadm.uu.se/FAQ.html
+http://www.interactivelunacy.com/74annoy.htm
+http://www.interactives.co.uk/hearts_racehrs.htm
+http://www.interbridge.com/weblog/
+http://www.intercast.it/home_mel/danretme_el.htm
+http://www.interchurchfamilies.org/journal/2002jan03.shtm
+http://www.intercomm.it/calabria/storia_giscard.htm
+http://www.interconnections.de/agentur/html/start_uk.shtml
+http://www.intercotwest.com/boards/ultimatebb.php?ubb=get_topic;f=13;t=000822
+http://www.interculturalstudies.org/IIS/film-preservation.html
+http://www.interdisciplines.org/artcognition/papers/6
+http://www.interdisciplines.org/coevolution/papers/11/printable/discussions
+http://www.interdisciplines.org/interdisciplinarity/papers/3
+http://www.interdisciplines.org/interdisciplinarity/papers/7
+http://www.interdisciplines.org/interdisciplinarity/papers/7/10
+http://www.interdisciplines.org/interdisciplinarity/papers/7/7
+http://www.interdys.org/forum/post.asp?method=ReplyQuote&REPLY_ID=609&TOPIC_ID=247&FORUM_ID=6
+http://www.interdys.org/forum/post.asp?method=ReplyQuote&REPLY_ID=622&TOPIC_ID=247&FORUM_ID=6
+http://www.interesting-people.org/archives/interesting-people/199912/msg00076.html
+http://www.interestonlyloans.com/
+http://www.interfaithfamily.com/phorums/read.php?f=143&i=14&t=143
+http://www.interfaithfamily.com/phorums/read.php?f=143&i=15&t=143
+http://www.interfaithfamily.com/phorums/read.php?f=157&i=68&t=157
+http://www.interfax.kz/eng/?id=exclusive
+http://www.interferenza.com/bcs/villagesights.htm
+http://www.interfire.org/features/anti-arson.asp
+http://www.interfire.org/features/legalview.asp?date=08122002
+http://www.interfire.org/res_file/nfpaj_ar.asp
+http://www.intergate.com/~jcordaro/Finney%D5s_Let_to_Parents_1.html
+http://www.intergate.com/~spentron/unreal/
+http://www.interim.co.kr/limerick/univ/ire_economic.html
+http://www.interiordesign.edu/
+http://www.interiordesign.net/id_article/CA370931/id?stt=001
+http://www.interiordesign.net/id_article/CA482348/id
+http://www.interjournal.org/manuscript_abstract.php?24206
+http://www.interlog.com/~funnyboy/cinrev.htm
+http://www.interlog.com/~temc/
+http://www.intermargins.org/about_intermargins.html
+http://www.internalcontrolsdesign.co.uk/reportdesign/
+http://www.international-relations.com/
+http://www.international.ucla.edu/africa/article.asp?parentid=9415
+http://www.international.ucla.edu/article.asp?parentid=20198
+http://www.international.ucla.edu/article.asp?parentid=3915
+http://www.international.ucla.edu/asia/article.asp?parentid=20198
+http://www.international.ucla.edu/cseas/article.asp?parentid=6780
+http://www.international.ucla.edu/cseas/print.asp?parentid=6780
+http://www.international.utas.edu.au/static/studyAbroad/FAQS.php
+http://www.internationalairportguide.com/atlanta_atl.html
+http://www.internationalassociationofcoaches.org/15prof.html
+http://www.internationalfengshui.com/fs_yearrooster.htm
+http://www.internationalglassreview.com/default.asp?Page=1&SID=465175&ISS=12488
+http://www.internationalrelations.ca/intern.html
+http://www.internationalreports.net/africa/tunisia/2004/interview.html
+http://www.internationalstudent.com/discussions/archive.php/o_t__t_1452__advice-about-visas.html
+http://www.internationaltaxreview.com/?Page=10&PUBID=35&ISS=14052&SID=494397&TYPE=20
+http://www.internationaltouch.com.au/news_print.html?oid=1252003
+http://www.internationalviewpoint.org/article.php3?id_article=815
+http://www.internationalwindsurfing.com/default.asp?menu=46&parent=15&grandparent=3
+http://www.internest.com/concertamericanhomes/concertamericanhomes14305.asp
+http://www.internest.com/concertamericanhomes/concertamericanhomes15453.asp
+http://www.internest.com/norwood/norwood8946.asp
+http://www.internest.com/norwood/norwood8947.asp
+http://www.internest.com/oakcityhomes/oakcityhomes18102.asp
+http://www.internest.com/pultehomeshouston/pultehomeshouston12744.asp
+http://www.internest.com/vistahomes/vistahomes12258.asp
+http://www.internest.com/xyz/newsletter/newsdetail.asp
+http://www.internest.com/xyz/newsletter/pricing.asp
+http://www.internet-effects.com/index/policies.htm
+http://www.internet-health-directory.com/Alternative_Holistic_and_Integrated_Medicine_Alternative_Cancer_Treatment.html
+http://www.internet-health-directory.com/Conditions_and_Diseases_Infectious_Diseases_Zoonoses.html
+http://www.internet-health-directory.com/Support_Groups_Conditions_and_Diseases_Facial_Differences.html
+http://www.internet-home-business.org/search3.htm
+http://www.internet-librarian.com/Monday.shtml
+http://www.internet-librarian.com/tuesday.shtml
+http://www.internet-soft.com/affiliat.htm
+http://www.internet4classrooms.com/career.htm
+http://www.internet4classrooms.com/month2month.htm
+http://www.internetautoguide.com/
+http://www.internetautoguide.com/reviews/45-int/sedans/lincoln/town-car/1999/
+http://www.internetbasedmoms.com/business-success-stories/
+http://www.internetcamcordersdirect.co.uk/
+http://www.internetcamcordersdirect.co.uk/?campaign=internetcamerasdirect_468x60_c01
+http://www.internetfitness.com/articles/fitness_evaluate.htm
+http://www.internetfitness.com/articles/fitness_treadmill.htm
+http://www.internetghana.com/ceo.htm
+http://www.internetmarketingforsmallbusiness.com/
+http://www.internetmonk.com/archives/2005/01/019830.html
+http://www.internetnews.com/dev-news/article.php/3400941
+http://www.internetretailer.com/article.asp?id=9881
+http://www.internetsportstravel.com/Puma_International_soccer_camp.htm
+http://www.internettexasholdem.com/phpbb2/poker_strategy_forum/william-hill-poker-reviews-598_30.htm
+http://www.internettexasholdem.com/phpbb2/sun-feb-06-2005-848-pm-vp104284.html
+http://www.internettg.org/newsletter/june98/web_design.html
+http://www.internetvalley.com/archives/apr99/magrank1.html
+http://www.internetwatch.org.uk/government/page.101.222.htm
+http://www.internetwk.com/columns00/rob060500.htm
+http://www.internetwork.ca/register/tips/
+http://www.internetworldstats.com/surfing.htm
+http://www.internjobs.com/jobSeekers/resources/bliss/april2003.html
+http://www.internotes.com/index.cfm?fuseaction=dealer.main
+http://www.internshipberlin.com/warumwowie.asp
+http://www.interoute.com/products_share_labels.html
+http://www.interpol.com/Public/WorkOfArt/
+http://www.interpol.com/Public/WorkOfArt/Default.asp
+http://www.interpol.int/Public/Children/SexualAbuse/NationalLaws/csaRussia.asp
+http://www.interpol.int/Public/Region/Europe/pjsystems/Germany.asp
+http://www.interpon.com/about/environment.asp
+http://www.interpunk.com/item.cfm?Item=108189&
+http://www.interracialvoice.com/landrith3.html
+http://www.interreg.ie/ict.html
+http://www.intertanko.com/
+http://www.intertext.com/magazine/v13n2/eveningtide.html
+http://www.intertext.com/magazine/v4n3/wineandcheese.html
+http://www.intertwingly.net/blog/1502.html
+http://www.interuniv.isig.it/FAQs.html
+http://www.intervarsity.org/cbs/info.php?id=3067
+http://www.intervarsity.org/news/news.php?item_id=816
+http://www.intervarsity.org/slj/article/2430
+http://www.intervarsity.org/slj/su00/su00_cs_addiction_or_balance.html
+http://www.interventionmag.com/cms/modules.php?file=article&name=News&op=modload&sid=89
+http://www.interviews-with-poets.com/john-ashbery/ashbery-note.html
+http://www.interweave.com/spin/projects/rare_wools.asp
+http://www.inthe00s.com/index.php/topic,117.0/prev_next,prev.html
+http://www.inthe00s.com/index.php/topic,5117.0.html
+http://www.inthe80s.com/adsmusic/c.shtml
+http://www.inthe80s.com/adsmusic/l.shtml
+http://www.inthe80s.com/feelold.shtml
+http://www.inthe80s.com/latest/1100152800.shtml
+http://www.inthe80s.com/perfectvideos/a.shtml
+http://www.intheagora.com/archives/2005/02/okay_so_we_prob.html
+http://www.inthebite.com/special_events/index.shtml
+http://www.intheknowzone.com/whattosay/reasons.htm
+http://www.inthemix.com.au/forum/showthread.php?t=118202
+http://www.inthenationalinterest.com/Articles/October2004/October2004Kohlhaas.html
+http://www.inthenationalinterest.com/Articles/October2004/October2004KohlhaasPFV.html
+http://www.inthenationalinterest.com/Articles/October2004/October2004Realist.html
+http://www.inthenationalinterest.com/Articles/Vol3Issue15/Vol3Issue15Boyko.html
+http://www.inthesetimes.com/comments.php?id=514_0_4_0_C
+http://www.inthesetimes.com/comments.php?id=672_0_1_0_C
+http://www.inthesetimes.com/issue/25/13/moberg2513.html
+http://www.inthesetimes.com/projectcensored/stclair2323new.html
+http://www.inthesetimes.com/site/main/article/1351/
+http://www.inthesetimes.com/site/main/article/2136/
+http://www.inthesetimes.com/site/main/article/521/
+http://www.inthesetimes.com/site/main/article/578/
+http://www.inthesetimes.com/site/main/article/979/
+http://www.intime.uni.edu/model/democracy/thin.html
+http://www.intindian.com/issues/012.05/business.htm
+http://www.intix.org/news.php?ArticleID=839
+http://www.intix.org/news.php?ArticleID=867
+http://www.intjrehabilres.com/pt/re/intjrr/fulltext.00004356-200212000-00001.htm
+http://www.intl.boun.edu.tr/yos.html
+http://www.intl.elsevierhealth.com/catalogue/title.cfm?ISBN=0750640766
+http://www.intouch.org/myintouch/exploring/studies/FSSG_92339.html
+http://www.intouchmission.org/reports/archives/cat_presidents_page.html
+http://www.intoxica.co.uk/jbrown.htm
+http://www.intracen.org/textilesandclothing/projects_technical_assistance.htm
+http://www.intrafish.com/intrafish-analysis/hss_1999_47_eng/print.php3
+http://www.intrafish.com/laws-and-regulations/report_bc/v4c_iii.htm
+http://www.intranetjournal.com/articles/200412/pij_12_17_04a.html
+http://www.intranets.com/ProductInfo/Intranet_Customers/TEG_Federal_Credit_Union.asp
+http://www.intraval.nl/nl/a/a01_chapter1.html
+http://www.intraval.nl/nl/a/a01_chapter7.html
+http://www.intrepidsoftware.com/sgadd/
+http://www.intrepidtravel.com/challenges_trek.php
+http://www.intrigue.co.uk/personal/lifewithjj7.shtml
+http://www.intrinxec.com/fcbpw.htm
+http://www.intstudy.com/india/entryuk.htm
+http://www.intstudy.com/study_abroad/livfiles/nvisas02.htm
+http://www.intug.net/views/europe/universal_access.html
+http://www.intuitive.com/blog/archives/000811.html
+http://www.intuitive.com/blog/general_motors_miffed_at_la_times_review_pulls_all_advertising.html
+http://www.invacare.com/
+http://www.invasivespecies.gov/council/profiles.shtml
+http://www.inventionconvention.com/inventorsvoice/report/section21.html
+http://www.inventorfraud.com/ndcode.htm
+http://www.inventtomorrow.com/Econ_Dev/State%20Dev.html
+http://www.inventtomorrow.com/archives/Minutes_March%2015_2004.html
+http://www.invest-in-germany.de/en/news/newsletter/index.php?topcat=11129721221908939322
+http://www.investing.rutgers.edu/unit03.html
+http://www.investis.com/dixons/annual-report-2002/3-6.html
+http://www.investissementresponsable.com/textes/what.html
+http://www.investmentrarities.com/bestofjm01-17-05.htm
+http://www.investmentrarities.com/weeklycommentary.html
+http://www.investmentu.com/IUEL/2004/20040811.html
+http://www.investmentwatch.org/theissue.html
+http://www.investopedia.com/articles/04/020404.asp
+http://www.investopedia.com/articles/basics/03/080103.asp
+http://www.investopedia.com/articles/optioninvestor/02/030102.asp
+http://www.investopedia.com/categories/taxes.asp
+http://www.investopedia.com/terms/c/carryingcharge.asp
+http://www.investopedia.com/university/economics/economics4.asp
+http://www.investopedia.com/university/fiveminute/fiveminute9.asp
+http://www.investopedia.com/university/mergers/mergers1.asp
+http://www.investopedia.com/university/retirementplans/qualifiedplan/
+http://www.investopedia.com/university/tm/TradingStrategies/FindingTheBestFishInTheStockOcean.asp
+http://www.investorguide.com/cgi-bin/stock.cgi?stock=ETM
+http://www.investorguide.com/igustockchoose.html
+http://www.investors.com/breakingnews.asp?journalid=23398630&brk=1
+http://www.investors.com/breakingnews.asp?journalid=27991515&brk=1
+http://www.investors.com/editorial/tech01.asp?v=1/27
+http://www.investorsinpeople.co.uk/IIP/Internet/ResearchandDevelopment/Research/CaseStudies/Ashwell+Pupil+Referral+Unit.htm
+http://www.investorsobserver.com/DoN_portfolio_info.asp
+http://www.invinciblemilitary.org/
+http://www.invinciblemusic.com/ricflauding.htm
+http://www.invisibleadjunct.com/archives/000004.html
+http://www.invisibleadjunct.com/archives/000130.html
+http://www.invisibleadjunct.com/archives/000416.html
+http://www.invisibleadjunct.com/archives/000497.html
+http://www.invisiblejames.com/2005/01/29/
+http://www.invisiondigital.com/interview-mk.html
+http://www.invitrotech.com/employment.cfm
+http://www.invoicedealers.com/cars/Features.asp?model=1944&modelname=Ford+F350+Super+Duty
+http://www.invoicedealers.com/cars/Features.asp?model=2007&trim=12320
+http://www.inwardjourney.com/2004PresidentialElection.htm
+http://www.inwent.org/E+Z/1997-2002/de502-7.htm
+http://www.inwriting.org/weblog/archives/000164.html
+http://www.inxservices.com/SOM/noframes/som/student_poetry.html
+http://www.io-software.com/news/pr_november_301104_e.jsp
+http://www.io.com/~bmokeefe/dragon/
+http://www.io.com/~hcexres/tcm1603/acchtml/book_design.html
+http://www.io.com/~hcexres/tcm1603/acchtml/reportsq.html
+http://www.io.com/~kinnaman/aupessay.html
+http://www.io.com/~snewton/zen/sanskrit.html
+http://www.io.com/~tyrbiter/eb.1.html
+http://www.io.com/~woodward/d7/gccookie.html
+http://www.ioba.org/newsletter/committee0400.html
+http://www.ioe.ac.uk/thisweek/TW12062000.htm
+http://www.ioffer.com/
+http://www.ioffer.com/c/Running-Springs-92382/Coins-Money-130000
+http://www.ioffer.com/shops/northspoon
+http://www.iohio.org/en/recent.htm
+http://www.ioko365.com/DAIS/CRM/CRM+Perspectives/
+http://www.iol.co.za/html/frame_sport.php?click_id=79&art_id=ct20010310185508887P200311
+http://www.iol.co.za/index.php?click_id=19&art_id=qw1107706321101B216
+http://www.iol.co.za/index.php?set_id=1&click_id=&art_id=qw1107517320504B263
+http://www.iol.co.za/index.php?set_id=1&click_id=24&art_id=qw1107092340335B211
+http://www.iol.co.za/index.php?set_id=1&click_id=29&art_id=qw1107092340335B211
+http://www.iol.co.za/index.php?set_id=1&click_id=31&art_id=qw1100213642791B252
+http://www.iol.co.za/index.php?set_id=3&click_id=270
+http://www.iol.co.za/index.php?set_id=6&click_id=2829&art_id=qw1082822940617S163
+http://www.iol.co.za/index.php?set_id=6&click_id=2829&art_id=qw1105195681432S163
+http://www.iol.co.za/index.php?set_id=6&click_id=2829&art_id=qw110520396132S163
+http://www.iol.co.za/index.php?set_id=6&click_id=2829&art_id=qw1105259583336B216
+http://www.iol.co.za/index.php?set_id=6&click_id=2830&art_id=qw1078129270530S163
+http://www.iol.co.za/index.php?set_id=6&click_id=2830&art_id=qw110550654291F452
+http://www.iol.co.za/index.php?set_id=6&click_id=2910
+http://www.iol.co.za/index.php?set_id=6&click_id=38&art_id=qw1106284514471B216
+http://www.iol.co.za/index.php?set_id=6&click_id=582&art_id=qw1089471781418B262
+http://www.iol.ie/~duacon/wompr3.htm
+http://www.iol.ie/~duacon/wompr8.htm
+http://www.iol.ie/~locka/mozilla/faq.htm
+http://www.iolfree.ie/~kerryhouse/
+http://www.iom-rqa.org/news_full.asp?id=15
+http://www.iom.edu/view.asp?id=5061
+http://www.iona.com/blogs/vinoski/
+http://www.iop.kcl.ac.uk/iopweb/departments/research/default.aspx?locator=375
+http://www.iop.org/EJ/abstract/0954-3899/17/2/001
+http://www.iop.org/EJ/abstract/0954-3899/18/9/014
+http://www.iop.org/EJ/abstract/1126-6708/1999/11/031
+http://www.iop.org/EJ/abstract/1126-6708/2003/07/069
+http://www.ioplex.com/~miallen/libmba/
+http://www.iopp.org/pages/index.cfm?pageid=312
+http://www.iorg.com/papers/amdahl/adapt.html
+http://www.iosn.net/events/asiasource-2005/faq
+http://www.iospress.nl/html/01672533_ita.html
+http://www.iospress.nl/html/15741702_ita.html
+http://www.iot.ac.jp/english/institute.html
+http://www.iovs.org/cgi/content/full/40/12/2803
+http://www.iowa3rdcavalry.com/jonasroe.html
+http://www.iowaaflcio.org/vol_3-02_sept.htm
+http://www.iowadnr.com/parks/state_park_list/union_grove.html
+http://www.iowadnr.com/water/tmdlwqa/pres_pub.html
+http://www.iowaflags.org/faq.html
+http://www.iowalum.com/magazine/jun04/moving_beyond.html
+http://www.iowapolicyproject.org/
+http://www.iowapork.org/rscinfo/forecast_2005i.html
+http://www.iowaruralwater.org/news.html
+http://www.iowastatedaily.com/vnews/display.v/ART/2004/08/19/41450d9b337f4?in_archive=1
+http://www.iowastatedaily.com/vnews/display.v/ART/2005/01/31/41fdbd3db08c6?in_archive=1
+http://www.iowaworkforce.org/region3/technology.htm
+http://www.iowest.com/shows/special
+http://www.ipa.ie/?id=54
+http://www.ipa.org.au/files/news_722.html
+http://www.ipaqchoice.com/ESDCategory.aspx?cat=1001
+http://www.ipaqchoice.com/ESDProduct.aspx?cat=33
+http://www.iparliament.com.au/hansard.asp?id=13
+http://www.ipartnersinc.net/newsletter/
+http://www.ipaustralia.gov.au/resources/news_new.shtml
+http://www.ipaustralia.gov.au/smart_start/c4p1.shtml
+http://www.ipcs.org/Nuclear_articles2.jsp?action=showView&kValue=1615&issue=1015&status=article&mod=a
+http://www.ipcs.org/nmt_criminal.jsp
+http://www.ipcs.org/whatsNewArticle1.jsp?action=showView&kValue=1633&status=article&mod=b
+http://www.ipenz.org.nz/ipenz/media_comm/2005/convention_Turkington.cfm
+http://www.ipenz.org.nz/ipenz/media_comm/2005/convention_turkington.cfm
+http://www.ipf.co.uk/bestvalue/CRS/agendas/performancemgt/february2005.htm
+http://www.ipfw.edu/senate/Minutes/2000-01/Minutes6.htm
+http://www.iphotocentral.com/advertise/advertise.php
+http://www.ipi.uni-hannover.de/html/forschung/laufend/wipka/wipka.htm
+http://www.ipia.ie/oilbrief/climate_change.htm
+http://www.ipjur.com/episwpat.php3
+http://www.ipl.org/div/aon/browse/ent50.00.00/
+http://www.ipl.org/div/aon/browse/hum20.00.00/
+http://www.ipl.org/div/serials/browse/hum00.00.00/
+http://www.ipl.org/div/subject/browse/com10.00.00/
+http://www.ipl.org/div/subject/browse/ent30.00.00/
+http://www.ipls.org.nz/Acceptable_Use.html
+http://www.ipmall.info/hosted_resources/exams/97-Fall-SPORTS-LAW.html
+http://www.ipmalmanac.com/basics/beneficial.asp
+http://www.ipmenu.com/archive/May2001toJune2001.htm
+http://www.ipmenu.com/iptranslation.htm
+http://www.ipmenu.com/patentresources.htm
+http://www.ipmsitaly.com/faq/ModelFAQ10.html
+http://www.ipn.uni-kiel.de/projekte/ioste/sympos.htm
+http://www.ipoaa.com/voodoo.htm
+http://www.ipodlounge.com/articles_more.php?id=5941_0_8_0_C
+http://www.ipodlounge.com/articles_more.php?id=6226_0_8_0_C
+http://www.ipodlounge.com/index.php/reviews/comments/4454/
+http://www.ipodlounge.com/reviews_more.php?id=3986_0_6_0_M
+http://www.ipplc.com/ipplc/media/newsreleases/2000/2000-08-21/
+http://www.ippublishing.com/abstract_tourism.htm
+http://www.ipre.com/selling/index.shtml
+http://www.iproject.com/escher/teaching/beyondcraft.html
+http://www.iprsonline.org/unctadictsd/dialogue/2005-01-17/2005-01-17_desc.htm
+http://www.ips-dc.org/colombian_unionists/moises.htm
+http://www.ips-dc.org/comment/Bennis/demendoc.htm
+http://www.ips-dc.org/comment/Bennis/tp23debates.htm
+http://www.ips-dc.org/iraq/primer3.htm
+http://www.ips-dc.org/iraq/talkingpoints.htm
+http://www.ipsea.org.uk/sundaytimes.htm
+http://www.ipsen.com/
+http://www.ipsnews.co.th/writingpeace/features/thailand.html
+http://www.ipsnews.net/new_nota.asp?idnews=28414
+http://www.ipsnews.net/news.asp?idnews=29057
+http://www.ipsos.ca/ideas/
+http://www.ipsos.ca/prod/syndicated/
+http://www.iptv.org/about_online_roadrules.cfm
+http://www.iptv.org/k12catalog/list_detail.cfm?showID=135
+http://www.ipu.org/conf-e/110/110-2.htm
+http://www.ipv6forum.org/modules.php?op=modload&name=News&file=index
+http://www.irahelp.com/pr_041702.shtml
+http://www.iran-bulletin.org/IBMEF_1_word%206%20files/No%20Blood%20for%20Oil.htm
+http://www.iran-e-azad.org/english/maryam/March8/Chapter3.html
+http://www.iran-press-service.com/ips/articles-2004/march/index.shtml
+http://www.iran-press-service.com/ips/articles-2004/may/hedayat_hunger_strike_13504.shtml
+http://www.iranchamber.com/culture/articles/persian_roots_christian_traditions.php
+http://www.iranchamber.com/history/articles/arming_iraq.php
+http://www.iranian.ws/iran_news/publish/article_4286.shtml
+http://www.iranian.ws/iran_news/publish/article_7493.shtml
+http://www.iraniantrade.org/
+http://www.iranite.com/can_a_war_ever_be_just.htm
+http://www.irankicks.com/ikboard/archive/index.php/t-22518.html
+http://www.iranpressnews.com/english/source/003613.html
+http://www.iraqbodycount.net/coverage/time_20oct2003.php
+http://www.iraqbodycount.net/press/
+http://www.iraqbodycount.net/resources/falluja/
+http://www.iraqcoalition.org/pressreleases/20040511_media.html
+http://www.iraqcoalition.org/transcripts/20040320_Mar20_KimmittSenor.html
+http://www.iraqcoalition.org/transcripts/20040609_Wolfowitz_roadmap.html
+http://www.iraqfoundation.org/news/2003/isept/22_part2.html
+http://www.iraqfoundation.org/news/2003/joct/16_eden.html
+http://www.iraqitradeunions.org/archives/000177.html
+http://www.iraqoccupationfocus.org.uk/
+http://www.iraqoccupationfocus.org.uk/socu.htm
+http://www.iraqwatch.org/un/UNSCOM/1051/s-1999-401.htm
+http://www.irc-online.org/content/bulletin/bull43.php
+http://www.irc.org/tech_docs/TS-Delay.html
+http://www.irchelp.org/irchelp/communication-research/mass-media/mass-media-dreyfus-s-1997.html
+http://www.ircnet.lu/matching/completerec.cfm?BBS_ID=13794&org=106&back=true
+http://www.irconnect.com/untd/conf/3q2003_transcript.html
+http://www.ird.gov.hk/eng/paf/bus_pft_tsp.htm
+http://www.ird.govt.nz/businesses/yoursituation-bus/starting/
+http://www.ird.govt.nz/fbt/returns/
+http://www.ird.govt.nz/forms-guides/keyword/childsupport/custodians/ir167-guide-cs-returning-to-work.html
+http://www.ird.govt.nz/forms-guides/keyword/childsupport/ir167-guide-cs-returning-to-work.html
+http://www.ird.govt.nz/forms-guides/keyword/gst/ir323-guide-record-keeping.html
+http://www.ird.govt.nz/forms-guides/number/forms-300-399/ir323-guide-record-keeping.html
+http://www.ird.govt.nz/future-IR/childsupport/paying-parents/cs-whentocontact.html
+http://www.irda.qc.ca/Site_anglais/propos_a/propos_a.htm
+http://www.ired.com/news/lieberman/000806.htm
+http://www.iredellems.com/personnel/employees/ICEMS%20Protocol%20Web/Administrative%20Pages/deceased_subjects.htm
+http://www.ireggae.com/midniteloveright.htm
+http://www.irelan.net/becoming/archives/2003_04.shtml
+http://www.ireland-ac.com/antrim/self-catering-accommodation-antrim.htm
+http://www.ireland-accommodation-directory.com/ed/general/bizopp.htm
+http://www.ireland-information.com/nov04.htm
+http://www.ireland-now.com/visiting/expenses.html
+http://www.ireland.com/focus/election_2002/boom/boom1.htm
+http://www.ireland.com/newspaper/front/2001/1220/
+http://www.ireland.com/newspaper/front/2005/0202/1925445434HM1CENTRALBANK.html
+http://www.irelandforvisitors.com/articles/kilkenny_med_city.htm
+http://www.irelandin1.com/ireland_hotels/hotel_pages/kilronan_house_guesthouse_dublin.jsp?countyID=Dublin
+http://www.irelandview.com/clare-festivals.php
+http://www.irex.org/programs/completed/sproj/libreports/tbilisi.asp
+http://www.irex.org/pubs/frontline/fall98/exchanges.asp
+http://www.irfs.org.uk/docs/future/03.htm
+http://www.irfs.org.uk/docs/future/04.htm
+http://www.irfs.org.uk/docs/future/05.htm
+http://www.irfs.org.uk/docs/future/12.htm
+http://www.irfs.org.uk/docs/future/exec.htm
+http://www.irfs.org.uk/docs/future/recommend.htm
+http://www.irfs.org.uk/docs/positionpaper/
+http://www.iri.org/11-09-04-nytimes.asp
+http://www.iri.org/countries.asp?id=1102928473
+http://www.iridescent-publishing.com/msc/msc13.htm
+http://www.irinfo.org/Articles/article_6_2005_handlin.html
+http://www.irinnews.org/report.asp?ReportID=36152&SelectRegion=West_Africa&SelectCountry=NIGERIA
+http://www.irinnews.org/report.asp?ReportID=44244&SelectWeekly=Weekly&WRegion=Southern_Africa
+http://www.irinnews.org/report.asp?ReportID=45098&SelectRegion=East_Africa&SelectCountry=SUDAN
+http://www.irinnews.org/report.asp?ReportID=45801&SelectRegion=West_Africa
+http://www.irinnews.org/report.asp?ReportID=45801&SelectRegion=West_Africa&SelectCountry=BENIN
+http://www.irinnews.org/report.asp?ReportID=46704&SelectRegion=Asia
+http://www.irinnews.org/report.asp?ReportID=47321&SelectRegion=Asia
+http://www.irinnews.org/report.asp?ReportID=47321&SelectRegion=Asia&SelectCountry=UZBEKISTAN
+http://www.irinnews.org/report.asp?ReportID=47399&SelectRegion=Asia&SelectCountry=NEPAL
+http://www.irinnews.org/report.asp?ReportID=47544&SelectRegion=Southern_Africa
+http://www.irinnews.org/webspecials/DR/47338.asp
+http://www.irinnews.org/webspecials/Guinea/501245gr.asp
+http://www.irinnews.org/webspecials/guinea/501245gr.asp
+http://www.irish-architecture.com/onsite/urban_editing/indus.html
+http://www.irish-eyes.com/growers/index.php?growerchoice=1
+http://www.irishcultureandcustoms.com/3Focloir/2Index.html
+http://www.irishecho.com/newspaper/story.cfm?id=15892
+http://www.irishemigrant.com/article.asp?iCategoryID=200&iArticleID=34179
+http://www.irishexaminer.com/text/story.asp?j=138617347736&p=y386y734793z&n=138617347965
+http://www.irishexaminer.com/text/story.asp?j=310474569674&p=3yx47457xyy3&n=310474570189
+http://www.irishhealth.com/?level=4&con=462
+http://www.irishhealth.com/?level=4&con=462&var=print
+http://www.irishhealth.com/?level=4&id=1073
+http://www.irishhealth.com/?level=4&id=3781
+http://www.irishhealth.com/?level=4&id=3991
+http://www.irishhealth.com/?level=4&id=4491
+http://www.irishhealth.com/?level=4&id=5016
+http://www.irishhealth.com/?level=4&id=5506
+http://www.irishhealth.com/?level=4&id=6463
+http://www.irishhealth.com/?level=4&id=7641
+http://www.irishlassie.com/ICQ/stars.html
+http://www.irishlifepermanent.ie/ipm/media/pressreleases/permtsb/ptsb2005/2005-01-28/
+http://www.irishnews.com/championship2005/football/tyrone.html
+http://www.irishpatients.ie/index.cfm/loc/2-1/pt/0/spid/C78523FA-065A-44FD-B71CDA5B3481302B.htm
+http://www.irishrail.ie/breaks_and_trips/south_east.asp
+http://www.irishreader.com/Features/Coll.htm
+http://www.irishscientist.ie/2000/contents.asp?contentxml=016s.xml&contentxsl=insight3.xsl
+http://www.irishstatutebook.ie/1993_18.html
+http://www.irishweavers.com/?/
+http://www.irishweavers.com/corporate/
+http://www.iriveramerica.com/support/ultra/iFP_FAQ.aspx
+http://www.irlgov.ie/committees-99/c-enterprise/rep-superstores/default.htm
+http://www.irmep.org/Policy_Briefs/3_27_2003_Clean_Break_or_Dirty_War.html
+http://www.irmi.com/Insights/Articles/2002/Olson07.aspx
+http://www.irmi.com/expert/articles/rossi003.asp
+http://www.irn.org/pubs/wrr/9701/japan.html
+http://www.irnes.com/virtual-org.htm
+http://www.irocracing.com/current_season/series.html
+http://www.irokotheatre.org.uk/press.html
+http://www.irondale.org/gguide/pyc.htm
+http://www.ironmanflorida.com/
+http://www.irontontribune.com/articles/2005/01/30/news/news470.txt
+http://www.irontontribune.com/articles/2005/02/04/news/news470.txt
+http://www.iroquoisfalls.com/interest_items/pedskalny2003/trapped_in.htm
+http://www.irp.wisc.edu/faqs/faq3.htm
+http://www.irp.wisc.edu/publications/dps/dpabs2002.htm
+http://www.irrawaddy.org/database/2004/vol12.3/cover1.html
+http://www.irregularoo.com/goods2.html
+http://www.irregulartimes.com/americatown.html
+http://www.irregulartimes.com/irregularribbons.html
+http://www.irregulartimes.com/trees.html
+http://www.irreverence.ismagical.com/Irrevuglytruth.html
+http://www.irri-kiib.be/speechnotes/04/041020-wolfensohn.htm
+http://www.irrs.ie/Common%20Files/archiveUTA.htm
+http://www.irs.aber.ac.uk/research/fbs.shtml
+http://www.irs.gov/app/understandingTaxes/jsp/whys/lp/IWT2L6lp.jsp
+http://www.irs.gov/businesses/page/0,,id%3D7039,00.html
+http://www.irs.gov/businesses/page/0,,id%3D7043,00.html
+http://www.irs.gov/businesses/page/0,,id%3D7065,00.html
+http://www.irs.gov/faqs/faq-kw189.html
+http://www.irs.gov/faqs/faq-kw23.html
+http://www.irs.gov/irb/2005-02_IRB/ar14.html
+http://www.irs.gov/irm/part4/ch45s02.html
+http://www.irs.gov/irm/part5/ch10s03.html
+http://www.irs.gov/privacy/article/0,,id=131233,00.html
+http://www.irs.gov/privacy/article/0,,id=131238,00.html
+http://www.irs.gov/publications/p3/ar02.html
+http://www.irs.gov/publications/p3/ix01.html
+http://www.irs.gov/publications/p530/ar02.html
+http://www.irs.gov/publications/p550/ch02.html
+http://www.irs.gov/publications/p553/ch02.html
+http://www.irs.gov/retirement/article/0,,id=123290,00.html
+http://www.irsa.asn.au/3.html
+http://www.irt.org/software/sw017/
+http://www.irtces.org/isshhu/isfd04.htm
+http://www.irtheory.com/know.htm
+http://www.irvineayrshire.org/burns/hon1965etseq.htm
+http://www.irvingisd.net/districtweekly/weekly133.htm
+http://www.irvingstudios.com/child_abuse_survivor_monument/PublicAware.htm
+http://www.irwebreport.com/perspectives/2004/firefox.htm
+http://www.irwinabrams.com/books/excerpts/annual94.html
+http://www.irwinlaw.com/
+http://www.is.mcgill.ca/studentaid/workstudy/employer.htm
+http://www.isa.org/InTechTemplate.cfm?Section=InTech&template=/ContentManagement/ContentDisplay.cfm&ContentID=20066
+http://www.isa.org/InTechTemplate.cfm?Section=InTech&template=/ContentManagement/ContentDisplay.cfm&ContentID=44005
+http://www.isa.org/PrinterTemplate.cfm?Section=InTech&template=/ContentManagement/ContentDisplay.cfm&ContentID=20066
+http://www.isa.org/Template.cfm?Section=Education_and_Training&template=/TaggedPage/DetailDisplay.cfm&ContentID=39706
+http://www.isa.org/Template.cfm?Section=Education_and_Training&template=/TaggedPage/DetailDisplay.cfm&ContentID=42005
+http://www.isa.org/Template.cfm?Section=InTech&template=/ContentManagement/ContentDisplay.cfm&ContentID=20066
+http://www.isaca.org/TemplateRedirect.cfm?template=/ContentManagement/ContentDisplay.cfm&ContentID=7890
+http://www.isaca.org/TemplateRedirect.cfm?template=/ContentManagement/ContentDisplay.cfm&ContentID=9442
+http://www.isag.org.uk/journal/comparisonguide.asp
+http://www.isandiegorealestate.com/relocation_b.htm
+http://www.isanet.org/handbook/regionsc.html
+http://www.isanet.org/noarchive/hannaojanen.html
+http://www.isaserver.org/tutorials/sqlinstallingthetools.html
+http://www.isbd.org/australian_conference.htm
+http://www.isbe.man.ac.uk/courses/MSc_Opportunities/msc_prospectus/overview.htm
+http://www.isceast.com/App/homepage.cfm?appname=100036&moduleid=327
+http://www.ischool.utexas.edu/~rpollock/tla2001/talk01.html
+http://www.iscifistory.com/forums/forum/topic.asp?TOPIC_ID=720
+http://www.isd77.k12.mn.us/board/m031215.htm
+http://www.isdesignet.com/ED/ED9/pre_events.html
+http://www.ise5-14.org.uk/Prim3/New_Guidelines/Levels_SS/topics-c.htm
+http://www.ise5-14.org.uk/Prim3/New_Guidelines/Levels_SS/topics-d.htm
+http://www.ise5-14.org.uk/Prim3/New_Guidelines/Levels_SS/topics-e.htm
+http://www.isec2000.org.uk/abstracts/papers_g/grol_1.htm
+http://www.isec2000.org.uk/abstracts/papers_m/marston_1.htm
+http://www.iseek.org/sv/13000.jsp?id=100172
+http://www.iseek.org/sv/13000.jsp?id=100179
+http://www.iseek.org/sv/13000.jsp?id=100238
+http://www.iseek.org/sv/13000.jsp?id=100250
+http://www.iseek.org/sv/13000.jsp?id=100331
+http://www.iseek.org/sv/22030.jsp?id=161300
+http://www.iseek.org/sv/46001.jsp?id=273031
+http://www.iseekgolf.com/courses/course_detail.php?c_id=1915
+http://www.iseekgolf.com/view_articles.php/1413/1/5492/3/39/343/1/
+http://www.isellpot.ws/distribution/16home.htm
+http://www.isenberg.umass.edu/alumni/cw/s04/Classnotes/
+http://www.isep.org/us/va/
+http://www.iserv.net/~alexx/lib/tutorial.htm
+http://www.isg.rhul.ac.uk/msc/info.shtml
+http://www.isgb.org/forum/ubbthreads/showflat.php?Cat=&Board=beadtechniques&Number=55546&Main=55143
+http://www.isgplanning.com/FAQs.htm
+http://www.isham-research.com/quattro/tla.html
+http://www.ishecheatingonyou.com/5.htm
+http://www.ishib.org/newsletter/vol_3_3.html
+http://www.ishiboo.com/~nirva/Kitty/
+http://www.ishipress.com/breakup.htm
+http://www.ishipress.com/donaldso.htm
+http://www.ishn.com/CDA/ArticleInformation/features/BNP__Features__Item/0,2162,1733,00.html
+http://www.ishn.com/CDA/ArticleInformation/features/BNP__Features__Item/0,2162,3141,00.html
+http://www.ishr.ch/About%20UN/Reports%20and%20Analysis/CESCR/CESCR-26thSession.htm
+http://www.ishrs.org/articles/hair-recipient-site.htm
+http://www.ishwar.com/history.html
+http://www.isi.edu/natural-language/news.html
+http://www.isi.salford.ac.uk/dooy/thinking.html
+http://www.isic.org/sisp/?fx=theme&loc_id=131659&cat_id=2233
+http://www.isicus.com/MyISIC/IssuingOffice/apply.aspx
+http://www.isidore-of-seville.com/angels/10.html
+http://www.isidore-of-seville.com/machu/4.html
+http://www.isil.org/
+http://www.isilox.com/support/manual/ixl/ixlTextOptions.htm
+http://www.isis-group.com/MF-800-Note.htm
+http://www.isis.or.ug/knowhow/nextkw.html
+http://www.isisweb.org/jobs.htm
+http://www.isiswomen.org/wia/wia299/agr00001.html
+http://www.isixsigma.com/library/content/c040209a.asp
+http://www.islam-online.net/English/News/2001-09/13/article22.shtml
+http://www.islam-online.net/English/News/2001-11/17/article15.shtml
+http://www.islam.co.za/abdalqadirjilani/about.htm
+http://www.islamanswers.net/science/physics.htm
+http://www.islamanswers.net/unity/schools.htm
+http://www.islamfortoday.com/athar02.htm
+http://www.islamfortoday.com/ummzaid01.htm
+http://www.islamfortoday.com/womensrightsbadawi.htm
+http://www.islamic-awareness.org/Quran/Science/scientists.html
+http://www.islamic-bank.com/islamicbanklive/BankingTerms/1/Home/1/Home.jsp
+http://www.islamicvoice.com/august.2004/cr.htm
+http://www.islamicvoice.com/august.2004/embrace.htm
+http://www.islamicweb.com/beliefs/fiqh/alalwani_usulalfiqh/ch4.htm
+http://www.islamistwatch.org/texts/qutb/Milestones/culture.html
+http://www.islamonline.com/cgi-bin/news_service/fatwah_story.asp?service_id=256
+http://www.islamonline.com/cgi-bin/news_service/fatwah_story.asp?service_id=291
+http://www.islamonline.com/cgi-bin/news_service/fatwah_story.asp?service_id=466
+http://www.islamonline.com/cgi-bin/news_service/spot_full_story.asp?service_id=678
+http://www.islamonline.net/English/In_Depth/volunteers/2005/06/08.shtml
+http://www.islamonline.net/English/News/2003-08/05/article04.shtml
+http://www.islamonline.net/English/News/2004-10/18/article06.shtml
+http://www.islamonline.net/English/Science/2004/03/article03.shtml
+http://www.islamonline.net/English/Science/2004/05/article08.shtml
+http://www.islamonline.net/English/artculture/2005/01/article08.shtml
+http://www.islamonline.net/SiteDirectory/English/subcategories.asp?id=146
+http://www.islamonline.net/english/Science/2001/12/article7.shtml
+http://www.islamonline.net/fatwa/english/FatwaDisplay.asp?hFatwaID=38563
+http://www.islamonline.net/iol-english/dowalia/techng-2-2-2000/techng2.asp
+http://www.islamonline.net/livedialogue/english/Browse.asp?hGuestID=062KPe
+http://www.islamonline.net/livedialogue/english/Browse.asp?hGuestID=44tQNh
+http://www.islamonline.net/livedialogue/english/Browse.asp?hGuestID=B1FRj5
+http://www.islamworld.net/black_stone.htm
+http://www.island-flower.com/Annegifts.htm
+http://www.island-of-freedom.com/AUQUOTES.HTM
+http://www.island.net/~wmm/lifestyle.htm
+http://www.islandconcepts.com/psearch.php?pt=L&pa=AA
+http://www.islandnet.com/~see/weather/history/artmirge.htm
+http://www.islandnet.com/~see/weather/history/beaufort.htm
+http://www.islandrecords.com/bonjovi/theband_jbj_speeches.las
+http://www.islandscene.com/fitness/2005/050202/foot_speed/
+http://www.islandscene.com/fitness/current.asp
+http://www.islandsun.com/2005-May/07052005/local10-v15i13.html
+http://www.isle-of-man.com/manxnotebook/fulltext/sm1883/ginfo.htm
+http://www.islma.org/about_islma.htm
+http://www.islma.org/resources.htm
+http://www.ism-london.org.uk/nablus_april_2005.php
+http://www.isma.org.uk/stressnw/agedescrim1.htm
+http://www.isma.org.uk/stressnw/sittingwell1.htm
+http://www.isma.org.uk/stressnw/socreps.htm
+http://www.ismh.org/mhn/mhn02.htm
+http://www.ismi.net/paws/wait2.html
+http://www.isminc.com/index.php3?M=mwssifaq2
+http://www.isn.ch/news/sw/details.cfm?ID=7683
+http://www.isn.ethz.ch/isis/Research_Studies/Black_Sea_Basin_Regional_Profile/BlackSea1999_04-06.htm
+http://www.isn.ethz.ch/news/sw/letters.cfm?mystartrow=6&realstartrow=6
+http://www.isnow.com/hair/features/spotlights/0301metro.html
+http://www.iso.org.au/socialistworker/508/p3a.html
+http://www.isoc.org/inet2000/cdproceedings/8e/8e_1.htm
+http://www.isoc.org/inet96/proceedings/c4/c4_1.htm
+http://www.isoc.org/internet/standards/papers/crocker-on-standards.shtml
+http://www.isop.ucla.edu/eas/documents/mao491216.htm
+http://www.isoqol.org/Conference/2001/2001_exhibitor.html
+http://www.isp-planet.com/marketing/2004/branding_bol.html
+http://www.ispaweb.org/en/Documents/Farrell%20(SP).htm
+http://www.ispcon.com/fall2004/attend-keynotes.asp
+http://www.ispcon.com/spring2004/attend-faculty.asp
+http://www.ispr.net/
+http://www.isr.net/
+http://www.isr.umd.edu/~jwh2/iol/
+http://www.isracast.com/tech_news/310505_tech.htm
+http://www.israelforum.com/board/showthread.php?goto=lastpost&t=8233
+http://www.israelinsider.com/channels/security/articles/sec_0060.htm
+http://www.isreview.org/issues/26/thieves_kitchen.shtml
+http://www.isroldenburg.org/?pid=sales%25list
+http://www.iss.co.za/Pubs/ASR/11No3/Stohl.html
+http://www.iss.co.za/Pubs/ASR/12No1/FStewart.html
+http://www.iss.co.za/Pubs/ASR/5No6/Steyn.html
+http://www.iss.co.za/Pubs/ASR/7No5/PeaceInforcement.html
+http://www.iss.co.za/Pubs/ASR/8No5/DefiningDefence.html
+http://www.iss.co.za/Pubs/Monographs/No42/Preface.html
+http://www.iss.co.za/Pubs/Monographs/No5/Steenkamp.html
+http://www.iss.co.za/Pubs/Papers/67/Paper67.html
+http://www.iss.co.za/pubs/papers/105/Paper105.htm
+http://www.iss.net/security_center/advice/Support/KB/default.htm
+http://www.iss.net/wireless/WLAN_FAQ.php
+http://www.iss.org.za/Pubs/ASR/4No2/DefensiveDefence.html
+http://www.iss.org.za/Pubs/ASR/SADR2/Heitman.html
+http://www.iss.soton.ac.uk/infra/telephony/newcollege.html
+http://www.issaquahfish.org/learnmore/redd.html
+http://www.issbd2006.com.au/legal.shtml
+http://www.issd.org/Conference2004/confbrochure.htm
+http://www.issfanclub.com/modules.php?name=News&new_topic=6
+http://www.issn.org:8080/pub/getting-checking/checking/print_en
+http://www.isso.cornell.edu/prepare/faq.html
+http://www.issociate.de/board/post/21197/Incorrect_
+http://www.isss.org/admin/presidential.html
+http://www.isss.umn.edu/jstudent/JStFullCourse.html
+http://www.issso.uh.edu/FAQ.html
+http://www.issueactionpublications.com/documents/literature/lit.dont.just.stand.html
+http://www.issues-mag.com/july3/acting.phtml
+http://www.issues-views.com/index.php/sect/1002/article/1199
+http://www.issues-views.com/index.php/sect/2004/article/2065
+http://www.issues.org/issues/19.2/p_pielke.htm
+http://www.issues.org/issues/20.1/rabalais.html
+http://www.issues.org/issues/21.3/hirsch.html
+http://www.issues2000.org/2004/George_W__Bush_Energy_+_Oil.htm
+http://www.issues2000.org/2004/George_W__Bush_Foreign_Policy.htm
+http://www.issues2000.org/2004/George_W__Bush_Welfare_+_Poverty.htm
+http://www.issues2000.org/2004/More_George_W__Bush_Health_Care.htm
+http://www.issues2000.org/Bob_Smith.htm
+http://www.issues2000.org/Celeb/Bill_Clinton_Principles_+_Values.htm
+http://www.issues2000.org/Celeb/George_W__Bush_Energy_+_Oil.htm
+http://www.issues2000.org/Domestic/James_Inhofe_Gun_Control.htm
+http://www.issues2000.org/Governor/Frank_Keating_Energy_+_Oil.htm
+http://www.issues2000.org/Governor/Mike_Foster_Energy_+_Oil.htm
+http://www.issues2000.org/Governor/Mike_Huckabee_Energy_+_Oil.htm
+http://www.issues2000.org/Governor/Roy_Barnes_Energy_+_Oil.htm
+http://www.issues2000.org/Governor/Tony_Knowles_Energy_+_Oil.htm
+http://www.issues2000.org/Myrth_York.htm
+http://www.issues2000.org/NJ/Robert_Menendez.htm
+http://www.issues2000.org/Ralph_Nader.htm
+http://www.issues2000.org/Republican_Party.htm
+http://www.issues2000.org/Unique_Voice.htm
+http://www.issuespa.net/articles/13243/
+http://www.istain.org/sam.cfm?xnode=2600
+http://www.istc.org.uk/pages/nosunit18.php
+http://www.iste.org/Content/NavigationMenu/Advocacy/Policy/Washington_Notes/19982/Jul5/Jul.htm
+http://www.iste.org/Content/NavigationMenu/Advocacy/Policy/Washington_Notes/20003/Jan8/Jan.htm
+http://www.iste.org/Content/NavigationMenu/Advocacy/Washington_Notes/19982/Jul5/Jul.htm
+http://www.istec.or.jp/Isis/PAMPH/Epamp.html
+http://www.isteve.com/BabyGap.htm
+http://www.isteve.com/IQhoax.htm
+http://www.isteve.com/babygap.htm
+http://www.istl.org/01-summer/article3.html
+http://www.istl.org/02-spring/article2.html
+http://www.istl.org/02-spring/conf1.html
+http://www.istl.org/02-summer/article2.html
+http://www.istl.org/03-spring/refereed1.html
+http://www.istl.org/04-fall/article4.html
+http://www.istl.org/04-summer/article3.html
+http://www.istl.org/99-fall/article3.html
+http://www.istockphoto.com/article_view.php?ID=14
+http://www.isu.edu/departments/english/english-DA.html
+http://www.isu.edu/departments/pubsafe/manuals/emergency/chapter_10.html
+http://www.isuma.net/v02n01/putnam/putnam_e.shtml
+http://www.isuma.net/v03n02/isnor/isnor_e.shtml
+http://www.iswface.org/
+http://www.it-director.com/article.php?articleid=11224
+http://www.it-director.com/article.php?articleid=12048
+http://www.it-director.com/article.php?articleid=2469
+http://www.it-director.com/article.php?articleid=8874
+http://www.it-directory.ie/Irish_Online_Communities/
+http://www.it.bton.ac.uk/staff/rng/teaching/IS307/ALbookmarks.html
+http://www.it.northropgrumman.com/home.asp?bid=1746
+http://www.it.rit.edu/~ell/409/409-042/archives/css_and_typography_studio_exercise.php
+http://www.it.ufl.edu/telecom/phone_singleLinePhones1.html
+http://www.ita.doc.gov/exportamerica/GlobalNewsLine/gnl_0902.html
+http://www.itaa.org/events/event.cfm?EventID=1104
+http://www.itaa.org/isec/doc021601tran.htm
+http://www.itab.ca/english/docs/mou.asp
+http://www.italiamerica.org/id36.htm
+http://www.italian-language-courses.net/hotels_italy_miramare.htm
+http://www.italiansrus.com/articles/ourpaesani/espresso_caffe.htm
+http://www.italianwinesdirectclub.com/december04.htm
+http://www.italianwinesdirectclub.com/july.htm
+http://www.italianwinesdirectclub.com/june.htm
+http://www.italianwinesdirectclub.com/november04.htm
+http://www.italiaspeed.com/2004/motor_show/bologna/review/pininfarina/nido/2312.html
+http://www.italydownunder.com.au/issueseven/cilauro.html
+http://www.italyemb.org/AdmissionsRequirement.htm
+http://www.italyheaven.co.uk/getaround.html
+http://www.italyun.org/docs/statemen/2005-26-04%20Statement%20Mantovani_clustI.htm
+http://www.itbusinessedge.com/reports/osa20041020.html
+http://www.itc.nl/~bakker/info/rs-data/kodak.html
+http://www.itc.virginia.edu/
+http://www.itcilo.it/actrav/english/calendar/2000/A3_2069/work/ACTION_PLANS/cambodia.htm
+http://www.itcilo.it/english/actrav/telearn/global/ilo/guide/toy.htm
+http://www.itcilo.it/english/actrav/telearn/global/ilo/seura/castel.htm
+http://www.itcportal.com/chairman_speaks/chairman_2000.html
+http://www.itcrunch.com/administrator/DisplayArticle.asp?sArticleID=107~4&sFirstKeyword=interview&cameFrom=DisplayArticlesByAuthor
+http://www.itdc.k12.ca.us/curriculum/charter.html
+http://www.itdg.org/
+http://www.itdg.org/?id=faq
+http://www.itdg.org/?id=p2p_kleiburg
+http://www.itdg.org/?id=region_sudan_western
+http://www.itdg.org/?id=south_asia_tsunami
+http://www.itdg.org/?id=special_appeals
+http://www.itdg.org/home_text.asp?id=region_sudan_western
+http://www.itdg.org/home_text.asp?id=south_asia_tsunami
+http://www.itdl.org/Journal/Jan_05/article01.htm
+http://www.ite.edu.sg/admission/ft/faq.htm
+http://www.iteaonline.org/Journal/31N4/31N4Amateur.shtml
+http://www.itebooks.net/Bike/
+http://www.item-bioenergy.com/directory/
+http://www.itfacts.biz/index.php?id=P1821
+http://www.itftennis.com/coaching/publications/itfpublications/books.asp
+http://www.itgulfcoast.org/pageview.asp?PageType=ND&edit_id=2&NEID=4
+http://www.ithaca.edu/ithacan/articles/0310/02/accent/5rap_show_mak.htm
+http://www.ithacahours.com/home.html
+http://www.ithacastation.com/history.html
+http://www.itinscales.com/kitchenscales.htm
+http://www.itinscales.com/specials.htm
+http://www.itinscales.com/tmulti.htm
+http://www.itm.org.uk/2005/index.asp
+http://www.itmonline.com/active99/psi99_active.asp?SR=Thinking+Connections
+http://www.itmweb.com/essay003.htm
+http://www.itnetcentral.com/article.asp?id=13794
+http://www.itnteachers.com/static_generic.cgi?a=workingUK_londonGuide
+http://www.itopf.com/
+http://www.itotd.com/blog.alt?month=2004-12
+http://www.itp.net/features/details.php?id=2817&category=
+http://www.itpaa.org/modules.php?name=News&file=article&sid=1711
+http://www.itppeople.com/FAQAdults.htm
+http://www.itppeople.com/short.htm
+http://www.itreviews.co.uk/
+http://www.itri.brighton.ac.uk/~Adam.Kilgarriff/WORDSKETCHES/tea_n.html
+http://www.its-sti.gc.ca/Architecture/english/web/p/p-24.htm
+http://www.its.berkeley.edu/techtransfer/resources/pub/nl/04-3/roadside.html
+http://www.its.caltech.edu/~dg/fusion_art.html
+http://www.its.leeds.ac.uk/projects/primavera/p_calming.html
+http://www.its.queensu.ca/uis/CAS_intro.shtml
+http://www.itsallelectric.com/index.asp?PageId=44
+http://www.itsdocs.fhwa.dot.gov/JPODOCS/REPTS_PR/13669/section04.htm
+http://www.itsdocs.fhwa.dot.gov/JPODOCS/REPTS_TE/14114.htm
+http://www.itsecurity.com/papers/iss8.htm
+http://www.itsgoodtoknow.com/eyecanseeI.asp
+http://www.itslifejimbutnotasweknowit.org.uk/library_reports_research11.htm
+http://www.itsmf.com/conference/session.asp?SessionID=181
+http://www.itsmypark.org/resources/grants_program.html
+http://www.itstime.com/slinks.htm
+http://www.itsybitsyyoga.com/tykesyogatraining.htm
+http://www.itszone.co.uk/zone0/viewtopic.php?t=2532
+http://www.ittc.ku.edu/~trajkova/CurrentWork.html
+http://www.itv-football.co.uk/Features/story_141523.shtml
+http://www.itvregions.com/corporate_info.php?region=Wales&content=5710
+http://www.itvregions.com/corporate_info.php?region=West&content=5037
+http://www.itvs.org/RichardWright/chron.html
+http://www.itweb.co.za/sections/business/2005/0501210850.asp?A=%25&O=F
+http://www.itweb.co.za/sections/internet/2002/0205230701.asp?O=FPL
+http://www.itweb.co.za/sections/leisure30.asp
+http://www.itweek.co.uk/analysis/104655
+http://www.itworld.com/App/818/swol-0895-sysadmin/
+http://www.itworld.com/AppDev/4061/swol-1013-regex/
+http://www.itworld.com/Career/3710/050603elearning/
+http://www.itworld.com/Net/3303/nls_itinsights050216/
+http://www.itwtranstech.com/Pages/Orion_130.html
+http://www.iucn.org/biodiversityday/reshuffling.htm
+http://www.iucn.org/places/orma/areas/Humedales/english/economical.values.htm
+http://www.iucn.org/reuters/1999/articles/winningamerica.htm
+http://www.iucn.org/themes/law/cel07.html
+http://www.iucn.org/themes/ssc/
+http://www.iucn.org/themes/sustainableuse/sg/bhim.html
+http://www.iucn.org/themes/wcpa/newsbulletins/news-oct02.html
+http://www.iucn.org/themes/wcpa/theme/values/values.html
+http://www.iucn.org/themes/wetlands/
+http://www.iucr.org/cgi-bin/paper?gl0318
+http://www.iucr.org/iucr-top/docs/int/commguide.html
+http://www.iucr.org/iucr-top/lists/cif-developers/msg00012.html
+http://www.iugm.org/sumr-dir.html
+http://www.iugs.org/iugs/pubs/epi21-3.htm
+http://www.iuoe882.com/Facilities%20Subsector%20Association%20of%20Unions%20-and-%20HEABC%20(Clarification%20-%20Implementation%20of%20Bill%2037).htm
+http://www.iupat.org/news/
+http://www.iupload.com/
+http://www.iupload.com/default.asp
+http://www.iupui.edu/~anth/degreereqs.html
+http://www.iupui.edu/~anthpm/fieldschool2002.html
+http://www.iupui.edu/~finaid/generalInfo/loanDebt.html
+http://www.iupui.edu/~museum/admissions1.html
+http://www.ius.edu/brochures/AcademicPrograms/?brochure=music&SchoolCode=ARL
+http://www.ius.edu/publicrelations/CampusNews.cfm
+http://www.iusb.edu/~journal/1998/Paper16.html
+http://www.iusb.edu/~journal/2001/wilkie.html
+http://www.iusb.edu/~sbhist/degree.shtml
+http://www.iuscomp.org/gla/judgments/tgcm/z630930.htm
+http://www.iuscomp.org/gla/literature/access.htm
+http://www.iusedtobelieve.com/
+http://www.iussp.org/Activities/scc-thr/thr-outline.php
+http://www.iussp.org/Activities/scp-gen/gen-rep99.php
+http://www.iussp.org/Activities/wgc-urb/urb-rep02.php
+http://www.iussp.org/Publications_on_site/PRP/prp18.php
+http://www.iut-info.univ-lille1.fr/docs/thinking/AppendixA.html
+http://www.ivanberryman.co.uk/concorde_prints.htm
+http://www.ivanhoffman.com/artist.html
+http://www.ivanhoffman.com/distributors.html
+http://www.ivanhoffman.com/gap.html
+http://www.ivanhoffman.com/language2.html
+http://www.ivanhoffman.com/lostopportunity.html
+http://www.ivanhoffman.com/nightmare.html
+http://www.ivanhoffman.com/onlinefair.html
+http://www.ivanhoffman.com/protect.html
+http://www.ivarhagendoorn.com/personal/archives/2004/week47.html
+http://www.ivc.ca/governments/usa/state/
+http://www.ivc.org.uk/resources/aIVC/conference_weekend.htm
+http://www.ivcc.edu/gen2002/Darwin_Origin.htm
+http://www.ivcfnynj.org/basileia_wcspecial.asp
+http://www.ivcs.org.uk/donation.htm
+http://www.iventa.com/Email-Publishing-Tracking-System.aspx
+http://www.ivenus.com/health/features/SU-beat_it-wk51.asp
+http://www.ivey.org/pages/grantsbio_2001.html
+http://www.ivey.org/pages/grantsgen_2001.html
+http://www.ivey.uwo.ca/executive/emba/lets_talk.htm
+http://www.iveybusinessjournal.com/topics.asp?intTopic_ID=2
+http://www.ivf-et.com/financial_intro.html
+http://www.ivf-et.com/tlc/fact_art_success.html
+http://www.ivf-et.com/tlc/forum/pregnancy.html
+http://www.ivfconnections.com/qpregnancy.htm
+http://www.ivillage.co.uk/food/partyfood/drinksparties/articles/0,,165155_165651,00.html
+http://www.ivillage.co.uk/newspol/celeb/cfeat/articles/0,,528719_667213,00.html
+http://www.ivillage.co.uk/pregnancyandbaby/fertility/adoption/articles/0,,6_177637,00.html
+http://www.ivillage.co.uk/print/0,,181710,00.html
+http://www.ivillage.co.uk/relationships/couple/right/qas/0,9584,144_664694,00.html
+http://www.ivillage.co.uk/relationships/dating/men/articles/0,,139_572742-9,00.html
+http://www.ivillage.co.uk/relationships/famfri/emotwb/articles/0,,161285_587628-1,00.html
+http://www.ivillage.co.uk/relationships/famfri/emotwb/articles/0,,181034_587628,00.html
+http://www.ivillage.co.uk/relationships/sex/talksex/qas/0,,173_158600,00.html
+http://www.ivillage.co.uk/relationships/sex/talksex/qas/0,9584,173_158600,00.html
+http://www.ivisgroup.info/resources/pressreleases/20020401.asp
+http://www.ivm.org.uk/aboutivm_publications_beyondthe_function.htm
+http://www.ivmdl.org/cbec.cfm?study=141
+http://www.ivmdl.org/cbec.cfm?study=60
+http://www.ivr.org.uk/audit.htm
+http://www.ivthome.com/conferences/computer_validation_va.html
+http://www.ivu.org/congress/euro97/food.html
+http://www.ivu.org/congress/thai99/reports/mrpye.html
+http://www.ivu.org/congress/wvc38/manchester-report.html
+http://www.ivu.org/history/societies/french.html
+http://www.ivu.org/history/vfu/meeting15.html
+http://www.ivu.org/nzvs/app/prod.htm
+http://www.ivybound.net/IBstory.html
+http://www.ivywest.com/iwsatfaq.htm
+http://www.iw3p.com/DailyPundit/2002_04_21_dailypundit_archive.php
+http://www.iwa2171.bc.ca/education/edu_gloss_union.html
+http://www.iwantmedia.com/timewarner.html
+http://www.iwasabducted.com/report61.htm
+http://www.iwf.org.uk/government/page.101.222.htm
+http://www.iwf.org/initiatives/init_detail.asp?ArticleID=634
+http://www.iwf.org/issues/issues_detail.asp?ArticleID=515
+http://www.iwf.org/issues/issues_detail.asp?ArticleID=543
+http://www.iwh.on.ca/products/atwork2005/Spring05/statistical40.htm
+http://www.iwm.org.uk/upload/package/21/creteegypt/standegypt20.htm
+http://www.iwmi.cgiar.org/tools/perform.htm
+http://www.iwpr.net/index.pl?archive/irq/irq_46_7_eng.txt
+http://www.iwpr.net/index.pl?archive/tri/tri_208_1_eng.txt
+http://www.iwpr.net/special_index1.html
+http://www.iwr.co.uk/News/1161048
+http://www.iwr.com/exerciser2000/testimonies.htm
+http://www.iwraw-ap.org/protocol/standing.htm
+http://www.iww.org/en/projects/gdc
+http://www.ixtapa-zihuatanejo.com/info/pesca2.htm
+http://www.iyp.oxfam.org/news/voice/index.asp
+http://www.j-aircraft.com/research/rdunn/tuluvu/tuluvu_4.htm
+http://www.j-bradford-delong.net/Econ_Articles/Reviews/easterlin.html
+http://www.j-bradford-delong.net/OpEd/virtual/technet/spmicro.html
+http://www.j-bradford-delong.net/Teaching_Folder/manifesto.html
+http://www.j-bradford-delong.net/TotW/Easterly_neoliberal.html
+http://www.j-bradford-delong.net/movable_type/2005-3_archives/000240.html
+http://www.j-bradford-delong.net/movable_type/2005-3_archives/001041.html
+http://www.j-bradford-delong.net/movable_type/archives/001131.html
+http://www.j-bradford-delong.net/movable_type/archives/001448.html
+http://www.j-church.com/articles/newsletter09-9-6.html
+http://www.j-k.co.uk/jkcm/JK/Product/Samples.cms
+http://www.j-n-v.org/AW_briefings/ARROW_briefing033.htm
+http://www.j-paine.org/bb.html
+http://www.j31.co.uk/kiveton.html
+http://www.ja-gps.com.au/whatisgps.html
+http://www.ja.org/programs/programs_elem_skills.shtml
+http://www.jaa.nl/licensing/classtyperatings.html
+http://www.jabootu.com/seaserpent.htm
+http://www.jackandsusie.com/modules.php?op=modload&name=Web_Links&file=index&l_op=viewlink&cid=1
+http://www.jackasscritics.com/movie.php?movie_key=386
+http://www.jackblood.com/index/id1.html
+http://www.jackbridge.com/eprojack.htm
+http://www.jackhanna.com/africa99/vumbura2.htm
+http://www.jackhodgson.com/weblog/archives/000873.html
+http://www.jackjackman.com/wtc.html
+http://www.jackjohnsonmusic.com/forum2/topic.asp?whichpage=-1&TOPIC_ID=17757&REPLY_ID=236481
+http://www.jacklondons.net/writings/WolfHouseBurning/page_four.html
+http://www.jackmassie.com/facility.html
+http://www.jackmorton.com/360/market_focus/july03_mf.asp
+http://www.jackson.cc.mi.us/InfoTech/LRC/Feb%20Programs.htm
+http://www.jackson.k12.ky.us/readingstrategies/m4b.htm
+http://www.jackson.k12.ky.us/readingstrategies/m4c.htm
+http://www.jacksonandperkins.com/cgi-bin/ncommerce3/ExecMacro/base.d2w/report?html=tips_gardenease.html
+http://www.jacksonfreepress.com/comments.php?id=4756_0_7_0_C
+http://www.jacksonhole.com/info/pr.filmkit.asp
+http://www.jacksonholewy.net/lodging/jh_hotels.php
+http://www.jacksonsmill.wvu.edu/
+http://www.jacobite.ca/documents/17431223a.htm
+http://www.jacobite.ca/kings/henry.htm
+http://www.jacobite.ca/kings/james2.htm
+http://www.jacobsen.no/anders/blog/archives/2003/07/17/improving_crm_at_zingo_taxi.html
+http://www.jadetower.org/dave/archives/2005_02.html
+http://www.jadetower.org/dave/archives/2005_06.html
+http://www.jafi.org.il/education/100/zionism/b8.html
+http://www.jafi.org.il/education/actual/zr/6.html
+http://www.jag-lovers.org/modern/models.htm
+http://www.jag-lovers.org/x350.html
+http://www.jagan.org/tributes2a.htm
+http://www.jagcentral.org/
+http://www.jagcnet.army.mil/
+http://www.jagersmith.com/NewsFall04.htm
+http://www.jaguarcars.com/uk/sja/ch4.html
+http://www.jaguarcars.com/uk/sja/ch8.html
+http://www.jahworks.org/music/features/fire_burn.html
+http://www.jaialai.com/2004%20SH%20hdcp%20Rules.asp
+http://www.jainworld.com/society/jainfood/cosmetics.htm
+http://www.jakeludington.com/ask_jake/20050116_5_hdtv_shopping_tips.html
+http://www.jakeslife.com/diary.htm
+http://www.jakko.com/life/shoes.htm
+http://www.jakonrath.com/record2.html
+http://www.jal.cc.il.us/~mikolajsawicki/ex_astro.html
+http://www.jal.co.jp/jalmile/euro_e/jaljta.html
+http://www.jalt.org/calendar/main.php?v=c&ch=Akita&change=0
+http://www.jama.org/library/position100197.htm
+http://www.jamaicans.com/culture/anansi/anancy_watchderide.shtml
+http://www.jambands.com/Columns/AMiller/content_2004_09_29.00.phtml
+http://www.jambands.com/Features/content_2002_08_25.09.phtml
+http://www.jambands.com/forums/read.php?f=2&i=5854&t=5780
+http://www.jambands.com/forums/read.php?f=2&i=5868&t=5780
+http://www.jambomama.com/chapter1.html
+http://www.jambomama.com/chapter2.html
+http://www.james.com/beaumont/dr_life.htm
+http://www.jamesandjames.com/htmlfiles/info/info.htm
+http://www.jamesbowman.net/articleDetail.asp?pubID=1413
+http://www.jamesgomeznews.com/article.php?AID=104
+http://www.jameshay.co.uk/Company/Directions.htm
+http://www.jameskalyn.com/reviews/1997/wmmason2.html
+http://www.jamesmadisonproject.org/aboutjmp.html
+http://www.jamesmartinpa.com/letters.htm
+http://www.jamesmichaelstarr.com/carolandcharlotte.html
+http://www.jamesoregan.com/Producer/
+http://www.jamestown.org/email-to-friend.php?article_id=4619
+http://www.jamestown.org/publications_details.php?volume_id=17&issue_id=637&article_id=4584
+http://www.jamestown.org/publications_details.php?volume_id=25&&issue_id=2252
+http://www.jamestown.org/publications_details.php?volume_id=25&issue_id=2237&article_id=19311
+http://www.jamestown.org/publications_details.php?volume_id=395&issue_id=2931&article_id=23659
+http://www.jamestownfd.com/
+http://www.jameswalker.co.uk/docs/support.htm
+http://www.jameswhuston.com/asp/huston.asp?page=secret_justice_ex
+http://www.jamieanderson.com/classes.html
+http://www.jamisongreen.com/Report_Findings.htm
+http://www.jamminjobs.com/JS/General/Job.asp?id=3287455
+http://www.jamminjobs.com/JS/General/Job.asp?id=3332113
+http://www.jammu-kashmir.com/basicfacts/basics.html
+http://www.jamsadr.com/j_pub/articles.asp?cyear=2002&pn=2
+http://www.jamsadr.com/j_pub/articles.asp?cyear=2004&pn=6
+http://www.jamsadr.com/j_pub/articles.asp?cyear=2005&pn=6
+http://www.jan.wvu.edu/soar/motor/4_lifting.html
+http://www.janda.org/politxts/State%20of%20Union%20Addresses/1945-1952%20Truman/HST47.html
+http://www.janda.org/politxts/State%20of%20Union%20Addresses/1964-1969%20Johnson/LBJ68.html
+http://www.janda.org/politxts/State%20of%20Union%20Addresses/1981-1988%20Reagan/rwr88.html
+http://www.janegalt.net/
+http://www.janegalt.net/2002_01_13_janegalt_archive.html
+http://www.janegalt.net/blog/archives/003938.html
+http://www.janegalt.net/blog/archives/004739.html
+http://www.janegalt.net/blog/archives/005242.html
+http://www.janekurtz.com/ethiopia5.html
+http://www.janela1.com/vh/docs/v0000015.htm
+http://www.janeresture.com/beru/
+http://www.janeresture.com/kiribati_food/
+http://www.janeresture.com/nauru_history/
+http://www.janes.com/
+http://www.janes.com/defence/air_forces/news/jawa/jawa001013_1_n.shtml
+http://www.janes.com/transport/exhibitions/
+http://www.janesavoie.com/books.html
+http://www.janfennellthedoglistener.com/contact.htm
+http://www.jang-group.com/thenews/jan2005-weekly/busrev-31-01-2005/p2.htm
+http://www.jang.com.pk/cricket/cwc2003/squads/southafrica/allan-donald.htm
+http://www.jang.com.pk/thenews/apr2005-daily/21-04-2005/main/update.shtml
+http://www.jang.com.pk/thenews/aug2003-weekly/tapest-28-08-2003/
+http://www.jang.com.pk/thenews/dec2004-daily/06-12-2004/world/w3.htm
+http://www.jang.com.pk/thenews/feb2005-daily/12-02-2005/business/b1.htm
+http://www.jang.com.pk/thenews/jan2005-weekly/tapest-20-01-2005/
+http://www.jang.com.pk/thenews/jun2005-daily/11-06-2005/main/main2.htm
+http://www.jang.com.pk/thenews/may2005-daily/15-05-2005/sports/s6.htm
+http://www.jang.com.pk/thenews/oct2003-daily/04-10-2003/world/w11.htm
+http://www.janisian.com/article-eric_flint-free_library.html
+http://www.janisian.com/article-fallout.html
+http://www.janmatthies.info/chess/cvt/imview.htm
+http://www.janmulligan.com/cs.html
+http://www.jannah.org/sisters/marparen.html
+http://www.jannah.org/sisters/womeninislam.html
+http://www.janthor.de/galerie.html
+http://www.januarymagazine.com/features/aftershaft.html
+http://www.januarymagazine.com/features/southbeachdietexc.html
+http://www.janus.co.yu/vrujci/sports.htm
+http://www.jaott.org/Unit6.htm
+http://www.japan-guide.com/local/?aCAT=111
+http://www.japan-society.org/crest_jssdt.html
+http://www.japan-zone.com/modern/manga.shtml
+http://www.japan-zone.com/store/traditional.shtml
+http://www.japan.org.au/Q&A.htm
+http://www.japanconsuming.com/contents/2005/contents_0501.html
+http://www.japancorp.net/Article.Asp?Art_ID=10012
+http://www.japancorp.net/Article.Asp?Art_ID=3490
+http://www.japanesefriendsearch.com/
+http://www.japanesesnacks.com/storelist.php
+http://www.japanesestudies.org.uk/articles/Bassani.html
+http://www.japanlaw.info/lawletter/jan86/eba.htm
+http://www.japanphone.com/faq.html
+http://www.japanscan.com/review.htm
+http://www.japantoday.com/e/?content=bbs&order=msg&author=BJP
+http://www.japantoday.com/e/?content=bbs&order=msg&author=hm
+http://www.japantoday.com/e/?content=comment&id=352
+http://www.japantoday.com/e/?content=comment&id=584
+http://www.japantoday.com/e/?content=comment&id=584&page=11
+http://www.japantoday.com/e/?content=feature&id=843
+http://www.japantoday.com/e/?content=feature&id=843&page=2
+http://www.japantoday.com/e/?content=kuchikomi&id=87
+http://www.japantoday.com/e/?content=news&cat=1&id=340725
+http://www.japantoday.com/e/?content=news&cat=1&id=340765
+http://www.japantoday.com/e/?content=newsmaker&id=195
+http://www.japantoday.com/e/?content=quote
+http://www.japanus150.org/haikuguidelines.html
+http://www.japanwindow.com/
+http://www.jarretthousenorth.com/
+http://www.jarretthousenorth.com/2001/07/31.html
+http://www.jarvm.com/articles/Vol1Iss1/CASTIJVM.htm
+http://www.jasa.net.au/seaside/sickness.htm
+http://www.jascc.org/partnerships&alliances/freinds.html
+http://www.jashford.com/Pages/ACCReviews.html
+http://www.jasna.org/persuasions/on-line/opno3/eggleston.html
+http://www.jasondoucette.com/worldrecords.html
+http://www.jasonmperry.com/articles/
+http://www.jasonosipa.com/SS_FAQ.htm
+http://www.jasonsantamaria.com/
+http://www.jasonsantamaria.com/archive/2004/07/18/index.php
+http://www.jasonwilber.com/
+http://www.jaspong.force9.co.uk/doom.htm
+http://www.jatruck.com/stonewall/soldierb2.htm
+http://www.java.com/en/download/manual.jsp
+http://www.javacoffeebreak.com/articles/thinkinginjava/abitaboutgarbagecollection.html
+http://www.javalobby.org/
+http://www.javaonthebrain.com/brain.html
+http://www.javaspecialists.co.za/archive/Issue035.html
+http://www.javaworld.com/javaworld/javaone99/j1-99-gosling.html
+http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-hotspotgc.html
+http://www.javaworld.com/javaworld/jw-03-2000/jw-0331-java101.html
+http://www.javaworld.com/javaworld/jw-03-2001/jw-0323-perfbooks.html
+http://www.javaworld.com/javaworld/jw-03-2001/jw-0330-ten.html
+http://www.javaworld.com/javaworld/jw-03-2002/jw-0301-dao.html
+http://www.javaworld.com/javaworld/jw-03-2005/jw-0314-scripting_p.html
+http://www.javaworld.com/javaworld/jw-04-2002/j1-02-bestworst.html
+http://www.javaworld.com/javaworld/jw-05-1999/jw-05-idgns-suninterview.html
+http://www.javaworld.com/javaworld/jw-05-2001/jw-0511-iw-webgain.html
+http://www.javaworld.com/javaworld/jw-08-1998/jw-08-techniques.html
+http://www.javaworld.com/javaworld/jw-10-2001/jw-1012-deadlock.html
+http://www.javaworld.com/javaworld/jw-11-1997/jw-11-indepth.html
+http://www.javaworld.com/javaworld/jw-12-2000/jw-1201-weblogic.html
+http://www.jayallen.org/comment_spam/2004/03/movable_type_30_and_mtblacklist
+http://www.jayallen.org/stories/an_unexpected_end
+http://www.jayallen.org/stories/procrastinators_unite_soonish
+http://www.jaybsays.com/
+http://www.jaycaruso.com/index.php?p=837
+http://www.jaydavidson.com/Teaching/TYCWell/tycw.htm
+http://www.jaynadavis.com/main.html
+http://www.jayseverin.org/_wsn/page3.html
+http://www.jayski.com/pages/tracks/rockingham.htm
+http://www.jayski.com/pages/tracks/sched2005.htm
+http://www.jayyousonline.org/englishweb/jayyous_town.htm
+http://www.jazma.com/archive.html
+http://www.jazma.com/forum.html
+http://www.jazzbreak.com/interview.php?jparm=ID_1821,lg_1,dossier_437
+http://www.jazzfiddlewizard.com/Seifert.htm
+http://www.jazzinamerica.org/student.asp?LPOrder=4
+http://www.jazzlandrec.com/bugge_bio.html
+http://www.jazzstandard.net/red/secondary/jazzCalendar.html
+http://www.jazztimes.com/columns_and_features/final_chorus/index.cfm?id=16
+http://www.jazztimes.com/columns_and_features/final_chorus/index.cfm?id=35
+http://www.jazztimes.com/columns_and_features/final_chorus/index.cfm?id=48
+http://www.jazztrumpetsolos.com/Lew_Soloff_Biography.asp
+http://www.jazzweekly.com/interviews/bradford.htm
+http://www.jb.man.ac.uk/news/connected/
+http://www.jb.man.ac.uk/public/story/tracking/
+http://www.jbc.org/cgi/content/full/278/22/20171
+http://www.jbc.org/cgi/content/full/279/50/52168
+http://www.jbhe.com/news_views/45_wait_list.html
+http://www.jbidirect.co.uk/intschools/private_med_ins.html
+http://www.jbonline.com.au/accommodation.html
+http://www.jboss.org/?module=bb&op=viewtopic&t=57357
+http://www.jbox.com/SEARCHES/super_mario_toys/
+http://www.jbpub.com/catalog/0763728462/
+http://www.jbsmusic.co.uk/
+http://www.jbutler.org.uk/e2e/ssw/w10/index.shtml
+http://www.jbwb.co.uk/pfguidelines.htm
+http://www.jc-solarhomes.com/five.htm
+http://www.jc-solarhomes.com/greenhouse_effect.htm
+http://www.jc-solarhomes.com/solar_heating.htm
+http://www.jcaa.org/JCNL9901/9901HMSR.htm
+http://www.jcaho.org/about+us/news+letters/sentinel+event+alert/sea_23.htm
+http://www.jcaho.org/general+public/patient+safety/
+http://www.jcb.org/cgi/content/full/141/2/483
+http://www.jcb.org/cgi/content/full/144/5/963
+http://www.jcb.org/cgi/content/full/168/2/201
+http://www.jccu.coop/English_here/news/new_040618_02.htm
+http://www.jceps.com/index.php?pageID=article&articleID=33
+http://www.jcim.net/Copyright/raj.htm
+http://www.jcl.healthinkonline.com/modules/SelfCareWellness/wellAdvised.asp?artID=621&catID=2&catname=Serious+Conditions
+http://www.jcm-europe.com/
+http://www.jcna.com/library/concours/index.php
+http://www.jcnm.ca/Jchist.htm
+http://www.jco.org/cgi/content/full/21/15/3000
+http://www.jcp.org/en/press/news/licensing_update
+http://www.jcpa.org/art/knesset4.htm
+http://www.jcpa.org/brief/brief4-4.htm
+http://www.jcpa.org/phas/phas-25.htm
+http://www.jcpr.org/wp/WPprofile.cfm?ID=322
+http://www.jcpr.org/wp/WPprofile.cfm?ID=69
+http://www.jcrelations.net/en/?id=745
+http://www.jcsm.org/StudyCenter/kjvstrongs/STRHEB47.htm
+http://www.jcsm.org/biblelessons/listening.htm
+http://www.jctr.org.zm/bnb/bnbasketov.htm
+http://www.jctr.org.zm/press_releases.htm
+http://www.jcu.edu.au/school/ns/WHAT/postgrad/mnstudies.htm
+http://www.jcu.edu.au/school/phtm/PHTM/frogs/gjwork.htm
+http://www.jdate.com/default.asp?p=13000&CategoryID=4
+http://www.jdbsound.com/art/art510.html
+http://www.jdfrecreation.com/fitness/
+http://www.jdrf.org.au/about_jdrf/corppartner.html
+http://www.jdrf.org/legislative/moor.php
+http://www.jeanniebaker.com/focus_web/magic_of_the_daintree.htm
+http://www.jeb.co.uk/studentquotes.asp
+http://www.jedburgh.org.uk/towntrail.asp
+http://www.jeddy.org/aybs/char/wilberforce/
+http://www.jeffcomo.org/main/jobs.html
+http://www.jefferson.edu/jchp/pt/index.cfm
+http://www.jefferson.k12.ky.us/Schools/Elementary/GoldsmithLane/policies.html
+http://www.jeffersonhospital.org/kit/cancercare/article10189.html
+http://www.jeffersonhospital.org/news/2004/article9928.html
+http://www.jefferycotton.net/info.asp?pgs=rant_revenge
+http://www.jeffgreefwoodworking.com/vitrine/vitrine.html
+http://www.jefflang.com.au/whatever.htm
+http://www.jefflindsay.com/LDSFAQ/FQ_prophets.shtml
+http://www.jefflindsay.com/textbooks.html
+http://www.jeffmajor.com/film/essays/indemnity/
+http://www.jeffooi.com/MT3/mt-comments.cgi?entry_id=1672
+http://www.jeffooi.com/MT3/mt-comments.cgi?entry_id=2051
+http://www.jeffooi.com/MT3/mt-comments.cgi?entry_id=2575
+http://www.jeffooi.com/MT3/mt-comments.cgi?entry_id=2611
+http://www.jeffooi.com/archives/2004/02/survey_majority.php
+http://www.jeffooi.com/archives/2004/04/medical_insuran.php
+http://www.jeffooi.com/archives/2004/09/tai_ee_long_co.php
+http://www.jeffreymasson.com/sharing.html
+http://www.jems.com/firerescue/ffnews/fd2000/1index.html
+http://www.jems.com/paramedics/ch4.html
+http://www.jenandtonic.ca/archives/000637.html
+http://www.jenkins-ip.com/mym/autumn2004/item_16.htm
+http://www.jenkins-ip.com/mym/spring2001/snippets.htm
+http://www.jenkins-ip.com/mym/spring2004/item_04.htm
+http://www.jenkinspublishing.com/balance.html
+http://www.jenners.com/about/productmix1.asp
+http://www.jennymiller.com/
+http://www.jenolancaves.com/wedding/weddings.htm
+http://www.jensonusa.com/helpdesk/shopping.aspx
+http://www.jerberyd.com/climbing/stories/k2/
+http://www.jeremysiegel.com/view_article.asp?p=376
+http://www.jeremysilman.com/chess_thinking_cap/040403_thinking_cap.html
+http://www.jeremysilman.com/chess_thinking_cap/latest_thinking_cap.html
+http://www.jeremysilman.com/movies_tv_js/overlooked_sci_fi_films.html
+http://www.jerf.org/iri/
+http://www.jerf.org/resources/xblinjs/widgetAdvancedUses.html
+http://www.jerf.org/writings/communicationEthics/node5.html
+http://www.jericsmith.com/Other/prez.htm
+http://www.jerryfowlerperformancehorses.com/question_a4.htm
+http://www.jerrypournelle.com/archives2/archives2view/view167.html
+http://www.jerseygardens.com/go/officialrules.cfm
+http://www.jerseygardens.com/go/ssRules.cfm
+http://www.jerusalemites.org/news/english/2003/dec2003/1.htm
+http://www.jerusalemites.org/news/english/march2005/16.htm
+http://www.jerusalemletter.co.il/archives/Dec30,1998/kibbutz.htm
+http://www.jesperjuul.net/text/timetoplay/
+http://www.jesref.org/dispatch/disp.php?lang=en&dispId=enlatest
+http://www.jesref.org/dispatch/disp.php?lang=es&dispId=enlatest
+http://www.jesref.org/dispatch/disp.php?lang=es&dispId=enlatest&langBody=en
+http://www.jesref.org/dispatch/disp.php?lang=fr&dispId=enlatest
+http://www.jesref.org/dispatch/disp.php?lang=it&dispId=enlatest
+http://www.jesref.org/reports/report.php?lang=en&repId=bi050415en
+http://www.jesref.org/reports/report.php?lang=fr&repId=bi050415en
+http://www.jess3.com/2004_05_09_archiveblogger.html
+http://www.jessanderson.org/doc/telling_guy.html
+http://www.jesseshunting.com/reviewpost/showproduct.php?product=575&sort=7&cat=272&page=1
+http://www.jessewarden.com/archives/design/
+http://www.jessicaswell.com/Life-Page01.htm
+http://www.jesuit.org/sections/sub.asp?SECTION_ID=189&SUBSECTION_ID=460&PARENT_ID=235
+http://www.jesuit.org/sections/sub.asp?SECTION_ID=189&SUBSECTION_ID=472&PARENT_ID=
+http://www.jesuits-chi.org/social/lima.htm
+http://www.jesus-is-lord.com/islam.htm
+http://www.jesus-is-lord.com/kjvdefns.htm
+http://www.jesus-is-lord.com/nivmusli.htm
+http://www.jesus-is-lord.com/sexabuse.htm
+http://www.jesus-is-lord.com/steve.htm
+http://www.jesus-is-lord.com/transtoc.htm
+http://www.jesus-is-savior.com/Evils%20in%20Government/Federal%20Reserve%20Scam/united_states_is_in_deep_doodoo.htm
+http://www.jesusiscoming.com/Scripture.htm
+http://www.jesuswalk.com/lessons/18_24-34.htm
+http://www.jet.efda.org/pages/faqs/faq2.html
+http://www.jetcareers.com/fa.htm
+http://www.jetpress.org/volume13/bainbridge.html
+http://www.jetro.go.jp/en/market/trend/smaller/docs/2004_06_ryukyubio.html
+http://www.jetsettersmagazine.com/archive/jetezine/globe02/Carib02/prico/wildlife/salt1.html
+http://www.jetwolf.com/buffy/dolphins/slice02.php
+http://www.jetwolf.com/hof/osb/fotw4.html
+http://www.jewelers.org:8080/ja_consumer/projeweler1.html
+http://www.jewellerymoscow.com/pressrel.en.html
+http://www.jewfaq.org/gentiles.htm
+http://www.jewfaq.org/sex.htm
+http://www.jewish-history.com/Occident/volume2/april1844/jethro.html
+http://www.jewish-history.com/Occident/volume3/jun1845/questions.html
+http://www.jewish-languages.org/ml/200204.html
+http://www.jewish.com/modules.php?name=News&file=article&sid=1576
+http://www.jewishamerica.com/ja/features/CrashCourse.cfm
+http://www.jewishencyclopedia.com/view.jsp?artid=1120&letter=A
+http://www.jewishencyclopedia.com/view.jsp?artid=142&letter=O
+http://www.jewishencyclopedia.com/view.jsp?artid=204&letter=S
+http://www.jewishencyclopedia.com/view.jsp?artid=215&letter=M
+http://www.jewishencyclopedia.com/view.jsp?artid=365&letter=H
+http://www.jewishgen.org/Belarus/intro_1897_russian_census.htm
+http://www.jewishgen.org/SAfrica/alexander-immig.htm
+http://www.jewishgen.org/databases/GivenNames/dbdespop.htm
+http://www.jewishjournal.com/home/searchview.php?id=6512
+http://www.jewishpeacefellowship.org/jpfpublications.htm
+http://www.jewishreunion.co.uk/
+http://www.jewishsoftware.com/default.asp?page=content&contentvalue=6&tab=cs
+http://www.jewishtelegraph.com/roots_20.html
+http://www.jewishtelegraph.com/roots_21.html
+http://www.jewishvirtuallibrary.org/jsource/History/crane.html
+http://www.jewishvirtuallibrary.org/jsource/Judaism/marriage.html
+http://www.jewishvirtuallibrary.org/jsource/Peace/beginreplyCD.html
+http://www.jewishvirtuallibrary.org/jsource/Peace/ispaecon.html
+http://www.jewishvirtuallibrary.org/jsource/Peace/paeconup.html
+http://www.jewishvirtuallibrary.org/jsource/Politics/labor.html
+http://www.jewishvirtuallibrary.org/jsource/US-Israel/phantom.html
+http://www.jewishvirtuallibrary.org/jsource/arabs/modjor.html
+http://www.jewishvirtuallibrary.org/jsource/biography/RRubinstein.html
+http://www.jewishvirtuallibrary.org/jsource/biography/Rand.html
+http://www.jewishvirtuallibrary.org/jsource/vie/Jerusalem3.html
+http://www.jewsforjudaism.org/web/handbook/s_personal.html
+http://www.jfcom.mil/newslink/storyarchive/2001/pa031701.htm
+http://www.jfcom.mil/newslink/storyarchive/2002/no081402a.htm
+http://www.jfcom.mil/newslink/storyarchive/2004/sp021004.htm
+http://www.jfcspb.org/index.php?src=news&prid=700
+http://www.jfcspb.org/index.php?src=news&prid=700&category=FUND_RAISING
+http://www.jfind.com/articles/glass070900.shtml
+http://www.jfk.edu.mx/08/03.htm
+http://www.jfk.org/Research/Cuba/Missile_Crisis.htm
+http://www.jfklancer.com/jfk3.html
+http://www.jfklibrary.org/fa_rpcv_oh.html
+http://www.jfklibrary.org/forum_clinton2003.html
+http://www.jfklibrary.org/j012061.htm
+http://www.jfklibrary.org/j061063.htm
+http://www.jfklibrary.org/store_page22.html
+http://www.jfkmontreal.com/media_coup.htm
+http://www.jfo.org.uk/health/diagnosis/legalwork.htm
+http://www.jforum.net/posts/list/80.page
+http://www.jgarden.org/gardens.asp?ID=347
+http://www.jgi.doe.gov/News/news_12_12_02.html
+http://www.jguru.com/faq/view.jsp?EID=568075
+http://www.jharp.com/testimonials.htm
+http://www.jhbmc.jhu.edu/studies/
+http://www.jhpatel.com/s_chandrashekar.html
+http://www.jhu.dailyjolt.com/food/
+http://www.jhu.edu/hurj/focus-lhee-etal.html
+http://www.jhu.edu/~ccenter/training.html
+http://www.jhu.edu/~istr/links/
+http://www.jhu.edu/~jhumag/0403web/cold.html
+http://www.jhu.edu/~jhumag/994web/cultss.html
+http://www.jhu.edu/~phil/academics/appendixA.html
+http://www.jhu.edu/~president/inaug.html
+http://www.jhubc.it/forum/topic.asp?TOPIC_ID=19
+http://www.jhuccp.org/africa/regional/cup.shtml
+http://www.jhuccp.org/pubs/ci/7/index.shtml
+http://www.jhuger.com/goodnews.php
+http://www.jhunewsletter.com/vnews/display.v/ART/2005/05/09/427e67759d121
+http://www.jiad.org/vol5/no1/hernandez/
+http://www.jian.com/resources/marketing/articles.html?id=1079733868
+http://www.jianda.net/
+http://www.jianda.net/fresh/000280.htm
+http://www.jias.org/newsletter.leaving.html
+http://www.jic.bbsrc.ac.uk/corporate/About_JIC/comm_partnership.html
+http://www.jic.bbsrc.ac.uk/exhibitions/bio-future/
+http://www.jic.bbsrc.ac.uk/exhibitions/bio-future/sr_healtheat.htm
+http://www.jidaw.com/itsolutions/vsatoutline.html
+http://www.jigsawlounge.co.uk/film/jeepers2breckinterview.html
+http://www.jihadwatch.org/archives/001681.php
+http://www.jihadwatch.org/archives/002917.php
+http://www.jihadwatch.org/archives/003944.php
+http://www.jihadwatch.org/archives/004407.php
+http://www.jihadwatch.org/archives/004745.php
+http://www.jihadwatch.org/archives/004761.php
+http://www.jihadwatch.org/archives/004811.php
+http://www.jihadwatch.org/archives/004957.php
+http://www.jihadwatch.org/cgi-bin/mt-comments.cgi?entry_id=2074
+http://www.jihadwatch.org/dhimmiwatch/archives/002074.php
+http://www.jihadwatch.org/dhimmiwatch/archives/004977.php
+http://www.jil.go.jp/bulletin/year/1995/vol34-06/05.htm
+http://www.jil.go.jp/bulletin/year/1999/vol38-12/06.htm
+http://www.jil.go.jp/bulletin/year/2000/vol39-09/07.htm
+http://www.jil.go.jp/bulletin/year/2001/vol40-09/06.htm
+http://www.jillbliss.com/
+http://www.jillevans.net/press021016.html
+http://www.jillpurce.com/articles_beyondwords.htm
+http://www.jimandellen.org/trollope/AmericanSena.show.html
+http://www.jimgilliam.com/2004/09/john_kerrys_biggest_mistake_he_believed_george_bush.php
+http://www.jimhopper.com/hope/
+http://www.jimlangley.net/ride/bikefriday.html
+http://www.jimloy.com/fiction/thin.htm
+http://www.jimmillergolf.com/golfsinception.html
+http://www.jimmyakin.org/2005/05/newsweek_lied_p.html
+http://www.jimmycarterlibrary.org/documents/campdavid/accords.phtml
+http://www.jimmyfund.org/eve/event/scooper_history.asp
+http://www.jimnovo.com/
+http://www.jimpinto.com/enews/feb6-2001.html
+http://www.jimpinto.com/writings/globalcompetition.html
+http://www.jimpoz.com/quotes/category.asp?categoryid=17
+http://www.jims.net/appendix.asp
+http://www.jimsmobile.com/carrying_cases_data.htm
+http://www.jimsteinman.com/ohyeah.htm
+http://www.jimwegryn.com/Names/CatsDogs.htm
+http://www.jinglebiz.com/say.htm
+http://www.jinsa.org/articles/view.html?documentid=505
+http://www.jirehpublishers.com/Awakenings.Chapter1.htm
+http://www.jis.gov.jm/minspeeches/html/20041021t230000-0500_4015_jis_national_broadcast_by_dr__the_hon__peter_phillips__minister_of_national_security_on_october_21__2004.asp
+http://www.jisan.org/studentinformation/studentsbenefit/student_benefits.htm
+http://www.jisc.ac.uk/index.cfm?name=bringing_to_life_census_news_170205
+http://www.jisc.ac.uk/index.cfm?name=event_townmtg2_0202
+http://www.jisc.ac.uk/index.cfm?name=event_townmtg_0502
+http://www.jisc.ac.uk/printer_friendly.cfm?name=jcsr_1102
+http://www.jiscinfonet.ac.uk/Events
+http://www.jiscinfonet.ac.uk/Events/index_html/
+http://www.jiscinfonet.ac.uk/InfoKits/edrm/stage-9/printable_version/html2pdf
+http://www.jiscinfonet.ac.uk/InfoKits/edrm/stage-9/step-1
+http://www.jiscinfonet.ac.uk/InfoKits/effective-use-of-VLEs/managing-for-sustainability/man-sust-cultural-practices
+http://www.jito.org.nz/glass_gateway/school.htm
+http://www.jivemagazine.com/column.php?pid=2653
+http://www.jiverson.com/FAQS/bus_plan.html
+http://www.jjbradshaw.com/Insomnia_Solutions.htm
+http://www.jje.info/lostlives/exhib/potp/rollofhonour3.html
+http://www.jjohnnypress.com/books/lets_talk.html
+http://www.jkevinmorton.com/step_2/
+http://www.jkokuryo.com/papers/1997002/c-c.htm
+http://www.jkrishnamurti.org/showcollectedworks.asp?cwid=93
+http://www.jkup.net/graphics.html
+http://www.jlist.com/ANIME/ANHF_1.html
+http://www.jlist.com/SEARCH/toilet%20paper/1/
+http://www.jlpierson.com/Litig.htm
+http://www.jlsloan.com/ownerman.htm
+http://www.jm-hohenems.at/index.php?id=2020&lang=1
+http://www.jmartinmft.com/es-again.html
+http://www.jmcc.org/research/special/rabin.html
+http://www.jmfiberoptics.com/training_at_jmfo/
+http://www.jmir.org/2001/4/e31/
+http://www.jmir.org/2005/2/e15/
+http://www.jmmdhs.com/index.php/news_article/newsID/29.html
+http://www.jmt.org/news/2003/oct03.html
+http://www.jmu.edu/madison/center/main_pages/teacher/curriculum/chap14.htm
+http://www.jmu.edu/madison/center/main_pages/teacher/curriculum/chap16.htm
+http://www.jmu.edu/madison/center/main_pages/teacher/curriculum/chap4.htm
+http://www.jmu.edu/madison/gpos225-madison2/madexpcontojeff.htm
+http://www.jmu.edu/montpelier/2003Spring/MoldingAFoundingFather.shtml
+http://www.jmwc.org/jmwc_faq.html
+http://www.jncb.com/corp_info/financials.asp
+http://www.jncb.com/corp_info/financials.asp?30092003
+http://www.jncb.com/corp_info/financials.asp?30092004
+http://www.jncb.com/corp_info/financials.asp?31122003
+http://www.jncc.gov.uk/ProtectedSites/SACselection/habitat.asp?FeatureIntCode=H7120
+http://www.jnd.org/
+http://www.jnd.org/askdon.html
+http://www.jneurosci.org/cgi/content/full/22/19/8661
+http://www.jnewswire.com/library/article.php?articleid=337
+http://www.jngm.net/allthings/
+http://www.jniwrapper.com/
+http://www.jnj.com/news/jnj_news/20041213_103803.htm
+http://www.joancarrisbooks.com/ideas.html
+http://www.joancrawfordbest.com/b.htm
+http://www.joanelloyd.com/fbthrust.htm
+http://www.joannabriggs.edu.au/best_practice/bp12.php
+http://www.joannejacobs.com/mtarchives/015322.html
+http://www.joanryan.labour.co.uk/ViewPage.cfm?Action=LargeText&Page=3649
+http://www.joanryan.labour.co.uk/ViewPage.cfm?Page=3649
+http://www.job-descriptions.org/building-pest-control-service-jobs.html
+http://www.job-hunt.org/article_emailedcoverletters.shtml
+http://www.job-hunt.org/jobsearchstandingout.shtml
+http://www.job-hunt.org/onlinejobsearchguide/issue_03_28_02.shtml
+http://www.job-interview.net/duringtheinterview.htm
+http://www.jobbankusa.com/ohb/ohb194.html
+http://www.jobcentreplus.gov.uk/cms.asp?Page=/Home/Customers/JobHuntingHelp/WritingLetters
+http://www.jobcentreplus.gov.uk/cms.asp?Page=/Home/Customers/WorkingAgeBenefits/493
+http://www.jobcentreplus.gov.uk/cms.asp?Page=/Home/Customers/WorkingAgeBenefits/494
+http://www.jobcentreplus.gov.uk/cms.asp?Page=/Home/Customers/WorkingAgeBenefits/495
+http://www.jobcentreplus.gov.uk/cms.asp?Page=/Home/Customers/WorkingAgeBenefits/497
+http://www.jobcentreplus.gov.uk/cms.asp?Page=/Home/Partners/AllowancesandBenefits/494
+http://www.jobcentreplus.gov.uk/cms.asp?TextOnly=True&Page=/Home/Customers/WorkingAgeBenefits/494
+http://www.jobcyclone.com/articles/haretortoise.php
+http://www.jobcymru.com/en/localecon_canolbarthcymru.php
+http://www.jobdoggy.com/extra1.php
+http://www.jobfitmatters.com/ourpractice/searches/current/nonprofit/p_wvi_dirisp.html
+http://www.jobfizz.com/skills/jobs/Perl_jobs.html
+http://www.jobgusher.com/recfeatures.asp
+http://www.jobjobbed.com/
+http://www.jobjournal.com/article_full_text.asp?artid=638
+http://www.jobplan.com/
+http://www.jobprocentral.com/
+http://www.jobprofiles.org/artfilm2.htm
+http://www.jobprofiles.org/artgym2.htm
+http://www.jobprofiles.org/artlivetheatre.htm
+http://www.jobs-from-home.com/assemblywork.htm
+http://www.jobs.telegraph.co.uk/item.aspx?id=146923
+http://www.jobs.uk.com/
+http://www.jobs1.co.uk/directory/recruitment_graduate.html
+http://www.jobsearch.com/Wyoming-GreenRiver.htm
+http://www.jobseekersadvice.com/employment_issues/articles/leaving_your_job.htm
+http://www.jobserve.com/RecruiterJobListing.aspx?cid=6190
+http://www.jobshoptechnology.com/features/0505/engineering_manufacturing/
+http://www.jobsinireland.ie/recruiter.htm
+http://www.jobsinjapan.com/book/teaching.html
+http://www.jobsinjapan.com/classifieds/business.html
+http://www.jobsinjapan.com/personals/msw.html
+http://www.jobsinnh.com/misc/page.aspx?pagenum=195
+http://www.jobsinsports.com/
+http://www.jobsite.co.uk/privacy/
+http://www.jobsletter.org.nz/jbl17700.htm
+http://www.joburg.org.za/july_2002/brixton2.stm
+http://www.jobwatch.org/national.html
+http://www.jobweb.com/resources/library/Career_Pursuit/Career_Tips_for_Road_232_01.htm
+http://www.jockeyslut.info/staying_in/film/index.php
+http://www.jockmurphy.com/blojsom/blog/travelblog/?month=12&day=8&year=2004
+http://www.joe-ks.com/animals.htm
+http://www.joe-ks.com/palindromes.htm
+http://www.joe.org/joe/1985spring/a4.html
+http://www.joe.org/joe/1995february/a4.html
+http://www.joe.org/joe/1996december/rb2.html
+http://www.joe.org/joe/1999october/a1.html
+http://www.joe.org/joe/2001february/rb1.html
+http://www.joebobbriggs.com/drivein/1990/jailbait.htm
+http://www.joebobbriggs.com/jbamerica/1996/jba960310.html
+http://www.joebolin.net/FSL5CS/Custom/TOCBusiness%20Entity.asp
+http://www.joeclark.org/access/crtc/crtctranscript.html
+http://www.joeclark.org/access/crtc/ctv/crtctranscript.html
+http://www.joeclark.org/access/description/thearrow.html
+http://www.joeclark.org/access/dvd/guidelines/WGBH/
+http://www.joeellers.com/ezine4.htm
+http://www.joeha.com/whiteboard/wbnnov62000.htm
+http://www.joehilldispatch.org/walmartbeat/archives/cat_solutions.php
+http://www.joejennings.com/Bush1.htm
+http://www.joelarose.com/
+http://www.joelfuhrmann.com/blog/archives/cat_culture.html
+http://www.joelkotkin.com/Commentary/LAT%20Home%20Builders%20Looking%20Inward.htm
+http://www.joelonsoftware.com/articles/CollegeAdvice.html
+http://www.joelonsoftware.com/printerFriendly/articles/Wrong.html
+http://www.joelonsoftware.com/printerFriendly/articles/fog0000000051.html
+http://www.joelonsoftware.com/uibook/chapters/fog0000000059.html
+http://www.joepixel.com/blog.php
+http://www.joesmithjazz.com/happy.html
+http://www.joewoodworker.com/catalog/reviews.php?page=5
+http://www.jofreeman.com/sixtiesprotest/FSMMiss.htm
+http://www.joggingstroller.com/faq/general.htm
+http://www.johannesburgbar.co.za/pupillage.html
+http://www.john-daly.com/deadisle/
+http://www.john-daly.com/deadisle/part2.htm
+http://www.john-ross.net/doormat.htm
+http://www.johnankerberg.com/Articles/ATRJ/proof/ATRJ1103-1.htm
+http://www.johnappt.com/experience.htm
+http://www.johnbowman.btinternet.co.uk/scandinavia_6.htm
+http://www.johnclaytonbooks.com/blogger.htm
+http://www.johnclaytonbooks.com/chap1.htm
+http://www.johncullinan.net/2004/01/ummmmmwhat.html
+http://www.johndclare.net/RoadtoWWII4.htm
+http://www.johnduncan.org/bd-essays.html
+http://www.johnedward.net/index2.htm
+http://www.johnfishbein.com/FeelBetterFast/Fishbein/prin1.html
+http://www.johnfishbein.com/princ1.htm
+http://www.johnforester.com/Articles/Social/psychnat.htm
+http://www.johngrooms.org.uk/luckydip/code/lucky_dip.html
+http://www.johnhagel.com/blog20030520.html
+http://www.johnharris.me.uk/arch/comment/record.htm
+http://www.johnharris.me.uk/arch/review/courtney.htm
+http://www.johnhritter.com/
+http://www.johnkay.com/in_action/133
+http://www.johnkerry.com/pressroom/news/news_2004_0915a.html
+http://www.johnkharms.com/whysex.htm
+http://www.johnlescroart.com/holmesex.html
+http://www.johnlewis.com/Shops/DSHistory.aspx?StoreID=11
+http://www.johnlewis.com/Shops/DSLocalEvents.aspx?StoreID=23
+http://www.johnmartin.com/earthquakes/eqpapers/00000049.htm
+http://www.johnmartin.com/earthquakes/eqsafs/safs_970.htm
+http://www.johnmccrory.com/wrote.asp?this=57
+http://www.johnniemoore.com/000309.php
+http://www.johnniemoore.com/blog/archives/000554.php
+http://www.johnnyspencer.info/
+http://www.johnofgod.com/article.htm
+http://www.johnsgate.com/things_to_do.html
+http://www.johnsofromford.co.uk/helmets.htm
+http://www.johnson-county.com/assessor/index.shtml
+http://www.johnsonhealthnetwork.com/jhnvolunteer.htm
+http://www.johnsonshotrodshop.com/bikes.htm
+http://www.johnstonsarchive.net/nuclear/nuclearwar1.html
+http://www.jointheteam.com/press/press_release.asp?id=24
+http://www.jointogether.org/gv/news/features/reader/0,2061,564248,00.html
+http://www.jointogether.org/sa/resources/facts/reader/0,1896,559280,00.html
+http://www.jokes2go.com/00/12/j25.html
+http://www.joma.org/mathDL/4/?pa=content&sa=viewDocument&nodeId=493&bodyId=695
+http://www.jonathanames.com/james/james.html
+http://www.jonathanedwards.com/text/Spider.htm
+http://www.jonathanedwards.com/text/osin/OS-Part%203-1.htm
+http://www.jonathanvangieson.com/archives/2002_12.shtml
+http://www.jonatmat.zen.co.uk/jonatmat/Nutrition/Fear.htm
+http://www.jonentine.com/reviews/UPI_commentary.htm
+http://www.joneslanglasalle.com/shareholders/annual_review/1998/report.html
+http://www.jonesstudioinc.com/index.swf
+http://www.jongailmor.com/passingthru.htm
+http://www.jongailmor.com/smile.htm
+http://www.jonhorne.co.uk/jptapes/jptapes.html
+http://www.joodsmaassluis.com/louise.htm
+http://www.joot.com/dave/writings/articles/hw-sw.shtml
+http://www.jordan.dpsnc.net/fc/may1997/femsmokers.html
+http://www.jordan.palo-alto.ca.us/staff/jforte/public/Voice%20Lesson/voicelesson2.html
+http://www.jordanembassyus.org/06282001002.htm
+http://www.jordanembassyus.org/cbs_09132001.htm
+http://www.jordanembassyus.org/new/commercial/qiz.shtml
+http://www.jordanpublishing.co.uk/tandc.aspx
+http://www.jordantimes.com/fri/weekend/weekend3.htm
+http://www.joric.com/Conspiracy/Bussche-Attempt.htm
+http://www.josephdobrian.com/occupation/parliament.html
+http://www.josephholmes.com/news.html
+http://www.joseyvogels.com/columnweek1.html
+http://www.joshhunt.com/goodart.html
+http://www.joshhunt.com/tension.html
+http://www.joshshear.com/blogjosh/
+http://www.joshuacitrus.com/products.asp?Type=Savers%2BChoice%2BFruit%2BClub&Display_Type=detail
+http://www.joslin.harvard.edu/news/prevent_type2.shtml
+http://www.jour.sc.edu/news/isite/wblock.html
+http://www.jour.unr.edu/zephyr/04_spring_pages/story5/rejfek_sill.html
+http://www.journal.forces.gc.ca/engraph/Vol4/no3/book6_e.asp
+http://www.journal.naeyc.org/btj/200401/maxwell.asp
+http://www.journal.naeyc.org/btj/200409/haddal.asp
+http://www.journalclub.org/2004/11/04/n15
+http://www.journalism.ku.edu/school/waw/writings/waw/newspaper/editorials/whatsthematter.html
+http://www.journalism.org/resources/research/reports/war/postwar/lynch.asp
+http://www.journalism.org/resources/tools/ethics/plagiarism/excerpts.asp?from=print
+http://www.journalism.wisc.edu/j417/fall04/Business/Articles/trek1.htm
+http://www.journalnow.com/servlet/Satellite?pagename=WSJ%2FMGArticle%2FWSJ_BasicArticle&c=MGArticle&cid=1031770150383
+http://www.journalnow.com/servlet/Satellite?pagename=WSJ%2FMGArticle%2FWSJ_BasicArticle&c=MGArticle&cid=1031783308423
+http://www.journalnow.com/servlet/Satellite?pagename=WSJ%2FMGArticle%2FWSJ_BasicArticle&c=MGArticle&cid=1031783499888
+http://www.journalnow.com/servlet/Satellite?pagename=WSJ/MGArticle/WSJ_BasicArticle&c=MGArticle&cid=1031783308423
+http://www.journalofmas.com/contributors.asp
+http://www.journalofwoundcare.com/nav?page=jowc.browselist
+http://www.journals.apa.org/prevention/volume2/pre0020004c.html
+http://www.journals.apa.org/prevention/volume5/pre0050043c.html
+http://www.journals.uchicago.edu/AJ/journal/issues/v125n4/202484/202484.text.html
+http://www.journalstar.com/articles/2004/11/14/election/doc41883266530e3820462872.txt
+http://www.journeyofhearts.org/jofh/about
+http://www.journeyofhearts.org/jofh/butterfly/blaze
+http://www.journeywoman.com/lovestories/twowomen.html
+http://www.journeywoman.com/msbiz/solodining.html
+http://www.joycejamestours.com/joycejames/scottish_journey.htm
+http://www.joycenter.on.ca/books6.htm
+http://www.joycerupp.com/cupofourlife.html
+http://www.joycevalenza.com/questions.html
+http://www.joyjobs.com/
+http://www.joystiq.com/entry/1234000520043660/
+http://www.joystiq.com/entry/1234000617043196/
+http://www.jpgn.org/pt/re/jpgn/fulltext.00005176-200211000-00014.htm
+http://www.jpox.org/servlet/forum/viewthread?thread=1454&lastpage=yes
+http://www.jpri.org/publications/critiques/critique_IV_6.html
+http://www.jpri.org/publications/critiques/critique_X_Special.html
+http://www.jpri.org/publications/occasionalpapers/op19.html
+http://www.jpri.org/publications/occasionalpapers/op29.html
+http://www.jpri.org/publications/workingpapers/wp102.html
+http://www.jpri.org/publications/workingpapers/wp106.html
+http://www.jpri.org/publications/workingpapers/wp24.html
+http://www.jpri.org/publications/workingpapers/wp40.html
+http://www.jprose.com/intro.htm
+http://www.jr.com/JRProductPage.process?Product=3736968
+http://www.jr.com/JRProductPage.process?Product=3819115
+http://www.jr.com/JRProductPage.process?Product=3819118
+http://www.jr.com/JRProductPage.process?Product=3819119
+http://www.jr.com/JRProductPage.process?Product=3819120
+http://www.jr.com/JRProductPage.process?Product=3819121
+http://www.jr.com/JRProductPage.process?Product=3819125
+http://www.jr.com/JRProductPage.process?Product=3863364
+http://www.jr.com/JRProductPage.process?Product=3992940
+http://www.jr.com/JRSectionView.process?N=11266+411269&Ne=400000
+http://www.jr.com/JRSectionView.process?N=19648+4294933172&Ne=500
+http://www.jr.com/JRSectionView.process?Ns=ReleaseDate%7C1&N=19648+4294933172&Ne=500
+http://www.jr.com/JRSectionView.process?Section_Path=/Home_Products/Kitchen/Mixers_and_Processors/
+http://www.jr.com/templates/guides/dental+care.tem
+http://www.jr.com/templates/information/general_shopping.tem
+http://www.jr2.ox.ac.uk/bandolier/ImpAct/imp03/i3-4.html
+http://www.jr2.ox.ac.uk/bandolier/ImpAct/imp04/i4-02.html
+http://www.jr2.ox.ac.uk/bandolier/ImpAct/imp12/i12-5.html
+http://www.jr2.ox.ac.uk/bandolier/band105/b105-1.html
+http://www.jr2.ox.ac.uk/bandolier/band28/b28-5.html
+http://www.jr2.ox.ac.uk/bandolier/bandopubs/WART.html
+http://www.jr2.ox.ac.uk/bandolier/booth/diagnos/Diagessy.html
+http://www.jr2.ox.ac.uk/bandolier/booth/hliving/loswt.html
+http://www.jr2.ox.ac.uk/bandolier/booth/mgmt/patsur2.html
+http://www.jref.com/dir/Business_&_Economy/Economic_Institutions/index.shtml
+http://www.jref.com/dir/Business_&_Economy/Sales_&_Distribution/index.shtml
+http://www.jref.com/dir/Gastronomy/Tea/index.shtml
+http://www.jref.com/dir/Pop_Culture/JPop/
+http://www.jref.com/dir/Pop_Culture/JPop/index.shtml
+http://www.jref.com/dir/Recreation_&_Sports/
+http://www.jref.com/dir/Recreation_&_Sports/index.shtml
+http://www.jref.com/dir/Science_&_Technology/Institutions/index.shtml
+http://www.jref.com/forum/showthread.php?t=9172&page=4
+http://www.jref.com/language/japanese_writing_system_kanji_hiragana_katakana_romaji.shtml
+http://www.jrf.org.uk/knowledge/findings/briefings/LandForHousing.asp
+http://www.jrf.org.uk/knowledge/findings/housing/661.asp
+http://www.jrf.org.uk/knowledge/findings/housing/H188.asp
+http://www.jrf.org.uk/knowledge/findings/housing/HRD58.asp
+http://www.jrf.org.uk/knowledge/findings/housing/h218.asp
+http://www.jrf.org.uk/knowledge/findings/housing/hrd58.asp
+http://www.jrf.org.uk/knowledge/findings/socialcare/349.asp
+http://www.jrf.org.uk/knowledge/findings/socialcare/732.asp
+http://www.jrf.org.uk/knowledge/findings/socialcare/831.asp
+http://www.jrf.org.uk/knowledge/findings/socialcare/SC55.asp
+http://www.jrf.org.uk/knowledge/findings/socialcare/SC90.asp
+http://www.jrf.org.uk/knowledge/findings/socialcare/n62.asp
+http://www.jrf.org.uk/knowledge/findings/socialpolicy/230.asp
+http://www.jrf.org.uk/knowledge/findings/socialpolicy/621.asp
+http://www.jrf.org.uk/knowledge/findings/socialpolicy/n71.asp
+http://www.jrf.org.uk/knowledge/findings/socialpolicy/spr468.asp
+http://www.jrf.org.uk/knowledge/findings/summary/353.asp
+http://www.jrf.org.uk/knowledge/responses/docs/fairaccesstocare.asp
+http://www.jrf.org.uk/knowledge/responses/docs/lowpaycomm.asp
+http://www.jrf.org.uk/knowledge/responses/docs/newtaxcredits.asp
+http://www.jrmooneyham.com/cnspr.html
+http://www.jrn.columbia.edu/studentwork/cns/2002-04-03/67.asp
+http://www.jrn.columbia.edu/studentwork/cns/2002-04-10/349.asp
+http://www.jrn.columbia.edu/studentwork/cns/2003-04-27/246.asp
+http://www.jroller.com/page/raghukodali/20050328
+http://www.jroller.org/page/bhavin
+http://www.jrothman.com/weblog/archive/2003_04_01_htparchive.html
+http://www.jrothman.com/weblog/archive/2004_07_01_mpdarchive.html
+http://www.jrothman.com/weblog/archive/2004_11_01_htparchive.html
+http://www.jrothman.com/weblog/blogger.html
+http://www.jrsa.org/pubs/reports/bja_handbook_4.html
+http://www.jrtr.net/jrtr13/people48.html
+http://www.jrussellshealth.com/alcben_beerwine.html
+http://www.jsastc.org/expeds_canarygold.htm
+http://www.jseb.org/ourguy.html
+http://www.jsmf.org/grants/bmb/essays/2003/salmelin.htm
+http://www.jsonline.com/alive/news/aug00/irradsd02080100.asp
+http://www.jsonline.com/alive/news/jun05/335255.asp
+http://www.jsonline.com/alive/nutrition/jun05/331489.asp
+http://www.jsonline.com/bym/news/dec03/195898.asp
+http://www.jsonline.com/bym/news/may05/328787.asp
+http://www.jsonline.com/columns/fcstoh.asp
+http://www.jsonline.com/lifestyle/advice/feb02/17657.asp
+http://www.jsonline.com/lifestyle/col/lcabby.asp
+http://www.jsonline.com/news/editorials/jun05/335407.asp
+http://www.jsonline.com/news/editorials/sep04/258047.asp
+http://www.jsonline.com/news/metro/feb02/19229.asp
+http://www.jsonline.com/news/metro/feb04/207685.asp
+http://www.jsonline.com/news/metro/jul03/152233.asp
+http://www.jsonline.com/news/metro/jun05/334084.asp
+http://www.jsonline.com/news/metro/jun05/336605.asp
+http://www.jsonline.com/news/metro/mar05/309565.asp
+http://www.jsonline.com/news/metro/oct02/85620.asp
+http://www.jsonline.com/news/nobits/jun05/334805.asp
+http://www.jsonline.com/news/racine/may05/326357.asp
+http://www.jsonline.com/news/state/jan05/291638.asp?format=print
+http://www.jsonline.com/news/state/may03/137990.asp
+http://www.jsonline.com/news/state/sep04/261898.asp
+http://www.jsonline.com/packer/news/dec04/287433.asp
+http://www.jsonline.com/sports/prep/mar03/125600.asp
+http://www.jsonline.com/traffic/
+http://www.jsps.go.jp/j-rftf/saishu/013-2_e.html
+http://www.jstor.org/news/2001.10/publisher.trust.html
+http://www.jsu.edu/depart/edprof/hper/des.html
+http://www.jsurfers.com/surfreports_05_2001.html
+http://www.jsurfers.com/surfreports_07_2002.html
+http://www.jtb.co.jp/sunrisetour/07_condition_2005.html
+http://www.jtgreendds.com/html/procedures.html
+http://www.jtsears.com/fayedisco.htm
+http://www.juaa.or.jp/english/main/hyouka/koumoku/koumoku001.html
+http://www.juancole.com/2003_12_01_juancole_archive.html
+http://www.juancole.com/2004_03_01_juancole_archive.html
+http://www.juancole.com/2004_05_01_juancole_archive.html
+http://www.juancole.com/2004_07_01_juancole_archive.html
+http://www.juancole.com/2004_09_01_juancole_archive.html
+http://www.juancole.com/2004_11_01_juancole_archive.html
+http://www.juancole.com/2005/02/chalabi-interviewed-by-stephanopoulos.html
+http://www.juanperez.com/history/flag.html
+http://www.jubilee-centre.org/kss/
+http://www.jubilee2000uk.org/worldnews/europe/times070903.htm
+http://www.jubileeusa.org/join_us/NC_meeting.html
+http://www.jud.state.ct.us/legalterms.htm
+http://www.judandk.force9.co.uk/workhouse.html
+http://www.judgeslodging.org.uk/education/Pages/stolen_ducks_trial.html
+http://www.judicialwatch.org/5309.shtml
+http://www.judiciary.state.nj.us/higbee/Smith050125.htm
+http://www.judocalendar.com/judo/20050205PAJudoRefereeClinic.htm
+http://www.judoinfo.com/biblio3.htm
+http://www.judonsw.com.au/registeredclubs.htm
+http://www.judson.org/sermons/senecal/03-10-02.htm
+http://www.judyblume.com/articles/places-intro.html
+http://www.judyblume.com/writing-jb.html
+http://www.judycolwell.com/Congrats.html
+http://www.judygruen.com/newsletter126307.htm
+http://www.judymalloy.net/newmedia/irene.html
+http://www.judymori.com/
+http://www.judyreeveswriter.com/paying_attention.htm
+http://www.judyreeveswriter.com/writing_in_community.htm
+http://www.julianhodgebank.com/group/accounts.asp
+http://www.julianlewis.net/speech_detail.php?id=37
+http://www.julianlewis.net/tribute_detail.php?id=3
+http://www.juliemorgenstern.com/task_masters.html
+http://www.julien-k.com/phpBB2/viewtopic.php?p=48223&
+http://www.july27.org/faqs.html
+http://www.jumbojoke.com/000093.html
+http://www.jumbomumbo.com/bluesuedepages/bluesuedechap11.html
+http://www.jumbomumbo.com/bluesuedepages/bluesuedechap13.html
+http://www.jumpforthecause.com/archive/JFTC2000.htm
+http://www.jumptheshark.com/t/totellthetruth.htm
+http://www.jumpybumpy.com/jb/freechory/viewchoreography.asp?freechoryid=259
+http://www.junction.co.uk/HTMLTemplates/our_work/future_junction.htm
+http://www.juneauempire.com/weddings/story/planning/tips.shtml
+http://www.junepekol.com/body.cfm?page=list&commercial=0&EstateType=1&groupid=1
+http://www.juneshelley.com/actress.htm
+http://www.jungtype.com/types/estj.htm
+http://www.juniorabroad.com/
+http://www.junioreurovision.tv/english/971.htm
+http://www.juniorexec.gov.uk/juniorexec/servlet/controller?p_service=Content.show&p_applic=CCC&pContentID=426
+http://www.juniorleagueofmiami.com/journalfall03.html
+http://www.junklight.com/thoughts/
+http://www.junklight.com/weblog/archives/000089.html
+http://www.junkmail.org/resources/questions.html
+http://www.juntosociety.com/dayinhistory/020103.html
+http://www.juntosociety.com/inaugural/bharrison.html
+http://www.juntosociety.com/information/galen/gi_ccm25_072303.htm
+http://www.juntosociety.com/information/galen/gi_ccm3021203.htm
+http://www.jupiterevents.com/sew/fall04/
+http://www.jur.lu.se/Internet/Biblioteket/Examensarbeten.nsf/0/D85109F696820FB7C1256E080071AC82/$File/xsmall.pdf?OpenElement
+http://www.jurispub.com/books.asp?id=20
+http://www.jus.uio.no/lm/cmi.york.antwerp.rules.1994/doc.html
+http://www.jus.uio.no/lm/un.sea.carriage.hamburg.rules.1978/doc
+http://www.jusbiz.org/resources/globalmobile.shtml
+http://www.just-food.com/features_detail.asp?art=856
+http://www.just-food.com/press_releases_detail.asp?art=1077
+http://www.just-for-kids.com/48FGCA.HTM
+http://www.just-for-kids.com/FUNCA.HTM
+http://www.just35.com/Finance/Compensation%20and%20Personal%20Injury%20Claims/
+http://www.justabovesunset.com/id45.html
+http://www.justabovesunset.com/id837.html
+http://www.justagwailo.com/
+http://www.justcolleges.com/grad/index.phtml?inc=grad_peer.htm
+http://www.justforwomen.net/ExerciseWellness/StayingFit/index.jsp
+http://www.justfrancesales.com/luberon.html
+http://www.justfreestuff.com/survey.html
+http://www.justgive.org/ways/50wayschildren.jsp
+http://www.justglassmall.com/directory/directory.html
+http://www.justgrenada.co.uk/info.htm
+http://www.justice.gouv.qc.ca/english/publications/generale/union-civ-a.htm
+http://www.justice.gov.ab.ca/ocme/publications_stats.aspx?id=1958
+http://www.justice.gov.yk.ca/prog/cs/wit/beingwit.html
+http://www.justice.govt.nz/pubs/reports/1999/dir_of_info/list_r/racing_industry.html
+http://www.justice.govt.nz/pubs/reports/2004/status-hearings-evaluation/complainants.html
+http://www.justice.govt.nz/pubs/reports/2004/target-hardening/partc.htm
+http://www.justicedemanded.org/arty17.htm
+http://www.justiceinitiative.org/activities/lcd/cle/cle_ceefsu
+http://www.justicewomen.com/letters.html
+http://www.justitie.nl/english/Publications/factsheets/same-sex_marriages.asp
+http://www.justlisted.com.au/sp/jlresagplist.asp?ag=2224&fr=home&stype=rs
+http://www.justnaturalstuff.co.uk/ishop/1013/shopscr345.html
+http://www.justpeace.org/rules.htm
+http://www.justpeople.com/contentnew/careeradvice/WorkingLife/SquareMeal.asp
+http://www.justphonecards.com/helpdesk/faq.html
+http://www.justproperty.com/articles/dec.html
+http://www.justracing.com.au/index.php?news_page=3&artid=1292&catid=52
+http://www.justreservations.com/content.asp~PageID=213
+http://www.justresponse.net/Abad_2.html
+http://www.justresponse.net/DougalWatt20Aug02.html
+http://www.justriddlesandmore.com/screensavers.html
+http://www.justswimmac.org/
+http://www.juvenile.org/about.html
+http://www.jvfc.com/
+http://www.jwj.org/updates/2001/08-01.htm
+http://www.jwod.gov/jwod/participate/current_distributors.html
+http://www.jwolfe.clara.net/Downloads/Match.htm
+http://www.jwpepper.com/catalog/search?wwwinvno=&passwd=&weblist=subvocreplinkmid4&id=&index=104
+http://www.jwww.com/riverbends/
+http://www.jyda.org/cnl.html
+http://www.jyetara.com/
+http://www.jyi.org/volumes/volume11/issue1/articles/patel.html
+http://www.jyi.org/volumes/volume11/issue3/articles/rauschecker.html
+http://www.jymkruse.com/Family/KDT.html
+http://www.jyu.fi/intl/eng/courses/sport_sciences.html
+http://www.k-1.com/Orwell/site/$country=us$/interaction/link.html
+http://www.k-1.com/Orwell/site/discussion/show_thread.html?board=102&thread=1083
+http://www.k-1.com/Orwell/site/work/essays/bookshop.html
+http://www.k-online.de/cipp/md_k/custom/pub/content,lang,2/oid,4258/ticket,g_u_e_s_t/local_lang,2
+http://www.k12.dc.us/dcps/dcpsnews/dcmediacntr.html
+http://www.k12.wa.us/
+http://www.k12.wa.us/SchFacilities/ESRR.aspx
+http://www.k12.wa.us/certification/teacher/teacherinformation.aspx
+http://www.k12.wa.us/curriculumInstruct/Arts/frameworks/Edance.aspx
+http://www.k2news.com/mak02disp2.htm
+http://www.kab.org/aboutus2.asp?id=130
+http://www.kab.org/kabtoolbox/toolbox2.asp?id=373
+http://www.kabalarians.com/forum/forum_posts.asp?TID=93&PN=1
+http://www.kabalarians.com/forum/forum_posts.asp?TID=93&PN=1&TPN=1
+http://www.kable.com/news/Industry/5200,02,0612,002.asp
+http://www.kabulguide.net/kbl-walking.htm
+http://www.kacike.org/Fewkes.html
+http://www.kacike.org/srcc/project.htm
+http://www.kagyubuddhist.org/biography.htm
+http://www.kaibab.org/bc/gc_tr_tt.htm
+http://www.kaibab.org/moodies/mxjays.htm
+http://www.kaine2005.org/issues_faithandvalues.asp
+http://www.kairo.at/science/lang/country.php
+http://www.kaisernetwork.org/daily_reports/rep_index.cfm?DR_ID=30788
+http://www.kaisernetwork.org/daily_reports/rep_index.cfm?hint=1&DR_ID=28358
+http://www.kaisernetwork.org/daily_reports/rep_index.cfm?hint=2&DR_ID=24723
+http://www.kakiseni.com/notices
+http://www.kal69.dial.pipex.com/shop/pages/isbn021.htm
+http://www.kalanienglish.com/news_mauinews_030131.html
+http://www.kalbould.wa.gov.au/index.php?content=marketing&page=faq.htm
+http://www.kalesnursery.com/gardencenter.htm
+http://www.kalilily.net/weblog/03/08/28/142940.html
+http://www.kamcity.com/library/articles/distsale.htm
+http://www.kamera.co.uk/reviews_extra/buffalo_soldiers.php
+http://www.kamya.com/aos/ncarolina.html
+http://www.kamya.com/aos/nebraska.html
+http://www.kananaskisgolf.com/pro.html
+http://www.kancoll.org/books/thayer/t_introd.htm
+http://www.kancoll.org/books/ware/ew_chap01.htm
+http://www.kanemarie.com/glass/simpson/
+http://www.kanetrading.com/a_comm/04_4Qarc/december/121204_d_comm_arc.html
+http://www.kanetrading.com/a_comm/05_1Qarc/january/012305_d_comm_arc.html
+http://www.kangguru.org/englishmagazine.htm
+http://www.kankeiren.or.jp/English/k-eco-now0107.htm
+http://www.kannerandassoc.com/matrix106.html
+http://www.kansascity.com/mld/kansascity/classifieds/real_estate/for_sale/ask_expert_front.html
+http://www.kansascity.com/mld/kansascity/contact_us/help/faq_np1/
+http://www.kansasmonks.org/RuleOfStBenedict.html
+http://www.karagen.org/
+http://www.karagrant.net/olympicqualification04.html
+http://www.karakuri.gr.jp/creation/report/report006-010/report6-10.htm
+http://www.karaokeunlimited.com/shipping.php
+http://www.karat.org/eu_and_economy/bettina_musiolek.html
+http://www.karateconnection.com/faq.htm
+http://www.karenalkalay-gut.com/diaryjan2804.html
+http://www.karencheng.com.au/archive/0308.htm
+http://www.karinvintners.co.uk/wineguide/essential.asp
+http://www.karinvintners.co.uk/wineschool/ar000003.asp
+http://www.karinya.com/ph.htm
+http://www.karinya.com/torndos.htm
+http://www.karisable.com/court.htm
+http://www.karlloren.com/Diabetes/p64.htm
+http://www.karlloren.com/ultrasound/p37.htm
+http://www.karma-kagyud.org.sg/Dharma/true_buddhist.htm
+http://www.karmabum.com/diary4.htm
+http://www.karmanos.org/app.asp?id=371
+http://www.karmanos.org/app.asp?id=371&ssec=5
+http://www.karmanos.org/app.asp?id=385
+http://www.karmanos.org/app.asp?id=385&go.x=12&go.y=7
+http://www.karmel.at/eng/teresa.htm
+http://www.karnakcorp.com/faq_articles_01.html
+http://www.karting.co.uk/KandK/Tech/KartSetup.html
+http://www.karvy.com/compresearch/final%20sectors/auto-cars/1players285.htm
+http://www.kashmirobserver.com/wadoo.htm
+http://www.kasino.co.uk/2002_06_16_blogarchive.htm
+http://www.katapi.org.uk/TandS/XI.htm
+http://www.katelundy.com.au/Anti-war.htm
+http://www.katelundy.com.au/Japan.htm
+http://www.katherinegarbera.com/books/xmas.htm
+http://www.kathkwilts.com/shops/alaska.html
+http://www.kathleensworld.com/photos.html
+http://www.katie.com/babyblog/archives/2004_04.html
+http://www.katikati.co.nz/kk_text/kdv.html
+http://www.katinkahesselink.net/kr/love.html
+http://www.katkunz.com/updates2003.htm
+http://www.katsueydesignworks.com/happyclients.htm
+http://www.katyfreeway.org/contractB_TCP.html
+http://www.katyterrega.com/dirtyjob.html
+http://www.kauffman.org/items.cfm/510
+http://www.kaufmanzoning.net/horsemeat/PiratePress122003.htm
+http://www.kaunas.lt/english/business/economics.shtml
+http://www.kauppalehti.fi/4/i/eng/stocks/share/bulletin.jsp?id=200501193306&stoid=AMC1V&comid=AMC
+http://www.kaupthing.net/default.aspx?pageid=1159
+http://www.kavasoft.com/iTunesCatalog/faq/
+http://www.kavlaoved.org.il/katava_main.asp?news_id=976&sivug_id=21
+http://www.kavousa.com/products/lab/gb_fd/arcuspro.asp?navid=4620&lan=Us&nstr=5000
+http://www.kayakbaja.com/guides.html
+http://www.kayakconnection.com/KC_Pages/Equipment_Rentals.html
+http://www.kaycounty.info/101_Ranch/the-stories.htm
+http://www.kayukay.co.uk/yorkbandb.html
+http://www.kaywebs.co.uk/portfolio_average.htm
+http://www.kazakhembus.com/
+http://www.kazakhembus.com/Life_under.html
+http://www.kbalertz.com/kb_832926.aspx
+http://www.kbdnet.net.au/ryudo/news_letter.htm
+http://www.kbis.co.uk/bloodstock_policy.htm
+http://www.kc3.com/editorial/40reasons.htm
+http://www.kcba.org/justice/
+http://www.kcbbs.gen.nz/lori/ar/behaviour.html
+http://www.kcc.state.ks.us/pipeline/minutes_050605.htm
+http://www.kcc.zaq.ne.jp/dfeea307/archer.html
+http://www.kccu.com/misc/news.asp
+http://www.kcffulocal1301.com/article.php?sid=104
+http://www.kcffulocal1301.com/article.php?sid=99
+http://www.kcfs.org/standards05/idcritiques/dennison.html
+http://www.kcglass.co.uk/home.html
+http://www.kchealthcare.com/productpromosite/patientwarming/www/Index.asp?action=productdetails&id=1404
+http://www.kckpl.lib.ks.us/FINEARTS/ARTLINKS/Film.htm
+http://www.kcl.ac.uk/depsta/catser/pgmchospext.html
+http://www.kcl.ac.uk/depsta/catser/pgmchospint.html
+http://www.kcl.ac.uk/depsta/geog/staff/drake.html
+http://www.kcl.ac.uk/depsta/rel/ccjs/justicelink/police.html
+http://www.kcl.ac.uk/diveng/mecheng/msc/msc-came.html
+http://www.kcl.ac.uk/humanities/cch/allc/refdocs/com0305.htm
+http://www.kcl.ac.uk/humanities/cch/allc/refdocs/com1200.htm
+http://www.kcl.ac.uk/humanities/cch/handbooks/handbook2001/courses.htm
+http://www.kcl.ac.uk/lhcma/cats/kirke/ki80-01-.htm
+http://www.kcl.ac.uk/ugp06/programme.php?getid=181
+http://www.kcls.org/goodreads1/teen/read_three.cfm
+http://www.kcmetro.cc.mo.us/longview/ctac/corenotes.htm
+http://www.kcna.co.jp/item/1997/9709/news9/11.htm
+http://www.kcna.co.jp/item/1999/9910/news10/04.htm
+http://www.kcna.co.jp/item/1999/9910/news10/07.htm
+http://www.kcna.co.jp/item/1999/9912/news12/02.htm
+http://www.kcna.co.jp/item/1999/9912/news12/14.htm
+http://www.kcna.co.jp/item/2000/200012/news12/30.htm
+http://www.kcna.co.jp/item/2004/200405/news05/06.htm
+http://www.kcna.co.jp/item/2004/200410/news10/29.htm
+http://www.kcna.co.jp/item/2005/200502/news02/08.htm
+http://www.kcpt.org/olin/stardate.html
+http://www.kcpug.org/site/modules/newbb/viewtopic.php?topic_id=180&forum=4
+http://www.kcscripts.com/manual/classifieds_help.htm
+http://www.kcstar.com/item/pages/opinion.pat,opinion/30db01bd.524,.html
+http://www.kcstar.com/item/pages/printer.pat,opinion/30db01bd.524,.html
+http://www.kcunitedway.org/warrick.htm
+http://www.kcwindows.co.uk/
+http://www.kdassem.dk/didaktik/l4-16.htm
+http://www.kde.org/announcements/announcement.php
+http://www.kdedevelopers.org/node/view/1001
+http://www.kdedevelopers.org/node/view/1138
+http://www.kdedevelopers.org/node/view/219
+http://www.kdedevelopers.org/node/view/786
+http://www.kdhe.state.ks.us/news/web_archives/2004/06042004.html
+http://www.kdhx.org/reviews/christmas_carol_0312.html
+http://www.kdnuggets.com/companies/products.html
+http://www.kdp.org/lifecycle/emeritus/opportunities.php
+http://www.kdp.pp.se/music/
+http://www.keele.ac.uk/depts/aa/studentsupport/counselling/problems/depression.htm
+http://www.keen.com/documents/help/prtoolkit.asp
+http://www.keene.edu/catalog/acadresources.cfm
+http://www.keener13.com/memories/Default.asp
+http://www.keepandbeararms.com/news/nl/disp.asp?d=6/20/2005
+http://www.keepandbeararms.com/opsd/default.asp
+http://www.keepflbeautiful.org/bylaws.asp
+http://www.keepgoing.org/issue19_demands/the_quest_for_answers.html
+http://www.keepitcoming.net/sci-fi.html
+http://www.keepkidshealthy.com/parenting_tips/parenting_in_public.html
+http://www.keepkidshealthy.com/reviews/parenting_books/the_good_son.html
+http://www.keepmainefree.org/ld1219.html
+http://www.keepmedia.com/Search.do?criteria=glass%20ceiling&extID=10026
+http://www.keepmedia.com/pubs/AccessControlSecuritySystems/2005/05/01/871433?extID=10026
+http://www.keepmedia.com/pubs/Construction/2005/03/14/774670?extID=10026
+http://www.keepmedia.com/pubs/ConstructionNews/2005/03/07/765432?extID=10026
+http://www.keepmedia.com/pubs/Direct/2000/05/31/112639?extID=10026
+http://www.keepmedia.com/pubs/Esquire/2000/02/01/171758?extID=10026
+http://www.keepmedia.com/pubs/Esquire/2002/05/01/139242?extID=10026
+http://www.keepmedia.com/pubs/Esquire/2002/10/01/139524?extID=10026
+http://www.keepmedia.com/pubs/Esquire/2003/09/01/262146?extID=10026
+http://www.keepmedia.com/pubs/GiftsDecorativeAccessories/2005/01/01/703123?extID=10026
+http://www.keepmedia.com/pubs/Shape/2005/06/07/884674?extID=10026
+http://www.keepmedia.com/pubs/TestMeasurementWorld/2002/09/01/191694?extID=10026
+http://www.keepmedia.com/pubs/USNewsWorldReport/2004/02/02/362297?extID=10026
+http://www.keepmedia.com/pubs/netConnect/2005/04/15/889707?extID=10026
+http://www.keepyoursecrets.com/
+http://www.keeverforcongress.com/pressreleases.html
+http://www.keganpaul.com/product_info.php?cPath=43&products_id=289
+http://www.keir.net/k9.html
+http://www.keithmurray.co.uk/news/index.shtml
+http://www.kelb-tal-fenek.com/rabbithunt.htm
+http://www.kelkoo.co.uk/b/a/sbs/uk/toyKeywords/keywords/leap+pad/168001.html
+http://www.keller.co.uk/klr/corporate/csr/
+http://www.kellogg.northwestern.edu/news/hits/040323npr.htm
+http://www.kellogg.northwestern.edu/register/1st_asgn/winter9798/m&s-day-win.htm
+http://www.kellogg.northwestern.edu/webresources/faculty/directory.htm
+http://www.kellogg.umich.edu/bios/moroi.research.html
+http://www.kellogg.umich.edu/patientcare/maps/annarbormap.html
+http://www.kellymom.com/babyconcerns/gassybaby.html
+http://www.kellyn.com/lrcgd/events.htm
+http://www.kellypro.com/MagiciansAndJugglers/ThePassingZone.htm
+http://www.kellys-korner-xp.com/win_xp_restart.htm
+http://www.kellysearch.co.uk/gb-product-33047.html
+http://www.kellysearch.com/qu-product-64138.html
+http://www.kellyservices.ie/eprise/main/web/ie/services/en/win_at_work
+http://www.kelseybassranch.com/
+http://www.kempler.com/product_detail.cfm/datakey/2/category/Presses/category1/Laminating%20(Also%20See%20Presses,%20Molding%20Compression)/seqnum1/2161.htm
+http://www.kempler.com/product_detail.cfm/datakey/2/category/Presses/category1/Molding%20Compression%20Hydraulic%20(Also%20See%20Presses,%20Laminating%20and%20Molding%20Compression%20Transfer)/seqnum1/2428.htm
+http://www.kempler.com/product_detail.cfm/datakey/2/category/Presses/category1/Molding%20Compression%20Hydraulic%20(Also%20See%20Presses,%20Laminating%20and%20Molding%20Compression%20Transfer)/seqnum1/2456.htm
+http://www.kempler.com/product_detail_print.cfm/datakey/2/category/Presses/category1/Laminating%20(Also%20See%20Presses,%20Molding%20Compression)/seqnum1/2161.htm
+http://www.kempler.com/product_detail_print.cfm/datakey/2/category/Presses/category1/Molding%20Compression%20Hydraulic%20(Also%20See%20Presses,%20Laminating%20and%20Molding%20Compression%20Transfer)/seqnum1/2162.htm
+http://www.kempt.co.uk/
+http://www.kenai-peninsula.org/archives/000058.html
+http://www.kenanmalik.com/essays/expression.html
+http://www.kenanmalik.com/papers/engelsberg_nature.html
+http://www.kenanmalik.com/tv/analysis_value.html
+http://www.kenanmalik.com/work_in_progress/archive/race_03.html
+http://www.kenaz.com/shaman/shamansuffering.htm
+http://www.kencollins.com/bobo-02.htm
+http://www.kencollins.com/bobo-57.htm
+http://www.kendall-bioresearch.co.uk/crust.htm
+http://www.kendall-bioresearch.co.uk/domest.htm
+http://www.kendall-bioresearch.co.uk/spider.htm
+http://www.kendall.edu/index.cfm/fuseaction/academics.school_detail/object_id/4F1B93C1-C477-42C8-AE91-1B56DABA20A6/sub_school_id/CC503CC0-3D74-4ADF-8D60-8C931638B62E
+http://www.kendallsummerhawk.com/marketing-speaking.html
+http://www.kendo-world.com/forum/archive/index.php?t-5961.html
+http://www.kendo-world.com/forum/showthread.php?t=7131
+http://www.kenes.com/arrhythmia/wel.htm
+http://www.kenes.com/stroke2006/abstract_form.asp
+http://www.kenkifer.com/Thoreau/village.htm
+http://www.kenkifer.com/bikepages/
+http://www.kenkifer.com/bikepages/traffic/motorist.htm
+http://www.kenleonardjr.com/articles/FearOfLosingMoney.html
+http://www.kenmarend.com/kenmarenews/feature%20stories/feature120.htm
+http://www.kennedy-center.org/about/virtual_tour/jazz_club.html
+http://www.kennedykrieger.org/kki_cp.jsp?pid=1574
+http://www.kennedykrieger.org/kki_cp.jsp?pid=1577
+http://www.kennedyspacecenter.com/visitKSC/atx.asp
+http://www.kenneldesign.com/blueprints/double12/building/
+http://www.kenneldesign.com/blueprints/double12/storeroom/
+http://www.kenneldesign.com/blueprints/double12/walkway/
+http://www.kenneldesign.com/blueprints/double20/building/
+http://www.kenneldesign.com/blueprints/double20/storeroom/
+http://www.kennelstation.com/
+http://www.kennethoppel.ca/pg_b_liveforever_excpt.htm
+http://www.kennyrichey.org/index.php?option=content&task=view&id=26&Itemid=38
+http://www.kennysia.com/archives/2005/04/40_hours_at_the.php
+http://www.kennywood.com/attractions/policies.php
+http://www.keno.org/hound_dog_taylor/notesbybruce.htm
+http://www.kenpattern.or.id/femina.html
+http://www.kensington-chelsea.com/Walk.htm
+http://www.kenstone.net/fcp_homepage/24p_in_FCP_nattress.html
+http://www.kenstone.net/fcp_homepage/beyond_dv_nattress.html
+http://www.kent.ac.uk/careers/ScienceJobs.htm
+http://www.kent.ac.uk/politics/research/erwp/vana.htm
+http://www.kent.ac.uk/psychology/department/people/hamilton-westke/
+http://www.kent.edu/comm/communique/index.cfm
+http://www.kented.org.uk/ngfl/ict/IWB/whiteboards/report.html
+http://www.kentishguards.org/briefhistory.htm
+http://www.kentlaw.edu/classes/rstaudt/internetlaw/casebook/electronic_communications_privacy1.html
+http://www.kentmerkezi.com/avni/lyrics/carmina.html
+http://www.kentucky.com/mld/heraldleader/2005/01/30/news/nation/10771254.htm
+http://www.kentucky.com/mld/kentucky/living/health/10706769.htm
+http://www.kentucky.com/mld/kentucky/news/world/11899559.htm
+http://www.kentucky.com/mld/kentucky/sports/colleges/university_of_kentucky/10793213.htm
+http://www.kentuckycenter.org/backstagepass/econtent.asp?cid=000&iid=BA9526&aid=33
+http://www.kentuckycenter.org/backstagepass/econtent.asp?cid=000&iid=JA83918&aid=33
+http://www.kentuckycoal.com/About%20KCA.htm
+http://www.kentuckygameandfish.com/hunting/ducks-geese-hunting/ky_aa112204a/
+http://www.kentuckygaming.com/news&reports.htm
+http://www.kenyanews.com/exp24/psto_32.html
+http://www.kenyanews.com/exp24/sto_32.html
+http://www.kenyaweb.com/people/taita-taveta.html
+http://www.kenyon.edu/x11602.xml
+http://www.kenyon.edu/x15598.xml
+http://www.keom.de/denkmal/summary.html
+http://www.kepplewray.org.uk/quotes.htm
+http://www.keratex.net/keratex_history.htm
+http://www.kerenmalki.org/UN_establishes_damage_register_for_Palestinians.htm
+http://www.kerismith.com/blog/
+http://www.kerismith.com/blog/archives/2005_01.html
+http://www.kernel.org/
+http://www.kernelthread.com/publications/security/types.html
+http://www.kerneltraffic.org/kernel-traffic/kt20050104_291.html
+http://www.kernvalley.com/news/whiskeyflatcamp.htm
+http://www.kerriscatcare.com/
+http://www.kerryblues.org/RESOURCES/TRAINERS.HTML
+http://www.kerrycoco.ie/environment/litter.asp?id=2
+http://www.kerrycoco.ie/writersweb/
+http://www.kerrytherealmccoy.com/Journal2004.html
+http://www.kersplebedeb.com/mystuff/s11/churchill.html
+http://www.kesgrave.suffolk.sch.uk/learningzone/subjects/geography/ppgcse.html
+http://www.keshilliministrave.al/english/lajm.asp?id=4339
+http://www.ket.org/cgi-plex/watch/?date=2004-12-07+18:00&cd=1&
+http://www.ketchum.org/milo/MSK-IStructE.html
+http://www.kevinharvick.com/POSTRACE/110704.htm
+http://www.kevinhoffberg.com/Guest%20Rants/Leavinghome.htm
+http://www.kevinhogan.com/
+http://www.kevinleitch.co.uk/wp/?p=229
+http://www.kevinmd.com/blog/2005/06/despite-all-complaining-that-doctors.html
+http://www.kevinsites.net/2004_10_31_archive.html
+http://www.kevinsites.net/warboy3_3.php
+http://www.kewaunee.k12.wi.us/Middle%20School%20Student%20Handbook.htm
+http://www.keweenaw.info/conditions.aspx
+http://www.keya.org.uk/text_only.htm
+http://www.keyclub.org/keyclub/about/history/
+http://www.keyclub.org/keyclub/magazine/0205ftatough.asp
+http://www.keyframe.org/txt/matchframe/
+http://www.keymailorder.com/cgi-bin/keymail.pl?special=pinkfloyd0505.htm
+http://www.keynote.org.uk/art/ks3pupils/key_stage_3.htm
+http://www.keyscorner.com/index.php?cat=7
+http://www.keyskillsincontext.co.uk/pru/B/communication/5.php
+http://www.keyskillsincontext.co.uk/pwc/B/communication/2.php
+http://www.keyskillssupport.net/faq/workbased/External_assessment.asp
+http://www.keyskillssupport.net/studentguidesupp/schoolscolleges/learningsupp.asp
+http://www.keystoneresearch.org/sprawl/
+http://www.keytlaw.com/az/corpservices.htm
+http://www.keytlaw.com/az/entities/oafaq.htm
+http://www.keyway.ca/htm2002/samaria.htm
+http://www.kff.org/medicare/loader.cfm?url=/commonspot/security/getfile.cfm&PageID=14375
+http://www.kfki.hu/~tudtor/tudos1/kurti.html
+http://www.kfvs12.com/Global/story.asp?S=1230282
+http://www.kfvs12.com/Global/story.asp?S=2569264&nav=8H3xT9ib
+http://www.kfvs12.com/Global/story.asp?S=2682655
+http://www.kfvs12.com/Global/story.asp?S=2682655&nav=8H3xUASg
+http://www.kgs.ku.edu/General/Geology/Morton/03_intro.html
+http://www.kgs.ku.edu/General/faq.html
+http://www.kgsr.com/iTOOLIncludes/orton.php
+http://www.khaleejtimes.co.ae/appoint1.htm
+http://www.khaleejtimes.com/DisplayArticle.asp?xfile=data/business/2005/January/business_January238.xml&section=business&col=
+http://www.khamaid.org/programs/education/scholarships/
+http://www.khaosanroad.com/inaheartbeat.htm
+http://www.kheper.net/topics/hermeneutics/NiSAN-1.html
+http://www.khilafah.com/home/category.php?DocumentID=9718&TagID=24
+http://www.khmerkrom.net/modules.php?name=News&file=article&sid=271
+http://www.khouse.org/articles/nanscorner/20020501-410.html
+http://www.kickassgear.com/Reviews/Free%20Country.htm
+http://www.kickstartnews.com/reviews/pda/rotring_trio_600_stylus_pen.html
+http://www.kid-at-art.com/htdoc/lesson57.html
+http://www.kidney.org/affiliate/sctx/atoz/atozItem.cfm?id=112
+http://www.kidney.org/atoz/atozItem.cfm?id=112
+http://www.kidney.org/atoz/atozItem.cfm?id=119
+http://www.kidney.org/atoz/atozPrint.cfm?id=112
+http://www.kidney.org/kls/factsheets/showFS.cfm?id=76
+http://www.kidneypatientguide.org.uk/site/whatTheySay.php
+http://www.kidneytransplant.org/kidneyglossary.html
+http://www.kids-klub.co.uk/
+http://www.kids-party.com/ideas-2.htm
+http://www.kids-right.org/newsweek.htm
+http://www.kids-safety-klub.com/
+http://www.kids.nsw.gov.au/arcade/relationships_conflicts.html
+http://www.kids.nsw.gov.au/check/faq.html
+http://www.kidscamps.com/press/parenthood.html
+http://www.kidscanmakeadifference.org/Newsletter/ns2000j.htm
+http://www.kidscanmakeadifference.org/cando.htm
+http://www.kidsclick.com/disney.htm
+http://www.kidsclick.com/math.htm
+http://www.kidscook.com/whatsnew.ASP
+http://www.kidsdomain.com/craft/pencil5.html
+http://www.kidsgrowth.com/resources/advicedetail.cfm?id=2351
+http://www.kidsgrowth.com/resources/articledetail.cfm?id=145
+http://www.kidshealthworks.com/topic.asp?topic_id=171
+http://www.kidsincars.org/actualcases/Abductions_Kidnappings.htm
+http://www.kidsincars.org/actualcases/Vehicle%20In%20Motion.htm
+http://www.kidsource.com/NICHCY/girl_disability3.html
+http://www.kidsource.com/kidsource/content2/appropriate.add.html
+http://www.kidsource.com/kidsource/content2/assistive_technology.html
+http://www.kidsource.com/kidsource/content2/funding/apply.html
+http://www.kidsource.com/kidsource/content4/legal.rights.gifted.ed.html
+http://www.kidsource.com/kidsource/content4/promote.phyed.html
+http://www.kidsource.com/kidsource/pages/dis.add.html
+http://www.kidsread.net/bohideous5.html
+http://www.kidsreads.com/index.asp
+http://www.kidsrunning.com/ask/krask0209fundraiser.html
+http://www.kidstamps.com/showprod.asp?Mugs
+http://www.kidswithtasers.com/index.php?itemid=61
+http://www.kidzworld.com/site/p2470.htm
+http://www.kier.co.uk/news/Default.asp?PageNo=3&Mode=1&company=0&f=p
+http://www.kierenmccarthy.me.uk/pages/journalism/register/2003/Mar/itu-meeting.html
+http://www.kifaru.com/aboutus.html
+http://www.kiiss.org/SecondhandSmokePosesHeartAttackRisk.htm
+http://www.kilgorenewsherald.com/news/2005/0417/Front_Page/015.html
+http://www.kilkennycoco.ie/publications/advertisements/default.aspx?id=1173
+http://www.kilkennycoco.ie/publications/advertisements/default.aspx?id=1174
+http://www.kilkennycollege.ie/pastps/pastppnews.htm
+http://www.killallthewhiteman.com/lessoldnews.html
+http://www.killermovies.com/forums/archive/index.php/t-5855
+http://www.killermovies.com/forums/f38/t346337.html
+http://www.killerorange.com/KillerRefs/Category/orgdonatehousegoods.htm
+http://www.killingthebuddha.com/moreletters.htm
+http://www.killingtrain.com/archives/000336.html
+http://www.kilmorecottage.com/faq.htm
+http://www.kilroywashere.org/006-Pages/06-BombOregon.html
+http://www.kiltmen.com/world.htm
+http://www.kimcorealty.com/News/article.asp?FileName=1stQtrpressrelease4-25-2005-WEB_4-25-2005_7-34-54AM.inc
+http://www.kimel.net/angel.html
+http://www.kimel.net/hitman.html
+http://www.kimopress.com/fire.html
+http://www.kimskorner4teachertalk.com/
+http://www.kimsoft.com/korea/kji-815.htm
+http://www.kimsoft.com/korea/us-army.htm
+http://www.kinderart.com/
+http://www.kinderhookconnection.com/attractn.htm
+http://www.kinderkorner.com/back2.html
+http://www.kinderstart.com/bringinghomebaby/babysitters.html
+http://www.kindredhealthcare.com/BulletinBoard/bb100903.asp
+http://www.kinema.uwaterloo.ca/hollo-bff051.htm
+http://www.kinema.uwaterloo.ca/micz952.htm
+http://www.kinesic.com/miva/merchant.mvc?Screen=PLST&Store_Code=KEP
+http://www.kineticcom.com/thecompany-jay.html
+http://www.kinetico.com/residntl/hardsoft.htm
+http://www.kineticsolutions.co.uk/00000017.html
+http://www.king.igs.net/~elgin/elginnew/main/xmasstory.html
+http://www.kingcountyjournal.com/sited/story/html/107801
+http://www.kingdomofdrakkar.com/faq_4.htm
+http://www.kingfisherpress.com/Hugo_page_2.htm
+http://www.kingharold.essex.sch.uk/testsite/bstaffinglist.asp
+http://www.kinghussein.gov.jo/94_dec14.html
+http://www.kinglawler.com/update092602.html
+http://www.kingsarmsinn.co.uk/history_of_the_kings.htm
+http://www.kingsbrook.northants.sch.uk/departments.htm
+http://www.kingsbruton.org.uk/
+http://www.kingschools.com/productDetail.asp?ITEMNO=OOC+AVMRMCD
+http://www.kingschools.com/productDetail.asp?ITEMNO=OOC+AVMRMCDW
+http://www.kingshighway.org/articles/20020501-410.html
+http://www.kingston.ac.uk/cusp/Lectures/Lashmar.htm
+http://www.kingston.ac.uk/fractal/abstr2004.html
+http://www.kingston.ac.uk/undergraduate/courses/a103.htm
+http://www.kingstownecatclinic.com/New%20Pet%20Introduction.htm
+http://www.kingstownecatclinic.com/crf.htm
+http://www.kingsway-global.com/legal.asp
+http://www.kinkosworkersunite.info/
+http://www.kinkyfriedman.com/news/2004/11/olive-oil-for-peace.html
+http://www.kinnaird.net/scothist.htm
+http://www.kinocite.co.uk/16/1692.php
+http://www.kinrossrender.com/publiceye/newsletter.php?issue=3
+http://www.kintespace.com/rasx09.html
+http://www.kintespace.com/rasxlog/
+http://www.kintespace.com/rasxlog/index.php?cat=11
+http://www.kiontv.com/guides/parenting/story.aspx?content_id=DB6B88ED-2632-434F-8B4F-4838AF92F552
+http://www.kiosks.org/articles/worksol072103a.html
+http://www.kiowacountycolo.com/sf-oil.htm
+http://www.kiplinger.com/columns/car/archive/2003/car0717.html?section=&department=&sub_department=
+http://www.kiplinger.com/columns/fitness/archive/2003/ff030115.htm?section=&department=&sub_department=
+http://www.kiplinger.com/features/archives/2002/December/spending/car5step.html
+http://www.kiplinger.com/tools/fig401k.html
+http://www.kir.org/babycontent/school-years.htm
+http://www.kiranbedi.com/spotlight.htm
+http://www.kirchman.com/comply/compliance_training_CDs.html
+http://www.kirjasto.sci.fi/minnes.htm
+http://www.kirjasto.sci.fi/shakespe.htm
+http://www.kirjasto.sci.fi/wharton.htm
+http://www.kirkbrownband.com/guestbook.htm
+http://www.kirkleesmc.gov.uk/you-kmc/kmc-formsindex/formindex.shtml
+http://www.kirkoswald.cumb.org.uk/work.htm
+http://www.kirksvillecity.com/PublicWorks/pubwksinfo.html
+http://www.kirotv.com/news/2267247/detail.html
+http://www.kirschfoundation.org/done/events.html
+http://www.kirschfoundation.org/why/articles_archive.html
+http://www.kirtland.af.mil/Organizations/FamilySupport/boys_girls.htm
+http://www.kismetworldwide.com/laurieweed/asia_update_16.htm
+http://www.kiss.svitonline.com/trip.htm
+http://www.kissack.co.uk/content/view/199/
+http://www.kissack.co.uk/content/view/199/64/
+http://www.kitbraz.com/tchr/comp/method.html
+http://www.kitchencollection.com/tempbrandlistall.cfm?catname=Shop%20By%20Brand&scat=Hamilton%20Beach&sscat=Drink%20Mixer
+http://www.kitchendoctor.com/healthconditions/parasites/blood_parasites.html
+http://www.kitchenkapers.com/ind.html
+http://www.kitchenproject.com/html/germcook.html
+http://www.kitchenwindow.com/CC_ClassScheduleS.asp
+http://www.kitchenwitch.com/herbs/angelica.html
+http://www.kitco.com/ind/Hanlon/jun022005.html
+http://www.kitco.com/weekly/paulvaneeden/sept242004.html
+http://www.kiteboarding.com/index.php?page=info.htm
+http://www.kitesource.com/contact/1cfcontact.shtml
+http://www.kith.org/logos/wander/3.bos/week14.html
+http://www.kitlv.nl/hisdhelp.html
+http://www.kitsapsun.com/bsun/features/0,2403,BSUN_19080,00.html
+http://www.kitsune.addr.com/SF-Conversions/Rifts-WC-Vehicles/Confederation_FA-14E_Raptor_Starfighter.htm
+http://www.kiva.net/~kls/gone.html
+http://www.kiwi-wildlife.co.nz/
+http://www.kiwibox.com/givingback.asp
+http://www.kiwicareers.govt.nz/jobs/4c_mec/j48311x.htm
+http://www.kjmagnetics.com/
+http://www.kk.org/newrules/newrules-intro.html
+http://www.kkflyfisher.com/rods/loomis_roaringriver.html
+http://www.kkohki.com/English/kkohkiparts.html
+http://www.kl.oakland.edu/services/instruction/pathfinders/Callnos.htm
+http://www.klaatu.org/list.html
+http://www.klariti.com/business-writing/Golden-Rules-before-starting-RFP-ITT-proposal.shtml
+http://www.klariti.com/proposal-writing/index.shtml
+http://www.klattu.com.au/~jsinger/nolonger.htm
+http://www.kld.com/research/ratings.html
+http://www.klebergbank.com/73983.html
+http://www.kleesgolf.com/php/fitting.php
+http://www.kls.org.uk/blog/
+http://www.kls.org.uk/display/ShowJournal?moduleId=55067&creatorId=5451
+http://www.klse.com.my/website/listing/cbrs.htm
+http://www.kluc.com/morning_zoo.asp
+http://www.klup.com/weblogs/kmc/adate12010050.aspx
+http://www.km-uk.com/testimonials.asp
+http://www.km.dk/publikationer/thechurch.htm
+http://www.kma.org.za/race_control.htm
+http://www.kmike.com/Tech%20Rep.htm
+http://www.kml.k12.wi.us/fine_arts/band.htm
+http://www.kmmagazine.com/currentissue.asp
+http://www.kmrscripts.com/cdguide.html
+http://www.kmsfinancial.com/kms/mwwknrpt.htm
+http://www.kmworld.com/publications/specialpublication/index.cfm?action=readarticle&Article_ID=1694&Publication_ID=106
+http://www.kn.pacbell.com/wired/fil/pages/webshakespera.html
+http://www.kn.sbc.com/wired/fil/pages/webreflectiga.html
+http://www.knac.com/article.asp?ArticleID=3669
+http://www.knaresborough.co.uk/stmaryrcchurch/justpeace.html
+http://www.kneeguru.co.uk/kneegeeks/5324399901.html
+http://www.kneelsit.com/
+http://www.knewt.com/people/people.htm
+http://www.knic.com/Kn_Hist.htm
+http://www.knightfdn.org/default.asp?story=diversity/lehrman2/index.html
+http://www.knipe.org.uk/blogs/carla/
+http://www.knitty.com/ISSUEspring03/PATTbabynorgi.html
+http://www.knityourdreams.com/whats%20happening.html
+http://www.knmi.nl/onderzk/oceano/enso/fem_eng_sum.html
+http://www.knmskjold.org/logg2001/englog2001_1.htm
+http://www.knology.net/~parkersinal/adoption.htm
+http://www.knottyboy.com/learn/productinfo.php
+http://www.know-2.org/
+http://www.knowab.co.uk/wbwteam.html
+http://www.knowdotnet.com/lessmith.html
+http://www.knowhere.co.uk/3190_events.html
+http://www.knowhere.co.uk/3332_events.html
+http://www.knowhere.co.uk/3353_events.html
+http://www.knowhere.co.uk/3372_events.html
+http://www.knowhere.co.uk/340_events.html
+http://www.knowhere.co.uk/3434_events.html
+http://www.knowhere.co.uk/3582_goodbad.html
+http://www.knowhere.co.uk/4342_events.html
+http://www.knowhere.co.uk/467_events.html
+http://www.knowhere.co.uk/481.html
+http://www.knowhere.co.uk/481_eatdrink.html
+http://www.knowhere.co.uk/481_events.html
+http://www.knowhere.co.uk/481_goodbad.html
+http://www.knowhere.co.uk/481_links.html
+http://www.knowhere.co.uk/481_music.html
+http://www.knowhere.co.uk/518_musicians.html
+http://www.knowhere.co.uk/578_musicians.html
+http://www.knowhere.co.uk/593_music.html
+http://www.knowhere.co.uk/65_music.html
+http://www.knowhere.co.uk/82_events.html
+http://www.knowislam.info/drupal/ispart
+http://www.knowital.com/Towns/Lucca2/html/knowital_-_telephones___the_po.html
+http://www.knowital.com/index/findindex/tuscany/104610/
+http://www.knowledge.hut.fi/projects/mgain/project.html
+http://www.knowledge.state.va.us/main/sol/solview.cfm?curriculum_abb=MAT&category_abb=6
+http://www.knowledgebank.irri.org/theme1/
+http://www.knowledgeboard.com/cgi-bin/item.cgi?id=120536&d=pnd
+http://www.knowledgeboard.com/help/feedback_form.html
+http://www.knowledgedemocracy.org/node?from=23
+http://www.knowledgefoundation.com/fuelcell.html
+http://www.knowledgehound.com/topics/business.htm
+http://www.knowledgemessenger.com/a/viewblog.asp?app=thismatters&id=48&hdr=no
+http://www.knowledgeplex.org/news/68411.html
+http://www.knowledgeplex.org/news/96950.html
+http://www.knowledgeproblem.com/archives/001291.html
+http://www.knowledgestorm.com/
+http://www.knowledgestorm.com/search/keyword/Sony%20Video%20Conference/Sony%20Video%20Conference
+http://www.knowledgestorm.com/search/keyword/Web%20Cam%20Conference/Web%20Cam%20Conference
+http://www.knowledgestorm.com/search/tabkeyword/research/Hospital+Computer+System+Article/1/index.jsp
+http://www.knowledgeway.org/about/press/pr970403.html
+http://www.knowledgeway.org/living/create_web/homepage.html
+http://www.knowltonhouse.com/History/history.htm
+http://www.knowprose.com/node/2549
+http://www.knowprose.com/node?from=40
+http://www.knoxtrans.org/choices/smart1.htm
+http://www.koalaexpress.com.au/kangaroo%20stuffed%20toy.htm
+http://www.kobashi.to/against_adulteration/musk_rose.html
+http://www.kobashi.to/aroma-therapy/essentialoil/rose-abs_musk_org_in_joj_5ml.html
+http://www.kodak.co.uk/
+http://www.kodak.com/US/en/motion/support/glossary/glossary.jhtml?id=0.1.4.11.20&lc=en
+http://www.kodak.com/eknec/PageQuerier.jhtml?pq-path=317&pq-locale=en_US
+http://www.kodak.com/global/en/health/productsByUse/medicalRadiography/filmImaging/technical/density.jhtml
+http://www.kodak.com/global/en/professional/member/ProPass/advancedAmateur/tenneson.jhtml?id=0.2.14.36.10.16&lc=en
+http://www.kodak.com/global/en/service/publications/urg00273toc.jhtml?chapsec=urg00273c2s7&pq-path=3065
+http://www.koekie.org.uk/funnel/tdt/tdt2.html
+http://www.koeppeldirect.com/media-buying-direct-response-Dec2004.htm
+http://www.kofax.com/learning/casestudies/ascent_adrenaline_case_financial_plans.asp
+http://www.kofax.com/learning/casestudies/capio_case_healthcare_walter.asp
+http://www.koffeekorner.com/koffeekorner.html
+http://www.kohlscorporation.com/2004PressReleases/News0129Release.htm
+http://www.kolabora.com/
+http://www.kolabora.com/news/2005/01/27/advantages_of_meeting_online.htm
+http://www.kolabora.com/news/2005/05/30/virtually_networked_teams_how_to.htm
+http://www.kolbenschlagandco.com/qa/qa.aspx?s=Personal+Tax&l=2000
+http://www.koleksyon.com/showbiz/news/jan_wk4/lani_mercado.asp
+http://www.kolesarstudios.com/about_BKMP.htm
+http://www.kolinska.com/financial_information-povzetek1.php
+http://www.kolumbus.fi/puistot/collect.htm
+http://www.kolumbus.fi/soulexpr/burkedg.htm
+http://www.kolumbus.fi/soulexpr/perry.htm
+http://www.komag.com/press/press_030722.html
+http://www.komal.hu/lap/2002-ang/pozsgay.e.shtml
+http://www.komediaentertainment.com/news.php
+http://www.kommersant.com/tree.asp?rubric=3&node=36&doc_id=300257
+http://www.komo1000news.com/stories/34981.htm
+http://www.komotv.com/features/gardenguys/tip_47.asp
+http://www.komotv.com/news/mnewsaction.asp?ID=37165
+http://www.komotv.com/news/story_m.asp?ID=32496
+http://www.komotv.com/news/story_m.asp?ID=32532
+http://www.komotv.com/news/story_m.asp?ID=35126
+http://www.komotv.com/news/story_m.asp?id=23244
+http://www.komotv.com/stories/35166.htm
+http://www.komotv.com/weather/ski_report.asp
+http://www.kon.org/urc/scherbarth.html
+http://www.konavillage.com/2005_pkgs.asp
+http://www.kongoi.com/modules.php?op=modload&name=News&file=article&sid=52
+http://www.konsk.co.uk/planning/1998prog.htm
+http://www.konsk.co.uk/planning/1998targ.htm
+http://www.koool.com/life/96apr.html
+http://www.koramangala.com/korabuz/health/apr01.htm
+http://www.koramangala.com/korabuz/health/sept01a.htm
+http://www.koramangala.com/korabuz/pers1999/11.htm
+http://www.korea.net/korea/kor_loca.asp?code=H0102
+http://www.korea.net/news/news/newsView.asp?serial_no=20040905001&part=106&SearchDay=
+http://www.koreaemb.org/archive/2003/08_1/econ/econ2.asp
+http://www.koreananimals.org/
+http://www.koreanesl.com/forumdsp.asp?ser=7882
+http://www.koreanfriendsearch.com/
+http://www.korrnet.org/wpc/history.htm
+http://www.korrnet.org/wpc/westminsterplayers.htm
+http://www.korry.com/products/nightshield/
+http://www.koryubooks.com/library/lhearn1.html
+http://www.kosb-edinburgh-branch.co.uk/guestbook.php?table=guestbook&o=700
+http://www.kosherdelight.com/Current3.htm
+http://www.koskoff.com/index.cfm/hurl/SectionID=15/NewsID=113
+http://www.kosmor.com/help_appendixc.php
+http://www.kosovo.com/news/archive/2004/October_19/2.html
+http://www.kosovo.mod.uk/brief030699.htm
+http://www.kosovo.mod.uk/brief310599.htm
+http://www.kotakmutual.com/hmf.htm
+http://www.kotaku.com/
+http://www.kotaku.com/gaming/gamecube/
+http://www.kotaku.com/gaming/psp/
+http://www.kottke.org/
+http://www.kottke.org/05/04/a-whole-new-internet
+http://www.kottke.org/about/patron/support2005.html
+http://www.kozmikhoroscopes.com/haig.htm
+http://www.kpfa.org/lsb/docs.php?type=minutes&id=12&doc=21
+http://www.kpmg.co.uk/services/t/index.cfm
+http://www.kpresorts.com/tnt/tnn/tnn93.htm
+http://www.kqed.org/spark/artists-orgs/nikolaswei.jsp
+http://www.kqed.org/spark/artists-orgs/paulkos.jsp
+http://www.kqed.org/tv/indiefilms/index.jsp
+http://www.kqed.org/w/baywindow/guns/lesson2.html
+http://www.kqed.org/w/jpfastfood/program.html
+http://www.kqed.org/weblog/food/2005/02/wistful-thinking-california-chardonnay.jsp
+http://www.kquarterhorse.com/sale.htm
+http://www.kramerslaw.com/revoking_wills.htm
+http://www.krav-maga.org.uk/index.php?mod=faqs
+http://www.kravmagaonline.co.uk/index.php?mod=faqs
+http://www.krellinst.org/work/howessiam.html
+http://www.krem.com/health/stories/NW_031004HEKREMheartspecial_introEL.6c4c253c.html
+http://www.kriskrug.com/?m=200405
+http://www.kriskrug.com/?p=390
+http://www.kristagreen.com/index.cfm?fuseaction=ArticleList&SectionID=78
+http://www.kristinhannah.com/faq/faq.asp
+http://www.kristisiegel.com/inter_comp2003.htm
+http://www.kriyayoga.com/english/on_your_wings/beprepared.htm
+http://www.kriyayoga.com/english/on_your_wings/openforgod.htm
+http://www.kriyayoga.com/newsletters/newsletter200010-3.htm
+http://www.krla870.com/poll/viewall.asp?ID=3125
+http://www.krom.no/hva_er_krom/hva_er_krom.html
+http://www.krownspellman.com/cgi-bin/spellman/find/title/Ch.html
+http://www.krud.com/stupid.html
+http://www.krugerpark.co.za/Kruger_National_Park_Wildlife-travel/images-of-kruger-the-big-five_4.html
+http://www.krugerpark.org/Family_Safari_Lodges-travel/pricing_lodges-south-africa-tangala-safari-camp.html
+http://www.krugerpark.org/Safari_Essentials-travel/kruger-park-private-lodges-on-safari-in-africa_6.html
+http://www.krukowski.com/pages/firm.html
+http://www.krusch.com/real/ladanyi.html
+http://www.kryogenix.org/afe/fanficdb/story.cas?story=ambar&part=17
+http://www.kryptonsite.com/planetkstore.htm
+http://www.krysstal.com/ec1998.html
+http://www.krysstal.com/worldww.html
+http://www.ksa-uk.co.uk/ksa_survey.htm
+http://www.ksc.nasa.gov/nasadirect/archives/KSCDirect/archives/launch/sts112/day2/shuttle-qa.htm
+http://www.kscourts.org/kscases/ctapp/1998/19980403/78501.htm
+http://www.kscourts.org/kscases/supct/1999/19990122/79625.htm
+http://www.kscourts.org/kscases/supct/1999/19991105/82909.htm
+http://www.ksg.harvard.edu/news/opeds/2002/city_hill_euchner_bg_090402.htm
+http://www.ksg.harvard.edu/news/opeds/2002/euchner_schools_tough_love_bg_011802.htm
+http://www.ksg.harvard.edu/wappp/happen/yamanaka.html
+http://www.kshitij.com/govt/residentfx.shtml
+http://www.kshs.org/projects/lem/directory/lemnames03.htm
+http://www.ksinclair.com/Article550.htm
+http://www.ksinclair.com/Article722.htm
+http://www.ksl.com/
+http://www.kspress.com/web/isite.dll?1010350452886
+http://www.ksrevenue.org/taxcredits-altfuel.htm
+http://www.kstatecollegian.com/article.php?a=2240
+http://www.kstope.ang.af.mil/YB49/returning_the_stone.htm
+http://www.kstrom.net/isk/books/art/art2032.html
+http://www.ksu.edu/InfoTech/buying/faqs.html
+http://www.ksu.edu/baptistcenter/jesus.html
+http://www.ksu.edu/chem/personnel/faculty/grad/mmc/collinson.html
+http://www.ksu.edu/counseling/csweb/topics/stress/drstress.html
+http://www.ksu.edu/counseling/topics/life/sleep.html
+http://www.ksu.edu/economics/nafwayne/oup2000.htm
+http://www.ktc.com/personal/sirdavid/
+http://www.ktcdallas.org/creative/grief/essay.htm
+http://www.ku.edu/carrie/docs/texts/29mcki2.htm
+http://www.ku.edu/carrie/texts/carrie_books/gilbert/09.html
+http://www.ku.edu/pri/resrep/r227.htm
+http://www.ku.edu/~grobe/rules-of-fair-fighting.html
+http://www.ku.edu/~recycle/who_recycles.htm
+http://www.ku.edu/~scitask/minutes/jan3.shtml
+http://www.kubatana.net/html/archive/gen/041215msz.asp?sector=GEN
+http://www.kubby.com/issues/education.html
+http://www.kucinich.us/floor_speeches/work_cafta4may.php
+http://www.kudzufiles.com/archives/2005_01.html
+http://www.kuglercom.com/documents/strategic.html
+http://www.kuhistory.com/proto/story-printable.asp?id=99
+http://www.kuhistory.com/proto/story.asp?id=105
+http://www.kuhistory.com/proto/story.asp?id=24
+http://www.kuhistory.com/proto/story.asp?id=56
+http://www.kuhistory.com/proto/story.asp?id=99
+http://www.kuleuven.ac.be/lucina/Mens/Organisational%20constellations.html
+http://www.kulichki.com/moshkow/PERL/perltut.txt
+http://www.kultur.gov.tr/portal/kultur_en.asp?belgeno=5639
+http://www.kultursmog.com/Life-Page01.htm
+http://www.kulturturizm.gov.tr/portal/kultur_en.asp?belgeno=5647
+http://www.kumc.edu/anatomy/postdocs.html
+http://www.kumc.edu/hospital/huntingtons/behavior.html
+http://www.kumc.edu/joanhunt/BioSketches/psmith.html
+http://www.kungfu.net/brucelee.html
+http://www.kuninfelt.com/kuninfriends/
+http://www.kuninfelt.com/wheretobuy/
+http://www.kunstmusik.com/
+http://www.kurai.com/clarity/glass.html
+http://www.kuraoka.com/career.html
+http://www.kurd.org/Zagros/helicopter1.html
+http://www.kurdmedia.com/reports.asp?id=2013
+http://www.kuro5hin.org/main/3
+http://www.kuro5hin.org/section/culture
+http://www.kuro5hin.org/story/2002/2/6/19922/36571
+http://www.kuro5hin.org/story/2003/2/21/144256/437
+http://www.kuro5hin.org/story/2003/8/12/171427/607
+http://www.kuro5hin.org/story/2005/1/27/105710/925
+http://www.kuro5hin.org/story/2005/1/29/103757/255
+http://www.kurtz-fernhout.com/PlantStudio/userssay.htm
+http://www.kurumi.com/opinion/htm.html
+http://www.kutv.com/
+http://www.kvali.com/press/NYtimes.html
+http://www.kwanah.com/txmilmus/36division/archives/443/4434.htm
+http://www.kwantlen.ca/calendar/jrnlprg.html
+http://www.kwantlen.ca/facilities/emergencies.html
+http://www.kwanumzen.com/practice/sitting.html
+http://www.kwanumzen.com/primarypoint/v10n1-1993-winter-wbzm-leaveyourmindalone.html
+http://www.kwanumzen.com/pzc/oldnewsletter/v08n03-1980-march-shzm-makingacompleteeffort.html
+http://www.kwanumzen.com/pzc/oldnewsletter/v10n07-1982-july-shzm-doubt.html
+http://www.kweaver.org/archives/2004/06/
+http://www.kweaver.org/archives/2004/08/
+http://www.kweaver.org/archives/2004/10/
+http://www.kweaver.org/archives/2005/04/
+http://www.kweaver.org/archives/2005/05/
+http://www.kweaver.org/archives/2005/06/
+http://www.kwfdn.org/ProgramAreas/Facilities/links.html
+http://www.kwqc.com/Global/story.asp?S=2866995
+http://www.kwqc.com/global/story.asp?s=2866995&ClientType=Print
+http://www.kwru.org/kwru/rene.htm
+http://www.kwru.org/mfol/aboutppehrc.html
+http://www.kwru.org/mfol/callinterpretingstudents.htm
+http://www.kwru.org/mfol/marchforourlives.html
+http://www.kxen.com/infocenter/faqs.php
+http://www.kybaptist.org/kbc/welcome.nsf/pages/newkbb
+http://www.kyero.com/news/2005_02_01_archive.php
+http://www.kyero.com/news/2005_03_01_archive.php
+http://www.kygo.com/home/features_staff_bios.html
+http://www.kyodai.com/news/index,9.en.html
+http://www.kyrene.org/ksdnews/2003/october/
+http://www.kyz.uklinux.net/giflzw.php
+http://www.kzion.com/help_listening.php
+http://www.kznwildlife.com/honorary_policy.htm
+http://www.kzpg.com/Lib/Pages/Books/NSSM-200/09-CH1.html
+http://www.l-m-c.org.uk/texts/feedbacktm.html
+http://www.l5p.com/altpapers.html
+http://www.la-mancha.net/archives/000697.html
+http://www.la-mancha.net/archives/000785.html
+http://www.la-puce.co.uk/books.html
+http://www.la-systems.co.uk/ventilation.htm
+http://www.la-umc.org/bclong.htm
+http://www.la.unm.edu/~katem/E102fa03/toulmin_diagram.htm
+http://www.la.unm.edu/~katem/Engl101F03/standard_policies.htm
+http://www.la.utexas.edu/research/poltheory/sidgwick/me/me.b02.c04.s02.html
+http://www.la.utexas.edu/research/poltheory/sidgwick/ppe/ppe.b03.c03.s06.html
+http://www.la.utexas.edu/research/poltheory/sidgwick/ppe/ppe.b03.c04.s14.html
+http://www.la4x4.com/beginner.htm
+http://www.laavengers.com/community.php
+http://www.lab7.kuis.kyoto-u.ac.jp/admission.html
+http://www.labcaire.co.uk/ref_f200a.htm
+http://www.laboratorium.net/
+http://www.laboratorytalk.com/news/rdp/rdp137.html
+http://www.laboreducator.org/gamplan8.htm
+http://www.laborheritage.org/iall-dc.html
+http://www.laborlawtalk.com/showthread.php?t=1423
+http://www.labornet.org/news/0704/turban.htm
+http://www.labornotes.org/archives/2002/07/a.html
+http://www.laborready.com/common/privacystmt.asp
+http://www.laborresearch.org/section.php/Economy
+http://www.laborresearch.org/union_busting_watch.php
+http://www.labour.gov.bc.ca/esb/facshts/truck_drivers.htm
+http://www.labour.gov.sk.ca/safety/firefighters/transportation.htm
+http://www.labour.gov.sk.ca/safety/forklifts/
+http://www.labour.gov.sk.ca/safety/mine-rescue-manual/chapter-4/mine-fires-2.htm
+http://www.labour.ie/anneferris/issues/20040721153304.html
+http://www.labour.ie/northernireland/newtsm.html
+http://www.labour.ie/northernireland/skills.html
+http://www.labour.nic.in/ilas/secyinter.htm
+http://www.labour.org.uk/aboutlabour
+http://www.labour.org.uk/ac2003qandaarchive/?chatid=58
+http://www.labour.org.uk/ac2003qandaarchive/?chatid=97
+http://www.labour.org.uk/ac2004news?ux_news_id=ac04js
+http://www.labour.org.uk/environment04/
+http://www.labour.org.uk/index.php?id=ac2004archive&chatid=97
+http://www.labour.org.uk/index.php?id=tupartnership
+http://www.labour.org.uk/iraqbrief250303/
+http://www.labour.org.uk/tonyblair3
+http://www.labourbehindthelabel.org/publications/wearing_thin4.htm
+http://www.labourcourt.ie/labour/labcourtweb.nsf/0/80256a770034a2ab802562750041ad18?OpenDocument
+http://www.labourcourt.ie/labour/labcourtweb.nsf/0/80256a770034a2ab802562750041b09e?OpenDocument
+http://www.labourfriendsofiraq.org.uk/archives/000289.html
+http://www.labourfriendsofiraq.org.uk/archives/2004_12.html
+http://www.labourfriendsofiraq.org.uk/archives/2005_02.html
+http://www.labourfriendsofiraq.org.uk/archives/2005_03.html
+http://www.labourfriendsofiraq.org.uk/archives/2005_04.html
+http://www.labourfriendsofiraq.org.uk/archives/2005_05.html
+http://www.labourmobility.com/individuals/toolstests/
+http://www.labourmobility.com/organisations/toolstests/
+http://www.labournet.net/ukunion/0504/wmd1.html
+http://www.labournet.net/ukunion/0506/fbu1.html
+http://www.labournet.net/world/0401/korea4.html
+http://www.labouroflove.org/caring-for-self/creating-support/
+http://www.labourstart.org/
+http://www.labsafety.com/refinfo/fedreg/frnov02.htm
+http://www.labsafety.com/refinfo/techlines/tchln0804.htm
+http://www.labsafety.com/refinfo/techlines/tchln1203.htm
+http://www.labsafety.com/refinfo/techlines/tchln1299.htm
+http://www.labtestsonline.org/news/psa040806.html
+http://www.labtestsonline.org/understanding/conditions/hep.html
+http://www.labtestsonline.org/understanding/features/screening-3.html
+http://www.laburnumcottage.ca/house.html
+http://www.labx.com/v2/newad.cfm?catID=51
+http://www.lacarte.org/fairness/sexuality/boyscouts/diversions.html
+http://www.lacity.org/hra/hrawa1.htm
+http://www.lackofstyle.com/mt/
+http://www.lacma.org/art/perm_col/ancient/ancient.htm
+http://www.lacma.org/art/perm_col/se_asian/asian.htm
+http://www.lacnet.org/the_academic/chat/QA_Mangala.shtml
+http://www.ladah.org/excerptsch1.htm
+http://www.ladas.com/BULLETINS/2002/0202Bulletin/CanadaInterpretPatentClaim.html
+http://www.laddonline.com/
+http://www.ladental.org/benefits.htm
+http://www.ladsoflagos.com/Maris.htm
+http://www.ladybear.com/services/policy.html
+http://www.ladyfootlocker.com/content/custserv.cfm?Q=5&help=sizing_help
+http://www.ladylibrty.com/our_view_archives/2005/skin-deep.html
+http://www.ladylucan.co.uk/index1.htm
+http://www.ladymisstree.com/callipygian/
+http://www.ladysmithchronicle.com/portals-code/obits.cgi?paper=18&submit=&name=&skip=10
+http://www.laetusinpraesens.org/docs/bmethod.php
+http://www.laetusinpraesens.org/docs/infwill/inf3.php
+http://www.laetusinpraesens.org/docs70s/71intorg.php
+http://www.lafarge.com/lafarge_en/htm/lafarge_acquires_assets_concrete.html
+http://www.lafarge.com/lafarge_en/htm/sharp_increase_interim_results.html
+http://www.lafayette-online.com/cgi-bin/coranto/viewnews.cgi?id=EEEuyEElkVfLXEMoGi
+http://www.lafayette.edu/news.php/view/2327/
+http://www.lafayetteanimalaid.org/meddogs.htm
+http://www.lafayettecounty.org/bizdev/commercialsites.html
+http://www.lafayettejc.com/News_Promo.shtml
+http://www.lafn.org/~dave/trans/energy/does_mt_saveE.html
+http://www.laforlag.nu/cgi-bin/laforlag/index.pl/metabolic-research-center-weight-loss.html
+http://www.laforlag.nu/cgi-bin/laforlag/index.pl/obesity-attractive.html
+http://www.lahinchgolf.com/
+http://www.lakecityreporter.com/guestbook
+http://www.lakedistrictwalks.com/glaram.html
+http://www.lakedistrictwalks.com/losman.html
+http://www.lakedistrictwalks.com/sedcal.html
+http://www.lakegreeley.com/jobsf/sapp1.htm
+http://www.lakeheadualumni.ca/category/6
+http://www.lakeland.ie/farm-notes-dec-2004.htm
+http://www.lakelandptv.org/Pages/June/09Jun04.htm
+http://www.lakesurf.com/MA.htm
+http://www.laketahoechamber.com/area/state.html
+http://www.laksamana.net/vnews.cfm?ncat=41&news_id=7384
+http://www.lakungfu.com/kungfusifujackmanwong.html
+http://www.lalabor.com/main/id/97.html
+http://www.lalecheleague.org/FAQ/bfpregnant.html
+http://www.lalecheleague.org/llleaderweb/LV/LVAprMay98p21.html
+http://www.laleva.cc/choice/nutrition_nytimes.html
+http://www.lamasbeauty.com/fashion/image_making/attitude_check_part1.htm
+http://www.lamb-of-god.com/ashes2/info/privacy_policy.php
+http://www.lambdalit.org/LBReport/MarApr04/De%20Veaux.html
+http://www.laminatewoodfloor.com/
+http://www.lammd.com/book/chapter2.cfm
+http://www.lammd.com/book/chapter4.cfm
+http://www.lamp.ac.uk/recruitment/press_releases/ebroadcast.htm
+http://www.lamp.ac.uk/su/revision.htm
+http://www.lamp.ac.uk/su/welfare/physical.htm
+http://www.lancastergreens.nshc.co.uk/GreenCllrs.htm
+http://www.lancastergreens.nshc.co.uk/citycouncilelections.htm
+http://www.lancasterukonline.net/
+http://www.lanceandeskimo.com/guest/wal-mart.shtml
+http://www.lancearthur.com/archives/001316.html
+http://www.lanceradvanced.com/XForm/Stories/Biker.html
+http://www.lancetteer.com/feature11_coc_opera_house.htm
+http://www.lancs.ac.uk/depts/conted/nwsummerschools.htm
+http://www.lancs.ac.uk/depts/personnel/sabschem.htm
+http://www.lancs.ac.uk/fss/wstudies/iff.htm
+http://www.lancs.ac.uk/iss/rules/security.htm
+http://www.lancs.ac.uk/palatine/reports/key-staf.htm
+http://www.lancs.ac.uk/palatine/reports/pop.htm
+http://www.lancs.ac.uk/users/counsel/docs/exams.html
+http://www.landacleary.com/go_as_you_please_Ireland.htm
+http://www.landandwater.com/features/vol41no1/vol41no1_2.html
+http://www.landcareresearch.co.nz/research/biodiversity/forest/waitutu/index.asp
+http://www.landcareresearch.co.nz/research/rurallanduse/soilservicesprog.asp
+http://www.landecon.cam.ac.uk/under_grad_study.htm
+http://www.landecon.cam.ac.uk/under_prospectus.htm
+http://www.lander.edu/rsfox/310TechniquesLab.html
+http://www.landfood.unimelb.edu.au/courses/tafe/parttime.html
+http://www.landings.com/_landings/Forums/md/md-internal.html
+http://www.landinstitute.org/vnews/display.v/ART/1995/01/18/41ec44ddf1681
+http://www.landinstitute.org/vnews/display.v/ART/2002/09/04/3d751c7faaac1
+http://www.landlinemag.com/todays_news/Daily/2002/March02/030602.htm
+http://www.landlinemag.com/todays_news/Daily/2005/Jun05/060705.htm
+http://www.landliving.com/archives/0000042005.aspx
+http://www.landliving.com/articles/0000000581.aspx
+http://www.landlordandtenant.org/faqs/be.html
+http://www.landlordzone.co.uk/dir/education-courses.htm
+http://www.landmark-project.com/blogmeister/index.php?panel=w&display=warlick
+http://www.landmarkcases.org/mapp/society.html
+http://www.landmarkcases.org/plessy/excerpts_min.html
+http://www.landmarkcases.org/tinker/reaction.html
+http://www.landmarklegal.org/complaints.cfm?webpage_id=456
+http://www.landofodds.com/store/alldolledup.htm
+http://www.landofodds.com/store/press080103.htm
+http://www.landor.com/index.cfm?fuseaction=cBranding.getArticle&storyid=134
+http://www.landoverbaptist.net/forums/index.php?showtopic=3751&mode=linear&view=findpost&p=63068
+http://www.landoverbaptist.net/forums/index.php?showtopic=3751&view=getlastpost
+http://www.landoverbaptist.net/forums/index.php?showtopic=3751&view=getnewpost
+http://www.landoverbaptist.org/brotherharry/august2001.html
+http://www.landrights.org/OCS/CARA.cushman_testimony.99_6.htm
+http://www.landrum-brown.com/MasterPlans/PVD/Study%20Resource.htm
+http://www.landstewardshipproject.org/pr/newsr_112700.html
+http://www.landwatch.net/fallnl/fall_2002_newsltr.htm
+http://www.lane.ca/200303-index.php
+http://www.lang.ltsn.ac.uk/700reasons/reasons.aspx?keywordid=490
+http://www.lang.ltsn.ac.uk/700reasons/reasons.aspx?keywordid=703
+http://www.lang.ltsn.ac.uk/700reasons/reasons.aspx?keywordid=743
+http://www.lang.ltsn.ac.uk/700reasons/reasons.aspx?keywordid=771
+http://www.lang.ltsn.ac.uk/700reasons/reasons.aspx?keywordid=918
+http://www.lang.ltsn.ac.uk/events/llaseventarchiveitem.aspx?resourceid=460
+http://www.lang.ltsn.ac.uk/resources/conferenceitem.aspx?resourceid=1391
+http://www.lang.nagoya-u.ac.jp/~matsuoka/EG-Knutsford.html
+http://www.langa.com/newsletters/2001/2001-10-01.htm
+http://www.langa.com/newsletters/pre1999/5-apr-98.htm
+http://www.langcent.manchester.ac.uk/learningresources/humanitieslimegrove/library/
+http://www.langemark.com/taxonomy/term/27
+http://www.langer.camelot.de/Articles/C++Report/NewIOStreams/NewIOStreams.html
+http://www.langer.camelot.de/Articles/C++Report/StandardFacets/StandardFacets.html
+http://www.langer.camelot.de/Articles/Cuj/Internationalization/I18N.html
+http://www.langer.camelot.de/Resources/Books/J2SE.htm
+http://www.langleys.com/main.asp?page=29
+http://www.langmaker.com/db/bbl_rinti_form.htm
+http://www.langmaker.com/ml0104.htm
+http://www.langmaker.com/outpost/eswldeng.htm
+http://www.langmichener.com/index.cfm?fuseaction=content.contentDetail&ID=8493&tID=244
+http://www.langshotels.co.uk/glasgow/aroundglasgow.asp
+http://www.languageandlaw.org/PLAINENGLISH.HTM
+http://www.languagecrossing.com/support/faq/spanish_lessons.html
+http://www.languagehat.com/archives/000872.php
+http://www.languagehat.com/archives/001711.php
+http://www.languageinindia.com/oct2001/foreign3.html
+http://www.languages.ait.ac.th/EL21DISC.HTM
+http://www.languages.salford.ac.uk/postgraduate/traniint/modules.php
+http://www.lankalibrary.com/myths/saradiel3.htm
+http://www.lankalibrary.com/news.html
+http://www.lankalibrary.com/news/yala.htm
+http://www.lanl.gov/DLDSTP/fast/
+http://www.lanl.gov/education/jumpstart/programs.shtml
+http://www.lanl.gov/news/index.php?fuseaction=home.story&story_id=1196
+http://www.lanl.gov/orgs/pa/News/020899.html
+http://www.lanl.gov/worklife/terminations/notices.shtml
+http://www.lanl.gov/worldview/news/releases/archive/01-083.shtml
+http://www.lannetlinux.com/mgr_guide/Manager's-Guide-to-Linux.html
+http://www.lansademo.com/Helptext.htm
+http://www.lansingsc.org/pages/stpetersburg.cfm
+http://www.lao.ca.gov/ballot/2004/1A_11_2004.htm
+http://www.laohumrights.org/99octoga.html
+http://www.laox.co.jp/laox/eng_gc.html
+http://www.lapbandsolutions.com/faq.html
+http://www.lapdonline.org/general_information/did_you_know/did_you_know_main.htm
+http://www.lapetite.com/summercamps.html
+http://www.lapidaryjournal.com/feature/aug00str.cfm
+http://www.lapidaryjournal.com/rockshops/
+http://www.laportehealth.org/healthcare/cancer/cancersvcs.html
+http://www.lappan.de/foreign-rights.php
+http://www.larchmontgazette.com/2004/articles/20041216volboard.html
+http://www.largelypositive.com/Pages/Links.html
+http://www.largelypositive.com/Pages/SelfEsteem4.html
+http://www.largelypositive.com/Pages/news05_2004.html
+http://www.largeprimenumbers.com/archive.php?display=200501
+http://www.larkspring.com/Kid/Book2/2-9.html
+http://www.larouchepub.com/hzl/2002/2950lautenbach.html
+http://www.larouchepub.com/lar/2003/3019_church_and_state.html
+http://www.larouchepub.com/pr_lar/2003/031004hitl_schwarzen.html
+http://www.larouchepub.com/pubinfo.html
+http://www.larp.com/jahavra/trouble.html
+http://www.larryelder.com/
+http://www.larrykrantz.com/wyept1.htm
+http://www.larsoa.org.uk/news_dec03/rsnews_22dec.html
+http://www.las-cruces.org/fire/strength_training.html
+http://www.las-inc.com/press_releases/2003/Feb03/pr_021403.shtml
+http://www.lasa.org.uk/cgi-bin/publisher/display.cgi?124-0104-60002+computanews
+http://www.lasa.org.uk/knowledgebase/pages/cscrprojreflections.shtml
+http://www.lasallebank.com/articles/runaway.html
+http://www.laser66.com/html/advice.html
+http://www.laseraid.com/
+http://www.laserrania.com/odysseys/sep_01.html
+http://www.lasertraining.org/
+http://www.lasfs.org/lasfs/about/pubs/menace/Men1996/men-9605.htm
+http://www.lasr.net/remote/whylasr.php
+http://www.lassp.cornell.edu/sethna/Cracks/Zero_Radius_of_Convergence.html
+http://www.last.fm/faq.php
+http://www.last.fm/forum/897/_/34862/3
+http://www.last.fm/forum/899/_/18573
+http://www.lastfirst.net/catalog.php?cPath=923
+http://www.lastminute.com/lmn/pages/tandc_popup.jhtml?POSITION=replaceme
+http://www.lastminutegolfer.com/Course/Course.asp?CourseID=168
+http://www.lastminutetravel.com/PageUserAgreement.aspx
+http://www.lastoftheindependents.com/chivington.html
+http://www.lasuerte.org/cafta2.htm
+http://www.lasuerte.org/facultyNekaris.htm
+http://www.lasuperiorcourt.org/courtrules/Chapter3.htm
+http://www.lasvegassun.com/sunbin/stories/archives/2000/may/23/510291667.html?title%3Agermans+title%3Aeye+title%3Adeal
+http://www.lasvegassun.com/sunbin/stories/racing/1999/jul/23/509086743.html
+http://www.lasvegassun.com/sunbin/stories/w-asia/2005/feb/06/020607184.html
+http://www.lasvegassun.com/sunbin/stories/w-me/2005/feb/02/020208977.html
+http://www.lasvegastripreport.com/display_tr.php3?tr_id=2038
+http://www.lasvegasweekly.com/2002/09_11/news_coverstory_index.html
+http://www.lasvegasweekly.com/2005/05/19/feature1.html
+http://www.lasvegasweekly.com/features/the_volunteer.html
+http://www.laterlife.com/laterlife-looking-good-in-laterlife37.htm
+http://www.laterooms.com/en/C90142.html
+http://www.latestbuy.com.au/oggz_morph_lights.html
+http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/2414&
+http://www.latimes.com/business/investing/sfl-ybask20jun20,1,1797338.column?coll=la-utilities-business-money
+http://www.latimes.com/business/specials/la-fi-newdeal30dec30,1,7708201.story
+http://www.latimes.com/classified/realestate/results.classified?class=3660
+http://www.latimes.com/extras/careereducation/consultant.html
+http://www.latimes.com/extras/homedesign/feature_story.html
+http://www.latimes.com/features/health/medicine/la-me-infants6jun06,1,5667481.story?coll=la-health-medicine
+http://www.latimes.com/features/health/medicine/la-na-fda17jun17,1,2165269.story?coll=la-health-medicine
+http://www.latimes.com/features/health/women/la-me-infants6jun06,1,3172563.story?coll=la-health-womens
+http://www.latimes.com/features/lifestyle/cl-et-rutten14may14,0,3651918.column?coll=la-home-utilities
+http://www.latimes.com/features/lifestyle/cl-et-rutten7may07,0,4004916.column?coll=la-home-utilities
+http://www.latimes.com/features/printedition/books/la-et-book20jun20,1,6103221.story?coll=la-headlines-bookreview
+http://www.latimes.com/news/columnists/cl-et-rutten14may14,1,6093957.column?coll=la-news-columns
+http://www.latimes.com/news/custom/showcase/cl-et-rutten14may14,0,3582970.column
+http://www.latimes.com/news/local/la-me-lopez8jun08,1,151769.column
+http://www.latimes.com/news/local/la-me-lopez8jun08,1,151769.column?coll=la-headlines-california
+http://www.latimes.com/news/local/la-me-profile14jun14,1,1306183.story?coll=la-util-news-local
+http://www.latimes.com/news/local/la-me-waterford7feb07,0,7883953.story
+http://www.latimes.com/news/nationworld/nation/la-na-bush20may20,0,4316498.story
+http://www.latimes.com/news/nationworld/world/la-021705intel_lat,0,864926.story
+http://www.latimes.com/news/opinion/commentary/la-oe-scheer21dec21,0,2909225.column
+http://www.latimes.com/news/politics/la-2004_elections-sg.story
+http://www.latimes.com/news/politics/la-et-dems16feb16,0,1388898.story?coll=la-home-politics
+http://www.latimes.com/news/politics/la-me-mayor26jan26,0,3793103.story?coll=la-home-politics
+http://www.latimes.com/news/printedition/california/la-me-profile14jun14,1,5125978.story?coll=la-headlines-pe-california
+http://www.latimes.com/news/printedition/opinion/la-op-cuba19jun19,1,6049167.story?coll=la-news-comment
+http://www.latimes.com/sports/tennis/la-sp-wimbledon23jun23,1,4608490.story?coll=la-headlines-sports
+http://www.latimes.com/travel/columnists/la-tr-qa6feb06,1,6576746.column
+http://www.latimes.com/travel/printedition/la-tr-spano12dec12,1,2943662.column?coll=la-headlines-travel
+http://www.latinainstitute.org/takeaction.html
+http://www.latinbayarea.com/entertainment/music/musictypes.htm
+http://www.latinschool.org/liveandlearn/computers.html
+http://www.latroba.co.uk/uk/ukestate.php
+http://www.latrobe.edu.au/indiangallery/default.htm
+http://www.latrobe.edu.au/lasu/eslresour/reading.html
+http://www.latrobe.edu.au/physics/ugrad/
+http://www.latrobe.edu.au/screeningthepast/style.html
+http://www.latrobe.edu.au/webaccess/teach-learn.html
+http://www.latter-blum.com/content/company/prohead.asp
+http://www.latter-blum.com/rl/appraisal/
+http://www.latter-blum.com/rl/appraisal/default.asp
+http://www.latter-blum.com/subdivisionlist/NOLAMLS/ROBERT/Subdivisions.htm
+http://www.latterdaylampoon.com/advice/cheryl/
+http://www.laughatliberals.com/blog/archives/2005/somebody-get-teddy-a-drink/
+http://www.laughingoutlaw.com.au/store/categories.asp?cID=1&p=17
+http://www.laughlin.af.mil/Legal/transition_compensation_for_abus.htm
+http://www.laumc.org/worship/sermons_091904.htm
+http://www.lauraingraham.com/
+http://www.laurelhurstcc.com/Letter/news10&1101.html
+http://www.laurelmarina.com/NewFiles/dive.html
+http://www.laurelvfd.org/
+http://www.lausanne.org/Brix?pageID=14284
+http://www.lavalane.org/blava/2005/01/inauguration-spending.html
+http://www.lavasoftusa.com/software/adaware/
+http://www.lavasoftusa.com/software/adawareprofessional/
+http://www.law-lib.utoronto.ca/resguide/medical.htm
+http://www.law.auckland.ac.nz/handbook/complaintsrelati.html
+http://www.law.berkeley.edu/centers/bclbe/visitors/ForeignForms.html
+http://www.law.berkeley.edu/php-programs/printpage.php?uri=/prospectives/academics/courses/criminal.html
+http://www.law.berkeley.edu/prospectives/academics/courses/criminal.html
+http://www.law.cam.ac.uk/docs/view.php?doc=205
+http://www.law.columbia.edu/prosp_students/jd_prog/applic_inf/ways_app
+http://www.law.com/
+http://www.law.com/jsp/article.jsp?id=1032128729744
+http://www.law.cornell.edu/copyright/cases/499_US_340.htm
+http://www.law.cornell.edu/ethics/dc/narr/DC_NARR_1_09.HTM
+http://www.law.cornell.edu/nyctap/I04_0073.htm
+http://www.law.cornell.edu/nyctap/I99_0056.htm
+http://www.law.cornell.edu/rules/fre/rules.htm
+http://www.law.cornell.edu/socsec/martin/2socsech.htm
+http://www.law.duke.edu/boylesite/Subject.htm
+http://www.law.duke.edu/cspd/probonopublico.html
+http://www.law.duke.edu/internat/europe/photo.html
+http://www.law.duke.edu/journals/dltr/articles/2001dltr0033.html
+http://www.law.duke.edu/journals/dltr/articles/2002dltr0004.html
+http://www.law.duke.edu/journals/dltr/articles/2002dltr0023.html
+http://www.law.duke.edu/journals/dltr/articles/2005dltr0017.html
+http://www.law.duke.edu/journals/lcp/articles/lcp61dAutumn1998p233.htm
+http://www.law.duke.edu/pd/papers.html
+http://www.law.duke.edu/student/act/mootCourt/pages/jessup.html
+http://www.law.fsu.edu/journals/landuse/Vol132/Butl.htm
+http://www.law.georgetown.edu/career/fallcolumn5.html
+http://www.law.georgetown.edu/finaid/loanconsolidation/
+http://www.law.gmu.edu/econ/history.html
+http://www.law.gwu.edu/apply/llmadmitus.asp
+http://www.law.harvard.edu/academics/graduate/admissions/sjd.php
+http://www.law.harvard.edu/academics/registrar/exams_01-02/html/ancheta2.html
+http://www.law.harvard.edu/library/services/ill/hls_ill.php
+http://www.law.harvard.edu/news/2005/04/12_service.php
+http://www.law.harvard.edu/programs/hrp/internships.htm
+http://www.law.harvard.edu/publications/evidenceiii/cases/robbins.htm
+http://www.law.harvard.edu/students/finaid/general/resources/scincome.php
+http://www.law.harvard.edu/students/orgs/jol/vol41_1/jacksonreply.php
+http://www.law.harvard.edu/students/orgs/wlj/vol27/thomas-graham.php
+http://www.law.indiana.edu/envdec/c.html
+http://www.law.kuleuven.ac.be/casebook/
+http://www.law.mcgill.ca/institutes/csri/paper-europeancommission.php3
+http://www.law.memphis.edu/career/JobPosts/nontraditional.htm
+http://www.law.msu.edu/amicus/wi_2002-03/howard.html
+http://www.law.ou.edu/hist/adams1.html
+http://www.law.ou.edu/hist/albplan.html
+http://www.law.qut.edu.au/hschool/faq.jsp
+http://www.law.stanford.edu/publications/lawyer/issues/71/klausner.html
+http://www.law.state.ak.us/doclibrary/conconv/25.html
+http://www.law.state.ak.us/doclibrary/conconv/37.html
+http://www.law.stetson.edu/bo/employ.asp
+http://www.law.stetson.edu/courses/torts/default.htm
+http://www.law.uc.edu/CCL/34ActRls/rule15c3-1b.html
+http://www.law.uc.edu/CCL/34ActRls/rule3b-17.html
+http://www.law.uchicago.edu/news/madscientists.html
+http://www.law.umkc.edu/faculty/projects/FTrials/scottsboro/SB_33Brid.html
+http://www.law.umkc.edu/faculty/projects/ftrials/Bounty/bountycompany.html
+http://www.law.umkc.edu/faculty/projects/ftrials/Hauptmann/Ransom.htm
+http://www.law.umkc.edu/faculty/projects/ftrials/LizzieBorden/biographiesborden.html
+http://www.law.umkc.edu/faculty/projects/ftrials/anthony/sbaaccount.html
+http://www.law.umkc.edu/faculty/projects/ftrials/anthony/voteletters.html
+http://www.law.umkc.edu/faculty/projects/ftrials/bruce/brucemonologues.html
+http://www.law.umkc.edu/faculty/projects/ftrials/conlaw/conhist.html
+http://www.law.umkc.edu/faculty/projects/ftrials/conlaw/pruneyard.html
+http://www.law.umkc.edu/faculty/projects/ftrials/conlaw/richmond.html
+http://www.law.umkc.edu/faculty/projects/ftrials/conlaw/stanley2.html
+http://www.law.umkc.edu/faculty/projects/ftrials/firstamendment/tinker.html
+http://www.law.umkc.edu/faculty/projects/ftrials/scopes/bryanw.htm
+http://www.law.umkc.edu/faculty/projects/ftrials/trialsgoals.html
+http://www.law.umkc.edu/faculty/projects/ftrials/wilde/sexlies.html
+http://www.law.usyd.edu.au/~library/lawx/sept98/contracts.htm
+http://www.law.villanova.edu/currentstudents/academicsupport/studygroups.asp
+http://www.law.virginia.edu/home2002/html/academics/extern.htm
+http://www.law2.byu.edu/Law_Library/Digital_Collections/Robert_Thomas/100.html
+http://www.law2.byu.edu/alisymp/newAlisymhome.htm
+http://www.lawac.org/speech/welteke%202002.htm
+http://www.lawandeverythingelse.com/id54.htm
+http://www.lawandliberty.org/malcolm.htm
+http://www.lawbookexchange.com/july04/law-books-july04-12.html
+http://www.lawcareers.net/Solicitors/TrainingContract.aspx
+http://www.laweekly.com/ink/03/26/features-kaplan.php
+http://www.laweekly.com/ink/03/26/film-powers.php
+http://www.laweekly.com/ink/04/09/features-quinones.php
+http://www.lawfirminc.com/texts/1204/incamera1204.html
+http://www.lawfoundationbc.org/new-summ.html
+http://www.lawgazette.com.sg/2000-6/focus2.htm
+http://www.lawguru.com/articles/showarticle.php?id=26
+http://www.lawguru.com/forums/lofiversion/index.php/t47.html
+http://www.lawhelp.org/documents/81281divorce.htm
+http://www.lawhern.org/
+http://www.lawjaw.com/profiles.html
+http://www.lawlawlaw.com/patents-vs-trade-secrets.html
+http://www.lawlib.state.ma.us/updates.html
+http://www.lawlink.nsw.gov.au/cpd.nsf/pages/vaw-aar-5
+http://www.lawlink.nsw.gov.au/ir.nsf/pages/practicedirection2
+http://www.lawlink.nsw.gov.au/lec/lec.nsf/feedbackform
+http://www.lawlink.nsw.gov.au/lec/lec.nsf/feedbackformservice
+http://www.lawlink.nsw.gov.au/sc%5Csc.nsf/pages/spigelman_020703
+http://www.lawlink.nsw.gov.au/sc%5Csc.nsf/pages/wood_30072004
+http://www.lawlink.nsw.gov.au/sc/sc.nsf/pages/spigelman_291004
+http://www.lawmall.com/lawbook/tell_friend.php
+http://www.lawmemo.com/default.htm
+http://www.lawmoose.com/index.cfm?Action=Library.&Topic=MN165074
+http://www.lawmoose.com/index.cfm?Action=Library.&Topic=WI165074
+http://www.lawontheweb.co.uk/webster.htm
+http://www.laworderreferendum.org.nz/Crimestories.htm
+http://www.lawpublish.com/ftcintan.html
+http://www.lawrence.com/blogs/godjilla/2005/jun/20/artichokes/
+http://www.lawrence.com/news/2005/mar/09/brothersinarmsxbox/
+http://www.lawrence.com/places/mad_greek_restaurant/
+http://www.lawrence.edu/fast/boardmaw/mcntn_rules.html
+http://www.lawrence.edu/fast/kimm/reviews.html
+http://www.lawrenceplanning.org/index-faqs.shtml
+http://www.lawrencetown.com/farming.htm
+http://www.lawreports.co.uk/chanjulc0.2.htm
+http://www.lawsociety.com.au/page.asp?PartID=3584
+http://www.lawsociety.com.au/page.asp?PartID=4287
+http://www.lawsociety.com.au/page.asp?PartID=5279
+http://www.lawsociety.com.au/page.asp?PartID=7841
+http://www.lawsociety.com.au/page.asp?partID=6816
+http://www.lawsociety.com.au/page.asp?partID=7188
+http://www.lawsociety.com.au/page.asp?partID=7315
+http://www.lawsociety.com.au/page.asp?partID=7568
+http://www.lawsociety.com.au/page.asp?partID=7841
+http://www.lawsociety.com.au/page.asp?partID=8027
+http://www.lawsociety.com.au/page.asp?partID=8192
+http://www.lawsociety.com.au/page.asp?partid=1552
+http://www.lawsociety.com.au/page.asp?partid=16303
+http://www.lawsociety.com.au/page.asp?partid=1717
+http://www.lawsociety.com.au/page.asp?partid=2126
+http://www.lawsociety.com.au/page.asp?partid=3460
+http://www.lawsociety.com.au/page.asp?partid=3584
+http://www.lawsociety.com.au/page.asp?partid=4287
+http://www.lawsociety.com.au/page.asp?partid=5276
+http://www.lawsociety.com.au/page.asp?partid=5431
+http://www.lawsociety.com.au/page.asp?partid=5557
+http://www.lawsociety.com.au/page.asp?partid=5825
+http://www.lawsociety.com.au/page.asp?partid=826
+http://www.lawsociety.mb.ca/case_digest_99_10.htm
+http://www.lawsociety.sk.ca/
+http://www.lawteacher.net/ELS/Law%20Making/Judicial%20Precedent%202.htm
+http://www.lawteacher.net/Family/Family10.htm
+http://www.lawtechjournal.com/archives/blt/i6-rjy.html
+http://www.lawyerethics.org/mt/archives/001019.html
+http://www.lawyers.com/lawyers/A~1001146~LDS/DIVORCE+VISITATION+SCHEDULE.html
+http://www.lawyers.com/lawyers/A~1001367~LDS/LIVING+TOGETHER.html
+http://www.lawyers.com/lawyers/A~1001840~LDS/FAQ+HOUSING+DISCRIMINATION.html
+http://www.lawyerscomm.org/ep04/ep0920/edobserver0917.html
+http://www.lawyerscomm.org/features/arnwinestatement/statement2.html
+http://www.laxpower.com/faqs/faq.htm
+http://www.layhands.com/VisualBaseball/
+http://www.laymyhat.com/newsletters/newsletter2.htm
+http://www.laymyhat.com/newsletters/newsletter5.htm
+http://www.laynechristensen.com/oilgas_services.html
+http://www.layover.com/driverscorner/safety/0804.html
+http://www.lazarus.freepascal.org/
+http://www.lazaruscorporation.co.uk/v4/zenon/
+http://www.lazybeescripts.co.uk/Sketches/Index.htm
+http://www.lbjlib.utexas.edu/johnson/archives.hom/speeches.hom/680117.asp
+http://www.lbl.gov/Publications/Currents/Archive/Apr-18-2003.html
+http://www.lbl.gov/Publications/Currents/Archive/Oct-03-2003.html
+http://www.lbl.gov/abc/Basic.html
+http://www.lbl.gov/abc/Glossary.html
+http://www.lbo.state.oh.us/123ga/fiscalnotes/123ga/SB0144SP.HTM
+http://www.lbo.state.oh.us/fiscal/fiscalnotes/125ga/SB0080SP.HTM
+http://www.lboro.ac.uk/admin/elsu/presess.htm
+http://www.lboro.ac.uk/gawc/rb/rb61.html
+http://www.lbp.police.uk/press_release/articles/2004%5CFebruary%5C24%5C1.htm
+http://www.lbscr.demon.co.uk/livery/
+http://www.lbunion.com/currentissue/grunionreader.php?focusissuedate=2004-11-08&grunion_id=248
+http://www.lbwf.gov.uk/index/social/social-inclusion/access-info-pack/access-section1.htm
+http://www.lc-tech.co.uk/
+http://www.lc-tech.co.uk/hardware.htm
+http://www.lc.unsw.edu.au/onlib/exam.html
+http://www.lcaaa.org/services.htm
+http://www.lcanimal.org/invest/baird_news003.htm
+http://www.lcb.state.pa.us/RETAIL/STOct01.asp
+http://www.lcc.gatech.edu/gallery/rhetoric/terms/ethos.html
+http://www.lcc.gatech.edu/~bcliff/cliff_WritingSpring05.html
+http://www.lcc.gatech.edu/~herrington/classes/3401f2000/vissers.html
+http://www.lcdf.org/~eddietwo/xmahjongg/man.html
+http://www.lcfc.premiumtv.co.uk/page/News/NewsDetail/0,,10274~676917,00.html
+http://www.lchwelcome.org/cap-news2.html
+http://www.lclark.edu/dept/admiss/7overnighthosts.html
+http://www.lclark.edu/org/artslive/citylecspr03.html
+http://www.lclark.edu/~krauss/ORTESOL2000web/home.html
+http://www.lclark.edu/~soan370/glossary/rawshit2.html
+http://www.lcmedia.com/mind170.htm
+http://www.lcms.org/ca/www/cyclopedia/02/display.asp?t1=W&t2=o
+http://www.lcms.org/pages/internal.asp?NavID=3728
+http://www.lcnp.org/wcourt/wasedalecture.htm
+http://www.lcnpub.com/water.htm
+http://www.lcolby.com/b-chap6.htm
+http://www.lcsc.edu/ss150/u5s2p4.htm
+http://www.lcsc.edu/welcome/history.htm
+http://www.ld-add.com/Info.htm
+http://www.ld.org/livingwithld/doihaveld_knowing.cfm
+http://www.lda.gov.uk/server.php?show=ConWebDoc.805
+http://www.lda.gov.uk/server.php?show=ConWebDoc.805&setPaginate=No
+http://www.ldaamerica.org/aboutld/teachers/understanding/types.asp
+http://www.ldac-taac.ca/InDepth/identify_begin-e.asp
+http://www.ldaca.org/gram/lewkowic.htm
+http://www.ldc.upenn.edu/Projects/LVDID/
+http://www.ldcm.org/rentals.html
+http://www.ldolphin.org/backslide.html
+http://www.ldolphin.org/corpsin.html
+http://www.ldonline.org/article.php?id=362&loc=87
+http://www.ldonline.org/article.php?max=20&id=0&loc=103
+http://www.ldonline.org/article.php?max=20&id=0&loc=47
+http://www.ldonline.org/article.php?max=20&id=607&loc=49
+http://www.ldonline.org/article.php?max=20&id=607&loc=51
+http://www.ldonline.org/article.php?max=20&skip=&special_grouping=&id=0&loc=40&start=21&end=40&sortby=title&show_abstract=1
+http://www.ldonline.org/first_person/christmas_lesson.html
+http://www.ldonline.org/first_person/first_person_archives.html
+http://www.ldpride.net/learningstyles.MI.htm
+http://www.ldrc.ca/help/howto/html.php
+http://www.ldresources.com/articles/growing_words.html
+http://www.ldresources.com/articles/learning_despite_ld.html
+http://www.ldresources.org/?p=569
+http://www.lds-mormon.com/evolutionandmormonism.shtml
+http://www.lds-mormon.com/tmpc.shtml
+http://www.ldsfilm.com/bio/bioH2.html
+http://www.ldsfilm.com/bio/bioV.html
+http://www.ldsfilm.com/bio/bioW.html
+http://www.ldsfilm.com/bio/bioW2.html
+http://www.ldsfilm.com/directors/Dutcher2.html
+http://www.ldsfilm.com/faq.html
+http://www.ldsleather.com/patches.html
+http://www.ldsr.org/info/tip.phtml?tip=2
+http://www.ldu.leeds.ac.uk/ldu/projects/tqef/centres.htm
+http://www.le-brewery.com/indarticle.htm
+http://www.le-fresnoy.tm.fr/english/e_ecole.htm
+http://www.le-marche.com/Marche/html/property.htm
+http://www.le.ac.uk/arthistory/cert/
+http://www.le.ac.uk/psychology/acn5/PS2017.html
+http://www.le.ac.uk/unions/aut/news/recog.html
+http://www.leaa.org/218/fotisletter.html
+http://www.leaa.org/218/leghistory.html
+http://www.leacock.com/locust/loop/rules.html
+http://www.leader-values.com/Content/default.asp?ContentTypeID=2
+http://www.leader-values.com/Content/detail.asp?ContentDetailID=102
+http://www.leader-values.com/Content/detail.asp?ContentDetailID=127
+http://www.leader-values.com/Content/detail.asp?ContentDetailID=220
+http://www.leader-values.com/Content/detail.asp?ContentDetailID=277
+http://www.leader-values.com/Content/detail.asp?ContentDetailID=346
+http://www.leader-values.com/Content/detail.asp?ContentDetailID=47
+http://www.leadercomputer.com/testimonials.htm
+http://www.leadermortgage.com/Programs.asp
+http://www.leaders.net/for/Rick/connecting-people/
+http://www.leadershipnow.com/leadershop/4857-5.html
+http://www.leadershipnow.com/leadershop/4932-9.html
+http://www.leadershipstudio.com/execgrowthassess.html
+http://www.leadersindubai.com/pressroom.cfm?prid=3
+http://www.leaderu.com/common/green.html
+http://www.leaderu.com/ftissues/ft9308/reviews/kass.html
+http://www.leaderu.com/ftissues/ft9312/opinion/kamisar.html
+http://www.leaderu.com/marco/marriage/
+http://www.leaderu.com/menus/featured.html
+http://www.leaderu.com/msu/chapter7.html
+http://www.leaderu.com/offices/billcraig/docs/talbott2.html
+http://www.leaderu.com/orgs/bpf/lguide/leader05.html
+http://www.leaderu.com/orgs/bpf/pathways/cheerup.html
+http://www.leaderu.com/orgs/narth/1995papers/satinover.html
+http://www.leaderu.com/orgs/probe/docs/breakdwn.html
+http://www.leaderu.com/orgs/probe/docs/cap-pun.html
+http://www.leaderu.com/orgs/probe/docs/carols.html
+http://www.leaderu.com/orgs/probe/docs/char-def.html
+http://www.leaderu.com/orgs/probe/docs/darwinbx.html
+http://www.leaderu.com/orgs/probe/docs/film-xn.html
+http://www.leaderu.com/orgs/probe/docs/homosex1.html
+http://www.leaderu.com/real/ri9301/thewind.html
+http://www.leaderu.com/real/ri9502/sommers.html
+http://www.leaderu.com/real/ri9503/gill.html
+http://www.leaderu.com/science/kobe.html
+http://www.leaderu.com/stonewall/pages/carol_c.html
+http://www.leaderu.com/stonewall/pages/michaelr.html
+http://www.leaderu.com/university/facultyclubsandpews.html
+http://www.leadingedgebc.ca/dyn.Business_Leaders.php
+http://www.leadingedgeresumes.com/
+http://www.leadingtoday.org/Onmag/dec03/gt-dec03.html
+http://www.leadlists.com/nf_info_1.htm
+http://www.leaf.ca/legal-status_1999.html
+http://www.leafpile.com/TravelLog/EuropeTravelItinerary_Slovakia.html
+http://www.league.org/league/projects/sail/catalog_2003.htm
+http://www.league.org/publication/abstracts/leadership/labs0388-2.html
+http://www.leajonesmusic.com/4more.htm
+http://www.leanadvisors.com/Lean/Manufacturing/Workshops2.cfm?CourseID=0
+http://www.leanadvisors.com/Lean/Strategy/value_stream_mapping.cfm
+http://www.leanadvisors.com/Lean/tools/5S.cfm
+http://www.leanleft.com/archives/2005/04/
+http://www.leanleft.com/archives/2005/06/13/4280/
+http://www.leanleft.com/archives/2005/06/17/4286/
+http://www.leannehoad.com.au/aboutus/aboutus_facilities.asp
+http://www.leannehoad.com.au/aboutus/aboutus_facilities.htm
+http://www.leannehoad.com.au/faq.asp
+http://www.leannehoad.com.au/faq.htm
+http://www.leannehoad.com.au/news/news_aug2003.htm
+http://www.leannehoad.com.au/news/news_sep2004.asp
+http://www.leannehoad.com.au/news/news_sep2004.htm
+http://www.leannehoad.com.au/resourcecentre/biztips/facilities.asp
+http://www.leannehoad.com.au/resourcecentre/biztips/facilities.htm
+http://www.leaonline.com/doi/abs/10.1207/S15327736ME1503_4
+http://www.leaonline.com/doi/pdf/10.1207/S15327043HUP1501&02_06
+http://www.leaonline.com/doi/pdf/10.1207/S15327604JAWS0603_01
+http://www.leaonline.com/doi/pdfplus/10.1207/S15327973RLSI3303_2
+http://www.leapingfromthebox.com/hs/alhs.html
+http://www.learmedia.ca/product_info.php/products_id/791
+http://www.learn-by-doing.com/broadcasters-training-faq.htm
+http://www.learn-german-online.net/learning-german-resouces/lern-cd_en.htm
+http://www.learn-texas-holdem.com/questions/dealing-with-tilt-and-swings.htm
+http://www.learn.co.uk/cima-mc/teachers/keyskills.htm
+http://www.learn2hand.com/DesktopSubCategory.aspx?s=1
+http://www.learn4good.com/languages/evrd_idioms/id-c.htm
+http://www.learn4good.com/tefl/tefl_training_uk.htm
+http://www.learnaboutgolf.com/beginner/lesson/lesson22.html
+http://www.learndirect-advice.co.uk/helpandadvice/whichcourse/acqual/
+http://www.learndirect-advice.co.uk/helpwithyourcareer/jobprofiles/profiles/profile1348/
+http://www.learndirect-advice.co.uk/helpwithyourcareer/jobprofiles/profiles/profile898/
+http://www.learndirect-advice.co.uk/helpwithyourcareer/jobprofiles/profiles/profile981/
+http://www.learnenglish.org.uk/stories/exam_answers.html
+http://www.learner.org/channel/courses/biology/textbook/compev/compev_2.html
+http://www.learner.org/channel/courses/biology/units/biodiv/experts/sterling.html
+http://www.learner.org/channel/courses/biology/units/genom/experts/altshuler.html
+http://www.learner.org/channel/libraries/makingmeaning/about/project.html
+http://www.learner.org/channel/libraries/readingk2/owen/closer.html
+http://www.learner.org/channel/libraries/readingk2/owen/first.html
+http://www.learner.org/channel/workshops/primarysources/coldwar/docs/lippman.html
+http://www.learner.org/edtech/rscheval/vvs.html
+http://www.learner.org/jnorth/search/GWhaleNotes3.html
+http://www.learning-org.com/99.05/0024.html
+http://www.learning.ox.ac.uk/iaul/IAUL+5+5+main.asp
+http://www.learningcommons.uoguelph.ca/ByFormat/OnlineResources/Fastfacts/LearningFastfacts/Fastfacts-MultipleChoiceExams.html
+http://www.learningcurve.gov.uk/empire/g2/cs2/background.htm
+http://www.learningcurve.gov.uk/snapshots/snapshot31/snapshot31.htm
+http://www.learningcurve.gov.uk/workshops/history.htm
+http://www.learningdesign.biz/sections/humanty.html
+http://www.learningdisability.com/newsletter_archive/mileage.htm
+http://www.learningeffects.com/SC2002Success.html
+http://www.learningenrichment.org/eyes_asia_stud.html
+http://www.learningfrompractice.org/paarn/monos00/snider00.htm
+http://www.learningplaceonline.com/relationships/books/intimacy.htm
+http://www.learningplaceonline.com/therapy/book-reviews/couple-intimacy.htm
+http://www.learningpt.org/employ/patech0119.htm
+http://www.learningsim.com/catalog/easyway02.html
+http://www.learningsolutions.com/WhitePapers/7KeysRetainTopTalent.html
+http://www.learningtogive.org/lessons/unit156/lesson1.html
+http://www.learningtogive.org/materials/careers.asp
+http://www.learningtrust.co.uk/special_needs/assessment.aspx
+http://www.learnntc.com/tools/GettingStarted/someIdeas.cfm
+http://www.learnpoints.com/corporate/terms_of_service.html
+http://www.learnthenet.com/english/html/51server.htm
+http://www.learntime.com/index.php/weblog/2004/08/
+http://www.learnwell.org/healthscript.htm
+http://www.learnworld.com/ZNW/LWText.York.Race.Ch01.html
+http://www.learnworld.com/ZNW/LWText.York.Race.Ch12.html
+http://www.learnworld.com/ZNW/LWText.York.RaceToOblivion.html
+http://www.learnworld.com/org/TX.002=1983.03.23.Reagan.html
+http://www.learnyoruba.com/learnyoruba.htm
+http://www.leasingprofessional.com/Newlp/LA/LA401/las401.htm
+http://www.leasingprofessional.com/Newlp/LA/LA821/las821.htm
+http://www.leaskstravel.co.uk/car-hire/
+http://www.leasttern.com/workshops/butnotleast/OnlineTools/webcontentcompare.html
+http://www.leatherconnexion.com/products/saddlebags/x3100.htm
+http://www.leathernroses.com/abuse/cindydifferences.htm
+http://www.leavealegacy.org/DonorStories/donor_Lewis.asp
+http://www.leaveitbehind.com/
+http://www.leaveitbehind.com/home/2004/10/apple_field_red.html
+http://www.leaveitbehind.com/home/2005/06/thanks_dave.html
+http://www.leavenotrace.com/
+http://www.leavenworth.army.mil/milrev/English/NovDec02/copolla.htm
+http://www.leaving-memories.com/forum/index.php
+http://www.lectlaw.com/files/bul17.htm
+http://www.lectlaw.com/files/bul18.htm
+http://www.lectlaw.com/files/con01.htm
+http://www.lectlaw.com/files/cos77.htm
+http://www.lectlaw.com/files/int11.htm
+http://www.lectlaw.com/filesh/bbg11.htm
+http://www.lectlaw.com/tcas.htm
+http://www.leeandlow.com/teachers/
+http://www.leeandthompson.com/MusicGuide/Chapter2_Part3_1.html
+http://www.leebase.com/icocnews/
+http://www.leechild.com/uk/excerpt-enemy.htm
+http://www.leecustomhomes.com/floorplans.html
+http://www.leeds.ac.uk/cedars/colman/CIW01r.html
+http://www.leeds.ac.uk/educol/documents/00003134.htm
+http://www.leeds.ac.uk/educol/ncihe/a4_014.htm
+http://www.leeds.ac.uk/educol/ncihe/nr_074.htm
+http://www.leeds.ac.uk/educol/ncihe/nr_411.htm
+http://www.leeds.ac.uk/educol/ncihe/r10_022.htm
+http://www.leeds.ac.uk/educol/ncihe/sc12.htm
+http://www.leeds.ac.uk/educol/ncihe/sc49.htm
+http://www.leeds.gov.uk/heritagetrails/walk.html
+http://www.leedsfloat.co.uk/faq.htm
+http://www.leemwr.com/web-content/Htmls/BOSS/BOSS.html
+http://www.leerburg.com/101e.htm
+http://www.leerburg.com/121.htm
+http://www.leerburg.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=104;t=000018
+http://www.leerburg.com/no-art.htm
+http://www.leerburg.com/rcmppolice.htm
+http://www.leeredcross.org/
+http://www.leesburgtoday.com/current.cfm?catid=31&newsid=9589
+http://www.lef.org/dsnews/ds_1998_sep.html
+http://www.lef.org/featured-articles/apr2000_clon_01.html
+http://www.lef.org/magazine/mag2002/oct2002_awsi_01.html
+http://www.lef.org/magazine/mag2003/jul2003_report_male_01.html
+http://www.lef.org/magazine/mag95/95jun1.htm
+http://www.lef.org/magazine/mag97/march-cover97.html
+http://www.lef.org/magazine/mag97/nov-fit97.html
+http://www.lef.org/magazine/mag99/sep99-report3.html
+http://www.lef.org/protocols/prtcl-071.shtml
+http://www.lef.org/protocols/prtcl-125.shtml
+http://www.lef.org/protocols/prtcl-147a.shtml
+http://www.lef.org/protocols/prtcls-txt/t-prtcl-071.html
+http://www.lef.org/protocols/prtcls-txt/t-prtcl-088.html
+http://www.leflaw.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=114
+http://www.leftbusinessobserver.com/SocialSecurityRevisited.html
+http://www.lefthook.org/Politics/ChowkwanyunFrank110104.html
+http://www.leftist.org/haightspeech/archives/000148.html
+http://www.leg.state.or.us/01reg/measures/hb2500.dir/hb2555.en.html
+http://www.leg.state.or.us/01reg/measures/sb0001.dir/sb0089.intro.html
+http://www.leg.state.or.us/03reg/measures/hb2200.dir/hb2222.a.html
+http://www.leg.state.or.us/03reg/measures/hb2200.dir/hb2222.en.html
+http://www.leg.state.or.us/03reg/measures/hb2800.dir/hb2801.a.html
+http://www.leg.state.or.us/03reg/measures/hb2800.dir/hb2801.intro.html
+http://www.leg.state.or.us/03reg/measures/hb2800.dir/hb2840.intro.html
+http://www.leg.state.or.us/03reg/measures/hb2900.dir/hb2985.intro.html
+http://www.leg.state.or.us/03reg/measures/hb3500.dir/hb3541.intro.html
+http://www.leg.state.or.us/03reg/measures/sb0600.dir/sb0696.intro.html
+http://www.leg.state.or.us/05reg/measures/sb0001.dir/sb0087.intro.html
+http://www.leg.state.or.us/97reg/measures/hb3600.dir/hb3623.int.html
+http://www.leg.state.or.us/99reg/measures/hb3300.dir/hb3371.a.html
+http://www.leg.state.or.us/99reg/measures/hb3400.dir/hb3400.a.html
+http://www.leg.state.or.us/99reg/measures/sb0200.dir/sb0231.int.html
+http://www.leg.state.or.us/99reg/measures/sb0200.dir/sb0232.int.html
+http://www.leg.state.or.us/ors/307.html
+http://www.leg.state.vt.us/docs/legdoc.cfm?URL=/docs/2000/bills/house/H-629.HTM
+http://www.leg.state.vt.us/docs/legdoc.cfm?URL=/docs/2000/bills/intro/H-770.HTM
+http://www.leg.wa.gov/RCW/index.cfm?section=28B.15.031&fuseaction=section
+http://www.leg.wa.gov/RCW/index.cfm?section=71.09.020&fuseaction=section
+http://www.legacy1.net/d_hong.html
+http://www.legal500.com/devs/uk/sl/uksl_017.htm
+http://www.legalaffairs.org/issues/May-June-2004/argument_mooney_mayjun04.msp
+http://www.legalaffairs.org/issues/May-June-2005/review_adler_mayjun05.msp
+http://www.legalaffairs.org/issues/November-December-2002/review_bazelon_novdec2002.html
+http://www.legalaffairs.org/webexclusive/debateclub_527s1004.html
+http://www.legalaffairs.org/webexclusive/debateclub_terror0904.html
+http://www.legaldocs.com/labor-s.htm
+http://www.legalmarketingblog.com/
+http://www.legalmediagroup.com/internationaltaxreview/default.asp?Page=3&SID=3193&M=6&Y=2004
+http://www.legalmediagroup.com/mip/includes/print.asp?SID=2175
+http://www.legalnewswatch.com/news_466.html
+http://www.legalreader.com/
+http://www.legalstudies.com/LNC.html
+http://www.legalunderground.com/2005/05/medical_malprac.html
+http://www.legassembly.sk.ca/journals/Votes/23L3S/2303vp31.htm
+http://www.legaudit.state.ak.us/pages/audits/2000/4609rpt.htm
+http://www.legends.org.za/arthur/appeal.html
+http://www.legendsofamerica.com/CA-BottleVillage.html
+http://www.leggette.com/mainbody.asp
+http://www.legiodraconis.com/modules.php?op=modload&name=News&file=article&sid=2358
+http://www.legion.de/en/carrier/products
+http://www.legion.org/?section=pub_relations&subsection=pr_speeches&content=pr_speech_memorial
+http://www.legis.gov.bc.ca/37th2nd/votes/v020126.htm
+http://www.legis.gov.bc.ca/37th5th/votes/v040428.htm
+http://www.legis.gov.bc.ca/cmt/36thParl/CMT13/hansard/so0604.htm
+http://www.legis.gov.bc.ca/hansard/29th1st/29p_01s_700204p.htm
+http://www.legis.gov.bc.ca/hansard/29th1st/29p_01s_700209p.htm
+http://www.legis.gov.bc.ca/hansard/29th1st/29p_01s_700223p.htm
+http://www.legis.gov.bc.ca/hansard/29th2nd/29p_02s_710215p.htm
+http://www.legis.gov.bc.ca/hansard/29th2nd/29p_02s_710312p.htm
+http://www.legis.gov.bc.ca/hansard/29th3rd/29p_03s_720229p.htm
+http://www.legis.gov.bc.ca/hansard/29th3rd/29p_03s_720328p.htm
+http://www.legis.gov.bc.ca/hansard/30th2nd/30p_02s_730321p.htm
+http://www.legis.gov.bc.ca/hansard/30th3rd/30p_03s_731025p.htm
+http://www.legis.gov.bc.ca/hansard/30th4th/30p_04s_740205p.htm
+http://www.legis.gov.bc.ca/hansard/30th4th/30p_04s_740326p.htm
+http://www.legis.gov.bc.ca/hansard/30th4th/30p_04s_740430p.htm
+http://www.legis.gov.bc.ca/hansard/31st1st/31p_01s_760609p.htm
+http://www.legis.gov.bc.ca/hansard/31st2nd/31p_02s_770301p.htm
+http://www.legis.gov.bc.ca/hansard/31st2nd/31p_02s_770623p.htm
+http://www.legis.gov.bc.ca/hansard/31st2nd/31p_02s_770810p.htm
+http://www.legis.gov.bc.ca/hansard/31st2nd/31p_02s_770826a.htm
+http://www.legis.gov.bc.ca/hansard/31st2nd/31p_02s_770927a.htm
+http://www.legis.gov.bc.ca/hansard/31st3rd/31p_03s_780501p.htm
+http://www.legis.gov.bc.ca/hansard/32nd2nd/32p_02s_800305p.htm
+http://www.legis.gov.bc.ca/hansard/32nd2nd/32p_02s_800318p.htm
+http://www.legis.gov.bc.ca/hansard/32nd2nd/32p_02s_800401p.htm
+http://www.legis.gov.bc.ca/hansard/32nd2nd/32p_02s_800515p.htm
+http://www.legis.gov.bc.ca/hansard/32nd3rd/32p_03s_810611p.htm
+http://www.legis.gov.bc.ca/hansard/33rd1st/33p_01s_830726p.htm
+http://www.legis.gov.bc.ca/hansard/33rd2nd/33p_02s_840215a.htm
+http://www.legis.gov.bc.ca/hansard/33rd3rd/33p_03s_850507a.htm
+http://www.legis.gov.bc.ca/hansard/34th1st/34p_01s_870519p.htm
+http://www.legis.gov.bc.ca/hansard/34th1st/34p_01s_871207p.htm
+http://www.legis.gov.bc.ca/hansard/34th1st/34p_01s_871215p.htm
+http://www.legis.gov.bc.ca/hansard/34th2nd/34p_02s_880406p.htm
+http://www.legis.gov.bc.ca/hansard/34th3rd/34p_03s_890518p.htm
+http://www.legis.gov.bc.ca/hansard/34th3rd/34p_03s_890608p.htm
+http://www.legis.gov.bc.ca/hansard/34th3rd/34p_03s_890711p.htm
+http://www.legis.gov.bc.ca/hansard/34th5th/34p_05s_910617p.htm
+http://www.legis.gov.bc.ca/hansard/37th2nd/h20126a.htm
+http://www.legis.gov.bc.ca/info/2-11-1.htm
+http://www.legis.gov.bc.ca/mla/38thParl/bennett.htm
+http://www.legis.state.ga.us/legis/2003_04/mbrs/moraitakisnick42ndpost4.htm
+http://www.legis.state.ia.us/GA/80GA/Session.2/SC/SC0114.html
+http://www.legis.state.wi.us/2005/data/ab_list.html
+http://www.legislation.hmso.gov.uk/si/si1987/Uksi_19871542_en_1.htm
+http://www.legislation.hmso.gov.uk/si/si1989/Uksi_19891941_en_4.htm
+http://www.legislation.hmso.gov.uk/si/si1994/Uksi_19942040_en_1.htm
+http://www.legislation.hmso.gov.uk/si/si2002/20020284.htm
+http://www.legislative.noaa.gov/Archives/2002/nationalgreenhousegasdatabase042502.html
+http://www.legislature.idaho.gov/sessioninfo/2003/StandingCommittees/hcommin.html
+http://www.legislature.state.oh.us/bills.cfm?ID=125_HB_325
+http://www.legslarry.beerdrinkers.co.uk/ego/Worlds95.htm
+http://www.lehigh.edu/library/guides/companyguide.html
+http://www.lehigh.edu/~amsp/blog.html
+http://www.lehigh.edu/~amsp/tubb5.html
+http://www.lehigh.edu/~amsp/tubb7.html
+http://www.lehigh.edu/~inllnote/coursedesign.htm
+http://www.lehman.edu/deannss/sociologysocwk/courses/sociology/soc247/propout.html
+http://www.lehtoslaw.com/thingssales.html
+http://www.leicester.gov.uk/departments/page.asp?pgid=1943
+http://www.leicester.gov.uk/newssite/newsview/page.asp?pgid=5123
+http://www.leicesterandleicestershire.com/Stefanie_Rose.htm
+http://www.leicestercollege.ac.uk/courses/cont/plmd/computers.asp
+http://www.leighbureau.com/speaker.asp?id=55
+http://www.leighsaintthomas.wigan.sch.uk/coat_of_arms.htm
+http://www.leinsterhockey.ie/leinsterwip/default.asp?URL=coaching/mini_hockey.asp&Main_MM=divMainCoaching
+http://www.leiss.ca/articles/50
+http://www.leisurejobs.com/jobdir.php/224/0/0/46
+http://www.leisuremusic.co.uk/product_reviews_info.php/products_id/38/reviews_id/5
+http://www.leisureopportunities.co.uk/
+http://www.leithner.com.au/circulars/circular44.htm
+http://www.leithner.com.au/newsletter/
+http://www.lemac.co.uk/company/people.html
+http://www.lemonlawoffice.com/lemonpages/att_info.php?state=ri
+http://www.lemonlawsusa.com/Arkansas.asp
+http://www.lemonysnicket.com/excerptpage.cfm?bookid=28661
+http://www.lemonysnicket.com/excerptpage.cfm?bookid=41403
+http://www.lemoyne.edu/OTRP/teachingresources.html
+http://www.lemurreserve.org/lemurs.html
+http://www.lendingexpo.net/articlec_business_and_finance_1155.htm
+http://www.lendingtree.com/cec/yourhome/homeequityloans/home-equity-loans-vs-lines-of-credit.asp?esourceid=23976&source=23976
+http://www.lendingtree.com/cec/yourhome/homeequityloans/home-equity-loans-vs-lines-of-credit.asp?esourceid=24200&source=24200
+http://www.lendingtree.com/cec/yourhome/homeequityloans/home-equity-loans-vs-lines-of-credit.asp?esourceid=33988&source=33988
+http://www.lenscove.com/newsletter.asp?hl=102
+http://www.lenzienet.co.uk/fp/aigraham.htm
+http://www.leonardbernstein.com/studio/element2.asp?id=384
+http://www.leonardfitness.com/faq8.htm
+http://www.leonpaul.com/home/entry_form.htm
+http://www.leonstudioone.com/Export8.htm
+http://www.leopardmag.co.uk/feats/26/north-sea-oil---both-in-retrospect-and-prospect
+http://www.leprosy.org/ALMcareers.html
+http://www.leprosymission.org.uk/html/projects.php?itm=72
+http://www.lermanet.com/cos/underbelly.html
+http://www.lesbianalliance.com/content.cfm?cat=entertainment&sub=books&file=dana6
+http://www.lesi.org/education/faq.asp
+http://www.lesi.org/education/faq.asp?printer=yes
+http://www.lesjones.com/posts/000275.shtml
+http://www.lesjones.com/posts/001531.shtml
+http://www.lesley.edu/threshold/cwrite.html
+http://www.lesliefield.com/other_history/robert_dossin_interview_1983.htm
+http://www.lesnelson.com/corp.htm
+http://www.lespagesauxfolles.ca/Book7/2003LPAF69.htm
+http://www.lessig.org/blog/
+http://www.lessig.org/blog/archives/001746.shtml
+http://www.lessig.org/blog/archives/001754.shtml
+http://www.lessig.org/blog/archives/001840.shtml
+http://www.lessig.org/blog/archives/002872.shtml
+http://www.lessig.org/blog/archives/002933.shtml
+http://www.lessig.org/blog/archives/002942.shtml
+http://www.lessig.org/blog/archives/002943.shtml
+http://www.lessonplanspage.com/MusicArtDesignACDCoverIdea67.htm
+http://www.lessonplanspage.com/ScienceExTempGravityAffectSeedGerminationMO68.htm
+http://www.lessons4living.com/box_of_personality.htm
+http://www.lessontutor.com/eesReflexive.html
+http://www.lessontutor.com/jm8.html
+http://www.lessontutor.com/jm_digestive.html
+http://www.lessontutor.com/ml5.html
+http://www.let.leidenuniv.nl/history/migration/chapter9.html
+http://www.let.leidenuniv.nl/tcimo/tulp/Research/ejz16.htm
+http://www.let.uu.nl/womens_studies/anneke/filmtheory.html
+http://www.letchworthgardencity.net/lgcs/westrell.htm
+http://www.letfreedomgrow.com/recipes/green_peril.htm
+http://www.lethbridge.ca/home/City+Hall/City+Council/Council+Information/Communicating+with+City+Council/
+http://www.letmestayforaday.com/report/?id=149
+http://www.letnaderdebate.org/townhall.asp
+http://www.letran.edu/collegiate/clased/clas_comarts.php
+http://www.letrascanciones.org/bbmak/into-your-head/staring-into-space.php
+http://www.letsautomate.com/10868.cfm
+http://www.letsautomate.com/10911.cfm
+http://www.letsfight.com/
+http://www.letsgothere.co.uk/lgtnet/attraction/0022667-0.aspx
+http://www.letsrecycle.com/features/glass_emissions.jsp
+http://www.letsrun.com/forum/flat_read.php?thread=458338
+http://www.letssingit.com/topic-68644-3.html
+http://www.letstalksense.com/quotes.html
+http://www.letstalkwinning.com/
+http://www.letters-of-york.co.uk/holidays.htm
+http://www.lettersfrombabylon.com/engineering/
+http://www.letusreason.org/Latrain10.htm
+http://www.letusreason.org/Wf27.htm
+http://www.letusreason.org/trin5.htm
+http://www.leukaemiabusters.org.uk/our-history.htm
+http://www.leukemia-lymphoma.org/all_mat_detail.adp?item_id=28602&sort_order=17&cat_id=
+http://www.leukemia-lymphoma.org/all_mat_detail.adp?item_id=28602&sort_order=17&cat_id=1731
+http://www.levellers.co.uk/cfm/prod.cfm?ProductGroupID=22
+http://www.levinegreenberg.com/deals.asp
+http://www.levistrauss.com/about/history/denim.htm
+http://www.levity.com/alchemy/didier.html
+http://www.lewingroup.com/pages/00June/organizationbasics.htm
+http://www.lewiscopublichealth.org/directors%20message.htm
+http://www.lewisginter.org/html/membership.asp
+http://www.lewishampct.nhs.uk/document_view.php?DID=00000000000000000064
+http://www.lewrockwell.com/barnhart/barnhart26.html
+http://www.lewrockwell.com/bonner/bonner114.html
+http://www.lewrockwell.com/englund/englund13.html
+http://www.lewrockwell.com/kwiatkowski/kwiatkowski55.html
+http://www.lewrockwell.com/latulippe/latulippe52.html
+http://www.lewrockwell.com/north/north178.html
+http://www.lewrockwell.com/north/north184.html
+http://www.lewrockwell.com/north/north280.html
+http://www.lewrockwell.com/north/north283.html
+http://www.lewrockwell.com/north/north328.html
+http://www.lewrockwell.com/north/north379.html
+http://www.lewrockwell.com/orig3/monahan1.html
+http://www.lewrockwell.com/orig4/katz1.html
+http://www.lewrockwell.com/paul/paul76.html
+http://www.lewrockwell.com/roberts/roberts102.html
+http://www.lewrockwell.com/stein/stein14.html
+http://www.lewrockwell.com/vance/vance7.html
+http://www.lewrockwell.com/wall/wall24.html
+http://www.lewrockwell.com/white/white71.html
+http://www.lexar.com/activememory/qa.html
+http://www.lexi.com/web/solpharmacy.jsp
+http://www.lexingtoninstitute.org/defense/jammer.htm
+http://www.lexingtoninstitute.org/immigration/040404.asp
+http://www.lexingtonleader.com/life.shtml
+http://www.lexis-nexis.com/cispubs/guides/african_american/bscp/bscp3.htm
+http://www.lexisnexis.com/academic/2upa/Aph/bdfaSeriesC.asp
+http://www.lexisnexis.com/lawschool/study/qanda/business.asp
+http://www.lexisone.com/legalresearch/payasyougo/contentlistings/texas_lar.html
+http://www.lexusownersclub.co.uk/forum/index.php?showtopic=17587
+http://www.lexusownersclub.co.uk/forum/lofiversion/index.php/t17587.html
+http://www.leybourne.com/stories3.html
+http://www.leyhunt.fsnet.co.uk/lhunt87.htm
+http://www.leylop.com/2003/12/korean-war.html
+http://www.lezamizrealestate.com/r_ask-twin-falls-idaho-real-estate.asp
+http://www.lezhrak.greyhorn.org/
+http://www.leziate.demon.co.uk/hom/homw.htm
+http://www.lfig.org/events.htm
+http://www.lfpl.org/business/busclip7.htm
+http://www.lft1614.org/august2003.htm
+http://www.lg-employers.gov.uk/rewards/schemes/performance.html
+http://www.lg01.com/
+http://www.lgcnet.com/pages/products/elections/elfeat4.htm
+http://www.lge.com/experience/social_commitment/culture.jsp
+http://www.lgpc.state.ny.us/aug04min.html
+http://www.lhf.org/visit.html
+http://www.lhh.org/hrq/24-1/village.htm
+http://www.lhmu.org.au/lhmu/news/762.html
+http://www.lhospital.org/rapporti_annuali/eng_moreinfo_1998.htm
+http://www.lhs.liverpool.k12.ny.us/lhslib/Weblinks/president.html
+http://www.lhss.uce.ac.uk/englishweb/undergrad/ba/notes/englishinglobalcontext/Week1.htm
+http://www.lhup.edu/~dsimanek/3d/illus1.htm
+http://www.lhup.edu/~dsimanek/solar.htm
+http://www.liamodonnell.com/IndigoHarry.html
+http://www.lib.az.us/extension/road5-03.htm
+http://www.lib.az.us/text/braille/tbn12-03t/volnewst.cfm
+http://www.lib.berkeley.edu/TeachingLib/Guides/Internet/Evaluate.html
+http://www.lib.berkeley.edu/TeachingLib/Guides/Internet/WhatIs.html
+http://www.lib.byu.edu/~english/WWI/influence/graves.html
+http://www.lib.byu.edu/~rdh/wwi/1914/ypres1.html
+http://www.lib.byu.edu/~rdh/wwi/bio/l/ludendrf.html
+http://www.lib.byu.edu/~rdh/wwi/versa/tri1.htm
+http://www.lib.duke.edu/ias/NewBooks/Mideast/January_2004.htm
+http://www.lib.ecu.edu/govdoc/terrorism.html
+http://www.lib.ed.ac.uk/about/pubs/lg51/h75.shtml
+http://www.lib.flinders.edu.au/resources/sub/education/science.html
+http://www.lib.gcal.ac.uk/heatherbank/picture.html
+http://www.lib.gla.ac.uk/sjmc/directory/
+http://www.lib.ipfw.edu/637.0.html
+http://www.lib.ksu.edu/teams/
+http://www.lib.mq.edu.au/digital/seringapatam/other/viraraja.html
+http://www.lib.msu.edu/corby/reviews/posted/shore.htm
+http://www.lib.msu.edu/harris23/grants/4relfund.htm
+http://www.lib.msu.edu/harris23/grants/pgiving.htm
+http://www.lib.msu.edu/harris23/red_tape/stat9804.htm
+http://www.lib.niu.edu/ipo/ii770211.html
+http://www.lib.niu.edu/ipo/ip940524.html
+http://www.lib.niu.edu/ipo/oi000812.html
+http://www.lib.uchicago.edu/e/ets/Responsa.html
+http://www.lib.uchicago.edu/e/gifts/brooker/2004desai.html
+http://www.lib.uchicago.edu/e/ssa/nbl_01.10.html
+http://www.lib.uchicago.edu/e/using/catalog/whatstatusmeans.html
+http://www.lib.uconn.edu/about/publications/scholcomopenaccessbasic.htm
+http://www.lib.umich.edu/govdocs/elec2004.html
+http://www.lib.umich.edu/govdocs/stecfor.html
+http://www.lib.umich.edu/govdocs/stpolisc.html
+http://www.lib.umich.edu/pap/tools/publications/ptolemy.html
+http://www.lib.umich.edu/tcp/eebo/proj_stat/archive_admin_may2_00.html
+http://www.lib.unb.ca/Texts/NBHistory/Education/bin/tei2html_chap.cgi?determine=bibliography
+http://www.lib.unb.ca/Texts/SCL/bin/get.cgi?directory=vol15_1/&filename=Goldman.htm
+http://www.lib.unb.ca/Texts/Special_Collections/unb/db.html
+http://www.lib.unb.ca/Texts/TRIC/bin/get.cgi?directory=vol12_2/&filename=Knowles.htm
+http://www.lib.unb.ca/Texts/TRIC/bin/getPrint.cgi?directory=vol12_2/&filename=Knowles.htm
+http://www.lib.unc.edu/prices/1996/PRIC165.HTML
+http://www.lib.unc.edu/prices/1998/PRIC211.HTML
+http://www.lib.uoguelph.ca/news/library_links/spring_05/commons.html
+http://www.lib.utexas.edu/services/borrower/recalls_and_holds.html
+http://www.lib.utexas.edu/taro/tslac/60004/tsl-60004.html
+http://www.lib.utexas.edu/taro/utaaa/00006/aaa-00006.html
+http://www.lib.utk.edu/music/contact.html
+http://www.lib.utk.edu/spcoll/manuscripts/ms2070fa.html
+http://www.lib.virginia.edu/area-studies/SouthAsia/SAserials/Dawn/1996/29Ag96.html
+http://www.lib.virginia.edu/reference/socsci/business.html
+http://www.lib.virginia.edu/small/exhibits/sixties/civil.html
+http://www.lib.virginia.edu/small/vhp/neh/part4.html
+http://www.lib.washington.edu/business/tlc/archive/skv.html
+http://www.lib.washington.edu/specialcoll/exhibits/past.html
+http://www.lib.washington.edu/subject/history/historyday/pri.html
+http://www.lib.wayne.edu/geninfo/policies/safety/general/safetyfeatures.php
+http://www.libarts.ucok.edu/communication/CommforTeachersSmith.html
+http://www.libb.com/home/
+http://www.libchrist.com/bible/divorce.html
+http://www.libchrist.com/swing/happysafestudies.html
+http://www.libchrist.com/swing/phxclubs.html
+http://www.libdems.org.uk/index.cfm/page.main/section.parliamentary/article.6233
+http://www.libdems.org.uk/index.cfm/page.main/section.parliamentary/article.8114
+http://www.libdems.org.uk/index.cfm/page.whois/section.people/wid.809/wgroup.ppc
+http://www.liberal.ca/pressroom_e.aspx
+http://www.liberal.ca/staff_e.aspx
+http://www.liberal.org.il/libe2txt.html
+http://www.liberales.be/cgi-bin/en/show.pl?boek&hayek
+http://www.liberalkids.org/preschool.html
+http://www.liberaloasis.com/shop.htm
+http://www.liberation.org.za/docs/books/ccsa.php
+http://www.liberator.net/articles/LiberatorMark/DefendingModelSpreads.html
+http://www.libertarian.to/NewsDta/templates/news1.php?art=art483
+http://www.libertarian.to/NewsDta/templates/news1.php?art=art815
+http://www.libertariannation.org/a/n030l2.html
+http://www.libertariantv.com/an_american_revolution/an_american_revolution.asp
+http://www.libertocracy.com/PoliveriumE-2/E-2Sectors/E-2Capitalium/E-2EconomyX/BankMoney/Bankoperation.htm
+http://www.libertybaptistaz.com/trailofblood.htm
+http://www.libertyforum.org/showarticles.php?Format=full&Placement=BreakingNews&Type=&Startat=0&Total=30&t=
+http://www.libertyhaven.com/noneoftheabove/sciencetechnologyortheinternet/whatkilled.html
+http://www.libertyhaven.com/politicsandcurrentevents/environmentalismorconservation/abundance.html
+http://www.libertyindia.org/tsunami/artht.php
+http://www.libertylegal.org/cases.htm
+http://www.libertypost.org/cgi-bin/readart.cgi?ArtNum=82626
+http://www.libertypost.org/cgi-bin/readart.cgi?ArtNum=83034
+http://www.libertypost.org/cgi-bin/readart.cgi?ArtNum=83654
+http://www.libertypost.org/cgi-bin/readart.cgi?ArtNum=83911
+http://www.libertypost.org/cgi-bin/readart.cgi?ArtNum=98782
+http://www.libertypost.org/cgi-bin/readart.cgi?ArtNum=98931
+http://www.libertypost.org/cgi-bin/readart.cgi?ArtNum=98931&Disp=4&Trace=on
+http://www.libertyroundtable.org/faq.hardquestions.html
+http://www.libertyskating.com/LibertySummer.html
+http://www.libertyunites.us/ftopicp-144318-.html
+http://www.libr.org/PL/22_Sipley.html
+http://www.libr.org/WSS/newsletter/1999fall.html
+http://www.libr.org/WSS/newsletter/2000fall.html
+http://www.libr.org/WSS/newsletter/2001spring.html
+http://www.libr.org/WSS/newsletter/2003spring.html
+http://www.libr8.co.uk/pages/which.htm
+http://www.librarianactivist.org/news/11_2004.html
+http://www.librarianavengers.org/weblog/
+http://www.libraries.psu.edu/nabokov/schuman.htm
+http://www.librarium-online.com/articles.php?action=show&showarticle=177
+http://www.library.adelaide.edu.au/guide/hum/english/E_ozfilm.html
+http://www.library.arizona.edu/ej/jpe/volume_2/harmsvol2.htm
+http://www.library.auckland.ac.nz/about/annrep/annrep99-2.htm
+http://www.library.auckland.ac.nz/subjects/bus/subjects/MER.htm
+http://www.library.auckland.ac.nz/subjects/lit/course-pages/eng220.htm
+http://www.library.auckland.ac.nz/subjects/lit/course-pages/eng230.htm
+http://www.library.ca.gov/SITN/2004/0451.htm
+http://www.library.cmu.edu/Research/Archives/Heinz/HJH_Bio.html
+http://www.library.cornell.edu/Reps/DOCS/anderson.htm
+http://www.library.cornell.edu/Reps/DOCS/howard.htm
+http://www.library.cornell.edu/Reps/DOCS/hughes.htm
+http://www.library.cornell.edu/Reps/DOCS/nolen_11.htm
+http://www.library.cornell.edu/colldev/mideast/balfr.htm
+http://www.library.cornell.edu/colldev/slav/publishinghistory.html
+http://www.library.cornell.edu/iris/policies/performance.html
+http://www.library.cornell.edu/preservation/tutorial/presentation/table7-1.html
+http://www.library.csi.cuny.edu/dept/history/lavender/182f97.html
+http://www.library.csi.cuny.edu/dept/history/lavender/386/truewoman.html
+http://www.library.drexel.edu/resources/tutorials/usingcallnumbers.html
+http://www.library.georgetown.edu/guides/mla/
+http://www.library.hbs.edu/go/bloomberg_help.html
+http://www.library.hbs.edu/hc/wes/indexes/alpha/content/1001955889/
+http://www.library.louisville.edu/kornhauser/gfdb/b.asp
+http://www.library.louisville.edu/kornhauser/gfdb/f.asp
+http://www.library.louisville.edu/kornhauser/gfdb/j.asp
+http://www.library.louisville.edu/kornhauser/gfdb/l.asp
+http://www.library.pitt.edu/subject_guides/westeuropean/wwwes/mspr-fr.html
+http://www.library.pitt.edu/subject_guides/westeuropean/wwwes/mspr-ge.html
+http://www.library.soton.ac.uk/subjects/sobs/searchguide.shtml
+http://www.library.tmc.edu/abcc/Neel/Neel_intro.htm
+http://www.library.ualberta.ca/databases/databasesubject_minor/index.cfm?fuseaction=minor&minorid=78&minorlabel=Polar%20Studies
+http://www.library.ualberta.ca/subject/english/introguide/index.cfm
+http://www.library.ucsb.edu/istl/97-summer/article3.html
+http://www.library.uiuc.edu/edx/rankgen.htm
+http://www.library.umass.edu/spcoll/university/class/rg4desc.html
+http://www.library.umc.edu/pe-db/pe-asthma-what.html
+http://www.library.uni.edu/speccoll/liboakb.html
+http://www.library.unisa.edu.au/resources/subject/digitalart.asp
+http://www.library.unisa.edu.au/resources/subject/olympics.asp
+http://www.library.unp.ac.za/id62.htm
+http://www.library.unt.edu/gpo/ota/tech/safety/ap18.html
+http://www.library.utoronto.ca/pcs/eps/social/social1.htm
+http://www.library.utoronto.ca/rir/successstories.html
+http://www.library.yale.edu/~llicense/ListArchives/0404/msg00077.html
+http://www.library.yale.edu/~llicense/ListArchives/0503/msg01149.html
+http://www.libraryinstruction.com/confusion.html
+http://www.libraryinstruction.com/liinternational.html
+http://www.libraryjournal.com/article/CA456252.html
+http://www.libraryjournal.com/article/CA456252.html?display=searchResults&stt=001&text=when+lssi+comes+to+town
+http://www.libraryjournal.com/article/CA515802.html
+http://www.librarypreservation.org/mee/capacity/resources.html
+http://www.libraryreference.org/index.php?c=Arts/Performing_Arts/Acting
+http://www.librarysupportstaff.com/4emailthinking.html
+http://www.librarysupportstaff.com/4subscribe.html
+http://www.libsci.sc.edu/miller/plants.htm
+http://www.libya1.com/news/n2004/dec/n18dec4a.htm
+http://www.libyarockart.com/physical.htm
+http://www.licb.com/mortgages_subitems.asp?id=12&sid=58
+http://www.licha.de/astro_article_atmosphere.php
+http://www.lichfield.anglican.org/lichfield/rugeley/norton/
+http://www.lichfieldfestival.org/htm2004/festExtra_04.shtml
+http://www.liebertonline.com/doi/pdfplus/10.1089/blr.2004.23.754
+http://www.liebsoft.com/index.cfm/products/tsp/features
+http://www.liechtenstein.li/en/eliechtenstein_main_sites/portal_fuerstentum_liechtenstein/fl-wuf-wirtschaft_finanzen/fl-wuf-wirtschaftsstandort/fl-wuf-wirtschaftsstandort-standortbedingungen.htm
+http://www.lies.com/
+http://www.lies.com/wp/2005/06/15/more-on-downing-street/
+http://www.lies.com/wp/2005/06/18/still-more-downing-street-memos-significance/
+http://www.lieye.com/articles/arthurhouse/mercedes.shtml
+http://www.life-educationaustralia.com.au/ezine_6_04.htm
+http://www.life-enhancement.com/LE/displayart.asp?id=373
+http://www.life-peace.org/newroutes/newroutes1997/nr199701/resist.htm
+http://www.life.ca/nl/60/pr.html
+http://www.life.uiuc.edu/govindjee/biochem494/Abs.html
+http://www.life.uiuc.edu/plantbio/wimovac/results.htm
+http://www.life.uiuc.edu/pru/team/efficiency.html
+http://www.lifeaction.org/Articles/viewarticle.asp?id=1016111410
+http://www.lifeadventures.com/puerto_vallarta.htm
+http://www.lifeadventures.com/victoria.htm
+http://www.lifeaftertheoilcrash.net/
+http://www.lifeaftertheoilcrash.net/Introduction.html
+http://www.lifebeatonline.com/spring2005/patients.shtml
+http://www.lifebeatonline.com/summer2004/news.shtml
+http://www.lifecare.com/connection/3q03_8.html
+http://www.lifechallenges.org/create/emotions.html
+http://www.lifechallenges.org/create/moore.html
+http://www.lifecoachschoolinternational.co.uk/enrol.htm
+http://www.lifecomhealth.com/html/aboutlifecom_management.html
+http://www.lifegatechurch.com/2005summercamp.htm
+http://www.lifehacker.com/software/productivity/index.php
+http://www.lifeissues.net/
+http://www.lifeissues.net/writers/kah/kah_06background1.html
+http://www.lifeissues.org/connector/99jul.html
+http://www.lifelong.ed.ac.uk/news/essays/parkinson.html
+http://www.lifelongaidsalliance.org/advocacy/legtrack.html
+http://www.lifelonglearning.co.uk/dearing/dr9006.htm
+http://www.lifelonglearning.co.uk/iip/anx02.htm
+http://www.lifelovesyou.com/Life_Coach_ezine-Parenting_specialtime.html
+http://www.lifeofrobert.com/london/archives/london/
+http://www.lifeplusinc.com/patientcaregivers.asp
+http://www.lifepositive.com/Mind/psychology/stress/time-management-skills.asp
+http://www.lifeprinciples.net/HappinessWhoIAm.html
+http://www.lifeprint.com/asl101/lessons/lesson1.htm
+http://www.lifeprint.com/asl101/pages-layout/literacy1.htm
+http://www.liferelationships.com/resources/articles/index.asp
+http://www.lifesatwitch.com/brakes_tics.html
+http://www.lifesite.net/ldn/1999/mar/990304b.html
+http://www.lifespan.org/services/bmed/wt_loss/articles/surgery/log.htm
+http://www.lifesteps.com/gm/Atoz/ency/obstetrical_emergencies_pr.jsp
+http://www.lifestyle.scotsman.com/families/headlines_specific.cfm?articleid=516
+http://www.lifetimetv.com/community/chat/robertstack_transcript.html
+http://www.lifetimetv.com/reallife/health/features/inshape_ascouple.html
+http://www.lifetimetv.com/reallife/relation/dating/askmp_restaurant2.html
+http://www.lifetoolsforwomen.com/f/drugging-adhd.htm
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D150275%2526M%253D50026,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D150800%2526M%253D50071,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D152444%2526M%253D200106,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D152932%2526M%253D50024,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D153179%2526M%253D200237,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D153936%2526M%253D50011,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D155881%2526M%253D150019,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D156436%2526M%253D50019,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D156720%2526M%253D200119,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D158104%2526X%253D1%2526M%253D50068,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D158512%2526M%253D200355,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D159003%2526M%253D200119,00.html
+http://www.lifeway.com/lwc/article_main_page/0,1703,A%253D160195%2526M%253D200392,00.html
+http://www.lifeway.com/lwc/lwc_cda_article/0,1643,A%253D152444%2526X%253D1%2526M%253D50088,00.html
+http://www.lifewaystores.com/lwstore/envelopes.asp
+http://www.lifewaystores.com/lwstore/product.asp?isbn=0633003018
+http://www.lifewithalacrity.com/2004/10/tracing_the_evo.html
+http://www.lifewithms.com/after~1.htm
+http://www.light-house.co.uk/intro.htm
+http://www.lightandmatter.com/area1sales.html
+http://www.lightandmatter.com/article/sneaky.html
+http://www.lightcycle.org/2004/04/index.php
+http://www.lighthouse.org/jodi.htm
+http://www.lighthouseratings.com/cape%20may/
+http://www.lightingchina.com/english/lighting_books/bzrz/zmbz.htm
+http://www.lightingmagic.com/famsitqa.htm
+http://www.lightning.org/media.htm
+http://www.lightplanet.com/mormons/daily/activity/lay_participation_eom.htm
+http://www.lightplanet.com/mormons/daily/missionary/farms_why.htm
+http://www.lightrailnow.org/facts.htm
+http://www.lightrailnow.org/news/n_aus_2004-01.htm
+http://www.lightreading.com/document.asp?doc_id=47173
+http://www.lightreading.com/document.asp?doc_id=47173&site=lightreading
+http://www.lightreading.com/document.asp?doc_id=67960&site=unstrung
+http://www.lightscameraacting.com/Classes.html
+http://www.lightship.org/cope.htm
+http://www.lightwork.com/lw_news.htm
+http://www.lightworker.com/SacredRooms/fear/
+http://www.lightworks-user.com/news.php
+http://www.lightworks.com/MonthlyAspectarian/2002/February/lichtenberg.htm
+http://www.lightyears2.com/ColorTherapy20x24.html
+http://www.lightyourfire.com/
+http://www.liguide.com/cgi-bin/insurance/agents.pl?Dental=home-based&group=Term
+http://www.lii.org/search?searchtype=subject;query=Science+Study+teaching;subsearch=Science+Study+teaching
+http://www.lik-sang.com/list.php?nav=top&category=264
+http://www.likesbooks.com/coverballot/2003/WO-results-2003.html
+http://www.likesbooks.com/covers3.html
+http://www.likesbooks.com/megan29.html
+http://www.lileks.com/bleats/
+http://www.lileks.com/bleats/archive/01/1101/110101.html
+http://www.lileks.com/bleats/archive/03/0203/020303.html
+http://www.lileks.com/bleats/archive/03/0303/032403.html
+http://www.lileks.com/bleats/archive/03/0703/070203.html
+http://www.lileks.com/bleats/archive/04/0504/052804.html
+http://www.lileks.com/bleats/archive/04/0804/080504.html
+http://www.lilienthal-museum.de/olma/e213.htm
+http://www.lilikoi.com/cost_frame.html
+http://www.lilithgallery.com/glowmaid/freedomofmarriage.html
+http://www.lima.ohio-state.edu/events/creative-writing/jrsrfichm2.html
+http://www.lime.ki.se/gorilla
+http://www.limitedgov.org/sites/lg/common_sense_select.aspx
+http://www.linacre.org/humreprodtechn.htm
+http://www.linacreschoolofdefence.org/
+http://www.lincoln.coop/travel/straighttalking.htm
+http://www.lincoln.gov.uk/Information_page_+_3_pic.asp?sec_id=1382
+http://www.lincolncenter.org/visitor/blackhistorymonth.asp?ws=&version=to
+http://www.lincolnheightsbaptist.org/PDF_Files/04Dec01W.htm
+http://www.lincolninst.edu/pubs/pub-detail.asp?id=299
+http://www.lincolninst.edu/pubs/pub-detail.asp?id=971
+http://www.lincon.com/travel/oceana/miscoc/srilanka.htm
+http://www.lindal-in-furness.co.uk/SchNews/schnews.htm
+http://www.lindapaul.com/links_to_tile_paintings_artists.htm
+http://www.lindasy.com/skin411/411_jan05p2.html
+http://www.lindatellingtonjones.com/shopequipment.shtml
+http://www.lindatellingtonjones.com/tteamcommunication.shtml
+http://www.lindqvist.com/bert.php
+http://www.lindsaybks.com/dgjp/dave/philos/
+http://www.line-dance.com/Rules%202000.htm
+http://www.line56.com/articles/default.asp?ArticleID=2982
+http://www.line56.com/articles/default.asp?ArticleID=4348
+http://www.line56.com/articles/default.asp?ArticleID=5522&TopicID=9
+http://www.line56.com/articles/default.asp?ArticleID=6214
+http://www.line56.com/articles/default.asp?NewsID=2982
+http://www.lines-magazine.org/Art_May05/vasuki.htm
+http://www.lines-magazine.org/Art_Nov02/Pepe.htm
+http://www.lines-magazine.org/Art_Nov03/Bazeer.htm
+http://www.linezine.com/3.1/features/jhmwsh.htm
+http://www.linfield.edu/admission/procedure.html
+http://www.linfield.edu/dce/resources/faculty/html/Fall04/CSC152_Fall2004.htm
+http://www.ling.canterbury.ac.nz/personal/asudeh/frames/new.html
+http://www.ling.lancs.ac.uk/study/masters/admissions.htm
+http://www.ling.upenn.edu/courses/Fall_2003/ling001/English.html
+http://www.ling.upenn.edu/~kurisuto/phone_wiring.html
+http://www.linguistics.ucla.edu/people/hayes/
+http://www.linguistlistplus.com/glot/geninfo.htm
+http://www.linguisystems.com/age.php?age=10&agetopic=15
+http://www.linguisystems.com/age.php?age=14&agetopic=15
+http://www.linguisystems.com/age.php?age=18&agetopic=15
+http://www.linguisystems.com/age.php?age=5&agetopic=15
+http://www.linguisystems.com/assessments.php?testtopic=15
+http://www.linguisystems.com/games.php?gametopic=15
+http://www.linguisystems.com/test-create.php
+http://www.linguisystems.com/test-login.php
+http://www.linguisystems.com/testing.php
+http://www.linkny.com/~civitas/page205.html
+http://www.links.net/daze/98/03/07/
+http://www.links.net/vita/sf/egg/
+http://www.links.net/vita/swat/course/thesis/food/ethan.html
+http://www.links2love.com/poetryandfiction.htm
+http://www.linkshare.com/press/news_wabctv.html
+http://www.linktolearning.com/language.htm
+http://www.linkwaregraphics.com/music/
+http://www.linkwordlanguages.com/
+http://www.linnrecords.com/disclaimer.asp
+http://www.linnsoft.com/tour/verticalScale.htm
+http://www.linux-gull.ch/projets/reseau/mail/msg01816.html
+http://www.linux-m68k.org/debian-atari.html
+http://www.linux-m68k.org/debian-vme.html
+http://www.linux-mag.com/2001-06/mysql_01.html
+http://www.linux-mag.com/2001-12/mysql_01.html
+http://www.linux-mag.com/2002-03/debian_01.html
+http://www.linux-mag.com/content/view/237/2082/
+http://www.linux-mag.com/content/view/266/2257/
+http://www.linux-plus.com/support_services.php
+http://www.linux.ie/old-list/37321.html
+http://www.linux.ie/pipermail/ilug/2004-December/020606.html
+http://www.linuxant.com/driverloader/wlan/faq.php
+http://www.linuxbase.org/policy/charter.html
+http://www.linuxbusinessweek.com/story/38045_f.htm
+http://www.linuxbusinessweek.com/story/46070.htm
+http://www.linuxdevcenter.com/pub/a/linux/2001/11/01/physics.html
+http://www.linuxdevcenter.com/pub/a/linux/2003/06/19/cpp_mm-1.html?page=2
+http://www.linuxdevcenter.com/pub/a/linux/2005/05/26/textonly.html
+http://www.linuxdevices.com/cgi-bin/ct.cgi?type=1&sponsorid=SP5943140291&url=%2Fsponsors%2FSP5943140291-NS9767106545.html
+http://www.linuxdevices.com/cgi-bin/ct.cgi?type=1&sponsorid=SP7466157949&url=%2Fsponsors%2FSP7466157949-NS9292224283.html
+http://www.linuxdevices.com/news/NS9767106545.html
+http://www.linuxgazette.com/aggregator?from=80
+http://www.linuxgazette.com/issue35/icaza.html
+http://www.linuxgazette.com/issue39/sevenich.html
+http://www.linuxgazette.com/node/10218
+http://www.linuxgazette.com/node/9942
+http://www.linuxinsider.com/perl/board/mboard.pl/tnwtalkback/thread2439/2439.html
+http://www.linuxinsider.com/story/34225.html
+http://www.linuxinsider.com/story/36120.html
+http://www.linuxinsider.com/story/42177.html
+http://www.linuxjournal.com/article.php?sid=6207
+http://www.linuxjournal.com/article/7535
+http://www.linuxjournal.com/comment/reply/3882
+http://www.linuxjournal.com/node/4752/print
+http://www.linuxjournal.com/node/7158/print
+http://www.linuxmafia.com/faq/Linux_PR/linuxone.html
+http://www.linuxmafia.com/faq/Web/opti.html
+http://www.linuxmednews.com/cindys
+http://www.linuxpackages.net/catalog/privacy.php
+http://www.linuxplanet.com/linuxplanet/subjects/629/
+http://www.linuxquestions.org/
+http://www.linuxsecurity.com/content/view/117265/50/
+http://www.linuxsecurity.com/content/view/117589/49/
+http://www.linuxworld.com/read/45683.htm
+http://www.lioncity.net/buddhism/blog/nithska/index.php?cmd=showentry&eid=198
+http://www.lioncity.net/buddhism/index.php?automodule=blog&blogid=43&
+http://www.lioncity.net/buddhism/index.php?showtopic=14628&st=0
+http://www.lioncity.net/buddhism/index.php?showtopic=2164
+http://www.lioncity.net/buddhism/index.php?showtopic=2164&st=0
+http://www.lionelcollectors.org/about/privacy_policy.asp
+http://www.lioness.net/speech.html
+http://www.lionhrtpub.com/orms/orms-8-00/vehiclerouting.html
+http://www.lionpic.co.uk/
+http://www.lions.odu.edu/~knesius/miniunits/epsilon/epsilon9.html
+http://www.lionsroarmandala.org/meditation_and_yoga.php
+http://www.lipid.org/clinical/patients/1000005.php
+http://www.lipmagazine.org/articles/featlydersen_gottleib.shtml
+http://www.lipmagazine.org/articles/featlydersen_gottlieb_p.htm
+http://www.lipmagazine.org/articles/featwise_immigrationexcerpt.shtml
+http://www.lipmagazine.org/articles/featwise_theman.htm
+http://www.liptoncup.co.za/eventhistory.asp
+http://www.liquid-control.net/
+http://www.liquidthinking.org/
+http://www.liquor.qld.gov.au/appeals/cases/sunnybank_hotel.asp
+http://www.lis.uiuc.edu/review/summer1995/spiteri.html
+http://www.lis.uiuc.edu/~b-sloan/r4r.final.htm
+http://www.lisa-raymond.com/ASTR/poole.htm
+http://www.lisa.lsbu.ac.uk/04_services/staff/info_res_and_bb.htm
+http://www.lisaleighphotography.com/weddings/winfo.htm
+http://www.lisamcpherson.org/fairgame.htm
+http://www.lisamcpherson.org/spt2-23.htm?FACTNet
+http://www.lisamurkowski.com/artman/publish/tonyjobs.html
+http://www.lisasgenealogypages.homestead.com/TheHistoryofCharlesDavisLtd.html
+http://www.lisawhiteman.com/
+http://www.lisc.org/resources/capacity_building.shtml?Organizational+Development
+http://www.liscareer.com/craig_cko.htm
+http://www.liscareer.com/lee_interviewing.htm
+http://www.lisleinternational.org/www/restricted/leaderhandbook.htm
+http://www.lisproject.org/dataccess/jobsub.htm
+http://www.lissaexplains.com/forum/archive/index.php/t-60513.html
+http://www.lissaexplains.com/forum/showthread.php?t=70192
+http://www.listen.org/quotations/quotes_humorous.html
+http://www.listener.co.nz/default,2698.sm
+http://www.listening-in.com/grndintr.html
+http://www.lists.pdx.edu/waoe-news/current/0008.html
+http://www.listtool.com/resources.html
+http://www.liswa.wa.gov.au/adultwinners.html
+http://www.lit.ie/researchwebpage/LIT%20RD%20INTRNET/RD%20Strategy.html
+http://www.litcom.net.au/documents/schoolsplanning.php
+http://www.litencyc.com/php/stopics.php?rec=true&UID=1480
+http://www.litencyc.com/php/stopics.php?rec=true&UID=689
+http://www.literacyconnections.com/0_0130984620.html
+http://www.literacyrules.com/Letters%20_%20Charles.htm
+http://www.literacytrust.org.uk/Database/Primary/lithour.html
+http://www.literacytrust.org.uk/Database/able.html
+http://www.literacytrust.org.uk/Database/boys/genderupdate.html
+http://www.literacytrust.org.uk/Database/expel.html
+http://www.literacytrust.org.uk/Database/modernlang.html
+http://www.literacytrust.org.uk/Database/oracy.html
+http://www.literacytrust.org.uk/Database/povertyupdate.html
+http://www.literacytrust.org.uk/Database/univupdate.html
+http://www.literacytrust.org.uk/Pubs/carey.html
+http://www.literacytrust.org.uk/Research/liteval.html
+http://www.literacytrust.org.uk/Research/readchoicereviews.html
+http://www.literacytrust.org.uk/Research/transferreviews.html
+http://www.literacytrust.org.uk/Update/Scotlupdate.html
+http://www.literacytrust.org.uk/talktoyourbaby/campaign.html
+http://www.literacytrust.org.uk/talktoyourbaby/music.html
+http://www.literacytrust.org.uk/talktoyourbaby/talkingtips.html
+http://www.literaryleaps.com/leapaisle.cfm?aislenumber=67&lastfound=101
+http://www.literaryleaps.com/leapaisle.cfm?aislenumber=82
+http://www.literarymama.com/fiction/archives/000672.html
+http://www.literarypotpourri.com/004_06/ss_01.html
+http://www.literarytraveler.com/bram-stokers-dracula/bram-stokers-dracula.htm
+http://www.literateweb.com/wyss/wyss11.htm
+http://www.literature.org/authors/barrie-james-matthew/the-adventures-of-peter-pan/chapter-06.html
+http://www.literature.org/authors/burroughs-edgar-rice/the-gods-of-mars/chapter-21.html
+http://www.literature.org/authors/dickens-charles/chimes/chapter-02.html
+http://www.literature.org/authors/montgomery-lucy-maud/anne-of-green-gables/chapter-05.html
+http://www.literature.org/authors/stoker-bram/lair/chapter-03.html
+http://www.literaturepage.com/read/warandpeace-1001.html
+http://www.litestructures.co.uk/news/syndicate.htm
+http://www.litfood-fair.com/index.php?lng=lt&content=pages&page_id=68&pg=10&cat_id=&country_id=
+http://www.lithuaniangenealogy.org/databases/il/StGeorge/StGeorge.html?letter=G
+http://www.litnet.co.za/youngwriters/add_michelle_mcgrane2.asp
+http://www.litnet.co.za/youngwriters/stacy_hardy.asp
+http://www.litrg.org.uk/help/pensioners/incomesover/understandingiht.cfm
+http://www.litrg.org.uk/help/pensioners/links.cfm
+http://www.litriocht.com/shop/product_info.php?cPath=39&products_id=2895
+http://www.litrix.com/madraven/madne044.htm
+http://www.littlecolonel.com/Books/Arizona/Chapter08.htm
+http://www.littlecolonel.com/books/arizona/Chapter08.htm
+http://www.littleexplorers.com/subjects/Geologictime.html
+http://www.littleflower.org/learn/littleflower.asp
+http://www.littlefuckingrayofsunshine.com/2002/06/
+http://www.littlegiraffes.com/christmas.html
+http://www.littlegreenfootballs.com/
+http://www.littlegreenfootballs.com/weblog/?entry=10791
+http://www.littlegreenfootballs.com/weblog/?entry=15232&only
+http://www.littlegreenfootballs.com/weblog/?entry=15232&only=yes
+http://www.littlegreenfootballs.com/weblog/?entry=16324_Media_Matters_Issues_Talking_Points
+http://www.littlegreenfootballs.com/weblog/?entry=7208_Roadmap_to_Murderville_Update
+http://www.littlelabs.com/redeye.html
+http://www.littlemachineshop.com/
+http://www.littleredboat.co.uk/
+http://www.littleredboat.co.uk/2004_05.php
+http://www.littletoncollection.com/stanislav_libensky.htm
+http://www.littlewhitedog.com/
+http://www.littoninterconnect.com/main.aspx?mid=hom&bid=Banner%20E&pid=Employment
+http://www.littoralsociety.org/issues.htm
+http://www.liu.edu/cwis/cwp/library/html/text.htm
+http://www.liu.se/en/education/faq/
+http://www.liuna.org/about/resolutions/ResXXIX.html
+http://www.liutilities.com/products/wintaskspro/whitepapers/paper1/
+http://www.liv-n-letliv.net/talbot.html
+http://www.liv.ac.uk/Psychology/DeptInfo/StaffProfile/DDickins.html
+http://www.liv.ac.uk/ophthalmology/ed.htm
+http://www.livablecities.org/Publications_Documentation.htm
+http://www.livablecities.org/TrueUrbanism.htm
+http://www.liveabroad.com/articles/france.html
+http://www.liveabroad.com/articles/ireland.html
+http://www.livebaltimore.com/merch/licplate/
+http://www.livejournal.com/community/_brokenangels/
+http://www.livejournal.com/community/astronomy/
+http://www.livejournal.com/community/childfree/4114926.html
+http://www.livejournal.com/community/dancebeautiful/
+http://www.livejournal.com/community/deleterius/1241525.html
+http://www.livejournal.com/community/deleterius/1241525.html?mode=reply
+http://www.livejournal.com/community/felines/
+http://www.livejournal.com/community/girlfeet/
+http://www.livejournal.com/community/hail_victory/63083.html
+http://www.livejournal.com/community/idol_reflection/20313.html?mode=reply
+http://www.livejournal.com/community/karate_the_band/
+http://www.livejournal.com/community/lj_biz/231617.html?thread=6896577
+http://www.livejournal.com/community/lj_dev/668080.html
+http://www.livejournal.com/community/lj_dev/670215.html?thread=7003399
+http://www.livejournal.com/community/lj_maintenance/102665.html?thread=7730697
+http://www.livejournal.com/community/lj_stylecontest/
+http://www.livejournal.com/community/lj_support/405625.html
+http://www.livejournal.com/community/ljforchoice/
+http://www.livejournal.com/community/ljireland/
+http://www.livejournal.com/community/mock_the_stupid/
+http://www.livejournal.com/community/sgselltrade/2005/05/15/
+http://www.livejournal.com/community/sgselltrade/2005/06/17/
+http://www.livejournal.com/community/sgselltrade/2005/06/19/
+http://www.livejournal.com/community/trance_class/16140.html
+http://www.livejournal.com/community/yoga/349420.html
+http://www.livejournal.com/go.bml?journal=davidlevine&itemid=2743&dir=next
+http://www.livejournal.com/go.bml?journal=ramoth4&itemid=3042&dir=next
+http://www.livejournal.com/support/
+http://www.livejournal.com/support/faqbrowse.bml?faqcat=s2
+http://www.livejournal.com/users/anti_peace_riot/
+http://www.livejournal.com/users/benmurrihy/7838.html
+http://www.livejournal.com/users/blackpepper/
+http://www.livejournal.com/users/bwinter/
+http://www.livejournal.com/users/chiefgnome/
+http://www.livejournal.com/users/ciphergoth/
+http://www.livejournal.com/users/cleolinda/
+http://www.livejournal.com/users/col_ki/27532.html
+http://www.livejournal.com/users/dabigbird/
+http://www.livejournal.com/users/ea_spouse/274.html
+http://www.livejournal.com/users/fledglingoflove/
+http://www.livejournal.com/users/hyuri/
+http://www.livejournal.com/users/imomus/103751.html
+http://www.livejournal.com/users/imomus/2005/06/04/
+http://www.livejournal.com/users/jmhm/1182255.html
+http://www.livejournal.com/users/jmhm/1222951.html
+http://www.livejournal.com/users/jmhm/1246418.html
+http://www.livejournal.com/users/jmhm/1271579.html
+http://www.livejournal.com/users/justgoto/
+http://www.livejournal.com/users/katequicksilvr/82800.html
+http://www.livejournal.com/users/matthardwick/
+http://www.livejournal.com/users/moltag/
+http://www.livejournal.com/users/mypapercrane/
+http://www.livejournal.com/users/news/82926.html
+http://www.livejournal.com/users/outa_controlx/
+http://www.livejournal.com/users/perl_review/
+http://www.livejournal.com/users/pjammer/62029.html?thread=1337933
+http://www.livejournal.com/users/shamu200/
+http://www.livejournal.com/users/stankow/
+http://www.livejournal.com/users/sweetamberlily/
+http://www.livejournal.com/users/telophase/113219.html
+http://www.livejournal.com/users/theferrett/434874.html
+http://www.livejournal.com/users/thomb/67683.html
+http://www.livejournal.com/users/twinkledru/630231.html?mode=reply
+http://www.livejournal.com/~punk_apple/83146.html
+http://www.livejournal.com/~punk_apple/83146.html?mode=reply
+http://www.livejournal.com/~sleeplesslylost/55821.html
+http://www.livelihoods.org/pip/pip/dcimg.html
+http://www.livelihoods.org/post/Mig8-postit.html
+http://www.liver.org.my/medical_hepatitis_a.htm
+http://www.liverpool.gov.uk/Business/Business_and_street_trading_licences/Alcohol_and_Entertainment/Licensing_Act_2003/index.asp
+http://www.liverpoolarms.com/
+http://www.liverpoolcfa.com/development/education.asp
+http://www.liverpoolcollege.org.uk/school_magazine.htm
+http://www.liverpoolmuseums.org.uk/maritime/archive/displayGuide.aspx?sid=23&mode=html&sorStr=&serStr=&pgeInt=&catStr=
+http://www.livescience.com/forcesofnature/041214_tsunami_mega.html
+http://www.livescience.com/forcesofnature/050622_new_madrid.html
+http://www.livescience.com/forcesofnature/disaster_chronology_1980_2004.html
+http://www.livescience.com/technology/050627_warming_solution.html
+http://www.living-lessons.org/about/f.privacy_policy.asp
+http://www.living-well.org/life.html
+http://www.livingassistance.com/features.asp?key=home%20care%20franchise
+http://www.livingbold.net/articles/lb020916a.html
+http://www.livingchoices.com/agent/agentdetail.aspx?refer=lycos&mid=5720&aid=239075406
+http://www.livingchoices.com/agent/agentdetail.aspx?refer=lycos&mid=N410&aid=239075406
+http://www.livingearthherbs.com/
+http://www.livinggracefellowship.org/sermons_2004/010404_carrying_your_cross.htm
+http://www.livingislam.org/n/nsrsf_e.html
+http://www.livingmanicdepressive.com/A_350.html
+http://www.livingroom.org.au/blog/archives/2002_12.php
+http://www.livingroom.org.au/blog/archives/introducing_the_offering_machine.php
+http://www.livingroom.org.au/blog/archives/questioning_church.php
+http://www.livingrosaries.org/centeringprayer.htm
+http://www.livingstreets.org.uk/file.php?fileid=126
+http://www.livingstreets.org.uk/page.php?pageid=116
+http://www.livingstreets.org.uk/page.php?pageid=116&print=1
+http://www.livingthesolution.com/beherenow.htm
+http://www.livingthesolution.com/holdingupamirror.htm
+http://www.livingthesolution.com/turningpoint.htm
+http://www.livingthruloss.bc.ca/walking.htm
+http://www.livingvalues.net/impact/kenya.html
+http://www.livingvalues.net/kenya/
+http://www.livingyourgift.com/workshops-sacred.html
+http://www.lizasoe.blogspot.com/
+http://www.lizcarlyle.com/New_Page_Folder/books/gent.htm
+http://www.lizmichael.com/columbin.htm
+http://www.ljdrama.org/index.php?p=953
+http://www.ljlseminars.com/
+http://www.ljlseminars.com/phone.htm
+http://www.ljworld.com/section/citynews/story/183902
+http://www.ljworld.com/section/incoldblood/story/201169
+http://www.ljworld.com/section/localpolitics/story/46294
+http://www.ljworld.com/section/recsports/story/194883
+http://www.ljworld.com/section/ross/story/196583
+http://www.llanelliafc.co.uk/prog_miscellaneous_articles.htm
+http://www.llc.manchester.ac.uk/Research/Centres/CentreforLatinAmericanCulturalStudies/News/
+http://www.llewellynsecurity.com/encyclopedia/bookmain.htm
+http://www.llewellynsecurity.com/noframes/nfbook.htm
+http://www.lleytonhewitt.biz/ao05art.htm
+http://www.lleytonhewitt.biz/daviscup/rd104day3art.htm
+http://www.lllusa.org/lllusa/calendar.html
+http://www.llnl.gov/es_and_h/hsm/doc_15.02/doc15-02.html
+http://www.lloydstsb.com/internet_banking.asp
+http://www.llr.state.sc.us/POL/Accountancy/index.asp?file=CPAREQ.HTM
+http://www.llr.state.sc.us/scfireac/ifsac1.htm
+http://www.llrc.org/du/subtopic/durs.htm
+http://www.llrx.com/columns/grammar4.htm
+http://www.llrx.com/columns/guide13.htm
+http://www.llrx.com/columns/guide29.htm
+http://www.llrx.com/columns/marketing4.htm
+http://www.llrx.com/columns/notes31.htm
+http://www.llrx.com/columns/notes43.htm
+http://www.llrx.com/columns/notes46.htm
+http://www.llrx.com/features/km2.htm
+http://www.llrx.com/features/verifying.htm
+http://www.lls.lt/engl_program1996.html
+http://www.llsdc.org/sourcebook/sch-v.htm
+http://www.llu.com/
+http://www.llu.edu/llumc/ceu/registrationinfo.html
+http://www.lmcc.net/EventsandExhibitions/Public_Art/freedom/freedom_schedule.html
+http://www.lmh.org/iqhealth/
+http://www.lmitnet.com/CIO-SP2/task.cfm
+http://www.lmu.ac.uk/the_news/apr05/rugby_womensru_matchreport.htm
+http://www.lmu.ac.uk/visiting/apply_art.htm
+http://www.lmu.livjm.ac.uk/gonw/template.aspx?itemid=839
+http://www.lmusu.org.uk/AdvTopic.asp?tid=5
+http://www.lni.wa.gov/WISHA/Rules/corerules/HelpfulTools/HT4_AdditionalProgramRequirementsTable.htm
+http://www.lni.wa.gov/news/2004/pr041214a.asp
+http://www.lnt.org/about/history.html
+http://www.loanofficersuccess.com/
+http://www.loantownusa.com/mortgage/
+http://www.lobsterconservation.com/surfclam/
+http://www.loc.gov/catdir/pcc/sca/agdatatgfinal.html
+http://www.loc.gov/exhibits/declara/ruffdrft.html
+http://www.loc.gov/film/donate.html
+http://www.loc.gov/film/implemen.html
+http://www.loc.gov/film/plan.html
+http://www.loc.gov/flicc/edintro.html
+http://www.loc.gov/folklife/selectlst/selrec90.html
+http://www.loc.gov/law/public/asl/htdoc/asl004.html
+http://www.loc.gov/loc/legacy/bldgs.html
+http://www.loc.gov/marc/languages/langhome.html
+http://www.loc.gov/marc/marbi/2001/2001-dp05.html
+http://www.loc.gov/marc/marbi/2005/2005-dp01.html
+http://www.loc.gov/nls/newsletters/flash/2005/number4.html
+http://www.loc.gov/nls/technical/dtb20steps.html
+http://www.loc.gov/nls/z3986/background/features.htm
+http://www.loc.gov/rr/mopic/copies.html
+http://www.loc.gov/today/pr/2003/03-106.html
+http://www.local.dtlr.gov.uk/review/consult/addexemp.htm
+http://www.local10.com/health/1920078/detail.html
+http://www.local1000.com/canadian_pension/plan.php
+http://www.local1259iaff.org/disaster.html
+http://www.local2452afge.com/
+http://www.local6.com/news/3879408/detail.html
+http://www.localhikes.com/Hikes/SanAntonioHCVHPWlk_7240.asp
+http://www.localhistories.org/eastleigh.html
+http://www.localhistories.org/irehist.html
+http://www.localhistories.org/york.html
+http://www.localhistory.scit.wlv.ac.uk/articles/Railway%20Gazette/Edition2.htm
+http://www.localinnovation.org/headlines/byWeek.html?yearWeek=200511&storyType=Headlines
+http://www.localizationworld.com/LWSF2004/aboutUs.htm
+http://www.localizationworld.com/aboutUs.htm
+http://www.localrecruit.co.uk/Bolton/
+http://www.localrecruit.co.uk/dudley/
+http://www.locateadoc.com/articles.cfm/search/1294
+http://www.locationscout.com/locservices/comments.html
+http://www.lockergnome.com/
+http://www.lockhartsteele.com/blog/archives/2003_10.shtml
+http://www.lockheedmartin.co.uk/news/232.html
+http://www.lockwood.k12.mt.us/counsel/dwight/dwightwar.htm
+http://www.locoloboevents.com/cgi-bin/locolobo/specialize.pl?111
+http://www.locusmag.com/index/b131.html
+http://www.locusmag.com/index/s392.html
+http://www.locusmag.com/index/s611.html
+http://www.locustvalley.com/japanese%20stroll%20garden.html
+http://www.locustworld.com/
+http://www.loe.org/shows/shows.htm?programID=03-P13-00017
+http://www.loe.org/shows/shows.htm?programID=05-P13-00022
+http://www.loe.org/shows/shows.htm?programID=94-P13-00043
+http://www.loe.org/shows/shows.htm?programID=95-P13-00017
+http://www.loe.org/stonyfield/instructions.htm
+http://www.loep.state.la.us/factsheets/Deceptivewinterstorms.htm
+http://www.lofcom.com/nostalgia/shows/ilam/trucktapes.phtml
+http://www.loft.org/classbcnf.html
+http://www.logan.com/afi/spencer3.html
+http://www.logantele.com/~aubhis/locprop.htm
+http://www.logexpo.com/r5/showkiosk.asp?listing_id=420998
+http://www.loghelp.com/logcore/04/winter/winter_trades.html
+http://www.logicept.com/wtc/
+http://www.logicsouth.com/~lcoble/bible/movin.html
+http://www.logicsouth.com/~lcoble/bible/sign-aa.html
+http://www.logicsouth.com/~lcoble/dir9/prepared.htm
+http://www.logobob.com/logo-design-clients.htm
+http://www.logoi.com/links/health/exercise_diet.html
+http://www.logoi.com/links/tattoo/tattoo_parlors.html
+http://www.logos-net.net/ilo/150_base/en/init/can_1.htm
+http://www.logos-net.net/ilo/150_base/en/topic_i/t7_ilo.htm
+http://www.logoworks.com/logo-design/3-logo-design.html
+http://www.loismurphy.org/pr-release_08oct04.php
+http://www.lolapress.org/artenglish/garre11.htm
+http://www.lolapress.org/artenglish/thuee15.htm
+http://www.lompocrecord.com/articles/2005/01/30/news/news20.txt
+http://www.london-eating.co.uk/129.htm
+http://www.london-eating.co.uk/1752.htm
+http://www.london-eating.co.uk/341.htm
+http://www.london-eating.co.uk/69.htm
+http://www.london.anglican.org/Marriages
+http://www.london.gov.uk/gla/disabled_access.jsp
+http://www.london.gov.uk/mayors_daily_issue_archive.jsp
+http://www.londoncigcard.co.uk/cards.html
+http://www.londonexternal.ac.uk/current_students/vle_resources/faqs.shtml
+http://www.londonexternal.ac.uk/undergraduate/lse/units/100.shtml
+http://www.londonjobs.co.uk/help/advanced_search.html
+http://www.londonlantern.com/articles/default.asp?snID=&cssType=0&Issue=200501&ID=543
+http://www.londonlantern.com/default.asp?snID=&cssType=0&Issue=200501&Area=0&TRCday=0
+http://www.londonmet.ac.uk/admin/assessment-north/
+http://www.londonmet.ac.uk/admin/graduation-and-conferments/graduation-and-conferments_home.cfm
+http://www.londonmet.ac.uk/module-catalogue/1/mm/mm1011.cfm
+http://www.londonmet.ac.uk/services/sas/departmental-development/development/how-to-apply-for-training.cfm
+http://www.londonmet.ac.uk/ug-prospectus-2005/courses/internet-applications-development.cfm
+http://www.londonmet.ac.uk/ugprospectus/courses/internet-applications-development.cfm
+http://www.londonplay.org.uk/listings.htm
+http://www.londonscottish.com/reports_3rd%20XV.html
+http://www.londonshakespeare.org.uk/Othello2/pvm.htm
+http://www.londontown.com/LondonInformation/Alexa/Hoxton_Boutique/ac5c/
+http://www.londontown.com/LondonInformation/Attraction/Contemporary_Applied_Arts/f59a/
+http://www.londontown.com/LondonInformation/Attraction/Hoxton_Hall/459c/
+http://www.londontown.com/LondonInformation/Attraction/Hoxton_Street_Market/a1a1/
+http://www.londontown.com/LondonInformation/Attraction/St_James_Church/7445/
+http://www.londontown.com/LondonInformation/Bars_and_Clubs/Home/6196/
+http://www.londontown.com/LondonInformation/Bars_and_Clubs/Reliance/4d68/
+http://www.londontown.com/LondonInformation/Bars_and_Clubs/The_Red_Lion/a26d/
+http://www.londontown.com/LondonInformation/Entertainment/Robert_Sandelson_Gallery/890b/
+http://www.londontown.com/LondonInformation/Shops/Contemporary_Applied_Arts/1e92/
+http://www.londontown.com/LondonInformation/Shops/Deepak_Cash__Carry/e293/
+http://www.londontown.com/LondonInformation/Underground_Stations/East_Putney/1ef5/
+http://www.londontown.com/LondonStreets/old_street_173.html
+http://www.londontown.com/londonmaps/index.php?ID=20739&IV_Type=TotalLondon&IV_RunByMethod=VBGC&IV_GeoHorizontal=
+http://www.londontown.com/londonmaps/index.php?ID=21912&IV_Type=TotalLondon&IV_RunByMethod=VBGC&IV_GeoHorizontal=
+http://www.londonvicaragehotel.com/pages/culture.html
+http://www.lonefathers.com.au/octnov01/page23.html
+http://www.lonelyplanet.com/destinations/europe/france/printable.htm
+http://www.lonelyplanet.com/destinations/europe/scotland/printable.htm
+http://www.lonelyplanet.com/destinations/europe/scottish_highlands_and_islands/printable.htm
+http://www.lonelyplanet.com/destinations/europe/york/
+http://www.lonelyplanet.com/destinations/europe/york/history.htm
+http://www.lonelyplanet.com/destinations/indian_subcontinent/pakistan/attractions.htm
+http://www.lonelyplanet.com/destinations/south_america/caracas/history.htm
+http://www.lonesentry.com/articles/officercorps/
+http://www.lonesentry.com/battleoftheomars/section1.html
+http://www.lonesentry.com/tacticalstudy/
+http://www.longdarkteatime.com/
+http://www.longhornblogs.com/rdawson/archive/2005/05/23/14104.aspx
+http://www.longislandassociation.org/member_benefits.cfm
+http://www.longislandpress.com/?cp=154&show=article&a_id=4036
+http://www.longlake.ca/news/sep21a_04.asp
+http://www.longpauses.com/blog/2003_01_01_longpauses_archive.html
+http://www.longstoryshortpier.com/vaults/2004/03/18/three_simple_rules_for_talking_about_comics
+http://www.longtermrental.co.uk/short-term-contract-hire.asp
+http://www.longwood.edu/longwood/Winter02/coverstory.html
+http://www.longyangclub.org/newsite/personals/personals_apr05.htm
+http://www.lookingforlewiscarroll.com/lovepoetry2.html
+http://www.lookingforlewiscarroll.com/seriouspoetry.html
+http://www.lookingland.com/board/
+http://www.lookingland.com/board/forumdisplay.php?s=&forumid=3
+http://www.lookinguntojesus.net/ata20030817.htm
+http://www.loomisflute.com/forum.htm
+http://www.loonygames.com/content/1.29/mouth/
+http://www.loopers-delight.com/loopography/Records.html
+http://www.loopfilmworks.com/film/projects/cinemania/
+http://www.looselycoupled.com/stories/2003/closer-soa-ca1229.html
+http://www.loosetooth.com/Art/artwork.php3
+http://www.lootedart.com/
+http://www.lopezbooks.com/articles/first.html
+http://www.loraincountyunitedway.com/faqs/
+http://www.lordofthebeans.com/wordpress/
+http://www.lordofthebeans.com/wordpress/?cat=1
+http://www.lordofthebeans.com/wordpress/?m=200506
+http://www.lordofthebeans.com/wordpress/?p=6
+http://www.lordsofpain.net/news/2005/articles/1117699011.php
+http://www.lorealusa.com/Career/career_grad.aspx
+http://www.lorenbennett.org/children.htm
+http://www.lorenwebster.net/In_a_Dark_Time/
+http://www.lorenwebster.net/In_a_Dark_Time/category/haiku-and-beyond/
+http://www.losangelesmission.com/ed/articles/2000/1100rk.htm
+http://www.losingblueprint.com/lbppress.html
+http://www.lostadmiralreturns.com/manual/mission1.html
+http://www.losthorizons.com/Cracking_the_Code.htm
+http://www.lostrivers.ca/points/bofuc.htm
+http://www.losttrails.com/pages/Tales/Inquiries/Herodotus_36.html
+http://www.losttrails.com/pages/Tales/Inquiries/Herodotus_4.html
+http://www.losttreasure.com/fieldtests/LT950940.cfm
+http://www.lothingland.page.co.uk/ashbysun.htm
+http://www.lothingland.page.co.uk/hso7.htm
+http://www.lotterypost.com/news-97823.htm
+http://www.lotteryusa.com/lottery/FAQs.html
+http://www.lotuscarclub.org/
+http://www.lotusespritworld.co.uk/Sale/parts.html
+http://www.loudside.com/bands/?bandID=191
+http://www.loudtechinc.com/news/2005/03072005_slm.html
+http://www.loudthinking.com/arc/000333.html
+http://www.loudthinking.com/arc/2005_01.html
+http://www.loudwire.net/users/metzger/
+http://www.lougheedhouse.com/history.php
+http://www.louisbeam.com/leaderless.htm
+http://www.louiseferguson.com/cityofbits.htm
+http://www.louisiana.edu/Advancement/PRNS/news/2005/195.shtml
+http://www.louisianafolklife.org/LFP/main_defining_terms.html
+http://www.louislamourslosttreasures.com/Lost_Treasures/killkennywhetstone_2.htm
+http://www.louissachar.com/Bio.htm
+http://www.louisville.com/loumag/mar/bacon.htm
+http://www.louisville.edu/president/boards/trustees/minutes/2001/092401.html
+http://www.louisvilledoctor.com/rights.htm
+http://www.louisvillemojo.com/huckster/index.cfm?cat=music%20%26%20musicians%3A%20wanted
+http://www.louisvillepeace.org/CAPA/news.html
+http://www.louisvilleveneer.com/veneerglossary.htm
+http://www.louisxiv.demon.co.uk/standrewscc/1999/9906minute.html
+http://www.loutitlibrary.org/early%20resident%20a-h.htm
+http://www.loveandlearning.com/
+http://www.loveathome.com/
+http://www.lovefilm.com/actor.php?at_id=570
+http://www.loveforalifetime.com/asksharon.php
+http://www.lovegevity.com/parenting/parentingadvice/casual_remarks.html
+http://www.lovelife.org.za/corporate/media_programmes/outdoor.html
+http://www.loveme.com/tour/cartagena/
+http://www.lovemusiclovedance.com/bill_williams_trading_chaos.htm
+http://www.loveofscotland.com/citywalk.html
+http://www.loveshack.org/forums/newreply.php?s=&action=newreply&postid=386724
+http://www.loveshack.org/forums/showthread.php?postid=395244
+http://www.loveshack.org/forums/t55090/
+http://www.loveshack.org/forums/t55860/
+http://www.loveshack.org/forums/t55860/?goto=lastpost
+http://www.loveshack.org/forums/t55868/
+http://www.loveshack.org/forums/t55868/?goto=lastpost
+http://www.lovesicily.com/blog/index.php?m=200410
+http://www.lovetactics.com/ask/category.html?id=Commitment
+http://www.lovetheoutdoors.com/camping/Safety.htm
+http://www.lovingyou.com/content/romance/content.shtml?ART=loveletterideas
+http://www.low-carb.com/whyhasmylowc.html
+http://www.lowaprcredit.com/
+http://www.lowcarbcafe.com/FAQ's.htm
+http://www.lowculture.com/archives/2003/09/
+http://www.lowculture.com/archives/2004/09/
+http://www.lowculture.com/archives/2005/01/pyramid_scheme.html
+http://www.lowculture.com/archives/2005/02/rummy_mr_nice_g.html
+http://www.lowculture.com/archives/2005/03/
+http://www.lowculture.com/archives/2005/03/the_murderer_ha_1.html
+http://www.lowculture.com/archives/2005/04/coming_soon_the_2.html
+http://www.lowefamily.org/interviews/sep00.html
+http://www.lowenstein.com/new/54.html
+http://www.lowensteyn.com/iroquois/
+http://www.lowerbuckshospital.org/privacy.html
+http://www.lowerhalstow.org.uk/war/ww1/diddums.asp
+http://www.lowermanhattan.info/health/question_week/q__how_many_77456.asp
+http://www.lowermanhattan.info/health/question_week/what_is_the_status_62885.asp
+http://www.lowermanhattan.info/health/question_week/what_s_happening_with_77703.asp
+http://www.lowermanhattan.info/news/hanukah_celebrations___49251.asp
+http://www.lowes.com/lkn?action=howTo&p=HomeDecor/RefnWdFurn&topic=howToLibrary
+http://www.lowes.com/lkn?action=pg&p=/Energy/conserv_vapfusret.html
+http://www.lowpay.gov.uk/lowpay/research/research2_05.shtml
+http://www.lowridermagazine.com/features/0112lrm_historybook/
+http://www.lowtax.net/lowtax/html/jswoltr.html
+http://www.lowtax.net/lowtax/html/stkitts_nevis/jnvcfir.html
+http://www.lp.org/campaigns/lpa/1996/lpa-2-staff.html
+http://www.lp.org/issues/foreign-policy.html
+http://www.lp.org/lpn/9409-talking.html
+http://www.lpb.org/programs/heroes/1998.html
+http://www.lpch.org/DiseaseHealthInfo/HealthLibrary/digest/diaphrag.html
+http://www.lpch.org/DiseaseHealthInfo/HealthLibrary/hematology/donate.html
+http://www.lpch.org/DiseaseHealthInfo/HealthLibrary/safety/mvshrsk.html
+http://www.lpch.org/NewsFeatures/cffWebcast.html
+http://www.lpdallas.org/features/draheim/dr980527.htm
+http://www.lpj.org/Nonviolence/Raed/eng-article/Opinoin/Christians.html
+http://www.lpj.org/schools.html
+http://www.lpl.arizona.edu/~showman/research.html
+http://www.lpn.org/content/privacy/privacy.cfm
+http://www.lpnm.org/forum/0232.html
+http://www.lq.ca/issues/fall2001/articles/article07.html
+http://www.lrainc.com/swtaboo/stalkers/ml_ggs.html
+http://www.lrb.bc.ca/
+http://www.lrb.bc.ca/forms/
+http://www.lrb.bc.ca/rules/rules2.htm
+http://www.lrb.co.uk/classified/index.php
+http://www.lrb.co.uk/v21/n04/clar03_.html
+http://www.lrb.co.uk/v21/n04/print/clar03_.html
+http://www.lrb.co.uk/v21/n19/fodo01_.html
+http://www.lrb.co.uk/v21/n24/john01_.html
+http://www.lrb.co.uk/v21/n24/print/john01_.html
+http://www.lrb.co.uk/v22/n04/letters.html
+http://www.lrb.co.uk/v22/n08/enri01_.html
+http://www.lrb.co.uk/v22/n11/hami01_.html
+http://www.lrb.co.uk/v22/n14/mcki01_.html
+http://www.lrb.co.uk/v22/n16/letters.html
+http://www.lrb.co.uk/v23/n10/beck02_.html
+http://www.lrb.co.uk/v23/n10/print/beck02_.html
+http://www.lrb.co.uk/v23/n11/print/lutt01_.html
+http://www.lrb.co.uk/v23/n13/mcki01_.html
+http://www.lrb.co.uk/v23/n19/camp01_.html
+http://www.lrb.co.uk/v23/n19/print/camp01_.html
+http://www.lrb.co.uk/v23/n24/jone01_.html
+http://www.lrb.co.uk/v23/n24/print/jone01_.html
+http://www.lrb.co.uk/v25/n05/ande01_.html
+http://www.lrb.co.uk/v25/n18/jone01_.html
+http://www.lrb.co.uk/v26/n08/farm01_.html
+http://www.lrb.co.uk/v26/n17/ande01_.html
+http://www.lrb.co.uk/v26/n17/zize01_.html
+http://www.lrb.co.uk/v27/n08/reto01_.html
+http://www.lrb.co.uk/v27/n11/print/runc01_.html
+http://www.lrb.co.uk/v27/n11/runc01_.html
+http://www.lrc.ie/viewdoc.asp?DocID=142&m=u
+http://www.lrc.ie/viewdoc.asp?DocID=433&m=f
+http://www.lrc.ie/viewprint.asp?DocID=433&m=f
+http://www.lrc.state.ky.us/KRS/344-00/CHAPTER.HTM
+http://www.lre.usace.army.mil/_kd/go.cfm?destination=ShowItem&Item_ID=2819
+http://www.lrf.org.zm/Newsletter/december2001/lrf.news.chadiza.htm
+http://www.lrf.org.zm/pixstory.html
+http://www.lrfbc.org/ministries/friends/
+http://www.lrpeaceandjustice.org/new_page_1.htm
+http://www.lrwonline.com/about/special/newprods.htm
+http://www.lrz-muenchen.de/~hr/lang/dt-hist.html
+http://www.lsa.umich.edu/history/ug/colloquia.asp
+http://www.lsa.umich.edu/saa/firstyear/courseguide/archive/04winter/379.html?w04
+http://www.lsa.umich.edu/saa/publications/RE_lists/R&E.F01.html
+http://www.lsa.umich.edu/saa/publications/courseguide/winter/archive/Winter89.cg/CAAS.w89.html
+http://www.lsadc.org/faq/index.php?aaa=bilingchildfaq.htm
+http://www.lsadc.org/faq/index.php?aaa=endangered.htm
+http://www.lsadc.org/faq/index.php?aaa=faqengl.htm
+http://www.lsadc.org/faq/index.php?aaa=faqthink.htm
+http://www.lsadc.org/faq/index.php?aaa=howmany.htm
+http://www.lsb.lilly.com.sg/careers/job_opportunities/
+http://www.lsb.state.ok.us/house/mediahme.htm
+http://www.lsbu.ac.uk/esbe/about/depapp.shtml
+http://www.lsbu.ac.uk/esbe/about/depeng.shtml
+http://www.lsbu.ac.uk/families/jrfsibresources.shtml
+http://www.lsbu.ac.uk/internat/coursefees.htm
+http://www.lsbu.ac.uk/lrc/rules.html
+http://www.lsbu.ac.uk/sas/news.html
+http://www.lsc.gov.uk/NR/exeres/DAE09273-4535-4995-AA1B-8290D95CF593.htm
+http://www.lsc.org/school_resources/cardiac_classroom/cardiac_activities.html
+http://www.lse.ac.uk/Depts/language/InsessionalSupport.htm
+http://www.lse.ac.uk/Depts/language/englishfaqs.htm
+http://www.lse.ac.uk/Depts/language/termsandconditions.htm
+http://www.lse.ac.uk/clubs/hayek/Ama-gi/Volume1/number2/what_is_liberalism.htm
+http://www.lse.ac.uk/collections/IBSS/support/trainingCourses.htm
+http://www.lse.ac.uk/collections/LSEPublicLecturesAndEvents/events/2005/20050531t1459z001.htm
+http://www.lse.ac.uk/collections/asiaResearchCentre/events.htm
+http://www.lse.ac.uk/collections/enterpriseLSE/associatesAffiliates.htm
+http://www.lse.ac.uk/collections/generalCourse/FAQs.htm
+http://www.lse.ac.uk/collections/globalDimensions/research/vcable.htm
+http://www.lse.ac.uk/collections/pressAndInformationOffice/newsAndEvents/archives/2005/LSE_SuttonTrust_report.htm
+http://www.lse.ac.uk/collections/pressAndInformationOffice/staffStudentsAndAlumni/newsandviews/07-05-2002.htm
+http://www.lse.ac.uk/collections/pressAndInformationOffice/staffStudentsAndAlumni/newsandviews/28-10-2002.htm
+http://www.lse.ac.uk/collections/studentRecruitment/links.htm
+http://www.lse.ac.uk/resources/graduateProspectus2005/departmentsInstitutesCentres/departmentOfGovernment.htm
+http://www.lse.ac.uk/resources/graduateProspectus2005/departmentsInstitutesCentres/departmentOfInternationalRelations.htm
+http://www.lse.ac.uk/resources/schoolRegulations/health.htm
+http://www.lse.co.uk/ShareInformation.asp?SharePrice=GON&AddToWatch=y
+http://www.lse.co.uk/ShowStory.asp?story=AY1614107S&news_headline=wall_collapses_at_new_arsenal_stadium_site_
+http://www.lse.co.uk/uknews.asp?story=AY1614107S&news_headline=wall_collapses_at_new_arsenal_stadium_site_
+http://www.lse.com.au/bcast.htm
+http://www.lseinc.com/news/p0845/
+http://www.lsemod.com/whybuy/about.html
+http://www.lsoft.com/customers/lm_net.asp
+http://www.lsschools.k12.ca.us/lakeside/7thgradestandards.asp
+http://www.lsst.org/Science/NEOsurvey.html
+http://www.lsu.edu/deafness/recent.htm
+http://www.lsu.edu/lsutoday/010420/pageone.html
+http://www.lsuagcenter.com/news/November2003/NewsUse/PlanHolidaySpending.asp
+http://www.lsualumni.org/
+http://www.lsuc.on.ca/regulation/a/discipline/july02/
+http://www.lsureveille.com/vnews/display.v/ART/2005/02/02/4200853523f26
+http://www.lt-smash.us/
+http://www.lt-smash.us/archives/002759.html
+http://www.ltcconsultants.com/consumer/partnership/index.shtml
+http://www.ltcshelton.com/result.php?Keywords=leads&host=www.ltcshelton.com&relay=1&original=leads+ltc
+http://www.ltcshelton.com/result.php?Keywords=leads+you&host=www.ltcshelton.com&relay=1&original=insurance+leads
+http://www.ltembassyus.org/Speeches/Wyoming11202003.html
+http://www.ltsc.ucsb.edu/urca/calendar.php
+http://www.ltscotland.org.uk/faq_scottish_education.asp
+http://www.ltu.mmu.ac.uk/ltia/
+http://www.luag.org/pages/viewfull.cfm?ElementID=150
+http://www.luannudell.com/blog/2003/03/07.html
+http://www.lubbockartscenter.org/film.html
+http://www.lubipumps.com/closed_coupled_monoblock_pumps_1450.html
+http://www.lucasgroup.com/candidates/careercommunity/get_wsjarticle.cfm?ID=244
+http://www.lucasgroup.com/candidates/careercommunity/get_wsjarticle.cfm?ID=42
+http://www.luccioleonline.org/documentazione/conference.htm
+http://www.luceatlux.com/psb/remnantsreviews.html
+http://www.lucianne.com/
+http://www.lucidcafe.com/library/96jan/bessemer.html
+http://www.lucire.com/2005a/0606ll1.shtml
+http://www.luckymojo.com/mojo.html
+http://www.luckymojo.com/peacefulhome.html
+http://www.luckymojo.com/redbeans.html
+http://www.luckymojo.com/tkbiologicalbasis.html
+http://www.luckymojo.com/tkintersex.html
+http://www.luckyworld.co.uk/index.php?p=19
+http://www.ludd.net/retort/msg00116.html
+http://www.ludonauts.com/index.php/2004/06/15/girls_as_game_designers_what_choices_do
+http://www.ludonauts.com/index.php/2004/12/28/p99
+http://www.ludonauts.com/index.php/2005/02/14/p204
+http://www.lufkinisd.org/concode.html
+http://www.luggerhotel.co.uk/outdoors.html
+http://www.lugjam.co.uk/
+http://www.luhs.org/depts/injprev/Breakpnt/bp-v3-11.htm
+http://www.lulu.com/forums/viewtopic.php?t=12218
+http://www.lulu.com/forums/viewtopic.php?t=8261
+http://www.lumc.edu/rmch/child/Mileston.htm
+http://www.luminar.co.uk/cgi/page-view.cgi?pagename=terms&type=live
+http://www.luminet.net/~tgort/gwb092001.htm
+http://www.luminet.net/~wenonah/new/hsense.htm
+http://www.luminous-landscape.com/reviews/mf-backs.shtml
+http://www.luminous-landscape.com/tutorials/dq.shtml
+http://www.luminous-landscape.com/tutorials/understanding-series/lens-contrast.shtml
+http://www.lumpen.com/magazine/81/critical_art_ensemble.shtml
+http://www.lums.lancs.ac.uk/files/marketing/3401/download/
+http://www.lums.lancs.ac.uk/news/cuttings/
+http://www.lunadust.com/blog2/archives/2001/01/
+http://www.lunar-reclamation.org/papers/rille_paper3.htm
+http://www.lunar-reclamation.org/papers/rille_paper4.htm
+http://www.lunaranomalies.com/rad.htm
+http://www.lunarrock.com/Research.asp?m=4
+http://www.lundytruth.co.nz/whats_your_verdict_commentary.html
+http://www.lungusa.org/site/apps/s/link.asp?c=dvLUK9O0E&b=203680
+http://www.lungusa.org/site/pp.asp?c=dvLUK9O0E&b=22598
+http://www.lungusa.org/site/pp.asp?c=dvLUK9O0E&b=39310
+http://www.lungusa.org/site/pp.asp?c=dvLUK9O0E&b=42546
+http://www.lupin.com/
+http://www.lupinworks.com/article/learn.html
+http://www.lupus.org/education/faq.html
+http://www.luquette.org/inspire/christmas/1_corinthians_13_for_christmas.htm
+http://www.lustbook.com/hers/free/730.shtml
+http://www.lustbook.com/hers/read_online/pre_sex_issues.asp
+http://www.lusternia.com/planes.php?inc=prime
+http://www.luther.edu/about/jensjensen.html
+http://www.lutheranhour.org/stories/tragicirony.htm
+http://www.lutheranwomantoday.org/bible/session1fall05-06.html
+http://www.lutheranworld.org/What_We_Do/Dts/Programs/DTS-Theology-Church.html
+http://www.lutins.org/nasa.html
+http://www.luton.ac.uk/alumni/wherenow/i-r/maura-mcdonagh
+http://www.luton.gov.uk/internet/business/trading_standards/Advice%20to%20business
+http://www.luton.gov.uk/internet/transport_and_streets/engineering%20&%20transportation/Road%20adoption
+http://www.luuonline.com/advice/crime.html
+http://www.luxverbi.org.uk/arch/secrets_behind_theveil_introduction.htm
+http://www.lvalpacas.com/shearing.htm
+http://www.lvcitylife.com/local_news/shrapnel/
+http://www.lvlife.com/2000/01/features/story05.html
+http://www.lvlife.com/2000/07/features/story02.html
+http://www.lvlife.com/2000/11/features/story01.html
+http://www.lvmh.com/lvmhetvous/pg_bourses.asp?rub=13
+http://www.lvmh.com/lvmhetvous/pop_conference_asie.asp
+http://www.lvmh.com/magazine/pg_mag_contenu.asp?archive=0&int_id=29&rubrique=FOCUS
+http://www.lwca.org/
+http://www.lwh.org.uk/about_us/facilities.html
+http://www.lwr.org/news/01/021401.asp
+http://www.lwsd.wednet.edu/ms/handbook.html
+http://www.lwtc.ctc.edu/contact/help/
+http://www.lwv.org/elibrary/nv/2002/voter_0902_5.html
+http://www.lww-medicalcare.com/pt/re/medcare/callforpapers.htm
+http://www.lww-medicalcare.com/pt/re/medcare/fulltext.00005650-199607000-00002.htm
+http://www.lww-medicalcare.com/pt/re/medcare/fulltext.00005650-199909000-00006.htm
+http://www.lyd.com/biblioteca/libros/private/school.html
+http://www.lydmar.se/
+http://www.lyingliar.com/
+http://www.lyingmediabastards.com/2004/12/leaving-las-vegas
+http://www.lyingmediabastards.com/2005/01/request-line
+http://www.lyingsocialistweasels.com/responsibility_and_the_right_win.htm
+http://www.lymec.org/
+http://www.lymeregis.com/studio36/timetable/
+http://www.lymphnet.org/2005summit/ptsummit05.html
+http://www.lymphomainfo.net/nhl/diagnosis.html
+http://www.lynchnet.com/
+http://www.lynn.edu/index.php?src=news&submenu=News&prid=1052&category=Mens%20Baseball%20News
+http://www.lynnuniversity.edu/adventure/011004.htm
+http://www.lyonhomes.com/homes/northern-california-homebuilders.php
+http://www.lyrical.nl/song/4871
+http://www.lyrics4all.net/i/imx/imx/hate-the-playa.php
+http://www.lyricscrawler.com/song/2333.html
+http://www.lyricscrawler.com/song/48104.html
+http://www.lyricsdepot.com/ben-folds/losing-lisa.html
+http://www.lyricsdepot.com/dj-clue/exclusive-new-shit.html
+http://www.lyricsdepot.com/missy-elliott/go-to-the-floor.html
+http://www.lyricsdomain.com/22/victoria_beckham/i_wish.html
+http://www.lyricsdomain.com/9/imx/hate_the_playa.html
+http://www.lyricsfreak.com/t/third-eye-blind/136705.html
+http://www.lyricsfreak.com/v/victoria-adams/144295.html
+http://www.lyricshead.com/show_lyrics/george-strait/carrying-your-love-with-me/
+http://www.lyricsstyle.com/i/imx/hatetheplaya.html
+http://www.lyricsxp.com/lyrics/s/stop_listening_tanita_tikaram.html
+http://www.lyriczz.com/lyriczz.php?songid=10048
+http://www.lysanderspooner.org/UnconstitutionalityOfSlavery9.htm
+http://www.lysator.liu.se/c/bwk-tutor.html
+http://www.lysator.liu.se/c/plan9c.html
+http://www.lysator.liu.se/pbm/starcluster/introex1.html
+http://www.lysator.liu.se/~/k13/reuse.html
+http://www.lysator.liu.se/~chief/SID/sid98-28.htm
+http://www.lysator.liu.se/~rasmus/skepticism/dowsing.html
+http://www.lzine.com/1104/firmaf.html
+http://www.m-a.org.uk/making_better_use_of_mathematical_talent/
+http://www.m-a.org.uk/whats_new/beyond_the_numeracy_strategy/
+http://www.m-asa.org/
+http://www.m-cc.nl/purposeful_change_in_seven_steps.htm
+http://www.m-me.com/educational.html
+http://www.m5p.com/~pravn/hp/d-4.html
+http://www.m5p.com/~pravn/hp/g-4.html
+http://www.m5p.com/~pravn/hp/m-2.html
+http://www.m5p.com/~pravn/hp/m-3.html
+http://www.m5p.com/~pravn/hp/m-4.html
+http://www.maa.org/editorial/knot/LiberalArts.html
+http://www.maa.org/editorial/knot/chocolate.html
+http://www.maa.org/pmet/minigrants/progressSJFC.html
+http://www.maa.org/pubs/employ.html
+http://www.maa.org/reviews/brief_apr03.html
+http://www.maagmedical.com/patientcaregivers.asp
+http://www.maandparailroad.com/mapahistory.html
+http://www.mabalawyers.org/eWebPages/Job-Bank.html
+http://www.macaddict.com/forums/post/772583
+http://www.macaddict.com/forums/post/772693
+http://www.macaddict.com/forums/post/772748
+http://www.macaddict.com/forums/topic/51630/3
+http://www.macaddict.com/forums/topic/52675
+http://www.macalester.edu/german/whygerman.html
+http://www.macalester.edu/~envirost/MacEnvReview/reviewconserving.htm
+http://www.macalester.edu/~psych/whathap/UBNRP/aesthetics/therapy.html
+http://www.macattitude.com/9912/digitalprint.shtml
+http://www.macaulay.ac.uk/tarland/whatis.html
+http://www.maccaws.org/kit/way-forward/
+http://www.maccentral.com/
+http://www.macchess.cornell.edu/MacCHESS-2004/equipment.html
+http://www.macchiato.com/unicode/timeIntervals.htm
+http://www.macconnection.com/SiteHelp/ShippingInfo.htm
+http://www.macdevcenter.com/pub/a/mac/2005/06/07/wwdc.html
+http://www.macdisk.com/cdcreaten.php3
+http://www.macedonianhistory.ca/html/events/just_arrived.html
+http://www.macfdn.org/programs/fel/faq.htm
+http://www.macfixit.com/article.php?story=20050616083226250
+http://www.macfound.org/announce/press_releases/7_17_2004.htm
+http://www.macfound.org/announce/press_releases/7_22_2002_2.htm
+http://www.macfound.org/issues/issue_1/story_1.htm
+http://www.machinedesign.com/ASP/viewSelectedArticle.asp?strArticleId=56597&strSite=MDSite&Screen=AUTO&catId=382
+http://www.machinedesign.com/ASP/viewSelectedArticle.asp?strArticleId=58715&strSite=MDSite&Screen=CURRENTISSUE&CatID=3
+http://www.machinevisiononline.org/public/articles/archivedetails.cfm?id=1486
+http://www.machinima.com/article.php?article=164
+http://www.machinima.com/article.php?article=378
+http://www.machovec.com/rope/info.htm
+http://www.machsomwatch.org/docs/monthlyReports/September2004Eng.asp?link=summaries&lang=eng
+http://www.macintouch.com/support08.html
+http://www.macjournals.com/mwj/mwj_samples/piracy_hokum.html
+http://www.mackinac.org/article.asp?ID=6028
+http://www.mackinac.org/depts/ecodevo/article.asp?ID=6628
+http://www.mackinawcity.com/calendar.phtml
+http://www.macleans.ca/switchboard/columnists/donaldcoxe/article.jsp?content=20030915_65347_65347
+http://www.macleans.ca/topstories/business/article.jsp?content=20041220_95189_95189
+http://www.macnewsworld.com/story/31536.html
+http://www.macnewsworld.com/story/33132.html
+http://www.macnewsworld.com/story/34225.html
+http://www.macnewsworld.com/story/34228.html
+http://www.macnewsworld.com/story/36688.html
+http://www.macnewsworld.com/story/38733.html
+http://www.macnewsworld.com/story/39337.html
+http://www.macnewsworld.com/story/42177.html
+http://www.macnewsworld.com/story/42429.html
+http://www.macnewsworld.com/story/43627.html
+http://www.macnewsworld.com/story/pE9NswskNp1zcg/Apple-Hits-the-Intel-Switch.xhtml
+http://www.macnightowl.com/bullish/2003/06/06-02.htm
+http://www.macnightowl.com/newsletters/2004/12/263.htm
+http://www.macnn.com/articles/05/06/08/intel.and.mobile.computing/
+http://www.macobserver.com/article/2001/02/20.10.shtml
+http://www.macobserver.com/article/2004/07/21.6.shtml
+http://www.macobserver.com/article/2004/12/03.1.shtml
+http://www.macobserver.com/article/2005/06/08.8.shtml
+http://www.macobserver.com/article/2005/06/22.4.shtml
+http://www.macobserver.com/columns/frameline/2005/20050224.shtml
+http://www.macobserver.com/tips/hotcocoa/2001/20010817.shtml
+http://www.macon.com/mld/macon/news/world/11857196.htm
+http://www.macon.com/mld/telegraph/news/local/10763487.htm
+http://www.macopinion.com/columns/roadwarrior/02/07/23/
+http://www.macopinion.com/columns/roadwarrior/03/10/21/
+http://www.macopinion.com/columns/tangible/01/07/26/
+http://www.macosx.com/forums/archive/index.php/t-35175.html
+http://www.macosxhints.com/article.php?story=20050302225659382
+http://www.macquarie.com.au/au/corporations/managed_funds/research_resources/resources.htm
+http://www.macrobiotics.co.uk/features/GuinatJanetRice.htm
+http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_15106
+http://www.macromedia.com/cfusion/showcase/index.cfm?event=casestudydetail&casestudyid=1955&loc=en_us
+http://www.macromedia.com/cfusion/showcase/index.cfm?event=casestudydetail&casestudyid=3262&loc=en_us
+http://www.macromedia.com/cfusion/showcase/index.cfm?event=casestudydetail&loc=en_us&casestudyid=2827%20
+http://www.macromedia.com/cfusion/showcase/index.cfm?event=casestudyprint&casestudyid=2827&loc=en_us
+http://www.macromedia.com/cfusion/webforums/forum/messageview.cfm?catid=297&threadid=1003207&enterthread=y
+http://www.macromedia.com/devnet/flex/articles/halo_04.html
+http://www.macromedia.com/devnet/mx/coldfusion/articles/ben_forta_faster.html
+http://www.macromedia.com/devnet/mx/coldfusion/articles/dc_wizard_09.html
+http://www.macromedia.com/devnet/mx/coldfusion/articles/migrating.html
+http://www.macromedia.com/devnet/mx/coldfusion/articles/rsswatch_print.html
+http://www.macromedia.com/devnet/mx/coldfusion/j2ee/articles/cf_mx_overview.html
+http://www.macromedia.com/devnet/mx/director/articles/evolution_director.html
+http://www.macromedia.com/devnet/mx/dreamweaver/articles/dw_templates.html
+http://www.macromedia.com/devnet/mx/dreamweaver/articles/dwmx_vqs_ch11.html
+http://www.macromedia.com/devnet/mx/freehand/articles/site_nav_print.html
+http://www.macromedia.com/devnet/security/articles/sandbox_02_02.html
+http://www.macromedia.com/go/gnavtray_show_sodarchive
+http://www.macromedia.com/macromedia/accessibility/article/director_retrofit/
+http://www.macromedia.com/software/director/productinfo/upgrade/
+http://www.macromedia.com/support/director/releasenotes/8/releasenotes_85.htm
+http://www.macromedia.com/support/director/releasenotes/mx/releasenotes_mx.html
+http://www.macromedia.com/support/dreamweaver/building/master_detail_net/master_detail_net03.html
+http://www.macromedia.com/support/fireworks/programs/using_fw_with_dir/
+http://www.macs.hw.ac.uk/britishisles/
+http://www.macs.hw.ac.uk/~makholm/
+http://www.mactech.com/articles/mactech/Vol.04/04.10/ToolsCompared/
+http://www.macucc.org/central/directions.htm
+http://www.macwhiz.com/articles/art-of-turboing.html
+http://www.macworld.com/
+http://www.macworld.com/2002/02/reviews/office/
+http://www.macworld.com/2003/07/features/putweblogstowork/index.php
+http://www.macworld.com/2005/06/features/intelfaq/index.php
+http://www.macworld.com/news/2005/04/21/powerbookhandson/index.php
+http://www.mad-cow.org/00/dec00_late_news.html
+http://www.mad-cow.org/00/feb01_news_mid.html
+http://www.mad-cow.org/00/jan00_news.html
+http://www.mad-cow.org/00/mar01_news.html
+http://www.mad-cow.org/00/may00_late_news.html
+http://www.mad-cow.org/dec_early_news.html
+http://www.mad-cow.org/lacey.html
+http://www.mad-cow.org/no_sod.html
+http://www.mad-cow.org/~tom/vampire.html
+http://www.madamebonancieux.com/charles_gen.html
+http://www.madanthony.org/blogger/archive/2005_01_02_index.html
+http://www.madcowprod.com/11242004.html
+http://www.madd.org/under21/1,1056,1107_11_20,00.html
+http://www.maddox.xmission.com/c.cgi?u=creeve
+http://www.madhattersimc.org/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=4
+http://www.madison.k12.wi.us/boe/minutes/regular/2003-06-02.htm
+http://www.madmaxmovies.com/flubs/madmax3.html
+http://www.madmonkey.net/page.cgi/flyingsolo0100
+http://www.madpony.com/
+http://www.madre.org/co_iraq_thanksgiving.html
+http://www.madridpost.com/
+http://www.madsci.org/posts/archives/dec2001/1008606727.Ph.r.html
+http://www.madsci.org/posts/archives/jun99/929552614.Ph.r.html
+http://www.maeko.org/blog/
+http://www.maes-natl.org/index.php?module=ContentExpress&func=display&ceid=210
+http://www.maes-natl.org/index.php?module=ContentExpress&func=display&ceid=225
+http://www.maesakharov.com/adultHome.htm
+http://www.maf.govt.nz/mafnet/press/110505fmd3.htm
+http://www.maf.govt.nz/mafnet/rural-nz/people-and-their-issues/access/meeting-notes/meeting-notes-10.htm
+http://www.maf.govt.nz/mafnet/rural-nz/people-and-their-issues/access/meeting-notes/meeting-notes-12.htm
+http://www.maf.govt.nz/mafnet/rural-nz/statistics-and-forecasts/sonzaf/2000/apples.htm
+http://www.mafhoum.com/press/amelect.htm
+http://www.mag.org/
+http://www.mag1instruments.com/cldnts_visit.html
+http://www.magazine.tcu.edu/articles/2004-04-AM.asp
+http://www.magazinesupermart.com/about-us---faq-s-the-truth-about-those-free-trial-offers---.html
+http://www.magdrl-nj.com/sponsors_gtk.html
+http://www.magentastudios.com/
+http://www.maggiesmusic.com/dvdinfo.html
+http://www.maggiesmusic.com/mm218.html
+http://www.magic4you.nu/forum2/viewtopic.php?t=4773
+http://www.magicauction.com/Mag_auc/cards4.htm
+http://www.magichook.com/About_the_Captain.htm
+http://www.magickmirror.com/new_page_4.htm
+http://www.magictimes.com/
+http://www.magictricks.co.uk/prodlist.asp?cat=excl
+http://www.magictricks.co.uk/prodshow.asp?code=258&RevDisp=showall
+http://www.magictricks.co.uk/prodshow.asp?code=88
+http://www.magictrips.com/plan/medical.shtml
+http://www.magma.ca/~scimat/eyesurgery.htm
+http://www.magnatalent.com/magna.htm
+http://www.magnitude.com/main/News/news20030707.htm
+http://www.magnolia.net/~leonf/MyEssays/SpinTech/SoftHard.htm
+http://www.magnoliarestoration.com/investors/default.asp
+http://www.magnumresearch.com/News_print.asp?story=rshooter.asp
+http://www.magnumresearch.com/news_detail.asp?story=rshooter.asp
+http://www.magnuski.org/magnusy.html
+http://www.magportal.com/c/ent/art/
+http://www.magsys.co.uk/telecom/
+http://www.magweb.com/sample/wn002nd.htm
+http://www.magweb.com/sample/wn012nd.htm
+http://www.magweb.com/sample/wn021st.htm
+http://www.magweb.com/sample/wn992nd.htm
+http://www.magwerks.com/Considerations-of-UV.htm
+http://www.mahablog.com/2005.01.23_arch.html
+http://www.mahablog.com/2005.06.05_arch.html
+http://www.maharashtradirectory.com/SearchResult.asp?ProductID=3695
+http://www.maharashtradirectory.com/searchresult.asp?productid=1806
+http://www.maharashtradirectory.com/searchresult.asp?productid=3706
+http://www.mahatmehospital.com/research/pages/woodcutter.htm
+http://www.mahindarama.com/msps/activities-msps.htm
+http://www.mahoganyinn.com.au/aboutus.html
+http://www.mahrecords.com/
+http://www.mail-archive.com/best-forex-signal@yahoogroups.com/msg00006.html
+http://www.mail-archive.com/best-forex-signal@yahoogroups.com/msg00007.html
+http://www.mail-archive.com/do-wire@tc.umn.edu/msg00267.html
+http://www.mail-archive.com/mcb-infoline@lists.berkeley.edu/msg00204.html
+http://www.mail-archive.com/openssl-users@openssl.org/msg39934.html
+http://www.mail-archive.com/skyreport-text@mediabizcorp.com/msg00046.html
+http://www.mail-archive.com/tomcat-dev@jakarta.apache.org/msg72205.html
+http://www.mail-archive.com/tomcat-dev@jakarta.apache.org/msg72207.html
+http://www.mail-archive.com/tomcat-dev@jakarta.apache.org/msg72245.html
+http://www.mail-archive.com/trade-opportunity@yahoogroups.com/msg00540.html
+http://www.mail-archive.com/wsg@webstandardsgroup.org/msg02042.html
+http://www.mailbag.com/users/ragreiner/filterfile.html
+http://www.maildropnet.com/bankacct/5star.htm
+http://www.mailman.hs.columbia.edu/news/dna-damage-study.html
+http://www.mailmsg.com/guest-articles/8-tips-to-help-you-avoid-spam.htm
+http://www.mailonsunday.co.uk/pages/live/articles/health/healthmain.html?in_article_id=255329&in_page_id=1774
+http://www.mailonsunday.co.uk/pages/live/articles/prmts/prmts.html?in_article_id=322074&in_page_id=1777
+http://www.mailonsunday.co.uk/pages/live/articles/prmts/prmts.html?in_article_id=332513&in_page_id=1777
+http://www.main.nc.us/bcsc/Chess_in_Education.htm
+http://www.mainchance.org/bignews/read/april2003/burch.html
+http://www.maine.gov/dmr/rulemaking/july162004.htm
+http://www.maine.gov/sos/cec/rules/notices/041603.htm
+http://www.maine.gov/sos/cec/rules/notices/052699.htm
+http://www.maine.gov/sos/cec/rules/notices/063099.htm
+http://www.maine.gov/sos/cec/rules/notices/103002.htm
+http://www.mainealumni.org/membership/adv_services.htm
+http://www.mainerosesociety.com/rosysurveys.html
+http://www.mainevent.com.au/terms.asp
+http://www.mainlandlaw.com/laborcertification.html
+http://www.mainlandminerals.co.nz/otherproducts.html
+http://www.mainstreampublishing.com/private/forthcoming_titles_general.html
+http://www.mainstreetchillicothemo.com/about.htm
+http://www.mainstreetmom.com/parenting/agree.htm
+http://www.mainstreetmom.com/spirit/worry.htm
+http://www.mainstreetmusic.com/cgi-bin/msmusic/LA0000765290.html
+http://www.mainstreetmusic.com/cgi-bin/msmusic/LA0001494555.html
+http://www.mainstwebdesign.com/link_library/catalog-shopping.htm
+http://www.maintenanceworld.com/reliability-links.htm
+http://www.maisonneuve.org/print_article.php?article_id=411
+http://www.majorcox.com/columns/five-txt.htm
+http://www.majorityreportradio.com/data/op-ed/archives/001226.php
+http://www.majorityreportradio.com/weblog/archives/000055.php
+http://www.majorityreportradio.com/weblog/archives/000056.php
+http://www.majorityreportradio.com/weblog/archives/000066.php
+http://www.majorityreportradio.com/weblog/archives/000084.php
+http://www.majorityreportradio.com/weblog/archives/000435.php
+http://www.majorityreportradio.com/weblog/archives/000625.php
+http://www.majorityreportradio.com/weblog/archives/001049.php
+http://www.majorityreportradio.com/weblog/archives/001146.php
+http://www.majorityreportradio.com/weblog/archives/001151.php
+http://www.majorityreportradio.com/weblog/archives/001269.php
+http://www.majorityreportradio.com/weblog/archives/001317.php
+http://www.majorityreportradio.com/weblog/archives/001394.php
+http://www.majorityreportradio.com/weblog/archives/001554.php
+http://www.majorityreportradio.com/weblog/index.php
+http://www.makai.com/c-makailay.htm
+http://www.make-a-store.com/site/category/gold-c-r_Heavy_Metal_Shopping_Cart_Software_Package_I_Overview
+http://www.make-believe.org/
+http://www.makehits.co.uk/qanda.htm
+http://www.makeithappen.ws/
+http://www.makeitmagic.com/shop/page5.html
+http://www.makemeheal.com/mmh/product/medical_garment.vm
+http://www.makeoutcity.com/Archives/2003/12/25/141600/
+http://www.makepovertyhistory.org/
+http://www.makeworlds.org/node/63
+http://www.makeyougohmm.com/
+http://www.makeyougohmm.com/20050421/1742/
+http://www.makeyouhappy.com/sr_win_module_info.htm
+http://www.makingakilling.org/chapter4.html
+http://www.makinglifeeasier.com/articles/article_journey.php
+http://www.makingmemories.org/html/milestones_-_how_we_accomplish.html
+http://www.makingthemodernworld.org.uk/stories/the_second_industrial_revolution/05.ST.01/?scene=3
+http://www.mala.bc.ca/~johnstoi/arguments/argument2.htm
+http://www.mala.bc.ca/~johnstoi/arguments/argument8.htm
+http://www.mala.ca/policies/policy.asp?rdPolicyNumber=31.10
+http://www.malak.ca/super.html
+http://www.malarcf.org/2004_fall_conf_page.html
+http://www.malariajournal.com/content/4/1/22
+http://www.malcolmbruce.libdems.org.uk/speeches/9.html
+http://www.malcompta.com/legislation.asp
+http://www.maldivesculture.com/news/nss__role_maldives_01.htm
+http://www.maldivesroyalfamily.com/
+http://www.maleface.com/testimonials.htm
+http://www.malehealth.co.uk/userpage1.cfm?item_id=125
+http://www.malehealth.co.uk/userpage1.cfm?item_id=191
+http://www.malehealth.co.uk/userpage1.cfm?item_id=557
+http://www.malehealth.co.uk/userpage1.cfm?item_id=584
+http://www.malet.com/war's%20moral%20poverty%20cannot%20be%20saved%20by%20legality.htm
+http://www.malevolent.com/weblog/archive/2005/05/01/add-google-maps/
+http://www.mallard.co.za/caroline/TTR.htm
+http://www.maltafly.com/modules.php?name=News&file=article&sid=438
+http://www.maltanetworkresources.com/newsgroup/mnr.maltaforum/msg00013.shtml
+http://www.maltedmedia.com/books/papers/s3-ieeet.html
+http://www.malwarwick.com/newsletter/success0304.html
+http://www.mamaloveconnect.com/rkn/member/keys/workshop02.php3
+http://www.mamasbelly.com/testimonials.html
+http://www.mamashealth.com/diets/wmyth.asp
+http://www.mamashealth.com/eat/edrecov.asp
+http://www.mambaonline.co.za/whatson/
+http://www.mambaonline.com/agony/
+http://www.mambaonline.com/whatson/
+http://www.mambers.com/archive/index.php/t-5598.html
+http://www.mambers.com/showthread.php?t=20409&page=3&pp=10
+http://www.mamboportal.com/component/option,com_frontpage/Itemid,1/limit,10/limitstart,50/
+http://www.mamkschools.org/hommocks/class/h&c/nelson/Child%20Dev/Child_Dev.htm
+http://www.mamkschools.org/hommocks/class/hc/nelson/Child%20Dev/Child_Dev.htm
+http://www.mammothfilms.com/history.html
+http://www.mamut.com/homepages/Switzerland/2/9/festivals/newsdet60.htm
+http://www.mamut.com/homepages/Switzerland/2/9/festivals/newsdet77.htm
+http://www.man-health-fitness-solutions.com/
+http://www.man-health-magazine-online.com/vitamin-c.html
+http://www.man.ac.uk/policies/39d.htm
+http://www.man.ac.uk/study/mature/mature_handbook/section4.html
+http://www.man.ac.uk/study/ugrad/new/baecon.html
+http://www.mana.org/committee.html
+http://www.managebytes.com/privacy.html
+http://www.managedcaremag.com/archives/0011/0011.peer_msa.html
+http://www.managedcaremag.com/archives/0412/0412.obesity_continued.html
+http://www.managedcaremag.com/archives/9807/9807.coping_medicare.shtml
+http://www.managedcaremag.com/pharm/pharmcomplist.shtml
+http://www.management-advantage.com/products/free-ee2.htm
+http://www.management-training-consultants.com/shared-values-process.htm
+http://www.managementconsultancy.co.uk/analysis/1131559
+http://www.managementconsultancy.co.uk/features/it/1155507
+http://www.managementconsultants.com/postacquisition_duediligence.html
+http://www.managementdirect.com/web/preview/headlines/childcare.shtml
+http://www.managementscience.org/news/news20.asp
+http://www.managementscience.org/news/news22.asp
+http://www.managementscience.org/research/ab9504.asp
+http://www.managenergy.tv/me_portal/portal.do?bc=154
+http://www.managers.org.uk/institute/content_3.asp/category=3/id=38/id=30/id=29
+http://www.managingchange.com/mediums/inter-tv/hw-swsup.htm
+http://www.managingmymoney.com/worksheets.html
+http://www.managingstress.com/articles/physiology.htm
+http://www.managingstress.com/articles/webpage3.htm
+http://www.manateebrain.org/03body/
+http://www.manateeworld.net/modules.php?op=modload&name=News&file=article&sid=41
+http://www.manchester.ac.uk/degreeprogrammes/postgraduate/taught/720.htm
+http://www.manchester.gov.uk/advice/factsheets/consumer/guide/
+http://www.manchester.gov.uk/advice/training/shortcourses/bailiffs.htm
+http://www.manchester.gov.uk/benefits/claim/older.htm
+http://www.manchester.gov.uk/bestvalue/equality/race/scheme/background.htm
+http://www.manchester.gov.uk/education/exclusions/section04.htm
+http://www.manchester.gov.uk/education/schools/pupildata/
+http://www.manchester.gov.uk/environment/recycling/banks.htm
+http://www.manchester.gov.uk/localdemocracy/committees/wythenshawe/2003/2703.htm
+http://www.manchester.gov.uk/localdemocracy/constitution/finance/guidance/cash.htm
+http://www.manchester2002-uk.com/celebs/military3.html
+http://www.manchesterlabour.org.uk/manifesto.html
+http://www.manchesteronline.co.uk/entertainment/music/albumreviews/s/144/144355_the_eric_watsonchristof_lauer_quartet__road_movies_act_.html
+http://www.manchesteronline.co.uk/entertainment/music/audioandvideo/s/117/117031_watch_the_datsuns_blacken_my_thumb_video.html
+http://www.manchesteronline.co.uk/entertainment/music/audioandvideo/s/137/137331_watch_the_streets_could_well_be_in_video.html
+http://www.manchesteronline.co.uk/entertainment/music/audioandvideo/s/86/86039_watch_d12s_my_band_video.html
+http://www.manchesteronline.co.uk/entertainment/music/popandurban/s/132/132327_streets_singer_in_small_scale_show.html
+http://www.manchesteronline.co.uk/homes/advice/buyingandselling/s/48/48714_expert_predictions_for_2003.html
+http://www.manchesteronline.co.uk/homes/latest/readershomes/s/147/147960_selfbuild_deco_delight.html
+http://www.manchesteronline.co.uk/homes/latest/shopping/s/24/24685_home_on_the_range_.html
+http://www.manchesteronline.co.uk/news/s/125/125550_mps_quizzed_on_metrolink_snub.html
+http://www.manchesteronline.co.uk/news/s/143/143837_mps_attack_cancer_treatment_by_postcode_lottery_.html
+http://www.manchesteronline.co.uk/news/s/161/161708_mias_crucial_heart_op_put_back.html
+http://www.manchesteronline.co.uk/news/s/161/161907_thousands_must_pay_back_benefits__.html
+http://www.manchesteronline.co.uk/news/s/25/25765_gilchrist_sold_us_out_says_union_boss.html
+http://www.manchesteronline.co.uk/news/s/46/46910_attack_on_christmas_day_traders.html
+http://www.manchesteronline.co.uk/news/s/56/56769_race_riot_fears_of_teachers.html
+http://www.manchesteronline.co.uk/news/s/71/71331_fergie_rejected_millions_for_super_stallion.html
+http://www.manchesteronline.co.uk/news/s/75/75343_defeat_over_tree_house__.html
+http://www.manchesteronline.co.uk/news/s/77/77755_police_ask_labour_protesters_for_tipoff.html
+http://www.manchesteronline.co.uk/news/s/79/79351_tainted_blood_cash_row.html
+http://www.manchesteronline.co.uk/personalfinance/s/162/162008_childrens_account_to_makes_parents_smile.html
+http://www.manchesteronline.co.uk/sport/football/manchestercity/fanprofiles.html
+http://www.manchesteronline.co.uk/sport/football/manchesterunited/s/141/141794_ferguson_admits_goal_should_have_stood.html
+http://www.manchesteronline.co.uk/sport/football/manchesterunited/s/162/162188_dont_price_out_the_true_fans.html
+http://www.mandarindesign.com/2004_08_01_archive.html
+http://www.mandarindesign.com/2005_05_01_archive.html
+http://www.mandate.ie/inuvgata.htm
+http://www.mandiberg.com/time/
+http://www.mandtbank.com/employment/benefits.cfm
+http://www.mandy.com/1/film2simple.cfm?p=39
+http://www.manepoints.com/articles/0404_agw_ride.shtml
+http://www.manepoints.com/articles/0404_mp_ride.shtml
+http://www.manepoints.com/articles/articles97/0297basic.shtml
+http://www.manfredlehmann.com/sieg414.html
+http://www.manfredmann.co.uk/whats_new/press_cuttings.html
+http://www.manfrommars.com/hippo.html
+http://www.mangaacademy.com/chapter.php?ch=22
+http://www.mangar.co.uk/mangar_news.html
+http://www.mangoproducts.net/testimonial.htm
+http://www.manh.com/news/news_releases_20050117_marykay.html
+http://www.manhattan-institute.org/hazlett/rahazlett40.htm
+http://www.manhattan-institute.org/html/_stlouisd-dude_wheres.htm
+http://www.manhattan-institute.org/html/cjm_35.htm
+http://www.manhattan-institute.org/html/clp_11-18-02.htm
+http://www.manhattan-institute.org/html/cr_23.htm
+http://www.manhattan-institute.org/html/cr_6.htm
+http://www.manhattantransfer.blogspot.com/
+http://www.manifest-tech.com/media_dvd/dvd_play.htm
+http://www.manifestingvibration.com/manifesting-vibration.html
+http://www.manisses.com/2online/PUAlert/ARCHIVES/2002/PA10-10.html
+http://www.manitobasoccer.ca/playerdev/index.php
+http://www.mankatofreepress.com/archives/2002/020507/story1.html
+http://www.manleylabs.com/techpage/trouble.html
+http://www.manning.demon.co.uk/
+http://www.manningclark.org/papers/clark-on-waten.html
+http://www.manningclark.org/papers/science_part_1.htm
+http://www.manoa.hawaii.edu/students/academic_grievance/AG_committee.html
+http://www.manordrug.com/
+http://www.manorhouses.com/manors/
+http://www.manovich.net/digitalsalon.htm
+http://www.mansfield.ox.ac.uk/apply/interview.htm
+http://www.mansfield.ox.ac.uk/study/subjects/ministerial.htm
+http://www.mansgland.com/
+http://www.mansooramarnacollection.com/scandal/chapter5.html
+http://www.mantex.co.uk/samples/plan.htm
+http://www.manticeye.com/article.php?id=95_0_2_0_C
+http://www.manufacturedhousing.org/modern_homes/archive/V2N3/V2N3_FEAT_be_a_star.html
+http://www.manufacturing.net/ctl/article/CA515958
+http://www.manufacturing.net/ctl/article/CA515958?spacedesc=featuredNews
+http://www.manufacturing.net/ind/blog/530000053/post/540000654.html
+http://www.manufacturing.net/lm/article/CA451720.html
+http://www.manufacturing.net/scm/article/CA318372.html?nid=2184&rid=1782958173
+http://www.manufacturingcenter.com/tooling/archives/0898/898ntro.asp
+http://www.manufacturingtalk.com/indexes/categorybrowseae.html
+http://www.manufacturingtalk.com/news/lkl/lkl121.html
+http://www.manukau.ac.nz/study/ua@m/sec4.asp
+http://www.manulife.ca/canada/Investments.nsf/Public/mid_caps
+http://www.manutd.com/footballnow/matchreport.sps?reportid=6234&iEventID=16318&compid=
+http://www.manutdsoccerschools.com/latest_news/01.htm
+http://www.manutdsoccerschools.com/latest_news/04.htm
+http://www.manutdsoccerschools.com/privacy_policy.htm
+http://www.manythings.org/voa/02/020722ta_t.htm
+http://www.manythings.org/voa/03/030604ex_t.htm
+http://www.manythings.org/voa/03/030907pa_t.htm
+http://www.manythings.org/voa/04/040715mn_t.htm
+http://www.maori.org.nz/papa_panui/link.asp?TOPIC_ID=175&view=lasttopic
+http://www.map21ltd.com/COSTC11/wkgr1A_2.htm
+http://www.mapability.com/ei8ic/grids/help/project.html
+http://www.mapcruzin.com/morebooks.htm
+http://www.mapcs.org/
+http://www.mapendoz.com/index.php
+http://www.mapl.com.au/A2.htm
+http://www.mapleheightsohio.com/communityprofile/communityprofile.html
+http://www.mapleleaf.com/ForwardStatement.aspx
+http://www.mapleleafs.com/story.ml?title=News&ctype=News&n=4757&e=AdminGroup
+http://www.mapmatrix.com/tmhtm/mapcat.html
+http://www.mapping-your-future.org/features/mentor.htm
+http://www.maps.org/media/spi5.9.02.html
+http://www.maps.org/news-letters/v09n4/09431sue.html
+http://www.maps.org/news-letters/v11n2/11210moj.html
+http://www.maps.org/news-letters/v13n1/13104mit.html
+http://www.mapsadopt.org/doctor.html
+http://www.mapsport.co.nz/mtbo/organiser.html
+http://www.mapw.org.au/missiledefence/MD%20article%20March04.html
+http://www.mar-eco.no/sci/modules.php?name=News&new_topic=41
+http://www.marathonguide.com/training/articles/MandBFuelOnFat.cfm
+http://www.marathonstore.com/20kpro-over.html
+http://www.maravot.com/frame197618.html
+http://www.marchofdimes.com/pnhec/159_516.asp
+http://www.marchofdimes.com/pnhec/188_1080.asp
+http://www.marchofdimes.com/professionals/14332_1150.asp
+http://www.marchofdimes.com/professionals/681_1150.asp
+http://www.marchofdimes.com/professionals/681_1170.asp
+http://www.marchofdimes.com/professionals/681_1228.asp
+http://www.marchofdimes.com/professionals/681_4546.asp
+http://www.marcmoini.com/f3_en.html
+http://www.marcomblog.com/?p=107
+http://www.marconi.com/Home/about_us/Our%20History/Acquired%20and%20Disposed%20Businesses
+http://www.marconi.com/Home/about_us/Our%20History/Acquired%20and%20Disposed%20Businesses;internal&action=print.action
+http://www.marcopolo-education.org/MarcoGrams/Feb2004.html
+http://www.marcorsyscom.usmc.mil/sites/mcub/PAGES/Uniform%20Regs%20Chapters/Chapter%2010%5CChapter%2010.htm
+http://www.marcusletter.com/writead.htm
+http://www.marcustheatres.com/view_theatre.cfm?tid=00407
+http://www.mardigrasday.com/
+http://www.mardigrasneworleans.com/mardi1.html
+http://www.mardiros.net/design-guidelines.html
+http://www.mareforum.com/ship_finance_information.htm
+http://www.marfan.org/nmf/GetSubContentRequestHandler.do?sub_menu_item_content_id=43&menu_item_id=7
+http://www.margaretcho.com/articles/individual_articles/los_angeles_times_march2001_article.htm
+http://www.margaretthatcher.net/studies/niproblem.php
+http://www.margaretwheatley.com/articles/lifetoschools.html
+http://www.margaretwheatley.com/articles/speakingoursuffering.html
+http://www.marginalrevolution.com/marginalrevolution/2003/09/in_memoriam.html
+http://www.marginalrevolution.com/marginalrevolution/2005/02/02/
+http://www.marginalrevolution.com/marginalrevolution/2005/05/why_dont_people.html
+http://www.marginalsoftware.com/HowtoScan/DiscussionsTone/scanning_color_negative_film.htm
+http://www.marginrelease.net/2003_07_06_talkingoutofschoolarchive.html
+http://www.margolisbrown.org/docs/tarticles.htm
+http://www.margrabe.com/CreditRisk.html
+http://www.margrabe.com/DrRisk.html
+http://www.margrabe.com/ModelRisk.html
+http://www.mariancoll.edu/Academics/Graduation/Spring%20Commencement.htm
+http://www.marianland.com/aut_Product12365.html
+http://www.marianland.com/aut_Product18004.html
+http://www.marianland.com/aut_Product64804.html
+http://www.marianland.com/aut_ProductBX740.html
+http://www.mariannedyson.com/spaceactivities.html
+http://www.mariannedyson.com/spacestationscienceinfo.html
+http://www.mariannedyson.com/writespace.htm
+http://www.maricopalivesteamers.com/lbn.html
+http://www.marietta.edu/~delemeeg/expernom/Fall2001/hill.html
+http://www.marietta.edu/~ema/150hour.html
+http://www.marijuana.com/420/archive/index.php/t-29047.html
+http://www.marijuana.org/AuburnJourn6-3-99.html
+http://www.marijuana.org/UtahAppealPetitionWEB.htm
+http://www.marijuana.org/agreement.html
+http://www.marijuanafacts.org/
+http://www.marijuananews.com/news.php3?sid=314
+http://www.marilynglenville.com/dieting.htm
+http://www.marilynglenville.com/general/infections.htm
+http://www.marine-medic.com.au/pages/glossary.html
+http://www.marinearts.com/rwscrimshaw.htm
+http://www.marinelog.com/DOCS/NEWSMMIIa/MMIIJun28.html
+http://www.marinemammal.org/research/nutstres.php
+http://www.marineman.ws/article.php?sid=72
+http://www.marineparents.com/usmc/donations.asp
+http://www.marineparents.com/usmc/finance.asp
+http://www.marinerswelfare.com.au/Newsletters/newsletterV2N2.htm
+http://www.marinews.com/fishing/fishing/Fishing%20Articles/fa_special.htm
+http://www.marinunited.org/marinunited/muDefault.aspx?tabindex=0&tabid=1
+http://www.marion.k12.fl.us/dept/cai/mets/info.htm
+http://www.marionstreetpress.com/PenSample4.html
+http://www.marissalingen.com/021702.html
+http://www.maritimeheritage.org/newtale/bloomers.html
+http://www.marjon.ac.uk/courses/course_info/pgce_secondary.asp
+http://www.mark-weeks.com/chess/78kk$$.htm
+http://www.markamerika.com/bio.html
+http://www.markarkleiman.com/archives/000355.html
+http://www.markarkleiman.com/archives/john_lott_/2003/05/lott_donohue_and_levitt.php
+http://www.markcarey.com/cgi-bin/mt/mt-view.cgi/18/entry/25656/discussion_page?start=101&show=20
+http://www.markcarey.com/me/discuss-open-text-chief-puts-out-the-welcome-mat.html
+http://www.markcarey.com/me/open-text-chief-puts-out-the-welcome-mat.html
+http://www.markcarey.com/shopping/p/B00000IQBW
+http://www.markcarey.com/shopping/p/B0000YEES0
+http://www.markcarey.com/shopping/p/B0002XVQSU
+http://www.markcarey.com/web-presence-strategies.html
+http://www.markdanner.com/newyorker/120693_The_Massacre.htm
+http://www.market-research-report.com/datamonitor/BFFS0314.htm
+http://www.marketharboroughonline.co.uk/pp/event/results.asp?Offset=40&CategoryID=104
+http://www.marketing-intelligence.co.uk/services/training.htm
+http://www.marketing-magic.biz/workshops/website-selling/trigger-a-successful-sale.htm
+http://www.marketing-make-money.com/
+http://www.marketing-seek.com/content/article691.php
+http://www.marketingfind.com/articles/does_size_matter_the_long_versus_short_copy_debate_continues.html
+http://www.marketingforsuccess.com/
+http://www.marketingforsuccess.com/increase-websales.html
+http://www.marketinggolf.com/advertising.html
+http://www.marketingpilot.com/marketingpilot_resources.shtml
+http://www.marketingpilot.com/solutions/integration.shtml
+http://www.marketingprofs.com/2/askless_getmore.asp
+http://www.marketingprofs.com/4/davison1.asp
+http://www.marketingprofs.com/ea/qst_question.asp?qstID=1584
+http://www.marketingprofs.com/ea/qst_question.asp?qstID=2931
+http://www.marketingprofs.com/ea/qst_question.asp?qstID=2955
+http://www.marketingprofs.com/ea/qst_question.asp?qstID=6892
+http://www.marketingprofs.com/ea/qst_question.asp?qstID=7722
+http://www.marketingprofs.com/ea/qst_question.asp?qstID=836
+http://www.marketingprofs.com/webnews/4/news3-30-04.asp
+http://www.marketingsource.com/articles/view/1413
+http://www.marketingsuccessdaily.com/
+http://www.marketingtool.com/channel/flash/b.459.g.4981.html
+http://www.marketingtool.com/channel/flash/b.459.g.7287.html
+http://www.marketingtool.com/channel/webfirm/b.435.g.4981.html
+http://www.marketingtool.com/channel/webfirm/b.435.g.7287.html
+http://www.marketingvox.com/archives/2003/06/24/amazoncom_tweaks_commission_structure/
+http://www.marketingvox.com/archives/2003/10/10/valueclick_buys_commission_junction/
+http://www.marketingvox.com/archives/categories/political_parties_organizations/
+http://www.marketingvox.com/archives/categories/sex_sells/
+http://www.marketingweb.co.za/marketing/398087.htm
+http://www.marketingwonk.com/archives/categories/direct_marketing/
+http://www.marketlaunchers.com/december2001.html
+http://www.marketmarks.com/php/help.php
+http://www.marketnewzealand.com/MNZ/Browse/4/Textile-clothing-leather-footwear.aspx?promo=5
+http://www.marketresearch.com/product/display.asp?productid=1111793&g=1
+http://www.marketresearch.com/product/display.asp?productid=1111796&g=1
+http://www.marketresearch.com/product/display.asp?productid=1111817&g=1
+http://www.marketresearch.com/product/display.asp?productid=1111820&g=1
+http://www.marketresearch.com/product/display.asp?productid=1111826&g=1
+http://www.marketresearch.com/product/display.asp?productid=1111832&g=1
+http://www.marketresearch.com/product/display.asp?productid=1111835&g=1
+http://www.marketresearch.com/product/display.asp?productid=1111841&g=1
+http://www.marketscreen.com/help/AtoZ/default.asp?Num=46
+http://www.marketspaceglobal.com/pidllp.asp
+http://www.markettrends.com/fieldtab.htm
+http://www.marketwatch.com/news/story.asp?column=Europe+Markets&siteid=bizjournal
+http://www.markitek.com/articles/marrying2.htm
+http://www.markjuddery.com/html/news.html
+http://www.marklazarowicz.org.uk/parliament/speeches2004/9.9.htm
+http://www.marklitwak.com/articles/film/distribution_deal.html
+http://www.marklitwak.com/film_festivals/festival.php?fm=&id=T
+http://www.markme.com/hoyt/archives/2004_12.cfm
+http://www.markme.com/thiggins/archives/2005_01.cfm
+http://www.markprindle.com/grenadia.htm
+http://www.markriebling.com/archives/00000104.html
+http://www.markshuttleworth.com/blogossfunding.html
+http://www.marlamallett.com/mounting.htm
+http://www.marlaswoffer.com/blog/
+http://www.marlenewinell.com/ltf-ch2.html
+http://www.marlwood.com/OMS/information/policies.htm
+http://www.marmalade-skies.co.uk/complex.htm
+http://www.marmalademedia.com.au/amplitude.htm
+http://www.marmoset.com/60minute/Webnav/ebola.html
+http://www.marquette.edu/polisci/wolfe/appi.htm
+http://www.marquette.org/Voice%20of%20Business/2003/September%202003.htm
+http://www.marratech.com/userman/portal/app_firewalls.html
+http://www.marriagebuilders.com/graphic/mbi5042b_qa.html
+http://www.marriagebuilders.com/graphic/mbi5043_qa.html
+http://www.marriagebuilders.com/graphic/mbi5052_qa.html
+http://www.marriageequality.org/chapter.htm
+http://www.marriageromance.com/stories/10144035484.htm
+http://www.marriageromance.com/stories/10889681668.htm
+http://www.marriagesavers.org/public/a_christian_declaration_on_marri.htm
+http://www.marrow.org/PHYSICIAN/evaluating_adult_patients.html
+http://www.mars.com/Legal_disclaimer.asp
+http://www.marsdenjacob.com.au/Team.htm
+http://www.marsdens.net.au/page/family_law.html
+http://www.marshall-es.marshall.k12.tn.us/BuildYourHome/People/RiversideSchoolPart3.html
+http://www.marshall-stevens.com/appraisers_goal.htm
+http://www.marshall.edu/akanart/akancosmology.html
+http://www.marshall.edu/human-resources/handbook/policies.htm
+http://www.marshall.org/article.php?id=7
+http://www.marshall.org/article.php?id=98
+http://www.marshallfoundation.org/marshall_plan_economic_background_kindleberger.html
+http://www.marssociety.org/
+http://www.marthagrahamdance.org/company/repnotes05.shtml
+http://www.marthascottage.com/beatlesforsale.htm
+http://www.martialartsplanet.com/forums/search/topic/24683-1.html
+http://www.martin.fl.us/GOVT/minutes/94minutes/ceb/dec12.html
+http://www.martinandalex.com/blog/archives/2003/08/reflexions_on_l.html
+http://www.martinandalex.com/blog/archives/2004/10/
+http://www.martinandalex.com/blog/archives/2005/01/ebay_drops_a_bo.html
+http://www.martindalecenter.com/Nutrition_6_Bev.html
+http://www.martinfowler.com/articles/mdaLanguageWorkbench.html
+http://www.martinfowler.com/bliki/SpecificationByExample.html
+http://www.martinfrost.ws/htmlfiles/royal_ancient.html
+http://www.martinshousecomic.co.uk/blogs.html
+http://www.martydee.com/poligov/archives/003288.html
+http://www.martygrant.com/census.htm
+http://www.martynmission.cam.ac.uk/CKaggwa.htm
+http://www.maruhon.com/bizsummary.htm
+http://www.marvel.com/catalog/listing.htm?artist=TIM%20SALE
+http://www.marvel.com/catalog/listing.htm?artist=Tim%20Sale
+http://www.marvel.com/catalog/listing.htm?cover_art=TIM%20SALE
+http://www.marveldirectory.com/individuals/j/jeangrey.htm
+http://www.marveldirectory.com/xoops/modules/newbb/viewtopic.php?topic_id=127&forum=11&post_id=34321
+http://www.marvunapp.com/Appendix/zherednaprec.htm
+http://www.marxidad.com/Poems/TheDesert
+http://www.marxist.com/Africa/nigeria_strike_10_03.html
+http://www.marxist.com/Europe/djindic_murder.html
+http://www.marxist.com/Globalisation/seattle_to_nice.html
+http://www.marxist.com/Latinam/venez_year_after.html
+http://www.marxist.com/appeals/ife_nigeria.html
+http://www.marxist.com/hbt/2-1.html
+http://www.marxist.com/science/chaostheory.html
+http://www.marxist.com/waronterror.asp
+http://www.marxist.com/women/connolly_on_women.html
+http://www.marxist.com/women/equal_pay.html
+http://www.marxist.net/scotland/1998/defence3.htm
+http://www.marxists.org/archive/bax/1898/05/command.htm
+http://www.marxists.org/archive/cliff/works/1967/04/revtrad.htm
+http://www.marxists.org/archive/cliff/works/1988/03/mood.htm
+http://www.marxists.org/archive/cliff/works/1995/02/balance.htm
+http://www.marxists.org/archive/connolly/1897/08/patlabr.htm
+http://www.marxists.org/archive/connolly/1901/10/homrulab.htm
+http://www.marxists.org/archive/connolly/1908/01/india1.htm
+http://www.marxists.org/archive/connolly/1908/07/polact.htm
+http://www.marxists.org/archive/connolly/1910/lih/chap03.htm
+http://www.marxists.org/archive/connolly/1910/lih/chap08.htm
+http://www.marxists.org/archive/connolly/1910/lih/chap16.htm
+http://www.marxists.org/archive/connolly/1910/lnr/06.htm
+http://www.marxists.org/archive/connolly/1910/lnr/foreword.htm
+http://www.marxists.org/archive/connolly/1911/connwalk/5-syminter.htm
+http://www.marxists.org/archive/connolly/1913/10/workcase.htm
+http://www.marxists.org/archive/connolly/1914/04/solidrty.htm
+http://www.marxists.org/archive/connolly/1914/08/contrev.htm
+http://www.marxists.org/archive/connolly/1915/10/budget.htm
+http://www.marxists.org/archive/connolly/1915/12/trstldrs.htm
+http://www.marxists.org/archive/eleanor-marx/1884/01/record-international.htm
+http://www.marxists.org/archive/foot-paul/1982/3letters/letter2.htm
+http://www.marxists.org/archive/glass/1946/07/x01.htm
+http://www.marxists.org/archive/hallas/works/1993/10/thompson.htm
+http://www.marxists.org/archive/kautsky/1903/economic/ch11.htm
+http://www.marxists.org/archive/kidron/works/1967/xx/permarms.htm
+http://www.marxists.org/archive/kollonta/works/1921/evolution.htm
+http://www.marxists.org/archive/lafargue/1883/lazy/ch03.htm
+http://www.marxists.org/archive/lenin/works/1898/dec/market.htm
+http://www.marxists.org/archive/lenin/works/1899/dcr8vii/vii8x.htm
+http://www.marxists.org/archive/lenin/works/1906/nov/23f.htm
+http://www.marxists.org/archive/lenin/works/1907/feb/11.htm
+http://www.marxists.org/archive/lenin/works/1916/imp-hsc/ch02.htm
+http://www.marxists.org/archive/lenin/works/1916/ni-beta/jeidels.htm
+http://www.marxists.org/archive/liebknecht-k/works/1916/future-belongs-people/ch12.htm
+http://www.marxists.org/archive/liebknecht-k/works/1916/future-belongs-people/ch24.htm
+http://www.marxists.org/archive/luxemburg/1916/04/eitheror.htm
+http://www.marxists.org/archive/marx/works/1848/communist-manifesto/ch01.htm
+http://www.marxists.org/archive/marx/works/1867-c1/ch09.htm
+http://www.marxists.org/archive/marx/works/1885-c2/ch05.htm
+http://www.marxists.org/archive/marx/works/subject/hist-mat/anti-durhing/p2.htm
+http://www.marxists.org/archive/mattick-paul/1959/war-economy.htm
+http://www.marxists.org/archive/morris/works/1884/justice/05rad.htm
+http://www.marxists.org/archive/morrow-felix/1942/warproduction.htm
+http://www.marxists.org/archive/reed/works/1918/origins.htm
+http://www.marxists.org/archive/reed/works/1918/soviets.htm
+http://www.marxists.org/archive/reed/works/1918/state.htm
+http://www.marxists.org/archive/sedgwick/1971/xx/fifties.htm
+http://www.marxists.org/archive/shachtma/1945/10/unity.htm
+http://www.marxists.org/archive/thalheimer/works/missed/appendix.htm
+http://www.marxists.org/archive/trotsky/works/1919-mil/ch08.htm
+http://www.marxists.org/archive/trotsky/works/1921-mil/ch01.htm
+http://www.marxists.org/archive/trotsky/works/1922-mil/ch19.htm
+http://www.marxists.org/archive/trotsky/works/1922-mil/ch20.htm
+http://www.marxists.org/archive/trotsky/works/1938/1938-kronstadt.htm
+http://www.marxists.org/archive/trotsky/works/1940/1940-american.htm
+http://www.marxists.org/archive/vygotsky/works/1933/play.htm
+http://www.marxists.org/glossary/terms/c/r.htm
+http://www.marxists.org/glossary/terms/d/i.htm
+http://www.marxists.org/glossary/terms/g/o.htm
+http://www.marxists.org/glossary/terms/l/a.htm
+http://www.marxists.org/glossary/terms/l/e.htm
+http://www.marxists.org/glossary/terms/m/e.htm
+http://www.marxists.org/glossary/terms/m/i.htm
+http://www.marxists.org/glossary/terms/p/l.htm
+http://www.marxists.org/glossary/terms/s/e.htm
+http://www.marxists.org/history/etol/document/china/glass01.htm
+http://www.marxists.org/history/etol/writers/burnham/1935/07/bands.htm
+http://www.marxists.org/history/international/comintern/sections/canada/buck-tim/30years/ch13.htm
+http://www.marxists.org/history/international/comintern/sections/sacp/1991/socialism.htm
+http://www.marxists.org/history/international/iwma/documents/1865/london-soiree-report.htm
+http://www.marxists.org/history/ussr/government/law/1936/moscow-trials/22/contemptible-terrorists.htm
+http://www.marxists.org/history/ussr/government/law/1936/moscow-trials/22/prosecution.htm
+http://www.marxists.org/history/ussr/government/red-army/1918/raskolnikov/ilyin/ch02.htm
+http://www.marxists.org/reference/archive/debord/society.htm
+http://www.marxists.org/reference/archive/hegel/works/hl/hlbeing.htm
+http://www.marxists.org/reference/archive/hegel/works/ph/phintro.htm
+http://www.marxists.org/reference/archive/malcolm-x/
+http://www.marxists.org/reference/archive/mao/selected-works/volume-9/mswv9_22.htm
+http://www.marxists.org/reference/archive/smith-adam/works/wealth-of-nations/book01/ch07.htm
+http://www.marxists.org/reference/archive/strong-anna-louise/1925/children_revolution/ch05.htm
+http://www.marxists.org/reference/subject/economics/keynes/general-theory/ch14a.htm
+http://www.marxists.org/reference/subject/economics/keynes/general-theory/ch20.htm
+http://www.marxists.org/reference/subject/economics/keynes/general-theory/ch21.htm
+http://www.marxists.org/reference/subject/economics/keynes/general-theory/ch23.htm
+http://www.marxists.org/reference/subject/philosophy/works/at/godel.htm
+http://www.marxists.org/reference/subject/philosophy/works/en/bacon.htm
+http://www.marxists.org/reference/subject/philosophy/works/en/hume.htm
+http://www.marxists.org/reference/subject/philosophy/works/en/spencer.htm
+http://www.marxists.org/reference/subject/philosophy/works/fr/derrida2.htm
+http://www.marxists.org/reference/subject/philosophy/works/fr/merleaup.htm
+http://www.marxists.org/reference/subject/philosophy/works/ge/habermas.htm
+http://www.marxists.org/reference/subject/philosophy/works/ge/heisenb2.htm
+http://www.marxists.org/reference/subject/philosophy/works/us/fireston.htm
+http://www.marxists.org/subject/art/literature/children/texts/marshak/art.html
+http://www.marxists.org/subject/students/
+http://www.mary-bryant.com/don.htm
+http://www.mary.havering.sch.uk/history_of_the_school.htm
+http://www.marybalogh.com/s-sinful-ex2.html
+http://www.marybird.org/index.cfm?fuseaction=TreatTeam&expandID=2
+http://www.maryjaneclark.com/nobodyknows/prologue1.html
+http://www.maryjanesgarden.com/seedsman.php
+http://www.maryjones.us/essays/rossetti2.html
+http://www.maryknollogc.org/election.htm
+http://www.marylandinfo.com/Professional_Services/
+http://www.marylandmath.org/publications/tax-break.asp
+http://www.marylandpolicy.org/Welf8-99.htm
+http://www.marymcdowell.org/enrichment/enrich_theater.html
+http://www.marynorth.com/about_clia.html
+http://www.marypages.com/PrayerstoMary.htm
+http://www.maryruth.org/chapter06/Mary_Ruth_Chapter_6.htm
+http://www.marys-touch.com/truth/address.htm
+http://www.mascom.co.nz/store.php?cat=Rugby
+http://www.mashmagazine.com/00april/aprilliterary.html
+http://www.maskit.net/cybrpnk.cgi/cybrpnk/free_trade/
+http://www.masmforum.com/simple/index.php?topic=1912.new
+http://www.masmn.org/documents/Books/Abul_Ala_Mawdudi/Towards_Understanding_Islam/007.htm
+http://www.masnet.org/islamscience.asp?id=165
+http://www.masoncontractors.org/aboutmasonry/greenbuildingsystem/index.php
+http://www.masonicinfo.com/shaw.htm
+http://www.mass.gov/gic/safety.htm
+http://www.mass.gov/legis/laws/mgl/111-70e.htm
+http://www.mass.gov/legis/reports/C70workinggroup.htm
+http://www.mass.gov/mtrb/refdocs/1099retq.htm
+http://www.massagem4m.com/masseur.cfm?id=11416&m=readReviews
+http://www.massagem4m.com/masseur.cfm?id=12080
+http://www.massbike.org/people/melcher/hostages.htm
+http://www.massey.ac.nz/~trauma/books/flin.htm
+http://www.massey.ac.nz/~trauma/issues/1998-3/gow1.htm
+http://www.massey.ac.nz/~trauma/issues/2001-1/ronan.htm
+http://www.massey.ac.nz/~trauma/issues/2004-2/lahad.htm
+http://www.massgeneral.org/allpsych/Bulimia/BulimiaNervosa_three.htm
+http://www.massgeneral.org/privacynotice.htm
+http://www.massgeneral.org/pubaffairs/Issues/031403whats.htm
+http://www.massgeneral.org/pubaffairs/Issues/080803task.htm
+http://www.massgeneral.org/pubaffairs/Issues/082401whats.htm
+http://www.massgeneral.org/pubaffairs/releases/press2001.htm
+http://www.massillonohio.com/housing/tenant_landlord.htm
+http://www.masslegalhelp.org/page/94017
+http://www.masslegalservices.org/page/94017
+http://www.massmutual.com/mmfg/prepare/events/job.html
+http://www.massnews.com/2004_editions/11_nov/112904_universal_healthcare_hurts_everyone.htm
+http://www.massnurses.org/News/2004/05/amendment_text.htm
+http://www.massnurses.org/leg/legadnabills/safestaff.htm
+http://www.masspsy.com/residential.html
+http://www.massretirees.com/ss/sshot0304.html
+http://www.masta.org/travel-health/disease-risks.asp?group=2&dis_id=54
+http://www.mastamariner.com/border_collie_colours_page.html
+http://www.mastercollector.com/articles/models/images/scottsmodelcar.shtm
+http://www.mastercomposter.com/purpose/goodsoil.html
+http://www.mastergardenproducts.com/gardenerscorner/indoor_gardening.htm
+http://www.mastermason.com/hope-lodge-number-four/default.htm
+http://www.mastermason.com/jjcrowder/scottish/scottish.html
+http://www.masternewmedia.org/2003/02/07/better_safe_than_sorry_the_dangers_of_feeling_immune_on_a_mac.htm
+http://www.masternewmedia.org/2003/03/31/how_to_create_a_visually_oriented_realtime_chat_and_collaboration_environment.htm
+http://www.masternewmedia.org/2003/04/12/sars_patient_zero_chinese_doctors_research_causes_epidemic.htm
+http://www.masternewmedia.org/2003/09/29/first_fame_then_fortune_an_alternative_look_at_micropayments_potential_for_social_and_economic_change.htm
+http://www.masternewmedia.org/2004/04/04/nine_rules_for_good_technology.htm
+http://www.masternewmedia.org/news/2004/07/09/easily_publish_your_voice_and.htm
+http://www.masternewmedia.org/news/2004/10/14/design_with_emotion_volvo_shows.htm
+http://www.masternewmedia.org/news/2005/04/01/where_to_find_great_free.htm
+http://www.masterpeez.com/University/City/14347.html
+http://www.mastersgames.com/cat/outdoor/croquet-68-player.htm
+http://www.mastersinthemaking.com/
+http://www.mastertexts.com/index.php?PageName=ChapterDetails&TitleID=1726&VolumeNo=&ChapterNo=3
+http://www.masterviews.com/2005/05/20/how_to_do_away_with.htm
+http://www.mastervisions.com/mirrors/dhc_m-western.htm
+http://www.mastgeneralstore.com/news/20010418.php3
+http://www.mastgeneralstore.com/news/20010514.php3
+http://www.mastgeneralstore.com/news/20031022.php3
+http://www.masud.co.uk/ISLAM/nuh/qawamuna.htm
+http://www.matadorrecords.com/arsonists/news.html
+http://www.match.com/magazine/article2.aspx?articleid=3940
+http://www.matchingroommates.com/archives/04_1998.html
+http://www.matchschool.org/Press/press.php?link=articles/herald_01-03-05_goldstein.htm
+http://www.matchtech.com/candidates/advice/working-in-uk/
+http://www.matchtech.com/engineering/power-nuclear/
+http://www.materialreligion.org/documents/apr99doc.html
+http://www.materials.ac.uk/events/regionalox.asp
+http://www.materiamagica.com/start/rules/index.php
+http://www.math.columbia.edu/~woit/blog/
+http://www.math.columbia.edu/~woit/blog/archives/000031.html
+http://www.math.columbia.edu/~woit/blog/archives/000059.html
+http://www.math.com/students/kaplan/sat2.html
+http://www.math.fau.edu/locke/GRAPHTHE.HTM
+http://www.math.grin.edu/courses/Scheme/spring-1998/characters.html
+http://www.math.grin.edu/~stone/courses/fundamentals/IEEE-reals.html
+http://www.math.grin.edu/~stone/courses/scheme/labs/beginning-Scheme.xhtml
+http://www.math.grin.edu/~stone/courses/scheme/readings/characters.xhtml
+http://www.math.ias.edu/~boaz/methods2003/
+http://www.math.ksu.edu/conf2001/
+http://www.math.kth.se/4ecm/program/4ecm.programme.html
+http://www.math.mcgill.ca/darmon/
+http://www.math.mcgill.ca/~darmon/
+http://www.math.montana.edu/frankw/ccp/multiworld/partdes/heatbuilding/body.htm
+http://www.math.niu.edu/~rusin/known-math/index/11-XX.html
+http://www.math.niu.edu/~rusin/known-math/index/beginners.html
+http://www.math.northwestern.edu/menu/menu.html
+http://www.math.nus.edu.sg/aslaksen/
+http://www.math.odu.edu/~adam/min/min5.html
+http://www.math.ohio-state.edu/conferences/matroid-2002/
+http://www.math.tau.ac.il/~safra/ACT/
+http://www.math.toronto.edu/mathnet/carcompet/startup.html
+http://www.math.toronto.edu/mathnet/plain/carcompet/startup.html
+http://www.math.uncc.edu/~hbreiter/hbrvita.html
+http://www.math.washington.edu/~smith/Seminar/F04abs.html
+http://www.math.yorku.ca/SCS/StatResource.html
+http://www.math.yorku.ca/sfp/sfp.ex.html
+http://www.mathcaddy.com/
+http://www.mathcats.com/contest/apr2004winners.html
+http://www.mathcats.com/grownupcats/ideabankfractions.html
+http://www.mathcats.com/grownupcats/ideabankplacevalue.html
+http://www.mathdittos2.com/columns/bh/bh981122.html
+http://www.mathematicallycorrect.com/impkm.htm
+http://www.mathematik.uni-kl.de/mathint/programme/living_in_D.htm
+http://www.mathleague.com/help/data/data.htm
+http://www.mathnews.uwaterloo.ca/Issues/mn7807/social.php
+http://www.mathpages.com/home/kmath242/kmath242.htm
+http://www.mathpages.com/rr/s5-04/5-04.htm
+http://www.mathpages.com/rr/s5-07/5-07.htm
+http://www.mathpuzzle.com/older.htm
+http://www.maths.ed.ac.uk/guides/Syll/mf0.html
+http://www.maths.ed.ac.uk/~derek/Syll/af0.html
+http://www.maths.ed.ac.uk/~derek/Syll/mc4.html
+http://www.maths.ed.ac.uk/~derek/Syll/mf0.html
+http://www.maths.ex.ac.uk/~mwatkins/zeta/surprising.htm
+http://www.maths.leeds.ac.uk/Applied/news.dir/issue25.dir/jour/jour.html
+http://www.maths.nottingham.ac.uk/admissions/FAQs.html
+http://www.maths.tcd.ie/~mogwai/bsides.html
+http://www.maths.unsw.edu.au/students/future/fycourseintro.html
+http://www.mathsci.appstate.edu/~sjg/class/1010/highlightsf01.html
+http://www.mathsci.appstate.edu/~sjg/class/1010/highlightss02.html
+http://www.mathworks.com/access/helpdesk/help/techdoc/creating_guis/ch_program23.html
+http://www.mathworks.com/access/helpdesk/help/toolbox/optim/fgoalattain.html
+http://www.mathworks.com/company/newsletters/auto_digest/nov_03/mod_cal.html
+http://www.matisse.net/files/glossary.html
+http://www.matr.net/article-3338.html
+http://www.matrikonopc.com/products/opc-drivers/Details.asp?driver=188
+http://www.matrix.com/matrix_buzz/
+http://www.matrixenergetics.com/radio-transcript_01.htm
+http://www.matrixracing.com/
+http://www.matrixscience.com/mascot_support.html
+http://www.matt-thornton.net/blog/
+http://www.mattandjess.net/
+http://www.mattelscrabble.com/fr/adults/privacy.html
+http://www.mattelscrabble.com/fr/kids/privacy.html
+http://www.mattfurey.com/florida_hurricanes_102204.html
+http://www.matthewarnoldstern.com/speeches.html
+http://www.matthewbooks.com/samplevoices.htm
+http://www.matthewflickinger.com/blog/archives/2004/08/default.asp
+http://www.matthewgood.org/mblog/index.php
+http://www.matthewholt.net/2004/11/quality-dsm-convincing-anyone-maybe.html
+http://www.matthewreilly.com/high/faq2.htm
+http://www.matthewyglesias.com/archives/week_2004_06_20.html
+http://www.mattnathanson.com/reps/index.shtml
+http://www.mattneuman.com/chaptr23.htm
+http://www.mattschulze.info/fanfic_lostlove.html
+http://www.matttaylor.com/public/bay_area_studio.html
+http://www.matttaylor.com/public/mt_hand_n_book_p_9_11_no_7.htm
+http://www.matttaylor.com/public/mt_hand_notebook_index.htm
+http://www.matttaylor.com/public/valueweb.htm
+http://www.maudnewton.com/blog/
+http://www.maui-tomorrow.org/issuespages/landuse/
+http://www.maui-tomorrow.org/issuespages/landuse/showdown.html
+http://www.maui-tomorrow.org/issuespages/makena/conditions2.html
+http://www.maui-tomorrow.org/issuespages/water/diversion_ruling.html
+http://www.mauigateway.com/~donjusko/human.htm
+http://www.mauritania-today.com/economy/investment-code.htm
+http://www.mav.vic.edu.au/PSTC/refer/history.htm
+http://www.mavericklabel.com/imagemax.html?assoc=1
+http://www.mavicanet.com/directory/gle/11190.html
+http://www.mawn.net/historyeurope.htm
+http://www.mawwfire.gov.uk/doc_eng/report_welsh_language.htm
+http://www.max.co.za/Man/General/748-771,13591.asp
+http://www.max.co.za/Woman/General/711-733-1498,13591.asp
+http://www.max.co.za/experts/CyberShrink/979-984-1938,29146.asp
+http://www.maxboxing.com/Kim/Kim012605.asp
+http://www.maxdesign.com.au/presentation/
+http://www.maxedoutgen.com/archives/cat_students_and_debt.html
+http://www.maxim-ic.com.cn/appnotes.cfm/appnote_number/1881
+http://www.maxim-ic.com/appnotes.cfm/appnote_number/1916
+http://www.maxim-ic.com/tarticle/view_article.cfm/article_id/1184/
+http://www.maximumcrowe.com/beautifulmind/set8.html
+http://www.maximummusician.com/newsletter.htm
+http://www.maxkrimmel.com/Alabaster/HowToPart1/HowTo1.html
+http://www.maxlyrics.com/songView.php/18815
+http://www.maxmoose.com.au/review/rfrwildb.htm
+http://www.maxon.net/pages/products/c4d/91features_e.html
+http://www.maxpotential.com/a-forum.htm
+http://www.maxsacks.com/articles/psbj23.html
+http://www.maxspeak.org/mt/
+http://www.maxwell.af.mil/msd/newcomer/famsupport/relas.htm
+http://www.maxwell.syr.edu/maxpages/faculty/jbennett/651s04/silly651.html
+http://www.maxwideman.com/pmglossary/PMG_W01.htm
+http://www.may41970.com/Jackson%20State/jackson_state_may_1970.htm
+http://www.mayasites.com/7classic.html
+http://www.maybach.ru/en/official/maybach32.htm
+http://www.maybelogic.org/maybequarterly/01/0122MQColophon.htm
+http://www.maybo.com/cgi-bin/news_view_article.cgi?news_id=20040129oneint017
+http://www.mayflowerfamilies.com/mayflower/mayflower_passenger_list.htm
+http://www.mayfloweroceanlines.com/maritime_her.htm
+http://www.mayhem.net/Crime/serial2.html
+http://www.mayitpleasethecourt.net/journal.asp?blogid=669
+http://www.maym.org/friends_women/quaker_bonnet.htm
+http://www.maynarddixon.com/aboutdixon.htm
+http://www.maynardije.org/columns/dickprince/041215_prince/
+http://www.maynardije.org/news/features/011006_chips/011011_chips4/
+http://www.maynegroup.com/
+http://www.maynegroup.com/149_467.asp
+http://www.maynegroup.com/149_481.asp
+http://www.maynegroup.com/149_536.asp
+http://www.maynoothcollege.ie/courses/bacc_theology_arts.shtml
+http://www.mayoclinic.com/invoke.cfm?id=HB00032
+http://www.mayoclinic.com/invoke.cfm?id=HQ00507
+http://www.mayoclinic.org/becomingpat-jax/financial.html
+http://www.mayoclinic.org/patientstories-sct/brandenlombardi.html
+http://www.mayoclinic.org/patientstories/brandenlombardi.html
+http://www.mayq.com/Best_european_trips/Loire/Loire.htm
+http://www.mayq.com/Best_european_trips/Provence/Provence.htm
+http://www.mayrand.org/meaning-e.htm
+http://www.maysvillekentucky.com/articles/page.asp?articleid=2049
+http://www.mazal.org/Pressac/Pressac0053.htm
+http://www.mazama.net/scheme/pscheme.htm
+http://www.mazars.ie/initial/cms/php/workflow.php?queryType=3&item=news&itemId=113
+http://www.mba.hobsons.com/advice/mbamarketing_gmatandtoefl
+http://www.mbaauthority.com/cc/startup.html
+http://www.mbarchitects.org/web/members-employment3.shtml
+http://www.mbari.org/news/news_releases/2005/sinkers.html
+http://www.mbcomp.com/LitzOnLebanon/4thQtr02
+http://www.mbcpapers.org/cgi-bin/main.plex?form_type=display_auth_instructions
+http://www.mbeddow.net/xml/technotes2.html
+http://www.mbherald.com/41-16/generalmb.html
+http://www.mbinet.org/web/magazine/cooler02_03.html
+http://www.mbinet.org/web/magazine/cooler02_03.html&style=printable
+http://www.mbl.edu/inside/what/news/events/2005_events_friday/events_friday_07_08_05.html
+http://www.mbl.edu/inside/what/services/serv_childcare.html
+http://www.mblink.mbusa.com/Inetapps/PressReleases.nsf/0/50ff8ecb209e80d785256f710074e430?OpenDocument&Click=
+http://www.mbs-brasses.co.uk/pic_lib/May_2005_brass_of_the_month.htm
+http://www.mbta.com/insidethet/art_redline.asp
+http://www.mbta.com/projects_underway/nbfr_faqs.asp
+http://www.mbtrading.com/disc1.asp
+http://www.mbts.edu/
+http://www.mc-mncppc.org/parks/brookside/greenmatters/greenmatters.shtm
+http://www.mc-mncppc.org/parks/index.shtm
+http://www.mc.maricopa.edu/~reffland/anthropology/anthro2003/origins/hominid_journey/newspecies.html
+http://www.mc.uky.edu/transplant/jozefowicz.htm
+http://www.mc.vanderbilt.edu/root/vumc.php?site=RiskMgmt&doc=1781
+http://www.mc3.edu/sa/stact/stact.htm
+http://www.mcanerin.com/canada/prices-example.htm
+http://www.mcard.umich.edu/faq.htm
+http://www.mcare.org/mcaremail/producernews/fall_2004/
+http://www.mcasco.com/glossary.html
+http://www.mcasco.com/p1meas.html
+http://www.mcasco.com/p1wke.html
+http://www.mcauley.acu.edu.au/~yuri/ethics/aborig.html
+http://www.mcaws.gov.bc.ca/womens_services/keeping-safe/
+http://www.mcb.uct.ac.za/tutorial/morbilli.htm
+http://www.mcbi.org/DSC_statement/sign.htm
+http://www.mcbi.org/destructive/Destructive.htm
+http://www.mcbiz.com.au/PharosText2.html
+http://www.mcc.org/peace/info/CO_history.html
+http://www.mcca.com/site/data/corporate/BP/littler.htm
+http://www.mccarthyandstone.co.uk/investor_relations/Envir_Report.asp
+http://www.mcclelland.com/catalog/display.pperl?isbn=0771046332&view=excerpt
+http://www.mccombs.utexas.edu/news/magazine/00s/konana.asp
+http://www.mccombs.utexas.edu/~cbatoday/ford_porsche.html
+http://www.mcconaghy-aus.com/
+http://www.mcconnellfoundation.ca/president.e/interview.html
+http://www.mcconnellinternational.com/ereadiness/EReadinessReport.htm
+http://www.mccormicknicholson.co.uk/bayview-garlieston.htm
+http://www.mccoyconsulting.com/interest.htm
+http://www.mccoymwr.com/Family/cys.htm
+http://www.mccp.co.uk/digest/story-22
+http://www.mccronehealthbeat.com/
+http://www.mce.be/knowledge/138/18
+http://www.mce.be/knowledge/423/47
+http://www.mce.be/knowledge/447/18
+http://www.mce.be/knowledge/72/16
+http://www.mcf.org/mcf/forum/outlook2002.htm
+http://www.mcf.org/mcf/grant/writing.htm
+http://www.mcfn.org/nljuly00.htm
+http://www.mcg.edu/medart/MI-FAQ.html
+http://www.mcg.org.au/default.asp?pg=article&articleid=521
+http://www.mcg.org.au/default.asp?pg=redevelopmentdisplay&articleid=1548
+http://www.mcgeesmusings.net/2003/02/08.html
+http://www.mcgibney.com/self-assessment.htm
+http://www.mcgill.ca/biochemistry/graduates/interests/
+http://www.mcgill.ca/macdonald/research/facilities/
+http://www.mcgill.ca/news/2004/fall/reviews/
+http://www.mcgill.ca/politicalscience/faculty/soroka/
+http://www.mcgill.ca/provost/courseevaluations/questions/
+http://www.mcgill.ca/reporter/34/10/bloom/
+http://www.mcgill.ca/reporter/34/12/hiring/
+http://www.mcgill.ca/reporter/35/07/tutoring/
+http://www.mcgill.ca/studenthealth/information/generalhealth/sleep/
+http://www.mcgillreport.org/whatsthematter.htm
+http://www.mcgm.gov.in/Departments/Stores/Duties.html
+http://www.mcgraw-hill.co.uk/kingscourt/reviewcentre/matchword.html
+http://www.mcgregor.edu/ilps/naw/
+http://www.mcgurr.com/comicsbiz.htm
+http://www.mch.govt.nz/anthem/history.htm
+http://www.mchenryonline.com/westosha/deep.shtml
+http://www.mchoralhealth.org/PediatricOH/mod4_3.htm
+http://www.mchron.net/site/edublog.php
+http://www.mcifa.com/parcel2.cfm
+http://www.mcilwaindentistry.com/services_policies_pedo.htm
+http://www.mckenziestudycenter.org/bible/langgod/LGans6.html
+http://www.mckenziestudycenter.org/education/articles/letter.html
+http://www.mckeough.com/about/testimonials.htm
+http://www.mckinneyisd.net/departments/curriculum/accountability/
+http://www.mckinneytexas.org/safety/fire/education.htm
+http://www.mckinsey.com/aboutus/mckinseynews/pressarchive/uscurrency.asp
+http://www.mckinsey.com/clientservice/bto/careers/careerpath.asp
+http://www.mckinsey.com/ideas/books/valuation/interview.asp
+http://www.mclam.com/msolorzano.html
+http://www.mclaughlin.com/bb/bb.asp?topicid=1464&pagenumber=5
+http://www.mcleanevents.com/General/RecentEvents/
+http://www.mcleanscotland.co.uk/gardens.htm
+http://www.mcleanscotland.co.uk/luxurytour.htm
+http://www.mcluhan.utoronto.ca/tsc_plato_education_teaching_writing.htm
+http://www.mcm.edu/sports/crosscountry/
+http://www.mcmanis.com/chuck/computers/vaxen/
+http://www.mcmanweb.com/forum14.htm
+http://www.mcmanweb.com/philippic.htm
+http://www.mcmanweb.com/soprano.htm
+http://www.mcmaster.ca/pres/UofTConv2005.html
+http://www.mcmaster.ca/pres/negevdinner.htm
+http://www.mcmichael.com/learn-groupvisits2.shtml
+http://www.mcmurrayhatchery.com/
+http://www.mcn.org/1/rrparks/fortross/Curriculum/ftales.htm
+http://www.mcnp.org/steward/resources.htm
+http://www.mcny.org/Collections/paint/Painting/pttcat50.htm
+http://www.mcobject.com/standardedition.shtml
+http://www.mcpmag.com/aboutus/contributors/
+http://www.mcpmag.com/features/article.asp?EditorialsID=2
+http://www.mcpmag.com/newsletter/article.asp?EditorialsID=76
+http://www.mcps.k12.md.us/curriculum/socialstd/MWH/11013_3.html
+http://www.mcps.k12.md.us/curriculum/socialstd/MWH_Guide.html
+http://www.mcrcb-events.co.uk/news.cfm/title/DONINGTON%20PARK%20ROUND%2013%20PREVIEW/flag/2/id/113
+http://www.mcrcb-events.co.uk/news.cfm/title/MONDELLO%20PARK%20ROUND%205%20PREVIEW/flag/2/id/58
+http://www.mcrosolv.demon.co.uk/gallery/
+http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/fibmaths.html
+http://www.mcsasail.org/ICSATeamRaceObserverGuide
+http://www.mcspotlight.org/case/pretrial/factsheet_ref.html
+http://www.mcspotlight.org/case/trial/tnews1.html
+http://www.mcspotlight.org/media/press/mcds/dailymail150304.html
+http://www.mcspotlight.org/media/press/releases/mcspot290703.html
+http://www.mcspotlight.org/people/witnesses/animals/lyman_howard.html
+http://www.mcspotlight.org/people/witnesses/environment/quintana.html
+http://www.mcspotlight.org/people/witnesses/food_poisoning/north_richard.html
+http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?write
+http://www.mcu.usmc.mil/sncoa/29Palms/info.cfm
+http://www.mcvuk.com/newsitem.php?id=261
+http://www.mcwa.com/kids.htm
+http://www.mcwilliams.com/books/aint/404.htm
+http://www.mcwilliams.com/books/aint/405.htm
+http://www.mcwilliams.com/books/aint/507.htm
+http://www.mcwilliams.com/books/doit/d4c.htm
+http://www.mcz.com/sport/fatboys.htm
+http://www.mdah.state.ms.us/pubs/mhn/may03index.html
+http://www.mdarchives.state.md.us/msa/stagser/s1259/131/html/road.html
+http://www.mdausa.org/mattie/eulogies.cfm
+http://www.mdausa.org/news/021115sperep.html
+http://www.mdausa.org/publications/Quest/q116fromwhere.cfm
+http://www.mdausa.org/publications/Quest/q66metabolic.html
+http://www.mdausa.org/publications/Quest/q81cantwork.cfm
+http://www.mdausa.org/publications/Quest/q82tower.cfm
+http://www.mdausa.org/publications/Quest/q96fall-down.cfm
+http://www.mdc.com.cn/EN/InformationCenter/01-LatestNews41.php?menuid=8
+http://www.mdc.edu/
+http://www.mdcbowen.org/cobb/
+http://www.mdcbowen.org/cobb/archives/002952.html
+http://www.mde.net/newsletter/may1_04/
+http://www.mde.state.md.us/CitizensInfoCenter/FishandShellfish/home/index.asp
+http://www.mdflora.org/placesatrisk/crabtree.html
+http://www.mdgop.org/site/apps/nl/content2.asp?c=6oIKKZMFF&b=32695&ct=118802
+http://www.mdisfun.org/about_md_tourism/sm_associations.asp
+http://www.mdlinx.com/EmergencyMDLinx/index.cfm?subspec_id=250&bt=todaysnews
+http://www.mdlinx.com/InternalMDLinx/index.cfm?subspec_id=161&bt=todaysnews
+http://www.mdlinx.com/heartlinx/index.cfm?subspec_id=149&bt=todaysnews
+http://www.mdlinx.com/psychlinx/index.cfm
+http://www.mdm.org.my/archived_articles.php?newsID=5&archived=yes
+http://www.mdn.org/1996/STORIES/MENTAL01.HTM
+http://www.mdna.com/press/medicap8.html
+http://www.mdng.com/departments/sept_oct2003/cover.html
+http://www.mdpme.com/moral.htm
+http://www.mdrc.org/area_issue_10.html
+http://www.mdschoolofdoggrooming.com/ownertimwray/
+http://www.mdsupport.org/clinic/sonkinsession1.html
+http://www.mdvma.org/classifieds/classifieds.shtml
+http://www.mdx.ac.uk/runnymede/interview.htm
+http://www.mdx.ac.uk/www/study/6bioh.htm
+http://www.mdx.ac.uk/www/study/SSHglo.htm
+http://www.mdx.ac.uk/www/study/Spider.htm
+http://www.mdx.ac.uk/www/study/arcolive.htm
+http://www.mdx.ac.uk/www/study/sshglo.htm
+http://www.mdx.ac.uk/www/study/xmad.htm
+http://www.mdx.ac.uk/www/study/xtho.htm
+http://www.me.pdx.edu/~gerry/nmm/mfiles/
+http://www.me.ucsb.edu/dept_site/student_info/grad_courses.html
+http://www.me.utexas.edu/~jensen/ORMM/omie/computation/unit/invent_add/det_none.html
+http://www.me3.org/issues/climate/mninterfaith.html
+http://www.mea.com.lb/cedarmiles/conditions.htm
+http://www.mead.ch/htm/ch/bios_texte/Crypto05_text.html
+http://www.meals-on-wheels.ca/services/meals.cfm
+http://www.meaning.ca/articles/meaning_esl_students.html
+http://www.meaning.ca/articles/presidents_column/print_copy/new_algebra.htm
+http://www.meaningoflife.i12.com/suffering.htm
+http://www.meansbusiness.com/Finance-and-Profitability-Books/Staying-Wealthy.htm
+http://www.meansbusiness.com/Ideas_122600.asp
+http://www.meansbusiness.com/Organizing-Work-and-People-Books/Understanding-Organizations.htm
+http://www.meansbusiness.com/ideas_archive.asp
+http://www.meansbusiness.com/mbsite/press.asp
+http://www.meatindueseason.org/newbold/or/harlot/harlot6.html
+http://www.meatprocess.com/productnews/productpresentation.asp?id=207
+http://www.meccapixel.com/archives/000132.php
+http://www.meccsa.org.uk/conference/accepted-papers.html
+http://www.mecda.org/
+http://www.mecep.org/report-layoff/Layoff_report.htm
+http://www.mech.utah.edu/~rusmeeha/labNotes/fatigue.html
+http://www.mechanicalcat.net/richard/log/Games
+http://www.mechanicalmusicpress.com/history/articles/eurotrip.htm
+http://www.med-electronics.com/doppler_n.html
+http://www.med-help.net/First-Aid.htm
+http://www.med.cornell.edu/news/press/2004/05_25_04.html
+http://www.med.govt.nz/buslt/compliance/balance/balance-11.html
+http://www.med.govt.nz/irdev/elcom/keyissues/keyissues-03.html
+http://www.med.govt.nz/irdev/elcom/keyissues/keyissues.html
+http://www.med.govt.nz/pbt/infotech/ictinclusion/ictinclusion-03.html
+http://www.med.harvard.edu/chge/textbook/toxic/organic/reading_3.htm
+http://www.med.miami.edu/communications/som_news/index.asp?id=15
+http://www.med.miami.edu/psychiatry/Psychol.html
+http://www.med.monash.edu.au/psych/research/rda/
+http://www.med.nus.edu.sg/lilly/P_Medviews.htm
+http://www.med.sc.edu:1081/prodplacementstudy.htm
+http://www.med.stanford.edu/osa/publicservice/green.team/week7/main.html
+http://www.med.ucla.edu/modules/wfsection/article.php?articleid=97
+http://www.med.ufl.edu/oea/cc/duff.html
+http://www.med.ufl.edu/ortho/mspathcdreview.htm
+http://www.med.umich.edu/1libr/aha/aha_parkinsn_crs.htm
+http://www.med.umich.edu/1libr/pa/pa_wc10year_hhg.htm
+http://www.med.umich.edu/1libr/wha/wha_parkinsn_crs.htm
+http://www.med.umich.edu/1libr/yourchild/enuresis.htm
+http://www.med.umich.edu/cvc/adult/prefail2.htm
+http://www.med.umich.edu/depression/donations.htm
+http://www.med.umich.edu/obgyn/smartmoms/labor/labor/beginning.htm
+http://www.med.umich.edu/opm/newspage/2002/dirtyair.htm
+http://www.med.umich.edu/opm/newspage/2003/patienttransfer.htm
+http://www.med.umich.edu/opm/newspage/2003/quitsmoking.htm
+http://www.med.umich.edu/opm/newspage/2005/patientsafetykids.htm
+http://www.med.umich.edu/prmc/directions.htm
+http://www.med.unc.edu/~nupam/prince1.html
+http://www.med.und.nodak.edu/bimd/atkinson.html
+http://www.med.und.nodak.edu/bimd/text_anatomy_courses.htm
+http://www.med.und.nodak.edu/depts/fammed/SportsMed/alumni.htm
+http://www.med.upenn.edu/mstp/thesis_student.html
+http://www.med.uwo.ca/physpharm/courses/medsweb/L4Aud/m4aud.swf
+http://www.med.wayne.edu/intmed/ishib.asp
+http://www.medadvising.ku.edu/interviews.shtml
+http://www.medalia.net/Faq.html
+http://www.medaloffreedom.com/RalphBunche.htm
+http://www.medalofhonor.com/KoreanCampaign1871.htm
+http://www.medalofhonor.com/Sgt.York.htm
+http://www.medeleq.com.au/?ld='General'
+http://www.medem.com/medlb/article_detaillb.cfm?article_ID=ZZZH31JDJMC&sub_cat=74
+http://www.medeng.net/
+http://www.medford.k12.ma.us/tech/tu.htm
+http://www.medformation.com/ac/patiented.nsf/page/kneesuccess
+http://www.medhelp.org/nadf/nadf11.htm
+http://www.medhunters.com/articles/headscarvesAndHospitality.html
+http://www.medhunters.com/articles/walkThisWay.html
+http://www.medhunters.com/job/9118.html
+http://www.medhunters.com/jobs/bmu.html
+http://www.medhunters.com/nursing-jobs/bmu.html
+http://www.medhunters.com/queryResult/jobQuery/nurseManagerAmbulatoryCare/page1.html
+http://www.media-access.com/resources.html
+http://www.media-access.com/whatis.html
+http://www.media-awareness.ca/english/issues/stereotyping/women_and_girls/women_girls.cfm
+http://www.media-awareness.ca/english/issues/violence/effects_media_violence.cfm
+http://www.media-awareness.ca/english/parents/television/talking_to_kids_tv.cfm
+http://www.media-awareness.ca/english/resources/educational/handouts/crime/crime_not_black_and_white.cfm
+http://www.media-awareness.ca/english/resources/special_initiatives/toolkit_resources/tipsheets/pitching_story.cfm
+http://www.media-ecology.org/publications/proceedings/v2/flight_of_minerva's_owl.html
+http://www.media-general.com/reports/presentations/conf_calls/jan27_05_remarks.htm
+http://www.media-strategies.com/updatevol2.htm
+http://www.media-visions.com/itv-usability.html
+http://www.media-watch.org/articles/0799/
+http://www.media-watch.org/articles/0799/subject.html
+http://www.media.anglican.com.au/tma/2003/12/cleary.html
+http://www.media.rice.edu/media/NewsBot.asp?MODE=VIEW&ID=3374&SnID=932236771
+http://www.media.rice.edu/media/NewsBot.asp?MODE=VIEW&ID=7420&SnID=762166156
+http://www.mediabistro.com/articles/cache/a170.asp
+http://www.mediabistro.com/articles/cache/a3746.asp
+http://www.mediabistro.com/bbs/cache%5Ct19616_1.asp
+http://www.mediabistro.com/fishbowlDC/television/donaldson_network_news_is_dead_20722.asp
+http://www.mediabistro.com/fishbowlLA/on/estrich_hopping_mad_at_mike_kinsley_4033.asp
+http://www.mediabistro.com/fishbowldc/
+http://www.mediabistro.com/tvnewser/archive/2004_10_23_archive.asp
+http://www.mediabistro.com/tvnewser/cbs/evening_news_viewers_would_rather_4599.asp
+http://www.mediacen.navy.mil/vi/scan.htm
+http://www.mediachance.com/dvdlab/Help/burning.htm
+http://www.mediachance.com/dvdlab/Helppro/burning.htm
+http://www.mediachannel.org/atissue/sample4/index.shtml
+http://www.mediachannel.org/reform/indy114.php
+http://www.mediachannel.org/views/dissector/affalert232.shtml
+http://www.mediacircus.net/election.html
+http://www.mediacircus.net/scarymovie.html
+http://www.mediacollege.com/employment/television/
+http://www.mediacy.com/offices.htm
+http://www.mediadomain.com/cgi-bin/netforum/gl/a.cgi/3-68
+http://www.mediageek.org/archives/2004_06.html
+http://www.mediageneral.com/reports/presentations/conf_calls/jan27_05_remarks.htm
+http://www.mediageneral.com/reports/presentations/vcu/vcu_speech.htm
+http://www.mediainfo.com/eandp/news/article_display.jsp?vnu_content_id=1000579414
+http://www.mediajobsearchcanada.ca/job_opportunities_magazine.asp
+http://www.mediajobsearchcanada.com/job_opportunities_magazine.asp
+http://www.medialens.org/blog/archives/00000099.htm
+http://www.medialens.org/cogitations/040430_COG_Beyond_Indifference.HTM
+http://www.medialit.org/reading_room/article277.html
+http://www.mediamatic.net/article-200.5740.html
+http://www.mediamatic.net/article-200.5768.html
+http://www.mediamatic.net/article-200.5779.html
+http://www.mediamatic.net/article-200.5793.html&q_keyword=200.260
+http://www.mediamatic.net/article-200.5793.html&q_theme=200.260
+http://www.mediamatic.net/article-200.5847.html
+http://www.mediamatic.net/article-200.5847.html&q_keyword=200.229
+http://www.mediamatic.net/article-200.5885.html&q_keyword=200.230
+http://www.mediamatic.net/article-200.8574.html&q_keyword=200.262
+http://www.mediaminer.org/fanfic/view_st.php/85140
+http://www.medianet-ny.com/pricing.htm
+http://www.mediarelations.ksu.edu/WEB/News/InView/110404upclose.html
+http://www.mediarelations.ksu.edu/WEB/News/NewsReleases/pethealth.html
+http://www.mediascope.org/pubs/ntvs.htm
+http://www.mediascope.org/whtwedo/evnts.htm
+http://www.mediascope.org/whtwedo/inits.htm
+http://www.mediasharx.com/index.php/comics/3458
+http://www.mediaspin.com/thefan.html
+http://www.mediate.com/articles/morenoE5.cfm
+http://www.mediathatmattersfest.org/mtm04/index.php
+http://www.mediathatmattersfest.org/mtm04/media/novela_novela.php
+http://www.mediationuk.org.uk/template.asp?lv=1&MenuItemID=22&MenuID=1
+http://www.mediatransparency.org/people/elliot_abrams.htm
+http://www.mediatrips.com/mt/archives/2004/10/
+http://www.mediatrips.com/mt/archives/2004/10/eminiems_antibu.html
+http://www.mediawar.info/censorednews.htm
+http://www.mediawar.info/censorednews6.htm
+http://www.mediawatch.co.nz/default,422.sm
+http://www.mediaweek.co.uk/articles/2004/10/12/dailytvmarketplace131004/view
+http://www.mediaweek.co.uk/articles/2004/10/19/smallwhitebox
+http://www.mediaweek.co.uk/articles/2004/10/26/bigmouthstrikes
+http://www.mediaweek.co.uk/articles/2004/10/daily-tv-marketplace-20Oct04/view
+http://www.mediaweek.co.uk/articles/2004/10/dailytv-081004/view
+http://www.mediaweek.co.uk/articles/2004/10/tvmarketplace-26sept/view
+http://www.mediaweek.co.uk/articles/2004/10/tvmarketplace-oct21/view
+http://www.mediaweek.co.uk/articles/2004/11/tvbuyers_estimates_111104/view
+http://www.mediaweek.co.uk/articles/2004/11/tvmarketplace-07nov/view
+http://www.mediaweek.co.uk/articles/2004/11/tvmarketplace-3nov/view
+http://www.mediaweek.co.uk/articles/2004/12/tvmarketplace-15dec/view
+http://www.mediaweek.co.uk/articles/2004/6/29/Keepingthebestofbothworlds
+http://www.mediaweek.co.uk/articles/2004/9/07/smokingoutalackofteamworkandproductivityinmysalesdepartment
+http://www.mediaweek.co.uk/articles/folder2005/01/25/brainwavesagenciesembrace
+http://www.medic8.com/healthguide/articles/hibp.html
+http://www.medical.philips.com/main/products/resuscitation/biphasic_technology/waveform_design.html
+http://www.medicalboard.state.ga.us/consumer_faq.html
+http://www.medicalclaimsservice.com/MCSMarketingHome/Privacy.asp
+http://www.medicalclaimsservice.com/mcsmarketinghome/Privacy.asp
+http://www.medicalcomputingtoday.com/0listcme.html
+http://www.medicalconsumers.org/pages/hawking_heart_scans.html
+http://www.medicalhomeinfo.org/screening/vision.html
+http://www.medicalimagingmag.com/issues/articles/2000-12_01.asp
+http://www.medicalnewstoday.com/
+http://www.medicalnewstoday.com/medicalnews.php?newsid=12768
+http://www.medicalnewstoday.com/medicalnews.php?newsid=14146
+http://www.medicalnewstoday.com/medicalnews.php?newsid=20416
+http://www.medicalnewstoday.com/medicalnews.php?newsid=22777
+http://www.medicalnewstoday.com/medicalnews.php?newsid=24494
+http://www.medicalnewstoday.com/medicalnews.php?newsid=24716
+http://www.medicalnewstoday.com/medicalnews.php?newsid=25558
+http://www.medicalnewstoday.com/medicalnews.php?newsid=25674
+http://www.medicalnewstoday.com/medicalnews.php?newsid=26012
+http://www.medicalnewstoday.com/medicalnews.php?newsid=26302
+http://www.medicalnewstoday.com/medicalnews.php?newsid=9385
+http://www.medicalpocketpc.com/software/utilities.shtml
+http://www.medicalresonancetherapymusic.com/05%20International%20Experts/1114%20Alexander%20Reznikov.htm
+http://www.medicalsurveys.net/tips/patient_satisfaction_tip11.htm
+http://www.medicalwellnesscenter.com/Differinquestionsandanswers.htm
+http://www.medicare.gov/Choices/Overview.asp
+http://www.medicare.gov/LongTermCare/Static/Home.asp
+http://www.medicarerights.org/pressrelease200210.html
+http://www.mediccleanair.com/uk/uk21.html
+http://www.medicfirstaid.us/index.php?page_id=48
+http://www.medicine.mcgill.ca/Internal-Med/RVH/cmrinfo/cmrinfo.htm
+http://www.medicine.mcgill.ca/artcell/2000Editorial.htm
+http://www.medicine.mcgill.ca/physio/courses/314A/krnjevic/LECT1.2004.htm
+http://www.medicinebuddha.org/
+http://www.medicinehat.worldweb.com/DrivingTours/8-91.html
+http://www.medicinenet.com/exercise_and_activity/article.htm
+http://www.medicinenet.com/script/main/art.asp?articlekey=15081
+http://www.medicinenet.com/script/main/art.asp?articlekey=19804&page=2
+http://www.medicinenet.com/script/main/art.asp?articlekey=35016
+http://www.medicinenet.com/script/main/art.asp?articlekey=40449
+http://www.medicomm.net/Consumer%20Site/am/iridology.htm
+http://www.medicouncilalcol.demon.co.uk/articles.htm
+http://www.medieval.org/emfaq/misc/whatis.htm
+http://www.medieval.org/music/world/java.html
+http://www.medievalacademy.org/about/bylaws.htm
+http://www.medihealthdme.com/education/diabetes_cleveland.htm
+http://www.medilexicon.com/medicalnews.php?newsid=19747&language=spanish
+http://www.medill.northwestern.edu/~secure/docket/mt/archives/000122.php
+http://www.medill.northwestern.edu/~secure/docket/mt/archives/000151.php
+http://www.medill.northwestern.edu/~secure/docket/mt/archives/000326.php
+http://www.medill.northwestern.edu/~secure/docket/mt/archives/000800.php
+http://www.medimmunol.com/content/3/1/3/abstract
+http://www.meditateinlondon.com/articles/05_simplymantra.htm
+http://www.meditech.com/productbriefs/pages/ProductBriefsCSBH.htm
+http://www.mediterrasian.com/straight_talk_exercise.htm
+http://www.mediterrasian.com/straight_talk_exercise_pf.htm
+http://www.mediumgeek.com/
+http://www.medlib.iupui.edu/faculty/etme99/
+http://www.medlib.iupui.edu/hom/biblio.html
+http://www.medrecinst.com/forum/forum_posts.asp?TID=22&get=last
+http://www.medschoolchat.com/displayarticle196.html
+http://www.medschoolguide.co.uk/forum/archive/index.php/t-3012.html
+http://www.medschoolguide.co.uk/forum/archive/index.php/t-3471.html
+http://www.medschoolguide.co.uk/forum/showthread.php?t=9503&page=12&pp=10
+http://www.medsci.ox.ac.uk/gazette/volume54-1/16/
+http://www.medtronic-ers.com/company/history.cfm
+http://www.medway.gov.uk/index/business/licensing/30964-2.htm
+http://www.medwaycoopbank.com/business_products.htm
+http://www.medwaycoopbank.com/deposit_24_hour_banking.htm
+http://www.medwaycoopbank.com/deposit_checking.htm
+http://www.medword.com/MedwordStore/courses/online_medical_transcription.html
+http://www.medzilla.com/books.html
+http://www.medzilla.com/ptf-1.html
+http://www.meeilaser.com/contact.htm
+http://www.meekercolorado.com/HSociety.htm
+http://www.meer.org/chap4.htm
+http://www.mees.com/postedarticles/oped/a47n36d02.htm
+http://www.meet-an-inmate.com/male/saul-1581.htm
+http://www.meet-an-inmate.com/male/stephano-1831.htm
+http://www.meetingfriendsonline.com/
+http://www.meetinglocators.com/agreement.html
+http://www.meetings-conventions.com/breakingnews.aspx
+http://www.meetingstrategiesworldwide.com/services.php
+http://www.meetlimerickshannon.com/?id=11
+http://www.meetmarketadventures.com/testimonials.php
+http://www.meetup.com/boards/view/viewthread?thread=1255244&pager.offset=20
+http://www.meetup.com/boards/view/viewthread?thread=1266089&pager.offset=10
+http://www.meetup.com/boards/view/viewthread?thread=1405602&pager.offset=0
+http://www.meetup.com/cities/gb/bristol/?offset=80&sort=soon&radius=25&desc=
+http://www.meforum.org/article/270
+http://www.meforum.org/article/277
+http://www.meforum.org/article/651
+http://www.mega-tex.nl/software/cinema4dr9.1.html
+http://www.mega-tex.nl/software/old%20news/softwareupdateII.html
+http://www.megadoc.net/TV/
+http://www.megaproxy.com/
+http://www.megaspin.net/store/viewproduct.asp?pid=b-relop
+http://www.megatokyo.com/
+http://www.megginson.com/blogs/lahso/
+http://www.megstoybox.com/pages/clothing.htm
+http://www.meh.hu/english/activities/briefing/20050505.html
+http://www.mei-fr.org/textes_fondateurs_en.php
+http://www.meib.org/articles/0302_l1.htm
+http://www.meister-artist.com/r.htm
+http://www.mekarn.org/sarec03/toan.htm
+http://www.melanoma.org/PatientInfo.jsp
+http://www.melbourne.catholic.org.au/archbishop/homilies/DHhomily383-20030912.htm
+http://www.melbourne.indymedia.org/news/2004/05/68752_comment.php
+http://www.melbourne.indymedia.org/news/2004/07/73337.php
+http://www.melbourne.indymedia.org/news/?display=x&page=3&category=3
+http://www.melbournear.com/communityprofile.htm
+http://www.melchizedek.com/Blaustein.htm
+http://www.mellesgriot.com/products/machinevision/lef_2.htm
+http://www.mellon.org/arli88.html
+http://www.melnworld.com/englanniksi/legends.php3?id=24
+http://www.melodramatic.com/users/angel_in_chaos
+http://www.melodymakers.de/forum/showpost.php?p=19603&postcount=14
+http://www.melonfarmers.co.uk/bpbarrat.htm
+http://www.melonfarmers.co.uk/cw.htm
+http://www.melonfarmers.co.uk/news1299.htm
+http://www.melonfarmers.co.uk/saindex.htm
+http://www.melonfarmers.co.uk/ssphon05.htm
+http://www.melonfarmers.co.uk/sssatx.htm
+http://www.melonfire.com/community/columns/trog/print.php?id=244
+http://www.meloware.com/vitaphone/vit7.htm
+http://www.melta.org.my/ET/1999/main3.html
+http://www.mem-algeria.org/actu/ministre/allocutions/james_a_baker_6-4_eng.htm
+http://www.memagazine.org/backissues/march99/departments/washington/washington.html
+http://www.memagazine.org/backissues/oct99/features/molding/molding.html
+http://www.memagazine.org/supparch/medes04/inscale/inscale.html
+http://www.membergate.com/products/item7.cfm
+http://www.members.aol.com/_ht_a/sk8swthazlzzrds2/page1.html
+http://www.members.aol.com/drangus01/Torvaldsland.html
+http://www.members.aol.com/mbtexts/44.html
+http://www.members.aol.com/sk8swthazlzzrds2/page1.html
+http://www.members.aol.com/wwanglia/gowen1.htm
+http://www.members.cox.net/t.s/data.html
+http://www.members.lycos.co.uk/thecavefreeware/spy.html
+http://www.members.optusnet.com.au/~hsadler/beaglediary.html
+http://www.members.shaw.ca/MANweb/Pretzel.html
+http://www.members.shaw.ca/creatingcomics/writers.html
+http://www.memory-key.com/news/2004/news_2004Oct.htm
+http://www.memory-project.org/portraitsforchildren.html
+http://www.memphis.edu/egypt/artifact.html
+http://www.memphisflyer.com/content.asp?ID=2834&onthefly=1
+http://www.memphisguide.com/directory/dir00168.htm
+http://www.memri.de/uebersetzungen_analysen/laender/aegypten/egypt_election_20_05_05.html
+http://www.memri.de/uebersetzungen_analysen/laender/aegypten/egypt_wife_II_11_01_02.html
+http://www.memri.de/uebersetzungen_analysen/laender/persischer_golf/irak_exercise_27_08_04.html
+http://www.menafn.com/Glossary/bfglosf.asp
+http://www.menc.org/guides/explor/explor1.html
+http://www.menc.org/information/advocate/facts.html
+http://www.menc.org/information/trim/advisors_sampleCnB.html
+http://www.menc.org/networks/rnc/Bergee-Report.html
+http://www.menc.org/publication/books/otl.html
+http://www.mencap.org.uk/html/about_mencap/changing_attitudes.htm
+http://www.mendiseasestcm.com/translatione.htm
+http://www.mendocino.com/
+http://www.meniett.com/stripcontent.php?parent_file=/testimonial_patricia_borello_monie.html
+http://www.meningitis-trust.org/media/media_case_studies.php?category=41&sub=147
+http://www.meningitis.org/sect5/subsect2
+http://www.menke.com/RestoringAmericanDream.htm
+http://www.menopause.org.au/education/educationQandA.asp
+http://www.mensetmanus.net/windpower/comment.shtml
+http://www.menshealth.co.uk/talk/thread.phtml/post644707/
+http://www.menshealth.co.uk/talk/thread.phtml/post697820/
+http://www.menshealth.co.uk/talk/thread.phtml/post802891/
+http://www.menshealth.com/cda/article/0,2823,s1-141-0-0-2000,00.html
+http://www.menshealth.com/cda/article/printer_friendly/0,2826,s1-141-0-0-2000,00.html
+http://www.mensjournal.com/healthFitness/0412/poll_trainer.html
+http://www.mensnewsdaily.com/archive/s/salvato/2005/salvato063005.htm
+http://www.mensresourcecenter.org/badguys.html
+http://www.menstruation.com.au/menstrualproducts/testimonials.html
+http://www.mental-health-matters.com/articles/article.php?artID=503
+http://www.mental-health-matters.com/selfhelp/r_employment.php
+http://www.mentalhealth.com/books/mama/mama-20.html
+http://www.mentalhealth.com/mag1/p5m-dp05.html
+http://www.mentalhealth.org/cre/ch4_need_mental_health.asp
+http://www.mentalhealth.org/highlights/January2005/weight/links.asp
+http://www.mentalhealthcare.org.uk/pharmacist/
+http://www.mentalhealthcare.org.uk/schizophrenia/carer/handlingsymptoms/inactivity/
+http://www.mentalhealthcommission.gov/reports/FinalReport/FullReport-05.htm
+http://www.mentalhelp.net/poc/view_doc.php?id=30&type=book&cn=66
+http://www.mentaljokes.com/bad_boys.html
+http://www.mentalskills.co.uk/articles/featured_article.php?docid=14
+http://www.mentor-media.com/
+http://www.menweb.org/backfutu.htm
+http://www.menweb.org/keenivu.htm
+http://www.menweb.org/mcdermot.htm
+http://www.menz.org.nz/index.php?m=200412
+http://www.mep.org/
+http://www.mepartnership.org/protectourwater/pow_whatsnew.asp?new_id=763
+http://www.mepc.org/public_asp/forums_briefs/3-7-03.asp
+http://www.meprcouncil.org/jobbank/posting.asp?ID=208
+http://www.meps.ahrq.gov/papers/hl10_99-0031/hl10.htm
+http://www.meps.ahrq.gov/papers/st4/stat04.htm
+http://www.merceric.com.au/summary.jhtml/dynamic/idContent/1177130
+http://www.merceric.com/attachment.dyn?idContent=1167320&idFile=144711
+http://www.merceric.com/summary.jhtml/dynamic/idContent/1167320
+http://www.merchantaccount.com/services.html
+http://www.merchantinter.net/hardwaresolutions/networks/networks/help/printers.htm
+http://www.merck.com/mmhe/sec01/ch007/ch007e.html
+http://www.merck.com/mmhe/sec03/ch025/ch025a.html
+http://www.merck.com/mmhe/sec05/ch067/ch067b.html
+http://www.merck.com/mmhe/sec14/ch176/ch176a.html
+http://www.merck.com/mmhe/sec20/ch231/ch231a.html
+http://www.merck.com/mmhe/sec24/ch299/ch299f.html
+http://www.merck.com/mrkshared/mm_geriatrics/sec2/ch18.jsp
+http://www.merck.com/mrkshared/mmanual/section19/chapter260/260h.jsp
+http://www.merck.com/mrkshared/mmg/sec11/ch92/ch92a.jsp
+http://www.merck.com/mrl/research/areas/amcs.html
+http://www.merck.com/newsroom/press_releases/corporate/2004_0427.html
+http://www.merckmedicus.com/pp/us/hcp/thcp_dorlands_content.jsp?pg=/ppdocs/us/common/dorlands/dorland/dmd-a-045.htm
+http://www.merckmedicus.com/pp/us/hcp/thcp_dorlands_content.jsp?pg=/ppdocs/us/common/dorlands/dorland/dmd-m-033.htm
+http://www.merckmedicus.com/pp/us/hcp/thcp_dorlands_content.jsp?pg=/ppdocs/us/common/dorlands/dorland/dmd-m-040.htm
+http://www.merckmedicus.com/pp/us/hcp/thcp_dorlands_content.jsp?pg=/ppdocs/us/common/dorlands/dorland/dmd-p-063.htm
+http://www.merckvetmanual.com/mvm/htm/bc/25300.htm
+http://www.mercola.com/2000/dec/3/sucralose_dangers.htm
+http://www.mercola.com/2000/sep/17/soy_brain.htm
+http://www.mercola.com/2001/mar/10/immigrants.htm
+http://www.mercola.com/2001/mar/24/coconut_oil.htm
+http://www.mercola.com/2001/may/19/estrogen.htm
+http://www.mercola.com/2001/sep/22/blood_clot_risks.htm
+http://www.mercola.com/2001/sep/29/bioterrorism.htm
+http://www.mercola.com/2002/apr/24/treadmills.htm
+http://www.mercola.com/2002/feb/23/tmj.htm
+http://www.mercola.com/2002/feb/23/vitamin_d_deficiency.htm
+http://www.mercola.com/2002/jan/26/baby_aspirin.htm
+http://www.mercola.com/2003/feb/1/gm_fish.htm
+http://www.mercola.com/2003/jul/26/avoid_wheat.htm
+http://www.mercola.com/2004/feb/18/drug_companies.htm
+http://www.mercola.com/2004/oct/30/flu_vaccine.htm
+http://www.mercola.com/2005/jan/5/exercise_deficiency.htm
+http://www.mercola.com/article/milk/no_milk.htm
+http://www.mercola.com/article/sleep.htm
+http://www.mercola.com/article/sugar/sugar_cancer.htm
+http://www.mercola.com/forms/total_health_book.htm
+http://www.mercola.com/nst/explain.htm
+http://www.mercury.com/it/customers/successes/royal-caribbean.html
+http://www.mercurynews.com/mld/mercurynews/news/special_packages/iraq/weblog/
+http://www.mercy.net/healthinfo/archive/041124.asp
+http://www.mercycare.org/childrenandfever.aspx
+http://www.mercycorps.org/items/1150/
+http://www.mercydesmoines.org/aboutMercy/directions.asp
+http://www.mercyhealthplans.com/savvyshopper/healthheadlines/020716.aspx
+http://www.mercyhealthplans.com/savvyshopper/healthheadlines/041124.aspx
+http://www.mercyhospital.com/whatsnew/
+http://www.meredithmanor.com/features/articles/faith/pants.asp
+http://www.meredy.com/nursetips/holidayhealthtips.html
+http://www.meresearch.org.uk/friends/recent.html
+http://www.mergerplace.com/mp/visitor/buyers/search/results/brloc/us:ny
+http://www.mergerplace.com/mp/visitor/buyers/view/29857
+http://www.mergers-acquisitions.com/books.html
+http://www.meridian-technology.com/full_time/Financial_Aid.asp
+http://www.meridianeng.com/airpolld.html
+http://www.meridiangrp.net/articles/news8.html
+http://www.meridianmagazine.com/books/040414deliver.html
+http://www.merip.org/mer/mer215/215_bennis.html
+http://www.merip.org/mer/mer220/220_alkadiri.html
+http://www.merip.org/mero/mero011104.html
+http://www.merip.org/mero/mero043002.html
+http://www.merip.org/mero/mero070700.html
+http://www.merit.edu/mail.archives/nanog/2004-07/msg00102.html
+http://www.merit.unimaas.nl/phd/coursework.htm
+http://www.meritcare.com/jobs/benefits.asp
+http://www.meritcare.com/specialties/more/sleep/
+http://www.meriter.com/mhs/hospital/emergency.htm
+http://www.merlinwebdesign.com/client_sites.shtml
+http://www.merlyn.demon.co.uk/gravity1.htm
+http://www.merp.com/essays/MichaelMartinez/michaelmartinezsuite101essay113
+http://www.merricks.com/healthyfoal.html
+http://www.merrimackcanoes.com/carry_canoe.htm
+http://www.merrycoz.org/student/BESTGIRL.HTM
+http://www.mersenne.org/
+http://www.mersenne.org/ips/
+http://www.mersenne.org/prime.htm
+http://www.merthyrmike.free-online.co.uk/dowlais.htm
+http://www.merton.ox.ac.uk/subjects/music.html
+http://www.meryl.net/
+http://www.meryl.net/blog/archives/2000_08.php
+http://www.mesa.edu.au/
+http://www.mesa.edu.au/forums/topic.asp?ARCHIVE=true&TOPIC_ID=399
+http://www.mesalek.com/colo/facts.html
+http://www.mesart.com/invitations/EliseSmithBoston.shtml
+http://www.mesart.com/invitations/KellySmithBoston.shtml
+http://www.mesart.com/invitations/RhondaM.SmithSomerville.shtml
+http://www.mesart.com/invitations/StephenSmithBoston.shtml
+http://www.mesolink.org/mesothelioma-news/04-06-05.html
+http://www.mesomorphosis.com/articles/haycock/medically-supervised-steroid-use.htm
+http://www.mesp.wisc.edu/abroad.htm
+http://www.messefrankfurt.com/congresscenter/en/meta_ekb.html
+http://www.messefrankfurt.com/conventure/en/home_ekb.html
+http://www.messenger-inquirer.com/news/kentucky/8488541.htm
+http://www.messf.gouv.qc.ca/securite-du-revenu/programmes-mesures/assistance-emploi/prestation-de-base_en.asp
+http://www.met.tamu.edu/class/Metr201/Ch10MidlatitudeCyclones.html
+http://www.meta-library.net/iftm/demdec-body.html
+http://www.meta-religion.com/Extremism/White_extremism/Aryan_republican_army/white_supremacist_bank.htm
+http://www.meta-religion.com/New_religious_groups/Groups/New_Age/way_international.htm
+http://www.meta-religion.com/Psychiatry/The_Paranormal/does_recurrent_isolated.htm
+http://www.metabridge.com/assoc/creatler.html
+http://www.metacog.com/problems.htm
+http://www.metacritic.com/film/titles/aloneinthedark
+http://www.metacritic.com/film/titles/collateraldamage
+http://www.metacritic.com/film/titles/meangirls/
+http://www.metacritic.com/music/artists/destinyschild/destinyfulfilled
+http://www.metacritic.com/music/artists/destinyschild/destinyfulfilled/
+http://www.metacritic.com/video/titles/englishpatient
+http://www.metafilter.com/
+http://www.metafilter.com/contest_results.mefi
+http://www.metafilter.com/mefi/38799
+http://www.metafilter.com/mefi/42657
+http://www.metafilter.com/mefi/42711
+http://www.metafuture.org/Books/Questions_and_Answers_for_the_busy_manager.htm
+http://www.metal-observer.com/articles.php?lid=1&sid=6&id=5605
+http://www.metal-powder.net/features/archive/feature_jun05.html
+http://www.metal-tiger.com/Wu_Tang_PCA/PakuaTapeSale.html
+http://www.metalasylum.com/ragingbull/movies/halloween.html
+http://www.metalevents.com/eventMain.asp?id=AluminiumIII
+http://www.metalgearsolid.pl/print.php?what=infopage&id=134
+http://www.metalupdate.com/
+http://www.metamodels.com/maps/business,sales.html
+http://www.metamorphosis.com/index2.html
+http://www.metamorphozis.com/content_articles/seo/All_About_Links_Interview_with_link_building_expert.php
+http://www.metaphoria.org/ac4t9503.html
+http://www.metaphysicalsolutions.com/ordernow.htm
+http://www.metaresearch.org/media%20and%20links/press/on-improbable-claims.asp
+http://www.metaweb.com/wiki/wiki.phtml?title=Monmouth
+http://www.metaweb.com/wiki/wiki.phtml?title=Monmouth&printable=yes
+http://www.methodistwales.org.uk/South/Information/history/
+http://www.methodsandtools.com/archive/archive.php?id=18
+http://www.methuselahfoundation.org/
+http://www.metimes.com/articles/normal.php?StoryID=20041110-085834-5258r
+http://www.metlife.com/Applications/Corporate/WPS/CDA/PageGenerator/0,1674,P1174,00.html
+http://www.metlife.com/Applications/Corporate/WPS/CDA/PageGenerator/0,1674,P1524,00.html
+http://www.metlinkmelbourne.com.au/latest_news/news_events.php
+http://www.metmuseum.org/special/Heritage_of_Power/Heritage_of_Power_more.htm
+http://www.metmuseum.org/toah/hd/aams/hd_aams.htm
+http://www.metmuseum.org/toah/hd/apol/hd_apol.htm
+http://www.metmuseum.org/toah/hd/rgls/hd_rgls.htm
+http://www.metmuseum.org/toah/ho/08/sfw/hod_1978.412.322.htm
+http://www.metmuseum.org/toah/ho/09/sfs/hod_2001.408.htm
+http://www.metmuseum.org/toah/ht/11/sfs/ht11sfs.htm
+http://www.metoffice.com/climate/uk/interesting/13oct02rain.html
+http://www.metoffice.com/climate/uk/interesting/27oct2002storm.html
+http://www.metoffice.com/climate/uk/interesting/7_8july2004.html
+http://www.metoffice.com/climate/uk/location/england/
+http://www.metone.com/faq.htm
+http://www.metone.com/questions_answers.htm
+http://www.metricmethods.com/whatistheSI.html
+http://www.metro-watch.com/news.htm
+http://www.metro.co.uk/metro/interviews/interview.html?in_page_id=8&in_interview_id=1013
+http://www.metroactive.com/papers/cruz/06.27.01/wives-0126.html
+http://www.metroactive.com/papers/metro/04.12.01/mpnews2-0115.html
+http://www.metrochamber.com/economic/manufacturing.asp
+http://www.metrocouncil.org/planning/stcroixvalley/preserving_re.htm
+http://www.metrofashion.com/dirq_quickly_rush.html
+http://www.metrojersey.com/pets_animals.htm
+http://www.metrokc.gov/assessor/PersonalProp/PersPropFAQ.htm
+http://www.metrokc.gov/ddes/perminfo/
+http://www.metrokc.gov/exec/news/2004/102004.htm
+http://www.metrokc.gov/health/famplan/birthcontrol/
+http://www.metrokc.gov/kcdot/news/myr/myr4.htm
+http://www.metrolinktrains.com/news_update/detail.php?news_id=127833
+http://www.metronc.com/issues/issue09_03/MUCS/mucsq.html
+http://www.metronet.co.uk/cultv/champions.htm
+http://www.metroplexatheists.org/
+http://www.metropolis-network.net/getFile.php?rubr=prod&doc=224&t=53
+http://www.metropolismag.com/cda/events.php?region=Competitions
+http://www.metropolismag.com/cda/story.php?artid=370
+http://www.metropolismag.com/cda/story.php?artid=393
+http://www.metropolismag.com/html/content_0401/ob/ob3.html
+http://www.metropulse.com/dir_suncity/dir_calendar/cal_guide.html
+http://www.metrotimes.com/editorial/story.asp?id=3259
+http://www.metrotimes.com/editorial/story.asp?id=7079
+http://www.metroweekly.com/feature/?ak=1639
+http://www.metroweekly.com/gauge/?ak=352
+http://www.metroweekly.com/gauge/?ak=430
+http://www.metrowellnez.com/
+http://www.metrowerks.com/MW/download/request.asp?action=dl&product=CW68k3.2
+http://www.metservice.co.nz/default/help.php?subject=analysis
+http://www.metservice.co.nz/default/index.php?static=1997spring2
+http://www.mettaforest.org/Article/The%20Economy%20of%20Gifts.htm
+http://www.metwashairports.com/employment/jobs/05-081.htm
+http://www.metzler.us/metzler/sources/sou0005.html
+http://www.metzler.us/wilbourne/sources/sou0000.html
+http://www.meuse-argonne.com/Randys%20Webpages/features__neuvilly_church_and_canteen.htm
+http://www.mewburn.com/meipef-2.htm
+http://www.mewburn.com/meipef.htm
+http://www.mexconnect.com/mex_/dt/dtcarstickers.html
+http://www.mexconnect.com/mex_/dt/dtclothing300.html
+http://www.mexconnect.com/mex_/dtbuses.html
+http://www.mexconnect.com/mex_/history/jtuck/jtlcardenas.html
+http://www.mexconnect.com/mex_/recipes/puebla/kgtacos1.html
+http://www.mexicodesconocido.com/english/naturaleza/flora/detalle.cfm?idsec=10&idsub=33&idpag=1790
+http://www.mexicodesconocido.com/english/naturaleza/otras_areas_naturales_prot/detalle.cfm?idsec=9&idsub=0&idpag=2056
+http://www.mexicomike.com/stories/why_live.htm
+http://www.mext.go.jp/english/kaihatu/earth/resume/framworkdocument_e.htm
+http://www.mext.go.jp/english/org/struct/040.htm
+http://www.meyerbos.com/basic/search.cgi?searchTerms=SOVIET%20UNION
+http://www.meyerbos.com/search.cgi?searchTerms=SOVIET%20UNION&restrict=Category%20Field
+http://www.mezzoblue.com/archives/2004/09/16/minheight_fi/index.php
+http://www.mezzoblue.com/dailies/
+http://www.mfa.gov.il/MFA/History/Early%20History%20-%20Archaeology/Bethsaida-%20An%20Ancient%20Fishing%20Village%20on%20the%20shore
+http://www.mfa.gov.il/mfa/peace%20process/guide%20to%20the%20peace%20process/madrid%20letter%20of%20invitation
+http://www.mfa.gov.pl/index.php?page=1020000001
+http://www.mfc.org/contents/article.asp?id=1363
+http://www.mfe.govt.nz/issues/resource/participation/designations.html
+http://www.mfe.govt.nz/publications/about/soi/2003/part-one-delivering.html
+http://www.mfe.govt.nz/publications/air/proposed-prohibited-standards/prohibited-standards.html
+http://www.mfe.govt.nz/publications/waste/packaging-accord-action-plans-jul04/plan-glass.html
+http://www.mfgquote.com/profiles/Membrane-Switches-United-States.html
+http://www.mfgquote.com/profiles/Swiss-Turning-Ohio.html
+http://www.mfpa.org/reports/report10925856100.htm
+http://www.mfso.org/Hankins.html
+http://www.mfu-upm.com/english/index.cfm?id=115
+http://www.mg.co.za/articlePage.aspx?articleid=196723&area=/breaking_news/breaking_news__international_news/
+http://www.mgain.org/project.html
+http://www.mgb.gov.ph/response/miningissues.htm
+http://www.mgeurts.tmfweb.nl/carmlyr.htm
+http://www.mgfcentre.com/interior.htm
+http://www.mggpillai.com/sections.php3?op=viewarticle&artid=9093
+http://www.mglff.com/2003/031803pr.htm
+http://www.mgmt.utoronto.ca/~baum/mgt2005/valuable.html
+http://www.mgnoc.com/_overlay/Archives/land_speed_record.htm
+http://www.mgoblue.com/document_display.cfm?document_id=6512
+http://www.mgoblue.com/document_display.cfm?document_id=6512&season_id=136
+http://www.mgs4u.com/president2.htm
+http://www.mgt.uea.ac.uk/external.asp
+http://www.mgwater.com/antodaya.shtml
+http://www.mhagstl.org/War_Related_Stress.htm
+http://www.mhamc.org/html/special28.cfm
+http://www.mhcs.health.nsw.gov.au/health-public-affairs/mhcs/publications/5610.html
+http://www.mhcs.health.nsw.gov.au/health-public-affairs/mhcs/publications/5850.html
+http://www.mhcs.health.nsw.gov.au/health-public-affairs/mhcs/publications/600.html
+http://www.mhec.org/aboutmhec.html
+http://www.mhhe.com/biosci/pae/es_map/index.mhtml
+http://www.mhhe.ltsn.soton.ac.uk/news/events.asp?period=2005
+http://www.mhmonline.com/defaultdirectory.asp
+http://www.mhmonline.com/nID/1048/iID/3843/MHM/viewStory.asp
+http://www.mhmonline.com/nID/1087/iID/7275/MHM/viewStory.asp
+http://www.mhmonline.com/nID/1200/iID/20141/MHM/viewStory.asp
+http://www.mhmonline.com/nID/1679/iID/6267/MHM/viewStory.asp
+http://www.mhmonline.com/nID/1862/iID/6586/MHM/viewStory.asp
+http://www.mhmonline.com/nID/2058/iID/20500/MHM/viewStory.asp
+http://www.mhmonline.com/nID/2286/iID/20760/MHM/viewStory.asp
+http://www.mhmonline.com/nID/2555/iID/7215/MHM/viewStory.asp
+http://www.mhmonline.com/nID/2646/iID/20340/MHM/viewStory.asp
+http://www.mhmonline.com/nID/2939/iID/20871/MHM/viewStory.asp
+http://www.mhmonline.com/nID/3204/iID/7595/MHM/viewStory.asp
+http://www.mhmonline.com/nID/3819/MHM/viewStory.asp
+http://www.mhmonline.com/nID/3886/iID/20901/MHM/viewStory.asp
+http://www.mhr-viandes.com/en/docu/docu/d0000272.htm
+http://www.mhs.mb.ca/docs/pageant/20/lorddufferintrail.shtml
+http://www.mhsc.ca/encyclopedia/contents/D5350ME.html
+http://www.mhsc.org.uk/NVQ/Leadership/using_resources.htm
+http://www.mhsc.org.uk/NVQ/Leadership/working_people.htm
+http://www.mhwcom.com/pages/listeningtalking.html
+http://www.mi5.gov.uk/output/Page167.html
+http://www.miafacts.org/bones.htm
+http://www.miami.com/mld/miamiherald/living/columnists/steve_rothaus/qa_forum.htm?forumId=660&mode=display&action=&type=list&pageNo=4
+http://www.miami.muohio.edu/documents_and_policies/bulletin02/courses/eng.cfm
+http://www.miami.muohio.edu/documents_and_policies/bulletin04/courses/chm.cfm
+http://www.miami.muohio.edu/documents_and_policies/bulletin04/ham_midd.cfm
+http://www.miami.muohio.edu/documents_and_policies/bulletin06/courses/eng/
+http://www.miami.muohio.edu/president/presidentsjournal/journal_entry4.cfm
+http://www.miamialum.org/pages/membershipbenefitsandservices.htm
+http://www.miamicityballet.org/mcbdev/go_sponsorship.shtml
+http://www.miamidolphins.com/history/halloffamers/halloffamers_shula_d.asp
+http://www.miaminewtimes.com/issues/2004-12-30/kulchur.html
+http://www.miamiproject.med.miami.edu/x244.xml
+http://www.miamiredcross.org/international.html
+http://www.miamisunpost.com/business.htm
+http://www.miamitodaynews.com/news/031204/story1.shtml
+http://www.mic.go.kr/eng/mic/mic_fun.jsp
+http://www.mica.edu/academic/hs_students_precollege.cfm
+http://www.michael-tippett.com/operaintroknoteng.htm
+http://www.michaelbarrier.com/Capsules/Cock_Robin/CockRobin_capsule.htm
+http://www.michaelbarrier.com/Commentary/Incredibles/Incredibles.htm
+http://www.michaelbloodmeteorites.com/GMPhysAnth.html
+http://www.michaelcornell.com/featured.html
+http://www.michaelcovel.com/archives/cat_systems_trading.html
+http://www.michaeldexter.com/cebit/innovation-howto.htm
+http://www.michaeldvd.com.au/Reviews/Reviews.asp?ID=3630
+http://www.michaelgreer.com/keep_moving.htm
+http://www.michaelheraghty.com/website-findability-sample-section.html
+http://www.michaelholigan.com/Departments/HowTo/HowToPage.asp?ts_id=ath385
+http://www.michaelholigan.com/Departments/HowTo/HowToPage.asp?ts_id=chimcap
+http://www.michaelhowardmp.com/pr040105.htm
+http://www.michaeljennings.blogspot.com/2004_05_16_michaeljennings_archive.html
+http://www.michaelmarshallsmith.com/forum/topic.asp?TOPIC_ID=13&whichpage=2
+http://www.michaelmarshallsmith.com/forum/topic.asp?whichpage=-1&TOPIC_ID=13&REPLY_ID=1016
+http://www.michaelmesser.co.uk/BluesMatters.htm
+http://www.michaelmoore.com/links/index.php
+http://www.michaelmoore.com/mustread/articles/index.php?article=content/20030327-latimes
+http://www.michaelmoore.com/warroom/f911notes/index.php?id=20
+http://www.michaelmoore.com/words/
+http://www.michaelmoore.com/words/index.php?id=1271
+http://www.michaelmoore.com/words/index.php?id=2758
+http://www.michaelmoore.com/words/latestnews/breakingnews/index.php?id=1291
+http://www.michaelmoore.com/words/message/index.php?messageDate=2004-09-06
+http://www.michaelmoore.com/words/message/index.php?messageDate=2004-11-01
+http://www.michaelmoore.com/words/message/index.php?messageDate=2004-12-13
+http://www.michaelnewberry.com/studioupdate/2001-10/
+http://www.michaelnovak.net/
+http://www.michaelraywalker.com/website-marketing.htm
+http://www.michaelspecter.com/ny/2003/2003_02_03_vaccine.html
+http://www.michaelspecter.com/times/1994/1994_03_06_nyt_death.html
+http://www.michaeltotten.com/archives/000698.html
+http://www.michaeltotten.com/archives/000705.html
+http://www.michaeltotten.com/archives/000722.html
+http://www.michaelweiss.org/support.shtml
+http://www.michbar.org/journal/article.cfm?articleID=412&volumeID=31
+http://www.michbusiness.org/
+http://www.michelinag.com/agx/en-US/products/warranty/warranty_us.jsp
+http://www.michener.ca/ce/csu_corpbio_master.php
+http://www.michigan.gov/corrections/0,1607,7-119-9741_33218-96272--,00.html
+http://www.michigan.gov/gov/0,1607,7-168-23442_21981-64915--,00.html
+http://www.michigan.gov/hal/0,1607,7-160-17447_18630_22778-109909--,00.html
+http://www.michigan.gov/mdcd/0,1607,7-122-1683_2858-8635--M_2002_1,00.html
+http://www.michigan.gov/mde/0,1607,7-140--117270--,00.html
+http://www.michigan.gov/minewswire/0,1607,7-136-3452-34872--M_1997_1,00.html
+http://www.michigan.gov/scope/0,1607,7-155-10710_10733_10738-36019--,00.html
+http://www.michigandnr.com/law/ReportWeekDetail.asp?Week=1/14/2001
+http://www.michigandnr.com/law/ReportWeekDetail.asp?Week=4/26/1998
+http://www.michiganhistorymagazine.com/extra/joseph/sitting_bull.html
+http://www.michiganinbrief.org/edition07/Chapter5/Elections.htm
+http://www.michiganmilitia.com/SMVM/members/supersix/super_six.htm
+http://www.michiganmilitia.com/literature/level_1.htm
+http://www.michiganmilitia.org/html/fighting%20terrorism.html
+http://www.michiganufos.com/oakpark.html
+http://www.michinoku.ne.jp/~sugayuki/lesson6.html
+http://www.mickfinch.com/buren.htm
+http://www.microbicides2004.org.uk/timetab.html
+http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1417&param=en506142&Pagetitle=LCD%20FAQs
+http://www.microcontentnews.com/
+http://www.microcontentnews.com/articles/blogware.htm
+http://www.microcontentnews.com/articles/googleblogs.htm
+http://www.microcreditsummit.org/newsletter/speaking6.htm
+http://www.micron.com/products/imaging/applications/dsc.html
+http://www.microopticalcorp.com/Press/onlinemedia/register0408.html
+http://www.micropersuasion.com/2005/03/reader_challeng.html
+http://www.microscope-depot.com/privacy.asp
+http://www.microscopy-uk.net/mag/artnov02/bdforambooklet.html
+http://www.microscopyu.com/articles/confocal/pawley39steps.html
+http://www.microsearchsf.com/breakin.htm
+http://www.microsoft-watch.com/
+http://www.microsoft-watch.com/article2/0,1995,1619063,00.asp
+http://www.microsoft-watch.com/article2/0,1995,1777009,00.asp
+http://www.microsoft.com/BusinessSolutions/RetailManagementSystem/rms_headquarters.aspx
+http://www.microsoft.com/BusinessSolutions/community/axapta_brian_king_interview.aspx
+http://www.microsoft.com/BusinessSolutions/frx_monthlyreportsfeature.aspx
+http://www.microsoft.com/Education/CampusAgreement.aspx?ID=LicensingColbySawyer
+http://www.microsoft.com/Education/JohnPaulCollege.aspx
+http://www.microsoft.com/Windowsxp/expertzone/meetexperts/default.mspx
+http://www.microsoft.com/athome/intouch/onlinejournal.mspx
+http://www.microsoft.com/athome/moredone/eliminatepaper.mspx
+http://www.microsoft.com/athome/moredone/windowshop.mspx
+http://www.microsoft.com/athome/security/privacy/password.mspx
+http://www.microsoft.com/atwork/manageinfo/email.mspx
+http://www.microsoft.com/australia/business/hidden/keytoprofit.aspx
+http://www.microsoft.com/australia/smallbusiness/issues/creating/dms/editing.mspx
+http://www.microsoft.com/australia/smallbusiness/themes/practical/article9.mspx
+http://www.microsoft.com/billgates/speeches/02-22aasa.asp
+http://www.microsoft.com/billgates/speeches/02-26wcit.asp
+http://www.microsoft.com/billgates/speedofthought/additional/gurleypp.asp
+http://www.microsoft.com/canada/casestudies/search.aspx
+http://www.microsoft.com/enable/casestudy/seti.aspx
+http://www.microsoft.com/enable/research/acctechnology.aspx
+http://www.microsoft.com/games/flightsimulator/fs2004_articles_fs_training.asp
+http://www.microsoft.com/info/cpyright.mspx
+http://www.microsoft.com/ireland/businesssolutions/casestudies/Comicrelief_GP.mspx
+http://www.microsoft.com/learning/mcpexams/faq/benefits.asp
+http://www.microsoft.com/mac/default.aspx?pid=office2004td
+http://www.microsoft.com/malaysia/business/articles/linkpage3055.asp
+http://www.microsoft.com/mind/0499/beyond/beyond0499.asp
+http://www.microsoft.com/msft/earnings/FY99/earn_rel_q199.mspx
+http://www.microsoft.com/msft/earnings/FY99/earn_rel_q299.mspx
+http://www.microsoft.com/msft/earnings/FY99/earn_rel_q399.mspx
+http://www.microsoft.com/office/sharepoint/prodinfo/upgrade.mspx
+http://www.microsoft.com/office/using/column06.asp
+http://www.microsoft.com/office/xml/response.mspx
+http://www.microsoft.com/presspass/events/svspeaker/06-09msr.mspx
+http://www.microsoft.com/presspass/exec/Jim/10-27pdc03.asp
+http://www.microsoft.com/presspass/exec/jeff/07-12WWPC04.mspx
+http://www.microsoft.com/presspass/exec/steve/2001/03-28GovtConf.mspx
+http://www.microsoft.com/presspass/features/2000/03-10xbox.mspx
+http://www.microsoft.com/presspass/features/2001/nov01/11-05trustedcomputing.mspx
+http://www.microsoft.com/presspass/features/2003/jul03/07-24GetNetWise.mspx
+http://www.microsoft.com/presspass/features/2004/Jan04/01-07OfficeMac.asp
+http://www.microsoft.com/presspass/press/2003/jul03/07-24RTCBetterFasterPR.asp
+http://www.microsoft.com/presspass/press/2004/jul04/07-06Champions04PR.mspx
+http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=11940
+http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=13082
+http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=13541
+http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=14116
+http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=14597
+http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=15471
+http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=16032
+http://www.microsoft.com/resources/casestudies/casestudy.asp?CaseStudyID=15731
+http://www.microsoft.com/resources/casestudies/casestudy.asp?casestudyid=13408
+http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/prepare_for_the_upgrade_of_a_mixed_or_Win2000_domain.asp
+http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/sag_mscscheck_22.asp
+http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/upgrading_a_mixed_domain.asp
+http://www.microsoft.com/resources/documentation/sql/2000/all/reskit/en-us/part8/c3061.mspx
+http://www.microsoft.com/resources/documentation/windows/98/all/reskit/en-us/part5/wrkc27.mspx
+http://www.microsoft.com/resources/documentation/windowsnt/4/server/proddocs/en-us/clustsvr/mscsadm2.mspx
+http://www.microsoft.com/resources/sharedsource/Articles/LicensingBasics.mspx
+http://www.microsoft.com/security/articles/spam.asp
+http://www.microsoft.com/smallbusiness/issues/management/leadership_training/8_ways_to_show_speaking_skills_in_a_meeting.mspx
+http://www.microsoft.com/smallbusiness/issues/management/leadership_training/sit_up_straight_and_keep_your_wrists_in_neutral.mspx
+http://www.microsoft.com/smallbusiness/issues/management/recruiting_staffing/new_rules_on_overtime_pay_how_they_could_affect_you.mspx
+http://www.microsoft.com/smallbusiness/issues/marketing/customer_service_acquisition/how_to_write_an_effective_sales_letter_11_tips.mspx
+http://www.microsoft.com/smallbusiness/issues/marketing/online_marketing/5_reasons_to_track_web_site_traffic.mspx
+http://www.microsoft.com/smallbusiness/issues/technology/communications/how_to_host_a_successful_b2b_webcast.mspx
+http://www.microsoft.com/smallbusiness/online/search-engine-optimization/submit-it/articles/right_tool_com_finds_the_right_tool_in_search_engines.mspx
+http://www.microsoft.com/smallbusiness/resources/technology/broadband_mobility/wi_fi_on_the_road_4_tips_for_hitting_hotspots.mspx
+http://www.microsoft.com/smallbusiness/resources/technology/communications/the_email_you_save_can_be_held_against_you.mspx
+http://www.microsoft.com/smallbusiness/support/articles/sec_win2000pro_p2p.mspx
+http://www.microsoft.com/speech/businessvalue/news/earlyAdopters.asp
+http://www.microsoft.com/technet/community/columns/cableguy/cg0103.mspx
+http://www.microsoft.com/technet/community/columns/secmgmt/default.mspx
+http://www.microsoft.com/technet/community/columns/secmgmt/sm0704.mspx
+http://www.microsoft.com/technet/itsolutions/cits/dsd/enterprise/zertpd_17.mspx
+http://www.microsoft.com/technet/itsolutions/cits/iwp/ricm/tninput.mspx
+http://www.microsoft.com/technet/itsolutions/msit/security/msirsec.mspx
+http://www.microsoft.com/technet/prodtechnol/netshow/deploy/distret.mspx
+http://www.microsoft.com/technet/prodtechnol/office/officexp/deploy/xpdeploy.mspx
+http://www.microsoft.com/technet/prodtechnol/sscomm/reskit/ssriskpr.mspx
+http://www.microsoft.com/technet/prodtechnol/windows2000serv/deploy/confeat/kerberos.mspx
+http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/sharepoint/spoffint.mspx
+http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/xpmanaged/02_xpact.mspx
+http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/xpmanaged/10_xphyp.mspx
+http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/xpmanaged/22_xprem.mspx
+http://www.microsoft.com/technet/scriptcenter/resources/officetips/jun05/tips0621.mspx
+http://www.microsoft.com/technet/scriptcenter/topics/win2003/lastlogon.mspx
+http://www.microsoft.com/technet/security/bulletin/MS01-028.mspx
+http://www.microsoft.com/technet/security/bulletin/MS03-026.mspx
+http://www.microsoft.com/technet/security/bulletin/MS04-011.mspx
+http://www.microsoft.com/technet/security/smallbusiness/prodtech/windows2000/sec_win2000pro_p2p.mspx
+http://www.microsoft.com/technet/security/topics/identitymanagement/smrtcdcb/default.mspx
+http://www.microsoft.com/typography/otfntdev/bengalot/shaping.htm
+http://www.microsoft.com/typography/otfntdev/devanot/shaping.htm
+http://www.microsoft.com/typography/otfntdev/gujartot/shaping.htm
+http://www.microsoft.com/typography/otfntdev/gurmukot/shaping.htm
+http://www.microsoft.com/typography/otfntdev/kanadot/shaping.htm
+http://www.microsoft.com/typography/otfntdev/teluguot/shaping.htm
+http://www.microsoft.com/uk/businesssolutions/resources/casestudies/comicrelief_gp.aspx
+http://www.microsoft.com/windows/windowsmedia/forpros/hdcd/hdcdfaq.aspx
+http://www.microsoft.com/windows/windowsmedia/knowledgecenter/mediaadvice.aspx
+http://www.microsoft.com/windows/windowsmedia/knowledgecenter/mediaadvice/0044.aspx
+http://www.microsoft.com/windows/windowsmedia/mp10/onlinestores.aspx
+http://www.microsoft.com/windows/windowsmedia/music/default.aspx
+http://www.microsoft.com/windows2000/server/evaluation/casestudies/jdedwards.asp
+http://www.microsoft.com/windows2000/techinfo/interop/unix.asp
+http://www.microsoft.com/windows2000/techinfo/planning/activedirectory/bulksteps.asp
+http://www.microsoft.com/windowsmobile/communities/pocketpc/localclubs/finding.mspx
+http://www.microsoft.com/windowsmobile/communities/smartphone/localclubs/finding.mspx
+http://www.microsoft.com/windowsserversystem/facts/default.mspx
+http://www.microsoft.com/windowsxp/expertzone/meetexperts/default.mspx
+http://www.microsoft.com/windowsxp/mediacenter/evaluation/privacy/epgprivacy.mspx
+http://www.microsoft.com/windowsxp/pro/eula.mspx
+http://www.microsoft.com/windowsxp/using/digitalphotography/expert/crawford_04photoblog.mspx
+http://www.microsoft.com/windowsxp/using/games/learnmore/gamerkids.mspx
+http://www.microsoft.com/windowsxp/using/games/learnmore/gifts.mspx
+http://www.microsoft.com/windowsxp/using/mce/learnmore/recordedtv.mspx
+http://www.microsoft.com/windowsxp/using/moviemaker/expert/jones_02november25.mspx
+http://www.microsoft.com/windowsxp/using/networking/expert/ballew_feb2005.mspx
+http://www.microsoft.com/windowsxp/using/networking/learnmore/russel_02april08.mspx
+http://www.microsoundmusic.com/clynes/WSJ_art.htm
+http://www.microsphere.com/supportpage.htm
+http://www.microstrategy.com/Customers/Successes/uk/bankofscotland.asp
+http://www.microtunneling.com/
+http://www.microworks.net/pacific/personal/bill_paull2.htm
+http://www.mid-day.com/smd/eat/2003/february/44957.htm
+http://www.midcitiesmortgage.com/faq/faq04.html
+http://www.midcoast.com/~lizmcl/aa865.html
+http://www.midcoast.com/~michael1/charts.htm
+http://www.middle-east-online.com/english/?id=13843
+http://www.middle-east-online.com/english/lebanon/?id=13635
+http://www.middle-east-online.com/english/opinion/?id=12671
+http://www.middle-east-online.com/english/opinion/?id=13843
+http://www.middlebrook-gardens.com/understandinghome.htm
+http://www.middleeastnews.com/SriLanka.html
+http://www.middleeastwindow.com/article1175.html
+http://www.middleforkofthesalmon.com/
+http://www.middlesexcentre.on.ca/committees/adjustment_meetings/03_11_20.htm
+http://www.middletownbiblechurch.org/dispensa/dispch1.htm
+http://www.middletownbiblechurch.org/romans/romans12.htm
+http://www.middlevillage.com/html/join/prices.html
+http://www.middlevillage.com/html/join/proposal.html
+http://www.middlevillage.com/html/living/points.html
+http://www.middlewaypress.com/peace.html
+http://www.middleweb.com/1stDResources.html
+http://www.middleweb.com/Prinstandrd.html
+http://www.middleweb.com/ReadWrkshp/JK42.html
+http://www.middleweb.com/ReadWrkshp/JK64.html
+http://www.middleweb.com/mw/msdiaries/02-03wklydiaries/CT01.html
+http://www.middleweb.com/mw/resources/MSModel.html
+http://www.mideasti.org/indepth/islam/schools.html
+http://www.mideastinfo.com/roadtrip.htm
+http://www.mideastweb.org/194.htm
+http://www.mideastweb.org/log/archives/00000138.htm
+http://www.midgard.net/~richardt/easy.html
+http://www.midhosp.org/go/F3EC6076-E7D2-9CFE-20F199F50F37F8A8/
+http://www.midi.org/about-midi/aboutmidi3.shtml
+http://www.midnight-fire.net/shadows/whatrests.html
+http://www.midnighteye.com/features/silentfilm_pt2.shtml
+http://www.midrealm.org/heraldry/education/primary.htm
+http://www.midtenrelics.com/blades.htm
+http://www.midvalecity.org/P&Z/P%20%20Z%2010-11-00%20MEETING.htm
+http://www.midweek.com/coverstory/coverstory.html
+http://www.midwest-itc.org/index.php/web/news/mitc_news/october_15_2004
+http://www.midwestacademy.com/Account/Account1.html
+http://www.midwestoutreach.org/02-Information/02-OnlineReference/04-Etc/01-TheJournal/Volume5/No4-EnduringMonumentToPaganOrigins.html
+http://www.midwestoutreach.org/journals/once_upon.html
+http://www.midwesttechjournal.com/modules.php?name=News&new_topic=14
+http://www.midwestvisioncongress.com/App/main.cfm?appname=190&moduleID=330&LinkID=16385&Date=05/14/2005
+http://www.midwiferytoday.com/articles/hummous.asp
+http://www.midwiferytoday.com/articles/qq61.asp?q=breastfeed*
+http://www.midwinter.com/lurk/guide/006.html
+http://www.midwinter.com/lurk/guide/067.html
+http://www.midwinter.com/lurk/guide/068.html
+http://www.midwinter.com/lurk/making/production.html
+http://www.midwinter.com/lurk/synops/105.html
+http://www.mier.sr.gov.yu/code/navigate.asp?Id=26
+http://www.mifsudbonnici.com/lexnet/articles/pilrecog.html
+http://www.miftah.org/Display.cfm?DocId=4406&CategoryId=21
+http://www.migrationheritage.nsw.gov.au/gettingmarried/rema_fadle.html
+http://www.migrationinformation.org/Feature/display.cfm?ID=209
+http://www.migrationinformation.org/Feature/display.cfm?id=220
+http://www.migrationinformation.org/Feature/display.cfm?id=276
+http://www.migrationinformation.org/Profiles/display.cfm?ID=156
+http://www.migrationinformation.org/USfocus/display.cfm?ID=149
+http://www.migrationinformation.org/USfocus/display.cfm?ID=160
+http://www.migrationinformation.org/USfocus/display.cfm?id=100
+http://www.migrationinformation.org/USfocus/display.cfm?id=149
+http://www.migrationinformation.org/USfocus/print.cfm?ID=160
+http://www.migrationint.com.au/news/czech_republic/mar_1996-01mn.asp
+http://www.migrationint.com.au/news/finland/oct_1996-11.asp
+http://www.migrationint.com.au/ruralnews/budapest/oct_1997-20rmn.asp
+http://www.mihivnews.com/features/they_care.htm
+http://www.mihr.org/?q=taxonomy_menu/1/2
+http://www.mihra.org/2k/
+http://www.mii.org/periodic/LifeElement.html
+http://www.mii.org/teachercom.html
+http://www.mijag.com/
+http://www.mike-mcintyre.com/about_meet_mike.html
+http://www.mikebentley.com/bike/harry/22-24.htm
+http://www.mikebrownsolutions.com/gain3.htm
+http://www.mikeco31.com/Stories/chief.html
+http://www.mikedoyle.ca/climbing/visualization.shtml
+http://www.mikeholt.com/misc.php?id=unformatted/union&type=u&title=Union%20IBEW%20(2-10-2K)
+http://www.mikeindustries.com/blog/archive/2004/05/getting-started-in-design
+http://www.mikeindustries.com/blog/archive/2004/08/sifr
+http://www.mikeindustries.com/blog/archive/2004/09/sifr2-kick-the-tires
+http://www.mikejackman.com/secure_healthcare_messaging.htm
+http://www.mikementzer.com/hdchap1.html
+http://www.mikementzer.com/quotes.html
+http://www.mikes-ecommerce-software.com/ecommerce-forum/redirect/137129
+http://www.mikewilliams.net/home.htm
+http://www.mikey-san.net/damage/index_2003-05-22.html
+http://www.mikulich.com/shroba_stech_02.htm
+http://www.mil.za/Articles&Papers/DefenceReview/chapter_one.htm
+http://www.milehighsportsmagazine.com/jobopportunities.htm
+http://www.milepoint.biz/press/news.asp?news_id=072803
+http://www.milepoint.biz/terms/
+http://www.miles-and-more.com/mam/de/en/gnf/0,3678,0-0-1112459,00.html
+http://www.milescc.edu/ps_technical.html
+http://www.mileshealthcare.org/miles_ways_help/dev.htm
+http://www.milford.co.uk/hotels/stratford-upon-avon-grosvenor-hotel.html
+http://www.militantislammonitor.org/article/id/34
+http://www.military-art.com/
+http://www.military-art.com/dhm1008.htm
+http://www.military-quotes.com/Churchill.htm
+http://www.military-quotes.com/forum/viewtopic.php?t=8147
+http://www.military-quotes.com/military-gear.htm
+http://www.military.com/Education/Content/0,13302,Education_Ask4,00.html
+http://www.military.com/NewContent/0,13190,FreedomAlliance_Index,00.html
+http://www.military.com/NewContent/0,13190,Galloway_010704,00.html
+http://www.military.com/NewContent/0,13190,Galloway_032403,00.html
+http://www.military.com/NewContent/0,13190,Galloway_071803,00.html
+http://www.military.com/NewContent/0,13190,Smith_051905,00.html
+http://www.military.com/NewContent/0,13190,Smith_Index,00.html
+http://www.military.com/Recruiting/Content/0,13898,rec_step02_benefits,,00.html
+http://www.military.com/Recruiting/Content?file=Joining_Index&area=Content
+http://www.military.com/Resources/ResourcesContent/0,13964,32676--1,00.html
+http://www.military.com/Resources/ResourcesContent/0,13964,34092--1,00.html
+http://www.military.com/spouse/fs/0,,fs_child_care,00.html
+http://www.military.ie/careers/armycond.htm
+http://www.military.ie/naval/roles.htm
+http://www.militaryblood.dod.mil/press_kit/releases.htm
+http://www.militarycity.com/valor/256561.html
+http://www.militarycity.com/valor/256727.html
+http://www.militaryhistoryonline.com/wwii/armies/chapter7.aspx
+http://www.militaryhorse.org/studies/artillery/yule.asp
+http://www.militaryhorse.org/studies/mcclellan/whiting_modification.asp
+http://www.militarymarksmanship.org/worldcup.htm
+http://www.militarymoney.com/money/1076684101
+http://www.militarymoney.com/money/1109358625
+http://www.militarymoney.com/success/1101919692
+http://www.militarynews.com/wheel/wheel_news.htm
+http://www.militarywoman.org/other.htm
+http://www.militaryworkingdog.com/history/
+http://www.millardlumber.com/HowTo/vwindow/vinwin.htm
+http://www.miller-insurance.com/specialist_areas/Programmes_and_facilities/Professional_lines.asp
+http://www.miller.co.uk/news_list.asp?division=construction
+http://www.millerfornewyork.com/issues/
+http://www.millerinsurance.co.uk/Specialist_areas/Programmes_and_facilities/Professional_lines.asp
+http://www.millerparking.com/APPLICATIONS.HTM
+http://www.millerpublishing.com/Publications.asp
+http://www.millersmiles.co.uk/press-release-031604.html
+http://www.millersoap.com/castile.html
+http://www.millersoap.com/soapproc.html
+http://www.millersriver.net/mrec/history.html
+http://www.millerthomson.ca/issue.asp?NL=19&Year=2003&Season=9
+http://www.millerthomson.com/mtweb.nsf/Web_Practice_Area_Display_en?ReadForm&Area=mtte6a993m
+http://www.millicentlibrary.org/hhr-dab.htm
+http://www.milliecriswell.com/staying_single.html
+http://www.millimanusa.com/washington_watch/congress.asp
+http://www.millionairetv.com/walkinandwin.html
+http://www.millsaps.edu/psych/psychclub.shtml
+http://www.millstones.com/46_48/
+http://www.millwall-history.co.uk/Origins-6.htm
+http://www.millwall-history.co.uk/Pre-Season2.htm
+http://www.millwoodssoccer.com/
+http://www.milma.com/trcmpu.html
+http://www.milonic.com/
+http://www.milta.org/Newsletters/June.htm
+http://www.milta.org/Newsletters/Newsltr_2003Special.html
+http://www.miltonvillage.org.uk/php/bin/readarticle.php?articlecode=file:pc200111.html&papercode=1
+http://www.milwaukeestingvb.org/PolandJournal.asp
+http://www.mimersbrunn.se/doc_print.asp?aID=3567
+http://www.minarsas.demon.co.uk/harn/lynnfana/chargen.htm
+http://www.mind-body.org/Barry%20Bittman%20-%20feeling-good.htm
+http://www.mind-field.com/mi00005.htm
+http://www.mind.org.uk/Information/Conference+and+training/AC2005/Parallel+sessions+-+Group+2.htm
+http://www.mindandmuscle.net/content/page-281.html
+http://www.mindandmuscle.net/content/page-300.html
+http://www.mindandmuscle.net/content/page-48.html
+http://www.mindanews.com/2005/06/25vws-ilagan.ht.html
+http://www.mindbodymed.com/Books_and_Tapes/ihealer.html
+http://www.mindbodymed.com/Journaling/hjournalweb.html
+http://www.mindcontrolforums.com/pro-freedom.co.uk/mmc_tf.html
+http://www.mindcraft.com/whitepapers/openbench1-ph12.html
+http://www.mindef.gov.sg/fsd/scme/scmeinfohub_papers.asp
+http://www.mindef.gov.sg/safti/pointer/back/journals/2000/Vol26_1/3.htm
+http://www.mindfields.org.uk/Workshops.html
+http://www.mindfiresolutions.com/Casestudies.htm
+http://www.mindfully.org/Farm/2003/Everything-Is-Illegal1esp03.htm
+http://www.mindfully.org/Food/Organic-Industrial-Complex.htm
+http://www.mindfully.org/GE/Playing-God-Garden.htm
+http://www.mindfully.org/GE/RR-Soybeans-Yield-Less.htm
+http://www.mindfully.org/Health/2003/Cancer-Rates-15M3apr03.htm
+http://www.mindfully.org/Heritage/2004/Strip-Mine-Bush26jan04.htm
+http://www.mindfully.org/Nucs/2004/Hanford-Lack-Safety20feb04.htm
+http://www.mindfully.org/Pesticide/More-GMOs-Less-Pesticide.htm
+http://www.mindfully.org/Pesticide/Warren-Porter-Interviewed13nov01.htm
+http://www.mindfully.org/Plastic/Better-Science-Through-Money.htm
+http://www.mindfully.org/Reform/2003/Americas-War-Machine13apr03.htm
+http://www.mindfully.org/Reform/2003/Sharon-Remove-Arafat26sep03.htm
+http://www.mindfully.org/Reform/2004/Homeless-Street-Seminar1apr04.htm
+http://www.mindfully.org/Technology/2005/Microwave-Wake-Up1mar05.htm
+http://www.mindfully.org/Water/Coca-Cola-Water-Battle-India13aug02.htm
+http://www.mindgap.org/index.php
+http://www.mindjack.com/feature/evoting.html
+http://www.mindlesscrap.com/jokes/oldjokes1.htm
+http://www.mindnmuscle.com/
+http://www.mindpub.com/art402.htm
+http://www.mindsay.com/tags/pissed
+http://www.mindsay.com/tags/songs
+http://www.mindscience.org/news/
+http://www.mindspace.org/liberation-news-service/archives/000661.html
+http://www.mindspring.com/~chucksaudio/
+http://www.mindspring.com/~jmcgiv/jun0501.html
+http://www.mindspring.com/~kimall/Japanese/particles.html
+http://www.mindspring.com/~kimall/Reviews/walkingpeople.html
+http://www.mindspring.com/~phporter/econ.html
+http://www.mindspring.com/~scottr/nde/_ketamine.html
+http://www.mindspring.com/~spacklebeast/querytosale/klaststand.html
+http://www.mindspring.com/~ssshp/ssshp_cd/ss_btl3.htm
+http://www.mindtools.com/CommSkll/RunningMeetings.htm
+http://www.mindtools.com/cgi-bin/sgx2/shop.cgi?page=MakeTimeForSuccess-LSC.htm
+http://www.mindtools.com/dectree.html
+http://www.mindtools.com/goalsett.html
+http://www.mindtools.com/page6.html
+http://www.mindtools.com/pages/article/HTEReviews.htm
+http://www.mindtools.com/pages/article/newPPM_03.htm
+http://www.mindtools.com/pages/article/newPPM_05.htm
+http://www.mindtools.com/pages/article/newTCS_06.htm
+http://www.mindtools.com/pages/article/newTED_08.htm
+http://www.mindtools.com/pages/article/newTIM_04.htm
+http://www.mindtools.com/pmi.html
+http://www.mindtools.com/rdstratg.html
+http://www.mindtools.com/redpstv.html
+http://www.mindtools.com/stress/PerformanceStress/ThoughtAwareness.htm
+http://www.mindtools.com/stress/UnderstandStress/StressPerformance.htm
+http://www.mindtree.com/news/view_news.phtml?nid=68
+http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
+http://www.mindview.net/Seminars/ObjectsAndSystems/
+http://www.mindview.net/Seminars/ThinkingInJava/Java.html
+http://www.mindview.net/WebLog/log-0048
+http://www.mindweavers.co.uk/main.asp?sitepages=NewsCompany
+http://www.minedu.fi/minedu/news/pr/loka99.htm
+http://www.minedu.govt.nz/index.cfm?indexID=1108&layout=index
+http://www.minedu.govt.nz/index.cfm?layout=document&documentid=5172&indexid=1042&indexparentid=1108
+http://www.minedu.govt.nz/index.cfm?layout=document&documentid=6135&indexid=1072&indexparentid=1000
+http://www.minedu.govt.nz/index.cfm?layout=document&documentid=6917&indexid=4289&indexparentid=1004
+http://www.minedu.govt.nz/index.cfm?layout=document&documentid=8411&data=l
+http://www.minedu.govt.nz/index.cfm?layout=document&documentid=8411&indexid=6088&indexparentid=1000
+http://www.minedu.govt.nz/index.cfm?layout=document&documentid=8699&indexid=5451&indexparentid=5437
+http://www.minedu.govt.nz/index.cfm?layout=document&documentid=9208&indexid=6664&indexparentid=6663
+http://www.minedu.govt.nz/print_doc.cfm?documentid=8411
+http://www.minerals.nsw.gov.au/prodServices/publications/titles/exploration/strategyMiningDevelopmentCentralWest/land_access_and_community_relations
+http://www.mines.edu/Academic/computer/policies/software.htm
+http://www.mines.edu/Academic/courses/math_cs/macs261/LABS/F03/lab5.html
+http://www.mines.edu/Academic/courses/math_cs/macs261/LABS/SP03/lab5.html
+http://www.mines.edu/Academic/courses/math_cs/macs261/LABS/SP04/lab5.html
+http://www.mines.edu/stu_life/house/ResHallsFAQ.html
+http://www.mines.utah.edu/~wmcemi/appls/sbl/
+http://www.minesandcommunities.org/Action/press347.htm
+http://www.minesandcommunities.org/Action/press377.htm
+http://www.minesandcommunities.org/Company/inco2.htm
+http://www.minesandcommunities.org/Company/rio6.htm
+http://www.minfin.nl/default.asp?CMS_ITEM=A9525A72A5AC486E9A11975877E03761X1X43778X23
+http://www.mini-itx.com/projects/windowsxpbox/
+http://www.mini2.com/forum/showthread.php?t=83145&goto=newpost
+http://www.miniaturewargaming.com/index.php/P1010/
+http://www.miniaturewargaming.com/index.php/mwg/C19/
+http://www.miniaturewargaming.com/index.php/mwg/C49/
+http://www.miniaturewargaming.com/index.php/mwg/C50/
+http://www.mining-technology.com/exhibitions/
+http://www.mining.ca/english/publications/london.html
+http://www.miningweekly.co.za/min/about/advertise/?show=68811
+http://www.miningweekly.co.za/min/about/tip/?show=68811
+http://www.miningweekly.co.za/min/features/information/?show=56564
+http://www.ministry-exchanges.org/scotland.htm
+http://www.ministryhealth.net/mh_articles/231_kg_85_character_disorders.html
+http://www.ministryofsound.com.au/news_ctemplate.cfm?page_id=15537305117011010&se_id=110
+http://www.ministryofsound.com.au/news_ctemplate.cfm?page_id=42021554117011010&se_id=110
+http://www.minitruckinweb.com/tech/0209mt_tech/
+http://www.minjungkim.com/
+http://www.minjungkim.com/?p=2675
+http://www.minke.tv/trips/jj002.html
+http://www.minnbankers.com/i4a/pages/index.cfm?pageid=3335
+http://www.minneapolisparks.org/default.asp?PageID=815
+http://www.minnesotarugby.org/template.php?sid=35
+http://www.minnewaukan.com/Econ_Dev.htm
+http://www.minniepauz.com/dearminnie.html
+http://www.minorcon.org/parentsdontchange.html
+http://www.minortheatres.com/
+http://www.minsky.com/sharpaper.htm
+http://www.mint-tea.blogspot.com/
+http://www.mintchaos.com/archives/2003_02.shtml
+http://www.minted.am/en/natural.html
+http://www.minted.am/en/tour_program.html
+http://www.mintergardens.com/Newsletter%20March.htm
+http://www.mio.co.za/article.php?cat=software_reviews&id=231
+http://www.miox.com/tech_form/tech_form.cfm
+http://www.mipham.com/talk.php?id=14
+http://www.mipharm.com/annual/Saturday.htm
+http://www.mir3europe.com/submitters/detail.asp?type=article.asp&submitterID=98
+http://www.mira.ca/contenta/s1a.html
+http://www.mirabilis.ca/archives/cat_science.html
+http://www.miracosta.cc.ca.us/conted/esl/ESLcivics/LearnESLandCivics.htm
+http://www.miraculouscreations.com/pages/main.shtml
+http://www.miramar.sdccd.cc.ca.us/faculty/fgarces/ChemComon/Testphobia.htm
+http://www.mirandanet.ac.uk/news/letter_display.php?recnoField=26
+http://www.mirc.net/projects.php?go=1063381627
+http://www.mirc.net/projects.php?go=1063381627&thread=3882&view=3882&quote=1
+http://www.mirej.com/story.cfm?Market=CIP&StoryID=13101
+http://www.mirella-dance.com/tutu/issue_1.html
+http://www.mironov.ru/english/publications.phtml?id=6312
+http://www.mironov.ru/english/publications.phtml?id=6419
+http://www.mironov.ru/english/publications.phtml?id=6500
+http://www.mironov.ru/english/publications.phtml?id=6639
+http://www.mironov.ru/english/publications.phtml?id=7411
+http://www.mironov.ru/english/publications.phtml?id=8045
+http://www.mirror-weekly.com/nn/show/436/38029/
+http://www.mirror.co.uk/
+http://www.mirror.co.uk/haveyoursay/tm_objectid=15414669&method=m2_msg_full&siteid=94762&start=381-name_page.html
+http://www.mirror.co.uk/news/allnews/content_objectid=14042696_method=full_siteid=50143_headline=-MY-HELL-IN-CAMP-X-RAY-name_page.html
+http://www.mirror.co.uk/news/allnews/page.cfm?objectid=%2013112330&method=full&siteid=50143
+http://www.mirror.co.uk/news/allnews/page.cfm?objectid=12783733&method=full&siteid=50143
+http://www.mirror.co.uk/news/allnews/tm_objectid=14923511&method=full&siteid=50143&headline=blunkett-s-fear-as-visa-scandal-threatens-job-name_page.html
+http://www.mirror.co.uk/news/billborrows/tm_column_date=21052005-name_index.html
+http://www.mirror.co.uk/news/fiona/tm_column_date=18062005-name_index.html
+http://www.mirror.co.uk/news/kevinmaguire/
+http://www.mirror.co.uk/news/latest/tm_objectid=15634909&method=full&siteid=94762&headline=partygaming-ipo-to-raise-1-1-bln-pounds-as-poker-booms-name_page.html
+http://www.mirror.co.uk/sexandhealth/sexandrelationships/tm_objectid=14366484&method=full&siteid=94762&headline=i-lost-5-stone---but-it-cost-me-my-boyfriend--name_page.html
+http://www.mirror.co.uk/sport/readeonsport/tm_column_date=18102003-name_index.html
+http://www.mirror.co.uk/tvandfilm/shelleyvision/
+http://www.mirroreyes.com/smallbiz/makemoney/hyip.html
+http://www.mirrorx2.com/Non_frames/articles_hom.html
+http://www.misc-iecm.mcgill.ca/socdem/richar.htm
+http://www.miscmedia.com/3-29-00.html
+http://www.miscojobs.com/employers/resumes/L_2/rsm_14824.htm
+http://www.miscojobs.com/employers/resumes/L_3/C_6/rsm_13776.htm
+http://www.miseagrant.org/pubs/on/msg-99-500.html
+http://www.miserlymoms.com/MOMSHCS.htm
+http://www.mises.org/classroom/lse.asp
+http://www.mises.org/content/huttbio.asp
+http://www.mises.org/epofe/c6sec1.asp
+http://www.mises.org/etexts/johnprincesmith.asp
+http://www.mises.org/fipandol/fipsec2.asp
+http://www.mises.org/freemarket_detail.asp?control=120&sortorder=articledate
+http://www.mises.org/freemarket_detail.asp?control=63
+http://www.mises.org/fullstory.asp?control=1385
+http://www.mises.org/fullstory.asp?control=362&FS=State+Science%2C+State+Truth
+http://www.mises.org/fullstory.aspx?control=1385&id=76
+http://www.mises.org/fullstory.aspx?control=1385&id=77
+http://www.mises.org/humanaction/chap16sec15.asp
+http://www.mises.org/humanaction/chap18sec3.asp
+http://www.mises.org/humanaction/chap26sec1.asp
+http://www.mises.org/humanaction/chap29sec3.asp
+http://www.mises.org/humanaction/chap9sec2.asp
+http://www.mises.org/journals/fm/fm1295.asp
+http://www.mises.org/misesreview_detail.asp?control=238&sortorder=issue
+http://www.mises.org/quiz.asp?QuizID=5
+http://www.miskatonic.net/pickman/mythos/sign.htm
+http://www.miskatonic.org/history/burton-gordon.html
+http://www.miskatonic.org/library/book-numbers.html
+http://www.misq.org/archivist/vol/no10/issue1/vol10no1mason.html
+http://www.missbellydance.com/
+http://www.missing-you.net/Adoptions.php?startnum=7520
+http://www.missionalchurch.org/resources/transforming.html
+http://www.missionfrontiers.org/1994/0910/so9413.htm
+http://www.missionhonduras.com/
+http://www.missiontogether.org.uk/MT/MT14/MT14_TN_Pg2.htm
+http://www.mississippi.org/programs/energy/schools_institutions.htm
+http://www.missoulian.com/articles/2004/01/28/news/top/news01.txt
+http://www.missoulian.com/bonus/progress03/progress07.html
+http://www.missoulian.com/bonus/progress03/progress23.html
+http://www.missoulian.com/specials/fallfromgrace/mon1.html
+http://www.missouri.edu/~jourvs/raracemf.html
+http://www.missouri.edu/~jourvs/rtcodes.html
+http://www.missourianonline.com/features/2005/spring/0120.php
+http://www.missouribusiness.net/docs/strategies_customers_coming_back.asp
+http://www.missouribusiness.net/irs/Indexing/e-idxacc.html
+http://www.missouridems.org/
+http://www.missourigameandfish.com/hunting/bowhunting-hunting/mo_aa123202a/
+http://www.missourilife.com/home019.shtml
+http://www.missworld.tv/beautyWithAPurpose/charities.sps?iType=6910&icustompageid=11590
+http://www.misterart.com/store/browse/001/cat_id/112/Art-Supplies-Easels--Furniture--Tables--Drawing-Boards.htm
+http://www.misterfixit.com/camsensr.htm
+http://www.misticriver.net/boards/archive/index.php/t-1940.html
+http://www.mit.com.au/business_605_%20IT_Contract_Management.htm
+http://www.mit.edu/people/jcb/jokes/
+http://www.mit.edu/~mkgray/index.3.html
+http://www.mit.edu/~vona/bass/bass.html
+http://www.mit.edu:8001/people/davis/EncycEnv.html
+http://www.mit.edu:8001/people/rei/Ki.html
+http://www.mitaliperkins.com/youngadultbooks.htm
+http://www.mitchamcouncil.sa.gov.au/site/page.cfm?u=123
+http://www.mitchamcouncil.sa.gov.au/site/page.cfm?u=415
+http://www.mitchamcouncil.sa.gov.au/site/page.cfm?u=419
+http://www.mitchellchefitz.com/about-press.htm
+http://www.mithertongue.co.uk/faq.shtml
+http://www.mithertongue.co.uk/lang02.shtml
+http://www.miti.gov.mt/site/page.aspx?pageid=182
+http://www.mitratech.com/solutions/claims_features.php
+http://www.mitre.org/news/digest/defense_intelligence/03_03/di_jefx02.html
+http://www.mitre.org/news/events/tech02/decision_support.html
+http://www.mitre.org/news/the_edge/july_01/wieland.html
+http://www.mitre.org/news/the_edge/march_97/third.html
+http://www.mitsui.com/about_compliance.shtml
+http://www.miva.com/uk/index.asp
+http://www.mja.com.au/public/issues/181_03_020804/har10700_fm.html
+http://www.mja.com.au/public/issues/may5/kaldor/kaldor.html
+http://www.mja.com.au/public/issues/sep21/kamien/kamien.html
+http://www.mjbabybibs.com/links.cfm
+http://www.mjbovo.com/Healing.htm
+http://www.mjni.com/support/articlesdetail.aspx?articleID=10
+http://www.mjq.net/fiveo/5-0log7.htm
+http://www.mkeever.com/sweden.html
+http://www.mkeever.com/thailand.html
+http://www.mklinux.org/articles/sr990529.html
+http://www.mkprojects.com/fa_PsychicAttacks.htm
+http://www.mkr-group.com/epmed/epmed_ir.php
+http://www.mkssoftware.com/docs/man1/pax.1.asp
+http://www.mkssoftware.com/docs/man5/perlfork.5.asp
+http://www.mkweb.co.uk/futurecmk/DisplayArticle.asp?ID=19781
+http://www.mla.gov.uk/information/advice/conserv13.asp
+http://www.mla.org/ade/bulletin/N078/078024.htm
+http://www.mla.org/ade/bulletin/n111/111004.htm
+http://www.mlaforum.org/volumeII/issue1/InternationalBib.html
+http://www.mlahanas.de/Greeks/Greeks.htm
+http://www.mlanet.org/about/history/w_draper.html
+http://www.mlanet.org/publications/style/style_names_terms.html
+http://www.mldirect.ml.com/publish/public/note.asp
+http://www.mlit.go.jp/crd/daisei/daikan/hosin-6_e.html
+http://www.mlj.com.my/free/articles/hardial.htm
+http://www.mlj.com.my/free/articles/rizal&zuhdi2.htm
+http://www.mljewish.org/cgi-bin/retrieve.cgi?VOLUME=2&NUMBER=35&FORMAT=html
+http://www.mlkonline.net/holiday.html
+http://www.mlmknowhow.com/articles/marketing/7habitsless.htm
+http://www.mlmlegal.com/MLMsoftware/internet_sales.html
+http://www.mlmwoman.com/issue99.htm
+http://www.mln.lib.ma.us/info/mtida.htm
+http://www.mlrapcb.net/olivepolicy.html
+http://www.mlsnet.com/MLS/news/mls_news.jsp?ymd=20050308&content_id=23670&vkey=news_mls&fext=.jsp
+http://www.mlui.org/growthmanagement/fullarticle.asp?fileid=16773
+http://www.mlui.org/growthmanagement/fullarticle.asp?fileid=16779
+http://www.mlui.org/growthmanagement/fullarticle.asp?fileid=16783
+http://www.mlui.org/growthmanagement/fullarticle.asp?fileid=16785
+http://www.mlui.org/pageview.asp?fileid=16630
+http://www.mlui.org/pageview.asp?fileid=16810
+http://www.mlui.org/pageview.asp?fileid=16843
+http://www.mlui.org/pubs/glb/glb12-00/glb12-03.html
+http://www.mmaa-modelairplanes.org/swap.htm
+http://www.mmaonline.net/publications/MNMed2004/March/Pulse.html
+http://www.mmbb.org/dictionary/index.cfm?letter=s
+http://www.mmc.com/views2/98spr.marino.shtml
+http://www.mmc.com/views2/McCaw20040225.php
+http://www.mmc.com/views2/Rothschild200404.php
+http://www.mmc.com/views2/SLong20040319.php
+http://www.mmc.com/views2/autumn03Weissel.php
+http://www.mmcrecordings.com/artist.asp?id=565
+http://www.mme.state.va.us/Dmr/PUB/Brochures/quake.html
+http://www.mmfa.qc.ca/en/activites/enseignants/activites_25.html
+http://www.mmh.com/article/CA484836.html
+http://www.mmh.com/article/CA606598.html
+http://www.mmhc-online.com/articles/male_infertility.html
+http://www.mml.cam.ac.uk/courses/part2/criteria.html
+http://www.mml.cam.ac.uk/ital2000/CD/eval.html
+http://www.mmpi-info.com/medea.html
+http://www.mmpia.mb.ca/eia.html
+http://www.mms.gov/glossary/wa-we.htm
+http://www.mms.gov/ooc/testimony/con_rqst.htm
+http://www.mmsonline.com/articles/029706.html
+http://www.mmsonline.com/articles/049605.html
+http://www.mmsonline.com/articles/059801.html
+http://www.mmsonline.com/articles/0998cnc.html
+http://www.mmsonline.com/articles/110301.html
+http://www.mmsonline.com/articles/moi0306.html
+http://www.mnaidsproject.org/
+http://www.mnartists.org/community/thread.jspa?forumID=32&threadID=469&messageID=12433
+http://www.mnartists.org/community/thread.jspa?forumID=32&threadID=469&start=75&tstart=0
+http://www.mnartists.org/resourceList.do?action=view&rid=61552
+http://www.mnav.com/online.htm
+http://www.mncn.org/bp/pov2003.htm
+http://www.mndaily.com/articles/2003/10/03/6811
+http://www.mndaily.com/articles/2004/04/19/9316
+http://www.mndaily.com/articles/2004/09/13/10139
+http://www.mndaily.com/daily/2000/10/26/editorial_opinions/e1026/
+http://www.mndaily.com/daily/2001/01/18/news/new6/
+http://www.mndnsw.asn.au/htmdocs/textVersion/history.htm
+http://www.mnea.org/publications/sb/sb_storytelling.htm
+http://www.mnemo.qc.ca/html2/97(11)a.html
+http://www.mnforsustain.org/australia_sustainable_population_policy.htm
+http://www.mninter.net/~babaloo/blue2.htm
+http://www.mnisose.org/profiles/lwrbrule.htm
+http://www.mnllp.com/EEnivfamily.html
+http://www.mnnursing.org/resource/practicalnursing.html
+http://www.mnr.org.uk/about/history.html
+http://www.mnseedpotato.org/extension/VPG.htm
+http://www.mnstate.edu/gracyk/courses/phil%20110/110definitions.htm
+http://www.mnstate.edu/hendrix/wellness/policies.cfm
+http://www.mnsu.edu/weather/218labs/glossary/glossary_m.html
+http://www.moaa.org/TodaysOfficer/FinancialCenter/CollegeFinances_1.asp
+http://www.moaa.org/magazine/June2003/f_tricare.asp
+http://www.moaa.org/todaysofficer/include/print.asp?page=/TodaysOfficer/FinancialCenter/CollegeFinances_1.asp
+http://www.moarkkeyclub.org/history.html
+http://www.mobar.org/journal/2000/mayjun/taxes.htm
+http://www.mobar.org/lpmonline/email.htm
+http://www.mobikefed.org/2004_11_01_cyclingtipsarchive.html
+http://www.mobile-review.com/tetatet/siemens/pauly-en.shtml
+http://www.mobiledia.com/glossary/180.html
+http://www.mobiledia.com/glossary/252.html
+http://www.mobilegamefaqs.com/gansgon.php?id=15
+http://www.mobileread.com/forums/showthread.php?goto=lastpost&t=1260
+http://www.mobileread.com/forums/showthread.php?t=1260&page=7&pp=15
+http://www.mobiletechreview.com/games/PSP/hot-shots-golf.htm
+http://www.mobiletechreview.com/tips/Treo_650_cases.htm
+http://www.mobileunderground.com/soundproviders/
+http://www.mobot.org/MOBOT/Research/russia/appen1.shtml
+http://www.mobot.org/jwcross/duckweed/practical_duckweed.htm
+http://www.mobot.org/mobot/archives/about.asp
+http://www.mocha.org/teachertrainingparented/
+http://www.mod.uk/consultations/reservists1.htm
+http://www.mod.uk/dlo/
+http://www.mod.uk/dlo/catering/bus_support/
+http://www.mod.uk/dpa/news/pn2004/jul04/watchkeeper_prog.htm
+http://www.mod.uk/dpa/projects/apache.htm
+http://www.mod.uk/issues/afops/chapter1/challenges.htm
+http://www.mod.uk/issues/cooperation/multinational.htm
+http://www.mod.uk/issues/diversification/diversification_gp.htm
+http://www.mod.uk/issues/policy2001/priorities.htm
+http://www.mod.uk/issues/sdr/new_chapter/reserves/
+http://www.mod.uk/issues/sdr/new_chapter/reserves/glance.htm
+http://www.mod.uk/issues/security/cm6269/cgs.htm
+http://www.mod.uk/publications/performance2003/chap4.htm
+http://www.mod.uk/schools/facts/hisfacts.html
+http://www.modculture.co.uk/modlinks/links.php?action=rated
+http://www.modculture.co.uk/shag/
+http://www.modelaviatorsassociation.fsnet.co.uk/Graupner%20Junior%20Sport%20Plus.htm
+http://www.modelboatmayhem.co.uk/Modellers/John_Richardson/EGRETE.htm
+http://www.modelminority.com/article417.html
+http://www.modelminority.com/article554.html
+http://www.modelshipbuilding.com/militaryswords.htm
+http://www.modelshipmaster.com/
+http://www.modemac.com/cliches.html
+http://www.modemsite.com/56k/x2-tech.asp
+http://www.moderateindependent.com/v1i16debate.htm
+http://www.moderateindependent.com/v1i5wmdwatch.htm
+http://www.modern-woodmen.org/PubRel/MemberBenefits/Scholarships.htm
+http://www.moderncreative.com/services/event_management_fundraisers.asp
+http://www.modernism.com/prod_gen.cfm?srow1=30&load=1001
+http://www.modernmicroscopy.com/main.asp?article=27
+http://www.modernmicroscopy.com/main.asp?article=31&print=true&pix=true
+http://www.modernmountaindulcimer.com/schedule.html
+http://www.modernmuslima.com/hijabstyles.htm
+http://www.modernreformation.org/rc01pelagian.htm
+http://www.modernrocklyrics.com/F/falloutboy_takethistoyourgrave.php
+http://www.modernrocklyrics.com/F/flickerstick_welcomehometheastronauts.html
+http://www.modernrocklyrics.com/F/futureheads_futureheads.php
+http://www.modernrocklyrics.com/N/neworder_getready.html
+http://www.modernrocklyrics.com/O/oasis_dontbelievethetruth.php
+http://www.modernsilver.com/chicagosilver.htm
+http://www.modlangs.gatech.edu/student_resources/registration/
+http://www.modrepro.com/pages/issues/2003/303/feature.shtml
+http://www.modthesims2.com/showthread.php?t=42014
+http://www.modularschools.com/faq.html
+http://www.modus-operandi.co.uk/portal/character.asp?TOPIC_ID=217
+http://www.moe.gov.sg/speeches/2003/sp20030308.htm
+http://www.moe.gov.sg/speeches/2003/sp20030913.htm
+http://www.moe.gov.sg/speeches/2004/sp20040605.htm
+http://www.moe.gov.sg/speeches/2004/sp20041109.htm
+http://www.moeacgs.gov.tw/english/twgeol/twgeol_generalgeol.jsp
+http://www.moellendorf.com/index.phtml?ow_page_number=120
+http://www.moeller.net/en/industry/references_applications/automation/reference010.jsp
+http://www.mof.go.jp/english/bonds/minutes/010920e.htm
+http://www.mof.go.jp/english/budget/brief/2003/2003-12.htm
+http://www.mof.go.jp/english/budget/brief/2004/2004e_02.htm
+http://www.mof.go.jp/english/f_review/fr47e.htm
+http://www.mof.go.jp/english/mf_review/321_03.htm
+http://www.mof.gov.cy/mof/cystat/statistics.nsf/sitemap_en/sitemap_en?OpenDocument
+http://www.mofa.go.jp/announce/press/1995/12/1219.html
+http://www.mofa.go.jp/announce/press/1995/3/307.html
+http://www.mofa.go.jp/announce/press/1996/6/621.html
+http://www.mofa.go.jp/announce/press/1997/6/629.html
+http://www.mofa.go.jp/announce/press/1998/1/120.html
+http://www.mofa.go.jp/announce/press/1998/10/1013.html
+http://www.mofa.go.jp/announce/press/1998/4/403.html
+http://www.mofa.go.jp/announce/press/1998/5/522.html
+http://www.mofa.go.jp/announce/press/1998/6/605.html
+http://www.mofa.go.jp/announce/press/1998/9/922.html
+http://www.mofa.go.jp/announce/press/1999/1/122.html
+http://www.mofa.go.jp/announce/press/1999/1/126.html
+http://www.mofa.go.jp/announce/press/1999/4/406.html
+http://www.mofa.go.jp/announce/press/1999/5/525.html
+http://www.mofa.go.jp/announce/press/2005/3/0329.html
+http://www.mofa.go.jp/announce/press/2005/4/0408.html
+http://www.mofa.go.jp/policy/economy/asem/aeyls/1997/economics.html
+http://www.mofa.go.jp/policy/economy/summit/2004/press.html
+http://www.mofa.go.jp/policy/human/women_rep4/part2_2.html
+http://www.mofa.go.jp/policy/human/women_rep5/part2_4.html
+http://www.mofa.go.jp/region/asia-paci/asean/pmv9812/briefing.html
+http://www.mofa.go.jp/region/europe/france/
+http://www.mofa.go.jp/region/middle_e/afghanistan/asg4.html
+http://www.mofa.go.jp/region/middle_e/peaceprocess/measure0211.html
+http://www.mofa.gov.mm/speeches/bimst.html
+http://www.mofa.gov.mm/speeches/speech7.html
+http://www.mofabd.org/statements/fm14.htm
+http://www.mofga.org/mofctrees.htm
+http://www.mofga.org/mofgs04k.html
+http://www.mofosports.net/news/ducks/1099477625.html
+http://www.mofoster.com/stories/studiotales.html
+http://www.mofunzone.com/cheatsandcodes/pc/suffering.html
+http://www.moggies.co.uk/articles/feb2005/136_cats.html
+http://www.moggies.co.uk/html/pethealth.html
+http://www.moh.govt.nz/foodborne.html
+http://www.moh.govt.nz/moh.nsf/wpg_index/About-moh-chiefadvisors
+http://www.moh.govt.nz/pho
+http://www.mohistory.org/content/fair/wf/html/Educators/page3.html
+http://www.mohmatch.com/
+http://www.mojolures.com/testimonials.php
+http://www.mokuula.com/news/mauinews_010609b.shtml
+http://www.moldea.com/GHodgson.html
+http://www.moles.co.uk/group/history.ihtml
+http://www.molgen.ua.ac.be/bioinfo/novosnp/downloads.html
+http://www.molliekatzen.com/harvard.php
+http://www.molly.com/
+http://www.molly.com/2003/11/
+http://www.molly.com/2005/06/14/the-geekiest-thing-youve-ever-done/
+http://www.mollybrownmuseum.com/molly-history.html
+http://www.mollybrownmuseum.com/molly-history2.html
+http://www.mollyivins.com/showArticle.asp?ArticleID=1790
+http://www.molrca.com/buy-sell/buy&sell.htm
+http://www.molteno.com/technical.html
+http://www.molwick.com/memint.en/am0-364-fitness.html
+http://www.molwick.com/memint.en/am0-420-memorymanager.html
+http://www.mom2momlist.com/articles/arch/64.shtml
+http://www.momentum.co.nz/index.php?currentPage=74
+http://www.mommd.com/babyduringmedsc.shtml
+http://www.mommyandme.com/activities/viewActivity.php?momentID=2
+http://www.mommyneedscoffee.com/index.php/weblog/comments/680/
+http://www.mommysavers.com/moneywise/make_staying_home_a_reality.htm
+http://www.momof9splace.com/sapphira.html
+http://www.momonwheels.com/sbla/donkey/dk94feb.html
+http://www.momsonthemove.tv/BuildingBaby'sBrain.htm
+http://www.momsteam.com/alpha/features/nutrition/eating_behaviors_and_patterns.shtml
+http://www.momsteam.com/alpha/features/sports_girl_talk/daughter_wants_play_boys_team.shtml
+http://www.momsview.com/discus/messages/23/13275.html
+http://www.momsview.com/sierratradingpost.shtml
+http://www.momsworkathomesite.com/go/go.php/BSchott
+http://www.momtomomchat.com/articles/dyslexia.html
+http://www.mona.uwi.edu/carimac/ATsp.html
+http://www.monachos.net/patristics/palamas_theology.shtml
+http://www.monadnock.net/stories/ralph.html
+http://www.monafoundation.org/newsletters/
+http://www.monaghan-outdoors.com/
+http://www.monarchist.ca/menu/updates.html
+http://www.monarchwatch.org/class/studproj/mass.htm
+http://www.monarchwatch.org/read/articles/canmon3.htm
+http://www.monash.edu.au/policy/pgemc.htm
+http://www.monash.edu.au/pubs/calendar/regulations/regulations14.html
+http://www.monash.edu.au/pubs/handbooks/units/index-byName-L.html
+http://www.monash.edu.au/pubs/move/making.html
+http://www.monash.edu.au/pubs/parents/application.html
+http://www.monbiot.com/archives/1994/11/23/the-scattering-of-the-dead/
+http://www.monbiot.com/archives/1996/01/01/seize-it-back/
+http://www.monbiot.com/archives/2000/06/09/choose-life/
+http://www.monbiot.com/archives/2000/10/01/interview-with-labour-left-briefing/
+http://www.monbiot.com/archives/2002/03/10/private-affluence-public-rip-off/
+http://www.monbiot.com/archives/2002/11/26/see-you-in-court/
+http://www.monbiot.com/archives/2003/06/09/how-to-stop-america/
+http://www.monbiot.com/archives/2004/08/19/correspondence-with-david-bellamy/
+http://www.monbiot.com/archives/2005/01/04/killing-vs-helping/
+http://www.monbiot.com/archives/category/static/
+http://www.mondaq.com/article.asp?articleid=32445&hotopic=1
+http://www.mondaymemo.net/021202feature.htm
+http://www.mondialogo.org/mo/site/?key=2.1.1&lang=en
+http://www.mondopolitico.com/discus/messages/13/1700.html?1089363737
+http://www.mondopolitico.com/library/socialcredit/appendix.htm
+http://www.money-at-home.com/director.htm
+http://www.moneycontrol.com/backends/News/frontend/news_detail.php?autono=160046
+http://www.moneycontrol.com/mf/mfsspeak/detail.php
+http://www.moneyexpert.com/default.asp?view=glossary&p=t
+http://www.moneyextra.com/faqs/morfaq1.html
+http://www.moneyextra.com/features/011748.features.html
+http://www.moneyfacts.co.uk/access_guide.asp
+http://www.moneyfacts.co.uk/features/185.asp
+http://www.moneygram.com/servlet/DefaultApplyXSL?xslURL=/Display/temgweb.xsl&URL=/Document/p2_2__PressReleases.xml
+http://www.moneymaking-home-business.com/homefamily1.htm
+http://www.moneymax.co.za/articles/displayarticle.asp?articleID=298405
+http://www.moneymax.co.za/articles/displayarticle.asp?articleID=325454
+http://www.moneysense.ca/investing/stocks_markets/columnist.jsp?content=20030811_083658_4116
+http://www.moneysupermarket.com/ISA/GuideToIsas.asp
+http://www.moneysupermarket.com/savings/GuideToSavings.asp
+http://www.moneytree.com/privacy.htm
+http://www.moneyweb.co.za/people/profiles/407764.htm
+http://www.mongabay.com/external/2005/01_20h-economist.html
+http://www.mongolia-challenge.com/main_pages/news.asp
+http://www.mongoosepublishing.com/home/detail.php?id_currency=USD%09%09%09%09%09&qsID=90&qsSeries=4%09%09%09%09%09%20%20
+http://www.monikie.org.uk/famhistory.htm
+http://www.monitor.net/rachel/r248.html
+http://www.monitor.upeace.org/archive.cfm?id_article=194
+http://www.monitortan.com/mt/archives/2004_02.html
+http://www.monitortan.com/mt/archives/2005_01.html
+http://www.monklands.com/boardconnector.php?action=viewthread&mid=2079
+http://www.monksofadoration.org/bcp/bcp3.html
+http://www.monmouth.army.mil/monmessg/newmonmsg/sep192003/m38renita.htm
+http://www.monochrom.at/cracked/reviews/Rev%20kiritchenko.htm
+http://www.monolithic.com/thedome/bio/
+http://www.monologues.co.uk/Baskets.htm
+http://www.monroe.k12.la.us/mcs/hot_list/holidays.html
+http://www.monroecc.edu/depts/pstc/vidinsrv.htm
+http://www.monroecrossing.com/ltglyrics.php
+http://www.monsanto.com/monsanto/layout/media/04/06-21-04.asp
+http://www.monsoonmag.com/fiction/i3fic_naqvi.html
+http://www.monstergamer.net/vb/showthread.php?t=3023&page=2
+http://www.monstermarketplace.com/PapasanChairsPapasanCushions/Product/165/Listing/AdditionalShippingCharge/272/26/250/1
+http://www.monstermoving.monster.com/
+http://www.monstersinmotion.com/catalog/product_info.php/products_id/7312
+http://www.monsterzine.com/200301/mummy.php
+http://www.montac.com/mtb/controls.htm
+http://www.montaguema.net/faqs.cfm?faq_type_ID=6
+http://www.montana-churches.org/resources/index.asp
+http://www.montana.com/stafford/treadmill.html
+http://www.montana.edu/msse/2003%20Capstone%20Projects.htm
+http://www.montana.edu/wwwcxair/facts_co.html
+http://www.montana.edu/wwwpb/pubs/mt200202.html
+http://www.montanaforum.com/
+http://www.montanagreenpower.com/greenpower/
+http://www.montanapets.org/pawhs/residentdog.html
+http://www.montanasat.net/rickv/Hermas_Anger.html
+http://www.montclair.edu/parking/updates.html
+http://www.montecitowater.com/Min0520.html
+http://www.monterey.org/fire/news/valor.html
+http://www.montereybay.com/creagrus/elkhornslough.html
+http://www.montereybay.com/creagrus/otherfam.html
+http://www.montereybeachresort.com/events.html
+http://www.montereybiz.com/calendar_july2005.php
+http://www.montereycountyweekly.com/issues/Issue.03-11-04/news/Article.news1
+http://www.montereyherald.com/mld/montereyherald/10766684.htm
+http://www.montereyherald.com/mld/montereyherald/2005/01/29/news/10766684.htm
+http://www.montereymushrooms.com/customer_energy.asp
+http://www.montessori-ami.org/4people/4bmariala1925.htm
+http://www.montevallo.edu/faculty/Policies/04001.shtm
+http://www.montevallo.edu/personnel/Staff/Handbook/Section2.shtm
+http://www.montevallo.edu/undergrad/cmusic.shtm
+http://www.montezucker.com/content.html?page=8
+http://www.montgomeryarc.org/Disaster%20Services/AFES.htm
+http://www.montgomeryarc.org/disaster_response.htm
+http://www.montgomerycountymd.gov/Apps/News/press/DisplayInfo.cfm?ItemID=1215
+http://www.montgomerycountymd.gov/apps/dpwt/solidwaste/collectionservices/material_detail.asp?categoryID=19
+http://www.montgomerycountymd.gov/content/dpwt/operations/parking/FAQ/CashKey.asp
+http://www.montgomerycountytn.org/county/sheriff/DVSA_WEB_SITE/DVSA_Who_we_are.htm
+http://www.monthlyreview.org/0102petras2.htm
+http://www.monticellotimes.com/main.asp?SectionID=23&SubSectionID=89&ArticleID=306&TM=8438.786
+http://www.montrealabcf.org/hayes/updateoct02/
+http://www.montrealfood.com/
+http://www.montrealserai.com/2001_Volume_14/14_3/Article_2.htm
+http://www.montrealserai.com/2002_Volume_15/15_3/Article_2.htm
+http://www.montykins.com/mkins/000578.html
+http://www.moodstats.com/pages/support.asp
+http://www.moomilk.com/archive/bailey-08.htm
+http://www.moomilk.com/archive/nutrition-21.htm
+http://www.moomilk.com/archive/outlook_46.htm
+http://www.moonlight-chronicles.com/
+http://www.moonshop.com/
+http://www.moonwashedrose.com/honeymine/nativity.html
+http://www.moonwhisper.com/meditation.html
+http://www.moore.org/about_bios_content.asp?Name=staff_gordonandbettym
+http://www.mooreallen.co.uk/agriculture/mid-term-review-update.htm
+http://www.moorecoffee.com/french/legal.html
+http://www.moorecoffee.com/tea/legal.html
+http://www.mooreexposed.com/swm.html
+http://www.moorewatch.com/
+http://www.moorhouses.co.uk/history.html
+http://www.moorishgirl.com/archives/2004_04.html
+http://www.moorlandschool.co.uk/earth/earth_science_page.htm
+http://www.mooseandsquirrel.net/
+http://www.moosehill.com/kafka/window-glass.html
+http://www.mooseintl.org/public/moosemagazine/augsepoct04/moose/moosemag_feature5.htm
+http://www.mooseyscountrygarden.com/garden-journal-03/garden-journal-2003-late-june.html
+http://www.moosh.net/mush/List/penn.shtml
+http://www.mope.gov.np/population/chapter8.php
+http://www.mopie.com/blog/2003_12_01_backintheday
+http://www.moraldefense.com/initium/02-01-03.htm
+http://www.moravian.org/products/other.html
+http://www.more-gifts.co.uk/cgi-bin/price.cgi?price=125
+http://www.morecambefc.com/juniorcup.htm
+http://www.morefireglass.com/auction.php
+http://www.morelandhills.com/historical.html
+http://www.moremobile.co.uk/mobile-phone-news/article.asp?a=206
+http://www.moremusic.co.uk/links/sell.htm
+http://www.morencyrest.com/scope2.htm
+http://www.moresoftmoneyhardlaw.com/articles/20040419a.cfm
+http://www.morettiglas.20fr.com/
+http://www.morgan.edu/phonedir/
+http://www.morgan.edu/phonedir/Phnebook.asp
+http://www.morganhorse.org.uk/tacksale.shtml
+http://www.morganstanley.com/GEFdata/digests/20020718-thu.html
+http://www.morganstanley.com/GEFdata/digests/20021105-tue.html
+http://www.morganstanley.com/GEFdata/digests/20050224-thu.html
+http://www.morganstanley.com/GEFdata/digests/20050425-mon.html
+http://www.morganstanleyindividual.com/customerservice/dictionary/Default.asp?letter=B
+http://www.morgue.demon.co.uk/Pages/Other_stuff/ARMY.HTM
+http://www.moria.co.nz/sf/bank.htm
+http://www.moriapoetry.com/ahearn.html
+http://www.moriel.org/articles/discernment/church_issues/analysis_of_purpose_driven_life.htm
+http://www.morino.org/advan_sp_new.asp
+http://www.morningnewsbeat.com/archives/2003/05/08.html
+http://www.morningred.com/friend/2002/05/idiosyncratica.html
+http://www.morningsidekick.com/2004-best-of-old/2004-best-of-01.htm
+http://www.moroccotimes.com/paper/article.asp?idr=2&id=7562
+http://www.morrice.info/walk/dean.html
+http://www.morrisdailyherald.com/main.asp?SectionID=1&SubSectionID=58&ArticleID=12778&TM=54345.38
+http://www.morrispost.com/races.htm
+http://www.mortgage101.com/Articles/LoanPrograms.asp?ArticleID=1020&p=mtg101
+http://www.mortgageit.com/About/PrivacyAndSecurity.aspx
+http://www.mortgagenewsdaily.com/3182005_Mortgage_Foreclosures.asp
+http://www.mortgagenewsdaily.com/6152005_Reverse_Mortgages_Info.asp
+http://www.morticiasmorgue.com/tish/mt/archive/000183.html
+http://www.morticiasmorgue.com/tish/mt/archive/000248.html
+http://www.morton-hotels.com/newton/weddings.html
+http://www.mos.com.np/services/webspace.html
+http://www.mos.org/doc/1600
+http://www.mosaec.com/mosaec/film/film_lisafrance.htm
+http://www.mosaiclife.com/2004_12_01_archives.php
+http://www.mosaicmatters.co.uk/features/vanessabenson.htm
+http://www.mosaicmatters.co.uk/questions/adhesive_queries.htm
+http://www.mosessinger.com/articles/files/eltonjohn.htm
+http://www.moskowitz-inc.com/events/shorttalks.html
+http://www.mosley-electronics.com/commercial.htm
+http://www.mosnews.com/feature/2004/04/12/police.shtml
+http://www.mosnews.com/money/2004/06/21/howmuch.shtml
+http://www.mosnews.com/money/2004/10/05/mobilecasinos.shtml
+http://www.mosnews.com/news/2004/12/28/policeschools_.shtml
+http://www.mosnews.com/news/2005/04/05/spaceprices.shtml
+http://www.mosquitoes.org/FISHPAGE.html
+http://www.most.gov.cn/English/Programs/key_RD/menu.htm
+http://www.mostateparks.com/twainsite/map.htm
+http://www.mostateparks.com/unionbridge/map.htm
+http://www.mostlybrightideas.com/dealers.html
+http://www.mostmerciful.com/history-2.htm
+http://www.mote.org/~mhenry/WREDTIDE.phtml
+http://www.motheratwork.co.uk/Childcare/0502education.asp
+http://www.motheratwork.co.uk/Finance/
+http://www.motherearth.org/lakenheathaction/
+http://www.mothering.com/articles/growing_child/discipline/take_a_bath.html
+http://www.mothering.com/articles/growing_child/food/green_horizons.html
+http://www.mothering.com/articles/new_baby/diapers/diaper-dance.html
+http://www.motherjones.com/commentary/columns/1993/01/ivins.html
+http://www.motherjones.com/commentary/columns/2002/10/we_177_01.html
+http://www.motherjones.com/commentary/columns/2004/05/04_200.html
+http://www.motherjones.com/commentary/columns/2005/06/FMLA.html
+http://www.motherjones.com/commentary/columns/2005/06/the_chauffeurs_dilemma.html
+http://www.motherjones.com/letters/2005/06/06_300.html
+http://www.motherjones.com/news/dailymojo/2004/11/10_503.html
+http://www.motherjones.com/news/feature/1992/09/bushboys.html
+http://www.motherjones.com/news/feature/1993/05/sesser.html
+http://www.motherjones.com/news/feature/1993/07/rodriguez.schrieberg.html
+http://www.motherjones.com/news/feature/2003/03/ma_273_01.html
+http://www.motherjones.com/news/feature/2003/03/ma_311_01.html
+http://www.motherjones.com/news/feature/2004/11/10_401.html
+http://www.motherjones.com/news/outfront/2003/09/ma_505_01.html
+http://www.motherjones.com/news/outfront/2004/01/12_400.html
+http://www.motherjones.com/news/qa/2000/03/jackson.html
+http://www.motherjones.com/news/qa/2005/04/bradley_martin.html
+http://www.motherjones.com/search/category_economy.html
+http://www.mothernature.com/Library/Bookshelf/Books/10/75.cfm
+http://www.mothernature.com/Library/Bookshelf/Books/16/208.cfm
+http://www.mothernature.com/Library/Bookshelf/Books/16/228.cfm
+http://www.mothernature.com/Library/Bookshelf/Books/19/3.cfm
+http://www.mothernature.com/Library/Bookshelf/Books/44/68.cfm
+http://www.mothernature.com/Library/Bookshelf/Books/46/13.cfm
+http://www.mothersbliss.co.uk/planning/illness.asp
+http://www.motivateus.com/
+http://www.motivation.org.uk/_get_involved/individuals.html
+http://www.motorbikestoday.com/features/Articles/2004_review.htm
+http://www.motorcraft.com/products.asp?T=2&M=15&PageID=74
+http://www.motorcyclegearreview.com/reviews.php?prodID=2
+http://www.motorcyclejournal.net/articles/Bike_Review/Colin%20Edwards/article.html
+http://www.motorhomemagazine.com/cforum/index.cfm/fuseaction/thread/tid/14901500.cfm
+http://www.motoring.co.za/index.php?fArticleId=2402324
+http://www.motoring.co.za/index.php?fArticleId=2402324&fSectionId=942&fSetId=381
+http://www.motoringfile.com/
+http://www.motoringfile.com/2005/05/04/minis_2006_color_changes
+http://www.motorists.com/ma/kill.html
+http://www.motorola.com/mediacenter/news/detail/0,,5662_5646_23,00.html
+http://www.motorspeed.com/multimedia_nav.html
+http://www.motorsport.com/news/article.asp?ID=142689&FS=NASCAR
+http://www.motorsports-network.com/honda/2005mc/crf450X.htm
+http://www.motto.com/glossary.html
+http://www.moultonlabs.com/gold.htm
+http://www.mountain-images.co.uk/scottish_highlands_gallery.htm
+http://www.mountain-plains.org/research/2000proj/ndsu/MPC-201.php
+http://www.mountain-portal.co.uk/text/Berne_meeting.html
+http://www.mountain-portal.co.uk/text/mallory.html
+http://www.mountainartcenter.org/dance.htm
+http://www.mountainastrologer.com/planettracks/hand/hand.html
+http://www.mountainastrologer.com/planettracks/recall.html
+http://www.mountainastrologer.com/plumb600.html
+http://www.mountainbike.com/community/article/1,4823,4102_621,00.html
+http://www.mountainman.com.au/yorta.html
+http://www.mountainroseherbs.com/specials/specials.php
+http://www.mountaintimes.com/community/environmental.php3
+http://www.mountaintop.be/index.php?tempDateOfEntry=200403010240
+http://www.mountainvoices.org/i_th_environment.asp
+http://www.mountainvoices.org/m_th_health.asp
+http://www.mountainvoices.org/p_th_traditional_skills.asp
+http://www.mountainzone.ir/News/newsarchive1.htm
+http://www.mountauburn.caregroup.org/library/healthguide/en-us/support/topic.asp?hwid=tx4097abc
+http://www.mounteverest.net/story/BestofExplorersWeb2004AwardsEverestCentralNorthWallDec262004.shtml
+http://www.mounteverest.net/story/stories/ExWebEverestDebriefRussianCentralNorthWallJul222004.shtml
+http://www.mounthorebwi.info/newvoterform.htm
+http://www.mountmorgan.com/dArcy.html
+http://www.mountsnow.com/summer/re_faq.html
+http://www.mousesavers.com/dlresorts.html
+http://www.mouthshut.com/review/Dealing_with_Fear-64763-1.html
+http://www.mouthshut.com/review/Nachlai_-_Harbhajan_Maan-66769-1.html
+http://www.mouthstick.net/desk/carrturn.htm
+http://www.mouthulcers.org/intro.html
+http://www.mouthulcers.org/mucositis.html
+http://www.mouthulcers.org/regdupre.html
+http://www.mouthulcers.org/richardthomas.html
+http://www.mouthulcers.org/stevenpohlhaus.html
+http://www.mouthulcers.org/thisworks.html
+http://www.mouton-noir.org/writings/thesis/ch1/transition1.html
+http://www.move.com.au/disc.cfm/3266
+http://www.moveamericaforward.com/index.php/DailyFile/
+http://www.moveamericaforward.org/index.php/DailyFile/
+http://www.moveamericaforward.org/index.php/DailyFile/2004/08/
+http://www.moveandstay.com/milan/guide_airport_information.asp
+http://www.moveleft.com/moveleft_essay_2004_05_09_if_bush_were_truly_sorry_about_the_prisoners_in_iraq.asp
+http://www.movementasnetwork.org/
+http://www.movementdisorders.org/europeansection/recentactivities.shtml
+http://www.moveon.org/gore-speech.html
+http://www.mover.net/cam/content/TipsEn.html
+http://www.movermax.com/overseas_packing_guide.asp
+http://www.movie-gazette.com/cinereviews/672
+http://www.movie-gazette.com/cinereviews/978
+http://www.movie-trains.com/obrother.html
+http://www.moviecitynews.com/columnists/poland/
+http://www.moviecitynews.com/columnists/poland/2005/050421.html
+http://www.moviediva.com/MD_root/reviewpages/MDWomen.htm
+http://www.moviefreak.com/dvd/combo05.htm
+http://www.moviemaker.com/hop/vol4/05/digital.html
+http://www.moviemaker.com/hop/vol4/05/directing.html
+http://www.moviemaker.com/issues/36/36_kimberly.html
+http://www.moviemaker.com/issues/53/htdi.html
+http://www.moviemarshal.com/comment16-19-dec-04.html
+http://www.moviemartyr.com/2001/ghostworldmyfirstmister.htm
+http://www.moviemistakes.com/film3246
+http://www.moviemistakes.com/film3861
+http://www.moviemistakes.com/questions_generic.php
+http://www.moviemistakes.com/tv2651/pictures
+http://www.movienet.com/capturingfriedmans.html
+http://www.movienet.com/stationagent.html
+http://www.movienet.com/walkonwater.html
+http://www.moviepoopshoot.com/news/jun05/18.html
+http://www.moviepoopshoot.com/old/story4.html
+http://www.moviesforme.ca/detail.asp?product_ID=2403
+http://www.moviesonline.ca/movienews_2382.html
+http://www.moviesunlimited.com/musite/product.asp?sku=277703++
+http://www.moviesunlimited.com/musite/product.asp?sku=796519++
+http://www.moviesunlimited.com/musite/product.asp?sku=D11122++
+http://www.moviesunlimited.com/musite/product.asp?sku=D17496++
+http://www.moviesunlimited.com/musite/product.asp?sku=D37860++
+http://www.movietickets.com/default.asp
+http://www.moviewavs.com/Movies/O_Brother_Where_Art_Thou.shtml
+http://www.moving-company-guide.com/
+http://www.moving-to-france-made-easy.com/preparing-for-the-move-to-france.html
+http://www.moving.org/before/cmcstate.asp
+http://www.movinghands.net/nac/nov04index.asp
+http://www.movinghands.net/nac/okt04index.asp
+http://www.movinghere.org.uk/galleries/histories/caribbean/growing_up/growing_up.htm
+http://www.movinghere.org.uk/help/glossary.htm
+http://www.movinghere.org.uk/stories/story254/story254.htm?identifier=stories/story254/story254.htm&ProjectNo=9
+http://www.movingideas.org/content/en/on_the_hill/2005_sou.htm
+http://www.movingimages.ca/catalogue/Individual/Individual_h.html
+http://www.movingimages.ca/catalogue/Individual/Individual_l.html
+http://www.movingimages.ca/catalogue/Individual/Individual_s.html
+http://www.movingon.org/article.asp?sID=1&Cat=16&ID=839
+http://www.movingon.org/article.asp?sID=8&Cat=19&ID=1281
+http://www.movingthegoalposts.org/archives/000084.html
+http://www.movingturtle.com/
+http://www.movingvision.co.uk/html/people.htm
+http://www.moxon.net/india/james_bond_in_india.html
+http://www.moytura.com/lackagh.htm
+http://www.moytura.com/reflections/TinyFoot.html
+http://www.mozilla.org/docs/xul/xulnotes/xulnote_beasts.html
+http://www.mozilla.org/hacking/coding-introduction.html
+http://www.mozilla.org/products/firefox/releases/1.0.4.html
+http://www.mozilla.org/projects/firefox/qa/changelog-rc1.html
+http://www.mozilla.org/projects/firefox/qa/downloads.html
+http://www.mozilla.org/projects/security/pki/nss/ref/ssl/sslerr.html
+http://www.mozilla.org/releases/mozilla1.6b/known-issues-int.html
+http://www.mozilla.org/releases/mozilla1.7/README.html
+http://www.mozilla.org/releases/mozilla1.7rc2/README.html
+http://www.mozilla.org/support/firefox/faq
+http://www.mozilla.org/support/thunderbird/faq
+http://www.mozillaquest.com/Mozilla_News_02/Mozilla_1-0-0_preview-browser_Story01.html
+http://www.mp-marine.com/systems.html
+http://www.mp3.com/albums/10649067/summary.html
+http://www.mp3.com/albums/196338/summary.html
+http://www.mp3.com/albums/263621/summary.html
+http://www.mp3.com/h%C3%BCsker-d%C3%BC/artists/3864/biography.html
+http://www.mpa.gov.uk/about/recruitment/eodirectoranddep.htm
+http://www.mpaa.org/MPAAPress/2003/2003_09_17b.htm
+http://www.mpaa.org/legislation/press/96/96_8_16.htm
+http://www.mpcc-cppm.gc.ca/300/319/e_e.html
+http://www.mpcc-cppm.gc.ca/300/319/f_e.html
+http://www.mpdigest.com/Articles/Oct2001/CST/Default.htm
+http://www.mpegable.com/e5/converter/
+http://www.mpegable.com/e5/encode/
+http://www.mpegable.com/e5/videomp4/
+http://www.mpi-hd.mpg.de/be/tsr/ecool_sys_low.html
+http://www.mpi.mb.ca/english/claims/appeals/rab.html
+http://www.mpiweb.org/chapters/chapters/chaplead-issue5.asp
+http://www.mpiweb.org/resources/jobs/view_record.asp?record_ID=3529
+http://www.mplayerhq.hu/homepage/design7/news.html
+http://www.mplcommunications.com/mccartney/paul_news.asp
+http://www.mpnmag.com/mpn_show/seminars2004.htm
+http://www.mpogd.com/reviews/?ID=1557
+http://www.mpopc.org.my/abtefu1.htm
+http://www.mposth.com/freeread.html
+http://www.mpp.org/WA/bills_759.html
+http://www.mprize.org/
+http://www.mps.com/newsevents/PressReleases/042304.asp
+http://www.mpsc839.org/_Pegboard/Pegboard_h/_PB_2004/PB200410.HTM
+http://www.mpt.org/motorweek/longterm/armada04.shtml
+http://www.mptrader.com/marketshistory.php?id=235
+http://www.mrbass.org/dvdshrink/
+http://www.mrbellersneighborhood.com/story.php?storyid=1466
+http://www.mrbellersneighborhood.com/story.php?storyid=1501
+http://www.mrbellersneighborhood.com/story.php?storyid=1519
+http://www.mrbrown.com/blog/2004/10/is_the_new_musi.html
+http://www.mrc-cbu.cam.ac.uk/amodeus/cp.html
+http://www.mrc.ac.uk/index/public-interest/public-news_centre/public-press_office/public-press_releases_2003/public-25_march_2003.htm
+http://www.mrc.ac.uk/index/publications/publications-annual_reports/publications-annual_reports-2/publications-annual_report_2002/publications-annual_report_2002_support_for_research.htm
+http://www.mrc.ac.za/capeheart/highlights.htm
+http://www.mrc.org/BozellColumns/entertainmentcolumn/2004/col20041222.asp
+http://www.mrc.org/cyberalerts/2002/cyb20020923.asp
+http://www.mrc.org/cyberalerts/2003/cyb20030421.asp
+http://www.mrc.org/printer/cyberalerts/2003/cyb20030421pf.asp
+http://www.mrc.org/projects/mww/mww0303.asp
+http://www.mrc.org/projects/mww/welcome.asp
+http://www.mrc.state.va.us/cfn497.htm
+http://www.mrc.state.va.us/swr/swr1_00.htm
+http://www.mrc.state.va.us/vswft/vsft1.htm
+http://www.mrcltd.org.au/included_files/comment6.cfm
+http://www.mrcoldcall.com/SuccessfulPayment3.html
+http://www.mrcoldcall.com/SuccessfulPayment4.html
+http://www.mrcophth.com/mrcophth2experience/34candidatesmrcophthpart2.html
+http://www.mrd.gov.fj/gfiji/mining/prospect/guidesmp.html
+http://www.mrdbridges.com/hennepin.php
+http://www.mrexcel.com/weightloss.shtml
+http://www.mrfa.org/vnstats.htm
+http://www.mrfs.net/trips/1998/France_and_Belgium/Paris_3/Paris_3.html
+http://www.mrltc.com/interviews-mr-long-term-care.html
+http://www.mrltc.com/ltc-articles-redlining-data.html
+http://www.mrmnursingtheory.org/Overview%20MRM.htm
+http://www.mrn.gouv.qc.ca/english/energy/forms/forms-electricity.jsp
+http://www.mrnc.org/mrnc_web/corp/default.aspx?ID=NewsReleases
+http://www.mrotoday.com/mro/archives/exclusives/PERMALIGHT.htm
+http://www.mrpc.info/
+http://www.mrsc.org/mc/courts/supreme/089wn2d/089wn2d0959.htm
+http://www.mrsc.org/subjects/pubsafe/emergency/EM-Terrorism.aspx
+http://www.mrsfields.com/
+http://www.mrtrally.com.au/clientcars.htm
+http://www.mrtv3.net.mm/news/12press.html
+http://www.ms.northropgrumman.com/siteindex/Help.html
+http://www.ms.washington.edu/acms/seminars/A99/scheduleA99.html
+http://www.msa-natl.org/matf/news2.php?ID=27
+http://www.msac.uoguelph.ca/Denton.htm
+http://www.msacroa.org/
+http://www.msactivesource.co.uk/animation/datasheet.asp?userID=&ID=4
+http://www.msad54.k12.me.us/MSAD54Pages/skow/ForeignXchange/memik.html
+http://www.msaustralia.org.au/msinformation/being_a_parent_with_ms.htm
+http://www.msc.ec.gc.ca/education/scienceofclimatechange/understanding/FAQ/sections/3_e.html
+http://www.mscd.edu/~themet/TheMetropolitan/04_05/Vol27_issue11/f1.html
+http://www.mscnet.com/jenny/mk/events/99/nationals/reports.html
+http://www.msdnevents.com/
+http://www.mse.uiuc.edu/studentnews/nov04studnews.html
+http://www.msf.org.au/stories/twfeature/2005/077-twf.shtml
+http://www.msf.org/content/page.cfm?articleid=CFEBA3CE-0911-4573-A4064529B87C875C
+http://www.msfc.com/content.cfm?releaseID=48
+http://www.msfinancialsavvy.com/archive/abusive_tax_fraud.html
+http://www.msgmates.com/
+http://www.msit.unp.ac.za/MSIT_SchoolNews.htm
+http://www.msj.bolton.sch.uk/ethos.htm
+http://www.mskcc.org/mskcc/html/426.cfm
+http://www.mskcc.org/mskcc/html/50379.cfm
+http://www.msmagazine.com/contact.asp
+http://www.msmagazine.com/jun99/monica-abrams.asp
+http://www.msmagazine.com/summer2005/birthcontrol.asp
+http://www.msmoney.com/mm/planning/marriage/family_planning.htm
+http://www.msnbc.com/modules/newsweek/gersh/529994.asp
+http://www.msnbc.com/news/929152.asp
+http://www.msnbc.com/news/934190.asp
+http://www.msnbc.com/news/937302.asp
+http://www.msnbc.com/news/946440.asp
+http://www.msnbc.com/news/984676.asp
+http://www.msnbc.msn.com/
+http://www.msnbc.msn.com/ID/6886726/
+http://www.msnbc.msn.com/ID/7761272/
+http://www.msnbc.msn.com/id/3044924/site/newsweek/
+http://www.msnbc.msn.com/id/3071534/
+http://www.msnbc.msn.com/id/3077151/
+http://www.msnbc.msn.com/id/3077811/
+http://www.msnbc.msn.com/id/3080261/
+http://www.msnbc.msn.com/id/3217961/
+http://www.msnbc.msn.com/id/3607201/
+http://www.msnbc.msn.com/id/3626796/
+http://www.msnbc.msn.com/id/3705241/
+http://www.msnbc.msn.com/id/3754103/
+http://www.msnbc.msn.com/id/3907357/
+http://www.msnbc.msn.com/id/4138986/
+http://www.msnbc.msn.com/id/4179618/
+http://www.msnbc.msn.com/id/4326967/
+http://www.msnbc.msn.com/id/4347250/
+http://www.msnbc.msn.com/id/4449087/
+http://www.msnbc.msn.com/id/4625213/
+http://www.msnbc.msn.com/id/4684713/
+http://www.msnbc.msn.com/id/4711931/
+http://www.msnbc.msn.com/id/4767542/
+http://www.msnbc.msn.com/id/4796366/
+http://www.msnbc.msn.com/id/4880556/
+http://www.msnbc.msn.com/id/4901848/
+http://www.msnbc.msn.com/id/4925464/
+http://www.msnbc.msn.com/id/5092840/site/newsweek/
+http://www.msnbc.msn.com/id/5113550/
+http://www.msnbc.msn.com/id/5184077/
+http://www.msnbc.msn.com/id/5197853/site/newsweek
+http://www.msnbc.msn.com/id/5217861/
+http://www.msnbc.msn.com/id/5270511/
+http://www.msnbc.msn.com/id/5327529/
+http://www.msnbc.msn.com/id/5574180/
+http://www.msnbc.msn.com/id/5626555/site/newsweek/
+http://www.msnbc.msn.com/id/5848770/
+http://www.msnbc.msn.com/id/6075393/
+http://www.msnbc.msn.com/id/6091997/site/newsweek/
+http://www.msnbc.msn.com/id/6113461/
+http://www.msnbc.msn.com/id/6142953/
+http://www.msnbc.msn.com/id/6195024/
+http://www.msnbc.msn.com/id/6199779/site/newsweek/
+http://www.msnbc.msn.com/id/6308419/
+http://www.msnbc.msn.com/id/6409077/
+http://www.msnbc.msn.com/id/6410075/
+http://www.msnbc.msn.com/id/6595798/site/newsweek/
+http://www.msnbc.msn.com/id/6667405/
+http://www.msnbc.msn.com/id/6694659/
+http://www.msnbc.msn.com/id/6712885/
+http://www.msnbc.msn.com/id/6742330/
+http://www.msnbc.msn.com/id/6759369/
+http://www.msnbc.msn.com/id/6805000/
+http://www.msnbc.msn.com/id/6841189/
+http://www.msnbc.msn.com/id/6846348/
+http://www.msnbc.msn.com/id/6853606/
+http://www.msnbc.msn.com/id/6861528/
+http://www.msnbc.msn.com/id/6882747/
+http://www.msnbc.msn.com/id/6915347/
+http://www.msnbc.msn.com/id/6923245/
+http://www.msnbc.msn.com/id/6949637/
+http://www.msnbc.msn.com/id/6954712/
+http://www.msnbc.msn.com/id/6999382/site/newsweek/
+http://www.msnbc.msn.com/id/7004627/
+http://www.msnbc.msn.com/id/7019590/site/newsweek/
+http://www.msnbc.msn.com/id/7041426/
+http://www.msnbc.msn.com/id/7108135/
+http://www.msnbc.msn.com/id/7173024/
+http://www.msnbc.msn.com/id/7197633/
+http://www.msnbc.msn.com/id/7243574/
+http://www.msnbc.msn.com/id/7258896/
+http://www.msnbc.msn.com/id/7275547/
+http://www.msnbc.msn.com/id/7284978/
+http://www.msnbc.msn.com/id/7322400/
+http://www.msnbc.msn.com/id/7325063/site/newsweek/
+http://www.msnbc.msn.com/id/7407401/page/2/
+http://www.msnbc.msn.com/id/7590370/site/newsweek/
+http://www.msnbc.msn.com/id/7619740/
+http://www.msnbc.msn.com/id/7629770/
+http://www.msnbc.msn.com/id/8079314/
+http://www.msnbc.msn.com/id/8113663/
+http://www.msnbc.msn.com/id/8132778/
+http://www.msnbc.msn.com/id/8170650/
+http://www.msnbc.msn.com/id/8185490/site/newsweek/
+http://www.msnbc.msn.com/id/8233501/
+http://www.msnbc.msn.com/id/8242097/
+http://www.msnbc.msn.com/id/8256796/
+http://www.msnbc.msn.com/id/8270310/site/newsweek/
+http://www.msnbc.msn.com/id/8284735/
+http://www.msnbc.msn.com/id/8308501/
+http://www.msnbc.msn.com/id/8309720/
+http://www.msnbc.msn.com/id/8313299/
+http://www.msnbc.msn.com/id/8326362/
+http://www.msnbc.msn.com/id/8330748/
+http://www.msnbc.msn.com/id/8332675
+http://www.msnbc.msn.com/id/8338004/
+http://www.msnbc.msn.com/id/8405353/
+http://www.msnepal.org/reports_pubs/ekchhin/2003_issue3/04.htm
+http://www.msno.org/pay.html
+http://www.msnucleus.org/membership/html/k-6/wc/wcoverview.html
+http://www.mso.anu.edu.au/info/fire/orchiston/
+http://www.mspalliance.com/articles.php?article=406
+http://www.mspalliance.com/articles.php?article=474
+http://www.mspb.gov/decisions/1999/bn210pko.html
+http://www.mspb.gov/decisions/2004/west_dc020145c1.html
+http://www.mspb.gov/studies/newsletters/04sepnws/04sepnws.htm
+http://www.mspb.gov/studies/rpt_02-20-02_jobseekers/redd.htm
+http://www.msprugby.co.nz/history.html
+http://www.msq.qld.gov.au/qt/msq.nsf/index/tides_notes
+http://www.mssc.state.ms.us/rules/RuleText.asp?RuleTitle=RULE+803.+HEARSAY+EXCEPTIONS%3B+AVAILABILITY+OF+DECLARANT+IMMATERIAL&IDNum=4
+http://www.mssm.edu/labs/godfrt01/research/neck.html
+http://www.mssm.edu/peds/spec_pulmcare.shtml
+http://www.mssociety.ca/chapters/crc/
+http://www.mssociety.ca/en/give/pg_literature.htm
+http://www.mssociety.ca/en/information/mseffects.htm
+http://www.msss.com/http/ps/life/life.html
+http://www.msstate.edu/org/ifc/publicrelations.html
+http://www.mssu.edu/accents/accents2004/accents02-13-04.htm
+http://www.mssu.edu/seg-vm/bio_e__r___harry__harrison.html
+http://www.mssu.edu/seg-vm/bio_james_r__wait.html
+http://www.mssv.net/archives/000523.shtml
+http://www.mst.dk/indu/02050800.htm
+http://www.mstateathletics.com/0,5604,1__0_62173,00.html
+http://www.mstbrazil.org/ag/forum050300.html
+http://www.msteelcycles.co.uk/renovate.htm
+http://www.mstevensandson.co.uk/shop/conditions.php
+http://www.mstrust.org.uk/publications/furtherreading.jsp
+http://www.mstu.edu.ru/publish/vestnik/v01_1_n01/eng_cont.html
+http://www.msu.edu/course/aec/810/clippings/Farmers%20lose%20land.htm
+http://www.msu.edu/unit/acadgov/corrage/chap1.html
+http://www.msu.edu/unit/cisah/b_courses_fa02.htm
+http://www.msu.edu/unit/msuarhc/buildingexhibit.htm
+http://www.msu.edu/unit/ombud/dishonestyFAQ.html
+http://www.msu.edu/unit/phl/gradconference/archive/abstracts2001.html
+http://www.msu.edu/user/abbottb/formal.htm
+http://www.msu.edu/user/glsen/butchest.htm
+http://www.msu.edu/user/kilpela/doubtpref.htm
+http://www.msu.edu/~dugganha/intro.htm
+http://www.msu.edu/~watson51/Lv4RLS/Lv4homework.html
+http://www.msubaroda.ac.in/My%20Webs/curriculum%20sy.htm
+http://www.msue.msu.edu/imp/moddp/20293100.html
+http://www.mswmanagement.com/msw_0001_trailer.html
+http://www.msz.gov.pl/start.php?page=1020000001
+http://www.mszs.si/eng/ministry/publications/development/pogl_01.asp
+http://www.mt-online.com/articles/1203emerson.cfm
+http://www.mta.ca/tour/academicdepartments.html
+http://www.mta.net/press/2002/09_September/mta_082.htm
+http://www.mta.net/press/2004/09_september/mta_156.htm
+http://www.mta.net/projects_plans/HOV/faqs.htm
+http://www.mta.net/projects_plans/midcity/alpa.htm
+http://www.mta.nyc.ny.us/mta/ada/rail.htm
+http://www.mtafund.org/reference/human.htm
+http://www.mtb-consulting.com/itplan.htm
+http://www.mtb-freeride.com/community/forum/topic.asp?TOPIC_ID=213&whichpage=2
+http://www.mtbakerbsa.org/
+http://www.mtekk.com.au/browse/page739.html
+http://www.mtgs-etc.com/VTS/vssarticle.htm
+http://www.mth.kcl.ac.uk/~streater/cotdeaths.html
+http://www.mtholyoke.edu/acad/intrel/Petroleum/iraq.htm
+http://www.mtholyoke.edu/acad/intrel/bush/choice.htm
+http://www.mtholyoke.edu/acad/intrel/bush/japan.htm
+http://www.mtholyoke.edu/acad/intrel/bush/role.htm
+http://www.mtholyoke.edu/acad/intrel/globecon/kilborn.htm
+http://www.mtholyoke.edu/acad/intrel/kalicki.htm
+http://www.mtholyoke.edu/acad/intrel/kurd4.htm
+http://www.mtholyoke.edu/acad/intrel/pentagon/doc52.htm
+http://www.mtholyoke.edu/acad/intrel/pentagon4/doc259.htm
+http://www.mtholyoke.edu/acad/intrel/sen.htm
+http://www.mtholyoke.edu/courses/sgabriel/economics/china-essays/4.html
+http://www.mtholyoke.edu/offices/comm/csj/050605/science.shtml
+http://www.mtholyoke.edu/omc/faclegis/legisl/facleg12.html
+http://www.mthoodsoapworks.com/faqs.html
+http://www.mthurricane.com/Hurricane_Charley.htm
+http://www.mtishows.com/show_home.asp?ID=000021
+http://www.mtk.com.tw/ir-home.php
+http://www.mtmha.org/cell-phone-carrying-case.html
+http://www.mtnforum.org/emaildiscuss/discuss02/031102283.htm
+http://www.mtniron.com/PublicWorks/BuildingPolicy.htm
+http://www.mtnrimfsc.org/agencyupdates.html
+http://www.mto.gov.on.ca/english/engineering/cosens/
+http://www.mtpleasantlawyers.com/links/federal.htm
+http://www.mtq.gouv.qc.ca/en/reseau/signalisation/camions.asp
+http://www.mtroyal.ab.ca/conservatory/academy.shtml
+http://www.mtroyal.ab.ca/conservatory/sum_string.shtml
+http://www.mtroyal.ab.ca/studentlife/study_notetaking.shtml
+http://www.mtroyal.ab.ca/studentlife/study_studying.shtml
+http://www.mts.net/~pmorrow/bayeng1.htm
+http://www.mts.net/~pmta/gentrl/
+http://www.mtsd.org/mihs/main/taylor/indinv.html
+http://www.mtsgrinders.com/coolcut.php
+http://www.mtstandard.com/
+http://www.mtstandard.com/articles/2005/02/06/entertain_top/hjjejhjfjbegge.txt
+http://www.mtstandard.com/articles/2005/02/09/entertain_top/hjjejhjfjbegge.txt
+http://www.mtstandard.com/front
+http://www.mtstars.com/forum/equipment/mtstars1.shtml
+http://www.mtsu.edu/~pmccarth/io_nts2.htm
+http://www.mtsu.edu/~proffice/Record/Rec_v11/rec1105/rec1105.html
+http://www.mtu.edu/current/parentnet/archives/listserv/concerned.html
+http://www.mtuk.org/index.php?page=mammal_carnivores
+http://www.mtv.com/bands/az/deep_forest/bio.jhtml
+http://www.mtv.com/bands/az/jackson_michael/bio.jhtml
+http://www.mtv.com/bands/t/taking_back_sunday/news_feature_082304/
+http://www.mtv.com/music/album_preview/mario/turning_point/
+http://www.mtv.com/news/articles/1471546/20030425/story.jhtml
+http://www.mtv.com/news/articles/1479429/09302003/fuel.jhtml
+http://www.mtv.com/news/articles/1495046/12172004/cam_ron.jhtml
+http://www.mtv.com/news/articles/1495046/20041217/story.jhtml
+http://www.mtv.com/news/articles/1496008/01192005/green_day.jhtml
+http://www.mtv.com/news/articles/1496008/20050119/green_day.jhtml?headlines=true
+http://www.mtv.com/news/articles/1496008/20050119/story.jhtml
+http://www.mtv.com/onair/dyn/made/episode.jhtml?episodeID=81699
+http://www.mtv.com/shared/movies/interviews/b/berry_catwoman_040701/
+http://www.mtvasia.com/ubbthreads2/showflat.php?Cat=&Board=MariahCarey&Number=653377&Main=642789
+http://www.mtvasia.com/ubbthreads2/showflat.php?Cat=&Board=MariahCarey&Number=654139&Main=642789
+http://www.mtwain.com/A_Helpless_Situation/0.html
+http://www.mty.itesm.mx/rectoria/pi/internationalstudents/Ingles/undergraduate_students/materias/EC99859.htm
+http://www.mu.ac.ke/finform/curri.html
+http://www.muc.edu/admission/new_student_information/new_student_faqs
+http://www.muchmusic.net/en/listsingerinfo.asp?singer=No%20Doubt
+http://www.mudcat.org/thread.cfm?threadid=67070&messages=76&page=1&desc=yes
+http://www.mudhutsmedia.co.uk/modules.php?name=Forums
+http://www.mudsprings.com/WebGen.aspx?WGPage=GIS%20Glossary
+http://www.mudvillegazette.com/archives/000359.html
+http://www.mudvillegazette.com/archives/002684.html
+http://www.muffley.net/pacific/dutch/ozland.htm
+http://www.mugglenet.com/editorials/thephoenixfiles/tpf6.shtml
+http://www.mugsnj.org/events.html
+http://www.mukto-mona.com/new_site/mukto-mona/human_rights/sentence_raped.htm
+http://www.mullingarharriers.com/
+http://www.mult-sclerosis.org/news/Jun2004/TwoWelshDoctorsMakingaDifference.html
+http://www.mult-sclerosis.org/news/Sep1999/BaltimoreSunMS.html
+http://www.multicians.org/f7y.html
+http://www.multicians.org/fjcc1.html
+http://www.multicians.org/security.html
+http://www.multied.com/Navy/cruiser/Helena.html
+http://www.multied.com/dates/1959.html
+http://www.multiflora.co.uk/Hair%20loss%20treatments%20information%20+%20Free%20trial!.htm
+http://www.multiflora.co.uk/hair%20loss%20FAQ.htm
+http://www.multiflorum.com/
+http://www.multilingualbooks.com/basque.html
+http://www.multilingualbooks.com/musical-spanish.html
+http://www.multilingualvacancies.com/terms.htm
+http://www.multiple-sclerosis-us.web.com/ed_story.htm
+http://www.multiplemyeloma.org/about_myeloma/2.05.html
+http://www.multispectral.com/history.html
+http://www.multisuite.com/readme.htm
+http://www.multitel.be/?page=projets
+http://www.multiworld.org/taleemnet/eduexp/hstp.htm
+http://www.mum-mum.info/2004_10_17_mum-mum_archive.html
+http://www.mum.com.au/
+http://www.mum.org/menhydev.htm
+http://www.mumfordbooks.co.uk/CAT.asp?BookID=2506
+http://www.mumfordbooks.co.uk/CAT.asp?BookID=2587
+http://www.mumfordbooks.co.uk/CAT.asp?BookID=2617
+http://www.mumfordbooks.co.uk/CAT.asp?BookID=2644
+http://www.mumfordbooks.co.uk/CAT.asp?BookID=2645
+http://www.mumfordbooks.co.uk/CAT.asp?BookID=2646
+http://www.mun.ca/ceuep/external_relations.html
+http://www.mun.ca/finance/policies_procedures/computer_system_admin.php
+http://www.munciesanitary.org/sewer/long_term.php
+http://www.munciesanitary.org/sewer/long_term.php?print=1
+http://www.mundania.com/books-flightsofmind.html
+http://www.municipal.gov.sk.ca/mrd/haul/5skmainagrees.shtml
+http://www.munnar.com/html/Tea1.htm
+http://www.munnar.com/html/tea2.htm
+http://www.muonline.com/ReGlobal/subpages/news/news.asp?Next_Page=4&Munews_Section=0&Munews_Text=
+http://www.mup.org/html/ministries.htm
+http://www.muq.org/~cynbe/compression/ppm.html
+http://www.murderdog.com/august_rapcointelpro/targetarea.html
+http://www.murdoch.edu.au/elaw/issues/v1n1/iorns113.html
+http://www.murdoch.edu.au/elaw/issues/v5n4/whitton54.html
+http://www.murdoch.edu.au/elaw/issues/v6n3/blyth63_text.html
+http://www.murdoch.edu.au/elaw/issues/v7n4/simmonds74_text.html
+http://www.murdoch.edu.au/elaw/issues/v9n1/cathcart91_text.html
+http://www.murdoconline.net/archives/002388.html
+http://www.murraystate.edu/qacd/cos/geo/gsc641/1997/rahman/
+http://www.musangsa.org/t02.htm
+http://www.musc.edu/cvc/NIDApubs.htm
+http://www.musclemustangfastfords.com/tech/0302MMFF_SlammedPt1/
+http://www.muscletech.com/TRAINING/GOAL_SETTING_TIPS/Goal_Setting_Tips_Bodybuilding.shtml
+http://www.muscleupcanada.com/upcoming-events.htm
+http://www.muscular-dystrophy.org/document.rm?id=163
+http://www.muscular-dystrophy.org/research/research_reviews/duchenne_1.html
+http://www.museletter.com/archive/110.html
+http://www.museletter.com/archive/cia-oil.html
+http://www.museletter.com/partys-over.html
+http://www.museum-security.org/01/087.html
+http://www.museum-security.org/products.html
+http://www.museum.cornell.edu/HFJ/rental/guide.html
+http://www.museum.tv/archives/etv/E/htmlE/ethicsandte/ethicsandte.htm
+http://www.museum.tv/archives/etv/E/htmlE/eyewitnessto/eyewitnessto.htm
+http://www.museum.tv/archives/etv/I/htmlI/ilovelucy/ilovelucy.htm
+http://www.museum.tv/archives/etv/R/htmlR/russellken/russellken.htm
+http://www.museum.tv/archives/etv/S/htmlS/spaceprogram/spaceprogram.htm
+http://www.museum.tv/archives/etv/W/htmlW/wales/wales.htm
+http://www.museum.tv/debateweb/html/history/2000/00essay/article6.htm
+http://www.museum4kids.net/BirthdayParties.htm
+http://www.museumland.com/LotherA.html
+http://www.museumldv.com/lionardo/ldv-en/vridning.htm
+http://www.museummarketingtips.com/articles/webmistakes.html
+http://www.museumofhoaxes.com/hoax/forum/forum_comments/2420/
+http://www.museumofhoaxes.com/hoax/weblog/comments/1244/
+http://www.museumofleftwinglunacy.com/archives/2005/06/dick_durbin_bla.html
+http://www.museumoflondon.org.uk/MOLsite/learning/practical/access.html
+http://www.museumoneinc.org/articles/september.htm
+http://www.museums.ca/Cma1/About/Links/museumstudies/provinces/ontario/thunderbay.htm
+http://www.museums.org.za/bio/plants/theaceae/camellia_sinensis.htm
+http://www.museumserver.nl/expositie/kunc/embarrassing.html
+http://www.museumsontario.com/resources/rsc_tip_orgs.shtml
+http://www.music-critic.ca/album-reviews/dashboard_mtv_unplugged.shtml
+http://www.music.columbia.edu/~polashek/phonology.html
+http://www.musicalheaven.com/s/sunday_in_the_park_with_george.shtml
+http://www.musicalonline.com/molmagazine/article/web_portal.htm
+http://www.musicals101.com/bwaythhist2.htm
+http://www.musicals101.com/cd1.htm
+http://www.musicals101.com/who10.htm
+http://www.musicalspanish.com/features.htm
+http://www.musicboxattic.com/suhaingrhohi.html
+http://www.musiccentre.ca/apps/index.cfm?fuseaction=composer.FA_dsp_biography&authpeopleid=9408&by=M
+http://www.musicconnection.com/currentissue/mcprofile1/mcprofile1.lcgi
+http://www.musicdish.com/mag/?id=10236
+http://www.musicdish.com/mag/index.php3?id=10236
+http://www.musicedmarket.com/MEMChart/MEMchart.htm
+http://www.musiceducationmadness.com/contributions.shtml
+http://www.musiceducationonline.org/smea/ARTSED1.html
+http://www.musicforamerica.org/blog/2128
+http://www.musicforamerica.org/community?from=56
+http://www.musicforamerica.org/layout/past/9
+http://www.musicforamerica.org/node/1058
+http://www.musicforamerica.org/node/70845
+http://www.musicforamerica.org/node/view/1323
+http://www.musicforamerica.org/taxonomy/term/20770
+http://www.musicfromthemovies.com/sotw.asp?ID=39
+http://www.musiciansfinder.com/Product-Sports3-Branded_Accessories-26002-13.html
+http://www.musicianshealth.com/whyrsi.htm
+http://www.musicianshotline.com/taaffe/practice_up.htm
+http://www.musiclinks.nl/T/Tanita_Tikaram/songtekst-Stop-Listening-L9319.html
+http://www.musicmedals.org/?page=introduction/quotes.html
+http://www.musicnotes.com/sheetmusic/book.asp?ppn=bkhl699202
+http://www.musicplayer.com/ubb/ultimatebb.php?/ubb/get_topic/f/18/t/014535/p/1.html
+http://www.musicplayer.com/ubb/ultimatebb.php?/ubb/get_topic/f/5/t/012003.html
+http://www.musicremedy.com/articles/index.cfm?FuseAction=ShowMessage&Id=1125
+http://www.musicsales.com/DesktopDefault.aspx?TabID=211&ItemID=40
+http://www.musicsender.com/jazzlistings.html
+http://www.musicsonglyrics.com/I/imxlyrics/imxhatetheplayalyrics.htm
+http://www.musictank.co.uk/events_future.htm
+http://www.musictank.co.uk/funding_res.htm
+http://www.musicteachers.co.uk/links/index.php?category=10
+http://www.musicteachers.co.uk/links/index.php?category=44
+http://www.musictherapy.org/factsheets/olderadults.html
+http://www.musicthoughts.com/list/cat/b
+http://www.musketeer.org/
+http://www.muskoka.com/tour/artists/p/
+http://www.muslimedia.com/archives/oaw00/clinton-oil.htm
+http://www.muslimhands.org/
+http://www.muslimhomeschool.com/mhsnr/ED/game/dr.htm
+http://www.muslimintro.com/browse-men-28.html
+http://www.muslimuzbekistan.com/eng/ennews/2004/11/ennews09112004_1.html
+http://www.muslimwakeup.com/elections/archives/001173.php
+http://www.mustrad.org.uk/reviews/zoop.htm
+http://www.mustrad.org.uk/vop/665.htm
+http://www.mustseenewyork.com/the-roger-smith-hotel.html
+http://www.mustudentnews.com/120904/infocus/facebook.html
+http://www.mutantreviewers.com/rgof1.html
+http://www.mutantreviewers.com/yakkity1.html
+http://www.mutronics.co.uk/html/st_sound.htm
+http://www.mutualofamerica.com/articles/Fortune/2002_06_27/homedepot2.asp
+http://www.mv-voice.com/morgue/2001/2001_08_24.epc.html
+http://www.mvcc.edu/HumanRsrcs/jobopp.htm
+http://www.mvgazette.com/news/2004/12/24/habitat_family.php
+http://www.mvgazette.com/news/2005/02/18/marie_allen.php
+http://www.mvia.com/Digcams/dig_cameras.html
+http://www.mvmf.org/language.shtml
+http://www.mvnu.edu/facstaff/admin/presidentsoffice/fairbanksvita.html
+http://www.mvo.ms/october_2001_activity_this_week_.htm
+http://www.mvpcasino.com/online_casino_gambling_deposit_methods_.html
+http://www.mvpracebook.com/online_racebook_gambling_deposit_methods_.html
+http://www.mvprince.com/activities.php
+http://www.mvps.org/
+http://www.mvps.org/marksxp/WindowsXP/driveltr.php
+http://www.mvps.org/project/faqs.htm
+http://www.mvps.org/vbvision/Super_Collections.htm
+http://www.mvremix.com/urban/reviews/2004/bglife.shtml
+http://www.mvrf.org/md101/cbs.html
+http://www.mvs.usace.army.mil/pm/E_St_Louis/factsheet.htm
+http://www.mvsweddinginvitations.com/english/international.asp
+http://www.mwa.govt.nz/cont_pp.html
+http://www.mwaa.com/dulles/ground.htm
+http://www.mwambao.com/visa1.htm
+http://www.mwci.org/chapters/SCRAP/articles/BE-2001-11-10.html
+http://www.mwcog.org/commuter/Bdy-Grh-testimonials.html
+http://www.mwetech.com/policies.htm
+http://www.mwfam.com/who.html
+http://www.mwhb.ie/healthservices/entitlements/eu.htm
+http://www.mwls.co.uk/deutsch.htm
+http://www.mwls.co.uk/shop/psych.pl
+http://www.mwlusa.org/publications/essays/legalrights.html
+http://www.mwmlaw.com/sept-oct_2000.htm
+http://www.mwords.co.uk/pages/FAQ/articlePrinterDesignRant.htm
+http://www.mwotrc.com/rr2004_02/tonywons.htm
+http://www.mwpha.org/issues/carefirst/
+http://www.mwscomp.com/movies/grail/grail-11.htm
+http://www.mxextensions.com/XcDirViewInCat.asp?ID=38
+http://www.mxhealth.co.za/media_businessday_30Mar04.asp
+http://www.my-hope.com/Bill/essays/esource.html
+http://www.my-penis.org/size.html
+http://www.myacpa.org/comm/global/conf2004.htm
+http://www.myanmar.com/Understanding%20Myanmar/mfp.html
+http://www.myanmar.com/gov/tourist/today1.htm
+http://www.myanmar.com/nlm/article/May14.htm
+http://www.myanmar.gov.mm/Article/Article2004/Oct04/Oct18.htm
+http://www.myanmar.gov.mm/NLM-2002/Dec17.html
+http://www.myanmar.gov.mm/NLM-2002/Nov28.html
+http://www.myanmar.gov.mm/NLM-2004/Jan04/Jan10.html
+http://www.myanmar.gov.mm/Perspective/persp1997/12-97/lea12-97.htm
+http://www.myanmars.net/myanmar-news-1999/myanmar-news-n990516.htm
+http://www.myarmoury.com/review_casi_wm.html
+http://www.myarmoury.com/talk/viewtopic.php?p=30644&highlight=
+http://www.myaustinhealey.com/austin_healey_technical_articles.html
+http://www.mybabyfingers.com/BFclasses.html
+http://www.mybelfast.co.uk/belfast/property-shorts.htm
+http://www.mybowler.com/Bax+Scratching/992.aspx
+http://www.mybrum.co.uk/birmingham/restaurants-review-bank.htm
+http://www.mycashback.com/html/index.php?sp=11
+http://www.myccr.com/SectionResources/Humour/HangingTheFoodPack.htm
+http://www.mycen.com.my/duasen/090904_products.html
+http://www.mychurchdonations.com/agreement1.htm
+http://www.myclan.com/clans/Balfour_152/default.php
+http://www.mycollegeguide.org/schools/Arcadia/index.phtml
+http://www.mycoolcareer.com/bio/bio_jillofficial.html
+http://www.mycopper.net/professional-web-hosting.html
+http://www.mycvbuilder.com/cvb/index.cfm?fuseaction=arts.showmemberarts&articleID=5
+http://www.mydailyplanet.com/04-77-colddick.htm
+http://www.mydas.com/company.htm
+http://www.mydd.com/story/2004/5/10/192540/572
+http://www.mydd.com/story/2005/1/14/155754/517
+http://www.mydd.com/story/2005/1/27/133629/315
+http://www.mydna.com/health/diabetes/resources/news/200506/news_20050603_diaknow.html
+http://www.mydna.com/health/weight/weightobesity/dietmyths.html
+http://www.mydr.com.au/default.asp?Article=2555
+http://www.mydswa.org/code_of_ethics.asp
+http://www.myeclipseide.com/PNphpBB2+file-viewtopic-t-75.html
+http://www.myeclipseide.com/index.php?name=PNphpBB2&file=viewtopic&p=13129
+http://www.myenvoy.com/sleepybear/teeth.html
+http://www.myers.com/press/articles/1201.html
+http://www.myetv.org/television/productions/legacy/parts/introduction2.html
+http://www.myfootballnews.co.uk/Frank-Lampard-Player-News-174.html
+http://www.myfortress.org/greatchristianscientists.html
+http://www.myfreegold.com/Documents/teardownthiswall.htm
+http://www.mygreathome.com/safety/school_safety/walking.htm
+http://www.myhandwriting.com/learn/homestudy.html
+http://www.myhome.org/pg/numbers.html
+http://www.myisraelsource.com/content/knesset_description
+http://www.myjanee.com/PSRL/tutfx.htm
+http://www.myjewishlearning.com/ideas_belief/sex_sexuality/Overview_Judaism_And_Sexuality/Purpose_And_Meaning/Sex_Contraception_Isaacs.htm
+http://www.myjokemail.com/content/modules/myalbum/photo.php?lid=2661&cid=1
+http://www.myleaders.com/leadership-training.htm
+http://www.mylibertybank.com/view.php/id/21
+http://www.mylivingtree.com/Charles/
+http://www.mymommybiz.com/ebooks/sit.html
+http://www.mymoneyskills.com/visa/hk/en_US/managing_debt/getout.shtml
+http://www.mymotherlode.com/Fire_Information/
+http://www.mymusic.ca/product.asp?muzenbr=529853&myptr=galaxie&curr=1
+http://www.mynrma.com.au/board_of_directors.asp
+http://www.mynrma.com.au/cars_kids.asp
+http://www.myonlinesolicitor.co.uk/
+http://www.myopia.org/principles.htm
+http://www.mypage.tsn.cc/self-helpconcepts/
+http://www.mypethaven.com/essential_oils.htm
+http://www.mypetstop.com/UK/Cats/Lifestyle/Travel+Moving+Holiday/Carrying+Pets+Safely+in+Your+Car.htm
+http://www.mypharmacy.co.uk/health_products/products/o/omron/blood_pressure_monitors/omron_r5_i.htm
+http://www.mypleasure.com/education/sexed/sensual_massage.asp
+http://www.mypleasure.com/education/sexed/sensual_massage.asp?printversion=YES&
+http://www.myrealtywebsite.com/package7/P7b_asking.htm
+http://www.myresortnetwork.com/Sell-Timeshare/The-Cliffs-at-Peace-Canyon/Las-Vegas/Nevada/
+http://www.myri.com/scs/L3/doc/gcc_toc.html
+http://www.myriobiblos.gr/texts/english/Pannenberg_europe.html
+http://www.myronthompson.com/bio.htm
+http://www.mysan.de/international/gate.html?name=News&friend&op=FriendSend&sid=27529
+http://www.mysan.de/international/gate.html?name=News&friend&op=FriendSend&sid=27572
+http://www.mysan.de/international/gate.html?name=News&friend&op=FriendSend&sid=27591
+http://www.mysan.de/international/gate.html?name=News&friend&op=FriendSend&sid=27641
+http://www.myschool-monecole.gc.ca/psma-lmfp/lp/index_e.html
+http://www.myscschools.com/News/1999/sat-2nd.htm
+http://www.myscschools.com/news/1999/sat-2nd.htm
+http://www.myshelf.com/holiday/pages/xmasmisc.htm
+http://www.mysociety.org/
+http://www.myspace.com/index.cfm?fuseaction=user.viewProfile&friendID=529&Mytoken=20050614073533
+http://www.myspace.com/index.cfm?fuseaction=user.viewProfile&friendID=6528124&Mytoken=20050603032429
+http://www.myspace.com/movemeant
+http://www.mysteriestodiefor.com/first_editions_f_m.htm
+http://www.mysteriousworld.com/Journal/2003/Summer/Osiria/
+http://www.mysterygarden.com/garden.htm
+http://www.mysterynet.com/tv/profiles/nypd/
+http://www.mysteryone.com/GarHaywoodInterview.htm
+http://www.mysterypollster.com/deepmotive/2005/06/felt_colson_bre.html
+http://www.mysterypollster.com/main/2004/12/exits_were_the_.html
+http://www.mysterypollster.com/main/2005/01/final_results.html
+http://www.mysterypollster.com/main/2005/01/media_whore_ale.html
+http://www.mystgalaxy.com/scifi_a.html
+http://www.mysticadvisor.com/occult/
+http://www.mystical-www.co.uk/leylines.htm
+http://www.mystiquebeads.com/nagaland%20glass.htm
+http://www.mystiqueshopper.com/faq.html
+http://www.mystockoptions.com/articles/Fundamentals/Exercise/index.cfm/catid/3F70ED0D-2048-4F05-B8C4C2918A4F27AB
+http://www.mystworlds.com/us/archives.php?mois=1&annee=2005
+http://www.mytelus.com/sports/article.do?pageID=sports_home&articleID=1961851&
+http://www.mythinglinks.org/summersolstice2000.html
+http://www.mythmakerjohn.com/services.html
+http://www.mythologicalmovieclub.org/
+http://www.mytoos.com/
+http://www.myuniaddress.com/description-5-1-Straight_Jacket.html
+http://www.myvworld.com/
+http://www.mywhatever.com/cifwriter/library/eperc/fastfact/ff31.html
+http://www.mza.com/oldnews.html
+http://www.mzv.cz/washington/newslet/2000/ctn012000.html
+http://www.n-a.co.uk/na16.htm
+http://www.n-email.net/ZOO/inzoosoc.04.04.htm
+http://www.n-gon.com/freshmeat/b./
+http://www.n2arts.com/ee/theatre/storypage/the_economics_of_acting_classes/
+http://www.na-ygn.org/aboutus/roles.shtml
+http://www.na.fs.fed.us/spfo/pubs/howtos/ht_birch/ht_birch.htm
+http://www.na.fs.fed.us/spfo/pubs/silvics_manual/volume_2/general/notes.htm
+http://www.na.fs.fed.us/spfo/pubs/silvics_manual/volume_2/quercus/rubra.htm
+http://www.na.fs.fed.us/spfo/pubs/uf/techguide/values.htm
+http://www.na.org/basic.htm
+http://www.na.org/ips/eng/nares.htm
+http://www.na.org/legal/ipbul3-03rv.htm
+http://www.na.org/naway/en/naway163-12.htm
+http://www.na.org/naway/en/naway5-e-2.htm
+http://www.na.org/naway/en/naway5-e.htm
+http://www.na.org/prespapers/naws-hi_pub2.htm
+http://www.naa.gov.au/Publications/corporate_publications/ar2003/corporate_management.html
+http://www.naa.gov.au/recordkeeping/access/records_public.html
+http://www.naa.gov.au/recordkeeping/preservation/care_records.html
+http://www.naa.gov.au/recordkeeping/rkpubs/advices/advice10.html
+http://www.naa.gov.au/recordkeeping/rkpubs/advices/advice22.html
+http://www.naa.org/artpage.cfm?AID=5195&SID=1129
+http://www.naa.org/artpage.cfm?AID=6114&SID=1097
+http://www.naa.org/artpage.cfm?AID=6114&SID=1121
+http://www.naa.org/horizon/eBaySidebar.html
+http://www.naae.org/news/3_03/page7.htm
+http://www.naaec.gc.ca/eng/nac/gr024_e.htm
+http://www.naaf.org/research/research-announce.asp
+http://www.naaf.org/research/research-q_and_a-triggers.asp
+http://www.naafa.org/
+http://www.naafa.org/documents/essays/fatandhappy.html
+http://www.naafa.org/kids.html
+http://www.naaidt.org.uk/about/guidelines/numeracy.html
+http://www.naatanet.org/shopnaata/videos/title/
+http://www.naaweb.org/
+http://www.naaweb.org/publicpolicynews.htm
+http://www.nab.org/conventions/
+http://www.nab.org/membersonly/nabsays/legal/MAIN_STUDIO_1999.asp
+http://www.naboo.freeserve.co.uk/figslate.htm
+http://www.nabuur.com/modules/villages_forum/viewtopic.php?topic_id=744&forum=182&villageid=68
+http://www.nabuur.com/modules/villages_forum/viewtopic.php?villageid=68&topic_id=744&forum=182
+http://www.nac-cna.ca/en/nacnews/viewnews.cfm?ID=635&cat=catET
+http://www.naccc.org/NA_News/Feb_04/Page_5.htm
+http://www.nace-cee.org/prnov04.htm
+http://www.nacjamaica.com/pac/report_2002_quarterly4.htm
+http://www.nacs.uci.edu/telephone/principal.html
+http://www.nacsa.com/
+http://www.nacsonline.com/NACS/News/Daily_News_Archives/December2003/nd1224033.htm
+http://www.nacsonline.com/NACS/Resource/Finance/mf_020200_ir.htm
+http://www.nacsonline.com/NACS/Resource/MotorFuels/irsmsspguidelines.htm
+http://www.nacubo.org/x4225.xml
+http://www.nacubo.org/x4981.xml
+http://www.nacufs.org/about/styleguide.asp
+http://www.nada.kth.se/BIT/BIT_History.html
+http://www.nadadventist.org/ohr/about/history2.htm
+http://www.nadir.org/nadir/initiativ/agp/free/iraq/0218blood_oil.htm
+http://www.nadir.org/nadir/initiativ/agp/free/wsf/worldforum.htm
+http://www.nadir.org/nadir/initiativ/agp/pgaeurope/leiden/Newsletter03.htm
+http://www.nadrac.gov.au/adr/QldLawSoc.htm
+http://www.nadwatululama.org/intr1.htm
+http://www.nae.edu/NAE/naehome.nsf/weblinks/MKEZ-547S83?OpenDocument
+http://www.naea-reston.org/programs-research.html
+http://www.naec.ws/
+http://www.naesp.org/ContentLoad.do?contentId=295
+http://www.naesp.org/ContentLoad.do?contentId=295&action=print
+http://www.nafcon.dircon.co.uk/fgeckos1.html
+http://www.nafcon.dircon.co.uk/pzgen.html
+http://www.nafcu.org/Content/NavigationMenu/Events_Education/24th_Annual_Volunteers_Conference/2005_Volunteers.htm
+http://www.nafdma.com/Boston/ConfFAQ/
+http://www.nafeo.org/intern.htm
+http://www.nafsa.org/content/ProfessionalandEducationalResources/ImmigrationAdvisingResources/10points.htm
+http://www.nafsa.org/content/publicpolicy/usintledpolicy/senconres7.htm
+http://www.nagara.org/1997_Meeting/1997_introduction.html
+http://www.nagt.org/nagt/abstracts/jan01.html
+http://www.nagt.org/nagt/jge/abstracts/jan01.html
+http://www.nahbmonday.com/eyeonecon/issues/2003-05-21.html
+http://www.nahbmonday.com/eyeonecon/issues/2004-09-22.html
+http://www.nahenahe.net/panther/tale1223.html
+http://www.nahste.ac.uk/cgi-bin/view_isad.pl?id=GB-0582-HWC-3-1-53-132&view=basic
+http://www.naic.org/insprod/catalog_pub_supplementary.htm
+http://www.naimark.net/writing/gifu.html
+http://www.nais.org/about/eventdoc.cfm?ItemNumber=144667
+http://www.nais.org/products/?type=books&sn.ItemNumber=146020&tn.ItemNumber=142498
+http://www.najah.edu/english/articles/13.htm
+http://www.najumary.org/catholic01-cath.html
+http://www.nakack.net/?p=23
+http://www.nakamalathome.com/culture.php
+http://www.nakedknitting.com/archives/cat_bad_days.html
+http://www.nal.usda.gov/Kids/4han.htm
+http://www.nal.usda.gov/Kids/4henv.htm
+http://www.nal.usda.gov/Kids/4hgensci.htm
+http://www.nal.usda.gov/bic/Biotech_Patents/1994patents/05306863.html
+http://www.nal.usda.gov/ttic/nalsci/becky/4han.htm
+http://www.nalanda.demon.co.uk/prajapat.htm
+http://www.nalc.gov.uk/becomeacouncillor/
+http://www.naleihulu.org/guestbook/guestbook_viewy.htm
+http://www.nalis.gov.tt/NationalAwards-Emblems/T&T_Independence.html
+http://www.nalis.gov.tt/protective_services/protective_services_science_of_crime.html
+http://www.nalsw.net/news/
+http://www.nalv.org.uk/news7-2/03-16-17.htm
+http://www.nam.gov.za/minmeet/paha294a.htm
+http://www.namamillers.org/PR_Bioterror_04_09_03.html
+http://www.namaqua.com/couch.html
+http://www.namasthenri.com/excontrol/chapt6.htm
+http://www.namasthenri.com/excontrol/chapt9.htm
+http://www.nambarrie.com/terms_&_conditions/
+http://www.namcor.com.na/press_releases.htm
+http://www.namenerds.com/uucn/advice/family.html
+http://www.names.co.uk/terms.html
+http://www.nami.org/Template.cfm?Section=Issue_Spotlights&template=/ContentManagement/ContentDisplay.cfm&ContentID=5015
+http://www.nami.org/Template.cfm?Section=Issue_Spotlights&template=/ContentManagement/ContentDisplay.cfm&ContentID=8648
+http://www.nami.org/update/unitedbill.html
+http://www.namibweb.com/fishinfo.html
+http://www.namirdeiter.com/fc/joyrainbow.htm
+http://www.namiscc.org/News/2004/Summer/NewLeadership.htm
+http://www.nammuniversity.com/mod/forum/discuss.php?d=45
+http://www.namontana.com/proinfo.htm
+http://www.nandhi.com/songsiddhars.htm
+http://www.nanfa.org/convention/99report.shtml
+http://www.nano.com.au/history.html
+http://www.nano.gov/html/about/Metrology_Agenda_1_23_04.htm
+http://www.nanomicroclub.com/
+http://www.nanowrimo.org/modules/cjaycontent/index.php?id=28
+http://www.nanowrimo.org/modules/newbb/viewtopic.php?topic_id=17066&forum=14
+http://www.nanowrimo.org/modules/newbb/viewtopic.php?topic_id=20329&forum=73
+http://www.nanowrimo.org/modules/newbb/viewtopic.php?topic_id=8621&forum=174
+http://www.nanowrimo.org/modules/newbb/viewtopic.php?viewmode=flat&order=DESC&topic_id=25191&forum=160
+http://www.nanowrimo.org/modules/xoopsfaq/index.php?cat_id=1
+http://www.nantucketislandliving.com/articles.php?Section=1
+http://www.naomimusic.com/pages/order/trebleClef.htm
+http://www.nap.edu/books/0309040329/html/145.html
+http://www.nap.edu/books/0309047889/html/50.html
+http://www.nap.edu/books/0309048397/html/69.html
+http://www.nap.edu/books/0309049334/html/361.html
+http://www.nap.edu/books/0309051401/html/44.html
+http://www.nap.edu/books/0309051916/html/109.html
+http://www.nap.edu/books/0309054842/html/115.html
+http://www.nap.edu/books/030905494X/html/212.html
+http://www.nap.edu/books/0309056829/html/19.html
+http://www.nap.edu/books/0309056829/html/25.html
+http://www.nap.edu/books/0309056829/html/3.html
+http://www.nap.edu/books/0309058333/html/125.html
+http://www.nap.edu/books/0309058988/html/1.html
+http://www.nap.edu/books/0309059267/html/90.html
+http://www.nap.edu/books/0309063787/html/197.html
+http://www.nap.edu/books/0309065356/html/55.html
+http://www.nap.edu/books/0309065909/html/33.html
+http://www.nap.edu/books/0309065925/html/10.html
+http://www.nap.edu/books/0309068754/html/184.html
+http://www.nap.edu/books/0309069254/html/1.html
+http://www.nap.edu/books/0309069254/html/11.html
+http://www.nap.edu/books/0309069254/html/404.html
+http://www.nap.edu/books/0309069483/html/84.html
+http://www.nap.edu/books/0309070368/html/190.html
+http://www.nap.edu/books/0309070775/html/207.html
+http://www.nap.edu/books/0309070775/html/84.html
+http://www.nap.edu/books/0309070775/html/91.html
+http://www.nap.edu/books/0309072735/html/187.html
+http://www.nap.edu/books/0309073375/html/130.html
+http://www.nap.edu/books/0309074266/html/25.html
+http://www.nap.edu/books/0309075602/html/R1.html
+http://www.nap.edu/books/0309075939/html/35.html
+http://www.nap.edu/books/0309082749/html/418.html
+http://www.nap.edu/books/0309082803/html/108.html
+http://www.nap.edu/books/0309082986/html/82.html
+http://www.nap.edu/books/0309083419/html/40.html
+http://www.nap.edu/books/0309084091/html/114.html
+http://www.nap.edu/books/0309084091/html/81.html
+http://www.nap.edu/books/0309084261/html/9.html
+http://www.nap.edu/books/030908461X/html/90.html
+http://www.nap.edu/books/0309084628/html/34.html
+http://www.nap.edu/books/030908492X/html/1.html
+http://www.nap.edu/books/0309084938/html/13.html
+http://www.nap.edu/books/0309084997/html/105.html
+http://www.nap.edu/books/030908539X/html/66.html
+http://www.nap.edu/books/030908542X/html/1.html
+http://www.nap.edu/books/030908542X/html/108.html
+http://www.nap.edu/books/030908542X/html/145.html
+http://www.nap.edu/books/030908542X/html/222.html
+http://www.nap.edu/books/030908542X/html/41.html
+http://www.nap.edu/books/0309085470/html/119.html
+http://www.nap.edu/books/0309085489/html/207.html
+http://www.nap.edu/books/0309085497/html/238.html
+http://www.nap.edu/books/0309085497/html/350.html
+http://www.nap.edu/books/0309087015/html/112.html
+http://www.nap.edu/books/0309087015/html/41.html
+http://www.nap.edu/books/0309087023/html/21.html
+http://www.nap.edu/books/0309087252/html/63.html
+http://www.nap.edu/books/0309087341/html/99.html
+http://www.nap.edu/books/0309087376/html/132.html
+http://www.nap.edu/books/0309087376/html/183.html
+http://www.nap.edu/books/0309088534/html/171.html
+http://www.nap.edu/books/030908895X/html/7.html
+http://www.nap.edu/books/0309089093/html/9.html
+http://www.nap.edu/books/0309089301/html/9.html
+http://www.nap.edu/books/030908931X/html/129.html
+http://www.nap.edu/books/030908931X/html/62.html
+http://www.nap.edu/books/0309089484/html/29.html
+http://www.nap.edu/books/030908962X/html/42.html
+http://www.nap.edu/books/0309089980/html/51.html
+http://www.nap.edu/books/0309091365/html/167.html
+http://www.nap.edu/books/0309091454/html/24.html
+http://www.nap.edu/books/0309091640/html/93.html
+http://www.nap.edu/books/0309092205/html/63.html
+http://www.nap.edu/books/0309092213/html/76.html
+http://www.nap.edu/books/0309092329/html/121.html
+http://www.nap.edu/books/0309092329/html/97.html
+http://www.nap.edu/books/0309092582/html/268.html
+http://www.nap.edu/books/0309094437/html/1.html
+http://www.nap.edu/books/0309094445/html/96.html
+http://www.nap.edu/books/0309095018/html/31.html
+http://www.nap.edu/books/0309095182/html/8.html
+http://www.nap.edu/books/0309095204/html/30.html
+http://www.nap.edu/books/0309095409/html/1.html
+http://www.nap.edu/books/0309096596/html/R1.html
+http://www.nap.edu/books/NI000473/html/20.html
+http://www.nap.edu/books/NI000537/html/1.html
+http://www.nap.edu/books/NI000682/html/11.html
+http://www.nap.edu/catalog/10373.html
+http://www.nap.edu/catalog/10508.html
+http://www.nap.edu/execsumm/NI000444.html
+http://www.nap.edu/html/howpeople1/ch2.html
+http://www.nap.edu/html/howpeople1/ch8.html
+http://www.nap.edu/nap-cgi/chaphits.cgi?term=advertising+bans&isbn=0309089352
+http://www.nap.edu/nap-cgi/chaphits.cgi?term=economic+consequences&isbn=0309089352
+http://www.nap.edu/nap-cgi/chaphits.cgi?term=focal+segment&isbn=0309089352
+http://www.nap.edu/nap-cgi/chaphits.cgi?term=health+campaigns&isbn=0309089352
+http://www.nap.edu/nap-cgi/chaphits.cgi?term=intervention+impact&isbn=0309089352
+http://www.nap.edu/nap-cgi/chaphits.cgi?term=spirits+consumption&isbn=0309089352
+http://www.nap.edu/nap-cgi/chaphits.cgi?term=supreme+court&isbn=0309089352
+http://www.nap.edu/nap-cgi/chaphits.cgi?term=teen+court&isbn=0309089352
+http://www.nap.edu/nap-cgi/morehits.cgi?display=text&isbn=0309072735&term=%22law+enforcement%22&file=137-186.htm
+http://www.nap.edu/nap-cgi/skimit.cgi?isbn=0309047447&chap=76-130
+http://www.nap.edu/nap-cgi/skimit.cgi?isbn=0309047463&chap=468-497
+http://www.nap.edu/nap-cgi/skimit.cgi?isbn=0309074339&chap=351-394
+http://www.nap.edu/nap-cgi/skimit.cgi?isbn=0309084768&chap=198-213
+http://www.nap.edu/nap-cgi/skimit.cgi?isbn=0309091802&chap=11-40
+http://www.nap.edu/nap-cgi/skimit.cgi?isbn=030909318X&chap=95-152
+http://www.nap.edu/nap-cgi/skimit.cgi?isbn=0309093236&chap=187-204
+http://www.nap.edu/openbook/0309064244/html/33.html
+http://www.nap.edu/openbook/0309064856/html/130.html
+http://www.nap.edu/openbook/0309065577/html/178.html
+http://www.nap.edu/openbook/0309070368/html/190.html
+http://www.nap.edu/openbook/0309084997/html/
+http://www.nap.edu/openbook/0309087163/html/7.html
+http://www.nap.edu/openbook/0309090911/html/64.html
+http://www.nap.edu/openbook/0309092302/html/32.html
+http://www.nap.edu/readingroom/books/mentor/1.html
+http://www.nap.edu/readingroom/books/nses/html/6e.html
+http://www.nap.edu/readingroom/books/nses/html/solar7.html
+http://www.nap.edu/readingroom/books/researchdoc/preface.html
+http://www.napa.ufl.edu/2003news/muscledamage.htm
+http://www.napa.ufl.edu/2005news/aorta.htm
+http://www.napc.org/wor_the_cup.htm
+http://www.napeo.org/annualconference/index.cfm
+http://www.naperhomes.com/real_estate_article.asp?gi=1019&ai=204
+http://www.naperhomes.com/real_estate_article.asp?gi=1026&ai=204
+http://www.naperville.il.us/dynamic_template.cfm?doc_id=1078
+http://www.napervillechorus.org/carmina_lyrics.html
+http://www.napier.ac.uk/depts/careers/Students/leaving.htm
+http://www.naplibrary.com/history2.htm
+http://www.napnt.org/2004_07_01_arc.mediareleases.html
+http://www.napoleongames.com/forums/showpost.php?p=355&postcount=2
+http://www.napster.com/press_releases/pr_031202.html
+http://www.napswq.gov.au/about-nap.html
+http://www.napswq.gov.au/publications/iga.html
+http://www.naqshbandi.org/suhba/return.htm
+http://www.nar.org/hpcert/NARhpdetails.html
+http://www.nar.org/pinkbook/7_officials.html
+http://www.nara-wacc.org/pages/centcom/centcom04a.htm
+http://www.narehotel.co.uk/outdoors.html
+http://www.naresa.ac.lk/jss.htm
+http://www.narmada.org/ALTERNATIVES/alt/html/AlternativeEnergy.html
+http://www.narmada.org/archive/toi/dec/11mahm5.htm
+http://www.narmada.org/nba-press-releases/april-2005/Medha_SC_Response.html
+http://www.naropa.edu/humanresources/gradopenings.html
+http://www.narphonax.com/docjohn/amityville.html
+http://www.narrow-gauge.co.uk/directory/show.php?area=g
+http://www.narth.com/docs/guideme.html
+http://www.narutofan.com/index.php/content-plus,narutofan%20plus%20downloads
+http://www.nas.edu/
+http://www.nas.org/statements/defend.htm
+http://www.nasa.gov/centers/dryden/news/FactSheets/FS-084-DFRC.html
+http://www.nasa.gov/centers/glenn/about/history/centaur.html
+http://www.nasa.gov/centers/goddard/news/topstory/2003/0212suv.html
+http://www.nasa.gov/centers/johnson/news/releases/2004/H04-141.html
+http://www.nasa.gov/centers/langley/news/releases/2003/03-087.html
+http://www.nasa.gov/centers/marshall/news/news/releases/2003/03-099.html
+http://www.nasa.gov/home/hqnews/2004/apr/HQ_04141_ortiz_longo.html
+http://www.nasa.gov/lb/home/hqnews/2004/apr/HQ_04141_ortiz_longo.html
+http://www.nasa.gov/vision/space/livinginspace/Astronaut_Laundry.html
+http://www.nasabb.com/nasabbnew/hairtips1.htm
+http://www.nasabb.com/nasabbnew/keleoil1.htm
+http://www.nasaexplores.com/extras/astronauts/lu.html
+http://www.nasaexplores.com/show2_articlea.php?id=01-006
+http://www.nasaexplores.com/show2_articlea.php?id=01-062
+http://www.nasaproracing.com/hpde/theline.html
+http://www.nascar.com/
+http://www.nascar.com/2003/news/cnnsi/01/10/jburton_maloof/
+http://www.nascar.com/2004/news/features/conversation/08/31/rwallace_convo/
+http://www.nascar.com/2005/news/headlines/cup/06/19/bsaid_sonoma/
+http://www.nascar.com/2005/news/headlines/cup/06/20/dearnhardtjr.eury/
+http://www.nasda-hq.org/FMD/
+http://www.nasdaq.com/newsroom/news/pr2002/ne_section02_112.html
+http://www.naseeb.com/naseebvibes/interview-detail.php?aid=2064
+http://www.nasemsd.org/report_on_national_ems_resourc.html
+http://www.naseo.org/news/2002_03.htm
+http://www.nashuatelegraph.com/apps/pbcs.dll/article?AID=/20040803/SECTIONS12/40803033
+http://www.nashville.gov/cclerk/hotel.htm
+http://www.nashville.gov/mhc/whos_who.htm
+http://www.nasja.org/nasja/info/siteuse.htm
+http://www.nasma.net/zone1.htm
+http://www.naspa.com.au/indrel.htm
+http://www.nasponline.org/NEAT/angermgmt_general.html
+http://www.nasponline.org/NEAT/children_war.html
+http://www.nasponline.org/NEAT/children_war_general.html
+http://www.nasponline.org/NEAT/terrorism.html
+http://www.nasponline.org/publications/cq306practips.html
+http://www.naspweb.com/
+http://www.nassauclerk.org/index.cfm?FuseAction=Files.View&File_id=570&FileStore_id=1557&CFID=368844&CFTOKEN=46989456
+http://www.nastybit.blogspot.com/
+http://www.nastyz28.com/faq/geninfo.htm
+http://www.naswnyc.org/a4.html
+http://www.naswpress.org/resources/tools/01-write/guidelines_3.htm
+http://www.nat.au.dk/pages/uk1153/
+http://www.nat.au.dk/pages/uk363/
+http://www.nat.au.dk/pages/uk418/
+http://www.nat.au.dk/pages/uk4876/
+http://www.nat.au.dk/pages/uk6526/
+http://www.nat.org.uk/
+http://www.natalieportman.com/npcom.php
+http://www.natashayi.com/features_news.html
+http://www.nataviguides.com/broketemplate_annualbudget.html
+http://www.natcath.com/NCR_Online/archives/031403/031403c.htm
+http://www.natcen.ac.uk/natcen/pages/op_scotcen.htm
+http://www.natcom.org/Instruction/Competencies/college_competencies_tables2-4.htm
+http://www.natcom.org/Instruction/Pathways/5thEd.htm
+http://www.natconet.com/newsletr/qtr103/
+http://www.natconet.com/newsletr/qtr499/4q99letr.htm
+http://www.natd.com/public/INDUSTRY%20STANDARDS%20AND%20DEFINITIONS%202002.htm
+http://www.nateurope.com/products.php?svArticleGroup=PMC
+http://www.natfhe.org.uk/anc2002/satdaypm.html
+http://www.nathanielbranden.net/dis/2219.shtml
+http://www.nathanielturner.com/africancenterededucation.htm
+http://www.nathanielturner.com/cleansingprologue.htm
+http://www.nathanielturner.com/richardwright3.htm
+http://www.nathannewman.org/log/archives/001140.shtml
+http://www.national.com/appinfo/power/lighting.html
+http://www.national.org.nz/Article.aspx?ArticleID=4126
+http://www.nationalach.com/
+http://www.nationalarchives.gov.uk/accessions/1998/98digests/politics.htm
+http://www.nationalarchives.gov.uk/pathways/firstworldwar/spotlights/blockade.htm
+http://www.nationalcatholicreporter.org/washington/wnb071404.htm
+http://www.nationalcatholicreporter.org/word/
+http://www.nationalcatholicreporter.org/word/word012005.htm
+http://www.nationalcoalition.org/culture/articles/sspartners.html
+http://www.nationalcowboymuseum.org/research/r_a_fras.html
+http://www.nationalcyclingstrategy.org.uk/vbulletin229/upload/archive/index.php/t-109.html
+http://www.nationalcyclingstrategy.org.uk/vbulletin229/upload/archive/index.php/t-92.html
+http://www.nationalcyclingstrategy.org.uk/vbulletin229/upload/showthread.php?t=109
+http://www.nationalcyclingstrategy.org.uk/vbulletin229/upload/showthread.php?t=92
+http://www.nationaldefensemagazine.org/issues/2001/Dec/Munitions_Sector.htm
+http://www.nationaldefensemagazine.org/issues/2003/Jan/a-12.htm
+http://www.nationaledtechplan.org/actionsteps.asp
+http://www.nationalexpressgroup.com/nx/cr/policies/humanrights/
+http://www.nationalgeographic.co.uk/watch/default.asp?Currentdate=2/7/2005
+http://www.nationalgeographic.com/adventure/0406/excerpt5.html
+http://www.nationalgeographic.com/ngkids/games/games_main.html
+http://www.nationalgeographic.com/ngm/0010/feature4/
+http://www.nationalgeographic.com/xpeditions/lessons/08/g35/seaslighting.html
+http://www.nationalgeographic.com/xpeditions/lessons/08/g68/ccwhalesounds.html
+http://www.nationalgeographic.com/xpeditions/lessons/08/g68/seasshark.html
+http://www.nationalgeographic.com/xpeditions/lessons/10/gk2/fairytale.html
+http://www.nationalgeographic.com/xpeditions/lessons/15/g35/givemehome.html
+http://www.nationalist.org/docs/law/branch.html
+http://www.nationaljewish.org/medfacts/energy.html
+http://www.nationalmssociety.org/%5CMUCS_health.asp
+http://www.nationalmssociety.org/Brochures-Clear%20Thinking.asp
+http://www.nationalmssociety.org/Brochures-On%20Gait.asp
+http://www.nationalmssociety.org/Brochures-SomeoneYouknow.asp
+http://www.nationalmssociety.org/FLN/event/event_page.asp?p=24546&e=10257
+http://www.nationalmssociety.org/Federal-Spring2004.asp
+http://www.nationalmssociety.org/IMSJan04-Pain.asp
+http://www.nationalmssociety.org/VAB/event/event_detail.asp?e=8754
+http://www.nationalmssociety.org/VAB/home/privacy.asp
+http://www.nationalparks.nsw.gov.au/npws.nsf/Content/Sydneys+top+whale+watching+spot
+http://www.nationalpartnership.org/default.aspx?tabname=library&fileid=196
+http://www.nationalradio.com/tt_PPahApril04.shtml
+http://www.nationalreview.com/01jun98/nadler060198.html
+http://www.nationalreview.com/THECORNER/03_09_14_CORNER-ARCHIVE.ASP
+http://www.nationalreview.com/blyth/blyth200412160826.asp
+http://www.nationalreview.com/buckley/buckley200312051231.asp
+http://www.nationalreview.com/comment/comment-singer060203.asp
+http://www.nationalreview.com/comment/comment-smith011603.asp
+http://www.nationalreview.com/comment/donnelly200505090921.asp
+http://www.nationalreview.com/comment/duncan200405170818.asp
+http://www.nationalreview.com/comment/frist200503181027.asp
+http://www.nationalreview.com/comment/karnick200401301312.asp
+http://www.nationalreview.com/comment/rosett200404182336.asp
+http://www.nationalreview.com/comment/schaeffer200403010923.asp
+http://www.nationalreview.com/comment/sirico200407290001.asp
+http://www.nationalreview.com/derbyshire/derbyshire200403241040.asp
+http://www.nationalreview.com/editorial/editors200505161044.asp
+http://www.nationalreview.com/europress/boyles200404230956.asp
+http://www.nationalreview.com/flashback/flashback200501050715.asp
+http://www.nationalreview.com/frum/diary122302.asp
+http://www.nationalreview.com/gaffney/gaffney042303.asp
+http://www.nationalreview.com/hanson/hanson200506100747.asp
+http://www.nationalreview.com/impromptus/impromptus062603.asp
+http://www.nationalreview.com/kopel/kopel012703.asp
+http://www.nationalreview.com/kopel/kopel200309221255.asp
+http://www.nationalreview.com/kudlow/kudlow200505051554.asp
+http://www.nationalreview.com/levin/levin072302.asp
+http://www.nationalreview.com/lowry/lowry200410151203.asp
+http://www.nationalreview.com/nordlinger/nordlinger200506080746.asp
+http://www.nationalreview.com/nrof_bartlett/bartlett200501271039.asp
+http://www.nationalreview.com/nrof_bartlett/bartlett200506150907.asp
+http://www.nationalreview.com/nrof_comment/tamny200504080923.asp
+http://www.nationalreview.com/nrof_comment/tamny200506240838.asp
+http://www.nationalreview.com/nrof_leuffer/leuffer012703.asp
+http://www.nationalreview.com/nrof_luskin/luskin200501110842.asp
+http://www.nationalreview.com/owens/owens200401270825.asp
+http://www.nationalreview.com/robbins/robbins200407270837.asp
+http://www.nationalreview.com/robbins/robbins200506060801.asp
+http://www.nationalreview.com/rosett/rosett200407130834.asp
+http://www.nationalreview.com/rubin/rubin200405180836.asp
+http://www.nationalreview.com/seipp/seipp200502080732.asp
+http://www.nationalreview.com/thecorner/04_03_21_corner-archive.asp
+http://www.nationalreview.com/thecorner/04_07_25_corner-archive.asp
+http://www.nationalreview.com/thecorner/04_09_05_corner-archive.asp
+http://www.nationalreview.com/thecorner/04_09_26_corner-archive.asp
+http://www.nationalreview.com/thecorner/04_11_04_corner-archive.asp
+http://www.nationalreview.com/thecorner/05_01_16_corner-archive.asp
+http://www.nationalreview.com/thecorner/05_01_30_corner-archive.asp
+http://www.nationalreview.com/thecorner/05_03_27_corner-archive.asp
+http://www.nationalreview.com/thecorner/05_05_08_corner-archive.asp
+http://www.nationalreview.com/thecorner/05_06_05_corner-archive.asp
+http://www.nationalreview.com/thecorner/05_06_12_corner-archive.asp
+http://www.nationalreview.com/thecorner/2002_04_28_corner-archive.asp
+http://www.nationalreview.com/thecorner/corner.asp
+http://www.nationalreview.com/york/york-issue112901.shtml
+http://www.nationalreview.com/york/york021102.shtml
+http://www.nationalreview.com/york/york061203.asp
+http://www.nationalreview.com/york/york071002.asp
+http://www.nationalreview.com/york/york200405270829.asp
+http://www.nationalreviewofmedicine.com/issue/2004_01_15/article04.html
+http://www.nationalrrmuseum.org/collections-019-historical-outline.html
+http://www.nationalsecurity.gov.au/agd/www/nationalsecurityhome.nsf/Page/RWP9B017663B19BF3B2CA256F0F001F06EA
+http://www.nationalstonecentre.org.uk/euas/appendices/app18industryactivities2.htm
+http://www.nationalstonecentre.org.uk/euas/logistics/supervison.htm
+http://www.nationalterroralert.com/readyguide/anthraxtreatment.htm
+http://www.nationaltrust.org.uk/main/placestovisit/northern_ireland.html
+http://www.nationaltrust.org.uk/main/thingstodo/events/default.asp?propertyID=84
+http://www.nationaltrust.org.uk/webpack/bin/webpack.exe/livebase?object=LiveBase1&itemurn=1744&mode=wbFullItem
+http://www.nationaltrust.org/Magazine/current/cover.htm
+http://www.nationalunderwriter.com/nucatalog/showall.asp?lk_id=&mscssid=
+http://www.nationalwind.org/publications/wes/wes06.htm
+http://www.nationalwind.org/publications/wes/wes08.htm
+http://www.nationarchive.com/Summaries/v095i2465_03.htm
+http://www.nationaudio.com/News/DailyNation/28122003/Comment/Comment281220030.html
+http://www.nationjob.com/company/cfbg
+http://www.nationjob.com/company/wssi
+http://www.nationmakers.com/chap18.htm
+http://www.nationmaster.com/
+http://www.nationmaster.com/country/br
+http://www.nationmaster.com/encyclopedia/1754
+http://www.nationmaster.com/encyclopedia/Central-Bank-and-Financial-Services-Authority-of-Ireland
+http://www.nationmaster.com/encyclopedia/Charles-Watson_Wentworth,-2nd-Marquess-of-Rockingham
+http://www.nationmaster.com/encyclopedia/February-Revolution
+http://www.nationmaster.com/encyclopedia/Five_Year-Plan
+http://www.nationmaster.com/encyclopedia/Five_year-plan
+http://www.nationmaster.com/encyclopedia/Glass
+http://www.nationmaster.com/encyclopedia/Louis-XV-of-France
+http://www.nationmaster.com/encyclopedia/Mary-I-of-Scotland
+http://www.nationmaster.com/encyclopedia/Scotland
+http://www.nationofimmigrators.com/?p=21
+http://www.nationwide.co.uk/savingsinvestments/existing-investors/
+http://www.nationwideinternational.com/operating_files/pay_in/sterling_applydirectdebit.htm
+http://www.native-net.org/archive/ne/94a/0073.html
+http://www.native-net.org/archive/nl/9301/0042.html
+http://www.nativeinstruments.de/index.php?id=1814&type=1&ftu=87864865ea
+http://www.nativeinstruments.de/index.php?id=1814&type=1&ftu=90985b90b2
+http://www.nativeknowledge.org/db/files/tp186.htm
+http://www.nativepeoples.com/np_nov-dec/nd00-viewpoint/nd00-viewpoint.html
+http://www.nativeremedies.com/acne_gel.shtml
+http://www.nativeremedies.com/testimonials/uti-holistic-urinary-treatment.html
+http://www.natives.co.uk/resorts/tig/
+http://www.natlbcc.org/nbccf/info/evidence.html
+http://www.nato-pa.int/Default.asp?SHORTCUT=400
+http://www.nato.int/docu/basictxt/bt-a6.htm
+http://www.nato.int/docu/basictxt/treaty.htm
+http://www.nato.int/docu/comm/49-95/c671213a.htm
+http://www.nato.int/docu/handbook/2001/hb070101.htm
+http://www.nato.int/docu/review/2001/0102-07.htm
+http://www.nato.int/docu/review/2003/issue3/english/interview.html
+http://www.nato.int/docu/review/2003/issue3/english/military.html
+http://www.nato.int/docu/review/2003/issue4/english/art1.html
+http://www.nato.int/docu/review/2004/issue3/english/art4.html
+http://www.nato.int/docu/review/2005/issue2/english/art1.html
+http://www.nato.int/docu/update/2004/02-february/index-e.htm
+http://www.nato.int/ims/2001/win/hungary.htm
+http://www.nato.int/sfor/trans/2003/t030527a.htm
+http://www.nato.int/shape/news/2005/05/i050518a.htm
+http://www.natoa.org/links/
+http://www.natpact.nhs.uk/competency_framework/partnership/Integrated_service_provision/
+http://www.natpact.nhs.uk/competency_framework/partnership/Integrated_service_provision/index.php
+http://www.natpact.nhs.uk/competency_framework/service_provision/Equality_and_diversity/index.php
+http://www.natpact.nhs.uk/competency_framework/service_provision/Workforce_planning/index.php
+http://www.natsoc.org.uk/
+http://www.natsoc.org.uk/teachers/staffinreligiousschool.php
+http://www.nattax.com/fedbasic.htm
+http://www.nattax.com/higher.htm
+http://www.nattax.com/testimonials.htm
+http://www.natur.cuni.cz/~sykora/text/eps.htm
+http://www.natural-law-party.org.uk/UKmanifesto/geneticengineering3.htm
+http://www.naturalchild.com/advice/q23.html
+http://www.naturalchild.com/guest/karen_walant2.html
+http://www.naturalchild.com/whatever_happened/chapter4.html
+http://www.naturaldocs.org/documentation/html/files/Modules/NaturalDocs/Languages/ActionScript-pm.html
+http://www.naturalfamilyonline.com/articles/winter.htm
+http://www.naturalhealthmag.com/energy/6
+http://www.naturalhealthvillage.com/
+http://www.naturalhealthweb.com/articles/Adams3.html
+http://www.naturalhealthweb.com/articles/weed15.html
+http://www.naturalhealthweb.com/topics/subtopics/weight_management.html
+http://www.naturalhistory.bc.ca/VNHS/Birding/Birding.htm
+http://www.naturalhub.com/
+http://www.naturallaw.org.nz/genetics/HandBook/9.htm
+http://www.naturallythere4you.com/news_index3102.html
+http://www.naturalmom.com/fluoride.htm
+http://www.naturalphysiques.com/cms/index.php?itemid=19&catid=9
+http://www.naturalphysiques.com/tools.php?itemid=19
+http://www.naturalphysiques.com/tools.php?itemid=19&catid=9
+http://www.naturalselling.com/
+http://www.naturalstrength.com/weightroom/detail.asp?ArticleID=164
+http://www.nature.com/bjc/journal/v89/n8/full/6601287a.html
+http://www.nature.com/bjc/journal/v89/n8/full/6601297a.html
+http://www.nature.com/bjp/journal/v144/n1/full/0706038a.html
+http://www.nature.com/celldivision/milestones/full/milestone03.html
+http://www.nature.com/cgi-taf/DynaPage.taf?file=/gt/journal/v11/n1s/full/3302381a.html&filetype=pdf
+http://www.nature.com/cgi-taf/DynaPage.taf?file=/nature/journal/v419/n6906/full/nature00988_r.html&filetype=&dynoptions=
+http://www.nature.com/cgi-taf/DynaPage.taf?file=/nature/journal/v427/n6971/full/427213a_r.html&filetype=&dynoptions=
+http://www.nature.com/cgi-taf/DynaPage.taf?file=/nm/journal/v7/n1/full/nm0101_33.html
+http://www.nature.com/cgi-taf/DynaPage.taf?file=/nmat/journal/v2/n1/full/nmat788.html&filetype=pdf
+http://www.nature.com/cgi-taf/dynapage.taf?file=/emboj/journal/v23/n23/abs/7600458a.html
+http://www.nature.com/cgi-taf/dynapage.taf?file=/emboj/journal/v23/n23/full/7600458a.html
+http://www.nature.com/cgi-taf/dynapage.taf?file=/labinvest/journal/v80/n12/full/3780189a.html
+http://www.nature.com/cgi-taf/dynapage.taf?file=/labinvest/journal/v80/n12/full/3780189a.html&filetype=pdf
+http://www.nature.com/doifinder/10.1038/nature03236
+http://www.nature.com/doifinder/10.1038/nn1017
+http://www.nature.com/drugdisc/nj/articles/nj6893-04a.html
+http://www.nature.com/genomics/papers/human.html
+http://www.nature.com/horizon/chemicalspace/highlights/s5_nonspec1.html
+http://www.nature.com/ijo/journal/v29/n1/full/0802842a.html
+http://www.nature.com/jea/journal/vaop/ncurrent/full/7500421a.html
+http://www.nature.com/modpathol/journal/vaop/ncurrent/full/3800396a.html
+http://www.nature.com/nature/about/first/eclipse.html
+http://www.nature.com/nature/debates/women/women_contents.html
+http://www.nature.com/nature/first/eclipse.html
+http://www.nature.com/nature/focus/accessdebate/33.html
+http://www.nature.com/nature/fow/
+http://www.nature.com/nature/journal/v433/n7021/full/nature03086.html
+http://www.nature.com/nature/journal/v433/n7024/full/nature03072.html
+http://www.nature.com/nature/journal/v434/n7031/full/434274a.html
+http://www.nature.com/nature/journal/v434/n7034/full/434688a.html
+http://www.nature.com/nature/journal/v434/n7036/full/434941a.html
+http://www.nature.com/nature/journal/v434/n7036/full/nature03454.html
+http://www.nature.com/nature/journal/v435/n7041/full/435400a.html
+http://www.nature.com/nature/journal/v435/n7042/
+http://www.nature.com/nature/journal/v435/n7042/full/nj7042-709a.html
+http://www.nature.com/nature/journal/v435/n7044/
+http://www.nature.com/nature/techfeatures/
+http://www.nature.com/nbt/journal/v22/n10/full/nbt1018.html
+http://www.nature.com/ncb/journal/v5/n12/full/ncb1072.html
+http://www.nature.com/ncb/journal/v6/n5/full/ncb0504-377.html
+http://www.nature.com/nchembio/authors/ed_process/
+http://www.nature.com/ncpcardio/journal/v1/n2/full/ncpcardio0060.html
+http://www.nature.com/ncpcardio/journal/v2/n1/full/ncpcardio0065.html
+http://www.nature.com/ncpuro/journal/v1/n1/full/ncpuro0016.html
+http://www.nature.com/neuro/press_release/nn0100.html
+http://www.nature.com/news/1999/991028/full/991028-5.html
+http://www.nature.com/news/2000/000309/full/000309-9.html
+http://www.nature.com/news/2000/000914/full/000914-10.html
+http://www.nature.com/news/2002/020819/full/020819-7.html
+http://www.nature.com/news/2003/030120/full/030120-4.html
+http://www.nature.com/news/2004/040223/full/040223-3.html
+http://www.nature.com/news/2004/040223/pf/427774a_pf.html
+http://www.nature.com/news/2004/040322/full/428362a.html
+http://www.nature.com/news/2004/040531/full/040531-9.html
+http://www.nature.com/news/2004/040621/pf/429800a_pf.html
+http://www.nature.com/news/2004/040719/full/040719-3.html
+http://www.nature.com/news/2004/040802/full/040802-3.html
+http://www.nature.com/news/2004/041129/full/041129-9.html
+http://www.nature.com/news/2004/041206/full/nbt1204-1497.html
+http://www.nature.com/news/2005/050117/full/050117-12.html
+http://www.nature.com/news/2005/050307/full/050307-2.html
+http://www.nature.com/news/2005/050404/full/434688a.html
+http://www.nature.com/news/2005/050620/full/4351008a.html
+http://www.nature.com/ng/journal/vaop/ncurrent/full/ng1582.html
+http://www.nature.com/nphys/authors/editorial_process.html
+http://www.nature.com/wcs/a26.html
+http://www.nature.nps.gov/hazardssafety/toxic/howtouse.cfm
+http://www.nature.nps.gov/protectingrestoring/IM/resourceinventories.cfm
+http://www.nature.shetland.co.uk/
+http://www.natureboundaustralia.com/didyouknow/default.php
+http://www.naturehills.com/new/product/productdetails.aspx?proname=Canadian+Hemlock
+http://www.naturehills.com/new/product/productdetails.aspx?proname=Swamp+White+Oak
+http://www.naturenet.net/trees/tpo.htm
+http://www.naturepark.com/act.htm
+http://www.naturescapes.net/112004/ej1104.htm
+http://www.naturesgift.com/essential/descriptionm-o.htm
+http://www.naturesgift.com/special.htm
+http://www.naturesorganics.com.au/product_availability.htm
+http://www.naturespet.com/accessories.html
+http://www.naturespet.com/treats.html
+http://www.naturetrek.co.uk/responsible-tourism.asp
+http://www.natvan.com/american-dissident-voices/adv072493.html
+http://www.naukri.com/lls/pat/ordinanc.htm
+http://www.naukriguru.com/privacy.asp
+http://www.nauticalmind.com/customer/pages.php?pageid=3
+http://www.nautilus.org/DPRKBriefingBook/economy/APCSSreport.html
+http://www.nautilus.org/fora/security/0227A_Siga.html
+http://www.nautilus.org/fora/security/0331_Frank.html
+http://www.nauvoonews.com/temple/finished/openhouse/Now_and_then.htm
+http://www.navajonationcouncil.org/KTNN/051304_ktnn.htm
+http://www.navajonationcouncil.org/Sept_pr/090804-budget.htm
+http://www.naval-technology.com/projects/t23/
+http://www.navanet.org/press/SixAnnuityQuestionsRelease_FINAL.htm
+http://www.navis.gr/manager/imp_com.htm
+http://www.navs.org/research/arguments.cfm?SectionID=Research
+http://www.navy-nex.com/command/employment/handbook/ch3.htm
+http://www.navy.com/faq
+http://www.navy.forces.gc.ca/marpac/base-units/marpac_base-units_e.asp?category=6&title=27
+http://www.navy.mil.nz/rnzn/article.cfm?article_id=115&article_type=discuss
+http://www.navyleague.ca/eng/about/
+http://www.navyleague.org/seapower/operation_desert_fox.htm
+http://www.navynews.co.uk/articles/2002/0206/1002061901.asp
+http://www.navyseals.com/community/articles/article.cfm?id=5772
+http://www.nawgj.org/marian_dykes.htm
+http://www.nawol.org/
+http://www.nayre.org/cj.htm
+http://www.nazi.org/community/columns/lindstrom/column7/
+http://www.nba.com/blog/blog31.html
+http://www.nba.com/bulls/news/hinrich_feature_030827.html
+http://www.nba.com/features/bobcats_040623.html
+http://www.nba.com/hawks/news/Ivey_feature_101304.html
+http://www.nba.com/hawks/news/draftpicks_meetmedia_040628.html
+http://www.nba.com/heat/community/southfloridabloodbanks_041001.html
+http://www.nba.com/hornets/news/fan_guide.html
+http://www.nba.com/jrnba/coaches/Coachs_Guide_Part_9.html
+http://www.nba.com/raptors/history/200304.html
+http://www.nba.com/sonics/news/pf041028.html
+http://www.nba.com/suns/news/nash_presser_040714.html
+http://www.nba.com/suns/news/sarver_ua_050518.html
+http://www.nba.com/suns/news/skiles_presser_transcript.html
+http://www.nba.com/suns/news/stoudemire_030207.html
+http://www.nba.com/warriors/community/season_of_giving.html
+http://www.nbbd.com/godo/tpi/
+http://www.nbc.com/Fear_Factor/rewind/301_rewind.shtml
+http://www.nbc.com/Fear_Factor/rewind/index.shtml
+http://www.nbc.com/boards/SNL_0405/thread-112790-5.html
+http://www.nbc.com/boards/SNL_0405/thread-120176-2.html
+http://www.nbc.com/boards/SNL_0405/thread-125711-4.html
+http://www.nbc.com/boards/SNL_0405/thread-136173-8.html
+http://www.nbc.com/nbc/The_Apprentice_3/episode_recaps/index.shtml
+http://www.nbc.com/nbc/footer/NBC_Studio_Pass.shtml
+http://www.nbc.gov/cci/matrix.cfm
+http://www.nbc10.com/employmentadvice/962683/detail.html
+http://www.nbc11.com/food/4106137/detail.html
+http://www.nbc30.com/rowland/2754352/detail.html
+http://www.nbc4.tv/entertainment/3651161/detail.html
+http://www.nbc4.tv/news/2415988/detail.html
+http://www.nbc4i.com/
+http://www.nbc4i.com/entertainment/3651161/detail.html
+http://www.nbc4i.com/winterhomecare/4104160/detail.html
+http://www.nber.org/2002japanconf/ito_discussion.html
+http://www.nber.org/aginghealth/spring03/w9782.html
+http://www.nber.org/cycles/july2003.html
+http://www.nber.org/digest/jun04/w10191.html
+http://www.nber.org/papers/W5536
+http://www.nber.org/papers/W7527
+http://www.nber.org/papers/w6541
+http://www.nber.org/reporter/spring05/moretti.html
+http://www.nbgh.org/wolfson.html
+http://www.nbi.ac.za/anreview2021/market.htm
+http://www.nbi.dk/NBA/files/sem/symp/whitemore.html
+http://www.nbm.org/blueprints/95s/winter99/page2/page2.htm
+http://www.nbma.com/news/other/rev.html
+http://www.nbnnews.com/NBN/issues/2004-12-06/Business+Management/
+http://www.nbnnews.com/NBN/textonly/2003-07-21/Seniors+Housing/
+http://www.nbnnews.com/eyeonecon/issues/2005-06-01.html
+http://www.nbportal.com/travel-destinations/kenya/diani-beach/
+http://www.nbr.co.nz/home/column_article.asp?id=12246&cid=4&cname=Business+Today
+http://www.nbri-lko.org/ecoeducation.htm
+http://www.ncaa.org/convention/2003/state_of_association.html
+http://www.ncaa.org/releases/miscellaneous/2004/2004022301ms.htm
+http://www.ncac.org/issues/cyberlibrary.html
+http://www.ncacihe.org/index.php?option=com_content&task=view&id=36&Itemid=81
+http://www.ncad.ie/news/events.html
+http://www.ncae.org/structure/beliefs/positions/timetoteach.shtml
+http://www.ncahf.org/digest02/02-01.html
+http://www.ncahf.org/pp/acu.html
+http://www.ncahigherlearningcommission.org/resources/electronic_degrees/
+http://www.ncahlc.org/index.php?option=com_content&task=view&id=36&Itemid=81
+http://www.ncalcricket.org/html/clubs/caribbean.html
+http://www.ncaonline.org/arts/ticket-summary.shtml
+http://www.ncas.npsa.nhs.uk/about/who
+http://www.ncat.org/energy_current.html
+http://www.ncat.org/liheap/reach/reacht03.htm
+http://www.ncb.org.uk/topic_detail.asp?AreaID=14
+http://www.ncbar.com/lamp/l_dvfaregl.htm
+http://www.ncbex.org/tests/mpre/mpretxt.htm
+http://www.ncbi.nlm.nih.gov/books/bv.fcgi?rid=hstat2.chapter.4409
+http://www.ncbi.nlm.nih.gov/books/bv.fcgi?rid=hstat4.section.15260
+http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=10540269&dopt=Abstract
+http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=14505772&dopt=Abstract
+http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=1703759&dopt=Abstract
+http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=6316674&dopt=Abstract
+http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=7492350&dopt=Abstract
+http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=7509755&dopt=Abstract
+http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=8168409&dopt=Abstract
+http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?holding=npg&cmd=Retrieve&db=PubMed&list_uids=2621635&dopt=Abstract
+http://www.ncbiotech.org/biotech101/glossary.cfm
+http://www.ncbl.com/post/
+http://www.ncc-1776.com/tle2004/tle295-20041031-11.html
+http://www.ncc.nsw.gov.au/news/issues/index.cfm
+http://www.ncca.gov.ph/culture&arts/profile/RA%208491.htm
+http://www.nccbi.org/NCMagazine/2001/mag10-01execprofile.htm
+http://www.ncccusa.org/ecmin/licc/Old_LICC/june2001.html
+http://www.ncccusa.org/news/04dhn.html
+http://www.ncccusa.org/unity/fandostafford.html
+http://www.nccetraining.com/mee.htm
+http://www.nccg.org/323Art-Marry2.html
+http://www.nccg.org/nefilim/ch11.html
+http://www.nccg.org/nefilim/ch6.html
+http://www.ncchc.org/pubs/CC/transsexualism.html
+http://www.nccn.org/patients/patient_gls/_english/_distress/1_introduction.asp
+http://www.nccnhr.org/public/50_156_452.cfm
+http://www.nccob.org/NCCOB/Misc/AboutUs/history.htm
+http://www.nccsia.org/article.asp?articleid=57259
+http://www.nccuslis.org/people/faculty/swain/handout.htm
+http://www.ncd.gov/newsroom/publications/2003/catalyst_theory.htm
+http://www.ncdex.com/Products/products_agro_soya.aspx?Type=Gen
+http://www.ncdoi.com/BCBSConversion.asp
+http://www.ncdot.org/dmv/driver_services/drivershandbook/chapter4/hazardousDriving.html
+http://www.ncdot.org/transit/aviation/council/governing/chapter143b.html
+http://www.ncdsa.com/44/The-Gong-Show-with-Kenny-Nature-Boy-Mollica.htm
+http://www.nceas.ucsb.edu/~alroy/TimeScale.html
+http://www.nceducationalliance.org/links/
+http://www.ncei.com/WSJ-12898.htm
+http://www.ncf.carleton.ca/~bj333/HomePage.boys.html
+http://www.ncfbc.org/lapl.htm
+http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html
+http://www.ncga.com/education/unit1/u1story.html
+http://www.ncgs.org/type0.php?pid=16
+http://www.ncgs.org/type0.php?pid=183
+http://www.ncgs.org/type0.php?pid=186
+http://www.nchems.org/news-dec2000.htm
+http://www.nchsinc.com/shop/New%20Items%20IV.htm
+http://www.nchv.org/content.cfm?id=22
+http://www.nchv.org/wheretogo.cfm
+http://www.nci.org/l/l73197.htm
+http://www.nci.org/seatrans.htm
+http://www.ncis.co.uk/sa_members.asp
+http://www.ncisse.org/conferences/cisse2004/history.htm
+http://www.ncjfcj.org/dept/ppcd/main.cfm?Action=GETFILE&filename=DesMoinesMC.pdf&artID=153
+http://www.ncjfcj.org/dept/training/brevity/
+http://www.ncjournalforwomen.com/months/2005_months/jan05/jan05smith2.htm
+http://www.ncl.ac.uk/gane/page12.htm
+http://www.ncl.ac.uk/hss/postgrad/studentprofiles/220
+http://www.ncl.ac.uk/langcen/oac/notices.htm
+http://www.ncl.ac.uk/pahs/about/services.htm
+http://www.ncl.ac.uk/sml/undergrad/YrAbroad/index.php
+http://www.ncleg.net/EnactedLegislation/Statutes/HTML/ByArticle/Chapter_58/Article_89A.html
+http://www.nclg.org.uk/book1/2_10.htm
+http://www.nclis.gov/govt/ntis/testimon.html
+http://www.nclnet.org/apecrpt3.htm
+http://www.nclrc.org/caidlr15.htm
+http://www.nclrights.org/publications/genderasylum.htm
+http://www.ncmedboard.org/
+http://www.ncmentor.org/Applications/UNC/apply/North_Carolina_Central_University.html
+http://www.ncmtns.biz/newsletter_feb.shtml
+http://www.ncnr.nist.gov/AnnualReport/FY2002_html/pages/advanced.htm
+http://www.ncnr.nist.gov/AnnualReport/FY2002_html/pages/observation.htm
+http://www.ncolr.org/jiol/archives/2003/fall/03/
+http://www.nconepal.org/proposed.htm
+http://www.ncpa.org/abo/quarterly/2001a.html
+http://www.ncpa.org/abo/quarterly/2002d.html
+http://www.ncpa.org/about/1stquarter.html
+http://www.ncpa.org/about/2ndquarter.html
+http://www.ncpa.org/about/3rdquarter.html
+http://www.ncpa.org/about/4thquarter.html
+http://www.ncpa.org/pub/st/st276/
+http://www.ncpad.org/disability/fact_sheet.php?sheet=187&section=1386
+http://www.ncpad.org/disability/fact_sheet.php?sheet=187&section=1389
+http://www.ncpad.org/disability/fact_sheet.php?sheet=187&view=all
+http://www.ncpad.org/disability/fact_sheet.php?sheet=195&section=1462
+http://www.ncpad.org/disability/fact_sheet.php?sheet=195&section=1464
+http://www.ncpamd.com/Adult_ADD.htm
+http://www.ncpamd.com/Social_Phobia.htm
+http://www.ncpamd.com/adhd.htm
+http://www.ncpamd.com/adultadd.htm
+http://www.ncpamd.com/dementia.htm
+http://www.ncpamd.com/mcjokes.htm
+http://www.ncpeacejustice.org/article.php?id=40
+http://www.ncpeacejustice.org/article.php?id=59
+http://www.ncpp.org/qajsa.htm
+http://www.ncppa.org/
+http://www.ncptsd.org/publications/cq/v7/n2/curran.html
+http://www.ncptsd.va.gov/facts/disasters/fs_children_disaster.html
+http://www.ncptsd.va.gov/treatment/cq/v4/n2/freedy_k.html
+http://www.ncptsd.va.gov/treatment/cq/v7/n4/southwick.html
+http://www.ncpublicschools.org/educators/pe_demos2001.html
+http://www.ncpublicschools.org/newsroom/facts/goodnews/
+http://www.ncpublicschools.org/student_promotion/mtg/spring02.html
+http://www.ncra-usa.org/join/ctg/join.htm
+http://www.ncra.ca/CRTC/PublicNotice/1988-161.html
+http://www.ncrealtors.org/searchpubs/THR/2002/thr-0302/impact.htm
+http://www.ncrel.org/engauge/framewk/pro/issues/proiss.htm
+http://www.ncrel.org/he/tot/think/script36.htm
+http://www.ncrel.org/info/nlp/lpf02/innovate.htm
+http://www.ncrel.org/litweb/pd/thinking.php
+http://www.ncrel.org/policy/pubs/html/weknow/chapter6.htm
+http://www.ncrel.org/policy/states/files/ilpta.htm
+http://www.ncrel.org/sdrs/areas/isbe/isbedes.htm
+http://www.ncrel.org/sdrs/areas/issues/educatrs/leadrshp/le0bow.htm
+http://www.ncrel.org/sdrs/areas/issues/educatrs/leadrshp/le4pppd.htm
+http://www.ncrel.org/sdrs/areas/issues/educatrs/profdevl/pd300.htm
+http://www.ncrel.org/sdrs/areas/issues/envrnmnt/go/go100.htm
+http://www.ncrel.org/sdrs/areas/issues/methods/technlgy/te800.htm
+http://www.ncrel.org/sdrs/areas/stw_esys/5erly_ch.htm
+http://www.ncrel.org/sdrs/edtalk/newtimes.htm
+http://www.ncrel.org/sdrs/edtalk/tef.htm
+http://www.ncrel.org/tech/challenge/common.htm
+http://www.ncreportcards.org/src/communityLeaders.jsp
+http://www.ncrlc.com/Church-of-Scotland.html
+http://www.ncrr-la.org/campaign.html
+http://www.ncrr.nih.gov/clinical/capextnd.asp
+http://www.ncrs.fs.fed.us/pubs/maps/
+http://www.ncsa.uiuc.edu/UserInfo/Resources/Hardware/IBMp690/IBM/usr/share/man/info/en_US/xlf/html/lr02.HTM
+http://www.ncsbcs.com/newsite/national%20alliance/Minutes__Afford_013004.htm
+http://www.ncsbcs.org/newsite/national%20alliance/tech_task_force/Tech_minutes_033004.htm
+http://www.ncsbs.org/crashreports/crashreports2001_1.htm
+http://www.ncsc.dni.us/ncsc/ctc4/articles/elec_b.htm
+http://www.ncsc.info/mod.php?mod=userpage&menu=19&page_id=81
+http://www.ncseonline.org/NLE/CRSreports/Risk/rsk-39.cfm
+http://www.ncseonline.org/Updates/83.htm
+http://www.ncseonline.org/ncseconference/2005conference/page.cfm?FID=2504
+http://www.ncseonline.org/updates/83.htm
+http://www.ncset.org/publications/essentialtools/dropout/intro.asp
+http://www.ncseweb.org/resources/articles/5400_legal_background_2_15_2001.asp
+http://www.ncseweb.org/resources/articles/9472_part_04_dr_william_dembski__10_31_2002.asp
+http://www.ncseweb.org/resources/articles/9928_58_sonleitner_what39s_wr_11_24_2004.asp
+http://www.ncseweb.org/resources/news/2004/OH/832_critical_analysis_of_evolutio_3_10_2004.asp
+http://www.ncseweb.org/resources/rncse_content/vol18/9954_the_1998_international_confere_12_30_1899.asp
+http://www.ncsl.org/programs/esnr/96TECH.HTM
+http://www.ncsl.org/programs/health/forum/olmsreport.htm
+http://www.ncsl.org/programs/transportation/trafsafleg01.htm
+http://www.ncsl.org/statefed/ib970707.htm
+http://www.ncsociology.org/sociationtoday/v22/south.htm
+http://www.ncsociology.org/south.htm
+http://www.ncss.org/election/
+http://www.ncsu.edu/greek_life/councils/IFC/caldwell.htm
+http://www.ncsu.edu/meridian/2000wint/inclusive/method.html
+http://www.ncsu.edu/meridian/sum2000/elecnet/
+http://www.ncsu.edu/scivis/lessons/machines/machines.html
+http://www.ncsu.edu/stud_orgs/frat_sor/zta/zetahistory.shtml
+http://www.ncsu.edu/study_abroad/places/africa/ghana_spring.html
+http://www.ncsu.edu/studyabroad/cost/fa.html
+http://www.ncsu.edu/studyabroad/places/europe/florence.html
+http://www.ncsustainableenergy.org/renewable/cleanenergy.html
+http://www.ncsustainableenergy.org/renewable/tax-credits.html
+http://www.ncsymphony.org/index.cfm
+http://www.ncte-in.org/pub/unesco/ch9.htm
+http://www.ncte-in.org/pub/unesco/introduction.htm
+http://www.ncte.org/groups/affiliates/mtgs/117882.htm
+http://www.nctimes.com/
+http://www.nctimes.com/articles/2004/09/13/special_reports/homes/21_49_179_10_04.txt
+http://www.nctimes.com/articles/2004/09/27/special_reports/homes/21_26_089_24_04.txt
+http://www.nctimes.com/articles/2004/10/09/special_reports/homes/22_11_4510_8_04.txt
+http://www.nctimes.com/articles/2005/01/12/news/inland/poway/0_18_361_12_05.txt
+http://www.nctimes.com/articles/2005/02/03/news/coastal/23_14_162_2_05.txt
+http://www.nctimes.com/articles/2005/02/03/obituaries/feature/2_2_0522_25_30.txt
+http://www.nctimes.com/articles/2005/06/09/news/politics/20_30_416_8_05.txt
+http://www.nctimes.com/articles/2005/06/12/news/top_stories/22_41_056_11_05.txt
+http://www.nctimes.com/articles/2005/06/30/news/inland/san_marcos/22_47_536_29_05.txt
+http://www.nctimes.com/front
+http://www.ncu.edu.tw/~ncu7006/eng2/event/event.php?uid=8
+http://www.ncver.edu.au/publications/1532.html
+http://www.ncvhs.hhs.gov/000330mn.htm
+http://www.ncvo-vol.org.uk/asp/search/ncvo/main.aspx?siteID=1&sID=18&subSID=187&documentID=308
+http://www.ncvo-vol.org.uk/asp/search/ncvo/main.aspx?siteID=1&sID=18&subSID=88&documentID=1930
+http://www.ncvo-vol.org.uk/asp/search/ncvo/main.aspx?siteID=1&sID=8&subSID=116&documentID=2359
+http://www.ncvo-vol.org.uk/asp/search/ncvo/main_textonly.aspx?siteID=1&sID=18&subSID=187&documentID=308
+http://www.ncw-av.com/ncwterms.html
+http://www.ncw.wsu.edu/treefruit/fireblight/2000f.htm
+http://www.ncw.wsu.edu/treefruit/fireblight/mdl98c.htm
+http://www.ncwd-youth.info/resources_&_Publications/disability_Legislation/wia.shtml
+http://www.ncwd-youth.info/resources_&_Publications/hot_Topics/preparatory_Experiences/youth.shtml
+http://www.ncwd-youth.info/resources_&_Publications/hot_Topics/youth_Development/youth_family.shtml
+http://www.ncwildflower.org/plants/gentianopsis_crinita/gentianopsis_crinita.htm
+http://www.ncwine.org/02sfwinners.htm
+http://www.nczonline.net/
+http://www.nd.edu/~crosenbe/jobs.html
+http://www.nd.edu/~dbates1/math105/summary.html
+http://www.nd.edu/~kellogg/undergrad/scholars.html
+http://www.nd.edu/~music/courses/previouscourses/ugrad_spring03.html
+http://www.nd.edu/~ndbizmag/issue9/opinion.shtml
+http://www.nda.ox.ac.uk/wfsa/html/u02/u02_003.htm
+http://www.nda.ox.ac.uk/wfsa/html/u06/u06_006.htm
+http://www.nda.ox.ac.uk/wfsa/html/u12/u1212_01.htm
+http://www.nda.ox.ac.uk/wfsa/html/u18/u1810_01.htm
+http://www.nda.ox.ac.uk/wfsa/html/u18/u1813_01.htm
+http://www.ndc-md.org/ndc/dcompetition.html
+http://www.ndcs.org.uk/treks_challenges/fundraising_information/focus_on_a_fundraiser/cycle_cuba.html
+http://www.ndcs.org.uk/treks_challenges/uk_challenges/training_tips/
+http://www.ndctz.com/kilindpark.htm
+http://www.nde.state.ne.us/COMMISH/febart2.html
+http://www.nderf.org/trisha_h's_nde.htm
+http://www.ndga.net/whatisdg.htm
+http://www.ndia.org/Content/NavigationMenu/Resources1/Presidents_Corner2/February_2002.htm
+http://www.ndia.org/Content/NavigationMenu/Resources1/Presidents_Corner2/January_2003.htm
+http://www.ndia.org/Content/NavigationMenu/Resources1/Presidents_Corner2/July_2004.htm
+http://www.ndia.org/PrinterTemplate.cfm?Section=Presidents_Corner2&Template=/ContentManagement/HTMLDisplay.cfm&ContentID=5066
+http://www.ndif.org/Article/jar-286.html
+http://www.ndow.org/wild/animals/facts/squirrel_rock.shtm
+http://www.ndoylefineart.com/design1.html
+http://www.ndoylefineart.com/drawexercise1.html
+http://www.ndoylefineart.com/gesture3.html
+http://www.ndoylefineart.com/mechanics4.html
+http://www.ndoylefineart.com/ringgold.html
+http://www.ndrcc.com/ndrcc_flying_field_rules.htm
+http://www.ndsmcobserver.com/news/2003/10/09/Sports/Howard.Looks.To.End.Season.With.Upset.Of.Unbeaten.Lewis-523920.shtml
+http://www.ndsu.edu/counseling/successstrategies/friends.shtml
+http://www.ndsu.nodak.edu/communication/masters/grdclss.php
+http://www.ndsu.nodak.edu/ndsu/kbrooks/blog/
+http://www.ndt.net/article/wcndt2004/html/htmltxt/450_sjerve.htm
+http://www.ndu.edu/ctnsp/biosensing_05.htm
+http://www.ndu.edu/ctnsp/dh40.htm
+http://www.ndu.edu/inss/McNair/mcnair42/m042ch07.html
+http://www.ndu.edu/inss/books/Books%20-%201990%20to%201995/Dominant%20Battlespace%20Knowledge%20-%20Oct%2095/dbkch04.html
+http://www.ndu.edu/inss/books/Books_2002/Globalization_and_Maritime_Power_Dec_02/02_ch01.htm
+http://www.ndu.edu/inss/strforum/SF159/forum159.html
+http://www.nea.org/lessons/tt021209.html
+http://www.nea.org/socialsecurity/stories.html
+http://www.nea.org/socialsecurity/stories.html?mode=print
+http://www.nea.org/teachexperience/tsklk040621.html
+http://www.neahs.nsw.gov.au/web/learning-services/awards-grants.shtml
+http://www.nealpollack.com/
+http://www.nealstephenson.com/content/author_bad.htm
+http://www.near-death.com/bubulka.html
+http://www.near-death.com/dennis.html
+http://www.near-death.com/differences.html
+http://www.near-death.com/experiences/evidence07.html
+http://www.near-death.com/experiences/evidence10.html
+http://www.near-death.com/experiences/suicide07.html
+http://www.near-death.com/famous.html
+http://www.near-death.com/religion.html
+http://www.near-death.com/tart.html
+http://www.nearstar.org/v2/joinFAQ.asp
+http://www.neasc.org/cpss/visit_protocol.htm
+http://www.neasc.org/ctci/policy_statement_electronically_offered_degree.htm
+http://www.neatsolutions.com/Healthy%20Food%20Choices/Garden.htm
+http://www.neaturl.com/rules.html
+http://www.nebraskahistory.org/histpres/nrhp.htm
+http://www.nebridalguide.com/
+http://www.nec-mitsubishi.com/coremedia/generator/index,spec=x__uk__en,realm=Company__TermsAndConditions
+http://www.nec.ac.uk/debates/category-browse?category_id=2282
+http://www.nec.ac.uk/debates/category-browse?category_id=2502
+http://www.nec.ac.uk/info/news-item?news_item_id=103055
+http://www.nec.ac.uk/resources/category-browse?category_id=458
+http://www.nec.co.uk/MultiSync_VT770.aspx
+http://www.necanoe.org/Training.htm
+http://www.necelam.com/news/index.php?Subject=detail&page=SID2005
+http://www.necg.com.au/JustDoIPArchive/issue050415_270.shtml
+http://www.nechville.com/testimonials.html
+http://www.necnp.org/files/newsletters/otw1199.html
+http://www.ned.org/events/anniversary/oct1603-Bush.html
+http://www.nedlac.org.za/top.asp?inc=docs/reports/annual/1999/trade.html
+http://www.nedlac.org.za/top.asp?inc=summit/1997/labour.html
+http://www.nedo.go.jp/english/archives/170601/170601.html
+http://www.needabreak.com/mtl/nabfire.nsf/NABMAPSEARCHRESULTS?ReadForm&pn=5&st=1&ed=10&pets=0
+http://www.needcoffee.com/
+http://www.needlenose.com/node/view/1453
+http://www.neelb.org.uk/administration/humanresources/eqlops/ad00034a.asp
+http://www.neelb.org.uk/administration/humanresources/eqlops/ad00039a.asp
+http://www.neelb.org.uk/administration/humanresources/eqlops/ad00040a.asp
+http://www.nees.lehigh.edu/index.php/fuseaction/manual.2
+http://www.neforestry.org/forestry/proutywoods.asp
+http://www.neh.gov/grants/grantsgov/hifacultyhbcuinstructions.html
+http://www.neh.gov/grants/guidelines/hifacultyhbcu.html
+http://www.neh.gov/grants/guidelines/institutional.html
+http://www.neh.gov/news/humanities/2005-01/medals.html
+http://www.nehealth.org/pbmc.asp
+http://www.nehemiahinstitute.com/articles/index.php?action=show&id=30
+http://www.nehra.com/articlesresources/article.cfm?id=546&_categorytypeid=1
+http://www.nehra.com/articlesresources/article.cfm?id=796&_categorytypeid=4
+http://www.nehra.com/articlesresources/leadership.cfm
+http://www.nehra.com/articlesresources/trainingdevelopment.cfm
+http://www.nehrlich.com/philosophy/attention.html
+http://www.nei.nih.gov/amd/summary.asp
+http://www.nei.nih.gov/health/cataract/cataract_facts.asp
+http://www.nei.nih.gov/health/clinicaltrials_facts/index.asp
+http://www.nei.nih.gov/health/cornealdisease/index.asp
+http://www.nei.nih.gov/health/maculardegen/armd_facts.asp
+http://www.nei.nih.gov/news/congresstest/opening2004.asp
+http://www.nei.nih.gov/news/pressreleases/062201.asp
+http://www.nei.org/index.asp?catnum=2&catid=71
+http://www.neighborhoodnewsweb.com/NNWSignUp1.asp
+http://www.neilgaiman.com/faq/faq.asp
+http://www.neilgaiman.com/journal/2004_02_15_archive.asp
+http://www.neilgaiman.com/journal/2005/01/everything-you-wanted-to-know-about.asp
+http://www.neilinnes.org/chords/listerama.htm
+http://www.neilstewartassociates.com/sh131/
+http://www.neisd.net/curriculum/science.html
+http://www.neisd.net/curriculum/science/cos_secondary.htm
+http://www.neisd.net/curriculum/science/science.html
+http://www.neisd.net/risk/dental.html
+http://www.neiu.edu/~reseller/ehpg18envmvmt.htm
+http://www.nel.edu/NEL-Club-of-Friends.htm
+http://www.nela-illinois.org/
+http://www.nelinet.net/digital/dcms/education.htm
+http://www.nelliemuller.com/evaluation_pageNew_format.htm
+http://www.nelliemuller.com/task2.htm
+http://www.nellis.af.mil/retiree.htm
+http://www.nelsonbc.ca/bb/messages/12600.html
+http://www.nelsonbc.ca/bb/messages/12601.html
+http://www.nelsonbibles.com/bibles/quotationpolicies/QuotationPolicies_NKJV.asp
+http://www.nelsoncitycouncil.co.nz/environment/-human/human-main.htm
+http://www.nelsondemille.net/books/rivers_of_babylon_ex.asp
+http://www.nema.org/fieldreps/codealerts/
+http://www.nema.org/media/pr/20050204a.cfm
+http://www.nema.org/media/pr/20050506a.cfm
+http://www.nema.org/stds/fieldreps/codealerts/index.cfm?renderForPrint=1
+http://www.nemetschek.net/edispatch/Vol25/
+http://www.nemmar.com/
+http://www.nena9-1-1.org/
+http://www.nenie.net/archives/2004_10.html
+http://www.neobirth.org.za/abortion.html
+http://www.neoboard.net/index.php?id=1110
+http://www.neoc.ne.gov/faq/faq.htm
+http://www.neodata.com/hfm/llde/gift-subscribe.shtml
+http://www.neoflux.com/archive/data/2003/0825-111837.shtml
+http://www.neogeoforlife.com/ngpc/reviews/snk_vs_capcom_motm.shtml
+http://www.neonatology.org/classics/allin.html
+http://www.neonbubble.com/index.php?postid=81
+http://www.neopets.com/art/storytell.phtml?issue=180
+http://www.neoscientists.org/~cmuehlan/tekc64/
+http://www.neoseeker.com/Games/Products/PC/bloodomen2/
+http://www.neoseeker.com/Movies/Products/mean_girls/
+http://www.neoverve.com/ecommerce/storesense_difference.html
+http://www.nepalnews.com.np/contents/englishweekly/independent/10-01/tourism.htm
+http://www.nepalnews.com.np/contents/englishweekly/spotlight/2000/jan/jan21/newsnotes.htm
+http://www.nepanewsletter.com/food.html
+http://www.nepforums.co.uk/thisisdevon/showflat.php?Cat=&Number=3708&page=&view=&sb=5&o=
+http://www.neratsociety.co.uk/images/showfirsttime/showfirsttime.htm
+http://www.neravt.com/left/attack.html
+http://www.neravt.com/left/frontpage.html
+http://www.nerc.ac.uk/publications/latestpressrelease/2004-21globalairpollution.asp
+http://www.nerone.cc/services/rental/romanref/extrainfo.htm
+http://www.nesa.edu/ce/cemarch.html
+http://www.nesa.org.uk/latest_issue/july03.htm
+http://www.nesales.com/tools/scrollsaw.htm
+http://www.nesc.wvu.edu/nsfc/nsfc_products_archive.htm
+http://www.nesea.org/publications/NESun/green_schools_web.html
+http://www.neseabirds.com/conservationtrawling.htm
+http://www.nestafuturelab.org/research/reviews/ts03.htm
+http://www.nestafuturelab.org/viewpoint/art44.htm
+http://www.nestafuturelab.org/viewpoint/art51.htm
+http://www.nestafuturelab.org/viewpoint/creat17.htm
+http://www.nestmom.com/bravado.html
+http://www.net-about-town.com.au/imaginepeace/articles/Patrick%20Cockburn%20Waiting%20For%20the%20Missiles%20to%20Fall.html
+http://www.net-consumers.org/erica/policy/consumers.htm
+http://www.net-detective-download.us/
+http://www.net-floor.com/corporate/corporate.htm
+http://www.net-floor.com/drawings/faq.htm
+http://www.net-impact.org/index.php?id=1086
+http://www.net-magic.net/users/gordo55j/mountain.htm
+http://www.net-temps.com/jobs/legal/wetfeet.htm?index=0
+http://www.net-temps.com/jobs/legal/wetfeet.htm?index=3
+http://www.net-weather.co.uk/forum/lofiversion/index.php/t17213.html
+http://www.net.org/factsheets/
+http://www.net.org/factsheets/index.vtml
+http://www.net4dem.org/mayglobal/Events/Global%20Events/northA.htm
+http://www.net4nowtforum.co.uk/forumdisplay.php?f=113
+http://www.net4nowtforum.co.uk/forumdisplay.php?f=113&daysprune=-1&order=asc&sort=postusername
+http://www.net4nowtforum.co.uk/forumdisplay.php?f=113&daysprune=-1&order=desc&sort=lastpost
+http://www.net4nowtforum.co.uk/forumdisplay.php?f=113&daysprune=-1&order=desc&sort=voteavg
+http://www.net4nowtforum.co.uk/forumdisplay.php?f=113&page=4&sort=lastpost&order=&pp=25&daysprune=-1
+http://www.net4tv.com/voice/story.cfm?StoryID=1730
+http://www.netacc.net/~gradda/fa93pitt.html
+http://www.netacc.net/~gradda/su96deal.html
+http://www.netage.com/netage2k/library2k/agenet/sec7.htm
+http://www.netalive.org/topics/26554
+http://www.netaloid.com/
+http://www.netapp.com/education/faq.html
+http://www.netapp.com/education/faq.html?fmt=print
+http://www.netartreview.net/
+http://www.netb2b.com/netMarketing200/1999/
+http://www.netb2b.com/netMarketing200/1999/company.html
+http://www.netballcoaching.com/coachmanuals.htm
+http://www.netbookings.com.au/privacy-policy.htm
+http://www.netc.org/openoptions/pros_cons/principles.html
+http://www.netce.com/course.asp?Course=2100
+http://www.netcomuk.co.uk/~rwevans1/FabianWales/essay0001.html
+http://www.netcopspsi.com/netcopsstories/juvpartiesstory.html
+http://www.netdiver.net/
+http://www.netdiver.net/interviews/peterpaulkoch.php
+http://www.netdiver.net/x_editorials/sacredR.php
+http://www.netdoctor.co.uk/ate/liverandkidney/205173.html
+http://www.netdoctor.co.uk/ate/mentalhealth/205693.html
+http://www.netdoctor.co.uk/ate/musclesjoints/202615.html
+http://www.netdoctor.co.uk/diseases/depression/drugsanddepression_000487.htm
+http://www.netdoctor.co.uk/diseases/facts/asthma_extentinuk.htm
+http://www.netdoctor.co.uk/diseases/facts/hyperthyroidism.htm
+http://www.netdoctor.co.uk/diseases/facts/polycythaemia.htm
+http://www.netdoctor.co.uk/features/pelvicexercises_003841.htm
+http://www.netdoctor.co.uk/focus/pmi/index.shtml
+http://www.netdoctor.co.uk/health_advice/examinations/bloodsamples.htm
+http://www.netdoctor.co.uk/health_advice/facts/labour_complications_000610.htm
+http://www.netdoctor.co.uk/health_advice/facts/pregnant_feel_terrible_000614.htm
+http://www.netdoctor.co.uk/hilaryjones/secondopinion/cholesterol.htm
+http://www.netdoctor.co.uk/medicines/100003466.html
+http://www.netdoctor.co.uk/sex_relationships/facts/childrenandsex.htm
+http://www.netdoctor.co.uk/sex_relationships/facts/ed_partner.htm
+http://www.netdoctor.co.uk/sex_relationships/facts/masturbation.htm
+http://www.netdoctor.co.uk/sex_relationships/facts/prematureejaculation.htm
+http://www.netdoctor.co.uk/sex_relationships/facts/sterilisation_women.htm
+http://www.netdoctor.co.uk/special_reports/manmanual.htm
+http://www.netdoctor.co.uk/travel/diseases/crossing_borders_with_medicines.htm
+http://www.netfamilynews.org/emergencyhelp.html
+http://www.netfamilynews.org/nl041001.html
+http://www.netforcuba.org/InfoCuba-EN/Economy/SocialistEconomy.htm
+http://www.netfreestuff.co.uk/
+http://www.netguruindia.com/features/jyotibasu/interview.html
+http://www.nethemb.org.sg/listabbre.html
+http://www.netherlands-embassy.org/article.asp?articleref=AR00001651EN
+http://www.nethy.org/nethyhouse/helpforguests/
+http://www.netimperative.com/2000/06/20/GoldZack_building/view
+http://www.netimperative.com/2002/06/19/RESEARCH_Media_giants
+http://www.netincome.gr/
+http://www.netincome.gr/home-based-business-articles/Does_MLM_really_work.htm
+http://www.netjak.com/review.php/872
+http://www.netjak.com/review.php/918
+http://www.netjer.org/forums/showflat.php?Cat=&Board=wehem&Number=73318&page=0&view=collapsed&sb=5&o=&fpart=1
+http://www.netjer.org/forums/showflat.php?Cat=&Board=wehem&Number=73318&page=0&view=collapsed&sb=5&o=&fpart=all
+http://www.netjer.org/forums/showflat.php?Cat=&Number=73318&page=0&view=collapsed&sb=5&o=
+http://www.netjer.org/forums/showflat.php?Cat=&Number=73318&page=0&view=collapsed&sb=5&o=&fpart=1
+http://www.netkidswear.com/edbauertravp.html
+http://www.netlib.org/na-digest-html/05/v05n22.html
+http://www.netlib.org/na-digest-html/87/v87n62.html
+http://www.netlib.org/na-digest-html/87/v87n70.html
+http://www.netlib.org/na-digest-html/88/
+http://www.netlib.org/na-digest-html/91/v91n18.html
+http://www.netlib.org/netlib/na-digest-html/04/v04n02.html
+http://www.netlistinc.com/technology_products.aspx?sm=gl
+http://www.netmechanic.com/news/vol6/design_no2.htm
+http://www.netmechanic.com/news/vol6/html_no3.htm
+http://www.netmechanic.com/news/vol6/promo_no2.htm
+http://www.netministries.org/see/churches.exe/ch08395
+http://www.netnutritionist.com/studies.htm
+http://www.netpress.org/careandfeeding.html
+http://www.netreach.net/~sixofone/
+http://www.netrelate.com/forums/Messages.php?Topic=7433&StartIndex=0
+http://www.netrep.dk/gb/generel1GB.htm
+http://www.netresources.co.uk/news.html
+http://www.netrition.com/expert_foods_cakeability_page.html
+http://www.netsci.org/Science/Compchem/feature14e.html
+http://www.netsnippets.com/casestudies/jody_k.htm
+http://www.netsuite.com/portal/customers/cs_hampton.shtml
+http://www.nettally.com/palmk/crderiva.html
+http://www.netvalley.com/intval.html
+http://www.netvalley.com/intvalxan.html
+http://www.netwellness.org/centers/aahealth/editorial/
+http://www.netwellness.org/healthtopics/aging/faqhos.cfm
+http://www.netwellness.org/healthtopics/violence/
+http://www.netwolves.com/new_netwolves/press_release_article72.php
+http://www.network54.com/Forum/169624?it=16
+http://www.network54.com/Forum/thread?forumid=180658&messageid=1078719287&lp=1079203399
+http://www.network54.com/Forum/thread?forumid=180658&orderid=1068764463&moveto=prevtopic
+http://www.network54.com/Forum/thread?forumid=99039&messageid=1051572231&lp=1054087209
+http://www.networkcomputing.com/1210/1210sp1.html
+http://www.networkcomputing.com/showitem.jhtml?articleID=51202084&pgno=1
+http://www.networkcomputing.com/showitem.jhtml?docid=1524ws1
+http://www.networkcomputing.com/unixworld/1209/1209uw.html
+http://www.networkcultures.net/20_21/contemporary.html
+http://www.networkearth.org/naturalbuilding/composite.html
+http://www.networkedchurch.com/
+http://www.networkforgood.youthnoise.com/gm/realStories2.asp
+http://www.networkideas.org/themes/inequality/jan2002/ie28_Brazil.htm
+http://www.networkideas.org/themes/world/feb2003/we13_NAFTA.htm
+http://www.networkmagazine.com/shared/printableArticle.jhtml?articleID=21401746
+http://www.networkphysics.com/products/literature/case_studies/mpls.shtml
+http://www.networkworld.com/columnists/2005/032805gearhead.html
+http://www.networkworld.com/indepth/
+http://www.networkworld.com/news/2002/0121webservices.html?docid=7747
+http://www.networkworld.com/news/2003/1201apm.html
+http://www.networkworld.com/news/2005/050905widernet.html
+http://www.networkworld.com/reviews/2002/1028bgrev.html
+http://www.netwrx1.com/CherryAmes/firstaid.html
+http://www.netxusa.com/products/Digium/IAXy/
+http://www.netzwissenschaft.de/mob.htm
+http://www.neuroatomik.com/content/article.php/aid/290
+http://www.neurology.org/misc/sugg.htm
+http://www.neurologychannel.com/vertigo/index.shtml
+http://www.neuron.yale.edu/course/net2.html
+http://www.neuroskills.com/tbi/treat.shtml
+http://www.neurosurg.wisc.edu/sunlab/inter.html
+http://www.neurosurgery.pitt.edu/cranialbase/endonasal/
+http://www.neuroticfishbowl.com/archives/002882.html
+http://www.nevadaappeal.com/apps/pbcs.dll/article?AID=/20040526/SPECIALA03/105260033&template=printart
+http://www.nevadaappeal.com/apps/pbcs.dll/article?AID=/20050110/REGION/110100075&template=printart
+http://www.nevadaappeal.com/apps/pbcs.dll/article?AID=/20050118/REGION/101180027&template=printart
+http://www.nevadaappeal.com/article/20040526/SPECIALA03/105260033
+http://www.nevadaappeal.com/article/20050102/NEVADA/101020037
+http://www.nevadaappeal.com/article/20050110/REGION/110100075
+http://www.nevadaappeal.com/article/20050112/PERSONALAPPEAL/101120017
+http://www.nevadaappeal.com/article/20050118/REGION/101180027
+http://www.nevadaappeal.com/article/20050120/NEWS/101200038/0/FRONTPAGE
+http://www.nevadacitychamber.com/area_hike.htm
+http://www.nevadadesertexperience.org/TR_action.html
+http://www.nevadagives.org/01_giving_guide/01_individual_donors/
+http://www.nevadainventors.org/nl03oct.html
+http://www.nevdgp.org.au/geninf/std_misc/THE_DEMENTIAS.htm
+http://www.neveh.org/morgan/nidah/nidah09.html
+http://www.nevisrange.co.uk/summer/
+http://www.new-agri.co.uk/98-3/debate.html
+http://www.new-agri.co.uk/99-3/debate.html
+http://www.new-visions.com/essentialoils.html
+http://www.new.co.za/~currin/coldlyrics.html
+http://www.new.co.za/~currin/rabbitt_boys.html
+http://www.new.co.za/~currin/rabbitt_hits.html
+http://www.newadvent.org/cathen/02374a.htm
+http://www.newadvent.org/cathen/03449a.htm
+http://www.newadvent.org/cathen/03534a.htm
+http://www.newadvent.org/cathen/04213b.htm
+http://www.newadvent.org/cathen/04332a.htm
+http://www.newadvent.org/cathen/05103b.htm
+http://www.newadvent.org/cathen/05184b.htm
+http://www.newadvent.org/cathen/06220a.htm
+http://www.newadvent.org/cathen/07010b.htm
+http://www.newadvent.org/cathen/07110b.htm
+http://www.newadvent.org/cathen/08719a.htm
+http://www.newadvent.org/cathen/08724a.htm
+http://www.newadvent.org/cathen/09160c.htm
+http://www.newadvent.org/cathen/10005a.htm
+http://www.newadvent.org/cathen/10321a.htm
+http://www.newadvent.org/cathen/11744a.htm
+http://www.newadvent.org/cathen/12254b.htm
+http://www.newadvent.org/cathen/12276a.htm
+http://www.newadvent.org/cathen/14326b.htm
+http://www.newadvent.org/cathen/15073a.htm
+http://www.newadvent.org/cathen/15621c.htm
+http://www.newadvent.org/cathen/15724b.htm
+http://www.newadvent.org/fathers/0830.htm
+http://www.newadventures.com/pa/Default.htm
+http://www.newagecitizen.com/PraNews010604.htm
+http://www.newamericancentury.org/iraqletter1998.htm
+http://www.newamericancentury.org/iraqsep1898.htm
+http://www.newamericancentury.org/nato-20010618.htm
+http://www.newamericancentury.org/tertrais-20041119.htm
+http://www.neward.net/ted/weblog/index.jsp?date=20030522
+http://www.neward.net/ted/weblog/index.jsp?date=20040425
+http://www.newark.com/NewarkWebCommerce/newark/en_US/support/help/terms.jsp
+http://www.newarkcatholic.org/departments/Classes/Biology_Vohsing.htm
+http://www.newbalkanpolitics.org.mk/napis.asp?id=35&lang=English
+http://www.newblueshoe.com/archives/love/index.php
+http://www.newbury-college.ac.uk/jkcm/default.asp?pg=%2F2004Website%2FTextOnly%2FTextOnlyBlack%2F&viewversion=0
+http://www.newbury-society.org.uk/Newsletters/2002_Winter/changes.htm
+http://www.newburyport.k12.ma.us/middle/about.htm
+http://www.newburytheatre.co.uk/groups/newbury.htm
+http://www.newbusiness.co.uk/content/2306/newsarticle.htm
+http://www.newbusiness.co.uk/content/2504/article.htm
+http://www.newcanaan.info/whats_new.html
+http://www.newcastle-emlyn.com/issues/parkingcharges/objectletter.shtml
+http://www.newcastle-emlyn.com/stopwar/archive.shtml
+http://www.newcastle.gov.uk/educlibnew.nsf/0/5beddf87627e38f480256bf800293492?OpenDocument
+http://www.newchurchissues.org/nce/nceint.htm
+http://www.newciv.org/nl/newslog.php/_v56/__show_article/_a000056-000007.htm
+http://www.newcolonist.com/usablu_jhk.html
+http://www.newcomersclubcanada.com/publicity.htm
+http://www.newcomersnetwork.com/mel/oursay/expertadvice/cppm.php
+http://www.newconceptspublishing.com/hauntingmelody.htm
+http://www.newconceptspublishing.com/theassassinsblade.htm
+http://www.newcounterculture.com/log/
+http://www.newcovpub.com/icc/3quest.html
+http://www.newcriterion.com/archive/13/sept94/bowman.htm
+http://www.newcriterion.com/archive/22/june04/america.htm
+http://www.newcriterion.com/archive/22/june04/jay(may).htm
+http://www.newcriterion.com/archive/22/june04/tour.htm
+http://www.newcriterion.com/archive/23/dec04/rconquest.htm
+http://www.newcriterion.com/weblog/armavirumque.html
+http://www.newcrops.uq.edu.au/newslett/ncnl3-93.htm
+http://www.newcurioshop.com/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=4&page=1
+http://www.newdawnmagazine.com.au/Articles/Crypto-HistoryP1.html
+http://www.newdawnmagazine.com/Articles/Spying%20Prying%20Lying.html
+http://www.newday.com/reviews/ThatsAFamilyREV.html
+http://www.newdemocracyproject.org/publications/closing_deficits/deficits_four.cfm
+http://www.newdialogue.org.uk/disc/discf101.html
+http://www.newdimensiongames.com/phenomenon5.htm
+http://www.newdonkey.com/
+http://www.newdream.net/~sage/old/
+http://www.newdream.net/~sage/old/numbers/
+http://www.newdream.org/consumer/buycoffee.php
+http://www.newdream.org/make/bts/talkingpoints.php
+http://www.neweconomyindex.org/states/2002/strategies.html
+http://www.newenglandancestors.org/education/articles/NEA/disease_and_our_ancestors_mortality_in_the_eighte_607_1807.asp
+http://www.newenglandbouldering.com/news/news301.html
+http://www.newenglandconservatory.edu/newsHightlights/2005/gardiner_commencement.html
+http://www.newenglanddairycouncil.org/intheNews.htm
+http://www.newenglandgolf.com/features/plymouth-golf-174.htm
+http://www.newenglandinns.com/so_propinfo.cfm?PID=629&PromoID=13
+http://www.newenglandna.org/faqs/
+http://www.newenglandtennis.com/news_2004-09-09.html
+http://www.newenglandtennis.com/news_2005-01-11.html
+http://www.newfangled.com/contentmgr/showdetails.php/id/5448
+http://www.newfarm.org/archive/1000_stories/sare_stories/ha.shtml
+http://www.newfarm.org/columns/Martens/2003/march%202003/index.shtml
+http://www.newfarm.org/columns/Martens/2003/march%202003/index_print.shtml
+http://www.newfarm.org/news/2004/0204/2.20.04/white_paper.shtml
+http://www.newfilipina.com/index_magsalita.html
+http://www.newfilipina.com/members/halo/nagbasa/fiction/list.html
+http://www.newfilmco.com/newfilm.htm
+http://www.newfoundations.com/GALLERY/HutchinsII.html
+http://www.newfriend.us/love-store/Joy_of_Sex
+http://www.newfriend.us/state/MA_5
+http://www.newfriend.us/state/NY_43
+http://www.newfriends4u.com/friendship-clubs-online.shtml
+http://www.newgenevacenter.org/biography/einstein2.htm
+http://www.newgenevacenter.org/biography/hobbes2.htm
+http://www.newgenevacenter.org/biography/newton2.htm
+http://www.newgenevacenter.org/biography/socrates2.htm
+http://www.newgenevacenter.org/biography/spinoza2.htm
+http://www.newgenevacenter.org/our-story/14_catholic_church.htm
+http://www.newgenevacenter.org/our-story/17_reformation.htm
+http://www.newgrounds.com/
+http://www.newhair.com/
+http://www.newhair.com/info/history.asp
+http://www.newhair.com/resources/mp-1996-scalp-reductions.asp
+http://www.newhair.com/resources/mp-2003-future-ht.asp
+http://www.newhair.com/treatment/basics-overview.asp
+http://www.newhomemaker.com/about/ezzo.html
+http://www.newhomemaker.com/family/parenting/safeholiday.html
+http://www.newhopepa.com/events/0201.htm
+http://www.newhorizons.org/future/Creating_the_Future/crfut_knowles.html
+http://www.newhorizons.org/lifelong/higher_ed/marchese.htm
+http://www.newhorizons.org/neuro/diamond_brain_response.htm
+http://www.newhorizons.org/neuro/tallal.htm
+http://www.newhorizons.org/spneeds/gifted/nowak3.htm
+http://www.newhorizons.org/strategies/learning_environments/dickinson_lrnctr4.htm
+http://www.newhorizons.org/strategies/literacy/oconnor.htm
+http://www.newhorizons.org/strategies/multicultural/front_multicultural.htm
+http://www.newhorizons.org/strategies/styles/reinert.htm
+http://www.newhorizons.org/strategies/technology/front_tech.htm
+http://www.newhouse.com/archive/barnett012505.html
+http://www.newhouse.com/lileks.html
+http://www.newhousenews.com/archive/lesie051903.html
+http://www.newhousenews.com/archive/tilove073103.html
+http://www.newhum.com/for_teachers/sample_assignments/sa_nussbaum.html
+http://www.newhumanist.org.uk/volume116issue3_more.php?id=144_0_16_0_C
+http://www.newhumanist.org.uk/volume118issue3_more.php?id=94_0_21_0_C
+http://www.newideafitness.com/Instructor.html
+http://www.newideas.net/attention_deficit/treatment.htm
+http://www.newindpress.com/sunday/sundayitems.asp?id=SEV20050114040553&eTitle=Focus&rLink=0
+http://www.newint.org/issue141/making.htm
+http://www.newint.org/issue160/share.htm
+http://www.newint.org/issue166/letters.htm
+http://www.newint.org/issue166/mirage.htm
+http://www.newint.org/issue178/harlem.htm
+http://www.newint.org/issue182/update.htm
+http://www.newint.org/issue190/workers.htm
+http://www.newint.org/issue221/keynote.htm
+http://www.newint.org/issue248/husband.htm
+http://www.newint.org/issue254/fire.htm
+http://www.newint.org/issue261/action.htm
+http://www.newint.org/issue261/sssh.htm
+http://www.newint.org/issue278/keynote.html
+http://www.newint.org/issue285/history.html
+http://www.newint.org/issue294/reviews.htm
+http://www.newint.org/issue307/malign.htm
+http://www.newint.org/issue322/keynote.htm
+http://www.newint.org/issue344/walk.htm
+http://www.newint.org/issue377/tanya.htm
+http://www.newint.org/streets/210900.htm
+http://www.newjerseygolf.net/features/faq/handicapping.shtml
+http://www.newleftreview.com/NLR25501.shtml
+http://www.newlifeministries-nlm.org/online/nlm_report_3.htm
+http://www.newlifeministries-nlm.org/people/6-2_Church_Culture.htm
+http://www.newlifeministries-nlm.org/people/8-02_Spiritual_Warfare.htm
+http://www.newline.com/press/2004/0317_gaypride.shtml
+http://www.newmanreader.org/works/britishcritic/notices10-38.html
+http://www.newmanreader.org/works/development/chapter12.html
+http://www.newmanreader.org/works/discourses/discourse11.html
+http://www.newmanreader.org/works/gain/chapter1-10.html
+http://www.newmanreader.org/works/parochial/volume3/sermon7.html
+http://www.newmanreader.org/works/subjects/sermon19.html
+http://www.newmanreader.org/works/subjects/sermon20.html
+http://www.newmanu.edu/school-artshum/visualarts/faculty/rose.html
+http://www.newmediaexplorer.org/chris/2003/11/24/take_your_pills.htm
+http://www.newmediaexplorer.org/chris/2005/01/11/michael_forrest_is_in_jail_for_making_and_selling_electromedicine_devices.htm
+http://www.newmediastudies.com/art/gilbert.htm
+http://www.newmediastudies.com/effects1.htm
+http://www.newmediastudies.com/intro2004.htm
+http://www.newmexico.org/nm-magazine/recipe.php
+http://www.newmodelarmy.org/shop.htm
+http://www.newmuseum.org/Press_Office/Press_Releases/East%20Village%20USA.10.htm
+http://www.newmuseum.org/Press_Office/Press_Releases/SanaaDesign.htm
+http://www.newmusiccanada.com/
+http://www.newmusicwest.com/
+http://www.newpath4.com/faithgrandmaandapplepie.htm
+http://www.newport-county.co.uk/archives/season_2001-2002/players_profile_2001-02.html
+http://www.newport-news.va.us/eoc/eop.htm
+http://www.newport.ac.uk/apply/ug1.htm
+http://www.newportnewstimes.com/articles/2005/01/07/news/news20.txt
+http://www.newpro-replacement-window.com/2/privacy.jsp
+http://www.newproductdynamics.com/services.htm
+http://www.newreleasetuesday.com/features/interview_dayoffire.shtml
+http://www.newrider.com/forum/showthread.php?threadid=46332
+http://www.newrider.com/forum/showthread.php?threadid=46814
+http://www.newrules.org/drdave/5-internettax.html
+http://www.newrules.org/drdave/6-nclb.html
+http://www.newrules.org/hta/hta0802.htm
+http://www.newrules.org/retail/news_archive.php?year=2003&browseby=date
+http://www.newrules.org/retail/size.html
+http://www.news-gazette.com/essential/food/index.cfm?page=kirbystory.cfm&id=52
+http://www.news-gazette.com/special/scottone/index.cfm?page=story&id=14
+http://www.news-herald.com/site/news.cfm?newsid=13900231&BRD=1698&PAG=461&dept_id=21849&rfi=6
+http://www.news-leader.com/_sunday/0116-Kingmonume-276525.html
+http://www.news-leader.com/_sunday/0116-Modernworl-276524.html
+http://www.news-leader.com/_tuesday/0118-Women,66,g-278019.html
+http://www.news-leader.com/_tuesday/20050201-Horseownercharg.html
+http://www.news-leader.com/today/0118-Women,66,g-278019.html
+http://www.news-medical.net/?id=10123
+http://www.news-medical.net/?id=1868
+http://www.news-medical.net/?id=2316
+http://www.news-medical.net/?id=2462
+http://www.news-medical.net/?id=3167
+http://www.news-medical.net/?id=3651
+http://www.news-medical.net/?id=3711
+http://www.news-medical.net/?id=4860
+http://www.news-medical.net/?id=5130
+http://www.news-medical.net/?id=5708
+http://www.news-medical.net/?id=7109
+http://www.news-medical.net/print_article.asp?id=2462
+http://www.news-record.com/ran/
+http://www.news-record.com/sports/stadium/stadium_name_120704.htm
+http://www.news-tasmania.com/march04.html
+http://www.news-tribune.net/articles/2005/06/28/lifestyles/the_evening_news/life07.txt
+http://www.news.com.au/story/0,10117,12097747-38201,00.html
+http://www.news.com/SpecialFeatures/0,5,7953,00.html
+http://www.news.harvard.edu/gazette/1999/03.18/shakespeare.html
+http://www.news.harvard.edu/gazette/1999/05.27/immigration.html
+http://www.news.harvard.edu/gazette/2000/04.06/nlr.html
+http://www.news.harvard.edu/gazette/2000/10.05/14-nader.html
+http://www.news.harvard.edu/gazette/2000/10.26/06-writing.html
+http://www.news.harvard.edu/gazette/2001/04.26/03-impression.html
+http://www.news.harvard.edu/gazette/2003/07.17/01-earthbirth.html
+http://www.news.harvard.edu/gazette/2003/09.18/24-bellfellows.html
+http://www.news.harvard.edu/gazette/2005/03.24/07-hockey.html
+http://www.news.ops.gov.ph/archives2003/may13.htm
+http://www.news.tamilcanadian.com/news/2000/06/20000608_1.shtml
+http://www.news.ucdavis.edu/budget/Atkinson_interview.html
+http://www.news.uiuc.edu/ii/01/0607/0607index.html
+http://www.news.uiuc.edu/ii/05/0602/
+http://www.news.uiuc.edu/scitips/03/0206protein.html
+http://www.news.utoronto.ca/bin2/thoughts/comment020311.asp
+http://www.news.utoronto.ca/bin5/031216a.asp
+http://www.news.utoronto.ca/bin5/040504b.asp
+http://www.news.utoronto.ca/bin6/040603-92.asp
+http://www.news.utoronto.ca/bin6/thoughts/040510-36.asp
+http://www.news.utoronto.ca/bin6/thoughts/040726-283.asp
+http://www.news.wisc.edu/9163.html
+http://www.news14charlotte.com/content/headlines/?ArID=95937&SecID=41
+http://www.news24.com/
+http://www.news24.com/News24/World/Iraq/0,,2-10-1460_1645397,00.html
+http://www.newsandentertainment.com/GamesRaero.html
+http://www.newsandstar.co.uk/healthylife/viewarticle.aspx?id=169243
+http://www.newsaskew.com/archives/news-archive-1-1998.shtml
+http://www.newsbatch.com/africa.htm
+http://www.newsbatch.com/sex.htm
+http://www.newscentre.bham.ac.uk/release.htm?releaseId=2007&page=1&year=2005&month=6&showUndelivered=N
+http://www.newschool.edu/gf/publicculture/backissues/pc38/bach.html
+http://www.newschools.org/viewpoints/april_24.html
+http://www.newscientist.com/
+http://www.newscientist.com/article.ns?id=dn4499
+http://www.newscientist.com/article.ns?id=dn4637
+http://www.newscientist.com/article.ns?id=dn5077
+http://www.newscientist.com/article.ns?id=dn6533
+http://www.newscientist.com/article.ns?id=dn6689
+http://www.newscientist.com/article.ns?id=dn6950
+http://www.newscientist.com/article.ns?id=dn6950&print=true
+http://www.newscientist.com/article.ns?id=dn7006
+http://www.newscientist.com/article.ns?id=dn7554&feedId=online-news_rss20
+http://www.newscientist.com/article.ns?id=mg18625043.900
+http://www.newscientist.com/channel/being-human/mg18625011.900
+http://www.newscientist.com/channel/fundamentals/quantum-world
+http://www.newscientist.com/channel/fundamentals/quantum-world/
+http://www.newscientist.com/channel/life/dinosaurs
+http://www.newscientist.com/channel/life/dinosaurs/
+http://www.newscientist.com/dailynews/news.jsp?id=ns9999897
+http://www.newscientistjobs.com.au/insider/article.action?article.id=insider66&focusId=usa
+http://www.newscientistjobs.com/insider/article.action?article.id=insider66&focusId=usa
+http://www.newsclipper.com/faq.html
+http://www.newsdata.com/enernet/conweb/conweb.html
+http://www.newsday.co.tt/morenews.php
+http://www.newsday.com/about/ny-helpafamily,0,5972807.htmlstory?coll=ny-rightrail-bottompromo
+http://www.newsday.com/entertainment/ny-2know4313285jun22,0,3087078.story?coll=ny-entertainment-promo
+http://www.newsday.com/go/homes/
+http://www.newsday.com/news/columnists/ny-opklu244316861jun24,0,4811792.column?coll=ny-news-columnists
+http://www.newsday.com/news/local/wire/connecticut/ny-bc-ct--fatalfire-family0614jun14,0,3673573.story?coll=ny-region-apconnecticut
+http://www.newsday.com/news/local/wire/connecticut/ny-bc-ct--fatalfire-family0615jun14,0,4066790.story?coll=ny-region-apconnecticut
+http://www.newsday.com/news/nationworld/wire/sns-ap-north-american-security,0,6098890.story?coll=sns-ap-nationworld-headlines
+http://www.newsday.com/news/nationworld/world/chi-0412310291dec31,0,965808.story
+http://www.newsday.com/news/opinion/letters/
+http://www.newsday.com/news/opinion/ny-opric064292830jun06,0,3912562.story?coll=ny-viewpoints-headlines
+http://www.newsday.com/news/printedition/health/ny-hsdoc4321704jun28,0,4132380.story?coll=ny-health-print
+http://www.newsday.com/news/printedition/opinion/ny-opklu244316861jun24,0,7513808.column?coll=ny-opinion-print
+http://www.newsdissector.com/blog/2002/05/14/oh-stop-it/
+http://www.newsdominica.com/forum/forum_posts.asp?TID=1366&get=last
+http://www.newsfilter.org/antimtv/bandfearfactory.html
+http://www.newsfromafrica.org/newsfromafrica/articles/art_580.html
+http://www.newsfromme.com/
+http://www.newsgd.com/business/laws/
+http://www.newsgd.com/government/govpress/200503070051.htm
+http://www.newsgd.com/pictures/construction/
+http://www.newshe.com/cravesinbed5.shtml
+http://www.newshounds.us/2004/07/27/bush_and_friends.php
+http://www.newshounds.us/2004/07/29/i_could_hardly_believe_this.php
+http://www.newshounds.us/2004/08/04/look_whos_biased.php
+http://www.newshounds.us/2004/08/12/red_ink_getting_redder.php
+http://www.newshounds.us/2004/08/18/political_correctness.php
+http://www.newshounds.us/2004/09/03/judy_woodruff_caught_on_camera.php
+http://www.newshounds.us/2004/09/14/deflection_achieved.php
+http://www.newshounds.us/2004/09/24/trying_to_be_happy_about_iraq_ii.php
+http://www.newshounds.us/2004/11/01/hannitys_last_chance_2004.php
+http://www.newshounds.us/2004/12/14/chris_wallace_points_loaded_question_at_jon_corzine.php
+http://www.newshounds.us/2004/12/17/democrats_progessives_get_that_chin_up_off_the_floor.php
+http://www.newshounds.us/2004/12/19/gambling_on_social_security.php
+http://www.newshounds.us/2005/01/08/fox_news_cant_bring_itself_to_say_media_matters_for_america.php
+http://www.newshounds.us/2005/01/12/gibson_to_fallujah_sorry_but_we_had_to_do_it.php
+http://www.newshounds.us/2005/01/17/you_cant_pay_for_publicity_like_this_hugh_hewitt_endorses_blogs_on_the_oreilly_factor.php
+http://www.newshounds.us/2005/03/10/bill_oreilly_is_giving_away_an_ipod_on_friday.php
+http://www.newshounds.us/2005/04/12/byron_york_and_john_gibson_on_the_vast_leftwing_conspiracy.php
+http://www.newshounds.us/2005/04/26/tom_delay_gets_a_ride_on_air_force_one.php
+http://www.newshounds.us/2005/06/17/wesley_clark_surprises_hannity.php
+http://www.newshounds.us/2005/06/22/suddenly_free_trade_isnt_such_a_good_idea.php
+http://www.newsisfree.com/sources/browse/95/
+http://www.newsmax.com/
+http://www.newsmax.com/archives/articles/2001/5/7/223843.shtml
+http://www.newsmax.com/archives/articles/2002/10/30/71538.shtml
+http://www.newsmax.com/archives/articles/2002/3/26/202236.shtml
+http://www.newsmax.com/archives/articles/2003/3/18/172506.shtml
+http://www.newsmax.com/archives/articles/2003/4/22/212645.shtml
+http://www.newsmax.com/archives/articles/2003/8/1/123445.shtml
+http://www.newsmax.com/archives/articles/2003/8/26/160951.shtml
+http://www.newsmax.com/archives/articles/2004/1/28/134249.shtml
+http://www.newsmax.com/archives/articles/2004/5/26/142153.shtml
+http://www.newsmax.com/archives/articles/2004/6/17/220520.shtml
+http://www.newsmax.com/archives/articles/2004/6/23/91028.shtml
+http://www.newsmax.com/archives/articles/2004/7/22/161446.shtml
+http://www.newsmax.com/archives/articles/2004/7/27/214356.shtml
+http://www.newsmax.com/archives/articles/2004/7/29/220354.shtml
+http://www.newsmax.com/archives/articles/2005/1/12/164023.shtml
+http://www.newsmax.com/archives/articles/2005/1/20/131205.shtml
+http://www.newsmax.com/archives/articles/2005/6/17/94914.shtml
+http://www.newsmax.com/archives/articles/2005/6/23/134620.shtml
+http://www.newsmax.com/articles/?a=2000/1/25/70247
+http://www.newsobserver.com/sports/golf/usopen/story/2498075p-8902355c.html
+http://www.newsouthassoc.com/CRMBrochure.html
+http://www.newspaperdetectives.co.uk/master1864H.htm
+http://www.newspaperdetectives.co.uk/master1865V.htm
+http://www.newspapersoc.org.uk/Documents/Publications/Parl&Euro/july04-dec04.htm
+http://www.newsplex.org/program/training.shtml
+http://www.newspress.com/millionhome/squeeze.htm
+http://www.newsreel.org/guides/skindeep.htm
+http://www.newsreview.com/issues/reno/2001-02-22/arts.asp
+http://www.newsreview.com/issues/reno/2005-04-21/cover.asp
+http://www.newsreview.com/issues/sacto/2001-10-11/cover.asp
+http://www.newsreview.com/issues/sacto/2002-05-09/bites.asp
+http://www.newsreview.com/issues/sacto/2004-04-01/news.asp
+http://www.newsreview.com/issues/sacto/2004-07-01/cover.asp
+http://www.newsreview.com/issues/sacto/2004-08-05/film.asp
+http://www.newsreview.com/issues/sacto/2005-04-28/fifteen.asp
+http://www.newsroom.msu.edu/site/indexer/2145/content.htm
+http://www.newsroom.ucr.edu/cgi-bin/display.cgi?id=433
+http://www.newssafety.com/aboutus/constitution.htm
+http://www.newssafety.com/hotspots/westbank.htm
+http://www.newsshopper.co.uk/announcements/
+http://www.newstalk106.ie/news.asp
+http://www.newstarget.com/
+http://www.newstarget.com/000675.html
+http://www.newstarget.com/000935.html
+http://www.newstarget.com/000978.html
+http://www.newstarget.com/001474.html
+http://www.newstarget.com/001514.html
+http://www.newstarget.com/001868.html
+http://www.newstarget.com/002040.html
+http://www.newstarget.com/002904.html
+http://www.newstarget.com/003478.html
+http://www.newstarget.com/003551.html
+http://www.newstarget.com/003837.html
+http://www.newstarget.com/004156.html
+http://www.newstarget.com/004625.html
+http://www.newstarget.com/hair_loss.html
+http://www.newstarget.com/z002040.html
+http://www.newstartmag.co.uk/ashford.html
+http://www.newstatesman.com/200501240050
+http://www.newstatesman.com/Ideas/200506270022
+http://www.newstatesman.com/People/200501170023
+http://www.newstatesman.com/People/Society
+http://www.newstatesman.com/generalelection/200505090001
+http://www.newstatesman.com/site.php3?newTemplate=NSArticle_World&newDisplayURN=200409270001
+http://www.newstips.org/interior.php?section=Successful+Schools+Sub&main_id=108
+http://www.newswales.co.uk/?section=Agriculture
+http://www.newsweekshowcase.com/international-schools/index.shtml
+http://www.newswire.ca/en/releases/archive/December2003/11/c2069.html
+http://www.newswire.ca/en/releases/archive/June2005/22/c5094.html
+http://www.newswire.ca/en/releases/archive/May2005/27/c4759.html
+http://www.newswire.ca/en/releases/archive/September2003/12/c0518.html
+http://www.newswise.com/articles/view/512551/
+http://www.newswise.com/articles/view/512566/
+http://www.newswise.com/articles/view/?id=empthft.osu
+http://www.newswithviews.com/Bill/sizemore10.htm
+http://www.newswithviews.com/Cuddy/dennis29.htm
+http://www.newswithviews.com/Engstrom/dave.htm
+http://www.newswithviews.com/religion/religion9.htm
+http://www.newswithviews.com/your_govt/your_government59.htm
+http://www.newtechfoundation.org/Board%20of%20Directors.htm
+http://www.newtechusa.com/ppi/pressroom.asp
+http://www.newtexts.com/newtexts/book.cfm?book_id=2581
+http://www.newtimes.org/issue/0112/journey.htm
+http://www.newtimes.org/issue/9706/97-06-mmm.html
+http://www.newtimes.org/issue/9708/97-08-beauty.html
+http://www.newtimes.ru/eng/detail.asp?art_id=200
+http://www.newtimes.ru/eng/detail.asp?art_id=783
+http://www.newtimesbpb.com/issues/2003-03-27/news/feature_print.html
+http://www.newton.cam.ac.uk/reports/9899/nsp.html
+http://www.newton.cam.ac.uk/reports/9900/sce.html
+http://www.newton.co.uk/ifa/micro/capital_protection/legal/legalpopup.html
+http://www.newton.co.uk/institutional/legal/legalpopup.html
+http://www.newton.co.uk/pim/legal/legalpopup.html
+http://www.newton.dep.anl.gov/agree.htm
+http://www.newton.dep.anl.gov/askasci/gen01/gen01264.htm
+http://www.newtopiamagazine.net/content/issue17/exclusive/creativeecon9.php
+http://www.newtopiamagazine.net/content/issue19/features/corporate.php
+http://www.newtowntheatre.com.au/Short_&_Sweet/Short_&_Sweet.htm
+http://www.newurbannews.com/JulAug01.html
+http://www.newvillage.net/Journal/Issue3/3silka.html
+http://www.newvision.co.ug/D/8/20/441414
+http://www.newvisions.org/cal/resources/middle-grades-reform/index.shtml
+http://www.newvisions.org/resources/guide3_11.shtml
+http://www.newwork.com/Pages/Networking/2004/Older%20workers.html
+http://www.newwork.com/Pages/WITNE/2002/Trust.html
+http://www.newwork.com/Pages/WITNE/2004/Feb%20WITNE.html
+http://www.newworldcelts.org/australia.html
+http://www.newyinzer.com/issue02/r-hoffman.html
+http://www.newyorkcitytransit.com/
+http://www.newyorkcityvoices.org/2004winter/2004winter45.html
+http://www.newyorkdivorcelaw.com/preparing_for_divorce_court.html
+http://www.newyorker.com/critics/books/?031124crbo_books
+http://www.newyorker.com/fact/content/?021007fa_fact
+http://www.newyorker.com/fact/content/?030317fa_fact
+http://www.newyorker.com/fact/content/?050124fa_fact3
+http://www.newyorker.com/fact/content/?050214fa_fact1
+http://www.newyorker.com/printable/?fact/030317fa_fact
+http://www.newyorker.com/printable/?fact/050124fa_fact3
+http://www.newyorker.com/shouts/content/?040726sh_shouts
+http://www.newyorkfed.org/CfCBSWEB/disgroup2004.html
+http://www.newyorkfed.org/newsevents/speeches/1998/mcd981001.html
+http://www.newyorkfirst.com/gifts/6053.html
+http://www.newyorkgames.org/news/archives/002487.html
+http://www.newyorkled.com/chinatown.htm
+http://www.newyorkled.com/dave_frieder.htm
+http://www.newyorklife.com/cda/0,3254,12820,00.html
+http://www.newyorklife.com/cda/0,3254,14100,00.html
+http://www.newyorkmetro.com/nymetro/news/media/columns/medialife/6099/
+http://www.newyorkmetro.com/pages/details/9889.htm
+http://www.newyorkmetro.com/shopping/articles/sb/
+http://www.newyorkmetro.com/urban/guides/family/schools/features/feature_publicorprivate.htm
+http://www.newyorksocialdiary.com/list.php
+http://www.newzealandnz.co.nz/
+http://www.newzimbabwe.com/pages/tuesday7.11469.html
+http://www.nexgear.com/index.php?showtopic=5021&st=20
+http://www.nexgear.com/index.php?showtopic=5021&st=40
+http://www.nexgear.com/index.php?showtopic=9720&st=80
+http://www.nexgear.com/lofiversion/index.php/t5021-250.html
+http://www.nexgear.com/lofiversion/index.php/t7838.html
+http://www.nexgear.com/lofiversion/index.php/t9391.html
+http://www.nexor.com/profile.asp
+http://www.nexor.com/profile.htm
+http://www.nextag.com/BestBuyPcs~147058z55215364z2700468zreviewsz1zmainz17-htm
+http://www.nextag.com/BestBuyPcs~147058z57273551z300265zreviewsz1zmainz17-htm
+http://www.nextag.com/BestBuyPcs~147058z57700159z300265zreviewsz1zmainz17-htm
+http://www.nextag.com/BestBuyPcs~147058z57719904z300265zreviewsz1zmainz17-htm
+http://www.nextag.com/BestBuyPcs~147058z57758099zzreviewsz1zmainz17-htm
+http://www.nextag.com/BestBuyPcs~147058z58720415z900503zreviewsz1zmainz17-htm
+http://www.nextag.com/BestBuyPcs~147058z60606915z300265zreviewsz1zmainz17-htm
+http://www.nextag.com/BestBuyPcs~147058z60660629z500014zreviewsz1zmainz17-htm
+http://www.nextag.com/BestBuyPcs~147058z65208372z300265zreviewsz1zmainz17-htm
+http://www.nextag.com/Food___Wine~2700035z8z90z200z0zB12cgzmainz5-htm
+http://www.nextag.com/Kodak_Premium_Picture_Paper~55358596z9znz900808z4z1z900808zzmainz1-htm
+http://www.nextag.com/Watches~2702409z196705z0zB6cgzmainz5-htm
+http://www.nextdaypets.com/directory/dogs/sale/
+http://www.nextdaypets.com/directory/dogs/sale/1100088/
+http://www.nexternal.com/shared/HelpDesk/default.asp?CS=whitewhale&RowID=1513
+http://www.nextstepmagazine.com/NSMPages/articledetails.aspx?articleid=1794
+http://www.nextwavefilms.com/sf/
+http://www.nexus.edu.au/teachstud/gat/jewell1.htm
+http://www.nexusmagazine.com/articles/CellularMemories.html
+http://www.nexusmagazine.com/articles/Rhodes&SecretSocieties.html
+http://www.nexusmagazine.com/articles/darwinism.1.html
+http://www.nexusmagazine.com/articles/petfood1.html
+http://www.nezperce.org/~srcurrents/June%202004.htm
+http://www.nezperce.org/~srcurrents/November%202004.htm
+http://www.nfadirect.com/timeline.php
+http://www.nfais.org/publications/mc_lecture_1996.htm
+http://www.nfais.org/publications/mc_lecture_2002.htm
+http://www.nfap.net/researchactivities/articles/weeklyStandard_032904.aspx
+http://www.nfb.ca/E/5/ny_info.html
+http://www.nfb.ca/whatremainsofus/
+http://www.nfb.org/bm/bm03/bm0306/bm030612.htm
+http://www.nfb.org/bm/bm04/bm0403/bm040311.htm
+http://www.nfb.org/bm/bm04/bm0411/bm041112.htm
+http://www.nfb.org/bm/bm04/bm0412/bm041205.htm
+http://www.nfb.org/bm/bm97/bm970301.htm
+http://www.nfb.org/bm/bm98/bm980608.htm
+http://www.nfb.org/bm/bm99/bm990602.htm
+http://www.nfb.org/books/books1/ifblind.htm
+http://www.nfb.org/convent/firsttime.htm
+http://www.nfb.org/fr/fr14/fr04se18.htm
+http://www.nfb.org/fr/fr15/fr04fa17.htm
+http://www.nfb.org/fr/fr8/frsf0217.htm
+http://www.nfb.org/nfbrti/hava_usabilitycheck.htm
+http://www.nfbcblood.org/
+http://www.nfbmidtn.org/assets/who.htm
+http://www.nfer.ac.uk/htmldocs/html/Outcome_AEP.html
+http://www.nfer.ac.uk/research-areas/pims-data/summaries/tid-teachers-international-professional-development-programme.cfm
+http://www.nfer.ac.uk/research-areas/pims-data/summaries/tid-teachers-international-professional-development-programme.cfm?print=1
+http://www.nfib.com/object/2869137.html
+http://www.nfie.org/publications/engaging.htm
+http://www.nfl.com/features/tmq/112304
+http://www.nfl.com/gamecenter/recap/NFL_20041205_GB@PHI
+http://www.nfl.com/news/archive/08/2003
+http://www.nfl.com/news/story/7593385
+http://www.nfl.com/news/story/8539855
+http://www.nfl.com/news/story/8546033
+http://www.nfl.com/teams/news/archive/HOU
+http://www.nfl.com/teams/news/archive/NO
+http://www.nfl.com/teams/story/DAL/8539855
+http://www.nfl.com/teams/story/DEN/7833650
+http://www.nfld.com/~dalton/messages.html
+http://www.nfleurope.com/teams/story/RHE/8275192
+http://www.nfleurope.com/teams/story/RHE/8303898
+http://www.nflhs.com/TipsDrills/Features/CompleteQB1_11212002_sim.asp
+http://www.nflplayers.com/players_network/players_network.aspx?ID=30218
+http://www.nflplayers.com/players_network/players_network.aspx?ID=34527
+http://www.nflplayers.com/players_network/players_network.aspx?strSection=bio&ID=30218
+http://www.nflplayers.com/players_network/players_network.aspx?strSection=bio&ID=34527
+http://www.nflpuddingstrike.com/debates/Song_Mason.htm
+http://www.nflyouthfootball.com/exec/nfl_ppk/PPK_-_Curriculum_Class_III_Kicking.cfm?publicationID=23
+http://www.nfpa.org/displaycontent.asp?categoryID=768&itemID=19839
+http://www.nfpa.org/riskwatch/parent_fireburn.html
+http://www.nfraweb.org/promotions/frozen.html
+http://www.nfsa.org.uk/conservation/conservation_plan.htm
+http://www.nfsnet.org/faq-nfs.html
+http://www.nfti.com/sosline.html
+http://www.nftsfilm-tv.ac.uk/scusite/Courses/Production/Producing_Courses_1.htm
+http://www.nfu.ca/effofwto.htm
+http://www.nfu.ca/wtopearc.htm
+http://www.nga.gov/exhibitions/upcoming.shtm
+http://www.nga.org/common/issueBriefDetailPrint/1,1434,4441,00.html
+http://www.ngb.army.mil/news/story.asp?id=1441
+http://www.ngb.army.mil/news/story.asp?id=370
+http://www.ngb.army.mil/onguard/31/10/article.asp?aid=1313
+http://www.ngb.army.mil/onguard/32/03/article.asp?aid=1273
+http://www.ngc.org/summary/summary.aspx?ss=15&doc_id=5430&nbr=3724
+http://www.ngdc.noaa.gov/paleo/ei/ei_reconsa.html
+http://www.ngiip.gov.np/atlas.php
+http://www.ngnews.com/news/2004/10/1019_041019_biobus.html
+http://www.ngochr.org/view/index.php?basic_entity=DOCUMENT&list_ids=552
+http://www.ngoforum.org.kh/Land/Docs/study_farming_files/discu_recom.htm
+http://www.ngpc.state.ne.us/nebland/articles/hunting/round.asp
+http://www.ngrain.com/news/news_2003_nov_3_knowledge_module_release.html
+http://www.ngs.noaa.gov/PUBS_LIB/gislis96.html
+http://www.ngtlibrary.com/ngtsr/newsite/salesteam.asp
+http://www.ngwa.org/e/expo05/0512136010.shtml
+http://www.ngwa.org/ngwef/darcy.html
+http://www.ngy1.1st.ne.jp/~ieg/icrm/2001/01/01n970.htm
+http://www.nhamagazine.com/feature4_0504.html
+http://www.nhbs.com/services/liborgpack.html
+http://www.nhc.rtp.nc.us/tserve/eighteen/ekeyinfo/grawaken.htm
+http://www.nhc.rtp.nc.us:8080/ideasv41/schram4.htm
+http://www.nhdds.org/nhddsit/nhqop/domain4-01.html
+http://www.nhforums.com/forums/showthread.php?goto=lastpost&t=2317
+http://www.nhforums.com/forums/showthread.php?t=1758
+http://www.nhforums.com/forums/showthread.php?t=2317
+http://www.nhg.com/news/May20012.htm
+http://www.nhhealthplan.org/
+http://www.nhi.org/online/issues/113/dejong.html
+http://www.nhi.org/online/issues/125/fostercare.html
+http://www.nhi.org/online/issues/135/organize.html
+http://www.nhi.org/online/issues/140/court.html
+http://www.nhinet.org/failed.htm
+http://www.nhl.com/futures/features/prospects_dal050305.html
+http://www.nhlbi.nih.gov/about/nhaap/nhaap_hi1002.htm
+http://www.nhlbi.nih.gov/hbp/prevent/h_eating/h_eating.htm
+http://www.nhlbi.nih.gov/health/dci/Diseases/pah/pah_what.html
+http://www.nhlbi.nih.gov/health/prof/lung/nett/lvrsweb.htm
+http://www.nhlbi.nih.gov/meetings/nhlbac/feb05min.htm
+http://www.nhlbi.nih.gov/new/press/03-02-24.htm
+http://www.nhlbi.nih.gov/new/press/03-04-22.htm
+http://www.nhlbi.nih.gov/new/press/oberel4f.htm
+http://www.nhlbirthplace.ca/NHA/NHA&NHL.htm
+http://www.nhlcbanews.com/transcripts/bettman_121404.html
+http://www.nhm.ac.uk/hosted_sites/acarology/saas/list.html
+http://www.nhm.ac.uk/hosted_sites/ina/ina8/abstr_k04.html
+http://www.nhm.ac.uk/zoology/stranding/Recent_Events/RE_2001_09_10/RE_2001_Sep_Oct.html
+http://www.nhoem.state.nh.us/mitigation/section_iii.htm
+http://www.nhptv.org/kn/nh/nhlp5a.htm
+http://www.nhratterriers.com/breedinfo.htm
+http://www.nhrc.navy.mil/programs/donsir/publications.html
+http://www.nhs.uk/youngpeople/
+http://www.nhs24.com/default.asp?page=s4_4&newsid=1582&back=s4_3
+http://www.nhscareers.nhs.uk/nhs-knowledge_base/data/5630.html
+http://www.nhscareers.nhs.uk/nhs/
+http://www.nhsconfed.org/press/default.asp
+http://www.nhsestates.gov.uk/patient_environment/content/introduction.html
+http://www.nhshistory.co.uk/clinicalprogress.htm
+http://www.nhsia.nhs.uk/def/pages/conf_archive/wmcim_biog01.asp
+http://www.nhspe.org/pages/meeting-notes/nov98.html
+http://www.nhtrails.org/Trailspages/SnomoPages/snomoTrlCndtn.html
+http://www.nhtsa.dot.gov/cars/rules/adaptive/AirBagsSwitches/NHTSA-2004-19092_On-Off_Switches.htm
+http://www.nhtsa.dot.gov/people/injury/olddrive/OlderDriversBook/pages/Ch9-Section4.html
+http://www.nhtsa.dot.gov/people/injury/research/wireless/
+http://www.nhtsa.dot.gov/people/injury/research/wireless/appenf.htm
+http://www.nhtsa.dot.gov/people/injury/traffic_tech/1995/TT094.htm
+http://www.nhvweb.net/nhhs/docs/NHHS%20Student%20Handbook%202004-2005.pps
+http://www.nhweddingmagazine.com/invitationtrends.html
+http://www.nia.com.au/category.asp?categoryID=715
+http://www.niaaa.nih.gov/about/factsheet-text.htm
+http://www.niaaa.nih.gov/about/factsheet.htm
+http://www.niaaa.nih.gov/publications/PSA/underagepg2.htm
+http://www.niace.org.uk/Organisation/advocacy/14-19GreenPaper/Default.htm
+http://www.niace.org.uk/Publications/Periodicals/AdultsLearning/Default.htm
+http://www.niacouncil.org/SBA/sbafaq.asp
+http://www.niagarahealth.on.ca/!sites/gngs/patient_info.htm
+http://www.niagaraparks.com/nature/navyisland.php
+http://www.niaid.nih.gov/director/statements/11172004_testimony.htm
+http://www.niaid.nih.gov/factsheets/asthma.htm
+http://www.niaid.nih.gov/healthdisparities/HDSYMPOSIUM/proceedings2/adolescents.htm
+http://www.niaid.nih.gov/ncn/glossary/default4.htm
+http://www.niaid.nih.gov/ncn/grants/charts/checklists.htm
+http://www.niallkennedy.com/blog/archives/2005/03/whose_voice_is.html
+http://www.niams.nih.gov/hi/topics/acne/acne.htm
+http://www.niams.nih.gov/hi/topics/lupus/lupusguide/chppis11.htm
+http://www.niams.nih.gov/ne/highlights/spotlight/1999/lowdose.htm
+http://www.niapublications.org/engagepages/longterm.asp
+http://www.niapublications.org/pubs/hearts-arteries/p2.htm
+http://www.niassembly.gov.uk/agriculture/moe/moe010504.htm
+http://www.niassembly.gov.uk/agriculture/moe/moe021011i.htm
+http://www.niassembly.gov.uk/enterprise/moe/moe020619.htm
+http://www.niassembly.gov.uk/environment/moe/moe020516.htm
+http://www.niassembly.gov.uk/environment/moe/moe020627iii.htm
+http://www.niassembly.gov.uk/health/moe/moe020522.htm
+http://www.niassembly.gov.uk/highereduc/reports/report1-00r.htm
+http://www.niassembly.gov.uk/qanda/writtenans/001208.htm
+http://www.niassembly.gov.uk/qanda/writtenans/020607.htm
+http://www.niassembly.gov.uk/record/reports/001121.htm
+http://www.niassembly.gov.uk/record/reports/011105.htm
+http://www.nibiker.co.uk/niguide/hotroads.html
+http://www.nibs.com/nibvalues.html
+http://www.nicaliving.com/node/view/57
+http://www.nicc.org.uk/nicc-public/Public/practices/ncop040.htm
+http://www.nice.org.uk/page.aspx?ln=cy&o=14487
+http://www.nice.org.uk/page.aspx?o=45736
+http://www.nicecupofteaandasitdown.com/
+http://www.nicecupofteaandasitdown.com/biscuits/views.php3?icons%5B%5D=6
+http://www.nicecupofteaandasitdown.com/biscuits/views.php3?icons%5B%5D=6&icons%5B%5D=20
+http://www.nicedoggie.net/archives/2005/03/standing.php
+http://www.nicekids.org/newsfall2001.html
+http://www.niceperson.org/archive/2004/02/index.php
+http://www.nichcy.org/Trainpkg/traintxt/7script.htm
+http://www.nichcy.org/enews/foundations/stafftraining.asp
+http://www.nichd.nih.gov/about/cpr/dbs/sp/hirshman.htm
+http://www.niche.com.au/mw/events.html
+http://www.nicholas.duke.edu/duke_yale_fair/studentreg.html
+http://www.nicholsdiag.com/products/anemia-descrip.htm
+http://www.nick-james.com/public/department35.cfm
+http://www.nick.co.uk/global/legal/comprules.aspx
+http://www.nick.com/all_nick/everything_nick/public_letsjustplay2.jhtml
+http://www.nickbarlow.com/blog/
+http://www.nickbarlow.com/blog/index.php?cat=42
+http://www.nickbarlow.com/blog/index.php?cat=9
+http://www.nickcaveandthebadseeds.com/
+http://www.nickdenton.org/docs/mtnov01.htm
+http://www.nickelformen.com/Main/TheSpa.asp
+http://www.nicklaus.com/nicklaus_news/news042804.php
+http://www.nicks.com.au/gift_super.html
+http://www.nickschager.com/nsfp/
+http://www.nickselby.com/articles/travel/autobahn.htm
+http://www.nicox.com/pages/governance.html
+http://www.nictd.com/info/delays.htm
+http://www.nida.nih.gov/DIR/treatment.html
+http://www.nida.nih.gov/DrugPages/DrugsofAbuse.html
+http://www.nida.nih.gov/MeetSum/International/StreetChildren.html
+http://www.nida.nih.gov/StrategicPlan/Intro.html
+http://www.nida.nih.gov/TXManuals/CBT/CBT18.html
+http://www.nida.nih.gov/TXManuals/CBT/CBT4.html
+http://www.nida.nih.gov/TXManuals/CBT/CBT8.html
+http://www.nida.nih.gov/TXManuals/CRA/CRA9.html
+http://www.nida.nih.gov/TXManuals/DCCA/DCCA5.html
+http://www.nidcd.nih.gov/funding/programs/cp/summary.asp
+http://www.nidcd.nih.gov/health/balance/balance_disorders.asp
+http://www.nidcd.nih.gov/news/releases/05/1_19_05.asp
+http://www.niddk.nih.gov/fund/grants_process/grantwriting.htm
+http://www.nidek.com/salenavx.html
+http://www.niehs.nih.gov/envgenom/conclear.htm
+http://www.niehs.nih.gov/external/fy2004/home.htm
+http://www.nielsenhayden.com/makinglight/
+http://www.nieman.harvard.edu/reports/99-4_00-1NR/Kovach_Roots.html
+http://www.niesr.ac.uk/pubs/discuss.htm
+http://www.nieubethesda.co.za/Starling%20Dec%202000.htm
+http://www.nifc.gov/news/firecode/faqs.html
+http://www.nifc.gov/nr_airtanker-contracts.html
+http://www.nifc.gov/preved/comm_guide/wildfire/fire_18.html
+http://www.nifc.gov/refmat.html
+http://www.nifc.gov/wfstar/refmat.html
+http://www.nifl.gov/nifl-family/2001/0351.html
+http://www.nifl.gov/nifl/facts/family.html
+http://www.nifl.gov/partnershipforreading/glossary/glossary.html
+http://www.nifl.gov/partnershipforreading/publications/html/adult_ed/adult_ed_5.html
+http://www.niftc.co.uk/newspage.asp?id=100&storyID=349
+http://www.niftc.co.uk/page.asp?id=57
+http://www.nifty.org/nifty/journal-entries/0019.222
+http://www.nifty.org/nifty/journal-entries/0918.141
+http://www.nigc.gov/nigc/about/faq/finalfaq.jsp
+http://www.nigeria-law.org/LabourAct.htm
+http://www.nigeria.gov.ng/DEMOCRACY/chapter2/education.htm
+http://www.nigeriavillagesquare1.com/Articles/Guest/2005/01/silent-majority-is-part-of-problem-as.html
+http://www.nigeriavillagesquare1.com/nigeria%20bubblin.html
+http://www.night-sky.org/~spotty/writing/gelatinomancy.htm
+http://www.nightcats.com/sales/proposal.html
+http://www.nightclubbinuk.com/
+http://www.nightingale-clinic.co.uk/find_us.shtml
+http://www.nightly.net/ubb/ultimatebb.php/topic/20/5927.html
+http://www.nightly.net/ubb/ultimatebb.php/topic/39/1141.html
+http://www.nightly.net/ubb/ultimatebb.php/topic/56/8171.html
+http://www.nightly.net/ubb/ultimatebb.php/topic/70/2717.html
+http://www.nightly.net/ubb/ultimatebb.php/topic/73/161.html
+http://www.nightlybusiness.org/transcript/2001/trnscrpt031901.htm
+http://www.nightlybusiness.org/transcript/2001/trnscrpt080801.htm
+http://www.nightlybusiness.org/transcript/2002/trnscrpt012802.htm
+http://www.nightlybusiness.org/transcript/2003/transcript062403.html
+http://www.nightlybusiness.org/transcript/2004/transcript012804.html
+http://www.nightlybusiness.org/transcript/2004/transcript102604.html
+http://www.nightlybusiness.org/transcript/2005/transcript040505.html
+http://www.nightmedia.net/shop/shopsetup.html
+http://www.nightsea.com/heaveho.htm
+http://www.nightshadebooks.com/discus/messages/480/2423.html?1092176838
+http://www.nightvisionweb.com/terms_and_conditions.htm
+http://www.nigms.nih.gov/news/findings/mar02/harris.html
+http://www.nih.go.jp/~jun/research/phylip/consense.html
+http://www.nih.gov/news/NIH-Record/02_17_2004/story06.htm
+http://www.nih.gov/news/NIH-Record/03_30_2004/story02.htm
+http://www.nih.gov/news/NIH-Record/05_13_2003/story06.htm
+http://www.nih.gov/news/NIH-Record/09_02_2003/story07.htm
+http://www.nih.gov/news/NIH-Record/09_16_2003/story04.htm
+http://www.nih.gov/news/WordonHealth/apr2004/risk.htm
+http://www.nih.gov/news/WordonHealth/aug2004/story03.htm
+http://www.nih.gov/news/WordonHealth/dec2003/osteo.htm
+http://www.nih.gov/news/pr/feb2004/nhlbi-02.htm
+http://www.nih.gov/news/pr/feb2005/nichd-22.htm
+http://www.nih.gov/news/pr/may2004/ninr-12.htm
+http://www.nih.gov/nihrecord/09_14_2004/story01.htm
+http://www.nih.gov/nihrecord/09_28_2004/story01.htm
+http://www.nih.gov/nihrecord/11_09_2004/story02.htm
+http://www.nih.gov/science/models/nmm/executive_summary.html
+http://www.nihe.gov.uk/sp/spquality&monitoring/
+http://www.niherst.gov.tt/scipop/our-world-of-science/science-club-christmas-2003.htm
+http://www.nihrc.org/viewarcnews.asp?ID=97
+http://www.nikart.ca/writing/english.html
+http://www.nikmakris.com/index.asp
+http://www.nikon.co.jp/main/eng/feelnikon/kumon_dsc/kd01_e.htm
+http://www.niksula.cs.hut.fi/~bethy/contents/stephenie/
+http://www.nils.org.au/ais/web/resources/toolbar/toolbar_tutorial.html
+http://www.nimbit.com/webtools/faq.php
+http://www.nimbustier.net/contree/beloteurs-en.html
+http://www.nimbustier.net/contree/savoir-en.html
+http://www.nimh.nih.gov/publicat/harmaway.cfm
+http://www.nimlok.co.uk/uk/uktraining/facts.asp
+http://www.nimr.mrc.ac.uk/millhillessays/2001/ageing.htm
+http://www.nimr.mrc.ac.uk/millhillessays/2002/infertility.htm
+http://www.nimroth.de/APJ/TheBonding.txt
+http://www.ninapaley.com/
+http://www.ninaspencer.com/index.cfm?Fuseaction=ArticleDisplay&ArticleID=174
+http://www.ninaspencer.com/index.cfm?Fuseaction=ArticleDisplay&ArticleID=174&SectionID=60
+http://www.ninch.org/copyright/2001/denverreport.html
+http://www.ninch.org/copyright/2003/nyc.report.html
+http://www.ninds.nih.gov/disorders/huntington/detail_huntington.htm
+http://www.ninds.nih.gov/find_people/groups/brain_tumor_prg/NeuroProgenitor.htm
+http://www.ninds.nih.gov/news_and_events/congressional_testimony/99pdtestimony.htm
+http://www.ninehundred.com/~equalccw/
+http://www.ninehundred.net/control/mc-ch5.html
+http://www.ninjaburger.com/employment/apps/app.shtml
+http://www.nintendo.ca/2002/english/privacy_corp.shtml
+http://www.nintendo.com/consumer/manuals/precautions_handheld_english.jsp
+http://www.nintendoinsider.com/site/EpZZZyAkEEjMjLKnvc.php
+http://www.nintendoland.com/virtual/games.htm
+http://www.nintendorks.com/reviews.php?ContentID=1175
+http://www.nion.us/NSOC/Suskind.htm
+http://www.nirdagan.com/research/199803/
+http://www.nirvanaclub.com/get.php?section=lyrics&file=nevermind.htm
+http://www.nirvanaclub.com/news.html
+http://www.nisa.org/
+http://www.nisat.org/publications/the%20west%20africa%20book/programme_for_coannex_brit.htm
+http://www.nisat.org/publications/us_arms_central_america.htm
+http://www.niscair.res.in/ScienceCommunication/ResearchJournals/rejour/ijpap/ijpapaug2k2.htm
+http://www.niser.org.my/news/2001_01_14_01.html
+http://www.nissan-global.com/EN/STORY/0,1299,SI9-CH179-LO3-TI911-CI685-IFY-MC109,00.html
+http://www.nist.gov/public_affairs/taglance/tag99sprsum/99sp_sum.htm
+http://www.nist.gov/public_affairs/techbeat/tb2004_0702.htm
+http://www.nist.gov/testimony/2000/rkstds.htm
+http://www.nisus.com/blogs/
+http://www.nisus.se/archive/voksenasene.html
+http://www.nitrateonline.com/1999/rastro.html
+http://www.nitrateonline.com/2004/fcityofgod.html
+http://www.nivi.com/blog/article/greasemonkey-and-business-models
+http://www.nixers.com/ApplyForJob.aspx?Id=114111
+http://www.niyam.com/gnulinux/lfy/fy/FY-monthly-col.php?jan2k4
+http://www.nizkor.org/features/fallacies/appeal-to-emotion.html
+http://www.nizkor.org/hweb/imt/nca/nca-01/nca-01-05-opening-address-usa.html
+http://www.nizkor.org/hweb/imt/tgmwc/tgmwc-02/tgmwc-02-12-01.shtml
+http://www.nizkor.org/hweb/imt/tgmwc/tgmwc-04/tgmwc-04-36-03.shtml
+http://www.nizkor.org/hweb/imt/tgmwc/tgmwc-05/tgmwc-05-44-04.shtml
+http://www.nizkor.org/hweb/imt/tgmwc/tgmwc-07/tgmwc-07-59-09.shtml
+http://www.nizkor.org/hweb/imt/tgmwc/tgmwc-07/tgmwc-07-62-01.shtml
+http://www.nizkor.org/hweb/imt/tgmwc/tgmwc-09/tgmwc-09-81-06.shtml
+http://www.nizkor.org/hweb/imt/tgmwc/tgmwc-18/tgmwc-18-170-07.shtml
+http://www.nizkor.org/hweb/places/poland/wlodawa/wlodawa-015.html
+http://www.nj.gov/dep/newsrel/releases/03_0131.htm
+http://www.njarboristsisa.com/
+http://www.njbiomaterials.org/facil/mdcl.htm
+http://www.njbmwcca.org/
+http://www.njchamber.com/Events/
+http://www.nje3.org/
+http://www.njit.edu/old/pwt/resources/journal.html
+http://www.njit.edu/v2/Registrar/Residency.htm
+http://www.njjewishnews.com/njjn.com/012705/njterror.html
+http://www.njjobbank.com/JOBS/Sales/1009-2.htm
+http://www.njn.net/workforce/teaching.html
+http://www.njneuro.org/bios/walters.asp
+http://www.njpanda.org/PT4.html
+http://www.njpcgreens.org/garysnyder.html
+http://www.njproperty.com/sold.htm
+http://www.njshares.org/aboutNJShares/press/index.asp
+http://www.nkconcepts.com/animal_health_week.htm
+http://www.nkconcepts.com/equipment.htm
+http://www.nkfreedom.org/
+http://www.nkfreedom.org/122204protest.html
+http://www.nkfreedom.org/chineseembassy042805.html
+http://www.nksd.net/admin/personnel/jobs/sped_ed.htm
+http://www.nku.edu/~krugd/m224/ProofsIndex.html
+http://www.nku.edu/~yannarella/news9704.html
+http://www.nla.gov.au/collect/prompt/annie.html
+http://www.nla.gov.au/collect/prompt/kirsova.html
+http://www.nla.gov.au/nla/staffpaper/hberthon2.html
+http://www.nla.gov.au/nla/staffpaper/lyall1.html
+http://www.nlada.org/Defender
+http://www.nlanr.net/NA/
+http://www.nlbra.com/info/2003-2004_changes.htm
+http://www.nldline.com/Q&A.htm
+http://www.nldline.com/dale_brown1.htm
+http://www.nlembassy.org.yu/contents/funds/c_matra_kap.htm
+http://www.nlembassy.org.yu/contents/trade/investment/foreign_trade.htm
+http://www.nlembassy.pl/funds/c_funds2.htm
+http://www.nlihc.org/news/041005.html
+http://www.nlihc.org/news/051805.html
+http://www.nlm.nih.gov/changingthefaceofmedicine/resources/videos.html
+http://www.nlm.nih.gov/hmd/nichsr/ginzberg.html
+http://www.nlm.nih.gov/medlineplus/ency/article/000160.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/000195.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/000699.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/001946.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/003058.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/003090.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/003108.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/003163.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/003210.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/003259.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/003442.htm
+http://www.nlm.nih.gov/medlineplus/ency/article/003579.htm
+http://www.nlm.nih.gov/medlineplus/exerciseandphysicalfitness.html
+http://www.nln.ac.uk/materials/tutors/round_two_materials.asp
+http://www.nlo.co.uk/music+mind.htm
+http://www.nlpc.org/olap/UCU2/04_17.htm
+http://www.nlrb.gov/nlrb/legal/manuals/rules/act.asp
+http://www.nlrb.gov/nlrb/press/releases/r2259.asp
+http://www.nls.org/regs/358-3.3.htm
+http://www.nls.uk/burns/mainsite/burns/cowie.htm
+http://www.nls.uk/collections/business/
+http://www.nls.uk/digitallibrary/map/early/blaeu/903.html
+http://www.nlsbibliography.org/qauthor.php3?xxx=JOHNSON,+RICHARD+W.
+http://www.nm-pharmacy.com/body_sunday.htm
+http://www.nma-fallout.com/
+http://www.nmas.ac.uk/apply.html
+http://www.nmass.org/nmass/wcomp/workerscomp.html
+http://www.nmauk.co.uk/nma/do/live/addOfTheWeek?showBrowse=false
+http://www.nmbfacts.com/NMB%20GC%20Vacancy%20Announcement.htm
+http://www.nmc4jobs.com/apply_for_position.php?VacancyId=9436
+http://www.nmca.org/PAPER16.htm
+http://www.nmculturenet.org/heritage/kicking_bear/narrativ.htm
+http://www.nmdance.com/etiquette/hygiene.htm
+http://www.nmenv.state.nm.us/swqb/hg_white.html
+http://www.nmgw.ac.uk/about_nmgw/news/news/article.shtml?id=106
+http://www.nmgw.ac.uk/about_nmgw/strategy_policy/industry/index.en.shtml
+http://www.nmh.org/nmh/adam/adamencyclopedia/HIEArticles/003089.htm
+http://www.nmha.org/camh/college/fact_sheets.cfm
+http://www.nmhu.edu/inauguration/inthenews.php
+http://www.nmjc.org/ProgAct.html
+http://www.nmm.ac.uk/server/show/conWebDoc.3067/viewPage/3
+http://www.nmm.ac.uk/server/show/conWebDoc.413
+http://www.nmnh.si.edu/botany/projects/cpd/sa/sa27.htm
+http://www.nmpg.com/default.aspx?page=article&article=Articles/Dermatology/acneandros.1.xml
+http://www.nmpplant.com/plant_en.html
+http://www.nms.on.ca/Secondary/vegetarian_eating.htm
+http://www.nmsa.org/development/onsite.htm
+http://www.nmsa.org/moya/moya_2004/presskits/tech.htm
+http://www.nmsa.org/research/res_articles_march2000_build.htm
+http://www.nmsa.org/research/ressum19.htm
+http://www.nmsa.org/services/msj/msj_sept2002.htm
+http://www.nmsdcus.org/news/NMSDC%20names.html
+http://www.nmsr.org/behe.htm
+http://www.nmsu.edu/Academic_Progs/Undergraduate_Catalog_97_98/ch8/pep.html
+http://www.nmsu.edu/~housing/FAQS.htm
+http://www.nncc.org/Guidance/sac16_estab.rules.html
+http://www.nncc.org/Parent/childview.html
+http://www.nndb.com/people/001/000047857/
+http://www.nnrhospital.com/gettingtreatment.shtml
+http://www.no-euro.com/mediacentre/archive.asp?ID=209
+http://www.noahsarksearch.com/ronwyatt.htm
+http://www.nob.on.ca/ubrt/2004/directory.asp?cat=120
+http://www.nobel.no/eng_lect_2003a.html
+http://www.nobelprizes.com/nobel/peace/MLK-jail.html
+http://www.noble.org/Ag/Forage/Crabgrass4Forage/development2.html
+http://www.nobleharbor.com/tea/teabook/4.htm
+http://www.noblood.com/
+http://www.nobody-knows-anything.com/mtarchives/2003/01/adaptation_the.html
+http://www.nobody-knows-anything.com/mtarchives/2003/07/blue_moon_ice_c.html
+http://www.nobody-knows-anything.com/mtarchives/politics/
+http://www.nobrainerblinds.com/funstuff/
+http://www.nobully.org.nz/guidelines.htm
+http://www.nocompromise.org/issues/11RodSNV.html
+http://www.noctilucent.org/blog/archives/2003/09/
+http://www.nocturne.com/tot/default.asp?ID=8
+http://www.nocturnis.net/reviews/vampire/default/2000/March/45.html
+http://www.nod32.com.hk/products/outpost.htm
+http://www.node707.com/archives/001121.shtml
+http://www.node707.com/archives/001952.shtml
+http://www.node707.com/archives/004103.shtml
+http://www.nodice.ca/elections/alberta/index.php
+http://www.nodoubt.com/band/Articles/21MtvOn.htm
+http://www.nodoubt.com/band/Articles/35Details.htm
+http://www.nodoubt.com/features/
+http://www.nodoubt.com/music/rocksteadybio.html
+http://www.nodump.com/history.htm
+http://www.noeesnook.com/myblog/archives/2005_06.html
+http://www.noelhodson.com/index_files/property_telework.htm
+http://www.noendpress.com/caleb/biodiesel/index.php
+http://www.nofluffjuststuff.com/show_view.jsp?showId=19
+http://www.nofluffjuststuff.com/show_view.jsp?showId=26
+http://www.noharmm.org/nontrad.htm
+http://www.nohoartsdistrict.com/tv/
+http://www.noindoctrination.org/af_p.shtml
+http://www.noisebetweenstations.com/personal/weblogs/
+http://www.nokotahorse.org/Newsletter04-03.htm
+http://www.nola.com/hornets/t-p/index.ssf?/base/sports-1/110646409369430.xml
+http://www.nola.com/sports/t-p/index.ssf?/base/sports-16/110646409069430.xml
+http://www.nolinrecc.com/energystore/appliances.asp
+http://www.nolo.com/article.cfm/ObjectID/1C4C7F8B-892C-4E35-B5800081DCDE7C8C/catID/C1DBB6FC-F9C3-40CA-8A4D77366ED0D4D5/111/254/ART/
+http://www.nolo.com/article.cfm/ObjectID/1F63F9B2-8146-4418-A5464600C72190D2/catID/D067F3DC-202E-4EF7-AAEEEFB60061533D/310/266/ART/
+http://www.nolo.com/article.cfm/ObjectID/E43F6B1F-C983-42DE-9BD4ACCC9AC4C117/catID/5DD3BD40-C970-45AC-BF68DC9BA717AFDB/310/238/181/ART/
+http://www.nolo.com/lawcenter/auntie/questions.cfm/ObjectID/DB3DFB26-87FB-4AD1-A80D2367CBCAB275/catID/1C25B3F1-4442-4184-869226E5BA959B5B
+http://www.nolo.com/lawcenter/auntie/questions.cfm/ObjectID/DB3DFB26-87FB-4AD1-A80D2367CBCAB275/catID/E9D6A309-C25E-4D84-B69EC9EE66380B33
+http://www.nolo.com/lawcenter/auntie/questions.cfm/ObjectID/DB3DFB26-87FB-4AD1-A80D2367CBCAB275/catID/F12B8A3E-0ED4-40C8-B18E8CD8034A1F2E
+http://www.nolo.com/lawcenter/ency/article.cfm/ObjectID/1FF752C2-0C80-4539-8B159557A55CC17D/catID/283B9600-ECC3-49ED-9D9A20A3E13F42E0
+http://www.nolo.com/lawcenter/ency/article.cfm/ObjectID/1FF752C2-0C80-4539-8B159557A55CC17D/catID/575C3BE9-F0C1-448E-B5F43D22FE36E9F2
+http://www.nolo.com/lawcenter/ency/article.cfm/ObjectID/234E9150-81AB-4316-93F84A2D2B28A743/catID/2C200607-463A-4D37-AD52850B52FEC248
+http://www.nolo.com/lawcenter/ency/article.cfm/ObjectID/4A2EDAAE-21E0-458D-B0099737751F4CA1/catID/0D973BC0-3287-4CA1-944DC75DE82DC59F
+http://www.nolo.com/lawcenter/ency/article.cfm/ObjectID/586AC0B4-0435-4D7C-BD06608979A6CBF9/catID/697DBAFE-20FF-467A-9E9395985EE7E825
+http://www.nolo.com/lawcenter/ency/article.cfm/ObjectID/9A7A20CE-F670-40B9-928A4F8F05795DF5/catID/0D973BC0-3287-4CA1-944DC75DE82DC59F
+http://www.nolo.com/lawcenter/ency/article.cfm/ObjectID/9FF29B52-1B44-42D1-9C96C0D49CAE4589/catID/8FA0132B-91C2-4773-828573F2D3D58DFA
+http://www.nolo.com/lawcenter/ency/article.cfm/objectID/87F6DD43-E6F2-4DFE-BCDB8E2E85DFF80B/catID/806B7BA0-4CDF-4221-9230A3135E2DF07A
+http://www.nolo.com/lawcenter/ency/article.cfm/objectID/EA88ECFE-C38F-4DF8-BA6551FCBE64DCA0
+http://www.nolo.com/lawcenter/ency/index.cfm/articles/sb/index.cfm/catID/4BEF1F62-722F-435E-98AB18960A6EAB0E
+http://www.nolo.com/lawcenter/ency/index.cfm/catID/4BEF1F62-722F-435E-98AB18960A6EAB0E
+http://www.nolo.com/product.cfm/ObjectID/48BB18A0-4224-4A2B-AA1929A13C4B02EA/update/1/118/209/
+http://www.nolo.com/product.cfm/ObjectID/86C28D85-A787-42FA-A25A09551389EC7A/111/228/
+http://www.nolo.com/product.cfm/ObjectID/EF0DE668-BA17-48AF-B7634507589AA51D/111/159/
+http://www.nolo.com/product.cfm/objectID/A151D009-A210-4497-89D1A2F991676E17/samplechapter/1/111/
+http://www.nomad-online.co.uk/html/floodlight_cup.html
+http://www.nomanagedcare.org/eleven.html
+http://www.nomic.net/deadgames/imperial/28.2/rules.html
+http://www.nominet.org.uk/DisputeResolution/Decisions/TarmacLimited-v-AndrewEtches.html
+http://www.nominet.org.uk/ReferenceDocuments/TermsAndConditions/TermsAndConditions.html
+http://www.nominet.org.uk/nominet-terms.html
+http://www.nomorelyrics.net/song/191656.html
+http://www.nomorepanic.co.uk/research.htm
+http://www.non-gm-farmers.com/news_details.asp?ID=1001
+http://www.nonliteral.com/lawson/weblog/articles/tivo_dying_young_but_leaving_a_great_looking_corpse/
+http://www.nonoise.org/lawlib/cities/me/york_me.htm
+http://www.nonprofitbasics.org/CompleteGlossary.aspx?curLetter=B&ID=-1
+http://www.nonprofitrisk.org/jobs/jobs.htm
+http://www.nonprofitrisk.org/tools/archive/insurance050605-p.htm
+http://www.nonprofits.org/npofaq/01/09.html
+http://www.nonprofits.org/npofaq/16/08.html
+http://www.nonprofits.org/npofaq/18/77.html
+http://www.nonprofits.org/parlor/acknow/landesman/vpopg-d.html
+http://www.nonprofitwatch.org/npt/stclair.php
+http://www.nonstopenglish.com/allexercises/
+http://www.nonstopenglish.com/reading/articles/Can-Sitting-at-Your-Computer-Help-You-Lose-Weight.asp
+http://www.nonstopenglish.com/reading/articles/Is-Mothering-Wearing-You-Out.asp
+http://www.nonstopenglish.com/reading/history_in_english/History-in-English-25-December.asp
+http://www.nonstopenglish.com/reading/quotations/k_Fear.asp
+http://www.nonviolence.org/quaker/blogs/
+http://www.noonsite.com/Members/doina/R2002-12-04-1
+http://www.noopportunitywasted.com/about_now/about_phil.php
+http://www.nooro.com/datapoints.html
+http://www.nopa.net/Useful_Information/Presidential_Speeches/38.shtml
+http://www.nopna.org/profiles/Central_921.html
+http://www.norden.org/learningsecondlanguages/encell_report.html
+http://www.norelevance.com/bock/
+http://www.norfolk.gov.uk/environment/conservation/historicbuildings/greenbuildingmaterials.htm
+http://www.norfolk.police.uk/article.cfm?artID=1069&catID=584
+http://www.norfolk.police.uk/article.cfm?catID=584&artID=1069
+http://www.norfolkbc.fsnet.co.uk/bc_issues/bc_94_jun_00/94_jun_00.htm
+http://www.norges-bank.no/english/nb/legislation/reg-2003-12-19.html
+http://www.noria.com/dictionary.html
+http://www.noripcord.co.uk/reviews/W/williamelliotwhitmorealbum.html
+http://www.norkro.com/index_files/page0010.htm
+http://www.norlarco.com/24hr_banking.asp
+http://www.norm-uk.org/circumcision_unhappy.html
+http://www.normal.org/MayorAndCouncil/Boards/2030/2030Minutes2004_03_31.htm
+http://www.normal.org/MayorAndCouncil/CouncilAM/Minutes2003_10_20.htm
+http://www.normal.org/MayorAndCouncil/CouncilAM/Minutes2004_10_18.htm
+http://www.normaleating.com/obsession.php
+http://www.normandale.edu/directory/index.cfm?choice=byname&criteria=Richard%20Brown
+http://www.normandale.edu/directory/index.cfm?choice=byname&criteria=Richard%20Dunning
+http://www.normemma.com/indxadvo.htm
+http://www.norml.org/index.cfm?Group_ID=4946
+http://www.norsiglar.com/english/travelog.html
+http://www.north-sea.net/
+http://www.northadamsbank.com/personal_checking.htm
+http://www.northamericanwhitetail.com/deermanagement/wt_202foodplots/
+http://www.northamptonshire.nhs.uk/cshappeal/pressroom/Default.asp
+http://www.northants-chamber.co.uk/factsheet.php/155
+http://www.northants-chamber.co.uk/product.php/910
+http://www.northantsnews.com/
+http://www.northark.edu/2004cit/
+http://www.northbankfred.com/90.html
+http://www.northbankfred.com/spr95_1.html
+http://www.northbay.com/foodwine/jordan/29pantry.html
+http://www.northcoastjournal.com/012303/garden0123.html
+http://www.northcoastjournal.com/020702/cover0207.html
+http://www.northdenmarkonline.dk/readers/mason.htm
+http://www.northdevongazette.co.uk/news.asp
+http://www.northdevongazette.co.uk/northdevongazette/news/
+http://www.northeastbadminton.net/Advice-RunningClub.asp
+http://www.northeastmedical.org/press_releases/patient_info_guidelines.html
+http://www.northeasttimes.com/2000/0705/devon.html
+http://www.northeasttimes.com/2004/0930/director.html
+http://www.northern.ac.uk/aboutus/meet_the_governors.asp?link=aboutus
+http://www.northern.edu/registrar/grad-rates.html
+http://www.northerncambria.com/
+http://www.northernconcord.org.uk/Police-Sense.htm
+http://www.northernontariobusiness.com/displayHeadline.asp?194id115-pn=&view=22351
+http://www.northernskynews.com/backissue%20pages/Moving%20to%20Canada.html
+http://www.northernstars.ca/actorsstu/shearerbio.html
+http://www.northernvisions.org/Education.htm
+http://www.northhampshire.nhs.uk/patients/comein/leaflets/surgery_dis.html
+http://www.northhousefolkschool.com/classes/Shelter.htm
+http://www.northhousefolkschool.com/classes/Woodwork.htm
+http://www.northjersey.com/page.php?qstr=eXJpcnk3ZjczN2Y3dnFlZUVFeXk2OTkmZmdiZWw3Zjd2cWVlRUV5eTY1NDg2NTgmeXJpcnk3ZjcxN2Y3dnFlZUVFeXk5
+http://www.northjersey.com/page.php?qstr=eXJpcnk3ZjczN2Y3dnFlZUVFeXkyNjkmZmdiZWw3Zjd2cWVlRUV5eTU5MTY0NTkmeXJpcnk3ZjcxN2Y3dnFlZUVFeXk2
+http://www.northjersey.com/page.php?qstr=eXJpcnk3ZjczN2Y3dnFlZUVFeXkyNjkmZmdiZWw3Zjd2cWVlRUV5eTU5MTY0NTkmeXJpcnk3ZjcxN2Y3dnFlZUVFeXk5
+http://www.northjersey.com/page.php?qstr=eXJpcnk3ZjczN2Y3dnFlZUVFeXkyNjkmZmdiZWw3Zjd2cWVlRUV5eTYzNDg3NzAmeXJpcnk3ZjcxN2Y3dnFlZUVFeXk2
+http://www.northjersey.com/page.php?qstr=eXJpcnk3ZjczN2Y3dnFlZUVFeXkyNjkmZmdiZWw3Zjd2cWVlRUV5eTYzNTMyMzkmeXJpcnk3ZjcxN2Y3dnFlZUVFeXk2
+http://www.northjersey.com/page.php?qstr=eXJpcnk3ZjczN2Y3dnFlZUVFeXkyNzgmZmdiZWw3Zjd2cWVlRUV5eTY2NjQ3MDEmeXJpcnk3ZjcxN2Y3dnFlZUVFeXk5
+http://www.northjersey.com/topic.php?qstr=eXJpcnk3ZjcxN2Y3dnFlZUVFeXk2JnlyaXJ5N2Y3MjdmN3ZxZWVFRXl5MzAmeXJpcnk3ZjczN2Y3dnFlZUVFeXkxMjc=
+http://www.northjersey.com/topic.php?qstr=eXJpcnk3ZjcxN2Y3dnFlZUVFeXk2JnlyaXJ5N2Y3MzdmN3ZxZWVFRXl5MTI3
+http://www.northjerseyjobs.com/rajan_4.php
+http://www.northkoreanrefugees.com/mrs-ae.htm
+http://www.northlan.gov.uk/your+council/news/latest+news/food+watch+campaign+reveals+colouring+issue.html
+http://www.northpolealaska.com/
+http://www.northsailsod.com/class/sonar/sonar_whatsnew.html
+http://www.northseattle.edu/info/news/article.phtml?id=76
+http://www.northstar.sierraclub.org/about/e-sierra/2003/200308.html
+http://www.northstaracademy.org/middleschoolcodeofconduct.html
+http://www.northstarteens.org/pages.cfm?gpt=2&g=8&ID=75
+http://www.northtyneside.gov.uk/education/sen_appeals.htm
+http://www.northwalesbmd.org.uk/marriageinfo.html
+http://www.northwaleschronicle.co.uk/ihome2/catdetail.asp?catid=1&officeid=8&type=0
+http://www.northwest.coop/support/LD-FAQ.htm
+http://www.northwestern.edu/ipr/publications/workingpapers/wpF95.html
+http://www.northwestern.edu/magazine/northwestern/spring2003/classnotes/deaths.htm
+http://www.northwestern.edu/magazine/northwestern/summer2004/classnotes/60s.htm
+http://www.northwestnotes.net/mood.htm
+http://www.northwestnotes.net/richler_review.htm
+http://www.northwestpackgoats.com/leading.htm
+http://www.northwestsaysno.org.uk/news19.asp
+http://www.northyorkharvestfoodbank.com/
+http://www.northyorkshire.police.uk/initiative-cycleunit.asp
+http://www.nortonmusic.com/fake16.html
+http://www.nortonpoets.com/ex/celanp.htm
+http://www.norwalkhosp.org/website/nhssite.nsf/MainPageKey/Residency-IntMed-1-AboutNH
+http://www.norway.com/meetingplanner/mp_d_company.asp?id=1740&lang=44
+http://www.norway.gr/business/Environmental+Technology/
+http://www.norway.org.my/
+http://www.norway.org/culture/architecture/fehn/
+http://www.norway.org/xmas04/events.htm
+http://www.norwayheritage.com/articles/templates/voyages.asp?articleid=28&zoneid=6
+http://www.norwescon.org/archives/norwescon28/policies.html
+http://www.norwichunion.co.uk/sponsorship/gr-do-the-right-thing-what-is.htm
+http://www.norwichunion.com/private-health-insurance/trust-care-benefits.htm
+http://www.nosoftwarepatents.com/phpBB2/viewtopic.php?t=123
+http://www.nospank.net/couture3.htm
+http://www.nostalgiacentral.com/60/60tv.htm
+http://www.nostalgiacentral.com/years/1977main.htm
+http://www.nostatusquo.com/ACLU/Nikki/academic1.html
+http://www.nosuch.org/2005_01_01_archive.html
+http://www.nosweatshoplabel.com/report.htm
+http://www.notationmachine.com/how_to_read_sheetmusic/readingmusic.htm
+http://www.notbored.org/nachman.html
+http://www.notcalmdotcom.blogspot.com/
+http://www.notcoming.com/reviews.php?id=254
+http://www.note.com/note/pp/jackpot.html
+http://www.noteaccess.com/APPROACHES/AGW/Dionysos.htm
+http://www.noteaccess.com/ELEMENTS/Space.htm
+http://www.noteaccess.com/RELATIONSHIPS/PerspectiveMA.htm
+http://www.notebookreview.com/
+http://www.notebookreview.com/price/default.asp?productID=8230&display=opinionDetail
+http://www.notebookreview.com/price/default.asp?productID=8299&display=opinionDetail
+http://www.notebookreview.com/price/default.asp?productID=9257&display=opinionDetail
+http://www.noteinvestors.com/
+http://www.notestips.com/80256B3A007F2692/1/TAIO-68SEBN
+http://www.nothing-fancy.com/michaelkitchen/interviews/foyle202.htm
+http://www.nothingisreal.com/girlfriend/
+http://www.nothyme.com/plantpropagation.cfm
+http://www.noticias.info/Archivo/2004/200410/20041009/20041009_35592.shtm
+http://www.notinourname.net/restrictions/prez-powers-16apr04.htm
+http://www.notlame.com/
+http://www.notmydog.com/2001_10_01_archive.html
+http://www.notpretty.com/skeletons/000044half_of_something.html
+http://www.notpretty.com/skeletons/000047get_the_pictures.html
+http://www.nottingham.ac.uk/prospectuses/undergrad/introduction/life/students-union.phtml
+http://www.nottingham.ac.uk/public-affairs/press-releases/press-up.phtml?menu=pressuparchive&sub=208
+http://www.nottingham.edu.cn/english/admissions/d4.asp
+http://www.nottinghamcity.gov.uk/coun/department/dps/parking/payanddisplay/benefits/default.asp
+http://www.nottinghamema.com/en/customer-information/duty-free.html
+http://www.nottinghamema.com/en/customer-information/retail-catering/alphashopping.html
+http://www.nottinghamshire.gov.uk/home/social_care/gettingabout/specialaccess.htm
+http://www.nottinghillonline.com/page.asp?id=347
+http://www.nottshistory.org.uk/Jacks1881/chilwell.htm
+http://www.nottshistory.org.uk/articles/itinerary/itinerary1933p3.htm
+http://www.noumenal.com/marc/dadd/
+http://www.nova.edu/cwis/hrd/emphanbk/conduct.html
+http://www.nova.edu/ssss/QR/QR2-3/schooley.html
+http://www.novagold.net/s/Disclaimer.asp
+http://www.novalex2000.net/startingabusiness.htm
+http://www.novan.com/aggresr2.htm
+http://www.novan.com/art3imag.htm
+http://www.novan.com/mind.htm
+http://www.novascotiabusiness.com/business/success/
+http://www.novelier.com/911.html
+http://www.novell.com/coolsolutions/feature/14817.html
+http://www.novell.com/coolsolutions/gwmag/features/a_formativ_applet_central_gw.html
+http://www.novell.com/coolsolutions/tip/11624.html
+http://www.novell.com/coolsolutions/tip/9460.html
+http://www.novell.com/linux/truth/better_choice.html
+http://www.novell.com/news/leadstories/2001/sep19/
+http://www.novell.com/news/press/archive/2003/04/pr03020.html
+http://www.novell.com/news/press/archive/2005/02/pr05014.html
+http://www.novellus.com/dome/showpr.asp?pr_id=151
+http://www.novem.org/core.htm
+http://www.novemberlearning.com/blogs/regismit/
+http://www.novexcn.com/viet_finance_main.html
+http://www.novica.com/artistdetail/index.cfm?faID=2822&view_testimonial=1&t_id=2105
+http://www.novita.org.au/content.asp?p=5
+http://www.novita.org.au/content.asp?p=88
+http://www.novoco.com/resource.shtml
+http://www.now.org/cgi-bin/store/BK-HER.html?id=AvkUqjKT
+http://www.now.org/nnt/05-97/media.html
+http://www.now.org/nnt/summer-2000/falllineup.html
+http://www.now.org/press/11-00/11-08-00B.html
+http://www.nowarcollective.com/woodward.htm
+http://www.nowhereroad.com/nwr-thegame/entry3.html
+http://www.nowtoronto.com/issues/2004-12-02/music_discs3.php
+http://www.npb-cnlc.gc.ca/infocntr/policym/man_11_e.htm
+http://www.npc.org.uk/page/1031854965
+http://www.npc.org.uk/page/1100042349
+http://www.npca.org/marine_and_coastal/marine_wildlife/make_a_difference.asp
+http://www.npcil.org/nupower_vol13_3/roiphwr.htm
+http://www.npd.no/English/Emner/Ytre+miljo/sokkelaret_2004_miljo.htm?print=true
+http://www.npelra.org/legal/ted.asp
+http://www.npg.org/ga_poll/georgia.html
+http://www.npg.org/pospapers/smluspop.htm
+http://www.npg.org/specialreports/bartlett_section3.htm
+http://www.npicenter.com/listings/Categories.aspx?catId=3710
+http://www.npl.washington.edu/AV/altvw86.html
+http://www.nplindia.org/npl/npl.htm
+http://www.npma.org/pubs/education/41_114_688.CFM
+http://www.npr.org/
+http://www.npr.org/about/nextgen/sum04/bios_a-f.html
+http://www.npr.org/about/press/050128.newsnotes.html
+http://www.npr.org/features/feature.php?wfId=1355120
+http://www.npr.org/news/specials/healthcarepoll/
+http://www.npr.org/programs/death/980310.death.html
+http://www.npr.org/templates/story/story.php?storyId=3108017
+http://www.npr.org/templates/story/story.php?storyId=4161552
+http://www.npr.org/templates/story/story.php?storyId=4181343
+http://www.npr.org/templates/story/story.php?storyId=4461694
+http://www.npr.org/templates/story/story.php?storyId=4487263
+http://www.npr.org/templates/story/story.php?storyId=4561398
+http://www.npr.org/templates/story/story.php?storyId=4668391
+http://www.npr.org/templates/story/story.php?storyId=4678527
+http://www.npr.org/templates/story/story.php?storyId=4695607
+http://www.npr.org/templates/story/story.php?storyId=4714303
+http://www.npr.org/templates/topics/complex_topic.php?topicParentId=1010&topicId=1014,1010&pageNum=11
+http://www.npr.org/templates/topics/complex_topic.php?topicParentId=1016&topicId=1014,1016&pageNum=5
+http://www.npra.org/issues/energy.cfm
+http://www.nps.gov/arho/tour/history/arlingtoninbetween2.html
+http://www.nps.gov/bowa/tuskin.html
+http://www.nps.gov/colo/Jthanout/Glassmak.html
+http://www.nps.gov/colo/Jthanout/JSmith.html
+http://www.nps.gov/deto/gmp_final/04a_consequences.htm
+http://www.nps.gov/efmo/parks/glossary.htm
+http://www.nps.gov/gett/soldierlife/soldiers.htm
+http://www.nps.gov/grca/compliance/nr-ems-fire.htm
+http://www.nps.gov/hale/pages/tier_two/nene.htm
+http://www.nps.gov/jeff/LewisClark2/CorpsOfDiscovery/TheOthers/Civilians/York.htm
+http://www.nps.gov/nava/adhi/adhi7a.htm
+http://www.nps.gov/pinn/education/wow-post_s.htm
+http://www.nps.gov/rich/ri_auto.htm
+http://www.nps.gov/sahi/travel/
+http://www.nps.gov/tapr/Schedule.htm
+http://www.nps.gov/thro/tr_trnha.htm
+http://www.nps.gov/whmi/history/garth.htm
+http://www.nps.gov/yell/nature/nhighlights/ncanyon.htm
+http://www.nps.gov/yose/news/2002/fire1030.htm
+http://www.nps.gov/yose/planning/yfalls/ch6.htm
+http://www.npsag.com/newsletter.htm
+http://www.npsc.org/students/requirements.html
+http://www.npsf.org/html/research/1998award2.html
+http://www.npt.gov.uk/businessandeconomy/
+http://www.nptimes.com/Jul03/npt1.html
+http://www.nq.unioncommand.com/
+http://www.nqi.ca/CAEAwards/default.aspx
+http://www.nqi.ca/caeawards/
+http://www.nrahq.org/hunting/clinic/ordermaterials.asp
+http://www.nraila.org/Issues/Articles/Read.aspx?ID=78
+http://www.nraila.org/Issues/FactSheets/Read.aspx?ID=15
+http://www.nrao.edu/pr/2004/m31HVCs/
+http://www.nrao.edu/pr/2005/3c273jet/
+http://www.nrb.org/partner/Article_Display_Page/0,,PTID308778%7CCHID568026%7CCIID1535514,00.html
+http://www.nrc.gov/public-involve/info-quality/v67n36p8451.html
+http://www.nrc.gov/reading-rm/doc-collections/commission/secys/2002/secy2002-0116/2002-0116scy.html
+http://www.nrc.gov/reading-rm/doc-collections/commission/speeches/2001/s01-004.html
+http://www.nrc.gov/reading-rm/doc-collections/commission/tr/2002/20020821b.html
+http://www.nrc.gov/reading-rm/doc-collections/enforcement/actions/reactors/ea04213.html
+http://www.nrc.gov/reading-rm/doc-collections/event-status/event/2004/20041202en.html
+http://www.nrc.gov/reading-rm/doc-collections/event-status/part21/2000/2000100.html
+http://www.nrc.gov/reading-rm/doc-collections/fact-sheets/reducing-hazards-spent-fuel.html
+http://www.nrc.gov/reading-rm/doc-collections/gen-comm/info-notices/1981/in81026.html
+http://www.nrc.gov/reading-rm/doc-collections/gen-comm/info-notices/1984/in84073.html
+http://www.nrc.gov/reading-rm/doc-collections/nuregs/contract/cr6876/
+http://www.nrc.gov/reading-rm/doc-collections/nuregs/staff/sr0933/sec3/077r1.html
+http://www.nrc.gov/who-we-are/organization/nsirfuncdesc.html
+http://www.nrcam.uchc.edu/applications/nuc_envelope_dir/nuc_envelope.html
+http://www.nrcan-rncan.gc.ca/cfs-scf/national/what-quoi/sof/sof02/review_e.html
+http://www.nrcan-rncan.gc.ca/media/archives/speeches/2003/200390_e.htm
+http://www.nrcan.gc.ca/mms/canmet-mtb/mmsl-lmsm/mend/reports/3212aes_e.htm
+http://www.nrcs.usda.gov/technical/land/meta/t5839.html
+http://www.nrcs.usda.gov/technical/land/nri02/
+http://www.nrcs.usda.gov/technical/land/pubs/gosstext.html
+http://www.nrcs.usda.gov/technical/sciencetech_faq.html
+http://www.nrdc.org.uk/content.asp?CategoryID=546
+http://www.nrdc.org/air/energy/rep/chap3.asp
+http://www.nrdc.org/globalWarming/pcarbon.asp
+http://www.nrec.org/synapse44/bonedig.html
+http://www.nreionline.com/finance/capital/real_estate_debt_pipeline_bulging/
+http://www.nreionline.com/mag/real_estate_cincinnati_market_sectors/
+http://www.nreionline.com/property/retail/real_estate_putting_new_life/
+http://www.nrel.gov/analysis/analysis_tools_tech_vehic.html
+http://www.nrel.gov/buildings/windows/trip2.html
+http://www.nrf.ac.za/focusareas/iks/
+http://www.nrglink.com/archives/nrgs1103.html
+http://www.nrglink.com/archives/nrgs1104.html
+http://www.nrhtx.com/dept_secretary_teen_court_board.cfm
+http://www.nrl.com/privacy.cfm
+http://www.nrlc.org/Federal/LegUpdates/challenges2005.html
+http://www.nrlc.org/abortion/Fetal_Pain/Smithremarks052004.html
+http://www.nrlo.net/MessagefromDirectorofTraining.html
+http://www.nrm.gov.au/monitoring/indicators/soil/carbon.html
+http://www.nrm.qld.gov.au/education/modules/junior_secondary/sec_biodiversity/resourcesheet7.html
+http://www.nrmp.org/
+http://www.nrrf.org/article_traub_8-3-03.htm
+http://www.nrs-inc.com/support/ezfaq.asp
+http://www.nrsp.co.uk/
+http://www.nrtee-trnee.ca/Publications/HTML/Complete-Documents/SOD_Nature_E/chapter9_e.htm
+http://www.nrtw.org/RDA.htm
+http://www.nrtw.org/b/nr_150.php
+http://www.nrvanimalshelters.com/Floyd/
+http://www.nrwa.org/sitemap.htm
+http://www.ns.lung.ca/news/clearing01_03.html
+http://www.nsa.gov/careers/students_2_1.cfm
+http://www.nsa.gov/releases/relea00059.html
+http://www.nsa.naples.navy.mil/panorama/Clubs.htm
+http://www.nsba.org/boardbuzz
+http://www.nsba.org/sbot/toolkit/Conflict.html
+http://www.nsba.org/site/page.asp?TRACKID=&CID=1362&DID=32712
+http://www.nsbn.org/case/jointuse/developfacilities.php
+http://www.nsbri.org/Research/Projects/viewsummary.epl?pid=105
+http://www.nsc.ie/News/Title,4255,en.html
+http://www.nsc.ie/RoadSafety/TheRoadtoSafety/Synopsis/
+http://www.nsc.org/ehc/jrn/tips/tip161.htm
+http://www.nsc.org/issues/emerg/99esc.htm
+http://www.nsca-lift.org/Perform/article.asp?ArticleID=118
+http://www.nscaa.com/PostConJournal/2003CoachesAwards/67562.html
+http://www.nscaa.com/coachingtips/journal/27854.html
+http://www.nscaa.com/home/67562.html
+http://www.nscaa.com/tips/
+http://www.nsdc.org/library/publications/jsd/hornbeck243.cfm
+http://www.nsdc.org/library/publications/jsd/pardinihigh223.cfm
+http://www.nsdssurvey.org/WallSt.htm
+http://www.nsela.org/safesci15.htm
+http://www.nserc.ca/forms/instructions/180/e.asp
+http://www.nserc.ca/professors_e.asp?nav=profnav&lbi=f5
+http://www.nsf.ac.lk/jss/jss23-4-12.htm
+http://www.nsf.org/business/about_NSF/careers_description.asp?j_id=8583&j_dep=NSF-ISR
+http://www.nsgtmo.navy.mil/gazette/History_98-64/hischp19.htm
+http://www.nsh.nsw.gov.au/healthinfo/healthprom/whatsnew/Spring99/Main.htm
+http://www.nshouseofyoga.com/Protect%20Disks.htm
+http://www.nskstate.com/philosophy/speeches/address1989.php
+http://www.nsm88.com/aryanattack/aryanattack20041114.html
+http://www.nsm88.com/aryanattack/aryanattack20041128.html
+http://www.nsmb.com/gear/seaotter2_04_05.php
+http://www.nsmb.com/people/darren_butler_05_05.php
+http://www.nsna.org/career/juggling.asp
+http://www.nso.com/case/cases_area_index.php?id=50&area=OB/GYN
+http://www.nso.com/case/cases_area_index.php?id=61&area=Geriatrics
+http://www.nspainc.com/journal3.htm
+http://www.nspcc.org.uk/inform/ReadingLists/Bullying.asp
+http://www.nssb.org/certapp_details.cfm?certapp_id=377
+http://www.nssb.org/certapp_details.cfm?certapp_id=379
+http://www.nssb.org/certapp_details.cfm?certapp_id=380
+http://www.nssc1.org/safeweek/safe.htm
+http://www.nssd.net/Links/train-ind-conv.html
+http://www.nsta.org/conventions
+http://www.nsu.newschool.edu/blur/blur02/user_love.html
+http://www.nsu.ru/english/
+http://www.nswagtc.org.au/admin/authoring.html
+http://www.nswpeace.org/features/1093492419_20743.html
+http://www.nswtf.org.au/edu_online/61/matl.html
+http://www.nt.gov.au/health/healthdev/health_promotion/bushbook/volume2/chap1/cannabis.htm
+http://www.nt.gov.au/ntsc/doc/sentencing_remarks/0/86/0/NS000570.htm
+http://www.nt.net/~a815/survey.htm
+http://www.nt.net/~toby/intrep.html
+http://www.nt.net/~torino/glows.html
+http://www.ntc-dfw.org/ntccmtedescriptions.html
+http://www.ntcp.org/openEye/executing.html
+http://www.ntcumc.org/SpecEd/2003/090603.html
+http://www.nten.org/news-03-06-24
+http://www.nteu.org.au/about/policymanualold/2923
+http://www.nteu.org.au/news/current/12156
+http://www.ntf.flinders.edu.au/TEXT/PRJS/PACIFIC/pacific.html
+http://www.ntfaxfaq.com/pages/fexreview.htm
+http://www.ntholidays.com/nt/ntholidays/maps_info/safety/sunsafe.html
+http://www.nthzine.com/fiction.html?archiveDisplay=20030503
+http://www.nthzine.com/fiction.html?archiveDisplay=20050602
+http://www.nti.org/e_research/e3_38b.html
+http://www.nti.org/e_research/profiles/NK/45_541.html
+http://www.ntia.doc.gov/ntiahome/domainname/agreements/docstatement_09192002.htm
+http://www.ntia.doc.gov/ptfp/application/equipcost_ed.html
+http://www.ntia.doc.gov/top/publicationmedia/speeches/wilhelm_fcc_10_2004.htm
+http://www.ntia.doc.gov/top/whatsnew/whatsnew.htm
+http://www.ntimc.org/newswire.php?type=eventnotice
+http://www.ntionline.com/CourseInfo.asp?CourseNumber=ID005
+http://www.ntlf.com/html/lib/bib/faqdisc.htm
+http://www.ntlf.org/ntlf_standards_ten_point_coalitions.htm
+http://www.ntmconline.net/EOM/care%20award/September/care_sept.htm
+http://www.ntn.ca/news2.htm
+http://www.ntrbonline.org/english/whoweare.html
+http://www.nts.org.uk/web/site/home/visit/places/Property.asp?PropID=10026&NavPage=10026&NavId=5115
+http://www.ntsc-uk.com/review.php?platform=ngc&game=MetroidPrime2
+http://www.ntt-west.co.jp/solution/eng/journal/tokushu_2003_06/011spe_03.html
+http://www.nttdocomo.com/privacy/
+http://www.ntu.ac.uk/news/annualreport/614gp.html
+http://www.ntu.ac.uk/parents/calendar/
+http://www.ntu.edu.sg/studorgn/osa/studentchapter/
+http://www.ntu.org/main/press_issuebriefs.php?PressID=159&org_name=NTU
+http://www.ntu.org/main/press_papers.php?PressID=604&org_name=NTUF
+http://www.ntu.org/main/press_printable.php?PressID=604&org_name=NTUF
+http://www.nu.edu/Admissions/FinancialAid/Programs.html
+http://www.nubasurvival.com/news&events/Jun%202001%20NRRDO%20Declaration.htm
+http://www.nuclearfiles.org/etinternationallaw/johansenusoppositiontoicc.htm
+http://www.nuclearfiles.org/hinonproliferationtreaty/95-npt-8.html
+http://www.nuclearfiles.org/hinonproliferationtreaty/99-npt-chairman-rev1.html
+http://www.nuclearfiles.org/menu/educators/study-guides/history_decision-to-drop-bomb.htm
+http://www.nuclearfiles.org/menu/library/treaties/physical-protection-material/trty_conv-protection-nuclear-material_1987-02-08.htm
+http://www.nuclearpolicy.org/NewsArticle.cfm?NewsID=2255
+http://www.nuclearsafety.gc.ca/eng/regulatory_information/licence_fees/CRAG_minutes_20041209.cfm
+http://www.nucleartourist.com/basics/why.htm
+http://www.nudist-resorts.org/talk/topic.asp?TOPIC_ID=746
+http://www.nufc.com/
+http://www.nufc.com/html/geninfo.html
+http://www.nufc.premiumtv.co.uk/page/NewsDetail/0,,10278~569393,00.html
+http://www.nuff.ox.ac.uk/general/prospectus/vignettes.aspx
+http://www.nuffic.nl/ciran/ikdm/7-2/enwereji.html
+http://www.nuffieldbioethics.org/
+http://www.nuggetnews.com/front01.shtml
+http://www.nuggetribcookoff.com/
+http://www.nuggetsoftruth.com/pinna.html
+http://www.nulab.com.au/support/easy_reference.htm
+http://www.nuloen.com/eqsl.html
+http://www.num.org.uk/?p=news
+http://www.numa.net/articles/search_for_the_hunley.html
+http://www.numa.net/expeditions/cumberland_and_florida_1.html
+http://www.numag.neu.edu/0009/passages.html
+http://www.numarkassoc.com/res/NGartEng.htm
+http://www.number-10.gov.uk/output/Page132.asp
+http://www.number-10.gov.uk/output/Page1446.asp
+http://www.number-10.gov.uk/output/Page1521.asp
+http://www.number-10.gov.uk/output/Page1598.asp
+http://www.number-10.gov.uk/output/Page1606.asp
+http://www.number-10.gov.uk/output/Page1666.asp
+http://www.number-10.gov.uk/output/Page1667.asp
+http://www.number-10.gov.uk/output/Page1668.asp
+http://www.number-10.gov.uk/output/Page1715.asp
+http://www.number-10.gov.uk/output/Page3088.asp
+http://www.number-10.gov.uk/output/Page3282.asp
+http://www.number-10.gov.uk/output/Page3347.asp
+http://www.number-10.gov.uk/output/Page4426.asp
+http://www.number-10.gov.uk/output/Page5185.asp
+http://www.number-10.gov.uk/output/Page6333.asp
+http://www.number-10.gov.uk/output/Page7562.asp
+http://www.number-10.gov.uk/output/page139.asp
+http://www.number-10.gov.uk/output/page1869.asp
+http://www.number-10.gov.uk/output/page2489.asp
+http://www.number-10.gov.uk/output/page3496.asp
+http://www.number-10.gov.uk/output/page3554.asp
+http://www.number-10.gov.uk/output/page821.asp
+http://www.number-10.gov.uk/su/voluntary/report/04.htm
+http://www.number-10.gov.uk/su/winning/active/02.htm
+http://www.number10.gov.uk/output/page6333.asp
+http://www.numberwatch.co.uk/2001%20January.htm
+http://www.numberwatch.co.uk/2004%20February.htm
+http://www.numberwatch.co.uk/2005%20May.htm
+http://www.numeraire.com/invest.htm
+http://www.numismedia.com/fmv/grades.shtml
+http://www.numsa.org.za/article.php?cat=&id=511
+http://www.numsa.org.za/newsitem.php?id=46
+http://www.nunavut.com/nunavut99/english/change.html
+http://www.nupge.ca/news_2002/news_ja02/n28ja02a.htm
+http://www.nurse-prescriber.co.uk/Articles/Evidence-based_Px.htm
+http://www.nurse-prescriber.co.uk/news/News2005/News142(19_04_05).htm
+http://www.nursenc.org/recruitmentandretention/youth/resourcescampaign.htm
+http://www.nurseryretailer.com/Article_Archives/article_detail.asp?Key=188
+http://www.nurserysite.com/clubs/peninsular/articles/feb2002.html
+http://www.nursetom.com/Book%20Reviews.htm
+http://www.nurseweek.com/features/98-5/manager.html
+http://www.nurseweek.com/news/features/01-11/military.html
+http://www.nursing-homes.biz/nursing-home-details/Greenville-ME-Charles-A-Dean-Memorial-Hospital/
+http://www.nursing-homes.biz/nursing-home-details/Lovelock-NV-Pershing-General-Hospital-Skilled-Nursing-Facility/
+http://www.nursing-homes.biz/nursing-home-details/Murray-KY-Murray-Calloway-County-Hospital/
+http://www.nursing-homes.biz/nursing-home-details/Reno-NV-Physicians-Hospital-for-Extended-Care/
+http://www.nursing-homes.biz/nursing-home-details/Rock-Hill-SC-Healthsouth-Rehabilitation-Hospital-Skilled-Nursing-Facility/
+http://www.nursing-standard.co.uk/students/experiences.asp
+http://www.nursing.umich.edu/gateway/alumni_giving/legacy.html
+http://www.nursingadvocacy.org/media/tv/er.html
+http://www.nursingcenter.com/prodev/ce_article.asp?tid=582125
+http://www.nursinghumor.com/geriatrics.senior.citizen.humor.htm
+http://www.nursingsociety.org/chapters/clr_200b.html
+http://www.nursingworld.org/needlestick/nshome.htm
+http://www.nursingworld.org/ojin/ethicol/ethics_7.htm
+http://www.nursingworld.org/ojin/topic16/tpc16_4.htm
+http://www.nursingworld.org/ojin/topic25/tpc25_3.htm
+http://www.nursingworld.org/tan/99novdec/inbrief.htm
+http://www.nus.edu.sg/nex/instructors.htm
+http://www.nuskinenterprises.com/livebetterlonger/health/product.shtml
+http://www.nusonline.co.uk/
+http://www.nuspel.org/hogstime.html
+http://www.nutleysons.com/nsw1.html
+http://www.nutraingredients-usa.com/news/news-NG.asp?n=54083-olympics-may-fuel
+http://www.nutraingredients.com/news/listnews.asp?m=5&y=2002
+http://www.nutraingredients.com/news/news-NG.asp?n=36800-meps-pass-strict
+http://www.nutraingredients.com/news/news-NG.asp?n=37676-green-tea-treatment
+http://www.nutraingredients.com/news/news-ng.asp?id=59818-numico-s-q
+http://www.nutraingredients.com/news/news-ng.asp?n=57472-risk-model-on
+http://www.nutramed.com/zeno/guidelines.htm
+http://www.nutribase.com/assess.shtml
+http://www.nutribase.com/testimonials.shtml
+http://www.nutribase.com/whybuy.shtml
+http://www.nutrition.org/cgi/content/full/130/7/1734
+http://www.nutrition.org/cgi/content/full/131/3/1054S
+http://www.nutrition.org/cgi/content/full/135/2/273
+http://www.nutrition4health.org/NOHAnews/NNS04SurvivingModernTechnology.htm
+http://www.nutritionalsupplements.com/training40.html
+http://www.nutritionandhealthshow.co.uk/nhconf/proceedings/
+http://www.nutritionaustralia.org/About_Us/Offices/qld.asp
+http://www.nutritiondata.com/dieting-weight-loss.html
+http://www.nutritiondynamics.com/prayer/prayer.htm
+http://www.nutritionlifestyles.com/bpgarlic.htm
+http://www.nutters.org/docs/wildstrom
+http://www.nutzso.com/MTblog/archives/2003_01.html
+http://www.nuveen.com/viewdoc.aspx?id=25433
+http://www.nuveen.com/viewdoc.aspx?id=610
+http://www.nv.blm.gov/elko/rubyhotshots.htm
+http://www.nvbc.net/testimonies.htm
+http://www.nvca.org/grady_tes.html
+http://www.nvca.org/nvca11_22_02.html
+http://www.nvcc.edu/home/vpoulakis/Translation/dantetr1.htm
+http://www.nvhotels.com/Content/Trade/exhibitorlist.html
+http://www.nvisionit.co.za/Default.aspx?tabid=96&ItemID=82
+http://www.nvnews.net/vbulletin/archive/index.php/t-12279.html
+http://www.nvnews.net/vbulletin/showthread.php?t=12279
+http://www.nvpc.org.sg/tsunami/
+http://www.nvt.com/whatsnew.html
+http://www.nvvam.org/women/cow.html
+http://www.nwa.com/services/shipping/cargo/luggage/faq.shtml
+http://www.nwac.noaa.gov/products/SABSEA
+http://www.nwalbion.u-net.com/neville/content.html
+http://www.nwara.com/security/
+http://www.nwarmy.org/news/articles.asp?StoryID=649
+http://www.nwave.com/hauntedcastle/prodnotes/
+http://www.nwbaby.com/archive/2004/sep2004/l4.html
+http://www.nwbaby.com/l6.html
+http://www.nwbl.com/chill/tickets.html
+http://www.nwc.com/1011/1011r1side2.html
+http://www.nwc.com/showitem.jhtml?docid=1410centerfold
+http://www.nwc.com/showitem.jhtml?docid=1513letters
+http://www.nwcc.info/
+http://www.nwchurch-of-god.org.uk/
+http://www.nwcurrent.com/commentary/1638401.html
+http://www.nwdc.navy.mil/Library/Documents/NDPs/ndp5/ndp50002.htm
+http://www.nwe.ufl.edu/~crinne/1102/2110/syll.html
+http://www.nwe.ufl.edu/~crinne/1102/2153/syll.html
+http://www.nwe.ufl.edu/~eotto/ENC_1101_1695.html
+http://www.nwf.org/internationalwildlife/1998/quagga.html
+http://www.nwf.org/nationalwildlife/article.cfm?articleId=958&issueId=69
+http://www.nwfoodalliance.co.uk/opportunities.php?event_id=9&news_start=&page_number=0
+http://www.nwfrontiers.com/booking_conditions_g.asp?page=36
+http://www.nwfusion.com/archive/1999/82568_12-06-1999.html
+http://www.nwfusion.com/columnists/2004/081604gearhead.html
+http://www.nwfusion.com/columnists/2005/013105tolly.html
+http://www.nwfusion.com/edge/news/
+http://www.nwfusion.com/gifts/2004/afterdetails.jsp?_tablename=aftergift_live&recordid='S1324941'
+http://www.nwfusion.com/net.worker/news/2002/1014netlead.html
+http://www.nwfusion.com/news/2000/0224cia.html
+http://www.nwfusion.com/news/2002/0527supercomm.html
+http://www.nwfusion.com/news/2004/0405winxp.html
+http://www.nwfusion.com/news/2004/0405winxp.html?nl
+http://www.nwfusion.com/news/2004/0716dellrolli.html
+http://www.nwfusion.com/news/2004/112204ecbriefs.html
+http://www.nwfusion.com/newsletters/vortex/2005/0114vortex1.html
+http://www.nwfusion.com/research/2004/0322spam.html
+http://www.nwh.org/displayContent.asp?categoryID=312
+http://www.nwhp.org/whm/all-honorees.html
+http://www.nwicatholic.com/Recipie%20Pages/Christmas.htm
+http://www.nwitimes.com/articles/2004/12/09/news/lake_county/4b80966c3dce0be186256eb10009455c.txt
+http://www.nwjc.org.au/subir.html
+http://www.nwk9.com/foundation_program.htm
+http://www.nwkansas.com/home/evan/humor/masondixon.html
+http://www.nwlc-clfn.ca/achievements.aspx?loc=ach
+http://www.nwlg.org/pages/ict/ict15_biology.htm
+http://www.nwlh.nhs.uk/research/application/ethics_committees_bh/brent/outline.htm
+http://www.nwlink.com/~donclark/leader/leadob.html
+http://www.nwlink.com/~donclark/leader/leadtem2.html
+http://www.nwls.org/Newsletter/PVN/Spring2005.htm
+http://www.nwlwrestling.com/profiles/rambo/chefjohnarch-16.html
+http://www.nwmechanical.com/faq/
+http://www.nwmindia.org/job_skills/media-ethics/journalistic_rigour.htm
+http://www.nwmo.ca/default.aspx?DN=896,177,20,1,Documents
+http://www.nwra.gov.uk/whatsnew/pressreleases.php?archive_start=0&full_article=yes&release_id=110
+http://www.nwrel.org/msec/nwteacher/spring2001/happy.html
+http://www.nwrel.org/msec/nwteacher/winter2001/teachers.html
+http://www.nwrel.org/nwedu/fall_98/article3.html
+http://www.nwrel.org/scpd/catalog/ModelDetails.asp?ModelID=2
+http://www.nwrel.org/scpd/sirs/2/topsyn2.html
+http://www.nwrls.lib.fl.us/ready_ref.htm
+http://www.nws.noaa.gov/oso/oso1/oso12/d31/d-31prt4.htm
+http://www.nws9.com.au/bts.html
+http://www.nwsy.navy.mil/pao/reportpage1.html
+http://www.nwtel.ca/about/corpProfile/history.jsp
+http://www.nwtrcc.org/taxday2005.htm
+http://www.nwtta.nt.ca/prospective_teachers.html
+http://www.ny.frb.org/aboutthefed/fedpoint/fed48.html
+http://www.ny.frb.org/education/fx/foreign.html
+http://www.ny.frb.org/newsevents/speeches/2004/rut040322.html
+http://www.ny.frb.org/newsevents/speeches/2005/gei050329.html
+http://www.ny.frb.org/research/conference/2004/antitrust_activity.html
+http://www.ny3rs.org/cpurpose.html
+http://www.nyaa.edu/
+http://www.nyapplecountry.com/edorchard.htm
+http://www.nyas.org/ebriefreps/main.asp?intSubsectionID=1353
+http://www.nybiodiversity.org/summaries/protoctista/slime/species.html
+http://www.nybioscape.org/bioapproach/humdim.htm
+http://www.nybooks.com/articles/13765
+http://www.nybooks.com/articles/14263
+http://www.nybooks.com/articles/14380
+http://www.nybooks.com/articles/14529
+http://www.nybooks.com/articles/15180
+http://www.nybooks.com/articles/16057
+http://www.nybooks.com/articles/16953
+http://www.nybooks.com/articles/17050
+http://www.nybooks.com/articles/17489
+http://www.nybooks.com/articles/17647
+http://www.nybooks.com/articles/17690
+http://www.nybooks.com/articles/17788
+http://www.nybooks.com/articles/17852
+http://www.nybooks.com/articles/17965
+http://www.nybooks.com/articles/17982
+http://www.nybooks.com/articles/17994
+http://www.nybooks.com/articles/18034
+http://www.nybooks.com/articles/18050
+http://www.nybooks.com/articles/18075
+http://www.nybooks.com/articles/2252
+http://www.nybooks.com/articles/474
+http://www.nyc-architecture.com/ARCH/ARCH-RichardMUpjohn.htm
+http://www.nyc-architecture.com/LM/LM049-EMPIREBUILDING.htm
+http://www.nyc-architecture.com/MID/MID-HellsKitchen.htm
+http://www.nyc.gov/html/dcas/html/civilservice.html
+http://www.nyc.gov/html/dcp/html/erw/
+http://www.nyc.gov/html/dot/html/masstran/airquality.html
+http://www.nyc.gov/html/dot/html/motorist/scrintro.html
+http://www.nyc.gov/html/hpd/html/for-owners/hep-specialized.html
+http://www.nyc.gov/html/hpd/html/for-tenants/section-8-tenant.html
+http://www.nyc.gov/html/law/html/lawjobsdetail.html
+http://www.nyc.gov/html/nyctv/html/order/show_city_classics.shtml
+http://www.nyc.gov/html/sbs/home.html
+http://www.nyc.gov/html/sbs/html/lbe.html
+http://www.nyc.gov/html/sbs/html/mwbe.html
+http://www.nyc.gov/html/selltonyc/html/new_vendors.html
+http://www.nycago.org/html/grievance.html
+http://www.nycaledonian.org/events.php
+http://www.nycbirdreport.com/general/reading.html
+http://www.nyccfb.info/press/1999-11-04.htm
+http://www.nyccfb.info/press/2003-12-03.htm
+http://www.nyceflorence.com/nyceflorence-privacy.html
+http://www.nycerome.com/nycerome-privacy.html
+http://www.nycgovparks.org/sub_newsroom/media_advisories/press_releases.php?id=18518
+http://www.nycjpg.com/about/themes.proposed.html
+http://www.nycmccap.org/guide/chap05a2.html
+http://www.nycourts.gov/courts/4jd/motionterms.shtml
+http://www.nycsubway.org/articles/earlyrapidtransitinbrooklyn.html
+http://www.nycsubway.org/irt/subwayinoperation.html
+http://www.nycsubway.org/irt/westside/
+http://www.nycwasteless.org/bus/casestudies/cs-distribpkg.html
+http://www.nycwatershed.org/news_press_nimham_nyt.html
+http://www.nydailynews.com/05-11-2003/news/local/v-pfriendly/story/82547p-75569c.html
+http://www.nydailynews.com/boroughs/story/256547p-219706c.html
+http://www.nydailynews.com/front/
+http://www.nydailynews.com/front/story/180723p-156921c.html
+http://www.nydailynews.com/front/story/270072p-231292c.html
+http://www.nydailynews.com/front/story/312212p-267072c.html
+http://www.nydailynews.com/front/story/80325p-73744c.html
+http://www.nydailynews.com/front/v-pfriendly/story/180723p-156921c.html
+http://www.nydailynews.com/news/gossip/story/319830p-273490c.html
+http://www.nydailynews.com/news/ideas_opinions/story/246784p-211393c.html
+http://www.nyguild.org/SPNews/010424SP.htm
+http://www.nyhistory.com/central/oneida.htm
+http://www.nyigf.com/05/content/tips.htm
+http://www.nyla.org/index.php?page_id=819&news_id=82
+http://www.nylawyer.com/boards/showflat.pl?Cat=&Board=NYLawyer_Board&Number=6562&page=3&view=collapsed&sb=5&o=0&part=
+http://www.nylawyer.com/boards/showflat.pl?Cat=&Board=NYLawyer_Board&Number=6562&page=3&view=collapsed&sb=5&o=0&part=all
+http://www.nylim.com/mainstayfunds/0,2058,20_1006338,00.html
+http://www.nyls.org/bjweb.htm
+http://www.nymarriottmarquis.com/privacy_policy.asp
+http://www.nymc.edu/fhp/centers/syncope/Fainting%20and%20Related%20Phenomena.htm
+http://www.nynewsday.com/entertainment/nyc-xrests1130,0,7312477.story
+http://www.nynewsday.com/impulse/barsandclubs/nyc-xrests1130,0,5552431.story
+http://www.nynewsday.com/news/local/manhattan/wtc/
+http://www.nynewsday.com/news/ny-bzwtc123581047dec12,0,7527185.story?coll=nyc-groundzero-headlines
+http://www.nynice.org/main.htm
+http://www.nynjtc.org/trails/longpath/
+http://www.nyobserver.com/pages/frontpage7.asp
+http://www.nyobserver.com/pages/observer.asp
+http://www.nyoi.ie/index.php?page=auditions&section=venues
+http://www.nypa.gov/ar03/pages/chair.htm
+http://www.nypl.org/branch/features/index2.cfm?PFID=250
+http://www.nypl.org/research/chss/spe/art/photo/pchist/pchist2.html
+http://www.nyplanning.org/variance_standards.html
+http://www.nypress.com/16/31/news&columns/signorile.cfm
+http://www.nypress.com/17/30/news&columns/ChristopherLord.cfm
+http://www.nysafp.org/November%202004%20Newsletter.htm
+http://www.nysais.org/page.cfm?p=78
+http://www.nyserda.org/programs/Green_Buildings/default.asp
+http://www.nysfair.org/state_fair/2005/html/every_day.shtml
+http://www.nysgis.state.ny.us/costanal.htm
+http://www.nysgis.state.ny.us/gateway/mg/glossary.htm
+http://www.nysgis.state.ny.us/reports/lulc/lulc5_04.htm
+http://www.nysia.org/events/calendar.cfm?year=2004&month=3
+http://www.nysl.nysed.gov/libdev/libs/pltypes.htm
+http://www.nyspirit.com/issue113/article2.html
+http://www.nyspsych.org/public/components/societytools/admin/viewNewnews.asp?ArticleID=2773&newsjob=ArticleID
+http://www.nyspsych.org/public/components/societytools/admin/viewNewnews.asp?ArticleID=3190&newsjob=ArticleID
+http://www.nysscpa.org/cpajournal/2004/604/essentials/p36.htm
+http://www.nysscpa.org/cpajournal/old/08135908.htm
+http://www.nysscpa.org/trustedprof/105/tp5.htm
+http://www.nystrs.org/main/library/divorce.html
+http://www.nysun.com/article/11727
+http://www.nysun.com/article/14429
+http://www.nysun.com/article/14604
+http://www.nysun.com/article/15291
+http://www.nysun.com/article/15628
+http://www.nysun.com/article/4530
+http://www.nysun.com/article/7163
+http://www.nysun.com/article/8199
+http://www.nysun.com/article/9508
+http://www.nysut.org/newyorkteacher/2000-2001/
+http://www.nysut.org/ra99/media/990422civility.html
+http://www.nyt.co.uk/robbie.glen.htm
+http://www.nytheatre.com/nytheatre/archweb/arch2003_e.htm
+http://www.nytimes.com/2004/10/07/technology/circuits/07cons.html
+http://www.nytimes.com/2005/01/16/international/europe/16estonia.html
+http://www.nytimes.com/2005/01/25/international/25cnd-trad.html
+http://www.nytimes.com/2005/02/01/science/earth/01conv.html
+http://www.nytimes.com/2005/06/10/sports/othersports/10olympic.html?fta=y&pagewanted=print
+http://www.nytimes.com/2005/06/13/business/13cardio.html?pagewanted=print
+http://www.nytimes.com/2005/06/15/nyregion/15heat.html
+http://www.nytimes.com/2005/06/15/nyregion/15heat.html?pagewanted=print
+http://www.nytimes.com/2005/06/16/garden/16kids.html?pagewanted=all
+http://www.nytimes.com/2005/06/18/international/europe/18europe.html
+http://www.nytimes.com/2005/06/18/international/europe/18europe.html?pagewanted=all
+http://www.nytimes.com/2005/06/18/national/18quake.html?8hpib
+http://www.nytimes.com/2005/06/19/magazine/19ADVISER.html
+http://www.nytimes.com/2005/06/19/nyregion/thecity/19long.html
+http://www.nytimes.com/2005/06/19/opinion/19brooks.html?pagewanted=all
+http://www.nytimes.com/2005/06/21/nyregion/21house.html
+http://www.nytimes.com/2005/06/21/politics/21cnd-bolton.html
+http://www.nytimes.com/2005/06/21/politics/21cnd-bolton.html?8bl
+http://www.nytimes.com/2005/06/22/automobiles/22auto.html?pagewanted=all
+http://www.nytimes.com/2005/06/22/automobiles/22auto.html?pagewanted=print
+http://www.nytimes.com/2005/06/23/nyregion/23crusade.html?pagewanted=all
+http://www.nytimes.com/2005/06/24/politics/24military.html
+http://www.nytimes.com/2005/06/25/science/25autism.html
+http://www.nytimes.com/2005/06/26/fashion/sundaystyles/26STUY.html?pagewanted=1&hp
+http://www.nytimes.com/2005/06/26/international/asia/26kazakhstan.html
+http://www.nytimes.com/2005/06/26/opinion/l26social.html?n=Top%2FOpinion%2FEditorials%20and%20Op-Ed%2FLetters
+http://www.nytimes.com/2005/06/27/sports/baseball/27mets.html
+http://www.nytimes.com/2005/07/02/politics/politicsspecial1/02bush.html
+http://www.nytimes.com/cfr/international/20050501faessay84309_grant.html?pagewanted=all
+http://www.nytimes.com/cfr/international/20050501faessay84310_arana.html?pagewanted=all
+http://www.nytimes.com/marketing/jobmarket/employercentral/help.html
+http://www.nytimes.com/nytstore/books/reference/NSGESSK.html
+http://www.nytimes.com/ref/membercenter/help/linkingfaq.html
+http://www.nyu.edu/classes/keefer/joe/boyd1.html
+http://www.nyu.edu/gallatin/current/ba/life-club.html
+http://www.nyu.edu/globalbeat/nato/johnson070898.html
+http://www.nyu.edu/hr/adjunct/uaw.html
+http://www.nyu.edu/hr/worklife/wldess05.html
+http://www.nyu.edu/projects/sciabarra/essays/wtcremember03.htm
+http://www.nyudh.org/nyudh/about.jsp
+http://www.nyym.org/qr/nyympa/wau/wapl09sep04.html
+http://www.nz-immigration.co.nz/new-zealand/clothing.html
+http://www.nzarchaeology.org/
+http://www.nzb.co.nz/news.cfm?content_id=387
+http://www.nzbooks.com/nzbooks/product.asp?sku=witiihimaera1877178160
+http://www.nzbwsc.co.nz/
+http://www.nzc.co.nz/m4m.html
+http://www.nzedge.com/heroes/park.html
+http://www.nzelectricity.co.nz/H4msc/030919.htm
+http://www.nzepc.auckland.ac.nz/seeingvoices/smither.asp
+http://www.nzfsa.govt.nz/consumers/food-safety-topics/chemicals-in-food/hemp/
+http://www.nzgirl.co.nz/articles/3879
+http://www.nzgovtdirectory.com/directory/section1/parties.htm
+http://www.nzherald.co.nz/index.cfm?ObjectID=3609330
+http://www.nzherald.co.nz/index.cfm?c_id=18&ObjectID=10330777
+http://www.nzherald.co.nz/index.cfm?c_id=3&ObjectID=10008575
+http://www.nzherald.co.nz/index.cfm?c_id=3&ObjectID=8500945
+http://www.nzherald.co.nz/index.cfm?l_id=146&ObjectID=10123980
+http://www.nzherald.co.nz/index.cfm?l_id=154&ObjectID=10330777
+http://www.nzherald.co.nz/storydisplay.cfm?storyID=3556647&thesection=technology&thesubsection=general&thesecondsubsection=
+http://www.nzhistory.net.nz/Gallery/parlt-hist/film.html
+http://www.nzhistory.net.nz/Gallery/police/erebus.html
+http://www.nzhorses.co.nz/Marketplace/Equipment.cfm
+http://www.nzhorses.co.nz/Marketplace/Equipment.cfm?CFID=3063087&CFTOKEN=24702460
+http://www.nzhorses.co.nz/Marketplace/Equipment.cfm?CFID=3168525&CFTOKEN=39464376
+http://www.nzmusic.com/post.cfm?i=219844
+http://www.nzmusic.org.nz/pag.cfm?i=812
+http://www.nzmusician.co.nz/index.php/ps_pagename/articledetail/pi_articleid/50
+http://www.nzonair.govt.nz/television_detail.php?pid=317&sid=300&st=r&title=&category=&producer=&broadcaster=&keywords=&searchset=200
+http://www.nzqa.govt.nz/framework/explore/domain.do?frameworkId=1125
+http://www.nzroses.org.nz/archive.htm
+http://www.nzsoccer.org.nz/thearms/Main.htm
+http://www.nzsportsacademy.co.nz/domestic.htm
+http://www.nzsportsacademy.co.nz/english/domestic.htm
+http://www.nzsportsacademy.co.nz/english/our_team.htm
+http://www.nzsta.org.nz/wContent.asp?PageID=100001424&LevelOne=100001424
+http://www.o4r.org/pf_v1n4/TextbookCase.htm
+http://www.o6t.com/index.cfm?articleid=338
+http://www.o6t.com/index.cfm?articleid=338&articleaction=get_email
+http://www.oa.mo.gov/pers/ClassSpecs/6047.htm
+http://www.oacusa.org/warstories.htm
+http://www.oafccd.com/factshee/fact69.htm
+http://www.oag-bvg.gc.ca/domino/other.nsf/html/01aa02_e.html
+http://www.oag-bvg.gc.ca/domino/reports.nsf/html/0032ce.html
+http://www.oag-bvg.gc.ca/domino/reports.nsf/html/0110ce.html
+http://www.oag-bvg.gc.ca/domino/reports.nsf/html/0205ce.html
+http://www.oag-bvg.gc.ca/domino/reports.nsf/html/0206ce.html
+http://www.oag.govt.nz/HomePageFolders/Publications/Publications.htm
+http://www.oag.govt.nz/HomePageFolders/Publications/audits.htm
+http://www.oag.state.md.us/Opinions/News/98-4.htm
+http://www.oag.state.ny.us/crime/neighborhood_watch/anti_crime_strategies.html
+http://www.oag.state.ny.us/press/2002/aug/aug29a_02.html
+http://www.oag.state.ny.us/press/2003/feb/feb10a_03.html
+http://www.oag.state.tx.us/newspubs/releases/2003/20030205dunnfacts.shtml
+http://www.oag.state.tx.us/newspubs/weeklyag/2005/0305all.html
+http://www.oag.state.tx.us/oagnews/release.php?id=134
+http://www.oag.state.tx.us/oagnews/release.php?id=502
+http://www.oag.state.tx.us/opinopen/og_faqs.shtml
+http://www.oah.org/
+http://www.oah.org/pubs/magazine/family/king.html
+http://www.oah.org/pubs/magazine/standards/nhs1.html
+http://www.oaim.org/marriage.html
+http://www.oakbox.com/article.cgi?p1048469389
+http://www.oakknoll.com/detail.php?d_booknr=33966
+http://www.oaklandairport.com/seir/notice_availability.shtml
+http://www.oaklandcc.edu/library/subAZ_psychology.htm
+http://www.oaklandcc.edu/library/subAZ_quick.htm
+http://www.oaklandlibrary.org/AAMLO/
+http://www.oaklands.co.nz/bambermore.html
+http://www.oaklandtribune.com/cda/article/print/0,1674,82~1726~677650,00.html
+http://www.oakparkrealtors.org/ComPro/Oak_Park/oak_park.html
+http://www.oakplus.com/html/5706.html
+http://www.oakplus.com/html/8417.html
+http://www.oakridger.com/progress/
+http://www.oakville.com/mississauga.asp
+http://www.oalj.dol.gov/Public/WBLOWER/decsn/97sta18a.htm
+http://www.oalj.dol.gov/cite.htm
+http://www.oalj.dol.gov/eduction.htm
+http://www.oalj.dol.gov/printdoc.htm?URL=%2Fcite.htm
+http://www.oalj.dol.gov/printdoc.htm?URL=%2Fpublic%2Fwblower%2Fdecsn%2F86era24e.htm
+http://www.oalj.dol.gov/printdoc.htm?URL=%2Fpublic%2Fwblower%2Fdecsn%2F94sta24a.htm
+http://www.oamk.fi/english/idps/bit/
+http://www.oamk.fi/english/idps/technology/
+http://www.oamk.fi/guide/2005/?page=selection
+http://www.oanda.com/products/fxnews/html/fxnews.shtml
+http://www.oandp.com/edge/issues/articles/2003-05_04.asp
+http://www.oandp.com/edge/issues/articles/2004-10_12.asp
+http://www.oandp.org/jpo/library/1998_02_042.asp
+http://www.oas.org/speeches/speech.asp?sCodigo=02-0398
+http://www.oas.org/usde/publications/Unit/oea02s/ch04.htm
+http://www.oas.org/usde/publications/Unit/oea04e/ch11.htm
+http://www.oas.org/usde/publications/Unit/oea54e/ch13.htm
+http://www.oasismag.com/node/view/1149
+http://www.oaxacaoaxaca.com/artisans.htm
+http://www.obanfarmpark.co.uk/holidays.html
+http://www.obdev.at/products/littlesnitch/docu/docu.html
+http://www.obeleoil.com/oilshock2.htm
+http://www.oberlin.edu/Geopage/projects/204projects/kolker/kolker.html
+http://www.oberlin.edu/allenart/exhibitions/woven/wp_05role.html
+http://www.oberlin.edu/alummag/oamcurrent/oam_winter2002/feat_looking3.htm
+http://www.oberlin.edu/coladm/onlineapplication/
+http://www.oberlin.edu/external/EOG/DAddarioHonors/DAddarioHonors-intro.htm
+http://www.oberlin.edu/newserv/02jan/blackhistory.html
+http://www.obfs.org/Jobs_Meet_Archv/announcements.html
+http://www.obgyn.net/avtranscripts/aium2000_tritsch.htm
+http://www.obgyn.net/displayarticle.asp?page=/firstcontroversies/prague1999sinha-arulkumaran
+http://www.obgyn.net/displayarticle.asp?page=/firstcontroversies/prague1999tucker
+http://www.obgyn.net/displayppt.asp?page=/english/pubs/features/presentations/shoham2/shoham2-ss
+http://www.obgyn.net/english/pubs/features/fibroids_dah.htm
+http://www.obgyn.net/women/features/Wiseman_chat_062398.htm
+http://www.obhe.ac.uk/products/reports/transcripts/discussion_february.html
+http://www.objectivismstore.com/pc-194-38-toc-live-2002-how-you-can-make-a-difference.aspx
+http://www.objectsbydesign.com/projects/python_example.html
+http://www.objectwatch.com/ata.htm
+http://www.oblivio.com/
+http://www.obmg.com/reelreports/index.asp?month=8
+http://www.observer.com/pages/frontpage5.asp
+http://www.observer.com/pages/frontpage5a.asp
+http://www.observer.com/pages/frontpage7.asp
+http://www.observer.com/pages/frontpage9.asp
+http://www.observer.com/pages/newyorkdiary.asp
+http://www.observer.com/pages/observer.asp
+http://www.observer.com/pages/world.asp
+http://www.observergroup.net/ob80back/stories.htm
+http://www.obsessionwithfood.com/
+http://www.obsi.ca/obsi/pages_english/invest_case06.php3
+http://www.obvious.fsnet.co.uk/tigers/tigers.htm
+http://www.obviously.com/recycle/guides/common.html
+http://www.obviously.com/recycle/guides/hard.html
+http://www.oc-j.com/july03/Ricketts4.htm
+http://www.oc-j.com/mar03/Ricketts_Interview_Part_3.htm
+http://www.oca.org/pages/ocaadmin/documents/holysynod/040203sexualmisconduct.html
+http://www.oca.org/pages/orth_chri/Q-and-A_OLD/Rules-and-Customs.html
+http://www.ocala.com/apps/pbcs.dll/article?AID=/20050629/NEWS/206290354/1003/news03
+http://www.ocala.com/apps/pbcs.dll/article?AID=/20050629/NEWS/206290354/1025
+http://www.ocallahan.com/fromjay/fall99.shtml
+http://www.ocastronomers.org/news.asp?action=print&article=135
+http://www.ocba.sa.gov.au/businessadvice/?friendly=printable
+http://www.occ.ac.uk/international_study.htm
+http://www.occ.treas.gov/99Rellst.htm
+http://www.occ.treas.gov/interp/aug99/intaug99.htm
+http://www.occ.treas.gov/jobs/info.htm
+http://www.occupationalhazards.com/articles/13555
+http://www.occupationalhazards.com/safety_zones/35/article.php?id=12868
+http://www.occupationalhazards.com/safety_zones/41/article.php?id=11806
+http://www.occupationalhazards.com/safety_zones/41/article.php?id=7113
+http://www.occupationalhazards.com/safety_zones/50/article.php?id=10468
+http://www.occupationalhazards.com/safety_zones/58/article.php?id=10467
+http://www.occupationwatch.org/analysis/archives/2005/05/blood_for_oil.html
+http://www.ocdcentre.com/pages/shwartz.htm
+http://www.ocdonline.com/articlephillipson1.htm
+http://www.ocdonline.com/articlephillipson2.htm
+http://www.ocean.com/Travel/Features/2001/09/
+http://www.ocean98.org/seahfiji.htm
+http://www.oceaniafootball.com/index.cgi?det=1&intArticleID=1475&sID=12
+http://www.oceanicresearch.org/crrainspt.html
+http://www.oceanmammalinst.org/w90.html
+http://www.oceannavigator.com/site/csrv/content.asp?id=1210
+http://www.oceans.gov.au/marine_industry_dev_strategy/page_006.jsp
+http://www.oceansatlas.org/cds_static/en/atlas_marine_activities_coastal_communities__en_1876_17511.html
+http://www.oceanstar.com/patti/crit/960602.htm
+http://www.oceanwildlife.com/stories/3kings1.htm
+http://www.oceanwings.co.nz/albatross/ocean_save/
+http://www.ocf.berkeley.edu/~sjlee/cometoberkeley.html
+http://www.ocf.berkeley.edu/~wrader/slang/p.html
+http://www.ocfoundation.org/ocf_0030.htm
+http://www.ocgs.org/society_foundation.asp
+http://www.ocipep.gc.ca/info_pro/self_help_ad/general/be_prep_e.asp
+http://www.ociweb.com/cnb/CORBANewsBrief-200301.html
+http://www.ocjobsite.com/job-articles/hire-yourself.asp
+http://www.oclc.org/middleeast/en/support/documentation/unionlist/using/userguide/appb/b.htm
+http://www.oclc.org/middleeast/en/support/documentation/worldcat/cataloging/userguide/appa.htm
+http://www.ocma.net/?page=join_events
+http://www.ocnus.net/artman/publish/article_16260.shtml
+http://www.ocnus.net/cgi-bin/exec/view.cgi?archive=60&num=15628
+http://www.oconeecounty.net/Government/Planning/
+http://www.ocri.ca/email_broadcasts/021405PartConference.html
+http://www.ocrid.org/events.html
+http://www.ocsa.on.ca/feedback/Hansard_2001/body_hansard_20010621f.html
+http://www.octobergallery.com/paintmagazine/pages/for_staying-motivated.html
+http://www.ocua.ca/node/view/16
+http://www.ocua.ca/title/1993+Bylaws
+http://www.ocv.org.uk/weasel.php
+http://www.ocvhs.com/publications/papersarticles/iklecture01.html
+http://www.ocweb.org/index.php/pre_nuptial/article/the_prenuptial_agreement_a_husbands_assumption_of_obligation/
+http://www.odac-info.org/PeakOilUKConferenceProceedings.htm
+http://www.odan.org/tw_opposition_to_canonization.htm
+http://www.odcmp.com/Competitions.htm
+http://www.odetocode.com/articles/323.aspx
+http://www.odi.org.uk/esau/publications/working_papers/esau_wp6_summary.html
+http://www.odi.org.uk/speeches/edc_2010/meeting_report_19november.html
+http://www.odi.org.uk/speeches/un2004/third_meeting_13_May/meeting3_print_friendly.html
+http://www.odiousdebts.org/odiousdebts/index.cfm?DSP=odo_news&NewsID=2119
+http://www.odod.state.oh.us/EDD/Loans_Grants.htm
+http://www.odod.state.oh.us/EDD/Tax_Credit.htm
+http://www.odod.state.oh.us/tech/titc/
+http://www.odot.state.or.us/techserv/bikewalk/planimag/importbw.htm
+http://www.odot.state.or.us/techserv/bikewalk/planimag/laws.htm
+http://www.odpm.gov.uk/pns/DisplayPN.cgi?pn_id=2003_0176
+http://www.odpm.gov.uk/stellent/groups/odpm_about/documents/page/odpm_about_022696-05.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_about/documents/page/odpm_about_028831.hcsp?s=1
+http://www.odpm.gov.uk/stellent/groups/odpm_about/documents/page/odpm_about_028832.hcsp?s=1
+http://www.odpm.gov.uk/stellent/groups/odpm_about/documents/page/odpm_about_029259-05.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_about/documents/page/odpm_about_031212.hcsp?s=1
+http://www.odpm.gov.uk/stellent/groups/odpm_about/documents/page/odpm_about_032072.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_about/documents/page/odpm_about_038271.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_communities/documents/page/odpm_comm_023301-06.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_fire/documents/page/odpm_fire_033558-03.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_homelessness/documents/page/odpm_home_029093-09.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_housing/documents/page/odpm_house_028080-04.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_housing/documents/page/odpm_house_033436-04.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_housing/documents/page/odpm_house_602542-02.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_housing/documents/page/odpm_house_609032-04.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_housing/documents/page/odpm_house_609039.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_localgov/documents/page/odpm_locgov_605087-16.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_localgov/documents/page/odpm_locgov_605189-02.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_023045.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_033609-03.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_033609-06.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_033609-30.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_033609-31.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_605856.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_605858.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_605908-01.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_606476-05.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_606896-06.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_607847-02.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_607847-06.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_607847-09.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_planning/documents/page/odpm_plan_609567.hcsp
+http://www.odpm.gov.uk/stellent/groups/odpm_regions/documents/page/odpm_regions_607900-16.hcsp
+http://www.odu.edu/ao/instadv/quest/AidsInChina.html
+http://www.odysseybks.com/textbooks.html
+http://www.oecd.org/dac
+http://www.oecd.org/dataoecd/62/63/1932624.htm
+http://www.oecd.org/department/0,2688,en_2649_22555297_1_1_1_1_1,00.html
+http://www.oecd.org/department/0,2688,en_2649_33721_1_1_1_1_1,00.html
+http://www.oecd.org/department/0,2688,en_2649_33757_1_1_1_1_1,00.html
+http://www.oecd.org/department/0,2688,en_2649_34105_1_1_1_1_1,00.html
+http://www.oecd.org/document/10/0,2340,en_2649_34831_32682826_1_1_1_1,00.html
+http://www.oecd.org/document/15/0,2340,en_2649_34489_2007183_1_1_1_1,00.html
+http://www.oecd.org/document/18/0,2340,en_2649_34173_4139666_1_1_1_1,00.html
+http://www.oecd.org/document/18/0,2340,en_2649_34221_4139666_1_1_1_1,00.html
+http://www.oecd.org/document/18/0,2340,fr_2649_34221_4139666_1_1_1_1,00.html
+http://www.oecd.org/document/21/0,2340,en_33873108_33873402_33633173_1_1_1_1,00.html
+http://www.oecd.org/document/21/0,2340,fr_33873108_33873402_33633173_1_1_1_1,00.html
+http://www.oecd.org/document/30/0,2340,en_2649_34385_2074974_1_1_1_1,00.html
+http://www.oecd.org/document/48/0,2340,en_2649_201185_34972080_1_1_1_1,00.html
+http://www.oecd.org/document/48/0,2340,en_2649_34111_34972080_1_1_1_1,00.html
+http://www.oecd.org/document/48/0,2340,en_2649_34487_34972080_1_1_1_1,00.html
+http://www.oecd.org/document/48/0,2340,en_2649_37443_33702064_1_1_1_37443,00.html
+http://www.oecd.org/document/48/0,2340,en_2649_37443_34972080_1_1_1_37443,00.html
+http://www.oecd.org/document/48/0,2340,en_2825_32066506_33702064_1_1_1_1,00.html
+http://www.oecd.org/document/48/0,2340,fr_2649_201185_34972080_1_1_1_1,00.html
+http://www.oecd.org/document/48/0,2340,fr_2649_34487_34972080_1_1_1_1,00.html
+http://www.oecd.org/document/5/0,2340,en_33873108_33873764_33701381_1_1_1_1,00.html
+http://www.oecd.org/document/52/0,2340,en_2649_34665_2488035_1_1_1_1,00.html
+http://www.oecd.org/document/56/0,2340,en_2649_201185_34992056_1_1_1_1,00.html
+http://www.oecd.org/document/56/0,2340,en_2649_34487_34992056_1_1_1_1,00.html
+http://www.oecd.org/document/56/0,2340,en_33873108_33873376_34992056_1_1_1_1,00.html
+http://www.oecd.org/document/56/0,2340,fr_2649_201185_34992056_1_1_1_1,00.html
+http://www.oecd.org/document/61/0,2340,en_2649_201185_31460861_1_1_1_1,00.html
+http://www.oecd.org/document/61/0,2340,fr_2649_201185_31460861_1_1_1_1,00.html
+http://www.oecd.org/document/62/0,2340,en_2649_201185_31935102_1_1_1_1,00.html
+http://www.oecd.org/documentprint/0,2744,en_2649_201185_34820463_1_1_1_1,00.html
+http://www.oecd.org/documentprint/0,2744,en_2649_201185_34972080_1_1_1_1,00.html
+http://www.oecd.org/home/
+http://www.oecd.org/statsportal/0,2639,en_2825_293564_1_1_1_1_1,00.html
+http://www.oecd.org/topic/0,2686,en_2649_37413_1_1_1_1_37413,00.html
+http://www.oecd.org/topic/0,2686,en_2649_37439_1_1_1_1_37439,00.html
+http://www.oecdobserver.org/news/categoryfront.php/id/82/Ireland.html
+http://www.oecdobserver.org/news/fullstory.php/aid/1081/Population_ageing:_Facing_the_challenge.html
+http://www.oecdobserver.org/news/fullstory.php/aid/1373/Was_it_worth_it__.html
+http://www.oecdobserver.org/news/fullstory.php/aid/1516/European_monetary_policy.html
+http://www.oecdobserver.org/news/fullstory.php/aid/236/Trucks:_the_road_to_ruin_or_increased_efficiency_.html
+http://www.oecdobserver.org/news/fullstory.php/aid/673/The_brain_drain:_Old_myths,_new_realities.html
+http://www.oecdobserver.org/news/fullstory.php/aid/713/Wanted:_Jubilee_2010.html
+http://www.oecdobserver.org/news/fullstory.php/aid/824/Retiring_later_makes_sense.html
+http://www.oecdobserver.org/news/fullstory.php/aid/872/The_learning_business.html
+http://www.oecdwash.org/
+http://www.oecdwash.org/PUBS/PERIOD/per-crs.htm
+http://www.oefre.unibe.ch/law/icl/sa00000_.html
+http://www.oeg-messtechnik.de/english/1d1.htm
+http://www.oehha.ca.gov/prop65/out_of_date/122200not.html
+http://www.oehs.wayne.edu/OEH&S/rtkprog.html
+http://www.oeronline.com/php/2001_may_june/main4.php
+http://www.ofb.biz/modules.php?name=News&file=article&sid=265
+http://www.ofb.biz/modules.php?name=News&file=article&sid=338
+http://www.ofbyandfor.org/weblink?from=60
+http://www.ofcn.org/cyber.serv/academy/ace/soc/cecsst/cecsst002.html
+http://www.ofcom.org.uk/licensing_numbering/numbers/numbers_administered/?a=87101
+http://www.ofcom.org.uk/licensing_numbering/tele_gen_auth/gcoe/?a=87101
+http://www.ofcom.org.uk/media/speeches/2005/01/eforum_cs
+http://www.ofcom.org.uk/media/speeches/2005/01/eforum_cs?view=Welsh
+http://www.ofcom.org.uk/static/archive/oftel/publications/consumer/bill0200.htm
+http://www.ofes.fusion.doe.gov/More_HTML/Artsimovich/Palumbo1980.html
+http://www.off-road.com/jeep/questions/2005_04/
+http://www.off-road.com/rick/class_feb.html
+http://www.office-ergo.com/12things2.htm
+http://www.office1000.com/discount/boards-display-dry-erase.html
+http://www.officefile.co.uk/Directory/vending-machine-sales-service.htm
+http://www.officefile.co.uk/Directory/window-cleaners.htm
+http://www.officefile.co.uk/Directory/window-installers.htm
+http://www.officefile.co.uk/Directory/window-manufacturers.htm
+http://www.official-documents.co.uk/document/deps/ofsted/170/10-independent.html
+http://www.officialforum.com/printthread.php?threadid=17507
+http://www.officialforum.com/showthread.php?threadid=17507&pagenumber=2
+http://www.officialforum.com/showthread.php?threadid=17630&pagenumber=2
+http://www.offoffoff.com/theater/2004/corporaterock.php
+http://www.offordcentre.com/rsd/hac/report/06-6.html
+http://www.offpistemag.com/themag/features/vol3/girlbomb.html
+http://www.offroad-motorsport.com/
+http://www.offroaders.com/info/tech-corner/reading/sand_dri.htm
+http://www.offshore-environment.com/news.html
+http://www.offshore-technology.com/projects/cook/
+http://www.offthetelly.co.uk/comedy/improv.htm
+http://www.offthetelly.co.uk/interviews/markwright.htm
+http://www.offthetelly.co.uk/interviews/nigelplaskitt.htm
+http://www.ofsted.gov.uk/publications/index.cfm?fuseaction=pubs.displayfile&id=2583&type=pdf
+http://www.ofsted.gov.uk/publications/index.cfm?fuseaction=pubs.displayfile&id=3546&type=doc
+http://www.ofsted.gov.uk/publications/index.cfm?fuseaction=pubs.displayfile&id=3591&type=pdf
+http://www.ofsted.gov.uk/publications/index.cfm?fuseaction=pubs.displayfile&id=3674&type=pdf
+http://www.ofswa.on.ca/thelog/july2001/page1.html
+http://www.oft-aft.org/In.the.news/CharterSchls/2002/3.30.02.htm
+http://www.oft.gov.uk/Business/Mergers+FTA/Advice/Clearances+and+referrals/Duralay.htm
+http://www.og.dti.gov.uk/consultations/consultation180902.htm
+http://www.og.dti.gov.uk/glossary.htm
+http://www.og.dti.gov.uk/upstream/infrastructure/frametxt.htm
+http://www.ogc.doc.gov/ogc/legreg/testimon/106s/reinsch0404.htm
+http://www.ogi.edu/graduate_edu/textbooks/spring.cfm
+http://www.ogilvy.com/viewpoint/view_ko.php?id=10214&iMagaId=7
+http://www.ogilvy.com/viewpoint/view_ko.php?id=41319&iMagaId=-1
+http://www.ogp.noaa.gov/mpe/clivar/pacific/fy99/wang99.htm
+http://www.ogra.org/lib/db2file.asp?fileid=8697
+http://www.oha.com/Client/OHA/OHA_LP4W_LND_WebStation.nsf/page/Government+Funding+Announcement+Performance+Agreement+Sign+Back
+http://www.oha.doe.gov/cases/eia/vee0028.htm
+http://www.ohchr.org/english/law/freedom.htm
+http://www.ohgosh-buttons.com/black1.html
+http://www.ohiaai.org/iaai_chapter_news.html
+http://www.ohio.com/mld/ohio/sports/columnists/marla_ridenour/
+http://www.ohioafp.org/wfmu/index.php?issue=64
+http://www.ohioarchaeology.org/simonelli_10_2003.html
+http://www.ohiodems.org/index.php?display=ArticleDetails&id=544330
+http://www.ohiodnr.com/dnap/location/smith_cemetery.html
+http://www.ohiodnr.com/forestry/Education/ohiotrees/maplered.htm
+http://www.ohiodnr.com/wildlife/Resources/wildohio/wildohiolink.htm
+http://www.ohiogreens.org/newsletters/011110.html
+http://www.ohiohistory.org/places/harding/
+http://www.ohiohistory.org/places/natlroad/
+http://www.ohiohistorycentral.org/ohc/history/ocoa/peo/truths.shtml
+http://www.ohionationalguard.com/jobs/Tech%20Jobs/05-001.asp
+http://www.ohionationalguard.com/jobs/Tech%20Jobs/05-002.asp
+http://www.ohionationalguard.com/jobs/Tech%20Jobs/05-003.asp
+http://www.ohionationalguard.com/jobs/Tech%20Jobs/05-032.asp
+http://www.ohionationalguard.com/jobs/Tech%20Jobs/05-045.asp
+http://www.ohionationalguard.com/jobs/Tech%20Jobs/05-048.asp
+http://www.ohionationalguard.com/jobs/Tech%20Jobs/347-04.asp
+http://www.ohiou.edu/recreation/is/RULES/flrhcky_rules2.htm
+http://www.ohiou.edu/researchnews/extracredit/article2a.html
+http://www.ohiou.edu/writing/teaching_writing_in_large_classes.htm
+http://www.ohn.gov.uk/glossary/h.htm
+http://www.ohr.psu.edu/lifeevents/absence/
+http://www.ohr.psu.edu/lifeevents/begin/
+http://www.ohrc.on.ca/en_text/consultations/race-policy-dialogue-paper-jar.shtml
+http://www.ohrp.umd.edu/faculty/fsa/fsa1998.html
+http://www.ohrpa.on.ca/jobposting.html
+http://www.ohsrep.org.au/hazards/Cold.html
+http://www.ohsrep.org.au/hazards/mobiles.html
+http://www.ohsrep.org.au/hazards/nonionising.html
+http://www.ohsu.edu/about/plan/
+http://www.ohsu.edu/csail/prog01.html
+http://www.oic.gov.ie/252a_3c2.htm
+http://www.oidmg.org/page_tmp/oib/Iraq_Conference_Report.htm
+http://www.oie.int/eng/normes/en_mcode.htm
+http://www.oie.int/eng/normes/mcode/en_chapitre_1.3.7.htm
+http://www.oie.int/eng/normes/mmanual/A_00015.htm
+http://www.oie.int/eng/normes/mmanual/A_00020.htm
+http://www.oie.int/eng/normes/mmanual/A_00073.htm
+http://www.oie.int/eng/normes/mmanual/A_00138.htm
+http://www.oii.ox.ac.uk/about/?rq=history
+http://www.oikos.org/ecology/freehome.htm
+http://www.oil.dbxexpo.com/top%2025%20interview/nzar%20alhafod%20en.htm
+http://www.oilcareers.com/content/community/board/view.asp?mode=viewtopic&topicID=354
+http://www.oilcrisis.com/campbell/update2002.htm
+http://www.oilcrisis.com/laherrere/disctrnd.htm
+http://www.oilcrisis.com/us/ca/texas/
+http://www.oildepletion.org/roger/summary/summary.htm
+http://www.oilempire.us/abiotic.html
+http://www.oilempire.us/media.html
+http://www.oilempire.us/peakoil.html
+http://www.oilpaintingtechniques.com/
+http://www.oilrecycling.gov.au/admin-guidelines/section-3.html
+http://www.oilrecycling.gov.au/annual-report02/chapter4.html
+http://www.oilseedrape.com/pages/trials/stand_pow_tab.htm
+http://www.oilsite.com/
+http://www.oilspillresponse.com/about/aboutus.html
+http://www.oilstick.com/rparks/boatreunion/bio.htm
+http://www.oir.uiuc.edu/assessment/plans/agricultural_and_consumer_econom.htm
+http://www.oireachtas.ie/viewdoc.asp?fn=/documents/a-misc/leg.htm
+http://www.oise.utoronto.ca/cwse/summerinst_05.htm
+http://www.oise.utoronto.ca/depts/aecdcp/teach/ts2.html
+http://www.oise.utoronto.ca/field-centres/TVC/RossReports/vol4no3.htm
+http://www.oisf.org.uk/0145prog.htm
+http://www.oiss.wayne.edu/Info_F1F2/F1_OPT.html
+http://www.oit.nsw.gov.au/Guidelines/4.3.6.d-CC-Operational.asp
+http://www.oit.umass.edu/virus/malware.html
+http://www.ojaiblog.com/
+http://www.ojar.com/view_5771.htm
+http://www.ojar.com/view_740.htm
+http://www.ojar.com/view_935.htm
+http://www.ojp.usdoj.gov/bjs/pub/ascii/cp96.txt
+http://www.ojp.usdoj.gov/bjs/pub/ascii/soo.txt
+http://www.ojp.usdoj.gov/nij/dnamtgtrans/trans-j.html
+http://www.ojp.usdoj.gov/nij/dnamtgtrans5/trans-i.html
+http://www.ojp.usdoj.gov/ovc/publications/infores/restorative_justice/96522-multicultural/multi9.html
+http://www.ojp.usdoj.gov/ovc/publications/infores/vestmtl/trainout.htm
+http://www.ojr.org/ojr/business/1062025099.php
+http://www.ojr.org/ojr/glaser/1054844800.php
+http://www.ojr.org/ojr/stories/050405glaser/
+http://www.okcca.net/online/oujis/oujisrvr.jsp?oc=OUJI-CR%209-10
+http://www.okdocc.state.ok.us/TITLE160/chapter45.php
+http://www.okea.org/ESEA/actionresources/TQ.html
+http://www.okefenokee.com/tourmotor.htm
+http://www.okefenokee.com/tourspaddling.htm
+http://www.okemo.com/learning/skisnbtips.html
+http://www.okemosweb.com/Allegra.html
+http://www.okfamilypc.org/marriage_initiative.htm
+http://www.okhighered.org/ohlap/funding-update.shtml
+http://www.okinawajet.com/yak/2003/november/typhoon14/
+http://www.okinawatimes.co.jp/eng/20020427.html
+http://www.okisemi.com/jp/english/arm-top.htm
+http://www.oklahomahomeschool.com/unitstudies.html
+http://www.oklahomaredhawks.com/contact/
+http://www.okmedicalboard.org/miscFunction.php?filename=20030301MD.htm&header=1
+http://www.okmoga.com/tour.html
+http://www.oktax.state.ok.us/faq.html
+http://www.okusi.net/garydean/works/seatrade.html
+http://www.olapreport.com/How_not_to_buy.htm
+http://www.olapreport.com/fasmi.htm
+http://www.olasky.com/Questions/Obrother.html
+http://www.olats.org/africa/projets/gpEau/pouvoir/contrib/contrib_malina_alan.shtml
+http://www.olcsoft.com/select_0601.htm
+http://www.old-time.com/sfx.html
+http://www.oldamericancentury.org/
+http://www.oldamericancentury.org/dave300014.htm
+http://www.oldandsold.com/articles02/article1143.shtml
+http://www.oldbaileyonline.org/history/crime/punishment.html
+http://www.oldbexleians.co.uk/pupils.asp?year=1970
+http://www.oldcampbellians.co.uk/NoticeBoard/notice_board.htm
+http://www.oldcitycemetery.com/InNews/Bee0998.htm
+http://www.oldcountrytours.com/greatgardens.htm
+http://www.oldcourse-experience.com/data/enquiries/enquiries.htm
+http://www.olddalriads.com/forum.htm
+http://www.oldeenglish.org/board/viewtopic.php?p=5413
+http://www.oldegoodthings.com/newsletter6.htm
+http://www.oldengine.org/shows/NAMES98/
+http://www.olderhomelessness.org.uk/?section=5&topic=3&article=0
+http://www.oldfortjohnson.org/arch1.html
+http://www.oldham.gov.uk/contrast/living/every_child_matters/ecm-task-groups.htm
+http://www.oldham.gov.uk/living/every_child_matters/ecm-task-groups.htm
+http://www.oldhousejournal.com/notebook/npsbriefs/brief12.shtml
+http://www.oldies.com/product/view.cfm/id_042987.html
+http://www.oldies.com/product/view.cfm/id_56252.html
+http://www.oldmanriver.com/solar/sunny_side.htm
+http://www.oldmansea.com/press/press5.htm
+http://www.oldmutual.co.za/MarketWatch/todaysnews.asp?content=bus
+http://www.oldmutual.co.za/aboutom/Vacancies/Details.asp?Assignment_Number=CS3436
+http://www.oldmutual.co.za/coza_store/templates/Article1.asp?id=42
+http://www.oldmutual.co.za/coza_store/templates/Article1.asp?id=489
+http://www.oldnautibits.com/features/aerofeature6.shtml
+http://www.oldnewspublishing.com/story1.htm
+http://www.oldno9.org/artists.html
+http://www.oldradioworld.de/gollum/analysis.htm
+http://www.oldwestnews.com/aboutoldwestnews.html
+http://www.olegdulin.com/index.php/archives/2004/10/12/official-sources-are-not-recognized-by-wizbang/
+http://www.olemiss.edu/courses/ce407/exp_S1.html
+http://www.olemiss.edu/depts/english/ms-writers/dir/faulkner_william/
+http://www.olemiss.edu/mwp/books/1997/september.html
+http://www.olemiss.edu/mwp/books/1998/november.html
+http://www.olemiss.edu/mwp/books/2001/february.html
+http://www.olemiss.edu/mwp/dir/bosco_joseph/
+http://www.olemiss.edu/mwp/dir/faulkner_william/
+http://www.olf.gouv.qc.ca/english/charter/title1chapter7.html
+http://www.oli.org/for_teachers/oli_cdrom/lessons/6_la_lp.html
+http://www.olin.msu.edu/factsheet.php?id=11
+http://www.olivado.co.nz/avocadooil.htm
+http://www.olivefilms.com/info.html
+http://www.olivegarden.com/ourcommunity/rules.asp
+http://www.olrb.gov.on.ca/english/homepage.htm
+http://www.olsen-twins-news.com/index.php?p=118
+http://www.olympia-antiques.co.uk/FAAF/Summer/FAAFPRSU.nsf/prs/47CA11E40BBC045480256FBD005CD272
+http://www.olympia-antiques.com/FAAF/Summer/FAAFPRSU.nsf/prs/47CA11E40BBC045480256FBD005CD272
+http://www.olympic.ca/EN/organization/news/2004/0804_2.shtml
+http://www.olympic.ca/EN/organization/news/2004/0804_3.shtml
+http://www.olympic.org/uk/games/past/index_uk.asp?OLGT=1&OLGY=1968
+http://www.olympic.org/uk/games/past/index_uk.asp?OLGT=1&OLGY=1984
+http://www.olympic.org/uk/organisation/commissions/women/full_story_uk.asp?id=350
+http://www.olympicholidays.co.uk/info.asp?item=SPAS
+http://www.olympichotelsf.com/html/union-square-san-francisco-downtown-dining.html
+http://www.olympics.org.uk/training/lofer.asp
+http://www.olympus.net/olympusnet/services/dsl/
+http://www.olympusamerica.com/pss_section/pss_faq.asp
+http://www.olympusfluoview.com/resources/fluoviewusers.html
+http://www.olywa.net/cagle/seatails/
+http://www.olywa.net/speech/october99/candidates.html
+http://www.om.org/newsbytes/0105.jsp
+http://www.oma.org/phealth/position.htm
+http://www.omaid.com/english_section/in_the_press/geoPolitics_pTomsen_Feb01.htm
+http://www.omarmasry.net/islamofacists.htm
+http://www.omatrix.com/manual/glossary_frame1.htm
+http://www.ombud.gov.bc.ca/reports/Public_Reports/PR33_river/RIVER3.html
+http://www.ombwatch.org/article/archive/48/50?TopicID=1
+http://www.ombwatch.org/article/articleview/213/1/1
+http://www.ombwatch.org/article/articleview/2529/1/231?TopicID=3
+http://www.omdec.com/articles/reliability/demoCBMadvancedDiscussion.html
+http://www.omegabyte.com/support_technical_whatwesupport.htm
+http://www.omegachess.com/chesslinks.htm
+http://www.omegapage.com/briceland/home.htm
+http://www.omg.org/gettingstarted/process2-RFP.htm
+http://www.omgcenter.org/pew/051304session-final.html
+http://www.omhrc.gov/clas/guide3a.asp
+http://www.omhrc.gov/ctg/full-mhm.htm
+http://www.omic.com/resources/risk_man/deskref/medicaloffice/managedcare/9.cfm
+http://www.omidyar.net/group/help/ws/Help%20on:%20Home/
+http://www.omidyar.net/group/showcase/news/61/
+http://www.omiinc.com/awards.html
+http://www.omiworld.org/DocumentationDettaglio.asp?L=1&I=35
+http://www.omiworld.org/DocumentationDettaglioPrintable.asp?L=1&I=35
+http://www.omnexus.com/resources/articles/article.aspx?id=4758
+http://www.omnistraining.com/200404NZOZ.html
+http://www.omnium.com/bil/
+http://www.omnology.com/gurps-levels.html
+http://www.omplace.com/articles/PriceOnPriceless.html
+http://www.omplace.com/om_articles/OnComingtoTermswiththePWord.html
+http://www.omsoul.com/totbbib.phtml
+http://www.omta.net/
+http://www.on-luebeck.de/friendship_force/gready.htm
+http://www.on-samui.com/stories/blessings.html
+http://www.on-the-net.com/interskills/minis/business.htm
+http://www.on-this-day.com/onthisday/thedays/alldays/dec01.htm
+http://www.on.ec.gc.ca/pollution/fpd/csap/intro-e.html
+http://www.onagocag.com/nazca.html
+http://www.onceinoticediwasonfireidecidedtorelaxandenjoythefall.org/merkabah/archives/000637.html
+http://www.onceuponalife.com/forums/archive/index.php/t-9331
+http://www.oncewritten.com/Excerpts/2003-07/AlaskaTales.htm
+http://www.oncfs.gouv.fr/events/game_wildlife/instructions-uk.php
+http://www.oncolink.com/treatment/article.cfm?c=2&s=10&id=117
+http://www.oncolink.com/treatment/article.cfm?c=2&s=9&id=72
+http://www.oncourseworkshop.com/Interdependence010.htm
+http://www.ondemandjournal.com/specialfeatures/nagi11.cfm
+http://www.ondemandjournal.com/specialfeatures/presstek16.cfm
+http://www.ondoctrine.com/2spurgeo.htm
+http://www.ondreaming.com/theories/
+http://www.one-europe.ac.uk/cgi-bin/esrc/world/db.cgi/proj.htm?id=6
+http://www.one-ring.co.uk/index.php?page=-1&type=article&artid=240
+http://www.onebee.com/writing/2005/06/intelligent_design_theory
+http://www.onecountry.org/e132/e13212as_Education_for_Peace.htm
+http://www.onefinedayky.com/what.htm
+http://www.onehumanrace.com/docs/cains_wife.asp
+http://www.oneia.ca/NewsArch804.asp
+http://www.onekit.com/store/reviews/graphics_and_design/200407.html
+http://www.onelegacy.org/prod/components/donation/stories.html
+http://www.onelittleangel.com/wisdom/quotes/philo.asp?mc=62
+http://www.oneofus.co.uk/articles/on_being_a_responsible_writer.htm
+http://www.onepaper.com/stthomasvi/?v=d&i=&s=News:Local&p=1105685689
+http://www.onepeoplesproject.com/index2.php?option=content&task=view&id=562&pop=1&page=0
+http://www.onepica.com/
+http://www.oneplusoneequalsthree.com/2004/12/
+http://www.oneroofentertainment.com/press_onestopshop.html
+http://www.onestepatatime.com/
+http://www.onestopenglish.com/ProfessionalSupport/ask/methodology.htm
+http://www.onestopenglish.com/english_grammar/prepositions_tefl_esl.htm
+http://www.onestopenglish.com/teaching_minimal_resources/craven_2tips.htm
+http://www.onestopenglish.com/teaching_minimal_resources/writing_lind_adr.htm
+http://www.onestopenglish.com/tefl_esl_warmers/icebreaker.htm
+http://www.onestopenglish.com/tefl_esl_warmers/stand.htm
+http://www.onestops.info/article.php?article_id=50&subcat_id=8
+http://www.onetalentsource.com/view_article/14/
+http://www.onetao.com/
+http://www.onetongorilla.com/
+http://www.onetongorilla.com/archives/2005/01/
+http://www.onetrick.net/dvd.htm
+http://www.oneworld-publications.com/samples/daoism.htm
+http://www.oneworldchallenge.com/news/archive/02112002.html
+http://www.onfocus.com/2003/10/
+http://www.onherown.net/modules.php?name=News&file=article&sid=126
+http://www.onjava.com/pub/a/onjava/2002/07/31/java3.html
+http://www.onjava.com/pub/a/onjava/2003/03/12/pmd_cpd.html
+http://www.onjava.com/pub/a/onjava/2004/01/21/dbunit.html
+http://www.onjava.com/pub/a/onjava/2005/06/01/kgpjava.html
+http://www.onjava.com/pub/a/onjava/2005/06/01/kgpjava_part2.html
+http://www.onlamp.com/pub/a/onlamp/2004/01/29/scm_overview.html
+http://www.onlamp.com/pub/a/php/2001/04/26/php_admin.html
+http://www.onlamp.com/pub/a/security/2004/09/16/open_source_security_myths.html
+http://www.online-dictionary.net/computer/index.php
+http://www.online-learning.com/papers/articlementored.html
+http://www.online-literature.com/agatha_christie/mysterious_affair_styles/6/
+http://www.online-literature.com/alcott/jack_and_jill/22/
+http://www.online-literature.com/anton_chekhov/1173/
+http://www.online-literature.com/chesterton/man_knew_much/1/
+http://www.online-literature.com/darwin/voyage_beagle/7/
+http://www.online-literature.com/doyle/beyond_city/15/
+http://www.online-literature.com/fyodor-sologub/1969/
+http://www.online-literature.com/george_bernard_shaw/1101/
+http://www.online-literature.com/george_bernard_shaw/devil_disciple/9/
+http://www.online-literature.com/hardy/blue_eyes/18/
+http://www.online-literature.com/hardy/casterbridge/24/
+http://www.online-literature.com/hardy/woodlanders/24/
+http://www.online-literature.com/henry_james/beast_in_jungle/5/
+http://www.online-literature.com/henry_james/wings_dove/16/
+http://www.online-literature.com/henry_james/wings_dove/21/
+http://www.online-literature.com/john-buchan/huntingtower/12/
+http://www.online-literature.com/john-mcelroy/red-acorn/7/
+http://www.online-literature.com/js-fletcher/talleyrand-maxim/16/
+http://www.online-literature.com/leroux/phantom_opera/24/
+http://www.online-literature.com/orwell/1984/1/
+http://www.online-literature.com/orwell/1984/13/
+http://www.online-literature.com/ralph-barbour/behind-the-line/2/
+http://www.online-literature.com/shakespeare/lovelost/7/
+http://www.online-literature.com/shakespeare/measure/
+http://www.online-literature.com/shakespeare/measure/5/
+http://www.online-literature.com/shakespeare/midsummer/
+http://www.online-literature.com/shakespeare/romeo_and_juliet/27/
+http://www.online-literature.com/shakespeare/timonofathens/9/
+http://www.online-literature.com/stowe/uncletom/17/
+http://www.online-literature.com/swift/gulliver/
+http://www.online-literature.com/twain/320/
+http://www.online-literature.com/twain/huckleberry_finn/
+http://www.online-literature.com/victor_hugo/les_miserables/122/
+http://www.online-literature.com/victor_hugo/les_miserables/362/
+http://www.online-literature.com/wilde/being_earnest/4/
+http://www.online-literature.com/wordsworth/528/
+http://www.online-sweepstakes.com/forums/showthread.php?t=216075
+http://www.online-visions.com/challenges/0306solved-3.html
+http://www.online.bg/onlinebgcom/elections.html
+http://www.onlineartmall.com/limited/paulhorton/
+http://www.onlineathens.com/stories/031404/opi_20040314004.shtml
+http://www.onlineathens.com/stories/100604/opi_20041006009.shtml
+http://www.onlinebristol.com/index.cfm/ID/80/Page/African-American_History
+http://www.onlinebusadv.com/feb99train.html
+http://www.onlineclarity.co.uk/I_Ching_community/e-answers59.html
+http://www.onlinecreditcenter2.com/sams/rfs_credit_terms.html
+http://www.onlineinaminute.com/Templates-Personal/allinthefamily-family.htm
+http://www.onlinejournal.com/Commentary/010705Dodgins/010705dodgins.html
+http://www.onlinejournal.com/Commentary/020205Engel/020205engel.html
+http://www.onlinelawyersource.com/androstenedione/
+http://www.onlineopinion.com.au/June00/Stilwell.htm
+http://www.onlineopinion.com.au/onlinefocus/qld-election-2004/candidates.asp?id=189
+http://www.onlineopinion.com.au/view.asp?article=1429
+http://www.onlineopinion.com.au/view.asp?article=1473
+http://www.onlineopinion.com.au/view.asp?article=1739
+http://www.onlineopinion.com.au/view.asp?article=2694
+http://www.onlineopinion.com.au/view.asp?article=3342
+http://www.onlineopinion.com.au/view.asp?article=3583
+http://www.onlineopinion.com.au/view.asp?article=378
+http://www.onlineopinion.com.au/view.asp?article=786
+http://www.onlineoriginals.com/showitem.asp?itemID=104
+http://www.onlinepolicy.org/action/legpolicy/opg_v_diebold/
+http://www.onlinepot.org/legal/copstops4.htm
+http://www.onlinereviewlondon.com/reviews/Bombshells.html
+http://www.onlineseats.com/a-walk-down-abbey-road-tickets/index.asp
+http://www.onlinesports.com/sportstrust/sports30.html
+http://www.onlinewbc.gov/docs/finance/captoo.html
+http://www.onlinewbc.gov/docs/finance/insure_types.html
+http://www.onlinewbc.gov/docs/manage/SoMuchTime.html
+http://www.onlinewbc.gov/docs/manage/bod.html
+http://www.onlinewbc.gov/docs/manage/comm_style.html
+http://www.onlinewbc.gov/docs/market/mk_net_ready.html
+http://www.onlinewbc.gov/successofthemonth.html
+http://www.onlineweb.com/theones/1975_1979.htm
+http://www.onlineworkshops.com/
+http://www.onlisareinsradar.com/archives/002153.php
+http://www.onlisareinsradar.com/archives/free_mike_hawash/index.php
+http://www.only4ukids.com/knowledge/life/animals/marinevariety/index.shtml
+http://www.onlybaseballmatters.com/
+http://www.onlylyrics.com/song.php?id=28083
+http://www.onphilanthropy.com/bestpract/bp2005-01-29.html
+http://www.onphilanthropy.com/tren_comm/tc2004-06-18.html
+http://www.onr.navy.mil/
+http://www.onrec.com/content2/news.asp?ID=2530
+http://www.onrglobal.navy.mil/fleetforces/faqs.asp
+http://www.onsightergo.com/articles/palmrestarticle.html
+http://www.onspanishtime.com/web/testimonials3.htm
+http://www.ont-woodlot-assoc.org/info_pub_guide.html
+http://www.ont.com/users/kolya/AR15/aw94.htm
+http://www.ontario.anglican.ca/sunday_by_sunday_a.htm
+http://www.ontarioaccommodation.com/alliedmem.htm
+http://www.ontariodeerelkfarmers.com/venison.shtml
+http://www.ontariogenomics.ca/research_programs/applied_genomics.asp
+http://www.ontarioironworkers.com/BF_claim.HTM
+http://www.ontariosciencecentre.ca/media/default.asp?releaseid=867
+http://www.ontariosciencecentre.ca/school/curriculum/primary.asp
+http://www.ontariosciencecentre.ca/scizone/e3/truth/default.asp
+http://www.ontariosiresstakes.com/2004/leaders/horseleaders.html?gait=P&age=2&sex=C
+http://www.ontariosiresstakes.com/2004/leaders/horseleaders.html?gait=P&age=2&sex=F
+http://www.ontcm.com/dise/obes/main.htm
+http://www.onthemove.ualberta.ca/index.aspx?Page=18
+http://www.ontherail.com/business/big_pork.html
+http://www.ontla.on.ca/documents/Bills/38_Parliament/Session1/b080_e.htm
+http://www.ontla.on.ca/hansard/committee_debates/36_parl/session1/estimates/e028.htm
+http://www.ontological.com/rf/rfarchives/rftexts/SUPPOSE.html
+http://www.ontruck.org/careers/drivertraining.htm
+http://www.oo-rah.com/Store/seastories/ss36.asp
+http://www.ooaq.qc.ca/Mai/bruitsecoute_an.html
+http://www.oodiscs.com/oo64.html
+http://www.oomyungdoe.com/main.asp
+http://www.oosa.unvienna.org/isis/highlights2000/sect5a.html
+http://www.oosterhoff.info/diary/2000/germany2.html
+http://www.ooyc.org/
+http://www.op.nysed.gov/dec01.htm
+http://www.opc.org/new_horizons/NH00/0002c.html
+http://www.opcw.org/html/db/cwc/eng/cwc_annex_verification_part_VI.html
+http://www.opcw.org/regpub/index_afr_en.html
+http://www.opcw.org/regpub/index_asia_en.html
+http://www.opdv.state.ny.us/legislation/summary00.html
+http://www.ope.vic.gov.au/domino/Web_Notes/OPE/rwp553.nsf/0/522E3223673BFD81CA256F63007D5BA7?OpenDocument
+http://www.opec.co.uk/aboutus.html
+http://www.opec.org/opecna/Speeches/2005/DubaiPetGas.htm
+http://www.opeiu8.org/ResourcesLinks/
+http://www.open-sandwich.co.uk/copyright.htm
+http://www.open-spaces.com/article-v2n1-cosgriff.php
+http://www.open.org/mrdsnts/m10600.htm
+http://www.open2.net/forum/post!reply.jspa?messageID=10264
+http://www.open2.net/marksteel/pankhurst_lecture.html
+http://www.open2.net/someonetowatch/further.html
+http://www.openair.org/cross/precis.html
+http://www.openarchives.org/documents/OAIRightsWhitePaper.html
+http://www.openarchives.org/pipermail/oai-general/2001-September/000090.html
+http://www.openbrackets.com/
+http://www.openbrackets.com/article/674/telling
+http://www.openbsd.org/mail.html
+http://www.opencenter.org/Trainings/ChineseHerbalism.htm
+http://www.opendarwin.org/en/articles/osx_smb/ar01s03.html
+http://www.opendemocracy.net/articles/View.jsp?id=2245
+http://www.opendemocracy.net/debates/article-6-129-2462.jsp
+http://www.opendemocracy.net/democracy-europe_constitution/holland_2567.jsp
+http://www.opendemocracy.net/xml/xhtml/articles/2245.html
+http://www.opendemocracy.net/xml/xhtml/articles/2567.html
+http://www.opendiary.com/entryview.asp?authorcode=A956071&entry=10248
+http://www.opendoorsuk.org/projects_catalog.php
+http://www.openfieldsoftware.com/privacy.asp
+http://www.opengeospatial.org/specs/?page=specs
+http://www.opengl.org/about/arb/notes/minutes9-18-02/meeting_note_2002-09-18.html
+http://www.opengl.org/resources/features/fontsurvey/
+http://www.opengoal.tv/losingstreak.htm
+http://www.opengroup.org/desktop/faq/
+http://www.opengroup.org/onlinepubs/009695399/functions/getrlimit.html
+http://www.openletters.net/000731/watters000804.html
+http://www.openletters.net/000807/oconnor000808.html
+http://www.openlinksw.com/main/jobs.htm
+http://www.openoffice.org/project/www/mail_list.html
+http://www.openoutsource.com/index.php
+http://www.openoutsource.com/resource-dated13121-HCL%20to%20add%20more%20jobs%20in%20Northern%20Ireland.phtml
+http://www.openoutsource.com/resource-dated13681-Services%20Spending%20Strong.phtml
+http://www.openoutsource.com/resource-dated7083-Kerry%20Campaign%20Urges%20White%20House%20to%20Disavow%20Chamber%20of%20Commerce%20....phtml
+http://www.openoutsource.com/resource-dated9665-Convergys%20Expands%20E-Learning%20Services%20Offerings%20with%20Introduction%20....phtml
+http://www.openp2p.com/pub/a/p2p/2001/01/18/shirky_umbrellas.html
+http://www.openp2p.com/pub/a/p2p/2001/08/28/p2pwar.html
+http://www.openpro.com/solutions_enterprise.html
+http://www.opensecrets.org/527s/527events.asp?orgid=41
+http://www.opensecrets.org/527s/527events.asp?orgid=41&Format=Print
+http://www.opensecrets.org/alerts/v3/ALRTV3N28.asp
+http://www.opensolaris.org/os/community/onnv/devref_toc/devref_2/
+http://www.opensourcetheology.net/node/view/666
+http://www.openspacecomm.com/Articles/Gifted%20Education.htm
+http://www.openspacetechnology.com/articles/factors.html
+http://www.openspaceworld.com/spirt_shows.htm
+http://www.openssl.org/support/faq.html
+http://www.opentechsupport.net/forums/archive/topic/27810-1.html
+http://www.opentechsupport.net/forums/archive/topic/31981-1.html
+http://www.opentechsupport.net/forums/archive/topic/32575-1.html
+http://www.opentechsupport.net/forums/printthread.php?t=31981&page=2&pp=14
+http://www.opentechsupport.net/forums/printthread.php?t=31981&pp=1000
+http://www.opentechsupport.net/forums/showthread.php?t=31981&page=2
+http://www.opentechsupport.net/forums/showthread.php?t=31981&page=2&pp=14
+http://www.opentext.com/news/pr.html?id=1457
+http://www.opentheory.org/oxkonferenz3-invite/text.phtml?lang=en
+http://www.openves.org/
+http://www.openwordchurch.org/sermons/2004-04-11.html
+http://www.openworld.org/about/careers2.shtml
+http://www.operationhomefront.net/nh/ChapterNews.htm
+http://www.operationhomefront.org/Info/info_deploy.shtml
+http://www.operationhope.org/AboutOHI/Pressroom/
+http://www.operationhope.org/Epublications/September_11_00/
+http://www.operationhope.org/Financial_Literacy/default.htm
+http://www.operationlettertosanta.com/Pages/contact.htm
+http://www.operationmigration.org/field_2002_fal.html
+http://www.operationmilitarysupport.com/letters/letters_2005/letters_01_05.htm
+http://www.operationmom.org/newsltr1203.html
+http://www.operationrebirth.com/archive/mmunroe.html
+http://www.operationrebirth.com/archive/tacl-leviticus.html
+http://www.operationrescue.org/
+http://www.operationrescue.org/?p=52
+http://www.operations.mod.uk/telic/casualties.htm
+http://www.operations.mod.uk/telic/kelly.htm
+http://www.operations.mod.uk/telic/press_27march.htm
+http://www.operations.mod.uk/telic/sofs_fpa_24march.htm
+http://www.operationsaveamerica.org/press/press/010330jameskopparres.html
+http://www.operaworld.com/north/street/streetbackground.shtml
+http://www.opg.com/ops/N_darlington.asp
+http://www.opic.gov/PressReleases/2002/2-41.htm
+http://www.opinion.telegraph.co.uk/travel/main.jhtml?xml=/travel/2004/10/11/etzambia1010.xml
+http://www.opinionjournal.com/best/?id=110002241
+http://www.opinionjournal.com/best/?id=110004957
+http://www.opinionjournal.com/best/?id=110006106
+http://www.opinionjournal.com/best/?id=110006327
+http://www.opinionjournal.com/best/?id=110006807
+http://www.opinionjournal.com/best/?id=110006823
+http://www.opinionjournal.com/columnists/cRosett/?id=110002335
+http://www.opinionjournal.com/columnists/pdupont/?id=110003067
+http://www.opinionjournal.com/columnists/pdupont/?id=110005433
+http://www.opinionjournal.com/columnists/pnoonan/
+http://www.opinionjournal.com/columnists/pnoonan/?id=110003143
+http://www.opinionjournal.com/columnists/pnoonan/?id=110005442
+http://www.opinionjournal.com/columnists/pnoonan/?id=110006000
+http://www.opinionjournal.com/columnists/pnoonan/?id=110006332
+http://www.opinionjournal.com/columnists/pnoonan/?id=110006442
+http://www.opinionjournal.com/columnists/pnoonan/?id=110006794
+http://www.opinionjournal.com/columnists/pnoonan/?id=65000052
+http://www.opinionjournal.com/columnists/pnoonan/?id=65000339
+http://www.opinionjournal.com/editorial/?id=110006777
+http://www.opinionjournal.com/editorial/feature.html?id=110004855
+http://www.opinionjournal.com/editorial/feature.html?id=110005192
+http://www.opinionjournal.com/editorial/feature.html?id=110006074
+http://www.opinionjournal.com/extra/?id=110006228
+http://www.opinionjournal.com/extra/?id=110006785
+http://www.opinionjournal.com/forms/printThis.html?id=110003233
+http://www.opinionjournal.com/la/?id=110006427
+http://www.opinionjournal.com/medialog/?id=110004950
+http://www.opinionjournal.com/taste/?id=110003623
+http://www.opisnet.com/aboutus.asp
+http://www.opm.go.kr/warp/webapp/content/view?meta_id=english&id=28
+http://www.opm.go.kr/warp/webapp/content/view?meta_id=english&id=53
+http://www.opm.gov/cfr/vol_1/5cfr532.htm
+http://www.opm.gov/ehs/workplac/html/domestic-sec1.asp
+http://www.opm.gov/er/adrguide/Section1-army.asp
+http://www.opm.gov/er/adrguide_2002/section1-army.asp
+http://www.opm.gov/fedclass/0600pa/AP_F1.asp
+http://www.opm.gov/fedclass/text/intro.htm
+http://www.opm.gov/fers_election/fersh/h_scd9.htm
+http://www.opm.gov/gpra/opmgpra/par2001/progress.htm
+http://www.opm.gov/hrmc/2004/msg-010.asp
+http://www.opm.gov/insure/99/brochures/73-065.html
+http://www.opm.gov/insure/handbook/fehb10.asp
+http://www.opm.gov/insure/ltc/
+http://www.opm.gov/insure/ltc/ic2003/03042003.htm
+http://www.opm.gov/oca/compmemo/2004/2004-22.asp
+http://www.opm.gov/oca/pay/HTML/Grade_PayRetention_EX.asp
+http://www.opm.gov/oca/pay/html/simultaneous_pay.asp
+http://www.opm.gov/qualifications/SEC-IV/B/GS0300/0334.HTM
+http://www.opm.gov/qualifications/sec-ii/s2-e7.htm
+http://www.opm.gov/veterans/html/vghist.asp
+http://www.opm.gov/workforceplanning/wfpmodel_step1.htm
+http://www.opm.state.ct.us/pdpd2/energy/enserv.htm
+http://www.opma.on.ca/advicearticle_03_17_1997_perscriptionorthotics.htm
+http://www.opnet.com/opnetwork2003/hotels.html
+http://www.opnet.ops.gov.ph/speech-2001june20.htm
+http://www.opportunities.org.uk/peoplewithdisabilities/archive/september04.html
+http://www.opportunities.org.uk/peoplewithdisabilities/jobhunter/current.html
+http://www.opportunity.nl/english/worklife.htm
+http://www.opposition.bc.ca/QP/QP%20-%20Fall%202002/20021024nhamemo.html
+http://www.oprah.com/health/omag/health_omag_200301_fit_story.jhtml
+http://www.oprah.com/obc/omag/obc_omag_200206_books.jhtml
+http://www.oprah.com/tows/pastshows/tows_2002/tows_past_20020130_c.jhtml
+http://www.oprs.ucla.edu/animal/FAQ.htm
+http://www.ops.gov.ph/speeches2002/speech-2002oct27.htm
+http://www.opsc.dgs.ca.gov/
+http://www.opseu.org/
+http://www.optics.arizona.edu/academics/CareersInOptics.htm
+http://www.opticsexpress.org/view_file.cfm?doc=%24(L%23%2FK%20%20%20%0A&id=%24)L%23-J%20%20%20%0A
+http://www.optimizemag.com/article/showArticle.jhtml?articleId=164302622
+http://www.optimizemag.com/article/showArticle.jhtml?articleId=17700880
+http://www.optimizemag.com/article/showArticle.jhtml?articleId=53701400&pgno=2
+http://www.optimizemag.com/issue/027/law.htm
+http://www.optimus2020.com/casestudies/showArticle.asp?article_ID=101
+http://www.option.org/miracle/ch22.html
+http://www.option.org/to_love/tl_c03.html
+http://www.optionsxpress.com/welcome/tour/
+http://www.optometrists.org/optometrists.html
+http://www.optruth.org/main.cfm?actionId=globalShowStaticContent&screenKey=hear&htmlId=1043
+http://www.optruth.org/main.cfm?actionId=globalShowStaticContent&screenKey=hear&htmlId=1530
+http://www.optruth.org/main.cfm?actionId=globalShowStaticContent&screenKey=userShowStories
+http://www.optruth.org/main.cfm?actionId=globalShowStaticContent&screenKey=userShowStories&lnav=1
+http://www.optumanswers.com/research/articles/research.shtml
+http://www.opusa.org/shipping/shippingnews.htm
+http://www.opusdei.org/art.php?w=32&p=4927
+http://www.opusdei.org/art.php?w=32&p=5578
+http://www.oqha.com/blessed.htm
+http://www.oqha.com/swaph.htm
+http://www.oqhra.com/
+http://www.or.regence.com/provider/contracting/medical/
+http://www.oracle.com/pls/cis/Profiles.print_html?p_profile_id=100665
+http://www.oracle.com/pls/cis/Profiles.print_html?p_profile_id=100985
+http://www.oracle.com/technology/oramag/oracle/03-jan/o13asktom.html
+http://www.oracle.com/technology/oramag/oracle/04-jul/o44tech_perf.html
+http://www.oracle.com/technology/oramag/oracle/04-mar/o24tech_industry.html
+http://www.oracle.com/technology/pub/articles/masterj2ee/j2ee_wk3.html
+http://www.oracle.com/technology/software/htdocs/distlic.html?/technology/software/tech/windows/odpnet/utilsoft.html
+http://www.oraculartree.com/postcards11.html
+http://www.oraculartree.com/s_portal_entering_forest.html
+http://www.oraculartree.com/s_shadowed_ones3.html
+http://www.oraculartree.com/s_shadowed_ones38.html
+http://www.oraculartree.com/shadowdancer84.html
+http://www.orafaq.com/tools/revealnet/formatter.htm
+http://www.oraflcio.unions-america.com/
+http://www.oralcancerfoundation.org/facts/clinical_trials.htm
+http://www.oralchelation.com/LifeGlowBasic/technical/p14.htm
+http://www.oralchelation.net/heartdisease/ChapterSix/page6.htm
+http://www.oralhistory.org.uk/ethics/
+http://www.oramd.com/
+http://www.orange-papers.org/orange-cult_q2.html
+http://www.orange.co.uk/service_plans/pay_monthly/your_plan/offpeak.html
+http://www.orbeon.com/services/tech-support
+http://www.orbicom.uqam.ca/in_focus/columns/en/archives/2003_fev.html
+http://www.orbit.org.uk/newsite/OHA/How2Apply.htm
+http://www.orca.on.ca/About-Us/history.002.html
+http://www.orcadian.co.uk/archive/2002/archive8.htm
+http://www.orchidlady.com/orchidgarden/1999-12/
+http://www.orchidlady.com/plantpals/
+http://www.orchids.org/culture/culture.html
+http://www.orcsoftware.com/Company/PNR/PNR_040317_notice_to_attend_eng.htm
+http://www.orderedlist.com/articles/a_practical_start
+http://www.orderedlist.com/articles/wordpress-administration-design-tiger/
+http://www.ordinarymind.net/Straight/straighttalk_may2002.htm
+http://www.oregon.gov/DOR/TOB/IC-105-404.shtml
+http://www.oregonadultsoccer.com/player_reg_form.htm
+http://www.oregongarden.org/calendar/November.html
+http://www.oregongenealogy.com/union/union.htm
+http://www.oregonguard.com/
+http://www.oregonlottery.org/general/allocate/
+http://www.oregonstatelands.us/news/news_director.htm
+http://www.oreilly.com/
+http://www.oreilly.com/catalog/esa2/chapter/ch03.html
+http://www.oreilly.com/catalog/jorajdbc/chapter/ch19.html
+http://www.oreilly.com/catalog/opensources/book/young.html
+http://www.oreilly.com/catalog/peertopeer/chapter/ch06.html
+http://www.oreilly.com/catalog/spt2/chapter/ch04.html
+http://www.oreilly.com/oreilly/author/ch03.html
+http://www.oreillynet.com/et2005/
+http://www.oreillynet.com/lpt/wlg/2366
+http://www.oreillynet.com/oscon2003/
+http://www.oreillynet.com/pub/a/linux/2005/01/27/freevo.html
+http://www.oreillynet.com/pub/a/network/2000/06/30/magazine/mozilla_stylesheets.html?page=2
+http://www.oreillynet.com/pub/a/network/2002/10/01/whatsinacondition.html
+http://www.oreillynet.com/pub/a/network/2005/06/07/geospatialweb.html
+http://www.oreillynet.com/pub/a/oreilly/opensource/news/subversion_ch01.html
+http://www.oreillynet.com/pub/a/wireless/2002/04/19/security.html
+http://www.oreillynet.com/pub/a/wireless/2002/12/20/zeroconf.html
+http://www.oreillynet.com/pub/a/wireless/excerpt/palmprog2_ch5/index2.html
+http://www.oreillynet.com/pub/wlg/1399
+http://www.oreillynet.com/pub/wlg/2125
+http://www.oreillynet.com/pub/wlg/2366
+http://www.oreillynet.com/pub/wlg/3936
+http://www.oreillynet.com/pub/wlg/4288
+http://www.oreillynet.com/pub/wlg/5171
+http://www.org2.com/dick/wamd.html
+http://www.organicanews.com/news/article.cfm?story_id=15
+http://www.organicconsumers.org/foodsafety/pepsi_pesticides.cfm
+http://www.organicfood.co.uk/stories/foodforthought.html
+http://www.organicmatter.net/node/122
+http://www.organicnutrition.co.uk/water.htm
+http://www.organicvegetarian.co.uk/
+http://www.organix.net/organix/guidelines.htm
+http://www.organizationdesignforum.org/conference/2005agenda.html
+http://www.organizedteens.com/jssociallife.htm
+http://www.orgs.ttu.edu/tstasp/MEETINGS_EVENTS/meetings_events1.htm
+http://www.oriental.cam.ac.uk/progs_admin_info.html
+http://www.orientaloutpost.com/proddetail.php?prod=gws-0184
+http://www.original-diamonds.com/affiliates_agreement.php
+http://www.originarts.com/mj451/biography.html
+http://www.originscanada.org/open_records/bc.html
+http://www.orindaben.com/dw/incrabund.htm
+http://www.orionfutures.com/opts.htm
+http://www.oriononline.org/pages/om/02-2om/NewEconomy.html
+http://www.oriononline.org/pages/om/04-2om/TempestWilliams.html
+http://www.oriononline.org/pages/om/archive_om/Berry/Local_Economy.html
+http://www.oriononline.org/pages/oo/curmudgeon/index_BigAndBlue.html
+http://www.oriononline.org/pages/oo/curmudgeon/index_CargoKarma.html
+http://www.orionsarm.com/clades/Sailors.html
+http://www.orionsarm.com/eg/e/Ea-Ec.html
+http://www.orionsarm.com/eg/l/Lo-Lt.html
+http://www.orissa.org.uk/
+http://www.orlandoweekly.com/columns/story.asp?id=4762
+http://www.ormondshead.com/menus.html
+http://www.ornery.org/essays/warwatch/2003-11-16-1.html
+http://www.ornl.gov/info/ornlreview/rev25-34/chapter7.shtml
+http://www.ornl.gov/roofs+walls/insulation/ins_01.html
+http://www.ornl.gov/sci/roofs+walls/insulation/ins_18.html
+http://www.ornl.gov/sci/techresources/Human_Genome/biosync/body.shtml
+http://www.ornl.gov/sci/techresources/Human_Genome/elsi/minorities.shtml
+http://www.ornl.gov/sci/techresources/Human_Genome/elsi/patents.shtml
+http://www.ornl.gov/sci/techresources/Human_Genome/hg5yp/hlight.shtml
+http://www.ornl.gov/sci/techresources/Human_Genome/project/benefits.shtml
+http://www.ornl.gov/sci/techresources/Human_Genome/project/info.shtml
+http://www.ornl.gov/sci/tpm/pkgspec_type_a_xref.shtml
+http://www.ornstein.org/2004treehouses.html
+http://www.oromoliberationfront.org/TPLF_schoolbombingt.htm
+http://www.orphantrainriders.com/riders11.html
+http://www.orps.state.ny.us/assessor/manuals/vol6/rfv/sect11.htm
+http://www.orps.state.ny.us/legal/rules/part200/sub200-2.htm
+http://www.orrick.com/fileupload/377.htm
+http://www.orrick.com/offices/tokyo/employment_benefits.asp
+http://www.ors.duke.edu/ors/policies/conflict.html
+http://www.ors2.state.sc.us/abstract/chapter11.asp
+http://www.ors2.state.sc.us/abstract/series.asp
+http://www.orsp.cmich.edu/GC_AwardMar.htm
+http://www.ortakales.com/Illustrators/Jones.html
+http://www.ortelius.de/kalender/jul_en.php
+http://www.orthodoxinfo.com/inquirers/ec_secondcoming.aspx
+http://www.orthodoxytoday.org/articles4/CouretasNCC.shtml
+http://www.orthodoxytoday.org/articlesprint/WolfeSoulDiedP.htm
+http://www.orwelltoday.com/armydeployment.shtml
+http://www.orwelltoday.com/cubacastro.shtml
+http://www.orwelltoday.com/jurabarnhillvisit.shtml
+http://www.os.dhhs.gov/news/speech/2005/050201.html
+http://www.os.mennoniteusa.org/index.php?cPath=2
+http://www.os2.co.za/ordpolicy.htm
+http://www.osbd.state.ok.us/Credit/Statutes/20012005.htm
+http://www.osburndesign.com/start_case1.html
+http://www.osc.state.ny.us/legal/2001/op2001-8.htm
+http://www.osc.state.ny.us/legal/2003/op2003-7.htm
+http://www.osca.ca/health-res.htm
+http://www.oscarbach.org/Commission%20List.htm
+http://www.oscars.org/74academyawards/winners/04leadingactress.html
+http://www.oscars.org/76academyawards/ona.html
+http://www.oscars.org/77academyawards/ona.html
+http://www.oscars.org/events/sorrellandson/
+http://www.oscarsborg.vgs.no/inteng.html
+http://www.oscarwatch.com/Awards/dga.html
+http://www.osce.org/
+http://www.oscn.net/applications/oscn/deliverdocument.asp?citeid=73216&date=5/17/94
+http://www.osdllinuxsummit.org/program-d.htm
+http://www.osfa.state.la.us/schgrt6a20.htm
+http://www.osfa.state.la.us/schgrt6a27.htm
+http://www.osfa.state.la.us/schgrt6a57.htm
+http://www.osfa.state.la.us/schgrt6a89.htm
+http://www.osh.com/Cultures/en-US/Articles/GardenNursery/ControllingGophers.htm
+http://www.osha.gov/Publications/OSHA3152/osha3152.html
+http://www.osha.gov/Reduction_Act/WALKSUP2.html
+http://www.osha.gov/SLTC/etools/computerworkstations/components_chair.html
+http://www.osha.gov/SLTC/etools/computerworkstations/components_keyboards.html
+http://www.osha.gov/SLTC/etools/grocerywarehousing/storage.html
+http://www.osha.gov/SLTC/etools/hospital/hazards/sharps/sharps.html
+http://www.osha.gov/doc/outreachtraining/htmlfiles/traintec.html
+http://www.osha.gov/dts/osta/otm/legionnaires/faq.html
+http://www.osha.gov/pls/oshaweb/owadisp.show_document?p_table=FEDERAL_REGISTER&p_id=16904
+http://www.osha.gov/pls/oshaweb/owadisp.show_document?p_table=FEDERAL_REGISTER&p_id=17902
+http://www.osho.com/Topics/TopicsEng/Terrorism.htm
+http://www.oshrc.gov/decisions/html_1991/87-0008.html
+http://www.osjspm.org/cjen298.htm
+http://www.osloader.com/eula.htm
+http://www.osmotek.com/adv.htm
+http://www.ospace.net/manual/interface.en.html
+http://www.ospca.on.ca/ta_wild_fs_property.html
+http://www.ospolitics.org/workpay/
+http://www.ospreysrugby.com/
+http://www.osric.com/university/threedaughters.html
+http://www.osrllg.com/federal_fs3.php
+http://www.oss-watch.ac.uk/resources/calibre04.xml?style=text
+http://www.oss-watch.ac.uk/resources/flosspols04.xml?style=printable
+http://www.oss.org.uk/responses/mainresponses.htm
+http://www.ost.gov.uk/policy/advice/guidelines_2000/
+http://www.ost.gov.uk/research/forwardlook03/statements/departments/deputy_pm2.htm
+http://www.ostomy.evansville.net/septembernews5.htm
+http://www.osu.edu/academicplan/stage.php
+http://www.osu.edu/researchnews/archive/bonaback.htm
+http://www.osu.edu/units/research/archive/doubt.htm
+http://www.osumdphd.org/overview.htm
+http://www.osv.com/Enewsletter/newsletter111704.htm
+http://www.osv.com/periodicals/show-article.asp?pid=976
+http://www.oswaldmosley.com/policies/spheresofinfluence.html
+http://www.oswego.org/testprep/ela4/g/adjectiveskindl2.cfm
+http://www.oswegocountybusiness.com/issue78/78SpecialArticle.html
+http://www.oswestry.com/
+http://www.otago.ac.nz/maoricentre/html/groups.html
+http://www.otago.ac.nz/news/news/2004/16-07-04_press_release.html
+http://www.otakuaniverse.com/features/lain/
+http://www.otal.umd.edu/SHORE2000/photobrowse/results.html
+http://www.otal.umd.edu/~sies/jobadvice.html
+http://www.otal.umd.edu/~vg/mssp96/ms18/project3.html
+http://www.otc.umd.edu/Inventors/labnotebooks.html
+http://www.othercinema.com/fall2002.html
+http://www.othercinema.com/fall2003.html
+http://www.otherpeoplesstories.com/070.html
+http://www.otherstream.com/
+http://www.otherwise.com/population/logistic.html
+http://www.oti.fsu.edu/documents/bpr_12_6_00.html
+http://www.otpp.com/web/website.nsf/web/samsonite
+http://www.otrcat.com/memory/georgepedicini.htm
+http://www.ott.zynet.co.uk/polio/lincolnshire/library/bach/pdandsdp.html
+http://www.ottawa.diplo.de/en/04/citizenship_20law/UB_20citizenshiplaw.html
+http://www.ottawabusinessjournal.com/280078439730617.php
+http://www.ottawabusinessjournal.com/281837527759227.php
+http://www.ottawabusinessjournal.com/285313723334178.php
+http://www.ottawaplus.ca/portal/feature/8150/orage.jsp
+http://www.ottawapolice.ca/en/crime_prevention/neighbourhood_watch/safety_tips.cfm
+http://www.otte.vic.gov.au/apprenticeships/nac1.htm
+http://www.otternet.com/ROA/sara.htm
+http://www.otternet.com/species/seaotter.htm
+http://www.otterproject.org/site/pp.asp?c=8pIKIYMIG&b=695263
+http://www.ottoskinner.com/about.html
+http://www.otway.com/family/1.html
+http://www.ou.org/about/judaism/rabbis/rshimonbaryochai.htm
+http://www.ou.org/public/statements/2000/nate5.htm
+http://www.ou.org/torah/tt/5760/vayishlach60/specialfeatures.htm
+http://www.ouboces.org/MSTgrant2/CONTENT/penguinparade.html
+http://www.ouc.bc.ca/er/contactLR.html
+http://www.oucc.org.uk/expeditions/report1967/report67_all.htm
+http://www.oucs.ox.ac.uk/ltg/vle/vle_frances.xml.ID=start
+http://www.oucs.ox.ac.uk/ltg/vle/vle_frances.xml.ID=summary
+http://www.oucs.ox.ac.uk/pcbuy/index.xml?style=printable
+http://www.oucs.ox.ac.uk/pcbuy/index.xml?style=text
+http://www.oucs.ox.ac.uk/typesetting/fonts/index.xml?style=text
+http://www.oudancesport.co.uk/Team/internal_notices/handbook/handbook3.htm
+http://www.oufc.premiumtv.co.uk/page/TheMainFeature/0,,10342,00.html
+http://www.oufoundation.org/sm/fall2003/thams.asp?ID=82
+http://www.oufoundation.org/sm/winter2003/story.asp?ID=43
+http://www.ouhk.edu.hk/WCM/?FUELAP_TEMPLATENAME=tcSingPage&ITEMID=CCLIPACECONTENT_38506925
+http://www.ouhk.edu.hk/WCM/?FUELAP_TEMPLATENAME=tcSingPage&ITEMID=CCLIPACECONTENT_38514435
+http://www.ouhk.edu.hk/WCM/?FUELAP_TEMPLATENAME=tcSingPage&pri=2&ITEMID=CCLIPACECONTENT_38506925
+http://www.ouje.ca/history/history.htm
+http://www.oulipocompendium.com/html/intro.html
+http://www.oup.co.uk/ep/prodsupp/ref/oed2v2_tech/
+http://www.oup.co.uk/isbn/0-19-263221-3
+http://www.oup.co.uk/isbn/0-19-850656-2
+http://www.oup.co.uk/isbn/0-19-866224-6
+http://www.oup.co.uk/isbn/0-19-927780-X
+http://www.oup.co.uk/music/repprom/berkeley/prognotesa-f/
+http://www.oup.com/ca/isbn/0-19-541357-1
+http://www.oup.com/elt/catalogue/guidance_articles/article_video?cc=global
+http://www.oup.com/eltnew/catalogue/isbn/1040?cc=global
+http://www.oup.com/eltnew/catalogue/isbn/1400?cc=global
+http://www.oup.com/eltnew/catalogue/teachersites/happyearth/?cc=global
+http://www.oup.com/online/groveart/
+http://www.oup.com/us/catalog/general/subject/Anthropology/BiologicalPhysicalAnthropology/?ci=0195173511&view=usa
+http://www.oup.com/us/catalog/general/subject/Anthropology/BiologicalPhysicalAnthropology/~~/cHI9MTAmcGY9MCZzcz1hdXRob3IuYXNjJnNmPWFsbCZzZD1hc2Mmdmlldz11c2EmY2k9MDE5NTE3MzUyWA==
+http://www.oup.com/us/catalog/general/subject/Anthropology/BiologicalPhysicalAnthropology/~~/cHI9MTAmcGY9MCZzcz1wdWJkYXRlLmRlc2Mmc2Y9bmV3cmVjZW50JnNkPWFzYyZ2aWV3PXVzYSZjaT0wMTk1MTczNTEx
+http://www.oup.com/us/catalog/general/subject/Anthropology/BiologicalPhysicalAnthropology/~~/cHI9MTAmcGY9MCZzcz1wdWJkYXRlLmRlc2Mmc2Y9bmV3cmVjZW50JnNkPWFzYyZ2aWV3PXVzYSZjaT0wMTk1MTczNTJY
+http://www.oup.com/us/catalog/general/subject/Anthropology/BiologicalPhysicalAnthropology/~~/cHI9MTAmcGY9MCZzcz1wdWJkYXRlLmRlc2Mmc2Y9bmV3cmVjZW50JnNkPWFzYyZ2aWV3PXVzYSZjaT0wMTk1MTczNTJY?view=usa&ci=019517352X
+http://www.oup.com/us/catalog/general/subject/ClassicalStudies/AncientHistory/Roman/?ci=0195161327&view=usa
+http://www.oup.com/us/catalog/general/subject/ClassicalStudies/ClassicalLiteratureinTranslation/?ci=0199240000&view=usa
+http://www.oup.com/us/catalog/general/subject/HistoryWorld/British/Medieval/?view=usa&ci=0198202075
+http://www.oup.com/us/catalog/general/subject/HistoryWorld/European/France/?ci=0340706503&view=usa
+http://www.oup.com/us/catalog/general/subject/LiteratureEnglish/AmericanLiterature/AfricanAmerican/?view=usa&ci=0195107691
+http://www.oup.com/us/catalog/general/subject/Music/PerformanceStudiesAppliedMusic/Voice/?view=usa&ci=0195160053
+http://www.oup.com/us/catalog/general/subject/Philosophy/Social/?ci=0195071484&view=usa
+http://www.oup.com/us/catalog/general/subject/Politics/ComparativePolitics/EuropeanUnion/?view=usa&ci=0199276129
+http://www.oup.com/us/catalog/general/subject/Politics/InternationalStudies/InternationalOrganizations/?ci=0199240566&view=usa
+http://www.oup.com/us/catalog/general/subject/ReligionTheology/HistoryofChristianity/~~/c2Y9YWxsJnNzPWF1dGhvci5hc2Mmc2Q9YXNjJnBmPTEwJnZpZXc9dXNhJnByPTEwJmJvb2tDb3ZlcnM9eWVzJmNpPTAxOTUxNTI4NzU=
+http://www.ourbrowncounty.com/0604s2.htm
+http://www.ourcatholicfaith.org/canonlaw/CANON1259-1272.html
+http://www.ourcatholicfaith.org/canonlaw/CANON197-199.html
+http://www.ourcatholicfaith.org/canonlaw/CANON200-203.html
+http://www.ourcatholicfaith.org/canonlaw/CANON29-34.html
+http://www.ourcivilisation.com/cooray/rights/chap6.htm
+http://www.ourcivilisation.com/public/chap4.htm
+http://www.ourcivilisation.com/signs/chap7.htm
+http://www.ourcommunity.com.au/boards/boards_article.jsp?articleId=1367
+http://www.ourcs.org.uk/index.php?menuexpand=&content=/flag/current.php
+http://www.ourcs.org.uk/index.php?menuexpand=1&content=/flag/current.php
+http://www.ourdialogue.com/m4.htm
+http://www.ourdogs.co.uk/News/January2005/News210105/greyhound.htm
+http://www.ourhollowearth.com/PolarOpn.htm
+http://www.ourlittleplace.com/mcslists.html
+http://www.ourpla.net/cgi-bin/pikie.cgi?AbbeNormal
+http://www.ourplanet.com/imgversn/112/brown.html
+http://www.ourplanet.com/imgversn/153/geel.html
+http://www.oursportscentral.com/services/releases/?id=3118212
+http://www.oursportscentral.com/usfl/playg-n.htm
+http://www.ourstolenfuture.org/Commentary/News/2003/2003-0619-LAT-popsandbears.htm
+http://www.oursworld.net/ingilizce-ders/eski-sayilar/dergi-02/izbul-0035.htm
+http://www.ourtimes.ca/features/99specdel.html
+http://www.ourworldisnotforsale.org/regtrade/02.htm
+http://www.ourzion.com/history/zion1979.html
+http://www.ousa.org.nz/index2.php?option=content&do_pdf=1&id=230
+http://www.ousu.org/main/advice/livingout/legalstandards
+http://www.ousu.org/main/advice/livingout/legalstandards?accessibility=1
+http://www.ousu.org/main/campaigns/ethics/purchasing/morocco
+http://www.ousu.org/main/clubsocs/society/additionalinfo
+http://www.ousu.org/main/clubsocs/society/additionalinfo?accessibility=1
+http://www.ousu.org/main/graduates/meetings/pgaagendas/pgaagendaht05
+http://www.ousu.org/main/services/ousulive
+http://www.ousu.org/main/services/ousulive?accessibility=1
+http://www.ousu.org/main/yourunion/council/councilagendas?accessibility=1
+http://www.outdoorcanada.ca/special/barilko4.shtml
+http://www.outdoorclub.org/Hypothermia.html
+http://www.outdoored.com/anm/templates/?a=1684&z=17
+http://www.outdoorgear.co.uk/rswebsite/terms.htm
+http://www.outdoorjapan.com/columns/japanlinks-1.html
+http://www.outdoorlife.com/outdoor/gear/gunvault/article/0,19912,604357,00.html
+http://www.outdoorplaces.com/Features/Paddle/pickcanoe/newcanoe5.htm
+http://www.outdoors.net/site/features/feature.aspx+Forum+Firearms+ArticleCode+978+V+N+SearchTerm+
+http://www.outdoorsafety.org/articles/Article.asp?ArticleID=106
+http://www.outdoorsmagic.com/news/article/mps/UAN/3075/v/1/sp/
+http://www.outdoorsoc.co.uk/merchandise.asp
+http://www.outdoorstaff.co.uk/training/mltb/wgl.html
+http://www.outdoortoysdirect.co.uk/Table-Top-Games/Club-Tornament
+http://www.outerlife.com/2004/07/reading_is_doom.html
+http://www.outlawsonline.com/education.htm
+http://www.outlook.co.za/info/faq.htm
+http://www.outlookindia.com/submain1.asp?mode=25&refer=30890&refa=&dissum=&rcount=47
+http://www.outofbounds.com/html/oct_98_updates.html
+http://www.outofservice.com/music-personality-test/faq/
+http://www.outoftheboxlawyering.com/archives/2004_01.html
+http://www.outpost.com/product/3207761
+http://www.outrate.net/outrateallovertheguy.html
+http://www.outreachtraining.com/trainingteam.html
+http://www.outsider.co-uk.com/welcome/toolkit.htm
+http://www.outsideshore.com/school/art/oil.htm
+http://www.outsidethebeltway.com/archives/005782.html
+http://www.outsidethebeltway.com/archives/005959.html
+http://www.outsidethebeltway.com/archives/9149
+http://www.outsmartmagazine.com/issue/i02-03/authorauthor.php
+http://www.outsmartmagazine.com/issue/i03-04/a-6-Television_2.php
+http://www.outsports.com/history/billtilden.htm
+http://www.outtacontext.com/life/archive/000166.shtml
+http://www.outtacontext.com/life/archive/000259.shtml
+http://www.outwardbound.co.nz/36.0.html
+http://www.outwardbound.co.nz/72.0.html
+http://www.outwardboundwilderness.org/course/canada_hut-to-hut_xc_skiing_254.html
+http://www.outwestnewspaper.com/goldrush.html
+http://www.ouwb.ohiou.edu/mlea/demo/c_intro.htm
+http://www.ovarian-cysts-pcos.com/pcos-book-res.html
+http://www.ovarian-news.org/neuropathy.html
+http://www.overberginfo.com/
+http://www.overclockers.com/articles1179/
+http://www.overclockers.com/tips402/
+http://www.overflite.com/science.html
+http://www.overheardinnewyork.com/
+http://www.overlakehospital.com/AboutUs.htm
+http://www.overlawyered.com/
+http://www.overlawyered.com/archives/00mar1.html
+http://www.overlawyered.com/archives/00mar2.html
+http://www.overlawyered.com/archives/02/apr1.html
+http://www.overlawyered.com/archives/2003_09.html
+http://www.overlawyered.com/archives/99july1.html
+http://www.overlawyered.com/topics/responsib.html
+http://www.overpopulation.com/discussion/fullthread$msgnum=393
+http://www.overpopulation.org/education.html
+http://www.overpopulation.org/older.html
+http://www.overpopulation.org/solutions.html
+http://www.overpopulation.org/whyPopMatters.html
+http://www.overseas-emigration.co.uk/nzguide/health.php
+http://www.oversimple.net/2005/01/big-city-river-trouble.html
+http://www.ovid.com/site/catalog/Journal/1690.jsp?top=2&mid=3&bottom=7&subsection=12
+http://www.ovid.com/site/products/ovidguide/cctrdb.htm
+http://www.ovlov.co.nz/yamaha.htm
+http://www.ovpr.uga.edu/qau/advisor2.html
+http://www.ovpr.uga.edu/researchnews/92sp/wings.html
+http://www.ovpr.uga.edu/researchnews/fall2003/printslime.htm
+http://www.ovrlnd.com/MainPage/MissionStatement.html
+http://www.ovum.com/go/content/c,51266
+http://www.owa.gov.on.ca/faq.html
+http://www.owdna.org/ermillbonner.htm
+http://www.owhn.on.ca/faq.htm
+http://www.owl-online.org/content/library/field.htm
+http://www.owlpages.com/species/bubo/bubo/Default.htm
+http://www.owlsdottir.com/dreams/walking_ones_dreams.htm
+http://www.owlsoup.com/3LBE/3LBE11/3LBE11story4.html
+http://www.owneroperatorjob.com/
+http://www.oww.be/pages/page.php?ID=17
+http://www.owzatgames.com/page10.html
+http://www.ox.ac.uk/gazette/1996-7/supps/1_4426.htm
+http://www.ox.ac.uk/gazette/1996-7/weekly/101096/ads.htm
+http://www.ox.ac.uk/gazette/1997-8/weekly/201197/ads.htm
+http://www.ox.ac.uk/gazette/1998-9/weekly/150799/notc.htm
+http://www.ox.ac.uk/gazette/1998-9/weekly/221098/ads.htm
+http://www.ox.ac.uk/gazette/2001-2/weekly/090502/notc.htm
+http://www.ox.ac.uk/it/strategy/2000/it011.htm
+http://www.ox.ac.uk/publicrelations/pubs/annualreview/ar00/12.shtml
+http://www.ox.ac.uk/publicrelations/pubs/annualreview/ar98/manage.shtml
+http://www.ox.ac.uk/webhelp/guides.shtml
+http://www.ox.compsoc.net/info/history.shtml
+http://www.oxan.com/about/news/2003-09-17USPower.asp
+http://www.oxfam.ca/news/AsianEarthQuake_Floods/Thanks2.htm
+http://www.oxfam.org.hk/english/cyberschool/teachers/
+http://www.oxfam.org.hk/english/cyberschool/world/02.htm
+http://www.oxfam.org.uk/coolplanet/beyondwave/dayfive_am.htm
+http://www.oxfam.org.uk/coolplanet/kidsweb/oxfam/campaigns/mph_aid.htm
+http://www.oxfam.org.uk/coolplanet/teachers/devrights/devbackgr.htm
+http://www.oxfam.org.uk/jobs/meet_our_staff/diary_jasmine.htm
+http://www.oxfam.org.uk/press/releases/wto_africa_160204.htm
+http://www.oxfam.org.uk/what_we_do/issues/debt_aid/mdgs_price.htm
+http://www.oxfam.org.uk/what_we_do/issues/democracy_rights/bp51_prsp.htm
+http://www.oxfam.org.uk/what_we_do/issues/education/gce_zambia_imf.htm
+http://www.oxfam.org.uk/what_we_do/issues/trade/bp76_modalities_and_dumping.htm
+http://www.oxfam.org.uk/what_we_do/issues/trade/trading_rights.htm
+http://www.oxfam.org.uk/what_we_do/where_we_work/indonesia/programme.htm
+http://www.oxfam.org.uk/what_you_can_do/campaign/election/questions_libdem.htm
+http://www.oxfam.org/eng/event_wsf04_diaries.htm
+http://www.oxfamgb.org/eastasia/indonesia/indoprog.html
+http://www.oxford-access.org.uk/proyear9.php
+http://www.oxford-chiltern-bus-page.co.uk/020303.htm
+http://www.oxford-chiltern-bus-page.co.uk/130604.htm
+http://www.oxford-chiltern-bus-page.co.uk/250104.htm
+http://www.oxford-knowledge.co.uk/information/training/online_tutorial/internet_vs.htm
+http://www.oxford.oxon.sch.uk/teaching%20staff.htm
+http://www.oxfordamericanmag.com/lost_issue/article2.htm
+http://www.oxfordamericanmag.com/musicissue.htm
+http://www.oxfordarch.co.uk/pages/industrialrev.htm
+http://www.oxfordballoon.com/books.htm
+http://www.oxfordbands.com/
+http://www.oxfordbands.com/index.php
+http://www.oxfordbands.com/modules.php?name=Weblog&file=comments&wbid=87
+http://www.oxfordbands.com/modules.php?name=Weblog&spage=60&limit=10
+http://www.oxfordbiomedica.co.uk/news/2000-ob-19.htm
+http://www.oxfordbiomedica.co.uk/news/2002-ob-10.htm
+http://www.oxfordbiomedica.co.uk/news2004.htm
+http://www.oxfordcroquet.com/clubs/saca/index.asp
+http://www.oxfordcroquet.com/diplomatic/usa/index.asp
+http://www.oxfordcycleworkshop.org.uk/advice/cycle_security.php
+http://www.oxforddivecentre.com/chambers.html
+http://www.oxfordenergy.org/comment.php?0003
+http://www.oxfordenergy.org/comment.php?0010
+http://www.oxfordenergy.org/comment.php?0103
+http://www.oxfordenergy.org/comment.php?0105
+http://www.oxfordenergy.org/comment.php?0403
+http://www.oxfordenergy.org/comment.php?0502
+http://www.oxfordenergy.org/comment.php?9902
+http://www.oxfordenergy.org/comment.php?9908
+http://www.oxfordenergy.org/comment_prn.php?0303
+http://www.oxfordenergy.org/news-archive.shtml
+http://www.oxfordenergy.org/petrol.shtml
+http://www.oxfordgossip.co.uk/new/archive/index.php/t-268.html
+http://www.oxfordgrammarschool.com/Annualceleb.htm
+http://www.oxfordgrammarschool.com/currentprg1.htm
+http://www.oxfordhouse.org/edmonds.html
+http://www.oxfordleadership.com/ExecutiveDevp/stratFocus.asp?cbomenu=34
+http://www.oxfordms.net/faq_files/faqindex.htm
+http://www.oxfordmuse.com/museideas/museaims.htm
+http://www.oxfordmuse.com/selfportrait/portrait15.htm
+http://www.oxfordmuse.com/selfportrait/portrait32.htm
+http://www.oxfordmuse.com/selfportrait/portrait41.htm
+http://www.oxfordmuse.com/selfportrait/portrait42.htm
+http://www.oxfordmuse.com/selfportrait/portrait48.htm
+http://www.oxfordmuse.com/selfportrait/portrait5.htm
+http://www.oxfordmuse.com/selfportrait/portrait55.htm
+http://www.oxfordplains.com/a_classifieds_072604.htm
+http://www.oxfordplayhouse.com/burtontaylor/udo/
+http://www.oxfordresearchgroup.org.uk/publications/CDRs/CDR25introduction.htm
+http://www.oxfordscholarship.com/oso/public/content/religion/0195082591/toc.html
+http://www.oxfordscholarship.com/oso/public/content/religion/019513138X/toc.html
+http://www.oxfordstars.com/jokes.html
+http://www.oxfordstudent.com/1999-10-28/ox2
+http://www.oxfordstudent.com/1999-11-18/features/2
+http://www.oxfordstudent.com/2001-10-11/features/1
+http://www.oxfordstudent.com/2002-01-10/news/4
+http://www.oxfordstudent.com/2002-11-14/features/3
+http://www.oxfordstudent.com/2002-11-21/features/1
+http://www.oxfordstudent.com/tt2005wk6/News/elite_dry_cleaners_under_fire_again_as_students_claim_intimidation
+http://www.oxfordstudent.com/tt2005wk6/news/elite_dry_cleaners_under_fire_again_as_students_claim_intimidation
+http://www.oxis.com/profiling/interview.shtml
+http://www.oxnet.org/phpBB2/viewtopic.php?t=509&sid=
+http://www.oxss.co.uk/christmas-coursedetails.html
+http://www.oxss.co.uk/easter-coursedetails.html
+http://www.oxss.co.uk/summer-coursedetails.html
+http://www.oyate.org/books-to-avoid/myHeart.html
+http://www.oycf.org/Perspectives/5_043000/beyond_calligraphy_and_philanthr.htm
+http://www.oysterboyreview.com/16/fiction/RubackM-Road.html
+http://www.oysterboyreview.com/archived/09/ebersole.html
+http://www.oz-artfocus.com/pages/Gsmith/part2.htm
+http://www.oz.net/~cyndihow/pensions.htm
+http://www.oz.net/~greglove/longhair/longhair.htm
+http://www.ozdoba.net/swisswatch/ttouch.html
+http://www.ozemedia.com/online-business/online-business-1586.htm
+http://www.ozemedia.com/online-business/online-business-362.htm
+http://www.ozemedia.com/online-business/online-business-710.htm
+http://www.ozgrid.com/News/LookUpMatchIndexVBAFind.htm
+http://www.ozgrid.com/forum/showthread.php?t=29244
+http://www.ozlanka.com/sports/mugabe.htm
+http://www.oznet.ksu.edu/Johnson/Specials_TV_Shows/Christmas_Tree_Safety/Tips_for_Christmas_Tree_Disposal.htm
+http://www.oznet.ksu.edu/hfrr/hnewslet/2001/ksht0112.htm
+http://www.oznet.ksu.edu/humannutrition/spotlight/JunJul04.htm
+http://www.ozweb.biz/home_websteps.html
+http://www.ozzie.net/blog/stories/2002/08/04/why.html
+http://www.ozzu.com/ftopic26131.html
+http://www.ozzu.com/ftopic27193.html
+http://www.ozzu.com/ftopic33589-30.html
+http://www.ozzu.com/ftopic38850.html
+http://www.ozzu.com/ftopic38872.html
+http://www.p-e-p.org/target.htm
+http://www.p2pays.org/ref/03/02233.htm
+http://www.p2pays.org/ref/03/02453/domestic.htm
+http://www.p2pays.org/ref/04/03616.htm
+http://www.p2punited.org/modules.php?op=modload&name=FAQ&file=index&myfaq=yes&id_cat=3
+http://www.p7a77.net/dennys/viewer/view-nc.html
+http://www.pa-roots.org/~memorialday/tribute.html
+http://www.pac-10.org/compliance/legis/99legtrack.html
+http://www.pac-manager.com/about.htm
+http://www.pac-nor.com/pricelist/
+http://www.pacdelaware.com/publications/corporate/indemnification_agreement.html
+http://www.pacelearning.com/library/lull.html
+http://www.pacepros.com/CENewsletter_html/cenewsletter_010915.html
+http://www.pacfuel.com/action1.htm
+http://www.pacgolf.com/phoenix.htm
+http://www.pacific.edu/marketing/media-relations.asp
+http://www.pacificartleague.org/
+http://www.pacificbluesapphire.com/cut.html
+http://www.pacificcc.co.uk/display-items.asp?intTypeID=1&intItemID=30
+http://www.pacificcc.co.uk/display-items.asp?intTypeID=1&intItemID=312
+http://www.pacificcouncil.org/public/Events/2004Events.asp
+http://www.pacificdesigncenter.com/eventsites.html
+http://www.pacificenvironment.org/actionalerts/okinawa.htm
+http://www.pacificenvironment.org/articles/Sakhalinecology.htm
+http://www.pacificnet.net/~johnr/cgi/aesop1.cgi?hca&a71
+http://www.pacificnet.net/~mandel/Science.html
+http://www.pacificnet.net/~mandel/TheArts.html
+http://www.pacificresearch.org/press/com/2002/sfe_02-03-17.html
+http://www.pacificsportsllc.com/CatalinaTriathlon/athlete9.htm
+http://www.pacificviews.org/weblog/archives/000714.html
+http://www.pacificvillage.org/villagevoices/tibetchinaopen05/archives/000611.html
+http://www.pacificwhale.org/childrens/fsgreensea.html
+http://www.pacificworlds.com/palau/land/winds.cfm
+http://www.pacifier.com/~graphcom/gr00005.htm
+http://www.pack75.net/newscout.htm
+http://www.packagingtoday.co.uk/story.asp?storyCode=8804
+http://www.packard.org/index.cgi?page=news&aid=0028&year=2002
+http://www.packer34.freeserve.co.uk/1939v1951.htm
+http://www.packersproshop.com/page/shipping_info/20050616142354/1118949842/
+http://www.packessentials.com/boxes.asp
+http://www.packet.cc/files/multi-net-inter-comm.html
+http://www.packing.org/news/article.jsp/1480
+http://www.packing.org/news/article.jsp/2446
+http://www.packing.org/news/article.jsp/3750
+http://www.packing.org/news/article.jsp/4021/
+http://www.packing.org/news/article.jsp/4181
+http://www.packing.org/news/article.jsp/4216
+http://www.packing.org/news/article.jsp/4438
+http://www.packing.org/news/article.jsp/4457
+http://www.packing.org/news/article.jsp/4770
+http://www.packing.org/news/article.jsp/4777
+http://www.packing.org/news/article.jsp/4777/
+http://www.packing.org/news/article.jsp/5273
+http://www.packing.org/news/article.jsp/6166
+http://www.packing.org/news/article.jsp/7598
+http://www.packing.org/news/article.jsp/7677
+http://www.packing.org/news/article.jsp/8516
+http://www.packing.org/news/article.jsp/9640
+http://www.packing.org/news/article.jsp/9640/
+http://www.packing.org/news/article.jsp/9897/
+http://www.packing.org/news/article.jsp/9907/
+http://www.packing.org/news/article.jsp/9967/
+http://www.packing.org/state/index.jsp/arizona
+http://www.packing.org/state/index.jsp/arizona/
+http://www.packing.org/state/index.jsp/kansas/
+http://www.packing.org/state/index.jsp/tennessee/
+http://www.packing.org/state/index.jsp/utah/
+http://www.packing.org/talk/thread.jsp/34458/
+http://www.packing.org/talk/thread.jsp/34467/
+http://www.packing.org/talk/thread.jsp/35381/
+http://www.packing.org/talk/thread.jsp/35420/
+http://www.packworld.com/articles/Departments/18828.html?ppr_key=02.2005&sky_key=02.2005&term=02.2005
+http://www.pacode.com/secure/data/022/chapter16/chap16toc.html
+http://www.pacode.com/secure/data/210/chapter9/s902.html
+http://www.paconsulting.com/insights/managing_complex_projects/
+http://www.paconsulting.com/news/by_pa/2002/by_pa_200205130.htm
+http://www.pacsky.org/resources/publicity/pressrelease.html
+http://www.pactv.org/rules.htm
+http://www.pactworld.org/about/staff_profiles.htm
+http://www.paddydoyle.com/historyofneglect.html
+http://www.paddyk.com/crop_tops.htm
+http://www.padfield.com/contents.html
+http://www.padraic-king.com/residential.htm
+http://www.paetzel.info/histgerm.htm
+http://www.pag.com.au/articles/6515.html
+http://www.pagameandfish.com/pa_aa114304a/
+http://www.pagameandfish.com/pa_aa114404a/
+http://www.pagat.com/allfours/schmier.html
+http://www.pagat.com/euchre/bideuch.html
+http://www.pagat.com/invented/duel.html
+http://www.pagat.com/vying/mus.html
+http://www.pagb.co.uk/media/downloads/doc/
+http://www.page-net.com/swansea.localhistory/llansamlet/pages/miningtrail.html
+http://www.pagebypagebooks.com/Frances_Hodgson_Burnett/A_Lady_of_Quality/Dealing_with_that_which_was_done_in_the_Panelled_Parlour_p3.html
+http://www.pages.drexel.edu/~menapack/info673/cash_for_college.htm
+http://www.pages.unibe.ch/jobs/postdoc.html
+http://www.pagespersonalcleaning.net/cleaningarticles.htm
+http://www.pagodapr.co.uk/webpages/media_rela.htm
+http://www.pagoo.com/services/tos_Pagoo.html
+http://www.pagosa.com/
+http://www.paho.org/English/DPI/Number12_article2_3.htm
+http://www.paho.org/English/DPI/Number14_article4_5.htm
+http://www.pahomeschoolers.com/newsletter/issue75b.htm
+http://www.pahomeschoolers.com/storybill/six.htm
+http://www.paidcontent.org/pc/arch/2003_11_03.shtml
+http://www.paidresponse.com/faq.html
+http://www.painandthelaw.org/aslme_content/24-4c/24.4c.html
+http://www.painconcern.org.uk/pages/page22.php
+http://www.painfulpleasures.com/xcart/distributor_catalog/Logo_Picture_Rings_Logo_TongueStraight_Barbells-p-1-c-97.html
+http://www.painfulpleasures.com/xcart/distributor_catalog/Straight_Barbells-p-2-c-13.html
+http://www.painfulpleasures.com/xcart/distributor_catalog/Straight_Barbells_Picture_Logo_Straight_Barbells-p-1-c-63.html
+http://www.painfulpleasures.com/xcart/wholesaler_catalog/Logo_Picture_Rings_Logo_TongueStraight_Barbells-p-1-c-97.html
+http://www.painintheenglish.com/
+http://www.painonline.org/guessing.htm
+http://www.painpoints.com/patient.htm
+http://www.painsfireworks.co.uk/company3.htm
+http://www.paintedchurch.org/wambo.htm
+http://www.paintedmountaingolf.com/
+http://www.paintedperfectly.com/article5730.html
+http://www.painterskeys.com/clickbacks/ctherapy.asp
+http://www.painterskeys.com/clickbacks/internetreview.htm
+http://www.painterskeys.com/getquotes.asp?fname=cf&ID=106
+http://www.painting-frame.com/
+http://www.pair-of-dice.com/reviews.html
+http://www.pair.com/support/knowledge_base/about_your_account/web_stats_webalizer.html
+http://www.paisley.ac.uk/courses/ug-courseinfo.asp?courseid=325
+http://www.paisley.ac.uk/courses/ug-courseinfo.asp?courseid=374
+http://www.paisley.ac.uk/schoolleavers/ug-courseinfo.asp?courseid=325
+http://www.paisley.ac.uk/schoolleavers/ug-courseinfo.asp?courseid=374
+http://www.paisleysky.net/foodnerd/
+http://www.pakistaneconomist.com/database1/cover/c2003-1.asp
+http://www.paktoday.com/faith.htm
+http://www.paktribune.com/news/index.php?id=66294
+http://www.pakwatan.com/main/article_detail.php3?t1=5339
+http://www.palace-eagles.com/history.html
+http://www.palace.net.au/serenades/main.htm
+http://www.palaceavenue-methodist.org.uk/links.htm
+http://www.paladin.demon.co.uk/oxphab/old_programme98.html
+http://www.palaestra.com/featurestory.html
+http://www.palaindians.com/news/news_000507_sdut.htm
+http://www.paleodirect.com/
+http://www.palestine-info.co.uk/extra/demands.htm
+http://www.palestine-un.org/mission/attempt1.html
+http://www.palestine-un.org/peace/c_a.html
+http://www.palestinecampaign.org/archives.asp?xid=1245
+http://www.palestinecampaign.org/archives.asp?xid=181
+http://www.palestinecampaign.org/archives.asp?xid=507
+http://www.palestinehistory.com/prisoners.htm
+http://www.palestinemonitor.org/new_web/terrorism_israeli_palestinian_relations.htm
+http://www.palgrave.com/business/gardiner/contents/chapter6/References.htm
+http://www.palindromelist.com/longest.htm
+http://www.palisade-europe.com/html/testimonials.html
+http://www.palmbeachclassifieds.com/employment/jobs/main/jobs_background_checks_main.html
+http://www.palmbeachpost.com/blogs/content/shared-blogs/palmbeach/editorial/entries/2005/06/elections_gopst.html
+http://www.palmbeachpost.com/business/content/business/epaper/2005/06/13/c1bz_downtownwpb_0613.html
+http://www.palmbeachpost.com/events/content/accent/epaper/2005/01/28/a1e_fair_vendors_0128.html
+http://www.palmbeachpost.com/health/content/local_news/epaper/2005/06/19/m1a_stemcell_0619.html
+http://www.palmbeachpost.com/news/content/news/special_reports/scripps/c1a_lerner_0127.html
+http://www.palmbeachpost.com/search/content/news/special_reports/scripps/c1a_lerner_0127.html
+http://www.palmbeachpost.com/sports/content/sports/epaper/2005/06/30/a1c_PBP_STODA_0630.html
+http://www.palmbeachpost.com/storm/content/local_news/epaper/2004/09/29/s1a_HIRISE_0929.html
+http://www.palmbeachpost.com/storm/content/storm/getready/2005/survivors.html
+http://www.palmdigitalmedia.com/product/book/excerpt/10950
+http://www.palminfocenter.com/view_story.asp?ID=1995&curpage=3
+http://www.palminfocenter.com/view_story.asp?ID=7532
+http://www.palmsource.com/interests/sales/
+http://www.palo-alto.com/su/bp/shs.cfm?id=295
+http://www.paloaltoonline.com/short_story/short_story_17/child1.shtml
+http://www.paloaltoonline.com/short_story/short_story_19/adult1.shtml
+http://www.palomar.edu/library/libserve.htm
+http://www.palominas.com/gifts01.htm
+http://www.palsplus.org/wanaque/archive/reservoir.htm
+http://www.pamdixon.com/faregame.htm
+http://www.pamelaeaston.com/home-buyer_listings-modesto-turlock-california-homes.asp
+http://www.pamelaeaston.com/home-seller_presentation-modesto-turlock-california-real-estate.asp
+http://www.pamf.org/health/guidelines/coloncancer.html
+http://www.pamgolding.co.za/services/services_leisure.asp
+http://www.pamij.com/99_4_1_wren.html
+http://www.pamij.com/harrison.html
+http://www.pamij.com/preston1.html
+http://www.pampetty.com/cwlitbased.htm
+http://www.pamspaulding.com/weblog/
+http://www.pana.ie/idn/130104.html
+http://www.panachemag.com/Archive/5_04/Feature%20Story/Powerplay/Power_Play.asp
+http://www.panam.edu/orgs/MEChA/st_barbara.html
+http://www.panarchy.org/anonymous/democracy.1962.html
+http://www.panasonic.co.uk/technology/d-snap-explained.html
+http://www.panasonic.co.uk/technology/viera-explained.html
+http://www.panasonic.com/business/provideo/app_dv_24qaboutdv1.asp
+http://www.pandagon.net/
+http://www.pandagon.net/archives/2005/05/gays_cant_destr.html
+http://www.pandagon.net/archives/2005/05/how_to_date_in.html
+http://www.pandagon.net/archives/2005/06/okay_guys_quit.html
+http://www.pandagon.net/archives/2005/06/you_bet_your_bi.html
+http://www.pandaholiday.com/english/tianfu/festival4.htm
+http://www.pandasthumb.org/pt-archives/000996.html
+http://www.pandia.com/sw-2002/36-holiday.html
+http://www.pandorapressus.com/dsm/spring02/agriculture.htm
+http://www.pandorasbox.com/louisebrooks/biblio/girleveryport-reviews.html
+http://www.pangaeasystems.com/Solutions/PangaeaSolutions3.htm
+http://www.pangeaexpo.ru/english/hints.htm
+http://www.pangolin.com/userhelp/return_shipping.htm
+http://www.panicattacks.com.au/mindful/mind03.html
+http://www.panix.com/~dangelo/col28.html
+http://www.panix.com/~gabriel/membersguide/details.html
+http://www.panix.com/~wlinden/osm.html
+http://www.panmacmillan.com.au/johnmarsden/0406-bridgewater.htm
+http://www.pannett.com/gumbo.html
+http://www.panoscan.com/PanoPress/2005Press/Lemony/LemonySnicket.html
+http://www.panosinst.org/productions/island/ib07e.php
+http://www.pantagraph.com/features/feat1217.html
+http://www.pantesting.com/testFAQ.htm
+http://www.pantheater.com/Articles/RulesImprovPartI.htm
+http://www.pantheism.net/paul/
+http://www.panther.state.fl.us/handbook/threats/institutional.html
+http://www.panthers.com/multimedia/programming.jsp
+http://www.panzerworld.net/marketgarden.html
+http://www.pao.gov.ab.ca/health/flexible-work/jobshare/what-jobshare-can-do.htm
+http://www.papaink.org/gallery/home/artist/display/4.html
+http://www.papascott.de/archives/2003/06/19/a-positive-german-link-from-instapundit/
+http://www.papau.webz.cz/doors/doors-sun.htm
+http://www.paperhall.org/info/glossary.html
+http://www.papernapkin.net/blog/
+http://www.papernews.de/papernews7/htm/englisch/protectors.php
+http://www.paperpresentation.com/
+http://www.paperwhite.co.uk/english/paper_white/articles/internal_and_external_communications/every_touch
+http://www.papillonsartpalace.com/fightreting.htm
+http://www.papillonsartpalace.com/teauchers.htm
+http://www.papimi.gr/cancer.htm
+http://www.parable.com/parable/browse.asp?cid=3339&page=2
+http://www.parable.com/parable/item_0310247500.htm&ct=Chapter_Excerpt
+http://www.parable.com/parable/item_1578561272.htm
+http://www.paradigm-sys.com/cttart/sci-docs/ctt73-smpio.html
+http://www.paradigm-sys.com/cttart/sci-docs/ctt98-iasoc.html
+http://www.paradisepoker.com/real_money.html
+http://www.paralegaladvice.org.za/docs/chap05/03.html
+http://www.paralegaladvice.org.za/docs/chap08/19.html
+http://www.paramedic.org.uk/Members/Enigma/News_Item.2004-03-17.1044/view
+http://www.paramedic.org.uk/Members/Enigma/News_Item.2004-04-17.1949/view
+http://www.paramountartscenter.com/history/murals.html
+http://www.paramountzone.com/A24.htm
+http://www.paramountzone.com/mp3.htm
+http://www.paranormaldatabase.com/calendar/Pages/jul.php
+http://www.paranormalnews.com/article.asp?ArticleID=1068
+http://www.paranormalnews.com/dream.asp
+http://www.parapsych.org/pa_bylaws.html
+http://www.parapsych.org/pa_convention_abstracts_2002.html
+http://www.parapundit.com/archives/001865.html
+http://www.paraseek.com/
+http://www.parashift.com/c++-faq-lite/big-picture.html
+http://www.parasol.com/
+http://www.parasolemt.com.au/Manual/fractures.asp
+http://www.paratrooper.net/commo/rssfeed.aspx?id=9&Task=ForumRSS
+http://www.pardonmyenglish.com/
+http://www.parecon.org/writings/10lecs.htm
+http://www.parentalguide.com/Documents/Jews_Information_Desk/Forcast_of_jesus.htm
+http://www.parentalk.co.uk/atwork/budget.asp
+http://www.parentcompany.com/creation_essays/essay9.htm
+http://www.parentcompany.com/handy_dandy/hder5.htm
+http://www.parenthetical.org/
+http://www.parenthood.com/articles.html?article_id=2011
+http://www.parentingdecisions.com/pregnancy/
+http://www.parentingdecisions.com/story/2004_02_01_history.htm
+http://www.parentinghumor.com/categories/familyparenting/dancingmath.htm
+http://www.parentingme.com/selfhelp.htm
+http://www.parents-talk.com/expertsadvice/ea_pa_0020.html
+http://www.parents.com/articles/age/5752.jsp?page=2
+http://www.parentsassociation.com/college/failed_rite.html
+http://www.parentscare.org/news/NCLB%20Forum.htm
+http://www.parentscentre.gov.uk/choosingaschool/schoolchoiceyourrights/
+http://www.parentscentre.gov.uk/whatchildrenlearn/learningathomeoutsideschool/homework/
+http://www.parentscentre.org.nz/copy.asp?dir=mag&type=m&pubid=11526
+http://www.parentspress.com/ffproball.html
+http://www.parentssource.com/give.article.3.00.html
+http://www.parentstv.org/PTC/familyguide/main.asp
+http://www.parentstv.org/ptc/campaigns/sexinthecity/main.asp
+http://www.parentsunite.org/CFparentsunite/hot/nation.cfm
+http://www.parentsunited4dc.org/theblamegame.htm
+http://www.parentsurf.com/p/articles/mi_m0FCP/is_2_23/ai_78256204
+http://www.parentswithoutpartners.org/vaMyers.htm
+http://www.parentwatch.org/generalinfo-salesperson.html
+http://www.paris-anglo.com/dedent/dedent.php?request=guide/understand/francofilechronicles/64.php
+http://www.paris-anglo.com/sign_up/preview.php?issuesID=19
+http://www.paris-anglo.com/sign_up/preview.php?issuesID=96
+http://www.paris-ar.com/html/profile.html
+http://www.parispwn.net/nl_epwn/italy/italy_11_04.html
+http://www.park2parkla.com/040215/observatoryorch/observatoryorch.cfm
+http://www.parkbank.com/nbinfo.htm
+http://www.parkcitylibrary.org/parkcitylibrary-org/history_of_library.htm
+http://www.parkelectro.com/122304.html
+http://www.parker.com/ead/cm2.asp?cmid=6893
+http://www.parkerriver.org/pages/events_cal.htm
+http://www.parkes.soton.ac.uk/external.htm
+http://www.parkingpal.com/traffic_updates.html
+http://www.parkinson.org/site/pp.asp?c=9dJFJLPwB&b=71356
+http://www.parkinsons.org.nz/about_parkinsons.html
+http://www.parkinsonsinfo.com/about_parkinsons/otherways.html
+http://www.parknicollet.com/Cancer/Health-Care-Team.cfm
+http://www.parknicollet.com/Clinic/doctors/clinic_info/clinic_providers/clinic_providers.cfm?clinicid=19&specialtyid=35
+http://www.parknicollet.com/Methodist/Doctors/Find_a_doctor/provider_detail/provider_detail.cfm?ID=1395
+http://www.parknicollet.com/Methodist/Doctors/find_a_doctor/provider_detail/provider_detail.cfm?ID=1417
+http://www.parknicollet.com/Methodist/Doctors/find_a_doctor/provider_detail/provider_detail.cfm?ID=817
+http://www.parknicollet.com/foundation/cfl/donate_c.cfm
+http://www.parkplaceschoolspage.co.uk/album1_005.htm
+http://www.parks.wa.gov/public.asp
+http://www.parksassociates.com/research/reports/tocs/2004/digital_music.htm
+http://www.parkvillageauctions.co.za/profile.php
+http://www.parkweb.vic.gov.au/1process_content.cfm?main=14&page=6
+http://www.parkweb.vic.gov.au/1process_content.cfm?main=9&page=2
+http://www.parl.gc.ca/36/1/parlbus/chambus/senate/jour-e/097jr_1998-11-26-E.htm?Language=E&Parl=36&Ses=1
+http://www.parl.gc.ca/36/1/parlbus/chambus/senate/jour-e/108jr_1999-02-09-E.htm?Language=E&Parl=36&Ses=1
+http://www.parl.gc.ca/36/1/parlbus/chambus/senate/jour-e/118jr_1999-03-10-E.htm?Language=E&Parl=36&Ses=1
+http://www.parl.gc.ca/36/1/parlbus/chambus/senate/jour-e/118jr_1999-03-10-e.htm?Language=E&Parl=36&Ses=1
+http://www.parl.gc.ca/36/1/parlbus/chambus/senate/jour-e/126jr_1999-04-13-E.htm?Language=E&Parl=36&Ses=1
+http://www.parl.gc.ca/36/1/parlbus/chambus/senate/jour-e/126jr_1999-04-13-e.htm?Language=E&Parl=36&Ses=1
+http://www.parl.gc.ca/36/2/parlbus/chambus/house/debates/062_2000-03-03/han062_1145-e.htm
+http://www.parl.gc.ca/37/2/parlbus/chambus/senate/jour-e/032jr_2003-02-05-E.htm?Language=E&Parl=37&Ses=2
+http://www.parl.gc.ca/37/2/parlbus/commbus/senate/com-e/soci-e/rep-e/repoct02vol6-e.htm
+http://www.parl.gc.ca/38/1/parlbus/chambus/house/debates/008_2004-10-14/han008_1530-E.htm
+http://www.parl.gc.ca/38/1/parlbus/chambus/house/debates/008_2004-10-14/han008_1530-e.htm
+http://www.parl.gc.ca/38/1/parlbus/chambus/house/debates/022_2004-11-04/han022_1025-e.htm
+http://www.parl.gc.ca/InfoComDoc/36/2/ENVI/Studies/Reports/envi01/11-ch4-e.html
+http://www.parl.gc.ca/InfoComDoc/36/2/INDU/Studies/Reports/indu01/15-ch8-e.html
+http://www.parl.gc.ca/bills/government/C-32/C-32_3/12472b-5E.html
+http://www.parl.gc.ca/committee/CommitteePublication.aspx?SourceId=37898
+http://www.parl.gc.ca/common/Bills_ls.asp?Parl=37&Ses=1&ls=C16
+http://www.parl.gc.ca/common/Bills_ls.asp?Parl=37&Ses=1&ls=S13
+http://www.parl.gc.ca/common/Bills_ls.asp?Parl=37&Ses=1&ls=S34
+http://www.parl.gc.ca/information/InterParl/Associations/Commonwealth/Constitution-e1.htm
+http://www.parl.gc.ca/information/InterParl/Associations/OTAN/Nov2002/NATO48th-E.HTM
+http://www.parl.gc.ca/information/about/people/House/Speaker/role_duties/index_e.html
+http://www.parl.gc.ca/information/about/people/House/Speaker/speeches/speeches_4_9_e.html
+http://www.parl.gc.ca/information/about/people/house/mpsCom.asp?lang=E&CM=M
+http://www.parl.gc.ca/information/about/process/senate/rules-e/senrules_05-e.htm
+http://www.parl.gc.ca/information/library/PRBpubs/bp194-e.htm
+http://www.parliament.go.ug/hansard/hans_view_date.jsp?dateYYYY=1995&dateMM=07&dateDD=11
+http://www.parliament.gov.ws/popup_gen.cfm?sto=29
+http://www.parliament.nsw.gov.au/prod/parlment/hansart.nsf/0/d0ae245ca2738df5ca256d360031b23f?OpenDocument
+http://www.parliament.nsw.gov.au/prod/parlment/hansart.nsf/V3Key/LA19921013024
+http://www.parliament.nsw.gov.au/prod/parlment/hansart.nsf/V3Key/LA20000404019
+http://www.parliament.nsw.gov.au/prod/parlment/hansart.nsf/V3Key/LA20001124021
+http://www.parliament.nsw.gov.au/prod/parlment/hansart.nsf/V3Key/LA20010921025
+http://www.parliament.nsw.gov.au/prod/parlment/hansart.nsf/V3Key/LA20020510021
+http://www.parliament.nsw.gov.au/prod/parlment/hansart.nsf/V3Key/LA20050503019
+http://www.parliament.nsw.gov.au/prod/parlment/hansart.nsf/V3Key/LC20030916027
+http://www.parliament.nsw.gov.au/prod/parlment/publications.nsf/0/06606E8109509100CA256ECF000B1907
+http://www.parliament.sa.gov.au/about/diarymemberofhoa.shtm
+http://www.parliament.tas.gov.au/lc/finch/qa/24nov2004.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm/cmtlgr.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200001/cmselect/cmdfence/29/2913.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200102/cmselect/cmodpm/1206/1206m34.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200203/cmbills/006/en/03006x--.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200304/cmselect/cmdfence/390/39009.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200304/cmselect/cmdfence/572/4052507.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200405/cmhansrd/cm050407/text/50407w49.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200405/cmselect/cmodpm/61/4120703.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200506/cmhansrd/cm050518/debtext/50518-10.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200506/cmhansrd/cm050526/wmstext/50526m01.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200506/cmhansrd/cm050608/debtext/50608-16.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200506/cmhansrd/cm050615/debtext/50615-01.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200506/cmhansrd/cm050615/debtext/50615-24.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200506/cmhansrd/cm050615/debtext/50615-30.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200506/cmhansrd/cm050620/text/50620w22.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200506/cmhansrd/cm050622/debtext/50622-04.htm
+http://www.parliament.the-stationery-office.co.uk/pa/cm200506/cmhansrd/cm050622/debtext/50622-05.htm
+http://www.parliament.the-stationery-office.co.uk/pa/ld199697/ldhansrd/pdvn/lds05/text/50623-10.htm
+http://www.parliament.uk/commons/selcom78/a&wpnt2.htm
+http://www.parliament.uk/commons/selcom78/t&ipnt16.htm
+http://www.parliament.uk/commons/selcom90/defpnt22.htm
+http://www.parliament.uk/parliamentary_committees/environmental_audit_committee/eac_31_01_05_a.cfm
+http://www.parliament.uk/parliamentary_committees/public_administration_select_committee/pasc_19.cfm
+http://www.parliament.uk/parliamentary_committees/science_and_technology_committee/scitech180603a.cfm
+http://www.parliament.uk/parliamentary_committees/work_and_pensions_committee/wap_pn34.cfm
+http://www.parliament.uk/parliamentary_offices/post/pubs1996.cfm
+http://www.parliament.uk/useful/sp_iraq.cfm
+http://www.parliament.uk/works/newproc.cfm
+http://www.parliament.uk/works/pagovopp.cfm
+http://www.parliament.vic.gov.au/windowintime/views/showview.cfm?viewid=8
+http://www.parliament.wa.gov.au/web/webpages.nsf/WebPages/About+Bills
+http://www.parliamentofbangladesh.org/IPS_Committee_Conference/ips-14_panel1abdulhaque.htm
+http://www.parliamentofbangladesh.org/IPS_Newsletters/newsletter6_Dec00.htm
+http://www.parnasas.com/PopArena/Articles/wish.html
+http://www.parrotcode.org/faq/
+http://www.parrotparrot.com/articles/aa082200.htm
+http://www.parrotparrot.com/birdhealth/
+http://www.parrysound.com/
+http://www.parstimes.com/spaceimages/shahdad_quake.html
+http://www.partition-manager.com/home/personal/demo.htm
+http://www.partners.org/departments/teaching/C/homc3bloodtransf.htm
+http://www.partners.org/research/gme/houseofficermanuals/c/homc11interpsvcs.html
+http://www.partners.org/research/gme/houseofficermanuals/c/homc18rehab.html
+http://www.partners.org/research/gme/houseofficermanuals/c/homc3bloodtransf.html
+http://www.partnersandsimons.com/mind/news/articles/2004-07-17.asp
+http://www.partnershipcards.com/html/legal.html
+http://www.partnershipforlearning.org/article.asp?ArticleID=2142
+http://www.partnershipforlearning.org/emailarticle.asp?ArticleID=2142
+http://www.partsearch.com/press/06_28_2005.html
+http://www.partyamerica.com/about.html
+http://www.partygameideas.com/christmas-games.htm
+http://www.partygameideas.com/halloweengames.htm
+http://www.partyparties.co.uk/
+http://www.partyvibe.com/vbulletin/archive/index.php/t-2471.html
+http://www.parvez-video.com/insight/islam/is_islam_failure/index.asp
+http://www.parvez-video.com/sexual_relationships_crimes.asp
+http://www.pas-meeting.org/2005DC/Schedule/0517.htm
+http://www.pas.gov.on.ca/scripts/en/generalInfo.asp
+http://www.pasadenacal.com/rose_parade_bowl.html
+http://www.pasadenakids.com/nextSaturday.html
+http://www.pasadenaweekly.com/features/coverStory/coverstory.html
+http://www.pasco.com/experiments/biology/may_2003/home.html
+http://www.pasd.wednet.edu/school/hs/DatesTimeSch/Program%20of%20Studies/Prog%20Ind%20Trades%20Voc.htm
+http://www.pasd.wednet.edu/school/sms/admin/handbook.html
+http://www.paseniorcenters.org/information/details.htm
+http://www.pass.to/glossary/Default.htm
+http://www.passia.org/publications/dialogue_series/collaborators/saleh.html
+http://www.passingnotes.com/
+http://www.passingreflections.com/uweek.htm
+http://www.passiondiscs.co.uk/articles/cuban_generoso_jimenez_int01.htm
+http://www.passportintime.com/15-1/california.html
+http://www.passtheword.org/Jane-Lead/msgpeace.htm
+http://www.pastors.com/article.asp?ArtID=1728
+http://www.pata.org/patasite/index.php?id=873
+http://www.patagonia.com/enviro/grants_app.shtml
+http://www.patagonia.com/enviro/reports/a_dont_buy.shtml
+http://www.patchmanmusic.com/NyleSteinerHomepage.html
+http://www.patchworkprogression.com/index/entry/suddenly-simple/
+http://www.patchworx.org/Quilt/bios/ldspeaker.html
+http://www.pateam.org/list.html
+http://www.pateltonra.com/news%20Aug%2004.htm
+http://www.patent.gov.uk/about/consultations/afspost/annexh.htm
+http://www.patent.gov.uk/about/consultations/afspost/background.htm
+http://www.patent.gov.uk/about/ippd/issues/cii-meeting-hayward.htm
+http://www.patent.gov.uk/patent/reference/mediguidlines/surgery.htm
+http://www.patent.gov.uk/patent/sas/docdata.htm
+http://www.patent.gov.uk/tm/notices/rpwg/rpwg170603.htm
+http://www.patentalert.com/postingSample.food.jsp
+http://www.path.org/rfp.php?id=9
+http://www.pathfoundation.org/about/index.cfm
+http://www.pathguy.com/lectures/eye-path.htm
+http://www.pathguy.com/lectures/spleen.htm
+http://www.pathlights.com/Passion/Emmaus.htm
+http://www.pathlights.com/ce_encyclopedia/01-evol1.htm
+http://www.pathlights.com/ce_encyclopedia/10mut06.htm
+http://www.pathlights.com/ce_encyclopedia/18law05.htm
+http://www.pathlights.com/theselastdays/booklets/L26_addinfo.htm
+http://www.pathlights.com/theselastdays/tracts/tract_22j.htm
+http://www.pathnet.org/si.asp?id=430
+http://www.pathnet.org/si.asp?id=490
+http://www.pathologyinformatics.org/downloads/tutor.htm
+http://www.pathsoflearning.org/library/bridge.cfm
+http://www.pathways2promise.org/family/impact.htm
+http://www.patient.co.uk/find_me.asp
+http://www.patient.co.uk/showdoc/26740363/
+http://www.patientcenters.com/
+http://www.patientfirst.com/HealthNews/
+http://www.patientmedia.com/howto/socratic.htm
+http://www.patmcnees.com/work24.htm
+http://www.patrickcrusade.org/Alabama_News.html
+http://www.patricking.com/index.php/whois/entry/ask_cleo/
+http://www.patrickneate.com/page.asp?p=Road
+http://www.patrickswayze.net/alongkit1.htm
+http://www.patrickswayze.net/article2.htm
+http://www.patriot-paradox.com/archives/2003_10.php
+http://www.patriotblog.com/index.php?id=625
+http://www.patriotist.com/jaarch/ja20020408.htm
+http://www.patriotist.com/taxfacts.htm
+http://www.patriotnetwork.info/Not%20Intended.htm
+http://www.patriots.com/games/index.cfm?ac=completereportsdetail&pid=10149&pcid=41&special_section=na
+http://www.patriots.com/games/index.cfm?ac=gamereportdetail&pid=10149&pcid=41
+http://www.patriots.com/search/index.cfm?ac=searchdetail&pid=2777&pcid=41
+http://www.patrobertson.com/Speeches/IsraelLauder.asp
+http://www.pattinson.co.uk/Public/Modules/Buy/Land.aspx
+http://www.paulbrady.com/lyrics/libertytapes.asp
+http://www.paulfleischman.net/bio.htm
+http://www.paulieworld.com/blog/
+http://www.paulleydenonline.com/simonbio.html
+http://www.paulmccall.com/specevent.html
+http://www.paulmichaelglaser.org/gmtv_2004.html
+http://www.paulmichaelglaser.org/ukreunion_interview_1999.html
+http://www.paulpearsall.com/info/press/3.html
+http://www.paulszabo.com/quarterly_reports/summer_2002.htm
+http://www.pavedarts.ca/memberpolicyfulltext.php
+http://www.pavefrance.com/blog/
+http://www.pavilion.co.uk/williampennpri/page6.html
+http://www.pavingexpert.com/layflag1.htm
+http://www.pavingexpert.com/pic01.htm
+http://www.paw-rescue.org/PAW/PETTIPS/DogTip_HowtoPreventEscapes.php
+http://www.pawsonline.info/lookingafterkittens.htm
+http://www.paxchristi.org.uk/JustPeace/jp226.htm
+http://www.paxchristi.org.uk/PeaceSunday1.htm
+http://www.pay-equity.org/info-opposition.html
+http://www.payaway.co.uk/
+http://www.payload.com/content/directions.html
+http://www.paynoincometax.com/
+http://www.paypal.com/html/nyt-062900.html
+http://www.paypaldev.org/topic.asp?TOPIC_ID=9668
+http://www.paypaldev.org/topic.asp?TOPIC_ID=9972
+http://www.payperclicksearchengines.com/update-newsletter-034.shtml
+http://www.payroll.ucla.edu/qaptredb.htm
+http://www.pballes.com/views1.htm
+http://www.pbase.com/abbarich/coloured_alphabet
+http://www.pbbi.nl/English/Businesses-For-Sale.htm
+http://www.pbc.gov.cn/english/detail.asp?col=6500&ID=51
+http://www.pbc.gov.cn/english/detail.asp?col=6500&ID=70
+http://www.pbc.gov.cn/english/detail.asp?col=6500&id=70
+http://www.pbc.org/dp/ritchie/3997.html
+http://www.pbc.org/dp/ritchie/4001.html
+http://www.pbc.org/dp/stedman/adventure/0264.html
+http://www.pbc.org/dp/stedman/colossians/4022.html
+http://www.pbc.org/dp/stedman/leviticus/0515.html
+http://www.pbc.org/dp/stedman/misc/3137.html
+http://www.pbc.org/dp/stedman/parables/0371.html
+http://www.pbc.org/library/files/html/3997.html
+http://www.pbc.org/library/files/html/exo019.html
+http://www.pbcchicago.com/subhtml/proj_hist_display.asp?Agency_Code=PLA&pRecSet=25
+http://www.pbgc.gov/plans/grandunion/questions.htm
+http://www.pbgc.gov/plans/grandunion/status.htm
+http://www.pblutah.com/community.asp
+http://www.pbm.com/~lindahl/articles/onbards.html
+http://www.pbm.com/~lindahl/lod/vol1/hitwkidnap.html
+http://www.pbm.com/~lindahl/rgp.faq.html
+http://www.pbministries.org/Theology/Davis%20Huckabee/Sermons%20To%20Baptist%20Churches/ch17_independent_baptists.htm
+http://www.pbministries.org/Theology/J.%20B.%20Moody/My_Church/my_church06b.htm
+http://www.pbministries.org/books/gill/gills_archive.htm
+http://www.pbnco.com/eng/news/pbn_in_print/written_by_pbn/RGA_VNikonov.php
+http://www.pbp.com/editor.html
+http://www.pbrc.net/dogpages/west/arpf10458.html
+http://www.pbreview.com/products/reviews/3276/?expdesc=1
+http://www.pbs.org/aboutpbs/aboutpbs_support_ways.html
+http://www.pbs.org/americanrootsmusic/pbs_arm_oralh_flacojimenez.html
+http://www.pbs.org/americanrootsmusic/pbs_arm_oralh_jamescotton.html
+http://www.pbs.org/art21/artists/turrell/clip1.html
+http://www.pbs.org/art21/help.html
+http://www.pbs.org/auschwitz/about/
+http://www.pbs.org/campus/006_News/006-nov-03.html
+http://www.pbs.org/civilwar/classroom/lesson_appomattox.html
+http://www.pbs.org/cringely/pulpit/pulpit20000601.html
+http://www.pbs.org/cringely/pulpit/pulpit20010628.html
+http://www.pbs.org/cringely/pulpit/pulpit20020627.html
+http://www.pbs.org/cringely/pulpit/pulpit20040408.html
+http://www.pbs.org/cringely/pulpit/pulpit20040506.html
+http://www.pbs.org/cringely/pulpit/pulpit20040527.html
+http://www.pbs.org/cringely/pulpit/pulpit20040624.html
+http://www.pbs.org/cringely/pulpit/pulpit20050331.html
+http://www.pbs.org/cringely/pulpit/pulpit20050512.html
+http://www.pbs.org/cringely/pulpit/pulpit20050609.html
+http://www.pbs.org/edens/borneo/teachers_batty.html
+http://www.pbs.org/fmc/interviews/oneill.htm
+http://www.pbs.org/frontlineworld/stories/bhutan/interview.html
+http://www.pbs.org/hollywoodpresents/theoldsettler/prodroles/pr_costume.html
+http://www.pbs.org/hueypnewton/revolution/revolution_feedback.html
+http://www.pbs.org/independentlens/resources.html
+http://www.pbs.org/jazz/about/about_behind_the_scenes3.htm
+http://www.pbs.org/journeytoplanetearth/education/agriculture.html
+http://www.pbs.org/justone/jonscr2.htm
+http://www.pbs.org/kcet/senioryear/music/nobodyswatching_pop.html
+http://www.pbs.org/kcet/tavissmiley/archive/200505/20050527_transcript.html
+http://www.pbs.org/kcts/preciouschildren/diversity/read_parent.html
+http://www.pbs.org/klru/austin/interviews/mmcdonald_interview.html
+http://www.pbs.org/lewisandclark/living/idx_7.html
+http://www.pbs.org/lewisandclark/living/idx_9.html
+http://www.pbs.org/newshour/bb/africa/jan-june01/congo_1-23.html
+http://www.pbs.org/newshour/bb/africa/july-dec02/zimbabwe_8-21.html
+http://www.pbs.org/newshour/bb/asia/jan-june00/korea_6-14.html
+http://www.pbs.org/newshour/bb/asia/jan-june00/pakistan_3-24.html
+http://www.pbs.org/newshour/bb/asia/jan-june01/armitage_4-13.html
+http://www.pbs.org/newshour/bb/asia/jan-june02/korea_2-20.html
+http://www.pbs.org/newshour/bb/asia/jan-june04/friedman_03-09.html
+http://www.pbs.org/newshour/bb/asia/jan-june05/coping_1-3.html
+http://www.pbs.org/newshour/bb/asia/jan-june05/help_1-3.html
+http://www.pbs.org/newshour/bb/asia/jan-june05/medical_1-5.html
+http://www.pbs.org/newshour/bb/asia/jan-june05/nuclear_2-10.html
+http://www.pbs.org/newshour/bb/asia/july-dec02/nuclear_10-17.html
+http://www.pbs.org/newshour/bb/asia/july-dec04/aid_12-29.html
+http://www.pbs.org/newshour/bb/asia/july-dec97/imf_12-12.html
+http://www.pbs.org/newshour/bb/asia/july-dec99/wto_11-15.html
+http://www.pbs.org/newshour/bb/asia/vietnam/hmong_5-4.html
+http://www.pbs.org/newshour/bb/bosnia/jan-june98/holbrooke_5-19.html
+http://www.pbs.org/newshour/bb/budget/july-dec98/budget_10-21.html
+http://www.pbs.org/newshour/bb/business/jan-june02/housing_5-28.html
+http://www.pbs.org/newshour/bb/business/jan-june02/markets_6-26.html
+http://www.pbs.org/newshour/bb/business/jan-june02/trading_3-19.html
+http://www.pbs.org/newshour/bb/business/jan-june02/worldcom_5-01.html
+http://www.pbs.org/newshour/bb/business/jan-june05/labor_6-15.html
+http://www.pbs.org/newshour/bb/business/jan-june99/american_2-15.html
+http://www.pbs.org/newshour/bb/business/july-dec01/hp_9-4.html
+http://www.pbs.org/newshour/bb/business/july-dec01/microsoft_11-6.html
+http://www.pbs.org/newshour/bb/business/july-dec01/philanthropy_12-25.html
+http://www.pbs.org/newshour/bb/business/july-dec02/perks_09-16.html
+http://www.pbs.org/newshour/bb/business/july-dec02/slow_retail_12-31.html
+http://www.pbs.org/newshour/bb/business/july-dec99/overwork_9-6.html
+http://www.pbs.org/newshour/bb/business/july-dec99/russianbanks.html
+http://www.pbs.org/newshour/bb/business/wal-mart/challenging.html
+http://www.pbs.org/newshour/bb/canada/july-dec00/election_11-28.html
+http://www.pbs.org/newshour/bb/cyberspace/july-dec00/napster_7-27.html
+http://www.pbs.org/newshour/bb/economy/jan-june00/econ_4-5.html
+http://www.pbs.org/newshour/bb/economy/jan-june00/economists_1-13.html
+http://www.pbs.org/newshour/bb/economy/jan-june01/fed_1-3.html
+http://www.pbs.org/newshour/bb/economy/jan-june01/natgas_2-26.html
+http://www.pbs.org/newshour/bb/economy/jan-june01/summit_4-20.html
+http://www.pbs.org/newshour/bb/economy/jan-june03/fed_06-25.html
+http://www.pbs.org/newshour/bb/economy/jan-june03/plan_1-7.htm
+http://www.pbs.org/newshour/bb/economy/jan-june99/fed_6-30.html
+http://www.pbs.org/newshour/bb/economy/july-dec02/ports_10-03.html
+http://www.pbs.org/newshour/bb/economy/july-dec03/unemployment_07-29.html
+http://www.pbs.org/newshour/bb/economy/july-dec98/rates_10-15.html
+http://www.pbs.org/newshour/bb/economy/july-dec98/wolfensohn_10-8.html
+http://www.pbs.org/newshour/bb/economy/july-dec99/fed_8-24.html
+http://www.pbs.org/newshour/bb/education/jan-june02/costs_6-5.html
+http://www.pbs.org/newshour/bb/education/jan-june98/creation_4-21.html
+http://www.pbs.org/newshour/bb/education/jan-june98/vouchers_4-29.html
+http://www.pbs.org/newshour/bb/education/jan-june99/educators_4-22.html
+http://www.pbs.org/newshour/bb/education/jan-june99/retention_3-9.html
+http://www.pbs.org/newshour/bb/election/jan-june99/elections_6-24.html
+http://www.pbs.org/newshour/bb/election/july-dec99/hatch_12-17.html
+http://www.pbs.org/newshour/bb/election/october96/finance_reform_10-21.html
+http://www.pbs.org/newshour/bb/entertainment/jan-june02/culture_1-01.html
+http://www.pbs.org/newshour/bb/entertainment/july-dec00/rockwell_7-4.html
+http://www.pbs.org/newshour/bb/entertainment/july-dec97/streetcar_11-11.html
+http://www.pbs.org/newshour/bb/environment/jan-june00/wildfires_5-11.html
+http://www.pbs.org/newshour/bb/environment/jan-june01/bushenv_3-29.html
+http://www.pbs.org/newshour/bb/environment/jan-june01/envpol_1-3.html
+http://www.pbs.org/newshour/bb/environment/july-dec02/firefight_7-2.html
+http://www.pbs.org/newshour/bb/europe/europe.html
+http://www.pbs.org/newshour/bb/europe/jan-june02/allies_5-23.html
+http://www.pbs.org/newshour/bb/europe/jan-june02/fischer.html
+http://www.pbs.org/newshour/bb/europe/jan-june03/blair_1-31.html
+http://www.pbs.org/newshour/bb/europe/jan-june05/putin_2-24.html
+http://www.pbs.org/newshour/bb/europe/jan-june99/albright_5-7.html
+http://www.pbs.org/newshour/bb/europe/jan-june99/cook_5-21.html
+http://www.pbs.org/newshour/bb/europe/jan-june99/kosovo_2-22.html
+http://www.pbs.org/newshour/bb/europe/jan-june99/military_3-31.html
+http://www.pbs.org/newshour/bb/europe/july-dec02/germany_10-31.html
+http://www.pbs.org/newshour/bb/europe/july-dec98/hume_10-16.html
+http://www.pbs.org/newshour/bb/europe/july-dec98/mitchell_10-16.html
+http://www.pbs.org/newshour/bb/europe/july-dec99/berlin_9-6.html
+http://www.pbs.org/newshour/bb/europe/july-dec99/russianbanks.html
+http://www.pbs.org/newshour/bb/fedagencies/jan-june00/data_6-13a.html
+http://www.pbs.org/newshour/bb/fedagencies/jan-june00/richardson1_6-21.html
+http://www.pbs.org/newshour/bb/fedagencies/jan-june00/richardson_6-21.html
+http://www.pbs.org/newshour/bb/fedagencies/jan-june98/tax_4-15.html
+http://www.pbs.org/newshour/bb/fedagencies/july-dec02/intelligence_10-17.html
+http://www.pbs.org/newshour/bb/fedagencies/july-dec04/goss_9-15.html
+http://www.pbs.org/newshour/bb/fedagencies/july-dec04/ridge_11-30.html
+http://www.pbs.org/newshour/bb/health/jan-june00/genome_sharing_3-16.html
+http://www.pbs.org/newshour/bb/health/jan-june00/healthcare_1-20.html
+http://www.pbs.org/newshour/bb/health/jan-june01/cancer_01-01.html
+http://www.pbs.org/newshour/bb/health/jan-june01/diets_01-11.html
+http://www.pbs.org/newshour/bb/health/jan-june01/genome_2-12.html
+http://www.pbs.org/newshour/bb/health/jan-june02/eden_2-27.html
+http://www.pbs.org/newshour/bb/health/jan-june05/fish.html
+http://www.pbs.org/newshour/bb/health/jan-june05/flu_4-7.html
+http://www.pbs.org/newshour/bb/health/jan-june05/mintz.html
+http://www.pbs.org/newshour/bb/health/jan-june98/breast_4-16.html
+http://www.pbs.org/newshour/bb/health/july-dec01/anthrax_10-23.html
+http://www.pbs.org/newshour/bb/health/july-dec01/hopkins_7-20.html
+http://www.pbs.org/newshour/bb/health/july-dec01/patients_8-02.html
+http://www.pbs.org/newshour/bb/health/july-dec03/pill_12-17.html
+http://www.pbs.org/newshour/bb/health/july-dec04/celebrex_12-17.html
+http://www.pbs.org/newshour/bb/health/july-dec04/odorico.html
+http://www.pbs.org/newshour/bb/health/july-dec04/wounded2_7-16.html
+http://www.pbs.org/newshour/bb/health/july-dec99/hmos_9-30.html
+http://www.pbs.org/newshour/bb/health/washington_4-9.html
+http://www.pbs.org/newshour/bb/international/jan-june00/moore_1-20.html
+http://www.pbs.org/newshour/bb/international/jan-june00/seattle_1-18.html
+http://www.pbs.org/newshour/bb/international/jan-june02/axis_1-30.html
+http://www.pbs.org/newshour/bb/international/jan-june04/madrid_3-15.html
+http://www.pbs.org/newshour/bb/international/july-dec02/wright_11-28.html
+http://www.pbs.org/newshour/bb/international/july-dec03/wto_9-15.html
+http://www.pbs.org/newshour/bb/latin_america/jan-june00/elian_3-30.html
+http://www.pbs.org/newshour/bb/latin_america/jan-june04/haiti_2-25.html
+http://www.pbs.org/newshour/bb/latin_america/jan-june98/chile_5-26.html
+http://www.pbs.org/newshour/bb/latin_america/july-dec99/colombia_8-11.html
+http://www.pbs.org/newshour/bb/latin_america/july97/mexico_7-7.html
+http://www.pbs.org/newshour/bb/law/jan-june01/russia_3-23.html
+http://www.pbs.org/newshour/bb/law/jan-june03/patriot_2-24.html
+http://www.pbs.org/newshour/bb/law/jan-june05/patriot_6-16.html
+http://www.pbs.org/newshour/bb/law/jan-june99/crimestats_5-18.html
+http://www.pbs.org/newshour/bb/law/june97/mcveigh_6-2.html
+http://www.pbs.org/newshour/bb/media/jan-june00/political_ads_1-12.html
+http://www.pbs.org/newshour/bb/media/jan-june01/greenfield_04-25.html
+http://www.pbs.org/newshour/bb/media/jan-june01/news_3-9.html
+http://www.pbs.org/newshour/bb/media/jan-june03/lynch_06-10.html
+http://www.pbs.org/newshour/bb/media/jan-june04/adwars_06-02.html
+http://www.pbs.org/newshour/bb/media/jan-june04/clark_03-29.html
+http://www.pbs.org/newshour/bb/media/jan-june04/images_4-23.html
+http://www.pbs.org/newshour/bb/media/jan-june05/deepthroat_6-01.html
+http://www.pbs.org/newshour/bb/media/july-dec00/ad_wars_9-21.html
+http://www.pbs.org/newshour/bb/media/july-dec00/filipov_7-27.html
+http://www.pbs.org/newshour/bb/media/july-dec00/race_7-11.html
+http://www.pbs.org/newshour/bb/middle_east/jan-june03/armitage_3-25.html
+http://www.pbs.org/newshour/bb/middle_east/jan-june03/basra_5-14.html
+http://www.pbs.org/newshour/bb/middle_east/jan-june03/iraq_1-30.html
+http://www.pbs.org/newshour/bb/middle_east/jan-june03/iraqupdate_06-12.html
+http://www.pbs.org/newshour/bb/middle_east/jan-june03/military_3-24.html
+http://www.pbs.org/newshour/bb/middle_east/jan-june04/abuse_05-19.html
+http://www.pbs.org/newshour/bb/middle_east/jan-june04/iraq_04-30.html
+http://www.pbs.org/newshour/bb/middle_east/jan-june04/wmd_01-09.html
+http://www.pbs.org/newshour/bb/middle_east/jan-june05/negroponte_1-31.html
+http://www.pbs.org/newshour/bb/middle_east/july-dec00/schultz_10-23.html
+http://www.pbs.org/newshour/bb/middle_east/july-dec03/iraq_12-15.html
+http://www.pbs.org/newshour/bb/middle_east/july-dec03/iraq_8-20.html
+http://www.pbs.org/newshour/bb/middle_east/july-dec03/saddamsons_7-23.html
+http://www.pbs.org/newshour/bb/middle_east/july-dec04/najaf_8-12.html
+http://www.pbs.org/newshour/bb/middle_east/july-dec04/yellowcake_7-20.html
+http://www.pbs.org/newshour/bb/middle_east/july-dec98/albright_11-12.html
+http://www.pbs.org/newshour/bb/military/jan-june02/assault_3-8.html
+http://www.pbs.org/newshour/bb/military/jan-june02/myers_4-19.html
+http://www.pbs.org/newshour/bb/military/jan-june03/ground_03-17.html
+http://www.pbs.org/newshour/bb/military/jan-june03/military_03-28.html
+http://www.pbs.org/newshour/bb/military/jan-june04/army_1-13.html
+http://www.pbs.org/newshour/bb/military/jan-june05/gays_4-13.html
+http://www.pbs.org/newshour/bb/military/july-dec01/meyers_8-24.html
+http://www.pbs.org/newshour/bb/military/july-dec01/terror_response_9-12.html
+http://www.pbs.org/newshour/bb/military/july-dec04/reserves_7-21.html
+http://www.pbs.org/newshour/bb/military/july-dec99/race_military_11-29.html
+http://www.pbs.org/newshour/bb/political_wrap/jan-june05/sb_4-15.html
+http://www.pbs.org/newshour/bb/political_wrap/july-dec03/sy_07-04.html
+http://www.pbs.org/newshour/bb/politics/jan-june01/advise_01-15.html
+http://www.pbs.org/newshour/bb/politics/july-dec00/for-policy_10-12.html
+http://www.pbs.org/newshour/bb/politics/july-dec04/economics_7-26.html
+http://www.pbs.org/newshour/bb/race_relations/jan-june05/killen_6-20.html
+http://www.pbs.org/newshour/bb/race_relations/jan-june05/killen_6-21.html
+http://www.pbs.org/newshour/bb/race_relations/july-dec01/york_7-23.html
+http://www.pbs.org/newshour/bb/race_relations/july-dec03/march_08-28.html
+http://www.pbs.org/newshour/bb/religion/jan-june05/papacy_4-04.html
+http://www.pbs.org/newshour/bb/science/jan-june00/genome_2-29.html
+http://www.pbs.org/newshour/bb/science/jan-june04/cicadas_05-26-04.html
+http://www.pbs.org/newshour/bb/science/july-dec03/planet_07-11.html
+http://www.pbs.org/newshour/bb/science/july-dec04/everglades_11-25.html
+http://www.pbs.org/newshour/bb/social_security/jan-june05/ss_2-03.html
+http://www.pbs.org/newshour/bb/sports/jan-june05/steroids_3-17.html
+http://www.pbs.org/newshour/bb/sports/jan-june99/olympics_1-25.html
+http://www.pbs.org/newshour/bb/sports/jewell_10-28.html
+http://www.pbs.org/newshour/bb/terrorism/jan-june02/dragnet_4-3.html
+http://www.pbs.org/newshour/bb/terrorism/jan-june04/test_3-24.html
+http://www.pbs.org/newshour/bb/terrorism/jan-june04/wrong_04-13.html
+http://www.pbs.org/newshour/bb/terrorism/july-dec01/binladen_11-20.html
+http://www.pbs.org/newshour/bb/terrorism/july-dec01/military_10-19.html
+http://www.pbs.org/newshour/bb/terrorism/july-dec01/wolfowitz-9-14.html
+http://www.pbs.org/newshour/bb/terrorism/july-dec04/commission_7-22.html
+http://www.pbs.org/newshour/bb/transportation/jan-june02/skies_1-17.html
+http://www.pbs.org/newshour/bb/transportation/jan-june04/privacy_1-22.html
+http://www.pbs.org/newshour/bb/transportation/july-dec01/airports_07-10.html
+http://www.pbs.org/newshour/bb/transportation/july-dec02/air_8-15.html
+http://www.pbs.org/newshour/bb/transportation/july-dec99/crash_10-26.html
+http://www.pbs.org/newshour/bb/white_house/jan-june03/action_1-15.html
+http://www.pbs.org/newshour/bb/white_house/jan-june04/clinton_06-21.html
+http://www.pbs.org/newshour/bb/white_house/jan-june05/address_1-20.html
+http://www.pbs.org/newshour/bb/white_house/july-dec04/clinton_7-07.html
+http://www.pbs.org/newshour/bb/white_house/july-dec04/firstlady_10-25.html
+http://www.pbs.org/newshour/bb/white_house/july-dec04/review_12-30.html
+http://www.pbs.org/newshour/bb/white_house/july-dec99/barshefsky_11-18.html
+http://www.pbs.org/newshour/bb/youth/jan-june01/scoutwars_05-23.html
+http://www.pbs.org/newshour/bb/yugoslavia/jan-june01/milosevic_5-8.html
+http://www.pbs.org/newshour/character/essays/roosevelt.html
+http://www.pbs.org/newshour/extra/features/jan-june00/martialarts.html
+http://www.pbs.org/newshour/extra/features/jan-june00/vietnam.html
+http://www.pbs.org/newshour/extra/features/jan-june02/milosevic_2-6.html
+http://www.pbs.org/newshour/extra/features/jan-june03/ephedra.html
+http://www.pbs.org/newshour/extra/features/july-dec00/brokensystem.html
+http://www.pbs.org/newshour/extra/features/july-dec04/ukraine_11-24.html
+http://www.pbs.org/newshour/extra/teachers/lessonplans/economics/trade_long.html
+http://www.pbs.org/newshour/extra/teachers/lessonplans/health/clubdrugs/
+http://www.pbs.org/newshour/extra/teachers/lessonplans/media/clock_9-02.html
+http://www.pbs.org/newshour/extra/teachers/lessonplans/world/haiti_long_3-10.html
+http://www.pbs.org/newshour/forum/may02/us_design.html
+http://www.pbs.org/newshour/forum/women_workplace_4-24.html
+http://www.pbs.org/newshour/gergen/july-dec99/worldwar_women_10-11.html
+http://www.pbs.org/newshour/health/global/generics_wto.html
+http://www.pbs.org/newshour/health/prescriptions/bush_7-12.html
+http://www.pbs.org/newshour/impeachment/analysis/safrica_12-22.html
+http://www.pbs.org/newshour/shields&gigot/april99/sb_4-2.html
+http://www.pbs.org/newshour/shields&gigot/july99/sg_7-30.html
+http://www.pbs.org/newshour/shields&gigot/november99/sg_11-5.html
+http://www.pbs.org/newshour/shields&gigot/september98/sg_9-11.html
+http://www.pbs.org/newshour/vote2004/debates/
+http://www.pbs.org/niot/about/niot1.html
+http://www.pbs.org/now/classroom/diet.html
+http://www.pbs.org/now/politics/911widows.html
+http://www.pbs.org/now/politics/burma.html
+http://www.pbs.org/now/politics/gundebate.html
+http://www.pbs.org/now/politics/gundebate2.html
+http://www.pbs.org/now/printable/transcript_delta_print.html
+http://www.pbs.org/now/printable/transcript_henwood_print.html
+http://www.pbs.org/now/science/medicareqanda.html
+http://www.pbs.org/now/transcript/transcript_clearc.html
+http://www.pbs.org/now/transcript/transcript_delta.html
+http://www.pbs.org/now/transcript/transcript_henwood.html
+http://www.pbs.org/odyssey/voice/20040405_vfts_transcript.html
+http://www.pbs.org/opb/childrenshospital/classroom/
+http://www.pbs.org/parents/issuesadvice/talkingandreading/html/baby/books_classic.html
+http://www.pbs.org/parents/issuesadvice/talkingandreading/html/rwriter/talking_milestones.html
+http://www.pbs.org/pbsyou/schedules/description.html?nola_root=HAMA&date=2005-02-02
+http://www.pbs.org/pbsyou/schedules/description.html?nola_root=LEEB&date=2005-01-18
+http://www.pbs.org/pbsyou/schedules/description.html?nola_root=LEEB&date=2005-02-02
+http://www.pbs.org/pov/pov2003/west47thstreet/behind_ask.html
+http://www.pbs.org/pov/pov2004/lastmanstanding/behind_journal.html
+http://www.pbs.org/pov/pov2004/thirst/behind_interview.html
+http://www.pbs.org/pov/pov2004/warfeelslikewar/special_covering.html
+http://www.pbs.org/pov/pov2005/chisholm/behind_journal.html
+http://www.pbs.org/pov/pov2005/shelbyknox/special_interviews_2.html
+http://www.pbs.org/pov/pov2005/shelbyknox/special_interviews_3.html
+http://www.pbs.org/pov/pov2005/shelbyknox/special_pledges_1.html
+http://www.pbs.org/pov/tvraceinitiative/facingthetruth/
+http://www.pbs.org/race/000_About/002_04-background-01-y.htm
+http://www.pbs.org/readytolearn/resources/tvtips.html
+http://www.pbs.org/remotecontrol/news/notice_talkinghealth.html
+http://www.pbs.org/remotecontrol/news/notice_talkingwar.html
+http://www.pbs.org/saf/1101/teaching/teaching.htm
+http://www.pbs.org/saf/1104/teaching/teaching2.htm
+http://www.pbs.org/saf/1107/resources/transcript.htm
+http://www.pbs.org/saf/1203/resources/transcript.htm
+http://www.pbs.org/saf/1205/teaching/teaching.htm
+http://www.pbs.org/saf/1207/hotline/hballard.htm
+http://www.pbs.org/saf/1208/resources/transcript.htm
+http://www.pbs.org/saf/1209/resources/transcript.htm
+http://www.pbs.org/safarchive/4_class/45_pguides/pguide_303/4533_dyslexia.html
+http://www.pbs.org/safarchive/4_class/45_pguides/pguide_702/4572_malaria.html
+http://www.pbs.org/safarchive/5_cool/galapagos/g48_glossary.html
+http://www.pbs.org/speak/ahead/technology/voiceinterface/
+http://www.pbs.org/speak/education/curriculum/high/style/
+http://www.pbs.org/speak/seatosea/americanvarieties/AAVE/hooked/
+http://www.pbs.org/speak/seatosea/americanvarieties/pacificnorthwest/
+http://www.pbs.org/speak/seatosea/americanvarieties/texan/
+http://www.pbs.org/speak/speech/prejudice/women/
+http://www.pbs.org/standarddeviantstv/transcript_amergov.html
+http://www.pbs.org/teachersource/media_lit/getting_started.shtm
+http://www.pbs.org/teachersource/planning/schedulex/description.shtm?nola_root=CBDG&date=2005-06-18
+http://www.pbs.org/teachersource/planning/schedulex/description.shtm?nola_root=MAYM&date=2005-06-18
+http://www.pbs.org/teachersource/prek2/issues/1102issue.shtm
+http://www.pbs.org/teachersource/recommended/health_fitness/lk_boysandgirls.shtm
+http://www.pbs.org/teachersource/recommended/science_tech/lk_generalscience.shtm
+http://www.pbs.org/teachersource/roadrules.shtm
+http://www.pbs.org/teachersource/teachtech/research.shtm
+http://www.pbs.org/teachersource/thismonth/jan00/index.shtm
+http://www.pbs.org/theblues/classroom/intdelta.html
+http://www.pbs.org/thinktank/transcript1017.html
+http://www.pbs.org/transistor/tv/script3.html
+http://www.pbs.org/tuckercarlson/asktucker/pastqa_20040917.html
+http://www.pbs.org/weta/forcemorepowerful/nashville/interview.html
+http://www.pbs.org/weta/forcemorepowerful/series/interview.html
+http://www.pbs.org/weta/reportingamericaatwar/about/filmmakers.html
+http://www.pbs.org/weta/roughscience/series3/gold_rush/balance.html
+http://www.pbs.org/weta/thewest/people/a_c/custer.htm
+http://www.pbs.org/weta/washingtonweek/transcripts/transcript970425.html
+http://www.pbs.org/wgbh/amex/cable/peopleevents/e_first.html
+http://www.pbs.org/wgbh/amex/cable/peopleevents/p_field.html
+http://www.pbs.org/wgbh/amex/daughter/peopleevents/p_kim.html
+http://www.pbs.org/wgbh/amex/dday/sfeature/sf_press.html
+http://www.pbs.org/wgbh/amex/grant/peopleevents/p_sherman.html
+http://www.pbs.org/wgbh/amex/guerrilla/filmmore/pt.html
+http://www.pbs.org/wgbh/amex/newyork/peopleevents/e_archit.html
+http://www.pbs.org/wgbh/amex/newyork/peopleevents/e_ideal.html
+http://www.pbs.org/wgbh/amex/presidents/37_nixon/psources/ps_inaug2.html
+http://www.pbs.org/wgbh/amex/telephone/filmmore/transcript/
+http://www.pbs.org/wgbh/amex/three/timeline/index_3.html
+http://www.pbs.org/wgbh/amex/till/sfeature/sf_look_confession.html
+http://www.pbs.org/wgbh/amex/vietnam/108ts.html
+http://www.pbs.org/wgbh/aso/databank/entries/bmbarn.html
+http://www.pbs.org/wgbh/aso/databank/entries/boleak.html
+http://www.pbs.org/wgbh/commandingheights/shared/minitext/ess_germanhyperinflation.html
+http://www.pbs.org/wgbh/evolution/library/04/3/text_pop/l_043_42.html
+http://www.pbs.org/wgbh/evolution/library/10/
+http://www.pbs.org/wgbh/masterpiece/mrchips/ntof_raid.html
+http://www.pbs.org/wgbh/misunderstoodminds/mathstrats.html
+http://www.pbs.org/wgbh/mystery/announced/actors.html
+http://www.pbs.org/wgbh/nova/elegant/view-peet.html
+http://www.pbs.org/wgbh/nova/galileo/mistake.html
+http://www.pbs.org/wgbh/nova/listseason/11.html
+http://www.pbs.org/wgbh/nova/meningitis/amy.html
+http://www.pbs.org/wgbh/nova/redbaron/mind.html
+http://www.pbs.org/wgbh/nova/satoyama/hibernation.html
+http://www.pbs.org/wgbh/nova/sciencenow/feedback/
+http://www.pbs.org/wgbh/nova/teachers/activities/2411_coma.html
+http://www.pbs.org/wgbh/nova/teachers/activities/2412_barrier.html
+http://www.pbs.org/wgbh/nova/teachers/activities/2702_everest.html
+http://www.pbs.org/wgbh/nova/teachers/activities/3005_vinson.html
+http://www.pbs.org/wgbh/nova/teachers/activities/3011_redbaron.html
+http://www.pbs.org/wgbh/nova/teachers/activities/3101_mars.html
+http://www.pbs.org/wgbh/nova/teachers/activities/3107_tornado.html
+http://www.pbs.org/wgbh/nova/teachers/activities/3108_worldbal.html
+http://www.pbs.org/wgbh/nova/teachers/activities/3113_origins.html
+http://www.pbs.org/wgbh/nova/teachers/activities/3202_hoax.html
+http://www.pbs.org/wgbh/nova/teachers/activities/3204_02_nsn.html
+http://www.pbs.org/wgbh/nova/teachers/activities/3205_vinland.html
+http://www.pbs.org/wgbh/nova/tornado/forecasting.html
+http://www.pbs.org/wgbh/nova/tothemoon/lastman2.html
+http://www.pbs.org/wgbh/nova/transcripts/2704stockmarket.html
+http://www.pbs.org/wgbh/nova/transcripts/3202_hoax.html
+http://www.pbs.org/wgbh/nova/worldbalance/about.html
+http://www.pbs.org/wgbh/pages/frontline/gulf/oral/baker/1.html
+http://www.pbs.org/wgbh/pages/frontline/shows/assault/context/employment.html
+http://www.pbs.org/wgbh/pages/frontline/shows/binladen/talk/
+http://www.pbs.org/wgbh/pages/frontline/shows/binladen/who/interview.html
+http://www.pbs.org/wgbh/pages/frontline/shows/choice2000/gore/morris.html
+http://www.pbs.org/wgbh/pages/frontline/shows/choice2000/talk/
+http://www.pbs.org/wgbh/pages/frontline/shows/choice2004/etc/script.html
+http://www.pbs.org/wgbh/pages/frontline/shows/choice2004/interviews/woodward.html
+http://www.pbs.org/wgbh/pages/frontline/shows/choice2004/talk/index2.html
+http://www.pbs.org/wgbh/pages/frontline/shows/clinton/etc/11091994.html
+http://www.pbs.org/wgbh/pages/frontline/shows/cool/rushkoff/brand.html
+http://www.pbs.org/wgbh/pages/frontline/shows/crash/interviews/soros.html
+http://www.pbs.org/wgbh/pages/frontline/shows/cyberwar/etc/letter.html
+http://www.pbs.org/wgbh/pages/frontline/shows/drugs/special/north.html
+http://www.pbs.org/wgbh/pages/frontline/shows/edison/interviews/horsey.html
+http://www.pbs.org/wgbh/pages/frontline/shows/evil/interviews/marchal.html
+http://www.pbs.org/wgbh/pages/frontline/shows/evil/readings/french.html
+http://www.pbs.org/wgbh/pages/frontline/shows/evil/warning/premonitions.html
+http://www.pbs.org/wgbh/pages/frontline/shows/fertility/talk/
+http://www.pbs.org/wgbh/pages/frontline/shows/fostercare/etc/producers.html
+http://www.pbs.org/wgbh/pages/frontline/shows/fostercare/etc/synopsis.html
+http://www.pbs.org/wgbh/pages/frontline/shows/hackers/interviews/power.html
+http://www.pbs.org/wgbh/pages/frontline/shows/heart/etc/synopsis.html
+http://www.pbs.org/wgbh/pages/frontline/shows/heart/view/
+http://www.pbs.org/wgbh/pages/frontline/shows/invasion/interviews/white.html
+http://www.pbs.org/wgbh/pages/frontline/shows/iraq/themes/beyond.html
+http://www.pbs.org/wgbh/pages/frontline/shows/jefferson/mixed/onedrop.html
+http://www.pbs.org/wgbh/pages/frontline/shows/karadzic/interviews/ceric.html
+http://www.pbs.org/wgbh/pages/frontline/shows/khadr/interviews/abdullah.html
+http://www.pbs.org/wgbh/pages/frontline/shows/kosovo/interviews/krulak.html
+http://www.pbs.org/wgbh/pages/frontline/shows/mandela/etc/script.html
+http://www.pbs.org/wgbh/pages/frontline/shows/meat/talk/
+http://www.pbs.org/wgbh/pages/frontline/shows/military/force/lake.html
+http://www.pbs.org/wgbh/pages/frontline/shows/music/interviews/codikow.html
+http://www.pbs.org/wgbh/pages/frontline/shows/music/interviews/guido.html
+http://www.pbs.org/wgbh/pages/frontline/shows/music/perfect/mtv.html
+http://www.pbs.org/wgbh/pages/frontline/shows/pentagon/talk/
+http://www.pbs.org/wgbh/pages/frontline/shows/porn/business/howtheme.html
+http://www.pbs.org/wgbh/pages/frontline/shows/prescription/hazard/independent.html
+http://www.pbs.org/wgbh/pages/frontline/shows/race/etc/gates.html
+http://www.pbs.org/wgbh/pages/frontline/shows/race/interviews/ecleaver.html
+http://www.pbs.org/wgbh/pages/frontline/shows/race/talk/
+http://www.pbs.org/wgbh/pages/frontline/shows/reaction/etc/faqs.html
+http://www.pbs.org/wgbh/pages/frontline/shows/religion/first/roles.html
+http://www.pbs.org/wgbh/pages/frontline/shows/religion/first/women.html
+http://www.pbs.org/wgbh/pages/frontline/shows/royals/interviews/greenslade.html
+http://www.pbs.org/wgbh/pages/frontline/shows/sacred/deconstruction/
+http://www.pbs.org/wgbh/pages/frontline/shows/sats/etc/chat.html
+http://www.pbs.org/wgbh/pages/frontline/shows/sats/etc/script.html
+http://www.pbs.org/wgbh/pages/frontline/shows/sats/interviews/chauncey.html
+http://www.pbs.org/wgbh/pages/frontline/shows/secret/discuss/story1.html
+http://www.pbs.org/wgbh/pages/frontline/shows/smith/etc/longhard.html
+http://www.pbs.org/wgbh/pages/frontline/shows/tehran/inside/theme.html
+http://www.pbs.org/wgbh/pages/frontline/shows/truth/fighting/turfwars.html
+http://www.pbs.org/wgbh/pages/roadshow/series/cook/2002/08.26.02.html
+http://www.pbs.org/wgbh/pages/roadshow/series/highlights/2000/toronto.html
+http://www.pbs.org/wgbh/pops/listen/places.html
+http://www.pbs.org/wgbh/questionofgod/voices/james.html
+http://www.pbs.org/wholechild/abc/communication.html
+http://www.pbs.org/wholechild/providers/f-s.html
+http://www.pbs.org/wnet/berga/about_description.html
+http://www.pbs.org/wnet/berga/print/about_description.html
+http://www.pbs.org/wnet/closetohome/science/
+http://www.pbs.org/wnet/closetohome/viewpoints/html/addict.html
+http://www.pbs.org/wnet/gperf/dialogue/dialogue_carn04_fleming.html
+http://www.pbs.org/wnet/jimcrow/education_lesson5_steps.html
+http://www.pbs.org/wnet/jimcrow/php/scribble.php?pic=3
+http://www.pbs.org/wnet/journaleditorialreport/062405/transcript_briefing.html
+http://www.pbs.org/wnet/nature/redroos/lesson_plan_b.html
+http://www.pbs.org/wnet/religionandethics/week712/perspectives.html
+http://www.pbshawaii.org/local_productions/na-mele/winston.html
+http://www.pbso.org/index.cfm?fa=sexualpredators
+http://www.pc-help.org/security/scrap.htm
+http://www.pc.gc.ca/apprendre-learn/prof/sub/eco/sec4/pl-lp6/index_e.asp
+http://www.pc.gc.ca/lhn-nhs/bc/langley/visit/visit5_e.asp
+http://www.pc.gc.ca/lhn-nhs/on/bellevue/natcul/natcul1_e.asp
+http://www.pc.gc.ca/progs/beefp-fhbro/code/code7e_E.asp
+http://www.pc.gc.ca/progs/np-pn/eco_integ/index_E.asp
+http://www.pc.gc.ca/voyage-travel/pv-vp/itm6-/page18_E.asp
+http://www.pc.ibm.com/us/support/thinkpad/landesk.html
+http://www.pcacoalition.org/site/News2?page=NewsArticle&id=5335%22
+http://www.pcaky.org/capm2004/five.htm
+http://www.pcanswer.com/articles/sjm_cellphone2001.htm
+http://www.pcauthority.com.au/print.aspx?CIID=21176&SIID=10
+http://www.pcaw.co.uk/about/whistleblowers.html
+http://www.pcaw.co.uk/policy_pub/case_summaries.html
+http://www.pcaw.co.uk/policy_pub/oecdreport.html
+http://www.pcbuyerbeware.co.uk/Warrant.htm
+http://www.pcbuyerbeware.co.uk/sharedbirthday/birthdays/February/Feb4.htm
+http://www.pcc.org.uk/cop/cop.asp
+http://www.pcc.org.uk/cop/history.html
+http://www.pcc.org.uk/press/detail.asp?id=131
+http://www.pccctx.com/privacy.shtml
+http://www.pccnaturalmarkets.com/sc/0409/sc0409-sus-pcc.html
+http://www.pcdf.org/meadows/dark_budget.html
+http://www.pcfe.ac.uk/aboutus/awards_txt.php
+http://www.pcfe.ac.uk/plymouthinternationalcollege/accommodation/
+http://www.pcfe.ac.uk/plymouthinternationalcollege/accommodation/text.htm
+http://www.pcgamer.com/reviews/review_2004-08-02d.html
+http://www.pcgamereview.com/dreamcast-games-and-equipment/dreamcast-action/King,of,Fighters,Dream,Match,99/PRD_86588_3730crx.aspx
+http://www.pcgs.com/articles/article658.chtml
+http://www.pcguide.com/ref/hdd/geom/tracksSector-c.html
+http://www.pcguide.com/ref/hdd/op/actActuator-c.html
+http://www.pcguide.com/ts/sup/callTips-c.html
+http://www.pcguide.com/ts/x/sys/booterrGBER43-c.html
+http://www.pcguide.com/vb/showthread.php?goto=newpost&t=34650
+http://www.pcguide.com/vb/showthread.php?t=34650
+http://www.pch.gc.ca/pc-ch/min/discours-speech/2004-11-16_e.cfm
+http://www.pch.gc.ca/progs/ac-ca/pol/cinema-film/pubs/comm10.htm
+http://www.pch.gc.ca/progs/ac-ca/progs/fcmus-cmusf/pubs/2004-2005/gen/1_e.cfm
+http://www.pch.gc.ca/progs/ac-ca/progs/fcmus-cmusf/pubs/2004-2005/simpl/1_e.cfm
+http://www.pch.gc.ca/progs/ac-ca/progs/ri-bpi/pubs/juneau/anglais/chap1/ch1.htm
+http://www.pchell.com/acronyms/
+http://www.pchire.com.au/disclaimer.asp
+http://www.pchs.org/pointordinance.shtml
+http://www.pcma.org/convene/Templates/Special/Page25.html
+http://www.pcma.org/convene/Templates/Special/Page55.html
+http://www.pcma.org/resources/careers/jobbank/resume-view.asp?JOB_RESUME_ID=449
+http://www.pcma.org/source/membership/professional-benefits/getmember.asp
+http://www.pcma.org/templates/food_bev/negotiation.htm
+http://www.pcmag.com/article2/0,1759,1159222,00.asp
+http://www.pcmag.com/article2/0,1759,1730992,00.asp
+http://www.pcmag.com/article2/0,1759,1781594,00.asp
+http://www.pcmag.com/article2/0,1759,925278,00.asp
+http://www.pcmag.com/article2/0,4149,426285,00.asp
+http://www.pcmall.com/pcmall/shop/detail~dpno~269195.asp
+http://www.pcnr.com/
+http://www.pcnsw.org.au/codeonline/fourteen.htm
+http://www.pco.nsw.gov.au/nswleg.html
+http://www.pco.org.hk/english/publications/newsletter_2000nov.html
+http://www.pcowinc.com/blog/index.php?m=200503
+http://www.pcpages.com/spoiler/
+http://www.pcpitstop.com/
+http://www.pcplus.co.uk/reviews/default.asp?pagetypeid=2&articleid=30650&subsectionid=372&subsubsectionid=39
+http://www.pcplus.co.uk/tutorials/default.asp?pagetypeid=2&articleid=17806&subsectionid=379
+http://www.pcpsr.org/survey/polls/2003/p7a.html
+http://www.pcpsr.org/survey/polls/2003/p7epressrelease.html
+http://www.pcqhra.org/award.asp
+http://www.pcquest.com/content/editorscolumn/2005/105041101.asp
+http://www.pcreview.co.uk/forums/thread-1784306.php
+http://www.pcreview.co.uk/shop/mode-classical-search_type-ArtistSearch-input_string-Janet+Baker-locale-uk.htm
+http://www.pcrm.org/health/prevmed/cholesterol_heartdisease.html
+http://www.pcrm.org/resch/anexp/hpv_testimony.html
+http://www.pcs.org.uk/Templates/Internal.asp?NodeID=894986
+http://www.pcsb.k12.fl.us/teachnet/bush_insua/agtoc.htm
+http://www.pcse.org/content.asp
+http://www.pcsoftland.com/business/presentation/procedure-charter-standard.htm
+http://www.pcspeak.com/hints/general/vocabulary/codecitations.shtml
+http://www.pcsproud.org.uk/reps_trans_links.html
+http://www.pcstats.com/articleview.cfm?articleID=868
+http://www.pcstats.com/articleview.cfm?articleid=1583&page=4
+http://www.pcsupport.dk/software/IconLibrary.html
+http://www.pct.edu/annualfund/planned_giving.htm
+http://www.pcusa.org/peacemakingoffering/25ways.htm
+http://www.pcusa.org/today/joan/guide1-21.htm
+http://www.pcw.co.uk/features/1138665
+http://www.pcw.co.uk/news/1138714
+http://www.pcw.co.uk/news/1139234
+http://www.pcworks.demon.co.uk/magazine/cannabis/zzcanprot.htm
+http://www.pcworld.com/howto/article/0,aid,107864,00.asp
+http://www.pcworld.com/howto/article/0,aid,108710,00.asp
+http://www.pcworld.com/howto/article/0,aid,108728,00.asp
+http://www.pcworld.com/howto/article/0,aid,111127,00.asp
+http://www.pcworld.com/howto/article/0,aid,111531,00.asp
+http://www.pcworld.com/howto/article/0,aid,112902,00.asp
+http://www.pcworld.com/howto/article/0,aid,118058,00.asp
+http://www.pcworld.com/howto/article/0,aid,118058,tk,sbx,00.asp
+http://www.pcworld.com/howto/article/0,aid,118523,00.asp
+http://www.pcworld.com/howto/article/0,aid,16479,00.asp
+http://www.pcworld.com/howto/article/0,aid,47514,00.asp
+http://www.pcworld.com/howto/article/0,aid,58383,00.asp
+http://www.pcworld.com/news/article/0,aid,109084,00.asp
+http://www.pcworld.com/news/article/0,aid,110783,00.asp
+http://www.pcworld.com/news/article/0,aid,111035,00.asp
+http://www.pcworld.com/news/article/0,aid,115509,00.asp
+http://www.pcworld.com/news/article/0,aid,116473,00.asp
+http://www.pcworld.com/news/article/0,aid,117691,00.asp
+http://www.pcworld.com/news/article/0,aid,118447,00.asp
+http://www.pcworld.com/news/article/0,aid,119390,00.asp
+http://www.pcworld.com/news/article/0,aid,120518,00.asp
+http://www.pcworld.com/news/article/0,aid,120886,00.asp
+http://www.pcworld.com/news/article/0,aid,17702,00.asp
+http://www.pcworld.com/news/article/0,aid,50084,00.asp
+http://www.pcworld.com/news/article/0,aid,79223,00.asp
+http://www.pcworld.com/resource/article/0,aid,10613,pg,4,00.asp
+http://www.pcworld.com/resource/article/0,aid,121363,pg,1,RSS,RSS,00.asp
+http://www.pcworld.com/resource/article/0,aid,121429,pg,1,RSS,RSS,00.asp
+http://www.pcworld.com/resource/browse/0,cat,1558,sortIdx,1,pg,1,00.asp
+http://www.pcworld.com/resource/product_submissions.asp
+http://www.pcworld.com/reviews/article/0,aid,117523,pg,2,00.asp
+http://www.pcworld.com/reviews/article/0,aid,119249,pg,2,00.asp
+http://www.pcworld.idg.com.au/index.php/id;1235678367;fp;512;fpid;1035602669
+http://www.pcworld.idg.com.au/index.php/id;1827834069;pp;2;fp;2;fpid;76768
+http://www.pcworld.idg.com.au/index.php/id;665412976;fp;2;fpid;1
+http://www.pcworldmalta.com/archive/iss51/errors.htm
+http://www.pd9soft.com/megabbs/forums/thread-view.asp?tid=1259&posts=31
+http://www.pd9soft.com/megabbs/forums/thread-view.asp?tid=1259&start=26&posts=31
+http://www.pdaphonehome.com/forums/showthread.php?s=&goto=lastpost&threadid=11108
+http://www.pdaphonehome.com/forums/showthread.php?s=&threadid=11108
+http://www.pdarcade.com/modules.php?name=Reviews&rop=showcontent&id=277
+http://www.pdc.kth.se/support/run/running_ia64.html
+http://www.pdcmachines.com/pilot_plants.asp
+http://www.pddp.org.np/pub/progress/chap4.htm
+http://www.pdf.org/Ask/faq.cfm
+http://www.pdfstore.com/details.asp?ProdID=633
+http://www.pdftron.com/cosedit/faq.html
+http://www.pdga.com/pdgatour.php
+http://www.pdis.com.au/addons.html
+http://www.pdkintl.org/tconnect/archask/att06.htm
+http://www.pdp.ca/Archives.435.0.html
+http://www.pdports.co.uk/press35.htm
+http://www.pdsa.org/conference2004/conf2004abs.htm
+http://www.pdsconsulting.co.uk/Glossary/P.htm
+http://www.pdsg.org.uk/Factsheets/PPAphasia.htm
+http://www.pdx.edu/giving/gse_student_letters.html
+http://www.pdx.edu/giving/sba.html
+http://www.pdx.edu/giving/sfpa.html
+http://www.pdx.edu/usp/education.html
+http://www.pdxcityclub.org/committees/arts-culture.php
+http://www.pe.com/sharedcontent/iraq/elections2/051905ccdriraqhelp.28e445763.html
+http://www.pe.gatech.edu/conted/servlet/edu.gatech.conted.upload.DownloadFile?ID=2481
+http://www.peace-action.org/home/print/piraq.html
+http://www.peace-srilanka.org/sama1.htm
+http://www.peace-with-justice.org/letters/020708cc.html
+http://www.peace.ca/10minutesolution.htm
+http://www.peace.ca/CCOPPaction2004.htm
+http://www.peace.ca/CanadianAgenda2003.htm
+http://www.peace.ca/CanadianAgenda2004.htm
+http://www.peace.ca/critiquesofcanadamilitary.htm
+http://www.peace.ca/firstannualconferenceonpeaceed.htm
+http://www.peace.ca/humanrighttopeace.htm
+http://www.peace.ca/leadershipandacultureofviolence.htm
+http://www.peace.ca/peacestudiescriticism.htm
+http://www.peace.ca/speechfromthrone.htm
+http://www.peace.ca/upcoming.htm
+http://www.peace.ca/worldpeace.htm
+http://www.peace.edu/biology_faculty.html
+http://www.peacealliance.org.uk/projects.html
+http://www.peaceandlove.ca/AIDSsexmyth.html
+http://www.peacebrigades.org/annrept/ar98eng.html
+http://www.peacebrigades.org/ern/ern99-05.html
+http://www.peacebrigades.org/etp/etp.html
+http://www.peacecorps.gov/index.cfm?shell=resources.faf.safety
+http://www.peacecorps.gov/wws/cybervol/2004-5/Phillips_Dec_Letter.html
+http://www.peacecorps.gov/wws/guides/looking/lesson26.html
+http://www.peacecorps.gov/wws/guides/nepal/culture.html
+http://www.peacecorps.gov/wws/guides/senegal/dank.html
+http://www.peacecorpswriters.org/pages/depts/resources/bibliog/bibr.html
+http://www.peacecorpswriters.org/pages/depts/resources/resour_writers/100daysbook/bk100da.html
+http://www.peacecourier.com/UKNuclearNews/UKNuclearNewsDecember2004.htm
+http://www.peaceday.org/peacfrds.htm
+http://www.peacediaries.org/2_community/gallery2B/1_Recipes/1Rc20_TAIWAN.html
+http://www.peacefactory.com/Wormwood/chap01.htm
+http://www.peacefulmind.com/exercise.htm
+http://www.peacefulplaygrounds.com/press16.htm
+http://www.peacehall.com/news/gb/english/2004/12/200412150153.shtml
+http://www.peaceinsrilanka.org/insidepages/RRR/Appeal/Appeal.asp
+http://www.peaceinsrilanka.org/insidepages/stories/PMltrtoAB-02-06.asp
+http://www.peacejam.org/aung/china.html
+http://www.peacejam.org/tutu/u1c6.html
+http://www.peacekidz.com/stories/peacepledge/
+http://www.peacelutheran.net/peace_progress/Nov2004pp.html
+http://www.peacemagazine.org/archive/v06n3p20.htm
+http://www.peacemagazine.org/archive/v13n1p23.htm
+http://www.peacemagazine.org/archive/v14n2p12.htm
+http://www.peacemakers.net/clergysexualabuse/abusedperspective.htm
+http://www.peacemakers.org.uk/casestudy.html
+http://www.peacenews.info/issues/2444/civicduty.html
+http://www.peacenvironment.net/1lgwpf/foundation.html
+http://www.peaceofficerministries.org/letter.htm
+http://www.peacepark.us/OldWebSite/week3.html
+http://www.peacepilgrim.net/book/chapt3.htm
+http://www.peacepilgrim.net/news/ppp17.htm
+http://www.peacepilgrim.org/FoPP/newsletter/nl33.htm
+http://www.peaceresearchfoundation.org/benefit_pastevents.asp
+http://www.peaceriverstudios.com/183_links/wlmain.html
+http://www.peacetaxseven.com/
+http://www.peacethroughunderstanding.org/
+http://www.peacethroughunderstanding.org/index.php
+http://www.peacethroughunderstanding.org/index.php?act=idx
+http://www.peacethroughunderstanding.org/index.php?automodule=blog&blogid=12&
+http://www.peacethroughunderstanding.org/index.php?automodule=blog&blogid=12&cmd=showentry&eid=6
+http://www.peacethroughunderstanding.org/index.php?showtopic=3850
+http://www.peacethroughunderstanding.org/index.php?showtopic=3850&view=getlastpost
+http://www.peacethroughunderstanding.org/index.php?showtopic=3851
+http://www.peacethroughunderstanding.org/index.php?showtopic=3851&view=getlastpost
+http://www.peacewomen.org/news/Chechnya/newsarchive03/Chechenbrides.html
+http://www.peacexpeace.org/dearann.htm
+http://www.peachpit.com/articles/article.asp?p=102173&seqNum=29
+http://www.peachpit.com/articles/article.asp?p=30292&seqNum=3
+http://www.peachpit.com/articles/article.asp?p=360068
+http://www.peak.co.nz/ausat/
+http://www.peak.ie/bleedex.html
+http://www.peak.org/~fixin/personal/fmu/php/axle.php
+http://www.peak.sfu.ca/the-peak/2001-1/issue3/fe-springfield.html
+http://www.peak.sfu.ca/the-peak/97-1/issue10/hootie.html
+http://www.peakoil.com/
+http://www.peakoil.com/fortopic3949-15.html
+http://www.peakoil.com/post51778.html
+http://www.peakoil.net/CC4April2005OilGas.html
+http://www.peakoilaction.org/modules.php?name=Forums&file=viewtopic&t=78
+http://www.peakperformancetraining.org/sitefiles/articles/optimal.htm
+http://www.peaksofotterwinery.com/history.htm
+http://www.pearlharborattacked.com/
+http://www.pearlvillage.co.th/
+http://www.pearson.com/community/csr_report2004/labour.html
+http://www.pearsonassessments.com/tests/basi.htm
+http://www.pearsoned.ca/sightlines/gr_10/resources/western/lesson.html
+http://www.pearsoned.co.uk/Authors/HigherProfessional/Textbook/
+http://www.pearsoneducationbooks.com/Includes/Terms.html
+http://www.peaseinternational.com/15/lesson-letter-writing.html
+http://www.pecdar.org/Default.asp?page=2164
+http://www.pecentral.org/assessment/assessmentresearch.html
+http://www.peckhamacademy.southwark.sch.uk/Intranet/College/The_Curriculum.php
+http://www.pecs.com/asaPEC3panel.html
+http://www.ped.gu.se/biorn/journal/pedfo/v1/n1sum.html
+http://www.ped.gu.se/biorn/phgraph/misc/constr/goodno2.html
+http://www.pediatriccardiacinquest.mb.ca/ch06/ju/post-op.html
+http://www.pediatrics.org/cgi/content/full/111/6/1433
+http://www.pediatricservices.com/inspire/inspire33.htm
+http://www.pediheart.org/Terms_of_use.htm
+http://www.pedisurg.com/PtEducENT/Otitis_Media.htm
+http://www.pedropan.org/
+http://www.peele.net/lib/boswell.html
+http://www.pegasus.co.uk/operaii/latest.asp
+http://www.pegasusassociates.com/UCXenon.jsp
+http://www.pegaweb.com/
+http://www.pegaweb.com/tutorials/touch-of-class/touch-of-class-web-design-tutorial-1.htm
+http://www.pegpress.org/women.htm
+http://www.peiapathways.com/lvminter/selfcare/sinkrasa.htm
+http://www.peiunitedway.com/changes.html
+http://www.pejmanesque.com/
+http://www.pejmanesque.com/archives/007299.html
+http://www.pejmanesque.com/archives/007578.html
+http://www.pejmanesque.com/archives/008529.html
+http://www.pejmanesque.com/archives/010577.html
+http://www.peleast.org/leg.htm
+http://www.pelion.co.uk/html/us.html
+http://www.pell.portland.or.us/~silas/birthstory.shorter.html
+http://www.pelvicpain.com/sharing.html
+http://www.pemberley.com/janeinfo/pptopic2.html
+http://www.pembina.org/donate_home.asp
+http://www.pembina.org/newsitem.asp?newsid=110&section=
+http://www.pen-paper.net/
+http://www.pen-paper.net/modules.php?op=modload&name=Reviews&file=index&req=showcontent&id=30
+http://www.pen.k12.va.us/VDOE/newvdoe/teachyr.html
+http://www.pencildude.ca/shopping/booksdvdsandmusic.html
+http://www.pencoedmedical.co.uk/breast_screening.htm
+http://www.pencoyd.com/clock/2004/07/14.html
+http://www.pendlehill.org/Lectures%20and%20Writings/fall_lecture99_18.htm
+http://www.penfolds.com.au/ContactUs/PrivacyStatement.html
+http://www.penguin.co.uk/nf/Book/BookDisplay/0,,0_0140276335,00.html
+http://www.penguin.co.uk/nf/Book/BookDisplay/0,,0_014029466X,00.html?sym=EXC
+http://www.penguin.co.uk/static/cs/uk/0/minisites/lesleypearse/about.html
+http://www.penguin.co.uk/static/cs/uk/0/minisites/nickhornby/books/31s_extract.html
+http://www.penguin.com.au/puffin/spotlight/spotlight.cfm?SBN=0143000306&Page=Notes
+http://www.penguinbooksindia.com/FreeChapters/MakingMinisterSmile.htm
+http://www.penguinclassics.co.uk/nf/shared/WebDisplay/0,,203903_1_10,00.html
+http://www.penguinputnam.com/nf/Book/BookDisplay/0,,0_0803726090,00.html
+http://www.penguinputnam.com/static/rguides/us/grapes_of_wrath.html
+http://www.penguinputnam.com/static/rguides/us/piano_teacher.html
+http://www.penguinputnam.com/static/rguides/us/rapstone_chronicles.html
+http://www.penguinputnam.com/static/rguides/us/the_kitchen_boy.html
+http://www.peninsulaclarion.com/stories/090204/gar_090204new001001.shtml
+http://www.peninsulaymca.org/map.htm
+http://www.penisowner.com/jamesbrown.html
+http://www.penmachine.com/musicpages/digipiano2003.html
+http://www.penmachine.com/techie/website_is_for_2004-05.html
+http://www.pennhealth.com/ency/article/003579.htm
+http://www.pennhealth.com/health_info/bloodless/blood_step7.html
+http://www.pennhealth.com/health_info/pregnancy/firstweeks/articles/daycarework.html
+http://www.penninepens.co.uk/election.html
+http://www.pennsic.net/cgi-bin/mb/mb.cgi?cmd=read&topic=politics&id=1093284872&offset=0
+http://www.penny-arcade.com/news.php3?date=2005-01-17
+http://www.pennywit.com/drupal/node/2479
+http://www.penrithcity.nsw.gov.au/index.asp?id=2584
+http://www.pensandwatches.com/_pages/sold9.html
+http://www.penstarsys.com/
+http://www.pentagon.gov/transcripts/2005/tr20050629-secdef3201.html
+http://www.penthesilea.ch/yabb-smiley-sets/
+http://www.peopil.com/viewdetail.asp?ID=18
+http://www.people-one.com/aboutus/inthenews.asp
+http://www.people.fas.harvard.edu/~lipoff/research/
+http://www.people.virginia.edu/~cah2k/infoy2k.htm
+http://www.people.virginia.edu/~hms2f/small.html
+http://www.people.virginia.edu/~ner4t/Gonzaga/GonzagaMemories/SchoeniMemories.html
+http://www.people.virginia.edu/~rjh9u/blkysc82.html
+http://www.people.virginia.edu/~tsd3r/Upcoming_Programs.html
+http://www.people.virginia.edu/~tsd3r/home_new.htm
+http://www.peopleandplanet.org/news/news.php?story=505
+http://www.peoplefirst.org.uk/book/ukstore.html
+http://www.peoplefirstindia.org/9village.htm
+http://www.peoplefirstofnh.org/SABE/RickyWhistnant.htm
+http://www.peopleforchange.net/forums/lofiversion/index.php?t18233.html
+http://www.peoples.com/im/cda/press_room/1,6832,11893,00.html
+http://www.peoples.com/im/cda/press_room/1,6832,12790,00.html
+http://www.peoples.com/im/cda/press_room/1,6832,13393,00.html
+http://www.peoplesguide.com/1pages/rv-camp/rv/trip/winnie/1winnie.html
+http://www.peoplespub.com/nercda/text/brains.html
+http://www.peoplewithpets.com/catagory.asp?Link=14
+http://www.peoriaaz.com/jobs/Descriptions/JIMS/claims%20Coordinator_j.htm
+http://www.pepperfoundation.org/cowdrey.htm
+http://www.peppermint.com/TMTSling%20Wearing%20Instructions.htm
+http://www.pepperproducts.com/date.html
+http://www.pepys.info/fire.html
+http://www.pepysdiary.com/archive/1661/01/15/index.php
+http://www.pepysdiary.com/archive/1661/05/08/index.php
+http://www.pepysdiary.com/archive/1661/08/27/index.php
+http://www.per-usa.org/kona.htm
+http://www.perc.org/education/guide.php
+http://www.percepp.demon.co.uk/cohesion.htm
+http://www.perceptions.couk.com/medical.html
+http://www.percys.co.uk/news_features/news_bnav.htm
+http://www.perefound.org/em-s_sp.html
+http://www.peregrine.com/cases/
+http://www.perfect.co.uk/
+http://www.perfectblue.co.uk/terms.html
+http://www.perfectentertaining.com/article1086.html
+http://www.perfectgoods.com/insurance/knowledge_term.asp
+http://www.perfectmarriage.co.uk/?p=260
+http://www.perfectpaws.com/cpv.html
+http://www.perfectpaws.com/mmd.html
+http://www.performance-appraisal.com/intro.htm
+http://www.performance-media.com/
+http://www.performance-vision.com/articles/art-boring.htm
+http://www.performance-vision.com/articles/art-reengineering-learning.htm
+http://www.performance.doh.gov.uk/waitingtimes/2004/q1/def.html
+http://www.performance.doh.gov.uk/waitingtimes/2004/q2/def.html
+http://www.performanceschool.org/teacher_ed.htm
+http://www.performanceschool.org/teacher_ed.html
+http://www.peribit.com/news/pr/2002/9_16_02.htm
+http://www.perio.org/consumer/questions.survey.htm
+http://www.perio.org/education/trans03_Finlayson.htm
+http://www.perio.org/perio-bin-nd3/commerce/search?keywords=dental_implants
+http://www.periodproperty.co.uk/ppom082002.htm
+http://www.periodproperty.co.uk/ppom112000.htm
+http://www.perkel.com/think/
+http://www.perkins-observatory.org/roverconstruction.html
+http://www.perkinscoie.com/page.cfm?id=159
+http://www.perl.com/pub/a/2003/02/19/engine.html
+http://www.perl.com/pub/a/2004/04/16/a12.html?page=4
+http://www.perlguy.com/articles/nt_service.html
+http://www.permanentend.org/mission.html
+http://www.perpetualpreschool.com/holiday_themes/christmas_games.html
+http://www.perrycomo.net/biography.html
+http://www.perryslingsbysystems.com/re_main.htm
+http://www.persephone.com/purrscilla/postings1.html
+http://www.persephonebooks.co.uk/pq/21story.htm
+http://www.perseus.com/blogsurvey/thebloggingiceberg.html
+http://www.persfin.co.za/index.php?fArticleId=2254573&fSectionId=707&fSetId=300
+http://www.persfin.co.za/index.php?fSectionId=593&fArticleId=2254573
+http://www.persianfootball.com/forums/archive/index.php/t-282.html
+http://www.persianmirror.com/culture/famous/bios/omidyar.cfm
+http://www.persianstudents.org/archives/001474.html
+http://www.personable.com/solutions/index.asp
+http://www.personal.psu.edu/faculty/g/a/gal4/AcademicLineage/AcademicLineage.html
+http://www.personal.psu.edu/faculty/j/x/jxm22/svgopen03/
+http://www.personal.psu.edu/mjh/
+http://www.personal.psu.edu/staff/j/x/jxf17/france2003/loire.html
+http://www.personal.psu.edu/users/a/n/anh140/my_biggest_fear.htm
+http://www.personal.psu.edu/users/m/a/mat1/Duesersrevfinal1.html
+http://www.personalbest.com.au/learning.html
+http://www.personalbest.com.au/music.html
+http://www.personalcommunications.net/marcus.html
+http://www.personaldemocracy.com/node/184
+http://www.personaldemocracy.com/node/378/
+http://www.personaldemocracy.com/node/472
+http://www.personaldemocracy.com/node/501
+http://www.personaldemocracy.com/node/560
+http://www.personaldemocracy.com/node/594
+http://www.personaldemocracy.com/node/626
+http://www.personalfinancebudgeting.com/saving-money-is-easy.php
+http://www.personalinjuryfyi.com/west/california/central_valley_stockton-modesto-tracy_ca/law/directory/personal_injury/priority.html
+http://www.personalitypathways.com/faces.html
+http://www.personalityresearch.org/papers/lee.html
+http://www.personalityresearch.org/papers/naik.html
+http://www.personaltechpipeline.com/163100674
+http://www.personnel.stir.ac.uk/recruitment/opportunities_secretarial.html
+http://www.personnel.umd.edu/jobposting/cgi-bin/empNECONI.idc
+http://www.personnel.umd.edu/jobposting/cgi-bin/empTP.idc
+http://www.personnelconcepts.com/compliance/complianceConcepts.asp?issueid=19&articleNum=2&sid=1um9p26837z79
+http://www.personnelconcepts.com/products/default.asp?id=103&cat=LL&sid=1um9p26837z79
+http://www.personnelconcepts.com/products/default.asp?id=103&cat=LL&sid=1v942h80z28
+http://www.personneltoday.co.uk/Articles/FilterList.aspx?NavigationID=110&Sections=10021
+http://www.personneltoday.com/Articles/FilterList.aspx?NavigationID=110&Sections=10021
+http://www.personsmissing.com/unsolved1.html
+http://www.perspectives.com/forums/forum39/4692.html
+http://www.perspectives.com/forums/forum4/21913.html
+http://www.perspectives.com/forums/forum4/26850-2.html
+http://www.perspectives.com/forums/forum5/29646-4.html
+http://www.perspectives.com/forums/forum5/29646.html
+http://www.perspectives.com/forums/forum71/24172.html
+http://www.perspectives.com/forums/reply.php?topic_id=15055&post_id=189585&quote=1
+http://www.perspectives.com/forums/reply.php?topic_id=15055&post_id=192755&quote=1
+http://www.perspectives.com/forums/reply.php?topic_id=16645
+http://www.perspectives.com/forums/reply.php?topic_id=16645&post_id=189637&quote=1
+http://www.perspectives.com/forums/reply.php?topic_id=16645&post_id=190818&quote=1
+http://www.perspectives.com/forums/reply.php?topic_id=16645&post_id=191016&quote=1
+http://www.perspectives.com/forums/reply.php?topic_id=16645&post_id=207254&quote=1
+http://www.perspectives.com/forums/reply.php?topic_id=16645&post_id=208622&quote=1
+http://www.perspectives.com/forums/reply.php?topic_id=16645&post_id=208625&quote=1
+http://www.perspectives.com/forums/view_topic.php?id=26850&forum_id=4&jump_to=369547
+http://www.perspectives.com/forums/view_topic.php?id=4692&forum_id=39&jump_to=63791
+http://www.perspektif.net/articles/view.asp?id=515
+http://www.perth.au.emb-japan.go.jp/hiroba_newsletter_oct03.htm
+http://www.perthshire.co.uk/index.asp?lm=281
+http://www.perthshire.co.uk/index.asp?pg=198&news=yes
+http://www.perugiaonline.com/shopping_perugia.html
+http://www.pervinfamilybusiness.com/library/articles/fi3.asp
+http://www.pes.org/content/view/188/130/lang,en/
+http://www.pesoftware.com/Resources/whype.html
+http://www.pesticides.gov.uk/aa_eu.asp?id=481
+http://www.pesticides.gov.uk/aa_eu.asp?id=509
+http://www.pesticides.gov.uk/fg_ec.asp?id=398
+http://www.pesticides.gov.uk/fg_ec.asp?id=481
+http://www.pesticides.gov.uk/fg_ec.asp?id=509
+http://www.pesticides.gov.uk/prc.asp?id=1625
+http://www.pesticides.gov.uk/publications.asp?id=380
+http://www.pesticides.gov.uk/publications.asp?id=481
+http://www.pesticides.gov.uk/publications.asp?id=509
+http://www.pesticides.gov.uk/publications.asp?id=999
+http://www.pet-sitters.biz/pet_sitters_by_state_usa.cfm?st=Pennsylvania
+http://www.pet-sitters.biz/pet_sitting_faq.cfm
+http://www.pet-sitters.biz/pet_sitting_faq.html
+http://www.pet.cam.ac.uk/petreans/friends/
+http://www.petco.com/?cmid=3ppfx100802xxxxxxlogononexxx
+http://www.petco.com/product_info.asp?webt=0&tab=3&sku=4679825772
+http://www.petcocruelty.com/why.html
+http://www.petdoctor.com.au/
+http://www.peteholiday.com/
+http://www.peter-drucker.com/books/0887306144.html
+http://www.peter-feuchtwanger.de/english/sitting.html
+http://www.peter-lock.de/txt/rheinmetall.html
+http://www.peter-thomson.co.uk/tornado/fusion/Charge_sheath_vortex_basics_for_tornado.html
+http://www.peter.baumgartner.name/
+http://www.peteranthonyholder.com/02-01-j.htm
+http://www.peterbergen.com/bergen/articles/details.aspx?id=91
+http://www.peterblum.com/vam/From123aspx_2.aspx
+http://www.peterborough.gov.uk/transport/road_safer.shtml
+http://www.peterboroughtoday.co.uk/mk4CustomPages/CustomPage.aspx?pageID=42963
+http://www.peterboroughtoday.co.uk/viewarticle2.aspx?sectionid=845&ArticleID=826767
+http://www.peterboyd.com/darwinshrews.htm
+http://www.peterchurch.com/
+http://www.peterellis.org.nz/Interviews/T2_1992-0528.htm
+http://www.peterfhamilton.co.uk/conf_kulu.html
+http://www.peterflaschner.com/?id=154
+http://www.petergruberfoundation.org/Women's%20Rights/women_recipients.htm
+http://www.peterjaworski.com/Friedman
+http://www.peterkatt.com/articles/AAII_may2002.html
+http://www.peterkreeft.com/topics/pascals-wager.htm
+http://www.peterkurth.com/YEAR%20END%20REVIEW%202004.htm
+http://www.peterlefcourt.com/
+http://www.peterli.com/archive/spm/561.shtm
+http://www.petermaass.com/core.cfm?p=1&mag=1&magtype=1
+http://www.petermaass.com/core.cfm?p=1&mag=88&magtype=1
+http://www.petermac.unimelb.edu.au/dept/crfd/main.htm
+http://www.petermacs-books.com/hotheads.html
+http://www.petermcfadden.com/christmas.html
+http://www.peterme.com/archives/000090.html
+http://www.peterme.com/archives/000507.html
+http://www.peterme.com/archives/000514.html
+http://www.peterme.com/browsed/browsed082999.html
+http://www.peterpanbus.com/customer/disabilities.shtml
+http://www.peterpayne.net/
+http://www.peterpugger.com/pugmill-extruder/pugmill-uses.html
+http://www.peterschrock.com/archive/2004_07_01_archive.html
+http://www.peterson.af.mil/hqafspc/News/News_asp/nws_tmp.asp?storyid=04-104
+http://www.petersonengineering.com/SkyDiv/m_a_ii.htm
+http://www.petersons.com/PSchools/code/visit.asp?sponsor=1
+http://www.petersons.com/blackcolleges/profiles/meharry.asp?sponsor=2904
+http://www.petersons.com/stdyabrd/abroad4.html
+http://www.petersons.com/stdyabrd/abroad7.html
+http://www.petersons.com/ugchannel/articles/selfevaluate.asp
+http://www.petertan.com/blog/
+http://www.peterwebb.co.uk/investment.htm
+http://www.peterweircave.com/articles/articlec.html
+http://www.peterweircave.com/dps/comparison.html
+http://www.peterwhitecycles.com/
+http://www.petesweekly.co.za/
+http://www.petfinder.org/
+http://www.petfinder.org/shelters/CO74.html
+http://www.petfinder.org/shelters/IN163.html?Dog=
+http://www.petfinder.org/shelters/MN69.html
+http://www.petfinder.org/shelters/MO11.html
+http://www.petfinder.org/shelters/TX254.html
+http://www.petfriendly-hotels.com/first_aid.htm
+http://www.pethealthcare.net/html/body_breeding_dogs.html
+http://www.pethealthcare.net/html/body_canine_bloat.html
+http://www.pethealthcare.net/html/body_canine_inhalant_allergy.html
+http://www.petitbourgeois.com/
+http://www.petplanet.co.uk/petplanet/health/behaviour_statusrelatedaggression.htm
+http://www.petpublishing.com/dogken/articles/insurance.shtml
+http://www.petrescue.com/library/start-rescue.htm
+http://www.petri.co.il/understanding_function_levels_in_windows_2003_ad.htm
+http://www.pets911.com/forthedogs/7habits.php
+http://www.petscorner.com.my/articles/article-Increasing_palatab.html
+http://www.petsmart.com/global/orphan.jsp?ASSORTMENT%3C%3East_id=2534374302023687&CONTENT%3C%3Ecnt_id=10134198673312270
+http://www.petticoated.com/sophiestory.htm
+http://www.pevans.co.uk/Swiggers/FormulaDe2001.html
+http://www.peverelscotland.co.uk/news_story.asp?strareano=62_1&intelement=2066
+http://www.peverelscotland.co.uk/philosophy.asp
+http://www.pewclimate.org/press_room/speech_transcripts/coal.cfm
+http://www.pewinternet.org/PPF/p/1083/pipcomments.asp
+http://www.pewinternet.org/press_release.asp?r=97
+http://www.pewtrusts.com/news/news_subpage.cfm?content_item_id=1284&content_type_id=7&page=nr1
+http://www.pfar.org/govarchives01.htm
+http://www.pfaw.org/pfaw/general/default.aspx?oid=3297
+http://www.pfaw.org/pfaw/general/default.aspx?oid=6905
+http://www.pfblog.com/archives/274_roi_of_prepaying_january_mortgage_bill.shtml
+http://www.pfblog.com/archives/799_new_overtime_rule_passed.html
+http://www.pfc.org.uk/gr-bill/grb-sc3.htm
+http://www.pfc.org.uk/legal/cash-eat.htm
+http://www.pfdf.org/leaderbooks/L2L/summer2001/seifter.html
+http://www.pfdf.org/leaderbooks/hesselbein/beknowdo.html
+http://www.pfdf.org/leaderbooks/l2l/fall2003/allen.html
+http://www.pfdf.org/leaderbooks/l2l/summer2000/roddick.html
+http://www.pfdf.org/leaderbooks/l2l/winter2002/meyerson.html
+http://www.pfir.org/statements/voting
+http://www.pfizer.com/are/investors_releases/2004pr/mn_2004_1020.cfm
+http://www.pfizer.com/are/investors_reports/annual_2003/review/p2003ar16_17.htm
+http://www.pfizer.com/are/mn_investors_corporate_committees.cfm
+http://www.pfizer.com/are/news_releases/2004pr/mn_2004_0708.html
+http://www.pflag.org/index.php?id=298
+http://www.pfm.org/AM/Template.cfm?Section=BreakPoint1&template=/CM/ContentDisplay.cfm&ContentID=14909
+http://www.pfm.org/AM/Template.cfm?Section=The_Wilberforce_Forum&template=/CM/ContentDisplay.cfm&ContentID=14909
+http://www.pfm.org/AM/Template.cfm?Section=The_Wilberforce_Forum&template=/CM/ContentDisplay.cfm&ContentID=15609
+http://www.pfsc.uq.edu.au/01_about_us/completed_research.html
+http://www.pga.com/pgachampionship/2003/news_081603_clubpro.html
+http://www.pga.com/seniorpga/2004/news_interviews_052804_jenkins.html
+http://www.pgatour.com/story/7825321
+http://www.pgc.state.pa.us/
+http://www.pgc.state.pa.us/pgc/cwp/view.asp?Q=163285&A=11
+http://www.pgc.state.pa.us/pgc/cwp/view.asp?a=458&q=160709
+http://www.pgc.state.pa.us/pgc/cwp/view.asp?a=458&q=160709&tx=1
+http://www.pgc.state.pa.us/pgc/cwp/view.asp?a=465&q=151434
+http://www.pgc.state.pa.us/pgc/cwp/view.asp?a=478&q=151105
+http://www.pgcareers.com/index.asp?l1=4&l2=9&l3=87
+http://www.pgcf.org/pgcagrantapp.htm
+http://www.pgdc.com/usa/
+http://www.pgdc.net/BRAF/ARC-19990818145700
+http://www.pgdc.net/BRAF/GPD-20010124122829
+http://www.pgdc.net/BRAF/NAL-20011017115727
+http://www.pgdc.net/BRAF/RR_PGO-index
+http://www.pgdc.net/OSU/GPD-20010124122829
+http://www.pgdc.net/OSU/NAL-20011017115727
+http://www.pgdc.net/OSU/RR_PGO-index
+http://www.pgdc.net/TBF/GPD-20010124122829
+http://www.pgdc.net/TBF/RR_PGO-index
+http://www.pgecorp.com/news/press_releases/Release_Archive2004/040817press_release.shtml
+http://www.pgh.com.sg/news-271104-BT-fit_for_life.jsp
+http://www.pghevents.com/type.php/3
+http://www.pghevents.com/type.php/5
+http://www.pghfamily.net/goodnews/BB-ch5.htm
+http://www.pgl.co.uk/online/ourcentres/centre.asp?centrecode=CF
+http://www.pgmuseum.org/Tuttle/animal~1.htm
+http://www.pgsa.org/pncc.htm
+http://www.ph.ucla.edu/epi/snow.html
+http://www.ph.unimelb.edu.au/~foot/
+http://www.ph.utexas.edu/~gleeson/httb/section1_3_7_3.html
+http://www.phaa.net.au/policy/indigenous.htm
+http://www.phac-aspc.gc.ca/dca-dea/publications/hbsc-2004/chapter_4_e.html
+http://www.phac-aspc.gc.ca/dca-dea/publications/wsc_e.html
+http://www.phac-aspc.gc.ca/dca-dea/pubs/ffc-ief/book1.html
+http://www.phac-aspc.gc.ca/ncfv-cnivf/familyviolence/html/nfntsxvictimsurviv_e.html
+http://www.phac-aspc.gc.ca/pau-uap/fitness/pacp/2005-2006.html
+http://www.phac-aspc.gc.ca/ph-sp/phdd/docs/where/intro.html
+http://www.phac-aspc.gc.ca/ph-sp/phdd/docs/where/mobilization.html
+http://www.phac-aspc.gc.ca/seniors-aines/pubs/sleeping_tranq/what_sleep/whatsleep_e.htm
+http://www.phac-aspc.gc.ca/wn-no/materials/protect-protegez_e.html
+http://www.phacilitate.co.uk/pages/phaciliate/article_mazzo.html
+http://www.phact.org/e/dennis4.html
+http://www.phact.org/e/skeptic/frenfaq.htm
+http://www.phact.org/e/z/newmanl.htm
+http://www.phantomshockey.com/phanphorum/testimonials.asp
+http://www.pharmabiz.com/article/detnews.asp?articleid=11315&sectionid=46
+http://www.pharmaceutical-drug-manufacturers.com/pharmaceutical-classification/pharmaceutical-hs-classification.html
+http://www.pharmaceutical-industry.info/modules/pharmaceutical_projects/pharma_index.html
+http://www.pharmacy.arizona.edu/organizations/asp/home.htm
+http://www.pharmacy.org/jobs/jobavail.html
+http://www.pharmacy.vcu.edu/phartech/techreq.html
+http://www.pharmafocus.com/cda/focusH/1,2109,20-0-0-FEB_2003-focus_home-0-0,00.html
+http://www.pharmapolitics.com/davidgoldbloom.html
+http://www.pharmaquality.com/
+http://www.pharmexec.com/pharmexec/article/articleDetail.jsp?id=123012&sk=&date=&%0A%09%09%09&pageID=2
+http://www.pharmexec.com/pharmexec/article/articleDetail.jsp?id=123893
+http://www.pharmgkb.org/search/pathway/cyclophos/cyclophos-pk.jsp
+http://www.pharmiweb.com/Features/feature.asp?ROW_ID=227
+http://www.pharmiweb.com/Resources/default.asp
+http://www.pharmiweb.com/features/feature.asp?ROW_ID=227
+http://www.pharmiweb.com/features/feature.asp?ROW_ID=460
+http://www.pharmiweb.com/pwToday/default.asp?row_id=376
+http://www.pharmiweb.com/pwToday/default.asp?row_id=387
+http://www.pharmj.com/Editorial/20000304/business/security.html
+http://www.pharmj.com/Editorial/20031115/articles/drugfreesport.html
+http://www.pharmj.com/Hospital/Editorial/200401/technicians/mentalhealthunit.html
+http://www.pharmj.com/students/tp2003/difficultpeople.html
+http://www.pharosgames.com/ally1/walkthru.shtml
+http://www.phaseloop.com/foreignprisoners/news-laos21.html
+http://www.phayul.com/news/article.aspx?id=303&article=Straight+Answers&t=1&c=5
+http://www.phc.vcu.edu/Feature/oldfeature/benzene/
+http://www.phc4.org/reports/cardiaccare/pr_heart.htm
+http://www.phcentral.org/medical/dx-process.html
+http://www.phcentral.org/recognition/memorypages/kathyevans.html
+http://www.phd-survey.org/advice/art_history.htm
+http://www.phd-survey.org/advice/english.htm
+http://www.phdcompletion.org/promising/environmentNelson.asp
+http://www.pheed.com/news
+http://www.phen.ab.ca/materials/het/het12-01c.html
+http://www.phen.ab.ca/materials/intouch/vol3/intouch3-06.html
+http://www.phgu.org.uk/info_database/diseases/cancer/cancer_wales.html
+http://www.phgu.org.uk/info_database/diseases/downs_syndrome/downs.html
+http://www.phil.mq.edu.au/staff/jsutton/MovingThinkingDance.html
+http://www.phila.gov/personnel/webregs/reg05.htm
+http://www.phila.gov/personnel/webregs/reg2209.htm
+http://www.philadelphiaindependent.net/original/html/article/TPI_12_bedford.htm
+http://www.philadelphiaindependent.net/public/articles/7.html
+http://www.philadelphiaindependent.net/public/change_stylesheet.html?ss=larger&ruri=/public/articles/7.html
+http://www.philadelphiaweekly.com/view.php?id=9452
+http://www.philadelphiawriters.com/articles/04_2004/webber.htm
+http://www.philanthropy.com/free/articles/v13/i05/05000101.htm
+http://www.philanthropy.iupui.edu/classnotes2.html
+http://www.philanthropy.iupui.edu/nr-COPPS.html
+http://www.philanthropynow.com/pn/supporttools.htm
+http://www.philanthropyroundtable.org/magazines/2003/january/harperinterview.html
+http://www.philanthropyroundtable.org/magazines/2004/january/Rating%20Services.htm
+http://www.philaprintshop.com/birch.html
+http://www.philaprintshop.com/currquer.html
+http://www.philbrodieband.com/jokes_tongue_twister.htm
+http://www.philcallaway.ab.ca/articles/christmas_story.htm
+http://www.philcollins.co.uk/shop2.htm
+http://www.philhine.org.uk/writings/ktul_darkmess.html
+http://www.philipglass.com/?cmd=biographies&contents=3
+http://www.philipglass.com/cgi-bin/guestbook.cgi?size=100000
+http://www.philipglass.com/html/recordings/kronos-performs-philip-glass.html
+http://www.philipglass.com/html/recordings/music-in-12-parts.html
+http://www.philkaplan.com/thefitnesstruth/RadioShowMENU.htm
+http://www.phillipslaw.com/dui/yourrights.php
+http://www.phillyburbs.com/pb-dyn/news/239-01252005-438182.html
+http://www.phillyburbs.com/pb-dyn/news/93-02022005-442997.html
+http://www.phillyimc.org/
+http://www.phillytown.com/pubscaperead.asp?v1=bentelbow&v2=The+Bent+Elbow&v3=bent_elbo.htm
+http://www.philmore-datak.com/page_199.htm
+http://www.philocrites.com/archives/001966.html
+http://www.philonline.com.ph/~pctvf/abtchild.html
+http://www.philosophers.co.uk/portal_article.php?id=546
+http://www.philosophicalgourmet.com/advice.htm
+http://www.philosophy.leeds.ac.uk/Philosophy%20undergraduate/structure.htm
+http://www.philosophynow.org/archive/articles/49news.htm
+http://www.philosophynow.org/issue51/51blumenau.htm
+http://www.philosophypages.com/hy/2b.htm
+http://www.philosophypages.com/hy/3n.htm
+http://www.philosophypages.com/hy/5f.htm
+http://www.philosophypages.com/hy/5i.htm
+http://www.philosophypages.com/lg/e07b.htm
+http://www.phish.com/coventrynews/letter.html
+http://www.phishare.org/documents/EarthPolicy/2395/
+http://www.phishare.org/documents/icddrb/2738/
+http://www.phlebotomy.org/disc_Phleb1_tocf.htm
+http://www.phlf.org/plannedgiving/
+http://www.phlux.net/bboard/message-4848.html
+http://www.phmainstreet.com/mba/pride/db100aex.htm
+http://www.phmc.state.pa.us/ppet/roads1/page3.asp?secid=31
+http://www.phmovement.org/md/md-english.html
+http://www.phocuswright.com/events/travdex-03-program.php
+http://www.phocuswright.com/events/travdex-04-program.php
+http://www.phoenix5.org/Basics/treatsides/incontinence/incontMorganstern.html
+http://www.phoenix5.org/essays2rvy/rvy021021seeing.html
+http://www.phoenixcareersearch.net/np9-wallStreetJournal13.html
+http://www.phoenixcontact.com/com/service/16506.htm
+http://www.phon.ucl.ac.uk/home/estuary/trudgill.htm
+http://www.phon.ucl.ac.uk/home/richardh/deference.htm
+http://www.photius.com/countries/brazil/glossary/
+http://www.photo.net/bboard/q-and-a-fetch-msg?msg_id=00CYa8
+http://www.photo.net/learn/darkroom/black-and-white-intro
+http://www.photofocus.com/showarchive.php?aid=56&cid=7
+http://www.photon-magazine.com/news/news_2004-11_%20eu%20feat%20Apollon.htm
+http://www.phouka.com/travel/travelogue/day3.html
+http://www.phowmo.com/sgc/shorts/sgodnt01.html
+http://www.php-mag.net/itr/online_artikel/psecom,id,637,nodeid,114.html
+http://www.php.net/
+http://www.php.net/function.key
+http://www.php.net/key
+http://www.phparch.com/discuss/index.php/t/1237/0/
+http://www.phppatterns.com/index.php/article/articleview/30/1/1/
+http://www.phppatterns.com/index.php/article/articleview/35/1/2/
+http://www.phptr.com/articles/article.asp?p=165225
+http://www.phptr.com/articles/article.asp?p=26241&seqNum=9
+http://www.phptr.com/articles/article.asp?p=360649&seqNum=7
+http://www.phptr.com/title/013146745X
+http://www.phptr.com/title/0131476548
+http://www.phrack.org/phrack/25/P25-07
+http://www.phrack.org/show.php?p=25&a=7
+http://www.phrases.org.uk/bulletin_board/33/messages/429.html
+http://www.phrases.org.uk/meanings/him.html
+http://www.phrases.org.uk/meanings/proverbs.html
+http://www.phreacs.com.au/tanerai/lesson_04.html
+http://www.phreak.co.uk/stonehenge/psb/dicegeor.htm
+http://www.phrusa.org/research/forensics/rwanda/forgrav2.html
+http://www.phrusa.org/research/health_effects/exec.html
+http://www.phrusa.org/research/istanbul_protocol/isethiccode.html
+http://www.phryne.com/dates/DATES.HTM
+http://www.phs.org/healthinfo/tips2000/february2.shtml
+http://www.phsa.ca/News/Pulse/November7-2003.htm
+http://www.phschool.com/eteach/social_studies/2002_04/essay.html
+http://www.phschool.com/science/science_news/articles/anatomy_of_lightning.html
+http://www.phsspca.org/training/basic_control.htm
+http://www.phuket-info.com/picofday.htm
+http://www.phuketdir.com/phuketinfo/beaches.htm
+http://www.phuketisland.com/culture.htm
+http://www.phuketisland.info/eShopWEBs/eshopwebs.htm
+http://www.phy.cam.ac.uk/cavendish/history/years/firstten.php
+http://www.phy.ilstu.edu/programs/ptefiles/hmpg.html
+http://www.phy6.org/earthmag/oersted.htm
+http://www.phy6.org/stargaze/Lsun5wav.htm
+http://www.phys.ksu.edu/area/jrm/outlook.html
+http://www.phys.uu.nl/~suyver/Equiptment.html
+http://www.physica.org/xml/article.asp?article=t100a00088.xml
+http://www.physicalgeography.net/fundamentals/10w.html
+http://www.physicalgeography.net/fundamentals/7p.html
+http://www.physicalgeography.net/physgeoglos/b.html
+http://www.physicalgeography.net/physgeoglos/o.html
+http://www.physicalgeography.net/physgeoglos/s.html
+http://www.physicalplant.louisiana.edu/employ.shtml
+http://www.physicaltherapy.org/packer/backpain/
+http://www.physiciansnews.com/business/904glusman.html
+http://www.physiciansnews.com/cover/499wp.html
+http://www.physiciansnews.com/cover/698.html
+http://www.physiciansnews.com/finance/902.html
+http://www.physiciansnews.com/law/702bernick.html
+http://www.physiciansnews.com/law/897wade.html
+http://www.physics.csbsju.edu/QM/square.12.html
+http://www.physics.curtin.edu.au/teaching/FAQ/FAQstart.html
+http://www.physics.gatech.edu/people/faculty/ethomas.html
+http://www.physics.hku.hk/~nature/CD/regular_e/lectures/chap19.html
+http://www.physics.isu.edu/radinf/terms.htm
+http://www.physics.lsa.umich.edu/academics/research/robinson.htm
+http://www.physics.ohio-state.edu/~aubrecht/106journal.html
+http://www.physics.ohio-state.edu/~dvandom/Edu/newcor.html
+http://www.physics.ox.ac.uk/CM/singlecrystal.htm
+http://www.physics.ox.ac.uk/cm/singlecrystal.htm
+http://www.physics.ubc.ca/~kotlicki/alta_tecnical2.htm
+http://www.physics.ucla.edu/k-6connection/Mass,w,d.htm
+http://www.physics.ucsb.edu/~samuelp/2003_07_01_blogarchive.html
+http://www.physics.umanitoba.ca/IUPAP/C2role.html
+http://www.physics.wsu.edu/academics/labs/101Labs/Projectile(9-15-04).htm
+http://www.physicscentral.com/writers/writers-02-3.html
+http://www.physicsclassroom.com/Class/1DKin/U1L4a.html
+http://www.physicsclassroom.com/Class/waves/U10L4a.html
+http://www.physicsforums.com/archive/t-13290_Hitler's_Second_Book.html
+http://www.physicsforums.com/archive/t-44351_Frame_of_Reference.html
+http://www.physicsforums.com/archive/topic/t-23071_World_Underpopulation_Problem.html
+http://www.physicsforums.com/archive/topic/t-33392_Science_and_Truth.html
+http://www.physicsforums.com/archive/topic/t-44391_Self_taught_trig.html
+http://www.physicsforums.com/showthread.php?goto=lastpost&t=79732
+http://www.physicsroom.org.nz/log/archive/12/losangeles/
+http://www.physicsweb.org/article/world/10/12/2
+http://www.physicsweb.org/article/world/11/4/2
+http://www.physionet.org/faq.shtml
+http://www.physionet.org/tutorials/fmnc/node9.html
+http://www.physioroom.com/news/december01/index.shtml
+http://www.physorg.com/news1077.html
+http://www.physorg.com/news4571.html
+http://www.physsportsmed.com/issues/1996/03_96/artal.htm
+http://www.physsportsmed.com/issues/1996/07_96/colliton.htm
+http://www.physsportsmed.com/issues/1997/01jan/eqpt.htm
+http://www.physsportsmed.com/issues/1998/08aug/mcdevitt.htm
+http://www.physsportsmed.com/issues/1999/02_99/shephard.htm
+http://www.physsportsmed.com/issues/1999/10_15_99/kligman.htm
+http://www.physsportsmed.com/issues/2000/01_00/shelbourne.htm
+http://www.physsportsmed.com/issues/2000/02_00/motivated.htm
+http://www.physsportsmed.com/issues/2001/02_01/killingsworth.htm
+http://www.pia.org.uk/lastyearsAGM.htm
+http://www.pianolane.com/text/catalog/searchresults.asp?start=1&search&sort=2&searchtype=advanced&catnumber=006005000000000000
+http://www.pianolane.com/v2/catalog/searchresults.asp?start=1&search&sort=2&searchtype=advanced&catnumber=002001000000000000
+http://www.pianolane.com/v2/catalog/searchresults.asp?start=1&search&sort=2&searchtype=advanced&catnumber=002008000000000000
+http://www.pianolane.com/v2/catalog/searchresults.asp?start=1&search&sort=2&searchtype=advanced&catnumber=002014000000000000
+http://www.pianolane.com/v2/catalog/searchresults.asp?start=1&search&sort=2&searchtype=advanced&catnumber=007004000000000000
+http://www.pianolane.com/v2/catalog/searchresults.asp?start=1&search&sort=2&searchtype=advanced&catnumber=008005000000000000
+http://www.pianolane.com/v2/catalog/searchresults.asp?start=1&search&sort=2&searchtype=advanced&catnumber=008006000000000000
+http://www.pianolane.com/v2/news/viewarticle.asp?id=528
+http://www.pianolane.com/v2/news/viewarticle.asp?id=570
+http://www.piapico.org/issue_areas/trust_funds.html
+http://www.pic.org/pilp%5Csummergrants.htm
+http://www.picanol.be/PICBESITE/EN/PRESS/PRESSRELEASES/PICWEAVINGSYSTEMS/Press_rel_30-04-2004.htm
+http://www.picard.tnstate.edu/~cmcginnis/PISI431-II.htm
+http://www.picard.tnstate.edu/~cmcginnis/Telepolitics.htm
+http://www.picgames.com/forum/list-away-messages.php?cat=normal
+http://www.pickingjobs.com/Information/information.htm
+http://www.pickupguide.com/layguide/simple.htm
+http://www.picoturbine.com/classroomideas.htm
+http://www.pics.com/highspeed.html
+http://www.pictet.com/en/home/services/forex/forexupdate.html
+http://www.pictographics.com/hostfee.lasso
+http://www.pictureflow.com/making_pictures/
+http://www.picturehouses.co.uk/site/cinemas/Cambridge/ralp.htm
+http://www.picturesofengland.com/England/Gloucestershire/Coleford/The_Wyndham_Arms_Hotel
+http://www.picturesofengland.com/England/Oxfordshire/Henley_on_Thames/Nuffield_Place
+http://www.piedmontcommunities.us/servlet/go_ProcServ/dbpage=page&gid=01002011540939411066522859&pg=01002011540939411066623800&mode=display&listicid=01002011540939411066783006x27x1&liststart=2
+http://www.pierce.ctc.edu/Library/internet/axis.html
+http://www.piercecountywa.org/pc/abtus/ourorg/aud/elections/ceoac/minutes52003.htm
+http://www.piercelaw.edu/risk/vol3/fall/tuler.htm
+http://www.piercelaw.edu/risk/vol3/winter/hilton.htm
+http://www.piercelaw.edu/risk/vol5/spring/drucker.htm
+http://www.piercelaw.edu/risk/vol5/winter/Fischhof.htm
+http://www.piercelaw.edu/risk/vol7/spring/intro.htm
+http://www.piercelaw.edu/risk/vol7/spring/vari.htm
+http://www.piercenet.com/Proteomics/browse.cfm?fldID=6782CD4F-1ECD-4BB9-A64B-FDA0235390D2
+http://www.pierre-chenxu.com/
+http://www.pierreseche.com/VAFranceEnglish.html
+http://www.pietermaritzburg.co.za/business/classifieds.asp?page=4&classType=classifieds
+http://www.pih.org.uk/articles/chetty.html
+http://www.pikapps.net/
+http://www.pikauba.com/asphelp/details.htm
+http://www.pikerpress.com/index.cfm
+http://www.pikespeakpermaculture.org/billmollisonspeaks.html
+http://www.pilchuck.com/educational_program/scholarships.htm
+http://www.pilkington.com/pilkington/corporate/english/company+briefing/business+profile/growth.htm
+http://www.pilkingtonandsons.com/suffering.htm
+http://www.pillar-solutions.com/resources/product_reviews.asp
+http://www.pillsburylaw.com/Go/bios.nsf/professionals/Ronald%20A.%20Fleming
+http://www.pillsburylaw.com/go/areamaster.nsf/practices-all/International%20Trade
+http://www.pilotswanted.com/
+http://www.pima.gov/bos/dist5/dist5.html
+http://www.pima.org/technical_bulletins/tbull102.html
+http://www.pimco.com/LeftNav/Latest+Publications/2004/Dialynas+Paper.html
+http://www.pimlicosoftware.com/support.htm
+http://www.pimptravel.com/01_SxDest_Prostitute.dir/3738f_Philippine_News_Link.htm
+http://www.pims.math.ca/education/2004/workshop/Reform/Israeledu.html
+http://www.pinenet.com/~rooster/karlen-1.html
+http://www.pinetreeweb.com/dewet-chapter-05.htm
+http://www.pinewood.schoolreference.com/old-computer-uses-donate-recycle-upgrade-game.html
+http://www.pinggolf.com/interact_repair.html
+http://www.pingle.derbyshire.sch.uk/newsletter/pingle_newsletter_26.htm
+http://www.pingwales.co.uk/internet/broadband-wales-hit-and-miss.html
+http://www.pinkmonkey.com/booknotes/monkeynotes/pmTimeMachine16.asp
+http://www.pinkmonkey.com/booknotes/monkeynotes/pmTimeMachine18.asp
+http://www.pinko.org/4.html
+http://www.pinkpear.net/bs02/skinstadmoves.htm
+http://www.pinkproducts.co.uk/civilpartnershipsadvice.htm
+http://www.pinkpussycatscorner.com/sleeptight.html
+http://www.pinkribbon.com/diagnosis.htm
+http://www.pinkribbon.com/info.htm
+http://www.pinksheets.com/risk.jsp
+http://www.pinn.net/~sunshine/book-sum/condorcet4.html
+http://www.pinnaclenews.com/sb-edition/letters.php
+http://www.pinnaclewest.com/main/pnw/careers/testing/testing_1.html
+http://www.pinnaclewest.com/main/pnw/investors/presentations/presentations_40.html
+http://www.pinnadent.com/feart.html
+http://www.pinr.com/report.php?ac=view_printable&report_id=242&language_id=1
+http://www.pinr.com/report.php?ac=view_report&report_id=242&language_id=1
+http://www.pinsonault.com/news_priorauth.asp
+http://www.pioneerthinking.com/ara-gardenserenity.html
+http://www.pioneerthinking.com/gasoline.html
+http://www.pioneerthinking.com/winterskin.html
+http://www.pipa.org/OnlineReports/BFW/finding1.html
+http://www.pipe-line.com/archive/archive_98-05/98-05_associations.html
+http://www.pipeline.com/~jude/Play%20Synopses.htm
+http://www.pipersclub.co.nz/
+http://www.piperspiece.co.uk/feed.htm
+http://www.pipingdesigners.com/Thinking%20outside%20the%20box.htm
+http://www.pipsqueak.com/skills/Project_Design-t.html
+http://www.pirweb.org/html/htm03e_myth.htm
+http://www.pirweb.org/pir03e_myth.htm
+http://www.pisd.edu/news/2004bond/minutes.shtml
+http://www.pistehors.com/articles/avalanche/avalanche-transceivers.htm
+http://www.pitara.com/activities/craft.asp
+http://www.pitchadjust.com/site/articles/article.php?article_id=2497
+http://www.pitcherplant.org/papers/CALGARY.htm
+http://www.pitchforkmedia.com/columns/resonant-frequency/06-10-05.shtml
+http://www.pitchforkmedia.com/features/artistlists/c/cross_david-05/
+http://www.pitchforkmedia.com/news/05-04/11.shtml
+http://www.pitchforkmedia.com/news/05-05/09.shtml
+http://www.pitchforkmedia.com/news/05-06/06.shtml
+http://www.pitchforkmedia.com/news/05-06/23.shtml
+http://www.pitchforkmedia.com/watw/02-05/krautrock.shtml
+http://www.pitching.com/conditioning_program.php
+http://www.piton.org/default.asp?nav_id=5&subnav=18
+http://www.pitpass.com/fes_php/pitpass_feature_item.php?fes_art_id=10344
+http://www.pitt.edu/~biohome/Dept/Frame/applytograduateschool.htm
+http://www.pitt.edu/~dash/grimm011.html
+http://www.pitt.edu/~oafa/biolsctarg.html
+http://www.pitt.edu/~press/news/stephaniepr.html
+http://www.pitt.edu/~property/tenantrights.html
+http://www.pitt.edu/~sac/October%202004.htm
+http://www.pittsbororelayforlife.org/ReasonForRelay.htm
+http://www.pittsburghlive.com/x/tribune-review/education/s_248931.html
+http://www.pittsburghlive.com/x/tribune-review/entertainment/movies/info/nowshowing.php
+http://www.pittsburghlive.com/x/tribune-review/health/s_167266.html
+http://www.pittsburghlive.com/x/tribune-review/news/s_164823.html
+http://www.pittsburghlive.com/x/tribune-review/pittsburgh/s_151968.html
+http://www.pittsburghlive.com/x/tribune-review/specialreports/buriedlegacy/s_88316.html
+http://www.pittsburghlive.com/x/tribune-review/specialreports/enterprise2005/s_306304.html
+http://www.pittsburghlive.com/x/tribune-review/sports/steelerslive/s_291292.html
+http://www.pittsburghlive.com/x/tribune-review/sundayextras/faywest/?record=2
+http://www.pittsburghlive.com/x/tribune-review/sundayextras/monvalley/?record=2
+http://www.pittsburghlive.com/x/tribune-review/sundayextras/westmoreland/?record=1
+http://www.pittsfieldhistory.org/index.php?section=history&content=bios_reader_james
+http://www.pittstate.edu/ssas/goal6.html
+http://www.pitzer.edu/offices/human_resources/jobs/staff.asp
+http://www.pixar.com/companyinfo/jobs/howto.html
+http://www.pixelgirlpresents.com/
+http://www.pixelgirlpresents.com/index.php
+http://www.pixmania.co.uk/uk/uk/xx/xx/0-77/25/6/criteresn.html
+http://www.pjb.co.uk/npl/bp10.htm
+http://www.pjb.com.au/comp/tea.html
+http://www.pjhealy.com/coldwar/final.html
+http://www.pjonline.com/Editorial/20050507/comment/lett01.html
+http://www.pjpres.org/
+http://www.pju.org/nuevo/basepanjuv2004eng.htm
+http://www.pju.org/nuevo/basepanjuv2005eng.htm
+http://www.pkal.org/open.cfm?d_id=294
+http://www.pkarchive.org/column/8900.html
+http://www.pkarchive.org/economy/FearEconomy.html
+http://www.pkarchive.org/global/yergin.html
+http://www.pkf.co.uk/web/pkfweb.nsf/pagesByID/ID5BCE47865FEF668C80256F56003A35CE?opendocument
+http://www.pla.blogspot.com/2002_10_13_pla_archive.html
+http://www.placedesarts.ca/groupmusic.html
+http://www.placerdome.com/newsroom/templates/newsrelease_master.jsp?INFORMATIONRELEASEOID=12009
+http://www.placerdome.com/newsroom/templates/newsrelease_master.jsp?INFORMATIONRELEASEOID=12010
+http://www.plaidcymru.org/press031030a.html
+http://www.plainenglish.co.uk/europe.html
+http://www.plainenglish.co.uk/issue40.html
+http://www.plainenglish.co.uk/issue47.html
+http://www.plainlanguagenetwork.org/Legal/leonard.html
+http://www.plainsinstitute.com/index.php
+http://www.plakatthai.com/drsmith.html
+http://www.plan-uk.org/uk/action/campaigns/?view=textonly
+http://www.plan-uk.org/uk/action/campaigns/giveusaminute/
+http://www.plan2ipo.com/failure.htm
+http://www.planecrashinfo.com/cvr721229.htm
+http://www.planecrashinfo.com/cvr980902.htm
+http://www.planesafe.org/legislation/775-4.htm
+http://www.planet-f1.com/news/story_19996.shtml
+http://www.planet-rugby.com/Teams/South_Africa/story_41145.shtml
+http://www.planet-rugby.com/Teams/Tonga/story_37086.shtml
+http://www.planet-rugby.com/Teams/Wales/story_40037.shtml
+http://www.planet-source-code.com/
+http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=16&lngWId=9
+http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1619&lngWId=8
+http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=58182&lngWId=1
+http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=58386&lngWId=1
+http://www.planet-teddybear.com/updateimages/2004/november/pattern/index.shtml
+http://www.planet-teddybear.com/updateimages/2004/november/pattern/print.shtml
+http://www.planetannihilation.com/coreprime/asp/listunits_read.asp?id=80105
+http://www.planetannihilation.com/madta/units_arm.asp
+http://www.planetark.com/dailynewsstory.cfm/newsid/26633/newsDate/17-Aug-2004/story.htm
+http://www.planetark.com/dailynewsstory.cfm/newsid/29217/story.htm
+http://www.planetark.com/envpicstory.cfm/newsid/24503
+http://www.planetark.com/envpicstory.cfm/newsid/29358
+http://www.planetark.org/dailynewsstory.cfm/newsid/26633/story.htm
+http://www.planetary.org/html/news/articlearchive/headlines/2003/flightpath-to-mars4.html
+http://www.planetary.org/news/2004/beagle2_inquiry-report_0524.html
+http://www.planetary.org/news/2004/mer-update_2-5-04.html
+http://www.planetary.org/news/2004/mer-update_3-02-04.html
+http://www.planetary.org/solarsail/Cosmosreport607.htm
+http://www.planetc1.com/cgi-bin/n/search.cgi?category=1&keyword=Will+Brooks
+http://www.planetdiablo.com/darksky/
+http://www.planetdoom.com/doom3cc/
+http://www.planetdreamcast.com/games/reviews/aerowings2/
+http://www.planetdungeonsiege.com/dungeoneers/tutorials/deep_modding.shtml
+http://www.planetf1.com/features/editorial/story_18258.shtml
+http://www.planethoustonamx.com/Shut_Up_Files/SUAD%2071.htm
+http://www.planetmagrathea.com/shortreview.html
+http://www.planetpapers.com/Assets/3885.php
+http://www.planetpdf.com/forumarchive/110759.asp
+http://www.planetquake.com/
+http://www.planetrugby.com/News/story_44485.shtml
+http://www.planetsave.com/index.php?option=com_content&task=view&id=1125&Itemid=34
+http://www.planetside-universe.com/forums/archive/index.php/t-499.html
+http://www.planetsimpson.com/radiohead.aspx
+http://www.planetworldcup.com/CUPS/2006/oceania_p01.html
+http://www.planetworldcup.com/GUESTS/paul20020412.html
+http://www.planetworldcup.com/GUESTS/peter20020619.html
+http://www.planetworldcup.com/GUESTS/peter20031113.html
+http://www.planit.co.uk/planitCatalog/n_product_info.php?mItem=12&products_id=260
+http://www.planitplus.net/careerzone/areas/default.aspx?PID=nf&TOPL=7&SECL=7A&ID=178
+http://www.planitplus.net/careerzone/areas/default.aspx?PID=nf&TOPL=7&SECL=7A&ID=179
+http://www.planitplus.net/careerzone/areas/default.aspx?PID=nf&TOPL=7&SECL=7A&ID=181
+http://www.plankwoodfloors.com/
+http://www.plannedobsolescence.net/
+http://www.plannersweb.com/articles/cogan.html
+http://www.plannersweb.com/articles/look22.html
+http://www.plannersweb.com/wfiles/w269.html
+http://www.plannersweb.com/wfiles/w359.html
+http://www.plannersweb.com/wfiles/w375.html
+http://www.planning-inspectorate.gov.uk/cymru/wal/appeals/enforcement_appeals/making_enfo_appeal_jan04_appendix5_e.htm
+http://www.planning-inspectorate.gov.uk/pins/agency_info/ppu/ppu_instructions.htm
+http://www.planning-inspectorate.gov.uk/pins/appeals/costs/circular08_19930329.htm
+http://www.planning.dot.gov/Documents/PublicInvolvement/arcata.htm
+http://www.planning.go.ke/Narc_Economic_Achievements_2003.html
+http://www.planning.org/25anniversary/influentials.htm
+http://www.planning.org/conferencecoverage/2004/saturday/charrette.htm
+http://www.planning.org/consultant/consult4.html
+http://www.planning.org/fromwashington/
+http://www.planning.org/joinapa/
+http://www.planning.org/newsreleases/2005/ftp052405.htm
+http://www.planning.org/thecommissioner/19952003/fall96.htm
+http://www.planning.org/thecommissioner/19952003/summer02.htm
+http://www.planning.org/thecommissioner/19952003/summer02.htm?project=Print
+http://www.planning.unc.edu/news/Walking.htm
+http://www.planningni.gov.uk/A-Z_Index.htm
+http://www.planningreport.com/tpr/?module=displaystory&story_id=1086&format=html
+http://www.planorganic.com/articles.htm
+http://www.plant-maintenance.com/m-news/edition15.shtml
+http://www.plant-maintenance.com/m-news/edition45.shtml
+http://www.plant-maintenance.com/m-news/edition46.shtml
+http://www.plantanswers.com/How_to_Select_and_PlantTree.htm
+http://www.plantanswers.com/How_to_Select_and_Plant_a_Tree.htm
+http://www.plantanswers.com/garden_column/aug_02/3.htm
+http://www.plantanswers.com/garden_column/july02/3.htm
+http://www.plantanswers.com/sale.htm
+http://www.plantapalm.com/vpe/ethnobotany/vpe_ethnobotany4-4.htm
+http://www.plantpatent.com/articles.html
+http://www.plantphysiol.org/cgi/content/full/132/3/1153
+http://www.plantphysiol.org/cgi/content/full/137/1/297
+http://www.plants.ox.ac.uk/ofi/prospect/backg.htm
+http://www.plantstress.com/methods/PotExp.htm
+http://www.plantzafrica.com/plantefg/geraniummulti.htm
+http://www.plantzafrica.com/plantqrs/siphonaeth.htm
+http://www.planware.org/exlfaq1.htm
+http://www.planware.org/salepwb.htm
+http://www.planware.org/salepwe.htm?source=trpanel
+http://www.plasmatvbuyingguide.com/plasmatvreviews/plasma-vs-lcd.html
+http://www.plasmatvbuyingguide.com/productreviews/companyreviews.html
+http://www.plasmawarehouseuk.com/jargon-explained.htm
+http://www.plastic.com/comments.html;sid=04/12/21/18572322;cid=41
+http://www.plasticbag.org/archives/2004/06/developing_a_url_structure_for_broadcast_radio_sites.shtml
+http://www.plasticbag.org/archives/2004/07/what_you_should_know_before_starting_a_doctorate.shtml
+http://www.plasticbag.org/archives/2005/01/a_really_rough_proposal_for_an_apple_media_hub_part_two.shtml
+http://www.plasticbag.org/archives/2005/03/social_software_for_settop_boxes.shtml
+http://www.plasticbag.org/archives/2005/06/on_leaving_and_rejoining_services_online.shtml
+http://www.plasticsindustry.org/public/oheic/oheic.htm
+http://www.plasticsindustry.org/public/worksafe/faqs.htm
+http://www.plasticsurgery.org/public_education/procedures/SkinManagement.cfm
+http://www.plasticsurgery4u.com/web_links_folder/barnes_noble_difference.html
+http://www.platinumplusmiles.com/rules.html
+http://www.platts.com/Electric%20Power/Resources/European%20Glossary/
+http://www.platts.com/Metals/Resources/Whats%20moving%20the%20market/
+http://www.platts.com/Oil/Newsletters%20&%20Reports/US%20Crudewire/
+http://www.plaxo.com/privacy/policy
+http://www.play-asia.com/paOS-13-28-link-71-9h-70-ckm.html
+http://www.play.net/forums/messages.asp?forum=20&category=2&topic=9
+http://www.playamayanews.com/article402.html
+http://www.playbill.com/features/article/90627.html
+http://www.playbill.com/news/article/92288.html
+http://www.playbill.com/news/article/93282.html
+http://www.playbill.com/news/article/93442.html
+http://www.player2player.net/index.php?name=News&file=article&sid=8
+http://www.players-golf.net/TommyBahama/TBshirts3.shtml
+http://www.playingbyear.com/tankarena/
+http://www.playingfieldpromotions.com/index.asp
+http://www.playinginfog.com/kudos2.html
+http://www.playjazzguitar.com/letter.html
+http://www.playkingdoms.com/pk/museum/one/figperkey.asp
+http://www.playordraw.com/db/article.asp?id=96
+http://www.playusa.com/playusa.asp?page=title&r=R1&title=114856
+http://www.playusa.com/playusa.asp?page=title&r=R1&title=161284
+http://www.playwinningpoker.com/rgp/01/july01.html
+http://www.playwinningpoker.com/rgp/early99.html
+http://www.pleasantondowntown.net/directory.php?page=10&id=&kw=
+http://www.pleasantondowntown.net/directory.php?page=13&id=&kw=
+http://www.pleasantondowntown.net/directory.php?page=24&id=&kw=
+http://www.pleasantondowntown.net/directory.php?page=9&id=&kw=
+http://www.pleasureunitbar.com/bandprofiles_r.htm
+http://www.plentyoffish.com/interests/eating.aspx
+http://www.plentyoffish.com/interests/walking.aspx
+http://www.plentyoffish.com/personals/37onlinedating15.htm
+http://www.plentyoffish.com/personals/482onlinedating.htm
+http://www.plentyoffish.com/personals/549onlinedating28.htm
+http://www.plentyoffish.com/personals/848onlinedating.htm
+http://www.plentyoffish.com/personals/9078onlinedating.htm
+http://www.plexusguam.com/biograph.htm
+http://www.pliableproducts.com/california.htm
+http://www.plig.org/xwinman/basics.php
+http://www.plig.org/xwinman/resource.php
+http://www.plim.org/Male%20and%20Female%20Androgyny.htm
+http://www.plotinus.com/exercise_subpersonalities2_copy.htm
+http://www.plotinus.com/exercise_subpersonalities_copy(3).htm
+http://www.ploughshares.ca/CONTENT/ABOLISH%20NUCS/BMD%20Page/BMD.update.htm
+http://www.ploughshares.ca/CONTENT/BRIEFINGS/brf021.html
+http://www.ploughshares.ca/CONTENT/CONTROL%20WEAPONS/LACCsmallarmsLatinAmericaJuly2000.html
+http://www.ploughshares.ca/CONTENT/MONITOR/mons99f.html
+http://www.ploughshares.ca/CONTENT/REDUCE%20MILITARY/CdnDefencePolicylist.html
+http://www.ploughshares.ca/content/BRIEFINGS/brf016.html
+http://www.ploughshares.ca/content/BRIEFINGS/brf017.html
+http://www.ploughshares.ca/content/BRIEFINGS/brf045.html
+http://www.ploughshares.ca/content/MONITOR/mond01e.html
+http://www.ploughshares.ca/content/MONITOR/mons96d.html
+http://www.ploughshares.ca/content/REDUCE%20MILITARY/CdnDefencePolicylist.html
+http://www.plowsharesactions.org/sunda%20times-infiltration.htm
+http://www.plu.edu/print/catalog/degrees-courses/coop.html
+http://www.plu.edu/scene/issue/2005/summer/features/garfield-street.html
+http://www.pluggedinonline.com/movies/movies/a0001984.cfm
+http://www.pluggedinonline.com/movies/movies/a0002105.cfm
+http://www.plumbingstore.com/ssink.html
+http://www.plumchoice.com/basic.html
+http://www.plumcreek.com/company/tree_species.cfm
+http://www.plumtree.com/applications/sales_support/
+http://www.plumtree.com/applications/sales_support/mazda.asp
+http://www.plumtree.com/jp/applications/sales_support/mazda.asp
+http://www.plumtree.com/news_events/pressreleases/2003/press051403.htm
+http://www.plusroot.com/dbook/01Puzzle.html
+http://www.plusroot.com/dbook/16Intend.html
+http://www.plussizeliving.com/articles/article.html?id=402
+http://www.plvsc.co.uk/members_scooters/
+http://www.plwha.org.au/PLWHA/TEXT%20ONLY%20PLWHA/HTML/about_plwha/ruralprojects.htm
+http://www.plymouth.ac.uk/staff/awilliams
+http://www.plymouthtea.com/abouttea.html
+http://www.pm.gov.au/news/Interviews/Interview1156.html
+http://www.pm.gov.pg/pmsoffice/pmsoffice.nsf/0/1C4BC655F126D2CD4A256C3D002DC7C3?OpenDocument
+http://www.pm.gov.pg/pmsoffice/pmsoffice.nsf/0/7FDE881E18BF99704A256C3D002DC6B3?OpenDocument
+http://www.pm.gov.uk/output/page2498.asp
+http://www.pm.gov.uk/output/page2510.asp
+http://www.pm.org/successful/
+http://www.pmachine.com/forum/threads.php?id=26448_0_19_0_C
+http://www.pmb.co.nz/hobbycorner/pages/intmicro.htm
+http://www.pmb.ox.ac.uk/alumni/paragraphs_1970s.html
+http://www.pmc.edu/ELI/questions.html
+http://www.pmc.gov.au/about_pmc/divisions/economic/index.cfm
+http://www.pmc.gov.au/recruitment/workplace_diversity/3_program.cfm
+http://www.pmdinc.cc/services.htm
+http://www.pmel.noaa.gov/pubs/outstand/stab2040/atmospheric.shtml
+http://www.pmel.noaa.gov/tao/elnino/el-nino-story.html
+http://www.pmel.noaa.gov/~kessler/occasionally-asked-questions.html
+http://www.pmengineer.com/CDA/ArticleInformation/features/BNP__Features__Item/0,2732,61038,00.html
+http://www.pmengineer.com/CDA/ArticleInformation/features/BNP__Features__Item/0,2732,66380,00.html
+http://www.pmg.org.za/briefings/040615depsport.htm
+http://www.pmg.org.za/briefings/briefings.php?id=100
+http://www.pmiapp.com/APP_Web_Old/cutedge/a_cut_apstest_p5.html
+http://www.pmiaus.com/company/
+http://www.pmibookstore.org/
+http://www.pmimilehi.org/PMI2/webroot/cfm/root/promentoring.cfm
+http://www.pmjobs.net/NewsView.asp?id=1768
+http://www.pml.ac.uk/amt/publications/dsr/special.htm
+http://www.pmo.gov.my/WebNotesApp/PMMain.nsf/hv_PMKiniSemasaNew/06EB17B44F81B5D348256F960034626B
+http://www.pmq.com/mag/2003spring/big_dave_ostrander.shtml
+http://www.pmq.com/staying_alive.shtml
+http://www.pmra-arla.gc.ca/english/consum/mosquitos-e.html
+http://www.pmrma.army.mil/cleanup/facts/ESDNorth%20Plants%20Soil%20Volume.htm
+http://www.pmtexpo.it/?IDsezione=11850
+http://www.pmwf.com/Watches/Watch%20Sales%20Table.htm
+http://www.pnas.org/cgi/content/full/94/24/12823
+http://www.pnas.org/cgi/content/full/95/9/4816
+http://www.pnas.org/cgi/content/full/96/13/7117
+http://www.pnas.org/cgi/content/full/96/22/12760
+http://www.pnas.org/cgi/content/full/97/24/12985
+http://www.pnas.org/cgi/content/full/97/26/14019
+http://www.pnas.org/cgi/content/full/98/5/2346
+http://www.pnas.org/misc/archive041403.shtml
+http://www.pnca.edu/admissions/tuition/
+http://www.pnefc.premiumtv.co.uk/page/News/NewsDetail/0,,10362~673526,00.html
+http://www.pnhp.org/news/2005/february/bankruptcy_study_hig.php
+http://www.pnionline.com/dnblog/extra/
+http://www.pnionline.com/dnblog/extra/archives/001002.html
+http://www.pnl.gov/ag/usage/confuse.html
+http://www.pnl.gov/er_news/08_95/er_news/ZBRF.MBM.html
+http://www.pns.anl.gov/
+http://www.pnsn.org/REPTS/q00B.html
+http://www.pnsn.org/REPTS/q98C.html
+http://www.pnsn.org/REPTS/q98D.html
+http://www.poagao.org/pjournal.htm
+http://www.pobronson.com/No_To_The_Money.htm
+http://www.pocahontas.org/planningyou/shopping.aspx
+http://www.pocketfactory.com/forum/viewtopic.php?t=1194
+http://www.pocketgps.co.uk/menu_gpsstreetrouting.php
+http://www.pocketpccity.com/
+http://www.pocketpclife.co.uk/softreviewdetails.asp?cat=28&categorytitle=Voice+Recognition%2Ftext+to+speech&type=software
+http://www.pocketpcthoughts.com/forums/viewtopic.php?t=36829
+http://www.poclad.org/bwa/fall03.htm
+http://www.pocreations.com/friendship.html
+http://www.podbaydoor.com/archives/cat_television.html
+http://www.podcast.net/show/47979
+http://www.podcast.net/tag/common
+http://www.podcastingnews.com/details/feeds.feedburner.com/TownSquare/view.htm
+http://www.podgallery.com/html/submissions.html
+http://www.poeforward.com/poeveranda/texts/goethehawthorne-howellsbio.htm
+http://www.poemhunter.com/p/m/poem.asp?poet=3095&poem=376420
+http://www.poems.com/essarsmi.htm
+http://www.poetryconnection.net/search/Lack_of_Steadfastness
+http://www.poetrymagazine.org/magazine/0605/comment_171122.html
+http://www.poetrymagic.co.uk/advanced/truthinpoetry.html
+http://www.poetrysociety.org.uk/news/closeup.htm
+http://www.poetrysociety.org.uk/places/publicat.htm
+http://www.poetrysociety.org.uk/places/simon2.htm
+http://www.poetrysociety.org.uk/poetinthecity/schools.htm
+http://www.poets.org/page.php/prmID/47
+http://www.poetshouse.org/progpoetics.htm
+http://www.poewar.com/
+http://www.poewar.com/archives/2004/10/23/12-exercises-for-improving-dialogue/
+http://www.poewar.com/archives/2004/12/21/document-hack-a-technical-writers-journal-contracting-for-fun-profit/
+http://www.pogge.ca/
+http://www.pogo.org/p/contracts/co-940807-amox.html
+http://www.pohly.com/interview-4.html
+http://www.pohly.com/mags/hospitalliability.html
+http://www.pointoflaw.com/feature/
+http://www.pointsincase.com/columns/amir/1-19-05.htm
+http://www.pointsofdeparture.blogspot.com/
+http://www.pointstone.com/products/systemcleaner/
+http://www.pokemondungeon.com/pokedex/tauros.shtml
+http://www.poker.net/headlines/articles/learningandlying.htm
+http://www.pokermike.com/poetry/Falling.html
+http://www.pokernetwork.com/Nnoticeboard_reply.cfm?Summary_ID=498
+http://www.pokerpages.com/articles/archives/napolitano01.htm
+http://www.pokerpages.com/articles/archives/spath23.htm
+http://www.pokerpages.com/articles/players/stern03.htm
+http://www.pokerplayernewspaper.com/viewarticle.php?id=392
+http://www.pokersyte.com/omaha_holdem_poker.htm
+http://www.polar.icestorm.com/biblebell/n981220.html
+http://www.polar.se/antarktis/lagar_regler/treaty_protocol.html
+http://www.polarbearandco.com/runes.html
+http://www.polarisinstitute.org/polaris_project/corp_security_state/publications_articles/
+http://www.polarisinstitute.org/polaris_project/corp_security_state/publications_articles/missile_defence_june_03_PRINT.htm
+http://www.polas.latentmedium.com/nes/blob.html
+http://www.polb.com/html/1_about/tielines.html
+http://www.poliblogger.com/index.php?cat=1
+http://www.police.wa.gov.au/Services/Traffic/TrafficCameraSection.asp?FrequentlyAskedQuestions
+http://www.policecouldyou.co.uk/default.asp?action=article&ID=106
+http://www.policeone.com/police-products/duty-gear/personal-protective-equipment/articles/92343/
+http://www.policeone.com/policeone/frontend/parser.cfm?object=Columnists&tmpl=article&id=77200
+http://www.policies.uci.edu/adm/procs/800/800-11.html
+http://www.policies.uci.edu/adm/procs/900/900-21.html
+http://www.policy-network.net/php/article.php?sid=5&aid=171
+http://www.policy.ilstu.edu/policydocs/information.htm
+http://www.policyalmanac.org/environment/archive/crs_anwr.shtml
+http://www.policyreview.org/APR01/letters.html
+http://www.policyreview.org/FEB01/abrams.html
+http://www.policyreview.org/FEB01/abrams_print.html
+http://www.policyreview.org/apr01/rozenman.html
+http://www.policyreview.org/apr02/jewett.html
+http://www.policyreview.org/apr04/hess.html
+http://www.policyreview.org/aug02/letters.html
+http://www.policyreview.org/aug03/kagan.html
+http://www.policyreview.org/feb00/Caldwell.html
+http://www.policyreview.org/jun01/eberstadt.html
+http://www.policyreview.org/jun05/hill.html
+http://www.policyreview.org/jun99/eberstadt.html
+http://www.policyreview.org/may98/quotas.html
+http://www.policystrategists.com/seal_history.htm
+http://www.polisci.uci.edu/Graduate_files/pub_choice/pub_choice_main.htm
+http://www.polisci.uci.edu/faculty.htm
+http://www.politicalaffairs.net/article/view/312/1/32
+http://www.politicalaffairs.net/article/view/312/1/46
+http://www.politicalaffairs.net/article/view/467/1/47
+http://www.politicalcartoon.co.uk/html/history/dublin-opinion.html
+http://www.politicalgateway.com/main/columns/read.html?col=220
+http://www.politicalgateway.com/news/read.html?id=2694
+http://www.politicalreviewnet.com/polrev/reviews/MISR/R_1521_9488_091_1004979.asp
+http://www.politicalstrategy.org/archives/000019.php
+http://www.politicaltheory.info/
+http://www.politicalvine.com/announcements/announcementsview.asp?c=17510
+http://www.politicos.co.uk/item.jsp?ID=4691
+http://www.politics.co.uk/campaignsite/engineering-and-physical-sciences-research-council-(epsrc)-$1588947$4.htm
+http://www.politics.co.uk/campaignsite/iea-institute-of-economic-affairs-$7884313$4.htm
+http://www.politics.co.uk/campaignsite/professional-association-of-teachers-(pat)-$3645379$2.htm
+http://www.politics.co.uk/issueoftheday/charles-kennedy-britain-has-three-party-politics-$2805208.htm
+http://www.politics.co.uk/issues/police-funding-$2120139.htm
+http://www.politics.guardian.co.uk/life/feature/story/0,13026,1481436,00.html
+http://www.politics.ie/modules.php?name=News&file=article&sid=5802
+http://www.politics.ox.ac.uk/teaching/grad_pol/readinglist/polgovuk/polgovuk.asp
+http://www.politicsonline.com/coverage/philenq/
+http://www.politixgroup.com/comm266.htm
+http://www.polity.co.uk/global/sidebyside.htm
+http://www.polity.org.za/govdocs/green_papers/labour.html
+http://www.polity.org.za/html/govdocs/legislation/basicpop.html
+http://www.poliwatch.org/archives/Analysis/2004/03/index.php
+http://www.polksheriff.org/library/gangs/identifying.html
+http://www.pollingreport.com/ncpp.htm
+http://www.pollutionengineering.com/CDA/ArticleInformation/features/BNP__Features__Item/0,6649,106210,00.html
+http://www.polocrosse.net/aus/nsw/shpanews/jun2003news1.html
+http://www.poloniatoday.com/history11.htm
+http://www.polsci.wvu.edu/ipa/mono/html/mono3.html
+http://www.polska2000.pl/item2619_en.html
+http://www.polyconomics.com/searchbase/gp6.htm
+http://www.polygamyinfo.com/past_media%20plyg%2062%20trib.htm
+http://www.polygamyinfo.com/plygmedia%2003%2011newtimesaz.htm
+http://www.polymath-systems.com/intel/essayrev/sexdiff.html
+http://www.polymerupdate.com/helpdesk/default.htm
+http://www.polytropos.org/
+http://www.polytropos.org/archives/2004/09/the_passing_of.html
+http://www.pomegranatearts.com/project-philip_glass/more.html
+http://www.ponddoc.com/WhatsUpDoc/Plants/EnchantingPlants.htm
+http://www.pool-table-sale.com/pts/bca_10ball.php
+http://www.pool-table-sale.com/pts/bca_cowboy.php
+http://www.pool-table-sale.com/pts/bca_general3.php
+http://www.poole-associates.com/cafesociety.htm
+http://www.pooltherapy.com/
+http://www.poopreport.com/Ask/Content/legs.html
+http://www.poopreport.com/Office/Content/pathological.html
+http://www.poorandstupid.com/
+http://www.poorandstupid.com/2005_05_29_chronArchive.asp
+http://www.poorandstupid.com/chronicle.asp
+http://www.poormissfinch.com/index.php
+http://www.poorschmuck.net/
+http://www.poosh.org/index.php?s=content&p=events
+http://www.pop.umn.edu/bios/Brian_P_McCall.html
+http://www.popastro.com/sections/meteor/rev98.htm
+http://www.popcenter.org/Problems/problem-burglary-family.htm
+http://www.popcenter.umd.edu/people/larsen_ulla/pubs.shtml
+http://www.popecenter.org/about/staff_fellows_scholars.html
+http://www.popechart.com/Papal%20Election.htm
+http://www.popecon.org/forthcomingpapers.php
+http://www.popejoan.com/excerpts.htm
+http://www.popgadget.net/
+http://www.popjustice.co.uk/aaron/trains.htm
+http://www.popmatters.com/books/reviews/s/society-of-others.shtml
+http://www.popmatters.com/columns/warner/020313.shtml
+http://www.popmatters.com/film/reviews/b/beautiful-people.shtml
+http://www.popmatters.com/film/reviews/b/beautiful.shtml
+http://www.popmatters.com/film/reviews/b/breakin-all-the-rules.shtml
+http://www.popmatters.com/film/reviews/d/dawn-of-the-dead-1979.shtml
+http://www.popmatters.com/film/reviews/f/fat-man-and-little-boy.shtml
+http://www.popmatters.com/film/reviews/s/sorority-boys.shtml
+http://www.popmatters.com/film/reviews/w/wet-hot-american-summer.shtml
+http://www.popmatters.com/film/ride-with-the-devil.html
+http://www.popmatters.com/music/concerts/w/wango-tango-2005.shtml
+http://www.popmatters.com/music/reviews/d/davismiles-completemontreux.shtml
+http://www.popmatters.com/music/reviews/u/union-blue.shtml
+http://www.popmatters.com/sports/features/041005-jocks.shtml
+http://www.popmatters.com/sports/features/050126-nikecommercials.shtml
+http://www.popmatters.com/tv/reviews/a/arrested-development.shtml
+http://www.popmatters.com/tv/reviews/l/law-and-order-svu.shtml
+http://www.popmatters.com/tv/reviews/s/6-feet-under-2003.shtml
+http://www.popmatters.com/tv/reviews/t/tru-calling.shtml
+http://www.poppolitics.com/articles/2000-07-18-vpsurvivor.shtml
+http://www.popsci.com/popsci/computers/article/0,20967,1006968,00.html
+http://www.popsci.com/popsci/medicine/article/0,20967,698068,00.html
+http://www.popularhotrodding.com/events/0306sr_reunion/
+http://www.popularhotrodding.com/tech/0302PHR_Troy/
+http://www.popularmechanics.com/automotive/car_care/1266956.html?page=8&c=y
+http://www.popularscience.co.uk/
+http://www.populationconnection.org/Reports_Publications/Publications/publication432.html
+http://www.porkpie.co.uk/shoppe-supplyterms.asp
+http://www.port80software.com/support/articles/webperformance
+http://www.portabletypewriters.com/secrets.htm
+http://www.portadownnews.com/20Jul01.htm
+http://www.portagedailygraphic.com/story.php?id=144493
+http://www.portalmarket.com/tealine.html
+http://www.portalsmag.com/articles/default.asp?ArticleID=4375
+http://www.portalsmag.com/articles/default.asp?ArticleID=5631
+http://www.portaskarate.org/weights.html
+http://www.portblue.com/pub/what-are-expert-systems
+http://www.portercountysheriff.com/blotter/blotter-archives/blotter-04/july.html
+http://www.portishead.org.uk/
+http://www.portlandgeneral.com/about_pge/news/giving_campaign_million.asp
+http://www.portlandphoenix.com/features/other_stories/multi3/documents/04418191.asp
+http://www.portlandphoenix.com/features/top/ts_multi/documents/04258169.asp
+http://www.portlandrobotics.org/index.php?id=68
+http://www.portlandstories.org/000028.html
+http://www.portofcalcutta.com/kopt05012.html
+http://www.portphillip.vic.gov.au/community_group_training.html
+http://www.portseattle.org/about/organization/millerremarks05.shtml
+http://www.portsmouth.gov.uk/living/819.asp
+http://www.portsmouth.gov.uk/living/819.html
+http://www.portsmouth.va.us/tourism/shopping.htm
+http://www.posetech.com/pose_method/technique.html
+http://www.positioning-search-engines.com/kinds.htm
+http://www.positioniseverything.net/articles/float-bugs-1.html
+http://www.positioniseverything.net/easyclearing.html
+http://www.positive-way.com/listenin.htm
+http://www.positiveatheism.org/hist/quotes/dawkins.htm
+http://www.positiveatheism.org/hist/quotes/lecky.htm
+http://www.positiveatheism.org/hist/quotes/quote-h.htm
+http://www.positiveatheism.org/hist/quotes/wright.htm
+http://www.positiveatheism.org/mail/eml8295.htm
+http://www.positiveatheism.org/mail/eml8378.htm
+http://www.positiveatheism.org/mail/eml9547.htm
+http://www.positiveatheism.org/mail/eml9928.htm
+http://www.positiveatheism.org/tocrw.htm
+http://www.positiveatheism.org/writ/alleluyup.htm
+http://www.positiveatheism.org/writ/pkgagme.htm
+http://www.positiveconnections.org/bulletin.htm
+http://www.positivehealth.com/Reviews/books/kaplan69.htm
+http://www.positivehealth.com/permit/Articles/Massage/big45.htm
+http://www.positiveliberty.com/2004/02/cheat-sheet-is-blowin-in-wind.html
+http://www.positiveliberty.com/2005/01/same-sex-marriage-reply-to-pseudo.html
+http://www.positron.com/ut.html
+http://www.posner.com/articles/garrison.htm
+http://www.post-gazette.com/healthscience/19981026wave5.asp
+http://www.post-gazette.com/lifestyle/20010821franticwoman0821fnp3.asp
+http://www.post-gazette.com/localnews/20031222closeuplocal3P3.asp
+http://www.post-gazette.com/pg/03341/248380.stm
+http://www.post-gazette.com/pg/04073/285038.stm
+http://www.post-gazette.com/pg/04119/307558.stm
+http://www.post-gazette.com/pg/04137/316500.stm
+http://www.post-gazette.com/pg/04167/331972.stm
+http://www.post-gazette.com/pg/04272/386393.stm
+http://www.post-gazette.com/pg/04294/398441.stm
+http://www.post-gazette.com/pg/04306/404776.stm
+http://www.post-gazette.com/pg/04315/409165.stm
+http://www.post-gazette.com/pg/04323/413677.stm
+http://www.post-gazette.com/pg/04342/422669.stm
+http://www.post-gazette.com/pg/04347/425044.stm
+http://www.post-gazette.com/pg/04348/425914.stm
+http://www.post-gazette.com/pg/05023/445588.stm
+http://www.post-gazette.com/pg/05031/450455.stm
+http://www.post-gazette.com/pg/05065/467032.stm
+http://www.post-gazette.com/pg/05075/471966.stm
+http://www.post-gazette.com/pg/05085/478099.stm
+http://www.post-gazette.com/pg/05107/489014.stm
+http://www.post-gazette.com/pg/05114/493083.stm
+http://www.post-gazette.com/pg/05132/502769.stm
+http://www.post-gazette.com/pg/05142/491411.stm
+http://www.post-gazette.com/pg/05157/516635.stm
+http://www.post-gazette.com/pg/05160/518067.stm
+http://www.post-gazette.com/pg/05161/519400.stm
+http://www.post-gazette.com/pg/05163/519249.stm
+http://www.post-gazette.com/pg/05163/519829.stm
+http://www.post-gazette.com/pg/05163/520178.stm
+http://www.post-gazette.com/pg/05163/520342.stm
+http://www.post-gazette.com/pg/05168/522925.stm
+http://www.post-gazette.com/pg/05168/523356.stm
+http://www.post-gazette.com/pg/05170/522814.stm
+http://www.post-gazette.com/pg/05171/525312.stm
+http://www.post-gazette.com/pg/05172/525943.stm
+http://www.post-gazette.com/pg/05173/526664.stm
+http://www.post-gazette.com/pg/05174/527016.stm
+http://www.post-gazette.com/pg/05175/527652.stm
+http://www.post-gazette.com/pg/05175/528036.stm
+http://www.post-gazette.com/pg/05177/528123.stm
+http://www.post-literate.com/gerpunx/archives/2005/01/prepare_to_lose_your_mind.php
+http://www.postanarki.net/jason3.htm
+http://www.postcarbon.org/eos/articles_reviews.htm
+http://www.postcolonialweb.org/singapore/literature/jeyaretnam/teabags.html
+http://www.postdoc.ucla.edu/modules/smartfaq/
+http://www.postednote.com/
+http://www.postfix.org/QSHAPE_README.html
+http://www.postgazette.com/healthscience/20021220cellssci2p2.asp
+http://www.postgrad.hobsons.com/study.jsp?id=STUDY_RESEARCH_5
+http://www.postgradmed.com/issues/2000/11_00/zerbe.htm
+http://www.postgresql.org/docs/7.4/static/functions-matching.html
+http://www.postgresql.org/docs/8.0/interactive/plpgsql-statements.html
+http://www.postil.com/postshirut.nsf/misparidE/107?opendocument
+http://www.postnewsline.com/2004/10/strongdouala_ra.html
+http://www.postnewsline.com/2005/05/strongcattu_woo.html
+http://www.postpoppulp.org/story/display/4.html
+http://www.potaroo.net/ispcolumn/2003-07-v4-address-lifetime/ale.html
+http://www.potentialtechnology.com/sportshypnosis.htm
+http://www.pottstownmercury.com/site/news.cfm?newsid=13756070&BRD=1674&PAG=461&dept_id=515154&rfi=6
+http://www.poulsbo.net/msc/
+http://www.poulsbomsc.org/
+http://www.poultry.org/labor_koreanjobs.htm
+http://www.povertyeast.org/jobs/speakers.html
+http://www.powayschools.com/projects/ewe2/introduction.htm
+http://www.powells.com/authors/baxter.html
+http://www.powells.com/authors/chopra.html
+http://www.powells.com/authors/pierre.html
+http://www.powells.com/calendar.html
+http://www.powells.com/cgi-bin/biblio?inkey=17-0071406948-0
+http://www.powells.com/cgi-bin/product?isbn=0312421435
+http://www.powells.com/cgi-bin/product?isbn=0345455770
+http://www.powells.com/cgi-bin/product?isbn=0679775439
+http://www.powells.com/cgi-bin/product?isbn=0897323238
+http://www.powells.com/cgi-bin/product?isbn=1573229326
+http://www.powells.com/features/tolkien.html
+http://www.powells.com/pow/review/2004_08_07.html
+http://www.powells.com/psection/AirAmerica.html
+http://www.powells.com/psection/Reference.html
+http://www.powells.com/review/2004_10_02.html
+http://www.powells.com/review/2005_02_15.html
+http://www.powells.com/review/2005_04_30.html
+http://www.powells.com/subsection/AttheMoviesSideways.1.html
+http://www.powells.com/subsection/AttheMoviesSideways.html
+http://www.powells.com/subsection/ChildrensNativeAmericanStories.html
+http://www.powells.com/subsection/CookingandFoodKidsParties.html
+http://www.powells.com/tnr/review/2001_05_17.html
+http://www.powells.com/usedbooks/ReligionWestern.10.html
+http://www.power-surge.com/transcripts/fox329.htm
+http://www.power-zone.com/sept02newsletter.htm
+http://www.power.org/news/interviews/hawkins/
+http://www.powerballs.com/
+http://www.powercranks.com/newsite/faq.html
+http://www.powerdesigners.com/InfoWeb/design_center/Appnotes_Archive/A1813.shtm
+http://www.powerfuloffers.com/
+http://www.powerhomebiz.com/vol2/liveup.htm
+http://www.powerhomebiz.com/vol33/breakeven.htm
+http://www.powerhomebiz.com/vol52/sale.htm
+http://www.powerhomebiz.com/vol71/comingback.htm
+http://www.powerhomebiz.com/vol76/walton.htm
+http://www.powerhomebiz.com/vol85/difference.htm
+http://www.powerhomebiz.com/vol96/attitude.htm
+http://www.powerhousehosting.net/usespam.htm
+http://www.powerhousetv.com/stellent2/groups/public/documents/pub/phtv_se_000500.hcsp
+http://www.powerhousetv.com/stellent2/groups/public/documents/pub/phtv_yh_bu_gs_000393.hcsp
+http://www.poweringmuscles.com/article.php?article_id=51
+http://www.powerlabs.org/railgunprogress.htm
+http://www.powerlight.com/case-studies/state/san_francisco.shtml
+http://www.powerlight.com/faqs/case_studies.shtml
+http://www.powerlineblog.com/
+http://www.powerlineblog.com/archives/007760.php
+http://www.powerlink.net/fen/FENCU22.htm
+http://www.powerlink.net/fen/JULIA22.htm
+http://www.powerlink.net/fen/mitch.htm
+http://www.powernet.net/~jcrafton/person-c.html
+http://www.powernet.net/~jcrafton/stellr-c.html
+http://www.powerprep.com/prepstra.htm
+http://www.powerquality.com/news/power_detroit_edison_prepared/
+http://www.powertoshare.com/dropzone/index.php?p=332&more=1&c=1
+http://www.poweru.net/ebay/instructor/registration5.asp
+http://www.powerwriting.com/answers.html
+http://www.pownetwork.org/bios/m/m139.htm
+http://www.powysweb.co.uk/english/subcats.php3?cat=alink
+http://www.poynter.org/column.asp?id=34&aid=77396
+http://www.poynter.org/column.asp?id=36&aid=875
+http://www.poynter.org/content/content_view.asp?id=32702
+http://www.poynter.org/content/content_view.asp?id=77423
+http://www.poynton.com/notes/video/Constant_luminance.html
+http://www.poyntonweb.co.uk/
+http://www.pp.msu.edu/cust/Safety/MSDS_Webs/HeavyDutyPrespray.htm
+http://www.pp.okstate.edu/ehs/modules/ergo/Eye.htm
+http://www.ppao.gov.on.ca/sitemap.html
+http://www.pparc.ac.uk/frontiers/archiveText/feature.asp?id=12F1&style=feature
+http://www.ppforum.ca/ow/brison.html
+http://www.ppg.com/ppgaf/pline498.htm
+http://www.ppgworld.com/transcripts/files/BoughtAndScold.htm
+http://www.ppionline.org/ndol/print.cfm?contentid=964
+http://www.pplm.org/clinic/pat_rit/pat_rit.html
+http://www.pplmotorhomes.com/parts/tv-antennas/rv-satellite-dish.htm
+http://www.pplweb.com/about/our+management+team/James+H.+Miller.htm
+http://www.ppnie.com/CalculatorsNowOffLimits.html
+http://www.pponline.co.uk/encyc/0147.htm
+http://www.pponline.co.uk/encyc/0161.htm
+http://www.pponline.co.uk/encyc/0279.htm
+http://www.pponline.co.uk/encyc/0310.htm
+http://www.pponline.co.uk/encyc/0501.htm
+http://www.pponline.co.uk/encyc/0600.htm
+http://www.pponline.co.uk/encyc/0686.htm
+http://www.pponline.co.uk/encyc/0800.htm
+http://www.pponline.co.uk/encyc/0852b.htm
+http://www.pponline.co.uk/encyc/0863.htm
+http://www.pponline.co.uk/encyc/0905.htm
+http://www.pponline.co.uk/encyc/1024.htm
+http://www.pponline.co.uk/encyc/balance-exercise.html
+http://www.pponline.co.uk/encyc/power-training.html
+http://www.pponline.co.uk/encyc/running.htm
+http://www.pponline.co.uk/encyc/team-sport.htm
+http://www.pponline.co.uk/prewp/pp-membertop.html
+http://www.pponline.co.uk/prewp/ppsubs-masters.html
+http://www.ppplants.com/resources/tip/5.19.05.html
+http://www.pprc.org/pubs/grnchain/purchase.cfm
+http://www.pprc.org/pubs/pubslist.cfm
+http://www.ppsp.org/employment.asp
+http://www.ppsv.com/issues/managedcare.htm
+http://www.ppu.org.uk/learn/peaceed/pe_which.html
+http://www.ppu.org.uk/peacematters/1999/pm_99sum_abolish.html
+http://www.pqu.uts.edu.au/surveys/fots.html
+http://www.pra.org.uk/research/projects/tr_1_84.htm
+http://www.pra.org.uk/technical/ecolabel.htm
+http://www.practical-philosophy.org.uk/Volume2Articles/ConferenceReflections.htm
+http://www.practicalanarchy.org/fnb_crass2.html
+http://www.practicalfm.co.uk/shownews.asp?id=76129
+http://www.practicalmoneyskills.com/english/at_home/consumers/debt/out/reducing.php
+http://www.practicalparent.org.uk/boys.htm
+http://www.practicalparent.org.uk/talk.htm
+http://www.practicalpolitics.net/guest/kolmar2.html
+http://www.practicalpreschool.com/site_files/booksindex.html
+http://www.practicalwinery.com/novdec02/novdec02p6.htm
+http://www.practicesource.com/hob/blog/
+http://www.practicesource.com/hob/blog/index.php
+http://www.prague-tribune.cz/2004/1/11.htm
+http://www.prague2001.com/links.htm
+http://www.pragueaccommodations.com/
+http://www.prairiedog.info/prairie_dog_reintroduction.htm
+http://www.prairieghosts.com/ags.html
+http://www.prairieghosts.com/conference.html
+http://www.prairieghosts.com/ouija.html
+http://www.prairienet.org/icpr/archive/news4-97.html
+http://www.prairieshoreproperties.com/financing.htm
+http://www.pratham.org/news/peace_delegation.php
+http://www.pratt.duke.edu/pratt_press/web.php?sid=123&iid=15
+http://www.pratt.duke.edu/students/profiles_auyeung.php
+http://www.pratt.duke.edu/students/profiles_gonce.php
+http://www.praxisinterim.com/casestudies.asp
+http://www.praxisinterim.com/imoftheyear.asp
+http://www.praxisinterim.com/imoftheyear.asp?id=502&section=181
+http://www.praxisinterim.com/imoftheyear.asp?id=503&section=181
+http://www.prb.org/AmeristatTemplate.cfm?Section=RaceandEthnicity&Template=/Topics.cfm&InterestCategoryID=244
+http://www.prb.org/Content/NavigationMenu/PRB/Educators/Build-A-Text1/Build-A-Text.htm
+http://www.prb.org/Content/NavigationMenu/PRB/Educators/Human_Population/Population_Growth/Population_Growth.htm
+http://www.prb.org/Content/NavigationMenu/PRB/PRB_Library/Glossary2/Glossary.htm
+http://www.prb.org/Content/NavigationMenu/PRB/Publications1/Build-A-Text/Build-A-Text.htm
+http://www.prb.org/PrintTemplate.cfm?Section=PRB&template=/ContentManagement/ContentDisplay.cfm&ContentID=12057
+http://www.prb.org/PrintTemplate.cfm?Section=PRB&template=/ContentManagement/ContentDisplay.cfm&ContentID=12344
+http://www.prb.org/Template.cfm?Section=PRB&template=/ContentManagement/ContentDisplay.cfm&ContentID=12057
+http://www.prb.org/Template.cfm?Section=PRB&template=/ContentManagement/ContentDisplay.cfm&ContentID=12344
+http://www.prc.org/resources_student.html
+http://www.prcharness.com/
+http://www.prdomain.com/companies/s/samsung/news_releases/200203mar/pr_samsung_20020306.htm
+http://www.prdomain.com/pr_speak/k_srinivasan_interview.htm
+http://www.pre-conproducts.com/proj.html
+http://www.pre-eclampsia.co.uk/Miranda.html
+http://www.pre.nl/normal.html
+http://www.precious-testimonies.com/Hope_Encouragement/f-j/janie.htm
+http://www.preciouspets.org/truth.htm
+http://www.predecimal.com/forsale/choicecoins.htm
+http://www.predictweather.com/ozone%20depletion/index.asp
+http://www.pref.hiroshima.jp/shoukou/ricchi/ricchi/ryugu-e.html
+http://www.preferredrentals.com/reserve.htm
+http://www.prefixmag.com/features.php?t=interview&f=BritishSeaPower%20Interview%20Part1
+http://www.pregnancy-info.net/QA/answers-Depo_Shot__Please_Read_/
+http://www.pregnancy-info.net/QA/answers-falling_HCG_and_then_rising_/
+http://www.pregnancy.org/article.php?sid=975
+http://www.pregnancy.org/phpBB2/viewtopic.php?p=3709924&
+http://www.pregnancyantenatal.com/showquestion.aspx?Q=750
+http://www.pregnantpause.org/abort/babyhope.htm
+http://www.preksmarties.com/moms/sahm3.htm
+http://www.premiere-racing.com/04_KW_Results/kw_2004_releases.htm
+http://www.premierelasercentre.com/laserhairremoval/faq_gentleyag.asp
+http://www.premiertourismmarketing.com/fyi/aug04.html
+http://www.prenhall.com/author_guide/nontech1/illustrations.html
+http://www.prenhall.com/author_guide/nontech2/illustrations.html
+http://www.prenhall.com/author_guide/tech1/illustrations.html
+http://www.prenhall.com/author_guide/tech2/illustrations.html
+http://www.prenhall.com/cgi-bin/success/polls/insertPoll.pl?definitionFile=StudySkills.def
+http://www.prenhall.com/nellen/html/chapter11.htm
+http://www.prepare.org/children/childrencope.htm
+http://www.preparerespondrecover.com/
+http://www.prepress-skills.wa.edu.au/about_us/facts_about_us.htm
+http://www.prequal1.net/
+http://www.presbyterian.ca/pwsd/apafgh04.htm
+http://www.presbytery.org/news.asp?file=040715.htm
+http://www.preschoolrainbow.org/activities-small.htm
+http://www.preschoolrainbow.org/holiday-craft.htm
+http://www.preschoolrainbow.org/prek-fall.htm
+http://www.preschoolrainbow.org/preschool-outdoor.htm
+http://www.preschoolrainbow.org/preschool-winter.htm
+http://www.prescod.net/politics/
+http://www.presencemultimedia.co.uk/bitsnbobs/onelumportwo/tea_game.swf
+http://www.presentationhelper.co.uk/giving_presentation.htm
+http://www.presentationhelper.co.uk/kennedy_man_on_the_moon_speech.htm
+http://www.presentationhelper.co.uk/president_kennedy_speech_man_moon.htm
+http://www.presentations.com/presentations/technology/article_display.jsp?vnu_content_id=1000738248
+http://www.preservationde.org/gibraltar/gardens/garden_sculpture.htm
+http://www.presidency.gov.eg/html/13_9.htm
+http://www.presidency.ucsb.edu/ws/index.php?pid=3996
+http://www.presidentreagan.info/
+http://www.presidentreagan.info/speeches/brandenburg_gate.cfm
+http://www.presidio.gov/About_the_Presidio/PresidioPost/NovDec2003/PHSH.htm
+http://www.preskorn.com/columns/9611.html
+http://www.press.bayer.com/news/news.nsf/id/815CA88228EF0A70C1256F4E003EBB84
+http://www.press.dtlr.gov.uk/pns/DisplayPN.cgi?pn_id=2001_0615
+http://www.press.jhu.edu/books/hopkins_guide_to_literary_theory/entries/phenomenology.html
+http://www.press.org/abouttheclub/record/1998record/record-1-8-98.html
+http://www.press.uchicago.edu/Misc/Chicago/077977in.html
+http://www.press.uchicago.edu/Misc/Chicago/305724in.html
+http://www.press.uchicago.edu/Misc/Chicago/312283.html
+http://www.press.uchicago.edu/Misc/Chicago/555607in.html
+http://www.press.uchicago.edu/Misc/Chicago/779939.html
+http://www.press.uchicago.edu/Subjects/virtual_sociology.html
+http://www.press.uchicago.edu/Subjects/virtual_women.html
+http://www.press.uillinois.edu/epub/books/eick/ch4.html
+http://www.press.uillinois.edu/epub/books/rose/ch5.html
+http://www.press.uillinois.edu/epub/books/sinke/ch1.html
+http://www.press.uillinois.edu/journals/contours/1.2/br3.html
+http://www.press.uillinois.edu/journals/lhr/toc.php
+http://www.press.umich.edu/jep/08-01/syropoulos.html
+http://www.press.umich.edu/jep/works/DanieContr.html
+http://www.pressaction.com/news/weblog/full_article/mickeyz06202005
+http://www.pressaction.com/news/weblog/full_article/wheeler07282004/
+http://www.pressbox.co.uk/detailed/29673.html
+http://www.pressbox.co.uk/detailed/International/Hair_care_Trends_this_summerHair_care_Trends_this_summer_25869.html
+http://www.pressdigest.org/english.html
+http://www.pressgazette.co.uk/?t=article&l=the_good_the_bad
+http://www.pressiechurch.org/Theol_1/covenant__in__the__scottish__experience.htm
+http://www.pressrepublican.com/outdoors/lib/03312002out1.htm
+http://www.pressurebasketball.com/newreview.html
+http://www.pressxchangeusa.com/main.cfm?P=pxc_terms_ENG
+http://www.prestigeproperty.co.uk/search_result.asp?Country=Spain&Region=North%20East%20Spain&County=Costa%20Brava
+http://www.prestosports.com/features.html
+http://www.pretorianews.co.za/index.php?fSectionId=672&fArticleId=2405636
+http://www.pretty-scary.com/augusta-ga-meet-single/augusta-ga-meet-single.php?key=augusta%20ga%20meet%20single
+http://www.pretty-scary.com/single-network/single-network.php?key=single%20network
+http://www.pretty-scary.com/winnipeg-dating-club-meet-single-in-your-area/winnipeg-dating-club-meet-single-in-your-area.php?key=winnipeg%20dating%20club%20meet%20single%20in%20your%20area
+http://www.preventcancer.com/losing/acs/wealthiest_links.htm
+http://www.preventgenocide.org/lemkin/AxisRule1944-1.htm
+http://www.prevention.com/article/0,5778,s1-1-74-206-2446-1,00.html
+http://www.prevention.com/article/0,5778,s1-2-56-235-3926-4,00.html
+http://www.prevention.com/article/0,5778,s1-2-92-221-3926-4,00.html
+http://www.preventionmouthrinse.com/BoardExaminationTips.html
+http://www.preventivecare.com/toc.html
+http://www.prevlink.org/therightstuff/teachers/talking.html
+http://www.prevx.com/emailsupport.asp
+http://www.prex.com/sell-foreign-dvds.html
+http://www.prfirms.org/resources/nike/nike071403.asp
+http://www.prfirms.org/resources/publications/hiring_firm.asp
+http://www.prgs.edu/environment/randwhat.html
+http://www.prguru.com/producing_vnrs.htm
+http://www.prh.noaa.gov/itic/library/pubs/glossary/tsu_glossary_html/tsunami_glossary6.html
+http://www.price-pottenger.org/Articles/Acid_alk_bal.htm
+http://www.pricerunner.co.uk/home-appliances/cookers/215782/details
+http://www.pricerunner.co.uk/home-appliances/cookers/218268/details
+http://www.pricerunner.co.uk/home-appliances/kettles/143062/details
+http://www.pricerunner.com/kids-and-family/toys/freetext/6?a_type=build&a_build=block
+http://www.pricerunner.com/sound-and-vision/sound/audio-systems/
+http://www.pricescope.com/MSU/leakage.asp
+http://www.pricingsociety.com/conference/meeting4-23.asp
+http://www.pricingsociety.com/ppsinthenews.asp?nid=177
+http://www.pridelondon.ca/sponsorsvendors.html
+http://www.priestsforlife.org/magisterium/99-11-15adlimina.html
+http://www.primaat.com/quotes
+http://www.primacycompanies.com/modern/weekly.cfm
+http://www.primal-page.com/stett.htm
+http://www.primalseeds.org/urbanplants.htm
+http://www.primarymatters.com/Contact.htm
+http://www.primaryresearch.org/PRTHB/Dane/Cahill/cahill.htm
+http://www.prime-leisure.com/pricelist.html
+http://www.primebooks.net/books/book_detail.asp?isbn=0-9668968-8-2
+http://www.primefocus.com/
+http://www.primeideas.com/fofmerchandise.asp
+http://www.primelocation.com/estate-agents/properties/a/rich/uk/y/sr/s/
+http://www.primelocation.com/farms-estates-and-land/developing-your-property/
+http://www.primelocation.com/uk-property-for-sale/browse/Houses/uk/england/london/north_west_london/hampstead_heath_station/61/
+http://www.primelocation.com/uk-property-to-rent/browse/all/uk/england/london/west_london/shepherds_bush/
+http://www.primelocation.com/uk-property-to-rent/browse/all/uk/england/london/west_london/shepherds_bush_station/
+http://www.primeminister.govt.nz/oldpms/1974rowling.html
+http://www.primepointfoundation.org/donald_interview.htm
+http://www.primerehab.com/pages/wellness.html
+http://www.primetimeshortwave.com/
+http://www.primetravels.com/modesofpayment.shtml
+http://www.primusweb.com/fitnesspartner/library/weight/weight02.htm
+http://www.princegeorge.com/royalpurple/info.html
+http://www.princeofwales.gov.uk/speeches/princestrust_25101996.html
+http://www.princes-trust.org.uk/Main%20Site%20v2/14-30%20and%20need%20help/advice%20for%20careleavers.asp
+http://www.princeton.edu/hr/handbook/partone/timeoff.htm
+http://www.princeton.edu/main/news/archive/S11/04/86Q66/
+http://www.princeton.edu/main/news/archive/S11/04/86Q66/index.xml
+http://www.princeton.edu/main/news/archive/S11/41/04S81/index.xml
+http://www.princeton.edu/main/news/archive/S11/53/24A92/index.xml?section=featured
+http://www.princeton.edu/odus/student_organizations/forms.html
+http://www.princeton.edu/patents/intelprop.htm
+http://www.princeton.edu/pr/catalog/ua/03/389.htm
+http://www.princeton.edu/pr/pub/ags/04/062.htm
+http://www.princeton.edu/pr/pwb/02/1118/3a.shtml
+http://www.princeton.edu/pr/pwb/03/0421/1b.shtml
+http://www.princeton.edu/pr/pwb/03/1208/
+http://www.princeton.edu/pr/pwb/03/1208/1b.shtml
+http://www.princeton.edu/pr/pwb/05/0418/
+http://www.princeton.edu/pr/pwb/05/0516/
+http://www.princeton.edu/~fsun/Theme-tour/Reunion--2004/
+http://www.princeton.edu/~gsg/2004/Assembly/08/bylawamendments
+http://www.princeton.edu/~oa/nature/naturobs.shtml
+http://www.princeton.edu/~paw/columns/p-nut_gallery/pnut120402.html
+http://www.princeton.edu/~rockyhp/trips.html
+http://www.princeton.edu/~stcweb/html/pope99essay.html
+http://www.princeton.edu/~vp/commencement/disable.html
+http://www.princetoninfo.com/200112/11205s03.html
+http://www.princetonol.com/events/daytrip.html
+http://www.princetonol.com/family/daytrips.html
+http://www.princetonol.com/groups/iad/Files/Rousseau.htm
+http://www.princetonol.com/groups/iad/lessons/elem/sue-baskets.htm
+http://www.princetonol.com/groups/iad/lessons/middle/color1.htm
+http://www.princetonreview.com/college/apply/eyeonapply/2005/jordan_profile.asp
+http://www.princetonreview.com/college/apply/eyeonapply/2005/welton_feb.asp
+http://www.princetonreview.com/college/apply/eyeonapply/ana_Sep.asp
+http://www.princetonreview.com/college/research/articles/find/artschools.asp
+http://www.princetonreview.com/college/research/articles/find/rankingsFAQ.asp
+http://www.princetonreview.com/college/research/articles/majors/activeapproach.asp
+http://www.princetonreview.com/college/research/articles/prepare/extracurriculars.asp
+http://www.princetonreview.com/cte/articles/cresearch/profileEinstein.asp
+http://www.princetonreview.com/law/apply/articles/admission/vanderbiltQA.asp
+http://www.princetonreview.com/law/apply/articles/application/essayBook2.asp
+http://www.princetonreview.com/law/research/articles/find/world.asp
+http://www.princetonreview.com/law/research/articles/success/excel.asp
+http://www.princetonreview.com/mba/apply/eyeonapply/jamila.asp
+http://www.principalpromotions.com/ireland/
+http://www.principledprofits.com/Positive_Power_of_Principled_Profit-pp-2-15-04.html
+http://www.printdealers.com/learn.cfm
+http://www.printingworld.com/newspast/04_01_29.shtml
+http://www.printingworld.com/technology/digital_printing/general/003.shtml
+http://www.printingworld.com/technology/finishing/digital/001.shtml
+http://www.printondemand.com/MT/archives/000611.html
+http://www.printsgeorge.com/Jane_Austen-Language.htm
+http://www.printsolutionsmag.com/issues/november03/promprod.html
+http://www.printsolutionsmag.com/issues/september04/profile2.html
+http://www.priondata.org/data/A_cotreats.html
+http://www.priondata.org/data/A_mkttreat.html
+http://www.priority1mortgage.com/loanoptions.htm
+http://www.priorityclub.com/
+http://www.priory.com/cmol/heartfail.htm
+http://www.priory.com/commun.htm
+http://www.priory.com/dbt.htm
+http://www.priory.com/fam/italgp.htm
+http://www.priory.com/med/cigsmoking.htm
+http://www.priory.com/psych/asthma.htm
+http://www.prism-magazine.org/oct01/accreditation.cfm
+http://www.prismix.com/news.cfm
+http://www.prismlegal.com/index.php?option=content&task=view&id=79
+http://www.prisonactivist.org/materials/wto_pic.html
+http://www.prisonactivist.org/pps+pows/MOVE/move-story.html
+http://www.prisonactivist.org/pps+pows/davidgilbert/sds-wuo.html
+http://www.prisonflicks.com/reviews.php?filmID=43
+http://www.prisonpotpourri.com/PRISON_FAITH/Justice%20%20Supreme%20Court%20to%20Decide%20Extent%20of%20Prisoners%92%20Access%20to%20Religion.html
+http://www.prisum.iastate.edu/solarenergy/
+http://www.pritzkerprize.com/99announce.htm
+http://www.privacy.gov.au/privacy_rights/npr.html
+http://www.privacy.gov.au/publications/IS8_01.html
+http://www.privacy.org/pi/activities/idcard/idcard_faq.html
+http://www.privacy.org/pi/issues/outsourcing/eds.html
+http://www.privacy.org/pi/reports/bug_off.html
+http://www.privacyalliance.org/resources/enforcement.shtml
+http://www.privacyright.com/info/hipaaprivacy.html
+http://www.privacyrights.org/ar/GmailLetter.htm
+http://www.privacyrights.org/ar/RFIDposition.htm
+http://www.privacyrights.org/ar/macrocommerce.htm
+http://www.privacyrights.org/ar/nagg-mill.htm
+http://www.privacyrights.org/fs/fs14b-stalking.htm
+http://www.privacyworld.com/cool/degree.html
+http://www.privateclubs.com/archives/2003-mar-apr/travel_deep_intheheart.htm
+http://www.privateequityweek.com/pew/freearticles/1093016044217.html
+http://www.privatelessons.net/wellness.asp
+http://www.privateline.com/TelephoneHistory4/History4.htm
+http://www.privateline.com/dailynotes/index40.html
+http://www.privatisation.gov.pk/finance/NITL/nit.htm
+http://www.privcom.gc.ca/fs-fi/02_05_d_26_e.asp
+http://www.privcom.gc.ca/media/nr-c/2003/submission_nid_030918_e.asp
+http://www.privcom.gc.ca/media/nr-c/opinion_021122_lf_e.asp
+http://www.privcom.gc.ca/speech/02_05_a_020207_e.asp
+http://www.privcom.gc.ca/speech/02_05_a_020213_e.asp
+http://www.privcom.gc.ca/speech/2004/vs/vs_sp-d_040331_e.asp
+http://www.prm.ox.ac.uk/educationweb/totem%20pole.html
+http://www.prm.ox.ac.uk/totem.html
+http://www.prmachine.com.au/
+http://www.prnewswire.co.uk/cgi/news/release?id=119191
+http://www.prnewswire.co.uk/cgi/news/release?id=138486
+http://www.prnewswire.com/cgi-bin/micro_stories.pl?ACCT=238613&TICK=NCOR&STORY=/www/story/11-13-2003/0002057499&EDATE=Nov+13,+2003
+http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=105&STORY=/www/story/03-08-2000/0001160417
+http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=BIO_ORG.story&STORY=/www/story/02-03-2005/0002946793&EDATE=THU+Feb+03+2005,+07:04+AM
+http://www.pro-forex.com/en/difference.php
+http://www.pro-g.co.uk/news/nid/985/
+http://www.pro-researcher.co.uk/encyclopaedia/english/first_class_cricket
+http://www.pro-war.com/prowardotcom/
+http://www.pro-weather.com/forums/lofiversion/index.php/t1974.html
+http://www.proaudiosystems.co.uk/acatalog/Index.html
+http://www.probablefuture.com/
+http://www.probe.org/docs/e-adultkids.html
+http://www.probe.org/docs/film-xn.html
+http://www.probigua.conexion.com/pressgr.htm
+http://www.processimpact.com/articles/mtraps.html
+http://www.prochelp.com/ProchelpNews.htm
+http://www.procon.com.au/Costing.htm
+http://www.procooling.com/reviews/html/chilli_pro_case_review.php
+http://www.procurement.virginia.edu/main/departments/BuyPayBasics.html
+http://www.prodeathpenalty.com/Pending/03/aug03.htm
+http://www.prodigals.org.uk/
+http://www.production-machining.com/articles/0901tb2.html
+http://www.productionbase.co.uk/fregister.php
+http://www.productionbase.co.uk/sampleinput.php
+http://www.productliabilitylawyer.com/tires.cfm
+http://www.productreview.com.au/showitem.php?item_id=1954
+http://www.productreview.com.au/showitem.php?item_id=2120
+http://www.productreview.com.au/showitem.php?item_id=2122
+http://www.productselector.co.uk/help/search_tips.htm
+http://www.professional-lurker.com/
+http://www.professionalcar.org/procar.html
+http://www.professionalimagedress.com/six_occasions_for_jacket.htm
+http://www.professionalroofing.net/article.aspx?A_ID=168
+http://www.professionalroofing.net/article.aspx?A_ID=422
+http://www.professionalroofing.net/article.aspx?A_ID=456
+http://www.professorbainbridge.com/
+http://www.professorbainbridge.com/2005/06/the_government_.html
+http://www.profile.co.za/UDT/DATA/0016/0082/News.html
+http://www.profilehomes.com/0299_barn-conversion-property-for-sale-in-wales_ForSale.htm
+http://www.profilesinhistory.com/inthemedia.html
+http://www.profit-loss.com/
+http://www.profitguide.com/buysell/article.jsp?content=20040614_140049_4660
+http://www.profitguide.com/buysell/article.jsp?content=20040614_140049_4660&page=1
+http://www.profitguide.com/greatplace/article.jsp?content=20041028_210332_6648
+http://www.profitguide.com/personaldev/article.jsp?content=20040922_150631_3780
+http://www.profitguide.com/startups/article.jsp?content=341
+http://www.profootballweekly.com/PFW/NFL+Zone/Team+Reports/default.htm
+http://www.profoundeffects.com/legal/
+http://www.proftpd.org/old_news.html
+http://www.profundis.co.uk/peteblog/default,date,2003-09-18.aspx
+http://www.profutures.com/article.php/264/
+http://www.progarchives.com/Progressive_rock_discography_CD.asp?cd_id=1256
+http://www.progenerations.com/articles/InterDavidBornstein.htm
+http://www.program-ace.com/advantages/acecrm.htm
+http://www.programmersheaven.com/2/Whats-New-in-C-Sharp2-Misc-New-Feature
+http://www.programmingforums.org/forum/showthread.php?t=1760
+http://www.programurl.com/a-threat-from-the-sea.htm
+http://www.programurl.com/software/blood-pressure-report.htm
+http://www.progress.org/2005/fpif60.htm
+http://www.progress.org/archive/imf15.htm
+http://www.progressforamerica.com/pfa/wrapper.jsp?PID=1101-331&CID=1101-011104D
+http://www.progressive.org.nz/modules.php?name=News&file=article&sid=744
+http://www.progressive.org/0901/zinn1101.html
+http://www.progressiveboink.com/archive/godgame.htm
+http://www.progressivedistributor.com/progressive/Online%20exclusives/Opportunities.htm
+http://www.progressivedistributor.com/progressive/archives/Sales%20mgmt/double%20team.htm
+http://www.progressiveengineer.com/PEWebBackissues2003/PEWeb%2034%20Jan%2003-2/34editor.htm
+http://www.progressivehumanism.com/outofcontrol.html
+http://www.progressivehumanism.com/proghum.html
+http://www.progressives.org.uk/magazine/default.asp?action=magazine&articleid=271
+http://www.progressivetrail.org/articles/031104Lutz.shtml
+http://www.progressivetrail.org/articles/040109Brown.shtml
+http://www.progressivetrail.org/articles/040317McCormack.shtml
+http://www.progressivetrail.org/articles/040528Hartung.shtml
+http://www.progressnow.org/weblog/
+http://www.progressor.net/review/jugalbandi_overall.html
+http://www.progressplus.org/paulqual.htm
+http://www.progreviews.com/reviews/display.php?rev=tmo-bof
+http://www.proi.net/
+http://www.project-entropia.com/StdContent.ajp?Id=1152
+http://www.project-syndicate.org/commentary/angell1/English
+http://www.project-syndicate.org/commentary/stiglitz50/English
+http://www.project-x.org.uk/pxcivvy.html
+http://www.project18.org/Project18/reportcard2003/economic_security.htm
+http://www.project2061.org/publications/2061Connections/2004-11b.htm
+http://www.project2061.org/tools/benchol/ch6/ch6.htm
+http://www.project2061.org/tools/textbook/mgsci/Primesci/PRIM_ls3.htm
+http://www.projectcensored.org/publications/2004/15.html
+http://www.projectconnections.com/
+http://www.projectghb.org/friendtohave.htm
+http://www.projectgo.org/
+http://www.projecthaven.com/
+http://www.projecthealthybeginnings.com/about.htm
+http://www.projectrestore.org/
+http://www.projectsinknowledge.com/Init/G/1665/
+http://www.projektlernen.de/rollenspiel_e/rp_staying_leaving.htm
+http://www.projinf.org/fs/GenoPheno.html
+http://www.projinf.org/fs/candidasys.html
+http://www.projinf.org/fs/dementia.html
+http://www.projinf.org/fs/vaccines.html
+http://www.projinf.org/pub/37/ois.html
+http://www.projo.com/business/content/projo_20050131_31sdamage.201d156.html
+http://www.projo.com/cgi-bin/include.pl/blogs/shenews/archives/weekninetyeight.htm
+http://www.projo.com/news/content/projo_20050604_union4.21d4afc.html
+http://www.projo.com/news/content/projo_20050621_pfarm21.2341ba2.html
+http://www.projo.com/news/content/projo_20050625_vote25.21f23ce.html
+http://www.projo.com/sharedcontent/east/patriotact/content/projo_20040710_patday7x.21fb25.html
+http://www.promisekeepers.org/meet10
+http://www.promoguy.net/
+http://www.promopeddler.com/Search.php?cat=Bells
+http://www.promopeddler.com/Search.php?cat=Christmas+Decorations
+http://www.promopeddler.com/Search.php?cat=Televisions
+http://www.promopeddler.com/Search.php?offset=2&go=20&cat=Christmas%20Decorations
+http://www.promopeddler.com/Search.php?offset=2&go=20&cat=Gift%20Wrap
+http://www.promopeddler.com/Search.php?offset=3&go=20&cat=Decorations
+http://www.promopeddler.com/Search.php?offset=3&go=20&cat=Greeting%20Cards
+http://www.promopeddler.com/Search.php?offset=4&go=20&cat=Greeting%20Cards
+http://www.promoteu.com/
+http://www.promotionandarts.com/resources/up165.aspx
+http://www.promusky.com/2004shelbyville.shtml
+http://www.propaganda.net/skoleside/2135.shtml
+http://www.propan.co.uk/ir/intro/
+http://www.proparanoid.com/priorknowledge.htm
+http://www.property-abroad.com/OP/PA/info-on-america-factfile11.htm
+http://www.property-marking.co.uk/personal-attack-alarm.htm
+http://www.property.bg/Apartments_in_Bulgaria-en/Add_to_wish_list642_Apartments_for_sale_in_Albena.html
+http://www.property.org.uk/eire/
+http://www.propertyinvesting.net/content/planning.htm
+http://www.propertyinvestmentcentre.com/
+http://www.propertyrightsresearch.org/has_wally_klump_failed_the_law.htm
+http://www.propertywindow.com/
+http://www.propertywindow.com/Templates/Lints/17PierstfieldCrescent.htm
+http://www.proposalsthatwin.com/articles.htm
+http://www.proposalworks.com/systematic.html
+http://www.prorec.com/prorec/articles.nsf/articles/D3E5F9F9B963E08A86256CA8000D68CC
+http://www.prorev.com/
+http://www.prosourcebmi.com/technotes_waltergraff2.cfm
+http://www.prospect.org.uk/doclib/profile/profile_2002/profile_issue_2_02?display=nothtml
+http://www.prospect.org/columns/reich/
+http://www.prospect.org/print/V12/17/kuttner-r.html
+http://www.prospect.org/web/page.ww?section=root&name=ViewPrint&articleId=7603
+http://www.prospect.org/web/page.ww?section=root&name=ViewWeb&articleId=8917
+http://www.prospect.org/web/printfriendly-view.ww?id=9829
+http://www.prospect.org/web/view-print.ww?id=4805
+http://www.prospect.org/web/view-print.ww?id=6831
+http://www.prospect.org/web/view-print.ww?id=8343
+http://www.prospect.org/web/view-print.ww?id=9028
+http://www.prospect.org/web/view-web.ww?id=1044
+http://www.prospect.org/web/view-web.ww?id=249
+http://www.prospect.org/web/view-web.ww?id=7725
+http://www.prospect.org/web/view-web.ww?id=8735
+http://www.prospect.org/web/view-web.ww?id=8997
+http://www.prospect.org/web/view-web.ww?id=9829
+http://www.prospect.org/webfeatures/2003/03/jones-m-03-05.html
+http://www.prospect.org/weblog/archives/2002/10/
+http://www.prospect.org/weblog/archives/2004/01/
+http://www.prospect.org/weblog/archives/2004/02/
+http://www.prospect.org/weblog/archives/2004/07/
+http://www.prospect.org/weblog/archives/2005/01/
+http://www.prospect.org/weblog/archives/2005/05/
+http://www.prospects.ac.uk/cms/ShowPage/Home_page/Explore_job_sectors/Food_and_drink/As_it_is/p!ebfeLek;$20$3F$F
+http://www.prospects.ac.uk/cms/ShowPage/Home_page/Explore_job_sectors/Food_and_drink/As_it_is/p!ebfeLek;$7DQ$EA$
+http://www.prospects.ac.uk/cms/ShowPage/Home_page/Explore_job_sectors/Food_and_drink/As_it_is/p!ebfeLek;$B5$EF$0
+http://www.prospects.ac.uk/cms/ShowPage/Home_page/Explore_job_sectors/Health/As_it_is/p!eigalk;$2D$3F$D
+http://www.prospects.ac.uk/cms/ShowPage/Home_page/Explore_job_sectors/Health/As_it_is/p!eigalk;$E4$20G$
+http://www.prospects.ac.uk/cms/ShowPage/Home_page/Flexible_working/Hours/p!eigkcap;$05$3F$1
+http://www.prospects.ac.uk/cms/ShowPage/Home_page/What_do_graduates_do__2004/Science_editorial/p!edXLaj;$0C$28$0
+http://www.prospects.ac.uk/cms/ShowPage/Home_page/What_do_graduates_do__2004/Science_editorial/p!edXLaj;$1F$DD$3
+http://www.prospects.ac.uk/cms/ShowPage/Home_page/What_do_graduates_do__2004/Science_editorial/p!edXLaj;$3D$B6$
+http://www.prospects.ac.uk/cms/ShowPage/Home_page/What_do_graduates_do__2004/Science_editorial/p!edXLaj;$E2$E10X
+http://www.prosperityuk.com/get_involved/bromsgrove/principles.php
+http://www.prosperityuk.com/prosperity/bromsgrove/principles.html
+http://www.prostatitis.org/doityourself.html
+http://www.proteacher.com/110022.shtml
+http://www.protectinganimals.org/issues.html
+http://www.protectionconnect.com/0704allseeing.html
+http://www.prothemovie.com/default.aspx?layout=interview
+http://www.protonradio.com/show.php?action=bio&showid=69&bioid=293
+http://www.proudtobecanadian.ca/threads/showflat.php?Cat=&Number=1255&Main=1211
+http://www.prout.org/ChapterTwo.html
+http://www.proutjournal.org/economy/economy.html
+http://www.provardis.co.uk/home/apps/seeing_through.p?SessionId=tmqrEWcriXdjUlhGyzsicTddcpwDyjcR
+http://www.proveallthings.org/articles/hidden_costs_of_doing_business_outside.htm
+http://www.provenasaintjoe.org/news.aspx?id=329
+http://www.provendis.info/home/PROvendis_eng.html
+http://www.providencephoenix.com/archive/features/03/02/27/STATION.html
+http://www.provincia.venezia.it/levi/ma/index/number1/stokes1/st1_3mas.htm
+http://www.provost.harvard.edu/it_fund/distlearn223.html
+http://www.provost.umich.edu/reports/media_rights/
+http://www.provwater.com/history.htm
+http://www.proweb.co.uk/~sdbf/C304_seeing_salvation.htm
+http://www.prowriststraps.com/bench_press_bands_training_how_to_use
+http://www.proyectovision.net/english/success/rios.html
+http://www.proz.com/arabic-to-spanish-translation-services/freelance-translator/59354
+http://www.proz.com/chinese-to-spanish-translation-services/freelance-translator/88171
+http://www.proz.com/pro/2503
+http://www.proz.com/topic/32489
+http://www.proz.com/translators/104020?bs=1
+http://www.proz.com/translators/10917?bs=1
+http://www.prozactruth.com/article_drug_giant_accused.htm
+http://www.prrac.org/full_text.php?text_id=310&item_id=3286&newsletter_id=33&header=Race+%2F+Racism
+http://www.prs-ltsn.leeds.ac.uk/employ/philosophy_graduates_and_jobs.html
+http://www.prsa.org/_Networking/environment/index.asp?ident=en1
+http://www.prsa.org/_Resources/profession/careeroverview.asp?ident=prof2
+http://www.prsgroup.com/commonhtml/faq.html
+http://www.prsgroup.com/commonhtml/methods.html
+http://www.prudentbear.com/archive_comm_article.asp?category=Guest+Commentary&content_idx=41608
+http://www.prudentbear.com/midweekanalysis.asp
+http://www.prudential.com/simpleArticle/0,1470,intPageID%253D1935%2526blnPrinterFriendly%253D0,00.html
+http://www.prwatch.org/
+http://www.prwatch.org/documents/clear_v9n1.html
+http://www.prwatch.org/forum/showthread.php?t=5578&goto=nextoldest
+http://www.prwatch.org/node/3667
+http://www.prwatch.org/prwissues/2000Q3/junkman.html
+http://www.prwatch.org/spin/March_2004.html
+http://www.prweek.com/news/news_story_free.cfm?ID=236020&site=3
+http://www.prweek.com/thisweek/index.cfm?ID=238572
+http://www.prx.org/for_stations.do?articleId=31
+http://www.prx.org/for_stations.do?articleId=41
+http://www.prx.org/piece/3468
+http://www.prx.org/piece_profile.do?id=1254&showAll=true
+http://www.prx.org/piece_profile.do?id=2110&showAll=true
+http://www.prx.org/piece_profile.do?id=3468&showAll=true
+http://www.ps.uni-sb.de/~duchier/pub/vbush/vbush5.shtml
+http://www.ps2now.com/cheats/t/thesuffering/thesuffering.html
+http://www.psa.org.nz/pay.asp
+http://www.psac.com/COMM/UPDATE/vol13-3/13-3-e.htm
+http://www.psac.com/bargaining/ccra/info_26-e.shtml
+http://www.psac.com/bargaining/ccra/info_29-e.shtml
+http://www.psal.org/
+http://www.psandman.com/articles/voluntr.htm
+http://www.psandman.com/col/sorry.htm
+http://www.psaudio.com/articles/listening_room_1.asp
+http://www.psbc.org/careers/index.asp
+http://www.psc-cfp.gc.ca/centres/c25/submission_e.htm
+http://www.psc-cfp.gc.ca/lhhr-lcrh/2000/00_01b_e.htm
+http://www.psc-cfp.gc.ca/ppc/learning_style_inventory_e.htm
+http://www.psc-cfp.gc.ca/recours/dec/federal-court/wilseman_e.htm
+http://www.psc-cfp.gc.ca/recours/reference/conflict_e.htm
+http://www.psc-cfp.gc.ca/research/timeline/psc_timeline_e.htm
+http://www.psc-cfp.gc.ca/speech/2004/mb_2004-11-02_e.htm
+http://www.psc-cfp.gc.ca/staf_dot/pol-guid/chap_04/index_e.htm
+http://www.psc.edu/general/software/packages/gcc/manual/gcc_toc.html
+http://www.pscac-cccfp.gc.ca/advisory_council/advisory_council_terms_ref_e.php
+http://www.pscode.com/
+http://www.pscufs.com/feb_20_03pr.htm
+http://www.psd267.wednet.edu/~kfranz/SchoolYear0102/socialstudies0102/GAPcaring02/sesartwork.html
+http://www.pseudotheos.com/view_object.php?object_id=599
+http://www.psg.com/~dlamkins/sl/contents.html
+http://www.pshares.org/issues/article.cfm?prmArticleID=615
+http://www.psi.org.uk/ehb/projectsblackburn.html
+http://www.psia-nw.org/articles/creating_turning_power_through_o.htm
+http://www.psichi.org/pubs/articles/article_123.asp
+http://www.psichi.org/pubs/articles/article_49.asp
+http://www.psigate.ac.uk/newsite/reference/plambeck/chem1/p01264.htm
+http://www.psigate.ac.uk/roads/cgi-bin/search_webcatalogue2.pl?limit=225&term1=proton
+http://www.psigate.ac.uk/roads/cgi-bin/search_webcatalogue2.pl?limit=25&term1=Fuel*%20+cells
+http://www.psigate.ac.uk/roads/cgi-bin/search_webcatalogue2.pl?limit=25&term1=fuel*%20+cells
+http://www.pslgroup.com/dg/244a8e.htm
+http://www.psncc.org/empathic_listening.html
+http://www.psnow.org/
+http://www.psoj.org/pressRelease_feb192003.html
+http://www.psoriasis.org/forum/archive/index.php/t-7925.html
+http://www.psorsite.com/bathing.html
+http://www.psppower.com/2001august/thumbnails.htm
+http://www.psr.edu/page.cfm?l=62&id=1655
+http://www.psr.keele.ac.uk/area/uk/man/con66.htm
+http://www.psr.keele.ac.uk/area/uk/pebs/lab01.htm
+http://www.psrd.hawaii.edu/Dec97/impactBlast.html
+http://www.psrf.org/issues/wedge.jsp
+http://www.psrmadison.org/psrmadtakeson.html
+http://www.psroutdoors.com/supportbf.htm
+http://www.pssg.gov.bc.ca/speeches/htm/28February2004.htm
+http://www.psteas.com/faq.php
+http://www.psu.edu/dept/altoonalrc/mar05.htm
+http://www.psu.edu/ouic/orientation100/T4/2fiftyways.html
+http://www.psu.edu/ur/about/50ways.html
+http://www.psu.edu/ur/archives/50ways/50ways.html
+http://www.psu.edu/ur/archives/intercom_2000/July17/trustees.html
+http://www.psubs.org/faq.html
+http://www.psy.cmu.edu/faculty/just/
+http://www.psych.lse.ac.uk/complexity/Events/Symposium_March04.htm
+http://www.psych.mcgill.ca/grad/clnprg.htm
+http://www.psych.org/advocacy_policy/leg_issues/privacy/hhs41802.cfm
+http://www.psych.ualberta.ca/~phurd/evals.html
+http://www.psych.ubc.ca/~brotto/gorzalka_pubs.htm
+http://www.psych.uiuc.edu/~wbrewer/solarmodel.html
+http://www.psych.upenn.edu/~fjgil/SriLankaUpdate.htm
+http://www.psych.utoronto.ca/~reingold/courses/ai/cache/searle.html
+http://www.psychedelic-library.org/books/ecstatic19.htm
+http://www.psychedelic-library.org/psychedl.htm
+http://www.psychguides.com/ecgs2.php
+http://www.psychiatrictimes.com/p010701c.html
+http://www.psychiatrictimes.com/p0210pt.html
+http://www.psychiatrictimes.com/p021101a.html
+http://www.psychiatrictimes.com/p040301b.html
+http://www.psychiatrictimes.com/p981107.html
+http://www.psychiatry.med.uwo.ca/survive/st2d.htm
+http://www.psychlaws.org/GeneralResources/advocates_visitleg.htm
+http://www.psychlinks.ca/phpbb/viewtopic.php?p=2676&
+http://www.psycho-ward.org/story/return/ch6.shtml
+http://www.psychoanalysis.net/IPPsa/Arlow/I-9
+http://www.psychohistory.com/htm/money.html
+http://www.psychologicalscience.org/observer/getArticle.cfm?id=1164
+http://www.psychologicalscience.org/teaching/tips/tips_0703.html
+http://www.psychology.nottingham.ac.uk/bns/abstracts_posters_april-2001.htm
+http://www.psychology.org.au/join/services_benefits/default.asp
+http://www.psychology.org.au/news/default.asp
+http://www.psychology.org/links/Popular/
+http://www.psychologyandmarkets.org/journals/abstracts/issue_2.html
+http://www.psychologymatters.org/endlife.html
+http://www.psychologymatters.org/polygraphs.html
+http://www.psychologymatters.org/selfdetermin.html
+http://www.psychologytoday.com/articles/PTO-20030902-000005.html
+http://www.psychosomaticmedicine.org/cgi/content/abstract/46/4/363
+http://www.psychosomaticmedicine.org/cgi/content/full/63/3/423
+http://www.psychotactics.com/speaker.htm
+http://www.psychotactics.com/tony.htm
+http://www.psychstat.smsu.edu/introbook/sbk04m.htm
+http://www.psyeta.org/sa/sa1.1/lawrence.html
+http://www.psywarrior.com/FM33-1.html
+http://www.psywarrior.com/HerbDStorm5.html
+http://www.psyweb.com/Mdisord/MdisordADV/AdvPsych.jsp
+http://www.psywww.com/books/interp/chap01d.htm
+http://www.psywww.com/resource/commerce.htm
+http://www.psywww.com/resource/findit.htm
+http://www.pta.org/archive_article_details_1118092469265.html
+http://www.ptc.com/company/ptcexpress/200012/cad_potential.htm
+http://www.pte.state.id.us/ast/journal-jessie.htm
+http://www.ptfilmfest.com/festival/
+http://www.pti.org/elib/publish/to_letter.asp
+http://www.ptil.no/English/Helse+miljo+og+sikkerhet/HMS-aktuelt/risikonivaa_paa_sokkelen_2002.htm
+http://www.ptiusa.com/packaging/food/cupandtrayfillingsealing/default.cfm
+http://www.ptotoday.com/0303fundraising.html
+http://www.ptponline.com/detail.cfm?page=303
+http://www.ptypes.com/externals.html
+http://www.pub-ed-inquiry.org/reports/final_reports/03/Ch5_27.html
+http://www.pub-ed-inquiry.org/reports/final_reports/04/Ch13_64.html
+http://www.pubclub.com/newyear/neworleans.htm
+http://www.pubclub.org/history.php
+http://www.puberty101.com/aacap_eating.shtml
+http://www.public-action.com/911/rescue/nfpa.html
+http://www.public-domain.org/?q=taxonomy/page/or/1&from=12
+http://www.public.asu.edu/~zzhao/html/Resume.htm
+http://www.public.iastate.edu/~horsebarn/Classes/classes.htm
+http://www.public.iastate.edu/~jdjohnso/hist284.html
+http://www.public.iastate.edu/~purchasing/whats_new.htm
+http://www.publicaddress.net/default,1736.sm
+http://www.publicaddress.net/default,gnza.sm
+http://www.publicaddress.net/print,1736.sm
+http://www.publicaffairs.noaa.gov/releases2003/mar03/noaa03r117.html
+http://www.publicagenda.org/issues/red_flags.cfm?issue_type=environment
+http://www.publications.doh.gov.uk/cmo/annualreport2001/healthinequalities.htm
+http://www.publications.doh.gov.uk/cmo/annualreport2003/gift.htm
+http://www.publications.doh.gov.uk/cmo/annualreport2003/progress.htm
+http://www.publications.doh.gov.uk/cmo/annualreport2003/regional.htm
+http://www.publications.doh.gov.uk/medicaltrainingintheuk/refugeehpcnetwork.htm
+http://www.publications.parliament.uk/pa/cm199495/cmhansrd/1995-01-13/Writtens-1.html
+http://www.publications.parliament.uk/pa/cm199798/cmstand/e/st980519/pm/pt2/80519s01.htm
+http://www.publications.parliament.uk/pa/cm199899/cmstand/b/st990112/90112s01.htm
+http://www.publications.parliament.uk/pa/cm199900/cmstand/d/st000302/am/00302s01.htm
+http://www.publications.parliament.uk/pa/cm199900/cmstand/h/st000629/pm/00629s01.htm
+http://www.publications.parliament.uk/pa/cm200001/cmagenda/ob001214.htm
+http://www.publications.parliament.uk/pa/cm200203/cmstand/other/st031110/31110s01.htm
+http://www.publications.parliament.uk/pa/cm200304/cmhansrd/vo040514/debtext/40514-02.htm
+http://www.publications.parliament.uk/pa/cm200304/cmhansrd/vo040608/debtext/40608-32.htm
+http://www.publications.parliament.uk/pa/cm200304/cmhansrd/vo040615/debtext/40615-32.htm
+http://www.publications.parliament.uk/pa/cm200304/cmhansrd/vo040622/debtext/40622-08.htm
+http://www.publications.parliament.uk/pa/cm200304/cmhansrd/vo040624/debtext/40624-29.htm
+http://www.publications.parliament.uk/pa/cm200304/cmhansrd/vo040629/debtext/40629-24.htm
+http://www.publications.parliament.uk/pa/cm200304/cmhansrd/vo040701/debtext/40701-25.htm
+http://www.publications.parliament.uk/pa/cm200304/cmhansrd/vo040719/text/40719w08.htm
+http://www.publications.parliament.uk/pa/cm200304/cmhansrd/vo041018/text/41018w02.htm
+http://www.publications.parliament.uk/pa/cm200304/cmselect/cmodpm/972/972we27.htm
+http://www.publications.parliament.uk/pa/cm200304/cmselect/cmsctech/399/39907.htm
+http://www.publications.parliament.uk/pa/cm200304/cmselect/cmsctech/599/599we39.htm
+http://www.publications.parliament.uk/pa/cm200304/cmstand/a/st040120/pm/40120s03.htm
+http://www.publications.parliament.uk/pa/cm200304/cmstand/deleg1/st040315/40315s03.htm
+http://www.publications.parliament.uk/pa/cm200304/cmstand/deleg4/st040329/40329s01.htm
+http://www.publications.parliament.uk/pa/cm200304/cmstand/e/st040629/pm/40629s01.htm
+http://www.publications.parliament.uk/pa/cm200405/cmbills/005/en/05005x--.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm041206/debtext/41206-08.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm041206/text/41206w13.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm041214/text/41214w21.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm041216/debtext/41216-15.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm041220/debtext/41220-24.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm041220/debtext/41220-40.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm041221/text/41221w53.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050112/debtext/50112-03.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050112/debtext/50112-04.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050117/debtext/50117-04.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050117/text/50117w42.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050119/debtext/50119-09.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050131/debtext/50131-41.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050204/debtext/50204-01.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050208/debtext/50208-01.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050224/debtext/50224-01.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050310/debtext/50310-07.htm
+http://www.publications.parliament.uk/pa/cm200405/cmhansrd/cm050324/debtext/50324-17.htm
+http://www.publications.parliament.uk/pa/cm200506/cmhansrd/cm050511/debtext/50511-01.htm
+http://www.publications.parliament.uk/pa/cm200506/cmhansrd/cm050608/debtext/50608-14.htm
+http://www.publications.parliament.uk/pa/cm200506/cmhansrd/cm050608/debtext/50608-16.htm
+http://www.publications.parliament.uk/pa/cm200506/cmhansrd/cm050609/debtext/50609-03.htm
+http://www.publications.parliament.uk/pa/cm200506/cmhansrd/cm050613/debtext/50613-17.htm
+http://www.publications.parliament.uk/pa/cm200506/cmhansrd/cm050615/debtext/50615-30.htm
+http://www.publications.parliament.uk/pa/cm200506/cmhansrd/cm050616/debtext/50616-22.htm
+http://www.publications.parliament.uk/pa/cm200506/cmhansrd/cm050621/text/50621w24.htm
+http://www.publications.parliament.uk/pa/cm200506/cmhansrd/cm050622/text/50622w11.htm
+http://www.publications.parliament.uk/pa/jt200304/jtselect/jtrights/182/18215.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds04/text/41117w03.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds04/text/41207-30.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50126-30.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50222-06.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50302-31.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50309-22.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50310-16.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50316-13.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50321-13.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50323-06.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50607w03.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50608-17.htm
+http://www.publications.parliament.uk/pa/ld199900/ldhansrd/pdvn/lds05/text/50623-10.htm
+http://www.publications.parliament.uk/pa/ld200102/minutes/020619/ldminute.htm
+http://www.publicdebt.treas.gov/
+http://www.publicdebt.treas.gov/mar/marsbomindivseries.htm
+http://www.publicdebt.treas.gov/mar/marsbomintrogeneral.htm
+http://www.publiceye.org/frontpage/911/reactions.html
+http://www.publiceye.org/magazine/chrisre1.html
+http://www.publicguardian-scotland.gov.uk/html/news_pg2.htm
+http://www.publichistory.org/reviews/view_review.asp?DBID=34
+http://www.publicintegrity.org/bow/report.aspx?aid=155
+http://www.publicintegrity.org/oil/default.aspx
+http://www.publicintegrity.org/oil/report.aspx?aid=380
+http://www.publicintegrity.org/oil/report.aspx?aid=430
+http://www.publicintegrity.org/oil/report.aspx?aid=430&sid=100
+http://www.publicintegrity.org/report.aspx?aid=332&sid=100
+http://www.publicinterestpolling.com/highlts.htm
+http://www.publicnet.co.uk/publicnet/fe040305.htm
+http://www.publicradiofan.com/cgi-bin/station.pl?stationid=2834
+http://www.publicsafety.net/dalmatian.htm
+http://www.publicsafetyandsourgas.org/AdvisoryBios.htm
+http://www.publictechnology.net/modules.php?op=modload&name=News&file=article&sid=1817
+http://www.publicwhip.org.uk/division.php?date=1997-07-07&number=47
+http://www.publicwhip.org.uk/division.php?date=2000-03-20&number=117
+http://www.publishersmarketplace.com/members/TDCILiterary/
+http://www.publishersweekly.com/article/CA606584.html
+http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=137496&rendertype=abstract
+http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=27165
+http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=27165&rendertype=abstract
+http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=28532
+http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=533045
+http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=544878
+http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=86097
+http://www.pubs.asce.org/ceonline/ceonline04/1004feat.html
+http://www.pubs.com/postal.htm
+http://www.puc.state.tx.us/telecomm/row/rates.cfm
+http://www.pueblo.gsa.gov/cic_text/employ/lt-disability/insurance.htm
+http://www.pueblo.gsa.gov/cic_text/employ/tomorrowjobs/tomojobs.htm
+http://www.pueblo.gsa.gov/cic_text/family/drgfree/parents_guide1.html
+http://www.pueblo.gsa.gov/cic_text/health/count-cal/loseweight.html
+http://www.pueblo.gsa.gov/cic_text/health/count-cal/t_loseweight.html
+http://www.pueblo.gsa.gov/cic_text/housing/outdoorcheck/outdoorcheck.htm
+http://www.pueblo.gsa.gov/cic_text/misc/usmetric/metric-qa.htm
+http://www.pueblo.gsa.gov/cic_text/money/bankruptcy/bankruptcy.htm
+http://www.pueblo.gsa.gov/cic_text/money/credit-report/rscredit.htm
+http://www.pueblo.gsa.gov/cic_text/money/financial-planner/10questions.html
+http://www.pueblochamber.org/
+http://www.pufferbellytoys.com/pbt/Home/Page/Catalog/Mfr/1/sort/name/num_to_show/12/start/12
+http://www.pugetsystems.com/
+http://www.pugmarks.com/humour/general.htm
+http://www.pugwash.org/reports/ees/ees5.htm
+http://www.pugwash.org/reports/pac/53/rotblat.htm
+http://www.pugwash.org/reports/pac/pac256/presidential.htm
+http://www.pugwash.org/reports/pac/pac256/rotblat.htm
+http://www.puk.org/default.asp
+http://www.pulitzer.org/year/1995/spot-news-reporting/works/FEAR.html
+http://www.pulli.com/physics_today.html
+http://www.pulpanddagger.com/movies/i_b.html
+http://www.pulpanddagger.com/pulpmag/dark/pont_8.html
+http://www.pulpny.org/html/393_4.html
+http://www.pulse24.com/Plugins/Web_Poll/DisplayPollResults.asp?PollId=994
+http://www.pulsemed.org/internet-advertising-solution.htm
+http://www.pulsetc.com/article.php?sid=1583
+http://www.pulsus.com/Plastics/08_02/tayl_ed.htm
+http://www.pummeldex.de/songtexte.php?cid=602
+http://www.punjab.gov.pk/labour/minimum_wages_board/mwb/glass_industry.htm
+http://www.punkinternational.com/v2/
+http://www.punknews.org/article.php?sid=10044&mode=thread&order=0&thold=0
+http://www.punknews.org/reviews.php?op=albumreview&id=3417
+http://www.punkrocks.net/display_showreview.php?id=57
+http://www.punkrockshop.co.uk/how.htm
+http://www.punktastic.com/news.php?navID=1&archive=200402
+http://www.puppyclass.com/puppyphilosophy.htm
+http://www.puppydogweb.com/beware.htm
+http://www.pupress.princeton.edu/chapters/i7179.html
+http://www.pupress.princeton.edu/chapters/i7182.html
+http://www.pupress.princeton.edu/chapters/i7675.html
+http://www.pupress.princeton.edu/chapters/i7768.html
+http://www.pupress.princeton.edu/chapters/i7787.html
+http://www.pupress.princeton.edu/chapters/s6776.html
+http://www.pupress.princeton.edu/chapters/s6819.html
+http://www.pupress.princeton.edu/chapters/s7121.html
+http://www.pupress.princeton.edu/chapters/s7497.html
+http://www.pupress.princeton.edu/chapters/s7748.html
+http://www.pura-aventura.com/aracenainntoinn2.asp
+http://www.purchasing.com/article/CA139276.html
+http://www.purchasing.com/article/CA74610.html
+http://www.purdue.edu/DFA/privacy.htm
+http://www.purdue.edu/hr/BPM/HR_Index/paypract.htm
+http://www.purdue.edu/hr/Employment/Job_Vacancies/wlces.shtml
+http://www.purdue.edu/hr/Employment/Job_Vacancies/wlcler.shtml
+http://www.purdue.edu/hr/Employment/Job_Vacancies/wlinfo.shtml
+http://www.purdue.edu/hr/Employment/Job_Vacancies/wllab.shtml
+http://www.purdue.edu/hr/Employment/Job_Vacancies/wlnew.shtml
+http://www.purdue.edu/hr/Employment/Job_Vacancies/wlprof.shtml
+http://www.purdue.edu/hr/Employment/Job_Vacancies/wlserv.shtml
+http://www.purdue.edu/odos/administration/gradeappeals.htm
+http://www.purdue.edu/oop/univregs/pages/state_equal/antiharassment.html
+http://www.purdue.edu/policies/pages/human_resources/iv_10_1.html
+http://www.purdue.edu/univregs/pages/state_equal/antiharassment.html
+http://www.purdueexponent.org/2001/10/16/city/rail.html
+http://www.purdueexponent.org/interface/bebop/showstory.php?date=2004/03/22&section=sports&storyid=index
+http://www.pure80spop.co.uk/yabbse/index.php?board=23;action=display;threadid=660
+http://www.pureambient.com/autoreverse.html
+http://www.pureawakening.net/pa/article/2002/9/1/11139.html
+http://www.pureawakening.net/pa/article/2002/9/1/11139p.html
+http://www.pureenergysystems.com/os/EdGrayMotor/PM_PEM_MG/patents/3890548/
+http://www.purefood.org/irradlink.html
+http://www.purejoylivingfoods.com/
+http://www.purenudism.net/happy-nudist-couple.html
+http://www.purereason.org/soul.html
+http://www.purifymind.com/JudsiamVege.htm
+http://www.purposedriven.com/en-US/AboutUs/
+http://www.purposedriven.com/en-US/AboutUs/New_Website_Article.htm
+http://www.purposedriven.com/en-US/AboutUs/WhatIsPD/PD_Articles/Ministry_Objectives.htm
+http://www.purposedriven.com/en-US/TsunamiReliefMission/Giving.htm
+http://www.purselipsquarejaw.org/2002_12_01_blogger_archives.php
+http://www.pushback.com/environment/SmogCheckTestimony.html
+http://www.pushhamburger.com/pagan.htm
+http://www.putnam-fl.com/brd/Board_htmls/ELA.htm
+http://www.putnamartscouncil.com/PACCulturalInfo.htm
+http://www.puttingzone.com/MyTips/bubblehead.html
+http://www.puttingzone.com/MyTips/practice.html
+http://www.puzzlersparadise.com/page1034.html
+http://www.puzzles.com/products/rushhour.htm
+http://www.pvihotelgroup.com/pviapps.html
+http://www.pvpa.org/printerfriendly.php?id=327
+http://www.pvrblog.com/pvr/2005/01/tivo_walked_awa.html
+http://www.pvrblog.com/pvr/2005/01/tivotogo_lanuch.html
+http://www.pvrblog.com/pvr/2005/01/why_hasnt_tivo_.html
+http://www.pvresources.com/
+http://www.pw.org/mag/teachersguide/indexloun.html
+http://www.pwc.com/Extweb/service.nsf/docid/2DAD30C1F5F5EFEF80256ED9002B2988
+http://www.pwcglobal.com/Extweb/industry.nsf/docid/24979F7B1DEB56BC85256E37005AE52A
+http://www.pwcglobal.com/Extweb/industry.nsf/docid/5D983CCC7EF373F280256DBB0033AB86
+http://www.pwcglobal.com/Extweb/manissue.nsf/docid/63FBA1C122BA8F53CA256F1E000E5B64
+http://www.pwcglobal.com/Extweb/ncpressrelease.nsf/docid/078629E55442192480256E62004FF325
+http://www.pwcglobal.com/extweb/aboutus.nsf/docid/E18C60C12984544C80256F2C004C83C4
+http://www.pwcglobal.com/extweb/ncinthenews.nsf/docid/de090b42386c0c60ca256f86000b1ca0
+http://www.pwcglobal.com/extweb/newcoatwork.nsf/docid/2E4EDE8195F81DD085256D7300501048
+http://www.pwcglobal.com/extweb/newcoatwork.nsf/docid/A68BAC559ADD948985256F7A0079893B
+http://www.pwcglobal.com/extweb/newcoatwork.nsf/docid/E4E9DBEC740090A185256EA6006BE9BC
+http://www.pwgsc.gc.ca/recgen/text/bcmsanrep00-e.html
+http://www.pwgsc.gc.ca/recgen/text/bcmsanrep01-e.html
+http://www.pwgsc.gc.ca/sponsorship/2004-08-09-01-e.html
+http://www.pwias.ubc.ca/
+http://www.pwl-empire.com/qa_artists.html
+http://www.pwmnet.com/news/categoryfront.php/id/72/Issue_18_(March).html
+http://www.pwmnet.com/news/categoryfront.php/id/74/ALTERNATIVE_INVESTMENTS.html
+http://www.pwshop.com/html/content8.html
+http://www.pwsi.org/content/home.asp
+http://www.pww.org/article/articleview/6251/1/244/
+http://www.pww.org/article/articleview/6845/1/141/
+http://www.pww.org/article/articleview/7159/1/272/
+http://www.pym.org/education/newsletter/
+http://www.pym.org/education/newsletter/2000-03.htm
+http://www.pym.org/haddonfield-qm/haddonfieldmm/haddonfield-nl-200101.htm
+http://www.pym.org/workcamp/China/pages/views.htm
+http://www.pyongyangsquare.com/nuclear/opinion.html
+http://www.pyramidschemealert.org/PSAMain/resources/tenlies3.html
+http://www.pyramidsociety.org/market2.htm
+http://www.python.org/dev/doc/devel/lib/module-asynchat.html
+http://www.python.org/peps/pep-0237.html
+http://www.pythonland.com/episode35.php
+http://www.pythonware.com/library/tkinter/introduction/x444-fonts.htm
+http://www.pyzdek.com/non-normal.htm
+http://www.q2travel.co.za/luxury-train-travel.asp
+http://www.qaa.ac.uk/aboutus/evidence/evidence2.asp
+http://www.qaa.ac.uk/academicinfrastructure/FHEQ/SCQF/2001/default.asp
+http://www.qaa.ac.uk/academicinfrastructure/benchmark/honours/areastudies.asp
+http://www.qaa.ac.uk/academicinfrastructure/programSpec/progspec.asp
+http://www.qaa.ac.uk/access/reports/SWWalesOCN02.asp
+http://www.qaa.ac.uk/crntwork/scottish_advisory.htm
+http://www.qaa.ac.uk/public/learningfrom/subjectreviewsection2.htm
+http://www.qaa.ac.uk/revreps/oseas/OUHungary/Monitor.htm
+http://www.qadas.com/qadas/nasa/nasa-hm/0542.html
+http://www.qajaqusa.org/cgi-bin/GreenlandTechniqueForum_config.pl/noframes/read/920
+http://www.qando.net/Default.aspx?tabid=38
+http://www.qando.net/default.aspx?tabid=38
+http://www.qantas.com.au/info/flying/travelClasses/internationalBusiness
+http://www.qbe.com/
+http://www.qbr.com/interviews.html
+http://www.qca.org.uk/10012.html
+http://www.qca.org.uk/13.html
+http://www.qca.org.uk/13192_6405.html
+http://www.qca.org.uk/251_6212.html
+http://www.qca.org.uk/7017.html
+http://www.qca.org.uk/7031_12914.html
+http://www.qca.org.uk/7606_7661.html
+http://www.qca.org.uk/7606_7666.html
+http://www.qca.org.uk/8798_7666.html
+http://www.qca.org.uk/9985.html
+http://www.qca.org.uk/history/innovating/key3/planning/model2/rationales_yr7.htm
+http://www.qca.org.uk/pess/695.htm
+http://www.qcad.org/qcad/manual_reference/modification.html
+http://www.qcbaseball.com/baseball_rules/infield_fly_rule1.aspx
+http://www.qcknightnews.com/news/2004/11/16/News/Election.2004.In.Reviewvoting.Issues.Abound-810274.shtml
+http://www.qedcorp.com/pcr/pcr/qcat.html
+http://www.qfit.com/
+http://www.qhorses.com/
+http://www.qhpress.org/texts/dymond/causes.html
+http://www.qigong.org.uk/grades.html
+http://www.qinetiq.com/home/newsroom/news_releases_homepage/2004/2nd_quarter/Love_is_in_the_air___QinetiQ_helps_ESA_probe_Venus.html
+http://www.qlrs.com/emedia.asp?id=313
+http://www.qlrs.com/issues/apr2002/ss/whiterose.html
+http://www.qlrs.com/story.asp?id=188
+http://www.qmdra.org.au/2004_reports/meetreportaugust1.htm
+http://www.qmfound.com/soldier_dead.htm
+http://www.qmmuseum.lee.army.mil/korea/they_wrote_the_book.htm
+http://www.qnorvic.com/quaker/qfp/content.html
+http://www.qp-sport.co.nz/links.htm
+http://www.qpac.com.au/at_qpac/location_and_access/
+http://www.qparks.asn.au/relocatablergn.html
+http://www.qrp.pops.net/probe1.htm
+http://www.qsa.qld.edu.au/yrs1to10/case-studies/westend.html
+http://www.qsl.net/w5www/breeding.html
+http://www.qsl.net/w5www/serious.html
+http://www.quackwatch.org/01QuackeryRelatedTopics/Cancer/day.html
+http://www.quackwatch.org/01QuackeryRelatedTopics/Tests/mercurytests.html
+http://www.quackwatch.org/01QuackeryRelatedTopics/Tests/vitamitician.html
+http://www.quackwatch.org/01QuackeryRelatedTopics/altbraid.html
+http://www.quackwatch.org/01QuackeryRelatedTopics/emf.html
+http://www.quackwatch.org/01QuackeryRelatedTopics/hfsadvice.html
+http://www.quackwatch.org/03HealthPromotion/eqpt.html
+http://www.quackwatch.org/04ConsumerEducation/News/ephedra.html
+http://www.quackwatch.org/04ConsumerEducation/QA/osteo.html
+http://www.quad30campaign.org/quad30_happenings.html
+http://www.quadlock.com/dealers.php?state=AK
+http://www.quaker.org.uk/
+http://www.quaker.org.uk/bym/5yrplan.html
+http://www.quaker.org.uk/pubsetc/ovnight.html
+http://www.quaker.org/fptp/31lord.html
+http://www.quaker.org/pamphlets/PendleHill.html
+http://www.quaker.org/qcea/peacetax/analysiseng.htm
+http://www.quakerinfo.com/quakxms1.shtml
+http://www.quakerinfo.com/voc_min1.shtml
+http://www.quakernet.org.uk/
+http://www.qual.auckland.ac.nz/
+http://www.qualitychurchfurniture.com/chairs.htm
+http://www.qualitydigest.com/
+http://www.qualitydigest.com/dec98/html/perfimp.html
+http://www.qualitydigest.com/dec99/html/nonnormal.html
+http://www.qualitydigest.com/jan97/probes.html
+http://www.qualityforum.org/home.htm
+http://www.qualitymeasures.ahrq.gov/summary/summary.aspx?ss=1&doc_id=426
+http://www.qualitymeasures.ahrq.gov/summary/summary.aspx?ss=1&doc_id=431
+http://www.qualitymeasures.ahrq.gov/summary/summary.aspx?ss=1&doc_id=441
+http://www.qualitymeasures.ahrq.gov/summary/summary.aspx?ss=1&doc_id=6155
+http://www.qualitymeasures.ahrq.gov/summary/summary.aspx?ss=1&doc_id=6158
+http://www.qualitymeasures.ahrq.gov/summary/summary.aspx?ss=1&doc_id=6159
+http://www.qualitymeasures.ahrq.gov/summary/summary.aspx?ss=1&doc_id=6160
+http://www.qualityoflife.org/ich/childabuse/childa3.cfm
+http://www.qualityoflife.org/ich/hmr/hmr4.cfm
+http://www.qualityoilnc.com/history.html
+http://www.qualityprofiles.org/quality_profiles/case_studies/Chronic_Illness/1_10.asp
+http://www.quamnet.com/fcgi-bin/clip.fpl?par2=10&par3=1&date=20050114&file_id=20040930HKPR06559E
+http://www.quantico.usmc.mil/g1/lanman/02-February/24.htm
+http://www.quantros.com/provider/orm.htm
+http://www.quantummatter.com/see.html
+http://www.quantumphilosophy.net/Article1529.html
+http://www.quarterhorsenews.com/article_two/article_two.html
+http://www.quarterhorses.com/links/default.html
+http://www.quarterlifecrisis.com/forums/showthread.php?t=11639&page=3
+http://www.quarterman.org/who/williamphysician.html
+http://www.quartermoonranch.com/asset.html
+http://www.quartermoonranch.com/brayer.html
+http://www.quasimondo.com/archives/000227.php
+http://www.quatloos.com/brad-c/magna.htm
+http://www.quatloos.com/life_settlement-life_settlements.htm
+http://www.quatloos.com/taxscams/purecase/cid-warn.htm
+http://www.quebecoislibre.org/030816-12.htm
+http://www.quechuanetwork.org/news_template.cfm?news_id=2129&lang=s
+http://www.queencitynews.com/print.php?sid=3397
+http://www.queencitynews.com/print.php?sid=3433
+http://www.queencitynews.com/print.php?sid=3464
+http://www.queendom.com/chaiselongue/love/q_tonyschirtzinger27.html
+http://www.queendom.com/chaiselongue/relationships/r_bobrich4.html
+http://www.queenscourier.com/lead2.htm
+http://www.queenslandholidays.com.au/tropical_north_queensland/cape_york.cfm
+http://www.queensu.ca/msp/pages/Project_Publications/Films/Trevors.htm
+http://www.queensu.ca/pps/unionstreet/html/pubmeet2.html
+http://www.queensu.ca/samp/migrationnews/1998/apr.htm
+http://www.queensu.ca/theology/spages/Finance_Assist.shtml
+http://www.queeringdiabetes.org/substance/invalid.html
+http://www.quepublishing.com/articles/article.asp?p=102224&seqNum=2
+http://www.quepublishing.com/articles/article.asp?p=170517&seqNum=2
+http://www.quepublishing.com/articles/article.asp?p=383854
+http://www.quepublishing.com/title/0789733145
+http://www.queryster.com/odp.php?browse=/Regional/Europe/United_Kingdom/Recreation_and_Sports/Home_and_Garden/Gardening/
+http://www.quesant.com/Library/Technotes/T5.htm
+http://www.quest-online.com/NewFiles/National1.html
+http://www.quest.arc.nasa.gov/events/destination/2002/DEST7.html
+http://www.questcareer.com/resume_guide.htm
+http://www.questconnect.org/Oaxaca_Mexico.htm
+http://www.questconnect.org/africa_sa.htm
+http://www.questdiagnostics.com/kbase/topic/major/hw188548/trtover.htm
+http://www.questerre.com/stlawrencelowlands.htm
+http://www.questexperiences.com/quest2/PortsToAdventure/halloween/default.asp
+http://www.questia.com/aboutQuestia/privacyPolicy.html
+http://www.questmarketing.co.uk/sales-revenue.htm
+http://www.questonline.co.uk/content/view/full/4073
+http://www.questonline.co.uk/topics/sport_fitness_leisure/sports_fitness
+http://www.questoverseas.com/quest2000/main1.htm
+http://www.qui-gonline.org/fanfic/MarnieCominghome8.htm
+http://www.qui-gonline.org/fanfic/belindadiscovery5.htm
+http://www.qui-gonline.org/fanfic/moriahAOTC2.htm
+http://www.qui-gonline.org/fanfic/remembrance3.htm
+http://www.qui-gonline.org/fanfic/tammymemory.htm
+http://www.qui-gonline.org/faq.htm
+http://www.qui-gonline.org/ficrules.htm
+http://www.qui-gonline.org/polls.htm
+http://www.quia.com/shared/italian/
+http://www.quic.gov/consumer/conference/molnar.htm
+http://www.quic.gov/consumer/conference/summary/summ2.htm
+http://www.quickconsultant.com/classifieds.htm
+http://www.quicklogic.com/home.asp?PageID=469&sMenuID=333
+http://www.quickmba.com/mgmt/7hab/
+http://www.quickmba.com/strategy/porter.shtml
+http://www.quietamerican.org/commentary_leaving.html
+http://www.quiltart.com/yellowchallenge.htm
+http://www.quiltersfancy.com/classes.htm
+http://www.quilts-calicos.on.ca/winclasses.htm
+http://www.quiltuniversity.com/classlist.htm
+http://www.quintcareers.com/career_experts/Norine_Dagliano.html
+http://www.quintcareers.com/cover_letter_basics.html
+http://www.quintcareers.com/jobs_for_teens.html
+http://www.quintcareers.com/older_worker_strategies.html
+http://www.quintcareers.com/temping_strategies.html
+http://www.quintcareers.com/wild_card_interview_questions.html
+http://www.quirksmode.org/js/events_order.html
+http://www.quirksmode.org/js/events_tradmod.html
+http://www.quirksmode.org/js/introevents.html
+http://www.quit.org.uk/quitweight.htm
+http://www.quixote.org/hr/campaigns/hsw-2003/campaign-us.php
+http://www.quizilla.com/users/DistantMemories/quizzes/.:Meant%20to%20Be:.%206/
+http://www.quizilla.com/users/dracolove31/quizzes/Still%20On%20My%20Brain%20(A%20Harry%20Potter%20Songfic)/
+http://www.quizilla.com/users/jessude8907/quizzes/Harry%20and%20you-Part%2038-Back%20to%20Normal/
+http://www.quizilla.com/users/jessude8907/quizzes/The%20Girl%20Who%20Lived-Part%2012/
+http://www.quizzing.co.uk/trivia/viewtopic.php?t=315
+http://www.quodlibet.net/jmurdoch-preaching.shtml
+http://www.quodlibet.net/perkins-mind.shtml
+http://www.quodlibet.net/savage-tyrrell.shtml
+http://www.quorndon-mag.org.uk/archive/spring2003/rawlinsnews.html
+http://www.quoteadvantage.com/AMBest.aspx
+http://www.quotegarden.com/be-self.html
+http://www.quotegarden.com/war.html
+http://www.quotesandjokes.com/jokes/christmas.html
+http://www.quotewerks.com/whyqp.asp
+http://www.quovadx.com/customers/success_int.jsp
+http://www.quran.org.uk/ieb_quran_direct_confrontation1.htm
+http://www.qut.edu.au/admin/mopp/B/B_12_03.html
+http://www.qwantz.com/forum/viewforum.php?f=1
+http://www.qwantz.com/posterchild/
+http://www.r-3.com/diversity/chapter.htm
+http://www.r-calfusa.com/FTAA-TPA/current_state_of_the_u_s__live_cattle_industry.htm
+http://www.r-ds.com/opera/hoffmann/kaye_edition.htm
+http://www.r-type.org/static/pentode.htm
+http://www.r6.fws.gov/fisheries/frimaindex.htm
+http://www.r7designer.com/news/scripts/000099.php
+http://www.ra-gotessays.com/ge-topics/films_artists_alphabetized.html
+http://www.ra.ethz.ch/CDstore/www6/Technical/Paper014/speech-css.html
+http://www.rabbit.org/faq/sections/litter.html
+http://www.rabidtigers.com/rtn/newsletterv2n10.html
+http://www.rac.ca/regulatory/courses.htm
+http://www.rac.co.uk/carbuying/examinations/terms_and_conditions_pu
+http://www.rac.co.uk/travelservices/motorway/
+http://www.rac.co.uk/travelservices/northern_england/
+http://www.rac.co.uk/travelservices/southern_england/
+http://www.raceforthecure-denver.com/Help/FriendraiserHelp/JoiningFundraisingTeam.htm
+http://www.racematters.org/
+http://www.racematters.org/astoryofviolentfaith.htm
+http://www.racematters.org/freeatlast.htm
+http://www.racematters.org/goodinformation.htm
+http://www.racematters.org/kimkangja.htm
+http://www.racematters.org/manykindsofsmartencarta.htm
+http://www.racematters.org/stirringupoldterrors.htm
+http://www.racematters.org/thetroublewithselfesteem.htm
+http://www.racematters.org/vinnettecarroll.htm
+http://www.racereviewer.com/previews/long_walk_preview.cfm
+http://www.racesir.com/
+http://www.rachellucas.com/archives/2004/11/mail_please_god.html
+http://www.racing.ohio.gov/
+http://www.racingbetter.co.uk/races_2005/cheltenham/news/mark_bradburne.html
+http://www.racingunderground.com/rudufaq.html
+http://www.racingwest.com/racescene/insidegroove/
+http://www.rackenford-devon.co.uk/press.htm
+http://www.racoon.dircon.co.uk/spots/35.htm
+http://www.radaronline.com/fresh-intelligence/index.php
+http://www.radarpages.co.uk/mob/postwar/postwar1.htm
+http://www.radfordreviews.com/cgi-bin/view.cgi?rm=mode2&name=excerpt_two
+http://www.radfordreviews.com/excerpt_two.html
+http://www.radiancemagazine.com/kids_project/size_positive_books.htm
+http://www.radiation-pills.com/News___Links/Nuclear_War/Ch_15/ch_15.htm
+http://www.radicalmiddle.com/x_judis_brooks.htm
+http://www.radicalmiddle.com/x_past_n_future.htm
+http://www.radio4all.org/aia/act_street.html
+http://www.radioacademy.org/faq/index.shtml
+http://www.radiobs.net/mediaslander/archives/2005/05/100_ways_to_sla.php
+http://www.radiobs.net/mediaslander/archives/2005/06/the_boston_hera.php
+http://www.radiocom.net/History/index7.htm
+http://www.radiodirectory.com/usstoreproductsB000066HO4.html
+http://www.radioenthusiast.com/listen_to_the_war.htm
+http://www.radiofreesrini.com/
+http://www.radioguide.com/magazine/vol3no3/rr33/hotflash.htm
+http://www.radiologycorp.com/meet_our_people.html
+http://www.radiologyeducation.com/
+http://www.radiologyinfo.org/content/functional_mr.htm
+http://www.radiologyinfo.org/content/lower_gi.htm
+http://www.radiomissions.org/
+http://www.radioparadise.com/modules.php?name=Forums&file=viewtopic&p=690280
+http://www.radioparadise.com/modules.php?name=Forums&file=viewtopic&t=686
+http://www.radioparadise.com/modules.php?name=Forums&file=viewtopic&t=686&start=0
+http://www.radioproject.org/archive/1999/9906.html
+http://www.radiorewind.co.uk/Notice_board_2002.htm
+http://www.radiovillage.com/calendar.cfm
+http://www.radissonedwardian.com/specialoffers/offerdetail.jsp?offerId=406887
+http://www.radmeters4u.com/states/nv.htm
+http://www.radongas.org/Continuing_Ed_Courses_1.html
+http://www.radosh.net/archive/2004_10_01_radosh_archive.html
+http://www.radsafe.pitt.edu/Manual/Chapter4.htm
+http://www.radstats.org.uk/no056/frankenstein.htm
+http://www.radstats.org.uk/no074/article5.htm
+http://www.radstats.org.uk/no075/pahl.htm
+http://www.radzone.org/cgi-bin/weblab/lovestories/salon3.0/public.cgi?mode=All_Thread&salon=Relationship+Group+5&thread=3
+http://www.raelity.org/science/
+http://www.ragged-edge-mag.com/0599/b599ft3.htm
+http://www.raheny.com/where.htm
+http://www.raid-symposium.org/raid98/Prog_RAID98/Panels.html
+http://www.raids.org/gen00303.htm
+http://www.raids.org/raftery.htm
+http://www.rail.metaltype.co.uk/
+http://www.railcorp.info/about_railcorp/board_of_directors
+http://www.railpage.org.au/tram/usa.html
+http://www.railroadblues.com/schedule2k.php
+http://www.railwayage.com/jun00/cbtc.html
+http://www.railwaypeople.com/rail-jobs/search-results.html?company=10563
+http://www.rainbowcrystal.com/reiki/reiki1.html
+http://www.rainbowhorizons.com/teaching_units/index.php?CID=Novel_Studies
+http://www.rainbownation.com/uk/services/service.asp?tid=1&sid=27
+http://www.rainbowradio.org/supermanhood.htm
+http://www.rainforests.net/home.htm
+http://www.rainn.org/gcpost.html
+http://www.raintaxi.com/online/2001summer/federman.shtml
+http://www.rainwater.com/CONNECTchapters.html
+http://www.rainwaterharvesting.org/Rural/manapia.htm
+http://www.rainydaygames.ca/Webpage.asp?Page=OnSale&Name=Games%20On%20Sale
+http://www.raisinggreatkids.com/questions/q2.html
+http://www.raisingkids.co.uk/forum/display_topic_threads.asp?ForumID=8&ThreadPage=3&TopicID=4542
+http://www.rajasenterprises.com/lab.htm
+http://www.rajeevnet.com/hacks_hints/os_clone/os_cloning.html
+http://www.rajeun.net/testosterone.html
+http://www.rajivshah.com/camera/archives/2005/04/
+http://www.rajuabju.com/elat/on_marriage.htm
+http://www.rakemag.com/columns/detail.asp?catID=50&itemID=628
+http://www.rakemag.com/columns/detail.asp?catID=50&itemID=629
+http://www.rakmuseum.gov.ae/kush2.html
+http://www.raleigh-nc.org/
+http://www.raleighlittletheatre.org/
+http://www.raleys.com/cfapps/evntcntr/calendar.cfm
+http://www.raleys.com/cfapps/evntcntr/calendar.cfm?chain=ra
+http://www.ralphrobertmoore.com/lately080302.html
+http://www.ralst.com/ComeStay17-18.HTM
+http://www.ralst.com/Damage21-24.HTM
+http://www.ralst.com/Surface1-3.HTM
+http://www.ram.org/music/indie/mrr.html
+http://www.ram.org/ramblings/other/eu_trip_report.html
+http://www.ram.org/ramblings/philosophy/fmp/music_future.html
+http://www.ramapoorchid.org/
+http://www.ramblers.co.uk/groups/20s-30s.php
+http://www.ramblers.org.uk/forum/post.asp?method=ReplyQuote&REPLY_ID=20670&TOPIC_ID=2711&FORUM_ID=8
+http://www.ramblers.org.uk/info/contacts/govt.html
+http://www.ramblers.org.uk/info/everyone/disability.html
+http://www.ramblers.org.uk/info/factsandfigures/resources.html
+http://www.ramblers.org.uk/info/practical/maps.html
+http://www.ramblers.org.uk/info/practical/navigation.html
+http://www.ramblers.org.uk/info/practical/safety.html
+http://www.ramblersholidays.co.uk/Default.asp?pageID=72
+http://www.ramblersholidays.co.uk/Default.asp?pageid=72
+http://www.ramdac.org/fallacies.php?fallacy=Appeal%20to%20Emotion
+http://www.ramdasstapes.org/videos.htm
+http://www.ramdhanyk.com/movabletype/archives/thoughtprocess/000794.html
+http://www.rampantscotland.com/humour/blhumlong.htm
+http://www.rampantscotland.com/let020824.htm
+http://www.rampantscotland.com/let030426.htm
+http://www.rampantscotland.com/letter.htm
+http://www.rampantscotland.com/stay/bldev_stay_howard.htm
+http://www.ramsar.org/key_rules_cop.htm
+http://www.ramsar.org/ram/ram_rpt_19e.htm
+http://www.ran.org/home/victories.html
+http://www.ranadasgupta.com/notes.asp?note_id=21
+http://www.ranchskydive.com/dznews/2003/feb.htm
+http://www.ranchweb.com/lajitas/
+http://www.rand.org/commentary/062605SDUT.html
+http://www.rand.org/congress/environment/
+http://www.rand.org/hot_topics/nato.html
+http://www.rand.org/news/atlantic_summaries.html
+http://www.rand.org/news/press.04/06.16.html
+http://www.rand.org/paf/highlights/acqreform.html
+http://www.rand.org/publications/IP/IP187/IP187.html
+http://www.rand.org/publications/MR/MR773/MR773.chap2.html
+http://www.rand.org/publications/MR/MR855/mr855.ch3.html
+http://www.rand.org/publications/MR/MR855/mr855.ch4.html
+http://www.rand.org/publications/RB/RB32.html
+http://www.rand.org/publications/RB/RB5044/
+http://www.rand.org/publications/RB/RB7536/
+http://www.rand.org/publications/RB/RB7554/
+http://www.rand.org/publications/RB/RB9056/
+http://www.rand.org/publications/RP/RP493.html
+http://www.rand.org/randeurope/research/publications/review/1.3-daly.html
+http://www.randallwine.com/
+http://www.randi.org/jr/070904that.html
+http://www.randi.org/jr/08-31-01.html
+http://www.randi.org/jr/10-16-2000.html
+http://www.randi.org/jr/122404alien.html
+http://www.randolphvt.com/ossu/ruhs/ruhssp.shtml
+http://www.randomhouse.ca/catalog/display.pperl?0385658885&view=print
+http://www.randomhouse.ca/catalog/display.pperl?isbn=0385658885
+http://www.randomhouse.ca/catalog/display.pperl?isbn=0440241413&view=excerpt
+http://www.randomhouse.ca/catalog/display.pperl?isbn=0679311807
+http://www.randomhouse.com/BB/read/catalog/display.pperl?0345443284&view=rg
+http://www.randomhouse.com/BB/read/catalog/display.pperl?isbn=9780375760907&view=excerpt
+http://www.randomhouse.com/acmart/catalog/display.pperl?isbn=0679734775&view=tg
+http://www.randomhouse.com/audio/catalog/display.pperl?isbn=0739316842&view=excerpt
+http://www.randomhouse.com/bantamdell/catalog/display.pperl?isbn=0-385-33548-2&view=excerpt
+http://www.randomhouse.com/boldtype/0500/hemon/rtable.html
+http://www.randomhouse.com/broadway/blackink/catalog/display.pperl?isbn=0767914260
+http://www.randomhouse.com/catalog/display.pperl?1400076935
+http://www.randomhouse.com/catalog/display.pperl?isbn=0345425707&view=rg
+http://www.randomhouse.com/catalog/display.pperl?isbn=0345426533&view=rg
+http://www.randomhouse.com/catalog/display.pperl?isbn=0345443284&view=rg
+http://www.randomhouse.com/catalog/display.pperl?isbn=037572513X&view=rg
+http://www.randomhouse.com/catalog/display.pperl?isbn=0679751149&view=rg
+http://www.randomhouse.com/catalog/display.pperl?isbn=1400033837&view=rg
+http://www.randomhouse.com/catalog/display.pperl?isbn=9780739316849&view=excerpt
+http://www.randomhouse.com/catalog/display.pperl?isbn=9780739317761&view=excerpt
+http://www.randomhouse.com/catalog/display.pperl?isbn=9780739317778&view=excerpt
+http://www.randomhouse.com/catalog/display.pperl?isbn=9780739317785&view=excerpt
+http://www.randomhouse.com/crown/catalog/display.pperl?isbn=9781400082940&view=excerpt
+http://www.randomhouse.com/delrey/catalog/display.pperl?0345435400&view=printexcerpt
+http://www.randomhouse.com/delrey/catalog/display.pperl?isbn=9780345435408&view=excerpt
+http://www.randomhouse.com/doubleday/thefamily/ata_note.php
+http://www.randomhouse.com/features/steel/nami.html
+http://www.randomhouse.com/highschool/catalog/display.pperl?0-345-33182-6&view=tg
+http://www.randomhouse.com/knopf/catalog/display.pperl?isbn=9781400040865&view=excerpt
+http://www.randomhouse.com/rhpg/catalog/display.pperl?isbn=0345471253&view=excerpt
+http://www.randomhouse.com/teachers/catalog/display.pperl?isbn=0385323301&view=tg
+http://www.randomhouse.com/teachers/catalog/display.pperl?isbn=0440229049&view=tg
+http://www.randomhouse.com/teachers/catalog/display.pperl?isbn=0440411475&view=tg
+http://www.randomhouse.com/teachers/catalog/display.pperl?isbn=0440412706&view=tg
+http://www.randomhouse.com/teachers/catalog/display.pperl?isbn=0440413761&view=tg
+http://www.randomhouse.com/teachers/catalog/display.pperl?isbn=0440415802&view=tg
+http://www.randomhouse.com/teachers/catalog/display.pperl?isbn=0440416787&view=tg
+http://www.randomhouse.com/teens/catalog/display.pperl?isbn=0-440-41139-4
+http://www.randomhouse.com/teens/catalog/display.pperl?isbn=0440238412&view=tg
+http://www.randomhouse.com/teens/sisterhoodcentral/author_qa.html
+http://www.randomhouse.com/vintage/catalog/display.pperl?isbn=0679781382&view=excerpt
+http://www.randomhouse.com/vintage/catalog/display.pperl?isbn=1400032954&view=excerpt
+http://www.randomhouse.com/vintage/catalog/display.pperl?isbn=1400076935
+http://www.randomhouse.com/words/language/avoid_guide.html
+http://www.randomhouse.com/wotd/index.pperl?date=20000929
+http://www.randomjottings.net/archives/001262.html
+http://www.randsinrepose.com/archives/2004/07/10/what_to_do_when_youre_screwed.html
+http://www.randwick.nsw.gov.au/council_information/feesCharges.php
+http://www.randycrow.com/articles/012104.htm
+http://www.randynewman.com/tocdiscography/disc_good_old_boys/lyricsgoodoldboys
+http://www.ranelagh-sc.co.uk/rafulham.htm
+http://www.rangeguide.net/eta/link2.html
+http://www.rangers.co.uk/club/view/stadium/0,,5,00.html
+http://www.rangertell.com/tales10.htm
+http://www.rangzen.net/eng/dea/
+http://www.rangzen.org/peaceride04/html/Reports/reportshtml/strikersupport.html
+http://www.rankandrevue.net/modules.php?name=News&new_topic=10
+http://www.ranknfile-ue.org/cap_st11.html
+http://www.ranknfile-ue.org/newsupdates/news.php?topicid=128&pageID=uenews&pagetype=article
+http://www.ranknfile-ue.org/stwd_idx.html
+http://www.ranknfile-ue.org/stwd_newsletter.html
+http://www.ranknfile-ue.org/uen_0703_brazil.html
+http://www.ransac.org/Official%20Documents/U.S.%20Congress/105200481551AM.html
+http://www.ransac.org/Projects%20and%20Publications/News/Nuclear%20News/2002/06_10_02.html
+http://www.ransac.org/Publications/News/Nuclear%20News/2002/06_10_02.html
+http://www.ransac.org/about%20ransac/staff.asp
+http://www.ransomfellowship.org/R_Brains.html
+http://www.rantburg.com/default.asp?D=11/29/2004&C=International-UN-NGOs
+http://www.rantmorgan.com/
+http://www.rantmorgan.com/modules/news/
+http://www.rapereliefshelter.bc.ca/herstory/1981_movement_matters.html
+http://www.rapid-response-consulting.com/rst-cam.html
+http://www.rapidimmigration.com/usa/1_eng_coming_usa.html
+http://www.rapidintellect.com/AEQweb/rufen1.htm
+http://www.rapidnet.com/~jbeard/bdm/Cults/newage.htm
+http://www.rapidnet.com/~jbeard/bdm/Psychology/self-est/rapha.htm
+http://www.rapidnet.com/~jbeard/bdm/Psychology/xmas/xmas_car.htm
+http://www.rapidnet.com/~jbeard/bdm/exposes/macarthur/gccstmt.htm
+http://www.rapidvet.com/felineanemic.html
+http://www.rapnewsdirect.com/News/2005/01/18/50.Feb.XXL/
+http://www.raptureready.com/rap49.html
+http://www.raptureready.com/resource/morrison2/lost06.html
+http://www.raptureready.com/rr-date-setters.html
+http://www.raptureready.com/who/Robert_Van_Kampen.html
+http://www.rarebooks.nd.edu/digital/civil_war/letters/index.shtml
+http://www.rarebooks.nd.edu/digital/early_american/letters/index.shtml
+http://www.rarediseases.org/briefs/fdasa_floorstatement
+http://www.rarediseases.org/news/webvolunteering
+http://www.rareplanes.com/revw.htm
+http://www.rarey.com/sites/jsrarey/jsrbook.html
+http://www.ras.org.uk/html/meetings/RASSDAG.html
+http://www.ras.org.uk/index.php?option=com_content&task=view&id=748&Itemid=2
+http://www.rasch.org/erp3.htm
+http://www.rasta-man.co.uk/contributions.htm
+http://www.rastko.org.yu/rastko-lu/istorija/historie.htm
+http://www.ratbags.com/loon/2001/05may.htm
+http://www.ratbags.com/rsoles/history/2001/05may.htm
+http://www.ratcliffeblog.com/archives/000251.html
+http://www.rateapy.com/rates/
+http://www.ratestogo.com/City/EN/Hong_Kong
+http://www.ratical.org/co-globalize/SMICS.html
+http://www.ratical.org/co-globalize/altBSP.html
+http://www.ratical.org/insideERF.html
+http://www.ratical.org/many_worlds/LvdP/
+http://www.ratical.org/radiation/CNR/PBC/chp4F.html
+http://www.ratical.org/radiation/CNR/PP/chp7.html
+http://www.ratical.org/radiation/KillingOurOwn/KOOappA.html
+http://www.ratical.org/radiation/WorldUraniumHearing/PeterBossew.html
+http://www.ratical.org/ratville/JFK/MLKapr67.html
+http://www.ratical.org/renewables/
+http://www.rational.org.nz/public/BeliefsQuestionnaire/sup9.htm
+http://www.rationalmind.net/essay/12usa_politics
+http://www.rationalrevolution.net/articles/capitalism_economy.htm
+http://www.ratm.com/new2/freedom/04_00.html
+http://www.rattlesnake.com/notions/Choice-and-Constraint.html
+http://www.rattlesnake.com/notions/clarity-iraq.html
+http://www.rattlesnake.com/notions/earth-air-fire-water.html
+http://www.ratwarehouse.com/shop_view.php?cat=16
+http://www.ratz.co.uk/showingrats.html
+http://www.rauth.at/papers/masters.php
+http://www.raven1.net/
+http://www.ravensblog.net/
+http://www.ravenswing.com/~keys/challenges/blackwidow.html
+http://www.ravenwerks.com/leadership/kills.htm
+http://www.ravenwerks.com/practices/writing.htm
+http://www.raw-dogs.com/faq.html
+http://www.rawbandwidth.com/services/pbdslform.html
+http://www.rawbw.com/~hinshaw/cgi-bin/id?61
+http://www.rawfoodsupport.com/read.php?f=2&i=7216&t=7216
+http://www.rawganique.com/PantsCP1.htm
+http://www.rawsistaz.com/BOMshowcase.htm
+http://www.rawstory.com/archives/101704.php
+http://www.rawstory.com/exclusives/avery/outed_online_712.htm
+http://www.rawworld.org/html/raw_world_community_news_issue2.html
+http://www.raygirling.com/jean.htm
+http://www.raymondjames.com/inv_strat.htm
+http://www.rayrilingarmsbooks.com/cgi-bin/rrb455.cgi/3333.html
+http://www.raysahelian.com/sleep.html
+http://www.raytheon.com.au/Default.aspx?x=168
+http://www.raywhite.com/cgi-bin/rw/doc_manager.pl?t=view&aid=168&c=12
+http://www.razorprices.com/
+http://www.rba.co.uk/tfttr/xmas84.htm
+http://www.rbc.com/economics/
+http://www.rbcinsurance.com/unumprovident/
+http://www.rbcnews.com/press_rev/press_rev-141004_tv_shares.shtml
+http://www.rbcnews.com/press_rev/press_rev-180604_vedomosti.shtml
+http://www.rbcroyalbank.com/aol/
+http://www.rbcroyalbank.com/business/services/hold-policy.html
+http://www.rbcroyalbank.com/cards/rbcrewards/magazine/homeentertaining.html
+http://www.rbcroyalbank.com/kbi/me_ps2.html
+http://www.rbenjamin.com/pg226.cfm
+http://www.rbgsyd.nsw.gov.au/sydney_gardens_domain/visitor_information/walks_and_tours/heritage_walk
+http://www.rbgtrust.com/files/letters.htm
+http://www.rblanchard.com/corp/wk-rev/98q1/980103.html
+http://www.rbm.lawoffice.com/overview.htm
+http://www.rbnz.govt.nz/careers/currentvacancies/0164261.html
+http://www.rbnz.govt.nz/payment/0154525.html
+http://www.rbnz.govt.nz/speeches/0056822.html
+http://www.rbnz.govt.nz/speeches/0067862.html
+http://www.rbs.co.uk/CBFM/International_Services/Trade_Services/Trade_Guides_and_Forms/Trade_Application_Forms/Forms/form3_help.htm
+http://www.rbs.co.uk/Small_Business/Royal_Business_Magazine/Issue_28/Case_Studies/Practice_makes_perfect/default.htm
+http://www.rbs.co.uk/small_business/Royal_Business_Magazine/Issue_28/Case_Studies/Practice_makes_perfect/default.htm
+http://www.rbs.com/
+http://www.rbscs.co.uk/pressreleases2003.asp
+http://www.rc3.org/cgi-bin/archive.pl?year=2004&month=03&day=30
+http://www.rca.ac.uk/pages/study/funding_2066.html
+http://www.rca.org/news/journals/windfire/0105.html
+http://www.rcaguilar.com/lieder/index-weihnachten.htm
+http://www.rccaraction.com/rc/articles/tourers_4.asp
+http://www.rcep.org.uk/news/95-8.htm
+http://www.rcgp.org.uk/bru/index.asp
+http://www.rcgroups.com/forums/showthread.php?t=273581&page=2
+http://www.rcgroups.com/forums/showthread.php?t=70968
+http://www.rch.org.au/bloodtrans/about.cfm?doc_id=7374
+http://www.rch.org.au/engineering/staff/index.cfm?doc_id=1372
+http://www.rch.org.au/library/journals/jrjpen.htm
+http://www.rci.rutgers.edu/~cfs/305_html/MentalChron/MOlympics.html
+http://www.rci.rutgers.edu/~insects/comm.htm
+http://www.rci.rutgers.edu/~insects/sp23.htm
+http://www.rcm.ac.uk/content.asp?display=Courses/How_to_apply/How_to_apply&wp=-146
+http://www.rcmp-learning.org/docs/ecdd0087.htm
+http://www.rcmp-learning.org/iim/ecdi0071.htm
+http://www.rcn.org.uk/agendaforchange/countries/northernireland/
+http://www.rcn.org.uk/members/zones/index.php?a=6
+http://www.rcn.org.uk/news/display.php?ID=1074&area=Press
+http://www.rcollins.org/ddj/Sep96/Sep96.html
+http://www.rcontario.com/rconews.html
+http://www.rcowen.com/authllus.htm
+http://www.rcpamanual.edu.au/sections/singlearticle.asp?s=46
+http://www.rcplondon.ac.uk/college/committee/nccg/comm_nccg_minutes0310.htm
+http://www.rcpsglasg.ac.uk/hdrg/2001Oct9.htm
+http://www.rcpsych.ac.uk/college/faculty/dementia/index.aspx?eId=5
+http://www.rcpsych.ac.uk/cru/qnic.htm
+http://www.rcpsych.ac.uk/press/parliament/bournewoodresponse.htm
+http://www.rcpsych.ac.uk/press/preleases/pr/pr_628.htm
+http://www.rcrnews.com/searchResults.cms?companyId=825
+http://www.rcsb.org/pdb/newsletter/2001q4/mom.html
+http://www.rcslt.org/whatdo.shtml
+http://www.rctc.org/about/agendas.asp
+http://www.rcuniverse.com/magazine/article_display.cfm?article_id=67
+http://www.rda-causeway.blinkz.com/
+http://www.rdc.noaa.gov/~hrmo/SES-Perf-Elmts-FY04.htm
+http://www.rdoc.org.uk/exp13.html
+http://www.rdrop.com/~ffvc/News0803.html
+http://www.rdrop.com/~paul/main.html
+http://www.rdrop.com/~paul/main_december2002.html
+http://www.rdvp.org/~sketchpel/blog/2005/05/rdvp-seminar-peter-hart-ricoh.html
+http://www.re-creation.com.au/
+http://www.reach-the-edge.com/edgepoll.html
+http://www.reach.ie/archive.htm
+http://www.reach.ie/new.htm
+http://www.reach4morocco.com/page_b.asp?p=11107
+http://www.reachingcriticalwill.org/legal/npt/ngorep/nukepsych.html
+http://www.reachingoutfoundation.org/yourmoney.htm
+http://www.reachm.com/amstreet/
+http://www.reachm.com/amstreet/archives/2004/05/26/the-best-speech-of-his-presidency/
+http://www.reachm.com/amstreet/archives/2004/09/25/how-bushs-grandfather-helped-hitlers-rise-to-power/
+http://www.reachm.com/amstreet/archives/2004/12/27/republicans-done28099t-respond-to-the-call-of-duty-they-just-change-the-statistical-methodologies/
+http://www.reachm.com/amstreet/archives/2005/01/06/oh-jeeves-are-we-still-warring-with-those-atrocious-iraqis/
+http://www.reachm.com/amstreet/archives/2005/02/03/bush-tells-the-truth-twice/
+http://www.reachm.com/amstreet/archives/2005/03/03/cnn-present-inside-the-conservative-blogs
+http://www.reachm.com/amstreet/archives/2005/04/
+http://www.reachm.com/amstreet/archives/2005/04/30/ms-rice-visits-south-america/
+http://www.reachm.com/amstreet/archives/category/discrimination/black-interests/
+http://www.reachm.com/amstreet/archives/category/discrimination/glbt-interests/
+http://www.reachm.com/amstreet/archives/category/discrimination/latino-interests/
+http://www.reachm.com/amstreet/archives/category/discrimination/womens-interests/
+http://www.reachm.com/amstreet/archives/category/expression/
+http://www.reachm.com/amstreet/archives/category/the-campaign-2004/strategies/
+http://www.reachout.com.au/default.asp?ti=1291
+http://www.reachout.com.au/default.asp?ti=1652
+http://www.reachout.com.au/default.asp?ti=1652&lo=1
+http://www.reachout.com.au/default.asp?ti=76
+http://www.reachoutandread.org/about_job.html
+http://www.reachtheworld.org/fieldnotes/fn_carib2.shtml
+http://www.reactintl.org/nuz/nuz-2001-0516.htm
+http://www.reactivemetals.com/Data_Instructions/Chemical/d_me_msds.htm
+http://www.reactmag.com/features/50cent.php
+http://www.reactual.com/
+http://www.readbookonline.net/read/69/2776/
+http://www.readbookonline.net/read/69/2778/
+http://www.readbookonline.net/readOnLine/1487/
+http://www.readerprivacy.com/?mod%5Btype%5D=learn_more
+http://www.reading-college.ac.uk/courses/advice/welfare_and_financial_support.asp
+http://www.reading-guide.co.uk/cgi-bin/bnews.cgi?3069
+http://www.reading.org/publications/reading_today/samples/RTY-0412-hotnot.html
+http://www.readingarts.com/artsdevelopment/
+http://www.readinggroupguides.com/advice/running.asp
+http://www.readinggroupguides.com/guides/bonesetters_daughter-excerpt.asp
+http://www.readinggroupguides.com/guides/daughter_of_fortune.asp
+http://www.readinggroupguides.com/guides/hotel_du_lac.asp
+http://www.readinggroupguides.com/guides/leaving_a_trace.asp
+http://www.readinggroupguides.com/guides3/foxs_walk3.asp
+http://www.readinggroupguides.com/guides3/grapes_of_wrath1.asp
+http://www.readinggroupguides.com/guides3/orchard3.asp
+http://www.readinggroupguides.com/guides3/torn_skirt3.asp
+http://www.readinggroupguides.com/guides3/waiting_for_an_angel1.asp
+http://www.readingmatrix.com/articles/gupta_oboler/
+http://www.readingmatrix.com/articles/gupta_oboler/references.html
+http://www.readingrecovery.org/sections/reading/disabilities.asp
+http://www.readprint.com/author-89/Edith-Wharton
+http://www.readprint.com/chapter-10043/Jules-Verne
+http://www.readprint.com/chapter-10229/H-G--Wells
+http://www.readprint.com/chapter-7399/Lucy-Maud-Montgomery
+http://www.readprint.com/chapter-8547/George-Bernard-Shaw
+http://www.readprint.com/chapter-986/Francis-Hodgson-Burnett
+http://www.readprint.com/work-1180/Guy-de-Maupassant
+http://www.readprint.com/work-1444/Mark-Twain
+http://www.readprint.com/work-263/Anton-Chekhov
+http://www.readtofeed.org/
+http://www.readtofeed.org/for_teachers_leaders_and_parents/
+http://www.readwritethink.org/lessons/lesson_view.asp?id=136
+http://www.readwritethink.org/lessons/lesson_view.asp?id=302
+http://www.readwritethink.org/lessons/lesson_view.asp?id=56
+http://www.readwriteweb.com/archives/001862.php
+http://www.readwriteweb.com/archives/002637.php
+http://www.reaganfoundation.org/reagan/speeches/wall.asp
+http://www.realbeer.com/news/articles/news-000276.php
+http://www.realchangenews.org/current/manley_quest.html
+http://www.realchangenews.org/pastissuesupgrade/2003_01_09/features/all_quiet.html
+http://www.realcities.com/mld/krwashington/10703534.htm
+http://www.realcities.com/mld/krwashington/11574296.htm
+http://www.realcities.com/mld/krwashington/11949626.htm
+http://www.realcities.com/mld/krwashington/9927782.htm
+http://www.realcities.com/mld/krwashington/news/special_packages/iraq/intelligence/10704306.htm
+http://www.realcities.com/mld/krwashington/news/special_packages/riskyrx/10408938.htm
+http://www.realclearpolitics.com/commentary.html
+http://www.realclearpolitics.com/talk_show.html
+http://www.realclimate.org/index.php?p=86
+http://www.realclimate.org/index.php?p=87
+http://www.realestate.com.au/cgi-bin/rsearch?a=v&id=140&cat=res:Buying&t=res&ag=&cu=&print=1
+http://www.realestate.com.au/cgi-bin/rsearch?a=v&t=nc-def&id=140&cat=res:Buying&ag=&cu=
+http://www.realestate.com.au/cgi-bin/rsearch?a=v&t=nhm&id=140&cat=res:Buying&ag=&cu=
+http://www.realestate.com.au/cgi-bin/rsearch?a=v&t=res&id=140&cat=res:Buying&ag=&cu=
+http://www.realestate.com.au/cgi-bin/rsearch?a=v&t=rur&id=140&cat=res:Buying&ag=&cu=
+http://www.realestateexpo.us/miami2005/exhibits.html
+http://www.realestatejournal.com/buysell/mortgages/20050617-simon.html?rejpartner=mktw
+http://www.realestatejournal.com/buysell/salestrends/20040405-hagerty.html
+http://www.realestatejournal.com/homeimprove/homeimprove/20000503-fletcher.html
+http://www.realestateview.com.au/media_spotlights.html
+http://www.realestateyork.com/a_who-realtor-agent-broker.asp
+http://www.realestateyork.com/index.asp
+http://www.realestateyork.com/m_resources.asp
+http://www.realestateyork.com/r_ask-york-dallastown-shrewsbury-pennsylvania-real-estate.asp
+http://www.realestateyork.com/r_mortgage-calculator_adjustable.asp
+http://www.realgreen.com/bios.htm
+http://www.realgroovy.co.nz/books/isbn/0670915947
+http://www.realhope.com/free_tips.php
+http://www.reality.org.nz/articles/31/31-laurent.html
+http://www.realityblurred.com/realitytv/archives/survivor/2000_Aug_05_james_garner_id
+http://www.realityblurred.com/realitytv/archives/trading_spaces/2003_Aug_13_naked_paige_cover
+http://www.realityhq.com/news86.html
+http://www.realitytvmagazine.com/blog/2005/06/fire_me_please_.html
+http://www.realitytvworld.com/index/articles/newssection.php?x=%7C%7C4
+http://www.realitytvworld.com/index/articles/newssection.php?x=01%7C2001%7C4
+http://www.realitytvworld.com/index/articles/newssection.php?x=06%7C2001%7C4
+http://www.realitytvworld.com/index/articles/popnewscathome.php?x=2
+http://www.realitytvworld.com/index/articles/popnewscathome.php?x=3
+http://www.realitytvworld.com/index/articles/story.php?s=1001454
+http://www.realitytvworld.com/index/articles/story.php?s=1001541
+http://www.realitytvworld.com/index/articles/story.php?s=2576
+http://www.realitytvworld.com/index/articles/story.php?s=2866
+http://www.realitytvworld.com/index/articles/story.php?s=2943
+http://www.realitytvworld.com/index/articles/summary.php?i=362
+http://www.realitytvworld.com/index/modules.php?op=modload&name=News&file=index&catid=4
+http://www.realitytvworld.com/thecomplex/
+http://www.reallans.com/bj.shtml
+http://www.reallifecoach.com/stories.htm
+http://www.really-useful-books.com/
+http://www.reallylinux.com/docs/basicdialup.shtml
+http://www.reallysi.com/newsletter10_2.htm
+http://www.reallysi.com/newsletter15_2.htm
+http://www.reallysimplesyndication.com/
+http://www.realmacaw.com/pages/impobser.html
+http://www.realmilk.com/happening.html
+http://www.realmtech.net/article59.html
+http://www.realnormal.com/
+http://www.realpitbull.com/puppymills.html
+http://www.realpix.com/parkridge.html
+http://www.realrates.com/news/hours.htm
+http://www.realrunner.com/gear/article=rg01.php
+http://www.realsimple.com/realsimple/web/gift/solutions/ar2/0,22035,749901,00.html
+http://www.realsportsnetwork.com/Golf_Organizations_Associations_and_Leagues.html
+http://www.realsportsnetwork.com/Soccer_Competitions_Women's_World_Cup.html
+http://www.realsurf.com.au/index.php3
+http://www.realsurf.com/
+http://www.realtimes.com/headlines/relibrary_sellersadvice.htm
+http://www.realtimetraders.com/sp/sectorind.asp?vid=0&item=20
+http://www.realtor.com/
+http://www.realtor.com/Basics/AllAbout/Bookshelf/Manufactured.asp
+http://www.realtor.org/rmomag.NSF/pages/economyfeb05?OpenDocument
+http://www.realtor.org/rmomag.NSF/pages/featuredec03donotcall?OpenDocument
+http://www.realtraps.com/
+http://www.realtrees4kids.org/members/plantseed.htm
+http://www.realworldlinuxsecurity.com/
+http://www.reason.com/
+http://www.reason.com/0203/fe.mw.the.shtml
+http://www.reason.com/0205/fe.mg.hollywood.shtml
+http://www.reason.com/0303/cr.co.global.shtml
+http://www.reason.com/0306/cr.cf.look.shtml
+http://www.reason.com/0310/co.mw.liberty.shtml
+http://www.reason.com/0310/fe.vp.designing.shtml
+http://www.reason.com/0311/fe.jb.kroger.shtml
+http://www.reason.com/0311/fe.jb.show.shtml
+http://www.reason.com/0407/co.mw.only.shtml
+http://www.reason.com/0411/fe.dc.whos.shtml
+http://www.reason.com/0501/fe.ps.cut.shtml
+http://www.reason.com/0506/cr.vp.consumer.shtml
+http://www.reason.com/0506/fe.ls.how.shtml
+http://www.reason.com/cy/cy110403.shtml
+http://www.reason.com/hitandrun/2003/09/21-week/index.shtml
+http://www.reason.com/hitandrun/2003/12/21-week/index.shtml
+http://www.reason.com/hitandrun/2004/02/08-week/index.shtml
+http://www.reason.com/hitandrun/2004/10/yay_blood_for_o.shtml
+http://www.reason.com/hitandrun/2005/04/the_dworkin_whi_1.shtml
+http://www.reason.com/hitandrun/2005/06/lowcost_showdow.shtml
+http://www.reason.com/hitandrun/2005/06/whats_yours_is.shtml
+http://www.reason.com/hod/jh110804.shtml
+http://www.reason.com/links/links052003.shtml
+http://www.reason.com/links/links061605.shtml
+http://www.reason.com/rb/rb010704.shtml
+http://www.reason.org/35ann.html
+http://www.reasongonemad.com/columns/2005/0508film.asp
+http://www.reasons.org/resources/fff/2001issue07/index.shtml
+http://www.rebeccablood.net/archive/2002/06.html
+http://www.rebeccablood.net/archive/2004/03.html
+http://www.rebeccablood.net/archive/2004/05.html
+http://www.rebeccablood.net/archive/2005/03.html
+http://www.rebeccablood.net/archive/2005/06.html
+http://www.rebelhome.net/terms.html
+http://www.rebelscum.com/article.asp?i=7895
+http://www.rebelscum.com/article.asp?i=93042
+http://www.rebelscum.com/qa072699.asp
+http://www.rebif.com/rebif_guide/ra320.jsp
+http://www.rebuildingmadison.info/may04.htm
+http://www.recappub.com/games.html
+http://www.recessrecords.com/pages/press.html
+http://www.recipelink.com/gm/5/2211
+http://www.recipesforaction.com/a_time.html
+http://www.recipezaar.com/79179
+http://www.recipezaar.com/r/
+http://www.reclaimamerica.org/
+http://www.reclaimthemedia.org/pages.php?node=04/07/16/7439782
+http://www.reclaimthemedia.org/stories.php?story=03/02/11/9036810
+http://www.reclaimthemedia.org/stories.php?story=04/03/25/0299770
+http://www.reclaimthemedia.org/stories.php?story=05/05/07/5328986
+http://www.reclaimthemedia.org/stories.php?story=05/06/19/8233381
+http://www.recmusic.org/lieder/get_text.html?TextId=15085
+http://www.recmusic.org/lieder/get_text.html?TextId=20416
+http://www.recoilmag.com/news/unemployment_rate_zero_percent_0304.html
+http://www.reconnections.net/inner_war.htm
+http://www.reconstructinghistory.com/irish/leine.htm
+http://www.reconstruction.ws/052/vanleeuwen.shtml
+http://www.record-eagle.com/2004/nov/12trojan.htm
+http://www.record-eagle.com/2005/jan/30liz.htm
+http://www.recordemporium.com/id6.html
+http://www.recordonline.com/archive/2001/09/21/kmcol921.htm
+http://www.recordonline.com/archive/2003/06/21/acnewreg.htm
+http://www.recordonline.com/archive/2004/03/15/jgpensio.htm
+http://www.recordonline.com/archive/2004/07/09/buscemac.htm
+http://www.recordonline.com/archive/2004/09/30/lewis30.htm
+http://www.recordonline.com/archive/2005/01/12/12letter.htm
+http://www.records.nsw.gov.au/publications/migranteduc/page2.htm
+http://www.records.nsw.gov.au/publicsector/rk/storage/Guidelines/security.htm
+http://www.recordstore.co.uk/kidcarpet.jsp
+http://www.recover98.com/hardware.htm
+http://www.recovery-inc.com/resources/low2.html
+http://www.recoverybydiscovery.com/hydrogen.htm
+http://www.recoverycourse.com/compare.html
+http://www.recoveryeq.com/cushings_syndrome.htm
+http://www.recoveryeq.com/cushings_syndrome_pro.htm
+http://www.recoveryeq.com/laminitis_founder.htm
+http://www.recoveryeq.com/laminitis_founder_pro.htm
+http://www.recoveryfromcfs.org/chapter7.htm
+http://www.recruitersnetwork.com/articles/article.cfm?ID=1513
+http://www.recruitersnetwork.com/articles/printer.cfm?ID=1513
+http://www.recruitingnews.com/2005/2.1.htm
+http://www.recruitmarine.co.uk/vacancies.htm
+http://www.recsupply.com/TOC/1DeckEquipment.htm
+http://www.rect.muni.cz/statut/rulesPhD.htm
+http://www.recycle.mcmail.com/shop.htm
+http://www.recycleworks.org/greenbuilding/gbg_heating_and_cooling.html
+http://www.recyclingconsortium.org.uk/community/nappies_info.htm
+http://www.recyclingtoday.com/articles/article.asp?Id=3406&SubCatID=85&CatID=13
+http://www.recyclingtoday.com/articles/article.asp?Id=4334&SubCatID=29&CatID=7
+http://www.recyclingtoday.com/articles/article.asp?Id=4334&SubCatID=59&CatID=13
+http://www.red-bean.com/guile/guile/old/0772.html
+http://www.red-gate.com/code_profiling.htm
+http://www.red-gate.com/jobs.htm
+http://www.red4.co.uk/ebooks/shorthistory/localgovernment.htm
+http://www.red4.co.uk/ebooks/wildwales/chapt64.htm
+http://www.redandtanlines.com/passenger_rules.htm
+http://www.redbackrock.com/rock/video___dvd/story_krnspnhrsf_1400.html
+http://www.redbarons.com/
+http://www.redbull.com/article.action?documentIntID=1115653232798-221576344
+http://www.redcar-cleveland.gov.uk/YrCounc1.nsf/0/95EBFCF762EC2A7880256D11004C1709?OpenDocument
+http://www.redcolony.com/art.php?id=0501220
+http://www.redcritique.org/WinterSpring2005/leftpopulisms.htm
+http://www.redcross-cleveland.org/
+http://www.redcross.ca/main.asp?id=002857
+http://www.redcross.ca/main.asp?id=007398
+http://www.redcross.ca/print.asp?id=007398
+http://www.redcross.int/en/standcom/speech_cod01.asp
+http://www.redcross.lt/refugee_activities.html
+http://www.redcross.org/
+http://www.redcross.org/article/0,1072,0_485_2354,00.html
+http://www.redcross.org/donate/donate.html
+http://www.redcross.org/museum/history/claraBarton.asp
+http://www.redcross.org/preparedness/cdc_english/IsoQuar.asp
+http://www.redcross.org/preparedness/cdc_english/health_adults.asp
+http://www.redcross.org/preparedness/cdc_english/health_high.asp
+http://www.redcross.org/preparedness/cdc_english/health_middle.asp
+http://www.redcross.org/preparedness/cdc_english/health_seniors.asp
+http://www.redcross.org/services/biomed/0,1082,0_19_,00.html
+http://www.redcross.org/services/biomed/0,1082,0_557_,00.html
+http://www.redcross.org/services/disaster/0,1082,0_585_,00.html
+http://www.redcross.org/services/disaster/beprepared/seniors.html
+http://www.redcrossdallas.org/misc/mission_2.htm
+http://www.redcrossidaho.org/news_article.asp?NewsID=408
+http://www.redcrossillinois.org/
+http://www.redding.com/redd/features/
+http://www.reddottours.com/Information/advice.php
+http://www.reddragonfm.co.uk/article.asp?id=7571
+http://www.redelvises.com/press/press-rustys.htm
+http://www.redfaction.com/character_sketch.cfm?id=hendrix
+http://www.redfeather.org/
+http://www.redflag-linux.com/chanpin_old/ecp.php?id=10000006
+http://www.redgoldfish.co.uk/js_docs.asp?doc=22
+http://www.redgoldfish.co.uk/jsviewjob.asp?jid=105147&sectors=5&region=0&jtype=&keywords=practice&offset=
+http://www.redhat.com/magazine/001nov04/features/selinux/
+http://www.redhat.com/training/rhce/courses/
+http://www.redherring.com/Article.aspx?a=10988&hed=Risky+returns
+http://www.redherring.com/Article.aspx?a=10988&hed=Risky+returns&sector=Industries&subsector=VentureCapital
+http://www.redherring.com/Article.aspx?a=11181&hed=Got+spectrum%3F&sector=Industries&subsector=Communications
+http://www.redherring.com/Article.aspx?a=11181&sector=Capital&subsector=EconomyAndPolicy
+http://www.redherring.com/Article.aspx?a=11181&sector=Industries&subsector=Communications
+http://www.redhillconsulting.com.au/blogs/simon/archives/2004_02.html
+http://www.rediboom.com/englisch/material/kunstst.html
+http://www.rediff.com/business/ar00apr.htm
+http://www.rediff.com/election/1999/oct/12atala.htm
+http://www.rediff.com/election/2003/mar/01naga1.htm
+http://www.rediff.com/money/2003/jan/09pbd4.htm
+http://www.rediff.com/news/1999/jun/05us1.htm
+http://www.rediff.com/news/2001/apr/06nad.htm
+http://www.rediff.com/news/2003/jun/17arvind.htm
+http://www.rediff.com/news/2003/may/06praful.htm
+http://www.rediff.com/news/2003/sep/19ayo.htm
+http://www.rediff.com/news/2003/sep/26rajeev.htm
+http://www.rediff.com/news/2004/feb/28buzz.htm
+http://www.rediff.com/news/2004/jul/21rajeev.htm
+http://www.rediff.com/news/oct/30arun.htm
+http://www.rediff.com/search/2001/mar/26busi.htm
+http://www.rediff.com/search/soccer.htm
+http://www.rediff.com/search/soccer6.htm
+http://www.redlandbaptist.org/about_us/terms_of_use.php
+http://www.redletterdays.co.uk/common_files/terms.asp
+http://www.redlineoil.com/legal.asp
+http://www.redlionpa.org/redevelopment.htm
+http://www.redlist.org/info/organization.html
+http://www.redmondmag.com/columns/article.asp?EditorialsID=858
+http://www.redmonk.com/jgovernor/archives/2005_02.html
+http://www.redmonk.com/sogrady/archives/000465.html
+http://www.rednova.com/
+http://www.rednova.com/news/display/?id=96995
+http://www.redpepper.org.uk/Apr2004/x-Apr2004-Grzincic.html
+http://www.redpepper.org.uk/KYE/x-kye-Jun2005.htm
+http://www.redpepper.org.uk/global/x-jun05-hilary.htm
+http://www.redpepper.org.uk/intarch/x-bove-june2002.html
+http://www.redpepper.org.uk/intarch/xcities.html
+http://www.redpepper.org.uk/iraq/x-mar2005-sgrena.htm
+http://www.redpepper.org.uk/natarch/xfilter.html
+http://www.redracingparts.com/
+http://www.redrag.net/2004/02/17/self-fulfilling-prophecy/
+http://www.redrat.net/BUSH_WAR/liberation.htm
+http://www.redrooster3.com/past%20reports/dec2003.htm
+http://www.redrooster3.com/past%20reports/may2003.htm
+http://www.redrovermarketing.com/Membership_Marketing_Turning_Occasional_Buyers_Into_Loyal_Customers.shtml
+http://www.redruth.cornwall.sch.uk/departments/english/ks3/attainment/speaklisten.htm
+http://www.redseacollege.com/POLISH/tips1.htm
+http://www.redseaonyourtravels.co.uk/hyatt.html
+http://www.redsoxnation.net/forums/lofiversion/index.php/t15416.html
+http://www.redstone.army.mil/history/abmaspec/part2.html
+http://www.redsun.com/type/logotype/
+http://www.redtram.com/catalogue/world/science-and-technologies/
+http://www.redvsblue.com/
+http://www.redwoodcity.org/cds/redevelopment/downtown/history/
+http://www.reebokaerobicstep.co.uk/directory/Reebok-Step-System.html
+http://www.reebokmultigym.co.uk/directory/Reebok-Step-System.html
+http://www.reed-electronics.com/eb-mag/article/CA506856?industryid=2116
+http://www.reed-electronics.com/electronicnews/article/CA438406?spacedesc=news
+http://www.reed-electronics.com/semiconductor/article/CA372260
+http://www.reedfloren.com/articles/personal-finance/teaching-children-about-money.html
+http://www.reedsmith.com/library/publicationView.cfm?itemid=3763
+http://www.reedsmith.com/library/publicationView.cfm?itemid=82657&catid=13
+http://www.reef.crc.org.au/members/
+http://www.reefed.edu.au/teaching/primary/index2.html
+http://www.reelradio.com/aw3k/script.html
+http://www.reenactor.net/ww1/morsels/fisher/tunic-1.htm
+http://www.reengage.org/go/Article_127.html
+http://www.reengage.org/go/Article_335.html
+http://www.rees.emory.edu/certificates.html
+http://www.refac.com/html/20020820.html
+http://www.refcofx.com/glossary.html
+http://www.refdesk.com/
+http://www.refdesk.com/expert.html
+http://www.refdesk.com/health.html
+http://www.refdesk.com/pets.html
+http://www.reflexology-research.com/WEB10_1.html
+http://www.reflexology-research.com/reflexions2.htm
+http://www.reform.org/pr091000.htm
+http://www.reformation.org/borgia-ch5.html
+http://www.reformed.org/webfiles/antithesis/v2n4/ant_v2n4_storm.html
+http://www.reformedreader.org/rbb/broadus/wtbd.htm
+http://www.reformist.org/isign.shtml
+http://www.reformmonitor.org/
+http://www.refresher.com/!brandnaming.html
+http://www.refresher.com/!ddesavvy.html
+http://www.refresher.com/!dkdcontext.html
+http://www.refresher.com/!editpros10
+http://www.refresher.com/!hdwithin.html
+http://www.refugee.org.nz/rsaa/text/docs/1655-93.htm
+http://www.refuseandresist.org/ab/022802pendergraft.html
+http://www.refuseandresist.org/article-print.php?aid=1047
+http://www.refuseandresist.org/detentions/art.php?aid=1047
+http://www.refuseandresist.org/detentions/art.php?aid=1317
+http://www.refuseandresist.org/police_state/art.php?aid=1886
+http://www.refuseandresist.org/police_state/art.php?aid=912
+http://www.refuseandresist.org/war/art.php?aid=932
+http://www.refusersolidarity.net/default.asp?content_new=one_story_dv
+http://www.refusingtokill.net/whathaveidone.htm
+http://www.reg.ufl.edu/02-03-catalog/courses/p_r/courses_Public_Relations.htm
+http://www.reg.ufl.edu/03-04-catalog/courses/public-relations.html
+http://www.reg.ufl.edu/99-20catalog/courses/public-relations.html
+http://www.reg.ufl.edu/catalog-2000-01/courses/p_r/26C_001_Public_Relations.htm
+http://www.regaltitles.com/
+http://www.regannursery.com/getting_started/rose_glossary.htm
+http://www.regannursery.com/news/archive/2003/05_01_2003.htm
+http://www.regenerationreservation.org/an_apache_chief_find_truth.htm
+http://www.regenstrief.org/loinc/meetings/20031006/Announcement
+http://www.regents.nysed.gov/2004Meetings/November2004/1104brd4.htm
+http://www.regentstreetonline.com/strategies/public_realm_full.htm
+http://www.reginalibrary.ca/buildings.html
+http://www.reginalibrary.ca/film-list.html
+http://www.region.peel.on.ca/planning/rop-strategic-update/update2.htm
+http://www.region.waterloo.on.ca/web/region.nsf/0/C9C4CC13D2598C8085256EC50066BB77/$file/CR-CLK-04-004_1.pdf?openelement
+http://www.region.york.on.ca/Services/Regional+Planning/Long+Range+and+Strategic+Plan/ProvincialPlanningInitiatives.htm
+http://www.region12.nafsa.org/conference/hotel.html
+http://www.regional.org.au/au/abts/2001/t1/mclellan.htm
+http://www.regional.org.au/au/asa/1998/7/265cox.htm
+http://www.regional.org.au/au/asa/2001/plenery/1/hatfield.htm
+http://www.regional.org.au/au/countrytowns/strategies/potter.htm
+http://www.regional.org.au/au/roc/1991/roc1991083.htm
+http://www.regionvqnet.org/
+http://www.regis.edu/regis.asp?sctn=cam&p1=wp&p2=rc
+http://www.registan.net/index.php?s=kokand&submit=Search
+http://www.registerdata.com/phantominfo.html
+http://www.registerguard.com/news/2004/07/04/a1.healthcosts.0704.html
+http://www.registerguard.com/news/2004/12/23/a1.iraqsoldier.1223.html
+http://www.registrar.dal.ca/calendar/ug/BIOE.htm
+http://www.registrar.uiowa.edu/registrar/catalog/UniversityCourses/IowaBiosciencesAdvantage.html
+http://www.registration.yourhost.is/enhr2005iceland/
+http://www.regrettheerror.com/
+http://www.rehabnurse.org/education/04conference/thur.html
+http://www.rehabnurse.org/profresources/painmgmt.html
+http://www.rehaboutlet.com/1051_2_2.htm
+http://www.rehabpub.com/ltrehab/112001/3.asp
+http://www.rehabpub.com/ltrehab/452000/4.asp
+http://www.reic.co.uk/disclaimer1.htm
+http://www.reiclub.com/articles/planning-success
+http://www.reidepotshop.com/notes.html
+http://www.reiki-4-all.com/index.php?showtopic=1326&view=getlastpost
+http://www.reiki-evolution.co.uk/oainteg.htm
+http://www.reiki-reflex.co.uk/what_is_reflexology.htm
+http://www.reinforcedplastics.com/market_focus/marine_offshore/Mirabella.html
+http://www.reise.idealo.de/airlines/19102004/details/Air_Scotland_routes_1.html
+http://www.relationships.com.au/advice/fair_fighting.asp
+http://www.relationships.com.au/advice/two_persons.asp
+http://www.relaxintuit.com/main.asp
+http://www.relaypoint.net/~carlan/prealg.html
+http://www.releases.gov.nl.ca/releases/2003/exec/0131n01.htm
+http://www.relevantmagazine.com/article.php?sid=4238
+http://www.relevantmagazine.com/article.php?sid=4440
+http://www.relexsoftware.com/customers/cs/honeywell.asp
+http://www.reliability.com/articles/article01.htm
+http://www.reliability.com/articles/article18.htm
+http://www.reliability.com/articles/article25.htm
+http://www.reliability.com/articles/article45.htm
+http://www.reliability.com/articles/article63.htm
+http://www.reliabilitydirect.com/alignmentproducts/ACC-SAT.htm
+http://www.reliefweb.int/rw/RWB.NSF/db900SID/ACOS-64CPVS?OpenDocument
+http://www.reliefweb.int/rw/RWB.NSF/db900SID/DDAD-692MKY?OpenDocument
+http://www.reliefweb.int/rw/RWB.NSF/db900SID/DDAD-6AKSK9?OpenDocument
+http://www.reliefweb.int/rw/RWB.NSF/db900SID/EVOD-6DJGED?OpenDocument
+http://www.reliefweb.int/rw/RWB.NSF/db900SID/HMYT-6DFT6B?OpenDocument
+http://www.reliefweb.int/rw/RWB.NSF/db900SID/KHII-67H8SW?OpenDocument
+http://www.reliefweb.int/rw/RWB.NSF/db900SID/KHII-6BF35W?OpenDocument
+http://www.reliefweb.int/rw/RWB.NSF/db900SID/KHII-6DB4HT?OpenDocument
+http://www.reliefweb.int/rw/RWB.NSF/db900SID/OCHA-64DC2A?OpenDocument
+http://www.reliefweb.int/rw/res.nsf/db900SID/OCHA-6DELV7?OpenDocument
+http://www.reliefweb.int/rw/rwb.nsf/0/74fde1a9267601c049256fd200049033?OpenDocument
+http://www.reliefweb.int/w/rwb.nsf/0/1bb0ff74035edb3f85256b87006f6ac5?OpenDocument
+http://www.reliefweb.int/w/rwb.nsf/0/9315accad57fa238c1256b100031a150?OpenDocument
+http://www.reliefweb.int/w/rwb.nsf/0/dc5c9f04a5df645c49256f57002094fc?OpenDocument
+http://www.religion-online.org/showarticle.asp?title=115
+http://www.religion-online.org/showarticle.asp?title=1870
+http://www.religion-online.org/showarticle.asp?title=2936
+http://www.religion-online.org/showarticle.asp?title=895
+http://www.religion-online.org/showarticle.asp?title=91
+http://www.religion-online.org/showarticle.asp?title=945
+http://www.religion-online.org/showarticle.asp?title=982
+http://www.religion-online.org/showchapter.asp?title=420&C=265
+http://www.religion-online.org/showchapter.asp?title=690&C=906
+http://www.religionandpolicy.org/show.php?p=1.1.879
+http://www.religionnews.com/ArticleofWeek60205.html
+http://www.religionnews.com/bkgd_mormon1.html
+http://www.religionnewsblog.com/8449-.html
+http://www.religioscope.com/info/doc/jihad/azzam_defence_3_chap1.htm
+http://www.religioscope.com/info/dossiers/textislamism/faraj_jansen.htm
+http://www.religiousconsultation.org/News_Tracker/genital_cutting_shows_signs_of_losing_favor.htm
+http://www.religioustolerance.org/amend_1.htm
+http://www.religioustolerance.org/attack.htm
+http://www.religioustolerance.org/chr_cell.htm
+http://www.religioustolerance.org/chr_syatp.htm
+http://www.religioustolerance.org/dixon_03.htm
+http://www.religioustolerance.org/ev_dialog.htm
+http://www.religioustolerance.org/evolutio.htm
+http://www.religioustolerance.org/gl_p.htm
+http://www.religioustolerance.org/harra_wk.htm
+http://www.religioustolerance.org/hom_mar8.htm
+http://www.religioustolerance.org/hom_marb26.htm
+http://www.religioustolerance.org/hom_marb45.htm
+http://www.religioustolerance.org/hom_marb5.htm
+http://www.religioustolerance.org/hom_news_01c.htm
+http://www.religioustolerance.org/hom_rom3.htm
+http://www.religioustolerance.org/hom_umc7.htm
+http://www.religioustolerance.org/igm_circ.htm
+http://www.religioustolerance.org/ine_none3.htm
+http://www.religioustolerance.org/jepd_gen.htm
+http://www.religioustolerance.org/mar_amend2.htm
+http://www.religioustolerance.org/prayer_4.htm
+http://www.religioustolerance.org/ps_pra7.htm
+http://www.religioustolerance.org/rel_rate.htm
+http://www.religioustolerance.org/sci_cchris.htm
+http://www.religioustolerance.org/sep_cs_can.htm
+http://www.remarkablemedicine.com/Medicine/depression.html
+http://www.remembering.org.uk/
+http://www.remington.com/magazine/current/2004_0504.asp
+http://www.remote.org/frederik/culture/antigua/nightlife.html
+http://www.renaissance-group.com/investphilosophy.htm
+http://www.renavigator.com/sample_chapter.html
+http://www.render-boy.com/questions.html
+http://www.renderlab.net/projects/wardrive/media.html
+http://www.renderx.net/lists/xep-support/0367.html
+http://www.reneereyes.com/Webdocs/make-4body2-exercise.htm
+http://www.renegadegardener.com/content/newu2001.htm
+http://www.renewableenergyaccess.com/rea/news/story?id=18953
+http://www.renewal.org.au/cgregory/writing/eden.shtml
+http://www.renewamerica.us/
+http://www.renewamerica.us/archives/speeches/02_05_02jerusalem.htm
+http://www.renewamerica.us/columns/creech/041018
+http://www.renewamerica.us/columns/duke/050126
+http://www.renewamerica.us/columns/huntwork/040224
+http://www.renewamerica.us/columns/shroder/041210
+http://www.renewnyc.com/FundingInitiatives/partialact_plans.asp
+http://www.renewnyc.com/plan_des_dev/wtc_site/new_design_plans/refined_plan/Sept2003Statement.asp
+http://www.renewscotland.org/scotland/buying.html
+http://www.renlearn.com/Enews/March03.htm
+http://www.renotype.com/faq.asp
+http://www.rensco.com/faq.asp
+http://www.rense.com/general24/hate.htm
+http://www.rense.com/general33/shadow.htm
+http://www.rentnet.com/apartments/fyp/reading_room/move/moving_out.jhtml
+http://www.rentokil-initial.com/press2.php
+http://www.repeater-builder.com/maxtrac/maxtrac-interfacing.html
+http://www.repeater-builder.com/rbtip/fair-use.html
+http://www.repentamerica.com/singalittlelouder.html
+http://www.reportage.uts.edu.au/stories/2004/social/ageism.htm
+http://www.reporter-archive.mcgill.ca/Rep/r3116/lin.html
+http://www.reportmaster.com/sample_narrative.htm
+http://www.reptilerooms.com/forumtopic-7550.html
+http://www.republic.k12.mo.us/board/handbooks/hb_ms.htm
+http://www.republic.org.au/ARM-2001/history/history_rac_pjkspeech.htm
+http://www.republic.org.au/ARM-2001/speeches&articles/spa_keating1.htm
+http://www.republicofliberia.com/opening.htm
+http://www.republicoft.com/index.php/archives/2005/06/10/camp-hetero/
+http://www.republicoft.com/index.php/archives/2005/06/11/more-on-zacks-story/
+http://www.republicoftea.com/pages/questionsanswers.asp
+http://www.rereviewed.com/thedeepnorth/index.php?p=54
+http://www.res-ltd.com/arkhill1/intro.htm
+http://www.res.org.uk/
+http://www.res.org.uk/society/mediabriefings/festival/BAbriefings/BAbriefig2001.asp
+http://www.res.org.uk/society/mediabriefings/pdfs/1996/July/benston.asp
+http://www.res.org.uk/society/mediabriefings/pdfs/1997/September/ruttan.asp
+http://www.res.org.uk/society/mediabriefings/pdfs/1999/July/smith2.asp
+http://www.res.org.uk/society/mediabriefings/pdfs/2002/January/milanovic.asp
+http://www.rescomp.berkeley.edu/~hossman/cs263/paper.html
+http://www.rescomp.upenn.edu/docs/choose1.cfm
+http://www.rescuehouse.com/content/firefighter-articles/009321.php
+http://www.resdal.org.ar/Archivo/alem-cap2.htm
+http://www.research.att.com/~bs/applications.html
+http://www.research.att.com/~hall/pubs.html
+http://www.research.ibm.com/infoecon/paps/html/cia98/node7.html
+http://www.research.ibm.com/journal/sj/404/suggest.html
+http://www.research.ibm.com/rules/home.html
+http://www.research.ibm.com/weather/Chicago/Chicago.html
+http://www.research.murdoch.edu.au/grants/salariesarc.asp
+http://www.research.psu.edu/arp/health.shtml
+http://www.research.uh.edu/otm/Desk%20Reference%20-%20Web/Legal%20Reference%20File/HTML%20Files/Statutes/USCA_T.5.htm
+http://www.research.usf.edu/continued1_9.htm
+http://www.research.utoronto.ca/edge/fall2004/psychology.html
+http://www.researchandmarkets.com/feats/download_pdf.asp?report_id=53541
+http://www.researchco-op.co.nz/article_26.html
+http://www.researchictafrica.net/modules.php?op=modload&name=News&file=index&catid=&topic=35&allstories=1
+http://www.researchoninnovation.org/tiip/archive/2004_4b.htm
+http://www.resellerratings.com/dt_popb3970.html
+http://www.resellerratings.com/seller1417-p14-s1-d1.html
+http://www.resellerratings.com/seller1871-p1-s1-d2.html
+http://www.resellerratings.com/seller1871.html
+http://www.resellerratings.com/seller2721-p1-s3-d1.html
+http://www.resellerratings.com/seller4950.htm
+http://www.resellerratings.com/seller_info.pl?seller_id=1508&comment=172515
+http://www.resellerratings.com/sellerpop1640-p1.html
+http://www.reservebank.co.za/internet/Publication.nsf/0/1113deaaea45ae7842256b72002c9fd6?OpenDocument&AutoFramed
+http://www.reservebank.co.za/internet/Publication.nsf/0/73eace5f1aa433d542256c840035d5a0?OpenDocument&AutoFramed
+http://www.reshape.com/products/pdoptimizer.html
+http://www.residualforces.com/index.php/2005/06/07/336/
+http://www.resist.com.au/comments/c684.asp
+http://www.resist.com.au/displayallcomments.asp?page=13
+http://www.resist.org.uk/reports/archive/dsei03/
+http://www.reslife.net/html/faq-parents.html
+http://www.reslife.net/html/faq-students.html
+http://www.resna.org/
+http://www.resna.org/Conference/2005Conference/Proposals/CallForPapers.php
+http://www.resort.com/~prime8/Orwell/patee.html
+http://www.resortdata.com/RDPWin/Interfaces/SDCCreditCard/SDC.htm
+http://www.resortsinitaly.com/strutture/432_eng.htm
+http://www.resource-advisors.com/prm_detailedfeatures.htm
+http://www.resource-alliance.org/page.php?sectionid=5&subsectionid=91&pageid=521
+http://www.resource-allocation.com/content/1/1/1
+http://www.resourcefulhomeschooler.com/files/WhyUnschooling.html
+http://www.resourcehelp.com/qserwrit.htm
+http://www.resourceroom.net/older/speechrec.asp
+http://www.resourceshelf.com/
+http://www.respondus.com/download/studymate.shtml
+http://www.respondus.com/products/comments.shtml
+http://www.responsiblethinking.com/Book_One_Third_Revision_Chapter_23.htm
+http://www.responsibletravel.com/TripSearch/South%20America/Country100068.htm
+http://www.responsiveclassroom.org/newsletter/15_1NL_1.asp
+http://www.restaurant-guide.com/4014/
+http://www.restaurant.org/business/magarticle.cfm?ArticleID=144
+http://www.restaurant.org/pressroom/pressrelease.cfm?ID=913
+http://www.restaurant.org/show/media/
+http://www.restaurant.org/show/media/index.cfm
+http://www.restaurant.org/show/news/story.cfm?ID=386
+http://www.restaurantreport.com/departments/biz_eight_design_tips.html
+http://www.restaurantreport.com/features/ft_design.html
+http://www.restaurantreport.com/features/ft_pologrill.html
+http://www.resteddoginn.ca/caesar.php
+http://www.restministries.org/ARTICLES/art-reachingforgodsyoke.htm
+http://www.restministries.org/ARTICLES/art_behindrudolph.htm
+http://www.restorationvoice.org/p-r.html
+http://www.resultsforbusiness.co.uk/personaldevt/interviewconfidence.shtml
+http://www.resumeedge.com/professionals/resumeadvice/6step.shtml
+http://www.resumelogic.com/
+http://www.resumesystems.com/faq/Default.htm
+http://www.resurgence.org/resurgence/issues/lord203.htm
+http://www.resurgence.org/resurgence/issues/lowenstein213.htm
+http://www.resurgence.org/resurgence/issues/simms218.htm
+http://www.resurrectionsong.com/
+http://www.retaildecisions.com.au/315_917.asp
+http://www.retailretreat.com/Article24067.html
+http://www.retailwire.com/Discussions/Sngl_Discussion.cfm/10530
+http://www.retailworker.com/node/15225
+http://www.retailworker.com/node/15225?from=0&comments_per_page=10
+http://www.rethinkingschools.org/archive/13_02/edit1302.shtml
+http://www.rethinkingschools.org/archive/13_02/gay.shtml
+http://www.rethinkingschools.org/archive/13_02/track.shtml
+http://www.rethinkingschools.org/archive/15_02/Act152.shtml
+http://www.rethinkingschools.org/archive/16_03/Cash163.shtml
+http://www.rethinkingschools.org/archive/16_04/Hope164.shtml
+http://www.rethinkingschools.org/archive/18_03/acti183.shtml
+http://www.rethinkingschools.org/archive/18_03/good183.shtml
+http://www.rethinkingschools.org/sex/elders.shtml
+http://www.rethinkingschools.org/special_reports/union/unside.shtml
+http://www.rethinkingschools.org/special_reports/voucher_report/vsosintl.shtml
+http://www.rethinkingschools.org/war/readings/awar174.shtml
+http://www.rethinkingschools.org/war/readings/elem173.shtml
+http://www.retirement-matters.co.uk/gparchive/alcohol.htm
+http://www.retirementwithapurpose.com/50plusfinebal.html
+http://www.retirementwithapurpose.com/aarptakecareyourself.html
+http://www.retirementwithapurpose.com/aarptakecareyourself.html?printable=yes
+http://www.retouchpro.com/forums/showthread.php?t=4830&page=1&pp=15
+http://www.retrovsmetro.org/dividedtimes/archive/
+http://www.retroweb.com/apollo_retrospective.html
+http://www.reuters.co.uk/newsArticle.jhtml?type=reutersEdgeNews&storyID=765959
+http://www.reutershealth.com/wellconnected/doc29.html
+http://www.reutershealth.com/wellconnected/doc53.html
+http://www.reuther.wayne.edu/collections/hefa_1542-seiu-sul.htm
+http://www.revbilly.com/
+http://www.reveal.org/library/history/paden.html
+http://www.revenue.state.co.us/TPS_Dir/wrap.asp?incl=Formnumber
+http://www.revenue.state.co.us/TPS_Dir/wrap.asp?incl=Taxalerts
+http://www.revenue.state.co.us/TPS_Dir/wrap.asp?incl=salestaxforms
+http://www.revenue.state.co.us/TPS_Dir/wrap.asp?incl=severanceforms
+http://www.revenue.state.co.us/TPS_Dir/wrapprnt.asp?title=Unknown&incl=salestaxforms
+http://www.revenue.state.co.us/TPS_Dir/wraptext.asp?title=Unknown&incl=Formnumber
+http://www.revenue.state.co.us/TPS_Dir/wraptext.asp?title=Unknown&incl=salestaxforms
+http://www.revenue.state.co.us/TPS_Dir/wraptext.asp?title=Unknown&incl=severanceforms
+http://www.revenuesa.sa.gov.au/taxes/ltax.html
+http://www.reversespeech.com/clinton2.htm
+http://www.reviewcentre.com/
+http://www.reviewcentre.com/consumer_reviews62.html
+http://www.reviewcentre.com/review113663.html
+http://www.reviewcentre.com/reviews57533.html
+http://www.reviewjournal.com/lenny/041802.html
+http://www.reviewjournal.com/lvrj_home/1998/Feb-10-Tue-1998/news/6928025.html
+http://www.reviewjournal.com/lvrj_home/1998/Jan-17-Sat-1998/news/6787104.html
+http://www.reviewjournal.com/lvrj_home/2003/Jan-24-Fri-2003/sports/20531374.html
+http://www.reviewjournal.com/lvrj_home/2004/Dec-14-Tue-2004/living/25407518.html
+http://www.reviewjournal.com/lvrj_home/2004/Jan-29-Thu-2004/news/23102688.html
+http://www.reviewjournal.com/lvrj_home/2004/Sep-20-Mon-2004/sports/24806967.html
+http://www.reviewjournal.com/lvrj_home/2005/Feb-01-Tue-2005/sports/25775345.html
+http://www.reviewjournal.com/lvrj_home/2005/Feb-04-Fri-2005/business/25799014.html
+http://www.reviewjournal.com/lvrj_home/2005/Jan-13-Thu-2005/news/25656941.html
+http://www.reviewjournal.com/lvrj_home/2005/Jan-15-Sat-2005/opinion/25653595.html
+http://www.reviewjournal.com/lvrj_home/2005/Jun-12-Sun-2005/news/
+http://www.reviewjournal.com/sports/gladiators/
+http://www.revision-notes.co.uk/revision/562.html
+http://www.revision-notes.co.uk/revision/627.html
+http://www.revisor.leg.state.mn.us/arule/8710/2000.html
+http://www.revisor.leg.state.mn.us/stats/466/03.html
+http://www.revisor.leg.state.mn.us/stats/609/531.html
+http://www.revival-library.org/catalogues/prayer/edwards-humble/01.htm
+http://www.revivalnow.com/PrayerProphecyItem.php3?art=608&c=254&id=31&style=
+http://www.reviveourhearts.com/radio/today/22428
+http://www.reviveourhearts.com/radio/today/22539
+http://www.reviveourhearts.com/radio/today/22939
+http://www.reviveourhearts.com/radio/today/22941
+http://www.reviveourhearts.com/radio/today/23122
+http://www.reviveourhearts.com/radio/today/23359
+http://www.reviveourhearts.com/radio/today/24599
+http://www.reviveourhearts.com/radio/today/25683
+http://www.revolt.co.uk/news149.html
+http://www.revolt.co.uk/news170.html
+http://www.revolt.co.uk/news93.html
+http://www.revolts.co.uk/
+http://www.revolutionary-history.co.uk/backiss/Vol1/No2/lifujen.html
+http://www.revolutionary-history.co.uk/otherdox/SMP/Smp1.html
+http://www.revolutionarydemocracy.org/rdv5n1/teaplant.htm
+http://www.revolutionconsulting.com/2003_08_31_archblog.htm
+http://www.revophth.com/archive/newsletter/ro_110104.htm
+http://www.rexanne.com/articles.html
+http://www.rexanne.com/baby-home.html
+http://www.rexanne.com/rwr-54.html
+http://www.rexswain.com/soundcity.html
+http://www.reyessyndrome.co.uk/after_reyes_syndrome.htm
+http://www.rfa.org/english/news/2004/12/15/china_dissidents/
+http://www.rfa.org/english/news/politics/2004/10/15/china_falun_gong/
+http://www.rfc-archive.org/getrfc.php?rfc=3245
+http://www.rfc-archive.org/getrfc.php?rfc=394
+http://www.rfc.org.uk/cgi-bin/lookup.cgi?rfc=rfc0394
+http://www.rfcentral.com/testimonials.shtml
+http://www.rfcgr.mrc.ac.uk/Registered/Help/oldstaden/manual-2.1-12.html
+http://www.rfcgr.mrc.ac.uk/Registered/Help/oldstaden/manual-2.1-6.html
+http://www.rfcomm.harris.com/contact/
+http://www.rferl.org/featuresarticle/2004/05/b64de879-1d30-4916-8e35-7fb660b0b1dd.html
+http://www.rferl.org/featuresarticle/2004/07/7c366300-84ee-4e22-af67-4dca14576b7e.html
+http://www.rferl.org/featuresarticle/2004/09/73fa4ee3-64eb-4a92-adc1-cc05fb56875f.html
+http://www.rferl.org/featuresarticle/2004/1/0D5F6EC1-AB32-45EF-8AE5-834E3213F275.html
+http://www.rferl.org/featuresarticle/2004/11/6d2296a6-454d-412c-81a7-fd8431abde1e.html
+http://www.rferl.org/featuresarticle/2004/11/faabcaa3-8a9f-465d-9390-3fbe712cec71.html
+http://www.rferl.org/featuresarticle/2004/11/fc8153d5-39b6-4c28-b132-fab499dd3d21.html
+http://www.rferl.org/featuresarticle/2004/12/ea8a7a74-4b47-4398-bb60-cfde1180a740.html
+http://www.rferl.org/featuresarticle/2005/01/7087c198-6d8c-4f37-81e6-00e1f9ba44c4.html
+http://www.rferl.org/featuresarticle/2005/01/cb2fd089-605c-416d-a7ab-a340c54acd2d.html
+http://www.rferl.org/featuresarticle/2005/02/3b577f06-f2dc-4933-a6b9-5d48d0f9440a.html
+http://www.rferl.org/featuresarticle/2005/02/bbbc9301-b0f0-4a9e-95ed-42c302e60248.html
+http://www.rferl.org/featuresarticle/2005/02/f2cbf488-3f57-41d3-bc67-549b6e2dc974.html
+http://www.rferl.org/featuresarticle/2005/03/5ecc8783-a76f-4a6b-bf29-e1b6a97f2121.html
+http://www.rferl.org/featuresarticle/2005/03/c0b2c3b9-73a1-477f-8da5-6b530f319164.html
+http://www.rferl.org/featuresarticle/2005/04/e7339a51-61a2-41f1-8ab7-4784cb30519e.html
+http://www.rferl.org/featuresarticle/2005/04/fe412f7c-bc5b-4b92-9dd8-5f736bb113f1.html
+http://www.rferl.org/featuresarticle/2005/05/2b1ff493-1bcc-4e11-82b1-d7a99fa48ff1.html
+http://www.rferl.org/featuresarticle/2005/05/605276b2-e154-4bff-a01f-562c884c4aee.html
+http://www.rferl.org/featuresarticle/2005/05/ad7f1448-b19a-47bf-b3fa-e7699ab652a8.html
+http://www.rferl.org/featuresarticle/2005/1/7087C198-6D8C-4F37-81E6-00E1F9BA44C4.html
+http://www.rferl.org/featuresarticle/2005/4/1A7E927A-4306-4650-9E35-27B0FCB5BF98.html
+http://www.rferl.org/featuresarticle/2005/6/79E224ED-4481-461B-AFB4-F327AABFC6BC.html
+http://www.rferl.org/featuresarticleprint/2004/05/b64de879-1d30-4916-8e35-7fb660b0b1dd.html
+http://www.rferl.org/featuresarticleprint/2005/01/7087c198-6d8c-4f37-81e6-00e1f9ba44c4.html
+http://www.rferl.org/featuresarticleprint/2005/03/5ecc8783-a76f-4a6b-bf29-e1b6a97f2121.html
+http://www.rferl.org/featuresarticleprint/2005/04/fe412f7c-bc5b-4b92-9dd8-5f736bb113f1.html
+http://www.rferl.org/newsline/6-swa.asp
+http://www.rferl.org/reports/iran-report/2005/03/9-010305.asp
+http://www.rfida.com/contact.htm
+http://www.rfidnews.org/library/2004/05/20/ask-the-experts-katherine-albrecht-director-caspian/?issue=aHR0cDovL3d3dy5yZmlkbmV3cy5vcmcvbGlicmFyeS8wMDI4NzQucGhwP2tleT0yNzE4
+http://www.rfimusique.com/siteen/article/article_7455.asp
+http://www.rfleming.net/Returning.htm
+http://www.rfp-hk.org/public_html/exam.html
+http://www.rfsafe.com/article19.html
+http://www.rfsuny.org/about/directions.htm
+http://www.rftf2000.org.uk/programme/prog_conf_day5.html
+http://www.rfthomas.clara.net/papers/hansen.html
+http://www.rfu.com/index.cfm/fuseaction/RFUHome.Premier_Detail/StoryID/8776
+http://www.rfu.com/index.cfm/fuseaction/for.showthread/threadid/5106.cfm
+http://www.rfu.com/microsites/rwc2007/intro.cfm
+http://www.rfu.org/buyingclub.htm
+http://www.rg16.asn-wien.ac.at/~python/how2think/chap04.htm
+http://www.rg9.co.uk/sections/pubs/fullpubs/victoria.html
+http://www.rgpfaq.com/holdem-skills.html
+http://www.rgs.org/templ.php?page=1socimis
+http://www.rgs.org/templ.php?page=4edsead2
+http://www.rgs.uci.edu/gradvoice/articles/contribute.htm
+http://www.rgs.uci.edu/ora/rp/hrpp/assessingrisks.htm
+http://www.rgs.uci.edu/ora/rp/hrpp/surrogateconsent.htm
+http://www.rgs.uky.edu/odyssey/fall99/caer.html
+http://www.rgs.uky.edu/odyssey/spring05/stemcell_sidebars.html
+http://www.rgsmithmusic.com/free_sheet_music.htm
+http://www.rh.edu/~stodder/BE/NewEcon.htm
+http://www.rha-ps.com/issues_alerts/Burien_crime-free_multi-family_housing_ordinance.aspx
+http://www.rha-ps.com/rha_landlord_tenant_act--Seattle.aspx
+http://www.rha.net/public/adviceandinfo/
+http://www.rhd.uit.no/art/michael02.html
+http://www.rhdcc.gc.ca/asp/gateway.asp?hr=en/ei/application/applying_for_benefits.shtml&hs=aed
+http://www.rhdcc.gc.ca/asp/gateway.asp?hr=en/lp/fmcs/07LMPP.shtml&hs=pzp
+http://www.rheingold.com/texts/artonlinehost.html
+http://www.rheintacho.com/about_us/history.htm
+http://www.rheuma21st.com/archives/report_hess_lupus_therapies.html
+http://www.rhiannon3.net/cs/article7.html
+http://www.rhino-management.co.uk/home.htm
+http://www.rhino.com/RZine/StoryKeeper.lasso?StoryID=34
+http://www.rhino.com/rzine/StoryKeeper.lasso?StoryID=269
+http://www.rhino.com/rzine/StoryKeeper.lasso?StoryID=274
+http://www.rhino.com/rzine/StoryKeeper.lasso?StoryID=313
+http://www.rhino.com/store/ProductDetail.lasso?Number=7715
+http://www.rhino3d.com/products.htm
+http://www.rhinocortaqua.com/c/control/differences.asp
+http://www.rho.org/html/cxca_keyissues.htm
+http://www.rho.org/html/refugee_keyissues.htm
+http://www.rhodeisland-aa.org/riareac/GSR.htm
+http://www.rhodesfamily.org.uk/yesterdays/1903/19dec03.htm
+http://www.rhodesianridgebacks.org/puppyadvice.htm
+http://www.rhodia.com/htm_en/sustainable_development_health_safety_and_environment_4.html
+http://www.rhr.israel.net/projects/issues.shtml
+http://www.rhs.org.uk/WhatsOn/gardens/wisley/archive/wisleypci03feb.asp
+http://www.rhs.org.uk/gardens/harlowcarr/harlowcarrreach.asp
+http://www.rhs.org.uk/gardens/wisley/archive/wisleypci03feb.asp
+http://www.rhs.org.uk/publications/pubs/garden0304/italian.asp
+http://www.rhs.org.uk/publications/pubs/garden1103/mycorrhiza.asp
+http://www.rhs.org.uk/publications/pubs_library_reference.asp
+http://www.rhs51.com/jukebox.htm
+http://www.rhsmith.umd.edu/fullmba/lifeclubs.html
+http://www.rhsmith.umd.edu/jointmba/lifeclubs.html
+http://www.rhsmith.umd.edu/portal/portal_help.html
+http://www.rhul.ac.uk/Management/Research/SCALE/rhul.html
+http://www.rhull.freeserve.co.uk/sweden.htm
+http://www.rhunt.f9.co.uk/Glass_Blowing/Getting_Started/Getting_Started_Page1.htm
+http://www.riaa.com/news/filings/napster_faq.asp
+http://www.riaa.com/news/newsletter/032304.asp
+http://www.rialian.com/rnboyd/gravitation-subquantumflux.htm
+http://www.riba.org/go/RIBA/News/Press_3101.html
+http://www.ric.edu/adamslibrary/resources/courseguides/history164.html
+http://www.ricancercouncil.org/health/fastfood.php
+http://www.rich.frb.org/pubs/relevance/
+http://www.rich.frb.org/research/regional/indicators/
+http://www.richard-seaman.com/USA/States/
+http://www.richard.attenborough.dial.pipex.com/oldpupils.htm
+http://www.richardbuxton.co.uk/reference/view.php?table=transcripts&id=58&flag=name
+http://www.richardcommission.gov.uk/content/printpage.asp?ID=/content/evidence/responses/countrysidea/index.asp
+http://www.richarderiksson.com/china/inner_mongolia.php
+http://www.richardgregory.org/papers/brainmodels/illusions-and-brain-models_p2.htm
+http://www.richardhenry.co.uk/faq.asp
+http://www.richardherring.com/warmingup/warmingup.php?id=136
+http://www.richardiii.net/richtoday_media.htm
+http://www.richardjeni.com/merchandise.htm
+http://www.richardkatrovas.com/poetics.html
+http://www.richardlloyd.com/lessons/studqa.htm
+http://www.richardneville.com.au/
+http://www.richardsbayminerals.co.za/market.htm
+http://www.richardsdad.btinternet.co.uk/overview.htm
+http://www.richardseah.com/news/balance.html
+http://www.richardsilverstein.com/tikun_olam/2005/01/malcolm_hoenlei.html
+http://www.richardsonfarm.com/r-maze.htm
+http://www.richardstudios.com/
+http://www.richardthompson-music.com/USFans.asp
+http://www.richardthompson-music.com/What%20R%20fans%20saying.asp
+http://www.richland2.k12.sc.us/rce/south.htm
+http://www.richleader.com/tech1.htm
+http://www.richmediatech.com/hardware/overview.asp
+http://www.richmond.com/forums/ShowPost.aspx?PostID=117
+http://www.richmond.edu/~ebolt/history398/USAdvisoryExperience(1954-1965).html
+http://www.richmondeye.com/symloss.htm
+http://www.richmondeye.com/sympain.htm
+http://www.richmondreview.co.uk/features/magnum.html
+http://www.richmondreview.co.uk/library/gardin04.html
+http://www.richterscale.org/InternetTutorial/DiveReport_97NovDec.html
+http://www.richthofen.com/scheer/scheer05.htm
+http://www.rickard.karoo.net/articles/people_newcastle.html
+http://www.rickastley.co.uk/lyrics/wyns.htm
+http://www.rickdenney.com/white_rock_relay.htm
+http://www.rickjohnson.com/
+http://www.rickmanistareview.com/twg.html
+http://www.rickmcginnis.com/articles/Glassindex.htm
+http://www.ricknelson.com/062698.html
+http://www.rickross.com/ethics.html
+http://www.rickross.com/faq.html
+http://www.rickross.com/reference/deprogramming/deprogramming21.html
+http://www.rickross.com/reference/general/general306.html
+http://www.rickross.com/reference/general/general699.html
+http://www.rickross.com/reference/heavensgate/gate1.html
+http://www.rickross.com/reference/jw/jw73.html
+http://www.rickross.com/reference/loc/loc33.html
+http://www.rickross.com/reference/nuwaubians/nuwaubians46.html
+http://www.rickross.com/reference/recovery/recovery4.html
+http://www.rickross.com/reference/unif/unif130.html
+http://www.rickross.com/reference/vistar/vistar1.html
+http://www.rickross.com/reference/yogaville/yogaville21.html
+http://www.ricksteves.com/graffiti/archives/rickontv.htm
+http://www.ricksteves.com/graffiti/graffiti113.html
+http://www.ricksteves.com/plan/destinations/austria/pc_shot.htm
+http://www.ricksteves.com/plan/destinations/france/paris1.htm
+http://www.ricksteves.com/tvr/amsrse206_scr.htm
+http://www.rickwalton.com/aboutric/rickkid.htm
+http://www.rickwalton.com/utahauth/bringing.htm
+http://www.ricoh-sustainability.com/faq/index.php
+http://www.rics.org.uk/Management/Businessmanagement/Professionalpractice/Dutyofcare/Liability/Who%20Designed%20That.html
+http://www.rics.org.uk/Management/Facilitiesmanagement/dec04instmess.html
+http://www.rics.org.uk/Property/Propertyappraisalandvaluation/Trade%20and%20Industry%20Select%20Committee%20%20Investigation%20into%20%20Pub%20Companies.html
+http://www.rics.org.uk/Property/Ruralandnaturalassets/Ruralandnaturalassetmanagement/Providing%20access%20to%20the%20countryside%20for%20people%20with%20disabilities.html
+http://www.rics.org/Management/Facilitiesmanagement/dec04instmess.html
+http://www.rics.org/Property/Ruralandnaturalassets/Ruralandnaturalassetmanagement/Providing+access+to+the+countryside+for+people+with+disabilities.htm
+http://www.riddler.com/
+http://www.ridgepointecountryclub.com/golf/golf_rules.htm
+http://www.ridgetownc.on.ca/education/diploma_vtdiff.cfm
+http://www.ridor.blogspot.com/
+http://www.rieti.go.jp/en/columns/a01_0104.html
+http://www.rieti.go.jp/en/events/bbl/03052801.html
+http://www.rieti.go.jp/en/papers/research-review/013.html
+http://www.rifeconference.com/videos.html
+http://www.rifeenergymedicine.com/Adven2.html
+http://www.rigatourism.com/Riga/portal/alias__en/lang__en/tabid__3746/DesktopDefault.aspx
+http://www.rigb.org/rimain/events/index.jsp
+http://www.rigby-research.co.uk/mmatters/?id=22
+http://www.right-thinking.com/
+http://www.right-to-education.org/content/age/austria.html
+http://www.right-to-education.org/content/age/bangladesh.html
+http://www.right-wing-pseudo-christians.com/church-teachings.htm
+http://www.right-writing.com/middle-grade.html
+http://www.rightclickwebs.com/seo/seo-analogy.php
+http://www.rightclub.co.uk/courses/portugal/vilamoura_pinhal.asp
+http://www.rightnation.us/forums/lofiversion/index.php/t67402.html
+http://www.rightrainbow.com/archives/cat_samesex_marriage.html
+http://www.rightsnet.org.uk/dc/dcboard.php?az=show_topics&forum=106&page=2
+http://www.rightstuf.com/
+http://www.righttoplay.com/bios/charles_nkazamyampi.asp
+http://www.righttovote.org/involved.asp?Subsection=endorse
+http://www.rightwingnews.com/archives/week_2004_05_23.PHP
+http://www.rightwingnews.com/archives/week_2004_06_06.PHP
+http://www.rightwingnews.com/archives/week_2004_07_11.PHP
+http://www.rightwingnews.com/archives/week_2005_04_24.PHP
+http://www.rightwingnews.com/special/greatestfigures.php
+http://www.rigzone.com/insight/insight.asp?i_id=156
+http://www.rigzone.com/news/article.asp?a_id=19243
+http://www.rii.com.au/
+http://www.riken.jp/engn/r-world/info/release/news/2003/jul/
+http://www.riksbank.com/templates/Page.aspx?id=12900
+http://www.riksbank.com/templates/Page.aspx?id=15507
+http://www.rileyguide.com/finance.html
+http://www.rileyguide.com/internat.html
+http://www.rileyguide.com/resdb.html
+http://www.rilin.state.ri.us/Statutes/TITLE5/5-37.3/5-37.3-4.HTM
+http://www.rimcountry.com/rosie.htm
+http://www.rims.org/Printable.cfm?section=RiskWire
+http://www.ring.com/yooper/yooper.htm
+http://www.ringing.info/shaggy.html
+http://www.ringoffire.biz/level1.htm
+http://www.ringsurf.com/info/Food/Coffee/Coffee_Preparations.html
+http://www.rintonpress.com/books/datkinson2.html
+http://www.ripe.net/ripe/wg/technical-security/minutes/r41-minutes.html
+http://www.ripoffreport.com/
+http://www.ripoffreport.com/reports/ripoff33753.htm
+http://www.ripoffreport.com/view.asp?id=30016
+http://www.ripoffreport.com/view.asp?id=46315
+http://www.rippleeffectpress.com/quotes.htm
+http://www.rirdc.gov.au/comp03/tto1.html
+http://www.rirdc.gov.au/pub/shortreps/improve.html
+http://www.riredcross.org/otherwaystohelp.htm
+http://www.risd.edu/grad_financial_aid.cfm
+http://www.rise-and-shine.com/interviews.php?mode=AUTHOR&interviewid=20
+http://www.riseup.net/~micah/nerf/archives/2004_09.html
+http://www.rishon-rishon.com/archives/2005_05.php
+http://www.risingslowly.com/
+http://www.risingstarbordercollies.com/akcstandard.htm
+http://www.risingwomen.com/arceden6.htm
+http://www.risklab.ch/Projects.html
+http://www.riskworld.com/Nreports/1996/risk_rpt/html/nr6aa017.htm
+http://www.riskworld.com/Nreports/1996/risk_rpt/html/nr6aa027.htm
+http://www.rismedia.com/index.php/article/articleview/8759/1/1
+http://www.rismedia.com/index.php/article/articleview/8759/1/1/
+http://www.rit.edu/~257www/tips/paper.htm
+http://www.rit.edu/~692awww/resources/manuals/dgae1p9.html
+http://www.rit.edu/~692awww/seac/Utah.html
+http://www.rit.edu/~932www/ugrad_bulletin/colleges/cos/
+http://www.rit.edu/~comets/pages/workshops/Careeredscimath.html
+http://www.rit.edu/~flwstv/presocratic.html
+http://www.rit.edu/~gdc9977/docs/CLARKE873-1.html
+http://www.rit.edu/~jhb4598/jblog/archives/2004_02.php3
+http://www.rit.edu/~ntiditc/projects-9842.shtml
+http://www.rit.edu/~seawww/readingcomp/rc04during.html
+http://www.rit.edu/~sofa/admissions/faq/
+http://www.rit.edu/~unitywww/news.html
+http://www.ritachu.com/amanda/weblog.php?id=C0_7_1
+http://www.ritalindeath.com/
+http://www.ritalindeath.com/Prozac.htm
+http://www.ritalindeath.com/blumenfeld15.htm
+http://www.ritalindeath.com/north_carolina.htm
+http://www.ritalindeath.com/north_dakota.htm
+http://www.riteitem.com/Minneapolis/Mpls.htm
+http://www.ritesite.com/11956.cfm
+http://www.rittenhouse.ca/hortmag/Horticulture&Gardens/Christmas_Garden_Fun/City_Gardening_December_2001.htm
+http://www.rittman.net/archives/2005_06.html
+http://www.ritualistic.com/forum_rules.php
+http://www.ritualistic.com/forums/rules.php?Cat=
+http://www.rivercitykitty.com/blogger.html
+http://www.riverdeep.net/current/2000/07/072600_sunspots.jhtml
+http://www.riverdeep.net/current/2002/03/030402t_insects.jhtml
+http://www.riverdeep.net/current/archive/environment.jhtml
+http://www.riverdeepmountainhigh.co.uk/holidays/Short.asp
+http://www.riverflow.com/macfadden/famefortunefolly.html
+http://www.riverfronttimes.com/issues/2005-05-25/calendar/summerguide6.html
+http://www.rivergods.com.au/sea.html
+http://www.riverhead.com/pr/guard.html
+http://www.riverhillsplantation.com/Lake-Wylie-Information~5324~291.htm
+http://www.rivernet.org/9611_e.txt
+http://www.riverone.com/content_corp_vision.asp?ContentId=209
+http://www.riversideboatclub.com/club.htm
+http://www.riversideiceandleisure.com/live%20life%20scheme.htm
+http://www.riversidenb.com/OnlineBank/Ibank_agree.asp
+http://www.riverswithoutborders.org/issues/issues_taku.htm
+http://www.riverthames.co.uk/eatandrink/pub/southbank.htm
+http://www.rivijera.hr/en/index.php?link=hotels_villas
+http://www.rivkin.com.au/Education-Workshops.asp
+http://www.rivkinradler.com/rivkinradler/Publications/newformat/200407conneely.shtml
+http://www.rix-web.com/analyzer/docs/othreps.html
+http://www.riyadi.com/
+http://www.riza.com/richard/christmas.shtml
+http://www.rjbank.com/InformationCenter/RJBK3005.htm
+http://www.rjcc.org.uk/
+http://www.rkba.org/
+http://www.rkssoftware.com/misc/generalfaqs.html
+http://www.rlapc.com/
+http://www.rlbuht.nhs.uk/content/pol.asp?web=63&sub=133
+http://www.rlc.com/technical_support_RLC_ARM.htm
+http://www.rlg.org/en/page.php?Page_ID=20571
+http://www.rlg.org/en/page.php?Page_ID=68
+http://www.rlgsc.com/
+http://www.rlnn.com/ArtJune05/MoreNeedsBeDoneWhiteclay.html
+http://www.rlnn.com/ArticlesJune04/StMaryCapCamp1.html
+http://www.rlrouse.com/blog/index.php?p=13
+http://www.rlshelp.org/rlscomp50.htm
+http://www.rmc-recruitment.com/jobs_storeops.html
+http://www.rmc.ca/academic/gradrech/dorn15_e.html
+http://www.rmca.org/Articles/orphans.htm
+http://www.rmhiherbal.org/a/e.chooshrbs.html
+http://www.rmi.org/sitepages/pid622.php
+http://www.rmit.edu.au/browse/About%20RMIT%2FHelp%2FMedia%20Assets%2FComposite%2Fby%20group%2FApplied%20Media/
+http://www.rmit.edu.au/browse/Our%20Organisation%2FFaculties%2FArt,%20Design%20&%20Communication%2FAbout%2F;ID=oooqtngbpg5dz;STATUS=A
+http://www.rmit.edu.au/labourandindustry
+http://www.rmlibrary.com/sites/ergonchair.php?mcat=Ergonomics&scat=Chairs/Sitting
+http://www.rmoj.com/
+http://www.rna.ca/digital_art/index.shtml
+http://www.rnao.org/about/rn_journal_advertising.asp
+http://www.rnews.com/Story_2004.cfm?ID=23958&rnews_story_type=18&category=10
+http://www.rnews.com/Story_2004.cfm?ID=24034&rnews_story_type=18&category=10
+http://www.rnib.org.uk/xpedio/groups/public/documents/PublicWebsite/public_contrast.hcsp
+http://www.rnib.org.uk/xpedio/groups/public/documents/PublicWebsite/public_rnib003635.hcsp
+http://www.rnib.org.uk/xpedio/groups/public/documents/PublicWebsite/public_rnib003653.hcsp
+http://www.rnib.org.uk/xpedio/groups/public/documents/PublicWebsite/public_rnib003699.hcsp
+http://www.rnib.org.uk/xpedio/groups/public/documents/PublicWebsite/public_rnib003699.hcsp?printPage=1
+http://www.rnib.org.uk/xpedio/groups/public/documents/PublicWebsite/public_rnib003711.hcsp
+http://www.rnib.org.uk/xpedio/groups/public/documents/Visugate/public_nbmay96.hcsp?printPage=1
+http://www.rnib.org.uk/xpedio/groups/public/documents/publicwebsite/public_cvipsact2002.hcsp
+http://www.rnid.org.uk/information_resources/factsheets/benefits/factsheets_leaflets/attendanceallowance.htm
+http://www.rnrs.com/humor/domestic.htm
+http://www.road-school.com/york.htm
+http://www.roadandtravel.com/company/marketing/writerguide.html
+http://www.roadcycling.com/news/article1019.shtml
+http://www.roadid.com/
+http://www.roadid.com/default.asp
+http://www.roadid.com/testimonials.asp
+http://www.roadkillbill.com/lnk.html
+http://www.roadmaps.org/wish.html
+http://www.roadsafety.org.uk/information/publish/article_286.shtml
+http://www.roadsassy.com/spicedsass/archives/000721.html
+http://www.roadsense.com.au/copsay.html
+http://www.roadstaronline.com/underwood/2005/0503.html
+http://www.roadtoromance.ca/month/monthcoble.htm
+http://www.roadtoromance.ca/spots/spotkeiswanson.htm
+http://www.roadtoromance.ca/spots/spotmelissajames.htm
+http://www.roadtosurfdom.com/
+http://www.roadtosurfdom.com/archives/2005/05/because_they_ca_1.html
+http://www.roadtosurfdom.com/archives/2005/05/discontinuous_r.html
+http://www.roadtosurfdom.com/archives/2005/06/the_gword.html
+http://www.roadtripamerica.com/DefensiveDriving/Drive-Safe-With-Uncle-Bob.htm
+http://www.roadtripamerica.com/roadtripamericaConference/Thread.cfm?CFApp=44&CFID=70873&CFTOKEN=99508889&Thread_ID=2942
+http://www.roamintours.co.uk/pages/quotes.html
+http://www.roanoke.edu/catalog99/courses-physicaleducation.htm
+http://www.roarcanada.com/productview.aspx?PID=48
+http://www.robanders.com/News/20040615%20instant%20ctv.htm
+http://www.robbernard.com/archives/000861.html
+http://www.robert-fisk.com/articles5.htm
+http://www.robert-fisk.com/reject_nomination.htm
+http://www.robert-schuman.org/lettre/lettrean171.htm
+http://www.robert-schuman.org/lettre/lettrean172.htm
+http://www.robert-sorby.co.uk/tip-pen-turning.htm
+http://www.robertaisleib.com/prntchpt1fairway.htm
+http://www.robertdam-cos.dk/Meeting%20Caspar.html
+http://www.robertdam-cos.dk/My%20story%20with%20management.html
+http://www.robertefuller.com/RobertEFullersite/About.htm
+http://www.robertgraves.org/bio.php
+http://www.robertinventor.com/tuning-math/s___8/msg_7325-7349.html
+http://www.robertkbrown.com/
+http://www.robertnyman.com/2005/06/20/rise-lord-javascript/
+http://www.robertpopefoundation.org/robert_pope_bio.cfm
+http://www.robertsonhall.com/business.htm
+http://www.robiecreek.com/training.htm
+http://www.robinhood.ca/tip.asp?tcid=19
+http://www.robinkelly.btinternet.co.uk/spfaq10.htm
+http://www.robinkelly.btinternet.co.uk/wesker1.htm
+http://www.robinparis.co.uk/biog/history.htm
+http://www.robinsons-uk.com/content/content.asp?id=61
+http://www.robix.com/
+http://www.robotgames.net/WCRG/resource-lodging.htm
+http://www.robotgroup.org/projects/mobile_platform.html
+http://www.roboticsevents.com/Overview.html
+http://www.roboticsonline.com/public/articles/archivedetails.cfm?id=1039
+http://www.roboticsonline.com/public/articles/articlesdetails.cfm?id=1360
+http://www.roboticsonline.com/public/articles/index.cfm?cat=216
+http://www.robsviolet.com/what_we_ship.htm
+http://www.robyncarr.com/recent.html
+http://www.robyninsearchof.blogspot.com/
+http://www.rocemabra.com/~roger/tagg/generals/general04.html
+http://www.rochdaleobserver.co.uk/news/s/200/200690_mias_crucial_heart_op_is_put_back.html
+http://www.rochedalss.eq.edu.au/orbweaver.htm
+http://www.rochedalss.qld.edu.au/orbweaver.htm
+http://www.rochester.edu/College/MUR/faq/
+http://www.rochester.edu/Eastman/composition/admissions.html
+http://www.rochester.edu/SBA/sbaecs.html
+http://www.rochesterbusinessalliance.com/scriptcontent/va_custom/va_cm/ContentPageDisplay.cfm?Content_ID=1078
+http://www.rock-idols.com/asp/privacy_policy.htm
+http://www.rock.co.za/files/rabbitt_boys.html
+http://www.rockabillyhall.com/JerryJaye1.html
+http://www.rockchallenge.com.au/modules.php?op=modload&name=PagEd&file=index&topic_id=0&page_id=113
+http://www.rockchallenge.com.au/modules.php?op=modload&name=PagEd&file=index&topic_id=0&page_id=36
+http://www.rockclimbing.com/forums/viewtopic.php?t=68853
+http://www.rockclimbing.com/forums/viewtopic.php?t=73335&start=45
+http://www.rockefeller.edu/research/abstract.php?id=40
+http://www.rocket-hire.com/news/2004/ap.html
+http://www.rocketmanblog.com/2004/02/let_a_thousand_.html
+http://www.rocketreader.com/works/sat.html
+http://www.rockhurst.edu/services/hr/jobs.asp
+http://www.rockiesgolf.com/golfcourses/reviews/floridadiamondplayersclermont.htm
+http://www.rockiesventureclub.org/resources/Understanding_Traditional_Professional_VC.htm
+http://www.rockingham.k12.va.us/EMS/Holocaust/Holocaust.html
+http://www.rockjethwa.com/techdocuments/taskanalysis_virtualmeetingsoftware.html
+http://www.rocklinux.org/submaster.html
+http://www.rocklist.net/kerrang_p2.htm
+http://www.rockmountain.com/directions.cfm
+http://www.rockportinstitute.com/about_testimonials.php
+http://www.rockportinstitute.com/resumes.html
+http://www.rockridgeinstitute.org/projects/strategic/simple_framing
+http://www.rocksoc.org.uk/wus/dj/dj-abj21.html
+http://www.rocktheworld.org/contagion/RTWDocument.2003-12-03.3136
+http://www.rockwellcollins.com/news/background/page3019.html
+http://www.rockymountainjobs.com/CareerGuide/resignation.asp
+http://www.rockymounttelegram.com/search/content/services/agreement.html
+http://www.roctober.com/roctober/greatness/equals.html
+http://www.rodgeglass.com/fiction.htm
+http://www.rodmiller.com/wireless_lenz.shtml
+http://www.rodneycroome.id.au/other?id=C0_18_2
+http://www.roehampton.ac.uk/pg/ses/
+http://www.roehampton.ac.uk/ug/ses/
+http://www.roehampton.ac.uk/ug/slc/
+http://www.roehampton.ac.uk/ug/spc/
+http://www.roehampton.ac.uk/ug/sse/
+http://www.roehampton.ac.uk/ug/sss/
+http://www.rogerhedgecock.com/homefront.html
+http://www.rogerlsimon.com/
+http://www.rogerlsimon.com/mt-archives/2004/11/this_time_the_t.php
+http://www.rogerwilliamsparkzoo.org/visit/ParkCarousel.cfm
+http://www.roizen.com/games/
+http://www.rolfgordon.co.uk/
+http://www.rolfpotts.com/writers/halliday.php
+http://www.rollacity.org/muncourt/newordinance/chapter14.html
+http://www.rollanet.org/~rlions/26j.html
+http://www.rollaramp.co.uk/
+http://www.rollcall.com/pub/50_56/fiftyyears/7568-1.html
+http://www.roller-coaster.com.au/news.php
+http://www.rollercoaster.ie/boards/postform.asp?ID=40997&GroupID=37&forumdb=1
+http://www.rollerfeet.com/backporchbeer/archives/2004_06.html
+http://www.rollinghills.org/GettingConnected/Reach/
+http://www.rollingrocksdownhill.com/2005/01/chapter_3a_the_.html
+http://www.rolls-royce.com/history/overview/memorial.jsp
+http://www.rolltide.com/Womens%20Basketball/9731.asp
+http://www.roman-emperors.org/livia.htm
+http://www.roman-empire.net/army/army.html
+http://www.roman-empire.net/articles/article-002.html
+http://www.roman-empire.net/collapse/petronius.html
+http://www.roman-empire.net/society/soc-nobiloblig.html
+http://www.romance-your-wife.com/site/472890/product/162-4329435
+http://www.romanceandfriends.com/monthly_pick.html
+http://www.romanceeverafter.com/our_love_was_meant_to_be.htm
+http://www.romanceopedia.com/
+http://www.romanceopedia.com/chapter5.html
+http://www.romancestuck.com/
+http://www.romanhomes.com/vacation_rentals/apartments/3_star/borromini.htm
+http://www.romantic-lyrics.com/romanticideas.shtml
+http://www.romanticasheville.com/Blue_Ridge_Parkway_Biking2.htm
+http://www.romnews.com/community/modules.php?op=modload&name=News&file=article&sid=630&mode=thread
+http://www.rona.ca/webapp/wcs/stores/servlet/rona/project_corpo.jsp?assetNo=2085&sectionId=223&storeId=10001&langId=-1
+http://www.rona.ca/webapp/wcs/stores/servlet/rona/project_corpo.jsp?assetNo=2085&sectionId=252&storeId=10001&langId=-1
+http://www.ronankeating.ca/articles/2004/mirror_3am_oct_2004.htm
+http://www.ronankeating.ca/walk_ireland/rkca_papervoice.htm
+http://www.rondexter.com/filmschool/opportunities_in_film_and_video.htm
+http://www.ronfletcherwork.com/fletchbio4.html
+http://www.rong-chang.com/book/movie.html
+http://www.rong-chang.com/guestbook/guestbook68.shtml
+http://www.ronjun-eshop.com/
+http://www.ronkaufman.com/articles/article.service.html
+http://www.ronwiebeagencies.com/1024x768/rural.htm
+http://www.ronwiebeagencies.com/800x600/homes.htm
+http://www.ronwiebeagencies.com/800x600/rural.htm
+http://www.roofingcontractor.com/CDA/ArticleInformation/features/BNP__Features__Item/0,3241,13055,00.html
+http://www.roofingcontractor.com/CDA/ArticleInformation/features/BNP__Features__Item/0,3241,91296,00.html
+http://www.rooftopsessions.com/winterrose.htm
+http://www.rooseveltmiddle.com/media_center/MediaCenterMinute.htm
+http://www.rootenbergbooks.com/Rootenberg_Books_Autographs.html
+http://www.rootschat.com/forum/index.php/topic,65360.0.html
+http://www.rootsweb.com/~ctfairfi/pages/cemetery/cm_stmfrd/northstreet.htm
+http://www.rootsweb.com/~genepool/treatrob.htm
+http://www.rootsweb.com/~iladams/bios/cuzzins.htm
+http://www.rootsweb.com/~nwa/ah.html
+http://www.rootsweb.com/~nyherkim/schuyler/meetinghouses.html
+http://www.rootsweb.com/~nysteube/cn/cn5.html
+http://www.rootsweb.com/~nytompki/Caroline/tcodd.htm
+http://www.rootsweb.com/~rwguide/lesson8.htm
+http://www.rootsweb.com/~srgp/bradsby/bradc15.htm
+http://www.rootsweb.com/~txnavarr/pioneer_village/1838_indian_trading_post.htm
+http://www.roppongihills.com/en/access_service/service_0507.html
+http://www.rorkesdriftvc.com/vc/chavasse.htm
+http://www.rosaryparts.com/pages/instructions/instructions.asp
+http://www.rosbaltnews.com/2003/04/14/61383.html
+http://www.rosbaltnews.com/2005/06/18/66611.html
+http://www.rosbaltnews.com/2005/06/25/66611.html
+http://www.rosbaltnews.com/2005/06/28/66611.html
+http://www.roscalen.com/signals/
+http://www.rosco.com/uk/news/index.asp
+http://www.rose-hulman.edu/Catalogue03/special.htm
+http://www.rose-hulman.edu/Class/CalculusProbs/Problems/catlist.html
+http://www.rose-hulman.edu/hss/courses/techtran.htm
+http://www.rose.brandeis.edu/users/gelles/stall/
+http://www.rose.edu/faculty/ssaulmon/r&r.htm
+http://www.rosecitysoftware.com/Courier/
+http://www.rosecitysoftware.com/courier/
+http://www.rosedalevision.com/eye_care.htm
+http://www.rosefdn.org/voters.html
+http://www.roseinfo.com/rose_lore.html
+http://www.rosemed.com/CustomPage.asp?PageName=Lynne%20Wagner%20Named%20Rose%20CNO
+http://www.rosemed.com/CustomPage.asp?guidCustomContentID=%7B17BECB79-F122-11D3-AD19-00508B91A0DD%7D
+http://www.rosenthal.hs.columbia.edu/cancer/info/ctrials.html
+http://www.roseparvin.com/html/Rose%20Legacy%20of%20Global%20Culture%20of%20Peace%20&%20Freedom.html
+http://www.roseparvin.com/html/parvin_Global%20_Cultural_Peace_and_Reform_Program.html
+http://www.roseprinting.com/electroPublisher/website/index.cfm?pageID=12
+http://www.rosesfoto.com/about_rose/index.asp
+http://www.rosneath.com.au/ipc6/ch02/brooks/
+http://www.rosneath.com.au/ipc6/ch07/kennedy/
+http://www.rospa.com/awards/winners2004/gold_medal.htm
+http://www.rossdillon.com/id9.htm
+http://www.rossfordohio.com/viewsites.asp
+http://www.rossiterandco.com/awards1.htm
+http://www.rossmartin.co.uk/Settlements/Arctic%20Appeal.htm
+http://www.rotacal.org/smile.htm
+http://www.rotary1080.fsnet.co.uk/1080_site_link/1080_foundation/india_dist_3210-projects_2001_2002.htm
+http://www.rotary5450.org/gse/africa/
+http://www.rotary7450.org/ExtonFrazer/
+http://www.rotarywillemstad.org/html/fundraisers.html
+http://www.rothenberg.org/Cosi-Fan-Tutte/6.htm
+http://www.rotherhams.co.nz/index.cfm/newsletters/archive/legal_update_autumn_2005
+http://www.rothstein.com/drjbooks/drj513.htm
+http://www.rotishops.com/jokes.html
+http://www.rototimes.com/index.php?sport=bsball&type=playernotes&month=06&day=1&league=both
+http://www.rototimes.com/index.php?sport=pftball&type=teamnotes&name=TB
+http://www.rotrally.com/Pages/Public/Events.asp
+http://www.rotten.com/library/bio/crime/mafia/louis-buchalter/
+http://www.rotten.com/library/bio/entertainers/radio/lord-haw-haw/
+http://www.rotten.com/library/bio/presidents/george-hw-bush/
+http://www.rotten.com/library/culture/peta/
+http://www.rotten.com/library/language/gate/
+http://www.rottentomatoes.com/g/playstation_2/sitting_ducks/
+http://www.rottentomatoes.com/m/alone_in_the_dark/
+http://www.rottentomatoes.com/m/alone_in_the_dark/?beg=0&int=24&page=1
+http://www.rottentomatoes.com/m/alone_in_the_dark/?rtp=1
+http://www.rottentomatoes.com/m/alone_in_the_dark/articlegate.php
+http://www.rottentomatoes.com/m/alone_in_the_dark/news.php
+http://www.rottentomatoes.com/m/baby_boy/
+http://www.rottentomatoes.com/m/blue_streak/
+http://www.rottentomatoes.com/m/cars/
+http://www.rottentomatoes.com/m/how_i_killed_my_father/
+http://www.rottentomatoes.com/m/monkey_trouble/?sortby=source&critic=columns
+http://www.rottentomatoes.com/m/mr_and_mrs_smith/numbers.php
+http://www.rottentomatoes.com/m/my_flesh_and_blood/
+http://www.rottentomatoes.com/m/open_water/about.php
+http://www.rottentomatoes.com/m/operation_dumbo_drop/articlegate.php
+http://www.rottentomatoes.com/m/operation_dumbo_drop/dvd.php
+http://www.rottentomatoes.com/m/operation_enduring_freedom_america_fights_back/articlegate.php
+http://www.rottentomatoes.com/m/operation_petticoat/articlegate.php
+http://www.rottentomatoes.com/m/reaching_beyond_magical_child_5_critical_and_creative_thinking/
+http://www.rottentomatoes.com/m/secret_art_the_whitetail_tree_stand_hunting_tactics/
+http://www.rottentomatoes.com/m/showtime_comedy_superstars_brett_butler_sold_out/
+http://www.rottentomatoes.com/m/soldiers_girl/
+http://www.rottentomatoes.com/m/they_would_love_you_in_france/
+http://www.rottentomatoes.com/m/westinghouse_studio_one_there_was_a_crooked_man/
+http://www.rottentomatoes.com/vine/showthread.php?goto=lastpost&t=387575
+http://www.rottentomatoes.com/vine/showthread.php?t=324770&page=8
+http://www.rottentomatoes.com/vine/showthread.php?t=379285
+http://www.rottentomatoes.com/vine/showthread.php?t=379285&page=1
+http://www.rottentomatoes.com/vine/showthread.php?t=415823
+http://www.roubiniglobal.com/setser/archives/2005/04/well_on_our_way.html
+http://www.roubiniglobal.com/setser/archives/2005/06/an_unbalanced_u.html
+http://www.roughnecksrugby.org/coaching_corner_conditioning_mardigras.htm
+http://www.roughnotes.com/rnmagazine/2003/march03/03p148.htm
+http://www.roughstock.com/roughstock/stacy/PAGE15.html
+http://www.rouncefield.homestead.com/files/as_soc_ed_2.htm
+http://www.roundrockisd.org/purplesage/
+http://www.roundtop.com/bluebell.htm
+http://www.roundupnews.com/news/2003/03/17/News/Bush-May.Launch.War.Tonight-393649.shtml
+http://www.rousette.org.uk/blog/archives/2004/04/11/why-wordpress/
+http://www.rousette.org.uk/blog/archives/category/culture/music/
+http://www.rousselle.com/allan/archives/000293.html
+http://www.rousselle.com/allan/archives/cat_journey_of_a_thousand_pounds.html
+http://www.roxar.com/article.php?articleID=2241
+http://www.roxbury.net/exploredelinquent.html
+http://www.royagcol.ac.uk/undergrad_courses/pas.htm
+http://www.royal-ballet-school.org.uk/Applications_Auditions/Fees.htm
+http://www.royal-navy.mod.uk/static/pages/1845.html
+http://www.royal-navy.mod.uk/static/pages/209.html
+http://www.royal-navy.mod.uk/static/pages/2932.html
+http://www.royal-navy.mod.uk/static/pages/7421.html
+http://www.royal-navy.mod.uk/static/pages/7549.html
+http://www.royal-navy.mod.uk/static/pages/content.php3?page=6817
+http://www.royal.gov.uk/output/Page3669.asp
+http://www.royal.gov.uk/output/page3965.asp
+http://www.royalacademy.org.uk/?lid=1244
+http://www.royalafricansociety.org/what_we_do/recent_meetings/eporting_africa
+http://www.royalbcmuseum.bc.ca/end_species/es_plans/4gloss.html
+http://www.royaldeaf.org.uk/home.htm
+http://www.royaldeaf.org.uk/jshort.htm
+http://www.royaldeaf.org.uk/signbaby.htm
+http://www.royaldeaf.org.uk/simple3.htm
+http://www.royaldeaf.org.uk/simple35.htm
+http://www.royaldeaf.org.uk/steiner.htm
+http://www.royaldockstrust.org.uk/Grantslist.html
+http://www.royaldornoch.com/champ.htm
+http://www.royalharbourresort.com/weeks4sale.htm
+http://www.royalinstitutephilosophy.org/articles/dawkins_genes.htm
+http://www.royaljones.com/
+http://www.royals.org/matdoc/100104.html
+http://www.royalsoc.ac.uk/news.asp?year=&id=1657
+http://www.royalsoc.ac.uk/news.asp?year=&id=1666
+http://www.royalsoc.ac.uk/page.asp?id=1167
+http://www.royalsoc.ac.uk/page.asp?id=1824
+http://www.royalsoc.ac.uk/page.asp?id=2176
+http://www.royalsunalliance.com/
+http://www.royalty.nu/America/Hawaii.html
+http://www.royfinartcomforsco.gov.uk/def5.html
+http://www.royjonesdogshows.com/PremiumLists/KennelClubofYorkville/KennelClubOfYorkvilleILL05.htm
+http://www.royoftherovers.com/footballfunnies/petespage.htm
+http://www.rpainc.org/pages/whowearebios.html
+http://www.rpani.gov.uk/briefingpapers/practice.htm
+http://www.rpasmith.co.uk/galashiels.htm
+http://www.rpasmith.co.uk/inverness.htm
+http://www.rpbridge.net/7j33.htm
+http://www.rpbridge.net/7j45.htm
+http://www.rpca.co.uk/community.html
+http://www.rpcv.org/pages/groupinfo.cfm?id=83&category=2
+http://www.rpf-bc.org/forum/featuresja98.html
+http://www.rpg.net/larp/scenario/Brian_Phillips/codename/double.html
+http://www.rpg.net/larp/truth.html
+http://www.rpg.net/news+reviews/columns/elements01nov02.html
+http://www.rpg.net/reviews/archive/9/9195.phtml
+http://www.rpg.net/reviews/archive/9/9671.phtml
+http://www.rpghoard.com/cgi-bin/arcdb.cgi?action=dl&id=1246
+http://www.rpgnews.com/articles.php
+http://www.rpgnews.com/tibetrpg.php
+http://www.rpgplace.net/contrib/rina/fanfics/lod/dragoncampaign.php
+http://www.rpgplanet.com/kingdomhearts/
+http://www.rpgplanet.com/memw/
+http://www.rpi.edu/dept/IT/grad/faq.html
+http://www.rpi.edu/~bulloj/Doom_Patrol/dp99.html
+http://www.rpi.edu/~eglash/eglash.dir/ethnic.dir/nerds.dir/nerd.htm
+http://www.rpi.edu/~eglash/eglash.dir/itrev.htm
+http://www.rppi.org/edbudget.shtml
+http://www.rppi.org/onewaystreets.html
+http://www.rppi.org/outofcontrol/archives/000860.html
+http://www.rppi.org/outsourcing/index.shtml
+http://www.rppi.org/sewagetreatment.html
+http://www.rppi.org/wtc/100501staley.html
+http://www.rps.psu.edu/0201/bats.html
+http://www.rps.psu.edu/jan98/violin.html
+http://www.rpsplc.co.uk/news.asp?N=272&secid=news&siteid=29&SessionID=
+http://www.rpsrelocation.com/Moving&storage.htm
+http://www.rptia.com/about.html
+http://www.rrb.gov/rb104.html
+http://www.rrc.mb.ca/international/china/teachertestimonials.htm
+http://www.rrca.org/coaching/Intro.html
+http://www.rrca.org/publicat/walkrun.html
+http://www.rrich.com/revvasoazzurro.html
+http://www.rrvwsp.com/dwra.htm
+http://www.rs485.com/ppricelist.html
+http://www.rsacmotorsport.co.uk/docs/notesrs1.html
+http://www.rsc-ne-scotland.ac.uk/training/
+http://www.rsc.org.uk/richard/current/understudying.html
+http://www.rsc.org.uk/titus/students/director.html
+http://www.rsc.org/science/industry/ITFquest.htm
+http://www.rscc.cc.tn.us/owl&writingcenter/OWL/WritingLitAnalysis1.html
+http://www.rscdstoronto.org/whats_on.html
+http://www.rsesymposia.org/page.asp?p=35
+http://www.rsf.org/article.php3?id_article=10186
+http://www.rsf.org/article.php3?id_article=10439
+http://www.rsf.org/article.php3?id_article=13356
+http://www.rsf.org/article.php3?id_article=317
+http://www.rsf.org/article.php3?id_article=6541
+http://www.rsf.org/print.php3?id_article=10186
+http://www.rsf.org/print.php3?id_article=10439
+http://www.rsf.org/rubrique.php3?id_rubrique=144
+http://www.rsi.com.sg/english/singaporescene/view/20031119170928/1/.html
+http://www.rsi.deas.harvard.edu/preventing.html
+http://www.rsi.deas.harvard.edu/spread.html
+http://www.rsiftl.com/ourteaching/faq.htm
+http://www.rsingermanson.com/html/james__bone_box.html
+http://www.rsis.com/rsis-corporate/RSIS/RSIS-Business/RSIS-Contracts/CIO-SP2i.cfm
+http://www.rsjo.com/record.html
+http://www.rsl.org.au/about/history.html
+http://www.rslqld.org/index.php?itemid=26
+http://www.rsm.ac.uk/new/pr97.htm
+http://www.rsnz.org/awards/st_medals/index.php
+http://www.rsnz.org/directory/yearbooks/year02/dell.php
+http://www.rsnz.org/publish/nzjz/2002/008.php
+http://www.rsnz.org/topics/biol/gene/
+http://www.rspaintball.net/
+http://www.rspb.org.uk/birds/faqs/feeding.asp
+http://www.rspb.org.uk/birds/faqs/feeding.asp?view=print
+http://www.rspb.org.uk/international/illegal_hunting/greece/index.asp
+http://www.rspca.org.au/animalcare/cats.asp
+http://www.rspcavic.org/animal_services/inspectorate_cases.htm
+http://www.rsph.org/events/Old%20events/2001%20events.asp
+http://www.rssl.com/OurServices/Training/Food/TraditionalandRapidMicrobiologyMethods.htm
+http://www.rstrading.com/resources/Medical.htm
+http://www.rt66.com/~rifetech/
+http://www.rtachicago.com/infocenter/paratransit.asp
+http://www.rtcgroup.com/arm/advisory.php
+http://www.rtcmagazine.com/home/article.php?id=100010
+http://www.rtd.si/eng/medn/cost/predstavitev.asp
+http://www.rtd.si/eng/medn/cost/predstavitev.asp?ZaTisk=Da
+http://www.rte.ie/health/2004/0512/health1010208.html
+http://www.rte.ie/sport/2005/0109/england.html
+http://www.rthum.com/Troxler%20Review.htm
+http://www.rtmagazine.com/i_Articles.ASP?articleid=I0309D06
+http://www.rtnda.org/foi/sunshinepkfin.shtml
+http://www.rtnda.org/news/2005/050602b.shtml
+http://www.rtnda.org/resources/speeches/rather3.html
+http://www.rtnda.org/resources/speeches/rather3.shtml
+http://www.rtog.org/committees/minutes/headneck.html
+http://www.rtog.org/members/pathology/pathletter.html
+http://www.rtoonline.com/Content/Article/Dec03/DTVSalesExplode121903.asp
+http://www.rtoonline.com/Content/Article/Jun04/FallingElectronicsPricesPressureCategory062404.asp
+http://www.rts.net.au/jpet.html
+http://www.rtweb.info/ch01/nfr1.html
+http://www.rtweb.info/ch04/
+http://www.rubber-ducky.org/carolynsboards/read.php?f=23&i=1101&t=1100
+http://www.rubberpaw.com/leadership.html
+http://www.rubesville.com/interviews.shtml
+http://www.rubicon-response.co.uk/team.htm
+http://www.ruf.org/sounds/books.htm
+http://www.ruf.rice.edu/~mgpowell/bureaucrat.html
+http://www.ruf.rice.edu/~musi/facultybios/chen.html
+http://www.ruf.rice.edu/~poli/GraduateStudies/gradpg1.html
+http://www.rufy.com/roger/knowledge.html
+http://www.rugbycanada.ca/index.php?lang=en&page_id=10&news_id=978
+http://www.rugbycoach.com/club/skills/cognitive.htm
+http://www.rugbycoach.com/fitness/weight/power.htm
+http://www.rugbyonguam.com/spg.htm
+http://www.rugbypostnz.com/howto.html
+http://www.rugbystudies.com/Newsletters/Newsletter120.htm
+http://www.ruhl-ruhl.com/3435
+http://www.ruishi.info/forum/read.php?tid=24623&page=e
+http://www.rules.co.uk/news.shtml
+http://www.rules.co.uk/reviews.html
+http://www.rulesonline.com/parliamentarians_websites.htm
+http://www.rulesonline.com/rror-10.htm
+http://www.rulesonline.com/rror-12.htm
+http://www.rulon.com/Catpages/127Bilingual.htm
+http://www.ruminatethis.com/
+http://www.ruminatethis.com/archives/002084.html
+http://www.rumormillnews.com/TERRORIST%20ATTACK%20911.htm
+http://www.rumormillnews.com/cgi-bin/forum.cgi?noframes;read=54165
+http://www.rumormillnews.com/operation.htm
+http://www.run-gear.com/buyingtips.html
+http://www.run100s.com/HR/gloomis00.html
+http://www.runasnailspace.com/
+http://www.runbox.com/twiki/bin/view/RunboxInfo/News
+http://www.rundeep.co.uk/new/knowledge/papers_sticky.asp
+http://www.runjamesrun.blogspot.com/
+http://www.runnerduck.com/04-23-04.htm
+http://www.runnersworld.co.uk/news/article.asp?UAN=1144
+http://www.runningblue.com/rewards/
+http://www.runningdeerslonghouse.com/webdoc130.htm
+http://www.runningmovies.com/
+http://www.runningspot.com/Ask/BR/Default.htm
+http://www.runningtimes.com/highschool/
+http://www.runningtimes.com/issues/02oct/pregnancy.htm
+http://www.runningtimes.com/issues/02sep/utica.htm
+http://www.runningtimes.com/issues/03apr/goal.htm
+http://www.runningtimes.com/issues/99julaug/artmar.htm
+http://www.runningtrades.com/
+http://www.runswith.com/royalwedding.html
+http://www.rupaliparda.com/khasi/introduction.htm
+http://www.rupe-india.org/36/parasitism.html
+http://www.ruraledu.org/rpm/rpm410a.htm
+http://www.ruralgateway.org.uk/item/512/11/24/46&dateformat=%25o-%25b-%25h
+http://www.ruralheritage.com/vet_clinic/hoof_and_mouth.htm
+http://www.ruralhillfarm.org/servlet/Main?page=ScottishOrScots-Irish
+http://www.ruralnetwork.net/~newsroom/story%20924.htm
+http://www.ruralwater.org/sec1926b/sequoya.htm
+http://www.ruralwomyn.net/story3.html
+http://www.rurdev.usda.gov/rbs/farmbill/4280pre06.htm
+http://www.rurdev.usda.gov/rbs/farmbill/4280pre07.htm
+http://www.rurdev.usda.gov/rbs/pub/sep03/apple.html
+http://www.ruready2party.com/funny_bar_stories.htm
+http://www.rusc.com/
+http://www.rush.edu/professionals/gme/children/faculty.html
+http://www.rush.edu/rumc/page-1098987387188.html
+http://www.rush.edu/rumc/page-R11761.html
+http://www.rushcliffe.gov.uk/recycling2go/doc.asp?cat=40&doc=4792
+http://www.rushlimbaugh.com/home/breck/kerry_campaign_knows_they_re_down.guest.html
+http://www.rushlimbaugh.com/home/breck/kerry_campaign_knows_they_re_down.guest.print.html
+http://www.rushlimbaugh.com/home/menu/fstack/we_were_first__lying_crook__choice.guest.html
+http://www.rushlimbaugh.com/home/menu/fstack/we_were_first__lying_crook__choice.guest.print.html
+http://www.rushmore.edu/practical2.htm
+http://www.rusnet.nl/news/2003/02/08/report01.shtml
+http://www.russbaker.com/CJR%20-%20Murdoch's%20Mean%20Machine,%20by%20Russ%20Baker.htm
+http://www.russbaker.com/Phily%20Inquirer%20-%20Resourceful%20Man%20Of%20Mercy.htm
+http://www.russellbeattie.com/notebook/1007946.html
+http://www.russellmelloncaps.com/site/xmas/CharityReview2004.aspx
+http://www.russfeingold.org/
+http://www.russfound.org/Enet/nizkor.htm
+http://www.russian.ee/~star/helix/mil/
+http://www.russianbooks.org/killers3.htm
+http://www.russianspaceweb.com/a4_team_moscow.html
+http://www.russianspaceweb.com/baikonur_road.html
+http://www.russojapanesewar.com/sea-of-japan.html
+http://www.russwhitney.com/faqs.aspx
+http://www.rustyspell.com/games/rustysreviews.html
+http://www.rutherford.org/articles_db/legal_features.asp?article_id=114
+http://www.ruthpennebaker.com/work13.htm
+http://www.rutledgeblog.com/askrutl/archives/2005_04.html
+http://www.ruv.net/
+http://www.rv.net/forum/index.cfm/fuseaction/thread/tid/14874443/gotomsg/14876005.cfm
+http://www.rv.net/forum/index.cfm/fuseaction/thread/tid/15016945/page/2.cfm
+http://www.rvf.org.uk/new_page_4.htm
+http://www.rwanda-vcp.org/info.projekt.en.html
+http://www.rwcmd.ac.uk/college_knowledge/purpose.asp
+http://www.rwcmd.ac.uk/howtoapply/ba_stage_management.asp
+http://www.rwe.org/works/Essays-2nd_Series_7_Politics.htm
+http://www.rwg-bayreuth.de/chemie/unterricht/carrying.htm
+http://www.rwjf.org/newsroom/newsreleasesdetail.jsp?id=10285
+http://www.rwjuh.edu/visitor/piservices.html
+http://www.rworld.ca/franchise.asp
+http://www.rx4us.com/en/prescription+drugs+news/pawlenty+canada+won+t+ban+cross+border+drug+sales+immediately.html
+http://www.rxassist.org/Search.cfm
+http://www.rxassist.org/Terms_n_Privacy.cfm
+http://www.rxlist.com/rxboard/paxil.pl?read=12931
+http://www.rxlist.com/rxboard/prozac.pl?read=718
+http://www.rxmed.com/b.main/b2.pharmaceutical/b2.1.monographs/CPS-%20Monographs/CPS-%20(General%20Monographs-%20C)/CARDIZEM.html
+http://www.rxpgnews.com/research/endocrinology/diabetes/article_1634.shtml
+http://www.rxsolutions.com/c/about/management.asp
+http://www.ryanair.com/dest/dublin.html
+http://www.ryanco.com/develop/Texas_Sales_&_Use_Tax_Managed_Compliance-Advantages_and_Disadvantages.html
+http://www.ryderfleetproducts.com/cgi-bin/ryderfp/technicalbulletins/sealinstall.jsp
+http://www.ryecongregational.com/thrift-shop.htm
+http://www.ryznardesign.com/web_coding/image_replacement/2004/gilder_levin_ryznar_jacoubsen/glrj_1_static.html
+http://www.rzim.org/publications/slicetran.php?sliceid=426
+http://www.s-c-g.org/facetoface/
+http://www.s-gabriel.org/names/dietmar/hints.html
+http://www.s-h-systems.co.uk/hotels/lowestoft.html
+http://www.s-h-systems.co.uk/hotels/seabank.html
+http://www.s-ox.com/News/detail.cfm?articleID=865
+http://www.s-ox.com/features/article.cfm?articleID=207
+http://www.s11n.net/papers/context_singletons.html
+http://www.s8int.com/atomic1.html
+http://www.sa-cd.net/showthread/1275/4175
+http://www.sa-tourmed.com/content/traveller/travelling.asp
+http://www.sa-venues.com/ga/hakunamatata.htm
+http://www.sa-venues.com/north_cape_tours.htm
+http://www.sa.psu.edu/usa/qa.shtml
+http://www.sa.uts.edu.au/publications/caras/untitled.html
+http://www.saa.org/repatriation/lobby/SCIAtestimony.html
+http://www.saabnet.com/tsn/models/1999/9995pr2.html
+http://www.saag.org/notes3/note241.html
+http://www.saag.org/papers12/paper1102.html
+http://www.saag.org/papers12/paper1173.html
+http://www.saag.org/papers13/paper1231.html
+http://www.saag.org/papers2/paper131.html
+http://www.saag.org/papers5/paper450.html
+http://www.saao.ac.za/~wgssa/as3/roberts.html
+http://www.saarclawnet.com/saarclawnet/osca20c1.html
+http://www.saatchikevin.com/talkingit/judge.html
+http://www.saatchikevin.com/workingit/love_change.html
+http://www.saathi.org/vijay's_voice.htm
+http://www.sabah.gov.my/events/2002statebudget/statebudgetbr/default.htm
+http://www.sabceducation.co.za/educatorspace/beyondtheclassroom/episode_10.html
+http://www.sabeel.org/old/fos-na/ateekal2.htm
+http://www.sabellastudios.com/tips_krichards.php
+http://www.sabertoothgames.com/forum/forum_posts.asp?TID=3873&get=last
+http://www.sabes.org/resources/adventures/vol12/12mcguire.htm
+http://www.sabes.org/resources/fieldnotes/fnguide.htm
+http://www.sabian.org/Alice/lgchap04.htm
+http://www.sablesys.com/accres.html
+http://www.saburchill.com/history/chapters/chap4012.html
+http://www.saburchill.com/history/hist003.html
+http://www.sac.ac.uk/consultancy/organic/nae/news/organicstock
+http://www.sacbee.com/06-07-2005/classads/notices/legal_notices/
+http://www.sacbee.com/24hour/entertainment/books/reviews/story/2423146p-10716489c.html
+http://www.sacbee.com/24hour/jobs/story/2495827p-10848245c.html
+http://www.sacbee.com/24hour/sports/story/2510346p-10872350c.html
+http://www.sacbee.com/content/homes/re_news/story/12134263p-13005358c.html
+http://www.sacbee.com/content/news/energy/story/5077880p-6084704c.html
+http://www.sacbee.com/content/news/medical/
+http://www.sacbee.com/content/news/story/13039604p-13885506c.html
+http://www.sacbee.com/content/news/story/13052770p-13898468c.html
+http://www.sacbee.com/content/opinion/editorials/story/12956334p-13803706c.html
+http://www.sacbee.com/content/opinion/story/13112498p-13956952c.html
+http://www.sacbee.com/content/politics/ca/budget/story/11326020p-12240755c.html
+http://www.sacbee.com/content/politics/ca/budget/story/11803354p-12691192c.html
+http://www.sacbee.com/content/sports/story/13102180p-13946933c.html
+http://www.sacbee.com/static/archive/family/features/20010408.html
+http://www.sacbee.com/static/archive/news/projects/environment/20010505.html
+http://www.sacbee.com/static/archive/news/projects/violence/stats_01.html
+http://www.sacbee.com/static/archive/news/projects/workers/20010521_main.html
+http://www.saccourt.com/family/self_help_center/center.asp
+http://www.sacosalmon.org/bylaws.php
+http://www.sacp.org.za/bua/2003/issue2.html
+http://www.sacp.org.za/docs/history/failed.html
+http://www.sacred-texts.com/atl/soa/soa15.htm
+http://www.sacred-texts.com/atl/tll/tll02.htm
+http://www.sacred-texts.com/aus/ntna/ntna04.htm
+http://www.sacred-texts.com/bud/tea.htm
+http://www.sacred-texts.com/cfu/liki/liki06.htm
+http://www.sacred-texts.com/egy/eml/eml14.htm
+http://www.sacred-texts.com/evil/hod/hod14.htm
+http://www.sacred-texts.com/hin/m12/m12a099.htm
+http://www.sacred-texts.com/neu/celt/fab/fab102.htm
+http://www.sacred-texts.com/pag/frazer/gb06205.htm
+http://www.sacred-texts.com/wmn/wb/wb52.htm
+http://www.sacredconnection.ndo.co.uk/Health%20Awareness/The%20Big%20Picture%20of%20Health.htm
+http://www.sacredland.org/historical_sites_pages/taos_blue_lake.html
+http://www.sacredsites.com/europe/ireland/tower_of_cashel.html
+http://www.sacredspace.ie/livingspace/SundayArchive/B-Easter4.htm
+http://www.sacsheriff.com/crime_prevention/documents/teens_at_risk_02.cfm
+http://www.sactree.com/isa/pruning_young_trees.htm
+http://www.sad.org.uk/communication.htm
+http://www.saddleback.cc.ca.us/div/la/neh/juaneno.htm
+http://www.saddleback.edu/AP/atas/CommArts/
+http://www.saddleupequestrian.co.uk/legacy.asp
+http://www.saddonline.com/issues2.htm
+http://www.saddonline.com/teenstoday/study.htm
+http://www.sadeveloper.net/team.aspx
+http://www.sadiesonline.com/
+http://www.sadker.org/textbooks.htm
+http://www.sadoun.com/Sat/Channels/Channels-FTA-free-to-air-Satellite-TV.htm
+http://www.sadoun.com/Sat/Products/GE/GE-Max-Antenna.htm
+http://www.saee.ca/policy/D_018_DDB_LON.php
+http://www.saee.ca/policy/D_019_DDB_LON.php
+http://www.saee.ca/policy/D_020_DDB_LON.php
+http://www.saee.ca/policy/D_067_DDD_LON.php
+http://www.saee.co.za/
+http://www.saembassy.org/Letter%20of%20the%20President%20Young%20Lions%20of%20the%20African%20Century.htm
+http://www.saf.org/journal/4_Kopel.html
+http://www.safaricom.co.ke/Option/
+http://www.safe-food.org/-consumer/brands.html
+http://www.safe-food.org/-news/1999-12-04.html
+http://www.safeaccessnow.org/article.php?id=373
+http://www.safecom.org.au/brennan.htm
+http://www.safefood.net.au/content.cfm?sid=477
+http://www.safegamesillinois.org/
+http://www.safehaven.com/article-12.htm
+http://www.safehaven.com/article-1704.htm
+http://www.safehaven.com/article-3242.htm
+http://www.safehaven.com/forums-12805.htm
+http://www.safehomeproducts.com/SHP/SF/Child_Safety_Products.asp
+http://www.safemanitoba.com/sw_stats.html
+http://www.safemark.co.uk/Pages/3_types_of_thief.htm
+http://www.safemotherhood.org/smrg/action/a5/a5_materials.htm
+http://www.safeprogram.com/extracredit.htm
+http://www.saferoads.org/polls/harrispoll98.htm
+http://www.saferoutestoschools.org/Pressroom/Enewsletters/Apr04.htm
+http://www.saferoutestoschools.org/Pressroom/Enewsletters/Nov04.htm
+http://www.saferparks.org/are_rides_safe/
+http://www.saferworld.co.uk/media/pr251102.htm
+http://www.safesearching.com/robertpatrick/features/interview-detour.shtml
+http://www.safesite.com/category.php%5Baction%5Dbrowse&i=350&id=237&f=%7C%7C%7C%7C&s=product.date_released%7CDESC%5BSiteID%5Ddigibuy
+http://www.safespeed.org.uk/pacts.html
+http://www.safety.fsu.edu/radpic.html
+http://www.safetycenter.navy.mil/media/approach/vault/articles/0152.htm
+http://www.safetycentral.com/emnot.html
+http://www.safetycops.com/commercial_burglary.htm
+http://www.safetyline.wa.gov.au/PageBin/guidwswa0061.htm
+http://www.safetyline.wa.gov.au/pagebin/pg000066.htm
+http://www.safetyline.wa.gov.au/pagebin/pg000581.htm
+http://www.safetyline.wa.gov.au/pagebin/pg001113.htm
+http://www.safetyplus.net/Elvexsafetyglasses.html
+http://www.safetyplus.net/resources3/
+http://www.safetyshop.com/
+http://www.safeware-eng.com/index.php/white-papers/accident-causes
+http://www.safeware-eng.com/index.php/white-papers/differ
+http://www.saffronwalden.essex.sch.uk/depts/science/home.htm
+http://www.safis.co.il/info1.asp
+http://www.safm.co.za/programmedetails/?programmeid=32
+http://www.safnet.org/archive/0205_howtobeetle.cfm
+http://www.safnet.org/archive/0205_howtobeetle.cfm?printPage=1&
+http://www.safrica.info/ess_info/sa_glance/government/gov.htm
+http://www.safrica.info/ess_info/sa_glance/history/tenyearsago2.htm
+http://www.saga.co.uk/health_news/pages/article.asp?id=1A2DF232-60EC-4D8B-AEC7-0CE547CC641B
+http://www.saga.co.uk/magazine/article/0013E3A6-CA7F-4C38-AC89-CA4DFBB731C0.asp
+http://www.saga.co.uk/magazine/article/4D6EF02E-0213-4569-A4A6-CA792DCE228E.asp
+http://www.sage.co.uk/accountants/home.asp?tid=136547
+http://www.sage.org/groups/setup.mm
+http://www.sageant.net/1163/index.cfm
+http://www.sageant.net/crockett
+http://www.sagecrossroads.net/public/webcasts/20/
+http://www.sagepub.com/journal.aspx?pid=221
+http://www.sagharborchamber.com/terms.htm
+http://www.sagindie.org/interviews/Dirt.html
+http://www.sah.org/index.php?module=ContentExpress&func=display&ceid=228
+http://www.sahel.org.uk/programmes/jiton.htm
+http://www.sahistory.org.za/pages/sources/docs/doc21-anc-resolutions.htm
+http://www.sahpa.co.za/ppg-boogie/before.htm
+http://www.sahrc.org.za/human_rights_forum.htm
+http://www.saiasecure.com/Rules/view.asp?item=670-25
+http://www.saibaba.org/shirdi8.html
+http://www.saibaba.ws/articles1/areyoureallysuffering.htm
+http://www.saic.com/news/2003/apr/14.html
+http://www.saigon.com/~anson/ebud/bd8p/bd8p_15.htm
+http://www.saigon.com/~anson/ebud/ebdha219.htm
+http://www.saiia.org.za/modules.php?op=modload&name=News&file=article&sid=454
+http://www.saila.com/articles/privacy/?print
+http://www.sailboatlistings.com/
+http://www.sailing.co.za/oldfeat/2001/fa_2112.htm
+http://www.sailingissues.com/navcourse0.html
+http://www.sailingscuttlebutt.com/news/04/0302cabrall/
+http://www.sailnet.com/collections/articles/index.cfm?articleid=merric0018
+http://www.sailnet.com/collections/articles/index.cfm?articleid=suelar0226
+http://www.saint-andre.com/blog/2004-07.html
+http://www.saint-andre.com/blog/2005-01.html
+http://www.saint-lucia.com/st-lucia-hints.html
+http://www.saint-mike.org/library/Marriage/Marriage.html
+http://www.saintgeorgesbahamas.com/renewal.shtml
+http://www.saintgeorgeschurch.org/ministry_lmc.htm
+http://www.saintjoe.edu/life/srtk-ath-grad.html
+http://www.saintjoe.edu/life/srtk-grad.html
+http://www.saintmarys.edu/Services/InfoTech/News/
+http://www.saintmarys.edu/~resnet/belleaire/macosxwireless.html
+http://www.saintmatthewschurches.com/planofsalvation.html
+http://www.saintrescue.org/adopted_saint_bernards%202001.htm
+http://www.saints.org.sg/dyk54c.cfm
+http://www.saintsforever.com/bs1.html
+http://www.saintsforever.com/bs2.html
+http://www.saintsforever.com/hundred.html
+http://www.saipantribune.com/newsstory.aspx?newsID=47711&cat=2
+http://www.sairr.org.za/members/pub/ff/200011/crime/profit.htm
+http://www.sairr.org.za/members/pub/fof/1999q1/labour.htm
+http://www.sairr.org.za/members/pub/fof/2000q1/ngo.htm
+http://www.sairr.org.za/members/pub/fof/2000q1/riddance.htm
+http://www.sais-jhu.edu/Nanjing/new_students/benefits.shtml
+http://www.sais-jhu.edu/pubaffairs/media_events/Media_Advisories/MA2005/atlstorm05.html
+http://www.sais.gov.uk/forecast_archive/00-01/2001.03.17
+http://www.sais.gov.uk/forecast_archive/00-01/2001.03.25
+http://www.sais.gov.uk/forecast_archive/00-01/2001.03.27
+http://www.sajha.com/sajha/html/OpenThread.cfm?forum=116&ThreadID=4572
+http://www.sakhalinenergy.com/news/nws_updates.asp
+http://www.sakurasystems.com/articles/rs-a1.html
+http://www.sal.ksu.edu/safecon/about.html
+http://www.saladltd.co.uk/salad%20pages/Nlp%20tips/nlp_tip_5.htm
+http://www.salaf.indiaaccess.com/atheist/groundwork_on_islamic_philosophy.htm
+http://www.salagram.net/Japa1.htm
+http://www.salary.com/careers/layouthtmls/crel_display_nocat_Ser16_Par40.html
+http://www.salary.com/careers/layoutscripts/crel_display.asp?tab=cre&cat=nocat&ser=Ser18&part=Par42
+http://www.salas.com/work/resume.htm
+http://www.salcc.edu.lc/index.php?option=com_content&task=view&id=57&Itemid=105
+http://www.salem-audubon.org/refuge.html
+http://www.sales-train.com/Files/marketingtips.html
+http://www.sales-training-management-institute.com/
+http://www.salesandmarketingcoach.com/blog/archives/the_art_of_self_promotion/
+http://www.salesianmissions.org/salesians/st/sim.htm
+http://www.salesjobs.ie/mot_article.asp?aid=1
+http://www.salestaxinstitute.com/archiveMiscellaneous.jsp
+http://www.salestrainingtv.com/how_sellers.asp
+http://www.salford.ac.uk/course-finder/course/1337
+http://www.salgba.com/guidelines738.cfm
+http://www.saligad.org/fieldwork/garissa.html
+http://www.salliemae.com/forms/apporder.asp
+http://www.sallybedellsmith.com/kennedy-white-house/book-jacket.php
+http://www.sallys-place.com/beverages/coffee/expresso_machine.htm
+http://www.sallys-place.com/beverages/tea/solo_teas.htm
+http://www.sallys-place.com/food/ethnic_cusine/india.htm
+http://www.salon.com/books/feature/2001/01/16/quindlen/print.html
+http://www.salon.com/books/feature/2002/10/23/pearson/index1.html
+http://www.salon.com/books/feature/2004/03/22/midlist/
+http://www.salon.com/ent/?lid=ent_Bottom&lpos=Bottom_ent
+http://www.salon.com/mwt/feature/2005/06/08/bancroft_brooks/
+http://www.salon.com/mwt/feature/2005/06/10/warren/
+http://www.salon.com/mwt/letters/2002/09/16/heresy_letters/index1.html
+http://www.salon.com/news/feature/2003/04/14/ron_reagan/
+http://www.salon.com/news/feature/2004/01/13/moveon/
+http://www.salon.com/news/feature/2004/02/14/burkett/
+http://www.salon.com/news/feature/2004/06/14/panther/
+http://www.salon.com/news/feature/2004/11/05/viguerie/
+http://www.salon.com/news/feature/2005/01/12/srilanka2/
+http://www.salon.com/news/feature/2005/04/21/pyramid/
+http://www.salon.com/news/feature/2005/06/09/press_and_downing_street_memo/
+http://www.salon.com/news/sports/bounds/2001/08/30/kent/
+http://www.salon.com/news/wire/2005/02/05/missing_jet/
+http://www.salon.com/news/wire/2005/06/17/military_in_schools/
+http://www.salon.com/news/wire/2005/06/29/copter/
+http://www.salon.com/opinion/conason/2005/06/17/dsm_press/
+http://www.salon.com/people/bc/1999/06/01/gaskin/
+http://www.salon.com/people/bc/1999/10/05/gehry/print.html
+http://www.salon.com/people/feature/1999/09/01/comhell/print.html
+http://www.salon.com/politics/feature/2001/05/17/energy_plan/
+http://www.salon.com/tech/fsp/glossary/
+http://www.saloncity.com/marketplace.asp
+http://www.salsbook.com/lodge.htm
+http://www.salt.org.il/palc.html
+http://www.saltaire.org/chap28.html
+http://www.saltedwound.com/archives/001474.php
+http://www.saltedwound.com/archives/cat_general.php
+http://www.saltfilms.net/zababdeh/dec01.html
+http://www.saltinstitute.org/28.html
+http://www.salto-youth.net/seenews
+http://www.saltonsea.ca.gov/environ.htm
+http://www.saltshakers.com/myson/
+http://www.saltspring.com/capewest/ct.htm
+http://www.saltspring.com/capewest/mc.htm
+http://www.saltworks.us/salt_info/si_SaltAndGoodHealth.asp
+http://www.saludos.com/fields/biotech.html
+http://www.salvationarmy.org.nz/SITE_Default/SITE_family_support/Family_Store_article.asp
+http://www.salvationarmy.org.uk/en/Library/publications/salvationist/2004/2-21/Sal040221p07.htm
+http://www.salvationarmy.org.uk/en/Library/publications/warCry/2001/05-12/2001.05.12warcry_12-05-2001_p3.xml.htm
+http://www.salvationarmy.org.uk/en/Library/publications/warCry/2004/7-24/WC040724p02.htm
+http://www.salvos.com/saprincegeorge/corner.html
+http://www.samachar.com/features/160205-features.html
+http://www.samag.com/
+http://www.samarmagazine.org/archive/article.php?id=81
+http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/PolicyMgmt.html
+http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ServerType.html
+http://www.samesexmarriage.ca/advocacy/Saint_John_Pride2003.htm
+http://www.samesexmarriage.ca/advocacy/turin/KeesWaaldijk_2002.htm
+http://www.samesexmarriage.ca/legal/bill160205.htm
+http://www.samford.edu/groups/prelaw/applying.html
+http://www.samford.edu/schools/business/MBA/schedules.html
+http://www.samhorn.com/training_institute.html
+http://www.samizdat.com/curious.html
+http://www.samizdat.com/ebay5.html
+http://www.samizdat.com/experts.html
+http://www.samizdat.com/micah/orestes.html
+http://www.samizdat.com/rinkessay1.html
+http://www.samizdat.com/sand24.html
+http://www.samizdat.com/warren/rev6.html
+http://www.samizdat.qc.ca/vc/sexe/bergner_e.htm
+http://www.samizdata.net/blog/archives/002562.html
+http://www.samizdata.net/blog/archives/005297.html
+http://www.samizdata.net/blog/archives/007085.html
+http://www.samizdata.net/blog/archives/007569.html
+http://www.samizdata.net/blog/archives/007613.html
+http://www.samizdata.net/mt/mt-comments.cgi?entry_id=5297
+http://www.samizdata.net/mt/mt-comments.cgi?entry_id=6343
+http://www.samizdata.net/mt/mt-comments.cgi?entry_id=7452
+http://www.samizdata.net/mt/mt-comments.cgi?entry_id=7569
+http://www.samplesize.ca/writingArtMarkClintbergSar.html
+http://www.sampson.cc.nc.us/college/financia.html
+http://www.samsclub.com/eclub/main_shopping.jsp?coe=0&oidPath=0%3A-23541%3A-42532%3A-43371%3A-43377&mt=a&n=0
+http://www.samsclub.com/eclub/main_shopping.jsp?coe=0&oidPath=0%3A-23542%3A-23595%3A-36137%3A-36145%3A907621&mt=a&n=0
+http://www.samsclub.com/eclub/main_shopping.jsp?mt=a&n=0&coe=0&oidPath=0%3A-23542%3A-23595%3A-36137%3A-36145%3A907620
+http://www.samsclub.com/eclub/main_shopping.jsp?mt=a&n=0&coe=0&oidPath=0%3A-23542%3A-23595%3A-36137%3A-36145%3A907621
+http://www.samsclub.com/eclub/main_shopping.jsp?mt=a&n=0&coe=0&oidPath=0%3A-23542%3A-25822%3A-41015%3A933960
+http://www.samsclub.com/eclub/main_shopping.jsp?mt=a&n=0&coe=0&oidPath=0%3A-23542%3A-25822%3A-41015%3A933962
+http://www.samsloan.com/missusa.htm
+http://www.samspublishing.com/articles/article.asp?p=101316
+http://www.samspublishing.com/articles/article.asp?p=101760
+http://www.samspublishing.com/articles/article.asp?p=174379
+http://www.samspublishing.com/articles/article.asp?p=29742&seqNum=5
+http://www.samspublishing.com/articles/article.asp?p=30348
+http://www.samspublishing.com/articles/article.asp?p=360063&seqNum=2
+http://www.samuelbrittan.co.uk/spee19_p.html
+http://www.samuelbrittan.co.uk/spee24_p.html
+http://www.samuelfrench.com/store/product_info.php/products_id/1579
+http://www.samuelgriffith.org.au/papers/html/volume5/v5chap7.htm
+http://www.samurai-archives.com/mth.html
+http://www.san.beck.org/Life7-Imagination.html
+http://www.sanalz.org/BestFriendsApproachEffectiveinCareforAlzheimersPatients.htm
+http://www.sanbeiji.com/bass/
+http://www.sandgate-kent.org.uk/soilslip.htm
+http://www.sandhillsonline.com/content.php/303/60
+http://www.sandia.gov/materials/sciences/goodnews.htm
+http://www.sandidahlpaintings.com/artist.htm
+http://www.sandiegodvunit.org/article4.htm
+http://www.sandiegomag.com/issues/february05/featurea0205.asp
+http://www.sandiegomag.com/issues/jan96/bowlme.shtml
+http://www.sandiegomag.com/issues/september04/business0904.asp
+http://www.sandiegostories.com/archives/2004/05/
+http://www.sandiegostories.com/archives/2004/05/fourfinger_fran.html
+http://www.sandisk.com/retail/drivers-sddr-7x.asp
+http://www.sandnsea.com/guidelines.html
+http://www.sandy-balls.co.uk/latest_news.asp
+http://www.sandylane.com/retreats/
+http://www.sandyloan.f2s.com/Newsletter%2001.htm
+http://www.sandyspringbank.com/ps_pb.htm
+http://www.sanfordrose.com/update/january1999.htm
+http://www.sangam.org/NEWSEXTRA/Ganesh08_26_02.htm
+http://www.sangrea.net/bully/selfhelp.php
+http://www.sanjose.org/meetingplanners/meeting_hotels.asp
+http://www.sanjoseca.gov/cty_clk/3_6_01D_5.htm
+http://www.sanjosejazz.org/Festivalpress.html
+http://www.sanjosepeace.org/action_alerts.htm
+http://www.sanjuanbasintechschool.org/about.htm
+http://www.sankaranethralaya.org/care_eyecare.htm
+http://www.sanlam.co.za/eng/newsreports/moneymatters/money+matters+july+2004.htm
+http://www.sanluisobispo.com/mld/sanluisobispo/news/local/10344848.htm
+http://www.sanluisobispo.com/mld/sanluisobispo/news/politics/11919428.htm
+http://www.sanmarcos.net/ana/analysis.html
+http://www.sanpedrosun.net/old/stpetersinau.html
+http://www.sanramonobserver.org/default.asp
+http://www.sans.org/newsletters/newsbites/newsbites.php?vol=6&issue=24
+http://www.sans.org/resources/popular.php
+http://www.sant.ox.ac.uk/princeton/pap_nielsen.shtml
+http://www.santa-clarita.com/cityhall/council/marchapril.htm
+http://www.santa-clarita.com/cityhall/parks/straight.asp
+http://www.santa-claus-lane.com/newpage16.htm
+http://www.santacruzchronicles.com/smbk.html
+http://www.santacruzguide.com/top.cgi/features/music01.html
+http://www.santacruzsentinel.com/archive/2003/December/20/biz/stories/01biz.htm
+http://www.santacruzsentinel.com/archive/2003/October/20/biz/stories/01biz.htm
+http://www.santacruzsentinel.com/archive/2004/December/30/sport/stories/04sport.htm
+http://www.santacruzsentinel.com/archive/2004/October/21/sport/stories/03sport.htm
+http://www.santaland.com/tradit.html
+http://www.santapaulatimes.com/news/fullstory.php/aid/7954/Letters_to_the_Editor.html
+http://www.santateresacitizen.org/
+http://www.santeecooper.com/environment/vegmanagement/vegetation_faq.html
+http://www.saorsamedia.com/shop/wise.html
+http://www.sap.com/australia/services/education/venues/index.aspx
+http://www.sap.com/australia/text/services/education/venues/index.aspx
+http://www.sap.com/france/company/press/press.aspx?PressID=4516
+http://www.sap.com/text/company/investor/faq/index.epx
+http://www.sappex.org.za/environmental_factors_affecting_proteas.php
+http://www.sapphireblue.com/dangerousart/2002_11.php
+http://www.sapphirecoast.com.au/whales/about.htm
+http://www.saprin.org/zimbabwe/zimbabwe_forum1.htm
+http://www.sapsis-rigging.com/NSTTerms.html
+http://www.sar.org/about/committs.htm
+http://www.saracity.com/scwedu/group_certif.html
+http://www.sarahhatter.com/
+http://www.sarahsmiley.com/Faqs.htm
+http://www.sarahsmiley.com/Resources.htm
+http://www.saraleecoffeetea.com/legal.asp
+http://www.saranam.com/Help/help6.asp
+http://www.sarantakos.com/bridge/kapnuggets80-84.htm
+http://www.sararegistry.gc.ca/gen_info/HTML/Regs_e.cfm
+http://www.sarasamusic.org/outreach/concerts/2005-04westboro-reception-unit.shtml
+http://www.sarasotanewsandbooks.com/February%20events.htm
+http://www.sarbc.org/hypo2.html
+http://www.sardi.sa.gov.au/pages/horticulture/about_hort/hort_about_costirri.htm:sectID=446&tempID=79
+http://www.sare.org/sanet-mg/archives/html-home/10-html/0210.html
+http://www.sarkanniemi.fi/oppimateriaali/eng_spe1.html
+http://www.saroff.com/ratings/bodyguards/executive-protection-dog.htm
+http://www.saroff.com/ratings/bodyguards/private-security-firm.htm
+http://www.sarr.org/coaddicts/dealing_with_a_husband.htm
+http://www.sars.gov.za/v_a_t/vatnews/vat_news_1.htm
+http://www.sars.no/embocourse/subjects4.html
+http://www.sartma.com/art_35_11_102_2.html
+http://www.sartma.com/artd_1309_12_2004_9.html
+http://www.sarvodaya.org/divisions/sarvodaya-legal/implementation-of-legal-empowerment/
+http://www.sarvodaya.org/philosophy/collected-works-vol-1/100-village-development/
+http://www.sarvodaya.org/philosophy/collected-works-vol-2/role-of-shramadana-in-rural-development/
+http://www.sas.ac.uk/ies/events/confs/Capital1700-2000/Capital1700-2000.htm
+http://www.sas.ac.uk/igs/HPEXILECENTRE.htm
+http://www.sas.ac.uk/warburg/Fellowships/Shortt.htm
+http://www.sas.com/news/sascom/2004q4/column_1to1.html
+http://www.sas.com/offices/europe/belux/customer/cust_fortis.html
+http://www.sas.com/success/ambgenerali.html
+http://www.sas.com/success/bcbsfla_abm.html
+http://www.sas.com/success/hbos.html
+http://www.sas.com/success/lot.html
+http://www.sas.com/success/royalbankscotland.html
+http://www.sas.com/success/westlb.html
+http://www.sas.org.uk/papers/envirosub.asp
+http://www.sas.upenn.edu/African_Studies/Hornet/strp_jul99.html
+http://www.sas.upenn.edu/African_Studies/Hornet/welo0598.html
+http://www.sas.upenn.edu/African_Studies/eue_web/Elect_r5.htm
+http://www.sas.upenn.edu/CGS/summer/highschool/pssa/forensic.php
+http://www.sas.upenn.edu/elp/programs/intensive/courses/intensive_advanced.php
+http://www.sas.upenn.edu/elp/programs/intensive/courses/intensive_intermediate.php
+http://www.sas.upenn.edu/elp/programs/intensive/courses/si-evening_courses.php
+http://www.sas.upenn.edu/sasalum/newsltr/fall96/numbers.html
+http://www.sas.upenn.edu/~baron/cvcost.html
+http://www.sas.upenn.edu/~baron/p399.htm
+http://www.sasb.org.au/Sivarajan.html
+http://www.saschools.co.za/brooklyn/extra_curricular.htm
+http://www.sasexpo.org/2004/schedule.htm
+http://www.sasexpo.org/2005/schedule.htm
+http://www.saskarchives.com/web/pub-bulletin-7.html
+http://www.saskatoonhealthregion.ca/your_health/ch_sch_emergency.htm
+http://www.saskatoonhealthregion.ca/your_health/ps_primary_health.htm
+http://www.sasked.gov.sk.ca/docs/ela/speaking01.html
+http://www.sasked.gov.sk.ca/docs/history20/asses.html
+http://www.sasked.gov.sk.ca/docs/mla/actiii.html
+http://www.sasked.gov.sk.ca/docs/mla/listen.html
+http://www.sasktrade.sk.ca/conference/2004/schedule.shtml
+http://www.sassyclassics.com/necklaces2.htm
+http://www.sassyclassics.com/watches.htm
+http://www.sassyclassics.com/watches2.htm
+http://www.sasvr.com/ttonsite/pages/va_d1diary02.html
+http://www.sat.dundee.ac.uk/~arb/cpc/century.html
+http://www.sat7.org/downloads/Newsletter%20-%20October.htm
+http://www.satacademy.org/terms.php
+http://www.satanservice.org/coe/sermons/txt.smnhvnsgat
+http://www.satanservice.org/coe/suicide/guide/
+http://www.satcure-focus.com/design/page1.htm
+http://www.satelliteguys.us/archive/index.php/t-43829.html
+http://www.satgtu.org/comments.htm
+http://www.satinslippers.com/library/topic.asp?TOPIC_ID=744
+http://www.satisfice.com/articles.shtml
+http://www.satoripublishing.com/puzzles/
+http://www.satp.org/satporgtp/countries/bangladesh/terroristoutfits/PBCP.htm
+http://www.satpracticetest.us/verbal/critical_reading/tips_and_advice.htm
+http://www.satyamag.com/apr03/khosla.html
+http://www.satyamag.com/jan01/lyman.html
+http://www.saudervillage.com/History/markmatthews.asp
+http://www.saudi-us-relations.org/Fact_Sheets/TimelineTerrorism.html
+http://www.saudia-online.com/news2004/nov04/news01.shtml
+http://www.saudia-online.com/press/Netvista.shtml
+http://www.saudiaramcoworld.com/issue/197906/arab.aid-who.gives.it.htm
+http://www.sauer-thompson.com/
+http://www.savannahnow.com/exchange/stories/051603/EXCWALKINGTOUR.shtml
+http://www.savannahnow.com/exchange/stories/112102/EXClocalbizbriefs.shtml
+http://www.savaspublishing.com/10-08-03.html
+http://www.savecamphill.org.uk/news_items2.htm
+http://www.savecommunities.org/youcando.html
+http://www.savedisney.com/news/features/fe083104.1.asp
+http://www.saveenterprise.com/forum2/index.php?showtopic=2944&view=getlastpost
+http://www.saveenterprise.com/forum2/lofiversion/index.php/t2643.html
+http://www.savefenwaypark.com/news_detail.cfm?ID=241&SORTBY=ID%20DESC
+http://www.savemartha.com/
+http://www.savemoneyoncars.co.uk/cheap_new_cars/Mazda/
+http://www.savemoneyoncars.co.uk/cheap_new_cars_display/Ford/Streetka/
+http://www.saveonfoods.com/1/brightlife/healthy_eating/fiber.htm
+http://www.saveonfoods.com/1/brightlife/healthy_eating/sd_infant_nutrition.htm
+http://www.saveonscents.com/
+http://www.saveontests.com/terms_and_conditions.htm
+http://www.saveourearth.co.uk/soe_enews.php?number=13
+http://www.savethechildren.org/mothers/report_2005/lesson_plan.asp
+http://www.savethekoala.com/kidscornerstories.html
+http://www.savethemales.ca/000298.html
+http://www.savethemales.ca/000319.html
+http://www.savethemales.ca/120602.html
+http://www.savewealth.com/planning/estate/livingtrusts/
+http://www.savingchildhood.org/common/embeddedContent/chEmbedded?embeddedObjectId=31333&fulltext=true
+http://www.savingsandclone.com/ethics/debates4.html
+http://www.savvypatients.com/supplements.htm
+http://www.sawadee.com/samui/samuiparadise/
+http://www.sawhillkitchens.com/started.html
+http://www.saxmundham.org/aboutsax/henrybright.html
+http://www.saxton.com.au/default.asp?nc8=150&sc8=161
+http://www.sayhomebusiness.com/home-business.html
+http://www.sayido.com/privacy.asp
+http://www.sayplanning.com/sayimprove/exterior/siding.html
+http://www.saysuncle.com/archives/2003/01/
+http://www.saysuncle.com/archives/category/civil_liberties/
+http://www.sba.muohio.edu/sba_home/faculty/resources/teacher_eval_policy.asp
+http://www.sbac.edu/~ir/
+http://www.sbbike.org/SBBC/policies.html
+http://www.sbcamping.org/templates/cussbca/Details.asp?id=1882&PID=7165
+http://www.sbcannualmeeting.org/sbc99/news58.htm
+http://www.sbgh.mb.ca/campus_sbgh/LaboratorySvcs/index_BloodBank.html
+http://www.sbhla.org/coll.htm
+http://www.sbls.org/gbufs3.htm
+http://www.sbm.org/ebbm/sbmconference.html
+http://www.sbmahimalaya.org/babies/babies_rachna.htm
+http://www.sbministries.org/music.html
+http://www.sbomagazine.com/sbomag/nov02/technology.html
+http://www.sbp-movie-reviews.com/rev_eyeswideshut.htm
+http://www.sbpoet.com/2004/10/debate_blogging_2.html
+http://www.sbrc.ca/framekardami.htm
+http://www.sbrnet.com/order_form.htm
+http://www.sbs.co.za/imesa2004/imesa2004_welcome.htm
+http://www.sbs.co.za/wcce2005/icool/icool.html
+http://www.sbs.com/pressroom/85
+http://www.sbs.gov.uk/entareas/productivityUKpage4.php
+http://www.sbt.siemens.com/FIS/products/sysintel.asp
+http://www.sbwr.org.sg/wetlands/text/98-5-1-3.htm
+http://www.sc.ca.lp.org/scl/9811-chair.html
+http://www.sc.edu/eop/sexharassment.html
+http://www.sc.edu/policies/hr124.html
+http://www.sc.eso.org/santiago/science/sentable.html
+http://www.scad.edu/thechronicle/archive/vol_5/04_15/sports.html
+http://www.scadathletics.com/programs/basketball/womens/index.php?story=all_headlines
+http://www.scadathletics.com/programs/soccer/mens/index.php?story=all_headlines
+http://www.scadathletics.com/programs/soccer/womens/index.php?story=all_headlines
+http://www.scae.com/default.asp?page=viewnews&cat=Miscellaneous+Document&nid=482
+http://www.scalecraft.com/index.asp?PageAction=Custom&ID=4
+http://www.scalesgalore.com/tmulti.htm
+http://www.scalzi.com/whatever/002576.html
+http://www.scalzi.com/whatever/002625.html
+http://www.scalzi.com/whatever/003582.html
+http://www.scalzi.com/whatever/003585.html
+http://www.scalzi.com/whatever/2003_03.html
+http://www.scalzi.com/whatever/2003_07.html
+http://www.scam.com/showthread.php?mode=hybrid&t=1262
+http://www.scam.com/showthread.php?t=1262&page=3
+http://www.scam.com/showthread.php?t=1262&page=3&pp=10
+http://www.scam.com/showthread.php?t=840
+http://www.scam.com/showthread.php?t=840&page=1
+http://www.scambusters.org/Scambusters59.html
+http://www.scamecanica.com/czar/CzarHelp/window/main.html
+http://www.scamorama.com/bourbon.html
+http://www.scamorama.com/darkman_acme.html
+http://www.scamorama.com/marmite_okon.html
+http://www.scamorama.com/pencil.html
+http://www.scamorama.com/strog_ezeh.html
+http://www.scan.co.uk/Terms.ASP
+http://www.scandals.org/derekchristian/brd41.html
+http://www.scandinaviahouse.org/programs.html
+http://www.scandinavianseminar.org/index.php?id=101
+http://www.scandinavica.com/
+http://www.scandoil.com/moxie/news/world_news/100m-boost-for-great-brit.shtml
+http://www.scanning-fams.org/scanabstracts/SCANNING98/20318.shtml
+http://www.scansoft.co.uk/news/20031013_speechify.asp
+http://www.scansoft.com.au/news/20031013_speechify.asp
+http://www.scansoft.com/company/ir/earnings/20000510_q1.asp
+http://www.scansoft.com/news/pressreleases/2003/20031009_speechifyjill.asp
+http://www.scaper.com/fanfiction/daddysgirl.html
+http://www.scar.utoronto.ca/~lifesci/psych-handbook/FAQ.html
+http://www.scarborough.gov.uk/content/planning/planning_apps_comm.html
+http://www.scarboroughtoday.co.uk/ViewArticle2.aspx?SectionID=800&ArticleID=937259
+http://www.scaredycatstalker.com/recipes2.html
+http://www.scarletpixel.com/
+http://www.scaryplace.com/HauntedTheater.html
+http://www.scavenger-hunt-idea.com/kids-hunt.html
+http://www.scbar.org/member/conductrule.asp?rule=3.6
+http://www.scc.rutgers.edu/serbian_digest/227/t227-1.htm
+http://www.sccoe.k12.ca.us/events/2005/sos/
+http://www.scconline.org/education/publications/journal_54_1.htm
+http://www.sccs.swarthmore.edu/users/06/adem/engin/e28/labs/lab1/
+http://www.sccyc.org/general_information.htm
+http://www.scdi.org.uk/page.php?id=1275
+http://www.sceida.org/03212001.htm
+http://www.scena.org/lsm/sm7-7/technique-en.html
+http://www.scenic.org/contextsensitive/modelcsslegislation.htm
+http://www.scenic7byway.com/postnuke/index.php?module=ContentExpress&file=index&func=display&ceid=19&meid=34
+http://www.scenichudson.org/press/announcements/details.cfm?ID=87&topic=cement&type=REL
+http://www.scfc.co.uk/scarlet12.html
+http://www.scgameandfish.com/
+http://www.sch3.net/POMH3_runs0017.htm
+http://www.schaeffersresearch.com/commentary/dailycontrarian.aspx?click=home&newsid=1801
+http://www.schema.com/pressShow.asp?id=101&year=
+http://www.schenectadyhistory.org/resources/patent/15.html
+http://www.schenectadyhistory.org/resources/ripley-ss/
+http://www.schick-shadel.com/addiction.asp
+http://www.schickele.com/
+http://www.schmoozeletter.com/schmoozeletter/html/81.html
+http://www.schneider-electric.com/en/Careers/Career_prospects/Spotlight/HIDDEN_New_Fiche3/HIDDEN_New_Fiche3.html
+http://www.schneier.com/blog/archives/2005/02/sha1_broken.html
+http://www.schneier.com/blog/archives/2005/03/garbage_cans_th.html
+http://www.schneier.com/blog/archives/2005/04/security_tradeo.html
+http://www.schneier.com/blog/archives/2005/04/wifi_minefield.html
+http://www.schneier.com/crypto-gram-0308.html
+http://www.schneier.com/crypto-gram-0410.html
+http://www.schneier.com/crypto-gram-0505.html
+http://www.schneier.com/crypto-gram-9909.html
+http://www.schneier.com/paper-blowfish-fse.html
+http://www.schnews.org.uk/diyguide/howtodoofficework.htm
+http://www.schofields.ltd.uk/Policy_Details/Overseas/overseas.htm
+http://www.schola-tutorials.com/faq.htm
+http://www.scholars.nus.edu.sg/landow/post/pakistan/literature/rushdie/srpolitics2.html
+http://www.scholars.nus.edu.sg/literature/macaulay.html
+http://www.scholars.nus.edu.sg/sep/students/bbonus/p3.html
+http://www.scholars.rotary1040.org/leeds_2004_report.htm
+http://www.scholastic.co.uk/zone/book_allys-world.htm
+http://www.scholastic.com/earlylearner/age3/childcare/pre_timealonetog.htm
+http://www.scholastic.com/earlylearner/age4/learning/abstractthinking.htm
+http://www.scholastic.com/earlylearner/age5/learning/abstractthinking.htm
+http://www.scholastic.com/earlylearner/experts/behavior/3_5_listenfollowdir.htm
+http://www.scholastic.com/familymatters/parentguides/schoolinvolve/fundraising.htm
+http://www.scholastic.com/familymatters/parentguides/summer/librariantips.htm
+http://www.scholastic.com/familymatters/read/gr3_5/readskills.htm
+http://www.school-for-champions.com/senses/6thexperiments.htm
+http://www.school.gr/learning/euro.htm
+http://www.schoolchoices.org/roo/fried1.htm
+http://www.schoolchoices.org/roo/sted1.htm
+http://www.schoolconstructionnews.com/index.cfm?do=otm&action=archive&otm_id=175
+http://www.schoolfriend.co.uk/subscription/schoolreg.asp
+http://www.schoolfunding.info/states/nc/lit_nc.php3
+http://www.schoolfunding.info/states/wi/7-7-04walk.php3
+http://www.schoolgovernors-oss.org.uk/individual.htm
+http://www.schoolhistory.co.uk/help/serverstatus.shtml
+http://www.schoolhousesoftware.com/company_top.htm
+http://www.schoolmatch.com/articles/technos.htm
+http://www.schooloftheseasons.com/aprdays1.html
+http://www.schoolredesign.net/srn/server.php?idx=684
+http://www.schoolredesign.net/srn/server.php?idx=854
+http://www.schoolredesign.net/srn/server.php?idx=854&page=1&open=850
+http://www.schoolreport.com/schoolreport/articles/choice_for_teachers_03_02.htm
+http://www.schools-of-interior-design.com/Interior-Design-vs.-Interor-Decorating.htm
+http://www.schools.ash.org.au/litweb/gender.html
+http://www.schools.nsw.edu.au/schoollibraries/scan/15_1996/moore.htm
+http://www.schools.nt.edu.au/howardsp/webquests/SuperSpeciesSaver/supersp.htm
+http://www.schoolscience.co.uk/content/4/biology/abpi/skin/skin3.html
+http://www.schoolscience.co.uk/questions/5/biology/faqresearch.asp
+http://www.schoolscience.co.uk/teachers/chemclub/chemclub3_4.html
+http://www.schoolsintheusa.com/careerprofiles_details.cfm?carid=1080
+http://www.schoolworld.asn.au/members/members.html
+http://www.schoolzone.co.uk/resources/articles/Career/Training/Quality_SEN.asp
+http://www.schoolzone.co.uk/resources/evaluations/printcon.asp?p=GRAN-1844410935
+http://www.schott.com/english/company/annual_reporting/j02-03/units.html
+http://www.schs.state.nc.us/SCHS/CCR/Article_7.html
+http://www.schulers.com/books/stories/Famous_Modern_Ghost_Stories/Famous_Modern_Ghost_Stories10.htm
+http://www.schulich.yorku.ca/ssb-extra/bba.nsf/0/28f5fe24c0c45ddd85256ace004fc3a3?OpenDocument
+http://www.schulich.yorku.ca/ssb-extra/school.nsf/0/016dc3b05647562585256ed00067abe6?OpenDocument
+http://www.schulich.yorku.ca/ssb-extra/school.nsf/0/11e5695ea36cecf985256b8e0063c1eb?OpenDocument
+http://www.schwablearning.org/articles.asp?r=316&g=2
+http://www.schweser.com/faq/repeating.php
+http://www.schweser.com/help/return_policy_2005.php
+http://www.schweser.com/help/terms_conditions.php?terms_level=cfa1
+http://www.schweser.com/news/announcements.php?announcement_id=154
+http://www.schweser.com/products/products.php?category=STRATEGIES
+http://www.schweser.com/products/products.php?category=SUPERCHAT
+http://www.sci-eng.mmu.ac.uk/igds/programme.asp
+http://www.sci-journal.org/index.php?template_type=report&id=15&htm=reports/vol4no2/v4n2a1.html&link=reports/home.php
+http://www.sci.sdsu.edu/classes/bio508/RUBRICS.html
+http://www.sciam.com/
+http://www.sciam.com/article.cfm?articleID=0005930F-3978-10AE-B97883414B7FFE9F
+http://www.sciam.com/article.cfm?articleID=000806D1-24E2-1C75-9B81809EC588EF21
+http://www.sciam.com/article.cfm?articleID=0008E453-D7E5-1113-B94183414B7F4945
+http://www.sciam.com/article.cfm?articleID=000BC08E-5B8C-1D2B-97CA809EC588EEDF
+http://www.sciam.com/article.cfm?articleID=000E555C-4387-1237-81CB83414B7FFE9F
+http://www.sciam.com/page.cfm?section=magazine
+http://www.sciconf.igbp.kva.se/Amsterdam_Declaration.html
+http://www.scics.gc.ca/cinfo02/830754004_e.html
+http://www.scidev.net/Editorials/index.cfm?fuseaction=readEditorials&itemid=148&language=1
+http://www.scidev.net/editorials/index.cfm?fuseaction=printarticle&itemid=143&language=1
+http://www.scidev.net/gateways/index.cfm?fuseaction=printarticle&rgwid=3&item=Editorials&itemid=143&language=1
+http://www.scidev.net/gateways/index.cfm?fuseaction=printarticle&rgwid=6&item=Editorials&itemid=143&language=1
+http://www.scie.org.uk/publications/practiceguides/fostering/education/index.asp
+http://www.scielo.br/scielo.php?pid=S0103-97332000000300012&script=sci_arttext&tlng=en
+http://www.scielo.br/scielo.php?pid=S0104-59702005000400014&script=sci_arttext&tlng=en
+http://www.scielo.br/scielo.php?pid=S0104-65001998000100006&script=sci_arttext&tlng=en
+http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0004-27492003000600014
+http://www.scielo.br/scielo.php?script=sci_arttext&pid=S1516-31801999000200004
+http://www.scielo.cl/scielo.php?pid=S0716-078X2001000200017&script=sci_arttext&tlng=en
+http://www.scielosp.org/scielo.php?pid=S0042-96862002000700011&script=sci_arttext&tlng=en
+http://www.science-house.org/admin/AnnualRept97.html
+http://www.science-spirit.org/articles/archive_cm_detail.cfm?item_id=184
+http://www.science.ca/scientists/scientistprofile.php?pID=16
+http://www.science.doe.gov/SC-80/trail/history.htm
+http://www.science.doe.gov/grants/
+http://www.science.doe.gov/informationtechnologymgmt/html/faq.htm
+http://www.science.edu.sg/ssc/detailed.jsp?artid=2679&type=6&root=5&parent=5&cat=54
+http://www.science.mcmaster.ca/Biology/Harbour/SPECIES/BEETLES/HAMIL.HTM
+http://www.science.org.au/nova/075/075key.htm
+http://www.science.org.au/proceedings/emergingdiseases/geering.htm
+http://www.science.org.au/proceedings/emergingdiseases/wright.htm
+http://www.science.widener.edu/~bramer/chemconf/
+http://www.scienceagogo.com/news/19990926192456data_trunc_sys.shtml
+http://www.scienceblog.com/community/older/2003/C/2003892.html
+http://www.scienceblog.com/community/older/2003/G/20035450.html
+http://www.scienceblog.com/community/older/archives/L/1997/A/un970079.html
+http://www.scienceblog.com/community/older/archives/L/2000/A/un000504.html
+http://www.scienceblog.com/community/older/archives/L/2001/A/un010122.html
+http://www.scienceblog.com/community/older/archives/L/2001/A/un010131.html
+http://www.scienceblog.com/community/older/archives/L/2001/A/un010146.html
+http://www.scienceblog.com/community/older/archives/L/2001/B/un011014.html
+http://www.scienceblog.com/community/older/archives/L/2001/B/un011535.html
+http://www.scienceblog.com/community/older/archives/L/2002/B/un021756.html
+http://www.sciencecityyork.org.uk/DynNews/news_archive.cfm
+http://www.sciencecityyork.org.uk/community/
+http://www.sciencecityyork.org.uk/dynnews/News_Details.cfm?NewsID=150
+http://www.sciencedaily.com/
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?Operation=ItemLookup&ItemId=0130979538
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?Operation=ItemLookup&ItemId=020532178X
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?Operation=ItemLookup&ItemId=0425098478
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?Operation=ItemLookup&ItemId=0471271136
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?Operation=ItemLookup&ItemId=0471272353
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?Operation=ItemLookup&ItemId=0765703424
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?Operation=ItemLookup&ItemId=0807508683
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?Operation=ItemLookup&ItemId=0878148256
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?Operation=ItemSearch&SearchIndex=Books&Author=Hsiao-Wuen+Hon
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?myOperation=Collectible&ItemId=078173584X
+http://www.sciencedaily.com/cgi-bin/apf4/amazon_products_feed.cgi?myOperation=Used&ItemId=0670031550
+http://www.sciencedaily.com/news/mind_brain/
+http://www.sciencedaily.com/print.php?url=/releases/2005/01/050106092140.htm
+http://www.sciencedaily.com/releases/2000/09/000927144349.htm
+http://www.sciencedaily.com/releases/2000/11/001122182036.htm
+http://www.sciencedaily.com/releases/2003/11/031111064658.htm
+http://www.sciencedaily.com/releases/2005/01/050106092140.htm
+http://www.sciencedaily.com/releases/2005/02/050205092829.htm
+http://www.sciencedaily.com/releases/2005/02/050223135558.htm
+http://www.sciencedaily.com/releases/2005/04/050425205316.htm
+http://www.sciencedaily.com/releases/2005/05/050518175350.htm
+http://www.sciencedaily.com/releases/2005/06/050605234633.htm
+http://www.sciencedaily.com/releases/2005/06/050614000600.htm
+http://www.sciencedaily.com/releases/2005/06/050619122634.htm
+http://www.sciencedaily.com/upi/index.php?feed=Science&article=UPI-1-20050607-13155900-bc-us-wimax.xml
+http://www.sciencedaily.com/upi/index.php?topic=labour&subtopic=advanced+training
+http://www.sciencefictionblog.com/
+http://www.scienceforums.net/forums/showpost.php?p=124271&postcount=6
+http://www.sciencefriday.com/kids/sfkc20021227-2.html
+http://www.sciencefriday.com/kids/sfkc20030110-1.html
+http://www.sciencefriday.com/kids/sfkc20030530-2.html
+http://www.sciencefriday.com/kids/sfkc20031205-2.html
+http://www.sciencefriday.com/kids/sfkc20040123-1.html
+http://www.sciencefriday.com/kids/sfkc20040319-1.html
+http://www.sciencefriday.com/kids/sfkc20040416-2.html
+http://www.sciencefriday.com/kids/sfkc20040924-2.html
+http://www.scienceinafrica.co.za/2001/august/edge.htm
+http://www.scienceinafrica.co.za/2002/august/tea.htm
+http://www.scienceinafrica.co.za/newtech.htm
+http://www.scienceinafrica.co.za/scicrisis.htm
+http://www.sciencemag.org/cgi/content/full/291/5512/2318a
+http://www.sciencemag.org/cgi/content/full/304/5668/196a
+http://www.sciencemag.org/cgi/content/full/304/5668/197
+http://www.sciencemag.org/cgi/content/full/307/5708/364
+http://www.sciencemediacentre.org/press_releases/07-21-04_savioursiblings.htm
+http://www.sciencenetlinks.com/lessons.cfm?BenchmarkID=4&DocID=415
+http://www.sciencenetlinks.com/lessons.cfm?DocID=26
+http://www.sciencenetlinks.com/lessons.cfm?DocID=415
+http://www.sciencenetlinks.com/lessons_printable.cfm?DocID=404
+http://www.sciencenetlinks.org/lessons.cfm?BenchmarkID=5&DocID=411
+http://www.sciencenetlinks.org/lessons.cfm?BenchmarkID=8&DocID=27
+http://www.sciencenetlinks.org/lessons.cfm?BenchmarkID=8&DocID=28
+http://www.sciencenetlinks.org/resources_individual.cfm?DocID=346&Grade=6-8&Benchmark=5
+http://www.sciencenetlinks.org/resources_individual.cfm?DocID=357&Grade=9-12&Benchmark=4
+http://www.sciencenetlinks.org/sci_update.cfm?DocID=117
+http://www.sciencenetlinks.org/sci_update.cfm?DocID=163
+http://www.sciencenetlinks.org/sci_update.cfm?DocID=236
+http://www.sciencenews.org/20000219/bob1.asp
+http://www.sciencenews.org/20000826/bob1.asp
+http://www.sciencenews.org/20000923/bob1.asp
+http://www.sciencenews.org/20020209/bob8.asp
+http://www.sciencenews.org/articles/20000226/bob10.asp
+http://www.sciencenews.org/articles/20001014/food.asp
+http://www.sciencenews.org/articles/20001111/food.asp
+http://www.sciencenews.org/articles/20011020/mathtrek.asp
+http://www.sciencenews.org/articles/20030802/bob8.asp
+http://www.sciencenews.org/articles/20031213/bob9.asp
+http://www.sciencenews.org/articles/20040731/bob8.asp
+http://www.sciencenews.org/articles/20041016/bob10.asp
+http://www.sciencenews.org/articles/20041113/food.asp
+http://www.sciencenews.org/articles/20050305/food.asp
+http://www.sciencenews.org/pages/sn_arc98/12_12_98/mathland.htm
+http://www.sciencenews.org/sn_arch/11_23_96/bob1.htm
+http://www.sciencenewsforkids.org/articles/20031126/Feature1.asp
+http://www.sciencenewsforkids.org/articles/20040505/Feature1.asp
+http://www.sciencenewsforkids.org/articles/20041222/Note2.asp
+http://www.sciencenewsforkids.org/articles/20050105/Feature1.asp
+http://www.sciencentral.com/articles/view.php3?article_id=218392318&cat=1_3
+http://www.sciencentral.com/articles/view.php3?article_id=218392367&cat=1_5
+http://www.scienceonline.co.uk/energy/meals.html
+http://www.sciences.univ-nantes.fr/info/perso/permanents/khammaci/
+http://www.scienceteacher.org/otresources/interviews.htm
+http://www.scienceteacherprogram.org/biology/Paul00-3.html
+http://www.sciencewatch.com/july-aug2000/sw_july-aug2000_page1.htm
+http://www.sciencewatch.com/march-april99/sw_march-april99_page3.htm
+http://www.sciencewatch.com/sept-oct2002/sw_sept-oct2002_page8.htm
+http://www.scientifictrader.com/stock_trading_strategy.htm
+http://www.scientologyhandbook.org/sh4_3.htm
+http://www.scientwists.com/1_experiments_1.html
+http://www.scif.com/news-info/lc-bulletins/office_lighting.htm
+http://www.scifair.org/ideas/index.shtml
+http://www.scifi.com/battlestar/bts/hatch/
+http://www.scifi.com/scifiction/classics/classics_archive/moore/moore1.html
+http://www.scifi.com/scifiction/classics/classics_archive/sheckley/sheckley1.html
+http://www.scifi.com/terms/termsofservice.html
+http://www.scifi.com/transcripts/MorganWong.html
+http://www.sciforum.hu/index.php?image=update&content=upvizi
+http://www.sciforums.com/archive/index.php/t-42535
+http://www.sciforums.com/showthread.php?goto=lastpost&t=46144
+http://www.sciforums.com/showthread.php?t=30523&goto=nextnewest
+http://www.sciforums.com/showthread.php?t=40486&page=3
+http://www.sciforums.com/showthread.php?t=42535
+http://www.scim.org/curoct99.htm
+http://www.scip.org/05annual/sessionstechniques.asp
+http://www.sciquip.com/browses/AlphaBrowses/listingA.asp
+http://www.sciscoop.com/
+http://www.sciscoop.com/story/2002/12/31/73140/525
+http://www.sciscoop.com/story/2003/2/10/7368/86418
+http://www.sciscoop.com/story/2003/8/15/25038/4626
+http://www.sciscoop.com/story/2004/12/10/112538/62
+http://www.sciscoop.com/story/2004/3/19/63135/3192
+http://www.sciscoop.com/story/2004/9/6/203523/1781
+http://www.sciserv.org/isef/results/grnd2003.asp
+http://www.sciserv.org/isef/results/sao2003.asp
+http://www.scism.sbu.ac.uk/law/Section4/sec4/s4c3p3.html
+http://www.scitechdaily.com/
+http://www.scity.org/life_science_park.asp
+http://www.sciway.net/facts/
+http://www.scld.org.uk/
+http://www.scld.org.uk/index.asp
+http://www.scoba.us/resources/sac-economy.asp
+http://www.scom.com/ourservices.asp?id=190
+http://www.scoop.co.nz/
+http://www.scoop.co.nz/international.htm
+http://www.scoop.co.nz/mason/stories/BU0406/S00081.htm
+http://www.scoop.co.nz/mason/stories/BU0502/S00217.htm
+http://www.scoop.co.nz/mason/stories/HL0208/S00068.htm
+http://www.scoop.co.nz/mason/stories/HL0408/S00313.htm
+http://www.scoop.co.nz/stories/BU0506/S00255.htm
+http://www.scoop.co.nz/stories/BU0507/S00021.htm
+http://www.scoop.co.nz/stories/CU0210/S00198.htm
+http://www.scoop.co.nz/stories/CU0506/S00068.htm
+http://www.scoop.co.nz/stories/CU0506/S00141.htm
+http://www.scoop.co.nz/stories/HL0205/S00091.htm
+http://www.scoop.co.nz/stories/HL0307/S00064.htm
+http://www.scoop.co.nz/stories/HL0307/S00078.htm
+http://www.scoop.co.nz/stories/HL0411/S00083.htm
+http://www.scoop.co.nz/stories/HL0505/S00325.htm
+http://www.scoop.co.nz/stories/HL0506/S00146.htm
+http://www.scoop.co.nz/stories/HL0506/S00335.htm
+http://www.scoop.co.nz/stories/PA0501/S00016.htm
+http://www.scoop.co.nz/stories/PA0502/S00528.htm
+http://www.scoop.co.nz/stories/PA0506/S00133.htm
+http://www.scoop.co.nz/stories/PA0506/S00295.htm
+http://www.scoop.co.nz/stories/PA0506/S00366.htm
+http://www.scoop.co.nz/stories/PO0203/S00062.htm
+http://www.scoop.co.nz/stories/WO0506/S00482.htm
+http://www.scoop0901.net/AWAKE/Legal/ClarkstonRRcrash/index.shtml
+http://www.scoopy.com/jamesjoyceswomen.htm
+http://www.scooterhelp.com/genmaintain/crankcase.oil.html
+http://www.scopenews.org/spring01/e-02spr.htm
+http://www.scopereviews.com/begin.html
+http://www.scopereviews.com/clash2.html
+http://www.scorpiusdigital.com/auth1.html
+http://www.scorps.com/am.html
+http://www.scot-borders.co.uk/stcuthbertsway/harestanes_kirkyetholm.asp
+http://www.scot-borders.co.uk/stcuthbertsway/melrose_harestanes.asp
+http://www.scot-borders.co.uk/stcuthbertsway/walkingholidays.htm
+http://www.scotchproductions.com/scottish-poet/bio.html
+http://www.scotclans.com/history/1468_orkney.html
+http://www.scotclans.com/history/1879_tay.html
+http://www.scotcourts.gov.uk/opinions/125_2000.html
+http://www.scotcourts.gov.uk/opinions/2005CSOH8.html
+http://www.scotcourts.gov.uk/opinions/247_00.html
+http://www.scotcourts.gov.uk/opinions/LJC3011.html
+http://www.scotcourts.gov.uk/opinions/P798.html
+http://www.scotcourts.gov.uk/opinions/XA99.html
+http://www.scotcourts.gov.uk/opinions/XC458.html
+http://www.scotcourts.gov.uk/opinions/XC676_03.html
+http://www.scotcourts.gov.uk/opinionsv/xa136_01.html
+http://www.scotland-hotels.com/walking.htm
+http://www.scotland-legislation.hmso.gov.uk/legislation/scotland/ssi1999/19990061.htm
+http://www.scotland-legislation.hmso.gov.uk/legislation/scotland/ssi2002/20020528.htm
+http://www.scotland-legislation.hmso.gov.uk/legislation/scotland/ssi2004/20040076.htm
+http://www.scotland-sdma.org.uk/
+http://www.scotland.gov.uk/clickthinking/clikt-04.htm
+http://www.scotland.gov.uk/consultations/justice/porhr-00.asp
+http://www.scotland.gov.uk/consultations/transport/rucccc-00.asp
+http://www.scotland.gov.uk/consultations/transport/rucccc-02.asp
+http://www.scotland.gov.uk/consultations/transport/stag-18.asp
+http://www.scotland.gov.uk/consultations/transport/stag-30.asp
+http://www.scotland.gov.uk/cru/kd01/blue/eval03.htm
+http://www.scotland.gov.uk/cru/kd01/orange/sdsp-08.asp
+http://www.scotland.gov.uk/cru/resfinds/drf05-00.htm
+http://www.scotland.gov.uk/cru/resfinds/hdf6-00.asp
+http://www.scotland.gov.uk/cru/resfinds/lsf10-00.htm
+http://www.scotland.gov.uk/cru/resfinds/lsf44-00.asp
+http://www.scotland.gov.uk/deleted/library3/education/sqss-04.asp
+http://www.scotland.gov.uk/library/documents-w1/spmai-02.htm
+http://www.scotland.gov.uk/library/documents-w10/ersa-17.htm
+http://www.scotland.gov.uk/library/documents-w6/edwp-09.htm
+http://www.scotland.gov.uk/library/documents-w6/fiis-01.htm
+http://www.scotland.gov.uk/library/documents-w8/pttp-13.htm
+http://www.scotland.gov.uk/library/documents-w8/rec-08.htm
+http://www.scotland.gov.uk/library/ict/append-section4.htm
+http://www.scotland.gov.uk/library/sas/sa02-32.htm
+http://www.scotland.gov.uk/library2/doc01/taco-05.htm
+http://www.scotland.gov.uk/library2/doc03/iim-02.htm
+http://www.scotland.gov.uk/library2/doc15/sim-05.asp
+http://www.scotland.gov.uk/library3/agri/aaps-06.asp
+http://www.scotland.gov.uk/library3/education/fcsr-06.asp
+http://www.scotland.gov.uk/library3/education/lacr-04.asp
+http://www.scotland.gov.uk/library3/education/mwki-08.asp
+http://www.scotland.gov.uk/library3/health/csac-08.asp
+http://www.scotland.gov.uk/library3/housing/edfp-04.asp
+http://www.scotland.gov.uk/library3/housing/edfp-07.asp
+http://www.scotland.gov.uk/library3/housing/edfp-09.asp
+http://www.scotland.gov.uk/library3/social/sjaip-18.asp
+http://www.scotland.gov.uk/library3/social/sjan-00.asp
+http://www.scotland.gov.uk/library4/JD/CL/00018329.aspx
+http://www.scotland.gov.uk/library5/finance/ser03-13.asp
+http://www.scotland.gov.uk/library5/lifelong/alls-03.asp
+http://www.scotland.gov.uk/library5/planning/saqprf-19.asp
+http://www.scotland.gov.uk/nationalculturalstrategy/docs/cult-09.asp
+http://www.scotland.gov.uk/news/2000/08/se2345.asp
+http://www.scotland.gov.uk/news/releas99_8/se0417.htm
+http://www.scotland.gov.uk/planning/award/9901.asp
+http://www.scotland.org.uk/Web_Links+index-req-viewlink-cid-317-orderby-hitsA.html
+http://www.scotland.org.uk/Web_Links+index-req-viewlink-cid-317-orderby-ratingA.html
+http://www.scotlandforvisitors.com/wanlockhead.php
+http://www.scotlandoffice.gov.uk/our-communications/speech.php?id=6
+http://www.scotlandonline.com/heritage/cookery_december_recipe_two.cfm
+http://www.scotlandonline.com/heritage/heritage_gscots_detail.cfm?id=280
+http://www.scotlandonline.com/heritage/main_feature.cfm?feature_id=35&site_id=15&feature_cat_id=6
+http://www.scotlandonline.com/outdoors/columista.cfm?feature_cat_id=27&selectedfeature_id=122
+http://www.scotlandonline.com/outdoors/news_story.cfm?story_id=91174&news_type_id=640
+http://www.scotlandonline.com/outdoors/template_files/iym_conference.cfm
+http://www.scotlandonline.com/outdoors/walkabout_week35/index.cfm
+http://www.scotlandroyalty.org/
+http://www.scotlands-footprint.com/launch.htm
+http://www.scotlandspast.org/psychocyclist/SusLinks.cfm
+http://www.scotlandspeople.gov.uk/content/help/index.aspx?r=551&427
+http://www.scotlandspeople.gov.uk/index.php?area=content/articles/article&id=152
+http://www.scotlink.com/scottish-referendum/political-parties-scotland.htm
+http://www.scots-online.org/grammar/whits.htm
+http://www.scotshistoryonline.co.uk/sutherla.html
+http://www.scotsindependent.org/
+http://www.scotsindependent.org/2001/010817/
+http://www.scotsindependent.org/brown/adam_dunnett.htm
+http://www.scott.lib.in.us/history.htm
+http://www.scottandrew.com/cgi-bin/mt/mt-new-comments.cgi?entry_id=759
+http://www.scottish-country-cottages.co.uk/ccs?action=xsl&view=xsl&xsltId=allabout
+http://www.scottish-enterprise.com/dumfriesandgalloway/
+http://www.scottish-enterprise.com/feedback.htm
+http://www.scottish-enterprise.com/lanarkshire
+http://www.scottish-enterprise.com/lanarkshire/
+http://www.scottish-enterprise.com/sedotcom_home/about_se/local_enterprise_companies/borders/borders-local-initiatives/about-bordersportfolio.htm
+http://www.scottish-enterprise.com/sedotcom_home/about_se/local_enterprise_companies/dumfriesandgalloway.htm
+http://www.scottish-enterprise.com/sedotcom_home/news-se/news-fullarticle.htm?articleid=113218&
+http://www.scottish-enterprise.com/sedotcom_home/services-to-business/going-online/settingupawebsite.htm?siblingtoggle=1
+http://www.scottish-enterprise.com/sedotcom_home/stn/scottishtechnology/scottishtechnologynews-backissues/scottishtechnology_jul04/scottishtechnologynews-features_jul04.htm
+http://www.scottish-heavies.com/TheRules_files/Sect1_3.htm
+http://www.scottish-history.com/origins.shtml
+http://www.scottish-history.com/stirlingbridge2.shtml
+http://www.scottish.parliament.uk/business/businessBulletin/bb-02/bb-01-28k.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-02/bb-02-04k.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-02/bb-02-06k.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-02/bb-02-11k.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-02/bb-02-12a.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-02/bb-03-26e.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-02/bb-05-21e.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-02/bb-11-27e.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-02/bb-12-09e.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-02/bb-12-10a.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-03/bb-07-21e.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-04/bb-01-07a.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-04/bb-02-25a.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-04/bb-03-10a.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-04/bb-04-01a.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-04/bb-04-19e.htm
+http://www.scottish.parliament.uk/business/businessBulletin/bb-04/bb-09-08e.htm
+http://www.scottish.parliament.uk/business/chamber/mop-00/mop-03-16.htm
+http://www.scottish.parliament.uk/business/chamber/mop-99/mop-08-06c.htm
+http://www.scottish.parliament.uk/business/committees/communities/or-04/co04-2202.htm
+http://www.scottish.parliament.uk/business/committees/enterprise/inquiries/bg/16-EntrepreneurExchange.htm
+http://www.scottish.parliament.uk/business/committees/enterprise/inquiries/bg/34-RSC.htm
+http://www.scottish.parliament.uk/business/committees/enterprise/inquiries/bg/50-ScottishTechForum.htm
+http://www.scottish.parliament.uk/business/committees/enterprise/inquiries/rei/ec04-reis-craig,david.htm
+http://www.scottish.parliament.uk/business/committees/environment/or-04/ra04-0202.htm
+http://www.scottish.parliament.uk/business/committees/equal/or-04/eo04-0502.htm
+http://www.scottish.parliament.uk/business/committees/europe/mop-04/eumop04-0928.htm
+http://www.scottish.parliament.uk/business/committees/europe/or-04/eu04-0102.htm
+http://www.scottish.parliament.uk/business/committees/europe/or-04/eu04-0202.htm
+http://www.scottish.parliament.uk/business/committees/health/inquiries/wkf-nhs/he-wkf-56.htm
+http://www.scottish.parliament.uk/business/committees/health/or-04/he04-1502.htm
+http://www.scottish.parliament.uk/business/committees/historic/ad-fish/or-03/sf03-0102.htm
+http://www.scottish.parliament.uk/business/committees/historic/europe/or-01/eu01-1402.htm
+http://www.scottish.parliament.uk/business/committees/historic/europe/or-03/eu03-0102a.htm
+http://www.scottish.parliament.uk/business/committees/historic/europe/or-03/eu03-0702a.htm
+http://www.scottish.parliament.uk/business/committees/historic/justice1/or-01/j101-0802.htm
+http://www.scottish.parliament.uk/business/committees/historic/petitions/or-00/pu00-0902.htm
+http://www.scottish.parliament.uk/business/committees/historic/petitions/or-01/pu01-0302.htm
+http://www.scottish.parliament.uk/business/committees/historic/petitions/or-01/pu01-1402.htm
+http://www.scottish.parliament.uk/business/committees/historic/subleg/or-01/su01-0302.htm
+http://www.scottish.parliament.uk/business/committees/historic/subleg/or-03/su03-1002a.htm
+http://www.scottish.parliament.uk/business/committees/historic/x-rural/or-00/ra00-1002.htm
+http://www.scottish.parliament.uk/business/committees/historic/x-rural/or-02/ra02-2302.htm
+http://www.scottish.parliament.uk/business/committees/historic/x-transport/or-00/tr00-3002.htm
+http://www.scottish.parliament.uk/business/committees/historic/x-transport/or-00/tr00-3102.htm
+http://www.scottish.parliament.uk/business/committees/historic/x-transport/or-02/tr02-1702.htm
+http://www.scottish.parliament.uk/business/committees/justice1/or-04/j104-0802.htm
+http://www.scottish.parliament.uk/business/committees/justice2/or-04/j204-3502.htm
+http://www.scottish.parliament.uk/business/committees/justice2/reports-05/j2r05-03-01.htm
+http://www.scottish.parliament.uk/business/officialReports/meetingsParliament/archive/or-00/or080402.htm
+http://www.scottish.parliament.uk/business/officialReports/meetingsParliament/or-01/sor0524-02.htm
+http://www.scottish.parliament.uk/business/officialReports/meetingsParliament/or-01/sor1220-02.htm
+http://www.scottish.parliament.uk/business/officialReports/meetingsParliament/or-02/sor0307-02.htm
+http://www.scottish.parliament.uk/business/officialReports/meetingsParliament/or-02/sor0328-02.htm
+http://www.scottish.parliament.uk/business/officialReports/meetingsParliament/or-04/sor0318-02.htm
+http://www.scottish.parliament.uk/business/officialReports/meetingsParliament/or-04/sor1202-02.htm
+http://www.scottish.parliament.uk/business/officialReports/meetingsParliament/or-99/or010704.htm
+http://www.scottish.parliament.uk/business/officialReports/meetingsParliament/or-99/or010705.htm
+http://www.scottish.parliament.uk/business/officialReports/meetingsParliament/or-99/or021002.htm
+http://www.scottish.parliament.uk/business/pqa/wa-02/wa1224.htm
+http://www.scottish.parliament.uk/business/pqa/wa-03/wa0701.htm
+http://www.scottish.parliament.uk/business/pqa/wa-03/wa1021.htm
+http://www.scottish.parliament.uk/business/pqa/wa-99/wa0615.htm
+http://www.scottish.parliament.uk/business/research/subject/education.htm
+http://www.scottish.parliament.uk/corporate/anrep-accts/spar/ar-01/parlar01-01.htm
+http://www.scottish.parliament.uk/corporate/elu/reports-01/elu-r190301.html
+http://www.scottish.parliament.uk/corporate/elu/reports-02/elu-r070102.html
+http://www.scottish.parliament.uk/corporate/history/whisp/whisp-04/wh039-04.htm
+http://www.scottish.parliament.uk/factfiles/ff5.htm
+http://www.scottish.parliament.uk/msp/MSPAllowances/
+http://www.scottish.parliament.uk/nmCentre/news/news-01/pa01-094.htm
+http://www.scottish.parliament.uk/nmCentre/news/news-comm-01/cent01-002.htm
+http://www.scottish.parliament.uk/nmCentre/news/news-comm-05/cent05-003.htm
+http://www.scottish.parliament.uk/vli/holyrood/building/queensberryHouse.htm
+http://www.scottish.parliament.uk/vli/visitingHolyrood/wtspm/wtspm-00.htm
+http://www.scottish.parliament.uk/vli/visitingHolyrood/yvspe/yvspe-00.htm
+http://www.scottisharts.org.uk/1/artsinscotland/literature/features/shortstory.aspx
+http://www.scottishbaptist.org.uk/main/public_issues/20040414_sexhealth.html
+http://www.scottishbooksellers.com/acatalog/Flora.html
+http://www.scottishbooksellers.com/acatalog/General_History.html
+http://www.scottishchambers.org.uk/page.asp?page=21
+http://www.scottishchristian.com/churches/catholic.shtml
+http://www.scottishcrofters.com/campground.htm
+http://www.scottishexecutive.gov.uk/library5/finance/sern04-09.asp
+http://www.scottishgatherings.co.uk/page152.html
+http://www.scottishgolfclassics.com/speyside/event_2002.htm
+http://www.scottishgreens.org.uk/news/2004/august/230804antiwmd.htm
+http://www.scottishgreens.org.uk/news/2004/august/230804wave.htm
+http://www.scottishgreens.org.uk/orgtargetsbill/oftb_eg.htm
+http://www.scottishgreens.org.uk/site/id/4525/title/Top_Five_Reasons_Not_To_Vote_New_Labour.html
+http://www.scottishintensivecare.org.uk/sics_newsletter_2000.htm
+http://www.scottishjobs.com/jobdesc.asp?id=17375&JMID=246&RefPage=Member
+http://www.scottishjobs.com/resource_centre/individual_article.asp?ArtID=413&SID=7
+http://www.scottishjobs.com/resource_centre/individual_article.asp?ArtID=682&SID=4
+http://www.scottishlabour.org.uk/mcconnellspeech2003/
+http://www.scottishlaw.org.uk/scotlaw/newspapers.html
+http://www.scottishmediamonitor.com/articles2.cfm?ID=64
+http://www.scottishmediamonitor.com/articles2.cfm?ID=89
+http://www.scottishmediamonitor.com/features2.cfm?ID=14
+http://www.scottishmuseums.org.uk/members_services/registration/Intro_to_reg.asp
+http://www.scottishombudsman.org.uk/put_things_right/
+http://www.scottishprintarchive.org/master_printers1964_6.html
+http://www.scottishproducts.com/SPDACustomisedGifts.htm
+http://www.scottishproducts.com/SPDAToysModelsCollectibles.htm
+http://www.scottishrenewables.com/newsitem.asp?id=38
+http://www.scottishrenewables.com/newsitem.asp?id=50
+http://www.scottishrenewables.com/newsitem.asp?id=54
+http://www.scottishrugby.org/sites/Ayr-RFC/news.cfm?action=combiDetail&newsid=12335
+http://www.scottishsocialistparty.org/conference/conf04/sun_motions03.html
+http://www.scottishsocialistvoice.net/pakistan/Pakistan2.html
+http://www.scottishspca.org/campaign/seasonal.html
+http://www.scottishsport.co.uk/othersports/lacrosse.htm
+http://www.scottishtories.org.uk/conf04-pduncan.html
+http://www.scottishtorymeps.org.uk/stevenson/issues/speeches/archive_2003/speech18.htm
+http://www.scottishtours.co.uk/static/Terms%20and%20Conditions.htm
+http://www.scottishwater.co.uk/pls/portal/url/item/EB918B4A891047C4E0340003BA475CA3
+http://www.scottishweddingsonline.co.uk/?module=products&showcat=57&showproduct=5
+http://www.scottishwidows.co.uk/nfshow.wpl/1056
+http://www.scottlondon.com/insight/scripts/calthorpe.html
+http://www.scottmccloud.com/home/essays/2003-09-micros/micros.html
+http://www.scottsaustralia.com.au/defender.htm
+http://www.scottsdaleaz.gov/design/AreaPlans/CAPs/DynFthls/Goals&Strategies.asp
+http://www.scottsdaleaz.gov/events/default.asp
+http://www.scottsdaleaz.gov/water/conservation/qa.asp
+http://www.scotusblog.com/movabletype/archives/2005/06/court_upholds_p.html
+http://www.scotusblog.com/movabletype/archives/2005/06/does_anyone_dou.html
+http://www.scotweb.co.uk/underthekilt/haggis.html
+http://www.scoutbase.org.uk/6to25/ppoints/pp-2003-09.htm
+http://www.scouter.com/forums/viewThread.asp?threadID=81900
+http://www.scouter.com/forums/viewThread.asp?threadID=82475
+http://www.scoutingmagazine.org/issues/0305/d-lett.html
+http://www.scoutingresources.org.uk/badge_scienceexp04.html
+http://www.scoutscan.com/rovering/ch1.html
+http://www.scp.nl/english/publications/summaries/9037701299.html
+http://www.scpronet.com/point/point/letters.html
+http://www.scrapbookscrapbook.com/DAC-ART/tropical-linens-tropical-interiors.html
+http://www.scrappersfriend.com/
+http://www.scrappleface.com/
+http://www.scrappleface.com/MT/archives/001906.html
+http://www.scrappleface.com/cgi-bin/mt-comments.cgi?entry_id=2220
+http://www.scre.ac.uk/resreport/rr107/2.html
+http://www.scre.ac.uk/rie/nl44/nl44thomson.html
+http://www.scre.ac.uk/rie/nl67/nl67plowman.html
+http://www.scre.ac.uk/spotlight/spotlight43.html
+http://www.scre.ac.uk/spotlight/spotlight54.html
+http://www.scre.ac.uk/spotlight/spotlight67.html
+http://www.screams-of-terror.com/teenie.asp
+http://www.screenit.com/movies/2002/big_trouble.html
+http://www.screenit.com/movies/2004/vanity_fair.html
+http://www.screenit.com/movies/2004/walking_tall.html
+http://www.screenonline.org.uk/people/id/449654/
+http://www.screenpages.com/archives/000215.html
+http://www.screenpages.com/archives/000231.html
+http://www.screenplayers.net/robertmckee.html
+http://www.screenselect.co.uk/visitor/product_detail.html?product_id=1428
+http://www.screentalk.biz/art003.htm
+http://www.screwgravity.com/tutorials/catleap_standing/tutorial_catleap_standing.htm
+http://www.scribble.clara.net/disabled.htm
+http://www.scripophily.net/shipandcruis.html
+http://www.scripps.edu/newsandviews/e_20050606/romesberg.html
+http://www.scripps.edu/~rnepomuc/interests.html
+http://www.scripps.ohiou.edu/mediahistory/mhmjour4-1.htm
+http://www.scripps.ohiou.edu/producer/newjobs.htm
+http://www.scripps.ohiou.edu/wjmcr/vol03/3-4a-n.htm
+http://www.scriptblaster.com/
+http://www.scriptmag.com/earticles/earticle.php?358
+http://www.scriptmag.com/earticles/earticle.php?375
+http://www.scripts4webmasters.com/follow-up-autoresponder-pro/features.shtml
+http://www.scriptwritingsecrets.com/Show_it.htm
+http://www.scrum.com/6nations/2003/scoreboards/engvfra/commentary.htm
+http://www.scrum.com/6nations/2004/stats/default.asp
+http://www.scrum.com/news/newzealand_default.asp
+http://www.scrum.com/tours/2004/stats/default.asp
+http://www.scs.cs.nyu.edu/~mfreed/adventures/Northeast-CrawfordNotch.html
+http://www.scs.northwestern.edu/ugrad/tuition/financial_aid.cfm
+http://www.scs.org/scsarchive/getDoc.cfm?id=1951
+http://www.scs.uiuc.edu/~skypen/Pia/mark.html
+http://www.scseagrant.org/events/events_arch_00.htm
+http://www.scseagrant.org/insidesg/insidesg_stratplan.htm
+http://www.scseagrant.org/library/library_coaher_sum01.htm
+http://www.scselfservice.org/fam/custvist.htm
+http://www.scselfservice.org/probate/adult/lpsconservator.htm
+http://www.scsmallbiz.com/sections.php?Section=Financial
+http://www.scss.com.au/family/andrew/camera/decision/
+http://www.scstatehouse.net/sess116_2005-2006/bills/637.htm
+http://www.scsuscholars.com/2005_05_01_scsu-scholars_archive.html
+http://www.scteachers.org/cert/nbcert.cfm
+http://www.scu.edu.au/schools/gcm/ar/arp/grounded.html
+http://www.scu.edu.au/schools/vbs/index.php?page_id=25&menu=12_33
+http://www.scuba-doc.com/Midearbt.html
+http://www.scubamom.com/travels/britain/wales.htm
+http://www.sculptor.bc.ca/pages/hints.html
+http://www.sculpture.org/documents/scmag04/julaug04/spiraljetty/julaug04_spiraljetty.htm
+http://www.scvas.org/keepcats.html
+http://www.scvmed.org/channel/0,4770,chid%253D58953%2526sid%253D10710,00.html
+http://www.scvo.org.uk/funding/strategic_funding_issues/briefing_june_2000.htm
+http://www.scvo.org.uk/pias/lobbying/formulating_campaign_strategy.html
+http://www.scvo.org.uk/policy/new_politics/local_government/community_budgeting.htm
+http://www.scwf.org/articles/index.php?view=392
+http://www.scwf.org/articles/index.php?view=395
+http://www.sd-commission.gov.uk/
+http://www.sd-research.org.uk/sdrguide/env-cost-benefit.html
+http://www.sd5.k12.mt.us/kjhs/WritingCenter/storylikewind/story.htm
+http://www.sdaa.net/
+http://www.sdbar.org/public/consumers/property.htm
+http://www.sdbonline.org/fly/aimorph/glia.htm
+http://www.sdbonline.org/fly/neural/optomt2b.htm
+http://www.sdbonline.org/fly/newgene/sina4.htm
+http://www.sdc.gc.ca/asp/gateway.asp?hr=/en/cs/sp/edd/reports/1997-000367/page05.shtml&hs=cpr
+http://www.sdc.gc.ca/asp/gateway.asp?hr=en/isp/pub/oas/gismain.shtml&hs=ozs
+http://www.sdc.gc.ca/en/cs/comm/sd/ministers/minister/speech/2005/050303.shtml
+http://www.sdc.gc.ca/en/cs/sp/arb/CONTACT/contact_us.shtml
+http://www.sdc.gc.ca/en/isp/oas/oasoverview.shtml
+http://www.sdc.gc.ca/en/isp/pub/cpp/stayntouch-04.shtml
+http://www.sdc.gc.ca/en/isp/pub/cpp/stayntouch-05.shtml
+http://www.sdcity.edu/degrees/associate_degree.asp
+http://www.sdcity.edu/worldcultures/Defaulttxt.asp
+http://www.sdcitybeat.com/article.php?id=136
+http://www.sdcitybeat.com/article.php?id=658
+http://www.sdcn.org/webworks/strategies/knowing.htm
+http://www.sdearthtimes.com/et1296/et1296s1.html
+http://www.sdfparty.org/english/speeches/368.php
+http://www.sdgfp.info/Wildlife/hunting/PrairieDog.htm
+http://www.sdi.qld.gov.au/dsdweb/v3/guis/templates/content/gui_cue_menu.cfm?id=2794
+http://www.sdm.buffalo.edu/news/20011214_students.html
+http://www.sdma.com/sedgwick.updates/articles/insurance-bad-faith/?upd_art_ins_051503.html
+http://www.sdmagazine.com/documents/s=818/sdm0305h/
+http://www.sdnpa.org/
+http://www.sdpi.org/help/articles_in_press/Aug2003articles_mohsins.htm
+http://www.sdreader.com/published/2004-11-04/sheep.html
+http://www.sdrm.org/faqs/brakes.html
+http://www.sdrm.org/faqs/brakes/history/
+http://www.sdrotary.org/home.htm
+http://www.sdsc.edu/GatherScatter/GSsummer96/gaggiotti.html
+http://www.sdtimes.com/cols/javawatch_114.htm
+http://www.sdtta.org/nika-sunday_paper_4-13-03.html
+http://www.sea-job.com/employeur4b.htm
+http://www.sea.co.uk/marine_bibliography.html
+http://www.seabass.co.uk/evo_techshop.htm
+http://www.seacentr.org/programs/special_events%20.html
+http://www.seacoastonline.com/news/02162005/news/64766.htm
+http://www.seacoastonline.com/news/exeter/05062005/currents/41005.htm
+http://www.seacoastonline.com/news/yorkweekly/06152005/business/47734.htm
+http://www.seacottage.com/AGENTS/agents.htm
+http://www.seacrestmanor.com/Debrett.html
+http://www.seacritters.com/
+http://www.seacritters.com/teachers.html
+http://www.seacritters.com/tteachers.html
+http://www.seafish.org/whatsnew/current.asp?p=ce338
+http://www.seafish.org/whatsnew/current.asp?p=ce409
+http://www.seafoodintelligence.com/EditModule.aspx?tabid=151&def=Terms
+http://www.seaforce.com/sof/negodemo.htm
+http://www.seafriends.org.nz/oceano/kaipara.htm
+http://www.seagate.com/support/disc/drivers/diskmanager_eula.html
+http://www.seagoville.net/seagopinions.htm
+http://www.seagrantnews.org/education/edu_case.html
+http://www.seagrantnews.org/news/19990927_pfiesteria.html
+http://www.seagulllighting.com/
+http://www.seairth.com/blog/industry
+http://www.seak.com/semlegficwrit05ficwritconfidential.htm
+http://www.seakayak.co.nz/sea-kayak-tours/on_2dkw.htm
+http://www.sean.org.uk/ectqu/ectqu8.php
+http://www.seanational.com.au/courseDetail_04.jsp?courseID=15409
+http://www.seanbiggerstaff.com/
+http://www.seanchaibooks.com/ourlinks.htm
+http://www.seangabb.co.uk/flcomm/flc007.htm
+http://www.seanmattison.com/dreamcatcher/2004_06_01_archives.php
+http://www.seanstewart.org/novels/thenightwatch/extract/
+http://www.seaofcortez.org/
+http://www.seaofcortez.org/Log8.html
+http://www.seaoftranquility.org/article.php?sid=292&mode=thread&order=0&thold=0
+http://www.searay.com/terms_of_use.asp?tab=0&p=y&
+http://www.searaymusic.com/
+http://www.search-engine-lists.com/marktwain/theoretical-morals.html
+http://www.search-institute.org/assets/infants.html
+http://www.search-institute.org/assets/preschoolers.html
+http://www.search-institute.org/assets/toddlers.html
+http://www.search.eb.com/elections/pri/Q00099.html
+http://www.searchengineforums.com/apps/searchengine.forums/action::thread/thread::1104877057/forum::seo-101/
+http://www.searchengineforums.com/apps/webmaster.forums/action::thread/thread::1104877057/forum::seo-101/
+http://www.searchengineforums.com/apps/webmaster.forums/action::thread/thread::877/forum::keyword-research/
+http://www.searchengineguide.com/lloyd/2003/1125_bl1.html
+http://www.searchengineposition.com/info/netprofit/adbudget1.asp
+http://www.searchenginepromotionhelp.com/m/articles/search-engine-problems/google-ban-1.php
+http://www.searchenginewatch.com/webmasters/meta.html
+http://www.searchgodsword.org/com/bcc/view.cgi?book=1th&chapter=005
+http://www.searchgodsword.org/com/bcc/view.cgi?book=php&chapter=002
+http://www.searchgodsword.org/his/ad/sch/view.cgi?book=1&chapter=17
+http://www.searchlores.org/london/lea2tra.htm
+http://www.searchlores.org/schopeng.htm
+http://www.searchmusicnetwork.com/Bands_and_Artists_3_30_Odd_Foot_of_Grunts.html
+http://www.searchmusicnetwork.com/Vocal_Courses_and_Lessons.html
+http://www.searchsystems.net/list.php?nid=17
+http://www.searchu.co.uk/directory/G/generally_02.html
+http://www.searchu.co.uk/directory/L/light_04.html
+http://www.searchu.co.uk/directory/S/significant_02.html
+http://www.searchu.co.uk/search.php?q=even&o=10
+http://www.searchwhateveraustralia.com.au/contact.htm
+http://www.searchword.org/tr/triad.html
+http://www.searlescholars.net/people/1982/parham.html
+http://www.searls.com/ds_open_letter.html
+http://www.seaservices.com/times_article.html
+http://www.seasideawards.org.uk/blue5.asp
+http://www.seaslugteam.com/
+http://www.seasonsnaturaltoys.com/dolls/little_families/seasons_families.htm
+http://www.seaspower.com/StrategicOverview.htm
+http://www.seasva.gwu.edu/programs/acc_telecom/indexc15.htm
+http://www.seat61.com/Europe.htm
+http://www.seat61.com/India.htm
+http://www.seat61.com/UKtravel.htm
+http://www.seattle-chat.com/modules.php?name=News&file=article&sid=40
+http://www.seattleairgear.com/kl.htm
+http://www.seattleartsupply.com/customerservice.asp
+http://www.seattlecenter.com/transportation/Monthly.asp
+http://www.seattlechildrens.org/child_health_safety/health_safety_resources/cc_SearchResults.asp?KeySubject=16&Keyword=291
+http://www.seattlefirstbaptist.org/Default.asp?Header=Adult%20Education&Locator=Education_Adult
+http://www.seattleopera.org/wagner/seattle/
+http://www.seattlerandonneur.org/member/SIR_rider_expectations.html
+http://www.seattlerandonneur.org/newsletters/2004/april/
+http://www.seattleredcross.org/VolunteerNow/opportunities.htm
+http://www.seattleredcross.org/afes/
+http://www.seattleredcross.org/international/language/
+http://www.seattlewcswing.org/competition_rules.htm
+http://www.seattleweekly.com/features/0018/features-downey.shtml
+http://www.seattleweekly.com/features/0410/040310_news_blackbox.php
+http://www.seaturtle.org/mtn/jobs/
+http://www.seaturtle.org/mtn/jobs/40GR345.shtml
+http://www.seaturtles.org/press_release2.cfm?pressID=74
+http://www.seaturtles.org/prog_camp2.cfm?campaignID=20
+http://www.seav.vic.gov.au/buildings/firstrate/index.asp
+http://www.seav.vic.gov.au/renewable_energy/wind/
+http://www.seav.vic.gov.au/sustainable_energy_challenge/barriers.asp
+http://www.seawatch.org/solution/coalition_sea_of_cortez.php
+http://www.seaweb.org/background/safina1.html
+http://www.seaweb.org/programs/swordfish/4.26.99release.html
+http://www.seaworld.com.au/education/project_info_index.cfm?project_id=12
+http://www.seaworld.com.au/visitor_info/faq.cfm
+http://www.sebastianholsclaw.com/archives/2003_10.html
+http://www.sebastianholsclaw.com/archives/2004_06.html
+http://www.sebiology.org/pageview.asp?S=7&id=242
+http://www.sec.gov/divisions/corpfin/guidance/cfbcafaq.htm
+http://www.sec.gov/divisions/marketreg/mr-noaction/sab051004.htm
+http://www.sec.gov/info/accountants/staffletters/dtt042704.htm
+http://www.sec.gov/interps/telephone/phonesupplement4.htm
+http://www.sec.gov/investor/pubs/roadmap/habit.htm
+http://www.sec.gov/investor/pubs/toolkit.htm
+http://www.sec.gov/litigation/admin/34-42392.htm
+http://www.sec.gov/litigation/aljdec/id268lam.htm
+http://www.sec.gov/litigation/opinions/34-41755.htm
+http://www.sec.gov/news/speech/spch020405skg.htm
+http://www.sec.gov/news/speech/spch021104smc.htm
+http://www.sec.gov/news/speech/spch022504pfr.htm
+http://www.sec.gov/news/speech/spch040605whd-nms.htm
+http://www.sec.gov/news/speech/spch042303lar.htm
+http://www.sec.gov/news/speech/spch042804whd.htm
+http://www.sec.gov/news/speech/spch060204whd.htm
+http://www.sec.gov/news/speech/spch060804alb.htm
+http://www.sec.gov/news/speech/spch101703iosco.htm
+http://www.sec.gov/news/speech/spch102604-1psa.htm
+http://www.sec.gov/news/speech/spch120604cag.htm
+http://www.sec.gov/news/speech/spch121103gaf.htm
+http://www.sec.gov/news/speech/spch453.htm
+http://www.sec.gov/rules/final/34-50781.htm
+http://www.sec.gov/rules/pcaob/34-50077.htm
+http://www.sec.gov/rules/proposed/33-8170.htm
+http://www.sec.gov/rules/proposed/33-8287.htm
+http://www.sec.gov/rules/proposed/s71903/ccc100803.htm
+http://www.sec.gov/rules/proposed/s71903/ccs100803.htm
+http://www.sec.gov/rules/proposed/s74502/blake1.htm
+http://www.sec.gov/rules/sro/34-48787.htm
+http://www.sec.noaa.gov/Data/notices.html
+http://www.sec.noaa.gov/primer/primer.html
+http://www.sec.state.ma.us/pre/presea/sealhis.htm
+http://www.sec.state.ma.us/sct/sctgbla/gblaidx.htm
+http://www.secf.org/acp/INFO-U~3.HTM
+http://www.secinfo.com/dqwhf.5f891.htm
+http://www.secondaryenglish.com/bridgingenglish.html
+http://www.secondaryenglish.com/moving%20on.htm
+http://www.secondbreakfast.net/
+http://www.secondbreakfast.net/archives/001915.html
+http://www.secondharvest.org/site_content.asp?s=97
+http://www.secondnature.org/history/writings/speeches/leveraging_change.html
+http://www.secondnature.org/history/writings/speeches/role_engineers.html
+http://www.secondparentadoption.org/publish/publishmenu.htm
+http://www.secondsout.com/Ringside/sopranos.cfm?ccs=354&cs=13263
+http://www.secret-passage.com/mckay/
+http://www.secretary.state.nc.us/kidspg/history.htm
+http://www.secretary.state.nc.us/pubsweb/links/links5.htm
+http://www.secretary.state.nc.us/sec/secfaq.aspx
+http://www.secretscourse.com/letters.html
+http://www.secretsofthenormaninvasion.com/corresp/wessex2.htm
+http://www.secularism.org.uk/humanletters.htm
+http://www.secularism.org.uk/newspress/americanatheistsaug03t.htm
+http://www.secularism.org.uk/rowson.htm
+http://www.secumd.org/html/employment_secu/
+http://www.securegiving.co.uk/shop/cnd/shop.php
+http://www.securingjava.com/chapter-two/chapter-two-4.html
+http://www.securitiesfraudfyi.com/lehman_brothers.html
+http://www.security.vt.edu/playitsafe/index.phtml
+http://www.securityandsafetysupply.com/
+http://www.securitybank.com.ph/html/annual.htm
+http://www.securitydocs.com/library/2885
+http://www.securityfocus.com/infocus/1592
+http://www.securityfocus.com/infocus/1690
+http://www.securityfocus.com/infocus/1836
+http://www.securityfocus.com/library?cat=38&offset=150
+http://www.securityfocus.com/news/10271
+http://www.securityfocus.com/news/5239
+http://www.securityoffice.net/mssecrets/aladdin/FTCSLong.html
+http://www.securityoncampus.org/lawyers/saelzler.html
+http://www.securityoncampus.org/schools/cleryact/pl101542.html
+http://www.securitypipeline.com/162100867
+http://www.securitypipeline.com/howto/161500614
+http://www.securitypronews.com/
+http://www.sed.uga.edu/programs/mla/financial.htm
+http://www.sedgleywoods.org/NiceUp/jbm.html
+http://www.sedl.org/change/facilitate/leaders.html
+http://www.sedl.org/loteced/comparing_assessment.html
+http://www.sedl.org/pubs/sedl-letter/v14n03/6.html
+http://www.sedl.org/pubs/sedletter/v11n02/spark.html
+http://www.sedl.org/scimath/compass/v02n02/assessment.html
+http://www.sedl.org/slc/advanced.html
+http://www.sedonajo.com/sje/news.cfm?id=26
+http://www.sedonajo.com/sje/news.cfm?id=31
+http://www.sedos.org/english/foodsum.htm
+http://www.seds.org/messier/open.html
+http://www.seductioninsider.com/articles/evan_katz.html
+http://www.seductioninsider.com/articles/fear_of_rejection.html
+http://www.seductioninsider.com/articles/sex_appeal.html
+http://www.seductioninsider.com/articles/weird_sex_laws.html
+http://www.sedwickcoins.com/silver_cobs_potosi.htm
+http://www.see.ed.ac.uk/~gerard/Management/art3.html
+http://www.see.ed.ac.uk/~gerard/Management/art5.html
+http://www.see.ed.ac.uk/~gerard/Management/art9.html
+http://www.see.org.za/group_portrait.htm
+http://www.seedsofpeace.org/site/PageServer?pagename=OB_v8i2securitysuffering
+http://www.seedsofpeace.org/site/PageServer?pagename=lpuht01cult
+http://www.seedtest.org/en/content---1--1011.html
+http://www.seedtest.org/en/content---1--1135--270.html
+http://www.seefido.com/html/training_11.htm
+http://www.seeing-stars.com/Churches/StCharles.shtml
+http://www.seeingmachines.com/hmi.htm
+http://www.seeingred.com/Copy/5.4_milt_pillage_ivory_coast.html
+http://www.seeingwithc.org/topic7html.html
+http://www.seekerschurch.org/liturgies/199109.htm
+http://www.seekersglass.com/artists/savoie/biography.htm
+http://www.seekingalpha.com/2004/12/etrade_and_the_.html
+http://www.seekingsuccess.com/getting.php3
+http://www.seekingsuccess.com/reading.php3
+http://www.seeklyrics.com/lyrics/BEN-FOLDS/Losing-Lisa.html
+http://www.seeklyrics.com/lyrics/PINK-FLOYD/Wearing-The-Inside-Out.html
+http://www.seeklyrics.com/lyrics/Victoria-Beckham/I-Wish-Featuring-Robbie-Craig.html
+http://www.seeklyrics.com/lyrics/Victoria-Beckham/I-Wish.html
+http://www.seekwellness.com/fitness/fit_for_life.htm
+http://www.seelai.com/blog/2004/01/the_genius.html
+http://www.seelai.com/blog/2004/08/caught_with_pro.html
+http://www.seelai.com/blog/adventures_of_ah_chig/
+http://www.seelai.com/nudekingontheblog/2004/08/
+http://www.seeseattle.org/meetingPlanners/services/support.asp
+http://www.seethedonkey.com/
+http://www.seetickets.com/see/event.asp?artist=girls+aloud&resultsperpage=50&filler1=see
+http://www.sei.cmu.edu/news-at-sei/columns/software-product-lines/software-product-lines.htm
+http://www.sei.cmu.edu/news-at-sei/features/2002/3q02/feature-3-3q02.htm
+http://www.sei.cmu.edu/news-at-sei/features/2003/2q03/feature-2-2q03.htm
+http://www.seiko.co.jp/en/contribution/sustainability07.html
+http://www.seirtec.org/publications/lessondoc.html
+http://www.seishindo.org/newsletter/20_evolving.html
+http://www.seismo-watch.com/SWI/SWI.UsageTerms.html
+http://www.seismo.berkeley.edu/seismo/annual_report/ar00_01/node9.html
+http://www.seismo.berkeley.edu/seismo/annual_report/ar01_02/node11.html
+http://www.seismo.nrcan.gc.ca/significant_eq/charlevoix/1925/dommage_e.php
+http://www.seiu503.org/
+http://www.sejm.gov.pl/english/prace/cf6.htm
+http://www.selah.k12.wa.us/SOAR/SciProj2001/MorgenA.html
+http://www.selah.k12.wa.us/SOAR/SciProj2004/BrookeS.html
+http://www.selectabed.com/
+http://www.selekta.com/content/PPL.TB/apieceofhismind-6-91.asp
+http://www.selekta.com/content/PPL.TB/davidharnessgives-35-374.asp
+http://www.self.org/bhutan.asp
+http://www.selfdefenseforums.com/forums/archive/index.php/t-1076.html
+http://www.selfdefenseforums.com/forums/archive/index.php/t-1462.html
+http://www.selfdefenseforums.com/forums/archive/index.php/t-1690.html
+http://www.selfdefenseforums.com/forums/archive/index.php/t-5891.html
+http://www.selfgrowth.com/articles/Goodridge1.html
+http://www.selfgrowth.com/articles/Kuhn3.html
+http://www.selfgrowth.com/articles/Linardakis1.html
+http://www.selfgrowth.com/articles/namka4.html
+http://www.selfgrowth.com/positive.html
+http://www.selfhelpgraphics.com/about/history.shtml
+http://www.selfhelpmagazine.com/articles/sports/preventburnout.html
+http://www.selfhelpmagazine.com/articles/wf/platocav.html
+http://www.selkirkrexcats.org/standards.html
+http://www.sellascript.com/Source/Sales.cfm
+http://www.sellcom.com/ergochair.html
+http://www.selling-today.com/toc.html
+http://www.sellingpower.com/article/display.asp?aid=SP7560846
+http://www.sellingselling.com/articles/front-5.html
+http://www.sellingselling.com/articles/reachingcustomers.html
+http://www.sellingselling.com/articles/slow.html
+http://www.sellingsmartonline.com/speaking.htm
+http://www.sellingwaves.com/
+http://www.sellsbrothers.com/money/
+http://www.selman.cc/creditunion/add/about.cfm/sample2
+http://www.selmedica.com/licerx/
+http://www.selu.edu/NewsEvents/PublicInfoOffice/fancal00.htm
+http://www.selvesandothers.org/article7418.html
+http://www.semanticbible.com/hyperconc/S/Stand.html
+http://www.semcosh.org/Jose%20Bove.htm
+http://www.semesteratsea.com/voyages/spring2005/sp2005_courselist.html
+http://www.semicolon.com/Solitaire/Articles/Pyramid.html
+http://www.semiconductorfabtech.com/features/lithography/articles/body2.223.php3
+http://www.semint.com/umaie/rules.html
+http://www.senate.gov/artandhistory/art/artifact/Painting_31_00002.htm
+http://www.senate.gov/artandhistory/history/common/briefing/Meeting_Places_Quarters.htm
+http://www.senate.gov/artandhistory/history/common/generic/Historical_Intro_Biographical_Directory.htm
+http://www.senate.gov/artandhistory/history/common/generic/Leaders_Lecture_Series_Bush.htm
+http://www.senate.gov/artandhistory/history/common/generic/Leaders_Lecture_Series_Mansfield.htm
+http://www.senate.gov/pagelayout/committees/one_item_and_teasers/committee_hearings.htm
+http://www.senate.gov/pagelayout/history/one_item_and_teasers/chronology.htm
+http://www.senate.gov/reference/common/person/barry_black.htm
+http://www.senate.gov/~appropriations/releases/record.cfm?id=211834
+http://www.senate.gov/~feingold/statements/03/10/2003A22748.html
+http://www.senate.gov/~judiciary/oldsite/te090401so-simon.htm
+http://www.senate.gov/~kohl/press/statements/2005208B19.html
+http://www.senate.mo.gov/05info/BTS_Web/Summary.aspx?SessionType=R&SummaryID=80672&BillID=21806
+http://www.senate.state.ny.us/pressreleases.nsf/0/602619f3409e1e2e85256e210072f3e5?OpenDocument
+http://www.senate.state.ny.us/pressreleases.nsf/0/8a418b7f4c94ddee85256e1a0061fabb?OpenDocument
+http://www.senate.ufl.edu/minut_agen/SteerMin031797.htm
+http://www.senatedems.state.ct.us/Info.html
+http://www.senatorchapman.com/bbbb.htm
+http://www.senatorlines.com/home/profile/com_prof_essentialsa73a_2.jsp
+http://www.senatorserfmaltese.com/
+http://www.send2press.com/PRnetwire/pr04_120703-voices.shtml
+http://www.send2press.com/newswire/2005_01_0110-002.shtml
+http://www.sendcoffee.com/dog-o-matic/essays/becky.html
+http://www.sendcoffee.com/dog-o-matic/trees.html
+http://www.sendit.com/video/item/7000000071771
+http://www.sendit.com/video/item/7000000083554
+http://www.sendmemovies.com/p-44803-miles-davis-kind-of-blue-1959-dual-disc.aspx
+http://www.sendmemovies.com/p-44804-miles-davis-kind-of-blue-1959-sacd.aspx
+http://www.sendrevival.com/tattoos/argument%20against%20Christian%20tattoos.htm
+http://www.senecamarine.com/honor.htm
+http://www.senectutis.com/vacancy1.htm
+http://www.senescence.info/grandpa.html
+http://www.seniorcitizens.com/
+http://www.seniorcitizensbureau.com/articles/article3.htm
+http://www.seniorco-opnet.org/elkriver/
+http://www.seniority.co.uk/contributions/homeandhobbies/gardening/index.php?ArticleID=gardening_1011538625
+http://www.seniorjournal.com/NEWS/Aging/4-05-11AMD.htm
+http://www.seniorjournal.com/NEWS/Nutrition-Vitamins/4-06-23low-carb.htm
+http://www.seniorjournal.com/NEWS/Politics/4-08-04GrannyD.htm
+http://www.seniorjournal.com/NEWS/SeniorStats/5-01-19SeniorsInternet.htm
+http://www.seniormag.com/conditions/cancer/cancerglossary/t.htm
+http://www.senioronesource.com/Road.htm
+http://www.seniorshomeconnection.com/thinkingofselling26.html
+http://www.seniorsite.com/fulmore/fulmore_retirees_should_be_the_ones_to_define_retirement.asp
+http://www.seniorsnetwork.co.uk/campaigns/restore.htm
+http://www.seniorwomen.com/articles/julia/articlesJulia100900.html
+http://www.seniorwomen.com/ca/cw/01/cult120601.html
+http://www.seniorwomen.com/healthfitness.html
+http://www.seniorwomen.com/hfs/hf_fitness.html
+http://www.seniorwomen.com/hfs/hf_style.html
+http://www.senioryears.com/talkingback.html
+http://www.sennholz.com/fallingincome.html
+http://www.sense.bc.ca/news/news-04.htm
+http://www.sense.org.uk/involved/deafblind/seemehearme.htm
+http://www.sensenet.hu/engine.aspx?page=ceginformacio_article&QueryPluginContentName=sajtocikk_BBJ_Enterprise_Portals_HU
+http://www.sensenet.hu/engine.aspx?page=fejlesztoknek_article&QueryPluginContentName=sajtocikk_BBJ_Enterprise_Portals_HU
+http://www.sensenet.hu/engine.aspx?page=portalengine_article&QueryPluginContentName=sajtocikk_BBJ_Enterprise_Portals_HU
+http://www.sensenet.hu/engine.aspx?page=sajto_article&QueryPluginContentName=sajtocikk_BBJ_Enterprise_Portals_HU
+http://www.senser.com/04-01-06.htm
+http://www.sensesofcinema.com/contents/00/10/douglas.html
+http://www.sensesofcinema.com/contents/00/7/ghost.html
+http://www.sensesofcinema.com/contents/cteq/02/20/king_hu.html
+http://www.sensesofcinema.com/contents/cteq/05/35/volcano_high.html
+http://www.sensesofcinema.com/contents/directors/02/bresson.html
+http://www.sensesofcinema.com/contents/festivals/02/22/muff.html
+http://www.sensibility.com/classes.htm
+http://www.sensiblehealth.com/Y-Dan.php
+http://www.sensorsmag.com/resources/web_picks/wp0204.shtml
+http://www.sensuoussadie.com/sadiescolumns/series/fashion2.htm
+http://www.sentex.net/~mwandel/cannon/air_gun.html
+http://www.sentex.net/~mwandel/tech/scanner.html
+http://www.sentimentalrefugee.com/mira_hall.html
+http://www.sentrysafes.co.uk/
+http://www.sep.co.uk/venturer/feature_semicon.html
+http://www.sepnet.org/index.php?op=ViewArticle&articleId=167&blogId=1
+http://www.sepo.net/books/english-grammar/requirements-of-speech/
+http://www.sepos.org/
+http://www.seppelt.com.au/privacy/
+http://www.seps.org/cvoracle/faq/mold.html
+http://www.september11fund.org/letters.php
+http://www.september11news.com/
+http://www.september11news.com/WTCPlans.htm
+http://www.september11victims.com/september11Victims/VictimInfo.asp?ID=2609
+http://www.seqroc.qld.gov.au/content/Achievements.asp
+http://www.sequart.com/indexCONTINUITY2.htm
+http://www.sequentialtart.com/archive/dec04/pmbq.shtml
+http://www.serageldin.org/speeches/Buchrst8.htm
+http://www.serc.si.edu/labs/fish_invert_ecology/publications/publications_86_90.jsp
+http://www.serenapowers.com/playingcards2.html
+http://www.serenapowers.com/spanishcards.html
+http://www.serendipit-e.com/miasma/archives/2002_08.html
+http://www.serendipity.li/wot/kutabomb.htm
+http://www.serfes.org/orthodox/notforsale.htm
+http://www.serialtext.com/stir/45_minutes_of_deceit.html
+http://www.serif.com/store/partners/hyperpen12000_usb.asp
+http://www.seriousgames.org/ben/archives/000012.html
+http://www.seriouspoker.com/pdintro.html
+http://www.seriousstrength.com/protein.html
+http://www.seriouswheels.com/art-four-rings-1.htm
+http://www.serono.com/media/stories2004/20040205_en.jsp?major=4&minor=1
+http://www.serpentine.org.uk/advice/coach/fh47.php
+http://www.serpentine.org.uk/advice/coach/fh54.php
+http://www.serpentine.org.uk/tri/racing/reviews.php
+http://www.serve.com/marbeth/pros_cons_comp.html
+http://www.serve.com/pfc/misc/bogbasra.html
+http://www.serve.org/seir-tec/publications/lessondoc.html
+http://www.serverfiles.com/Other-network-software/Misc.-network-software/
+http://www.serversdirect.com/showpages.asp?pid=1063
+http://www.serverwatch.com/sreviews/article.php/10903_3434051_2
+http://www.serverwatch.com/sreviews/article.php/3467761
+http://www.serverworldmagazine.com/monthly/2001/04/oilgas.shtml
+http://www.serverworldmagazine.com/monthly/2003/02/home.shtml
+http://www.serverworldmagazine.com/sunserver/2000/12/analytical.shtml
+http://www.service-level-agreement.net/
+http://www.servicecaster.com/pj_casters.htm
+http://www.servicepals.com/
+http://www.services.unimelb.edu.au/llsu/resources/exams1.html
+http://www.services.unimelb.edu.au/plagiarism/advice.html
+http://www.sesameworkshop.org/parents/solutions/safety/
+http://www.sesd.info/hiresources.htm
+http://www.sesp.northwestern.edu/common/news/?NewsID=66
+http://www.setfocus.com/Terms.aspx
+http://www.seti-italia.cnr.it/Page%20Articles/Page03_HowManyCivilizations.htm
+http://www.seti.nl/article.php?id=1143
+http://www.seti.org/site/apps/nl/content2.asp?c=ktJ2J9MMIsE&b=194993&ct=363416
+http://www.seti.org/site/pp.asp?c=ktJ2J9MMIsE&b=178987
+http://www.setileague.org/editor/stride2.htm
+http://www.setimes.com/cocoon/setimes/xhtml/en_GB/features/setimes/features/2004/12/06/feature-01
+http://www.setimes.com/cocoon/setimes/xhtml/en_GB/features/setimes/features/2005/01/14/feature-01
+http://www.setoninstitute.org/grants_awarded/
+http://www.setsail.com/dashew/dashew219.html
+http://www.setsail.com/dashew/fpb_alu_dink.html
+http://www.setsail.com/products/mwh/mwh_toc.html
+http://www.setsail.com/s_logs/deridder/dragon8.html
+http://www.sett.ed.ac.uk/clink/opportunities/teenagers.html
+http://www.settingtheworldtorights.com/node/428
+http://www.sevendaysvt.com/columns/health_wanted_health/
+http://www.sevenseasmagazine.com/november2002/nov02_tessa.htm
+http://www.sevillaonline.com/ActiveX/vb5/ARFlatBttnCtrl.htm
+http://www.sew-dolling.com/baby_nursery.htm
+http://www.sewa.org/pmfund/progress.htm
+http://www.sewanee.edu/
+http://www.sewbid.com/auctionhelp/Buying.htm
+http://www.sewwrong.com/
+http://www.sex-project.com/kama-sutra-5.shtml
+http://www.sexnewsdaily.com/issue/b427-051603.html
+http://www.sexnewsdaily.com/issue/b488-121603.html
+http://www.sexnewsdaily.com/issue/b514-040704.html
+http://www.sexualassault.army.mil/Prevention.cfm
+http://www.sexualcontrol.com/
+http://www.sexualcontrol.com/sex-addiction-masturbation-pornography_01.html
+http://www.sexuality.org/authors/steinberg/cn156.html
+http://www.sexuality.org/erotmass.html
+http://www.sexuality.org/flirtadv.html
+http://www.sexuality.org/l/tantra/yoga.html
+http://www.sexuality.org/mgswing.html
+http://www.sexuality.org/other.html
+http://www.sexualityandu.ca/eng/parents/TS/health.cfm
+http://www.sexualoffenders.com/florida-sexoffenders.htm
+http://www.sexualoffenders.com/ohio-sexoffenders.htm
+http://www.sexualrecords.com/WSRtechnique.html
+http://www.sexwriters.com/unspoken.htm
+http://www.seyboldreports.com/TSR/subs/0505/volume_printers.php
+http://www.seykota.com/rm/history/history.htm
+http://www.sf-bbbs.org/2_volunt.htm
+http://www.sfbg.com/37/18/news_fcc.html
+http://www.sfbg.com/asc/224.html
+http://www.sfbr.org/pages/news_release_detail.php?id=57
+http://www.sfc.ucdavis.edu/pubs/brochures/kiwi.html
+http://www.sfca.co.uk/policy/green_paper_response3.htm
+http://www.sfcg.org/programmes/iran/programmes_iran.html
+http://www.sfcityguides.org/faqs.html
+http://www.sfcm.edu/prospective/application.aspx
+http://www.sfcoaches.org/dearcoach2004.html
+http://www.sfdonline.org/Link%20Pages/Link%20Folders/01Ds/sb281001.html
+http://www.sfdonline.org/Link%20Pages/Link%20Folders/Conference/Pol21/Chia.html
+http://www.sfenvironment.com/articles_pr/2000/article/042700.htm
+http://www.sfenvironment.com/articles_pr/2001/article/031101.htm
+http://www.sfexaminer.com/articles/2005/06/17/news/20050617_ne11_muni.txt
+http://www.sff.net/people/laresnick/filpro.html
+http://www.sff.net/people/mberry/finger1.htm
+http://www.sffoodbank.org/employment.html
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2002/11/24/LV115743.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2003/11/28/EBG5S3ABM41.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/08/19/MNG428AGR51.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/10/14/BUGR28JFEN59.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/10/22/MNCITY6.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/11/25/BUGJ1A120B1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/12/07/MNGSCA7P7P1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/12/30/MNG13AIBEN1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/01/28/WBG0IAVU2N1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/03/13/BROADBAND.TMP
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/03/20/LVGFBBPE611.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/03/30/MNGN6C0JB81.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/04/29/DDGQSCGERQ18.DTL&type=performance
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/05/01/MNG4TCID0F1.DTL&type=health
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/05/15/ING0TCN4721.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/06/08/HOGB0CJD4I27.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/06/10/SPGVOD6KMQ1.DTL&type=tvradio
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/06/12/MNGJND7G5V1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/06/21/BAGASDBOB41.DTL&type=health
+http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/06/27/MNG1VDF6EM1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2002/11/10/CM148265.DTL&type=news
+http://www.sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2004/05/19/DDG5R6NB431.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2004/08/09/SPGMS84Q7K23.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2004/10/02/SPG7P92VA91.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2004/11/12/BUG3N9PU2V1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2004/12/19/LVGTMACHV81.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2005/01/23/REG3RAUG5M1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2005/06/19/TRG4VD8IMH1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2005/06/26/TRGFFDDKSV1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=%2Fc%2Fa%2F2003%2F11%2F21%2FMNGLT37MH71.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2002/09/10/MN157237.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2003/02/21/BA49366.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2004/02/23/MNGJ7566RL1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2004/10/25/MNGED9FNH21.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2004/11/28/MNGQ4A2RLK1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2004/12/07/MNGSCA7P7P1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/01/13/MNGATAPKOF1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/01/14/MNGE6AQER31.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/02/02/EDGGTB3GAK1.DTL&type=printable
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/05/01/MNG4TCID0F1.DTL&type=health
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/06/12/MNGJND7G5V1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/06/13/BLOG.TMP
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/1998/10/18/RV58736.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/1998/12/26/MN90209.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2000/03/12/RV49126.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2000/06/08/MN44384.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2000/06/08/MN44384.DTL&type=printable
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2000/06/08/MN44384.DTL&type=science
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2000/07/05/BU20361.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2002/05/19/MN182963.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2002/08/26/BU67751.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2003/03/22/MN284946.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2003/05/25/BU268156.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2003/09/26/MN176326.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2003/11/21/MNGLT37MH71.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/02/23/BUGD855EQK1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/03/05/DDG8G5CL291.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/06/22/BUGRK79OT81.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/06/22/BUGRK79OT81.DTL&type=printable
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/08/09/MNG5M828D140.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/09/14/BAGME8OK0V1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/10/25/MNGED9FNH21.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/10/30/BAGS99J2GR1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/11/03/MNGVB9KVA31.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/11/12/BUG3N9PU2V1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/11/26/DDGIEA0NDE1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2004/12/27/BAGP3AHAJC1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/01/02/BUGINAITB11.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/01/02/BUGINAITB11.DTL&type=business
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/01/02/BUGINAITB11.DTL&type=printable
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/01/12/BUGKJAOPUA1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/01/12/BUGKJAOPUA1.DTL&type=business
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/01/12/BUGKJAOPUA1.DTL&type=printable
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/01/25/EDG26AVQIC1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/01/25/EDG26AVQIC1.DTL&type=printable
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/01/31/EDGT0ARQPL1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/05/26/DDGM7C8EID1.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2005/06/13/BUGOMD64QH51.DTL&type=tech
+http://www.sfgate.com/cgi-bin/article.cgi?file=/g/a/2003/09/03/notes090303.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/gate/archive/2001/09/18/nosilvbullet.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/gate/archive/2003/11/06/fool252.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/gate/archive/2003/11/06/fool252.DTL&type=printable
+http://www.sfgate.com/cgi-bin/article.cgi?file=/gate/archive/2004/12/10/notes121004.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/gate/archive/2004/12/22/notes122204.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/gate/archive/2005/02/04/bollydance.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/gate/archive/2005/06/07/worldviews.DTL
+http://www.sfgate.com/cgi-bin/article.cgi?file=/news/archive/2000/01/04/national0123EST0425.DTL
+http://www.sfgate.com/cgi-bin/article/article?f=/n/a/2005/02/05/international/i043253S54.DTL
+http://www.sfgate.com/cgi-bin/examiner/article.cgi?year=1997&month=07&day=21&article=NEWS2121.dtl
+http://www.sfgate.com/columnists/dailydish/
+http://www.sfgate.com/samesexmarriage/
+http://www.sfgate.com/traveler/guide/sf/neighborhoods/nb.shtml
+http://www.sfha.co.uk/sfha.asp?pg=32&s=%20%5BHA%20Name%5D%20&a=c
+http://www.sfha.co.uk/sfha.asp?pg=5&week=10/01/2005
+http://www.sfha.co.uk/sfha_text.asp?pg=5&week=10/01/2005
+http://www.sfist.com/
+http://www.sflnc.com/index/readthis/news/new_orleans/22.html
+http://www.sflovers.org/Reference/fandom/WSFS/sr-a-02.htm
+http://www.sfmatch.org/general/algorithm.html
+http://www.sfmelrose.u-net.com/adjustyourset/
+http://www.sfmuseum.org/1906/liquor.html
+http://www.sfmuseum.org/hist1/vig56proc.html
+http://www.sfmuseum.org/hist6/sherman2.html
+http://www.sfmuseum.org/quake/awss.html
+http://www.sfn.org/content/Publications/BrainBriefings/fear.html
+http://www.sfowler.force9.co.uk/page_15.htm
+http://www.sfpe.org/sfpe30/omnisam/event/eventreg_info.cfm?product_id=292
+http://www.sfsf.com.au/hansfoik_deepquestions.htm
+http://www.sfsite.com/01b/nor49.htm
+http://www.sfsite.com/04b/gdb79.htm
+http://www.sfsite.com/05b/aa176.htm
+http://www.sfsite.com/columns/steven120.htm
+http://www.sfsite.com/fsf/bibliography/fsfcovartwhen07.htm
+http://www.sfsite.com/gary/wise01.htm
+http://www.sfstampede.com/OffTheIce/EventsAndPromotions.cfm
+http://www.sfsu.edu/~career/students/resume.html
+http://www.sfsu.edu/~poetry/narrativity/issue_three/alvarez1.html
+http://www.sftt.org/
+http://www.sftt.org/cgi-bin/csNews/csNews.cgi?command=viewone&id=327&database=DefenseWatch%20Archive.db
+http://www.sftt.org/dt040.html
+http://www.sftu.org/
+http://www.sfu.ca/archaeology/museum/ndi/mystudy.html
+http://www.sfu.ca/casr/ft-bullock1.htm
+http://www.sfu.ca/cognitive-science/vancouver-studies/
+http://www.sfu.ca/economics/research/working/wpjanfeb99.html
+http://www.sfu.ca/philosophy/schulte/topics.htm
+http://www.sfwa.org/ergonomics/eyestrain.htm
+http://www.sfwa.org/writing/copyed.htm
+http://www.sfweekly.com/Issues/2005-06-22/news/infiltrator.html
+http://www.sfweekly.com/issues/2000-03-01/dining/eat2_print.html
+http://www.sfweekly.com/issues/2000-03-01/eat2.html
+http://www.sfweims.com/ratingsStandard.html
+http://www.sg.ufl.edu/branches/legislative/senate_docs/minutes/2005%5C05-10-05.htm
+http://www.sg1archive.com/s4.shtml
+http://www.sgaus.org/armyres.htm
+http://www.sgb-midatlantic.org/features/feature6.html
+http://www.sgh.com/publications/str-dsn/str-dsn.htm
+http://www.sghms.ac.uk/Courses/undergrad/foundation_med.htm
+http://www.sgi-usa.org/thesgiusa/membercorner/peaceproposals/peaceproposal2002.htm
+http://www.sgi.com/company_info/newsroom/press_releases/2005/may/fraunhofer.html
+http://www.sgi.org/english/Features/quarterly/0101/casestudy.htm
+http://www.sgilbertcompaniesinc.com/foreign/srilanka.html
+http://www.sgir.org/newsletter/postconf.htm
+http://www.sgisland.org/pages/main/book.htm
+http://www.sgpc.net/rehat_maryada/section_four_chap_eleven.html
+http://www.sgps.ca/health/dental.asp
+http://www.sgrin.co.uk/production/ProductionCalendar.html
+http://www.sgrm.com/art21.htm
+http://www.sgtstryker.com/weblog/archives/001015.php
+http://www.sgvarc.org/?id=11&sub=27&sid=
+http://www.sha.org.uk/cm/newsStory.asp?cmnID=1967&cmnRef=35&cmnTopic=2
+http://www.sha.state.md.us/ImprovingOurCommunity/oppe/4f/glos_key_terms.htm
+http://www.shaadi.com/wedding/fashion/etiquette/050208-wearing-this-valentine-1.php
+http://www.shaadi.com/wedding/health/grooming/050520-natural-colour.php
+http://www.shaav.com/professional/linguistics/evollang.html
+http://www.shacamerica.net/resources_security.htm
+http://www.shacknews.com/extras/e_playinggames/
+http://www.shadesofday.com/
+http://www.shadesofday.com/method.html
+http://www.shadisoft.com/speak/
+http://www.shadisoft.com/speakmail2000/
+http://www.shadownode.com/shadowrun/srcamp/contacts.html
+http://www.shadowrunrpg.com/
+http://www.shadowrunrpg.com/fiction/fiction6_unmaking.shtml
+http://www.shadowrunrpg.com/index.shtml
+http://www.shadowrunrpg.com/missions/gamemasters.shtml
+http://www.shadowsonthewall.co.uk/04/art-i.htm
+http://www.shadowsonthewall.co.uk/04/art-k.htm
+http://www.shadowsonthewall.co.uk/04/short-a.htm
+http://www.shadowspace.net/matters.html
+http://www.shafr.org/council%20minutes/minutes105.htm
+http://www.shafr.org/guide%20main.htm
+http://www.shairport.com/en/about04.jsp
+http://www.shakealeg.org/SpclEvntsSpnsrshp.htm
+http://www.shakespeare-w.com/english/game/
+http://www.shakespearefest.org/Christmas%20Carol%20Study%20Guide.htm
+http://www.shakespearespeddler.com/archive/april2000.html
+http://www.shaksper.net/archives/2005/0889.html
+http://www.shallowsky.com/eyepiece-faq.html
+http://www.shallowwaterangler.com/conservation/050418/
+http://www.shamansense.org/articles/spirtually.html
+http://www.shambhala.org/centers/grassvalley/
+http://www.shambhala.org/meditationinstruction.html
+http://www.shambhalamountain.org/magazine/modules.php?name=News&file=article&sid=18
+http://www.shambhalasun.com/Archives/Columnists/Ray/nov_01.htm
+http://www.shambhalasun.com/Archives/Features/1999/May99/gere.htm
+http://www.shambles.net/pages/learning/primary/Zoos/
+http://www.shaml.org/agenda/2003/humanitarian.html
+http://www.shamwari.com/article5.asp
+http://www.shands.org/public/faq/Insurance.htm
+http://www.shanemedia.com/article.asp?articleID=679
+http://www.shanghai.ws/TIClook11334.html
+http://www.shanghaiexpat.com/PNphpBB2-viewtopic-t-21813.phtml
+http://www.shanghaimosquito.com/blog/2003_10_01_archive.html
+http://www.shanghaimosquito.com/blog/2004_05_01_archive.html
+http://www.shanghaimosquito.com/blog/2004_12_01_archive.html
+http://www.shankly.com/retirement.htm
+http://www.shannonthunderbird.com/residential_schools.htm
+http://www.shapeshifter.net.nz/
+http://www.shapingsf.org/ezine/labor/bsstrike/main.html
+http://www.shapingsf.org/ezine/labor/offworkers/main.html
+http://www.shapingsf.org/ezine/labor/shanghai/main.html
+http://www.shapingtomorrow.com/welcome.cfm?mod=3&top=55&stop=179
+http://www.sharbrough.net/
+http://www.shardslrp.com/community/tales/fivesouls.html
+http://www.share.org/member_center/communications/digest/janfeb04/feature.cfm
+http://www.shared-vision.com/old_site/y01m05/storyb02.html
+http://www.sharedlearnings.org/index.cfm?fuseaction=News.FA_dsp_news&ym=2003-06
+http://www.shareholder.com/bid/Releases.cfm?Year=2000
+http://www.shareholder.com/bid/news/20040728-140503.cfm
+http://www.shareholder.com/ruralmetro/ReleaseDetail.cfm?ReleaseID=35019
+http://www.shareintl.org/magazine/old_issues/sep_04.htm
+http://www.shareintl.org/magazine/si_letters.htm
+http://www.sharenet.co.za/spread/glossary.phtml
+http://www.sharewareconnection.com/list.php?categ=504500&page=1&criteria=date
+http://www.sharewareconnection.com/multimedia-design-image-editing-1.htm
+http://www.sharewareconnection.com/multimedia-design-media-management-1.htm
+http://www.sharewareconnection.com/titles/film.htm
+http://www.sharewareconnection.com/titles/inner.htm
+http://www.sharewareconnection.com/titles/lotus-1-2-3.htm
+http://www.sharewareconnection.com/titles/speaking-caller-id.htm
+http://www.sharewareorder.com/SPAD-VII-1-32-scale-19-Corps-RAS-DCM-scheme-2-download-22257.htm
+http://www.shareyourstory.org/webx?128@68.GALha11glWb.0@.ee8ca29
+http://www.shareyourstory.org/webx?14@68.GALha11glWb.0@.ee8ca29/0
+http://www.shareyourstory.org/webx?7@68.GALha11glWb.0@.ee8ca29/18
+http://www.shark.com/gngcd/gngcd/081403.php
+http://www.sharp.org.uk/FAQSummer.htm
+http://www.sharpman.com/Article.asp?ArticleID=540
+http://www.sharpman.com/Article.asp?Department=SharpWork
+http://www.sharptext.com/terms.html
+http://www.shastalake.com/shastalake/
+http://www.shastamarketing.com/proven-results.htm
+http://www.shatincollege.edu.hk/parents/pta/bus.htm
+http://www.shawnallison.com/dbacksbraves.php
+http://www.shawpittman.com/home/news.nsf/0/251BD37097B657AC85256F3B00673D83?OpenDocument
+http://www.shawresources.com/artpareto.html
+http://www.shawtaichi.com/newsletter.htm
+http://www.shawu.edu/SUDS/html/education/CTTP.html
+http://www.shd.org.yu/HtDocs/SHD/SHD-publishing.htm
+http://www.she-net.com/modules/newbb/viewtopic.php?topic_id=1837&forum=7
+http://www.shea-butter.com/letter_march_03.shtml
+http://www.shearman.com/inniatives/assoc_init.html
+http://www.sheboygan.lib.wi.us/pages/meetingrooms.html
+http://www.shecards.net/shop.html
+http://www.sheck.com/serendipity/
+http://www.sheeplaughs.com/scrooge/stave1page2.htm
+http://www.shef.ac.uk/cics/corptime/usingct/ct_guideline.html
+http://www.shef.ac.uk/nfa/history/rides/twist.php
+http://www.shef.ac.uk/nlc2004/Proceedings/Symposia/Symposium9/Jones_et_al.htm
+http://www.shef.ac.uk/uni/academic/N-Q/psysc/staff/sihomer/prp.html
+http://www.shef.ac.uk/uni/projects/icg/
+http://www.shef.ac.uk/uni/projects/ptpdlp/soc6.html
+http://www.shef.ac.uk/~eas/PostgradTaught/DLJapaneseLanguage.shtml
+http://www.shef.ac.uk/~ptpdlp/newsletter/issue87.html
+http://www.shefc.ac.uk/about_us/departments/learning_teaching/jltc_annual_report.htm
+http://www.sheffield.gov.uk/index.asp?pgid=5550&mtype=print
+http://www.sheffieldforum.co.uk/showthread/t-17937.html
+http://www.sheffieldforum.co.uk/showthread/t-2357.html
+http://www.sheffieldforum.co.uk/showthread/t-26458.html
+http://www.sheffieldmayday.ukf.net/war/greatestargument.htm
+http://www.sheffieldnet.com/srn_artice16.html
+http://www.sheilaomalley.com/
+http://www.sheilaomalley.com/archives/004655.html
+http://www.sheldensays.com/help_solve_a_50yearold_mystery.htm
+http://www.sheldonbrown.com/harris/mafac.html
+http://www.sheldonfamily.org/ho_shel.htm
+http://www.sheldonsiegel.com/book4/chapter2.htm
+http://www.sheldrake.org/papers/Staring/followup_full.html
+http://www.shelflife.com/shop/shelflife/life051.html
+http://www.shellchemicals.com/news/1,1098,72-news_id=501,00.html
+http://www.shellvacationsclub.com/GetSVSHomeScreen.event
+http://www.shelterpub.com/_fitness/_weight_training/B_Pearl_story.html
+http://www.shelterstyle.com/portfolio_6.mv
+http://www.shemalestrokers.com/
+http://www.shenandoahconnection.com/winchesterrealestate.htm
+http://www.shenango.psu.edu/sa_clubs.htm
+http://www.shepherd.edu/compserv/prevent/internetch.htm
+http://www.sheppardsenator.com/archives/2004/073004/a0203.shtml
+http://www.sheppardsenator.com/stories/b0103.shtml
+http://www.shepparton.vic.gov.au/home/guide/12703
+http://www.sheridanc.on.ca/vpa/accouncil/acnov801.html
+http://www.sherlock-holmes.co.uk/library/story.html
+http://www.sherlockian.net/world/221b.html
+http://www.shermanhillmrrc.org/club_by_laws.html
+http://www.sheroescentral.com/dc/dcboard.php?az=show_topic&forum=13&topic_id=4222&mesg_id=4222&page=
+http://www.sheroesfans.com/dc/dcboard.php?az=show_mesg&forum=13&mesg_id=859&topic_id=827
+http://www.sherpa-walking-holidays.co.uk/tours/escorted/fgrrc.asp
+http://www.sherpa-walking-holidays.co.uk/walking-vacations.htm
+http://www.shesaid.com.au/article/2005/06/07/1741_ll.php
+http://www.sheshunoff.com/email/archive/0404/finance_new1.html
+http://www.shetha.com/blog/archives/000160.html
+http://www.sheu.org.uk/leaflets/rolsroyc.htm
+http://www.shgresources.com/ia/timeline/
+http://www.shgresources.com/tn/symbols/insectladybug/
+http://www.shh.org/disclaimer.asp
+http://www.shhh.org/html/TC03.html
+http://www.shiachat.com/forum/lofiversion/index.php/t6331.html
+http://www.shiawasseehistory.com/zimmerman.html
+http://www.shibuya.com/garden/colorpsycho.html
+http://www.shifthappens.com/art_createvalue.html
+http://www.shifthappens.com/whyjim.html
+http://www.shiftworker.com/articles-and-links/sleep_loss_and_chronic_fatigue.htm
+http://www.shikanda.net/ethnicity/labour.htm
+http://www.shin-shih.com.tw/playintroducten.htm
+http://www.shinraonline.com/board/forumdisplay.php?f=521
+http://www.ship.edu/~cgboeree/anticipation.html
+http://www.ship.edu/~cgboeree/conclusions.html
+http://www.ship.edu/~cgboeree/jung.html
+http://www.ship.edu/~cgboeree/kelly.html
+http://www.ship.edu/~cgboeree/maslow.html
+http://www.ship.edu/~cgboeree/meaning.html
+http://www.ship.edu/~cgboeree/psychosocialhistory.html
+http://www.ship.edu/~cgboeree/qualmethfour.html
+http://www.ship.edu/~cgboeree/rogers.html
+http://www.ship.edu/~cgboeree/sevenpersp.html
+http://www.ship.edu/~cgboeree/wundtjames.html
+http://www.shire.net/big.brother/utah.htm
+http://www.shirebooks.co.uk/Industrial/industrial-bl.htm
+http://www.shirleyclarke-education.org/learning_teams_update/southend_9january.html
+http://www.shirleys-wellness-cafe.com/anibooks.htm
+http://www.shirleys-wellness-cafe.com/animal-shop.htm
+http://www.shirleys-wellness-cafe.com/eczema.htm
+http://www.shirleys-wellness-cafe.com/flaxoil.htm
+http://www.shirleys-wellness-cafe.com/tf/pets.htm
+http://www.shirleys-wellness-cafe.com/tf/s/pets.htm
+http://www.shmc.org/index.php/page/245
+http://www.shmoo.com/~bmc/
+http://www.shobanarayan.com/FTmain.htm
+http://www.shocklogic.org/shocklogic/nlstory.cfm?ID=39&NLID=10
+http://www.shockwavewriters.com/Articles/WS/border.htm
+http://www.shodor.org/interactivate/activities/
+http://www.shoestoboots.com/danskoshoe_1.htm
+http://www.shogaya.com/bbs-e/minibbs.cgi
+http://www.shoggoth.net/article.php3?story_id=100
+http://www.shooting4all.com/advert05.asp
+http://www.shooting4all.com/land_rovers.asp
+http://www.shootingstarhistory.com/home.html
+http://www.shop.com/amos/cc/main/catalog/pcd/10410187/ccsyn/260/_x_/Home-Visions-
+http://www.shopaarons.com/sports/race_report_bristol2.htm
+http://www.shopbydiet.com/
+http://www.shopcol.com/mit.html
+http://www.shopcol.com/neclcd1760vm.html
+http://www.shopcol.com/neclcd1860nx.html
+http://www.shopcol.com/neclcd2080ux.html
+http://www.shopdownhomer.com/pgi-Product%20Spec?18900,
+http://www.shopdownhomer.com/pgi-Product%20Spec?4196,
+http://www.shopetc.com/helpdesk/index.do
+http://www.shopireland.ie/dvd/detail/B00005A3KS/Point-Break-(REGION-1)-(NTSC)/
+http://www.shoplocal.com/courier-journal/default.aspx?action=browsespecialpromo&promo=valentines_him
+http://www.shoplocal.com/theolympian/default.aspx?action=browsespecialpromo&promo=valentines_him
+http://www.shoplocal.com/theolympian/new_user_entry.aspx?CityStateZip=98501
+http://www.shopping.com/xDN-Baby_Care
+http://www.shopping.com/xDN-Clothing--shirts_and_tops-shadowline_lingerie~V-grid
+http://www.shopping.com/xMDS-Anyway--The-Paradoxical-Commandments--Finding-Personal-Meaning-in-a-Crazy-World~PD-650407285633
+http://www.shopping.com/xMR-Blue_Nile~MRD-9101~RD-805206
+http://www.shopping.com/xMR-circuit_city_stores,_inc._~MRD-9270~PG-3~S-3
+http://www.shopping.com/xMR-store_dell~MRD-9228~PG-11~S-1
+http://www.shopping.com/xPO-Citizen_Elektra_Diamond_Eco_Drive_EP520054A
+http://www.shopping.com/xPR-iPod_4_GB_Blue_M9436LL_A~RD-163249163908
+http://www.shoppingtarget.com/Food_Diet_Sugar-Free.html
+http://www.shopsofli.com/Mall/Stores/StoreInfo.asp?Store_id=1000008761
+http://www.shopsofli.com/Mall/Stores/StoreInfo.asp?Store_id=1000043213
+http://www.shopwoodfield.com/IM/?store=Anchor4
+http://www.shorediving.com/Earth/Canada_/Vancouver_Island_Central_/Mystery_Wreck/review_4444.htm
+http://www.short-media.com/forum/showthread.php?t=20368
+http://www.shortcourses.com/choosing/files/08.htm
+http://www.shortcourses.com/choosing/sensors/05.htm
+http://www.shortcourses.com/choosing/types/04.htm
+http://www.shortnews.com/web/id/3386/u_id/56602/x_id/Sex%20on%20TV%20Increasing%20Dramatically/start.cfm
+http://www.shortnews.com/web/id/45933/u_id/56602/x_id/Ford%20Giving%20Computers,%20GM%20Offering%20Interest-Free%20Loans/start.cfm
+http://www.shortnews.com/web/id/46090/u_id/56602/x_id/Entire%20Law%20Firm%20Sanctioned%20For%20Lying%20and%20Sent%20Back%20to%20School/start.cfm
+http://www.shortsupport.org/News/0035.html
+http://www.shotgunconcepts.com/speaking.htm
+http://www.shotinthedark.info/archives/000778.html
+http://www.shotinthedark.info/archives/005930.html
+http://www.shotokai.cl/otras_artes/151_em_.html
+http://www.shotokai.com/ingles/history/hagi.html
+http://www.shotokanworld.com/sensei_richard_amos.htm
+http://www.shout.net/~mathman/html/rotations_with_matrices.html
+http://www.shout99.com/contractors/showarticle.pl?id=12226&n=300
+http://www.shoutout.info/
+http://www.show.scot.nhs.uk/cso/Publications/rm25/rm25-01.htm
+http://www.show.scot.nhs.uk/scottishhealthsurvey/sh806-01.html
+http://www.show.scot.nhs.uk/tuht/hosps/pri/pri.htm
+http://www.show.scot.nhs.uk/wishaw/public/inpatient.htm
+http://www.showbusinessweekly.com/
+http://www.showingsolutions.com/Out_HowItWorks.asp
+http://www.showmenews.com/2004/Sep/20040914Comm010.asp
+http://www.showroom.com.au/dragons/fitness.htm
+http://www.shragerlaw.com/html/medical_malpractice.html
+http://www.shredofevidence.com/may03/cold_cocked.html
+http://www.shredofevidence.com/may04/hit_and_ran.html
+http://www.shreveporttimes.com/apps/pbcs.dll/article?AID=/20041130/NEWS05/411300311/1064
+http://www.shrewsburytown.premiumtv.co.uk/page/SupportersTrustDetail/0,,10443~489829,00.html
+http://www.shrinershq.org/patientedu/arthrogryposis1.html
+http://www.shrinershq.org/shc/chicago/patientinfo.html
+http://www.shrm.org/
+http://www.shrm.org/hrmagazine/articles/0902/0902contavespi.asp
+http://www.shroomery.org/forums/showflat.php/Cat/0/Number/3532432/page/fpart/2/vc/1
+http://www.shroomery.org/forums/showflat.php?Cat=0&Board=Forum14&Number=3653928&page=0&fpart=3
+http://www.shs.starkville.k12.ms.us/mswm/MSWritersAndMusicians/writers/Faulkner.html
+http://www.shsu.edu/catalog/calendar.html
+http://www.shsu.edu/~his_ncp/NezPerce.html
+http://www.shsu.edu/~klett/ch%2033%20new.htm
+http://www.shtull-trauring.org/aron/Community/Articles/War_is_a_Force_That_Gives_us_Meaning.html
+http://www.shu.ac.uk/emls/10-1/revspilm.htm
+http://www.shu.ac.uk/emls/si-14/siegcity.html
+http://www.shu.ac.uk/schools/cs/design/furniture/apply.htm
+http://www.shundahai.org/APPEALFIRE.htm
+http://www.shunn.net/mormon/terror/terror03.html
+http://www.shutterblinds.com/shutters_blinds/raised_panel.asp
+http://www.shutterbug.com/features/0804sb_wideopen/
+http://www.shutterbug.net/columns/0903sb_lesson/
+http://www.shuttleworthfoundation.org/index.php?option=content&task=view&id=73&Itemid=28
+http://www.shytobuy.co.uk/index.cfm?mm=10&fuse=SkinCare&cat=30&sub=67
+http://www.si.edu/scmre/educationoutreach/ourstory.htm
+http://www.si.umich.edu/chico/instrument/pages/tlkdrum_gnrl.html
+http://www.si.umich.edu/spies/people.html
+http://www.sia.com/speeches/html/purcell11-7-03.html
+http://www.siam.org/siamnews/05-01/howes.htm
+http://www.siamdivers.com/advice/advice.htm
+http://www.siamesekitties.com/2000int.html
+http://www.siav.org/vivisection/rdelays/
+http://www.siburesort.com/Getting%20to%20Sibu/Getting%20to%20Sibu.htm
+http://www.sice.oas.org/TPD/CAR/MatxMarch16_2005.asp
+http://www.sice.oas.org/Trade/us-jrd/usjrd2.asp
+http://www.sice.oas.org/trade/crcrcom_e/Chap01_e.asp
+http://www.sichosinenglish.org/cgi-bin/calendar?holiday=purim1821
+http://www.sick-boy.com/roadtoperdition.htm
+http://www.sickle-psychology.com/
+http://www.sics.se/~martins/research.php
+http://www.siderean.com/pr20041206stidolph.html
+http://www.sideroad.com/seamless/column20.html
+http://www.sidhe.org/~dan/blog/archives/cat_what_couldve_been.html
+http://www.sidis.net/Genius.htm
+http://www.sidis.net/tf1.htm
+http://www.sidran.org/casa.html
+http://www.sidroth.org/prayer_main28.htm
+http://www.siebertnet.com/html/body_newsletter.asp?Idx=43
+http://www.siecus.org/policy/PUpdates/pdate0116.html
+http://www.sienasojourn.com/sienaletter.html
+http://www.sierraclub.ca/national/media/item.shtml?x=817
+http://www.sierraclub.ca/national/programs/atmosphere-energy/climate-change/ten-myths-kyoto.html
+http://www.sierraclub.com/sprawl/factsheet.asp
+http://www.sierraclub.org/biotech/kraft.asp
+http://www.sierraclub.org/ca/scc/bylaws.asp
+http://www.sierraclub.org/john_muir_exhibit/life/life_and_letters/chapter_5.html
+http://www.sierraclub.org/john_muir_exhibit/life/life_and_letters/chapter_8.html
+http://www.sierraclub.org/john_muir_exhibit/writings/cruise_of_the_corwin/appendix_2.html
+http://www.sierraclub.org/john_muir_exhibit/writings/my_first_summer_in_the_sierra/chapter_1.html
+http://www.sierraclub.org/john_muir_exhibit/writings/my_first_summer_in_the_sierra/chapter_11.html
+http://www.sierraclub.org/john_muir_exhibit/writings/my_first_summer_in_the_sierra/chapter_4.html
+http://www.sierraclub.org/john_muir_exhibit/writings/our_national_parks/chapter_3.html
+http://www.sierraclub.org/john_muir_exhibit/writings/the_yosemite/chapter_6.html
+http://www.sierraclub.org/planet/backissues.asp
+http://www.sierraclub.org/sierra/199903/lol.asp
+http://www.sierraclub.org/sierra/199911/lol.asp
+http://www.sierraclub.org/sierra/200009/whyvote.asp
+http://www.sierraclub.org/sierra/200011/lol.asp
+http://www.sierraclub.org/sierra/200103/letters.asp
+http://www.sierraclub.org/sierra/200311/media1.asp
+http://www.sierraclub.org/sierra/200405/lol.asp
+http://www.sierraclub.org/sierra/200407/lol.asp
+http://www.sierraclub.org/sierra/200411/lol.asp
+http://www.sierraclub.org/sprawl/factsheet.asp
+http://www.sierraclub.org/trade/overview/
+http://www.sierraclubmass.org/events/events.html
+http://www.sierraclubri.org/transportation/
+http://www.sierraconsultants.net/Stormwater%20Filters.htm
+http://www.sierraoaksranch.com/links.html
+http://www.sierrasun.com/article/20050106/LIFE/101060011
+http://www.sierratimes.com/05/01/15/soldier_may_speak.htm
+http://www.sierratradingpost.com/xq/asp/base_no.80369/dept_id./est./qx/product.htm
+http://www.sierratradingpost.com/xq/asp/base_no.80369/dept_id./qx/product.htm
+http://www.sierratradingpost.com/xq/asp/base_no.80370/dept_id./qx/product.htm
+http://www.sierratradingpost.com/xq/asp/base_no.80371/dept_id./est./qx/product.htm
+http://www.sierratradingpost.com/xq/asp/base_no.80371/dept_id./qx/product.htm
+http://www.siestakeychamber.com/about.htm
+http://www.sifc.edu/Indian%20Studies/IndigenousThought/winter99/iroquois.htm
+http://www.sifry.com/alerts/archives/000320.html
+http://www.sifry.com/alerts/archives/2005_03.html
+http://www.sigames.com/softography.php?type=view&id=13
+http://www.sigames.com/the_bootroom.php?type=view&article_id=846
+http://www.sightquest.com/shopping/automobiles-3163.htm
+http://www.sightsavers.org.uk/html/eyeconditions/human_eye_default.htm
+http://www.sigilgames.com/000103.php
+http://www.siglamag.com/features/0407/AngelsWithDirtyFaces.php
+http://www.sigmadesigns.com/investors/earnings/F2000_Q3.htm
+http://www.sigmatel.com/products/tech-support.htm
+http://www.sign-lang.uni-hamburg.de/SigningBooks/SBRC/Grid/d71/guide17.htm
+http://www.sign.ac.uk/guidelines/fulltext/54/section2.html
+http://www.sign.ac.uk/guidelines/fulltext/56/section9.html
+http://www.sign.ac.uk/guidelines/fulltext/66/section2.html
+http://www.signaturebooks.com/JosephSmith.htm
+http://www.signindustry.com/digital/articles/2004-08-31-JD-CRMpt1.php3
+http://www.signonsandiego.com/news/weblogs/brain/archives/001279.html
+http://www.signonsandiego.com/travel/askgeorge.html
+http://www.signonsandiego.com/uniontrib/20040721/news_1c21patients.html
+http://www.signonsandiego.com/uniontrib/20041128/news_1b28jaffe.html
+http://www.signonsandiego.com/uniontrib/20041207/news_lz1c7qa.html
+http://www.signonsandiego.com/uniontrib/20041214/news_lz1c14well.html
+http://www.signonsandiego.com/uniontrib/20050102/news_lz1v2fear.html
+http://www.signonsandiego.com/uniontrib/20050120/news_1n20iraq.html
+http://www.signonsandiego.com/uniontrib/20050123/news_1m23sdsu.html
+http://www.signonsandiego.com/uniontrib/20050127/news_1n27derail.html
+http://www.signserv.com/alphadisplays.html
+http://www.signweb.com/electric/cont/nuts990319.html
+http://www.sigov.si/mzz/eng/slovenes_abro/about_us.html
+http://www.sigphi.org/theta/chief.htm
+http://www.sihe.ac.uk/sihe/hum_pa/pthuman.htm
+http://www.sikhlionz.com/antisikhantimuslimriots.htm
+http://www.sikhnet.com/sikhnet/articles.nsf/0/c0d52a29e13995de87256671004e4634?OpenDocument
+http://www.sil.org/anthro/articles/sustain.htm
+http://www.sil.org/klp/ttt/chapter1.html
+http://www.silcom.com/~peterf/ideas/carter5.htm
+http://www.silentmajorityny.org/your_stories/
+http://www.silentqueuedesign.com/babyblog/
+http://www.siliconbeachtraining.co.uk/human_resources_training.htm
+http://www.siliconbeachtraining.co.uk/sales_training.htm
+http://www.siliconbeat.com/
+http://www.siliconchip.com.au/cms/A_102993/article.html
+http://www.siliconera.com/ps2/fmadreamcarnival/040908.htm
+http://www.siliconstrategies.com/markets/
+http://www.siliconstrategies.com/markets/business/?archiveDate=01/01/2005
+http://www.siliconstrategies.com/markets/business/europe/?archiveDate=01/01/2005
+http://www.siliconvalley.com/mld/siliconvalley/8461735.htm
+http://www.siliconvalley.com/mld/siliconvalley/business/columnists/dan_gillmor/ejournal/2529072.htm
+http://www.siliconvalley.com/mld/siliconvalley/business/columnists/gmsv/11211227.htm
+http://www.siliconvalley.com/mld/siliconvalley/business/columnists/gmsv/6273717.htm
+http://www.siliconvalley.com/mld/siliconvalley/business/columnists/gmsv/6273717.htm?template=contentModules/printstory.jsp
+http://www.siliconvalley.com/mld/siliconvalley/business/special_packages/silicon_valley_150/5630613.htm
+http://www.siliconvalley.com/mld/siliconvalley/business/special_packages/silicon_valley_150/5630613.htm?template=contentModules/printstory.jsp
+http://www.silklantern.com/bb_profile.php?mode=view&user=164
+http://www.silver-engineering.com/p_n_c.htm
+http://www.silver-investor.com/charlessavoie/DOGS.htm
+http://www.silver-investor.com/charlessavoie/edmondson.htm
+http://www.silverblue.org/wp/index.php?cat=25
+http://www.silverbulletcomicbooks.com/ambi/104668606257023.htm
+http://www.silverbulletcomicbooks.com/reviews/110812888963663.htm
+http://www.silverbulletcomicbooks.com/ynb/
+http://www.silverdiscount.com/customDocs/just2System.asp
+http://www.silverliningmm.com/photohldrframe.htm
+http://www.silvermedicine.org/silver-heavy-metal.html
+http://www.silversmithing.com/1forum.htm
+http://www.silversure.com/shop/cutlery_collector.php
+http://www.silvertipstea.com/Merchant2/merchant.mv?Screen=CTGY&Store_Code=STTRR&Category_Code=FAIRTRADE
+http://www.simaqianstudio.com/
+http://www.simbithi.com/
+http://www.simegen.com/jl/kren/krenMoltBrotherinfo.html
+http://www.simhq.com/simhq3/sims/turret/sbmissions/scenarioprinciples.shtml
+http://www.simlabs.arc.nasa.gov/vms/research.html
+http://www.simmonsco-intl.com/company_qa.asp
+http://www.simnet.is/halfdanh/vestur.htm
+http://www.simon-rose.com/
+http://www.simon.rochester.edu/programs/simon_experience_exe.aspx
+http://www.simon.rochester.edu/programs/simon_experience_ms.aspx
+http://www.simon.rochester.edu/programs/simon_experience_pt.aspx
+http://www.simonlewis.com/books/cars_c.htm
+http://www.simonmidgley.co.uk/achieving/inclusion.htm
+http://www.simonsays.com/content/content.cfm?sid=33&pid=407189&agid=2
+http://www.simonsays.com/content/content.cfm?sid=33&pid=501102&agid=2
+http://www.simonsays.com/content/content.cfm?sid=33&pid=505977&agid=4
+http://www.simonsays.com/content/content.cfm?sid=33&pid=507409
+http://www.simonsays.com/content/content.cfm?sid=33&pid=512651
+http://www.simonsays.com/content/content.cfm?sid=45&pid=507409
+http://www.simonsays.com/content/content.cfm?sid=45&pid=512651
+http://www.simonsays.com/content/content.cfm?sid=798&pid=505977&agid=4
+http://www.simonyi.ox.ac.uk/dawkins/WorldOfDawkins-archive/Catalano/box/behe.shtml
+http://www.simonyi.ox.ac.uk/dawkins/WorldOfDawkins-archive/Dawkins/Work/Articles/1999-10-04snakeoil.shtml
+http://www.simonyi.ox.ac.uk/dawkins/WorldOfDawkins-archive/Dawkins/Work/Interviews/thinktnk.shtml
+http://www.simonyi.ox.ac.uk/dawkins/WorldOfDawkins-archive/Media/meaning_of_life.shtml
+http://www.simotime.com/vsmfsk01.htm
+http://www.simple-times.org/pub/simple-times/usec/wp01.html
+http://www.simplebits.com/
+http://www.simplebits.com/notebook/2003/09/08/simplequiz_part_iv_when_to_p.html
+http://www.simpleliving.net/simpleradio/resource.asp?sku=elal
+http://www.simpleliving.net/ymoyl/fom-article-16.asp
+http://www.simpleliving.org/Archives/XPac/XPac1987WarToys.html
+http://www.simpleliving.org/main/StudyGuides.html
+http://www.simplemotor.com/
+http://www.simpleplan.com/news.php
+http://www.simpletoremember.com/vitals/Anthropic-Principle.htm
+http://www.simpletoremember.com/vitals/LifeisforLove.htm
+http://www.simplewood.co.uk/feature.php?featureID=48
+http://www.simplonpc.co.uk/NorthSeaFerries.html
+http://www.simplyhandhelds.com/reviews/B00004VWM3_5.html
+http://www.simplyhydro.com/whatis.htm
+http://www.simplymanchester.co.uk/business.asp?id=524
+http://www.simpol.org/dossiers/dossier-UK/html-UK/implementation-UK.html
+http://www.simpsoncrazy.com/information/lists/recycled.shtml
+http://www.simpsonsfolder.com/production/
+http://www.sims.berkeley.edu/~hal/people/hal/NYTimes/2004-03-11.html
+http://www.sims.monash.edu.au/research/km/ackmids2003/program03.html
+http://www.simulation-argument.com/simulation.html
+http://www.simulationinformation.com/calendar.html
+http://www.simulations.co.uk/mixeval.htm
+http://www.sinatraarchive.com/tis/cold1.html
+http://www.sinauer.com/detail.php?id=8478
+http://www.sinc.sunysb.edu/Class/rndtable/the_magazine/essays/passing.html
+http://www.sinclair.edu/academics/egr/index.cfm
+http://www.sing365.com/music/lyric.nsf/Blueprint-Complication-lyrics-Kanye-West/A8F3DCA1A84640D648256FE1000D0D12
+http://www.sing365.com/music/lyric.nsf/D-X-L-Hard-White-lyrics-DMX/9BA4E112357272C848256874000C8C32
+http://www.sing365.com/music/lyric.nsf/Hate-The-Playa-lyrics-IMx/C6049698B6CC8D9348256BE500049D21
+http://www.sing365.com/music/lyric.nsf/Mosh-lyrics-Eminem/4B2AC85F1BA8364C48256F350006365C
+http://www.sing365.com/music/lyric.nsf/Real-Life-lyrics-Girls-Aloud/B5D8C37EC98F5E9C48256F550015E296
+http://www.sing365.com/music/lyric.nsf/South-Side-lyrics-Ashanti/CAA511F2F5654A6148256E8E0005EF18
+http://www.sing365.com/music/lyric.nsf/U-Know-What's-Up-Rap-Remix-lyrics-Xzibit/E9C483CEDA624A96482569FB0013427C
+http://www.singaporeexpats.com/forum/ftopic9850.html
+http://www.singers.com/world/africa.html
+http://www.singhsabha.com/ceremonies.htm
+http://www.singlefather.org/carticles/stayinginvolved123101.htm
+http://www.singlescafe.net/10tips.html
+http://www.singlescafe.net/HSM.html
+http://www.singlesouthernguy.com/
+http://www.singletrackworld.com/article.php?sid=1602
+http://www.singmind.com/singleminded/
+http://www.singmind.com/singleminded/home.htm
+http://www.singpersonals.com/
+http://www.sinistervisions.com/portfolio/port_testify.shtml
+http://www.sinkandstove.co.uk/albumpages/hospitalradio2.html
+http://www.sinoherbking.com/sk1/news20021018-1.html
+http://www.sintef.no/content/page1____1749.aspx
+http://www.sintef.no/content/page1____3581.aspx
+http://www.sintonisd.net/Administration/articles/TESTIMONY_BEFORE_THE_JOINT_SELECT_COMMITTEE.htm
+http://www.siol-nan-gaidheal-usa.com/educt.htm
+http://www.siol-nan-gaidheal.com/agg.htm
+http://www.siol-nan-gaidheal.com/yester.htm
+http://www.siom.com/resources/texts/articles/xie-kr/xie.html
+http://www.sioux-art.com/en/articles.php?CatNo=46
+http://www.sipcenter.com/sip.nsf/html/Reports+about+SIP
+http://www.sipe.com/halebopp/cometpix.htm
+http://www.sipixdigital.com/support/Common/usb_xp.shtml
+http://www.siptu.ie/publications/ppe.html
+http://www.sir-cliff.com/cliffv5.html
+http://www.sir-george-young.org.uk/FAQ/newsitem.cfm?newsid=1545
+http://www.sir.com.au/news/london.html
+http://www.sirc.org/articles/articles.html
+http://www.sirc.org/publik/fvintro.html
+http://www.sirdelux.com/content/interview.htm
+http://www.sirharrylauder.com/lyrics/
+http://www.sirinet.net/~jgjohnso/apbio2.html
+http://www.sirlunchalot.com/
+http://www.sirmeeting.org/index.cfm?fuseaction=Custom.Content&MenuID=905
+http://www.sirsi.com/Resources/abram_articles.html
+http://www.sirspeedydowntownsandiego.com/
+http://www.sirweb.org/congAff/capitolHillUpdateApr04.shtml
+http://www.sis.gov.eg/calendar/html/cl301296.htm
+http://www.siskiyous.edu/class/engl12/folksong/
+http://www.siskiyous.edu/dsps/faq.html
+http://www.siskiyous.edu/hper/athletics/football/shasta2004.htm
+http://www.siskoid.com/AtoZA1.htm
+http://www.sisoftware.co.uk/
+http://www.sissel-online.com/article/ten_steps.php
+http://www.sisterbetty.org/roadtrip2004/roadtripday9.htm
+http://www.sisterschoice.com/tradadopt.html
+http://www.sit-on-topkayaking.com/Store/StoreAcc.html
+http://www.sit.edu/degree.html
+http://www.sit.edu/sit40/conference.html
+http://www.site.uottawa.ca/~luigi/csi5109/recursive.html
+http://www.sitedone.com/site/about/index.php
+http://www.siteexperts.com/paradise/getResource.asp?r_id=1301
+http://www.sitepoint.com/article/become-a-business-owner
+http://www.sitepoint.com/article/core-relationship-strategy
+http://www.sitepoint.com/article/dhtml-utopia-modern-web-design
+http://www.sitepoint.com/article/influence-sell-web-design
+http://www.sitepoint.com/article/james-atkinson-founder-phpbb
+http://www.sitepoint.com/article/loading-time-keep-visitor
+http://www.sitepoint.com/article/means-painless-pitch
+http://www.sitepoint.com/article/product-manager-macromedia
+http://www.sitepoint.com/article/steps-next-freelance-client/2
+http://www.sitepoint.com/article/successful-development
+http://www.sitepoint.com/books/css1/
+http://www.sitepoint.com/forums/archive/index.php/t-178569.html
+http://www.sitepoint.com/forums/showthread.php?goto=lastpost&t=222967
+http://www.sitepoint.com/forums/showthread.php?t=158750
+http://www.sitepoint.com/forums/showthread.php?t=219050
+http://www.sitepoint.com/forums/showthread.php?t=222967
+http://www.sitepoint.com/print/it-industry-certification
+http://www.sitepoint.com/print/james-atkinson-founder-phpbb
+http://www.sitepoint.com/print/steps-next-freelance-client
+http://www.sitepoint.com/print/teach-yourself-css-24-hours
+http://www.sitesatlas.com/cgi-bin/pod/pod.cgi?dir=/Regional/Europe/United_Kingdom/Recreation_and_Sports/Home_and_Garden/Gardening/
+http://www.siths.org/contracts/physed.htm
+http://www.sitnbull.com/
+http://www.sitra.fi/eng/index.asp?DirID=68&DocID=4443
+http://www.siu.edu/orda/guide/chap7.html
+http://www.siu.edu/~gpsc/minutes03/Minutes030204.htm
+http://www.siu.edu/~shp/
+http://www.siue.edu/GRADUATE/catalog/CH2/CAS/history.html
+http://www.sivakalpa.org/revwaypart1.html
+http://www.sivananda.org/ttceurope/introduction.php
+http://www.sixapart.com/log/2003/04/six_apart_miles.shtml
+http://www.sixapart.com/log/2003/06/why_we_need_ech.shtml
+http://www.sixapart.com/log/2004/06/announcing_pric.shtml
+http://www.sixapart.com/log/2004/08/launched_movabl.shtml
+http://www.sixapart.com/press/six_apart_ltd_announces_new_weblogg.shtml
+http://www.sixgolds.com/tasi.htm
+http://www.sixmurphys.com/bradley/howtoavoid.htm
+http://www.sizemore.co.uk/blogmore.html
+http://www.sizewise.com/articles/god/god.html
+http://www.sizzlebop.com/gift2.htm
+http://www.sjc.edu/content.cfm/pageid/255
+http://www.sjc.org/AirportReport/Mar05/AR_content.html
+http://www.sjc.ox.ac.uk/alumni/display/magazine.php?pageId=6&textId=34&pageNo=1
+http://www.sjc.ox.ac.uk/alumni/display/vi_magazine.php?pageId=6&textId=34&pageNo=1
+http://www.sjcc.com/event_planning/food_beverage/
+http://www.sjgames.com/ill/1995/ill-may95.html
+http://www.sjpbank.co.uk/importantinfo/legalinfo.asp
+http://www.sjpc.co.uk/announcements-press-2000-22mar.html
+http://www.sjsharks.com/interactive/in_the_crease/news.asp?news_id=15
+http://www.sjsoft.com/technicalpapers/WhyOrderBook.htm
+http://www.sjsu.edu/depts/english/2004.htm
+http://www.sjsu.edu/depts/english/foropen.htm
+http://www.sjteach.org/5home
+http://www.skadden.com/index.cfm?contentID=45&bioID=835
+http://www.skagitvalleyherald.com/articles/2004/12/30/news/news05.txt
+http://www.skateboard.com/frontside/101/myride/trucks.asp
+http://www.skatecity.com/nyc/where/manhattann.html
+http://www.skategroove.com/represent.asp
+http://www.skateparkguide.com/For%20Profit.htm
+http://www.skattabrain.com/css-books-plain/067232587X.html
+http://www.skatteetaten.no/Templates/ArtikkelUtskrift.aspx?id=28667&printmode=true
+http://www.skedaddle.co.uk/page.asp?ID=9
+http://www.skepsis.nl/bonati-eng.html
+http://www.skeptic.com/03.2.miele-murray-interview.html
+http://www.skeptic.com/eskeptic12-30-04.html
+http://www.skepticfiles.org/american/disease.htm
+http://www.skepticfiles.org/mys4/nxtdcade.htm
+http://www.skepticfiles.org/mys4/shin.htm
+http://www.skepticfiles.org/skeptic/circlera.htm
+http://www.skepticism.net/discussion/fullthread$msgnum=134
+http://www.skepticnews.com/
+http://www.skepticnews.com/2005/02/rednova_news_ca.html
+http://www.skepticreport.com/mystics/ghoststory.htm
+http://www.skeptics.ca/articles/gower-ghost.html
+http://www.skeptictank.org/gs/safe3edu.htm
+http://www.skhs.org.au/SKHShotels/introduction.htm
+http://www.ski-and-ski.com/Patrick/Pat_Histry.htm
+http://www.skiclub.co.uk/skiclub/fitness/transceiverhire.asp
+http://www.skidmore.edu/~gthompso/britrock/NME/nme6810.htm
+http://www.skiingmag.com/skiing/feature/article/0,12910,396084,00.html
+http://www.skill.org.uk/help/index.asp
+http://www.skillsactiveuk.com/newsstore/news071004018
+http://www.skillset.org/
+http://www.skillstudio.co.uk/course/presentation-skills-3.htm
+http://www.skillstudio.co.uk/faqs/
+http://www.skimarmot.com/u/whatsnew.html
+http://www.skin-beauty.com/acneskin.html
+http://www.skincancer.org/older/index.php
+http://www.skincarephysicians.com/eczemanet/whatis.html
+http://www.skincarephysicians.com/psoriasisnet/thinking_other_ways.htm
+http://www.skinorthcarolina.com/default.asp
+http://www.skiplacour.com/visit.htm
+http://www.skippingdot.net/2002/01/30
+http://www.skippyslist.com/skippylist.html
+http://www.skiptonweb.co.uk/
+http://www.skoah.com/
+http://www.skokie.lib.il.us/s_kids/kd_booklists/kd_lists/jewish_arab.html
+http://www.skoool.ie/skoool/careermatters.asp?id=607
+http://www.skoool.ie/skoool/collegechoice.asp?id=2758
+http://www.skoool.ie/skoool/examcentre_jc.asp?id=179
+http://www.skoool.ie/skoool/examcentre_sc.asp?id=1397
+http://www.skoool.ie/skoool/examcentre_sc.asp?id=1707
+http://www.skotos.net/articles/BSTG_56.shtml
+http://www.skuz.net/potatoware/PSKB-029.html
+http://www.sky-bolt.com/hollyandivy.htm
+http://www.sky.com/showbiz/article/0,,50120-1166694,00.html
+http://www.skyartstudio.com/
+http://www.skyhawke.com/investors.html
+http://www.skyhighway.com/~adam/gaia_resurrection_new_version.html
+http://www.skylab.com.au/kb/doc_faq_0043.html
+http://www.skylab.com.au/kb/doc_faq_0047.html
+http://www.skylab.com.au/kb/doc_faq_0056.html
+http://www.skylighter.com/skylighter_info_pages/article.asp?Item=65
+http://www.skylineproperties.com/buyers_resources.php
+http://www.skylit.com/bpquotes.html
+http://www.skyminds.net/lit_gb/lord_jim_wandering_tale.php
+http://www.skynet.ie/~patcamp/My.cv.html
+http://www.skype.com/products/explained.html
+http://www.skyrme.com/insights/3lrnorg.htm
+http://www.skyrme.com/pubs/kcomm.htm
+http://www.skyrme.com/updates/u32.htm
+http://www.skyscript.co.uk/colour.html
+http://www.skyscript.co.uk/horary1ed.html
+http://www.skysurfers.skywards.com/SkysurfersGoodies/Rewards/Hotels/partners_hotels.asp
+http://www.skyviewzone.com/astroanalyze.htm
+http://www.skyward.com/News/Archive/Q2_2003.shtml
+http://www.skywards.co.nz/infoCafeBar.htm
+http://www.skywatchertelescope.net/WhatsNew.html
+http://www.sla.org/chapter/csrn/Employment.html
+http://www.sla.org/chapter/ctx/jobs.htm
+http://www.sla.org/chapter/cwcn/wwest/v4n2/slform.htm
+http://www.sla.org/content/Events/Confannualreports/2002annualreport.cfm
+http://www.sla.org/content/SLA/advocacy/ppolicyupdts/update0201.cfm
+http://www.sla.org/content/resources/research/rsrchstatement.cfm
+http://www.slac.stanford.edu/slac/media-info/980724/fel-pr.htm
+http://www.slackermanager.com/
+http://www.slackermanager.com/slacker_manager/
+http://www.slais.ubc.ca/PEOPLE/students/resumes/R_Matiachuk/Employment-Present.htm
+http://www.slam.nhs.uk/news/mediadetail.aspx?id=50
+http://www.slam.nhs.uk/news/mediadetail.aspx?id=57
+http://www.slam.nhs.uk/news/press/media2002a.asp
+http://www.slamnet.org.uk/re/common_questions.htm
+http://www.slantpoint.com/mt-arx/2004/10/simubloging_bas.php
+http://www.slashnot.com/index.php3?topic_id=49
+http://www.slattsnews.observationdeck.org/
+http://www.slayage.tv/essays/slayage4/barbaccia.htm
+http://www.slcpl.lib.ut.us/master_events.jsp?parent_id=9&page_id=21
+http://www.sldirectory.com/cal.html
+http://www.sleddogcentral.com/merchandise.htm
+http://www.sleepnet.com/definition.html
+http://www.sleepnet.com/rest2/messages/467.html
+http://www.sleepnet.com/shift2/messages/343.html
+http://www.sleepnet.com/shift2/messages/397.html
+http://www.slelections.gov.lk/election_pro3.html
+http://www.slick-net.com/space/horizons/index.phtml
+http://www.slidescanning.com/
+http://www.slightlybewildered.com/archives.php?date=2002_01
+http://www.slightlybewildered.com/archives.php?date=2004_04
+http://www.slightlynorth.com/
+http://www.slightlyoff.com/bio_cpe.htm
+http://www.slightlywarped.com/stories/timewrp2.html
+http://www.slimeland.com/lazy/webdesign.html
+http://www.slis.indiana.edu/news/story.php?story_id=640
+http://www.sln.org.uk/geography/
+http://www.sln.org.uk/geography/thinking_through_geography.htm
+http://www.sloan-c.org/effective/details3.asp?LE_ID=37
+http://www.sloan-c.org/effective/details3.asp?LE_ID=60
+http://www.sloan-c.org/effective/framework.asp
+http://www.sloan-c.org/publications/jaln/v8n1/v8n1_rhodes.asp
+http://www.sloan-c.org/publications/jaln/v8n3/v8n3_pelz.asp
+http://www.sloan-c.org/publications/view/v2n5/editorletterv2n5.htm
+http://www.sloan-c.org/workshop/copyrightworkshop.asp
+http://www.sloanmusic.com/a/about/patricksustour
+http://www.slolane.org/politics.htm
+http://www.sloperama.com/advice/bulletinbd.htm
+http://www.slostc.org/
+http://www.slovakspectator.sk/clanok-1342.html
+http://www.slovobooks.com/phoenix/phoenix_2003/newsletter_3.html
+http://www.slowapple.com/
+http://www.slower-speeds.org.uk/redesign.htm
+http://www.slowpokefarm.com/class_details.htm
+http://www.slowtrav.com/europe/cell_phones.htm
+http://www.slowtrav.com/europe/wear.htm
+http://www.slowtrav.com/tr/TripReport.asp?tripid=508&index=4
+http://www.slowtrav.com/tr/print.asp?tripid=508
+http://www.slowtrav.com/uk/instructions/driving.htm
+http://www.slowtwitch.com/mainheadings/coachcorn/power.html
+http://www.slowtwitch.com/mainheadings/interview/warrenscott.html
+http://www.slsa.sa.gov.au/site/text_only.cfm?nav_id=1128
+http://www.slsii.org/ecotour.htm
+http://www.slso.org.uk/information.html
+http://www.slso.org.uk/justice1-01.html
+http://www.slu.edu/libraries/pius/archives/collections/docmss2.html
+http://www.sluggerotoole.com/archives/2005/05/when_asked_by_j.php
+http://www.sluggerotoole.com/archives/2005/06/whiterock_parad.php
+http://www.sluggerotoole.com/archives/parties/index.php
+http://www.sluggy.com/
+http://www.slumdance.com/blogs/brian_flemming/archives/001126.html
+http://www.slv.se/templatesHeatox/Heatox_Page____10170.aspx
+http://www.slweekly.com/cls/browse.cfm?categoryID=6
+http://www.slweekly.com/editorial/2004/feat_2004-01-22.cfm
+http://www.slyck.com/archive.php?m=9&y=2003
+http://www.sma-uk.org/sma-uk/constitution.htm
+http://www.sma.org/smj/96jul8.htm
+http://www.smag.co.uk/branch_information.html
+http://www.smallbizbooks.com/cgi-bin/SmallBizBooks/00073.html
+http://www.smallbizpipeline.com/resources/taxcenter.jhtml
+http://www.smallbiztechnology.com/avantgo/2005/06/8-tips-for-customer-relationship.shtml
+http://www.smallbusinesscomputing.com/biztools/print.php/2110351
+http://www.smallbusinesscomputing.com/webmaster/article.php/3454731
+http://www.smallbusinesscomputing.com/webmaster/print.php/3454731
+http://www.smallbytes.net/~bobkat/fear.html
+http://www.smallcap.ca/SC2.37.htm
+http://www.smalldeadanimals.com/
+http://www.smalldeadanimals.com/archives/001630.html
+http://www.smalldog.com/newsarchive/edsup_display.php?id=95
+http://www.smalldoggies.com/colsp_holm_002.html
+http://www.smallfarmsuccess.info/management/print_669.cfm
+http://www.smallfarmsuccess.info/management/print_671.cfm
+http://www.smallfordspares.co.uk/terms.phtml
+http://www.smallholder.co.uk/the_west_country/smallholder/news/SMALLHOLDER_NEWS_ORGANIC4.html
+http://www.smallisprofitable.org/207Benefits.html
+http://www.smalltalksolutions.com/schedule2004.htm
+http://www.smalltimes.com/document_display.cfm?document_id=8159
+http://www.smalltimes.com/document_display.cfm?section_id=97&document_id=5754
+http://www.smart.net/~tak/Chesterton/manwho_1.html
+http://www.smart2help.com/e-books/tij-2nd-edition/AppendA.htm
+http://www.smartads.info/articles/wa/8.html
+http://www.smartbooks.com/excerpt.asp?ISBN=0385504322
+http://www.smartdivorce.com/articles/interstate.shtml
+http://www.smartdraw.com/specials/flowchart.asp
+http://www.smarterscience.com/sandycoastappendix.html
+http://www.smartertravel.com/advice/advfeatures/advice.php?id=8894
+http://www.smartgrowth.org/about/principles/resources.asp?resource=4&type=6
+http://www.smartgrowth.org/library/byissue.asp?iss=12
+http://www.smartgrowth.org/news/bystate.asp?state=VT
+http://www.smartjourneys.com/concept.html
+http://www.smartmarriages.com/born.networker.html
+http://www.smartmarriages.com/quiz.html
+http://www.smartmarriages.com/using.frontpage.oc.html
+http://www.smartmobs.com/archive/2003/04/08/recommender_sys.html
+http://www.smartmobs.com/book/book_bib_ch_5_0_30.html
+http://www.smartmoney.com/aheadofthecurve/index.cfm?story=20031107
+http://www.smartmoney.com/ask/
+http://www.smartmoney.com/bn/index.cfm?story=20001022093744
+http://www.smartmoney.com/bn/index.cfm?story=20010117080735
+http://www.smartmoney.com/bn/index.cfm?story=20040510090444
+http://www.smartmoney.com/bn/index.cfm?story=20041215043523
+http://www.smartmoney.com/consumer/index.cfm?story=20040524&pgnum=2
+http://www.smartmoney.com/stockscreen/index.cfm?story=20040805intro
+http://www.smartmoney.com/tax/capital/index.cfm?story=taxrates
+http://www.smartmoney.com/tax/retire/index.cfm?story=IRAwithdrawal5
+http://www.smartmoney.com/tradecraft/index.cfm?story=20020401
+http://www.smartmotorist.com/dro/dro.htm
+http://www.smartmotorist.com/nig/nig.htm
+http://www.smartnewchoice.com/ourviews.asp?SPID=7185&LinkID=9236&Title=Featured%20Story%20Idea
+http://www.smartplay.net/ouch/medical/heat/heatinfo.html
+http://www.smartraveller.gov.au/tips/gaolos.html
+http://www.smartraveller.gov.au/tips/travelwell.html
+http://www.smartraveller.gov.au/tips/womtrav.html
+http://www.smartrisk.ca/
+http://www.smartrisk.ca/ContentDirector.aspx?tp=2733
+http://www.smarttelecom.ie/investors/
+http://www.smartthinking.ukideas.com/Putting.html
+http://www.smartvoter.org/1998nov/wa/state/meas/i200/
+http://www.smartvoter.org/2004/11/02/ca/sn/meas/R/
+http://www.smartvoter.org/2004/11/02/ca/state/race/usrep17/
+http://www.smartvoter.org/2005/07/26/ca/sd/vote/rider_r/paper1.html
+http://www.smartwriters.com/
+http://www.smasd.org/Chapter4/scitech%5Cscitechall.htm
+http://www.smbc.org/discover_smbc/faq.htm
+http://www.smbc.org/ministries/children/childrens_events.htm
+http://www.smc.org.uk/glossary/glossary_3.htm
+http://www.smd.qmul.ac.uk/dental/courses/complement/certohe/
+http://www.smdc.army.mil/PubAff/98Eagle/Apr/Page%207.htm
+http://www.smdc.army.mil/PubAff/ArchivedPress/LASERS.html
+http://www.sme.org/cgi-bin/get-mag.pl?&&02sem175&000007&2002/02sem175&ARTME&SME&
+http://www.sme.org/cgi-bin/get-newsletter.pl?LEAN&20041012&4&
+http://www.smh-hq.org/gazette/volumes/152/calls.html
+http://www.smh.com.au/articles/2002/08/01/1028157807780.html
+http://www.smh.com.au/articles/2003/01/19/1042911270602.html
+http://www.smh.com.au/articles/2003/01/19/1042911271082.html
+http://www.smh.com.au/articles/2003/01/26/1043533953403.html
+http://www.smh.com.au/articles/2003/01/27/1043533999118.html
+http://www.smh.com.au/articles/2003/02/28/1046407753895.html
+http://www.smh.com.au/articles/2003/03/26/1048653746026.html
+http://www.smh.com.au/articles/2003/04/10/1049567814312.html
+http://www.smh.com.au/articles/2003/04/28/1051381901056.html
+http://www.smh.com.au/articles/2003/05/19/1053196515705.html
+http://www.smh.com.au/articles/2003/07/02/1056825457732.html
+http://www.smh.com.au/articles/2003/11/25/1069522602007.html
+http://www.smh.com.au/articles/2003/11/26/1069522651339.html
+http://www.smh.com.au/articles/2003/11/26/1069522660731.html
+http://www.smh.com.au/articles/2004/01/19/1074360697178.html?from=storyrhs
+http://www.smh.com.au/articles/2004/02/12/1076548148866.html?from=storyrhs
+http://www.smh.com.au/articles/2004/02/22/1077384635558.html?from=storyrhs
+http://www.smh.com.au/articles/2004/03/26/1079939852080.html?from=storyrhs
+http://www.smh.com.au/articles/2004/03/29/1080544413545.html
+http://www.smh.com.au/articles/2004/04/12/1081621893287.html?from=storyrhs
+http://www.smh.com.au/articles/2004/05/23/1085250868270.html
+http://www.smh.com.au/articles/2004/05/25/1085461749804.html?from=storyrhs
+http://www.smh.com.au/articles/2004/06/04/1086203628511.html
+http://www.smh.com.au/articles/2004/06/09/1086749764191.html
+http://www.smh.com.au/articles/2004/07/16/1089694568757.html
+http://www.smh.com.au/articles/2004/08/03/1091476477691.html
+http://www.smh.com.au/articles/2004/08/07/1091732135091.html
+http://www.smh.com.au/articles/2004/08/11/1092102531995.html
+http://www.smh.com.au/articles/2004/09/10/1094789682660.html?from=storylhs
+http://www.smh.com.au/articles/2004/09/15/1095221657499.html?from=storylhs
+http://www.smh.com.au/articles/2004/09/16/1095221711309.html?from=storylhs
+http://www.smh.com.au/articles/2004/09/22/1095651394146.html?from=storylhs
+http://www.smh.com.au/articles/2004/10/17/1097951555281.html
+http://www.smh.com.au/articles/2004/12/11/1102625586883.html
+http://www.smh.com.au/articles/2005/06/26/1119724527001.html?from=rss
+http://www.smh.com.au/editorial/
+http://www.smh.com.au/handheld/articles/2005/06/21/1119321733713.html
+http://www.smh.com.au/news/After-Saddam/Bombing-near-Allawi-party-office/2005/01/03/1104601298122.html
+http://www.smh.com.au/news/After-Saddam/Fear-and-loathing-on-the-campain-trail/2005/01/29/1106850160213.html
+http://www.smh.com.au/news/Asia-Tsunami/A-life-sacrificed-to-let-her-daughter-survive/2004/12/29/1103996615182.html
+http://www.smh.com.au/news/Asia-Tsunami/A-life-sacrificed-to-let-her-daughter-survive/2004/12/29/1103996615182.html?oneclick=true
+http://www.smh.com.au/news/Asia-Tsunami/Suddenly-I-had-to-learn-how-to-bath-100-babies/2005/01/09/1105205983740.html
+http://www.smh.com.au/news/Basketball/Stink-as-dog-puts-skids-under-match/2005/01/19/1106110816623.html
+http://www.smh.com.au/news/Breaking-News/Inflation-rose-sharply-in-January/2005/01/31/1107020294509.html
+http://www.smh.com.au/news/Breaking-News/Origin-Energy-predicts-profit-rise/2005/02/21/1108834712969.html
+http://www.smh.com.au/news/Breaking-News/Origin-announces-631m-rights-issue/2005/02/21/1108834700608.html
+http://www.smh.com.au/news/Breaking/NICTA-Microsoft-sign-web-security-deal/2005/02/10/1107890327960.html
+http://www.smh.com.au/news/Budget-2005/Instant-tax-cuts-for-all/2005/05/10/1115584970020.html
+http://www.smh.com.au/news/Business/APRA-gives-General-Re-chance-to-explain/2005/03/29/1111862389340.html
+http://www.smh.com.au/news/Business/Christmas-credit-can-be-trouble/2004/12/05/1102182154592.html
+http://www.smh.com.au/news/Business/OPEC-chiefs-fear-spike-turning-to-slump/2004/12/10/1102625535193.html
+http://www.smh.com.au/news/Business/Retail-sales-dip-relieves-rates-pressures/2005/02/04/1107476793048.html
+http://www.smh.com.au/news/Election-2004/Cricket-tragic-pursues-the-followon/2004/10/08/1097089570021.html
+http://www.smh.com.au/news/Election-2004/New-South-Wales/2004/08/29/1093717827090.html
+http://www.smh.com.au/news/Environment/Citys-thirst-a-threat-to-health-of-Shoalhaven/2005/01/14/1105582718207.html
+http://www.smh.com.au/news/Health/Cash-driving-IVF-not-patient-needs-ethicist/2004/11/07/1099781247221.html
+http://www.smh.com.au/news/Horseracing/Even-MPs-should-know-selling-the-Farm-is-not-a-good-idea/2005/01/02/1104601240663.html
+http://www.smh.com.au/news/Icon/Technology-bites-back/2005/04/06/1112489536595.html
+http://www.smh.com.au/news/League/Manly-had-to-sack-me-says-Hoppa/2005/03/23/1111525226714.html
+http://www.smh.com.au/news/Letters/A-mean-spirit-that-forces-families-to-such-heartbreak/2005/04/29/1114635748841.html
+http://www.smh.com.au/news/Letters/Without-rail-were-being-taken-for-village-idiots/2004/12/10/1102625533369.html
+http://www.smh.com.au/news/Management-Focus/New-terrain/2005/05/09/1115584893848.html
+http://www.smh.com.au/news/Miranda-Devine/Standing-up-to-aggressive-secularism/2004/12/08/1102182363720.html
+http://www.smh.com.au/news/Music/Deep-dark-and-dry/2004/12/10/1102625531028.html
+http://www.smh.com.au/news/National/Better-care-for-car-victims/2005/06/12/1118514931365.html?from=moreStories
+http://www.smh.com.au/news/National/Chooks-feet-the-acid-test-for-footinmouth-disease/2005/01/23/1106415457747.html?from=moreStories
+http://www.smh.com.au/news/National/Engine-may-be-the-future-of-space-travel/2005/06/24/1119321897305.html
+http://www.smh.com.au/news/National/Ive-still-never-heard-the-word-sorry/2005/03/04/1109700661799.html
+http://www.smh.com.au/news/National/NYE04-Sydney-reflects/2004/12/30/1104344919159.html
+http://www.smh.com.au/news/National/States-told-to-drop-taxes-or-lose-GST/2005/04/11/1113071914713.html
+http://www.smh.com.au/news/National/The-doctor-who-left-a-town-for-dead/2005/05/27/1117129901058.html
+http://www.smh.com.au/news/National/The-doctor-who-left-a-town-for-dead/2005/06/10/1118347579995.html
+http://www.smh.com.au/news/National/The-risk-that-follows-caesarean/2004/12/16/1102787218025.html
+http://www.smh.com.au/news/National/Tilt-train-crashed-at-twice-speed-limit/2004/11/17/1100574541072.html
+http://www.smh.com.au/news/Next/Justice-Owen-keeps-it-on-the-record/2005/06/13/1118514953233.html
+http://www.smh.com.au/news/Obituaries/Something-of-the-modern-Medici-about-this-Tristan/2005/01/12/1105423552148.html
+http://www.smh.com.au/news/Opinion/For-men-tis-the-season-to-be-jolly-well-sitting-down/2004/12/09/1102182422617.html
+http://www.smh.com.au/news/Opinion/Living-free-of-responsibility-leaves-others-holding-the-baby/2004/11/21/1100972259671.html
+http://www.smh.com.au/news/Opinion/Work-less-an-ethic-more-an-order/2005/06/07/1118123836063.html
+http://www.smh.com.au/news/Peter-Hartcher/Lathams-a-hot-topic-PM-the-devil-they-know/2004/10/07/1097089493393.html
+http://www.smh.com.au/news/Planning/Learning-the-savings-game-is-childs-play/2005/02/04/1107476798856.html
+http://www.smh.com.au/news/Review-New/Ford-F6-Typhoon/2005/01/20/1106110913616.html
+http://www.smh.com.au/news/Ross-Gittins/Porkies-used-to-support-industrial-relations-reform/2005/02/13/1108229855490.html
+http://www.smh.com.au/news/Sauce/Restaurant-rules-with-savvy-deal/2005/06/03/1117568376758.html
+http://www.smh.com.au/news/Soccer/Kingz-hoping-Adshead-hasnt-lost-any-of-his-All-Whites-magic/2005/01/13/1105582651924.html
+http://www.smh.com.au/news/Sport/Scott-makes-strong-start-at-US-Open/2005/06/17/1118869072408.html
+http://www.smh.com.au/news/Tennis/Illequipped-Molik-forced-to-give-herself-a-break/2005/06/16/1118869043252.html
+http://www.smh.com.au/news/business/safety-in-numbers-for-bosses-not-workers/2005/06/24/1119321904705.html
+http://www.smh.com.au/news/national/big-wet-forces-thousands-to-flee/2005/06/30/1119724757181.html
+http://www.smh.com.au/news/russia/sorry-youve-missed-your-connection/2004/10/22/1107890247824.html
+http://www.smh.com.au/news/sport/what-a-start--everyones-had-a-chance-to-put-the-boot-in/2005/06/24/1119321908941.html?from=moreStories
+http://www.smh.com.au/news/united-states/north-and-south/2005/06/18/1118869107293.html
+http://www.smh.com.au/text/articles/2005/02/04/1107476806594.html
+http://www.smh.com.au/text/articles/2005/06/24/1119321904705.html
+http://www.smh.com.au/yoursay/2003/10/03/
+http://www.smhall.org/seniors/
+http://www.smile-aa.citymax.com/page/page/580677.htm
+http://www.smilechildren.org/
+http://www.smilingowner.com/learnfrommistakes.htm
+http://www.smith.edu/meridians/localboard.htm
+http://www.smith.edu/meridians/s-weditorialgrp.html
+http://www.smithallinglane.com/MichaelEMcAleenan.html
+http://www.smithbarney.com/research/disclaimer/8028.html
+http://www.smithdata.net/product.htm
+http://www.smithfam.com/news/mar01z.html
+http://www.smithindustries.com/How-To.html
+http://www.smithindustries.com/LinksEarthFriendlyMore.html
+http://www.smiths-group.com/PressReleases_hand.asp?autonum=77
+http://www.smiths-group.com/PressReleases_hand.asp?autonum=90
+http://www.smiths-group.com/media/PressReleases_hand.asp?autonum=90
+http://www.smiths.com/PressReleases_hand.asp?autonum=90
+http://www.smithsfoodanddrug.com/corpnewsinfo_pr_speeches_pr_archives.htm
+http://www.smithsonianmag.com/smithsonian/issues00/mar00/interest_mar00.html
+http://www.smithsonianmag.si.edu/smithsonian/issues96/oct96/heyman_oct96.html
+http://www.smithvet.com/speaker.shtml
+http://www.smj.org.uk/0802/EWTD.htm
+http://www.sml.ex.ac.uk/postgraduates/phd_film_pract.html
+http://www.smm.org/heart/lessons/lesson1.htm
+http://www.smockingstore.com/folkwear.html
+http://www.smoke-free.ca/filtertips04/spending.htm
+http://www.smokersclubinc.com/
+http://www.smokykin.com/smhs/sevier.html
+http://www.smom.org.au/mIho.htm
+http://www.smorgonsteel.com.au/reinforcing/contact/index.cfm
+http://www.smsonline.com/ct/ct_inf.html
+http://www.smsu.edu/folksong/maxhunter/SongTitle.html
+http://www.smtcmpo.org/bike-ped/activities/bike-map.asp
+http://www.smu.edu/admission/advantage_pride.asp
+http://www.smu.edu/continuing_education/continuing_studies/faq.asp
+http://www.smu.edu/ems/QueryFilter.asp
+http://www.smuc.ac.uk/specialneeds/disability_statement.html
+http://www.smud.org/residential/saving/trees/
+http://www.smuggling.co.uk/web/text/smug43.htm
+http://www.smwa.org.uk/newsite/projects/pg_projects.htm
+http://www.snak.com/SnakHistory.html
+http://www.snakesandfrogs.com/scra/notes/notes0103.htm
+http://www.snant.com/fp/archives/a-new-approach-to-gnostic-myth-and-scripture/
+http://www.snapnetwork.org/stories_about_snap/ca_theyre_not_alone.htm
+http://www.snapnetwork.org/survivors_voice/cyndi_truth_and_voice.htm
+http://www.snark.org/~pjhughes/sci2.htm
+http://www.snarkland.com/index.php/weblog/2316/
+http://www.snarly.com/Unsassy/etiquette.html
+http://www.snh.org.uk/strategy/sr-res00.asp
+http://www.snhu.edu/Southern_New_Hampshire_University/Academics/General_Info/School_of_HTCM/Policies_and_Schedule.html
+http://www.sniggle.net/about.php
+http://www.sniksnak.com/aavs.html
+http://www.sniksnak.com/cathealth/firstaid.html
+http://www.sniksnak.com/doghealth/bloat.html
+http://www.sniksnak.com/doghealth/breeding.html
+http://www.sniksnak.com/doghealth/inhalants.html
+http://www.sniksnak.com/kaddokatz/stories2.html
+http://www.snipsmag.com/CDA/ArticleInformation/features/BNP__Features__Item/0,3374,124600,00.html
+http://www.snma.org/mission6.html
+http://www.snn-rdr.ca/snn/2003jun/faith.html
+http://www.snopes.com/cokelore/bottle.asp
+http://www.snopes.com/critters/cruelty/dynamite.htm
+http://www.snopes.com/food/origins/gatorade.htm
+http://www.snopes.com/humor/nonsense/piano.htm
+http://www.snopes.com/media/notnews/brothel.asp
+http://www.snopes.com/message/ultimatebb.php?/ubb/get_topic/f/20/t/000469/p/1.html
+http://www.snopes.com/message/ultimatebb.php?/ubb/get_topic/f/69/t/000976/p/2.html
+http://www.snopes.com/music/artists/richards.htm
+http://www.snopes.com/music/songs/blowin.htm
+http://www.snopes.com/oldwives/warts.asp
+http://www.snopes.com/politics/ballot/travis.asp
+http://www.snopes.com/politics/kerry/service.asp
+http://www.snopes.com/pregnant/babyexam.htm
+http://www.snopes.com/quotes/barry.htm
+http://www.snopes.com/weddings/newlywed/beckham.asp
+http://www.snopes2.com/rumors/warning.htm
+http://www.snorestop.com/pages/faq.htm
+http://www.snoringshop.com/
+http://www.snowbirds.org/csanews/issues/53/20.html
+http://www.snowcoalition.org/site/about/listserves
+http://www.snowest.com/fusetalk/messageview.cfm?catid=10&threadid=162308
+http://www.snowleopardconservancy.org/homestays-too.htm
+http://www.snowlife.org.uk/telemark_comp.asp
+http://www.snowlionpub.com/pages/astrology.php
+http://www.snpp.com/episodes/1F20.html
+http://www.snpp.com/episodes/7F23.html
+http://www.snpp.com/lists.html
+http://www.snpp.com/news.html
+http://www.snpp.com/other/interviews/scully99b.html
+http://www.snre.umich.edu/current-students/graduate-funds.php
+http://www.sns.ias.edu/~jns/?pagename=Security
+http://www.sntp.net/science_mind.htm
+http://www.snwonline.com/behind/home.asp
+http://www.soane.org/nextii.htm
+http://www.soapcity.com/days/history/history_detail_13400019.jhtml
+http://www.soapcity.com/pass/oneonone/pass_jacklynn_briskey.jhtml
+http://www.sobe.ex.ac.uk/undergraduate/ugfaq.php
+http://www.soc-um.org/survivors/philosophy.html
+http://www.soc.northwestern.edu/blog/publicspaces/archives/000393.html
+http://www.soc.org/breakin1.html
+http://www.soc.ucla.edu/faculty.php?lid=1327&display_one=1
+http://www.soc.ucsb.edu/faculty/scheff/29.html
+http://www.soc.utu.fi/tdk/kv-asiat/esmp.htm
+http://www.socarchsci.org/bulletin/9809/9809n.htm
+http://www.soccer-books.co.uk/acatalog/Online_Catalogue_Advanced_Coaching_Videos_97.html
+http://www.soccer.com/TemplatesFIFA/Catalog/FIFApolicies.tem?fwc=1
+http://www.soccerhall.org/Spotlight%20HallofFamer/JamesBrown_spotlight.htm
+http://www.soccerhelp.com/Soccer_Coach_Comments.shtml
+http://www.soccerphile.com/soccerphile/archives/wc2002/ne/ssgr.html
+http://www.soccertimes.com/mls/1999/aug24.htm
+http://www.soccerway.com/_oldlayout/news/full/?page=details&area=1105899649
+http://www.soccerway.com/news/full/?page=details&area=1105899649
+http://www.socengine.com/seo/
+http://www.socgenmicrobiol.org.uk/about/history.cfm
+http://www.sochealth.co.uk/history/inversecare.htm
+http://www.social.mtu.edu/careers/alumnicareers.htm
+http://www.socialaffairsunit.org.uk/about_us.php
+http://www.socialaffairsunit.org.uk/blog/
+http://www.socialaffairsunit.org.uk/blog/archives/000291.php
+http://www.socialaffairsunit.org.uk/blog/archives/000370.php
+http://www.socialaffairsunit.org.uk/blog/archives/000473.php
+http://www.socialfunds.com/news/article.cgi/1685.html
+http://www.socialgracesperfected.com/professional_speaker.html
+http://www.socialimpactgames.com/modules.php?op=modload&name=News&file=index&catid=9&topic=&allstories=1
+http://www.socialinvest.org/areas/research/Moskowitz/1996_full.htm
+http://www.socialism.com/elections/opposition.html
+http://www.socialismtoday.org/34/family34.html
+http://www.socialismtoday.org/41/gb_green41.html
+http://www.socialismtoday.org/68/NewZealand.html
+http://www.socialist.net/html/support_sacked_wembley_workers.html
+http://www.socialistalternative.com/literature/stonewall.html
+http://www.socialistalternative.org/literature/nader.html
+http://www.socialistdemocracy.org/Debate/DebateReplyOnIrishRepublicanism.html
+http://www.socialisthistory.ca/Docs/Leninist/Industrial_Act_23.htm
+http://www.socialistnigeria.org/
+http://www.socialistparty.org.uk/2003/313/np4a.htm
+http://www.socialistparty.org.uk/2004/355/pp6.htm
+http://www.socialistparty.org.uk/2004/373/np3c.htm
+http://www.socialistparty.org.uk/socialistwomen/sw3.htm
+http://www.socialistreview.org.uk/westhamblog/
+http://www.socialistunitynetwork.co.uk/reports/solidjune19.htm
+http://www.socialistworker.co.uk/article.php4?article_id=1236
+http://www.socialistworker.co.uk/article.php4?article_id=3238
+http://www.socialistworker.co.uk/article.php4?article_id=3744
+http://www.socialistworker.co.uk/article.php4?article_id=4753
+http://www.socialistworker.co.uk/article.php4?article_id=6705
+http://www.socialistworker.co.uk/print_article.php4?article_id=1236
+http://www.socialistworker.org/2003-2/467/467_08_Chile.shtml
+http://www.socialistworker.org/2004-2/504/504_08_Bhopal.shtml
+http://www.socialistworker.org/2005-2/549/549_10_Socialism.shtml
+http://www.socialistworld.net/eng/2002/03/21.html
+http://www.socialistworld.net/eng/2004/04/15ni.html
+http://www.socialistworld.net/eng/2004/08/18germany.html
+http://www.socialitelife.com/mt/archives/000296.php
+http://www.socialresearchmethods.net/Gallery/king/gmk.ecop.htm
+http://www.socialresearchmethods.net/Gallery/parapi/parapi1.htm
+http://www.socialresearchmethods.net/kb/formatting.htm
+http://www.socialrolevalorization.com/resource/Leipolt.htm
+http://www.socialsecurity.org/daily/05-28-99.html
+http://www.socialservice.com/
+http://www.socialstudies.org/election/
+http://www.society.omron.com/station.html
+http://www.societyofauthors.net/soa/page_id.php4?pid=74&sid=5&urlsection=Information+and+news
+http://www.sociology.org/content/2004/tier2/brasted.html
+http://www.socma.com/Conferences/AnnualDinner_03.htm
+http://www.socom.mil/
+http://www.socrepsoc.com/trep.html
+http://www.socstats.soton.ac.uk/cass/courses0203/sda3.html
+http://www.sodexhousa.com/pubs_fastforward3.htm
+http://www.soe.umich.edu/adifference/davis/
+http://www.soe.umich.edu/innovator/3501/davis/
+http://www.soekris.com/
+http://www.soest.hawaii.edu/expeditions/education-les10.htm
+http://www.soest.hawaii.edu/expeditions/mariana/education-les10.htm
+http://www.sofc.org/ROSARYBOOK2/p261.htm
+http://www.sofiaecho.com/article/jogging-club-takes-off/id_2203/catid_32/brojid_40
+http://www.sofiaecho.com/article/resting-recharging-and-returning/id_4462/catid_32
+http://www.sofiaecho.com/article/resting-recharging-and-returning/id_4462/catid_32/brojid_87
+http://www.sofinpac.com/news/newsarticle.php
+http://www.sofitel.com/hotel_sofitel_england/5_star_hotel_atlantic_city.html
+http://www.sofitel.com/hotel_sofitel_england/alsace_bed_and_breakfast.html
+http://www.sofitel.com/hotel_sofitel_england/bed_breakfast_discount_hotel_london.html
+http://www.sofitel.com/hotel_sofitel_england/cheap_city_hotel_london.html
+http://www.sofitel.com/hotel_sofitel_england/cheap_hotel_madrid.html
+http://www.sofotex.com/download/File_Management/more4.html
+http://www.soft-gems.net/ThemeManager.php
+http://www.softadventure.net/driveleft.htm
+http://www.softerlite.com/html/ourprojects.html
+http://www.softexe.com/
+http://www.softlandmark.com/CyberlinkPowerVCRII.htm
+http://www.softlookup.com/tutorial/SQL/ch03.asp
+http://www.softlord.com/comp/
+http://www.softpanorama.org/History/index.shtml
+http://www.softpedia.com/get/Programming/Other-Programming-Files/Ready-Dating-Site.shtml
+http://www.softrock.co.nz/parkt/pt1299.htm
+http://www.softskull.com/detailedbook.php?isbn=1-932360-40-9
+http://www.softvelocity.com/faq/Language/107-PassingParameterstoUpdate.htm
+http://www.softwar.net/caac.html
+http://www.software-engineer.org/article_read.php?article_id=5000094
+http://www.software-tech.com/dontletthis.html
+http://www.software.org/pub/externalpapers/9804-2.html
+http://www.softwaredioxide.com/channels/PersonView.asp?id=6447
+http://www.softwaregarden.com/products/listgarden/websiterss.html
+http://www.softwarepractice.co.uk/training_tandc.asp
+http://www.softwareshelf.co.uk/info/profile.asp
+http://www.softwaretechnews.com/technews2-2/practical.html
+http://www.sofweb.vic.edu.au/internet/netiquet.htm
+http://www.sofweb.vic.edu.au/science/famsci/activity/lateryr/physics/plyact21.htm
+http://www.sofweb.vic.edu.au/tax/general/
+http://www.sogang.ac.kr/~anthony/KHHiroshima.htm
+http://www.sohh.com/forums/archive/index.php/t-180679.html
+http://www.sohh.com/thewire/read.php?contentID=6532
+http://www.sohh.com/thewire/read.php?contentID=7220
+http://www.soho-it-goes.com/resources/articles/
+http://www.sohu.com/about/English/77.htm
+http://www.soi.city.ac.uk/pgcourses/hcs/hcs5.html
+http://www.soi.city.ac.uk/~db522/disinhe/Evaluation.htm
+http://www.soilandhealth.org/02/0202genhealthbiblio.html
+http://www.sojo.net/index.cfm?action=magazine.article&issue=soj9511&article=951132g
+http://www.sojo.net/index.cfm?action=magazine.article&mode=author&authorid=4&issue=soj9811&article=981142c
+http://www.sojo.net/index.cfm?action=sojomail.display&issue=050609
+http://www.sokwanele.com/blog/2005_06_05_blogarchive.html
+http://www.sol.com/en/modulo.asp?IdPoblacion=10&modulo=Contactar
+http://www.sol.com/en/modulo.asp?IdPoblacion=2&modulo=Contactar
+http://www.sol.com/en/modulo.asp?IdPoblacion=77&modulo=Contactar
+http://www.sol.com/en/modulo.asp?IdProvincia=11&modulo=Contactar
+http://www.sol.com/en/modulo.asp?IdProvincia=29&modulo=Contactar
+http://www.sol.com/en/modulo.asp?IdProvincia=41&modulo=Contactar
+http://www.sol.com/modulo.asp?IdProvincia=29&modulo=Contactar
+http://www.sol.com/modulo.asp?IdProvincia=41&modulo=Contactar
+http://www.solareco.com/articles/article.cfm/id/100
+http://www.solareco.com/articles/article.cfm/id/2
+http://www.solareco.com/articles/article.cfm/id/85
+http://www.solareco.com/service/common.cfm
+http://www.solarispictures.com/reviews7.htm
+http://www.solarmetric.com/News_and_Events/
+http://www.solarnavigator.net/catamaran_hull.htm
+http://www.solarnavigator.net/geography/cape_york_australia.htm
+http://www.solarschools.net/ed_resources/bsmart.aspx
+http://www.solarsolar.com/solarfaq.html
+http://www.solarviews.com/eng/earthsp.htm
+http://www.solbaram.org/articles/clm2su.html
+http://www.solbaram.org/articles/ruschur.html
+http://www.soldiermagazine.co.uk/ll/mailbag1.htm
+http://www.soldiermagazine.co.uk/mag/feature8.htm
+http://www.solent.ac.uk/law/crime.html
+http://www.solidarity-us.org/atc/116Fish.html
+http://www.solidaritycenter.org/document.cfm?documentID=58
+http://www.solihull.gov.uk/cabinet/Housing/hsgcommsafety250304.htm
+http://www.solihull.gov.uk/cabinet/Regeneration/regencd080703.htm
+http://www.solinet.org/www/hamiltonwater
+http://www.solitudethemovie.com/filmmakers.htm
+http://www.sologig.com/employer/profiles/view.php?id=64257
+http://www.solomonsguide.com/go/rissington/
+http://www.solonline.org/aboutsol/who/Senge/
+http://www.solreform.com/naepwritingletter.htm
+http://www.solstice-training.co.uk/TLP.htm
+http://www.solucient.com/forms/demochange.shtml
+http://www.solutionsabroad.com/
+http://www.solutionsabroad.com/index.asp
+http://www.solutionsoft.com/pub1/manualp12.htm
+http://www.solutionsoft.com/pub2/manualp12.htm
+http://www.solutionsoft.com/pub3/manualp12.htm
+http://www.solwayfirthpartnership.org.uk/education.htm
+http://www.solwest.org/contact.htm
+http://www.solwest.org/fairprog04/workshops.htm
+http://www.som.soton.ac.uk/research/cbcs/mentalhealth/JournalClub/JOURN.HTM
+http://www.som.tulane.edu/irb/glossary.html
+http://www.somerset-health.org.uk/mendip/boardexec.html
+http://www.somerset.lib.nj.us/sclsweb1/npreaderscornernewnonfiction.htm
+http://www.somerset.net/arm/fm_only_lowtech.html
+http://www.somersetgateway.com/aboutsom/somermag/july2000/cider.htm
+http://www.somersworld.com/ISSUES/Issue43/special_military.htm
+http://www.somesites2sea.com/deepseafishing.html
+http://www.something-fishy.org/isf/genetics.php
+http://www.something-fishy.org/reach/otherside_eva.php
+http://www.somethingjewish.co.uk/articles/1188_new_chosen_people_.htm
+http://www.somethingjewish.co.uk/articles/1426_get_a_date_online.htm
+http://www.somethingpositive.net/
+http://www.somewhatmuchly.co.uk/index.php?cat=Archaeology
+http://www.somucheasier.co.uk/buy-lcd-tv.html
+http://www.son-rise.org/srsu_reviews.html
+http://www.son.utmb.edu/developt/alumni_halloffame.htm
+http://www.sondrak.com/
+http://www.sonesta.com/neworleans_royal/page.asp?pageid=15966
+http://www.songfacts.com/detail.lasso?id=1443
+http://www.songfacts.com/detail.lasso?id=1791
+http://www.songfacts.com/detail.lasso?id=197
+http://www.songfacts.com/detail.lasso?id=3002
+http://www.songfacts.com/detail.lasso?id=59
+http://www.songlyrics4me.com/brazilian_girl.htm
+http://www.songlyrics4me.com/drunk_horny_woman.htm
+http://www.songman.com/intervie/inter.html
+http://www.songmeanings.net/lyric.php?lid=218
+http://www.songmeanings.net/lyric.php?lid=3530822107858484706
+http://www.songmeanings.net/lyric.php?lid=3530822107858500289
+http://www.songmeanings.net/lyric.php?lid=3530822107858516647
+http://www.songmeanings.net/lyric.php?lid=35777
+http://www.songmeanings.net/lyric.php?lid=39143
+http://www.songmeanings.net/lyric.php?lid=41908
+http://www.songmeanings.net/lyric.php?lid=942
+http://www.songquery.com/html/title/s/songbase_for_worship_leaders_complete_vineyard_song_collection.html
+http://www.songs4teachers.com/easterinformation.htm
+http://www.songsbysinatra.com/stories/stories13.html
+http://www.songsforteaching.com/michaelmitchell/canadafolk.htm
+http://www.songwriteruniverse.com/savage.html
+http://www.soniadf.com/
+http://www.sonic.net/bristlecone/dendro.html
+http://www.sonnets.org/pound.htm
+http://www.sonofthesouth.net/leefoundation/chapter20.htm
+http://www.sonofthesouth.net/leefoundation/civil-war/1861/February/new-orleans-customs-house.htm
+http://www.sonofthesouth.net/leefoundation/lee-jackson/harpers-jackson-lee-2.htm
+http://www.sonoma.edu/users/d/dove/courses/BUS340/Compensation.html
+http://www.sonomabusiness.com/archives/2001-11-column-thomas.html
+http://www.sonomabusiness.com/archives/2002-06-column-caesare.html
+http://www.sonomavalleyvoice.com/
+http://www.sonomavalleyvoice.com/articles.php?id=588
+http://www.sonshi.com/richards.html
+http://www.sony.net/SonyInfo/News/Press/200010/00-1006E/
+http://www.sonypictures.com/corp/cliplicensing.html
+http://www.soonerthought.com/archives/cat_news_commentary.html
+http://www.sooradio.com/en/casino-online-william-hill.html
+http://www.sophia-perennis.com/roots.htm
+http://www.soroptimist-gbi.org/news_070404
+http://www.soros.org/resources/events/downsizing_20050412/summary
+http://www.sorrento.cc/area-positano.php
+http://www.sorryeverybody.com/
+http://www.sortitonline.com/living/default.asp
+http://www.sos-childrensvillages.org/html/situation_around_sos_children_s_village_rafah_deteriorates.html
+http://www.sos.bangor.ac.uk/research/CASIX_PhD_Nov_2004.htm
+http://www.sos.org.uk/smallads.htm
+http://www.sos.state.or.us/elections/nov22004/guide/meas/m38_opp.html
+http://www.sos.state.tx.us/elections/pamphlets/federalapp.shtml
+http://www.soschildrensvillages.org.uk/sos-children-charity/about-child-sponsorship.htm
+http://www.soschildrensvillages.org.uk/sos-children-charity/aids-africa/aids-africa-orphans-best-practice-9.htm
+http://www.sosig.ac.uk/grapevine/Query?view=fullConf&conf_id=-805441355
+http://www.sosig.ac.uk/help/custom.html
+http://www.sosig.ac.uk/roads/subject-listing/Europe-cat/labmark.html
+http://www.sosig.ac.uk/roads/subject-listing/Europe/labmark.html
+http://www.sosig.ac.uk/roads/subject-listing/UK/labmark.html
+http://www.soss.com/
+http://www.sossobriety.com/
+http://www.sossobriety.org/orientation.htm
+http://www.sothethingis.com/Reading%20Aloud.htm
+http://www.soton.ac.uk/International/Applications/Meetusinyourcountry/
+http://www.soton.ac.uk/NewsandEvents/Events/MeetandGreetservice2005/
+http://www.soton.ac.uk/ResearchSupportOffice/FAQs/
+http://www.soton.ac.uk/~qahbk4/desapprev2-7-1.htm
+http://www.sou.edu/AAASPD/Ashland2005/SpecialEvents.html
+http://www.sou.edu/siskiyoucenter/seniorventures/
+http://www.soul-healer.com/book/b-st-fo.htm
+http://www.soulbrother.co.uk/flyingdutchmananthology2.htm
+http://www.soulcity.org.za/01.01.asp
+http://www.souldevice.org/qa_godscommunication_2.html
+http://www.soulforce.org/nola_sbcletters.html
+http://www.soulforce.org/romeadvancereport.html
+http://www.soulfulliving.com/divinecreativity.htm
+http://www.soulfulliving.com/gardeningspiritual.htm
+http://www.soulinvitation.com/peaceuniversity/
+http://www.soulrise.com/common/tolerance.htm
+http://www.soulselfhelp.on.ca/as1.html
+http://www.soundart-hot.com/english/users1_10.htm
+http://www.soundclick.com/stations/stations.cfm?id=110462
+http://www.soundclick.com/stations/stations.cfm?id=141094
+http://www.soundclick.com/stations/stations.cfm?id=146411
+http://www.soundclick.com/stations/stations.cfm?id=79340
+http://www.soundcontrol.co.uk/mod_1/pages/mod_1.21/pages/index.php
+http://www.soundgenerator.com/village/features.cfm?articleid=3793
+http://www.soundgenerator.com/village/features.cfm?articleid=3793&maingenreid=1
+http://www.soundonsound.com/adverts
+http://www.soundonsound.com/readersads/AdBrowse.php?Cat=10
+http://www.soundonsound.com/sos/apr99/articles/b.engineer.htm
+http://www.soundonsound.com/sos/aug03/articles/logicnotes.htm
+http://www.soundonsound.com/sos/jan04/articles/cubasenotes.htm
+http://www.soundonsound.com/sos/oct99/articles/producedsound.htm
+http://www.soundpartners.org/content2005/content_show.htm?doc_id=203239&attrib_id_list=1169,6489,1143
+http://www.soundpolitics.com/archives/004596.html
+http://www.soundslam.com/articles/interviews/interviews.php?interviews=in_yungwu
+http://www.soundstage.com/feedback/resp69.htm
+http://www.soundstage.com/vinyl/vinyl200504.htm
+http://www.soundtransit.org/about/board/resolutions/resolutions_2000.asp
+http://www.sourcekeg.co.uk/cran/doc/contrib/Lemon-kickstart/kr_dstat.html
+http://www.sourcekeg.co.uk/www.python.org/peps/pep-0310.html
+http://www.sourcelife.org/studies/sermons/lyinglion.htm
+http://www.sourcelists.com/Testimonials.asp
+http://www.sourcetext.com/grammarian/less-than-words-can-say/10.htm
+http://www.sourceuk.net/articles/a01975.html
+http://www.sourcewatch.org/index.php?title=Center_for_the_Defense_of_Free_Enterprise
+http://www.south-ayrshire.gov.uk/cgi-bin/Cllr.exe?Category=Ward%203%20-%20Councillor%20William%20MCINTOSH
+http://www.south-end.org/newsletter/
+http://www.south-norfolk.gov.uk/south-norfolk/council.nsf/pages/cabdec020204.html
+http://www.south-norfolk.gov.uk/south-norfolk/council.nsf/pages/cabdec081104.html
+http://www.south-pole.com/p0000071.htm
+http://www.southafrica-newyork.net/consulate/mediumterm.htm
+http://www.southafrica.co.za/travel_info_40.html
+http://www.southafrica.info/10years/addison-book.htm
+http://www.southafrica.info/ess_info/sa_glance/fauna_flora/wildlife.htm
+http://www.southafrica.info/ess_info/sa_glance/scitech/
+http://www.southafrica.info/ess_info/sa_glance/scitech/brenner.htm
+http://www.southafrica.info/ess_info/sa_glance/scitech/opensourcecentre.htm
+http://www.southafrica.info/ess_info/sa_glance/sports/thobela.htm
+http://www.southafrica.info/plan_trip/travel_tips/getting_around/joburg.htm
+http://www.southafrica.info/what_happening/news/elephanttwins.htm
+http://www.southafrica.net/index.cfm?SitePageID=13990
+http://www.southampton.gov.uk/community/communitygroups/communityconcern.asp
+http://www.southampton.liu.edu/academic/courses/u_engl.htm
+http://www.southasianconnection.com/articles/3/1/Targeting-the-Second-Generation-of-South-Asians
+http://www.southasianconnection.com/articles/5/1/John&%2339%3Bs-Search-for-God
+http://www.southasianmedia.net/cnn.cfm?id=172244&category=Religion&Country=AFGHANISTAN
+http://www.southasianmedia.net/cnn.cfm?id=180203&category=Sports&Country=WORLD
+http://www.southasianmedia.net/major_issues/nuclear_armrace/account_talks.cfm?did=55
+http://www.southaustralia.biz/capabilities/management.htm
+http://www.southaustralianhistory.com.au/edeowie.htm
+http://www.southbeach-diet.info/
+http://www.southbendtribune.com/local/communityindex.html
+http://www.southbendtribune.com/stories/2005/06/17/entertainment.20050617-sbt-MICH-D1-Material.sto
+http://www.southbus.com.au/clss3.html
+http://www.southcarolinabedandbreakfast.com/by-laws.shtml
+http://www.southcentre.org/info/southbulletin/bulletin11/bulletin11web-02.htm
+http://www.southcoast.org/heart/
+http://www.southcoasttoday.com/daily/05-99/05-09-99/d01sp082.htm
+http://www.southcollegetn.edu/01beta/beta/serv.html
+http://www.southcollegetn.edu/sctn/serv.html
+http://www.southcom.mil/usag-miami/sites/about/history.asp
+http://www.southdakotastockgrowers.org/news%20releases.htm
+http://www.southdowns.ac.uk/professional/fitness.htm
+http://www.southeast-ra.gov.uk/southeastplan/plan/faqs.html
+http://www.southeastcoachworks.co.uk/testimonials.htm
+http://www.southend.wayne.edu/
+http://www.southend.wayne.edu/modules/news/article.php?storyid=1401
+http://www.southendgrounds.com/
+http://www.southendpress.org/books/p&pex.shtml
+http://www.southern.net/southern/news/?id=2
+http://www.southernct.edu/organizations/rccs/ethicomp/bynum.html
+http://www.southernct.edu/services/?file=services.html
+http://www.southernct.edu/services/index.php?file=services.html
+http://www.southernfoodways.com/oral_history/tnbbq/M02_barbqshop.shtml
+http://www.southernfoodways.com/oral_history/tnbbq/R03_bobbys.shtml
+http://www.southernfoodways.com/oral_history/tnbbq/R12_scotts.shtml
+http://www.southernmuseum.org/exhibits.html
+http://www.southernsiberian.com/available_dogs.html
+http://www.southernvoice.com/blog/index.cfm?start=1/28/05&end=2/4/05
+http://www.southernwindinn.com/bedandbreakfastrooms/flagler.html
+http://www.southessex-trust.nhs.uk/benefits.asp
+http://www.southkent.ac.uk/Access/ViewAllCourses/JanStarts_CourseDetails.asp?GUIDE=99&CREF=NV2BTLD
+http://www.southkent.ac.uk/Access/ViewAllCourses/JanStarts_CourseDetails.asp?GUIDE=99&CREF=VQ2BCTL
+http://www.southknoxbubba.net/skblog/archive_2005_06.php
+http://www.southlakeland.gov.uk/main.asp?page=23&atoz=R
+http://www.southnorthants.gov.uk/business/vsg.php
+http://www.southnorthants.gov.uk/contactus/departments.php
+http://www.southpacificrealestate.com/details.cfm?PropID=1081
+http://www.southpacificrealestate.com/details.cfm?PropID=1176
+http://www.southparkstudios.com/fans/bbs/viewtopic.php?p=251867
+http://www.southparkstudios.com/fans/bbs/viewtopic.php?p=251876
+http://www.southparkstudios.com/fans/bbs/viewtopic.php?p=252498
+http://www.southshore.com/natco.htm
+http://www.southtravels.com/asia/philippines/cordovareefresort/
+http://www.southvalleypeacecenter.org/
+http://www.southwalesindex.co.uk/pages/2273.html
+http://www.southwalesindex.co.uk/pages/274_637.html
+http://www.southwalesindex.co.uk/pages/286_625.html
+http://www.southwalesindex.co.uk/searchmg?q=wedding+venues
+http://www.southwark.anglican.org/cathedral/educate/reform1.htm
+http://www.southwark.gov.uk/YourServices/transport/greentravel/
+http://www.southwestfilmstudios.com/ne/ne-3.html
+http://www.southwestgigguide.co.uk/
+http://www.southwestgigguide.co.uk/gg/a.asp?aid=189
+http://www.southwestgreens.com/synthetic_putting_green.html
+http://www.southwestlowvision.com/sunwear.htm
+http://www.southwestmedical.com/mfgsearchresults.cfm?MFG_ID=Humanicare_International_Dignity
+http://www.southwestyorkshire.nhs.uk/services-details.asp?Name=Dewsbury+Two+Sector+Team
+http://www.southwestyorkshire.nhs.uk/services-details.asp?Name=Spenborough+Sector+Team
+http://www.sova-enterprises.com/designerspotlight/ds_oct2003.php
+http://www.sover.net/~lsudlow/ARvsAW.htm
+http://www.sover.net/~ozus/emperorsclub.htm
+http://www.sovereign-publications.com/hospital-decisions-regn.htm
+http://www.sovereigngraceministries.org/sgo/v21no2/growing.html
+http://www.sovereigngraceministries.org/sgo/v21no2/prt_growing.html
+http://www.sovereignty.org.uk/features/footnmouth/bailiff.html
+http://www.sovgrace.net/born.htm
+http://www.soviet-awards.com/
+http://www.soviet-awards.com/titles1.htm
+http://www.sovlit.com/bios/nagibin.html
+http://www.sovlit.com/rasskazy/fatfaced.html
+http://www.sovlit.com/rasskazy/light.html
+http://www.soyinfo.com/haz/warning.shtml
+http://www.soyouwanna.com/site/syws/neighbors/neighbors.html
+http://www.soyouwanna.com/site/syws/standup/standup5.html
+http://www.soyouwanna.com/site/syws/standup/standupFULL.html
+http://www.soyouwanna.com/site/syws/traindog/traindogFULL.html
+http://www.soyouwanttodrive.com/article.php?id=100
+http://www.sp.edu.sg/estop/articles/2005/eetc.htm
+http://www.sp.uconn.edu/~wwwethos/toc1999.html
+http://www.space-frontier.org/Policies/bantam-0198-final.html
+http://www.space-frontier.org/Projects/TheWatch/
+http://www.space.com/businesstechnology/lunarshield_techwed_050112.html
+http://www.space.com/businesstechnology/technology/higher_ground_040222.html
+http://www.space.com/businesstechnology/technology/pancam_techwed_040114.html
+http://www.space.com/businesstechnology/technology/space_elevator_021120.html
+http://www.space.com/missionlaunches/050520_mars_masterplan.html
+http://www.space.com/missionlaunches/050524_rovers_update.html
+http://www.space.com/missionlaunches/exp10_chiaovote_041102.html
+http://www.space.com/missionlaunches/imax_iss_020416.html
+http://www.space.com/missionlaunches/iss_crewchange_041021.html
+http://www.space.com/missionlaunches/launches/launch_schedule.html
+http://www.space.com/missionlaunches/launches/sealaunch_preview_000728.html
+http://www.space.com/missionlaunches/missions/sts92_z1_001014.html
+http://www.space.com/missionlaunches/rutan_launchdate_040602.html
+http://www.space.com/missionlaunches/soyuz_update_020426.html
+http://www.space.com/missionlaunches/spirit_talks_040123.html
+http://www.space.com/missionlaunches/titan2_launch_030106.html
+http://www.space.com/news/attack_folo_010911.html
+http://www.space.com/news/dextre_hubble_040811.html
+http://www.space.com/news/hubble_wars_050124.html
+http://www.space.com/news/iss_fin_020918.html
+http://www.space.com/news/remote_surveillance_010914-1.html
+http://www.space.com/news/spacestation/zvezda_jump_start_000711.html
+http://www.space.com/scienceastronomy/aas_earthsize_020329.html
+http://www.space.com/scienceastronomy/asteroid_warning_040322.html
+http://www.space.com/scienceastronomy/astronomy/cosmic_darkmatt_020108-1.html
+http://www.space.com/scienceastronomy/generalscience/5mysteries_universes_020205-1.html
+http://www.space.com/scienceastronomy/map_discovery_030211.html
+http://www.space.com/scienceastronomy/opportunity_news_040302.html
+http://www.space.com/scienceastronomy/planetearth/earth_move_010207.html
+http://www.space.com/scienceastronomy/solarsystem/near_probe_000110.html
+http://www.space.com/scienceastronomy/solarsystem/second_moon_991029.html
+http://www.space.com/spacelibrary/books/library_creating_021218.html
+http://www.space.com/spacewatch/full_moon_names_2005.html
+http://www.space.com/spacewatch/iss_viewing_040507.html
+http://www.space.com/spacewatch/seasonal_stars_030207.html
+http://www.space.com/spacewatch/where_is_mars.html
+http://www.space1999.net/~fanfiction/r_s/fathers.html
+http://www.space4peace.org/articles/counter_space_doctrine.htm
+http://www.spaceagepop.com/tvshows.htm
+http://www.spaceandculture.org/2004_02_01_archive.php
+http://www.spaceandculture.org/2004_06_01_archive.php
+http://www.spaceandtech.com/digest/flash2002/flash2002-088.shtml
+http://www.spacecast.com/command/faq/index2.asp
+http://www.spacecityrock.com/2004_01_11_break-archive.html
+http://www.spacecityrock.com/break.html
+http://www.spacedaily.com/news/energy-tech-05m.html
+http://www.spacedaily.com/news/mars-mers-04zzk.html
+http://www.spacedaily.com/news/materials-04g.html
+http://www.spacedaily.com/news/timetravel-01a.html
+http://www.spaceflight.esa.int/users/file.cfm?filename=fac-iss-col-scdf-cad
+http://www.spaceflightnow.com/news/n0403/19cometwild2/
+http://www.spacefuture.com/archive/a_common_cost_target_of_space_transportation_for_space_tourism_and_space_energy_development.shtml
+http://www.spacefuture.com/archive/an_evaluation_of_the_potential_demand_for_space_tourism_within_the_united_kingdom.shtml
+http://www.spacefuture.com/archive/feasibility_of_commercial_resort_hotels_in_low_earth_orbit.shtml
+http://www.spacefuture.com/archive/on_the_practical_and_sporting_aspects_of_football_in_zero_gravity.shtml
+http://www.spacefuture.com/archive/prospects_of_space_tourism.shtml
+http://www.spacefuture.com/archive/space_elevators_space_hotels_and_space_tourism.shtml
+http://www.spacefuture.com/archive/space_tourism_and_its_effects_on_space_commercialization.shtml
+http://www.spacefuture.com/archive/space_tourism_market_demand_and_the_transportation_infrastructure.shtml
+http://www.spacefuture.com/archive/space_tourism_the_door_into_the_space_age.shtml
+http://www.spacefuture.com/archive/space_tourism_the_surprising_new_industry.shtml
+http://www.spacefuture.com/archive/the_business_of_commercializing_space.shtml
+http://www.spacefuture.com/archive/the_cultural_effect_of_space_tourism_on_the_space_industry_and_society.shtml
+http://www.spacefuture.com/tourism/sciencefiction.shtml
+http://www.spacehab.com/gsa/how.htm
+http://www.spaceline.org/history/2.html
+http://www.spacenet.on.ca/stories/medicine/SLEEPING/sleep.htm
+http://www.spaceprojects.com/washtimes110500/
+http://www.spacequest.net/sq7/
+http://www.spaceref.com/china/china.white.paper.nov.22.2000.html
+http://www.spaceref.com/news/viewsr.html?pid=13769
+http://www.spaceref.com/news/viewsr.html?pid=15066
+http://www.spaceref.com/news/viewsr.html?pid=15282
+http://www.spacetelescope.org/news/html/heic0406.html
+http://www.spacetoday.org/History/SpaceFactoids/SpaceFactoids4.html
+http://www.spacetoday.org/Time/TimeExplained.html
+http://www.spaceuk.org/bstreak/bs/bsmilitary.html
+http://www.spacewar.com/news/missiles-05zp.html
+http://www.spaceweather.com/
+http://www.spaff.org/CompostOven/CompostOven.htm
+http://www.spain-hotels-discount.com/travel_guide.html
+http://www.spamresource.com/catalog/p642558.html
+http://www.spamresource.com/catalog/p642560.html
+http://www.spanish-immersion.com/planning.asp
+http://www.spannerfilms.net/?lid=706
+http://www.sparc.sunysb.edu/html/noaa/noaa_trop.html
+http://www.sparetheair.org/community/resourceteams.htm
+http://www.sparkmuseum.com/BOOKS_T.HTM
+http://www.sparknotes.com/astronomy/earth/terms.html
+http://www.sparknotes.com/drama/glengarry/themes.html
+http://www.sparknotes.com/history/european/frenchrev/section9.rhtml
+http://www.sparknotes.com/history/european/ww2/section2.rhtml
+http://www.sparknotes.com/lit/awakening/summary.html
+http://www.sparknotes.com/lit/belcanto/section5.rhtml
+http://www.sparknotes.com/lit/hisdarkmaterials/section1.html
+http://www.sparknotes.com/lit/jungle/section2.rhtml
+http://www.sparknotes.com/lit/missjane/characters.html
+http://www.sparknotes.com/lit/missjane/themes.html
+http://www.sparknotes.com/lit/nolonger/quiz.html
+http://www.sparknotes.com/lit/nolonger/themes.html
+http://www.sparknotes.com/lit/ourtown/themes.html
+http://www.sparknotes.com/lit/salesman/section2.rhtml
+http://www.sparknotes.com/lit/wrinkle/section8.rhtml
+http://www.sparknotes.com/philosophy/republic/section5.rhtml
+http://www.sparknotes.com/physics/thermodynamics/structure/problems1.html
+http://www.sparknotes.com/physics/thermodynamics/structure/section1.html
+http://www.sparknotes.com/poetry/browning/section6.rhtml
+http://www.sparknotes.com/poetry/paradiselost/context.html
+http://www.sparknotes.com/shakespeare/henryv/characters.html
+http://www.sparknotes.com/shakespeare/macbeth/section8.rhtml
+http://www.sparknotes.com/testprep/books/newsat/powertactics/numop/chapter3section5.rhtml
+http://www.sparknotes.com/testprep/books/sat2/biology/chapter8section1.rhtml
+http://www.sparknotes.com/testprep/books/sat2/biology/chapter9section1.rhtml
+http://www.sparknotes.com/testprep/books/sat2/chemistry/chapter5section14.rhtml
+http://www.sparknotes.com/testprep/books/sat2/chemistry/chapter5section5.rhtml
+http://www.sparknotes.com/testprep/books/sat2/physics/chapter1.html
+http://www.sparky.on.ca/school/gr11/football/lfp_0920.html
+http://www.spartacus.schoolnet.co.uk/2WWeuropeunity.htm
+http://www.spartacus.schoolnet.co.uk/2WWpatton.htm
+http://www.spartacus.schoolnet.co.uk/2WWportal.htm
+http://www.spartacus.schoolnet.co.uk/2WWshirer.htm
+http://www.spartacus.schoolnet.co.uk/DSavenell.htm
+http://www.spartacus.schoolnet.co.uk/DSfarmer.htm
+http://www.spartacus.schoolnet.co.uk/FWWnurses.htm
+http://www.spartacus.schoolnet.co.uk/FWWwells.htm
+http://www.spartacus.schoolnet.co.uk/GERunemployment.htm
+http://www.spartacus.schoolnet.co.uk/IRarkwright.htm
+http://www.spartacus.schoolnet.co.uk/IRowen.htm
+http://www.spartacus.schoolnet.co.uk/JFKbissell.htm
+http://www.spartacus.schoolnet.co.uk/JFKgreerW.htm
+http://www.spartacus.schoolnet.co.uk/JFKkupcinet.htm
+http://www.spartacus.schoolnet.co.uk/JFKlarue.htm
+http://www.spartacus.schoolnet.co.uk/Jmorris.htm
+http://www.spartacus.schoolnet.co.uk/Jpicturepost.htm
+http://www.spartacus.schoolnet.co.uk/Jreach.htm
+http://www.spartacus.schoolnet.co.uk/MEDwilliam1.htm
+http://www.spartacus.schoolnet.co.uk/PRhay.htm
+http://www.spartacus.schoolnet.co.uk/PRpitt.htm
+http://www.spartacus.schoolnet.co.uk/REVscience.htm
+http://www.spartacus.schoolnet.co.uk/REVseminars.htm
+http://www.spartacus.schoolnet.co.uk/REVteacherscentre.htm
+http://www.spartacus.schoolnet.co.uk/RUSred.htm
+http://www.spartacus.schoolnet.co.uk/RUSstalin.htm
+http://www.spartacus.schoolnet.co.uk/SCfaraday.htm
+http://www.spartacus.schoolnet.co.uk/SPpopular.htm
+http://www.spartacus.schoolnet.co.uk/STUcharles1.htm
+http://www.spartacus.schoolnet.co.uk/STUcharles2.htm
+http://www.spartacus.schoolnet.co.uk/Sconnolly.htm
+http://www.spartacus.schoolnet.co.uk/TUDaragon.htm
+http://www.spartacus.schoolnet.co.uk/TUDmary1.htm
+http://www.spartacus.schoolnet.co.uk/TUgallacher.htm
+http://www.spartacus.schoolnet.co.uk/TUhodge.htm
+http://www.spartacus.schoolnet.co.uk/USACWarmyU.htm
+http://www.spartacus.schoolnet.co.uk/USACWsherman.htm
+http://www.spartacus.schoolnet.co.uk/USACWthompsonF.htm
+http://www.spartacus.schoolnet.co.uk/USAShousing.htm
+http://www.spartacus.schoolnet.co.uk/USASreconstruction.htm
+http://www.spartacus.schoolnet.co.uk/USAaltgeld.htm
+http://www.spartacus.schoolnet.co.uk/USAappealR.htm
+http://www.spartacus.schoolnet.co.uk/USAchild.htm
+http://www.spartacus.schoolnet.co.uk/USAgriffith.htm
+http://www.spartacus.schoolnet.co.uk/USAmarshallG.htm
+http://www.spartacus.schoolnet.co.uk/USArussellCE.htm
+http://www.spartacus.schoolnet.co.uk/USAschwerner.htm
+http://www.spartacus.schoolnet.co.uk/USAsitin.htm
+http://www.spartechsoftware.com/reeko/MoreExperimentsSortCategory.htm
+http://www.spc.com.sg/aboutus/worldwide.asp
+http://www.spc.int/coastfish/News/BDM/11/4Jaquemet.htm
+http://www.spc.noaa.gov/faq/tornado/
+http://www.spc.noaa.gov/products/outlook/day1otlk.html
+http://www.spca.org.nz/history.htm
+http://www.spcare.org/fdfh/endorsements-sogyalrinpoche.html
+http://www.spcnet.tv/forums/showthread.php?t=10697
+http://www.spe.org/spe/jsp/basic/0,,1104_12111_1045655,00.html
+http://www.spe.org/spe/jsp/basic/0,,1104_1728,00.html
+http://www.spe.org/spe/jsp/basic/0,,1104_3306579,00.html
+http://www.spe.org/spe/jsp/basic/0,2396,1104_1728_0,00.html
+http://www.spe.org/spe/jsp/meetingtechnicalsession/0,,1104_1535_3024806_2485693,00.html
+http://www.spe.org/spe/jsp/meetingtechnicalsession/0,,1104_1535_3024844_2485693,00.html
+http://www.speak.org.uk/tracker
+http://www.speakcampaigns.org.uk/
+http://www.speaking.com/speakerindexes/lifebalance.html
+http://www.speakingcircles.com/Articles/articles_gary.html
+http://www.speaksforitself.com/speaksforitself/docs.asp?UID=181665862268
+http://www.spebsqsa.org/web/groups/public/documents/pages/pub_id_051991.hcsp
+http://www.special-lady.com/russian_brides.html
+http://www.specialchem4adhesives.com/resources/articles/article.aspx?id=33
+http://www.specialchem4polymers.com/resources/latest/displaynews.aspx?id=2001&lr=rupa053&li=%7BID_USER_C%7D
+http://www.specialchild.com/success.html
+http://www.specialfamilies.com/dating_marriage_&_autism.htm
+http://www.specialist-games.com/bloodbowl/forum_b/topic.asp?TOPIC_ID=3091&whichpage=1
+http://www.specialist-games.com/bloodbowl/reveiw.asp
+http://www.specialneeds.com/conference_ICDL.asp
+http://www.specialneedsfamilyfun.com/accessible-home/
+http://www.specialoperations.com/Counterterrorism/Barras.htm
+http://www.specialtactics.com/ubbthreads/showflat.php?Cat=0&Number=29587&Main=29568
+http://www.specialtyinterests.net/codexhammurabi.html
+http://www.speciesatrisk.gc.ca/search/speciesDetails_e.cfm?SpeciesID=290
+http://www.speciesorchids.com/NewsletterNovember02.html
+http://www.spectacle.org/0701/mcveigh.html
+http://www.spectacle.org/496/demo.html
+http://www.spectacle.org/kazoo/tele.html
+http://www.spectator-online.com/vnews/display.v/ART/2003/11/20/3fbd96b371817?in_archive=1
+http://www.spectator.org/dsp_article.asp?art_id=6822
+http://www.spectatornews.com/news/2004/12/02/Showcase/Mobile.Madness.Students.Explain.Views.On.Cell.Phones-818986.shtml
+http://www.spectronicsinoz.com/library.asp?article=4391
+http://www.spectronicsinoz.com/product.asp?product=35
+http://www.spectrum.ieee.org/WEBONLY/resource/jan03/surv.html
+http://www.spectrum.ieee.org/WEBONLY/wonews/may05/0505njarv.html
+http://www.spectrum.ieee.org/careers/careerstemplate.jsp?ArticleId=m100304
+http://www.speculativevision.com/library/classics.cgi?folder=iliad&next=14
+http://www.speculativevision.com/library/classics.cgi?folder=iliad&next=15
+http://www.specwarnet.com/europe/sas.htm
+http://www.spedonline.com/esteem.htm
+http://www.speech-writers.com/80birthdayhusbandtoasts.htm
+http://www.speech-writers.com/90birthdayhusbandtoasts.htm
+http://www.speech.kth.se/qpsr/tmh/
+http://www.speechdelay.com/cgi-bin/ikonboard/topic.cgi?forum=12&topic=24
+http://www.speechdelay.com/cgi-bin/ikonboard/topic.cgi?forum=5&topic=336
+http://www.speechstudio.com/section_508.htm
+http://www.speechteach.com/links.html
+http://www.speedcreep.com/2004_rules.html
+http://www.speedflirt.co.uk/terms.php
+http://www.speedmuseum.org/educational_poster.html
+http://www.speedsleep.com/faq.html
+http://www.speedster.com/Field%20Hockey.htm
+http://www.spegcs.org/en/articles/search.asp?category=Then%20and%20Now
+http://www.spellingsociety.org/pubs/pvs/pv8rondthaler.html
+http://www.spelthorne.gov.uk/contrast/lei_laleham_village.htm
+http://www.spelthorne.gov.uk/environment___planning/transport/env_transport_plan.htm
+http://www.spelthorne.gov.uk/lei_laleham_village.htm
+http://www.spelthorne.gov.uk/lei_leisure_tourism/tourism/lei_walksinspelthorne/lei_walk_shepperton.htm
+http://www.spence-n.demon.co.uk/wcnn.htm
+http://www.spencerstuart.com/yourcareer/development/561/
+http://www.spencerstudio.com/red_eye_club.htm
+http://www.sph.umich.edu/~jkoopman/802Web/Chap9/Chap9.htm
+http://www.sphere.bc.ca/test/srbooks.html
+http://www.spicejar.org/asiplease/archives/2003_10.html
+http://www.spicejar.org/asiplease/archives/2004_10.html
+http://www.spidercox.co.uk/grange.htm
+http://www.spiderwebz.co.uk/eaglewing/gport.htm
+http://www.spie.org/Conferences/Programs/02/pw/
+http://www.spiffle.com/mix/seamaster/overview
+http://www.spiffle.com/rants/06-30-1998_12-50am
+http://www.spike2000.com/whatsnew/wordsearch/archives/funstuff/
+http://www.spiked-online.com/Articles/00000002D290.htm
+http://www.spiked-online.com/Articles/00000006DD7A.htm
+http://www.spiked-online.com/Articles/00000006E02B.htm
+http://www.spiked-online.com/Articles/0000000CA37D.htm
+http://www.spiked-online.com/Articles/0000000CA40D.htm
+http://www.spiked-online.com/Articles/0000000CA554.htm
+http://www.spiked-online.com/Articles/0000000CA5DE.htm
+http://www.spiked-online.com/Printable/00000002D290.htm
+http://www.spiked-online.com/Printable/00000006E02B.htm
+http://www.spiked-online.com/Printable/0000000CA37D.htm
+http://www.spiked-online.com/Printable/0000000CA554.htm
+http://www.spiked-online.com/Printable/0000000CA889.htm
+http://www.spiked-online.com/Sections/Culture/Film/Index.htm
+http://www.spikesys.com/Trains/brk_faq.html
+http://www.spikynorman.dsl.pipex.com/ucemsg.html
+http://www.spinalfitness.com/Lever%20Discussion.htm
+http://www.spinalrehab.com.au/welcome/PatientHandbook.htm
+http://www.spinalsoothers.com/ablebody.htm
+http://www.spine-health.com/topics/cd/ergo/ergo05.html
+http://www.spine-health.com/topics/conserv/posterg/posture01.html
+http://www.spine-health.com/topics/conserv/yoga/yoga01.html
+http://www.spine.org/articles/grantwinners_1997.cfm
+http://www.spinelessbooks.com/gadsby/01.html
+http://www.spineuniversity.com/public/print.asp?id=41
+http://www.spineuniversity.com/public/spinesub.asp?id=41
+http://www.spineuniversity.com/public/spinesub.asp?id=65
+http://www.spineworks.com/public/nelson/nelson.htm
+http://www.spinifexpress.com.au/cf/cybercon.htm
+http://www.spinme.com/2004/05/take_a_fresh_lo.html
+http://www.spinme.com/2004/07/notching_down_t.html
+http://www.spinme.com/2005/01/submit_your_son.html
+http://www.spinninglobe.net/carnegiehall.htm
+http://www.spinybabbler.org/events/Jan_%202005/evnt_5_therapeutic_art.php
+http://www.spiral.org.uk/celtic-jewelry.html
+http://www.spiral.org.uk/pewter-jewellery.html
+http://www.spiral.org.uk/sitemap.html
+http://www.spiralhaircase.com/ice.html
+http://www.spiretech.com/~leonard/cfn/adopt/adopt.htm
+http://www.spirit-alembic.com/alchemy.html
+http://www.spirit-alembic.com/organic.html
+http://www.spirit-net.ca/sermons/a-ad02sm.php
+http://www.spirit-net.ca/sermons/a-ch01-keeping.php
+http://www.spirit-net.ca/sermons/abc-worldwidecommunionsunday.php
+http://www.spirit-net.ca/sermons/b-ch00sn.html
+http://www.spirit-net.ca/sermons/b-ea07su.html
+http://www.spirit-net.ca/sermons/b-le05se.html
+http://www.spirithome.com/cessatio.html
+http://www.spirithome.com/prayer_3.html
+http://www.spiritledwriter.com/march2004/demand.html
+http://www.spiritlifechurch.com/qu_God_stop_suffering.html
+http://www.spiritoffreedom.org.uk/resources/20years.html
+http://www.spiritofgracefellowship.org/sermons_2004/010404_carrying_your_cross.htm
+http://www.spiritofmaat.com/archive/jul1/packer.htm
+http://www.spiritone.com/~gdy52150/goldp5.html
+http://www.spiritrock.org/html/sched_february.html
+http://www.spiritual.com.au/articles/ascension/lemonade_jdstone.htm
+http://www.spiritualbeggars.com/
+http://www.spiritualchicks.com/Article_Bobby.htm
+http://www.spiritualitea.com/articles/bookoftea.shtml
+http://www.spiritualityhealth.com/newsh/items/article/item_2895.html
+http://www.spiritualityhealth.com/newsh/items/article/item_2899.html
+http://www.spiritualityhealth.com/newsh/items/blank/item_3065.html
+http://www.spiritualityhealth.com/newsh/items/moviereview/item_2809.html
+http://www.spiritualityhealth.com/newsh/items/newsitem/item_9317.html
+http://www.spiritualitytoday.org/spir2day/884013berrigan.html
+http://www.spiritualitytoday.org/spir2day/91434kownacki.html
+http://www.spiritualminds.com/articles.asp?articleid=2126
+http://www.spiritwatch.org/relabbehin.htm
+http://www.spitsbergentravel.no/eng/goxpage00000024.html
+http://www.spitting-image.net/archives/000794.html
+http://www.spivalaw.com/legalteam.html
+http://www.spizzazzz.com/
+http://www.spj.org/board_minutes_011007spj.asp
+http://www.spl.org.uk/youngpeople/education/schools_poetry.htm
+http://www.splab.org/workshop.html
+http://www.splashesfromtheriver.com/parenting.htm
+http://www.spohnc.org/clinicalinfo.htm
+http://www.spokane.net/
+http://www.spokanecenter.com/eventsrvc.htm
+http://www.spokanevalleyonline.com/articles/biovam1.htm
+http://www.spokeandsprocket.com/cartgenie/pg_Class.asp
+http://www.spokes.org.uk/index.php?name=PNphpBB2&file=printview&t=32&start=0
+http://www.spokes.org.uk/index.php?name=PNphpBB2&file=viewtopic&t=32
+http://www.spokesmanreview.com/allstories-news-story.asp?date=050804&ID=s1517947
+http://www.spokesmanreview.com/blogs/conversation/archive.asp?postID=2811
+http://www.spokesmanreview.com/blogs/conversation/archive.asp?postID=2877
+http://www.spokesmanreview.com/boise/blog.asp?postID=19813
+http://www.spolin.com/dir_metam_mind.html
+http://www.sport.act.gov.au/wdiscpriv.html
+http://www.sportaircraft.net/browse.php?cat=441&name=Kit%20Built
+http://www.sportbarcelona.com/s/sportbarcelona/tsindex.html
+http://www.sportengland.org/text/index/news_and_media/news_gs/carter_speech.htm
+http://www.sportinglife.com/football/cups/facup/news/story_get.cgi?STORY_NAME=soccer/05/01/31/SOCCER_Chelsea_Terry.html
+http://www.sportingnews.com/experts/stan-mcneal/20050617.html
+http://www.sportingpulse.com.au/assoc_page.cgi?client=%40Men%20of%20League%402807%40%40%40%40%40%4011%40%407%40&sID=82
+http://www.sportmovement.com/
+http://www.sportnetwork.net/main/s107/st74023.htm
+http://www.sportnetwork.net/main/s200/st60180.htm
+http://www.sportnetwork.net/main/s237/st66775.htm
+http://www.sports.det.nsw.edu.au/nswchs/handbook/section_6_11.htm
+http://www.sports.det.nsw.edu.au/nswchs/handbook/section_6_19.htm
+http://www.sportscardforum.com/archive/index.php/t-41924_FS_or_Trade.html
+http://www.sportscardforum.com/archive/index.php/t-5090_SOSA_get_standing_ovation_tonight.html
+http://www.sportscardforum.com/archive/index.php/t-72679_About_collecting_specific_players.html
+http://www.sportsci.org/traintech/glycerol/rar.htm
+http://www.sportscolumn.com/story/2005/2/24/151759/465/nhl/A_Few_Million_Too_Few
+http://www.sportsecyclopedia.com/nhl/monwan/wanderers.html
+http://www.sportsfilter.com/comments.cfm/4308
+http://www.sportsgoons.com/Vol2_Iss34/Michael_Vick_Experience.com.htm
+http://www.sportshollywood.com/lawrigley.html
+http://www.sportsimports.com/contact/faq.asp
+http://www.sportsinjurybulletin.com/archive/core-strength-training.html
+http://www.sportsinjurybulletin.com/archive/weight-training-veteran.html
+http://www.sportsmatch.co.uk/sportsmatch_review_march_2002.htm
+http://www.sportsmed.com.au/sportsmed/hospital.html?page_id=24
+http://www.sportsmed.org/about/document.asp?did=59
+http://www.sportsnutrition4u.com/about.aspx
+http://www.sportsrentbc.com/
+http://www.sportsshooter.com/news/1409
+http://www.sportsshooter.com/news_story.html?id=882
+http://www.sportstaronnet.com/tss2429/24290360.htm
+http://www.sportsteacher.co.uk/news/editorial/01sprF_sportengland.html
+http://www.sportzblitz.net/body-blitz-challenge/margaret-schafer.php
+http://www.sportzblitz.net/body-blitz-challenge/melinda-troughton.php
+http://www.spotlighthealth.com/common/chat/ChatTransDetail.asp?m=1&cid=76
+http://www.spotstop.com/default.asp?newsID=114
+http://www.sppa.org.uk/
+http://www.spra.org.uk/news1.html
+http://www.spra.org.uk/news18.html
+http://www.spreadfirefox.com/
+http://www.spreadfirefox.com/?q=node&from=15
+http://www.spreadfirefox.com/?q=node/view/12983
+http://www.spreadfirefox.com/?q=node/view/16047
+http://www.spreadfirefox.com/?q=node/view/8508
+http://www.spring-green.com/mower_care.htm
+http://www.springboard.net.au/Newsletters/Newsletter-2005FederalBudgetSpecialEdition.htm
+http://www.springboardconsultancy.com/fspringf.htm
+http://www.springboardconsultancy.com/ispringf.htm
+http://www.springdaleark.org/cosa/article_05.1.htm
+http://www.springeronline.com/sgw/cda/frontpage/0,11855,4-40356-72-33467843-0,00.html
+http://www.springeronline.com/sgw/cda/frontpage/0,11855,4-40356-72-33467891-0,00.html
+http://www.springeroperahouse.org/contactus.cfm
+http://www.springfieldcastle.com/
+http://www.springfieldlibrary.org/board/actionplan.html
+http://www.springgulch.com/SGrates.cfm
+http://www.spritehand.com/default.aspx
+http://www.sps.arizona.edu/proposal/quick-reference.htm
+http://www.spsma.co.uk/technique.php
+http://www.spss.com/press/template_view.cfm?PR_ID=589
+http://www.spss.com/success/template_view.cfm?Story_ID=88
+http://www.spssi.org/saturday_sessions.html
+http://www.spt.co.uk/About/publschm.html
+http://www.spt.co.uk/garl/press/story002.html
+http://www.spt.co.uk/garl/press/story003.html
+http://www.spt.co.uk/news/story247.html
+http://www.sptimes.com/2002/02/04/Opinion/Florida_Power__explai.shtml
+http://www.sptimes.com/2002/08/24/TampaBay/Podiatrist_s_arsenal_.shtml
+http://www.sptimes.com/2003/07/06/Neighborhoodtimes/Thanks_to_all_who_hel.shtml
+http://www.sptimes.com/2003/09/21/State/Investors_left_with_b.shtml
+http://www.sptimes.com/2003/11/30/Tampabay/The_clogged_commute.shtml
+http://www.sptimes.com/2003/12/06/Tampabay/Flu_vaccine_has_run_o.shtml
+http://www.sptimes.com/2004/01/16/Citytimes/Region_1_students_cho.shtml
+http://www.sptimes.com/2004/06/13/Worldandnation/Bush_key__Succeed_whe.shtml
+http://www.sptimes.com/2004/08/01/Columns/Economic_heavy_hitter.shtml
+http://www.sptimes.com/2004/09/12/Action/Child_s_savings_accou.shtml
+http://www.sptimes.com/2004/10/01/Action/Effective_use_of_fund.shtml
+http://www.sptimes.com/2004/10/07/Artsandentertainment/Hack_job.shtml
+http://www.sptimes.com/2004/10/22/Action/Don_t_get_hooked_by_a.shtml
+http://www.sptimes.com/2004/10/29/Brandontimes/Now_sober__he_wants_t.shtml
+http://www.sptimes.com/2004/11/07/Bucs/Seeking_a_turning_poi.shtml
+http://www.sptimes.com/2004/11/19/Worldandnation/Haitian_pastor_dies_o.shtml
+http://www.sptimes.com/2004/12/03/Action/Next_time__look_befor.shtml
+http://www.sptimes.com/2005/02/03/Action/Failure_to_cancel_mot.shtml
+http://www.sptimes.com/2005/03/06/State/Schools_still_rank_ne.shtml
+http://www.sptimes.com/2005/06/01/State/Teacher_plan_moves_fo.shtml
+http://www.sptimes.com/News/110501/Technology/QA__Net_s_potential_b.shtml
+http://www.sptimes.com/News/50999/Floridian/Boy_wonder.shtml
+http://www.sptimes.com/schools/
+http://www.sptimesrussia.com/archive/times/699/top/t_4458.htm
+http://www.spu.edu/depts/uc/response/winter99/truth.html
+http://www.spu.edu/library/databases/subjects.htm
+http://www.spub.ksu.edu/issues/v099b/su/n153/opn-newt-lewerenz.html
+http://www.spuc.org.uk/lobbying/consultations/donor-information
+http://www.spunk.org/library/writers/makhno/sp001781/chap3.html
+http://www.spunmag.com/article/050605socks
+http://www.spurgeon.org/sermons/0341.htm
+http://www.spurgeon.org/sermons/2449.htm
+http://www.spy.co.uk/Articles/NMC/NielsenProfile/
+http://www.spy.org.uk/ratblog/archives/2003/11/theft_queries_a.html
+http://www.spybusters.com/Great_Seal_Bug.html
+http://www.spychips.com/jointrfid_position_paper.html
+http://www.spymac.com/forums/showthread.php?ppp=10&threadid=147853&c=4
+http://www.spymac.com/weblog/?pageid=244576
+http://www.spymuseum.org/index_exhibits_permanent.asp
+http://www.spywareguide.com/shop/az_detail_B0002UCSKI.html
+http://www.spyworld.com/Covert-Video.htm
+http://www.sqa.org.uk/sqa/servlet/controller?p_service=Content.show&p_applic=CCC&pContentID=4349
+http://www.sql-server-performance.com/query_analysis_tuning.asp
+http://www.sqlite.org/cvstrac/wiki?p=UnsupportedSql
+http://www.sqlthing.com/Resources/CallingProcedureFromFunction.html
+http://www.squarefootgardening.com/html/body_latest_news2.html
+http://www.squarefree.com/2003/10/11/false-fire-alarm/
+http://www.squarefree.com/2003/10/page/2/
+http://www.squarelake.com/Five/William-Luvaas.htm
+http://www.squaremeal.co.uk/venues/london/search.php?Sel_ID=69
+http://www.squash.co.yu/resources.php?show=rulesd
+http://www.squashtalk.com/doubles/summer05/news05-5-1.htm
+http://www.squashtalk.com/doubles/summer05/news05-5-2.htm
+http://www.squashtalk.com/html/news/globalgallery6.htm
+http://www.squashtalk.com/html/news/wsfpr346.htm
+http://www.squashtalk.com/kneipp/mar-apr03/report03-09.htm
+http://www.squashtalk.com/melbourne2001/diner3.htm
+http://www.squishedfrog.com/mtblog/archives/2005_01.shtml
+http://www.sr.bham.ac.uk/nam2005/pr17.html
+http://www.srapplications.com/
+http://www.srce.aaen.edu.yu/bilten72.html
+http://www.srcf.ucam.org/~hmw26/join-the-dots/2004/12/11/houseguest/
+http://www.srcf.ucam.org/~jj253/altpros.htm
+http://www.sre.gob.mx/discapacidad/logistics.htm
+http://www.sre.gob.mx/discapacidad/paperblreport.htm
+http://www.sre.gob.mx/discapacidad/principlesfordrafting.htm
+http://www.sreb.org/programs/EdTech/professional/profindex.asp
+http://www.srgc.org.uk/discus/messages/6/6172.html?1107214068
+http://www.srgseniorliving.com/ShermanOaks.htm
+http://www.srh.noaa.gov/ffc/research/finalPP2.htm
+http://www.srh.noaa.gov/mlb/ltgcenter/ltgsafety.html
+http://www.srh.noaa.gov/oun/climate/heavysnow/study.php
+http://www.srh.weather.gov/srh/jetstream/atmos/ll_airweight.htm
+http://www.srhuston.net/mt/000017.html
+http://www.srihc.co.uk/
+http://www.srim.org/
+http://www.sriramakrishnamath.org/magazine/vk/2005/02-2-1.asp
+http://www.srisd.com/2004_testimonials.htm
+http://www.sriwittayapaknam.ac.th/teaching/dresscode.htm
+http://www.srl.org/interviews/world_art.html
+http://www.srmason-sj.org/web/journal-files/Issues/jan03/sizemore.htm
+http://www.sro.org/helpcurrentissue.html
+http://www.sro.org/helpcurrentissuef.html
+http://www.srpf.a.se/forsk/refsum.html
+http://www.srq.qld.gov.au/induction_of_volunteers.cfm
+http://www.srs.fs.usda.gov/econ/personel/cv-bmoul.htm
+http://www.srsc.org.uk/about/aims.asp
+http://www.srsc.org.uk/education/national_strategy/index.asp
+http://www.srsc.org.uk/education/national_strategy/research_strategy_rse.asp
+http://www.srsc.org.uk/education/preschool/gymcards.asp
+http://www.srsc.org.uk/education/secondary/index.asp
+http://www.srsc.org.uk/links/cyclists.asp
+http://www.srsc.org.uk/links/industry.asp
+http://www.srsc.org.uk/publicity/annual_seminar/seminar_2002/speaker_zeedyk.asp
+http://www.srslawfirm.com/news/key/wabc7newyork.htm
+http://www.sru.edu/print/7421.asp
+http://www.srv.net/opt/sunchrt.html
+http://www.srv.net/~csei/history.htm
+http://www.ssa.gov/OP_Home/rulings/ar/04/AR93-01-ar-04.html
+http://www.ssa.gov/OP_Home/rulings/ar/06/AR86-15-ar-06.html
+http://www.ssa.gov/OP_Home/rulings/ssi/02/SSR81-35-ssi-02.html
+http://www.ssa.gov/disability-new-approach/
+http://www.ssa.gov/disability/professionals/bluebook/8.00-Skin-Adult.htm
+http://www.ssa.gov/enews/last.htm
+http://www.ssa.gov/history/fpbiossa.html
+http://www.ssa.gov/history/hfaq.html
+http://www.ssa.gov/history/lbjstmts.html
+http://www.ssa.gov/history/reports/boskinrpt.html
+http://www.ssa.gov/history/reports/schlabach1.html
+http://www.ssa.gov/history/taxationofbenefits.html
+http://www.ssa.gov/history/voluntaryannuities.html
+http://www.ssa.gov/legislation/testimony_051701.html
+http://www.ssa.gov/planners/
+http://www.ssa.gov/policy/docs/progdesc/ssptw/1999/sweden.htm
+http://www.ssc.wisc.edu/cde/datalib/845/cur1.htm
+http://www.ssc.wisc.edu/irp/research/undpovhome.htm
+http://www.ssc.wisc.edu/nsfh/t3sum.htm
+http://www.ssc.wisc.edu/~jpiliavi/357/syllabus2004.htm
+http://www.sscnet.ucla.edu/aasc/classweb/winter02/aas197a/mhilario1.html
+http://www.sscnet.ucla.edu/ioa/labs/computers.html
+http://www.sscnet.ucla.edu/polisci/faculty/anderson/Lewinsky.htm
+http://www.ssda.org.uk/ssda/default.aspx?page=626
+http://www.ssec.wisc.edu/media/highlights2002/highlights2002short.htm
+http://www.ssec.wisc.edu/visitview/tutorial/img6a.html
+http://www.ssec.wisc.edu/visitview/usage.html
+http://www.ssfs.com.au/sc03_news/body2.cfm
+http://www.ssha.org/gender/stanfors.html
+http://www.sshl.org.uk/paulrobesonhouse.asp
+http://www.sshl.org.uk/summer/termsandconditions.htm
+http://www.sshs.org.sg/gl/
+http://www.ssi.gouv.fr/en/confidence/documents/memo-gb.html
+http://www.ssk.co.uk/Business-Bank-Scotland.html
+http://www.sskrplaw.com/publications/031231.html
+http://www.ssn.flinders.edu.au/scanlink/nornotes/vol6/articles/kristina.html
+http://www.ssnet.org/qrtrly/eng/05a/less03.html
+http://www.ssnet.org/qrtrly/eng/05a/less03kjv.html
+http://www.ssnet.org/qrtrly/eng/05a/less03nkjv.html
+http://www.ssonet.com.au/issue.asp?Issue=716
+http://www.ssqq.com/archive/vinlin10.htm
+http://www.ssqq.com/ssqq/jokes.htm
+http://www.ssrc.org/sept11/essays/teaching_resource/tr_building_peace.htm
+http://www.ssrottweilerrescue.org/vioxx?Vioxx=Vioxx&Vioxx=Vioxx&Vioxx=Vioxx
+http://www.sss-mag.com/jobtopics.html
+http://www.sss-mag.com/smith01.html
+http://www.sss.gov/FSregist.htm
+http://www.sss.gov/perfplan_fy2004.html
+http://www.sss.gov/when.htm
+http://www.ssspc.org/ssspc/feature-e.html
+http://www.ssssclub.com/tol2000.htm
+http://www.ssta.org.uk/Archive/Congress2004-motions.htm
+http://www.ssta.sk.ca/research/technology/96-06.htm
+http://www.ssti.org/Digest/2004/041204.htm
+http://www.ssti.org/Digest/2004/071204.htm
+http://www.ssti.org/Digest/2005/012405.htm
+http://www.ssw.com.au/SSW/Standards/Rules/RulestoBetterDeadTime.aspx
+http://www.ssw.umich.edu/trapped/res_sur_questions.html
+http://www.st-andrews.ac.uk/develop/hr/support-advice/policies/poor-performance
+http://www.st-andrews.ac.uk/mecacs/STUDENTS.HTM
+http://www.st-andrews.ac.uk/services/admissions/sssprog.htm
+http://www.st-andrews.ac.uk/~scotparl/history.html
+http://www.st-edmunds.cam.ac.uk/cis/houghton/lecture4.html
+http://www.st-georges.org.uk/aboutkeyfacts.asp
+http://www.st-georges.org.uk/findcar.asp
+http://www.st-hypertext.com/tos/tos-1rev.html
+http://www.st-hypertext.com/tos/tos-2rev.html
+http://www.st-louis-personal-injury-lawyers.com/
+http://www.st-marys.nhs.uk/privatepatients/lindo.htm
+http://www.st-peters.york.sch.uk/history/guyfawkes.htm
+http://www.st-therese.org/Administration/one_vision.htm
+http://www.st.com/stonline/press/magazine/challeng/2ndedi99/chal02.htm
+http://www.st.com/stonline/press/news/year2003/p1267c.htm
+http://www.st.com/stonline/products/families/memories/fl_nor/index_new.htm
+http://www.st.org/?id=4713&pad=15
+http://www.sta.bris.ac.uk/handbook/appendix-glossary.html
+http://www.stabilant.com/appnt41h.htm
+http://www.stabilitypact.org/pages/speeches/detail.asp?y=2003&p=7
+http://www.stacistallings.com/writingreadingspeakingtalking.htm
+http://www.staff.city.ac.uk/~ra826/group5/mg/mgindex.html
+http://www.staff.city.ac.uk/~ra826/group5/mg/printversion.html
+http://www.staff.ncl.ac.uk/david.harvey/AEF372/AEF372.2.html
+http://www.stafffinders.co.uk/
+http://www.staffordmall.com/mallbsl.htm
+http://www.stage-directions.com/backissues/mar01/allisbut_toys.shtml
+http://www.stage-directions.com/backissues/oct00/managedcare.shtml
+http://www.stageleft.com.au/blakes7/ph2mind.html
+http://www.stakes.fi/tidecong/723garvi.htm
+http://www.stalbansobserver.co.uk/display.var.563477.0.tenants_flee_homes_hit_by_arsonist.php
+http://www.stalbert.cruiseshipcenters.ca/Page.aspx-URL-CruisingWithKids.htm
+http://www.stamiweber.no/hefa/whp/6_fitfor.htm
+http://www.stammeringcentre.org/teenagers/articles/whathappens.html
+http://www.stampington.com/html/golden.html
+http://www.stampsonstamps.org/
+http://www.standardbank.co.za/SBIC/Frontdoor_02_02/0,2454,3447_7351181_0,00.html
+http://www.standardbank.co.za/SBIC/Frontdoor_02_02/0,2454,3447_9212_0,00.html
+http://www.standardbank.co.za/SBIC/Frontdoor_02_02/0,2454,7264092_7277831_0,00.html
+http://www.standarddeviants.com/1-800-238-9669/cerebellum.home
+http://www.standardfederalbank.com/privacy/reporting.html
+http://www.standards.dfes.gov.uk/forums/showflat.php?Cat=&Number=314&Main=314
+http://www.standards.dfes.gov.uk/keystage3/respub/mathsframework/maths/across_curriculum/
+http://www.standards.dfes.gov.uk/literacy/prof_dev/articles_archive/659925/?leaf=0
+http://www.standards.dfes.gov.uk/primary/casestudies/literacy/629485/654861/
+http://www.standards.dfes.gov.uk/primary/casestudies/literacy/boys_achievement/1094329/
+http://www.standards.dfes.gov.uk/primary/features/literacy/659925/
+http://www.standards.dfes.gov.uk/primary/publications/literacy/nls_framework/glossary/
+http://www.standards.dfes.gov.uk/research/digests/FriNov11552362002/?view=amzRsText
+http://www.standards.dfes.gov.uk/schemes2/geography/geo17/?view=list&column=outcome
+http://www.standards.dfes.gov.uk/schemes2/secondary_mff/mff13/?view=list&column=activity
+http://www.standards.dfes.gov.uk/schemes2/secondary_science/sci09a/09aq2?view=get
+http://www.standards.dfes.gov.uk/schemes2/secondary_science/sci09a/?view=list&column=activity
+http://www.standards.dfes.gov.uk/seu/policy/
+http://www.standardsasap.org/press2.htm
+http://www.standuptoracism.com.au/default.asp?nc=3535&id=168
+http://www.standuptoracism.com.au/default.asp?nc=7329&id=340
+http://www.stanford.edu/dept/HPS/Nanodreams/DeepSafari.html
+http://www.stanford.edu/dept/hds/has/applying/grad/gradapply/assignproc.html
+http://www.stanford.edu/dept/hds/has/applying/grad/gradapply/faq.html
+http://www.stanford.edu/dept/hds/has/applying/grad/gradapply0405/faq.html
+http://www.stanford.edu/dept/hds/has/applying/grad/gradresults/assigned.html
+http://www.stanford.edu/dept/hds/has/applying/grad/gradresults/chance.html
+http://www.stanford.edu/dept/hds/has/applying/grad/gradresults/lottery/chance.html
+http://www.stanford.edu/dept/hds/has/applying/summer/smrapply/src.html
+http://www.stanford.edu/dept/hds/has/applying/walkinguide.html
+http://www.stanford.edu/dept/hds/has/drawdoc/pri.html
+http://www.stanford.edu/dept/itss/services/imap/details.html
+http://www.stanford.edu/dept/news/pr/03/ogata64.html
+http://www.stanford.edu/dept/news/pr/98/981104wagegap.html
+http://www.stanford.edu/dept/news/report/news/april19/mri-419.html
+http://www.stanford.edu/dept/news/report/news/february16/internetsurvey-216.html
+http://www.stanford.edu/dept/news/report/news/january13/nie113.html
+http://www.stanford.edu/dept/undergrad/uac/preprof/law_application.htm
+http://www.stanford.edu/group/King/publications/papers/vol1/440500-The_Negro_and_the_Constitution.htm
+http://www.stanford.edu/group/King/publications/papers/vol3/551205.004-MIA_Mass_Meeting_at_Holt_Street_Baptist_Church.htm
+http://www.stanford.edu/group/King/publications/papers/vol4/570207.012-Announcement_of_New_Orleans_Conference.htm
+http://www.stanford.edu/group/SHR/4-2/text/fetzer.html
+http://www.stanford.edu/group/SHR/4-2/text/hofstadter.html
+http://www.stanford.edu/group/ews/degreqmsefmh2.html
+http://www.stanford.edu/group/las/resources/volunteer_work.html
+http://www.stanford.edu/group/pawender/html/apop.html
+http://www.stanford.edu/group/scip/sirp/NAICS.html
+http://www.stanford.edu/group/sjir/3.1.09_ratliff.html
+http://www.stanford.edu/group/sjir/3.2.07_meyer.html
+http://www.stanford.edu/group/spa/admit/sthought.html
+http://www.stanford.edu/home/stanford/facts/chron.html
+http://www.stanford.edu/home/stanford/history/leader.html
+http://www.stanford.edu/home/statistics/
+http://www.stanford.edu/news/report/news/may17/powers-517-a.html
+http://www.stanford.edu/news/report/news/november4/wagegap114-a.html
+http://www.stanford.edu/~dement/equip.html
+http://www.stanford.edu/~dement/silvercelebration.html
+http://www.stanford.edu/~gohogs/feland_CV.htm
+http://www.stanford.edu/~hakuta/E_CLAD/Course3/groppwork_case.htm
+http://www.stanford.edu/~hakuta/racial_dynamics/News/stanford%20report.htm
+http://www.stanford.edu/~joboaler/uk.html
+http://www.stanford.edu/~meehan/donnellyr/gerald.html
+http://www.stanford.edu/~wfsharpe/art/djam/djam.htm
+http://www.stanford.edu/~wfsharpe/mia/int/mia_int3.htm
+http://www.stanford.edu/~wfsharpe/mia/prc/mia_prc5.htm
+http://www.stanford.edu/~yesavage/GDS.html
+http://www.stanfordalumni.org/news/magazine/1998/mayjun/articles/doctors_of_invention.html
+http://www.stanfordalumni.org/news/magazine/2002/julaug/features/anthro.html
+http://www.stanfordalumni.org/news/magazine/2002/mayjun/classnotes/obituaries.html
+http://www.stanfordalumni.org/news/magazine/2004/mayjun/farm/news/journals.html
+http://www.stanfordalumni.org/news/magazine/2004/sepoct/features/car.html
+http://www.stanfordalumni.org/news/magazine/2005/janfeb/show/steinbeck.html
+http://www.stanfordaustin.org/privacy.asp
+http://www.stanfordhospital.com/clinicsmedServices/COE/heart/heartTransplant/frequentlyAskedQuestions.html
+http://www.stanfordhospital.com/healthLib/greystone/bariatric/preventingObesity.html
+http://www.stanfordhospital.com/healthLib/greystone/heartCenter/heartCareNews/heartCare_0408hc.html
+http://www.stanfordhospital.com/newsEvents/heartCareNews/
+http://www.stanfordreview.org/Archive/Volume_XXXIV/Issue_9/Opinions/Opinions14.shtml
+http://www.stangrist.com/Humboldt.htm
+http://www.staplesart.com/about.html
+http://www.star4cast.com/political_display.asp?ID=59
+http://www.starbounding.com/08_home_exercise.htm
+http://www.starcitygames.com/php/news/expandnews.php?Article=1765
+http://www.stare.com/1997/week21.html
+http://www.stare.com/2000/transition19.html
+http://www.starglaze-windows.co.uk/
+http://www.starhawk.org/activism/activism-writings/whywashington.html
+http://www.starisland.org/docs/000110board.html
+http://www.stark.kent.edu/writing/review%201998/laney.htm
+http://www.starland.com/Activities/SF03_Activities.htm
+http://www.starnine.com/
+http://www.starpolish.com/news/interviews/MacKayeWatt2/index.asp
+http://www.starquest.com/Supportdocs/techSP/StarSQL_and_StarPipe.html
+http://www.starsnsites.com/voice/help/acting_classes.html
+http://www.starstore.com/acatalog/
+http://www.starstore.com/acatalog/Starstore_Catalogue_DRAGON_MILITARY_FIGURES_1094.html
+http://www.starstreak.net/blog/
+http://www.startersorders.com/sopro.htm
+http://www.startrek.com/startrek/view/features/specials/article/3783.html
+http://www.startribune.com/health/
+http://www.startribune.com/stories/131/4970789.html
+http://www.startribune.com/stories/1389/21718-2.html
+http://www.startribune.com/stories/1519/5211218-2.html
+http://www.startribune.com/stories/1694/2257932.html
+http://www.startribune.com/stories/389/5101240.html
+http://www.startribune.com/stories/401/3720482.html
+http://www.startribune.com/stories/412/5068934.html
+http://www.startribune.com/stories/432/4970789.html
+http://www.startribune.com/stories/535/5193016.html
+http://www.startribune.com/stories/611/4909888.html
+http://www.startupjournal.com/runbusiness/taxadvice/20040831-miller.html
+http://www.startups.co.uk/YSYyaN1ojdegVw.html
+http://www.startups.co.uk/YXw5QGloGiKUjw.html
+http://www.starvingmind.net/detail/0142000280.html
+http://www.starwars.com/databank/character/yoda/
+http://www.starwars.com/eu/lit/novel/f20050125/
+http://www.starwarschicks.com/media/collectibles.shtml
+http://www.starwoodhotels.com/fourpoints/about/history.html
+http://www.starwoodhotels.com/preferredguest/
+http://www.starz.com/se/starz/hdtv.html
+http://www.stat.go.jp/english/data/shakai/2001/jikan/yoyakuj.htm
+http://www.stat.lsa.umich.edu/courses/courselist.html
+http://www.stat.ohio-state.edu/dept/spotlight.html
+http://www.stat.psu.edu/news/conferences/ccc_conference/main.html
+http://www.stat.umn.edu/geyer/8701/parm/
+http://www.statcan.ca/english/research/11-621-MIE/11-621-MIE2004019.htm
+http://www.statcan.ca/english/survey/household/security/sfs2005.htm
+http://www.state.co.us/gov_dir/leg_dir/lcs/fn/fnote98/sb019.htm
+http://www.state.co.us/gov_dir/leg_dir/lcsstaff/2003/research/03sunsetproc.htm
+http://www.state.co.us/gov_dir/leg_dir/lcsstaff/2005/research/05sunsetproc.htm
+http://www.state.co.us/oed/news/050120tour.html
+http://www.state.co.us/oemc/publications/archive/sgfinal/
+http://www.state.ct.us/csec/general/
+http://www.state.ct.us/dcf/Good_News/staying.htm
+http://www.state.ct.us/foi/Meeting_Agendas_and_Minutes/Minutes/2004_Minutes/20041027MRM.htm
+http://www.state.ct.us/foi/What's_New/What's%20New%20Content/2005_foi_conf_prog.htm
+http://www.state.ga.us/cgi-bin/pub/ocode/ocgsearch?number=4-11&format=full
+http://www.state.gov/
+http://www.state.gov/e/eb/ifd/2005/42035.htm
+http://www.state.gov/e/eb/rls/othr/8021.htm
+http://www.state.gov/e/eb/rls/rm/2002/11813.htm
+http://www.state.gov/e/rls/rm/2003/23797.htm
+http://www.state.gov/g/drl/rls/hrrpt/2003/27768.htm
+http://www.state.gov/g/drl/rls/hrrpt/2003/27773.htm
+http://www.state.gov/g/drl/rls/hrrpt/2004/41645.htm
+http://www.state.gov/g/drl/rls/hrrpt/2004/41737.htm
+http://www.state.gov/g/drl/rls/rm/2001/6378.htm
+http://www.state.gov/g/drl/rls/spbr/29867.htm
+http://www.state.gov/g/drl/rls/spbr/42805.htm
+http://www.state.gov/g/oes/rls/rm/2002/12164.htm
+http://www.state.gov/g/oes/rls/rm/2002/14540.htm
+http://www.state.gov/g/oes/rls/rm/2004/32254.htm
+http://www.state.gov/g/rls/rm/2004/33685.htm
+http://www.state.gov/g/rls/rm/2005/46358.htm
+http://www.state.gov/m/a/als/qtrpt/2002/9248.htm
+http://www.state.gov/m/a/als/qtrpt/2003/18799.htm
+http://www.state.gov/m/dghr/flo/9859.htm
+http://www.state.gov/m/dghr/flo/rsrcs/pubs/2042.htm
+http://www.state.gov/m/ds/rls/rpt/19773.htm
+http://www.state.gov/m/rm/rls/dosstrat/2004/23506.htm
+http://www.state.gov/p/2005/45146.htm
+http://www.state.gov/p/eap/rls/rm/2002/8581.htm
+http://www.state.gov/p/eap/rls/rm/2005/46935.htm
+http://www.state.gov/p/eap/rls/rm/2005/47334.htm
+http://www.state.gov/p/eur/rls/rm/2003/19407.htm
+http://www.state.gov/p/io/rls/rm/2003/20538.htm
+http://www.state.gov/p/nea/rls/20573.htm
+http://www.state.gov/p/sa/rls/fs/33577.htm
+http://www.state.gov/p/sa/rls/rm/2005/40739.htm
+http://www.state.gov/p/sa/rls/rm/2005/42330.htm
+http://www.state.gov/p/sa/rls/rm/22296.htm
+http://www.state.gov/p/sa/rls/rm/29230.htm
+http://www.state.gov/r/pa/ei/bgn/2859.htm
+http://www.state.gov/r/pa/ei/bgn/3180.htm
+http://www.state.gov/r/pa/ei/bgn/35855.htm
+http://www.state.gov/r/pa/ei/bgn/3997.htm
+http://www.state.gov/r/pa/ho/adcom/mtgnts/11697.htm
+http://www.state.gov/r/pa/ho/adcom/mtgnts/18004.htm
+http://www.state.gov/r/pa/ho/frus/kennedyjf/xxv/6029.htm
+http://www.state.gov/r/pa/ho/frus/nixon/iv/15230.htm
+http://www.state.gov/r/pa/prs/dpb/2003/24154.htm
+http://www.state.gov/r/pa/prs/dpb/2005/40755.htm
+http://www.state.gov/r/pa/prs/dpb/2005/41413.htm
+http://www.state.gov/r/pa/prs/dpb/2005/42749.htm
+http://www.state.gov/r/pa/prs/dpb/2005/42962.htm
+http://www.state.gov/r/pa/prs/dpb/2005/43013.htm
+http://www.state.gov/r/pa/prs/dpb/2005/47006.htm
+http://www.state.gov/r/us/15912.htm
+http://www.state.gov/s/ct/rls/pgtrpt/2000/2450.htm
+http://www.state.gov/s/ct/rls/pgtrpt/2002/html/19992.htm
+http://www.state.gov/s/ct/rls/pgtrpt/2003/31759.htm
+http://www.state.gov/s/d/former/armitage/remarks/2001/5198.htm
+http://www.state.gov/s/d/former/armitage/remarks/2002/14640.htm
+http://www.state.gov/s/d/rm/44052.htm
+http://www.state.gov/s/p/rem/36915.htm
+http://www.state.gov/secretary/former/powell/remarks/2001/1000.htm
+http://www.state.gov/secretary/former/powell/remarks/2001/2659.htm
+http://www.state.gov/secretary/former/powell/remarks/2002/12435.htm
+http://www.state.gov/secretary/former/powell/remarks/2002/14087.htm
+http://www.state.gov/secretary/former/powell/remarks/2002/14494.htm
+http://www.state.gov/secretary/former/powell/remarks/2002/14602.htm
+http://www.state.gov/secretary/former/powell/remarks/2002/14980.htm
+http://www.state.gov/secretary/former/powell/remarks/2002/9940.htm
+http://www.state.gov/secretary/former/powell/remarks/2003/21970.htm
+http://www.state.gov/secretary/former/powell/remarks/2005/40800.htm
+http://www.state.gov/secretary/former/powell/remarks/30558.htm
+http://www.state.gov/secretary/former/powell/remarks/32931.htm
+http://www.state.gov/secretary/former/powell/remarks/40145.htm
+http://www.state.gov/secretary/rm/2005/41834.htm
+http://www.state.gov/secretary/rm/2005/41973.htm
+http://www.state.gov/secretary/rm/2005/42072.htm
+http://www.state.gov/secretary/rm/2005/43345.htm
+http://www.state.gov/secretary/rm/2005/45131.htm
+http://www.state.gov/secretary/rm/2005/46826.htm
+http://www.state.gov/t/pm/rls/rm/39978.htm
+http://www.state.gov/t/us/rm/8889.htm
+http://www.state.gov/t/vc/30587.htm
+http://www.state.gov/t/vc/rls/rm/2004/39361.htm
+http://www.state.hi.us/lrb/rpts95/petro/petappi.html
+http://www.state.hi.us/sfca/hawaiistateartmuseum.htm
+http://www.state.ia.us/das/directors_office/wall_of_fame.html
+http://www.state.ia.us/tax/educate/78573.html
+http://www.state.ia.us/tax/educate/78601.html
+http://www.state.il.us/hpa/Blackhawk.htm
+http://www.state.il.us/hpa/hs/Blackhawk.htm
+http://www.state.in.us/isp/memoriam/
+http://www.state.me.us/legis/ofpr/billsumm.htm
+http://www.state.mi.us/dmb/apps/oop/purchasing_user.asp?frm=attachments&cmd=view&itb_id=3202&att_id=4
+http://www.state.mn.us/
+http://www.state.nd.us/arts/resources/accessability.htm
+http://www.state.nd.us/hist/sakakawea.htm
+http://www.state.nd.us/ndins/company/details.asp?ID=178
+http://www.state.nd.us/sec/electvote/voting/vote-history.html
+http://www.state.nj.us/dca/dhcr/msnj_dri.shtml
+http://www.state.nj.us/dep/fgw/artbonds.htm
+http://www.state.nj.us/dep/parksandforests/parks/round.html
+http://www.state.nj.us/dobi/wysk1.htm
+http://www.state.nj.us/lps/ca/adopt.htm
+http://www.state.nj.us/lps/ca/adoption/adopt.htm
+http://www.state.nj.us/lps/ca/proposal/cosmopro.htm
+http://www.state.nj.us/lps/ca/proposal/mar2pro.htm
+http://www.state.nj.us/lps/ca/proposal/proposal.htm
+http://www.state.nj.us/lps/racing/about.html
+http://www.state.nj.us/personnel/testimonials/HRDI.htm
+http://www.state.ny.us/governor/low_man_speec04.html
+http://www.state.sc.us/dmh/bryan/websczaf.htm
+http://www.state.sd.us/deca/DDN4Learning/ThemeUnits/west/cs.htm
+http://www.state.sd.us/dol/dolui/tax/TX_rates.htm
+http://www.state.sd.us/social/EBT/STOFR.htm
+http://www.state.tn.us/education/nclb04ltrtosimon
+http://www.state.vt.us/educ/new/html/mainemploy.html
+http://www.state.vt.us/vlrb/00-46.htm
+http://www.state.vt.us/vlrb/02-60.htm
+http://www.state.vt.us/vlrb/02-61.htm
+http://www.state.vt.us/vlrb/03-47.htm
+http://www.state.vt.us/vlrb/03-54.htm
+http://www.state.vt.us/vlrb/04-42.htm
+http://www.statebankofindia.com/contactus/training.asp
+http://www.statefarm.com/consumer/burgbroc.htm
+http://www.statefarm.com/consumer/vhouse/articles/sumpump.htm
+http://www.statefarm.com/mutual/disclosure.asp
+http://www.statehouse.go.ug/news.detail.php?newsId=434&category=News%20Release
+http://www.statehouse.go.ug/news.detail.php?newsId=452&category=News%20Release
+http://www.statehousereport.com/columns/04.1024.economy.htm
+http://www.stateofthemedia.org/2005/narrative_radio_newsinvestment.asp?cat=6&media=8
+http://www.stateofthenewsmedia.org/narrative_ethnicalternative_ethnic.asp?media=9
+http://www.statepress.com/issues/2001/10/19/
+http://www.statesforbiomed.org/facts.html
+http://www.statesman.com/news/content/shared/tx/legislature/stories/06/2hhs.html
+http://www.statewatch.org/
+http://www.stationfive.com/movies/Scripts/Hannah_and_Her_Sisters.txt
+http://www.statistics.gov.uk/CCI/nscl.asp?ID=6614
+http://www.statistics.gov.uk/CCI/nscl.asp?ID=6677
+http://www.statistics.gov.uk/CCI/nscl.asp?ID=7501&RT=16&PG=3
+http://www.statistics.gov.uk/cci/nscl.asp?ID=6614
+http://www.statistics.gov.uk/cci/nscl.asp?ID=6627
+http://www.statistics.gov.uk/cci/nscl.asp?ID=7696
+http://www.statistics.gov.uk/cci/nscl.asp?id=6652
+http://www.statistics.gov.uk/cci/nscl.asp?id=6656
+http://www.statistics.gov.uk/cci/nscl.asp?id=7136
+http://www.statistics.gov.uk/cci/nscl.asp?id=7696
+http://www.statistics.gov.uk/census2001/2001_ciw_report.asp
+http://www.statistics.gov.uk/statbase/ssdataset.asp?vlnk=5939&More=Y
+http://www.statit.com/partners/opportunities.htm
+http://www.statoil.ie/rom/dub00107.nsf/docs/Drilling_Begins
+http://www.statoil.ie/statoilie/svg02976.nsf/0/f712b017efc1867080256c55004a4935?OpenDocument
+http://www.statravel.co.uk/c_aboutus/branch.asp?affID=statravel&branchID=edinburgh
+http://www.stats.gov.cn/english/newrelease/statisticalreports/t20050228_402231957.htm
+http://www.stats.govt.nz/quick-facts/people/age-sex-and-ethnicity-diversity.htm
+http://www.stats.govt.nz/schools-corner/curr-by-level/level3-4tchers/fig-facts-tchers.htm
+http://www.stats.org/record.jsp?type=news&ID=173
+http://www.statsoft.com/textbook/glosr.html
+http://www.statsoft.com/textbook/glosu.html
+http://www.stayingalive.ca/kids_zone.html
+http://www.stayinginshape.com/3osfcorp/libv/p39.shtml
+http://www.stayingput.org.uk/paying.html
+http://www.staylace.com/textarea/originalfiction/@@tgfsfg_1.htm
+http://www.staynavy.navy.mil/counselors_resources/content/Newsletter_Archives/JuneLetterTwo.asp
+http://www.staynavy.navy.mil/counselors_resources/content/Newsletter_Archives/LetterOne.asp
+http://www.staynavy.navy.mil/enlisted/content/pay_and_benefits/pay.asp
+http://www.staynavy.navy.mil/officer/content/pay_and_benefits/pay.asp
+http://www.staynovascotia.ca/
+http://www.stayonline.net/pr/PRvAc1iN.html
+http://www.stazsoftware.com/yspeak/support.php
+http://www.stbartztravel.com/disclaimer.asp
+http://www.stbedes.ngfl.ac.uk/nws0703.htm
+http://www.stbernards.org/newslet/no28_p7a.html
+http://www.stbride.org/conference2002/TypefaceClassification.html
+http://www.stbride.org/conference2002/ViceCards.html
+http://www.stc-carolina.org/competitions/techart/index.shtml
+http://www.stc-phoenix.com/Rough%20Draft_Current/Jan04_files/changework_jan04.htm
+http://www.stcath-hosp.org/proam/sponsor_oppt.htm
+http://www.stcatherines.net.au/School/ELC.asp
+http://www.stcatz.ox.ac.uk/Studying_at_St_Catherines/Graduates/Accommodation.htm
+http://www.stchristopher-ottilie.org/madonna_heights.htm
+http://www.stclaircollege.ca/campus/thames/daycare.html
+http://www.stcloudstate.edu/studenthandbook/facilities/default.asp
+http://www.stcsig.org/usability/newsletter/0310-motivation.html
+http://www.stcwvc.org/competition/competition_art.html
+http://www.stcynic.com/blog/archives/2005/06/victory_in_gull.php
+http://www.stcynic.com/blog/archives/intelligent_design/gull_lake_situation/index.php
+http://www.stealthencrypt.com/koolkids/st_ha01.html
+http://www.stealthpacs.org/about/page.cfm?pageid=7
+http://www.steamboats.com/engineroom3.html
+http://www.steampunk.com/sfch/writing/ckilian/
+http://www.steddy.com/tekst_video3_eng.htm
+http://www.stedwards.edu/educ/minus/read4343/rubrics/observation_grading.htm
+http://www.steel.org/learning/glossary/glossary.htm
+http://www.steelphoenix.com/projects/Crystal/bios.html
+http://www.steelydan.com/dennys3.html
+http://www.steelypips.org/library/BigU.html
+http://www.steelypips.org/principles/2005_05_08_principlearchive.php
+http://www.steelypips.org/weblog/
+http://www.steg.com/jan2000.html
+http://www.stegbar.com.au/products/windows_and_doors/timber/
+http://www.steidlmayer.com/
+http://www.steigrad.com/cat/vandervoort01.html
+http://www.steigrad.com/cat/vandervoort02.html
+http://www.steinitzpuzzlers.com/first_urn.html
+http://www.steintravel.ie/guides/destination4.asp
+http://www.stellabooks.com/cats/sonia/Dogs---Terriers-16-4-2005.htm
+http://www.stellamarrs.com/about/
+http://www.stellar-database.com/non-ISDB/LogansRun.html
+http://www.stellarubinantiques.com/catalog/Archives:Decorative_Art60.html
+http://www.stellenberg.org.za/exchange_programme.htm
+http://www.stelpipe.com/glossary.html
+http://www.stemproject.co.uk/kingalfreds03/03/glossary.html
+http://www.stempublishing.com/authors/wolston/SPIRIT02.html
+http://www.stenomuseet.dk/person/hb.ukref.htm
+http://www.stepforward.net/OnLineHelp/A1P2b.html
+http://www.stephen-knapp.com/
+http://www.stephen-knapp.com/why_understand_the_creation_of_the_universe.htm
+http://www.stephenbates.com/yellowdoggereldemocrat/doggerel_200501b.htm
+http://www.stephenfried.com/gia/firstch.html
+http://www.stephennewton.com/2004/11/holidays-walking-painting-writing-and.html
+http://www.stephenpollard.net/002060.html
+http://www.stephiedavis.com/putting_boys_on_the_ledge.html
+http://www.stepintohistory.com/states/NJ/Allaire_Village.htm
+http://www.stepstone.com/ir/finance_detail.cfm?aid=153
+http://www.steptwo.com.au/papers/cardsorting/
+http://www.steptwo.com.au/papers/kmc_content/
+http://www.steptwo.com.au/papers/kmc_intranetvsweb/
+http://www.steptwo.com.au/seminars/cms/
+http://www.stereophile.com/
+http://www.stereosociety.com/body_foursides.html
+http://www.stereotimes.com/amp041805.shtm
+http://www.stereotimes.com/cable121604.shtm
+http://www.steria.co.uk/index.asp?itemid=3161
+http://www.sterlingbancorp.com/trust/investmentmgt.cfm
+http://www.sterlinghoffman.com/newsletter/articles/article77.html
+http://www.stern.nyu.edu/Sternbusiness/fall_winter_2000/silicon.html
+http://www.stern.nyu.edu/Sternbusiness/fall_winter_2003/justsayingno.html
+http://www.stern.nyu.edu/Sternbusiness/spring_summer_2005/press.html
+http://www.stetson.edu/~psteeves/relnews/0008d.html
+http://www.stetson.edu/~rhansen/advertising_exercises.html
+http://www.steve.gb.com/rants/esperanto.html
+http://www.steveackerman.net/spiritualfood/try_putting.html
+http://www.steveajao.com/messages.htm
+http://www.steveearle.net/lyrics/ly-guita.php
+http://www.steveellis.co.uk/reccol_loveaffair.html
+http://www.stevefossett.com/html/press_archives/isle_Wight_09nov01.html
+http://www.stevegoz.com/
+http://www.stevemcconnell.com/rdkind.htm
+http://www.stevenberlinjohnson.com/movabletype/archives/000211.html
+http://www.stevenmsmith.com/weblog/
+http://www.stevens-tech.edu/ocs/successful.htm
+http://www.stevenyoung.co.nz/chinesevoice/ChinConf/S5.html
+http://www.stevepavlina.com/blog/2004/11/why-pursue-personal-growth-at-all/
+http://www.stevepavlina.com/blog/2004/12/knowing-when-to-break-a-commitment/
+http://www.stevepavlina.com/blog/2005/01/what-is-your-career/
+http://www.stevepavlina.com/blog/2005/03/hard-work/
+http://www.stevepavlina.com/blog/2005/04/30-days-to-success/
+http://www.stevepavlina.com/blog/2005/06/working-in-unusual-places/
+http://www.stevespanglerscience.com/index.php
+http://www.steveverdon.com/archives/2004_04.html
+http://www.steviedavies.com/sd_f_element_review.html
+http://www.stewartstewart.com/order/
+http://www.stf.sk.ca/teaching_res/library/teach_mat_centre/tmc/p11425/p11425.htm
+http://www.stfm.org/fmhub/fm1997/may1997/abstract.html
+http://www.stgambit.gda.pl/
+http://www.stgeorge.com.au/about/directors/default.asp?orc=about
+http://www.stgeorge.com.au/about/investor/governance/risk_charter.asp?orc=investor
+http://www.stgeorge.com.au/about/your_security/default.asp?orc=personal
+http://www.sthct.nhs.uk/depts/mentalHealth/MentalHealth_LD.htm
+http://www.sthelenatourism.com/FF-faqcenter.htm
+http://www.sthildas.qld.edu.au/curriculum/SSLOTEGer10.htm
+http://www.stibc.org/links.php
+http://www.sticklers.org/sip/sipnws13.html
+http://www.stickmanbangkok.com/Reader/reader1191.htm
+http://www.stickmanbangkok.com/reader/reader1024.html
+http://www.stickmanbangkok.com/reader/reader584.html
+http://www.stickmanbangkok.com/reader/reader94.html
+http://www.stickyminds.com/BetterSoftware/magazine.asp?fn=cifea&id=55
+http://www.stickyminds.com/se/S3372.asp
+http://www.stickyminds.com/se/S6404.asp
+http://www.stickyminds.com/se/S7294.asp
+http://www.stiftung-evz.de/fremdsp/englisch/merkblatt_en.html
+http://www.stikage.com/guide_carabiners.htm
+http://www.stillhq.com/planet-aus-dotnet/
+http://www.stingraysoccer.com/coaching_tips.html
+http://www.stinky.com/wtc/stories5.html
+http://www.stirling-enterprise.co.uk/news.htm
+http://www.stjames.finchampstead.co.uk/worship/churchguide.html
+http://www.stjamescareers.ie/jobs/Listings.asp?jobFile=jb561.asp
+http://www.stjamescareers.ie/jobs/Listings.asp?jobFile=jb565.asp
+http://www.stjamescareers.ie/jobs/Listings.asp?jobFile=jb583.asp
+http://www.stjameschurchsydney.org.au/Clergy/Sermons/AS/010603.asp
+http://www.stjamesmercy.org/cardiacrehab.html
+http://www.stjamesmercy.org/inthenews.html
+http://www.stjamespullman.org/Sermon.htm
+http://www.stjoan-center.com/Trials/sec21.html
+http://www.stjoenews-press.com/main.asp?FromHome=1&TypeID=1&ArticleID=61199&SectionID=152&SubSectionID=423
+http://www.stjoenews-press.com/main.asp?SectionID=152&SubSectionID=423&ArticleID=61199&TM=10838.22
+http://www.stjoenews-press.com/main.asp?SectionID=152&SubSectionID=423&ArticleID=61199&TM=51239.53
+http://www.stjoenews-press.com/main.asp?SectionID=152&SubSectionID=423&ArticleID=61199&TM=8581.017
+http://www.stjohnks.net/santafetrail/research/forthaysfortdodgeroad01.html
+http://www.stjohnparish.com/lakemaurepas/aboutus.htm
+http://www.stjohns.ca/cityhall/councilminutesdetail.jsp?id=122
+http://www.stjude.org/media/0,2561,453_2137_5922,00.html
+http://www.stlblues.net/pete_bankheadpleaseaccept.htm
+http://www.stlconfluence.org/
+http://www.stleonardshospice.org.uk/news67.html
+http://www.stlimc.org/
+http://www.stlouisfed.org/publications/re/2005/b/pages/appearances.html
+http://www.stltoday.com/stltoday/business/stories.nsf/0/78D510128666666C86256F960014A9D2?OpenDocument&Headline=Microsoft+will+restrict+updates+on+security&tetl=1
+http://www.stltoday.com/stltoday/lifestyle/stories.nsf/travel/story/C7120DBF9EF807D2862570150004A11A?OpenDocument
+http://www.stltoday.com/stltoday/neighborhoods/stories.nsf/0/f2558b58aeb41e2786256fe8004a862e?OpenDocument&Highlight=2,%22williams%22%20AND%20%22ebay%22&Click=
+http://www.stltoday.com/stltoday/neighborhoods/stories.nsf/news/story/F2558B58AEB41E2786256FE8004A862E?OpenDocument&highlight=2,%22williams%22+AND+%22ebay%22
+http://www.stlucia.gov.lc/primeminister/budgetaddresses/budgetaddress199899.htm
+http://www.stlukeseye.com/Conditions/Fuchs.asp
+http://www.stm-assoc.org/annualreport/10committee.php
+http://www.stmadsophie.org/HowTo/ReturnToChurch.htm
+http://www.stmaryorthodoxchurch.org/orthodoxy/articles/2004-hughes-sin.php
+http://www.stmarys.kzn.school.za/news.htm
+http://www.stmatthew-ucc.org/sermon-losingweight.htm
+http://www.stmatthews.org.nz/s085.htm
+http://www.stmatthews.org.nz/smaca086.htm
+http://www.stmoroky.com/reviews/books/teadrgn.htm
+http://www.stnews.org/calendar.html
+http://www.stock-channel.net/stock-board/archive/index.php3/t-1770.html
+http://www.stockbrokers.barclays.co.uk/content/home/message_centre.htm?usecase=messagecentre
+http://www.stockcarracing.com/thehistoryof/14460/
+http://www.stockcarracing.com/thehistoryof/32379/
+http://www.stockcarracing.com/thehistoryof/60018/
+http://www.stockcharts.com/education/IndicatorAnalysis/indic_Bbands.html
+http://www.stockholmtown.com/templates/Kartena___9855__EN.aspx?pageId=10167&type=1
+http://www.stockingshq.com/articles/culture/embarrassing01.htm
+http://www.stockpatrol.com/article/key/u_%20Livestar6
+http://www.stoessel.ch/cambodia3.htm
+http://www.stolaf.edu/catalog/academicprogram/music.html
+http://www.stolaf.edu/cll/travel/europe/greatbritainitin.html
+http://www.stolaf.edu/people/leming/soc260fam/news/April_1.html
+http://www.stompproject.org/staff.asp
+http://www.stone.com/dev/SDTableView/ReordingTableView.html
+http://www.stonecaretechniques.com/38_m.htm
+http://www.stonecottage.com/josh/
+http://www.stonehenge.com/merlyn/LinuxMag/col42.html
+http://www.stonehenge.com/merlyn/WebTechniques/col07.html
+http://www.stonehenge.com/merlyn/WebTechniques/col55.html
+http://www.stonehill.edu/compsci/ShaisJournal/Andrea2.htm
+http://www.stonehill.edu/srs/rules.htm
+http://www.stonelantern.com/bonsaitodaybackissues.html
+http://www.stonesrivertrading.com/dug_confederate_buttons.htm
+http://www.stonetablesoftware.com/quotes.html
+http://www.stonetechpro.com/stonecare/idx/22/075/article/Heavy-Duty-Stone-Sealer.html
+http://www.stonetechpro.com/stonecare/idx/22/102/article/Heavy-Duty-Exterior-Stone--Masonry-Sealer.html
+http://www.stonetechpro.com/stonecare/idx/22/109/article/KlenzAll-Heavy-Duty-Stone--Tile-Cleaner.html
+http://www.stonetechpro.com/stonecare/idx/22/116/article/Heavy-Duty-Coating-Stripper.html
+http://www.stonetechpro.com/stonecare/idx/5/075/Product-Usage-Instructions/article/Heavy-Duty-Stone-Sealer.html
+http://www.stonewallrevisited.com/pages/michaelr.html
+http://www.stonnington.vic.gov.au/backyard/parking/7840
+http://www.stonyfield.com/MT-STATIC/mt-comments.cgi?entry_id=414
+http://www.stonyfield.com/WebLogarchives/CreatingHealthyKids/2004_05.html
+http://www.stonyfield.com/Wellness/MooslettersDisplay.cfm?moos_id=16
+http://www.stopdesign.com/log/2005/01/31/msn-goes-css.html
+http://www.stopecg.org/default.htm
+http://www.stopftaa.org/
+http://www.stophairlossnow.co.uk/Rogaine_for_Women4.htm
+http://www.stopmessinabout.co.uk/CarOn-Art-PR2.htm
+http://www.stopnader.com/news.asp?NewsID=47
+http://www.stoptheftaa.org/artman/publish/printer_93.shtml
+http://www.stopthehogs.com/research/ten_reasons.htm
+http://www.stopthephonetax.com/whyoppose/hightax.htm
+http://www.stopwar.org.uk/cd.asp
+http://www.storagebysony.com/OEM/categories/categorymain.asp?id=7
+http://www.storagebysony.com/categories/categorymain.asp?id=7
+http://www.storagepipeline.com/story/showArticle.jhtml?articleID=13100964
+http://www.storagetek.co.uk/about/press/291104.html
+http://www.storefrontdemme.com/marysteenburgen.html
+http://www.storerunner.com/Mall/Stores/StoreInfo.asp?Store_id=1000008761
+http://www.storerunner.com/Mall/Stores/StoreInfo.asp?Store_id=1000043213
+http://www.stores.org/archives/cover.asp
+http://www.stores.org/newsletter/April1803newsletter.html
+http://www.stories.com/
+http://www.stories.com/page/read_write/read_write.html
+http://www.stormbirds.com/common/model.htm
+http://www.stormfront.org/archive/t-148657National_Socialism_in_a_Irish_Context.html
+http://www.stormfront.org/archive/t-171058Question_to_WNs_from_a_WN.html
+http://www.stormfront.org/archive/t-177150Help!.html
+http://www.stormfront.org/forum/showthread.php?t=177150
+http://www.stormfront.org/whitehistory/hwr53i.htm
+http://www.stormpages.com/garyjkennedy/British/british_infantry_battalion.htm
+http://www.stormpages.com/garyjkennedy/Weapons/infantry_weapons_of_world_war_tw.htm
+http://www.stormpages.com/lyrics/text/beacon.html
+http://www.stormsurf.com/page2/papers/category.html
+http://www.stormsurf.com/page2/tutorials/atmomodel.shtml
+http://www.stormtrack.org/library/1997/lg061197.htm
+http://www.storybin.com/sponsor/sponsor129.shtml
+http://www.storyboards-east.com/adwexcpt.htm
+http://www.storybookonline.net/archive/Real_Life_Story.aspx
+http://www.storycenter.org/diner/pages/aj3.html
+http://www.storyhouse.org/djurica2.html
+http://www.storymania.com/cgibin/sm2/smshowauthorbox.cgi?alpha=G&author=GambleC
+http://www.storymania.com/cgibin/sm2/smshowtitlebox.cgi?title=TheManWhoWalkedUnseen&category=shortstories&page=15
+http://www.storyscribe.com/aah023.html
+http://www.storysouth.com/fall2001/expansespirit.html
+http://www.storysouth.com/winter2003/carnival.html
+http://www.stowmarketstriders.org.uk/ClubRaces/Scenic7.htm
+http://www.stp.uh.edu/vol58/93-04-01.html
+http://www.stpaulchgo.org/mission2000/dia8.htm
+http://www.stpetersburgtimes.com/2002/01/29/TampaBay/For_Tampa__Quick_draw.shtml
+http://www.stpetersburgtimes.com/2002/03/17/Worldandnation/US_claimed_it_killed_.shtml
+http://www.stpeterscambridge.org/sermons/tlpmar1702.html
+http://www.str.org/free/commentaries/abortion/canidest.htm
+http://www.str.org/free/commentaries/theology/ess_doct.htm
+http://www.str.org/free/commentaries/theology/prophand.htm
+http://www.str.org/free/studies/cultural.htm
+http://www.str8up.co.uk/archive/soulSista/SoulSistas_11_04.html
+http://www.straddle3.net/context/02/blog_0201.en.html
+http://www.straight.com/content.cfm?id=1780
+http://www.straight.com/content.cfm?id=4752
+http://www.straight.com/content.cfm?id=6681
+http://www.straightblastgym.com/
+http://www.straightblastgym.com/thoughts.htm
+http://www.straightdope.com/classics/a3_395.html
+http://www.straightdope.com/classics/a991022.html
+http://www.straightdope.com/columns/021122.html
+http://www.straightdope.com/mailbag/mfancool.html
+http://www.straightfromtheheart.com/author_amen.htm
+http://www.straightgoods.ca/Election2004/ViewNews.cfm?Ref=37
+http://www.straightgoods.ca/Election2004/ViewNews.cfm?Ref=46
+http://www.straightgoods.ca/Features.cfm
+http://www.straightgoods.ca/ViewConsForum5.cfm?REF=7
+http://www.straightgoods.ca/ViewFeature5.cfm?REF=54
+http://www.straightgoods.ca/ViewFeature5.cfm?REF=71
+http://www.straightgoods.ca/ViewLetter.cfm?REF=1405
+http://www.straightgoods.ca/ViewLetter.cfm?REF=1421
+http://www.straightgoods.com/Boutin/010122.shtml
+http://www.straightgoods.com/Guyatt/010402-1.shtml
+http://www.straightgoods.com/item180.shtml
+http://www.straightgoods.com/item411.shtml
+http://www.straightgoods.com/item425.shtml
+http://www.straightgoods.com/item440.shtml
+http://www.straightwhiteguy.com/
+http://www.strangehorizons.com/2001/20010903/on_the_wall.shtml
+http://www.strangehorizons.com/2003/20031013/fahrenheit.shtml
+http://www.strangehorizons.com/2004/20040503/tetrarchs.shtml
+http://www.strangehorizons.com/2004/20040906/greenglass-f.shtml
+http://www.strangehorizons.com/2005/20050620/network-darkness-a.shtml
+http://www.strangemag.com/exorcistpage1.html
+http://www.strangemag.com/mysteryofchance.html
+http://www.strangescience.net/darwin.htm
+http://www.strassmann.com/pubs/cw/y2kdebate/
+http://www.strassmann.com/pubs/hbr/carr-letter.shtml
+http://www.strassmann.com/pubs/knowledge-report.html
+http://www.strategery.modblog.com/
+http://www.strategichealthcare.com/list2001.html
+http://www.strategicnetwork.org/index.php?loc=pray&mode=v&type=&id=1817
+http://www.strategy-gaming.com/auto_insurance/compare-auto-insurance-rate.html
+http://www.strategyinformer.com/shooters/reviews/onemustfallbattlegrounds.shtml
+http://www.strategypage.com/dls/articles/200459a.asp
+http://www.strategypage.com/dls/articles/20052110.asp
+http://www.strategypage.com/dls/articles/200522720.asp
+http://www.strategypage.com/messageboards/messages/73-156.asp
+http://www.strategypage.com/messageboards/messages/73-157.asp
+http://www.strategypage.com/messageboards/messages/73-159.asp
+http://www.strategyplanet.com/emperor/spies.shtml
+http://www.strategyplanet.com/memw/
+http://www.strategyplanet.com/poseidon/archives.html
+http://www.stratford-upon-avon.co.uk/wslife.htm
+http://www.strathclydetechnology.com/ResearchExpertise/Business.htm
+http://www.strathdon.com/code/content.asp?contentid=915&pid=915&gpid=903
+http://www.strathspey.org/mailinglist
+http://www.strathstudents.com/DisplayPage.asp?pageid=5146
+http://www.stratics.com/content/portals/vanguard/
+http://www.stratsplace.com/rogov/reflections_frappes.html
+http://www.stratus.com/products/reference/texasstate.htm
+http://www.strawbalecentral.com/techniques3.html
+http://www.strawberry.org/scam/aug04.html
+http://www.strawberryswitchblade.net/interviews/bysubject_18.php
+http://www.streamingmedia.com/article.asp?id=7286&c=30
+http://www.streamingmedia.com/west2000/program.asp
+http://www.strecorsoc.org/jwoolman/w07.html
+http://www.stred.com/pr/news2.php
+http://www.streetauthority.com/p/ma/12-17-04-house.htm
+http://www.streetauthority.com/reports/top-ten-2005.asp
+http://www.streetbiker-mag.com/sb0124/6.html
+http://www.streetcar.org/msr/restoration/162updates/
+http://www.streetplay.com/skully/rules/
+http://www.streetrodderweb.com/events/0306sr_nhrareunion/
+http://www.streetschools.com/14press/14press.html
+http://www.streettalk.co.nz/modules/news/article-cat-31.html
+http://www.strength-shoes.com/policies.htm
+http://www.strength.org/nyc_operationfrontline.htm
+http://www.strengthtech.com/correct/behavior/behav2.htm
+http://www.stresscure.com/jobstress/reorg.html
+http://www.stresscure.com/relation/7keys.html
+http://www.stressdoc.com/war.htm
+http://www.stressfree.com/answers.html
+http://www.stretcher.com/stories/00/000214f.cfm
+http://www.stretcher.com/stories/00/000911j.cfm
+http://www.stretcher.com/stories/01/010115k.cfm
+http://www.stretcher.com/stories/03/03jun02e.cfm
+http://www.stretcher.com/stories/04/04jul12d.cfm
+http://www.stretcher.com/stories/04/04jun14t.cfm
+http://www.stretcher.com/stories/980119a.cfm
+http://www.strictlybowhunting.com/Anov01issue/2005mar-notime_HR.htm
+http://www.strike-the-root.com/
+http://www.strip-paint.com/healthandsafety.htm
+http://www.striperchaser.com/third.htm
+http://www.stripers247.com/canadastripers.htm
+http://www.strober.com/press.htm
+http://www.stroke.org.uk/media_centre/press_releases/stroke_survivor.html
+http://www.strolen.com/
+http://www.strolen.com/forums/viewtopic.php?t=1849
+http://www.strolen.com/forums/viewtopic.php?t=1849&start=0
+http://www.strolen.com/netbooks/cantrips.txt
+http://www.strom.clemson.edu/primelands/
+http://www.stronefarm.co.uk/stronefarm.shtml
+http://www.strongcity.com/books/gift/gift05.html
+http://www.strongcity.com/winds/1997/05/south_africa.html
+http://www.stronghealth.com/services/fracture/team.cfm
+http://www.stronghealth.com/services/neurology/Bio/stanton.cfm
+http://www.stronghealth.com/services/totaljoint/jointteam.cfm
+http://www.strongsville.org/content/City_Council_Minutes_May_2_2005.asp
+http://www.strose.edu/Future_Students/Academics/School_of_Arts_and_Humanities/art_ed_ug.asp
+http://www.strose.edu/Future_Students/Academics/School_of_Arts_and_Humanities/communications_ug.asp
+http://www.strose.edu/Future_Students/Academics/School_of_Arts_and_Humanities/music_ed_ug.asp
+http://www.strose.edu/Future_Students/Academics/School_of_Education/cmd_grad.asp
+http://www.strose.edu/Future_Students/Academics/School_of_Education/cmd_ug.asp
+http://www.strose.edu/Visitors/Saint_Rose_News/Default.asp?id=429
+http://www.strosechurch.net/School/handbook.htm
+http://www.strsoh.org/boardnews/Nov03.html
+http://www.stryker.com/products/
+http://www.strykernews.com/archives/2004/10/28/update_1028.html
+http://www.strykernews.com/archives/cat_michael_oreskovic.html
+http://www.stryper.com/interviews/kenneymetcaff.html
+http://www.stsc.hill.af.mil/crosstalk/1995/08/Intellig.asp
+http://www.stsc.hill.af.mil/crosstalk/1997/12/shelfware.asp
+http://www.stsc.hill.af.mil/crosstalk/1999/11/sharp.asp
+http://www.stsc.hill.af.mil/crosstalk/2000/10/westbrown.html
+http://www.stsc.hill.af.mil/crosstalk/2002/10/bowers.html
+http://www.stsc.hill.af.mil/crosstalk/2004/11/0411Hunt.html
+http://www.stsintl.com/business/articles/tensecrets.html
+http://www.ststephenspittsfield.org/child.htm
+http://www.stthom.edu/cbes/Corporate%20Governance%20Ethics%20Across%20the%20Board.html
+http://www.stthomas.org/employment/living/
+http://www.stthomasbcs.org/stthomaselc.com/teachers.shtml
+http://www.stthomasu.ca/inkshed/nlett604/horne.htm
+http://www.stthomasu.ca/~hunt/batpoet.htm
+http://www.stu.uea.ac.uk/advice/housing/pack/04-moving-in_html
+http://www.stu.uea.ac.uk/ents/entsListings/Ents.2005-01-13.4010/view
+http://www.stu.uea.ac.uk/news/recent_news
+http://www.stu.uea.ac.uk/recent_news
+http://www.stuartlawler.com/links/index.asp
+http://www.stuckintraffic.com/archive/stuck042.html
+http://www.student-affairs.buffalo.edu/student-unions/policy1.shtml
+http://www.student-direct.co.uk/
+http://www.student-support-saas.gov.uk/personal_eligibility.htm
+http://www.student.org/campusminister/think%20about%20it%20and%20act/article%202.htm
+http://www.studentaccommodation.org/links.asp?cat=Student%20Accommodation%20South%20America
+http://www.studentaccommodation.org/student_accommodation_south_america.asp
+http://www.studentaffairs.cmu.edu/theword/university/nonacademic.cfm
+http://www.studentaffairs.com/vcs/2005evaluationresults-comments.html
+http://www.studentbmj.com/back_issues/0998/data/0998s2.htm
+http://www.studentbmj.com/back_issues/1100/education/417.html
+http://www.studentbmj.com/issues/01/08/education/277.php
+http://www.studentbmj.com/issues/0105/education/13.html
+http://www.studentbmj.com/issues/02/09/careers/325.php
+http://www.studentbmj.com/issues/04/07/careers/286.php
+http://www.studentbmj.com/issues/04/11/reviews/435b.php
+http://www.studentbmj.com/issues/05/03/life/120.php
+http://www.studentbmj.com/issues/05/05/news/181a.php
+http://www.studentcenter.org/profile/myqanda.php?the_profile_name=DeadDollie&jumpto=423552
+http://www.studentcenter.org/profile/myqanda.php?the_profile_name=DeadDollie&jumpto=423557
+http://www.studentcentral.co.uk/Religious_Studies/Christianity/more7.html
+http://www.studentcentral.co.uk/governments_set_economic_objectives_-_discuss_rela_3066/
+http://www.studentcentral.co.uk/has_japan_really_benefitted_economically_as_a_resu_6167/
+http://www.studentcents.ie/pluto.htm
+http://www.studentdonor.org/learn_more/religious_views.htm
+http://www.studentgroups.ucla.edu/enigma/diplomacy/allrules/
+http://www.studentleader.com/orig_04-21-2003.htm
+http://www.studentloanconsolidator.com/
+http://www.studentloanconsolidator.com/consolidation/rightratefaq.shtml
+http://www.studentorg.umd.edu/pvrg/clothing.html
+http://www.studentpress.org/acp/trends/~govstate.html
+http://www.students.ucr.edu/catalog/current/undergradstudies.html
+http://www.studentsfirst.us/news/contentview.asp?c=139184
+http://www.studentsforchoice.com/
+http://www.studentvillage.co.za/article/articleview/2697/1/157
+http://www.studentvillage.co.za/article/articleview/2697/1/315/
+http://www.studentvillage.co.za/article/articleview/3091/1/305/
+http://www.studentz.co.nz/music/articles.asp?id=4150
+http://www.studiesabroad.com/programs/multi/mcprogram/1/mcsession/IMCF2105/viewCourses/16808
+http://www.studiesabroad.com/programs/multi/mcprogram/1/mcsession/IMCW2105/viewCourses/15130
+http://www.studiesirishreview.com/articles/2004/Costello.htm
+http://www.studio-tech.com/Data-IFBPlus.htm
+http://www.studio-tech.com/Data-M770.htm
+http://www.studio-visit.com/interview3.html
+http://www.studio1dancecenter.com/references.htm
+http://www.studio4496.com/
+http://www.studioae.com/haha/sd/chapter2.html
+http://www.studioeditions.com/young_people.html
+http://www.studiofrance.co.uk/
+http://www.studioindiana.com/LSpreface.html
+http://www.studiolo.org/Letters/letter06.htm
+http://www.studiopotter.org/pubs/?view=back_2
+http://www.studiopottery.com/pots/02487b.html
+http://www.studlife.com/news/2003/04/01/Opinion/Study.Verifies.Humpty.Dumpty.Fable-404648.shtml
+http://www.studyabroadloans.com/us-grad-students.php
+http://www.studyabroadloans.com/us-students.php
+http://www.studyglobal.net/countrynewzealand.htm
+http://www.studyglobal.net/oxford.htm
+http://www.studylets.co.uk/
+http://www.studyoverseas.com/america/usaed/commun2.htm
+http://www.studyoverseas.com/furthereducation/articles/uscommunitycolls.htm
+http://www.studyoverseas.com/it/comp4a.htm
+http://www.studyoverseas.com/re/re.htm
+http://www.studyoverseas.com/uk/uked/comp4.htm
+http://www.studyoverseas.com/uk/uked/re%20.htm
+http://www.studysa.co.za/studysa3.htm
+http://www.studyskillslink.com/chapter_sample.html
+http://www.studystack.com/java-studysta/FlashCards.jsp?studyStackId=18
+http://www.studystack.com/java-studysta/Games.jsp?studyStackId=18
+http://www.studystack.com/java-studysta/StudyTable.jsp?studyStackId=18
+http://www.studythebible.com/question/topics/newquestions.htm
+http://www.studyworld.com/basementpapers/repce/Politics/104.htm
+http://www.studyworld.com/newsite/ReportEssay/CreativeWriting/PersonalEssays%5CA_Modernization_Of_The_Theme_Of_The_Iliad-384379.htm
+http://www.studyworld.com/newsite/ReportEssay/CreativeWriting/PersonalEssays%5CMetamorphasis.htm
+http://www.studyworld.com/newsite/ReportEssay/SocialIssues/Political%5CChanges_in_Women_and_Marriage-14.htm
+http://www.studyworld.com/newsite/ReportEssay/SocialIssues/Political%5CMalcolm_X-30944.htm
+http://www.studyworld.com/newsite/ReportEssay/SocialIssues/Political%5CPolarization_in_the_Political_System-18.htm
+http://www.stuff.co.nz/stuff/0,2106,3313530a12,00.html
+http://www.stuff4beauty.com/catalog.php?maincat=Tigi%20Bed%20Head%20Body%20Care%20and%20Haircare%20
+http://www.stuffandnonsense.co.uk/archives/accessibility_and_a_society_of_control.html
+http://www.stufun.com/payment_terms.php3
+http://www.stupidlyhappy.com/archives/2002_05.html
+http://www.stupidquestionsanswered.com/answered/braille2.htm
+http://www.stuttercut.org/hungry/archives/week_2004_08_01.php
+http://www.stvincent.org/ourlocations/hospitals/randolph/default.htm
+http://www.stwing.upenn.edu/~avm/Amber.shtml
+http://www.stybelpeabody.com/bioform.htm
+http://www.stybelpeabody.com/ycarbio.htm
+http://www.style2000.com/p05.html
+http://www.stylegala.com/archive/shaun_of_the_dead.htm
+http://www.stylephyle.com/outfit_journal/8-03.html
+http://www.stylet-oil.com/
+http://www.styleweekly.com/back.asp
+http://www.stylusmagazine.com/blog/archives/2005_06.php
+http://www.stylusmagazine.com/feature.php?ID=1513
+http://www.stylusstudio.com/w3c/xlink/link-behaviors.htm
+http://www.stylusstudio.com/xmldev/200304/post20180.html
+http://www.su.edu/conservatory/scon/Courses/MUPP.IDC
+http://www.su.ualberta.ca/su/businesses_and_services/campus_food_bank
+http://www.suaa.org/SUAA/whats_happening/actionalert.html
+http://www.suaevents.com/
+http://www.sub-tv.co.uk/atvzooms.asp
+http://www.sub-tv.co.uk/bbcschools.asp
+http://www.subaru-msm.com/global/pcwrc2004/3/2.html
+http://www.subclub.org/darkroom/splitter.htm
+http://www.subgenius.com/bigfist/answers/faqs/X0006_SubG_FAQ_8_Can_I_mar.html
+http://www.subiasoft.com/article-inbound-links.html
+http://www.sublet.com/Apartment_Roommate_Rental_Details/illinois_November04.html
+http://www.submag.com/cgi-bin/subscribe/EK?tc=1&NC=Y&pid=
+http://www.submag.com/cgi-bin/subscribe/ML?tc=1&NC=Y&pid=
+http://www.submag.com/cgi-bin/subscribe/WR?tc=1&NC=Y&pid=
+http://www.submitawebsite.com/press/generalsteel.html
+http://www.submityourarticle.com/articles/easypublish.php?art_id=851
+http://www.subnet.com/fleet/ss173.htm
+http://www.subpop.com/scripts/main/catalog.php
+http://www.substancemisuse.net/problem-users/pumonthlynews/monthlynews-feb04.htm
+http://www.subtraction.com/archives/2005/0102_new_improve.php
+http://www.suburbanbliss.net/suburbanbliss/2005/06/
+http://www.suburbanchicagonews.com/beaconnews/top/a25gold.htm
+http://www.suburbanchicagonews.com/features/specialsections/vietnam/riley.htm
+http://www.suburbanchicagonews.com/opinions/columnists/mego/
+http://www.suburbanchicagonews.com/opinions/columnists/vanburen/c16abby.htm
+http://www.suburbanhospital.org/askthedoc/ask_the_doc0602.html
+http://www.sucasabb.com/
+http://www.succeedinginbusiness.com/blog/archives/000031.html
+http://www.succeedinginbusiness.com/blog/archives/000083.html
+http://www.succeedinginbusiness.com/blog/archives/000134.html
+http://www.succeedinginbusiness.com/catalog/ColdCalling.shtml
+http://www.succeedinginbusiness.com/catalog/GettingBetterResults.shtml
+http://www.succeedinginbusiness.com/catalog/eBookQuestions.shtml
+http://www.succeedtoread.com/
+http://www.successbroker.com/store/babyeinsteindvd.html
+http://www.successbroker.com/store/beaudiocds.html
+http://www.successbroker.com/store/beholidaycollection.html
+http://www.successbroker.com/store/bepuppets.html
+http://www.successclinic.com/Topics.html
+http://www.successforall.com/Resource/research/schorgrd.htm
+http://www.successfulmeetings.com/successmtgs/search/search_display.jsp?vnu_content_id=1000618659
+http://www.successfulschizophrenia.com/stories/lefave07self.html
+http://www.successlink.org/colearn/struct.asp
+http://www.successmakers.net/newsletters/smvol1.htm
+http://www.successunlimited.co.uk/bully/case40.htm
+http://www.succulent-plant.com/hoya.html
+http://www.sudanembassy.org/default.asp?page=documentsreports_khartoum
+http://www.sudantribune.com/article.php3?id_article=1796
+http://www.sudantribune.com/article.php3?id_article=6733
+http://www.sudantribune.com/article.php3?id_article=7584
+http://www.sudantribune.com/article.php3?id_article=7597
+http://www.suddenlysenior.com/91101.html
+http://www.suddenlysenior.com/canadiandrugstores.html
+http://www.suddenlysenior.com/links.shtml
+http://www.suddenlysenior.com/medicaresupplements101.html
+http://www.suddenlysenior.com/newyearresolution.html
+http://www.suddenlysenior.com/othergoodstuff.html
+http://www.sudipbose.com/archives/2004/04/
+http://www.sudval.org/archives/dsm5/0291.html
+http://www.suelaflin.pwp.blueyonder.co.uk/MPhil/MPhilChap3.html
+http://www.suelebeau.com/characterednie.htm
+http://www.suffering.net/detail.htm
+http://www.sugar-grove.il.us/
+http://www.sugar-grove.il.us/2004_0121_plan.html
+http://www.suhsd.k12.ca.us/moh/KMMIWP/acuba1.htm
+http://www.suite101.com/article.cfm/13890/107622
+http://www.suite101.com/article.cfm/lutheranism/116637
+http://www.suite101.com/article.cfm/pakistan_culture/115112
+http://www.suite101.com/article.cfm/women_following_dreams/107622
+http://www.suite101.com/course.cfm/19532/seminar
+http://www.suite101.com/discussion.cfm/17261/90596
+http://www.suite101.com/discussion.cfm/5722/38623/261482
+http://www.suite101.com/discussion.cfm/6436/42972
+http://www.suite101.com/discussion.cfm/cooking_with_grandma/112211/1043711
+http://www.suite101.com/discussion.cfm/cooking_with_grandma/52436/latest/1
+http://www.suite101.com/discussion.cfm/seasonal_cooking/93304/latest/1
+http://www.suite101.com/splash.cfm/227
+http://www.suite101.com/topic_page.cfm/16591/4399
+http://www.suite101.com/welcome.cfm/faith_and_rural_economy
+http://www.suite101.com/welcome.cfm/investing
+http://www.suk.fh-wiesbaden.de/~mettler/index-e.html
+http://www.sukipot.com/reflections/janeeyre.html
+http://www.sulekha.com/about.html
+http://www.sulekha.com/chpost.asp?forum=creative&cid=78480&show=0
+http://www.sulekha.com/expressions/column.asp?cid=305907
+http://www.sullivan-county.com/id3/debate.htm
+http://www.sullivan-county.com/nf0/ep/la_times.htm
+http://www.sullivan-county.com/x/er.htm
+http://www.sullivanandwolf.com/faq.htm
+http://www.sullivannyc.com/
+http://www.sumatranorangutan.com/site_mawas/UK/PROJECT/pag/project_add_activities.htm
+http://www.sumeria.net/health/Cartel.html
+http://www.sumeria.net/politics/drugwar2.html
+http://www.sumeria.net/politics/maresca.html
+http://www.sumico.net/
+http://www.summer.harvard.edu/2005/help/directions.jsp
+http://www.summerjoy.com/MichaelCH.html
+http://www.summerlearning.org/resources/ebulletins/feb2005.html
+http://www.summermatters.com/talking.htm
+http://www.summerstays.org/go_abroad/questions.htm
+http://www.summerwood.com/tips_ideas_cabanas.jsp
+http://www.summitchurch.org/
+http://www.summitclimb.com/everest_trek_tibet.htm
+http://www.summitcollaborative.com/dot_org_issue3.html
+http://www.summitconsulting.com/balancingact/balancingact_october02.html
+http://www.summitdynamics.net/catalog/personalkeys.html
+http://www.sumptionandwyland.com/documents/Estate_Tax_Repeal_and_Charitable_Giving.htm
+http://www.sun-associates.com/cos/resources/webresources/search.html
+http://www.sun-sentinel.com/business/columnists/sfl-ybask20jun20,0,5145519.column?coll=sfla-business-col
+http://www.sun-sentinel.com/business/nationworld/ats-ap_business11jul01,0,6194163.story?coll=sns-business-headlines
+http://www.sun-sentinel.com/business/sns-yourmoney-0829gettingstarted,0,6785177.story?coll=sfla-business2
+http://www.sun-sentinel.com/features/booksmags/sfl-bkbombshellsjun05,0,3501544.story?coll=sfla-features-books
+http://www.sun-sentinel.com/news/columnists/sfl-abauza26jun26,0,6675749.column?coll=sfla-news-col
+http://www.sun-sentinel.com/news/local/cuba/sfl-abauza26jun26,0,2774550.column?coll=sfla-news-cuba
+http://www.sun-sentinel.com/news/weather/hurricane/sfl-hc-prep-documents,0,1056000.story?coll=sfla-hurricane-utility
+http://www.sun-sentinel.com/sports/baseball/marlins/sfl-burnett28jun28,0,4110768.story?coll=sfla-sports-marlins
+http://www.sun-sentinel.com/sports/sfl-burnett28jun28,0,3284950.story?coll=sfla-sports-front
+http://www.sun.com/aboutsun/media/features/mars.html
+http://www.sun.com/access/background/laws.html
+http://www.sun.com/br/0804_ezine/ret_sec.html
+http://www.sun.com/cddl/CDDL_why_details.html
+http://www.sun.com/products-n-solutions/edu/edusoft/institution/
+http://www.sun.com/smi/Press/sunflash/2004-07/sunflash.20040726.1.html
+http://www.sun.com/smi/Press/sunflash/2004-08/sunflash.20040816.2.html
+http://www.sun.com/smi/Press/sunflash/2005-06/sunflash.20050606.5.html
+http://www.sun.com/software/products/jscreator/faqs.xml
+http://www.sun.com/solutions/documents/articles/go_rfid_dod.xml
+http://www.sun.com/solutions/documents/articles/mf_train_aa.xml
+http://www.sun.com/solutions/documents/solution-sheets/EN_grid-oil+gas-ds_FF.xml
+http://www.sunburstech.com/k-9/wolfgang.htm
+http://www.sundaycolors.com/category/housewarminggifts/
+http://www.sundayherald.com/25393
+http://www.sundayherald.com/31826
+http://www.sundayherald.com/43156
+http://www.sundayherald.com/43485
+http://www.sundayherald.com/44321
+http://www.sundayherald.com/44386
+http://www.sundayherald.com/45700
+http://www.sundayherald.com/47117
+http://www.sundayherald.com/8759
+http://www.sundayherald.com/np/34851
+http://www.sundayherald.com/print15468
+http://www.sundayherald.com/print50305
+http://www.sundayindependent.co.za/index.php?fArticleId=2400006
+http://www.sundayindependent.co.za/index.php?fSectionId=1041&fArticleId=2400006
+http://www.sundaymail.co.uk/jobsplus/tm_objectid=15619502&method=full&siteid=86024&headline=dram-fine-way-to-earn-a-living-name_page.html
+http://www.sundaymirror.co.uk/radar/
+http://www.sundayobserver.lk/2004/02/08/fea02.html
+http://www.sundayriver.com/releases.html?id=1530
+http://www.sundaytelegraph.news.com.au/story/0,9353,12020844-28780,00.html
+http://www.sundaytimes.news.com.au/common/story_page/0,7034,12074892%255E401,00.html
+http://www.sundaytimes.news.com.au/common/story_page/0,7034,12141300%255E401,00.html
+http://www.sundaytimes.news.com.au/common/story_page/0,7034,12348219%255E1702,00.html
+http://www.sundaytribune.co.za/index.php?fArticleId=2399762&fSectionId=165&fSetId=
+http://www.sundaytribune.co.za/index.php?fSectionId=&fArticleId=2399762
+http://www.sunderland.ac.uk/~es0mda/jms.htm
+http://www.sunderlandschools.org/sandhillview/The%20Curriculum.htm
+http://www.sunderlandtoday.co.uk/ViewArticle2.aspx?SectionID=1512&ArticleID=938246
+http://www.sundials.co.uk/~oxon.htm
+http://www.sundive.co.uk/sherlockholmes/dogged7.htm
+http://www.sundive.co.uk/singles/ramblings.htm
+http://www.sundram.com/investors.htm
+http://www.suneido.com/forum/topic.asp?TOPIC_ID=330&FORUM_ID=1&CAT_ID=1&Topic_Title
+http://www.sunion.warwick.ac.uk/portal/training/Default.asp?url=TAC
+http://www.sunion.warwick.ac.uk/portal/union/Default.asp?url=TAC
+http://www.sunless.com/review/Target_Suncatcher_Sunless_Tanning_Cr%C3%A8me_Deep_Dark/200/
+http://www.sunnexbiotech.com/therapist/blue%20light%20damage.html
+http://www.sunnipath.com/resources/Questions/qa00000381.aspx
+http://www.sunnydale-slayers.com/episodes/ehellmouth.html
+http://www.sunnyfield.co.uk/dayspast/pcbook.htm
+http://www.sunpig.com/reviews/quick/archives/001566.html
+http://www.sunprotectingfactory.com/sunShield/shield_man.html
+http://www.sunprotectingfactory.com/sunShield/shield_manfr.html
+http://www.sunrisetelecom.com/lansoftware/faq_runtime.shtml
+http://www.sunseekerhomes.com/aboutus.php
+http://www.sunsetbeach.co.za/beach_hotel_kitchen.htm
+http://www.sunshine-project.org/biodefense/lemonletter.html
+http://www.sunshinediving.com/
+http://www.sunshinediving.com/main_pages/client_comments.htm
+http://www.sunsite.ualberta.ca/Documentation/Gnu/make-3.79/html_chapter/make_17.html
+http://www.sunsonline.org/trade/process/followup/1996/04170096.htm
+http://www.sunsonline.org/trade/process/followup/1996/07170196.htm
+http://www.sunspot.noao.edu/sunspot/pr/answerbook/moon.html
+http://www.sunspot.noao.edu/sunspot/pr/tree/universe.html
+http://www.sunstar.com.ph/static/gen/2005/01/24/bus/mine.firm.to.pour.in.$600m.fresh.capital.html
+http://www.sunstoneonline.com/magazine/searchable/Issue23.asp
+http://www.suntimes.co.za/2001/12/30/insight/in03.asp
+http://www.suntimes.co.za/2004/02/08/lifestyle/life05.asp
+http://www.suntimes.co.za/explorer/today.asp
+http://www.suntimes.co.za/specialreports/baghdad/tuesday11.asp
+http://www.suntimes.com/output/business/econ23.html
+http://www.suntimes.com/output/elect/cst-nws-bolton12.html
+http://www.suntimes.com/output/jesse/cst-edt-jesse10.html
+http://www.suntimes.com/output/news/cst-nws-flu31.html
+http://www.suntimes.com/output/savage/cst-fin-terry283.html
+http://www.suntimes.com/output/steinberg/cst-nws-stein27.html
+http://www.suntimes.com/savage/greatest_hits/spending.html
+http://www.suntimes.com/special_sections/crime/cst-nws-gangbcop08.html
+http://www.suntimes.com/special_sections/failing_teacher/followup/cst-nws-fail24.html
+http://www.suntimes.com/special_sections/failing_teacher/part1/cst-nws-main06.html
+http://www.sunweb.com.hk/pahk/history.htm
+http://www.sunyjcc.edu/jamestown/computing/comp-policy.html
+http://www.sunysb.edu/Reinventioncenter/Conference_04/Garrell/Physical_Sciences_Mathematics.htm
+http://www.sunysb.edu/Reinventioncenter/Conference_04/Taking_it_to_the_Street/Taking_it_to_the_streets.htm
+http://www.sunysb.edu/philosophy/faculty/pgrim/fuzzy.htm
+http://www.sunysb.edu/research/monmemo/archives/monmem020812.html
+http://www.sunysccc.edu/academic/hss/faculty.html
+http://www.suodenjoki.dk/us/productions/articles/photo_gallery.htm
+http://www.supafamous.com/archives/2002/12/000605.shtml
+http://www.superbowl.com/news/story/8173158
+http://www.supercheats.com/xbox/yagercheats.htm
+http://www.superclown.org/DNBF.htm
+http://www.supercrawler.com/Regional/Europe/United_Kingdom/Recreation_and_Sports/Home_and_Garden/Gardening/
+http://www.superfreshfood.com/consumer_updates.asp?action=archive
+http://www.superfuture.com/city/supertalk/index.cfm?page=userinfo&viewuserid=581
+http://www.superiorcoffeeshop.com/disclaimer.asp
+http://www.superiorpics.com/christina_aguilera/lyrics.html
+http://www.superkids.com/
+http://www.superkits.net/CoxOCullBarnettTOC-Summary.htm
+http://www.supermemo.com/articles/20rules.htm
+http://www.superperformance.com/timemgt.html
+http://www.supersa.sa.gov.au/html/supernews.html
+http://www.superseeds.com/general_supplies.htm
+http://www.superseeds.com/home.htm
+http://www.supersizeme.com/home.aspx?page=aboutmovie
+http://www.superslow.com/AM/AlligatorMachines.htm
+http://www.supertopo.com/climbingareas/southlaketahoe.html
+http://www.superwaba.com.br/en/inscricao.asp
+http://www.superwarehouse.com/Princeton_Graphics_lcd_monitors/b/213/c/1876
+http://www.supplychainseminars.com/
+http://www.supplyht.com/CDA/ArticleInformation/features/BNP__Features__Item/0,5333,137225,00.html
+http://www.support4learning.org.uk/careers/careers_calendar_college_HE.htm
+http://www.support4learning.org.uk/education/lstyles.htm
+http://www.support4learning.org.uk/money/loans.htm
+http://www.supremecourtus.gov/publicinfo/speeches/sp_04-04-03.html
+http://www.supremelearning.com/seminarexcerpts.html
+http://www.sure-quality.com/
+http://www.surfaceonline.org/americanfiction2.html
+http://www.surfaceonline.org/essayamerica6.htm
+http://www.surfaceonline.org/natureessay.htm
+http://www.surfacetransportationisac.org/news/CyberTerror.asp
+http://www.surfbirds.com/trip_report.php?id=552
+http://www.surfchem.kth.se/yki/web/research/mcs.html
+http://www.surfermag.com/features/oneworld/desalination/
+http://www.surfermag.com/features/pollpr/
+http://www.surferspath.com/47/
+http://www.surferspath.com/48/
+http://www.surfingvancouverisland.com/surf/tutorial.htm
+http://www.surfline.com/surfology/surfology_forecast_index.cfm
+http://www.surfmind.com/web/searchresult.cfm?criteria=(CF_CUSTOM1%20%3CCONTAINS%3E%20HCI)%20and%20interface%20and%20customization
+http://www.surfrider.org/stateofthebeach/01-bi/body.asp?sub=ba
+http://www.surfshop.net.ph/pba2/talkntext/profile.asp
+http://www.surftheisles.com/art.htm
+http://www.surgent.com/coursdsc/NTAB.htm
+http://www.surgeongeneral.gov/library/bonehealth/part_four.html
+http://www.surgeongeneral.gov/library/mentalhealth/chapter2/sec6.html
+http://www.surgeongeneral.gov/library/youthviolence/chapter3/sec1.html
+http://www.surgeongeneral.gov/news/speeches/alcohol_02122004.htm
+http://www.surgeons.org/about/publications/pol_rpm02_12.html
+http://www.surgical-tutor.org.uk/core/preop2/blood.htm
+http://www.surlalunefairytales.com/facetiousnights/night7_fable2.html
+http://www.surlybikes.com/spew2.html
+http://www.surplusmachinery.com/simgolf/Course_Lessons.htm
+http://www.surrenderedwife.com/surrendered_wife_books_surrendered_wife.html
+http://www.surrey.ac.uk/Dance/faq.html
+http://www.surreycc.gov.uk/sccwebsite/sccwspages.nsf/LookupWebPagesByTITLE_RTF/Stables+and+buildings+advice?opendocument
+http://www.surreycc.gov.uk/sccwebsite/sccwspages.nsf/LookupWebPagesByTITLE_TXT/Average+house+prices?opendocument
+http://www.surreycc.gov.uk/sccwebsite/sccwspages.nsf/LookupWebPagesByTITLE_TXT/Voluntary+organisations+for+children+with+medical+conditions+(A-H)?opendocument
+http://www.surreyheath.gov.uk/surreyheath/planning.nsf/webPages/Object.html
+http://www.surreyleague.co.uk/serrl/rules.htm
+http://www.surreypolice.org.uk/borough_nso.asp?nsoid=2617
+http://www.surveymonkey.com/DisplayDetail.asp?SID=608303&Pos=24&U=60830345901
+http://www.surveymonkey.com/Testimonials.asp
+http://www.surveytracker.com/htm/software/plusmail.htm
+http://www.survival-center.com/guide/bugout.htm
+http://www.survival-center.com/nuclear/nwss/s60p780.htm
+http://www.survival-center.com/shopsite_sc/store/html/rain.html
+http://www.survival.com/bookch1a.htm
+http://www.survivalafterdeath.org/articles/keen/scole.htm
+http://www.survivalafterdeath.org/books/barrett/dbv/chapter6.htm
+http://www.survivalafterdeath.org/books/lodge/raymond/7.htm
+http://www.survivalafterdeath.org/experiments/automatic/identity.htm
+http://www.survive-divorce.com/dons_story.htm
+http://www.survivorsswindon.com/effects.htm
+http://www.survivorstvseries.com/Tom.htm
+http://www.susanblackmore.co.uk/Articles/cf95.html
+http://www.susangregg.com/private_sessions.htm
+http://www.susanhartlindquist.com/blade.htm
+http://www.susanhartlindquist.com/physicsr.htm
+http://www.susannacarr.com/books/101/sixweeks.htm
+http://www.susanstevenscrummel.com/teachertipsdish.htm
+http://www.susla.edu/studentactivities/calendar.html
+http://www.suslik.org/Humour/Computer/Microsoft/gates.html
+http://www.susmangodfrey.com/HandleCases.html
+http://www.suspectthoughts.com/underground1.htm
+http://www.suspense-movies.com/articles/war/
+http://www.suspro.org/Food-project/sustainable-living-overview.htm
+http://www.susps.org/
+http://www.susqu.edu/webcentral/javascript/js10.cfm
+http://www.sussex.ac.uk/International/sussex/return.shtml
+http://www.sussex.ac.uk/USIS/news/rss/?refer=4815
+http://www.sussex.ac.uk/USIS/news/rss/?refer=4838
+http://www.sussex.ac.uk/USIS/news/rss/?refer=4847
+http://www.sussex.ac.uk/Units/alumni/notable_alumni/peterhain.html
+http://www.sussex.ac.uk/Units/cgjs/macourse.html
+http://www.sussex.ac.uk/Units/publications/sabroad2005/europeanstudies.html
+http://www.sussex.ac.uk/Units/publications/ugrad2005/english_details.html
+http://www.sussex.ac.uk/Units/publications/ugrad2005/europeanlanguages_details.html
+http://www.sussex.ac.uk/Units/publications/ugrad2005/filmstudies_details.html
+http://www.sussex.ac.uk/Units/publications/ugrad2005/sociology_details.html
+http://www.sussex.ac.uk/cdec/language_schools.php
+http://www.sussex.ac.uk/history/1-2-4-7.html
+http://www.sussex.ac.uk/langc/skills/argument.html
+http://www.sussex.ac.uk/records/1-2-8-9.html
+http://www.sussex.ac.uk/sei/1-4-9-2.html
+http://www.sussex.ac.uk/sociology/1-2-3-4.html
+http://www.sussexarts.co.uk/listings.asp?pid=listings
+http://www.sussexcarz.com/MainPages/Membership.htm
+http://www.sussexcricket.co.uk/season/professionals/r_montgomerie/
+http://www.susta.org/export/packingetc.html
+http://www.sustain-online.org/plugins/DocSearch/details.asp?MenuId=1&ClickMenu=&doOpen=1&type=DocDet&ObjectId=MTUzNTA
+http://www.sustainability.com/insight/issue-brief.asp?id=67
+http://www.sustainable-design.ie/fire/appendixd.htm
+http://www.sustainable-development.gov.uk/taking-it-on/finalsummary/02.htm
+http://www.sustainable-euroregions.net/wales.php
+http://www.sustainable.ie/resources/community/art04.htm
+http://www.sustainable.ie/resources/community/art05.htm
+http://www.sustainable.wellington.net.nz/Campaigns/Chaffers_Park/
+http://www.sustainabletable.org/issues/biodiversity/
+http://www.sustainweb.org/chain_proc_detail.asp?id=12
+http://www.sustland.umn.edu/implement/amending_soils.html
+http://www.sustland.umn.edu/maint/evergreen.html
+http://www.sutti.com/2b.htm
+http://www.sutton.gov.uk/Sutton/Relaxing+and+Leisure/Heritage/Village+Hall+Beddington.htm
+http://www.suv.com.au/html/student_living/rules.htm
+http://www.suzannegold.com/chapterone.html
+http://www.svama.org/events/020905.asp
+http://www.svase.org/site/News/20021003
+http://www.svce.ac.in/~esgopi/eshare.html
+http://www.svcn.com/archives/lgwt/12.27.00/hillbrook-0052.html
+http://www.svcn.com/archives/saratoganews/05.03.00/choir-0018.html
+http://www.svconline.com/mag/avinstall_equip_yourself/
+http://www.sveiby.com/articles/Knowledgetheoryoffirm.htm
+http://www.sveiby.com/articles/Polanyi.html
+http://www.svendtofte.com/code/opera_open_the_web/
+http://www.svengrahn.pp.se/trackind/jodrell/jodrole1.htm
+http://www.svgames.com/rpg-mysteyegm.html
+http://www.svgopen.org/2002/papers/cecconi_galanda__adaptive_zooming/
+http://www.svgopen.org/2003/papers/GivingAnotherLook/
+http://www.svn.org/Initiatives/spring-2003/spring2003_agenda.htm
+http://www.svrc.vic.edu.au/VCE.html
+http://www.svrecords.com/articles/art-0004.html
+http://www.svshs.wa.edu.au/library/pages/VirtLib/curric/society.htm
+http://www.svt.ntnu.no/adm/eng/stud/fagbeskrivelser/samfunnsokonomi/masterfinec.htm
+http://www.svt.ntnu.no/adm/eng/stud/fagbeskrivelser/samfunnsokonomi/masterfinec.htm?skr=ja
+http://www.sw.com.sg/en/products/plesk6/new/
+http://www.swac.org/03-04/football/0304index.htm
+http://www.swac.org/03-04/football/fballindex.htm
+http://www.swami-center.org/en/text/Life.html
+http://www.swami-krishnananda.org/self/self_4.html
+http://www.swaminarayan.org/festivals/yogijayanti/
+http://www.swan.ac.uk/statistics/das/direct4.htm
+http://www.swan4h.org/under_one_sky_purpose.htm
+http://www.swanlabs.com/news/press/releases/03_08_05.aspx
+http://www.swanngroup.com.au/4674,01,1-0-Defence%20and%20Aerospace.html
+http://www.swans.com/library/art11/gsmith39.html
+http://www.swansea-gower.co.uk/broughtonbay.htm
+http://www.swansea-gower.co.uk/climate.htm
+http://www.swansea-gower.co.uk/cycling.htm
+http://www.swansea-gower.co.uk/swanseapolicestation.htm
+http://www.swansea.gov.uk/index.cfm?articleid=5686
+http://www.swap.ac.uk/about/miniproject7.asp
+http://www.swap.ac.uk/about/miniproject7.asp?version=text
+http://www.swap.ac.uk/about/miniproject7.asp?version=textprint
+http://www.swaphandmedowns.com/generic56.html
+http://www.swaraj.org/shikshantar/timrebeccastory.html
+http://www.swarb.co.uk/lawb/cpuTerrorAct2000.shtml
+http://www.swarthmore.edu/Admin/ofs/departure/health_safety.html
+http://www.swarthmore.edu/Admin/prelaw/guide_for_applying_to_law.html
+http://www.swarthmore.edu/SocSci/tburke1/
+http://www.swarthmore.edu/SocSci/tburke1/perma30305.html
+http://www.swarthmore.edu/alumni/reunion/1955/
+http://www.swarthmore.edu/socsci/tburke1/artsoc.html
+http://www.swatweb.net/using_swat.html
+http://www.swbike.com/articles/8466%20Miles/Week%20Five/
+http://www.swc-cfc.gc.ca/pubs/066261951X/199508_066261951X_10_e.html
+http://www.swc.utexas.edu/highschool/hsgoalsaims.shtml
+http://www.swcivilwar.com/cw_causes.html
+http://www.swcivilwar.com/sherman.html
+http://www.swco.ttu.edu/Manuscripts/uRanch22.asp?description=b
+http://www.swcollege.com/vircomm/gita/gita_int/completed_contract_method.html
+http://www.swcoloradohome.com/articles/gardening/greenthumb23.asp
+http://www.swdentalconf.org/conf2005/program-thursday.htm
+http://www.swe.org/SWE/StudentServices/SAC/2003%20SME%20BOWL_RulesGuidelines.htm
+http://www.sweatshopwatch.org/swatch/marianas/lawsuit.html
+http://www.sweatshopwatch.org/swatch/marianas/links.html
+http://www.swedauk.org/disorders/disorders.htm
+http://www.swedauk.org/siteinfo/disclaimer.htm
+http://www.sweden.gov.se/sb/d/2907/a/16638
+http://www.sweden.gov.se/sb/d/2907/nocache/true/a/16638/dictionary/true
+http://www.sweden.gov.se/sb/d/5189/a/45079
+http://www.sweden.gov.se/sb/d/5189/a/45079/m/wai
+http://www.swedenborg.ca/swedenborg_worldwide/united_states_2.htm
+http://www.swedetrack.com/e46struc.htm
+http://www.swedish.org/13732.cfm
+http://www.swedish.org/16181.cfm
+http://www.swedish.org/16599.cfm
+http://www.swedish.org/18974.cfm
+http://www.swedishbookreview.com/article-2004-2-potts.asp
+http://www.swedishenglishtranslation.com/blankand.htm
+http://www.sweepsadvantage.com/browsenew.php?pg_which=12&cat=3&sort_by=bid&sort_order=DESC&curpage=&only_fav=
+http://www.sweet-itch.com/boett.html
+http://www.sweetblueonion.com/musicreviews.html
+http://www.sweetecstacy.com/tutorial/birthcontrol1.htm
+http://www.sweetliberty.org/cos5.htm
+http://www.sweetliberty.org/cos8.htm
+http://www.sweetliberty.org/issues/hoax/unt.htm
+http://www.sweetliberty.org/issues/staterights/devious.htm
+http://www.sweetmarias.com/Brazil2004/Page5.html
+http://www.sweetpeachesbedding.com/baby-nursery-decor.htm
+http://www.sweetpeachesbedding.com/children's-wall-art.htm
+http://www.sweetpeachesbedding.com/teen-girl-bedding.htm
+http://www.swepa.com/public/984.cfm
+http://www.swig.org/papers/Py97/beazley.html
+http://www.swiminfo.com/
+http://www.swin.edu.au/stuserv/housing/home.html
+http://www.swinefile.com/Fat.htm
+http://www.swingingheaven.co.uk/stories/story-1299.html
+http://www.swingline.com/support/tips.aspx?t=1
+http://www.swingstateproject.com/2005/04/index.php
+http://www.swingstateproject.com/international/
+http://www.swingthis.net/LF3/
+http://www.swinney.org/journals/article.phtml?id=3536
+http://www.swintech.com/what_to_do_in_an_armed_hold_up.htm
+http://www.swiss.com/web/trip-planner/id-tp-ba-dangerous-goods.htm
+http://www.swissre.com/INTERNET/pwswpspr.nsf/alldocbyidkeylu/MBAR-4UULCJ?OpenDocument
+http://www.switchboard.com/Florists/York/PA/20/Yellowpages_Results.html
+http://www.switchboard.com/Sporting_Goods/Green%20Cove%20Springs/FL/39/Yellowpages_Results.html
+http://www.switchboard.com/Sporting_Goods/Green%20Valley/AZ/39/Yellowpages_Results.html
+http://www.swlearning.com/economics/econ_news/econ_news_monopoly.html
+http://www.swlg.org.uk/LRBr1.htm
+http://www.swlg.org.uk/WLN59b.htm
+http://www.swlocalization.com/humbugs.htm
+http://www.swnyc.com/users/mepa/fanfiction/song_parodies.html
+http://www.swopnet.com/engr/Septic_Tanks/Gayman_Soil_Failure.html
+http://www.swordfight.org/000280.html
+http://www.swp-berlin.org/common/get_document.php?id=1059
+http://www.swp.ie/resources/The%20permanent%20arms%20economy_files/permarms.htm
+http://www.swrb.com/Puritan/1-2000.htm
+http://www.swri.edu/3pubs/ttoday/fall01/navigate.htm
+http://www.swri.edu/3pubs/ttoday/spring02/technics.htm
+http://www.sws.org.ph/pr042004.htm
+http://www.sws.uiuc.edu/hilites/confinfo/energy/abs/DRUCKER.htm
+http://www.sws.uiuc.edu/wss/lakes.asp
+http://www.swsahs.nsw.gov.au/cancer/chemo.asp
+http://www.swtimes.com/archive/2005/January/16/opinion/16_letters.html
+http://www.swtourism.co.uk/html/national_quality_assurance_schemes_nqas1.asp
+http://www.swydm.com/blog.php?u=kingpin2003&aw=4&am=12&ay=04
+http://www.sxe.com/forums/archive/index.php/t-1117.html
+http://www.syasoccer.org/
+http://www.sybase.com/detail/printthis/1,6907,1002275,00.html
+http://www.sybase.com/detail?id=1018387
+http://www.sybase.com/detail?id=1029960
+http://www.sybase.com/detail?id=1033800
+http://www.sybase.com/detail?id=1034858
+http://www.sybervision.com/marriage/
+http://www.syd.kth.se/forskning_eng/dash/default.asp
+http://www.sydneycichlid.com/old_scp/apisto1.html
+http://www.sydneygrammar.nsw.edu.au/CollegeSt/Archives/newsletter02-10-23.html
+http://www.sydneygrammar.nsw.edu.au/CollegeSt/Archives/newsletter03-10-29.html
+http://www.sydneyscloset.com/happycustomers.html
+http://www.syha.org.uk/syha/web/site/JoinUs/Discounts/discountslocal.asp?MenuLinkID=90&MenuID=4
+http://www.syha.org.uk/syha/web/site/JoinUs/Discounts/txt_discountslocal.asp?MenuLinkID=90&MenuID=4
+http://www.sykeyskills.co.uk/faqsonks.shtml
+http://www.sylvandale.com/inch.html
+http://www.sylvantech.com/~talin/determinism.html
+http://www.sylviaengdahl.com/space/myth01.htm
+http://www.sylviaplath.de/plath/perloff.html
+http://www.symantec.com/press/2004/n041216.html
+http://www.symbiosis-travel.com/adventure/cambodia/mithsamlanh.htm
+http://www.symbol.com/solutions/manufacturing/manufacturing_case_studies_lib.html
+http://www.symbols.com/encyclopedia/49/4913.html
+http://www.synapsis.co.nz/herald/Herald_2004/BizHerald_Greens_04Jun15.htm
+http://www.synaptic.bc.ca/Contact/viewtopic.php?p=1075
+http://www.synaptic.bc.ca/ejournal/lifegets.htm
+http://www.syncardia.com/patients3.php
+http://www.syndicatebank.com/asp/0100text.asp?pageID=83
+http://www.syndistar.com/media/posters/character
+http://www.synergycreations.com/tech/art003.html
+http://www.syngentafoundation.com/genetic_engineering_biotechnology.htm
+http://www.synopsys.com/partners/systemverilog/systemverilog_quotes.html
+http://www.synthetic-motor-oil-change-and-filters.com/amsoil_articles/the-brain-washing-of-consumers/
+http://www.synthetic-motor-oil-change-and-filters.com/amsoil_testimonies/satisfied_customers_trucks/amsoil-diesel-oil-going-409000-miles-without-oil-change.php
+http://www.synthstuff.com/mt/
+http://www.syntonyquest.org/thePath/Vol1No1Apr01.html
+http://www.syracusecentral.com/business_resources/financial_incentives.htm
+http://www.syriatourism.org/Destinations/ugarit.htm
+http://www.sysmex.co.uk/library/sysmexreviews.htm
+http://www.sysmod.com/eurofaq.htm
+http://www.sysopt.com/articles/DDR2/
+http://www.sysopt.com/reviews/opusmt200/
+http://www.systat.com/products/AutoSignal/?sec=1037
+http://www.systemreferencedocuments.org/35/sovelior_sage/spellsC.html
+http://www.systemreferencedocuments.org/35/sovelior_sage/spellsHtoL.html
+http://www.systems-thinking.org/mom/
+http://www.systemssalessupport.com/cases.html
+http://www.systemweave.com/beaufortpoloclub/events.php
+http://www.syunikedu.am/eng/gum.htm
+http://www.t-f-i.com/
+http://www.t-m.org.uk/research.shtml
+http://www.t-online.net/c/28/91/83/2891836.html
+http://www.t-shirtking.com/
+http://www.tabaret.ca/article_e_234.html
+http://www.tablesoccer.com/ts_html/foos-tip.htm
+http://www.tabletnewspaper.com/old%20tablet/vol1iss3/gongyaru.htm
+http://www.tabula-rasa.info/StephenKing/SalemsLot.html
+http://www.tabulas.com/~bibay/287528.html
+http://www.tabunka.org/special/complaint-box.html
+http://www.tacitus.org/comments/2004/5/2/11573/30027/17
+http://www.tackleafrica.org/Tour%20Route.htm
+http://www.tackleit.biz/customrods.html
+http://www.tackletime.net/reports.html
+http://www.tacoma.washington.edu/research/services/events.cfm
+http://www.tacomapjh.org/minutes020803.htm
+http://www.tacticaltech.org/africasource
+http://www.tacticsone.com/arts.html
+http://www.tacticsone.com/shopping.html
+http://www.tactileint.com/seasia/singapore/
+http://www.taddlecreekmag.com/the_code.shtml
+http://www.taekwondobible.com/tkdbible/maintext/tkdphe12.htm
+http://www.taemag.com/issues/articleID.18401/article_detail.asp
+http://www.taemag.com/issues/articleid.18075/article_detail.asp
+http://www.taemag.com/issues/articleid.18081/article_detail.asp
+http://www.taemag.com/issues/articleid.18348/article_detail.asp
+http://www.taemag.com/issues/articleid.18401/article_detail.asp
+http://www.taf.org/
+http://www.taforum.org/
+http://www.taforum.org/index.pl
+http://www.taft.cc.ca.us/lrc/class/assignments/actlisten.html
+http://www.tagasafaris.co.za/lion-sands-game-lodge.htm
+http://www.tagg.org/others/nestiev81.html
+http://www.tagliners.org/archive/001166.html
+http://www.tagnet.org/llt/jim_arrabito.shtml
+http://www.tagorda.com/archives/003510.php
+http://www.tahc.state.tx.us/animal_health/diseases/fmd/fmd_faq.shtml
+http://www.tahoecountry.com/oldtimetahoe/tallac.html
+http://www.tai-gear.com/skills.htm
+http://www.taibros.net/archives/2004/06/18/the-free-falling-ant/
+http://www.taijiworld.com/Articles/FirstYang.htm
+http://www.taijiworld.com/Articles/baguazhang_hidden.htm
+http://www.taijiworld.com/Articles/subtle.htm
+http://www.taijiworld.com/WTBA/grading.htm
+http://www.tailhook.org/ChairFa02.htm
+http://www.taima.org/en/ya991003.htm
+http://www.taino-tribe.org/page3.html
+http://www.taiohi.co.nz/index.php/pi_pageid/5114
+http://www.taipei.org/teco/cicc/currents/3-498/3-498.htm
+http://www.taipeitimes.com/News/edit/archives/2005/03/29/2003248247
+http://www.taipeitimes.com/News/edit/archives/2005/05/21/2003256038
+http://www.taipeitimes.com/News/front/archives/2005/02/17/2003223351
+http://www.taipeitimes.com/News/sport/archives/2005/01/13/2003219277
+http://www.taipeitimes.com/News/sport/archives/2005/04/15/2003250634
+http://www.taipeitimes.com/News/supplement/archives/2004/06/15/2003175206
+http://www.taipeitimes.com/News/taiwan/archives/2003/10/11/2003071252
+http://www.taipeitimes.com/News/taiwan/archives/2004/09/22/2003203860
+http://www.taipeitimes.com/News/world/archives/2004/10/07/2003205889
+http://www.taipeitimes.com/News/world/archives/2005/03/23/2003247430
+http://www.taipeitimes.com/News/world/archives/2005/06/26/2003260821
+http://www.taipeitimes.com/News/world?pubdate=2005-05-08
+http://www.taipeitimes.com/news/2002/03/26/story/0000129274
+http://www.taiwandc.org/history.htm
+http://www.tajhotels.com/Luxury/TAJ%20%20PALACE%20HOTEL,NEW%20DELHI/rooms.asp
+http://www.tajik-gateway.org/index.phtml?lang=en&id=512
+http://www.takafulweb.com/easy_steps.html
+http://www.takeabreak.com.au/servicemattersmost.htm
+http://www.takeittothepeople.org/newsletter_1999.htm
+http://www.takeninhand.com/node/36
+http://www.takeourword.com/Issue051.html
+http://www.takeourword.com/Issue097.html
+http://www.takeourword.com/TOW184/page4.html
+http://www.takeovers.gov.au/display.asp?ContentID=125
+http://www.takeovers.gov.au/display.asp?ContentID=789
+http://www.takeovers.govt.nz/exemptions/en-beauty-direct.htm
+http://www.takesat.com/display.php?testid=E001
+http://www.takethepursuit.com/learning/weekly/weekly04.html
+http://www.takingfive.com/Spending_political_capital.htm
+http://www.takingitglobal.org/opps/event.html?eventid=5628
+http://www.takingitglobal.org/themes/hr/
+http://www.takingthelead.co.uk/3/BehAdv/walking_on_the_lead.htm
+http://www.takver.com/history/elections/election2001.htm
+http://www.takver.com/history/hunterlabour.htm
+http://www.takver.com/history/secsoc02.htm
+http://www.talaris.org/spotlight_empathy.htm
+http://www.taldon.org/DNov03.html
+http://www.talent2.com.au/TALENT2CORPORATE/Home/Content.aspx?PageID=NominationCommitteeCharter
+http://www.talent2.com.au/TALENT2CORPORATE/Home/Content.aspx?PageID=RemunerationCommitteeCharter
+http://www.talentbox.com/articles/acting/cb/realityoftheindustry/index2.htm
+http://www.talentmatch.com/deejaymodel
+http://www.talesofeloise.com/keenan.html
+http://www.talesoftheslayer.com/warandpeace72.htm
+http://www.talewins.com/hoots.htm
+http://www.talkaboutcomics.com/phpBB2/posting.php?mode=quote&p=48288
+http://www.talkaboutculture.com/group/soc.culture.berber/messages/25312.html
+http://www.talkaboutgovernment.com/group/alt.politics.socialism/messages/130244.html
+http://www.talkaboutmac.com/group/comp.infosystems.www.browsers.mac/messages/32968.html
+http://www.talkaboutsleep.com/sleepdisorders/Snoring_apnea_overnight.htm
+http://www.talkaboutsupport.com/group/alt.support.jaw-disorders/messages/9896.html
+http://www.talkabouttheworld.com/kidsqa.php3
+http://www.talkgold.com/forum/index.php?showtopic=20092
+http://www.talkgold.com/forum/index.php?showtopic=20092&st=0
+http://www.talkingafrica.org/
+http://www.talkinganimals.net/archives_synopses2.html
+http://www.talkingballs.co.uk/bb/viewtopic.php?p=175042
+http://www.talkingballs.co.uk/bb/viewtopic.php?t=10524&start=40
+http://www.talkingcities.co.uk/budapest_pages/sights_museums1.htm
+http://www.talkingdesktop.com/mary.htm
+http://www.talkingeconomics.co.uk/mailings.html
+http://www.talkingleaves.org/s03council.htm
+http://www.talkingpix.co.uk/Article_Metropolis.html
+http://www.talkingpointsmemo.com/archives/001996.php
+http://www.talkingpointsmemo.com/archives/003452.php
+http://www.talkingpointsmemo.com/archives/004099.php
+http://www.talkingpointsmemo.com/archives/week_2001_04_08.php
+http://www.talkingpointsmemo.com/archives/week_2001_07_01.php
+http://www.talkingpointsmemo.com/archives/week_2001_10_14.php
+http://www.talkingpointsmemo.com/archives/week_2001_12_02.php
+http://www.talkingpointsmemo.com/archives/week_2002_11_03.php
+http://www.talkingpointsmemo.com/archives/week_2003_07_06.php
+http://www.talkingpointsmemo.com/archives/week_2003_07_13.php
+http://www.talkingpointsmemo.com/archives/week_2003_08_10.php
+http://www.talkingpointsmemo.com/archives/week_2003_11_16.php
+http://www.talkingpointsmemo.com/archives/week_2003_12_28.php
+http://www.talkingpointsmemo.com/archives/week_2004_01_04.php
+http://www.talkingpointsmemo.com/archives/week_2004_01_11.php
+http://www.talkingpointsmemo.com/archives/week_2004_02_01.php
+http://www.talkingpointsmemo.com/archives/week_2004_02_22.php
+http://www.talkingpointsmemo.com/archives/week_2004_03_21.html
+http://www.talkingpointsmemo.com/archives/week_2004_03_21.php
+http://www.talkingpointsmemo.com/archives/week_2004_03_28.php
+http://www.talkingpointsmemo.com/archives/week_2004_04_04.php
+http://www.talkingpointsmemo.com/archives/week_2004_04_11.php
+http://www.talkingpointsmemo.com/archives/week_2004_04_18.php
+http://www.talkingpointsmemo.com/archives/week_2004_07_04.php
+http://www.talkingpointsmemo.com/archives/week_2004_07_18.php
+http://www.talkingpointsmemo.com/archives/week_2004_08_01.php
+http://www.talkingpointsmemo.com/archives/week_2004_08_08.php
+http://www.talkingpointsmemo.com/archives/week_2004_09_19.php
+http://www.talkingpointsmemo.com/archives/week_2004_12_05.php
+http://www.talkingpointsmemo.com/archives/week_2005_03_20.php
+http://www.talkingpointsmemo.com/archives/week_2005_05_22.php
+http://www.talkingpointsmemo.com/archives/week_2005_06_26.php
+http://www.talkingproud.us/Eagle052004.html
+http://www.talkingwithkids.org/alcohol.html
+http://www.talkingwithkids.org/television.html
+http://www.talkingwithkids.org/television/tv-as-a-tool.html
+http://www.talkmagic.co.uk/ftopic4240.php&sid=efa962596ec842f1eb29345167aaec6b
+http://www.talkmagic.co.uk/sutra28868.php&sid=efa962596ec842f1eb29345167aaec6b
+http://www.talkorigins.org/faqs/bombardier.html
+http://www.talkorigins.org/faqs/comdesc/camp.html
+http://www.talkorigins.org/faqs/credentials.html
+http://www.talkorigins.org/faqs/dating.html
+http://www.talkorigins.org/faqs/faq-misconceptions.html
+http://www.talkorigins.org/faqs/flatearth.html
+http://www.talkorigins.org/faqs/geohist.html
+http://www.talkorigins.org/faqs/homs/mitoeve.html
+http://www.talkorigins.org/faqs/speciation.html
+http://www.talkorigins.org/faqs/trueorigin/fernandez.html
+http://www.talkorigins.org/origins/feedback/aug00.html
+http://www.talkorigins.org/origins/feedback/feb05.html
+http://www.talkreason.org/articles/fixing1.cfm
+http://www.talktotom.com/
+http://www.talktotom.com/index.asp
+http://www.talktotom.com/r_mortgage-calculator_taxes.asp
+http://www.tallarmeniantale.com/MidExp-academic.htm
+http://www.tallarmeniantale.com/kurd.htm
+http://www.tallent.us/blog/default.aspx?date=2004-07-31
+http://www.tallpaul.com/music/fast-beneath-my-feet-lyrics.html
+http://www.tallwoods.com.au/1_html/r_overview.html
+http://www.tamarindwoodturning.com/tipstricks.htm
+http://www.tamba.co.uk/business-development-manager.htm
+http://www.tameyourbrain.com/weight/index1.htm
+http://www.tamhsc.edu/news/archives/cat_public_health.php
+http://www.tamilislam.com/ENGLISH/human_rights/THE%20MUSLIM%20WOMAN%20AND%20HER%20HUSBAND.htm
+http://www.tamilmatrimony.com/success/success.shtml
+http://www.tamilnet.com/art.html?catid=13&artid=489
+http://www.tamilnet.com/art.html?catid=13&artid=6326
+http://www.tamilnet.com/print.html?artid=489&catid=13
+http://www.tamingthebeast.net/articles5/email-open-rates.htm
+http://www.tamingthebeast.net/tools/autoresponder-software.htm
+http://www.tamiyausa.com/articles/feature.php?article-id=11
+http://www.tampagov.net/dept_Mayor/
+http://www.tampagov.net/dept_Recreation/Gym_and_Dance/Recruiting/Maalika/Maalika.asp
+http://www.tampagov.net/msg?ID=386
+http://www.tampareads.com/order/totalpackage/selectall.htm
+http://www.tampareads.com/testimonials/
+http://www.tampatrib.com/Features/MGBFDQMLF2E.html
+http://www.tampatrib.com/FloridaMetro/MGBUP8EC23E.html
+http://www.tampaymca.org/interbayfacility.html
+http://www.tampereclub.org/forum/vbb/index.php?target=viewmesg&select=1
+http://www.tampicohistoricalsociety.citymax.com/board/board_topic/23882/58994.htm
+http://www.tamu.edu/admissions/Undergrad/ubook01/i_chart.html
+http://www.tamu.edu/ccbn/dewitt/badam2.htm
+http://www.tamu.edu/ccbn/dewitt/davidburket3.htm
+http://www.tamu.edu/ccbn/dewitt/gonzalesrangersa-e.htm
+http://www.tamu.edu/shpe/constitution.php
+http://www.tamu.edu/univrel/aggiedaily/news/stories/03/061203-2.html
+http://www.tamucc.edu/provost/university_rules/safety/340199C101.html
+http://www.tamug.edu/hrd/Section4.htm
+http://www.tamug.edu/sail/fitness.htm
+http://www.tamuk.edu/csc/SS/senior.asp
+http://www.tananachiefs.org/jobs/dbjobsSP.asp
+http://www.tanbooks.com/doct/husband_wife.htm
+http://www.tandf.co.uk/journals/authors/cjgsauth.asp
+http://www.tandf.co.uk/journals/authors/ptarauth.asp
+http://www.tandf.co.uk/journals/authors/rctcauth.asp
+http://www.tandf.co.uk/journals/authors/rftsauth.asp
+http://www.tandf.co.uk/journals/authors/tcusauth.asp
+http://www.tandf.co.uk/journals/authors/tedlauth.asp
+http://www.tandf.co.uk/journals/authors/tqseauth.asp
+http://www.tandf.co.uk/journals/authors/tsrmauth.asp
+http://www.tandf.co.uk/journals/authors/umhnauth.asp
+http://www.tandl.leon.k12.fl.us/science/Elementary%20Science%20Curriculum%20Guides/Kindergarten%20Unit%20Summaries/final%20kA.html
+http://www.tango.org/mem04.html
+http://www.tango.org/mem05.html
+http://www.tangoseattle.com/id35.html
+http://www.tantalon.com/pete/cdgolf.htm
+http://www.tantraattahoe.com/news/03272003.htm
+http://www.tantrumtrainers.com/openingintrononmemebers/STRICTWOMEN%20FREE.htm
+http://www.taoism.net/theway/suffer.htm
+http://www.taonline.com/tappages/tappage.asp?TAPID=23
+http://www.taoofdemocracy.com/sample.html
+http://www.taos.com/resumetips.html
+http://www.taosinstitute.net/upcoming/workshopsSCP.html
+http://www.tappi.org/index.asp?pid=18653&ch=1
+http://www.tappi.org/paperu/hot_topics/
+http://www.tappin.me.uk/Linux/audio.html
+http://www.tappingmyownphone.com/FTRVegDM01.html
+http://www.tapr.org/conf_dcc2004.html
+http://www.taquitos.net/snacks.php?page_code=21
+http://www.taquitos.net/snacks.php?page_code=71
+http://www.taquitos.net/snacks.php?snack_code=529
+http://www.tard-blog.com/riti29.html
+http://www.tardsite.com/rules.htm
+http://www.targit.com/newsletter_9.thtml
+http://www.tarksheel.com/great.htm
+http://www.tarotbyjeanne.com/yourstories.htm
+http://www.tarotcardreadingsbypsychicrose.com/
+http://www.tarotforum.net/showthread.php?t=36250&page=3
+http://www.tarotplanet.com/love/default.asp
+http://www.tarottools.com/tttth/
+http://www.tarpaulinsky.com/Spring03/PTRealm.htm
+http://www.tarpley.net/bush1.htm
+http://www.tarpley.net/bush17.htm
+http://www.tartans.com/modules.php.srl.op+modload,name+EZCMS,file+index,menu+1,page_id+41.html
+http://www.tartu.ee/?lang_id=2&menu_id=13&page_id=493
+http://www.tartu.ee/print.php?lang_id=2&menu_id=13&page_id=493
+http://www.tas-arts.com/tasmania/Creative_Tasmanians_Painters.shtml
+http://www.tasa.com/tasa/pages/tasanews/pr030904.htm
+http://www.tascq.ie/sh765x4869.html
+http://www.tashian.com/carl/
+http://www.tashian.com/carl/archives/2004/09/
+http://www.tashian.com/carl/archives/2005/01/
+http://www.tashian.com/carl/archives/2005/01/nyc.html
+http://www.tashian.com/htmlguide/browser-windows.html
+http://www.tasi.ac.uk/advice/creating/colour.html
+http://www.tasi.ac.uk/advice/creating/selecpro.html
+http://www.tasi.ac.uk/advice/using/finding.html
+http://www.tasmaniatogether.tas.gov.au/board/quarterly_report_03_07_09.html
+http://www.tassos-oak.com/online/10happiness.html
+http://www.tastyjob.co.uk/frame_graduates.html
+http://www.tata.com/tata_tea/media/20020414.htm
+http://www.tata.com/tata_teleservices/media/20030818.htm
+http://www.tate.org.uk/britain/exhibitions/christmastree2004/
+http://www.tate.org.uk/modern/information.htm
+http://www.tau.ac.il/jcss/events01.html
+http://www.taubman.org.uk/family/phpgedview/individual.php?pid=I183
+http://www.taubman.org.uk/family/phpgedview/individual.php?pid=I208
+http://www.taubman.org.uk/family/phpgedview/individual.php?pid=I80
+http://www.taubman.org.uk/family/phpgedview/individual.php?pid=I81
+http://www.taubman.org.uk/family/phpgedview/individual.php?pid=I93
+http://www.taunton.com/finegardening/index.asp
+http://www.taunton.com/finegardening/pages/g00041.asp
+http://www.taunton.com/finewoodworking/pages/bw0002.asp
+http://www.tauntonschool.co.uk/home/tisc/academic/prizegiving.html
+http://www.tawawa.org/en/archives/2004_03.html
+http://www.taxanalysts.com/www/econpers.nsf/0/4a566cb166104ee9852566da006d14ea?OpenDocument
+http://www.taxanalysts.com/www/econpers.nsf/0/93b582b60925c91d85256c210076f394?OpenDocument
+http://www.taxanalysts.com/www/econpers.nsf/0/c3973ccbb8c47bea85256dba006b3b39?OpenDocument
+http://www.taxassistance.org/community_services/tax_site_locations.cfm
+http://www.taxbar.com/tr/jaggers.htm
+http://www.taxboard.gov.au/content/Charity_consultation/Appendix_7.asp
+http://www.taxcafe.co.uk/stock-market.html
+http://www.taxcut.com/taxtips/tax_changes/xfnew03.html
+http://www.taxfoundation.org/blog/
+http://www.taxfoundation.org/reincorporation.html
+http://www.taxfoundation.org/taxfreedomday/
+http://www.taxgaga.com/pages/c-taxhaha/dir-humor.html
+http://www.taxhelpattorney.com/
+http://www.taxhistory.org/Civilization/Documents/Sales/HST29008/hst29008.htm
+http://www.taxhistory.org/thp/taxingfed.nsf/0/A7EE0A7288ABFBB985256E41006CCA49?OpenDocument
+http://www.taxhistory.org/thp/thpwebsite.nsf/Web/PresidentialTaxReturns?OpenDocument
+http://www.taxhoncho.com/immigration.htm
+http://www.taxi.com/faq/ar/steaman.html
+http://www.taxi1010.com/stargate02.htm
+http://www.taxibus.org.uk/environment.html
+http://www.taximiles.com/news/display20050321.php
+http://www.taxonomywarehouse.com/resultsbypub.asp?vPubUID=40
+http://www.taxopedia.com/articles/nasd/529plans.asp
+http://www.taxotere.com/professional/oncology_resources/index.do
+http://www.taxpolicycenter.org/publications/template.cfm?PubID=900581
+http://www.taxprophet.com/faq/980111.htm
+http://www.taylor.edu/community/news/open_letter12-04-04.htm
+http://www.taylormadeshoes.co.uk/Links/
+http://www.taylormadetreasures.wahmbiz.com/instructions.htm
+http://www.taynet.co.uk/users/crisp/qc_on_qc.html
+http://www.tbca.com/boxoffice.htm
+http://www.tbcc.cc.or.us/0405ptp_aas.html
+http://www.tbcollaborative.com/Description.asp
+http://www.tbf.org/fund/fund-L2.asp?id=1468
+http://www.tbn.org/about/newsletter/index.php/169.html
+http://www.tbp.org/Chapters/Resources/PresidentsBook/PBC/PBCI.cfm
+http://www.tbray.org/ongoing/When/200x/2003/05/07/MacYear
+http://www.tbray.org/ongoing/When/200x/2003/05/08/FutureLanguage
+http://www.tbs-sct.gc.ca/Pubs_pol/dcgpubs/TBM_142/2-11-1-PR_e.asp?printable=True
+http://www.tbs-sct.gc.ca/Pubs_pol/dcgpubs/TBM_142/2-11-1_e.asp
+http://www.tbs-sct.gc.ca/cmo_mfc/resources2/research/rr03_e.asp
+http://www.tbs-sct.gc.ca/gos-sog/atip-aiprp/in-ai/in-ai2005/2005-05_e.asp
+http://www.tbs-sct.gc.ca/pubs_pol/ciopubs/tb_oimp/sdimit-PR_e.asp?printable=True
+http://www.tbs-sct.gc.ca/pubs_pol/ciopubs/tb_oimp/sdimit1_e.asp
+http://www.tbs-sct.gc.ca/pubs_pol/dcgpubs/ContPolNotices/cpn-apm-03-01_e.asp
+http://www.tbs-sct.gc.ca/pubs_pol/dcgpubs/TBM_142/srsap-PR_e.asp?printable=True
+http://www.tbs-sct.gc.ca/pubs_pol/hrpubs/TB_8332/polfsd-avdse-010601-PR_e.asp?printable=True
+http://www.tbs-sct.gc.ca/pubs_pol/hrpubs/coll_agre/ase1_lc_e.asp
+http://www.tbs-sct.gc.ca/pubs_pol/hrpubs/tb_853/tele_work-PR_e.asp?printable=True
+http://www.tbs-sct.gc.ca/pubs_pol/hrpubs/tbm_11b/AAL11-PR_e.asp?printable=True
+http://www.tbs-sct.gc.ca/pubs_pol/hrpubs/tbm_11b/aal11-2_e.asp
+http://www.tbs-sct.gc.ca/rma/dpr/00-01/CAPPRT00dpr/CAPPRT00dpr-PR_e.asp?printable=True
+http://www.tbs-sct.gc.ca/rma/dpr/00-01/CAPPRT00dpr/CAPPRT00dpr01_e.asp
+http://www.tbs-sct.gc.ca/rma/dpr/01-02/CAPPRT/capprt0102dpr02_e.asp
+http://www.tbs-sct.gc.ca/rma/dpr/02-03/CAPPRT-TCRPAP/CAPPRT-TCRPAP03D-PR_e.asp?printable=True
+http://www.tbs-sct.gc.ca/rma/dpr/02-03/CAPPRT-TCRPAP/CAPPRT-TCRPAP03D01_e.asp
+http://www.tbs-sct.gc.ca/scripts/contracts-contrats/reports-rapports_e.asp?r=l&yr=2004&q=1
+http://www.tbs-sct.gc.ca/scripts/contracts-contrats/reports-rapports_e.asp?r=l&yr=2004&q=2
+http://www.tbs-sct.gc.ca/scripts/contracts-contrats/reports-rapports_e.asp?r=l&yr=2004&q=3
+http://www.tbsjournal.com/Archives/Fall01/fall01.html
+http://www.tc-cancer.com/forum/archive/index.php/t-1170.html
+http://www.tc.columbia.edu/academic/anthro/courses.asp
+http://www.tc.columbia.edu/international/employ/gentax.html
+http://www.tc.columbia.edu/news/article.htm?id=2672&tid=7
+http://www.tc.columbia.edu/news/article.htm?id=2808&tid=19
+http://www.tc.edu/o&l/ed-leadership/concentrations.asp?id=174
+http://www.tc.gc.ca/CivilAviation/commerce/CabinSafety/DVT.htm
+http://www.tc.gc.ca/CivilAviation/general/recavi/Instructions/Airshow/Section3.htm
+http://www.tc.gc.ca/MarineSafety/TP/mou/menu.htm
+http://www.tc.gc.ca/marinesafety%5CTP%5CTp11343%5Crecommendations-and-factors.htm
+http://www.tc.gc.ca/mediaroom/releases/nat/2004/04-gc004ae.htm
+http://www.tc.gc.ca/ship/faq/menu.htm
+http://www.tc.gc.ca/tdg/clear/part3.htm
+http://www.tc.gc.ca/tdg/clear/part7.htm
+http://www.tc.gc.ca/tdg/consult/actreview/menu.htm
+http://www.tc.umn.edu/~peikx001/Lisbon%20Conference.htm
+http://www.tc.umn.edu/~rkrueger/story_eaas.html
+http://www.tcbsitemaker.com/newcaleta/gibraltar-weddings.asp
+http://www.tcc-cci.gc.ca/rules/gen/gen_pro_1_e.htm
+http://www.tccandler.com/critical_mass_TITANIC.htm
+http://www.tcci.org/gpvids.htm
+http://www.tccsa.tc/
+http://www.tcdancers.org/aboutcontra.html
+http://www.tceponline.org/topics/self_determination.htm
+http://www.tcfb.co.uk/
+http://www.tcfp.state.tx.us/
+http://www.tcfp.state.tx.us/index.asp
+http://www.tcfp.state.tx.us/standards/standards_manual/standards_manual.asp?rule=429.211
+http://www.tcfp.state.tx.us/standards/standards_manual/standards_manual.asp?rule=439.5
+http://www.tchain.com/otoneurology/disorders/unilat/fistula.html
+http://www.tchra.org/programs/programs_main.asp?prog_id=134
+http://www.tcl.tk/cgi-bin/tct/tip/105.html
+http://www.tcl.tk/scripting/netserver.html
+http://www.tcl.tk/scripting/netserver.tml?sc_format=wider
+http://www.tcm-mec.gc.ca/tc2002/menu-en.asp
+http://www.tcm.phy.cam.ac.uk/~bdj10/
+http://www.tcmagazine.info/forums/index.php?showtopic=656&view=getnewpost
+http://www.tcmtreatment.com/images/diseases/chronic-rhinitis.htm
+http://www.tcnj.edu/~hofmann/Granby/Granby.htm
+http://www.tcoletribalrugs.com/article32RubruckTrvl.html
+http://www.tcoyf.com/library/primer006.asp
+http://www.tcpalm.com/tcp/50_martin_news/article/0,2540,TCP_1247_3313516,00.html
+http://www.tcpc.org/resources/articles/what_about.htm
+http://www.tcpc.org/resources/reviews/dishonest_church.htm
+http://www.tcpipguide.com/free/t_IPv6NDFunctionsComparedtoEquivalentIPv4Functions.htm
+http://www.tcsg.org/sfelp/kline.htm
+http://www.td.com/community/index.jsp
+http://www.td.com/fef/overview.jsp
+http://www.tdan.com/i004fe01.htm
+http://www.tdan.com/i016hy01.htm
+http://www.tdan.com/i032ht02.htm
+http://www.tdan.com/nwt_issue25.htm
+http://www.tdctrade.com/imn/03121803/architecture002.htm
+http://www.tdctrade.com/prodmag/footwear/foo200002pf.htm
+http://www.tdctrade.com/report/indprof/indprof_20703.htm
+http://www.tdh.state.tx.us/ideas/antibiotic_resistance/mrsa/athletics/departments/
+http://www.tdh.state.tx.us/newborn/hand_cah.htm
+http://www.tdhs.org/news_and_events.html
+http://www.tdi.state.tx.us/company/roc/1-2.html
+http://www.tdi.state.tx.us/company/rspcref2.html
+http://www.tdi.state.tx.us/company/wind/prod/ec/ec-01.HTML
+http://www.tdn.com/professional/view.php?id=freds_tile_n_more
+http://www.tdogs.org/girls/patches1.htm
+http://www.tdprs.state.tx.us/Adoption_and_Foster_Care/Helpful_Resources/faqadoption.asp
+http://www.tdsautomotive.com/07NewsPress/01.php?cid=51
+http://www.tdwg.org/poss_standard.html
+http://www.tea.state.tx.us/drive/defaq_teen1.html
+http://www.tea.state.tx.us/drive/orrfaq.html
+http://www.tea.state.tx.us/safedriver/faqs.html
+http://www.tea.state.tx.us/sboe/minutes/committees/2003/whole/041003.html
+http://www.tea.state.tx.us/sboe/minutes/committees/2003/whole/070903.html
+http://www.tea.state.tx.us/student.assessment/resources/online/2001/exit/writing.htm
+http://www.tea.state.tx.us/tea/statement.html
+http://www.teaandcoffee.net/0201/trade.htm
+http://www.teaandcoffee.net/0400/tea.htm
+http://www.teaandcoffee.net/0403/tea.htm
+http://www.teaandcoffee.net/0901/tea.htm
+http://www.teac.org/accreditation/audit/guidelinesforauditstrategy.asp
+http://www.teacch.com/assess.htm
+http://www.teach-nology.com/teachers/subject_matter/health/nut/
+http://www.teach-nology.com/worksheets/
+http://www.teach-scheme.org/Notes/scheme-faq.html
+http://www.teachability.strath.ac.uk/original/Resources/InductionOfStudents.html
+http://www.teachablemoment.org/high/warlanguage.html
+http://www.teachercreated.com/lessons/011221ct.shtml
+http://www.teachereducation.com/course_outlines/graduate_classroom/tp_win_sup_gradclass_outline.htm
+http://www.teachereducation.com/course_outlines/graduate_online/tp_win_sup_gradon_outline.htm
+http://www.teachereducation.com/courses.html
+http://www.teacherfiles.com/clip_art.htm
+http://www.teacherformation.org/html/rr/rejoining.cfm
+http://www.teachernet.gov.uk/educationoverview/briefing/currentstrategy/newrelationship/personalisedlearning/
+http://www.teachernet.gov.uk/management/atoz/b/
+http://www.teachernet.gov.uk/teachingandlearning/assemblies/index.cfm?mode=searchdisplay&id=32&history=keyword
+http://www.teachernet.gov.uk/teachingandlearning/library/
+http://www.teachernet.gov.uk/teachingandlearning/library/ICT/elcsandcurriculumonline/
+http://www.teachernet.gov.uk/teachingandlearning/subjects/pe/peusefullinks/
+http://www.teachernet.gov.uk/wholeschool/familyandcommunity/childprotection/usefulinformation/abuseoftrust/
+http://www.teachers.ash.org.au/aussieed/ihavetomove.htm
+http://www.teachers.ash.org.au/dnutting/germanaustralia/e/students.htm
+http://www.teachers.ash.org.au/teachereduc/PrevMoments.html
+http://www.teachers.net/gazette/AUG02/page.html
+http://www.teachers.net/gazette/JUN03/moore.html
+http://www.teachers.net/jobs/jobboard/abroad/11.25.04.20.14.55.html
+http://www.teachers.net/lessons/posts/3185.html
+http://www.teachers.org.uk/showwirearchive.php?id=1988699
+http://www.teachers.org.uk/story.php?id=3031
+http://www.teachers.org.uk/topichome.php?id=48
+http://www.teachers.tv/subjectBlockResources.do?transmissionBlockId=111405&zoneId=2&transmissionProgrammeId=114828
+http://www.teachers.work.co.nz/archive_Nov_2004.htm
+http://www.teachersandfamilies.com/sped/gt/415590-gt-legal.html
+http://www.teachersdomain.org/3-5/sci/phys/mfe/bbforces/
+http://www.teachersdomain.org/6-8/sci/life/stru/singlecell/
+http://www.teachersdomain.org/9-12/sci/life/cell/singlecell/
+http://www.teachersdomain.org/K-2/sci/phys/descwrld/house/
+http://www.teachersfirst.com/hangups.html
+http://www.teachersfirst.com/sped/gt/415590-gt-legal.html
+http://www.teachersfirst.com/tutorial/webintro.htm
+http://www.teachersnetwork.org/teachnetnyc/flammia/moving.htm
+http://www.teachest.com/terms.html
+http://www.teachfitness.com/asppages/whatsnew.asp
+http://www.teachhealth.com/
+http://www.teachingcitizenship.org.uk/page.php?title=News&section=news&section2=conf&page=_misc_docs/conf_04_info
+http://www.teachingenglish.org.uk/think/methodology/intercultural1.shtml
+http://www.teachingenglish.org.uk/think/write/process_write.shtml
+http://www.teachingenglish.org.uk/try/prontry/pron_activites.shtml
+http://www.teachingenglish.org.uk/try/resourcetry/resource_activities.shtml
+http://www.teachingenglish.org.uk/try/speaktry/speaking_activities.shtml
+http://www.teachingheart.net/gingerbreadman.html
+http://www.teachingheart.net/moosebooks.html
+http://www.teachingideas.co.uk/pe/contents.htm
+http://www.teachingonline.org/languageartsindex.html
+http://www.teachingprofessor.com/conference/sundaypaper.html
+http://www.teachingtennis.com/site/body1.htm
+http://www.teachingtochangelives.com/questions.html
+http://www.teachnet.com/how-to/organization/orgrec.html
+http://www.teachnet.com/lesson/langarts/charlotte061799.html
+http://www.teachnet.com/powertools/take5/
+http://www.teachnet.ie/mhickey/2004/aims.html
+http://www.teachopolis.org/arcade/director_game_dev.htm
+http://www.teachpoetry.com/poems.html
+http://www.teaconnexions.com/news_2.html
+http://www.teagasc.ie/research/journalarchives/vol41no12002abstracts.htm
+http://www.teako170.com/glossary2.html
+http://www.tealart.com/2003/04/
+http://www.tealiciousteacompany.com/Tea+Articles/
+http://www.tealit.com/agents.htm
+http://www.team-penning.com/sitting_the_horse.htm
+http://www.teamamericapac.org/0-ta-ad-news-campaignsandelections.shtml
+http://www.teamap.com/tearooms/russian_tea_time_211.html
+http://www.teamap.com/tearooms/tea___tiques_1188.html
+http://www.teamap.com/tearooms/tea_upon_chatsworth_1412.html
+http://www.teamap.com/tearooms/thyme_for_tea_870.html
+http://www.teamarete.com/passing.html
+http://www.teambath.com/news/index.cfm
+http://www.teambuildingthatworks.com/clients.htm
+http://www.teamcuisine.com/
+http://www.teamethno-online.org/Issue1/OrgFail.html
+http://www.teamflow.com/tutl108.html
+http://www.teamhealthnet.com/news/2004/southland.htm
+http://www.teamonetickets.com/concerts/concerts/no-doubt-tickets.html
+http://www.teamorion.com/live/results-cars.asp?id=136
+http://www.teamorion.com/live/results-cars.asp?id=137
+http://www.teamorion.com/live/results-cars.asp?id=140
+http://www.teamorion.com/live/results-cars.asp?id=141
+http://www.teamspirit.org.uk/wh__peak.htm
+http://www.teamsportsuniforms.com/uniform_screen_printing.htm
+http://www.teamster.org/divisions/Port/testimony.htm
+http://www.teamtalkmag.com/2002/club/tyrone_sfc/clannangael-loughmacrory.htm
+http://www.teamterrier.com/BLabonte.html
+http://www.teamuse.com/article_010502.html
+http://www.teamuse.com/article_030601.html
+http://www.teamwarfare.com/
+http://www.teara.govt.nz/1966/W/WardSirJosephGeorgePcGcmgBart/WardSirJosephGeorgePcGcmgBart/en
+http://www.tearfund.org/News/Latest+news/Supporters+urged+to+bring+more+pressure+in+wake+of+debt+decision.htm
+http://www.tearfund.org/News/Press+release+archive/November+2003/Hungry+for+more+than+just+food.htm
+http://www.tearsofacop.com/police/articles/constant.html
+http://www.teathers.com/page.cfm?pageName=tax_eff_eis
+http://www.teatrocalamari.com/past1.html
+http://www.tech-expo.com.ua/eng/press.htm
+http://www.tech-forums.net/computer/topic/42385.html
+http://www.tech-sol.net/humor/marriage.htm
+http://www.tech.plym.ac.uk/soc/research/hcsd/hcsd2.htm
+http://www.tech.plymouth.ac.uk/soc/research/mabs/jbradford/octopush/rules.htm
+http://www.techbuilder.org/views/showArticle.jhtml?articleId=164901072&printableArticle=true
+http://www.techcentralstation.com/010405A.html
+http://www.techcentralstation.com/011805A.html
+http://www.techcentralstation.com/012605E.html
+http://www.techcentralstation.com/020305D.html
+http://www.techcentralstation.com/021704F.html
+http://www.techcentralstation.com/030305.html
+http://www.techcentralstation.com/030703A.html
+http://www.techcentralstation.com/060205C.html
+http://www.techcentralstation.com/082003A.html
+http://www.techcentralstation.com/090804D.html
+http://www.techcentralstation.com/102904N.html
+http://www.techcentralstation.com/110204C.html
+http://www.techcentralstation.com/112904A.html
+http://www.techcentralstation.com/121002E.html
+http://www.techcentralstation.com/121704E.html
+http://www.techcentralstation.com/122203C.html
+http://www.techcu.com/Resources/Learning/Retirement/earlystart.html
+http://www.techdenver.com/modules.php?name=News&file=article&sid=165&mode=nested
+http://www.techdirt.com/articles/20040903/0053246.shtml
+http://www.techdirt.com/articles/20041124/1126205.shtml
+http://www.techfak.uni-bielefeld.de/bcd/Lectures/steffensk.html
+http://www.techfak.uni-kiel.de/matwis/amat/def_en/kap_2/advanced/t2_4_1.html
+http://www.techgnosis.com/neopaganism.html
+http://www.techimo.com/forum/t133012.html
+http://www.techinfocenter.com/members/research/news/_004309/
+http://www.techlawjournal.com/home/newsbriefs/2001/12c.asp
+http://www.techlawjournal.com/telecom/80411fcc.htm
+http://www.techlawjournal.com/topstories/2004/20041120.asp
+http://www.techlearning.com/outlook/columns/profdev.jhtml
+http://www.techlearning.com/showArticle.jhtml?articleID=17301675
+http://www.techlearning.com/story/showArticle.jhtml?articleID=10810516
+http://www.techlearning.com/story/showArticle.jhtml?articleID=12800472
+http://www.techlearning.com/story/showArticle.jhtml?articleID=164300806
+http://www.techlearning.com/story/showArticle.jhtml?articleID=17701367
+http://www.techmind.org/lcd/
+http://www.technet.org/news/dc/
+http://www.technewsworld.com/story/33670.html
+http://www.technewsworld.com/story/33907.html
+http://www.technewsworld.com/story/34097.html
+http://www.technewsworld.com/story/34571.html
+http://www.technewsworld.com/story/36627.html
+http://www.technewsworld.com/story/37269.html
+http://www.technewsworld.com/story/42752.html
+http://www.technewsworld.com/story/43506.html
+http://www.technewsworld.com/story/43627.html
+http://www.technewsworld.com/story/43702.html
+http://www.technicianonline.com/story.php?id=010028
+http://www.technn.com/archives/months/july/July7.html
+http://www.technofile.com/cars/racing_course.html
+http://www.technogypsy.net/March2005.htm
+http://www.technology-research.com/oss.htm
+http://www.technology-schools.com/privacy-policy.php
+http://www.technologydecisions.com/backissue/0100/01.asp
+http://www.technologydecisions.com/backissue/0101/2_1_01_32.asp
+http://www.technologydecisions.com/backissue/0403/issue/4_14_03_88.asp
+http://www.technologydecisions.com/backissue/0899/05.asp
+http://www.technologydecisions.com/backissue/1202/12_17_02_23.asp
+http://www.technologyexecutivesclub.com/02172005bios.htm
+http://www.technologyforums.com/ngb/breakouts.asp
+http://www.technologyreview.com/articles/02/03/wo_jenkins032902.asp?p=0
+http://www.technologyreview.com/articles/02/03/wo_jenkins032902.asp?p=1
+http://www.technologyreview.com/articles/02/06/qa0602.asp?p=1
+http://www.technologyreview.com/articles/04/10/frauenfelder1004.asp?p=1
+http://www.technologyreview.com/articles/05/01/ap/ap_2010205.asp?p=1
+http://www.technologyreview.com/articles/05/01/issue/cohen0105.asp?p=1
+http://www.technologyreview.com/articles/05/06/ap/ap_061505.asp
+http://www.technologyreview.com/articles/05/06/issue/feature_creators.asp?p=0
+http://www.technologyreview.com/index.asp
+http://www.technologyvault.co.uk/news/Archives/1/2-2003.shtml
+http://www.technorati.com/
+http://www.technorati.com/tag/Love+Poems
+http://www.technorati.com/tags/cars
+http://www.technos.net/tq_06/1cetron.htm
+http://www.technos.net/tq_10/1koch.htm
+http://www.technos.net/tq_11/2emmans.htm
+http://www.technovelgy.com/ct/Science-Fiction-News.asp?NewsNum=311
+http://www.techography.com/article.php?story=20041218120817883
+http://www.techonline.com/community/ed_resource/feature_article/20324
+http://www.techonline.com/community/ed_resource/feature_article/20324?print
+http://www.techonline.com/community/ed_resource/feature_article/5430
+http://www.techonline.com/community/home/37904
+http://www.techpolicybank.org/candidateanalysis.html
+http://www.techreview.com/articles/03/11/garber1103.asp
+http://www.techschooldirectory.com/states/oregon-schools.htm
+http://www.techsoup.org/news/sub_btcdetails.cfm?btcissueid=57
+http://www.techspot.com/
+http://www.techspot.com/vb/all/windows/t-15735-Microsoft-ready-to-comply-if-appeal-is-lost.html
+http://www.techspot.com/vb/archive/index/t-105.html
+http://www.techspot.com/vb/archive/index/t-933.html
+http://www.techspot.com/vb/showthread.php?goto=lastpost&t=377
+http://www.techspot.com/vb/topic14261.html
+http://www.techspot.com/vb/topic23365.html
+http://www.techspot.com/vb/topic4438.html
+http://www.techspot.com/vb/topic933.html
+http://www.techsupportalert.com/best_paid_tech_support_sites.htm
+http://www.techsupportforum.com/
+http://www.techsupportforums.com/showthread.php?t=33082
+http://www.techsupportforums.com/showthread.php?t=33082&page=1
+http://www.techtransfer.harvard.edu/Entrepreneurs.html
+http://www.techtree.com/techtree/jsp/article.jsp?article_id=51404&cat_id=533
+http://www.techtree.com/techtree/jsp/index.jsp?file=forum/viewtopic.jsp&section=forum&subsection=Hardware&topic_id=2184&forum_id=1332
+http://www.techtree.com/techtree/jsp/showstory.jsp?storyid=56973
+http://www.techtree.com/techtree/jsp/showstory.jsp?storyid=57073
+http://www.techwarelabs.com/community/viewtopic.php?t=11570
+http://www.techweb.com/showPressRelease.jhtml?articleID=X339781&CompanyId=3
+http://www.techweb.com/tech/ebiz/46802719
+http://www.techworld.com/networking/features/index.cfm?featureid=681&Page=1&pagePos=19
+http://www.techzonez.com/forums/printthread.php?t=13906
+http://www.techzonez.com/forums/showthread.php?t=13906&page=4&pp=15
+http://www.teckcominco.com/careers/05-01-trail.htm
+http://www.tecnomen.com/tecnomessage/mar2003/ready?Parent=tmo&Page=mar2003&L2=mar2003200
+http://www.tecnu.net/electroplating_equipment_products.htm
+http://www.tecom.ae/law/law_18.htm
+http://www.tecsys.com/company/management.shtml
+http://www.tedcomo.com/html/Autobiography/chap7/chap25/chap25.html
+http://www.tedi.uq.edu.au/TEN/TEN_previous/TEN4_99/ten4_cody.html
+http://www.tedi.uq.edu.au/teaching/GradAttributes/phase2.html
+http://www.tedndt.com/usedequipment.html
+http://www.teechart.net/support/modules.php?name=News&file=article&sid=7
+http://www.teem.org.uk/findresource/element/classroom/printer_friendly?element_id=1718&content_id=2208
+http://www.teem.org.uk/findresource/element/classroom/printer_friendly?element_id=1718&content_id=2208&session_id=&topic_id=
+http://www.teem.org.uk/findresource/element/classroom?element_id=1528&session_id=&topic_id=
+http://www.teem.org.uk/findresource/element/classroom?element_id=1718&session_id=&topic_id=
+http://www.teem.org.uk/findresource/element/classroom?element_id=1718&session_id=s_14&topic_id=
+http://www.teem.org.uk/findresource/element/classroom?element_id=917&session_id=&topic_id=
+http://www.teem.org.uk/findresource/topic/element/classroom?element_id=1718&content_id=2208&session_id=&topic_id=
+http://www.teem.org.uk/findresource/topic/element/classroom?element_id=1718&session_id=&topic_id=
+http://www.teenadviceonline.org/archive/186.html
+http://www.teenagechickensoup.com/IA4T_News.php?ID=20
+http://www.teenanalyst.com/business/findcapital.html
+http://www.teenfad.ph/library/fadsource/winbattlewithin.htm
+http://www.teenhealthcentre.com/articles/publish/article_90.shtml
+http://www.teenhealthcentre.com/skills/main.htm
+http://www.teenink.com/Past/2004/February/17456.html
+http://www.teenink.com/Past/2004/September/18101.html
+http://www.teenink.com/Past/2005/January/18548.html
+http://www.teenlink.org/All-Hotels-Cities-TX-Dallas-129965-1-1.htm
+http://www.teenlink.org/All-Hotels-Cities-WA-Seattle-150213-1-1.htm
+http://www.teenpregnancy.org/resources/reading/tips/tips.asp
+http://www.teenreads.com/community/question/q010718.asp
+http://www.teenreads.com/reviews/038532748X-excerpt.asp
+http://www.teenreads.com/reviews/0440241413-excerpt.asp
+http://www.teens4hire.org/parents.asp
+http://www.teensarenotadisease.com/0,2669,SAV-0103040522,FF.html
+http://www.teenwire.com/ask/2003/as_20030625p593_boner.asp
+http://www.teenwire.com/infocus/2005/if_20050218p344_pressure.asp
+http://www.teenwire.com/infocus/articles/if_20010810p115.asp
+http://www.teething-teeth.com/Ear_Infection.html
+http://www.teetimegirl.com/pages/4/page4.html?refresh=1119547067657
+http://www.teevee.org/archive/1997/09/09/
+http://www.tefvater.org/html/cody.html
+http://www.tehelka.com/home/20041009/operation/investigation25.htm
+http://www.tek-tips.com/faqs.cfm?fid=2806
+http://www.tek-tips.com/links.cfm?pid=602
+http://www.tek-tips.com/userthreads.cfm?handle=torturedmind
+http://www.tek-tips.com/userthreads.cfm?handle=ylan
+http://www.tek-tips.com/viewthread.cfm?qid=1007828&page=1
+http://www.tek-tips.com/viewthread.cfm?qid=253687
+http://www.tek-tips.com/viewthread.cfm?qid=253687&page=1
+http://www.tek-tips.com/viewthread.cfm?qid=338717&page=1
+http://www.tek-tips.com/viewthread.cfm?qid=401497&page=1
+http://www.tek-tips.com/viewthread.cfm?qid=428302&page=6
+http://www.tek-tips.com/viewthread.cfm?qid=873974&page=4
+http://www.tek-tips.com/viewthread.cfm?qid=915172&page=1
+http://www.tek-tips.com/viewthread.cfm?qid=943154&page=9
+http://www.tek-tips.com/viewthread.cfm?qid=969373&page=1
+http://www.tek-tips.com/viewthread.cfm?qid=969649&page=7
+http://www.tek-tips.com/viewthread.cfm?qid=976400&page=1
+http://www.tek-tips.com/viewthread.cfm?qid=980658&page=10
+http://www.tek-tips.com/viewthread.cfm?qid=984347&page=2
+http://www.tek-tips.com/viewthread.cfm?qid=984347&page=3
+http://www.tek-tips.com/viewthread.cfm?qid=986597
+http://www.tek-tips.com/viewthread.cfm?qid=991570&page=1
+http://www.tekno.dk/subpage.php3?article=889&toppic=kategori12&language=uk
+http://www.tekotago.ac.nz/InternationalCentre/Accommodation_1.cfm
+http://www.tektonics.org/af/cocmusic.html
+http://www.tektonics.org/davincicrude.htm
+http://www.tektonics.org/guest/fallacies.html
+http://www.tekumel.com/game_advent.TCP.html
+http://www.tele-pro.co.uk/shop/howto.htm
+http://www.telecharge.com/tickets_Mamma_Mia_NY_City_Cadillac_Winter_Garden_all.aspx
+http://www.telecomsadvice.org.uk/glossary/t.html
+http://www.telecomweb.com/reports/lucent/news14.htm
+http://www.telecost.co.uk/Products/callog_manage3.htm
+http://www.telediscount.co.uk/index2.php
+http://www.telefonica.es/textolegal/textolegal_ingles.html
+http://www.telegoons.org/history_4_running_jumping.htm
+http://www.telegraph.co.uk/arts/main.jhtml?xml=/arts/2004/07/24/baoly24.xml&sSheet=/arts/2004/07/24/ixartright.html
+http://www.telegraph.co.uk/arts/main.jhtml?xml=/arts/2004/11/29/btchas27.xml&sSheet=/arts/2004/11/29/ixartleft.html
+http://www.telegraph.co.uk/arts/main.jhtml?xml=/arts/2004/12/31/ftspend31.xml&sSheet=/arts/2005/01/01/ixartleft.html
+http://www.telegraph.co.uk/arts/main.jhtml?xml=/arts/2005/03/10/bajapan09.xml
+http://www.telegraph.co.uk/money/main.jhtml?xml=/money/2004/12/05/ccuni05.xml&menuId=242&sSheet=/money/2004/12/05/ixcoms.html
+http://www.telegraph.co.uk/money/main.jhtml?xml=/money/2005/02/06/ccout06.xml&sSheet=/money/2005/02/06/ixcoms.html
+http://www.telegraph.co.uk/news/main.jhtml?xml=%2Fnews%2F2002%2F07%2F29%2Fnsquad29.xml
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2003/05/19/wirq19.xml/
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2004/06/05/wcia05.xml
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2004/06/13/wguan13.xml&sSheet=/news/2004/06/13/ixworld.html
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2004/07/07/nwmd07.xml
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2004/07/18/nbut118.xml
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2004/08/03/uviewspeed.xml
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2004/10/04/utory.xml
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2005/01/30/wirq30.xml&sSheet=/portal/2005/01/30/ixportaltop.html
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2005/03/19/nblair19.xml
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2005/06/30/nrail30.xml
+http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2005/06/30/nrail30.xml&sSheet=/portal/2005/06/30/ixportaltop.html
+http://www.telegraph.co.uk/opinion/main.jhtml?xml=/opinion/2004/04/24/dp2401.xml
+http://www.telegraph.co.uk/property/main.jhtml?xml=/property/2005/02/15/prat15.xml
+http://www.telegraph.co.uk/sport/main.jhtml?view=DETAILS&grid=&xml=%2Fsport%2F2004%2F04%2F12%2Fsoathl12.xml
+http://www.telegraph.co.uk/travel/main.jhtml?xml=/travel/2005/04/02/etfsrilanka02.xml&sSheet=/travel/2005/04/02/ixtrvhome.html
+http://www.telegraphindia.com/1050424/asp/look/story_4639621.asp
+http://www.telegraphindia.com/1050506/asp/bengal/story_4703681.asp
+http://www.telenor.com/about/history/chronology/
+http://www.teleologic.com/crghome/b5sea3.html
+http://www.telephoneroad.com/GuideUSA.html
+http://www.telepocalypse.net/archives/000335.html
+http://www.telepocalypse.net/archives/000337.html
+http://www.teleport-city.com/departures/scotland.html
+http://www.teleread.org/computerworld.htm
+http://www.telespan.com/buyersguide/glossb.html
+http://www.teletoon.com/static/en/copyright.php
+http://www.televisionheaven.co.uk/hisaskey.htm
+http://www.televisionheaven.co.uk/history4.htm
+http://www.televisionheaven.co.uk/overview5.htm
+http://www.televisionpersonalities.co.uk/covers.htm
+http://www.televisionwithoutpity.com/story.cgi?show=151&story=8065&limit=&sort=
+http://www.telford.gov.uk/Living/RegisterOffice/WeddingsWithinTelford.htm
+http://www.telhost.net/realestate-online/lakechelanvacationrentals/listings/details.asp?id=7
+http://www.telhost.net/realestate-online/lakechelanvacationrentals/listings/details.asp?id=90
+http://www.telhost.net/realestate-online/lakechelanvacationrentals/listings/details.asp?id=91
+http://www.tellingnicholas.com/email_1.html
+http://www.tellmehowto.net/article25.html
+http://www.tellmewhereonearth.com/Web%20Pages/Weirdest/Weirdest_Page_1.htm
+http://www.telluride360.com/weblog/2004/11/
+http://www.telos-systems.com/techtalk/gldefs.htm
+http://www.telstate.com/direct-XML-feed.html
+http://www.teluguone.com/health/index.jsp?filename=healthychild/inteligence.htm
+http://www.tem.dtu.dk/en/mmt/structure/
+http://www.tempe.gov/citymgr/weekly/06012003.htm
+http://www.tempe.gov/water/faqs.htm
+http://www.tempesttea.com/menus/january2005.htm
+http://www.temple.com/engineeredwood/sidingwarranty.html
+http://www.temple.edu/bulletin/ugradbulletin/ucd/ucd_americanstudies.html
+http://www.temple.edu/temple_times/97/3/6/state.html
+http://www.temple.edu/upe/constbylaws.htm
+http://www.templehealth.org/capsule/jan_14_05/jan1405_nycu.htm
+http://www.templekickbox.freeserve.co.uk/
+http://www.templemountfaithful.org/News/20020409.htm
+http://www.templeofdreams.com/center6.html
+http://www.templeton.org/science_and_religion/conferences.asp
+http://www.templeton.org/science_and_religion/hai_conferences.asp
+http://www.templeton.org/sir_john_templeton/szmag.asp
+http://www.templetonpress.org/book.asp?book_id=58
+http://www.templetonpress.org/recentreviews_detail.asp?book_id=34
+http://www.tempointeraktif.com/majalah/jap/cov-1.html
+http://www.ten-ten.org/rules.html
+http://www.ten3.co.nz/ent/modules.php?name=News&file=article&sid=39
+http://www.tenant.net/Court/Hcourt/
+http://www.tenbyartsfest.co.uk/tenby_arts_festival_programme.asp
+http://www.tenc.net/articles/pumphrey/Srebrenica.html
+http://www.tendonitis.net/
+http://www.tennessean.com/education/archives/05/01/65333727.shtml
+http://www.tennessean.com/education/archives/05/01/65868802.shtml/
+http://www.tennessean.com/features/living/archives/04/01/44627515.shtml
+http://www.tennessean.com/local/archives/04/11/62170538.shtml
+http://www.tennessean.com/sii/00/11/23/labontes23.shtml
+http://www.tennessean.com/sii/00/11/29/coe29.shtml
+http://www.tennesseeallianceforprogress.org/
+http://www.tennis-warehouse.com/feedback.html?pcode=CRT
+http://www.tennis.info/ITCSemi.asp
+http://www.tennisexpress.com/Tennis-Clothesi.html
+http://www.tennisinternet.com/indianatp.htm
+http://www.tennisresortsonline.com/trofiles/SeaColony.cfm
+http://www.tensiletest.com/prod08.htm
+http://www.tentmaker.org/articles/TrueBasisOfRedemption-APAdams.html
+http://www.teosofia.com/Mumbai/7204speech.html
+http://www.tera.org/peer/TCEQ/TCEQPanel.htm
+http://www.terasen.com/Inc/_Global/PrivacyPolicy.htm
+http://www.terasengas.com/_Global/PrivacyPolicy.htm
+http://www.terc.edu/handsonIssues/f94/math.sci.curr.html
+http://www.terebess.hu/english/okakura.html
+http://www.teriin.org/division/bbdiv/mb/mb_o.htm
+http://www.teriin.org/division/eetdiv/cres/cres.htm
+http://www.teriin.org/features/art180.htm
+http://www.teriin.org/terragreen/issue48/essay.htm
+http://www.teriin.org/urban/urban.htm
+http://www.term-life-insurance.name/
+http://www.termpapers-on-file.com/
+http://www.terra.edu/about/helpfulinks/bgrimmettsuccess.asp
+http://www.terracetalkireland.com/profiles/jack_doyle.htm
+http://www.terracon.com/np_newsl_Fall03.htm
+http://www.terraditoscana.com/default.aspx?lpg=travelog_storie&obj=petrelli_calciocostume
+http://www.terragame.com/operation.html
+http://www.terramedia.co.uk/Chronomedia/years/1929.htm
+http://www.terranature.org/deepsea_coral.htm
+http://www.terranature.org/trawlingScientists_ban.htm
+http://www.terrapinn.com/2005/mfe/Custom_4963.stm
+http://www.terrascope.org/helps.html
+http://www.terrestrialball.com/offerings/2004/09/
+http://www.terrificpets.com/forum/14428.asp
+http://www.terrificpets.com/forum/14814_2.asp
+http://www.terroranalysis.com/story/108132.html
+http://www.terry.uga.edu/~dawndba/4500FailingBlkBoys.html
+http://www.terrylove.com/forums/archive/index.php/t-700.html
+http://www.terrylove.com/forums/showthread.php?goto=lastpost&t=700
+http://www.terrylove.com/forums/showthread.php?t=700
+http://www.terrylove.com/wwwboard/messages2/41747.html
+http://www.terrypepper.com/lights/michigan/michcityold/
+http://www.terrypepper.com/lights/michigan/pentwater/
+http://www.terrypepper.com/lights/superior/duluth-s-rear/
+http://www.terrysouthern.com/texts/t_strange.htm
+http://www.tertullian.org/rpearse/lucian/peregrinus.htm
+http://www.tertullian.org/rpearse/scanned/strauss.htm
+http://www.tes.co.uk/Caption_competition/
+http://www.tes.co.uk/caption+competition
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=1664685&path=/scotland/scotland+-+opinion/&threadPage=6
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=1664685&path=/scotland/scotland+-+opinion/&threadPage=6&messagePage=1
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=1719685&path=/New+teachers/&threadPage=74
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=1719685&path=/New+teachers/&threadPage=76
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=1719685&path=/new+teachers/&threadPage=73&messagePage=1
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=1719685&path=/new+teachers/&threadPage=74&messagePage=1
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=1903313&path=/geography/&threadPage=1
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=2041852&path=/scotland/scotland+-+opinion/&threadPage=6&messagePage=4
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=2041852&path=/scotland/scotland+-+opinion/&threadPage=7&messagePage=4
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=2047252&path=/prospective+student+teachers/&threadPage=&messagePage=3
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=2063174&path=/Opinion/&threadPage=6&messagePage=2
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=2064370&path=/new+teachers/&threadPage=&messagePage=1
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=2089476&path=/sen/&threadPage=6
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=2104391&path=/scotland/scotland+-+opinion/&threadPage=&messagePage=1
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=2110396&path=/prospective+student+teachers/&threadPage=&messagePage=2
+http://www.tes.co.uk/section/staffroom/thread.aspx?story_id=2110396&path=/prospective+student+teachers/&threadPage=1&messagePage=2
+http://www.tes.co.uk/teacher/write_away_2005/
+http://www.tescodvdrental.com/visitor/product_detail.html?product_id=1428
+http://www.tescolegalstore.com/buy_to_let_kit.asp
+http://www.teslasociety.com/
+http://www.tesm.edu/faculty/pubs/writings/standingfirm
+http://www.tess.dk/euroread/combatingfailure.htm
+http://www.tess.dk/socraodl/course98/odl/m5-kt1r.htm
+http://www.test.org.uk/archives/000612.html
+http://www.testcafe.com/lov/
+http://www.testicle.com/reo.htm
+http://www.testing.com/writings/status/status.html
+http://www.testinginstitute.com/display.php?id=e_t_d_MH
+http://www.testmagic.com/forum/topic.asp?TOPIC_ID=1409
+http://www.testprepresearch.com/sat/
+http://www.tethys.org/activity_con.htm
+http://www.tetrapakusa.com/pilot_plant.html
+http://www.texansforpeace.org/
+http://www.texasart.com/store/browse/005/cat_id/280/Kid-s-Korner-Browse-by-Activity-Cool-Accessories.htm
+http://www.texasbeyondhistory.net/harrell/discovering.html
+http://www.texasbeyondhistory.net/kids/ask3.html
+http://www.texasdavid.com/south-austin-rent-list.html
+http://www.texasfairtrade.org/article.php?story=20041110103457173&mode=print
+http://www.texasfreeway.com/Dallas/new_freeway/161/161_dmn.shtml
+http://www.texashealth.org/main.asp-level-2-id-C6750B719383429889B6C18AE0C4E023
+http://www.texashousing.org/txlihis/discussit/phforum/Messages/aboutthesection8waitingli.html
+http://www.texashousingcounselor.org/txlihis/siterebuild/homeless/legislation.lasso
+http://www.texasinsider.org/Articles/596/1/Out_with_the_IRS%E2%80%A6Re-thinking_Taxes_in_America.aspx
+http://www.texasisd.com/
+http://www.texasmedicalrangers.com/faq.html
+http://www.texasmonthly.com/clickngo/B
+http://www.texasmonthly.com/mag/issues/1981-09-01/countrynotes.php
+http://www.texasmonthly.com/mag/issues/1992-10-01/feature3.php
+http://www.texasmonthly.com/mag/issues/1997-10-01/btl.php
+http://www.texasmonthly.com/mag/issues/2000-03-01/feature4.php
+http://www.texasmonthly.com/mag/issues/2001-11-01/feature.php
+http://www.texasmonthly.com/mag/issues/authors/evansmith.php
+http://www.texasobserver.org/showArticle.asp?ArticleID=1748
+http://www.texasrugbyunion.com/template.php
+http://www.texasrugbyunion.com/template.php?sid=11
+http://www.texasscottishfestival.com/athletics.htm
+http://www.texomaland.com/articles.asp?cat=25&id=1157
+http://www.textbookleague.org/103feyn.htm
+http://www.textbookleague.org/26flat.htm
+http://www.textbookleague.org/44smlpx.htm
+http://www.textfiles.com/sex/aaden.txt
+http://www.textile-art.com/mf.html
+http://www.textiles.com/s/textiles/tsindex.html
+http://www.textlinkbrokerage.com/overview.html
+http://www.textravaganza.com/phpBB2/viewtopic.php?start=0&t=1752
+http://www.textualcreations.ca/Book%20Page.htm
+http://www.tf.org/tf/violence/firearms/Intl/unlong2.shtml
+http://www.tfaoi.com/aa/3aa/3aa311.htm
+http://www.tfaoi.com/aa/4aa/4aa216.htm
+http://www.tfaoi.com/newsm1/n1m509.htm
+http://www.tfgtransfer.com/home.html
+http://www.tfhrc.gov/pavement/ltpp/reports/03066/
+http://www.tfhrc.gov/pubrds/04mar/02.htm
+http://www.tfhrc.gov/pubrds/janpr/cost.htm
+http://www.tfhrc.gov/pubrds/summer94/p94su26.htm
+http://www.tfhrc.gov/safety/hsis/pubs/04082/
+http://www.tfhrc.gov/safety/pedbike/articles/wayolife.htm
+http://www.tfn.org/issues/boardofed/dmnpac.htm
+http://www.tformers.com/reviews.php?op=showcontent&id=569
+http://www.tfp.org/TFPForum/TFPCommentary/looking_upon_a_nation_divided.html
+http://www.tga.gov.au/devices/devendtrans.htm
+http://www.tga.gov.au/devices/fs_class1.htm
+http://www.tga.gov.au/docs/html/dentalreg.htm
+http://www.tga.gov.au/docs/html/pmcris.htm
+http://www.tga.gov.au/docs/html/tga/tgal.htm
+http://www.tga.gov.au/docs/html/tganews/news36/iris.htm
+http://www.tga.gov.au/docs/html/tgo/tgo2_2004.htm
+http://www.tga.gov.au/gene/gtreview.htm
+http://www.tgarden.demon.co.uk/writings/articles/2004/041109demos.html
+http://www.tgci.com/magazine/00winter/egiving.asp
+http://www.tgci.com/magazine/03summer/read1.asp
+http://www.tgci.com/magazine/95fall/standard1.asp
+http://www.tgci.com/magazine/98winter/credit3.asp
+http://www.tgcrossroads.org/news/archive.asp?aid=342
+http://www.tgeller.com/speaking/
+http://www.tgnp.org/0gbi_refuting.htm
+http://www.tgorski.com/Prevention/Heavy_Drinking_During_Pregnancy_Remains_Unchanged.htm
+http://www.tgwu.org.uk/Templates/News.asp?NodeID=89629&int1stParentNodeID=42438&int2ndParentNodeID=89397&Action=Display
+http://www.tgwu.org.uk/Templates/News.asp?NodeID=89629&int1stParentNodeID=89397&int2ndParentNodeID=89397&Action=Display
+http://www.tha.nsw.gov.au/formsonline/agreement.html
+http://www.thai-language.com/dict/
+http://www.thaiairways.com/Bookings_Schedules/Terms_Conditions/1atermcon.htm
+http://www.thailand-travel.net/index.cfm?menuid=54
+http://www.thailand-travel.net/index.cfm?menuid=77
+http://www.thailander.com/entertainment/soundtracks/index1.html
+http://www.thailandguidebook.com/provinces/i_northeast.html
+http://www.thailasikcenter.com/english/eyes1.htm
+http://www.thailasikcenter.com/english/eyes2.htm
+http://www.thaipro.com/shop/2u-thomas%20tank%20vehicle-B000065CML.htm
+http://www.thaismile.co.uk/index.php?page=244&mode=view&id=74
+http://www.thaiwave.com/benjarong/phuket-property/
+http://www.thaiworldview.com/thaiwife.htm
+http://www.thanasis.com/demeter.htm
+http://www.thanksdarling.com/
+http://www.thanksgiving.org/2us.html
+http://www.thankyoutony.com/messages12.html
+http://www.thankyouviggo.com/write/being.php
+http://www.tharpa.com/background/dealing-with-fear.htm
+http://www.thatliberalmedia.com/archives/003273.html
+http://www.thatliberalmedia.com/archives/cat_new_york_times.html
+http://www.thatqueergeorgiaboy.com/wordpress/
+http://www.thatsracin.com/mld/thatsracin/10970832.htm
+http://www.thatsracin.com/mld/thatsracin/archives/3421901.htm
+http://www.thatsracin.com/mld/thatsracin/archives/3421901.htm?template=contentModules/printstory.jsp
+http://www.the-aps.org/education/k-12misc/k-12link.htm
+http://www.the-aps.org/pa/action/letter.htm
+http://www.the-aps.org/sections/compar/spring03.htm
+http://www.the-catbird-seat.net/CarlyleGroup.htm
+http://www.the-catbird-seat.net/NASA.htm
+http://www.the-dma.org/cgi/dispnewsstand?article=2859+++++
+http://www.the-dma.org/cgi/dispnewsstand?article=3254+++++
+http://www.the-dma.org/guidelines/ftctelemarketing.shtml
+http://www.the-eggman.com/iotw.html
+http://www.the-eggman.com/writings/keystep1.html
+http://www.the-equinox.org/vol1/no9/eqi09005.html
+http://www.the-exiles.org/shop.htm
+http://www.the-federalist-society.org/Documents/Anti-Federalist/AntiFed-47.htm
+http://www.the-gadgeteer.com/treo650-usage-article.html
+http://www.the-gadgeteer.com/vbbs/showthread.php?threadid=426
+http://www.the-hit-parade.co.uk/jsh.html
+http://www.the-improvisor.com/web%20ARTICLES/Stringboards.html
+http://www.the-infoshop.com/study/pf23000_food_allergy_toc.html
+http://www.the-kennel-club.org.uk/discoverdogs/utility/u954.htm
+http://www.the-kingdom.ie/news/story.asp?j=16785
+http://www.the-leader.com/about_us/
+http://www.the-leader.com/articles/2004/08/14/sports/sports03.txt
+http://www.the-leaky-cauldron.org/MTarchives/007138.php
+http://www.the-lighted-garden.com/id42.html
+http://www.the-magicbox.com/forums/archive/index.php/t-2398.html
+http://www.the-modeling-agency.com/training/wm.htm
+http://www.the-newsroom.com/june2004.htm
+http://www.the-office.com/learningstation/index2.htm
+http://www.the-office.com/office/exec2.htm
+http://www.the-office.com/womens-network/differnt.htm
+http://www.the-old-sea-dog.net/d7.html
+http://www.the-op.com/cast/George%252C+Sr.
+http://www.the-orb.net/encyclop/culture/towns/york1.html
+http://www.the-piedpiper.co.uk/th14(c).htm
+http://www.the-rc-zone.com/forums/showthread.php?t=3234
+http://www.the-saudi.net/saudi-arabia/saudi-constitution.htm
+http://www.the-shadow-lord.freeola.com/CHAPT10.htm
+http://www.the-signal.com/News/ViewStory.asp?storyID=6217
+http://www.the-sot.com/newsdesk.html
+http://www.the-spoiler.com/ACTION/Lucas.arts/the.phantom.menace.1/otoh.htm
+http://www.the-spoiler.com/Sinjin/ADARK4/ad4text.htm
+http://www.the-testament-of-truth.com/
+http://www.the-tidings.com/2005/0204/mterolink.htm
+http://www.the-underdogs.org/games/p/paradroid/files/paradroid.txt
+http://www.the-week.com/25jun12/currentevents_article10.htm
+http://www.the-zodiac.co.uk/aut/cosbiography.htm
+http://www.the519.org/programs/trans/access_project/scenarios.shtml
+http://www.the7thfire.com/Politics%20and%20History/sheeple_analyst/lying_little_laura_demonstrates_stepford_lies.htm
+http://www.theabsolute.net/minefield/kraus.html
+http://www.theacagroup.com/customerservice.htm
+http://www.theactivenetwork.com/story.cfm?story_id=10365&sidebar=459&category=press_innews
+http://www.theadultcollege.org/holder.asp?title=Open%20College%20Access%20Courses&content=oc_access.html
+http://www.theadventuresofchester.com/archives/2004/11/changes_to_army.html
+http://www.theadventuresofchester.com/archives/military_history/
+http://www.theadvocates.org/freeman/920706.html
+http://www.theadvocates.org/freeman/920806.html
+http://www.theadvocates.org/liberator/vol-05-num-14.htm
+http://www.theafa.org/faqs/afa_workingwithyourivfcenter.html
+http://www.theage.com.au/articles/2002/09/18/1032054865036.html
+http://www.theage.com.au/articles/2003/04/16/1050172643920.html
+http://www.theage.com.au/articles/2003/06/03/1054406187366.html
+http://www.theage.com.au/articles/2003/06/28/1056683948069.html
+http://www.theage.com.au/articles/2003/08/17/1061059722677.html
+http://www.theage.com.au/articles/2003/08/30/1062194751122.html
+http://www.theage.com.au/articles/2004/01/29/1075340772236.html?from=storyrhs
+http://www.theage.com.au/articles/2004/04/08/1081326875258.html?from=storyrhs
+http://www.theage.com.au/articles/2004/06/17/1087245046213.html?from=storylhs
+http://www.theage.com.au/articles/2004/06/26/1088145012286.html?from=storylhs
+http://www.theage.com.au/articles/2004/08/03/1091476492295.html?from=storylhs
+http://www.theage.com.au/articles/2004/08/15/1092508264793.html?from=storyrhs
+http://www.theage.com.au/articles/2004/10/02/1096527990641.html?from=storylhs
+http://www.theage.com.au/articles/2004/10/09/1097261840888.html?from=storylhs
+http://www.theage.com.au/articles/2004/10/10/1097406426302.html
+http://www.theage.com.au/articles/2004/10/15/1097784037970.html
+http://www.theage.com.au/articles/2004/11/01/1099262786331.html?from=storylhs
+http://www.theage.com.au/articles/2004/11/10/1100021878926.html?from=storylhs
+http://www.theage.com.au/articles/2005/01/14/1105582695875.html?from=top5
+http://www.theage.com.au/articles/2005/01/17/1105810836703.html
+http://www.theage.com.au/news/Asia-tsunami/Mother-storms-ward-to-seize-Baby-81/2005/02/02/1107228768552.html
+http://www.theage.com.au/news/Cricket/Submission-does-little-to-enhance-Pakistanis-lot/2004/12/29/1103996611829.html
+http://www.theage.com.au/news/Cricket/Warne-hits-back-at-former-teammates-criticism/2005/06/08/1118123897077.html
+http://www.theage.com.au/news/Editorial/The-most-agonising-choice-of-all/2004/07/31/1091080482636.html
+http://www.theage.com.au/news/Education-News/Crossing-the-line/2005/06/03/1117568376016.html
+http://www.theage.com.au/news/Election-2004/Latham-ALP-knows-what-it-stands-for/2004/10/20/1097951769299.html
+http://www.theage.com.au/news/Leon-Gettler/Race-to-part-newage-codgers-from-oldage-cash/2004/06/08/1086460291404.html
+http://www.theage.com.au/news/Music/Such-a-nice-boy/2005/06/02/1117568311975.html
+http://www.theage.com.au/news/Music/The-ones-that-got-away/2004/12/15/1102787131445.html
+http://www.theage.com.au/news/National/Live-WWII-bomb-found-in-shop/2005/04/29/1114635735210.html
+http://www.theage.com.au/news/National/Only-a-few-thousand-will-feel-land-tax-rise-Brumby/2004/12/12/1102786954561.html
+http://www.theage.com.au/news/National/Spurned-bushies-spur-mates-to-town/2005/06/08/1118123897742.html
+http://www.theage.com.au/news/National/Station-fiasco-heading-to-court/2004/07/14/1089694424491.html
+http://www.theage.com.au/news/Opinion/Few-take-Iraq-elections-seriously/2005/01/20/1106110872378.html
+http://www.theage.com.au/news/Opinion/Why-opposition-to-GE-crops-is-based-on-sound-science/2004/02/22/1077384634002.html
+http://www.theage.com.au/news/Pamela-Bone/Attention-all-pollies-leave-God-out-of-it/2005/05/22/1116700590321.html
+http://www.theage.com.au/news/Science/Cutting-it-fine/2004/07/31/1091080451054.html
+http://www.theage.com.au/news/World/Charles-the-love-story/2005/03/25/1111692623170.html
+http://www.theage.com.au/news/World/Opposition-rejects-talks-over-rigged-poll/2004/11/24/1101219619190.html?from=storylhs
+http://www.theage.com.au/news/World/Voters-queue-for-election-cliffhanger/2004/11/03/1099362175688.html
+http://www.theage.com.au/news/corby-case/corby-sacks-indonesian-legal-team/2005/06/24/1119321901856.html
+http://www.theage.com.au/text/articles/2005/02/02/1107228764474.html
+http://www.theage.com.au/yoursay1/2004/01/14/
+http://www.theage.com.au/yoursay1/2004/01/14/index9.html
+http://www.theagitator.com/archives/022103.php
+http://www.thealamofilm.com/article_28.shtml
+http://www.thealamofilm.com/artman/publish/article_28.shtml
+http://www.thealarmclock.com/mt/archives/2005/05/live_longer_a_f.html
+http://www.thealders.net/blogs/archive/001600.html
+http://www.thealestle.com/news/2003/10/14/Lifestyles/Learning.A.Language.Involves.Students.Spending.Time.Outside.The.Classroom-528027.shtml
+http://www.theallineed.com/ad-business-5/business-005.htm
+http://www.theallineed.com/ad-business-6/business-016.htm
+http://www.theallineed.com/ad-business-6/business-027.htm
+http://www.theallineed.com/ad-business-7/business-003.htm
+http://www.theallineed.com/ad-health-1/health-016.htm
+http://www.theallineed.com/ad-marketing-3/marketing-014.htm
+http://www.theallineed.com/ad-self-help-1/self-help-026.htm
+http://www.theallineed.com/ad-self-help-4/self-help-004.htm
+http://www.theallineed.com/ad-self-help-7/self-help-023.htm
+http://www.theallineed.com/health/05010203.htm
+http://www.theallineed.com/news/0409/283570.htm
+http://www.theallineed.com/news/0409/283668.htm
+http://www.theallineed.com/news/0410/134735.htm
+http://www.theallineed.com/news/0410/193206.htm
+http://www.theallineed.com/news/0411/028090.htm
+http://www.theallineed.com/news/0411/059869.htm
+http://www.theallineed.com/news/0412/083317.htm
+http://www.theallineed.com/news/0412/291431.htm
+http://www.theallineed.com/news/0412/301984.htm
+http://www.theallineed.com/news/0412/309529.htm
+http://www.theallineed.com/news/0501/012176.htm
+http://www.theallineed.com/news/0501/013439.htm
+http://www.theallineed.com/news/0501/017574.htm
+http://www.theallineed.com/news/0501/073140.htm
+http://www.theallineed.com/news/0501/076221.htm
+http://www.theallineed.com/news/0501/077261.htm
+http://www.theallineed.com/news/0501/078182.htm
+http://www.theallineed.com/news/0501/287204.htm
+http://www.thealternativebookshop.com/featuredspecials.html
+http://www.thealtitudenews.com/SnowSculpture.html
+http://www.theamericanoutdoorsman.com/deep-sea-fishing-tips.htm
+http://www.theangryliberal.com/06-03-02.htm
+http://www.theanswerbank.co.uk/Article225.html
+http://www.theanswerbank.co.uk/Body_and_Soul/Question116818.html
+http://www.theanswerbank.co.uk/Body_and_Soul/Question119854.html
+http://www.theanswerbank.co.uk/Film_and_TV/
+http://www.theanswerbank.co.uk/Info/TermsOfUse.asp
+http://www.theanswerbank.co.uk/Parenting/Question119386.html
+http://www.thearclink.org/forlibrarians/Arc%20Module%201%20transcript.htm
+http://www.thearcofco.org/waitinglist.html
+http://www.theargus.co.uk/the_argus/body__soul/HEALTH_FEATURES1.html
+http://www.theargus.co.uk/the_argus/body__soul/HEALTH_FEATURES211.html
+http://www.theargus.co.uk/the_argus/body__soul/HEALTH_FEATURES225.html
+http://www.theargus.co.uk/the_argus/body__soul/HEALTH_FEATURES235.html
+http://www.theargus.co.uk/the_argus/body__soul/HEALTH_FEATURES236.html
+http://www.theargus.co.uk/the_argus/body__soul/HEALTH_FEATURES57.html
+http://www.theargus.co.uk/the_argus/body__soul/HEALTH_FEATURES6.html
+http://www.theargus.co.uk/the_argus/body__soul/HEALTH_FEATURES62.html
+http://www.theargus.co.uk/the_argus/body__soul/HEALTH_FEATURES84.html
+http://www.thearmedcitizen.com/gunpages/glock27.htm
+http://www.theartconnection.org/
+http://www.theartgallery.com.au/Cezanne.html
+http://www.theartnewspaper.com/artlaw/artlaw.asp
+http://www.theasa.org/asa03/panels/saunders.htm
+http://www.theasc.com/magazine/dec97/titanic/chs/pg2.htm
+http://www.theassetmanager.com/seg.shtml
+http://www.theaterpro.com/chekhov.html
+http://www.theatlantic.com/doc/200104/brooks
+http://www.theatlantic.com/doc/200310/bowden
+http://www.theatlantic.com/doc/200401/fallows
+http://www.theatlantic.com/doc/200405u/int2004-05-25
+http://www.theatlantic.com/doc/200407/fallows
+http://www.theatlantic.com/doc/200409/schwarz
+http://www.theatlantic.com/doc/200409u/int2004-09-07
+http://www.theatlantic.com/doc/200410/schwarz
+http://www.theatlantic.com/doc/200411/langewiesche
+http://www.theatlantic.com/doc/200501/powers
+http://www.theatlantic.com/doc/200503u/nj_powers_2005-03-08
+http://www.theatlantic.com/doc/200503u/nj_schneider_2005-03-01
+http://www.theatlantic.com/doc/200503u/nj_taylor_2005-03-08
+http://www.theatlantic.com/doc/200505/henry
+http://www.theatlantic.com/doc/200507/carson
+http://www.theatlantic.com/doc/prem/200501/powers
+http://www.theatlantic.com/foreign/unwire/crossette2004-05-10.htm
+http://www.theatlantic.com/issues/2001/02/letters.htm
+http://www.theatlantic.com/issues/2001/09/fallows.htm
+http://www.theatlantic.com/issues/2002/02/beatty.htm
+http://www.theatlantic.com/issues/2002/02/epstein.htm
+http://www.theatlantic.com/issues/2002/04/hitchens.htm
+http://www.theatlantic.com/issues/2002/05/bowden.htm
+http://www.theatlantic.com/issues/2002/09/mann.htm
+http://www.theatlantic.com/issues/2003/01/flanagan.htm
+http://www.theatlantic.com/issues/2003/01/sotu-address.htm
+http://www.theatlantic.com/issues/2003/05/lewis.htm
+http://www.theatlantic.com/issues/2003/06/hitchens.htm
+http://www.theatlantic.com/issues/2003/07/rubin.htm
+http://www.theatlantic.com/issues/2004/03/fallows.htm
+http://www.theatlantic.com/issues/2004/03/flanagan.htm
+http://www.theatlantic.com/issues/2004/04/buckley.htm
+http://www.theatlantic.com/issues/38may/desales.htm
+http://www.theatlantic.com/issues/40jun/alger.htm
+http://www.theatlantic.com/issues/65dec/medicine.htm
+http://www.theatlantic.com/issues/86jun/beatty.htm
+http://www.theatlantic.com/issues/95sep/abortion/abortion.htm
+http://www.theatlantic.com/issues/96dec/cote/cote.htm
+http://www.theatlantic.com/issues/96feb/media/media.htm
+http://www.theatlantic.com/issues/96may/nitrous/nitrous.htm
+http://www.theatlantic.com/issues/97dec/rails.htm
+http://www.theatlantic.com/issues/97jul/computer.htm
+http://www.theatlantic.com/issues/98apr/dutta2.htm
+http://www.theatlantic.com/issues/98may/photo.htm
+http://www.theatlantic.com/issues/99jul/9907sudanslaves2.htm
+http://www.theatlantic.com/issues/99oct/9910drucker.htm
+http://www.theatlantic.com/politics/crime/wilson.htm
+http://www.theatlantic.com/politics/decision/gap2.htm
+http://www.theatlantic.com/politics/defense/moskos.htm
+http://www.theatlantic.com/politics/foreign/anarchy.htm
+http://www.theatlantic.com/politics/foreign/mearsh.htm
+http://www.theatlantic.com/politics/immigrat/kennf.htm
+http://www.theatlantic.com/politics/immigrat/miles2f.htm
+http://www.theatlantic.com/politics/race/fish.htm
+http://www.theatlantic.com/politics/race/steele.htm
+http://www.theatlantic.com/unbound/flashbks/blacked/washaw.htm
+http://www.theatlantic.com/unbound/interviews/int2002-09-05.htm
+http://www.theatlantic.com/unbound/poetry/soundings/jonson.htm
+http://www.theatrefx.com/
+http://www.theatrehistory.com/british/shakespeare003.html
+http://www.theatrehistory.com/irish/sheridan001.html
+http://www.theatremonkey.com/HAMMERSMITHbooking.htm
+http://www.theatremonkey.com/OPENAIRbooking.htm
+http://www.theaustralian.news.com.au/common/story_page/0,5744,12001739%255E16941,00.html
+http://www.theaustralian.news.com.au/sectionindex1/0,5745,au_weird%255E%255ETEXT,00.html
+http://www.theauthorsstudio.org/belgrave/
+http://www.theava.com/04/0407-iraq.html
+http://www.theaviary.com/s1295-30.shtml
+http://www.thebackpacker.com/articles/tipsandhow/art8.php
+http://www.thebakken.org/education/SciMathMN/time-space/time-space.htm
+http://www.thebalrogslair.com/coverage/104883324.shtml
+http://www.thebandblady.com/article12-b-and-b-inspections.html
+http://www.thebandfar.com/
+http://www.thebanker.com/
+http://www.thebanker.com/news/fullstory.php/aid/1653/Finding_business_opportunity,_whatever_the_setting.html
+http://www.thebanker.com/news/fullstory.php/aid/1719/Ready_for_stage_two_reforms.html
+http://www.thebanker.com/news/fullstory.php/aid/2110/Whatever_happened_to_joined-up_banking_.html
+http://www.thebaptistpage.com/Nquite/NQ_reading/Tozer_Pursuit/pursuit_06.htm
+http://www.thebatt.com/news/2003/04/28/FrontPage/Coalition.Arrests.Key.Players.In.Continued.Attempt.To.Govern-513721.shtml
+http://www.thebatt.com/news/2004/03/26/News/Students.Express.Concerns.Over.Proposed.Tuition.Hike-642435.shtml
+http://www.thebci.org/BCAWR1.htm
+http://www.thebeatlesarecoming.com/blog.html
+http://www.thebeautifulgame.co.uk/viewarticle.php?id=1369&type=15
+http://www.thebenefitnetwork.com/sample.htm
+http://www.thebestcasescenario.com/
+http://www.thebestoil.com/fastlube.htm
+http://www.thebirdfoodshop.co.uk/seedfeeders.html
+http://www.thebirdman.org/Index/Lbtn/Lbtn-LNeilSmithLtr.html
+http://www.thebirdman.org/Index/Relig/Relig-IsBirdmanTheAntichrist.html
+http://www.thebitchgirls.us/archives/2005_06.html
+http://www.theblackdog.net/linuspauling.htm
+http://www.theblackrepublican.net/
+http://www.thebluelizardmovie.com/services.html
+http://www.thebluestate.com/article05-08-04pentagon.htm
+http://www.thebmc.co.uk/indoor/comps/rules.htm
+http://www.thebody.com/Forums/AIDS/Couples/Archive/Practicing/Q142042.html
+http://www.thebody.com/Forums/AIDS/SafeSex/Archive/PreventionSexual/Q157441.html
+http://www.thebody.com/Forums/AIDS/Treatment/Current/Q24832.html
+http://www.thebody.com/encyclo/science_overview.html
+http://www.thebody.com/iapac/feb03/sustainable.html
+http://www.thebody.com/kaiser/2004/jul14_04/johns_hiv.html
+http://www.thebody.com/markking/richard.html
+http://www.thebody.com/pieters/strength.html
+http://www.thebody.com/pinf/wise_words/mar05/personal.html
+http://www.thebody.com/shernoff/article1.html
+http://www.thebody.com/shernoff/chemical.html
+http://www.thebody.com/shernoff/neuro.html
+http://www.thebody.com/tpan/septoct_03/positive_father.html
+http://www.thebodypositive.org/
+http://www.thebodyworker.com/oils.htm
+http://www.thebookcellar.com/main/keyword/?searchStr=Biology
+http://www.thebookplace.co.uk/
+http://www.thebookplace.com/
+http://www.thebostonchannel.com/employmentadvice/4549388/detail.html
+http://www.thebostonchannel.com/newscenter5/4612105/detail.html
+http://www.thebrainstrust.co.uk/pretzel.php
+http://www.thebreastcaresite.com/EEndCom/USAmoena/Homepage.nsf/0/fc43b96d3118c09005256ac200013e3f?OpenDocument
+http://www.thebreeze.org/supplements/Sports03/sports4.shtml
+http://www.thebritishmuseum.ac.uk/education/africa/further.html
+http://www.thebritishmuseum.ac.uk/gr/debate.html
+http://www.thebulletin.org/article.php?art_ofn=jf00panofsky
+http://www.thebulletin.org/article.php?art_ofn=jf99renner
+http://www.thebulletin.org/article.php?art_ofn=ma03stober
+http://www.thebulletin.org/article.php?art_ofn=ma99wright
+http://www.thebulletin.org/article.php?art_ofn=mj03prados
+http://www.thebulletin.org/article.php?art_ofn=nd01mueller
+http://www.thebulletin.org/article.php?art_ofn=nd03richelson
+http://www.thebulletin.org/article.php?art_ofn=sep90louria
+http://www.thebulletin.org/article.php?art_ofn=so99cumings
+http://www.thecall.co.uk/Scarborough.htm
+http://www.thecanadianencyclopedia.com/index.cfm?PgNm=TCE&ArticleId=A0003112
+http://www.thecanadianencyclopedia.com/index.cfm?PgNm=TCE&Params=M1ARTM0010408
+http://www.thecanadianencyclopedia.com/index.cfm?PgNm=TCE&Params=M1ARTM0012589
+http://www.thecanadianencyclopedia.com/index.cfm?PgNm=TCE&Params=M2ARTM0012699
+http://www.thecanadianencyclopedia.com/index.cfm?PgNm=TCE&Params=U1ARTU0001258
+http://www.thecannon.ca/viewpoint_details.php?id=591
+http://www.thecanteen.com/night2.html
+http://www.thecarbontrust.co.uk/energy/pages/events.asp
+http://www.thecarolinachannel.com/
+http://www.thecarpetbaggerreport.com/
+http://www.thecarpetbaggerreport.com/archives/4379.html
+http://www.thecarpetbaggerreport.com/archives/4428.html
+http://www.thecarpetbaggerreport.com/archives/4479.html
+http://www.thecatholicspirit.com/archives.php?article=574
+http://www.thecaveonline.com/APEH/thirtyyearswar.html
+http://www.thecbc.org/redesigned/research_display.php?id=58
+http://www.thecenter.ucla.edu/harassmid.html
+http://www.thechannelinsider.com/article2/0,1759,1676355,00.asp
+http://www.thechannelinsider.com/article2/0,1759,1676608,00.asp
+http://www.thecheers.org/article_720_Office_Space_and_the_Occasional_Well-Placed_Object_Lesson.html
+http://www.thechestore.com/site-original/CheWebSite7A/CheText/MayDaySpeech.html
+http://www.thechildrenstrust.org.uk/fundraising/events.html
+http://www.thechilli.com/articles/profiles/people/014_richardFarleigh.asp
+http://www.thechristianexpositor.org/page83.html
+http://www.thecitizennews.com/finding%20your%20folks/fyf2004/fyf040227.html
+http://www.thecitizennews.com/main/archive-000206/fp-04.html
+http://www.thecitymission.org/ministries.html
+http://www.thecitymission.org/youth.html
+http://www.theclaycenter.org/education/accessfund.asp?mode=text
+http://www.theclimategroup.org/index.php?pid=568
+http://www.thecoast.ca/letters.html
+http://www.thecoffeecritic.com/fusion3/html/getting_to_know_us.htm
+http://www.thecoh.org/christian_ed.htm
+http://www.thecollegetrack.com/stayingin/paying.html
+http://www.thecommonwealth.org/Templates/Internal.asp?NodeID=141330
+http://www.thecommunicationsbusiness.com/about.html
+http://www.thecornerhouse.org.uk/item.shtml?x=51967
+http://www.thecornerhouse.org.uk/item.shtml?x=52016
+http://www.thecosmicconnections.com/ChurchoftheCreator.html
+http://www.thecoughlincompany.com/clients.html
+http://www.thecouriermail.news.com.au/breakingnews/
+http://www.thecouriermail.news.com.au/businessowner/story/0,9998,11314119-36437,00.html
+http://www.thecouriermail.news.com.au/common/story_page/0,5936,12116693%255E3102,00.html
+http://www.thecowl.com/news/2002/10/10/WinterSportsPreview/Mens-Basketball.Basketball.Looks.To.Bounce.Back-295035.shtml
+http://www.thecreativeinvestor.com/
+http://www.thecreativeinvestor.com/ViewTopic39816-21.html
+http://www.thecrystalcityshops.com/docs/dining.html
+http://www.thecurrentonline.com/news/2002/11/04/ArtsAndEntertainment/The-Village.Idiots-314095.shtml
+http://www.thedailystar.com/news/stories/2002/10/14/crop.html
+http://www.thedailystar.com/news/stories/2002/11/15/grass.html
+http://www.thedailystar.com/news/stories/2004/01/21/bud.html
+http://www.thedailystar.com/news/stories/2004/10/07/board.html
+http://www.thedailystar.com/opinion/columns/2004/11/20/ems.html
+http://www.thedailystar.com/opinion/columns/simonson/
+http://www.thedailystar.com/sports/2001/08/21/spheat.html
+http://www.thedailystar.net/
+http://www.thedailystar.net/2004/04/03/
+http://www.thedailystar.net/law/200311/02/
+http://www.thedailystar.net/law/2004/04/02/queriess.htm
+http://www.thedailystar.net/law/2004/08/03/campaign.htm
+http://www.thedailystar.net/law/2004/10/01/queries.htm
+http://www.thedailystar.net/lifestyle/2004/09/03/centre.htm
+http://www.thedanteclub.com/canto.html
+http://www.thedatafarm.com/blog/default.aspx?date=2003-12-14
+http://www.theddt.com/viewnews.cgi?category=1&id=1104821640
+http://www.theddt.com/viewnews.cgi?category=1&id=1105925987
+http://www.thedeakins.com/Sellers.html
+http://www.thedebate.org/thedebate/headlines.asp
+http://www.thedenverchannel.com/employment/746355/detail.html
+http://www.thedenverchannel.com/news/3324715/detail.html
+http://www.thediabetesblog.com/
+http://www.thediabetesblog.com/bloggers/paul_chaney/
+http://www.thedigitalbits.com/articles/robertharris/harris070102.html
+http://www.thedigitalbits.com/articles/robertharris/harris102504.html
+http://www.thedigitalbits.com/editorial/bz100298.html
+http://www.thedigitalhub.com/property/developer.asp
+http://www.thedinkum.com/issues/dink49s.htm
+http://www.thedispensingoptician.com/OpticalConditions.htm
+http://www.thedissidentfrogman.com/dacha/001572.html
+http://www.thedmonline.com/vnews/display.v/ART/2004/12/02/41af19c2b2558
+http://www.thedmonline.com/vnews/display.v/ART/2005/01/25/41f649455d3f6
+http://www.thedmonline.com/vnews/display.v/ART/2005/03/08/422dc52086ba7
+http://www.thedmonline.com/vnews/display.v/ART/2005/06/16/42b19a338b5bd
+http://www.thedmonline.com/vnews/display.v/ART/2005/06/16/42b19a338b5bd?template=pda
+http://www.thedoctors.com/reference/1996-2002/hmolawsuits.asp
+http://www.thedoctors.com/risk/specialty/pathology/J3226.asp
+http://www.thedoctorsdoctor.com/diseases/carney_complex.htm
+http://www.thedoctorslounge.net/forums/backup/topic-849.html
+http://www.thedoctorwillseeyounow.com/articles/bioethics/medrecords_4/
+http://www.thedoctorwillseeyounow.com/articles/nutrition/coloncan_11/
+http://www.thedogwhisperer.co.uk/rachaels.htm
+http://www.thedonovan.com/
+http://www.thedonovan.com/archives/004119.html
+http://www.thedonovan.com/archives/004134.html
+http://www.thedonovan.com/archives/004148.html
+http://www.thedonovan.com/archives/week_2004_07_11.html
+http://www.thedrawingstudio.org/Faculty/Rush_essays/fall03.htm
+http://www.theduffhouseroyalgolfclub.co.uk/golf-scotland/course.php
+http://www.theeagle.com/businesstechnology/012305ponzi.php
+http://www.theeagle.com/faithvalues/columnists/012905chabot.php
+http://www.theeagle.com/health/021705hospice.php
+http://www.theeagle.com/spotlight/music/2004articles/040804sethjames.htm
+http://www.theeaglesview.org/church/ecceden.html
+http://www.theecologist.org/archive_detail.asp?content_id=316
+http://www.theecologist.org/article.html?article=484
+http://www.theeditors.com/pricing-info.htm
+http://www.theenglandproject.net/mt/archives/000897.html
+http://www.theenvironmentsite.org/Eco_Blog/
+http://www.theenvironmentsite.org/Eco_Blog/index.php?view=10
+http://www.theepochtimes.com/news/5-1-20/25881.html
+http://www.theexecutivescloset.com/Jazzed_Up_Business_Casual.htm
+http://www.theexplorersguild.com/
+http://www.thefabricator.com/Articles/Fabricating_Exclusive.cfm?ID=359
+http://www.thefabricator.com/Articles/Tube_and_Pipe_Article.cfm?ID=23
+http://www.thefarmer.co.zw/headlines_18_march_2002.htm
+http://www.thefeature.com/article?articleid=100109
+http://www.thefeature.com/article?articleid=101703
+http://www.thefellowship.info/News/040614Prayer.icm
+http://www.theferrett.com/showarticle.php?Rant=39
+http://www.thefigtree.org/summer05images/CheneyUMCmission.html
+http://www.thefinancials.com/bookglossary.html
+http://www.thefineline.org/wtc/
+http://www.thefire.org/index.php/article/5248.html
+http://www.thefire.org/index.php/article/5382.html
+http://www.thefire.org/index.php/article/5461.html
+http://www.thefire.org/index.php/article/5632.html
+http://www.thefire.org/index.php/article/5819.html
+http://www.thefire.org/index.php/case/647.html
+http://www.thefire.org/index.php/torch/
+http://www.thefiringline.com/Misc/library/kates.html
+http://www.thefishbowl.com/fishbowl/realdata/wickedly-perfect-012005.php
+http://www.theflashgames.com/Fighting_Games.html
+http://www.theflourishingcompany.com/pages/vineLISTENING.htm
+http://www.thefoodbank.ca/2004_thanksgiving_fooddrive.shtml
+http://www.thefoodemporiumshoponline.com/termsAndConditions.aspx
+http://www.thefoodsection.com/foodsection/dining_out/
+http://www.thefootballforum.net/forums/lofiversion/index.php?t39949.html
+http://www.theforce.net/books/bookcovers/
+http://www.thefourthrail.com/reviews/critiques/060605/quickcritiques.shtml
+http://www.thefourthrail.com/reviews/critiques/071502/sidekicksthesubstitute.shtml
+http://www.thefreecountry.com/utilities/partitioneditors.shtml
+http://www.thefreedictionary.com/
+http://www.thefreedictionary.com/affinity
+http://www.thefreedictionary.com/colour
+http://www.thefreedictionary.com/economic
+http://www.thefridayproject.co.uk/talk/archive/index.php/t-1419.html
+http://www.thefrontlines-hlg.com/
+http://www.thefullercv.com/careers/redundancy.asp
+http://www.thefurrymonkey.co.uk/jokes_cancer.htm
+http://www.thefurrymonkey.co.uk/month_april04.htm
+http://www.thefurrymonkey.co.uk/picc.htm
+http://www.thefurtrapper.com/astorians.htm
+http://www.thefutoncritic.com/cgi/gofuton.cgi?action=showatch&id=crossing_over
+http://www.thefutoncritic.com/cgi/pr.cgi?id=20050616cbs01
+http://www.thefword.org.uk/features/2002/04/fighting_back_self_defence_for_women_girls
+http://www.thegaltherald.com/sport64.shtml
+http://www.thegamehunter.co.uk/casino-review/all-uk-casino-reviews.html
+http://www.thegardenhelper.com/terrarium.html
+http://www.thegateway.org/browse/makesearch?past=keywords%7CNASA%7C%7Cyes%7CNASA%7C*keywords%7CScale%7C%7Cyes%7CScale%7C*
+http://www.thegeezerbrigade.com/
+http://www.thegenealogytree.com/howard-cuzzins/earliest-knowns.htm
+http://www.thegibraltarmagazine.com/article_detail2.asp?id=13
+http://www.thegibraltarmagazine.com/gibconnect.asp
+http://www.thegillerprize.ca/newsroom.htm
+http://www.theglasgowstory.com/storyf.php
+http://www.theglassceiling.com/looking2/lo1_36.htm
+http://www.theglasslab.com/
+http://www.theglazine.com/
+http://www.theglimpse.com/newsite/viewarticle2.asp?articleid=3
+http://www.theglitteringeye.com/archives/000509.html
+http://www.theglobalfund.org/en/about/board/fifth/openingspeechfeachem/
+http://www.theglobalfund.org/en/about/board/fourth/openingspeechfeachem/
+http://www.theglobalfund.org/en/about/road/history/default.asp
+http://www.theglobalist.com/DBWeb/StoryId.aspx?StoryId=2955
+http://www.theglobalist.com/DBWeb/StoryId.aspx?StoryId=3166
+http://www.theglobalist.com/DBWeb/StoryId.aspx?StoryId=3805
+http://www.theglobalist.com/DBWeb/StoryId.aspx?StoryId=3954
+http://www.theglobalist.com/DBWeb/StoryId.aspx?StoryId=4270
+http://www.theglobalsite.ac.uk/justpeace/110shaw.htm
+http://www.theglobeandmail.com/series/primeministers/
+http://www.theglobeandmail.com/servlet/ArticleNews/TPStory/LAC/20010308/BTECON/TPTravel/
+http://www.theglobeandmail.com/servlet/ArticleNews/TPStory/LAC/20050618/ROMANTIC18/TPTravel/?pageRequested=all
+http://www.theglobeandmail.com/servlet/ArticleNews/freeheadlines/LAC/20050616/CFL16/sports/Sports
+http://www.theglobeandmail.com/servlet/story/LAC.20050616.CFL16/TPStory/TPSports/
+http://www.theglobeandmail.com/servlet/story/RTGAM.20050209.wxsrrrspsmall09/BNStory/specialSmallBusiness/
+http://www.theglobeandmail.com/servlet/story/RTGAM.20050518.wcomment0519/BNStory/National/
+http://www.theglobeandmail.com/servlet/story/RTGAM.20050613.wjackson0613/BNStory/International/
+http://www.theglobeandmail.com/servlet/story/RTGAM.20050615.wxwillis15/BNStory/Entertainment
+http://www.theglobeandmail.com/servlet/story/RTGAM.20050617.wxkids0618/BNStory/specialTravel/?pageRequested=all
+http://www.thegoodsleepstore.com/insomnia_cure_natural_sleep_aid_product_info.htm
+http://www.thegoodsteward.com/article.php3?articleID=885
+http://www.thegreatstory.org/Bigpicture1.html
+http://www.thegreenbutton.com/default.aspx
+http://www.thegsba.org/
+http://www.theguardians.com/space/untreaties.htm
+http://www.thegunzone.com/fff.html
+http://www.thegunzone.com/rec.guns-charter.html
+http://www.thegunzone.com/sob_is_bad.html
+http://www.thehaca.com/Manuals/FullPSoDtext.htm
+http://www.thehackworths.com/archives/category/preggo-land/
+http://www.theharrowgroup.com/articles/20030616/20030616.htm
+http://www.theharrowgroup.com/articles/20030915/20030915.htm
+http://www.theharrowgroup.com/articles/20031027/20031027.htm
+http://www.thehearingaide.com/reviews/comic_reviews/s/supermanredson/174.php
+http://www.thehelper.net/forums/forumdisplay.php?s=&forumid=16
+http://www.thehelper.net/forums/showthread.php?goto=lastpost&t=13465
+http://www.thehelper.net/forums/showthread.php?p=88544
+http://www.thehelper.net/forums/showthread.php?p=88544&mode=linear
+http://www.thehelper.net/forums/showthread.php?p=88544&mode=threaded
+http://www.thehelper.net/forums/showthread.php?s=&threadid=13465
+http://www.thehelper.net/forums/showthread.php?t=12567&goto=nextnewest
+http://www.thehelper.net/forums/showthread.php?t=13465
+http://www.thehelpgroup.org/training.htm
+http://www.thehighroad.org/library/acron.html
+http://www.thehighsign.net/archives/review/city_of_god.html
+http://www.thehindubusinessline.com/2005/02/05/07hdline.htm
+http://www.thehindubusinessline.com/businessline/blbby/stories/2004042700070400.htm
+http://www.thehindubusinessline.com/businessline/iw/2001/07/22/stories/0222b101.htm
+http://www.thehindubusinessline.com/iw/2003/10/12/stories/2003101200431400.htm
+http://www.thehindubusinessline.com/mentor/2005/01/10/stories/2005011000401100.htm
+http://www.thehindubusinessline.com/praxis/pr0202/02020740.htm
+http://www.thehistorynet.com/acw/bl_camp_wlliam_Penn/
+http://www.thehistorynet.com/vn/blmontagnardstories/
+http://www.thehistorynet.com/we/blruffian/
+http://www.thehollywoodnews.com/dvd/090503.php
+http://www.thehorsehospital.com/
+http://www.thehottestcoed.com/boygirl.php
+http://www.thehoya.com/sports/120704/sports5.cfm
+http://www.thehtd.org/travel/destination.asp?DocID=28
+http://www.thehumanist.org/humanist/articles/dawkins.html
+http://www.theind.com/news2.asp?CID=-951056581
+http://www.theindependent.com/warm/chap2.shtml
+http://www.theinquirer.net/?article=20782
+http://www.theinquirer.net/Default.aspx?article=20782
+http://www.theinquirer.net/default.aspx?article=20782
+http://www.theinstitute.ieee.org/inst_art2.jsp?isno=08991&section=20
+http://www.theinstitute.ieee.org/inst_art2.jsp?isno=09991&section=20
+http://www.theinterim.com/2002/april/bloedow.html
+http://www.theinternetparty.org/comments/index.php?cid=pol20040329000
+http://www.theintrovertzcoach.com/how_i_healed_myself.html
+http://www.theiob.org.uk/press/speeches/role.html
+http://www.theirc.org/index.cfm/wwwID/2130
+http://www.thejacastaproject.co.uk/
+http://www.thejackcat.com/AC/Culture/Dereth/Wardiel.htm
+http://www.thejaggythistle.co.uk/oldnews2001.htm
+http://www.thejakartapost.com/detailheadlines.asp?fileid=20050623.A07&irec=6
+http://www.thejournalnews.com/turf/
+http://www.thejoyofshards.co.uk/tips.shtml
+http://www.thekastle.com.au/storiesheadmist.html
+http://www.thekeep.org/~kunoichi/kunoichi/themestream/camroadtrip.html
+http://www.theknot.com/ch_article.html?Object=AI91022171357&keyword=GUESTS%20%26%20INVITATIONS&channel=planning
+http://www.thelaboroflove.com/forum/loss/bereavedmoms.html
+http://www.thelaboroflove.com/pregnancy/journals/Forum340/HTML/000038.html
+http://www.thelantern.com/news/2004/04/07/Sports/Womens.Golf.Looks.To.Big.Ten.Tourny.After.Long.Season-653681.shtml
+http://www.thelarper.org/issue_autumn_2002/lightscamera.htm
+http://www.thelastdance.org/
+http://www.thelastdance.org/comments.html
+http://www.thelearningyard.com/TheSwing.html
+http://www.theledger.com/apps/pbcs.dll/article?AID=/20041022/MAGAZINE/41020001/1249
+http://www.theledger.com/apps/pbcs.dll/article?AID=/20050126/NEWS/501260390/1178
+http://www.theledger.com/apps/pbcs.dll/article?Date=20050613&Category=ZNYT02&ArtNo=506130386&SectionCat=&Template=printart
+http://www.theleftcoaster.com/
+http://www.theleftcoaster.com/archives/000054.html
+http://www.theleftcoaster.com/archives/000347.php
+http://www.theleftcoaster.com/archives/000440.php
+http://www.theleftcoaster.com/archives/001091.php
+http://www.theleftcoaster.com/archives/002162.php
+http://www.theleftcoaster.com/archives/002261.html
+http://www.theleftcoaster.com/archives/002793.php
+http://www.theleftcoaster.com/archives/003757.html
+http://www.theleftcoaster.com/archives/004597.php
+http://www.theleftcoaster.com/archives/004609.php
+http://www.theleftcoaster.com/mt/mt-comments.cgi?entry_id=2019
+http://www.thelighthouseforeducation.co.uk/teacherrecruitment/directorateoflcc.htm
+http://www.thelinco.com/ThelinFAQ.htm
+http://www.thelinkup.org/integrity16.html
+http://www.thelisteningear.net/History.shtml
+http://www.thelivingwordtbc.com/1cor12.htm
+http://www.thelordmayorsappeal.org/html/events_all.html
+http://www.thelostys.com/immigrants_who_returned_home.html
+http://www.thelowryhotel.com/checkin.shtml
+http://www.theludwigs.com/Halloween/halloween.html
+http://www.thelutheran.org/0502/page42.html
+http://www.thelwordonline.com/gay_lesbian_hit_TV.shtml
+http://www.thelynnfund.org/art1.html
+http://www.themacobserver.com/article/2005/01/28.3.shtml
+http://www.themacobserver.com/comments/commentindivdisplay.shtml?id=27740
+http://www.themacobserver.com/stockwatch/2000/09/01.1.shtml
+http://www.themaninblue.com/writing/perspective/2004/09/
+http://www.themanufacturer.com/us/detail.html?contents_id=2904
+http://www.themanufacturer.com/us/detail.html?contents_id=3421
+http://www.themanwhofellasleep.com/gossip.html
+http://www.themarketvushow.com/forum/
+http://www.themasterspen.com/archives/000313.html
+http://www.themathlab.com/dictionary/nwords/nwords.htm
+http://www.themediadrop.com/archives/001546.php
+http://www.themedicinewheel.net/shorts/5pounds.html
+http://www.themediweb.net/orthopaedics/infosheets_html/inpatients/Hip%20fracture%20-%20Hemiarthroplasty.htm
+http://www.themeetingplace.com.au/articles/relationship/moving-on-after-an-abusive-relationship.asp
+http://www.thememoryhole.org/911/bush-911.htm
+http://www.thememoryhole.org/mil/pilot-speed.htm
+http://www.themepartiesnmore.com/generic330.html
+http://www.themercury.co.za/index.php?fArticleId=2362071&fSectionId=336&fSetId=515
+http://www.themercury.co.za/index.php?fSectionId=336&fArticleId=2362071
+http://www.themercury.com.au/
+http://www.themiamiproject.org/x558.xml
+http://www.themightygeek.com/mtarchives/000147.php
+http://www.themightygeek.com/mtarchives/2002_11.php
+http://www.themightymjd.com/articles/sundays20042005/championshipsunday.htm
+http://www.themightyorgan.com/features_geese.html
+http://www.themightyorgan.com/view_wootton.html
+http://www.themilkfactory.co.uk/interviews/nicoletteiw.htm
+http://www.themilkyway.co.uk/
+http://www.themilpitaspost.com/Stories/0,1413,93~3416~2912751,00.html
+http://www.themilwaukeechannel.com/
+http://www.theministryoffitness.com/mof/library/articles/article20.htm
+http://www.theminnesotareview.org/ns45/leslie.htm
+http://www.themissingpiece.com/
+http://www.themmob.com/letterseditors.html
+http://www.themode.com/listings/a203/cat1
+http://www.themode.com/listings/a561/cat1
+http://www.themoderatevoice.com/posts/1111644812.shtml
+http://www.themoderatevoice.com/posts/1117438632.shtml
+http://www.themoderatevoice.com/posts/1118866005.shtml
+http://www.themodernreligion.com/comparative/christ/christianity_santa.htm
+http://www.themodernword.com/beckett/beckett_quotes.html
+http://www.themodernword.com/mulholland_drive.html
+http://www.themoneybag.com/vb/archive/index.php/t-3744.html
+http://www.themoneybag.com/vb/showthread.php?t=3744&page=29&pp=15
+http://www.themoneybag.com/vb/showthread.php?t=3744&page=3
+http://www.themoneybag.com/vb/showthread.php?t=3744&page=3&pp=15
+http://www.themoorings.org/life/basics/giving.html
+http://www.themorningnews.org/archives/how_to/how_to_write_a_thankyou_note.php
+http://www.themorningnews.org/archives/new_york_new_york/new_york_diary_dean_kowalski.php
+http://www.themorningnews.org/archives/new_york_new_york/the_letters_of_gary_benchley_rock_star_working_the_demo.php
+http://www.themorningnews.org/archives/personalities/letters_from_london_royal_memories.php
+http://www.themorningnews.org/archives/personalities/my_father_speaks_another_language.php
+http://www.themorningnews.org/archives/personalities/to_the_teen_beat_of_his_own_drummer.php
+http://www.themorningnews.org/tob/
+http://www.themoscowtimes.com/stories/2005/01/14/012.html
+http://www.themoscowtimes.com/stories/2005/01/21/007.html
+http://www.themoscowtimes.com/stories/2005/01/28/007.html
+http://www.themovieblog.com/archives/2005/01/hey_chris_rock_shut_your_mouth.html
+http://www.themoviespoiler.com/Spoilers/sugarandspice.html
+http://www.themoviespoiler.com/Spoilers/swordfish.html
+http://www.themovingwall.org/sites/Kennett/front.html
+http://www.themusicbox.co.uk/xmas.html
+http://www.themusicedge.com/moxie/news/featartist/walking-concert-walter-sc.shtml
+http://www.themuslimmatrimonial.co.uk/
+http://www.thenakedscientists.com/forum/topic.asp?TOPIC_ID=1209&whichpage=3
+http://www.thenakedscientists.com/forum/topic.asp?TOPIC_ID=1209&whichpage=4
+http://www.thenassauguardian.com/social_community/310580572590409.php
+http://www.thenation.com/blogs/edcut?bid=7&pid=3152
+http://www.thenation.com/capitalgames/index.mhtml?bid=3&pid=1336
+http://www.thenation.com/capitalgames/index.mhtml?bid=3&pid=2066
+http://www.thenation.com/doc.mhtml%3Fi=19991122&s=alterman2
+http://www.thenation.com/doc.mhtml%3Fi=20000214&s=exchange
+http://www.thenation.com/doc.mhtml%3Fi=20010305&s=kim
+http://www.thenation.com/doc.mhtml%3Fi=20020204&s=glass20020124
+http://www.thenation.com/doc.mhtml%3Fi=20020225&s=cooper20020211
+http://www.thenation.com/doc.mhtml%3Fi=20041011&s=leaver
+http://www.thenation.com/doc.mhtml%3Fi=20041108&s=editors
+http://www.thenation.com/doc.mhtml%3Fi=20041213&s=schuman
+http://www.thenation.com/doc.mhtml%3Fi=20050418&s=pollitt
+http://www.thenation.com/doc.mhtml%3Fi=20050613&s=scahill
+http://www.thenation.com/doc.mhtml%3Fi=20050711&s=moberg
+http://www.thenation.com/doc.mhtml?i=20000214&s=lynas
+http://www.thenation.com/doc.mhtml?i=20021223&s=ehrenreich
+http://www.thenation.com/doc.mhtml?i=20040927&s=baker
+http://www.thenation.com/doc.mhtml?i=20050613&s=scahill
+http://www.thenation.com/docprint.mhtml?i=20041122&s=sifry
+http://www.thenation.com/failsafe/index.mhtml?bid=2&pid=163
+http://www.thenational.com.pg/0204/column6.htm
+http://www.thenational.com.pg/0204/letter7.htm
+http://www.thenational.com.pg/0506/nation12.htm
+http://www.thenationalanthemproject.org/messages/141.html
+http://www.thenationalanthemproject.org/messages/247.html
+http://www.thenationalanthemproject.org/messages/58.html
+http://www.thenationaldebate.com/blog/
+http://www.thenationaldebate.com/blog/archives/2005/01/faith_without_w.html
+http://www.thenaturalhistory.com/
+http://www.thenaturalhome.com/compost.html
+http://www.thenetride.com.au/tsdp/site_equip.asp
+http://www.thenetworkadministrator.com/EuropeanParliament.htm
+http://www.theneutrinoeffect.com/
+http://www.thenew971.com/view.php?pid=227
+http://www.thenewagesite.com/jjdewey/initiation/9.php
+http://www.thenewagesite.com/jjdewey/molecular/chapter26.php
+http://www.thenewamerican.com/tna/1997/vo13no07/vo13no07_justice.htm
+http://www.thenewamerican.com/tna/2000/01-31-2000/vo16no03_cider_house.htm
+http://www.thenewatlantis.com/
+http://www.thenewatlantis.com/archive/7/soa/voting.htm
+http://www.thenewparentsguide.com/
+http://www.thenewstribune.com/sports/story/4626960p-4295963c.html
+http://www.thenhf.com/eu_issues_21.html
+http://www.theninemuses.net/stuff/diary-nobby5e.html
+http://www.thenocturnes.com/resources/tipstricks5.html
+http://www.thenorm.com/privacy/
+http://www.thenutfarm.com.au/farmwalk.htm
+http://www.theoaklandpress.com/stories/041805/pro_20050418022.shtml
+http://www.theobleckmann.com/performance.html
+http://www.theocracywatch.org/campaigns_elections_study.htm
+http://www.theocracywatch.org/faith_base.htm
+http://www.theocracywatch.org/rel_inst_methodist_bishop.htm
+http://www.theocracywatch.org/schools2.htm
+http://www.theocracywatch.org/separation_church_state2.htm
+http://www.theodora.com/flags.html
+http://www.theodora.com/flags/
+http://www.theodoreroosevelt.org/life/TRandNavy.htm
+http://www.theodoreroosevelt.org/life/biopictures.htm
+http://www.theodoreroosevelt.org/life/conservation.htm
+http://www.theoldtimes.com/review0803.html
+http://www.theologos.net/e-books/how2receive.html
+http://www.theolympian.com/apps/pbcs.dll/article?AID=/20050507/OPINION01/505070315/1045/OPINION
+http://www.theolympian.com/home/specialsections/NotesfromtheER/20040531/64031.shtml
+http://www.theonering.com/docs/18895.html
+http://www.theonering.net/ringers/oldsite/news_archive_dec.html
+http://www.theonionavclub.com/feature/index.php?issue=3417&f=1
+http://www.theopenroad.co.uk/
+http://www.theorator.com/bills109/hr55.html
+http://www.theory.caltech.edu/people/preskill/ph229/
+http://www.theory.org.uk/but-int1.htm
+http://www.theory.org.uk/ctb-x1.htm
+http://www.theory.org.uk/effects.htm
+http://www.theosophy-nw.org/theosnw/books/archaic/archaic1.htm
+http://www.theosophy-nw.org/theosnw/science/prat-bra.htm
+http://www.theosophy-nw.org/theosnw/world/asia/as-elo3.htm
+http://www.theotherpages.org/poems/crane02.html
+http://www.theotherpages.org/poems/faq.html
+http://www.theotherpages.org/poems/olney03.html
+http://www.theotherpages.org/poems/swine01.html
+http://www.theotherpages.org/quote-02a.html
+http://www.theoutdoorquest.com/Articles/new_page_5.htm
+http://www.theoxbow.com/oxbow_content/d02_04.htm
+http://www.theozfiles.com/air_marshall_george_jones.html
+http://www.theparisreview.com/viewmedia.php/prmMID/5440
+http://www.thepatientsvoice.com/press%20releases/Project%20GHB%20Award.htm
+http://www.thepaulfoundation.org/scholarships.htm
+http://www.thepennineway.co.uk/
+http://www.thepensionservice.gov.uk/
+http://www.thepensionservice.gov.uk/atoz/atozdetailed/spdeferral.asp
+http://www.thepeoplealliance.co.uk/media.htm
+http://www.thepercy.com/history.html
+http://www.theperlreview.com/Interviews/mjd-hop-20050407.html
+http://www.thepersecution.org/nr/2000/oct2000.html
+http://www.thepetcenter.com/gen/dental.html
+http://www.thepetcenter.com/gen/hw.html
+http://www.thepetcenter.com/imtop/stone.html
+http://www.thepetcenter.com/pha/srh.html
+http://www.thepetcenter.com/wai/poi_Be_Prepared.html
+http://www.thepetitionsite.com/takeaction/841589646
+http://www.thepetitionsite.com/takeaction/941996369
+http://www.thepetpress-la.com/articles/burtward.htm
+http://www.thepinkspiders.com/lyrics.php
+http://www.thepipingcentre.co.uk/magazine/news-jan99-townpipers.html
+http://www.thepokerforum.com/rakeandtime.htm
+http://www.thepollenshop.co.uk/who_we_are/access_statement.asp
+http://www.thepollenshop.co.uk/who_we_are/policies/access_policy.asp
+http://www.thepoorman.net/archives/003653.html
+http://www.theppsc.org/Archives/NightShift.Survival/Tired_Cops.htm
+http://www.thepracticalgardener.com/quicktips.asp
+http://www.thepressdesk.com/britishlegion/pressrelease.php?releaseid=3216&tabid=2465
+http://www.thepriceofliberty.org/04/03/25/ladylib.htm
+http://www.thepriceofliberty.org/04/03/26/henry.htm
+http://www.thepriceofliberty.org/04/04/26/ladylib.htm
+http://www.thepriceofliberty.org/04/10/22/henry.htm
+http://www.theprimeone.com/archives/2003/10/
+http://www.theprizewinner.com/holt_236.html
+http://www.theprofileonline.com/news/2004/10/29/Opinion/Setting.The.Record.Straight-785975.shtml
+http://www.theprogram.net.au/featuresSub.asp?id=1783&state=1
+http://www.thepublicinterest.com/archives/2001summer/article2.html
+http://www.theranger.co.uk/bsp/10130/ews.asp?DBID=103-281-013-010&iPage=1&id=1923
+http://www.therant.us/staff/lewis/billy_we_hardly_knew_ye.htm
+http://www.therapies.com/testimonials.htm
+http://www.therapistlocator.net/
+http://www.there.com/pressDigitalGirl_060103.html
+http://www.theredmill.net/red-mill-monthly-specials.html
+http://www.therefinersfire.org/charles_testimony.htm
+http://www.theregenttheatre.org/cinefest/shorts04.html
+http://www.theregister.co.uk/2001/11/30/ir35_defence_strategies_keeping/
+http://www.theregister.co.uk/2003/11/07/open_source_not_ready/
+http://www.theregister.co.uk/2004/12/27/us_invetigates_airglitch/
+http://www.theregister.co.uk/2005/01/19/browne_biometric_passports/
+http://www.theregister.co.uk/2005/01/21/unintended_consequences/
+http://www.theregister.co.uk/2005/01/26/microsoft_pirate/
+http://www.theregister.com/2003/11/20/domain_owner_seeks_to_revolutionise/
+http://www.theregister.com/2004/12/27/us_invetigates_airglitch/
+http://www.thereminworld.com/forum.asp?cmd=p&T=107&F=1
+http://www.therestofus.org/factsheets/kenlay.html
+http://www.therevealer.org/index.php
+http://www.therevival.co.uk/articles/why_britishwomen_turnto_islam.htm
+http://www.therhondda.co.uk/general/language.html
+http://www.therhondda.co.uk/riots/next_step.html
+http://www.therightchristians.org/?q=node/view/182
+http://www.theromanceclub.com/shortstories/short1.htm
+http://www.theross.org/gpff_entry.php?gid=8
+http://www.thersa.org/rsa/disclaimer.asp
+http://www.thesakeofargument.com/
+http://www.thesavagefiles.com/tripjournal%5C11-04.htm
+http://www.thesavvytraveller.com/happening/reading_group/previous_books.htm
+http://www.theschepens.org/faculty/damore/general_info.htm
+http://www.theschepens.org/protein_in_eye_112702.htm
+http://www.thescienceconnection.net/New_SciConnection/shockingtruth.htm
+http://www.thesciencefair.com/guidelines.html
+http://www.thescreamonline.com/technology/imageframe/imageframe.html
+http://www.thescuderia.net/News/October2004/1.shtml
+http://www.theserverside.com/articles/article.tss?l=AdventnetJMX
+http://www.theserverside.com/articles/article.tss?l=Prepared-Statments
+http://www.theserverside.com/articles/article.tss?l=RedirectAfterPost
+http://www.theserverside.com/tss?service=direct/0/NewsThread/threadViewer.toggleShowNoisy2&sp=l22357&sp=T
+http://www.theserverside.net/news/thread.tss?thread_id=23319
+http://www.theserverside.net/news/thread.tss?thread_id=27994
+http://www.thesession.org/discussions/display.php/2189
+http://www.thesession.org/discussions/display.php/5171
+http://www.theseverts.net/German.htm
+http://www.thesextantgroup.com/truenorth/v2i3.htm
+http://www.thesharks.co.za/shark_of_past/johnallan.htm
+http://www.theshiftedlibrarian.com/
+http://www.theshiftedlibrarian.com/2003/01/26.html
+http://www.thesimon.com/magazine/articles/telling_stories/0771_poker_night_american_virtue_takes_agreeable_amount_vice.html
+http://www.thesite.org/healthandwellbeing/fitnessanddiet/fitness/staymotivated
+http://www.thesite.org/homelawandmoney/askthesiteqandas/housingqandas/hopingforahome
+http://www.thesite.org/sexandrelationships/couples/lifeasacouple/leavingacontrollingpartner
+http://www.thesite.org/sexandrelationships/familyandfriends/family/turningintoyourparents
+http://www.thesite.org/workandstudy/gettingajob/applications/bodylanguageforinterviews
+http://www.thesleepcentre.co.uk/news.htm
+http://www.thesmallholdingcentre.co.uk/Ffos%20Ddu%205217/Ffos%20Ddu%205217.html
+http://www.thesmartmanager.com/smartcase/SmartICase2/champion2.html
+http://www.thesoundbroker.com/buttkicker.htm
+http://www.thesoutherncross.co.za/features/sex_trade.htm
+http://www.thespaceplace.com/shuttle/missions/sts-99.html
+http://www.thespacereview.com/
+http://www.thespacereview.com/article/274/1
+http://www.thespacereview.com/article/293/1
+http://www.thespacereview.com/article/309/1
+http://www.thespacereview.com/article/365/1
+http://www.thespacereview.com/article/366/1
+http://www.thespacereview.com/article/376/1
+http://www.thespacereview.com/article/379/1
+http://www.thespacereview.com/article/394/1
+http://www.thespacereview.com/article/84/1
+http://www.thespankingcorner.com/stories/diane/family_matters_08.html
+http://www.thespinningimage.co.uk/article/displayarticle.asp?articleid=52
+http://www.thespoke.net/MyBlog/AlfredTwo/MyBlog.aspx
+http://www.thesportjournal.org/2002Journal/Vol5-No3/Special_Edition/drop.asp
+http://www.thesportjournal.org/2003Journal/Vol6-No2/nasp.asp
+http://www.thesportjournal.org/2004Journal/Vol7-No1/graham.asp
+http://www.thesprout.net/001/graft/graft08.htm
+http://www.thesprout.net/003/newsinbrief/newsinbrief01.htm
+http://www.thesrt.org.uk/forum/messages/1244/15655.html?0
+http://www.thestaffordhotel.co.uk/other/biography.html
+http://www.thestage.co.uk/connect/howto/parent.php
+http://www.thestandard.com.hk/..%5Ccolumn_detail_frame_col_wkend.cfm?colid=1&articleid=359
+http://www.thestandard.com.hk/column_detail_frame_col.cfm?colid=1&articleid=359
+http://www.thestandard.com.hk/news_detail_frame.cfm?articleid=45675&intcatid=1
+http://www.thestandard.com.hk/news_detail_frame.cfm?articleid=46127&intcatid=1
+http://www.thestar.co.za/index.php?fArticleId=2394759&fSectionId=233&fSetId=505
+http://www.thestarhouse.org/SSBeacher.html
+http://www.thestate.com/mld/thestate/business/9558535.htm
+http://www.thestate.com/mld/thestate/living/11525948.htm
+http://www.thestate.com/mld/thestate/news/special_packages/growth/11722067.htm
+http://www.thestatus.com/index.cfm?fa=faq&sid=0
+http://www.thestreet.com/_yahoo/mutualfundmonday/mutualfundmondaygg/10229583.html?cm_ven=YAHOO&cm_cat=FREE&cm_ite=NA
+http://www.thestreet.com/mutualfundmonday/mutualfundmondaygg/10229583.html
+http://www.thestudentroom.co.uk/search.php?do=finduser&u=26229
+http://www.thestudentroom.co.uk/showthread.php?goto=lastpost&t=86232
+http://www.thestudentroom.co.uk/t86232.html
+http://www.thesuccessfulinvestor.com/
+http://www.thesuccessfulparent.com/articles/adolescence.htm
+http://www.thesun.co.uk/article/0,,2002390000-2005081656,00.html
+http://www.thesundaymail.news.com.au/sectionindex1/0,5934,Sunday+Extra%5E%5ETEXT%5Ethesundaymail,00.html
+http://www.thesupernaturalworld.co.uk/forum/index.php?showtopic=6425&mode=linearplus
+http://www.thesupportnetwork.com/programs_and_services/211Facts.htm
+http://www.thetablet.co.uk/cgi-bin/register.cgi/citw-past-00234
+http://www.thetablet.co.uk/cgi-bin/register.cgi/tablet-00078
+http://www.thetablet.co.uk/cgi-bin/register.cgi/tablet-00107
+http://www.thetablet.co.uk/cgi-bin/register.cgi/tablet-00376
+http://www.thetablet.co.uk/cgi-bin/register.cgi/tablet-00659
+http://www.thetalentshow.org/
+http://www.thetalentshow.org/archives/000972.html
+http://www.thetalentshow.org/archives/001471.html
+http://www.thetalentshow.org/archives/001841.html
+http://www.thetalentshow.org/archives/001842.html
+http://www.thetalkingdrum.com/prison.html
+http://www.theteacherscorner.net/calendars/marchideas.htm
+http://www.theteachersguide.com/ChristmasThemes.htm
+http://www.thetearsofthings.net/archives/000319.html
+http://www.theteatable.com/Merchant2/merchant.mvc?Screen=links
+http://www.thetechlounge.com/article.php?directory=beyond_megapixels_part_2
+http://www.thetelegram.com/history.aspx
+http://www.thetentacle.com/author.cfm?MyAuthor=23
+http://www.thetforduk.co.uk/bidwell.htm
+http://www.thetherapist.com/DrNotes_060598.html
+http://www.thetherapist.com/DrNotes_071897.html
+http://www.thetherapist.com/DrNotes_080798.html
+http://www.thetherapist.com/DrNotes_092598.html
+http://www.thetherapist.com/DrNotes_111398.html
+http://www.thetherapist.com/TCTSeason1/DrNotes_011797.html
+http://www.thetherapist.com/TCTSeason1/DrNotes_021497.html
+http://www.thetherapist.com/TCTSeason1/DrNotes_022897.html
+http://www.thetherapist.com/TCTSeason1/DrNotes_031497.html
+http://www.thetherapist.com/TCTSeason1/DrNotes_071996.html
+http://www.thetherapist.com/TCTSeason1/DrNotes_072696.html
+http://www.thetherapist.com/TCTSeason1/DrNotes_102596.html
+http://www.thethousand.net/archives/2004_06.php
+http://www.thetimes100.co.uk/case_study.php?cID=11&csID=70
+http://www.thetimes100.co.uk/case_study.php?cID=11&csID=70&pID=7
+http://www.thetimes100.co.uk/case_study.php?cID=11&csID=70&pID=9
+http://www.thetimes100.co.uk/theory/theory.php?tID=243
+http://www.thetimes100.co.uk/theory/theory.php?tID=344
+http://www.thetimesherald.com/news/stories/20050206/localnews/1960551.html
+http://www.thetransformers.net/member.asp?MID=147
+http://www.thetravelinsider.info/2002/0802.htm
+http://www.thetravelzine.com/40-40-avignon.htm
+http://www.thetriangle.org/news/2004/10/22/Sports/Eagles.Must.Stay.Hungry.Throughout.Season.And.Into.Playoffs-777296.shtml
+http://www.thetrumpet.com/index.php?page=article&id=269
+http://www.thetruthaboutgeorge.com/lists/truth-updates/msg00051.html
+http://www.thetruthseeker.co.uk/article.asp?ID=2
+http://www.thetruthseeker.co.uk/article.asp?ID=2542
+http://www.thetruthseeker.co.uk/article.asp?ID=2552
+http://www.thetruthseeker.co.uk/article.asp?ID=2711
+http://www.thetruthseeker.co.uk/print.asp?ID=2542
+http://www.thetruthseeker.co.uk/print.asp?ID=2552
+http://www.thetwocaptains.com/wedding.htm
+http://www.thetyee.ca/Life/current/MagnetsforMemory.htm
+http://www.thetyee.ca/News/2004/08/06/PrivSeatoSkyAttack/
+http://www.thetyee.ca/News/2005/05/02/ElectionMarket/
+http://www.thetyee.ca/News/2005/05/11/AlcanPowerIssues/
+http://www.thetyee.ca/News/2005/05/31/PrefabHome/
+http://www.thetyee.ca/Views/2005/06/08/MarijuanaIdeas/
+http://www.theukwebdesigncompany.com/article.php?id=1049
+http://www.theunion.com/section/THEMES08
+http://www.theunionleader.com/
+http://www.theunionleader.com/Articles_show.html?article=13569
+http://www.theunionleader.com/articles_showa.html?article=34093
+http://www.theunionleader.com/articles_showa.html?article=39186
+http://www.theunionleader.com/articles_showa.html?article=40746
+http://www.theuniversityconcourse.com/I,7,5-7-1996/vanSchaijik.htm
+http://www.theunmutual.co.uk/
+http://www.theus50.com/alabama/history.shtml
+http://www.theus50.com/tennessee/outdoors.shtml
+http://www.theus50.com/virginia/history.shtml
+http://www.theusabilitycompany.com/news/media_coverage/archive/nma_130901.html
+http://www.theusbroker.com/newsletters/
+http://www.thevalkyrie.com/stories/femgrowth/sakura.htm
+http://www.thevalkyrie.com/stories/html/morphenomenal/morph3b.htm
+http://www.thevalkyrie.com/stories/mole/muscle01.htm
+http://www.thevalkyrie.com/stories/mole/supergirl.htm
+http://www.thevarsity.ca/news/2004/09/16/Science/A.Close.Shave.With.Big.Brother-720263.shtml
+http://www.thevictoriaadvocate.com/local/local/story/2484983p-2879374c.html
+http://www.thevictoriaadvocate.com/local/local/story/2520187p-2920205c.html
+http://www.theviewnewspapers.com/article.asp?article=1258&paper=1&cat=198
+http://www.theviewnewspapers.com/article.asp?article=1321&paper=1&cat=198
+http://www.thevillage.ie/index.php?option=com_content&task=category&sectionid=21&id=114&Itemid=158
+http://www.thevillagenews.com/health/index.asp?story_ID=3550
+http://www.thevillager.com/villager_11/friendscallpier40.html
+http://www.thevillager.com/villager_111/sushisambarooftop.html
+http://www.thevirginiacompany.com/civil-war.html
+http://www.thevirtualvine.com/May-Summer.html
+http://www.thevoter.org/glossary.php?letter=p
+http://www.thevoyagers.com/royaltragedy.htm
+http://www.thewashingtonnote.com/archives/000052.html
+http://www.thewashingtonnote.com/archives/000188.html
+http://www.thewashingtonnote.com/archives/000382.html
+http://www.thewashingtonnote.com/mt/mt-comments.cgi?entry_id=52
+http://www.thewatchmaker.com/watch-clock-repair.html
+http://www.thewatchstore.com/store/new.html
+http://www.thewaterpage.com/threshld.htm
+http://www.thewaytotruth.org/pearls/tongue.html
+http://www.thewaytotruth.org/science/existence.html
+http://www.theweatheroutlook.com/othyourquestions.asp
+http://www.thewebnewsroom.com/
+http://www.thewelfarestatewerein.com/archives/behaviour_crime/index.php
+http://www.thewelfarestatewerein.com/archives/tax_and_growth/index.php
+http://www.thewellspring.com/TWO/4birthManaged.html
+http://www.thewestonmercury.co.uk/archived_material/2005/week_02/features/asp/05-01-14Luhimba.asp
+http://www.thewestonmercury.co.uk/archived_material/2005/week_02/news/asp/05-01-19AppealSuccess.asp
+http://www.thewildlifeexperience.org/our_sponsors/
+http://www.thewildones.org/Curric/winterTrip.html
+http://www.thewinds.org/1999/01/family_planning.html
+http://www.thewinedoctor.com/advisory/buyconsumers.shtml
+http://www.thewinnerlist.com/cybercash.html
+http://www.thewisemarketer.com/features/read.asp?id=45
+http://www.thewisemarketer.com/news/read.asp?lc=a3311dx1275zz
+http://www.thewolfeclinic.com/gardenpower/gardenpower.html
+http://www.thewolfeclinic.com/newsletter/newletter-testimonials.html
+http://www.thewolfeclinic.com/super_foods.html
+http://www.thewonderwall.com/badly_drawn_boy/
+http://www.thewordonthestreet.ca/
+http://www.theworkshop.org/actors/women-1.html
+http://www.theworldjournal.com/special/nettech/news/updateoff.htm
+http://www.theworldlink.com/football/tigers.html
+http://www.theworldlink.com/stayplay/ophir.html
+http://www.theworldofstuff.com/
+http://www.theworldwidegourmet.com/fruits/berries/strawberry.htm
+http://www.thewriterslife.homestead.com/payingmarkets.html
+http://www.thewriterslife.homestead.com/thedogwithnoname.html
+http://www.thewritingsonthestall.com/
+http://www.thewwwsite.com/usa01.htm
+http://www.thex-bar.net/
+http://www.thex.com/rd/
+http://www.theyogastudio.com/teacherstraining.html
+http://www.theywillrockyou.com/Dailypage/blogs/missyblog.html
+http://www.theyworkforyou.com/debate/?id=2004-11-09.769.3
+http://www.theyworkforyou.com/debates/?id=2002-03-06.322.2
+http://www.theyworkforyou.com/debates/?id=2004-10-20.882.2&m=1293
+http://www.theyworkforyou.com/debates/?id=2004-12-21.2077.0&m=687
+http://www.theyworkforyou.com/debates/?id=2005-02-02.830.3
+http://www.theyworkforyou.com/mp/recent/?pid=10644
+http://www.theyworkforyou.com/whall/?id=2004-09-15.486.2
+http://www.theyworkforyou.com/whall/?id=2005-03-09.510.0&m=1135
+http://www.thezambian.com/women/
+http://www.thezencenter.org/info_2.html
+http://www.thezeroboss.com/archives/000086.html
+http://www.thezeroboss.com/archives/004903.html
+http://www.thezone.net/wapa/known.htm
+http://www.thff.org/bio.htm
+http://www.thiaoouba.com/see_aura_color.htm
+http://www.thibodaux.com/report.html
+http://www.thief-thecircle.com/showarchive.asp?month=4&year=2003
+http://www.thinfilmmfg.com/subscribers/Subscriber01/qcintro11Sept01.htm
+http://www.thing.net/~grist/l&d/rodtarn/ljr-nt2.htm
+http://www.thingsasian.com/browse/article/related/goto_article/article.2050.html
+http://www.thingsofjoy.com/news.html
+http://www.thingstodo-london.com/brochure/product_show.jsp?ID=1010&PRODUCTID=1016&CODE=3858EE042
+http://www.think.i12.com/fallacies.html
+http://www.thinkage.ca/~jim/prose/names.htm
+http://www.thinkcentre.org/article.cfm?ArticleID=2518
+http://www.thinkcentre.org/article.cfm?ArticleID=908
+http://www.thinkenergy.com/web/webpage.html
+http://www.thinkenergygroup.com/think.nsf/3c782b90d71cf63085256d55005670b4?OpenForm&ParentUNID=8B96B4C0C9067F9585256F8D00796673
+http://www.thinkenergygroup.com/think.nsf/3c782b90d71cf63085256d55005670b4?OpenForm&ParentUNID=D222F8B68F60F27985256F69006DD4F1
+http://www.thinkenergygroup.com/think.nsf/3c782b90d71cf63085256d55005670b4?OpenForm&ParentUNID=DB751FF19A6166DA85256F720077C229
+http://www.thinkequity.com/mt-archive/market_view/economy/
+http://www.thinking.net/Cognition/cognition.html
+http://www.thinkinganglicans.org.uk/archives/000534.html
+http://www.thinkinganglicans.org.uk/archives/000991.html
+http://www.thinkinghistory.co.uk/resources/henry_bonds.htm
+http://www.thinkinghistory.co.uk/resources/whowillhang.htm
+http://www.thinkingmanagers.com/management/management-selling.php
+http://www.thinkingmaps.com/htthinkmap.php3
+http://www.thinkingmonkey.com/2004_12_19_archive.shtml
+http://www.thinkingpeace.com/Lib/lib011.html
+http://www.thinkingpeace.com/Lib/lib013.html
+http://www.thinkingpeace.com/Lib/lib028.html
+http://www.thinkingpeace.com/Lib/lib055.html
+http://www.thinkingpeace.com/Lib/lib094.html
+http://www.thinkingpeace.com/pages/Articles/Archive1/arts025.html
+http://www.thinkingpeace.com/pages/Articles/Archive1/arts073.html
+http://www.thinkingpeace.com/pages/arts2/arts261.html
+http://www.thinkingpeace.com/pages/arts2/arts340.html
+http://www.thinkingpeace.com/skyblog/
+http://www.thinklikeadog.com/tp/fromourcustomers.html
+http://www.thinkofit.com/webconf/
+http://www.thinkofit.com/webconf/forumsoft.htm
+http://www.thinkofit.com/webconf/wcchoice.htm
+http://www.thinkquest.org/library/cat_show.html?cat_id=70
+http://www.thinkspain.com/spain-news-page/6
+http://www.thinprep.com/corporate/terms.shtml
+http://www.thirdmil.org/media/opeds/000925_surpluslottery.html
+http://www.thirdspace.ca/chora/pr_12stepessay.htm
+http://www.thirdworldtraveler.com/Drug_War/Adios_FailedStrategies.html
+http://www.thirdworldtraveler.com/Energy/Fighting_Energy_Indep.html
+http://www.thirdworldtraveler.com/Fascism/Brunner_B_CS.html
+http://www.thirdworldtraveler.com/Life_Death_ThirdWorld/CallousedConsciences.html
+http://www.thirdworldtraveler.com/McChesney/GlobalMedia_Neoliberalism.html
+http://www.thirdworldtraveler.com/Media/CorpMedia_McChesney.html
+http://www.thirdworldtraveler.com/Political_Reform/Majority_Fooled_FE.html
+http://www.thirdworldtraveler.com/Responsible_Travel/respon_travel.html
+http://www.thirdworldtraveler.com/Zinn/FreeSpeech_DI.html
+http://www.thirteen.org/edonline/ntti/resources/lessons/radioactive/
+http://www.thirteen.org/homepage/promos/nat_palemale.html
+http://www.thirtythousandfeet.com/clubs.htm
+http://www.thisfish.com/
+http://www.thisisali.com/weblog/
+http://www.thisisawar.com/HealthSleep.htm
+http://www.thisisawar.com/IllnessCancer.htm
+http://www.thisisbroken.com/
+http://www.thisisgwent.co.uk/advertising_features/special_feature_c/
+http://www.thisishertfordshire.co.uk/display.var.560811.0.schools_spearhead_aid_appeal.php
+http://www.thisishertfordshire.co.uk/news/stalbans/display.var.560811.0.schools_spearhead_aid_appeal.php
+http://www.thisislondon.com/news/articles/19328071?source=Evening%20Standard&ct=5
+http://www.thisisoxfordshire.co.uk/oxfordshire/archive/2003/04/23/TOPSPORT0ZM.html
+http://www.thisisoxfordshire.co.uk/oxfordshire/news/NEWS5.html
+http://www.thisispembrokeshire.net/pembrokeshire/features/FEATURES5.html
+http://www.thisisrumorcontrol.org/node/view/2282
+http://www.thisisrumorcontrol.org/node?from=80
+http://www.thisisryedale.co.uk/ryedale/vibe/bands/dustbowlcentral/
+http://www.thisisstfc.co.uk/columns_igoe_Story.asp?NewsID=18
+http://www.thisisstfc.co.uk/news_headlines_Story.asp?NewsID=2915
+http://www.thisisstfc.co.uk/news_headlines_Story.asp?NewsID=3369
+http://www.thisisthenortheast.co.uk/food/reviews/140605.html
+http://www.thisisthenortheast.co.uk/healthspectrum/features/0802/bigboozers.html
+http://www.thisisthenortheast.co.uk/the_north_east/history/echomemories/durham/403/101003.html
+http://www.thisisthenortheast.co.uk/the_north_east/leisure/tracer/success.html
+http://www.thisisthenortheast.co.uk/the_north_east/news/manfield/0108_1.html
+http://www.thisistrue.com/skeptics98.html
+http://www.thisistrue.com/zt.html
+http://www.thisiswiltshire.co.uk/wiltshire/archive/2004/03/15/business_news1ZM.html
+http://www.thisisyork.co.uk/york/classified/cliftonmoor.html
+http://www.thisisyork.co.uk/york/leisure/YORK_LEISURE_REVIEW_RESTAURANTS20.html
+http://www.thisisyork.co.uk/york/leisure/YORK_LEISURE_REVIEW_RESTAURANTS3.html
+http://www.thisisyork.co.uk/york/leisure/country_walks/walks_archive.html
+http://www.thisisyork.co.uk/york/news/letters.html
+http://www.thismodernworld.com/
+http://www.thismodernworld.com/weblog/archive/2002_02_10_bloggera.html
+http://www.thismodernworld.com/weblog/archive/2002_03_03_bloggera.html
+http://www.thismodernworld.com/weblog/archive/2002_07_14_bloggera.html
+http://www.thismodernworld.com/weblog/mtarchives/week_2003_10_12.html
+http://www.thismodernworld.com/weblog/mtarchives/week_2003_11_09.html
+http://www.thismodernworld.com/weblog/mtarchives/week_2005_04_17.html
+http://www.thismodernworld.com/weblog/mtarchives/week_2005_06_19.html
+http://www.thisnation.com/campaign.html
+http://www.thisoldhouse.com/toh/html/insidetoh/insidetoh_desc.html
+http://www.thisoldhouse.com/toh/knowhow/adding/article/0,16417,199843,00.html
+http://www.thisoldhouse.com/toh/print/0,17071,629176,00.html
+http://www.thisweek.ca/
+http://www.thisweek.ca/hamilton_weblog_strategy_/2004/12/
+http://www.thisweek.ca/hamilton_weblog_strategy_/2004/12/december_10_200.html
+http://www.thjournal.com/
+http://www.thocp.net/companies/commodore/commodore_company.htm
+http://www.thocp.net/reference/museum/museums.htm
+http://www.thocp.net/timeline/1947.htm
+http://www.thocp.net/timeline/1993.htm
+http://www.thocp.net/timeline/1994.htm
+http://www.thoemmes.com/american/martineau_intro.htm
+http://www.thoemmes.com/american/royce/2lecture2.htm
+http://www.thoemmes.com/classics/jebb_lecture.htm
+http://www.thoemmes.com/psych/james.htm
+http://www.thoemmes.com/terms_conditions.htm
+http://www.thomas-hobbes.com/works/liberty/14.html
+http://www.thomasgenweb.com/benjamin_hughes.html
+http://www.thomasgenweb.com/brynmawr_history.html
+http://www.thomasgenweb.com/david_davies.html
+http://www.thomasgenweb.com/nantyglo_round_towers.html
+http://www.thomasgolf.com/505ladiesW.shtml
+http://www.thomasmichaelcorcoran.com/2004_03_21_archive.html
+http://www.thomaspmbarnett.com/delscenes/scene22.htm
+http://www.thomaspmbarnett.com/dircommentary/newrulesets.htm
+http://www.thomaspmbarnett.com/pnm/glossary.htm
+http://www.thomaspmbarnett.com/weblog/
+http://www.thomaspmbarnett.com/weblog/archives2/001039.html
+http://www.thomhartmann.com/TPW_chapter_1.shtml
+http://www.thomhartmann.com/democracyfailed.shtml
+http://www.thompson.com/libraries/cable/tube/special_reports/tube_expert/tubeexpert600.html
+http://www.thomsoncareercenter.com/search/view_job.asp?jobID=999999006257
+http://www.thomsoneducationdirect.com.au/index.cfm?id=177
+http://www.thomsonlearning.com.au/primary/supps/
+http://www.thomsonmedia.com/careers.html
+http://www.thoracic.org/assemblies/pc/journal/june03.asp
+http://www.thoracic.org/ic/ic2005/2005pgcourses.asp
+http://www.thoracic.org/news/prapr99.asp
+http://www.thoroughbrednews.co.nz/international/default.asp?id=16462&page_no=0&trainer_id=0&stud_id=0
+http://www.thoroughbrednews.co.nz/nz/newsletter3.asp?id=245
+http://www.thortech.com/about/about_board.asp
+http://www.thoseoldrecords.com/faq.html
+http://www.thottbot.com/?t=First%20Aid
+http://www.thottbot.com/beta.cgi?t=First%20Aid
+http://www.thottbot.com/index.cgi?t=First%20Aid
+http://www.thoughtpeach.com/
+http://www.thoughtware.com.au/philosophy/debate/pb0795.html
+http://www.thousandoaksproperty.com/l_economy-thousand-oaks-westlake-village-california-real-estate.asp
+http://www.thousandreasons.org/opinion.php
+http://www.thousandreasons.org/readers.html
+http://www.thrale.com/my_family/travelog/travelog_1.php
+http://www.thrall.orcon.net.nz/17glimpses.html
+http://www.thrasherswheat.org/tnfy/funhouse.htm
+http://www.threadless.com/submission/6838/Free
+http://www.threadwatch.org/node/119
+http://www.thredgold.com/html/out.html
+http://www.threemenandatenor.com/GermanyRecap.htm
+http://www.threeminutetherapy.com/self-esteem.html
+http://www.threemonkeysonline.com/threemon_articleThe%20Anglo-Irish%20treaty%20and%20Civil%20War.htm
+http://www.threeweirdsisters.com/pangaia.htm
+http://www.threeworldwars.com/world-war-3/ww3-11.htm
+http://www.threeyearsofhell.com/
+http://www.threeyearsofhell.com/archive/000788.php
+http://www.threeyearsofhell.com/archive/2004_06.php
+http://www.thriftyfun.com/Crafts/tf475077_cra.html
+http://www.thriftyfun.com/happygarden/tf568913_gar.html
+http://www.thriftyfun.com/happypets/tf420703_pet.html
+http://www.thriftyfun.com/tf129688.tip.html
+http://www.thriftyfun.com/tf392697.tip.html
+http://www.thriftyfun.com/tf475077.tip.html
+http://www.thriftyfun.com/tf568913.tip.html
+http://www.thriftyfun.com/tf764097.tip.html
+http://www.thrillingdetective.com/eyes/grayson.html
+http://www.thrivent.com/planning/tools/dinkytown/SpendLess.html
+http://www.throneworld.com/personal/gaming/micea/micea_rules.html
+http://www.thuglifearmy.com/StaticPages/20/
+http://www.thuglifearmy.com/StaticPages/30/
+http://www.thulika.net/Mar2003/janata.html
+http://www.thunderboats.org/history/farley006.html
+http://www.thunderonline.com/thunder/wit/archive/280502.html
+http://www.thuntek.net/hardmag/v3.htm
+http://www.thuringowa.qld.gov.au/resident/animalRegistration.htm
+http://www.thurrock.gov.uk/housing/tenants/content.php?page=moving_home
+http://www.thurrock.gov.uk/socialcare/adults/content.php?page=learning_disabilities
+http://www.thursoeyecare.co.uk/Eye%20on%20the%20News.htm
+http://www.thus.net/channel/newsletter/thus_0804.htm
+http://www.thyroid-info.com/autoimmunebook.htm
+http://www.thyroid.org/professionals/publications/statements/ki/02_04_09_ki_qa.html
+http://www.ti.com/corp/docs/company/history/lifeintheoilpatch.shtml
+http://www.ti.com/sc/docs/stdterms.htm
+http://www.ti.ubc.ca/pages/letter39.htm
+http://www.tiaa-cref.org/pubs/html/governance_policy/social_responsibility.html
+http://www.tian.cc/2004/10/hello-vs-ni-hao.html
+http://www.tian.cc/2005/02/baby-got-book-by-sir-reads-lot.html
+http://www.tiaonline.org/media/pulse/1998/pulse0498-4.cfm
+http://www.tiaxllc.com/aboutus/abo_newsviews_byind.php?ind=GOV
+http://www.tibet-china.org/newbook/englishhtml/sciencee.html
+http://www.tibet.net/tibbul/0101/nakhe.html
+http://www.tibetankungfu.com/chon_the_principle_of_destruction.htm
+http://www.tibetanmastiffdogs.com/dogworld.htm
+http://www.tibetsociety.com/campaigns.asp
+http://www.ticam.utexas.edu/~mciarleg/MCresume3.htm
+http://www.ticketone.com.cn/shangpin.asp?no=22347;8
+http://www.ticketswitch.com/common/layout.shtml?Affiliates
+http://www.tid.org/News/
+http://www.tiddlywinks.org/how_to_play/rules/english/alleghany/parent_game.html
+http://www.tieasia.org/TEXT/text_Gina.htm
+http://www.tiedtothetracks.com/storytelling/archives/fiction_matters_in_general/
+http://www.tiempocyberclimate.org/newswatch/feature050204.htm
+http://www.tietoenator.com/default.asp?path=1,96,274,6503
+http://www.tietoenator.com/default.asp?path=1,96,274,6506
+http://www.tif.ne.jp/eng/details.do?code=6&areaID=1&categoryID=9&subCategoryID=36
+http://www.tiffinbox.org/
+http://www.tig.com/financial.asp
+http://www.tigerleasing.com/employment.shtml
+http://www.tigernt.com/onlineDoc/tij1/Chapter12.html
+http://www.tigersincrisis.com/problems_4.htm
+http://www.tigeru.com/ftopict-3572.html
+http://www.tigerweekly.com/article2142.html
+http://www.tight-science.com/old/danclowes.html
+http://www.tightlinecharters.ca/tightlinecharters/species_notes.html
+http://www.tigrai.org/TNTourism.html
+http://www.tikkun.org/Tikkunmail/index.cfm/action/current_issue.html
+http://www.tikkun.org/magazine/index.cfm/action/tikkun/issue/tik0005/article/000513b.html
+http://www.tile.net/webdev/?Warning:-The-Truth-About-Having-a-Web-Site!&id=37101
+http://www.tim-roth.com/articles/vanitysep95.html
+http://www.tim-thompson.com/petrosian.html
+http://www.timberpress.com/books/excerpt/0-88192-726-0
+http://www.time-to-run.com/beginners/projects/tracyw/report-back/230603.htm
+http://www.time.com/time/archive/preview/0,10987,818744,00.html
+http://www.time.com/time/archive/preview/0,10987,920692,00.html
+http://www.time.com/time/archive/preview/0,10987,994929,00.html
+http://www.time.com/time/arts/article/0,8599,1061415,00.html
+http://www.time.com/time/asia/covers/501040531/essay.html
+http://www.time.com/time/asia/features/sex/sexopener.html
+http://www.time.com/time/asia/magazine/article/0,13673,501040621-650755,00.html
+http://www.time.com/time/asia/magazine/article/0,13673,501041129-785412,00.html
+http://www.time.com/time/asia/mediakit/home/article/0,17540,1069513,00.html
+http://www.time.com/time/columnist/arnold/article/0,9565,232659,00.html
+http://www.time.com/time/columnist/arnold/article/0,9565,547796,00.html
+http://www.time.com/time/columnist/corliss/article/0,9565,1043267,00.html
+http://www.time.com/time/columnist/corliss/article/0,9565,411371-2,00.html
+http://www.time.com/time/columnist/corliss/article/0,9565,597240,00.html
+http://www.time.com/time/columnist/klein/article/0,9565,1053588,00.html
+http://www.time.com/time/columnist/krauthammer/article/0,9565,1035052,00.html
+http://www.time.com/time/columnist/krauthammer/article/0,9565,557749,00.html
+http://www.time.com/time/election2004/columnist/klein/article/0,18471,600843,00.html
+http://www.time.com/time/europe/
+http://www.time.com/time/europe/digital/magazine/0,13716,268264,00.html
+http://www.time.com/time/europe/magazine/2002/1104/turkey/cyprus.html
+http://www.time.com/time/europe/magazine/article/0,13005,901030217-420981,00.html
+http://www.time.com/time/europe/magazine/article/0,13005,901040816-678570,00.html
+http://www.time.com/time/globalbusiness/article/0,9171,1050297-1,00.html
+http://www.time.com/time/magazine/article/0,9171,1074105,00.html
+http://www.time.com/time/nation/article/0,8599,1071185,00.html
+http://www.time.com/time/personoftheyear/2004/story.html
+http://www.time.com/time/press_releases/article/0,8599,1071230,00.html
+http://www.time.com/time/reports/planet/nature2.html
+http://www.time.com/time/sampler/article/0,8599,173494,00.html
+http://www.time4me.com/theme/write/ebook/5.htm
+http://www.timebank.org.uk/campaigns/changing_streets/changingstreets_community_resources.htm
+http://www.timebank.org.uk/stories/pages/benenden_flat.htm
+http://www.timegate.com/forum/showthread.php?goto=lastpost&t=9954
+http://www.timegate.com/forum/showthread.php?t=9954
+http://www.timegoesby.net/2004/12/social_security_1.html
+http://www.timelord.co.uk/fiction/dr7/prime.htm
+http://www.timelord.co.uk/rf/01-15/1_2.htm
+http://www.timeout.com/film/81407.html
+http://www.times.co.zm/news/archives.cgi?category=12&view=10.20.03-10.29.03
+http://www.times10.org/lorne_1.htm
+http://www.timesbeacon.com/story/0,21731,1025160,00.html
+http://www.timescommunity.com/site/tab5.cfm?newsid=13422573&BRD=2553&PAG=461&dept_id=511693&rfi=6
+http://www.timeshare.org.uk/holicon.html
+http://www.timesharesaver.com/visitor-agreement.php
+http://www.timesheetsmts.com/spechome/
+http://www.timesleader.com/mld/timesleader/10544875.htm?template=contentModules/printstory.jsp
+http://www.timesleader.com/mld/timesleader/business/technology/9650595.htm?template=contentModules/printstory.jsp
+http://www.timesleader.com/mld/timesleader/news/7795256.htm
+http://www.timesofmalta.com/core/article.php?id=190225
+http://www.timesofmalta.com/core/headlines.php?section=news&date=20050607
+http://www.timesonline.co.uk/
+http://www.timesonline.co.uk/TGD/tgdBreakingNewsDisplay/0,,3,00.html
+http://www.timesonline.co.uk/article/0,,1059-1586733,00.html
+http://www.timesonline.co.uk/article/0,,1068-1480421,00.html
+http://www.timesonline.co.uk/article/0,,1072-1665233,00.html
+http://www.timesonline.co.uk/article/0,,12771-1081922,00.html
+http://www.timesonline.co.uk/article/0,,15994-686741,00.html
+http://www.timesonline.co.uk/article/0,,16949-1260975,00.html
+http://www.timesonline.co.uk/article/0,,2-1436909,00.html
+http://www.timesonline.co.uk/article/0,,2087-1302525,00.html
+http://www.timesonline.co.uk/article/0,,2087-1431598,00.html
+http://www.timesonline.co.uk/article/0,,2087-1650822,00.html
+http://www.timesonline.co.uk/article/0,,2088-1462071,00.html
+http://www.timesonline.co.uk/article/0,,2088-1641358,00.html
+http://www.timesonline.co.uk/article/0,,2095-1431025,00.html
+http://www.timesonline.co.uk/article/0,,2095-1441641,00.html
+http://www.timesonline.co.uk/article/0,,2102-1465935,00.html
+http://www.timesonline.co.uk/article/0,,22649-1641358,00.html
+http://www.timesonline.co.uk/article/0,,251-268735,00.html
+http://www.timesonline.co.uk/article/0,,291-1296910,00.html
+http://www.timesonline.co.uk/article/0,,2941-591,00.html
+http://www.timesonline.co.uk/article/0,,3-1365782,00.html
+http://www.timesonline.co.uk/article/0,,3-1390265,00.html
+http://www.timesonline.co.uk/article/0,,3-1410968,00.html
+http://www.timesonline.co.uk/article/0,,3-1616578,00.html
+http://www.timesonline.co.uk/article/0,,378-1593794,00.html
+http://www.timesonline.co.uk/article/0,,3933-1480187,00.html
+http://www.timesonline.co.uk/article/0,,4003-1621287,00.html
+http://www.timesonline.co.uk/article/0,,4041-1618118,00.html
+http://www.timesonline.co.uk/article/0,,60-1455157,00.html
+http://www.timesonline.co.uk/article/0,,630-1646674,00.html
+http://www.timesonline.co.uk/article/0,,630-576725,00.html
+http://www.timesonline.co.uk/article/0,,632-1419553,00.html
+http://www.timesonline.co.uk/article/0,,716-1113722,00.html
+http://www.timesonline.co.uk/article/0,,7813-983180,00.html
+http://www.timesonline.co.uk/article/0,,7994-969445,00.html
+http://www.timesonline.co.uk/article/0,,8164-1453877,00.html
+http://www.timesonline.co.uk/article/0,,8213-1460550,00.html
+http://www.timesonline.co.uk/section/0,,175,00.html
+http://www.timesonline.co.uk/section/0,,176,00.html
+http://www.timespicayune.com/pages/circulation/nieactvt.html
+http://www.timesunion.com/promo/Image/WhiteTeeth.htm
+http://www.timeswatch.org/articles/2004/1011.asp
+http://www.timetrade.com/testimonials.asp
+http://www.timex.com/html/watch_instr_comp.html
+http://www.timezone.com/article.aspx?id=wwatchfaq&articleId=wwatchfaq631668591017665598
+http://www.timj.co.uk/digiculture/patents/2003-08-18_Tim-vanOrden.php
+http://www.timkevan.com/articles/sports%20injury%20article%2015-10-03.html
+http://www.timorseajustice.org/
+http://www.timothyjpmason.com/WebPages/LangTeach/Licence/CM/OldLectures/L7_Interlanguage.htm
+http://www.timothyslaw.org/
+http://www.timparks.co.uk/17.html
+http://www.timslaw.com/copyright.htm
+http://www.timslaw.com/workers-comp-retaliation.htm
+http://www.tinceiling.com/comments/ccomments_1.htm
+http://www.tinhat.com/usability/colour.html
+http://www.tinman.org/Frontiers/FirstFrontiersOutline.html
+http://www.tintdude.com/faqtint.html
+http://www.tintdude.com/forum/lofiversion/index.php/t12837.html
+http://www.tinyminds.org/
+http://www.tinyninjatheater.com/reviews/stagedirectionsarticle.shtml
+http://www.tinyrevolution.com/mt/archives/000172.html
+http://www.tinyvital.com/BlogArchives/000091.html
+http://www.tinyvital.com/BlogArchives/000266.html
+http://www.tinyvital.com/BlogArchives/2005_01.html
+http://www.tipiglen.dircon.co.uk/village.html
+http://www.tipitaka.net/pali/study/pageload.php?book=001&page=10
+http://www.tipro.org/stormwater12803.html
+http://www.tips.org.za/events/forum2001.asp
+http://www.tips.org.za/events/forum2004/papers.asp
+http://www.tipthepizzaguy.com/ad/
+http://www.tirerack.com/tires/tiretech/competition/ku_v700_care.jsp
+http://www.tirerack.com/tires/tiretech/general/naload_psimarkings.jsp
+http://www.tiresias.org/equipment/eb12.htm
+http://www.tiresias.org/guidelines/operation.htm
+http://www.tiresias.org/phoneability/anyone_answer/8.htm
+http://www.tiscali.co.uk/entertainment/film/biographies/bill_murray_biog.html
+http://www.tiscali.co.uk/entertainment/film/biographies/john_travolta_biog.html
+http://www.tiscali.co.uk/lifestyle/healthfitness/health_advice/netdoctor/000277.html
+http://www.tiscali.co.uk/money/guardian/news/2004/09/16/hbosgivesupabbeychase.html
+http://www.tiscali.co.uk/motoring/crashnet/2004/10/22/news/formulaone/101766.html
+http://www.tiscali.co.uk/motoring/crashnet/2005/01/23/news/worldrally/104588.html
+http://www.tiscali.co.uk/property/jargon_buster/?country=Agreement+in+principle
+http://www.tiscali.co.uk/property/jargon_buster/?country=Collision+damage+waiver
+http://www.tiscali.co.uk/property/jargon_buster/?country=Principle
+http://www.tiscali.co.uk/reference/encyclopaedia/countryfacts/chad.html
+http://www.tiscali.co.uk/reference/encyclopaedia/countryfacts/germany.html
+http://www.tiscali.co.uk/reference/encyclopaedia/countryfacts/southkorea.html
+http://www.tiscali.co.uk/reference/encyclopaedia/hutchinson/m0003691.html
+http://www.tiscali.co.uk/reference/encyclopaedia/hutchinson/m0006759.html
+http://www.tiscali.co.uk/reference/encyclopaedia/hutchinson/m0019881.html
+http://www.titanic1.org/
+http://www.titanicinquiry.org/BOTInq/BOTInq22Howell03.html
+http://www.titanicinquiry.org/usinq/usreport/AmInqRep06.html
+http://www.titanlabs.net/oilflo.htm
+http://www.titech.ac.jp/news/e/idc2004.html
+http://www.titus2.com/corners/12-01-d.htm
+http://www.tiu.edu/studentaffairs/career/cover_letter.htm
+http://www.tivocommunity.com/tivo-vb/archive/index.php/t-190285.html
+http://www.tjacobi.com/archives/venture_capital.php
+http://www.tjc.edu/emergency/index.asp
+http://www.tjcenter.org/muzzles.html
+http://www.tjeffschool.org/lschool.htm
+http://www.tjhealth.com/patient/patient_bill_of_rights.html
+http://www.tjmonkeys.com/thought.php?theid=921
+http://www.tjurunga.com/thinking/guide.html
+http://www.tk-designs.com/african/ghana-marraige.htm
+http://www.tkb.org/NewsStory.jsp?storyID=53666
+http://www.tke.org/resources/financial/financial_potpourri.htm
+http://www.tki.org.nz/e/community/language/nzsl/
+http://www.tkline.freeserve.co.uk/Metamorph11.htm
+http://www.tklovers.com/StoriesF/Ticklish%20Secretaries.htm
+http://www.tkstoystand.com/PAGES/GAMES/bg_main_2.html
+http://www.tlainc.com/ifalcrev2.htm
+http://www.tlchm.bris.ac.uk/safety/glass.htm
+http://www.tlcwa.org.au/
+http://www.tli.gatech.edu/education/lps/2005/lpcv/
+http://www.tli.gatech.edu/education/lps/2005/mhsc/
+http://www.tlio.org.uk/history/histladd.html
+http://www.tlirr.com/htm/stories.htm
+http://www.tlt.com/mambo/index.php?option=com_content&task=view&id=58&Itemid=49
+http://www.tltgroup.org/Seven/2_Stu-Stu_Cooperation.htm
+http://www.tltgroup.org/programs/seven.html
+http://www.tltgroup.org/resources/Flashlight/Scholarship_What-2.html
+http://www.tlucretius.net/Sophie/Castle/Round.html
+http://www.tmc.edu/thi/sirjames.html
+http://www.tmcnet.com/comsol/0401/0401lab1.htm
+http://www.tmcnet.com/tmcnet/articles/071502ni.htm
+http://www.tmcnet.com/usubmit/-motorola-city-chicago-kick-off-technology-innovation-week-/2005/jun/1156331.htm
+http://www.tmcnet.com/usubmit/2004/Jun/1051603.htm
+http://www.tmcnet.com/usubmit/2005/Jan/1107416.htm
+http://www.tmcnet.com/usubmit/2005/Jun/1156331.htm
+http://www.tmfhs.org/bariatric_center_surgery_options.php
+http://www.tmgnow.com/repository/planetary/sweep.html
+http://www.tmh2o.com/customer_services/waterrates/business_service_fees/
+http://www.tmhdesign.com/miscellaneous%20pages/faq.htm
+http://www.tmj.org/donation.asp
+http://www.tml.hut.fi/Studies/T-110.551/2002/May/carryout.html
+http://www.tml.hut.fi/Studies/T-110.551/2005/carryout.html
+http://www.tmra2.org/webblog/2004_07_01_arc.html
+http://www.tms.org/pubs/journals/JOM/0301/Giurgiutiu/Giurgiutiu-0301.html
+http://www.tms.org/pubs/journals/JOM/9507/Manthey-9507.html
+http://www.tmsquared.com/R66KC_Kite_Fields.htm
+http://www.tmtm.com/nothing/archives/001982.html
+http://www.tn-humanities.org/douglass.htm
+http://www.tn.regentsdegrees.org/courses/syllabi/pc3250.htm
+http://www.tn.regentsdegrees.org/msn/default.htm
+http://www.tnau.ac.in/chennai/chennai.html
+http://www.tnellen.com/ted/tc/schein.html
+http://www.tnema.org/newsletterwork/ematmain.htm
+http://www.tngenweb.org/campbell/hist-bogan/WilliamLay.html
+http://www.tni.org/acts/mdforum.htm
+http://www.tni.org/asem-seoul/004broek.htm
+http://www.tnl.net/who/bibliography/what_is_RSS?/
+http://www.tnmb.uscourts.gov/
+http://www.tnpharm.org/
+http://www.tnr.com/051500/easterbrook051500.html
+http://www.tnr.com/091701/reich091701.html
+http://www.tnr.com/101501/3franklin101501.html
+http://www.tnr.com/arch/hs/
+http://www.tnt-audio.com/ampli/majike.html
+http://www.tnt-audio.com/casse/norh9_e.html
+http://www.tnt-audio.com/clinica/spkcbl_e.html
+http://www.tnt-audio.com/guide/sources_e.html
+http://www.tnt-audio.com/shows/triode98.html
+http://www.tntdiventures.com/israel.html
+http://www.tntech.edu/reslife/gsl/gsl_section2.htm
+http://www.tnty.com/newsletter/futures/archive/v01-05technology.html
+http://www.toa.com/shnn?asked09
+http://www.toadhollowstudio.com/fvhowto.html
+http://www.toastmasters.bc.ca/benefits.php
+http://www.tobacco.org/Resources/culture.html
+http://www.tobacco.org/articles/category/fires/
+http://www.tobacco.org/articles/country/palestine/
+http://www.tobacco.org/news/147226.html
+http://www.tobacco.org/news/197353.html
+http://www.tobacco.org/resources/rendezvous/biener.html
+http://www.tobaccobowl.com/tea_glossary.htm
+http://www.tobaccofreeca.com/staying_in_control.html
+http://www.tobaccojournal.com/
+http://www.tobe.net/papers/beyond.html
+http://www.tobunken.go.jp/~kokusen/ENGLISH/MEETING/CONFSYS/confsys.html
+http://www.today.ucla.edu/2004/040413briefs_namesfaces.html
+http://www.today.wisc.edu/index.php?date=2005-06-02&month_cal=2005-06-01
+http://www.today.wisc.edu/index.php?date=2005-06-23&month_cal=2005-06-01
+http://www.today.wisc.edu/index.php?date=2005-06-30&month_cal=2005-06-01
+http://www.todayinsci.com/1/1_17.htm
+http://www.todayinsci.com/2/2_28.htm
+http://www.todayinsci.com/3/3_03.htm
+http://www.todayinsci.com/6/6_11.htm
+http://www.todaysengineer.org/2005/Jan/x-prize.asp
+http://www.todaysmilitary.com/faq/t2_faq_findanadvisor.php
+http://www.todaysparent.com/education/general/article.jsp?content=20040302_142638_3872&page=1
+http://www.todaysparent.com/pregnancybirth/labour/article.jsp?content=20041210_162742_5956&page=1
+http://www.todaysparent.com/preteen/education/article.jsp?content=20040302_142638_3872&page=1
+http://www.todaysparent.com/preteen/education/article.jsp?content=892&page=1
+http://www.todaysparent.com/schoolage/education/article.jsp?content=20040302_142638_3872&page=1
+http://www.toddlertime.com/borderline/covering-the-pain.htm
+http://www.toddmessegeephoto.com/About%20the%20Artist.html
+http://www.todsmurray.com/accessible/industry/capital/capital-article1.html
+http://www.tohm.ie/publications/annualreports/20010627170805.html
+http://www.tohokingdom.com/web_pages/dvd/ran_wellspring.htm
+http://www.tolatsga.org/iro.html
+http://www.tolc.org/living.htm
+http://www.tolc.org/nash.htm
+http://www.toldyouso.net/search/details.cfm?tblDVDReview.RMovieName=All%20About%20Eve%2C%20Studio%20Classics
+http://www.toledoblade.com/apps/pbcs.dll/article?AID=/20050608/NEWS24/50608003
+http://www.toledoblade.com/apps/pbcs.dll/article?AID=/20050617/NEWS24/50617015
+http://www.toledoblade.com/apps/pbcs.dll/article?AID=/20050617/SRRARECOINS/506170449
+http://www.toledozoo.org/cateringrentals/cater_rentals.html
+http://www.tolerance.org/teens/printar.jsp?p=0&ar=6&pi=te
+http://www.tolkiencollector.com/oxford.html
+http://www.tolkiensociety.org/ed/
+http://www.toltecspirit.com/
+http://www.tolueislam.com/Parwez/tkn/TK_13.htm
+http://www.tomatonation.com/vi061605.shtml
+http://www.tombola.ac.uk/about.shtml
+http://www.tombrazaitis.com/PD10.htm
+http://www.tomchance.org.uk/writing/phil-oss-fs
+http://www.tomdispatch.com/index.mhtml
+http://www.tomdispatch.com/index.mhtml?emx=x&pid=1551
+http://www.tomdispatch.com/index.mhtml?pid=1509
+http://www.tomdispatch.com/index.mhtml?pid=1744
+http://www.tomdispatch.com/index.mhtml?pid=1824
+http://www.tomdispatch.com/index.mhtml?pid=2486
+http://www.tomdispatch.com/index.mhtml?pid=2837
+http://www.tomleonard.co.uk/other_publications/mass_bombing-catechism.shtml
+http://www.tommy.com/info/letter-norway.jsp
+http://www.tomoye.com/ourproducts/41_releasenotes.htm
+http://www.tompaine.com/articles/kerry_won_.php
+http://www.tompaine.com/feature.cfm/ID/5747
+http://www.tompkins-co.org/health/westnile.htm
+http://www.tompkins-co.org/legislature/highlights/20031021.html
+http://www.tomreillytraining.com/tt_article_9.htm
+http://www.tomshardware.com/archive/9908.html
+http://www.tomshardware.com/business/20040811/amd-02.html
+http://www.tomshardware.com/mobile/20040225/
+http://www.tongatapu.net.to/tonga/convictions/schools/tbu/piula/piula.htm
+http://www.tonsoflyrics.com/feet_fetish_videos.htm
+http://www.tonsoflyrics.com/feet_sole_fetish.htm
+http://www.tonsoflyrics.com/female_camel_toe_pictures.htm
+http://www.tonsoflyrics.com/hot_thong_bikini.htm
+http://www.tonykline.co.uk/Browsepages/French/Rimbaud3.htm
+http://www.tonykline.co.uk/Browsepages/Spanish/FiveintheafternoonLorca.htm
+http://www.tonylevin.com/
+http://www.tonymartin.ca/community/meetingnotes/meetingnotesmay27
+http://www.tonypierce.com/blog/bloggy.htm
+http://www.tonywright.labour.co.uk/ViewPage.cfm?Page=5964
+http://www.toolbase.org/tertiaryT.asp?DocumentID=2957&CategoryID=1496
+http://www.toolbase.org/tertiaryT.asp?TrackID=&CategoryID=1864&DocumentID=2268
+http://www.toolkit.cch.com/text/P01_0510.asp
+http://www.toolsgroup.com/images_us/amr_redefining.pdf?spid=30410106&cid=1413
+http://www.toolshed.com/blog/
+http://www.toolsofthetrade.net/
+http://www.toolsofthetrade.net/articles/showarticle.asp?articleID=2264&position=0&type=article
+http://www.tooltimer.com/Rules.htm
+http://www.toomanychefs.net/archives/001068.php
+http://www.toomanychefs.net/archives/001274.php
+http://www.toomuchsexy.org/index/weblog/comments/philosophical_thoughts_kripkes_argument/
+http://www.toomuchsexy.org/index/weblog/comments/sick_of_it/item.name
+http://www.toomuchsexy.org/index/weblog/comments/so_sad_that_i_cry/
+http://www.toonsonice.com/slapshotgolftournament.html
+http://www.tooter4kids.com/poetry_pals_club_2002.htm
+http://www.toowrite.com/toowrite_story.asp?sid=1572
+http://www.toowrite.com/toowrite_story.asp?sid=5980
+http://www.top-consultant.com/Canada/news%5Cnewsletter291003.htm
+http://www.top-consultant.com/index.asp?Start=1
+http://www.top-consultant.com/index.asp?Start=121
+http://www.top-consultant.com/index.asp?Start=241
+http://www.top-consultant.com/index.asp?Start=301
+http://www.top-consultant.com/index.asp?Start=31
+http://www.top-consultant.com/index.asp?Start=451
+http://www.top-consultant.com/index.asp?Start=601
+http://www.top-consultant.com/index.asp?Start=61
+http://www.top-consultant.com/index.asp?Start=841
+http://www.top-consultant.com/index.asp?Start=91
+http://www.top100webshops.com/department-stores6.html
+http://www.top300.co.za/National/Awards/TopBusinessmenoftheYear.htm
+http://www.top48hours.com/autorankphp/amazon-buy-B0002XVQSU.html
+http://www.top500.org/ORSC/2004/glossary.html
+http://www.top500.org/main/Books/
+http://www.topfloortech.com/search.htm
+http://www.topgear.com/content/news/cars_coming_soon/28/
+http://www.topicalinfo.org/Alternative.htm
+http://www.topix.net/city/oxford-md
+http://www.topix.net/hobbies/model-railroading
+http://www.topix.net/tech
+http://www.topladder.com.au/totld/01_webdesign/webdes_database.html
+http://www.topmudsites.com/article14.shtml
+http://www.topology.org/philo/sayings.html
+http://www.toppan.co.jp/english/ir/04/03_2.html
+http://www.topplebush.com/article138_recpres.shtml
+http://www.tops-vet-rehab.com/modalities.html
+http://www.topsecretrecipes.com/sleuth/sleuth2.htm
+http://www.topsitelists.com/start/carolina/topsites.html
+http://www.topsitelists.com/topsites.cgi?ID=156&user=kustomtopsites&area=street
+http://www.toptable.co.uk/feature.cfm?fID=10
+http://www.topy.net/you_could_be_dead.html
+http://www.tor.com/eschbach/interview.html
+http://www.tor.com/hunting.html
+http://www.torahcodes.co.il/
+http://www.torbay.gov.uk/index/living/facts-figures/viewpoint/viewpoint-two.htm
+http://www.torchmate.com/qa.htm
+http://www.torcon3.on.ca/faq/currencyexch.html
+http://www.tornio.fi/tuli/matkailu/en/sights.html
+http://www.toronto.com/feature/12807/11.html
+http://www.toronto.servpro.ca/testlist.php?city=Greater%20Toronto%20Area&letter=L&sub=30593&compType=Garden%20Centres
+http://www.torontoist.com/archives/arts_and_events/
+http://www.torontosun.com/Anniversary/thewall.html
+http://www.torpedowatch.com/page/tpo/aboutus/philosophy.html
+http://www.tortoisetrust.org/articles/hospital.htm
+http://www.tortolita.com/times.html
+http://www.torymagoo.org/lurklev.htm
+http://www.torytrouble.org.uk/weblog/
+http://www.tostan.org/news-mollym.htm
+http://www.total-tickets.com/
+http://www.totalaccess.co.uk/~sa_webapp/run.asp?page=663
+http://www.totalbarcode.com/information.asp
+http://www.totalbedroom.com/beds-urbana.html
+http://www.totalchoicehosting.com/help/faqs.html
+http://www.totalimmersion.net/happylaps-workshop.html
+http://www.totaljobs.com/editorial/getadvice_applyjobs/your_cv.shtm
+http://www.totaljobs.com/editorial/getadvice_survivingatwork/head_hunted.shtm
+http://www.totaljobs.com/editorial/getadvice_survivingjobhunt/head_hunted.shtm
+http://www.totallybritney.com/style/
+http://www.totallyjewish.com/news/stories/?disp_type=0&disp_story=jAh3GH
+http://www.totallykate.com/london03/londonpr.html
+http://www.totallysecuresolutions.com/
+http://www.totalselling.com/keynote.cfm
+http://www.totalwar.com/community/medieval1.htm
+http://www.tothepointwriting.net/merlynproductions/zencuppa/archives/2003_04_01_zencuppa_archive.html
+http://www.tothesource.org/2_12_2003/2_12_2003.htm
+http://www.totse.com/en/bad_ideas/scams_and_rip_offs/m-tfraud.html
+http://www.totse.com/en/ego/literary_genius/banboox.html
+http://www.totse.com/en/fringe/dreams_auras_astral_projection/obe.html
+http://www.totse.com/en/politics/political_documents/meech.html
+http://www.totse.com/en/politics/us_military/gulf.html
+http://www.totse.com/en/technology/telecommunications/rs232.html
+http://www.touchmind.com/live-help-return-on-investment.html
+http://www.touchstonemag.com/archives/article.php?id=17-02-032-f
+http://www.touchstonemag.com/docs/issues/16.7docs/16-7pg22.html
+http://www.touchstonemag.com/docs/issues/17.2docs/17-02-032.html
+http://www.tourbus.com/television-news.html
+http://www.tourbus.com/vp101.htm
+http://www.tourcarmel.com/company/customer_comments.html
+http://www.touregypt.net/ebph5.htm
+http://www.touregypt.net/featurestories/amunher.htm
+http://www.touregypt.net/featurestories/dsteppyramid5.htm
+http://www.touregypt.net/historicalessays/nefertari.htm
+http://www.touregypt.net/magazine/ancientegyptwriting.htm
+http://www.touregypt.net/taleoftwobrothers.htm
+http://www.tourhosts.com.au/isi2005/programs_shcourses.asp
+http://www.tourism.australia.com/NewsCentre.asp?lang=EN&sub=0360&al=312
+http://www.tourismcambodia.com/tourop/Vietnam/tourist_sites.htm
+http://www.tourismresources.ie/cht/tours/antiques.htm
+http://www.tourismturkey.org/regions/marmara/mosques.html
+http://www.touristnetuk.com/ne/durham/towns/sedgefield.htm
+http://www.touristnetuk.com/ne/york/attractions/
+http://www.tournamentofroses.com/current/parade.htm
+http://www.tourolaw.edu/student_services/honor_societies/law_review/vol13n3/pg587.html
+http://www.tourroundchina.com/
+http://www.tours2greece.info/greece-travel/twelfth_feat.php
+http://www.tourspain.co.uk/News/MonthlyNewsFeb04.htm
+http://www.tourtexas.com/dallas/dallas50free.html
+http://www.touruk.co.uk/nyorks/nyorks_york.htm
+http://www.touryosemite.com/company/customer_comments.html
+http://www.tow.com/2002/06/
+http://www.tow.com/interests/dancing_reviews.shtml
+http://www.towardtradition.org/Printer_Truth_Religion_Homophobia.htm
+http://www.towardtradition.org/article_Truth_Religion_Homophobia.htm
+http://www.towerbank.net/news/2004/052504-R4.html
+http://www.towerbuilding.com/towerb_w/files/nr_WBJ05122003.htm
+http://www.towerhamlets.gov.uk/data/caring-for-you/data/getting-married/index.cfm
+http://www.towerhobbies.com/jobs.html
+http://www.towerofbabel.com/features/textgenderenglish/
+http://www.towerofbabel.com/map/index.pl?issue=20041214&mode=
+http://www.towerpub.com/ourdata/lists.html
+http://www.towersperrin.com/hrservices/webcache/towers/jsp/service_offering/serv_off.jsp?region=us&so=us_comm&tab=0
+http://www.town.arlington.ma.us/Public_Documents/ArlingtonMA_Schools/Fiscal/S00134AE6
+http://www.town.cornwall.pe.ca/residents/services.cfm
+http://www.town.okotoks.ab.ca/devapp.html
+http://www.town.olds.ab.ca/boards.html
+http://www.town.shiwa.iwate.jp/miraieng/1.html
+http://www.town.shiwa.iwate.jp/miraieng/4.html
+http://www.townhall.com/columnists/GuestColumns/Enlow20050202.shtml
+http://www.townhall.com/columnists/GuestColumns/Grossman20031001.shtml
+http://www.townhall.com/columnists/GuestColumns/printGrossman20031001.shtml
+http://www.townhall.com/columnists/alanreynolds/ar20030807.shtml
+http://www.townhall.com/columnists/larrykudlow/lk20050607.shtml
+http://www.townhall.com/columnists/larrykudlow/welcome.shtml
+http://www.townhall.com/columnists/paulgreenberg/pg20010622.shtml
+http://www.townhall.com/columnists/tonyblankley/tb20050622.shtml
+http://www.townhall.com/columnists/walterwilliams/ww20031029.shtml
+http://www.townofbraintreegov.org/blood.html
+http://www.townofbreckenridge.com/index.cfm?d=history
+http://www.townoffranklin.com/loonlake.html
+http://www.townonline.com/parentsandkids/opinion/view.bg?articleid=165225
+http://www.townsend.com/attorneys/bioDetails.asp?o=7272
+http://www.towntopics.com/jun0805/obits.html
+http://www.towntopics.com/jun1505/obits.html
+http://www.toy-tia.org/Content/NavigationMenu/Toy_Industy_Foundation/Press_Center/TIF_E-Update/November_2004/November_2004.htm
+http://www.toydirectory.com/monthly/June2003/Arts_Paper.asp
+http://www.toymania.com/columns/spotlight/spikedarla.shtml
+http://www.toymania.com/columns/spotlight/supshowgame.shtml
+http://www.toyotaatlantic.com/News.asp?ID=534
+http://www.toypost.co.uk/pages/loan.html
+http://www.toysafari.com/playmobl2004.html
+http://www.toytownmunich.com/
+http://www.toytownmunich.com/archive/001120.html
+http://www.toyvault.com/news.html
+http://www.toywebb.net/category39_1.htm
+http://www.tparents.org/Moon-Books/sav/Sav-09.htm
+http://www.tpe.com/~altarboy/garage.htm
+http://www.tpe.com/~altarboy/nt040111.htm
+http://www.tpi.org/about/jobs.htm
+http://www.tpi.org/about/staff.htm
+http://www.tpigroup.com/mesa/MSW2.html
+http://www.tpl.org/tier3_cd.cfm?content_item_id=15476&folder_id=588
+http://www.tpl.org/tier3_cdl.cfm?content_item_id=1103&folder_id=726
+http://www.tpl.org/tier3_cdl.cfm?content_item_id=1137&folder_id=827
+http://www.tpl.org/tier3_cdl.cfm?content_item_id=9607&folder_id=2045
+http://www.tpl.org/tier3_print.cfm?folder_id=2045&content_item_id=9607&mod_type=1
+http://www.tpl.org/tier3_print.cfm?folder_id=588&content_item_id=15476&mod_type=1
+http://www.tppalestine.com/imp&exp/customs.html
+http://www.tpwd.state.tx.us/adv/birding/beginbird/beginbird.htm
+http://www.tpwd.state.tx.us/fish/specinfo/blkdrum/blackdrum.phtml
+http://www.tpwd.state.tx.us/news/news/040503a.phtml
+http://www.tpwd.state.tx.us/park/pedernal/pedernal.htm
+http://www.tqnyc.org/NYC040791/major_players.html
+http://www.tr-teach.org/
+http://www.trac.sun.ac.za/careers_chemical1_frame.htm
+http://www.traceit.com/hon/faq.htm
+http://www.traces-cl.com/archive/2000/novembre/luca.htm
+http://www.traces.org/maria.html
+http://www.traceysolicitors.ie/drink-driving-law.html
+http://www.tracheostomy.com/trachkids/kids8/noah.htm
+http://www.trackandfieldnews.com/tfn/displayArticle.jsp?id=456
+http://www.trackattack.co.uk/content.php?categoryId=151
+http://www.trackingterrorism.com/default.asp?dismode=article&artid=1453
+http://www.trackoff.org/railshow.htm
+http://www.tracycrocker.com/p17.htm
+http://www.tracyonthego.com/tracy/020605/3.html
+http://www.tradboats.com/others.html
+http://www.trade10.com/Congestion.html
+http://www.tradeforum.org/news/fullstory.php/aid/609/Business_Reacts_to_Canc%FAn.html
+http://www.trademe.co.nz/listings-feature/0005-0383-0603-/auction-21973468.htm
+http://www.trademe.co.nz/structure/show_member_listings.asp?member=415998
+http://www.trademinister.gov.au/transcripts/2004/041119_apec.html
+http://www.trademinister.gov.au/transcripts/2005/050307_ds.html
+http://www.tradeport.org/affiliates/
+http://www.tradeport.org/tutorial/starting/
+http://www.traderlist.com/RobynGriggs-RaySchwartz.html
+http://www.tradersnation.com/radio.shtml
+http://www.tradersworld.com/Merchant2/merchant.mvc?Screen=PROD&Store_Code=TW&Product_Code=096723803X
+http://www.tradesignals.com/glossary/Futures_contract
+http://www.tradestation.com/aboutus/03012004c.shtm
+http://www.tradgames.org.uk/games/Quoits.htm
+http://www.tradgames.org.uk/games/ShovelBoard.htm
+http://www.tradgirl.com/climbing_faq/starting.htm
+http://www.tradingacademy.com/lessons/lessons20050201.shtm
+http://www.tradingmarkets.com/gall_iag.site/main/daytrading/
+http://www.tradingmarkets.com/gall_iag.site/main/daytrading/?int=index_page&full=1&id=6014
+http://www.tradingmarkets.com/gall_iag.site/main/stocks/?int=index_page&full=1&id=6014
+http://www.tradingmarkets.com/gall_tlp.site/courses/main/?full=1&id=6068&fwww=1
+http://www.tradingmarkets.com/index.cfm/termsuse/
+http://www.tradingstandards.net/pages/consumer.htm
+http://www.traditionalvalues.org/
+http://www.traditionalvalues.org/index.php
+http://www.traditioninaction.org/HotTopics/b005ht.htm
+http://www.traditioninaction.org/bev/bev11-30-2001.htm
+http://www.trafficfile.com/termsofservice.htm
+http://www.trafford.com/4dcgi/view-item?item=4275&30185906-10058aaa
+http://www.traidcraft.co.uk/template2.asp?pageID=1606&fromID=1276
+http://www.traildatabase.org/pyr99/
+http://www.trailend.org/wed-expectations.htm
+http://www.trailerlife.com/cforum/index.cfm/fuseaction/thread/tid/14962789/gotomsg/14973880.cfm
+http://www.training-classes.com/course_hierarchy/companies/239_Consulting_Skills_USA.php
+http://www.training-classes.com/course_hierarchy/courses/2774_Role_Play_Delivery.php
+http://www.training-classes.com/course_hierarchy/keyword_index/brought.html
+http://www.training-classes.com/course_hierarchy/keyword_index/facing.html
+http://www.training-classes.com/course_hierarchy/keyword_index/sales_training.html
+http://www.training-classes.com/course_hierarchy/keyword_index/telephone.html
+http://www.training.nih.gov/onlineapps/trainingprograms/applications/CLITD_AdList.aspx?AdID=TD-67
+http://www.trainingcafe.com/privacy.cfm
+http://www.trainingexpert.com/mtip.htm
+http://www.trainingexpert.com/negtips.htm
+http://www.traininginstitute.co.uk/itoljournal.htm
+http://www.trainingjournal.com/b2btermsandconditions.jsp
+http://www.trainingjournal.com/news/index.jsp
+http://www.trainingpressreleases.com/
+http://www.trainingpressreleases.com/index.asp
+http://www.trainingschool.bham.org.uk/reviews/Yr%207%20mc%20lesson%20review%20mc%20birm.htm
+http://www.trains.com/Content/Dynamic/Articles/000/000/001/001oetky.asp
+http://www.trains.com/community/forum/topic.asp?TOPIC_ID=12119&page=3
+http://www.trains.com/community/forum/topic.asp?page=3&TOPIC_ID=12119
+http://www.tralac.org/scripts/content.php?id=3618
+http://www.tranquilspace.com/newsletter/jan_05.html
+http://www.trans-man.org/messages.html
+http://www.trans4mind.com/counterpoint/harris1.shtml
+http://www.trans4mind.com/counterpoint/rosen.shtml
+http://www.trans4mind.com/counterpoint/stockamp.shtml
+http://www.trans4mind.com/counterpoint/werner.shtml
+http://www.trans4mind.com/healing/question234.html
+http://www.trans4mind.com/healing/question402.html
+http://www.trans4mind.com/positive/positive8.shtml
+http://www.trans4mind.com/sedona.html
+http://www.transaction-one.com/en/yabasoft.jsp
+http://www.transaction.net/web/tutor/text/orwell.html
+http://www.transalt.org/campaigns/brooklyn/bridges1.html
+http://www.transalt.org/campaigns/reclaiming/
+http://www.transcendentalists.com/walden_the_village.htm
+http://www.transcoalition.org/c/sus_msrc/msrc_final.html
+http://www.transcoalition.org/cal/Summit/03sum_recap_tea3.html
+http://www.transcom.mil/organization.cfm
+http://www.transcomm.ox.ac.uk/traces/iss7pg1.htm
+http://www.transdiffusion.org/intertel/features/paying/
+http://www.transformationafrica.com/history%20africa_2005.htm
+http://www.transformcolumbusday.org/legal/
+http://www.transformyourlife.com/capra/caprazyme.htm
+http://www.transgenderzone.com/features/husband.htm
+http://www.transgenderzone.com/research/hrt.htm
+http://www.transitionsabroad.com/information/media/mentions.shtml
+http://www.translational-medicine.com/content/3/1/3
+http://www.translink.co.uk/safetyresponse.asp
+http://www.translocal.net/susanna/cf.html
+http://www.transom.org/tools/editing_mixing/200212.mbox.towne.html
+http://www.transparency.org/pressreleases_archive/2004/2004.07.17.i.a._shortlist_2004.html
+http://www.transpect.com/japan_diary/
+http://www.transport.tas.gov.au/licence_information/learner_supervisory_guidelines.html
+http://www.transport2000.org.uk/news/maintainNewsArticles.asp?NewsArticleID=226
+http://www.transport2000.org.uk/news/maintainNewsArticles.asp?NewsArticleID=73
+http://www.transview.org/news/index.cfm?prID=761
+http://www.transwareplc.com/company/management.html
+http://www.trappist.net/newweb/enews_06_28_04.html
+http://www.trashcity.org/STRIP/VENUES/WAGGON.HTM
+http://www.trauma.org/resus/massive.html
+http://www.traumaresources.org/emotional_trauma_online_video.htm
+http://www.travel-around.com/about/default.asp
+http://www.travel-net.com/~retap/smctest.htm
+http://www.travelblog.org/Africa/Tanzania/blog-3926.html
+http://www.travelblog.org/World/gy-gov.html
+http://www.travelbrochuregraphics.com/extra/five_regiems.htm
+http://www.travelchinaguide.com/attraction/shanxi/pingyao/street.htm
+http://www.travelchinaguide.com/intro/cuisine_drink/cuisine/minority.htm
+http://www.traveldoctor.co.uk/flights.htm
+http://www.travelgolf.com/blogs/rebel.blogger/2005/05/31/can_t_be_a_pga_professional_hang_out_and
+http://www.travelin-tigers.com/zdave/baby5.htm
+http://www.travelinginspain.com/culture.html
+http://www.travelinsure.com/faq/susa.htm
+http://www.travelintelligence.com/wsd/articles/art_847.html
+http://www.travelintelligence.net/wsd/hotels/htls_3833_Les_Suites_TaipeiChingCheng_Taipei_review.html
+http://www.travellady.com/Issues/Issue54/kohtao.htm
+http://www.travellers-autobarn.com/new-design2/sales-terms.shtml
+http://www.travellerspoint.com/forum.cfm?thread=1605
+http://www.travellersrestplantation.org/Educational%20Programs.htm
+http://www.travelmate.com.au/Places/Featured_Regions.asp?RegionId=14
+http://www.travelretailworld.com/default.asp?page=13&PID=121&ISS=9026
+http://www.travelscene.co.uk/bookcond.htm
+http://www.travelscope.co.uk/Default.aspx.LocID-0g8new00f.RefLocID-0g800a002.Lang-EN.htm
+http://www.travelstay.com/pages/StChristophers-ShepherdsBush.htm
+http://www.traveltrade.com/generic_page.jsp?articleID=27
+http://www.travelweekly.co.uk/Article1538.htm
+http://www.travelweekly.co.uk/Company87.htm
+http://www.travelwithcare.com/browse.asp?catID=743
+http://www.travis.org/PDFs/index.cfm?action=view&pdfid=72
+http://www.travis.org/PDFs/index.cfm?action=view&pdfid=73
+http://www.travis.org/PDFs/index.cfm?action=view&pdfid=74
+http://www.travisa.com/
+http://www.trawden.lancsngfl.ac.uk/2001diarypg.html
+http://www.trcresearch.org.za/prog.htm
+http://www.treadwayelem.com/PTA.html
+http://www.treas.gov/press/releases/js1533.htm
+http://www.treas.gov/press/releases/js2466.htm
+http://www.treas.gov/press/releases/js919.htm
+http://www.treas.gov/press/releases/po34.htm
+http://www.treas.gov/press/releases/rr1050.htm
+http://www.treasuredmemoriesca.com/july2005.html
+http://www.treasurer.gov.au/tsr/content/transcripts/2005/013.asp
+http://www.treasuresofbritain.org/ThreaveGarden.htm
+http://www.treasury.gov.au/documents/965/HTML/docshell.asp?URL=09_appendix_B.asp
+http://www.treasury.govt.nz/forecasts/prefu/1999/summary.asp
+http://www.treatment-options.com/article.cfm?PubID=CM06-6-1-06&Type=Article&KeyWords=
+http://www.treatment-options.com/article.cfm?PubID=ON06-1-2-04&Type=Article&KeyWords=
+http://www.trec.state.tx.us/inspector/professional_inspector_app.asp
+http://www.tree2mydoor.com/plantcare.asp
+http://www.treecareindustry.org/content/pubs/November%202002%20TCI%20-%20Bird%20and%20insect%20damage%20to%20trees.htm
+http://www.treecouncil.org.uk/projects/WhyPayTwice.htm
+http://www.treehouse.com/sedit.shtml
+http://www.treelink.org/books/simpleact/chapter3.htm
+http://www.treemedia.com/cfrlibrary/library/background/olcott.html
+http://www.treepeople.org/vfp.dll?OakTree~getPage~&PNPK=84
+http://www.treesaregood.com/treecare/tree_selection.asp
+http://www.treesfortomorrow.com/teachers.htm
+http://www.treesnakes.com/
+http://www.treklite.com/products/
+http://www.trekweb.com/tng/crew/worf.html
+http://www.tremariepersians.fsnet.co.uk/tremarie_kitten-advice.htm
+http://www.trenchtownreadingcentre.com/bookwishlist.html
+http://www.trenterprises.com/tre_pages/newprods.htm
+http://www.trentu.ca/education/concurrent/profile.htm
+http://www.trentu.ca/humanresources/humanrights.html
+http://www.tri-cityherald.com/news/2002/0505/story5.html
+http://www.triangle.co.uk/pdf/validate.asp?j=bji&vol=26&issue=3&year=2000&article=Johnson_JISE_26_3
+http://www.triangle.co.uk/pdf/validate.asp?j=eda&vol=17&issue=2&year=2002&article=5_Donicht-Fluck_EDAG_17_2_3_web
+http://www.triangle.co.uk/pdf/validate.asp?j=jit&vol=9&issue=1&year=2000&article=Fisher_JITT_9_1
+http://www.triangle.co.uk/pdf/validate.asp?j=jit&vol=9&issue=2&year=2000&article=Crawford_JITT_9_2
+http://www.triangle.co.uk/pdf/validate.asp?j=whr&vol=5&issue=3&year=1996&article=5-3-PS
+http://www.triangle.co.uk/pdf/validate.asp?j=wow&vol=4&issue=1&year=1997&article=04-1-ek
+http://www.triangle.co.uk/pdf/viewpdf.asp?j=for&vol=43&issue=2&year=2001&article=Forum_43_2_CoreContent&id=69.3.161.75
+http://www.triangle.com/marketplace/display/farm/625/
+http://www.triangle.org/resources/leadership/lead-charge/index.cfm
+http://www.trianglefreepress.org/
+http://www.tribalbellydance.com/classes.php
+http://www.tribaltextiles.info/articles/change_revival_Mai_Chau.htm
+http://www.tribes.com/abstract_transform_environments.htm
+http://www.tribstar.com/articles/2005/06/18/features/history/history03.txt
+http://www.tribtown.com/main.asp?sectionid=1&subsectionid=1&articleid=9080
+http://www.tribuneindia.com/1998/98dec07/edu.htm
+http://www.tribuneindia.com/1998/98nov14/biz.htm
+http://www.tribuneindia.com/2000/20001017/world.htm
+http://www.tribuneindia.com/2001/20010304/cth3.htm
+http://www.tribuneindia.com/2001/20010310/ldh1.htm
+http://www.tribuneindia.com/2001/20010320/biz.htm
+http://www.tribuneindia.com/2001/20010511/biz.htm
+http://www.tribuneindia.com/2001/20010520/world.htm
+http://www.tribuneindia.com/2001/20010521/sports.htm
+http://www.tribuneindia.com/2001/20010818/windows/above.htm
+http://www.tribuneindia.com/2001/20010903/login/main1.htm
+http://www.tribuneindia.com/2001/20011122/ncr1.htm
+http://www.tribuneindia.com/2001/20011130/cth1.htm
+http://www.tribuneindia.com/2001/20011214/ldh1.htm
+http://www.tribuneindia.com/2002/20020101/ldh1.htm
+http://www.tribuneindia.com/2002/20020103/haryana.htm
+http://www.tribuneindia.com/2002/20020106/ldh1.htm
+http://www.tribuneindia.com/2002/20020120/biz.htm
+http://www.tribuneindia.com/2002/20020209/edit.htm
+http://www.tribuneindia.com/2002/20020225/biz.htm
+http://www.tribuneindia.com/2002/20020226/ncr1.htm
+http://www.tribuneindia.com/2002/20020402/ldh.htm
+http://www.tribuneindia.com/2002/20020427/spr-trib.htm
+http://www.tribuneindia.com/2002/20020621/main3.htm
+http://www.tribuneindia.com/2002/20020717/haryana.htm
+http://www.tribuneindia.com/2002/20020803/biz.htm
+http://www.tribuneindia.com/2002/20020808/cth1.htm
+http://www.tribuneindia.com/2002/20020831/nation.htm
+http://www.tribuneindia.com/2002/20020928/nation.htm
+http://www.tribuneindia.com/2002/20021005/ldh1.htm
+http://www.tribuneindia.com/2002/20021007/nation.htm
+http://www.tribuneindia.com/2002/20021129/ncr1.htm
+http://www.tribuneindia.com/2002/20021212/cth1.htm
+http://www.tribuneindia.com/2003/20030122/sports.htm
+http://www.tribuneindia.com/2003/20030210/ncr1.htm
+http://www.tribuneindia.com/2003/20030213/ldh1.htm
+http://www.tribuneindia.com/2003/20030216/nation.htm
+http://www.tribuneindia.com/2003/20030316/spectrum/nature.htm
+http://www.tribuneindia.com/2003/20030401/ldh1.htm
+http://www.tribuneindia.com/2003/20030401/nation.htm
+http://www.tribuneindia.com/2003/20030420/cth1.htm
+http://www.tribuneindia.com/2003/20030608/class-f.htm
+http://www.tribuneindia.com/2003/20030616/edit.htm
+http://www.tribuneindia.com/2003/20030717/biz.htm
+http://www.tribuneindia.com/2003/20030829/cth1.htm
+http://www.tribuneindia.com/2003/20030830/windows/above.htm
+http://www.tribuneindia.com/2003/20030909/edu.htm
+http://www.tribuneindia.com/2003/20030930/biz.htm
+http://www.tribuneindia.com/2003/20031129/ncr1.htm
+http://www.tribuneindia.com/2003/20031229/edit.htm
+http://www.tribuneindia.com/2004/20040102/j&k.htm
+http://www.tribuneindia.com/2004/20040111/ncr1.htm
+http://www.tribuneindia.com/2004/20040116/himachal.htm
+http://www.tribuneindia.com/2004/20040129/ncr1.htm
+http://www.tribuneindia.com/2004/20040211/edit.htm
+http://www.tribuneindia.com/2004/20040329/edit.htm
+http://www.tribuneindia.com/2004/20040427/sports.htm
+http://www.tribuneindia.com/2004/20040613/delhi.htm
+http://www.tribuneindia.com/2004/20040702/chd.htm
+http://www.tribuneindia.com/2004/20040713/himachal.htm
+http://www.tribuneindia.com/2004/20040719/delhi.htm
+http://www.tribuneindia.com/2004/20040730/sports.htm
+http://www.tribuneindia.com/2004/20040829/ldh1.htm
+http://www.tribuneindia.com/2004/20040904/edit.htm
+http://www.tribuneindia.com/2004/20040907/delhi.htm
+http://www.tribuneindia.com/2004/20040915/edit.htm
+http://www.tribuneindia.com/2004/20040916/ldh.htm
+http://www.tribuneindia.com/2004/20040922/biz.htm
+http://www.tribuneindia.com/2004/20041024/edit.htm
+http://www.tribuneindia.com/2004/20041027/cth1.htm
+http://www.tribuneindia.com/2004/20041101/delhi.htm
+http://www.tribuneindia.com/2004/20041129/ldh1.htm
+http://www.tribuneindia.com/2005/20050124/ldh1.htm
+http://www.tribuneindia.com/2005/20050203/nation.htm
+http://www.tribuneindia.com/2005/20050215/cth1.htm
+http://www.tribuneindia.com/2005/20050224/aplus.htm
+http://www.tribuneindia.com/2005/20050308/delhi.htm
+http://www.tribuneindia.com/2005/20050313/haryana.htm
+http://www.tribuneindia.com/2005/20050316/haryana.htm
+http://www.tribuneindia.com/2005/20050403/world.htm
+http://www.tribuneindia.com/2005/20050404/nation.htm
+http://www.tribuneindia.com/2005/20050408/himachal.htm
+http://www.tribuneindia.com/2005/20050414/cth1.htm
+http://www.tribuneindia.com/2005/20050423/himachal.htm
+http://www.tribuneindia.com/2005/20050514/cth1.htm
+http://www.tribuneindia.com/2005/20050526/edit.htm
+http://www.tribuneindia.com/2005/20050529/world.htm
+http://www.tribuneindia.com/2005/20050531/cth1.htm
+http://www.tribuneindia.com/2005/20050603/cth1.htm
+http://www.tribuneindia.com/2005/20050615/ldh1.htm
+http://www.tribuneindia.com/2005/20050616/punjab1.htm
+http://www.tribuneindia.com/2005/20050622/j&k.htm
+http://www.tribweb.co.uk/michaelfoot/press/hagerty18032002.htm
+http://www.tricare.osd.mil/
+http://www.tricitymed.org/
+http://www.triggerfinger.org/weblog/most_popular.jsp
+http://www.trilateral.org/projwork/tfrsums/tfr08.htm
+http://www.trilion.com/An.ARGUS%20Forming.htm
+http://www.trilliumfoundation.org/OTF-English/html/how_to_apply/hta-tools_tips_results_activities.shtml
+http://www.trilobites.info/triloclass.htm
+http://www.trimedica.com/press.html
+http://www.trincoll.edu/depts/phil/philo/phils/muslim/ghazali.html
+http://www.trindersfinetools.co.uk/bfurn.htm
+http://www.trinet.com/HR_resources/HR_Library/content_pages/iacorporate.htm
+http://www.trinicenter.com/Raffique/2005/Jan/302005.htm
+http://www.trinicenter.com/modules.php?name=News&file=article&sid=231
+http://www.trinicenter.com/oops/lockerbie.html
+http://www.trinicenter.com/world/venez/lessons9.shtml
+http://www.trinidiary.com/archives/volume02/october/02oct01index.htm
+http://www.trinity-electronics.com/miningproducts.htm
+http://www.trinity.unimelb.edu.au/summerschool/science/generalinfo.shtml
+http://www.trinityminerals.com/ms2002/misc.shtml
+http://www.trinitymirror.com/ir/results/2004prelims/tm_objectid=15241520&method=full&siteid=111046&headline=progress-on-key-projects-name_page.html
+http://www.trinityslash.com/emrin_annie/Evolution.html
+http://www.trinitywallstreet.org/congregation/pursue.shtml
+http://www.trinp.org/MNI/BoF/4/3/4.HTM
+http://www.trinstitute.org/ojpcr/5_1finley.htm
+http://www.tripadvisor.com/AllReviews-g194863-Positano_Amalfi_Coast_Campania.html
+http://www.tripadvisor.com/Attraction_Review-g30890-d270584-Reviews-Ivy_Green-Tuscumbia_Alabama.html
+http://www.tripadvisor.com/Attractions-g187371-Activities-Cologne_North_Rhine_Westphalia.html
+http://www.tripadvisor.com/Attractions-g187371-Cologne_North_Rhine_Westphalia-Activities.html
+http://www.tripadvisor.com/Flights-g186346-York_North_Yorkshire_England-Cheap_Discount_Airfares.html
+http://www.tripadvisor.com/Hotel_Review-g147270-d500686-Reviews-Gran_Club_Santa_Lucia-Cuba.html
+http://www.tripadvisor.com/Hotel_Review-g147275-d151573-Reviews-Hotel_Club_Kawama-Varadero_Beach_Cuba.html
+http://www.tripadvisor.com/Hotel_Review-g147275-d263109-Reviews-Coralia_Club_Playa_de_Oro_Varadero-Varadero_Beach_Cuba.html
+http://www.tripadvisor.com/Hotel_Review-g147296-d150927-Reviews-Coyaba_Beach_Resort-St_George_s_Grenada.html
+http://www.tripadvisor.com/Hotel_Review-g186346-d210390-Reviews-One3Two-York_North_Yorkshire_England.html
+http://www.tripadvisor.com/Hotel_Review-g186515-d501644-Reviews-The_Gables_Hotel-Gretna_Green_Dumfries_and_Galloway_Scotland.html
+http://www.tripadvisor.com/Hotel_Review-g187234-d197221-Reviews-Comfort_Hotel_Roosevelt-Nice_French_Riviera_Cote_d_Azur_Provence.html
+http://www.tripadvisor.com/Hotel_Review-g187234-d259225-Reviews-Armenonville_Hotel-Nice_French_Riviera_Cote_d_Azur_Provence.html
+http://www.tripadvisor.com/Hotel_Review-g187785-d202913-Reviews-Britannique_Hotel-Naples_Campania.html
+http://www.tripadvisor.com/Hotel_Review-g187905-d231245-Reviews-Carpediem_Assisi_Living_Club-Assisi_Umbria.html
+http://www.tripadvisor.com/Hotel_Review-g59929-d100853-Reviews-Radisson_Hotel_Conference_Center_Green_Bay-Green_Bay_Wisconsin.html
+http://www.tripadvisor.com/Hotel_Review-g60013-d100871-Reviews-The_American_Club-Kohler_Wisconsin.html
+http://www.tripadvisor.com/Hotel_Review-g60616-d101363-Reviews-or10-Kauai_Sands_Hotel-Kapaa_Kauai_Hawaii.html
+http://www.tripadvisor.com/Hotel_Review-g60634-d114075-Reviews-or10-Sheraton_Maui_Hotel-Lahaina_Maui_Hawaii.html
+http://www.tripadvisor.com/Hotel_Review-g60956-d99535-Reviews-or10-Westin_Riverwalk-San_Antonio_Texas.html
+http://www.tripadvisor.com/Restaurants-g54046-York_Pennsylvania.html
+http://www.tripadvisor.com/ShowUrl-g147395-a_nw.true-r1481762-e
+http://www.tripadvisor.com/ShowUserReviews-g155019-d186891-r3210372-Courtyard_Toronto_Downtown-Toronto_Ontario.html
+http://www.tripadvisor.com/ShowUserReviews-g186338-d199846-r2584503-Radisson_Edwardian_Berkshire_Hotel-London_England.html
+http://www.tripadvisor.com/ShowUserReviews-g186338-d214658-r2847246-The_Sanctuary_House_Hotel-London_England.html
+http://www.tripadvisor.com/ShowUserReviews-g187147-d198085-r3007042-Terrass_Hotel-Paris_Ile_de_France.html
+http://www.tripadvisor.com/ShowUserReviews-g187870-d235821-r2877497-Pensione_Accademia_Villa_Maravege-Venice_Veneto.html
+http://www.tripadvisor.com/ShowUserReviews-g274707-d276529-r2846360-Cloister_Inn_Hotel-Prague_Bohemia.html
+http://www.tripadvisor.com/ShowUserReviews-g274707-d276529-r2886562-Cloister_Inn_Hotel-Prague_Bohemia.html
+http://www.tripadvisor.com/ShowUserReviews-g31350-d302329-r2221951-Westin_Kierland_Villas-Scottsdale_Arizona.html
+http://www.tripadvisor.com/ShowUserReviews-g32171-d119757-r1440509-Hilton_Garden_Inn_Carlsbad_Beach-Carlsbad_California.html
+http://www.tripadvisor.com/ShowUserReviews-g34227-d84467-r2490993-Lago_Mar_Resort_and_Club-Fort_Lauderdale_Florida.html
+http://www.tripadvisor.com/ShowUserReviews-g34227-d84467-r2698935-Lago_Mar_Resort_and_Club-Fort_Lauderdale_Florida.html
+http://www.tripadvisor.com/ShowUserReviews-g34227-d84467-r2698940-Lago_Mar_Resort_and_Club-Fort_Lauderdale_Florida.html
+http://www.tripadvisor.com/ShowUserReviews-g34467-d85224-r3527119-Park_Shore_Resort-Naples_Florida.html
+http://www.tripadvisor.com/ShowUserReviews-g43552-d78647-r1990783-William_Sauntry_Mansion-Stillwater_Minnesota.html
+http://www.tripadvisor.com/ShowUserReviews-g43552-d78647-r2081493-William_Sauntry_Mansion-Stillwater_Minnesota.html
+http://www.tripadvisor.com/ShowUserReviews-g60632-d87280-r2206460-Kauhale_Makai_Village_by_the_Sea-Kihei_Maui_Hawaii.html
+http://www.tripadvisor.com/ShowUserReviews-g60864-d143295-r1758574-Bourbon_Street-New_Orleans_Louisiana.html
+http://www.tripadvisor.com/ShowUserReviews-g60864-d143295-r1885311-Bourbon_Street-New_Orleans_Louisiana.html
+http://www.tripadvisor.com/ShowUserReviews-g60898-d86233-r3515163-Omni_Hotel_at_CNN_Center-Atlanta_Georgia.html
+http://www.tripcheck.com/RoadCond/izone1.htm
+http://www.tripcheck.com/RoadCond/izone2.htm
+http://www.tripcheck.com/RoadCond/izone4.htm
+http://www.tripmongolia.com/2/tour11.htm
+http://www.tripnet.org/state/Maine081303.htm
+http://www.tripso.com/archives/2004/10/whos_next_a_cha.html
+http://www.tripso.com/archives/2005/02/5_reasons_to_fi.html
+http://www.triscene.com/Archive15.htm
+http://www.trishsteas.com/glossary/general_terms.php
+http://www.tristatebassets.org/apply.html
+http://www.tristatebassets.org/fosterapp.html
+http://www.tritech.co.uk/Support/KB/Seanet/Support-KB-Seanet.htm
+http://www.triz-journal.com/archives/1999/09/e/
+http://www.triz-journal.com/archives/2000/04/a/
+http://www.triz-journal.com/archives/2002/06/f/
+http://www.trlabs.ca/new/press_releases/communitydinnerspeech2005.html
+http://www.trmagonline.com/Winter04/winter04ammotacop.htm
+http://www.trmca.org/education/scholarshiprules.htm
+http://www.trocadero.com/directory/Fine_Art:Paintings:Miniatures30.html
+http://www.trocadero.com/directory/Vintage_Arts:Regional_Art:Asian:Chinese:Pottery.html
+http://www.trojanhorseantiques.com/glass_page_3.htm
+http://www.trollopestoryprize.org/business_of_marriage.htm
+http://www.troma.com/
+http://www.tronia.com/aspintro.html
+http://www.tronixweb.com/shopsite_sc/store/html/xboxsoftwarea-h.html
+http://www.troop97.net/bsahist3.htm
+http://www.troop97.net/bshb_1.htm
+http://www.tropicstar.com/04News09.html
+http://www.tropsoft.com/pcsecurity/pressrel.htm
+http://www.trosch.org/chu/authorit.htm
+http://www.troubledwith.com/Web/groups/public/@fotf_troubledwith/documents/articles/twi_topic_008625.cfm
+http://www.troubledwith.com/stellent/groups/public/%5C@fotf_troubledwith/documents/articles/twi_013895.cfm?channel=Parenting%20Teens&topic=Dating&sssct=Stories
+http://www.troubledwith.com/stellent/groups/public/%5C@fotf_troubledwith/documents/articles/twi_029843.cfm?channel=Life%20Pressures&topic=Self-Image&sssct=Stories
+http://www.troublesells.com/archives/storylines/the_blue_girl/
+http://www.troubleshooters.com/codecorn/littperl/perlreg.htm
+http://www.troubleshooters.com/tpromag/200003/200003.htm
+http://www.troubleshooters.com/tpromag/200008/200008.htm
+http://www.troubleshooters.com/tpromag/200011/200011.htm
+http://www.troutnovascotia.ca/issues.htm
+http://www.troynovant.com/Franson/Essays/Postage-Stamp-Countries.html
+http://www.trsco.com/cgi-bin/wsmbb/wsmbb.cgi?RT+ZZQFXTMTXD/SIFHRSTMFS+234+0+Blues+2.2890
+http://www.trsiyengar.com/id21.html
+http://www.truceteachers.org/press.html
+http://www.truckflix.com/company.php?compid=220
+http://www.truckingsolutions.com/fairuse.html
+http://www.truckmiles.com/permits.asp
+http://www.trucknet.co.nz/
+http://www.truckstuffusa.com/350seriesdeluxereadyfitvehiclecoverbycovercraft.html
+http://www.trucktraderonline.com/
+http://www.trucktraderonline.com/contact.html
+http://www.trud.org/english/14_09_2000+.htm
+http://www.truecolorscareer.com/
+http://www.truepoker.com/affiliate_agreement.html
+http://www.truepoker.com/news_promos.html
+http://www.truetest.com/physician/econ.htm
+http://www.trufax.org/avoid/nazi.html
+http://www.trulyhuge.com/SupplementSecrets/
+http://www.trulyhuge.com/strengthtrainingprograms.htm
+http://www.truman.gov/advice/advice_show.htm?doc_id=247287
+http://www.trumanlibrary.org/hstpaper/dennisonhst.htm
+http://www.trumanlibrary.org/publicpapers/index.php?pid=1821&st=&st1=
+http://www.trumanlibrary.org/speaks.htm
+http://www.trumanlibrary.org/whistlestop/locpol.htm
+http://www.trumanlibrary.org/whistlestop/study_collections/korea/large/korea829_94.htm
+http://www.trumanlibrary.org/whistlestop/trumanfile/locpol.htm
+http://www.trump.net.au/~greenhou/
+http://www.trumpetguild.org/itgyouth/masterclass/Vizzutti.htm
+http://www.trussel.com/hf/tito6.htm
+http://www.trussel.com/kir/dic/find_t.htm
+http://www.trust-film.dk/off_vis_film.asp?id=10
+http://www.trust-film.dk/off_vis_film.asp?id=150
+http://www.trust-film.dk/off_vis_film.asp?id=52
+http://www.trust-film.dk/off_vis_film.asp?id=63
+http://www.trust-uk.demon.co.uk/archives6.htm
+http://www.trustees.org/DenaliNationalParkArticles.htm
+http://www.trustmymechanic.com/45.html
+http://www.trustsandestates.com/ar/estate_grammleachbliley_deadlines_draw/
+http://www.truth.com/TechnicalSupport/TechNote7.cfm?menu=contractor
+http://www.truthabouttrade.org/article.asp?id=1221
+http://www.truthabouttrade.org/article.asp?id=3350
+http://www.truthandpolitics.org/proposal.php
+http://www.truthbecomeslies.com/
+http://www.truthbeknown.com/holding.htm
+http://www.truthfulnews.com/phpBB2/about573.html
+http://www.truthfulnews.com/phpBB2/ntopic594.html
+http://www.truthfulnews.com/phpBB2/post-1287.html
+http://www.truthinjustice.org/dorotik.htm
+http://www.truthinjustice.org/laughman.htm
+http://www.truthinjustice.org/montana-lab.htm
+http://www.truthnet.org/islam/Qurangil5.html
+http://www.truthorfiction.com/rumors/c/canolaoil.htm
+http://www.truthorfiction.com/rumors/f/foreignbeef.htm
+http://www.truthorfiction.com/rumors/i/iams.htm
+http://www.truthorfiction.com/rumors/k/kerry-swiftboats.htm
+http://www.truthorfiction.com/rumors/m/michaelhingson.htm
+http://www.truthorfiction.com/rumors/n/notaboutsex.htm
+http://www.truthorfiction.com/rumors/s/survivor8.htm
+http://www.truthorfiction.com/rumors/z/zimbabwepetition.htm
+http://www.truthout.org/docs_01/01.11F.Arms.Carlyle.htm
+http://www.truthout.org/docs_01/02.01E.Cheney.Hussein.htm
+http://www.truthout.org/docs_04/083004A.shtml
+http://www.truthout.org/docs_04/110504A.shtml
+http://www.truthout.org/docs_04/120504G.shtml
+http://www.truthout.org/docs_04/121504L.shtml
+http://www.truthout.org/docs_04/121704X.shtml
+http://www.truthout.org/docs_04/printer_083004A.shtml
+http://www.truthout.org/docs_05/010605G.shtml
+http://www.truthout.org/docs_05/010805G.shtml
+http://www.truthout.org/docs_05/011405Y.shtml
+http://www.truthout.org/docs_05/011905Y.shtml
+http://www.truthout.org/docs_05/printer_010805G.shtml
+http://www.truthout.org/docs_05/printer_011405Y.shtml
+http://www.truthout.org/docs_2005/020805Z.shtml
+http://www.truthout.org/docs_2005/052405Y.shtml
+http://www.truthout.org/docs_2005/060805Y.shtml
+http://www.truthout.org/docs_2005/061205Z.shtml
+http://www.truthout.org/docs_2005/062305Z.shtml
+http://www.truthout.org/docs_2005/L020105A.shtml
+http://www.truthout.org/docs_2005/printer_031605J.shtml
+http://www.truthout.org/docs_2005/printer_L020105A.shtml
+http://www.truthout.org/issues_05/060105LA.shtml
+http://www.truthout.org/issues_05/061605HB.shtml
+http://www.truthtree.com/Politics/posts/335000.html
+http://www.truthtree.com/Politics/posts/335003.html
+http://www.truthusa.org/articles/irs/jury.htm
+http://www.trytel.com/~tristan/towns/york1.html
+http://www.ts-cyberia.net/reflections/200010.html
+http://www.ts-cyberia.net/reflections/200012.html
+http://www.ts.wyjs.org.uk/cfaqs.htm
+http://www.ts.wyjs.org.uk/schoolsfaqs.htm
+http://www.tsa.gov/public/display?theme=47&content=0900051980063cdd
+http://www.tsa.gov/public/display?theme=47&content=09000519800a612f
+http://www.tsa.gov/public/display?theme=47&content=09000519800a612f&print=yes
+http://www.tsa.org.uk/you_magazine__the_mail_on_sund.asp
+http://www.tsachoice.com/comp_equip.html
+http://www.tsachoice.com/neg_serviceagree.html
+http://www.tsachoice.com/service_repair.html
+http://www.tsaweb.org/competitive_events/national/hs.html
+http://www.tsbp.state.tx.us/newsletter/ArchCompRemind.htm
+http://www.tsbvi.edu/Outreach/seehear/fall98/hand.htm
+http://www.tsbvi.edu/textbooks/afb/mm-factsheet.htm
+http://www.tsc.berkeley.edu/html/newsletter/Fall03/left_behind.html
+http://www.tsc.berkeley.edu/html/newsletter/Spring04/macdonald.html
+http://www.tscm.com/outsideplant.html
+http://www.tscpulpitseries.org/english/1990s/ts940926.html
+http://www.tscpulpitseries.org/english/1990s/ts990802.html
+http://www.tscpulpitseries.org/english/2000s/ts000228.html
+http://www.tsea.org/page_696.php
+http://www.tsgs.unt.edu/mcnair_graduate_fellowships.htm
+http://www.tsh.org/disorders/hyperthyroidism/overactive.html
+http://www.tsha.utexas.edu/handbook/online/articles/print/GG/kbg13.html
+http://www.tsleads.com/channelpartners.htm
+http://www.tsn.ca/canadian_hockey/your_call.asp?messageId=568538&hubname=canadian_hockey
+http://www.tsn.ca/cfl/your_call.asp?messageId=492409&hubname=cfl
+http://www.tsn.ca/classic/your_call.asp?messageId=375750&hubname=espn_classic
+http://www.tsn.ca/news_story.asp?ID=98894&hubName=nhl-sens
+http://www.tsn.ca/nhl/your_call.asp?messageId=518480&hubname=nhl
+http://www.tsn.ca/nhl/your_call.asp?messageId=603900&hubname=nhl
+http://www.tsn.org.uk/TSNnewsite/TSN%20stuff/Activity/blythjex.html
+http://www.tsnhorse.com/cgi-bin/editorial/article.cgi?id=742
+http://www.tsnn.com/
+http://www.tso.co.uk/bookshop/bookstore.asp?FO=38793
+http://www.tsp.gov/curinfo/loanprogram.html
+http://www.tsp.gov/faq/faq7.html
+http://www.tsra.com/Lott109.htm
+http://www.tsra.com/Lott94.htm
+http://www.tsra.org/CEP.htm
+http://www.tsroadmap.com/physical/hair/zapcost.html
+http://www.tss.oregonstate.edu/cn/policy/2004/?page=services&type=normal
+http://www.tssaa.org/Classifications/20002005classification.htm
+http://www.tsta.org/
+http://www.tsuccess.dircon.co.uk/timemanagementtips.htm
+http://www.tsunyotakohet.com/umdaetb.htm
+http://www.tta.gov.uk/php/read.php?resourceid=1858
+http://www.tta.gov.uk/php/read.php?resourceid=2445
+http://www.tta.gov.uk/php/read.php?resourceid=4353
+http://www.tta.gov.uk/php/read.php?resourceid=4354
+http://www.ttctraining.co.uk/eventsday.html
+http://www.ttgconsultants.com/articles/Variety_Panels_Pump_Praisers.html
+http://www.tti-corp.com/english/customers/successstories.php
+http://www.ttinteractive.com/TTI/Pages/flights/airline-flights.asp
+http://www.ttinteractive.com/TTI/Pages/management-system/airlines-management-system.asp
+http://www.ttinteractive.com/TTI/Pages/seating/airline-seating.asp
+http://www.ttlc.org/high_school_camp.htm
+http://www.ttsd.k12.or.us/schools/mww/garden/woodwardgardens.htm
+http://www.ttuhsc.edu/Communications/nr3-nov2003.html
+http://www.ttuhsc.edu/libraries/databases/db_a-h.aspx
+http://www.tu-harburg.de/rzt/rzt/it/QM/cat.html
+http://www.tuaw.com/2005/04/15/trent-reznor-rules/
+http://www.tuaw.com/2005/06/07/lifedrive-hands-on-first-impressions/
+http://www.tubeweld.com/index1.html
+http://www.tubeworld.com/6SN7.html
+http://www.tuc.org.uk/changingtimes/tucprocess_ideas.htm
+http://www.tuc.org.uk/congress/tuc-2633-f26.cfm
+http://www.tuc.org.uk/congress/tuc-4793-f4.cfm
+http://www.tuc.org.uk/economy/tuc-7732-f0.cfm
+http://www.tuc.org.uk/economy/tuc-9006-f0.cfm
+http://www.tuc.org.uk/equality/tuc-2443-f0.cfm
+http://www.tuc.org.uk/h_and_s/tuc-4474-f0.cfm
+http://www.tuc.org.uk/h_and_s/tuc-6819-f0.cfm
+http://www.tuc.org.uk/h_and_s/tuc-9287-f0.cfm
+http://www.tuc.org.uk/h_and_s/tuc-9504-f0.cfm
+http://www.tuc.org.uk/learning/tuc-9551-f0.cfm
+http://www.tuc.org.uk/skills/tuc-9278-f0.cfm
+http://www.tuc.org.uk/tuc/rights_student.cfm
+http://www.tuc.org.uk/work_life/index.cfm
+http://www.tucantravel.com/tours/south_central_america_tour/CUH
+http://www.tuckborough.net/battles.html
+http://www.tuckborough.net/hills.html
+http://www.tucows.com/
+http://www.tucsoncitizen.com/index.php?page=business&story_id=013105d1_coffee
+http://www.tucsongardener.com/FAQ_Glossary/faq.htm
+http://www.tucsonshowguide.com/fsg/tucson/dining.cfm
+http://www.tucsonshowguide.com/stories/may05/cosmetics.cfm
+http://www.tucsonweekly.com/gbase/cinema/Content?oid=oid:63689
+http://www.tude.com/prn/prn04q1/p040216NeosLosing.htm
+http://www.tufts.edu/dental/patient/rights/mass.html
+http://www.tufts.edu/hr/tips/meeting.html
+http://www.tufts.edu/tuftsrecycles/more/computers.html
+http://www.tufts.edu/vet/admissions/faqs.html
+http://www.tufts.edu/vet/ccm/ggmins100804.htm
+http://www.tuftshillel.org/jl-rab04-time3.html
+http://www.tug.org/tex-archive/info/beginlatex/html/chapter7.html
+http://www.tug1.net/tugbbs1/Forum2/HTML/008594-2.html
+http://www.tug1.net/tugbbs1/Forum2/HTML/008594.html
+http://www.tug2.net/advice/images.htm
+http://www.tui.edu/ASN/praxis/default.asp
+http://www.tui.ie/Education%20Issues/Guidelines.html
+http://www.tulane.edu/~asb/documents/procedure.html
+http://www.tulane.edu/~hr/HRalert_July.shtml
+http://www.tulane.edu/~latner/HomePage/SyllabusF2002.html
+http://www.tulane.edu/~swacsa/papers/12.htm
+http://www.tulipsandbears.com/short.htm
+http://www.tuliptreepress.com/tstmnals.htm
+http://www.tullistrees.org/
+http://www.tulsakids.com/july-1.html
+http://www.tulsaschools.org/index.shtm
+http://www.tumbleweed.com/company/press_releases/2004/2004-04-16.html
+http://www.tupbiosystems.com/articles/it_is_xp.html
+http://www.tuppenceworth.ie/Politics/geary.htm
+http://www.tuppenceworth.ie/Politics/nonice.htm
+http://www.turbomagazine.com/features/0203tur_darkstar/
+http://www.turbotax.com/
+http://www.turbotax.com/articles/BusinessExpensesforTeachers.html
+http://www.turbotax.com/articles/SummaryofTaxLawChanges.html
+http://www.turing.org.uk/publications/physics.html
+http://www.turismoinlanga.it/Text_INGLESE/tour_7g.htm
+http://www.turizm.net/economy/exports.html
+http://www.turizm.net/turkey/tips/storyfood.html
+http://www.turkishtime.org/sector_6/92.asp
+http://www.turkishtime.org/subat/134_en_1.htm
+http://www.turkishweekly.net/articles.php?id=79
+http://www.turkishweekly.net/articles.php?id=82
+http://www.turkotek.com/mini_salon_00003/ms3t12.htm
+http://www.turksandcaicos.tc/MiddleCaicos/
+http://www.turnerlearning.com/turnersouth/storytelling/varieties.html
+http://www.turnerporter.ca/etiquet.htm
+http://www.turning-point.co.uk/About+Us/New+Business/
+http://www.turningpointnow.com/
+http://www.turningpointscotland.com/services/drugServices/leith.htm
+http://www.turningpts.org/Henry%20Lord%20MS%20in%20News.htm
+http://www.turningtooneanother.net/
+http://www.turningtooneanother.net/aboutthebook.html
+http://www.turningtooneanother.net/howtostart.html
+http://www.turnkey.com.au/tksweb/products/xice.html
+http://www.turntablebasics.com/
+http://www.turriffshow.org/Trade/
+http://www.turtlehomes.com/models.html
+http://www.turtlesoft.com/GSManual/customer.htm
+http://www.turtlesoft.com/GSManual/estimate.htm
+http://www.turtlesoft.com/GSStartManual/lesson9.htm
+http://www.turtletrack.org/Issues02/Co08242002/CO_08242002_Thisdate.htm
+http://www.turtletrader.com/critical-thinking.html
+http://www.turtletrader.com/tsta2.html
+http://www.tuscl.com/NewbieFAQ.asp
+http://www.tuscl.com/newbiefaq.asp
+http://www.tutor2u.net/economics/content/topics/introduction/factor.htm
+http://www.tutti.co.uk/shop/CDs/Orchestral/KHOKE-SOM234-R65/details.html
+http://www.tuv.org.au/Abangood.htm
+http://www.tuv.org.au/abangood.htm
+http://www.tuxmagazine.com/
+http://www.tv-ark.org.uk/itvsouthwest/westcountrymain.html
+http://www.tv.cbc.ca/newsinreview/feb98/asia/waiting.htm
+http://www.tv.com/epid/show/24641/episode_guide.html
+http://www.tvbarn.com/ticker2004/archives/028133.shtml
+http://www.tvcameramen.com/studio/chiropractic.htm
+http://www.tvcc.cc.or.us/BusinessEd/Degrees/MedTransAAS.htm
+http://www.tvcentury21.com/content/view/45/41/
+http://www.tvcentury21.com/index.php?option=content&task=view&id=45
+http://www.tvgameshows.net/bbplayers.htm
+http://www.tvgasm.com/archives/big_brother/000901.php
+http://www.tvgasm.com/archives/miscellaneous_tv/000829.php
+http://www.tvhandbook.com/History/History_TV.htm
+http://www.tvhandbook.com/History/History_timeline.htm
+http://www.tvia.com/index.cfm?page=body&crid=17
+http://www.tvo.fi/432.htm
+http://www.tvradioworld.com/contact/suggest.asp
+http://www.tvshowsondvd.com/articles/seth.cfm
+http://www.tvshowsondvd.com/releaseinfo.cfm?ReleaseID=1314
+http://www.tvshowsondvd.com/reviewlist.cfm?ShowID=622
+http://www.tvtattle.com/
+http://www.tvtechnology.com/features/Focus-on-editing/f_JA_Focus_on_Editing.shtml
+http://www.tvtechnology.com/features/Inside-Audio/f-dm-wtc.shtml
+http://www.tvtechnology.com/features/inside-production/f_WS_Gimme_that_Ole.shtml
+http://www.tvtome.com/BeyondBelief/season1.html
+http://www.tvtome.com/ER/season10.html
+http://www.tvtome.com/ER/season6.html
+http://www.tvtome.com/FalconCrest/
+http://www.tvtome.com/FullHouse/
+http://www.tvtome.com/PortCharles/
+http://www.tvtome.com/tvtome/servlet/EpisodeGuideSummary/showid-1265/season-3
+http://www.tvtome.com/tvtome/servlet/EpisodeGuideSummary/showid-1576/Big_Apple/
+http://www.tvtome.com/tvtome/servlet/EpisodeGuideSummary/showid-16989/Cold_Case/
+http://www.tvtome.com/tvtome/servlet/EpisodeGuideSummary/showid-3173/Max_Headroom/
+http://www.tvtome.com/tvtome/servlet/EpisodeGuideSummary/showid-4903/Off_Centre/
+http://www.tvtome.com/tvtome/servlet/GuidePageServlet/showid-146/epid-1286
+http://www.tvtome.com/tvtome/servlet/GuidePageServlet/showid-146/epid-1410
+http://www.tvtome.com/tvtome/servlet/GuidePageServlet/showid-146/epid-1410/
+http://www.tvtome.com/tvtome/servlet/GuidePageServlet/showid-28101/epid-354583/
+http://www.tvtome.com/tvtome/servlet/GuidePageServlet/showid-344/epid-63618/
+http://www.tvtome.com/tvtome/servlet/GuidePageServlet/showid-344/epid-65854
+http://www.tvtome.com/tvtome/servlet/PersonDetail/personid-181277/
+http://www.tvtome.com/tvtome/servlet/ShowForumPage/showid-111/threadid-174858/
+http://www.tvtome.com/tvtome/servlet/ShowMainServlet/showid-546/Falcon_Crest/
+http://www.twacomm.com/Catalog/Dept_ID_734.htm
+http://www.twbookmark.com/books/63/0316779849/chapter_excerpt17620.html
+http://www.twbookmark.com/books/70/0316121568/reading_guide14091.html
+http://www.twbookmark.com/books/8/0316558524/chapter_excerpt428.html
+http://www.twbookmark.com/books/91/0316558362/chapter_excerpt9373.html
+http://www.twbooks.co.uk/authors/katecharles.html
+http://www.twbooks.co.uk/authors/russelli.html
+http://www.twc.state.tx.us/news/tjhg/s4appl.html
+http://www.twc.state.tx.us/svcs/childcare/ccattendhelp.html
+http://www.twcc.state.tx.us/information/events/macmin01-21-00.html
+http://www.twcc.state.tx.us/information/events/macmin7-16-99.html
+http://www.twcc.state.tx.us/information/events/min5-21-99.html
+http://www.tweakguides.com/Doom3_5.html
+http://www.tweakheadz.com/plugins_for_audio.html
+http://www.tweakheadz.com/studio_monitors.htm
+http://www.tweakxp.com/displaySoft.aspx?id=14239
+http://www.tweakxp.com/tweak123810.aspx
+http://www.tweed.nsw.gov.au/events/citizen.htm
+http://www.tweeter.com/sm-flat-panel-and--bg-1285287.html
+http://www.twgga.org/dynpage2.php?pgid=McKinney
+http://www.twice.com/article/CA492436.html?verticalid=820&industry=Business+News&industryid=23097&pubdate=01/06/2005
+http://www.twickenham-museum.org.uk/detail.asp?ContentID=119
+http://www.twilightplayers.com/private/halloffame.htm
+http://www.twingroves.district96.k12.il.us/Renaissance/TowerofLondon/AnneBoleyn.html
+http://www.twinmountain.com/hiking_mt_wash_tale.php
+http://www.twinsclub.co.uk/
+http://www.twinslist.org/toddler.htm
+http://www.twinsworld.com/stats.html
+http://www.twistandshoutcomics.com/features/columns/rrevs0699.html
+http://www.twistermc.com/blog/
+http://www.twistngo.com/rapid.htm
+http://www.twitchfilm.net/
+http://www.twitchfilm.net/archives/002085.html
+http://www.twiztv.com/scripts/attic/allymcbeal202.htm
+http://www.twiztv.com/scripts/southpark/season7/southpark-715.htm
+http://www.twmacinta.com/resume/
+http://www.twmlaw.com/new/news5_20_02.html
+http://www.twmlaw.com/site/new/news5_20_02.html
+http://www.twnonline.org/Archive_TWN/050113/050113_local_news_groups_address_important_concerns_of_gay_seniors.html
+http://www.twnonline.org/archive_twn/041104/041104_national_news_the_science_of_sex_and_god.html
+http://www.twnside.org.sg/title/belied.htm
+http://www.twnside.org.sg/title/bus.htm
+http://www.twnside.org.sg/title/das5.htm
+http://www.twnside.org.sg/title/das6.htm
+http://www.twnside.org.sg/title/info9.htm
+http://www.twnside.org.sg/title/invasion.htm
+http://www.twnside.org.sg/title/mk10.htm
+http://www.twnside.org.sg/title/ravage-cn.htm
+http://www.twnside.org.sg/title/sea-cn.htm
+http://www.twnside.org.sg/title/shot.htm
+http://www.twnside.org.sg/title/twr137b.htm
+http://www.twnside.org.sg/title/unions.htm
+http://www.twnside.org.sg/title/urged.htm
+http://www.twnside.org.sg/title2/twr171d.htm
+http://www.twobirds.com/english/publications/articles/French_ADSL_Market.cfm
+http://www.twofrog.com/rezsch.html
+http://www.twolassesglassclasses.com/web-content/lassletter.html
+http://www.twoscompany.co.uk/11/112/18/55/MID%20GLAMORGAN/
+http://www.twoscompany.co.uk/12/111/18/55/BERKSHIRE/
+http://www.twrc.rowing.org.uk/slug/oldslime60.htm
+http://www.twst.com/ceos/caop.html
+http://www.twurl.com/onr_report/patterns.htm
+http://www.txarch.org/activities/fschool/2003.html
+http://www.txarch.org/activities/fschool/Presidio.htm
+http://www.txdps.state.tx.us/director_staff/texas_rangers/
+http://www.txdps.state.tx.us/psb/faq.aspx
+http://www.txla.org/html/docs/howto.html
+http://www.txstate.edu/slac/jobs/Erefform.htm
+http://www.txt-mgmt.com/spider.htm
+http://www.tybornehill.com/generic31.html
+http://www.tyc.state.tx.us/about/tycminutes.html
+http://www.tycoelectronics.com/prodnews.asp?id=509
+http://www.tygh.co.uk/students/menu.swf
+http://www.tylerpaper.com/site/news.cfm?brd=1994&pag=460&dept_ID=529888
+http://www.tylwythteg.com/enemies/scaife.html
+http://www.tynant.com/tytimes.htm
+http://www.tyndall.ac.uk/publications/fact_sheets/t2_41.shtml
+http://www.type2.com/library/electrip/timex.htm
+http://www.typotheque.com/articles/EK_PhD_historiography2.html
+http://www.typotheque.com/site/article.php?id=24
+http://www.tysknews.com/Depts/Metrication/trouble_with_the_metric_system.htm
+http://www.tyssen.hackney.sch.uk/page3.html
+http://www.u-s-history.com/pages/h1093.html
+http://www.u-s-history.com/pages/h1096.html
+http://www.u-s-history.com/pages/h1175.html
+http://www.u-s-history.com/pages/h826.html
+http://www.u-s-history.com/pages/h893.html
+http://www.u-s-history.com/pages/h949.html
+http://www.u.arizona.edu/ic/anth307/description.html
+http://www.u.arizona.edu/ic/srl/management.html
+http://www.u3a.org.uk/natoffice/news_and_publications/sources/sources_12.htm
+http://www.uab.edu/english/hone/etexts/edb/day-pages/007-january07.html
+http://www.uaces.org/SCHES.htm
+http://www.uaelderlaw.org/links.html
+http://www.uaelinks.com/dir/category.asp?cat=10320060000
+http://www.uaf.edu/catalog/current/programs/music.html
+http://www.uafortsmith.edu/Health/LicensedPracticalNursing
+http://www.uafortsmith.edu/Health/LicensedPracticalNursing?skin=text
+http://www.uah.edu/facsen/Faculty%20Handbook/APPENDA.htm
+http://www.ualberta.ca/CNS/RESEARCH/MACI/
+http://www.ualberta.ca/dept/health/public_html/healthinfo/stress.htm
+http://www.ualberta.ca/~johnnewm/NZEnglish/choice.html
+http://www.ualberta.ca/~rpm1/stonewander/legacy_stories/knight/deception.html
+http://www.ualr.edu/hsci/h_e_degree.html
+http://www.ualr.edu/~philosophy/payoff.htm
+http://www.uapd.com/
+http://www.uapress.arizona.edu/onlinebks/hohokam/chap2.htm
+http://www.uark.edu/depts/comminfo/ss/freespeech.html
+http://www.uat.edu/insideTheTechnology/subpages/projects/subPages/gameProjects/
+http://www.uaw2865.org/campuspages/berkeley/BerkeleyBUpdates.htm
+http://www.uaw2865.org/campuspages/davis/DavisBUpdates.htm
+http://www.uaw2865.org/campuspages/irvine/IrvineBUpdates.htm
+http://www.uaw2865.org/campuspages/santabarbara/SantaBarbaraBUpdates.htm
+http://www.uawcd.com/FAQ.htm
+http://www.ub-careers.buffalo.edu/cdo/cartcare.htm
+http://www.ub.org/AboutUs/UBDisc2001/08FamilyStandards.shtml
+http://www.ubalt.edu/careercenter/careerlink/99_spring/major_psychology.html
+http://www.ubalt.edu/dapqm/grad.htm
+http://www.ubc.net/today/25012002.html
+http://www.ubca.org/financial.html
+http://www.uberdose.com/journal/
+http://www.ubermorgen.com/ATTACK_ON_DEMOCRAZY/
+http://www.ubersite.com/m/28131
+http://www.uboc.com/about/main/0,,2485_2877,00.html
+http://www.ubu.com/outsiders/365/01-1.html
+http://www.ubu.org.uk/bulletin/YaBB.cgi?board=rant;action=print;num=1076081417
+http://www.uc.edu/profiles/lieberman.htm
+http://www.uc.edu/profiles/profile.asp?id=1032
+http://www.uc.wisc.edu/forward/news.php?regionId=4&storyId=11157
+http://www.uca.edu/divisions/academic/honors/pub/vino/0203/vino21_1/lotAboutNothing.htm
+http://www.ucalgary.ca/UofC/departments/IC/community/PIAAawardwinners2003.html
+http://www.ucalgary.ca/UofC/research/KFS/researc2.htm
+http://www.ucalgary.ca/cted/confer2001/pres_summary.html
+http://www.ucalgary.ca/it/support_services/proglib/aix/glim.html
+http://www.ucalgary.ca/library/SpecColl/mitchell/biocrit.htm
+http://www.ucalgary.ca/mp2003/logo/install.html
+http://www.ucalgary.ca/mp2003/logo/mac_install.html
+http://www.ucalgary.ca/mp2003/logo/upgrade.html
+http://www.ucalgary.ca/oncampus/weekly/nov5-04/hot-topic.html
+http://www.ucalgary.ca/~dmjacobs/phd/diss/
+http://www.ucalgary.ca/~iejll/volume6/leonard.html
+http://www.ucalgary.ca/~rzach/logblog/
+http://www.ucalgary.ca/~shcs/hcac.html
+http://www.ucan.org/law_policy/energydocs/mfmerg.html
+http://www.ucar.edu/learn/1_2_1.htm
+http://www.ucar.edu/news/record/
+http://www.ucas.ac.uk/candq/ukquals/scot/quals.html
+http://www.ucas.ac.uk/candq/ukquals/scot/routes.html
+http://www.ucas.ac.uk/parents/faq.html
+http://www.ucas.ac.uk/parents/money.html
+http://www.ucc.ie/law/irlii/statutes/2003-41.php
+http://www.ucc.ie/ucc/depts/apsych/first_year_handout_2004.html
+http://www.ucc.org/ocinc/062402.htm
+http://www.ucc.org/ocinc/parker/copps.htm
+http://www.ucc.vt.edu/stdysk/motivate.html
+http://www.ucc.vt.edu/stdysk/suggest.html
+http://www.uccs.edu/psych/pages/faq.htm
+http://www.uccs.edu/~psych/pages/faq.htm
+http://www.uccs.edu/~ur/media/mediawatch/view_article.php?y=mediawatch_articles&article_id=12952
+http://www.uccstheatreworks.com/currentseason.htm
+http://www.ucd.ie/ascience/html/pages/teaching.html
+http://www.ucd.ie/computing/support/spssfaq.html
+http://www.ucd.ie/horizons/faq.htm
+http://www.ucd.ie/ucdnews/jan02/chemistry.htm
+http://www.ucdmc.ucdavis.edu/mindinstitute/aboutus/faq.html
+http://www.ucdsu.net/newswire.php?story_id=326&media_type=IMAGE
+http://www.ucfv.ca/hrcro/
+http://www.uchastings.edu/?pid=1522
+http://www.ucihealth.com/NewHospital/KeyResource.htm
+http://www.ucis.pitt.edu/asc/academics/coursesbydept.html
+http://www.ucis.pitt.edu/pehsc/index_files/fpframe_files/Lessons03/psu_lesson1.html
+http://www.ucisa.ac.uk/resources/docs/library/lrittreport
+http://www.ucl.ac.uk/Pharmacology/dc.html
+http://www.ucl.ac.uk/constitution-unit/nations/11.php
+http://www.ucl.ac.uk/hr/docs/crs_career_mment_schme.php
+http://www.ucl.ac.uk/hr/docs/flexible_working.php
+http://www.ucl.ac.uk/hr/docs/grievance_ar.php
+http://www.ucl.ac.uk/hr/docs/maternity_policy_6_april.php
+http://www.ucl.ac.uk/hr/docs/maternity_policy_6_april.php?section=printable
+http://www.ucl.ac.uk/internet-grammar/adverbs/xadvb1.htm
+http://www.ucl.ac.uk/ioo/research/luthert.htm
+http://www.ucl.ac.uk/prehistoric/reviews/04_07_mcomish.htm
+http://www.ucl.ac.uk/support-pages/advice-pages/coping-with-exams/index.shtml
+http://www.ucl.ac.uk/unions/AUT/crs_agreements.htm
+http://www.ucl.ac.uk/~uctytho/thirdway.htm
+http://www.uclan.ac.uk/facs/science/biology/bru/nm.htm
+http://www.ucmds.com/career6.htm
+http://www.ucmp.berkeley.edu/cambrian/burgess.html
+http://www.ucmp.berkeley.edu/diapsids/avians.html
+http://www.ucmp.berkeley.edu/echinodermata/echinoidea.html
+http://www.ucmp.berkeley.edu/glossary/gloss5/biome/deserts.html
+http://www.ucmp.berkeley.edu/history/owen.html
+http://www.ucmp.berkeley.edu/plants/bryophyta/sphagnomm.html
+http://www.ucolick.org/~bouwens/personal/beautygirl.html
+http://www.ucollege.edu/ucscripts/public/template/default.asp?DivID=7&PgID=52
+http://www.ucom-ism.com/ieconomy.htm
+http://www.ucop.edu/facil/fmc/facilman/volume5/ch4.html
+http://www.ucop.edu/pres/reports/prjul95.html
+http://www.ucop.edu/pres/reports/prmar00.html
+http://www.ucop.edu/raohome/certs/certguic.html
+http://www.ucop.edu/raohome/cgmanual/chap09.html
+http://www.ucop.edu/ucophome/policies/support/suppguide.html
+http://www.ucora.com/0241.htm
+http://www.ucp.org/document.cfm/4536/1/63
+http://www.ucpress.edu/books/pages/10139/10139.ch07.html
+http://www.ucpress.edu/books/pages/10323.html
+http://www.ucpress.edu/books/pages/1495001.html
+http://www.ucpress.edu/books/pages/5735/5735.ch01.html
+http://www.ucpress.edu/books/pages/6615.html
+http://www.ucpress.edu/books/pages/6853.html
+http://www.ucpress.edu/books/pages/8707.html
+http://www.ucpress.edu/books/pages/8819/8819.ch01.html
+http://www.ucpress.edu/books/pages/9172.html
+http://www.ucpress.edu/books/pages/9251/9251.ch01.html
+http://www.ucpress.edu/books/pages/9519/9519.ch01.html
+http://www.ucpress.edu/books/pages/9586/9586.ch01.html
+http://www.ucpress.edu/books/pages/9680.html
+http://www.ucpress.edu/books/pages/9889.html
+http://www.ucs.mun.ca/~tmarshal/gamesbeg.htm
+http://www.ucs.mun.ca/~wbarker/fairies/grimm/050.html
+http://www.ucs.mun.ca/~wbarker/fairies/grimm/g089.html
+http://www.ucsbdailynexus.com/news/2003/4314.html
+http://www.ucsbdailynexus.com/print_article.php?a=6746
+http://www.ucsc.edu/finaff/cc/tips/control.htm
+http://www.ucsc.edu/ppmanual/html/acg0012.htm
+http://www.ucsdguardian.org/cgi-bin/features?art=2005_05_31_01
+http://www.ucsf.edu/sorehand/
+http://www.ucsfhealth.org/childrens/medical_services/heart_center/arrhythmia/electrophysiology.html
+http://www.ucsfhealth.org/childrens/special/b/43082.html
+http://www.ucsusa.org/clean_energy/renewable_energy/page.cfm?pageID=126
+http://www.ucsusa.org/food_and_environment/antibiotic_resistance/page.cfm?pageID=248
+http://www.ucsusa.org/food_and_environment/biotechnology/page.cfm?pageID=1561
+http://www.ucsusa.org/global_environment/archive/page.cfm?pageID=1030
+http://www.ucsusa.org/global_environment/archive/page.cfm?pageID=520
+http://www.ucsusa.org/global_security/archive/page.cfm?pageID=628
+http://www.ucsusa.org/global_security/missile_defense/page.cfm?pageID=604
+http://www.ucsusa.org/news/press_release.cfm?newsID=393
+http://www.ucsusa.org/ucs/about/index.cfm
+http://www.uctshiplaw.com/hamburg.htm
+http://www.uda.ural.ru/
+http://www.uda.ural.ru/legal.html
+http://www.uda.ural.ru/market.html
+http://www.uda.ural.ru/recruit.html
+http://www.udayton.edu/mary/resources/flhm01.html
+http://www.udayton.edu/~itc/Exercises.html
+http://www.udeducation.org/teach/course_mods/sandhu/index.asp
+http://www.udel.edu/ETL/RWN/POP.html
+http://www.udel.edu/ExecVP/polprod/1-02.html
+http://www.udel.edu/PR/UDaily/2005/dec/personnel020105.html
+http://www.udel.edu/PR/UDaily/2005/oct/DCCA101204.html
+http://www.udel.edu/fllt/faculty/braun/closedin.html
+http://www.udiontario.com/issupd/upd040510.htm
+http://www.udpsoft.com/eye/doc.html
+http://www.uea.ac.uk/care/nasc/Rewards_and_Sanctions/R&S_Page10.html
+http://www.uea.ac.uk/eas/teaching/pgunits/deconstructinggender04.shtml
+http://www.uea.ac.uk/his/webcours/russia/documents/10-let-sssr.shtml
+http://www.uea.ac.uk/his/webcours/russia/documents/srs-7-19.shtml
+http://www.uefa.com/Competitions/WOCO/FixturesResults/Round=2197/match=81146/
+http://www.uefa.com/competitions/WOCO/FixturesResults/Round=1929/Match=80075/
+http://www.uefa.com/competitions/WOCO/FixturesResults/Round=2197/Match=81146/
+http://www.uefa.com/competitions/WOCO/fixturesresults/round=1929/match=80075/Report=RP.html
+http://www.uefap.co.uk/materials/speak/matspeak.htm
+http://www.uefap.co.uk/reading/underst/meaning/meaning.htm
+http://www.uel.ac.uk/programmes/business/postgraduate/generalmanagement.htm
+http://www.uen.org/Lessonplan/preview.cgi?LPid=9047
+http://www.uen.org/Lessonplan/preview?LPid=193
+http://www.uensd.org/USOE_Pages/Char_ed/focus.htm
+http://www.uet.edu.pk/Departments/Chemistry/chemistry_courses.htm
+http://www.uexpress.com/richardreeves/?uc_full_date=20050422
+http://www.ufalocal94.org/news_stories/chiefleader/cl_02_02_05.html
+http://www.ufalocal94.org/pages/ufaprez_past_present.html
+http://www.ufanyc.org/news_stories/chiefleader/cl_02_02_05.html
+http://www.ufcu.org/browse.php?content_name=parent_toysafety
+http://www.ufcw.net/articles/Toolkit/grievances-04.html
+http://www.ufcw.net/articles/UFCW_1000a/on_managing_slaves.php?s=2&p=8
+http://www.ufcw.net/articles/docs/2005-03-23_mts_centre.html
+http://www.ufcw.net/articles/docs/the_haunted_houses_of_labour.html
+http://www.ufcw.net/news/archive/news-archive-5-2003.html
+http://www.ufcw99.com/market_share_2.htm
+http://www.uflysmart.com/en/efil_terms.html
+http://www.ufoarea.com/keyhoe_follow_the_bouncing_ball.html
+http://www.uforth.com/classic.htm
+http://www.ufoseek.com/Project_Bluebook/
+http://www.ufs.ph/tinig/mayjun03/05060320.html
+http://www.ufs.ph/tinig/novdec04/11120426.html
+http://www.uga.edu/bahai/glossary.html
+http://www.uga.edu/garev/fall02/vivian.htm
+http://www.uga.edu/islam/shariah.html
+http://www.uga.edu/news/artman/publish/advisories.shtml
+http://www.uga.edu/ruskcenter/llm.html
+http://www.uga.edu/spc/People/panetta.html
+http://www.uga.edu/srel/Fact_Sheets/nerp.htm
+http://www.uga.edu/srel/ecoview9-2-02.htm
+http://www.uga.edu/ucns/calendar/aboutcc.html
+http://www.ugandanetwork.org.uk/network/phone.htm
+http://www.ugly-things.com/phil-1.html
+http://www.uglyotter.com/Brace5r.htm
+http://www.ugrad.math.ubc.ca/coursedoc/math100/notes/mordifeqs/hiv.html
+http://www.ugresearch.umd.edu/URAP/bsos03.htm
+http://www.ugs.com/about_us/success/royal_navy.shtml
+http://www.uh.edu/ednews/2004/bglobe/200411/20041117finances.html
+http://www.uh.edu/hti/cu/2001/v05/06.htm
+http://www.uh.edu/~jbutler/physical/chapter14notes.html
+http://www.uh.edu/~jbutler/physical/chapter19notes.html
+http://www.uhc-collective.org.uk/knowledge/toolbox/defence/guide_to_public_order.htm
+http://www.uhc-collective.org.uk/knowledge/toolbox/meetings_and_organisation/antimass_organising.htm
+http://www.uhd.edu/computing/acl/rules.htm
+http://www.uhd.edu/prospective/continuinged/eli/abouteli.htm
+http://www.uheaa.org/faqs.htm
+http://www.uhfnyc.org/press_release3159/press_release_show.htm?doc_id=100181
+http://www.uhi.ac.uk/ceandsec/policies/policy_VIII.htm
+http://www.uhl-tr.nhs.uk/services/clinical/anaesthetics_criticalcare_pain/anaesthetics.html
+http://www.uhn.ca/research/clinical_trials/definition.asp?nav=2;2
+http://www.uhs.berkeley.edu/facstaff/ergonomics/computer/pointing.shtml
+http://www.uhs.berkeley.edu/facstaff/healthmatters/healthyoffice/back.shtml
+http://www.uhs.berkeley.edu/students/medical/sexualassault.shtml
+http://www.uhseast.com/114269.cfm
+http://www.uhv.edu/catalog02-03/financial_aid.htm
+http://www.uhv.edu/catalog03-04/Financial_Aid.htm
+http://www.uhv.edu/catalog04-05/Financial_Aid.htm
+http://www.uhv.edu/catalog04-05/printer_friendly/financial_aid_pf.html
+http://www.uhv.edu/student_org/gbp/bylaws.htm
+http://www.uia.be/encyclopedia/encycom_bodies.php?kap=16
+http://www.uia.org/legal/app47.php
+http://www.uiaa.org/urbana/illinoisalumni/utxt0405f.html
+http://www.uiarmory.com/
+http://www.uib.no/guide/html/information.html
+http://www.uib.no/info/english/PhD.html
+http://www.uic.com.au/nip48.htm
+http://www.uic.edu/classes/dme/gme/CourseDescriptions.html
+http://www.uic.edu/com/eye/LearningAboutVision/EyeFacts/CollagenCornealShields.shtml
+http://www.uic.edu/depts/accc/newsletter/adn27/broadband.html
+http://www.uic.edu/depts/accc/pclabs/roomres.html
+http://www.uic.edu/depts/avcad/parking/faq.html
+http://www.uic.edu/~cmsmcq/trips/ceth9505.html
+http://www.uic.edu/~cmsmcq/trips/ceth9505.tei
+http://www.uic.edu/~dbhale/hesgone.html
+http://www.uic.edu/~pbhales/Levittown.html
+http://www.uidaho.edu/eo/dist8.html
+http://www.uidaho.edu/transferguides/AG4617.html
+http://www.uiecu.org/navstuff/contact.htm
+http://www.uihealthcare.com/depts/med/neurology/patients/aboutbdclinic.html
+http://www.uihealthcare.com/news/news/2005/01/31balance.html
+http://www.uil.utexas.edu/aca/hsrule/920.html
+http://www.uil.utexas.edu/aca/hsrule/926.html
+http://www.uimn.org/ui/download.htm
+http://www.uintacounty.com/documents/2003%20Commission%20Minutes/june_17_2003.htm
+http://www.uiowa.edu/~c030141/
+http://www.uiowa.edu/~clrc/html-pages/faq.html
+http://www.uiowa.edu/~commstud/resources/GenderMedia/african_txt.html
+http://www.uiowa.edu/~cyberlaw/rcntpubl/njh10mma.html
+http://www.uiowa.edu/~humiowa/chickensunday4.html
+http://www.uiowa.edu/~incinema/Bhumika.html
+http://www.uiowa.edu/~quill-sc/Contests/yearbook-contest.html
+http://www.uiowa.edu/~theatre/alumni/alumninews.htm
+http://www.uiowa.edu/~vpss/policies/i/i.shtml
+http://www.uis.edu/mediaguides/style/
+http://www.ujafedny.org/site/DocServer/Perspectives_Newsletter_Fall_1998_front_cover.pdf?docID=1001
+http://www.ujc.org/content_display.html?ArticleID=144687
+http://www.ujc.org/content_display.html?ArticleID=37119
+http://www.uk-concert-tickets.co.uk/g-tickets.htm
+http://www.uk-yankee.com/moving/
+http://www.uk.emb-japan.go.jp/en/japanUK/governmental/040304_jjccst.html
+http://www.uk.research.att.com/spirit/
+http://www.uk.thebodyshop.com/web/tbsuk/athome_events.jsp
+http://www.ukabc.org/nopaten2.htm
+http://www.ukabc.org/tsunamis.htm
+http://www.ukalumni.net/distinguishedalums/woodsonWT.htm
+http://www.ukar.org/martin/martin17.html
+http://www.ukar.org/temp/klausn03.html
+http://www.ukbap.org.uk/2002OnlineReport/ProgressObstacles.htm
+http://www.ukcampsite.co.uk/articles/view.asp?id=38
+http://www.ukcampsite.co.uk/rally/index.asp
+http://www.ukcdogs.com/breeds/herdingdogs/bouvierdesflandres.std.shtml
+http://www.ukcdogs.com/pt/rules/t-3.shtml
+http://www.ukcertificates.com/
+http://www.ukchatterbox.co.uk/msg/54329
+http://www.ukcia.org/research/CannabisSocialControlAndExclusion.html
+http://www.ukcle.ac.uk/lili/2002/nollent.html
+http://www.ukcorporatesolutions.com/services/county/Huntingdonshire.htm
+http://www.ukcosa.org.uk/pages/advice.htm
+http://www.ukdyslexialive.co.uk/teachers/access/legal_position.html
+http://www.ukfilmcouncil.org.uk/funding/distributionandexhibition/cap/capequip/
+http://www.ukfilmcouncil.org.uk/news/?p=1049992991714&skip=150
+http://www.ukgardening.co.uk/design_survey.asp
+http://www.ukhealthcare.uky.edu/generalinfo/generalinfo.htm
+http://www.ukhotelnet.com/cambridge/hotels.htm
+http://www.ukhotelnet.com/inverness/hotels.htm
+http://www.ukia.co.uk/diamond/diaguide.htm
+http://www.ukia.co.uk/diamond/ped_eth.htm
+http://www.ukia.co.uk/road.htm
+http://www.ukincorp.co.uk/
+http://www.ukincorp.co.uk/s-29-company-incorporation-prices.html
+http://www.ukincorp.co.uk/s-2G
+http://www.ukincorp.co.uk/s-2G-uk-company-chairman-guide.html
+http://www.ukincorp.co.uk/s-4J-company-formations-uk-prices.html
+http://www.ukincorp.co.uk/s-AE-setting-uk-company-fees.html
+http://www.ukinindia.com/magazines/britaintoday/InnerpageAgent.asp?IssueId=79&magzineId=3&SectionId=613
+http://www.uklanddirectory.org.uk/Land-sales-news.htm
+http://www.uklgig.org.uk/Outside%20UK.htm
+http://www.ukmarinesac.org.uk/communities/zostera/z6_2.htm
+http://www.ukmix.net/reviews/2001/0604.html
+http://www.ukmodelshops.co.uk/
+http://www.uknetguide.co.uk/Lifestyle_and_Leisure/Article252.html
+http://www.ukpa.gov.uk/_2_howtoapply/2_completing.asp
+http://www.ukpa.gov.uk/textonly/english/t_completing_the_application_form.asp
+http://www.ukpaintballgames.com/team-building-buyersguide.html
+http://www.ukpets.co.uk/?section=Home&sub=News&method=fetch&item=480
+http://www.ukphilately.org.uk/abps/org/organise.htm
+http://www.ukphilately.org.uk/nps/aucsell/aucsell.htm
+http://www.ukpropertyshop.co.uk/s/Yorkshire/estate_agents_Acomb.shtml
+http://www.ukpropertyshop.co.uk/s/Yorkshire/estate_agents_Boroughbridge.shtml
+http://www.ukpropertyshop.co.uk/s/Yorkshire/estate_agents_York.shtml
+http://www.ukpropertyshop.co.uk/s/Yorkshire/letting_agents_Acomb.shtml
+http://www.ukpropertyshop.co.uk/s/Yorkshire/letting_agents_York.shtml
+http://www.ukpropertyshop.co.uk/s/Yorkshire/students_agents_York.shtml
+http://www.ukpropertyshop.com/s/Yorkshire/letting_agents_York.shtml
+http://www.ukpropertyshop.com/s/Yorkshire/students_agents_York.shtml
+http://www.ukradioamateur.org/extra/morse/html/c09a.htm
+http://www.ukrainiansoccer.net/diary/Euro2000/sloukr.htm
+http://www.ukrainiansoccer.net/upload/jj/euro2000_ukraine-france_reviews.html
+http://www.ukrainianweb.com/shopping_business_canada_usa.htm
+http://www.ukresilience.info/ccbill/
+http://www.ukresistance.co.uk/2005/04/visiting-gizmondo-shop.html
+http://www.ukresults.net/linkcharity.html
+http://www.ukrocketry.co.uk/forum/lofiversion/index.php/t549.html
+http://www.uksa.org/prices.html
+http://www.uksa.org/terms.html
+http://www.uksponsorship.com/film1.htm
+http://www.uksport.gov.uk/generic_template.asp?id=12267
+http://www.ukstudentlife.com/Ideas/Album/TroopingTheColour.htm
+http://www.ukstudentlife.com/Work/Job/Nurse.htm
+http://www.ukterrorist.com/articles/racism/
+http://www.ukterrorist.com/columns/5444/
+http://www.ukterrorist.com/news/bwcsl_season6_report/
+http://www.uktvfood.co.uk/?uktvFoodPreview=Recipes.Index
+http://www.uktvfood.co.uk/index.cfm/uktvFoodPreview/Recipes.Index.shtml
+http://www.uktvstyle.co.uk/index.cfm/uktvstyle/standardItem.index/aid/2535.shtml
+http://www.ukultimate.com/uniultimate/eligibility.aspx
+http://www.ukvisas.gov.uk/servlet/Front?pagename=OpenMarket/Xcelerate/ShowPage&c=Page&cid=1034876586657
+http://www.ukvisas.gov.uk/servlet/Front?pagename=OpenMarket/Xcelerate/ShowPage&c=Page&cid=1035898657472
+http://www.ukvisas.gov.uk/servlet/Front?pagename=OpenMarket/Xcelerate/ShowPage&c=Page&cid=1036679107538
+http://www.ukvisas.gov.uk/servlet/Front?pagename=OpenMarket/Xcelerate/ShowPage&c=Page&cid=1039013777339
+http://www.uky.edu/ArtsSciences/Classics/rhetoric.html
+http://www.uky.edu/BusinessEconomics/dssakba/Handbook%20of%20KM.htm
+http://www.uky.edu/CareerCenter/mailinglist.html
+http://www.uky.edu/CareerCenter/virtualhowto.html
+http://www.uky.edu/Design/architecture.htm
+http://www.uky.edu/KGS/announce/cobbtestimony.htm
+http://www.uky.edu/KGS/education/trex.html
+http://www.uky.edu/Law/exams/Content/gold6.htm
+http://www.uky.edu/Law/exams/Content/gold7.htm
+http://www.uky.edu/PR/News/Archives/2002/April2002/430BOARD.HTM
+http://www.uky.edu/PR/UK_News/people22800.html
+http://www.uky.edu/Registrar/bull0203/colleges/a&s/russ.html
+http://www.uky.edu/StudentOrgs/BWW/hottub.html
+http://www.uky.edu/StudentOrgs/HKSDC/Shoes,Clothes.html
+http://www.uky.edu/Subject/countries.html
+http://www.uky.edu/Subject/us-states.html
+http://www.uky.edu/~rosdatte/phi120/lesson5a.htm
+http://www.ul.ie/sociology/eoin.devereux.html
+http://www.ul.ie/~lcs/faculty.html
+http://www.ulfsbo.nu/kgb/kgb_10.html
+http://www.ulfsbo.nu/ussr/hunger.html
+http://www.ulfsbo.nu/ussr/unexim.html
+http://www.uli.org/Content/NavigationMenu/DiscoverULI/Jobs/JobsatULI/Jobs_at_ULI1.htm
+http://www.ulib.csuohio.edu/tips/netlibfaq.shtml
+http://www.ulib.iupui.edu/kade/unit10/unit10.html
+http://www.ulsternet-ni.co.uk/ncon/pages/cconnews.html
+http://www.ulsterscotsagency.com/royalpipebands.asp
+http://www.ultimate-exercise.com/pb5.html
+http://www.ultimate-guitar.com/lessons/guitar_techniques/how_to_play_fast_-_hyper_speed_picking.html
+http://www.ultimate-guitar.com/tabs/j/johnson_jack/sitting_waiting_wishing_crd.htm
+http://www.ultimate-guitar.com/tabs/j/johnson_jack/sitting_waiting_wishing_ver2_crd.htm
+http://www.ultimate-lyrics.de/texte/bandalbums/albums_z/zed_silencer.htm
+http://www.ultimatebet.com/learn-poker/article.html?articleID=5
+http://www.ultimatecarpage.com/forum/showthread.php?t=11470
+http://www.ultimatehallucination.com/405f2.htm
+http://www.ultimatekeychains.com/browseproducts/Trouble-Keychain.html
+http://www.ultimatequeen.co.uk/Videos/fmtribute.htm
+http://www.ultra-fitmagazine.com/home_gyms/18_home_gyms.htm
+http://www.ultraapps.com/IssueManager/files/license.html
+http://www.ultracycling.com/standings/records_guide2.html
+http://www.ultralighthomepage.com/AC103-7/ac103-7.html
+http://www.ultramega.com/browse/1651494/24__Season_Three.jsp
+http://www.ultrarunners.info/fr5010report.html
+http://www.ultrasoft.hostinguk.com/swfa/Rules.htm
+http://www.ultratech.com/hr/jobs.shtml
+http://www.ultravox.org.uk/cgi-bin/ImageFolio31/imageFolio.cgi?action=view&link=Band_Aid/Band_Aid_20_press&image=Pops-Global-Mission.pdf&url=1
+http://www.ultrunr.com/walking.html
+http://www.ulwaf.com/LA-1900s/01.09.html
+http://www.ulwaf.com/LA-1900s/04.11.html
+http://www.um.dk/Publikationer/UM/English/AChangingWorld/html/chapter04.htm
+http://www.um.dk/Publikationer/UM/English/Denmark/kap4/4-4-10.asp
+http://www.umaine.edu/umext/york/MG/mgbrochure.htm
+http://www.umakrishnaswami.com/peace.html
+http://www.umanitoba.ca/about/mission.php
+http://www.umanitoba.ca/centres/ethics/articles/article3.html
+http://www.umanitoba.ca/centres/mchp/reports/reports_01/mis2.htm
+http://www.umanitoba.ca/cranial_nerves/info/disclaimer.html
+http://www.umanitoba.ca/faculties/afs/plant_science/courses/39_769/lec08/lec08.3.html
+http://www.umanitoba.ca/linguistics/russell/redup-corpus.html
+http://www.umanitoba.ca/student/counselling/cnews/cnews299.html
+http://www.umass.edu/fambiz/marketing_family_business.htm
+http://www.umass.edu/peri/sasl/petition.htm
+http://www.umass.edu/wost/articles/postwhiteness.htm
+http://www.umassmed.edu/diabeteshandbook/chap02.htm
+http://www.umassmed.edu/healinghandbook/chapter2/
+http://www.umassp.edu/cgi-bin/cgilib/jump.cfm?dest=/trustees/af/1.27.99afminutes.html
+http://www.umax.com/company/terms.jsp
+http://www.umbar.com/MacTADS/
+http://www.umbc.edu/NewsEvents/releases/article.phtml?news_id=920
+http://www.umbc.edu/oit/article.html?news_id=98
+http://www.umc.org/interior.asp?ptid=1&mid=4292
+http://www.umc.pitt.edu/media/pcc020318/nowandthen.html
+http://www.umc.pitt.edu/pittmag/sep95/s95classesh.html
+http://www.umchohio.org/0204web/Resources/Lying.html
+http://www.umdnj.edu/genesatwork/topics/pediatrics/05_pediatrics.htm
+http://www.umesc.usgs.gov/habitat_needs_assessment/pit_meeting.html
+http://www.umext.maine.edu/onlinepubs/htmpubs/7009.htm
+http://www.umiacs.umd.edu/users/sawweb/sawnet/news.html
+http://www.umiacs.umd.edu/users/sawweb/sawnet/wedding.html
+http://www.umich.edu/~bcalab/Meyer_Biography.html
+http://www.umich.edu/~ece/student_projects/bonifield/pardons.html
+http://www.umich.edu/~eng499/women/themes.html
+http://www.umich.edu/~gpcc/pa/hostconfig.html
+http://www.umich.edu/~hraa/class/faq.html
+http://www.umich.edu/~hraa/voices/moredetails.html
+http://www.umich.edu/~iinet/csst/working_papers.html
+http://www.umich.edu/~iinet/journal/vol2no3/ozdemir.html
+http://www.umich.edu/~iinet/lacs/acadprog/thesisguide.htm
+http://www.umich.edu/~miwh/BorerFinal.html
+http://www.umich.edu/~nes/studyres/datainfo/tsinfo.htm
+http://www.umich.edu/~newsinfo/MT/98/Spr98/mt10s98.html
+http://www.umich.edu/~pharmacy/students/courses_pharmacy.html
+http://www.umich.edu/~radinfo/introduction/terms.htm
+http://www.umich.edu/~urecord/0304/July06_04/18.shtml
+http://www.umich.edu/~urecord/0304/Nov03_03/19.shtml
+http://www.umist.ac.uk/departments/civil/undergraduate/man/coman&qsbsc.htm
+http://www.umist.ac.uk/prospectivestudents/undergraduate/courseinfo/fulldetails/2004/04000126.htm
+http://www.umkc.edu/dentistry/about/faq.htm
+http://www.umkc.edu/dirt/dd101795.htm
+http://www.umkc.edu/imc/tips4.htm
+http://www.uml.edu/Dept/WE/COHP/Documents/techreports/T19.htm
+http://www.uml.edu/centers/FTC/seymour.html
+http://www.umm.edu/altmed/ConsHerbs/Licoricech.html
+http://www.umm.edu/altmed/ConsSupplements/Interactions/Calciumcs.html
+http://www.umm.edu/otolaryngology/acoustic_neuromas.html
+http://www.umm.edu/patiented/articles/can_cataracts_be_prevented_000026_6.htm
+http://www.ummah.com/forum/archive/index.php/t-4742.html
+http://www.ummahnews.com/print.php?sid=1471
+http://www.ummahnews.com/viewarticle.php?sid=1471
+http://www.ummun.org/pages/committees.php
+http://www.umpm.nl/news.html
+http://www.umpquabank.com/default.asp?pageid=personal_cruise
+http://www.umsl.edu/services/govdocs/ooh20002001/183.htm
+http://www.umsl.edu/services/govdocs/ooh20002001/208.htm
+http://www.umsl.edu/services/govdocs/ooh9697/157.htm
+http://www.umsl.edu/services/govdocs/ooh9899/10.htm
+http://www.umsl.edu/services/govdocs/ooh9899/40.htm
+http://www.umsl.edu/services/govdocs/wofact99/76.htm
+http://www.umsl.edu/services/intelstu/handbook/stayinghealthy.html
+http://www.umsl.edu/~chemist/books/halspicks/hal2000.html
+http://www.umsl.edu/~conted/outreach/jefferson/
+http://www.umsl.edu/~conted/outreach/southcounty/
+http://www.umsu.de/wo/archive/2003/04
+http://www.umsu.de/wo/archive/2003/06
+http://www.umsu.de/wo/archive/2004/04
+http://www.umsu.de/wo/archive/2005/04
+http://www.umsu.de/wo/archive/2005/04/04/Mistaken_Intuitions
+http://www.umt.edu/SA/CREC/index.cfm/page/1379
+http://www.umw.edu/policies/network/devices/default.php
+http://www.umwelt-schweiz.ch/buwal/eng/medien/umweltbericht/genutzte/
+http://www.umweltbundesamt.de/whocc/nl25/hia.htm
+http://www.un.int/bangladesh/images/sc/st/000525timor.htm
+http://www.un.int/france/documents_anglais/050505_tnp_debat_general_f_rivasseau.htm
+http://www.un.int/usa/00hol0905.htm
+http://www.un.int/usa/02_169.htm
+http://www.un.int/usa/03_204.htm
+http://www.un.int/usa/03clp0214.htm
+http://www.un.int/usa/03print_204.htm
+http://www.un.int/usa/03ss0110.htm
+http://www.un.int/usa/04_045.htm
+http://www.un.int/usa/04_115.htm
+http://www.un.int/usa/04_244.htm
+http://www.un.int/usa/04hs0618.htm
+http://www.un.int/usa/04print_252.htm
+http://www.un.int/usa/04print_hs0618.htm
+http://www.un.int/usa/05_045.htm
+http://www.un.int/usa/98_47.htm
+http://www.un.int/usa/99hol624.htm
+http://www.un.kiev.ua/bc/jobs/113/
+http://www.un.org/Depts/dpa/prev_dip/africa/office_for_srsg/cnmc/speeches/spchfour.htm
+http://www.un.org/Depts/dpa/prev_dip/africa/office_for_srsg/cnmc/speeches/spchone.htm
+http://www.un.org/Depts/dpko/dpko/articles/sg_article181004.htm
+http://www.un.org/Depts/los/TechAsst.htm
+http://www.un.org/Depts/los/convention_agreements/texts/unclos/part2.htm
+http://www.un.org/Depts/rcnyo/newsletter/NL12/Activities%20-%20ESCWA.htm
+http://www.un.org/Depts/rcnyo/newsletter/nl10/actescwa.htm
+http://www.un.org/Depts/rcnyo/no61999/ECEactivities.htm
+http://www.un.org/Depts/unscom/s98-529.htm
+http://www.un.org/News/
+http://www.un.org/News/Press/docs/1996/19960214.sgsm5895.html
+http://www.un.org/News/Press/docs/1999/19990129.wom1090.html
+http://www.un.org/News/Press/docs/2000/20000403.dsgsm91.doc.html
+http://www.un.org/News/Press/docs/2000/20000626.sgsm7464.doc.html
+http://www.un.org/News/Press/docs/2001/dc2736.doc.htm
+http://www.un.org/News/Press/docs/2001/dc2747.doc.htm
+http://www.un.org/News/Press/docs/2001/dc2768.doc.htm
+http://www.un.org/News/Press/docs/2001/sc7001.doc.htm
+http://www.un.org/News/Press/docs/2002/GAEF2998.doc.htm
+http://www.un.org/News/Press/docs/2002/SC7348.doc.htm
+http://www.un.org/News/Press/docs/2002/sc7623.doc.htm
+http://www.un.org/News/Press/docs/2003/gaef3066.doc.htm
+http://www.un.org/News/Press/docs/2003/gal3240.doc.htm
+http://www.un.org/News/Press/docs/2003/sc7908.doc.htm
+http://www.un.org/News/Press/docs/2004/ga10299.doc.htm
+http://www.un.org/News/Press/docs/2004/hrct651.doc.htm
+http://www.un.org/News/Press/docs/2004/sc7985.doc.htm
+http://www.un.org/News/Press/docs/2005/dev2523.doc.htm
+http://www.un.org/News/ossg/sg/
+http://www.un.org/Pubs/chronicle/2004/webArticles/062104_sg_remarks2.asp
+http://www.un.org/ageing/coverage/czechE.htm
+http://www.un.org/apps/news/infocusnews.asp?NewsID=19&sID=1
+http://www.un.org/apps/news/infocusnews.asp?NewsID=661&sID=1
+http://www.un.org/apps/news/infocusnewsiraq1.asp?NewsID=767&sID=19
+http://www.un.org/apps/sg/offthecuff.asp?nid=600
+http://www.un.org/cyberschoolbus/earthday/peacebell2004_europe.asp
+http://www.un.org/documents/ecosoc/docs/1996/e1996-l16.htm
+http://www.un.org/documents/ecosoc/docs/1997/e1997-l15.htm
+http://www.un.org/ecosocdev/geninfo/afrec/vol17no1/171watch.htm
+http://www.un.org/esa/ffd/dc-4.htm
+http://www.un.org/esa/ffd/themes/dc-4.htm
+http://www.un.org/esa/forests/session-majorgroups-passes.html
+http://www.un.org/esa/socdev/ageing/waa/02tcmeet2.htm
+http://www.un.org/esa/socdev/enable/rights/ahc3nhricomments.htm
+http://www.un.org/esa/socdev/enable/rights/ares59_198e.htm
+http://www.un.org/events/SmallArms/docs/4048_can.htm
+http://www.un.org/events/youth98/infopart/infopart.htm
+http://www.un.org/events/youth98/speeches/118iraq.htm
+http://www.un.org/ga/president/58/speeches/031020-2.htm
+http://www.un.org/geninfo/faq/briefingpapers/briefing1a.htm
+http://www.un.org/icty/transe16/000517SC.htm
+http://www.un.org/icty/transe61/030226SC.htm
+http://www.un.org/reform/mallochbrown.htm
+http://www.un.org/special-rep/ohrlls/ohrlls/HR%20Statement%2029%20June%2004%20at%20the%20ECOSOC%20HLS-agenda%20item2.htm
+http://www.un.org/womenwatch/forums/review/health/
+http://www.unac.org/en/projects/peace/values.asp
+http://www.unansweredquestions.org/top_11.html
+http://www.unassistedchildbirth.com/birtherotica.htm
+http://www.unausa.org/education/modelun/resolution.asp
+http://www.unav.es/cdb/ccoerec93-4.html
+http://www.unbc.ca/cts/computer_labs/faq.html
+http://www.unbrokenglass.com/archives/000372.html
+http://www.unbsj.ca/arts/english/jones/mt/
+http://www.unc.edu/campus/policies/coi.html
+http://www.unc.edu/chan/intclim/chapV.htm
+http://www.unc.edu/courses/2003fall/geog/144/001/www/
+http://www.unc.edu/courses/rometech/public/content/arts_and_crafts/Susan_Hampton/Roman_Glass.html
+http://www.unc.edu/depts/diplomat/AD_Issues/amdipl_15/crigler_15.html
+http://www.unc.edu/depts/diplomat/AD_Issues/amdipl_17/articles/deatkine_arabs1.html
+http://www.unc.edu/depts/diplomat/AD_Issues/amdipl_17/letters/nigerltr1.html
+http://www.unc.edu/depts/diplomat/archives_roll/2003_10-12/schaffer_bunker/schaffer_bunker.html
+http://www.unc.edu/depts/europe/docs/german97-2.html
+http://www.unc.edu/depts/pubserv/produce.html
+http://www.unc.edu/depts/wcweb/handouts/argument.html
+http://www.unc.edu/depts/wcweb/handouts/fragments.html
+http://www.unc.edu/depts/wcweb/handouts/lab_report_complete.html
+http://www.unc.edu/depts/wcweb/handouts/style.html
+http://www.unc.edu/~cssmith/books2000.html
+http://www.unc.edu/~hbs/01art.htm
+http://www.unc.edu/~rowlett/units/dictH.html
+http://www.unc.edu/~rowlett/units/dictK.html
+http://www.unc.edu/~sfox/alice.html
+http://www.uncarved.org/jetexts/ycbdt.html
+http://www.uncarved.org/music/apunk/christ.html
+http://www.uncarved.org/turb/articles/ssd.html
+http://www.uncc.edu/jmarks/interests/PSYCH.html
+http://www.uncc.edu/wcgay/pubnonsexist.htm
+http://www.uncdf.org/english/evaluations/les87co1_final.php
+http://www.uncg.edu/bcn/GraduateInfo.html
+http://www.unclaw.com/chin/scholarship/fishermen.htm
+http://www.unclefed.com/AuthorsRow/GretaHicks/flexi962.html
+http://www.unclefed.com/Tax-Help/HTML/p3/ix01.html
+http://www.unclefed.com/Tax-News/1989/
+http://www.uncobgyn.com/
+http://www.uncommonforum.com/viewtopic.php?p=17636
+http://www.uncommonforum.com/viewtopic.php?p=19303
+http://www.uncommonforum.com/viewtopic.php?p=19970
+http://www.uncommonforum.com/viewtopic.php?p=20830
+http://www.uncommonforum.com/viewtopic.php?p=22590
+http://www.uncommonforum.com/viewtopic.php?t=3468
+http://www.uncommonforum.com/viewtopic.php?t=3468&start=0
+http://www.uncommonknowledge.org/00fall/510.html
+http://www.uncommonknowledge.org/00fall/default.htm
+http://www.uncommonknowledge.org/700/712.html
+http://www.uncommonknowledge.org/700/default.htm
+http://www.uncommonknowledge.org/800/839.html
+http://www.uncommonknowledge.org/winter00/412.html
+http://www.uncommonknowledge.org/winter98/204.html
+http://www.unconditionalcompassion.com/sub/COEProposal.htm
+http://www.unctad.org/Templates/Download.asp?docID=2805&intItemID=1634&lang=1
+http://www.unctad.org/Templates/Download.asp?docid=1925&lang=1&intItemID=2103
+http://www.unctad.org/Templates/webflyer.asp?docid=2805&intItemID=2079&lang=1
+http://www.uncwil.edu/stuaff/career/Majors/education.htm
+http://www.und.edu/dept/csl/section-1.htm
+http://www.und.edu/dept/csl/section-5.htm
+http://www.und.edu/dept/itss/train/itss-course_summaries_2002.htm
+http://www.und.nodak.edu/org/hr/professnl.htm
+http://www.und.nodak.edu/org/ndwild/oldtree.html
+http://www.underconsideration.com/mt-static/mt-comments.cgi?entry_id=1810
+http://www.underconsideration.com/mt-static/mt-comments.cgi?entry_id=2182
+http://www.underconsideration.com/mt-static/mt-comments.cgi?entry_id=2196
+http://www.underconsideration.com/speakup/archives/002014.html
+http://www.underdogma.com/default.asp?ntype_id=52
+http://www.underdown.org/cig_2e_ch16.htm
+http://www.undergroundgardener.com/silverlake_roots.htm
+http://www.undergroundnews.com/ubb/ultimatebb.php/topic/2/4/9.html
+http://www.underlevel.net/philclub/archives/000046.html
+http://www.underreported.com/modules.php?op=modload&name=News&file=index&catid=&topic=22&allstories=1
+http://www.underthesamesun.org/content/2005/05/
+http://www.underthesun.cc/Classics/Andersen/danish/
+http://www.underthesun.cc/Classics/Sheridan/SchoolForScandal/SchoolForScandal7.html
+http://www.underthesun.cc/Classics/Verne/Interior/Interior12.html
+http://www.undiscoveredscotland.co.uk/abington/abington/
+http://www.undp.org.in/Programme/Environment/glass/ggc.htm
+http://www.undp.org.vn/mlist/envirovlc/042005/post68.htm
+http://www.undp.org.vn/undp/docs/1998/migration/
+http://www.undp.org/hiv/publications/issues/english/issue11e.htm
+http://www.undp.org/povertyreport/chapters/chap8.html
+http://www.undueinfluence.com/foundation_for_deep_ecology.htm
+http://www.undueinfluence.com/peta.htm
+http://www.une.edu/ur/relations/summit.html
+http://www.unearthingtrex.com/pages/rex_anatomy.html
+http://www.uneca.org/cfm/2004/ministerial_statement.htm
+http://www.uneca.org/eca_resources/Publications/ESPD/economic_report_1999.htm
+http://www.uneca.org/eca_resources/Speeches/2005_speeches/060805_speech_hakim.htm
+http://www.uneca.org/eca_resources/Speeches/amoako/96_97/sadc-wp.htm
+http://www.unece.org/env/eia/eiaresources.html
+http://www.unece.org/spot/s062.htm
+http://www.uned.es/webuned/areasgen/info/english5.htm
+http://www.unep-unctad.org/cbtf/activities.htm
+http://www.unep-unctad.org/cbtf/cbtf2/projectsactivity.htm
+http://www.unep.org/Documents.Multilingual/Default.asp?DocumentID=434&ArticleID=4806&l=en
+http://www.unep.org/children_youth/gyr2003/gyr-news-update.htm
+http://www.unep.org/geo2000/english/0046.htm
+http://www.uneptie.org/pc/cp/understanding_cp/cp_policies.htm
+http://www.uneptie.org/sitemap-subject.htm
+http://www.unescap.org/esid/psis/population/database/poplaws/law_viet/vi_011.htm
+http://www.unesco.or.id/activities/social/146.php
+http://www.unesco.org/culture/copy/copyright/bangladesh/page3.html
+http://www.unesco.org/culture/copy/copyright/pakistan/page3.html
+http://www.unesco.org/dialogue2001/en/conferences.html
+http://www.unesco.org/education/efa/know_sharing/grassroots_stories/index.shtml
+http://www.unesco.org/education/efa/know_sharing/grassroots_stories/kenya_3.shtml
+http://www.unesco.org/education/studyingabroad/tools/conventions_eur_cover.shtml
+http://www.unesco.org/education/studyingabroad/tools/conventions_med_cover.shtml
+http://www.unesco.org/most/apmrnw12.htm
+http://www.unesco.org/most/tromso.htm
+http://www.unesco.org/most/usa3.htm
+http://www.unesco.org/science/
+http://www.unesco.org/science/wcs/eng/framework.htm
+http://www.unesco.org/webworld/ramp/html/r8722e/r8722e0d.htm
+http://www.unesco.org/webworld/ramp/html/r8722e/r8722e10.htm
+http://www.unesco.org/webworld/ramp/html/r8722e/r8722e12.htm
+http://www.unesco.org/webworld/ramp/html/r8809e/r8809e09.htm
+http://www.unesco.org/webworld/ramp/html/r8815e/r8815e06.htm
+http://www.unescobkk.org/culture/underwater/detail.asp?id=9
+http://www.unescobkk.org/education/ict/v2/info.asp?id=10967
+http://www.unescobkk.org/ips/arh-web/demographics/cambodia.cfm
+http://www.unf.edu/classes/medieval/film/thinkingabouthistoricalfilm.htm
+http://www.unfitforsociety.net/musesfool/caughtwithpantsdown.htm
+http://www.unfogged.com/archives/week_2003_08_03.html
+http://www.unfogged.com/archives/week_2003_09_07.html
+http://www.unfogged.com/archives/week_2003_09_28.html
+http://www.unfogged.com/archives/week_2003_10_05.html
+http://www.unfogged.com/archives/week_2003_11_09.html
+http://www.unfogged.com/archives/week_2004_02_22.html
+http://www.unfogged.com/archives/week_2004_04_18.html
+http://www.unfogged.com/archives/week_2004_05_30.html
+http://www.unfogged.com/archives/week_2004_10_17.html
+http://www.unfogged.com/archives/week_2004_10_31.html
+http://www.unfogged.com/archives/week_2004_12_05.html
+http://www.unfogged.com/archives/week_2005_06_05.html
+http://www.unforgettablelanguages.com/sat.html
+http://www.unfpa.org/icpd/icpd_poa.htm
+http://www.unfpa.org/icpd5/bulletins/bulletn14.htm
+http://www.unfpa.org/icpd5/bulletins/bulletn5.htm
+http://www.unfpa.org/intercenter/reprights/sexual-2.htm
+http://www.unfpa.org/swp/2000/english/ch01.html
+http://www.ungerware.net/classtemp.htm
+http://www.unh.edu/esci/mapexplan.html
+http://www.unh.edu/p2/biodiesel/article_alge.html
+http://www.unh.edu/rcm/reviewcommstructure.html
+http://www.unhchr.ch/data.htm
+http://www.unhchr.ch/huricane/huricane.nsf/0/088D61297F01FE378025676D00318ACD?opendocument
+http://www.unhcr.bg/press/sega_10042002_en.htm
+http://www.unhooked.com/sep/match2.htm
+http://www.unhooked.com/trxpro/howgroupswork.htm
+http://www.uni-bamberg.de/sowi/soziologie-i/publications/abs_blossfeld08.html
+http://www.uni-bielefeld.de/International/
+http://www.uni-hohenheim.de/~schaefer/afs/info-afs/0491.html
+http://www.uni-koeln.de/~al001/basp5.html
+http://www.uni-saarland.de/fak5/ronald/Perspsy/mood/mood.htm
+http://www.uni-tuebingen.de/connotations/GIBBON61.HTM
+http://www.uni-ulm.de/uni/fak/natwis/orgchem/AKSiehl/Bruker_WWW/docucntr/doc013/document.htm
+http://www.uni.edu/playground/tips/SAFE/equipment_guidelines.html
+http://www.uni.uiuc.edu/admissions/WaitlistFAQ.htm
+http://www.unicef.org/girlseducation/index_25073.html
+http://www.unicef.org/media/media_10492.html
+http://www.unicef.org/media/media_11952.html
+http://www.unicef.org/media/media_18857.html
+http://www.unicef.org/media/media_21881.html
+http://www.unicef.org/media/media_23048.html
+http://www.unicef.org/media/media_24771.html
+http://www.unicef.org/media/media_speeches2003.html
+http://www.unicef.org/teachers/protection/participate.htm
+http://www.unicefusa.org/site/apps/nl/content3.asp?c=duLRI8O0H&b=46973&ct=127260
+http://www.unicnairobi.org/display.asp?section_id=30&storynr=65
+http://www.unico.edu.sv/english/proysocial/ide/proy.html
+http://www.unicorn-enterprises.com/uxps_overview.html
+http://www.unicttaskforce.org/sixthmeeting/docs.html
+http://www.unicycling.org/iuf/rulebook/iufrules/1general.html
+http://www.unido.org/doc/4107
+http://www.unido.org/en/doc/3327
+http://www.unifi.org.uk/scotlandandireland/adviceonline/rsibeat.htm
+http://www.unification.org/ucbooks/SAV/Sav-09.htm
+http://www.uniformguidelines.com/qandaprint.html
+http://www.unifr.ch/biol/ecology/hamilton/hamilton/bozzi2.html
+http://www.unihealth.usyd.edu.au/While%20you're%20away.htm
+http://www.unilever.com/environmentsociety/socialcasestudies/education/Brazil_Investing_in_people.asp
+http://www.unimelb.edu.au/alumni/Careers/Careers12July.htm
+http://www.unimelb.edu.au/ppp/docs/1.html
+http://www.unimelb.edu.au/ppp/docs/9.html
+http://www.union-bulletin.com/main.asp?FromHome=1&TypeID=1&ArticleID=21262&SectionID=1&SubSectionID=1
+http://www.union-bulletin.com/main.asp?FromHome=1&TypeID=1&ArticleID=25200&SectionID=17&SubSectionID=30
+http://www.union-bulletin.com/main.asp?Search=1&ArticleID=22930&SectionID=1&SubSectionID=&S=1
+http://www.union-bulletin.com/main.asp?SectionID=1&SubSectionID=1&ArticleID=25174
+http://www.union-network.org/UNIsite/Sectors/Commerce/
+http://www.union-network.org/UNIsite/Sectors/Commerce/index_multinationals_Lidl.htm
+http://www.union-tribune.com/news/science/20020527-1423-bioreactorshortage.html
+http://www.union.edu/Admissions/PerfectSchool/ParentsGuide.php
+http://www.union.edu/Athletics/s.php?s=5015
+http://www.union.edu/N/DS/s.php?s=1852
+http://www.union.edu/N/DS/s.php?s=2604
+http://www.union.edu/N/DS/s.php?s=3192
+http://www.union.edu/PUBLIC/SCHOLARS/faq.htm
+http://www.unionbrae.com/Services.htm
+http://www.unionchurch.com/archive/013199.html
+http://www.unioncityvillage.homestead.com/
+http://www.uniondemocracy.com/Legal/yourjobyourrights.htm
+http://www.uniondemocracy.com/UDR/55-website%20contest%20results.htm
+http://www.unionlearningfund.org.uk/casestudies.htm
+http://www.unionplus.org/benefits/unique/
+http://www.unionrecord.com/arts/display.php?ID=1537
+http://www.unionrecord.com/final/display.php?ID=1941
+http://www.unionrecord.com/opinion/display.php?ID=561
+http://www.unionshop.org.au/us_aus/eupdtfeb03.html
+http://www.unionsquaremusic.co.uk/titlev4.php?ALBUM_ID=567&LABEL_ID=3
+http://www.unionvoice.org/campaign/RalphsGalloMD
+http://www.unionvoice.org/campaign/stand2003_clone
+http://www.unionvoice.org/campaign/takethepledge
+http://www.unionyes.org/labor_leader.htm
+http://www.unipv.it/webphilos_lab/courses/papers/action_based.htm
+http://www.uniquetravelstories.com/NY/marathon.htm
+http://www.unis.unvienna.org/unis/pressrels/2000/ga1739.html
+http://www.unis.unvienna.org/unis/pressrels/2001/gadis3213.html
+http://www.unis.unvienna.org/unis/pressrels/2005/pop920.html
+http://www.unisa.edu.au/study/
+http://www.unisanet.unisa.edu.au/BUGE/DisplayBUGE.asp?Division=HSC
+http://www.unisanet.unisa.edu.au/BUGE/DisplayBUGE.asp?Division=IEE
+http://www.unisdirect.com/projects/apel-test/section4/4-ex-9b.htm
+http://www.uniserve.com/?page=home/netnews&item=0412
+http://www.unison-scotland.org.uk/conf2004/wed5.html
+http://www.unison-scotland.org.uk/volsec/voiceatwork/12.html
+http://www.unison.ie/features/specialolympics2003/leinster/
+http://www.unison.ie/html/homehelp/safety.shtml
+http://www.unison.ie/irish_independent/index.php3?ca=35&issue_id=3433
+http://www.unison.ie/irish_independent/index.php3?ca=45&issue_id=5481
+http://www.unison.ie/irish_independent/index.php3?ca=45&issue_id=5793
+http://www.unison.ie/irish_independent/index.php3?ca=45&issue_id=8173
+http://www.unison.ie/irish_independent/index.php3?issue_id=10397
+http://www.unison.ie/irish_independent/index.php3?issue_id=11122
+http://www.unison.ie/irish_independent/index.php3?issue_id=3211
+http://www.unison.ie/irish_independent/index.php3?issue_id=5455
+http://www.unison.ie/irish_independent/index.php3?issue_id=6009
+http://www.unison.ie/irish_independent/index.php3?issue_id=6280
+http://www.unison.ie/irish_independent/index.php3?issue_id=6600
+http://www.unison.ie/irish_independent/index.php3?issue_id=7659
+http://www.unison.ie/irish_independent/index.php3?issue_id=8810
+http://www.unison.ie/irish_independent/index.php3?issue_id=9077
+http://www.unison.ie/polls/index.php3?ident=Irish%20Independent&mypollid=1527
+http://www.unison.org.uk/activists/pages_view.asp?did=1443
+http://www.unison.org.uk/news/index.asp?k=higher%20education
+http://www.unison.org.uk/resources/doc_view.asp?did=1120
+http://www.unison.org.uk/worklifebalance/differentways.asp
+http://www.unison.org.uk/worklifebalance/thingstoknow.asp
+http://www.unisys.com/about__unisys/news_a_events/06088547.htm
+http://www.unisys.com/communications/insights/articles/articles.htm?insightsID=108241
+http://www.united-church.ca/pb/eap/
+http://www.united-church.ca/residentialschools/2005/04.shtm
+http://www.united-church.ca/worshipmatters/2004/
+http://www.united.com/press/detail/0,6862,52685-1,00.html
+http://www.unitedagainstinjustice.org.uk/advice/CCRC%20applications%20guide.html
+http://www.unitedbankofindia.com/loan.htm
+http://www.unitedbloodservices.org/llcover.html
+http://www.unitedchurchhomes.org/cgi-bin/start.exe/ema_default.html
+http://www.uniteddesign.com/idea_workshop1_97.html
+http://www.unitedfeatures.com/ufsapp/viewFeature.do?id=174
+http://www.unitedforjustice.com/peoplevsjames.htm
+http://www.unitedforpeace.org/article.php?id=1879
+http://www.unitedforpeace.org/article.php?id=1971
+http://www.unitedforpeace.org/article.php?id=2151
+http://www.unitedforpeace.org/article.php?id=2151&printsafe=1
+http://www.unitedforpeace.org/article.php?id=2786
+http://www.unitedforpeace.org/article.php?id=408
+http://www.unitedforpeace.org/article.php?id=408&printsafe=1
+http://www.unitedhealthfoundation.org/shr2002/components/risks/RiskFactors.html
+http://www.unitedhealthfoundation.org/shr2004/commentary/infant.html
+http://www.unitedleaders.org/
+http://www.unitedpokerforum.com/archive/2003-10/10/32428/
+http://www.unitedscripters.com/phps/print2.html
+http://www.unitedspinal.org/pages.php?catid=7&pageid=472&subtitle=A%20Final%20Word&anchor
+http://www.unitedthisistheway.com/
+http://www.unitedthisistheway.com/successby6.htm
+http://www.unitedvisual.com/2tips/2tvcf101.asp
+http://www.unitedvna.org/faq.asp
+http://www.unitedway-columbia.org/member_agencies.php?ID=1
+http://www.unitof1.com/amazon-buy-0684856360.html
+http://www.unitstudy.com/articles/Giving%20Thanks.htm
+http://www.unityunitarian.org/grade78.html
+http://www.universalalliance.org.uk/other_services_enchanting_sea_dragon_healing_sanctuary.htm
+http://www.universalistchurch.net/boyinthebands/
+http://www.universalservice.org/board/minutes/sl/102197.asp
+http://www.universalteacher.org.uk/gcse/xmascarol.htm
+http://www.universalteacher.org.uk/gcsemedia/media.htm
+http://www.universalteacher.org.uk/prose/achristmascarol.htm
+http://www.universaltreasures.com/mammoth.htm
+http://www.universalunderwriters.com/uug/maintenance.nsf/0/E780A10D3AD097ED85256F2A006FAC10?opendocument&changemenu=no
+http://www.universidadabierta.edu.mx/SerEst/MAP/METODOS%20CUANTITATIVOS/Business%20Statistics.htm
+http://www.universities.com/Search/Degrees/Doctors_degree/
+http://www.university-technology.com/legal.php
+http://www.universityaffairs.ca/issues/2004/apr/print/good.html
+http://www.universitybusiness.com/page.cfm?p=617
+http://www.universitybusiness.com/page.cfm?p=791
+http://www.universityindia.edu/policy.htm
+http://www.universitysport.ca/e/story_detail.cfm?id=3538
+http://www.univie.ac.at/Wissenschaftstheorie/srb/srb/probing.html
+http://www.univie.ac.at/dcedoc/A3U2Q/A3U2QM03.HTM
+http://www.unixl.com/dir/humanities/psychology/psychology_degrees/
+http://www.uniya.org/talks/brennan_20may04.html
+http://www.unjlc.org/content/index.phtml/itemId/18974
+http://www.unjspf.org/eng/archives/annex3-97.html
+http://www.unknownnews.net/apocalypsenow.html
+http://www.unknownnews.net/madcow.html
+http://www.unl.edu/barkley/spath/faqs.shtml
+http://www.unl.edu/philosop/undergrad/undgrad.html
+http://www.unl.edu/scarlet/v10n30/v10n30nibs.html
+http://www.unl.edu/scarlet/v12n02/v12n02features.html
+http://www.unlimited.co.nz/unlimited.nsf/0/E71409A1DAE3EA24CC256EEC0010D618?OpenDocument
+http://www.unlimitedmom.com/articles%202004/dealing-with-lying.php
+http://www.unlimitedrealestate.net/showmgr/showingdetailreportoverview.htm
+http://www.unlockme.co.uk/blacklist.html
+http://www.unm.edu/cirt/introductions/aix_xlfortran/xlflrm.htm
+http://www.unm.edu/~abqteach/ArchiCUs/99-02-09.htm
+http://www.unm.edu/~abqteach/archeology_cus/02-01-11.htm
+http://www.unm.edu/~abqteach/gods_cus/01-02-04.htm
+http://www.unm.edu/~abqteach/math2002/02-02-06.htm
+http://www.unm.edu/~finearts/about/publications/cfafall.htm
+http://www.unm.edu/~pre/law/articles_advise/religious.html
+http://www.unm.edu/~psych/faculty/music.htm
+http://www.unm.edu/~ubppm/ubppmanual/2020.htm
+http://www.unmalumni.com/chapel/usage.htm
+http://www.unmarriedamerica.org/News-About-Us/living_single_seeing_double.htm
+http://www.unmc.edu/Community/ruralmeded/admission_timeline.htm
+http://www.unmc.edu/Community/ruralmeded/fedstloc/by_the_numbers.htm
+http://www.unmc.edu/Community/ruralmeded/generalism.htm
+http://www.unmc.edu/Community/ruralmeded/model/medical_schools_reforms.htm
+http://www.unmc.edu/durham/unique.htm
+http://www.unmsub.com/employment.htm
+http://www.unmuseum.org/lostw.htm
+http://www.unmuseum.org/tsunami.htm
+http://www.uno.edu/~acaf/ap/20.4.htm
+http://www.unocal.com/uclnews/2005news/020105b.htm
+http://www.unodc.org/unodc/en/speech_2000-11-28_1.html
+http://www.unodc.org/unodc/en/speech_2003-03-20_2.html
+http://www.unodc.org/unodc/en/speech_2003-10-16_1.html
+http://www.unodc.org/unodc/unlinks.html
+http://www.unoy.org/YOUTH%20FORUM%20FOR%20PEACE%20AND%20JUSTICE.htm
+http://www.unpa.net/about/annual.htm
+http://www.unr.edu/gerontology/Fnews04.htm
+http://www.unr.edu/vpaf/hr/benefits/supplemental.html
+http://www.unreasonableman.net/2004/04/benefits_of_fut.html
+http://www.unreasonableman.net/2004/06/the_benefits_of.html
+http://www.unrisd.org/unrisd/website/document.nsf/0/A3189A1A4EA2794280256B67005B712E?OpenDocument
+http://www.unrv.com/early-empire/imperial-dynasty.php
+http://www.unrv.com/emperors/constantine-II.php
+http://www.unshod.org/pfbc/pfrevlinks.htm
+http://www.unshod.org/pfbc/pfrossi2.htm
+http://www.unswlawsoc.org/careersguide/hdy.php
+http://www.unt.edu/dcsmt/mtg001103.htm
+http://www.unt.edu/hr/records/faq.htm
+http://www.unt.edu/jewishstudies/courses/courses.htm
+http://www.unt.edu/northtexan/archives/p01/untnews.htm
+http://www.unt.edu/northtexan/archives/p02/studentfocus.htm
+http://www.unt.edu/northtexan/archives/s01/alumniawardswinners.htm
+http://www.unt.edu/pais/insert/ubiol.htm
+http://www.unt.edu/pais/insert/ucyto.htm
+http://www.unt.edu/pais/insert/umdth.htm
+http://www.unt.edu/pais/insert/uphil.htm
+http://www.unt.edu/policy/UNT_Policy/volume1/1_5_1.html
+http://www.unt.edu/policy/UNT_Policy/volume1/1_7_6.html
+http://www.unt.edu/urcmmediaguide/media.htm
+http://www.untimely-thoughts.com/?cat=3&type=3&art=896
+http://www.unu.edu/unupress/food/8F074e/8F074E01.htm
+http://www.unu.edu/unupress/food/8F103e/8F103E04.htm
+http://www.unu.edu/unupress/food/8F134e/8F134E03.htm
+http://www.unu.edu/unupress/food/V183e/ch06.htm
+http://www.unu.edu/unupress/unupbooks/80362e/80362E02.htm
+http://www.unu.edu/unupress/unupbooks/80364e/80364E08.htm
+http://www.unu.edu/unupress/unupbooks/80632e/80632E0g.htm
+http://www.unu.edu/unupress/unupbooks/80635e/80635E0n.htm
+http://www.unu.edu/unupress/unupbooks/80653e/80653E0d.htm
+http://www.unu.edu/unupress/unupbooks/80697e/80697E02.htm
+http://www.unu.edu/unupress/unupbooks/80774e/80774E0a.htm
+http://www.unu.edu/unupress/unupbooks/uu07ee/uu07ee07.htm
+http://www.unu.edu/unupress/unupbooks/uu08ie/uu08ie0o.htm
+http://www.unu.edu/unupress/unupbooks/uu11ee/uu11ee0a.htm
+http://www.unu.edu/unupress/unupbooks/uu21le/uu21le04.htm
+http://www.unu.edu/unupress/unupbooks/uu32me/uu32me09.htm
+http://www.unu.edu/unupress/unupbooks/uu35ie/uu35ie0c.htm
+http://www.unv.org/infobase/unv_news/2000/88/00_06_88IND_women.htm
+http://www.unwire.org/UNWire/20040423/449_23144.asp
+http://www.unzco.com/basicguide/c4.html
+http://www.unzco.com/basicguide/c6.html
+http://www.uoa.org/ostomy_travel.htm
+http://www.uoguelph.ca/~antoon/gadgets/pll/pll.html
+http://www.uoguelph.ca/~rmckitri/research/fallupdate04/update.fall04.html
+http://www.uoit.ca/EN/main/11259/11264/pol_res.html
+http://www.uoregon.edu/~delancey/courses/211/211links.html
+http://www.uoregon.edu/~uopubs/bulletin/geography.shtml
+http://www.uow.edu.au/arts/sts/bmartin/dissent/documents/health/healthsouth_care.html
+http://www.uow.edu.au/eng/bmh/masters.html
+http://www.uow.edu.au/prospective/postgrad.html
+http://www.uow.edu.au/prospective/recent.html
+http://www.up200.org/v2/JP30/JP30rules.htm
+http://www.upa.org/ultimate/rules/rules.shtml
+http://www.upa.pdx.edu/baby-boom/
+http://www.upakweship.co.uk/
+http://www.upassoc.org/upa_publications/upa_voice/volumes/2005/june/winning_tagline.html
+http://www.upbustleandout.co.uk/zahara/walking/walking.htm
+http://www.upc.edu/tercercicle/faq.php?id=3
+http://www.upd.oas.org/update/ebulletin.html
+http://www.upe.ac.za/labour/honours_treatises_1.htm
+http://www.upeace.org/news/index.cfm?id_activity=234&actual=2004
+http://www.upeace.org/programmes/GPB.cfm
+http://www.upei.ca/irr/visa.html
+http://www.upei.ca/irr/weather.html
+http://www.upenn.edu/assoc-provost/handbook/ii_b_3.html
+http://www.upenn.edu/oip/iss/tax/studgtis.html
+http://www.upenn.edu/researchatpenn/article.php?948&tch
+http://www.upf.com/book.asp?id=ALTERF93
+http://www.uphs.upenn.edu/ebdc/components/component_2/PSVI/
+http://www.upi.com/view.cfm?StoryID=15022002-015414-4119r
+http://www.upi.com/view.cfm?StoryID=20020722-015757-3713r
+http://www.upi.com/view.cfm?StoryID=20020917-050010-1363r
+http://www.upi.com/view.cfm?StoryID=20030714-073510-5671r
+http://www.upi.com/view.cfm?StoryID=20040309-122413-8660r
+http://www.upi.com/view.cfm?storyID=20041102-105724-9976r
+http://www.upliftprogram.com/h_ethics.html
+http://www.upmc-biosecurity.org/pages/events/2nd_symposia/transcripts/trans_layt.html
+http://www.upmj.co.uk/Jan%2011%202005.php4
+http://www.upmrc.org/content/activities/activities_i.html
+http://www.upmtg.com/ilr-training.htm
+http://www.upmystreet.com/overview/?l1=Port%20William
+http://www.upnaway.com/~poliowa/Facing%20Surgery.html
+http://www.upnorthpub.com/lk.htm
+http://www.upperside.fr/wifivoice04/wifivoice04program.htm
+http://www.uppity-disability.net/bio2000.html
+http://www.upress.virginia.edu/authorinfo/msprep3.html
+http://www.ups.edu/bulletin/ipe/
+http://www.ups.edu/physics/faculty/donev/Bat%20Sonar
+http://www.upsidedownworld.org/ReingoldOil.htm
+http://www.upte.org/hxcontract/compensation.html
+http://www.uptick.com/forecast/forecast_1.php?pgid=171&parentid=2&seqno=9
+http://www.uptimesoftware.com/screenshots.html
+http://www.uptownrealty.com/our-agents/why-choose-us.html
+http://www.uq.edu.au/~e2hchans/mel_culv.html
+http://www.uq.edu.au/~mlwham/banjo/three_elephant_power/sitting_in_judgment.html
+http://www.uq.edu.au/~uqdcox/Agent-Based%20Theories%20of%20Right%20Action.htm
+http://www.uq.net.au/~zzdonsi/cost.html
+http://www.uqu.uq.edu.au/regulations/part03
+http://www.uqu.uq.edu.au/regulations/part03/base_view
+http://www.urantia.org/papers/paper82.html
+http://www.urantiabook.org/centering_prayer.htm
+http://www.urban.org/Template.cfm?NavMenuID=24&template=/TaggedContent/ViewPublication.cfm&PublicationID=8583
+http://www.urban.org/Template.cfm?Section=ByTopic&NavMenuID=62&TopicID=169&TopicName=Employment%20and%20Education
+http://www.urban.org/Template.cfm?Section=ByTopic&NavMenuID=62&TopicID=28&TopicName=Family%20Structure%20
+http://www.urban.org/content/Research/NewFederalism/NSAF/Snapshots/1997Results/MediaRelease/Media.htm
+http://www.urban.org/content/Research/NewFederalism/NSAF/Snapshots/1999Results/FamilyEconomicWellBeing/FamilyEcon.htm
+http://www.urban.org/url.cfm?ID=310861
+http://www.urban.org/url.cfm?ID=410934
+http://www.urban.org/url.cfm?ID=411050
+http://www.urban.org/urlprint.cfm?ID=7762
+http://www.urban.org/urlprint.cfm?ID=8968
+http://www.urban75.com/Action/dsei.html
+http://www.urban75.com/Action/reclaim10.html
+http://www.urban75.com/Drugs/alcohol.html
+http://www.urban75.com/Rave/party.html
+http://www.urban75.net/vbulletin/archive/index.php/t-93938.html
+http://www.urban75.org/football/rights.html
+http://www.urban75.org/glastonbury/glasto05.html
+http://www.urban75.org/london/chislehurst.html
+http://www.urbana.org/ns.ms.agency.overview.cfm?RecordId=440
+http://www.urbandharma.org/bcdialog/bcd2/feminization.html
+http://www.urbandharma.org/images/Monastic2003/
+http://www.urbandharma.org/udharma2/anger.html
+http://www.urbandictionary.com/define.php?term=ain't&r=d
+http://www.urbanecology.org.au/ecocity2/ecologicalrestructuring.html
+http://www.urbanexpose.com/story.ue?n=32
+http://www.urbanext.uiuc.edu/apples/appleorchards.cfm?state=IL&sort=farmname
+http://www.urbanext.uiuc.edu/apples_sp/orchards.html
+http://www.urbanext.uiuc.edu/eggs/res19-opincubator.html
+http://www.urbanext.uiuc.edu/gpe_sp/tg/c2-background.html
+http://www.urbanext.uiuc.edu/greenline/99v1/gl9901.02.html
+http://www.urbanext.uiuc.edu/nibbles/getalong-leading.html
+http://www.urbanext.uiuc.edu/veggies/tomato1.html
+http://www.urbanfox.tv/articles/formats/fm1hdand24p.html
+http://www.urbangeek.net/writings/academic/guernica.html
+http://www.urbanharvest.org/gardening/basics/raised_beds.html
+http://www.urbanhonking.com/regarding/archives/2004/10/
+http://www.urbaninsite.com/asp/surveyResults.asp?questionID=179
+http://www.urbaninsite.com/asp/surveyResults.asp?questionID=181
+http://www.urbaninsite.com/asp/surveyResults.asp?questionID=194
+http://www.urbanvancouver.com/aggregator/sources/53?from=120
+http://www.urbanwildlifesociety.org/UWS/HtLkIntrview.html
+http://www.urc.org.uk/our_work/committees/ministries/Statutory_Employment_Rights.htm
+http://www.urc.org.uk/reform_magazine/articles/whos_afraid_of_theology/
+http://www.ureg.ohio-state.edu/courses/Autumn/book3/B335.htm
+http://www.urfig.org/news-eng-doha-qatar-declaration-jennar-pt.htm
+http://www.urhobo.kinsfolk.com/Conferences/FirstAnnualConference/ConferenceMatters/KeynoteAddress.html
+http://www.uri-geller.com/em1.htm
+http://www.uri-geller.com/nscientist.htm
+http://www.uri.edu/artsci/bio/plant_anatomy/glossary.html
+http://www.uri.edu/artsci/lsc/actstu.html
+http://www.uri.edu/univcol/acadadv/cai/major.htm
+http://www.urielw.com/refs/041129.htm
+http://www.urinary-incontinence-sexual-dysfunction-help.com/kegelmaster_testim.html
+http://www.urj.org/_kd/go.cfm?destination=ViewItem&Item_ID=6921
+http://www.urlniche.com/free_help_with_names.htm
+http://www.urmc.rochester.edu/SMD/about/newsletterArchive/newsletter12172004.cfm
+http://www.urmc.rochester.edu/smd/about/newsletterArchive/newsletter12172004.cfm
+http://www.urop.uci.edu/id-sure/faq.html
+http://www.urop.uci.edu/opportunities/researcher_of_month/researcher_december01.html
+http://www.urotoday.org/prod/contents/confreport/article.asp?cat=confReport&sid=184&tid=397&aid=2507
+http://www.ursulakleguin.com/Telling_Excerpt.html
+http://www.us-asean.org/UABR/UABR202.htm
+http://www.us-green-card-lottery.org/
+http://www.us-israel.org/jsource/Society_&_Culture/IDF_ethics.html
+http://www.us-mission.ch/press2004/0713Zoellick.htm
+http://www.us-saudi-business.org/Speeches/Abraham%20speech.htm
+http://www.us.hsbc.com/securitysite/ourresponsibility.html
+http://www.us.ilo.org/archive/news/2001/ilowatch_0112.cfm
+http://www.us.imdb.com/rg/title-tease/usercomments/title/tt0038988/usercomments
+http://www.us.maynepharma.com/news/GermManuf_3May04.html
+http://www.us.oup.com/us/catalog/general/subject/Economics/Political/~~/cHI9MTAmcGY9MCZzcz1wdWJkYXRlLmRlc2Mmc2Y9bmV3cmVjZW50JnNkPWFzYyZ2aWV3PXVzYSZjaT0wMTk5MjY5NTNY?view=usa&ci=0199269548
+http://www.us.oup.com/us/catalog/general/subject/Economics/Political/~~/cHI9MTAmcGY9MCZzcz1wdWJkYXRlLmRlc2Mmc2Y9bmV3cmVjZW50JnNkPWFzYyZ2aWV3PXVzYSZjaT0wMTk5MjY5NTQ4?view=usa&sf=toc&ci=0199269548
+http://www.us.oup.com/us/catalog/general/subject/Sociology/LawSociety/~~/cHI9MTAmcGY9MCZzcz1wdWJkYXRlLmRlc2Mmc2Y9bmV3cmVjZW50JnNkPWFzYyZ2aWV3PXVzYSZjaT0wMTk1MTc2NTg4
+http://www.usa-canada.les.org/chapters/sandiego/
+http://www.usa-gymnastics.org/publications/usa-gymnastics/1999/3/deal-fear.html
+http://www.usa-patriotism.com/tribute/moh/kc1871.htm
+http://www.usaaf.net/ww2/medical/mspg8.htm
+http://www.usaba.org/pages/sportsAdaptSwim.html
+http://www.usabecker.com/archives/2004/07/
+http://www.usability.gov/methods/usability_testing.html
+http://www.usabilityprofessionals.org/upa_publications/upa_voice/volumes/2005/june/winning_tagline.html
+http://www.usacitiesonline.com/usafactfile.htm
+http://www.usack.org/membership/faqs.asp
+http://www.usacubatravel.com/lodging.htm
+http://www.usafa.af.mil/dfpfa/CVs/Bertha/Sco.html
+http://www.usafa.af.mil/jscope/JSCOPE00/Wheeler00.html
+http://www.usafa.af.mil/jscope/JSCOPE97/osbrne97.htm
+http://www.usafe.af.mil/news/news03/uns03671.htm
+http://www.usafootball.com/features/fastFundraise.html
+http://www.usafreedomcorps.gov/content/about_usafc/newsroom/speeches_dynamic.asp?ID=843
+http://www.usafreedomcorps.gov/dynamic_shared/includes/printable/dynamic_speeches.asp?ID=843
+http://www.usafriendsearch.com/
+http://www.usaid.gov/gn/nrm/news/010704_rakyteinture/
+http://www.usaid.gov/id/media/press/press25may05.html
+http://www.usaid.gov/locations/europe_eurasia/press/reach/aid_bh.html
+http://www.usaid.gov/our_work/cross-cutting_programs/private_voluntary_cooperation/pvoconf_agenda05.html
+http://www.usaid.gov/press/speeches/2003/sp030330.html
+http://www.usaid.gov/press/speeches/2004/sp041229.html
+http://www.usaid.gov/procurement_bus_opp/procurement/annual_pstatements/nepalaps.html
+http://www.usaid.gov/stories/ethiopia/cs_ethiopia_health.html
+http://www.usaid.gov/stories/southafrica/ss_southafrica_jabavuclinic.html
+http://www.usajobs.opm.gov/EI60.asp
+http://www.usajobs.opm.gov/homeland.asp
+http://www.usamnesia.com/2004_01_01_archive.html
+http://www.usanetwork.com/sports/usopen2004/ontheair/production/production.html
+http://www.usanews.net/
+http://www.usanews.net/default.htm
+http://www.usankf.org/f56/f6/f6b/f6b_6_ATHLETES/f6b_6_7_Juniors/f6b_6_7_2_ArticleStrength.htm
+http://www.usarj.army.mil/cmdstaffs/dcslog.htm
+http://www.usask.ca/economics/SABE/conferences/sabe2001.html
+http://www.usask.ca/education/coursework/802papers/machnaik/
+http://www.usask.ca/education/program/bed/homec.htm
+http://www.usask.ca/psychiatry/forensic.html
+http://www.usask.ca/wcvm/herdmed/applied-ethology/articles/maternal.html
+http://www.usastudyguide.com/WesternWash2.htm
+http://www.usatechguide.org/itemreview.php?itemid=1124
+http://www.usatf.org/events/2004/USATFClubXCChampionships/results/om.asp
+http://www.usatoday.com/educate/college/education/articles/20040215.htm
+http://www.usatoday.com/life/books/excerpts/2003-07-25-south-beach-diet_x.htm
+http://www.usatoday.com/life/books/excerpts/2003-09-05-cold-mountain_x.htm
+http://www.usatoday.com/life/columnist/popcandy/2002-09-11-candy.htm
+http://www.usatoday.com/life/music/news/2004-03-29-classic-rock-kids_x.htm
+http://www.usatoday.com/life/people/2004-04-12-matt-daniels_x.htm
+http://www.usatoday.com/life/television/news/2003-07-23-gay_x.htm
+http://www.usatoday.com/money/companies/2004-07-14-harrahs-caesars_x.htm
+http://www.usatoday.com/money/economy/2005-01-13-retail-jobless_x.htm
+http://www.usatoday.com/money/economy/employment/2003-10-01-unemployment_x.htm
+http://www.usatoday.com/money/industries/energy/2004-03-05-gas-prices_x.htm
+http://www.usatoday.com/money/industries/energy/2005-01-30-opec-meeting_x.htm?csp=34%5C'
+http://www.usatoday.com/money/perfi/funds/2003-12-09-whistleblow_x.htm
+http://www.usatoday.com/money/perfi/general/2004-12-09-mym_x.htm
+http://www.usatoday.com/news/healthscience/science/2002-06-07-dog-usat.htm
+http://www.usatoday.com/news/nation/census/2003-08-06-census-lede_x.htm
+http://www.usatoday.com/news/opinion/2005-01-10-broadband-bellsouth-our_x.htm
+http://www.usatoday.com/news/politicselections/nation/president/2004-10-04-vp-debate_x.htm
+http://www.usatoday.com/news/washington/2003-11-04-bush-poll_x.htm
+http://www.usatoday.com/news/washington/2004-02-12-wmd-hunt_x.htm
+http://www.usatoday.com/news/world/2001/09/09/belarus.htm
+http://www.usatoday.com/news/world/2004-12-26-ukraine-election_x.htm
+http://www.usatoday.com/sports/columnist/lopresti/2002-09-23-lopresti_x.htm
+http://www.usatoday.com/tech/news/2004-05-11-nintendo-ds_x.htm
+http://www.usatoday.com/tech/news/techinnovations/2004-11-03-innovators_x.htm
+http://www.usatoday.com/weather/news/2004-03-18-winter0304_x.htm
+http://www.usatoday.com/weather/resources/coldscience/aice0.htm
+http://www.usaverageadjusters.org/websiteuseragreement.htm
+http://www.usavisacounsel.com/article-89.htm
+http://www.usavolleyball.org/VolleyballNews/news.asp?id=768
+http://www.usaweekend.com/01_issues/010318/010318senior_athletes.html
+http://www.usaweekend.com/03_issues/030629/030629rights.html
+http://www.usaweekend.com/03_issues/030831/030831nurses.html
+http://www.usaweekend.com/classroom/fiction_00/fiction_win2000_maloney.html
+http://www.usaweekend.com/diffday/2000_articles/000924diffday.html
+http://www.usaweekend.com/food/carper_archive/950813eat_smart_tomatoes.html
+http://www.usawoa.org/woheritage/Hist_Avn_WO.htm
+http://www.usbr.gov/newsroom/speech/detail.cfm?RecordID=121
+http://www.usc.cuhk.edu.hk/wk_wzdetails.asp?id=957
+http://www.usc.edu/dept/MSA/humanrelations/womeninislam/idealmuslimah/chapter4.html
+http://www.usc.edu/dept/MSA/introduction/woi_knowledge.html
+http://www.usc.edu/dept/annenberg/papers/webart.html
+http://www.usc.edu/dept/gero/AgeWorks/ltc/courses/500.shtml
+http://www.usc.edu/dept/gero/AgeWorks/online-education/courses/500.shtml
+http://www.usc.edu/dept/publications/SCAMPUS/gov/gov15.html
+http://www.usc.edu/dept/publications/cat2004/schools/college/posc/graduate.html
+http://www.usc.edu/dept/publications/cat2004/schools/communication/comm_undergraduate/undergrad_minors.html
+http://www.usc.edu/dept/publications/cat2004/schools/education/graduate/masters.html
+http://www.usc.edu/dept/pubrel/trojan_family/autumn98/mailbag/mailbag.html
+http://www.usc.edu/dept/pubrel/trojan_family/summer00/32ndSt/32.html
+http://www.usc.edu/uscnews/story.php?id=1771
+http://www.uscampaignforburma.org/assk/biography.html
+http://www.uscampus.com/study_live/studylive_banking.htm
+http://www.uscatholic.org/2004/10/featb0410.htm
+http://www.uscatholic.org/cstline/tline2.html
+http://www.uscc.gov/textonly/transcriptstx/tesnic.htm
+http://www.uscc.gov/textonly/transcriptstx/txtesnic.htm
+http://www.usccr.gov/pubs/sac/ca0500/ch4.htm
+http://www.uscg.mil/stcw/s-handbk12.htm
+http://www.uscgauxcharleston.org/training.htm
+http://www.uschamber.com/
+http://www.uscharterschools.org/pub/uscs_docs/r/mission.htm
+http://www.usconstitution.com/InagAddrRichardNixon2nd.htm
+http://www.usconstitution.net/consttop_elec.html
+http://www.usconstitution.net/eman.html
+http://www.usconsulate.org.hk/cg/2000/0331.htm
+http://www.usconsulate.org.hk/ushk/others/2004/042202.htm
+http://www.uscourts.gov/faq.html
+http://www.uscourts.gov/library/annual_congress.html
+http://www.uscourts.gov/newsroom/letter_text.htm
+http://www.uscsi.org/publications/papers/05-17-05.htm
+http://www.usd.edu/~tgannon/jungbio.html
+http://www.usd434.org/curriculum/Social%20Studies%20Curriculum/grade5.htm
+http://www.usda-ethics.net/rules/rule16.htm
+http://www.usda-ethics.net/rules/rule23.htm
+http://www.usda.gov/wps/portal/!ut/p/_s.7_0_A/7_0_1OB?contentidonly=true&contentid=2005/05/0188.xml
+http://www.usdat.us/archives/10_21_04_event.html
+http://www.usdaw.org.uk/arena_journal/10/littlewoods_pools.html
+http://www.usdaw.org.uk/campaigns/freedom_from_fear/
+http://www.usdaw.org.uk/getactive/news/index_bydate.html
+http://www.usdoj.gov/atr/cases/f2100/2119.htm
+http://www.usdoj.gov/atr/cases/f2200/2238.htm
+http://www.usdoj.gov/atr/public/health_care/204694.htm
+http://www.usdoj.gov/civil/ocl/odometer/toc.htm
+http://www.usdoj.gov/criminal/cybercrime/1030_anal.html
+http://www.usdoj.gov/criminal/cybercrime/PatriotAct.htm
+http://www.usdoj.gov/criminal/cybercrime/swartzTestimony061704.htm
+http://www.usdoj.gov/crt/voting/sec_5/ltr/l_022604.html
+http://www.usdoj.gov/dea/pubs/intel/01026/
+http://www.usdoj.gov/eoir/press/98/nrcapsus.htm
+http://www.usdoj.gov/ndic/pubs07/998/meth.htm
+http://www.usdoj.gov/oig/special/0405/glossary.htm
+http://www.usdoj.gov/oig/special/9606/testimony.htm
+http://www.usdoj.gov/oig/testimony/0408/
+http://www.usdoj.gov/opa/pr/2003/May/03_crm_283.htm
+http://www.usdoj.gov/opa/pr/2003/November/03_opa_606.htm
+http://www.usdoj.gov/opa/pr/2003/November/03_opa_611.htm
+http://www.usdoj.gov/opa/pr/2004/February/04_opa_085.htm
+http://www.usdoj.gov/osg/briefs/2001/0responses/2001-0837.resp.html
+http://www.usdoj.gov/osg/briefs/2003/0responses/2003-0867.resp.html
+http://www.usdoj.gov/tax/readingroom/criminal/taxc01.htm
+http://www.usdoj.gov/usao/eousa/foia_reading_room/usam/title2/3mapp.htm
+http://www.usdoj.gov/usao/eousa/foia_reading_room/usam/title4/civ00012.htm
+http://www.usdoj.gov/usao/eousa/foia_reading_room/usam/title4/civ00145.htm
+http://www.usdoj.gov/usao/eousa/foia_reading_room/usam/title6/4mtax.htm
+http://www.usdoj.gov/usao/eousa/foia_reading_room/usam/title9/crm01968.htm
+http://www.usdoj.gov/usao/nyn/NewsReleases/NewsReleases.htm
+http://www.usdoj.gov/usao/ohs/Press/12-03-04-Col.htm
+http://www.usdoj.gov/ust/press/articles/abi_1203/abi_1203.html
+http://www.usea.org/aboutUSEA.htm
+http://www.usedbookcentral.com/texis/ubc/searchbooks,keywords,biography+military+leaders.html
+http://www.usedwigs.com/listenup.html
+http://www.usefilm.com/image/304187.html
+http://www.usefulandagreeable.com/united.html
+http://www.usefulwork.com/shark/arafatbombs.html
+http://www.useit.com/alertbox/
+http://www.useit.com/alertbox/20030421.html
+http://www.useit.com/alertbox/20030616.html
+http://www.useit.com/alertbox/20030630.html
+http://www.useit.com/alertbox/20030818.html
+http://www.useit.com/alertbox/20050314.html
+http://www.useit.com/alertbox/20050601.html
+http://www.usemb.gov.do/Ambassador/Speeches/08_dec_01.htm
+http://www.usemb.se/usis/history/chapter5.html
+http://www.usembassy-china.org.cn/chengdu/cons/faq.html
+http://www.usembassy-china.org.cn/press/release/2000/summers53.html
+http://www.usembassy-china.org.cn/press/release/2004/111804way.html
+http://www.usembassy-china.org.cn/sandt/CostofPollution-web.html
+http://www.usembassy-china.org.cn/sandt/chongqingbloodplasma.html
+http://www.usembassy-china.org.cn/sandt/estnews032103.htm
+http://www.usembassy-china.org.cn/sandt/estnews083002.htm
+http://www.usembassy-china.org.cn/sandt/ptr/estnews083002-prt.htm
+http://www.usembassy-dhaka.org/state/StatePD/pre1jan12_05.html
+http://www.usembassy.at/en/embassy/cons/residence.htm
+http://www.usembassy.de/germany/firstlady_interview.html
+http://www.usembassy.de/germany/greencard/
+http://www.usembassy.de/germany/irs.html
+http://www.usembassy.it/file2005_04/alia/a5042010.htm
+http://www.usembassy.it/file2005_05/alia/a5051801.htm
+http://www.usembassy.it/file2005_06/alia/a5062102.htm
+http://www.usembassy.org.uk/eande087.html
+http://www.usembassy.org.uk/fas/london_calling_july03.htm
+http://www.usembassy.org.uk/iraq98.html
+http://www.usembassy.ro/WF/200/eur203.htm
+http://www.usembassybanjul.gm/DHRF%20Info%20Sheet.htm
+http://www.usembassyjakarta.org/press_rel/bush-pressconf04.html
+http://www.usembkigali.net/rwanda/investment_climate.htm
+http://www.user-groups.net/showker/fire.html
+http://www.user.dccnet.com/s.brown/documents/1863-will-Donaldson-barbara.htm
+http://www.user.dccnet.com/welcomewoods/Friends_of_Caren/
+http://www.user.shentel.net/rbowman/files/studskil.htm
+http://www.useractive.com/oreilly/certificate/details.php3?partnerid=18
+http://www.userfocus.co.uk/articles/drc_report.html
+http://www.userfocus.co.uk/articles/focuspocus.html
+http://www.userfriendly.org/bts/
+http://www.userfriendly.org/community/iambe/daily.html
+http://www.users.bigpond.com/rjeb/tanks.html
+http://www.users.bigpond.net.au/asl-victoria/
+http://www.users.cloud9.net/~bradmcc/WhatIsSGML.html
+http://www.users.cloud9.net/~bradmcc/computerAphorisms.html
+http://www.users.globalnet.co.uk/~aair/latex.htm
+http://www.users.globalnet.co.uk/~aair/mites_BMJ.htm
+http://www.users.globalnet.co.uk/~qtls/calcite.htm
+http://www.users.globalnet.co.uk/~rxv/sebpc/pattcat.htm
+http://www.users.globalnet.co.uk/~semp/lordgrey.htm
+http://www.users.globalnet.co.uk/~wausie/Sea.html
+http://www.users.ms11.net/~habitat/bat/bathome.htm
+http://www.users.muohio.edu/kelleycs/mediablog.html
+http://www.users.nac.net/challoran/apbio.htm
+http://www.users.on.net/~arachne/deepeco.html
+http://www.users.onaustralia.com.au/drdavid/cat.htm
+http://www.users.totalise.co.uk/~leiafee/Blakes7/fiction/defector.htm
+http://www.useu.be/Categories/Tax%20and%20Finances/Jan2904SobelFSAP.html
+http://www.useu.be/TransAtlantic/May0703PowellUSEurope.html
+http://www.usfa.fema.gov/about/administrator/04-after-a-serious-fire.shtm
+http://www.usfa.fema.gov/about/administrator/04-everyone-goes-home.shtm
+http://www.usfca.edu/150years/vignette/vign8.html
+http://www.usfca.edu/pj/articles/Ultima.htm
+http://www.usfieldhockey.com/programs/coach/articles/jagday_receiving.htm
+http://www.usfigureskating.org/Shell.asp?sid=20627
+http://www.usforacle.com/vnews/display.v/ART/2004/10/15/416fc1b423885
+http://www.usfreeads.com/100418-cls.html
+http://www.usfreeads.com/311090-cls.html
+http://www.usfreeads.com/62515-cls.html
+http://www.usfreeads.com/94032-cls.html
+http://www.usga.org/news/2005/February/carey.html
+http://www.usga.org/turf/articles/management/irrigation/less_water.html
+http://www.usga.org/turf/green_section_record/2004/july_aug/turf_twisters.html
+http://www.usga.org/turf/green_section_record/2004/may_june/turf_twisters.html
+http://www.usgbc.org/News/usgbcinthenews_details.asp?ID=1431&CMSPageID=159
+http://www.usgbc.org/News/usgbcinthenews_details.asp?ID=1435&CMSPageID=159
+http://www.usgbc.org/News/usgbcinthenews_details.asp?ID=819
+http://www.usgbc.org/News/usgbcinthenews_details.asp?ID=819&CMSPageID=159
+http://www.usgbc.org/News/usgbcinthenews_details.asp?ID=852
+http://www.usgbc.org/chapters/cascadia/newsletter_archives.asp
+http://www.usgcrp.gov/usgcrp/nacc/health/outline.html
+http://www.usgennet.org/usa/ia/county/jasper1/history/metz/school/
+http://www.usgennet.org/usa/topic/colonial/book/chap9_5.html
+http://www.usgennet.org/usgnhome/business/tm.html
+http://www.usgo.org/congress/index.asp
+http://www.usgyms.net/exercise_equipment_midwest.htm
+http://www.ushandball.org/health/steam.html
+http://www.ushartford.com/news-jan-05.html
+http://www.ushistoricalarchive.com/cds/state-sc.html
+http://www.ushistoricalarchive.com/statemaps/nc/
+http://www.ushistory.org/paine/reason/reason34.htm
+http://www.ushistory.org/paine/rights/c2-041.htm
+http://www.ushistory.org/paine/rights/c2-055.htm
+http://www.ushistory.org/valleyforge/served/arnold.html
+http://www.ushistory.org/valleyforge/washington/george2.html
+http://www.ushli.com/abouttheconf05.asp
+http://www.usic.com/jobs/actuary.htm
+http://www.usig.org/tsunami.asp
+http://www.usindo.org/Briefs/2005/Joint%20Statement%20US-Indonesia%202005.htm
+http://www.usingenglish.com/reference/idioms/
+http://www.usingrfid.com/news/read.asp?lc=k15611tx414zw
+http://www.usingz.com/text/intro/
+http://www.usip.org/pubs/peaceworks/state10/conclu10.html
+http://www.usip.org/pubs/specialreports/early/dayton_imp/train_equip.html
+http://www.usip.org/pubs/specialreports/sr75.html
+http://www.usip.org/religionpeace/events.html
+http://www.usip.org/religionpeace/previous.html
+http://www.usip.org/religionpeace/rehr/eastwest.html
+http://www.usj.com.my/bulletin/upload/archive/index.php/t-3185.html
+http://www.uskbtc.com/article.php/181
+http://www.uslaboragainstwar.org/article.php?id=3702
+http://www.usm.maine.edu/~eng/100syllabusf03.htm
+http://www.usm.maine.edu/~maps/columbus/translation.html
+http://www.usm.maine.edu/~maps/exhibit2/sec5.htm
+http://www.usmd.edu/Leadership/BoardOfRegents/Bylaws/SectionVII/VII800.html
+http://www.usmd.edu/Leadership/Chancellor/SpecialDocs/Why_A_System.html
+http://www.usmemorialday.org/backgrnd.html
+http://www.usmint.gov/kids/index.cfm?fileContents=coinNews/cotm/2003/10.cfm
+http://www.usmission.mg/consinfo.html
+http://www.usmleworld.com/terms.asp
+http://www.usmm.net/honolulu.html
+http://www.usmra.com/groupsummary/summary2.asp?country=USA
+http://www.usna.usda.gov/Research/Herbarium/Lagerstroemia/Checklist_V.html
+http://www.usna.usda.gov/Research/Herbarium/Lagerstroemia/Checklist_W.html
+http://www.usnews.com/usnews/biztech/articles/010604/retire_4.htm
+http://www.usnews.com/usnews/culture/articles/030602/2lett.htm
+http://www.usnews.com/usnews/edu/articles/050606/6scholar.htm
+http://www.usnews.com/usnews/health/briefs/other/hb041203b.htm
+http://www.usnews.com/usnews/issue/050228/usnews/28rozelle.peo.htm
+http://www.usnewsclassroom.com/resources/activities/act021021.html
+http://www.usni.org/navalhistory/Articles99/Nhrodgaard.htm
+http://www.usoc.org/11499_18780.htm
+http://www.usoc.org/11506_13666.htm
+http://www.usoc.org/11671_26670.htm
+http://www.usoc.org/27555_12341.htm
+http://www.usoc.org/27555_12353.htm
+http://www.usoc.org/73_23385.htm
+http://www.usoc.org/73_26670.htm
+http://www.usoe.k12.ut.us/ate/newate.htm
+http://www.usoe.k12.ut.us/curr/char_ed/focus.htm
+http://www.usoe.k12.ut.us/curr/science/core/plans/int/rocks.html
+http://www.usoge.gov/pages/advisory_opinions/advop_files/1998/98x4.html
+http://www.usolympicteam.com/11506_29271.htm
+http://www.usopen.com/news/interviews/garcia_fri_flash.html
+http://www.usopen.com/news/interviews/goosen_sat.html
+http://www.usopen.com/news/interviews/mediaday-goosen.html
+http://www.usopen.com/news/interviews/woods_fri_flash.html
+http://www.usoperaweb.com/2001/may/littlewomen_part1.html
+http://www.usoperaweb.com/2002/june/peil.htm
+http://www.uspeacegovernment.org/news/2003_10_24.html
+http://www.uspharmacist.com/oldformat.asp?url=newlook/files/Cons/ACF16C4.cfm&pub_id=8&article_id=393
+http://www.uspharmacist.com/oldformat.asp?url=newlook/files/Cons/ACF2F13.cfm&pub_id=8&article_id=47
+http://www.uspharmacist.com/oldformat.asp?url=newlook/files/Feat/HIPAA.htm&pub_id=8&article_id=912
+http://www.uspharmacist.com/oldformat.asp?url=newlook/files/Phar/may00law.cfm&pub_id=8&article_id=528
+http://www.uspharmacist.com/oldformat.asp?url=newlook/files/Tren/herbal.cfm&pub_id=8&article_id=169
+http://www.uspolicy.be/mobile/europe/13.htm
+http://www.usps.com/mailerscompanion/febmar2001/article2pg3.htm
+http://www.usps.com/mailerscompanion/janfeb2004/mc0204art5.htm
+http://www.usps.com/mailerscompanion/julyaug2004/mc0804art7.htm
+http://www.usps.com/memotomailers/aug2003.htm
+http://www.usps.com/news/2002/press/pr02_058.htm
+http://www.uspto.gov/main/patents.htm
+http://www.uspto.gov/main/trademarks.htm
+http://www.uspto.gov/patft/
+http://www.uspto.gov/web/offices/ac/qs/ope/fees.htm
+http://www.uspto.gov/web/offices/com/sol/notices/staltfeestr.html
+http://www.uspto.gov/web/offices/com/sol/og/2000/week43/pataltr.htm
+http://www.uspto.gov/web/offices/com/sol/og/2003/week52/patrev2.htm
+http://www.uspto.gov/web/offices/com/speeches/openingst121902.htm
+http://www.uspto.gov/web/offices/com/speeches/stratplan2003apr03.htm
+http://www.uspto.gov/web/offices/pac/dapp/sir/co/examhbk/six.htm
+http://www.uspto.gov/web/offices/pac/mpep/
+http://www.uspto.gov/web/offices/pac/mpep/documents/appxr_1_84.htm
+http://www.usrbin.ca/damon/plants.html
+http://www.usregulars.com/gibbons/gibbons_chapter_xii_b.htm
+http://www.usroads.com/journals/aruj/9704/ru970401.htm
+http://www.usrom.com/Countries/iran.htm
+http://www.ussartf.org/blizzards.htm
+http://www.ussartf.org/topo_map_basics.htm
+http://www.ussc.gov/FEDREG/fedr0103b.htm
+http://www.ussc.gov/research.htm
+http://www.ussnicholas.org/wing17.html
+http://www.ussrenshawmysterytarget.com/soviet.html
+http://www.usswashington.com/23may42.htm
+http://www.usta.com/officials/
+http://www.ustrek.org/odyssey/semester2/040401/040401nickdraft.html
+http://www.usu.edu/honors/CoursesS05.htm
+http://www.usuhs.mil/ogc/faq.htm
+http://www.usuireiki.fsnet.co.uk/Japanesearticle.html
+http://www.usunnewyork.usmission.gov/05_119.htm
+http://www.usvetdsp.com/atrocities_iraq.htm
+http://www.usvisanews.com/articles/memo1532.shtml
+http://www.uswa.org/uswa/program/content/436.php
+http://www.uswings.com/military.asp
+http://www.uswitch.com/Energy/help/news/january-2005.asp
+http://www.usyd.edu.au/io/admission/ugform.html
+http://www.usyd.edu.au/su/personnel/ir/awards/acad_staff/section9.html
+http://www.uta.edu/pols/moore/indigent/standards.htm
+http://www.uta.fi/FAST/US1/REF/usgbdiff.html
+http://www.uta.fi/studies/introduction/living_in_tampere/
+http://www.utaaup.com/pub5.htm
+http://www.utahbirds.org/newsletters/2002-3/2003_09.html
+http://www.utahehs.org/index.php?tier=5&id=115
+http://www.utahehs.org/index.php?tier=5&id=90
+http://www.utahredrocks.com/lwh.htm
+http://www.utahstatesman.com/news/2003/02/05/Sports/Aggie.Women.Netters.Seeking.Winning.Record.Take.On.Isu-360715.shtml
+http://www.utas.edu.au/docs/jane_franklin_hall/summerschool.htm
+http://www.utc.edu/Administration/UniversityRelations/u_style.php
+http://www.utdallas.edu/dept/ta/taappcomp.htm
+http://www.utdallas.edu/~allie/stories.htm
+http://www.utdallas.edu/~pujana/oceans/why.html
+http://www.utea.org/
+http://www.uterinefibroids.com/j_99_06.htm
+http://www.utexas.edu/cc/newsletter/jul2000/virus.html
+http://www.utexas.edu/cee/odyssey/course2.shtml
+http://www.utexas.edu/coc/rtf/news-events/archive/04mar1-5.html
+http://www.utexas.edu/cofa/theatre/newworksindex.html
+http://www.utexas.edu/cola/cmes/publications/goto/publications/litintrans/
+http://www.utexas.edu/cola/depts/geography/facilities/goto/facilities/eislab/
+http://www.utexas.edu/cola/depts/lrc/iedocctr/ie-docs/lehmann/reader/Chapter8.html
+http://www.utexas.edu/cons/student_v3/graduation/shewbart.html
+http://www.utexas.edu/courses/classicalarch/readings/scribes.html
+http://www.utexas.edu/education/kinesiology/movesci/PhDprogram.html
+http://www.utexas.edu/eos/pres.html
+http://www.utexas.edu/faculty/council/1999-2000/legislation_99-00.html
+http://www.utexas.edu/faculty/council/2004-2005/sec_rpts/sec102004.html
+http://www.utexas.edu/international/com/bank.html
+http://www.utexas.edu/its/rc/tutorials/stat/spss/spss3/
+http://www.utexas.edu/its/sds/faq/msca_elg.html
+http://www.utexas.edu/law/academics/curriculum/studyabroad/eap.html
+http://www.utexas.edu/lbj/news/spring2005/volunteerism.html
+http://www.utexas.edu/opa/news/2005/06/music15.html
+http://www.utexas.edu/research/cswr/survey/bestpractices/bptrec.htm
+http://www.utexas.edu/spotlight/roundup030521.html
+http://www.utexas.edu/staff/council/minutes/2005_01_20.html
+http://www.utexas.edu/student/cmhc/booklets/assert/assertive.html
+http://www.utexas.edu/student/cmhc/booklets/fighting/fighting.html
+http://www.utexas.edu/student/cmhc/booklets/panic/panic.html
+http://www.utexas.edu/student/cmhc/booklets/sleep/sleep.html
+http://www.utexas.edu/student/housing/staff/view_reports.php
+http://www.utexas.edu/student/registrar/catalogs/gi02-03/app/appc09.html
+http://www.utexas.edu/student/registrar/catalogs/gi03-04/app/appc09.html
+http://www.utexas.edu/student/registrar/catalogs/gi04-05/app/appc09.html
+http://www.utexas.edu/student/registrar/catalogs/grad01-03/ch4/inter/cam.crs.html
+http://www.utexas.edu/student/registrar/catalogs/grad03-05/ch4/inter/cam.crs.html
+http://www.utexas.edu/student/utlc/handouts/1234.html
+http://www.utfa.org/committees/salary/nov272002arb2/
+http://www.uth.tmc.edu/scriptorium/textbook/develop.html
+http://www.utilitarian.org/criticisms.html
+http://www.utilityjobsearch.com/js/se/jobs/electrical.do
+http://www.utlc.org.au/
+http://www.utlm.org/onlinebooks/changech9c.htm
+http://www.utm.edu/research/iep/d/descarte.htm
+http://www.utm.utoronto.ca/~dwhite/222/221.htm
+http://www.utmem.edu/univheal/OC_Immunizations.html
+http://www.utmsi.utexas.edu/people/staff/fuiman/past_graduate_students.htm
+http://www.utne.com/pub/1999_74/
+http://www.utopia-net.org/lee-eng/eileen61.html
+http://www.utopianhell.com/
+http://www.utoronto.ca/govcncl/pap/policies/conacad.html
+http://www.utoronto.ca/hswriting/lit-review.htm
+http://www.utoronto.ca/innis/ProgramHighlights/finearthistory/ah_interview.html
+http://www.utoronto.ca/iwsgs/WSU/wssu.html
+http://www.utoronto.ca/jpolanyi/public_affairs/public_affairs4n.html
+http://www.utoronto.ca/ois/myweb9/Participation.htm
+http://www.utoronto.ca/physical/Leadership/internalOpportunities/internal.html
+http://www.utoronto.ca/tsq/10/tyurina10.shtml
+http://www.utoronto.ca/writing/critrdg.html
+http://www.utpjournals.com/product/ctr/117/117_Grant3.html
+http://www.utsa.edu/cfac/Old%20Site%20summer%2005/CFAC_Staff.html
+http://www.utsa.edu/cosuac/general/faqs.html
+http://www.utsa.edu/oep/plan_ch2.htm
+http://www.utsc.utoronto.ca/~career/events.htm
+http://www.utsha.com/worldview/brief.html
+http://www.utsystem.edu/OGC/IntellectualProperty/admin.htm
+http://www.utsystem.edu/cha/Leadership11-5-02.htm
+http://www.utsystem.edu/news/tuition/FAQ.htm
+http://www.utsystem.edu/ogc/intellectualproperty/2xii.htm
+http://www.utsystem.edu/ogc/intellectualproperty/admin2.htm
+http://www.utsystem.edu/ogc/intellectualproperty/confu.htm
+http://www.utsystem.edu/ogc/intellectualproperty/contract/attb.htm
+http://www.utsystem.edu/ogc/intellectualproperty/contract/jtiplong.htm
+http://www.utsystem.edu/ogc/intellectualproperty/contract/jtowners.htm
+http://www.utsystem.edu/ogc/intellectualproperty/contract/royaltyshare-general.htm
+http://www.utsystem.edu/ogc/intellectualproperty/contract/teclic.htm
+http://www.utsystem.edu/ogc/intellectualproperty/copypol2.htm
+http://www.utsystem.edu/ogc/intellectualproperty/digsigtf.htm
+http://www.utsystem.edu/ogc/intellectualproperty/jstsnout.htm
+http://www.utsystem.edu/ogc/intellectualproperty/l-cntrct.htm
+http://www.utsystem.edu/ogc/intellectualproperty/l-fu.htm
+http://www.utsystem.edu/ogc/intellectualproperty/l-resgen.htm
+http://www.utsystem.edu/ogc/intellectualproperty/teachact.htm
+http://www.uttlesford.gov.uk/news/the+environment/celebrity+chef+launches+christmas+recycling+campaign.htm
+http://www.uttyler.edu/meidenmuller/commtheory/StudentWork/shannonmilner.htm
+http://www.utubc.com/fatigue.htm
+http://www.utulsa.edu/recreation/intramurals/policies.shtml
+http://www.uua.org/
+http://www.uua.org/CONG/woonsocket.html
+http://www.uua.org/ga/ga03/3110.html
+http://www.uua.org/interconnections/qa/vol8-3-qa.html
+http://www.uua.org/news/010319.html
+http://www.uua.org/news/2002/020612christian_century.html
+http://www.uua.org/news/2003/iraq/childrenresources.html
+http://www.uua.org/news/2004/
+http://www.uua.org/programs/forums/index.php?action=vthread&forum=3&topic=154
+http://www.uua.org/re/faithworks/fall04/sj_trauma.html
+http://www.uua.org/re/other/needs_jan00.html
+http://www.uua.org/re/reach/fall00/adult/poisonwood_bible.html
+http://www.uua.org/uuhs/duub/articles/johnhaynesholmes.html
+http://www.uua.org/uuhs/duub/articles/michaelservetus.html
+http://www.uucb.org/sermons/2004103101
+http://www.uugiftstore.com/index.php?cPath=147&language=en
+http://www.uunhf.org/sunday/sermons/bydate/
+http://www.uuottawa.com/pledgecampaign2005index.htm
+http://www.uushenandoah.org/sermons/031005.htm
+http://www.uuworld.org/2004/03/newsuua3.html
+http://www.uvic.ca/adms/website/faq/faq.html
+http://www.uvl.ca/faq.htm
+http://www.uvm.edu/~biology/Classes/101/
+http://www.uvm.edu/~histpres/HPJ/NR/orwell/Orwellhist.html
+http://www.uvm.edu/~pass/perry/oh4roses.html
+http://www.uvm.edu/~provost/accreditation/Documents/Ramaley2-22-98/Academic-Virtues.html
+http://www.uvm.edu/~tstreete/newfable.htm
+http://www.uvmapper.com/help/preferences.html
+http://www.uwde.org/fullmembers.asp
+http://www.uwe.ac.uk/widen/michellereport.htm
+http://www.uwec.edu/counsel/pubs/sweetDreams.htm
+http://www.uwec.edu/philrel/shimbutsudo/ho-wori_toyo-tama.html
+http://www.uwex.edu/ces/nacaa2003/spouses.html
+http://www.uwf.edu/tprewitt/debatenotes1.htm
+http://www.uwgb.edu/dutchs/CosmosNotes/cosmos9.htm
+http://www.uwgb.edu/dutchs/pseudosc/badmodl.htm
+http://www.uwgb.edu/univcomm/campus/univlife.htm
+http://www.uwic.ac.uk/ICRC/issue003/jdahn.htm
+http://www.uwic.ac.uk/Purchasing/aboutus/How%20to%20supply%20to%20us/index.asp
+http://www.uwic.ac.uk/new/courses/health/Speech_Language_Therapy.asp?subsection=undergrad
+http://www.uwinnipeg.ca/current/services/PLAR_WEB/faq.html
+http://www.uwiseismic.com/
+http://www.uwkc.org/ida/english/part_agencies.asp
+http://www.uwlax.edu/faculty/cerbin/ls/PSY%20Research%20Lesson%20Example%20of%20Post-test.htm
+http://www.uwm.edu/People/wash/romFilmjfa.htm
+http://www.uwm.edu/~gjay/Whiteness/Whitenesstalk.html
+http://www.uwmc.uwc.edu/forum/content/2005/5/Opinion/Danabarrybon.htm
+http://www.uwmedicine.org/Facilities/Harborview/ClinicsAndServices/Neuro/StrokeCenter/terms.htm
+http://www.uwnews.org/article.asp?articleID=1873
+http://www.uwo.ca/earth/grad/opportunities.htm
+http://www.uwo.ca/pridelib/firstreadings.htm
+http://www.uwo.ca/researchpark/tenants/camh.htm
+http://www.uwplatt.edu/clume/survey/respo19.htm
+http://www.uwplatt.edu/web/wtc/div/
+http://www.uwrf.edu/dos/staff.php3
+http://www.uwrf.edu/student-voice/041105/abroad.htm
+http://www.uwsa.com/books/uws_7_Leads.html
+http://www.uwsp.edu/business/economicswisconsin/e_lecture/pop_sum.htm
+http://www.uwsp.edu/cnr/cwes/forestree/issues/skiarea.htm
+http://www.uwsp.edu/cnr/wcee/keep/Resources/Publications/BaselineStudy/baseline.htm
+http://www.uwsp.edu/education/Wkirby/ntrprsnl/negot.htm
+http://www.uwsp.edu/education/lkirby/Interpersonal/00Requirements.htm
+http://www.uwsp.edu/psych/apa4b.htm
+http://www.uwsp.edu/wildlife/elk/projup14.htm
+http://www.uww.edu/stdRsces/SART/facts.htm
+http://www.uwwrc.net/web/wetlandsrc/cat/case_studies/case_studies-1035574235306
+http://www.uz.ac.zw/library/lib_resources.htm
+http://www.v-2.org/
+http://www.v-2.org/displayArticle.php?article_num=44
+http://www.v-2.org/displayArticle.php?article_num=531
+http://www.v-methods.com/ji/
+http://www.v6supercharged.com.au/prods.asp
+http://www.va-interactive.com/inbusiness/editorial/bizdev/ibt/pricing_.html
+http://www.va-interactive.com/inbusiness/editorial/finance/ibt/cash_flow.html
+http://www.va-interactive.com/inbusiness/editorial/finance/ibt/ratio_analysis.html
+http://www.va-interactive.com/inbusiness/editorial/finance/intemp/income.html
+http://www.va-interactive.com/inbusiness/editorial/sales/ibt/market_analysis.html
+http://www.va.gov/OCA/testimony/doherty108.htm
+http://www.vab.org/jobs_page.html
+http://www.vac-acc.gc.ca/general/sub.cfm?source=department/reports/scondva_response
+http://www.vacantisw.com/foildesign.htm
+http://www.vacationrentalsdirectory.net/article.php/901721.htm
+http://www.vacationresellers.com/timeshareinfo.html
+http://www.vacations-paris.com/info/history.html
+http://www.vacationtechnician.com/x/ADDO%20ELEPHANTS.htm
+http://www.vacationtechnician.com/x/Behind%20the%20Postcards%20Namaqualand.htm
+http://www.vachss.com/guest_dispatches/take_back.html
+http://www.vadino.com/?q=rose
+http://www.vadino.com/windows/development-tools/setup/autoplay-media-studio.html
+http://www.vaginaverite.com/lookma.html
+http://www.vagrant.com/vagrant/bands/bands.jsp?album_name=Sorry%20About%20Tomorrow
+http://www.vagrant.com/vagrant/bands/bands.jsp?rec_num=10&release_id=46
+http://www.vaguelyspecific.com/archives/cat_places.html
+http://www.vahistorical.org/lva/mapsico.htm
+http://www.vaidya4u.com/m_pop.html
+http://www.vailvalleyinstitute.org/immigration.html
+http://www.vaio.net/sonyvaio547.html
+http://www.valdosta.edu/~iheath/assignments.html
+http://www.valenciatrader.com/
+http://www.valeofglamorgan.gov.uk/Our%20Community/Young%20People/Staying%20Safe.aspx
+http://www.valeofglamorgan.gov.uk/Our%20Council/Legal%20Notices/Legal%20Notices%20-%20Pages/A422%20Aberthin%20Road,%20Cowbridge%20(Part)%20Prohibition%20of%20Waiting%20.aspx
+http://www.valhallatravel.com/spotlight.html
+http://www.valiant.org/history.html
+http://www.valightning.com/
+http://www.valley-entertainment.com/Artists/Bill_Douglas/
+http://www.valley1st.org/Other_Services.htm
+http://www.valleyskeptic.com/tax~1.htm
+http://www.valleywild.org/veracruz.htm
+http://www.valmikiramayan.net/ayodhya/sarga79/ayodhyaitrans79.htm
+http://www.valmikiramayan.net/ayodhya/sarga79/ayodhyaroman79.htm
+http://www.valottery.com/news/press_details.asp
+http://www.valparaiso.com/fsbo/fsbo_terms.html
+http://www.valtioneuvosto.fi/vn/liston/base.lsp?r=90868&k=en&old=93521
+http://www.valtioneuvosto.fi/vn/liston/base.lsp?r=90868&k=en&old=94180
+http://www.valtioneuvosto.fi/vn/liston/print.lsp?r=90868&l=en&page=0
+http://www.valtioneuvosto.fi/vn/liston/text.lsp?r=90868&k=en&old=376
+http://www.valuationinformation.com/searchresults.cfm?fkeyword=Going%20Concern&fsiccode=&faction=&fcourt=&fnaiccode=
+http://www.valueaddedpartners.org/industry_articles.asp
+http://www.valuebasedmanagement.net/methods_bono_six_thinking_hats.html
+http://www.valuejudgment.org/
+http://www.valuemd.com/ftopic29166.html
+http://www.valuemd.com/medicine-156121.html
+http://www.valuescale.com/
+http://www.valuescale.com/digiweigh_scales.htm
+http://www.valuescale.com/kitchenscales.htm
+http://www.valuescale.com/monthlyspecials.htm
+http://www.valuescale.com/secamedicalscales.htm
+http://www.valuescale.com/specials.htm
+http://www.valuesrealization.org/trainers.html
+http://www.valuevacationrentals.com/property/index.cfm?mid=0
+http://www.valuevillage.com/charity/success_stories.php
+http://www.valuevillage.com/whoweare/history.php
+http://www.vamp.org/Gothic/Text/xd-history-valor.html
+http://www.vamp.org/Gothic/clublist.html
+http://www.vanaturally.com/bayandcoast.html
+http://www.vanaturally.com/water.html
+http://www.vanaturally.com/waystohelp.html
+http://www.vancourier.com/issues04/091204/news/091204nn1.html
+http://www.vancouver-chinatown.com/ctbia_dir_b.html
+http://www.vancouver.boardoftrade.com/vbot_page.asp?pageID=1312
+http://www.vancouver.ca.emb-japan.go.jp/consul_speeches/thinking_about_japan_burnaby.htm
+http://www.vancouver.hm/money.html
+http://www.vancouver.wsu.edu/amsrev/theory/palan10-01.html
+http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter6.html
+http://www.vancouverheritagefoundation.org/faq.html
+http://www.vancouvermassage.ca/articles.php
+http://www.vandelay.com/2004/08/suddenly-hawkish-after-35-years-kerry.html
+http://www.vanderbilt.edu/AEA/mbrfaq.htm
+http://www.vanderbilt.edu/AnS/religious_studies/SBL2002/Malagasy.htm
+http://www.vanderbilt.edu/HRS/policies/univcentralrif.htm
+http://www.vanderbilt.edu/HRS/wellness/ohcimm.htm
+http://www.vanderbilt.edu/cft/resources/newsletters/vol3-1/rakestraw.htm
+http://www.vanderbilt.edu/facman/statemnt.htm
+http://www.vanderbilt.edu/fis/Documents/eDog/eDog_reports_descr.htm
+http://www.vanderbilt.edu/rpw_center/lf04h.htm
+http://www.vanderbilt.edu/~postjf/comjb.htm
+http://www.vanderbilt.edu/~postjf/fech4int.htm
+http://www.vanderwal.net/random/category.php?cat=149
+http://www.vandycks.com/reallivegardenrules.phtml
+http://www.vandyke.com/customers/success/gma.html
+http://www.vangoghgallery.com/misc/archives/sermon.htm
+http://www.vangoghgallery.com/misc/sermon.htm
+http://www.vanguard.com/bogle_site/sp20030312c.html
+http://www.vanguard.edu/exss/index.cfm?doc_id=1748
+http://www.vanguardnews.com/school/stories2004/041314duty.htm
+http://www.vanguardnewsnetwork.com/books13.htm
+http://www.vanguardngr.com/articles/2002/business/june05/13062005/b113062005.html
+http://www.vanguardngr.com/articles/2002/features/technology/tec822062005.html
+http://www.vanityfair.com/commentary/content/articles/050530roco02
+http://www.vanlines.com/storage_guide/contract_costs.html
+http://www.vanlines.com/storage_guide/removals.html
+http://www.vanuatu.usp.ac.fj/paclawmat/Kiribati_cases/A-M/Mataroa_v_Republic.html
+http://www.vanuatutourism.com/vanuatu/export/sites/VTO/en/newsletter/NewsLetter_Apr_2005_015.html
+http://www.varbusiness.com/article/showArticle.jhtml?articleId=18830400
+http://www.varbusiness.com/sections/governmentvar/govt.asp?ArticleID=42884
+http://www.varbusiness.com/sections/news/breakingnews.jhtml?articleId=18815128
+http://www.varchive.org/obs/480507.htm
+http://www.vard.org/jour/00/37/4/wilson.htm
+http://www.vard.org/jour/00/37/6/gsted376.htm
+http://www.vard.org/jour/01/38/5/wibow385.htm
+http://www.vard.org/jour/01/38/6/davis386.htm
+http://www.vard.org/jour/98/35/4/TERI.htm
+http://www.vard.org/new/tip39-6.htm
+http://www.vardaman.com/frid/fridrep121704.php
+http://www.variant.randomstate.org/7texts/Robin_Ramsay.html
+http://www.variety.com/VE1117927015.html
+http://www.variety.com/article/VR1117912449?categoryid=13&cs=1
+http://www.variety.com/article/VR1117916815
+http://www.variety.com/index.asp?layout=cannes2004&content=preview&articleid=VR1117904416
+http://www.variety.com/index.asp?layout=filmfest2002&nav=guide&content=article&articleID=VR1117871743
+http://www.variety.com/index.asp?layout=tunein2004&content=jump&jump=article&head=midseason&articleID=VR1117916201
+http://www.variety.com/review/VE1117927015?categoryid=31
+http://www.varsity.co.uk/mambo/index.php?option=com_content&task=view&id=7796&Itemid=72
+http://www.vascularweb.org/_CONTRIBUTION_PAGES/Patient_Information/NorthPoint/Thrombolytic_Therapy.html
+http://www.vaselineglass.org/
+http://www.vasta.org/newsletter/01/winter06.html
+http://www.vatican.va/archive/catechism/p3s1c1a3.htm
+http://www.vatican.va/archive/catechism/p3s2c2a6.htm
+http://www.vatican.va/archive/ccc_css/archive/catechism/p3s1c1a3.htm
+http://www.vatican.va/archive/ccc_css/archive/catechism/p3s2c2a5.htm
+http://www.vatican.va/archive/ccc_css/archive/catechism/p3s2c2a6.htm
+http://www.vatican.va/holy_father/john_paul_ii/audiences/alpha/data/aud19850605en.html
+http://www.vatican.va/news_services/liturgy/saints/ns_lit_doc_20030427_alberione_en.html
+http://www.vatican.va/roman_curia/congregations/ccdds/documents/rc_con_ccdds_doc_20020513_vers-direttorio_en.html
+http://www.vault.com/career/Vault_Career_Guide_to_Marketing___Brand_Management.html
+http://www.vault.com/messages/Capgemini/Capgemini1340747.html
+http://www.vault.com/nr/newsmain.jsp?nr_page=3&ch_id=401&article_id=1253263&cat_id=1521
+http://www.vault.com/nr/newsmain.jsp?nr_page=3&ch_id=409&article_id=18609&cat_id=1424
+http://www.vault.com/static/newsletters/html/2_11289.html
+http://www.vavatch.co.uk/books/banks/cultnote.htm
+http://www.vba.org/jun99.htm
+http://www.vba.va.gov/ro/west/albuq/docs/Geninfo.htm
+http://www.vbaccelerator.com/codelib/comctl/imglist.htm
+http://www.vbaccelerator.com/codelib/odcbolst/article.htm
+http://www.vbaccelerator.com/codelib/sgrid/sgrid.htm
+http://www.vbforums.com/showthread.php?t=322983
+http://www.vbschools.com/policies/5-36_1r.html
+http://www.vbthunder.com/
+http://www.vbulletin.com/forum/archive/index.php/t-71982.html
+http://www.vc.ehu.es/campus/centros/farmacia/deptos-f/depqf/DYNAMICS.html
+http://www.vca.unimelb.edu.au/admin/info/booking/faqs.html
+http://www.vca.unimelb.edu.au/production/staff.html
+http://www.vcc.ca/aboutus/contact.cfm
+http://www.vcccd.net/newsandevents.nsf/0/1E8528DC528CAF5088256FF9000817F6?OpenDocument&local
+http://www.vcds.forces.gc.ca/dgsp/pubs/rep-pub/dda/cosstrat/isrm/doce_e.asp
+http://www.vceart.com/explore/ideas/page.2.html
+http://www.vcinstitute.org/materials/deathtraps.html
+http://www.vcn.bc.ca/citizens-handbook/give_volunteer.html
+http://www.vcrlter.virginia.edu/data/submission.html
+http://www.vcu.edu/engweb/transcendentalism/authors/emerson/essays/politics.html
+http://www.vcu.edu/engweb/transcendentalism/ideas/club.html
+http://www.vdare.com/francis/bush_amnesty.htm
+http://www.vdare.com/francis/culture_of_poverty.htm
+http://www.vdare.com/guzzardi/propaganda.htm
+http://www.vdare.com/misc/rushton_iq.htm
+http://www.vdare.com/pb/invisible_economy.htm
+http://www.vdare.com/sailer/041121_ca.htm
+http://www.vdem.state.va.us/jobs/
+http://www.vdem.state.va.us/jobs/index.cfm
+http://www.veaweteach.org/resources_training_detail.asp?ContentID=498
+http://www.veazeys.com/archives/000018.html
+http://www.vec.virginia.gov/vecportal/field/field_offices.cfm
+http://www.vecteurotrain.org/program_evry2004.asp
+http://www.veer.com/help/license.aspx?eula=CYP
+http://www.veeru.reading.ac.uk/organic/proc/vanP.htm
+http://www.vefuk.com/
+http://www.vegan.org.nz/nuts.php
+http://www.vegetablegardening.us/home-vegetable-gardening-12-best-varieties-of-the-garden-vegetables.html
+http://www.vegetarian-nutrition.info/vn/essential_fatty_acids.htm
+http://www.vegetariannutrition.net/vn_articles/essential_fatty_acids.htm
+http://www.vegetariantimes.com/document_display.cfm?document_id=44
+http://www.vegetariantimes.com/print_doc.cfm?doc_id=44
+http://www.veggies.org.uk/news/bullet01.htm
+http://www.vegparadise.com/highestperch45.html
+http://www.vegsoc.org.au/forum_messages.asp?Thread_ID=1116&Topic_ID=8
+http://www.vegsoc.org/info/goingveg.html
+http://www.vegsoc.org/theguild/fandd-england-nw.html
+http://www.vehicle-wiring-products.co.uk/VWPweb2000/homepage/home.html
+http://www.velocityglobal.com/faq.html
+http://www.velociworld.com/
+http://www.velogirls.com/links.html
+http://www.velonews.com/news/fea/7887.0.html
+http://www.velonews.com/news/fea/7989.0.html
+http://www.velonews.com/train/articles/7347.0.html
+http://www.velonews.com/train/articles/7545.0.html
+http://www.veluxblindsdirect.co.uk/blinds-shades/window-treatment-ideas.htm
+http://www.velvetlist.com/profiles.php3
+http://www.venable.com/publication.cfm?publication_type_ID=2&publication_ID=463
+http://www.venable.com/publication.cfm?publication_type_ID=2&publication_ID=872
+http://www.venables.co.uk/n0307portal.htm
+http://www.vendeeglobe.org/uk/magazine/1481.html
+http://www.vendeeglobe.org/uk/magazine/1975.html
+http://www.vendian.org/envelope/dir0/young.html
+http://www.venerableproperties.com/mpv-oregonian-june04.htm
+http://www.venezuelanalysis.com/articles.php?artno=1221
+http://www.venezuelanalysis.com/articles.php?artno=1403
+http://www.venezuelanalysis.com/news.php?newsno=1439
+http://www.venice.coe.int/docs/2002/CDL(2002)111-e.asp
+http://www.venice.coe.int/docs/2002/CDL-AD(2002)009-e.asp
+http://www.venice.coe.int/docs/2002/CDL-AD(2002)030-e.asp
+http://www.venice.coe.int/docs/2003/CDL(2003)029-e.asp
+http://www.venice.coe.int/docs/2003/CDL-AD(2003)009-e.asp
+http://www.venomousreptiles.org/articles/117
+http://www.ventasreit.com/news/2004/pr20041203.asp
+http://www.venturea.com/leadingtc.htm
+http://www.ventureblog.com/
+http://www.ventureblog.com/articles/indiv/2004/000556.html
+http://www.venturedirect.com/html/lsg_testimonials.htm
+http://www.ventureeconomics.com/evcj/protected/sectorreps/industry/1031550673741.html
+http://www.ventureservepublishing.com/perhaps.htm
+http://www.venue.co.uk/festo/festo_ashton.html
+http://www.venue.co.uk/romance/men_women.html
+http://www.venue.co.uk/romance/women_men.html
+http://www.venusproject.com/books_authors/chalmers_johnson.html
+http://www.venuszine.com/stories/arts_featured_artist/1155
+http://www.verari.com/salesTerms.asp
+http://www.veratexinc.com/The-Veratex-Story.htm
+http://www.verifiedsoftware.com/goodturns/
+http://www.verifiedvoting.org/drefaq.asp
+http://www.verisign.co.uk/products-services/security-services/managed-security-services/vulnerability-protection/
+http://www.verisign.com/products-services/security-services/managed-security-services/vulnerability-protection/
+http://www.verisign.com/verisign-inc/news-and-events/news-archive/us-news-2001/page_200312171648589.html
+http://www.verisign.com/verisign-inc/news-and-events/news-archive/us-news-2003/page_200312181053403.html
+http://www.vermeer.com/vcom/TrenchlessEquipment/Index.jsp
+http://www.vermeerscamera.co.uk/review1.htm
+http://www.vermeersriddlerevealed.com/the_little_street.shtml
+http://www.vermicon.com/public.php
+http://www.verminary.com/rebellion/species.html
+http://www.verminary.com/rebellion/species_print.html
+http://www.vermontgreens.org/spoil.html
+http://www.vermontguardian.com/global/global.shtml
+http://www.vermontsoap.com/manual.shtml
+http://www.vermontstylemagazine.com/magazine/special/December/2004/9/Vermont+Kitchen+Supply/
+http://www.vermontstylemagazine.com/magazine/special/October/2004/8/Vermont+Kitchen+Supply/
+http://www.verostko.com/archive/writings/epigen-art-revisited.html
+http://www.versabet.com/links.html
+http://www.versiontracker.com/dyn/moreinfo/macosx/16382&page=3
+http://www.versiontracker.com/dyn/moreinfo/macosx/22072&mode=feedback
+http://www.versiontracker.com/dyn/moreinfo/macosx/22072&mode=feedback&vid=All
+http://www.versiontracker.com/dyn/moreinfo/macosx/24928&mode=feedback&vid=All
+http://www.verticalresponse.com/about/bios.html
+http://www.vertigoalley.com/praise/
+http://www.verveonline.com/27/life/ny/ny.shtml
+http://www.vestavia.k12.al.us/lp/old/curriculum%20maps/K%20Social%20Studies.htm
+http://www.vesteglass.com/
+http://www.vet.cam.ac.uk/hospital/staffcvs.html
+http://www.vet.ksu.edu/index/hotdogs.htm
+http://www.veteransforpeace.org/WardReillyStory.htm
+http://www.vetinfo.com/cmove.html
+http://www.vetinfo.com/dblood.html
+http://www.vetinfo.com/dinfdis.html
+http://www.vetinfo4dogs.com/dbehave.html
+http://www.vetinfo4dogs.com/dfemale.html
+http://www.vetinfo4dogs.com/dinfdis.html
+http://www.vetinfo4dogs.com/dogrepro.html
+http://www.vetmed.iastate.edu/animals/petloss/memorials.html
+http://www.vetmed.ucdavis.edu/Animals_in_Society/aboutthecenter.htm
+http://www.vetmed.ufl.edu/clubs/scasv/page4.html
+http://www.vetscite.org/publish/articles/000039/article.html
+http://www.vexen.co.uk/books/james_varieties.html
+http://www.vexen.co.uk/human/culture.html
+http://www.vexen.co.uk/religion/rr.html
+http://www.vgg.com/proveuswrong/wrong26.html
+http://www.vgib.com/faq.html
+http://www.vgt2004.org/a-detnews/candidate-detail.go?id=1330235
+http://www.vgt2004.org/a-heraldtribune-public/candidate-detail.go?id=1283966
+http://www.vgt2004.org/a-rgj2004/candidate-detail.go?id=1212627
+http://www.vh.org/adult/patient/anesthesia/chronicpain/
+http://www.vh.org/adult/patient/cancercenter/wordlisttests/
+http://www.vh.org/adult/patient/dermatology/faq/skinandarthritis.html
+http://www.vh.org/adult/patient/dietary/prose/cholesterol.html
+http://www.vh.org/adult/patient/internalmedicine/aba30/2000/scopes.html
+http://www.vh.org/adult/patient/internalmedicine/irritablebowelsyndrome/chap2.html
+http://www.vh.org/adult/patient/neurology/stroke/
+http://www.vh.org/adult/patient/ophthalmology/faq/eyedonor.html
+http://www.vh.org/adult/patient/otolaryngology/prose/hearing.html
+http://www.vh.org/adult/patient/psychiatry/faq/fearofflying.html
+http://www.vh.org/adult/patient/surgery/faq/hairtransplant.html
+http://www.vh.org/adult/provider/internalmedicine/BedsideLogic/ch1.html
+http://www.vh.org/pediatric/patient/pediatrics/cqqa/chronicabpain.html
+http://www.vh.org/pediatric/patient/pediatrics/cqqa/infantsafetytips.html
+http://www.vh.org/pediatric/patient/pediatrics/cqqa/interactingwithnewborn.html
+http://www.vh.org/pediatric/patient/pediatrics/cqqa/psychosis.html
+http://www.vh.org/pediatric/patient/pediatrics/cqqa/stitches.html
+http://www.vh.org/welcome/newsletter/2001/
+http://www.vh1.com/artists/az/ashcroft_richard/artist.jhtml
+http://www.vh1.com/artists/az/jackson_michael/bio.jhtml
+http://www.vh1.com/artists/az/wilson_jackie/bio.jhtml
+http://www.vh1.com/artists/news/1495046/12172004/cam_ron.jhtml
+http://www.vheadline.com/readnews.asp?id=6250
+http://www.vhi.ie/hfiles/hf-025.jsp
+http://www.vhi.ie/hfiles/hf-144.jsp
+http://www.viaarena.com/?PageID=271
+http://www.viacorp.com/pointers.html
+http://www.vianetworks.co.uk/news/2004-01-20.asp
+http://www.vianetworks.net/t_and_c.aspx
+http://www.viarail.ca/corporate/en_bkgdr_20001215_newtrains_doc1.html
+http://www.viarail.ca/corporate/en_entr_viar_allo_19990618.html
+http://www.viaventure.com/Itinerary_Discover_Guatemala.htm
+http://www.vibertfamily.com/captn-a-bibber.htm
+http://www.vic-info.org/InternationalOrganizations/IO-OIC.htm
+http://www.vic-link.co.nz/Occasional%20Papers/abstracts_index.htm
+http://www.vicepresidents.com/new_page_4.htm
+http://www.vickirene.net/sigssg047.htm
+http://www.vicks.com/sleep_better/7_sleeping_habits.shtml
+http://www.vicster.net/blog/archive/2004_09_01_archive.html
+http://www.victims.org.uk/
+http://www.victor-victrola.com/RARITY.htm
+http://www.victorhanson.com/articles/Private%20Papers/Question%20Log/April2005.html
+http://www.victorhanson.com/articles/hanson031105.html
+http://www.victorhanson.com/articles/hanson042305.html
+http://www.victorhanson.com/articles/hanson071604.htm
+http://www.victoria-adventure.org/more_than_links/walter_blue_beauty.html
+http://www.victoria-adventure.org/water_gardening/green_water_blues/page1.html
+http://www.victoria-climbie-inquiry.org.uk/finreport/2brent_analysis.htm
+http://www.victoria-climbie-inquiry.org.uk/finreport/2enfield_analysis.htm
+http://www.victoriachamber.ca/advocacy_tc.php?pid=97
+http://www.victorianmarketplace.com/lights.html
+http://www.victorianstation.com/timelinefull.htm
+http://www.victorianvid.com/app.html
+http://www.victorianweb.org/art/crisis/crisis2g.html
+http://www.victorianweb.org/authors/dickens/ge/loyalty.html
+http://www.victorianweb.org/authors/dickens/pva/pva250.html
+http://www.victorianweb.org/authors/mb/rouge.html
+http://www.victorianweb.org/history/crimea/chargelb.html
+http://www.victorianweb.org/history/letters/harker.html
+http://www.victorianweb.org/history/poorlaw/eligible.html
+http://www.victorianweb.org/painting/whh/whhpoetry.html
+http://www.victorious.org/unprayer.htm
+http://www.victorshepherd.on.ca/Wesley/The%20Duty%20of%20Constant%20Communion.htm
+http://www.victorymotorsports.com/sales_policy.htm
+http://www.victorzammit.com/articles/terrorism.html
+http://www.victorzammit.com/book/chapter07.html
+http://www.video-conference-center.co.uk/
+http://www.video-direct.com/panasonic/lcdtv/compare.html
+http://www.videogamecritic.net/2600hl.htm
+http://www.videoguys.com/sima.htm
+http://www.videohelp.com/forum/archive/t252082.html
+http://www.videovista.net/articles/jupitermoon.html
+http://www.vienna.cc/networld/money_budget/independent_parental_consent.htm
+http://www.vienna.cc/networld/report_staying_independent.htm
+http://www.vietnam-war.info/battles/tet_offensive.php
+http://www.vietnam.ttu.edu/vietnamcenter/events/1996_Symposium/96papers/powmia.htm
+http://www.vietnamairlines.co.kr/english/tourinfo/tour06.asp
+http://www.vietscape.com/guestbook/guestbook_save/guestbook_091997.html
+http://www.vieux.montreal.qc.ca/inventaire/fiches/eng/stpaul_o_105.htm
+http://www.viewaskew.com/press/nyo.html
+http://www.viewlondon.co.uk/user_pubbar_review.asp?Venueid=4818
+http://www.viewnews.com/2002/VIEW-Feb-06-Wed-2002/East/17972690.html
+http://www.viewpoint.soton.ac.uk/Arts/sjs/
+http://www.viewswire.com/index.asp?layout=display_article&doc_id=198324619
+http://www.viewtier.com/products/parabuild.htm
+http://www.viewzone.com/oklahoma.southend.html
+http://www.vifm.org/identification_gov.html
+http://www.vifm.org/identification_gov.phtml
+http://www.vifprogram.com/learn/us/faq.html
+http://www.vignette.com/vignettevillage/us/speakers/1,10906,7,00.html
+http://www.vigyanprasar.com/comcom/develop64.htm
+http://www.viha.ca/jobs/maint_wkr4_10945na.htm
+http://www.viking-z.org/
+http://www.vikingrange.com/about/terms_of_use.html
+http://www.village.bayside.wi.us/Agendas%20&%20Minutes/Committee%20of%20the%20Whole/2001COW/1220COW_1.htm
+http://www.villagecoffee.com/fair-trade-pr.html
+http://www.villagecycle.com/bikes.asp
+http://www.villageforchildren.org/programs/placement.html
+http://www.villagehampden.co.uk/
+http://www.villagehatshop.com/vhs_designed_caps_visors.html
+http://www.villagenews.com/
+http://www.villagesewing.com/classes/creat%20class.htm
+http://www.villagesweetshop.com/cgi-bin/trolleyed_public.cgi?action=show_terms
+http://www.villagevignettes.com/faq.jsp
+http://www.villagevoice.com/blogs/bushbeat/archive/000743.php
+http://www.villagevoice.com/film/0414,maddin,52414,20.html
+http://www.villagevoice.com/film/0502,hope,59946,20.html
+http://www.villagevoice.com/issues/0414/maddin.php
+http://www.villainouscompany.com/vcblog/
+http://www.villamontalvo.org/eventsview.asp?EventCat=4&p=1
+http://www.ville-de-santenay.fr/anglais/ville/lesrues.htm
+http://www.villr.com/master.htm
+http://www.vindicatingthefounders.com/library/index.asp?document=78
+http://www.vineyardnw.org/planting/planting_a.html
+http://www.vinland.org/heathen/mt/wildhunt.html
+http://www.vinnies.org.au/youth/index.cfm?state=wa&section=progs
+http://www.vinnytsofboston.com/a_newsdetail.asp?ID=209&RetVal=a_news
+http://www.vintage-technology.info/Pages/Companies/Histfranco.htm
+http://www.vintagepens.com/FAQhistory/fine_firm.shtml
+http://www.vintagetub.com/asp/contact_us.asp
+http://www.vinyl-replacement-windows.com/vinyl-replacement-windows-quote-canada.html
+http://www.vinylbydesign.com/site/view.asp?TRACKID=&DID=241&CID=213
+http://www.vinylinfo.org/environment/success_stories.html
+http://www.vinylvulture.co.uk/pages/mullerb.htm
+http://www.viokef.com/docs/cafe.htm
+http://www.violetnet.org/mary/legalaid.htm
+http://www.violoncello.com/contact/commission.htm
+http://www.vioxxcentral.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=11
+http://www.vipassana.com/meditation/khema/allofus/dukkha_for_knowledge.php
+http://www.vipgrafx.com/hippy/archives/may_98.txt
+http://www.viralmoneymachine.com/
+http://www.virginblue.com.au/helpInfo/sponsorship/index.php
+http://www.virginblue.com.au/helpInfo/sponsorship/index.php?section=Online%20Application%20Form
+http://www.virginia.edu/insideuva/2000/03/handy.html
+http://www.virginia.edu/insideuva/2005/09/athlete.html
+http://www.virginia.edu/insideuva/athlete.html
+http://www.virginia.edu/president/spch/01/spch_alumnletterfall01.html
+http://www.virginia.edu/president/spch/98/spch_educ&commongood.html
+http://www.virginia.edu/provost/docs_policies/appointments.html
+http://www.virginia.edu/provost/docs_policies/genfac.html
+http://www.virginia.edu/riskmanagement/faq.html
+http://www.virginia.edu/uvadiversity/gratzletter.html
+http://www.virginiaapples.org/pick-your-own/amherst.html
+http://www.virginiaapples.org/pick-your-own/frederick.html
+http://www.virginiaapples.org/pick-your-own/nelson.html
+http://www.virginiahey.com/archives/my_life_in_taxis/index.php
+http://www.virginiaplaces.org/nativeamerican/paleoindians.html
+http://www.virginmegastores.co.uk/pws/Privacy.vms
+http://www.viridianrepository.com/aroma/
+http://www.virtual-boy.org/textonlyarticles.htm
+http://www.virtual-strategy.com/article/articleview/710/1/2/
+http://www.virtual-u.org/conferenceatmit.asp
+http://www.virtual-u.org/training/trainingwith.asp
+http://www.virtualbangladesh.com/history/overview.html
+http://www.virtualexplorer.com.au/2002/8/stampfli/paper1.html
+http://www.virtualistes.org/rtmarken.htm
+http://www.virtualjerusalem.com/food/recipes/
+http://www.virtualmuseum.ca/Exhibitions/Instruments/Anglais/cera_c_txt04_en.html
+http://www.virtualmuseum.ca/pm.php?id=story_line&lg=English&fl=&ex=00000168&sl=2783&pos=1
+http://www.virtualpet.com/vp/farm/pmonster/seizures/pmnews1.htm
+http://www.virtualrecordings.com/DMCAruling.htm
+http://www.virtualsalt.com/crebook1.htm
+http://www.virtualsalt.com/crebook5.htm
+http://www.virtualsalt.com/pp/ppch6.htm
+http://www.virtualsalt.com/think/introct.htm
+http://www.virtualsalt.com/wcsad.htm
+http://www.virtualseeds.com/bonsai-main.html
+http://www.virtualtea.com/vt/tales.html
+http://www.virtualtourist.com/m/361b/1cbfbb/4/
+http://www.virtualtourist.com/m/4b7c5/4f8/
+http://www.virtualtourist.com/m/tt/22b3e/
+http://www.virtualtourist.com/travel/Africa/South_Africa/Province_of_the_Western_Cape/Cape_Town-2225504/Packing_Lists-Cape_Town-BR-1.html
+http://www.virtualtourist.com/travel/Asia/China/Beijing_Shi/Beijing-1024960/Things_To_Do-Beijing-Great_Wall-BR-4.html
+http://www.virtualtourist.com/travel/Australia_and_Oceania/American_Samoa/Nightlife-American_Samoa-BR-1.html
+http://www.virtualtourist.com/travel/Europe/United_Kingdom/Scotland/General_Tips-Scotland-BR-1.html
+http://www.virtualtourist.com/travel/North_America/United_States_of_America/TravelGuide-United_States_of_America.html
+http://www.virtualtourist.com/travel/South_America/TravelGuide-South_America.html
+http://www.virtualtourist.com/vt/430de/7/7c3f/
+http://www.virtualtourist.com/vt/4c4af/6/eebe/
+http://www.virtualtourist.com/vt/4f8/a/
+http://www.virtualtourist.com/vt/b8708/5/a5a/
+http://www.virtualtourist.com/vt/c1f6c/4/1b7a/
+http://www.virtualtourist.com/vt/cd624/2/7e0e/
+http://www.virtualtourist.com/vt/cd624/2/fa22/
+http://www.visalaw.com/greencard.html
+http://www.visalaw.com/news/sfc5262003.htm
+http://www.visar.org/newsletters/archive/04dec.html
+http://www.vishalmangalwadi.com/NewAge/Ch06Ecology.htm
+http://www.vishvarupa.com/Fair-Is-Fair/Ex-Baba.com/Findings/bailey-references.html
+http://www.visi.com/juan/congress/cgi-bin/newmemberbio.cgi?member=SCJR&site=ctces
+http://www.visi.com/~susskins/dispatch/archives/2004_06.html
+http://www.visible-form.com/blog/000071.html
+http://www.visioform.com/uk/ebook-joy.htm
+http://www.vision2form.nl/accenten-uk.html
+http://www.visionarylead.org/spolitic.htm
+http://www.visioncareproducts.com/23/eye_hou.html
+http://www.visioncircle.org/archive/000350.html
+http://www.visionconnection.org/Content/ForProfessionals/PatientManagement/FunctionalVisualImpairment/LightingandtheAgingEye.htm
+http://www.visionmagazine.com/june03_earth_watch.htm
+http://www.visionofbritain.org.uk/Travellers/chap_page.jsp?t_id=Borrow&c_ID=22&cpub_ID=0
+http://www.visionofbritain.org.uk/Travellers/chap_page.jsp?t_id=Borrow&c_ID=6&cpub_ID=0
+http://www.visionpaper.com/speeches_papers/hppsjapan.html
+http://www.visionscience.com/mail/cvnet/1996/0190.html
+http://www.visionwebsites.co.uk/Contents/Text/Index.asp?SiteId=126&SiteExtra=2875842&TopNavId=299&NavSideId=2942
+http://www.visionwire.org/news31.htm
+http://www.visionworksusa.com/studies.asp
+http://www.visionww.org/drswindsor-stroke.htm
+http://www.visit-maine.com/current_category.438/companies_list.html
+http://www.visit.ie/Dublin/heritage/html/old_city/dts_to_ds.html
+http://www.visitasilomar.com/discover/historyarchitecture/warceckeatasilomar.html
+http://www.visitasilomar.com/discover/nature/air/landbirds.html
+http://www.visitationmonastery.org/stlouis/talk_mother's_love.htm
+http://www.visitbardstown.com/tourism/dining/dining.html
+http://www.visitbelgium.com/bxlwkend.htm
+http://www.visitbristol.co.uk/breaks/20020305_90717.shtml
+http://www.visitcambridge.org/traveltrade/eatinganddrinking.php?submit=t&keyword=&cat_id=16&loc_id=&start=101
+http://www.visitcambridge.org/traveltrade/eatinganddrinking.php?submit=t&keyword=&cat_id=16&loc_id=&start=41
+http://www.visitcambridge.org/traveltrade/eatinganddrinking.php?submit=true&cat_id=16
+http://www.visitdublin.com/directory/detail.asp?ID=83
+http://www.visitdunkeld.com/scottish-quotations.htm
+http://www.visitingarts.org.uk/features/v43qg.html
+http://www.visitlagrande.com/attractions.htm
+http://www.visitlex.com/quick/civilwar.html
+http://www.visitmaldives.com.mv/mu/latest/
+http://www.visitmaldives.com.mv/mu/latest/index.php
+http://www.visitmonmouth.com/publicinformation/duke_of_monmouth.htm
+http://www.visitmt.org/tripplanner/transportation/home.htm
+http://www.visitrannoch.com/highland-games.htm
+http://www.visitsantafe.com/
+http://www.visitscottishborders.com/whattoseeanddo/activities/walking/default.htm
+http://www.visitstcroix.com/
+http://www.visitstcroix.com/living-moving-here.html
+http://www.visitwinchester.co.uk/ForGroupsSubMenu_accommodationlist.shtml
+http://www.visn1.med.va.gov/freedom/faq.asp
+http://www.visn1.med.va.gov/news/wellness/winter01/
+http://www.visn1.med.va.gov/wrj/wrjweb1.html
+http://www.vispo.com/PRIME/ispalsitu.htm
+http://www.vistavideo.com/lite/extras.php
+http://www.visualexpert.com/Resources/pedestrian.html
+http://www.visualexpert.com/Resources/roadaccidents.html
+http://www.visualfea.com/preprocessing.htm
+http://www.visualprosthesis.com/javoice.htm
+http://www.visualwriter.com/HumanCond/meaning.htm
+http://www.visx.com/corporate/products_services/wavescan.php
+http://www.vitabasix.com/en/melachron_info.html
+http://www.vitamincfoundation.org/anthrax.htm
+http://www.vitaminexpress.com/news/energy.htm
+http://www.vitamins-nutrition.org/vitamins/manganese.html
+http://www.vitasvibe.com/esacalendar.html
+http://www.vittoe.com/0209a/right0209a.html
+http://www.viva.org.uk/books/ark/ch1.html
+http://www.viva.org.uk/books/ark/ch13.html
+http://www.viva.org.uk/books/goingveggie/ch06.html
+http://www.viva.org.uk/guides/murdershewrote.htm
+http://www.vivacricket.co.za/html/news1511.shtml
+http://www.vivelecanada.ca/article.php/20041112145038281
+http://www.vivelecanada.ca/article.php/20050527072637962
+http://www.viviancarlsonlaw.com/Divorce_Law.htm
+http://www.vividpieces.net/2002/07/index.shtml
+http://www.viviun.com/AD-12122/
+http://www.viviun.com/Real_Estate/Andorra/Single_Family_Homes/
+http://www.viviun.com/Real_Estate/Australia/Single_Family_Homes/
+http://www.vjolt.net/vol5/issue3/v5i3a11-Ravicher.html
+http://www.vjvauction.com/vjvold/pages/history.htm
+http://www.vkimball.com/weblog/2005/01/29.html
+http://www.vladars.net/en/min/meoi.html
+http://www.vlansing.org/040427pb.html
+http://www.vlsistandards.com/recertification/default.asp
+http://www.vm.ee/estonia/kat_174/pea_174/5236.html
+http://www.vmacgill.net/2ndbook.htm
+http://www.vmdb.org/june98.html
+http://www.vmpcares.com/employment.iml
+http://www.vmth.ucdavis.edu/home/beh/UCD_Behavior_research.html
+http://www.vmth.ucdavis.edu/vmth/clientinfo/info/clinlab/ni.html
+http://www.vmth.ucdavis.edu/vmth/clientinfo/info/opthal/orbitdis.html
+http://www.vnaa.org/vnaa/g/?h=html/wound_center_June
+http://www.vnh.org/NHB/NHBHome.html
+http://www.vnunet.com/features/1152861
+http://www.vnunet.com/features/1155902
+http://www.vnunet.com/features/1158213
+http://www.vnunet.com/features/1158809
+http://www.vnunet.com/news/1153739
+http://www.vnunet.com/news/1160555
+http://www.voa.gov.uk/business_rates/RLI/Glossary/glossary.htm
+http://www.voa.gov.uk/news/press04/man_board_meeting_23_09_04.htm
+http://www.voanews.com/english/2005-05-17-voa62.cfm
+http://www.voanews.com/english/NewsAnalysis/2004-12-03-voa69.cfm
+http://www.voanews.com/english/NewsAnalysis/2004-12-20-voa28.cfm
+http://www.voanews.com/specialenglish/2005-04-10-voa1.cfm
+http://www.voanews.com/specialenglish/2005-04-10-voa1.cfm?textmode=1
+http://www.voanews.com/specialenglish/Archive/a-2003-09-06-1-1.cfm
+http://www.vocalist.org.uk/band_agreements.html
+http://www.vocalist.org.uk/copyright_royalties.html
+http://www.vocalist.org/group/vocalist-temporary/message/3104.html
+http://www.vocalist.org/group/vocalist-temporary/message/3290.html
+http://www.voccoquan.com/birdie/balls.htm
+http://www.vodafone.ie/terms/onlinestore/index.jsp
+http://www.voelker.com/service/void_powerbookg4/powerbookg4.php
+http://www.vohuman.org/Article/Zarathushtra%20and%20the%20horse.htm
+http://www.voiceacting.com/demoprod/
+http://www.voiceacting.com/training/2-day/
+http://www.voiceforanimals.net/docs/ww_Minutes_101202.htm
+http://www.voiceofdance.com/Insights/insights.trans.col.cfm?LinkID=31500000000000149
+http://www.voiceofjesus.org/cb2chapter7.htm
+http://www.voices.netuxo.co.uk/corporate.html
+http://www.voicesofcivilrights.org/civil4_new3.html
+http://www.voicesofunreason.com/fiction/whatarefriendsfor
+http://www.voicesofunreason.com/fullThread$8784
+http://www.voicesofunreason.com/fullthread$8784
+http://www.voicesofunreason.com/poetry/sittinginthesuanawithsid
+http://www.voiceteachers.com/nj.html
+http://www.voicetraining.co.uk/about.htm
+http://www.voicexmlreview.org/Mar2001/features/recognition.html
+http://www.voiceyourself.com/article.php?section=3&more=1&id=778
+http://www.voidspace.org.uk/cyberpunk/burning_chrome.shtml
+http://www.voidspace.org.uk/cyberpunk/virtual_light.shtml
+http://www.volcanodiscovery.com/volcano-tours/tours/indonesia/java/krakatoa_yogya.html
+http://www.volconvo.com/forums/archive/index.php/t-900.html
+http://www.volpe.dot.gov/outreach/kslp.html
+http://www.volresource.org.uk/info/source.htm
+http://www.volunteer.org.nz/ltm/
+http://www.volunteers.com/programs/program.php?ProgramID=27
+http://www.volunteersolutions.org/vcri/org/223309.html
+http://www.volvoclub.org.uk/press/releases/hybrid_engines.htm
+http://www.volz.org/PublicWorksDept/general.asp
+http://www.vonage.com/corporate/press_news.php?PR=2003_12_12_4
+http://www.vonmag.com/columnists/isenberg.htm
+http://www.vonnegutweb.com/archives/arc_nice.html
+http://www.vortimac.com/
+http://www.vosperthornycroft.co.uk/newsandevents/newspage.asp
+http://www.votd.com/BURN.htm
+http://www.vote-smart.org/issue_rating_category.php?can_id=CNIP5917&type=category&category=Health%20Issues
+http://www.vote-smart.org/resource_govt101_08.php
+http://www.vote-smart.org/speech_detail.php?speech_id=31793
+http://www.votefraud.org/
+http://www.voterguide.ss.ca.gov/propositions/prop1a-analysis.htm
+http://www.voterinteractive.com/leach_site/voter/laura.html
+http://www.voterpunch.org/category.jsp?chamber=House&issue=H2&year=2004&num=158
+http://www.voterpunch.org/category.jsp?chamber=House&issue=S5&year=2004&num=158
+http://www.voteyeson27.com/quotes.htm
+http://www.votf.org/Survivor_Support/sipe.html
+http://www.voting.ukscientists.com/robank.html
+http://www.vov.org.vn/2005_06_12/english/kinhte1.htm
+http://www.voy.com/14657/
+http://www.voy.com/3703/1/764.html
+http://www.voyage.gc.ca/main/pubs/her_own_way-en.asp
+http://www.vpaa.villanova.edu/CATS/CATSGUIDE.html
+http://www.vpirg.org/energyplan.htm
+http://www.vpl.ca/branches/LibrarySquare/art/prosMusic.html
+http://www.vragent.com/rentals/US/Alabama/Gulf%20Shores/city/Sea%20Breeze
+http://www.vragent.com/rentals/US/Alabama/Gulf%20Shores/city/Sea%20Chase
+http://www.vragent.com/rentals/US/Alabama/Gulf%20Shores/city/Sea%20N%20Sun
+http://www.vragent.com/rentals/US/Alabama/Gulf%20Shores/city/Sea%20Oats
+http://www.vragent.com/rentals/US/Florida/location/Perdido%20Key/Sea%20Spray
+http://www.vragent.com/rentals/US/North%20Carolina/Outer%20Banks/Nags%20Head/Sea%20Pointe
+http://www.vragent.com/rentals/US/Texas/Galveston/city/Sea%20Isle
+http://www.vrbo.com/26479
+http://www.vrd2004.org/speakers/sp_post_conf.cfm
+http://www.vri.dhamma.org/newsletters/nl0302.html
+http://www.vrlab.uci.edu/dzmura/4D/default.htm
+http://www.vrlteam.org/home.asp?vrl=news&adv=281
+http://www.vrm-group.co.uk/terms&cond.htm
+http://www.vroma.org/~bmcmanus/roman_names.html
+http://www.vrp.com/art/1563.asp
+http://www.vrsource.org/
+http://www.vryork.com/pages/yorklinks.html
+http://www.vsarts.org/x1021.xml
+http://www.vsba.org/EducationUpdates/edupdate051203.htm
+http://www.vsi-isbc.ca/eng/relationship/phillips_text/doc17.cfm
+http://www.vsn-intl.com/genstat/gsprod_details.htm
+http://www.vsp.state.va.us/safety.htm
+http://www.vsr.cape.com/~powens/riverhistory.htm
+http://www.vta.org/jobs/VTA_Job_Application_ADA.txt
+http://www.vtb.uscourts.gov/opinions/ByCite.html
+http://www.vtb.uscourts.gov/opinions/published/116br398.html
+http://www.vtb.uscourts.gov/opinions/published/182br699.html
+http://www.vtcoop.com/library/map_rea_1942.html
+http://www.vtdemocrats.org/index.php?id=316
+http://www.vtdinc.com/portfolio.htm
+http://www.vterrain.org/Hawaii/bens_house/
+http://www.vthrc.uq.edu.au:16080/ecovis/DeepSea.html
+http://www.vtknowledgeworks.com/businessbldr/whatyouget/default.asp
+http://www.vtknowledgeworks.com/invent_research/whatyouget/default.asp
+http://www.vtmagazine.vt.edu/fall04/feature2.html
+http://www.vts.rdn.ac.uk/case_studies/cs_courses.html
+http://www.vts.rdn.ac.uk/tutorial/engstud?op=preview&manifestid=130&itemid=13199
+http://www.vts.rdn.ac.uk/tutorial/health?op=preview&manifestid=50&itemid=3694
+http://www.vts.rdn.ac.uk/tutorial/ict?op=preview&manifestid=48&itemid=3235
+http://www.vts.rdn.ac.uk/tutorial/media?op=preview&manifestid=44&itemid=2307
+http://www.vts.rdn.ac.uk/tutorial/numeracy?op=preview&manifestid=134&itemid=14115
+http://www.vts.rdn.ac.uk/tutorial/sport?op=preview&manifestid=46&itemid=2765
+http://www.vts.rdn.ac.uk/tutorial/travel?op=preview&manifestid=45&itemid=2531
+http://www.vttoth.com/probes/probes.asp
+http://www.vueweekly.com/articles/default.aspx?i=455
+http://www.vuletic.com/hume/atheology/12.html
+http://www.vusst.hr/ENCYCLOPAEDIA/humancapital.htm
+http://www.vuw.ac.nz/css/docs/reports/Preelection.html
+http://www.vuw.ac.nz/lals/programmes/english-prof/english-prof.aspx
+http://www.vuw.ac.nz/library/liaison/linguistics/internetresources.shtml
+http://www.vuw.ac.nz/~caplabtb/dprk/window14.htm
+http://www.vvdailypress.com/2001-2003/106017760673720.html
+http://www.vwdesigns.co.uk/ecommence.htm
+http://www.vwrl.com/NewsDocs/100years.htm
+http://www.vxm.com/Speed.quantum.html
+http://www.vxml.org/menu.htm
+http://www.vyfs.org/home/home_events.htm
+http://www.vysa.com/
+http://www.w-m-t.com/autodialer.asp
+http://www.w2knews.com/archive/w2knews-20010723.html
+http://www.w2knews.com/index.cfm?id=132
+http://www.w3.org/2000/xp/Group/4/05/05-minutes.html
+http://www.w3.org/2001/11/13-RDF-Query-Rules/terms
+http://www.w3.org/2001/tag/doc/whenToUseGet.html
+http://www.w3.org/2002/04/15-tag-summary
+http://www.w3.org/2002/p3p-ws/minutes/compact.html
+http://www.w3.org/2002/ws/chor/5/05/17-minutes.html
+http://www.w3.org/2003/05/27-pubrules
+http://www.w3.org/2003/08/allgroupoverview.html
+http://www.w3.org/2003/09/15-tag-summary.html
+http://www.w3.org/2003/09/xmlap/xml-common-proc.html
+http://www.w3.org/2004/02/Process-20040205/groups.html
+http://www.w3.org/2004/06/dbooth-cc/cc
+http://www.w3.org/Consortium/Offices/NewStaff.html
+http://www.w3.org/Consortium/Patent-Policy-20040205/
+http://www.w3.org/DesignIssues/Axioms.html
+http://www.w3.org/DesignIssues/Semantic.html
+http://www.w3.org/Graphics/SVG/
+http://www.w3.org/Guide/pubrules
+http://www.w3.org/MarkUp/2004/xmlevents-for-html-authors
+http://www.w3.org/MarkUp/Guide/
+http://www.w3.org/MarkUp/Guide/Style
+http://www.w3.org/P3P/details.html
+http://www.w3.org/QA/2002/03/01-f2f-minutes
+http://www.w3.org/Style/CSS/Speech/speech.html
+http://www.w3.org/TR/1999/WD-SVG-19990412/changes.html
+http://www.w3.org/TR/2001/WD-xforms-20010608/slice5.html
+http://www.w3.org/TR/2002/NOTE-patent-practice-20020124
+http://www.w3.org/TR/2002/WD-css3-box-20021024/
+http://www.w3.org/TR/2002/WD-qaframe-intro-20020515/
+http://www.w3.org/TR/2003/REC-xptr-framework-20030325/
+http://www.w3.org/TR/2004/WD-SVG12-20041027/progressiverendering.html
+http://www.w3.org/TR/2004/WD-sysenv-20040728/
+http://www.w3.org/TR/2005/WD-CSS21-20050613/generate.html
+http://www.w3.org/TR/2005/WD-CSS21-20050613/visudet.html
+http://www.w3.org/TR/CSS21/syndata.html
+http://www.w3.org/TR/CSS21/visudet.html
+http://www.w3.org/TR/DPF/
+http://www.w3.org/TR/REC-CSS2/generate.html
+http://www.w3.org/TR/REC-html32
+http://www.w3.org/TR/REC-html40/appendix/notes.html
+http://www.w3.org/TR/WAI-WEBCONTENT/
+http://www.w3.org/TR/WCAG20/
+http://www.w3.org/TR/WD-P3P-grammar.html
+http://www.w3.org/TR/WD-layout.html
+http://www.w3.org/TR/xbc-characterization/
+http://www.w3.org/TR/xml-stylesheet/
+http://www.w3.org/Voice/
+http://www.w3.org/WAI/AU/2002/minutes/minutes19sep2002.html
+http://www.w3.org/WAI/EO/2004/07/presentation.html
+http://www.w3.org/WAI/GL/WCAG20/
+http://www.w3.org/WAI/GL/changes.htm
+http://www.w3c.org/
+http://www.w3c.org/Voice/
+http://www.w3j.com/3/s3.smith.html
+http://www.w3schools.com/vbscript/func_isempty.asp
+http://www.w3schools.com/vbscript/func_isnull.asp
+http://www.w3schools.com/vbscript/func_isnumeric.asp
+http://www.w3schools.com/vbscript/func_split.asp
+http://www.w3schools.com/w3c/w3c_intro.asp
+http://www.w3schools.com/xforms/xforms_xpath.asp
+http://www.wa.gov.au/tiac/drivers/drivers-07.html
+http://www.wa.gov.au/tiac/opportunities/opportunities-05.htm
+http://www.wa.regence.com/needCoverage/individual/faq.html
+http://www.wabaptists.org/voto/voto2004-02-23.htm
+http://www.wabio.com/readlist/educ_readlist.htm
+http://www.wacc.org.uk/modules.php?name=News&file=article&sid=1597
+http://www.wacc.org.uk/modules.php?name=News&file=article&sid=574
+http://www.wacc.org.uk/modules.php?name=News&file=print&sid=1597
+http://www.wacc.org.uk/modules.php?name=News&file=print&sid=574
+http://www.wackyadvice.com/
+http://www.wackywillysweb.com/affiliate_program/free_affiliate_program.php
+http://www.wackywillysweb.com/help_faq/payment_methods.php
+http://www.wackywillysweb.com/signup/01_sign_up.php
+http://www.waco-texas.com/city_depts/waterutilities/lakewaco2.htm
+http://www.waco93.com/stlouispost.htm
+http://www.wadsworth.org/labcert/regaffairs/bloodbanks/
+http://www.wadsworth.org/labcert/regaffairs/clinical/title5.htm
+http://www.wagingpeace.org/articles/1997/05/06_menuhin_letter.htm
+http://www.wagingpeace.org/articles/2003/05/16_wells_iraq-water-oil.htm
+http://www.wagingpeace.org/menu/action/urgent-actions/jfk/speech.htm
+http://www.wagingpeace.org/menu/programs/youth-outreach/getting-started/see-for-yourself.htm
+http://www.wagnerandson.com/oj/bosco2.htm
+http://www.wagntrain.com/BodyLanguage.htm
+http://www.waikato.ac.nz/hrm/internal/health&safety/childrenpolicy.shtml
+http://www.waikato.ac.nz/hrm/internal/policy/leavepol.html
+http://www.waikato.ac.nz/library/learning/g_focus.shtml
+http://www.waikato.ac.nz/library/learning/g_using.shtml
+http://www.waimeagazette.com/May98_KahuaRanch.htm
+http://www.wainwrightbank.com/newsite/Article-AssistedLiving02-03.asp
+http://www.wainwrightbank.com/site/m3B3.asp
+http://www.waitakere.govt.nz/AbtCit/cp/emgncyserv2.asp
+http://www.waitakere.govt.nz/CnlSer/wtr/wtrsupply.asp?printable=true
+http://www.waitrose.com/food_drink/wfi/foodissues/children/0006072.asp
+http://www.waitrose.com/lifestyle/fitness/EatingforEnergy.asp
+http://www.wakeweekly.com/archives/2004/Oct28-4.html
+http://www.wal-mart.com/
+http://www.wales-consumer.org.uk/englishsite/press_pubs/publications/waste_not/summary.htm
+http://www.wales-consumer.org.uk/publications/38/summary.htm
+http://www.wales.gov.uk/organicabinet/content/resolutions/2001/february-e.htm
+http://www.wales.gov.uk/organipo/content/pgfa/proc-c10-e.htm
+http://www.wales.gov.uk/organipo/content/pgfa/proc-c15-e.htm
+http://www.wales.gov.uk/subicsu/content/keypubs/dare-estyn-evaluation-rpt290104-e.htm
+http://www.wales.gov.uk/subihealth/content/emmergency/winter/winter_e.html
+http://www.walesindex.co.uk/pages/126_637.html
+http://www.walesindex.co.uk/pages/244_637.html
+http://www.walesindex.co.uk/pages/249_629.html
+http://www.walesindex.co.uk/pages/263_629.html
+http://www.walesindex.co.uk/pages/372_637.html
+http://www.walesindex.co.uk/pages/374_637.html
+http://www.walesindex.co.uk/pages/525_637.html
+http://www.walesindex.co.uk/pages/538_637.html
+http://www.waleswatch.welshnet.co.uk/regulars/barking2000.htm
+http://www.waleswatch.welshnet.co.uk/regulars/quotes2001.htm
+http://www.walk.com.au/pedestriancouncil/Page.asp?PageID=318
+http://www.walk.com.au/pedestriancouncil/Page.asp?PageID=387
+http://www.walk.com.au/pedestriancouncil/Page.asp?PageID=775
+http://www.walkaboutmag.com/8gates.html
+http://www.walkerbooks.co.uk/Walking-Through-the-Jungle-Paperback-0744548934
+http://www.walkerscay.tv/flips_catches.html
+http://www.walkgps.com/Victoria%20Reservoir-Bickley%20Brook%20Walk.htm
+http://www.walking-horse.com/versatility/GensSirCharles-A.html
+http://www.walking.demon.co.uk/discover.htm
+http://www.walkingbarefoot.com/bkWB.htm
+http://www.walkingbarefoot.com/writings/
+http://www.walkingbarefoot.com/writings/GodsWordYourMouth.htm
+http://www.walkingbritain.co.uk/technical/index.shtml
+http://www.walkingconnection.com/Walking_Technique_Form.html
+http://www.walkingenglishman.com/ldp/dalesway.htm
+http://www.walkinginfo.org/de/curb1.cfm?codename=1imp&CM_maingroup=Implementation
+http://www.walkinginfo.org/pedsafe/casestudy.cfm?CS_NUM=30
+http://www.walkinginplace.org/converge/exchange.htm
+http://www.walkinginplace.org/converge/others.htm
+http://www.walkinginplace.org/iprh/
+http://www.walkingonacloud.com/
+http://www.walkingworld.com/home/index.asp?id=44
+http://www.walkradio.com/wbc/testing123.html
+http://www.walktoschool-usa.org/funding/index.cfm
+http://www.walkupright.com/privacy.htm
+http://www.walkworthypress.net/jackson_aManInspired.html
+http://www.wallacehigh.org/defaultnews.asp?cat=0&dismode=article&foobar=114&artid=87
+http://www.wallbuilders.com/resources/search/detail.php?ResourceID=21
+http://www.wallbuilders.com/resources/search/detail.php?ResourceID=22
+http://www.wallbuilders.com/resources/search/issues.php
+http://www.walleyecentral.com/articles/?a=975
+http://www.walleyehunter.com/articles/anderson53.html
+http://www.wallpaper.net.au/links.php
+http://www.wallstreetreporter.com/linked/AustralianCancerTechnology.html
+http://www.wallstreetreporter.com/linked/DemandManagement.html
+http://www.walmart.com/catalog/product.gsp?product_id=1025164&cat=118123&type=4&dept=4104&path=0%3A4104%3A4112%3A118123
+http://www.walmart.com/catalog/product.gsp?product_id=1527899&cat=14563&type=19&dept=3944&path=0%3A3944%3A3977%3A14563
+http://www.walmart.com/catalog/product.gsp?product_id=1527899&cat=178122&type=19&dept=3944&path=0%3A3944%3A178120%3A14563
+http://www.walmart.com/catalog/product.gsp?product_id=1527899&cat=178122&type=19&dept=3944&path=0%3A3944%3A178120%3A178122%3A178122&xsell=2636897
+http://www.walmart.com/catalog/product.gsp?product_id=1527899&cat=178122&type=19&dept=3944&path=0%3A3944%3A178120%3A178122%3A178122&xsell=2636900
+http://www.walmart.com/catalog/product.gsp?product_id=1527899&cat=57909&type=19&dept=3944&path=0%3A3944%3A178120%3A14563
+http://www.walmart.com/catalog/product.gsp?product_id=2597978&cat=20405&type=3&dept=3920&path=0%3A3920%3A61876%3A20405
+http://www.walmart.com/catalog/product.gsp?product_id=2597978&cat=22293&type=3&dept=3920&path=0%3A3920%3A61876%3A22293
+http://www.walmart.com/catalog/product.gsp?product_id=843142&cat=5079&type=4&dept=4104&path=0%3A4104%3A4112%3A5056%3A38519
+http://www.walmart.com/catalog/product.gsp?product_id=860025
+http://www.walmart.com/catalog/product.gsp?product_id=887990&cat=14563&type=19&dept=3944&path=0%3A3944%3A3977%3A14563
+http://www.walmart.com/catalog/product.gsp?product_id=887990&cat=178120&type=19&dept=3944&path=0%3A3944%3A178120%3A178120&xsell=2636900
+http://www.walmart.com/catalog/product.gsp?product_id=887990&cat=178122&type=19&dept=3944&path=0%3A3944%3A178120%3A178122%3A178122&xsell=2636900
+http://www.walsall.gov.uk/newsdocs/NewsArticle.asp?NewsId=2858
+http://www.waltermartin.org/science.html
+http://www.walterzorn.com/tooltip/tooltip_e.htm
+http://www.walthamchamber.com/npc/ways.shtml
+http://www.walthamforestguardian.co.uk/news/newsroundup/display.php?artid=560332&FROMPAPER=bucksfreepress.co.uk
+http://www.wam.umd.edu/~mlhall/MLHall.html
+http://www.wam.umd.edu/~south/2004_06_13_archives.html
+http://www.wanadoo.co.uk/money/bills/utilprices0105.htm?linkfrom=Today&link=fsPersonalFinance1_link4&article=TODpf_no_more_cards_280105
+http://www.wanadoo.co.uk/money/bills/utilprices0105.htm?linkfrom=money__mon_home&link=fsHH_2_2Link2&article=MON_testpage_ed2
+http://www.wandea.org.pl/lumen-gentium.htm
+http://www.wandsworth-pct.nhs.uk/work/ppi/Copyingletters.asp
+http://www.wannabebig.com/article.php?articleid=145
+http://www.wannalearn.com/Crafts_and_Hobbies/Crochet/
+http://www.wannalearn.com/Fine_Arts/Visual_Art/Drawing_and_Sketching/
+http://www.wannalearn.com/Personal_Enrichment/Public_Speaking/
+http://www.wannalearn.com/Personal_Enrichment/Speed_Reading/
+http://www.wanogakkou.com/culture/050000/050400_e.html
+http://www.wanttoknow.info/010914wsj
+http://www.wanttoknow.info/9-11cover-up
+http://www.wanttoknow.info/9-11cover-up10pg
+http://www.wanttoknow.info/911coverup10pg
+http://www.wanttoknow.info/911timeline2pg
+http://www.wanttoknow.info/tsunamistory
+http://www.wap.org/journal/ibookiraq/default.html
+http://www.wapiti.net/news/default2.cfm?articleID=75
+http://www.war-experience.org/collections/civilians/alliedbrit/hall/
+http://www.war-experience.org/history/keyaspects/atlantic/
+http://www.war-experience.org/history/keyaspects/loveletters/
+http://www.war-ofthe-worlds.co.uk/hg.htm
+http://www.war-times.org/
+http://www.waragainsttheweak.com/offSiteArchive/charleston.net/
+http://www.waragainsttheweak.com/offSiteArchive/hnn.us/
+http://www.warandpiece.com/
+http://www.warandpiece.com/blogdirs/001133.html
+http://www.warandpiece.com/blogdirs/001159.html
+http://www.warboards.org/showthread.php?t=7303
+http://www.warchronicle.com/staffsyeo/historiantales_wwii/northafricareg.htm
+http://www.wardell.org/conference/pr/reserve.htm
+http://www.wardenpark.co.uk/extra_curricula/india_bracelets04.htm
+http://www.wardsystems.com/products.asp?p=engine
+http://www.warekay.co.uk/ytb.htm
+http://www.warflag.com/shadow/history/spainmorocco.html
+http://www.warforum.net/
+http://www.warfoto.com/3rdiv.htm
+http://www.wargameacademy.org/FLT/FLT_FAQ.html
+http://www.warhogsaudioshop.com/index.asp?PageAction=Custom&ID=3
+http://www.warincontext.org/
+http://www.warletters.com/book/toc.html
+http://www.warlords.org.nz/article_nancy.htm
+http://www.warmcards.com/ontv.html
+http://www.warmfusion.com/nigerian/mpenza2.htm
+http://www.warmglass.com/Whats_New.htm
+http://www.warmingtrendsstoves.com/prairie_gs.html
+http://www.warmus.com/Steuben_Forever.htm
+http://www.warmus.com/The%20Value%20of%20Glass.htm
+http://www.warmus.com/newpage21.htm
+http://www.warnbro.org.au/blog/
+http://www.warofthering.net/articles/article_8489.php
+http://www.waronchoice.com/message_040609_shirt.asp
+http://www.warpig.com/forums/fields/index/pg_Kentucky.shtml
+http://www.warpig.com/forums/stores/index/pg_Kentucky.shtml
+http://www.warr.org/csny.html
+http://www.warr.org/living.html
+http://www.warrantyweek.com/archive/ww20031215.html
+http://www.warrantyweek.com/archive/ww20040112.html
+http://www.warrenshepell.com/articles/sayinggoodbye.asp
+http://www.warrenshepell.com/wsi/mindbodybalance/art-worklife.asp
+http://www.warrenville.il.us/032003pcmin.htm
+http://www.warrenville.il.us/042403pcmin.htm
+http://www.warrug.com/index.php?idg=3
+http://www.warsailors.com/freefleet/swedenships.html
+http://www.warsailors.com/shetlandbus/boatsf.html
+http://www.warsashcentre.co.uk/
+http://www.warsaw-apartments.net/faq.htm
+http://www.warsawcdc.org/loans.htm
+http://www.warsawuprising.com/witness/atrocities9.htm
+http://www.warsawuprising.com/witness/atrocities_print9.htm
+http://www.warwick.ac.uk/res2003/media/collier.html
+http://www.warwickonline.com/primetime/searchnews.asp?ID=695
+http://www.warwickshire.gov.uk/corporate/committe.nsf/0/76e42f941aa740f180256f86002b3ed5?OpenDocument
+http://www.warwickshire.gov.uk/corporate/committe.nsf/0/94058f27841b469480256b100054fb1c?OpenDocument
+http://www.warwickshire.police.uk/policingwarwickshire/northernarea/northmanagementteam
+http://www.warwickshire.police.uk/policingwarwickshire/southernarea/ManagementTeam_SA
+http://www.warwyn.tas.gov.au/site/page.cfm?u=291
+http://www.wasab.dk/morten/blog/archives/2005/03/
+http://www.wasatchaudubon.org/mapn_trips_26_30.htm
+http://www.washblade.com/2005/1-7/arts/theater/legend.cfm
+http://www.washburn.edu/sas/olt/legal-assist/
+http://www.washdiplomat.com/02-09/a9_02_09.html
+http://www.washear.org/restoration_act.htm
+http://www.washhumane.org/adopt/adoptdog.htm
+http://www.washhumane.org/pettips/YourNewBestFriendII.htm
+http://www.washington-report.org/backissues/0789/8907015.htm
+http://www.washington.edu/admin/hr/benefits/veba.html
+http://www.washington.edu/admin/hr/laborrel/contracts/uaw/contract/a16.html
+http://www.washington.edu/admin/hr/ocpsp/flsa/exempt_crit.html
+http://www.washington.edu/admin/hr/pol.proc/employment.trial.html
+http://www.washington.edu/admin/hr/pol.proc/prostaff/ps.part5.html
+http://www.washington.edu/admin/hr/worklife/lactationsvc.html
+http://www.washington.edu/alumni/mbshipbenefits.html
+http://www.washington.edu/computing/security/servers.html
+http://www.washington.edu/doit/Brochures/Technology/comp.access.html
+http://www.washington.edu/doit/Faculty/Strategies/Academic/Groupwork/
+http://www.washington.edu/faculty/facsenate/councils/fceo/FCEO-minutes/00-01/mn120500.htm
+http://www.washington.edu/faculty/facsenate/handbook/01-03-01.html
+http://www.washington.edu/research/osp/gim/gim18a2.html
+http://www.washington.edu/user/steering/reports/sc0404_report.html
+http://www.washington.org/bluesanddreams/VisualArts.html
+http://www.washingtonfreepress.org/14/Light_Rail.html
+http://www.washingtonfreepress.org/28/First.html
+http://www.washingtonfreepress.org/68/iAlmostKilled.htm
+http://www.washingtonfreepress.org/72/mercuryOnTheMind.htm
+http://www.washingtonhistory.org/wshs/columbia/articles/0103-a2.htm
+http://www.washingtonian.com/chats/jaffe/0310landon.html
+http://www.washingtonian.com/etc/business/great_places_to_work/wish.html
+http://www.washingtonian.com/etc/business/love_money/lm10.html
+http://www.washingtonian.com/health/internetadultery.html
+http://www.washingtonian.com/people/ALS.html
+http://www.washingtonian.com/people/deepthroat.html
+http://www.washingtonian.com/people/jared.html
+http://www.washingtonmonthly.com/archives/individual/2004_05/003829.php
+http://www.washingtonmonthly.com/archives/individual/2004_12/005266.php
+http://www.washingtonmonthly.com/archives/individual/2004_12/005316.php
+http://www.washingtonmonthly.com/archives/individual/2005_03/005900.php
+http://www.washingtonmonthly.com/archives/individual/2005_04/006092.php
+http://www.washingtonmonthly.com/archives/individual/2005_06/006421.php
+http://www.washingtonmonthly.com/archives/individual/2005_06/006447.php
+http://www.washingtonmonthly.com/archives/individual/2005_06/006583.php
+http://www.washingtonmonthly.com/features/2001/0104.mencimer.html
+http://www.washingtonmonthly.com/features/2001/0207.green.html
+http://www.washingtonmonthly.com/features/2001/0209.clark.html
+http://www.washingtonmonthly.com/features/2001/0301.marshall.html
+http://www.washingtonmonthly.com/features/2003/0307.confessore.html
+http://www.washingtonmonthly.com/features/2003/0312.confessore.html
+http://www.washingtonmonthly.com/features/2004/0407.schorr.html
+http://www.washingtonmonthly.com/features/2004/0407.turner.html
+http://www.washingtonmonthly.com/features/2004/0411.hirsh.html
+http://www.washingtonmonthly.com/mt/mt-comments.cgi?entry_id=3010
+http://www.washingtonmonthly.com/mt/mt-comments.cgi?entry_id=5609
+http://www.washingtonparish.org/
+http://www.washingtonpost.com/ac2/wp-dyn/A13603-2004Nov25?language=printer
+http://www.washingtonpost.com/ac2/wp-dyn/A15004-2004Aug19?language=printer
+http://www.washingtonpost.com/ac2/wp-dyn/A26054-2004Dec25?language=printer
+http://www.washingtonpost.com/ac2/wp-dyn/A32738-2004Nov7?language=printer
+http://www.washingtonpost.com/ac2/wp-dyn/A56479-2000Dec27
+http://www.washingtonpost.com/ac2/wp-dyn/A57960-2004Dec11?language=printer
+http://www.washingtonpost.com/ac2/wp-dyn/A60363-2003Dec12?language=printer
+http://www.washingtonpost.com/ac2/wp-dyn/A61559-2002Sep24
+http://www.washingtonpost.com/ac2/wp-dyn/A64481-2004Aug14?language=printer
+http://www.washingtonpost.com/ac2/wp-dyn?node=entertainment/profile&id=791895
+http://www.washingtonpost.com/ac2/wp-dyn?node=entertainment/profile&id=791895&et=all
+http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&contentId=A22637-2004Apr18&notFound=true
+http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&node=&contentId=A22151-2000Apr6
+http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&node=&contentId=A30099-2001Apr17&notFound=true
+http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&node=&contentId=A32319-2001Sep26&notFound=true
+http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&node=&contentId=A41403-2003Jan25&notFound=true
+http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&node=&contentId=A54423-2002Jun14&notFound=true
+http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&node=&contentId=A64630-2004Jan30&notFound=true
+http://www.washingtonpost.com/wl/jobs/Content?Content=/help/searchtips.html
+http://www.washingtonpost.com/wp-dyn/articles/A10405-2004Sep9.html
+http://www.washingtonpost.com/wp-dyn/articles/A12297-2004Jul24.html
+http://www.washingtonpost.com/wp-dyn/articles/A1638-2004Dec15.html
+http://www.washingtonpost.com/wp-dyn/articles/A16977-2004Oct8.html
+http://www.washingtonpost.com/wp-dyn/articles/A18973-2004Mar23.html
+http://www.washingtonpost.com/wp-dyn/articles/A19763-2004Nov2.html
+http://www.washingtonpost.com/wp-dyn/articles/A20382-2004Aug20.html
+http://www.washingtonpost.com/wp-dyn/articles/A20471-2004Nov3.html
+http://www.washingtonpost.com/wp-dyn/articles/A20889-2004Oct9_2.html
+http://www.washingtonpost.com/wp-dyn/articles/A22300-2004May12.html
+http://www.washingtonpost.com/wp-dyn/articles/A23474-2003Nov10.html
+http://www.washingtonpost.com/wp-dyn/articles/A2477-2004Nov21.html
+http://www.washingtonpost.com/wp-dyn/articles/A25279-2005Jan20.html
+http://www.washingtonpost.com/wp-dyn/articles/A27948-2004Nov5.html
+http://www.washingtonpost.com/wp-dyn/articles/A2925-2004Oct2.html
+http://www.washingtonpost.com/wp-dyn/articles/A29862-2004Aug24.html?nav=rss_politics
+http://www.washingtonpost.com/wp-dyn/articles/A31462-2005Jan23_3.html
+http://www.washingtonpost.com/wp-dyn/articles/A3185-2004Dec15.html
+http://www.washingtonpost.com/wp-dyn/articles/A31904-2004May16.html
+http://www.washingtonpost.com/wp-dyn/articles/A33255-2004Dec29.html
+http://www.washingtonpost.com/wp-dyn/articles/A3326-2005Feb6.html
+http://www.washingtonpost.com/wp-dyn/articles/A34784-2004Dec4.html
+http://www.washingtonpost.com/wp-dyn/articles/A35224-2004Nov8.html
+http://www.washingtonpost.com/wp-dyn/articles/A36080-2004Dec30.html
+http://www.washingtonpost.com/wp-dyn/articles/A36557-2005Jan25.html
+http://www.washingtonpost.com/wp-dyn/articles/A36557-2005Jan25.html?nav=rss_topnews
+http://www.washingtonpost.com/wp-dyn/articles/A38097-2004Nov9.html
+http://www.washingtonpost.com/wp-dyn/articles/A38278-2004Nov9.html
+http://www.washingtonpost.com/wp-dyn/articles/A38446-2005Feb19.html
+http://www.washingtonpost.com/wp-dyn/articles/A38446-2005Feb19.html?nav=rss_world
+http://www.washingtonpost.com/wp-dyn/articles/A38873-2004Oct16.html
+http://www.washingtonpost.com/wp-dyn/articles/A39874-2004Sep21.html
+http://www.washingtonpost.com/wp-dyn/articles/A4005-2004Jul21.html
+http://www.washingtonpost.com/wp-dyn/articles/A40142-2004Aug27.html
+http://www.washingtonpost.com/wp-dyn/articles/A43777-2004Nov11.html
+http://www.washingtonpost.com/wp-dyn/articles/A45588-2005Jan28.html
+http://www.washingtonpost.com/wp-dyn/articles/A4563-2005Feb7.html
+http://www.washingtonpost.com/wp-dyn/articles/A45987-2005Jan3.html
+http://www.washingtonpost.com/wp-dyn/articles/A50937-2005Jan31.html
+http://www.washingtonpost.com/wp-dyn/articles/A51424-2004Nov15_2.html
+http://www.washingtonpost.com/wp-dyn/articles/A53675-2004Nov16.html
+http://www.washingtonpost.com/wp-dyn/articles/A54966-2004Nov16.html
+http://www.washingtonpost.com/wp-dyn/articles/A55666-2005Feb1.html
+http://www.washingtonpost.com/wp-dyn/articles/A57894-2004Sep2.html
+http://www.washingtonpost.com/wp-dyn/articles/A58043-2004Sep28.html
+http://www.washingtonpost.com/wp-dyn/articles/A58117-2004Sep28.html
+http://www.washingtonpost.com/wp-dyn/articles/A59332-2005Feb3.html
+http://www.washingtonpost.com/wp-dyn/articles/A59587-2005Jan8.html
+http://www.washingtonpost.com/wp-dyn/articles/A59615-2004Sep3.html
+http://www.washingtonpost.com/wp-dyn/articles/A60133-2004Oct24.html
+http://www.washingtonpost.com/wp-dyn/articles/A60832-2004Sep29.html
+http://www.washingtonpost.com/wp-dyn/articles/A62646-2004Oct25.html
+http://www.washingtonpost.com/wp-dyn/articles/A63329-2004Sep30.html
+http://www.washingtonpost.com/wp-dyn/articles/A63755-2004Sep30.html
+http://www.washingtonpost.com/wp-dyn/articles/A6382-2004Aug16.html
+http://www.washingtonpost.com/wp-dyn/articles/A6404-2004Aug16.html
+http://www.washingtonpost.com/wp-dyn/articles/A64481-2004Aug14.html
+http://www.washingtonpost.com/wp-dyn/articles/A64483-2004Aug14.html
+http://www.washingtonpost.com/wp-dyn/articles/A6921-2005Jan13.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/03/25/AR2005032502637.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/05/02/AR2005050201321.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/05/04/AR2005050402050.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/05/05/AR2005050500811_pf.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/05/12/AR2005051200077_pf.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/05/14/AR2005051400515_pf.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/05/15/AR2005051500605.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/05/15/AR2005051500646.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/05/25/AR2005052501811.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/05/31/AR2005053101825_pf.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/01/AR2005060102124.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/02/AR2005060201593_pf.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/02/AR2005060201944.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/03/AR2005060301655.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/09/AR2005060902245_pf.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/10/AR2005061002110.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/11/AR2005061100381.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/11/AR2005061100381_3.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/13/AR2005061301418.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/14/AR2005061400563.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/14/AR2005061401343.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/15/AR2005061502252.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/15/AR2005061502300.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/16/AR2005061601364.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/19/AR2005061900697.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/22/AR2005062200598.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/22/AR2005062202100.html
+http://www.washingtonpost.com/wp-dyn/content/article/2005/06/22/AR2005062202100_pf.html
+http://www.washingtonpost.com/wp-dyn/content/discussion/2004/04/26/DI2005040307109.html
+http://www.washingtonpost.com/wp-dyn/content/discussion/2004/10/24/DI2005033110319.html
+http://www.washingtonpost.com/wp-dyn/content/discussion/2005/03/04/DI2005040701467.html
+http://www.washingtonpost.com/wp-dyn/content/discussion/2005/06/16/DI2005061601172.html
+http://www.washingtonpost.com/wp-dyn/content/discussion/2005/06/21/DI2005062101260.html
+http://www.washingtonpost.com/wp-dyn/content/linkset/2005/04/11/LI2005041100587.html?nav=pq
+http://www.washingtonpost.com/wp-dyn/metro/va/elections/governor/
+http://www.washingtonpost.com/wp-dyn/print/community/annearundel/
+http://www.washingtonpost.com/wp-srv/metro/usersguides/loudoun/CommEvnts.html
+http://www.washingtonpost.com/wp-srv/politics/debatereferee/debate_1008.html
+http://www.washingtonpost.com/wp-srv/realestate/hpr/help.htm
+http://www.washingtonpost.com/wp-srv/style/longterm/books/chap1/emperor.htm
+http://www.washingtonpost.com/wp-srv/style/longterm/books/chap1/manwhomadearevolution.htm
+http://www.washingtonpost.com/wp-srv/style/longterm/books/chap1/truthandbeauty.htm
+http://www.washingtontechnology.com/news/14_8/tech_features/639-1.html
+http://www.washingtontechnology.com/news/18_4/datastream/20787-1.html
+http://www.washingtontechnology.com/news/1_1/daily_news/26370-1.html
+http://www.washingtontimes.com/commentary/20050507-111851-8037r.htm
+http://www.washingtontimes.com/national/20040705-013501-7302r.htm
+http://www.washingtontimes.com/upi/20050622-010040-2412r.htm
+http://www.washingtontimes.com/world/20050613-121304-4030r.htm
+http://www.washjeff.edu/handbook/reslife3.html
+http://www.washoe.lib.nv.us/mod.php?mod=newsletter&op=read&lid=1&nlid=33
+http://www.washtimes.com/national/20050222-115008-9802r.htm
+http://www.washtimes.com/national/20050331-010415-6150r.htm
+http://www.washtimes.com/upi-breaking/20050504-034910-3467r.htm
+http://www.washtimes.com/world/20050203-105651-3055r.htm
+http://www.washwriter.org/writnews.html
+http://www.waspacegrant.org/efaut99.html
+http://www.waste2profits.com/SelectDisgner.htm
+http://www.wasteage.com/mag/waste_banned_boston_few/
+http://www.wasteonline.org.uk/resources/Wasteguide/mn_wastetypes_textiles.html
+http://www.wasylik.net/baby/blog/arc/2003/March.php
+http://www.watchblog.com/republicans/archives/002326.html
+http://www.watchblog.com/republicans/archives/002340.html
+http://www.watchblog.com/thirdparty/archives/002174.html
+http://www.watchguard.com/about/corpoff.asp
+http://www.watchguard.com/events/speakers.asp
+http://www.watchic.net/pottery/trouble.htm
+http://www.watchman.org/lds/mackert.htm
+http://www.watchman.org/profile/unipro.htm
+http://www.watchman.org/profile/wordpro.htm
+http://www.watchparts.org/netspecials.html
+http://www.watchtower.org/bible/jas/chapter_001.htm
+http://www.watchtower.org/library/g/1999/3/8/article_01.htm
+http://www.watchtower.org/library/g/2001/9/22/article_02.htm
+http://www.watchtower.org/library/g/2003/12/8/article_01.htm
+http://www.watchtowerinformationservice.org/osamuJME.htm
+http://www.watchwomen.com/women_and_the_episcopacy.htm
+http://www.water-ed.org/septoct01.asp
+http://www.water-technology.net/projects/barbados/
+http://www.water-technology.net/projects/copper/
+http://www.water.az.gov/WaterManagement/Content/WaterRights/surface_water_faqs.htm
+http://www.water.org.uk/home/news/press-releases/water-pricing
+http://www.waterandwastewater.com/www_services/ask_tom_archive/grinders_and_comminutors_an_evolving_technology.htm
+http://www.waterboards.ca.gov/coloradoriver/documents/eo_reports/eo010627.htm
+http://www.waterboards.ca.gov/lahontan/EO_Reports/2000/eor1100.htm
+http://www.watercommissioner.co.uk/PerformanceMonitoring/CustomerService/default.asp
+http://www.waterconserve.info/articles/reader.asp?linkid=22326
+http://www.waterconserve.info/articles/reader.asp?linkid=31817
+http://www.watercoolergames.org/archives/000263.shtml
+http://www.watercoolergames.org/archives/000314.shtml
+http://www.watercoolergames.org/archives/000324.shtml
+http://www.watercraftnews.com/output.cfm?id=778303
+http://www.waterford-news.com/news/story.asp?j=18484
+http://www.watergirlsatplay.com/gap/
+http://www.waterhousegroup.com/
+http://www.waterloohydrogeologic.com/software/remediation_toolkit/remediation_toolkit_biotrend_details.htm
+http://www.watermattersaustralia.org/campaign-news/update-0302.htm
+http://www.wateronline.com/
+http://www.waterquality.crc.org.au/HS/hs4web.htm
+http://www.waterquality.utah.gov/KIRANS2.HTM
+http://www.watertechonline.com/article.asp?IndexID=6631961
+http://www.watertechonline.com/news.asp?mode=4&N_ID=52657
+http://www.watertownlib.org/annual.htm
+http://www.waterville.com/info/winter/snowsports.jr.seasonal.asp
+http://www.waterwebster.com/BottledWater.htm
+http://www.waterwire.net/Resources/releases.cfm
+http://www.wats.ca/articles/firefoxandjaws/71
+http://www.wats.ca/articles/hiddeninformation/63
+http://www.watson.org/~leigh/celts.html
+http://www.watsoniapublishing.com/policies.php
+http://www.watsonwyatt.com/europe/pubs/healthcare/articles/render_june.asp?ID=10096
+http://www.watsonwyatt.com/us/pubs/insider/showarticle.asp?ArticleID=14382&Component=The+Insider
+http://www.watt-evans.com/soyouwanttobeawriter7.html
+http://www.wausaudailyherald.com/wdhlocal/294057820857405.shtml
+http://www.wave.net/immigration/lawyer/tax_avoid.html
+http://www.wave.net/upg/immigration/dot_t2.html
+http://www.waveflux.net/archives/cat_hard_news.php
+http://www.wavelet.org/phpBB2/viewtopic.php?t=2086
+http://www.wavescape.co.za/top_bar/tidings/Sharks/debate_april04.html
+http://www.waxy.org/archive/2003/05/29/ghyslain.shtml
+http://www.waxy.org/archive/2003/12/30/clear_ch.shtml
+http://www.waxy.org/archive/2004/07/01/amazonco.shtml
+http://www.wayeh.com/sleddogrescue/sources.htm
+http://www.wayland.ma.us/waytow/cable_history.htm
+http://www.wayne-dalton.com/aboutUs_GreatIdeas.asp
+http://www.waynegreen.com/video/makeup.html
+http://www.wayoutback.com.au/comments.php
+http://www.waypath.com/news/news_6_71480.html
+http://www.waypath.com/topic/gaming_counterstrikesource.html
+http://www.waysys.com/ws_content_al_ibe.html
+http://www.waytoopersonal.com/comp/onetrue.shtml
+http://www.wazika.net/2004/2002_04_01_archive.html
+http://www.wazika.net/2004/2004_04_01_archive.html
+http://www.wbdg.org/design/parking.php
+http://www.wbdg.org/design/provide_security.php
+http://www.wbdg.org/design/use_analysis.php
+http://www.wbenc.org/opportunities/resources.html
+http://www.wbf.org/displayconvention.cfm
+http://www.wbhm.org/Community_Center/Air_Quality_Primer.html
+http://www.wboc.com/Global/story.asp?S=2315918
+http://www.wbucapetown2004.org.za/programme_event_draft.html
+http://www.wburg.com/0101/context/mushrooms.html
+http://www.wc3sear.ch/rules.php
+http://www.wca-infonet.org/cds_static/guidelines_designing_evaluating_surface_systems__1261_1398.html
+http://www.wcape.school.za/subject/CS/PHS/exceldistr/getgoing.htm
+http://www.wcc-coe.org/wcc/assembly/fprc2b-e.html
+http://www.wcc-coe.org/wcc/what/jpc/echoes-16-06.html
+http://www.wcer.wisc.edu/nise/cl1/ilt/resource/assessment/proof_activities.htm
+http://www.wcet.info/projects/laap/guidelines/case_ksu.asp
+http://www.wcet.info/projects/laap/guidelines/case_regis.asp
+http://www.wcfriends.org/HeadLtt.htm
+http://www.wcg.org/lit/jesus/davis.htm
+http://www.wch.ca/CFcontent.asp?view=CH-20301
+http://www.wch.ca/CFcontent.asp?view=CH-21171
+http://www.wch04.com/generated/fAv1wOqGMW.html
+http://www.wchob.org/Art/
+http://www.wcl.govt.nz/popular/senior.html
+http://www.wcml.org.uk/people/em/theuni.htm
+http://www.wcoh.ac.uk/sa_spt.htm
+http://www.wcoomd.org/ie/En/FAQ/body_faq.html
+http://www.wcoomd.org/ie/en/Topics_Issues/HarmonizedSystem/HS%20dispute%20settlement.html
+http://www.wcpn.org/specials/7th_generation/christmas_birds.html
+http://www.wcpo.com/news/2002/local/07/09/bell.html
+http://www.wcpss.net/Board/agendas_schedules/5_20_2003-agenda.html
+http://www.wcpss.net/news/
+http://www.wcpss.net/parents_students.html
+http://www.wcremembered.co.uk/fandf.html
+http://www.wcrp.org/RforP/PEACEED_CONTENT.html
+http://www.wcschools.com/mjhs/tlcf/bestpractices/wilson/
+http://www.wcsh6.com/weddingguide/Wedding-Planning/Invitations-And-Etiquette/Invitation-Wording-And-Enclosures.htm
+http://www.wcu.edu/chancellor/BOTMinutes/2000-3os.htm
+http://www.wcu.edu/sotl/summerinstitute04.html
+http://www.wcubed.net/health/cancer.php
+http://www.wculife.com/stories.htm
+http://www.wcupa.edu/_information/official.documents/GRADUATE.CATALOG/MusAppld.htm
+http://www.wcuweb.com/Documents/PRESSRELEASES&ARTICLES&LETTERS/2002,6-17%20Please%20send%20the%20SWAT%20team%20again!.htm
+http://www.wcva.org.uk/content/jobs/index.cfm
+http://www.wcwonline.org/keypeople/robeson.html
+http://www.wd.gc.ca/mediacentre/2004/nov09-01a_e.asp
+http://www.wd.gc.ca/rpts/audit/wdp/5_e.asp
+http://www.wdfi.org/wca/faq.htm
+http://www.wdiyc.org/wdiyc/diybooks.html
+http://www.wdln.tv/conference.htm
+http://www.we-make-money-not-art.com/archives/004283.php
+http://www.we-make-money-not-art.com/archives/cat_gadgets.php?page=5
+http://www.we-make-money-not-art.com/archives/cat_rfid.php
+http://www.we-make-money-not-art.com/index.php?page=4
+http://www.weac.org/Capitol/2003-04/july04/tabor_wrap.htm
+http://www.weac.org/GreatSchools/Issuepapers/schoolsize.htm
+http://www.weac.org/Resource/2001-02/mentor.htm
+http://www.weac.org/greatschools/Issuepapers/schoolsize.htm
+http://www.weaintcool.com/Reviews/socom.html
+http://www.wealth4freedom.com/WORLDNEWSSTAND/1/churchstate.htm
+http://www.wealth4freedom.com/brainwash.htm
+http://www.wealth4freedom.com/truth/2/rockefeller.htm
+http://www.wealth4freedom.com/truth/3/skullandbones.htm
+http://www.wealth4freedom.com/truth/8/statebody.htm
+http://www.wealth4freedom.com/truth/news/witchcraft.htm
+http://www.wealthytheatre.org/policy.php
+http://www.wealwaysswing.org/
+http://www.wearescientists.com/frontpagearchive/2003_04_29_frontpage.html
+http://www.weasner.com/etx/archive/feedbackAug01/autostar.html
+http://www.weasner.com/etx/eyepieces.html
+http://www.weather-forecast.com/locations/Rochester1.forecast.shtml
+http://www.weather.nps.navy.mil/renard_wx/dec98wx.html
+http://www.weatherhead.cwru.edu/cslc/alumni/best.htm
+http://www.web-and-flow.com/members/polson/webquest/webquest.htm
+http://www.web-and-flow.com/members/shursey/separatepeace/webquest.htm
+http://www.web-cite.com/search_marketing/000100.html
+http://www.web-enable.com/industry/food_and_beverages.asp
+http://www.web-merchant.co.uk/ecommercebuilder.asp
+http://www.web-techniques.com/topics/cpp/compilers/
+http://www.web.amnesty.org/ai.nsf/index/AFR540012000
+http://www.web.net/~crash/about.html
+http://www.web.net/~wia/wiam_Film032.html
+http://www.webactivemagazine.co.uk/analysis/1130414
+http://www.webactivemagazine.co.uk/features/1156647
+http://www.webaim.org/coordination/law/eu/
+http://www.webaim.org/products/cd/pre_order.php
+http://www.webaim.org/products/training/termsofuse.php
+http://www.webaim.org/techniques/flash/
+http://www.webapps.ccs.uoguelph.ca/lc/AcademicIntegrity/plagiarism_quiz.cfm
+http://www.webball.com/bullpen/essay_n.html
+http://www.webcam-list.com/getrated.php
+http://www.webcom.com/haahr/welcome.html
+http://www.webcom.com/ncecd/taleoftwomarkets.html
+http://www.webcom.com/~paf/ereignis.html
+http://www.webcomics.com/top/index.php/Arts/Graphic_Design/Typography/
+http://www.webcomlink.com/product/dir.htm
+http://www.webcredible.co.uk/user-friendly-resources/css/css-round-corners-boxes.shtml
+http://www.webcredible.co.uk/user-friendly-resources/web-credibility/visit-website.shtml
+http://www.webcurrent.com/rushdie.html
+http://www.webdelsol.com/NorthAmReview/NAR/HTMLpages/n-su97sf.htm
+http://www.webdesignfromscratch.com/effective_text.cfm
+http://www.webdeveloper.com/forum/showthread.php?goto=lastpost&t=68236
+http://www.webdeveloper.com/forum/showthread.php?goto=lastpost&t=70160
+http://www.webdeveloper.com/forum/showthread.php?goto=lastpost&t=70339
+http://www.webdeveloper.com/forum/showthread.php?t=68236
+http://www.webdeveloper.com/forum/showthread.php?t=70339
+http://www.webdevelopersjournal.com/articles/wap_java.html
+http://www.webdevelopersjournal.com/columns/analysis.html
+http://www.webdevelopersjournal.com/columns/writerfp.html
+http://www.webdirectwarranty.com/warranty_coverage.htm
+http://www.webedelic.com/church/lindex.html
+http://www.webexpectations.com/newsarchive.php
+http://www.webfactory.ie/htm/clients/cashs.htm
+http://www.webfeetguides.com/howto_load_wf_marc.html
+http://www.webflyer.com/programs/accounts_online/
+http://www.webflyer.com/programs/accounts_online/?WF_show_printable=1
+http://www.webfoot.com/advice/WebDarkSide.html
+http://www.webfoot.com/advice/oralLiterate.html
+http://www.webgeordie.co.uk/borat/howardstern.htm
+http://www.webheights.net/10newsongs/press/elmunmag.htm
+http://www.webindia123.com/history/MEDIEVAL/mughal%20period/mughal1.htm
+http://www.webjones.org/wordpress/wp-rss2.php
+http://www.weblogkitchen.com/wiki.cgi?KmDiscussion
+http://www.webmastersink.com/webman/promos/paylinks/health.htm
+http://www.webmastersink.com/webman/promos/paylinks/personal.htm
+http://www.webmasterworld.com/forum1/2483-2-10.htm
+http://www.webmasterworld.com/forum12/1875.htm
+http://www.webmasterworld.com/forum19/2706.htm
+http://www.webmasterworld.com/forum25/1955-4-10.htm
+http://www.webmasterworld.com/forum3/14973-7-10.htm
+http://www.webmasterworld.com/forum30/29814.htm
+http://www.webmasterworld.com/forum31/1114-2-10.htm
+http://www.webmasterworld.com/forum31/1495-3-10.htm
+http://www.webmasterworld.com/forum33/1480-10-10.htm
+http://www.webmasterworld.com/forum39/2519.htm
+http://www.webmasterworld.com/forum81/1043.htm
+http://www.webmasterworld.com/forum81/2285-4-10.htm
+http://www.webmasterworld.com/forum81/3940-8-10.htm
+http://www.webmasterworld.com/forum81/4204-2-10.htm
+http://www.webmasterworld.com/forum86/402.htm
+http://www.webmasterworld.com/forum89/5563-7-10.htm
+http://www.webmasterworld.com/forum9/8382-7-10.htm
+http://www.webmatters.net/france/ww1_haudroy.htm
+http://www.webmed.com/
+http://www.webmerch.com/svc/franchise.html
+http://www.webmovie.com/North_Carolina_Production_Guide/
+http://www.webpages.uidaho.edu/~mbolin/diotalevi.html
+http://www.webpanda.com/WP_cemeteries/elycem_f.htm
+http://www.webpicturecreator.com/
+http://www.webplan.com/company/news/release_view.dbm?id=45
+http://www.webpresencegroup.net/
+http://www.webpronews.com/2005/0118.html
+http://www.webpronews.com/news/ebusinessnews/wpn-45-20050109PuttingtheMacAsidein2005.html
+http://www.webreseller.net/policy.htm
+http://www.webroot.com/products/windowwasher
+http://www.webs.uidaho.edu/core_critical_thinking/lessons/lesson3/3_7_recon_summary.htm
+http://www.websciences.org/sltbr/sadfaq.htm
+http://www.webservertalk.com/message868715-1.html
+http://www.webservertalk.com/message868715-2.html
+http://www.webservertalk.com/message868715.html
+http://www.webservertalk.com/message870952.html
+http://www.webservices.org/index.php/ws/content/view/full/41476
+http://www.webservices.org/index.php/ws/content/view/full/42433
+http://www.webservices.org/index.php/ws/content/view/full/48340
+http://www.webshells.com/cgi-bin/laborinfo/affa/affa.pl
+http://www.webshowcase.net/nealefamily/screen3_14.html
+http://www.website-promotion-ranking-services.com/guarantee.htm
+http://www.website-promotion-ranking-services.com/tutorials/11.htm
+http://www.website101.com/Search_Engine_Positioning/Paid_inclusion_search.html
+http://www.websiteoftheday.info/2005/02/
+http://www.websites.net.au/oecd/context.htm
+http://www.websitetoolbox.com/tool/post/jlee/vpost?id=441188
+http://www.websitetoolbox.com/tool/post/whosarat/vpost?id=163286&goto=nextoldest
+http://www.websitetoolbox.com/tool/post/whosarat/vpost?id=176181
+http://www.websitetoolbox.com/tool/post/whosarat/vpost?id=176181&trail=
+http://www.webspawner.com/users/PRASHAN/
+http://www.webspawner.com/users/nascarracing/commentary.html
+http://www.webspawner.com/users/popemenachery/
+http://www.webstandards.org/act/campaign/buc/
+http://www.webstandards.org/buzz/archive/2003_08.html
+http://www.webstandards.org/buzz/archive/2005_01.html
+http://www.webstandards.org/buzz/archive/2005_04.html
+http://www.webstar.co.uk/~ubugaje/debt4.html
+http://www.webster.edu/gradcatalog/accredit.html
+http://www.webster.edu/~corbetre/philosophy/education/illich/schooling.html
+http://www.websterschools.org/curriculum.cfm?subpage=1073
+http://www.websyte.com/unity/MATS15.HTM
+http://www.webtechgeek.com/IndexWTG.htm
+http://www.webtennis.net/
+http://www.webterrace.com/allergy/remedies.htm
+http://www.webterrace.com/fengshui/fengrules.htm
+http://www.webthang.co.uk/tuts/tuts_fmx/gfmx2/gfmx2_1.asp
+http://www.webthang.co.uk/tuts/tuts_fmx/gfmx2/gfmx2_2.asp
+http://www.webtourist.net/touristinformation/about-johnsburg-il_usa.html
+http://www.webuser.co.uk/cgi-bin/forums/showflat.pl?Cat=&Board=ISP&Number=116827&page=0&view=collapsed&sb=5&o=93&part=
+http://www.webuser.co.uk/cgi-bin/forums/showflat.pl?Cat=&Board=design&Number=153938&page=0&view=collapsed&sb=5&o=93&part=
+http://www.webuser.co.uk/cgi-bin/forums/showflat.pl?Cat=&Board=openforum&Number=64416&page=0&view=collapsed&sb=5&o=93&part=4
+http://www.webwasp.co.uk/tutorials/b13-slider/colour-slider.php
+http://www.webwombat.com/motoring/news_reports/xrt_xr6t.htm
+http://www.webworkshop.net/florida-update.html
+http://www.wecdsb.on.ca/oyap/works.html
+http://www.wecitefl.com/tefl-tesol-jobs-hua-hin.php
+http://www.weddingbells.ca/wb/Cms/Bride/Page.aspx?PageId=22
+http://www.weddingchannel.com/ui/buildArticle.action?frmSection=articles&assetPath=%2Ftemplates%2FArticles%2FSite%2FTravel%2Farticle_1325.html
+http://www.weddingdetails.com/lore/protestant.cfm
+http://www.weddingshowergifts.com/resources/bachelor_parties.php
+http://www.weddingsolutions.com/Wedding_Videographers.htm
+http://www.weddingvendors.com/baby-names/origin/armenian/
+http://www.weddingvendors.com/baby-names/origin/norse/
+http://www.wedgewoodhotel.com/inter/aug3-01.html
+http://www.weeklystandard.com/Content/Public/Articles/000/000/003/408utwyh.asp
+http://www.weeklystandard.com/Content/Public/Articles/000/000/004/878ropxb.asp
+http://www.weeklystandards.com/archives/cat_business.php
+http://www.wef.org/TechInfoCtr/CurrentActivities/webcom2.jhtml
+http://www.weforum.org/site/homepublic.nsf/Content/Africa+Economic+Summit+2005%5CAfrica+Economic+Summit+2004
+http://www.weforum.org/site/knowledgenavigator.nsf/Content/_S10317?open&event_id=
+http://www.weforum.org/site/knowledgenavigator.nsf/Content/_S12190?open&event_id=
+http://www.wefound.org/texts/Ideal_Muslims_files/herhusband.htm
+http://www.wegener.com/pressrel2004/070904.html
+http://www.wehdorn.co.at/home_d/deut/Akt_d/Akt_Aeth_d/akt_aeth_d.html
+http://www.wehrmacht-awards.com/campaign_awards/shields/krim_campaign.htm
+http://www.weiady.org/outlines/religions_in_history.htm
+http://www.weibfm.com/heroines.htm
+http://www.weight-loss-diet-i.com/weight-loss-tips.htm
+http://www.weightlossguide.com/
+http://www.weightlossguide.com/testi-weightloss-system.html
+http://www.weightlosslab.com/special4.htm
+http://www.weightlossresources.co.uk/logout/info/press.htm
+http://www.weightlossresources.co.uk/weight_loss/advice/underactive_thyroid.htm
+http://www.weightthinkers.com/
+http://www.weightwatchers.ca/util/qzs/questions.aspx?quiz_id=13&tabnum=4&tabsub=asm
+http://www.weightwatchers.co.uk/shop/hom/index.aspx
+http://www.weightwatchers.co.uk/shop/ord/index.aspx
+http://www.weightwatchers.co.uk/success/art/index.aspx?SuccessStoryId=4111&sc=17
+http://www.weightwatchers.co.uk/success/art/index.aspx?sc=17&SuccessStoryID=4141
+http://www.weightwatchers.co.uk/success/art/index.aspx?sc=600&SuccessStoryID=3961
+http://www.weightwatchers.co.uk/util/qzs/questions.aspx?quiz_id=13&tabnum=4&tabsub=asm
+http://www.weightwatchers.com/about/prs/wwi_template.aspx?GCMSID=1003241
+http://www.weightwatchers.com/util/qzs/questions.aspx?quiz_id=13&tabnum=4&tabsub=asm
+http://www.weimrescuetexas.org/spayneut.html
+http://www.weinigusa.com/used/forsalebyothers.htm
+http://www.weinwaysports.com/catalogue.htm
+http://www.weird-wi.com/ghostwatch/apr2001.htm
+http://www.weird-wi.com/occult/hospital.htm
+http://www.weirdlist.com/recent.html
+http://www.weirdness-central.co.uk/forum/topic.asp?TOPIC_ID=9
+http://www.weizmann.ac.il/safety/reg6.html
+http://www.wejustloveit.com/norfolk.htm
+http://www.welchco.com/03/00050/61/99/08/1601.HTM
+http://www.welchwrite.com/dewelch/ce/ce9811.asp
+http://www.welcome-2-europe.com/
+http://www.welcome-2-europe.com/Albania_Science_and_Environment.html
+http://www.welcome-2-europe.com/Czech_Republic_Maps_and_Views.html
+http://www.welcome-2-europe.com/Finland_Business_and_Economy.html
+http://www.welcome-2-europe.com/Ireland_Dublin_Science_and_Environment.html
+http://www.welcome-2-europe.com/Malta_Gozo_Xewkija.html
+http://www.welcome-2-europe.com/Recreation_and_Sports_Boating.html
+http://www.welcome-2-europe.com/United_Kingdom_Health_Organisations.html
+http://www.welcome-2-europe.com/United_Kingdom_Wales.html
+http://www.welcome-2-europe.com/United_Kingdom_Wales_Government.html
+http://www.welcome-2-europe.com/United_Kingdom_Wales_Travel_and_Tourism.html
+http://www.welcome-moldova.com/articles/custom.shtml
+http://www.welcomebusiness.com/articlesDisplay.asp?articleID=33&deptID=4
+http://www.welcomecottages.com/welu?action=xsl&view=xsl&xsltId=allabout
+http://www.welcomemagazine.com/golf_index.htm
+http://www.welcometosalmonarm.com/1_local_sports.shtml
+http://www.welcomeurope.com/default.asp?id=1200
+http://www.welcomeurope.com/default.asp?id=1300
+http://www.welcomewagon.com/HouseHome/Article.aspx?wwpg=frontyard
+http://www.welcomewagon.com/HouseHome/Print.aspx?wwpg=frontyard
+http://www.weldon.org/issues.html
+http://www.welfare.ie/foi/btw_all.html
+http://www.welfarelaw.org/webbul/99feb.htm
+http://www.welfarewatch.toronto.on.ca/promises/paperstories.htm
+http://www.well.com/conf/grapevine.pri/
+http://www.well.com/confteam/hostmanual/section1.html
+http://www.well.com/user/davidu/leakey.html
+http://www.well.com/user/davidu/raven.html
+http://www.well.com/user/neal/
+http://www.well.com/user/sjroby/lostbooks.html
+http://www.well.com/user/smalin/typinwhy.htm
+http://www.well.com/~ajmilne/black_smoker/metabolism.html
+http://www.wellesley.edu/Admission/SAR/programs/manuals/ethics.html
+http://www.wellesley.edu/Courses/english.html
+http://www.wellesley.edu/Courses/russian.html
+http://www.wellesley.edu/Courses/writing.html
+http://www.wellesley.edu/OIS/psa/pfatc.html
+http://www.wellesley.edu/PNE/Events/AIDSConference/AIDSinSAfrica.html
+http://www.wellesley.edu/Polisci/wj/vietlink.html
+http://www.wellesley.edu/PublicAffairs/Commencement/2004/DCWcharge.html
+http://www.wellfleetma.org/Public_Documents/WellfleetMA_BBoard/S006093A4-006093E7
+http://www.wellington-college.berks.sch.uk/intranets/art/aims.htm
+http://www.wellingtonadvertiser.com/
+http://www.wellmark.com/e_business/group/tricare.htm
+http://www.wellness.gatech.edu/information/1_nutrition/8_weight.php
+http://www.wellowner.org/aother/heating.shtml
+http://www.wellsfargo.com/about/history/faqs.jhtml
+http://www.wellsfargo.com/investing/glossary/glossary3.jhtml
+http://www.wellspent.org/Product?p=181014
+http://www.wellspent.org/Product?p=203449
+http://www.wellspringmethodist.org/
+http://www.wellsregister.com/B4Site/conference_track1.asp
+http://www.welltrainedmind.com/sotw3/chapter32.html
+http://www.welovetheiraqiinformationminister.com/
+http://www.welshkatz.com/features/pubdetail.asp?intPubID=152559962000
+http://www.welshleagueofarizona.org/poetry.html
+http://www.welton.net/nana/chicken.html
+http://www.wem.mb.ca/ES17.htm
+http://www.wemaonline.org/ev.mediafair.cfm
+http://www.wemaonline.org/ev.mediafair.cfm?clear
+http://www.wemjournal.org/wmsonline/?request=get-document&issn=1080-6032&volume=012&issue=04&page=0244
+http://www.wemove.org/rett/rett_sym.html
+http://www.wemsi.org/depth.html
+http://www.wen.org.uk/nappies/campaign.htm
+http://www.wendycarlos.com/+wcco.html
+http://www.wendyweiss.com/sales_training_workshops.html
+http://www.wenlin.com/peace.htm
+http://www.weputthecommercein.com/
+http://www.werc.usgs.gov/invasivespecies/pepperweed.html
+http://www.werc.usgs.gov/redwood/restoration.htm
+http://www.wereallneighbours.co.uk/idlechat/message.php?id=1266
+http://www.werkradio.com/featured-artist.php
+http://www.wes-state.com/home_employment.html
+http://www.wes.org/ewenr/01march/feature.htm
+http://www.wes.org/ewenr/01may/practical.htm
+http://www.wes.org/ewenr/02may/Practical.htm
+http://www.wes.org/ewenr/04Jan/CzechRepublic.htm
+http://www.wes.org/ewenr/04March/Feature.htm
+http://www.wes.org/ewenr/05jan/feature.htm
+http://www.wes.org/ewenr/PF/04Jul/PFFeature.htm
+http://www.wesh.com/gardenrebel/2238691/detail.html
+http://www.wesjones.com/pollan2.htm
+http://www.wesleyan.edu/athletics/intramurals/softball_rules.htt
+http://www.wesleyan.edu/writing/workshop-old/departments/sisp.html
+http://www.wesleymission.org.au/publications/impact/
+http://www.wessexwater.co.uk/wsoperationclearflow/index.aspx
+http://www.wessexwater.co.uk/wsoperationclearflow/sub_ocf.aspx?id=205
+http://www.wessexwater.co.uk/wsoperationclearflow/sub_ocf.aspx?id=206
+http://www.wessexwater.co.uk/wsoperationclearflow/sub_ocf.aspx?id=208
+http://www.wessexwater.co.uk/wsoperationclearflow/sub_ocf.aspx?id=210
+http://www.west-ext.com/deathwatch_beetle.html
+http://www.west-linton.org.uk/cycle_routes/
+http://www.west-wind.com/
+http://www.west-wind.com/WebConnection.asp
+http://www.west-wind.com/webconnection.asp
+http://www.west-wind.com/webconnection/
+http://www.west-wind.com/webconnection/default.asp
+http://www.west.asu.edu/academic/acdw/ACDW705.html
+http://www.west.com/customer_contact/dir_response.asp
+http://www.west.com/customer_contact/index.asp
+http://www.west.net/~wwmr/ghstwrit.htm
+http://www.westafricareview.com/vol2.1/mosadomi.html
+http://www.westair-reproductions.com/mappage/hereford.htm
+http://www.westarkchurchofchrist.org/chadwell/church/teaching/y2004q1l5.htm
+http://www.westbradford.org/htmls/Codes/specific_regs.htm
+http://www.westchestermagazine.com/issues/2005_01/coverstory_p02.htm
+http://www.westciv.com/courses/
+http://www.westciv.com/style_master/hands_on_tutorial_sm/09.laying_out.html
+http://www.westciv.com/style_master/hands_on_tutorial_sm_mac/09.laying_out.html
+http://www.westciv.com/style_master/house/tutorials/quick/floated_layout/
+http://www.westcoastaquatic.ca/article_fishfarm_debate1204.htm
+http://www.westcoastassist.com.au/partner-facing_applications.htm
+http://www.westcoastragtime.com/
+http://www.westcoastsearch.com/intervie.htm
+http://www.westcore.com/InvestWithWestcore/invest.jsp
+http://www.westcountrycottages.co.uk/properties/theoldbarn.htm
+http://www.westcountrylinks.co.uk/forsale/caravans.htm
+http://www.wested.org/nhcssp/nhcss01.htm
+http://www.wested.org/pub/docs/625
+http://www.wested.org/stratlit/prodevel/happens.shtml
+http://www.wested.org/techpolicy/refind.html
+http://www.wested.org/wested/pubs/online/PDawards/04descriptions.shtml
+http://www.western-people.com/news/story.asp?j=22186
+http://www.western-saddle-horse-tack-for-sale.com/horse-training-horseshoeing.html
+http://www.westernfirearms.com/
+http://www.westernfront.co.uk/thegreatwar/articles/education/quiz.htm
+http://www.westernfrontonline.com/vnews/display.v/ART/2005/02/01/42002f53c5f2c?template=pda
+http://www.westerngeco.com/content/resources/articles/next_step_tech.asp
+http://www.westernmine.com/westernmine/sherpa2.htm
+http://www.westernpeople.ie/news/story.asp?j=23333
+http://www.westernunion.com/info/aboutUsAffiliate.asp?country=U1
+http://www.westga.edu/~bquest/1997/costof.html
+http://www.westga.edu/~distance/ojdla/fall73/rice73.html
+http://www.westga.edu/~distance/ojdla/summer72/porto72.html
+http://www.westga.edu/~wmaples/daniel.html
+http://www.westga.edu/~wmaples/morris.html
+http://www.westga.edu/~wmaples/rytel_joanna.html
+http://www.westgatehouse.com/rchap17.html
+http://www.westgatehouse.com/rchap7.html
+http://www.westgov.org/wga/initiatives/tpl/sec17.htm
+http://www.westhavenuniv.edu/whu/notices/policy/index.shtml
+http://www.westieclubamerica.com/behavior/alpha.html
+http://www.westinghouse-home.com/support.htm
+http://www.westmarsun.info/Business/014.Business.Sept.2004A.html
+http://www.westmarsun.info/Mailbox/006.Let.April.2004.html
+http://www.westmarsun.info/News/MV.017.Oct.2004B.html
+http://www.westminster-abbey.org/event/lecture/archives/020610_wolffe.htm
+http://www.westminster.gov.uk/communityandliving/registrar/marriage/
+http://www.westminster.gov.uk/transportandstreets/parking/masterpark/electric.cfm
+http://www.westminstercollege.edu/communication_office/index.cfm?parent=1757&content=2652
+http://www.westmont.edu/_prospective_students/pages/financial_aid/applicationProcess.html
+http://www.westmountainradio.com/supportrr.htm
+http://www.westofenglandcockerclub.co.uk/history.htm
+http://www.westol.com/~paufo/bigfoot1.htm
+http://www.westonaprice.org/foodfeatures/honey.html
+http://www.westonaprice.org/traditional_diets/australian_aborigines.html
+http://www.westonlandmark.com/history.htm
+http://www.westonshealth.co.uk/acatalog/
+http://www.westpac.co.nz/olcontent/olcontent.nsf/Content/Online+Banking+Terms+and+Conditions
+http://www.westpalmbeachchurchofchrist.com/
+http://www.westporthistory.com/
+http://www.westseneca.net/bdmin03/mi030310.html
+http://www.westsidegardener.com/guides/pest_management.html
+http://www.westsidegardener.com/quick/timetable.html
+http://www.westunewcomers.org/
+http://www.westvalley.edu/wvc/dl/dl_survey.html
+http://www.westvancouver.com/webcams/beachhousecam/
+http://www.westville.org/
+http://www.westwinddogtraining.com/BSL/bsl.html
+http://www.westwindmassageacademy.com/
+http://www.westword.com/issues/1999-12-23/calhoun.html
+http://www.wetcanvas.com/forums/showthread.php?goto=newpost&t=274768
+http://www.wetdryfilter.com/special_requests.htm
+http://www.wetfeet.com/advice/weblog/archive.asp
+http://www.wethepeoplemedia.org/RJ_Dec01.html
+http://www.wethersfieldct.com/TC/2005jan04r.html
+http://www.wetsand.com/resource.asp?ResourceID=2151
+http://www.wetsuweten.com/wet/gov.htm
+http://www.wetwebmedia.com/ca/cav1i2/by_spencer_glass.htm
+http://www.wetwebmedia.com/crnstrfa.htm
+http://www.wetwebmedia.com/seastarfaq2.htm
+http://www.wetzoollamb.net/jfpp/maria/stories/dustn.html
+http://www.wevh.org.uk/
+http://www.wf-f.org/Sum2K-Anderson.html
+http://www.wfa.org/newsletter/archive/2003/0304_030124/0304_030124.html
+http://www.wfac.org.uk/information/working_in_the_voluntary_sector.shtml
+http://www.wfdesign.com/tc/rtc.htm
+http://www.wfmy.com/news/local_state/local_article.aspx?storyid=35379
+http://www.wfmynews2.com/news/health/health_article.aspx?storyid=42732
+http://www.wfmynews2.com/sports/sports_article.aspx?storyid=35546
+http://www.wfn.org/2002/09/msg00156.html
+http://www.wfo-cbrc.org/cbrc/counties.html
+http://www.wfp.org/newsroom/in_depth/africa/malawi_0209.htm
+http://www.wfs.org/fsrvjan04.htm
+http://www.wfs.org/futupap00.htm
+http://www.wfu.edu/users/barbmj1/pool/
+http://www.wfu.edu/~rollins/piston/offset/
+http://www.wfu.edu/~tacketst/afm.html
+http://www.wfu.org.uk/
+http://www.wga.org/WrittenBy/0900/business.html
+http://www.wga.org/craft/gravlax.html
+http://www.wga.org/negotiations/quotes04.html
+http://www.wgby.org/edu/source/teacher_guide/lessons/impact_valuetime_money.html
+http://www.wgm.org/cms/story/Story.asp?tid=3&did=579
+http://www.wgma.org.uk/articles/west_gallery_music.html
+http://www.wgquirk.com/chap4.html
+http://www.wgresident.com/wg-cover.shtml
+http://www.whale.to/vaccine/wallace/4.html
+http://www.whalingmuseum.org/kendall/fakeshaw/body.html
+http://www.wharram.com/message.shtml
+http://www.wharton.upenn.edu/huntsmanhall/timeline/1965.html
+http://www.whartonjournal.com/news/2002/04/08/News/Career.Services.Top.Concern.In.First.Year.Survey-230061.shtml
+http://www.whatdoiknow.org/
+http://www.whateverhq.com/
+http://www.whateverpictures.com/shorts/orgasm.html
+http://www.whateverremains.com/
+http://www.whatissubud.net/whatissubud/about_bapak.html
+http://www.whatissubud.net/whatissubud/organisation.html
+http://www.whatisthis.com/archives/2005/05/index.php
+http://www.whatnextjournal.co.uk/Pages/History/Gibbons.html
+http://www.whatreallyhappened.com/ARTICLE1/overlooked.html
+http://www.whatreallyhappened.com/ARTICLE2/doodoo.html
+http://www.whatreallyhappened.com/ARTICLE5/
+http://www.whatreallyhappened.com/McCollum/
+http://www.whatreallyhappened.com/hundreds.html
+http://www.whatreallyhappened.com/iwasthere.html
+http://www.whatreallyhappened.com/paypal.html
+http://www.whatsup.com/experiment/
+http://www.whcoa.gov/about/whcoa_events.asp
+http://www.whcoa.gov/about/whcoa_events_pf.asp
+http://www.wheatlandfirerescue.com/index_files/Page1457.html
+http://www.wheelchairnet.org/WCN_Living/Docs/idea.html
+http://www.wheelchairnet.org/WCN_ProdServ/Products/adldev.html
+http://www.wheels24.co.za/Wheels24/NewModels/0,,1369-1374_1585663,00.html
+http://www.wheels24.co.za/Wheels24/Stay_alive/0,7427,1369-1617_1629457,00.html
+http://www.where-to-stay.co.uk/hotels/ah/birmingham-thistle-hotel-birmingham-city.html
+http://www.where-to-stay.co.uk/hotels/ah/brighton-sea-spray.html
+http://www.where-to-stay.co.uk/hotels/ah/cork-quality-hotel-&-leisure-centre-cork.html
+http://www.where-to-stay.co.uk/hotels/ah/glasgow-%5Bcity-south%5D-corus-hotel-glasgow.html
+http://www.where-to-stay.co.uk/hotels/ah/glasgow-%5Bcity-south%5D-quality-hotel-glasgow.html
+http://www.where-to-stay.co.uk/hotels/ah/great-barr-quality-hotel-birmingham-great-barr.html
+http://www.where-to-stay.co.uk/hotels/ah/horwich-de-vere-whites-hotel.html
+http://www.where-to-stay.co.uk/hotels/ah/pearse-street-trinity-capital-hotel.html
+http://www.where-to-stay.co.uk/hotels/ah/perth-new-county-hotel.html
+http://www.where-to-stay.co.uk/hotels/ah/rusholme-victoria-park-hotel.html
+http://www.where-to-stay.co.uk/hotels/ah/temple-bar-temple-bar-hotel.html
+http://www.where.ca/CanadianRockies/category_hottip.cfm?category_id=6
+http://www.where.ca/canadianrockies/category_hottip.cfm?category_id=6
+http://www.whereedmonton.com/DrivingTours/8-91.html
+http://www.whfoods.com/genpage.php?pfriendly=1&tname=diet&dbid=11
+http://www.whfoods.com/genpage.php?tname=diet&dbid=11
+http://www.whfoods.com/genpage.php?tname=diet&dbid=3
+http://www.whfoods.com/genpage.php?tname=diet&dbid=7
+http://www.whfoods.com/genpage.php?tname=george&dbid=59
+http://www.whfoods.com/genpage.php?tname=george&dbid=66
+http://www.whfreeman.com/generalreaders/book.asp?disc=&id_product=1149000075&compType=EXCER
+http://www.whhs.com/services/joint/Minimally+Invasive+Total+Knee+Replacement+Surgery.htm
+http://www.whhs.com/services/joint/replacement.htm
+http://www.whidbeygen.com/employ/servsupjobs.htm
+http://www.whileheavenwept.net/tour.htm
+http://www.whiotv.com/station/1916472/detail.html
+http://www.whiskeycreekpress.com/chapters/BrokenPromises_NancyAnnRose.shtml
+http://www.whiskeycreekpress.com/chapters/NothingLessThanLove_JanetMills.shtml
+http://www.whistling.com/about.html
+http://www.whitaker.org/sanders.html
+http://www.whitbyhs.cheshire.sch.uk/expupils/1960s.htm
+http://www.whitchurchcardiff.co.uk/discussHistory.htm
+http://www.whitedot.org/issue/iss_story.asp?slug=privacyattheyaleclub
+http://www.whiteestate.org/issues/last4books_2.html
+http://www.whitehorse.vic.gov.au/roadsafety.asp
+http://www.whitehouse.gov/OMB/legislative/sap/106-2/S2796-s.html
+http://www.whitehouse.gov/news/releases/2003/02/20030207-10.html
+http://www.whitehouse.gov/news/releases/2003/09/20030904-4.html
+http://www.whitehouse.gov/news/releases/2004/02/20040204-9.html
+http://www.whitehouse.gov/news/releases/2004/08/20040806-15.html
+http://www.whitehouse.gov/news/releases/2004/12/20041226.html
+http://www.whitehouse.gov/omb/budget/fy2004/defense.html
+http://www.whitehouse.gov/omb/circulars/a076/fair2000guide.html
+http://www.whitehouse.gov/omb/circulars/a131/a131.html
+http://www.whitehouse.gov/results/leadership/bush-card-200401-transcript.html
+http://www.whitehouse.gov/stateoftheunion/2005/
+http://www.whitehouse.org/firstlady/enron-crafts.asp
+http://www.whitehousedrugpolicy.gov/national_assembly/conference_proceed/session3.html
+http://www.whitehousehistory.org/04/subs/04_feature_b.html
+http://www.whitehousehistory.org/04/subs/activities_03/c02_13.html
+http://www.whitehousehistory.org/05/subs/05_b06.html
+http://www.whitemark.com/services.php
+http://www.whitemoving.com/access.htm
+http://www.whiteninjacomics.com/archive-news.shtml
+http://www.whitepinepictures.com/seeds/iii/32/history2.html
+http://www.whiterose.org/pete/blog/archives/004477.html
+http://www.whitestag.org/follow/sb102.htm
+http://www.whitetails.com/story39.html
+http://www.whiteville.tec.tn.us/financia.htm
+http://www.whitewms.com/FSL5CS/our%20offices/our%20offices13.asp
+http://www.whitfieldassembly.org/standing_for_truth.htm
+http://www.whitlam.org/its_time/2/Weary.html
+http://www.whitlam.org/its_time/20/volunteering.html
+http://www.whitlam.org/its_time/23/markham.html
+http://www.whitnall.com/district/employment.htm
+http://www.whitneybank.com/about/specials.check21.asp
+http://www.whittingtonpress.com/
+http://www.who.int/csr/disease/avian_influenza/avian_faqs/en/
+http://www.who.int/csr/sars/2003_03_25/en/
+http://www.who.int/csr/sars/archive/2003_05_19/en/
+http://www.who.int/dg/lee/speeches/2005/eb115_speech/en/
+http://www.who.int/entity/3by5/mediacentre/audio/en/
+http://www.who.int/entity/csr/disease/avian_influenza/avian_faqs/en/
+http://www.who.int/entity/hac/crises/idn/sitreps/2005/earthquake_08/en/
+http://www.who.int/entity/hac/events/tsunamiconf/final_presentation/en/
+http://www.who.int/entity/mediacentre/factsheets/fs225/en/
+http://www.who.int/entity/mediacentre/news/releases/2005/pr08/en/
+http://www.who.int/entity/mediacentre/news/releases/2005/pr25/en/
+http://www.who.int/foodsafety/publications/biotech/20questions/en/
+http://www.who.int/hpr/gs.press.release.shtml
+http://www.who.int/malaria
+http://www.who.int/mediacentre/news/releases/2004/pr74/en/
+http://www.who.int/mediacentre/news/releases/2004/pr83/en/
+http://www.who.int/mediacentre/releases/2003/pr20/en/
+http://www.who.int/mediacentre/releases/2003/pr27/en/
+http://www.who.int/medicines/organization/par/edl/trs/trs895.shtml
+http://www.who.int/ncd/vision2020_actionplan/documents/irc.htm
+http://www.who.int/reproductive-health/adolescent/annotated_bibliography/
+http://www.who.int/reproductive-health/hrp/SERG_TOR.en.html
+http://www.who.int/reproductive-health/impac/Clinical_Principles/Clinical_use_blood_C23_C33.html
+http://www.who.int/reproductive-health/publications/RHR_01_22/RHR_01_22_chap2.en.html
+http://www.who.int/reproductive-health/publications/msm_94_2/msm_94_2_5.html
+http://www.who.int/water_sanitation_health/hygiene/envsan/sanitchallenge/en/index2.html
+http://www.who.int/whr/2003/chapter7/en/index7.html
+http://www.whoi.edu/administration/dirres/funding/whoi_funding/Indep_Inter/ind_award_2002.html
+http://www.whoi.edu/science/PO/people/jprice/
+http://www.wholefoods.com/company/pr_02-01-05.html
+http://www.wholefoods.com/healthinfo/healthyheart.html
+http://www.wholehealtheducation.com/clinical/study.shtml
+http://www.wholehealthmd.com/print/view/1,1560,SU_10152,00.html
+http://www.wholehealthmd.com/refshelf/substances_view/1,1525,10152,00.html
+http://www.wholeheart.org/privacy.asp
+http://www.wholenote.com/fretbuzz/fbmsg.asp?i=326116&n=Instructional&t=5&th=326116
+http://www.wholesomewords.org/biography/bbunyan5.html
+http://www.wholesomewords.org/biography/bsundayma.html
+http://www.wholewheatradio.org/jbb/weblog.php?id=C0_2_1
+http://www.wholistichealingresearch.com/Articles/EnergyMed4Internist.htm
+http://www.whom.co.uk/jgf/jgf09.htm
+http://www.whonamedit.com/doctor.cfm/442.html
+http://www.whonamedit.com/doctor.cfm/871.html
+http://www.whoslying.org/index.php?option=content&task=view&id=176&Itemid=2
+http://www.whoslying.org/index.php?option=content&task=view&id=587
+http://www.whoslying.org/index2.php?option=content&task=view&id=587&pop=1&page=0
+http://www.whosoever.org/v3i1/piazza.html
+http://www.whowritesit.com/search/results.asp?qt=carrier&t=annuities&c=ImmediateAnn
+http://www.whptv.com/guides/parenting/story.aspx?content_id=DB6B88ED-2632-434F-8B4F-4838AF92F552
+http://www.whptv.com/sports/nfl/story.aspx?content_id=2F2B3CEA-0487-4A96-AC20-90EA6319F688
+http://www.whrc.org/carbon/
+http://www.whsc.on.ca/hazardmodules/heat&coldstress.html
+http://www.why-war.com/news/2004/10/04/ublsbiog.html
+http://www.whyaretheydead.net/krasel/aff_kates.html
+http://www.whyaretheydead.net/krasel/books/evans/sea.html
+http://www.whybiotech.com/index.asp?id=3638
+http://www.whycycle.co.uk/bbs/read.php?f=1&i=1951&t=1947
+http://www.whyy.org/91FM/ybyg/birds.html
+http://www.whyy.org/91FM/ybyg/soiltests2.html
+http://www.wi-fi.bz/wisp-providers.html
+http://www.wi-fiplanet.com/columns/article.php/1013361
+http://www.wi-fiplanet.com/news/article.php/3411061
+http://www.wi.mit.edu/news/archives/2005/cpa_0622.html
+http://www.wiannosenior.org/scudder.htm
+http://www.wic.org/misc/history.htm
+http://www.wiccauk.com/book-0007117868.php
+http://www.wiccauk.com/forums/showthread.php?t=12931
+http://www.wiccauk.com/forums/showthread.php?t=12931&page=1
+http://www.wiche.edu/MentalHealth/northland/topics.asp
+http://www.wichergardeninn.com/room-pics.html
+http://www.wichitagov.org/CityOffices/MunicipalCourt/Rules/Rule11.htm
+http://www.wickedtalent.com/menu.php?page=start
+http://www.wide-formatimaging.com/pages/issues/1998/97-06/cover.html
+http://www.widecombe-in-the-moor.com/wid_fair/widecombe_fair.htm
+http://www.wideeyedlearning.com/faqs.html
+http://www.widemouthmason.com/
+http://www.widerquist.com/karl/AIS.htm
+http://www.widowsrights.org/ctuespm.htm
+http://www.wifizonenews.com/publications/page207-1348229.asp
+http://www.wiganlatics.premiumtv.co.uk/page/UsefulInformation/0,,10429,00.html
+http://www.wiganmbc.gov.uk/pub/partnership/township/terms-of-ref.htm
+http://www.wiggin.com/pubs/alerts_template.asp?ID=737167212000
+http://www.wiggin.com/pubs/scupdate_template.asp?ID=11927712003
+http://www.wigglesntunes.com/ab_testimonials.html
+http://www.wigrum.com/15_pass_vans.html
+http://www.wigs4you.com/wig_advice.htm
+http://www.wiko-berlin.de/kolleg/wiko/wikostruktur/satzwisskolleg?hpl=2
+http://www.wilayah.ir/en/istifta/new.php
+http://www.wilbers.com/grants.htm
+http://www.wild-max.com/datingwild/howtoprofile.php
+http://www.wildaboutcats.org/regs.htm
+http://www.wildbell.com/0306.html
+http://www.wildbell.com/0528.html
+http://www.wildcalifornia.org/pages/page-171
+http://www.wildcalifornia.org/pages/page-51
+http://www.wildcat-www.de/en/zirkular/48/z48e_35h.htm
+http://www.wildcru.org/links/hwangelions/hwange_files/Page1364.htm
+http://www.wildeones.com/
+http://www.wilderdom.com/games/EnvironmentalActivities.html
+http://www.wildernessclassroom.com/www/jiime/index.shtm
+http://www.wildernessrhythms.com/article.html
+http://www.wildernessstudio.com/PortraitureInfo.html
+http://www.wildernesswatch.org/what%20is/steward.html
+http://www.wildfirenews.com/
+http://www.wildfirenews.com/fire/articles/fwx.html
+http://www.wildflowerwalks.co.nz/wildflowerwalks/oldmanrange.html
+http://www.wildfrontier.org/authority.htm
+http://www.wildideabuffalo.com/testimonials.html
+http://www.wildlandfire.com/docs/wlfterms.htm
+http://www.wildlandssouth.com/skills/seer.html
+http://www.wildlife-gardening.org.uk/default.asp?ftr=Features%5Czza%20principles.xml&full=true
+http://www.wildlife.state.nh.us/Hunting/Hunt_species/hunt_deer.htm
+http://www.wildlife.state.nh.us/Hunting/Hunt_species/turkey_hunt_survey_2002.htm
+http://www.wildlife.state.nh.us/Newsroom/newsroom.htm
+http://www.wildlife.utah.gov/uplandgame/walk-in_minutes/mins030701.htm
+http://www.wildlife.utah.gov/uplandgame/walk-in_minutes/mins501.htm
+http://www.wildlifebcnp.org/northants-bap/Open%20Standing%20Water.htm
+http://www.wildlifecrossings.info/glossaryg-l.htm
+http://www.wildlifedamagecontrol.com/used/videos.htm
+http://www.wildlifeinformation.org/Subdirectories_for_Search2/SampleTechs/FMDCarcass_Bury_Technique.htm
+http://www.wildlifeinformation.org/Subdirectories_for_Search2/sampleel/standards_of_zoo_practice/Appendix10.htm
+http://www.wildmanharrold.com/labor_library/FMLA.htm
+http://www.wildmed.com/international/georgia_villaflor.html
+http://www.wildnj.com/ld14.htm
+http://www.wildrockiesalliance.org/issues/wolves/articles/neverenough.html
+http://www.wildroots.org/
+http://www.wildsalmon.org/library/lib-detail.cfm?docID=54
+http://www.wildtracks.cihost.com/homewire/wg_ideas.html
+http://www.wildweather.com/news/news-archive-august.htm
+http://www.wildwoodmaples.com/pages/bark.html
+http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471460613,descCd-description.html?print=true
+http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471460613.html
+http://www.wilkie-collins.com/man-and-wife/book-page-53.asp
+http://www.willamette.edu/mat/students/handbook/
+http://www.willamette.edu/~oic/mexico.html
+http://www.willapadawn.org/bizlinks.htm
+http://www.willard.k12.mo.us/co/tech/new.htm
+http://www.willco.com/customers/
+http://www.willcountyillinois.com/human/eeostatement.htm
+http://www.william-shakespeare.info/william-shakespeare-biography-childhood-and-education.htm
+http://www.williamandrew.com/books.asp?id=89112121
+http://www.williambowles.info/ini/ini-0294.html
+http://www.williambowles.info/poems/writing/peonies_8.html
+http://www.williamgibsonbooks.com/blog/2004_10_01_archive.asp
+http://www.williamjames.com/Folklore/FIREWALK.htm
+http://www.williamkent.com/
+http://www.williamlashner.com/pulp/frisco_ho.asp
+http://www.williamluse.com/apologia/
+http://www.williammichaelian.com/book1/chapter1.html
+http://www.williammichaelian.com/book1/chapter2.html
+http://www.williammichaelian.com/book1/chapter3.html
+http://www.williammichaelian.com/stories/story12.html
+http://www.williampolley.com/blog/archives/2005/05/
+http://www.williamradice.com/Notes/foreword_to_paul_fleischman.htm
+http://www.williamrice.com/content/view/17/32
+http://www.williamrice.com/content/view/17/32/
+http://www.williams.edu/dean/oxford/academics-frame.htm
+http://www.williams.edu/wpehe/abstracts.html
+http://www.williamscottproperties.com/founder.html
+http://www.williamsmith.org/bonanzadeathwalked.html
+http://www.williamsutton.org.uk/energy.asp
+http://www.williecrawford.com/
+http://www.willisms.com/archives/2005/05/reform_thursday_16.html
+http://www.willitsell.com/mfgcost.htm
+http://www.willkeim.com/odyssey.html
+http://www.willseye.org/eye_diseases/symptoms_def.html
+http://www.willthomas.net/Convergence/Weekly/Leaving_America.htm
+http://www.wilmingtonblues.com/num_19/41_pssaturday.html
+http://www.wilmott.com/messageview.cfm?catid=10&threadid=28559&STARTPAGE=5
+http://www.wilmott.com/messageview.cfm?catid=11&threadid=7878
+http://www.wilson-nesbitt.co.uk/business5.htm
+http://www.wilson.edu/president/spc_all/spc_covenant.htm
+http://www.wilsonjo.demon.co.uk/haggis.htm
+http://www.wilsonmar.com/1projx.htm
+http://www.wilstea.com/ceylon.htm
+http://www.wilstea.com/stats.htm
+http://www.wilstea.com/teamanufacture.htm
+http://www.wilwheaton.net/index.php
+http://www.wilwheaton.net/mt/archives/000794.php
+http://www.wilwheaton.net/mt/archives/001550.php
+http://www.wilwheaton.net/mt/archives/001572.php
+http://www.wilwheaton.net/mt/archives/2003_09.php
+http://www.wimaxforum.org/tech
+http://www.wimbish.org.uk/business-listing.htm
+http://www.wimbledon.org/en_GB/news/interviews/2005-06-21/200506211119379747376.html
+http://www.wimra.org/cronin.htm
+http://www.win-magazine.com/active/archives/v11i8%20stuff/ABBOTT%20COL.html
+http://www.win-with-lynne.co.uk/
+http://www.win.tue.nl/cs/fm/engels/frc/
+http://www.win2000mag.com/Articles/Index.cfm?ArticleID=15722
+http://www.win4lin.com/phpBB2/viewtopic.php?p=9612&
+http://www.wincom.net/trog/diary/2003_profinale.html
+http://www.wind-works.org/articles/Overview.html
+http://www.wind-works.org/articles/USW01.html
+http://www.windbercare.com/planetree.html
+http://www.windermere.com/index.cfm?fuseaction=about.ContentFile&pg=WREAgentRepresentwyoming
+http://www.windfallrafting.com/experience/vacation-profiles.php
+http://www.windley.com/archives/2005/01/index.shtml
+http://www.windley.com/archives/2005/06/dont_send_word.shtml
+http://www.windmill.co.uk/monitor33.html
+http://www.windmillworld.com/windmills/industrial.htm
+http://www.windom-mn.com/newslettermarch2002.html
+http://www.window.state.tx.us/comptrol/fnotes/fn0106/fna.html
+http://www.window.state.tx.us/comptrol/fnotes/fn0111/keeping.html
+http://www.window.state.tx.us/etexas2001/recommend/ch00/intro.html
+http://www.window.state.tx.us/specialrpt/ctrma05/chptr4.html
+http://www.window.state.tx.us/specialrpt/hcc2003/section3/3study.html
+http://www.window.state.tx.us/specialrpt/homeeqty03/
+http://www.window.state.tx.us/taxinfo/audit/salestax/1e.htm
+http://www.window.state.tx.us/taxinfo/proptax/stmt/stmt0407/stmt0407_6.html
+http://www.window.state.tx.us/tspr/glenrose/ch04a.htm
+http://www.window.state.tx.us/tspr/sanangelo/ch07a.htm
+http://www.windows-experience.com/wip/articles/data/9311110192004.htm
+http://www.windowsdevcenter.com/pub/a/windows/2005/03/15/podcasting_pc.html
+http://www.windowsecurity.com/articles/Authorization-Manager-Role-Based-Administration-Windows-Server-2003-Part2.html
+http://www.windowsecurity.com/articles/What_You_Need_to_Know_About_Intrusion_Detection_Systems.html
+http://www.windowsecurity.com/articles/Why_is_a_firewall_alone_not_enough_What_are_IDSes_and_why_are_they_worth_having.html
+http://www.windowsitlibrary.com/Content/852/03/1.html
+http://www.windowsitpro.com/Windows/Article/ArticleID/21521/21521.html
+http://www.windowsitpro.com/Windows/Article/ArticleID/2859/2859.html
+http://www.windowsitpro.com/Windows/Article/ArticleID/4875/4875.html
+http://www.windowsitpro.com/Windows/Article/ArticleID/7077/7077.html
+http://www.windowsitpro.com/windowspaulthurrott/Article/ArticleID/46477/windowspaulthurrott_46477.html
+http://www.windowsmarketplace.com/prices.aspx?ItemId=2947
+http://www.windowsmarketplace.com/results.aspx?bcatid=271&minPrice=90&maxPrice=139
+http://www.windowsmarketplace.com/track/TrackResultClick.aspx?u=prices.aspx&p=0:0:4:515:779524:S:567:560:3:66:560:-1:-1:100:-1:1:7:-1:-1&stext=
+http://www.windowsnetworking.com/articles_tutorials/Beating-Summer-Heat.html
+http://www.windowsnetworking.com/articles_tutorials/Introduction-Wireless-Networking-Part3.html
+http://www.windowworldinc.com/products/energy_saving.shtml
+http://www.windpower-monthly.com/dec99/leader.htm
+http://www.windpower-monthly.com/feb03/abs.htm
+http://www.windridgeinternational.com/Assessment.htm
+http://www.windsofchange.net/archives/003071.php
+http://www.windsofchange.net/archives/005250.php
+http://www.windsofchange.net/archives/006694.php
+http://www.windsofchange.net/archives/006986.php
+http://www.windsofchange.net/archives/007004.php
+http://www.windsofchange.net/archives/007034.php
+http://www.windsofchange.net/archives/2002_04_14_woc.html
+http://www.windspeed.co.uk/ws/index.php/option=displaypage/Itemid=81/op=page/SubMenu=
+http://www.windspeed.co.uk/ws/index.php/option=displaypage/op=page/Itemid=81
+http://www.windsurfingsports.com/lessons.html
+http://www.windustry.com/basics/01-introduction.htm
+http://www.windweaver.com/nospam.htm
+http://www.windweaver.com/w95man3c.htm
+http://www.windycitymediagroup.com/gay/lesbian/news/ARTICLE.php?AID=6480
+http://www.windycitymediagroup.com/gay/lesbian/news/ARTICLE.php?AID=8665
+http://www.wine.telegraph.co.uk/wine/main.jhtml?xml=/wine/2005/02/05/edready03.xml&sSheet=/wine/2005/02/05/ixedfeatures.html
+http://www.winebusiness.com/specialsection/2005/top30uswinecompanies.cfm
+http://www.wineinstitute.org/communications/statistics/harvest2004.htm
+http://www.wineloverspage.com/natdecants/cider.phtml
+http://www.winemonthclub.com/newsletters/vol2no3.htm
+http://www.winemonthclub.com/testimonialswine.htm
+http://www.winentrance.com/cds2005.htm
+http://www.wineofthemonth.co.za/pages/best_value.jsp
+http://www.winepage.de/vintages.html
+http://www.winesenz.co.nz/archive.php3?grape_type=20
+http://www.wingchun.com.au/diploma.shtml
+http://www.wingkong.net/stories/story10.htm
+http://www.wingspress.com/Titles/hook.html
+http://www.wininsider.com/news/?6663
+http://www.wininsider.com/news/?7713
+http://www.wink.ssxh.net/archives/000160.html
+http://www.winktv.com/x11558.xml
+http://www.winmill.com/Principles.cfm
+http://www.winnersedgeonline.com/shawn-york.html
+http://www.winnetmag.com/Article/ArticleID/24208/24208.html
+http://www.winnetmag.com/Article/ArticleID/25194/25194.html
+http://www.winnetmag.com/Article/ArticleID/26472/26472.html
+http://www.winnetmag.com/Articles/Print.cfm?ArticleID=42787
+http://www.winnetmag.com/Windows/Article/ArticleID/22487/22487.html
+http://www.winnetmag.com/Windows/Article/ArticleID/26472/26472.html
+http://www.winnetmag.com/WindowsSecurity/Article/ArticleID/26472/WindowsSecurity_26472.html
+http://www.winnfelinehealth.org/health/rhinotracheitis.html
+http://www.winning-moves.com/affiliates/
+http://www.winning-resumes.com/winning_resume.htm
+http://www.winningwriters.com/warningsigns.htm
+http://www.winnipegfreepress.com/westview/story/2610442p-3026695c.html
+http://www.winonadailynews.com/articles/2005/06/05/news/00lead.txt
+http://www.winplanet.com/article/1640-3540.htm
+http://www.winplanet.com/article/2497-.htm
+http://www.winrosevet.com/Pet_Loss_PetGrief1.htm
+http://www.wins-news.com/zoning_watch/
+http://www.winsportinggoods.com/rules.php3
+http://www.winstonbrill.com/bril001/html/article_index/articles/351-400/article356_body.html
+http://www.winstonbrill.com/bril001/html/article_index/articles/401-450/article414_body.html
+http://www.winstonbrill.com/bril001/html/article_index/articles/501-550/article532_body.html
+http://www.winstonchurchill.org/i4a/pages/index.cfm?pageid=146
+http://www.winstonchurchill.org/i4a/pages/index.cfm?pageid=168
+http://www.winstonchurchill.org/i4a/pages/index.cfm?pageid=364
+http://www.winstonchurchill.org/i4a/pages/index.cfm?pageid=53
+http://www.winstonchurchill.org/i4a/pages/index.cfm?pageid=611
+http://www.winstonchurchill.org/i4a/pages/index.cfm?pageid=635
+http://www.winstonchurchill.org/i4a/pages/index.cfm?pageid=678
+http://www.winstonchurchilltennis.ca/teams.htm
+http://www.winstructor.com/videos/server2003/creating_user_accounts_automation.htm
+http://www.winsupersite.com/reviews/longhorn_4051_01_intro.asp
+http://www.winsupersite.com/reviews/longhorn_4051_04_ue.asp
+http://www.winsupersite.com/showcase/ie_no_more2.asp
+http://www.winterwar.com/Battles/Suomussalmi2.htm
+http://www.winthrop.edu/wcenter/handoutsandlinks/rogerian.htm
+http://www.winticket.com/newsletters/101803_news.htm
+http://www.winxpnews.com/index.cfm?id=158
+http://www.wipo.org/about-ip/en/studies/publications/genetic_resources.htm
+http://www.wipo.org/academy/en/courses/professional_training/
+http://www.wipo.org/documents/en/document/govbody/wo_gb_cc/cc45_1.htm
+http://www.wipo.org/treaties/en/classification/nice/trtdocs_wo019.html
+http://www.wipo.org/wilma/pressinfo-en/200405/msg00008.html
+http://www.wipphone.com/terms.aspx
+http://www.wiprogram.org/journals01/sloan01/shell.html
+http://www.wired.com/news/conflict/0,2100,58346,00.html
+http://www.wired.com/news/culture/0,1284,55446,00.html
+http://www.wired.com/news/culture/0,1284,62808,00.html?tw=wn_story_related
+http://www.wired.com/news/culture/0,1284,63733,00.html
+http://www.wired.com/news/culture/0,1284,63733,00.html?tw=newsletter_topstories_html
+http://www.wired.com/news/culture/0,1284,65365,00.html
+http://www.wired.com/news/culture/0,1284,65688,00.html
+http://www.wired.com/news/culture/0,1284,67869,00.html
+http://www.wired.com/news/digiwood/0,1412,44183,00.html?tw=wn_story_related
+http://www.wired.com/news/evote/0,2645,65535,00.html
+http://www.wired.com/news/games/0,2101,63415,00.html
+http://www.wired.com/news/games/0,2101,63415,00.html?tw=wn_story_related
+http://www.wired.com/news/games/0,2101,65052,00.html?tw=wn_tophead_3
+http://www.wired.com/news/gizmos/0,1452,62810,00.html
+http://www.wired.com/news/infostructure/0,1377,57753,00.html
+http://www.wired.com/news/infostructure/0,1377,61257,00.html
+http://www.wired.com/news/infostructure/0,1377,62251,00.html
+http://www.wired.com/news/infostructure/0,1377,64075,00.html
+http://www.wired.com/news/mac/0,2125,64614,00.html
+http://www.wired.com/news/mac/0,2125,64614,00.html?tw=wn_story_page_prev2
+http://www.wired.com/news/medtech/0,1286,61342,00.html?tw=wn_story_related
+http://www.wired.com/news/planet/0,2782,67075,00.html
+http://www.wired.com/news/print/0,1294,64492,00.html
+http://www.wired.com/news/print/0,1294,66259,00.html
+http://www.wired.com/news/print/0,1294,67988,00.html
+http://www.wired.com/news/privacy/0,1848,57404,00.html
+http://www.wired.com/news/technology/0,1282,12425,00.html
+http://www.wired.com/news/technology/0,1282,52851,00.html?tw=wn_story_related
+http://www.wired.com/news/technology/0,1282,59093,00.html
+http://www.wired.com/news/technology/0,1282,59093,00.html?tw=wn_story_related
+http://www.wired.com/news/technology/0,1282,59873,00.html
+http://www.wired.com/news/technology/0,1282,63066,00.html?tw=wn_story_related
+http://www.wired.com/news/technology/0,1282,63613,00.html?tw=wn_story_related
+http://www.wired.com/news/technology/0,1282,64194,00.html
+http://www.wired.com/news/technology/0,1282,65668,00.html
+http://www.wired.com/news/wireless/0,1382,58011,00.html
+http://www.wired.com/wired/archive/10.07/nixon.html
+http://www.wired.com/wired/archive/10.09/vision_pr.html
+http://www.wired.com/wired/archive/10.10/kidporn.html
+http://www.wired.com/wired/archive/10.10/wireless.html
+http://www.wired.com/wired/archive/10.10/wireless.html?pg=1
+http://www.wired.com/wired/archive/10.12/holytech.html
+http://www.wired.com/wired/archive/11.04/hydrogen.html
+http://www.wired.com/wired/archive/11.08/pwr_antigravity.html
+http://www.wired.com/wired/archive/12.06/view_pr.html
+http://www.wired.com/wired/archive/12.09/warroom.html
+http://www.wired.com/wired/archive/12.10/tail_pr.html
+http://www.wired.com/wired/archive/2.08/streetcred.html?pg=10
+http://www.wired.com/wired/archive/2.12/linklater.html
+http://www.wired.com/wired/archive/3.04/pear.html
+http://www.wired.com/wired/archive/3.10/updata.html
+http://www.wired.com/wired/archive/6.10/tesla.html
+http://www.wired.com/wired/archive/6.11/coldfusion.html
+http://www.wired.com/wired/archive/7.12/struve.html
+http://www.wired.com/wired/archive/8.01/solar.html
+http://www.wired.com/wired/archive/8.01/teleport.html?pg=3
+http://www.wired.com/wired/archive/8.04/joy.html
+http://www.wired.com/wired/archive/8.06/newmoney.html
+http://www.wired.com/wired/archive/8.08/mustread.html?pg=7
+http://www.wired.com/wired/archive/9.07/moon.html
+http://www.wired.com/wired/archive/9.08/mustread.html?pg=7
+http://www.wired.com/wired/archive/9.10/google.html
+http://www.wiredguide.com/justforfun.htm
+http://www.wiredmoon.com/casestudies_sw/
+http://www.wirednewyork.com/forum/archive/index.php?t-3625.html
+http://www.wireless--lan.com/jobs_and_employment.html
+http://www.wireless-doc.com/BKMDblog/2003_12_27_bkmd_archive.html
+http://www.wirelessadvisor.com/waforums/messageview.cfm?catid=21&threadid=38705
+http://www.wirelessadvisor.com/waforums/messageview.cfm?catid=21&threadid=38705&STARTPAGE=1
+http://www.wirelessgeneva.com/pages/display.asp?article_section=mobiledata&file_name=Feat_10.XML
+http://www.wirelessweek.com/article/CA510490.html?text=lowenstein&stt=001
+http://www.wireviews.com/lyrics/one_of_our_girls.html
+http://www.wiringfordcc.com/garden.htm
+http://www.wirral.gov.uk/ed/youth_service.htm
+http://www.wirz.de/music/booker.htm
+http://www.wisa.org.uk/cgi/l/articles/index.cgi?action=show&id=444
+http://www.wisbech-standard.co.uk/
+http://www.wisc.edu/chicanastudies/course-list.html
+http://www.wisc.edu/uwcc/info/iowa.html
+http://www.wischik.com/lu/massage/ljwinstruct.html
+http://www.wischik.com/marcus/essay/med2.html
+http://www.wisconline.com/cgi-bin/find.pl?t=dat&date=2005-03-21
+http://www.wisconsin-mortgage-loan.net/
+http://www.wisconsinhistory.org/genealogy/ogrs/terms.asp
+http://www.wisconsinhistory.org/teachers/lessons/secondary/abolitionist.asp
+http://www.wisconsinhistory.org/wmh/articles/carstensen.asp
+http://www.wisconsinhistory.org/wmh/articles/cartensen.asp
+http://www.wisconsinite.net/dairyconspiracyarchives/000378.html
+http://www.wisconsinpublicservice.com/business/bsa_01.asp
+http://www.wisctowns.com/what_is_a_town.html
+http://www.wisd.us/departments/districtlibraryservices/isl.html
+http://www.wisdomquotes.com/cat_winning.html
+http://www.wise-women.org/features/nathalie_lachance/
+http://www.wise.com/press.asp?PressID=70
+http://www.wisemans.com.au/index.cfm/p/packages
+http://www.wisemenpromotions.com/News%20and%20updates/weapons.htm
+http://www.wisha.org/conf_workshop.php
+http://www.wishard.edu/internet/polyheme.htm
+http://www.wishduck.com/releases/infintyplus.html
+http://www.wisinfo.com/elections/ele_14576155.shtml
+http://www.wisn.com/
+http://www.wistv.com/Global/story.asp?S=2714032&nav=0RaSFtgC
+http://www.witchvox.com/
+http://www.witchvox.com/passages/farrar02.html
+http://www.witchvox.com/qotw/qwp_detail.html?id=42
+http://www.witchvox.com/qotw/qwp_detail.html?offset=0&id=42
+http://www.witchvox.com/white/w_ccl_federal.html
+http://www.withknobson.com/acatalog/Prime_beech_worktops.html
+http://www.witi.com/center/regionalchapter/
+http://www.wiu.edu/users/mfb100/evolution.htm
+http://www.wizardofodds.com/baccarat
+http://www.wizardofodds.com/baccarat/
+http://www.wizards.com/default.asp?x=ah/article/ah20040428a
+http://www.wizards.com/default.asp?x=books/dl/riseistar
+http://www.wizards.com/default.asp?x=d20modern/article/20020723a
+http://www.wizards.com/default.asp?x=dnd/ebug/20050110a
+http://www.wizards.com/default.asp?x=gijoetcg/article/decksbudget1
+http://www.wizards.com/default.asp?x=judge/article/20050330a
+http://www.wizards.com/default.asp?x=magic/magiconline/playcheap02
+http://www.wizards.com/default.asp?x=mtgcom/daily/as30
+http://www.wizards.com/default.asp?x=mtgcom/daily/rh71
+http://www.wizards.com/default.asp?x=mtgcom/daily/rh71,,de
+http://www.wizards.com/default.asp?x=mtgcom/daily/rh71,,fr
+http://www.wizards.com/default.asp?x=mtgcom/daily/sw18
+http://www.wizards.com/default.asp?x=mtgcom/daily/sw2
+http://www.wizards.com/default.asp?x=mtgcom/daily/sw36
+http://www.wizards.com/default.asp?x=mtgcom/daily/sw69
+http://www.wizards.com/default.asp?x=mtgcom/feature/233
+http://www.wizards.com/default.asp?x=mtgcom/feature/249
+http://www.wizards.com/default.asp?x=starwars/article/sw20040916counseling
+http://www.wizards.com/default.asp?x=starwars/article/sw20050407a
+http://www.wjinst.com/management.htm
+http://www.wkbt.com/Global/story.asp?S=1788890
+http://www.wkrn.com/Global/story.asp?S=2768967&nav=1ugQUrFF
+http://www.wksu.org/news/story/18206
+http://www.wku.edu/geoweb/info/geogram99.htm
+http://www.wku.edu/~jan.garrett/philvws.htm
+http://www.wku.edu/~smithch/wallace/FAQ.htm
+http://www.wku.edu/~smithch/wallace/S306.htm
+http://www.wku.edu/~smithch/wallace/S724CH15.htm
+http://www.wldcup.com/arch11112001Jun.html
+http://www.wls.wels.net/Publications/Theologia/vol3no3/DayloPostmodern/DayloPostmodern.htm
+http://www.wlshistory.com/WLS20/
+http://www.wm-e-shop.com/articles.php/tPath/5
+http://www.wm.edu/oieahc/uncommon/118/adventures.htm
+http://www.wm.edu/so/yogaclub/helenemails.html
+http://www.wm.edu/ttac/articles/challenging/response.html
+http://www.wmata.com/about/MET_NEWS/PressReleaseDetail.cfm?ReleaseID=555
+http://www.wmata.com/metrorail/Stations/station.cfm?station=25
+http://www.wmata.com/metrorail/Stations/station.cfm?station=80
+http://www.wmblair.com/Pages/spotlight_payoff.asp?uid=763
+http://www.wmblair.com/pages/spotlight_payoff.asp?uid=763
+http://www.wmcarey.edu/carey/wmward/Main%20html/seram07.html
+http://www.wmcstations.com/Global/story.asp?S=1065211
+http://www.wmi.org/bassfish/articles/T176.htm
+http://www.wmich.edu/ethics/ESC/lesson12.html
+http://www.wmich.edu/hhs/Newslettersjournals/jssw/31-4.html
+http://www.wmich.edu/medieval/mip/books/docprac.htm
+http://www.wmich.edu/teachlearn/new/self_eval_tch.htm
+http://www.wmin.ac.uk/mad/page-622
+http://www.wmld.com/tech/wierdg3.html
+http://www.wmm.com/_reslinks/links.htm
+http://www.wmo.ch/web/homs/documents/english/icwedece.html
+http://www.wmo.ch/web/homs/projects/whycos.html
+http://www.wmo.ch/wmo50/e/wmo/today_pages/edu_and_train_e.html
+http://www.wmrc.uiuc.edu/main_sections/info_services/library_docs/manuals/finishing/design.htm
+http://www.wmrls.org/services/colldev/weed_it.html
+http://www.wmueller.com/precalculus/functions/3_7.html
+http://www.wn.com/p/e5/d5a27d9658e60f.html
+http://www.wnba.com/draft2005/whogoesfirst.html
+http://www.wnba.com/news/east_coaches_teleconference_0505.html
+http://www.wnbc.com/
+http://www.wnc-village.com/arts/application.htm
+http://www.wnd.com/news/archives.asp?AUTHOR_ID=134&PAGE=50
+http://www.wnd.com/news/article.asp?ARTICLE_ID=25730
+http://www.wnd.com/news/article.asp?ARTICLE_ID=28435
+http://www.wndu.com/news/062005/news_43113.php
+http://www.wnmu.edu/admin/studentaff/newpages/HealthMASA/faq.htm
+http://www.wnrmag.com/stories/1997/dec97/xtree.htm
+http://www.wnyc.org/about/c_a_b_min_03-2003.html
+http://www.wnyc.org/books/1324
+http://www.wnyc.org/books/29529
+http://www.wnyc.org/books/3502
+http://www.wnyc.org/books/5158
+http://www.wnyc.org/news/articles/36947
+http://www.wnyc.org/news/articles/47023
+http://www.wnyc.org/shows/lopate/archive.html?month=200310
+http://www.wnyc.org/shows/soundcheck/archive.html?month=200307
+http://www.woai.com/troubleshooters/story.aspx?content_id=7FED3931-859B-45FA-BBC0-23E2587D0ED1
+http://www.woatusa.org/CAT/catreport/arms.html
+http://www.wockhardthospitals.com/eye_diseases.html
+http://www.wodc.org/files/tt1998/Chapter%203.htm
+http://www.wodfriends.org/
+http://www.wofs.com/fsw.php?c=aunt_agga
+http://www.wofs.com/fsw.php?load=arcview&article=598&c=landscape_feng_shui
+http://www.wogameandfish.com/hunting/wo_aa125603a/
+http://www.wohl.com/wa0018.htm
+http://www.wohlersassociates.com/Interesting-and-Helpful-Places.html
+http://www.wohlforth.net/discus/messages/6/178.html?1106679086
+http://www.woking.gov.uk/environment/tips
+http://www.wolfandco.com/media/articles/nowtime.htm
+http://www.wolfarmouries.co.uk/airsoft/bb/gun.asp?page=faq
+http://www.wolfdogs.org/humane.htm
+http://www.wolfmoonpress.com/Essays/perspectives2.htm
+http://www.wolfpark.org/memoriam_Ursa.html
+http://www.wolfram.demon.co.uk/rp_ch_lo_no_4_07.html
+http://www.wolfruning.com/storytel.htm
+http://www.wolfson.ox.ac.uk/college/arms/
+http://www.wolvescivic.co.uk/gigs/inme.htm
+http://www.wombatfile.com/archives/356.html
+http://www.wombatnation.com/
+http://www.womcom.org/chapterinfo/Leadership.html
+http://www.women.tas.gov.au/significantwomen/search/harriett_margaret_james.html
+http://www.women24.com/W24/Experts/W24Experts/0,10652,,00.html
+http://www.women24.com/Women24/Glamour/Beauty/Article/0,7173,1-6-7-48_6051,00.html
+http://www.womenandinfants.com/body.cfm?id=376
+http://www.womenatwork.co.za/home-business-articles/how-a-change-in-perspective-can-help-you-make-more-holida.html
+http://www.womenatworknetwork.com/kudos.html
+http://www.womenhunters.com/right-direction-claudia.html
+http://www.womeninblack.org.uk/London.htm
+http://www.womeningreen.org/
+http://www.womeninphotography.org/archive09-Jan02/gallery/f2/marketing.html
+http://www.womenmatter.com/health_whatstheproblem.htm
+http://www.womenof.com/Articles/fc021698.asp
+http://www.womenoftheelca.org/cafe/issue0202/printpage.html
+http://www.womenrussia.com/american.htm
+http://www.womenrussia.com/antiscam.htm
+http://www.womenrussia.com/blackpage132.htm
+http://www.womenrussia.com/contest4.htm
+http://www.womenrussia.com/extopfaq3.htm
+http://www.womenrussia.com/mail_order_brides/russian.htm
+http://www.womenrussia.com/russianwomen/escape.htm
+http://www.womens-health-concern.org/
+http://www.womens-health.co.uk/pain.asp
+http://www.womens-health.org.nz/publications/books/ART.htm
+http://www.womensaid.org.uk/policy&consultations/briefings/immigration/immigration.htm
+http://www.womensbaseball.com/annies-story.htm
+http://www.womenscenter.gatech.edu/archives/9-1-04.htm
+http://www.womensedge.org/pages/referencematerials/reference_material.jsp?id=121
+http://www.womensenews.org/article.cfm/dyn/aid/2125/context/archive
+http://www.womensenews.org/article.cfm?aid=399&mode=today
+http://www.womenshealthtoday.org/dvtopic.asp
+http://www.womensheartfoundation.org/content/HeartDisease/alcohol_and_heart_disease.asp
+http://www.womenslegalnsw.asn.au/W&FL%201%20General%20information.htm
+http://www.womensmemorial.org/historyandcollections/oralhistory/ohfinnicum.html
+http://www.womensoaring.org/elections.html
+http://www.womensrefuge.org.nz/need_help01.asp
+http://www.womensrogaine.com/happening.asp
+http://www.womentodaymagazine.com/beauty/plus_size.html
+http://www.womentowomen.com/LIBholidaypresence.asp
+http://www.womentowomen.com/womensstories.asp
+http://www.womenwarpeace.org/iraq/iraq2.htm
+http://www.womenwritersblock.com/katecc7.htm
+http://www.wonderfuldreams.me.uk/oxfordtt98
+http://www.wonderlane.com/onetrickbusiness.html
+http://www.wonderpuppy.net/canwehelp/chickendog.htm
+http://www.wondertouch.com/tutorials/sparkles_from_scratch/sparkles.htm
+http://www.wondertrail.com/Merchant2/merchant.mvc?page=W/CTGY/Megatech_Parts
+http://www.wondertrail.com/RC_Models/Megatech_Parts/index.shtml
+http://www.wondertrail.com/RC_Models/RC_Model_Batteries/index.shtml
+http://www.wonkette.com/politics/culture-war/index.php
+http://www.wonkette.com/politics/dc/index.php
+http://www.wonkette.com/politics/hill/index.php
+http://www.wonkette.com/politics/patriotism/index.php
+http://www.wonkette.com/politics/personalities/index.php
+http://www.wonuc.org/
+http://www.woodbinehoteltexas.com/history.html
+http://www.woodbinehouse.com/whatsnew.asp
+http://www.woodcentral.com/
+http://www.woodenski.com/2neat/journals/gsabulletin.htm
+http://www.woodfloordoctor.com/_product_reviews/articles/primatech.shtml
+http://www.woodfloorsonline.com/techtalk/techline2.html
+http://www.woodfloorsonline.com/techtalk/woodctgrd.html
+http://www.woodfloorsonline.com/techtalk/woodfloor_grades_cuts.html
+http://www.woodlander.co.uk/woodland/dcfquest.htm
+http://www.woodlandvillagehomes.com/planning.details.html
+http://www.woodmac.com/news.htm
+http://www.woodrow.org/teachers/bi/1998/presentations/geisler/
+http://www.woodrow.org/teachers/chemistry/institutes/1992/Dalton.html
+http://www.woods.co.uk/faqs.asp
+http://www.woodsonlodge.com/faq.htm
+http://www.woodsounds.net/flutepagetext.html
+http://www.woodweb.com/knowledge_base/Compressed_air_delivery_system.html
+http://www.woodweb.com/knowledge_base/Moving_to_Metric.html
+http://www.woodweb.com/knowledge_base/Raised_panel_wainscot.html
+http://www.woodweb.com/knowledge_base/Solar_kilns__putting_it_all_together.html
+http://www.woodworkersauction.com/Christmas/giftskids6.htm
+http://www.woodworkersjournal.com/ezine/archive/73/qanda.cfm
+http://www.woodworkersworkshop.com/resources/index.php?cat=412
+http://www.woodyguthrie.org/foundation/archivesactivities.htm
+http://www.woodyswatch.com/office/archtemplate.asp?v4-n03
+http://www.woodyswatch.com/office/archtemplate.asp?v6-n17
+http://www.woohu.com/~onceagainistandalone/back/30/
+http://www.woohu.com/~onceagainistandalone/friends/back/15/
+http://www.woolpert.com/asp/articles/FirmUpFloodMaps.asp
+http://www.woomb.org/bom/lit/teach/indicators.shtml
+http://www.wooster.edu/artfuldodge/interviews/laughlin.htm
+http://www.wooster.edu/jsaf/
+http://www.worcestershire.gov.uk/home/cs-social-childrenandfamilies/cs-social-cf-adoption/cs-social-cf-adoption-letterbox.htm
+http://www.worcestershire.gov.uk/home/text/cs-social-childrenandfamilies/cs-social-cf-adoption/cs-social-cf-adoption-letterbox.htm
+http://www.word-detective.com/032602.html
+http://www.word-detective.com/060704.html
+http://www.word-detective.com/091801.html
+http://www.word-detective.com/092403.html
+http://www.word-detective.com/121603.html
+http://www.word-detective.com/back-l2.html
+http://www.word-for-word.co.uk/
+http://www.word-for-word.co.uk/pages/faqs.html
+http://www.wordboosters.com/more/
+http://www.wordos.com/bruce.htm
+http://www.wordpower.ws/grammar/gramex11.html
+http://www.words-worth.de/robin/2003_10_01_archive.php
+http://www.wordswithoutborders.org/article.php?lab=Friends
+http://www.wordswithoutborders.org/article.php?lab=TrueCalling
+http://www.wordswithoutborders.org/article.php?lab=Vargas
+http://www.wordsworth2.net/projects/forces/ceiling.htm
+http://www.wordtravels.com/Cities/Louisiana/New+Orleans/Attractions
+http://www.wordtravels.com/Resorts/Austria/The+Alps/Saalbach
+http://www.wordtravels.com/Resorts/Austria/The+Alps/St+Anton
+http://www.wordtravels.com/Ski-Resorts/Austria/The+Alps/St+Anton
+http://www.work-at-home-index.net/featurearticle1286.html
+http://www.work-at-home-index.net/featurearticle188.html
+http://www.work-at-home-net-guides.com/articles/2004-record-online-holiday-shopping-season.html
+http://www.work-at-home-net-guides.com/work-from-home.html
+http://www.work-at-home-parents.com/Article60.html
+http://www.work-at-home-parents.com/Category10-All.html
+http://www.work-at-home-parents.com/Category10.html
+http://www.workaholics4hire.com/report.htm
+http://www.workdayminnesota.org/
+http://www.workdayminnesota.org/permanent/working_life/history/advocate_series/james2.php
+http://www.workersadvicecenter.org/With-Gazan-workers.htm
+http://www.workersforjesus.com/f25-14.htm
+http://www.workersliberty.org/comment/reply/1305
+http://www.workersliberty.org/node/view/4232
+http://www.workersliberty.org/node/view/953
+http://www.workersolidarity.org/union3.html
+http://www.workersolidarity.org/unionshop.htm
+http://www.workfirst.wa.gov/eitc/worker.htm
+http://www.workforce.com/archive/feature/22/17/10/223931.php
+http://www.workforce.com/section/11/feature/23/71/79/
+http://www.workforceatm.org/articles/template.cfm?results_art_filename=tx_newyears.htm
+http://www.workgateways.com/working-uk-visas.html
+http://www.workindex.com/editorial/hre/hre0105-13.asp
+http://www.workindex.com/editorial/train/trn0208-02.asp
+http://www.workinfo.com/EconHist/ireland.htm
+http://www.workinfo.com/free/Downloads/294.htm
+http://www.workinfo.com/free/Sub_for_legres/Data/991012apclabour.htm
+http://www.workinfo.com/free/Sub_for_legres/Data/991012pclabour.htm
+http://www.working-minds.com/WM2003b.htm
+http://www.workingamerica.org/privacypolicy.cfm
+http://www.workingartist.com/Q1011.html
+http://www.workingdogs.com/links.htm
+http://www.workingdogweb.com/RSH-Home.htm
+http://www.workingforchange.com/article.cfm?ItemID=11432
+http://www.workingforchange.com/article.cfm?ItemID=12607
+http://www.workingforchange.com/article.cfm?ItemID=13014
+http://www.workingforchange.com/article.cfm?ItemID=15250
+http://www.workingforchange.com/article.cfm?ItemID=16326
+http://www.workingforchange.com/article.cfm?ItemID=18048
+http://www.workingfortheman.com/train2.html
+http://www.workingin-newzealand.com/occupations/1095
+http://www.workingmother.com/mar05_mainstory.html
+http://www.workingpitbull.com/dogfighting.htm
+http://www.workingpsychology.com/cultdef.html
+http://www.workoninternet.com/article_432.html
+http://www.workoninternet.com/topic_1.html
+http://www.workoninternet.com/topic_4.html
+http://www.workonwords.com/alintentions.html
+http://www.workoptions.com/ask.htm
+http://www.workoptions.com/maternityleave-flexsucc.htm
+http://www.workoutsforwomen.com/pressr_fitness_makeover.asp
+http://www.workpace.com/NEWS_18_11_2004_EN
+http://www.workpermit.com/us/employer_h-1b.htm
+http://www.workplace-gsc.com/workplace2-1/forum.html
+http://www.workplacefairness.org/pblog.php
+http://www.workplacelaw.net/forum/thread.php?thread_id=670
+http://www.workplacespirituality.info/article1029.html
+http://www.workrights.ca/NR/exeres/CA2C1D9A-48C0-4BA6-A514-0F098BD078D3,82BDBE6F-284F-468B-842E-82E8742B94BF,frameless.htm
+http://www.workrights.ca/Work+Time/juris/Weekly+Hours+and+overtime_BC.htm
+http://www.workrightspress.com/workerscompch1.html
+http://www.worksafesask.ca/files/ont_wsib/certmanual/ch_16.html
+http://www.worksmartontario.gov.on.ca/scripts/default.asp?contentID=7-1-2&mcategory=health
+http://www.worksourcefl.com/job_seekers/JobSearchTips.asp?News=134
+http://www.worktrauma.org/change/definitions.htm
+http://www.workwithus.org/
+http://www.world-action.co.uk/radar.html
+http://www.world-famous.com/DavidHamelStuff/Hamel-Pauls.html
+http://www.world-heavyweight-boxing.com/
+http://www.world-nuclear.org/dgspeeches/eef2003.htm
+http://www.world-nuclear.org/info/chernobyl/inf07.htm
+http://www.world-nuclear.org/info/inf12.htm
+http://www.world-nuclear.org/opinion/domenici.htm
+http://www.world-nuclear.org/opinion/eef-ritch.htm
+http://www.world-nuclear.org/opinion/eia_reactors.htm
+http://www.world-nuclear.org/opinion/ingham_040604.htm
+http://www.world-nuclear.org/sym/2004/forsstrom.htm
+http://www.world-nuclear.org/waste/report99/chapter2.htm
+http://www.world-productions.com/outlaws/pages/behind_the_scenes/writers_room/the_brave_new_3.htm
+http://www.world-wide-art.com/art/shpg1020050119172632ctvasku20041112160343/artworkResults.html
+http://www.world-wide-art.com/art/shpg1020050119174349ctvasku20041112160343/artworkResults.html
+http://www.world-wide-art.com/art/shpg1020050204013107ctvasku20041112160343/artworkResults.html
+http://www.world-wide-art.com/art/shpg1107491397476928ctvasku20040314150230/artworkResults.html
+http://www.world-wide-art.com/art/shpg1107491397476928ctvasku20040924165138/artworkResults.html
+http://www.world-wide-art.com/art/shpg1107491397476928ctvasku20040924165428/artworkResults.html
+http://www.world-wide-art.com/art/shpg1107491397476928ctvasku20040924165502/artworkResults.html
+http://www.world-wide-art.com/art/shpg322913197978190ctvasku20041112160343/artworkResults.html
+http://www.worldaffairspittsburgh.org/CalendarMain.html
+http://www.worldalmanac.com/200305WAE-Newsletter.html
+http://www.worldandi.com/newhome/public/2003/august/nspub2.asp
+http://www.worldandi.com/public/1988/september/mt6.cfm
+http://www.worldatlas.com/webimage/countrys/asia/ir.htm
+http://www.worldatlas.com/webimage/countrys/namerica/us.htm
+http://www.worldatlas.com/webimage/countrys/namerica/usstates/hi.htm
+http://www.worldatlas.com/webimage/flags/countrys/assorted/xmasisl.htm
+http://www.worldbank.org/data/wdi2005/wditext/Section3_1.htm
+http://www.worldbank.org/depweb/english/beyond/global/chapter14.html
+http://www.worldbank.org/depweb/english/modules/economic/gnp/texta.html
+http://www.worldbank.org/depweb/english/modules/glossary.html
+http://www.worldbank.org/depweb/english/teach/pgr.html
+http://www.worldbank.org/html/fpd/energy/geothermal/
+http://www.worldbank.org/lsms/research/country4.html
+http://www.worldbank.org/lsms/tools/povcal/
+http://www.worldbank.org/nipr/onthenet.htm
+http://www.worldbank.org/nipr/polmod.htm
+http://www.worldbank.org/nipr/work_paper/nipr2/
+http://www.worldbank.org/nipr/work_paper/toxic/
+http://www.worldbank.org/research/peg/wps14/indexp4.htm
+http://www.worldbank.org/research/trade/majoract.htm
+http://www.worldbank.org/watsan/
+http://www.worldbank.org/wbi/cases/consult.html
+http://www.worldbankpresident.org/
+http://www.worldbankpresident.org/archives/2005_01.php
+http://www.worldbasesuppliers.com/technical-support-vision-20-20-plus.html
+http://www.worldbasesuppliers.com/technical-support-vm-4000-plus.html
+http://www.worldblues.com/bbking/prairie/singles.html
+http://www.worldcarfree.net/conference/manual.php
+http://www.worldcargoalliance.com/Library/globaldata/Acronyms/s.htm
+http://www.worldchanging.com/
+http://www.worldchanging.com/archives/000151.html
+http://www.worldchanging.com/archives/000189.html
+http://www.worldchanging.com/archives/000509.html
+http://www.worldchanging.com/archives/000675.html
+http://www.worldchanging.com/archives/000818.html
+http://www.worldchanging.com/archives/001246.html
+http://www.worldchanging.com/archives/001387.html
+http://www.worldchanging.com/archives/001967.html
+http://www.worldchanging.com/archives/002638.html
+http://www.worldchanging.com/archives/002951.html
+http://www.worldchiropracticalliance.org/tcj/2000/apr/apr2000m.htm
+http://www.worldchiropracticalliance.org/tcj/2003/feb/feb2003mertz.htm
+http://www.worldcongress.org/wcf2_spkrs/wcf2_tadad.htm
+http://www.worldcourts.com/echr/eng/decisions/2002.04.23_Zhelezov_eng.htm
+http://www.worldcupofboxing.com/news/05010503.html
+http://www.worlddreamspeacebridge.org/updatesarchieves/june2004.htm
+http://www.worlded.org/us/health/heal/teacherinterview.htm
+http://www.worldenable.net/standardrules/part1.htm
+http://www.worldenergy.org/wec-geis/edc/countries/Italy.asp
+http://www.worldenergy.org/wec-geis/publications/default/tech_papers/17th_congress/1_1_17.asp
+http://www.worldenergy.org/wec-geis/publications/reports/coal/context/context.asp
+http://www.worldenergy.org/wec-geis/publications/reports/ser/ocean/ocean.asp
+http://www.worldenergy.org/wec-geis/publications/reports/ser/overview.asp
+http://www.worldenergy.org/wec-geis/publications/reports/ser/shale/shale.asp
+http://www.worldenergy.org/wec-geis/publications/reports/ser/wood/wood.asp
+http://www.worldenergy.org/wec-geis/publications/statements/stat2004.asp
+http://www.worldevangelical.org/news_africa1_mar04.html
+http://www.worldexecutive.com/directory/england/london/hotels/txl-ki-hyklonk2.html
+http://www.worldfoodscience.org/cms/?pid=1000863
+http://www.worldfurnitureonline.com/dbsys/furniture/1304.html
+http://www.worldgolf.com/courses/indiagcs.html
+http://www.worldgolf.com/features/wales-travel-alternatives-926.htm
+http://www.worldhealth.net/p/1003.html
+http://www.worldhunger.org/articles/africa/melber.htm
+http://www.worldinfozone.com/features.php?section=PartnersDiscussion2
+http://www.worldinvisible.com/library/jessiepenn-lewis/8791/879103.htm
+http://www.worldjewishcongress.org/publications/dispatches/dispatch57.cfm
+http://www.worldlanguage.com/ChineseTraditional/Countries/CookIslands.htm
+http://www.worldlanguage.com/ChineseTraditional/Countries/Jersey.htm
+http://www.worldlanguage.com/Vietnamese/Countries/GazaStrip.htm
+http://www.worldlanguage.com/Vietnamese/Countries/WestBank.htm
+http://www.worldleisure.org/about/interest_groups/education.html
+http://www.worldmag.com/subscriber/displayarticle.cfm?id=9987
+http://www.worldmarketsanalysis.com/wma_sample_pages/site_pages/WMASampArticle.htm
+http://www.worldmoviemag.com/index.php?request=News&key=194
+http://www.worldnetdaily.com/news/article.asp?ARTICLE_ID=13201
+http://www.worldnetdaily.com/news/article.asp?ARTICLE_ID=21048
+http://www.worldnetdaily.com/news/article.asp?ARTICLE_ID=25008
+http://www.worldnetdaily.com/news/article.asp?ARTICLE_ID=26401
+http://www.worldnetdaily.com/news/article.asp?ARTICLE_ID=38398
+http://www.worldnetdaily.com/news/article.asp?ARTICLE_ID=42462
+http://www.worldnetdaily.com/news/article.asp?ARTICLE_ID=42698
+http://www.worldofcards.biz/2005/ptt_AU/
+http://www.worldofpower.co.uk/safety/
+http://www.worldofpower.co.uk/safety/chainsaw_safety.html
+http://www.worldofquotes.com/topic/Listening/1/
+http://www.worldofschmitt.com/writings/smith/beastofaveroigne.html
+http://www.worldofwarcraft.com/info/basics/glossary.html
+http://www.worldonwheelz.com/Travel%20Reviews/new%20york%20city%202002.htm
+http://www.worldpeace.org.au/diary.asp
+http://www.worldpeacefoundation.org/completedprojects.html
+http://www.worldpolicy.org/projects/arms/reports.html
+http://www.worldpolicy.org/projects/arms/reports/congo.htm
+http://www.worldpolicy.org/projects/arms/reports/reportaboutface.html
+http://www.worldpolicy.org/projects/arms/updates/051603.html
+http://www.worldpolicy.org/projects/arms/updates/091103.html
+http://www.worldpolicy.org/projects/arms/updates/091901.html
+http://www.worldprayer.org.uk/pagesys.cfm?pID=41
+http://www.worldprayer.org.uk/pagesys.cfm?pID=44
+http://www.worldpress.org/Americas/2044.cfm
+http://www.worldpress.org/Europe/1684.cfm
+http://www.worldpress.org/Europe/2042.cfm
+http://www.worldpress.org/Mideast/1200.cfm
+http://www.worldpress.org/Mideast/2067.cfm
+http://www.worldpressinstitute.org/nevin.htm
+http://www.worldrecordgolf.com/guidelines.htm
+http://www.worldsapartreview.com/mexican.htm
+http://www.worldsbestbars.com/city/fukuoka/the-happy-cock-fukuoka.htm
+http://www.worldscibooks.com/physics/4657.html
+http://www.worldscientist.com/
+http://www.worldscinet.com/ijtaf/mkt/editorial.shtml
+http://www.worldscreen.com/print.php?filename=0604agents
+http://www.worldseafishing.com/ireland/culdaff.shtml
+http://www.worldsecurity-index.com/details.php?id=207
+http://www.worldsexguide.org/buenos-aires.txt.html
+http://www.worldsexguide.org/chicago_faq.txt.html
+http://www.worldshipny.com/lwrmantr.htm
+http://www.worldshops.org/worldshops/Guidelines.html
+http://www.worldsoccershop.com/testimonials.html
+http://www.worldsocialism.org/spgb/nov03/leftie.html
+http://www.worldstart.com/tips/tips-eml.php/702
+http://www.worldstart.com/tips/tips.php/702
+http://www.worldstatesmen.org/France_prov.html
+http://www.worldsteel.org/lci_policy.php
+http://www.worldtennisratings.com/wtr_magazine_story_4_dwakiji_mentalprep.html
+http://www.worldvacationrentals.net/detailed/2400.html
+http://www.worldvillage.org/gy/gyold/13007.html
+http://www.worldvision.com.au/onebigvillage/content.asp?topicID=28
+http://www.worldvision.com.au/seekjustice/getinvolved.asp
+http://www.worldwander.com/namibia/textetosha.htm
+http://www.worldwar1.com/tgws/rel007.htm
+http://www.worldwatch.org/features/climate/activities/
+http://www.worldwatch.org/live/discussion/100/
+http://www.worldwatch.org/press/news/1998/07/02/
+http://www.worldwatch.org/press/news/2003/07/24/
+http://www.worldwaterday.org/2001/thematic/pollution.html
+http://www.worldwidecommerce.com/carter/files/html/D0008/G0000074.html
+http://www.worldwidelearn.com/business-course/home-business-idea.htm
+http://www.worldwidelearn.com/online-education-guide/engineering/systems-engineering-major.htm
+http://www.worldwideschool.org/library/books/hst/english/WildWales/chap65.html
+http://www.worldwideschool.org/library/books/hst/northamerican/UnitedStatesPresidentsInauguralSpeeches/chap48.html
+http://www.worldwideschool.org/library/books/lit/charlesdickens/ShortStoriesbyCharlesDickens/chap11.html
+http://www.worldwideschool.org/library/books/lit/detective/TheBreakingPoint/chap26.html
+http://www.worldwideschool.org/library/books/lit/drama/Finished/chap23.html
+http://www.worldwideschool.org/library/books/lit/historical/Oxford/chap6.html
+http://www.worldwideschool.org/library/books/lit/historical/Oxford/chap8.html
+http://www.worldwideschool.org/library/books/lit/romance/APairofBlueEyes/chap18.html
+http://www.worldwideschool.org/library/books/relg/socialeccltheology/MemoirsofPopularDelusionsV1/chap3.html
+http://www.worldwideschool.org/library/books/socl/customsetiquettefolklore/TheChineseBoyAndGirl/chap3.html
+http://www.worldwideschool.org/library/books/youth/anneofgreengables/AnneofAvonlea/chap27.html
+http://www.worldwidewords.org/weirdwords/ww-pic1.htm
+http://www.worldwildlife.org/bsp/publications/africa/145/Rwanda-English.htm
+http://www.worldwildlife.org/wildworld/profiles/terrestrial/nt/nt0138_full.html
+http://www.worriedneed2talk.org.uk/directory.htm
+http://www.worship.ca/docs/p_41_tm.html
+http://www.worship.ca/docs/ww_42.html
+http://www.worshipguitars.org/silkworm/
+http://www.worth1000.com/cache/contest/contestcache.asp?contest_id=4633&start=1&end=10&display=text
+http://www.worthethic.com/consultants.html
+http://www.worthethic.com/team.html
+http://www.worthplaying.com/
+http://www.worthplaying.com/article.php?sid=16802
+http://www.worthplaying.com/article.php?sid=25610
+http://www.worxbest.com/us/products/organocrete.html
+http://www.wosa.co.za/News.aspx?NEWSID=7026
+http://www.wosa.co.za/SOILS_terroirs.ASP
+http://www.wotif.co.nz/Hotel.jsp?hotel=2005&refId=13792
+http://www.wotif.com/Executive-Royal-Inn-West-Edmonton.html
+http://www.wotif.com/Hotel.jsp?hotel=6897
+http://www.wotif.com/Rydges-on-Bell-Preston---Sleep-&-Go.html
+http://www.wotif.com/Wombats-Bed-&-Breakfast.html
+http://www.wotif.com/Xenia-Central-Studio-Accommodation.html
+http://www.wotw.org.uk/northsouth/bulletin/spring2001.html
+http://www.wowwebdesigns.com/power_guides/music_off.php
+http://www.woxy.com/boards/showthread.php?t=28164
+http://www.woz.org/letters/general/109.html
+http://www.wp.org.sg/news/news_articles/20050126_qa_ltk.htm
+http://www.wp21.com/at/dayone.htm
+http://www.wpafb.af.mil/museum/history/preww1/cof8.htm
+http://www.wpahumane.org/PetsWithAPast%5B1%5D.html
+http://www.wpbfnews.com/employment/962683/detail.html
+http://www.wpcusrgrp.org/~blowe/merp108.html
+http://www.wpcusrgrp.org/~blowe/merp209.html
+http://www.wpcusrgrp.org/~blowe/merp221.html
+http://www.wpda.org/news.php?n=578
+http://www.wpda.org/news.php?n=778
+http://www.wpdfd.com/editorial/wpd0104news.htm
+http://www.wpdfd.com/editorial/wpd0601.htm
+http://www.wpdfd.com/editorial/wpd0602.htm
+http://www.wpdfd.com/editorial/wpd0704news.htm
+http://www.wpdfd.com/wpdtypo.htm
+http://www.wpg.cc/stl/CDA/articleDetail/1,1001,33-122,00.html
+http://www.wpg.cc/stl/CDA/library/1,1007,617-241,00.html
+http://www.wpghome.com/LocalServices.asp
+http://www.wphm.net/wphm/meetdj.shtml
+http://www.wphospital.org/2002DCTCARep/APositiveImpactOnPatientCare.htm
+http://www.wpi.edu/Academics/Depts/Chemistry/Courses/CH215X/coldfusion.html
+http://www.wpi.edu/Admin/HR/BenMan/te.html
+http://www.wpi.edu/Admin/HR/BenMan/tuitionexchange.html
+http://www.wpi.edu/News/TechNews/article.php?id=977
+http://www.wpi.edu/News/Transformations/2004Winter/prevention.html
+http://www.wpi.edu/Pubs/Catalogs/Ugrad/Current/admission.html
+http://www.wpi.edu/Pubs/Policies/Judicial/sect5.html
+http://www.wpi.edu/~trek/aspergers.html
+http://www.wpibriefing.com/37InternationalOffice.htm
+http://www.wpic.org/Library/Synoposis/Synopsis_1Page13.html
+http://www.wpic.pitt.edu/STANLEY/5thbipconf/Abstracts/txalliance.htm
+http://www.wpra.com/Membership.htm
+http://www.wpro.who.int/public/speeches/speech_view.asp?id=359
+http://www.wpsw.co.uk/michellereport.htm
+http://www.wpt.org/food_fight/index.cfm?body=video_clip4&movie=yes
+http://www.wptn.com/tmrk_019_sep01.htm
+http://www.wpunj.edu/~newpol/issue25/hill25.htm
+http://www.wpunj.edu/~newpol/issue32/hill32.htm
+http://www.wpxi.com/health/3020074/detail.html
+http://www.wpxi.com/target11/4181291/detail.html
+http://www.wqad.com/Global/story.asp?S=2858686
+http://www.wqad.com/global/story.asp?s=2858686&ClientType=Print
+http://www.wqln.org/education/families/
+http://www.wra.org/Government/Land_Use/annexation/default.htm
+http://www.wra.org/Resources/resource_pages/Mold_resources.htm
+http://www.wraeththu.wox.org/storm/uk/faq.htm
+http://www.wrap.org.uk/document.rm?id=357
+http://www.wrap.org.uk/document.rm?id=432
+http://www.wrap.org.uk/news/going_green.html
+http://www.wrap.org.uk/waste_minimisation/retailer_initiative_innovation_fund/news_events/news/two_new.html
+http://www.wrc.wa.gov.au/swanavon/pages/events.html
+http://www.wrestlingnewsworld.com/columns/104883314.shtml
+http://www.wrexham.gov.uk/english/planning_portal/lpg_notes/lpg14.htm
+http://www.wrexham.gov.uk/english/planning_portal/lpg_notes/lpg19.htm
+http://www.wrf.com/publications/publication.asp?id=1555241072003
+http://www.wrh.noaa.gov/pqr/info/beaufort.php
+http://www.wrh.noaa.gov/slc/projects/gap_winds/gap_public/Cases.html
+http://www.wrh.noaa.gov/wrh/LITETAs/TALITE9706/tal9706.html
+http://www.wri-irg.org/co/cases/etzion-en.htm
+http://www.wri-irg.org/co/rtba/russia.htm
+http://www.wrightforyou.com/titlewomen.html
+http://www.wrightinwisconsin.org/HomeMessageBoard.asp
+http://www.wrighttimes.com/article.php?id=126
+http://www.write101.com/W.Tips176.htm
+http://www.write101.com/W.Tips261.htm
+http://www.write101.com/W.Tips81.htm
+http://www.write4kids.com/aboutcbi.html
+http://www.writeaway.com/help/default.asp
+http://www.writedirection.com/rprt300e.htm
+http://www.writedog.com/fire.html
+http://www.writeedge.com/articles/PreparingforWorst.asp
+http://www.writeexpress.com/refusal-letter.html
+http://www.writefromhome.com/writingtradearticles/443.htm
+http://www.writefromhome.com/wwc/169.htm
+http://www.writefromhome.com/wwc/188.htm
+http://www.writejourney.com/synopsis.htm
+http://www.writelink.co.uk/Jobs/jobs.html
+http://www.writelinux.com/glade/
+http://www.writeonwhidbey.org/Contest_Scholarships/Student_Celebrate_Writing%20Contest.htm
+http://www.writer-tech.com/pages/articles/ff-fatalities.htm
+http://www.writeradvice.com/
+http://www.writergazette.com/articles/article73.shtml
+http://www.writergirlscorner.com/holidays/christmas/world/
+http://www.writermag.com/wrt/default.aspx?c=a&id=402
+http://www.writers.com/newsletter0401.html
+http://www.writersbbs.com/cgi-bin/forum.cgi?action=read&forum=playwriting&message=4526-4525
+http://www.writersdigest.com/articles/waiting_for_dollar$.asp
+http://www.writershome.com/humor/animal-farm.htm
+http://www.writersstore.com/article.php?articles_id=485
+http://www.writerstudio.com/news-summer00.shtml
+http://www.writerstudio.com/news-summer98.html
+http://www.writerstudio.com/news-winter99.html
+http://www.writersuniversity.com/course.php?courses_id=17
+http://www.writersunlimited.com/
+http://www.writersunlimited.com/authors/authorpages.html
+http://www.writersweekly.com/this_weeks_article/002264_12152004.html
+http://www.writersworld.co.uk/twenty.html
+http://www.writerswrite.com/classads/writingresources/
+http://www.writewhatyouknow.com/teleclasses.php
+http://www.writewords.org.uk/archive/3840.asp
+http://www.writewords.org.uk/archive/6293.asp?rr=1
+http://www.writewords.org.uk/directory/detail_page.asp?subtypeid2=41&directory_id=5172
+http://www.writewords.org.uk/forum/49_26874.asp
+http://www.writewords.org.uk/forum/51_11472.asp?spage=2
+http://www.writing-business-letters.com/
+http://www.writing-resources.com/fairy_tales/the_story_of_a_mother.html
+http://www.writing-resources.com/fairy_tales/the_swineherd.html
+http://www.writing-world.com/romance/sweet.shtml
+http://www.writing-world.com/tech/lawler.shtml
+http://www.writing.com/main/campfires/item_id/770989
+http://www.writing.com/main/campfires/item_id/962055
+http://www.writing.com/main/view_item/item_id/525556
+http://www.writing.com/main/view_item/item_id/539471
+http://www.writing.com/main/view_item/item_id/898050
+http://www.writing.com/main/view_item/item_id/931430
+http://www.writing.upenn.edu/~afilreis/50s/macdonald-great-books.html
+http://www.writing.upenn.edu/~afilreis/88/cage-quotes.html
+http://www.writing.upenn.edu/~afilreis/Holocaust/buchenwald.html
+http://www.writingco.com/c/@u94NeW3bEE6V6/Pages/search.html?Record_Type=Products&Keyword=Concentration%20Camps
+http://www.writingco.com/c/@w.kXdSS61yiH6/Pages/search.html?Record_Type=Products&Keyword=Concentration%20Camps
+http://www.writinginstructor.com/essays/berzsenyi4.html
+http://www.writinginstructor.com/essays/gleason2.html
+http://www.writingproject.org/pub/nwpr/voice/2002no2/parsons.html
+http://www.writingproject.org/pub/nwpr/voice/2003no3/bauman.html
+http://www.writtenroad.com/archives/000867.shtml
+http://www.writtenroad.com/archives/002147.shtml
+http://www.wrm.org.uy/actors/WB/IPreport.html
+http://www.wrmea.com/html/us_aid_to_israel.htm
+http://www.wrongdiagnosis.com/mistakes/common.htm
+http://www.wrongdiagnosis.com/risk/heart_disease.htm
+http://www.wrq.com/customers/casestudies/0879.html
+http://www.wrq.com/products/whitepapers/0757.html
+http://www.wru.co.uk/111_903.php
+http://www.wru.co.uk/114_1999.php
+http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html
+http://www.wsa.org/resources/publications/salarysurvey_faq.asp
+http://www.wsab.com.au/news1.htm
+http://www.wsanchez.net/blog/archives/2005_04.html
+http://www.wsanchez.net/papers/FREENIX_1999/
+http://www.wsanford.com/~wsanford/exo/site_visits.html
+http://www.wsc.edu/advising/program/career/personality/entj.html
+http://www.wschiro.edu/academics/bsprogram/ac_bs_coursereq.html
+http://www.wscpg.org/h/APcomparin.htm
+http://www.wscu.com/
+http://www.wsdot.wa.gov/TNBhistory/Connections/connections3.htm
+http://www.wsdot.wa.gov/eesc/CAE/MicroStation/TechNotes/V8TechNotes/Scaling_basemaps.htm
+http://www.wsdot.wa.gov/environment/biology/usfw-list/Leatherback.htm
+http://www.wsdot.wa.gov/fasc/EngineeringPublications/epubs_related.html
+http://www.wsfa.org/journal/j93/2/
+http://www.wsib.on.ca/wsib/wsibsite.nsf/public/BenefitsNEL
+http://www.wsjclassroomedition.com/archive/02dec/COLG_DEC.htm
+http://www.wsjclassroomedition.com/archive/03dec/colg_caitlindec.htm
+http://www.wsjclassroomedition.com/archive/03sep/colg_caitlinsep.htm
+http://www.wsjclassroomedition.com/archive/04apr/colg_caitlinapr.htm
+http://www.wsma.org/career_center/
+http://www.wsn-mn.com/news_inSites.php
+http://www.wsn.org/crandon/sierracomments.html
+http://www.wsparx.org/resources/5-3-3.asp
+http://www.wstonline.com/opinions/kerrymassaro/showArticle.jhtml?articleID=56900546
+http://www.wstonline.com/rc/et/showArticle.jhtml?articleID=164901466
+http://www.wstonline.com/rc/md/showArticle.jhtml?articleID=164901466
+http://www.wsu.edu/~amerstu/tm/513syl2002.html
+http://www.wsu.edu/~pchilson/Disturbance.html
+http://www.wsu.edu:8080/~brians/hum_303/romanticism.html
+http://www.wsu.edu:8080/~taflinge/esteem.html
+http://www.wsws.org/articles/1999/dec1999/mine-d02.shtml
+http://www.wsws.org/articles/1999/dec1999/mine-d02_prn.shtml
+http://www.wsws.org/articles/1999/jul1999/que-j21_prn.shtml
+http://www.wsws.org/articles/1999/may1999/cost-m13.shtml
+http://www.wsws.org/articles/1999/nov1999/anim-n12.shtml
+http://www.wsws.org/articles/2000/apr2000/educ-a13.shtml
+http://www.wsws.org/articles/2000/mar2000/norw-m15.shtml
+http://www.wsws.org/articles/2000/oct2000/bloo-o10.shtml
+http://www.wsws.org/articles/2000/oct2000/la-o19.shtml
+http://www.wsws.org/articles/2000/sep2000/newt-s26.shtml
+http://www.wsws.org/articles/2000/sep2000/newt-s26_prn.shtml
+http://www.wsws.org/articles/2001/aug2001/sri-a24_prn.shtml
+http://www.wsws.org/articles/2001/jun2001/vote-j14.shtml
+http://www.wsws.org/articles/2001/sep2001/war-s14.shtml
+http://www.wsws.org/articles/2002/apr2002/jobs-a13.shtml
+http://www.wsws.org/articles/2002/feb2002/blai-f08.shtml
+http://www.wsws.org/articles/2002/nov2002/vote-n12.shtml
+http://www.wsws.org/articles/2003/apr2003/isra-a16.shtml
+http://www.wsws.org/articles/2003/feb2003/cbc-f07.shtml
+http://www.wsws.org/articles/2003/nov2003/euro-n11.shtml
+http://www.wsws.org/articles/2003/sep2003/cali-s06.shtml
+http://www.wsws.org/articles/2004/jan2004/immi-j09.shtml
+http://www.wsws.org/articles/2004/jul2004/hear-j07.shtml
+http://www.wsws.org/articles/2004/jun2004/tort-j10.shtml
+http://www.wsws.org/articles/2004/oct2004/iaea-o19.shtml
+http://www.wsws.org/articles/2005/jan2005/chin-j18_prn.shtml
+http://www.wsws.org/articles/2005/jan2005/iraq-j12.shtml
+http://www.wsws.org/arts/1998/aug1998/land-96.shtml
+http://www.wsws.org/arts/1998/dec1998/tv-d05.shtml
+http://www.wsws.org/arts/1998/nov1998/tv-n28.shtml
+http://www.wsws.org/news/1998/july1998/lab1-j10.shtml
+http://www.wsws.org/news/1998/oct1998/ic-o24.shtml
+http://www.wtamu.edu/academic/anns/mps/math/mathlab/int_algebra/int_alg_tut1_study.htm
+http://www.wtec.org/loyola/dsply_jp/c4_s7.htm
+http://www.wtec.org/loyola/kb/c1_s1.htm
+http://www.wtec.org/loyola/kei/welcome.htm
+http://www.wtgrantfoundation.org/info-url_nocat4030/info-url_nocat.htm?attrib_id=9485
+http://www.wtgrantfoundation.org/information3044/information.htm
+http://www.wthr.com/Global/story.asp?S=372913
+http://www.wtmelon.com/3AppleIsland.html
+http://www.wtmlib.com/2nd_cent.htm
+http://www.wtmx.com/listenlive.php
+http://www.wtn.org.uk/training.htm
+http://www.wto.org/english/docs_e/legal_e/26-gats_02_e.htm
+http://www.wto.org/english/docs_e/legal_e/legal_e.htm
+http://www.wto.org/english/news_e/spmm_e/spmm79_e.htm
+http://www.wto.org/english/news_e/spmm_e/spmm83_e.htm
+http://www.wto.org/english/news_e/spmm_e/spmm86_e.htm
+http://www.wto.org/english/res_e/booksp_e/analytic_index_e/dsu_01_e.htm
+http://www.wto.org/english/res_e/booksp_e/analytic_index_e/wto_agree_02_e.htm
+http://www.wto.org/english/thewto_e/minist_e/min01_e/brief_e/brief01_e.htm
+http://www.wto.org/english/thewto_e/whatis_e/tif_e/agrm6_e.htm
+http://www.wto.org/english/thewto_e/whatis_e/tif_e/fact3_e.htm
+http://www.wto.org/english/thewto_e/whatis_e/tif_e/org1_e.htm
+http://www.wto.org/english/tratop_e/dda_e/draft_text_gc_dg_19july04_e.htm
+http://www.wto.org/english/tratop_e/envir_e/stud99_e.htm
+http://www.wto.org/english/tratop_e/safeg_e/safeint.htm
+http://www.wto.org/english/tratop_e/serv_e/10-anfin_e.htm
+http://www.wto.org/english/tratop_e/tbt_e/event_oct03_e/labelling_oct03_prog_e.htm
+http://www.wto.org/english/tratop_e/tpr_e/tp172_e.htm
+http://www.wto.org/english/tratop_e/tpr_e/tp55_e.htm
+http://www.wto.org/english/tratop_e/trips_e/art27_3b_background_e.htm
+http://www.wto.org/english/tratop_e/trips_e/art27_3b_e.htm
+http://www.wto.org/french/news_f/news00_f/traine_f.htm
+http://www.wtrg.com/daily/crudeoilprice.html
+http://www.wtrg.com/daily/heatingoilprice.html
+http://www.wtsmith.com/rt/ethics.html
+http://www.wtstravel.com/corporate.html
+http://www.wu-wien.ac.at/usr/h96b/h9650297/cap-basics.html
+http://www.wujs.org.il/activist/leadership/manual/self_management/time_management.shtml
+http://www.wumarkus.com/index.php?p=706
+http://www.wumcmckinney.org/history%20unabridged.htm
+http://www.wumingfoundation.com/english/giap/giapdigest11.html
+http://www.wun.ac.uk/news/article.php?id=9
+http://www.wunderland.com/WTS/Andy/EmptyCity/chapter35.html
+http://www.wunderland.com/WTS/Ginohn/games/HappyFunDie.html
+http://www.wunderland.com/WhatsOld/2005/WN.01.20.05.html
+http://www.wusc.ca/campuses/lc/deved/2003_04/chap4.asp
+http://www.wustl.edu/policies/infosecurity.html
+http://www.wutc.wa.gov/webdocs.nsf/0/5ffbcf2a1d8b3a638825680a007c30ba?OpenDocument
+http://www.wutka.com/hackingjava/ch20.htm
+http://www.wutka.com/hackingjava/ch40.htm
+http://www.wutsamada.com/alma/phlsci/ohear9.htm
+http://www.wvdep.org/Item.cfm?ssid=8&SS1ID=699
+http://www.wvdot.com/6_motorists/dmv/6g1e_practice.htm
+http://www.wvhdf.com/programs/homebuying.cfm
+http://www.wvi.org/wvi/asia_tsunami/asia_tsunami.htm
+http://www.wvinsurance.gov/agent/continuing_education_faqs.htm
+http://www.wvnps.org/earthworms.html
+http://www.wvrafting.com/rafting.cfm
+http://www.wvu.edu/~agexten/forestry/silvics.htm
+http://www.wvu.edu/~agexten/hortcult/fruits/grograps.htm
+http://www.wvu.edu/~agexten/hortcult/greenhou/ghprodct.htm
+http://www.wvu.edu/~lawfac/jelkins/imagine/failure_comment.html
+http://www.wvu.edu/~socjust/president.htm
+http://www.wvwc.edu/alu/makeagift.asp
+http://www.ww2bw.org/eforums
+http://www.ww2bw.org/professor%20advice
+http://www.ww2bw.org/themes
+http://www.wwar.com/categories/Academic/Film/
+http://www.wwar.com/categories/Commercial/Alphabetized/P/index9.html
+http://www.wwar.com/categories/Commercial/Art_Supplies/Easels/
+http://www.wwc.org.au/faq.html
+http://www.wwda.org.au/employsub.htm
+http://www.wwdemocracy.nildram.co.uk/democracy_today/german_greens.htm
+http://www.wweek.com/story.php?story=3904
+http://www.wweek.com/story.php?story=5716
+http://www.wwf.org.uk/news/scotland/n_0000001354.asp
+http://www.wwf.org.uk/researcher/issues/climatechange/0000000006.asp
+http://www.wwfpacific.org.fj/press_releases_pngwhales.htm
+http://www.wwlaw.com/trust.htm
+http://www.wwnorton.com/nael/20century/topic_3/welcome.htm
+http://www.wwnorton.com/rgguides/honeywallrgg.htm
+http://www.wwnytv.net/72k/full-story.asp?uid=6232&area=inside+wwny
+http://www.wwoof.org/prepare.asp
+http://www.wwp.brown.edu/texts/textlist.title.html
+http://www.wwpsa.com/
+http://www.wws.princeton.edu/~kling/mto/background.htm
+http://www.www-wholesale.com/
+http://www.wwwaif.net/scn/scn_GO_1.php
+http://www.wwwcoder.com/main/parentid/262/site/4129/68/Default.aspx
+http://www.wwwcoder.com/main/parentid/262/site/4129/68/default.aspx
+http://www.wyandot.org/saints.htm
+http://www.wyca.com/complnts/qmdc-com.htm
+http://www.wymaninstitute.org/
+http://www.wymaninstitute.org/articles/2004-01-fdrbook.php
+http://www.wyndhamvacationownership.com/careers.htm
+http://www.wynnster.co.uk/Review4.asp
+http://www.wyoea.org/nea%20programs/memberbenefits03.asp
+http://www.wyp2005.org/activities.html
+http://www.wyrdsmiths.com/index.php?fid=anappturn
+http://www.wz-berlin.de/ars/ab/previous.en.htm
+http://www.wz2k.co.uk/forum/index.php?showtopic=1426
+http://www.wzlet.org/marapril04.htm
+http://www.wzo.org.il/en/resources/view.asp?id=1378
+http://www.wzo.org.il/en/resources/view.asp?id=1461
+http://www.wzo.org.il/en/resources/view.asp?id=1472
+http://www.wzo.org.il/en/resources/view.asp?id=1472&subject=50
+http://www.wzo.org.il/en/resources/view.asp?id=306
+http://www.x-entertainment.com/messages/484.html
+http://www.x-plane.com/
+http://www.x10.com/products/firecracker_sitting2_br1ab.htm
+http://www.x10.com/security/x10_ds10a.htm
+http://www.xaac.com/paradise/VillasIguansaRanas.html
+http://www.xahlee.org/UnixResource_dir/writ/responsible_license.html
+http://www.xahlee.org/p/um/um-s15.html
+http://www.xahlee.org/p/um/um-s20.html
+http://www.xak.com/main/newsshow.asp?id=40869
+http://www.xalt.co.uk/exalt/communication/forum/topic.asp?whichpage=2&ARCHIVEVIEW=&TOPIC_ID=2561
+http://www.xanatos.com/FAQ.html
+http://www.xanga.com/groups/rnp.aspx?d=n&user=merlie16&id=196698
+http://www.xanga.com/home.aspx?user=Suicide_meadow
+http://www.xanga.com/home.aspx?user=rokorbust
+http://www.xanga.com/home.aspx?user=sdh25
+http://www.xaraya.com/documentation/phpxref/_variables/
+http://www.xbitlabs.com/articles/cpu/display/athlon64-fx57.html
+http://www.xbox365.com/news/news.cgi/article/EpVFuApVkEfccZcvbc0521
+http://www.xchangemag.com/articles/022feat4.html
+http://www.xciv.org/~meta/Journal/2004/04/
+http://www.xcountryab.net/ayd/developmentmodel.htm
+http://www.xeaglex.com/Page430.ProjectManagement.htm
+http://www.xefer.com/rebel/
+http://www.xenex.co.uk/default.aspx?WCI=Product&WCE=&id=20815
+http://www.xeni.net/images/boingboing/barlowfriendz_88_pox_americana.htm
+http://www.xenoclast.org/free-sklyarov-uk/2002-May/002175.html
+http://www.xenongames.com/ironclaw.htm
+http://www.xenophilia.com/zb/zb0012d.htm
+http://www.xenos.org/classes/leadership/planting.html
+http://www.xenos.org/ct_outln/accept1another.htm
+http://www.xenos.org/essays/innernt.htm
+http://www.xenotypetech.com/
+http://www.xensei.com/users/gamblet/RestructuringIII.htm
+http://www.xentrik.net/home/
+http://www.xentrik.net/scripts/
+http://www.xenu.net/archive/go/media/la290878.htm
+http://www.xenu.net/archive/thesis/cisar-findings.html
+http://www.xerocreative.com/yugioh/index.php?goto=readpost&f=83&t=118667
+http://www.xeromag.com/fvbdsm_scenarios.html
+http://www.xfcu.org/faqs_frequent.asp
+http://www.xiangtan.co.uk/england.htm
+http://www.ximeddoctors.com/specialist/senior.htm
+http://www.xlife.com.my/AMXT_CNTCounter.jsp?catid=C002&subcatid=S007&section=1&pagename=AMXT_CNTWC1978.jsp
+http://www.xlink2.com/REPLICA/clusterdescription.htm
+http://www.xmailserver.org/linux-patches/lnxsched.html
+http://www.xmfan.com/viewtopic.php?t=10330
+http://www.xmfan.com/viewtopic.php?t=31925&postdays=0&postorder=asc&start=75
+http://www.xmission.com/~country/chngwrld/chap9c.htm
+http://www.xmission.com/~emailbox/whycat.htm
+http://www.xmission.com/~spl_efx/
+http://www.xml.com/cs/user/view/cs_msg/1980
+http://www.xml.com/lpt/a/2001/02/07/schemarama.html
+http://www.xml.com/lpt/a/2002/03/27/qanda.html
+http://www.xml.com/lpt/a/2002/11/06/ontologies.html
+http://www.xml.com/lpt/a/2005/02/16/rest-report.html?x-t=tag.view
+http://www.xml.com/pub/2000/02/16/style/?wwwrrr_20000216.ptxt
+http://www.xml.com/pub/a/2000/01/10/perlwebtools.html
+http://www.xml.com/pub/a/2000/02/16/style/
+http://www.xml.com/pub/a/2000/06/21/deviant/
+http://www.xml.com/pub/a/2001/08/15/architecturalstyle.html
+http://www.xml.com/pub/a/2001/11/14/dom-sax.html
+http://www.xml.com/pub/a/2002/01/02/taglines.html
+http://www.xml.com/pub/a/2003/01/22/dive-into-xml.html
+http://www.xml.com/pub/a/2003/10/23/iswc.html
+http://www.xml.com/pub/a/2004/06/09/deviant.html
+http://www.xml.com/pub/a/2004/12/01/tr.html
+http://www.xml.com/pub/a/2005/01/26/hacking-ooo.html
+http://www.xml.com/pub/a/2005/02/16/rest-report.html
+http://www.xml.com/pub/a/2005/02/16/rest-report.html?page=last
+http://www.xmleurope.com/2002/bios/pz.asp
+http://www.xmlpitstop.com/xmlpitstop/cs/blogs/davidsilverlight/archive/2005/02.aspx
+http://www.xmpp.org/ietf-logs/marid@ietf.xmpp.org/2004-08-09.html
+http://www.xnewmedia.com/aboutus/faq.html
+http://www.xof1.com/aboututteambody.html
+http://www.xoltar.org/misc/static_typing_eckel.html
+http://www.xombified.com/general.html
+http://www.xoverboard.com/blogarchive/week_2005_05_15.html
+http://www.xp2004.de/xp2004/papersessions.htm
+http://www.xpats.com/clads/clads_display.php?Action=view&categorie=12&start=140
+http://www.xpats.com/clads/clads_display.php?Action=view&categorie=12&start=160
+http://www.xplanazine.com/archives/military_tech/index.php
+http://www.xposed.com/work_and_money/your_money/plenty_of_useful_information_on_pay_stubs.aspx
+http://www.xprizenews.org/index.php?p=654
+http://www.xps.org/xp-uvlinks.htm
+http://www.xray.ncsu.edu/GrowXtal.html
+http://www.xs4all.nl/~ahein/f00.html
+http://www.xs4all.nl/~jcdverha/scijokes/10.html
+http://www.xs4all.nl/~jcdverha/scijokes/1_4.html
+http://www.xs4all.nl/~jcdverha/scijokes/9.html
+http://www.xs4all.nl/~johanw/ds9-4.html
+http://www.xs4all.nl/~joz/swswspt.html
+http://www.xs4all.nl/~kspaink/cos/arspost/951115b.html
+http://www.xs4all.nl/~lploeger/TreeComp3.htm
+http://www.xs4all.nl/~oracle/mgarde/panous.txt
+http://www.xs4all.nl/~pwessel/
+http://www.xs4all.nl/~rabruil/tonearm.html
+http://www.xs4all.nl/~stgvisie/VISIE/du-briefing-15-3-2003.html
+http://www.xs4all.nl/~tank/spg/mumia-eu/countr/00-06-07-poli.htm
+http://www.xs4all.nl/~wichm/precepts.html
+http://www.xsorbit1.com/users/davec/index.cgi?board=8&action=display&num=1106755762
+http://www.xstreamsoftware.com/news_brandon-hall_elearning_award_silver.htm
+http://www.xtracycle.com/html/shopproduct_info.php?cPath=1&products_id=73
+http://www.xtracycle.com/html/shopproduct_info.php?cPath=4&products_id=73
+http://www.xtracycle.com/html/shopproduct_info.php?products_id=73
+http://www.xtreeme.com/forum/archive/o_t__t_198__lost-settings.html
+http://www.xtreme-profits.com/targets/BanXReg.asp
+http://www.xtrememass.com/forum/printthread.php?t=4766
+http://www.xtrememind.com/Subliminal_Matrix.htm
+http://www.xtremerecruiting.org/blog/archives/ss/000434.html
+http://www.xtvworld.com/tv/understandingtv/satellite_imports-better.htm
+http://www.xula.edu/facility/srappa/
+http://www.xula.edu/herald/issues/20050303/living.html
+http://www.xula.edu/uc/UC-MUSIC.html
+http://www.xulplanet.com/ndeakin/archive/2004/6/
+http://www.xulplanet.com/ndeakin/archive/2005/6/9/
+http://www.xulplanet.com/ndeakin/article/307?show=c
+http://www.xvsxp.com/fonts/
+http://www.xxxglass.com/testimonials.html
+http://www.xyonline.net/ColourP.shtml
+http://www.y-axis.com/doctors/news.shtml
+http://www.yachtcoronet.org/history.htm
+http://www.yachtsurvey.com/
+http://www.yaelf.com/history.shtml
+http://www.yaelf.com/questions.shtml
+http://www.yaffa.com.au/defence/current/8-100.htm
+http://www.yahind.com/regional/ksa/economic.shtml
+http://www.yahoo.com/picks/971110.html
+http://www.yahoo.com/s/38862
+http://www.yakface.com/yaknews/arc2-2002.shtml
+http://www.yale.edu/chess/imchess.html
+http://www.yale.edu/cral/dissem4.html
+http://www.yale.edu/drama/academics/acting/plan.html
+http://www.yale.edu/drama/academics/design/
+http://www.yale.edu/equalopportunity/policies/
+http://www.yale.edu/fescareers/interview_questions.htm
+http://www.yale.edu/filmstudiesprogram/undergrad.html
+http://www.yale.edu/forestry/handbook/03resources.html
+http://www.yale.edu/forestry/popup/student_orgs/list.html
+http://www.yale.edu/glc/archive/927.htm
+http://www.yale.edu/history/gradstudents/working-groups.html
+http://www.yale.edu/hronline/compclas/c&tquest.htm
+http://www.yale.edu/iefp/studyabroad/returned.html?mm=1
+http://www.yale.edu/lawweb/avalon/nato.htm
+http://www.yale.edu/lawweb/avalon/wwii/yalta.htm
+http://www.yale.edu/opa/president/speeches/20011012.html
+http://www.yale.edu/provost/handbook/handbook_xi__other_university_policies_a.html
+http://www.yale.edu/rjsternberg/
+http://www.yale.edu/sfas/registrar/
+http://www.yale.edu/support/dsp/dsp_sla.htm
+http://www.yale.edu/yalecollege/publications/ycps/chapter_iii/other.html
+http://www.yale.edu/yalecollege/publications/ycps/chapter_iv/applied_mathematics.html
+http://www.yale.edu/yalecollege/publications/ycps/chapter_iv/film.html
+http://www.yale.edu/ycias/pier/resources/lessons/eu.htm
+http://www.yale.edu/ynhti/curriculum/indexes/
+http://www.yale.edu/ynhti/curriculum/units/1980/1/80.01.08.x.html
+http://www.yale.edu/ynhti/curriculum/units/1984/5/84.05.03.x.html
+http://www.yale.edu/ynhti/curriculum/units/1989/7/89.07.05.x.html
+http://www.yale.edu/ynhti/curriculum/units/1991/4/91.04.08.x.html
+http://www.yale.edu/ynhti/curriculum/units/1996/2/96.02.03.x.html
+http://www.yale.edu/ynhti/curriculum/units/1998/7/98.07.05.x.html
+http://www.yalealumnimagazine.com/issues/93_11/new_haven.html
+http://www.yalealumnimagazine.com/issues/96_10/teaching.html
+http://www.yalealumnimagazine.com/issues/98_10/couples.html
+http://www.yaledailynews.com/article.asp?AID=11064
+http://www.yaledailynews.com/article.asp?AID=26135
+http://www.yaleherald.com/archive/xxix/2000.03.24/ae/p11skulls.html
+http://www.yaleherald.com/archive/xxvii/1999.02.05/sports/p26hockey.html
+http://www.yaleherald.com/archive/xxviii/1999.09.17/opinion/p09yorksquare.html
+http://www.yaleherald.com/article-p.php?Article=1162
+http://www.yaleherald.com/article-p.php?Article=4001
+http://www.yaleherald.com/article-p.php?Article=4172
+http://www.yaleherald.com/article.php?Article=1162
+http://www.yaleherald.com/article.php?Article=2252
+http://www.yaleherald.com/article.php?Article=4001
+http://www.yaleherald.com/article.php?Article=4147
+http://www.yamaha-europe.com/yamaha_europe/uk/service/010_artist/artists_guitars/mike_stern/
+http://www.yana.org/aboutbld.htm
+http://www.yandina.com/TeakDeck.htm
+http://www.yangonow.com/eng/magazine/from_myanmar/200210.html
+http://www.yankeepotroast.org/
+http://www.yap-cfd.de/workcamps/1tschechien.html
+http://www.yapartstudioandgallery.com/_about-yap.htm
+http://www.yaridanjo.warmkessel.com/yaridanjo/fear.html
+http://www.yarnivore.com/runblog/
+http://www.yarrahealing.melb.catholic.edu.au/kulin/w_story.html
+http://www.yasoo.com/yourantioxstatus.htm
+http://www.ybam.org.my/english/public/edhamma/basic5.htm
+http://www.ybe2004.nsw.gov.au/ybe2004debate.html
+http://www.ybonline.co.uk/0,,52494.html
+http://www.ybw.com/
+http://www.ybw.com/auto/newsdesk/20041101132742mbynews.html
+http://www.ybw.com/ym/roundtheisland05/hints_and_tips.html
+http://www.ycare.org.uk/?lid=769
+http://www.ycsi.net/users/gunsmith/about.htm
+http://www.ycyhealth.com/products/exerciser/ElectricCardioExercise/eletriccardioexercise.shtml
+http://www.ydr.com/page/history/articles/
+http://www.ydr.com/page/ninemonths/articles/
+http://www.ydrf.com/makingit/
+http://www.yeahbutisitart.com/
+http://www.yearoflanguages.org/
+http://www.yearoutgroup.org/organisations.htm
+http://www.yedaplus.co.il/faq.asp
+http://www.yellow-turtle.com/store/?action=browse&CategoryNum=3074234888191822
+http://www.yellow.co.nz/site/cruickshankpryde/
+http://www.yellowjacketsystems.com/jimball/scale-data/scale.htm
+http://www.yellowpages.co.id/useful/partner.asp?page=11&ID1=
+http://www.yellowpages.co.nz/
+http://www.yellowstoneflyfishing.com/nw.htm
+http://www.yelobk.com/ybnews_online/ybarticle.cgi?id=916
+http://www.yemenembassy.org/economic/IMFInYemen.htm
+http://www.yementimes.com/article.shtml?i=750&p=front&a=1
+http://www.yeoviltownfc.net/matchreport_detail.php?fixture_id=36
+http://www.yes-minister.com/places.htm
+http://www.yes-minister.com/ymseas3a.htm
+http://www.yesmagazine.com/article.asp?ID=939
+http://www.yesmagazine.org/27government/sifry.htm
+http://www.yesmail.com/downloads/solutions_Enterprise.html
+http://www.yesnetwork.com/announcers/article.asp?article_id=390
+http://www.yesterland.com/canoes.html
+http://www.yesweb.org/gkr/project_factsheet.html?pid=655
+http://www.yesweb.org/gkr/project_factsheet.html?pid=756
+http://www.yesweb.org/gkr/project_factsheet.html?pid=84
+http://www.yesweb.org/gkr/project_factsheet.html?pid=881
+http://www.yesweb.org/gkr/project_factsheet.html?pid=961
+http://www.yesweb.org/gkr/searchresults.html?focus=11
+http://www.yesweb.org/gkr_project_factsheet.html?pid=744
+http://www.yesweb.org/gkr_project_factsheet.html?pid=829
+http://www.yewknee.com/
+http://www.yfccanada.com/Newsroom/DirectorLetters/default.asp?letter_id=10
+http://www.yfnta.org/community/Profile.asp?First_Nation=3
+http://www.yforum.com/best020600.html
+http://www.yha.org.uk/hostel/hostelpages/240.html
+http://www.yhchambers.org/iframes/about_region.htm
+http://www.yhgfl.net/Moving_Here.395.0.html
+http://www.yieldwerx.com/reportsoverview.htm
+http://www.yin-yang-colonics.com/archivesANDnewsletters/NL_Nov_Dec_03.htm
+http://www.yk.psu.edu/currentstudents/studentservices/studentlife/morethanacademics/clubs/index.shtml
+http://www.yk.psu.edu/news.php
+http://www.ykhc.org/501.cfm
+http://www.yknotsailing.org/regatta/nor.php
+http://www.yle.fi/export/synop_fic.htm
+http://www.ymca.org.uk/pooled/articles/BF_NEWSART/view.asp?Q=BF_NEWSART_130270
+http://www.ynot.motime.com/
+http://www.ynpn.org/banjo/ol_book/chp1.htm
+http://www.ynypu.org.uk/erdp/overview.stm
+http://www.yodajeff.com/scripts/episode1/
+http://www.yodaslair.com/dumboozle/eurojazz/eurodex.html
+http://www.yoell.fsnet.co.uk/HotPotatoes.htm
+http://www.yogaatwork.co.uk/meditation.htm
+http://www.yogajournal.com/newtoyoga/151.cfm
+http://www.yogajournal.com/newtoyoga/819_4.cfm
+http://www.yogajournal.com/views/1317_1.cfm
+http://www.yogamoves.nl/classes/schedulesummer05.html
+http://www.yogitea.com/FAQ/FAQ.html
+http://www.york-tourism.co.uk/Visitors/showall.cfm?showtype=attraction&section=Visitors
+http://www.york-tourism.co.uk/media/Newsletter.cfm?NewsLetterID=1
+http://www.york-tourism.co.uk/partnership/Newsletter.cfm?NewsLetterID=3
+http://www.york-tourism.co.uk/residents/questionnaire.cfm
+http://www.york-united-kingdom.co.uk/alternative/gay/
+http://www.york.ac.uk/admin/intnat/current/yas.html
+http://www.york.ac.uk/admin/intnat/prospective/countries/india.htm
+http://www.york.ac.uk/admin/intnat/prospective/sources_advice.html
+http://www.york.ac.uk/admin/intnat/visiting/dept/music.html
+http://www.york.ac.uk/admin/persnl/promotion/admin/adm_analytic.htm
+http://www.york.ac.uk/admin/presspr/pressreleases/oilseed.htm
+http://www.york.ac.uk/careers/events/termprog.htm
+http://www.york.ac.uk/commercialservices/environmental.html
+http://www.york.ac.uk/depts/hist/graduate/ma_dipl.shtml
+http://www.york.ac.uk/depts/hist/heritage/anglia.htm
+http://www.york.ac.uk/depts/hist/heritage/ports.htm
+http://www.york.ac.uk/healthsciences/centres/trials/abouttheunit.htm
+http://www.york.ac.uk/inst/cms/Staff/directory.htm
+http://www.york.ac.uk/inst/cms/gsp/ma-new.htm
+http://www.york.ac.uk/inst/cms/gsp/modules.htm
+http://www.york.ac.uk/inst/cms/research/imb.htm
+http://www.york.ac.uk/inst/cms/resources/manuscripts/darold.htm
+http://www.york.ac.uk/inst/crd/fluorid4b.htm
+http://www.york.ac.uk/inst/crd/listnotpub.htm
+http://www.york.ac.uk/inst/eau/forum98.htm
+http://www.york.ac.uk/inst/eau/forum99.htm
+http://www.york.ac.uk/newstudent/pgreturn.htm
+http://www.york.ac.uk/org/ciec/CCI_Autumn_2002_News.htm
+http://www.york.ac.uk/org/ciec/CCI_Spring_2004_News.htm
+http://www.york.ac.uk/org/ciec/CCIlAutumn2002/CCINewslettter2002.htm
+http://www.york.ac.uk/org/ciec/secondary_publications.htm
+http://www.york.ac.uk/org/cnap/06_news/06n_article13/06n_article13.htm
+http://www.york.ac.uk/recordsmanagement/dpa/dppolicy2002.htm
+http://www.york.ac.uk/recordsmanagement/foia/intro.htm
+http://www.york.ac.uk/services/careers/current/inforoom/handouts/applications.htm
+http://www.york.ac.uk/services/library/subjects/econint.htm
+http://www.york.ac.uk/univ/org/learntech/olsig/03-sep30.htm
+http://www.york.ac.uk/univ/unions/msf/
+http://www.york.com/invest/NewsItem.asp?cid=214
+http://www.york.com/invest/NewsItem.asp?cid=242
+http://www.york.curlingclub.ca/events.htm
+http://www.york.gov.uk/cgi-bin/wn_document.pl?type=5330
+http://www.york.gov.uk/cgi-bin/wn_document.pl?type=5337
+http://www.york.gov.uk/housing/groups/kingsway.html
+http://www.york.gov.uk/housing/rentarrears.html
+http://www.york.gov.uk/parking/pcn/paying.html
+http://www.york.gov.uk/parking/stleonards.html
+http://www.york.townplan.org/right/beacon/beacon.htm
+http://www.yorkagainstthewar.org.uk/
+http://www.yorkartgallery.org.uk/news.php
+http://www.yorkcastle.com/pages/news2001.html
+http://www.yorkcity.org/
+http://www.yorkcity.org/cityservices/hr/jobopp.htm
+http://www.yorkcounty.gov/econdev/demographics/population.htm
+http://www.yorkcountygov.com/fireprev/investigation.asp
+http://www.yorkcvs.org.uk/advice.htm
+http://www.yorkcvs.org.uk/priory.htm
+http://www.yorkcvs.org.uk/voluntaryvoice.htm
+http://www.yorkdataservices.com/index.asp?modeID=Content&uID=313
+http://www.yorkemc.co.uk/conferences/railway/agrri-qa.html
+http://www.yorkfair.org/history.htm
+http://www.yorkharborinn.com/About%20Us/directions.htm
+http://www.yorklandtrust.org/news_08.15.03_portsherald.html
+http://www.yorkmaine.org/
+http://www.yorkminster.org/history8.shtml
+http://www.yorknewstimes.com/leadership2003/profiles/pro_RodDebuhr.shtml
+http://www.yorknewstimes.com/stories/061505/editorial_sales16.shtml
+http://www.yorkopenhouse.com/
+http://www.yorkopenhouse.com/privacy_policy.asp
+http://www.yorkpete.co.uk/blog/
+http://www.yorkphoto.com/default/jsp/popups/popup_privacy.jsp
+http://www.yorkphoto.com/privacy/t_=0
+http://www.yorkracecourse.co.uk/morenews.asp?id=50
+http://www.yorkracecourse.co.uk/tncs.asp
+http://www.yorkregion.com/yr/carrier/
+http://www.yorkregion.com/yr/classads/communitynotices/deaths/
+http://www.yorkregion.com/yr/classads/communitynotices/inmemoriam/
+http://www.yorkregiontransit.com/default.asp
+http://www.yorkregiontransit.com/faq.asp
+http://www.yorkregiontransit.com/specialized.asp
+http://www.yorkschools.org/policy/policy.htm
+http://www.yorkshire-evening-post.co.uk/ViewArticle2.aspx?SectionID=55&ArticleID=916895
+http://www.yorkshire-forward.com/
+http://www.yorkshiretoday.co.uk/ViewArticle2.aspx?SectionID=105&ArticleID=920931
+http://www.yorkshiretoday.co.uk/ViewArticle2.aspx?SectionID=55&ArticleID=1014911
+http://www.yorkshiretoday.co.uk/ViewArticle2.aspx?SectionID=55&ArticleID=916895
+http://www.yorkshirevisitor.com/exec/118288/4438/
+http://www.yorkshirevisitor.com/exec/118288/4438/-/-/NDpVS19VS1dFQjIxNTc1MzA5OlVLX1VLV0VCMTExODA1MTM6RU5HTElTSDpVUzoxMTA3NTcxMTg3OjExMDc1NzQzOTI6Ojo=
+http://www.yorkshirevisitor.com/exec/118288/4438/PROFILE=
+http://www.yorkshirevisitor.com/exec/122476/10557/PROFILE=NDpVS19VS1dFQjE5ODI5MTEyOlVLX1VLV0VCMTA0MzE3Njc6RU5HTElTSDpVUzoxMTA2MTc2OTI2OjExMDYxODAwMzU6Ojo=
+http://www.yorkshirevisitor.com/exec/122514/6390/pcode=GBYTB1130H,database=twn_p_ytb
+http://www.yorkshirevisitor.com/exec/122514/6390/pcode=GBYTB3554H,database=twn_p_ytb
+http://www.yorku.ca/admissio/newsletter/
+http://www.yorku.ca/careers/resources/workopolisCampus.htm
+http://www.yorku.ca/careers/tbc/archive/participating_fes_04.htm
+http://www.yorku.ca/cdc/lsp/eponline/exam4.htm
+http://www.yorku.ca/cerlac/deep-integration.html
+http://www.yorku.ca/crws/network/english/announce.htm
+http://www.yorku.ca/cst/core/vol13no2/uskul.html
+http://www.yorku.ca/cst/core/vol13no3/runte.html
+http://www.yorku.ca/cst/ideas/resources/41ways.html
+http://www.yorku.ca/daycare/october2.htm
+http://www.yorku.ca/dohs/ergonomics/sitting.htm
+http://www.yorku.ca/foundation/arts_giving_opps.html
+http://www.yorku.ca/igreene/halpern.html
+http://www.yorku.ca/igreene/theoretical2.html
+http://www.yorku.ca/mack/nordichi2002-shortpaper.html
+http://www.yorku.ca/mediar/releases_1996_2000/archive/pmr1998a.htm
+http://www.yorku.ca/secretariat/documents/2020Vision.htm
+http://www.yorku.ca/secretariat/senate/committees/scotl/bulletin2.htm
+http://www.yorku.ca/secretariat/senate/minutes/1997-1998/980226.html
+http://www.yorku.ca/secretariat/senate/minutes/2002-2003/021212.htm
+http://www.yorku.ca/web/about_yorku/privacy.html
+http://www.yorku.ca/web/futurestudents/newsletter/2004jun.htm
+http://www.yorku.ca/ycom/gazette/past/archive/040798.htm
+http://www.yorku.ca/ycom/gazette/past/archive/110399/issue.htm
+http://www.yorku.ca/ycom/gazette/past/archive/2001/031401/issue.htm
+http://www.yorku.ca/yfile/archive/index.asp?IssueDate=10/1/2004&section=Today@York
+http://www.yorku.ca/yorkisu/web/People/directorspecial.asp
+http://www.yosemite.ca.us/history/the_yosemite_book/chapter_5.html
+http://www.yosemite.ca.us/john_muir_writings/the_yosemite/chapter_6.html
+http://www.yoshinoantiques.com/Interior-article.html
+http://www.yoshkar-ola.com/e/personal/goodbye.shtml
+http://www.youcanbefit.com/runstr.html
+http://www.youdebate.com/DEBATES/clinton_home_loan.HTM
+http://www.yougov.com/yougov_website/asp_besPollContent/bes_polMain.asp?aId=636&sID=4&pID=1&wId=0&UID=
+http://www.youhaventlived.com/isif/isif65.htm
+http://www.youmeworks.com/negativebias.html
+http://www.youmustact.com/acqnice.html
+http://www.youneedabudget.com/
+http://www.youngagain2000.com/lipitor.html
+http://www.youngbiz.com/Volunteerz/GivingBack/TraceesJobs.htm
+http://www.youngbiz.com/yb_mag_news/2001youngbiz100/html/practical.htm
+http://www.younglaborleft.org/node/229
+http://www.youngmath.net/archive/V03/vol3.34
+http://www.youngminds.org.uk/magazine/56/
+http://www.youngminds.org.uk/whosecrisis/2/policy.php
+http://www.youngwomenshealth.org/collegehealth5.html
+http://www.youns.com/memoriam/qbert.asp
+http://www.yourcareertraining.com/hotel-restaurant-management-colleges.htm
+http://www.yourcatholicvoice.org/index.php?id=6
+http://www.yourcatholicvoice.org/index.php?id=article&article=1620
+http://www.yourcatholicvoice.org/index.php?id=article&article=840
+http://www.yourcropshop.com/descriptions.htm
+http://www.yourdiseaserisk.harvard.edu/hccpquiz.pl?lang=english&func=show&page=glossary
+http://www.yourdoctorinthefamily.com/grandtheory/section4_2.htm
+http://www.yourestate.com.au/realestate/queensland/commercial/sale/properties_4_QLD_3.php
+http://www.yourfamilyshealth.com/cardiology/fear/
+http://www.yourfamilyshealth.com/kids_health/latch_key_kids/
+http://www.yourhorseshealth.com/health_care/dental_care.html
+http://www.yourhtmlsource.com/myfirstsite/basicformatting.html
+http://www.yourmortgage.co.uk/news.htm
+http://www.yourneighborhoodnews.com/archives/2004/bowarc072904.html
+http://www.yourparty.org/aboutus/qanda.jsp
+http://www.yourrights.org.uk/about-this-site/contact/index.shtml
+http://www.yourselffitness.com/forum/rssfeed.aspx?id=13&Task=ForumRSS
+http://www.yourvirtualresource.com/onlinepresence.htm
+http://www.youth.net/memories/hypermail/0617.html
+http://www.youth.net/nsrc/sci/sci051.html
+http://www.youthartsonline.org/filmandvideo/interviews/details/18
+http://www.youthlearn.org/learning/teaching/questions.asp
+http://www.youthlinks.org/article.do?articleID=1732
+http://www.youthmusic.org.uk/about_us.jsp
+http://www.youthoptions.ca/view_article.cfm?RecordID=54
+http://www.youthpastor.com/lessons/index.cfm/Evangelism-Methods_of_Evangelistic_Contact_10.htm
+http://www.youthradio.org/health/010702_doubleeyelid.shtml
+http://www.youthrights.org/forums/showpost.php?p=36726&postcount=15
+http://www.youthrights.org/forums/showthread.php?goto=lastpost&t=134
+http://www.youthrights.org/forums/showthread.php?t=1198&page=3&pp=20
+http://www.youthrights.org/forums/showthread.php?t=2594
+http://www.youthrights.org/forums/showthread.php?t=2900
+http://www.youthspecialties.com/articles/topics/campus_ministry/confessions.php
+http://www.youthspecialties.com/articles/topics/power/tipping.php
+http://www.youthspecialties.com/articles/topics/theology/identity.php
+http://www.ypn.co.uk/ViewArticle2.aspx?SectionID=55&ArticleID=1054117
+http://www.yrtk.org/
+http://www.ysearchblog.com/archives/000074.html
+http://www.ysiste.com/index.php?option=content&task=view&id=33
+http://www.ysrnry.co.uk/articles/wheretimestoodstill.htm
+http://www.ysu.edu/cisp/international/information.shtml
+http://www.ytedk.com/chapter4.htm
+http://www.yubasutterchamber.com/directory/cw_mvvv.htm
+http://www.yudkin.com/majormagazines.htm
+http://www.yudkin.com/slfaq.htm
+http://www.yukia.ca/libraries20/SpLib24/help/sinstr4.cfm
+http://www.yukia.yk.net/libraries20/SpLib24/help/sinstr4.cfm
+http://www.yukoncurling.ca/rules.html
+http://www.yukoner.com/service.htm
+http://www.yukos.com/RM/Plans_and_Projects.asp
+http://www.yummynuggets.com/index.php?m=200311
+http://www.yurasko.net/wfy/
+http://www.yusu.org/
+http://www.yusu.org/societies/all-new.jsp
+http://www.yusu.org/societies/hoby-new.jsp
+http://www.yworks.com/en/company_legal_licenseterms.htm
+http://www.z-golf.com/pages/reviews.htm
+http://www.z57.net/realtor_info/tips/buyingtips.html
+http://www.z90.com/
+http://www.zacksadvisor.com/
+http://www.zafu.net/whatswrong.html
+http://www.zakkacorp.com/store.php
+http://www.zamandayolculuk.com/cetinbal/TimeTravelWarpDrive.htm
+http://www.zamfaraonline.com/sharia/chapter02.html
+http://www.zangband.org/Docs/Attack.aspx
+http://www.zanthan.com/japan/nihongo/
+http://www.zap2it.com/movies/go?path=/movies/boxoffice/story&general_id=11234
+http://www.zapthink.com/report.html?id=ZAPFLASH-10132004
+http://www.zarcrom.com/users/alzheimers/t-07.html
+http://www.zardoz.net/people/rmacd/rare/text/ch02.htm
+http://www.zardoz.net/people/rmacd/rare/text/ch03.htm
+http://www.zchor.org/poniatowa/poniatowa.htm
+http://www.zdnet.com.au/reviews/coolgear/audio/0,39023372,39116187,00.htm
+http://www.zdnetasia.com/insight/specialreports/0,39044853,39209632-6,00.htm
+http://www.zdnetindia.com/supercentre/mobiles/expresssearchresults.html?submit=submit
+http://www.zealllc.com/2004/eurogold.htm
+http://www.zealllc.com/2004/goldoil3.htm
+http://www.zealllc.com/2004/huilev.htm
+http://www.zealllc.com/2004/rdollar2.htm
+http://www.zealllc.com/2004/rdollar3.htm
+http://www.zealllc.com/2005/nofear2.htm
+http://www.zebrafinch-society.org/candler.htm
+http://www.zefrank.com/orchidectomy/
+http://www.zeldacentral.net/shistory.shtml
+http://www.zeldman.com/
+http://www.zen-deshimaru.com/questions/afficher.php?langue=en&no=178
+http://www.zenarchery.com/index.php?cat=9
+http://www.zend.com/zend/trick/tricks-sept-2001.php?article=tricks-sept-2001&kind=tr&id=333&open=1&anc=0&view=1
+http://www.zend.com/zend/tut/calendar-ver7f.php
+http://www.zend.com/zend/tut/tutorial-johnson2.php?article=tutorial-johnson2&kind=t&id=1902&open=1&anc=0&view=1
+http://www.zenhex.com/quiz.php?id=2311
+http://www.zenith-healing.com/essential_oils.htm
+http://www.zenith-watches.com/scripts/getpage.asp?pageid=2&LangID=0&newsid=8
+http://www.zerge.com/stars/
+http://www.zerobeat.net/tasrt/c12.htm
+http://www.zerocut.com/tech/vid_film.html
+http://www.zerointelligence.net/archives/000591.php
+http://www.zeromillion.com/business/international/exporting-business-plan.html
+http://www.zeromillion.com/business/standing-out.html
+http://www.zeropaid.com/news/articles/auto/01172005d.php
+http://www.zeropoint.ca/microcosm_4-7bleonmaurer.htm
+http://www.zerotosixfigures.com/
+http://www.zerotothree.org/brainwonders/parents-birth2.html
+http://www.zerotothree.org/peer.html
+http://www.zerotothree.org/tips/RELATE.HTM
+http://www.zerowasteamerica.org/Landfills.htm
+http://www.zetaminor.com/cult/when_boat/when_boat_s1_v3.htm
+http://www.zetatalk.com/index/psdate2.htm
+http://www.zeus-publications.com/black_sunrise.htm
+http://www.zeus-publications.com/invisible_opponent.htm
+http://www.zevgroup.com/email.html
+http://www.zfm.ethz.ch/e/res/bio/
+http://www.zhealthinfo.com/bees-oils.htm
+http://www.zhong-ding.com/eventsuk.htm
+http://www.zhuo.org/htmlarea/?nid=526
+http://www.zieringmedical.com/abdrziering.html
+http://www.ziggy.com.au/news.htm
+http://www.zigzagdesign.co.uk/web_design.htm
+http://www.zilkha.com/jobs.asp
+http://www.zillions-of-games.com/
+http://www.zim.mpg.de/openaccess-berlin/pressstatement.html
+http://www.zimbel.com/cat-choral.html
+http://www.zimfest.org/2005/workshops/index.php?key=category&value=marimba&cmenu=1&smenu=0&tmenu=0
+http://www.zimmer.com/ctl?op=global&action=1&template=CP&id=2927
+http://www.zimrelief.info/
+http://www.zionsbank.com/internet_access_agreement.jsp?leftNav=&topNav=
+http://www.zisman.ca/Articles/2004/biv790.html
+http://www.zlatan.net/main.htm
+http://www.zli.bus.umich.edu/events_programs/busplan_competition.asp
+http://www.zmag.org/0018.htm
+http://www.zmag.org/Commentaries/why_do_we.htm
+http://www.zmag.org/ZMag/articles/albert3.htm
+http://www.zmag.org/ZMag/articles/february02vandepitte.htm
+http://www.zmag.org/ZMag/articles/jan01giroux.htm
+http://www.zmag.org/ZMag/articles/july00barsamian.htm
+http://www.zmag.org/ZMag/articles/oct1999chomsky.htm
+http://www.zmag.org/ZSustainers/ZDaily/2000-04/02albert.htm
+http://www.zmag.org/albertpa.htm
+http://www.zmag.org/blackcongsucc.htm
+http://www.zmag.org/content/MainstreamMedia/edwards_buryingbusiness.cfm
+http://www.zmag.org/content/Race/wise_mlk.cfm
+http://www.zmag.org/content/TerrorWar/glass_campxray.cfm
+http://www.zmag.org/content/TerrorWar/nass_anthrax-vaccine.cfm
+http://www.zmag.org/content/VisionStrategy/StarhawkWEF.cfm
+http://www.zmag.org/content/VisionStrategy/open_letter_.cfm
+http://www.zmag.org/content/print_article.cfm?itemID=4000&sectionID=44
+http://www.zmag.org/content/print_article.cfm?itemID=7996&sectionID=72
+http://www.zmag.org/content/showarticle.cfm?ItemID=3142
+http://www.zmag.org/content/showarticle.cfm?ItemID=3952
+http://www.zmag.org/content/showarticle.cfm?ItemID=5368
+http://www.zmag.org/content/showarticle.cfm?ItemID=7210
+http://www.zmag.org/content/showarticle.cfm?SectionID=&ItemID=6082
+http://www.zmag.org/content/showarticle.cfm?SectionID=1&ItemID=2758
+http://www.zmag.org/content/showarticle.cfm?SectionID=1&ItemID=6957
+http://www.zmag.org/content/showarticle.cfm?SectionID=11&ItemID=5165
+http://www.zmag.org/content/showarticle.cfm?SectionID=15&ItemID=8098
+http://www.zmag.org/content/showarticle.cfm?SectionID=22&ItemID=2547
+http://www.zmag.org/content/showarticle.cfm?SectionID=26&ItemID=6663
+http://www.zmag.org/content/showarticle.cfm?SectionID=30&ItemID=3100
+http://www.zmag.org/content/showarticle.cfm?SectionID=30&ItemID=5556
+http://www.zmag.org/content/showarticle.cfm?SectionID=32&ItemID=5779
+http://www.zmag.org/content/showarticle.cfm?SectionID=41&ItemID=4758
+http://www.zmag.org/content/showarticle.cfm?SectionID=41&ItemID=8158
+http://www.zmag.org/content/showarticle.cfm?SectionID=44&ItemID=3492
+http://www.zmag.org/content/showarticle.cfm?SectionID=44&ItemID=4000
+http://www.zmag.org/content/showarticle.cfm?SectionID=5&ItemID=1389
+http://www.zmag.org/content/showarticle.cfm?SectionID=67&ItemID=6783
+http://www.zmag.org/content/showarticle.cfm?SectionID=74&ItemID=7963
+http://www.zmag.org/content/showarticle.cfm?SectionID=87&ItemID=6151
+http://www.zmag.org/content/showarticle.cfm?itemid=7963
+http://www.zmag.org/crisescurevts/milosevic_indictment.htm
+http://www.zmag.org/dominickcalam.htm
+http://www.zmag.org/econboost.htm
+http://www.zmag.org/loriberenson.htm
+http://www.zmag.org/parecon/writings/albert_ship.htm
+http://www.zmag.org/zmag/articles/barsaid.htm
+http://www.zmag.org/zmag/articles/catch22.htm
+http://www.znclaw.com/6%20Library%20Pages/6pr2.html
+http://www.zogby.com/news/051004.html
+http://www.zok.com/products/whywash.htm
+http://www.zoladex.com/professional/rec/
+http://www.zompist.com/amercult.html
+http://www.zompist.com/canada.html
+http://www.zompist.com/dutchcult.html
+http://www.zompist.com/excess.html
+http://www.zona-pellucida.com/importance2.html
+http://www.zonaeuropa.com/20050617_2.htm
+http://www.zondervanchurchsource.com/CLIP/
+http://www.zonezero.com/magazine/articles/hernandez/hernande3.html
+http://www.zonezero.com/magazine/dcorner/texto5.html
+http://www.zoo.co.uk/~z0001039/PracGuides/pg_classes.htm
+http://www.zoo.ox.ac.uk/newsite/groups/mathbiol/may-bio.html
+http://www.zoo.ufl.edu/hjb/
+http://www.zoo.utoronto.ca/able/news/fall2003/budd-gps-article-f03.htm
+http://www.zoo.utoronto.ca/able/volumes/vol-19/mini/10-frame/10-frame.htm
+http://www.zoolex.org/publication/lozano/thesis/sect4.html
+http://www.zoology.ubc.ca/bpg/Advising/plagiarism.htm
+http://www.zoology.ubc.ca/bpg/Plagiarism.htm
+http://www.zoology.ubc.ca/~lacombe/biomania/biol353/lab353/howto/mthds/vo2rsp/smlvrt.htm
+http://www.zoom.com/techsupport/warranty_limited_broadband.html
+http://www.zoomandgo.com/learnhowto/videos_equipment.asp
+http://www.zoomjobs.com/site.pages/lib-age_employment.html
+http://www.zoomwhales.com/subjects/dinosaurs/dinos/Allosaurus.shtml
+http://www.zoomwhales.com/subjects/dinosaurs/dinos/Spinosaurus.shtml
+http://www.zoophile.net/gardengoats.php
+http://www.zoophile.net/howto-k9-sex-04.php
+http://www.zooscape.com/cgi-bin/maitred/WhitePulp/isbn0393322548
+http://www.zoroastrian.org/GathaSongs/song14.htm
+http://www.zorrapredictions.com/fshui/fs_face/face08.htm
+http://www.zpenergy.com/modules.php?name=News&file=article&sid=1013
+http://www.zpinaddict.com/parishtm/enwal98.htm
+http://www.zpub.com/sf/history/sfh-3.html
+http://www.zpub.com/sf50/sf/hbtbc10.htm
+http://www.zpub.com/sf50/sf/hbtbc6.htm
+http://www.zsa.ca/En/Articles/article.php?aid=1254
+http://www.zulenet.com/VladimirDimitrov/pages/LearnEcologyHuman.html
+http://www.zv.uni-wuerzburg.de/forschungsbericht/FOBE-akt/swe-t.htm
+http://www.zvis.com/dep/depspecs.shtml
+http://www.zvon.org/xxl/XSLTreference/Output/xslt_otherwise.html
+http://www.zwire.com/site/myzwire.cfm?BRD=1091&dept_id=343157&newsid=14586844&PAG=461&rfi=9
+http://www.zyen.com/Knowledge/Articles/looking_dapr.htm
+http://www.zygmuntfrankel.com/zf201.html
+http://www.zygmuntfrankel.com/zf521.html
+http://www.zyra.org.uk/butlins.htm
+http://www.zyvex.com/nano/
+http://www.zyvex.com/nanotech/selfRepJBIS.html
+http://www.zyworld.com/MFedin/RR/Nov14.htm
+http://www0.gsb.columbia.edu/students/organizations/ddsa/taskforce.htm
+http://www0.un.org/cyberschoolbus/peacekeeping/unit2s.html
+http://www1.agric.gov.ab.ca/$department/newslett.nsf/all/cc3961
+http://www1.agric.gov.ab.ca/$department/newslett.nsf/all/stan816
+http://www1.ap.dell.com/content/default.aspx?c=au&l=en&s=dhs
+http://www1.boc.com/conduct/responsibilities/employees/gifts.asp
+http://www1.chapman.edu/wilkinson/socsci/sociology/Faculty/Babbie/idlethoughts/habitsetc.html
+http://www1.cricket.indiatimes.com/articleshow/10165229.cms
+http://www1.cs.columbia.edu/~ip71/
+http://www1.divorcenet.com/bbs/showflat.php?Cat=&Number=101073&Main=101016
+http://www1.divorcenet.com/bbs/showthreaded.php?Cat=&Number=101016&page=&view=&sb=5&o=&vc=1
+http://www1.divorcenet.com/bbs/showthreaded.php?Cat=&Number=101059&page=&view=&sb=5&o=&vc=1
+http://www1.divorcenet.com/bbs/showthreaded.php?Cat=&Number=101073&page=&view=&sb=5&o=&vc=1
+http://www1.divorcenet.com/relations/otc-16.html
+http://www1.dshs.wa.gov/geninfo/corKIRO021704.html
+http://www1.dupont.com/NASApp/dupontglobal/corp/index.jsp?page=/content/US/en_US/news/speeches/kim_11_06_00.html
+http://www1.hmv.co.uk/hmvweb/displayProductDetails.do?ctx=-1;4;33;-1&sku=749167
+http://www1.iwon.com/travel/travelguide/information/0,20310,south_america-375-1,00.html
+http://www1.law.ucla.edu/~sportslaw/
+http://www1.law.ucla.edu/~volokh/2amteach/sources.htm
+http://www1.law.ucla.edu/~volokh/copyrev.htm
+http://www1.law.ucla.edu/~volokh/shield.htm
+http://www1.ncaa.org/membership/enforcement/amateurism/ice_hockey_memo_4_16_03.rtf.doc?ObjectID=15955&ViewMode=0&PreviewState=0
+http://www1.neweb.ne.jp/wb/fukud/safety%20english.htm
+http://www1.od.nih.gov/oma/manualchapters/intramural/3044-2/main.html
+http://www1.od.nih.gov/oma/manualchapters/management/1500/06.html
+http://www1.oecd.org/media/release/conclusionsrotterdam3November2000.htm
+http://www1.oecd.org/media/release/nw00-28a.htm
+http://www1.on.hrdc-drhc.gc.ca/ojf/ojf.jsp?lang=e&section=Profile&noc=5124
+http://www1.salvationarmy.org/ihq%5Cwww_sa.nsf/0/5A321A5865A6EB1E80256F460045172E?opendocument
+http://www1.salvationarmy.org/ihq/www_sa.nsf/0/A89BD861C7B941AD802570120047ED0F?openDocument
+http://www1.sheridaninstitute.ca/acad/academicawards2003.html
+http://www1.timesofindia.indiatimes.com/articleshow/997173.cms
+http://www1.umn.edu/humanrts/instree/euroconpart1c.html
+http://www1.umn.edu/humanrts/instree/oasdiplomaticasylum.html
+http://www1.umn.edu/humanrts/instree/oasterritorialasylum.html
+http://www1.umn.edu/mnwomen/nov_mins.html
+http://www1.umn.edu/oit/newsletter/0197-itn/internet_acct_changes.html
+http://www1.umn.edu/phrm/bio/bios.html
+http://www1.umn.edu/ships/modules/dyes1.htm
+http://www1.umn.edu/ships/modules/time.htm
+http://www1.umn.edu/urelate/style/capitalization.html
+http://www1.us.dell.com/content/products/features.aspx/ric_road?c=us&cs=04&l=en&s=bsd
+http://www1.us.dell.com/content/topics/global.aspx/policy/en/policy?c=us&l=en&s=corp&~f=lg&~section=013
+http://www1.us.dell.com/content/topics/global.aspx/policy/en/policy?c=us&l=en&s=corp&~section=013
+http://www1.us.dell.com/content/topics/segtopic.aspx/policy_warranties_popup?c=us&cs=19&l=en&s=dhs&~f=&~lt=popup
+http://www1.us.dell.com/content/topics/segtopic.aspx/policy_warranties_popup?c=us&cs=19&l=en&s=dhs&~f=lg&~lt=print
+http://www1.us.dell.com/content/topics/segtopic.aspx/policy_warranties_popup?c=us&cs=19&l=en&s=dhs&~lt=popup
+http://www1.us.dell.com/content/topics/segtopic.aspx/policy_warranties_popup?c=us&cs=19&l=en&s=dhs&~lt=print
+http://www1.villagevoice.com/film/0443,holcomb2,57864,20.html
+http://www1.wfubmc.edu/articles/Genomics
+http://www1.worldbank.org/devoutreach/article.asp?id=287
+http://www1.worldbank.org/devoutreach/article.asp?id=299
+http://www1.worldbank.org/devoutreach/july03/article.asp?id=209
+http://www1.worldbank.org/devoutreach/march03/article.asp?id=193
+http://www1.worldbank.org/devoutreach/summer99/article.asp?id=3
+http://www1.worldbank.org/devoutreach/summer99/textonly.asp?id=3
+http://www1.worldbank.org/devoutreach/textonly.asp?id=263
+http://www1.worldbank.org/devoutreach/textonly.asp?id=271
+http://www1.worldbank.org/devoutreach/winter02/article.asp?id=142
+http://www1.worldbank.org/publicsector/anticorrupt/coraid.htm
+http://www10.aeccafe.com/nbc/articles/view_article.php?section=CorpNews&articleid=122257
+http://www10.americanexpress.com/sif/cda/page/0,1641,13394,00.asp
+http://www10.americanexpress.com/sif/cda/page/0,1641,13394,00.asp?canada_nav=newhomepage
+http://www10.americanexpress.com/sif/cda/page/0,1641,21253,00.asp
+http://www10.antenna.nl/wise/576/5455.html
+http://www11.hrdc-drhc.gc.ca/pls/edd/FEDLABSTAN.lhtml
+http://www11.hrdc-drhc.gc.ca/pls/edd/edd_brief.document?p_site=EDD&cat=LLS&sub=OWAP
+http://www11.hrsdc.gc.ca/en/cs/sp/hrsdc/edd/brief/2000-000598/sarlm.shtml
+http://www11.hrsdc.gc.ca/en/cs/sp/hrsdc/edd/brief/9999-000560/seap.shtml
+http://www11.hrsdc.gc.ca/en/cs/sp/hrsdc/edd/reports/1999-000414/page04.shtml
+http://www11.hrsdc.gc.ca/en/cs/sp/hrsdc/edd/reports/1999-000416/page11.shtml
+http://www11.hrsdc.gc.ca/en/cs/sp/hrsdc/edd/reports/2001-000451/page05.shtml
+http://www11.sdc.gc.ca/en/cs/sp/edd/reports/1997-000336/page08.shtml
+http://www11.sdc.gc.ca/en/cs/sp/edd/reports/1999-000416/page11.shtml
+http://www11.sdc.gc.ca/en/cs/sp/edd/reports/1999-000448/page09.shtml
+http://www11.sdc.gc.ca/en/cs/sp/edd/reports/2000-000432/page03.shtml
+http://www11.sdc.gc.ca/en/cs/sp/sdc/edd/reports/2001-000459/page03.shtml
+http://www11.sdc.gc.ca/sl-ca/doc/section2_e.shtml
+http://www110.hrdc-drhc.gc.ca/sfmc_fmcs/apropos_about/lmpp/index.cfm/doc/english
+http://www12.statcan.ca/english/census01/Info/reasons.cfm
+http://www125.americanexpress.com/merchant/oam/ns/USEng/FrontServlet?request_type=navigate&page=acceptCardIndex
+http://www125.americanexpress.com/merchant/oam/ns/USEng/FrontServlet?request_type=navigate&page=industrySpecificBenefits
+http://www15.hrdc-drhc.gc.ca/English/general/readers_guide.asp?section_number=43
+http://www2.acc.af.mil/accnews/Sep03/03299.html
+http://www2.acc.af.mil/accnews/mar03/03076.html
+http://www2.acnielsen.com/news/20041102_no.shtml
+http://www2.agriculture.purdue.edu/impact/search_list.asp?ql=Economics&topicID=2
+http://www2.agsm.edu.au/agsm/web.nsf/Content/AGSMMagazine-WhyCulltureMatters
+http://www2.arnes.si/~osljlag1s/FAMILY.htm
+http://www2.asuk.com/leased.php
+http://www2.aya.yale.edu/clubs/israel/let_3.htm
+http://www2.bc.edu/~plater/CumulativeTUP/HTML/chap23.html
+http://www2.bren.ucsb.edu/~buildgreen/homework.htm
+http://www2.brevard.edu/chapin/annewebpage/AH_350_Syllabus.htm
+http://www2.bus.orst.edu/faculty/brownc/lectures/db_tutor/Conceptual_Modeling.htm
+http://www2.cali.org/cat-evd.html
+http://www2.cddc.vt.edu/www.eff.org/jobs/
+http://www2.chass.ncsu.edu/garson/pa765/focusgroups.htm
+http://www2.chass.ncsu.edu/garson/pa765/ttest.htm
+http://www2.chch.ox.ac.uk/library/music/page.html?page=news
+http://www2.chinadaily.com.cn/english/doc/2004-06/24/content_342106.htm
+http://www2.chinadaily.com.cn/english/doc/2004-08/16/content_365785.htm
+http://www2.chinadaily.com.cn/english/doc/2005-05/30/content_446811.htm
+http://www2.clarke.k12.ga.us/cen/Morning%20Announcements.htm
+http://www2.corvallis.k12.or.us/chs/staff/curtise/Eating_Customs.htm
+http://www2.cs.uh.edu/~clifton/pickett.micro.html
+http://www2.csoonline.com/info/release.html?CID=535
+http://www2.cstudies.ubc.ca/~mullen/PMA6FHPT.html
+http://www2.cvmailuk.com/reedsmith/terms.cfm
+http://www2.eckerd.com/OnCallMag/guide_display.asp?mzfile=q4_2004_colds
+http://www2.edc.org/CCT/publications_report_summary.asp?numPubId=189
+http://www2.eli.org/pressdetail.cfm?ID=24
+http://www2.epp-online.de/epp/live/de/fachartikelarchiv/ha_artikel/detail/30458791.html
+http://www2.foxgold.net.au/~glennbswift59/westnew.html
+http://www2.fpm.wisc.edu/occhealth/ergonomics.html
+http://www2.glos.ac.uk/gdn/discuss/kolb2.htm
+http://www2.glos.ac.uk/gdn/gold/ch4.htm
+http://www2.glos.ac.uk/gdn/jghe/16_1.htm
+http://www2.glos.ac.uk/gdn/ward/yardley.htm
+http://www2.gol.com/users/quakers/QOS_11.htm
+http://www2.gsu.edu/~mstswh/courses/it7000/papers/computer.htm
+http://www2.gwu.edu/~bygeorge/060804/mongolia.html
+http://www2.gwu.edu/~nsarchiv/NSAEBB/NSAEBB139/
+http://www2.gwu.edu/~nsarchiv/NSAEBB/NSAEBB147/
+http://www2.gwu.edu/~spi/analysis.htm
+http://www2.haverford.edu/acc/docs/policies/dorm_support.html
+http://www2.hawaii.edu/~fredr/beyond.htm
+http://www2.hawaii.edu/~lieberma/spsp/html/speakers.htm
+http://www2.hawaii.edu/~turner/hikes/haleaka4.htm
+http://www2.healthcare.ucla.edu/international/newsletter/Past%20Issues/English/Mar2004English.htm
+http://www2.helsinginsanomat.fi/english/archive/news.asp?id=20010522IE3
+http://www2.hunterlink.net.au/~ddhrg/econ/honours/demand3.html
+http://www2.hursley.ibm.com/decimal/damodel.html
+http://www2.hursley.ibm.com/decimal/dncont.html
+http://www2.irc.nl/manage/manuals/cases/batcham.html
+http://www2.jaring.my/pcdom/infant.htm
+http://www2.jobtrak.com/help_manuals/jobmanual/
+http://www2.jpl.nasa.gov/basics/bsf7-2.html
+http://www2.jpl.nasa.gov/galileo/today990703.html
+http://www2.keck.hawaii.edu/inst/nirspec/eng/SlewTrouble.html
+http://www2.lib.udel.edu/subj/anth/db.htm
+http://www2.ljworld.com/news/2005/jun/12/privatepublic/
+http://www2.ljworld.com/section/schools/story/197829
+http://www2.math.uic.edu/~baughman/howtocount/HowToCount.htm
+http://www2.montana.edu/policy/business_manual/bus100.html
+http://www2.myhome.ie/members/members_register.asp
+http://www2.nature.nps.gov/geology/parks/yell/
+http://www2.ncaa.org/media_and_events/association_news/association_updates/2005/january/0114_task_force.html
+http://www2.ncaa.org/media_and_events/association_news/ncaa_news_online/2005/06_06_05/front_page_news/4212n03.html
+http://www2.nrcan.gc.ca/es/ener2000/online/html/chap3b_e.cfm
+http://www2.ntu.ac.uk/llr/int.asp
+http://www2.oakland.edu/erd/monthall.cfm
+http://www2.oanda.com/cgi-bin/msgboard/ultimatebb.cgi?ubb=get_topic;f=15;t=003293
+http://www2.oanda.com/cgi-bin/msgboard/ultimatebb.cgi?ubb=print_topic;f=15;t=003293
+http://www2.oanda.com/cgi-bin/msgboard/ultimatebb.cgi?ubb=print_topic;f=17;t=001452
+http://www2.oecd.org/guidingprinciples/document/pg016.asp
+http://www2.ohlone.edu/instr/theater/EDT/classes.html
+http://www2.parc.com/ops/members/brown/papers/orglearning.html
+http://www2.parsons.edu/architecture/programs.htm
+http://www2.peterboroughtoday.co.uk/pages/guide/howto/woodturning.asp
+http://www2.pfeiffer.edu/~lridener/DSS/DuBois/sbf4.htm
+http://www2.pfeiffer.edu/~lridener/DSS/Martineau/v1p2ec7.html
+http://www2.pfeiffer.edu/~lridener/DSS/goodbad.html
+http://www2.pfeiffer.edu/~lridener/courses/DAHREND1.HTML
+http://www2.pfeiffer.edu/~lridener/courses/MICHELSR.HTML
+http://www2.psci.net/preview/perrycountyindiana/tours/walkingtour.cfm
+http://www2.rgu.ac.uk/library/sites/gdee.htm
+http://www2.riverdance.com/showflat.php?Cat=&Board=IEGEN&Number=5525&page=0&view=collapsed&sb=5&o=&fpart=35
+http://www2.rwe.geber.at/gb2003/en/reviewofoperations/salesandincome/valueadded
+http://www2.sbs.com.au/home/index.php3?id=54187
+http://www2.scarboroughtoday.co.uk/tourism/at%20a%20glance.asp
+http://www2.scc.rutgers.edu/ead/uarchives/peithob.html
+http://www2.sec.state.ri.us/faststart/
+http://www2.sis.pitt.edu/~peterb/research.html
+http://www2.slac.stanford.edu/comp/winnt/conference-computing/conference-computing-checklist.html
+http://www2.slac.stanford.edu/computing/helpdesk/visitor/confchecklist.asp
+http://www2.slac.stanford.edu/tip/2004/mar05/writing.htm
+http://www2.sn.apc.org/africa/countdet.CFM?countries__ISO_Code=SC
+http://www2.state.id.us/ag/about/overview.htm
+http://www2.state.id.us/bta/decisions/2001/2001/Linscott.bon.htm
+http://www2.state.id.us/ope/JLOCMinutes/000301.htm
+http://www2.stats.govt.nz/domino/external/pasfull/pasfull.nsf/0/4c2567ef00247c6acc256b6d000301b5?OpenDocument
+http://www2.taconic.net/rmcbride/samples.html
+http://www2.theclarionnews.com/General_News/36786.shtml
+http://www2.thefabricator.com/Articles/Tube_and_Pipe_Exclusive.cfm?ID=698
+http://www2.toad.net/
+http://www2.townonline.com/lynnfield/
+http://www2.townonline.com/marblehead/localRegional/view.bg?articleid=273688&format=text
+http://www2.townonline.com/medford/localRegional/view.bg?articleid=262128&format=text
+http://www2.trainingvillage.gr/etv/vetsystems/report/de0699_en.asp
+http://www2.tranceaddict.com/forums/archive/topic/131882-1.html
+http://www2.ucsc.edu/healthcenter/form/index.shtml
+http://www2.umdnj.edu/eohssweb/aiha/accidents/chemicalexposure.htm
+http://www2.umist.ac.uk/optometry/neuro_new/nsc_appl.htm
+http://www2.umist.ac.uk/student/pgfaq.htm
+http://www2.una.edu/athletics/Lion%20Volleyball/
+http://www2.una.edu/universityrelations/UNApeoplenotes.htm
+http://www2.unesco.org/wef/countryreports/nigeria/rapport_3_1.html
+http://www2.unesco.org/wef/countryreports/romania/rapport_2_2.html
+http://www2.unesco.org/wef/en-news/Presentation%2011_Education%20International.shtm
+http://www2.univ-reunion.fr/~ageof/text/74c21e88-271.html
+http://www2.ups.edu/arches/2001Fall/zeit_space_test.htm
+http://www2.ups.edu/faculty/mwarning/research_tenure.htm
+http://www2.uwindsor.ca/~hlynka/qfaq.html
+http://www2.vcn.bc.ca/minutes?wid=387&func=viewSubmission&sid=92
+http://www2.ville.montreal.qc.ca/economtl/97t3/bul97q3.htm
+http://www2.warwick.ac.uk/fac/soc/law/elj/jilt/1997_2/noortwijk/
+http://www2.warwick.ac.uk/services/its/elab/services/webtools/sitebuilder/faqs/neweditor/
+http://www2.warwick.ac.uk/study/undergraduate/arts/history/
+http://www2.wcc-coe.org/ccdocuments.nsf/index/plen-4.3-en.html?OpenDocument&Click=
+http://www20.tomshardware.com/game/20041110/
+http://www2002.stoke.gov.uk/corporateresources/PublicServ/Customer_services.html
+http://www2003.org/cdrom/papers/refereed/p007/p7-abiteboul.html
+http://www2003.org/posters.htm
+http://www22.brinkster.com/horizon5/horizon5/new_default.files/lirit/lirit3.htm
+http://www28.iwebcenters.com/culturedcup4/teaterms.ivnu
+http://www3.azwestern.edu/psy/dgershaw/lol/MothersSingle.html
+http://www3.baylor.edu/Philosophy/events/SCP_sch.html
+http://www3.ccps.virginia.edu/career_prospects/briefs/P-S/SummaryForensics.html
+http://www3.che.wisc.edu/mdg/research.shtml
+http://www3.ci.boulder.co.us/finance/sales_tax/regs/reg20.htm
+http://www3.csc.noaa.gov/beachnourishment/html/human/case.htm
+http://www3.fertilethoughts.com/forums/view.php?pg=about_us
+http://www3.gov.ab.ca/env/waste/xmas/gift.html
+http://www3.gov.ab.ca/foip/commissioners_orders/other_decisions/Section55_TownofPonoka_Apr23,2002.cfm
+http://www3.ietf.org/proceedings/05mar/forces.html
+http://www3.open.ac.uk/courses/bin/p12.dll?C01B200_4_0
+http://www3.open.ac.uk/courses/bin/p12.dll?C01L314
+http://www3.open.ac.uk/oubs/bin/oubs.dll?CB200
+http://www3.sdstate.edu/StudentLife/DiningServices/RenovationFAQs/Index.cfm
+http://www3.state.ia.us/irgc/code99d.htm
+http://www3.state.ia.us/irgc/moratorium.htm
+http://www3.sympatico.ca/kelly90/C304613866/E1229961722/
+http://www3.sympatico.ca/mapleridge/canadienhorsebreeders.html
+http://www3.sympatico.ca/shelaghmrl/page10.html
+http://www3.telus.net/linguisticsissues/delta.htm
+http://www3.telus.net/linguisticsissues/internationalintelligibility.html
+http://www3.telus.net/public/drelika/MRZC/zoketsu_03.html
+http://www3.tky.3web.ne.jp/~jafarr/SLANG.html
+http://www3.uta.edu/policy/HOP/HOP2_2.htm
+http://www3.visitbritain.com/corporate/march17.htm
+http://www33.ocn.ne.jp/~actakada/pmke.smeo.html
+http://www4.alternativenews.org/factsheets/negev/
+http://www4.alternativenews.org/occupationwatch/display.php?id=3903
+http://www4.army.mil/USAR/organization/structure.php
+http://www4.bmo.com/personal/0,4344,35649_36613,00.html?pChannelId=36613
+http://www4.bmo.com/personal/0,4344,35649_36814,00.html?pChannelId=36814
+http://www4.bmo.com/personal/0,4344,35649_36832,00.html?pChannelId=36832
+http://www4.colgate.edu/scene/nov2002/reviews.html
+http://www4.compasspoint.org/p.asp?WebPage_ID=443&Profile_ID=111360
+http://www4.dr-rath-foundation.org/PHARMACEUTICAL_BUSINESS/HSA/
+http://www4.dr-rath-foundation.org/The_Hague/complaint/complaint04.htm
+http://www4.law.cornell.edu/cfr/5p532.htm
+http://www4.nas.edu/webcr.nsf/CommitteeDisplay/ARLT-L-02-90-E?OpenDocument
+http://www4.nas.edu/webcr.nsf/CommitteeDisplay/BICE-J-98-05-A?OpenDocument
+http://www4.nas.edu/webcr.nsf/CommitteeDisplay/BMSX-L-98-02-A?OpenDocument
+http://www4.nas.edu/webcr.nsf/CommitteeDisplay/BRWM-U-99-90-B?OpenDocument
+http://www4.nas.edu/webcr.nsf/CommitteeDisplay/NIST-L-01-90-A?OpenDocument
+http://www4.nas.edu/webcr.nsf/CommitteeDisplay/SSBX-L-98-04-A?OpenDocument
+http://www4.nas.edu/webcr.nsf/CommitteeDisplay/WSTB-U-02-01-A?OpenDocument
+http://www4.nas.edu/webcr.nsf/CommitteeDisplay/WSTB-U-97-04-A?OpenDocument
+http://www4.nas.edu/webcr.nsf/CommitteeDisplay/WSTB-U-99-03-A?OpenDocument
+http://www4.nationalacademies.org/iap/iaphome.nsf/weblinks/SAIN-4XVKHY?OpenDocument
+http://www4.nationalacademies.org/nas/nashome.nsf/urllinks/NAS-59MUXF?OpenDocument
+http://www4.nationalacademies.org/nas/nashome.nsf/urllinks/NAS-5LWKA9
+http://www4.nationalacademies.org/news.nsf/isbn/0309061806?OpenDocument
+http://www4.nationalacademies.org/news.nsf/isbn/0309067774?OpenDocument
+http://www4.nationalacademies.org/news.nsf/isbn/0309068371?OpenDocument
+http://www4.nationalacademies.org/news.nsf/isbn/0309069300?OpenDocument
+http://www4.nationalacademies.org/news.nsf/isbn/0309069882?OpenDocument
+http://www4.nationalacademies.org/news.nsf/isbn/0309074843?OpenDocument
+http://www4.nationalacademies.org/news.nsf/isbn/030908458X?OpenDocument
+http://www4.nationalacademies.org/news.nsf/isbn/0309084865?OpenDocument
+http://www4.nationalacademies.org/news.nsf/isbn/030908928X?OpenDocument
+http://www4.nationalacademies.org/news.nsf/isbn/0309092973?OpenDocument
+http://www4.nationalacademies.org/news.nsf/isbn/s0309092647?OpenDocument
+http://www4.nationalacademies.org/onpi/webextra.nsf/web/web_extra_index?OpenDocument
+http://www4.nationalacademies.org/trb/crp.nsf/All+Projects/NCHRP+25-25
+http://www4.sbs.com.au/home/index.php3?id=54334
+http://www4.semo.edu/polisci/smentkowski/forum3paper.htm
+http://www4.tomshardware.com/game/20041109/burn_out-07.html
+http://www4.tomshardware.com/game/20050108/
+http://www4.trb.org/trb/crp.nsf/0/ba633c965c77eb9585256b9900453dd0?OpenDocument
+http://www4.trb.org/trb/crp.nsf/All+Projects/NCHRP+25-25
+http://www4.vjc.edu/JudyLombardi/discuss/msgReader$32
+http://www4.vjc.edu/JudyLombardi/stories/storyReader$32
+http://www4.wave.co.nz/~jollyroger/GM2/news/archive.htm
+http://www5.kryptonsite.com/forums/
+http://www6.head-fi.org/forums/archive/index.php/t-3026.html
+http://www6.head-fi.org/forums/archive/index.php/t-309.html
+http://www6.lexisnexis.com/publisher/EndUser?Action=UserDisplayCiteList&orgId=574&topicId=25132
+http://www6.tomshardware.com/howto/20011205/
+http://www7.nationalacademies.org/core/Remarks%20by%20Claudia%20Buchmann.html
+http://www7.nationalacademies.org/deps/defense_reports.html
+http://www7.nationalacademies.org/humanrights/1Case_Information_Ibrahim.html
+http://www7.nationalacademies.org/nsb/Board_Members.html
+http://www7.nationalacademies.org/step/STEP_Newsletter_May_1996.html
+http://www8.utsouthwestern.edu/utsw/cda/dept16498/files/201268.html
+http://www8.utsouthwestern.edu/utsw/cda/dept29520/files/165699.html
+http://www8.utsouthwestern.edu/utsw/cda/dept37417/files/148270.html
+http://www85.homepage.villanova.edu/joanna.rotte/2002%20Comments/commentsJan2002.htm
+http://www85.homepage.villanova.edu/joanna.rotte/2002%20Comments/commentsSpring2003.htm
+http://www9.todaysbride.com/wisdom/wedding_wisdom.asp?Topic=Beauty
+http://wwwa.accuweather.com/adcbin/public/promotional_redesign_blog.asp?webcaster=REDESIGN&date=2005-06-03_2156
+http://wwwa.accuweather.com/news-column.asp?partner=accuweather&myadc=0&webcaster=bastardi
+http://wwwa.house.gov/international_relations/108/kun050504.htm
+http://wwwau.kodak.com/US/en/motion/students/onCampus/cannes2002/indexP.shtml
+http://wwwc.house.gov/international_relations/108/bla040104.htm
+http://wwwc.house.gov/international_relations/108/rod092304.htm
+http://wwwcdf.pd.infn.it/~loreti/science.html
+http://wwwdb.europarl.eu.int/oeil/oeil_viewdnl.ProcedureView?lang=2&procid=1942
+http://wwwdb.europarl.eu.int/oeil/oeil_viewdnl.ProcedureView?lang=2&procid=2251
+http://wwwedu.oulu.fi/homepage/ejeronen/eco/students/sheffld/group_4/rivers.htm
+http://wwwjackbenimble.blogspot.com/2005/01/love-that-takes-your-breath-away.html
+http://wwwkms.bham.wednet.edu/Thursnote.htm
+http://wwwlibrary.csustan.edu/bsantos/army.html
+http://wwwmcc.murdoch.edu.au/ReadingRoom/film/dbase/2004/lantana.htm
+http://wwwnew.towson.edu/ess/faculty_research_interests.htm
+http://wwwsearch.sourceforge.net/DOMForm/
+http://wwwshs1.bham.wednet.edu/curric/socst/wa/tdhist.htm
+http://wwwsoc.nii.ac.jp/jbiochem/jb/131-5/5fbayltx.htm
+http://wwwsshe.murdoch.edu.au/intersections/issue7/raddeker.html
+http://wwwvis.informatik.uni-stuttgart.de/eng/teaching/lecture/fachprakt/einfuehrung_ss02-eng.html
+http://wwwvis.informatik.uni-stuttgart.de/eng/teaching/lecture/fachprakt/einfuehrung_ws02-03-eng.html
+http://wx.toronto.ca/inter/it/newsrel.nsf/0/eee651417113787185256df60045ca18?OpenDocument
+http://wycombelibdems.org.uk/news.html
+http://wyoung.net/twins/index.php?p=93
+http://x220.minasi.com/forum/topic.asp?whichpage=-1&TOPIC_ID=13080&REPLY_ID=53754
+http://xavier.bangor.ac.uk/xavier/spManual/content.html
+http://xbox.gamezone.com/gzreviews/r24055.htm
+http://xbox.ign.com/articles/582/582566p1.html
+http://xboxgamer.blogspot.com/2004_06_01_xboxgamer_archive.html
+http://xcski.com/blogs/pt/category/activities/photography-and-other-art/
+http://xenia.media.mit.edu/~mt/thesis/mt-thesis-5.5.html
+http://xeno.ipaustralia.gov.au/D:/Exmanual/pt30_39/part30.htm
+http://xeno.ipaustralia.gov.au/D:/Exmanual/pt46_55/part51.htm
+http://xml.coverpages.org/
+http://xml.coverpages.org/appSecurity.html
+http://xml.coverpages.org/bcml.html
+http://xml.coverpages.org/dtb.html
+http://xml.coverpages.org/matML.html
+http://xml.coverpages.org/ni2003-09-20-a.html
+http://xml.coverpages.org/ni2004-07-20-a.html
+http://xml.coverpages.org/stepml.html
+http://xml.silmaril.ie/
+http://xml.silmaril.ie/answers.html
+http://xml.sys-con.com/read/48910.htm
+http://xmlns.com/foaf/0.1/
+http://xnet.kp.org/permanentejournal/Fall00/BreastCancer.html
+http://xnet.kp.org/permanentejournal/fall03/winning.html
+http://xnet.kp.org/permanentejournal/spring02/reporting.html
+http://xoomer.virgilio.it/vvolpi/cap7.html
+http://xplore.com/xplore500/medium/sod.12.96.html
+http://xrlq.com/archives/2004/07/09/
+http://xroads.virginia.edu/~1930s/DISPLAY/39wf/legacy.htm
+http://xroads.virginia.edu/~CAP/gw/chap2.html
+http://xroads.virginia.edu/~DRBR/caldwell.html
+http://xroads.virginia.edu/~DRBR/goodman.html
+http://xroads.virginia.edu/~HYPER/WJAMES/ch02.html
+http://xroads.virginia.edu/~Hyper/Parrington/vol1/contents.html
+http://xroads.virginia.edu/~MA01/Grand-Jean/Hurston/Chapters/siteintroduction.html
+http://xroads.virginia.edu/~MA04/wood/mot/html/germany.htm
+http://xtremods.com/vbulletin/showthread.php?t=5797
+http://yahoo.businessweek.com/magazine/content/04_36/b3898055_mz010.htm
+http://yahoo.pcworld.com/yahoo/article/0,aid,120838,00.asp
+http://yahoo.reuters.com/financeQuoteCompanyNewsArticle.jhtml?duid=mtfh10137_2005-01-14_14-55-09_n14610178_newsml
+http://yahoo.reuters.com/financeQuoteCompanyNewsArticle.jhtml?duid=mtfh22597_2005-06-17_18-53-02_n16710320_newsml
+http://yahoo.shaadi.com/india-matrimony/films.php
+http://yahoocareers.seek.com.au/general_ID_items/content/ClassFAQs.ascx
+http://yale.tabroom.com/events.shtml
+http://yalebulldogs.collegesports.com/
+http://yaleglobal.yale.edu/about/rising.jsp
+http://yaleglobal.yale.edu/display.article?id=1213
+http://yaleglobal.yale.edu/display.article?id=4399
+http://yaleglobal.yale.edu/display.article?id=5042
+http://yaleglobal.yale.edu/display.article?id=5254
+http://yaleglobal.yale.edu/display.article?id=5529
+http://yalenewhavenhealth.org/library/healthguide/en-us/drugguide/topic.asp?hwid=d04877a1
+http://yalenewhavenhealth.org/library/healthguide/en-us/illnessconditions/topic.asp?hwid=nord976
+http://yalepress.yale.edu/YupBooks/viewbook.asp?isbn=0300069340
+http://yaohush.america.net/exclusive8.html
+http://yarmouthfc.tripod.com/id45.html
+http://yas.nic.in/yasroot/schemes/nsvs.htm
+http://ybmecc.co.kr/index.asp?sub1=employee
+http://ydelta.free.fr/job.htm
+http://ydr.com/about/history/11796A.shtml
+http://ydr.com/about/history/1comm5.shtml
+http://ydr.com/local/meetings.shtml
+http://ydr.com/story/justice/575/
+http://ydr.com/story/living/55369/
+http://ydr.com/story/op-ed/75359/
+http://ye.entreworld.org/5-2000/leadersg.cfm
+http://yellowbluegreen.proboards3.com/index.cgi?action=display&board=poster&num=1094910906&start=15
+http://yellowbrickro.campuskiss.com/
+http://yeoldeconsciousnessshoppe.com/art183.html
+http://yglesias.typepad.com/matthew/2005/04/how_to_do_thing.html
+http://yglesias.typepad.com/matthew/2005/05/its_the_end_of_.html
+http://ylighting.com/
+http://yod.com/books/
+http://yosemite.epa.gov/OAR%5Cglobalwarming.nsf/content/ClimateTrendsSeaLevel.html
+http://yosemite.epa.gov/OAR/globalwarming.nsf/content/ClimateTrendsSeaLevel.html
+http://yosemite.epa.gov/OAR/globalwarming.nsf/content/ResourceCenterPublicationsSLRCost_of_Holding.html
+http://yosemite.epa.gov/OAR/globalwarming.nsf/content/ResourceCenterPublicationsSeaLevelRiseIndex.html
+http://yosemite.epa.gov/administrator/speeches.nsf/0/137d40fb1715115d85256e1600656e30?OpenDocument
+http://yosemite.epa.gov/administrator/speeches.nsf/0/5aceb51fdb2ad787852564f0006ea17c?OpenDocument
+http://yosemite.epa.gov/administrator/speeches.nsf/0/a98d87d33ca61b3185256729005a813d?OpenDocument
+http://yosemite.epa.gov/administrator/speeches.nsf/0/c0aaebbc1d28dd0885256caf0074faa4?OpenDocument
+http://yosemite.epa.gov/administrator/speeches.nsf/0/e3f253a72960c15c85256628006249f6?OpenDocument
+http://yosemite.epa.gov/oar%5Cglobalwarming.nsf/content/ClimateTrendsSeaLevel.html
+http://yosemite.epa.gov/oar/globalwarming.nsf/content/ClimateTrendsSeaLevel.html
+http://yosemite.epa.gov/oar/globalwarming.nsf/content/ResourceCenterPublicationsSeaLevelRiseIndex.html
+http://youngpup.net/journal/2004/09
+http://yourmedicalsource.com/library/Parkinsons-Disease/PD_living.html
+http://yourmedicalsource.com/library/acltears/ACL_rehab.html
+http://yourmedicalsource.com/library/diabpreg/DPG_insulin.html
+http://youthcurry.blogspot.com/2005/05/ladkiyan-na-jaane-kyun.html
+http://youwillanyway.blogspot.com/
+http://youworkforthem.com/product.php?sku=P0145
+http://yp.yahoo.com/yp/Prairie_Rose_ND/category.html
+http://yp.yahoo.com/yp/Rose_City_TX/category.html
+http://yp.yahoo.com/yp/Rose_Hill_KS/category.html
+http://yp.yahoo.com/yp/St._Rose_LA/category.html
+http://yucky.kids.discovery.com/noflash/fun_n_games/activities/experiments/experiment_eyeball.html
+http://yvm.net/vme/democrats/min020212.htm
+http://zambia.usembassy.gov/zambia/Democracy_and_Human_Rights_Fund.html
+http://zane.typepad.com/ccuceo/2005/01/hope_dies_last_1.html
+http://zap.intergate.ca/speech.htm
+http://zap.intergate.ca/speech.html
+http://zappa.redsectorart.com/info/bio.htm
+http://zebrameat.com/z2/features/amster_privacy_ii.html
+http://zebu.uoregon.edu/~imamura/209/may10/baryon.html
+http://zebu.uoregon.edu/~js/21st_century_science/lectures/lec07.html
+http://zebu.uoregon.edu/~js/21st_century_science/lectures/lec14.html
+http://zebu.uoregon.edu/~js/21st_century_science/lectures/lec16.html
+http://zebu.uoregon.edu/~js/ast123/lectures/lec16.html
+http://zebu.uoregon.edu/~js/space/lectures/lec08.html
+http://zed1.com/journalized/archives/2004/04/
+http://zena.secureforum.com/Znet/zmag/articles/chomskymay98.htm
+http://zena.secureforum.com/Znet/zmag/articles/oct96winders.htm
+http://zenii.linux.org.uk/~telsa/Trips/Talks/ols-davems-keynote.html
+http://zerointelligence.net/archives/000255.php
+http://zerointelligence.net/archives/2004_08.php
+http://zerointelligence.net/archives/cat_kentucky.php
+http://zerolives.org/
+http://zerotwofan.com/rapture/contest3B/meantforme.html
+http://ziggurat.org/soap/infobase/oiluses.shtml
+http://zine.dal.net/previousissues/issue23/messages4.php
+http://zine.dal.net/previousissues/issue25/realitytv.php
+http://zines.webvalence.com/sites/CircleofBeauty/Broadcast.D20041216.html
+http://zmagsite.zmag.org/Jun2004/sargent0604.html
+http://zone.artizans.com/lite/browse.htm?subject=54249
+http://zork.net/motd/nick/scheme
+http://zygote.swarthmore.edu/fert11a1.html
+http://zzyx.ucsc.edu/casfs/issuepapers/issuepaper1.html
diff --git a/PerformanceTests/Parser/resources/greenbox.png b/PerformanceTests/Parser/resources/greenbox.png
new file mode 100644
index 000000000..6e555e3b1
--- /dev/null
+++ b/PerformanceTests/Parser/resources/greenbox.png
Binary files differ
diff --git a/PerformanceTests/Parser/resources/html5.html b/PerformanceTests/Parser/resources/html5.html
new file mode 100644
index 000000000..dd97b5c02
--- /dev/null
+++ b/PerformanceTests/Parser/resources/html5.html
@@ -0,0 +1,102483 @@
+<!DOCTYPE html><html lang=en-US-x-hixie><title>HTML Standard</title><script>
+ var loadTimer = new Date();
+ var current_revision = "r" + "$Revision: 6626 $".substr(11);
+ current_revision = current_revision.substr(0, current_revision.length - 2);
+ var last_known_revision = current_revision;
+ function getCookie(name) {
+ var params = location.search.substr(1).split("&");
+ for (var index = 0; index < params.length; index++) {
+ if (params[index] == name)
+ return "1";
+ var data = params[index].split("=");
+ if (data[0] == name)
+ return unescape(data[1]);
+ }
+ var cookies = document.cookie.split("; ");
+ for (var index = 0; index < cookies.length; index++) {
+ var data = cookies[index].split("=");
+ if (data[0] == name)
+ return unescape(data[1]);
+ }
+ return null;
+ }
+ var currentAlert;
+ var currentAlertTimeout;
+ function showAlert(s, href) {
+ if (!currentAlert) {
+ currentAlert = document.createElement('div');
+ currentAlert.id = 'alert';
+ var x = document.createElement('button');
+ x.textContent = '\u2573';
+ x.onclick = closeAlert2;
+ currentAlert.appendChild(x);
+ currentAlert.appendChild(document.createElement('span'));
+ currentAlert.onmousemove = function () {
+ clearTimeout(currentAlertTimeout);
+ currentAlert.className = '';
+ currentAlertTimeout = setTimeout(closeAlert, 10000);
+ }
+ document.body.appendChild(currentAlert);
+ } else {
+ clearTimeout(currentAlertTimeout);
+ currentAlert.className = '';
+ }
+ currentAlert.lastChild.textContent = s + ' ';
+ if (href) {
+ var link = document.createElement('a');
+ link.href = href;
+ link.textContent = href;
+ currentAlert.lastChild.appendChild(link);
+ }
+ currentAlertTimeout = setTimeout(closeAlert, 10000);
+ }
+ function closeAlert() {
+ clearTimeout(currentAlertTimeout);
+ if (currentAlert) {
+ currentAlert.className = 'closed';
+ currentAlertTimeout = setTimeout(closeAlert2, 3000);
+ }
+ }
+ function closeAlert2() {
+ clearTimeout(currentAlertTimeout);
+ if (currentAlert) {
+ currentAlert.parentNode.removeChild(currentAlert);
+ currentAlert = null;
+ }
+ }
+ window.addEventListener('keydown', function (event) {
+ if (event.keyCode == 27) {
+ if (currentAlert)
+ closeAlert2();
+ } else {
+ closeAlert();
+ }
+ }, false);
+ window.addEventListener('scroll', function (event) {
+ closeAlert();
+ }, false);
+ function load(script) {
+ var e = document.createElement('script');
+ e.setAttribute('src', 'http://www.whatwg.org/specs/web-apps/current-work/' + script + '?' + encodeURIComponent(location) + '&' + encodeURIComponent(document.referrer));
+ document.body.appendChild(e);
+ }
+ </script>
+ <!-- BEGIN WEBKIT EDITS -->
+ <!-- Note we inline the stylesheets to help make html5-full-render.html show more consistent results. -->
+ <!-- Inlining /style/specification -->
+ <style>
+ /* WHATWG Green: sRGB #3c790a, rgb(60, 121, 10) */
+
+ html { margin: 0; padding: 0; color: black; background: white; }
+ body { margin: 0; padding: 0 1em 2em 8.5em; line-height: 1.35; color: black; background: white top left repeat-y; }
+
+ @media screen {
+ html { background: #eeeeee; }
+ body { margin-bottom: 30%; border-bottom: thin solid #3c790a; }
+ }
+
+ :link { color: #00C; background: transparent }
+ :visited { color: #609; background: transparent }
+ :link:active, :visited:active { color: #C00; background: transparent }
+ :link:hover, :visited:hover { background: #ffa; }
+ code :link, code :visited { color: inherit; }
+
+ body, th, td { font-family: sans-serif, Droid Sans Fallback; }
+
+ h1, h2, h3, h4, h5, h6 { text-align: left; text-rendering: optimiseLegibility; }
+ h1, h2, h3 { color: #3c790a; background: transparent; }
+ h1 { font: 900 200% sans-serif, Droid Sans Fallback; }
+ h1.allcaps { font: 900 350% sans-serif, Droid Sans Fallback; letter-spacing: 2px; }
+ h2 { font: 800 140% sans-serif, Droid Sans Fallback; }
+ h3 { font: 800 125% sans-serif, Droid Sans Fallback; }
+ h4 { font: 800 110% sans-serif, Droid Sans Fallback; }
+ h5 { font: 800 100% sans-serif, Droid Sans Fallback; }
+ h6 { font: 600 italic 100% sans-serif, Droid Sans Fallback; }
+
+ pre { margin-left: 2em; white-space: pre-wrap; }
+ h2 { margin: 3em 0 1em 0; }
+ h3 { margin: 2.5em 0 1em 0; }
+ h4 { margin: 2.5em 0 0.75em 0; }
+ h5, h6 { margin: 2.5em 0 1em; }
+ h1 + h2, h2 + h3, h3 + h4, h4 + h5, h5 + h6, h1 + div + h2, h2 + div + h3, h3 + div + h4, h4 + div + h5, h5 + div + h6 { margin-top: 0.5em; }
+ p { margin: 1em 0; }
+ hr { display: block; background: none; border: none; padding: 0; margin: 2em 0; height: auto; }
+ dl, dd { margin-top: 0; margin-bottom: 0; }
+ dt { margin-top: 0.75em; margin-bottom: 0.25em; clear: left; }
+ dt + dt { margin-top: 0; }
+ dd dt { margin-top: 0.25em; margin-bottom: 0; }
+ dd p, dd ol, dd ol.brief { margin-top: 0; }
+ dd dl + p { margin-top: 1em; }
+ dd table + p { margin-top: 1em; }
+ p + * > li, dd li { margin: 1em 0; }
+ dt, dfn { font-weight: bold; font-style: normal; }
+ i, em, dt dfn { font-style: italic; }
+ pre, code { font-size: inherit; font-family: monospace, Droid Sans Fallback, sans-serif; font-variant: normal; }
+ pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
+ pre em { font-weight: bolder; font-style: normal; }
+ @media screen { code { color: orangered; } }
+ var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
+ table { border-collapse: collapse; border-style: hidden hidden none hidden; }
+ table thead, table tbody { border-bottom: solid; }
+ table tbody th { text-align: left; }
+ table tbody th:first-child { border-left: solid; }
+ table td, table th { border-left: solid; border-right: solid; border-bottom: solid thin; vertical-align: top; padding: 0.2em; }
+ blockquote { margin: 0 0 0 2em; border: 0; padding: 0; font-style: italic; }
+ ins { background: green; color: white; /* color: green; border: solid thin lime; padding: 0.3em; line-height: 1.6em; */ text-decoration: none; }
+ del { background: maroon; color: white; /* color: maroon; border: solid thin red; padding: 0.3em; line-height: 1.6em; */ text-decoration: line-through; }
+ body ins, body del { display: block; }
+ body * ins, body * del { display: inline; }
+
+ .toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
+ img.extra, p.overview { float: right; }
+ hr.bookmark { border: dashed 2em black; background: yellow; }
+ pre::before { font: bold 0.8em sans-serif; padding: 0.5em; position: absolute; top: auto; margin: -0.703125em 0 0 -3.75em /* 1em/0.8 + 1.5em + 0.5em*2 */ ; width: 1.5em; background: inherit; border: 0.078125em; border-style: solid none solid solid; border-radius: 1em 0 0 1em; }
+ pre.idl { border: solid 0.0625em; background: #EEEEEE; color: black; padding: 0.5em 1em; }
+ pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
+ pre.idl::before { content: 'IDL'; }
+ pre.asn { border: solid 0.0625em; background: #EEEEEE; color: black; padding: 0.5em 1em; }
+ pre.asn :link, pre.asn :visited { color: inherit; background: transparent; }
+ pre.asn::before { content: 'ASN'; }
+ pre.css { border: solid 0.0625em; background: #FFFFEE; color: black; padding: 0.5em 1em; }
+ pre.css:first-line { color: #AAAA50; }
+ pre.css::before { content: 'CSS'; }
+ dl.domintro { color: green; margin: 2em 0 2em 2em; padding: 0.5em 1em; border: none; background: #DDFFDD; }
+ hr + dl.domintro, div.impl + dl.domintro { margin-top: 2.5em; margin-bottom: 1.5em; }
+ dl.domintro dt, dl.domintro dt * { color: black; text-decoration: none; }
+ dl.domintro dd { margin: 0.5em 0 1em 2em; padding: 0; }
+ dl.domintro dd p { margin: 0.5em 0; }
+ dl.switch { padding-left: 2em; }
+ dl.switch > dt { text-indent: -1.5em; }
+ dl.switch > dt:before { content: '\21AA'; padding: 0 0.5em 0 0; display: inline-block; width: 1em; text-align: right; line-height: 0.5em; }
+ dl.triple { padding: 0 0 0 1em; }
+ dl.triple dt, dl.triple dd { margin: 0; display: inline }
+ dl.triple dt:after { content: ':'; }
+ dl.triple dd:after { content: '\A'; white-space: pre; }
+ .diff-old { text-decoration: line-through; color: silver; background: transparent; }
+ .diff-chg, .diff-new { text-decoration: underline; color: green; background: transparent; }
+ a .diff-new { border-bottom: 1px blue solid; }
+
+ h2 { page-break-before: always; }
+ h1, h2, h3, h4, h5, h6, dt { page-break-after: avoid; }
+ h1 + h2, hr + h2.no-toc { page-break-before: auto; }
+
+ p > span:not([title=""]):not([class="XXX"]):not([class="impl"]):not([class="note"]),
+ li > span:not([title=""]):not([class="XXX"]):not([class="impl"]):not([class="note"]) { border-bottom: solid #99CC99; }
+
+ .head { margin: 0 0 1em; padding: 1em 0 0 0; display: block; }
+ .head p { margin: 0; }
+ .head h1 { margin: 0; }
+ .head h2 { margin-top: 0; }
+ .head .logo { float: right; margin: 0 1em; }
+ .head .logo img { display: block; margin: 0 0 0 auto; border: none } /* remove border from top image */
+ .head dl { margin: 1em 0; }
+ p.copyright { font-size: 0.6em; font-style: oblique; margin: 0; }
+
+ body > .toc > li { margin-top: 1em; margin-bottom: 1em; }
+ body > .toc.brief > li { margin-top: 0.35em; margin-bottom: 0.35em; }
+ body > .toc > li > * { margin-bottom: 0.5em; }
+ body > .toc > li > * > li > * { margin-bottom: 0.25em; }
+ .toc, .toc li { list-style: none; }
+
+ .brief { margin-top: 1em; margin-bottom: 1em; line-height: 1.1; }
+ .brief li { margin: 0; padding: 0; }
+ .brief li p { margin: 0; padding: 0; }
+
+ .category-list { margin-top: -0.75em; margin-bottom: 1em; line-height: 1.5; }
+ .category-list::before { content: '\21D2\A0'; font-size: 1.2em; font-weight: 900; }
+ .category-list li { display: inline; }
+ .category-list li:not(:last-child)::after { content: ', '; }
+ .category-list li > span, .category-list li > a { text-transform: lowercase; }
+ .category-list li * { text-transform: none; } /* don't affect <code> nested in <a> */
+
+ [title=WIP], [title=TBW] { background: red; color: yellow; padding: 0.1em 0.3em; border: dotted white; margin: 0 0.7em 0 0.2em; }
+ [title=SCS] { background: green; color: white; padding: 0.1em 0.3em; border-style: none dashed; margin: 0 0.7em 0 0.2em; }
+ [title=WIP] :link, [title=WIP] :visited,
+ [title=TBW] :link, [title=TBW] :visited,
+ [title=SCS] :link, [title=SCS] :visited { background: transparent; color: inherit; }
+
+ .big-issue, .XXX { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
+ .big-issue > :first-child, .XXX > :first-child { margin-top: 0; }
+ p .big-issue, p .XXX { line-height: 3em; }
+ .note { color: green; background: transparent; font-family: sans-serif, Droid Sans Fallback; }
+ .warning { color: red; background: transparent; }
+ .note, .warning { font-weight: bolder; font-style: italic; }
+ .note em, .warning em, .note i, .warning i { font-style: normal; }
+ p.note, div.note { padding: 0.5em 2em; }
+ span.note { padding: 0 2em; }
+ .note p:first-child, .warning p:first-child { margin-top: 0; }
+ .note p:last-child, .warning p:last-child { margin-bottom: 0; }
+ .warning:before { font-style: normal; }
+
+ .XXX:before, .XXX:after { content: " ** "; position: absolute; left: 0; width: 8em; text-align: right; }
+ p.note:before { content: 'Note: '; }
+ p.warning:before { content: '\26A0 Warning! '; }
+
+ .bookkeeping:before { display: block; content: 'Bookkeeping details'; font-weight: bolder; font-style: italic; }
+ .bookkeeping { font-size: 0.8em; margin: 2em 0; }
+ .bookkeeping p { margin: 0.5em 2em; display: list-item; list-style: square; }
+ .bookkeeping dt { margin: 0.5em 2em 0; }
+ .bookkeeping dd { margin: 0 3em 0.5em; }
+
+ .critical { margin: 1em; border: double thick red; padding: 1em; background: #FFFFCC; }
+ .critical > :first-child { margin-top: 0; }
+
+ h4 { position: relative; z-index: 3; }
+ h4 + .element, h4 + div + .element { margin-top: -2.5em; padding-top: 2em; }
+ .element { background: #EEFFEE; color: black; margin: 0 0 1em 0.15em; padding: 0 1em 0.25em 0.75em; border-left: solid #99FF99 0.25em; position: relative; z-index: 1; }
+ .element:before { position: absolute; z-index: 2; top: 0; left: -1.15em; height: 2em; width: 0.9em; background: #EEFFEE; content: ' '; border-style: none none solid solid; border-color: #99FF99; border-width: 0.25em; }
+
+ .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 2em; padding-left: 1em; }
+ td > .example:only-child { margin: 0 0 0 0.1em; }
+
+ .hide { display: none }
+
+ body.dfnEnabled dfn { cursor: pointer; }
+ .dfnPanel {
+ display: inline;
+ position: absolute;
+ z-index: 10;
+ height: auto;
+ width: auto;
+ padding: 0.5em 0.75em;
+ font: small sans-serif, Droid Sans Fallback;
+ background: #DDDDDD;
+ color: black;
+ border: outset 0.2em;
+ }
+ .dfnPanel * { margin: 0; padding: 0; font: inherit; text-indent: 0; }
+ .dfnPanel :link, .dfnPanel :visited { color: black; }
+ .dfnPanel p { font-weight: bolder; }
+ .dfnPanel * + p { margin-top: 0.25em; }
+ .dfnPanel li { list-style-position: inside; }
+
+ @media aural {
+ h1, h2, h3 { stress: 20; richness: 90 }
+ .hide { speak: none }
+ p.copyright { volume: x-soft; speech-rate: x-fast }
+ dt { pause-before: 20% }
+ code, pre { speak-punctuation: code }
+ }
+
+ @media print {
+ html { font-size: 8pt; }
+ @page { margin: 1cm 1cm 1cm 1cm; }
+ @page :left {
+ @bottom-left {
+ font: 6pt sans-serif, Droid Sans Fallback;
+ content: counter(page);
+ padding-top: 0em;
+ vertical-align: top;
+ }
+ }
+ @page :right {
+ @bottom-right {
+ font: 6pt sans-serif, Droid Sans Fallback;
+ content: counter(page);
+ text-align: right;
+ vertical-align: top;
+ padding-top: 0em;
+ }
+ }
+ a[href^="#"]::after { font-size: 0.6em; vertical-align: super; padding: 0 0.15em 0 0.15em; content: "p" target-counter(attr(href), page); }
+ .toc a::after { font: inherit; vertical-align: baseline; padding: 0; content: leader('.') target-counter(attr(href), page); }
+ pre a[href^="#"]::after, blockquote a[href^="#"]::after { content: ""; padding: 0; }
+ table { font-size: smaller; }
+ :link, :visited { text-decoration: none; color: inherit; background: transparent; }
+ }
+
+ ul.domTree, ul.domTree ul { padding: 0 0 0 1em; margin: 0; }
+ ul.domTree li { padding: 0; margin: 0; list-style: none; position: relative; }
+ ul.domTree li li { list-style: none; }
+ ul.domTree li:first-child::before { position: absolute; top: 0; height: 0.6em; left: -0.75em; width: 0.5em; border-style: none none solid solid; content: ''; border-width: 0.1em; }
+ ul.domTree li:not(:last-child)::after { position: absolute; top: 0; bottom: -0.6em; left: -0.75em; width: 0.5em; border-style: none none solid solid; content: ''; border-width: 0.1em; }
+ ul.domTree span { font-style: italic; font-family: serif, Droid Sans Fallback; }
+ ul.domTree .t1 code { color: purple; font-weight: bold; }
+ ul.domTree .t2 { font-style: normal; font-family: monospace, Droid Sans Fallback; }
+ ul.domTree .t2 .name { color: black; font-weight: bold; }
+ ul.domTree .t2 .value { color: blue; font-weight: normal; }
+ ul.domTree .t3 code, .domTree .t4 code, .domTree .t5 code { color: gray; }
+ ul.domTree .t7 code, .domTree .t8 code { color: green; }
+ ul.domTree .t10 code { color: teal; }
+
+ :target {
+ background: #ffa;
+ -moz-box-shadow: 0 0 25px #ffa;
+ -webkit-box-shadow: 0 0 150px #ffa;
+ box-shadow: 0 0 25px #ffa;
+ }
+
+ /*body:not(.statusEnabled) .head, body:not(.dfnEnabled) .head { background: bottom right url(http://hixie.ch/resources/images/spinner) no-repeat; }*/
+
+ </style>
+ <!-- END WEBKIT EDITS -->
+ <link href=/images/icon rel=icon><style>
+ .proposal { border: blue solid; padding: 1em; }
+ .bad, .bad *:not(.XXX) { color: gray; border-color: gray; background: transparent; }
+ #updatesStatus { display: none; }
+ #updatesStatus.relevant { display: block; position: fixed; right: 1em; top: 1em; padding: 0.5em; font: bold small sans-serif; min-width: 25em; width: 30%; max-width: 40em; height: auto; border: ridge 4px gray; background: #EEEEEE; color: black; }
+ div.head .logo { width: 11em; margin-bottom: 20em; }
+ #configUI { position: absolute; z-index: 20; top: 10em; right: 0; width: 11em; padding: 0 0.5em 0 0.5em; font-size: small; background: gray; background: rgba(32,32,32,0.9); color: white; border-radius: 1em 0 0 1em; -moz-border-radius: 1em 0 0 1em; }
+ #configUI p { margin: 0.75em 0; padding: 0.3em; }
+ #configUI p label { display: block; }
+ #configUI #updateUI, #configUI .loginUI { text-align: center; }
+ #configUI input[type=button] { display: block; margin: auto; }
+ #configUI :link, #configUI :visited { color: white; }
+ #configUI :link:hover, #configUI :visited:hover { background: transparent; }
+ #reviewer { position: fixed; bottom: 0; right: 0; padding: 0.15em 0.25em 0em 0.5em; white-space: nowrap; overflow: hidden; z-index: 30; background: gray; background: rgba(32,32,32,0.9); color: white; border-radius: 1em 0 0 0; -moz-border-radius: 1em 0 0 0; max-width: 90%; }
+ #reviewer input { max-width: 50%; }
+ #reviewer * { font-size: small; }
+ #reviewer.off > :not(:first-child) { display: none; }
+ #alert { position: fixed; top: 20%; left: 20%; right: 20%; font-size: 2em; padding: 0.5em; z-index: 40; background: gray; background: rgba(32,32,32,0.9); color: white; border-radius: 1em; -moz-border-radius: 1em; -webkit-transition: opacity 1s linear; }
+ #alert.closed { opacity: 0; }
+ #alert button { position: absolute; top: -1em; right: 2em; border-radius: 1em 1em 0 0; border: none; line-height: 0.9; color: white; background: rgb(64,64,64); font-size: 0.6em; font-weight: 900; cursor: pointer; }
+ #alert :link, #alert :visited { color: white; }
+ #alert :link:hover, #alert :visited:hover { background: transparent; }
+ @media print { #configUI { display: none; } }
+ .rfc2119 { font-variant: small-caps; text-shadow: 0 0 0.5em yellow; position: static; }
+ .rfc2119::after { position: absolute; left: 0; width: 25px; text-align: center; color: yellow; text-shadow: 0.075em 0.075em 0.2em black; }
+ .rfc2119.m\ust::after { content: '\2605'; }
+ .rfc2119.s\hould::after { content: '\2606'; }
+ [hidden] { display: none; }
+ </style><style type=text/css>
+
+ .applies thead th > * { display: block; }
+ .applies thead code { display: block; }
+ .applies tbody th { whitespace: nowrap; }
+ .applies td { text-align: center; }
+ .applies .yes { background: yellow; }
+
+ .matrix, .matrix td { border: hidden; text-align: right; }
+ .matrix { margin-left: 2em; }
+
+ .dice-example { border-collapse: collapse; border-style: hidden solid solid hidden; border-width: thin; margin-left: 3em; }
+ .dice-example caption { width: 30em; font-size: smaller; font-style: italic; padding: 0.75em 0; text-align: left; }
+ .dice-example td, .dice-example th { border: solid thin; width: 1.35em; height: 1.05em; text-align: center; padding: 0; }
+
+ td.eg { border-width: thin; text-align: center; }
+
+ #table-example-1 { border: solid thin; border-collapse: collapse; margin-left: 3em; }
+ #table-example-1 * { font-family: "Essays1743", serif; line-height: 1.01em; }
+ #table-example-1 caption { padding-bottom: 0.5em; }
+ #table-example-1 thead, #table-example-1 tbody { border: none; }
+ #table-example-1 th, #table-example-1 td { border: solid thin; }
+ #table-example-1 th { font-weight: normal; }
+ #table-example-1 td { border-style: none solid; vertical-align: top; }
+ #table-example-1 th { padding: 0.5em; vertical-align: middle; text-align: center; }
+ #table-example-1 tbody tr:first-child td { padding-top: 0.5em; }
+ #table-example-1 tbody tr:last-child td { padding-bottom: 1.5em; }
+ #table-example-1 tbody td:first-child { padding-left: 2.5em; padding-right: 0; width: 9em; }
+ #table-example-1 tbody td:first-child::after { content: leader(". "); }
+ #table-example-1 tbody td { padding-left: 2em; padding-right: 2em; }
+ #table-example-1 tbody td:first-child + td { width: 10em; }
+ #table-example-1 tbody td:first-child + td ~ td { width: 2.5em; }
+ #table-example-1 tbody td:first-child + td + td + td ~ td { width: 1.25em; }
+
+ .apple-table-examples { border: none; border-collapse: separate; border-spacing: 1.5em 0em; width: 40em; margin-left: 3em; }
+ .apple-table-examples * { font-family: "Times", serif; }
+ .apple-table-examples td, .apple-table-examples th { border: none; white-space: nowrap; padding-top: 0; padding-bottom: 0; }
+ .apple-table-examples tbody th:first-child { border-left: none; width: 100%; }
+ .apple-table-examples thead th:first-child ~ th { font-size: smaller; font-weight: bolder; border-bottom: solid 2px; text-align: center; }
+ .apple-table-examples tbody th::after, .apple-table-examples tfoot th::after { content: leader(". ") }
+ .apple-table-examples tbody th, .apple-table-examples tfoot th { font: inherit; text-align: left; }
+ .apple-table-examples td { text-align: right; vertical-align: top; }
+ .apple-table-examples.e1 tbody tr:last-child td { border-bottom: solid 1px; }
+ .apple-table-examples.e1 tbody + tbody tr:last-child td { border-bottom: double 3px; }
+ .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
+ .apple-table-examples sup { line-height: 0; }
+
+ .details-example img { vertical-align: top; }
+
+ #base64-table {
+ white-space: nowrap;
+ font-size: 0.6em;
+ column-width: 6em;
+ column-count: 5;
+ column-gap: 1em;
+ -moz-column-width: 6em;
+ -moz-column-count: 5;
+ -moz-column-gap: 1em;
+ -webkit-column-width: 6em;
+ -webkit-column-count: 5;
+ -webkit-column-gap: 1em;
+ }
+ #base64-table thead { display: none; }
+ #base64-table * { border: none; }
+ #base64-table tbody td:first-child:after { content: ':'; }
+ #base64-table tbody td:last-child { text-align: right; }
+
+ #named-character-references-table {
+ white-space: nowrap;
+ font-size: 0.6em;
+ column-width: 30em;
+ column-gap: 1em;
+ -moz-column-width: 30em;
+ -moz-column-gap: 1em;
+ -webkit-column-width: 30em;
+ -webkit-column-gap: 1em;
+ }
+ #named-character-references-table > table > tbody > tr > td:first-child + td,
+ #named-character-references-table > table > tbody > tr > td:last-child { text-align: center; }
+ #named-character-references-table > table > tbody > tr > td:last-child:hover > span { position: absolute; top: auto; left: auto; margin-left: 0.5em; line-height: 1.2; font-size: 5em; border: outset; padding: 0.25em 0.5em; background: white; width: 1.25em; height: auto; text-align: center; }
+ #named-character-references-table > table > tbody > tr#entity-CounterClockwiseContourIntegral > td:first-child { font-size: 0.5em; }
+
+ .glyph.control { color: red; }
+
+ @font-face {
+ font-family: 'Essays1743';
+ src: url('http://www.whatwg.org/specs/web-apps/current-work/fonts/Essays1743.ttf');
+ }
+ @font-face {
+ font-family: 'Essays1743';
+ font-weight: bold;
+ src: url('http://www.whatwg.org/specs/web-apps/current-work/fonts/Essays1743-Bold.ttf');
+ }
+ @font-face {
+ font-family: 'Essays1743';
+ font-style: italic;
+ src: url('http://www.whatwg.org/specs/web-apps/current-work/fonts/Essays1743-Italic.ttf');
+ }
+ @font-face {
+ font-family: 'Essays1743';
+ font-style: italic;
+ font-weight: bold;
+ src: url('http://www.whatwg.org/specs/web-apps/current-work/fonts/Essays1743-BoldItalic.ttf');
+ }
+
+ </style>
+ <!-- BEGIN WEBKIT EDITS -->
+ <!-- Note we inline the stylesheets to help make html5-full-render.html show more consistent results. -->
+ <!-- Inlining status.css -->
+ <style>
+ .status { border: solid thin; font: 1em sans-serif; width: 7.2em; padding: 0.3em; position: absolute; z-index: 8; left: 0.3em; background: white; color: black; display: none; }
+ .status > * { font-size: 0.6em; }
+ .status.current { position: fixed; z-index: 7; top: 20px; -o-transition: 1s; -webkit-transition: 1s; } /* 20px is in the js file too */
+ .status[hidden] { display: block; opacity: 0.0; -o-transition: 0.25s; -webkit-transition: 0.25s; }
+ .status strong { display: block; border-bottom: thin solid black; margin: -0.5em -0.5em 0.2em; padding: 0.2em 0.5em 0.1em; background: black; color: white; }
+ .status p:first-child + p > a { display: block; margin: 0.1em 0 0.2em; font-weight: bold; color: black; }
+ .status.UNKNOWN strong { background: gray; color: white; }
+ .status.TBW strong { background: red; color: white; }
+ .status.WIP strong { background: red; color: white; }
+ .status.FD strong { background: orange; color: black; }
+ .status.WD strong { background: orange; color: black; }
+ .status.CWD strong { background: red; color: yellow; }
+ .status.ATRISK strong { background: red; color: yellow; }
+ .status.LC strong { background: yellow; color: black; }
+ .status.CR strong { background: lime; color: black; }
+ .status.REC strong { background: green; color: white; }
+ .status.SPLITFD strong { background: navy; color: white; }
+ .status.SPLIT/*CR*/ strong { background: navy; color: white; }
+ .status.SPLITREC strong { background: navy; color: white; }
+ .status:after { position: absolute; top: 0; left: 100%; content: '\25B6'; }
+ .status p { margin: 0; clear: both; }
+ .status p + p { overflow: hidden; }
+ .status div.implementations { height: 22px; }
+ .status div.implementations:before { display: block; content: "Implementation status:"; }
+ .status div.implementations p { font-size: 16px; float: left; margin: 0; border: 2px solid transparent; padding: 1px; text-indent: -10000px; /* well that's just silly */ width: 1em; height: 1em; background: no-repeat center center; /*background-size: 1em 1em;*/ clear: none; }
+ .status div.implementations p.IE { background-image: url(http://www.w3.org/TR/2006/WD-i18n-html-tech-lang-20060721/images/iewin.gif); background-position: center left; }
+ .status div.implementations p.Firefox { background-image: url(http://www.mozilla.org/favicon.ico); }
+ .status div.implementations p.Safari { background-image: url(http://www.webkit.org/favicon.ico); }
+ .status div.implementations p.Opera { background-image: url(http://www.opera.com/favicon.ico); }
+ .status div.implementations p.Shims { background-image: url(http://upload.wikimedia.org/wikipedia/commons/b/b7/Plugin.png); }
+ .status div.implementations p.PASS { }
+ .status div.implementations p.PARTIAL { opacity: 0.4; }
+ .status div.implementations p.NA,
+ .status div.implementations p.NONE { opacity: 0.05; }
+ .status div.implementations p.BUG { border-bottom-color: red; }
+ .status div.implementations p.CRASH { border-style: dotted; border-color: black; background-color: yellow; }
+ .status .edit-link, .status .idref { max-height: 0; opacity: 0; overflow: hidden; -o-transition: 0.25s; -webkit-transition: 0.25s; }
+ .status:hover .idref, .status:hover .edit-link { max-height: 200em; opacity: 1.0; }
+ .status .last-edit { color: silver; }
+ .status:hover { z-index: 10; }
+
+ .progress { text-decoration: blink; }
+
+ .panel { position: fixed; z-index: 9; top: 10%; left: 0; margin: auto; right: 0; width: 35em; border: double thick; background: #EEEEEE; color: black; padding: 1em; font: 1em sans-serif; max-height: 70%; overflow: auto; }
+ .panel h2 { margin: 0; text-align: center; }
+ .panel ul { min-height: 6em; }
+ .panel p { text-align: right; margin: 0; }
+ .panel form { background: transparent; color: black; margin: 0.5em -0.5em 1em; padding: 0.5em; }
+ .panel form.changed { background: yellow; color: black; }
+ .panel form p { text-align: left; margin: 1em 0 0; }
+ .panel form p:first-child { margin-top: 0; }
+ .panel form p:last-child { margin-bottom: 0; }
+ .panel form p textarea { width: 100% /* need the keyword that makes it fit to the parent here XXX */; min-height: 4em; display: block; }
+ .panel form dl { line-height: 1.5em; }
+ .panel form dt { display: inline-block; width: 20em; white-space: nowrap; text-align: right; font-weight: normal; margin: 0; padding: 0; }
+ .panel form dd { display: inline; margin: 0 0 0 1em; padding: 0; }
+ .panel form dd:after { display: block; }
+
+ body.statusEnabled .status { display: block; }
+ </style>
+ <!-- END WEBKIT EDITS -->
+ <script>
+ var startedInit = 0;
+ function init() {
+ startedInit = 1;
+ if (location.search == '?slow-browser')
+ return;
+ var configUI = document.createElement('div');
+ configUI.id = 'configUI';
+ document.body.appendChild(configUI);
+ load('reviewer.js');
+ if (document.documentElement.className == "" || document.documentElement.className == "split index")
+ load('toc.js');
+ load('updater.js');
+ load('dfn.js');
+ load('status.js');
+ if (getCookie('profile') == '1')
+ document.getElementsByTagName('h2')[0].textContent += '; load: ' + (new Date() - loadTimer) + 'ms';
+ }
+ if (document.documentElement.className == "")
+ setTimeout(function () {
+ if (!startedInit)
+ showAlert("Too slow? Try reading the multipage copy of the spec instead:", "http://whatwg.org/html");
+ }, 6000);
+ </script>
+ <!-- BEGIN WEBKIT EDITS -->
+ <script><!--
+ if (0 <= window.location.search.indexOf("test")) {
+ var query = window.location.search;
+ var key = "test=";
+ var path = query.substring(query.indexOf(key) + key.length);
+ document.write("<script src='../../resources/runner.js'></script>");
+ document.write("<script src='" + path + "'></script>");
+ }
+ --></script>
+ <!-- END WEBKIT EDITS -->
+<body onload=init()>
+
+ <header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
+ <hgroup><h1 class=allcaps>HTML</h1>
+ <h2 class="no-num no-toc">Living Standard &mdash; Last Updated 4 October 2011</h2>
+ </hgroup><dl><dt><strong>Web developer edition:</strong></dt>
+ <dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
+ <dt>Multiple-page version:</dt>
+ <dd><a href=http://www.whatwg.org/specs/web-apps/current-work/multipage/>http://whatwg.org/html</a></dd>
+ <dt>One-page version:</dt>
+ <dd><a href=http://www.whatwg.org/specs/web-apps/current-work/>http://whatwg.org/c</a></dd>
+ <dt>Participate:</dt>
+ <dd><a href=http://www.whatwg.org/mailing-list>whatwg@whatwg.org</a></dd>
+ <dd><a href=http://forums.whatwg.org/>http://forums.whatwg.org/</a></dd>
+ <dd><a href=http://wiki.whatwg.org/wiki/IRC>IRC: #whatwg on Freenode</a></dd>
+ <dt>FAQ:</dt>
+ <dd><a href=http://wiki.whatwg.org/wiki/FAQ>http://wiki.whatwg.org/wiki/FAQ</a></dd>
+ <dt>Version history:</dt>
+ <dd>Twitter updates: <a href=http://twitter.com/WHATWG>http://twitter.com/WHATWG</a></dd>
+ <dd>Commit-Watchers mailing list: <a href=http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org>http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org</a></dd>
+ <dd>Interactive Web interface: <a href=http://html5.org/tools/web-apps-tracker>http://html5.org/tools/web-apps-tracker</a></dd>
+ <dd>Subversion interface: <a href=http://svn.whatwg.org/>http://svn.whatwg.org/</a></dd>
+ <dt>Issues:</dt>
+ <dd>To view the open bugs: <a href="http://www.w3.org/Bugs/Public/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=exact&amp;email1=ian%40hixie.ch&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">HTML bug list</a></dd>
+ <dd>To file bugs, use the "submit review comments" feature at the bottom of the window</dd>
+ <dd>To send feedback by e-mail: <a href=http://www.whatwg.org/mailing-list>whatwg@whatwg.org</a></dd>
+ <dd>To view and vote on e-mail feedback: <a href=http://www.whatwg.org/issues/>http://www.whatwg.org/issues/</a></dd>
+ <dt>Editor:</dt>
+ <dd>Ian Hickson, Google, ian@hixie.ch</dd>
+ </dl><p class=copyright>&copy; Copyright 2004-2011 Apple Computer, Inc.,
+ Mozilla Foundation, and Opera Software ASA.</p>
+ <p class=copyright>You are granted a license to use, reproduce
+ and create derivative works of this document.</p>
+ </header><hr><h2 class="no-num no-toc" id=contents>Table of contents</h2>
+
+<!--begin-toc-->
+<ol class=toc>
+ <li><a href=#introduction><span class=secno>1 </span>Introduction</a>
+ <ol>
+ <li><a href=#abstract><span class=secno>1.1 </span>Where does this specification fit?</a></li>
+ <li><a href=#is-this-html5?><span class=secno>1.2 </span>Is this HTML5?</a></li>
+ <li><a href=#background><span class=secno>1.3 </span>Background</a></li>
+ <li><a href=#audience><span class=secno>1.4 </span>Audience</a></li>
+ <li><a href=#scope><span class=secno>1.5 </span>Scope</a></li>
+ <li><a href=#history-1><span class=secno>1.6 </span>History</a></li>
+ <li><a href=#design-notes><span class=secno>1.7 </span>Design notes</a>
+ <ol>
+ <li><a href=#serializability-of-script-execution><span class=secno>1.7.1 </span>Serializability of script execution</a></li>
+ <li><a href=#compliance-with-other-specifications><span class=secno>1.7.2 </span>Compliance with other specifications</a></ol></li>
+ <li><a href=#html-vs-xhtml><span class=secno>1.8 </span>HTML vs XHTML</a></li>
+ <li><a href=#structure-of-this-specification><span class=secno>1.9 </span>Structure of this specification</a>
+ <ol>
+ <li><a href=#how-to-read-this-specification><span class=secno>1.9.1 </span>How to read this specification</a></li>
+ <li><a href=#typographic-conventions><span class=secno>1.9.2 </span>Typographic conventions</a></ol></li>
+ <li><a href=#a-quick-introduction-to-html><span class=secno>1.10 </span>A quick introduction to HTML</a>
+ <ol>
+ <li><a href=#writing-secure-applications-with-html><span class=secno>1.10.1 </span>Writing secure applications with HTML</a></li>
+ <li><a href=#common-pitfalls-to-avoid-when-using-the-scripting-apis><span class=secno>1.10.2 </span>Common pitfalls to avoid when using the scripting APIs</a></ol></li>
+ <li><a href=#conformance-requirements-for-authors><span class=secno>1.11 </span>Conformance requirements for authors</a>
+ <ol>
+ <li><a href=#presentational-markup><span class=secno>1.11.1 </span>Presentational markup</a></li>
+ <li><a href=#syntax-errors><span class=secno>1.11.2 </span>Syntax errors</a></li>
+ <li><a href=#restrictions-on-content-models-and-on-attribute-values><span class=secno>1.11.3 </span>Restrictions on content models and on attribute values</a></ol></li>
+ <li><a href=#recommended-reading><span class=secno>1.12 </span>Recommended reading</a></ol></li>
+ <li><a href=#infrastructure><span class=secno>2 </span>Common infrastructure</a>
+ <ol>
+ <li><a href=#terminology><span class=secno>2.1 </span>Terminology</a>
+ <ol>
+ <li><a href=#resources><span class=secno>2.1.1 </span>Resources</a></li>
+ <li><a href=#xml><span class=secno>2.1.2 </span>XML</a></li>
+ <li><a href=#dom-trees><span class=secno>2.1.3 </span>DOM trees</a></li>
+ <li><a href=#scripting-0><span class=secno>2.1.4 </span>Scripting</a></li>
+ <li><a href=#plugins><span class=secno>2.1.5 </span>Plugins</a></li>
+ <li><a href=#character-encodings><span class=secno>2.1.6 </span>Character encodings</a></ol></li>
+ <li><a href=#conformance-requirements><span class=secno>2.2 </span>Conformance requirements</a>
+ <ol>
+ <li><a href=#conformance-classes><span class=secno>2.2.1 </span>Conformance classes</a></li>
+ <li><a href=#dependencies><span class=secno>2.2.2 </span>Dependencies</a></li>
+ <li><a href=#extensibility><span class=secno>2.2.3 </span>Extensibility</a></ol></li>
+ <li><a href=#case-sensitivity-and-string-comparison><span class=secno>2.3 </span>Case-sensitivity and string comparison</a></li>
+ <li><a href=#utf-8><span class=secno>2.4 </span>UTF-8</a></li>
+ <li><a href=#common-microsyntaxes><span class=secno>2.5 </span>Common microsyntaxes</a>
+ <ol>
+ <li><a href=#common-parser-idioms><span class=secno>2.5.1 </span>Common parser idioms</a></li>
+ <li><a href=#boolean-attributes><span class=secno>2.5.2 </span>Boolean attributes</a></li>
+ <li><a href=#keywords-and-enumerated-attributes><span class=secno>2.5.3 </span>Keywords and enumerated attributes</a></li>
+ <li><a href=#numbers><span class=secno>2.5.4 </span>Numbers</a>
+ <ol>
+ <li><a href=#non-negative-integers><span class=secno>2.5.4.1 </span>Non-negative integers</a></li>
+ <li><a href=#signed-integers><span class=secno>2.5.4.2 </span>Signed integers</a></li>
+ <li><a href=#floating-point-numbers><span class=secno>2.5.4.3 </span>Floating-point numbers</a></li>
+ <li><a href=#percentages-and-dimensions><span class=secno>2.5.4.4 </span>Percentages and lengths</a></li>
+ <li><a href=#lists-of-integers><span class=secno>2.5.4.5 </span>Lists of integers</a></li>
+ <li><a href=#lists-of-dimensions><span class=secno>2.5.4.6 </span>Lists of dimensions</a></ol></li>
+ <li><a href=#dates-and-times><span class=secno>2.5.5 </span>Dates and times</a>
+ <ol>
+ <li><a href=#months><span class=secno>2.5.5.1 </span>Months</a></li>
+ <li><a href=#dates><span class=secno>2.5.5.2 </span>Dates</a></li>
+ <li><a href=#times><span class=secno>2.5.5.3 </span>Times</a></li>
+ <li><a href=#local-dates-and-times><span class=secno>2.5.5.4 </span>Local dates and times</a></li>
+ <li><a href=#global-dates-and-times><span class=secno>2.5.5.5 </span>Global dates and times</a></li>
+ <li><a href=#weeks><span class=secno>2.5.5.6 </span>Weeks</a></li>
+ <li><a href=#vaguer-moments-in-time><span class=secno>2.5.5.7 </span>Vaguer moments in time</a></ol></li>
+ <li><a href=#colors><span class=secno>2.5.6 </span>Colors</a></li>
+ <li><a href=#space-separated-tokens><span class=secno>2.5.7 </span>Space-separated tokens</a></li>
+ <li><a href=#comma-separated-tokens><span class=secno>2.5.8 </span>Comma-separated tokens</a></li>
+ <li><a href=#syntax-references><span class=secno>2.5.9 </span>References</a></li>
+ <li><a href=#mq><span class=secno>2.5.10 </span>Media queries</a></ol></li>
+ <li><a href=#urls><span class=secno>2.6 </span>URLs</a>
+ <ol>
+ <li><a href=#terminology-0><span class=secno>2.6.1 </span>Terminology</a></li>
+ <li><a href=#parsing-urls><span class=secno>2.6.2 </span>Parsing URLs</a></li>
+ <li><a href=#resolving-urls><span class=secno>2.6.3 </span>Resolving URLs</a></li>
+ <li><a href=#url-manipulation-and-creation><span class=secno>2.6.4 </span>URL manipulation and creation</a></li>
+ <li><a href=#dynamic-changes-to-base-urls><span class=secno>2.6.5 </span>Dynamic changes to base URLs</a></li>
+ <li><a href=#interfaces-for-url-manipulation><span class=secno>2.6.6 </span>Interfaces for URL manipulation</a></ol></li>
+ <li><a href=#fetching-resources><span class=secno>2.7 </span>Fetching resources</a>
+ <ol>
+ <li><a href=#concept-http-equivalent><span class=secno>2.7.1 </span>Protocol concepts</a></li>
+ <li><a href=#encrypted-http-and-related-security-concerns><span class=secno>2.7.2 </span>Encrypted HTTP and related security concerns</a></li>
+ <li><a href=#content-type-sniffing><span class=secno>2.7.3 </span>Determining the type of a resource</a></li>
+ <li><a href=#extracting-encodings-from-meta-elements><span class=secno>2.7.4 </span>Extracting encodings from <code>meta</code> elements</a></li>
+ <li><a href=#cors-settings-attributes><span class=secno>2.7.5 </span>CORS settings attributes</a></li>
+ <li><a href=#cors-enabled-fetch><span class=secno>2.7.6 </span>CORS-enabled fetch</a></ol></li>
+ <li><a href=#common-dom-interfaces><span class=secno>2.8 </span>Common DOM interfaces</a>
+ <ol>
+ <li><a href=#reflecting-content-attributes-in-idl-attributes><span class=secno>2.8.1 </span>Reflecting content attributes in IDL attributes</a></li>
+ <li><a href=#collections-0><span class=secno>2.8.2 </span>Collections</a>
+ <ol>
+ <li><a href=#htmlallcollection-0><span class=secno>2.8.2.1 </span>HTMLAllCollection</a></li>
+ <li><a href=#htmlformcontrolscollection-0><span class=secno>2.8.2.2 </span>HTMLFormControlsCollection</a></li>
+ <li><a href=#htmloptionscollection-0><span class=secno>2.8.2.3 </span>HTMLOptionsCollection</a></li>
+ <li><a href=#htmlpropertiescollection-0><span class=secno>2.8.2.4 </span>HTMLPropertiesCollection</a></ol></li>
+ <li><a href=#domstringmap-0><span class=secno>2.8.3 </span>DOMStringMap</a></li>
+ <li><a href=#domelementmap-0><span class=secno>2.8.4 </span>DOMElementMap</a></li>
+ <li><a href=#transferable-objects><span class=secno>2.8.5 </span>Transferable objects</a></li>
+ <li><a href=#safe-passing-of-structured-data><span class=secno>2.8.6 </span>Safe passing of structured data</a></li>
+ <li><a href=#dom-feature-strings><span class=secno>2.8.7 </span>DOM feature strings</a></li>
+ <li><a href=#garbage-collection><span class=secno>2.8.8 </span>Garbage collection</a></ol></li>
+ <li><a href=#namespaces><span class=secno>2.9 </span>Namespaces</a></ol></li>
+ <li><a href=#dom><span class=secno>3 </span>Semantics, structure, and APIs of HTML documents</a>
+ <ol>
+ <li><a href=#documents><span class=secno>3.1 </span>Documents</a>
+ <ol>
+ <li><a href=#documents-in-the-dom><span class=secno>3.1.1 </span>Documents in the DOM</a></li>
+ <li><a href=#security-document><span class=secno>3.1.2 </span>Security</a></li>
+ <li><a href=#resource-metadata-management><span class=secno>3.1.3 </span>Resource metadata management</a></li>
+ <li><a href=#dom-tree-accessors><span class=secno>3.1.4 </span>DOM tree accessors</a></li>
+ <li><a href=#loading-xml-documents><span class=secno>3.1.5 </span>Loading XML documents</a></ol></li>
+ <li><a href=#elements><span class=secno>3.2 </span>Elements</a>
+ <ol>
+ <li><a href=#semantics-0><span class=secno>3.2.1 </span>Semantics</a></li>
+ <li><a href=#elements-in-the-dom><span class=secno>3.2.2 </span>Elements in the DOM</a></li>
+ <li><a href=#global-attributes><span class=secno>3.2.3 </span>Global attributes</a>
+ <ol>
+ <li><a href=#the-id-attribute><span class=secno>3.2.3.1 </span>The <code>id</code> attribute</a></li>
+ <li><a href=#the-title-attribute><span class=secno>3.2.3.2 </span>The <code>title</code> attribute</a></li>
+ <li><a href=#the-lang-and-xml:lang-attributes><span class=secno>3.2.3.3 </span>The <code title=attr-lang>lang</code> and <code title=attr-xml-lang>xml:lang</code> attributes</a></li>
+ <li><a href=#the-xml:base-attribute-(xml-only)><span class=secno>3.2.3.4 </span>The <code>xml:base</code>
+ attribute (XML only)</a></li>
+ <li><a href=#the-dir-attribute><span class=secno>3.2.3.5 </span>The <code>dir</code> attribute</a></li>
+ <li><a href=#classes><span class=secno>3.2.3.6 </span>The <code>class</code> attribute</a></li>
+ <li><a href=#the-style-attribute><span class=secno>3.2.3.7 </span>The <code>style</code> attribute</a></li>
+ <li><a href=#embedding-custom-non-visible-data-with-the-data-*-attributes><span class=secno>3.2.3.8 </span>Embedding custom non-visible data with the <code title=attr-data-*>data-*</code> attributes</a></ol></li>
+ <li><a href=#element-definitions><span class=secno>3.2.4 </span>Element definitions</a>
+ <ol>
+ <li><a href=#attributes><span class=secno>3.2.4.1 </span>Attributes</a></ol></li>
+ <li><a href=#content-models><span class=secno>3.2.5 </span>Content models</a>
+ <ol>
+ <li><a href=#kinds-of-content><span class=secno>3.2.5.1 </span>Kinds of content</a>
+ <ol>
+ <li><a href=#metadata-content-0><span class=secno>3.2.5.1.1 </span>Metadata content</a></li>
+ <li><a href=#flow-content-0><span class=secno>3.2.5.1.2 </span>Flow content</a></li>
+ <li><a href=#sectioning-content-0><span class=secno>3.2.5.1.3 </span>Sectioning content</a></li>
+ <li><a href=#heading-content-0><span class=secno>3.2.5.1.4 </span>Heading content</a></li>
+ <li><a href=#phrasing-content-0><span class=secno>3.2.5.1.5 </span>Phrasing content</a></li>
+ <li><a href=#embedded-content-0><span class=secno>3.2.5.1.6 </span>Embedded content</a></li>
+ <li><a href=#interactive-content-0><span class=secno>3.2.5.1.7 </span>Interactive content</a></ol></li>
+ <li><a href=#transparent-content-models><span class=secno>3.2.5.2 </span>Transparent content models</a></li>
+ <li><a href=#paragraphs><span class=secno>3.2.5.3 </span>Paragraphs</a></ol></li>
+ <li><a href=#requirements-relating-to-bidirectional-algorithm-formatting-characters><span class=secno>3.2.6 </span>Requirements relating to bidirectional-algorithm formatting
+ characters</a></li>
+ <li><a href=#wai-aria><span class=secno>3.2.7 </span>WAI-ARIA</a></ol></li>
+ <li><a href=#interactions-with-xpath-and-xslt><span class=secno>3.3 </span>Interactions with XPath and XSLT</a></li>
+ <li><a href=#dynamic-markup-insertion><span class=secno>3.4 </span>Dynamic markup insertion</a>
+ <ol>
+ <li><a href=#opening-the-input-stream><span class=secno>3.4.1 </span>Opening the input stream</a></li>
+ <li><a href=#closing-the-input-stream><span class=secno>3.4.2 </span>Closing the input stream</a></li>
+ <li><a href=#document.write()><span class=secno>3.4.3 </span><code title=dom-document-write>document.write()</code></a></li>
+ <li><a href=#document.writeln()><span class=secno>3.4.4 </span><code title=dom-document-writeln>document.writeln()</code></a></ol></ol></li>
+ <li><a href=#semantics><span class=secno>4 </span>The elements of HTML</a>
+ <ol>
+ <li><a href=#the-root-element><span class=secno>4.1 </span>The root element</a>
+ <ol>
+ <li><a href=#the-html-element><span class=secno>4.1.1 </span>The <code>html</code> element</a></ol></li>
+ <li><a href=#document-metadata><span class=secno>4.2 </span>Document metadata</a>
+ <ol>
+ <li><a href=#the-head-element><span class=secno>4.2.1 </span>The <code>head</code> element</a></li>
+ <li><a href=#the-title-element><span class=secno>4.2.2 </span>The <code>title</code> element</a></li>
+ <li><a href=#the-base-element><span class=secno>4.2.3 </span>The <code>base</code> element</a></li>
+ <li><a href=#the-link-element><span class=secno>4.2.4 </span>The <code>link</code> element</a></li>
+ <li><a href=#the-meta-element><span class=secno>4.2.5 </span>The <code>meta</code> element</a>
+ <ol>
+ <li><a href=#standard-metadata-names><span class=secno>4.2.5.1 </span>Standard metadata names</a></li>
+ <li><a href=#other-metadata-names><span class=secno>4.2.5.2 </span>Other metadata names</a></li>
+ <li><a href=#pragma-directives><span class=secno>4.2.5.3 </span>Pragma directives</a></li>
+ <li><a href=#other-pragma-directives><span class=secno>4.2.5.4 </span>Other pragma directives</a></li>
+ <li><a href=#charset><span class=secno>4.2.5.5 </span>Specifying the document's character encoding</a></ol></li>
+ <li><a href=#the-style-element><span class=secno>4.2.6 </span>The <code>style</code> element</a></li>
+ <li><a href=#styling><span class=secno>4.2.7 </span>Styling</a></ol></li>
+ <li><a href=#scripting-1><span class=secno>4.3 </span>Scripting</a>
+ <ol>
+ <li><a href=#the-script-element><span class=secno>4.3.1 </span>The <code>script</code> element</a>
+ <ol>
+ <li><a href=#scriptingLanguages><span class=secno>4.3.1.1 </span>Scripting languages</a></li>
+ <li><a href=#restrictions-for-contents-of-script-elements><span class=secno>4.3.1.2 </span>Restrictions for contents of <code>script</code> elements</a></li>
+ <li><a href=#inline-documentation-for-external-scripts><span class=secno>4.3.1.3 </span>Inline documentation for external scripts</a></li>
+ <li><a href=#scriptTagXSLT><span class=secno>4.3.1.4 </span>Interaction of <code>script</code> elements and XSLT</a></ol></li>
+ <li><a href=#the-noscript-element><span class=secno>4.3.2 </span>The <code>noscript</code> element</a></ol></li>
+ <li><a href=#sections><span class=secno>4.4 </span>Sections</a>
+ <ol>
+ <li><a href=#the-body-element><span class=secno>4.4.1 </span>The <code>body</code> element</a></li>
+ <li><a href=#the-section-element><span class=secno>4.4.2 </span>The <code>section</code> element</a></li>
+ <li><a href=#the-nav-element><span class=secno>4.4.3 </span>The <code>nav</code> element</a></li>
+ <li><a href=#the-article-element><span class=secno>4.4.4 </span>The <code>article</code> element</a></li>
+ <li><a href=#the-aside-element><span class=secno>4.4.5 </span>The <code>aside</code> element</a></li>
+ <li><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements><span class=secno>4.4.6 </span>The <code>h1</code>, <code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>, and <code>h6</code> elements</a></li>
+ <li><a href=#the-hgroup-element><span class=secno>4.4.7 </span>The <code>hgroup</code> element</a></li>
+ <li><a href=#the-header-element><span class=secno>4.4.8 </span>The <code>header</code> element</a></li>
+ <li><a href=#the-footer-element><span class=secno>4.4.9 </span>The <code>footer</code> element</a></li>
+ <li><a href=#the-address-element><span class=secno>4.4.10 </span>The <code>address</code> element</a></li>
+ <li><a href=#headings-and-sections><span class=secno>4.4.11 </span>Headings and sections</a>
+ <ol>
+ <li><a href=#outlines><span class=secno>4.4.11.1 </span>Creating an outline</a></ol></ol></li>
+ <li><a href=#grouping-content><span class=secno>4.5 </span>Grouping content</a>
+ <ol>
+ <li><a href=#the-p-element><span class=secno>4.5.1 </span>The <code>p</code> element</a></li>
+ <li><a href=#the-hr-element><span class=secno>4.5.2 </span>The <code>hr</code> element</a></li>
+ <li><a href=#the-pre-element><span class=secno>4.5.3 </span>The <code>pre</code> element</a></li>
+ <li><a href=#the-blockquote-element><span class=secno>4.5.4 </span>The <code>blockquote</code> element</a></li>
+ <li><a href=#the-ol-element><span class=secno>4.5.5 </span>The <code>ol</code> element</a></li>
+ <li><a href=#the-ul-element><span class=secno>4.5.6 </span>The <code>ul</code> element</a></li>
+ <li><a href=#the-li-element><span class=secno>4.5.7 </span>The <code>li</code> element</a></li>
+ <li><a href=#the-dl-element><span class=secno>4.5.8 </span>The <code>dl</code> element</a></li>
+ <li><a href=#the-dt-element><span class=secno>4.5.9 </span>The <code>dt</code> element</a></li>
+ <li><a href=#the-dd-element><span class=secno>4.5.10 </span>The <code>dd</code> element</a></li>
+ <li><a href=#the-figure-element><span class=secno>4.5.11 </span>The <code>figure</code> element</a></li>
+ <li><a href=#the-figcaption-element><span class=secno>4.5.12 </span>The <code>figcaption</code> element</a></li>
+ <li><a href=#the-div-element><span class=secno>4.5.13 </span>The <code>div</code> element</a></ol></li>
+ <li><a href=#text-level-semantics><span class=secno>4.6 </span>Text-level semantics</a>
+ <ol>
+ <li><a href=#the-a-element><span class=secno>4.6.1 </span>The <code>a</code> element</a></li>
+ <li><a href=#the-em-element><span class=secno>4.6.2 </span>The <code>em</code> element</a></li>
+ <li><a href=#the-strong-element><span class=secno>4.6.3 </span>The <code>strong</code> element</a></li>
+ <li><a href=#the-small-element><span class=secno>4.6.4 </span>The <code>small</code> element</a></li>
+ <li><a href=#the-s-element><span class=secno>4.6.5 </span>The <code>s</code> element</a></li>
+ <li><a href=#the-cite-element><span class=secno>4.6.6 </span>The <code>cite</code> element</a></li>
+ <li><a href=#the-q-element><span class=secno>4.6.7 </span>The <code>q</code> element</a></li>
+ <li><a href=#the-dfn-element><span class=secno>4.6.8 </span>The <code>dfn</code> element</a></li>
+ <li><a href=#the-abbr-element><span class=secno>4.6.9 </span>The <code>abbr</code> element</a></li>
+ <li><a href=#the-time-element><span class=secno>4.6.10 </span>The <code>time</code> element</a></li>
+ <li><a href=#the-code-element><span class=secno>4.6.11 </span>The <code>code</code> element</a></li>
+ <li><a href=#the-var-element><span class=secno>4.6.12 </span>The <code>var</code> element</a></li>
+ <li><a href=#the-samp-element><span class=secno>4.6.13 </span>The <code>samp</code> element</a></li>
+ <li><a href=#the-kbd-element><span class=secno>4.6.14 </span>The <code>kbd</code> element</a></li>
+ <li><a href=#the-sub-and-sup-elements><span class=secno>4.6.15 </span>The <code>sub</code> and <code>sup</code> elements</a></li>
+ <li><a href=#the-i-element><span class=secno>4.6.16 </span>The <code>i</code> element</a></li>
+ <li><a href=#the-b-element><span class=secno>4.6.17 </span>The <code>b</code> element</a></li>
+ <li><a href=#the-u-element><span class=secno>4.6.18 </span>The <code>u</code> element</a></li>
+ <li><a href=#the-mark-element><span class=secno>4.6.19 </span>The <code>mark</code> element</a></li>
+ <li><a href=#the-ruby-element><span class=secno>4.6.20 </span>The <code>ruby</code> element</a></li>
+ <li><a href=#the-rt-element><span class=secno>4.6.21 </span>The <code>rt</code> element</a></li>
+ <li><a href=#the-rp-element><span class=secno>4.6.22 </span>The <code>rp</code> element</a></li>
+ <li><a href=#the-bdi-element><span class=secno>4.6.23 </span>The <code>bdi</code> element</a></li>
+ <li><a href=#the-bdo-element><span class=secno>4.6.24 </span>The <code>bdo</code> element</a></li>
+ <li><a href=#the-span-element><span class=secno>4.6.25 </span>The <code>span</code> element</a></li>
+ <li><a href=#the-br-element><span class=secno>4.6.26 </span>The <code>br</code> element</a></li>
+ <li><a href=#the-wbr-element><span class=secno>4.6.27 </span>The <code>wbr</code> element</a></li>
+ <li><a href=#usage-summary><span class=secno>4.6.28 </span>Usage summary</a></ol></li>
+ <li><a href=#edits><span class=secno>4.7 </span>Edits</a>
+ <ol>
+ <li><a href=#the-ins-element><span class=secno>4.7.1 </span>The <code>ins</code> element</a></li>
+ <li><a href=#the-del-element><span class=secno>4.7.2 </span>The <code>del</code> element</a></li>
+ <li><a href=#attributes-common-to-ins-and-del-elements><span class=secno>4.7.3 </span>Attributes common to <code>ins</code> and <code>del</code> elements</a></li>
+ <li><a href=#edits-and-paragraphs><span class=secno>4.7.4 </span>Edits and paragraphs</a></li>
+ <li><a href=#edits-and-lists><span class=secno>4.7.5 </span>Edits and lists</a></li>
+ <li><a href=#edits-and-tables><span class=secno>4.7.6 </span>Edits and tables</a></ol></li>
+ <li><a href=#embedded-content-1><span class=secno>4.8 </span>Embedded content</a>
+ <ol>
+ <li><a href=#the-img-element><span class=secno>4.8.1 </span>The <code>img</code> element</a>
+ <ol>
+ <li><a href=#alt><span class=secno>4.8.1.1 </span>Requirements for providing text to act as an alternative for images</a>
+ <ol>
+ <li><a href=#general-guidelines><span class=secno>4.8.1.1.1 </span>General guidelines</a></li>
+ <li><a href=#a-link-or-button-containing-nothing-but-the-image><span class=secno>4.8.1.1.2 </span>A link or button containing nothing but the image</a></li>
+ <li><a href=#a-phrase-or-paragraph-with-an-alternative-graphical-representation:-charts,-diagrams,-graphs,-maps,-illustrations><span class=secno>4.8.1.1.3 </span>A phrase or paragraph with an alternative graphical representation: charts, diagrams, graphs, maps, illustrations</a></li>
+ <li><a href=#a-short-phrase-or-label-with-an-alternative-graphical-representation:-icons,-logos><span class=secno>4.8.1.1.4 </span>A short phrase or label with an alternative graphical representation: icons, logos</a></li>
+ <li><a href=#text-that-has-been-rendered-to-a-graphic-for-typographical-effect><span class=secno>4.8.1.1.5 </span>Text that has been rendered to a graphic for typographical effect</a></li>
+ <li><a href=#a-graphical-representation-of-some-of-the-surrounding-text><span class=secno>4.8.1.1.6 </span>A graphical representation of some of the surrounding text</a></li>
+ <li><a href="#a-purely-decorative-image-that-doesn't-add-any-information"><span class=secno>4.8.1.1.7 </span>A purely decorative image that doesn't add any information</a></li>
+ <li><a href=#a-group-of-images-that-form-a-single-larger-picture-with-no-links><span class=secno>4.8.1.1.8 </span>A group of images that form a single larger picture with no links</a></li>
+ <li><a href=#a-group-of-images-that-form-a-single-larger-picture-with-links><span class=secno>4.8.1.1.9 </span>A group of images that form a single larger picture with links</a></li>
+ <li><a href=#a-key-part-of-the-content><span class=secno>4.8.1.1.10 </span>A key part of the content</a></li>
+ <li><a href=#an-image-not-intended-for-the-user><span class=secno>4.8.1.1.11 </span>An image not intended for the user</a></li>
+ <li><a href=#an-image-in-an-e-mail-or-private-document-intended-for-a-specific-person-who-is-known-to-be-able-to-view-images><span class=secno>4.8.1.1.12 </span>An image in an e-mail or private document intended for a specific person who is known to be able to view images</a></li>
+ <li><a href=#guidance-for-markup-generators><span class=secno>4.8.1.1.13 </span>Guidance for markup generators</a></li>
+ <li><a href=#guidance-for-conformance-checkers><span class=secno>4.8.1.1.14 </span>Guidance for conformance checkers</a></ol></ol></li>
+ <li><a href=#the-iframe-element><span class=secno>4.8.2 </span>The <code>iframe</code> element</a></li>
+ <li><a href=#the-embed-element><span class=secno>4.8.3 </span>The <code>embed</code> element</a></li>
+ <li><a href=#the-object-element><span class=secno>4.8.4 </span>The <code>object</code> element</a></li>
+ <li><a href=#the-param-element><span class=secno>4.8.5 </span>The <code>param</code> element</a></li>
+ <li><a href=#the-video-element><span class=secno>4.8.6 </span>The <code>video</code> element</a></li>
+ <li><a href=#the-audio-element><span class=secno>4.8.7 </span>The <code>audio</code> element</a></li>
+ <li><a href=#the-source-element><span class=secno>4.8.8 </span>The <code>source</code> element</a></li>
+ <li><a href=#the-track-element><span class=secno>4.8.9 </span>The <code>track</code> element</a></li>
+ <li><a href=#media-elements><span class=secno>4.8.10 </span>Media elements</a>
+ <ol>
+ <li><a href=#error-codes><span class=secno>4.8.10.1 </span>Error codes</a></li>
+ <li><a href=#location-of-the-media-resource><span class=secno>4.8.10.2 </span>Location of the media resource</a></li>
+ <li><a href=#mime-types><span class=secno>4.8.10.3 </span>MIME types</a></li>
+ <li><a href=#network-states><span class=secno>4.8.10.4 </span>Network states</a></li>
+ <li><a href=#loading-the-media-resource><span class=secno>4.8.10.5 </span>Loading the media resource</a></li>
+ <li><a href=#offsets-into-the-media-resource><span class=secno>4.8.10.6 </span>Offsets into the media resource</a></li>
+ <li><a href=#ready-states><span class=secno>4.8.10.7 </span>Ready states</a></li>
+ <li><a href=#playing-the-media-resource><span class=secno>4.8.10.8 </span>Playing the media resource</a></li>
+ <li><a href=#seeking><span class=secno>4.8.10.9 </span>Seeking</a></li>
+ <li><a href=#media-resources-with-multiple-media-tracks><span class=secno>4.8.10.10 </span>Media resources with multiple media tracks</a>
+ <ol>
+ <li><a href=#audiotracklist-and-videotracklist-objects><span class=secno>4.8.10.10.1 </span><code>AudioTrackList</code> and <code>VideoTrackList</code> objects</a></li>
+ <li><a href=#selecting-specific-audio-and-video-tracks-declaratively><span class=secno>4.8.10.10.2 </span>Selecting specific audio and video tracks declaratively</a></ol></li>
+ <li><a href=#synchronising-multiple-media-elements><span class=secno>4.8.10.11 </span>Synchronising multiple media elements</a>
+ <ol>
+ <li><a href=#introduction-0><span class=secno>4.8.10.11.1 </span>Introduction</a></li>
+ <li><a href=#media-controllers><span class=secno>4.8.10.11.2 </span>Media controllers</a></li>
+ <li><a href=#assigning-a-media-controller-declaratively><span class=secno>4.8.10.11.3 </span>Assigning a media controller declaratively</a></ol></li>
+ <li><a href=#timed-text-tracks><span class=secno>4.8.10.12 </span>Timed text tracks</a>
+ <ol>
+ <li><a href=#text-track-model><span class=secno>4.8.10.12.1 </span>Text track model</a></li>
+ <li><a href=#sourcing-in-band-text-tracks><span class=secno>4.8.10.12.2 </span>Sourcing in-band text tracks</a></li>
+ <li><a href=#sourcing-out-of-band-text-tracks><span class=secno>4.8.10.12.3 </span>Sourcing out-of-band text tracks</a></li>
+ <li><a href=#guidelines-for-exposing-cues-in-various-formats-as-text-track-cues><span class=secno>4.8.10.12.4 </span>Guidelines for exposing cues in various formats as
+ text track cues</a></li>
+ <li><a href=#text-track-api><span class=secno>4.8.10.12.5 </span>Text track API</a></li>
+ <li><a href=#text-tracks-describing-chapters><span class=secno>4.8.10.12.6 </span>Text tracks describing chapters</a></li>
+ <li><a href=#cue-events><span class=secno>4.8.10.12.7 </span>Event definitions</a></ol></li>
+ <li><a href=#webvtt-0><span class=secno>4.8.10.13 </span>WebVTT</a>
+ <ol>
+ <li><a href=#introduction-1><span class=secno>4.8.10.13.1 </span>Introduction</a></li>
+ <li><a href=#syntax-0><span class=secno>4.8.10.13.2 </span>Syntax</a></li>
+ <li><a href=#parsing-0><span class=secno>4.8.10.13.3 </span>Parsing</a></li>
+ <li><a href=#webvtt-cue-text-parsing-rules><span class=secno>4.8.10.13.4 </span>WebVTT cue text parsing rules</a></li>
+ <li><a href=#webvtt-cue-text-dom-construction-rules><span class=secno>4.8.10.13.5 </span>WebVTT cue text DOM construction rules</a></ol></li>
+ <li><a href=#user-interface><span class=secno>4.8.10.14 </span>User interface</a></li>
+ <li><a href=#time-ranges><span class=secno>4.8.10.15 </span>Time ranges</a></li>
+ <li><a href=#event-definitions><span class=secno>4.8.10.16 </span>Event definitions</a></li>
+ <li><a href=#mediaevents><span class=secno>4.8.10.17 </span>Event summary</a></li>
+ <li><a href=#security-and-privacy-considerations><span class=secno>4.8.10.18 </span>Security and privacy considerations</a></li>
+ <li><a href=#best-practices-for-authors-using-media-elements><span class=secno>4.8.10.19 </span>Best practices for authors using media elements</a></li>
+ <li><a href=#best-practices-for-implementors-of-media-elements><span class=secno>4.8.10.20 </span>Best practices for implementors of media elements</a></ol></li>
+ <li><a href=#the-canvas-element><span class=secno>4.8.11 </span>The <code>canvas</code> element</a>
+ <ol>
+ <li><a href=#2dcontext><span class=secno>4.8.11.1 </span>The 2D context</a>
+ <ol>
+ <li><a href=#the-canvas-state><span class=secno>4.8.11.1.1 </span>The canvas state</a></li>
+ <li><a href=#transformations><span class=secno>4.8.11.1.2 </span>Transformations</a></li>
+ <li><a href=#compositing><span class=secno>4.8.11.1.3 </span>Compositing</a></li>
+ <li><a href=#colors-and-styles><span class=secno>4.8.11.1.4 </span>Colors and styles</a></li>
+ <li><a href=#line-styles><span class=secno>4.8.11.1.5 </span>Line styles</a></li>
+ <li><a href=#shadows><span class=secno>4.8.11.1.6 </span>Shadows</a></li>
+ <li><a href=#simple-shapes-(rectangles)><span class=secno>4.8.11.1.7 </span>Simple shapes (rectangles)</a></li>
+ <li><a href=#complex-shapes-(paths)><span class=secno>4.8.11.1.8 </span>Complex shapes (paths)</a></li>
+ <li><a href=#text-0><span class=secno>4.8.11.1.9 </span>Text</a></li>
+ <li><a href=#images><span class=secno>4.8.11.1.10 </span>Images</a></li>
+ <li><a href=#pixel-manipulation><span class=secno>4.8.11.1.11 </span>Pixel manipulation</a></li>
+ <li><a href=#drawing-model><span class=secno>4.8.11.1.12 </span>Drawing model</a></li>
+ <li><a href=#best-practices><span class=secno>4.8.11.1.13 </span>Best practices</a></li>
+ <li><a href=#examples><span class=secno>4.8.11.1.14 </span>Examples</a></ol></li>
+ <li><a href=#color-spaces-and-color-correction><span class=secno>4.8.11.2 </span>Color spaces and color correction</a></li>
+ <li><a href=#security-with-canvas-elements><span class=secno>4.8.11.3 </span>Security with <code>canvas</code> elements</a></ol></li>
+ <li><a href=#the-map-element><span class=secno>4.8.12 </span>The <code>map</code> element</a></li>
+ <li><a href=#the-area-element><span class=secno>4.8.13 </span>The <code>area</code> element</a></li>
+ <li><a href=#image-maps><span class=secno>4.8.14 </span>Image maps</a>
+ <ol>
+ <li><a href=#authoring><span class=secno>4.8.14.1 </span>Authoring</a></li>
+ <li><a href=#processing-model><span class=secno>4.8.14.2 </span>Processing model</a></ol></li>
+ <li><a href=#mathml><span class=secno>4.8.15 </span>MathML</a></li>
+ <li><a href=#svg-0><span class=secno>4.8.16 </span>SVG</a></li>
+ <li><a href=#dimension-attributes><span class=secno>4.8.17 </span>Dimension attributes</a></ol></li>
+ <li><a href=#tabular-data><span class=secno>4.9 </span>Tabular data</a>
+ <ol>
+ <li><a href=#the-table-element><span class=secno>4.9.1 </span>The <code>table</code> element</a>
+ <ol>
+ <li><a href=#table-descriptions-techniques><span class=secno>4.9.1.1 </span>Techniques for describing tables</a></li>
+ <li><a href=#table-layout-techniques><span class=secno>4.9.1.2 </span>Techniques for table layout</a></ol></li>
+ <li><a href=#the-caption-element><span class=secno>4.9.2 </span>The <code>caption</code> element</a></li>
+ <li><a href=#the-colgroup-element><span class=secno>4.9.3 </span>The <code>colgroup</code> element</a></li>
+ <li><a href=#the-col-element><span class=secno>4.9.4 </span>The <code>col</code> element</a></li>
+ <li><a href=#the-tbody-element><span class=secno>4.9.5 </span>The <code>tbody</code> element</a></li>
+ <li><a href=#the-thead-element><span class=secno>4.9.6 </span>The <code>thead</code> element</a></li>
+ <li><a href=#the-tfoot-element><span class=secno>4.9.7 </span>The <code>tfoot</code> element</a></li>
+ <li><a href=#the-tr-element><span class=secno>4.9.8 </span>The <code>tr</code> element</a></li>
+ <li><a href=#the-td-element><span class=secno>4.9.9 </span>The <code>td</code> element</a></li>
+ <li><a href=#the-th-element><span class=secno>4.9.10 </span>The <code>th</code> element</a></li>
+ <li><a href=#attributes-common-to-td-and-th-elements><span class=secno>4.9.11 </span>Attributes common to <code>td</code> and <code>th</code> elements</a></li>
+ <li><a href=#processing-model-0><span class=secno>4.9.12 </span>Processing model</a>
+ <ol>
+ <li><a href=#forming-a-table><span class=secno>4.9.12.1 </span>Forming a table</a></li>
+ <li><a href=#header-and-data-cell-semantics><span class=secno>4.9.12.2 </span>Forming relationships between data cells and header cells</a></ol></li>
+ <li><a href=#examples-0><span class=secno>4.9.13 </span>Examples</a></ol></li>
+ <li><a href=#forms><span class=secno>4.10 </span>Forms</a>
+ <ol>
+ <li><a href=#introduction-2><span class=secno>4.10.1 </span>Introduction</a>
+ <ol>
+ <li><a href="#writing-a-form's-user-interface"><span class=secno>4.10.1.1 </span>Writing a form's user interface</a></li>
+ <li><a href=#implementing-the-server-side-processing-for-a-form><span class=secno>4.10.1.2 </span>Implementing the server-side processing for a form</a></li>
+ <li><a href=#configuring-a-form-to-communicate-with-a-server><span class=secno>4.10.1.3 </span>Configuring a form to communicate with a server</a></li>
+ <li><a href=#client-side-form-validation><span class=secno>4.10.1.4 </span>Client-side form validation</a></ol></li>
+ <li><a href=#categories><span class=secno>4.10.2 </span>Categories</a></li>
+ <li><a href=#the-form-element><span class=secno>4.10.3 </span>The <code>form</code> element</a></li>
+ <li><a href=#the-fieldset-element><span class=secno>4.10.4 </span>The <code>fieldset</code> element</a></li>
+ <li><a href=#the-legend-element><span class=secno>4.10.5 </span>The <code>legend</code> element</a></li>
+ <li><a href=#the-label-element><span class=secno>4.10.6 </span>The <code>label</code> element</a></li>
+ <li><a href=#the-input-element><span class=secno>4.10.7 </span>The <code>input</code> element</a>
+ <ol>
+ <li><a href=#states-of-the-type-attribute><span class=secno>4.10.7.1 </span>States of the <code title=attr-input-type>type</code> attribute</a>
+ <ol>
+ <li><a href=#hidden-state><span class=secno>4.10.7.1.1 </span>Hidden state</a></li>
+ <li><a href=#text-state-and-search-state><span class=secno>4.10.7.1.2 </span>Text state and Search state</a></li>
+ <li><a href=#telephone-state><span class=secno>4.10.7.1.3 </span>Telephone state</a></li>
+ <li><a href=#url-state><span class=secno>4.10.7.1.4 </span>URL state</a></li>
+ <li><a href=#e-mail-state><span class=secno>4.10.7.1.5 </span>E-mail state</a></li>
+ <li><a href=#password-state><span class=secno>4.10.7.1.6 </span>Password state</a></li>
+ <li><a href=#date-and-time-state><span class=secno>4.10.7.1.7 </span>Date and Time state</a></li>
+ <li><a href=#date-state><span class=secno>4.10.7.1.8 </span>Date state</a></li>
+ <li><a href=#month-state><span class=secno>4.10.7.1.9 </span>Month state</a></li>
+ <li><a href=#week-state><span class=secno>4.10.7.1.10 </span>Week state</a></li>
+ <li><a href=#time-state><span class=secno>4.10.7.1.11 </span>Time state</a></li>
+ <li><a href=#local-date-and-time-state><span class=secno>4.10.7.1.12 </span>Local Date and Time state</a></li>
+ <li><a href=#number-state><span class=secno>4.10.7.1.13 </span>Number state</a></li>
+ <li><a href=#range-state><span class=secno>4.10.7.1.14 </span>Range state</a></li>
+ <li><a href=#color-state><span class=secno>4.10.7.1.15 </span>Color state</a></li>
+ <li><a href=#checkbox-state><span class=secno>4.10.7.1.16 </span>Checkbox state</a></li>
+ <li><a href=#radio-button-state><span class=secno>4.10.7.1.17 </span>Radio Button state</a></li>
+ <li><a href=#file-upload-state><span class=secno>4.10.7.1.18 </span>File Upload state</a></li>
+ <li><a href=#submit-button-state><span class=secno>4.10.7.1.19 </span>Submit Button state</a></li>
+ <li><a href=#image-button-state><span class=secno>4.10.7.1.20 </span>Image Button state</a></li>
+ <li><a href=#reset-button-state><span class=secno>4.10.7.1.21 </span>Reset Button state</a></li>
+ <li><a href=#button-state><span class=secno>4.10.7.1.22 </span>Button state</a></ol></li>
+ <li><a href=#common-input-element-attributes><span class=secno>4.10.7.2 </span>Common <code>input</code> element attributes</a>
+ <ol>
+ <li><a href=#the-autocomplete-attribute><span class=secno>4.10.7.2.1 </span>The <code title=attr-input-autocomplete>autocomplete</code> attribute</a></li>
+ <li><a href=#the-dirname-attribute><span class=secno>4.10.7.2.2 </span>The <code title=attr-input-dirname>dirname</code> attribute</a></li>
+ <li><a href=#the-list-attribute><span class=secno>4.10.7.2.3 </span>The <code title=attr-input-list>list</code> attribute</a></li>
+ <li><a href=#the-readonly-attribute><span class=secno>4.10.7.2.4 </span>The <code title=attr-input-readonly>readonly</code> attribute</a></li>
+ <li><a href=#the-size-attribute><span class=secno>4.10.7.2.5 </span>The <code title=attr-input-size>size</code> attribute</a></li>
+ <li><a href=#the-required-attribute><span class=secno>4.10.7.2.6 </span>The <code title=attr-input-required>required</code> attribute</a></li>
+ <li><a href=#the-multiple-attribute><span class=secno>4.10.7.2.7 </span>The <code title=attr-input-multiple>multiple</code> attribute</a></li>
+ <li><a href=#the-maxlength-attribute><span class=secno>4.10.7.2.8 </span>The <code title=attr-input-maxlength>maxlength</code> attribute</a></li>
+ <li><a href=#the-pattern-attribute><span class=secno>4.10.7.2.9 </span>The <code title=attr-input-pattern>pattern</code> attribute</a></li>
+ <li><a href=#the-min-and-max-attributes><span class=secno>4.10.7.2.10 </span>The <code title=attr-input-min>min</code> and <code title=attr-input-max>max</code> attributes</a></li>
+ <li><a href=#the-step-attribute><span class=secno>4.10.7.2.11 </span>The <code title=attr-input-step>step</code> attribute</a></li>
+ <li><a href=#the-placeholder-attribute><span class=secno>4.10.7.2.12 </span>The <code title=attr-input-placeholder>placeholder</code> attribute</a></ol></li>
+ <li><a href=#common-input-element-apis><span class=secno>4.10.7.3 </span>Common <code>input</code> element APIs</a></li>
+ <li><a href=#common-event-behaviors><span class=secno>4.10.7.4 </span>Common event behaviors</a></ol></li>
+ <li><a href=#the-button-element><span class=secno>4.10.8 </span>The <code>button</code> element</a></li>
+ <li><a href=#the-select-element><span class=secno>4.10.9 </span>The <code>select</code> element</a></li>
+ <li><a href=#the-datalist-element><span class=secno>4.10.10 </span>The <code>datalist</code> element</a></li>
+ <li><a href=#the-optgroup-element><span class=secno>4.10.11 </span>The <code>optgroup</code> element</a></li>
+ <li><a href=#the-option-element><span class=secno>4.10.12 </span>The <code>option</code> element</a></li>
+ <li><a href=#the-textarea-element><span class=secno>4.10.13 </span>The <code>textarea</code> element</a></li>
+ <li><a href=#the-keygen-element><span class=secno>4.10.14 </span>The <code>keygen</code> element</a></li>
+ <li><a href=#the-output-element><span class=secno>4.10.15 </span>The <code>output</code> element</a></li>
+ <li><a href=#the-progress-element><span class=secno>4.10.16 </span>The <code>progress</code> element</a></li>
+ <li><a href=#the-meter-element><span class=secno>4.10.17 </span>The <code>meter</code> element</a></li>
+ <li><a href=#association-of-controls-and-forms><span class=secno>4.10.18 </span>Association of controls and forms</a></li>
+ <li><a href=#attributes-common-to-form-controls><span class=secno>4.10.19 </span>Attributes common to form controls</a>
+ <ol>
+ <li><a href=#naming-form-controls><span class=secno>4.10.19.1 </span>Naming form controls</a></li>
+ <li><a href=#enabling-and-disabling-form-controls><span class=secno>4.10.19.2 </span>Enabling and disabling form controls</a></li>
+ <li><a href="#a-form-control's-value"><span class=secno>4.10.19.3 </span>A form control's value</a></li>
+ <li><a href=#autofocusing-a-form-control><span class=secno>4.10.19.4 </span>Autofocusing a form control</a></li>
+ <li><a href=#limiting-user-input-length><span class=secno>4.10.19.5 </span>Limiting user input length</a></li>
+ <li><a href=#form-submission-0><span class=secno>4.10.19.6 </span>Form submission</a></li>
+ <li><a href=#submitting-element-directionality><span class=secno>4.10.19.7 </span>Submitting element directionality</a></ol></li>
+ <li><a href=#textFieldSelection><span class=secno>4.10.20 </span>APIs for the text field selections</a></li>
+ <li><a href=#constraints><span class=secno>4.10.21 </span>Constraints</a>
+ <ol>
+ <li><a href=#definitions><span class=secno>4.10.21.1 </span>Definitions</a></li>
+ <li><a href=#constraint-validation><span class=secno>4.10.21.2 </span>Constraint validation</a></li>
+ <li><a href=#the-constraint-validation-api><span class=secno>4.10.21.3 </span>The constraint validation API</a></li>
+ <li><a href=#security-forms><span class=secno>4.10.21.4 </span>Security</a></ol></li>
+ <li><a href=#form-submission><span class=secno>4.10.22 </span>Form submission</a>
+ <ol>
+ <li><a href=#introduction-3><span class=secno>4.10.22.1 </span>Introduction</a></li>
+ <li><a href=#implicit-submission><span class=secno>4.10.22.2 </span>Implicit submission</a></li>
+ <li><a href=#form-submission-algorithm><span class=secno>4.10.22.3 </span>Form submission algorithm</a></li>
+ <li><a href=#constructing-form-data-set><span class=secno>4.10.22.4 </span>Constructing the form data set</a></li>
+ <li><a href=#url-encoded-form-data><span class=secno>4.10.22.5 </span>URL-encoded form data</a></li>
+ <li><a href=#multipart-form-data><span class=secno>4.10.22.6 </span>Multipart form data</a></li>
+ <li><a href=#plain-text-form-data><span class=secno>4.10.22.7 </span>Plain text form data</a></ol></li>
+ <li><a href=#resetting-a-form><span class=secno>4.10.23 </span>Resetting a form</a></ol></li>
+ <li><a href=#interactive-elements><span class=secno>4.11 </span>Interactive elements</a>
+ <ol>
+ <li><a href=#the-details-element><span class=secno>4.11.1 </span>The <code>details</code> element</a></li>
+ <li><a href=#the-summary-element><span class=secno>4.11.2 </span>The <code>summary</code> element</a></li>
+ <li><a href=#the-command-element><span class=secno>4.11.3 </span>The <code>command</code> element</a></li>
+ <li><a href=#the-menu-element><span class=secno>4.11.4 </span>The <code>menu</code> element</a>
+ <ol>
+ <li><a href=#menus-intro><span class=secno>4.11.4.1 </span>Introduction</a></li>
+ <li><a href=#building-menus-and-toolbars><span class=secno>4.11.4.2 </span>Building menus and toolbars</a></li>
+ <li><a href=#context-menus><span class=secno>4.11.4.3 </span>Context menus</a></li>
+ <li><a href=#toolbars><span class=secno>4.11.4.4 </span>Toolbars</a></ol></li>
+ <li><a href=#commands><span class=secno>4.11.5 </span>Commands</a>
+ <ol>
+ <li><a href=#using-the-a-element-to-define-a-command><span class=secno>4.11.5.1 </span>Using the <code>a</code> element to define a command</a></li>
+ <li><a href=#using-the-button-element-to-define-a-command><span class=secno>4.11.5.2 </span>Using the <code>button</code> element to define a command</a></li>
+ <li><a href=#using-the-input-element-to-define-a-command><span class=secno>4.11.5.3 </span>Using the <code>input</code> element to define a command</a></li>
+ <li><a href=#using-the-option-element-to-define-a-command><span class=secno>4.11.5.4 </span>Using the <code>option</code> element to define a command</a></li>
+ <li><a href=#using-the-command-element-to-define-a-command><span class=secno>4.11.5.5 </span>Using the <code>command</code> element to define
+ a command</a></li>
+ <li><a href=#using-the-accesskey-attribute-on-a-label-element-to-define-a-command><span class=secno>4.11.5.6 </span>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>label</code> element to define a command</a></li>
+ <li><a href=#using-the-accesskey-attribute-on-a-legend-element-to-define-a-command><span class=secno>4.11.5.7 </span>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>legend</code> element to define a command</a></li>
+ <li><a href=#using-the-accesskey-attribute-to-define-a-command-on-other-elements><span class=secno>4.11.5.8 </span>Using the <code title=attr-accesskey>accesskey</code> attribute to define a command on other elements</a></ol></ol></li>
+ <li><a href=#links><span class=secno>4.12 </span>Links</a>
+ <ol>
+ <li><a href=#introduction-4><span class=secno>4.12.1 </span>Introduction</a></li>
+ <li><a href=#links-created-by-a-and-area-elements><span class=secno>4.12.2 </span>Links created by <code>a</code> and <code>area</code> elements</a></li>
+ <li><a href=#following-hyperlinks-0><span class=secno>4.12.3 </span>Following hyperlinks</a></li>
+ <li><a href=#downloading-resources><span class=secno>4.12.4 </span>Downloading resources</a>
+ <ol>
+ <li><a href=#hyperlink-auditing><span class=secno>4.12.4.1 </span>Hyperlink auditing</a></ol></li>
+ <li><a href=#linkTypes><span class=secno>4.12.5 </span>Link types</a>
+ <ol>
+ <li><a href=#rel-alternate><span class=secno>4.12.5.1 </span>Link type "<code>alternate</code>"</a></li>
+ <li><a href=#link-type-author><span class=secno>4.12.5.2 </span>Link type "<code>author</code>"</a></li>
+ <li><a href=#link-type-bookmark><span class=secno>4.12.5.3 </span>Link type "<code>bookmark</code>"</a></li>
+ <li><a href=#link-type-help><span class=secno>4.12.5.4 </span>Link type "<code>help</code>"</a></li>
+ <li><a href=#rel-icon><span class=secno>4.12.5.5 </span>Link type "<code>icon</code>"</a></li>
+ <li><a href=#link-type-license><span class=secno>4.12.5.6 </span>Link type "<code>license</code>"</a></li>
+ <li><a href=#link-type-nofollow><span class=secno>4.12.5.7 </span>Link type "<code>nofollow</code>"</a></li>
+ <li><a href=#link-type-noreferrer><span class=secno>4.12.5.8 </span>Link type "<code>noreferrer</code>"</a></li>
+ <li><a href=#link-type-prefetch><span class=secno>4.12.5.9 </span>Link type "<code>prefetch</code>"</a></li>
+ <li><a href=#link-type-search><span class=secno>4.12.5.10 </span>Link type "<code>search</code>"</a></li>
+ <li><a href=#link-type-stylesheet><span class=secno>4.12.5.11 </span>Link type "<code>stylesheet</code>"</a></li>
+ <li><a href=#link-type-tag><span class=secno>4.12.5.12 </span>Link type "<code>tag</code>"</a></li>
+ <li><a href=#sequential-link-types><span class=secno>4.12.5.13 </span>Sequential link types</a>
+ <ol>
+ <li><a href=#link-type-next><span class=secno>4.12.5.13.1 </span>Link type "<code>next</code>"</a></li>
+ <li><a href=#link-type-prev><span class=secno>4.12.5.13.2 </span>Link type "<code>prev</code>"</a></ol></li>
+ <li><a href=#other-link-types><span class=secno>4.12.5.14 </span>Other link types</a></ol></ol></li>
+ <li><a href=#common-idioms-without-dedicated-elements><span class=secno>4.13 </span>Common idioms without dedicated elements</a>
+ <ol>
+ <li><a href=#the-main-part-of-the-content><span class=secno>4.13.1 </span>The main part of the content</a></li>
+ <li><a href=#rel-up><span class=secno>4.13.2 </span>Bread crumb navigation</a></li>
+ <li><a href=#tag-clouds><span class=secno>4.13.3 </span>Tag clouds</a></li>
+ <li><a href=#conversations><span class=secno>4.13.4 </span>Conversations</a></li>
+ <li><a href=#footnotes><span class=secno>4.13.5 </span>Footnotes</a></ol></li>
+ <li><a href=#matching-html-elements-using-selectors><span class=secno>4.14 </span>Matching HTML elements using selectors</a>
+ <ol>
+ <li><a href=#selectors><span class=secno>4.14.1 </span>Case-sensitivity</a></li>
+ <li><a href=#pseudo-classes><span class=secno>4.14.2 </span>Pseudo-classes</a></ol></ol></li>
+ <li><a href=#microdata><span class=secno>5 </span>Microdata</a>
+ <ol>
+ <li><a href=#introduction-5><span class=secno>5.1 </span>Introduction</a>
+ <ol>
+ <li><a href=#overview><span class=secno>5.1.1 </span>Overview</a></li>
+ <li><a href=#the-basic-syntax><span class=secno>5.1.2 </span>The basic syntax</a></li>
+ <li><a href=#typed-items><span class=secno>5.1.3 </span>Typed items</a></li>
+ <li><a href=#global-identifiers-for-items><span class=secno>5.1.4 </span>Global identifiers for items</a></li>
+ <li><a href=#selecting-names-when-defining-vocabularies><span class=secno>5.1.5 </span>Selecting names when defining vocabularies</a></li>
+ <li><a href=#using-the-microdata-dom-api><span class=secno>5.1.6 </span>Using the microdata DOM API</a></ol></li>
+ <li><a href=#encoding-microdata><span class=secno>5.2 </span>Encoding microdata</a>
+ <ol>
+ <li><a href=#the-microdata-model><span class=secno>5.2.1 </span>The microdata model</a></li>
+ <li><a href=#items><span class=secno>5.2.2 </span>Items</a></li>
+ <li><a href=#names:-the-itemprop-attribute><span class=secno>5.2.3 </span>Names: the <code>itemprop</code> attribute</a></li>
+ <li><a href=#values><span class=secno>5.2.4 </span>Values</a></li>
+ <li><a href=#associating-names-with-items><span class=secno>5.2.5 </span>Associating names with items</a></ol></li>
+ <li><a href=#microdata-dom-api><span class=secno>5.3 </span>Microdata DOM API</a></li>
+ <li><a href=#mdvocabs><span class=secno>5.4 </span>Microdata vocabularies</a>
+ <ol>
+ <li><a href=#vcard><span class=secno>5.4.1 </span>vCard</a>
+ <ol>
+ <li><a href=#conversion-to-vcard><span class=secno>5.4.1.1 </span>Conversion to vCard</a></li>
+ <li><a href=#examples-1><span class=secno>5.4.1.2 </span>Examples</a></ol></li>
+ <li><a href=#vevent><span class=secno>5.4.2 </span>vEvent</a>
+ <ol>
+ <li><a href=#conversion-to-icalendar><span class=secno>5.4.2.1 </span>Conversion to iCalendar</a></li>
+ <li><a href=#examples-2><span class=secno>5.4.2.2 </span>Examples</a></ol></li>
+ <li><a href=#licensing-works><span class=secno>5.4.3 </span>Licensing works</a>
+ <ol>
+ <li><a href=#examples-3><span class=secno>5.4.3.1 </span>Examples</a></ol></ol></li>
+ <li><a href=#converting-html-to-other-formats><span class=secno>5.5 </span>Converting HTML to other formats</a>
+ <ol>
+ <li><a href=#json><span class=secno>5.5.1 </span>JSON</a></li>
+ <li><a href=#atom><span class=secno>5.5.2 </span>Atom</a></ol></ol></li>
+ <li><a href=#browsers><span class=secno>6 </span>Loading Web pages</a>
+ <ol>
+ <li><a href=#windows><span class=secno>6.1 </span>Browsing contexts</a>
+ <ol>
+ <li><a href=#nested-browsing-contexts><span class=secno>6.1.1 </span>Nested browsing contexts</a>
+ <ol>
+ <li><a href=#navigating-nested-browsing-contexts-in-the-dom><span class=secno>6.1.1.1 </span>Navigating nested browsing contexts in the DOM</a></ol></li>
+ <li><a href=#auxiliary-browsing-contexts><span class=secno>6.1.2 </span>Auxiliary browsing contexts</a>
+ <ol>
+ <li><a href=#navigating-auxiliary-browsing-contexts-in-the-dom><span class=secno>6.1.2.1 </span>Navigating auxiliary browsing contexts in the DOM</a></ol></li>
+ <li><a href=#secondary-browsing-contexts><span class=secno>6.1.3 </span>Secondary browsing contexts</a></li>
+ <li><a href=#security-nav><span class=secno>6.1.4 </span>Security</a></li>
+ <li><a href=#groupings-of-browsing-contexts><span class=secno>6.1.5 </span>Groupings of browsing contexts</a></li>
+ <li><a href=#browsing-context-names><span class=secno>6.1.6 </span>Browsing context names</a></ol></li>
+ <li><a href=#the-window-object><span class=secno>6.2 </span>The <code>Window</code> object</a>
+ <ol>
+ <li><a href=#security-window><span class=secno>6.2.1 </span>Security</a></li>
+ <li><a href=#apis-for-creating-and-navigating-browsing-contexts-by-name><span class=secno>6.2.2 </span>APIs for creating and navigating browsing contexts by name</a></li>
+ <li><a href=#accessing-other-browsing-contexts><span class=secno>6.2.3 </span>Accessing other browsing contexts</a></li>
+ <li><a href=#named-access-on-the-window-object><span class=secno>6.2.4 </span>Named access on the <code>Window</code> object</a></li>
+ <li><a href=#garbage-collection-and-browsing-contexts><span class=secno>6.2.5 </span>Garbage collection and browsing contexts</a></li>
+ <li><a href=#browser-interface-elements><span class=secno>6.2.6 </span>Browser interface elements</a></li>
+ <li><a href=#the-windowproxy-object><span class=secno>6.2.7 </span>The <code>WindowProxy</code> object</a></ol></li>
+ <li><a href=#origin-0><span class=secno>6.3 </span>Origin</a>
+ <ol>
+ <li><a href=#relaxing-the-same-origin-restriction><span class=secno>6.3.1 </span>Relaxing the same-origin restriction</a></ol></li>
+ <li><a href=#history><span class=secno>6.4 </span>Session history and navigation</a>
+ <ol>
+ <li><a href=#the-session-history-of-browsing-contexts><span class=secno>6.4.1 </span>The session history of browsing contexts</a></li>
+ <li><a href=#the-history-interface><span class=secno>6.4.2 </span>The <code>History</code> interface</a></li>
+ <li><a href=#the-location-interface><span class=secno>6.4.3 </span>The <code>Location</code> interface</a>
+ <ol>
+ <li><a href=#security-location><span class=secno>6.4.3.1 </span>Security</a></ol></li>
+ <li><a href=#history-notes><span class=secno>6.4.4 </span>Implementation notes for session history</a></ol></li>
+ <li><a href=#browsing-the-web><span class=secno>6.5 </span>Browsing the Web</a>
+ <ol>
+ <li><a href=#navigating-across-documents><span class=secno>6.5.1 </span>Navigating across documents</a></li>
+ <li><a href=#read-html><span class=secno>6.5.2 </span>Page load processing model for HTML files</a></li>
+ <li><a href=#read-xml><span class=secno>6.5.3 </span>Page load processing model for XML files</a></li>
+ <li><a href=#read-text><span class=secno>6.5.4 </span>Page load processing model for text files</a></li>
+ <li><a href=#read-multipart-x-mixed-replace><span class=secno>6.5.5 </span>Page load processing model for <code>multipart/x-mixed-replaced</code> resources</a></li>
+ <li><a href=#read-image><span class=secno>6.5.6 </span>Page load processing model for images</a></li>
+ <li><a href=#read-plugin><span class=secno>6.5.7 </span>Page load processing model for content that uses plugins</a></li>
+ <li><a href=#read-ua-inline><span class=secno>6.5.8 </span>Page load processing model for inline content that doesn't have a DOM</a></li>
+ <li><a href=#scroll-to-fragid><span class=secno>6.5.9 </span>Navigating to a fragment identifier</a></li>
+ <li><a href=#history-traversal><span class=secno>6.5.10 </span>History traversal</a>
+ <ol>
+ <li><a href=#event-definitions-0><span class=secno>6.5.10.1 </span>Event definitions</a></ol></li>
+ <li><a href=#unloading-documents><span class=secno>6.5.11 </span>Unloading documents</a>
+ <ol>
+ <li><a href=#event-definition><span class=secno>6.5.11.1 </span>Event definition</a></ol></li>
+ <li><a href=#aborting-a-document-load><span class=secno>6.5.12 </span>Aborting a document load</a></ol></li>
+ <li><a href=#offline><span class=secno>6.6 </span>Offline Web applications</a>
+ <ol>
+ <li><a href=#introduction-6><span class=secno>6.6.1 </span>Introduction</a>
+ <ol>
+ <li><a href=#appcacheevents><span class=secno>6.6.1.1 </span>Event summary</a></ol></li>
+ <li><a href=#appcache><span class=secno>6.6.2 </span>Application caches</a></li>
+ <li><a href=#manifests><span class=secno>6.6.3 </span>The cache manifest syntax</a>
+ <ol>
+ <li><a href=#some-sample-manifests><span class=secno>6.6.3.1 </span>Some sample manifests</a></li>
+ <li><a href=#writing-cache-manifests><span class=secno>6.6.3.2 </span>Writing cache manifests</a></li>
+ <li><a href=#parsing-cache-manifests><span class=secno>6.6.3.3 </span>Parsing cache manifests</a></ol></li>
+ <li><a href=#downloading-or-updating-an-application-cache><span class=secno>6.6.4 </span>Downloading or updating an application cache</a></li>
+ <li><a href=#the-application-cache-selection-algorithm><span class=secno>6.6.5 </span>The application cache selection algorithm</a></li>
+ <li><a href=#changesToNetworkingModel><span class=secno>6.6.6 </span>Changes to the networking model</a></li>
+ <li><a href=#expiring-application-caches><span class=secno>6.6.7 </span>Expiring application caches</a></li>
+ <li><a href=#disk-space><span class=secno>6.6.8 </span>Disk space</a></li>
+ <li><a href=#application-cache-api><span class=secno>6.6.9 </span>Application cache API</a></li>
+ <li><a href=#browser-state><span class=secno>6.6.10 </span>Browser state</a></ol></ol></li>
+ <li><a href=#webappapis><span class=secno>7 </span>Web application APIs</a>
+ <ol>
+ <li><a href=#scripting><span class=secno>7.1 </span>Scripting</a>
+ <ol>
+ <li><a href=#introduction-7><span class=secno>7.1.1 </span>Introduction</a></li>
+ <li><a href=#enabling-and-disabling-scripting><span class=secno>7.1.2 </span>Enabling and disabling scripting</a></li>
+ <li><a href=#processing-model-1><span class=secno>7.1.3 </span>Processing model</a>
+ <ol>
+ <li><a href=#definitions-0><span class=secno>7.1.3.1 </span>Definitions</a></li>
+ <li><a href=#calling-scripts><span class=secno>7.1.3.2 </span>Calling scripts</a></li>
+ <li><a href=#creating-scripts><span class=secno>7.1.3.3 </span>Creating scripts</a></li>
+ <li><a href=#killing-scripts><span class=secno>7.1.3.4 </span>Killing scripts</a></li>
+ <li><a href=#runtime-script-errors><span class=secno>7.1.3.5 </span>Runtime script errors</a>
+ <ol>
+ <li><a href=#runtime-script-errors-in-documents><span class=secno>7.1.3.5.1 </span>Runtime script errors in documents</a></ol></ol></li>
+ <li><a href=#event-loops><span class=secno>7.1.4 </span>Event loops</a>
+ <ol>
+ <li><a href=#definitions-1><span class=secno>7.1.4.1 </span>Definitions</a></li>
+ <li><a href=#processing-model-2><span class=secno>7.1.4.2 </span>Processing model</a></li>
+ <li><a href=#generic-task-sources><span class=secno>7.1.4.3 </span>Generic task sources</a></ol></li>
+ <li><a href=#javascript-protocol><span class=secno>7.1.5 </span>The <code title="">javascript:</code> URL scheme</a></li>
+ <li><a href=#events><span class=secno>7.1.6 </span>Events</a>
+ <ol>
+ <li><a href=#event-handler-attributes><span class=secno>7.1.6.1 </span>Event handlers</a></li>
+ <li><a href=#event-handlers-on-elements,-document-objects,-and-window-objects><span class=secno>7.1.6.2 </span>Event handlers on elements, <code>Document</code> objects, and <code>Window</code> objects</a></li>
+ <li><a href=#event-firing><span class=secno>7.1.6.3 </span>Event firing</a></li>
+ <li><a href=#events-and-the-window-object><span class=secno>7.1.6.4 </span>Events and the <code>Window</code> object</a></ol></ol></li>
+ <li><a href=#atob><span class=secno>7.2 </span>Base64 utility methods</a></li>
+ <li><a href=#timers><span class=secno>7.3 </span>Timers</a></li>
+ <li><a href=#user-prompts><span class=secno>7.4 </span>User prompts</a>
+ <ol>
+ <li><a href=#simple-dialogs><span class=secno>7.4.1 </span>Simple dialogs</a></li>
+ <li><a href=#printing><span class=secno>7.4.2 </span>Printing</a></li>
+ <li><a href=#dialogs-implemented-using-separate-documents><span class=secno>7.4.3 </span>Dialogs implemented using separate documents</a></ol></li>
+ <li><a href=#system-state-and-capabilities><span class=secno>7.5 </span>System state and capabilities</a>
+ <ol>
+ <li><a href=#the-navigator-object><span class=secno>7.5.1 </span>The <code>Navigator</code> object</a>
+ <ol>
+ <li><a href=#client-identification><span class=secno>7.5.1.1 </span>Client identification</a></li>
+ <li><a href=#custom-handlers><span class=secno>7.5.1.2 </span>Custom scheme and content handlers</a></li>
+ <li><a href=#security-and-privacy><span class=secno>7.5.1.3 </span>Security and privacy</a></li>
+ <li><a href=#sample-handler-impl><span class=secno>7.5.1.4 </span>Sample user interface</a></li>
+ <li><a href=#manually-releasing-the-storage-mutex><span class=secno>7.5.1.5 </span>Manually releasing the storage mutex</a></ol></li>
+ <li><a href=#the-external-interface><span class=secno>7.5.2 </span>The <code>External</code> interface</a></ol></ol></li>
+ <li><a href=#editing><span class=secno>8 </span>User interaction</a>
+ <ol>
+ <li><a href=#the-hidden-attribute><span class=secno>8.1 </span>The <code>hidden</code> attribute</a></li>
+ <li><a href=#activation><span class=secno>8.2 </span>Activation</a></li>
+ <li><a href=#focus><span class=secno>8.3 </span>Focus</a>
+ <ol>
+ <li><a href=#sequential-focus-navigation-and-the-tabindex-attribute><span class=secno>8.3.1 </span>Sequential focus navigation and the <code title=attr-tabindex>tabindex</code> attribute</a></li>
+ <li><a href=#focus-management><span class=secno>8.3.2 </span>Focus management</a></li>
+ <li><a href=#document-level-focus-apis><span class=secno>8.3.3 </span>Document-level focus APIs</a></li>
+ <li><a href=#element-level-focus-apis><span class=secno>8.3.4 </span>Element-level focus APIs</a></ol></li>
+ <li><a href=#assigning-keyboard-shortcuts><span class=secno>8.4 </span>Assigning keyboard shortcuts</a>
+ <ol>
+ <li><a href=#introduction-8><span class=secno>8.4.1 </span>Introduction</a></li>
+ <li><a href=#the-accesskey-attribute><span class=secno>8.4.2 </span>The <code>accesskey</code> attribute</a></li>
+ <li><a href=#processing-model-3><span class=secno>8.4.3 </span>Processing model</a></ol></li>
+ <li><a href=#editing-0><span class=secno>8.5 </span>Editing</a>
+ <ol>
+ <li><a href=#contenteditable><span class=secno>8.5.1 </span>Making document regions editable: The <code title=attr-contenteditable>contenteditable</code> content
+ attribute</a></li>
+ <li><a href=#making-entire-documents-editable:-the-designmode-idl-attribute><span class=secno>8.5.2 </span>Making entire documents editable: The <code title=dom-document-designMode>designMode</code> IDL attribute</a></li>
+ <li><a href=#best-practices-for-in-page-editors><span class=secno>8.5.3 </span>Best practices for in-page editors</a></li>
+ <li><a href=#editing-apis><span class=secno>8.5.4 </span>Editing APIs</a></li>
+ <li><a href=#spelling-and-grammar-checking><span class=secno>8.5.5 </span>Spelling and grammar checking</a></ol></li>
+ <li><a href=#dnd><span class=secno>8.6 </span>Drag and drop</a>
+ <ol>
+ <li><a href=#introduction-9><span class=secno>8.6.1 </span>Introduction</a></li>
+ <li><a href=#the-drag-data-store><span class=secno>8.6.2 </span>The drag data store</a></li>
+ <li><a href=#the-datatransfer-interface><span class=secno>8.6.3 </span>The <code>DataTransfer</code> interface</a>
+ <ol>
+ <li><a href=#the-datatransferitemlist-interface><span class=secno>8.6.3.1 </span>The <code>DataTransferItemList</code> interface</a></li>
+ <li><a href=#the-datatransferitem-interface><span class=secno>8.6.3.2 </span>The <code>DataTransferItem</code> interface</a></ol></li>
+ <li><a href=#the-dragevent-interface><span class=secno>8.6.4 </span>The <code>DragEvent</code> interface</a></li>
+ <li><a href=#drag-and-drop-processing-model><span class=secno>8.6.5 </span>Drag-and-drop processing model</a></li>
+ <li><a href=#dndevents><span class=secno>8.6.6 </span>Events summary</a></li>
+ <li><a href=#the-draggable-attribute><span class=secno>8.6.7 </span>The <code>draggable</code> attribute</a></li>
+ <li><a href=#the-dropzone-attribute><span class=secno>8.6.8 </span>The <code>dropzone</code> attribute</a></li>
+ <li><a href=#security-risks-in-the-drag-and-drop-model><span class=secno>8.6.9 </span>Security risks in the drag-and-drop model</a></ol></li>
+ <li><a href=#text-search-apis><span class=secno>8.7 </span>Text search APIs</a></ol></li>
+ <li><a href=#video-conferencing-and-peer-to-peer-communication><span class=secno>9 </span>Video conferencing and peer-to-peer communication</a>
+ <ol>
+ <li><a href=#introduction-10><span class=secno>9.1 </span>Introduction</a></li>
+ <li><a href=#obtaining-local-multimedia-content><span class=secno>9.2 </span>Obtaining local multimedia content</a></li>
+ <li><a href=#stream-api><span class=secno>9.3 </span>Stream API</a>
+ <ol>
+ <li><a href=#introduction-11><span class=secno>9.3.1 </span>Introduction</a></li>
+ <li><a href=#interface-definitions><span class=secno>9.3.2 </span>Interface definitions</a></ol></li>
+ <li><a href=#peer-to-peer-connections><span class=secno>9.4 </span>Peer-to-peer connections</a>
+ <ol>
+ <li><a href=#introduction-12><span class=secno>9.4.1 </span>Introduction</a></li>
+ <li><a href=#interface-definitions-0><span class=secno>9.4.2 </span>Interface definitions</a></ol></li>
+ <li><a href=#the-data-stream><span class=secno>9.5 </span>The data stream</a>
+ <ol>
+ <li><a href=#security-considerations><span class=secno>9.5.1 </span>Security considerations</a></ol></li>
+ <li><a href=#garbage-collection-0><span class=secno>9.6 </span>Garbage collection</a></li>
+ <li><a href=#event-definitions-1><span class=secno>9.7 </span>Event definitions</a></li>
+ <li><a href=#mediastreamevents><span class=secno>9.8 </span>Event Summary</a></ol></li>
+ <li><a href=#workers><span class=secno>10 </span>Web workers</a>
+ <ol>
+ <li><a href=#introduction-13><span class=secno>10.1 </span>Introduction</a>
+ <ol>
+ <li><a href=#scope-0><span class=secno>10.1.1 </span>Scope</a></li>
+ <li><a href=#examples-4><span class=secno>10.1.2 </span>Examples</a>
+ <ol>
+ <li><a href=#a-background-number-crunching-worker><span class=secno>10.1.2.1 </span>A background number-crunching worker</a></li>
+ <li><a href=#a-worker-for-updating-a-client-side-database><span class=secno>10.1.2.2 </span>A worker for updating a client-side database</a></li>
+ <li><a href=#worker-used-for-background-i/o><span class=secno>10.1.2.3 </span>Worker used for background I/O</a></li>
+ <li><a href=#shared-workers-introduction><span class=secno>10.1.2.4 </span>Shared workers introduction</a></li>
+ <li><a href=#shared-state-using-a-shared-worker><span class=secno>10.1.2.5 </span>Shared state using a shared worker</a></li>
+ <li><a href=#delegation><span class=secno>10.1.2.6 </span>Delegation</a></ol></li>
+ <li><a href=#tutorials><span class=secno>10.1.3 </span>Tutorials</a>
+ <ol>
+ <li><a href=#creating-a-dedicated-worker><span class=secno>10.1.3.1 </span>Creating a dedicated worker</a></li>
+ <li><a href=#communicating-with-a-dedicated-worker><span class=secno>10.1.3.2 </span>Communicating with a dedicated worker</a></li>
+ <li><a href=#shared-workers><span class=secno>10.1.3.3 </span>Shared workers</a></ol></ol></li>
+ <li><a href=#infrastructure-0><span class=secno>10.2 </span>Infrastructure</a>
+ <ol>
+ <li><a href=#the-global-scope><span class=secno>10.2.1 </span>The global scope</a>
+ <ol>
+ <li><a href=#the-workerglobalscope-abstract-interface><span class=secno>10.2.1.1 </span>The <code>WorkerGlobalScope</code> abstract interface</a></li>
+ <li><a href=#dedicated-workers-and-the-dedicatedworkerglobalscope-interface><span class=secno>10.2.1.2 </span>Dedicated workers and the <code>DedicatedWorkerGlobalScope</code> interface</a></li>
+ <li><a href=#shared-workers-and-the-sharedworkerglobalscope-interface><span class=secno>10.2.1.3 </span>Shared workers and the <code>SharedWorkerGlobalScope</code> interface</a></ol></li>
+ <li><a href=#origins-of-workers><span class=secno>10.2.2 </span>Origins of workers</a></li>
+ <li><a href=#the-event-loop><span class=secno>10.2.3 </span>The event loop</a></li>
+ <li><a href="#the-worker's-lifetime"><span class=secno>10.2.4 </span>The worker's lifetime</a></li>
+ <li><a href=#processing-model-4><span class=secno>10.2.5 </span>Processing model</a></li>
+ <li><a href=#runtime-script-errors-0><span class=secno>10.2.6 </span>Runtime script errors</a></li>
+ <li><a href=#creating-workers><span class=secno>10.2.7 </span>Creating workers</a>
+ <ol>
+ <li><a href=#the-abstractworker-abstract-interface><span class=secno>10.2.7.1 </span>The <code>AbstractWorker</code> abstract interface</a></li>
+ <li><a href=#dedicated-workers-and-the-worker-interface><span class=secno>10.2.7.2 </span>Dedicated workers and the <code>Worker</code> interface</a></li>
+ <li><a href=#shared-workers-and-the-sharedworker-interface><span class=secno>10.2.7.3 </span>Shared workers and the <code>SharedWorker</code> interface</a></ol></ol></li>
+ <li><a href=#apis-available-to-workers><span class=secno>10.3 </span>APIs available to workers</a>
+ <ol>
+ <li><a href=#importing-scripts-and-libraries><span class=secno>10.3.1 </span>Importing scripts and libraries</a></li>
+ <li><a href=#the-workernavigator-object><span class=secno>10.3.2 </span>The <code>WorkerNavigator</code> object</a></li>
+ <li><a href=#interface-objects-and-constructors><span class=secno>10.3.3 </span>Interface objects and constructors</a></li>
+ <li><a href=#worker-locations><span class=secno>10.3.4 </span>Worker locations</a></ol></ol></li>
+ <li><a href=#comms><span class=secno>11 </span>Communication</a>
+ <ol>
+ <li><a href=#event-definitions-2><span class=secno>11.1 </span>Event definitions</a></li>
+ <li><a href=#server-sent-events><span class=secno>11.2 </span>Server-sent events</a>
+ <ol>
+ <li><a href=#server-sent-events-intro><span class=secno>11.2.1 </span>Introduction</a></li>
+ <li><a href=#the-eventsource-interface><span class=secno>11.2.2 </span>The <code>EventSource</code> interface</a></li>
+ <li><a href=#processing-model-5><span class=secno>11.2.3 </span>Processing model</a></li>
+ <li><a href=#parsing-an-event-stream><span class=secno>11.2.4 </span>Parsing an event stream</a></li>
+ <li><a href=#event-stream-interpretation><span class=secno>11.2.5 </span>Interpreting an event stream</a></li>
+ <li><a href=#notes><span class=secno>11.2.6 </span>Notes</a></li>
+ <li><a href=#eventsource-push><span class=secno>11.2.7 </span>Connectionless push and other features</a></li>
+ <li><a href=#garbage-collection-1><span class=secno>11.2.8 </span>Garbage collection</a></li>
+ <li><a href=#iana-considerations><span class=secno>11.2.9 </span>IANA considerations</a>
+ <ol>
+ <li><a href=#text/event-stream><span class=secno>11.2.9.1 </span><code>text/event-stream</code></a></li>
+ <li><a href=#last-event-id><span class=secno>11.2.9.2 </span><code>Last-Event-ID</code></a></ol></ol></li>
+ <li><a href=#network><span class=secno>11.3 </span>Web sockets</a>
+ <ol>
+ <li><a href=#network-intro><span class=secno>11.3.1 </span>Introduction</a></li>
+ <li><a href=#the-websocket-interface><span class=secno>11.3.2 </span>The <code>WebSocket</code> interface</a></li>
+ <li><a href=#feedback-from-the-protocol><span class=secno>11.3.3 </span>Feedback from the protocol</a>
+ <ol>
+ <li><a href=#event-definitions-3><span class=secno>11.3.3.1 </span>Event definitions</a></li>
+ <li><a href=#garbage-collection-2><span class=secno>11.3.3.2 </span>Garbage collection</a></ol></ol></li>
+ <li><a href=#web-messaging><span class=secno>11.4 </span>Cross-document messaging</a>
+ <ol>
+ <li><a href=#introduction-14><span class=secno>11.4.1 </span>Introduction</a></li>
+ <li><a href=#security-postmsg><span class=secno>11.4.2 </span>Security</a>
+ <ol>
+ <li><a href=#authors><span class=secno>11.4.2.1 </span>Authors</a></li>
+ <li><a href=#user-agents><span class=secno>11.4.2.2 </span>User agents</a></ol></li>
+ <li><a href=#posting-messages><span class=secno>11.4.3 </span>Posting messages</a></ol></li>
+ <li><a href=#channel-messaging><span class=secno>11.5 </span>Channel messaging</a>
+ <ol>
+ <li><a href=#introduction-15><span class=secno>11.5.1 </span>Introduction</a></li>
+ <li><a href=#message-channels><span class=secno>11.5.2 </span>Message channels</a></li>
+ <li><a href=#message-ports><span class=secno>11.5.3 </span>Message ports</a>
+ <ol>
+ <li><a href=#ports-and-garbage-collection><span class=secno>11.5.3.1 </span>Ports and garbage collection</a></ol></ol></ol></li>
+ <li><a href=#webstorage><span class=secno>12 </span>Web storage</a>
+ <ol>
+ <li><a href=#introduction-16><span class=secno>12.1 </span>Introduction</a></li>
+ <li><a href=#storage><span class=secno>12.2 </span>The API</a>
+ <ol>
+ <li><a href=#the-storage-interface><span class=secno>12.2.1 </span>The <code>Storage</code> interface</a></li>
+ <li><a href=#the-sessionstorage-attribute><span class=secno>12.2.2 </span>The <code title=dom-sessionStorage>sessionStorage</code> attribute</a></li>
+ <li><a href=#the-localstorage-attribute><span class=secno>12.2.3 </span>The <code title=dom-localStorage>localStorage</code> attribute</a>
+ <ol>
+ <li><a href=#security-localStorage><span class=secno>12.2.3.1 </span>Security</a></ol></li>
+ <li><a href=#the-storage-event><span class=secno>12.2.4 </span>The <code title=event-storage>storage</code> event</a>
+ <ol>
+ <li><a href=#event-definition-0><span class=secno>12.2.4.1 </span>Event definition</a></ol></li>
+ <li><a href=#threads><span class=secno>12.2.5 </span>Threads</a></ol></li>
+ <li><a href=#disk-space-0><span class=secno>12.3 </span>Disk space</a></li>
+ <li><a href=#privacy><span class=secno>12.4 </span>Privacy</a>
+ <ol>
+ <li><a href=#user-tracking><span class=secno>12.4.1 </span>User tracking</a></li>
+ <li><a href=#sensitivity-of-data><span class=secno>12.4.2 </span>Sensitivity of data</a></ol></li>
+ <li><a href=#security-storage><span class=secno>12.5 </span>Security</a>
+ <ol>
+ <li><a href=#dns-spoofing-attacks><span class=secno>12.5.1 </span>DNS spoofing attacks</a></li>
+ <li><a href=#cross-directory-attacks><span class=secno>12.5.2 </span>Cross-directory attacks</a></li>
+ <li><a href=#implementation-risks><span class=secno>12.5.3 </span>Implementation risks</a></ol></ol></li>
+ <li><a href=#syntax><span class=secno>13 </span>The HTML syntax</a>
+ <ol>
+ <li><a href=#writing><span class=secno>13.1 </span>Writing HTML documents</a>
+ <ol>
+ <li><a href=#the-doctype><span class=secno>13.1.1 </span>The DOCTYPE</a></li>
+ <li><a href=#elements-0><span class=secno>13.1.2 </span>Elements</a>
+ <ol>
+ <li><a href=#start-tags><span class=secno>13.1.2.1 </span>Start tags</a></li>
+ <li><a href=#end-tags><span class=secno>13.1.2.2 </span>End tags</a></li>
+ <li><a href=#attributes-0><span class=secno>13.1.2.3 </span>Attributes</a></li>
+ <li><a href=#optional-tags><span class=secno>13.1.2.4 </span>Optional tags</a></li>
+ <li><a href=#element-restrictions><span class=secno>13.1.2.5 </span>Restrictions on content models</a></li>
+ <li><a href=#cdata-rcdata-restrictions><span class=secno>13.1.2.6 </span>Restrictions on the contents of raw text and RCDATA elements</a></ol></li>
+ <li><a href=#text-1><span class=secno>13.1.3 </span>Text</a>
+ <ol>
+ <li><a href=#newlines><span class=secno>13.1.3.1 </span>Newlines</a></ol></li>
+ <li><a href=#character-references><span class=secno>13.1.4 </span>Character references</a></li>
+ <li><a href=#cdata-sections><span class=secno>13.1.5 </span>CDATA sections</a></li>
+ <li><a href=#comments><span class=secno>13.1.6 </span>Comments</a></ol></li>
+ <li><a href=#parsing><span class=secno>13.2 </span>Parsing HTML documents</a>
+ <ol>
+ <li><a href=#overview-of-the-parsing-model><span class=secno>13.2.1 </span>Overview of the parsing model</a></li>
+ <li><a href=#the-input-stream><span class=secno>13.2.2 </span>The input stream</a>
+ <ol>
+ <li><a href=#determining-the-character-encoding><span class=secno>13.2.2.1 </span>Determining the character encoding</a></li>
+ <li><a href=#character-encodings-0><span class=secno>13.2.2.2 </span>Character encodings</a></li>
+ <li><a href=#preprocessing-the-input-stream><span class=secno>13.2.2.3 </span>Preprocessing the input stream</a></li>
+ <li><a href=#changing-the-encoding-while-parsing><span class=secno>13.2.2.4 </span>Changing the encoding while parsing</a></ol></li>
+ <li><a href=#parse-state><span class=secno>13.2.3 </span>Parse state</a>
+ <ol>
+ <li><a href=#the-insertion-mode><span class=secno>13.2.3.1 </span>The insertion mode</a></li>
+ <li><a href=#the-stack-of-open-elements><span class=secno>13.2.3.2 </span>The stack of open elements</a></li>
+ <li><a href=#the-list-of-active-formatting-elements><span class=secno>13.2.3.3 </span>The list of active formatting elements</a></li>
+ <li><a href=#the-element-pointers><span class=secno>13.2.3.4 </span>The element pointers</a></li>
+ <li><a href=#other-parsing-state-flags><span class=secno>13.2.3.5 </span>Other parsing state flags</a></ol></li>
+ <li><a href=#tokenization><span class=secno>13.2.4 </span>Tokenization</a>
+ <ol>
+ <li><a href=#data-state><span class=secno>13.2.4.1 </span>Data state</a></li>
+ <li><a href=#character-reference-in-data-state><span class=secno>13.2.4.2 </span>Character reference in data state</a></li>
+ <li><a href=#rcdata-state><span class=secno>13.2.4.3 </span>RCDATA state</a></li>
+ <li><a href=#character-reference-in-rcdata-state><span class=secno>13.2.4.4 </span>Character reference in RCDATA state</a></li>
+ <li><a href=#rawtext-state><span class=secno>13.2.4.5 </span>RAWTEXT state</a></li>
+ <li><a href=#script-data-state><span class=secno>13.2.4.6 </span>Script data state</a></li>
+ <li><a href=#plaintext-state><span class=secno>13.2.4.7 </span>PLAINTEXT state</a></li>
+ <li><a href=#tag-open-state><span class=secno>13.2.4.8 </span>Tag open state</a></li>
+ <li><a href=#end-tag-open-state><span class=secno>13.2.4.9 </span>End tag open state</a></li>
+ <li><a href=#tag-name-state><span class=secno>13.2.4.10 </span>Tag name state</a></li>
+ <li><a href=#rcdata-less-than-sign-state><span class=secno>13.2.4.11 </span>RCDATA less-than sign state</a></li>
+ <li><a href=#rcdata-end-tag-open-state><span class=secno>13.2.4.12 </span>RCDATA end tag open state</a></li>
+ <li><a href=#rcdata-end-tag-name-state><span class=secno>13.2.4.13 </span>RCDATA end tag name state</a></li>
+ <li><a href=#rawtext-less-than-sign-state><span class=secno>13.2.4.14 </span>RAWTEXT less-than sign state</a></li>
+ <li><a href=#rawtext-end-tag-open-state><span class=secno>13.2.4.15 </span>RAWTEXT end tag open state</a></li>
+ <li><a href=#rawtext-end-tag-name-state><span class=secno>13.2.4.16 </span>RAWTEXT end tag name state</a></li>
+ <li><a href=#script-data-less-than-sign-state><span class=secno>13.2.4.17 </span>Script data less-than sign state</a></li>
+ <li><a href=#script-data-end-tag-open-state><span class=secno>13.2.4.18 </span>Script data end tag open state</a></li>
+ <li><a href=#script-data-end-tag-name-state><span class=secno>13.2.4.19 </span>Script data end tag name state</a></li>
+ <li><a href=#script-data-escape-start-state><span class=secno>13.2.4.20 </span>Script data escape start state</a></li>
+ <li><a href=#script-data-escape-start-dash-state><span class=secno>13.2.4.21 </span>Script data escape start dash state</a></li>
+ <li><a href=#script-data-escaped-state><span class=secno>13.2.4.22 </span>Script data escaped state</a></li>
+ <li><a href=#script-data-escaped-dash-state><span class=secno>13.2.4.23 </span>Script data escaped dash state</a></li>
+ <li><a href=#script-data-escaped-dash-dash-state><span class=secno>13.2.4.24 </span>Script data escaped dash dash state</a></li>
+ <li><a href=#script-data-escaped-less-than-sign-state><span class=secno>13.2.4.25 </span>Script data escaped less-than sign state</a></li>
+ <li><a href=#script-data-escaped-end-tag-open-state><span class=secno>13.2.4.26 </span>Script data escaped end tag open state</a></li>
+ <li><a href=#script-data-escaped-end-tag-name-state><span class=secno>13.2.4.27 </span>Script data escaped end tag name state</a></li>
+ <li><a href=#script-data-double-escape-start-state><span class=secno>13.2.4.28 </span>Script data double escape start state</a></li>
+ <li><a href=#script-data-double-escaped-state><span class=secno>13.2.4.29 </span>Script data double escaped state</a></li>
+ <li><a href=#script-data-double-escaped-dash-state><span class=secno>13.2.4.30 </span>Script data double escaped dash state</a></li>
+ <li><a href=#script-data-double-escaped-dash-dash-state><span class=secno>13.2.4.31 </span>Script data double escaped dash dash state</a></li>
+ <li><a href=#script-data-double-escaped-less-than-sign-state><span class=secno>13.2.4.32 </span>Script data double escaped less-than sign state</a></li>
+ <li><a href=#script-data-double-escape-end-state><span class=secno>13.2.4.33 </span>Script data double escape end state</a></li>
+ <li><a href=#before-attribute-name-state><span class=secno>13.2.4.34 </span>Before attribute name state</a></li>
+ <li><a href=#attribute-name-state><span class=secno>13.2.4.35 </span>Attribute name state</a></li>
+ <li><a href=#after-attribute-name-state><span class=secno>13.2.4.36 </span>After attribute name state</a></li>
+ <li><a href=#before-attribute-value-state><span class=secno>13.2.4.37 </span>Before attribute value state</a></li>
+ <li><a href=#attribute-value-(double-quoted)-state><span class=secno>13.2.4.38 </span>Attribute value (double-quoted) state</a></li>
+ <li><a href=#attribute-value-(single-quoted)-state><span class=secno>13.2.4.39 </span>Attribute value (single-quoted) state</a></li>
+ <li><a href=#attribute-value-(unquoted)-state><span class=secno>13.2.4.40 </span>Attribute value (unquoted) state</a></li>
+ <li><a href=#character-reference-in-attribute-value-state><span class=secno>13.2.4.41 </span>Character reference in attribute value state</a></li>
+ <li><a href=#after-attribute-value-(quoted)-state><span class=secno>13.2.4.42 </span>After attribute value (quoted) state</a></li>
+ <li><a href=#self-closing-start-tag-state><span class=secno>13.2.4.43 </span>Self-closing start tag state</a></li>
+ <li><a href=#bogus-comment-state><span class=secno>13.2.4.44 </span>Bogus comment state</a></li>
+ <li><a href=#markup-declaration-open-state><span class=secno>13.2.4.45 </span>Markup declaration open state</a></li>
+ <li><a href=#comment-start-state><span class=secno>13.2.4.46 </span>Comment start state</a></li>
+ <li><a href=#comment-start-dash-state><span class=secno>13.2.4.47 </span>Comment start dash state</a></li>
+ <li><a href=#comment-state><span class=secno>13.2.4.48 </span>Comment state</a></li>
+ <li><a href=#comment-end-dash-state><span class=secno>13.2.4.49 </span>Comment end dash state</a></li>
+ <li><a href=#comment-end-state><span class=secno>13.2.4.50 </span>Comment end state</a></li>
+ <li><a href=#comment-end-bang-state><span class=secno>13.2.4.51 </span>Comment end bang state</a></li>
+ <li><a href=#doctype-state><span class=secno>13.2.4.52 </span>DOCTYPE state</a></li>
+ <li><a href=#before-doctype-name-state><span class=secno>13.2.4.53 </span>Before DOCTYPE name state</a></li>
+ <li><a href=#doctype-name-state><span class=secno>13.2.4.54 </span>DOCTYPE name state</a></li>
+ <li><a href=#after-doctype-name-state><span class=secno>13.2.4.55 </span>After DOCTYPE name state</a></li>
+ <li><a href=#after-doctype-public-keyword-state><span class=secno>13.2.4.56 </span>After DOCTYPE public keyword state</a></li>
+ <li><a href=#before-doctype-public-identifier-state><span class=secno>13.2.4.57 </span>Before DOCTYPE public identifier state</a></li>
+ <li><a href=#doctype-public-identifier-(double-quoted)-state><span class=secno>13.2.4.58 </span>DOCTYPE public identifier (double-quoted) state</a></li>
+ <li><a href=#doctype-public-identifier-(single-quoted)-state><span class=secno>13.2.4.59 </span>DOCTYPE public identifier (single-quoted) state</a></li>
+ <li><a href=#after-doctype-public-identifier-state><span class=secno>13.2.4.60 </span>After DOCTYPE public identifier state</a></li>
+ <li><a href=#between-doctype-public-and-system-identifiers-state><span class=secno>13.2.4.61 </span>Between DOCTYPE public and system identifiers state</a></li>
+ <li><a href=#after-doctype-system-keyword-state><span class=secno>13.2.4.62 </span>After DOCTYPE system keyword state</a></li>
+ <li><a href=#before-doctype-system-identifier-state><span class=secno>13.2.4.63 </span>Before DOCTYPE system identifier state</a></li>
+ <li><a href=#doctype-system-identifier-(double-quoted)-state><span class=secno>13.2.4.64 </span>DOCTYPE system identifier (double-quoted) state</a></li>
+ <li><a href=#doctype-system-identifier-(single-quoted)-state><span class=secno>13.2.4.65 </span>DOCTYPE system identifier (single-quoted) state</a></li>
+ <li><a href=#after-doctype-system-identifier-state><span class=secno>13.2.4.66 </span>After DOCTYPE system identifier state</a></li>
+ <li><a href=#bogus-doctype-state><span class=secno>13.2.4.67 </span>Bogus DOCTYPE state</a></li>
+ <li><a href=#cdata-section-state><span class=secno>13.2.4.68 </span>CDATA section state</a></li>
+ <li><a href=#tokenizing-character-references><span class=secno>13.2.4.69 </span>Tokenizing character references</a></ol></li>
+ <li><a href=#tree-construction><span class=secno>13.2.5 </span>Tree construction</a>
+ <ol>
+ <li><a href=#creating-and-inserting-elements><span class=secno>13.2.5.1 </span>Creating and inserting elements</a></li>
+ <li><a href=#closing-elements-that-have-implied-end-tags><span class=secno>13.2.5.2 </span>Closing elements that have implied end tags</a></li>
+ <li><a href=#foster-parenting><span class=secno>13.2.5.3 </span>Foster parenting</a></li>
+ <li><a href=#parsing-main-inhtml><span class=secno>13.2.5.4 </span>The rules for parsing tokens in HTML content</a>
+ <ol>
+ <li><a href=#the-initial-insertion-mode><span class=secno>13.2.5.4.1 </span>The "initial" insertion mode</a></li>
+ <li><a href=#the-before-html-insertion-mode><span class=secno>13.2.5.4.2 </span>The "before html" insertion mode</a></li>
+ <li><a href=#the-before-head-insertion-mode><span class=secno>13.2.5.4.3 </span>The "before head" insertion mode</a></li>
+ <li><a href=#parsing-main-inhead><span class=secno>13.2.5.4.4 </span>The "in head" insertion mode</a></li>
+ <li><a href=#parsing-main-inheadnoscript><span class=secno>13.2.5.4.5 </span>The "in head noscript" insertion mode</a></li>
+ <li><a href=#the-after-head-insertion-mode><span class=secno>13.2.5.4.6 </span>The "after head" insertion mode</a></li>
+ <li><a href=#parsing-main-inbody><span class=secno>13.2.5.4.7 </span>The "in body" insertion mode</a></li>
+ <li><a href=#parsing-main-incdata><span class=secno>13.2.5.4.8 </span>The "text" insertion mode</a></li>
+ <li><a href=#parsing-main-intable><span class=secno>13.2.5.4.9 </span>The "in table" insertion mode</a></li>
+ <li><a href=#parsing-main-intabletext><span class=secno>13.2.5.4.10 </span>The "in table text" insertion mode</a></li>
+ <li><a href=#parsing-main-incaption><span class=secno>13.2.5.4.11 </span>The "in caption" insertion mode</a></li>
+ <li><a href=#parsing-main-incolgroup><span class=secno>13.2.5.4.12 </span>The "in column group" insertion mode</a></li>
+ <li><a href=#parsing-main-intbody><span class=secno>13.2.5.4.13 </span>The "in table body" insertion mode</a></li>
+ <li><a href=#parsing-main-intr><span class=secno>13.2.5.4.14 </span>The "in row" insertion mode</a></li>
+ <li><a href=#parsing-main-intd><span class=secno>13.2.5.4.15 </span>The "in cell" insertion mode</a></li>
+ <li><a href=#parsing-main-inselect><span class=secno>13.2.5.4.16 </span>The "in select" insertion mode</a></li>
+ <li><a href=#parsing-main-inselectintable><span class=secno>13.2.5.4.17 </span>The "in select in table" insertion mode</a></li>
+ <li><a href=#parsing-main-afterbody><span class=secno>13.2.5.4.18 </span>The "after body" insertion mode</a></li>
+ <li><a href=#parsing-main-inframeset><span class=secno>13.2.5.4.19 </span>The "in frameset" insertion mode</a></li>
+ <li><a href=#parsing-main-afterframeset><span class=secno>13.2.5.4.20 </span>The "after frameset" insertion mode</a></li>
+ <li><a href=#the-after-after-body-insertion-mode><span class=secno>13.2.5.4.21 </span>The "after after body" insertion mode</a></li>
+ <li><a href=#the-after-after-frameset-insertion-mode><span class=secno>13.2.5.4.22 </span>The "after after frameset" insertion mode</a></ol></li>
+ <li><a href=#parsing-main-inforeign><span class=secno>13.2.5.5 </span>The rules for parsing tokens in foreign content</a></ol></li>
+ <li><a href=#the-end><span class=secno>13.2.6 </span>The end</a></li>
+ <li><a href=#coercing-an-html-dom-into-an-infoset><span class=secno>13.2.7 </span>Coercing an HTML DOM into an infoset</a></li>
+ <li><a href=#an-introduction-to-error-handling-and-strange-cases-in-the-parser><span class=secno>13.2.8 </span>An introduction to error handling and strange cases in the parser</a>
+ <ol>
+ <li><a href=#misnested-tags:-b-i-/b-/i><span class=secno>13.2.8.1 </span>Misnested tags: &lt;b&gt;&lt;i&gt;&lt;/b&gt;&lt;/i&gt;</a></li>
+ <li><a href=#misnested-tags:-b-p-/b-/p><span class=secno>13.2.8.2 </span>Misnested tags: &lt;b&gt;&lt;p&gt;&lt;/b&gt;&lt;/p&gt;</a></li>
+ <li><a href=#unexpected-markup-in-tables><span class=secno>13.2.8.3 </span>Unexpected markup in tables</a></li>
+ <li><a href=#scripts-that-modify-the-page-as-it-is-being-parsed><span class=secno>13.2.8.4 </span>Scripts that modify the page as it is being parsed</a></li>
+ <li><a href=#the-execution-of-scripts-that-are-moving-across-multiple-documents><span class=secno>13.2.8.5 </span>The execution of scripts that are moving across multiple documents</a></li>
+ <li><a href=#unclosed-formatting-elements><span class=secno>13.2.8.6 </span>Unclosed formatting elements</a></ol></ol></li>
+ <li><a href=#serializing-html-fragments><span class=secno>13.3 </span>Serializing HTML fragments</a></li>
+ <li><a href=#parsing-html-fragments><span class=secno>13.4 </span>Parsing HTML fragments</a></li>
+ <li><a href=#named-character-references><span class=secno>13.5 </span>Named character references</a></ol></li>
+ <li><a href=#the-xhtml-syntax><span class=secno>14 </span>The XHTML syntax</a>
+ <ol>
+ <li><a href=#writing-xhtml-documents><span class=secno>14.1 </span>Writing XHTML documents</a></li>
+ <li><a href=#parsing-xhtml-documents><span class=secno>14.2 </span>Parsing XHTML documents</a></li>
+ <li><a href=#serializing-xhtml-fragments><span class=secno>14.3 </span>Serializing XHTML fragments</a></li>
+ <li><a href=#parsing-xhtml-fragments><span class=secno>14.4 </span>Parsing XHTML fragments</a></ol></li>
+ <li><a href=#rendering><span class=secno>15 </span>Rendering</a>
+ <ol>
+ <li><a href=#introduction-17><span class=secno>15.1 </span>Introduction</a></li>
+ <li><a href=#the-css-user-agent-style-sheet-and-presentational-hints><span class=secno>15.2 </span>The CSS user agent style sheet and presentational hints</a></li>
+ <li><a href=#non-replaced-elements><span class=secno>15.3 </span>Non-replaced elements</a>
+ <ol>
+ <li><a href=#hidden-elements><span class=secno>15.3.1 </span>Hidden elements</a></li>
+ <li><a href=#the-page><span class=secno>15.3.2 </span>The page</a></li>
+ <li><a href=#flow-content-1><span class=secno>15.3.3 </span>Flow content</a></li>
+ <li><a href=#phrasing-content-1><span class=secno>15.3.4 </span>Phrasing content</a></li>
+ <li><a href=#bidirectional-text><span class=secno>15.3.5 </span>Bidirectional text</a></li>
+ <li><a href=#sections-and-headings><span class=secno>15.3.6 </span>Sections and headings</a></li>
+ <li><a href=#lists><span class=secno>15.3.7 </span>Lists</a></li>
+ <li><a href=#tables><span class=secno>15.3.8 </span>Tables</a></li>
+ <li><a href=#form-controls><span class=secno>15.3.9 </span>Form controls</a></li>
+ <li><a href=#the-hr-element-0><span class=secno>15.3.10 </span>The <code>hr</code> element</a></li>
+ <li><a href=#the-fieldset-element-0><span class=secno>15.3.11 </span>The <code>fieldset</code> element</a></ol></li>
+ <li><a href=#replaced-elements><span class=secno>15.4 </span>Replaced elements</a>
+ <ol>
+ <li><a href=#embedded-content-2><span class=secno>15.4.1 </span>Embedded content</a></li>
+ <li><a href=#timed-text-tracks-0><span class=secno>15.4.2 </span>Timed text tracks</a>
+ <ol>
+ <li><a href=#webvtt-cue-text-rendering-rules><span class=secno>15.4.2.1 </span>WebVTT cue text rendering rules</a></li>
+ <li><a href=#applying-css-properties-to-webvtt-node-objects><span class=secno>15.4.2.2 </span>Applying CSS properties to WebVTT Node Objects</a></li>
+ <li><a href=#css-extensions><span class=secno>15.4.2.3 </span>CSS extensions</a>
+ <ol>
+ <li><a href="#the-'::cue'-pseudo-element"><span class=secno>15.4.2.3.1 </span>The '::cue' pseudo-element</a></li>
+ <li><a href="#the-':past'-and-':future'-pseudo-classes"><span class=secno>15.4.2.3.2 </span>The ':past' and ':future' pseudo-classes</a></ol></ol></li>
+ <li><a href=#images-0><span class=secno>15.4.3 </span>Images</a></li>
+ <li><a href=#attributes-for-embedded-content-and-images><span class=secno>15.4.4 </span>Attributes for embedded content and images</a></li>
+ <li><a href=#image-maps-0><span class=secno>15.4.5 </span>Image maps</a></li>
+ <li><a href=#toolbars-0><span class=secno>15.4.6 </span>Toolbars</a></ol></li>
+ <li><a href=#bindings><span class=secno>15.5 </span>Bindings</a>
+ <ol>
+ <li><a href=#introduction-18><span class=secno>15.5.1 </span>Introduction</a></li>
+ <li><a href=#the-button-element-0><span class=secno>15.5.2 </span>The <code>button</code> element</a></li>
+ <li><a href=#the-details-element-0><span class=secno>15.5.3 </span>The <code>details</code> element</a></li>
+ <li><a href=#the-input-element-as-a-text-entry-widget><span class=secno>15.5.4 </span>The <code>input</code> element as a text entry widget</a></li>
+ <li><a href=#the-input-element-as-domain-specific-widgets><span class=secno>15.5.5 </span>The <code>input</code> element as domain-specific widgets</a></li>
+ <li><a href=#the-input-element-as-a-range-control><span class=secno>15.5.6 </span>The <code>input</code> element as a range control</a></li>
+ <li><a href=#the-input-element-as-a-color-well><span class=secno>15.5.7 </span>The <code>input</code> element as a color well</a></li>
+ <li><a href=#the-input-element-as-a-checkbox-and-radio-button-widgets><span class=secno>15.5.8 </span>The <code>input</code> element as a checkbox and radio button widgets</a></li>
+ <li><a href=#the-input-element-as-a-file-upload-control><span class=secno>15.5.9 </span>The <code>input</code> element as a file upload control</a></li>
+ <li><a href=#the-input-element-as-a-button><span class=secno>15.5.10 </span>The <code>input</code> element as a button</a></li>
+ <li><a href=#the-marquee-element-0><span class=secno>15.5.11 </span>The <code>marquee</code> element</a></li>
+ <li><a href=#the-meter-element-0><span class=secno>15.5.12 </span>The <code>meter</code> element</a></li>
+ <li><a href=#the-progress-element-0><span class=secno>15.5.13 </span>The <code>progress</code> element</a></li>
+ <li><a href=#the-select-element-0><span class=secno>15.5.14 </span>The <code>select</code> element</a></li>
+ <li><a href=#the-textarea-element-0><span class=secno>15.5.15 </span>The <code>textarea</code> element</a></li>
+ <li><a href=#the-keygen-element-0><span class=secno>15.5.16 </span>The <code>keygen</code> element</a></li>
+ <li><a href=#the-time-element-0><span class=secno>15.5.17 </span>The <code>time</code> element</a></ol></li>
+ <li><a href=#frames-and-framesets><span class=secno>15.6 </span>Frames and framesets</a></li>
+ <li><a href=#interactive-media><span class=secno>15.7 </span>Interactive media</a>
+ <ol>
+ <li><a href=#links,-forms,-and-navigation><span class=secno>15.7.1 </span>Links, forms, and navigation</a></li>
+ <li><a href=#the-title-attribute-0><span class=secno>15.7.2 </span>The <code title=attr-title>title</code> attribute</a></li>
+ <li><a href=#editing-hosts><span class=secno>15.7.3 </span>Editing hosts</a></li>
+ <li><a href=#text-rendered-in-native-user-interfaces><span class=secno>15.7.4 </span>Text rendered in native user interfaces</a></ol></li>
+ <li><a href=#print-media><span class=secno>15.8 </span>Print media</a></ol></li>
+ <li><a href=#obsolete><span class=secno>16 </span>Obsolete features</a>
+ <ol>
+ <li><a href=#obsolete-but-conforming-features><span class=secno>16.1 </span>Obsolete but conforming features</a>
+ <ol>
+ <li><a href=#warnings-for-obsolete-but-conforming-features><span class=secno>16.1.1 </span>Warnings for obsolete but conforming features</a></ol></li>
+ <li><a href=#non-conforming-features><span class=secno>16.2 </span>Non-conforming features</a></li>
+ <li><a href=#requirements-for-implementations><span class=secno>16.3 </span>Requirements for implementations</a>
+ <ol>
+ <li><a href=#the-applet-element><span class=secno>16.3.1 </span>The <code>applet</code> element</a></li>
+ <li><a href=#the-marquee-element><span class=secno>16.3.2 </span>The <code>marquee</code> element</a></li>
+ <li><a href=#frames><span class=secno>16.3.3 </span>Frames</a></li>
+ <li><a href=#other-elements,-attributes-and-apis><span class=secno>16.3.4 </span>Other elements, attributes and APIs</a></ol></ol></li>
+ <li><a href=#iana><span class=secno>17 </span>IANA considerations</a>
+ <ol>
+ <li><a href=#text/html><span class=secno>17.1 </span><code>text/html</code></a></li>
+ <li><a href=#text/html-sandboxed><span class=secno>17.2 </span><code>text/html-sandboxed</code></a></li>
+ <li><a href=#multipart/x-mixed-replace><span class=secno>17.3 </span><code>multipart/x-mixed-replace</code></a></li>
+ <li><a href=#application/xhtml+xml><span class=secno>17.4 </span><code>application/xhtml+xml</code></a></li>
+ <li><a href=#application/x-www-form-urlencoded><span class=secno>17.5 </span><code>application/x-www-form-urlencoded</code></a></li>
+ <li><a href=#text/cache-manifest><span class=secno>17.6 </span><code>text/cache-manifest</code></a></li>
+ <li><a href=#text/ping><span class=secno>17.7 </span><code>text/ping</code></a></li>
+ <li><a href=#text/vtt><span class=secno>17.8 </span><code>text/vtt</code></a></li>
+ <li><a href=#application/microdata+json><span class=secno>17.9 </span><code>application/microdata+json</code></a></li>
+ <li><a href=#application/html-peer-connection-data><span class=secno>17.10 </span><code>application/html-peer-connection-data</code></a></li>
+ <li><a href=#ping-from><span class=secno>17.11 </span><code>Ping-From</code></a></li>
+ <li><a href=#ping-to><span class=secno>17.12 </span><code>Ping-To</code></a></li>
+ <li><a href=#web+-scheme-prefix><span class=secno>17.13 </span><code>web+</code> scheme prefix</a></ol></li>
+ <li><a class=no-num href=#index>Index</a>
+ <ol>
+ <li><a class=no-num href=#elements-1>Elements</a></li>
+ <li><a class=no-num href=#element-content-categories>Element content categories</a></li>
+ <li><a class=no-num href=#attributes-1>Attributes</a></li>
+ <li><a class=no-num href=#interfaces>Interfaces</a></ol></li>
+ <li><a class=no-num href=#references>References</a></li>
+ <li><a class=no-num href=#acknowledgements>Acknowledgements</a></ol>
+<!--end-toc-->
+ <hr><!-- An advisory for those reading this source. --><!-- In this specification, there are a number of comments (like
+ this one) that have three consecutive Xs. These indicate known
+ problems that are expected to be resolved in the future. --><!-- There are also comments with the string "v2", "v3", "v4", or
+ higher numbers. These indicate ideas for future versions of
+ the specification that have not yet been included, usually
+ because it's too early (one has to move slowly lest the
+ browser vendors get overwhelmed with changes). --><!-- Finally, there may also be some known issues in this
+ specification marked with the following punctuation: --><!--!--><!-- These are issues that are known to the editor but cannot be
+ currently fixed because they were introduced by W3C decisions.
+ In theory we could fork the WHATWG copy of the spec, but doing
+ so would introduce normative differences between the W3C and
+ WHATWG specs and these issues are not worth the hassle that
+ this would cause. We'll probably be able to fix them some day,
+ but for now we are living with them. --><h2 id=introduction><span class=secno>1 </span>Introduction</h2>
+
+
+
+
+ <h3 id=abstract><span class=secno>1.1 </span>Where does this specification fit?</h3>
+
+ <p>This specification defines a big part of the Web platform, in
+ lots of detail. Its place in the Web platform specification stack
+ relative to other specifications can be best summed up as
+ follows:</p>
+
+ <p><img alt="It consists of everything else, above such core technologies as HTTP, URI/IRIs, DOM Core, XML, Unicode, and ECMAScript; below presentation-layer technologies like CSS, XBL, and the NPAPI; and to the side of technologies like Geolocation, SVG, MathML, and XHR." height=359 src=greenbox.png width=398></p>
+
+
+
+ <h3 id=is-this-html5?><span class=secno>1.2 </span>Is this HTML5?</h3><!--VERSION-->
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>In short: Yes.</p>
+
+ <p>In more length: The term "HTML5" is widely used as a buzzword to
+ refer to modern Web technologies, many of which (though by no means
+ all) are developed at the WHATWG, in some cases in conjunction with
+ the W3C and IETF.</p>
+
+ <p>The WHATWG work is all published in one specification
+
+ (the one you are reading right now),
+
+
+ parts of which are republished in a variety of other forms,
+ including an edition optimized for Web developers
+
+ (known as <a href=http://developers.whatwg.org/>HTML5</a>).
+
+
+ <!-- and one which focuses mainly on the core HTML language -->
+
+ <!-- (known as the <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">HTML Living Standard</a>). -->
+
+
+ In addition, two subparts of the specification are republished as
+ separate documents, for ease of reference:
+ <a href=http://www.whatwg.org/specs/web-apps/current-work/webvtt.html>WebVTT</a>
+ and
+ <a href=http://www.whatwg.org/specs/web-apps/current-work/webrtc.html>WebRTC</a>.
+ </p>
+
+ <p>The W3C also publishes parts of this specification as separate
+ documents. One of these parts is called "HTML5"; it is a subset of
+
+ this specification (the HTML Living Standard).
+
+ </p>
+
+<!--
+ <p>The WHATWG specification is a continuously maintained living
+ standard, with maturity managed at a very granular per-section
+ scale, indicated by markers in the left margin; this is intended to
+ model the way in which specifications are approached in practice by
+ implementors and authors alike. The W3C specifications follow a more
+ traditional style, with versioned releases of the specification, and
+ with maturity management being done only at the document level; this
+ means that the W3C specifications have version numbers (e.g.
+ "HTML5") and necessarily go through periods of "feature freeze"
+ where new features are not added, so that the specifications can as
+ a whole reach a more mature state.</p>
+-->
+
+
+ <h6 class=no-toc id=how-do-the-whatwg-and-w3c-specifications-differ?><span class=secno>1.2.1 </span>How do the WHATWG and W3C specifications differ?</h6>
+
+ <p>The features present in both the WHATWG and W3C specifications
+ are specified using identical text, except for the following (mostly
+ editorial) differences:</p><!--FORK-->
+
+ <ul><!--
+ <li>Instead of this section, the W3C HTML specification has a
+ different paragraph explaining the difference between the W3C and
+ WHATWG versions of HTML.</li>
+--><!-- in the status section --><li>The W3C HTML specification refers to the technology as HTML5,
+ rather than just HTML.</li><!--VERSION-->
+
+ <li>Examples that use features from HTML5 are not present in the
+ W3C specifications since the W3C specifications are published as
+ HTML4 due to <a href="http://www.w3.org/2005/07/pubrules?uimode=filter&amp;uri=#format">W3C
+ publication policies</a>.</li><!--HTML4POLICE-->
+
+ <li>The W3C HTML specification defines conformance for documents in
+ a more traditional (version-orientated) way, because of <a href=http://lists.w3.org/Archives/Public/public-html/2011Mar/0574.html>a
+ working group decision from March 2011</a>. This specification, in
+ part driven by its versionless development model, instead uses a
+ conformance definition that more closely models how specifications
+ are used in practice.</li><!--CONFORMANCE-->
+
+ <li>The W3C HTML specification omits a paragraph of implementation
+ advice because of <a href=http://lists.w3.org/Archives/Public/public-html/2010Jun/0001.html>a
+ working group decision from June 2010</a>.</li>
+
+ <li>The W3C HTML specification includes a paragraph of advice
+ redundant with the ARIA specifications because of <a href=http://lists.w3.org/Archives/Public/public-html/2011Mar/0244.html>a
+ working group decision from March 2011</a>.</li>
+
+ <li>The W3C HTML specification gives incomplete advice regarding
+ the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute and instead
+ references other documents on the matter because of <a href=http://lists.w3.org/Archives/Public/public-html/2011Mar/0691.html>a
+ working group decision from March 2011</a>.</li>
+
+ <li>The W3C HTML specification includes a link to an incomplete
+ document that contradicts this specification because of <a href=http://lists.w3.org/Archives/Public/public-html/2011Feb/0407.html>a
+ working group decision from February 2011</a>.</li><!--HPAAIG-->
+
+ <li>The W3C HTML specification has different prose regarding the
+ use of tables for layout purposes because of <a href=http://lists.w3.org/Archives/Public/public-html/2011Mar/0245.html>a
+ working group decision from March 2011</a>. In contrast, this
+ specification unambiguously disallows the use of <code><a href=#the-table-element>table</a></code>
+ elements for layout purposes.</li>
+
+ <li>The W3C HTML specification requires authors who are writing
+ HTML e-mails with images to people they know can see the images
+ (e.g. a wife sending her husband photos of their child) to
+ nonetheless include textual alternatives to those images, because
+ of <a href=http://lists.w3.org/Archives/Public/public-html/2011Apr/0451.html>a
+ working group decision from April 2011</a>.</li>
+
+ <li>The W3C HTML specification does not state that the
+ <code><a href=#the-img-element>img</a></code> element's <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code>
+ attribute is its <a href=#fallback-content>fallback content</a>, because of <a href=http://lists.w3.org/Archives/Public/public-html/2011Apr/0452.html>a
+ working group decision from April 2011</a>.</li>
+
+ <li>The W3C HTML specification is missing a clause that requires
+ conformance checkers to discourage cargo-cult accessibility
+ authoring because of <a href=http://lists.w3.org/Archives/Public/public-html/2011May/0018.html>a
+ working group chair decision from May 2011</a>.</li><!--bug
+ 11557-->
+
+ <li>The W3C HTML specification is missing some conformance
+ constraints that would make documents misusing <code><a href=#the-canvas-element>canvas</a></code>
+ invalid, because of <a href=http://lists.w3.org/Archives/Public/public-html/2011Jun/0083.html>a
+ working group chair decision from June 2011</a>.</li><!--bug
+ 12906-->
+
+ <li>The W3C 2D Context specification has a different API for
+ handling focus and selection in the 2D canvas API, because of <a href=http://lists.w3.org/Archives/Public/public-html/2011May/0138.html>a
+ working group chair decision from May 2011</a>.</li>
+
+ </ul><p>The following sections are only published in the WHATWG
+ specifications and are not currently available anywhere else:</p>
+
+ <ul><li>The <code><a href=#peerconnection>PeerConnection</a></code> API and related video-conferencing features.</li> <!--PEERCONNECTION-->
+ <li>New hyperlink features: the <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute to make download links and the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute for <a href=#hyperlink-auditing>hyperlink auditing</a>.</li> <!--DOWNLOAD--><!--PING-->
+ <li>The <a href=#webvtt>WebVTT</a> format and some <a href=#text-track>text track</a> API features.</li> <!--TTVTT-->
+ <li>Rules for <a href=#atom>converting HTML to Atom</a>.</li> <!--MD-->
+ <li>The <code title=dom-document-cssElementMap><a href=#dom-document-csselementmap>cssElementMap</a></code> feature for defining <a href=#css-element-reference-identifier title="CSS element reference identifier">CSS element reference identifiers</a>.</li> <!--CSSREF-->
+ <li>An experimental specification of the legacy <code title=dom-find><a href=#dom-find>window.find()</a></code> API.</li><!--FIND-->
+ <li>Some predefined <a href=#mdvocabs>Microdata vocabularies</a>.</li>
+ </ul><!--
+ <p>Features that are part of the WHATWG HTML Living Standard
+ specification but that are currently published as separate
+ specifications as well, and are not included in the W3C HTML5
+ specification, consist of:</p>
+
+ <ul>
+ <li><a href="#2dcontext">Canvas 2D Graphics Context</a>--><!--2DCONTEXT--><!--
+ <li><a href="#microdata">Microdata</a>--><!--MD--><!--
+ <li><a href="#crossDocumentMessages">Cross-document messaging</a> (also known as Communications)--><!--POSTMSG--><!--
+ <li><a href="#channel-messaging">Channel messaging</a> (also known as Communications)--><!--POSTMSG--><!--
+ </ul>
+--><!--
+ <h6 class="no-toc">What else is HTML5?</h6>
+
+ <p>Features that are not currently published or maintained by the
+ WHATWG but that are sometimes considered to be informally part of
+ "HTML5" include:</p>
+
+ <ul>
+ <li><a href="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol">WebSocket protocol</a>
+ <li><a href="http://tools.ietf.org/html/draft-abarth-mime-sniff">Media Type Sniffing</a>
+ <li><a href="http://tools.ietf.org/html/draft-abarth-origin">The Web Origin Concept</a>
+ <li><a href="http://dev.w3.org/geo/api/spec-source.html">Geolocation API</a>
+ <li><a href="http://www.w3.org/TR/SVG/">SVG</a>
+ <li><a href="http://www.w3.org/TR/MathML/">MathML</a>
+ <li><a href="http://dev.w3.org/2006/webapi/XMLHttpRequest-2/">XMLHttpRequest</a>
+ <li>Parts of <a href="http://www.w3.org/Style/CSS/current-work">CSS</a>.</li>
+ </ul>
+--><!--
+ <p>The <a href="#forms">forms</a> part of this specification was
+ previously published separately in a specification known as Web
+ Forms 2. The <a href="#workers">Web Workers</a> section was also
+ previously published as a separate document.</p>
+--><!--
+ <p>See also <a
+ href="http://wiki.whatwg.org/wiki/FAQ#What_are_the_various_versions_of_the_spec.3F">the
+ relevant FAQ entry</a>.</p>
+--><!--VERSION--><h3 id=background><span class=secno>1.3 </span>Background</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The World Wide Web's markup language has always been HTML. HTML
+ was primarily designed as a language for semantically describing
+ scientific documents, although its general design and adaptations
+ over the years have enabled it to be used to describe a number of
+ other types of documents.</p>
+
+ <p>The main area that has not been adequately addressed by HTML is a
+ vague subject referred to as Web Applications. This specification
+ attempts to rectify this, while at the same time updating the HTML
+ specifications to address issues raised in the past few years.</p>
+
+
+ <h3 id=audience><span class=secno>1.4 </span>Audience</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>This specification is intended for authors of documents and
+ scripts that use the features defined in this specification<span class=impl>, implementors of tools that operate on pages that use
+ the features defined in this specification, and individuals wishing
+ to establish the correctness of documents or implementations with
+ respect to the requirements of this specification</span>.</p>
+
+ <p>This document is probably not suited to readers who do not
+ already have at least a passing familiarity with Web technologies,
+ as in places it sacrifices clarity for precision, and brevity for
+ completeness. More approachable tutorials and authoring guides can
+ provide a gentler introduction to the topic.</p>
+
+ <p>In particular, familiarity with the basics of DOM Core and DOM
+ Events is necessary for a complete understanding of some of the more
+ technical parts of this specification. An understanding of Web IDL,
+ HTTP, XML, Unicode, character encodings, JavaScript, and CSS will
+ also be helpful in places but is not essential.</p>
+
+
+ <h3 id=scope><span class=secno>1.5 </span>Scope</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>This specification is limited to providing a semantic-level
+ markup language and associated semantic-level scripting APIs for
+ authoring accessible pages on the Web ranging from static documents
+ to dynamic applications.</p>
+
+ <p>The scope of this specification does not include providing
+ mechanisms for media-specific customization of presentation
+ (although default rendering rules for Web browsers are included at
+ the end of this specification, and several mechanisms for hooking
+ into CSS are provided as part of the language).</p>
+
+ <p>The scope of this specification is not to describe an entire
+ operating system. In particular, hardware configuration software,
+ image manipulation tools, and applications that users would be
+ expected to use with high-end workstations on a daily basis are out
+ of scope. In terms of applications, this specification is targeted
+ specifically at applications that would be expected to be used by
+ users on an occasional basis, or regularly but from disparate
+ locations, with low CPU requirements. For instance online purchasing
+ systems, searching systems, games (especially multiplayer online
+ games), public telephone books or address books, communications
+ software (e-mail clients, instant messaging clients, discussion
+ software), document editing software, etc.</p>
+
+
+ <h3 id=history-1><span class=secno>1.6 </span>History</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>For its first five years (1990-1995), HTML went through a number
+ of revisions and experienced a number of extensions, primarily
+ hosted first at CERN, and then at the IETF.</p>
+
+ <p>With the creation of the W3C, HTML's development changed venue
+ again. A first abortive attempt at extending HTML in 1995 known as
+ HTML 3.0 then made way to a more pragmatic approach known as HTML
+ 3.2, which was completed in 1997. HTML4 quicky followed later that
+ same year.</p>
+
+ <p>The following year, the W3C membership decided to stop evolving
+ HTML and instead begin work on an XML-based equivalent, called
+ XHTML. <!-- http://www.w3.org/MarkUp/future/#summary --> This effort
+ started with a reformulation of HTML4 in XML, known as XHTML 1.0,
+ which added no new features except the new serialization, and which
+ was completed in 2000. After XHTML 1.0, the W3C's focus turned to
+ making it easier for other working groups to extend XHTML, under the
+ banner of XHTML Modularization. In parallel with this, the W3C also
+ worked on a new language that was not compatible with the earlier
+ HTML and XHTML languages, calling it XHTML2.</p>
+
+ <p>Around the time that HTML's evolution was stopped in 1998, parts
+ of the API for HTML developed by browser vendors were specified and
+ published under the name DOM Level 1 (in 1998) and DOM Level 2 Core
+ and DOM Level 2 HTML (starting in 2000 and culminating in
+ 2003). These efforts then petered out, with some DOM Level 3
+ specifications published in 2004 but the working group being closed
+ before all the Level 3 drafts were completed.</p>
+
+ <p>In 2003, the publication of XForms, a technology which was
+ positioned as the next generation of Web forms, sparked a renewed
+ interest in evolving HTML itself, rather than finding replacements
+ for it. This interest was borne from the realization that XML's
+ deployment as a Web technology was limited to entirely new
+ technologies (like RSS and later Atom), rather than as a replacement
+ for existing deployed technologies (like HTML).</p>
+
+ <p>A proof of concept to show that it was possible to extend HTML4's
+ forms to provide many of the features that XForms 1.0 introduced,
+ without requiring browsers to implement rendering engines that were
+ incompatible with existing HTML Web pages, was the first result of
+ this renewed interest. At this early stage, while the draft was
+ already publicly available, and input was already being solicited
+ from all sources, the specification was only under Opera Software's
+ copyright.</p>
+
+ <p>The idea that HTML's evolution should be reopened was tested at a
+ W3C workshop in 2004, where some of the principles that underlie the
+ HTML5 work (described below), as well as the aforementioned early
+ draft proposal covering just forms-related features, were presented
+ to the W3C jointly by Mozilla and Opera. The proposal was rejected
+ on the grounds that the proposal conflicted with the previously
+ chosen direction for the Web's evolution; the W3C staff and
+ membership voted to continue developing XML-based replacements
+ instead.</p>
+
+ <p>Shortly thereafter, Apple, Mozilla, and Opera jointly announced
+ their intent to continue working on the effort under the umbrella of
+ a new venue called the WHATWG. A public mailing list was created,
+ and the draft was moved to the WHATWG site. The copyright was
+ subsequently amended to be jointly owned by all three vendors, and
+ to allow reuse of the specification.</p>
+
+ <p>The WHATWG was based on several core principles, in particular
+ that technologies need to be backwards compatible, that
+ specifications and implementations need to match even if this means
+ changing the specification rather than the implementations, and that
+ specifications need to be detailed enough that implementations can
+ achieve complete interoperability without reverse-engineering each
+ other.</p>
+
+ <p>The latter requirement in particular required that the scope of
+ the HTML5 specification include what had previously been specified
+ in three separate documents: HTML4, XHTML1, and DOM2 HTML. It also
+ meant including significantly more detail than had previously been
+ considered the norm.</p>
+
+ <p>In 2006, the W3C indicated an interest to participate in the
+ development of HTML5 after all, and in 2007 formed a working group
+ chartered to work with the WHATWG on the development of the HTML5
+ specification. Apple, Mozilla, and Opera allowed the W3C to publish
+ the specification under the W3C copyright, while keeping a version
+ with the less restrictive license on the WHATWG site.</p>
+
+ <p>Since then, both groups have been working together.</p>
+
+
+ <p>A separate document has been published by the W3C HTML working
+ group to document the differences between the HTML specified in this
+ document and the language described in the HTML4 specification. <a href=#refsHTMLDIFF>[HTMLDIFF]</a></p>
+
+
+
+
+ <h3 id=design-notes><span class=secno>1.7 </span>Design notes</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>It must be admitted that many aspects of HTML appear at first
+ glance to be nonsensical and inconsistent.</p>
+
+ <p>HTML, its supporting DOM APIs, as well as many of its supporting
+ technologies, have been developed over a period of several decades
+ by a wide array of people with different priorities who, in many
+ cases, did not know of each other's existence.</p>
+
+ <p>Features have thus arisen from many sources, and have not always
+ been designed in especially consistent ways. Furthermore, because of
+ the unique characteristics of the Web, implementation bugs have
+ often become de-facto, and now de-jure, standards, as content is
+ often unintentionally written in ways that rely on them before they
+ can be fixed.</p>
+
+ <p>Despite all this, efforts have been made to adhere to certain
+ design goals. These are described in the next few subsections.</p>
+
+
+ <h4 id=serializability-of-script-execution><span class=secno>1.7.1 </span>Serializability of script execution</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>To avoid exposing Web authors to the complexities of
+ multithreading, the HTML and DOM APIs are designed such that no
+ script can ever detect the simultaneous execution of other
+ scripts. Even with <a href=#worker title=Worker>workers</a>, the intent
+ is that the behavior of implementations can be thought of as
+ completely serializing the execution of all scripts in all <a href=#browsing-context title="browsing context">browsing contexts</a>.</p>
+
+ <p class=note>The <code title=dom-navigator-yieldForStorageUpdates><a href=#dom-navigator-yieldforstorageupdates>navigator.yieldForStorageUpdates()</a></code>
+ method, in this model, is equivalent to allowing other scripts to
+ run while the calling script is blocked.</p>
+
+
+ <h4 id=compliance-with-other-specifications><span class=secno>1.7.2 </span>Compliance with other specifications</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>This specification interacts with and relies on a wide variety of
+ other specifications. In certain circumstances, unfortunately,
+ conflicting needs have led to this specification violating the
+ requirements of these other specifications. Whenever this has
+ occurred, the transgressions have each been noted as a "<dfn id=willful-violation>willful
+ violation</dfn>", and the reason for the violation has been
+ noted.</p>
+
+
+
+
+ <h3 id=html-vs-xhtml><span class=secno>1.8 </span>HTML vs XHTML</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>This specification defines an abstract language for describing
+ documents and applications, and some APIs for interacting with
+ in-memory representations of resources that use this language.</p>
+
+ <p>The in-memory representation is known as "DOM HTML", or "the DOM"
+ for short.</p>
+
+ <p>There are various concrete syntaxes that can be used to transmit
+ resources that use this abstract language, two of which are defined
+ in this specification.</p>
+
+ <p>The first such concrete syntax is the HTML syntax. This is the
+ format suggested for most authors. It is compatible with most legacy
+ Web browsers. If a document is transmitted with an <a href=#html-mime-type>HTML MIME
+ type</a>, such as <code><a href=#text/html>text/html</a></code>, then it will be
+ processed as an HTML document by Web browsers.
+
+ This specification defines the latest HTML syntax, known simply as
+ "HTML".
+ <!--VERSION-->
+
+ </p>
+
+ <p>The second concrete syntax is the XHTML syntax, which is an
+ application of XML. When a document is transmitted with an <a href=#xml-mime-type>XML
+ MIME type</a>, such as <code><a href=#application/xhtml+xml>application/xhtml+xml</a></code>, then
+ it is treated as an XML document by Web browsers, to be parsed by an
+ XML processor. Authors are reminded that the processing for XML and
+ HTML differs; in particular, even minor syntax errors will prevent a
+ document labeled as XML from being rendered fully, whereas they
+ would be ignored in the HTML syntax.
+
+ This specification defines the latest XHTML syntax, known simply as
+ "XHTML".
+ <!--VERSION-->
+
+ </p>
+
+ <p>The DOM, the HTML syntax, and XML cannot all represent the same
+ content. For example, namespaces cannot be represented using the
+ HTML syntax, but they are supported in the DOM and in XML.
+ Similarly, documents that use the <code><a href=#the-noscript-element>noscript</a></code> feature can
+ be represented using the HTML syntax, but cannot be represented with
+ the DOM or in XML. Comments that contain the string "<code title="">--&gt;</code>" can only be represented in the DOM, not in
+ the HTML and XML syntaxes.</p>
+
+
+ <h3 id=structure-of-this-specification><span class=secno>1.9 </span>Structure of this specification</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>This specification is divided into the following major
+ sections:</p>
+
+ <dl><dt><a href=#infrastructure>Common infrastructure</a></dt>
+
+ <dd>The conformance classes, algorithms, definitions, and the
+ common underpinnings of the rest of the specification.</dd>
+
+
+ <dt><a href=#dom>Semantics, structure, and APIs of HTML documents</a></dt>
+
+ <dd>Documents are built from elements. These elements form a tree
+ using the DOM. This section defines the features of this DOM, as
+ well as introducing the features common to all elements, and the
+ concepts used in defining elements.</dd>
+
+
+ <dt><a href=#semantics>The elements of HTML</a></dt>
+
+ <dd>Each element has a predefined meaning, which is explained in
+ this section. Rules for authors on how to use the element<span class=impl>, along with user agent requirements for how to handle
+ each element,</span> are also given.</dd>
+
+<!--MD-->
+ <dt><a href=#microdata>Microdata</a></dt>
+
+ <dd>This specification introduces a mechanism for adding
+ machine-readable annotations to documents, so that tools can
+ extract trees of name-value pairs from the document. This section
+ describes this mechanism<span class=impl> and some algorithms
+ that can be used to convert HTML documents into other
+ formats</span>.
+
+ This section also defines some Microdata vocabularies for contact
+ information, calendar events, and licensing works.
+
+ </dd>
+<!--MD-->
+
+ <dt><a href=#browsers>Loading Web pages</a></dt>
+
+ <dd>HTML documents do not exist in a vacuum &mdash; this section
+ defines many of the features that affect environments that deal
+ with multiple pages.</dd>
+
+ <dt><a href=#webappapis>Web application APIs</a></dt>
+
+ <dd>This section introduces basic features for scripting of
+ applications in HTML.</dd>
+
+ <dt><a href=#editing>User interaction</a></dt>
+
+ <dd>HTML documents can provide a number of mechanisms for users to
+ interact with and modify content, which are described in this
+ section.</dd>
+
+
+ <dt><a href=#workers>Web workers</a></dt>
+
+ <dd>This specification defines an API for background threads in
+ JavaScript.</dd>
+
+
+
+ <dt><a href=#webstorage>Web storage</a></dt>
+
+ <dd>This specification defines a client-side storage mechanism
+ based on name-value pairs.</dd>
+
+
+<!--POSTMSG-->
+ <dt><a href=#comms>The communication APIs</a></dt>
+
+ <dd>This section describes some mechanisms that applications
+ written in HTML can use to communicate with other applications from
+ different domains running on the same client.
+
+ It also introduces a server-push event stream mechanism, and a
+ two-way full-duplex socket protocol for scripts.
+
+ </dd>
+<!--POSTMSG-->
+
+
+ <dt><a href=#syntax>The HTML syntax</a></dt>
+ <dt><a href=#xhtml>The XHTML syntax</a></dt>
+
+ <dd>All of these features would be for naught if they couldn't be
+ represented in a serialized form and sent to other people, and so
+ these sections define the syntaxes of HTML, along with rules for
+ how to parse content using those syntaxes.</dd>
+
+
+ </dl><p>There are also some appendices, defining <a href=#rendering>rendering rules</a> for Web browsers and listing
+ <a href=#obsolete>obsolete features</a> and <a href=#iana>IANA
+ considerations</a>.</p>
+
+
+
+ <h4 id=how-to-read-this-specification><span class=secno>1.9.1 </span>How to read this specification</h4>
+
+ <p>This specification should be read like all other specifications.
+ First, it should be read cover-to-cover, multiple times. Then, it
+ should be read backwards at least once. Then it should be read by
+ picking random sections from the contents list and following all the
+ cross-references.</p>
+
+ <p>As described in the conformance requirements section below, this
+ specification describes conformance criteria for a variety of
+ conformance classes. In particular, there are conformance
+ requirements that apply to <em>producers</em>, for example authors
+ and the documents they create, and there are conformance
+ requirements that apply to <em>consumers</em>, for example Web
+ browsers. They can be distinguished by what they are requiring: a
+ requirement on a producer states what is allowed, while a
+ requirement on a consumer states how software is to act.</p>
+
+ <div class=example>
+
+ <p>For example, "the <code title="">foo</code> attribute's value
+ must be a <a href=#valid-integer>valid integer</a>" is a requirement on
+ producers, as it lays out the allowed values; in contrast, the
+ requirement "the <code title="">foo</code> attribute's value must
+ be parsed using the <a href=#rules-for-parsing-integers>rules for parsing integers</a>" is a
+ requirement on consumers, as it describes how to process the
+ content.</p>
+
+ </div>
+
+ <p><strong>Requirements on producers have no bearing whatsoever on
+ consumers.</strong></p>
+
+ <div class=example>
+
+ <p>Continuing the above example, a requirement stating that a
+ particular attribute's value is constrained to being a <a href=#valid-integer>valid
+ integer</a> emphatically does <em>not</em> imply anything about
+ the requirements on consumers. It might be that the consumers are
+ in fact required to treat the attribute as an opaque string,
+ completely unaffected by whether the value conforms to the
+ requirements or not. It might be (as in the previous example) that
+ the consumers are required to parse the value using specific rules
+ that define how invalid (non-numeric in this case) values are to be
+ processed.</p>
+
+ </div>
+
+
+
+ <h4 id=typographic-conventions><span class=secno>1.9.2 </span>Typographic conventions</h4>
+
+ <p>This is a definition, requirement, or explanation.</p>
+
+ <p class=note>This is a note.</p>
+
+ <p class=example>This is an example.</p>
+
+ <p class=XXX>This is an open issue.</p>
+
+ <p class=warning>This is a warning.</p>
+
+ <pre class="idl extract">interface <dfn title="">Example</dfn> {
+ // this is an IDL definition
+};</pre>
+
+ <dl class=domintro><dt><var title="">variable</var> = <var title="">object</var> . <code title="">method</code>( [ <var title="">optionalArgument</var> ] )</dt>
+
+ <dd>
+
+ <p>This is a note to authors describing the usage of an interface.</p>
+
+ </dd>
+
+ </dl><pre class=css>/* this is a CSS fragment */</pre>
+
+ <p>The defining instance of a term is marked up like <dfn id=x-this title=x-this>this</dfn>. Uses of that term are marked up like
+ <a href=#x-this title=x-this>this</a> or like <i title=x-this><a href=#x-this>this</a></i>.</p>
+
+ <p>The defining instance of an element, attribute, or API is marked
+ up like <dfn id=x-that title=x-that><code>this</code></dfn>. References to
+ that element, attribute, or API are marked up like <code title=x-that><a href=#x-that>this</a></code>.</p>
+
+ <p>Other code fragments are marked up <code title="">like
+ this</code>.</p>
+
+ <p>Variables are marked up like <var title="">this</var>.</p>
+
+ <p class=impl>This is an implementation requirement.</p>
+
+
+
+ <h3 id=a-quick-introduction-to-html><span class=secno>1.10 </span>A quick introduction to HTML</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>A basic HTML document looks like this:</p>
+
+ <pre id=intro-early-example>&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Sample page&lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;h1&gt;Sample page&lt;/h1&gt;
+ &lt;p&gt;This is a &lt;a href="demo.html"&gt;simple&lt;/a&gt; sample.&lt;/p&gt;
+ &lt;!-- this is a comment --&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>HTML documents consist of a tree of elements and text. Each
+ element is denoted in the source by a <a href=#syntax-start-tag title=syntax-start-tag>start tag</a>, such as "<code title="">&lt;body&gt;</code>", and an <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a>, such as "<code title="">&lt;/body&gt;</code>". (Certain
+ start tags and end tags can in certain cases be <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a> and are implied by other
+ tags.)</p>
+
+ <p>Tags have to be nested such that elements are all completely
+ within each other, without overlapping:</p>
+
+ <pre class=bad>&lt;p&gt;This is &lt;em&gt;very &lt;strong&gt;wrong&lt;/em&gt;!&lt;/strong&gt;&lt;/p&gt;</pre>
+ <pre>&lt;p&gt;This &lt;em&gt;is &lt;strong&gt;correct&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;</pre>
+
+ <p>This specification defines a set of elements that can be used in
+ HTML, along with rules about the ways in which the elements can be
+ nested.</p>
+
+ <p>Elements can have attributes, which control how the elements
+ work. In the example below, there is a <a href=#hyperlink>hyperlink</a>,
+ formed using the <code><a href=#the-a-element>a</a></code> element and its <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute:</p>
+
+ <pre>&lt;a href="demo.html"&gt;simple&lt;/a&gt;</pre>
+
+ <p><a href=#syntax-attributes title=syntax-attributes>Attributes</a> are placed
+ inside the start tag, and consist of a <a href=#syntax-attribute-name title=syntax-attribute-name>name</a> and a <a href=#syntax-attribute-value title=syntax-attribute-value>value</a>, separated by an "<code title="">=</code>" character. The attribute value can remain <a href=#unquoted>unquoted</a> if it doesn't contain <a href=#space-character title="space character">space characters</a> or any of <code title="">"</code> <code title="">'</code> <code title="">`</code>
+ <code title="">=</code> <code title="">&lt;</code> or <code title="">&gt;</code>. Otherwise, it has to be quoted using either
+ single or double quotes. The value, along with the "<code title="">=</code>" character, can be omitted altogether if the value
+ is the empty string.</p>
+
+ <pre>&lt;!-- empty attributes --&gt;
+&lt;input name=address disabled&gt;
+&lt;input name=address disabled=""&gt;
+
+&lt;!-- attributes with a value --&gt;
+&lt;input name=address maxlength=200&gt;
+&lt;input name=address maxlength='200'&gt;
+&lt;input name=address maxlength="200"&gt;</pre>
+
+ <p>HTML user agents (e.g. Web browsers) then <i>parse</i> this
+ markup, turning it into a DOM (Document Object Model) tree. A DOM
+ tree is an in-memory representation of a document.</p>
+
+ <p>DOM trees contain several kinds of nodes, in particular a DOCTYPE
+ node, elements, text nodes, and comment nodes.</p>
+
+ <p>The <a href=#intro-early-example>markup snippet at the top of
+ this section</a> would be turned into the following DOM tree:</p>
+
+ <ul class=domTree><li class=t10>DOCTYPE: <code title="">html</code><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><ul><li class=t3><code>#text</code>: <span title="">&#9166;&#9251;&#9251;</span><li class=t1><code><a href=#the-title-element>title</a></code><ul><li class=t3><code>#text</code>: <span title="">Sample page</span></ul><li class=t3><code>#text</code>: <span title="">&#9166;&#9251;</span></ul><li class=t3><code>#text</code>: <span title="">&#9166;&#9251;</span><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t3><code>#text</code>: <span title="">&#9166;&#9251;&#9251;</span><li class=t1><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code><ul><li class=t3><code>#text</code>: <span title="">Sample page</span></ul><li class=t3><code>#text</code>: <span title="">&#9166;&#9251;&#9251;</span><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t3><code>#text</code>: <span title="">This is a </span><li class=t1><code><a href=#the-a-element>a</a></code> <span class=t2 title=""><code class="attribute name">href</code>="<code class="attribute value">demo.html</code>"</span><ul><li class=t3><code>#text</code>: <span title="">simple</span></ul><li class=t3><code>#text</code>: <span title=""> sample.</span></ul><li class=t3><code>#text</code>: <span title="">&#9166;&#9251;&#9251;</span><li class=t8><code>#comment</code>: <span title=""> this is a comment </span><li class=t3><code>#text</code>: <span title="">&#9166;&#9251;&#9166;</span></ul></ul></ul><p>The <a href=#root-element>root element</a> of this tree is the
+ <code><a href=#the-html-element>html</a></code> element, which is the element always found at the
+ root of HTML documents. It contains two elements, <code><a href=#the-head-element>head</a></code>
+ and <code><a href=#the-body-element>body</a></code>, as well as a text node between them.</p>
+
+ <p>There are many more text nodes in the DOM tree than one would
+ initially expect, because the source contains a number of spaces
+ (represented here by "&#9251;") and line breaks ("&#9166;") that
+ all end up as text nodes in the DOM. However, for historical reasons
+ not all of the spaces and line breaks in the original markup appear
+ in the DOM. In particular, all the whitespace before
+ <code><a href=#the-head-element>head</a></code> start tag ends up being dropped silently, and all
+ the whitespace after the <code><a href=#the-body-element>body</a></code> end tag ends up placed at
+ the end of the <code><a href=#the-body-element>body</a></code>.</p>
+
+ <p>The <code><a href=#the-head-element>head</a></code> element contains a <code><a href=#the-title-element>title</a></code>
+ element, which itself contains a text node with the text "Sample
+ page". Similarly, the <code><a href=#the-body-element>body</a></code> element contains an
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> element, a <code><a href=#the-p-element>p</a></code> element, and a
+ comment.</p>
+
+ <hr><p>This DOM tree can be manipulated from scripts in the
+ page. Scripts (typically in JavaScript) are small programs that can
+ be embedded using the <code><a href=#the-script-element>script</a></code> element or using
+ <a href=#event-handler-content-attributes>event handler content attributes</a>. For example, here is
+ a form with a script that sets the value of the form's
+ <code><a href=#the-output-element>output</a></code> element to say "Hello World":</p>
+
+ <pre>&lt;<a href=#the-form-element>form</a> <a href=#attr-form-name title=attr-form-name>name</a>="main"&gt;
+ Result: &lt;<a href=#the-output-element>output</a> <a href=#attr-fe-name title=attr-fe-name>name</a>="result"&gt;&lt;/output&gt;
+ &lt;<a href=#the-script-element>script</a>&gt;
+ <a href=#htmldocument title=HTMLDocument>document</a>.<a href=#dom-document-forms title=dom-document-forms>forms</a>.main.<a href=#dom-form-elements title=dom-form-elements>elements</a>.result.<a href=#dom-output-value title=dom-output-value>value</a> = 'Hello World';
+ &lt;/script&gt;
+&lt;/form&gt;</pre>
+
+ <p>Each element in the DOM tree is represented by an object, and
+ these objects have APIs so that they can be manipulated. For
+ instance, a link (e.g. the <code><a href=#the-a-element>a</a></code> element in the tree above)
+ can have its "<code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>"
+ attribute changed in several ways:</p>
+
+ <pre>var a = <a href=#htmldocument title=HTMLDocument>document</a>.<a href=#dom-document-links title=dom-document-links>links</a>[0]; // obtain the first link in the document
+a.<a href=#dom-a-href title=dom-a-href>href</a> = 'sample.html'; // change the destination URL of the link
+a.<a href=#dom-uda-protocol title=dom-uda-protocol>protocol</a> = 'https'; // change just the scheme part of the URL
+a.setAttribute('href', 'http://example.com/'); // change the content attribute directly</pre>
+
+ <p>Since DOM trees are used as the way to represent HTML documents
+ when they are processed and presented by implementations (especially
+ interactive implementations like Web browsers), this specification
+ is mostly phrased in terms of DOM trees, instead of the markup
+ described above.</p>
+
+ <hr><p>HTML documents represent a media-independent description of
+ interactive content. HTML documents might be rendered to a screen,
+ or through a speech synthesizer, or on a braille display. To
+ influence exactly how such rendering takes place, authors can use a
+ styling language such as CSS.</p>
+
+ <p>In the following example, the page has been made yellow-on-blue
+ using CSS.</p>
+
+ <pre>&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Sample styled page&lt;/title&gt;
+ &lt;style&gt;
+ body { background: navy; color: yellow; }
+ &lt;/style&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;h1&gt;Sample styled page&lt;/h1&gt;
+ &lt;p&gt;This page is just a demo.&lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>For more details on how to use HTML, authors are encouraged to
+ consult tutorials and guides. Some of the examples included in this
+ specification might also be of use, but the novice author is
+ cautioned that this specification, by necessity, defines the
+ language with a level of detail that might be difficult to
+ understand at first.</p>
+
+
+ <h4 id=writing-secure-applications-with-html><span class=secno>1.10.1 </span>Writing secure applications with HTML</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>When HTML is used to create interactive sites, care needs to be
+ taken to avoid introducing vulnerabilities through which attackers
+ can compromise the integrity of the site itself or of the site's
+ users.</p>
+
+ <p>A comprehensive study of this matter is beyond the scope of this
+ document, and authors are strongly encouraged to study the matter in
+ more detail. However, this section attempts to provide a quick
+ introduction to some common pitfalls in HTML application
+ development.</p>
+
+ <p>The security model of the Web is based on the concept of
+ "origins", and correspondingly many of the potential attacks on the
+ Web involve cross-origin actions. <a href=#refsORIGIN>[ORIGIN]</a></p>
+
+ <dl><dt>Not validating user input</dt>
+ <dt>Cross-site scripting (XSS)</dt>
+ <dt>SQL injection</dt>
+
+ <dd>
+
+ <p>When accepting untrusted input, e.g. user-generated content
+ such as text comments, values in URL parameters, messages from
+ third-party sites, etc, it is imperative that the data be
+ validated before use, and properly escaped when displayed. Failing
+ to do this can allow a hostile user to perform a variety of
+ attacks, ranging from the potentially benign, such as providing
+ bogus user information like a negative age, to the serious, such
+ as running scripts every time a user looks at a page that includes
+ the information, potentially propagating the attack in the
+ process, to the catastrophic, such as deleting all data in the
+ server.</p>
+
+ <p>When writing filters to validate user input, it is imperative
+ that filters always be whitelist-based, allowing known-safe
+ constructs and disallowing all other input. Blacklist-based
+ filters that disallow known-bad inputs and allow everything else
+ are not secure, as not everything that is bad is yet known (for
+ example, because it might be invented in the future).</p>
+
+ <div class=example>
+
+ <p>For example, suppose a page looked at its URL's query string
+ to determine what to display, and the site then redirected the
+ user to that page to display a message, as in:</p>
+
+ <pre>&lt;ul&gt;
+ &lt;li&gt;&lt;a href="message.cgi?say=Hello"&gt;Say Hello&lt;/a&gt;
+ &lt;li&gt;&lt;a href="message.cgi?say=Welcome"&gt;Say Welcome&lt;/a&gt;
+ &lt;li&gt;&lt;a href="message.cgi?say=Kittens"&gt;Say Kittens&lt;/a&gt;
+&lt;/ul&gt;</pre>
+
+ <p>If the message was just displayed to the user without
+ escaping, a hostile attacker could then craft a URL that
+ contained a script element:</p>
+
+ <pre>http://example.com/message.cgi?say=%3Cscript%3Ealert%28%27Oh%20no%21%27%29%3C/script%3E</pre>
+
+ <p>If the attacker then convinced a victim user to visit this
+ page, a script of the attacker's choosing would run on the page.
+ Such a script could do any number of hostile actions, limited
+ only by what the site offers: if the site is an e-commerce shop,
+ for instance, such a script could cause the user to unknowingly
+ make arbitrarily many unwanted purchases.</p>
+
+ <p>This is called a cross-site scripting attack.</p>
+
+ </div>
+
+ </dd>
+
+
+ <dt>Cross-site request forgery (CSRF)</dt>
+
+ <dd>
+
+ <p>If a site allows a user to make form submissions with
+ user-specific side-effects, for example posting messages on a
+ forum under the user's name, making purchases, or applying for a
+ passport, it is important to verify that the request was made by
+ the user intentionally, rather than by another site tricking the
+ user into making the request unknowingly.</p>
+
+ <p>This problem exists because HTML forms can be submitted to
+ other origins.</p>
+
+ <p>Sites can prevent such attacks by populating forms with
+ user-specific hidden tokens, or by checking <code title=http-origin>Origin</code> headers on all requests.</p>
+
+ </dd>
+
+
+
+ <dt>Clickjacking</dt>
+
+ <dd>
+
+ <p>A page that provides users with an interface to perform actions
+ that the user might not wish to perform needs to be designed so as
+ to avoid the possibility that users can be tricked into activating
+ the interface.</p>
+
+ <p>One way that a user could be so tricked is if a hostile site
+ places the victim site in a small <code><a href=#the-iframe-element>iframe</a></code> and then
+ convinces the user to click, for instance by having the user play
+ a reaction game. Once the user is playing the game, the hostile
+ site can quickly position the iframe under the mouse cursor just
+ as the user is about to click, thus tricking the user into
+ clicking the victim site's interface.</p>
+
+ <p>To avoid this, sites that do not expect to be used in frames
+ are encouraged to only enable their interface if they detect that
+ they are not in a frame (e.g. by comparing the <code title=dom-window><a href=#dom-window>window</a></code> object to the value of the <code title=dom-top><a href=#dom-top>top</a></code> attribute).</p>
+
+ </dd>
+
+ </dl><h4 id=common-pitfalls-to-avoid-when-using-the-scripting-apis><span class=secno>1.10.2 </span>Common pitfalls to avoid when using the scripting APIs</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Scripts in HTML have "run-to-completion" semantics, meaning that
+ the browser will generally run the script uninterrupted before doing
+ anything else, such as firing further events or continuing to parse
+ the document.</p>
+
+ <p>On the other hand, parsing of HTML files happens asynchronously
+ and incrementally, meaning that the parser can pause at any point to
+ let scripts run. This is generally a good thing, but it does mean
+ that authors need to be careful to avoid hooking event handlers
+ after the events could have possibly fired.</p>
+
+ <p>There are two techniques for doing this reliably: use <a href=#event-handler-content-attributes>event
+ handler content attributes</a>, or create the element and add the
+ event handlers in the same script. The latter is safe because, as
+ mentioned earlier, scripts are run to completion before further
+ events can fire.</p>
+
+ <div class=example>
+
+ <p>One way this could manifest itself is with <code><a href=#the-img-element>img</a></code>
+ elements and the <code title=event-load>load</code> event. The
+ event could fire as soon as the element has been parsed, especially
+ if the image has already been cached (which is common).</p>
+
+ <p>Here, the author uses the <code title=handler-onload><a href=#handler-onload>onload</a></code> handler on an <code><a href=#the-img-element>img</a></code>
+ element to catch the <code title=event-load>load</code> event:</p>
+
+ <pre>&lt;img src="games.png" alt="Games" onload="gamesLogoHasLoaded(event)"&gt;</pre>
+
+ <p>If the element is being added by script, then so long as the
+ event handlers are added in the same script, the event will still
+ not be missed:</p>
+
+ <pre>&lt;script&gt;
+ var img = new Image();
+ img.src = 'games.png';
+ img.alt = 'Games';
+ img.onload = gamesLogoHasLoaded;
+ // img.addEventListener('load', gamesLogoHasLoaded, false); // would work also
+&lt;/script&gt;</pre>
+
+ <p>However, if the author first created the <code><a href=#the-img-element>img</a></code>
+ element and then in a separate script added the event listeners,
+ there's a chance that the <code title=event-load>load</code>
+ event would be fired in between, leading it to be missed:</p>
+
+ <pre class=bad>&lt;!-- Do not use this style, it has a race condition! --&gt;
+ &lt;img id="games" src="games.png" alt="Games"&gt;
+ &lt;!-- the 'load' event might fire here while the parser is taking a
+ break, in which case you will not see it! --&gt;
+ &lt;script&gt;
+ var img = document.getElementById('games');
+ img.onload = gamesLogoHasLoaded; // might never fire!
+ &lt;/script&gt;</pre>
+
+ </div>
+
+
+
+ <h3 id=conformance-requirements-for-authors><span class=secno>1.11 </span>Conformance requirements for authors</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Unlike previous versions of the HTML specification, this
+ specification defines in some detail the required processing for
+ invalid documents as well as valid documents.</p> <!-- This has led
+ to some questioning the purpose of conformance criteria: if there is
+ no ambiguity in how something will be processed, why disallow it? -->
+
+ <p>However, even though the processing of invalid content is in most
+ cases well-defined, conformance requirements for documents are still
+ important: in practice, interoperability (the situation in which all
+ implementations process particular content in a reliable and
+ identical or equivalent way) is not the only goal of document
+ conformance requirements. This section details some of the more
+ common reasons for still distinguishing between a conforming
+ document and one with errors.</p>
+
+
+ <h4 id=presentational-markup><span class=secno>1.11.1 </span>Presentational markup</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The majority of presentational features from previous versions of
+ HTML are no longer allowed. Presentational markup in general has
+ been found to have a number of problems:</p>
+
+ <dl><dt>The use of presentational elements leads to poorer accessibility</dt>
+
+ <dd>
+
+ <p>While it is possible to use presentational markup in a way that
+ provides users of assistive technologies (ATs) with an acceptable
+ experience (e.g. using ARIA), doing so is significantly more
+ difficult than doing so when using semantically-appropriate
+ markup. Furthermore, even using such techniques doesn't help make
+ pages accessible for non-AT non-graphical users, such as users of
+ text-mode browsers.</p>
+
+ <p>Using media-independent markup, on the other hand, provides an
+ easy way for documents to be authored in such a way that they work
+ for more users (e.g. text browsers).</p>
+
+ </dd>
+
+
+ <dt>Higher cost of maintenance</dt>
+
+ <dd>
+
+ <p>It is significantly easier to maintain a site written in such a
+ way that the markup is style-independent. For example, changing
+ the color of a site that uses <code>&lt;font&nbsp;color=""&gt;</code>
+ throughout requires changes across the entire site, whereas a
+ similar change to a site based on CSS can be done by changing a
+ single file.</p>
+
+ </dd>
+
+
+ <dt>Larger document sizes</dt>
+
+ <dd>
+
+ <p>Presentational markup tends to be much more redundant, and thus
+ results in larger document sizes.</p>
+
+ </dd>
+
+ </dl><p>For those reasons, presentational markup has been removed from
+ HTML in this version. This change should not come as a surprise;
+ HTML4 deprecated presentational markup many years ago and provided a
+ mode (HTML4 Transitional) to help authors move away from
+ presentational markup; later, XHTML 1.1 went further and obsoleted
+ those features altogether.</p>
+
+ <p>The only remaining presentational markup features in HTML are the
+ <code title=attr-style><a href=#the-style-attribute>style</a></code> attribute and the
+ <code><a href=#the-style-element>style</a></code> element. Use of the <code title=attr-style><a href=#the-style-attribute>style</a></code> attribute is somewhat discouraged in
+ production environments, but it can be useful for rapid prototyping
+ (where its rules can be directly moved into a separate style sheet
+ later) and for providing specific styles in unusual cases where a
+ separate style sheet would be inconvenient. Similarly, the
+ <code><a href=#the-style-element>style</a></code> element can be useful in syndication or for
+ page-specific styles, but in general an external style sheet is
+ likely to be more convenient when the styles apply to multiple
+ pages.</p>
+
+ <p>It is also worth noting that some elements that were previously
+ presentational have been redefined in this specification to be
+ media-independent: <code><a href=#the-b-element>b</a></code>, <code><a href=#the-i-element>i</a></code>, <code><a href=#the-hr-element>hr</a></code>,
+ <code><a href=#the-s-element>s</a></code>, <code><a href=#the-small-element>small</a></code>, and <code><a href=#the-u-element>u</a></code>.</p>
+
+
+ <h4 id=syntax-errors><span class=secno>1.11.2 </span>Syntax errors</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The syntax of HTML is constrained to avoid a wide variety of
+ problems.</p>
+
+ <dl><dt>Unintuitive error-handling behavior</dt>
+
+ <dd>
+
+ <p>Certain invalid syntax constructs, when parsed, result in DOM
+ trees that are highly unintuitive.</p>
+
+ <div class=example>
+
+ <p>For example, the following markup fragment results in a DOM
+ with an <code><a href=#the-hr-element>hr</a></code> element that is an <em>earlier</em>
+ sibling of the corresponding <code><a href=#the-table-element>table</a></code> element:</p>
+
+ <pre class=bad>&lt;table&gt;&lt;hr&gt;...</pre>
+
+ </div>
+
+ </dd>
+
+
+ <dt>Errors with optional error recovery</dt>
+
+ <dd>
+
+ <p>To allow user agents to be used in controlled environments
+ without having to implement the more bizarre and convoluted error
+ handling rules, user agents are permitted to fail whenever
+ encountering a <a href=#parse-error>parse error</a>.</p>
+
+ </dd>
+
+
+ <dt>Errors where the error-handling behavior is not compatible with streaming user agents</dt>
+
+ <dd>
+
+ <p>Some error-handling behavior, such as the behavior for the
+ <code title="">&lt;table&gt;&lt;hr&gt;...</code> example mentioned
+ above, are incompatible with streaming user agents (user agents
+ that process HTML files in one pass, without storing state). To
+ avoid interoperability problems with such user agents, any syntax
+ resulting in such behavior is considered invalid.</p>
+
+ </dd>
+
+
+ <dt>Errors that can result in infoset coercion</dt>
+
+ <dd>
+
+ <p>When a user agent based on XML is connected to an HTML parser,
+ it is possible that certain invariants that XML enforces, such as
+ comments never containing two consecutive hyphens, will be
+ violated by an HTML file. Handling this can require that the
+ parser coerce the HTML DOM into an XML-compatible infoset. Most
+ syntax constructs that require such handling are considered
+ invalid.</p>
+
+ </dd>
+
+
+ <dt>Errors that result in disproportionally poor performance</dt>
+
+ <dd>
+
+ <p>Certain syntax constructs can result in disproportionally poor
+ performance. To discourage the use of such constructs, they are
+ typically made non-conforming.</p>
+
+ <div class=example>
+
+ <p>For example, the following markup results in poor performance,
+ since all the unclosed <code><a href=#the-i-element>i</a></code> elements have to be
+ reconstructed in each paragraph, resulting in progressively more
+ elements in each paragraph:</p>
+
+ <pre class=bad>&lt;p&gt;&lt;i&gt;He dreamt.
+&lt;p&gt;&lt;i&gt;He dreamt that he ate breakfast.
+&lt;p&gt;&lt;i&gt;Then lunch.
+&lt;p&gt;&lt;i&gt;And finally dinner.</pre>
+
+ <p>The resulting DOM for this fragment would be:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t3><code>#text</code>: <span title="">He dreamt.</span></ul></ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t3><code>#text</code>: <span title="">He dreamt that he ate breakfast.</span></ul></ul></ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t3><code>#text</code>: <span title="">Then lunch.</span></ul></ul></ul></ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t3><code>#text</code>: <span title="">And finally dinner.</span></ul></ul></ul></ul></ul></ul></div>
+
+ </dd>
+
+
+ <dt>Errors involving fragile syntax constructs</dt>
+
+ <dd>
+
+ <p>There are syntax constructs that, for historical reasons, are
+ relatively fragile. To help reduce the number of users who
+ accidentally run into such problems, they are made
+ non-conforming.</p>
+
+ <div class=example>
+
+ <p>For example, the parsing of certain named character references
+ in attributes happens even with the closing semicolon being
+ omitted. It is safe to include an ampersand followed by letters
+ that do not form a named character reference, but if the letters
+ are changed to a string that <em>does</em> form a named character
+ reference, they will be interpreted as that character instead.</p>
+
+ <p>In this fragment, the attribute's value is "<code title="">?bill&amp;ted</code>":</p>
+
+ <pre class=bad>&lt;a href="?bill&amp;ted"&gt;Bill and Ted&lt;/a&gt;</pre>
+
+ <p>In the following fragment, however, the attribute's value is
+ actually "<code title="">?art&copy;</code>", <em>not</em> the
+ intended "<code title="">?art&amp;copy</code>", because even
+ without the final semicolon, "<code title="">&amp;copy</code>" is
+ handled the same as "<code title="">&amp;copy;</code>" and thus
+ gets interpreted as "<code title="">&copy;</code>":</p>
+
+ <pre class=bad>&lt;a href="?art&amp;copy"&gt;Art and Copy&lt;/a&gt;</pre>
+
+ <p>To avoid this problem, all named character references are
+ required to end with a semicolon, and uses of named character
+ references without a semicolon are flagged as errors.</p>
+
+ <p>Thus, the correct way to express the above cases is as
+ follows:</p>
+
+ <pre>&lt;a href="?bill&amp;ted"&gt;Bill and Ted&lt;/a&gt; &lt;!-- &amp;ted is ok, since it's not a named character reference --&gt;</pre>
+ <pre>&lt;a href="?art&amp;amp;copy"&gt;Art and Copy&lt;/a&gt; &lt;!-- the &amp; has to be escaped, since &amp;copy <em>is</em> a named character reference --&gt;</pre>
+
+ </div>
+
+ </dd>
+
+
+ <dt>Errors involving known interoperability problems in legacy user agents</dt>
+
+ <dd>
+
+ <p>Certain syntax constructs are known to cause especially subtle
+ or serious problems in legacy user agents, and are therefore
+ marked as non-conforming to help authors avoid them.</p>
+
+ <div class=example>
+
+ <p>For example, this is why the U+0060 GRAVE ACCENT character (`)
+ is not allowed in unquoted attributes. In certain legacy user
+ agents, <!-- namely IE --> it is sometimes treated as a quote
+ character.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Another example of this is the DOCTYPE, which is required to
+ trigger <a href=#no-quirks-mode>no-quirks mode</a>, because the behavior of
+ legacy user agents in <a href=#quirks-mode>quirks mode</a> is often largely
+ undocumented.</p>
+
+ </div>
+
+ </dd>
+
+
+ <dt>Errors that risk exposing authors to security attacks</dt>
+
+ <dd>
+
+ <p>Certain restrictions exist purely to avoid known security
+ problems.</p>
+
+ <div class=example>
+
+ <p>For example, the restriction on using UTF-7 exists purely to
+ avoid authors falling prey to a known cross-site-scripting attack
+ using UTF-7.</p>
+
+ </div>
+
+ </dd>
+
+
+ <dt>Cases where the author's intent is unclear</dt>
+
+ <dd>
+
+ <p>Markup where the author's intent is very unclear is often made
+ non-conforming. Correcting these errors early makes later
+ maintenance easier.</p>
+
+ <div class=example>
+
+ <p>For example, it is unclear whether the author intended the
+ following to be an <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> heading or an <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>
+ heading:</p>
+
+ <pre class=bad>&lt;h1&gt;Contact details&lt;/h2&gt;</pre>
+
+ </div>
+
+ </dd>
+
+
+ <dt>Cases that are likely to be typos</dt>
+
+ <dd>
+
+ <p>When a user makes a simple typo, it is helpful if the error can
+ be caught early, as this can save the author a lot of debugging
+ time. This specification therefore usually considers it an error
+ to use element names, attribute names, and so forth, that do not
+ match the names defined in this specification.</p>
+
+ <div class=example>
+
+ <p>For example, if the author typed <code>&lt;capton&gt;</code>
+ instead of <code>&lt;caption&gt;</code>, this would be flagged as an
+ error and the author could correct the typo immediately.</p>
+
+ </div>
+
+ </dd>
+
+
+ <dt>Errors that could interfere with new syntax in the future</dt>
+
+ <dd>
+
+ <p>In order to allow the language syntax to be extended in the
+ future, certain otherwise harmless features are disallowed.</p>
+
+ <div class=example>
+
+ <p>For example, "attributes" in end tags are ignored currently,
+ but they are invalid, in case a future change to the language
+ makes use of that syntax feature without conflicting with
+ already-deployed (and valid!) content.</p>
+
+ </div>
+
+ </dd>
+
+
+ </dl><p>Some authors find it helpful to be in the practice of always
+ quoting all attributes and always including all optional tags,
+ preferring the consistency derived from such custom over the minor
+ benefits of terseness afforded by making use of the flexibility of
+ the HTML syntax. To aid such authors, conformance checkers can
+ provide modes of operation wherein such conventions are
+ enforced.</p>
+
+
+
+ <h4 id=restrictions-on-content-models-and-on-attribute-values><span class=secno>1.11.3 </span>Restrictions on content models and on attribute values</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Beyond the syntax of the language, this specification also places
+ restrictions on how elements and attributes can be specified. These
+ restrictions are present for similar reasons:</p>
+
+ <dl><dt>Errors involving content with dubious semantics</dt>
+
+ <dd>
+
+ <p>To avoid misuse of elements with defined meanings, content
+ models are defined that restrict how elements can be nested when
+ such nestings would be of dubious value.</p>
+
+ <p class=example>For example, this specification disallows
+ nesting a <code><a href=#the-section-element>section</a></code> element inside a <code><a href=#the-kbd-element>kbd</a></code>
+ element, since it is highly unlikely for an author to indicate
+ that an entire section should be keyed in.</p>
+
+ </dd>
+
+
+ <dt>Errors that involve a conflict in expressed semantics</dt>
+
+ <dd>
+
+ <p>Similarly, to draw the author's attention to mistakes in the
+ use of elements, clear contradictions in the semantics expressed
+ are also considered conformance errors.</p>
+
+ <div class=example>
+
+ <p>In the fragments below, for example, the semantics are
+ nonsensical: a separator cannot simultaneously be a cell, nor can
+ a radio button be a progress bar.</p>
+
+ <pre class=bad>&lt;hr role="cell"&gt;</pre>
+ <pre class=bad>&lt;input type=radio role=progressbar&gt;</pre>
+
+ </div>
+
+ <p class=example>Another example is the restrictions on the
+ content models of the <code><a href=#the-ul-element>ul</a></code> element, which only allows
+ <code><a href=#the-li-element>li</a></code> element children. Lists by definition consist just
+ of zero or more list items, so if a <code><a href=#the-ul-element>ul</a></code> element
+ contains something other than an <code><a href=#the-li-element>li</a></code> element, it's not
+ clear what was meant.</p>
+
+ </dd>
+
+
+ <dt>Cases where the default styles are likely to lead to confusion</dt>
+
+ <dd>
+
+ <p>Certain elements have default styles or behaviors that make
+ certain combinations likely to lead to confusion. Where these have
+ equivalent alternatives without this problem, the confusing
+ combinations are disallowed.</p>
+
+ <p class=example>For example, <code><a href=#the-div-element>div</a></code> elements are
+ rendered as block boxes, and <code><a href=#the-span-element>span</a></code> elements as inline
+ boxes. Putting a block box in an inline box is unnecessarily
+ confusing; since either nesting just <code><a href=#the-div-element>div</a></code> elements, or
+ nesting just <code><a href=#the-span-element>span</a></code> elements, or nesting
+ <code><a href=#the-span-element>span</a></code> elements inside <code><a href=#the-div-element>div</a></code> elements all
+ serve the same purpose as nesting a <code><a href=#the-div-element>div</a></code> element in a
+ <code><a href=#the-span-element>span</a></code> element, but only the latter involves a block
+ box in an inline box, the latter combination is disallowed.</p>
+
+ <p class=example>Another example would be the way
+ <a href=#interactive-content>interactive content</a> cannot be nested. For example, a
+ <code><a href=#the-button-element>button</a></code> element cannot contain a <code><a href=#the-textarea-element>textarea</a></code>
+ element. This is because the default behavior of such nesting
+ interactive elements would be highly confusing to users. Instead
+ of nesting these elements, they can be placed side by side.</p>
+
+ </dd>
+
+
+ <dt>Errors that indicate a likely misunderstanding of the specification</dt>
+
+ <dd>
+
+ <p>Sometimes, something is disallowed because allowing it would
+ likely cause author confusion.</p>
+
+ <p class=example>For example, setting the <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute to the value
+ "<code title="">false</code>" is disallowed, because despite the
+ appearance of meaning that the element is enabled, it in fact
+ means that the element is <em>disabled</em> (what matters for
+ implementations is the presence of the attribute, not its
+ value).</p>
+
+ </dd>
+
+
+ <dt>Errors involving limits that have been imposed merely to simplify the language</dt>
+
+ <dd>
+
+ <p>Some conformance errors simplify the language that authors need
+ to learn.</p>
+
+ <p class=example>For example, the <code><a href=#the-area-element>area</a></code> element's
+ <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code> attribute, despite
+ accepting both <code title=attr-area-shape-keyword-circ><a href=#attr-area-shape-keyword-circ>circ</a></code> and <code title=attr-area-shape-keyword-circle><a href=#attr-area-shape-keyword-circle>circle</a></code> values in
+ practice as synonyms, disallows the use of the <code title=attr-area-shape-keyword-circ><a href=#attr-area-shape-keyword-circ>circ</a></code> value, so as to
+ simplify tutorials and other learning aids. There would be no
+ benefit to allowing both, but it would cause extra confusion when
+ teaching the language.</p>
+
+ </dd>
+
+
+ <dt>Errors that involve peculiarities of the parser</dt>
+
+ <dd>
+
+ <p>Certain elements are parsed in somewhat eccentric ways
+ (typically for historical reasons), and their content model
+ restrictions are intended to avoid exposing the author to these
+ issues.</p>
+
+ <div class=example>
+
+ <p>For example, a <code><a href=#the-form-element>form</a></code> element isn't allowed inside
+ <a href=#phrasing-content>phrasing content</a>, because when parsed as HTML, a
+ <code><a href=#the-form-element>form</a></code> element's start tag will imply a <code><a href=#the-p-element>p</a></code>
+ element's end tag. Thus, the following markup results in two
+ <a href=#paragraph title=paragraph>paragraphs</a>, not one:</p>
+
+ <pre>&lt;p&gt;Welcome. &lt;form&gt;&lt;label&gt;Name:&lt;/label&gt; &lt;input&gt;&lt;/form&gt;</pre>
+
+ <p>It is parsed exactly like the following:</p>
+
+ <pre>&lt;p&gt;Welcome. &lt;/p&gt;&lt;form&gt;&lt;label&gt;Name:&lt;/label&gt; &lt;input&gt;&lt;/form&gt;</pre>
+
+ </div>
+
+ </dd>
+
+
+ <dt>Errors that would likely result in scripts failing in hard-to-debug ways</dt>
+
+ <dd>
+
+ <p>Some errors are intended to help prevent script problems that
+ would be hard to debug.</p>
+
+ <p class=example>This is why, for instance, it is non-conforming
+ to have two <code title=attr-id><a href=#the-id-attribute>id</a></code> attributes with the
+ same value. Duplicate IDs lead to the wrong element being
+ selected, with sometimes disastrous effects whose cause is hard to
+ determine.</p>
+
+ </dd>
+
+
+ <dt>Errors that waste authoring time</dt>
+
+ <dd>
+
+ <p>Some constructs are disallowed because historically they have
+ been the cause of a lot of wasted authoring time, and by
+ encouraging authors to avoid making them, authors can save time in
+ future efforts.</p>
+
+ <p class=example>For example, a <code><a href=#the-script-element>script</a></code> element's
+ <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute causes the
+ element's contents to be ignored. However, this isn't obvious,
+ especially if the element's contents appear to be executable
+ script &mdash; which can lead to authors spending a lot of time
+ trying to debug the inline script without realizing that it is not
+ executing. To reduce this problem, this specification makes it
+ non-conforming to have executable script in a <code><a href=#the-script-element>script</a></code>
+ element when the <code title=attr-script-src><a href=#attr-script-src>src</a></code>
+ attribute is present. This means that authors who are validating
+ their documents are less likely to waste time with this kind of
+ mistake.</p>
+
+ </dd>
+
+
+ <dt>Errors that involve areas that affect authors migrating to and from XHTML</dt>
+
+ <dd>
+
+ <p>Some authors like to write files that can be interpreted as
+ both XML and HTML with similar results. Though this practice is
+ discouraged in general due to the myriad of subtle complications
+ involved (especially when involving scripting, styling, or any
+ kind of automated serialization), this specification has a few
+ restrictions intended to at least somewhat mitigate the
+ difficulties. This makes it easier for authors to use this as a
+ transitionary step when migrating between HTML and XHTML.</p>
+
+ <p class=example>For example, there are somewhat complicated
+ rules surrounding the <code title=attr-lang><a href=#attr-lang>lang</a></code> and
+ <code title=attr-xml-lang><a href=#attr-xml-lang>xml:lang</a></code> attributes intended
+ to keep the two synchronized.</p>
+
+ <p class=example>Another example would be the restrictions on
+ the values of <code title="">xmlns</code> attributes in the HTML
+ serialization, which are intended to ensure that elements in
+ conforming documents end up in the same namespaces whether
+ processed as HTML or XML.</p>
+
+ </dd>
+
+
+ <dt>Errors that involve areas reserved for future expansion</dt>
+
+ <dd>
+
+ <p>As with the restrictions on the syntax intended to allow for
+ new syntax in future revisions of the language, some restrictions
+ on the content models of elements and values of attributes are
+ intended to allow for future expansion of the HTML vocabulary.</p>
+
+ <p class=example>For example, limiting the values of the <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute that start
+ with an U+005F LOW LINE character (_) to only specific predefined
+ values allows new predefined values to be introduced at a future
+ time without conflicting with author-defined values.</p>
+
+ </dd>
+
+
+ <dt>Errors that indicate a mis-use of other specifications</dt>
+
+ <dd>
+
+ <p>Certain restrictions are intended to support the restrictions
+ made by other specifications.</p>
+
+ <p class=example>For example, requiring that attributes that
+ take media queries use only <em>valid</em> media queries
+ reinforces the importance of following the conformance rules of
+ that specification.</p>
+
+ </dd>
+
+ </dl><h3 id=recommended-reading><span class=secno>1.12 </span>Recommended reading</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The following documents might be of interest to readers of this
+ specification.</p>
+
+ <dl><dt><cite>Character Model for the World Wide Web 1.0: Fundamentals</cite> <a href=#refsCHARMOD>[CHARMOD]</a></dt>
+
+ <dd><blockquote><p>This Architectural Specification provides
+ authors of specifications, software developers, and content
+ developers with a common reference for interoperable text
+ manipulation on the World Wide Web, building on the Universal
+ Character Set, defined jointly by the Unicode Standard and ISO/IEC
+ 10646. Topics addressed include use of the terms 'character',
+ 'encoding' and 'string', a reference processing model, choice and
+ identification of character encodings, character escaping, and
+ string indexing.</blockquote></dd>
+
+ <dt><cite>Unicode Security Considerations</cite> <a href=#refsUTR36>[UTR36]</a></dt>
+
+ <dd><blockquote><p>Because Unicode contains such a large number of
+ characters and incorporates the varied writing systems of the
+ world, incorrect usage can expose programs or systems to possible
+ security attacks. This is especially important as more and more
+ products are internationalized. This document describes some of the
+ security considerations that programmers, system analysts,
+ standards developers, and users should take into account, and
+ provides specific recommendations to reduce the risk of
+ problems.</blockquote></dd>
+
+ <dt><cite>Web Content Accessibility Guidelines (WCAG) 2.0</cite> <a href=#refsWCAG>[WCAG]</a></dt>
+
+ <dd><blockquote><p>Web Content Accessibility Guidelines (WCAG) 2.0
+ covers a wide range of recommendations for making Web content more
+ accessible. Following these guidelines will make content accessible
+ to a wider range of people with disabilities, including blindness
+ and low vision, deafness and hearing loss, learning disabilities,
+ cognitive limitations, limited movement, speech disabilities,
+ photosensitivity and combinations of these. Following these
+ guidelines will also often make your Web content more usable to
+ users in general.</blockquote></dd>
+
+ <dt class=impl><cite>Authoring Tool Accessibility Guidelines (ATAG) 2.0</cite> <a href=#refsATAG>[ATAG]</a></dt>
+
+ <dd class=impl><blockquote><p>This specification provides
+ guidelines for designing Web content authoring tools that are more
+ accessible for people with disabilities. An authoring tool that
+ conforms to these guidelines will promote accessibility by
+ providing an accessible user interface to authors with disabilities
+ as well as by enabling, supporting, and promoting the production of
+ accessible Web content by all authors.</blockquote></dd>
+
+ <dt class=impl><cite>User Agent Accessibility Guidelines (UAAG) 2.0</cite> <a href=#refsUAAG>[UAAG]</a></dt>
+
+ <dd class=impl><blockquote><p>This document provides guidelines
+ for designing user agents that lower barriers to Web accessibility
+ for people with disabilities. User agents include browsers and
+ other types of software that retrieve and render Web content. A
+ user agent that conforms to these guidelines will promote
+ accessibility through its own user interface and through other
+ internal facilities, including its ability to communicate with
+ other technologies (especially assistive
+ technologies). Furthermore, all users, not just users with
+ disabilities, should find conforming user agents to be more
+ usable.</blockquote></dd>
+
+ <dt><cite>Polyglot Markup: HTML-Compatible XHTML Documents</cite> <a href=#refsPOLYGLOT>[POLYGLOT]</a></dt>
+
+ <dd><blockquote><p>A document that uses polyglot markup is a document
+ that is a stream of bytes that parses into identical document trees
+ (with the exception of the xmlns attribute on the root element)
+ when processed as HTML and when processed as XML. Polyglot markup
+ that meets a well defined set of constraints is interpreted as
+ compatible, regardless of whether they are processed as HTML or as
+ XHTML, per the HTML5 specification. Polyglot markup uses a specific
+ DOCTYPE, namespace declarations, and a specific case &mdash;
+ normally lower case but occasionally camel case &mdash; for element
+ and attribute names. Polyglot markup uses lower case for certain
+ attribute values. Further constraints include those on empty
+ elements, named entity references, and the use of scripts and
+ style.</blockquote></dd>
+
+<!--(the following is not included in the WHATWG spec for quality reasons)-->
+
+ </dl><h2 id=infrastructure><span class=secno>2 </span>Common infrastructure</h2>
+
+ <h3 id=terminology><span class=secno>2.1 </span>Terminology</h3>
+
+ <p>This specification refers to both HTML and XML attributes and IDL
+ attributes, often in the same context. When it is not clear which is
+ being referred to, they are referred to as <dfn title="">content
+ attributes</dfn> for HTML and XML attributes, and <dfn title="">IDL
+ attributes</dfn> for those defined on IDL interfaces. Similarly, the
+ term "properties" is used for both JavaScript object properties and
+ CSS properties. When these are ambiguous they are qualified as <dfn title="">object properties</dfn> and <dfn title="">CSS
+ properties</dfn> respectively.</p>
+
+ <p>Generally, when the specification states that a feature applies
+ to <a href=#syntax>the HTML syntax</a> or <a href=#the-xhtml-syntax>the XHTML syntax</a>, it
+ also includes the other. When a feature specifically only applies to
+ one of the two languages, it is called out by explicitly stating
+ that it does not apply to the other format, as in "for HTML,
+ ... (this does not apply to XHTML)".</p>
+
+ <p>This specification uses the term <dfn title="">document</dfn> to
+ refer to any use of HTML, ranging from short static documents to
+ long essays or reports with rich multimedia, as well as to
+ fully-fledged interactive applications.</p>
+
+ <p>For simplicity, terms such as <dfn title="">shown</dfn>, <dfn title="">displayed</dfn>, and <dfn title="">visible</dfn> might
+ sometimes be used when referring to the way a document is rendered
+ to the user. These terms are not meant to imply a visual medium;
+ they must be considered to apply to other media in equivalent
+ ways.</p>
+
+ <div class=impl>
+
+ <p>When an algorithm B says to return to another algorithm A, it
+ implies that A called B. Upon returning to A, the implementation
+ must continue from where it left off in calling B.</p>
+
+ </div>
+
+ <!-- should find somewhere more appropriate to put this -->
+ <p>The term "transparent black" refers to the color with red, green,
+ blue, and alpha channels all set to zero.</p>
+
+
+ <h4 id=resources><span class=secno>2.1.1 </span>Resources</h4>
+
+ <p>The specification uses the term <dfn title="">supported</dfn>
+ when referring to whether a user agent has an implementation capable
+ of decoding the semantics of an external resource. A format or type
+ is said to be <i>supported</i> if the implementation can process an
+ external resource of that format or type without critical aspects of
+ the resource being ignored. Whether a specific resource is
+ <i>supported</i> can depend on what features of the resource's
+ format are in use.</p>
+
+ <p class=example>For example, a PNG image would be considered to
+ be in a supported format if its pixel data could be decoded and
+ rendered, even if, unbeknownst to the implementation, the image also
+ contained animation data.</p>
+
+ <p class=example>A MPEG4 video file would not be considered to be
+ in a supported format if the compression format used was not
+ supported, even if the implementation could determine the dimensions
+ of the movie from the file's metadata.</p>
+
+ <p>What some specifications, in particular the HTTP and URI
+ specifications, refer to as a <i>representation</i> is referred to
+ in this specification as a <dfn title="">resource</dfn>. <a href=#refsHTTP>[HTTP]</a> <a href=#refsRFC3986>[RFC3986]</a></p>
+
+ <p>The term <dfn id=mime-type>MIME type</dfn> is used to refer to what is
+ sometimes called an <i>Internet media type</i> in protocol
+ literature. The term <i>media type</i> in this specification is used
+ to refer to the type of media intended for presentation, as used by
+ the CSS specifications. <a href=#refsRFC2046>[RFC2046]</a> <a href=#refsMQ>[MQ]</a></p>
+
+ <p>A string is a <dfn id=valid-mime-type>valid MIME type</dfn> if it matches the <code title="">media-type</code> rule defined in section 3.7 "Media Types"
+ of RFC 2616. In particular, a <a href=#valid-mime-type>valid MIME type</a> may
+ include MIME type parameters. <a href=#refsHTTP>[HTTP]</a></p>
+
+ <p>A string is a <dfn id=valid-mime-type-with-no-parameters>valid MIME type with no parameters</dfn> if it
+ matches the <code title="">media-type</code> rule defined in section
+ 3.7 "Media Types" of RFC 2616, but does not contain any U+003B
+ SEMICOLON characters (;). In other words, if it consists only of a
+ type and subtype, with no MIME Type parameters. <a href=#refsHTTP>[HTTP]</a></p>
+
+ <p>The term <dfn id=html-mime-type>HTML MIME type</dfn> is used to refer to the <a href=#mime-type title="MIME type">MIME types</a> <code><a href=#text/html>text/html</a></code> and
+ <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>.</p>
+
+ <p>A resource's <dfn id=critical-subresources>critical subresources</dfn> are those that the
+ resource needs to have available to be correctly processed. Which
+ resources are considered critical or not is defined by the
+ specification that defines the resource's format. For CSS resources,
+ only <code title="">@import</code> rules introduce <a href=#critical-subresources>critical
+ subresources</a>; other resources, e.g. fonts or backgrounds, are
+ not.</p>
+
+ <p>The term <dfn id=data-protocol title="data protocol"><code title="">data:</code>
+ URL</dfn> refers to <a href=#url title=URL>URLs</a> that use the <code title="">data:</code> scheme. <a href=#refsRFC2397>[RFC2397]</a></p>
+
+
+ <h4 id=xml><span class=secno>2.1.2 </span>XML</h4>
+
+ <p id=html-namespace>To ease migration from HTML to XHTML, UAs
+ conforming to this specification will place elements in HTML in the
+ <code>http://www.w3.org/1999/xhtml</code> namespace, at least for
+ the purposes of the DOM and CSS. The term "<dfn id=html-elements>HTML
+ elements</dfn>", when used in this specification, refers to any
+ element in that namespace, and thus refers to both HTML and XHTML
+ elements.</p>
+
+ <p>Except where otherwise stated, all elements defined or mentioned
+ in this specification are in the <a href=#html-namespace-0>HTML namespace</a>
+ ("<code>http://www.w3.org/1999/xhtml</code>"), and all attributes
+ defined or mentioned in this specification have no namespace.</p>
+
+ <p>The term <dfn id=element-type>element type</dfn> is used to refer to the class of
+ elements have a given local name and namespace. For example,
+ <code><a href=#the-button-element>button</a></code> elements are elements with the element type
+ <code><a href=#the-button-element>button</a></code>, meaning they have the local name "<code title="">button</code>" and (implicitly as defined above) the
+ <a href=#html-namespace-0>HTML namespace</a>.</p>
+
+ <p>Attribute names are said to be <dfn id=xml-compatible>XML-compatible</dfn> if they
+ match the <a href=http://www.w3.org/TR/REC-xml/#NT-Name><code title="">Name</code></a> production defined in XML, they contain no
+ U+003A COLON characters (:), and their first three characters are
+ not an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string
+ "<code title="">xml</code>". <a href=#refsXML>[XML]</a></p>
+
+ <p>The term <dfn id=xml-mime-type>XML MIME type</dfn> is used to refer to the <a href=#mime-type title="MIME type">MIME types</a> <code title="">text/xml</code>,
+ <code title="">application/xml</code>, and any <a href=#mime-type>MIME
+ type</a> whose subtype ends with the four characters "<code title="">+xml</code>". <a href=#refsRFC3023>[RFC3023]</a></p>
+
+
+ <h4 id=dom-trees><span class=secno>2.1.3 </span>DOM trees</h4>
+
+ <p>The <dfn id=root-element-of-a-document-object>root element of a <code>Document</code> object</dfn> is
+ that <code><a href=#document>Document</a></code>'s first element child, if any. If it does
+ not have one then the <code><a href=#document>Document</a></code> has no root element.</p>
+
+ <p>The term <dfn id=root-element>root element</dfn>, when not referring to a
+ <code><a href=#document>Document</a></code> object's root element, means the furthest
+ ancestor element node of whatever node is being discussed, or the
+ node itself if it has no ancestors. When the node is a part of the
+ document, then the node's <a href=#root-element>root element</a> is indeed the
+ document's root element; however, if the node is not currently part
+ of the document tree, the root element will be an orphaned node.</p>
+
+ <p>When an element's <a href=#root-element>root element</a> is the <a href=#root-element-of-a-document-object>root
+ element of a <code>Document</code> object</a>, it is said to be
+ <dfn id=in-a-document>in a <code>Document</code></dfn>. An element is said to have
+ been <dfn id=insert-an-element-into-a-document title="insert an element into a document">inserted into a
+ document</dfn> when its <a href=#root-element>root element</a> changes and is now
+ the document's <a href=#root-element>root element</a>. Analogously, an element is
+ said to have been <dfn id=remove-an-element-from-a-document title="remove an element from a
+ document">removed from a document</dfn> when its <a href=#root-element>root
+ element</a> changes from being the document's <a href=#root-element>root
+ element</a> to being another element.</p>
+
+ <p>A node's <dfn id=home-subtree>home subtree</dfn> is the subtree rooted at that
+ node's <a href=#root-element>root element</a>. When a node is <a href=#in-a-document>in a
+ <code>Document</code></a>, its <a href=#home-subtree>home subtree</a> is that
+ <code><a href=#document>Document</a></code>'s tree.</p>
+
+ <p>The <code><a href=#document>Document</a></code> of a <code><a href=#node>Node</a></code> (such as an
+ element) is the <code><a href=#document>Document</a></code> that the <code><a href=#node>Node</a></code>'s
+ <code title=dom-Node-ownerDocument><a href=#dom-node-ownerdocument>ownerDocument</a></code> IDL
+ attribute returns. When a <code><a href=#node>Node</a></code> is <a href=#in-a-document>in a
+ <code>Document</code></a> then that <code><a href=#document>Document</a></code> is
+ always the <code><a href=#node>Node</a></code>'s <code><a href=#document>Document</a></code>, and the
+ <code><a href=#node>Node</a></code>'s <code title=dom-Node-ownerDocument><a href=#dom-node-ownerdocument>ownerDocument</a></code> IDL attribute
+ thus always returns that <code><a href=#document>Document</a></code>.</p>
+
+ <p>The <code><a href=#document>Document</a></code> of a content attribute is the
+ <code><a href=#document>Document</a></code> of the attribute's element.</p>
+
+ <p>The term <dfn id=tree-order>tree order</dfn> means a pre-order, depth-first
+ traversal of DOM nodes involved (through the <code title=dom-Node-parentNode><a href=#dom-node-parentnode>parentNode</a></code>/<code title=dom-Node-childNodes><a href=#dom-node-childnodes>childNodes</a></code> relationship).</p>
+
+ <p>When it is stated that some element or attribute is <dfn id=ignore title=ignore>ignored</dfn>, or treated as some other value, or
+ handled as if it was something else, this refers only to the
+ processing of the node after it is in the DOM. <span class=impl>A
+ user agent must not mutate the DOM in such situations.</span></p>
+
+ <p>The term <dfn id=text-node>text node</dfn> refers to any <code><a href=#text>Text</a></code>
+ node, including <code><a href=#cdatasection>CDATASection</a></code> nodes; specifically, any
+ <code><a href=#node>Node</a></code> with node type <code title="">TEXT_NODE</code> (3)
+ or <code title="">CDATA_SECTION_NODE</code> (4). <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+ <p>A content attribute is said to <dfn title="">change</dfn> value
+ only if its new value is different than its previous value; setting
+ an attribute to a value it already has does not change it.</p>
+
+ <p>The term <dfn title="">empty</dfn>, when used of an attribute
+ value, text node, or string, means that the length of the text is
+ zero (i.e. not even containing spaces or control characters).</p>
+
+
+ <h4 id=scripting-0><span class=secno>2.1.4 </span>Scripting</h4>
+
+ <p>The construction "a <code>Foo</code> object", where
+ <code>Foo</code> is actually an interface, is sometimes used instead
+ of the more accurate "an object implementing the interface
+ <code>Foo</code>".</p>
+
+ <p>An IDL attribute is said to be <dfn title="">getting</dfn> when
+ its value is being retrieved (e.g. by author script), and is said to
+ be <dfn title="">setting</dfn> when a new value is assigned to
+ it.</p>
+
+ <p>If a DOM object is said to be <dfn id=live>live</dfn>, then the
+ attributes and methods on that object <span class=impl>must</span>
+ operate on the actual underlying data, not a snapshot of the
+ data.</p>
+
+ <p>In the contexts of events, the terms <dfn title="">fire</dfn> and
+ <dfn id=concept-event-dispatch title=concept-event-dispatch>dispatch</dfn> are used as
+ defined in the DOM Core specification: firing an event means to
+ create and dispatch it, and dispatching an event means to follow the
+ steps that propagate the event through the tree. The term <dfn id=concept-events-trusted title=concept-events-trusted>trusted event</dfn> is used to refer
+ to events that have the <span>trusted flag</span> set. <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+
+ <h4 id=plugins><span class=secno>2.1.5 </span>Plugins</h4>
+
+ <p>The term <dfn id=plugin>plugin</dfn> refers to a user-agent defined set of
+ content handlers used by the user agent that can take part in the
+ user agent's rendering of a <code><a href=#document>Document</a></code> object, but that
+ neither act as <a href=#child-browsing-context title="child browsing context">child browsing
+ contexts</a> of the <code><a href=#document>Document</a></code> nor introduce any
+ <code><a href=#node>Node</a></code> objects to the <code><a href=#document>Document</a></code>'s DOM.</p>
+
+ <p>Typically such content handlers are provided by third parties,
+ though a user agent can also designate built-in content handlers as
+ plugins.</p>
+
+ <div class=impl>
+
+ <p>A user agent must not consider the types <code>text/plain</code>
+ and <code>application/octet-stream</code> as having a registered
+ <a href=#plugin>plugin</a>.</p> <!-- because of the way <object> handles
+ those types, if nothing else (it also doesn't make any sense to have
+ a plugin registered for those types, of course) -->
+
+ </div>
+
+ <p class=example>One example of a plugin would be a PDF viewer
+ that is instantiated in a <a href=#browsing-context>browsing context</a> when the
+ user navigates to a PDF file. This would count as a plugin
+ regardless of whether the party that implemented the PDF viewer
+ component was the same as that which implemented the user agent
+ itself. However, a PDF viewer application that launches separate
+ from the user agent (as opposed to using the same interface) is not
+ a plugin by this definition.</p>
+
+ <p class=note>This specification does not define a mechanism for
+ interacting with plugins, as it is expected to be user-agent- and
+ platform-specific. Some UAs might opt to support a plugin mechanism
+ such as the Netscape Plugin API; others might use remote content
+ converters or have built-in support for certain types. Indeed, this
+ specification doesn't require user agents to support plugins at all.
+ <a href=#refsNPAPI>[NPAPI]</a></p>
+
+ <p>A plugin can be <dfn id=concept-plugin-secure title=concept-plugin-secure>secured</dfn>
+ if it honors the semantics of the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute.</p>
+
+ <p class=example>For example, a secured plugin would prevent its
+ contents from creating pop-up windows when the plugin is
+ instantiated inside a sandboxed <code><a href=#the-iframe-element>iframe</a></code>.</p>
+
+ <div class=impl>
+
+ <p class=warning>Browsers should take extreme care when
+ interacting with external content intended for <a href=#plugin title=plugin>plugins</a>. When third-party software is run with
+ the same privileges as the user agent itself, vulnerabilities in the
+ third-party software become as dangerous as those in the user
+ agent.</p>
+
+ </div>
+
+
+ <h4 id=character-encodings><span class=secno>2.1.6 </span>Character encodings</h4>
+
+ <p>The <dfn id=preferred-mime-name>preferred MIME name</dfn> of a character encoding is the
+ name or alias labeled as "preferred MIME name" in the IANA
+ <cite>Character Sets</cite> registry, if there is one, or the
+ encoding's name, if none of the aliases are so labeled. <a href=#refsIANACHARSET>[IANACHARSET]</a></p>
+
+ <p>An <dfn id=ascii-compatible-character-encoding>ASCII-compatible character encoding</dfn> is a
+ single-byte or variable-length encoding in which the bytes 0x09,
+ 0x0A, 0x0C, 0x0D, 0x20 - 0x22, 0x26, 0x27, 0x2C - 0x3F, 0x41 - 0x5A,
+ and 0x61 - 0x7A<!-- is that list ok? do any character sets we want
+ to support do things outside that range? -->, ignoring bytes that
+ are the second and later bytes of multibyte sequences, all
+ correspond to single-byte sequences that map to the same Unicode
+ characters as those bytes in ANSI_X3.4-1968 (US-ASCII). <a href=#refsRFC1345>[RFC1345]</a></p>
+
+ <p class=note>This includes such encodings as Shift_JIS,
+ HZ-GB-2312, and variants of ISO-2022, even though it is possible in
+ these encodings for bytes like 0x70 to be part of longer sequences
+ that are unrelated to their interpretation as ASCII. It excludes
+ such encodings as UTF-7, UTF-16, GSM03.38, and EBCDIC variants.</p>
+
+ <!--
+ We'll have to change that if anyone comes up with a way to have a
+ document that is valid as two different encodings at once, with
+ different <meta charset> elements applying in each case.
+ -->
+
+ <p>The term <dfn id=a-utf-16-encoding>a UTF-16 encoding</dfn> refers to any variant of
+ UTF-16: self-describing UTF-16 with a BOM, ambiguous UTF-16 without
+ a BOM, raw UTF-16LE, and raw UTF-16BE. <a href=#refsRFC2781>[RFC2781]</a></p>
+
+ <p>The term <dfn id=unicode-character>Unicode character</dfn> is used to mean a <i title="">Unicode scalar value</i> (i.e. any Unicode code point that
+ is not a surrogate code point). <a href=#refsUNICODE>[UNICODE]</a></p>
+
+
+
+
+
+
+ <h3 id=conformance-requirements><span class=secno>2.2 </span>Conformance requirements</h3>
+
+ <p>All diagrams, examples, and notes in this specification are
+ non-normative, as are all sections explicitly marked non-normative.
+ Everything else in this specification is normative.</p>
+
+ <p>The key words "MUST", "MUST NOT", "REQUIRED", <!--"SHALL", "SHALL
+ NOT",--> "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
+ "OPTIONAL" in the normative parts of this document are to be
+ interpreted as described in RFC2119. For readability, these words do
+ not appear in all uppercase letters in this specification. <a href=#refsRFC2119>[RFC2119]</a></p>
+
+ <div class=impl>
+
+ <p>Requirements phrased in the imperative as part of algorithms
+ (such as "strip any leading space characters" or "return false and
+ abort these steps") are to be interpreted with the meaning of the
+ key word ("must", "should", "may", etc) used in introducing the
+ algorithm.</p>
+
+ <div class=example>
+
+ <p>For example, were the spec to say:</p>
+
+ <pre>To eat a kiwi, the user must:
+1. Peel the kiwi.
+2. Eat the kiwi flesh.</pre>
+
+ <p>...it would be equivalent to the following:</p>
+
+ <pre>To eat a kiwi:
+1. The user must peel the kiwi.
+2. The user must eat the kiwi flesh.</pre>
+
+ <p>Here the key word is "must".</p>
+
+ <p>The former (imperative) style is generally preferred in this
+ specification for stylistic reasons.</p>
+
+ </div>
+
+ <p>Conformance requirements phrased as algorithms or specific steps
+ may be implemented in any manner, so long as the end result is
+ equivalent. (In particular, the algorithms defined in this
+ specification are intended to be easy to follow, and not intended to
+ be performant.)</p>
+
+ </div>
+
+
+
+
+
+ <div class=impl>
+
+ <h4 id=conformance-classes><span class=secno>2.2.1 </span>Conformance classes</h4>
+
+ <p>This specification describes the conformance criteria for <span class=impl>user agents (relevant to implementors) and</span>
+ documents<span class=impl> (relevant to authors and authoring tool
+ implementors)</span>.</p>
+
+ <p><dfn id=conforming-documents>Conforming
+ documents</dfn> are those that comply with all
+ the conformance criteria for documents. For readability, some of
+ these conformance requirements are phrased as conformance
+ requirements on authors; such requirements are implicitly
+ requirements on documents: by definition, all documents are assumed
+ to have had an author. (In some cases, that author may itself be a
+ user agent &mdash; such user agents are subject to additional rules,
+ as explained below.)</p>
+
+ <p class=example>For example, if a requirement states that
+ "authors must not use the <code title="">foobar</code> element", it
+ would imply that documents are not allowed to contain elements named
+ <code title="">foobar</code>.</p>
+
+ <p class="note impl">There is no implied relationship between
+ document conformance requirements and implementation conformance
+ requirements. User agents are not free to handle non-conformant
+ documents as they please; the processing model described in this
+ specification applies to implementations regardless of the
+ conformity of the input documents.</p>
+
+ <p>User agents fall into several (overlapping) categories with
+ different conformance requirements.</p>
+
+ <dl><dt id=interactive>Web browsers and other interactive user agents</dt>
+
+ <dd>
+
+ <p>Web browsers that support <a href=#the-xhtml-syntax>the XHTML syntax</a> must
+ process elements and attributes from the <a href=#html-namespace-0>HTML
+ namespace</a> found in XML documents as described in this
+ specification, so that users can interact with them, unless the
+ semantics of those elements have been overridden by other
+ specifications.</p>
+
+ <p class=example>A conforming XHTML processor would, upon
+ finding an XHTML <code><a href=#the-script-element>script</a></code> element in an XML document,
+ execute the script contained in that element. However, if the
+ element is found within a transformation expressed in XSLT
+ (assuming the user agent also supports XSLT), then the processor
+ would instead treat the <code><a href=#the-script-element>script</a></code> element as an opaque
+ element that forms part of the transform.</p>
+
+ <p>Web browsers that support <a href=#syntax>the HTML syntax</a> must
+ process documents labeled with an <a href=#html-mime-type>HTML MIME type</a> as
+ described in this specification, so that users can interact with
+ them.</p>
+
+ <p>User agents that support scripting must also be conforming
+ implementations of the IDL fragments in this specification, as
+ described in the Web IDL specification. <a href=#refsWEBIDL>[WEBIDL]</a></p>
+
+ <p class=note>Unless explicitly stated, specifications that
+ override the semantics of HTML elements do not override the
+ requirements on DOM objects representing those elements. For
+ example, the <code><a href=#the-script-element>script</a></code> element in the example above
+ would still implement the <code><a href=#htmlscriptelement>HTMLScriptElement</a></code>
+ interface.</p>
+
+ </dd>
+
+ <dt id=non-interactive>Non-interactive presentation user agents</dt>
+
+ <dd>
+
+ <p>User agents that process HTML and XHTML documents purely to
+ render non-interactive versions of them must comply to the same
+ conformance criteria as Web browsers, except that they are exempt
+ from requirements regarding user interaction.</p>
+
+ <p class=note>Typical examples of non-interactive presentation
+ user agents are printers (static UAs) and overhead displays
+ (dynamic UAs). It is expected that most static non-interactive
+ presentation user agents will also opt to <a href=#non-scripted>lack scripting support</a>.</p>
+
+ <p class=example>A non-interactive but dynamic presentation UA
+ would still execute scripts, allowing forms to be dynamically
+ submitted, and so forth. However, since the concept of "focus" is
+ irrelevant when the user cannot interact with the document, the UA
+ would not need to support any of the focus-related DOM APIs.</p>
+
+ </dd>
+
+ <dt id=renderingUA>Visual user agents that support the suggested default rendering</dt>
+
+ <dd>
+
+ <p>User agents, whether interactive or not, may be designated
+ (possibly as a user option) as supporting the suggested default
+ rendering defined by this specification.</p>
+
+ <p>This is not required. In particular, even user agents that do
+ implement the suggested default rendering are encouraged to offer
+ settings that override this default to improve the experience for
+ the user, e.g. changing the color contrast, using different focus
+ styles, or otherwise making the experience more accessible and
+ usable to the user.</p>
+
+ <p>User agents that are designated as supporting the suggested
+ default rendering must, while so designated, implement the rules
+ in <a href=#rendering>the rendering section</a> that that
+ section defines as the behavior that user agents are
+ <em>expected</em> to implement.</p>
+
+ </dd>
+
+ <dt id=non-scripted>User agents with no scripting support</dt>
+
+ <dd>
+
+ <p>Implementations that do not support scripting (or which have
+ their scripting features disabled entirely) are exempt from
+ supporting the events and DOM interfaces mentioned in this
+ specification. For the parts of this specification that are
+ defined in terms of an events model or in terms of the DOM, such
+ user agents must still act as if events and the DOM were
+ supported.</p>
+
+ <p class=note>Scripting can form an integral part of an
+ application. Web browsers that do not support scripting, or that
+ have scripting disabled, might be unable to fully convey the
+ author's intent.</p>
+
+ </dd>
+
+
+ <dt>Conformance checkers</dt>
+
+ <dd id=conformance-checkers>
+
+ <p>Conformance checkers must verify that a document conforms to
+ the applicable conformance criteria described in this
+ specification. Automated conformance checkers are exempt from
+ detecting errors that require interpretation of the author's
+ intent (for example, while a document is non-conforming if the
+ content of a <code><a href=#the-blockquote-element>blockquote</a></code> element is not a quote,
+ conformance checkers running without the input of human judgement
+ do not have to check that <code><a href=#the-blockquote-element>blockquote</a></code> elements only
+ contain quoted material).</p>
+
+ <p>Conformance checkers must check that the input document
+ conforms when parsed without a <a href=#browsing-context>browsing context</a>
+ (meaning that no scripts are run, and that the parser's
+ <a href=#scripting-flag>scripting flag</a> is disabled), and should also check
+ that the input document conforms when parsed with a <a href=#browsing-context>browsing
+ context</a> in which scripts execute, and that the scripts
+ never cause non-conforming states to occur other than transiently
+ during script execution itself. (This is only a "SHOULD" and not a
+ "MUST" requirement because it has been proven to be impossible. <a href=#refsCOMPUTABLE>[COMPUTABLE]</a>)</p>
+
+ <p>The term "HTML validator" can be used to refer to a
+ conformance checker that itself conforms to the applicable
+ requirements of this specification.</p>
+ <!--VERSION-->
+
+ <div class=note>
+
+ <p>XML DTDs cannot express all the conformance requirements of
+ this specification. Therefore, a validating XML processor and a
+ DTD cannot constitute a conformance checker. Also, since neither
+ of the two authoring formats defined in this specification are
+ applications of SGML, a validating SGML system cannot constitute
+ a conformance checker either.</p>
+
+ <p>To put it another way, there are three types of conformance
+ criteria:</p>
+
+ <ol><li>Criteria that can be expressed in a DTD.</li>
+
+ <li>Criteria that cannot be expressed by a DTD, but can still be
+ checked by a machine.</li>
+
+ <li>Criteria that can only be checked by a human.</li>
+
+ </ol><p>A conformance checker must check for the first two. A simple
+ DTD-based validator only checks for the first class of errors and
+ is therefore not a conforming conformance checker according to
+ this specification.</p>
+
+ </div>
+ </dd>
+
+
+ <dt>Data mining tools</dt>
+
+ <dd id=data-mining>
+
+ <p>Applications and tools that process HTML and XHTML documents
+ for reasons other than to either render the documents or check
+ them for conformance should act in accordance with the semantics
+ of the documents that they process.</p>
+
+ <p class=example>A tool that generates <a href=#outline title=outline>document outlines</a> but increases the nesting
+ level for each paragraph and does not increase the nesting level
+ for each section would not be conforming.</p>
+
+ </dd>
+
+
+ <dt id=editors>Authoring tools and markup generators</dt>
+
+ <dd>
+
+ <p>Authoring tools and markup generators must generate
+ <a href=#conforming-documents>conforming
+ documents</a>. Conformance criteria that apply to authors also
+ apply to authoring tools, where appropriate.</p>
+
+ <p>Authoring tools are exempt from the strict requirements of
+ using elements only for their specified purpose, but only to the
+ extent that authoring tools are not yet able to determine author
+ intent. However, authoring tools must not automatically misuse
+ elements or encourage their users to do so.</p>
+
+ <p class=example>For example, it is not conforming to use an
+ <code><a href=#the-address-element>address</a></code> element for arbitrary contact information;
+ that element can only be used for marking up contact information
+ for the author of the document or section. However, since an
+ authoring tool is likely unable to determine the difference, an
+ authoring tool is exempt from that requirement. This does not
+ mean, though, that authoring tools can use <code><a href=#the-address-element>address</a></code>
+ elements for any block of italics text (for instance); it just
+ means that the authoring tool doesn't have to verify that when the
+ user uses a tool for inserting contact information for a section,
+ that the user really is doing that and not inserting something
+ else instead.</p>
+
+ <p class=note>In terms of conformance checking, an editor has to
+ output documents that conform to the same extent that a
+ conformance checker will verify.</p>
+
+ <p>When an authoring tool is used to edit a non-conforming
+ document, it may preserve the conformance errors in sections of
+ the document that were not edited during the editing session
+ (i.e. an editing tool is allowed to round-trip erroneous
+ content). However, an authoring tool must not claim that the
+ output is conformant if errors have been so preserved.</p>
+
+ <p>Authoring tools are expected to come in two broad varieties:
+ tools that work from structure or semantic data, and tools that
+ work on a What-You-See-Is-What-You-Get media-specific editing
+ basis (WYSIWYG).</p>
+
+ <p>The former is the preferred mechanism for tools that author
+ HTML, since the structure in the source information can be used to
+ make informed choices regarding which HTML elements and attributes
+ are most appropriate.</p>
+
+ <p>However, WYSIWYG tools are legitimate. WYSIWYG tools should use
+ elements they know are appropriate, and should not use elements
+ that they do not know to be appropriate. This might in certain
+ extreme cases mean limiting the use of flow elements to just a few
+ elements, like <code><a href=#the-div-element>div</a></code>, <code><a href=#the-b-element>b</a></code>, <code><a href=#the-i-element>i</a></code>,
+ and <code><a href=#the-span-element>span</a></code> and making liberal use of the <code title=attr-style><a href=#the-style-attribute>style</a></code> attribute.</p>
+
+ <p>All authoring tools, whether WYSIWYG or not, should make a best
+ effort attempt at enabling users to create well-structured,
+ semantically rich, media-independent content.</p>
+
+ </dd>
+
+ </dl><p id=hardwareLimitations>User agents may impose
+ implementation-specific limits on otherwise unconstrained inputs,
+ e.g. to prevent denial of service attacks, to guard against running
+ out of memory, or to work around platform-specific limitations.</p>
+
+ <p>For compatibility with existing content and prior specifications,
+ this specification describes two authoring formats: one based on XML
+ (referred to as <a href=#the-xhtml-syntax>the XHTML syntax</a>), and one using a <a href=#writing>custom format</a> inspired by SGML (referred to as
+ <a href=#syntax>the HTML syntax</a>). Implementations must support at least
+ one of these two formats, although supporting both is
+ encouraged.</p>
+
+ <p id=entity-references>The language in this specification assumes
+ that the user agent expands all entity references, and therefore
+ does not include entity reference nodes in the DOM. If user agents
+ do include entity reference nodes in the DOM, then user agents must
+ handle them as if they were fully expanded when implementing this
+ specification. For example, if a requirement talks about an
+ element's child text nodes, then any text nodes that are children of
+ an entity reference that is a child of that element would be used as
+ well. Entity references to unknown entities must be treated as if
+ they contained just an empty text node for the purposes of the
+ algorithms defined in this specification.</p>
+
+ <p>Some conformance requirements are phrased as requirements on
+ elements, attributes, methods or objects. Such requirements fall
+ into two categories: those describing content model restrictions,
+ and those describing implementation behavior. Those in the former
+ category are requirements on documents and authoring tools. Those in
+ the second category are requirements on user agents. Similarly, some
+ conformance requirements are phrased as requirements on authors;
+ such requirements are to be interpreted as conformance requirements
+ on the documents that authors produce. (In other words, this
+ specification does not distinguish between conformance criteria on
+ authors and conformance criteria on documents.)</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=dependencies><span class=secno>2.2.2 </span>Dependencies</h4>
+
+ <p>This specification relies on several other underlying
+ specifications.</p>
+
+ <dl><dt>XML</dt>
+
+ <dd>
+
+ <p>Implementations that support <a href=#the-xhtml-syntax>the XHTML syntax</a> must
+ support some version of XML, as well as its corresponding
+ namespaces specification, because that syntax uses an XML
+ serialization with namespaces. <a href=#refsXML>[XML]</a> <a href=#refsXMLNS>[XMLNS]</a></p>
+
+ </dd>
+
+ <dt>DOM</dt>
+
+ <dd>
+
+ <p>The Document Object Model (DOM) is a representation &mdash; a
+ model &mdash; of a document and its content. The DOM is not just
+ an API; the conformance criteria of HTML implementations are
+ defined, in this specification, in terms of operations on the DOM.
+ <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+ <p>Implementations must support DOM Core and the events defined in
+ DOM Events, because this specification is defined in terms of the
+ DOM, and some of the features are defined as extensions to the DOM
+ Core interfaces. <a href=#refsDOMCORE>[DOMCORE]</a> <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
+
+ <p>In particular, the following features are defined in the DOM
+ Core specification: <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+ <ul class=brief><li><dfn id=attr><code>Attr</code></dfn> interface</li>
+ <li><dfn id=cdatasection><code>CDATASection</code></dfn> interface</li>
+ <li><dfn id=comment-0><code>Comment</code></dfn> interface</li>
+ <li><dfn id=domimplementation><code>DOMImplementation</code></dfn> interface</li>
+ <li><dfn id=document><code>Document</code></dfn> interface</li>
+ <li><dfn id=documentfragment><code>DocumentFragment</code></dfn> interface</li>
+ <li><dfn id=documenttype><code>DocumentType</code></dfn> interface</li>
+ <li><dfn id=domexception><code>DOMException</code></dfn> interface</li>
+ <li><dfn id=element><code>Element</code></dfn> interface</li>
+ <li><dfn id=node><code>Node</code></dfn> interface</li>
+ <li><dfn id=nodelist><code>NodeList</code></dfn> interface</li>
+ <li><dfn id=processinginstruction><code>ProcessingInstruction</code></dfn> interface</li>
+ <li><dfn id=text><code>Text</code></dfn> interface</li>
+
+ <li><dfn id=htmlcollection><code>HTMLCollection</code></dfn> interface, and the terms <dfn id=collections>collections</dfn> and <dfn id=represented-by-the-collection>represented by the collection</dfn></li>
+
+ <li><dfn id=domtokenlist><code>DOMTokenList</code></dfn> interface</li>
+ <li><dfn id=domsettabletokenlist><code>DOMSettableTokenList</code></dfn> interface</li>
+
+ <li><dfn id=dom-domimplementation-createdocument title=dom-DOMImplementation-createDocument><code>createDocument()</code></dfn> method</li>
+ <li><dfn id=dom-domimplementation-createhtmldocument title=dom-DOMImplementation-createHTMLDocument><code>createHTMLDocument()</code></dfn> method</li>
+ <li><dfn id=dom-document-createelement title=dom-Document-createElement><code>createElement()</code></dfn> method</li>
+ <li><dfn id=dom-document-createelementns title=dom-Document-createElementNS><code>createElementNS()</code></dfn> method</li>
+ <li><dfn id=dom-document-getelementbyid title=dom-Document-getElementById><code>getElementById()</code></dfn> method</li>
+ <li><dfn id=dom-node-insertbefore title=dom-Node-insertBefore><code>insertBefore()</code></dfn> method</li>
+
+ <li><dfn id=dom-node-ownerdocument title=dom-Node-ownerDocument><code>ownerDocument</code></dfn> attribute</li>
+ <li><dfn id=dom-node-childnodes title=dom-Node-childNodes><code>childNodes</code></dfn> attribute</li>
+ <li><dfn id=dom-node-localname title=dom-Node-localName><code>localName</code></dfn> attribute</li>
+ <li><dfn id=dom-node-parentnode title=dom-Node-parentNode><code>parentNode</code></dfn> attribute</li>
+ <li><dfn id=dom-node-namespaceuri title=dom-Node-namespaceURI><code>namespaceURI</code></dfn> attribute</li>
+ <li><dfn id=dom-element-tagname title=dom-Element-tagName><code>tagName</code></dfn> attribute</li>
+ <li><dfn id=dom-element-id title=dom-Element-id><code>id</code></dfn> attribute</li>
+ <li><dfn id=textcontent><code>textContent</code></dfn> attribute</li>
+
+ <li><dfn id=event><code>Event</code></dfn> interface</li>
+ <li><dfn id=eventtarget><code>EventTarget</code></dfn> interface</li>
+ <li><dfn id=eventinit><code>EventInit</code></dfn> dictionary type</li>
+ <li>The <dfn id=concept-event-type title=concept-event-type>type</dfn> of an event</li>
+
+ <li><dfn id=dom-event-target title=dom-Event-target><code>target</code></dfn> attribute</li>
+
+ <li>The <dfn id="document's-character-encoding" title="document's character encoding">character encoding</dfn> and <dfn id=concept-document-media-type title=concept-document-media-type>media type</dfn> of a <code><a href=#document>Document</a></code></li>
+ <li>The distinction between <dfn id=xml-documents>XML documents</dfn> and <dfn id=html-documents>HTML documents</dfn></li>
+ <li>The terms <dfn id=quirks-mode>quirks mode</dfn>, <dfn id=limited-quirks-mode>limited-quirks mode</dfn>, and <dfn id=no-quirks-mode>no-quirks mode</dfn></li>
+ <li>The algorithm to <dfn id=concept-node-clone title=concept-node-clone>clone</dfn> a <code><a href=#node>Node</a></code>, and the concept of <dfn id=concept-node-clone-ext title=concept-node-clone-ext>cloning steps</dfn> used by tat algorithm</li>
+ <li>The concept of <dfn id=base-url-change-steps>base URL change steps</dfn> and the definition of what happens when an element is <dfn id=affected-by-a-base-url-change>affected by a base URL change</dfn>.</li>
+ <li>The concept of an element's <dfn id=concept-id title=concept-id>unique identifier (ID)</dfn>.</li>
+
+ </ul><p>The term <dfn id=throw>throw</dfn> in this specification is used as
+ defined in the DOM Core specification. The following
+ <code><a href=#domexception>DOMException</a></code> types are defined in the DOM Core
+ specification: <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+ <ol class=brief><li value=1><dfn id=indexsizeerror><code>IndexSizeError</code></dfn></li>
+ <li value=3><dfn id=hierarchyrequesterror><code>HierarchyRequestError</code></dfn></li>
+ <li value=4><dfn id=wrongdocumenterror><code>WrongDocumentError</code></dfn></li>
+ <li value=5><dfn id=invalidcharactererror><code>InvalidCharacterError</code></dfn></li>
+ <li value=7><dfn id=nomodificationallowederror><code>NoModificationAllowedError</code></dfn></li>
+ <li value=8><dfn id=notfounderror><code>NotFoundError</code></dfn></li>
+ <li value=9><dfn id=notsupportederror><code>NotSupportedError</code></dfn></li>
+ <li value=11><dfn id=invalidstateerror><code>InvalidStateError</code></dfn></li>
+ <li value=12><dfn id=syntaxerror><code>SyntaxError</code></dfn></li>
+ <li value=13><dfn id=invalidmodificationerror><code>InvalidModificationError</code></dfn></li>
+ <li value=14><dfn id=namespaceerror><code>NamespaceError</code></dfn></li>
+ <li value=15><dfn id=invalidaccesserror><code>InvalidAccessError</code></dfn></li>
+ <li value=17><dfn id=typemismatcherror><code>TypeMismatchError</code></dfn></li>
+ <li value=18><dfn id=securityerror><code>SecurityError</code></dfn></li>
+ <li value=19><dfn id=networkerror><code>NetworkError</code></dfn></li>
+ <li value=20><dfn id=aborterror><code>AbortError</code></dfn></li>
+ <li value=21><dfn id=urlmismatcherror><code>URLMismatchError</code></dfn></li>
+ <li value=22><dfn id=quotaexceedederror><code>QuotaExceededError</code></dfn></li>
+ <li value=23><dfn id=timeouterror><code>TimeoutError</code></dfn></li>
+ <li value=24><dfn id=invalidnodetypeerror><code>InvalidNodeTypeError</code></dfn></li>
+ <li value=25><dfn id=datacloneerror><code>DataCloneError</code></dfn></li>
+ </ol><p class=example>For example, to <i>throw a
+ <code><a href=#timeouterror>TimeoutError</a></code> exception</i>, a user agent would
+ construct a <code><a href=#domexception>DOMException</a></code> object whose type was the
+ string "<code title="">TimeoutError</code>" (and whose code was
+ the number 23, for legacy reasons) and actually throw that object
+ as an exception.</p>
+
+ <p>The following features are defined in the DOM Events
+ specification: <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
+
+ <ul class=brief><li><dfn id=uievent><code>UIEvent</code></dfn> interface</li>
+ <li><dfn id=mouseevent><code>MouseEvent</code></dfn> interface</li>
+ <li><dfn id=mouseeventinit><code>MouseEventInit</code></dfn> dictionary type</li>
+
+ <li><dfn id=event-click title=event-click><code>click</code></dfn> event</li>
+
+ </ul><!--
+ <p>The following features are defined in the DOM
+ Range specification: <a href="#refsDOMRANGE">[DOMRANGE]</a></p>
+
+ <ul class="brief">
+
+ <li><dfn><code>Range</code></dfn> interface</li>
+
+ <li><dfn title="dom-Range-deleteContents"><code>deleteContents()</code></dfn> method </li>
+ <li><dfn title="dom-Range-selectNodeContents"><code>selectNodeContents()</code></dfn> method </li>
+ <li><dfn title="dom-Range-setEnd"><code>setEnd()</code></dfn> method </li>
+ <li><dfn title="dom-Range-setStart"><code>setStart()</code></dfn> method </li>
+
+ <li><dfn title="dom-Range-collapsed"><code>collapsed</code></dfn> attribute </li>
+ <li><dfn title="dom-Range-endContainer"><code>endContainer</code></dfn> attribute </li>
+ <li><dfn title="dom-Range-endOffset"><code>endOffset</code></dfn> attribute </li>
+ <li><dfn title="dom-Range-startContainer"><code>startContainer</code></dfn> attribute </li>
+ <li><dfn title="dom-Range-startOffset"><code>startOffset</code></dfn> attribute </li>
+
+ </ul>
+--><p>In addition, user agents must implement the features defined in
+ the DOM Range, DOM Parsing and Serialization, HTML Editing APIs,
+ and UndoManager and DOM Transaction specifications that apply to
+ their conformance class.
+ <a href=#refsDOMRANGE>[DOMRANGE]</a>
+ <a href=#refsDOMPARSING>[DOMPARSING]</a>
+ <a href=#refsEDITING>[EDITING]</a>
+ <a href=#refsUNDO>[UNDO]</a>
+ </p>
+
+ </dd>
+
+ <dt>File API</dt>
+
+ <dd>
+
+ <p>This specification uses the following interfaces defined in the
+ File API specification: <a href=#refsFILEAPI>[FILEAPI]</a></p>
+
+ <ul class=brief><li><dfn id=blob><code>Blob</code></dfn></li>
+ <li><dfn id=file><code>File</code></dfn></li>
+ <li><dfn id=filelist><code>FileList</code></dfn></li>
+
+ </ul></dd>
+
+ <dt>Web IDL</dt>
+
+ <dd>
+
+ <p>The IDL fragments in this specification must be interpreted as
+ required for conforming IDL fragments, as described in the Web IDL
+ specification. <a href=#refsWEBIDL>[WEBIDL]</a></p>
+
+ <p>The terms <dfn id=supported-property-indices>supported property indices</dfn>, <dfn id=supported-property-names>supported
+ property names</dfn>, <dfn id=determine-the-value-of-an-indexed-property>determine the value of an indexed
+ property</dfn>, <dfn id=determine-the-value-of-a-named-property>determine the value of a named
+ property</dfn>, <dfn id=platform-array-objects>platform array objects</dfn>, and <dfn id=dfn-read-only-array title=dfn-read-only-array>read only</dfn> (when applied to
+ arrays) are used as defined in the WebIDL specification.</p>
+
+ <p id=float-nan>Except where otherwise specified, if an IDL
+ attribute that is a floating point number type (<code title="">double</code>) is assigned an Infinity or Not-a-Number
+ (NaN) value, a <code><a href=#notsupportederror>NotSupportedError</a></code> exception must be
+ raised.</p>
+
+ <p>Except where otherwise specified, if a method with an argument
+ that is a floating point number type (<code title="">double</code>)
+ is passed an Infinity or Not-a-Number (NaN) value, a
+ <code><a href=#notsupportederror>NotSupportedError</a></code> exception must be raised.</p>
+
+ </dd>
+
+ <dt>Typed Arrays</dt>
+
+ <dd>
+
+ <p>The <dfn id=arraybuffer>ArrayBuffer</dfn> interface and underlying concepts
+ from the Typed Array Specification are used for several features
+ in this specification. <a href=#refsTYPEDARRAY>[TYPEDARRAY]</a></p>
+
+ </dd>
+
+ <dt>JavaScript</dt>
+
+ <dd>
+
+ <p>Some parts of the language described by this specification only
+ support JavaScript as the underlying scripting language. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ <p class=note>The term "JavaScript" is used to refer to ECMA262,
+ rather than the official term ECMAScript, since the term
+ JavaScript is more widely known. Similarly, the <a href=#mime-type>MIME
+ type</a> used to refer to JavaScript in this specification is
+ <code title="">text/javascript</code>, since that is the most
+ commonly used type, <a href=#willful-violation title="willful violation">despite it
+ being an officially obsoleted type</a> according to RFC
+ 4329. <a href=#refsRFC4329>[RFC4329]</a></p>
+
+ </dd>
+
+ <dt>Media Queries</dt>
+
+ <dd>
+
+ <p>Implementations must support the Media Queries language. <a href=#refsMQ>[MQ]</a></p>
+
+ </dd>
+
+ <dt>URIs, IRIs, IDNA</dt>
+
+ <dd>
+
+ <p>Implementations must support the semantics of <a href=#url title=URL>URLs</a> defined in the URI and IRI specifications,
+ as well as the semantics of IDNA domain names defined in the
+ <cite>Internationalizing Domain Names in Applications
+ (IDNA)</cite> specification. <a href=#refsRFC3986>[RFC3986]</a>
+ <a href=#refsRFC3987>[RFC3987]</a> <a href=#refsRFC3490>[RFC3490]</a>
+
+ </dd>
+
+ <dt>Cookies</dt>
+
+ <dd>
+
+ <p>The following term is defined in the Cookie specification: <a href=#refsCOOKIES>[COOKIES]</a></p>
+
+ <ul class=brief><li><dfn id=cookie-string>cookie-string</dfn>
+ <li><dfn id=receives-a-set-cookie-string>receives a set-cookie-string</dfn>
+ </ul></dd>
+
+ <dt>CORS</dt>
+
+ <dd>
+
+ <p>The following terms are defined in the CORS specification: <a href=#refsCORS>[CORS]</a></p>
+
+ <ul class=brief><li><dfn id=cross-origin-request>cross-origin request</dfn>
+ <li><dfn id=cross-origin-request-status>cross-origin request status</dfn>
+ <li><dfn id=custom-request-headers>custom request headers</dfn>
+ <li><dfn id=simple-cross-origin-request>simple cross-origin request</dfn>
+ <li><dfn id=redirect-steps>redirect steps</dfn>
+ <li><dfn id=credential-flag>credential flag</dfn>
+ <li><dfn id=resource-sharing-check>resource sharing check</dfn>
+ </ul></dd>
+
+ <dt>CSS modules</dt>
+
+ <dd>
+
+ <p>While support for CSS as a whole is not required of
+ implementations of this specification (though it is encouraged, at
+ least for Web browsers), some features are defined in terms of
+ specific CSS requirements.</p>
+
+ <p>In particular, some features require that a string be
+ <dfn id=parsed-as-a-css-color-value>parsed as a CSS &lt;color&gt; value</dfn>. When parsing a CSS
+ value, user agents are required by the CSS specifications to apply
+ some error handling rules. These apply to this specification also.
+ <a href=#refsCSSCOLOR>[CSSCOLOR]</a> <a href=#refsCSS>[CSS]</a></p>
+
+ <p class=example>For example, user agents are required to close
+ all open constructs upon finding the end of a style sheet
+ unexpectedly. Thus, when parsing the string "<code title="">rgb(0,0,0</code>" (with a missing close-parenthesis) for
+ a color value, the close parenthesis is implied by this error
+ handling rule, and a value is obtained (the color 'black').
+ However, the similar construct "<code title="">rgb(0,0,</code>"
+ (with both a missing parenthesis and a missing "blue" value)
+ cannot be parsed, as closing the open construct does not result
+ in a viable value.</p>
+
+ <p>The term <dfn id=css-element-reference-identifier>CSS element reference identifier</dfn> is used as
+ defined in the <cite>CSS Image Values and Replaced Content</cite>
+ specification to define the API that declares identifiers for use
+ with the CSS 'element()' function. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
+
+ <p>Similarly, the term <dfn id=provides-a-paint-source>provides a paint source</dfn> is used
+ as defined in the <cite>CSS Image Values and Replaced
+ Content</cite> specification to define the interaction of certain
+ HTML elements with the CSS 'element()' function. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
+
+ </dd>
+
+
+
+ <dt>The WebSocket protocol</dt>
+
+ <dd>
+
+ <div data-component="WebSocket API (editor: Ian Hickson)"><!--websocket-api-->
+
+ <p>The following terms are defined in the WebSocket protocol
+ specification: <a href=#refsWSP>[WSP]</a></p>
+
+ <ul class=brief><li><dfn id="parse-a-websocket-url's-components">parse a WebSocket URL's components</dfn>
+ <li><dfn id=establish-a-websocket-connection>establish a WebSocket connection</dfn>
+ <li><dfn id=the-websocket-connection-is-established>the WebSocket connection is established</dfn>
+ <li><dfn id="validate-the-server's-response">validate the server's response</dfn>
+ <li><dfn id=extensions-in-use>extensions in use</dfn>
+ <li><dfn id=subprotocol-in-use>subprotocol in use</dfn>
+ <li><dfn id=headers-to-send-appropriate-cookies>headers to send appropriate cookies</dfn>
+ <li><dfn id="cookies-set-during-the-server's-opening-handshake">cookies set during the server's opening handshake</dfn>
+ <li><dfn id=a-websocket-message-has-been-received>a WebSocket message has been received</dfn>
+ <li><dfn id=fail-the-websocket-connection>fail the WebSocket connection</dfn>
+ <li><dfn id=close-the-websocket-connection>close the WebSocket connection</dfn>
+ <li><dfn id=start-the-websocket-closing-handshake>start the WebSocket closing handshake</dfn>
+ <li><dfn id=the-websocket-closing-handshake-is-started>the WebSocket closing handshake is started</dfn>
+ <li><dfn id=the-websocket-connection-is-closed>the WebSocket connection is closed</dfn> (possibly <i title="">cleanly</i>)
+ <li><dfn id=the-websocket-connection-close-code>the WebSocket connection close code</dfn>
+ <li><dfn id=the-websocket-connection-close-reason>the WebSocket connection close reason</dfn>
+
+ </ul></div><!--data-component-->
+
+ </dd>
+
+
+
+ </dl><p>This specification does not <em>require</em> support of any
+ particular network protocol, style sheet language, scripting
+ language, or any of the DOM specifications beyond those described
+ above. However, the language described by this specification is
+ biased towards CSS as the styling language, JavaScript as the
+ scripting language, and HTTP as the network protocol, and several
+ features assume that those languages and protocols are in use.</p>
+
+ <p class=note>This specification might have certain additional
+ requirements on character encodings, image formats, audio formats,
+ and video formats in the respective sections.</p>
+
+ </div>
+
+
+
+ <h4 id=extensibility><span class=secno>2.2.3 </span>Extensibility</h4>
+
+ <p>HTML has a wide number of extensibility mechanisms that can be
+ used for adding semantics in a safe manner:</p>
+
+ <ul><li>Authors can use the <code title=attr-class><a href=#classes>class</a></code>
+ attribute to extend elements, effectively creating their own
+ elements, while using the most applicable existing "real" HTML
+ element, so that browsers and other tools that don't know of the
+ extension can still support it somewhat well. This is the tack used
+ by Microformats, for example.</li>
+
+ <li>Authors can include data for inline client-side scripts or
+ server-side site-wide scripts to process using the <code title=attr-data-*><a href=#attr-data-*>data-*=""</a></code> attributes. These are
+ guaranteed to never be touched by browsers, and allow scripts to
+ include data on HTML elements that scripts can then look for and
+ process.</li>
+
+ <li>Authors can use the <code title=meta><a href=#the-meta-element>&lt;meta name=""
+ content=""&gt;</a></code> mechanism to include page-wide metadata by
+ registering <a href=#concept-meta-extensions title=concept-meta-extensions>extensions to the
+ predefined set of metadata names</a>.</li>
+
+ <li>Authors can use the <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel=""</a></code> mechanism to annotate
+ links with specific meanings by registering <a href=#concept-rel-extensions title=concept-rel-extensions>extensions to the predefined set of
+ link types</a>. This is also used by Microformats.</li>
+
+ <li>Authors can embed raw data using the <code title=script><a href=#the-script-element>&lt;script type=""&gt;</a></code> mechanism with a custom
+ type, for further handling by inline or server-side scripts.</li>
+
+ <li>Authors can create <a href=#plugin title=plugin>plugins</a> and
+ invoke them using the <code><a href=#the-embed-element>embed</a></code> element. This is how Flash
+ works.</li>
+
+ <li>Authors can extend APIs using the JavaScript prototyping
+ mechanism. This is widely used by script libraries, for
+ instance.</li>
+
+<!--MD-->
+ <li>Authors can use the microdata feature (the <code title=attr-itemscope><a href=#attr-itemscope>itemscope=""</a></code> and <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop=""</a></code> attributes) to embed
+ nested name-value pairs of data to be shared with other
+ applications and sites.</li>
+<!--MD-->
+
+ </ul><div class=impl>
+
+ <hr><p>Vendor-specific proprietary user agent extensions to this
+ specification are strongly discouraged. Documents must not use such
+ extensions, as doing so reduces interoperability and fragments the
+ user base, allowing only users of specific user agents to access the
+ content in question.</p>
+
+ <p>If such extensions are nonetheless needed, e.g. for experimental
+ purposes, then vendors are strongly urged to use one of the
+ following extension mechanisms:</p>
+
+ <p>For markup-level features that can be limited to the XML
+ serialization and need not be supported in the HTML serialization,
+ vendors should use the namespace mechanism to define custom
+ namespaces in which the non-standard elements and attributes are
+ supported.</p>
+
+ <p>For markup-level features that are intended for use with
+ <a href=#syntax>the HTML syntax</a>, extensions should be limited to new
+ attributes of the form "<code title="">x-<var title="">vendor</var>-<var title="">feature</var></code>", where
+ <var title="">vendor</var> is a short string that identifies the
+ vendor responsible for the extension, and <var title="">feature</var> is the name of the feature. New element names
+ should not be created. Using attributes for such extensions
+ exclusively allows extensions from multiple vendors to co-exist on
+ the same element, which would not be possible with elements. Using
+ the "<code title="">x-<var title="">vendor</var>-<var title="">feature</var></code>" form allows extensions to be made
+ without risk of conflicting with future additions to the
+ specification.</p>
+
+ <div class=example>
+
+ <p>For instance, a browser named "FerretBrowser" could use "ferret"
+ as a vendor prefix, while a browser named "Mellblom Browser" could
+ use "mb". If both of these browsers invented extensions that turned
+ elements into scratch-and-sniff areas, an author experimenting with
+ these features could write:</p>
+
+ <pre>&lt;p&gt;This smells of lemons!
+&lt;span x-ferret-smellovision x-ferret-smellcode="LEM01"
+ x-mb-outputsmell x-mb-smell="lemon juice"&gt;&lt;/span&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+ <p>Attribute names beginning with the two characters "<code title="">x-</code>" are reserved for user agent use and are
+ guaranteed to never be formally added to the HTML language. For
+ flexibility, attributes names containing underscores (the U+005F LOW
+ LINE character) are also reserved for experimental purposes and are
+ guaranteed to never be formally added to the HTML language.</p>
+
+ <p class=note>Pages that use such attributes are by definition
+ non-conforming.</p>
+
+ <p>For DOM extensions, e.g. new methods and IDL attributes, the new
+ members should be prefixed by vendor-specific strings to prevent
+ clashes with future versions of this specification.</p>
+
+ <p>For events, experimental event names should be prefixed with
+ vendor-specific strings.</p>
+
+ <div class=example>
+
+ <p>For example, if a user agent called "Pleas<!--e h-->old" were to
+ add an event to indicate when the user is going up in an elevator,
+ it could use the prefix "<code title="">pleasold</code>" and thus
+ name the event "<code title="">pleasoldgoingup</code>", possibly
+ with an event handler attribute named "<code title="">onpleasoldgoingup</code>".</p>
+
+ </div>
+
+ <p>All extensions must be defined so that the use of extensions
+ neither contradicts nor causes the non-conformance of functionality
+ defined in the specification.</p> <!-- thanks to QA Framework -->
+
+ <div class=example>
+
+ <p>For example, while strongly discouraged from doing so, an
+ implementation "Foo Browser" could add a new IDL attribute "<code title="">fooTypeTime</code>" to a control's DOM interface that
+ returned the time it took the user to select the current value of a
+ control (say). On the other hand, defining a new control that
+ appears in a form's <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code>
+ array would be in violation of the above requirement, as it would
+ violate the definition of <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> given in this
+ specification.</p>
+
+ </div>
+
+ <p>When adding new <a href=#reflect title=reflect>reflecting</a> IDL
+ attributes corresponding to content attributes of the form "<code title="">x-<var title="">vendor</var>-<var title="">feature</var></code>", the IDL attribute should be named
+ "<code title=""><var title="">vendor</var><var title="">Feature</var></code>" (i.e. the "<code title="">x</code>"
+ is dropped from the IDL attribute's name).</p>
+
+ <hr><p>When vendor-neutral extensions to this specification are needed,
+ either this specification can be updated accordingly, or an
+ extension specification can be written that overrides the
+ requirements in this specification. When someone applying this
+ specification to their activities decides that they will recognize
+ the requirements of such an extension specification, it becomes an
+<!--CONFORMANCE--><!--FORK-->
+ <dfn id=other-applicable-specifications title="other applicable specifications">applicable
+ specification</dfn> for the purposes of conformance requirements in
+ this specification.</p>
+
+ <p class=note>Someone could write a specification that defines any
+ arbitrary byte stream as conforming, and then claim that their
+ random junk is conforming. However, that does not mean that their
+ random junk actually is conforming for everyone's purposes: if
+ someone else decides that that specification does not apply to their
+ work, then they can quite legitimately say that the aforementioned
+ random junk is just that, junk, and not conforming at all. As far as
+ conformance goes, what matters in a particular community is what
+ that community <em>agrees</em> is applicable.</p>
+
+ <hr><p>User agents must treat elements and attributes that they do not
+ understand as semantically neutral; leaving them in the DOM (for DOM
+ processors), and styling them according to CSS (for CSS processors),
+ but not inferring any meaning from them.</p>
+
+ <p>When support for a feature is disabled (e.g. as an emergency
+ measure to mitigate a security problem, or to aid in development, or
+ for performance reasons), user agents must act as if they had no
+ support for the feature whatsoever, and as if the feature was not
+ mentioned in this specification. For example, if a particular
+ feature is accessed via an attribute in a Web IDL interface, the
+ attribute itself would be omitted from the objects that implement
+ that interface &mdash; leaving the attribute on the object but
+ making it return null or throw an exception is insufficient.</p>
+
+ </div>
+
+
+
+ <h3 id=case-sensitivity-and-string-comparison><span class=secno>2.3 </span>Case-sensitivity and string comparison</h3>
+
+ <p>Comparing two strings in a <dfn id=case-sensitive>case-sensitive</dfn> manner means
+ comparing them exactly, code point for code point.</p>
+
+ <p>Comparing two strings in an <dfn id=ascii-case-insensitive>ASCII case-insensitive</dfn>
+ manner means comparing them exactly, code point for code point, except
+ that the characters in the range U+0041 to U+005A (i.e. LATIN
+ CAPITAL LETTER A to LATIN CAPITAL LETTER Z) and the corresponding
+ characters in the range U+0061 to U+007A (i.e. LATIN SMALL LETTER A
+ to LATIN SMALL LETTER Z) are considered to also match.</p>
+
+ <p>Comparing two strings in a <dfn id=compatibility-caseless>compatibility caseless</dfn>
+ manner means using the Unicode <i>compatibility caseless match</i>
+ operation to compare the two strings. <a href=#refsUNICODE>[UNICODE]</a></p>
+
+ <p>Except where otherwise stated, string comparisons must be
+ performed in a <a href=#case-sensitive>case-sensitive</a> manner.</p>
+
+
+ <div class=impl>
+
+ <p><dfn id=converted-to-ascii-uppercase title="converted to ASCII uppercase">Converting a string to
+ ASCII uppercase</dfn> means replacing all characters in the range
+ U+0061 to U+007A (i.e. LATIN SMALL LETTER A to LATIN SMALL LETTER Z)
+ with the corresponding characters in the range U+0041 to U+005A
+ (i.e. LATIN CAPITAL LETTER A to LATIN CAPITAL LETTER Z).</p>
+
+ <p><dfn id=converted-to-ascii-lowercase title="converted to ASCII lowercase">Converting a string to
+ ASCII lowercase</dfn> means replacing all characters in the range
+ U+0041 to U+005A (i.e. LATIN CAPITAL LETTER A to LATIN CAPITAL
+ LETTER Z) with the corresponding characters in the range U+0061
+ to U+007A (i.e. LATIN SMALL LETTER A to LATIN SMALL LETTER Z).</p>
+
+ </div>
+
+
+ <p>A string <var title="">pattern</var> is a <dfn id=prefix-match>prefix match</dfn>
+ for a string <var title="">s</var> when <var title="">pattern</var>
+ is not longer than <var title="">s</var> and truncating <var title="">s</var> to <var title="">pattern</var>'s length leaves the
+ two strings as matches of each other.</p>
+
+
+ <div class=impl>
+
+ <h3 id=utf-8><span class=secno>2.4 </span>UTF-8</h3>
+
+ <p>When a user agent is required to <dfn id=decoded-as-utf-8,-with-error-handling title="decoded as UTF-8,
+ with error handling">decode a byte string as UTF-8, with error
+ handling</dfn>, it means that the byte stream must be converted to a
+ Unicode string by interpreting it as UTF-8, except that any errors
+ must be handled as described in the following list. Bytes in the
+ following list are represented in hexadecimal. <a href=#refsRFC3629>[RFC3629]</a>
+
+ <dl class=switch><dt>One byte in the range FE to FF</dt>
+
+
+ <dt><a href=#overlong-form title="overlong form">Overlong forms</a> (e.g. F0 80 80 A0)</dt>
+
+ <dt>One byte in the range C0 to C1, followed by one byte in the range 80 to BF</dt> <!-- overlong ASCII (redundant with the previous line, really, but worth calling out separately as it's especially dangerous to miss this case) -->
+
+
+ <dt>One byte in the range F0 to F4, followed by three bytes in the range 80 to BF that represent a code point above U+10FFFF</dt>
+
+ <dt>One byte in the range F5 to F7, followed by three bytes in the range 80 to BF</dt> <!-- above U+10FFFF -->
+
+ <dt>One byte in the range F8 to FB, followed by four bytes in the range 80 to BF</dt> <!-- above U+10FFFF -->
+
+ <dt>One byte in the range FC to FD, followed by five bytes in the range 80 to BF</dt> <!-- above U+10FFFF -->
+
+
+ <dt>One byte in the range C0 to FD that is not followed by a byte in the range 80 to BF</dt> <!-- too short -->
+
+ <dt>One byte in the range E0 to FD, followed by a byte in the range 80 to BF that is not followed by a byte in the range 80 to BF</dt> <!-- too short -->
+
+ <dt>One byte in the range F0 to FD, followed by two bytes in the range 80 to BF, the last of which is not followed by a byte in the range 80 to BF</dt> <!-- too short -->
+
+ <dt>One byte in the range F8 to FD, followed by three bytes in the range 80 to BF, the last of which is not followed by a byte in the range 80 to BF</dt> <!-- too short -->
+
+ <dt>One byte in the range FC to FD, followed by four bytes in the range 80 to BF, the last of which is not followed by a byte in the range 80 to BF</dt> <!-- too short -->
+
+
+ <dt>Any byte sequence that represents a code point in the range U+D800 to U+DFFF</dt> <!-- surrogate halves -->
+
+
+ <dd>The whole matched sequence must be replaced by a single U+FFFD
+ REPLACEMENT CHARACTER.</dd>
+
+
+ <dt>One byte in the range 80 to BF not preceded by a byte in the range 80 to FD</dt>
+
+ <dt>One byte in the range 80 to BF preceded by a byte that is part of a complete UTF-8 sequence that does not include this byte</dt>
+
+ <dt>One byte in the range 80 to BF preceded by a byte that is part of a sequence that has been replaced by a U+FFFD REPLACEMENT CHARACTER, either alone or as part of a sequence</dt>
+
+ <dd>Each such byte must be replaced with a U+FFFD REPLACEMENT CHARACTER.</dd>
+
+
+ </dl><p>For the purposes of the above requirements, an <dfn id=overlong-form>overlong
+ form</dfn> in UTF-8 is a sequence that encodes a code point using
+ more bytes than the minimum needed to encode that code point in
+ UTF-8.</p>
+
+ <p class=example>For example, the byte string "41 98 BA 42 E2 98
+ 43 E2 98 BA E2 98" would be converted to the string
+ "A&#65533;&#65533;B&#65533;C&#9786;&#65533;".</p>
+
+ </div>
+
+
+ <h3 id=common-microsyntaxes><span class=secno>2.5 </span>Common microsyntaxes</h3>
+
+ <p>There are various places in HTML that accept particular data
+ types, such as dates or numbers. This section describes what the
+ conformance criteria for content in those formats is, and how to
+ parse them.</p>
+
+ <div class=impl>
+
+ <p class=note>Implementors are strongly urged to carefully examine
+ any third-party libraries they might consider using to implement the
+ parsing of syntaxes described below. For example, date libraries are
+ likely to implement error handling behavior that differs from what
+ is required in this specification, since error-handling behavior is
+ often not defined in specifications that describe date syntaxes
+ similar to those used in this specification, and thus
+ implementations tend to vary greatly in how they handle errors.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=common-parser-idioms><span class=secno>2.5.1 </span>Common parser idioms</h4>
+
+ </div>
+
+ <p>The <dfn id=space-character title="space character">space characters</dfn>, for the
+ purposes of this specification, are U+0020 SPACE, U+0009 CHARACTER
+ TABULATION (tab), U+000A LINE FEED (LF), U+000C FORM FEED (FF), and
+ U+000D CARRIAGE RETURN (CR).</p>
+
+ <p>The <dfn id=white_space title=White_Space>White_Space characters</dfn> are
+ those that have the Unicode property "White_Space" in the Unicode
+ <code title="">PropList.txt</code> data file. <a href=#refsUNICODE>[UNICODE]</a></p>
+
+ <p class=note>This should not be confused with the "White_Space"
+ value (abbreviated "WS") of the "Bidi_Class" property in the <code title="">Unicode.txt</code> data file.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=alphanumeric-ascii-characters>alphanumeric ASCII characters</dfn> are those in the
+ ranges U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0041 LATIN
+ CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z, U+0061 LATIN
+ SMALL LETTER A to U+007A LATIN SMALL LETTER Z.</p>
+
+ <p>Some of the micro-parsers described below follow the pattern of
+ having an <var title="">input</var> variable that holds the string
+ being parsed, and having a <var title="">position</var> variable
+ pointing at the next character to parse in <var title="">input</var>.</p>
+
+ <p>For parsers based on this pattern, a step that requires the user
+ agent to <dfn id=collect-a-sequence-of-characters>collect a sequence of characters</dfn> means that the
+ following algorithm must be run, with <var title="">characters</var>
+ being the set of characters that can be collected:</p>
+
+ <ol><li><p>Let <var title="">input</var> and <var title="">position</var> be the same variables as those of the same
+ name in the algorithm that invoked these steps.</li>
+
+ <li><p>Let <var title="">result</var> be the empty string.</li>
+
+ <li><p>While <var title="">position</var> doesn't point past the
+ end of <var title="">input</var> and the character at <var title="">position</var> is one of the <var title="">characters</var>, append that character to the end of <var title="">result</var> and advance <var title="">position</var> to
+ the next character in <var title="">input</var>.</li>
+
+ <li><p>Return <var title="">result</var>.</li>
+
+ </ol><p>The step <dfn id=skip-whitespace>skip whitespace</dfn> means that the user agent
+ must <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> that are <a href=#space-character title="space character">space characters</a>. The step <dfn id=skip-white_space-characters>skip
+ White_Space characters</dfn> means that the user agent must
+ <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> that are
+ <a href=#white_space>White_Space</a> characters. In both cases, the collected
+ characters are not used. <a href=#refsUNICODE>[UNICODE]</a></p>
+
+ <p>When a user agent is to <dfn id=strip-line-breaks>strip line breaks</dfn> from a
+ string, the user agent must remove any U+000A LINE FEED (LF) and
+ U+000D CARRIAGE RETURN (CR) characters from that string.</p>
+
+ <p>When a user agent is to <dfn id=strip-leading-and-trailing-whitespace>strip leading and trailing
+ whitespace</dfn> from a string, the user agent must remove all <a href=#space-character title="space character">space characters</a> that are at the
+ start or end of the string.</p>
+
+ <p>The <dfn id=code-point-length>code-point length</dfn> of a string is the number of
+ Unicode code points in that string.</p>
+
+ <p>When a user agent has to <dfn id=strictly-split-a-string>strictly split a string</dfn> on a
+ particular delimiter character <var title="">delimiter</var>, it
+ must use the following algorithm:</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>Let <var title="">tokens</var> be a list of tokens,
+ initially empty.</li>
+
+ <li><p>While <var title="">position</var> is not past the end of
+ <var title="">input</var>:</p>
+
+ <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are not
+ the <var title="">delimiter</var> character.</li>
+
+ <li><p>Add the string collected in the previous step to <var title="">tokens</var>.</li>
+
+ <li><p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>.</li> <!-- skips past the delimiter -->
+
+ </ol></li>
+
+ <li><p>Return <var title="">tokens</var>.</li>
+
+ </ol><p class=note>For the special cases of splitting a string <a href=#split-a-string-on-spaces title="split a string on spaces">on spaces</a> and <a href=#split-a-string-on-spaces title="split a string on spaces">on commas</a>, this algorithm
+ does not apply (those algorithms also perform <a href=#strip-leading-and-trailing-whitespace title="strip
+ leading and trailing whitespace">whitespace trimming</a>).</p>
+
+ </div>
+
+
+
+ <h4 id=boolean-attributes><span class=secno>2.5.2 </span>Boolean attributes</h4>
+
+ <p>A number of attributes are <dfn id=boolean-attribute title="boolean attribute">boolean
+ attributes</dfn>. The presence of a boolean attribute on an element
+ represents the true value, and the absence of the attribute
+ represents the false value.</p>
+
+ <p>If the attribute is present, its value must either be the empty
+ string or a value that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a>
+ match for the attribute's canonical name, with no leading or
+ trailing whitespace.</p>
+
+ <p class=note>The values "true" and "false" are not allowed on
+ boolean attributes. To represent a false value, the attribute has to
+ be omitted altogether.</p>
+
+ <div class=example>
+
+ <p>Here is an example of a checkbox that is checked and disabled.
+ The <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code> and <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attributes are the
+ boolean attributes.</p>
+
+ <pre>&lt;label&gt;&lt;input type=checkbox checked name=cheese disabled&gt; Cheese&lt;/label&gt;</pre>
+
+ <p>This could be equivalently written as this:
+
+ <pre>&lt;label&gt;&lt;input type=checkbox checked=checked name=cheese disabled=disabled&gt; Cheese&lt;/label&gt;</pre>
+
+ <p>You can also mix styles; the following is still equivalent:</p>
+
+ <pre>&lt;label&gt;&lt;input type='checkbox' checked name=cheese disabled=""&gt; Cheese&lt;/label&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=keywords-and-enumerated-attributes><span class=secno>2.5.3 </span>Keywords and enumerated attributes</h4>
+
+ <p>Some attributes are defined as taking one of a finite set of
+ keywords. Such attributes are called <dfn id=enumerated-attribute title="enumerated
+ attribute">enumerated attributes</dfn>. The keywords are each
+ defined to map to a particular <em>state</em> (several keywords
+ might map to the same state, in which case some of the keywords are
+ synonyms of each other; additionally, some of the keywords can be
+ said to be non-conforming, and are only in the specification for
+ historical reasons). In addition, two default states can be
+ given. The first is the <i>invalid value default</i>, the second
+ is the <i>missing value default</i>.</p>
+
+ <p>If an enumerated attribute is specified, the attribute's value
+ must be an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for one of the
+ given keywords that are not said to be non-conforming, with no
+ leading or trailing whitespace.</p>
+
+ <p>When the attribute is specified, if its value is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for one of the given keywords then
+ that keyword's state is the state that the attribute represents. If
+ the attribute value matches none of the given keywords, but the
+ attribute has an <i>invalid value default</i>, then the attribute
+ represents that state. Otherwise, if the attribute value matches
+ none of the keywords but there is a <i>missing value default</i>
+ state defined, then <em>that</em> is the state represented by the
+ attribute. Otherwise, there is no default, and invalid values must
+ be ignored.</p>
+
+ <p>When the attribute is <em>not</em> specified, if there is a
+ <i>missing value default</i> state defined, then that is the state
+ represented by the (missing) attribute. Otherwise, the absence of
+ the attribute means that there is no state represented.</p>
+
+ <p class=note>The empty string can be a valid keyword.</p>
+
+
+ <h4 id=numbers><span class=secno>2.5.4 </span>Numbers</h4>
+
+ <h5 id=non-negative-integers><span class=secno>2.5.4.1 </span>Non-negative integers</h5>
+
+ <p>A string is a <dfn id=valid-non-negative-integer>valid non-negative integer</dfn> if it
+ consists of one or more characters in the range U+0030 DIGIT ZERO
+ (0) to U+0039 DIGIT NINE (9).</p>
+
+ <p>A <a href=#valid-non-negative-integer>valid non-negative integer</a> represents the number
+ that is represented in base ten by that string of digits.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</dfn> are as
+ given in the following algorithm. When invoked, the steps must be
+ followed in the order given, aborting at the first step that returns
+ a value. This algorithm will return either zero, a positive integer,
+ or an error.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return an error.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+002B PLUS SIGN character (+), advance <var title="">position</var> to the next character. (The "<code title="">+</code>" is ignored, but it is not conforming.)</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return an error.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
+ return an error.</li>
+
+ <!-- Ok. At this point we know we have a number. It might have
+ trailing garbage which we'll ignore, but it's a number, and we
+ won't return an error. -->
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
+ resulting sequence as a base-ten integer. Let <var title="">value</var> be that integer.</li>
+
+ <li><p>Return <var title="">value</var>.</li>
+
+ </ol></div>
+
+
+ <h5 id=signed-integers><span class=secno>2.5.4.2 </span>Signed integers</h5>
+
+ <p>A string is a <dfn id=valid-integer>valid integer</dfn> if it consists of one or
+ more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
+ NINE (9), optionally prefixed with a U+002D HYPHEN-MINUS character
+ (-).</p>
+
+ <p>A <a href=#valid-integer>valid integer</a> without a U+002D HYPHEN-MINUS (-)
+ prefix represents the number that is represented in base ten by that
+ string of digits. A <a href=#valid-integer>valid integer</a> <em>with</em> a
+ U+002D HYPHEN-MINUS (-) prefix represents the number represented in
+ base ten by the string of digits that follows the U+002D
+ HYPHEN-MINUS, subtracted from zero.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=rules-for-parsing-integers>rules for parsing integers</dfn> are similar to the
+ <a href=#rules-for-parsing-non-negative-integers title="rules for parsing non-negative integers">rules for
+ non-negative integers</a>, and are as given in the following
+ algorithm. When invoked, the steps must be followed in the order
+ given, aborting at the first step that returns a value. This
+ algorithm will return either an integer or an error.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>Let <var title="">sign</var> have the value
+ "positive".</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return an error.</li>
+
+ <li>
+
+ <p>If the character indicated by <var title="">position</var> (the
+ first character) is a U+002D HYPHEN-MINUS character (-):</p>
+
+ <ol><li>Let <var title="">sign</var> be "negative".</li>
+
+ <li>Advance <var title="">position</var> to the next
+ character.</li>
+
+ <li>If <var title="">position</var> is past the end of <var title="">input</var>, return an error.</li>
+
+ </ol><p>Otherwise, if the character indicated by <var title="">position</var> (the first character) is a U+002B PLUS
+ SIGN character (+):</p>
+
+ <ol><li>Advance <var title="">position</var> to the next
+ character. (The "<code title="">+</code>" is ignored, but it is
+ not conforming.)</li>
+
+ <li>If <var title="">position</var> is past the end of <var title="">input</var>, return an error.</li>
+
+ </ol></li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
+ return an error.</li>
+
+ <!-- Ok. At this point we know we have a number. It might have
+ trailing garbage which we'll ignore, but it's a number, and we
+ won't return an error. -->
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
+ resulting sequence as a base-ten integer. Let <var title="">value</var> be that integer.</li>
+
+ <li><p>If <var title="">sign</var> is "positive", return <var title="">value</var>, otherwise return the result of subtracting
+ <var title="">value</var> from zero.</li>
+
+ </ol></div>
+
+
+ <h5 id=floating-point-numbers><span class=secno>2.5.4.3 </span>Floating-point numbers</h5>
+
+ <p>A string is a <dfn id=valid-floating-point-number>valid floating point number</dfn> if it
+ consists of:</p>
+
+ <ol class=brief><li>Optionally, a U+002D HYPHEN-MINUS character (-).</li>
+
+ <li>A series of one or more characters in the range U+0030 DIGIT
+ ZERO (0) to U+0039 DIGIT NINE (9).</li>
+
+ <li>Optionally:
+
+ <ol><li>A single U+002E FULL STOP character (.).</li>
+
+ <li>A series of one or more characters in the range U+0030 DIGIT
+ ZERO (0) to U+0039 DIGIT NINE (9).</li>
+
+ </ol></li>
+
+ <li>Optionally:
+
+ <ol><li>Either a U+0065 LATIN SMALL LETTER E character (e) or a
+ U+0045 LATIN CAPITAL LETTER E character (E).</li>
+
+ <li>Optionally, a U+002D HYPHEN-MINUS character (-) or U+002B
+ PLUS SIGN character (+).</li>
+
+ <li>A series of one or more characters in the range U+0030 DIGIT
+ ZERO (0) to U+0039 DIGIT NINE (9).</li>
+
+ </ol></li>
+
+ </ol><p>A <a href=#valid-floating-point-number>valid floating point number</a> represents the number
+ obtained by multiplying the significand by ten raised to the power
+ of the exponent, where the significand is the first number,
+ interpreted as base ten (including the decimal point and the number
+ after the decimal point, if any, and interpreting the significand as
+ a negative number if the whole string starts with a U+002D
+ HYPHEN-MINUS character (-) and the number is not zero), and where
+ the exponent is the number after the E, if any (interpreted as a
+ negative number if there is a U+002D HYPHEN-MINUS character (-)
+ between the E and the number and the number is not zero, or else
+ ignoring a U+002B PLUS SIGN character (+) between the E and the
+ number if there is one). If there is no E, then the exponent is
+ treated as zero.</p>
+
+ <p class=note>The Infinity and Not-a-Number (NaN) values are not
+ <a href=#valid-floating-point-number title="valid floating point number">valid floating point
+ numbers</a>.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=best-representation-of-the-number-as-a-floating-point-number title="best representation of the number as a floating
+ point number">best representation of the number <var title="">n</var> as a floating point number</dfn> is the string
+ obtained from applying the JavaScript operator ToString to <var title="">n</var>. The JavaScript operator ToString is not uniquely
+ determined. When there are multiple possible strings that could be
+ obtained from the JavaScript operator ToString for a particular
+ value, the user agent must always return the same string for that
+ value (though it may differ from the value used by other user
+ agents).</p>
+
+ <p>The <dfn id=rules-for-parsing-floating-point-number-values>rules for parsing floating point number values</dfn> are
+ as given in the following algorithm. This algorithm must be aborted
+ at the first step that returns something. This algorithm will return
+ either a number or an error.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>Let <var title="">value</var> have the value 1.</li>
+
+ <li><p>Let <var title="">divisor</var> have the value 1.</li>
+
+ <li><p>Let <var title="">exponent</var> have the value 1.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return an error.</li>
+
+ <li>
+
+ <p>If the character indicated by <var title="">position</var> is a
+ U+002D HYPHEN-MINUS character (-):</p>
+
+ <ol><li>Change <var title="">value</var> and <var title="">divisor</var> to &minus;1.</li>
+
+ <li>Advance <var title="">position</var> to the next
+ character.</li>
+
+ <li>If <var title="">position</var> is past the end of <var title="">input</var>, return an error.</li>
+
+ </ol><p>Otherwise, if the character indicated by <var title="">position</var> (the first character) is a U+002B PLUS
+ SIGN character (+):</p>
+
+ <ol><li>Advance <var title="">position</var> to the next
+ character. (The "<code title="">+</code>" is ignored, but it is
+ not conforming.)</li>
+
+ <li>If <var title="">position</var> is past the end of <var title="">input</var>, return an error.</li>
+
+ </ol></li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
+ return an error.</li>
+
+ <!-- Ok. At this point we know we have a number. It might have
+ trailing garbage which we'll ignore, but it's a number, and we
+ won't return an error unless it's out of range. -->
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
+ resulting sequence as a base-ten integer. Multiply <var title="">value</var> by that integer.</li>
+
+ <li>If <var title="">position</var> is past the end of <var title="">input</var>, jump to the step labeled
+ <i>conversion</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+002E FULL STOP (.), run these substeps:</p>
+
+ <ol><li><p>Advance <var title="">position</var> to the next
+ character.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the character indicated by <var title="">position</var> is not one of U+0030 DIGIT ZERO (0) to
+ U+0039 DIGIT NINE (9), U+0065 LATIN SMALL LETTER E (e), or U+0045
+ LATIN CAPITAL LETTER E (E), then jump to the step labeled
+ <i>conversion</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+0065 LATIN SMALL LETTER E character (e) or a U+0045 LATIN
+ CAPITAL LETTER E character (E), skip the remainder of these
+ substeps.</p>
+
+ <li><p><i>Fraction loop</i>: Multiply <var title="">divisor</var>
+ by ten.</li>
+
+ <li>Add the value of the character indicated by <var title="">position</var>, interpreted as a base-ten digit (0..9)
+ and divided by <var title="">divisor</var>, to <var title="">value</var>.</li>
+
+ <li><p>Advance <var title="">position</var> to the next
+ character.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
+ <i>conversion</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), jump
+ back to the step labeled <i>fraction loop</i> in these
+ substeps.</li>
+
+ </ol></li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+0065 LATIN SMALL LETTER E character (e) or a U+0045 LATIN
+ CAPITAL LETTER E character (E), run these substeps:</p>
+
+ <ol><li><p>Advance <var title="">position</var> to the next
+ character.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
+ <i>conversion</i>.</li>
+
+ <li>
+
+ <p>If the character indicated by <var title="">position</var> is
+ a U+002D HYPHEN-MINUS character (-):</p>
+
+ <ol><li>Change <var title="">exponent</var> to &minus;1.</li>
+
+ <li>Advance <var title="">position</var> to the next
+ character.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
+ <i>conversion</i>.</li>
+
+ </ol><p>Otherwise, if the character indicated by <var title="">position</var> is a U+002B PLUS SIGN character (+):</p>
+
+ <ol><li>Advance <var title="">position</var> to the next
+ character.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
+ <i>conversion</i>.</li>
+
+ </ol></li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
+ then jump to the step labeled <i>conversion</i>.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
+ resulting sequence as a base-ten integer. Multiply <var title="">exponent</var> by that integer.</li>
+
+ <li><p>Multiply <var title="">value</var> by ten raised to the
+ <var title="">exponent</var>th power.</li>
+
+ </ol></li>
+
+ <li><p><i>Conversion</i>: Let <var title="">S</var> be the set of
+ finite IEEE 754 double-precision floating point values except
+ &minus;0, but with two special values added: 2<sup title="">1024</sup> and &minus;2<sup title="">1024</sup>.</li>
+
+ <li><p>Let <var title="">rounded-value</var> be the number in <var title="">S</var> that is closest to <var title="">value</var>,
+ selecting the number with an even significand if there are two
+ equally close values. (The two special values 2<sup title="">1024</sup> and &minus;2<sup title="">1024</sup> are
+ considered to have even significands for this purpose.)</li>
+
+ <li><p>If <var title="">rounded-value</var> is 2<sup title="">1024</sup> or &minus;2<sup title="">1024</sup>, return an
+ error.</li>
+
+ <li><p>Return <var title="">rounded-value</var>.</li>
+
+ </ol></div>
+
+
+<div class=impl>
+ <h5 id=percentages-and-dimensions><span class=secno>2.5.4.4 </span>Percentages and lengths</h5>
+<!--(percentages are not used in valid html anymore)
+ <p>A string is a <dfn>valid dimension value</dfn> if it consists of
+ a character in the range U+0031 DIGIT ONE (1) to U+0039 DIGIT NINE
+ (9), optionally followed by zero of more characters in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), optionally followed
+ by a U+002E FULL STOP character (.) and one or more characters in
+ the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and
+ optionally suffixed by a U+0025 PERCENT SIGN character (%).</p>
+
+ <p>A <span>valid dimension value</span> represents the number that
+ is represented in base ten by that string of digits, optionally with
+ a fractional component. If the U+0025 PERCENT SIGN is present, then
+ the dimension is a percentage; otherwise, it is a length.</p>
+
+ <p class="note">For historical reasons, percentanges and lengths
+ less than 1.0 cannot be represented as <span title="valid dimension
+ value">valid dimension values</span>.</p>
+-->
+ <p>The <dfn id=rules-for-parsing-dimension-values>rules for parsing dimension values</dfn> are as given in
+ the following algorithm. When invoked, the steps must be followed in
+ the order given, aborting at the first step that returns a
+ value. This algorithm will return either a number greater than or
+ equal to 1.0, or an error; if a number is returned, then it is
+ further categorized as either a percentage or a length.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return an error.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+002B PLUS SIGN character (+), advance <var title="">position</var> to the next character.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ U+0030 DIGIT ZERO (0) characters, and discard them.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return an error.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is not one of U+0031 DIGIT ONE (1) to U+0039 DIGIT NINE (9), then
+ return an error.</li>
+
+ <!-- Ok. At this point we know we have a number. It might have
+ trailing garbage which we'll ignore, but it's a number, and we
+ won't return an error. -->
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
+ resulting sequence as a base-ten integer. Let <var title="">value</var> be that number.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return <var title="">value</var> as a
+ length.</li>
+
+ <li>
+
+ <p>If the character indicated by <var title="">position</var> is a
+ U+002E FULL STOP character (.):</p>
+
+ <ol><li><p>Advance <var title="">position</var> to the next
+ character.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the character indicated by <var title="">position</var> is not one of U+0030 DIGIT ZERO (0) to
+ U+0039 DIGIT NINE (9), then return <var title="">value</var> as a
+ length.</li>
+
+ <li><p>Let <var title="">divisor</var> have the value 1.</li>
+
+ <li><p><i>Fraction loop</i>: Multiply <var title="">divisor</var>
+ by ten.</li>
+
+ <li>Add the value of the character indicated by <var title="">position</var>, interpreted as a base-ten digit (0..9)
+ and divided by <var title="">divisor</var>, to <var title="">value</var>.</li>
+
+ <li><p>Advance <var title="">position</var> to the next
+ character.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then return <var title="">value</var> as a
+ length.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), return
+ to the step labeled <i>fraction loop</i> in these
+ substeps.</li>
+
+ </ol></li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return <var title="">value</var> as a
+ length.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+0025 PERCENT SIGN character (%), return <var title="">value</var> as a percentage.</li>
+
+ <li><p>Return <var title="">value</var> as a length.</li>
+
+ </ol></div>
+
+
+ <h5 id=lists-of-integers><span class=secno>2.5.4.5 </span>Lists of integers</h5>
+
+ <p>A <dfn id=valid-list-of-integers>valid list of integers</dfn> is a number of <a href=#valid-integer title="valid integer">valid integers</a> separated by U+002C
+ COMMA characters, with no other characters (e.g. no <a href=#space-character title="space character">space characters</a>). In addition, there
+ might be restrictions on the number of integers that can be given,
+ or on the range of values allowed.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=rules-for-parsing-a-list-of-integers>rules for parsing a list of integers</dfn> are as
+ follows:</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>Let <var title="">numbers</var> be an initially empty list
+ of integers. This list will be the result of this
+ algorithm.</li>
+
+ <li><p>If there is a character in the string <var title="">input</var> at position <var title="">position</var>, and
+ it is either a U+0020 SPACE, U+002C COMMA, or U+003B SEMICOLON
+ character, then advance <var title="">position</var> to the next
+ character in <var title="">input</var>, or to beyond the end of the
+ string if there are no more characters.</li>
+
+ <li><p>If <var title="">position</var> points to beyond the end of
+ <var title="">input</var>, return <var title="">numbers</var> and
+ abort.</li>
+
+ <li><p>If the character in the string <var title="">input</var> at
+ position <var title="">position</var> is a U+0020 SPACE, U+002C
+ COMMA, or U+003B SEMICOLON character, then return to step 4.</li>
+
+ <li><p>Let <var title="">negated</var> be false.</li>
+ <li><p>Let <var title="">value</var> be 0.</li>
+
+ <li><p>Let <var title="">started</var> be false. This variable is
+ set to true when the parser sees a number or a U+002D HYPHEN-MINUS
+ character (-).</li>
+
+ <li><p>Let <var title="">got number</var> be false. This variable
+ is set to true when the parser sees a number.</li>
+
+ <li><p>Let <var title="">finished</var> be false. This variable is
+ set to true to switch parser into a mode where it ignores
+ characters until the next separator.</li>
+
+ <li><p>Let <var title="">bogus</var> be false.</li>
+
+ <li><p><i>Parser</i>: If the character in the string <var title="">input</var> at position <var title="">position</var>
+ is:</p>
+
+ <dl class=switch><dt>A U+002D HYPHEN-MINUS character</dt>
+
+ <dd>
+
+ <p>Follow these substeps:</p>
+
+ <ol><li>If <var title="">got number</var> is true, let <var title="">finished</var> be true.</li>
+
+ <li>If <var title="">finished</var> is true, skip to the next
+ step in the overall set of steps.</li>
+
+ <li>If <var title="">started</var> is true, let <var title="">negated</var> be false.</li>
+
+ <li>Otherwise, if <var title="">started</var> is false and if <var title="">bogus</var> is false, let <var title="">negated</var>
+ be true.</li>
+
+ <li>Let <var title="">started</var> be true.</li>
+
+ </ol></dd>
+
+
+ <dt>A character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
+ NINE (9)</dt>
+
+ <dd>
+
+ <p>Follow these substeps:</p>
+
+ <ol><li>If <var title="">finished</var> is true, skip to the next
+ step in the overall set of steps.</li>
+
+ <li>Multiply <var title="">value</var> by ten.</li>
+
+ <li>Add the value of the digit, interpreted in base ten, to
+ <var title="">value</var>.</li>
+
+ <li>Let <var title="">started</var> be true.</li>
+
+ <li>Let <var title="">got number</var> be true.</li>
+
+ </ol></dd>
+
+
+ <dt>A U+0020 SPACE character</dt>
+ <dt>A U+002C COMMA character</dt>
+ <dt>A U+003B SEMICOLON character</dt>
+
+ <dd>
+
+ <p>Follow these substeps:</p>
+
+ <ol><li>If <var title="">got number</var> is false, return the <var title="">numbers</var> list and abort. This happens if an entry
+ in the list has no digits, as in "<code title="">1,2,x,4</code>".</li>
+
+ <li>If <var title="">negated</var> is true, then negate <var title="">value</var>.</li>
+
+ <li>Append <var title="">value</var> to the <var title="">numbers</var> list.</li>
+
+ <li>Jump to step 4 in the overall set of steps.</li>
+
+ </ol></dd>
+
+
+ <!-- <dt>A U+002E FULL STOP character</dt> -->
+ <dt>A character in the range U+0001 to U+001F, <!-- space --> U+0021 to U+002B, <!-- comma --> U+002D to U+002F, <!-- digits --> U+003A, <!-- semicolon --> U+003C to U+0040, <!-- a-z --> U+005B to U+0060, <!-- A-Z --> U+007b to U+007F
+ (i.e. any other non-alphabetic ASCII character)</dt>
+
+ <!--
+ Test: http://www.hixie.ch/tests/adhoc/html/flow/image-maps/004-demo.html
+ IE6 on Wine treats the following characters like this also: U+1-U+1f,
+ U+21-U+2b, U+2d-U+2f, U+3a, U+3c-U+40, U+5b-U+60, U+7b-U+82,
+ U+84-U+89, U+8b, U+8d, U+8f-U+99, U+9b, U+9d, U+a0-U+bf, U+d7, U+f7,
+ U+1f6-U+1f9, U+218-U+24f, U+2a9-U+385, U+387, U+38b, U+38d, U+3a2,
+ U+3cf, U+3d7-U+3d9, U+3db, U+3dd, U+3df, U+3e1, U+3f4-U+400, U+40d,
+ U+450, U+45d, U+482-U+48f, U+4c5-U+4c6, U+4c9-U+4ca, U+4cd-U+4cf,
+ U+4ec-U+4ed, U+4f6-U+4f7, U+4fa-U+530, U+557-U+560, U+588-U+5cf,
+ U+5eb-U+5ef, U+5f3-U+620, U+63b-U+640, U+64b-U+670, U+6b8-U+6b9,
+ U+6bf, U+6cf, U+6d4, U+6d6-U+904, U+93a-U+957, U+962-U+984,
+ U+98d-U+98e, U+991-U+992, U+9a9, U+9b1, U+9b3-U+9b5, U+9ba-U+9db,
+ U+9de, U+9e2-U+9ef, U+9f2-U+a04, U+a0b-U+a0e, U+a11-U+a12, U+a29,
+ U+a31, U+a34, U+a37, U+a3a-U+a58, U+a5d, U+a5f-U+a84, U+a8c, U+a8e,
+ U+a92, U+aa9, U+ab1, U+ab4, U+aba-U+adf, U+ae1-U+b04, U+b0d-U+b0e,
+ U+b11-U+b12, U+b29, U+b31, U+b34-U+b35, U+b3a-U+b5b, U+b5e,
+ U+b62-U+b84, U+b8b-U+b8d, U+b91, U+b96-U+b98, U+b9b, U+b9d,
+ U+ba0-U+ba2, U+ba5-U+ba7, U+bab-U+bad, U+bb6, U+bba-U+c04, U+c0d,
+ U+c11, U+c29, U+c34, U+c3a-U+c5f, U+c62-U+c84, U+c8d, U+c91, U+ca9,
+ U+cb4, U+cba-U+cdd, U+cdf, U+ce2-U+d04, U+d0d, U+d11, U+d29,
+ U+d3a-U+d5f, U+d62-U+e00, U+e2f, U+e31, U+e34-U+e3f, U+e46-U+e80,
+ U+e83, U+e85-U+e86, U+e89, U+e8b-U+e8c, U+e8e-U+e93, U+e98, U+ea0,
+ U+ea4, U+ea6, U+ea8-U+ea9, U+eac, U+eaf-U+edb, U+ede-U+109f,
+ U+10c6-U+10cf, U+10f7-U+10ff, U+115a-U+115e, U+11a3-U+11a7,
+ U+11fa-U+1dff, U+1e9b-U+1e9f, U+1efa-U+1eff, U+1f16-U+1f17,
+ U+1f1e-U+1f1f, U+1f46-U+1f47, U+1f4e-U+1f4f, U+1f58, U+1f5a, U+1f5c,
+ U+1f5e, U+1f7e-U+1f7f, U+1fb5, U+1fbd-U+1fc1, U+1fc5, U+1fcd-U+1fcf,
+ U+1fd4-U+1fd5, U+1fdc-U+1fdf, U+1fed-U+1ff1, U+1ff5, U+1ffd-U+249b,
+ U+24ea-U+3004, U+3006-U+3040, U+3095-U+309a, U+309f-U+30a0, U+30fb,
+ U+30ff-U+3104, U+312d-U+3130, U+318f-U+4dff, U+9fa6-U+abff,
+ U+d7a4-U+d7ff, U+e000-U+f8ff, U+fa2e-U+faff, U+fb07-U+fb12,
+ U+fb18-U+fb1e, U+fb37, U+fb3d, U+fb3f, U+fb42, U+fb45, U+fbb2-U+fbd2,
+ U+fbe9, U+fce1, U+fd3e-U+fd4f, U+fd90-U+fd91, U+fdc8-U+fdef,
+ U+fdfc-U+fe7f, U+fefd-U+ff20, U+ff3b-U+ff40, U+ff5b-U+ff65, U+ffa0,
+ U+ffbf-U+ffc1, U+ffc8-U+ffc9, U+ffd0-U+ffd1, U+ffd8-U+ffd9,
+ U+ffdd-U+ffff
+ IE7 on Win2003 treats the following characters like this also
+ instead: U+1-U+1f, U+21-U+2b, U+2d-U+2f, U+3a, U+3c-U+40, U+5b-U+60,
+ U+7b-U+82, U+84-U+89, U+8b, U+8d, U+8f-U+99, U+9b, U+9d, U+a0-U+a9,
+ U+ab-U+b4, U+b6-U+b9, U+bb-U+bf, U+d7, U+f7, U+220-U+221,
+ U+234-U+24f, U+2ae-U+2af, U+2b9-U+2ba, U+2c2-U+2df, U+2e5-U+2ed,
+ U+2ef-U+344, U+346-U+379, U+37b-U+385, U+387, U+38b, U+38d, U+3a2,
+ U+3cf, U+3d8-U+3d9, U+3f4-U+3ff, U+482-U+48b, U+4c5-U+4c6,
+ U+4c9-U+4ca, U+4cd-U+4cf, U+4f6-U+4f7, U+4fa-U+530, U+557-U+558,
+ U+55a-U+560, U+588-U+5cf, U+5eb-U+5ef, U+5f3-U+620, U+63b-U+640,
+ U+656-U+66f, U+6d4, U+6dd-U+6e0, U+6e9-U+6ec, U+6ee-U+6f9,
+ U+6fd-U+70f, U+72d-U+72f, U+740-U+77f, U+7b1-U+900, U+904,
+ U+93a-U+93c, U+94d - U+94f, U+951-U+957, U+964-U+980, U+984,
+ U+98d-U+98e, U+991-U+992, U+9a9, U+9b1, U+9b3-U+9b5, U+9ba-U+9bd,
+ U+9c5-U+9c6, U+9c9-U+9ca, U+9cd-U+9d6, U+9d8-U+9db, U+9de,
+ U+9e4-U+9ef, U+9f2-U+a01, U+a03-U+a04, U+a0b-U+a0e, U+a11-U+a12,
+ U+a29, U+a31, U+a34, U+a37, U+a3a-U+a3d, U+a43-U+a46, U+a49-U+a4a,
+ U+a4d-U+a58, U+a5d, U+a5f-U+a6f, U+a75-U+a80, U+a84, U+a8c, U+a8e,
+ U+a92, U+aa9, U+ab1, U+ab4, U+aba-U+abc, U+ac6, U+aca, U+acd-U+acf,
+ U+ad1-U+adf, U+ae1-U+b00, U+b04, U+b0d-U+b0e, U+b11-U+b12, U+b29,
+ U+b31, U+b34-U+b35, U+b3a-U+b3c, U+b44-U+b46, U+b49 - U+b4a,
+ U+b4d-U+b55, U+b58-U+b5b, U+b5e, U+b62-U+b81, U+b84, U+b8b-U+b8d,
+ U+b91, U+b96-U+b98, U+b9b, U+b9d, U+ba0 - U+ba2, U+ba5-U+ba7,
+ U+bab-U+bad, U+bb6, U+bba-U+bbd, U+bc3-U+bc5, U+bc9, U+bcd-U+bd6,
+ U+bd8-U+c00, U+c04, U+c0d, U+c11, U+c29, U+c34, U+c3a-U+c3d, U+c45,
+ U+c49, U+c4d-U+c54, U+c57-U+c5f, U+c62-U+c81, U+c84, U+c8d, U+c91,
+ U+ca9, U+cb4, U+cba-U+cbd, U+cc5, U+cc9, U+ccd-U+cd4, U+cd7-U+cdd,
+ U+cdf, U+ce2-U+d01, U+d04, U+d0d, U+d11, U+d29, U+d3a-U+d3d,
+ U+d44-U+d45, U+d49, U+d4d-U+d56, U+d58-U+d5f, U+d62-U+d81, U+d84,
+ U+d97-U+d99, U+db2, U+dbc, U+dbe - U+dbf, U+dc7-U+dce, U+dd5, U+dd7,
+ U+de0-U+df1, U+df4-U+e00, U+e3b-U+e3f, U+e4f-U+e80, U+e83,
+ U+e85-U+e86, U+e89, U+e8b-U+e8c, U+e8e-U+e93, U+e98, U+ea0, U+ea4,
+ U+ea6, U+ea8-U+ea9, U+eac, U+eba, U+ebe-U+ebf, U+ec5-U+ecc,
+ U+ece-U+edb, U+ede-U+eff, U+f01-U+f3f, U+f48, U+f6b-U+f70,
+ U+f82-U+f87, U+f8c-U+f8f, U+f98, U+fbd-U+fff, U+1022, U+1028, U+102b,
+ U+1033-U+1035, U+1037, U+1039-U+104f, U+105a-U+109f, U+10c6-U+10cf,
+ U+10f7-U+10ff, U+115a - U+115e, U+11a3-U+11a7, U+11fa-U+11ff, U+1207,
+ U+1247, U+1249, U+124e-U+124f, U+1257, U+1259, U+125e-U+125f, U+1287,
+ U+1289, U+128e-U+128f, U+12af, U+12b1, U+12b6-U+12b7, U+12bf, U+12c1,
+ U+12c6-U+12c7, U+12cf, U+12d7, U+12ef, U+130f, U+1311, U+1316-U+1317,
+ U+131f, U+1347, U+135b-U+139f, U+13f5-U+1400, U+166d-U+166e,
+ U+1677-U+1680, U+169b - U+169f, U+16eb-U+177f, U+17c9-U+181f, U+1843,
+ U+1878-U+187f, U+18aa-U+1dff, U+1e9c-U+1e9f, U+1efa-U+1eff,
+ U+1f16-U+1f17, U+1f1e-U+1f1f, U+1f46-U+1f47, U+1f4e-U+1f4f, U+1f58,
+ U+1f5a, U+1f5c, U+1f5e, U+1f7e-U+1f7f, U+1fb5, U+1fbd, U+1fbf-U+1fc1,
+ U+1fc5, U+1fcd-U+1fcf, U+1fd4-U+1fd5, U+1fdc-U+1fdf, U+1fed-U+1ff1,
+ U+1ff5, U+1ffd-U+207e, U+2080-U+2101, U+2103-U+2106, U+2108-U+2109,
+ U+2114, U+2116-U+2118, U+211e-U+2123, U+2125, U+2127, U+2129, U+212e,
+ U+2132, U+213a-U+215f, U+2184-U+3005, U+3008-U+3020, U+302a-U+3037,
+ U+303b-U+3104, U+312d-U+3130, U+318f - U+319f, U+31b8-U+33ff,
+ U+4db6-U+4dff, U+9fa6-U+9fff, U+a48d-U+abff, U+d7a4-U+d7ff,
+ U+e000-U+f8ff, U+fa2e-U+faff, U+fb07-U+fb12, U+fb18-U+fb1c, U+fb1e,
+ U+fb29, U+fb37, U+fb3d, U+fb3f, U+fb42, U+fb45, U+fbb2-U+fbd2,
+ U+fd3e-U+fd4f, U+fd90-U+fd91, U+fdc8-U+fdef, U+fdfc-U+fe6f, U+fe73,
+ U+fe75, U+fefd-U+ff20, U+ff3b-U+ff40, U+ff5b-U+ff9f, U+ffbf-U+ffc1,
+ U+ffc8-U+ffc9, U+ffd0-U+ffd1, U+ffd8-U+ffd9, U+ffdd-U+ffff
+ -->
+
+ <dd>
+
+ <p>Follow these substeps:</p>
+
+ <ol><li>If <var title="">got number</var> is true, let <var title="">finished</var> be true.</li>
+
+ <li>If <var title="">finished</var> is true, skip to the next
+ step in the overall set of steps.</li>
+
+ <li>Let <var title="">negated</var> be false.</li>
+
+ </ol></dd>
+
+
+ <dt>Any other character</dt>
+ <!-- alphabetic a-z A-Z, and non-ASCII -->
+
+ <dd>
+
+ <p>Follow these substeps:</p>
+
+ <ol><li>If <var title="">finished</var> is true, skip to the next
+ step in the overall set of steps.</li>
+
+ <li>Let <var title="">negated</var> be false.</li>
+
+ <li>Let <var title="">bogus</var> be true.</li>
+
+ <li>If <var title="">started</var> is true, then return the
+ <var title="">numbers</var> list, and abort. (The value in <var title="">value</var> is not appended to the list first; it is
+ dropped.)</li>
+
+ </ol></dd>
+
+ </dl></li>
+
+ <li><p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>, or to beyond the end of the string if
+ there are no more characters.</li>
+
+ <li><p>If <var title="">position</var> points to a character (and
+ not to beyond the end of <var title="">input</var>), jump to the
+ big <i>Parser</i> step above.</li>
+
+ <li><p>If <var title="">negated</var> is true, then negate <var title="">value</var>.</li>
+
+ <li><p>If <var title="">got number</var> is true, then append <var title="">value</var> to the <var title="">numbers</var> list.</li>
+
+ <li><p>Return the <var title="">numbers</var> list and
+ abort.</li>
+
+ </ol></div>
+
+
+ <div class=impl>
+
+ <h5 id=lists-of-dimensions><span class=secno>2.5.4.6 </span>Lists of dimensions</h5>
+
+ <!-- no definition of a type since no conforming feature uses this
+ syntax (it's only used in cols="" and rows="" on <frameset> -->
+
+ <p>The <dfn id=rules-for-parsing-a-list-of-dimensions>rules for parsing a list of dimensions</dfn> are as
+ follows. These rules return a list of zero or more pairs consisting
+ of a number and a unit, the unit being one of <i>percentage</i>,
+ <i>relative</i>, and <i>absolute</i>.</p>
+
+ <ol><li><p>Let <var title="">raw input</var> be the string being
+ parsed.</li>
+
+ <li><p>If the last character in <var title="">raw input</var> is a
+ U+002C COMMA character (,), then remove that character from <var title="">raw input</var>.</li>
+
+ <li><p><a href=#split-a-string-on-commas title="split a string on commas">Split the string <var title="">raw input</var> on commas</a>. Let <var title="">raw
+ tokens</var> be the resulting list of tokens.</li>
+
+ <li><p>Let <var title="">result</var> be an empty list of
+ number/unit pairs.</li>
+
+ <li>
+
+ <p>For each token in <var title="">raw tokens</var>, run the
+ following substeps:</p>
+
+ <ol><li><p>Let <var title="">input</var> be the token.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>Let <var title="">value</var> be the number 0.</li>
+
+ <li><p>Let <var title="">unit</var> be <i>absolute</i>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, set <var title="">unit</var> to
+ <i>relative</i> and jump to the last substep.</li>
+
+ <li><p>If the character at <var title="">position</var> is a
+ character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE
+ (9), <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), interpret the
+ resulting sequence as an integer in base ten, and increment <var title="">value</var> by that integer.</li>
+
+ <li>
+
+ <p>If the character at <var title="">position</var> is a U+002E
+ FULL STOP character (.), run these substeps:</p>
+
+ <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> consisting
+ of <a href=#space-character title="space character">space characters</a> and
+ characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
+ NINE (9). Let <var title="">s</var> be the resulting
+ sequence.</li>
+
+ <li><p>Remove all <a href=#space-character title="space character">space
+ characters</a> in <var title="">s</var>.</li>
+
+ <li>
+
+ <p>If <var title="">s</var> is not the empty string, run these
+ subsubsteps:</p>
+
+ <ol><li><p>Let <var title="">length</var> be the number of
+ characters in <var title="">s</var> (after the spaces were
+ removed).</li>
+
+ <li><p>Let <var title="">fraction</var> be the result of
+ interpreting <var title="">s</var> as a base-ten integer, and
+ then dividing that number by <span title="">10<sup title=""><var title="">length</var></sup></span>.</li>
+
+ <li><p>Increment <var title="">value</var> by <var title="">fraction</var>.</li>
+
+ </ol></li>
+
+ </ol></li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li>
+
+ <p>If the character at <var title="">position</var> is a U+0025
+ PERCENT SIGN character (%), then set <var title="">unit</var> to
+ <i>percentage</i>.</p>
+
+ <p>Otherwise, if the character at <var title="">position</var>
+ is a U+002A ASTERISK character (*), then set <var title="">unit</var> to <i>relative</i>.</p>
+
+ </li>
+
+ <!-- the remaining characters in /input/ are ignored -->
+
+ <li><p>Add an entry to <var title="">result</var> consisting of
+ the number given by <var title="">value</var> and the unit given
+ by <var title="">unit</var>.</li>
+
+ </ol></li>
+
+ <li><p>Return the list <var title="">result</var>.</li>
+
+ </ol></div>
+
+
+ <h4 id=dates-and-times><span class=secno>2.5.5 </span>Dates and times</h4>
+
+ <p>In the algorithms below, the <dfn id=number-of-days-in-month-month-of-year-year>number of days in month <var title="">month</var> of year <var title="">year</var></dfn> is:
+ <em>31</em> if <var title="">month</var> is 1, 3, 5, 7, 8, 10, or
+ 12; <em>30</em> if <var title="">month</var> is 4, 6, 9, or 11;
+ <em>29</em> if <var title="">month</var> is 2 and <var title="">year</var> is a number divisible by 400, or if <var title="">year</var> is a number divisible by 4 but not by 100; and
+ <em>28</em> otherwise. This takes into account leap years in the
+ Gregorian calendar. <a href=#refsGREGORIAN>[GREGORIAN]</a></p>
+
+ <p>The <dfn id=concept-datetime-digit title=concept-datetime-digit>digits</dfn> in the date
+ and time syntaxes defined in this section must be characters in the
+ range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), used to
+ express numbers in base ten.</p>
+
+ <div class=impl>
+
+ <p class=note>While the formats described here are intended to be
+ subsets of the corresponding ISO8601 formats, this specification
+ defines parsing rules in much more detail than ISO8601.
+ Implementors are therefore encouraged to carefully examine any date
+ parsing libraries before using them to implement the parsing rules
+ described below; ISO8601 libraries might not parse dates and times
+ in exactly the same manner. <a href=#refsISO8601>[ISO8601]</a></p>
+
+ </div>
+
+
+ <h5 id=months><span class=secno>2.5.5.1 </span>Months</h5>
+
+ <p>A <dfn id=concept-month title=concept-month>month</dfn> consists of a specific
+ proleptic Gregorian date with no time-zone information and no date
+ information beyond a year and a month. <a href=#refsGREGORIAN>[GREGORIAN]</a></p>
+
+ <p>A string is a <dfn id=valid-month-string>valid month string</dfn> representing a year
+ <var title="">year</var> and month <var title="">month</var> if it
+ consists of the following components in the given order:</p>
+
+ <ol><li>Four or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing <var title="">year</var>, where <var title="">year</var>&nbsp;&gt;&nbsp;0</li>
+
+ <li>A U+002D HYPHEN-MINUS character (-)</li>
+
+ <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
+ representing the month <var title="">month</var>, in the range
+ 1&nbsp;&le;&nbsp;<var title="">month</var>&nbsp;&le;&nbsp;12</li>
+
+ </ol><div class=impl>
+
+ <p>The rules to <dfn id=parse-a-month-string>parse a month string</dfn> are as follows. This
+ will return either a year and month, or nothing. If at any point the
+ algorithm says that it "fails", this means that it is aborted at
+ that point and returns nothing.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#parse-a-month-component>Parse a month component</a> to obtain <var title="">year</var> and <var title="">month</var>. If this returns
+ nothing, then fail.</p>
+
+ <li><p>If <var title="">position</var> is <em>not</em> beyond the
+ end of <var title="">input</var>, then fail.</li>
+
+ <li><p>Return <var title="">year</var> and <var title="">month</var>.</li>
+
+ </ol><p>The rules to <dfn id=parse-a-month-component>parse a month component</dfn>, given an <var title="">input</var> string and a <var title="">position</var>, are
+ as follows. This will return either a year and a month, or
+ nothing. If at any point the algorithm says that it "fails", this
+ means that it is aborted at that point and returns nothing.</p>
+
+ <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
+ sequence is not at least four characters long, then
+ fail. Otherwise, interpret the resulting sequence as a base-ten
+ integer. Let that number be the <var title="">year</var>.</li>
+
+ <li><p>If <var title="">year</var> is not a number greater than
+ zero, then fail.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+002D HYPHEN-MINUS character,
+ then fail. Otherwise, move <var title="">position</var> forwards
+ one character.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
+ sequence is not exactly two characters long, then fail. Otherwise,
+ interpret the resulting sequence as a base-ten integer. Let that
+ number be the <var title="">month</var>.</li>
+
+ <li><p>If <var title="">month</var> is not a number in the range
+ 1&nbsp;&le;&nbsp;<var title="">month</var>&nbsp;&le;&nbsp;12, then
+ fail.</li>
+
+ <li><p>Return <var title="">year</var> and <var title="">month</var>.</li>
+
+ </ol></div>
+
+
+ <h5 id=dates><span class=secno>2.5.5.2 </span>Dates</h5>
+
+ <p>A <dfn id=concept-date title=concept-date>date</dfn> consists of a specific
+ proleptic Gregorian date with no time-zone information, consisting
+ of a year, a month, and a day. <a href=#refsGREGORIAN>[GREGORIAN]</a></p>
+
+ <p>A string is a <dfn id=valid-date-string>valid date string</dfn> representing a year
+ <var title="">year</var>, month <var title="">month</var>, and day
+ <var title="">day</var> if it consists of the following components
+ in the given order:</p>
+
+ <ol><li>A <a href=#valid-month-string>valid month string</a>, representing <var title="">year</var> and <var title="">month</var></li>
+
+ <li>A U+002D HYPHEN-MINUS character (-)</li>
+
+ <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
+ representing <var title="">day</var>, in the range
+ 1&nbsp;&le;&nbsp;<var title="">day</var>&nbsp;&le;&nbsp;<var title="">maxday</var> where <var title="">maxday</var> is the <a href=#number-of-days-in-month-month-of-year-year title="number of days in month month of year year">number of days
+ in the month <var title="">month</var> and year <var title="">year</var></a></li>
+
+ </ol><div class=impl>
+
+ <p>The rules to <dfn id=parse-a-date-string>parse a date string</dfn> are as follows. This
+ will return either a date, or nothing. If at any point the algorithm
+ says that it "fails", this means that it is aborted at that point
+ and returns nothing.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#parse-a-date-component>Parse a date component</a> to obtain <var title="">year</var>, <var title="">month</var>, and <var title="">day</var>. If this returns nothing, then fail.</p>
+
+ <li><p>If <var title="">position</var> is <em>not</em> beyond the
+ end of <var title="">input</var>, then fail.</li>
+
+ <li><p>Let <var title="">date</var> be the date with year <var title="">year</var>, month <var title="">month</var>, and day <var title="">day</var>.</li>
+
+ <li><p>Return <var title="">date</var>.</li>
+
+ </ol><p>The rules to <dfn id=parse-a-date-component>parse a date component</dfn>, given an <var title="">input</var> string and a <var title="">position</var>, are
+ as follows. This will return either a year, a month, and a day, or
+ nothing. If at any point the algorithm says that it "fails", this
+ means that it is aborted at that point and returns nothing.</p>
+
+ <ol><li><p><a href=#parse-a-month-component>Parse a month component</a> to obtain <var title="">year</var> and <var title="">month</var>. If this returns
+ nothing, then fail.</li>
+
+ <li><p>Let <var title="">maxday</var> be the <a href=#number-of-days-in-month-month-of-year-year>number of days
+ in month <var title="">month</var> of year <var title="">year</var></a>.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+002D HYPHEN-MINUS character,
+ then fail. Otherwise, move <var title="">position</var> forwards
+ one character.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
+ sequence is not exactly two characters long, then fail. Otherwise,
+ interpret the resulting sequence as a base-ten integer. Let that
+ number be the <var title="">day</var>.</li>
+
+ <li><p>If <var title="">day</var> is not a number in the range
+ 1&nbsp;&le;&nbsp;<var title="">day</var>&nbsp;&le;&nbsp;<var title="">maxday</var>, then fail.</li>
+
+ <li><p>Return <var title="">year</var>, <var title="">month</var>,
+ and <var title="">day</var>.</li>
+
+ </ol></div>
+
+
+ <h5 id=times><span class=secno>2.5.5.3 </span>Times</h5>
+
+ <p>A <dfn id=concept-time title=concept-time>time</dfn> consists of a specific
+ time with no time-zone information, consisting of an hour, a minute,
+ a second, and a fraction of a second.</p>
+
+ <p>A string is a <dfn id=valid-time-string>valid time string</dfn> representing an hour
+ <var title="">hour</var>, a minute <var title="">minute</var>, and a
+ second <var title="">second</var> if it consists of the following
+ components in the given order:</p>
+
+ <ol><li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
+ representing <var title="">hour</var>, in the range
+ 0&nbsp;&le;&nbsp;<var title="">hour</var>&nbsp;&le;&nbsp;23</li>
+
+ <li>A U+003A COLON character (:)</li>
+
+ <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
+ representing <var title="">minute</var>, in the range
+ 0&nbsp;&le;&nbsp;<var title="">minute</var>&nbsp;&le;&nbsp;59</li>
+
+ <li>Optionally (required if <var title="">second</var> is
+ non-zero):
+
+ <ol><li>A U+003A COLON character (:)</li>
+
+ <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
+ representing the integer part of <var title="">second</var>, in
+ the range 0&nbsp;&le;&nbsp;<var title="">s</var>&nbsp;&le;&nbsp;59</li>
+
+ <li>Optionally (required if <var title="">second</var> is not an
+ integer):
+
+ <ol><li>A 002E FULL STOP character (.)</li>
+
+ <li>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing the
+ fractional part of <var title="">second</var></li>
+
+ </ol></li>
+
+ </ol></li>
+
+ </ol><p class=note>The <var title="">second</var> component cannot be
+ 60 or 61; leap seconds cannot be represented.</p>
+
+ <div class=impl>
+
+ <p>The rules to <dfn id=parse-a-time-string>parse a time string</dfn> are as follows. This
+ will return either a time, or nothing. If at any point the algorithm
+ says that it "fails", this means that it is aborted at that point
+ and returns nothing.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#parse-a-time-component>Parse a time component</a> to obtain <var title="">hour</var>, <var title="">minute</var>, and <var title="">second</var>. If this returns nothing, then fail.</p>
+
+ <li><p>If <var title="">position</var> is <em>not</em> beyond the
+ end of <var title="">input</var>, then fail.</li>
+
+ <li><p>Let <var title="">time</var> be the time with hour <var title="">hour</var>, minute <var title="">minute</var>, and second
+ <var title="">second</var>.</li>
+
+ <li><p>Return <var title="">time</var>.</li>
+
+ </ol><p>The rules to <dfn id=parse-a-time-component>parse a time component</dfn>, given an <var title="">input</var> string and a <var title="">position</var>, are
+ as follows. This will return either an hour, a minute, and a second,
+ or nothing. If at any point the algorithm says that it "fails", this
+ means that it is aborted at that point and returns nothing.</p>
+
+ <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
+ sequence is not exactly two characters long, then fail. Otherwise,
+ interpret the resulting sequence as a base-ten integer. Let that
+ number be the <var title="">hour</var>.</li>
+
+ <li>If <var title="">hour</var> is not a number in the range
+ 0&nbsp;&le;&nbsp;<var title="">hour</var>&nbsp;&le;&nbsp;23, then
+ fail.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+003A COLON character, then
+ fail. Otherwise, move <var title="">position</var> forwards one
+ character.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
+ sequence is not exactly two characters long, then fail. Otherwise,
+ interpret the resulting sequence as a base-ten integer. Let that
+ number be the <var title="">minute</var>.</li>
+
+ <li>If <var title="">minute</var> is not a number in the range
+ 0&nbsp;&le;&nbsp;<var title="">minute</var>&nbsp;&le;&nbsp;59, then
+ fail.</li>
+
+ <li><p>Let <var title="">second</var> be a string with the value
+ "0".</li>
+
+ <li>
+
+ <p>If <var title="">position</var> is not beyond the end of
+ <var title="">input</var> and the character at <var title="">position</var> is a U+003A COLON, then run these
+ substeps:</p>
+
+ <ol><li><p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var>, or at the last character in <var title="">input</var>, or if the next <em>two</em> characters in
+ <var title="">input</var> starting at <var title="">position</var> are not two characters both in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
+ fail.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ either characters in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9) or U+002E FULL STOP characters. If the collected
+ sequence is three characters long, or if it is longer than three
+ characters long and the third character is not a U+002E FULL STOP
+ character, or if it has more than one U+002E FULL STOP character,
+ then fail. Otherwise, let the collected string be <var title="">second</var> instead of its previous value.</li>
+
+ </ol></li>
+
+ <li><p>Interpret <var title="">second</var> as a base-ten number
+ (possibly with a fractional part). Let <var title="">second</var>
+ be that number instead of the string version.</li>
+
+ <li><p>If <var title="">second</var> is not a number in the range
+ 0&nbsp;&le;&nbsp;<var title="">second</var>&nbsp;&lt;&nbsp;60, then
+ fail.</li>
+
+ <li><p>Return <var title="">hour</var>, <var title="">minute</var>,
+ and <var title="">second</var>.</li>
+
+ </ol></div>
+
+
+ <h5 id=local-dates-and-times><span class=secno>2.5.5.4 </span>Local dates and times</h5>
+
+ <p>A <dfn id=concept-datetime-local title=concept-datetime-local>local date and time</dfn>
+ consists of a specific proleptic Gregorian date, consisting of a
+ year, a month, and a day, and a time, consisting of an hour, a
+ minute, a second, and a fraction of a second, but expressed without
+ a time zone. <a href=#refsGREGORIAN>[GREGORIAN]</a></p>
+
+ <p>A string is a <dfn id=valid-local-date-and-time-string>valid local date and time string</dfn>
+ representing a date and time if it consists of the following
+ components in the given order:</p>
+
+ <ol><li>A <a href=#valid-date-string>valid date string</a> representing the date.</li>
+
+ <li>A U+0054 LATIN CAPITAL LETTER T character (T).</li>
+
+ <li>A <a href=#valid-time-string>valid time string</a> representing the time.</li>
+
+ </ol><div class=impl>
+
+ <p>The rules to <dfn id=parse-a-local-date-and-time-string>parse a local date and time string</dfn> are as
+ follows. This will return either a date and time, or nothing. If at
+ any point the algorithm says that it "fails", this means that it is
+ aborted at that point and returns nothing.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#parse-a-date-component>Parse a date component</a> to obtain <var title="">year</var>, <var title="">month</var>, and <var title="">day</var>. If this returns nothing, then fail.</p>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+0054 LATIN CAPITAL LETTER T
+ character (T) then fail. Otherwise, move <var title="">position</var> forwards one character.</li>
+
+ <li><p><a href=#parse-a-time-component>Parse a time component</a> to obtain <var title="">hour</var>, <var title="">minute</var>, and <var title="">second</var>. If this returns nothing, then fail.</p>
+
+ <li><p>If <var title="">position</var> is <em>not</em> beyond the
+ end of <var title="">input</var>, then fail.</li>
+
+ <li><p>Let <var title="">date</var> be the date with year <var title="">year</var>, month <var title="">month</var>, and day <var title="">day</var>.</li>
+
+ <li><p>Let <var title="">time</var> be the time with hour <var title="">hour</var>, minute <var title="">minute</var>, and second
+ <var title="">second</var>.</li>
+
+ <li><p>Return <var title="">date</var> and <var title="">time</var>.</li>
+
+ </ol></div>
+
+
+
+ <h5 id=global-dates-and-times><span class=secno>2.5.5.5 </span>Global dates and times</h5>
+
+ <p>A <dfn id=concept-datetime title=concept-datetime>global date and time</dfn>
+ consists of a specific proleptic Gregorian date, consisting of a
+ year, a month, and a day, and a time, consisting of an hour, a
+ minute, a second, and a fraction of a second, expressed with a
+ time-zone offset, consisting of a signed number of hours and
+ minutes. <a href=#refsGREGORIAN>[GREGORIAN]</a></p>
+
+ <p>A string is a <dfn id=valid-global-date-and-time-string>valid global date and time string</dfn>
+ representing a date, time, and a time-zone offset if it consists of
+ the following components in the given order:</p>
+
+ <ol><li>A <a href=#valid-date-string>valid date string</a> representing the date</li>
+
+ <li>A U+0054 LATIN CAPITAL LETTER T character (T)</li>
+
+ <li>A <a href=#valid-time-string>valid time string</a> representing the time</li>
+
+ <li>Either:
+
+ <ul><li>A U+005A LATIN CAPITAL LETTER Z character (Z), allowed only
+ if the time zone is UTC</li>
+
+ <li>Or:
+
+ <ol><li>Either a U+002B PLUS SIGN character (+) or, if the
+ time-zone offset is not zero, a U+002D HYPHEN-MINUS character
+ (-), representing the sign of the time-zone offset</li>
+ <!-- the -00:00 offset is disallowed because RFC3339 gives it a
+ special semantic -->
+
+ <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
+ representing the hours component <var title="">hour</var> of
+ the time-zone offset, in the range 0&nbsp;&le;&nbsp;<var title="">hour</var>&nbsp;&le;&nbsp;23</li>
+
+ <li>A U+003A COLON character (:)</li>
+
+ <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
+ representing the minutes component <var title="">minute</var>
+ of the time-zone offset, in the range 0&nbsp;&le;&nbsp;<var title="">minute</var>&nbsp;&le;&nbsp;59</li>
+
+ </ol></li>
+
+ </ul></li>
+
+ </ol><p class=note>This format allows for time-zone offsets from -23:59
+ to +23:59. In practice, however, the range of offsets of actual time
+ zones is -12:00 to +14:00, and the minutes component of offsets of
+ actual time zones is always either 00, 30, or 45.</p>
+
+ <p>Times in dates before the formation of UTC in the mid twentieth
+ century must be expressed and interpreted in terms of UT1
+ (contemporary Earth solar time at the 0&deg; longitude), not UTC
+ (the approximation of UT1 that ticks in SI seconds). Time before the
+ formation of time zones must be expressed and interpeted as UT1
+ times with explicit time zones that approximate the contemporary
+ difference between the appropriate local time and the time observed
+ at the location of Greenwich, London.</p>
+
+ <div class=example>
+
+ <p>The following are some examples of dates written as <a href=#valid-global-date-and-time-string title="valid global date and time string">valid global date and
+ time strings</a>.</p>
+
+ <dl><dt>"<code>0037-12-13T00:00Z</code>"</dt>
+
+ <dd>Midnight in areas using London time on the birthday of Nero
+ (the Roman Emperor). See below for further discussion on which
+ date this actually corresponds to.</dd>
+
+ <dt>"<code>1979-10-14T12:00:00.001-04:00</code>"</dt>
+
+ <dd>One millisecond after noon on October 14th 1979, in the time
+ zone in use on the east coast of the USA during daylight saving
+ time.</dd>
+
+ <dt>"<code>8592-01-01T02:09+02:09</code>"</dt>
+
+ <dd>Midnight UTC on the 1st of January, 8592. The time zone
+ associated with that time is two hours and nine minutes ahead of
+ UTC, which is not currently a real time zone, but is nonetheless
+ allowed.</dd>
+
+ </dl><p>Several things are notable about these dates:</p>
+
+ <ul><li>Years with fewer than four digits have to be
+ zero-padded. The date "37-12-13" would not be a valid date.</li>
+
+ <li>To unambiguously identify a moment in time prior to the
+ introduction of the Gregorian calendar (insofar as moments in time
+ before the formation of UTC can be unambiguously identified), the
+ date has to be first converted to the Gregorian calendar from the
+ calendar in use at the time (e.g. from the Julian calendar). The
+ date of Nero's birth is the 15th of December 37, in the Julian
+ Calendar, which is the 13th of December 37 in the proleptic
+ Gregorian Calendar.</li> <!-- This might not be true. I can't find
+ a reference that gives his birthday with an explicit statement
+ about the calendar being used. However, it seems unlikely that it
+ would be given in the Gregorian calendar, so I assume sites use
+ the Julian one. -->
+
+ <li>The time and time-zone offset components are not optional.</li>
+
+ <li>Dates before the year one can't be represented as a datetime
+ in this version of HTML.</li>
+
+ <li>Times of specific events in ancient times are, at best,
+ approximations, since time was not well coordinated or measured
+ until relatively recent decades.</li>
+
+ <li>Time-zone offsets differ based on daylight savings time.</li>
+
+ </ul></div>
+
+ <p>A string is a <dfn id=valid-forced-utc-global-date-and-time-string>valid forced-UTC global date and time
+ string</dfn> representing a date, time, and a time-zone offset if it
+ consists of the following components in the given order:</p>
+
+ <ol><li>A <a href=#valid-date-string>valid date string</a> representing the date converted to the UTC time zone</li>
+
+ <li>A U+0054 LATIN CAPITAL LETTER T character (T)</li>
+
+ <li>A <a href=#valid-time-string>valid time string</a> representing the time converted to the UTC time zone and expressed as the shortest possible string for the given time (e.g. omitting the seconds component entirely if the given time is zero seconds past the minute)</li>
+
+ <li>A U+005A LATIN CAPITAL LETTER Z character (Z)</li>
+
+ </ol><div class=impl>
+
+ <p>The <dfn id=best-representation-of-the-global-date-and-time-string>best representation of the global date and time
+ string</dfn> <var title="">datetime</var> is the <a href=#valid-global-date-and-time-string>valid global
+ date and time string</a> representing <var title="">datetime</var>, with the <a href=#valid-time-string>valid time string</a>
+ component being given in its shortest possible form, with the last
+ character of the string not being a U+005A LATIN CAPITAL LETTER Z
+ character (Z), even if the time zone is UTC, and with a U+002B PLUS
+ SIGN character (+) representing the sign of the time-zone offset
+ when the time zone is UTC.</p>
+
+ <p>The rules to <dfn id=parse-a-global-date-and-time-string>parse a global date and time string</dfn> are
+ as follows. This will return either a time in UTC, with associated
+ time-zone offset information for round-tripping or display purposes,
+ or nothing. If at any point the algorithm says that it "fails", this
+ means that it is aborted at that point and returns nothing.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#parse-a-date-component>Parse a date component</a> to obtain <var title="">year</var>, <var title="">month</var>, and <var title="">day</var>. If this returns nothing, then fail.</p>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+0054 LATIN CAPITAL LETTER T
+ character (T) then fail. Otherwise, move <var title="">position</var> forwards one character.</li>
+
+ <li><p><a href=#parse-a-time-component>Parse a time component</a> to obtain <var title="">hour</var>, <var title="">minute</var>, and <var title="">second</var>. If this returns nothing, then fail.</p>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var>, then fail.</li>
+
+ <li><p><a href=#parse-a-time-zone-offset-component>Parse a time-zone offset component</a> to obtain
+ <var title="">timezone<sub title="">hours</sub></var> and <var title="">timezone<sub title="">minutes</sub></var>. If this returns
+ nothing, then fail.</p>
+
+ <li><p>If <var title="">position</var> is <em>not</em> beyond the
+ end of <var title="">input</var>, then fail.</li>
+
+ <li><p>Let <var title="">time</var> be the moment in time at year
+ <var title="">year</var>, month <var title="">month</var>, day <var title="">day</var>, hours <var title="">hour</var>, minute <var title="">minute</var>, second <var title="">second</var>,
+ subtracting <var title="">timezone<sub title="">hours</sub></var>
+ hours and <var title="">timezone<sub title="">minutes</sub></var>
+ minutes. That moment in time is a moment in the UTC
+ time zone.</li>
+
+ <li><p>Let <var title="">timezone</var> be <var title="">timezone<sub title="">hours</sub></var> hours and <var title="">timezone<sub title="">minutes</sub></var> minutes from
+ UTC.</li>
+
+ <li><p>Return <var title="">time</var> and <var title="">timezone</var>.</li>
+
+ </ol><p>The rules to <dfn id=parse-a-time-zone-offset-component>parse a time-zone offset component</dfn>, given
+ an <var title="">input</var> string and a <var title="">position</var>, are as follows. This will return either
+ time-zone hours and time-zone minutes, or nothing. If at any point
+ the algorithm says that it "fails", this means that it is aborted at
+ that point and returns nothing.</p>
+
+ <ol><li>
+
+ <p>If the character at <var title="">position</var> is a U+005A
+ LATIN CAPITAL LETTER Z character (Z), then:</p>
+
+ <ol><li><p>Let <var title="">timezone<sub title="">hours</sub></var>
+ be 0.</li>
+
+ <li><p>Let <var title="">timezone<sub title="">minutes</sub></var> be 0.</li>
+
+ <li><p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>.</li>
+
+ </ol><p>Otherwise, if the character at <var title="">position</var> is
+ either a U+002B PLUS SIGN (+) or a U+002D HYPHEN-MINUS (-),
+ then:</p>
+
+ <ol><li><p>If the character at <var title="">position</var> is a
+ U+002B PLUS SIGN (+), let <var title="">sign</var> be
+ "positive". Otherwise, it's a U+002D HYPHEN-MINUS (-); let <var title="">sign</var> be "negative".</li>
+
+ <li><p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
+ sequence is not exactly two characters long, then
+ fail. Otherwise, interpret the resulting sequence as a base-ten
+ integer. Let that number be the <var title="">timezone<sub title="">hours</sub></var>.</li>
+
+ <li>If <var title="">timezone<sub title="">hours</sub></var> is
+ not a number in the range 0&nbsp;&le;&nbsp;<var title="">timezone<sub title="">hours</sub></var>&nbsp;&le;&nbsp;23, then fail.</li>
+
+ <li>If <var title="">sign</var> is "negative", then negate <var title="">timezone<sub title="">hours</sub></var>.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+003A COLON character, then
+ fail. Otherwise, move <var title="">position</var> forwards one
+ character.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
+ sequence is not exactly two characters long, then
+ fail. Otherwise, interpret the resulting sequence as a base-ten
+ integer. Let that number be the <var title="">timezone<sub title="">minutes</sub></var>.</li>
+
+ <li>If <var title="">timezone<sub title="">minutes</sub></var> is
+ not a number in the range 0&nbsp;&le;&nbsp;<var title="">timezone<sub title="">minutes</sub></var>&nbsp;&le;&nbsp;59, then fail.</li>
+
+ <li>If <var title="">sign</var> is "negative", then negate <var title="">timezone<sub title="">minutes</sub></var>.</li>
+
+ </ol><p>Otherwise, fail.</p>
+
+ </li>
+
+ <li><p>Return <var title="">timezone<sub title="">hours</sub></var>
+ and <var title="">timezone<sub title="">minutes</sub></var>.</li>
+
+ </ol></div>
+
+
+ <h5 id=weeks><span class=secno>2.5.5.6 </span>Weeks</h5>
+
+ <p>A <dfn id=concept-week title=concept-week>week</dfn> consists of a week-year
+ number and a week number representing a seven-day period starting on
+ a Monday. Each week-year in this calendaring system has either 52 or
+ 53 such seven-day periods, as defined below. The seven-day period
+ starting on the Gregorian date Monday December 29th 1969
+ (1969-12-29) is defined as week number 1 in week-year
+ 1970. Consecutive weeks are numbered sequentially. The week before
+ the number 1 week in a week-year is the last week in the previous
+ week-year, and vice versa. <a href=#refsGREGORIAN>[GREGORIAN]</a></p>
+
+ <p>A week-year with a number <var title="">year</var> has 53 weeks
+ if it corresponds to either a year <var title="">year</var> in the
+ proleptic Gregorian calendar that has a Thursday as its first day
+ (January 1st), or a year <var title="">year</var> in the proleptic
+ Gregorian calendar that has a Wednesday as its first day (January
+ 1st) and where <var title="">year</var> is a number divisible by
+ 400, or a number divisible by 4 but not by 100. All other week-years
+ have 52 weeks.</p>
+
+ <p>The <dfn id=week-number-of-the-last-day>week number of the last day</dfn> of a week-year with 53
+ weeks is 53; the week number of the last day of a week-year with 52
+ weeks is 52.</p>
+
+ <p class=note>The week-year number of a particular day can be
+ different than the number of the year that contains that day in the
+ proleptic Gregorian calendar. The first week in a week-year <var title="">y</var> is the week that contains the first Thursday of
+ the Gregorian year <var title="">y</var>.</p>
+
+ <p>A string is a <dfn id=valid-week-string>valid week string</dfn> representing a
+ week-year <var title="">year</var> and week <var title="">week</var>
+ if it consists of the following components in the given order:</p>
+
+ <ol><li>Four or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing <var title="">year</var>, where <var title="">year</var>&nbsp;&gt;&nbsp;0</li>
+
+ <li>A U+002D HYPHEN-MINUS character (-)</li>
+
+ <li>A U+0057 LATIN CAPITAL LETTER W character (W)</li>
+
+ <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
+ representing the week <var title="">week</var>, in the range
+ 1&nbsp;&le;&nbsp;<var title="">week</var>&nbsp;&le;&nbsp;<var title="">maxweek</var>, where <var title="">maxweek</var> is the
+ <a href=#week-number-of-the-last-day>week number of the last day</a> of week-year <var title="">year</var></li>
+
+ </ol><div class=impl>
+
+ <p>The rules to <dfn id=parse-a-week-string>parse a week string</dfn> are as follows. This
+ will return either a week-year number and week number, or
+ nothing. If at any point the algorithm says that it "fails", this
+ means that it is aborted at that point and returns nothing.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
+ sequence is not at least four characters long, then
+ fail. Otherwise, interpret the resulting sequence as a base-ten
+ integer. Let that number be the <var title="">year</var>.</li>
+
+ <li><p>If <var title="">year</var> is not a number greater than
+ zero, then fail.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+002D HYPHEN-MINUS character,
+ then fail. Otherwise, move <var title="">position</var> forwards
+ one character.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+0057 LATIN CAPITAL LETTER W
+ character (W), then fail. Otherwise, move <var title="">position</var> forwards one character.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
+ sequence is not exactly two characters long, then fail. Otherwise,
+ interpret the resulting sequence as a base-ten integer. Let that
+ number be the <var title="">week</var>.</li>
+
+ <li><p>Let <var title="">maxweek</var> be the <a href=#week-number-of-the-last-day>week number of
+ the last day</a> of year <var title="">year</var>.</li>
+
+ <li><p>If <var title="">week</var> is not a number in the range
+ 1&nbsp;&le;&nbsp;<var title="">week</var>&nbsp;&le;&nbsp;<var title="">maxweek</var>, then fail.</li>
+
+ <li><p>If <var title="">position</var> is <em>not</em> beyond the
+ end of <var title="">input</var>, then fail.</li>
+
+ <li><p>Return the week-year number <var title="">year</var> and the
+ week number <var title="">week</var>.</li>
+
+ </ol></div>
+
+
+ <h5 id=vaguer-moments-in-time><span class=secno>2.5.5.7 </span>Vaguer moments in time</h5>
+
+ <p>A string is a <dfn id=valid-date-or-time-string>valid date or time string</dfn> if it is also
+ one of the following:</p>
+
+ <ul><li>A <a href=#valid-date-string>valid date string</a>.</li>
+
+ <li>A <a href=#valid-time-string>valid time string</a>.</li>
+
+ <li>A <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</li>
+
+ </ul><p>A string is a <dfn id=valid-date-or-time-string-in-content>valid date or time string in content</dfn> if
+ it consists of zero or more <a href=#white_space>White_Space</a> characters,
+ followed by a <a href=#valid-date-or-time-string>valid date or time string</a>, followed by
+ zero or more further <a href=#white_space>White_Space</a> characters.</p>
+
+ <hr><p>A string is a <dfn id=valid-date-string-with-optional-time>valid date string with optional time</dfn> if
+ it is also one of the following:</p>
+
+ <ul><li>A <a href=#valid-date-string>valid date string</a>.</li>
+
+ <li>A <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</li>
+
+ </ul><p>A string is a <dfn id=valid-date-string-in-content-with-optional-time>valid date string in content with optional
+ time</dfn> if it consists of zero or more <a href=#white_space>White_Space</a>
+ characters, followed by a <a href=#valid-date-string-with-optional-time>valid date string with optional
+ time</a>, followed by zero or more further
+ <a href=#white_space>White_Space</a> characters.</p>
+
+ <div class=impl>
+
+ <hr><p>The rules to <dfn id=parse-a-date-or-time-string>parse a date or time string</dfn> are as
+ follows. The algorithm is invoked with a flag indicating if the
+ <i>in attribute</i> variant or the <i>in content</i> variant is to
+ be used. The algorithm will return either a <a href=#concept-date title=concept-date>date</a>, a <a href=#concept-time title=concept-time>time</a>, a <a href=#concept-datetime title=concept-datetime>global date and time</a>, or nothing. If
+ at any point the algorithm says that it "fails", this means that it
+ is aborted at that point and returns nothing.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>For the <i>in content</i> variant: <a href=#skip-white_space-characters>skip White_Space
+ characters</a>.</li>
+
+ <li><p>Set <var title="">start position</var> to the same position
+ as <var title="">position</var>.</li>
+
+ <li><p>Set the <var title="">date present</var> and <var title="">time present</var> flags to true.</li>
+
+ <li><p><a href=#parse-a-date-component>Parse a date component</a> to obtain <var title="">year</var>, <var title="">month</var>, and <var title="">day</var>. If this fails, then set the <var title="">date
+ present</var> flag to false.</p>
+
+ <li>
+
+ <p>If <var title="">date present</var> is true, and <var title="">position</var> is not beyond the end of <var title="">input</var>, and the character at <var title="">position</var> is a U+0054 LATIN CAPITAL LETTER T
+ character (T), then advance <var title="">position</var> to the
+ next character in <var title="">input</var>.</p>
+
+ <p>Otherwise, if <var title="">date present</var> is true, and
+ either <var title="">position</var> is beyond the end of <var title="">input</var> or the character at <var title="">position</var> is not a U+0054 LATIN CAPITAL LETTER T
+ character (T), then set <var title="">time present</var> to
+ false.</p>
+
+ <p>Otherwise, if <var title="">date present</var> is false, set
+ <var title="">position</var> back to the same position as <var title="">start position</var>.</p>
+
+ </li>
+
+ <li><p>If the <var title="">time present</var> flag is true, then
+ <a href=#parse-a-time-component>parse a time component</a> to obtain <var title="">hour</var>, <var title="">minute</var>, and <var title="">second</var>. If this returns nothing, then fail.</li>
+
+ <li><p>If the <var title="">date present</var> and <var title="">time present</var> flags are both true, but <var title="">position</var> is beyond the end of <var title="">input</var>, then fail.</li>
+
+ <li><p>If the <var title="">date present</var> and <var title="">time present</var> flags are both true, <a href=#parse-a-time-zone-offset-component>parse a
+ time-zone offset component</a> to obtain <var title="">timezone<sub title="">hours</sub></var> and <var title="">timezone<sub title="">minutes</sub></var>. If this returns
+ nothing, then fail.</p>
+
+ <li><p>For the <i>in content</i> variant: <a href=#skip-white_space-characters>skip White_Space
+ characters</a>.</li>
+
+ <li><p>If <var title="">position</var> is <em>not</em> beyond the
+ end of <var title="">input</var>, then fail.</li>
+
+ <li>
+
+ <p>If the <var title="">date present</var> flag is true and the
+ <var title="">time present</var> flag is false, then let <var title="">date</var> be the date with year <var title="">year</var>, month <var title="">month</var>, and day <var title="">day</var>, and return <var title="">date</var>.</p>
+
+ <p>Otherwise, if the <var title="">time present</var> flag is true
+ and the <var title="">date present</var> flag is false, then let
+ <var title="">time</var> be the time with hour <var title="">hour</var>, minute <var title="">minute</var>, and second
+ <var title="">second</var>, and return <var title="">time</var>.</p>
+
+ <p>Otherwise, let <var title="">time</var> be the moment in time
+ at year <var title="">year</var>, month <var title="">month</var>,
+ day <var title="">day</var>, hours <var title="">hour</var>,
+ minute <var title="">minute</var>, second <var title="">second</var>, subtracting <var title="">timezone<sub title="">hours</sub></var> hours and <var title="">timezone<sub title="">minutes</sub></var> minutes, that moment in time being a
+ moment in the UTC time zone; let <var title="">timezone</var> be
+ <var title="">timezone<sub title="">hours</sub></var> hours and
+ <var title="">timezone<sub title="">minutes</sub></var> minutes
+ from UTC; and return <var title="">time</var> and <var title="">timezone</var>.</p>
+
+ </li>
+
+ </ol></div>
+
+
+ <h4 id=colors><span class=secno>2.5.6 </span>Colors</h4>
+
+ <p>A <dfn id=simple-color>simple color</dfn> consists of three 8-bit numbers in the
+ range 0..255, representing the red, green, and blue components of
+ the color respectively, in the sRGB color space. <a href=#refsSRGB>[SRGB]</a></p>
+
+ <p>A string is a <dfn id=valid-simple-color>valid simple color</dfn> if it is exactly
+ seven characters long, and the first character is a U+0023 NUMBER
+ SIGN character (#), and the remaining six characters are all in the
+ range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0041 LATIN
+ CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, U+0061 LATIN
+ SMALL LETTER A to U+0066 LATIN SMALL LETTER F, with the first two
+ digits representing the red component, the middle two digits
+ representing the green component, and the last two digits
+ representing the blue component, in hexadecimal.</p>
+
+ <p>A string is a <dfn id=valid-lowercase-simple-color>valid lowercase simple color</dfn> if it is a
+ <a href=#valid-simple-color>valid simple color</a> and doesn't use any characters in
+ the range U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL
+ LETTER F.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=rules-for-parsing-simple-color-values>rules for parsing simple color values</dfn> are as given
+ in the following algorithm. When invoked, the steps must be followed
+ in the order given, aborting at the first step that returns a
+ value. This algorithm will return either a <a href=#simple-color>simple color</a>
+ or an error.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>If <var title="">input</var> is not exactly seven characters
+ long, then return an error.</li>
+
+ <li><p>If the first character in <var title="">input</var> is not a
+ U+0023 NUMBER SIGN character (#), then return an error.</li>
+
+ <li><p>If the last six characters of <var title="">input</var> are
+ not all in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE
+ (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER
+ F, U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F, then
+ return an error.</li>
+
+ <li><p>Let <var title="">result</var> be a <a href=#simple-color>simple
+ color</a>.</p>
+
+ <li><p>Interpret the second and third characters as a hexadecimal
+ number and let the result be the red component of <var title="">result</var>.</p>
+
+ <li><p>Interpret the fourth and fifth characters as a hexadecimal
+ number and let the result be the green component of <var title="">result</var>.</p>
+
+ <li><p>Interpret the sixth and seventh characters as a hexadecimal
+ number and let the result be the blue component of <var title="">result</var>.</p>
+
+ <li><p>Return <var title="">result</var>.</p>
+
+ </ol><p>The <dfn id=rules-for-serializing-simple-color-values>rules for serializing simple color values</dfn> given a
+ <a href=#simple-color>simple color</a> are as given in the following
+ algorithm:</p>
+
+ <ol><li><p>Let <var title="">result</var> be a string consisting of a
+ single U+0023 NUMBER SIGN character (#).</li>
+
+ <li><p>Convert the red, green, and blue components in turn to
+ two-digit hexadecimal numbers using the digits U+0030 DIGIT ZERO
+ (0) to U+0039 DIGIT NINE (9) and U+0061 LATIN SMALL LETTER A
+ to U+0066 LATIN SMALL LETTER F, zero-padding if necessary, and
+ append these numbers to <var title="">result</var>, in the order
+ red, green, blue.</p>
+
+ <li><p>Return <var title="">result</var>, which will be a
+ <a href=#valid-lowercase-simple-color>valid lowercase simple color</a>.</li>
+
+ </ol><hr><p>Some obsolete legacy attributes parse colors in a more
+ complicated manner, using the <dfn id=rules-for-parsing-a-legacy-color-value>rules for parsing a legacy color
+ value</dfn>, which are given in the following algorithm. When
+ invoked, the steps must be followed in the order given, aborting at
+ the first step that returns a value. This algorithm will return
+ either a <a href=#simple-color>simple color</a> or an error.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>If <var title="">input</var> is the empty string, then
+ return an error.</li>
+
+ <li><p><a href=#strip-leading-and-trailing-whitespace>Strip leading and trailing whitespace</a> from <var title="">input</var>.</li>
+
+ <li><p>If <var title="">input</var> is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">transparent</code>", then return an error.</li>
+
+ <li>
+
+ <p>If <var title="">input</var> is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for one of the keywords listed in
+ the <a href=http://www.w3.org/TR/css3-color/#svg-color>SVG color
+ keywords</a> <!-- or <a
+ href="http://www.w3.org/TR/css3-color/#css2-system">CSS2 System
+ Colors</a> --> section<!--s--> of the CSS3 Color specification,
+ then return the <a href=#simple-color>simple color</a> corresponding to that
+ keyword. <a href=#refsCSSCOLOR>[CSSCOLOR]</a></p>
+
+ <p class=note><a href=http://www.w3.org/TR/css3-color/#css2-system>CSS2 System
+ Colors</a> are not recognised.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">input</var> is four characters long, and the
+ first character in <var title="">input</var> is a U+0023 NUMBER
+ SIGN character (#), and the last three characters of <var title="">input</var> are all in the range U+0030 DIGIT ZERO (0)
+ to U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046
+ LATIN CAPITAL LETTER F, and U+0061 LATIN SMALL LETTER A to U+0066
+ LATIN SMALL LETTER F, then run these substeps:</p>
+
+ <ol><li><p>Let <var title="">result</var> be a <a href=#simple-color>simple
+ color</a>.</p>
+
+ <li><p>Interpret the second character of <var title="">input</var> as a hexadecimal digit; let the red
+ component of <var title="">result</var> be the resulting number
+ multiplied by 17.</p>
+
+ <li><p>Interpret the third character of <var title="">input</var>
+ as a hexadecimal digit; let the green component of <var title="">result</var> be the resulting number multiplied by
+ 17.</p>
+
+ <li><p>Interpret the fourth character of <var title="">input</var> as a hexadecimal digit; let the blue
+ component of <var title="">result</var> be the resulting number
+ multiplied by 17.</p>
+
+ <li><p>Return <var title="">result</var>.</p>
+
+ </ol></li>
+
+ <li><p>Replace any characters in <var title="">input</var> that
+ have a Unicode code point greater than U+FFFF (i.e. any characters
+ that are not in the basic multilingual plane) with the
+ two-character string "<code title="">00</code>".</li>
+
+ <li><p>If <var title="">input</var> is longer than 128 characters,
+ truncate <var title="">input</var>, leaving only the first 128
+ characters.</li>
+
+ <li><p>If the first character in <var title="">input</var> is a
+ U+0023 NUMBER SIGN character (#), remove it.</li>
+
+ <li><p>Replace any character in <var title="">input</var> that is
+ not in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
+ U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, and
+ U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F with the
+ character U+0030 DIGIT ZERO (0).</li>
+
+ <li><p>While <var title="">input</var>'s length is zero or not a
+ multiple of three, append a U+0030 DIGIT ZERO (0) character to <var title="">input</var>.</li>
+
+ <li><p>Split <var title="">input</var> into three strings of equal
+ length, to obtain three components. Let <var title="">length</var>
+ be the length of those components (one third the length of <var title="">input</var>).</li>
+
+ <li><p>If <var title="">length</var> is greater than 8, then remove
+ the leading <span title=""><var title="">length</var>-8</span>
+ characters in each component, and let <var title="">length</var> be
+ 8.</li>
+
+ <li><p>While <var title="">length</var> is greater than two and the
+ first character in each component is a U+0030 DIGIT ZERO (0)
+ character, remove that character and reduce <var title="">length</var> by one.</li>
+
+ <li><p>If <var title="">length</var> is <em>still</em> greater than
+ two, truncate each component, leaving only the first two
+ characters in each.</li>
+
+ <li><p>Let <var title="">result</var> be a <a href=#simple-color>simple
+ color</a>.</p>
+
+ <li><p>Interpret the first component as a hexadecimal number; let
+ the red component of <var title="">result</var> be the resulting
+ number.</li>
+
+ <li><p>Interpret the second component as a hexadecimal number; let
+ the green component of <var title="">result</var> be the resulting
+ number.</li>
+
+ <li><p>Interpret the third component as a hexadecimal number; let
+ the blue component of <var title="">result</var> be the resulting
+ number.</li>
+
+ <li><p>Return <var title="">result</var>.</p>
+
+ </ol></div>
+
+ <hr><!--2DCANVAS--><p class=note>The <a href=#canvas-context-2d title=canvas-context-2d>2D graphics
+ context</a> has a separate color syntax that also handles
+ opacity.</p>
+
+ <!--2DCANVAS-->
+
+
+ <h4 id=space-separated-tokens><span class=secno>2.5.7 </span>Space-separated tokens</h4>
+
+ <p>A <dfn id=set-of-space-separated-tokens>set of space-separated tokens</dfn> is a string containing
+ zero or more words (known as tokens) separated by one or more <a href=#space-character title="space character">space characters</a>, where words consist
+ of any string of one or more characters, none of which are <a href=#space-character title="space character">space characters</a>.</p>
+
+ <p>A string containing a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>
+ may have leading or trailing <a href=#space-character title="space character">space
+ characters</a>.</p>
+
+ <p>An <dfn id=unordered-set-of-unique-space-separated-tokens>unordered set of unique space-separated tokens</dfn> is a
+ <a href=#set-of-space-separated-tokens>set of space-separated tokens</a> where none of the tokens
+ are duplicated.</p>
+
+ <p>An <dfn id=ordered-set-of-unique-space-separated-tokens>ordered set of unique space-separated tokens</dfn> is a
+ <a href=#set-of-space-separated-tokens>set of space-separated tokens</a> where none of the tokens
+ are duplicated but where the order of the tokens is meaningful.</p>
+
+ <p><a href=#set-of-space-separated-tokens title="set of space-separated tokens">Sets of
+ space-separated tokens</a> sometimes have a defined set of
+ allowed values. When a set of allowed values is defined, the tokens
+ must all be from that list of allowed values; other values are
+ non-conforming. If no such set of allowed values is provided, then
+ all values are conforming.</p>
+
+ <p class=note>How tokens in a <a href=#set-of-space-separated-tokens>set of space-separated
+ tokens</a> are to be compared (e.g. case-sensitively or not) is
+ defined on a per-set basis.</p>
+
+ <div class=impl>
+
+ <p>When a user agent has to <dfn id=split-a-string-on-spaces>split a string on spaces</dfn>, it
+ must use the following algorithm:</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>Let <var title="">tokens</var> be a list of tokens,
+ initially empty.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a></li>
+
+ <li><p>While <var title="">position</var> is not past the end of
+ <var title="">input</var>:</p>
+
+ <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are not
+ <a href=#space-character title="space character">space characters</a>.</li>
+
+ <li><p>Add the string collected in the previous step to <var title="">tokens</var>.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a></li>
+
+ </ol></li>
+
+ <li><p>Return <var title="">tokens</var>.</li>
+
+ </ol><p>When a user agent has to <dfn id=remove-a-token-from-a-string>remove a token from a string</dfn>,
+ it must use the following algorithm:</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ modified.</li>
+
+ <li><p>Let <var title="">token</var> be the token being removed. It
+ will not contain any <a href=#space-character title="space character">space
+ characters</a>.</li>
+
+ <li><p>Let <var title="">output</var> be the output string,
+ initially empty.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><i>Loop</i>: If <var title="">position</var> is beyond the
+ end of <var title="">input</var>, abort these steps.</li>
+
+ <li><p>If the character at <var title="">position</var> is a
+ <a href=#space-character>space character</a>:</p>
+
+ <ol><li><p>Append the character at <var title="">position</var> to
+ the end of <var title="">output</var>.</li>
+
+ <li><p>Advance <var title="">position</var> so it points at the
+ next character in <var title="">input</var>.</li>
+
+ <li><p>Return to the step labeled <i>loop</i>.</li>
+
+ </ol></li>
+
+ <li><p>Otherwise, the character at <var title="">position</var> is
+ the first character of a token. <a href=#collect-a-sequence-of-characters>Collect a sequence of
+ characters</a> that are not <a href=#space-character title="space character">space
+ characters</a>, and let that be <var title="">s</var>.</li>
+
+ <li><p>If <var title="">s</var> is exactly equal to <var title="">token</var> (this is a <a href=#case-sensitive>case-sensitive</a>
+ comparison), then:</p>
+
+ <ol><li><p><a href=#skip-whitespace>Skip whitespace</a> (in <var title="">input</var>).</li>
+
+ <li><p>Remove any <a href=#space-character title="space character">space
+ characters</a> currently at the end of <var title="">output</var>.</li>
+
+ <li><p>If <var title="">position</var> is not past the end of
+ <var title="">input</var>, and <var title="">output</var> is not
+ the empty string, append a single U+0020 SPACE character at the
+ end of <var title="">output</var>.</li>
+
+ </ol></li>
+
+ <li><p>Otherwise, append <var title="">s</var> to the end of <var title="">output</var>.</li>
+
+ <li><p>Return to the step labeled <i>loop</i>.</li>
+
+ </ol><p class=note>This causes any occurrences of the token to be
+ removed from the string, and any spaces that were surrounding the
+ token to be collapsed to a single space, except at the start and end
+ of the string, where such spaces are removed.</p>
+
+ </div>
+
+
+
+ <h4 id=comma-separated-tokens><span class=secno>2.5.8 </span>Comma-separated tokens</h4>
+
+ <p>A <dfn id=set-of-comma-separated-tokens>set of comma-separated tokens</dfn> is a string containing
+ zero or more tokens each separated from the next by a single U+002C
+ COMMA character (,), where tokens consist of any string of zero or
+ more characters, neither beginning nor ending with <a href=#space-character title="space character">space characters</a>, nor containing any
+ U+002C COMMA characters (,), and optionally surrounded by <a href=#space-character title="space character">space characters</a>.</p>
+
+ <p class=example>For instance, the string "<code title="">&nbsp;a&nbsp;,b,,d&nbsp;d&nbsp;</code>" consists of four
+ tokens: "a", "b", the empty string, and "d&nbsp;d". Leading and
+ trailing whitespace around each token doesn't count as part of the
+ token, and the empty string can be a token.</p>
+
+ <p><a href=#set-of-comma-separated-tokens title="set of comma-separated tokens">Sets of
+ comma-separated tokens</a> sometimes have further restrictions on
+ what consists a valid token. When such restrictions are defined, the
+ tokens must all fit within those restrictions; other values are
+ non-conforming. If no such restrictions are specified, then all
+ values are conforming.</p>
+
+ <div class=impl>
+
+ <p>When a user agent has to <dfn id=split-a-string-on-commas>split a string on commas</dfn>, it
+ must use the following algorithm:</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>Let <var title="">tokens</var> be a list of tokens,
+ initially empty.</li>
+
+ <li><p><i>Token</i>: If <var title="">position</var> is past the
+ end of <var title="">input</var>, jump to the last step.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are not
+ U+002C COMMA characters (,). Let <var title="">s</var> be the resulting sequence (which might be the
+ empty string).</li>
+
+ <li><p><a href=#strip-leading-and-trailing-whitespace>Strip leading and trailing whitespace</a> from <var title="">s</var>.</li>
+
+ <li><p>Add <var title="">s</var> to <var title="">tokens</var>.</li>
+
+ <li><p>If <var title="">position</var> is not past the end of <var title="">input</var>, then the character at <var title="">position</var> is a U+002C COMMA character (,); advance
+ <var title="">position</var> past that character.</li>
+
+ <li><p>Jump back to the step labeled <i>token</i>.</li>
+
+ <li><p>Return <var title="">tokens</var>.</li>
+
+ </ol></div>
+
+
+
+
+ <h4 id=syntax-references><span class=secno>2.5.9 </span>References</h4>
+
+ <p>A <dfn id=valid-hash-name-reference>valid hash-name reference</dfn> to an element of type <var title="">type</var> is a string consisting of a U+0023 NUMBER SIGN
+ character (#) followed by a string which exactly matches the value
+ of the <code title="">name</code> attribute of an element with type
+ <var title="">type</var> in the document.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=rules-for-parsing-a-hash-name-reference>rules for parsing a hash-name reference</dfn> to an
+ element of type <var title="">type</var> are as follows:</p>
+
+ <ol><li><p>If the string being parsed does not contain a U+0023 NUMBER
+ SIGN character, or if the first such character in the string is the
+ last character in the string, then return null and abort these
+ steps.</li>
+
+ <li><p>Let <var title="">s</var> be the string from the character
+ immediately after the first U+0023 NUMBER SIGN character in the
+ string being parsed up to the end of that string.</li>
+
+ <li><p>Return the first element of type <var title="">type</var>
+ that has an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute whose value
+ is a <a href=#case-sensitive>case-sensitive</a> match for <var title="">s</var> or
+ a <code title="">name</code> attribute whose value is a
+ <a href=#compatibility-caseless>compatibility caseless</a> match for <var title="">s</var>.</li>
+
+ <!--
+ IE is also doing case-insensitive id="" matching.
+ Tests:
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cmap%20name%3D%22T%26eacute%3B%26%23x01F1%3B%26%23x2075%3B%22%3E%3Carea%20href%3D%22%2F%22%20shape%3Drect%20coords%3D0%2C0%2C200%2C200%3E%3C%2Fmap%3E%0A%3Cimg%20usemap%3D%22%23t%26Eacute%3BDZ5%22%20src%3Dimage%3E
+ ...except that doesn't explain why this fails:
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cmap%20name%3D%22T%26eacute%3B%26%23x01F1%3B%26%23x2075%3B%26%23xFB01%3B%22%3E%3Carea%20href%3D%22%2F%22%20shape%3Drect%20coords%3D0%2C0%2C200%2C200%3E%3C%2Fmap%3E%0A%3Cimg%20usemap%3D%22%23t%26Eacute%3BDZ5F%26%23x0131%3B%26%23x0307%3B%22%20src%3Dimage%3E
+ maybe they just don't know about combining dot above?
+ -->
+
+ </ol></div>
+
+
+ <h4 id=mq><span class=secno>2.5.10 </span>Media queries</h4>
+
+ <p>A string is a <dfn id=valid-media-query>valid media query</dfn> if it matches the
+ <code title="">media_query_list</code> production of the Media
+ Queries specification. <a href=#refsMQ>[MQ]</a></p>
+
+ <p>A string <dfn id=matches-the-environment>matches the environment</dfn> of the user if it is
+ the empty string, a string consisting of only <a href=#space-character title="space
+ character">space characters</a>, or is a media query that matches
+ the user's environment according to the definitions given in the
+ Media Queries specification. <a href=#refsMQ>[MQ]</a></p>
+
+
+
+
+ <h3 id=urls><span class=secno>2.6 </span>URLs</h3>
+
+ <p>This specification defines the term <a href=#url>URL</a>, and defines
+ various algorithms for dealing with URLs, because for historical
+ reasons the rules defined by the URI and IRI specifications are not
+ a complete description of what HTML user agents need to implement to
+ be compatible with Web content.</p>
+
+ <p class=note>The term "URL" in this specification is used in a
+ manner distinct from the precise technical meaning it is given in
+ RFC 3986. Readers familiar with that RFC will find it easier to read
+ <em>this</em> specification if they pretend the term "URL" as used
+ herein is really called something else altogether. This is a
+ <a href=#willful-violation>willful violation</a> of RFC 3986. <a href=#refsRFC3986>[RFC3986]</a></p>
+
+
+ <h4 id=terminology-0><span class=secno>2.6.1 </span>Terminology</h4>
+
+ <p>A <dfn id=url>URL</dfn> is a string used to identify a resource.</p>
+
+ <p>A <a href=#url>URL</a> is a <dfn id=valid-url>valid URL</dfn> if at least one of
+ the following conditions holds:</p>
+
+ <ul><li><p>The <a href=#url>URL</a> is a valid URI reference <a href=#refsRFC3986>[RFC3986]</a>.</li>
+
+ <li><p>The <a href=#url>URL</a> is a valid IRI reference and it has no
+ query component. <a href=#refsRFC3987>[RFC3987]</a></li>
+
+ <li><p>The <a href=#url>URL</a> is a valid IRI reference and its query
+ component contains no unescaped non-ASCII characters. <a href=#refsRFC3987>[RFC3987]</a></li>
+
+ <li><p>The <a href=#url>URL</a> is a valid IRI reference and the <a href="#document's-character-encoding" title="document's character encoding">character encoding</a> of
+ the URL's <code><a href=#document>Document</a></code> is UTF-8 or <a href=#a-utf-16-encoding>a UTF-16
+ encoding</a>. <a href=#refsRFC3987>[RFC3987]</a></li>
+
+ </ul><p>A string is a <dfn id=valid-non-empty-url>valid non-empty URL</dfn> if it is a
+ <a href=#valid-url>valid URL</a> but it is not the empty string.</p>
+
+ <p>A string is a <dfn id=valid-url-potentially-surrounded-by-spaces>valid URL potentially surrounded by
+ spaces</dfn> if, after <a href=#strip-leading-and-trailing-whitespace title="strip leading and trailing
+ whitespace">stripping leading and trailing whitespace</a> from
+ it, it is a <a href=#valid-url>valid URL</a>.</p>
+
+ <p>A string is a <dfn id=valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
+ spaces</dfn> if, after <a href=#strip-leading-and-trailing-whitespace title="strip leading and trailing
+ whitespace">stripping leading and trailing whitespace</a> from
+ it, it is a <a href=#valid-non-empty-url>valid non-empty URL</a>.</p>
+
+ <p>This specification defines the URL
+ <dfn id=about:legacy-compat><code>about:legacy-compat</code></dfn> as a reserved, though
+ unresolvable, <code title="">about:</code> URI, for use in <a href=#syntax-doctype title=syntax-doctype>DOCTYPE</a>s in <a href=#html-documents>HTML
+ documents</a> when needed for compatibility with XML tools. <a href=#refsABOUT>[ABOUT]</a></p>
+
+ <p>This specification defines the URL
+ <dfn id=about:srcdoc><code>about:srcdoc</code></dfn> as a reserved, though
+ unresolvable, <code title="">about:</code> URI, that is used as
+ <a href="#the-document's-address">the document's address</a> of <a href=#an-iframe-srcdoc-document title="an iframe srcdoc
+ document"><code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> documents</a>. <a href=#refsABOUT>[ABOUT]</a></p>
+
+
+ <div class=impl>
+
+ <h4 id=parsing-urls><span class=secno>2.6.2 </span>Parsing URLs</h4>
+
+ <p>To <dfn id=parse-a-url>parse a URL</dfn> <var title="">url</var> into its
+ component parts, the user agent must use the following steps:</p>
+
+ <ol><li><p><a href=#strip-leading-and-trailing-whitespace>Strip leading and trailing whitespace</a> from <var title="">url</var>.</li>
+
+ <li>
+
+ <p>Parse <var title="">url</var> in the manner defined by RFC
+ 3986, with the following exceptions:</p>
+
+ <ul><li>Add all characters with code points less than or equal to
+ U+0020 or greater than or equal to U+007F to the
+ &lt;unreserved&gt; production.</li>
+
+ <li>Add the characters U+0022, U+003C, U+003E, U+005B .. U+005E,
+ U+0060, and U+007B .. U+007D to the &lt;unreserved&gt;
+ production.
+ <!--
+ 0022 QUOTATION MARK
+ 003C LESS-THAN SIGN
+ 003E GREATER-THAN SIGN
+ 005B LEFT SQUARE BRACKET
+ 005C REVERSE SOLIDUS
+ 005D RIGHT SQUARE BRACKET
+ 005E CIRCUMFLEX ACCENT
+ 0060 GRAVE ACCENT
+ 007B LEFT CURLY BRACKET
+ 007C VERTICAL LINE
+ 007D RIGHT CURLY BRACKET
+ -->
+ </li>
+
+ <li>Add a single U+0025 PERCENT SIGN character as a second
+ alternative way of matching the &lt;pct-encoded&gt; production,
+ except when the &lt;pct-encoded&gt; is used in the
+ &lt;reg-name&gt; production.</li>
+
+ <li>Add the U+0023 NUMBER SIGN character to the characters
+ allowed in the &lt;fragment&gt; production.</li>
+
+ <!-- some browsers also have other differences, e.g. Mozilla
+ seems to treat ";" as if it was not in sub-delims, if the scheem
+ is "ftp". -->
+
+ </ul></li>
+
+ <li>
+
+ <p>If <var title="">url</var> doesn't match the
+ &lt;URI-reference&gt; production, even after the above changes are
+ made to the ABNF definitions, then parsing the URL fails with an
+ error. <a href=#refsRFC3986>[RFC3986]</a></p>
+
+ <p>Otherwise, parsing <var title="">url</var> was successful; the
+ components of the URL are substrings of <var title="">url</var>
+ defined as follows:</p>
+
+ <dl><dt><dfn id=url-scheme title=url-scheme>&lt;scheme&gt;</dfn></dt>
+
+ <dd><p>The substring matched by the &lt;scheme&gt; production, if any.</dd>
+
+
+ <dt><dfn id=url-host title=url-host>&lt;host&gt;</dfn></dt>
+
+ <dd><p>The substring matched by the &lt;host&gt; production, if any.</dd>
+
+
+ <dt><dfn id=url-port title=url-port>&lt;port&gt;</dfn></dt>
+
+ <dd><p>The substring matched by the &lt;port&gt; production, if any.</dd>
+
+
+ <dt><dfn id=url-hostport title=url-hostport>&lt;hostport&gt;</dfn></dt>
+
+ <dd><p>If there is a &lt;scheme&gt; component and a &lt;port&gt;
+ component and the port given by the &lt;port&gt; component is
+ different than the default port defined for the protocol given by
+ the &lt;scheme&gt; component, then &lt;hostport&gt; is the
+ substring that starts with the substring matched by the
+ &lt;host&gt; production and ends with the substring matched by the
+ &lt;port&gt; production, and includes the colon in between the
+ two. Otherwise, it is the same as the &lt;host&gt; component.</p>
+
+
+ <dt><dfn id=url-path title=url-path>&lt;path&gt;</dfn></dt>
+
+ <dd>
+
+ <p>The substring matched by one of the following productions, if
+ one of them was matched:</p>
+
+ <ul class=brief><li>&lt;path-abempty&gt;</li>
+ <li>&lt;path-absolute&gt;</li>
+ <li>&lt;path-noscheme&gt;</li>
+ <li>&lt;path-rootless&gt;</li>
+ <li>&lt;path-empty&gt;</li>
+ </ul></dd>
+
+
+ <dt><dfn id=url-query title=url-query>&lt;query&gt;</dfn></dt>
+
+ <dd><p>The substring matched by the &lt;query&gt; production, if any.</dd>
+
+
+ <dt><dfn id=url-fragment title=url-fragment>&lt;fragment&gt;</dfn></dt>
+
+ <dd><p>The substring matched by the &lt;fragment&gt; production, if any.</dd>
+
+
+ <dt><dfn id=url-host-specific title=url-host-specific>&lt;host-specific&gt;</dfn></dt>
+
+ <dd><p>The substring that <em>follows</em> the substring matched
+ by the &lt;authority&gt; production, or the whole string if the
+ &lt;authority&gt; production wasn't matched.</dd>
+
+ </dl></li>
+
+ </ol><p class=note>These parsing rules are a <a href=#willful-violation>willful
+ violation</a> of RFC 3986 and RFC 3987 (which do not define error
+ handling), motivated by a desire to handle legacy content. <a href=#refsRFC3986>[RFC3986]</a> <a href=#refsRFC3987>[RFC3987]</a></p>
+
+ </div>
+
+
+ <h4 id=resolving-urls><span class=secno>2.6.3 </span>Resolving URLs</h4>
+
+ <p>Resolving a URL is the process of taking a relative URL and
+ obtaining the absolute URL that it implies.</p>
+
+ <div class=impl>
+
+ <p>To <dfn id=resolve-a-url>resolve a URL</dfn> to an <a href=#absolute-url>absolute URL</a>
+ relative to either another <a href=#absolute-url>absolute URL</a> or an element,
+ the user agent must use the following steps. Resolving a URL can
+ result in an error, in which case the URL is not resolvable.</p>
+
+ <ol><li><p>Let <var title="">url</var> be the <a href=#url>URL</a> being
+ resolved.</li>
+
+ <li>
+
+ <p>Let <var title="">encoding</var> be determined as follows:</p>
+
+ <dl class=switch><dt>If the URL had a character encoding defined when the URL was
+ created or defined</dt>
+
+ <dd>The URL character encoding is as defined.</dd>
+
+ <dt>If the URL came from a script (e.g. as an argument to a
+ method)</dt>
+
+ <dd>The URL character encoding is the <a href="#script's-url-character-encoding">script's URL character
+ encoding</a>.</dd>
+
+ <dt>If the URL came from a DOM node (e.g. from an element)</dt>
+
+ <dd>The node has a <code><a href=#document>Document</a></code>, and the URL character
+ encoding is the <a href="#document's-character-encoding">document's character encoding</a>.</dd>
+
+ </dl></li>
+
+ <li><p>If <var title="">encoding</var> is <a href=#a-utf-16-encoding>a UTF-16
+ encoding</a>, then change the value of <var title="">encoding</var> to UTF-8.</li>
+
+ <li>
+
+ <p>If the algorithm was invoked with an <a href=#absolute-url>absolute URL</a>
+ to use as the base URL, let <var title="">base</var> be that
+ <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>Otherwise, let <var title="">base</var> be the <i>base URI of
+ the element</i>, as defined by the XML Base specification, with
+ <i>the base URI of the document entity</i> being defined as the
+ <a href=#document-base-url>document base URL</a> of the <code><a href=#document>Document</a></code> that
+ owns the element. <a href=#refsXMLBASE>[XMLBASE]</a></p>
+
+ <p>For the purposes of the XML Base specification, user agents
+ must act as if all <code><a href=#document>Document</a></code> objects represented XML
+ documents.</p>
+
+ <p class=note>It is possible for <code title=attr-xml-base><a href=#the-xml:base-attribute-(xml-only)>xml:base</a></code> attributes to be present
+ even in HTML fragments, as such attributes can be added
+ dynamically using script. (Such scripts would not be conforming,
+ however, as <code title=attr-xml-base><a href=#the-xml:base-attribute-(xml-only)>xml:base</a></code> attributes
+ are not allowed in <a href=#html-documents>HTML documents</a>.)</p>
+
+ <p>The <dfn id=document-base-url>document base URL</dfn> of a <code><a href=#document>Document</a></code>
+ object is the <a href=#absolute-url>absolute URL</a> obtained by running these
+ substeps:</p>
+
+ <ol><li><p>Let <var title="">fallback base url</var> be <a href="#the-document's-address">the
+ document's address</a>.</li>
+
+ <li>
+
+ <!-- http://www.hixie.ch/tests/adhoc/html/navigation/javascript-url/ -->
+
+ <!-- this should be tested in the case of a browsing context that
+ was navigated to about:blank after having been elsewhere, as
+ opposed to the about:blank used at the time of the browsing
+ context's creation. -->
+
+ <p>If <var title="">fallback base url</var> is
+ <code><a href=#about:blank>about:blank</a></code>, and the <code><a href=#document>Document</a></code>'s
+ <a href=#browsing-context>browsing context</a> has a <a href=#creator-browsing-context>creator browsing
+ context</a>, then let <var title="">fallback base url</var>
+ be the <a href=#document-base-url>document base URL</a> of the <a href=#creator-document>creator
+ <code>Document</code></a> instead.</p>
+
+ </li>
+
+ <li><p>If the <code><a href=#document>Document</a></code> is <a href=#an-iframe-srcdoc-document>an
+ <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a>, then
+ let <var title="">fallback base url</var> be the <a href=#document-base-url>document
+ base URL</a> of the <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing
+ context</a>'s <a href=#browsing-context-container>browsing context container</a>'s
+ <code><a href=#document>Document</a></code> instead.</li>
+
+ <li><p>If there is no <code><a href=#the-base-element>base</a></code> element that has an <code title=attr-base-href><a href=#attr-base-href>href</a></code> attribute, then the
+ <a href=#document-base-url>document base URL</a> is <var title="">fallback base
+ url</var>; abort these steps. Otherwise, let <var title="">url</var> be the value of the <code title=attr-base-href><a href=#attr-base-href>href</a></code> attribute of the first such
+ element.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a URL">Resolve</a> <var title="">url</var> relative to <var title="">fallback base
+ url</var> (thus, the <code><a href=#the-base-element>base</a></code> <code title=attr-base-href><a href=#attr-base-href>href</a></code> attribute isn't affected by
+ <code title=attr-xml-base><a href=#the-xml:base-attribute-(xml-only)>xml:base</a></code> attributes).</li>
+
+ <li><p>The <a href=#document-base-url>document base URL</a> is the result of the
+ previous step if it was successful; otherwise it is <var title="">fallback base url</var>.</li>
+
+ </ol></li>
+
+ <li><p><a href=#parse-a-url title="parse a URL">Parse</a> <var title="">url</var> into its component parts.</li>
+
+ <li>
+
+ <p>If parsing <var title="">url</var> resulted in a <a href=#url-host title=url-host>&lt;host&gt;</a> component, then replace the
+ matching substring of <var title="">url</var> with the string that
+ results from expanding any sequences of percent-encoded octets in
+ that component that are valid UTF-8 sequences into Unicode
+ characters as defined by UTF-8.</p>
+
+ <p>If any percent-encoded octets in that component are not valid
+ UTF-8 sequences (e.g. sequences of percent-encoded octets that
+ expand to surrogate code points), then return an error and abort
+ these steps.</p>
+
+ <p>Apply the IDNA ToASCII algorithm to the matching substring,
+ with both the AllowUnassigned and UseSTD3ASCIIRules flags
+ set. Replace the matching substring with the result of the ToASCII
+ algorithm.</p>
+
+ <p>If ToASCII fails to convert one of the components of the
+ string, e.g. because it is too long or because it contains invalid
+ characters, then return an error and abort these steps. <a href=#refsRFC3490>[RFC3490]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>If parsing <var title="">url</var> resulted in a <a href=#url-path title=url-path>&lt;path&gt;</a> component, then replace the
+ matching substring of <var title="">url</var> with the string that
+ results from applying the following steps to each character other
+ than U+0025 PERCENT SIGN (%) that doesn't match the original
+ &lt;path&gt; production defined in RFC 3986:</p>
+
+ <ol><li>Encode the character into a sequence of octets as defined by
+ UTF-8.</li>
+
+ <li>Replace the character with the percent-encoded form of those
+ octets. <a href=#refsRFC3986>[RFC3986]</a></li>
+
+ </ol><div class=example>
+
+ <p>For instance if <var title="">url</var> was "<code title="">//example.com/a^b&#9786;c%FFd%z/?e</code>", then the
+ <a href=#url-path title=url-path>&lt;path&gt;</a> component's substring
+ would be "<code title="">/a^b&#9786;c%FFd%z/</code>" and the two
+ characters that would have to be escaped would be "<code title="">^</code>" and "<code title="">&#9786;</code>". The
+ result after this step was applied would therefore be that <var title="">url</var> now had the value "<code title="">//example.com/a%5Eb%E2%98%BAc%FFd%z/?e</code>".</p>
+
+ </div>
+
+ </li>
+
+ <li>
+
+ <p>If parsing <var title="">url</var> resulted in a <a href=#url-query title=url-query>&lt;query&gt;</a> component, then replace the
+ matching substring of <var title="">url</var> with the string that
+ results from applying the following steps to each character other
+ than U+0025 PERCENT SIGN (%) that doesn't match the original
+ &lt;query&gt; production defined in RFC 3986:</p>
+
+ <ol><li>If the character in question cannot be expressed in the
+ encoding <var title="">encoding</var>, then replace it with a
+ single 0x3F octet (an ASCII question mark) and skip the remaining
+ substeps for this character.</li>
+
+ <li>Encode the character into a sequence of octets as defined by
+ the encoding <var title="">encoding</var>.</li>
+
+ <li>Replace the character with the percent-encoded form of those
+ octets. <a href=#refsRFC3986>[RFC3986]</a></li>
+
+ </ol></li>
+
+ <li><p>Apply the algorithm described in RFC 3986 section 5.2
+ Relative Resolution, using <var title="">url</var> as the
+ potentially relative URI reference (<var title="">R</var>), and
+ <var title="">base</var> as the base URI (<var title="">Base</var>). <a href=#refsRFC3986>[RFC3986]</a></li>
+
+ <li>
+
+ <p>Apply any relevant conformance criteria of RFC 3986 and RFC
+ 3987, returning an error and aborting these steps if
+ appropriate. <a href=#refsRFC3986>[RFC3986]</a> <a href=#refsRFC3987>[RFC3987]</a></p>
+
+ <p class=example>For instance, if an absolute URI that would be
+ returned by the above algorithm violates the restrictions specific
+ to its scheme, e.g. a <code title="">data:</code> URI using the
+ "<code title="">//</code>" server-based naming authority syntax,
+ then user agents are to treat this as an error instead.<!-- RFC
+ 3986, 3.1 Scheme --></p>
+
+ </li>
+
+ <li><p>Let <var title="">result</var> be the target URI (<var title="">T</var>) returned by the Relative Resolution
+ algorithm.</li>
+
+ <li><p>If <var title="">result</var> uses a scheme with a
+ server-based naming authority, replace all U+005C REVERSE SOLIDUS
+ (\) characters in <var title="">result</var> with U+002F SOLIDUS
+ (/) characters.</li>
+
+ <li><p>Return <var title="">result</var>.</li>
+
+ </ol><p class=note>Some of the steps in these rules, for example the
+ processing of U+005C REVERSE SOLIDUS (\) characters, are a
+ <a href=#willful-violation>willful violation</a> of RFC 3986 and RFC 3987, motivated
+ by a desire to handle legacy content. <a href=#refsRFC3986>[RFC3986]</a> <a href=#refsRFC3987>[RFC3987]</a></p>
+
+ </div>
+
+ <p>A <a href=#url>URL</a> is an <dfn id=absolute-url>absolute URL</dfn> if <a href=#resolve-a-url title="resolve a url">resolving</a> it results in the same output
+ regardless of what it is resolved relative to, and that output is
+ not a failure.</p>
+
+ <p>An <a href=#absolute-url>absolute URL</a> is a <dfn id=hierarchical-url>hierarchical URL</dfn> if,
+ when <a href=#resolve-a-url title="resolve a url">resolved</a> and then <a href=#parse-a-url title="parse a url">parsed</a>, there is a character immediately
+ after the <a href=#url-scheme title=url-scheme>&lt;scheme&gt;</a> component
+ and it is a U+002F SOLIDUS character (/).</p>
+
+ <p>An <a href=#absolute-url>absolute URL</a> is an <dfn id=authority-based-url>authority-based URL</dfn>
+ if, when <a href=#resolve-a-url title="resolve a url">resolved</a> and then <a href=#parse-a-url title="parse a url">parsed</a>, there are two characters
+ immediately after the <a href=#url-scheme title=url-scheme>&lt;scheme&gt;</a>
+ component and they are both U+002F SOLIDUS characters (//).</p>
+
+
+
+ <div class=impl>
+
+ <h4 id=url-manipulation-and-creation><span class=secno>2.6.4 </span>URL manipulation and creation</h4>
+
+ <p>To <dfn id=fragment-escaped title=fragment-escaped>fragment-escape</dfn> a string
+ <var title="">input</var>, a user agent must run the following
+ steps:</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string to be
+ escaped.</li>
+
+ <li><p>Let <var title="">position</var> point at the first
+ character of <var title="">input</var>.</li>
+
+ <li><p>Let <var title="">output</var> be an empty string.</li>
+
+ <li><p><i>Loop</i>: If <var title="">position</var> is past the end
+ of <var title="">input</var>, then jump to the step labeled
+ <i>end</i>.</li>
+
+ <li>
+
+ <p>If the character in <var title="">input</var> pointed to by
+ <var title="">position</var> is in the range U+0000 to U+0020 or
+ is one of the following characters:</p>
+
+ <ul class=brief><li>U+0022 QUOTATION MARK character (")
+ <li>U+0023 NUMBER SIGN character (#)
+ <li>U+0025 PERCENT SIGN character (%)
+ <li>U+003C LESS-THAN SIGN character (&lt;)
+ <li>U+003E GREATER-THAN SIGN character (&gt;)
+ <li>U+005B LEFT SQUARE BRACKET character ([)
+ <li>U+005C REVERSE SOLIDUS character (\)
+ <li>U+005D RIGHT SQUARE BRACKET character (])
+ <li>U+005E CIRCUMFLEX ACCENT character (^)
+ <li>U+007B LEFT CURLY BRACKET character ({)
+ <li>U+007C VERTICAL LINE character (|)
+ <li>U+007D RIGHT CURLY BRACKET character (})
+ </ul><p>...then append the percent-encoded form of the character to
+ <var title="">output</var>. <a href=#refsRFC3986>[RFC3986]</a></p> <!-- this is the same
+ phrasing that's used elsewhere in the spec, but we really should
+ define 'percent-encoded' or at least ensure we consistently say
+ whether it's upper-case or lower-case. -->
+
+ <p>Otherwise, append the character itself to <var title="">output</var>.</p>
+
+ <p class=note>This escapes any ASCII characters that are not
+ valid in the URI &lt;fragment&gt; production without being
+ escaped.</p>
+
+ </li>
+
+ <li><p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>.</li>
+
+ <li><p>Return to the step labeled <i>loop</i>.</li>
+
+ <li><p><i>End</i>: Return <var title="">output</var>.</li>
+
+ </ol></div>
+
+
+
+ <div class=impl>
+
+ <h4 id=dynamic-changes-to-base-urls><span class=secno>2.6.5 </span>Dynamic changes to base URLs</h4>
+
+ <p>When an <code title=attr-xml-base><a href=#the-xml:base-attribute-(xml-only)>xml:base</a></code> attribute
+ changes, the attribute's element, and all descendant elements, are
+ <a href=#affected-by-a-base-url-change>affected by a base URL change</a>.</p>
+
+ <p>When a document's <a href=#document-base-url>document base URL</a> changes, all
+ elements in that document are <a href=#affected-by-a-base-url-change>affected by a base URL
+ change</a>.</p>
+
+ <p>The following are <a href=#base-url-change-steps>base URL change steps</a>, which run
+ when an element is <a href=#affected-by-a-base-url-change>affected by a base URL change</a> (as
+ defined by the DOM Core specification):</p>
+
+ <dl class=switch><dt>If the element creates a <a href=#hyperlink>hyperlink</a></dt>
+
+ <dd>
+
+ <p>If the <a href=#absolute-url>absolute URL</a> identified by the hyperlink is
+ being shown to the user, or if any data derived from that URL is
+ affecting the display, then the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute should be <a href=#resolve-a-url title="resolve a url">re-resolved</a> relative to the element
+ and the UI updated appropriately.</p>
+
+ <p class=example>For example, the CSS <code title=selector-link><a href=#selector-link>:link</a></code>/<code title=selector-visited><a href=#selector-visited>:visited</a></code> pseudo-classes might have
+ been affected.</p>
+
+<!--PING-->
+ <p>If the hyperlink has a <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute and its <a href=#absolute-url title="absolute URL">absolute URL(s)</a> are being shown to the
+ user, then the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code>
+ attribute's tokens should be <a href=#resolve-a-url title="resolve a
+ url">re-resolved</a> relative to the element and the UI updated
+ appropriately.</p>
+<!--PING-->
+
+ </dd>
+
+ <dt>If the element is a <code><a href=#the-q-element>q</a></code>, <code><a href=#the-blockquote-element>blockquote</a></code>,
+ <code><a href=#the-section-element>section</a></code>, <code><a href=#the-article-element>article</a></code>, <code><a href=#the-ins-element>ins</a></code>, or
+ <code><a href=#the-del-element>del</a></code> element with a <code title="">cite</code>
+ attribute</dt>
+
+ <dd>
+
+ <p>If the <a href=#absolute-url>absolute URL</a> identified by the <code title="">cite</code> attribute is being shown to the user, or if
+ any data derived from that URL is affecting the display, then the
+ <a href=#url>URL</a> should be <a href=#resolve-a-url title="resolve a
+ url">re-resolved</a> relative to the element and the UI updated
+ appropriately.</p>
+
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>The element is not directly affected.</p>
+
+ <p class=example>For instance, changing the base URL doesn't
+ affect the image displayed by <code><a href=#the-img-element>img</a></code> elements, although
+ subsequent accesses of the <code title=dom-img-src><a href=#dom-img-src>src</a></code>
+ IDL attribute from script will return a new <a href=#absolute-url>absolute
+ URL</a> that might no longer correspond to the image being
+ shown.</p>
+
+ </dd>
+
+ </dl></div>
+
+
+
+ <h4 id=interfaces-for-url-manipulation><span class=secno>2.6.6 </span>Interfaces for URL manipulation</h4>
+
+ <p>An interface that has a complement of <dfn id=url-decomposition-idl-attributes>URL decomposition IDL
+ attributes</dfn> has seven attributes with the following
+ definitions:</p>
+
+<pre class="idl extract"> attribute DOMString <a href=#dom-uda-protocol title=dom-uda-protocol>protocol</a>;
+ attribute DOMString <a href=#dom-uda-host title=dom-uda-host>host</a>;
+ attribute DOMString <a href=#dom-uda-hostname title=dom-uda-hostname>hostname</a>;
+ attribute DOMString <a href=#dom-uda-port title=dom-uda-port>port</a>;
+ attribute DOMString <a href=#dom-uda-pathname title=dom-uda-pathname>pathname</a>;
+ attribute DOMString <a href=#dom-uda-search title=dom-uda-search>search</a>;
+ attribute DOMString <a href=#dom-uda-hash title=dom-uda-hash>hash</a>;</pre>
+
+ <dl class=domintro><dt><var title="">o</var> . <code title=dom-uda-protocol><a href=#dom-uda-protocol>protocol</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the current scheme of the underlying URL.</p>
+ <p>Can be set, to change the underlying URL's scheme.</p>
+ </dd>
+
+ <dt><var title="">o</var> . <code title=dom-uda-host><a href=#dom-uda-host>host</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the current host and port (if it's not the default port) in the underlying URL.</p>
+ <p>Can be set, to change the underlying URL's host and port.</p>
+ <p>The host and the port are separated by a colon. The port part,
+ if omitted, will be assumed to be the current scheme's default
+ port.</p>
+ </dd>
+
+ <dt><var title="">o</var> . <code title=dom-uda-hostname><a href=#dom-uda-hostname>hostname</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the current host in the underlying URL.</p>
+ <p>Can be set, to change the underlying URL's host.</p>
+ </dd>
+
+ <dt><var title="">o</var> . <code title=dom-uda-port><a href=#dom-uda-port>port</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the current port in the underlying URL.</p>
+ <p>Can be set, to change the underlying URL's port.</p>
+ </dd>
+
+ <dt><var title="">o</var> . <code title=dom-uda-pathname><a href=#dom-uda-pathname>pathname</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the current path in the underlying URL.</p>
+ <p>Can be set, to change the underlying URL's path.</p>
+ </dd>
+
+ <dt><var title="">o</var> . <code title=dom-uda-search><a href=#dom-uda-search>search</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the current query component in the underlying URL.</p>
+ <p>Can be set, to change the underlying URL's query component.</p>
+ </dd>
+
+ <dt><var title="">o</var> . <code title=dom-uda-hash><a href=#dom-uda-hash>hash</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the current fragment identifier in the underlying URL.</p>
+ <p>Can be set, to change the underlying URL's fragment identifier.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <hr><p>The attributes defined to be <a href=#url-decomposition-idl-attributes>URL decomposition IDL
+ attributes</a> must act as described for the attributes with the
+ same corresponding names in this section.</p>
+
+ <p>In addition, an interface with a complement of <a href=#url-decomposition-idl-attributes>URL
+ decomposition IDL attributes</a> defines an <dfn id=concept-uda-input title=concept-uda-input>input</dfn>, which is a <a href=#url>URL</a>
+ that the attributes act on, and a <dfn id=concept-uda-setter title=concept-uda-setter>common setter action</dfn>, which is a
+ set of steps invoked when any of the attributes' setters are
+ invoked.</p>
+
+ <p>The seven <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a> have
+ similar requirements.</p>
+
+ <p>On getting, if the <a href=#concept-uda-input title=concept-uda-input>input</a>
+ is an <a href=#absolute-url>absolute URL</a> that fulfills the condition given in
+ the "getter condition" column corresponding to the attribute in the
+ table below, the user agent must return the part of the <a href=#concept-uda-input title=concept-uda-input>input</a> URL given in the "component"
+ column, with any prefixes specified in the "prefix" column
+ appropriately added to the start of the string and any suffixes
+ specified in the "suffix" column appropriately added to the end of
+ the string. Otherwise, the attribute must return the empty
+ string.</p>
+
+ <p>On setting, the new value must first be mutated as described by
+ the "setter preprocessor" column, then mutated by %-escaping any
+ characters in the new value that are not valid in the relevant
+ component as given by the "component" column. Then, if the <a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#absolute-url>absolute
+ URL</a> and the resulting new value fulfills the condition given
+ in the "setter condition" column, the user agent must make a new
+ string <var title="">output</var> by replacing the component of the
+ URL given by the "component" column in the <a href=#concept-uda-input title=concept-uda-input>input</a> URL with the new value;
+ otherwise, the user agent must let <var title="">output</var> be
+ equal to the <a href=#concept-uda-input title=concept-uda-input>input</a>. Finally,
+ the user agent must invoke the <a href=#concept-uda-setter title=concept-uda-setter>common setter action</a> with the
+ value of <var title="">output</var>.</p>
+
+ <p>When replacing a component in the URL, if the component is part
+ of an optional group in the URL syntax consisting of a character
+ followed by the component, the component (including its prefix
+ character) must be included even if the new value is the empty
+ string.</p>
+
+ <p class=note>The previous paragraph applies in particular to the
+ "<code title="">:</code>" before a &lt;port&gt; component, the "<code title="">?</code>" before a &lt;query&gt; component, and the "<code title="">#</code>" before a &lt;fragment&gt; component.</p>
+
+ <p>For the purposes of the above definitions, URLs must be parsed
+ using the <a href=#parse-a-url title="parse a URL">URL parsing rules</a> defined
+ in this specification.</p>
+
+ <table id=table-uda><thead><tr><th>Attribute
+ <th>Component
+ <th>Getter Condition
+ <th>Prefix
+ <th>Suffix
+ <th>Setter Preprocessor
+ <th>Setter Condition
+ <tbody><tr><td><dfn id=dom-uda-protocol title=dom-uda-protocol><code>protocol</code></dfn>
+ <td><a href=#url-scheme title=url-scheme>&lt;scheme&gt;</a>
+ <td>&mdash;
+ <td>&mdash;
+ <td>U+003A COLON (:)
+ <td>Remove all trailing U+003A COLON characters (:)
+ <td>The new value is not the empty string
+ <tr><td><dfn id=dom-uda-host title=dom-uda-host><code>host</code></dfn>
+ <td><a href=#url-hostport title=url-hostport>&lt;hostport&gt;</a>
+ <td><a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#authority-based-url>authority-based URL</a>
+ <td>&mdash;
+ <td>&mdash;
+ <td>&mdash;
+ <td>The new value is not the empty string and <a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#authority-based-url>authority-based URL</a>
+ <tr><td><dfn id=dom-uda-hostname title=dom-uda-hostname><code>hostname</code></dfn>
+ <td><a href=#url-host title=url-host>&lt;host&gt;</a>
+ <td><a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#authority-based-url>authority-based URL</a>
+ <td>&mdash;
+ <td>&mdash;
+ <td>Remove all leading U+002F SOLIDUS characters (/)
+ <td>The new value is not the empty string and <a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#authority-based-url>authority-based URL</a>
+ <tr><td><dfn id=dom-uda-port title=dom-uda-port><code>port</code></dfn>
+ <td><a href=#url-port title=url-port>&lt;port&gt;</a>
+ <td><a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#authority-based-url>authority-based URL</a>, and contained a <a href=#url-port title=url-port>&lt;port&gt;</a> component (possibly an empty one)
+ <td>&mdash;
+ <td>&mdash;
+ <td>Remove all characters in the new value from the first that is not in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), if any.
+ Remove any leading U+0030 DIGIT ZERO characters (0) in the new value.
+ If the resulting string is empty, set it to a single U+0030 DIGIT ZERO character (0).
+ <td><a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#authority-based-url>authority-based URL</a>,
+ and the new value, when interpreted as a base-ten integer, is less than or equal to 65535
+ <tr><td><dfn id=dom-uda-pathname title=dom-uda-pathname><code>pathname</code></dfn>
+ <td><a href=#url-path title=url-path>&lt;path&gt;</a>
+ <td><a href=#concept-uda-input title=concept-uda-input>input</a> is a <a href=#hierarchical-url>hierarchical URL</a>
+ <td>&mdash;
+ <td>&mdash;
+ <td>If it has no leading U+002F SOLIDUS character (/), prepend a U+002F SOLIDUS character (/) to the new value
+ <td><a href=#concept-uda-input title=concept-uda-input>input</a> is hierarchical
+ <tr><td><dfn id=dom-uda-search title=dom-uda-search><code>search</code></dfn>
+ <td><a href=#url-query title=url-query>&lt;query&gt;</a>
+ <td><a href=#concept-uda-input title=concept-uda-input>input</a> is a <a href=#hierarchical-url>hierarchical URL</a>, and contained a <a href=#url-query title=url-query>&lt;query&gt;</a> component (possibly an empty one)
+ <td>U+003F QUESTION MARK (?)
+ <td>&mdash;
+ <td>Remove one leading U+003F QUESTION MARK character (?), if any
+ <td><a href=#concept-uda-input title=concept-uda-input>input</a> is a <a href=#hierarchical-url>hierarchical URL</a>
+ <tr><td><dfn id=dom-uda-hash title=dom-uda-hash><code>hash</code></dfn>
+ <td><a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a>
+ <td><a href=#concept-uda-input title=concept-uda-input>input</a> contained a non-empty <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a> component
+ <td>U+0023 NUMBER SIGN (#)
+ <td>&mdash;
+ <td>Remove one leading U+0023 NUMBER SIGN character (#), if any
+ <td>&mdash;
+ </table><!--
+ http://www.hixie.ch/tests/adhoc/dom/level0/location/components/
+ http://lxr.mozilla.org/seamonkey/source/dom/src/base/nsLocation.cpp
+ http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/ref_h-l.htm#84722
+--></div>
+
+ <div class=example>
+
+ <p>The table below demonstrates how the getter <span class=impl>condition</span> for <code title=dom-uda-search><a href=#dom-uda-search>search</a></code> results in different results
+ depending on the exact original syntax of the URL:</p>
+
+ <table id=table-uda-examples><thead><tr><th> Input URL
+ <th> <code title=dom-uda-search><a href=#dom-uda-search>search</a></code> value
+ <th> Explanation
+ <tbody><tr><td> <code title="">http://example.com/</code>
+ <td> <i>empty string</i>
+ <td> No <a href=#url-query title=url-query>&lt;query&gt;</a> component in input URL.
+ <tr><td> <code title="">http://example.com/?</code>
+ <td> <code title="">?</code>
+ <td> There is a <a href=#url-query title=url-query>&lt;query&gt;</a> component, but it is empty.
+ <span class=impl>The question mark in the resulting value is the prefix.</span>
+ <tr><td> <code title="">http://example.com/?test</code>
+ <td> <code title="">?test</code>
+ <td> The <a href=#url-query title=url-query>&lt;query&gt;</a> component has the value "<code title="">test</code>".
+ <tr><td> <code title="">http://example.com/?test#</code>
+ <td> <code title="">?test</code>
+ <td> The (empty) <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a> component is not part of the <a href=#url-query title=url-query>&lt;query&gt;</a> component.
+ </table></div>
+
+ <div class=example>
+
+ <p>The following table is similar; it provides a list of what each
+ of the <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a> returns for a
+ given <var title="">input</var> URL.</p>
+
+ <table><thead><tr><th>Input
+ <th><code title=dom-uda-protocol><a href=#dom-uda-protocol>protocol</a></code>
+ <th><code title=dom-uda-host><a href=#dom-uda-host>host</a></code>
+ <th><code title=dom-uda-hostname><a href=#dom-uda-hostname>hostname</a></code>
+ <th><code title=dom-uda-port><a href=#dom-uda-port>port</a></code>
+ <th><code title=dom-uda-pathname><a href=#dom-uda-pathname>pathname</a></code>
+ <th><code title=dom-uda-search><a href=#dom-uda-search>search</a></code>
+ <th><code title=dom-uda-hash><a href=#dom-uda-hash>hash</a></code>
+ <tbody><tr><td><code title="">http://example.com/carrot#question%3f</code>
+ <td><code title="">http:</code>
+ <td><code title="">example.com</code>
+ <td><code title="">example.com</code>
+ <td>(empty string)
+ <td><code title="">/carrot</code>
+ <td>(empty string)
+ <td><code title="">#question%3f</code>
+ <tr><td><code title="">https://www.example.com:4443?</code>
+ <td><code title="">https:</code>
+ <td><code title="">www.example.com:4443</code>
+ <td><code title="">www.example.com</code>
+ <td><code title="">4443</code>
+ <td><code title="">/</code>
+ <td><code title="">?</code>
+ <td>(empty string)
+ </table></div>
+
+
+ <div class=impl>
+
+ <h3 id=fetching-resources><span class=secno>2.7 </span>Fetching resources</h3>
+
+ <p>When a user agent is to <dfn id=fetch>fetch</dfn> a resource or
+ <a href=#url>URL</a>, optionally from an origin <i title="">origin</i>,
+ and optionally with a <i>synchronous flag</i>, a <i>manual redirect
+ flag</i>, a <i>force same-origin flag</i>, and/or a <i>block cookies
+ flag</i>, the following steps must be run. (When a <em>URL</em> is
+ to be fetched, the URL identifies a resource to be obtained.)</p>
+
+ <!-- if invoked with the synchronous flag, make sure to release the
+ storage mutex first -->
+
+ <!-- synchronous flag is only to be used in algorithms that are
+ themselves asynchronous! Only sync-XHR is allowed to make the
+ mistake of screwing that up. :-P -->
+
+ <!-- the force same-origin flag is for use in places where we'll be
+ moving to CORS one day; when used, the algorithm must be invoked
+ with a URL (not something else, like a POST request) whose origin is
+ the same as the /origin/, which must also be present, and the
+ algorithm must not be invoked with the manual redirect flag. -->
+
+ <!-- "block cookies" is currently only used by XHR -->
+
+ <ol><li>
+
+ <p>Let <var title="">document</var> be the appropriate
+ <code><a href=#document>Document</a></code> as given by the following list:</p>
+
+ <dl class=switch><dt>When <a href=#navigate title=navigate>navigating</a></dt>
+
+ <dd>The <a href=#active-document>active document</a> of the <a href=#source-browsing-context>source browsing
+ context</a>.</dd>
+
+ <dt>When fetching resources for an element</dt>
+
+ <dd>The element's <code><a href=#document>Document</a></code>.</dd>
+
+ <dt>When fetching resources in response to a call to an API</dt>
+
+ <dd>The <a href=#entry-script>entry script</a>'s <a href="#script's-document" title="script's
+ document">document</a>.</dd>
+
+ </dl></li>
+
+ <li>
+
+ <p>While <var title="">document</var> is <a href=#an-iframe-srcdoc-document>an
+ <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code>
+ document</a>, let <var title="">document</var> be <var title="">document</var>'s <a href=#browsing-context>browsing context</a>'s
+ <a href=#browsing-context-container>browsing context container</a>'s <code><a href=#document>Document</a></code>
+ instead.</p>
+
+ </li>
+
+ <li>
+
+ <p>Generate the <i>address of the resource from which Request-URIs
+ are obtained</i> as required by HTTP for the <code title=http-referer>Referer</code> (sic) header from <a href="#the-document's-current-address">the
+ document's current address</a> of <var title="">document</var>.
+ <a href=#refsHTTP>[HTTP]</a></p>
+
+ <p>Remove any <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a>
+ component from the generated <i>address of the resource from which
+ Request-URIs are obtained</i>.</p> <!-- RFC2616 says "The URI MUST
+ NOT include a fragment." (section 14.36) -->
+
+ <p>If the <a href=#origin>origin</a> of the appropriate
+ <code><a href=#document>Document</a></code> is not a scheme/host/port tuple, then the
+ <code title=http-referer>Referer</code> (sic) header must be
+ omitted, regardless of its value.</p>
+
+ </li>
+
+ <li><p>If the algorithm was not invoked with the <i>synchronous
+ flag</i>, perform the remaining steps asynchronously.</li>
+
+ <li>
+
+ <p>This is the <i>main step</i>.</p>
+
+ <p>If the resource is identified by an <a href=#absolute-url>absolute URL</a>,
+ and the resource is to be obtained using an idempotent action
+ (such as an HTTP GET <a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or
+ equivalent</a>), and it is already being downloaded for other
+ reasons (e.g. another invocation of this algorithm), and this
+ request would be identical to the previous one (e.g. same <code title=http-accept>Accept</code> and <code title=http-origin>Origin</code> headers), and the user agent is
+ configured such that it is to reuse the data from the existing
+ download instead of initiating a new one, then use the results of
+ the existing download instead of starting a new one.</p>
+
+ <p>Otherwise, if the resource is identified by an <a href=#absolute-url>absolute
+ URL</a> with a scheme that does not define a mechanism to
+ obtain the resource (e.g. it is a <code title="">mailto:</code>
+ URL) or that the user agent does not support, then act as if the
+ resource was an HTTP 204 No Content response with no other
+ metadata.</p>
+
+ <p>Otherwise, if the resource is identified by the
+ <a href=#url>URL</a> <dfn id=about:blank><code>about:blank</code></dfn>, then the
+ resource is immediately available and consists of the empty
+ string, with no metadata.</p>
+
+ <p>Otherwise, at a time convenient to the user and the user agent,
+ download (or otherwise obtain) the resource, applying the
+ semantics of the relevant specifications (e.g. performing an HTTP
+ GET or POST operation, or reading the file from disk, <a href=#concept-js-deref title=concept-js-deref>dereferencing <span title="javascript
+ protocol"><code title="">javascript:</code> URLs</span></a>,
+ etc).</p>
+
+ <p>For the purposes of the <code title=http-referer>Referer</code> (sic) header, use the
+ <i>address of the resource from which Request-URIs are
+ obtained</i> generated in the earlier step.</p>
+
+ <p>For the purposes of the <code title=http-origin>Origin</code>
+ header, if the <a href=#fetch title=fetch>fetching algorithm</a> was
+ explicitly initiated from an <i title="">origin</i>, then <i title="">the origin that initiated the HTTP request</i> is <i title="">origin</i>. Otherwise, this is <i title="">a request from
+ a "privacy-sensitive" context</i>. <a href=#refsORIGIN>[ORIGIN]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>If the algorithm was not invoked with the <i>block cookies
+ flag</i>, and there are cookies to be set, then the user agent
+ must run the following substeps:</p>
+
+ <ol><li><p>Wait until ownership of the <a href=#storage-mutex>storage mutex</a> can
+ be taken by this instance of the <a href=#fetch title=fetch>fetching</a> algorithm.</li>
+
+ <li><p>Take ownership of the <a href=#storage-mutex>storage mutex</a>.</li>
+
+ <li><p>Update the cookies. <a href=#refsCOOKIES>[COOKIES]</a></li>
+
+ <li><p>Release the <a href=#storage-mutex>storage mutex</a> so that it is once
+ again free.</li>
+
+ </ol></li>
+
+ <li>
+
+ <p>If the fetched resource is an HTTP redirect <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a>,
+ then:</p>
+
+ <dl class=switch><dt>If the <i>force same-origin flag</i> is set and the
+ <a href=#url>URL</a> of the target of the redirect does not have the
+ <a href=#same-origin>same origin</a> as the <a href=#url>URL</a> for which the
+ <a href=#fetch>fetch</a> algorithm was invoked</dt>
+
+ <dd>
+
+ <p>Abort these steps and return failure from this algorithm, as
+ if the remote host could not be contacted.</p>
+
+ </dd>
+
+ <dt>If the <i>manual redirect flag</i> is set</dt>
+
+ <dd>
+
+ <p>Continue, using the fetched resource (the redirect) as the
+ result of the algorithm. If the calling algorithm subsequently
+ requires the user agent to <dfn id=transparently-follow-the-redirect>transparently follow the
+ redirect</dfn>, then the user agent must resume this algorithm
+ from the <i>main step</i>, but using the target of the redirect
+ as the resource to fetch, rather than the original resource.</p>
+
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>First, apply any relevant requirements for redirects (such as
+ showing any appropriate prompts). Then, redo <i>main step</i>,
+ but using the target of the redirect as the resource to fetch,
+ rather than the original resource.</p>
+
+ <p class=note>The HTTP specification requires that 301, 302,
+ and 307 redirects, when applied to methods other than the safe
+ methods, not be followed without user confirmation. That would
+ be an appropriate prompt for the purposes of the requirement in
+ the paragraph above. <a href=#refsHTTP>[HTTP]</a></p>
+
+ </dd>
+
+ </dl></li>
+
+ <li>
+
+ <p>If the algorithm was not invoked with the <i>synchronous
+ flag</i>: When the resource is available, or if there is an error
+ of some description, <a href=#queue-a-task>queue a task</a> that uses the
+ resource as appropriate. If the resource can be processed
+ incrementally, as, for instance, with a progressively interlaced
+ JPEG or an HTML file, additional tasks may be queued to process
+ the data as it is downloaded. The <a href=#task-source>task source</a> for
+ these <a href=#concept-task title=concept-task>tasks</a> is the
+ <a href=#networking-task-source>networking task source</a>.</p>
+
+ <p>Otherwise, return the resource or error information to the
+ calling algorithm.</p>
+
+ </li>
+
+ </ol><p>If the user agent can determine the actual length of the resource
+ being <a href=#fetch title=fetch>fetched</a> for an instance of this
+ algorithm, and if that length is finite, then that length is the
+ file's <dfn id=concept-fetch-total title=concept-fetch-total>size</dfn>. Otherwise, the
+ subject of the algorithm (that is, the resource being fetched) has
+ no known <a href=#concept-fetch-total title=concept-fetch-total>size</a>. (For
+ example, the HTTP <code title=http-content-length>Content-Length</code> header might
+ provide this information.)</p>
+
+ <p>The user agent must also keep track of the <dfn id=concept-fetch-loaded title=concept-fetch-loaded>number of bytes downloaded</dfn> for
+ each instance of this algorithm. This number must exclude any
+ out-of-band metadata, such as HTTP headers.</p>
+
+ <p class=note>The <a href=#application-cache>application cache</a> processing model
+ introduces some <a href=#changesToNetworkingModel>changes to the
+ networking model</a> to handle the returning of cached
+ resources.</p>
+
+ <p class=note>The <a href=#navigate title=navigate>navigation</a>
+ processing model handles redirects itself, overriding the
+ redirection handling that would be done by the fetching
+ algorithm.</p>
+
+ <p class=note>Whether the <a href=#content-type-sniffing>type
+ sniffing rules</a> apply to the fetched resource depends on the
+ algorithm that invokes the rules &mdash; they are not always
+ applicable.</p>
+
+
+ <h4 id=concept-http-equivalent><span class=secno>2.7.1 </span>Protocol concepts</h4>
+
+ <p>User agents can implement a variety of transfer protocols, but
+ this specification mostly defines behavior in terms of HTTP. <a href=#refsHTTP>[HTTP]</a></p>
+
+ <p>The <dfn id=concept-http-equivalent-get title=concept-http-equivalent-get>HTTP GET
+ method</dfn> is equivalent to the default retrieval action of the
+ protocol. For example, RETR in FTP. Such actions are idempotent and
+ safe, in HTTP terms.</p>
+
+ <p>The <dfn id=concept-http-equivalent-codes title=concept-http-equivalent-codes>HTTP response
+ codes</dfn> are equivalent to statuses in other protocols that have
+ the same basic meanings. For example, a "file not found" error is
+ equivalent to a 404 code, a server error is equivalent to a 5xx
+ code, and so on.</p>
+
+ <p>The <dfn id=concept-http-equivalent-headers title=concept-http-equivalent-headers>HTTP
+ headers</dfn> are equivalent to fields in other protocols that have
+ the same basic meaning. For example, the HTTP authentication
+ headers are equivalent to the authentication aspects of the FTP
+ protocol.</p>
+
+
+ <h4 id=encrypted-http-and-related-security-concerns><span class=secno>2.7.2 </span>Encrypted HTTP and related security concerns</h4>
+
+ <p>Anything in this specification that refers to HTTP also applies
+ to HTTP-over-TLS, as represented by <a href=#url title=url>URLs</a>
+ representing the <code title="">https</code> scheme.</p>
+
+ <p class=warning>User agents should report certificate errors to
+ the user and must either refuse to download resources sent with
+ erroneous certificates or must act as if such resources were in fact
+ served with no encryption.</p>
+
+ <p>User agents should warn the user that there is a potential
+ problem whenever the user visits a page that the user has previously
+ visited, if the page uses less secure encryption on the second
+ visit.</p>
+
+ <p>Not doing so can result in users not noticing man-in-the-middle
+ attacks.</p>
+
+ <div class=example>
+
+ <p>If a user connects to a server with a self-signed certificate,
+ the user agent could allow the connection but just act as if there
+ had been no encryption. If the user agent instead allowed the user
+ to override the problem and then displayed the page as if it was
+ fully and safely encrypted, the user could be easily tricked into
+ accepting man-in-the-middle connections.</p>
+
+ <p>If a user connects to a server with full encryption, but the
+ page then refers to an external resource that has an expired
+ certificate, then the user agent will act as if the resource was
+ unavailable, possibly also reporting the problem to the user. If
+ the user agent instead allowed the resource to be used, then an
+ attacker could just look for "secure" sites that used resources
+ from a different host and only apply man-in-the-middle attacks to
+ that host, for example taking over scripts in the page.</p>
+
+ <p>If a user bookmarks a site that uses a CA-signed certificate,
+ and then later revisits that site directly but the site has started
+ using a self-signed certificate, the user agent could warn the user
+ that a man-in-the-middle attack is likely underway, instead of
+ simply acting as if the page was not encrypted.</p>
+
+ </div>
+
+
+ <h4 id=content-type-sniffing><span class=secno>2.7.3 </span>Determining the type of a resource</h4>
+
+ <p>The <dfn id=content-type title=Content-Type>Content-Type metadata</dfn> of a
+ resource must be obtained and interpreted in a manner consistent
+ with the requirements of the Media Type Sniffing
+ specification. <a href=#refsMIMESNIFF>[MIMESNIFF]</a></p>
+
+ <p>The <dfn id=content-type-sniffing-0 title="Content-Type sniffing">sniffed type of a
+ resource</dfn> must be found in a manner consistent with the
+ requirements given in the Media Type Sniffing
+ specification for finding the <i>sniffed-type</i> of the relevant
+ sequence of octets. <a href=#refsMIMESNIFF>[MIMESNIFF]</a></p>
+
+ <p>The <dfn id=content-type-sniffing:-image title="Content-Type sniffing: image">rules for sniffing
+ images specifically</dfn> and the <dfn id=content-type-sniffing:-text-or-binary title="Content-Type sniffing:
+ text or binary">rules for distinguishing if a resource is text or
+ binary</dfn> are also defined in the Media Type Sniffing
+ specification. Both sets of rules return a <a href=#mime-type>MIME type</a> as
+ their result. <a href=#refsMIMESNIFF>[MIMESNIFF]</a></p>
+
+ <p class=warning>It is imperative that the rules in the
+ Media Type Sniffing specification be followed
+ exactly. When a user agent uses different heuristics for content
+ type detection than the server expects, security problems can
+ occur. For more details, see the Media Type Sniffing
+ specification. <a href=#refsMIMESNIFF>[MIMESNIFF]</a></p>
+
+
+ <h4 id=extracting-encodings-from-meta-elements><span class=secno>2.7.4 </span>Extracting encodings from <code><a href=#the-meta-element>meta</a></code> elements</h4>
+
+ <p>The <dfn id=algorithm-for-extracting-an-encoding-from-a-meta-element>algorithm for extracting an encoding from a
+ <code>meta</code> element</dfn>, given a string <var title="">s</var>, is as follows. It either returns an encoding or
+ nothing.</p>
+
+ <ol><!-- http://www.hixie.ch/tests/adhoc/html/parsing/encoding/all.html --><li><p>Let <var title="">position</var> be a pointer into <var title="">s</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><i>Loop</i>: Find the first seven characters in <var title="">s</var> after <var title="">position</var> that are an
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the word "<code title="">charset</code>". If no such match is found, return nothing
+ and abort these steps.</li>
+
+ <li><p>Skip any U+0009, U+000A, U+000C, U+000D, or U+0020
+ characters that immediately follow the word "<code title="">charset</code>" (there might not be any).</li>
+
+ <li><p>If the next character is not a U+003D EQUALS SIGN ('='),
+ then move <var title="">position</var> to point just before that
+ next character, and jump back to the step labeled
+ <i>loop</i>.</li>
+
+ <li><p>Skip any U+0009, U+000A, U+000C, U+000D, or U+0020
+ characters that immediately follow the equals sign (there might not
+ be any).</li>
+
+ <li>
+
+ <p>Process the next character as follows:</p>
+
+ <dl class=switch><dt>If it is a U+0022 QUOTATION MARK ('"') and there is a later U+0022 QUOTATION MARK ('"') in <var title="">s</var></dt>
+ <dt>If it is a U+0027 APOSTROPHE ("'") and there is a later U+0027 APOSTROPHE ("'") in <var title="">s</var></dt>
+ <dd>Return the encoding corresponding to the string between this character and the next earliest occurrence of this character.</dd>
+
+ <dt>If it is an unmatched U+0022 QUOTATION MARK ('"')</dt>
+ <dt>If it is an unmatched U+0027 APOSTROPHE ("'")</dt>
+ <dt>If there is no next character</dt>
+ <dd>Return nothing.</dd>
+
+ <dt>Otherwise</dt>
+ <dd>Return the encoding corresponding to the string from this
+ character to the first U+0009, U+000A, U+000C, U+000D, U+0020, or
+ U+003B character or the end of <var title="">s</var>, whichever
+ comes first.</dd>
+
+ </dl></li>
+
+ </ol><p class=note>This algorithm is distinct from those in the HTTP
+ specification (for example, HTTP doesn't allow the use of single
+ quotes and requires supporting a backslash-escape mechanism that is
+ not supported by this algorithm<!-- not to mention not having any
+ rules for error-handling, which is of course why we're having to
+ define it ourselves -->). While the algorithm is used in contexts
+ that, historically, were related to HTTP, the syntax as supported by
+ implementations diverged some time ago. <a href=#refsHTTP>[HTTP]</a></p>
+
+ </div>
+
+
+ <h4 id=cors-settings-attributes><span class=secno>2.7.5 </span>CORS settings attributes</h4>
+
+ <p>A <dfn id=cors-settings-attribute>CORS settings attribute</dfn> is an <a href=#enumerated-attribute>enumerated
+ attribute</a>. The following table lists the keywords and states
+ for the attribute &mdash; the keywords in the left column map to the
+ states in the cell in the second column on the same row as the
+ keyword.</p>
+
+ <table><thead><tr><th> Keyword
+ <th> State
+ <th> Brief description
+ <tbody><tr><td><dfn id=attr-crossorigin-anonymous-keyword title=attr-crossorigin-anonymous-keyword><code>anonymous</code></dfn>
+ <td><dfn id=attr-crossorigin-anonymous title=attr-crossorigin-anonymous>Anonymous</dfn>
+ <td>Cross-origin CORS requests for the element will not have the <i>credentials flag</i> set.
+ <tr><td><dfn id=attr-crossorigin-use-credentials-keyword title=attr-crossorigin-use-credentials-keyword><code>use-credentials</code></dfn>
+ <td><dfn id=attr-crossorigin-use-credentials title=attr-crossorigin-use-credentials>Use Credentials</dfn>
+ <td>Cross-origin CORS requests for the element will have the <i>credentials flag</i> set.
+ </table><p>The empty string is also a valid keyword, and maps to the <a href=#attr-crossorigin-anonymous title=attr-crossorigin-anonymous>Anonymous</a> state. The
+ attribute's <i>invalid value default</i> is the <a href=#attr-crossorigin-anonymous title=attr-crossorigin-anonymous>Anonymous</a> state. The
+ <i>missing value default</i>, used when the attribute is omitted, is
+ the <dfn id=attr-crossorigin-none title=attr-crossorigin-none>No CORS</dfn> state.</p>
+
+
+ <div class=impl>
+ <h4 id=cors-enabled-fetch><span class=secno>2.7.6 </span>CORS-enabled fetch</h4>
+
+ <p>When the user agent is required to perform a <dfn id=potentially-cors-enabled-fetch>potentially
+ CORS-enabled fetch</dfn> of an <a href=#absolute-url>absolute URL</a> <var title="">URL</var>, with a mode <var title="">mode</var> that is
+ either "<a href=#attr-crossorigin-none title=attr-crossorigin-none>No CORS</a>", "<a href=#attr-crossorigin-anonymous title=attr-crossorigin-anonymous>Anonymous</a>", or "<a href=#attr-crossorigin-use-credentials title=attr-crossorigin-use-credentials>Use Credentials</a>",
+ an <a href=#origin>origin</a> <var title="">origin</var>, and a default
+ origin behaviour <var title="">default</var> which is either
+ "<i>taint</i>" or "<i>fail</i>", it must run the first applicable
+ set of steps from the following list. The default origin behaviour
+ is only used if <var title="">mode</var> is "<a href=#attr-crossorigin-none title=attr-crossorigin-none>No CORS</a>". This algorithm wraps
+ the <a href=#fetch>fetch</a> algorithm above, and labels the obtained
+ resource as either <dfn id=cors-same-origin>CORS-same-origin</dfn> or
+ <dfn id=cors-cross-origin>CORS-cross-origin</dfn>, or blocks the resource entirely.</p>
+
+ <dl class=switch><dt>If <var title="">mode</var> is "<a href=#attr-crossorigin-none title=attr-crossorigin-none>No CORS</a>"</dt>
+
+ <dd>
+
+ <p>Run these substeps:</p>
+
+ <ol><li><p>Let <var title="">result</var> have no value.</li>
+
+ <li><p><a href=#fetch>Fetch</a> <var title="">URL</var>, with the
+ <i>manual redirect flag</i> set.</li> <!-- http-origin privacy
+ sensitive -->
+
+ <li><p><i>Loop</i>: Wait for the <a href=#fetch>fetch</a> algorithm
+ to know if the result is a redirect or not.</li>
+
+ <li>
+
+ <p>If the result of the <a href=#fetch>fetch</a> is a redirect, and
+ <var title="">result</var> still has no value, then apply the
+ CORS <a href=#redirect-steps>redirect steps</a>, with the CORS
+ <a href=#credential-flag>credential flag</a> set to true and the <i>request
+ rules</i> being that the user agent continue to follow these
+ steps. If this resumes the <a href=#fetch>fetch</a> algorithm, then
+ return to the <i>loop</i> step. If it failed due to a failure
+ of the CORS <a href=#resource-sharing-check>resource sharing check</a>, then: if <var title="">default</var> is <i>fail</i>, then set <var title="">result</var> to <i>fail</i> and jump to the step
+ labeled <i>end</i>; if <var title="">default</var> is
+ <i>taint</i>, then set <var title="">result</var> to
+ <i>taint</i>, <a href=#transparently-follow-the-redirect>transparently follow the redirect</a>
+ but with the <i>manual redirect flag</i> no longer set, and
+ jump to the step labeled <i>end</i> below.</p>
+
+ <p>Otherwise, if the resource is not available (e.g. there is
+ a network error) then set <var title="">result</var> to the
+ same value as <var title="">default</var>, and jump to the
+ step labeled <i>end</i> below.</p>
+
+ <p>Otherwise, perform a <a href=#resource-sharing-check>resource sharing check</a>,
+ with the CORS <a href=#credential-flag>credential flag</a> set to true. If it
+ returns fail, then set <var title="">result</var> to the same
+ value as <var title="">default</var>; otherwise, set <var title="">result</var> to <i>success</i>. Then, jump to the
+ step labeled <i>end</i> below.</p>
+
+ </li>
+
+ <li>
+
+ <p><i>End</i>: Jump to the appropriate step from the following
+ list:</p>
+
+ <dl class=switch><dt>If <var title="">result</var> is <i>fail</i></dt>
+
+ <dd>
+
+ <p>Discard all fetched data and prevent any <a href=#concept-task title=concept-task>tasks</a> from the <a href=#fetch>fetch</a>
+ algorithm from being <a href=#queue-a-task title="queue a task">queued</a>.
+ For the purposes of the calling algorithm, the user agent must
+ act as if there was a fatal network error and no resource was
+ obtained. The user agent may report a cross-origin resource
+ access failure to the user (e.g. in a debugging console).</p>
+
+ </dd>
+
+ <dt>If <var title="">result</var> is <i>taint</i></dt>
+
+ <dd>
+
+ <p>The <a href=#concept-task title=concept-task>tasks</a> from the
+ <a href=#fetch>fetch</a> algorithm are <a href=#queue-a-task title="queue a
+ task">queued</a> normally, but for the purposes of the
+ calling algorithm, the obtained resource is
+ <a href=#cors-cross-origin>CORS-cross-origin</a>. The user agent may report a
+ cross-origin resource access failure to the user (e.g. in a
+ debugging console).</p>
+
+ </dd>
+
+ <dt>If <var title="">result</var> is <i>success</i></dt>
+
+ <dd>
+
+ <p>The <a href=#concept-task title=concept-task>tasks</a> from the
+ <a href=#fetch>fetch</a> algorithm are <a href=#queue-a-task title="queue a
+ task">queued</a> normally, and for the purposes of the
+ calling algorithm, the obtained resource is
+ <a href=#cors-same-origin>CORS-same-origin</a>.</p>
+
+ </dd>
+
+ </dl></li>
+
+ </ol></dd>
+
+
+ <dt>If <var title="">mode</var> is "<a href=#attr-crossorigin-anonymous title=attr-crossorigin-anonymous>Anonymous</a>" or "<a href=#attr-crossorigin-use-credentials title=attr-crossorigin-use-credentials>Use
+ Credentials</a>"</dt>
+
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p>Perform a <a href=#cross-origin-request>cross-origin request</a> with the
+ <i>request URL</i> set to <var title="">URL</var>, the
+ <i>source origin</i> set to <var title="">origin</var>, and the
+ <i>credentials flag</i> set to true if <var title="">mode</var>
+ is "<a href=#attr-crossorigin-use-credentials title=attr-crossorigin-use-credentials>Use
+ Credentials</a>" and set to false otherwise. <a href=#refsCORS>[CORS]</a></li>
+
+ <li><p>Wait for the CORS <a href=#cross-origin-request-status>cross-origin request status</a>
+ to have a value.</li>
+
+ <li>
+
+ <p>Jump to the appropriate step from the following list:</p>
+
+ <dl class=switch><dt>If the CORS <a href=#cross-origin-request-status>cross-origin request status</a> is not <i>success</i></dt>
+
+ <dd>
+
+ <p>Discard all fetched data and prevent any <a href=#concept-task title=concept-task>tasks</a> from the <a href=#fetch>fetch</a>
+ algorithm from being <a href=#queue-a-task title="queue a task">queued</a>.
+ For the purposes of the calling algorithm, the user agent must
+ act as if there was a fatal network error and no resource was
+ obtained. If a CORS <a href=#resource-sharing-check>resource sharing check</a>
+ failed, the user agent may report a cross-origin resource
+ access failure to the user (e.g. in a debugging console).</p>
+
+ </dd>
+
+ <dt>If the CORS <a href=#cross-origin-request-status>cross-origin request status</a> is <i>success</i></dt>
+
+ <dd>
+
+ <p>The <a href=#concept-task title=concept-task>tasks</a> from the
+ <a href=#fetch>fetch</a> algorithm are <a href=#queue-a-task title="queue a
+ task">queued</a> normally, and for the purposes of the
+ calling algorithm, the obtained resource is
+ <a href=#cors-same-origin>CORS-same-origin</a>.</p>
+
+ </dd>
+
+ </dl></li>
+
+ </ol></dd>
+
+ </dl></div>
+
+
+
+ <h3 id=common-dom-interfaces><span class=secno>2.8 </span>Common DOM interfaces</h3>
+
+ <h4 id=reflecting-content-attributes-in-idl-attributes><span class=secno>2.8.1 </span>Reflecting content attributes in IDL attributes</h4>
+
+ <p>Some IDL attributes are defined to <dfn id=reflect>reflect</dfn> a
+ particular content attribute. This means that on getting, the IDL
+ attribute returns the current value of the content attribute, and on
+ setting, the IDL attribute changes the value of the content
+ attribute to the given value.</p>
+
+<!-- v2 for completeness: (also search for REFLECTIDL)
+ <p class="note">A list of <span>reflecting IDL attributes</span> and
+ their corresponding content attributes is given in the index.</p>
+-->
+
+ <div class=impl>
+
+ <p>In general, on getting, if the content attribute is not present,
+ the IDL attribute must act as if the content attribute's value is
+ the empty string; and on setting, if the content attribute is not
+ present, it must first be added.</p>
+
+ <p>If a reflecting IDL attribute is a <code>DOMString</code>
+ attribute whose content attribute is defined to contain a
+ <a href=#url>URL</a>, then on getting, the IDL attribute must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of the content
+ attribute relative to the element and return the resulting
+ <a href=#absolute-url>absolute URL</a> if that was successful, or the empty
+ string otherwise; and on setting, must set the content attribute to
+ the specified literal value. If the content attribute is absent, the
+ IDL attribute must return the default value, if the content
+ attribute has one, or else the empty string.</p>
+
+ <p>If a reflecting IDL attribute is a <code>DOMString</code>
+ attribute whose content attribute is defined to contain one or more
+ <a href=#url title=URL>URLs</a>, then on getting, the IDL attribute
+ must <a href=#split-a-string-on-spaces title="split a string on spaces">split the content
+ attribute on spaces</a> and return the concatenation of <a href=#resolve-a-url title="resolve a URL">resolving</a> each token URL to an
+ <a href=#absolute-url>absolute URL</a> relative to the element, with a single
+ U+0020 SPACE character between each URL, ignoring any tokens that
+ did not resolve successfully. If the content attribute is absent,
+ the IDL attribute must return the default value, if the content
+ attribute has one, or else the empty string. On setting, the IDL
+ attribute must set the content attribute to the specified literal
+ value.</p>
+
+ <p>If a reflecting IDL attribute is a <code>DOMString</code>
+ attribute whose content attribute is an <a href=#enumerated-attribute>enumerated
+ attribute</a>, and the IDL attribute is <dfn id=limited-to-only-known-values>limited to only
+ known values</dfn>, then, on getting, the IDL attribute must return
+ the conforming value associated with the state the attribute is in
+ (in its canonical case), or the empty string if the attribute is in
+ a state that has no associated keyword value; and on setting, the
+ content attribute must be set to the specified new value.</p>
+
+ <p>If a reflecting IDL attribute is a <code>DOMString</code>
+ attribute but doesn't fall into any of the above categories, then
+ the getting and setting must be done in a transparent,
+ case-preserving manner.</p>
+
+ <p>If a reflecting IDL attribute is a <code title="">boolean</code>
+ attribute, then on getting the IDL attribute must return true if the
+ content attribute is set, and false if it is absent. On setting, the
+ content attribute must be removed if the IDL attribute is set to
+ false, and must be set to the empty string if the IDL attribute is
+ set to true. (This corresponds to the rules for <a href=#boolean-attribute title="boolean
+ attribute">boolean content attributes</a>.)</p>
+
+ <p>If a reflecting IDL attribute has a signed integer type
+ (<code>long</code>) then, on getting, the content attribute must be
+ parsed according to the <a href=#rules-for-parsing-integers title="rules for parsing
+ integers">rules for parsing signed integers</a>, and if that is
+ successful, and the value is in the range of the IDL attribute's
+ type, the resulting value must be returned. If, on the other hand,
+ it fails or returns an out of range value, or if the attribute is
+ absent, then the default value must be returned instead, or 0 if
+ there is no default value. On setting, the given value must be
+ converted to the shortest possible string representing the number as
+ a <a href=#valid-integer>valid integer</a> and then that string must be used as
+ the new content attribute value.</p>
+
+ <p>If a reflecting IDL attribute has a signed integer type
+ (<code>long</code>) that is <dfn id=limited-to-only-non-negative-numbers>limited to only non-negative
+ numbers</dfn> then, on getting, the content attribute must be parsed
+ according to the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a>, and if that is successful, and the value is in the
+ range of the IDL attribute's type, the resulting value must be
+ returned. If, on the other hand, it fails or returns an out of range
+ value, or if the attribute is absent, the default value must be
+ returned instead, or &minus;1 if there is no default value. On
+ setting, if the value is negative, the user agent must throw an
+ <code><a href=#indexsizeerror>IndexSizeError</a></code> exception. Otherwise, the given value
+ must be converted to the shortest possible string representing the
+ number as a <a href=#valid-non-negative-integer>valid non-negative integer</a> and then that
+ string must be used as the new content attribute value.</p>
+
+ <p>If a reflecting IDL attribute has an <em>unsigned</em> integer
+ type (<code>unsigned long</code>) then, on getting, the content
+ attribute must be parsed according to the <a href=#rules-for-parsing-non-negative-integers>rules for parsing
+ non-negative integers</a>, and if that is successful, and the
+ value is in the range 0 to 2147483647 inclusive, the resulting value
+ must be returned. If, on the other hand, it fails or returns an out
+ of range value, or if the attribute is absent, the default value
+ must be returned instead, or 0 if there is no default value. On
+ setting, the given value must be converted to the shortest possible
+ string representing the number as a <a href=#valid-non-negative-integer>valid non-negative
+ integer</a> and then that string must be used as the new content
+ attribute value.</p>
+ <!-- see http://www.w3.org/Bugs/Public/show_bug.cgi?id=10352 and
+ https://bugzilla.mozilla.org/show_bug.cgi?id=586118 for why the
+ range is clamped to 2147483647 rather the normal unsigned long
+ maximum value of 4294967295 -->
+
+ <p>If a reflecting IDL attribute has an unsigned integer type
+ (<code>unsigned long</code>) that is <dfn id=limited-to-only-non-negative-numbers-greater-than-zero>limited to only
+ non-negative numbers greater than zero</dfn>, then the behavior is
+ similar to the previous case, but zero is not allowed. On getting,
+ the content attribute must first be parsed according to the
+ <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a>, and if that is
+ successful, and the value is in the range 1 to 2147483647 inclusive,
+ the resulting value must be returned. If, on the other hand, it
+ fails or returns an out of range value, or if the attribute is
+ absent, the default value must be returned instead, or 1 if there is
+ no default value. On setting, if the value is zero, the user agent
+ must throw an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception. Otherwise, the
+ given value must be converted to the shortest possible string
+ representing the number as a <a href=#valid-non-negative-integer>valid non-negative integer</a>
+ and then that string must be used as the new content attribute
+ value.</p> <!-- see previous paragraph for note about the range -->
+
+ <p>If a reflecting IDL attribute has a floating point number type
+ (<code>double</code>), then, on getting, the content attribute must
+ be parsed according to the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating point
+ number values</a>, and if that is successful, the resulting value
+ must be returned. If, on the other hand, it fails, or if the
+ attribute is absent, the default value must be returned instead, or
+ 0.0 if there is no default value. On setting, the given value must
+ be converted to the <a href=#best-representation-of-the-number-as-a-floating-point-number>best representation of the number as a
+ floating point number</a> and then that string must be used as
+ the new content attribute value.</p>
+
+ <p>If a reflecting IDL attribute has a floating point number type
+ (<code>double</code>) that is <dfn id=limited-to-numbers-greater-than-zero>limited to numbers greater than
+ zero</dfn>, then the behavior is similar to the previous case, but
+ zero and negative values are not allowed. On getting, the content
+ attribute must be parsed according to the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing
+ floating point number values</a>, and if that is successful and
+ the value is greater than 0.0, the resulting value must be returned.
+ If, on the other hand, it fails or returns an out of range value, or
+ if the attribute is absent, the default value must be returned
+ instead, or 0.0 if there is no default value. On setting, if the
+ value is less than or equal to zero, then the value must be ignored.
+ Otherwise, the given value must be converted to the <a href=#best-representation-of-the-number-as-a-floating-point-number>best
+ representation of the number as a floating point number</a> and
+ then that string must be used as the new content attribute
+ value.</p>
+
+ <p class=note>The values Infinity and Not-a-Number (NaN) values
+ throw an exception on setting, as <a href=#float-nan>defined
+ earlier</a>.</p>
+
+ <p>If a reflecting IDL attribute has the type
+ <code><a href=#domtokenlist>DOMTokenList</a></code> or <code><a href=#domsettabletokenlist>DOMSettableTokenList</a></code>, then
+ on getting it must return a <code><a href=#domtokenlist>DOMTokenList</a></code> or
+ <code><a href=#domsettabletokenlist>DOMSettableTokenList</a></code> object (as appropriate) whose
+ underlying string is the element's corresponding content attribute.
+ When the object mutates its underlying string, the content attribute
+ must itself be immediately mutated. When the attribute is absent,
+ then the string represented by the object is the empty string; when
+ the object mutates this empty string, the user agent must add the
+ corresponding content attribute, with its value set to the value it
+ would have been set to after mutating the empty string. The same
+ <code><a href=#domtokenlist>DOMTokenList</a></code> or <code><a href=#domsettabletokenlist>DOMSettableTokenList</a></code>
+ object must be returned every time for each attribute.</p>
+
+ <div class=example>
+
+ <p>If an element with no attributes has its <code title=dom-tokenlist-remove>element.classList.remove()</code>
+ method invoked, the underlying string won't be changed, since the
+ result of removing any token from the empty string is still the
+ empty string. However, if the <code title=dom-tokenlist-add>element.classList.add()</code> method is
+ then invoked, a <code title=attr-class><a href=#classes>class</a></code> attribute
+ will be added to the element with the value of the token to be
+ added.</p>
+
+ </div>
+
+ <p>If a reflecting IDL attribute has the type
+ <code><a href=#htmlelement>HTMLElement</a></code>, or an interface that descends from
+ <code><a href=#htmlelement>HTMLElement</a></code>, then, on getting, it must run the
+ following algorithm (stopping at the first point where a value is
+ returned):</p>
+
+ <ol><li>If the corresponding content attribute is absent, then the
+ IDL attribute must return null.</li>
+
+ <li>Let <var title="">candidate</var> be the element that the <code title=dom-Document-getElementById><a href=#dom-document-getelementbyid>document.getElementById()</a></code> method
+ would find when called on the content attribute's document if it
+ were passed as its argument the current value of the corresponding
+ content attribute.</li>
+
+ <li>If <var title="">candidate</var> is null, or if it is not
+ type-compatible with the IDL attribute, then the IDL attribute must
+ return null.</li>
+
+ <li>Otherwise, it must return <var title="">candidate</var>.</li>
+
+ </ol><p>On setting, if the given element has an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute, and has the same <a href=#home-subtree>home
+ subtree</a> as the element of the attribute being set, and the
+ given element is the first element in that <a href=#home-subtree>home subtree</a>
+ whose <a href=#concept-id title=concept-ID>ID</a> is the value of that <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute, then the content attribute must
+ be set to the value of that <code title=attr-id><a href=#the-id-attribute>id</a></code>
+ attribute. Otherwise, the content attribute must be set to the empty
+ string.</p>
+
+ </div>
+
+
+ <h4 id=collections-0><span class=secno>2.8.2 </span>Collections</h4>
+
+ <p>The <code><a href=#htmlallcollection>HTMLAllCollection</a></code>,
+ <code><a href=#htmlformcontrolscollection>HTMLFormControlsCollection</a></code>,
+ <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code>,
+<!--MD-->
+ and <code><a href=#htmlpropertiescollection>HTMLPropertiesCollection</a></code>
+<!--MD-->
+ interfaces are <a href=#collections>collections</a> derived from the
+ <code><a href=#htmlcollection>HTMLCollection</a></code> interface.</p>
+
+
+ <h5 id=htmlallcollection-0><span class=secno>2.8.2.1 </span>HTMLAllCollection</h5>
+
+ <p>The <code><a href=#htmlallcollection>HTMLAllCollection</a></code> interface represents a generic
+ <a href=#collections title=collections>collection</a> of elements just like
+ <code><a href=#htmlcollection>HTMLCollection</a></code>, with the exception that its <code title=dom-HTMLAllCollection-namedItem><a href=#dom-htmlallcollection-nameditem>namedItem()</a></code> method
+ returns an <code><a href=#htmlallcollection>HTMLAllCollection</a></code> object when there are
+ multiple matching elements.</p>
+
+ <pre class=idl>interface <dfn id=htmlallcollection>HTMLAllCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
+ // inherits <span title=dom-HTMLCollection-length>length</span> and <span title=dom-HTMLCollection-item>item</span>()
+ legacycaller getter object? <a href=#dom-htmlallcollection-nameditem title=dom-HTMLAllCollection-namedItem>namedItem</a>(DOMString name); // overrides inherited namedItem()
+ <a href=#htmlallcollection>HTMLAllCollection</a> <a href=#dom-htmlallcollection-tags title=dom-HTMLAllCollection-tags>tags</a>(DOMString tagName);
+};</pre>
+
+ <dl class=domintro><dt><var title="">collection</var> . <code title=dom-HTMLCollection-length>length</code></dt>
+ <dd>
+ <p>Returns the number of elements in the collection.</p>
+ </dd>
+
+ <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLCollection-item>item</code>(<var title="">index</var>)</dt>
+ <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+ <dt><var title="">collection</var>(<var title="">index</var>)</dt>
+ <dd>
+ <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <a href=#tree-order>tree order</a>.</p>
+ </dd>
+
+ <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLAllCollection-namedItem><a href=#dom-htmlallcollection-nameditem>namedItem</a></code>(<var title="">name</var>)</dt>
+ <dt><var title="">collection</var> = <var title="">collection</var> . <code title=dom-HTMLAllCollection-namedItem><a href=#dom-htmlallcollection-nameditem>namedItem</a></code>(<var title="">name</var>)</dt>
+ <dt><var title="">collection</var>[<var title="">name</var>]</dt>
+ <dt><var title="">collection</var>(<var title="">name</var>)</dt>
+ <dd>
+ <p>Returns the item with <a href=#concept-id title=concept-id>ID</a> or name <var title="">name</var> from the collection.</p>
+ <p>If there are multiple matching items, then an <code><a href=#htmlallcollection>HTMLAllCollection</a></code> object containing all those elements is returned.</p>
+ <p>Only <code><a href=#the-a-element>a</a></code>, <code><a href=#the-applet-element>applet</a></code>, <code><a href=#the-area-element>area</a></code>,
+ <code><a href=#the-embed-element>embed</a></code>, <code><a href=#the-form-element>form</a></code>, <code><a href=#frame>frame</a></code>,
+ <code><a href=#frameset>frameset</a></code>, <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, and
+ <code><a href=#the-object-element>object</a></code> elements can have a name for the purpose of
+ this method; their name is given by the value of their <code title="">name</code> attribute.</p>
+ </dd>
+
+ <dt><var title="">collection</var> = <var title="">collection</var> . <code title=dom-HTMLAllCollection-tags><a href=#dom-htmlallcollection-tags>tags</a></code>(<var title="">tagName</var>)</dt>
+ <dd>
+ <p>Returns a collection that is a filtered view of the current collection, containing only elements with the given tag name.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The object's <a href=#supported-property-indices>supported property indices</a> and
+ <a href=#supported-property-names>supported property names</a> are as defined for
+ <code><a href=#htmlcollection>HTMLCollection</a></code> objects.</p>
+
+ <p>The <dfn id=dom-htmlallcollection-nameditem title=dom-HTMLAllCollection-namedItem><code>namedItem(<var title="">key</var>)</code></dfn> method must act according to the
+ following algorithm:</p>
+
+ <ol><li>
+
+ <p>Let <var title="">collection</var> be an
+ <code><a href=#htmlallcollection>HTMLAllCollection</a></code> object rooted at the same node as
+ the <code><a href=#htmlallcollection>HTMLAllCollection</a></code> object on which the method was
+ invoked, whose filter matches only elements that already
+ match the filter of the <code><a href=#htmlallcollection>HTMLAllCollection</a></code> object on
+ which the method was invoked and that are either:</p>
+
+ <ul><li><code><a href=#the-a-element>a</a></code>, <code><a href=#the-applet-element>applet</a></code>, <code><a href=#the-area-element>area</a></code>,
+ <code><a href=#the-embed-element>embed</a></code>, <code><a href=#the-form-element>form</a></code>, <code><a href=#frame>frame</a></code>,
+ <code><a href=#frameset>frameset</a></code>, <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, or
+ <code><a href=#the-object-element>object</a></code> elements with a <code title="">name</code>
+ attribute equal to <var title="">key</var>, or,</li>
+
+ <li>elements with an <a href=#concept-id title=concept-id>ID</a> equal to
+ <var title="">key</var>.</li>
+
+ </ul></li>
+
+ <li>If, at the time the method is called, there is exactly one node
+ in <var title="">collection</var>, then return that node and stop
+ the algorithm.</li>
+
+ <li>Otherwise, if, at the time the method is called, <var title="">collection</var> is empty, return null and stop the
+ algorithm.</li>
+
+ <li>Otherwise, return <var title="">collection</var>.</li>
+
+ </ol><p>The <dfn id=dom-htmlallcollection-tags title=dom-HTMLAllCollection-tags><code>tags(<var title="">tagName</var>)</code></dfn> method must return an
+ <code><a href=#htmlallcollection>HTMLAllCollection</a></code> rooted at the same node as the
+ <code><a href=#htmlallcollection>HTMLAllCollection</a></code> object on which the method was
+ invoked, whose filter matches only <a href=#html-elements>HTML elements</a> whose
+ local name is the <var title="">tagName</var> argument and that
+ already match the filter of the <code><a href=#htmlallcollection>HTMLAllCollection</a></code>
+ object on which the method was invoked. In <a href=#html-documents>HTML
+ documents</a>, the argument must first be <a href=#converted-to-ascii-lowercase>converted to
+ ASCII lowercase</a>.</p>
+<!--if legacycaller is removed:
+ <p>In addition to the above, <code>HTMLAllCollection</code> objects,
+ in JavaScript, must be callable. Calling such an object must
+ implicitly invoke the index getter with the same arguments.</p>
+-->
+
+ </div>
+
+
+ <h5 id=htmlformcontrolscollection-0><span class=secno>2.8.2.2 </span>HTMLFormControlsCollection</h5>
+
+ <p>The <code><a href=#htmlformcontrolscollection>HTMLFormControlsCollection</a></code> interface represents
+ a <a href=#collections title=collections>collection</a> of <a href=#category-listed title=category-listed>listed elements</a> in <code><a href=#the-form-element>form</a></code>
+ and <code><a href=#the-fieldset-element>fieldset</a></code> elements.</p>
+
+ <pre class=idl>interface <dfn id=htmlformcontrolscollection>HTMLFormControlsCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
+ // inherits <span title=dom-HTMLCollection-length>length</span> and <span title=dom-HTMLCollection-item>item</span>()
+ legacycaller getter object? <a href=#dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem>namedItem</a>(DOMString name); // overrides inherited namedItem()
+};
+
+interface <dfn id=radionodelist>RadioNodeList</dfn> : <a href=#nodelist>NodeList</a> {
+ attribute DOMString <a href=#dom-radionodelist-value title=dom-RadioNodeList-value>value</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">collection</var> . <code title=dom-HTMLCollection-length>length</code></dt>
+ <dd>
+ <p>Returns the number of elements in the collection.</p>
+ </dd>
+
+ <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLCollection-item>item</code>(<var title="">index</var>)</dt>
+ <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+ <dt><var title="">collection</var>(<var title="">index</var>)</dt>
+ <dd>
+ <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <a href=#tree-order>tree order</a>.</p>
+ </dd>
+
+ <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLFormControlsCollection-namedItem><a href=#dom-htmlformcontrolscollection-nameditem>namedItem</a></code>(<var title="">name</var>)</dt>
+ <dt><var title="">radioNodeList</var> = <var title="">collection</var> . <code title=dom-HTMLFormControlsCollection-namedItem><a href=#dom-htmlformcontrolscollection-nameditem>namedItem</a></code>(<var title="">name</var>)</dt>
+ <dt><var title="">collection</var>[<var title="">name</var>]</dt>
+ <dt><var title="">collection</var>(<var title="">name</var>)</dt>
+ <dd>
+ <p>Returns the item with <a href=#concept-id title=concept-id>ID</a> or <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> <var title="">name</var> from the collection.</p>
+ <p>If there are multiple matching items, then a <code><a href=#radionodelist>RadioNodeList</a></code> object containing all those elements is returned.</p>
+ </dd>
+
+ <dt><var title="">radioNodeList</var> . <var title="">value</var> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the value of the first checked radio button represented by the object.</p>
+ <p>Can be set, to check the first radio button with the given value represented by the object.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The object's <a href=#supported-property-indices>supported property indices</a> are as
+ defined for <code><a href=#htmlcollection>HTMLCollection</a></code> objects.</p>
+
+ <p>The <a href=#supported-property-names>supported property names</a> consist of the values
+ of all the <code title=attr-id><a href=#the-id-attribute>id</a></code> and <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attributes of all the elements
+ <a href=#represented-by-the-collection>represented by the collection</a>.</p>
+
+ <p>The <dfn id=dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem><code>namedItem(<var title="">name</var>)</code></dfn> method must act according to the
+ following algorithm:</p>
+
+ <ol><li>If, at the time the method is called, there is exactly one node
+ in the collection that has either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute equal to <var title="">name</var>, then return that node and stop the
+ algorithm.</li>
+
+ <li>Otherwise, if there are no nodes in the collection that have
+ either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute equal to <var title="">name</var>, then return null and stop the algorithm.</li>
+
+ <li>Otherwise, create a new <code><a href=#radionodelist>RadioNodeList</a></code> object
+ representing a <a href=#live>live</a> view of the
+ <code><a href=#htmlformcontrolscollection>HTMLFormControlsCollection</a></code> object, further filtered so
+ that the only nodes in the <code><a href=#radionodelist>RadioNodeList</a></code> object are
+ those that have either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute
+ or a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute equal to <var title="">name</var>. The nodes in the <code><a href=#radionodelist>RadioNodeList</a></code>
+ object must be sorted in <a href=#tree-order>tree order</a>.</li>
+
+ <li>Return that <code><a href=#radionodelist>RadioNodeList</a></code> object.</li>
+
+ </ol><hr><p>Members of the <code><a href=#radionodelist>RadioNodeList</a></code> interface inherited
+ from the <code><a href=#nodelist>NodeList</a></code> interface must behave as they would
+ on a <code><a href=#nodelist>NodeList</a></code> object.</p>
+
+ <p>The <dfn id=dom-radionodelist-value title=dom-RadioNodeList-value><code>value</code></dfn>
+ IDL attribute on the <code><a href=#radionodelist>RadioNodeList</a></code> object, on getting,
+ must return the value returned by running the following steps:</p>
+
+ <ol><li><p>Let <var title="">element</var> be the first element in
+ <a href=#tree-order>tree order</a> represented by the
+ <code><a href=#radionodelist>RadioNodeList</a></code> object that is an <code><a href=#the-input-element>input</a></code>
+ element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute
+ is in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a>
+ state and whose <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a>
+ is true. Otherwise, let it be null.</li>
+
+ <li><p>If <var title="">element</var> is null, or if it is an
+ element with no <code title=attr-input-value><a href=#attr-input-value>value</a></code>
+ attribute, return the empty string.</li>
+
+ <li><p>Otherwise, return the value of <var title="">element</var>'s
+ <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute.</li>
+
+ </ol><p>On setting, the <code title=dom-RadioNodeList-value><a href=#dom-radionodelist-value>value</a></code> IDL attribute must run
+ the following steps:</p>
+
+ <ol><li><p>Let <var title="">element</var> be the first element in
+ <a href=#tree-order>tree order</a> represented by the
+ <code><a href=#radionodelist>RadioNodeList</a></code> object that is an <code><a href=#the-input-element>input</a></code>
+ element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute
+ is in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a>
+ state and whose <code title=attr-input-value><a href=#attr-input-value>value</a></code> content
+ attribute is present and equal to the new value, if any. Otherwise,
+ let it be null.</li>
+
+ <li><p>If <var title="">element</var> is not null, then set its
+ <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> to true.</p>
+
+ </ol><!--
+http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E...%0A%3Cform%20name%3D%22a%22%3E%3Cinput%20id%3D%22x%22%20name%3D%22y%22%3E%3Cinput%20name%3D%22x%22%20id%3D%22y%22%3E%3C/form%3E%0A%3Cscript%3E%0A%20%20var%20x%3B%0A%20%20w%28x%20%3D%20document.forms%5B%27a%27%5D%5B%27x%27%5D%29%3B%0A%20%20w%28x.length%29%3B%0A%20%20x%5B0%5D.parentNode.removeChild%28x%5B0%5D%29%3B%0A%20%20w%28x.length%29%3B%0A%20%20w%28x%20%3D%3D%20document.forms%5B%27a%27%5D%5B%27x%27%5D%29%3B%0A%3C/script%3E%0A
+--></div>
+
+
+ <h5 id=htmloptionscollection-0><span class=secno>2.8.2.3 </span>HTMLOptionsCollection</h5>
+
+ <p>The <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code> interface represents a
+ list of <code><a href=#the-option-element>option</a></code> elements. It is always rooted on a
+ <code><a href=#the-select-element>select</a></code> element and has attributes and methods that
+ manipulate that element's descendants.</p>
+
+ <pre class=idl>interface <dfn id=htmloptionscollection>HTMLOptionsCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
+ // inherits <span title=dom-HTMLCollection-item>item</span>()
+ attribute unsigned long <a href=#dom-htmloptionscollection-length title=dom-HTMLOptionsCollection-length>length</a>; // overrides inherited length
+ legacycaller getter object? <a href=#dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem>namedItem</a>(DOMString name); // overrides inherited namedItem()
+ <a href=#dom-htmloptionscollection-setter title=dom-HTMLOptionsCollection-setter>setter creator</a> void (unsigned long index, <a href=#htmloptionelement>HTMLOptionElement</a> option);
+ void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(<a href=#htmloptionelement>HTMLOptionElement</a> element, optional <a href=#htmlelement>HTMLElement</a>? before);
+ void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(<a href=#htmloptgroupelement>HTMLOptGroupElement</a> element, optional <a href=#htmlelement>HTMLElement</a>? before);
+ void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(<a href=#htmloptionelement>HTMLOptionElement</a> element, long before);
+ void <a href=#dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add>add</a>(<a href=#htmloptgroupelement>HTMLOptGroupElement</a> element, long before);
+ void <a href=#dom-htmloptionscollection-remove title=dom-HTMLOptionsCollection-remove>remove</a>(long index);
+ attribute long <a href=#dom-htmloptionscollection-selectedindex title=dom-HTMLOptionsCollection-selectedIndex>selectedIndex</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">collection</var> . <code title=dom-HTMLOptionsCollection-length><a href=#dom-htmloptionscollection-length>length</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the number of elements in the collection.</p>
+ <p>When set to a smaller number, truncates the number of <code><a href=#the-option-element>option</a></code> elements in the corresponding container.</p>
+ <p>When set to a greater number, adds new blank <code><a href=#the-option-element>option</a></code> elements to that container.</p>
+ </dd>
+
+ <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLCollection-item>item</code>(<var title="">index</var>)</dt>
+ <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+ <dt><var title="">collection</var>(<var title="">index</var>)</dt>
+ <dd>
+ <p>Returns the item with index <var title="">index</var> from the collection. The items are sorted in <a href=#tree-order>tree order</a>.</p>
+ </dd>
+
+ <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLOptionsCollection-namedItem><a href=#dom-htmloptionscollection-nameditem>namedItem</a></code>(<var title="">name</var>)</dt>
+ <dt><var title="">nodeList</var> = <var title="">collection</var> . <code title=dom-HTMLOptionsCollection-namedItem><a href=#dom-htmloptionscollection-nameditem>namedItem</a></code>(<var title="">name</var>)</dt>
+ <dt><var title="">collection</var>[<var title="">name</var>]</dt>
+ <dt><var title="">collection</var>(<var title="">name</var>)</dt>
+ <dd>
+ <p>Returns the item with <a href=#concept-id title=concept-id>ID</a> or <code title=attr-option-name><a href=#attr-option-name>name</a></code> <var title="">name</var> from the collection.</p>
+ <p>If there are multiple matching items, then a <code><a href=#nodelist>NodeList</a></code> object containing all those elements is returned.</p>
+ </dd>
+
+ <dt><var title="">collection</var> . <code title=dom-HTMLOptionsCollection-add><a href=#dom-htmloptionscollection-add>add</a></code>(<var title="">element</var> [, <var title="">before</var> ] )</dt>
+ <dd>
+ <p>Inserts <var title="">element</var> before the node given by <var title="">before</var>.</p>
+ <p>The <var title="">before</var> argument can be a number, in
+ which case <var title="">element</var> is inserted before the item
+ with that number, or an element from the collection, in which case
+ <var title="">element</var> is inserted before that element.</p>
+ <p>If <var title="">before</var> is omitted, null, or a number out
+ of range, then <var title="">element</var> will be added at the
+ end of the list.</p>
+ <p>This method will throw a <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code>
+ exception if <var title="">element</var> is an ancestor of the
+ element into which it is to be inserted.</p>
+ </dd>
+
+ <dt><var title="">collection</var> . <code title=dom-HTMLOptionsCollection-selectedIndex><a href=#dom-htmloptionscollection-selectedindex>selectedIndex</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the index of the first selected item, if any, or
+ &minus;1 if there is no selected item.</p>
+
+ <p>Can be set, to change the selection.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The object's <a href=#supported-property-indices>supported property indices</a> are as
+ defined for <code><a href=#htmlcollection>HTMLCollection</a></code> objects.</p>
+
+ <p>On getting, the <dfn id=dom-htmloptionscollection-length title=dom-HTMLOptionsCollection-length><code>length</code></dfn>
+ attribute must return the number of nodes <a href=#represented-by-the-collection>represented by the
+ collection</a>.</p>
+
+ <p>On setting, the behavior depends on whether the new value is
+ equal to, greater than, or less than the number of nodes
+ <a href=#represented-by-the-collection>represented by the collection</a> at that time. If the
+ number is the same, then setting the attribute must do nothing. If
+ the new value is greater, then <var title="">n</var> new
+ <code><a href=#the-option-element>option</a></code> elements with no attributes and no child nodes
+ must be appended to the <code><a href=#the-select-element>select</a></code> element on which the
+ <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code> is rooted, where <var title="">n</var> is the difference between the two numbers (new
+ value minus old value). Mutation events must be fired as if a
+ <code><a href=#documentfragment>DocumentFragment</a></code> containing the new <code><a href=#the-option-element>option</a></code>
+ elements had been inserted. If the new value is lower, then the
+ last <var title="">n</var> nodes in the collection must be removed
+ from their parent nodes, where <var title="">n</var> is the
+ difference between the two numbers (old value minus new value).</p>
+
+ <p class=note>Setting <code title=dom-HTMLOptionsCollection-length><a href=#dom-htmloptionscollection-length>length</a></code> never removes
+ or adds any <code><a href=#the-optgroup-element>optgroup</a></code> elements, and never adds new
+ children to existing <code><a href=#the-optgroup-element>optgroup</a></code> elements (though it can
+ remove children from them).</p>
+
+ <p>The <a href=#supported-property-names>supported property names</a> consist of the values
+ of all the <code title=attr-id><a href=#the-id-attribute>id</a></code> and <code title=attr-option-name><a href=#attr-option-name>name</a></code> attributes of all the elements
+ <a href=#represented-by-the-collection>represented by the collection</a>.</p>
+
+ <p>The <dfn id=dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem><code>namedItem(<var title="">name</var>)</code></dfn> method must act according to the
+ following algorithm:</p>
+
+ <ol><li>If, at the time the method is called, there is exactly one node
+ in the collection that has either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-option-name><a href=#attr-option-name>name</a></code> attribute equal to <var title="">name</var>, then return that node and stop the
+ algorithm.</li>
+
+ <li>Otherwise, if there are no nodes in the collection that have
+ either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-option-name><a href=#attr-option-name>name</a></code> attribute equal to <var title="">name</var>, then return null and stop the algorithm.</li>
+
+ <!-- IE returns an HTMLCollection instead; we may need to change to that for compat -->
+ <li>Otherwise, create a new <code><a href=#nodelist>NodeList</a></code> object
+ representing a <a href=#live>live</a> view of the
+ <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code> object, further filtered so that
+ the only nodes in the <code><a href=#nodelist>NodeList</a></code> object are those that
+ have either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-option-name><a href=#attr-option-name>name</a></code> attribute equal to <var title="">name</var>. The nodes in the <code><a href=#nodelist>NodeList</a></code> object
+ must be sorted in <a href=#tree-order>tree order</a>.</li>
+
+ <li>Return that <code><a href=#nodelist>NodeList</a></code> object.</li>
+
+ </ol><p>When the user agent is to <dfn id=dom-htmloptionscollection-setter title=dom-HTMLOptionsCollection-setter>set the value of a new
+ indexed property</dfn> for a given property index <var title="">index</var> to a new value <var title="">value</var>, it
+ must run the following algorithm:</p>
+
+ <ol><li><p>Let <var title="">length</var> be the number of nodes
+ <a href=#represented-by-the-collection>represented by the collection</a>.</li>
+
+ <li><p>Let <var title="">n</var> be <var title="">index</var> minus
+ <var title="">length</var>.</li>
+
+ <li><p>If <var title="">n</var> is greater than zero, then append
+ <span title=""><var title="">n</var>-1</span> new
+ <code><a href=#the-option-element>option</a></code> elements with no attributes and no child nodes
+ to the <code><a href=#the-select-element>select</a></code> element on which the
+ <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code> is rooted. Mutation events must
+ be fired as if a <code><a href=#documentfragment>DocumentFragment</a></code> containing the new
+ <code><a href=#the-option-element>option</a></code> elements had been inserted.</li>
+
+ <li><p>If <var title="">n</var> is greater than or equal to zero,
+ append <var title="">value</var> to the <code><a href=#the-select-element>select</a></code>
+ element. Otherwise, replace the <var title="">index</var>th element
+ in the collection by <var title="">value</var>.</li>
+
+ </ol><p>The <dfn id=dom-htmloptionscollection-add title=dom-HTMLOptionsCollection-add><code>add(<var title="">element</var>, <var title="">before</var>)</code></dfn>
+ method must act according to the following algorithm:</p>
+
+ <ol><li><p>If <var title="">element</var> is an ancestor of the
+ <code><a href=#the-select-element>select</a></code> element on which the
+ <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code> is rooted, then throw a
+ <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code> exception.</li>
+
+ <li><p>If <var title="">before</var> is an element, but that
+ element isn't a descendant of the <code><a href=#the-select-element>select</a></code> element on
+ which the <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code> is rooted, then throw
+ a <code><a href=#notfounderror>NotFoundError</a></code> exception.</li>
+
+ <li><p>If <var title="">element</var> and <var title="">before</var> are the same element, then return and abort
+ these steps.</li>
+
+ <li><p>If <var title="">before</var> is a node, then let <var title="">reference</var> be that node. Otherwise, if <var title="">before</var> is an integer, and there is a <var title="">before</var>th node in the collection, let <var title="">reference</var> be that node. Otherwise, let <var title="">reference</var> be null.</li>
+
+ <li><p>If <var title="">reference</var> is not null, let <var title="">parent</var> be the parent node of <var title="">reference</var>. Otherwise, let <var title="">parent</var>
+ be the <code><a href=#the-select-element>select</a></code> element on which the
+ <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code> is rooted.</li>
+
+ <li><p>Act as if the DOM Core <code title=dom-Node-insertBefore><a href=#dom-node-insertbefore>insertBefore()</a></code> method was
+ invoked on the <var title="">parent</var> node, with <var title="">element</var> as the first argument and <var title="">reference</var> as the second argument.</p>
+
+ </ol><p>The <dfn id=dom-htmloptionscollection-remove title=dom-HTMLOptionsCollection-remove><code>remove(<var title="">index</var>)</code></dfn> method must act according to
+ the following algorithm:</p>
+
+ <ol><li><p>If the number of nodes <a href=#represented-by-the-collection>represented by the
+ collection</a> is zero, abort these steps.</li>
+
+ <li><p>If <var title="">index</var> is not a number greater than or
+ equal to 0 and less than the number of nodes <a href=#represented-by-the-collection>represented by
+ the collection</a>, let <var title="">element</var> be the first
+ element in the collection. Otherwise, let <var title="">element</var> be the <var title="">index</var>th element
+ in the collection.</li>
+
+ <li><p>Remove <var title="">element</var> from its parent
+ node.</li>
+
+ </ol><p>The <dfn id=dom-htmloptionscollection-selectedindex title=dom-HTMLOptionsCollection-selectedIndex><code>selectedIndex</code></dfn>
+ IDL attribute must act like the identically named attribute on the
+ <code><a href=#the-select-element>select</a></code> element on which the
+ <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code> is rooted</p>
+
+ <!-- see also http://ln.hixie.ch/?start=1161042744&count=1 -->
+
+ </div>
+
+<!--MD-->
+ <div data-component="HTML Microdata (editor: Ian Hickson)">
+
+ <h5 id=htmlpropertiescollection-0><span class=secno>2.8.2.4 </span>HTMLPropertiesCollection</h5>
+
+ <p>The <code><a href=#htmlpropertiescollection>HTMLPropertiesCollection</a></code> interface represents a
+ <a href=#collections title=collections>collection</a> of elements that add
+ name-value pairs to a particular <a href=#concept-item title=concept-item>item</a> in the <a href=#microdata>microdata</a>
+ model.</p>
+
+ <pre class=idl>interface <dfn id=htmlpropertiescollection>HTMLPropertiesCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
+ // inherits <span title=dom-HTMLCollection-length>length</span> and <span title=dom-HTMLCollection-item>item</span>()
+ legacycaller getter <a href=#propertynodelist>PropertyNodeList</a>? <a href=#dom-htmlpropertiescollection-nameditem title=dom-HTMLPropertiesCollection-namedItem>namedItem</a>(DOMString name); // overrides inherited namedItem()
+ readonly attribute <span>DOMStringList</span> <a href=#dom-htmlpropertiescollection-names title=dom-HTMLPropertiesCollection-names>names</a>;
+};
+
+typedef sequence&lt;any&gt; <dfn id=propertyvaluearray>PropertyValueArray</dfn>;
+
+interface <dfn id=propertynodelist>PropertyNodeList</dfn> : <a href=#nodelist>NodeList</a> {
+ <a href=#propertyvaluearray>PropertyValueArray</a> <a href=#dom-propertynodelist-getvalues title=dom-PropertyNodeList-getValues>getValues</a>();
+};</pre>
+
+ <dl class=domintro><dt><var title="">collection</var> . <code title=dom-HTMLCollection-length>length</code></dt>
+ <dd>
+ <p>Returns the number of elements in the collection.</p>
+ </dd>
+
+ <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLCollection-item>item</code>(<var title="">index</var>)</dt>
+ <dt><var title="">collection</var>[<var title="">index</var>]</dt>
+ <dt><var title="">collection</var>(<var title="">index</var>)</dt>
+ <dd>
+ <p>Returns the element with index <var title="">index</var> from the collection. The items are sorted in <a href=#tree-order>tree order</a>.</p>
+ </dd>
+
+ <dt><var title="">propertyNodeList</var> = <var title="">collection</var> . <code title=dom-HTMLPropertiesCollection-namedItem><a href=#dom-htmlpropertiescollection-nameditem>namedItem</a></code>(<var title="">name</var>)</dt>
+ <dt><var title="">collection</var>(<var title="">name</var>)</dt>
+ <dd>
+ <p>Returns a <code><a href=#propertynodelist>PropertyNodeList</a></code> object containing any elements that add a property named <var title="">name</var>.</p>
+ </dd>
+
+ <dt><var title="">collection</var>[<var title="">name</var>]</dt>
+ <dd>
+ <p>Returns a <code><a href=#propertynodelist>PropertyNodeList</a></code> object containing any elements that add a property named <var title="">name</var>. The <var title="">name</var> index has to be one of the values listed in the <code title=dom-HTMLPropertiesCollection-names><a href=#dom-htmlpropertiescollection-names>names</a></code> list.</p>
+ </dd>
+
+ <dt><var title="">collection</var> . <code title=dom-HTMLPropertiesCollection-names><a href=#dom-htmlpropertiescollection-names>names</a></code></dt>
+ <dd>
+ <p>Returns a <code>DOMStringList</code> with the <a href=#property-names>property names</a> of the elements in the collection.</p>
+ </dd>
+
+ <dt><var title="">propertyNodeList</var> . <code title=dom-PropertyNodeList-getVlues>getValues</code>()</dt>
+ <dd>
+ <p>Returns an array of the various values that the relevant elements have.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The object's <a href=#supported-property-indices>supported property indices</a> are as
+ defined for <code><a href=#htmlcollection>HTMLCollection</a></code> objects.</p>
+
+ <p>The <a href=#supported-property-names>supported property names</a> consist of the
+ <a href=#property-names>property names</a> of all the elements <a href=#represented-by-the-collection>represented by
+ the collection</a>.</p>
+
+ <p>The <dfn id=dom-htmlpropertiescollection-names title=dom-HTMLPropertiesCollection-names><code>names</code></dfn>
+ attribute must return a <a href=#live>live</a> <code>DOMStringList</code>
+ object giving the <a href=#property-names>property names</a> of all the elements
+ <a href=#represented-by-the-collection>represented by the collection</a>, listed in <a href=#tree-order>tree
+ order</a>, but with duplicates removed, leaving only the first
+ occurrence of each name. The same object must be returned each
+ time.</p>
+
+ <p>The <dfn id=dom-htmlpropertiescollection-nameditem title=dom-HTMLPropertiesCollection-namedItem><code>namedItem(<var title="">name</var>)</code></dfn> method must return a
+ <code><a href=#propertynodelist>PropertyNodeList</a></code> object representing a
+ <a href=#live>live</a> view of the <code><a href=#htmlpropertiescollection>HTMLPropertiesCollection</a></code>
+ object, further filtered so that the only nodes in the
+ <code><a href=#propertynodelist>PropertyNodeList</a></code> object are those that have a <a href=#property-names title="property names">property name</a> equal to <var title="">name</var>. The nodes in the <code><a href=#propertynodelist>PropertyNodeList</a></code>
+ object must be sorted in <a href=#tree-order>tree order</a>, and the same
+ object must be returned each time a particular <var title="">name</var> is queried.</p>
+
+ <hr><p>Members of the <code><a href=#propertynodelist>PropertyNodeList</a></code> interface inherited
+ from the <code><a href=#nodelist>NodeList</a></code> interface must behave as they would
+ on a <code><a href=#nodelist>NodeList</a></code> object.</p>
+
+ <p>The <dfn id=dom-propertynodelist-getvalues title=dom-PropertyNodeList-getValues><code>getValues</code></dfn>
+ method the <code><a href=#propertynodelist>PropertyNodeList</a></code> object must return a newly
+ constructed array whose values are the values obtained from the
+ <code title=dom-itemValue><a href=#dom-itemvalue>itemValue</a></code> DOM property of each of
+ the elements represented by the object, in <a href=#tree-order>tree
+ order</a>.</p>
+
+ </div>
+
+ </div><!--data-component-->
+<!--MD-->
+
+
+
+ <h4 id=domstringmap-0><span class=secno>2.8.3 </span>DOMStringMap</h4>
+
+ <p>The <code><a href=#domstringmap>DOMStringMap</a></code> interface represents a set of
+ name-value pairs. It exposes these using the scripting language's
+ native mechanisms for property access.</p>
+
+ <div class=impl>
+
+ <p>When a <code><a href=#domstringmap>DOMStringMap</a></code> object is instantiated, it is
+ associated with three algorithms, one for getting the list of
+ name-value pairs, one for setting names to certain values, and one
+ for deleting names.</p>
+
+ <pre class=idl>interface <dfn id=domstringmap>DOMStringMap</dfn> {
+ <a href=#dom-domstringmap-nameditem title=dom-DOMStringMap-namedItem>getter</a> DOMString (DOMString name);
+ <a href=#dom-domstringmap-setitem title=dom-DOMStringMap-setItem>setter</a> void (DOMString name, DOMString value);
+ <a href=#dom-domstringmap-additem title=dom-DOMStringMap-addItem>creator</a> void (DOMString name, DOMString value);
+ <a href=#dom-domstringmap-removeitem title=dom-DOMStringMap-removeItem>deleter</a> void (DOMString name);
+};</pre>
+
+ <p>The <a href=#supported-property-names>supported property names</a> on a
+ <code><a href=#domstringmap>DOMStringMap</a></code> object at any instant are the names of
+ each pair returned from the algorithm for getting the list of
+ name-value pairs at that instant.</p>
+
+ <p>To <dfn id=dom-domstringmap-nameditem title=dom-DOMStringMap-namedItem>determine the value of
+ a named property</dfn> <var title="">name</var> in a
+ <code><a href=#domstringmap>DOMStringMap</a></code>, the user agent must return the value
+ component of the name-value pair whose name component is <var title="">name</var> in the list returned by the algorithm for
+ getting the list of name-value pairs.</p>
+
+ <p>To set the value of a <dfn id=dom-domstringmap-additem title=dom-DOMStringMap-addItem>new</dfn> or <dfn id=dom-domstringmap-setitem title=dom-DOMStringMap-setItem>existing</dfn> named property <var title="">name</var> to value <var title="">value</var>, the
+ algorithm for setting names to certain values must be run, passing
+ <var title="">name</var> as the name and the result of converting
+ <var title="">value</var> to a <code>DOMString</code> as the
+ value.</p>
+
+ <p>To <dfn id=dom-domstringmap-removeitem title=dom-DOMStringMap-removeItem>delete an existing
+ named property</dfn> <var title="">name</var>, the algorithm for
+ deleting names must be run, passing <var title="">name</var> as the
+ name.</p>
+
+ <p class=note>The <code><a href=#domstringmap>DOMStringMap</a></code> interface definition
+ here is only intended for JavaScript environments. Other language
+ bindings will need to define how <code><a href=#domstringmap>DOMStringMap</a></code> is to be
+ implemented for those languages.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The <code title=dom-dataset><a href=#dom-dataset>dataset</a></code> attribute on
+ elements exposes the <code title=attr-data-*><a href=#attr-data-*>data-*</a></code>
+ attributes on the element.</p>
+
+ <p>Given the following fragment and elements with similar
+ constructions:</p>
+
+ <pre>&lt;img class="tower" id="tower5" data-x="12" data-y="5"
+ data-ai="robotarget" data-hp="46" data-ability="flames"
+ src="towers/rocket.png alt="Rocket Tower"&gt;</pre>
+
+ <p>...one could imagine a function <code title="">splashDamage()</code> that takes some arguments, the first
+ of which is the element to process:</p>
+
+ <pre>function splashDamage(node, x, y, damage) {
+ if (node.classList.contains('tower') &amp;&amp; // checking the 'class' attribute
+ node.dataset.x == x &amp;&amp; // reading the 'data-x' attribute
+ node.dataset.y == y) { // reading the 'data-y' attribute
+ var hp = parseInt(node.dataset.hp); // reading the 'data-hp' attribute
+ hp = hp - damage;
+ if (hp &lt; 0) {
+ hp = 0;
+ node.dataset.ai = 'dead'; // setting the 'data-ai' attribute
+ delete node.dataset.ability; // removing the 'data-ability' attribute
+ }
+ node.dataset.hp = hp; // setting the 'data-hp' attribute
+ }
+}</pre>
+
+ </div>
+
+
+<!--CSSREF-->
+ <h4 id=domelementmap-0><span class=secno>2.8.4 </span>DOMElementMap</h4>
+
+ <p>The <code><a href=#domelementmap>DOMElementMap</a></code> interface represents a set of
+ name-element mappings. It exposes these using the scripting
+ language's native mechanisms for property access.</p>
+
+ <div class=impl>
+
+ <p>When a <code><a href=#domelementmap>DOMElementMap</a></code> object is instantiated, it is
+ associated with three algorithms, one for getting the list of
+ name-element mappings, one for mapping a name to a certain element,
+ and one for deleting mappings by name.</p>
+
+ <pre class=idl>interface <dfn id=domelementmap>DOMElementMap</dfn> {
+ <a href=#dom-domelementmap-nameditem title=dom-DOMElementMap-namedItem>getter</a> <a href=#element>Element</a> (DOMString name);
+ <a href=#dom-domelementmap-setitem title=dom-DOMElementMap-setItem>setter</a> void (DOMString name, <a href=#element>Element</a> value);
+ <a href=#dom-domelementmap-additem title=dom-DOMElementMap-addItem>creator</a> void (DOMString name, <a href=#element>Element</a> value);
+ <a href=#dom-domelementmap-removeitem title=dom-DOMElementMap-removeItem>deleter</a> void (DOMString name);
+};</pre>
+
+ <p>The <a href=#supported-property-names>supported property names</a> on a
+ <code><a href=#domelementmap>DOMElementMap</a></code> object at any instant are the names for
+ each mapping returned from the algorithm for getting the list of
+ name-element mappings at that instant.</p>
+
+ <p>To <dfn id=dom-domelementmap-nameditem title=dom-DOMElementMap-namedItem>determine the value
+ of a named property</dfn> <var title="">name</var> in a
+ <code><a href=#domelementmap>DOMElementMap</a></code>, the user agent must return the element
+ component of the name-element mapping whose name component is <var title="">name</var> in the list returned by the algorithm for
+ getting the list of name-element mappings.</p>
+
+ <p>To set the value of a <dfn id=dom-domelementmap-additem title=dom-DOMElementMap-addItem>new</dfn> or <dfn id=dom-domelementmap-setitem title=dom-DOMElementMap-setItem>existing</dfn> named property <var title="">name</var> to value <var title="">value</var>, the
+ algorithm for mapping a name to a certain element must be run,
+ passing <var title="">name</var> as the name <var title="">value</var> as the element.</p>
+
+ <p>To <dfn id=dom-domelementmap-removeitem title=dom-DOMElementMap-removeItem>delete an existing
+ named property</dfn> <var title="">name</var>, the algorithm for
+ deleting mappings must be run, passing <var title="">name</var> as
+ the name component of the mapping to be deleted.</p>
+
+ <p class=note>The <code><a href=#domelementmap>DOMElementMap</a></code> interface definition
+ here is only intended for JavaScript environments. Other language
+ bindings will need to define how <code><a href=#domelementmap>DOMElementMap</a></code> is to be
+ implemented for those languages.</p>
+
+ </div>
+<!--CSSREF-->
+
+
+
+ <h4 id=transferable-objects><span class=secno>2.8.5 </span>Transferable objects</h4>
+
+ <p>Some objects support being copied and closed in one operation.
+ This is called <i>transferring</i> the object, and is used in
+ particular to transfer ownership of unsharable or expensive
+ resources across worker boundaries.</p>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=transferable>Transferable</dfn> { };</pre>
+
+ <div class=impl>
+
+ <p>To <dfn id=transfer-a-transferable-object>transfer a <code>Transferable</code> object</dfn> to a
+ new owner, the user agent must run the steps defined for the type of
+ object in question. The steps will return a new object of the same
+ type, and will permanently neuter the original object. (This is an
+ irreversible and non-idempotent operation; once an object has been
+ transferred, it cannot be transferred, or indeed used, again.)</p>
+
+ </div>
+
+ <p>The following <code><a href=#transferable>Transferable</a></code> types exist:</p>
+
+ <ul class=brief><li><code><a href=#messageport>MessagePort</a></code>
+ <!--<li><code>ArrayBuffer</code>-->
+ </ul><div class=impl>
+
+ <h4 id=safe-passing-of-structured-data><span class=secno>2.8.6 </span>Safe passing of structured data</h4>
+
+ <p>When a user agent is required to obtain a <dfn id=structured-clone>structured
+ clone</dfn> of a value, optionally with a <i>transfer map</i>, it
+ must run the following algorithm, which either returns a separate
+ value, or throws an exception. If a <i>transfer map</i> is provided,
+ it consists of a association list of pairs of
+ <code><a href=#transferable>Transferable</a></code> objects; in each pair, one is the
+ <em>old</em> object and one is the <em>new</em> object.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the value being
+ cloned.</li>
+
+ <li><p>Let <var title="">transfer map</var> be the <i>transfer
+ map</i> passed to the algorithm, if any, or the empty list
+ otherwise.</li>
+
+ <li><p>Let <var title="">memory</var> be an association list of
+ pairs of objects, initially empty. This is used to handle duplicate
+ references. In each pair of objects, one is called the
+ <em>source</em> object and the other the <em>destination</em>
+ object.</li>
+
+ <li><p>For each pair of objects in <var title="">transfer
+ map</var>, add a mapping from the old object (the source object) to
+ the new object (the destination object) to <var title="">memory</var>.</li>
+
+ <li><p>Let <var title="">output</var> be the value resulting from
+ calling the <a href=#internal-structured-cloning-algorithm>internal structured cloning algorithm</a> with
+ <var title="">input</var> as the "<var title="">input</var>"
+ argument, and <var title="">memory</var> as the "<var title="">memory</var>" argument.</li>
+
+ <li><p>Return <var title="">output</var>.</li>
+
+ </ol><p>The <dfn id=internal-structured-cloning-algorithm>internal structured cloning algorithm</dfn> is always
+ called with two arguments, <var title="">input</var> and <var title="">memory</var>, and its behavior is as follows:</p>
+
+ <ol><li><p>If <var title="">input</var> is the source object of a pair
+ of objects in <var title="">memory</var>, then return the
+ destination object in that pair of objects and abort these
+ steps.</li>
+
+ <li><p>If <var title="">input</var> is a primitive value, then
+ return that value and abort these steps.</li>
+
+ <li>
+
+ <p>The <var title="">input</var> value is an object. Jump to the
+ appropriate step below:</p>
+
+ <dl class=switch><dt>If <var title="">input</var> is a Boolean object</dt>
+
+ <dd><p>Let <var title="">output</var> be a newly constructed Boolean object with the same value as <var title="">input</var>.</dd>
+
+ <dt>If <var title="">input</var> is a Number object</dt>
+
+ <dd><p>Let <var title="">output</var> be a newly constructed Number object with the same value as <var title="">input</var>.</dd>
+
+ <dt>If <var title="">input</var> is a String object</dt>
+
+ <dd><p>Let <var title="">output</var> be a newly constructed String object with the same value as <var title="">input</var>.</dd>
+
+ <dt>If <var title="">input</var> is a <code>Date</code> object</dt>
+
+ <dd><p>Let <var title="">output</var> be a newly constructed <code>Date</code> object with the same value as <var title="">input</var>.</dd>
+
+ <dt>If <var title="">input</var> is a <code>RegExp</code> object</dt>
+
+ <dd>
+
+ <p>Let <var title="">output</var> be a newly constructed <code>RegExp</code> object with the same pattern and flags as <var title="">input</var>.</p>
+
+ <p class=note>The value of the <code title="">lastIndex</code> property is not copied.</p>
+
+ </dd>
+
+ <dt>If <var title="">input</var> is a <code><a href=#file>File</a></code> object</dt>
+
+ <dd><p>Let <var title="">output</var> be a newly constructed <code><a href=#file>File</a></code> object corresponding to the same underlying data.</dd>
+
+ <dt>If <var title="">input</var> is a <code><a href=#blob>Blob</a></code> object</dt>
+
+ <dd><p>Let <var title="">output</var> be a newly constructed <code><a href=#blob>Blob</a></code> object corresponding to the same underlying data.</dd>
+
+ <dt>If <var title="">input</var> is a <code><a href=#filelist>FileList</a></code> object</dt>
+
+ <dd><p>Let <var title="">output</var> be a newly constructed <code><a href=#filelist>FileList</a></code> object containing a list of newly constructed <code><a href=#file>File</a></code> objects corresponding to the same underlying data as those in <var title="">input</var>, maintaining their relative order.</dd>
+
+<!--(when we add this, make sure to throw DataCloneError if these objects are already closed)
+ <dt>If <var title="">input</var> is an <code>ArrayBuffer</code> object</dt>
+
+ <dd><p>...</p></dd>
+
+ <dt>If <var title="">input</var> is an <code>ArrayBufferView</code> object</dt>
+
+ <dd><p>...</p></dd>
+-->
+
+ <dt>If <var title="">input</var> is an Array object</dt>
+
+ <dd>
+
+ <p>Let <var title="">output</var> be a newly constructed empty
+ <code>Array</code> object whose <code title="">length</code> is
+ equal to the <code title="">length</code> of <var title="">input</var>.</p>
+
+ <p class=note>This means that the length of sparse arrays is
+ preserved.</p>
+
+ </dd>
+
+ <dt>If <var title="">input</var> is an Object object</dt>
+
+ <dd><p>Let <var title="">output</var> be a newly constructed empty <code title="">Object</code> object.</dd>
+
+ <dt>If <var title="">input</var> is another native object type (e.g. <code>Error</code>, <code><a href=#function>Function</a></code>)</dt>
+ <dt>If <var title="">input</var> is a host object (e.g. a DOM node)</dt>
+
+ <dd><p>Throw a <code><a href=#datacloneerror>DataCloneError</a></code> exception and abort
+ the overall <a href=#structured-clone>structured clone</a> algorithm.</dd>
+
+ </dl></li>
+
+ <li><p>Add a mapping from <var title="">input</var> (the source
+ object) to <var title="">output</var> (the destination object) to
+ <var title="">memory</var>.</li>
+
+ <li>
+
+ <p>If <var title="">input</var> is an Array object or an Object
+ object, then, for each enumerable property in <var title="">input</var>, add a new property to <var title="">output</var> having the same name, and having a value
+ created from invoking the <a href=#internal-structured-cloning-algorithm>internal structured cloning
+ algorithm</a> recursively with the value of the property as the
+ "<var title="">input</var>" argument and <var title="">memory</var> as the "<var title="">memory</var>"
+ argument. The order of the properties in the <var title="">input</var> and <var title="">output</var> objects must
+ be the same, and any properties that involve running script must
+ be processed in that same order. If obtaining the value of the
+ property involved executing script, and that script threw an
+ uncaught exception, then abort the overall <a href=#structured-clone>structured
+ clone</a> algorithm, with that exception being passed through
+ to the caller.</p>
+
+ <p class=note>This does not walk the prototype chain.</p>
+
+ <p class=note>Property descriptors, setters, getters, and
+ analogous features are not copied in this process. For example,
+ the property in the input could be marked as read-only, but in the
+ output it would just have the default state (typically read-write,
+ though that could depend on the scripting environment).</p>
+
+ <p class=note>Properties of Array objects are not treated any
+ differently than those of other Objects. In particular, this means
+ that non-index properties of arrays are copied as well.</p>
+
+ </li>
+
+ <li><p>Return <var title="">output</var>.</li>
+
+ </ol><p class=note>This algorithm preserves cycles and preserves the
+ identity of duplicate objects in graphs.</p>
+
+ </div>
+
+
+ <h4 id=dom-feature-strings><span class=secno>2.8.7 </span>DOM feature strings</h4>
+
+ <p>DOM3 Core defines mechanisms for checking for interface support,
+ and for obtaining implementations of interfaces, using <a href=http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMFeatures>feature
+ strings</a>. <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+ <p>Authors are strongly discouraged from using these, as they are
+ notoriously unreliable and imprecise. Authors are encouraged to rely
+ on explicit feature testing or the graceful degradation behavior
+ intrinsic to some of the features in this specification.</p>
+
+ <div class=impl>
+
+ <p>For historical reasons, user agents should return the true value
+ when the <dfn id=hasfeature title=hasFeature><code>hasFeature(<var title="">feature</var>, <var title="">version</var>)</code></dfn>
+ method of the <code><a href=#domimplementation>DOMImplementation</a></code> interface is invoked
+ with <var title="">feature</var> set to either "<code title="">HTML</code>" or "<code title="">XHTML</code>" and <var title="">version</var> set to either "<code>1.0</code>" or
+ "<code>2.0</code>".</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=garbage-collection><span class=secno>2.8.8 </span>Garbage collection</h4>
+
+ <p>There is an <dfn id=implied-strong-reference>implied strong reference</dfn> from any IDL
+ attribute that returns a pre-existing object to that object.</p>
+
+ <div class=example>
+
+ <p>For example, the <code>document.location</code> attribute means
+ that there is a strong reference from a <code><a href=#document>Document</a></code>
+ object to its <code><a href=#location>Location</a></code> object. Similarly, there is
+ always a strong reference from a <code><a href=#document>Document</a></code> to any
+ descendant nodes, and from any node to its owner
+ <code><a href=#document>Document</a></code>.</p>
+
+ </div>
+
+ </div>
+
+
+ <h3 id=namespaces><span class=secno>2.9 </span>Namespaces</h3>
+
+ <p>The <dfn id=html-namespace-0>HTML namespace</dfn> is: <code>http://www.w3.org/1999/xhtml</code></p>
+
+ <p>The <dfn id=mathml-namespace>MathML namespace</dfn> is: <code>http://www.w3.org/1998/Math/MathML</code></p>
+
+ <p>The <dfn id=svg-namespace>SVG namespace</dfn> is: <code>http://www.w3.org/2000/svg</code></p>
+
+ <p>The <dfn id=xlink-namespace>XLink namespace</dfn> is: <code>http://www.w3.org/1999/xlink</code></p>
+
+ <p>The <dfn id=xml-namespace>XML namespace</dfn> is: <code>http://www.w3.org/XML/1998/namespace</code></p>
+
+ <p>The <dfn id=xmlns-namespace>XMLNS namespace</dfn> is: <code>http://www.w3.org/2000/xmlns/</code></p>
+
+ <hr><p>Data mining tools and other user agents that perform operations
+ on content without running scripts, evaluating CSS or XPath
+ expressions, or otherwise exposing the resulting DOM to arbitrary
+ content, may "support namespaces" by just asserting that their DOM
+ node analogues are in certain namespaces, without actually exposing
+ the above strings.</p>
+
+ <hr><p class=note>In <a href=#syntax>the HTML syntax</a>, namespace prefixes
+ and namespace declarations do not have the same effect as in XML.
+ For instance, the colon has no special meaning in HTML element
+ names.</p>
+
+
+ <h2 id=dom><span class=secno>3 </span>Semantics, structure, and APIs of HTML documents</h2>
+
+ <h3 id=documents><span class=secno>3.1 </span>Documents</h3>
+
+ <p>Every XML and HTML document in an HTML UA is represented by a
+ <code><a href=#document>Document</a></code> object. <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+ <p><dfn id="the-document's-address">The document's address</dfn> is an <a href=#absolute-url>absolute URL</a>
+ that is set when the <code><a href=#document>Document</a></code> is created. <dfn id="the-document's-current-address">The
+ document's current address</dfn> is an <a href=#absolute-url>absolute URL</a>
+ that can change during the lifetime of the <code><a href=#document>Document</a></code>,
+ for example when the user <a href=#navigate title=navigate>navigates</a> to
+ a <a href=#scroll-to-fragid title=navigate-fragid>fragment identifier</a> on the
+ page or when the <code title=dom-history-pushState><a href=#dom-history-pushstate>pushState()</a></code> method is called
+ with a new <a href=#url>URL</a>. <span class=impl><a href="#the-document's-current-address">The document's
+ current address</a> must be set to <a href="#the-document's-address">the document's
+ address</a> when the <code><a href=#document>Document</a></code> is created.</span></p>
+
+ <p class=note>Interactive user agents typically expose <a href="#the-document's-current-address">the
+ document's current address</a> in their user interface.</p>
+
+ <p>When a <code><a href=#document>Document</a></code> is created by a <a href=#concept-script title=concept-script>script</a> using the <code title=dom-DOMImplementation-createDocument><a href=#dom-domimplementation-createdocument>createDocument()</a></code>
+ or <code title=dom-DOMHTMLImplementation-createHTMLDocument>createHTMLDocument()</code>
+ APIs, <a href="#the-document's-address">the document's address</a> is the same as <a href="#the-document's-address">the
+ document's address</a> of the <a href="#script's-document">script's document</a>, and
+ the <code><a href=#document>Document</a></code> is both <a href=#ready-for-post-load-tasks>ready for post-load
+ tasks</a> and <a href=#completely-loaded>completely loaded</a> immediately.</p>
+
+ <p>Each <code><a href=#document>Document</a></code> object has a <dfn id=reload-override-flag>reload override
+ flag</dfn> that is originally unset. The flag is set by the <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code> and <code title=dom-document-open><a href=#dom-document-open>document.write()</a></code> methods in certain
+ situations. When the flag is set, the <code><a href=#document>Document</a></code> also has
+ a <dfn id=reload-override-buffer>reload override buffer</dfn> which is a Unicode string that
+ is used as the source of the document when it is reloaded.</p>
+
+ <p>When the user agent is to perform <dfn id=an-overridden-reload>an overridden
+ reload</dfn>, it must act as follows:</p>
+
+ <ol><li><p>Let <var title="">source</var> be the value of the
+ <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active document</a>'s
+ <a href=#reload-override-buffer>reload override buffer</a>.</li>
+
+ <li><p><a href=#navigate>Navigate</a><!--DONAV reload after d.open()--> the
+ <a href=#browsing-context>browsing context</a> to a resource whose source is <var title="">source</var>, with <a href=#replacement-enabled>replacement enabled</a>. When
+ the <a href=#navigate>navigate</a> algorithm creates a <code><a href=#document>Document</a></code>
+ object for this purpose, set that <code><a href=#document>Document</a></code>'s
+ <a href=#reload-override-flag>reload override flag</a> and set its <a href=#reload-override-buffer>reload override
+ buffer</a> to <var title="">source</var>.</li>
+
+ </ol><h4 id=documents-in-the-dom><span class=secno>3.1.1 </span>Documents in the DOM</h4>
+
+ <p>All <code><a href=#document>Document</a></code> objects (in user agents implementing
+ this specification) <span class=impl>must</span> also implement
+ the <code><a href=#htmldocument>HTMLDocument</a></code> interface, available using
+ binding-specific methods. (This is the case whether or not the
+ document in question is an <a href=#html-documents title="HTML documents">HTML
+ document</a> or indeed whether it contains any <a href=#html-elements>HTML
+ elements</a> at all.) <code><a href=#document>Document</a></code> objects <span class=impl>must</span> also implement the document-level interface
+ of any other namespaces that the UA supports.</p>
+
+ <p class=example>For example, if an HTML implementation also
+ supports SVG, then the <code><a href=#document>Document</a></code> object implements both
+ <code><a href=#htmldocument>HTMLDocument</a></code> and <code>SVGDocument</code>.</p>
+
+ <p class=note>Because the <code><a href=#htmldocument>HTMLDocument</a></code> interface is
+ now obtained using binding-specific casting methods instead of
+ simply being the primary interface of the document object, it is no
+ longer defined as inheriting from <code><a href=#document>Document</a></code>.</p>
+
+ <pre class=idl>[OverrideBuiltins]
+interface <dfn id=htmldocument>HTMLDocument</dfn> {
+ // <a href=#resource-metadata-management>resource metadata management</a>
+ [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>] readonly attribute <a href=#location>Location</a>? <a href=#dom-document-location title=dom-document-location>location</a>;
+ readonly attribute DOMString <a href=#dom-document-url title=dom-document-URL>URL</a>;
+ attribute DOMString <a href=#dom-document-domain title=dom-document-domain>domain</a>;
+ readonly attribute DOMString <a href=#dom-document-referrer title=dom-document-referrer>referrer</a>;
+ attribute DOMString <a href=#dom-document-cookie title=dom-document-cookie>cookie</a>;
+ readonly attribute DOMString <a href=#dom-document-lastmodified title=dom-document-lastModified>lastModified</a>;
+ readonly attribute DOMString <a href=#dom-document-readystate title=dom-document-readyState>readyState</a>;
+
+ // <a href=#dom-tree-accessors>DOM tree accessors</a>
+ <a href=#dom-document-nameditem title=dom-document-namedItem>getter</a> object (DOMString name);
+ attribute DOMString <a href=#document.title title=dom-document-title>title</a>;
+ attribute DOMString <a href=#dom-document-dir title=dom-document-dir>dir</a>;
+ attribute <a href=#htmlelement>HTMLElement</a>? <a href=#dom-document-body title=dom-document-body>body</a>;
+ readonly attribute <a href=#htmlheadelement>HTMLHeadElement</a>? <a href=#dom-document-head title=dom-document-head>head</a>;
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-images title=dom-document-images>images</a>;
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-embeds title=dom-document-embeds>embeds</a>;
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-plugins title=dom-document-plugins>plugins</a>;
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-links title=dom-document-links>links</a>;
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-forms title=dom-document-forms>forms</a>;
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-scripts title=dom-document-scripts>scripts</a>;
+ NodeList <a href=#dom-document-getelementsbyname title=dom-document-getElementsByName>getElementsByName</a>(DOMString elementName);
+<!--MD--> NodeList <a href=#dom-document-getitems title=dom-document-getItems>getItems</a>(optional DOMString typeNames); // <a href=#microdata>microdata</a> <!--WARNING: ALSO DUPLICATED IN MICRODATA SECTION--><!--MD-->
+<!--CSSREF--> readonly attribute <a href=#domelementmap>DOMElementMap</a> <a href=#dom-document-csselementmap title=dom-document-cssElementMap>cssElementMap</a>;<!--CSSREF-->
+
+ // <a href=#dynamic-markup-insertion>dynamic markup insertion</a>
+ <a href=#htmldocument>HTMLDocument</a> <a href=#dom-document-open title=dom-document-open>open</a>(optional DOMString type, optional DOMString replace);
+ <a href=#windowproxy>WindowProxy</a> <a href=#dom-document-open title=dom-document-open>open</a>(DOMString url, DOMString name, DOMString features, optional boolean replace);
+ void <a href=#dom-document-close title=dom-document-close>close</a>();
+ void <a href=#dom-document-write title=dom-document-write>write</a>(DOMString... text);
+ void <a href=#dom-document-writeln title=dom-document-writeln>writeln</a>(DOMString... text);
+
+ // <a href=#editing>user interaction</a>
+ readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-document-defaultview title=dom-document-defaultView>defaultView</a>;
+ readonly attribute <a href=#element>Element</a>? <a href=#dom-document-activeelement title=dom-document-activeElement>activeElement</a>;
+ boolean <a href=#dom-document-hasfocus title=dom-document-hasFocus>hasFocus</a>();
+ attribute DOMString <a href=#designMode title=dom-document-designMode>designMode</a>;
+ boolean <a href=#execCommand title=dom-document-execCommand>execCommand</a>(DOMString commandId);
+ boolean <a href=#execCommand title=dom-document-execCommand>execCommand</a>(DOMString commandId, boolean showUI);
+ boolean <a href=#execCommand title=dom-document-execCommand>execCommand</a>(DOMString commandId, boolean showUI, DOMString value);
+ boolean <a href=#dom-document-querycommandenabled title=dom-document-queryCommandEnabled>queryCommandEnabled</a>(DOMString commandId);
+ boolean <a href=#dom-document-querycommandindeterm title=dom-document-queryCommandIndeterm>queryCommandIndeterm</a>(DOMString commandId);
+ boolean <a href=#dom-document-querycommandstate title=dom-document-queryCommandState>queryCommandState</a>(DOMString commandId);
+ boolean <a href=#dom-document-querycommandsupported title=dom-document-queryCommandSupported>queryCommandSupported</a>(DOMString commandId);
+ DOMString <a href=#dom-document-querycommandvalue title=dom-document-queryCommandValue>queryCommandValue</a>(DOMString commandId);
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-commands title=dom-document-commands>commands</a>;
+
+ // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onblur title=handler-onblur>onblur</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onerror title=handler-onerror>onerror</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onload title=handler-onload>onload</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+
+ // special <a href=#event-handler-idl-attributes>event handler IDL attributes</a> that only apply to Document objects
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onreadystatechange title=handler-onreadystatechange>onreadystatechange</a>;
+};
+<a href=#document>Document</a> implements <a href=#htmldocument>HTMLDocument</a>;</pre>
+
+ <p>Since the <code><a href=#htmldocument>HTMLDocument</a></code> interface holds methods and
+ attributes related to a number of disparate features, the members of
+ this interface are described in various different sections.</p>
+
+
+ <h4 id=security-document><span class=secno>3.1.2 </span>Security</h4>
+
+ <p id=security>User agents <span class=impl>must</span> throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception whenever any properties of a
+ <code><a href=#document>Document</a></code> object are accessed by scripts whose
+ <a href=#effective-script-origin>effective script origin</a> is not the <a href=#same-origin title="same
+ origin">same</a> as the <code><a href=#document>Document</a></code>'s <a href=#effective-script-origin>effective
+ script origin</a>.</p>
+
+
+
+ <h4 id=resource-metadata-management><span class=secno>3.1.3 </span><dfn>Resource metadata management</dfn></h4>
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-URL><a href=#dom-document-url>URL</a></code></dt>
+ <dd>
+ <p>Returns <a href="#the-document's-address">the document's address</a>.</p>
+ </dd>
+
+ <dt><var title="">document</var> . <code title=dom-document-referrer><a href=#dom-document-referrer>referrer</a></code></dt>
+ <dd>
+ <p>Returns <a href="#the-document's-current-address" title="the document's current address">the
+ address</a> of the <code><a href=#document>Document</a></code> from which the user
+ navigated to this one, unless it was blocked or there was no such
+ document, in which case it returns the empty string.</p>
+ <p>The <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> link
+ type can be used to block the referrer.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-url title=dom-document-URL><code>URL</code></dfn>
+ attribute must return <a href="#the-document's-address">the document's address</a>.</p>
+
+ <p>The <dfn id=dom-document-referrer title=dom-document-referrer><code>referrer</code></dfn> attribute
+ must return either the <a href="#the-document's-current-address" title="the document's current
+ address">current address</a> of the <a href=#active-document>active document</a>
+ of the <a href=#source-browsing-context>source browsing context</a> <em>at the time the
+ navigation was started</em> (that is, the page which <a href=#navigate title=navigate>navigated</a> the <a href=#browsing-context>browsing context</a>
+ to the current document), with any <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a> component removed; or
+ the empty string if there is no such originating page, or if the UA
+ has been configured not to report referrers in this case, or if the
+ navigation was initiated for a <a href=#hyperlink>hyperlink</a> with a <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword.</p>
+
+ </div>
+
+ <p class=note>In the case of HTTP, the <code title=dom-document-referrer><a href=#dom-document-referrer>referrer</a></code> IDL attribute will
+ match the <code title=http-referer>Referer</code> (sic) header
+ that was sent when <a href=#fetch title=fetch>fetching</a> the current
+ page.</p>
+
+ <p class=note>Typically user agents are configured to not report
+ referrers in the case where the referrer uses an encrypted protocol
+ and the current page does not (e.g. when navigating from an <code title="">https:</code> page to an <code title="">http:</code>
+ page).</p>
+
+ <hr><dl class=domintro><dt><var title="">document</var> . <code title=dom-document-cookie><a href=#dom-document-cookie>cookie</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the HTTP cookies that apply to the
+ <code><a href=#document>Document</a></code>. If there are no cookies or cookies can't be
+ applied to this resource, the empty string will be returned.</p>
+ <p>Can be set, to add a new cookie to the element's set of HTTP
+ cookies.</p>
+ <p>If the contents are <a href=#sandboxed-origin-browsing-context-flag title="sandboxed origin browsing
+ context flag">sandboxed into a unique origin</a> (in an
+ <code><a href=#the-iframe-element>iframe</a></code> with the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute) or the
+ resource was labeled as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>, a
+ <code><a href=#securityerror>SecurityError</a></code> exception will be thrown on getting and
+ setting.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-cookie title=dom-document-cookie><code>cookie</code></dfn>
+ attribute represents the cookies of the resource from which the
+ <code><a href=#document>Document</a></code> was created.</p>
+
+ <p>A <code><a href=#document>Document</a></code> object that falls into one of the
+ following conditions is a <dfn id=cookie-free-document-object>cookie-free <code>Document</code>
+ object</dfn>:</p>
+
+ <ul><li>A <code><a href=#document>Document</a></code> that has no <a href=#browsing-context>browsing
+ context</a>.</li>
+
+ <li>A <code><a href=#document>Document</a></code> whose <a href="#the-document's-address" title="the document's
+ address">address</a> does not use a server-based naming
+ authority.</li>
+
+ </ul><!--Other specifications can also define <code>Document</code>
+ objects as being <span title="cookie-free Document
+ object">cookie-free <code>Document</code> objects</span>.--><p id=sandboxCookies>On getting, if the document is a
+ <a href=#cookie-free-document-object>cookie-free <code>Document</code> object</a>, then the user
+ agent must return the empty string. Otherwise, if the
+ <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a> is not a
+ scheme/host/port tuple, the user agent must throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception. Otherwise, the user agent must
+ first <a href=#obtain-the-storage-mutex>obtain the storage mutex</a> and then return the
+ cookie-string for <a href="#the-document's-address">the document's address</a> for a
+ "non-HTTP" API, <a href=#decoded-as-utf-8,-with-error-handling>decoded as UTF-8, with error handling</a>.
+ <a href=#refsCOOKIES>[COOKIES]</a></p>
+
+ <p>On setting, if the document is a <a href=#cookie-free-document-object>cookie-free
+ <code>Document</code> object</a>, then the user agent must do
+ nothing. Otherwise, if the <code><a href=#document>Document</a></code>'s
+ <a href=#origin>origin</a> is not a scheme/host/port tuple, the user agent
+ must throw a <code><a href=#securityerror>SecurityError</a></code> exception. Otherwise, the
+ user agent must <a href=#obtain-the-storage-mutex>obtain the storage mutex</a> and then act
+ as it would when <a href=#receives-a-set-cookie-string title="receives a
+ set-cookie-string">receiving a set-cookie-string</a> for
+ <a href="#the-document's-address">the document's address</a> via a "non-HTTP" API, consisting
+ of the new value encoded as UTF-8. <a href=#refsCOOKIES>[COOKIES]</a> <a href=#refsRFC3629>[RFC3629]</a></p>
+
+ <p class=note>Since the <code title=dom-document-cookie><a href=#dom-document-cookie>cookie</a></code> attribute is accessible
+ across frames, the path restrictions on cookies are only a tool to
+ help manage which cookies are sent to which parts of the site, and
+ are not in any way a security feature.</p>
+
+ <hr></div>
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-lastmodified><a href=#dom-document-lastmodified>lastModified</a></code></dt>
+ <dd>
+ <p>Returns the date of the last modification to the document, as
+ reported by the server, in the form "<code title="">MM/DD/YYYY&nbsp;hh:mm:ss</code>", in the user's local
+ time zone.</p>
+ <p>If the last modification date is not known, the current time is
+ returned instead.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-lastmodified title=dom-document-lastModified><code>lastModified</code></dfn>
+ attribute, on getting, must return the date and time of the
+ <code><a href=#document>Document</a></code>'s source file's last modification, in the
+ user's local time zone, in the following format:</p>
+
+ <ol><li> The month component of the date. </li>
+
+ <li> A U+002F SOLIDUS character (/). </li>
+
+ <li> The day component of the date. </li>
+
+ <li> A U+002F SOLIDUS character (/). </li>
+
+ <li> The year component of the date. </li>
+
+ <li> A U+0020 SPACE character. </li>
+
+ <li> The hours component of the time. </li>
+
+ <li> A U+003A COLON character (:). </li>
+
+ <li> The minutes component of the time. </li>
+
+ <li> A U+003A COLON character (:). </li>
+
+ <li> The seconds component of the time. </li>
+
+ </ol><p>All the numeric components above, other than the year, must be
+ given as two digits in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9) representing the number in base ten, zero-padded if
+ necessary. The year must be given as the shortest possible string of
+ four or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9) representing the number in base ten, zero-padded if
+ necessary.</p>
+
+ <p>The <code><a href=#document>Document</a></code>'s source file's last modification date
+ and time must be derived from relevant features of the networking
+ protocols used, e.g. from the value of the HTTP <code title=http-last-modified>Last-Modified</code> header of the
+ document, or from metadata in the file system for local files. If
+ the last modification date and time are not known, the attribute
+ must return the current date and time in the above format.</p>
+
+ <hr></div>
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-readyState><a href=#dom-document-readystate>readyState</a></code></dt>
+ <dd>
+ <p>Returns "loading" while the <code><a href=#document>Document</a></code> is loading, "interactive" once it is finished parsing but still loading sub-resources, and "complete" once it has loaded.</p>
+ <p>The <code title=event-readystatechange><a href=#event-readystatechange>readystatechange</a></code> event fires on the <code><a href=#document>Document</a></code> object when this value changes.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>Each document has a <dfn id=current-document-readiness>current document readiness</dfn>. When a
+ <code><a href=#document>Document</a></code> object is created, it must have its
+ <a href=#current-document-readiness>current document readiness</a> set to the string "loading"
+ if the document is associated with an <a href=#html-parser>HTML parser</a> or an
+ <a href=#xml-parser>XML parser</a>, or to the string "complete" otherwise.
+ Various algorithms during page loading affect this value. When the
+ value is set, the user agent must <a href=#fire-a-simple-event>fire a simple event</a>
+ named <dfn id=event-readystatechange title=event-readystatechange><code>readystatechange</code></dfn>
+ at the <code><a href=#document>Document</a></code> object.</p>
+
+ <p>A <code><a href=#document>Document</a></code> is said to have an <dfn id=active-parser>active
+ parser</dfn> if it is associated with an <a href=#html-parser>HTML parser</a> or
+ an <a href=#xml-parser>XML parser</a> that has not yet been <a href=#stop-parsing title="stop
+ parsing">stopped</a> or <a href=#abort-a-parser title="abort a
+ parser">aborted</a>.</p>
+
+ <p>The <dfn id=dom-document-readystate title=dom-document-readyState><code>readyState</code></dfn> IDL
+ attribute must, on getting, return the <a href=#current-document-readiness>current document
+ readiness</a>.</p>
+
+ </div>
+
+
+
+ <h4 id=dom-tree-accessors><span class=secno>3.1.4 </span><dfn>DOM tree accessors</dfn></h4>
+
+ <p><dfn id=the-html-element-0>The <code>html</code> element</dfn> of a document is the
+ document's root element, if there is one and it's an
+ <code><a href=#the-html-element>html</a></code> element, or null otherwise.</p>
+
+ <hr><dl class=domintro><dt><var title="">document</var> . <code title=dom-document-head><a href=#dom-document-head>head</a></code></dt>
+ <dd>
+ <p>Returns <a href=#the-head-element-0>the <code>head</code> element</a>.</p>
+ </dd>
+
+ </dl><p><dfn id=the-head-element-0>The <code>head</code> element</dfn> of a document is the
+ first <code><a href=#the-head-element>head</a></code> element that is a child of <a href=#the-html-element-0>the
+ <code>html</code> element</a>, if there is one, or null
+ otherwise.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-document-head title=dom-document-head><code>head</code></dfn>
+ attribute, on getting, must return <a href=#the-head-element-0>the <code>head</code>
+ element</a> of the document (a <code><a href=#the-head-element>head</a></code> element or
+ null).</p>
+
+ </div>
+
+ <hr><dl class=domintro><dt><var title="">document</var> . <code title=dom-document-title><a href=#document.title>title</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the document's title, as given by <a href=#the-title-element-0>the
+ <code>title</code> element</a>.</p>
+ <p>Can be set, to update the document's title. If there is no
+ <a href=#the-head-element-0 title="the head element"><code>head</code> element</a>,
+ the new value is ignored.</p>
+ <p>In SVG documents, the <code>SVGDocument</code> interface's
+ <code title=dom-svg-title>title</code> attribute takes
+ precedence.</p>
+ </dd>
+
+ </dl><p><dfn id=the-title-element-0>The <code>title</code> element</dfn> of a document is the
+ first <code><a href=#the-title-element>title</a></code> element in the document (in tree order), if
+ there is one, or null otherwise.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=document.title title=dom-document-title><code>title</code></dfn> attribute must,
+ on getting, run the following algorithm:</p>
+
+ <ol><li><p>If the <a href=#root-element>root element</a> is an <code><a href=#svg>svg</a></code>
+ element in the "<code title="">http://www.w3.org/2000/svg</code>"
+ namespace, and the user agent supports SVG, then return the value
+ that would have been returned by the IDL attribute of the same name
+ on the <code>SVGDocument</code> interface. <a href=#refsSVG>[SVG]</a></li>
+
+ <li><p>Otherwise, let <var title="">value</var> be a concatenation
+ of the data of all the child <a href=#text-node title="text node">text
+ nodes</a> of <a href=#the-title-element-0>the <code>title</code> element</a>, in
+ <a href=#tree-order>tree order</a>, or the empty string if <a href=#the-title-element-0>the
+ <code>title</code> element</a> is null.</li>
+
+ <li><p>Replace any sequence of one or more consecutive <a href=#space-character title="space character">space characters</a> in <var title="">value</var> with a single U+0020 SPACE character.</li>
+
+ <li><p><a href=#strip-leading-and-trailing-whitespace>Strip leading and trailing whitespace</a> from <var title="">value</var>.</li>
+
+ <li><p>Return <var title="">value</var>.</li>
+
+ </ol><p>On setting, the following algorithm must be run. Mutation events
+ must be fired as appropriate.</p>
+
+ <ol><li><p>If the <a href=#root-element>root element</a> is an <code><a href=#svg>svg</a></code>
+ element in the "<code title="">http://www.w3.org/2000/svg</code>"
+ namespace, and the user agent supports SVG, then the setter must
+ defer to the setter for the IDL attribute of the same name on the
+ <code>SVGDocument</code> interface. Stop the algorithm here. <a href=#refsSVG>[SVG]</a></li>
+
+ <li>If <a href=#the-title-element-0>the <code>title</code> element</a> is null and
+ <a href=#the-head-element-0>the <code>head</code> element</a> is null, then the
+ attribute must do nothing. Stop the algorithm here.</li>
+
+ <li>If <a href=#the-title-element-0>the <code>title</code> element</a> is null, then a
+ new <code><a href=#the-title-element>title</a></code> element must be created and appended to
+ <a href=#the-head-element-0>the <code>head</code> element</a>. Let <var title="">element</var> be that element. Otherwise, let <var title="">element</var> be <a href=#the-title-element-0>the <code>title</code>
+ element</a>.</li>
+
+ <li>The children of <var title="">element</var> (if any) must all
+ be removed.</li>
+
+ <li>A single <code><a href=#text>Text</a></code> node whose data is the new value
+ being assigned must be appended to <var title="">element</var>.</li>
+
+ </ol><p>The <code title=dom-document-title><a href=#document.title>title</a></code> attribute on
+ the <code><a href=#htmldocument>HTMLDocument</a></code> interface should shadow the attribute
+ of the same name on the <code>SVGDocument</code> interface when the
+ user agent supports both HTML and SVG. <a href=#refsSVG>[SVG]</a></p>
+
+ </div>
+
+ <hr><dl class=domintro><dt><var title="">document</var> . <code title=dom-document-body><a href=#dom-document-body>body</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns <a href=#the-body-element-0>the body element</a>.</p>
+ <p>Can be set, to replace <a href=#the-body-element-0>the body element</a>.</p>
+ <p>If the new value is not a <code><a href=#the-body-element>body</a></code> or <code><a href=#frameset>frameset</a></code> element, this will throw a <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code> exception.</p>
+ </dd>
+
+ </dl><p><dfn id=the-body-element-0>The body element</dfn> of a document is the first child of
+ <a href=#the-html-element-0>the <code>html</code> element</a> that is either a
+ <code><a href=#the-body-element>body</a></code> element or a <code><a href=#frameset>frameset</a></code> element. If
+ there is no such element, it is null. <span class=impl>If the body
+ element is null, then when the specification requires that events be
+ fired at "the body element", they must instead be fired at the
+ <code><a href=#document>Document</a></code> object.</span></p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-document-body title=dom-document-body><code>body</code></dfn>
+ attribute, on getting, must return <a href=#the-body-element-0>the body element</a> of
+ the document (either a <code><a href=#the-body-element>body</a></code> element, a
+ <code><a href=#frameset>frameset</a></code> element, or null). On setting, the following
+ algorithm must be run:</p>
+
+ <ol><!-- if changes are requested:
+ http://lxr.mozilla.org/seamonkey/source/content/html/document/src/nsHTMLDocument.cpp
+ search for ::GetBody ::SetBody
+ http://trac.webkit.org/projects/webkit/browser/trunk/WebCore/html/HTMLDocument.cpp
+ search for ::setBody
+ http://trac.webkit.org/projects/webkit/browser/trunk/WebCore/dom/Document.cpp
+ search for ::body
+ --><li>If the new value is not a <code><a href=#the-body-element>body</a></code> or
+ <code><a href=#frameset>frameset</a></code> element, then throw a
+ <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code> exception and abort these
+ steps.</li>
+
+ <li>Otherwise, if the new value is the same as <a href=#the-body-element-0>the body
+ element</a>, do nothing. Abort these steps.</li>
+
+ <li>Otherwise, if <a href=#the-body-element-0>the body element</a> is not null, then
+ replace that element with the new value in the DOM, as if the root
+ element's <code title="">replaceChild()</code> method had been
+ called with the new value and <a href=#the-body-element-0 title="the body element">the
+ incumbent body element</a> as its two arguments respectively,
+ then abort these steps.</li>
+
+ <li>Otherwise, <a href=#the-body-element-0>the body element</a> is null. Append
+ the new value to the root element.</li>
+
+ </ol></div>
+
+ <hr><dl class=domintro><dt><var title="">document</var> . <code title=dom-document-images><a href=#dom-document-images>images</a></code></dt>
+ <dd>
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-img-element>img</a></code> elements in the <code><a href=#document>Document</a></code>.</p>
+ </dd>
+
+ <dt><var title="">document</var> . <code title=dom-document-embeds><a href=#dom-document-embeds>embeds</a></code></dt>
+ <dt><var title="">document</var> . <code title=dom-document-plugins><a href=#dom-document-plugins>plugins</a></code></dt>
+ <dd>
+ <p>Return an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-embed-element>embed</a></code> elements in the <code><a href=#document>Document</a></code>.</p>
+ </dd>
+
+ <dt><var title="">document</var> . <code title=dom-document-links><a href=#dom-document-links>links</a></code></dt>
+ <dd>
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements in the <code><a href=#document>Document</a></code> that have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes.</p>
+ </dd>
+
+ <dt><var title="">document</var> . <code title=dom-document-forms><a href=#dom-document-forms>forms</a></code></dt>
+ <dd>
+ <p>Return an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-form-element>form</a></code> elements in the <code><a href=#document>Document</a></code>.</p>
+ </dd>
+
+ <dt><var title="">document</var> . <code title=dom-document-scripts><a href=#dom-document-scripts>scripts</a></code></dt>
+ <dd>
+ <p>Return an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-script-element>script</a></code> elements in the <code><a href=#document>Document</a></code>.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <!-- these all return the same object each time because of a rule in
+ the collection section -->
+
+ <p>The <dfn id=dom-document-images title=dom-document-images><code>images</code></dfn>
+ attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only
+ <code><a href=#the-img-element>img</a></code> elements.</p>
+
+ <p>The <dfn id=dom-document-embeds title=dom-document-embeds><code>embeds</code></dfn>
+ attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only
+ <code><a href=#the-embed-element>embed</a></code> elements.</p>
+
+ <p>The <dfn id=dom-document-plugins title=dom-document-plugins><code>plugins</code></dfn>
+ attribute must return the same object as that returned by the <code title=dom-document-embeds><a href=#dom-document-embeds>embeds</a></code> attribute.</p>
+
+ <p>The <dfn id=dom-document-links title=dom-document-links><code>links</code></dfn>
+ attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only <code><a href=#the-a-element>a</a></code>
+ elements with <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>
+ attributes and <code><a href=#the-area-element>area</a></code> elements with <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes.</p>
+
+ <p>The <dfn id=dom-document-forms title=dom-document-forms><code>forms</code></dfn>
+ attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only
+ <code><a href=#the-form-element>form</a></code> elements.</p>
+
+ <p>The <dfn id=dom-document-scripts title=dom-document-scripts><code>scripts</code></dfn>
+ attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only
+ <code><a href=#the-script-element>script</a></code> elements.</p>
+
+ <hr></div>
+
+ <dl class=domintro><dt><var title="">collection</var> = <var title="">document</var> . <code title=dom-document-getElementsByName><a href=#dom-document-getelementsbyname>getElementsByName</a></code>(<var title="">name</var>)</dt>
+ <dd>
+ <p>Returns a <code><a href=#nodelist>NodeList</a></code> of elements in the
+ <code><a href=#document>Document</a></code> that have a <code title="">name</code>
+ attribute with the value <var title="">name</var>.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-getelementsbyname title=dom-document-getElementsByName><code>getElementsByName(<var title="">name</var>)</code></dfn> method takes a string <var title="">name</var>, and must return a <a href=#live>live</a>
+ <code><a href=#nodelist>NodeList</a></code> containing all the <a href=#html-elements>HTML elements</a>
+ in that document that have a <code title="">name</code> attribute
+ whose value is equal to the <var title="">name</var> argument (in a
+ <a href=#case-sensitive>case-sensitive</a> manner), in <a href=#tree-order>tree order</a>.
+ When the method is invoked on a <code><a href=#document>Document</a></code> object again
+ with the same argument, the user agent may return the same as the
+ object returned by the earlier call. In other cases, a new
+ <code><a href=#nodelist>NodeList</a></code> object must be returned.</p>
+
+ </div>
+
+<!--CSSREF-->
+ <hr><dl class=domintro><dt><var title="">element</var> . <code title=dom-document-cssElementMap><a href=#dom-document-csselementmap>cssElementMap</a></code></dt>
+ <dd>
+
+ <p>Returns a <code><a href=#domelementmap>DOMElementMap</a></code> object for the
+ <code><a href=#document>Document</a></code> representing the current <a href=#css-element-reference-identifier title="CSS
+ element reference identifier">CSS element reference
+ identifiers</a>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-csselementmap title=dom-document-cssElementMap><code>cssElementMap</code></dfn>
+ IDL attribute allows authors to define <a href=#css-element-reference-identifier title="CSS element
+ reference identifier">CSS element reference identifiers</a>,
+ which are used in certain CSS features to override the normal <a href=#concept-id title=concept-id>ID</a>-based mapping. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
+
+ <p>When a <code><a href=#document>Document</a></code> is created, it must be associated
+ with an initially-empty <dfn id=css-id-overrides-list>CSS ID overrides list</dfn>, which
+ consists of a list of mappings each of which consists of a string
+ name mapped to an <code><a href=#element>Element</a></code> node.</p>
+
+ <p>Each entry in the <a href=#css-id-overrides-list>CSS ID overrides list</a>, while it is
+ in the list and is either <a href=#in-a-document title="in a Document">in the
+ <code>Document</code></a> or is an <code><a href=#the-img-element>img</a></code>,
+ <code><a href=#the-video-element>video</a></code>, or <code><a href=#the-canvas-element>canvas</a></code> element, defines a
+ <a href=#css-element-reference-identifier>CSS element reference identifier</a> mapping the given name
+ to the given <code><a href=#element>Element</a></code>. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
+
+ <p>On getting, the <code title=dom-document-cssElementMap><a href=#dom-document-csselementmap>cssElementMap</a></code> IDL
+ attribute must return a <code><a href=#domelementmap>DOMElementMap</a></code> object,
+ associated with the following algorithms, which expose the current
+ mappings:</p>
+
+ <dl><dt>The algorithm for getting the list of name-element mappings</dt>
+
+ <dd>
+
+ <p>Return the <code><a href=#document>Document</a></code>'s <a href=#css-id-overrides-list>CSS ID overrides
+ list</a>, maintaining the order in which the entries were
+ originally added to the list.</p>
+
+ </dd>
+
+ <dt>The algorithm for for mapping a name to a certain element</dt>
+
+ <dd>
+
+ <p>Let <var title="">name</var> be the name passed to the
+ algorithm and <var title="">element</var> be the
+ <code><a href=#element>Element</a></code> passed to the algorithm.</p>
+
+ <p>If <var title="">element</var> is null, run the algorithm for
+ deleting mappings by name, passing it <var title="">name</var>.</p>
+
+ <p>Otherwise, if there is an entry in the <code><a href=#document>Document</a></code>'s
+ <a href=#css-id-overrides-list>CSS ID overrides list</a> whose name is <var title="">name</var>, replace its current value with <var title="">element</var>.</p>
+
+ <p>Otherwise, add a mapping to the <code><a href=#document>Document</a></code>'s
+ <a href=#css-id-overrides-list>CSS ID overrides list</a> whose name is <var title="">name</var> and whose element is <var title="">element</var>.</p>
+
+ </dd>
+
+ <dt>The algorithm for deleting mappings by name</dt>
+
+ <dd>
+
+ <p>If there is an entry in the <code><a href=#document>Document</a></code>'s <a href=#css-id-overrides-list>CSS
+ ID overrides list</a> whose name is the name passed to this
+ algorithm, remove it. This also undefines the <a href=#css-element-reference-identifier>CSS element
+ reference identifier</a> for that name. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
+
+ </dd>
+
+ </dl><p>The same object must be returned each time.</p>
+
+ </div>
+<!--CSSREF-->
+
+ <div class=impl>
+
+ <hr><p>The <code><a href=#htmldocument>HTMLDocument</a></code> interface <span title="support
+ named properties">supports named properties</span>. The
+ <a href=#supported-property-names>supported property names</a> at any moment consist of the
+ values of the <code title=attr-name>name</code> content attributes
+ of all the
+ <code><a href=#the-applet-element>applet</a></code>,
+ <a href=#exposed>exposed</a> <code><a href=#the-embed-element>embed</a></code>,
+ <code><a href=#the-form-element>form</a></code>,
+ <code><a href=#the-iframe-element>iframe</a></code>,
+ <code><a href=#the-img-element>img</a></code>, and
+ <a href=#exposed>exposed</a> <code><a href=#the-object-element>object</a></code>
+ elements in the <code><a href=#document>Document</a></code> that have <code title=attr-name>name</code> content attributes, and the values of
+ the <code title=attr-id><a href=#the-id-attribute>id</a></code> content attributes of all the
+ <code><a href=#the-applet-element>applet</a></code> and
+ <a href=#exposed>exposed</a> <code><a href=#the-object-element>object</a></code>
+ elements in the <code><a href=#document>Document</a></code> that have <code title=attr-id><a href=#the-id-attribute>id</a></code> content attributes, and the values of the
+ <code title=attr-id><a href=#the-id-attribute>id</a></code> content attributes of all the
+ <code><a href=#the-img-element>img</a></code>
+ elements in the <code><a href=#document>Document</a></code> that have both <code title=attr-name>name</code> content attributes and <code title=attr-id><a href=#the-id-attribute>id</a></code> content attributes.</p>
+
+ <p>To <a href=#determine-the-value-of-a-named-property>determine the value of a named property</a> <var title="">name</var> when <dfn id=dom-document-nameditem title=dom-document-namedItem>the
+ <code>HTMLDocument</code> object is indexed for property
+ retrieval</dfn>, the user agent must return the value obtained using
+ the following steps:</p>
+
+ <ol><li>
+
+ <p>Let <var title="">elements</var> be the list of <a href=#dom-document-nameditem-filter title=dom-document-namedItem-filter>named elements</a> with
+ the name <var title="">name</var> in the <code><a href=#document>Document</a></code>.
+
+ <p class=note>There will be at least one such element, by
+ definition.<!-- (If there wasn't, then this algorithm wouldn't
+ have been invoked by Web IDL.) --></p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">elements</var> has only one element, and that
+ element is an <code><a href=#the-iframe-element>iframe</a></code> element, then return the
+ <code><a href=#windowproxy>WindowProxy</a></code> object of the <a href=#nested-browsing-context>nested browsing
+ context</a> represented by that <code><a href=#the-iframe-element>iframe</a></code> element,
+ and abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Otherwise, if <var title="">elements</var> has only one
+ element, return that element and abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Otherwise return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only <a href=#dom-document-nameditem-filter title=dom-document-namedItem-filter>named elements</a> with
+ the name <var title="">name</var>.</p> <!-- the same one each time
+ is returned, because of the rule under collections -->
+
+ </li>
+
+ <!--
+ Note that this named getter overrides built-in properties, as in:
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0D%0A...%3Ciframe%20name%3Dbody%3E%3C%2Fiframe%3E%3Cscript%3Ew(document.body)%3C%2Fscript%3E
+ This is what the "OverrideBuiltins" bit means in the IDL.
+ -->
+
+ </ol><p><dfn id=dom-document-nameditem-filter title=dom-document-nameditem-filter>Named elements</dfn>
+ with the name <var title="">name</var>, for the purposes of the
+ above algorithm, are those that are either:</p>
+
+ <ul><li><code><a href=#the-applet-element>applet</a></code>, <a href=#exposed>exposed</a> <code><a href=#the-embed-element>embed</a></code>,
+ <code><a href=#the-form-element>form</a></code>, <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, or
+ <a href=#exposed>exposed</a> <code><a href=#the-object-element>object</a></code> elements that have a <code title=attr-name>name</code> content attribute whose value is <var title="">name</var>, or</li>
+
+ <li><code><a href=#the-applet-element>applet</a></code> or <a href=#exposed>exposed</a> <code><a href=#the-object-element>object</a></code>
+ elements that have an <code title=attr-id><a href=#the-id-attribute>id</a></code> content
+ attribute whose value is <var title="">name</var>, or</li>
+
+ <li><code><a href=#the-img-element>img</a></code> elements that have an <code title=attr-id><a href=#the-id-attribute>id</a></code> content attribute whose value is <var title="">name</var>, and that have a <code title=attr-name>name</code> content attribute present also.</li>
+
+ </ul><p>An <code><a href=#the-embed-element>embed</a></code> or <code><a href=#the-object-element>object</a></code> element is said to
+ be <dfn id=exposed>exposed</dfn> if it has no <a href=#exposed>exposed</a>
+ <code><a href=#the-object-element>object</a></code> ancestor, and, for <code><a href=#the-object-element>object</a></code> elements,
+ is additionally either not showing its <a href=#fallback-content>fallback content</a>
+ or has no <code><a href=#the-object-element>object</a></code> or <code><a href=#the-embed-element>embed</a></code> descendants.</p>
+
+ </div>
+
+ <hr><p class=note>The <code title=dom-document-dir><a href=#dom-document-dir>dir</a></code>
+ attribute on the <code><a href=#htmldocument>HTMLDocument</a></code> interface is defined
+ along with the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> content
+ attribute.</p>
+
+
+
+ <div class=impl> <!-- very deprecated API; use XHR instead -->
+
+ <h4 id=loading-xml-documents><span class=secno>3.1.5 </span>Loading XML documents</h4>
+
+ <p>A <code><a href=#document>Document</a></code> object that is an <a href=#xml-documents title="XML
+ documents">XML document</a> that was created by the <code title=dom-DOMImplementation-createDocument><a href=#dom-domimplementation-createdocument>DOMImplementation.createDocument()</a></code>
+ factory method must also implement the
+ <code><a href=#xmldocumentloader>XMLDocumentLoader</a></code> interface:</p>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=xmldocumentloader>XMLDocumentLoader</dfn> {
+<!--SYNCLOAD attribute boolean <span title="dom-XMLDocumentLoader-async">async</span>;
+--> boolean <a href=#dom-xmldocumentloader-load title=dom-XMLDocumentLoader-load>load</a>(DOMString url);
+};</pre>
+
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/576 -->
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/577 -->
+ <!-- http://www.hixie.ch/tests/adhoc/dom/level0/document/load/001.html -->
+
+<!--SYNCLOAD
+ <p>The <dfn
+ title="dom-XMLDocumentLoader-async"><code>async</code></dfn>
+ attribute must initially be true. On getting, it must return its
+ current value. On setting, its current value must be changed to the
+ new value.</p>
+-->
+ <p>The <dfn id=dom-xmldocumentloader-load title=dom-XMLDocumentLoader-load><code>load(<var title="">url</var>)</code></dfn> method must run the following
+ steps:</p>
+
+ <ol><!--SYNCLOAD
+ <li><p>If <code title="dom-XMLDocumentLoader-async">async</code> is
+ set to false and the <var title="">document</var> is
+ <span>load-blocked</span>, return false and abort these
+ steps.</p></li>
+--><li><p>Let <var title="">document</var> be the <code><a href=#document>Document</a></code>
+ object on which the method was invoked.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the method's
+ first argument, relative to the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base URL">base URL</a>. If this is not
+ successful, throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort
+ these steps. Otherwise, let <var title="">url</var> be the
+ resulting <a href=#absolute-url>absolute URL</a>.</li>
+
+ <li><p>If the <a href=#origin>origin</a> of <var title="">url</var> is not
+ the same as the <a href=#origin>origin</a> of <var title="">document</var>, throw a <code><a href=#securityerror>SecurityError</a></code>
+ exception and abort these steps.</li>
+<!--SYNCLOAD
+ <li><p>If <code title="dom-XMLDocumentLoader-async">async</code> is
+ set to false, let <var title="">document</var> be
+ <dfn>load-blocked</dfn>.</p></li>
+-->
+ <li><p>Remove all child nodes of <var title="">document</var>,
+ without firing any mutation events.</li> <!-- as of 2010-07-26,
+ only Opera fired mutation events here. -->
+
+ <li><p>Set the <a href=#current-document-readiness>current document readiness</a> of <var title="">document</var> to "loading".</li>
+
+ <li><p><!--SYNCLOAD If <code title="dom-XMLDocumentLoader-async">async</code> is
+ set to true, then run--> Run the remainder of these steps asynchronously,
+ and return true from the method.<!--SYNCLOAD Otherwise, continue running these
+ steps without yet returning.--></li>
+
+ <li><p>Let <var title="">result</var> be a <code><a href=#document>Document</a></code>
+ object.</li>
+
+ <li><p>Let <var title="">success</var> be false.</li>
+
+ <li><p><a href=#fetch>Fetch</a> <var title="">url</var> from the
+ <a href=#origin>origin</a> of <var title="">document</var>, with the <i title="">synchronous flag</i> set and the <i title="">force
+ same-origin flag</i> set.</li>
+
+ <li>
+
+ <p>If the fetch attempt was successful, and the resource's <a href=#content-type title=Content-Type>Content-Type metadata</a> is an <a href=#xml-mime-type>XML
+ MIME type</a>, then run these substeps:</p>
+
+ <ol><li><p>Create a new <a href=#xml-parser>XML parser</a> associated with the
+ <var title="">result</var> document.</li>
+
+ <li><p>Pass this parser the fetched document.</li> <!-- no
+ worries about scripts running; there's no browsing context for
+ the document so scripts are automatically disabled -->
+
+ <li><p>If there is an XML well-formedness or XML namespace
+ well-formedness error, then remove all child nodes from <var title="">result</var>. Otherwise let <var title="">success</var>
+ be true.</li>
+
+ </ol></li>
+
+ <li>
+
+ <p><!--SYNCLOAD If <code title="dom-XMLDocumentLoader-async">async</code> is
+ set to true, then <span>queue--> <a href=#queue-a-task>Queue a task</a> to run the following
+ steps. <!--SYNCLOAD Otherwise, run them synchronously.--></p>
+
+ <ol><li><p>Set the <a href=#current-document-readiness>current document readiness</a> of <var title="">document</var> to "complete".</li>
+
+ <li><p>Replace all the children of <var title="">document</var>
+ by the children of <var title="">result</var> (even if it has no
+ children), firing mutation events as if a
+ <code><a href=#documentfragment>DocumentFragment</a></code> containing the new children had
+ been inserted.</li> <!-- as of 2010-07-26, both Firefox and
+ Opera fired mutation events here. -->
+
+ <!-- If the document doesn't have no nodes here, at time of
+ writing, Opera would leave the new nodes and drop the parsed
+ ones, while Firefox would basically abort instead, failing to
+ fire the 'load' event -->
+
+ <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-load>load</code> at <var title="">document</var>.</li>
+
+ </ol></li>
+<!--SYNCLOAD
+ <li><p>If <code title="dom-XMLDocumentLoader-async">async</code>
+ was set to false when this algorithm started, let <var
+ title="">document</var> be no longer
+ <span>load-blocked</span>.</p></li>
+
+ <li><p>If <code title="dom-XMLDocumentLoader-async">async</code>
+ was set to false when this algorithm started, return <var
+ title="">success</var>.</p></li>
+-->
+ </ol></div>
+
+
+ <h3 id=elements><span class=secno>3.2 </span>Elements</h3>
+
+ <h4 id=semantics-0><span class=secno>3.2.1 </span>Semantics</h4>
+
+ <p>Elements, attributes, and attribute values in HTML are defined
+ (by this specification) to have certain meanings (semantics). For
+ example, the <code><a href=#the-ol-element>ol</a></code> element represents an ordered list, and
+ the <code title=attr-lang><a href=#attr-lang>lang</a></code> attribute represents the
+ language of the content.</p>
+
+ <p>These definitions allow HTML processors, such as Web browsers or
+ search engines, to present and use documents and applications in a
+ wide variety of contexts that the author might not have
+ considered.</p>
+
+ <div class=example>
+
+ <p>As a simple example, consider a Web page written by an author
+ who only considered desktop computer Web browsers. Because HTML
+ conveys <em>meaning</em>, rather than presentation, the same page
+ can also be used by a small browser on a mobile phone, without any
+ change to the page. Instead of headings being in large letters as
+ on the desktop, for example, the browser on the mobile phone might
+ use the same size text for the whole the page, but with the
+ headings in bold.</p>
+
+ <p>But it goes further than just differences in screen size: the
+ same page could equally be used by a blind user using a browser
+ based around speech synthesis, which instead of displaying the page
+ on a screen, reads the page to the user, e.g. using headphones.
+ Instead of large text for the headings, the speech browser might
+ use a different volume or a slower voice.</p>
+
+ <p>That's not all, either. Since the browsers know which parts of
+ the page are the headings, they can create a document outline that
+ the user can use to quickly navigate around the document, using
+ keys for "jump to next heading" or "jump to previous heading". Such
+ features are especially common with speech browsers, where users
+ would otherwise find quickly navigating a page quite difficult.</p>
+
+ <p>Even beyond browsers, software can make use of this information.
+ Search engines can use the headings to more effectively index a
+ page, or to provide quick links to subsections of the page from
+ their results. Tools can use the headings to create a table of
+ contents (that is in fact how this very specification's table of
+ contents is generated).</p>
+
+ <p>This example has focused on headings, but the same principle
+ applies to all of the semantics in HTML.</p>
+
+ </div>
+
+ <p>Authors must not use elements, attributes, or attribute values
+ for purposes other than their appropriate intended semantic purpose,
+ as doing so prevents software from correctly processing the
+ page.</p>
+
+ <div class=example>
+
+ <p>For example, the following document is non-conforming, despite
+ being syntactically correct:</p>
+
+ <pre class=bad>&lt;!DOCTYPE HTML&gt;
+&lt;html lang="en-GB"&gt;
+ &lt;head&gt; &lt;title&gt; Demonstration &lt;/title&gt; &lt;/head&gt;
+ &lt;body&gt;
+ &lt;table&gt;
+ &lt;tr&gt; &lt;td&gt; My favourite animal is the cat. &lt;/td&gt; &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td&gt;
+ &mdash;&lt;a href="http://example.org/~ernest/"&gt;&lt;cite&gt;Ernest&lt;/cite&gt;&lt;/a&gt;,
+ in an essay from 1992
+ &lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>...because the data placed in the cells is clearly not tabular
+ data (and the <code><a href=#the-cite-element>cite</a></code> element mis-used). This would make
+ software that relies on these semantics fail: for example, a speech
+ browser that allowed a blind user to navigate tables in the
+ document would report the quote above as a table, confusing the
+ user; similarly, a tool that extracted titles of works from pages
+ would extract "Ernest" as the title of a work, even though it's
+ actually a person's name, not a title.</p>
+
+ <p>A corrected version of this document might be:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html lang="en-GB"&gt;
+ &lt;head&gt; &lt;title&gt; Demonstration &lt;/title&gt; &lt;/head&gt;
+ &lt;body&gt;
+ &lt;blockquote&gt;
+ &lt;p&gt; My favourite animal is the cat. &lt;/p&gt;
+ &lt;/blockquote&gt;
+ &lt;p&gt;
+ &mdash;&lt;a href="http://example.org/~ernest/"&gt;Ernest&lt;/a&gt;,
+ in an essay from 1992
+ &lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>This next document fragment, intended to represent the heading
+ of a corporate site, is similarly non-conforming because the second
+ line is not intended to be a heading of a subsection, but merely a
+ subheading or subtitle (a subordinate heading for the same
+ section).</p>
+
+ <pre class=bad>&lt;body&gt;
+ &lt;h1&gt;ABC Company&lt;/h1&gt;
+ &lt;h2&gt;Leading the way in widget design since 1432&lt;/h2&gt;
+ ...</pre>
+
+ <p>The <code><a href=#the-hgroup-element>hgroup</a></code> element is intended for these kinds of
+ situations:</p>
+
+ <pre>&lt;body&gt;
+ &lt;hgroup&gt;
+ &lt;h1&gt;ABC Company&lt;/h1&gt;
+ &lt;h2&gt;Leading the way in widget design since 1432&lt;/h2&gt;
+ &lt;/hgroup&gt;
+ ...</pre>
+
+ </div>
+
+ <p>Authors must not use elements, attributes, or attribute values
+ that are not permitted by this specification or <a href=#other-applicable-specifications>other
+ applicable specifications</a>, as doing so makes it significantly
+ harder for the language to be extended in the future.</p>
+
+ <div class=example>
+
+ <p>In the next example, there is a non-conforming attribute value
+ ("carpet") and a non-conforming attribute ("texture"), which
+ is not permitted by this specification:</p>
+
+ <pre class=bad>&lt;label&gt;Carpet: &lt;input type="carpet" name="c" texture="deep pile"&gt;&lt;/label&gt;</pre>
+
+ <p>Here would be an alternative and correct way to mark this up:</p>
+
+ <pre>&lt;label&gt;Carpet: &lt;input type="text" class="carpet" name="c" data-texture="deep pile"&gt;&lt;/label&gt;</pre>
+
+ </div>
+
+ <p>Through scripting and using other mechanisms, the values of
+ attributes, text, and indeed the entire structure of the document
+ may change dynamically while a user agent is processing it. The
+ semantics of a document at an instant in time are those represented
+ by the state of the document at that instant in time, and the
+ semantics of a document can therefore change over time. User agents
+ <span class=impl>must</span> update their presentation of the
+ document as this occurs.</p>
+
+ <p class=example>HTML has a <code><a href=#the-progress-element>progress</a></code> element that
+ describes a progress bar. If its "value" attribute is dynamically
+ updated by a script, the UA would update the rendering to show the
+ progress changing.</p>
+
+
+
+ <h4 id=elements-in-the-dom><span class=secno>3.2.2 </span>Elements in the DOM</h4>
+
+ <p>The nodes representing <a href=#html-elements>HTML elements</a> in the DOM
+ <span class=impl>must</span> implement, and expose to scripts, the
+ interfaces listed for them in the relevant sections of this
+ specification. This includes <a href=#html-elements>HTML elements</a> in <a href=#xml-documents>XML
+ documents</a>, even when those documents are in another context
+ (e.g. inside an XSLT transform).</p>
+
+ <p>Elements in the DOM <a href=#represents title=represents>represent</a>
+ things; that is, they have intrinsic <em>meaning</em>, also known as
+ semantics.</p>
+
+ <p class=example>For example, an <code><a href=#the-ol-element>ol</a></code> element
+ represents an ordered list.</p>
+
+ <p>The basic interface, from which all the <a href=#html-elements>HTML
+ elements</a>' interfaces inherit, <span class=impl>and which
+ must be used by elements that have no additional
+ requirements,</span> is the <code><a href=#htmlelement>HTMLElement</a></code> interface.</p>
+
+ <pre class=idl>interface <dfn id=htmlelement>HTMLElement</dfn> : <a href=#element>Element</a> {
+ // <span>metadata attributes</span>
+ attribute DOMString <a href=#dom-title title=dom-title>title</a>;
+ attribute DOMString <a href=#dom-lang title=dom-lang>lang</a>;
+ attribute DOMString <a href=#dom-dir title=dom-dir>dir</a>;
+ attribute <span>DOMString</span> <a href=#dom-classname title=dom-className>className</a>;
+ readonly attribute <a href=#domtokenlist>DOMTokenList</a> <a href=#dom-classlist title=dom-classList>classList</a>;
+ readonly attribute <a href=#domstringmap>DOMStringMap</a> <a href=#dom-dataset title=dom-dataset>dataset</a>;
+
+<!--MD--> // <a href=#microdata>microdata</a> <!--WARNING: ALSO DUPLICATED IN MICRODATA SECTION-->
+ attribute boolean <a href=#dom-itemscope title=dom-itemScope>itemScope</a>;
+ attribute DOMString <a href=#dom-itemtype title=dom-itemType>itemType</a>;
+ attribute DOMString <a href=#dom-itemid title=dom-itemId>itemId</a>;
+ [PutForwards=<span title=dom-DOMSettableTokenList-value>value</span>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-itemref title=dom-itemRef>itemRef</a>;
+ [PutForwards=<span title=dom-DOMSettableTokenList-value>value</span>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-itemprop title=dom-itemProp>itemProp</a>;
+ readonly attribute <a href=#htmlpropertiescollection>HTMLPropertiesCollection</a> <a href=#dom-properties title=dom-properties>properties</a>;
+ attribute any <a href=#dom-itemvalue title=dom-itemValue>itemValue</a>;
+<!--MD-->
+ // <a href=#editing>user interaction</a>
+ attribute boolean <a href=#dom-hidden title=dom-hidden>hidden</a>;
+ void <a href=#dom-click title=dom-click>click</a>();
+ attribute long <a href=#dom-tabindex title=dom-tabindex>tabIndex</a>;
+ void <a href=#dom-focus title=dom-focus>focus</a>();
+ void <a href=#dom-blur title=dom-blur>blur</a>();
+ attribute DOMString <a href=#dom-accesskey title=dom-accessKey>accessKey</a>;
+ readonly attribute DOMString <a href=#dom-accesskeylabel title=dom-accessKeyLabel>accessKeyLabel</a>;
+ attribute boolean <a href=#dom-draggable title=dom-draggable>draggable</a>;
+ [PutForwards=<span title=dom-DOMSettableTokenList-value>value</span>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-dropzone title=dom-dropzone>dropzone</a>;
+ attribute DOMString <a href=#dom-contenteditable title=dom-contentEditable>contentEditable</a>;
+ readonly attribute boolean <a href=#dom-iscontenteditable title=dom-isContentEditable>isContentEditable</a>;
+ attribute <a href=#htmlmenuelement>HTMLMenuElement</a>? <a href=#dom-contextmenu title=dom-contextMenu>contextMenu</a>;
+ attribute boolean <a href=#dom-spellcheck title=dom-spellcheck>spellcheck</a>;
+
+ // <a href=#command-api>command API</a>
+ readonly attribute DOMString? <a href=#dom-command-ro-commandtype title=dom-command-ro-commandType>commandType</a>;
+ readonly attribute DOMString? <a href=#dom-command-ro-commandlabel title=dom-command-ro-commandLabel>commandLabel</a>;
+ readonly attribute DOMString? <a href=#dom-command-ro-commandicon title=dom-command-ro-commandIcon>commandIcon</a>;
+ readonly attribute boolean? <a href=#dom-command-ro-commandhidden title=dom-command-ro-commandHidden>commandHidden</a>;
+ readonly attribute boolean? <a href=#dom-command-ro-commanddisabled title=dom-command-ro-commandDisabled>commandDisabled</a>;
+ readonly attribute boolean? <a href=#dom-command-ro-commandchecked title=dom-command-ro-commandChecked>commandChecked</a>;<!-- v2COMMAND
+ readonly attribute <span>HTMLCollection</span> <span title="dom-command-ro-commandTriggers">commandTriggers</span>;-->
+
+ // <span>styling</span>
+ readonly attribute <span>CSSStyleDeclaration</span> <a href=#dom-style title=dom-style>style</a>;
+
+ // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onblur title=handler-onblur>onblur</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onerror title=handler-onerror>onerror</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onfocus title=handler-onfocus>onfocus</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onload title=handler-onload>onload</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+};
+
+interface <dfn id=htmlunknownelement>HTMLUnknownElement</dfn> : <a href=#htmlelement>HTMLElement</a> { };</pre>
+
+ <p>The <code><a href=#htmlelement>HTMLElement</a></code> interface holds methods and
+ attributes related to a number of disparate features, and the
+ members of this interface are therefore described in various
+ different sections of this specification.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#htmlunknownelement>HTMLUnknownElement</a></code> interface must be used for
+ <a href=#html-elements>HTML elements</a> that are not defined by this
+ specification (or <a href=#other-applicable-specifications>other applicable specifications</a>).</p>
+
+ </div>
+
+
+
+ <h4 id=global-attributes><span class=secno>3.2.3 </span><dfn>Global attributes</dfn></h4>
+
+ <p>The following attributes are common to and may be specified on
+ all <a href=#html-elements>HTML elements</a><span class=impl> (even those not
+ defined in this specification)</span>:</p>
+
+ <ul class=brief><li><code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code></li>
+ <li><code title=attr-class><a href=#classes>class</a></code></li>
+ <li><code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code></li>
+ <li><code title=attr-contextmenu><a href=#attr-contextmenu>contextmenu</a></code></li>
+ <li><code title=attr-dir><a href=#the-dir-attribute>dir</a></code></li>
+ <li><code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code></li>
+ <li><code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code></li>
+ <li><code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code></li>
+ <li><code title=attr-id><a href=#the-id-attribute>id</a></code></li>
+<!--MD--><!--WARNING: ALSO DUPLICATED IN MICRODATA SECTION -->
+ <li><code title=attr-itemid><a href=#attr-itemid>itemid</a></code></li>
+ <li><code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code></li>
+ <li><code title=attr-itemref><a href=#attr-itemref>itemref</a></code></li>
+ <li><code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code></li>
+ <li><code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code></li>
+<!--MD-->
+ <li><code title=attr-lang><a href=#attr-lang>lang</a></code></li>
+ <li><code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code></li>
+ <li><code title=attr-style><a href=#the-style-attribute>style</a></code></li>
+ <li><code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code></li>
+ <li><code title=attr-title><a href=#the-title-attribute>title</a></code></li>
+ </ul><hr><p>The following <a href=#event-handler-content-attributes>event handler content attributes</a> may
+ be specified on any <a href=#html-elements title="HTML elements">HTML
+ element</a>:</p>
+
+ <ul class=brief><li><code title=handler-onabort><a href=#handler-onabort>onabort</a></code></li>
+ <li><code title=handler-onblur><a href=#handler-onblur>onblur</a></code>*</li>
+ <li><code title=handler-oncanplay><a href=#handler-oncanplay>oncanplay</a></code></li>
+ <li><code title=handler-oncanplaythrough><a href=#handler-oncanplaythrough>oncanplaythrough</a></code></li>
+ <li><code title=handler-onchange><a href=#handler-onchange>onchange</a></code></li>
+ <li><code title=handler-onclick><a href=#handler-onclick>onclick</a></code></li>
+ <li><code title=handler-oncontextmenu><a href=#handler-oncontextmenu>oncontextmenu</a></code></li>
+ <li><code title=handler-oncuechange><a href=#handler-oncuechange>oncuechange</a></code></li>
+ <li><code title=handler-ondblclick><a href=#handler-ondblclick>ondblclick</a></code></li>
+ <li><code title=handler-ondrag><a href=#handler-ondrag>ondrag</a></code></li>
+ <li><code title=handler-ondragend><a href=#handler-ondragend>ondragend</a></code></li>
+ <li><code title=handler-ondragenter><a href=#handler-ondragenter>ondragenter</a></code></li>
+ <li><code title=handler-ondragleave><a href=#handler-ondragleave>ondragleave</a></code></li>
+ <li><code title=handler-ondragover><a href=#handler-ondragover>ondragover</a></code></li>
+ <li><code title=handler-ondragstart><a href=#handler-ondragstart>ondragstart</a></code></li>
+ <li><code title=handler-ondrop><a href=#handler-ondrop>ondrop</a></code></li>
+ <li><code title=handler-ondurationchange><a href=#handler-ondurationchange>ondurationchange</a></code></li>
+ <li><code title=handler-onemptied><a href=#handler-onemptied>onemptied</a></code></li>
+ <li><code title=handler-onended><a href=#handler-onended>onended</a></code></li>
+ <li><code title=handler-onerror><a href=#handler-onerror>onerror</a></code>*</li>
+ <li><code title=handler-onfocus><a href=#handler-onfocus>onfocus</a></code>*</li>
+ <li><code title=handler-oninput><a href=#handler-oninput>oninput</a></code></li>
+ <li><code title=handler-oninvalid><a href=#handler-oninvalid>oninvalid</a></code></li>
+ <li><code title=handler-onkeydown><a href=#handler-onkeydown>onkeydown</a></code></li>
+ <li><code title=handler-onkeypress><a href=#handler-onkeypress>onkeypress</a></code></li>
+ <li><code title=handler-onkeyup><a href=#handler-onkeyup>onkeyup</a></code></li>
+ <li><code title=handler-onload><a href=#handler-onload>onload</a></code>*</li>
+ <li><code title=handler-onloadeddata><a href=#handler-onloadeddata>onloadeddata</a></code></li>
+ <li><code title=handler-onloadedmetadata><a href=#handler-onloadedmetadata>onloadedmetadata</a></code></li>
+ <li><code title=handler-onloadstart><a href=#handler-onloadstart>onloadstart</a></code></li>
+ <li><code title=handler-onmousedown><a href=#handler-onmousedown>onmousedown</a></code></li>
+ <li><code title=handler-onmousemove><a href=#handler-onmousemove>onmousemove</a></code></li>
+ <li><code title=handler-onmouseout><a href=#handler-onmouseout>onmouseout</a></code></li>
+ <li><code title=handler-onmouseover><a href=#handler-onmouseover>onmouseover</a></code></li>
+ <li><code title=handler-onmouseup><a href=#handler-onmouseup>onmouseup</a></code></li>
+ <li><code title=handler-onmousewheel><a href=#handler-onmousewheel>onmousewheel</a></code></li>
+ <li><code title=handler-onpause><a href=#handler-onpause>onpause</a></code></li>
+ <li><code title=handler-onplay><a href=#handler-onplay>onplay</a></code></li>
+ <li><code title=handler-onplaying><a href=#handler-onplaying>onplaying</a></code></li>
+ <li><code title=handler-onprogress><a href=#handler-onprogress>onprogress</a></code></li>
+ <li><code title=handler-onratechange><a href=#handler-onratechange>onratechange</a></code></li>
+ <li><code title=handler-onreset><a href=#handler-onreset>onreset</a></code></li>
+ <li><code title=handler-onscroll><a href=#handler-onscroll>onscroll</a></code>*</li>
+ <li><code title=handler-onseeked><a href=#handler-onseeked>onseeked</a></code></li>
+ <li><code title=handler-onseeking><a href=#handler-onseeking>onseeking</a></code></li>
+ <li><code title=handler-onselect><a href=#handler-onselect>onselect</a></code></li>
+ <li><code title=handler-onshow><a href=#handler-onshow>onshow</a></code></li>
+ <li><code title=handler-onstalled><a href=#handler-onstalled>onstalled</a></code></li>
+ <li><code title=handler-onsubmit><a href=#handler-onsubmit>onsubmit</a></code></li>
+ <li><code title=handler-onsuspend><a href=#handler-onsuspend>onsuspend</a></code></li>
+ <li><code title=handler-ontimeupdate><a href=#handler-ontimeupdate>ontimeupdate</a></code></li>
+ <li><code title=handler-onvolumechange><a href=#handler-onvolumechange>onvolumechange</a></code></li>
+ <li><code title=handler-onwaiting><a href=#handler-onwaiting>onwaiting</a></code></li>
+ </ul><p class=note>The attributes marked with an asterisk have a
+ different meaning when specified on <code><a href=#the-body-element>body</a></code> elements as
+ those elements expose <a href=#event-handlers>event handlers</a> of the
+ <code><a href=#window>Window</a></code> object with the same names.</p>
+
+ <p class=note>While these attributes apply to all elements, they
+ are not useful on all elements. For example, only <a href=#media-element title="media
+ element">media elements</a> will ever receive a <code title=event-media-volumechange><a href=#event-media-volumechange>volumechange</a></code> event fired by
+ the user agent.</p>
+
+ <hr><p><a href=#custom-data-attribute title="custom data attribute">Custom data attributes</a>
+ (e.g. <code title="">data-foldername</code> or <code title="">data-msgid</code>) can be specified on any <a href=#html-elements title="HTML elements">HTML element</a>, to store custom data
+ specific to the page.</p>
+
+ <hr><p>In <a href=#html-documents>HTML documents</a>, elements in the <a href=#html-namespace-0>HTML
+ namespace</a> may have an <code title="">xmlns</code> attribute
+ specified, if, and only if, it has the exact value
+ "<code>http://www.w3.org/1999/xhtml</code>". This does not apply to
+ <a href=#xml-documents>XML documents</a>.</p>
+
+ <p class=note>In HTML, the <code title="">xmlns</code> attribute
+ has absolutely no effect. It is basically a talisman. It is allowed
+ merely to make migration to and from XHTML mildly easier. When
+ parsed by an <a href=#html-parser>HTML parser</a>, the attribute ends up in no
+ namespace, not the "<code>http://www.w3.org/2000/xmlns/</code>"
+ namespace like namespace declaration attributes in XML do.</p>
+
+ <p class=note>In XML, an <code title="">xmlns</code> attribute is
+ part of the namespace declaration mechanism, and an element cannot
+ actually have an <code title="">xmlns</code> attribute in no
+ namespace specified.</p>
+
+ <hr><p>The XML specification also allows the use of the <code title=attr-xml-space>xml:space</code> attribute in the <a href=#xml-namespace>XML
+ namespace</a> on any element in an <a href=#xml-documents title="XML
+ documents">XML document</a>. This attribute has no effect on
+ <a href=#html-elements>HTML elements</a>, as the default behavior in HTML is to
+ preserve whitespace. <a href=#refsXML>[XML]</a></p>
+
+ <p class=note>There is no way to serialize the <code title=attr-xml-space>xml:space</code> attribute on <a href=#html-elements>HTML
+ elements</a> in the <code><a href=#text/html>text/html</a></code> syntax.</p>
+
+ <hr><p>To enable assistive technology products to expose a more
+ fine-grained interface than is otherwise possible with HTML elements
+ and attributes, a set of <a href=#wai-aria title=WAI-ARIA>annotations for
+ assistive technology products</a> can be specified (the ARIA
+ <code title=attr-aria-role>role</code> and <code title=attr-aria-*>aria-*</code> attributes).</p>
+
+
+ <h5 id=the-id-attribute><span class=secno>3.2.3.1 </span>The <dfn title=attr-id><code>id</code></dfn> attribute</h5>
+
+ <p>The <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute specifies its
+ element's <a href=#concept-id title=concept-id>unique identifier (ID)</a>. <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+ <p>The value must be unique amongst all the <a href=#concept-id title=concept-id>IDs</a> in the element's <a href=#home-subtree>home
+ subtree</a> and must contain at least one character. The value
+ must not contain any <a href=#space-character title="space character">space
+ characters</a>.</p>
+
+ <!-- space characters are disallowed because space-separated lists
+ of IDs otherwise would not be able to reach all valid IDs -->
+
+ <p class=note>An element's <a href=#concept-id title=concept-id>unique
+ identifier</a> can be used for a variety of purposes, most
+ notably as a way to link to specific parts of a document using
+ fragment identifiers, as a way to target an element when scripting,
+ and as a way to style a specific element from CSS.</p>
+
+ <div class=impl>
+
+ <p>Identifiers are opaque strings. Particular meanings should not be
+ derived from the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code>
+ attribute.</p>
+
+ </div>
+
+
+ <h5 id=the-title-attribute><span class=secno>3.2.3.2 </span>The <dfn title=attr-title><code>title</code></dfn> attribute</h5>
+
+ <p>The <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute
+ <a href=#represents>represents</a> advisory information for the element, such
+ as would be appropriate for a tooltip. On a link, this could be the
+ title or a description of the target resource; on an image, it could
+ be the image credit or a description of the image; on a paragraph,
+ it could be a footnote or commentary on the text; on a citation, it
+ could be further information about the source; and so forth. The
+ value is text.</p>
+
+ <p>If this attribute is omitted from an element, then it implies
+ that the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute of the
+ nearest ancestor <a href=#html-elements title="HTML elements">HTML element</a>
+ with a <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute set is also
+ relevant to this element. Setting the attribute overrides this,
+ explicitly stating that the advisory information of any ancestors is
+ not relevant to this element. Setting the attribute to the empty
+ string indicates that the element has no advisory information.</p>
+
+ <p>If the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute's value
+ contains U+000A LINE FEED (LF) characters, the content is split into
+ multiple lines. Each U+000A LINE FEED (LF) character represents a
+ line break.</p>
+
+ <div class=example>
+
+ <p>Caution is advised with respect to the use of newlines in <code title=attr-title><a href=#the-title-attribute>title</a></code> attributes.</p>
+
+ <p>For instance, the following snippet actually defines an
+ abbreviation's expansion <em>with a line break in it</em>:</p>
+
+ <pre class=bad>&lt;p&gt;My logs show that there was some interest in &lt;abbr title="Hypertext
+Transport Protocol"&gt;HTTP&lt;/abbr&gt; today.&lt;/p&gt;</pre>
+
+ </div>
+
+ <p>Some elements, such as <code><a href=#the-link-element>link</a></code>, <code><a href=#the-abbr-element>abbr</a></code>, and
+ <code><a href=#the-input-element>input</a></code>, define additional semantics for the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute beyond the semantics
+ described above.</p>
+
+ <div class=impl>
+
+ <hr><p>The <dfn id=dom-title title=dom-title><code>title</code></dfn> IDL attribute
+ must <a href=#reflect>reflect</a> the <code title=attr-title><a href=#the-title-attribute>title</a></code>
+ content attribute.</p>
+
+ </div>
+
+
+
+ <h5 id=the-lang-and-xml:lang-attributes><span class=secno>3.2.3.3 </span>The <code title=attr-lang><a href=#attr-lang>lang</a></code> and <code title=attr-xml-lang><a href=#attr-xml-lang>xml:lang</a></code> attributes</h5>
+
+ <p>The <dfn id=attr-lang title=attr-lang><code>lang</code></dfn> attribute (in
+ no namespace) specifies the primary language for the element's
+ contents and for any of the element's attributes that contain
+ text. Its value must be a valid BCP 47 language tag, or the empty
+ string. Setting the attribute to the empty string indicates that the
+ primary language is unknown<!-- UA conformance requirements for this
+ are below -->. <a href=#refsBCP47>[BCP47]</a></p>
+
+ <p>The <dfn id=attr-xml-lang title=attr-xml-lang><code title="">lang</code></dfn>
+ attribute in the <a href=#xml-namespace>XML namespace</a> is defined in XML. <a href=#refsXML>[XML]</a></p>
+
+ <p>If these attributes are omitted from an element, then the
+ language of this element is the same as the language of its parent
+ element, if any.</p>
+
+ <p>The <code title=attr-lang><a href=#attr-lang>lang</a></code> attribute in no namespace
+ may be used on any <a href=#html-elements title="HTML elements">HTML
+ element</a>.</p>
+
+ <p>The <a href=#attr-xml-lang title=attr-xml-lang><code title="">lang</code>
+ attribute in the <span>XML namespace</span></a> may be used on
+ <a href=#html-elements>HTML elements</a> in <a href=#xml-documents>XML documents</a>, as well as
+ elements in other namespaces if the relevant specifications allow it
+ (in particular, MathML and SVG allow <a href=#attr-xml-lang title=attr-xml-lang><code title="">lang</code> attributes in the
+ <span>XML namespace</span></a> to be specified on their
+ elements). If both the <code title=attr-lang><a href=#attr-lang>lang</a></code> attribute
+ in no namespace and the <a href=#attr-xml-lang title=attr-xml-lang><code title="">lang</code> attribute in the <span>XML
+ namespace</span></a> are specified on the same element, they must
+ have exactly the same value when compared in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner.</p>
+
+ <p>Authors must not use the <a href=#attr-xml-lang title=attr-xml-lang><code title="">lang</code> attribute in the <span>XML
+ namespace</span></a> on <a href=#html-elements>HTML elements</a> in <a href=#html-documents>HTML
+ documents</a>. To ease migration to and from XHTML, authors may
+ specify an attribute in no namespace with no prefix and with the
+ literal localname "<code title="">xml:lang</code>" on <a href=#html-elements>HTML
+ elements</a> in <a href=#html-documents>HTML documents</a>, but such attributes
+ must only be specified if a <code title=attr-lang><a href=#attr-lang>lang</a></code>
+ attribute in no namespace is also specified, and both attributes
+ must have the same value when compared in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner.</p>
+
+ <p class=note>The attribute in no namespace with no prefix and
+ with the literal localname "<code title="">xml:lang</code>" has no
+ effect on language processing.</p>
+
+ <div class=impl>
+
+ <hr><p>To determine the <dfn id=language>language</dfn> of a node, user agents must
+ look at the nearest ancestor element (including the element itself
+ if the node is an element) that has a <a href=#attr-xml-lang title=attr-xml-lang><code title="">lang</code> attribute in the
+ <span>XML namespace</span></a> set or is an <a href=#html-elements title="HTML
+ elements">HTML element</a> and has a <code title=attr-lang><a href=#attr-lang>lang</a></code> in no namespace attribute set. That
+ attribute specifies the language of the node (regardless of its
+ value).</p>
+
+ <p>If both the <code title=attr-lang><a href=#attr-lang>lang</a></code> attribute in no
+ namespace and the <a href=#attr-xml-lang title=attr-xml-lang><code title="">lang</code> attribute in the <span>XML
+ namespace</span></a> are set on an element, user agents must use
+ the <a href=#attr-xml-lang title=attr-xml-lang><code title="">lang</code> attribute
+ in the <span>XML namespace</span></a>, and the <code title=attr-lang><a href=#attr-lang>lang</a></code> attribute in no namespace must be
+ <a href=#ignore title=ignore>ignored</a> for the purposes of determining
+ the element's language.</p>
+
+ <p>If none of the node's ancestors, including the <a href=#root-element>root
+ element</a>, have either attribute set, but there is a
+ <a href=#pragma-set-default-language>pragma-set default language</a> set, then that is the
+ language of the node. If there is no <a href=#pragma-set-default-language>pragma-set default
+ language</a> set, then language information from a higher-level
+ protocol (such as HTTP), if any, must be used as the final fallback
+ language instead. In the absence of any such language information,
+ and in cases where the higher-level protocol reports multiple
+ languages, the language of the node is unknown, and the
+ corresponding language tag is the empty string.</p>
+
+ <p>If the resulting value is not a recognized language tag, then it
+ must be treated as an unknown language having the given language
+ tag, distinct from all other languages. For the purposes of
+ round-tripping or communicating with other services that expect
+ language tags, user agents should pass unknown language tags
+ through unmodified.</p>
+
+ <p class=example>Thus, for instance, an element with <code title="">lang="xyzzy"</code> would be matched by the selector <code title="">:lang(xyzzy)</code> (e.g. in CSS), but it would not be
+ matched by <code title="">:lang(abcde)</code>, even though both are
+ equally invalid. Similarly, if a Web browser and screen reader
+ working in unison communicated about the language of the element,
+ the browser would tell the screen reader that the language was
+ "xyzzy", even if it knew it was invalid, just in case the screen
+ reader actually supported a language with that tag after all.</p>
+
+ <p>If the resulting value is the empty string, then it must be
+ interpreted as meaning that the language of the node is explicitly
+ unknown.</p>
+
+ <hr><p>User agents may use the element's language to determine proper
+ processing or rendering (e.g. in the selection of appropriate
+ fonts or pronunciations, or for dictionary selection). <!--User
+ agents must not use the element's language to determine text
+ directionality. (commented out because text directionality is a
+ rendering-level concern.)--></p>
+
+ <hr><p>The <dfn id=dom-lang title=dom-lang><code>lang</code></dfn> IDL attribute
+ must <a href=#reflect>reflect</a> the <code title=attr-lang><a href=#attr-lang>lang</a></code>
+ content attribute in no namespace.</p>
+
+ </div>
+
+
+
+ <h5 id=the-xml:base-attribute-(xml-only)><span class=secno>3.2.3.4 </span>The <dfn title=attr-xml-base><code>xml:base</code></dfn>
+ attribute (XML only)</h5>
+
+ <p>The <code title=attr-xml-base><a href=#the-xml:base-attribute-(xml-only)>xml:base</a></code> attribute is
+ defined in XML Base. <a href=#refsXMLBASE>[XMLBASE]</a></p>
+
+ <p>The <code title=attr-xml-base><a href=#the-xml:base-attribute-(xml-only)>xml:base</a></code> attribute may be
+ used on elements of <a href=#xml-documents>XML documents</a>. Authors must not
+ use the <code title=attr-xml-base><a href=#the-xml:base-attribute-(xml-only)>xml:base</a></code> attribute in
+ <a href=#html-documents>HTML documents</a>.</p>
+
+
+ <h5 id=the-dir-attribute><span class=secno>3.2.3.5 </span>The <dfn title=attr-dir><code>dir</code></dfn> attribute</h5>
+
+ <p>The <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute specifies the
+ element's text directionality. The attribute is an <a href=#enumerated-attribute>enumerated
+ attribute</a> with the following keywords and states:</p>
+
+ <dl><dt>The <dfn id=attr-dir-ltr title=attr-dir-ltr><code>ltr</code></dfn> keyword, which maps to the <dfn id=attr-dir-ltr-state title=attr-dir-ltr-state>ltr</dfn> state</dt>
+
+ <dd>
+
+ <p>Indicates that the contents of the element are explicitly
+ directionally embedded left-to-right text.</p>
+
+ </dd>
+
+ <dt>The <dfn id=attr-dir-rtl title=attr-dir-rtl><code>rtl</code></dfn> keyword, which maps to the <dfn id=attr-dir-rtl-state title=attr-dir-rtl-state>rtl</dfn> state</dt>
+
+ <dd>
+
+ <p>Indicates that the contents of the element are explicitly
+ directionally embedded right-to-left text.</p>
+
+ </dd>
+
+ <dt>The <dfn id=attr-dir-auto title=attr-dir-auto><code>auto</code></dfn> keyword, which maps to the <dfn id=attr-dir-auto-state title=attr-dir-auto-state>auto</dfn> state</dt>
+
+ <dd>
+
+ <p>Indicates that the contents of the element are explicitly
+ embedded text, but that the direction is to be determined
+ programmatically using the contents of the element (as described
+ below).</p>
+
+ <p class=note>The heuristic used by this state is very crude (it
+ just looks at the first character with a strong directionality, in
+ a manner analogous to the Paragraph Level determination in the
+ bidirectional algorithm). Authors are urged to only use this value
+ as a last resort when the direction of the text is truly unknown
+ and no better server-side heuristic can be applied.</p>
+
+ <p class=note>For <code><a href=#the-textarea-element>textarea</a></code> and <code><a href=#the-pre-element>pre</a></code>
+ elements, the heuristic is applied on a per-paragraph level.</p>
+
+ </dd>
+
+ </dl><p>The attribute has no <i>invalid value default</i> and no
+ <i>missing value default</i>.</p>
+
+ <p><dfn id=the-directionality>The directionality</dfn> of an element is either '<dfn id=concept-ltr title=concept-ltr>ltr</dfn>' or '<dfn id=concept-rtl title=concept-rtl>rtl</dfn>', and is determined as per the first
+ appropriate set of steps from the following list:</p>
+
+ <dl class=switch><dt>If the element's <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute is
+ in the <a href=#attr-dir-ltr-state title=attr-dir-ltr-state>ltr</a> state</dt>
+
+ <dd><p><a href=#the-directionality>The directionality</a> of the element is '<a href=#concept-ltr title=concept-ltr>ltr</a>'.</dd>
+
+
+ <dt>If the element's <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute is
+ in the <a href=#attr-dir-rtl-state title=attr-dir-rtl-state>rtl</a> state</dt>
+
+ <dd><p><a href=#the-directionality>The directionality</a> of the element is '<a href=#concept-rtl title=concept-rtl>rtl</a>'.</dd>
+
+
+ <dt>If the element is an <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a>, <a href=#text-state-and-search-state title=attr-input-type-search>Search</a>, <a href=#telephone-state title=attr-input-type-tel>Telephone</a>, <a href=#url-state title=attr-input-type-url>URL</a>, or <a href=#e-mail-state title=attr-input-type-email>E-mail</a> state, and the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute is in the <a href=#attr-dir-auto-state title=attr-dir-auto-state>auto</a> state</dt>
+
+ <dt>If the element is a <code><a href=#the-textarea-element>textarea</a></code> element and the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute is in the <a href=#attr-dir-auto-state title=attr-dir-auto-state>auto</a> state</dt>
+
+ <dd>
+
+ <p>If the element's <a href=#concept-fe-value title=concept-fe-value>value</a>
+ contains a character of bidirectional character type AL or R, and
+ there is no character of bidirectional character type L anywhere
+ before it in the element's <a href=#concept-fe-value title=concept-fe-value>value</a>, then <a href=#the-directionality>the
+ directionality</a> of the element is '<a href=#concept-rtl title=concept-rtl>rtl</a>'. Otherwise, <a href=#the-directionality>the
+ directionality</a> of the element is '<a href=#concept-ltr title=concept-ltr>ltr</a>'.</p>
+
+ </dd>
+
+
+
+ <dt>If the element's <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute is
+ in the <a href=#attr-dir-auto-state title=attr-dir-auto-state>auto</a> state</dt>
+
+ <dt>If the element is a <code><a href=#the-bdi-element>bdi</a></code> element and the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute is not in a defined state
+ (i.e. it is not present or has an invalid value)</dt>
+
+ <dd>
+
+ <p>Find the first character in <a href=#tree-order>tree order</a> that
+ matches the following criteria:</p>
+
+ <ul><li><p>The character is from a <a href=#text-node>text node</a> that is a
+ descendant of the element whose <a href=#the-directionality title="the
+ directionality">directionality</a> is being
+ determined.</li>
+
+ <li><p>The character is of bidirectional character type L, AL,
+ or R. <a href=#refsBIDI>[BIDI]</a></li>
+
+ <li>
+
+ <p>The character is not in a text node that has an ancestor
+ element that is a descendant of the element whose <a href=#the-directionality title="the directionality">directionality</a> is being
+ determined and that is either:</p>
+
+ <ul class=brief><li>A <code><a href=#the-bdi-element>bdi</a></code> element.
+ <li>A <code><a href=#the-script-element>script</a></code> element.
+ <li>A <code><a href=#the-style-element>style</a></code> element.
+ <li>A <code><a href=#the-textarea-element>textarea</a></code> element.
+ <li>An element with a <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute in a defined state.
+ </ul></li>
+
+ </ul><p>If such a character is found and it is of bidirectional
+ character type AL or R, <a href=#the-directionality>the directionality</a> of the
+ element is '<a href=#concept-rtl title=concept-rtl>rtl</a>'.</p>
+
+ <p>Otherwise, <a href=#the-directionality>the directionality</a> of the element is
+ '<a href=#concept-ltr title=concept-ltr>ltr</a>'.</p>
+
+ </dd>
+
+
+ <dt>If the element is a <a href=#root-element>root element</a> and the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute is not in a defined state
+ (i.e. it is not present or has an invalid value)</dt>
+
+ <dd><p><a href=#the-directionality>The directionality</a> of the element is '<a href=#concept-ltr title=concept-ltr>ltr</a>'.</dd>
+
+
+ <dt>If the element has a parent element and the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute is not in a defined state
+ (i.e. it is not present or has an invalid value)</dt>
+
+ <dd><p><a href=#the-directionality>The directionality</a> of the element is the same
+ as the element's parent element's <a href=#the-directionality title="the
+ directionality">directionality</a>.</dd>
+
+
+ </dl><p>The effect of this attribute is primarily on the presentation
+ layer. For example, the rendering section in this specification
+ defines a mapping from this attribute to the CSS 'direction' and
+ 'unicode-bidi' properties, and CSS defines rendering in terms of
+ those properties.</p>
+
+ <hr><dl class=domintro><dt><var title="">document</var> . <code title=dom-dir><a href=#dom-dir>dir</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns <a href=#the-html-element-0>the <code>html</code> element</a>'s <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute's value, if any.</p>
+ <p>Can be set, to either "<code title="">ltr</code>", "<code title="">rtl</code>", or "<code title="">auto</code>" to replace <a href=#the-html-element-0>the <code>html</code> element</a>'s <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute's value.</p>
+ <p>If there is no <a href=#the-html-element-0 title="the html element"><code>html</code> element</a>, returns the empty string and ignores new values.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-dir title=dom-dir><code>dir</code></dfn> IDL attribute on
+ an element must <a href=#reflect>reflect</a> the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> content attribute of that element,
+ <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
+
+ <p>The <dfn id=dom-document-dir title=dom-document-dir><code>dir</code></dfn> IDL
+ attribute on <code><a href=#htmldocument>HTMLDocument</a></code> objects must
+ <a href=#reflect>reflect</a> the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> content
+ attribute of <a href=#the-html-element-0>the <code>html</code> element</a>, if any,
+ <a href=#limited-to-only-known-values>limited to only known values</a>. If there is no such
+ element, then the attribute must return the empty string and do
+ nothing on setting.</p>
+
+ </div>
+
+ <p class=note>Authors are strongly encouraged to use the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute to indicate text direction
+ rather than using CSS, since that way their documents will continue
+ to render correctly even in the absence of CSS (e.g. as interpreted
+ by search engines).</p>
+
+ <div class=example>
+
+ <p>This markup fragment is of an IM conversation.</p>
+
+ <pre>&lt;p dir=auto class="u1"&gt;&lt;b&gt;&lt;bdi&gt;Student&lt;/bdi&gt;:&lt;/b&gt; How do you write "What's your name?" in Arabic?&lt;/p&gt;
+&lt;p dir=auto class="u2"&gt;&lt;b&gt;&lt;bdi&gt;Teacher&lt;/bdi&gt;:&lt;/b&gt; &#1605;&#1575; &#1575;&#1587;&#1605;&#1603;&#1567;&lt;/p&gt;
+&lt;p dir=auto class="u1"&gt;&lt;b&gt;&lt;bdi&gt;Student&lt;/bdi&gt;:&lt;/b&gt; Thanks.&lt;/p&gt;
+&lt;p dir=auto class="u2"&gt;&lt;b&gt;&lt;bdi&gt;Teacher&lt;/bdi&gt;:&lt;/b&gt; That's written "&#1588;&#1603;&#1585;&#1611;&#1575;".&lt;/p&gt;
+&lt;p dir=auto class="u2"&gt;&lt;b&gt;&lt;bdi&gt;Teacher&lt;/bdi&gt;:&lt;/b&gt; Do you know how to write "Please"?&lt;/p&gt;
+&lt;p dir=auto class="u1"&gt;&lt;b&gt;&lt;bdi&gt;Student&lt;/bdi&gt;:&lt;/b&gt; "&#1605;&#1606; &#1601;&#1590;&#1604;&#1603;", right?&lt;/p&gt;</pre>
+
+<!--
+<!DOCTYPE html>
+<style>
+ div { border: groove #FFFF99; padding: 0.25em; width: 22em; background: #FFFFEE; color: black; }
+ p { margin: 0.25em 0; font: 1em/1 InaiMathi; color: purple; }
+ .u1 { color: teal; }
+</style>
+<div>
+<p dir=ltr class="u1"><b><bdi>Student</bdi>:</b> How do you write "What's your name?" in Arabic?</p>
+<p dir=rtl class="u2"><b><bdi>Teacher</bdi>:</b> &#x645;&#x627; &#x627;&#x633;&#x645;&#x643;&#x61f;</p>
+<p dir=ltr class="u1"><b><bdi>Student</bdi>:</b> Thanks.</p>
+<p dir=ltr class="u2"><b><bdi>Teacher</bdi>:</b> That's written "&#x634;&#x643;&#x631;&#x64b;&#x627;".</p>
+<p dir=ltr class="u2"><b><bdi>Teacher</bdi>:</b> Do you know how to write "Please"?</p>
+<p dir=rtl class="u1"><b><bdi>Student</bdi>:</b> "&#x645;&#x646; &#x641;&#x636;&#x644;&#x643;", right?</p>
+-->
+
+ <p>Given a suitable style sheet and the default alignment styles
+ for the <code><a href=#the-p-element>p</a></code> element, namely to align the text to the
+ <i>start edge</i> of the paragraph, the resulting rendering could
+ be as follows:</p>
+
+ <p><img alt="Each paragraph rendered as a separate block, with the paragraphs left-aligned except the second paragraph and the last one, which would be right aligned, with the usernames ('Student' and 'Teacher' in this example) flush right, with a colon to their left, and the text first to the left of that." src=greenbox.png></p>
+
+ <p>As noted earlier, the <code title=attr-dir-auto><a href=#attr-dir-auto>auto</a></code>
+ value is not a panacea. The final paragraph in this example is
+ misinterpreted as being right-to-left text, since it begins with an
+ Arabic character, which causes the "right?" to be to the left of
+ the Arabic text.</p>
+
+ </div>
+
+
+
+ <h5 id=classes><span class=secno>3.2.3.6 </span>The <dfn title=attr-class><code>class</code></dfn> attribute</h5>
+
+ <p>Every <a href=#html-elements title="HTML elements">HTML element</a> may have a
+ <code title=attr-class><a href=#classes>class</a></code> attribute specified.</p>
+
+ <p>The attribute, if specified, must have a value that is a
+ <a href=#set-of-space-separated-tokens>set of space-separated tokens</a> representing the various
+ classes that the element belongs to.</p>
+
+ <div class=impl>
+
+ <p>The classes that an <a href=#html-elements title="HTML elements">HTML
+ element</a> has assigned to it consists of all the classes
+ returned when the value of the <code title=attr-class><a href=#classes>class</a></code>
+ attribute is <a href=#split-a-string-on-spaces title="split a string on spaces">split on
+ spaces</a>. (Duplicates are ignored.)</p>
+
+ </div>
+
+ <p class=note>Assigning classes to an element affects class
+ matching in selectors in CSS, the <code title=dom-document-getElementsByClassName>getElementsByClassName()</code>
+ method in the DOM, and other such features.</p>
+
+ <p>There are no additional restrictions on the tokens authors can
+ use in the <code title=attr-class><a href=#classes>class</a></code> attribute, but
+ authors are encouraged to use values that describe the nature of the
+ content, rather than values that describe the desired presentation
+ of the content.</p>
+
+ <div class=impl>
+
+ <hr><p>The <dfn id=dom-classname title=dom-className><code>className</code></dfn> and
+ <dfn id=dom-classlist title=dom-classList><code>classList</code></dfn> IDL
+ attributes must both <a href=#reflect>reflect</a> the <code title=attr-class><a href=#classes>class</a></code> content attribute.</p>
+
+ </div>
+
+
+
+ <h5 id=the-style-attribute><span class=secno>3.2.3.7 </span>The <dfn title=attr-style><code>style</code></dfn> attribute</h5>
+
+ <p>All <a href=#html-elements>HTML elements</a> may have the <code title=attr-style><a href=#the-style-attribute>style</a></code> content attribute set. This is a
+ <span>CSS styling attribute</span> as defined by the CSS Styling
+ Attribute Syntax specification. <a href=#refsCSSATTR>[CSSATTR]</a></p>
+
+ <div class=impl>
+
+ <p>In user agents that support CSS, the attribute's value must be
+ parsed when the attribute is added or has its value changed<!-- so
+ dynamic changes to the base URL don't affect the CSS -->, according
+ to the rules given for <span>CSS styling attributes</span>. <a href=#refsCSSATTR>[CSSATTR]</a></p>
+
+ </div>
+
+ <p>Documents that use <code title=attr-style><a href=#the-style-attribute>style</a></code>
+ attributes on any of their elements must still be comprehensible and
+ usable if those attributes were removed.</p>
+
+ <p class=note>In particular, using the <code title=attr-style><a href=#the-style-attribute>style</a></code> attribute to hide and show content,
+ or to convey meaning that is otherwise not included in the document,
+ is non-conforming. (To hide and show content, use the <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute.)</p>
+
+ <hr><dl class=domintro><dt><var title="">element</var> . <code title=dom-style><a href=#dom-style>style</a></code></dt>
+ <dd>
+ <p>Returns a <code>CSSStyleDeclaration</code> object for the element's <code title=attr-style><a href=#the-style-attribute>style</a></code> attribute.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-style title=dom-style><code>style</code></dfn> IDL attribute
+ must return a <code>CSSStyleDeclaration</code> whose value
+ represents the declarations specified in the attribute, if
+ present. Mutating the <code>CSSStyleDeclaration</code> object must
+ create a <code title=attr-style><a href=#the-style-attribute>style</a></code> attribute on the
+ element (if there isn't one already) and then change its value to be
+ a value representing the serialized form of the
+ <code>CSSStyleDeclaration</code> object. The same object must be
+ returned each time. <a href=#refsCSSOM>[CSSOM]</a></p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, the words that refer to colors are
+ marked up using the <code><a href=#the-span-element>span</a></code> element and the <code title=attr-style><a href=#the-style-attribute>style</a></code> attribute to make those words show
+ up in the relevant colors in visual media.</p>
+
+ <pre>&lt;p&gt;My sweat suit is &lt;span style="color: green; background:
+transparent"&gt;green&lt;/span&gt; and my eyes are &lt;span style="color: blue;
+background: transparent"&gt;blue&lt;/span&gt;.&lt;/p&gt;</pre>
+
+ </div>
+
+
+
+ <h5 id=embedding-custom-non-visible-data-with-the-data-*-attributes><span class=secno>3.2.3.8 </span><dfn>Embedding custom non-visible data</dfn> with the <code title=attr-data-*><a href=#attr-data-*>data-*</a></code> attributes</h5>
+
+ <p>A <dfn id=custom-data-attribute>custom data attribute</dfn> is an attribute in no
+ namespace whose name starts with the string "<dfn id=attr-data-* title=attr-data-*><code>data-</code></dfn>", has at least one
+ character after the hyphen, is <a href=#xml-compatible>XML-compatible</a>, and
+ contains no characters in the range U+0041 to U+005A (LATIN CAPITAL
+ LETTER A to LATIN CAPITAL LETTER Z).</p>
+
+ <p class=note>All attributes on <a href=#html-elements>HTML elements</a> in
+ <a href=#html-documents>HTML documents</a> get ASCII-lowercased automatically, so
+ the restriction on ASCII uppercase letters doesn't affect such
+ documents.</p>
+
+ <p><a href=#custom-data-attribute title="custom data attribute">Custom data attributes</a>
+ are intended to store custom data private to the page or
+ application, for which there are no more appropriate attributes or
+ elements.</p>
+
+ <p>These attributes are not intended for use by software that is
+ independent of the site that uses the attributes.</p>
+
+ <div class=example>
+
+ <p>For instance, a site about music could annotate list items
+ representing tracks in an album with custom data attributes
+ containing the length of each track. This information could then be
+ used by the site itself to allow the user to sort the list by track
+ length, or to filter the list for tracks of certain lengths.</p>
+
+ <pre>&lt;ol&gt;
+ &lt;li data-length="2m11s"&gt;Beyond The Sea&lt;/li&gt;
+ ...
+&lt;/ol&gt;</pre>
+
+ <p>It would be inappropriate, however, for the user to use generic
+ software not associated with that music site to search for tracks
+ of a certain length by looking at this data.</p>
+
+ <p>This is because these attributes are intended for use by the
+ site's own scripts, and are not a generic extension mechanism for
+ publicly-usable metadata.</p>
+
+ </div>
+
+ <p>Every <a href=#html-elements title="HTML elements">HTML element</a> may have
+ any number of <a href=#custom-data-attribute title="custom data attribute">custom data
+ attributes</a> specified, with any value.</p>
+
+ <hr><dl class=domintro><dt><var title="">element</var> . <code title=dom-dataset><a href=#dom-dataset>dataset</a></code></dt>
+ <dd>
+
+ <p>Returns a <code><a href=#domstringmap>DOMStringMap</a></code> object for the element's <code title=attr-data-*><a href=#attr-data-*>data-*</a></code> attributes.</p>
+
+ <p>Hyphenated names become camel-cased. For example, <code title="">data-foo-bar=""</code> becomes <code title="">element.dataset.fooBar</code>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-dataset title=dom-dataset><code>dataset</code></dfn> IDL
+ attribute provides convenient accessors for all the <code title=attr-data-*><a href=#attr-data-*>data-*</a></code> attributes on an element. On
+ getting, the <code title=dom-dataset><a href=#dom-dataset>dataset</a></code> IDL attribute
+ must return a <code><a href=#domstringmap>DOMStringMap</a></code> object, associated with the
+ following algorithms, which expose these attributes on their
+ element:</p>
+
+ <dl><dt>The algorithm for getting the list of name-value pairs</dt>
+
+ <dd>
+ <ol><li>Let <var title="">list</var> be an empty list of name-value
+ pairs.</li>
+
+ <li>For each content attribute on the element whose first five
+ characters are the string "<code title="">data-</code>" and whose
+ remaining characters (if any) do not include any characters in
+ the range U+0041 to U+005A (LATIN CAPITAL LETTER A to LATIN
+ CAPITAL LETTER Z), add a name-value pair to <var title="">list</var> whose name is the attribute's name with the
+ first five characters removed and whose value is the attribute's
+ value.</li>
+
+ <li>For each name on the list, for each U+002D HYPHEN-MINUS
+ character (-) in the name that is followed by a character in the
+ range U+0061 to U+007A (U+0061 LATIN SMALL LETTER A to U+007A
+ LATIN SMALL LETTER Z), remove the U+002D HYPHEN-MINUS character
+ (-) and replace the character that followed it by the same
+ character <a href=#converted-to-ascii-uppercase>converted to ASCII uppercase</a>.</li>
+
+ <li>Return <var title="">list</var>.</li>
+
+ </ol></dd>
+
+ <dt>The algorithm for setting names to certain values</dt>
+
+ <dd>
+ <ol><li>Let <var title="">name</var> be the name passed to the
+ algorithm.</li>
+
+ <li>Let <var title="">value</var> be the value passed to the
+ algorithm.</li>
+
+ <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS
+ character (-) followed by a character in the range U+0061 to
+ U+007A (U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
+ Z), throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort these
+ steps.</li>
+
+ <li>For each character in the range U+0041 to U+005A (U+0041
+ LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z) in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
+ before the character and replace the character with the same
+ character <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
+
+ <li>Insert the string <code title="">data-</code> at the front of
+ <var title="">name</var>.</li>
+
+ <li>Set the value of the attribute with the name <var title="">name</var>, to the value <var title="">value</var>,
+ replacing any previous value if the attribute already existed. If
+ <code title="">setAttribute()</code> would have thrown an
+ exception when setting an attribute with the name <var title="">name</var>, then this must throw the same
+ exception.</li>
+
+ </ol></dd>
+
+ <dt>The algorithm for deleting names</dt>
+
+ <dd>
+ <ol><li>Let <var title="">name</var> be the name passed to the
+ algorithm.</li>
+<!--(can't happen while the DOMStringMap deleter has no name)
+ <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS
+ character (-) followed by a character in the range U+0061 to
+ U+007A (U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
+ Z), throw a <code>SyntaxError</code> exception and abort these
+ steps.</li>
+-->
+ <li>For each character in the range U+0041 to U+005A (U+0041
+ LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z) in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
+ before the character and replace the character with the same
+ character <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
+
+ <li>Insert the string <code title="">data-</code> at the front of
+ <var title="">name</var>.</li>
+
+ <li>Remove the attribute with the name <var title="">name</var>,
+ if such an attribute exists. Do nothing otherwise.</li>
+
+ </ol></dd>
+
+ </dl><p>The same object must be returned each time.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>If a Web page wanted an element to represent a space ship,
+ e.g. as part of a game, it would have to use the <code title=attr-class><a href=#classes>class</a></code> attribute along with <code title=attr-data-*><a href=#attr-data-*>data-*</a></code> attributes:</p>
+
+ <pre>&lt;div class="spaceship" data-ship-id="92432"
+ data-weapons="laser 2" data-shields="50%"
+ data-x="30" data-y="10" data-z="90"&gt;
+ &lt;button class="fire"
+ onclick="spaceships[this.parentNode.dataset.shipId].fire()"&gt;
+ Fire
+ &lt;/button&gt;
+&lt;/div&gt;</pre>
+
+ <p>Notice how the hyphenated attribute name becomes camel-cased in
+ the API.</p>
+
+ </div>
+
+ <p>Authors should carefully design such extensions so that when the
+ attributes are ignored and any associated CSS dropped, the page is
+ still usable.</p>
+
+ <div class=impl>
+
+ <p>User agents must not derive any implementation behavior from
+ these attributes or values. Specifications intended for user agents
+ must not define these attributes to have any meaningful values.</p>
+
+ </div>
+
+ <p>JavaScript libraries may use the <a href=#custom-data-attribute title="custom data
+ attribute">custom data attributes</a>, as they are considered to
+ be part of the page on which they are used. Authors of libraries
+ that are reused by many authors are encouraged to include their name
+ in the attribute names, to reduce the risk of clashes. Where it
+ makes sense, library authors are also encouraged to make the exact
+ name used in the attribute names customizable, so that libraries
+ whose authors unknowingly picked the same name can be used on the
+ same page, and so that multiple versions of a particular library can
+ be used on the same page even when those versions are not mutually
+ compatible.</p>
+
+ <div class=example>
+
+ <p>For example, a library called "DoQuery" could use attribute
+ names like <code title="">data-doquery-range</code>, and a library
+ called "jJo" could use attributes names like <code title="">data-jjo-range</code>. The jJo library could also provide
+ an API to set which prefix to use (e.g. <code title="">J.setDataPrefix('j2')</code>, making the attributes have
+ names like <code title="">data-j2-range</code>).</p>
+
+ </div>
+
+
+ <h4 id=element-definitions><span class=secno>3.2.4 </span>Element definitions</h4>
+
+ <p>Each element in this specification has a definition that includes
+ the following information:</p>
+
+ <dl><dt>Categories</dt>
+
+ <dd><p>A list of <a href=#content-categories title="content categories">categories</a>
+ to which the element belongs. These are used when defining the
+ <a href=#content-models>content models</a> for each element.</dd>
+
+
+ <dt>Contexts in which this element can be used</dt>
+
+ <dd>
+
+ <p>A <em>non-normative</em> description of where the element can
+ be used. This information is redundant with the content models of
+ elements that allow this one as a child, and is provided only as a
+ convenience.</p>
+
+ <p class=note>For simplicity, only the most specific
+ expectations are listed. For example, an element that is both
+ <a href=#flow-content>flow content</a> and <a href=#phrasing-content>phrasing content</a> can be
+ used anywhere that either <a href=#flow-content>flow content</a> or
+ <a href=#phrasing-content>phrasing content</a> is expected, but since anywhere that
+ <a href=#flow-content>flow content</a> is expected, <a href=#phrasing-content>phrasing
+ content</a> is also expected (since all <a href=#phrasing-content>phrasing
+ content</a> is <a href=#flow-content>flow content</a>), only "where
+ <a href=#phrasing-content>phrasing content</a> is expected" will be listed.</p>
+
+ </dd>
+
+
+ <dt>Content model</dt>
+
+ <dd><p>A normative description of what content must be included as
+ children and descendants of the element.</dd>
+
+
+ <dt>Content attributes</dt>
+
+ <dd><p>A normative list of attributes that may be specified on the
+ element (except where otherwise disallowed).</dd>
+
+
+ <dt>DOM interface</dt>
+
+ <dd><p>A normative definition of a DOM interface that such elements
+ must implement.</dd>
+
+ </dl><p>This is then followed by a description of what the element
+ <a href=#represents>represents</a>, along with any additional normative
+ conformance criteria that may apply to authors<span class=impl title=""> and implementations</span>. Examples are sometimes
+ also included.</p>
+
+
+ <h5 id=attributes><span class=secno>3.2.4.1 </span>Attributes</h5>
+
+ <p id=attribute-text>Except where otherwise specified, attributes
+ on <a href=#html-elements>HTML elements</a> may have any string value, including
+ the empty string. Except where explicitly stated, there is no
+ restriction on what text can be specified in such attributes.</p>
+
+
+
+ <h4 id=content-models><span class=secno>3.2.5 </span><dfn>Content models</dfn></h4>
+
+ <p>Each element defined in this specification has a content model: a
+ description of the element's expected contents. An <a href=#html-elements title="HTML
+ elements">HTML element</a> must have contents that match the
+ requirements described in the element's content model.</p>
+
+ <p class=note>As noted in the conformance and terminology
+ sections, for the purposes of determining if an element matches its
+ content model or not, <a href=#text-node title="text
+ node"><code>CDATASection</code> nodes in the DOM are treated as
+ equivalent to <code>Text</code> nodes</a>, and <a href=#entity-references>entity reference nodes are treated as if
+ they were expanded in place</a>.</p>
+
+ <p>The <a href=#space-character title="space character">space characters</a> are
+ always allowed between elements. User agents represent these
+ characters between elements in the source markup as text nodes in
+ the DOM.<!-- not a conf criteria since the parser now requires this
+ --> Empty <a href=#text-node title="text node">text nodes</a> and <a href=#text-node title="text node">text nodes</a> consisting of just sequences of
+ those characters are considered <dfn id=inter-element-whitespace>inter-element
+ whitespace</dfn>.</p>
+
+ <p><a href=#inter-element-whitespace>Inter-element whitespace</a>, comment nodes, and
+ processing instruction nodes must be ignored when establishing
+ whether an element's contents match the element's content model or
+ not, and must be ignored when following algorithms that define
+ document and element semantics.</p>
+
+ <p class=note>Thus, an element <var title="">A</var> is said to be
+ <i>preceded or followed</i> by a second element <var title="">B</var> if <var title="">A</var> and <var title="">B</var>
+ have the same parent node and there are no other element nodes or
+ text nodes (other than <a href=#inter-element-whitespace>inter-element whitespace</a>)
+ between them. Similarly, a node is the <i>only child</i> of an
+ element if that element contains no other nodes other than
+ <a href=#inter-element-whitespace>inter-element whitespace</a>, comment nodes, and processing
+ instruction nodes.</p>
+
+ <p>Authors must not use <a href=#html-elements>HTML elements</a> anywhere except
+ where they are explicitly allowed, as defined for each element, or
+ as explicitly required by other specifications. For XML compound
+ documents, these contexts could be inside elements from other
+ namespaces, if those elements are defined as providing the relevant
+ contexts.</p>
+
+ <div class=example>
+ <p>For example, the Atom specification defines a <code title="">content</code> element. When its <code title="">type</code> attribute has the value <code title="">xhtml</code>, the Atom specification requires that it
+ contain a single HTML <code><a href=#the-div-element>div</a></code> element. Thus, a
+ <code><a href=#the-div-element>div</a></code> element is allowed in that context, even though
+ this is not explicitly normatively stated by this specification. <a href=#refsATOM>[ATOM]</a></p>
+ </div>
+
+ <p>In addition, <a href=#html-elements>HTML elements</a> may be orphan nodes
+ (i.e. without a parent node).</p>
+
+ <div class=example>
+
+ <p>For example, creating a <code><a href=#the-td-element>td</a></code> element and storing it
+ in a global variable in a script is conforming, even though
+ <code><a href=#the-td-element>td</a></code> elements are otherwise only supposed to be used
+ inside <code><a href=#the-tr-element>tr</a></code> elements.</p>
+
+ <pre>var data = {
+ name: "Banana",
+ cell: document.createElement('td'),
+};</pre>
+
+ </div>
+
+
+ <h5 id=kinds-of-content><span class=secno>3.2.5.1 </span>Kinds of content</h5>
+
+ <p>Each element in HTML falls into zero or more <dfn id=content-categories title="content
+ categories">categories</dfn> that group elements with similar
+ characteristics together. The following broad categories are used in
+ this specification:</p>
+
+ <ul class=brief><li><a href=#metadata-content>Metadata content</a></li>
+ <li><a href=#flow-content>Flow content</a></li>
+ <li><a href=#sectioning-content>Sectioning content</a></li>
+ <li><a href=#heading-content>Heading content</a></li>
+ <li><a href=#phrasing-content>Phrasing content</a></li>
+ <li><a href=#embedded-content>Embedded content</a></li>
+ <li><a href=#interactive-content>Interactive content</a></li>
+ </ul><p class=note>Some elements also fall into other categories, which
+ are defined in other parts of this specification.</p>
+
+ <p>These categories are related as follows:</p>
+
+ <p><object data=images/content-venn.svg height=288 width=1000><img alt="Sectioning content, heading content, phrasing content, and
+ embedded content are all types of flow content. Embedded content is
+ also a type of phrasing content." src=greenbox.png></object></p>
+
+ <p>Other categories are also used for specific purposes, e.g. form
+ controls are specified using a number of categories to define common
+ requirements. Some elements have unique requirements and do not fit
+ into any particular category.</p>
+
+
+ <h6 id=metadata-content-0><span class=secno>3.2.5.1.1 </span>Metadata content</h6>
+
+ <p><dfn id=metadata-content>Metadata content</dfn> is content that sets up the
+ presentation or behavior of the rest of the content, or that sets
+ up the relationship of the document with other documents, or that
+ conveys other "out of band" information.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-base-element>base</a></code></li>
+ <li><code><a href=#the-command-element>command</a></code></li>
+ <li><code><a href=#the-link-element>link</a></code></li>
+ <li><code><a href=#the-meta-element>meta</a></code></li>
+ <li><code><a href=#the-noscript-element>noscript</a></code></li>
+ <li><code><a href=#the-script-element>script</a></code></li>
+ <li><code><a href=#the-style-element>style</a></code></li>
+ <li><code><a href=#the-title-element>title</a></code></li>
+ </ul><p>Elements from other namespaces whose semantics are primarily
+ metadata-related (e.g. RDF) are also <a href=#metadata-content>metadata
+ content</a>.</p>
+
+ <div class=example>
+
+ <p>Thus, in the XML serialization, one can use RDF, like this:</p>
+
+ <pre>&lt;html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:r="http://www.w3.org/1999/02/22-rdf-syntax-ns#"&gt;
+ &lt;head&gt;
+ &lt;title&gt;Hedral's Home Page&lt;/title&gt;
+ &lt;r:RDF&gt;
+ &lt;Person xmlns="http://www.w3.org/2000/10/swap/pim/contact#"
+ r:about="http://hedral.example.com/#"&gt;
+ &lt;fullName&gt;Cat Hedral&lt;/fullName&gt;
+ &lt;mailbox r:resource="mailto:hedral@damowmow.com"/&gt;
+ &lt;personalTitle&gt;Sir&lt;/personalTitle&gt;
+ &lt;/Person&gt;
+ &lt;/r:RDF&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;h1&gt;My home page&lt;/h1&gt;
+ &lt;p&gt;I like playing with string, I guess. Sister says squirrels are fun
+ too so sometimes I follow her to play with them.&lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>This isn't possible in the HTML serialization, however.</p>
+
+ </div>
+
+
+ <h6 id=flow-content-0><span class=secno>3.2.5.1.2 </span>Flow content</h6>
+
+ <p>Most elements that are used in the body of documents and
+ applications are categorized as <dfn id=flow-content>flow content</dfn>.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-a-element>a</a></code></li>
+ <li><code><a href=#the-abbr-element>abbr</a></code></li>
+ <li><code><a href=#the-address-element>address</a></code></li>
+ <li><code><a href=#the-area-element>area</a></code> (if it is a descendant of a <code><a href=#the-map-element>map</a></code> element)</li>
+ <li><code><a href=#the-article-element>article</a></code></li>
+ <li><code><a href=#the-aside-element>aside</a></code></li>
+ <li><code><a href=#the-audio-element>audio</a></code></li>
+ <li><code><a href=#the-b-element>b</a></code></li>
+ <li><code><a href=#the-bdi-element>bdi</a></code></li>
+ <li><code><a href=#the-bdo-element>bdo</a></code></li>
+ <li><code><a href=#the-blockquote-element>blockquote</a></code></li>
+ <li><code><a href=#the-br-element>br</a></code></li>
+ <li><code><a href=#the-button-element>button</a></code></li>
+ <li><code><a href=#the-canvas-element>canvas</a></code></li>
+ <li><code><a href=#the-cite-element>cite</a></code></li>
+ <li><code><a href=#the-code-element>code</a></code></li>
+ <li><code><a href=#the-command-element>command</a></code></li>
+ <li><code><a href=#the-datalist-element>datalist</a></code></li>
+ <li><code><a href=#the-del-element>del</a></code></li>
+ <li><code><a href=#the-details-element>details</a></code></li>
+ <li><code><a href=#the-dfn-element>dfn</a></code></li>
+ <li><code><a href=#the-div-element>div</a></code></li>
+ <li><code><a href=#the-dl-element>dl</a></code></li>
+ <li><code><a href=#the-em-element>em</a></code></li>
+ <li><code><a href=#the-embed-element>embed</a></code></li>
+ <li><code><a href=#the-fieldset-element>fieldset</a></code></li>
+ <li><code><a href=#the-figure-element>figure</a></code></li>
+ <li><code><a href=#the-footer-element>footer</a></code></li>
+ <li><code><a href=#the-form-element>form</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code></li>
+ <li><code><a href=#the-header-element>header</a></code></li>
+ <li><code><a href=#the-hgroup-element>hgroup</a></code></li>
+ <li><code><a href=#the-hr-element>hr</a></code></li>
+ <li><code><a href=#the-i-element>i</a></code></li>
+ <li><code><a href=#the-iframe-element>iframe</a></code></li>
+ <li><code><a href=#the-img-element>img</a></code></li>
+ <li><code><a href=#the-input-element>input</a></code></li>
+ <li><code><a href=#the-ins-element>ins</a></code></li>
+ <li><code><a href=#the-kbd-element>kbd</a></code></li>
+ <li><code><a href=#the-keygen-element>keygen</a></code></li>
+ <li><code><a href=#the-label-element>label</a></code></li>
+<!--MD-->
+ <li><code><a href=#the-link-element>link</a></code> (if the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present)</li>
+<!--MD-->
+ <li><code><a href=#the-map-element>map</a></code></li>
+ <li><code><a href=#the-mark-element>mark</a></code></li>
+ <li><code><a href=#math>math</a></code></li>
+ <li><code><a href=#the-menu-element>menu</a></code></li>
+<!--MD-->
+ <li><code><a href=#the-meta-element>meta</a></code> (if the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present)</li>
+<!--MD-->
+ <li><code><a href=#the-meter-element>meter</a></code></li>
+ <li><code><a href=#the-nav-element>nav</a></code></li>
+ <li><code><a href=#the-noscript-element>noscript</a></code></li>
+ <li><code><a href=#the-object-element>object</a></code></li>
+ <li><code><a href=#the-ol-element>ol</a></code></li>
+ <li><code><a href=#the-output-element>output</a></code></li>
+ <li><code><a href=#the-p-element>p</a></code></li>
+ <li><code><a href=#the-pre-element>pre</a></code></li>
+ <li><code><a href=#the-progress-element>progress</a></code></li>
+ <li><code><a href=#the-q-element>q</a></code></li>
+ <li><code><a href=#the-ruby-element>ruby</a></code></li>
+ <li><code><a href=#the-s-element>s</a></code></li>
+ <li><code><a href=#the-samp-element>samp</a></code></li>
+ <li><code><a href=#the-script-element>script</a></code></li>
+ <li><code><a href=#the-section-element>section</a></code></li>
+ <li><code><a href=#the-select-element>select</a></code></li>
+ <li><code><a href=#the-small-element>small</a></code></li>
+ <li><code><a href=#the-span-element>span</a></code></li>
+ <li><code><a href=#the-strong-element>strong</a></code></li>
+ <li><code><a href=#the-style-element>style</a></code> (if the <code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code> attribute is present)</li>
+ <li><code><a href=#the-sub-and-sup-elements>sub</a></code></li>
+ <li><code><a href=#the-sub-and-sup-elements>sup</a></code></li>
+ <li><code><a href=#svg>svg</a></code></li>
+ <li><code><a href=#the-table-element>table</a></code></li>
+ <li><code><a href=#the-textarea-element>textarea</a></code></li>
+ <li><code><a href=#the-time-element>time</a></code></li>
+ <li><code><a href=#the-u-element>u</a></code></li>
+ <li><code><a href=#the-ul-element>ul</a></code></li>
+ <li><code><a href=#the-var-element>var</a></code></li>
+ <li><code><a href=#the-video-element>video</a></code></li>
+ <li><code><a href=#the-wbr-element>wbr</a></code></li>
+ <li><a href=#text-content title="text content">Text</a></li>
+ </ul><p>As a general rule, elements whose content model allows any
+ <a href=#flow-content>flow content</a> should have either at least one descendant
+ <a href=#text-node>text node</a> that is not <a href=#inter-element-whitespace>inter-element
+ whitespace</a>, or at least one descendant element node that is
+ <a href=#embedded-content>embedded content</a>. For the purposes of this requirement,
+ <code><a href=#the-del-element>del</a></code> elements and their descendants must not be counted
+ as contributing to the ancestors of the <code><a href=#the-del-element>del</a></code>
+ element.</p>
+
+ <p>This requirement is not a hard requirement, however, as there are
+ many cases where an element can be empty legitimately, for example
+ when it is used as a placeholder which will later be filled in by a
+ script, or when the element is part of a template and would on most
+ pages be filled in but on some pages is not relevant.</p>
+
+ <!--<p><span title="text node">Text nodes</span> and attribute
+ values may begin with an <i>isolated combining character</i>. <a
+ href="#refsUNICODE">[UNICODE]</a></p>--> <!-- commented out since
+ nothing disallows it currently, so it's implicit; however, if we
+ ever make charmod a normative reference, this will be needed to
+ override it -->
+
+
+ <h6 id=sectioning-content-0><span class=secno>3.2.5.1.3 </span>Sectioning content</h6>
+
+ <p><dfn id=sectioning-content>Sectioning content</dfn> is content that defines the scope
+ of <a href=#heading-content title="heading content">headings</a> and <a href=#the-footer-element title=footer>footers</a>.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-article-element>article</a></code></li>
+ <li><code><a href=#the-aside-element>aside</a></code></li>
+ <li><code><a href=#the-nav-element>nav</a></code></li>
+ <li><code><a href=#the-section-element>section</a></code></li>
+ </ul><p>Each <a href=#sectioning-content>sectioning content</a> element potentially has a
+ heading and an <a href=#outline>outline</a>. See the section on
+ <a href=#headings-and-sections>headings and sections</a> for further details.</p>
+
+ <p class=note>There are also certain elements that are <a href=#sectioning-root title="sectioning root">sectioning roots</a>. These are distinct
+ from <a href=#sectioning-content>sectioning content</a>, but they can also have an
+ <a href=#outline>outline</a>.</p>
+
+
+ <h6 id=heading-content-0><span class=secno>3.2.5.1.4 </span>Heading content</h6>
+
+ <p><dfn id=heading-content>Heading content</dfn> defines the header of a section
+ (whether explicitly marked up using <a href=#sectioning-content>sectioning content</a>
+ elements, or implied by the heading content itself).</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code></li>
+ <li><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code></li>
+ <li><code><a href=#the-hgroup-element>hgroup</a></code></li>
+ </ul><h6 id=phrasing-content-0><span class=secno>3.2.5.1.5 </span>Phrasing content</h6>
+
+ <p><dfn id=phrasing-content>Phrasing content</dfn> is the text of the document, as well
+ as elements that mark up that text at the intra-paragraph
+ level. Runs of <a href=#phrasing-content>phrasing content</a> form <a href=#paragraph title=paragraph>paragraphs</a>.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-a-element>a</a></code> (if it contains only <a href=#phrasing-content>phrasing content</a>)</li>
+ <li><code><a href=#the-abbr-element>abbr</a></code></li>
+ <li><code><a href=#the-area-element>area</a></code> (if it is a descendant of a <code><a href=#the-map-element>map</a></code> element)</li>
+ <li><code><a href=#the-audio-element>audio</a></code></li>
+ <li><code><a href=#the-b-element>b</a></code></li>
+ <li><code><a href=#the-bdi-element>bdi</a></code></li>
+ <li><code><a href=#the-bdo-element>bdo</a></code></li>
+ <li><code><a href=#the-br-element>br</a></code></li>
+ <li><code><a href=#the-button-element>button</a></code></li>
+ <li><code><a href=#the-canvas-element>canvas</a></code></li>
+ <li><code><a href=#the-cite-element>cite</a></code></li>
+ <li><code><a href=#the-code-element>code</a></code></li>
+ <li><code><a href=#the-command-element>command</a></code></li>
+ <li><code><a href=#the-datalist-element>datalist</a></code></li>
+ <li><code><a href=#the-del-element>del</a></code> (if it contains only <a href=#phrasing-content>phrasing content</a>)</li>
+ <li><code><a href=#the-dfn-element>dfn</a></code></li>
+ <li><code><a href=#the-em-element>em</a></code></li>
+ <li><code><a href=#the-embed-element>embed</a></code></li>
+ <li><code><a href=#the-i-element>i</a></code></li>
+ <li><code><a href=#the-iframe-element>iframe</a></code></li>
+ <li><code><a href=#the-img-element>img</a></code></li>
+ <li><code><a href=#the-input-element>input</a></code></li>
+ <li><code><a href=#the-ins-element>ins</a></code> (if it contains only <a href=#phrasing-content>phrasing content</a>)</li>
+ <li><code><a href=#the-kbd-element>kbd</a></code></li>
+ <li><code><a href=#the-keygen-element>keygen</a></code></li>
+ <li><code><a href=#the-label-element>label</a></code></li>
+<!--MD-->
+ <li><code><a href=#the-link-element>link</a></code> (if the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present)</li>
+<!--MD-->
+ <li><code><a href=#the-map-element>map</a></code> (if it contains only <a href=#phrasing-content>phrasing content</a>)</li>
+ <li><code><a href=#the-mark-element>mark</a></code></li>
+ <li><code><a href=#math>math</a></code></li>
+<!--MD-->
+ <li><code><a href=#the-meta-element>meta</a></code> (if the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present)</li>
+<!--MD-->
+ <li><code><a href=#the-meter-element>meter</a></code></li>
+ <li><code><a href=#the-noscript-element>noscript</a></code></li>
+ <li><code><a href=#the-object-element>object</a></code></li>
+ <li><code><a href=#the-output-element>output</a></code></li>
+ <li><code><a href=#the-progress-element>progress</a></code></li>
+ <li><code><a href=#the-q-element>q</a></code></li>
+ <li><code><a href=#the-ruby-element>ruby</a></code></li>
+ <li><code><a href=#the-s-element>s</a></code></li>
+ <li><code><a href=#the-samp-element>samp</a></code></li>
+ <li><code><a href=#the-script-element>script</a></code></li>
+ <li><code><a href=#the-select-element>select</a></code></li>
+ <li><code><a href=#the-small-element>small</a></code></li>
+ <li><code><a href=#the-span-element>span</a></code></li>
+ <li><code><a href=#the-strong-element>strong</a></code></li>
+ <li><code><a href=#the-sub-and-sup-elements>sub</a></code></li>
+ <li><code><a href=#the-sub-and-sup-elements>sup</a></code></li>
+ <li><code><a href=#svg>svg</a></code></li>
+ <li><code><a href=#the-textarea-element>textarea</a></code></li>
+ <li><code><a href=#the-time-element>time</a></code></li>
+ <li><code><a href=#the-u-element>u</a></code></li>
+ <li><code><a href=#the-var-element>var</a></code></li>
+ <li><code><a href=#the-video-element>video</a></code></li>
+ <li><code><a href=#the-wbr-element>wbr</a></code></li>
+ <li><a href=#text-content title="text content">Text</a></li>
+ </ul><p>As a general rule, elements whose content model allows any
+ <a href=#phrasing-content>phrasing content</a> should have either at least one
+ descendant <a href=#text-node>text node</a> that is not <a href=#inter-element-whitespace>inter-element
+ whitespace</a>, or at least one descendant element node that is
+ <a href=#embedded-content>embedded content</a>. For the purposes of this requirement,
+ nodes that are descendants of <code><a href=#the-del-element>del</a></code> elements must not be
+ counted as contributing to the ancestors of the <code><a href=#the-del-element>del</a></code>
+ element.</p>
+
+ <p class=note>Most elements that are categorized as phrasing
+ content can only contain elements that are themselves categorized as
+ phrasing content, not any flow content.</p>
+
+ <p><dfn id=text-content title="text content">Text</dfn>, in the context of content
+ models, means <a href=#text-node title="text node">text nodes</a>. <a href=#text-content title="text content">Text</a> is sometimes used as a content
+ model on its own, but is also <a href=#phrasing-content>phrasing content</a>, and can
+ be <a href=#inter-element-whitespace>inter-element whitespace</a> (if the <a href=#text-node title="text
+ node">text nodes</a> are empty or contain just <a href=#space-character title="space
+ character">space characters</a>).</p>
+
+
+
+ <h6 id=embedded-content-0><span class=secno>3.2.5.1.6 </span>Embedded content</h6>
+
+ <p><dfn id=embedded-content>Embedded content</dfn> is content that imports another
+ resource into the document, or content from another vocabulary that
+ is inserted into the document.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-audio-element>audio</a></code></li>
+ <li><code><a href=#the-canvas-element>canvas</a></code></li>
+ <li><code><a href=#the-embed-element>embed</a></code></li>
+ <li><code><a href=#the-iframe-element>iframe</a></code></li>
+ <li><code><a href=#the-img-element>img</a></code></li>
+ <li><code><a href=#math>math</a></code></li>
+ <li><code><a href=#the-object-element>object</a></code></li>
+ <li><code><a href=#svg>svg</a></code></li>
+ <li><code><a href=#the-video-element>video</a></code></li>
+ </ul><p>Elements that are from namespaces other than the <a href=#html-namespace-0>HTML
+ namespace</a> and that convey content but not metadata, are
+ <a href=#embedded-content>embedded content</a> for the purposes of the content models
+ defined in this specification. (For example, MathML, or SVG.)</p>
+
+ <p>Some embedded content elements can have <dfn id=fallback-content>fallback
+ content</dfn>: content that is to be used when the external resource
+ cannot be used (e.g. because it is of an unsupported format). The
+ element definitions state what the fallback is, if any.</p>
+ <!-- we might not need to define fallback content at all. consider
+ removing it if we don't end up using it anywhere (e.g. Selection)
+ -->
+
+
+ <h6 id=interactive-content-0><span class=secno>3.2.5.1.7 </span>Interactive content</h6>
+
+<!--
+TESTS:
+http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0A%3Cp%20tabindex%3D1%3Etest%20%3Ca%20href%3D%22%22%3E%20%3Cem%3Etest%3C/em%3E%20%3C/a%3E%0A%3Cscript%3E%0A%20function%20test%20%28e%29%20%7B%20w%28e.type%20+%20%27%20on%20%27%20+%20e.target.tagName%20+%20%27%20through%20%27%20+%20e.currentTarget.tagName%29%3B%20%7D%0A%20document.getElementsByTagName%28%27a%27%29%5B0%5D.addEventListener%28%27click%27%2C%20test%2C%20false%29%3B%0A%20document.getElementsByTagName%28%27a%27%29%5B0%5D.addEventListener%28%27DOMActivate%27%2C%20test%2C%20false%29%3B%0A%20document.getElementsByTagName%28%27p%27%29%5B0%5D.addEventListener%28%27click%27%2C%20test%2C%20false%29%3B%0A%20document.getElementsByTagName%28%27p%27%29%5B0%5D.addEventListener%28%27DOMActivate%27%2C%20test%2C%20false%29%3B%0A%3C/script%3E%0A
+http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0A%3Ca%20href%3Dhttp%3A//google.com/%20target%3Da%3EA%3C/a%3E%3Ca%20href%3Dhttp%3A//yahoo.com/%20target%3Db%3EB%3C/a%3E%3Cbr%3E%0A%3Ciframe%20name%3Da%3E%3C/iframe%3E%3Ciframe%20name%3Db%3E%3C/iframe%3E%0A%3Cscript%3E%0A%20var%20a%20%3D%20document.getElementsByTagName%28%27a%27%29%5B0%5D%3B%0A%20var%20b%20%3D%20document.getElementsByTagName%28%27a%27%29%5B1%5D%3B%0A%20a.appendChild%28b%29%3B%0A%3C/script%3E
+http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0A%3Cform%20action%3D%22http%3A//google.com/%22%20onsubmit%3D%22w%28%27onsubmit%27%29%22%3E%3Cem%3EA%3C/em%3E%3C/form%3E%0A%3Cscript%3E%0Adocument.getElementsByTagName%28%27form%27%29%5B0%5D.attachEvent%28%27onsubmit%27%2C%20function%20%28%29%20%7B%20w%28%27submit%20fired%27%29%20%7D%29%3B%0Adocument.getElementsByTagName%28%27form%27%29%5B0%5D.fireEvent%28%27onsubmit%27%29%3B%0A%3C/script%3E
+http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0A%3Cform%20action%3D%22http%3A//google.com/%22%3EX%3C/form%3E%0A%3Cscript%3E%0Avar%20evt%20%3D%20document.createEvent%28%22Events%22%29%3B%0Aevt.initEvent%28%22submit%22%2C%20true%2C%20true%29%3B%0Adocument.getElementsByTagName%28%27form%27%29%5B0%5D.dispatchEvent%28evt%29%3B%0A%3C/script%3E
+-->
+
+ <p><dfn id=interactive-content>Interactive content</dfn> is content that is specifically
+ intended for user interaction.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-a-element>a</a></code></li>
+ <li><code><a href=#the-audio-element>audio</a></code> (if the <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute is present)</li>
+ <li><code><a href=#the-button-element>button</a></code></li>
+ <li><code><a href=#the-details-element>details</a></code></li>
+ <li><code><a href=#the-embed-element>embed</a></code></li>
+ <li><code><a href=#the-iframe-element>iframe</a></code></li>
+ <li><code><a href=#the-img-element>img</a></code> (if the <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute is present)</li>
+ <li><code><a href=#the-input-element>input</a></code> (if the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is <em>not</em> in the <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state)</li>
+ <li><code><a href=#the-keygen-element>keygen</a></code></li>
+ <li><code><a href=#the-label-element>label</a></code></li>
+ <li><code><a href=#the-menu-element>menu</a></code> (if the <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute is in the <a href=#toolbar-state title="toolbar state">toolbar</a> state)</li>
+ <li><code><a href=#the-object-element>object</a></code> (if the <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute is present)<!-- see also comment in <object> section --></li>
+ <li><code><a href=#the-select-element>select</a></code></li>
+ <li><code><a href=#the-textarea-element>textarea</a></code></li>
+ <li><code><a href=#the-video-element>video</a></code> (if the <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute is present)</li>
+ </ul><p>Certain elements in HTML have an <a href=#activation-behavior>activation
+ behavior</a>, which means that the user can activate them. This
+ triggers a sequence of events dependent on the activation mechanism,
+ and normally culminating in a <code title=event-click><a href=#event-click>click</a></code>
+ event<span class=impl>, as described below</span>.</p>
+
+ <div class=impl>
+
+ <p>The user agent should allow the user to manually trigger elements
+ that have an <a href=#activation-behavior>activation behavior</a>, for instance using
+ keyboard or voice input, or through mouse clicks. When the user
+ triggers an element with a defined <a href=#activation-behavior>activation behavior</a>
+ in a manner other than clicking it, the default action of the
+ interaction event must be to <a href=#run-synthetic-click-activation-steps>run synthetic click activation
+ steps</a> on the element.</p> <!-- interaction event spec point -->
+
+ <p>When a user agent is to <dfn id=run-synthetic-click-activation-steps>run synthetic click activation
+ steps</dfn> on an element, the user agent must <a href=#run-pre-click-activation-steps>run pre-click
+ activation steps</a> on the element, then <a href=#fire-a-click-event>fire a <code title=event-click>click</code> event</a> at the element. The
+ default action of this <code title=event-click><a href=#event-click>click</a></code> event
+ must be to <a href=#run-post-click-activation-steps>run post-click activation steps</a> on the
+ element. If the event is canceled, the user agent must <a href=#run-canceled-activation-steps>run
+ canceled activation steps</a> on the element instead.</p>
+
+ <p>When a pointing device is clicked, the user agent must run these
+ steps:</p>
+
+ <ol><li><p>Let <var title="">e</var> be the <a href=#nearest-activatable-element>nearest activatable
+ element</a> of the element designated by the user (defined
+ below), if any.</li>
+
+ <li><p>If there is an element <var title="">e</var>, <a href=#run-pre-click-activation-steps>run
+ pre-click activation steps</a> on it.</li>
+
+ <li>
+
+ <p>Dispatch the required <code title=event-click><a href=#event-click>click</a></code>
+ event.</p> <!-- interaction event spec point -->
+
+ <p>If there is an element <var title="">e</var>, then the default
+ action of the <code title=event-click><a href=#event-click>click</a></code> event must be
+ to <a href=#run-post-click-activation-steps>run post-click activation steps</a> on element <var title="">e</var>.</p>
+
+ <p>If there is an element <var title="">e</var> but the event is
+ canceled, the user agent must <a href=#run-canceled-activation-steps>run canceled activation
+ steps</a> on element <var title="">e</var>.</p>
+
+ </li>
+
+ </ol><p class=note>The above doesn't happen for arbitrary synthetic
+ events dispatched by author script. However, the <code title=dom-click><a href=#dom-click>click()</a></code> method can be used to make it
+ happen programmatically.</p>
+
+ <p class=note>Click-focusing behavior (e.g. the focusing of a text
+ field when user clicks in one) typically happens before the click,
+ when the mouse button is first depressed, and is therefore not
+ discussed here.</p> <!-- interaction event spec point -->
+
+ <p>Given an element <var title="">target</var>, the <dfn id=nearest-activatable-element>nearest
+ activatable element</dfn> is the element returned by the following
+ algorithm:</p>
+
+ <ol><li><p>If <var title="">target</var> has a defined <a href=#activation-behavior>activation
+ behavior</a>, then return <var title="">target</var> and abort
+ these steps.</li>
+
+ <li><p>If <var title="">target</var> has a parent element, then set
+ <var title="">target</var> to that parent element and return to the
+ first step.</li>
+
+ <li><p>Otherwise, there is no <a href=#nearest-activatable-element>nearest activatable
+ element</a>.</li>
+
+ </ol><p>When a user agent is to <dfn id=run-pre-click-activation-steps>run pre-click activation steps</dfn>
+ on an element, it must run the <dfn id=pre-click-activation-steps>pre-click activation steps</dfn>
+ defined for that element, if any.</p>
+
+ <p>When a user agent is to <dfn id=run-canceled-activation-steps>run canceled activation steps</dfn>
+ on an element, it must run the <dfn id=canceled-activation-steps>canceled activation steps</dfn>
+ defined for that element, if any.</p>
+
+ <p>When a user agent is to <dfn id=run-post-click-activation-steps>run post-click activation
+ steps</dfn> on an element, it must run the <dfn id=activation-behavior>activation
+ behavior</dfn> defined for that element. Activation behaviors can
+ refer to the <code title=event-click><a href=#event-click>click</a></code> event that was
+ fired by the steps above leading up to this point.</p>
+
+ </div>
+
+
+ <h5 id=transparent-content-models><span class=secno>3.2.5.2 </span>Transparent content models</h5>
+
+ <p>Some elements are described as <dfn id=transparent>transparent</dfn>; they have
+ "transparent" in the description of their content model. The content
+ model of a <a href=#transparent>transparent</a> element is derived from the
+ content model of its parent element: the elements required in the
+ part of the content model that is "transparent" are the same
+ elements as required in the part of the content model of the parent
+ of the transparent element in which the transparent element finds
+ itself.</p>
+
+ <div class=example>
+
+ <p>For instance, an <code><a href=#the-ins-element>ins</a></code> element inside a
+ <code><a href=#the-ruby-element>ruby</a></code> element cannot contain an <code><a href=#the-rt-element>rt</a></code>
+ element, because the part of the <code><a href=#the-ruby-element>ruby</a></code> element's
+ content model that allows <code><a href=#the-ins-element>ins</a></code> elements is the part
+ that allows <a href=#phrasing-content>phrasing content</a>, and the <code><a href=#the-rt-element>rt</a></code>
+ element is not <a href=#phrasing-content>phrasing content</a>.</p>
+
+ </div>
+
+<!--(as far as I can tell, there's no way to violate this requirement
+ without first violating the earlier requirement)
+ <p>Furthermore, when a content model includes a part that is
+ "transparent", those parts must not contain content that would not
+ be conformant if all transparent elements in the tree were replaced,
+ in their parent element, by the children in the "transparent" part
+ of their content model, retaining order.</p>
+
+ <div class="example">
+
+ <p>Consider the following markup fragment:</p>
+
+ <pre>&lt;p>Hello &lt;a href="world.html">&lt;em>wonderful&lt;/em> world&lt;/a>!&lt;/p></pre>
+
+ <p>Its DOM looks like the following:</p>
+
+ <ul class="domTree"><li class="t1"><code>p</code><ul><li class="t3"><code>#text</code>: <span title="">Hello </span></li><li class="t1"><code>a</code> <span class="t2" title=""><code class="attribute name">href</code>="<code class="attribute value">world.html</code>"</span><ul><li class="t1"><code>em</code><ul><li class="t3"><code>#text</code>: <span title="">wonderful</span></li></ul></li><li class="t3"><code>#text</code>: <span title=""> world</span></li></ul></li><li class="t3"><code>#text</code>: <span title="">!</span></li></ul></li></ul>
+
+ <p>The content model of the <code>a</code> element is
+ <span>transparent</span>. To see if its contents are conforming,
+ therefore, the element is replaced by its contents:</p>
+
+ <ul class="domTree"><li class="t1"><code>p</code><ul><li class="t3"><code>#text</code>: <span title="">Hello </span></li><li class="t1"><code>em</code><ul><li class="t3"><code>#text</code>: <span title="">wonderful</span></li></ul></li><li class="t3"><code>#text</code>: <span title=""> world</span></li><li class="t3"><code>#text</code>: <span title="">!</span></li></ul></li></ul>
+
+ <p>Since that is conforming, the contents of the <code>a</code> are
+ conforming in the original fragment (there is no complication
+ regarding the various parts of the <code>p</code> element's content
+ model, since that element's content model has only one part).</p>
+
+ </div>
+-->
+
+ <p class=note>In some cases, where transparent elements are nested
+ in each other, the process has to be applied iteratively.</p>
+
+ <div class=example>
+
+ <p>Consider the following markup fragment:</p>
+
+ <pre>&lt;p&gt;&lt;object&gt;&lt;param&gt;&lt;ins&gt;&lt;map&gt;&lt;a href="/"&gt;Apples&lt;/a&gt;&lt;/map&gt;&lt;/ins&gt;&lt;/object&gt;&lt;/p&gt;</pre>
+
+ <p>To check whether "Apples" is allowed inside the <code><a href=#the-a-element>a</a></code>
+ element, the content models are examined. The <code><a href=#the-a-element>a</a></code>
+ element's content model is transparent, as is the <code><a href=#the-map-element>map</a></code>
+ element's, as is the <code><a href=#the-ins-element>ins</a></code> element's, as is the part of
+ the <code><a href=#the-object-element>object</a></code> element's in which the <code><a href=#the-ins-element>ins</a></code>
+ element is found. The <code><a href=#the-object-element>object</a></code> element is found in the
+ <code><a href=#the-p-element>p</a></code> element, whose content model is <a href=#phrasing-content>phrasing
+ content</a>. Thus, "Apples" is allowed, as text is phrasing
+ content.</p>
+
+ </div>
+
+ <p>When a transparent element has no parent, then the part of its
+ content model that is "transparent" must instead be treated as
+ accepting any <a href=#flow-content>flow content</a>.</p>
+
+
+ <h5 id=paragraphs><span class=secno>3.2.5.3 </span>Paragraphs</h5>
+
+ <p class=note>The term <a href=#paragraph>paragraph</a> as defined in this
+ section is distinct from (though related to) the <code><a href=#the-p-element>p</a></code>
+ element defined later. The <a href=#paragraph>paragraph</a> concept defined
+ here is used to describe how to interpret documents.</p>
+
+ <p>A <dfn id=paragraph>paragraph</dfn> is typically a run of <a href=#phrasing-content>phrasing
+ content</a> that forms a block of text with one or more sentences
+ that discuss a particular topic, as in typography, but can also be
+ used for more general thematic grouping. For instance, an address is
+ also a paragraph, as is a part of a form, a byline, or a stanza in a
+ poem.</p>
+
+ <div class=example>
+
+ <p>In the following example, there are two paragraphs in a
+ section. There is also a heading, which contains phrasing content
+ that is not a paragraph. Note how the comments and
+ <a href=#inter-element-whitespace>inter-element whitespace</a> do not form paragraphs.</p>
+
+ <pre>&lt;section&gt;
+ &lt;h1&gt;Example of paragraphs&lt;/h1&gt;
+ This is the &lt;em&gt;first&lt;/em&gt; paragraph in this example.
+ &lt;p&gt;This is the second.&lt;/p&gt;
+ &lt;!-- This is not a paragraph. --&gt;
+&lt;/section&gt;</pre>
+
+ </div>
+
+ <p>Paragraphs in <a href=#flow-content>flow content</a> are defined relative to
+ what the document looks like without the <code><a href=#the-a-element>a</a></code>,
+ <code><a href=#the-ins-element>ins</a></code>, <code><a href=#the-del-element>del</a></code>, and <code><a href=#the-map-element>map</a></code> elements
+ complicating matters, since those elements, with their hybrid
+ content models, can straddle paragraph boundaries, as shown in the
+ first two examples below.</p>
+
+ <p class=note>Generally, having elements straddle paragraph
+ boundaries is best avoided. Maintaining such markup can be
+ difficult.</p>
+
+ <div class=example>
+
+ <p>The following example takes the markup from the earlier example
+ and puts <code><a href=#the-ins-element>ins</a></code> and <code><a href=#the-del-element>del</a></code> elements around some
+ of the markup to show that the text was changed (though in this
+ case, the changes admittedly don't make much sense). Notice how
+ this example has exactly the same paragraphs as the previous one,
+ despite the <code><a href=#the-ins-element>ins</a></code> and <code><a href=#the-del-element>del</a></code> elements &mdash;
+ the <code><a href=#the-ins-element>ins</a></code> element straddles the heading and the first
+ paragraph, and the <code><a href=#the-del-element>del</a></code> element straddles the boundary
+ between the two paragraphs.</p>
+
+ <pre>&lt;section&gt;
+ &lt;ins&gt;&lt;h1&gt;Example of paragraphs&lt;/h1&gt;
+ This is the &lt;em&gt;first&lt;/em&gt; paragraph in&lt;/ins&gt; this example&lt;del&gt;.
+ &lt;p&gt;This is the second.&lt;/p&gt;&lt;/del&gt;
+ &lt;!-- This is not a paragraph. --&gt;
+&lt;/section&gt;</pre>
+
+ </div>
+
+ <div class=impl>
+
+ <p>Let <var title="">view</var> be a view of the DOM that replaces
+ all <code><a href=#the-a-element>a</a></code>, <code><a href=#the-ins-element>ins</a></code>, <code><a href=#the-del-element>del</a></code>, and
+ <code><a href=#the-map-element>map</a></code> elements in the document with their contents. Then,
+ in <var title="">view</var>, for each run of sibling <a href=#phrasing-content>phrasing
+ content</a> nodes uninterrupted by other types of content, in an
+ element that accepts content other than <a href=#phrasing-content>phrasing
+ content</a> as well as <a href=#phrasing-content>phrasing content</a>, let <var title="">first</var> be the first node of the run, and let <var title="">last</var> be the last node of the run. For each such run
+ that consists of at least one node that is neither <a href=#embedded-content>embedded
+ content</a> nor <a href=#inter-element-whitespace>inter-element whitespace</a>, a
+ paragraph exists in the original DOM from immediately before <var title="">first</var> to immediately after <var title="">last</var>. (Paragraphs can thus span across
+ <code><a href=#the-a-element>a</a></code>, <code><a href=#the-ins-element>ins</a></code>, <code><a href=#the-del-element>del</a></code>, and
+ <code><a href=#the-map-element>map</a></code> elements.)</p>
+
+ <p>Conformance checkers may warn authors of cases where they have
+ paragraphs that overlap each other (this can happen with
+ <code><a href=#the-object-element>object</a></code>, <code><a href=#the-video-element>video</a></code>, <code><a href=#the-audio-element>audio</a></code>, and
+ <code><a href=#the-canvas-element>canvas</a></code> elements, and indirectly through elements in
+ other namespaces that allow HTML to be further embedded therein,
+ like <code><a href=#svg>svg</a></code> or <code><a href=#math>math</a></code>).</p> <!-- example below
+ -->
+
+ </div>
+
+ <p>A <a href=#paragraph>paragraph</a> is also formed explicitly by
+ <code><a href=#the-p-element>p</a></code> elements.</p>
+
+ <p class=note>The <code><a href=#the-p-element>p</a></code> element can be used to wrap
+ individual paragraphs when there would otherwise not be any content
+ other than phrasing content to separate the paragraphs from each
+ other.</p>
+
+ <div class=example>
+
+ <p>In the following example, the link spans half of the first
+ paragraph, all of the heading separating the two paragraphs, and
+ half of the second paragraph. It straddles the paragraphs and the
+ heading.</p>
+
+ <pre>&lt;aside&gt;
+ Welcome!
+ &lt;a href="about.html"&gt;
+ This is home of...
+ &lt;h1&gt;The Falcons!&lt;/h1&gt;
+ The Lockheed Martin multirole jet fighter aircraft!
+ &lt;/a&gt;
+ This page discusses the F-16 Fighting Falcon's innermost secrets.
+&lt;/aside&gt;</pre>
+
+ <p>Here is another way of marking this up, this time showing the
+ paragraphs explicitly, and splitting the one link element into
+ three:</p>
+
+ <pre>&lt;aside&gt;
+ &lt;p&gt;Welcome! &lt;a href="about.html"&gt;This is home of...&lt;/a&gt;&lt;/p&gt;
+ &lt;h1&gt;&lt;a href="about.html"&gt;The Falcons!&lt;/a&gt;&lt;/h1&gt;
+ &lt;p&gt;&lt;a href="about.html"&gt;The Lockheed Martin multirole jet
+ fighter aircraft!&lt;/a&gt; This page discusses the F-16 Fighting
+ Falcon's innermost secrets.&lt;/p&gt;
+&lt;/aside&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <!-- I don't know if there's a better way to deal with this, but if
+ there is, let me know... -->
+
+ <p>It is possible for paragraphs to overlap when using certain
+ elements that define fallback content. For example, in the
+ following section:</p>
+
+ <pre>&lt;section&gt;
+ &lt;h1&gt;My Cats&lt;/h1&gt;
+ You can play with my cat simulator.
+ &lt;object data="cats.sim"&gt;
+ To see the cat simulator, use one of the following links:
+ &lt;ul&gt;
+ &lt;li&gt;&lt;a href="cats.sim"&gt;Download simulator file&lt;/a&gt;
+ &lt;li&gt;&lt;a href="http://sims.example.com/watch?v=LYds5xY4INU"&gt;Use online simulator&lt;/a&gt;
+ &lt;/ul&gt;
+ Alternatively, upgrade to the Mellblom Browser.
+ &lt;/object&gt;
+ I'm quite proud of it.
+&lt;/section&gt;</pre>
+
+ <p>There are five paragraphs:</p>
+
+ <ol class=brief><li>The paragraph that says "You can play with my cat
+ simulator. <i title="">object</i> I'm quite proud of it.", where
+ <i title="">object</i> is the <code><a href=#the-object-element>object</a></code> element.</li>
+
+ <li>The paragraph that says "To see the cat simulator, use one of
+ the following links:".</li>
+
+ <li>The paragraph that says "Download simulator file".</li>
+
+ <li>The paragraph that says "Use online simulator".</li>
+
+ <li>The paragraph that says "Alternatively, upgrade to the Mellblom Browser.".</li>
+
+ </ol><p>The first paragraph is overlapped by the other four. A user
+ agent that supports the "cats.sim" resource will only show the
+ first one, but a user agent that shows the fallback will
+ confusingly show the first sentence of the first paragraph as
+ if it was in the same paragraph as the second one, and will show
+ the last paragraph as if it was at the start of the second sentence
+ of the first paragraph.</p>
+
+ <p>To avoid this confusion, explicit <code><a href=#the-p-element>p</a></code> elements can be
+ used.</p>
+
+ </div>
+
+
+
+ <h4 id=requirements-relating-to-bidirectional-algorithm-formatting-characters><span class=secno>3.2.6 </span>Requirements relating to bidirectional-algorithm formatting
+ characters</h4>
+
+ <p><a href=#text-content>Text content</a> in <a href=#html-elements>HTML elements</a> with
+ child <a href=#text-node title="text node">text nodes</a>, and text in
+ attributes of <a href=#html-elements>HTML elements</a> that allow free-form text,
+ may contain characters in the range U+202A to U+202E (the
+ bidirectional-algorithm formatting characters). However, the use of
+ these characters is restricted so that any embedding or overrides
+ generated by these characters do not start and end with different
+ parent elements, and so that all such embeddings and overrides are
+ explicitly terminated by a U+202C POP DIRECTIONAL FORMATTING
+ character. This helps reduce incidences of text being reused in a
+ manner that has unforeseen effects on the bidirectional
+ algorithm.</p>
+
+ <p>The aforementioned restrictions are defined by specifying that
+ certain parts of documents form <a href=#bidirectional-algorithm-formatting-character-ranges>bidirectional-algorithm
+ formatting character ranges</a>, and then imposing a requirement
+ on such ranges.</p>
+
+ <p>The strings resulting from applying the following algorithm to an
+ <a href=#html-elements title="HTML elements">HTML element</a> <var title="">element</var> are <a href=#bidirectional-algorithm-formatting-character-ranges>bidirectional-algorithm formatting
+ character ranges</a>:</p>
+
+ <ol><li><p>Let <var title="">output</var> be an empty list of strings.</li>
+
+ <li><p>Let <var title="">string</var> be an empty string.</li>
+
+ <li><p>Let <var title="">node</var> be the first child node of <var title="">element</var>, if any, or null otherwise.</li>
+
+ <!-- while node != null do -->
+ <li><p><i>Loop</i>: If <var title="">node</var> is null, jump to
+ the step labeled <i>end</i>.</li>
+
+ <li>
+
+ <p>Process <var title="">node</var> according to the first
+ matching step from the following list:</p>
+
+ <dl class=switch><dt>If <var title="">node</var> is a <a href=#text-node>text node</a></dt>
+
+ <dd><p>Append the text data of <var title="">node</var> to <var title="">string</var>.</dd>
+
+
+ <dt>If <var title="">node</var> is a <code><a href=#the-br-element>br</a></code> element</dt>
+ <dt>If <var title="">node</var> is an <a href=#html-elements title="HTML elements">HTML element</a> that is <a href=#flow-content>flow content</a> but that is not also <a href=#phrasing-content>phrasing content</a></dt>
+
+ <dd><p>If <var title="">string</var> is not the empty string,
+ push <var title="">string</var> onto <var title="">output</var>,
+ and let <var title="">string</var> be empty string.</dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd>Do nothing.</dd>
+
+ </dl></li>
+
+ <li><p>Let <var title="">node</var> be <var title="">node</var>'s
+ next sibling, if any, or null otherwise.</li>
+
+ <li><p>Jump to the step labeled <i>loop</i>.</li>
+ <!-- end while -->
+
+ <li><p><i>End</i>: If <var title="">string</var> is not the empty
+ string, push <var title="">string</var> onto <var title="">output</var>.</li>
+
+ <li><p>Return <var title="">output</var> as the
+ <a href=#bidirectional-algorithm-formatting-character-ranges>bidirectional-algorithm formatting character
+ ranges</a>.</li>
+
+ </ol><p>The value of a namespace-less attribute of an <a href=#html-elements title="HTML
+ elements">HTML element</a> is a <a href=#bidirectional-algorithm-formatting-character-ranges title="bidirectional-algorithm formatting character
+ ranges">bidirectional-algorithm formatting character
+ range</a>.</p>
+
+<!--(this is unnecessarily pedantic)
+ <p>The text data of a comment node is a <span
+ title="bidirectional-algorithm formatting character
+ ranges">bidirectional-algorithm formatting character
+ range</span>.</p>
+-->
+
+ <p>Any strings that, as described above, are
+ <dfn id=bidirectional-algorithm-formatting-character-ranges>bidirectional-algorithm formatting character ranges</dfn> must
+ match the <code title="">string</code> production in the following
+ ABNF, the character set for which is Unicode. <a href=#refsABNF>[ABNF]</a></p>
+
+ <pre>string = *( plaintext ( embedding / override ) ) plaintext
+embedding = ( lre / rle ) string pdf
+override = ( lro / rlo ) string pdf
+lre = %x202A ; U+202A LEFT-TO-RIGHT EMBEDDING
+rle = %x202B ; U+202B RIGHT-TO-LEFT EMBEDDING
+lro = %x202D ; U+202D LEFT-TO-RIGHT OVERRIDE
+rlo = %x202E ; U+202E RIGHT-TO-LEFT OVERRIDE
+pdf = %x202C ; U+202C POP DIRECTIONAL FORMATTING
+plaintext = *( %x0000-2029 / %x202F-10FFFF )
+ ; any string with no bidirectional-algorithm formatting characters</pre>
+
+ <p class=note>Authors are encouraged to use the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute, the <code><a href=#the-bdo-element>bdo</a></code> element,
+ and the <code><a href=#the-bdi-element>bdi</a></code> element, rather than maintaining the
+ bidirectional-algorithm formatting characters manually. The
+ bidirectional-algorithm formatting characters interact poorly with
+ CSS.</p>
+
+
+
+ <h4 id=wai-aria><span class=secno>3.2.7 </span><dfn>WAI-ARIA</dfn></h4>
+
+ <p>Authors may use the ARIA <code title=attr-aria-role>role</code>
+ and <code title=attr-aria-*>aria-*</code> attributes on <a href=#html-elements>HTML
+ elements</a>, in accordance with the requirements described in
+ the ARIA specifications, except where these conflict with the
+ <span>strong native semantics</span>
+<!--FORK--><!--bug 11557-->
+ or are equal to the <span>default implied ARIA semantics</span>
+<!--FORK--><!--bug 11557-->
+ described below. These exceptions are intended to prevent authors
+ from making assistive technology products report nonsensical states
+ that do not represent the actual state of the document. <a href=#refsARIA>[ARIA]</a></p>
+
+<!--FORK--><!--bug 11557-->
+ <p>Authors must not set the ARIA <code title=attr-aria-role>role</code> and <code title=attr-aria-*>aria-*</code> attributes in a manner that
+ conflicts with the semantics described in the following table,
+ except that the <code title=attr-aria-role-presentation>presentation</code> role may
+ always be used. Authors must not set the ARIA <code title=attr-aria-role>role</code> and <code title=attr-aria-*>aria-*</code> attributes to values that match
+ the <span>default implicit ARIA semantics</span> defined in the
+ following two tables.</p>
+<!--FORK--><!--bug 11557-->
+
+ <div class=impl>
+
+ <p>User agents are required to implement ARIA semantics on all
+ <a href=#html-elements>HTML elements</a>, as defined in the ARIA specifications.
+ The <span>implicit ARIA semantics</span> defined below must be
+ recognized by implementations for the purposes of ARIA processing.
+ <a href=#refsARIAIMPL>[ARIAIMPL]</a></p>
+
+ <p class=note>The ARIA attributes defined in the ARIA
+ specifications, and the <span>strong native semantics</span> and
+ <span>default implicit ARIA semantics</span> defined below, do not
+ have any effect on CSS pseudo-class matching, user interface
+ modalities that don't use assistive technologies, or the default
+ actions of user interaction events as described in this
+ specification.</p> <!-- this is a truism, in that there are no
+ requirements that require that those attributes have such an effect,
+ and no requirements that relax the requirements on those effects
+ such that they could be affected by those attributes -->
+
+ </div>
+
+ <p>The following table defines the <span>strong native
+ semantics</span> and corresponding <span>default implicit ARIA
+ semantics</span> that apply to <a href=#html-elements>HTML elements</a>. Each
+ language feature (element or attribute) in a cell in the first
+ column implies the ARIA semantics (role, states, and/or properties)
+ given in the cell in the second column of the same row. <span class=impl>When multiple rows apply to an element, the role from
+ the last row to define a role must be applied, and the states and
+ properties from all the rows must be combined.</span></p>
+
+ <table id=table-aria-strong><thead><tr><th>Language feature
+ <th><span>Strong native semantics</span> and <span>default implied ARIA semantics</span>
+
+ <tbody><tr><td><code><a href=#the-area-element>area</a></code> element that creates a <a href=#hyperlink>hyperlink</a>
+ <td><code title=attr-aria-role-link>link</code> role
+
+ <tr><td><code><a href=#the-base-element>base</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-datalist-element>datalist</a></code> element
+ <td><code title=attr-aria-role-listbox>listbox</code> role, with the <code title=attr-aria-multiselectable>aria-multiselectable</code> property set to "false"
+
+ <tr><td><code><a href=#the-details-element>details</a></code> element
+ <td><code title=attr-aria-expanded>aria-expanded</code> state set to "true" if the element's <code title=attr-details-open><a href=#attr-details-open>open</a></code> attribute is present, and set to "false" otherwise
+
+ <tr><td><code><a href=#the-head-element>head</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-hgroup-element>hgroup</a></code> element
+ <td><code title=attr-aria-role-heading>heading</code> role, with the <code title=attr-aria-level>aria-level</code> property set to the element's <a href=#outline-depth>outline depth</a>
+
+ <tr><td><code><a href=#the-hr-element>hr</a></code> element
+ <td><code title=attr-aria-role-separator>separator</code> role
+
+ <tr><td><code><a href=#the-html-element>html</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-img-element>img</a></code> element whose <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute's value is empty
+ <td><code title=attr-aria-role-presentation>presentation</code> role
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state
+ <td><code title=attr-aria-checked>aria-checked</code> state set to "mixed" if the element's <code title=dom-input-indeterminate><a href=#dom-input-indeterminate>indeterminate</a></code> IDL attribute is true, or "true" if the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> is true, or "false" otherwise
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#color-state title=attr-input-type-color>Color</a> state
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#date-state title=attr-input-type-date>Date</a> state
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#date-and-time-state title=attr-input-type-datetime>Date and Time</a> state
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#local-date-and-time-state title=attr-input-type-datetime-local>Local Date and Time</a> state
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#e-mail-state title=attr-input-type-email>E-mail</a> state with no <a href=#concept-input-list title=concept-input-list>suggestions source element</a>
+ <td><code title=attr-aria-role-textbox>textbox</code> role, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#file-upload-state title=attr-input-type-file>File Upload</a> state
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#month-state title=attr-input-type-month>Month</a> state
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#number-state title=attr-input-type-number>Number</a> state
+ <td><code title=attr-aria-role-spinbutton>spinbutton</code> role, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute, the <code title=attr-aria-valuemax>aria-valuemax</code> property set to the element's <a href=#concept-input-max title=concept-input-max>maximum</a>, the <code title=attr-aria-valuemin>aria-valuemin</code> property set to the element's <a href=#concept-input-min title=concept-input-min>minimum</a>, and, if the result of applying the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating point number values</a> to the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is a number, with the <code title=attr-aria-valuenow>aria-valuenow</code> property set to that number
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#password-state title=attr-input-type-password>Password</a> state
+ <td><code title=attr-aria-role-textbox>textbox</code> role, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> state
+ <td><code title=attr-aria-checked>aria-checked</code> state set to "true" if the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> is true, or "false" otherwise
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#range-state title=attr-input-type-range>Range</a> state
+ <td><code title=attr-aria-role-slider>slider</code> role, with the <code title=attr-aria-valuemax>aria-valuemax</code> property set to the element's <a href=#concept-input-max title=concept-input-max>maximum</a>, the <code title=attr-aria-valuemin>aria-valuemin</code> property set to the element's <a href=#concept-input-min title=concept-input-min>minimum</a>, and the <code title=attr-aria-valuenow>aria-valuenow</code> property set to the result of applying the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating point number values</a> to the element's <a href=#concept-fe-value title=concept-fe-value>value</a>, if that results in a number, or the <a href=#concept-input-value-default-range title=concept-input-value-default-range>default value</a> otherwise
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#reset-button-state title=attr-input-type-reset>Reset Button</a> state
+ <td><code title=attr-aria-role-button>button</code> role
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#text-state-and-search-state title=attr-input-type-search>Search</a> state with no <a href=#concept-input-list title=concept-input-list>suggestions source element</a>
+ <td><code title=attr-aria-role-textbox>textbox</code> role, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#submit-button-state title=attr-input-type-submit>Submit Button</a> state
+ <td><code title=attr-aria-role-button>button</code> role
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#telephone-state title=attr-input-type-tel>Telephone</a> state with no <a href=#concept-input-list title=concept-input-list>suggestions source element</a>
+ <td><code title=attr-aria-role-textbox>textbox</code> role, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state with no <a href=#concept-input-list title=concept-input-list>suggestions source element</a>
+ <td><code title=attr-aria-role-textbox>textbox</code> role, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a>, <a href=#text-state-and-search-state title=attr-input-type-search>Search</a>, <a href=#telephone-state title=attr-input-type-tel>Telephone</a>, <a href=#url-state title=attr-input-type-url>URL</a>, or <a href=#e-mail-state title=attr-input-type-email>E-mail</a> states with a <a href=#concept-input-list title=concept-input-list>suggestions source element</a>
+ <td><code title=attr-aria-role-combobox>combobox</code> role, with the <code title=attr-aria-owns>aria-owns</code> property set to the same value as the <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute, and the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#time-state title=attr-input-type-time>Time</a> state
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#url-state title=attr-input-type-url>URL</a> state with no <a href=#concept-input-list title=concept-input-list>suggestions source element</a>
+ <td><code title=attr-aria-role-textbox>textbox</code> role, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#week-state title=attr-input-type-week>Week</a> state
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>, with the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element that is <a href=#concept-input-required title=concept-input-required>required</a>
+ <td>The <code title=title-aria-required>aria-required</code> state set to "true"
+
+ <tr><td><code><a href=#the-keygen-element>keygen</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-label-element>label</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-link-element>link</a></code> element that creates a <a href=#hyperlink>hyperlink</a>
+ <td><code title=attr-aria-role-link>link</code> role
+
+ <tr><td><code><a href=#the-menu-element>menu</a></code> element with a <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute in the <a href=#context-menu-state title="context menu state">context menu</a> state
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-menu-element>menu</a></code> element with a <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute in the <a href=#list-state title="list state">list</a> state
+ <td><code title=attr-aria-role-menu>menu</code> role
+
+ <tr><td><code><a href=#the-menu-element>menu</a></code> element with a <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute in the <a href=#toolbar-state title="toolbar state">toolbar</a> state
+ <td><code title=attr-aria-role-toolbar>toolbar</code> role
+
+ <tr><td><code><a href=#the-meta-element>meta</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-meter-element>meter</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-nav-element>nav</a></code> element
+ <td><code title=attr-aria-role-navigation>navigation</code> role
+
+ <tr><td><code><a href=#the-noscript-element>noscript</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-optgroup-element>optgroup</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-option-element>option</a></code> element that is in a <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> or that represents a suggestion in a <code><a href=#the-datalist-element>datalist</a></code> element
+ <td><code title=attr-aria-role-option>option</code> role, with the <code title=attr-aria-selected>aria-selected</code> state set to "true" if the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true, or "false" otherwise.
+
+ <tr><td><code><a href=#the-param-element>param</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-progress-element>progress</a></code> element
+ <td><code title=attr-aria-role-progressbar>progressbar</code> role, with, if the progress bar is determinate, the <code title=attr-aria-valuemax>aria-valuemax</code> property set to the maximum value of the progress bar, the <code title=attr-aria-valuemin>aria-valuemin</code> property set to zero, and the <code title=attr-aria-valuenow>aria-valuenow</code> property set to the current value of the progress bar
+
+ <tr><td><code><a href=#the-script-element>script</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-select-element>select</a></code> element with a <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute
+ <td><code title=attr-aria-role-listbox>listbox</code> role, with the <code title=attr-aria-multiselectable>aria-multiselectable</code> property set to "true"
+
+ <tr><td><code><a href=#the-select-element>select</a></code> element with no <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute
+ <td><code title=attr-aria-role-listbox>listbox</code> role, with the <code title=attr-aria-multiselectable>aria-multiselectable</code> property set to "false"
+
+ <tr><td><code><a href=#the-select-element>select</a></code> element with a <code title=attr-select-required><a href=#attr-select-required>required</a></code> attribute
+ <td>The <code title=title-aria-required>aria-required</code> state set to "true"
+
+ <tr><td><code><a href=#the-source-element>source</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-style-element>style</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-summary-element>summary</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td><code><a href=#the-textarea-element>textarea</a></code> element
+ <td><code title=attr-aria-role-textbox>textbox</code> role, with the <code title=attr-aria-multiline>aria-multiline</code> property set to "true", and the <code title=title-aria-readonly>aria-readonly</code> property set to "true" if the element has a <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code> attribute
+
+ <tr><td><code><a href=#the-textarea-element>textarea</a></code> element with a <code title=attr-textarea-required><a href=#attr-textarea-required>required</a></code> attribute
+ <td>The <code title=title-aria-required>aria-required</code> state set to "true"
+
+ <tr><td><code><a href=#the-title-element>title</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+
+ <tr><td>An element that <a href=#concept-command title=concept-command>defines a command</a>, whose <a href=#command-facet-type title=command-facet-type>Type</a> facet is "checkbox", and that is a descendant of a <code><a href=#the-menu-element>menu</a></code> element whose <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute in the <a href=#list-state title="list state">list</a> state
+ <td><code title=attr-aria-role-menuitemcheckbox>menuitemcheckbox</code> role, with the <code title=attr-aria-checked>aria-checked</code> state set to "true" if the command's <a href=#command-facet-checkedstate title=command-facet-checkedstate>Checked State</a> facet is true, and "false" otherwise
+
+ <tr><td>An element that <a href=#concept-command title=concept-command>defines a command</a>, whose <a href=#command-facet-type title=command-facet-type>Type</a> facet is "command", and that is a descendant of a <code><a href=#the-menu-element>menu</a></code> element whose <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute in the <a href=#list-state title="list state">list</a> state
+ <td><code title=attr-aria-role-menuitem>menuitem</code> role
+
+ <tr><td>An element that <a href=#concept-command title=concept-command>defines a command</a>, whose <a href=#command-facet-type title=command-facet-type>Type</a> facet is "radio", and that is a descendant of a <code><a href=#the-menu-element>menu</a></code> element whose <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute in the <a href=#list-state title="list state">list</a> state
+ <td><code title=attr-aria-role-menuitemradio>menuitemradio</code> role, with the <code title=attr-aria-checked>aria-checked</code> state set to "true" if the command's <a href=#command-facet-checkedstate title=command-facet-checkedstate>Checked State</a> facet is true, and "false" otherwise
+
+ <tr><td>Element that is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>
+ <td>The <code title=title-aria-disabled>aria-disabled</code> state set to "true"
+
+ <tr><td>Element with a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute
+ <td>The <code title=title-aria-hidden>aria-hidden</code> state set to "true"
+
+ <tr><td>Element that is a <a href=#candidate-for-constraint-validation>candidate for constraint validation</a> but that does not <a href=#concept-fv-valid title=concept-fv-valid>satisfy its constraints</a>
+ <td>The <code title=title-aria-invalid>aria-invalid</code> state set to "true"
+
+ </table><p>Some <a href=#html-elements>HTML elements</a> have native semantics that can be
+ overridden. The following table lists these elements and their
+ <span>default implicit ARIA semantics</span>, along with the
+ restrictions that apply to those elements. Each language feature
+ (element or attribute) in a cell in the first column implies, unless
+ otherwise overridden, the ARIA semantic (role, state, or property)
+ given in the cell in the second column of the same row, but this
+ semantic may be overridden under the conditions listed in the cell
+ in the third column of that row. In addition, any element may be
+ given the <code title=attr-aria-role-presentation>presentation</code> role,
+ regardless of the restrictions below.</p>
+
+ <table id=table-aria-weak><thead><tr><th>Language feature
+ <th>Default implied ARIA semantic
+ <th>Restrictions
+
+ <tbody><tr><td><code><a href=#the-a-element>a</a></code> element that creates a <a href=#hyperlink>hyperlink</a>
+ <td><code title=attr-aria-role-link>link</code> role
+ <td>Role must be either <code title=attr-aria-role-link>link</code>, <code title=attr-aria-role-menuitem>menuitem</code>, or <code title=attr-aria-role-tab>tab</code>
+
+ <tr><td><code><a href=#the-address-element>address</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+ <td>If specified, role must be <code title=attr-aria-role-contentinfo>contentinfo</code>
+
+ <tr><td><code><a href=#the-article-element>article</a></code> element
+ <td><code title=attr-aria-role-article>article</code> role
+ <td>Role must be either <code title=attr-aria-role-article>article</code>, <code title=attr-aria-role-document>document</code>, <code title=attr-aria-role-application>application</code>, or <code title=attr-aria-role-main>main</code>
+
+ <tr><td><code><a href=#the-aside-element>aside</a></code> element
+ <td><code title=attr-aria-role-note>note</code> role
+ <td>Role must be either <code title=attr-aria-role-note>note</code>, <code title=attr-aria-role-complementary>complementary</code>, or <code title=attr-aria-role-search>search</code>
+
+ <tr><td><code><a href=#the-audio-element>audio</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+ <td>If specified, role must be <code title=attr-aria-role-application>application</code>
+
+ <tr><td><code><a href=#the-button-element>button</a></code> element
+ <td><code title=attr-aria-role-button>button</code> role
+ <td>Role must be either <code title=attr-aria-role-button>button</code> or <code title=attr-aria-role-menuitem>menuitem</code>
+
+ <tr><td><code><a href=#the-details-element>details</a></code> element
+ <td><code title=attr-aria-role-group>group</code> role
+ <td>Role must be a role that supports <code title=attr-aria-expanded>aria-expanded</code>
+
+ <tr><td><code><a href=#the-embed-element>embed</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+ <td>If specified, role must be either <code title=attr-aria-role-application>application</code>, <code title=attr-aria-role-document>document</code>, or <code title=attr-aria-role-img>img</code>
+
+ <tr><td><code><a href=#the-footer-element>footer</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+ <td>If specified, role must be <code title=attr-aria-role-contentinfo>contentinfo</code>
+
+ <tr><td><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> element that does not have an <code><a href=#the-hgroup-element>hgroup</a></code> ancestor
+ <td><code title=attr-aria-role-heading>heading</code> role, with the <code title=attr-aria-level>aria-level</code> property set to the element's <a href=#outline-depth>outline depth</a>
+ <td>Role must be either <code title=attr-aria-role-heading>heading</code> or <code title=attr-aria-role-tab>tab</code>
+
+ <tr><td><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code> element that does not have an <code><a href=#the-hgroup-element>hgroup</a></code> ancestor
+ <td><code title=attr-aria-role-heading>heading</code> role, with the <code title=attr-aria-level>aria-level</code> property set to the element's <a href=#outline-depth>outline depth</a>
+ <td>Role must be either <code title=attr-aria-role-heading>heading</code> or <code title=attr-aria-role-tab>tab</code>
+
+ <tr><td><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code> element that does not have an <code><a href=#the-hgroup-element>hgroup</a></code> ancestor
+ <td><code title=attr-aria-role-heading>heading</code> role, with the <code title=attr-aria-level>aria-level</code> property set to the element's <a href=#outline-depth>outline depth</a>
+ <td>Role must be either <code title=attr-aria-role-heading>heading</code> or <code title=attr-aria-role-tab>tab</code>
+
+ <tr><td><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code> element that does not have an <code><a href=#the-hgroup-element>hgroup</a></code> ancestor
+ <td><code title=attr-aria-role-heading>heading</code> role, with the <code title=attr-aria-level>aria-level</code> property set to the element's <a href=#outline-depth>outline depth</a>
+ <td>Role must be either <code title=attr-aria-role-heading>heading</code> or <code title=attr-aria-role-tab>tab</code>
+
+ <tr><td><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code> element that does not have an <code><a href=#the-hgroup-element>hgroup</a></code> ancestor
+ <td><code title=attr-aria-role-heading>heading</code> role, with the <code title=attr-aria-level>aria-level</code> property set to the element's <a href=#outline-depth>outline depth</a>
+ <td>Role must be either <code title=attr-aria-role-heading>heading</code> or <code title=attr-aria-role-tab>tab</code>
+
+ <tr><td><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> element that does not have an <code><a href=#the-hgroup-element>hgroup</a></code> ancestor
+ <td><code title=attr-aria-role-heading>heading</code> role, with the <code title=attr-aria-level>aria-level</code> property set to the element's <a href=#outline-depth>outline depth</a>
+ <td>Role must be either <code title=attr-aria-role-heading>heading</code> or <code title=attr-aria-role-tab>tab</code>
+
+ <tr><td><code><a href=#the-header-element>header</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+ <td>If specified, role must be <code title=attr-aria-role-banner>banner</code>
+
+ <tr><td><code><a href=#the-iframe-element>iframe</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+ <td>If specified, role must be either <code title=attr-aria-role-application>application</code>, <code title=attr-aria-role-document>document</code>, or <code title=attr-aria-role-img>img</code>
+
+ <tr><td><code><a href=#the-img-element>img</a></code> element whose <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute's value is absent
+ <td><code title=attr-aria-role-img>img</code> role
+ <td>No restrictions
+
+ <tr><!--!--><!--(there's no reason to convey <img> elements with alt="" text as images to an AT)--><td><code><a href=#the-img-element>img</a></code> element whose <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute's value is present and not empty
+ <td><code title=attr-aria-role-img>img</code> role
+ <td>No restrictions
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#button-state title=attr-input-type-button>Button</a> state
+ <td><code title=attr-aria-role-button>button</code> role
+ <td>Role must be either <code title=attr-aria-role-button>button</code>, <code title=attr-aria-role-link>link</code><!--!-->, <code title=attr-aria-role-menuitem>menuitem</code>, <code title=attr-aria-role-menuitemcheckbox>menuitemcheckbox</code><!--!-->, <code title=attr-aria-role-menuitemradio>menuitemradio</code><!--!-->, <code title=attr-aria-role-radio>radio</code><!--!-->
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state
+ <td><code title=attr-aria-role-checkbox>checkbox</code> role
+ <td>Role must be either <code title=attr-aria-role-checkbox>checkbox</code> or <code title=attr-aria-role-menuitemcheckbox>menuitemcheckbox</code>
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state
+ <td><code title=attr-aria-role-button>button</code> role
+ <td>Role must be either <code title=attr-aria-role-button>button</code>, <code title=attr-aria-role-link>link</code><!--!-->, <code title=attr-aria-role-menuitem>menuitem</code>, <code title=attr-aria-role-menuitemcheckbox>menuitemcheckbox</code><!--!-->, <code title=attr-aria-role-menuitemradio>menuitemradio</code><!--!-->, <code title=attr-aria-role-radio>radio</code><!--!-->
+
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> state
+ <td><code title=attr-aria-role-radio>radio</code> role
+ <td>Role must be either <code title=attr-aria-role-radio>radio</code> or <code title=attr-aria-role-menuitemradio>menuitemradio</code>
+
+ <tr><td><code><a href=#the-li-element>li</a></code> element whose parent is an <code><a href=#the-ol-element>ol</a></code> or <code><a href=#the-ul-element>ul</a></code> element
+ <td><code title=attr-aria-role-listitem>listitem</code> role
+ <td>Role must be either <code title=attr-aria-role-listitem>listitem</code>, <code title=attr-aria-role-menuitemcheckbox>menuitemcheckbox</code>, <code title=attr-aria-role-menuitemradio>menuitemradio</code>, <code title=attr-aria-role-option>option</code>, <code title=attr-aria-role-tab>tab</code>, or <code title=attr-aria-role-treeitem>treeitem</code>
+
+ <tr><td><code><a href=#the-object-element>object</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+ <td>If specified, role must be either <code title=attr-aria-role-application>application</code>, <code title=attr-aria-role-document>document</code>, or <code title=attr-aria-role-img>img</code>
+
+ <tr><td><code><a href=#the-ol-element>ol</a></code> element
+ <td><code title=attr-aria-role-list>list</code> role
+ <td>Role must be either <code title=attr-aria-role-directory>directory</code>, <code title=attr-aria-role-list>list</code>, <code title=attr-aria-role-listbox>listbox</code>, <code title=attr-aria-role-menu>menu</code>, <code title=attr-aria-role-menubar>menubar</code>, <code title=attr-aria-role-tablist>tablist</code>, <code title="attr-aria-role-toolbar ">toolbar</code>, <code title=attr-aria-role-tree>tree</code>
+
+ <tr><td><code><a href=#the-output-element>output</a></code> element
+ <td><code title=attr-aria-role-status>status</code> role
+ <td>No restrictions
+
+ <tr><td><code><a href=#the-section-element>section</a></code> element
+ <td><code title=attr-aria-role-region>region</code> role
+ <td>Role must be either
+ <code title=attr-aria-role-alert>alert</code>,
+ <code title=attr-aria-role-alertdialog>alertdialog</code>,
+ <code title=attr-aria-role-application>application</code>,
+ <code title=attr-aria-role-contentinfo>contentinfo</code>,
+ <code title=attr-aria-role-dialog>dialog</code>,
+ <code title=attr-aria-role-document>document</code>,
+ <code title=attr-aria-role-log>log</code>,
+ <code title=attr-aria-role-main>main</code>,
+ <code title=attr-aria-role-marquee>marquee</code>,
+ <code title=attr-aria-role-region>region</code>,
+ <code title=attr-aria-role-search>search</code>, or
+ <code title=attr-aria-role-status>status</code>
+
+ <tr><td><code><a href=#the-ul-element>ul</a></code> element
+ <td><code title=attr-aria-role-list>list</code> role
+ <td>Role must be either <code title=attr-aria-role-directory>directory</code>, <code title=attr-aria-role-list>list</code>, <code title=attr-aria-role-listbox>listbox</code>, <code title=attr-aria-role-menu>menu</code>, <code title=attr-aria-role-menubar>menubar</code>, <code title=attr-aria-role-tablist>tablist</code>, <code title="attr-aria-role-toolbar ">toolbar</code>, <code title=attr-aria-role-tree>tree</code>
+
+ <tr><td><code><a href=#the-video-element>video</a></code> element
+ <td><a href=#concept-role-none title=concept-role-none>No role</a>
+ <td>If specified, role must be <code title=attr-aria-role-application>application</code>
+
+ <tr><td><a href=#the-body-element-0>The body element</a>
+ <td><code title=attr-aria-role-document>document</code> role
+ <td>Role must be either <code title=attr-aria-role-document>document</code> or <code title=attr-aria-role-application>application</code>
+
+ </table><p>The entry "<dfn id=concept-role-none title=concept-role-none>no role</dfn>", when
+ used as a <span title="strong native semantics">strong native
+ semantic</span>, means that no role other than <code title=attr-aria-role-presentation>presentation</code> can be used.
+ When used as a <span title="default implied ARIA semantics">default
+ implied ARIA semantic</span>, it means the user agent has no default
+ mapping to ARIA roles. (However, it probably will have its own
+ mappings to the accessibility layer.)</p>
+
+ <div class=impl>
+
+
+ <p>Conformance checkers are encouraged to phrase errors such that
+ authors are encouraged to use more appropriate elements rather than
+ remove accessibility annotations. For example, if an <code><a href=#the-a-element>a</a></code>
+ element is marked as having the <code title=attr-aria-role-button>button</code> role, a conformance
+ checker could say "Use a more appropriate element to represent a
+ button, for example a <code><a href=#the-button-element>button</a></code> element or an
+ <code><a href=#the-input-element>input</a></code> element" rather than "The <code title=attr-aria-role-button>button</code> role cannot be used with
+ <code><a href=#the-a-element>a</a></code> elements".</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>These features can be used to make accessibility tools render
+ content to their users in more useful ways. For example, ASCII art,
+ which is really an image, appears to be text, and in the absence of
+ appropriate annotations would end up being rendered by screen
+ readers as a very painful reading of lots of punctuation. Using the
+ features described in this section, one can instead make the ATs
+ skip the ASCII art and just read the caption:</p>
+
+ <pre>&lt;figure <strong>role="img" aria-labelledby="fish-caption"</strong>&gt; <!-- that's "labelled" with TWO "l"s -->
+ &lt;pre&gt;
+ o .'`/
+ ' / (
+ O .-'` ` `'-._ .')
+ _/ (o) '. .' /
+ ) ))) &gt;&lt; &lt;
+ `\ |_\ _.' '. \
+ '-._ _ .-' '.)
+ jgs `\__\
+ &lt;/pre&gt;
+ &lt;figcaption <strong>id="fish-caption"</strong>&gt;
+ Joan G. Stark, "&lt;cite&gt;fish&lt;/cite&gt;".
+ October 1997. ASCII on electrons. 28&times;8.
+ &lt;/figcaption&gt;
+&lt;/figure&gt;
+ </pre>
+
+ <!-- source: http://www.geocities.com/SoHo/7373/aquatic.htm#fish -->
+
+ </div>
+
+
+
+ <div class=impl>
+
+ <h3 id=interactions-with-xpath-and-xslt><span class=secno>3.3 </span>Interactions with XPath and XSLT</h3>
+
+ <p id=xpath-1.0-processors>Implementations of XPath 1.0 that
+ operate on <a href=#html-documents>HTML documents</a> parsed or created in the
+ manners described in this specification (e.g. as part of the <code title="">document.evaluate()</code> API) must act as if the
+ following edit was applied to the XPath 1.0 specification.</p>
+
+ <p>First, remove this paragraph:</p>
+
+ <blockquote cite=http://www.w3.org/TR/1999/REC-xpath-19991116#node-tests>
+
+ <p>A <a href=http://www.w3.org/TR/REC-xml-names#NT-QName>QName</a> in the
+ node test is expanded into an <a href=http://www.w3.org/TR/1999/REC-xpath-19991116#dt-expanded-name>expanded-name</a>
+ using the namespace declarations from the expression context. This
+ is the same way expansion is done for element type names in start
+ and end-tags except that the default namespace declared with <code title="">xmlns</code> is not used: if the <a href=http://www.w3.org/TR/REC-xml-names#NT-QName>QName</a> does
+ not have a prefix, then the namespace URI is null (this is the same
+ way attribute names are expanded). It is an error if the <a href=http://www.w3.org/TR/REC-xml-names#NT-QName>QName</a> has a
+ prefix for which there is no namespace declaration in the
+ expression context.</p>
+
+ </blockquote>
+
+ <p>Then, insert in its place the following:</p>
+
+ <blockquote cite="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7059#c37">
+
+ <p>A QName in the node test is expanded into an expanded-name using
+ the namespace declarations from the expression context. If the
+ QName has a prefix, then there must be a<!-- added 2009-10-27 -
+ http://www.w3.org/Bugs/Public/show_bug.cgi?id=8062 --> namespace
+ declaration for this prefix in the expression context, and the
+ corresponding<!-- typo fixed 2009-10-27 -
+ http://www.w3.org/Bugs/Public/show_bug.cgi?id=8063 --> namespace
+ URI is the one that is associated with this prefix. It is an error
+ if the QName has a prefix for which there is no namespace
+ declaration in the expression context. </p>
+
+ <p>If the QName has no prefix and the principal node type of the
+ axis is element, then the default element namespace is
+ used. Otherwise if the QName has no prefix, the namespace URI is
+ null. The default element namespace is a member of the context for
+ the XPath expression. The value of the default element namespace
+ when executing an XPath expression through the DOM3 XPath API is
+ determined in the following way:</p>
+
+ <ol><li>If the context node is from an HTML DOM, the default element
+ namespace is "http://www.w3.org/1999/xhtml".</li>
+
+ <li>Otherwise, the default element namespace URI is null.</li>
+
+ </ol><p class=note>This is equivalent to adding the default element
+ namespace feature of XPath 2.0 to XPath 1.0, and using the HTML
+ namespace as the default element namespace for HTML documents. It
+ is motivated by the desire to have implementations be compatible
+ with legacy HTML content while still supporting the changes that
+ this specification introduces to HTML regarding the namespace used
+ for HTML elements, and by the desire to use XPath 1.0 rather than
+ XPath 2.0.</p>
+
+ </blockquote>
+
+ <p class=note>This change is a <a href=#willful-violation>willful violation</a> of
+ the XPath 1.0 specification, motivated by desire to have
+ implementations be compatible with legacy content while still
+ supporting the changes that this specification introduces to HTML
+ regarding which namespace is used for HTML elements. <a href=#refsXPATH10>[XPATH10]</a></p> <!-- note: version matters for
+ this ref -->
+
+ <hr><p id=dom-based-xslt-1.0-processors>XSLT 1.0 processors outputting
+ to a DOM when the output method is "html" (either explicitly or via
+ the defaulting rule in XSLT 1.0) are affected as follows:</p>
+
+ <p>If the transformation program outputs an element in no namespace,
+ the processor must, prior to constructing the corresponding DOM
+ element node, change the namespace of the element to the <a href=#html-namespace-0>HTML
+ namespace</a>, <a href=#converted-to-ascii-lowercase title="converted to ASCII
+ lowercase">ASCII-lowercase</a> the element's local name, and
+ <a href=#converted-to-ascii-lowercase title="converted to ASCII lowercase">ASCII-lowercase</a>
+ the names of any non-namespaced attributes on the element.</p>
+
+ <p class=note>This requirement is a <a href=#willful-violation>willful violation</a>
+ of the XSLT 1.0 specification, required because this specification
+ changes the namespaces and case-sensitivity rules of HTML in a
+ manner that would otherwise be incompatible with DOM-based XSLT
+ transformations. (Processors that serialize the output are
+ unaffected.) <a href=#refsXSLT10>[XSLT10]</a></p> <!-- note:
+ version matters for this ref -->
+
+ <p class=note>There are also additional comments regarding the
+ interaction of XSLT and HTML <a href=#scriptTagXSLT>in the
+ <code>script</code> element section</a>.</p>
+
+ </div>
+
+
+ <h3 id=dynamic-markup-insertion><span class=secno>3.4 </span><dfn>Dynamic markup insertion</dfn></h3>
+
+ <p class=note>APIs for dynamically inserting markup into the
+ document interact with the parser, and thus their behavior varies
+ depending on whether they are used with <a href=#html-documents>HTML documents</a>
+ (and the <a href=#html-parser>HTML parser</a>) or XHTML in <a href=#xml-documents>XML
+ documents</a> (and the <a href=#xml-parser>XML parser</a>).</p>
+
+
+
+ <h4 id=opening-the-input-stream><span class=secno>3.4.1 </span>Opening the input stream</h4>
+
+ <p>The <dfn id=dom-document-open title=dom-document-open><code>open()</code></dfn>
+ method comes in several variants with different numbers of
+ arguments.</p>
+
+ <dl class=domintro><dt><var title="">document</var> = <var title="">document</var> . <code title=dom-document-open><a href=#dom-document-open>open</a></code>( [ <var title="">type</var> [, <var title="">replace</var> ] ] )</dt>
+
+ <dd>
+
+ <p>Causes the <code><a href=#document>Document</a></code> to be replaced in-place, as if
+ it was a new <code><a href=#document>Document</a></code> object, but reusing the
+ previous object, which is then returned.</p>
+
+ <p>If the <var title="">type</var> argument is omitted or has the
+ value "<code><a href=#text/html>text/html</a></code>", then the resulting
+ <code><a href=#document>Document</a></code> has an HTML parser associated with it, which
+ can be given data to parse using <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code>. Otherwise, all
+ content passed to <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> will be parsed
+ as plain text.</p>
+
+ <p>If the <var title="">replace</var> argument is present and has
+ the value "<code title="">replace</code>", the existing entries in
+ the session history for the <code><a href=#document>Document</a></code> object are
+ removed.</p>
+
+ <p>The method has no effect if the <code><a href=#document>Document</a></code> is still
+ being parsed.</p>
+
+ <p>Throws an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception if the
+ <code><a href=#document>Document</a></code> is an <a href=#xml-documents title="XML documents">XML
+ document</a>.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> = <var title="">document</var> . <code title=dom-document-open><a href=#dom-document-open>open</a></code>( <var title="">url</var>, <var title="">name</var>, <var title="">features</var> [, <var title="">replace</var> ] )</dt>
+
+ <dd>
+
+ <p>Works like the <code title=dom-open><a href=#dom-open>window.open()</a></code>
+ method.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>When called with two or fewer arguments, the method must act as
+ follows:</p>
+
+ <ol><li>If the <code><a href=#document>Document</a></code> object is not flagged as an <a href=#html-documents title="HTML documents">HTML document</a>, throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception and abort these
+ steps.</li>
+
+ <li><p>Let <var title="">type</var> be the value of the first
+ argument, if there is one, or "<code><a href=#text/html>text/html</a></code>"
+ otherwise.</li>
+
+ <li><p>Let <var title="">replace</var> be true if there is a second
+ argument and it is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for
+ the value "replace", and false otherwise.</li>
+
+ <li>
+
+ <p>If the document has an <a href=#active-parser>active parser</a> that isn't a
+ <a href=#script-created-parser>script-created parser</a>, and the <a href=#insertion-point>insertion
+ point</a> associated with that parser's <a href=#the-input-stream>input
+ stream</a> is not undefined (that is, it <em>does</em> point to
+ somewhere in the input stream), then the method does
+ nothing. Abort these steps and return the <code><a href=#document>Document</a></code>
+ object on which the method was invoked.</p>
+
+ <p class=note>This basically causes <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code> to be ignored
+ when it's called in an inline script found during the parsing of
+ data sent over the network, while still letting it have an effect
+ when called asynchronously or on a document that is itself being
+ spoon-fed using these APIs.</p>
+
+ </li>
+
+ <li><p>Release the <a href=#storage-mutex>storage mutex</a>.</li>
+
+ <li><p>Set the <code><a href=#document>Document</a></code>'s <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state to
+ false.</li>
+
+ <li><p><a href=#prompt-to-unload-a-document title="prompt to unload a document">Prompt to
+ unload</a> the <code><a href=#document>Document</a></code> object. If the user
+ <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be unloaded</a>, then
+ these steps must be aborted.</li>
+
+ <li><p><a href=#unload-a-document title="unload a document">Unload</a> the
+ <code><a href=#document>Document</a></code> object, with the <var title="">recycle</var>
+ parameter set to true.</li>
+
+ <li><p><a href=#abort-a-document title="abort a document">Abort</a> the
+ <code><a href=#document>Document</a></code>.</li>
+
+ <li><p>Unregister all event listeners registered on the
+ <code><a href=#document>Document</a></code> node and its descendants.</p>
+
+ <li><p>Remove any <a href=#concept-task title=concept-task>tasks</a>
+ associated with the <code><a href=#document>Document</a></code> in any <a href=#task-source>task
+ source</a>.</li> <!-- removes callbacks that fired between
+ this algorithm starting and the times and databases being aborted
+ in the "unload" step above -->
+
+ <li><p>Remove all child nodes of the document, without firing any
+ mutation events.</li> <!-- as of 2009-03-30, only WebKit fired
+ mutation events here. -->
+
+ <li><p>Replace the <code><a href=#document>Document</a></code>'s singleton objects with
+ new instances of those objects. (This includes in particular the
+ <code><a href=#window>Window</a></code>, <code><a href=#location>Location</a></code>, <code><a href=#history-0>History</a></code>,
+ <code><a href=#applicationcache>ApplicationCache</a></code>, and <code><a href=#navigator>Navigator</a></code>, objects,
+ the various <code><a href=#barprop>BarProp</a></code> objects, the two
+ <code><a href=#storage-0>Storage</a></code> objects, the various
+ <code><a href=#htmlcollection>HTMLCollection</a></code> objects, and objects defined by other
+ specifications, like <code>Selection</code> and the document's
+ <code>UndoManager</code>. It also includes all the Web IDL
+ prototypes in the JavaScript binding, including the
+ <code><a href=#document>Document</a></code> object's prototype.)</li>
+
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Ciframe%20src%3D%22document%22%3E%3C%2Fiframe%3E%0A%3Cscript%3Eonload%20%3D%20function%20()%20%7B%20f%20%3D%20document.getElementsByTagName('iframe')%5B0%5D%3B%20d%20%3D%20f.contentWindow.document%3B%20%7D%3C%2Fscript%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22w(d.documentElement.innerHTML)%22%20value%3D%22dump%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cscript%3Evar%20x%20%3D%20new%20XMLHttpRequest()%3Bx.open(%26quot%3BGET%26quot%3B%2C%20%26quot%3BGET%26quot%3B)%3Bx.onreadystatechange%3Dfunction()%20%7B%20alert(x.readyState)%3B%20%7D%3Bx.send(null)%3B%3C%2Fscript%3E')%3Bd.close()%3B%20setTimeout(function()%20%7B%20d.open()%3B%20d.write('%3Cp%3Etest%3C%2Fp%3E')%3B%20d.close()%20%7D%2C%200)%3B%22%20value%3D%22xhr%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.onclick%20%3D%20function()%20%7B%20w('click')%20%7D%22%20value%3D%22add%20click%20handler%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cp%3Etest%3C%2Fp%3E')%3B%20d.close()%22%20value%3D%22replace%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cp%3E%3Cscript%3Ei%20%3D%200%3B%20setTimeout(%26quot%3Bparent.w(i%2B%2B)%26quot%3B%2C%202000)%3C%2Fscript%3E%3C%2Fp%3E')%3B%20d.close()%22%20value%3D%22replace%20with%20timer%22%3E -->
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0D%0A...%3Ciframe%3E%3C%2Fiframe%3E%0D%0A%3Cscript%3E%0D%0Aonload%20%3D%20function%20()%20%7B%0D%0A%20frames%5B0%5D.test%20%3D%201%0D%0A%20w(frames%5B0%5D.test)%3B%0D%0A%20var%20a%20%3D%20frames%5B0%5D.document.location.assign%3B%0D%0A%20w(a)%3B%0D%0A%20w(frames%5B0%5D.document.location.assign%20%3D%3D%3D%20a)%3B%0D%0A%20frames%5B0%5D.document.open()%3B%0D%0A%20frames%5B0%5D.document.write('%3Cscript%3Edocument.write(test)%3C%5C%2Fscript%3E')%3B%0D%0A%20frames%5B0%5D.document.close()%3B%0D%0A%20w(frames%5B0%5D.test)%3B%0D%0A%20w(frames%5B0%5D.document.location.assign%20%3D%3D%3D%20a)%3B%0D%0A%7D%0D%0A%3C%2Fscript%3E -->
+
+ <li><p>Change the <a href="#document's-character-encoding">document's character encoding</a> to
+ UTF-8.</li>
+
+ <li><p>Set the <code><a href=#document>Document</a></code> object's <a href=#reload-override-flag>reload override
+ flag</a> and set the <code><a href=#document>Document</a></code>'s <a href=#reload-override-buffer>reload
+ override buffer</a> to the empty string.</li>
+
+ <li><p>Set the <code><a href=#document>Document</a></code>'s <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state back
+ to true.</li>
+
+ <li><p>Change <a href="#the-document's-address">the document's address</a> to the
+ <a href=#entry-script>entry script</a>'s <a href="#script's-document" title="script's
+ document">document</a>'s <a href="#the-document's-address" title="the document's
+ address">address</a>.</li>
+
+ <li><p>Create a new <a href=#html-parser>HTML parser</a> and associate it with
+ the document. This is a <dfn id=script-created-parser>script-created parser</dfn> (meaning
+ that it can be closed by the <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code> and <code title=dom-document-close><a href=#dom-document-close>document.close()</a></code> methods, and
+ that the tokenizer will wait for an explicit call to <code title=dom-document-close><a href=#dom-document-close>document.close()</a></code> before emitting
+ an end-of-file token). The encoding <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> is
+ <i>irrelevant</i>.</li>
+
+ <li><p>Set the <a href=#current-document-readiness>current document readiness</a> of the
+ document to "loading".</li>
+
+ <li>
+
+ <!-- text/plain handling -->
+
+ <p>If the <var title="">type</var> string contains a U+003B
+ SEMICOLON character (;), remove the first such character and all
+ characters from it up to the end of the string.</p>
+
+ <li><p><a href=#strip-leading-and-trailing-whitespace>Strip leading and trailing whitespace</a> from
+ <var title="">type</var>.</p>
+
+ <p>If <var title="">type</var> is <em>not</em> now an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string
+ "<code><a href=#text/html>text/html</a></code>", then act as if the tokenizer had emitted
+ a start tag token with the tag name "pre" followed by a single
+ U+000A LINE FEED (LF) character<!-- to get eaten, so that a
+ leading LF in the written text doesn't get eaten itself-->, then
+ switch the <a href=#html-parser>HTML parser</a>'s tokenizer to the
+ <a href=#plaintext-state>PLAINTEXT state</a>.</p>
+
+ <!--
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Ciframe%3E%3C%2Fiframe%3E%3Cscript%3Eonload%20%3D%20function%20()%20%7B%20%0D%0A%20%20var%20d%20%3D%20document.getElementsByTagName('iframe')%5B0%5D.contentDocument%3B%0D%0A%20%20d.open('image%2Fsvg%2Bxml')%3B%0D%0A%20%20d.write(%22%3Cinput%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml'%20value%3D'(x)html'%2F%3E%22)%3B%0D%0A%20%20d.close()%3B%0D%0A%7D%3B%3C%2Fscript%3E
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Ciframe%3E%3C%2Fiframe%3E%3Cscript%3Eonload%20%3D%20function%20()%20%7B%20%0D%0A%20%20var%20d%20%3D%20document.getElementsByTagName('iframe')%5B0%5D.contentDocument%3B%0D%0A%20%20d.open('image%2Fgif')%3B%0D%0A%20%20var%20a%20%3D%20%5B%200x47%2C%200x49%2C%200x46%2C%200x38%2C%200x39%2C%200x61%2C%200x01%2C%200x00%2C%200x01%2C%200x00%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%200x80%2C%200xff%2C%200x00%2C%200xc0%2C%200xc0%2C%200xc0%2C%200x00%2C%200x00%2C%200x00%2C%200x21%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%200xf9%2C%200x04%2C%200x01%2C%200x00%2C%200x00%2C%200x00%2C%200x00%2C%200x2c%2C%200x00%2C%200x00%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%200x00%2C%200x00%2C%200x01%2C%200x00%2C%200x01%2C%200x00%2C%200x00%2C%200x02%2C%200x02%2C%200x44%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%200x01%2C%200x00%2C%200x3b%20%5D%3B%0D%0A%20%20var%20s%20%3D%20%22%22%3B%0D%0A%20%20for%20(var%20i%20%3D%200%3B%20i%20%3C%20a.length%3B%20i%20%2B%3D%201)%0D%0A%20%20%20%20s%20%2B%3D%20String.fromCharCode(a%5Bi%5D)%3B%0D%0A%20%20d.write(s)%3B%0D%0A%20%20d.close()%3B%0D%0A%7D%3B%3C%2Fscript%3E
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Ciframe%3E%3C%2Fiframe%3E%3Cscript%3Eonload%20%3D%20function%20()%20{%20%0A%20%20var%20d%20%3D%20document.getElementsByTagName(%27iframe%27)[0].contentDocument%3B%0A%20%20d.open(%27Text%2Fplain%27)%3B%0A%20%20d.write(%27%3Cb%3Etest%27)%3B%0A%20%20d.close()%3B%0A}%3B%3C%2Fscript%3E
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Ciframe%3E%3C%2Fiframe%3E%3Cscript%3Eonload%20%3D%20function%20()%20{%20%0A%20%20var%20d%20%3D%20document.getElementsByTagName(%27iframe%27)[0].contentDocument%3B%0A%20%20d.open(%27%20text%2Fplain%27)%3B%0A%20%20d.write(%27%3Cb%3Etest%27)%3B%0A%20%20d.close()%3B%0A}%3B%3C%2Fscript%3E
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Ciframe%3E%3C%2Fiframe%3E%3Cscript%3Eonload%20%3D%20function%20()%20{%20%0A%20%20var%20d%20%3D%20document.getElementsByTagName(%27iframe%27)[0].contentDocument%3B%0A%20%20d.open(%27text%2Fplain%3B%27)%3B%0A%20%20d.write(%27%3Cb%3Etest%27)%3B%0A%20%20d.close()%3B%0A}%3B%3C%2Fscript%3E
+ -->
+
+ </li>
+
+ <li>
+
+ <p>Remove all the entries in the <a href=#browsing-context>browsing context</a>'s
+ <a href=#session-history>session history</a> after the <a href=#current-entry>current
+ entry</a>. If the <a href=#current-entry>current entry</a> is the last entry
+ in the session history, then no entries are removed.</p>
+
+ <p class=note>This <a href=#history-notes>doesn't necessarily
+ have to affect</a> the user agent's user interface.</p>
+
+ </li>
+
+ <li><p>Remove any <a href=#concept-task title=concept-task>tasks</a> queued by
+ the <a href=#history-traversal-task-source>history traversal task source</a>.</li>
+
+ <li>Remove any earlier entries that share the same
+ <code><a href=#document>Document</a></code>.</li>
+
+ <li><p>If <var title="">replace</var> is false, then add a new
+ entry, just before the last entry, and associate with the new entry
+ the text that was parsed by the previous parser associated with the
+ <code><a href=#document>Document</a></code> object, as well as the state of the document
+ at the start of these steps. This allows the user to step backwards
+ in the session history to see the page before it was blown away by
+ the <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code> call.
+ This new entry does not have a <code><a href=#document>Document</a></code> object, so a
+ new one will be created if the session history is traversed to that
+ entry.</li>
+
+ <li><p>Finally, set the <a href=#insertion-point>insertion point</a> to point at
+ just before the end of the <a href=#the-input-stream>input stream</a> (which at this
+ point will be empty).</li>
+
+ <li><p>Return the <code><a href=#document>Document</a></code> on which the method was
+ invoked.</li>
+
+ </ol><p class=note>The <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code> method does not
+ affect whether a <code><a href=#document>Document</a></code> is <a href=#ready-for-post-load-tasks>ready for post-load
+ tasks</a> or <a href=#completely-loaded>completely loaded</a>.</p>
+
+ <p>When called with three or more arguments, the <code title=dom-document-open><a href=#dom-document-open>open()</a></code> method on the
+ <code><a href=#htmldocument>HTMLDocument</a></code> object must call the <code title=dom-open><a href=#dom-open>open()</a></code> method on the <code><a href=#window>Window</a></code>
+ object of the <code><a href=#htmldocument>HTMLDocument</a></code> object, with the same
+ arguments as the original call to the <code title=dom-document-open><a href=#dom-document-open>open()</a></code> method, and return whatever
+ that method returned. If the <code><a href=#htmldocument>HTMLDocument</a></code> object has no
+ <code><a href=#window>Window</a></code> object, then the method must throw an
+ <code><a href=#invalidaccesserror>InvalidAccessError</a></code> exception.</p>
+
+ </div>
+
+
+
+ <h4 id=closing-the-input-stream><span class=secno>3.4.2 </span>Closing the input stream</h4>
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-close><a href=#dom-document-close>close</a></code>()</dt>
+
+ <dd>
+
+ <p>Closes the input stream that was opened by the <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code> method.</p>
+
+ <p>Throws an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception if the
+ <code><a href=#document>Document</a></code> is an <a href=#xml-documents title="XML documents">XML
+ document</a>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-close title=dom-document-close><code>close()</code></dfn>
+ method must run the following steps:</p>
+
+ <ol><li><p>If the <code><a href=#document>Document</a></code> object is not flagged as an
+ <a href=#html-documents title="HTML documents">HTML document</a>, throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception and abort these
+ steps.</li>
+
+ <li><p>If there is no <a href=#script-created-parser>script-created parser</a> associated
+ with the document, then abort these steps.</li>
+
+ <li><p>Insert an <a href=#explicit-eof-character>explicit "EOF" character</a> at the end
+ of the parser's <a href=#the-input-stream>input stream</a>.</li>
+
+ <li><p>If there is a <a href=#pending-parsing-blocking-script>pending parsing-blocking script</a>,
+ then abort these steps.</li>
+
+ <li><p>Run the tokenizer, processing resulting tokens as they are
+ emitted, and stopping when the tokenizer reaches the <a href=#explicit-eof-character>explicit
+ "EOF" character</a> or <a href=#spin-the-event-loop title="spin the event loop">spins
+ the event loop</a>.</li>
+
+ </ol></div>
+
+
+
+ <h4 id=document.write()><span class=secno>3.4.3 </span><code title=dom-document-write><a href=#dom-document-write>document.write()</a></code></h4>
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-write><a href=#dom-document-write>write</a></code>(<var title="">text</var>...)</dt>
+
+ <dd>
+
+ <p>In general, adds the given string(s) to the
+ <code><a href=#document>Document</a></code>'s input stream.</p>
+
+ <p class=warning>This method has very idiosyncratic behavior. In
+ some cases, this method can affect the state of the <a href=#html-parser>HTML
+ parser</a> while the parser is running, resulting in a DOM that
+ does not correspond to the source of the document. In other cases,
+ the call can clear the current page first, as if <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code> had been called.
+ In yet more cases, the method is simply ignored, or throws an
+ exception. To make matters worse, the exact behavior of this
+ method can in some cases be dependent on network latency, which
+ can lead to failures that are very hard to debug. <strong>For all
+ these reasons, use of this method is strongly
+ discouraged.</strong></p>
+
+ <p>This method throws an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception
+ when invoked on <a href=#xml-documents>XML documents</a>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p><code><a href=#document>Document</a></code> objects have an
+ <dfn id=ignore-destructive-writes-counter>ignore-destructive-writes counter</dfn>, which is used in
+ conjunction with the processing of <code><a href=#the-script-element>script</a></code> elements to
+ prevent external scripts from being able to use <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> to blow away the
+ document by implicitly calling <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code>. Initially, the
+ counter must be set to zero.</p>
+
+ <p>The <dfn id=dom-document-write title=dom-document-write><code>document.write(...)</code></dfn>
+ method must act as follows:</p>
+
+ <ol><li>
+
+ <p>If the method was invoked on an <a href=#xml-documents title="XML documents">XML
+ document</a>, throw an <code><a href=#invalidstateerror>InvalidStateError</a></code>
+ exception and abort these steps.</p>
+
+ <!--
+ Where would document.write() insert?
+ Consider: data:text/xml,<script xmlns="http://www.w3.org/1999/xhtml"><![CDATA[ document.write('<foo>Test</foo>'); ]]></script>
+ -->
+
+ </li>
+
+ <li>
+
+ <p>If the <a href=#insertion-point>insertion point</a> is undefined and the
+ <code><a href=#document>Document</a></code>'s <a href=#ignore-destructive-writes-counter>ignore-destructive-writes
+ counter</a> is greater than zero, then abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <a href=#insertion-point>insertion point</a> is undefined, call the
+ <code title=dom-document-open><a href=#dom-document-open>open()</a></code> method on the <code title=Document><a href=#document>document</a></code> object (with no arguments). If
+ the user <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be
+ unloaded</a>, then abort these steps. Otherwise, the
+ <a href=#insertion-point>insertion point</a> will point at just before the end of
+ the (empty) <a href=#the-input-stream>input stream</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Insert the string consisting of the concatenation of all the
+ arguments to the method into the <a href=#the-input-stream>input stream</a> just
+ before the <a href=#insertion-point>insertion point</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <code><a href=#document>Document</a></code> object's <a href=#reload-override-flag>reload override
+ flag</a> is set, then append the string consisting of the
+ concatenation of all the arguments to the method to the
+ <code><a href=#document>Document</a></code>'s <a href=#reload-override-buffer>reload override buffer</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there is no <a href=#pending-parsing-blocking-script>pending parsing-blocking script</a>,
+ have the tokenizer process the characters that were inserted, one
+ at a time, processing resulting tokens as they are emitted, and
+ stopping when the tokenizer reaches the insertion point or when
+ the processing of the tokenizer is aborted by the tree
+ construction stage (this can happen if a <code><a href=#the-script-element>script</a></code> end
+ tag token is emitted by the tokenizer).
+
+ <p class=note>If the <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> method was
+ called from script executing inline (i.e. executing because the
+ parser parsed a set of <code><a href=#the-script-element>script</a></code> tags), then this is a
+ <a href=#nestedParsing>reentrant invocation of the
+ parser</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Finally, return from the method.</p>
+
+ </li>
+
+ </ol></div>
+
+
+ <h4 id=document.writeln()><span class=secno>3.4.4 </span><code title=dom-document-writeln><a href=#dom-document-writeln>document.writeln()</a></code></h4>
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-writeln><a href=#dom-document-writeln>writeln</a></code>(<var title="">text</var>...)</dt>
+
+ <dd>
+
+ <p>Adds the given string(s) to the <code><a href=#document>Document</a></code>'s input
+ stream, followed by a newline character. If necessary, calls the
+ <code title=dom-document-open><a href=#dom-document-open>open()</a></code> method implicitly
+ first.</p>
+
+ <p>This method throws an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception
+ when invoked on <a href=#xml-documents>XML documents</a>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-writeln title=dom-document-writeln><code>document.writeln(...)</code></dfn>
+ method, when invoked, must act as if the <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> method had been
+ invoked with the same argument(s), plus an extra argument consisting
+ of a string containing a single line feed character (U+000A).</p>
+
+ </div>
+
+
+
+
+ <h2 id=semantics><span class=secno>4 </span>The elements of HTML</h2>
+
+ <h3 id=the-root-element><span class=secno>4.1 </span>The root element</h3>
+
+ <h4 id=the-html-element><span class=secno>4.1.1 </span>The <dfn><code>html</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As the root element of a document.</dd>
+ <dd>Wherever a subdocument fragment is allowed in a compound document.</dd>
+ <dt>Content model:</dt>
+ <dd>A <code><a href=#the-head-element>head</a></code> element followed by a <code><a href=#the-body-element>body</a></code> element.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlhtmlelement>HTMLHtmlElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-html-element>html</a></code> element <a href=#represents>represents</a> the root of
+ an HTML document.</p>
+
+ <p>The <dfn id=attr-html-manifest title=attr-html-manifest><code>manifest</code></dfn>
+ attribute gives the address of the document's <a href=#application-cache>application
+ cache</a> <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a>, if there is
+ one. If the attribute is present, the attribute's value must be a
+ <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
+ spaces</a>.</p>
+
+ <p>The <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute
+ only <a href=#concept-appcache-init title=concept-appcache-init>has an effect</a> during
+ the early stages of document load. Changing the attribute
+ dynamically thus has no effect (and thus, no DOM API is provided for
+ this attribute).</p>
+
+ <p class=note>For the purposes of <a href=#concept-appcache-init title=concept-appcache-init>application cache selection</a>,
+ later <code><a href=#the-base-element>base</a></code> elements cannot affect the <a href=#resolve-a-url title="resolve a url">resolving of relative URLs</a> in <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attributes, as the
+ attributes are processed before those elements are seen.</p>
+
+ <p class=note>The <code title=dom-applicationCache><a href=#dom-applicationcache>window.applicationCache</a></code> IDL
+ attribute provides scripted access to the offline <a href=#application-cache>application
+ cache</a> mechanism.</p>
+
+ <div class=example>
+
+ <p>The <code><a href=#the-html-element>html</a></code> element in the following example declares
+ that the document's language is English.</p>
+
+ <pre>&lt;!DOCTYPE html&gt;
+<strong>&lt;html lang="en"&gt;</strong>
+&lt;head&gt;
+&lt;title&gt;Swapping Songs&lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;h1&gt;Swapping Songs&lt;/h1&gt;
+&lt;p&gt;Tonight I swapped some of the songs I wrote with some friends, who
+gave me some of the songs they wrote. I love sharing my music.&lt;/p&gt;
+&lt;/body&gt;
+<strong>&lt;/html&gt;</strong></pre>
+
+ </div>
+
+
+
+
+ <h3 id=document-metadata><span class=secno>4.2 </span>Document metadata</h3>
+
+ <h4 id=the-head-element><span class=secno>4.2.1 </span>The <dfn><code>head</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As the first element in an <code><a href=#the-html-element>html</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd>If the document is <a href=#an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a> or if title information is available from a higher-level protocol: Zero or more elements of <a href=#metadata-content>metadata content</a>.</dd>
+ <dd>Otherwise: One or more elements of <a href=#metadata-content>metadata content</a>, of which exactly one is a <code><a href=#the-title-element>title</a></code> element.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlheadelement>HTMLHeadElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-head-element>head</a></code> element <a href=#represents>represents</a> a
+ collection of metadata for the <code><a href=#document>Document</a></code>.</p>
+
+ <div class=example>
+
+ <p>The collection of metadata in a <code><a href=#the-head-element>head</a></code> element can be
+ large or small. Here is an example of a very short one:</p>
+
+ <pre>&lt;!doctype html&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;A document with a short head&lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ ...</pre>
+
+ <p>Here is an example of a longer one:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;HTML&gt;
+ &lt;HEAD&gt;
+ &lt;META CHARSET="UTF-8"&gt;
+ &lt;BASE HREF="http://www.example.com/"&gt;
+ &lt;TITLE&gt;An application with a long head&lt;/TITLE&gt;
+ &lt;LINK REL="STYLESHEET" HREF="default.css"&gt;
+ &lt;LINK REL="STYLESHEET ALTERNATE" HREF="big.css" TITLE="Big Text"&gt;
+ &lt;SCRIPT SRC="support.js"&gt;&lt;/SCRIPT&gt;
+ &lt;META NAME="APPLICATION-NAME" CONTENT="Long headed application"&gt;
+ &lt;/HEAD&gt;
+ &lt;BODY&gt;
+ ...</pre>
+
+ </div>
+
+ <p class=note>The <code><a href=#the-title-element>title</a></code> element is a required child
+ in most situations, but when a higher-level protocol provides title
+ information, e.g. in the Subject line of an e-mail when HTML is used
+ as an e-mail authoring format, the <code><a href=#the-title-element>title</a></code> element can be
+ omitted.</p>
+
+
+
+ <h4 id=the-title-element><span class=secno>4.2.2 </span>The <dfn><code>title</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#metadata-content>Metadata content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>In a <code><a href=#the-head-element>head</a></code> element containing no other <code><a href=#the-title-element>title</a></code> elements.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#text-content title="text content">Text</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmltitleelement>HTMLTitleElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-title-text title=dom-title-text>text</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-title-element>title</a></code> element <a href=#represents>represents</a> the
+ document's title or name. Authors should use titles that identify
+ their documents even when they are used out of context, for example
+ in a user's history or bookmarks, or in search results. The
+ document's title is often different from its first heading, since the
+ first heading does not have to stand alone when taken out of
+ context.</p>
+
+ <p>There must be no more than one <code><a href=#the-title-element>title</a></code> element per
+ document.</p>
+
+ <dl class=domintro><dt><var title="">title</var> . <code title=dom-title-text><a href=#dom-title-text>text</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the contents of the element, ignoring child nodes that
+ aren't <a href=#text-node title="text node">text nodes</a>.</p>
+
+ <p>Can be set, to replace the element's children with the given
+ value.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The IDL attribute <dfn id=dom-title-text title=dom-title-text><code>text</code></dfn> must return a
+ concatenation of the contents of all the <a href=#text-node title="text
+ node">text nodes</a> that are children of the <code><a href=#the-title-element>title</a></code>
+ element (ignoring any other nodes such as comments or elements), in
+ tree order. On setting, it must act the same way as the
+ <code><a href=#textcontent>textContent</a></code> IDL attribute.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here are some examples of appropriate titles, contrasted with
+ the top-level headings that might be used on those same pages.</p>
+
+ <pre> &lt;title&gt;Introduction to The Mating Rituals of Bees&lt;/title&gt;
+ ...
+ &lt;h1&gt;Introduction&lt;/h1&gt;
+ &lt;p&gt;This companion guide to the highly successful
+ &lt;cite&gt;Introduction to Medieval Bee-Keeping&lt;/cite&gt; book is...</pre>
+
+ <p>The next page might be a part of the same site. Note how the
+ title describes the subject matter unambiguously, while the first
+ heading assumes the reader knows what the context is and therefore
+ won't wonder if the dances are Salsa or Waltz:</p>
+
+ <pre> &lt;title&gt;Dances used during bee mating rituals&lt;/title&gt;
+ ...
+ &lt;h1&gt;The Dances&lt;/h1&gt;</pre>
+
+ </div>
+
+ <p>The string to use as the document's title is given by the <code title=dom-document-title><a href=#document.title>document.title</a></code> IDL attribute.</p>
+
+ <div class=impl>
+
+ <p>User agents should use the document's title when referring to the
+ document in their user interface. When the contents of a
+ <code><a href=#the-title-element>title</a></code> element are used in this way, <a href=#the-directionality>the
+ directionality</a> of that <code><a href=#the-title-element>title</a></code> element should be
+ used to set the directionality of the document's title in the user
+ interface.</p>
+
+ </div>
+
+
+ <h4 id=the-base-element><span class=secno>4.2.3 </span>The <dfn><code>base</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#metadata-content>Metadata content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>In a <code><a href=#the-head-element>head</a></code> element containing no other <code><a href=#the-base-element>base</a></code> elements.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-base-href><a href=#attr-base-href>href</a></code></dd>
+ <dd><code title=attr-base-target><a href=#attr-base-target>target</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlbaseelement>HTMLBaseElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-base-href title=dom-base-href>href</a>;
+ attribute DOMString <a href=#dom-base-target title=dom-base-target>target</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-base-element>base</a></code> element allows authors to specify the
+ <a href=#document-base-url>document base URL</a> for the purposes of <a href=#resolve-a-url title="resolve a url">resolving relative URLs</a>, and the name
+ of the default <a href=#browsing-context>browsing context</a> for the purposes of
+ <a href=#following-hyperlinks>following hyperlinks</a>. The element does not <a href=#represents title=represents>represent</a> any content beyond this
+ information.</p>
+
+ <p>There must be no more than one <code><a href=#the-base-element>base</a></code> element per
+ document.</p>
+
+ <p>A <code><a href=#the-base-element>base</a></code> element must have either an <code title=attr-base-href><a href=#attr-base-href>href</a></code> attribute, a <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, or both.</p>
+
+ <p>The <dfn id=attr-base-href title=attr-base-href><code>href</code></dfn> content
+ attribute, if specified, must contain a <a href=#valid-url-potentially-surrounded-by-spaces>valid URL potentially
+ surrounded by spaces</a>.</p>
+
+ <p>A <code><a href=#the-base-element>base</a></code> element, if it has an <code title=attr-base-href><a href=#attr-base-href>href</a></code> attribute, must come before any
+ other elements in the tree that have attributes defined as taking
+ <a href=#url title=URL>URLs</a>, except the <code><a href=#the-html-element>html</a></code> element
+ (its <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute
+ isn't affected by <code><a href=#the-base-element>base</a></code> elements).</p>
+
+ <div class=impl>
+
+ <p class=note>If there are multiple <code><a href=#the-base-element>base</a></code> elements
+ with <code title=attr-base-href><a href=#attr-base-href>href</a></code> attributes, all but the
+ first are ignored.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-base-target title=attr-base-target><code>target</code></dfn>
+ attribute, if specified, must contain a <a href=#valid-browsing-context-name-or-keyword>valid browsing context
+ name or keyword</a>, which specifies which <a href=#browsing-context>browsing
+ context</a> is to be used as the default when <a href=#hyperlink title=hyperlink>hyperlinks</a> and <a href=#the-form-element title=form>forms</a> in the <code><a href=#document>Document</a></code> cause <a href=#navigate title=navigate>navigation</a>.</p>
+
+ <p>A <code><a href=#the-base-element>base</a></code> element, if it has a <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, must come before
+ any elements in the tree that represent <a href=#hyperlink title=hyperlink>hyperlinks</a>.</p>
+
+ <div class=impl>
+
+ <p class=note>If there are multiple <code><a href=#the-base-element>base</a></code> elements
+ with <code title=attr-base-target><a href=#attr-base-target>target</a></code> attributes, all but
+ the first are ignored.</p>
+
+ <p>The <dfn id=dom-base-href title=dom-base-href><code>href</code></dfn> IDL
+ attribute, on getting, must return the page's <a href=#document-base-url>document base
+ URL</a>, and on setting, it must set the <code title=attr-base-href><a href=#attr-base-href>href</a></code> content attribute to the given
+ new value.</p>
+
+ <p>The <dfn id=dom-base-target title=dom-base-target><code>target</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example, a <code><a href=#the-base-element>base</a></code> element is used to set the
+ <a href=#document-base-url>document base URL</a>:</p>
+
+ <pre>&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;This is an example for the &amp;lt;base&amp;gt; element&lt;/title&gt;
+ &lt;base href="http://www.example.com/news/index.html"&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;p&gt;Visit the &lt;a href="archives.html"&gt;archives&lt;/a&gt;.&lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>The link in the above example would be a link to "<code title="">http://www.example.com/news/archives.html</code>".</p>
+
+ </div>
+
+
+
+
+ <h4 id=the-link-element><span class=secno>4.2.4 </span>The <dfn><code>link</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#metadata-content>Metadata content</a>.</dd>
+<!--MD-->
+ <dd>If the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present: <a href=#flow-content>flow content</a>.</dd>
+ <dd>If the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present: <a href=#phrasing-content>phrasing content</a>.</dd>
+<!--MD-->
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#metadata-content>metadata content</a> is expected.</dd>
+ <dd>In a <code><a href=#the-noscript-element>noscript</a></code> element that is a child of a <code><a href=#the-head-element>head</a></code> element.</dd>
+<!--MD-->
+ <dd>If the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present: where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+<!--MD-->
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-link-href><a href=#attr-link-href>href</a></code></dd>
+ <dd><code title=attr-link-rel><a href=#attr-link-rel>rel</a></code></dd>
+ <dd><code title=attr-link-media><a href=#attr-link-media>media</a></code></dd>
+ <dd><code title=attr-link-hreflang><a href=#attr-link-hreflang>hreflang</a></code></dd>
+ <dd><code title=attr-link-type><a href=#attr-link-type>type</a></code></dd>
+ <dd><code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code></dd>
+ <dd>Also, the <code title=attr-link-title><a href=#attr-link-title>title</a></code> attribute has special semantics on this element.</dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmllinkelement>HTMLLinkElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-link-disabled title=dom-link-disabled>disabled</a>;
+ attribute DOMString <a href=#dom-link-href title=dom-link-href>href</a>;
+ attribute DOMString <a href=#dom-link-rel title=dom-link-rel>rel</a>;
+ readonly attribute <a href=#domtokenlist>DOMTokenList</a> <a href=#dom-link-rellist title=dom-link-relList>relList</a>;
+ attribute DOMString <a href=#dom-link-media title=dom-link-media>media</a>;
+ attribute DOMString <a href=#dom-link-hreflang title=dom-link-hreflang>hreflang</a>;
+ attribute DOMString <a href=#dom-link-type title=dom-link-type>type</a>;
+ [PutForwards=<span title=dom-DOMSettableTokenList-value>value</span>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-link-sizes title=dom-link-sizes>sizes</a>;
+};
+<a href=#htmllinkelement>HTMLLinkElement</a> implements <span>LinkStyle</span>;</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-link-element>link</a></code> element allows authors to link their
+ document to other resources.</p>
+
+ <p>The destination of the link(s) is given by the <dfn id=attr-link-href title=attr-link-href><code>href</code></dfn> attribute, which must
+ be present and must contain a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially
+ surrounded by spaces</a>. <span class=impl>If the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute is absent, then the
+ element does not define a link.</span></p>
+
+<!--MD-->
+ <p>A <code><a href=#the-link-element>link</a></code> element must have either a <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute or an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute, but not both.</p>
+
+ <p class=note>If the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code>
+ attribute is used, the element is restricted to the
+ <code><a href=#the-head-element>head</a></code> element. When used with the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute, the element can be
+ used both in the <code><a href=#the-head-element>head</a></code> element and in the
+ <code><a href=#the-body-element>body</a></code> of the page, subject to the constraints of the
+ microdata model.</p>
+
+ <p>The types of link indicated (the relationships) are given by the
+ value of the <dfn id=attr-link-rel title=attr-link-rel><code>rel</code></dfn>
+ attribute, which, if present, must have a value that is a <a href=#set-of-space-separated-tokens>set
+ of space-separated tokens</a>. The <a href=#linkTypes>allowed
+ keywords and their meanings</a> are defined in a later
+ section. <span class=impl>If the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute is absent, has no
+ keywords, or if none of the keywords used are allowed according to
+ the definitions in this specification, then the element does not
+ create any links.</span></p>
+
+ <p>Two categories of links can be created using the
+ <code><a href=#the-link-element>link</a></code> element: <a href=#external-resource-link title="external resource
+ link">Links to external resources</a> and <a href=#hyperlink title=hyperlink>hyperlinks</a>. The <a href=#linkTypes>link
+ types section</a> defines whether a particular link type is an
+ external resource or a hyperlink. One <code><a href=#the-link-element>link</a></code> element can
+ create multiple links (of which some might be external resource
+ links and some might be hyperlinks); exactly which and how many
+ links are created depends on the keywords given in the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute. User agents must process
+ the links on a per-link basis, not a per-element basis.</p>
+
+ <p class=note>Each link created for a <code><a href=#the-link-element>link</a></code> element is
+ handled separately. For instance, if there are two <code><a href=#the-link-element>link</a></code>
+ elements with <code title="">rel="stylesheet"</code>, they each
+ count as a separate external resource, and each is affected by its
+ own attributes independently. Similarly, if a single
+ <code><a href=#the-link-element>link</a></code> element has a <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute with the value <code title="">next stylesheet</code>, it creates both a
+ <a href=#hyperlink>hyperlink</a> (for the <code title=rel-next><a href=#link-type-next>next</a></code>
+ keyword) and an <a href=#external-resource-link>external resource link</a> (for the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword), and they are
+ affected by other attributes (such as <code title=attr-link-media><a href=#attr-link-media>media</a></code> or <code title=attr-link-title><a href=#attr-link-title>title</a></code>) differently.</p>
+
+ <div class=example>
+
+ <p>For example, the following <code><a href=#the-link-element>link</a></code> element creates two
+ hyperlinks (to the same page):</p>
+
+ <pre>&lt;link rel="author license" href="/about"&gt;</pre>
+
+ <p>The two links created by this element are one whose semantic is
+ that the target page has information about the current page's
+ author, and one whose semantic is that the target page has
+ information regarding the license under which the current page is
+ provided.</p>
+
+ </div>
+
+ <p>The exact behavior for links to external resources depends on the
+ exact relationship, as defined for the relevant link type. Some of
+ the attributes control whether or not the external resource is to be
+ applied (as defined below).</p>
+
+ <div class=impl>
+
+ <p>For external resources that are represented in the
+ DOM (for example, style sheets), the DOM representation must be made
+ available even if the resource is not applied. To <dfn id=concept-link-obtain title=concept-link-obtain>obtain the resource</dfn>, the user
+ agent must run the following steps:</p>
+
+ <ol><li><p>If the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute's
+ value is the empty string, then abort these steps.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
+ <a href=#url>URL</a> given by the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute, relative to the
+ element.</li>
+
+ <li><p>If the previous step fails, then abort these steps.</li>
+
+ <li><p><a href=#fetch>Fetch</a> the resulting <a href=#absolute-url>absolute
+ URL</a>.</li> <!-- http-origin privacy sensitive -->
+
+ </ol><p>User agents may opt to only try to obtain such resources when
+ they are needed, instead of pro-actively <a href=#fetch title=fetch>fetching</a> all the external resources that are
+ not applied.</p>
+
+ <p>The semantics of the protocol used (e.g. HTTP) must be followed
+ when fetching external resources. (For example, redirects will be
+ followed and 404 responses will cause the external resource to not
+ be applied.)</p>
+
+ <!-- the next few paragraph are similar to text in the <style> section -->
+ <p>Once the attempts to obtain the resource and its <a href=#critical-subresources>critical
+ subresources</a> are complete, the user agent must, if the loads
+ were successful, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-load>load</code> at the
+ <code><a href=#the-link-element>link</a></code> element, or, if the resource or one of its
+ <a href=#critical-subresources>critical subresources</a> failed to completely load for any
+ reason (e.g. DNS error, HTTP 404 response, a connection being
+ prematurely closed, unsupported Content-Type), <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the <code><a href=#the-link-element>link</a></code>
+ element. Non-network errors in processing the resource or its
+ subresources (e.g. CSS parse errors, PNG decoding errors) are not
+ failures for the purposes of this paragraph.</p>
+
+ <p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#dom-manipulation-task-source>DOM manipulation task
+ source</a>.</p>
+
+ <p>The element must <a href=#delay-the-load-event>delay the load event</a> of the
+ element's document until all the attempts to obtain the resource and
+ its <a href=#critical-subresources>critical subresources</a> are complete. (Resources that
+ the user agent has not yet attempted to obtain, e.g. because it is
+ waiting for the resource to be needed, do not <a href=#delay-the-load-event>delay the load
+ event</a>.)</p>
+
+ <hr><p id=linkui>Interactive user agents may provide users with a
+ means to <a href=#following-hyperlinks title="following hyperlinks">follow the
+ hyperlinks</a> created using the <code><a href=#the-link-element>link</a></code> element,
+ somewhere within their user interface. The exact interface is not
+ defined by this specification, but it could include the following
+ information (obtained from the element's attributes, again as
+ defined below), in some form or another (possibly simplified), for
+ each hyperlink created with each <code><a href=#the-link-element>link</a></code> element in the
+ document:</p>
+
+ <ul><!-- the order here is the order that makes most sense for a UI --><li>The relationship between this document and the resource (given
+ by the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute)</li>
+
+ <li>The title of the resource (given by the <code title=attr-link-title><a href=#attr-link-title>title</a></code> attribute).</li>
+
+ <li>The address of the resource (given by the <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute).</li>
+
+ <li>The language of the resource (given by the <code title=attr-link-hreflang><a href=#attr-link-hreflang>hreflang</a></code> attribute).</li>
+
+ <li>The optimum media for the resource (given by the <code title=attr-link-media><a href=#attr-link-media>media</a></code> attribute).</li>
+
+ </ul><p>User agents could also include other information, such as the
+ type of the resource (as given by the <code title=attr-link-type><a href=#attr-link-type>type</a></code> attribute).</p>
+
+ </div>
+
+ <p class=note>Hyperlinks created with the <code><a href=#the-link-element>link</a></code>
+ element and its <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute
+ apply to the whole page. This contrasts with the <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute of <code><a href=#the-a-element>a</a></code>
+ and <code><a href=#the-area-element>area</a></code> elements, which indicates the type of a link
+ whose context is given by the link's location within the
+ document.</p>
+
+ <p>The <dfn id=attr-link-media title=attr-link-media><code>media</code></dfn>
+ attribute says which media the resource applies to. The value must
+ be a <a href=#valid-media-query>valid media query</a>.</p>
+
+ <div class=impl>
+
+ <p>If the link is a <a href=#hyperlink>hyperlink</a> then the <code title=attr-link-media><a href=#attr-link-media>media</a></code> attribute is purely advisory,
+ and describes for which media the document in question was
+ designed.</p>
+
+ <p>However, if the link is an <a href=#external-resource-link>external resource link</a>,
+ then the <code title=attr-link-media><a href=#attr-link-media>media</a></code> attribute is
+ prescriptive. The user agent must apply the external resource when
+ the <code title=attr-link-media><a href=#attr-link-media>media</a></code> attribute's value
+ <a href=#matches-the-environment>matches the environment</a> and the other relevant
+ conditions apply, and must not apply it otherwise.</p><!-- note
+ similar text in <style> section -->
+
+ <p class=note>The external resource might have further
+ restrictions defined within that limit its applicability. For
+ example, a CSS style sheet might have some <code title="">@media</code> blocks. This specification does not override
+ such further restrictions or requirements.</p><!-- note similar text
+ in <style> section -->
+
+ </div>
+
+ <p id=default-media>The default, if the <code title=attr-link-media><a href=#attr-link-media>media</a></code> attribute is omitted, is "<code title="">all</code>", meaning that by default links apply to all
+ media.</p>
+
+ <p>The <dfn id=attr-link-hreflang title=attr-link-hreflang><code>hreflang</code></dfn>
+ attribute on the <code><a href=#the-link-element>link</a></code> element has the same semantics as
+ the <a href=#attr-hyperlink-hreflang title=attr-hyperlink-hreflang><code>hreflang</code>
+ attribute on <code>a</code> and <code>area</code>
+ elements</a>.</p>
+
+ <p>The <dfn id=attr-link-type title=attr-link-type><code>type</code></dfn> attribute
+ gives the <a href=#mime-type>MIME type</a> of the linked resource. It is
+ purely advisory. The value must be a <a href=#valid-mime-type>valid MIME
+ type</a>.</p>
+
+ <p>For <a href=#external-resource-link title="external resource link">external resource
+ links</a>, the <code title=attr-link-type><a href=#attr-link-type>type</a></code> attribute
+ is used as a hint to user agents so that they can avoid fetching
+ resources they do not support. <span class=impl>If the attribute
+ is present, then the user agent must assume that the resource is of
+ the given type (even if that is not a <a href=#valid-mime-type>valid MIME type</a>,
+ e.g. the empty string). If the attribute is omitted, but the
+ external resource link type has a default type defined, then the
+ user agent must assume that the resource is of that type. If the UA
+ does not support the given <a href=#mime-type>MIME type</a> for the given link
+ relationship, then the UA should not <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource; if the UA
+ does support the given <a href=#mime-type>MIME type</a> for the given link
+ relationship, then the UA should <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource at the
+ appropriate time as specified for the <a href=#external-resource-link>external resource
+ link</a>'s particular type. If the attribute is omitted, and the
+ external resource link type does not have a default type defined,
+ but the user agent would <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource if the type
+ was known and supported, then the user agent should <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource under the
+ assumption that it will be supported.</span></p>
+
+ <div class=impl>
+
+ <p>User agents must not consider the <code title=attr-link-type><a href=#attr-link-type>type</a></code> attribute authoritative &mdash;
+ upon fetching the resource, user agents must not use the <code title=attr-link-type><a href=#attr-link-type>type</a></code> attribute to determine its actual
+ type. Only the actual type (as defined in the next paragraph) is
+ used to determine whether to <em>apply</em> the resource, not the
+ aforementioned assumed type.</p>
+
+ <p id=concept-link-type-sniffing>If the external resource link
+ type defines rules for processing the resource's <a href=#content-type title=Content-Type>Content-Type metadata</a>, then those rules
+ apply. Otherwise, if the resource is expected to be an image, user
+ agents may apply the <a href=#content-type-sniffing:-image title="Content-Type sniffing:
+ image">image sniffing rules</a>, with the <var title="">official
+ type</var> being the type determined from the resource's <a href=#content-type title=Content-Type>Content-Type metadata</a>, and use the
+ resulting sniffed type of the resource as if it was the actual
+ type. Otherwise, if neither of these conditions apply or if the user
+ agent opts not to apply the image sniffing rules, then the user
+ agent must use the resource's <a href=#content-type title=Content-Type>Content-Type metadata</a> to determine the
+ type of the resource. If there is no type metadata, but the external
+ resource link type has a default type defined, then the user agent
+ must assume that the resource is of that type.</p>
+
+ <p class=note>The <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code>
+ link type defines rules for processing the resource's <a href=#content-type title=Content-Type>Content-Type metadata</a>.</p>
+
+ <p>Once the user agent has established the type of the resource, the
+ user agent must apply the resource if it is of a supported type and
+ the other relevant conditions apply, and must ignore the resource
+ otherwise.</p>
+
+ <div class=example>
+
+ <p>If a document contains style sheet links labeled as follows:</p>
+
+ <pre>&lt;link rel="stylesheet" href="A" type="text/plain"&gt;
+&lt;link rel="stylesheet" href="B" type="text/css"&gt;
+&lt;link rel="stylesheet" href="C"&gt;</pre>
+
+ <p>...then a compliant UA that supported only CSS style sheets
+ would fetch the B and C files, and skip the A file (since
+ <code>text/plain</code> is not the <a href=#mime-type>MIME type</a> for CSS style
+ sheets).</p>
+
+ <p>For files B and C, it would then check the actual types returned
+ by the server. For those that are sent as <code>text/css</code>, it
+ would apply the styles, but for those labeled as
+ <code>text/plain</code>, or any other type, it would not.</p>
+
+ <p>If one of the two files was returned without a
+ <a href=#content-type>Content-Type</a> metadata, or with a syntactically
+ incorrect type like <code title="">Content-Type:&nbsp;"null"</code>, then the default type
+ for <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> links would kick
+ in. Since that default type is <code title="">text/css</code>, the
+ style sheet <em>would</em> nonetheless be applied.</p>
+
+ </div>
+
+ </div>
+
+ <p>The <dfn id=attr-link-title title=attr-link-title><code>title</code></dfn>
+ attribute gives the title of the link. With one exception, it is
+ purely advisory. The value is text. The exception is for style sheet
+ links, where the <code title=attr-link-title><a href=#attr-link-title>title</a></code>
+ attribute defines <span>alternative style sheet sets</span>.</p>
+
+ <p class=note>The <code title=attr-link-title><a href=#attr-link-title>title</a></code>
+ attribute on <code><a href=#the-link-element>link</a></code> elements differs from the global
+ <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute of most other
+ elements in that a link without a title does not inherit the title
+ of the parent element: it merely has no title.</p>
+
+ <p>The <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attribute is used
+ with the <code title=rel-icon><a href=#rel-icon>icon</a></code> link type. The attribute
+ must not be specified on <code><a href=#the-link-element>link</a></code> elements that do not have
+ a <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute that specifies
+ the <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword.</p>
+
+ <div class=impl>
+
+ <p>HTTP <code title="">Link:</code> headers, if supported, must be
+ assumed to come before any links in the document, in the order that
+ they were given in the HTTP entity header. (URLs in these headers
+ are to be processed and resolved according to the rules given in the
+ relevant specification; the rules of <em>this</em> specification
+ don't apply.) <a href=#refsHTTP>[HTTP]</a> <a href=#refsWEBLINK>[WEBLINK]</a></p> <!-- WEBLINK is ref for Link:
+ header -->
+
+ <p>The IDL attributes <dfn id=dom-link-href title=dom-link-href><code>href</code></dfn>, <dfn id=dom-link-rel title=dom-link-rel><code>rel</code></dfn>, <dfn id=dom-link-media title=dom-link-media><code>media</code></dfn>, <dfn id=dom-link-hreflang title=dom-link-hreflang><code>hreflang</code></dfn>, and <dfn id=dom-link-type title=dom-link-type><code>type</code></dfn>, and <dfn id=dom-link-sizes title=dom-link-sizes><code>sizes</code></dfn> each must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ <p>The IDL attribute <dfn id=dom-link-rellist title=dom-link-rellist><code>relList</code></dfn> <span class=impl>must</span> <a href=#reflect title=reflect>reflect</a> the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> content attribute.</p>
+
+ </div>
+
+ <p>The IDL attribute <dfn id=dom-link-disabled title=dom-link-disabled><code>disabled</code></dfn> only applies
+ to style sheet links. When the <code><a href=#the-link-element>link</a></code> element defines a
+ style sheet link, then the <code title=dom-link-disabled><a href=#dom-link-disabled>disabled</a></code> attribute behaves as
+ defined <a href=#dom-linkstyle-disabled title=dom-linkstyle-disabled>for the alternative
+ style sheets DOM</a>. For all other <code><a href=#the-link-element>link</a></code> elements it
+ always return false and does nothing on setting.</p> <!-- that is
+ normatively required in the definition of dom-linkstyle-disabled -->
+
+ <p>The <code>LinkStyle</code> interface is also implemented by
+ this element; the <a href=#styling>styling processing model</a> defines
+ how. <a href=#refsCSSOM>[CSSOM]</a></p>
+
+ <div class=example>
+
+ <p>Here, a set of <code><a href=#the-link-element>link</a></code> elements provide some style
+ sheets:</p>
+
+ <pre>&lt;!-- a persistent style sheet --&gt;
+&lt;link rel="stylesheet" href="default.css"&gt;
+
+&lt;!-- the preferred alternate style sheet --&gt;
+&lt;link rel="stylesheet" href="green.css" title="Green styles"&gt;
+
+&lt;!-- some alternate style sheets --&gt;
+&lt;link rel="alternate stylesheet" href="contrast.css" title="High contrast"&gt;
+&lt;link rel="alternate stylesheet" href="big.css" title="Big fonts"&gt;
+&lt;link rel="alternate stylesheet" href="wide.css" title="Wide screen"&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows how you can specify versions of the
+ page that use alternative formats, are aimed at other languages,
+ and that are intended for other media:</p>
+
+ <pre>&lt;link rel=alternate href="/en/html" hreflang=en type=text/html title="English HTML"&gt;
+&lt;link rel=alternate href="/fr/html" hreflang=fr type=text/html title="French HTML"&gt;
+&lt;link rel=alternate href="/en/html/print" hreflang=en type=text/html media=print title="English HTML (for printing)"&gt;
+&lt;link rel=alternate href="/fr/html/print" hreflang=fr type=text/html media=print title="French HTML (for printing)"&gt;
+&lt;link rel=alternate href="/en/pdf" hreflang=en type=application/pdf title="English PDF"&gt;
+&lt;link rel=alternate href="/fr/pdf" hreflang=fr type=application/pdf title="French PDF"&gt;</pre>
+
+ </div>
+
+
+
+
+
+ <h4 id=the-meta-element><span class=secno>4.2.5 </span>The <dfn id=meta><code>meta</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#metadata-content>Metadata content</a>.</dd>
+<!--MD-->
+ <dd>If the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present: <a href=#flow-content>flow content</a>.</dd>
+ <dd>If the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present: <a href=#phrasing-content>phrasing content</a>.</dd>
+<!--MD-->
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>If the <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code> attribute is present, or if the element's <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute is in the <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding declaration state</a>: in a <code><a href=#the-head-element>head</a></code> element.</dd>
+ <dd>If the <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute is present but not in the <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding declaration state</a>: in a <code><a href=#the-head-element>head</a></code> element.</dd>
+ <dd>If the <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute is present but not in the <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding declaration state</a>: in a <code><a href=#the-noscript-element>noscript</a></code> element that is a child of a <code><a href=#the-head-element>head</a></code> element.</dd>
+ <dd>If the <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute is present: where <a href=#metadata-content>metadata content</a> is expected.</dd>
+<!--MD-->
+ <dd>If the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present: where <a href=#metadata-content>metadata content</a> is expected.</dd>
+ <dd>If the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present: where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+<!--MD-->
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-meta-name><a href=#attr-meta-name>name</a></code></dd>
+ <dd><code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code></dd>
+ <dd><code title=attr-meta-content><a href=#attr-meta-content>content</a></code></dd>
+ <dd><code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlmetaelement>HTMLMetaElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-meta-name title=dom-meta-name>name</a>;
+ attribute DOMString <a href=#dom-meta-httpequiv title=dom-meta-httpEquiv>httpEquiv</a>;
+ attribute DOMString <a href=#dom-meta-content title=dom-meta-content>content</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-meta-element>meta</a></code> element <a href=#represents>represents</a> various
+ kinds of metadata that cannot be expressed using the
+ <code><a href=#the-title-element>title</a></code>, <code><a href=#the-base-element>base</a></code>, <code><a href=#the-link-element>link</a></code>,
+ <code><a href=#the-style-element>style</a></code>, and <code><a href=#the-script-element>script</a></code> elements.</p>
+
+ <p>The <code><a href=#the-meta-element>meta</a></code> element can represent document-level
+ metadata with the <code title=attr-meta-name><a href=#attr-meta-name>name</a></code>
+ attribute, pragma directives with the <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute, and the
+ file's <a href=#character-encoding-declaration>character encoding declaration</a> when an HTML
+ document is serialized to string form (e.g. for transmission over
+ the network or for disk storage) with the <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code> attribute.</p>
+
+<!--MD-->
+ <p>Exactly one of the <code title=attr-meta-name><a href=#attr-meta-name>name</a></code>,
+ <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code>, <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code>, and <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attributes must be
+ specified.</p>
+
+ <p>If either <code title=attr-meta-name><a href=#attr-meta-name>name</a></code>, <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code>, or <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> is specified, then the <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute must also be
+ specified. Otherwise, it must be omitted.</p>
+
+ <p>The <dfn id=attr-meta-charset title=attr-meta-charset><code>charset</code></dfn>
+ attribute specifies the character encoding used by the
+ document. This is a <a href=#character-encoding-declaration>character encoding declaration</a>. If
+ the attribute is present in an <a href=#xml-documents title="XML documents">XML
+ document</a>, its value must be an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">UTF-8</code>" (and the document is therefore forced to use
+ UTF-8 as its encoding).</p>
+
+ <p class=note>The <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code>
+ attribute on the <code><a href=#the-meta-element>meta</a></code> element has no effect in XML
+ documents, and is only allowed in order to facilitate migration to
+ and from XHTML.</p>
+
+ <p>There must not be more than one <code><a href=#the-meta-element>meta</a></code> element with a
+ <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code> attribute per
+ document.</p>
+
+ <p>The <dfn id=attr-meta-content title=attr-meta-content><code>content</code></dfn>
+ attribute gives the value of the document metadata or pragma
+ directive when the element is used for those purposes. The allowed
+ values depend on the exact context, as described in subsequent
+ sections of this specification.</p>
+
+ <p>If a <code><a href=#the-meta-element>meta</a></code> element has a <dfn id=attr-meta-name title=attr-meta-name><code>name</code></dfn> attribute, it sets
+ document metadata. Document metadata is expressed in terms of
+ name-value pairs, the <code title=attr-meta-name><a href=#attr-meta-name>name</a></code>
+ attribute on the <code><a href=#the-meta-element>meta</a></code> element giving the name, and the
+ <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute on the same
+ element giving the value. The name specifies what aspect of metadata
+ is being set; valid names and the meaning of their values are
+ described in the following sections. If a <code><a href=#the-meta-element>meta</a></code> element
+ has no <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute,
+ then the value part of the metadata name-value pair is the empty
+ string.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-meta-name title=dom-meta-name><code>name</code></dfn> and <dfn id=dom-meta-content title=dom-meta-content><code>content</code></dfn> IDL attributes
+ must <a href=#reflect>reflect</a> the respective content attributes of the
+ same name. The IDL attribute <dfn id=dom-meta-httpequiv title=dom-meta-httpEquiv><code>httpEquiv</code></dfn> must
+ <a href=#reflect>reflect</a> the content attribute <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code>.</p>
+
+ </div>
+
+
+ <h5 id=standard-metadata-names><span class=secno>4.2.5.1 </span>Standard metadata names</h5>
+
+ <p>This specification defines a few names for the <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute of the
+ <code><a href=#the-meta-element>meta</a></code> element.</p>
+
+ <p>Names are case-insensitive<span class=impl>, and must be compared
+ in an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> manner</span>.</p>
+
+ <dl><dt><dfn id=meta-application-name title=meta-application-name><code>application-name</code></dfn></dt>
+
+ <dd><p>The value must be a short free-form string giving the name
+ of the Web application that the page represents. If the page is not
+ a Web application, the <code title=meta-application-name><a href=#meta-application-name>application-name</a></code> metadata name
+ must not be used. There must not be more than one <code><a href=#the-meta-element>meta</a></code>
+ element with its <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute
+ set to the value <code title=meta-application-name><a href=#meta-application-name>application-name</a></code> per
+ document. <span class=impl>User agents may use the application
+ name in UI in preference to the page's <code><a href=#the-title-element>title</a></code>, since
+ the title might include status messages and the like relevant to
+ the status of the page at a particular moment in time instead of
+ just being the name of the application.</span></dd>
+
+ <dt><dfn id=meta-author title=meta-author><code>author</code></dfn></dt>
+
+ <dd><p>The value must be a free-form string giving the name of one
+ of the page's authors.</dd>
+
+ <dt><dfn id=meta-description title=meta-description><code>description</code></dfn></dt>
+
+ <dd><p>The value must be a free-form string that describes the
+ page. The value must be appropriate for use in a directory of
+ pages, e.g. in a search engine. There must not be more than one
+ <code><a href=#the-meta-element>meta</a></code> element with its <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute set to the value <code title=meta-description><a href=#meta-description>description</a></code> per document.</dd>
+
+ <dt><dfn id=meta-generator title=meta-generator><code>generator</code></dfn></dt>
+
+ <dd>
+
+ <p>The value must be a free-form string that identifies one of the
+ software packages used to generate the document. This value must
+ not be used on hand-authored pages.</p>
+
+ <div class=example>
+
+ <p>Here is what a tool called "Frontweaver" could include in its
+ output, in the page's <code><a href=#the-head-element>head</a></code> element, to identify
+ itself as the tool used to generate the page:</p>
+
+ <pre>&lt;meta name=generator content="Frontweaver 8.2"&gt;</pre>
+
+ </div>
+
+ </dd>
+
+ <dt><dfn id=meta-keywords title=meta-keywords><code>keywords</code></dfn></dt>
+
+ <dd>
+
+ <p>The value must be a <a href=#set-of-comma-separated-tokens>set of comma-separated tokens</a>,
+ each of which is a keyword relevant to the page.</p>
+
+ <div class=example>
+
+ <p>This page about typefaces on British motorways uses a
+ <code><a href=#the-meta-element>meta</a></code> element to specify some keywords that users
+ might use to look for the page:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Typefaces on UK motorways&lt;/title&gt;
+ &lt;meta name="keywords" content="british,type face,font,fonts,highway,highways"&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ ...</pre>
+
+ </div>
+
+ <p class=note>Many search engines do not consider such keywords,
+ because this feature has historically been used unreliably and
+ even misleadingly as a way to spam search engine results in a way
+ that is not helpful for users.</p>
+
+ <div class=impl>
+
+ <p>To obtain the list of keywords that the author has specified as
+ applicable to the page, the user agent must run the following
+ steps:</p>
+
+ <ol><li><p>Let <var title="">keywords</var> be an empty
+ list.</li>
+
+ <li>
+
+ <p>For each <code><a href=#the-meta-element>meta</a></code> element with a <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute and a <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute and whose
+ <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute's value is
+ <code title=meta-keywords><a href=#meta-keywords>keywords</a></code>, run the following
+ substeps:</p>
+
+ <ol><li><p><a href=#split-a-string-on-commas title="split a string on commas">Split the value
+ of the element's <code title=attr-meta-content>content</code>
+ attribute on commas</a>.</li>
+
+ <li><p>Add the resulting tokens, if any, to <var title="">keywords</var>.</li>
+
+ </ol></li>
+
+ <li><p>Remove any duplicates from <var title="">keywords</var>.</li>
+
+ <li><p>Return <var title="">keywords</var>. This is the list of
+ keywords that the author has specified as applicable to the
+ page.</li>
+
+ </ol><p>User agents should not use this information when there is
+ insufficient confidence in the reliability of the value.</p>
+
+ <p class=example>For instance, it would be reasonable for a
+ content management system to use the keyword information of pages
+ within the system to populate the index of a site-specific search
+ engine, but a large-scale content aggregator that used this
+ information would likely find that certain users would try to game
+ its ranking mechanism through the use of inappropriate
+ keywords.</p>
+
+ </div>
+
+ </dd>
+
+ </dl><h5 id=other-metadata-names><span class=secno>4.2.5.2 </span>Other metadata names</h5>
+
+ <p><dfn id=concept-meta-extensions title=concept-meta-extensions>Extensions to the predefined
+ set of metadata names</dfn> may be registered in the <a href=http://wiki.whatwg.org/wiki/MetaExtensions>WHATWG Wiki
+ MetaExtensions page</a>. <a href=#refsWHATWGWIKI>[WHATWGWIKI]</a></p>
+
+ <p>Anyone is free to edit the WHATWG Wiki MetaExtensions page at any
+ time to add a type. These new names must be specified with the
+ following information:</p>
+
+ <dl><dt>Keyword</dt>
+
+ <dd><p>The actual name being defined. The name should not be
+ confusingly similar to any other defined name (e.g. differing only
+ in case).</dd>
+
+
+ <dt>Brief description</dt>
+
+ <dd><p>A short non-normative description of what the metadata
+ name's meaning is, including the format the value is required to be
+ in.</dd>
+
+
+ <dt>Specification</dt>
+
+ <dd>A link to a more detailed description of the metadata name's
+ semantics and requirements. It could be another page on the Wiki,
+ or a link to an external page.</dd>
+
+
+ <dt>Synonyms</dt>
+
+ <dd><p>A list of other names that have exactly the same processing
+ requirements. Authors should not use the names defined to be
+ synonyms, they are only intended to allow user agents to support
+ legacy content. Anyone may remove synonyms that are not used in
+ practice; only names that need to be processed as synonyms for
+ compatibility with legacy content are to be registered in this
+ way.</dd>
+
+
+ <dt>Status</dt>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl><dt>Proposed</dt>
+
+ <dd>The name has not received wide peer review and
+ approval. Someone has proposed it and is, or soon will be, using
+ it.</dd>
+
+ <dt>Ratified</dt>
+
+ <dd>The name has received wide peer review and approval. It has a
+ specification that unambiguously defines how to handle pages that
+ use the name, including when they use it in incorrect ways.</dd>
+
+ <dt>Discontinued</dt>
+
+ <dd>The metadata name has received wide peer review and it has
+ been found wanting. Existing pages are using this metadata name,
+ but new pages should avoid it. The "brief description" and
+ "specification" entries will give details of what authors should
+ use instead, if anything.</dd>
+
+ </dl><p>If a metadata name is found to be redundant with existing
+ values, it should be removed and listed as a synonym for the
+ existing value.</p>
+
+ <p>If a metadata name is registered in the "proposed" state for a
+ period of a month or more without being used or specified, then it
+ may be removed from the registry.</p>
+
+ <p>If a metadata name is added with the "proposed" status and
+ found to be redundant with existing values, it should be removed
+ and listed as a synonym for the existing value. If a metadata name
+ is added with the "proposed" status and found to be harmful, then
+ it should be changed to "discontinued" status.</p>
+
+ <p>Anyone can change the status at any time, but should only do so
+ in accordance with the definitions above.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>Conformance checkers must use the information given on the WHATWG
+ Wiki MetaExtensions page to establish if a value is allowed or not:
+ values defined in this specification or marked as "proposed" or
+ "ratified" must be accepted, whereas values marked as "discontinued"
+ or not listed in either this specification or on the aforementioned
+ page must be rejected as invalid. Conformance checkers may cache
+ this information (e.g. for performance reasons or to avoid the use
+ of unreliable network connectivity).</p>
+
+ <p>When an author uses a new metadata name not defined by either
+ this specification or the Wiki page, conformance checkers should
+ offer to add the value to the Wiki, with the details described
+ above, with the "proposed" status.</p>
+
+ </div>
+
+ <p>Metadata names whose values are to be <a href=#url title=URL>URLs</a> must not be proposed or accepted. Links must
+ be represented using the <code><a href=#the-link-element>link</a></code> element, not the
+ <code><a href=#the-meta-element>meta</a></code> element.</p>
+
+
+
+ <h5 id=pragma-directives><span class=secno>4.2.5.3 </span>Pragma directives</h5>
+
+ <p>When the <dfn id=attr-meta-http-equiv title=attr-meta-http-equiv><code>http-equiv</code></dfn> attribute
+ is specified on a <code><a href=#the-meta-element>meta</a></code> element, the element is a pragma
+ directive.</p>
+
+ <p>The <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code>
+ attribute is an <a href=#enumerated-attribute>enumerated attribute</a>. The following
+ table lists the keywords defined for this attribute. The states
+ given in the first cell of the rows with keywords give the states to
+ which those keywords map. <span class=impl>Some of the keywords
+ are non-conforming, as noted in the last column.</span></p>
+
+<!-- things that are neither conforming nor do anything are commented out -->
+ <table id=table-http-equiv><thead><tr><th>State
+ <th>Keyword
+ <th>Notes
+ <tbody><tr class=impl><td><a href=#attr-meta-http-equiv-content-language title=attr-meta-http-equiv-content-language>Content Language</a>
+ <td><code title="">content-language</code>
+ <td>Non-conforming
+ <tr><td><a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding declaration</a>
+ <td><code title="">content-type</code>
+ <td>
+<!--
+ <tr class="impl">
+ <td><span title="attr-meta-http-equiv-content-script-type">Content-Script-Type</span>
+ <td><code title="">Content-Script-Type</code>
+ <td>Non-conforming
+ <tr class="impl">
+ <td><span title="attr-meta-http-equiv-content-style-type">Content-Style-Type</span>
+ <td><code title="">Content-Style-Type</code>
+ <td>Non-conforming
+-->
+ <tr><td><a href=#attr-meta-http-equiv-default-style title=attr-meta-http-equiv-default-style>Default style</a>
+ <td><code title="">default-style</code>
+ <td>
+ <tr><td><a href=#attr-meta-http-equiv-refresh title=attr-meta-http-equiv-refresh>Refresh</a>
+ <td><code title="">refresh</code>
+ <td>
+ <tr class=impl><td><a href=#attr-meta-http-equiv-set-cookie title=attr-meta-http-equiv-set-cookie>Cookie setter</a>
+ <td><code title="">set-cookie</code>
+ <td>Non-conforming
+ </table><!--
+DATA: According to Henri's validator stats, here are common
+non-conforming values used by people who validate (sample of 400
+pages):
+
+COUNT ERROR
+ 20 Bad value "Content-Language" for attribute "http-equiv" on element "meta".
+ 17 Bad value "Content-Style-Type" for attribute "http-equiv" on element "meta".
+ 12 Bad value "Expires" for attribute "http-equiv" on element "meta".
+ 11 Bad value "Pragma" for attribute "http-equiv" on element "meta".
+ 11 Bad value "imagetoolbar" for attribute "http-equiv" on element "meta".
+ 10 Bad value "Content-Script-Type" for attribute "http-equiv" on element "meta".
+ 10 Bad value "content-language" for attribute "http-equiv" on element "meta".
+ [...]
+http://hsivonen.iki.fi/test/moz/analysis.txt
+
+Here's some more data, this time from Philip`, on a sample of 15k pages.
+
+ COUNT VALUE
+ 1181 Content-Language
+ 430 Content-Style-Type
+ 342 imagetoolbar
+ 276 content-language
+ 269 Pragma
+ 260 expires
+ 227 Expires
+ 211 pragma
+ 146 Content-Script-Type
+ 132 keywords
+ 119 Page-Enter
+ 116 description
+ 106 reply-to
+ 102 Cache-Control
+ [...]
+http://philip.html5.org/data/meta-http-equiv.txt
+
+These numbers are low; further study is required to establish what
+people expect to have work and what is necessary.
+--><div class=impl>
+
+ <p>When a <code><a href=#the-meta-element>meta</a></code> element is <a href=#insert-an-element-into-a-document title="insert an
+ element into a document">inserted into the document</a>, if its
+ <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute is
+ present and represents one of the above states, then the user agent
+ must run the algorithm appropriate for that state, as described in
+ the following list:</p>
+
+ </div>
+
+ <dl><dt class=impl><dfn id=attr-meta-http-equiv-content-language title=attr-meta-http-equiv-content-language>Content language state</dfn> (<code title="">http-equiv="content-language"</code>)
+
+ <dd class=impl>
+
+ <p class=note>This feature is non-conforming. Authors are
+ encouraged to use the <code title=attr-lang><a href=#attr-lang>lang</a></code>
+ attribute instead.</p>
+
+ <p>This pragma sets the <dfn id=pragma-set-default-language>pragma-set default
+ language</dfn>. Until the pragma is successfully processed, there
+ is no <a href=#pragma-set-default-language>pragma-set default language</a>.</p>
+
+ <ol><li><p>If another <code><a href=#the-meta-element>meta</a></code> element with an <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute in the
+ <a href=#attr-meta-http-equiv-content-language title=attr-meta-http-equiv-content-language>Content
+ Language state</a> has already been successfully processed
+ (i.e. when it was inserted the user agent processed it and
+ reached the last step of this list of steps), then abort these
+ steps.</li>
+
+ <li><p>If the <code><a href=#the-meta-element>meta</a></code> element has no <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute, or if that
+ attribute's value is the empty string, then abort these
+ steps.</li>
+
+ <li><p>If the element's <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute contains a
+ U+002C COMMA character (,) then abort these steps.</li><!--
+ if you remove this, un-comment-out the corresponding bits in the
+ step below. -->
+
+ <li><p>Let <var title="">input</var> be the value of the
+ element's <code title=attr-meta-content><a href=#attr-meta-content>content</a></code>
+ attribute.</li>
+
+ <li><p>Let <var title="">position</var> point at the first
+ character of <var title="">input</var>.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters title="collect a sequence of characters">Collect a
+ sequence of characters</a> that are not<!--neither--> <a href=#space-character title="space character">space characters</a><!-- nor a U+002C
+ COMMA character (,)-->.</li>
+
+ <li><p>Let the <a href=#pragma-set-default-language>pragma-set default language</a> be the
+ string that resulted from the previous step.</li>
+
+ </ol><p class=note>This pragma is not exactly equivalent to the HTTP
+ <code>Content-Language</code> header. <a href=#refsHTTP>[HTTP]</a></p>
+
+ </dd>
+
+ <dt><dfn id=attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding declaration state</dfn> (<code title="">http-equiv="content-type"</code>)
+
+ <dd>
+
+ <p>The <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding
+ declaration state</a> is just an alternative form of setting
+ the <code title=meta-charset>charset</code> attribute: it is a
+ <a href=#character-encoding-declaration>character encoding declaration</a>. <span class=impl>This state's user agent requirements are all handled
+ by the parsing section of the specification.</span></p>
+
+ <p>For <code><a href=#the-meta-element>meta</a></code> elements with an <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute in the
+ <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding
+ declaration state</a>, the <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute must have a
+ value that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for a
+ string that consists of: the literal string "<code title="">text/html;</code>", optionally followed by any number of
+ <a href=#space-character title="space character">space characters</a>, followed by
+ the literal string "<code title="">charset=</code>", followed by
+ the character encoding name of the <a href=#character-encoding-declaration>character encoding
+ declaration</a>.</p>
+
+ <p>A document must not contain both a <code><a href=#the-meta-element>meta</a></code> element
+ with an <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code>
+ attribute in the <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding declaration
+ state</a> and a <code><a href=#the-meta-element>meta</a></code> element with the <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code> attribute present.</p>
+
+ <p>The <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding
+ declaration state</a> may be used in <a href=#html-documents>HTML
+ documents</a>, but elements with an <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute in that
+ state must not be used in <a href=#xml-documents>XML documents</a>.</p>
+
+ </dd>
+
+ <dt><dfn id=attr-meta-http-equiv-default-style title=attr-meta-http-equiv-default-style>Default style state</dfn> (<code title="">http-equiv="default-style"</code>)
+
+ <dd>
+
+ <p>This pragma sets the name of the default <span title="alternative style sheet sets">alternative style sheet
+ set</span>.</p>
+
+ <div class=impl>
+
+ <ol><li><p>If the <code><a href=#the-meta-element>meta</a></code> element has no <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute, or if that
+ attribute's value is the empty string, then abort these
+ steps.</li>
+
+ <li><p>Set the <span>preferred style sheet set</span> to the
+ value of the element's <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute. <a href=#refsCSSOM>[CSSOM]</a></li>
+
+ </ol></div>
+
+ </dd>
+
+ <dt><dfn id=attr-meta-http-equiv-refresh title=attr-meta-http-equiv-refresh>Refresh state</dfn> (<code title="">http-equiv="refresh"</code>)
+
+ <dd>
+
+ <p>This pragma acts as timed redirect.</p>
+
+ <div class=impl>
+
+ <ol><!-- TESTS: http://www.hixie.ch/tests/adhoc/html/meta/refresh/ --><!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/734 --><li><p>If another <code><a href=#the-meta-element>meta</a></code> element with an <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute in the
+ <a href=#attr-meta-http-equiv-refresh title=attr-meta-http-equiv-refresh>Refresh state</a>
+ has already been successfully processed (i.e. when it was
+ inserted the user agent processed it and reached the last step of
+ this list of steps), then abort these steps.</li>
+
+ <li><p>If the <code><a href=#the-meta-element>meta</a></code> element has no <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute, or if that
+ attribute's value is the empty string, then abort these
+ steps.</li>
+
+ <li><p>Let <var title="">input</var> be the value of the
+ element's <code title=attr-meta-content><a href=#attr-meta-content>content</a></code>
+ attribute.</li>
+
+ <li><p>Let <var title="">position</var> point at the first
+ character of <var title="">input</var>.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters title="collect a sequence of characters">Collect a
+ sequence of characters</a> in the range U+0030 DIGIT ZERO (0)
+ to U+0039 DIGIT NINE (9), and parse the resulting string using
+ the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a>. If the
+ sequence of characters collected is the empty string, then no
+ number will have been parsed; abort these steps. Otherwise, let
+ <var title="">time</var> be the parsed number.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters title="collect a sequence of characters">Collect a
+ sequence of characters</a> in the range U+0030 DIGIT ZERO (0) to
+ U+0039 DIGIT NINE (9) and U+002E FULL STOP (.). Ignore any collected
+ characters.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p>Let <var title="">url</var> be the address of the current
+ page.</li>
+
+ <li><p>If the character in <var title="">input</var> pointed to
+ by <var title="">position</var> is a U+003B SEMICOLON ("<code title="">;</code>"), then advance <var title="">position</var> to
+ the next character. Otherwise, jump to the last step.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p>If the character in <var title="">input</var> pointed to
+ by <var title="">position</var> is a U+0055 LATIN CAPITAL LETTER
+ U character (U) or a U+0075 LATIN SMALL LETTER U character (u),
+ then advance <var title="">position</var> to the next
+ character. Otherwise, jump to the last step.</li>
+
+ <li><p>If the character in <var title="">input</var> pointed to
+ by <var title="">position</var> is a U+0052 LATIN CAPITAL LETTER
+ R character (R) or a U+0072 LATIN SMALL LETTER R character (r),
+ then advance <var title="">position</var> to the next
+ character. Otherwise, jump to the last step.</li>
+
+ <li><p>If the character in <var title="">input</var> pointed to
+ by <var title="">position</var> is s U+004C LATIN CAPITAL LETTER
+ L character (L) or a U+006C LATIN SMALL LETTER L character (l),
+ then advance <var title="">position</var> to the next
+ character. Otherwise, jump to the last step.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p>If the character in <var title="">input</var> pointed to
+ by <var title="">position</var> is a U+003D EQUALS SIGN ("<code title="">=</code>"), then advance <var title="">position</var> to
+ the next character. Otherwise, jump to the last step.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p>If the character in <var title="">input</var> pointed to
+ by <var title="">position</var> is either a U+0027 APOSTROPHE
+ character (') or U+0022 QUOTATION MARK character ("), then let
+ <var title="">quote</var> be that character, and advance <var title="">position</var> to the next character. Otherwise, let
+ <var title="">quote</var> be the empty string.</li>
+
+ <li><p>Let <var title="">url</var> be equal to the substring of
+ <var title="">input</var> from the character at <var title="">position</var> to the end of the string.</li>
+
+ <li><p>If <var title="">quote</var> is not the empty string, and
+ there is a character in <var title="">url</var> equal to <var title="">quote</var>, then truncate <var title="">url</var> at
+ that character, so that it and all subsequent characters are
+ removed.</p>
+
+ <li><p>Strip any trailing <a href=#space-character title="space character">space
+ characters</a> from the end of <var title="">url</var>.</li>
+
+ <li><p>Strip any U+0009 CHARACTER TABULATION (tab), U+000A LINE
+ FEED (LF), and U+000D CARRIAGE RETURN (CR) characters from <var title="">url</var>.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the <var title="">url</var> value to an <a href=#absolute-url>absolute URL</a>,
+ relative to the <code><a href=#the-meta-element>meta</a></code> element. If this fails, abort
+ these steps.</li>
+
+ <li>
+
+ <p>Perform one or more of the following steps:</p>
+
+ <ul><li>
+
+ <p>After the refresh has come due (as defined below), if the
+ user has not canceled the redirect and if the
+ <code><a href=#the-meta-element>meta</a></code> element's <code><a href=#document>Document</a></code>'s
+ <a href=#browsing-context>browsing context</a> did not have the <a href=#sandboxed-automatic-features-browsing-context-flag>sandboxed
+ automatic features browsing context flag</a> set when the
+ <code><a href=#document>Document</a></code> was created, <a href=#navigate title=navigate>navigate</a><!--DONAV meta refresh--> the
+ <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> to <var title="">url</var>, with <a href=#replacement-enabled>replacement enabled</a>, and
+ with the <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a>
+ as the <a href=#source-browsing-context>source browsing context</a>.</p>
+
+ <p>For the purposes of the previous paragraph, a refresh is
+ said to have come due as soon as the <em>later</em> of the
+ following two conditions occurs:</p>
+
+ <ul><li>At least <var title="">time</var> seconds have elapsed
+ since the document has <a href=#completely-loaded>completely loaded</a>,
+ adjusted to take into account user or user agent
+ preferences.</li>
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/774 -->
+
+ <li>At least <var title="">time</var> seconds have elapsed
+ since the <code><a href=#the-meta-element>meta</a></code> element was <a href=#insert-an-element-into-a-document title="insert
+ an element into a document">inserted into the
+ <code>Document</code></a>, adjusted to take into account
+ user or user agent preferences.</li>
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/772 -->
+
+ </ul></li>
+
+ <li><p>Provide the user with an interface that, when selected,
+ <a href=#navigate title=navigate>navigates</a><!--DONAV meta
+ refresh--> a <a href=#browsing-context>browsing context</a> to <var title="">url</var>, with the document's browsing context as the
+ <a href=#source-browsing-context>source browsing context</a>.</li>
+
+ <li><p>Do nothing.</li>
+
+ </ul><p>In addition, the user agent may, as with anything, inform the
+ user of any and all aspects of its operation, including the
+ state of any timers, the destinations of any timed redirects,
+ and so forth.</p>
+
+ </li>
+
+ </ol></div>
+
+ <p>For <code><a href=#the-meta-element>meta</a></code> elements with an <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute in the
+ <a href=#attr-meta-http-equiv-refresh title=attr-meta-http-equiv-refresh>Refresh state</a>,
+ the <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute must
+ have a value consisting either of:</p>
+
+ <ul><li>just a <a href=#valid-non-negative-integer>valid non-negative integer</a>, or</li>
+
+ <li>a <a href=#valid-non-negative-integer>valid non-negative integer</a>, followed by a
+ U+003B SEMICOLON character (;), followed by one or more <a href=#space-character title="space character">space characters</a>, followed by a
+ substring that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match
+ for the string "<code title="">URL</code>", followed by a U+003D
+ EQUALS SIGN character (=), followed by a <a href=#valid-url>valid URL</a>
+ that does not start with a literal U+0027 APOSTROPHE (') or
+ U+0022 QUOTATION MARK (") character.</li>
+
+ </ul><p>In the former case, the integer represents a number of seconds
+ before the page is to be reloaded; in the latter case the integer
+ represents a number of seconds before the page is to be replaced
+ by the page at the given <a href=#url>URL</a>.</p>
+
+ <div class=example>
+
+ <p>A news organization's front page could include the following
+ markup in the page's <code><a href=#the-head-element>head</a></code> element, to ensure that
+ the page automatically reloads from the server every five
+ minutes:</p>
+
+ <pre>&lt;meta http-equiv="Refresh" content="300"&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>A sequence of pages could be used as an automated slide show
+ by making each page refresh to the next page in the sequence,
+ using markup such as the following:</p>
+
+ <pre>&lt;meta http-equiv="Refresh" content="20; URL=page4.html"&gt;</pre>
+
+ </div>
+
+ </dd>
+
+ <dt class=impl><dfn id=attr-meta-http-equiv-set-cookie title=attr-meta-http-equiv-set-cookie>Cookie setter</dfn> (<code title="">http-equiv="set-cookie"</code>)
+
+ <dd class=impl>
+
+ <p>This pragma sets an HTTP cookie. <a href=#refsCOOKIES>[COOKIES]</a></p>
+
+ <p>It is non-conforming. Real HTTP headers should be used instead.</p>
+
+ <ol><li><p>If the <code><a href=#the-meta-element>meta</a></code> element has no <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute, or if that
+ attribute's value is the empty string, then abort these
+ steps.</li>
+
+ <li><p><a href=#obtain-the-storage-mutex>Obtain the storage mutex</a>.</li>
+
+ <li><p>Act as if <a href=#receives-a-set-cookie-string title="receives a
+ set-cookie-string">receiving a set-cookie-string</a> for
+ <a href="#the-document's-address">the document's address</a> via a "non-HTTP" API,
+ consisting of the value of the element's <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute encoded as
+ UTF-8. <a href=#refsCOOKIES>[COOKIES]</a> <a href=#refsRFC3629>[RFC3629]</a></li>
+
+ </ol></dd>
+
+ </dl><p>There must not be more than one <code><a href=#the-meta-element>meta</a></code> element with
+ any particular state in the document at a time.</p>
+
+
+ <h5 id=other-pragma-directives><span class=secno>4.2.5.4 </span>Other pragma directives</h5>
+
+ <p><dfn id=concept-http-equiv-extensions title=concept-http-equiv-extensions>Extensions to the
+ predefined set of pragma directives</dfn> may, under certain
+ conditions, be registered in the <a href=http://wiki.whatwg.org/wiki/PragmaExtensions>WHATWG Wiki
+ PragmaExtensions page</a>. <a href=#refsWHATWGWIKI>[WHATWGWIKI]</a></p>
+
+ <p>Such extensions must use a name that is identical to an HTTP
+ header registered in the Permanent Message Header Field Registry,
+ and must have behavior identical to that described for the HTTP
+ header. <a href=#refsIANAPERMHEADERS>[IANAPERMHEADERS]</a></p>
+
+ <p>Pragma directives corresponding to headers describing metadata,
+ or not requiring specific user agent processing, must not be
+ registered; instead, use <a href=#concept-meta-extensions title=concept-meta-extensions>metadata names</a>. Pragma
+ directives corresponding to headers that affect the HTTP processing
+ model (e.g. caching) must not be registered, as they would result in
+ HTTP-level behavior being different for user agents that implement
+ HTML than for user agents that do not.</p>
+
+ <p>Anyone is free to edit the WHATWG Wiki PragmaExtensions page at
+ any time to add a pragma directive satisfying these conditions. Such
+ registrations must specify the following information:</p>
+
+ <dl><dt>Keyword</dt>
+
+ <dd><p>The actual name being defined. The name must match a
+ previously-registered HTTP name with the same
+ requirements.</dd>
+
+
+ <dt>Brief description</dt>
+
+ <dd><p>A short non-normative description of the purpose of the
+ pragma directive.</dd>
+
+
+ <dt>Specification</dt>
+
+ <dd>A link to the specification defining the corresponding HTTP
+ header.</dd>
+
+ </dl><div class=impl>
+
+ <p>Conformance checkers must use the information given on the WHATWG
+ Wiki PragmaExtensions page to establish if a value is allowed or
+ not: values defined in this specification or listed on the
+ aforementioned page must be accepted, whereas values not listed in
+ either this specification or on the aforementioned page must be
+ rejected as invalid. Conformance checkers may cache this information
+ (e.g. for performance reasons or to avoid the use of unreliable
+ network connectivity).</p>
+
+ </div>
+
+
+
+
+ <h5 id=charset><span class=secno>4.2.5.5 </span>Specifying the document's character encoding</h5>
+
+ <!-- READ ME WHEN EDITING: if we ever move this to the "writing
+ HTML" section, then we have to duplicate the requirements in the
+ parsing section for conformance checkers, and we have to make sure
+ that the requirements for charset="" apply even in XML, for the
+ polyglot hack. -->
+
+ <p>A <dfn id=character-encoding-declaration>character encoding declaration</dfn> is a mechanism by
+ which the character encoding used to store or transmit a document is
+ specified.</p>
+
+ <p>The following restrictions apply to character encoding
+ declarations:</p>
+
+ <ul><li>The character encoding name given must be the name of the
+ character encoding used to serialize the file.</li>
+
+ <li>The value must be a valid character encoding name, and must be
+ an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the
+ <a href=#preferred-mime-name>preferred MIME name</a> for that encoding. <a href=#refsIANACHARSET>[IANACHARSET]</a></li>
+
+ <li>The character encoding declaration must be serialized without
+ the use of <a href=#syntax-charref title=syntax-charref>character references</a>
+ or character escapes of any kind.</li>
+
+ <li id=charset1024><span id=charset512 title="">The element
+ containing the character encoding declaration must be serialized
+ completely within the first 1024 bytes of the document.</span></li>
+ <!-- span is for historical reasons, to keep an old ID alive -->
+
+ </ul><p>In addition, due to a number of restrictions on <code><a href=#the-meta-element>meta</a></code>
+ elements, there can only be one <code><a href=#the-meta-element>meta</a></code>-based character
+ encoding declaration per document.</p> <!-- conformance criteria for
+ this one are given in the XML spec, the <meta> section just after
+ defining charset="", and the character encoding pragma section. Note
+ that you _can_ have two character encoding declaration per document,
+ if the document is an XML document and one is an XML declaration,
+ the other is <meta charset>, and the encoding is UTF-8. -->
+
+ <p>If an <a href=#html-documents title="HTML documents">HTML document</a> does not
+ start with a BOM, and if its encoding is not explicitly given by
+ <a href=#content-type title=Content-Type>Content-Type metadata</a>, and the
+ document is not <a href=#an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a>, then the
+ character encoding used must be an <a href=#ascii-compatible-character-encoding>ASCII-compatible character
+ encoding</a>, and, in addition, if that encoding isn't US-ASCII
+ itself, then the encoding must be specified using a
+ <code><a href=#the-meta-element>meta</a></code> element with a <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code> attribute or a
+ <code><a href=#the-meta-element>meta</a></code> element with an <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute in the
+ <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding declaration
+ state</a>.</p>
+
+ <p>If the document is <a href=#an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a>, the
+ document must not have a <a href=#character-encoding-declaration>character encoding
+ declaration</a>. (In this case, the source is already decoded,
+ since it is part of the document that contained the
+ <code><a href=#the-iframe-element>iframe</a></code>.)</p>
+
+ <p>If an <a href=#html-documents title="HTML documents">HTML document</a> contains
+ a <code><a href=#the-meta-element>meta</a></code> element with a <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code> attribute or a
+ <code><a href=#the-meta-element>meta</a></code> element with an <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute in the
+ <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding declaration
+ state</a>, then the character encoding used must be an
+ <a href=#ascii-compatible-character-encoding>ASCII-compatible character encoding</a>.</p>
+
+ <p>Authors are encouraged to use UTF-8. Conformance checkers may
+ advise authors against using legacy encodings. <a href=#refsRFC3629>[RFC3629]</a></p>
+
+ <div class=impl>
+
+ <p>Authoring tools should default to using UTF-8 for newly-created
+ documents. <a href=#refsRFC3629>[RFC3629]</a></p>
+
+ </div>
+
+ <p>Encodings in which a series of bytes in the range 0x20 to 0x7E
+ can encode characters other than the corresponding characters in the
+ range U+0020 to U+007E represent a potential security vulnerability:
+ a user agent that does not support the encoding (or does not support
+ the label used to declare the encoding, or does not use the same
+ mechanism to detect the encoding of unlabelled content as another
+ user agent) might end up interpreting technically benign plain text
+ content as HTML tags and JavaScript. For example, this applies to
+ encodings in which the bytes corresponding to "<code title="">&lt;script&gt;</code>" in ASCII can encode a different
+ string. Authors should not use such encodings, which are known to
+ include JIS_C6226-1983<!-- aka JIS-X-0208, x-JIS0208 -->,
+ JIS_X0212-1990<!-- aka JIS-X-0212 -->, HZ-GB-2312<!-- has crazy
+ handling of ASCII "~" -->, JOHAB <!-- a supplementary encoding in KS
+ C 5601-1992 Annex 3 (= KS X 1001:1998 Annex 3) --> (Windows code
+ page 1361), encodings based on ISO-2022<!--
+ http://krijnhoetmer.nl/irc-logs/whatwg/20090628#l-422 and
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-October/023797.html
+ -->, and encodings based on EBCDIC. Furthermore, authors must not
+ use the CESU-8, UTF-7, BOCU-1 and SCSU encodings, which also fall
+ into this category, because these encodings were never intended for
+ use for Web content.
+ <a href=#refsRFC1345>[RFC1345]</a><!-- for the JIS types -->
+ <a href=#refsRFC1842>[RFC1842]</a><!-- HZ-GB-2312 -->
+ <a href=#refsRFC1468>[RFC1468]</a><!-- ISO-2022-JP -->
+ <a href=#refsRFC2237>[RFC2237]</a><!-- ISO-2022-JP-1 -->
+ <a href=#refsRFC1554>[RFC1554]</a><!-- ISO-2022-JP-2 -->
+ <a href=#refsRFC1922>[RFC1922]</a><!-- ISO-2022-CN and ISO-2022-CN-EXT -->
+ <a href=#refsRFC1557>[RFC1557]</a><!-- ISO-2022-KR -->
+ <a href=#refsCESU8>[CESU8]</a>
+ <a href=#refsUTF7>[UTF7]</a>
+ <a href=#refsBOCU1>[BOCU1]</a>
+ <a href=#refsSCSU>[SCSU]</a>
+ <!-- no idea what to reference for JOHAB or EBCDIC, so... -->
+ </p>
+
+ <p>Authors should not use UTF-32, as the encoding detection
+ algorithms described in this specification intentionally do not
+ distinguish it from UTF-16. <a href=#refsUNICODE>[UNICODE]</a></p>
+
+ <p class=note>Using non-UTF-8 encodings can have unexpected
+ results on form submission and URL encodings, which use the
+ <a href="#document's-character-encoding">document's character encoding</a> by default.</p>
+
+ <p>In XHTML, the XML declaration should be used for inline character
+ encoding information, if necessary.</p>
+
+ <div class=example>
+
+ <p>In HTML, to declare that the character encoding is UTF-8, the
+ author could include the following markup near the top of the
+ document (in the <code><a href=#the-head-element>head</a></code> element):</p>
+
+ <pre>&lt;meta charset="utf-8"&gt;</pre>
+
+ <p>In XML, the XML declaration would be used instead, at the very
+ top of the markup:</p>
+
+ <pre>&lt;?xml version="1.0" encoding="utf-8"?&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-style-element><span class=secno>4.2.6 </span>The <dfn><code>style</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#metadata-content>Metadata content</a>.</dd>
+ <dd>If the <code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code> attribute is present: <a href=#flow-content>flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>If the <code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code> attribute is absent: where <a href=#metadata-content>metadata content</a> is expected.</dd>
+ <dd>If the <code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code> attribute is absent: in a <code><a href=#the-noscript-element>noscript</a></code> element that is a child of a <code><a href=#the-head-element>head</a></code> element.</dd>
+ <dd>If the <code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code> attribute is present: where <a href=#flow-content>flow content</a> is expected, but before any other <a href=#flow-content>flow content</a> other than other <code><a href=#the-style-element>style</a></code> elements and <a href=#inter-element-whitespace>inter-element whitespace</a>.</dd>
+ <dt>Content model:</dt>
+ <dd>Depends on the value of the <code title=attr-style-type><a href=#attr-style-type>type</a></code> attribute, but must match requirements described in prose below.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-style-media><a href=#attr-style-media>media</a></code></dd>
+ <dd><code title=attr-style-type><a href=#attr-style-type>type</a></code></dd>
+ <dd><code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code></dd>
+ <dd>Also, the <code title=attr-style-title><a href=#attr-style-title>title</a></code> attribute has special semantics on this element.</dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlstyleelement>HTMLStyleElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-style-disabled title=dom-style-disabled>disabled</a>;
+ attribute DOMString <a href=#dom-style-media title=dom-style-media>media</a>;
+ attribute DOMString <a href=#dom-style-type title=dom-style-type>type</a>;
+ attribute boolean <a href=#dom-style-scoped title=dom-style-scoped>scoped</a>;
+};
+<a href=#htmlstyleelement>HTMLStyleElement</a> implements <span>LinkStyle</span>;</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-style-element>style</a></code> element allows authors to embed style
+ information in their documents. The <code><a href=#the-style-element>style</a></code> element is
+ one of several inputs to the <a href=#styling>styling processing
+ model</a>. The element does not <a href=#represents title=represents>represent</a> content for the user.</p>
+
+ <p>The <dfn id=attr-style-type title=attr-style-type><code>type</code></dfn>
+ attribute gives the styling language. If the attribute is present,
+ its value must be a <a href=#valid-mime-type>valid MIME type</a> that designates a
+ styling language. The <code title="">charset</code> parameter must
+ not be specified. The default value for the <code title=attr-style-type><a href=#attr-style-type>type</a></code> attribute, which is used if the
+ attribute is absent, is "<code title="">text/css</code>". <a href=#refsRFC2318>[RFC2318]</a></p>
+
+ <div class=impl>
+
+ <!-- this paragraph is also present in the <script> section -->
+ <p>When examining types to determine if they support the language,
+ user agents must not ignore unknown MIME parameters &mdash; types
+ with unknown parameters must be assumed to be unsupported. The <code title="">charset</code> parameter must be treated as an unknown
+ parameter for the purpose of comparing <a href=#mime-type title="MIME type">MIME
+ types</a> here.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-style-media title=attr-style-media><code>media</code></dfn>
+ attribute says which media the styles apply to. The value must be a
+ <a href=#valid-media-query>valid media query</a>. <span class=impl>The user agent
+ must apply the styles when the <code title=attr-style-media><a href=#attr-style-media>media</a></code> attribute's value
+ <a href=#matches-the-environment>matches the environment</a> and the other relevant
+ conditions apply, and must not apply them otherwise.</span></p><!--
+ note similar text in <link> section -->
+
+ <div class=impl>
+
+ <p class=note>The styles might be further limited in scope,
+ e.g. in CSS with the use of <code title="">@media</code>
+ blocks. This specification does not override such further
+ restrictions or requirements.</p><!-- note similar text in <link>
+ section -->
+
+ </div>
+
+ <p id=style-default-media>The default, if the <code title=attr-style-media><a href=#attr-style-media>media</a></code> attribute is omitted, is
+ "<code title="">all</code>", meaning that by default styles apply to
+ all media.</p>
+
+ <p>The <dfn id=attr-style-scoped title=attr-style-scoped><code>scoped</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. If present, it
+ indicates that the styles are intended just for the subtree rooted
+ at the <code><a href=#the-style-element>style</a></code> element's parent element, as opposed to
+ the whole <code><a href=#document>Document</a></code>. If the <code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code> attribute is present, the
+ <code><a href=#the-style-element>style</a></code> element must be the first element of <a href=#flow-content>flow
+ content</a> in its parent element, if any.</p>
+
+ <div class=impl>
+
+ <p>If the <code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code> attribute is
+ present, then the user agent must apply the specified style
+ information only to the <code><a href=#the-style-element>style</a></code> element's parent element
+ (if any), and that element's descendants. Otherwise, the specified
+ styles must, if applied, be applied to the entire document.</p>
+
+ <p>For scoped CSS resources, the effect of @-rules must be scoped to
+ the scoped sheet and its subresources, even if the @-rule in
+ question would ordinarily apply to all style sheets that affect the
+ <code><a href=#document>Document</a></code>. Any '@page' rules in scoped CSS resources
+ must be ignored.</p>
+
+ <p class=example>For example, an '@font-face' rule defined in a
+ scoped style sheet would only define the font for the purposes of
+ font rules in the scoped section; style sheets outside the scoped
+ section using the same font name would not end up using that
+ embedded font.</p>
+
+ </div>
+
+ <p id=title-on-style>The <dfn id=attr-style-title title=attr-style-title><code>title</code></dfn> attribute on
+ <code><a href=#the-style-element>style</a></code> elements defines <span>alternative style sheet
+ sets</span>. If the <code><a href=#the-style-element>style</a></code> element has no <code title=attr-style-title><a href=#attr-style-title>title</a></code> attribute, then it has no
+ title; the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute of
+ ancestors does not apply to the <code><a href=#the-style-element>style</a></code> element. <a href=#refsCSSOM>[CSSOM]</a></p>
+
+ <p class=note>The <code title=attr-style-title><a href=#attr-style-title>title</a></code>
+ attribute on <code><a href=#the-style-element>style</a></code> elements, like the <code title=attr-link-title><a href=#attr-link-title>title</a></code> attribute on <code><a href=#the-link-element>link</a></code>
+ elements, differs from the global <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute in that a
+ <code><a href=#the-style-element>style</a></code> block without a title does not inherit the title
+ of the parent element: it merely has no title.</p>
+
+ <p>The <code><a href=#textcontent>textContent</a></code> of a <code><a href=#the-style-element>style</a></code> element must
+ match the <code title="">style</code> production in the following
+ ABNF, the character set for which is Unicode. <a href=#refsABNF>[ABNF]</a></p>
+
+ <pre>style = no-c-start *( c-start no-c-end c-end no-c-start )
+no-c-start = &lt;any string that doesn't contain a substring that matches c-start &gt;
+c-start = "&lt;!--"
+no-c-end = &lt;any string that doesn't contain a substring that matches c-end &gt;
+c-end = "--&gt;"</pre>
+
+ <!-- Unmatched comment-like syntax is invalid on a temporary basis,
+ waiting for IE, WebKit, and Opera to fix their parsing bug
+ whereby such comments trigger a weird escape in which </style>
+ is ignored. Otherwise, parsing behaviour in those browsers
+ could differ substantially from the parsing behaviour of HTML5.
+ Once everyone follows the HTML5 spec, we can drop this
+ requirement.
+ -->
+
+ <div class=impl>
+
+ <p>All descendant elements must be processed, according to their
+ semantics, before the <code><a href=#the-style-element>style</a></code> element itself is
+ evaluated. For styling languages that consist of pure text (as
+ opposed to XML), user agents must evaluate <code><a href=#the-style-element>style</a></code>
+ elements by passing the concatenation of the contents of all the
+ <a href=#text-node title="text node">text nodes</a> that are children of the
+ <code><a href=#the-style-element>style</a></code> element (not any other nodes such as comments or
+ elements), in <a href=#tree-order>tree order</a>, to the style system. For
+ XML-based styling languages, user agents must pass all the child
+ nodes of the <code><a href=#the-style-element>style</a></code> element to the style system.</p>
+
+ <p>All <a href=#url title=URL>URLs</a> found by the styling language's
+ processor must be <a href=#resolve-a-url title="resolve a url">resolved</a>,
+ relative to the element (or as defined by the styling language),
+ when the processor is invoked.<!-- so dynamic changes to the base
+ URL don't affect the CSS --></p>
+
+ <!-- the next few paragraph are similar to text in the <style> section -->
+ <p>Once the attempts to obtain the style sheet's <a href=#critical-subresources>critical
+ subresources</a>, if any, are complete, or, if the style sheet
+ has no <a href=#critical-subresources>critical subresources</a>, once the style sheet has
+ been parsed and processed, the user agent must, if the loads were
+ successful or there were none, <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#the-style-element>style</a></code> element,
+ or, if one of the style sheet's <a href=#critical-subresources>critical subresources</a>
+ failed to completely load for any reason (e.g. DNS error, HTTP 404
+ response, a connection being prematurely closed, unsupported
+ Content-Type), <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-error>error</code> at the
+ <code><a href=#the-style-element>style</a></code> element. Non-network errors in processing the
+ style sheet or its subresources (e.g. CSS parse errors, PNG decoding
+ errors) are not failures for the purposes of this paragraph.</p>
+
+ <p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#dom-manipulation-task-source>DOM manipulation task
+ source</a>.</p>
+
+ <p>The element must <a href=#delay-the-load-event>delay the load event</a> of the
+ element's document until all the attempts to obtain the style
+ sheet's <a href=#critical-subresources>critical subresources</a>, if any, are
+ complete.</p>
+
+ </div>
+
+ <p class=note>This specification does not specify a style system,
+ but CSS is expected to be supported by most Web browsers. <a href=#refsCSS>[CSS]</a></p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-style-media title=dom-style-media><code>media</code></dfn>, <dfn id=dom-style-type title=dom-style-type><code>type</code></dfn> and <dfn id=dom-style-scoped title=dom-style-scoped><code>scoped</code></dfn> IDL attributes
+ must <a href=#reflect>reflect</a> the respective content attributes of the
+ same name.</p>
+
+ </div>
+
+ <p>The <dfn id=dom-style-disabled title=dom-style-disabled><code>disabled</code></dfn>
+ IDL attribute behaves as defined <a href=#dom-linkstyle-disabled title=dom-linkstyle-disabled>for the alternative style sheets
+ DOM</a>.</p>
+
+ <p>The <code>LinkStyle</code> interface is also implemented by
+ this element; the <a href=#styling>styling processing model</a> defines
+ how. <a href=#refsCSSOM>[CSSOM]</a></p>
+
+ <div class=example>
+
+ <p>The following document has its emphasis styled as bright red
+ text rather than italics text, while leaving titles of works and
+ Latin words in their default italics. It shows how using
+ appropriate elements enables easier restyling of documents.</p>
+
+ <pre>&lt;!DOCTYPE html&gt;
+&lt;html lang="en-US"&gt;
+ &lt;head&gt;
+ &lt;title&gt;My favorite book&lt;/title&gt;
+ &lt;style&gt;
+ body { color: black; background: white; }
+ em { font-style: normal; color: red; }
+ &lt;/style&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;p&gt;My &lt;em&gt;favorite&lt;/em&gt; book of all time has &lt;em&gt;got&lt;/em&gt; to be
+ &lt;cite&gt;A Cat's Life&lt;/cite&gt;. It is a book by P. Rahmel that talks
+ about the &lt;i lang="la"&gt;Felis Catus&lt;/i&gt; in modern human society.&lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+
+
+
+ <h4 id=styling><span class=secno>4.2.7 </span><dfn title="styling processing model">Styling</dfn></h4>
+
+ <p>The <code><a href=#the-link-element>link</a></code> and <code><a href=#the-style-element>style</a></code> elements can provide
+ styling information for the user agent to use when rendering the
+ document. The DOM Styling specification specifies what styling
+ information is to be used by the user agent and how it is to be
+ used. <a href=#refsCSSOM>[CSSOM]</a></p>
+
+ <p>The <code><a href=#the-style-element>style</a></code> and <code><a href=#the-link-element>link</a></code> elements implement
+ the <code>LinkStyle</code> interface. <a href=#refsCSSOM>[CSSOM]</a></p>
+
+ <div class=impl>
+
+ <p>For <code><a href=#the-style-element>style</a></code> elements, if the user agent does not
+ support the specified styling language, then the <code title=dom-LinkStyle-sheet>sheet</code> attribute of the element's
+ <code>LinkStyle</code> interface must return null. Similarly,
+ <code><a href=#the-link-element>link</a></code> elements that do not represent <a href=#link-type-stylesheet title=rel-stylesheet>external resource links that contribute to
+ the styling processing model</a> (i.e. that do not have a <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword in their <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute), and <code><a href=#the-link-element>link</a></code>
+ elements whose specified resource has not yet been fetched, or is
+ not in a supported styling language, must have their
+ <code>LinkStyle</code> interface's <code title=dom-LinkStyle-sheet>sheet</code> attribute return null.</p>
+
+ <p>Otherwise, the <code>LinkStyle</code> interface's <code title=dom-LinkStyle-sheet>sheet</code> attribute must return a
+ <code>StyleSheet</code> object with the following properties: <a href=#refsCSSOM>[CSSOM]</a></p>
+
+ <dl><dt>The style sheet type</dt>
+
+ <dd><p>The style sheet type must be the same as the style's specified
+ type. For <code><a href=#the-style-element>style</a></code> elements, this is the same as the
+ <code title=attr-style-type><a href=#attr-style-type>type</a></code> content attribute's
+ value, or <code title="">text/css</code> if that is omitted. For
+ <code><a href=#the-link-element>link</a></code> elements, this is the <a href=#content-type title=Content-Type>Content-Type metadata of the specified
+ resource</a>.</dd>
+
+ <dt>The style sheet location</dt>
+
+ <dd><p>For <code><a href=#the-link-element>link</a></code> elements, the location must be the
+ result of <a href=#resolve-a-url title="resolve a url">resolving</a> the
+ <a href=#url>URL</a> given by the element's <code title=attr-link-href><a href=#attr-link-href>href</a></code> content attribute, relative to
+ the element, or the empty string if that fails. For
+ <code><a href=#the-style-element>style</a></code> elements, there is no location.</dd> <!--
+ note that this might not match the style sheet URL, if the base URL
+ has changed for instance -->
+
+ <dt>The style sheet media</dt>
+
+ <dd><p>The media must be the same as the value of the element's
+ <code title="">media</code> content attribute, or the empty string,
+ if the attribute is omitted.</dd>
+
+ <dt>The style sheet title</dt>
+
+ <dd><p>The title must be the same as the value of the element's
+ <code title=dom-title><a href=#dom-title>title</a></code> content attribute, if the
+ attribute is present and has a non-empty value. If the attribute is
+ absent or its value is the empty string, then the style sheet does
+ not have a title (it is the empty string). The title is used for
+ defining <span>alternative style sheet sets</span>.</dd>
+
+ <dt>The style sheet alternate flag</dt>
+
+ <dd><p>For <code><a href=#the-link-element>link</a></code> elements, true if <a href=#the-link-is-an-alternative-stylesheet>the link is an
+ alternative stylesheet</a>. In all other cases, false.</dd>
+
+<!--
+ <dt>The style sheet disabled flag</dt>
+ (not included, because I assume CSSOM will change to not require
+ this spec to initialise the value, but will instead initialise it
+ based on the other values)
+-->
+
+ </dl><p>The same object must be returned each time.</p>
+
+ <p>The <dfn id=dom-linkstyle-disabled title=dom-LinkStyle-disabled><code>disabled</code></dfn> IDL
+ attribute on <code><a href=#the-link-element>link</a></code> and <code><a href=#the-style-element>style</a></code> elements must
+ return false and do nothing on setting, if the <code title=dom-linkstyle-sheet>sheet</code> attribute of their
+ <code>LinkStyle</code> interface is null. Otherwise, it must return
+ the value of the <code>StyleSheet</code> interface's <code title=dom-stylesheet-disabled>disabled</code> attribute on
+ getting, and forward the new value to that same attribute on
+ setting.</p>
+
+ <!-- [CSSOM] covers the following: the term "alternative style sheet
+ sets", the term "default style sheet set", preferred stylesheets,
+ alternative stylesheets, persistent stylesheets, ordering of
+ stylesheets, dynamic additions/removals, window.styleSheets, style
+ sheets given by HTTP Link: headers, and the alternative style sheet
+ API -->
+
+ <p id=alternate-style-sheets>The rules for handling alternative
+ style sheets are defined in the CSS object model specification. <a href=#refsCSSOM>[CSSOM]</a></p>
+
+ <hr><p>Style sheets, whether added by a <code><a href=#the-link-element>link</a></code> element, a
+ <code><a href=#the-style-element>style</a></code> element, an <code>&lt;?xml-stylesheet&gt;</code> PI,
+ an HTTP <code title=http-link>Link:</code> header, or some other
+ mechanism, have a <dfn id=style-sheet-ready>style sheet ready</dfn> flag, which is
+ initially unset.</p>
+
+ <p>When a style sheet is ready to be applied, its <a href=#style-sheet-ready>style sheet
+ ready</a> flag must be set. If the style sheet referenced no
+ other resources (e.g. it was an internal style sheet given by a
+ <code><a href=#the-style-element>style</a></code> element with no <code title="">@import</code>
+ rules), then the style rules must be synchronously made available to
+ script; otherwise, the style rules must only be made available to
+ script once the <a href=#event-loop>event loop</a> reaches its "update the
+ rendering" step.</p>
+
+ <p>A style sheet in the context of the <code><a href=#document>Document</a></code> of an
+ <a href=#html-parser>HTML parser</a> or <a href=#xml-parser>XML parser</a> is said to be
+ <dfn id=a-style-sheet-that-is-blocking-scripts>a style sheet that is blocking scripts</dfn> if the element was
+ created by that <code><a href=#document>Document</a></code>'s parser, and the element is
+ either a <code><a href=#the-style-element>style</a></code> element or a <code><a href=#the-link-element>link</a></code> element
+ that was an <a href=#link-type-stylesheet title=rel-stylesheet>external resource link that
+ contributes to the styling processing model</a> when the element
+ was created by the parser, and the element's style sheet was enabled
+ when the element was created by the parser, and the element's
+ <a href=#style-sheet-ready>style sheet ready</a> flag is not yet set, and, the last
+ time the <a href=#event-loop>event loop</a> reached step 1, the element was
+ <a href=#in-a-document title="in a document">in that <code>Document</code></a>,
+ and the user agent hasn't given up on that particular style sheet
+ yet. A user agent may give up on a style sheet at any time.</p>
+
+ <p class=note>Giving up on a style sheet before the style sheet
+ loads, if the style sheet eventually does still load, means that the
+ script might end up operating with incorrect information. For
+ example, if a style sheet sets the color of an element to green, but
+ a script that inspects the resulting style is executed before the
+ sheet is loaded, the script will find that the element is black (or
+ whatever the default color is), and might thus make poor choices
+ (e.g. deciding to use black as the color elsewhere on the page,
+ instead of green). Implementors have to balance the likelihood of a
+ script using incorrect information with the performance impact of
+ doing nothing while waiting for a slow network request to
+ finish.</p>
+
+ <p>A <code><a href=#document>Document</a></code> <dfn id=has-a-style-sheet-that-is-blocking-scripts>has a style sheet that is blocking
+ scripts</dfn> if there is either <a href=#a-style-sheet-that-is-blocking-scripts>a style sheet that is
+ blocking scripts</a> in the context of that
+ <code><a href=#document>Document</a></code>, or if that <code><a href=#document>Document</a></code> is in a
+ <a href=#browsing-context>browsing context</a> that has a <a href=#parent-browsing-context>parent browsing
+ context</a>, and the <a href=#active-document>active document</a> of that
+ <a href=#parent-browsing-context>parent browsing context</a> itself <a href=#has-a-style-sheet-that-is-blocking-scripts>has a style sheet
+ that is blocking scripts</a>.</p>
+
+ <p>A <code><a href=#document>Document</a></code> <dfn id=has-no-style-sheet-that-is-blocking-scripts>has no style sheet that is blocking
+ scripts</dfn> if it does not <a href=#has-a-style-sheet-that-is-blocking-scripts title="has a style sheet that is
+ blocking scripts">have a style sheet that is blocking scripts</a>
+ as defined in the previous paragraph.</p>
+
+ </div>
+
+
+
+ <h3 id=scripting-1><span class=secno>4.3 </span>Scripting</h3>
+
+ <p>Scripts allow authors to add interactivity to their documents.</p>
+
+ <p>Authors are encouraged to use declarative alternatives to
+ scripting where possible, as declarative mechanisms are often more
+ maintainable, and many users disable scripting.</p>
+
+ <div class=example>
+ <p>For example, instead of using script to show or hide a section
+ to show more details, the <code><a href=#the-details-element>details</a></code> element could be
+ used.</p>
+ </div>
+
+ <p>Authors are also encouraged to make their applications degrade
+ gracefully in the absence of scripting support.</p>
+
+ <div class=example>
+ <p>For example, if an author provides a link in a table header to
+ dynamically resort the table, the link could also be made to
+ function without scripts by requesting the sorted table from the
+ server.</p>
+ </div>
+
+
+ <h4 id=the-script-element><span class=secno>4.3.1 </span>The <dfn id=script><code>script</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#metadata-content>Metadata content</a>.</dd>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#metadata-content>metadata content</a> is expected.</dd>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>If there is no <code title=attr-script-src><a href=#attr-script-src>src</a></code>
+ attribute, depends on the value of the <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute, but must match
+ <a href=#restrictions-for-contents-of-script-elements>script content restrictions</a>.</dd>
+ <dd>If there <em>is</em> a <code title=attr-script-src><a href=#attr-script-src>src</a></code>
+ attribute, the element must be either empty or contain only
+ <a href=#inline-documentation-for-external-scripts>script documentation</a> that also matches <a href=#restrictions-for-contents-of-script-elements>script
+ content restrictions</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-script-src><a href=#attr-script-src>src</a></code></dd>
+ <dd><code title=attr-script-async><a href=#attr-script-async>async</a></code></dd>
+ <dd><code title=attr-script-defer><a href=#attr-script-defer>defer</a></code></dd>
+ <dd><code title=attr-script-type><a href=#attr-script-type>type</a></code></dd>
+ <dd><code title=attr-script-charset><a href=#attr-script-charset>charset</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlscriptelement>HTMLScriptElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-script-src title=dom-script-src>src</a>;
+ attribute boolean <a href=#dom-script-async title=dom-script-async>async</a>;
+ attribute boolean <a href=#dom-script-defer title=dom-script-defer>defer</a>;
+ attribute DOMString <a href=#dom-script-type title=dom-script-type>type</a>;
+ attribute DOMString <a href=#dom-script-charset title=dom-script-charset>charset</a>;
+ attribute DOMString <a href=#dom-script-text title=dom-script-text>text</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-script-element>script</a></code> element allows authors to include dynamic
+ script and data blocks in their documents. The element does not
+ <a href=#represents title=represents>represent</a> content for the user.</p>
+
+ <p>When used to include dynamic scripts, the scripts may either be
+ embedded inline or may be imported from an external file using the
+ <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute. If the language
+ is not that described by "<code title="">text/javascript</code>",
+ then the <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute must
+ be present, as described below. Whatever language is used, the
+ contents of the <code><a href=#the-script-element>script</a></code> element must conform with the
+ requirements of that language's specification.</p>
+
+ <p>When used to include data blocks (as opposed to scripts), the
+ data must be embedded inline, the format of the data must be given
+ using the <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute, the
+ <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute must not be
+ specified, and the contents of the <code><a href=#the-script-element>script</a></code> element must
+ conform to the requirements defined for the format used.</p>
+
+ <p>The <dfn id=attr-script-type title=attr-script-type><code>type</code></dfn>
+ attribute gives the language of the script or format of the data. If
+ the attribute is present, its value must be a <a href=#valid-mime-type>valid MIME
+ type</a>. The <code title="">charset</code> parameter must not be
+ specified. The default, which is used if the attribute is absent,
+ is "<code title="">text/javascript</code>".</p>
+
+ <p>The <dfn id=attr-script-src title=attr-script-src><code>src</code></dfn>
+ attribute, if specified, gives the address of the external script
+ resource to use. The value of the attribute must be a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid
+ non-empty URL potentially surrounded by spaces</a> identifying a
+ script resource of the type given by the <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute, if the attribute is
+ present, or of the type "<code title="">text/javascript</code>", if
+ the attribute is absent. A resource is a script resource of a given
+ type if that type identifies a scripting language and the resource
+ conforms with the requirements of that language's specification.</p>
+
+ <p>The <dfn id=attr-script-charset title=attr-script-charset><code>charset</code></dfn>
+ attribute gives the character encoding of the external script
+ resource. The attribute must not be specified if the <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute is not present. If the
+ attribute is set, its value must be a valid character encoding name,
+ must be an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the
+ <a href=#preferred-mime-name>preferred MIME name</a> for that encoding, and must match
+ the encoding given in the <code title="">charset</code> parameter of
+ the <a href=#content-type title=Content-Type>Content-Type metadata</a> of the
+ external file, if any. <a href=#refsIANACHARSET>[IANACHARSET]</a></p>
+
+ <p>The <dfn id=attr-script-async title=attr-script-async><code>async</code></dfn> and
+ <dfn id=attr-script-defer title=attr-script-defer><code>defer</code></dfn> attributes
+ are <a href=#boolean-attribute title="boolean attribute">boolean attributes</a> that
+ indicate how the script should be executed. The <code title=attr-script-defer><a href=#attr-script-defer>defer</a></code> and <code title=attr-script-async><a href=#attr-script-async>async</a></code> attributes must not be
+ specified if the <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute
+ is not present.</p>
+
+ <p>There are three possible modes that can be selected using these
+ attributes. If the <code title=attr-script-async><a href=#attr-script-async>async</a></code>
+ attribute is present, then the script will be executed
+ asynchronously, as soon as it is available. If the <code title=attr-script-async><a href=#attr-script-async>async</a></code> attribute is not present but
+ the <code title=attr-script-defer><a href=#attr-script-defer>defer</a></code> attribute is
+ present, then the script is executed when the page has finished
+ parsing. If neither attribute is present, then the script is
+ fetched and executed immediately, before the user agent continues
+ parsing the page.</p>
+
+ <p class=note>The exact processing details for these attributes
+ are, for mostly historical reasons, somewhat non-trivial, involving
+ a number of aspects of HTML. The implementation requirements are
+ therefore by necessity scattered throughout the specification. The
+ algorithms below (in this section) describe the core of this
+ processing, but these algorithms reference and are referenced by the
+ parsing rules for <code><a href=#the-script-element>script</a></code> <a href=#scriptTag>start</a>
+ and <a href=#scriptEndTag>end</a> tags in HTML, <a href=#scriptForeignEndTag>in foreign content</a>, and <a href=#scriptTagXML>in XML</a>, the rules for the <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> method, the
+ handling of <a href=#scripting>scripting</a>, etc.</p>
+
+ <p>The <code title=attr-script-defer><a href=#attr-script-defer>defer</a></code> attribute may be
+ specified even if the <code title=attr-script-async><a href=#attr-script-async>async</a></code>
+ attribute is specified, to cause legacy Web browsers that only
+ support <code title=attr-script-defer><a href=#attr-script-defer>defer</a></code> (and not <code title=attr-script-async><a href=#attr-script-async>async</a></code>) to fall back to the <code title=attr-script-defer><a href=#attr-script-defer>defer</a></code> behavior instead of the
+ synchronous blocking behavior that is the default.</p>
+
+ <p>Changing the <code title=attr-script-src><a href=#attr-script-src>src</a></code>, <code title=attr-script-type><a href=#attr-script-type>type</a></code>, <code title=attr-script-charset><a href=#attr-script-charset>charset</a></code>, <code title=attr-script-async><a href=#attr-script-async>async</a></code>, and <code title=attr-script-defer><a href=#attr-script-defer>defer</a></code> attributes dynamically has no
+ direct effect; these attribute are only used at specific times
+ described below.</p> <!-- by implication, changes to the base URL
+ also have no effect -->
+
+ <div class=impl>
+
+ <p>A <code><a href=#the-script-element>script</a></code> element has several associated pieces of
+ state.</p>
+
+ <p>The first is a flag indicating whether or not the script block
+ has been <dfn id=already-started>"already started"</dfn>. Initially,
+ <code><a href=#the-script-element>script</a></code> elements must have this flag unset (script
+ blocks, when created, are not "already started"). The <a href=#concept-node-clone-ext title=concept-node-clone-ext>cloning steps</a> for
+ <code><a href=#the-script-element>script</a></code> elements must set the "already started" flag on
+ the copy if it is set on the element being cloned.</p>
+
+ <p>The second is a flag indicating whether the element was
+ <dfn id=parser-inserted>"parser-inserted"</dfn>. Initially, <code><a href=#the-script-element>script</a></code>
+ elements must have this flag unset. It is set by the <a href=#html-parser>HTML
+ parser</a> and the <a href=#xml-parser>XML parser</a> on <code><a href=#the-script-element>script</a></code>
+ elements they insert and affects the processing of those
+ elements.</p>
+
+ <p>The third is a flag indicating whether the element will
+ <dfn id=force-async>"force-async"</dfn>. Initially, <code><a href=#the-script-element>script</a></code> elements
+ must have this flag set. It is unset by the <a href=#html-parser>HTML parser</a>
+ and the <a href=#xml-parser>XML parser</a> on <code><a href=#the-script-element>script</a></code> elements they
+ insert. In addition, whenever a <code><a href=#the-script-element>script</a></code> element whose
+ <a href=#force-async>"force-async"</a> flag is set has a <code title=attr-script-async><a href=#attr-script-async>async</a></code> content attribute added, the
+ element's <a href=#force-async>"force-async"</a> flag must be unset.</p> <!--
+ there's no need to unset it when the attribute is removed since you
+ can't have the attribute and the flag set at once. -->
+
+ <p>The fourth is a flag indicating whether or not the script block is
+ <dfn id=ready-to-be-parser-executed>"ready to be parser-executed"</dfn>. Initially,
+ <code><a href=#the-script-element>script</a></code> elements must have this flag unset (script
+ blocks, when created, are not "ready to be parser-executed"). This
+ flag is used only for elements that are also
+ <a href=#parser-inserted>"parser-inserted"</a>, to let the parser know when to
+ execute the script.</p>
+
+ <p>The last few pieces of state are <dfn id="the-script-block's-type"><var>the script block's
+ type</var></dfn>, <dfn id="the-script-block's-character-encoding"><var>the script block's character
+ encoding</var></dfn>, and <dfn id="the-script-block's-fallback-character-encoding"><var>the script block's fallback
+ character encoding</var></dfn>. They are determined when the script
+ is prepared, based on the attributes on the element at that time,
+ and the <code><a href=#document>Document</a></code> of the <code><a href=#the-script-element>script</a></code>
+ element.</p>
+
+ <p>When a <code><a href=#the-script-element>script</a></code> element that is not marked as being
+ <a href=#parser-inserted>"parser-inserted"</a> experiences one of the events listed
+ in the following list, the user agent must synchronously <a href=#prepare-a-script title="prepare a script">prepare</a> the <code><a href=#the-script-element>script</a></code>
+ element:</p>
+
+ <ul><li>The <code><a href=#the-script-element>script</a></code> element gets <a href=#insert-an-element-into-a-document title="insert an
+ element into a document">inserted into a document</a>.</li>
+
+ <li>The <code><a href=#the-script-element>script</a></code> element is <a href=#in-a-document>in a
+ <code>Document</code></a> and its child nodes are changed.</li>
+
+ <li>The <code><a href=#the-script-element>script</a></code> element is <a href=#in-a-document>in a
+ <code>Document</code></a> and has a <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute set where previously
+ the element had no such attribute.</li>
+
+ </ul><p>To <dfn id=prepare-a-script title="prepare a script">prepare a script</dfn>, the user
+ agent must act as follows:</p>
+
+ <ol><li>
+
+ <p>If the <code><a href=#the-script-element>script</a></code> element is marked as having
+ <a href=#already-started>"already started"</a>, then the user agent must abort
+ these steps at this point. The script is not executed.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the element has its <a href=#parser-inserted>"parser-inserted"</a> flag set,
+ then set <var title="">was-parser-inserted</var> to true and unset
+ the element's <a href=#parser-inserted>"parser-inserted"</a> flag. Otherwise, set
+ <var title="">was-parser-inserted</var> to false.</p>
+
+ <p class=note>This is done so that if parser-inserted
+ <code><a href=#the-script-element>script</a></code> elements fail to run when the parser tries to
+ run them, e.g. because they are empty or specify an unsupported
+ scripting language, another script can later mutate them and cause
+ them to run again.</p>
+
+ <!-- q.v. http://hsivonen.iki.fi/test/moz/script-setting-src-on-parser-inserted-script.html -->
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">was-parser-inserted</var> is true and the
+ element does not have an <code title=attr-script-async><a href=#attr-script-async>async</a></code> attribute, then set the
+ element's <a href=#force-async>"force-async"</a> flag to true.</p>
+
+ <p class=note>This is done so that if a parser-inserted
+ <code><a href=#the-script-element>script</a></code> element fails to run when the parser tries to
+ run it, but it is later executed after a script dynamically
+ updates it, it will execute asynchronously even if the
+ <code title=attr-script-async><a href=#attr-script-async>async</a></code> attribute isn't
+ set.</p>
+
+ </li>
+
+ <li id=script-processing-empty>
+
+ <p>If the element has no <code title=attr-script-src><a href=#attr-script-src>src</a></code>
+ attribute, and its child nodes, if any, consist only of comment
+ nodes and empty <a href=#text-node title="text node">text nodes</a>, then
+ the user agent must abort these steps at this point. The script is
+ not executed.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the element is not <a href=#in-a-document>in a <code>Document</code></a>,
+ then the user agent must abort these steps at this point. The
+ script is not executed.</p>
+
+ </li>
+
+ <li id=script-processing-prepare>
+
+ <p>If either:</p>
+
+ <ul class=brief><li>the <code><a href=#the-script-element>script</a></code> element has a <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute and its value is
+ the empty string, or</li>
+
+ <li>the <code><a href=#the-script-element>script</a></code> element has no <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute but it has a <code title=attr-script-language><a href=#attr-script-language>language</a></code> attribute and
+ <em>that</em> attribute's value is the empty string, or</li>
+
+ <li>the <code><a href=#the-script-element>script</a></code> element has neither a <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute nor a <code title=attr-script-language><a href=#attr-script-language>language</a></code> attribute, then</li>
+
+ </ul><p>...let <var><a href="#the-script-block's-type">the script block's type</a></var> for this
+ <code><a href=#the-script-element>script</a></code> element be "<code title="">text/javascript</code>".</p>
+
+ <p>Otherwise, if the <code><a href=#the-script-element>script</a></code> element has a <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute, let <var><a href="#the-script-block's-type">the
+ script block's type</a></var> for this <code><a href=#the-script-element>script</a></code> element be
+ the value of that attribute with any leading or trailing sequences
+ of <a href=#space-character title="space character">space characters</a>
+ removed.</p> <!-- <span>Strip leading and trailing
+ whitespace</span> from... -->
+
+ <p>Otherwise, the element has a non-empty <code title=attr-script-language><a href=#attr-script-language>language</a></code> attribute; let
+ <var><a href="#the-script-block's-type">the script block's type</a></var> for this <code><a href=#the-script-element>script</a></code>
+ element be the concatenation of the string "<code title="">text/</code>" followed by the value of the <code title=attr-script-language><a href=#attr-script-language>language</a></code> attribute.</p> <!--
+ user agents already support, e.g., type="text/javascript1.3", so
+ we don't have to support that separately. -->
+
+ <p class=note>The <code title=attr-script-language><a href=#attr-script-language>language</a></code> attribute is never
+ conforming, and is always ignored if there is a <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute present.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the user agent does not <a href=#support-the-scripting-language>support the scripting
+ language</a> given by <var><a href="#the-script-block's-type">the script block's type</a></var> for
+ this <code><a href=#the-script-element>script</a></code> element, then the user agent must abort
+ these steps at this point. The script is not executed.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">was-parser-inserted</var> is true, then flag
+ the element as <a href=#parser-inserted>"parser-inserted"</a> again, and set the
+ element's <a href=#force-async>"force-async"</a> flag to false.</p>
+
+ </li>
+
+ <li id=script-processing-start>
+
+ <p>The user agent must set the element's <a href=#already-started>"already
+ started"</a> flag.</p>
+
+ <p class=note>The state of the element at this moment <a href=#establish-script-block-source>is later used</a> to
+ determine the script source.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the element is flagged as <a href=#parser-inserted>"parser-inserted"</a>,
+ but the element's <code><a href=#document>Document</a></code> is not the
+ <code><a href=#document>Document</a></code> of the parser that created the element, then
+ abort these steps.</p>
+
+ </li>
+
+ <li id=script-processing-noscript>
+
+ <p>If <a href=#concept-n-noscript title=concept-n-noscript>scripting is
+ disabled</a> for the <code><a href=#the-script-element>script</a></code> element, then the user
+ agent must abort these steps at this point. The script is not
+ executed.</p>
+
+ <p class=note>The definition of <a href=#concept-n-noscript title=concept-n-noscript>scripting is disabled</a> means
+ that, amongst others, the following scripts will not execute:
+ scripts in <code>XMLHttpRequest</code>'s <code title=dom-XMLHttpRequest-responseXML>responseXML</code>
+ documents, scripts in <code>DOMParser</code>-created documents,
+ scripts in documents created by <code>XSLTProcessor</code>'s <code title=dom-XSLTProcessor-transformToDocument>transformToDocument</code>
+ feature, and scripts that are first inserted by a script into a
+ <code><a href=#document>Document</a></code> that was created using the <code title=dom-DOMImplementation-createDocument><a href=#dom-domimplementation-createdocument>createDocument()</a></code>
+ API. <a href=#refsXHR>[XHR]</a> <a href=#refsDOMPARSING>[DOMPARSING]</a> <!--<a
+ href="#refsXSLTP">[XSLTP]</a>--> <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+
+ </li>
+
+ <li id=script-processing-for>
+
+ <p>If the <code><a href=#the-script-element>script</a></code> element has an <code title=attr-script-event><a href=#attr-script-event>event</a></code> attribute and a <code title=attr-script-for><a href=#attr-script-for>for</a></code> attribute, then run these
+ substeps:</p>
+
+ <ol><li><p>Let <var title="">for</var> be the value of the <code title=attr-script-for><a href=#attr-script-for>for</a></code> attribute.</li>
+
+ <li><p>Let <var title="">event</var> be the value of the <code title=attr-script-event><a href=#attr-script-event>event</a></code> attribute.</li>
+
+ <li><p><a href=#strip-leading-and-trailing-whitespace>Strip leading and trailing whitespace</a> from
+ <var title="">event</var> and <var title="">for</var>.</li>
+
+ <li><p>If <var title="">for</var> is not an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">window</code>", then the user agent must abort these
+ steps at this point. The script is not executed.</li>
+
+ <li><p>If <var title="">event</var> is not an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for either the string "<code title="">onload</code>" or the string "<code title="">onload()</code>", then the user agent must abort these
+ steps at this point. The script is not executed.</li>
+
+ </ol></li>
+
+ <li id=script-processing-encoding>
+
+ <p>If the <code><a href=#the-script-element>script</a></code> element has a <code title=attr-script-charset><a href=#attr-script-charset>charset</a></code> attribute, then let
+ <var><a href="#the-script-block's-character-encoding">the script block's character encoding</a></var> for this
+ <code><a href=#the-script-element>script</a></code> element be the encoding given by the <code title=attr-script-charset><a href=#attr-script-charset>charset</a></code> attribute.</p>
+
+ <p>Otherwise, let <var><a href="#the-script-block's-fallback-character-encoding">the script block's fallback character
+ encoding</a></var> for this <code><a href=#the-script-element>script</a></code> element be the same as
+ <a href="#document's-character-encoding" title="document's character encoding">the encoding of the
+ document itself</a>.</p>
+
+ <p class=note>Only one of these two pieces of state is set.</p>
+
+ </li>
+
+ <li id=script-processing-src-prepare>
+
+ <p>If the element has a <code title=attr-script-src><a href=#attr-script-src>src</a></code>
+ attribute whose value is not the empty string, then the value of
+ that attribute must be <a href=#resolve-a-url title="resolve a url">resolved</a>
+ relative to the element, and if that is successful, the specified
+ resource must then be <a href=#fetch title=fetch>fetched</a>, from the
+ <a href=#origin>origin</a> of the element's <code><a href=#document>Document</a></code>.</p>
+ <!-- not http-origin privacy sensitive -->
+
+ <p>If the <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute's
+ value is the empty string or if it could not be resolved, then the
+ user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-error>error</code> at the
+ element, and abort these steps.</p>
+
+ <p>For historical reasons, if the <a href=#url>URL</a> is a <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code>
+ URL</a>, then the user agent must not, despite the requirements
+ in the definition of the <a href=#fetch title=fetch>fetching</a>
+ algorithm, actually execute the script in the URL; instead the
+ user agent must act as if it had received an empty HTTP 400
+ response.</p>
+
+ <p>For performance reasons, user agents may start fetching the
+ script as soon as the attribute is set, instead, in the hope that
+ the element will be inserted into the document. Either way, once
+ the element is <a href=#insert-an-element-into-a-document title="insert an element into a
+ document">inserted into the document</a>, the load must have
+ started. If the UA performs such prefetching, but the element is
+ never inserted in the document, or the <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute is dynamically
+ changed,<!-- or the base URL is dynamically changed,--> then the
+ user agent will not execute the script, and the fetching process
+ will have been effectively wasted.</p>
+
+ </li>
+
+ <!-- at this point if the element is "parser-inserted" then we know
+ it is not "force-async". -->
+
+ <li>
+
+ <p>Then, the first of the following options that describes the
+ situation must be followed:</p>
+
+ <dl class=switch><dt id=script-processing-defer>If the element has a <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute, and the element has
+ a <code title=attr-script-defer><a href=#attr-script-defer>defer</a></code> attribute, and the
+ element has been flagged as <a href=#parser-inserted>"parser-inserted"</a>, and
+ the element does not have an <code title=attr-script-async><a href=#attr-script-async>async</a></code> attribute</dt>
+
+ <dd>
+
+ <p>The element must be added to the end of the <dfn id=list-of-scripts-that-will-execute-when-the-document-has-finished-parsing>list of
+ scripts that will execute when the document has finished
+ parsing</dfn> associated with the <code><a href=#document>Document</a></code> of the
+ parser that created the element.</p>
+
+ <p>The <a href=#concept-task title=concept-task>task</a> that the
+ <a href=#networking-task-source>networking task source</a> places on the <a href=#task-queue>task
+ queue</a> once the <a href=#fetch title=fetch>fetching
+ algorithm</a> has completed must set the element's
+ <a href=#ready-to-be-parser-executed>"ready to be parser-executed"</a> flag. The parser will
+ handle executing the script.</p>
+
+ </dd>
+
+
+ <dt id=script-processing-parser-inserted>If the element has a
+ <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute, and the
+ element has been flagged as <a href=#parser-inserted>"parser-inserted"</a>, and
+ the element does not have an <code title=attr-script-async><a href=#attr-script-async>async</a></code> attribute</dt>
+
+ <dd>
+
+ <p>The element is the <a href=#pending-parsing-blocking-script>pending parsing-blocking
+ script</a> of the <code><a href=#document>Document</a></code> of the parser that
+ created the element. (There can only be one such script per
+ <code><a href=#document>Document</a></code> at a time.)</p>
+
+ <p>The <a href=#concept-task title=concept-task>task</a> that the
+ <a href=#networking-task-source>networking task source</a> places on the <a href=#task-queue>task
+ queue</a> once the <a href=#fetch title=fetch>fetching
+ algorithm</a> has completed must set the element's
+ <a href=#ready-to-be-parser-executed>"ready to be parser-executed"</a> flag. The parser will
+ handle executing the script.</p>
+
+ </dd>
+
+
+ <dt id=script-processing-style-delayed>If the element does not
+ have a <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute, and
+ the element has been flagged as <a href=#parser-inserted>"parser-inserted"</a>,
+ and the <code><a href=#document>Document</a></code> of the <a href=#html-parser>HTML parser</a> or
+ <a href=#xml-parser>XML parser</a> that created the <code><a href=#the-script-element>script</a></code>
+ element <a href=#has-a-style-sheet-that-is-blocking-scripts>has a style sheet that is blocking
+ scripts</a></dt>
+
+ <dd>
+
+ <p>The element is the <a href=#pending-parsing-blocking-script>pending parsing-blocking
+ script</a> of the <code><a href=#document>Document</a></code> of the parser that
+ created the element. (There can only be one such script per
+ <code><a href=#document>Document</a></code> at a time.)</p>
+
+ <p>Set the element's <a href=#ready-to-be-parser-executed>"ready to be parser-executed"</a>
+ flag. The parser will handle executing the script.</p>
+
+ </dd>
+
+
+ <dt id=script-processing-src-sync>If the element has a <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute, does not have an
+ <code title=attr-script-async><a href=#attr-script-async>async</a></code> attribute, and does
+ not have the <a href=#force-async>"force-async"</a> flag set</dt>
+
+ <dd>
+
+ <p>The element must be added to the end of the <dfn id=list-of-scripts-that-will-execute-in-order-as-soon-as-possible>list of
+ scripts that will execute in order as soon as possible</dfn>
+ associated with the <code><a href=#document>Document</a></code> of the
+ <code><a href=#the-script-element>script</a></code> element at the time the <a href=#prepare-a-script>prepare a
+ script</a> algorithm started.</p>
+
+ <p>The <a href=#concept-task title=concept-task>task</a> that the
+ <a href=#networking-task-source>networking task source</a> places on the <a href=#task-queue>task
+ queue</a> once the <a href=#fetch title=fetch>fetching
+ algorithm</a> has completed must run the following steps:</p>
+
+ <ol><li><p>If the element is not now the first element in the
+ <a href=#list-of-scripts-that-will-execute-in-order-as-soon-as-possible>list of scripts that will execute in order as soon as
+ possible</a> to which it was added above, then mark the
+ element as ready but abort these steps without executing the
+ script yet.</li>
+
+ <li><p><i>Execution</i>: <a href=#execute-the-script-block>Execute the script block</a>
+ corresponding to the first script element in this <a href=#list-of-scripts-that-will-execute-in-order-as-soon-as-possible>list of
+ scripts that will execute in order as soon as
+ possible</a>.</li>
+
+ <li><p>Remove the first element from this <a href=#list-of-scripts-that-will-execute-in-order-as-soon-as-possible>list of scripts
+ that will execute in order as soon as possible</a>.</li>
+
+ <li><p>If this <a href=#list-of-scripts-that-will-execute-in-order-as-soon-as-possible>list of scripts that will execute in order
+ as soon as possible</a> is still not empty and the first
+ entry has already been marked as ready, then jump back to the
+ step labeled <i>execution</i>.</li>
+
+ </ol></dd>
+
+
+ <dt id=script-processing-src>If the element has a <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute</dt>
+
+ <dd>
+
+ <p>The element must be added to the <dfn id=set-of-scripts-that-will-execute-as-soon-as-possible>set of scripts that
+ will execute as soon as possible</dfn> of the
+ <code><a href=#document>Document</a></code> of the <code><a href=#the-script-element>script</a></code> element at the
+ time the <a href=#prepare-a-script>prepare a script</a> algorithm started.</p>
+
+ <p>The <a href=#concept-task title=concept-task>task</a> that the
+ <a href=#networking-task-source>networking task source</a> places on the <a href=#task-queue>task
+ queue</a> once the <a href=#fetch title=fetch>fetching
+ algorithm</a> has completed must <a href=#execute-the-script-block>execute the script
+ block</a> and then remove the element from the <a href=#set-of-scripts-that-will-execute-as-soon-as-possible>set of
+ scripts that will execute as soon as possible</a>.</p>
+
+ </dd>
+
+
+ <dt id=script-processing-inline>Otherwise</dt>
+
+ <dd>The user agent must immediately <a href=#execute-the-script-block>execute the script
+ block</a>, even if other scripts are already executing.</dd>
+
+ </dl></li>
+
+ </ol><!-- similar text in various places --><p>Fetching an external script must <a href=#delay-the-load-event>delay the load
+ event</a> of the element's document until the <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a
+ task">queued</a> by the <a href=#networking-task-source>networking task source</a> once
+ the resource has been <a href=#fetch title=fetch>fetched</a> (defined
+ above) has been run.</p>
+
+ <p>The <dfn id=pending-parsing-blocking-script>pending parsing-blocking script</dfn> of a
+ <code><a href=#document>Document</a></code> is used by the <code><a href=#document>Document</a></code>'s
+ parser(s).</p>
+
+ <p class=note>If a <code><a href=#the-script-element>script</a></code> element that blocks a
+ parser gets moved to another <code><a href=#document>Document</a></code> before it would
+ normally have stopped blocking that parser, it nonetheless continues
+ blocking that parser until the condition that causes it to be
+ blocking the parser no longer applies (e.g. if the script is a
+ <a href=#pending-parsing-blocking-script>pending parsing-blocking script</a> because there was
+ <a href=#a-style-sheet-that-is-blocking-scripts>a style sheet that is blocking scripts</a> when it was
+ parsed, but then the script is moved to another
+ <code><a href=#document>Document</a></code> before the style sheet loads, the script still
+ blocks the parser until the style sheets are all loaded, at which
+ time the script executes and the parser is unblocked).</p>
+
+ <!-- also (and this would be worth testing): the way the spec is
+ written, if you do not have a style sheet that is blocking scripts,
+ then you parse a <script src>, then while waiting for the script to
+ load you insert an external style sheet, the script will delay until
+ the sheet is loaded, because there's just a binary "are style sheets
+ blocking scripts" state, things aren't defined in terms of which
+ style sheets are blocking which scripts -->
+
+ <p>When the user agent is required to <dfn id=execute-the-script-block title="execute the script
+ block">execute a script block</dfn>, it must run the following
+ steps:</p>
+
+ <ol><li>
+
+ <p>If the element is flagged as <a href=#parser-inserted>"parser-inserted"</a>,
+ but the element's <code><a href=#document>Document</a></code> is not the
+ <code><a href=#document>Document</a></code> of the parser that created the element, then
+ abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Jump to the appropriate set of steps from the list below:</p>
+
+ <dl class=switch><dt>If the load resulted in an error (for example a DNS error, or
+ an HTTP 404 error)</dt>
+
+ <dd><p>Executing the script block must just consist of <a href=#fire-a-simple-event title="fire a simple event">firing a simple event</a> named
+ <code title=event-error>error</code> at the element.</dd>
+
+ <dt>If the load was successful</dt>
+
+ <!-- SCRIPT EXEC -->
+ <dd>
+
+ <p>Executing the script block must consist of running the
+ following steps. For the purposes of these steps, the script is
+ considered to be from an <i>external file</i> if, while the
+ <a href=#prepare-a-script>prepare a script</a> algorithm above was running for
+ this script, the <code><a href=#the-script-element>script</a></code> element had a <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute specified.</p>
+
+ <ol><li id=establish-script-block-source>
+
+ <p>Initialize <dfn id="the-script-block's-source"><var>the script block's source</var></dfn>
+ as follows:</p>
+
+ <dl class=switch><dt>If the script is from an external file and <var><a href="#the-script-block's-type">the
+ script block's type</a></var> is a text-based language</dt>
+
+ <dd>
+
+ <p>The contents of that file, interpreted as a Unicode
+ string, are the script source.</p>
+
+ <p>To obtain the Unicode string, the user agent run the
+ following steps:</p>
+
+ <ol><li><p>If the resource's <a href=#content-type title=Content-Type>Content
+ Type metadata</a>, if any, specifies a character
+ encoding, and the user agent supports that encoding, then
+ let <var title="">character encoding</var> be that
+ encoding, and jump to the bottom step in this series of
+ steps.</li>
+
+ <li><p>If the algorithm above set <var><a href="#the-script-block's-character-encoding">the script block's
+ character encoding</a></var>, then let <var title="">character
+ encoding</var> be that encoding, and jump to the bottom
+ step in this series of steps.</li>
+
+ <li><p>For each of the rows in the following table,
+ starting with the first one and going down, if the file has
+ as many or more bytes available than the number of bytes in
+ the first column, and the first bytes of the file match the
+ bytes given in the first column, then set <var title="">character encoding</var> to the encoding given in
+ the cell in the second column of that row, and jump to the
+ bottom step in this series of steps:</p>
+
+ <!-- this table is present in several forms in this file; keep them in sync -->
+ <table id=table-script-bom><thead><tr><th>Bytes in Hexadecimal
+ <th>Encoding
+ <tbody><!-- nobody uses this
+ <tr>
+ <td>00 00 FE FF
+ <td>UTF-32BE
+ <tr>
+ <td>FF FE 00 00
+ <td>UTF-32LE
+ --><tr><td>FE FF
+ <td>Big-endian UTF-16
+ <tr><td>FF FE
+ <td>Little-endian UTF-16
+ <tr><td>EF BB BF
+ <td>UTF-8
+ <!-- nobody uses this
+ <tr>
+ <td>DD 73 66 73
+ <td>UTF-EBCDIC
+ -->
+ </table><p class=note>This step looks for Unicode Byte Order
+ Marks (BOMs).</p>
+
+ </li>
+
+ <li><p>Let <var title="">character encoding</var> be
+ <var><a href="#the-script-block's-fallback-character-encoding">the script block's fallback character
+ encoding</a></var>.</li>
+
+ <li><p>Convert the file to Unicode using <var>character
+ encoding</var>, following the rules for doing so given by
+ the specification for <var><a href="#the-script-block's-type">the script block's
+ type</a></var>.</li>
+
+ </ol></dd>
+
+ <dt>If the script is from an external file and <var><a href="#the-script-block's-type">the
+ script block's type</a></var> is an XML-based language</dt>
+
+ <dd>
+
+ <p>The external file is the script source. When it is later
+ executed, it must be interpreted in a manner consistent with
+ the specification defining the language given by <var><a href="#the-script-block's-type">the
+ script block's type</a></var>.</p>
+
+ </dd>
+
+ <dt>If the script is inline and <var><a href="#the-script-block's-type">the script block's
+ type</a></var> is a text-based language</dt>
+
+ <dd>
+
+ <p>The value of the <code title=dom-script-text><a href=#dom-script-text>text</a></code> IDL attribute at the
+ time the element's <a href=#already-started>"already started"</a> flag was
+ last set is the script source.</p>
+
+ </dd>
+
+ <dt>If the script is inline and <var><a href="#the-script-block's-type">the script block's
+ type</a></var> is an XML-based language</dt>
+
+ <dd>
+
+ <p>The child nodes of the <code><a href=#the-script-element>script</a></code> element at the
+ time the element's <a href=#already-started>"already started"</a> flag was
+ last set are the script source.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li>
+
+ <p>If the script is from an external file, then increment the
+ <a href=#ignore-destructive-writes-counter>ignore-destructive-writes counter</a> of the
+ <code><a href=#the-script-element>script</a></code> element's <code><a href=#document>Document</a></code>. Let <var title="">neutralized doc</var> be that
+ <code><a href=#document>Document</a></code>.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#create-a-script-from-a-node title="create a script from a node">Create a
+ script</a> from the <code><a href=#the-script-element>script</a></code> element node, using
+ <var><a href="#the-script-block's-source">the script block's source</a></var> and <var><a href="#the-script-block's-type">the script
+ block's type</a></var>.</p>
+
+ <p class=note>This is where the script is compiled and
+ actually executed.</p>
+
+ </li>
+
+ <li>
+
+ <p>Decrement the <a href=#ignore-destructive-writes-counter>ignore-destructive-writes
+ counter</a> of <var title="">neutralized doc</var>, if it
+ was incremented in the earlier step.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the script is from an external file, <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-load>load</code> at the
+ <code><a href=#the-script-element>script</a></code> element.</p>
+
+ <p>Otherwise, the script is internal; <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#the-script-element>script</a></code>
+ element.</p>
+
+ </li>
+
+ </ol></dd>
+
+ </dl></li>
+
+ </ol><p>The IDL attributes <dfn id=dom-script-src title=dom-script-src><code>src</code></dfn>, <dfn id=dom-script-type title=dom-script-type><code>type</code></dfn>, <dfn id=dom-script-charset title=dom-script-charset><code>charset</code></dfn>, and <dfn id=dom-script-defer title=dom-script-defer><code>defer</code></dfn>, each must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ <p>The <dfn id=dom-script-async title=dom-script-async><code>async</code></dfn> IDL
+ attribute controls whether the element will execute asynchronously
+ or not. If the element's <a href=#force-async>"force-async"</a> flag is set,
+ then, on getting, the <code title=dom-script-async><a href=#dom-script-async>async</a></code>
+ IDL attribute must return true, and on setting, the
+ <a href=#force-async>"force-async"</a> flag must first be unset, and then the
+ content attribute must be removed if the IDL attribute's new value
+ is false, and must be set to the empty string if the IDL attribute's
+ new value is true. If the element's <a href=#force-async>"force-async"</a> flag
+ is <em>not</em> set, the IDL attribute must <a href=#reflect>reflect</a> the
+ <code title=attr-script-async><a href=#attr-script-async>async</a></code> content attribute.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">script</var> . <code title=dom-script-text><a href=#dom-script-text>text</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the contents of the element, ignoring child nodes that
+ aren't <a href=#text-node title="text node">text nodes</a>.</p>
+
+ <p>Can be set, to replace the element's children with the given
+ value.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The IDL attribute <dfn id=dom-script-text title=dom-script-text><code>text</code></dfn> must return a
+ concatenation of the contents of all the <a href=#text-node title="text
+ node">text nodes</a> that are children of the <code><a href=#the-script-element>script</a></code>
+ element (ignoring any other nodes such as comments or elements), in
+ tree order. On setting, it must act the same way as the
+ <code><a href=#textcontent>textContent</a></code> IDL attribute.</p>
+
+ </div>
+
+ <p class=note>When inserted using the <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> method,
+ <code><a href=#the-script-element>script</a></code> elements execute (typically synchronously), but
+ when inserted using <code title=dom-innerHTML>innerHTML</code> and <code title=dom-outerHTML>outerHTML</code> attributes, they do not
+ execute at all.</p>
+
+ <div class=example>
+
+ <p>In this example, two <code><a href=#the-script-element>script</a></code> elements are used. One
+ embeds an external script, and the other includes some data.</p>
+
+ <pre>&lt;script src="game-engine.js"&gt;&lt;/script&gt;
+&lt;script type="text/x-game-map"&gt;
+........U.........e
+o............A....e
+.....A.....AAA....e
+.A..AAA...AAAAA...e
+&lt;/script&gt;</pre>
+
+ <p>The data in this case might be used by the script to generate
+ the map of a video game. The data doesn't have to be used that way,
+ though; maybe the map data is actually embedded in other parts of
+ the page's markup, and the data block here is just used by the
+ site's search engine to help users who are looking for particular
+ features in their game maps.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following sample shows how a script element can be used to
+ define a function that is then used by other parts of the
+ document. It also shows how a <code><a href=#the-script-element>script</a></code> element can be
+ used to invoke script while the document is being parsed, in this
+ case to initialize the form's output.</p>
+
+ <pre>&lt;script&gt;
+ function calculate(form) {
+ var price = 52000;
+ if (form.elements.brakes.checked)
+ price += 1000;
+ if (form.elements.radio.checked)
+ price += 2500;
+ if (form.elements.turbo.checked)
+ price += 5000;
+ if (form.elements.sticker.checked)
+ price += 250;
+ form.elements.result.value = price;
+ }
+&lt;/script&gt;
+&lt;form name="pricecalc" onsubmit="return false" onchange="calculate(this)"&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt;Work out the price of your car&lt;/legend&gt;
+ &lt;p&gt;Base cost: &pound;52000.&lt;/p&gt;
+ &lt;p&gt;Select additional options:&lt;/p&gt;
+ &lt;ul&gt;
+ &lt;li&gt;&lt;label&gt;&lt;input type=checkbox name=brakes&gt; Ceramic brakes (&pound;1000)&lt;/label&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;label&gt;&lt;input type=checkbox name=radio&gt; Satellite radio (&pound;2500)&lt;/label&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;label&gt;&lt;input type=checkbox name=turbo&gt; Turbo charger (&pound;5000)&lt;/label&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;label&gt;&lt;input type=checkbox name=sticker&gt; "XZ" sticker (&pound;250)&lt;/label&gt;&lt;/li&gt;
+ &lt;/ul&gt;
+ &lt;p&gt;Total: &pound;&lt;output name=result&gt;&lt;/output&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;script&gt;
+ calculate(document.forms.pricecalc);
+ &lt;/script&gt;
+&lt;/form&gt;</pre>
+
+ </div>
+
+
+
+ <h5 id=scriptingLanguages><span class=secno>4.3.1.1 </span>Scripting languages</h5>
+
+ <div class=impl>
+
+ <p>A user agent is said to <dfn id=support-the-scripting-language>support the scripting language</dfn>
+ if <var><a href="#the-script-block's-type">the script block's type</a></var> is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the <a href=#mime-type>MIME type</a> string
+ of a scripting language that the user agent implements.</p>
+
+ </div>
+
+ <p>The following lists some <a href=#mime-type>MIME type</a> strings and the
+ languages to which they refer:</p>
+
+ <dl><dt>"<code>application/ecmascript</code>"</dt>
+ <dt>"<code>application/javascript</code>"</dt>
+ <dt>"<code>application/x-ecmascript</code>"</dt>
+ <dt>"<code>application/x-javascript</code>"</dt>
+ <dt>"<code>text/ecmascript</code>"</dt>
+ <dt>"<code>text/javascript</code>"</dt>
+ <dt>"<code>text/javascript1.0</code>"</dt>
+ <dt>"<code>text/javascript1.1</code>"</dt>
+ <dt>"<code>text/javascript1.2</code>"</dt>
+ <dt>"<code>text/javascript1.3</code>"</dt>
+ <dt>"<code>text/javascript1.4</code>"</dt>
+ <dt>"<code>text/javascript1.5</code>"</dt>
+ <dt>"<code>text/jscript</code>"</dt>
+ <dt>"<code>text/livescript</code>"</dt>
+ <dt>"<code>text/x-ecmascript</code>"</dt>
+ <dt>"<code>text/x-javascript</code>"</dt>
+ <dd>JavaScript. <a href=#refsECMA262>[ECMA262]</a></dd>
+
+ <dt>"<code>text/javascript;e4x=1</code>"</dt>
+ <dd>JavaScript with ECMAScript for XML. <a href=#refsECMA357>[ECMA357]</a></dd>
+
+ </dl><div class=impl>
+
+ <p>User agents may support other <a href=#mime-type title="MIME type">MIME
+ types</a> and other languages.</p>
+
+ <p>The following <a href=#mime-type title="MIME type">MIME types</a> must not
+ be interpreted as scripting languages:</p>
+
+ <ul class=brief><li>"<code>text/plain</code>"
+ <li>"<code>text/xml</code>"
+ <!--<li>"<code>text/html</code>"-->
+ <li>"<code>application/octet-stream</code>"
+ <li>"<code>application/xml</code>"
+ <!--<li>"<code>application/xhtml+xml</code>"-->
+ <!--<li>"<code>image/svg+xml</code>"-->
+
+ <!-- the commented-out ones aren't listed here because they
+ couldn't sanely be interpreted as a scripting language anyway:
+ they're defined to be something else. I just don't want this to
+ devolve into a list of every non-scripting type in existence. -->
+
+ </ul><p class=note>These types are explicitly listed here because they
+ are poorly-defined types that are nonetheless likely to be used as
+ formats for data blocks, and it would be problematic if they were
+ suddenly to be interpreted as script by a user agent.</p>
+
+ <!-- this paragraph is also present in the <style> section -->
+ <p>When examining types to determine if they support the language,
+ user agents must not ignore unknown MIME parameters &mdash; types
+ with unknown parameters must be assumed to be unsupported. The <code title="">charset</code> parameter must be treated as an unknown
+ parameter for the purpose of comparing <a href=#mime-type title="MIME type">MIME
+ types</a> here.</p>
+
+ </div>
+
+
+ <h5 id=restrictions-for-contents-of-script-elements><span class=secno>4.3.1.2 </span><dfn title="script content restrictions">Restrictions for contents of <code>script</code> elements</dfn></h5>
+
+ <p>The <code><a href=#textcontent>textContent</a></code> of a <code><a href=#the-script-element>script</a></code> element
+ must match the <code title="">script</code> production in the
+ following ABNF, the character set for which is Unicode. <a href=#refsABNF>[ABNF]</a></p>
+
+ <pre>script = data1 *( escape [ script-start data3 ] "--&gt;" data1 ) [ escape ]
+escape = "&lt;!--" data2 *( script-start data3 script-end data2 )
+
+data1 = &lt;any string that doesn't contain a substring that matches not-data1&gt;
+not-data1 = <!-- script-end / -->"&lt;!--" <!-- the script-end is redundant here since it would close the element -->
+
+data2 = &lt;any string that doesn't contain a substring that matches not-data2&gt;
+not-data2 = <!-- script-end / -->script-start / "--&gt;" <!-- the script-end is redundant here since it would close the element -->
+
+data3 = &lt;any string that doesn't contain a substring that matches not-data3&gt;
+not-data3 = script-end / "--&gt;"
+
+script-start = lt s c r i p t tag-end
+script-end = lt slash s c r i p t tag-end
+
+lt = %x003C ; U+003C LESS-THAN SIGN character (&lt;)
+slash = %x002F ; U+002F SOLIDUS character (/)
+
+s = %x0053 ; U+0053 LATIN CAPITAL LETTER S
+s =/ %x0073 ; U+0073 LATIN SMALL LETTER S
+c = %x0043 ; U+0043 LATIN CAPITAL LETTER C
+c =/ %x0063 ; U+0063 LATIN SMALL LETTER C
+r = %x0052 ; U+0052 LATIN CAPITAL LETTER R
+r =/ %x0072 ; U+0072 LATIN SMALL LETTER R
+i = %x0049 ; U+0049 LATIN CAPITAL LETTER I
+i =/ %x0069 ; U+0069 LATIN SMALL LETTER I
+p = %x0050 ; U+0050 LATIN CAPITAL LETTER P
+p =/ %x0070 ; U+0070 LATIN SMALL LETTER P
+t = %x0054 ; U+0054 LATIN CAPITAL LETTER T
+t =/ %x0074 ; U+0074 LATIN SMALL LETTER T
+
+tag-end = %x0009 ; U+0009 CHARACTER TABULATION (tab)
+tag-end =/ %x000A ; U+000A LINE FEED (LF)
+tag-end =/ %x000C ; U+000C FORM FEED (FF)
+tag-end =/ %x0020 ; U+0020 SPACE
+tag-end =/ %x002F ; U+002F SOLIDUS (/)
+tag-end =/ %x003E ; U+003E GREATER-THAN SIGN (&gt;)</pre>
+
+ <p>When a <code><a href=#the-script-element>script</a></code> element contains <a href=#inline-documentation-for-external-scripts>script
+ documentation</a>, there are further restrictions on the contents
+ of the element, as described in the section below.</p>
+
+
+ <h5 id=inline-documentation-for-external-scripts><span class=secno>4.3.1.3 </span><dfn title="script documentation">Inline documentation for external scripts</dfn></h5>
+
+ <p>If a <code><a href=#the-script-element>script</a></code> element's <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute is specified, then the
+ contents of the <code><a href=#the-script-element>script</a></code> element, if any, must be such
+ that the value of the <code title=dom-script-text><a href=#dom-script-text>text</a></code> IDL
+ attribute, which is derived from the element's contents, matches the
+ <code title="">documentation</code> production in the following
+ ABNF, the character set for which is Unicode. <a href=#refsABNF>[ABNF]</a></p>
+
+ <pre>documentation = *( *( space / tab / comment ) [ line-comment ] newline )
+comment = slash star *( not-star / star not-slash ) 1*star slash
+line-comment = slash slash *not-newline
+
+; characters
+tab = %x0009 ; U+0009 CHARACTER TABULATION (tab)
+newline = %x000A ; U+000A LINE FEED (LF)
+space = %x0020 ; U+0020 SPACE
+star = %x002A ; U+002A ASTERISK (*)
+slash = %x002F ; U+002F SOLIDUS (/)
+not-newline = %x0000-0009 / %x000B-10FFFF
+ ; a <a href=#unicode-character>Unicode character</a> other than U+000A LINE FEED (LF)
+not-star = %x0000-0029 / %x002B-10FFFF
+ ; a <a href=#unicode-character>Unicode character</a> other than U+002A ASTERISK (*)
+not-slash = %x0000-002E / %x0030-10FFFF
+ ; a <a href=#unicode-character>Unicode character</a> other than U+002F SOLIDUS (/)</pre>
+
+ <p class=note>This corresponds to putting the contents of the
+ element in JavaScript comments.</p>
+
+ <p class=note>This requirement is in addition to the earlier
+ restrictions on the syntax of contents of <code><a href=#the-script-element>script</a></code>
+ elements.</p>
+
+ <div class=example>
+
+ <p>This allows authors to include documentation, such as license
+ information or API information, inside their documents while still
+ referring to external script files. The syntax is constrained so
+ that authors don't accidentally include what looks like valid
+ script while also providing a <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute.</p>
+
+ <pre>&lt;script src="cool-effects.js"&gt;
+ // create new instances using:
+ // var e = new Effect();
+ // start the effect using .play, stop using .stop:
+ // e.play();
+ // e.stop();
+&lt;/script&gt;</pre>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h5 id=scriptTagXSLT><span class=secno>4.3.1.4 </span>Interaction of <code><a href=#the-script-element>script</a></code> elements and XSLT</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>This specification does not define how XSLT interacts with the
+ <code><a href=#the-script-element>script</a></code> element (or, indeed, how XSLT processing
+ triggers the <a href=#stop-parsing>stop parsing</a> steps, how it interacts with
+ the <a href=#navigate title=navigate>navigation</a> algorithm, or how it
+ fits in with the <a href=#event-loop>event loop</a>). However, in the absence
+ of another specification actually defining this, here are some
+ guidelines for implementors, based on existing implementations:</p>
+
+ <ul><li><p>When an XSLT transformation program is triggered by an <code title="">&lt;?xml-stylesheet?&gt;</code> processing instruction and
+ the browser implements a direct-to-DOM transformation,
+ <code><a href=#the-script-element>script</a></code> elements created by the XSLT processor need to
+ be marked <a href=#parser-inserted>"parser-inserted"</a> and run in document order
+ (modulo scripts marked <code title=attr-script-defer><a href=#attr-script-defer>defer</a></code>
+ or <code title=attr-script-async><a href=#attr-script-async>async</a></code>), asynchronously
+ while the transformation is occurring.</li>
+
+ <li><p>The <code title=dom-XSLTProcessor-transformToDocument>XSLTProcessor.transformToDocument()</code>
+ method adds elements to a <code><a href=#document>Document</a></code> that is not in a
+ <a href=#browsing-context>browsing context</a>, and, accordingly, any
+ <code><a href=#the-script-element>script</a></code> elements they create need to have their
+ <a href=#already-started>"already started"</a> flag set in the <a href=#prepare-a-script>prepare a
+ script</a> algorithm and never get executed (<a href=#concept-bc-noscript title=concept-bc-noscript>scripting is disabled</a>). Such
+ <code><a href=#the-script-element>script</a></code> elements still need to be marked
+ <a href=#parser-inserted>"parser-inserted"</a>, though, such that their <code title=dom-script-async><a href=#dom-script-async>async</a></code> IDL attribute will return
+ false in the absence of an <code title=attr-script-async><a href=#attr-script-async>async</a></code> content attribute.</li>
+
+ <li><p>The <code title=dom-XSLTProcessor-transformToFragment>XSLTProcessor.transformToFragment()</code>
+ method needs to create a fragment that is equivalent to one built
+ manually by creating the elements using <code title=dom-document-createElementNS><a href=#dom-document-createelementns>document.createElementNS()</a></code>.
+ For instance, it needs to create <code><a href=#the-script-element>script</a></code> elements that
+ aren't <a href=#parser-inserted>"parser-inserted"</a> and that don't have their
+ <a href=#already-started>"already started"</a> flag set, so that they will execute
+ when the fragment is inserted into a document.</li>
+
+ </ul><p>The main distinction between the first two cases and the last
+ case is that the first two operate on <code><a href=#document>Document</a></code>s and the
+ last operates on a fragment.</p>
+
+ </div>
+
+
+
+ <h4 id=the-noscript-element><span class=secno>4.3.2 </span>The <dfn><code>noscript</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#metadata-content>Metadata content</a>.</dd>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>In a <code><a href=#the-head-element>head</a></code> element of an <a href=#html-documents title="HTML documents">HTML document</a>, if there are no ancestor <code><a href=#the-noscript-element>noscript</a></code> elements.</dd>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected in <a href=#html-documents>HTML documents</a>, if there are no ancestor <code><a href=#the-noscript-element>noscript</a></code> elements.</dd>
+ <dt>Content model:</dt>
+ <dd>When <a href=#concept-n-noscript title=concept-n-noscript>scripting is disabled</a>, in a <code><a href=#the-head-element>head</a></code> element: in any order, zero or more <code><a href=#the-link-element>link</a></code> elements, zero or more <code><a href=#the-style-element>style</a></code> elements, and zero or more <code><a href=#the-meta-element>meta</a></code> elements.</dd>
+ <dd>When <a href=#concept-n-noscript title=concept-n-noscript>scripting is disabled</a>, not in a <code><a href=#the-head-element>head</a></code> element: <a href=#transparent>transparent</a>, but there must be no <code><a href=#the-noscript-element>noscript</a></code> element descendants.</dd>
+ <dd>Otherwise: text that conforms to the requirements given in the prose.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-noscript-element>noscript</a></code> element <a href=#represents>represents</a> nothing
+ if <a href=#concept-n-script title=concept-n-script>scripting is enabled</a>, and
+ <a href=#represents>represents</a> its children if <a href=#concept-n-noscript title=concept-n-noscript>scripting is disabled</a>. It is used
+ to present different markup to user agents that support scripting
+ and those that don't support scripting, by affecting how the
+ document is parsed.</p>
+
+ <p>When used in <a href=#html-documents>HTML documents</a>, the allowed content
+ model is as follows:</p>
+
+ <dl><dt>In a <code><a href=#the-head-element>head</a></code> element, if <a href=#concept-n-noscript title=concept-n-noscript>scripting is disabled</a> for the
+ <code><a href=#the-noscript-element>noscript</a></code> element</dt>
+
+ <dd><p>The <code><a href=#the-noscript-element>noscript</a></code> element must contain only
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-style-element>style</a></code>, and <code><a href=#the-meta-element>meta</a></code>
+ elements.</dd>
+
+ <dt>In a <code><a href=#the-head-element>head</a></code> element, if <a href=#concept-n-script title=concept-n-script>scripting is enabled</a> for the
+ <code><a href=#the-noscript-element>noscript</a></code> element</dt>
+
+ <dd><p>The <code><a href=#the-noscript-element>noscript</a></code> element must contain only text,
+ except that invoking the <a href=#html-fragment-parsing-algorithm>HTML fragment parsing
+ algorithm</a> <!-- (which disables <script> execution) --> with
+ the <code><a href=#the-noscript-element>noscript</a></code> element as the <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element and the
+ text contents as the <var title="">input</var> must result in a
+ list of nodes that consists only of <code><a href=#the-link-element>link</a></code>,
+ <code><a href=#the-style-element>style</a></code>, and <code><a href=#the-meta-element>meta</a></code> elements that would be
+ conforming if they were children of the <code><a href=#the-noscript-element>noscript</a></code>
+ element, and no <a href=#parse-error title="parse error">parse
+ errors</a>.</dd>
+
+ <dt>Outside of <code><a href=#the-head-element>head</a></code> elements, if <a href=#concept-n-noscript title=concept-n-noscript>scripting is disabled</a> for the
+ <code><a href=#the-noscript-element>noscript</a></code> element</dt>
+
+ <dd><p>The <code><a href=#the-noscript-element>noscript</a></code> element's content model is
+ <a href=#transparent>transparent</a>, with the additional restriction that a
+ <code><a href=#the-noscript-element>noscript</a></code> element must not have a <code><a href=#the-noscript-element>noscript</a></code>
+ element as an ancestor (that is, <code><a href=#the-noscript-element>noscript</a></code> can't be
+ nested).</dd>
+
+ <dt>Outside of <code><a href=#the-head-element>head</a></code> elements, if <a href=#concept-n-script title=concept-n-script>scripting is enabled</a> for the
+ <code><a href=#the-noscript-element>noscript</a></code> element</dt>
+
+ <dd>
+
+ <p>The <code><a href=#the-noscript-element>noscript</a></code> element must contain only text,
+ except that the text must be such that running the following
+ algorithm results in a conforming document with no
+ <code><a href=#the-noscript-element>noscript</a></code> elements and no <code><a href=#the-script-element>script</a></code>
+ elements, and such that no step in the algorithm causes an
+ <a href=#html-parser>HTML parser</a> to flag a <a href=#parse-error>parse error</a>:</p>
+
+ <ol><li>Remove every <code><a href=#the-script-element>script</a></code> element from the
+ document.</li>
+
+ <li>Make a list of every <code><a href=#the-noscript-element>noscript</a></code> element in the
+ document. For every <code><a href=#the-noscript-element>noscript</a></code> element in that list,
+ perform the following steps:
+
+ <ol><li>Let the <var title="">parent element</var> be the parent
+ element of the <code><a href=#the-noscript-element>noscript</a></code> element.</li>
+
+ <li>Take all the children of the <var title="">parent element</var>
+ that come before the <code><a href=#the-noscript-element>noscript</a></code> element, and call these
+ elements <var title="">the before children</var>.</li>
+
+ <li>Take all the children of the <var title="">parent element</var>
+ that come <em>after</em> the <code><a href=#the-noscript-element>noscript</a></code> element, and
+ call these elements <var title="">the after children</var>.</li>
+
+ <li>Let <var title="">s</var> be the concatenation of all the
+ <a href=#text-node>text node</a> children of the <code><a href=#the-noscript-element>noscript</a></code>
+ element.</li>
+
+ <li>Set the <code title=dom-innerHTML>innerHTML</code>
+ attribute of the <var title="">parent element</var> to the value
+ of <var title="">s</var>. (This, as a side-effect, causes the
+ <code><a href=#the-noscript-element>noscript</a></code> element to be removed from the
+ document.)</li>
+
+ <li>Insert <var title="">the before children</var> at the start of
+ the <var title="">parent element</var>, preserving their original
+ relative order.</li>
+
+ <li>Insert <var title="">the after children</var> at the end of the
+ <var title="">parent element</var>, preserving their original
+ relative order.</li>
+
+ </ol></li>
+
+ </ol></dd>
+
+ </dl><p class=note>All these contortions are required because, for
+ historical reasons, the <code><a href=#the-noscript-element>noscript</a></code> element is handled
+ differently by the <a href=#html-parser>HTML parser</a> based on whether <a href=#scripting-flag title="scripting flag">scripting was enabled or not</a> when the
+ parser was invoked.</p>
+
+ <p>The <code><a href=#the-noscript-element>noscript</a></code> element must not be used in <a href=#xml-documents>XML
+ documents</a>.</p>
+
+ <p class=note>The <code><a href=#the-noscript-element>noscript</a></code> element is only effective
+ in <a href=#syntax>the HTML syntax</a>, it has no effect in <a href=#the-xhtml-syntax>the XHTML
+ syntax</a>. This is because the way it works is by essentially
+ "turning off" the parser when scripts are enabled, so that the
+ contents of the element are treated as pure text and not as real
+ elements. XML does not define a mechanism by which to do this.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#the-noscript-element>noscript</a></code> element has no other requirements. In
+ particular, children of the <code><a href=#the-noscript-element>noscript</a></code> element are not
+ exempt from <a href=#form-submission>form submission</a>, scripting, and so forth,
+ even when <a href=#concept-n-script title=concept-n-script>scripting is enabled</a>
+ for the element.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, a <code><a href=#the-noscript-element>noscript</a></code> element is
+ used to provide fallback for a script.</p>
+
+ <pre>&lt;form action="calcSquare.php"&gt;
+ &lt;p&gt;
+ &lt;label for=x&gt;Number&lt;/label&gt;:
+ &lt;input id="x" name="x" type="number"&gt;
+ &lt;/p&gt;
+ &lt;script&gt;
+ var x = document.getElementById('x');
+ var output = document.createElement('p');
+ output.textContent = 'Type a number; it will be squared right then!';
+ x.form.appendChild(output);
+ x.form.onsubmit = function () { return false; }
+ x.oninput = function () {
+ var v = x.valueAsNumber;
+ output.textContent = v + ' squared is ' + v * v;
+ };
+ &lt;/script&gt;
+ &lt;noscript&gt;
+ &lt;input type=submit value="Calculate Square"&gt;
+ &lt;/noscript&gt;
+&lt;/form&gt;</pre>
+
+ <p>When script is disabled, a button appears to do the calculation
+ on the server side. When script is enabled, the value is computed
+ on-the-fly instead.</p>
+
+ <p>The <code><a href=#the-noscript-element>noscript</a></code> element is a blunt
+ instrument. Sometimes, scripts might be enabled, but for some
+ reason the page's script might fail. For this reason, it's
+ generally better to avoid using <code><a href=#the-noscript-element>noscript</a></code>, and to
+ instead design the script to change the page from being a
+ scriptless page to a scripted page on the fly, as in the next
+ example:</p>
+
+ <pre>&lt;form action="calcSquare.php"&gt;
+ &lt;p&gt;
+ &lt;label for=x&gt;Number&lt;/label&gt;:
+ &lt;input id="x" name="x" type="number"&gt;
+ &lt;/p&gt;
+ <strong>&lt;input id="submit" type=submit value="Calculate Square"&gt;</strong>
+ &lt;script&gt;
+ var x = document.getElementById('x');
+ var output = document.createElement('p');
+ output.textContent = 'Type a number; it will be squared right then!';
+ x.form.appendChild(output);
+ x.form.onsubmit = function () { return false; }
+ x.oninput = function () {
+ var v = x.valueAsNumber;
+ output.textContent = v + ' squared is ' + v * v;
+ };
+<strong> var submit = document.getElementById('submit');
+ submit.parentNode.removeChild(submit);</strong>
+ &lt;/script&gt;
+&lt;/form&gt;</pre>
+
+ <p>The above technique is also useful in XHTML, since
+ <code><a href=#the-noscript-element>noscript</a></code> is not supported in <a href=#the-xhtml-syntax>the XHTML
+ syntax</a>.</p>
+
+ </div>
+
+
+
+ <h3 id=sections><span class=secno>4.4 </span>Sections</h3>
+
+ <h4 id=the-body-element><span class=secno>4.4.1 </span>The <dfn><code>body</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#sectioning-root>Sectioning root</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As the second element in an <code><a href=#the-html-element>html</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=handler-window-onafterprint><a href=#handler-window-onafterprint>onafterprint</a></code></dd>
+ <dd><code title=handler-window-onbeforeprint><a href=#handler-window-onbeforeprint>onbeforeprint</a></code></dd>
+ <dd><code title=handler-window-onbeforeunload><a href=#handler-window-onbeforeunload>onbeforeunload</a></code></dd>
+ <dd><code title=handler-window-onblur><a href=#handler-window-onblur>onblur</a></code></dd>
+ <dd><code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code></dd>
+ <dd><code title=handler-window-onfocus><a href=#handler-window-onfocus>onfocus</a></code></dd>
+ <dd><code title=handler-window-onhashchange><a href=#handler-window-onhashchange>onhashchange</a></code></dd>
+ <dd><code title=handler-window-onload><a href=#handler-window-onload>onload</a></code></dd>
+ <dd><code title=handler-window-onmessage><a href=#handler-window-onmessage>onmessage</a></code></dd>
+ <dd><code title=handler-window-onoffline><a href=#handler-window-onoffline>onoffline</a></code></dd>
+ <dd><code title=handler-window-ononline><a href=#handler-window-ononline>ononline</a></code></dd>
+ <dd><code title=handler-window-onpagehide><a href=#handler-window-onpagehide>onpagehide</a></code></dd>
+ <dd><code title=handler-window-onpageshow><a href=#handler-window-onpageshow>onpageshow</a></code></dd>
+ <dd><code title=handler-window-onpopstate><a href=#handler-window-onpopstate>onpopstate</a></code></dd>
+ <dd><code title=handler-window-onresize><a href=#handler-window-onresize>onresize</a></code></dd>
+ <dd><code title=handler-window-onscroll><a href=#handler-window-onscroll>onscroll</a></code></dd>
+ <dd><code title=handler-window-onstorage><a href=#handler-window-onstorage>onstorage</a></code></dd>
+ <dd><code title=handler-window-onunload><a href=#handler-window-onunload>onunload</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlbodyelement>HTMLBodyElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+};</pre>
+</dd>
+ </dl><p>The <code><a href=#the-body-element>body</a></code> element <a href=#represents>represents</a> the main
+ content of the document.</p>
+
+ <p>In conforming documents, there is only one <code><a href=#the-body-element>body</a></code>
+ element. The <code title=dom-document-body><a href=#dom-document-body>document.body</a></code>
+ IDL attribute provides scripts with easy access to a document's
+ <code><a href=#the-body-element>body</a></code> element.</p>
+
+ <div class=impl>
+
+ <p class=note>Some DOM operations (for example, parts of the
+ <a href=#dnd>drag and drop</a> model) are defined in terms of "<a href=#the-body-element-0>the
+ body element</a>". This refers to a particular element in the
+ DOM, as per the definition of the term, and not any arbitrary
+ <code><a href=#the-body-element>body</a></code> element.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-body-element>body</a></code> element exposes as <a href=#event-handler-content-attributes>event handler
+ content attributes</a> a number of the <a href=#event-handlers>event
+ handlers</a> of the <code><a href=#window>Window</a></code> object. It also mirrors
+ their <a href=#event-handler-idl-attributes>event handler IDL attributes</a>.</p>
+
+ <p>The <code title=handler-window-onblur><a href=#handler-window-onblur>onblur</a></code>, <code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code>, <code title=handler-window-onfocus><a href=#handler-window-onfocus>onfocus</a></code>, <code title=handler-window-onload><a href=#handler-window-onload>onload</a></code>, and <code title=handler-window-onscroll><a href=#handler-window-onscroll>onscroll</a></code> <a href=#event-handlers>event
+ handlers</a> of the <code><a href=#window>Window</a></code> object, exposed on the
+ <code><a href=#the-body-element>body</a></code> element, shadow the generic <a href=#event-handlers>event
+ handlers</a> with the same names normally supported by <a href=#html-elements>HTML
+ elements</a>.</p>
+
+ <p class=example>Thus, for example, a bubbling <code title=event-error>error</code> event dispatched on a child of
+ <a href=#the-body-element-0>the body element</a> of a <code><a href=#document>Document</a></code> would first
+ trigger the <code title=handler-onerror><a href=#handler-onerror>onerror</a></code> <a href=#event-handler-content-attributes>event
+ handler content attributes</a> of that element, then that of the
+ root <code><a href=#the-html-element>html</a></code> element, and only <em>then</em> would it
+ trigger the <code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code>
+ <a href=#event-handler-content-attributes title="event handler content attributes">event handler content
+ attribute</a> on the <code><a href=#the-body-element>body</a></code> element. This is because
+ the event would bubble from the target, to the <code><a href=#the-body-element>body</a></code>, to
+ the <code><a href=#the-html-element>html</a></code>, to the <code><a href=#document>Document</a></code>, to the
+ <code><a href=#window>Window</a></code>, and the <a href=#event-handlers title="event handlers">event
+ handler</a> on the <code><a href=#the-body-element>body</a></code> is watching the
+ <code><a href=#window>Window</a></code> not the <code><a href=#the-body-element>body</a></code>. A regular event
+ listener attached to the <code><a href=#the-body-element>body</a></code> using <code title="">addEventListener()</code>, however, would be run when the
+ event bubbled through the <code><a href=#the-body-element>body</a></code> and not when it reaches
+ the <code><a href=#window>Window</a></code> object.</p>
+
+ <div class=example>
+
+ <p>This page updates an indicator to show whether or not the user
+ is online:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Online or offline?&lt;/title&gt;
+ &lt;script&gt;
+ function update(online) {
+ document.getElementById('status').textContent =
+ online ? 'Online' : 'Offline';
+ }
+ &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body ononline="update(true)"
+ onoffline="update(false)"
+ onload="update(navigator.onLine)"&gt;
+ &lt;p&gt;You are: &lt;span id="status"&gt;(Unknown)&lt;/span&gt;&lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-section-element><span class=secno>4.4.2 </span>The <dfn><code>section</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#sectioning-content>Sectioning content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-section-element>section</a></code> element <a href=#represents>represents</a> a
+ generic section of a document or application. A section, in this
+ context, is a thematic grouping of content, typically with a
+ heading.</p>
+
+ <p class=example>Examples of sections would be chapters, the
+ various tabbed pages in a tabbed dialog box, or the numbered
+ sections of a thesis. A Web site's home page could be split into
+ sections for an introduction, news items, and contact
+ information.</p>
+
+ <p class=note>Authors are encouraged to use the
+ <code><a href=#the-article-element>article</a></code> element instead of the <code><a href=#the-section-element>section</a></code>
+ element when it would make sense to syndicate the contents of the
+ element.</p>
+
+ <p class=note id=use-div-for-wrappers>The <code><a href=#the-section-element>section</a></code>
+ element is not a generic container element. When an element is
+ needed for styling purposes or as a convenience for scripting,
+ authors are encouraged to use the <code><a href=#the-div-element>div</a></code> element
+ instead. A general rule is that the <code><a href=#the-section-element>section</a></code> element is
+ appropriate only if the element's contents would be listed
+ explicitly in the document's <a href=#outline>outline</a>.</p>
+
+ <div class=example>
+
+ <p>In the following example, we see an article (part of a larger
+ Web page) about apples, containing two short sections.</p>
+
+ <pre>&lt;article&gt;
+ &lt;hgroup&gt;
+ &lt;h1&gt;Apples&lt;/h1&gt;
+ &lt;h2&gt;Tasty, delicious fruit!&lt;/h2&gt;
+ &lt;/hgroup&gt;
+ &lt;p&gt;The apple is the pomaceous fruit of the apple tree.&lt;/p&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Red Delicious&lt;/h1&gt;
+ &lt;p&gt;These bright red apples are the most common found in many
+ supermarkets.&lt;/p&gt;
+ &lt;/section&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Granny Smith&lt;/h1&gt;
+ &lt;p&gt;These juicy, green apples make a great filling for
+ apple pies.&lt;/p&gt;
+ &lt;/section&gt;
+&lt;/article&gt;</pre>
+
+ <p>Notice how the use of <code><a href=#the-section-element>section</a></code> means that the author
+ can use <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> elements throughout, without having to
+ worry about whether a particular section is at the top level, the
+ second level, the third level, and so on.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here is a graduation programme with two sections, one for the
+ list of people graduating, and one for the description of the
+ ceremony.</p>
+
+ <pre>&lt;!DOCTYPE Html&gt;
+&lt;Html
+ &gt;&lt;Head
+ &gt;&lt;Title
+ &gt;Graduation Ceremony Summer 2022&lt;/Title
+ &gt;&lt;/Head
+ &gt;&lt;Body
+ &gt;&lt;H1
+ &gt;Graduation&lt;/H1
+ &gt;&lt;Section
+ &gt;&lt;H1
+ &gt;Ceremony&lt;/H1
+ &gt;&lt;P
+ &gt;Opening Procession&lt;/P
+ &gt;&lt;P
+ &gt;Speech by Validactorian&lt;/P
+ &gt;&lt;P
+ &gt;Speech by Class President&lt;/P
+ &gt;&lt;P
+ &gt;Presentation of Diplomas&lt;/P
+ &gt;&lt;P
+ &gt;Closing Speech by Headmaster&lt;/P
+ &gt;&lt;/Section
+ &gt;&lt;Section
+ &gt;&lt;H1
+ &gt;Graduates&lt;/H1
+ &gt;&lt;Ul
+ &gt;&lt;Li
+ &gt;Molly Carpenter&lt;/Li
+ &gt;&lt;Li
+ &gt;Anastasia Luccio&lt;/Li
+ &gt;&lt;Li
+ &gt;Ebenezar McCoy&lt;/Li
+ &gt;&lt;Li
+ &gt;Karrin Murphy&lt;/Li
+ &gt;&lt;Li
+ &gt;Thomas Raith&lt;/Li
+ &gt;&lt;Li
+ &gt;Susan Rodriguez&lt;/Li
+ &gt;&lt;/Ul
+ &gt;&lt;/Section
+ &gt;&lt;/Body
+&gt;&lt;/Html&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-nav-element><span class=secno>4.4.3 </span>The <dfn><code>nav</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#sectioning-content>Sectioning content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-nav-element>nav</a></code> element <a href=#represents>represents</a> a section of
+ a page that links to other pages or to parts within the page: a
+ section with navigation links.</p>
+
+ <p class=note>Not all groups of links on a page need to be in a
+ <code><a href=#the-nav-element>nav</a></code> element &mdash; the element is primarily intended
+ for sections that consist of major navigation blocks. In particular,
+ it is common for footers to have a short list of links to various
+ pages of a site, such as the terms of service, the home page, and a
+ copyright page. The <code><a href=#the-footer-element>footer</a></code> element alone is sufficient
+ for such cases; while a <code><a href=#the-nav-element>nav</a></code> element can be used in such
+ cases, it is usually unnecessary.</p>
+
+ <p class=note>User agents (such as screen readers) that are
+ targeted at users who can benefit from navigation information being
+ omitted in the initial rendering, or who can benefit from navigation
+ information being immediately available, can use this element as a
+ way to determine what content on the page to initially skip and/or
+ provide on request.</p>
+
+ <div class=example>
+
+ <p>In the following example, the page has several places where
+ links are present, but only one of those places is considered a
+ navigation section.</p>
+
+ <pre>&lt;body&gt;
+ &lt;header&gt;
+ &lt;h1&gt;Wake up sheeple!&lt;/h1&gt;
+ &lt;p&gt;&lt;a href="news.html"&gt;News&lt;/a&gt; -
+ &lt;a href="blog.html"&gt;Blog&lt;/a&gt; -
+ &lt;a href="forums.html"&gt;Forums&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;Last Modified: &lt;time&gt;2009-04-01&lt;/time&gt;&lt;/p&gt;
+ &lt;nav&gt;
+ &lt;h1&gt;Navigation&lt;/h1&gt;
+ &lt;ul&gt;
+ &lt;li&gt;&lt;a href="articles.html"&gt;Index of all articles&lt;/a&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;a href="today.html"&gt;Things sheeple need to wake up for today&lt;/a&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;a href="successes.html"&gt;Sheeple we have managed to wake&lt;/a&gt;&lt;/li&gt;
+ &lt;/ul&gt;
+ &lt;/nav&gt;
+ &lt;/header&gt;
+ &lt;div&gt;
+ &lt;article&gt;
+ &lt;header&gt;
+ &lt;h1&gt;My Day at the Beach&lt;/h1&gt;
+ &lt;/header&gt;
+ &lt;div&gt;
+ &lt;p&gt;Today I went to the beach and had a lot of fun.&lt;/p&gt;
+ <em>...more content...</em>
+ &lt;/div&gt;
+ &lt;footer&gt;
+ &lt;p&gt;Posted &lt;time pubdate="" datetime="2009-10-10T14:36-08:00"&gt;Thursday&lt;/time&gt;.&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;/article&gt;
+ <em>...more blog posts...</em>
+ &lt;/div&gt;
+ &lt;footer&gt;
+ &lt;p&gt;Copyright &copy; 2006 The Example Company&lt;/p&gt;
+ &lt;p&gt;&lt;a href="about.html"&gt;About&lt;/a&gt; -
+ &lt;a href="policy.html"&gt;Privacy Policy&lt;/a&gt; -
+ &lt;a href="contact.html"&gt;Contact Us&lt;/a&gt;&lt;/p&gt;
+ &lt;/footer&gt;
+&lt;/body&gt;</pre>
+
+ <p>Notice the <code><a href=#the-div-element>div</a></code> elements being used to wrap all the
+ contents of the page other than the header and footer, and all the
+ contents of the blog entry other than its header and footer.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, there are two <code><a href=#the-nav-element>nav</a></code>
+ elements, one for primary navigation around the site, and one for
+ secondary navigation around the page itself.</p>
+
+ <pre>&lt;body&gt;
+ &lt;h1&gt;The Wiki Center Of Exampland&lt;/h1&gt;
+ &lt;nav&gt;
+ &lt;ul&gt;
+ &lt;li&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;a href="/events"&gt;Current Events&lt;/a&gt;&lt;/li&gt;
+ <em>...more...</em>
+ &lt;/ul&gt;
+ &lt;/nav&gt;
+ &lt;article&gt;
+ &lt;header&gt;
+ &lt;h1&gt;Demos in Exampland&lt;/h1&gt;
+ &lt;p&gt;Written by A. N. Other.&lt;/p&gt;
+ &lt;/header&gt;
+ &lt;nav&gt;
+ &lt;ul&gt;
+ &lt;li&gt;&lt;a href="#public"&gt;Public demonstrations&lt;/a&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;a href="#destroy"&gt;Demolitions&lt;/a&gt;&lt;/li&gt;
+ <em>...more...</em>
+ &lt;/ul&gt;
+ &lt;/nav&gt;
+ &lt;div&gt;
+ &lt;section id="public"&gt;
+ &lt;h1&gt;Public demonstrations&lt;/h1&gt;
+ &lt;p&gt;<em>...more...</em>&lt;/p&gt;
+ &lt;/section&gt;
+ &lt;section id="destroy"&gt;
+ &lt;h1&gt;Demolitions&lt;/h1&gt;
+ &lt;p&gt;<em>...more...</em>&lt;/p&gt;
+ &lt;/section&gt;
+ <em>...more...</em>
+ &lt;/div&gt;
+ &lt;footer&gt;
+ &lt;p&gt;&lt;a href="?edit"&gt;Edit&lt;/a&gt; | &lt;a href="?delete"&gt;Delete&lt;/a&gt; | &lt;a href="?Rename"&gt;Rename&lt;/a&gt;&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;/article&gt;
+ &lt;footer&gt;
+ &lt;p&gt;&lt;small&gt;&copy; copyright 1998 Exampland Emperor&lt;/small&gt;&lt;/p&gt;
+ &lt;/footer&gt;
+&lt;/body&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>A <code><a href=#the-nav-element>nav</a></code> element doesn't have to contain a list, it
+ can contain other kinds of content as well. In this navigation
+ block, links are provided in prose:</p>
+
+ <pre>&lt;nav&gt;
+ &lt;h1&gt;Navigation&lt;/h1&gt;
+ &lt;p&gt;You are on my home page. To the north lies &lt;a href="/blog"&gt;my
+ blog&lt;/a&gt;, from whence the sounds of battle can be heard. To the east
+ you can see a large mountain, upon which many &lt;a
+ href="/school"&gt;school papers&lt;/a&gt; are littered. Far up thus mountain
+ you can spy a little figure who appears to be me, desperately
+ scribbling a &lt;a href="/school/thesis"&gt;thesis&lt;/a&gt;.&lt;/p&gt;
+ &lt;p&gt;To the west are several exits. One fun-looking exit is labeled &lt;a
+ href="http://games.example.com/"&gt;"games"&lt;/a&gt;. Another more
+ boring-looking exit is labeled &lt;a
+ href="http://isp.example.net/"&gt;ISP&trade;&lt;/a&gt;.&lt;/p&gt;
+ &lt;p&gt;To the south lies a dark and dank &lt;a href="/about"&gt;contacts
+ page&lt;/a&gt;. Cobwebs cover its disused entrance, and at one point you
+ see a rat run quickly out of the page.&lt;/p&gt;
+&lt;/nav&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-article-element><span class=secno>4.4.4 </span>The <dfn><code>article</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#sectioning-content>Sectioning content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-article-element>article</a></code> element <a href=#represents>represents</a> a
+ self-contained composition in a document, page, application, or site
+ and that is, in principle, independently distributable or reusable,
+ e.g. in syndication. This could be a forum post, a magazine or
+ newspaper article, a blog entry, a user-submitted comment, an
+ interactive widget or gadget, or any other independent item of
+ content.</p>
+
+ <p>When <code><a href=#the-article-element>article</a></code> elements are nested, the inner
+ <code><a href=#the-article-element>article</a></code> elements represent articles that are in
+ principle related to the contents of the outer article. For
+ instance, a blog entry on a site that accepts user-submitted
+ comments could represent the comments as <code><a href=#the-article-element>article</a></code>
+ elements nested within the <code><a href=#the-article-element>article</a></code> element for the blog
+ entry.</p>
+
+ <p>Author information associated with an <code><a href=#the-article-element>article</a></code>
+ element (q.v. the <code><a href=#the-address-element>address</a></code> element) does not apply to
+ nested <code><a href=#the-article-element>article</a></code> elements.</p>
+
+ <p class=note>When used specifically with content to be
+ redistributed in syndication, the <code><a href=#the-article-element>article</a></code> element is
+ similar in purpose to the <code title="">entry</code> element in
+ Atom. <a href=#refsATOM>[ATOM]</a>
+
+ <p class=note>The <code><a href=#the-time-element>time</a></code> element's <code title=attr-time-pubdate><a href=#attr-time-pubdate>pubdate</a></code> attribute can be used to
+ provide the publication date for an <code><a href=#the-article-element>article</a></code>
+ element.</p>
+
+ <div class=example id=article-example>
+
+ <p>This example shows a blog post using the <code><a href=#the-article-element>article</a></code>
+ element:</p>
+
+ <pre>&lt;article&gt;
+ &lt;header&gt;
+ &lt;h1&gt;The Very First Rule of Life&lt;/h1&gt;
+ &lt;p&gt;&lt;time pubdate datetime="2009-10-09T14:28-08:00"&gt;&lt;/time&gt;&lt;/p&gt;
+ &lt;/header&gt;
+ &lt;p&gt;If there's a microphone anywhere near you, assume it's hot and
+ sending whatever you're saying to the world. Seriously.&lt;/p&gt;
+ &lt;p&gt;<em>...</em>&lt;/p&gt;
+ &lt;footer&gt;
+ &lt;a href="?comments=1"&gt;Show comments...&lt;/a&gt;
+ &lt;/footer&gt;
+&lt;/article&gt;</pre>
+
+ <p>Here is that same blog post, but showing some of the comments:</p>
+
+ <pre>&lt;article&gt;
+ &lt;header&gt;
+ &lt;h1&gt;The Very First Rule of Life&lt;/h1&gt;
+ &lt;p&gt;&lt;time pubdate datetime="2009-10-09T14:28-08:00"&gt;&lt;/time&gt;&lt;/p&gt;
+ &lt;/header&gt;
+ &lt;p&gt;If there's a microphone anywhere near you, assume it's hot and
+ sending whatever you're saying to the world. Seriously.&lt;/p&gt;
+ &lt;p&gt;<em>...</em>&lt;/p&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Comments&lt;/h1&gt;
+ &lt;article&gt;
+ &lt;footer&gt;
+ &lt;p&gt;Posted by: George Washington&lt;/p&gt;
+ &lt;p&gt;&lt;time pubdate datetime="2009-10-10T19:10-08:00"&gt;&lt;/time&gt;&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;p&gt;Yeah! Especially when talking about your lobbyist friends!&lt;/p&gt;
+ &lt;/article&gt;
+ &lt;article&gt;
+ &lt;footer&gt;
+ &lt;p&gt;Posted by: George Hammond&lt;/p&gt;
+ &lt;p&gt;&lt;time pubdate datetime="2009-10-10T19:15-08:00"&gt;&lt;/time&gt;&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;p&gt;Hey, you have the same first name as me.&lt;/p&gt;
+ &lt;/article&gt;
+ &lt;/section&gt;
+&lt;/article&gt;</pre>
+
+ <p>Notice the use of <code><a href=#the-footer-element>footer</a></code> to give the information
+ for each comment (such as who wrote it and when): the
+ <code><a href=#the-footer-element>footer</a></code> element <em>can</em> appear at the start of its
+ section when appropriate, such as in this case. (Using
+ <code><a href=#the-header-element>header</a></code> in this case wouldn't be wrong either; it's
+ mostly a matter of authoring preference.)</p>
+
+ </div>
+
+
+
+
+ <h4 id=the-aside-element><span class=secno>4.4.5 </span>The <dfn><code>aside</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#sectioning-content>Sectioning content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-aside-element>aside</a></code> element <a href=#represents>represents</a> a section
+ of a page that consists of content that is tangentially related to
+ the content around the <code><a href=#the-aside-element>aside</a></code> element, and which could
+ be considered separate from that content. Such sections are often
+ represented as sidebars in printed typography.</p>
+
+ <p>The element can be used for typographical effects like pull
+ quotes or sidebars, for advertising, for groups of <code><a href=#the-nav-element>nav</a></code>
+ elements, and for other content that is considered separate from the
+ main content of the page.</p>
+
+ <p class=note>It's not appropriate to use the <code><a href=#the-aside-element>aside</a></code>
+ element just for parentheticals, since those are part of the main
+ flow of the document.</p>
+
+ <div class=example>
+
+ <p>The following example shows how an aside is used to mark up
+ background material on Switzerland in a much longer news story on
+ Europe.</p>
+
+ <pre>&lt;aside&gt;
+ &lt;h1&gt;Switzerland&lt;/h1&gt;
+ &lt;p&gt;Switzerland, a land-locked country in the middle of geographic
+ Europe, has not joined the geopolitical European Union, though it is
+ a signatory to a number of European treaties.&lt;/p&gt;
+&lt;/aside&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows how an aside is used to mark up
+ a pull quote in a longer article.</p>
+
+ <pre>...
+
+&lt;p&gt;He later joined a large company, continuing on the same work.
+&lt;q&gt;I love my job. People ask me what I do for fun when I'm not at
+work. But I'm paid to do my hobby, so I never know what to
+answer. Some people wonder what they would do if they didn't have to
+work... but I know what I would do, because I was unemployed for a
+year, and I filled that time doing exactly what I do now.&lt;/q&gt;&lt;/p&gt;
+
+&lt;aside&gt;
+ &lt;q&gt; People ask me what I do for fun when I'm not at work. But I'm
+ paid to do my hobby, so I never know what to answer. &lt;/q&gt;
+&lt;/aside&gt;
+
+&lt;p&gt;Of course his work &mdash; or should that be hobby? &mdash;
+isn't his only passion. He also enjoys other pleasures.&lt;/p&gt;
+
+...</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following extract shows how <code><a href=#the-aside-element>aside</a></code> can be used
+ for blogrolls and other side content on a blog:</p>
+
+ <pre>&lt;body&gt;
+ &lt;header&gt;
+ &lt;h1&gt;My wonderful blog&lt;/h1&gt;
+ &lt;p&gt;My tagline&lt;/p&gt;
+ &lt;/header&gt;
+ &lt;aside&gt;
+ &lt;!-- <em>this aside contains two sections that are tangentially related
+ to the page, namely, links to other blogs, and links to blog posts
+ from this blog</em> --&gt;
+ &lt;nav&gt;
+ &lt;h1&gt;My blogroll&lt;/h1&gt;
+ &lt;ul&gt;
+ &lt;li&gt;&lt;a href="http://blog.example.com/"&gt;Example Blog&lt;/a&gt;
+ &lt;/ul&gt;
+ &lt;/nav&gt;
+ &lt;nav&gt;
+ &lt;h1&gt;Archives&lt;/h1&gt;
+ &lt;ol reversed&gt;
+ &lt;li&gt;&lt;a href="/last-post"&gt;My last post&lt;/a&gt;
+ &lt;li&gt;&lt;a href="/first-post"&gt;My first post&lt;/a&gt;
+ &lt;/ol&gt;
+ &lt;/nav&gt;
+ &lt;/aside&gt;
+ &lt;aside&gt;
+ &lt;!-- <em>this aside is tangentially related to the page also, it
+ contains twitter messages from the blog author</em> --&gt;
+ &lt;h1&gt;Twitter Feed&lt;/h1&gt;
+ &lt;blockquote cite="http://twitter.example.net/t31351234"&gt;
+ I'm on vacation, writing my blog.
+ &lt;/blockquote&gt;
+ &lt;blockquote cite="http://twitter.example.net/t31219752"&gt;
+ I'm going to go on vacation soon.
+ &lt;/blockquote&gt;
+ &lt;/aside&gt;
+ &lt;article&gt;
+ &lt;!-- <em>this is a blog post</em> --&gt;
+ &lt;h1&gt;My last post&lt;/h1&gt;
+ &lt;p&gt;This is my last post.&lt;/p&gt;
+ &lt;footer&gt;
+ &lt;p&gt;&lt;a href="/last-post" rel=bookmark&gt;Permalink&lt;/a&gt;
+ &lt;/footer&gt;
+ &lt;/article&gt;
+ &lt;article&gt;
+ &lt;!-- <em>this is also a blog post</em> --&gt;
+ &lt;h1&gt;My first post&lt;/h1&gt;
+ &lt;p&gt;This is my first post.&lt;/p&gt;
+ &lt;aside&gt;
+ &lt;!-- <em>this aside is about the blog post, since it's inside the
+ &lt;article&gt; element; it would be wrong, for instance, to put the
+ blogroll here, since the blogroll isn't really related to this post
+ specifically, only to the page as a whole</em> --&gt;
+ &lt;h1&gt;Posting&lt;/h1&gt;
+ &lt;p&gt;While I'm thinking about it, I wanted to say something about
+ posting. Posting is fun!&lt;/p&gt;
+ &lt;/aside&gt;
+ &lt;footer&gt;
+ &lt;p&gt;&lt;a href="/first-post" rel=bookmark&gt;Permalink&lt;/a&gt;
+ &lt;/footer&gt;
+ &lt;/article&gt;
+ &lt;footer&gt;
+ &lt;nav&gt;
+ &lt;a href="/archives"&gt;Archives&lt;/a&gt; &mdash;
+ &lt;a href="/about"&gt;About me&lt;/a&gt; &mdash;
+ &lt;a href="/copyright"&gt;Copyright&lt;/a&gt;
+ &lt;/nav&gt;
+ &lt;/footer&gt;
+&lt;/body&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-h1,-h2,-h3,-h4,-h5,-and-h6-elements><span class=secno>4.4.6 </span>The <dfn id=the-h1-element><code>h1</code></dfn>, <dfn id=the-h2-element><code>h2</code></dfn>, <dfn id=the-h3-element><code>h3</code></dfn>, <dfn id=the-h4-element><code>h4</code></dfn>, <dfn id=the-h5-element><code>h5</code></dfn>, and <dfn id=the-h6-element><code>h6</code></dfn> elements</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#heading-content>Heading content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of an <code><a href=#the-hgroup-element>hgroup</a></code> element.</dd>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlheadingelement>HTMLHeadingElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>These elements <a href=#represents title=represents>represent</a> headings
+ for their sections.</p>
+
+ <p>The semantics and meaning of these elements are defined in the
+ section on <a href=#headings-and-sections>headings and sections</a>.</p>
+
+ <p>These elements have a <dfn id=rank>rank</dfn> given by the number in
+ their name. The <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> element is said to have the highest
+ rank, the <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> element has the lowest rank, and two
+ elements with the same name have equal rank.</p>
+
+ <div class=example>
+
+ <p>These two snippets are equivalent:</p>
+
+ <pre>&lt;body&gt;
+&lt;h1&gt;Let's call it a draw(ing surface)&lt;/h1&gt;
+&lt;h2&gt;Diving in&lt;/h2&gt;
+&lt;h2&gt;Simple shapes&lt;/h2&gt;
+&lt;h2&gt;Canvas coordinates&lt;/h2&gt;
+&lt;h3&gt;Canvas coordinates diagram&lt;/h3&gt;
+&lt;h2&gt;Paths&lt;/h2&gt;
+&lt;/body&gt;</pre>
+
+ <pre>&lt;body&gt;
+ &lt;h1&gt;Let's call it a draw(ing surface)&lt;/h1&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Diving in&lt;/h1&gt;
+ &lt;/section&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Simple shapes&lt;/h1&gt;
+ &lt;/section&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Canvas coordinates&lt;/h1&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Canvas coordinates diagram&lt;/h1&gt;
+ &lt;/section&gt;
+ &lt;/section&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Paths&lt;/h1&gt;
+ &lt;/section&gt;
+&lt;/body&gt;</pre>
+
+ </div>
+
+
+
+
+ <h4 id=the-hgroup-element><span class=secno>4.4.7 </span>The <dfn><code>hgroup</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#heading-content>Heading content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>One or more <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, and/or <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> elements.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-hgroup-element>hgroup</a></code> element <a href=#represents>represents</a> the
+ heading of a section. The element is used to group a set of
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> elements when the heading has
+ multiple levels, such as subheadings, alternative titles, or
+ taglines.</p>
+
+ <p>For the purposes of document summaries, outlines, and the like,
+ the text of <code><a href=#the-hgroup-element>hgroup</a></code> elements is defined to be the text
+ of the highest <a href=#rank title=rank>ranked</a>
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> element descendant of the
+ <code><a href=#the-hgroup-element>hgroup</a></code> element, if there are any such elements, and the
+ first such element if there are multiple elements with that
+ <a href=#rank>rank</a>. If there are no such elements, then the text of
+ the <code><a href=#the-hgroup-element>hgroup</a></code> element is the empty string.</p>
+
+ <p>Other elements of <a href=#heading-content>heading content</a> in the
+ <code><a href=#the-hgroup-element>hgroup</a></code> element indicate subheadings or subtitles.</p>
+
+ <p>The <a href=#rank>rank</a> of an <code><a href=#the-hgroup-element>hgroup</a></code> element is the
+ rank of the highest-ranked <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>
+ element descendant of the <code><a href=#the-hgroup-element>hgroup</a></code> element, if there are
+ any such elements, or otherwise the same as for an <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>
+ element (the highest rank).</p>
+
+ <p>The section on <a href=#headings-and-sections>headings and sections</a>
+ defines how <code><a href=#the-hgroup-element>hgroup</a></code> elements are assigned to individual
+ sections.</p>
+
+ <div class=example>
+
+ <p>Here are some examples of valid headings. In each case, the
+ emphasized text represents the text that would be used as the
+ heading in an application extracting heading data and ignoring
+ subheadings.</p>
+
+ <pre>&lt;hgroup&gt;
+ &lt;h1&gt;<strong>The reality dysfunction</strong>&lt;/h1&gt;
+ &lt;h2&gt;Space is not the only void&lt;/h2&gt;
+&lt;/hgroup&gt;</pre>
+
+ <pre>&lt;hgroup&gt;
+ &lt;h1&gt;<strong>Dr. Strangelove</strong>&lt;/h1&gt;
+ &lt;h2&gt;Or: How I Learned to Stop Worrying and Love the Bomb&lt;/h2&gt;
+&lt;/hgroup&gt;</pre>
+
+ <p>The point of using <code><a href=#the-hgroup-element>hgroup</a></code> in these examples is to
+ mask the <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code> element (which acts as a secondary title)
+ from the <a href=#outline>outline</a> algorithm.</p><!--
+ http://www.brucelawson.co.uk/2009/html-5-is-a-mess/#comment-618895
+ -->
+
+ </div>
+
+
+ <h4 id=the-header-element><span class=secno>4.4.8 </span>The <dfn><code>header</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>, but with no <code><a href=#the-header-element>header</a></code> or
+ <code><a href=#the-footer-element>footer</a></code> element descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-header-element>header</a></code> element <a href=#represents>represents</a> a group
+ of introductory or navigational aids.</p>
+
+ <p class=note>A <code><a href=#the-header-element>header</a></code> element is intended to usually
+ contain the section's heading (an
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> element or an
+ <code><a href=#the-hgroup-element>hgroup</a></code> element), but this is not required. The
+ <code><a href=#the-header-element>header</a></code> element can also be used to wrap a section's
+ table of contents, a search form, or any relevant logos.</p>
+
+ <div class=example>
+
+ <p>Here are some sample headers. This first one is for a game:</p>
+
+ <pre>&lt;header&gt;
+ &lt;p&gt;Welcome to...&lt;/p&gt;
+ &lt;h1&gt;Voidwars!&lt;/h1&gt;
+&lt;/header&gt;</pre>
+
+ <p>The following snippet shows how the element can be used to mark
+ up a specification's header:</p>
+
+ <pre>&lt;header&gt;
+ &lt;hgroup&gt;
+ &lt;h1&gt;Scalable Vector Graphics (SVG) 1.2&lt;/h1&gt;
+ &lt;h2&gt;W3C Working Draft 27 October 2004&lt;/h2&gt;
+ &lt;/hgroup&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;This version:&lt;/dt&gt;
+ &lt;dd&gt;&lt;a href="http://www.w3.org/TR/2004/WD-SVG12-20041027/"&gt;http://www.w3.org/TR/2004/WD-SVG12-20041027/&lt;/a&gt;&lt;/dd&gt;
+ &lt;dt&gt;Previous version:&lt;/dt&gt;
+ &lt;dd&gt;&lt;a href="http://www.w3.org/TR/2004/WD-SVG12-20040510/"&gt;http://www.w3.org/TR/2004/WD-SVG12-20040510/&lt;/a&gt;&lt;/dd&gt;
+ &lt;dt&gt;Latest version of SVG 1.2:&lt;/dt&gt;
+ &lt;dd&gt;&lt;a href="http://www.w3.org/TR/SVG12/"&gt;http://www.w3.org/TR/SVG12/&lt;/a&gt;&lt;/dd&gt;
+ &lt;dt&gt;Latest SVG Recommendation:&lt;/dt&gt;
+ &lt;dd&gt;&lt;a href="http://www.w3.org/TR/SVG/"&gt;http://www.w3.org/TR/SVG/&lt;/a&gt;&lt;/dd&gt;
+ &lt;dt&gt;Editor:&lt;/dt&gt;
+ &lt;dd&gt;Dean Jackson, W3C, &lt;a href="mailto:dean@w3.org"&gt;dean@w3.org&lt;/a&gt;&lt;/dd&gt;
+ &lt;dt&gt;Authors:&lt;/dt&gt;
+ &lt;dd&gt;See &lt;a href="#authors"&gt;Author List&lt;/a&gt;&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;p class="copyright"&gt;&lt;a href="http://www.w3.org/Consortium/Legal/ipr-notic <em>...</em>
+&lt;/header&gt;</pre>
+
+ </div>
+
+ <p class=note>The <code><a href=#the-header-element>header</a></code> element is not
+ <a href=#sectioning-content>sectioning content</a>; it doesn't introduce a new
+ section.</p>
+
+ <div class=example>
+
+ <p>In this example, the page has a page heading given by the
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> element, and two subsections whose headings are
+ given by <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code> elements. The content after the
+ <code><a href=#the-header-element>header</a></code> element is still part of the last subsection
+ started in the <code><a href=#the-header-element>header</a></code> element, because the
+ <code><a href=#the-header-element>header</a></code> element doesn't take part in the
+ <a href=#outline>outline</a> algorithm.</p>
+
+ <pre>&lt;body&gt;
+ &lt;header&gt;
+ &lt;h1&gt;Little Green Guys With Guns&lt;/h1&gt;
+ &lt;nav&gt;
+ &lt;ul&gt;
+ &lt;li&gt;&lt;a href="/games"&gt;Games&lt;/a&gt;
+ &lt;li&gt;&lt;a href="/forum"&gt;Forum&lt;/a&gt;
+ &lt;li&gt;&lt;a href="/download"&gt;Download&lt;/a&gt;
+ &lt;/ul&gt;
+ &lt;/nav&gt;
+ &lt;h2&gt;Important News&lt;/h2&gt; &lt;!-- this starts a second subsection --&gt;
+ &lt;!-- this is part of the subsection entitled "Important News" --&gt;
+ &lt;p&gt;To play today's games you will need to update your client.&lt;/p&gt;
+ &lt;h2&gt;Games&lt;/h2&gt; &lt;!-- this starts a third subsection --&gt;
+ &lt;/header&gt;
+ &lt;p&gt;You have three active games:&lt;/p&gt;
+ &lt;!-- this is still part of the subsection entitled "Games" --&gt;
+ ...</pre>
+
+ </div>
+
+
+
+
+ <h4 id=the-footer-element><span class=secno>4.4.9 </span>The <dfn><code>footer</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>, but with no <code><a href=#the-header-element>header</a></code> or
+ <code><a href=#the-footer-element>footer</a></code> element descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-footer-element>footer</a></code> element <a href=#represents>represents</a> a footer
+ for its nearest ancestor <a href=#sectioning-content>sectioning content</a> or
+ <a href=#sectioning-root>sectioning root</a> element. A footer typically contains
+ information about its section such as who wrote it, links to related
+ documents, copyright data, and the like.</p>
+
+ <p>When the <code><a href=#the-footer-element>footer</a></code> element contains entire sections,
+ they <a href=#represents title=represents>represent</a> appendices, indexes,
+ long colophons, verbose license agreements, and other such
+ content.</p>
+
+ <p class=note>Contact information for the author or editor of a
+ section belongs in an <code><a href=#the-address-element>address</a></code> element, possibly itself
+ inside a <code><a href=#the-footer-element>footer</a></code>.</p>
+
+ <p>Footers don't necessarily have to appear at the <em>end</em> of a
+ section, though they usually do.</p>
+
+ <p>When the nearest ancestor <a href=#sectioning-content>sectioning content</a> or
+ <a href=#sectioning-root>sectioning root</a> element is <a href=#the-body-element-0>the body
+ element</a>, then it applies to the whole page.</p>
+
+ <p class=note>The <code><a href=#the-footer-element>footer</a></code> element is not
+ <a href=#sectioning-content>sectioning content</a>; it doesn't introduce a new
+ section.</p>
+
+ <div class=example>
+
+ <p>Here is a page with two footers, one at the top and one at the
+ bottom, with the same content:</p>
+
+ <pre>&lt;body&gt;
+ &lt;footer&gt;&lt;a href="../"&gt;Back to index...&lt;/a&gt;&lt;/footer&gt;
+ &lt;hgroup&gt;
+ &lt;h1&gt;Lorem ipsum&lt;/h1&gt;
+ &lt;h2&gt;The ipsum of all lorems&lt;/h2&gt;
+ &lt;/hgroup&gt;
+ &lt;p&gt;A dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
+ veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
+ ea commodo consequat. Duis aute irure dolor in reprehenderit in
+ voluptate velit esse cillum dolore eu fugiat nulla
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
+ culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+ &lt;footer&gt;&lt;a href="../"&gt;Back to index...&lt;/a&gt;&lt;/footer&gt;
+&lt;/body&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here is an example which shows the <code><a href=#the-footer-element>footer</a></code> element
+ being used both for a site-wide footer and for a section
+ footer.</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;HTML&gt;&lt;HEAD&gt;
+&lt;TITLE&gt;The Ramblings of a Scientist&lt;/TITLE&gt;
+&lt;BODY&gt;
+&lt;H1&gt;The Ramblings of a Scientist&lt;/H1&gt;
+&lt;ARTICLE&gt;
+ &lt;H1&gt;Episode 15&lt;/H1&gt;
+ &lt;VIDEO SRC="/fm/015.ogv" CONTROLS PRELOAD&gt;
+ &lt;P&gt;&lt;A HREF="/fm/015.ogv"&gt;Download video&lt;/A&gt;.&lt;/P&gt;
+ &lt;/VIDEO&gt;
+ &lt;FOOTER&gt; &lt;!-- footer for article --&gt;
+ &lt;P&gt;Published &lt;TIME PUBDATE DATETIME="2009-10-21T18:26-07:00"&gt;&lt;/TIME&gt;&lt;/P&gt;
+ &lt;/FOOTER&gt;
+&lt;/ARTICLE&gt;
+&lt;ARTICLE&gt;
+ &lt;H1&gt;My Favorite Trains&lt;/H1&gt;
+ &lt;P&gt;I love my trains. My favorite train of all time is a K&ouml;f.&lt;/P&gt;
+ &lt;P&gt;It is fun to see them pull some coal cars because they look so
+ dwarfed in comparison.&lt;/P&gt;
+ &lt;FOOTER&gt; &lt;!-- footer for article --&gt;
+ &lt;P&gt;Published &lt;TIME PUBDATE DATETIME="2009-09-15T14:54-07:00"&gt;&lt;/TIME&gt;&lt;/P&gt;
+ &lt;/FOOTER&gt;
+&lt;/ARTICLE&gt;
+&lt;FOOTER&gt; &lt;!-- site wide footer --&gt;
+ &lt;NAV&gt;
+ &lt;P&gt;&lt;A HREF="/credits.html"&gt;Credits&lt;/A&gt; &mdash;
+ &lt;A HREF="/tos.html"&gt;Terms of Service&lt;/A&gt; &mdash;
+ &lt;A HREF="/index.html"&gt;Blog Index&lt;/A&gt;&lt;/P&gt;
+ &lt;/NAV&gt;
+ &lt;P&gt;Copyright &copy; 2009 Gordon Freeman&lt;/P&gt;
+&lt;/FOOTER&gt;
+&lt;/BODY&gt;
+&lt;/HTML&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Some site designs have what is sometimes referred to as "fat
+ footers" &mdash; footers that contain a lot of material, including
+ images, links to other articles, links to pages for sending
+ feedback, special offers... in some ways, a whole "front page" in
+ the footer.</p>
+
+ <p>This fragment shows the bottom of a page on a site with a "fat
+ footer":</p>
+
+ <pre>...
+ &lt;footer&gt;
+ &lt;nav&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Articles&lt;/h1&gt;
+ &lt;p&gt;&lt;img src="images/somersaults.jpeg" alt=""&gt; Go to the gym with
+ our somersaults class! Our teacher Jim takes you through the paces
+ in this two-part article. &lt;a href="articles/somersaults/1"&gt;Part
+ 1&lt;/a&gt; &middot; &lt;a href="articles/somersaults/1"&gt;Part 2&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;img src="images/kindplus.jpeg"&gt; Tired of walking on the edge of
+ a clif&lt;!-- sic --&gt;? Our guest writer Lara shows you how to bumble
+ your way through the bars. &lt;a href="articles/kindplus/1"&gt;Read
+ more...&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;img src="images/crisps.jpeg"&gt; The chips are down, now all
+ that's left is a potato. What can you do with it? &lt;a
+ href="articles/crisps/1"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
+ &lt;/section&gt;
+ &lt;ul&gt;
+ &lt;li&gt; &lt;a href="/about"&gt;About us...&lt;/a&gt;
+ &lt;li&gt; &lt;a href="/feedback"&gt;Send feedback!&lt;/a&gt;
+ &lt;li&gt; &lt;a href="/sitemap"&gt;Sitemap&lt;/a&gt;
+ &lt;/ul&gt;
+ &lt;/nav&gt;
+ &lt;p&gt;&lt;small&gt;Copyright &copy; 2015 The Snacker &mdash;
+ &lt;a href="/tos"&gt;Terms of Service&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
+ &lt;/footer&gt;
+&lt;/body&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-address-element><span class=secno>4.4.10 </span>The <dfn><code>address</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>, but with no <a href=#heading-content>heading
+ content</a> descendants, no <a href=#sectioning-content>sectioning content</a>
+ descendants, and no <code><a href=#the-header-element>header</a></code>, <code><a href=#the-footer-element>footer</a></code>, or
+ <code><a href=#the-address-element>address</a></code> element descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-address-element>address</a></code> element <a href=#represents>represents</a> the
+ contact information for its nearest <code><a href=#the-article-element>article</a></code> or
+ <code><a href=#the-body-element>body</a></code> element ancestor. If that is <a href=#the-body-element-0>the body
+ element</a>, then the contact information applies to the document
+ as a whole.</p>
+
+ <div class=example>
+ <p>For example, a page at the W3C Web site related to HTML might
+ include the following contact information:</p>
+ <pre>&lt;ADDRESS&gt;
+ &lt;A href="../People/Raggett/"&gt;Dave Raggett&lt;/A&gt;,
+ &lt;A href="../People/Arnaud/"&gt;Arnaud Le Hors&lt;/A&gt;,
+ contact persons for the &lt;A href="Activity"&gt;W3C HTML Activity&lt;/A&gt;
+&lt;/ADDRESS&gt;</pre>
+ </div>
+
+ <p>The <code><a href=#the-address-element>address</a></code> element must not be used to represent
+ arbitrary addresses (e.g. postal addresses), unless those addresses
+ are in fact the relevant contact information. (The <code><a href=#the-p-element>p</a></code>
+ element is the appropriate element for marking up postal addresses
+ in general.)</p>
+
+ <p>The <code><a href=#the-address-element>address</a></code> element must not contain information
+ other than contact information.</p>
+
+ <div class=example>
+ <p>For example, the following is non-conforming use of the
+ <code><a href=#the-address-element>address</a></code> element:</p>
+ <pre class=bad>&lt;ADDRESS&gt;Last Modified: 1999/12/24 23:37:50&lt;/ADDRESS&gt;</pre>
+ </div>
+
+ <p>Typically, the <code><a href=#the-address-element>address</a></code> element would be included
+ along with other information in a <code><a href=#the-footer-element>footer</a></code> element.</p>
+
+ <div class=impl>
+
+ <p>The contact information for a node <var title="">node</var> is a
+ collection of <code><a href=#the-address-element>address</a></code> elements defined by the first
+ applicable entry from the following list:</p>
+
+ <dl class=switch><dt>If <var title="">node</var> is an <code><a href=#the-article-element>article</a></code> element</dt>
+ <dt>If <var title="">node</var> is a <code><a href=#the-body-element>body</a></code> element</dt>
+
+ <dd>
+
+ <p>The contact information consists of all the
+ <code><a href=#the-address-element>address</a></code> elements that have <var title="">node</var>
+ as an ancestor and do not have another <code><a href=#the-body-element>body</a></code> or
+ <code><a href=#the-article-element>article</a></code> element ancestor that is a descendant of <var title="">node</var>.</p>
+
+ </dd>
+
+ <dt>If <var title="">node</var> has an ancestor element that is an <code><a href=#the-article-element>article</a></code> element</dt>
+ <dt>If <var title="">node</var> has an ancestor element that is a <code><a href=#the-body-element>body</a></code> element</dt>
+
+ <dd>
+
+ <p>The contact information of <var title="">node</var> is the same
+ as the contact information of the nearest <code><a href=#the-article-element>article</a></code> or
+ <code><a href=#the-body-element>body</a></code> element ancestor, whichever is nearest.</p>
+
+ </dd>
+
+ <dt>If <var title="">node</var>'s <code><a href=#document>Document</a></code> has <a href=#the-body-element-0 title="the body element">a body element</a></dt>
+
+ <dd>
+
+ <p>The contact information of <var title="">node</var> is the same
+ as the contact information of <a href=#the-body-element-0>the body element</a> of the
+ <code><a href=#document>Document</a></code>.</p>
+
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>There is no contact information for <var title="">node</var>.</p>
+
+ </dd>
+
+ </dl><p>User agents may expose the contact information of a node to the
+ user, or use it for other purposes, such as indexing sections based
+ on the sections' contact information.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example the footer contains contact information and a
+ copyright notice.</p>
+
+ <pre>&lt;footer&gt;
+ &lt;address&gt;
+ For more details, contact
+ &lt;a href="mailto:js@example.com"&gt;John Smith&lt;/a&gt;.
+ &lt;/address&gt;
+ &lt;p&gt;&lt;small&gt;&copy; copyright 2038 Example Corp.&lt;/small&gt;&lt;/p&gt;
+&lt;/footer&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=headings-and-sections><span class=secno>4.4.11 </span><dfn>Headings and sections</dfn></h4>
+
+ <p>The <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> elements and the
+ <code><a href=#the-hgroup-element>hgroup</a></code> element are headings.</p>
+
+ <p>The first element of <a href=#heading-content>heading content</a> in an element
+ of <a href=#sectioning-content>sectioning content</a> <a href=#represents>represents</a> the
+ heading for that section. Subsequent headings of equal or higher
+ <a href=#rank>rank</a> start new (implied) sections, headings of lower
+ <a href=#rank>rank</a> start implied subsections that are part of the
+ previous one. In both cases, the element <a href=#represents>represents</a> the
+ heading of the implied section.</p>
+
+ <p>Certain elements are said to be <dfn id=sectioning-root title="sectioning
+ root">sectioning roots</dfn>, including <code><a href=#the-blockquote-element>blockquote</a></code> and
+ <code><a href=#the-td-element>td</a></code> elements. These elements can have their own
+ outlines, but the sections and headings inside these elements do not
+ contribute to the outlines of their ancestors.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-blockquote-element>blockquote</a></code></li>
+ <li><code><a href=#the-body-element>body</a></code></li>
+ <li><code><a href=#the-details-element>details</a></code></li>
+ <li><code><a href=#the-fieldset-element>fieldset</a></code></li>
+ <li><code><a href=#the-figure-element>figure</a></code></li>
+ <li><code><a href=#the-td-element>td</a></code></li>
+ </ul><!-- a root element isn't a sectioning root. This means, for
+ instance, that you don't get an outline if you just have a random
+ XML file with <html:h1> elements in it. Other vocabs need to define
+ what their sectioning root is. --><p><a href=#sectioning-content>Sectioning content</a> elements are always considered
+ subsections of their nearest ancestor <a href=#sectioning-root>sectioning root</a>
+ or their nearest ancestor element of <a href=#sectioning-content>sectioning
+ content</a>, whichever is nearest, regardless of what implied
+ sections other headings may have created.</p>
+
+ <div class=example>
+ <p>For the following fragment:</p>
+ <pre>&lt;body&gt;
+ &lt;h1&gt;Foo&lt;/h1&gt;
+ &lt;h2&gt;Bar&lt;/h2&gt;
+ &lt;blockquote&gt;
+ &lt;h3&gt;Bla&lt;/h3&gt;
+ &lt;/blockquote&gt;
+ &lt;p&gt;Baz&lt;/p&gt;
+ &lt;h2&gt;Quux&lt;/h2&gt;
+ &lt;section&gt;
+ &lt;h3&gt;Thud&lt;/h3&gt;
+ &lt;/section&gt;
+ &lt;p&gt;Grunt&lt;/p&gt;
+&lt;/body&gt;</pre>
+ <p>...the structure would be:</p>
+ <ol><li>
+ Foo (heading of explicit <code><a href=#the-body-element>body</a></code> section, containing the "Grunt" paragraph)
+ <ol><li>
+ Bar (heading starting implied section, containing a block quote and the "Baz" paragraph)
+ </li>
+ <li>
+ Quux (heading starting implied section with no content other than the heading itself)
+ </li>
+ <li>
+ Thud (heading of explicit <code><a href=#the-section-element>section</a></code> section)
+ </li>
+ </ol></li>
+ </ol><p>Notice how the <code><a href=#the-section-element>section</a></code> ends the earlier implicit
+ section so that a later paragraph ("Grunt") is back at the top
+ level.</p>
+ </div>
+
+ <p>Sections may contain headings of any <a href=#rank>rank</a>, but
+ authors are strongly encouraged to either use only <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>
+ elements, or to use elements of the appropriate <a href=#rank>rank</a>
+ for the section's nesting level.</p>
+
+ <p>Authors are also encouraged to explicitly wrap sections in
+ elements of <a href=#sectioning-content>sectioning content</a>, instead of relying on
+ the implicit sections generated by having multiple headings in one
+ element of <a href=#sectioning-content>sectioning content</a>.</p>
+
+ <div class=example>
+ <p>For example, the following is correct:</p>
+
+ <pre>&lt;body&gt;
+ &lt;h4&gt;Apples&lt;/h4&gt;
+ &lt;p&gt;Apples are fruit.&lt;/p&gt;
+ &lt;section&gt;
+ &lt;h2&gt;Taste&lt;/h2&gt;
+ &lt;p&gt;They taste lovely.&lt;/p&gt;
+ &lt;h6&gt;Sweet&lt;/h6&gt;
+ &lt;p&gt;Red apples are sweeter than green ones.&lt;/p&gt;
+ &lt;h1&gt;Color&lt;/h1&gt;
+ &lt;p&gt;Apples come in various colors.&lt;/p&gt;
+ &lt;/section&gt;
+&lt;/body&gt;</pre>
+
+ <p>However, the same document would be more clearly expressed
+ as:</p>
+
+ <pre>&lt;body&gt;
+ &lt;h1&gt;Apples&lt;/h1&gt;
+ &lt;p&gt;Apples are fruit.&lt;/p&gt;
+ &lt;section&gt;
+ &lt;h2&gt;Taste&lt;/h2&gt;
+ &lt;p&gt;They taste lovely.&lt;/p&gt;
+ &lt;section&gt;
+ &lt;h3&gt;Sweet&lt;/h3&gt;
+ &lt;p&gt;Red apples are sweeter than green ones.&lt;/p&gt;
+ &lt;/section&gt;
+ &lt;/section&gt;
+ &lt;section&gt;
+ &lt;h2&gt;Color&lt;/h2&gt;
+ &lt;p&gt;Apples come in various colors.&lt;/p&gt;
+ &lt;/section&gt;
+&lt;/body&gt;</pre>
+
+ <p>Both of the documents above are semantically identical and would
+ produce the same outline in compliant user agents.</p>
+
+ <p>This third example is also semantically identical, and might be
+ easier to maintain (e.g. if sections are often moved around in
+ editing):</p>
+
+ <pre>&lt;body&gt;
+ &lt;h1&gt;Apples&lt;/h1&gt;
+ &lt;p&gt;Apples are fruit.&lt;/p&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Taste&lt;/h1&gt;
+ &lt;p&gt;They taste lovely.&lt;/p&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Sweet&lt;/h1&gt;
+ &lt;p&gt;Red apples are sweeter than green ones.&lt;/p&gt;
+ &lt;/section&gt;
+ &lt;/section&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Color&lt;/h1&gt;
+ &lt;p&gt;Apples come in various colors.&lt;/p&gt;
+ &lt;/section&gt;
+&lt;/body&gt;</pre>
+
+ <p>This final example would need explicit style rules to be
+ rendered well in legacy browsers. Legacy browsers without CSS
+ support would render all the headings as top-level headings.</p>
+
+ </div>
+
+
+ <h5 id=outlines><span class=secno>4.4.11.1 </span>Creating an outline</h5>
+
+ <div class=impl>
+
+ <!-- v2 idea: It would be nice if there was a way to use this to
+ autogenerate a table of contents or some such -->
+
+ <p>This section defines an algorithm for creating an outline for a
+ <a href=#sectioning-content>sectioning content</a> element or a <a href=#sectioning-root>sectioning
+ root</a> element. It is defined in terms of a walk over the nodes
+ of a DOM tree, in tree order, with each node being visited when it
+ is <i>entered</i> and when it is <i>exited</i> during the walk.</p>
+
+ </div>
+
+ <p>The <dfn id=outline>outline</dfn> for a <a href=#sectioning-content>sectioning content</a>
+ element or a <a href=#sectioning-root>sectioning root</a> element consists of a list
+ of one or more potentially nested <a href=#concept-section title=concept-section>sections</a>. A <dfn id=concept-section title=concept-section>section</dfn> is a container that
+ corresponds to some nodes in the original DOM tree. Each section can
+ have one heading associated with it, and can contain any number of
+ further nested sections. <span class=impl>The algorithm for the
+ outline also associates each node in the DOM tree with a particular
+ section and potentially a heading.</span> (The sections in the
+ outline aren't <code><a href=#the-section-element>section</a></code> elements, though some may
+ correspond to such elements &mdash; they are merely conceptual
+ sections.)</p>
+
+ <div class=example>
+
+ <p>The following markup fragment:</p>
+
+ <pre>&lt;body&gt;
+ &lt;h1&gt;A&lt;/h1&gt;
+ &lt;p&gt;B&lt;/p&gt;
+ &lt;h2&gt;C&lt;/h2&gt;
+ &lt;p&gt;D&lt;/p&gt;
+ &lt;h2&gt;E&lt;/h2&gt;
+ &lt;p&gt;F&lt;/p&gt;
+&lt;/body&gt;</pre>
+
+ <p>...results in the following outline being created for the
+ <code><a href=#the-body-element>body</a></code> node (and thus the entire document):</p>
+
+ <ol class=brief><li>
+ <p>Section created for <code><a href=#the-body-element>body</a></code> node.</p>
+ <p>Associated with heading "A".</p>
+ <p>Also associated with paragraph "B".</p>
+ <p>Nested sections:</p>
+ <ol class=brief><li>
+ <p>Section implied for first <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code> element.</p>
+ <p>Associated with heading "C".</p>
+ <p>Also associated with paragraph "D".</p>
+ <p>No nested sections.</p>
+ </li>
+ <li>
+ <p>Section implied for second <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code> element.</p>
+ <p>Associated with heading "E".</p>
+ <p>Also associated with paragraph "F".</p>
+ <p>No nested sections.</p>
+ </li>
+ </ol></li>
+ </ol></div>
+
+ <div class=impl>
+
+ <p>The algorithm that must be followed during a walk of a DOM
+ subtree rooted at a <a href=#sectioning-content>sectioning content</a> element or a
+ <a href=#sectioning-root>sectioning root</a> element to determine that element's
+ <a href=#outline>outline</a> is as follows:</p>
+
+ <ol><li><p>Let <var title="">current outlinee</var> be null. (It holds
+ the element whose <a href=#outline>outline</a> is being created.)</li>
+
+ <li><p>Let <var title="">current section</var> be null. (It holds a
+ pointer to a <a href=#concept-section title=concept-section>section</a>, so that
+ elements in the DOM can all be associated with a section.)</li>
+
+ <li><p>Create a stack to hold elements, which is used to handle
+ nesting. Initialize this stack to empty.</li>
+
+ <li>
+
+ <p>As you walk over the DOM in <a href=#tree-order>tree order</a>, trigger
+ the first relevant step below for each element as you enter and
+ exit it.</p>
+
+ <dl class=switch><dt>If you are exiting an element and that element is the element
+ at the top of the stack</dt>
+
+ <dd>
+
+ <p class=note>The element being exited is a <a href=#heading-content>heading
+ content</a> element.</p>
+
+ <p>Pop that element from the stack.</p>
+
+ </dd>
+
+
+ <dt>If the top of the stack is a <a href=#heading-content>heading content</a>
+ element</dt>
+
+ <dd><p>Do nothing.</dd>
+
+
+ <dt>When entering a <a href=#sectioning-content>sectioning content</a> element or a
+ <a href=#sectioning-root>sectioning root</a> element</dt>
+
+ <dd>
+
+ <p>If <var title="">current outlinee</var> is not null, and the
+ <var title="">current section</var> has no heading, create an
+ implied heading and let that be the heading for the <var title="">current section</var>.</p>
+
+ <p>If <var title="">current outlinee</var> is not null, push
+ <var title="">current outlinee</var> onto the stack.</p>
+
+ <p>Let <var title="">current outlinee</var> be the element
+ that is being entered.</p>
+
+ <p>Let <var title="">current section</var> be a newly created
+ <a href=#concept-section title=concept-section>section</a> for the <var title="">current outlinee</var> element.</p>
+
+ <p>Associate <var title="">current outlinee</var> with <var title="">current section</var>.</p>
+
+ <p>Let there be a new <a href=#outline>outline</a> for the new <var title="">current outlinee</var>, initialized with just the new
+ <var title="">current section</var> as the only <a href=#concept-section title=concept-section>section</a> in the outline.</p>
+
+ </dd>
+
+
+ <dt>When exiting a <a href=#sectioning-content>sectioning content</a> element, if
+ the stack is not empty</dt>
+
+ <dd>
+
+ <p>Pop the top element from the stack, and let the <var title="">current outlinee</var> be that element.</p>
+
+ <p>Let <var title="">current section</var> be the last section
+ in the <a href=#outline>outline</a> of the <var title="">current
+ outlinee</var> element.</p>
+
+ <p>Append the <a href=#outline>outline</a> of the <a href=#sectioning-content>sectioning
+ content</a> element being exited to the <var title="">current
+ section</var>. (This does not change which section is the last
+ section in the <a href=#outline>outline</a>.)</p>
+
+ </dd>
+
+
+ <dt>When exiting a <a href=#sectioning-root>sectioning root</a> element, if the
+ stack is not empty</dt>
+
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p>Pop the top element from the stack, and let the <var title="">current outlinee</var> be that element.</li>
+
+ <li><p>Let <var title="">current section</var> be the last
+ section in the <a href=#outline>outline</a> of the <var title="">current
+ outlinee</var> element.</li>
+
+ <li><p><i>Finding the deepest child</i>: If <var title="">current section</var> has no child sections, stop
+ these steps.</li>
+
+ <li><p>Let <var title="">current section</var> be the last
+ child <a href=#concept-section title=concept-section>section</a> of the
+ current <var title="">current section</var>.</li>
+
+ <li><p>Go back to the substep labeled <i>finding the deepest
+ child</i>.</li>
+
+ </ol></dd>
+
+
+ <dt>When exiting a <a href=#sectioning-content>sectioning content</a> element or a
+ <a href=#sectioning-root>sectioning root</a> element</dt>
+
+ <dd>
+
+ <p class=note>The <var title="">current outlinee</var> is
+ the element being exited.</p>
+
+ <p>Let <var title="">current section</var> be the first <a href=#concept-section title=concept-section>section</a> in the
+ <a href=#outline>outline</a> of the <var title="">current outlinee</var>
+ element.</p>
+
+ <p>Skip to the next step in the overall set of steps. (The walk
+ is over.)</p>
+
+ </dd>
+
+
+ <dt>If the <var title="">current outlinee</var> is null</dt>
+
+ <dd><p>Do nothing.</dd>
+
+
+ <dt>When entering a <a href=#heading-content>heading content</a> element</dt>
+
+ <dd>
+
+ <p>If the <var title="">current section</var> has no heading,
+ let the element being entered be the heading for the <var title="">current section</var>.</p>
+
+ <p>Otherwise, if the element being entered has a
+ <a href=#rank>rank</a> equal to or greater than the heading of the
+ last section of the <a href=#outline>outline</a> of the <var title="">current outlinee</var>, then create a new <a href=#concept-section title=concept-section>section</a> and append it to the
+ <a href=#outline>outline</a> of the <var title="">current outlinee</var>
+ element, so that this new section is the new last section of
+ that outline. Let <var title="">current section</var> be that
+ new section. Let the element being entered be the new heading
+ for the <var title="">current section</var>.</p>
+
+ <p>Otherwise, run these substeps:</p>
+
+ <ol><li><p>Let <var title="">candidate section</var> be <var title="">current section</var>.</li>
+
+ <li><p>If the element being entered has a <a href=#rank>rank</a>
+ lower than the <a href=#rank>rank</a> of the heading of the <var title="">candidate section</var>, then create a new <a href=#concept-section title=concept-section>section</a>, and append it to <var title="">candidate section</var>. (This does not change which
+ section is the last section in the outline.) Let <var title="">current section</var> be this new section. Let the
+ element being entered be the new heading for the <var title="">current section</var>. Abort these substeps.</p>
+
+ <li><p>Let <var title="">new candidate section</var> be the
+ <a href=#concept-section title=concept-section>section</a> that contains <var title="">candidate section</var> in the <a href=#outline>outline</a> of
+ <var title="">current outlinee</var>.</li>
+
+ <li><p>Let <var title="">candidate section</var> be <var title="">new candidate section</var>.</li>
+
+ <li><p>Return to step 2.</li>
+
+ </ol><p>Push the element being entered onto the stack. (This causes
+ the algorithm to skip any descendants of the element.)</p>
+
+ <p class=note>Recall that <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> has the
+ <em>highest</em> rank, and <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> has the lowest
+ rank.</p>
+
+ </dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd><p>Do nothing.</dd>
+
+ </dl><p id=associatedSection>In addition, whenever you exit a node,
+ after doing the steps above, if the node is not associated with a
+ <a href=#concept-section title=concept-section>section</a> yet and <var title="">current section</var> is not null, associate the node
+ with the <a href=#concept-section title=concept-section>section</a> <var title="">current section</var>.</p>
+
+ </li>
+
+ <li><p>If the <var title="">current outlinee</var> is null,
+ then there was no <a href=#sectioning-content>sectioning content</a> element or
+ <a href=#sectioning-root>sectioning root</a> element in the DOM. There is no
+ <a href=#outline>outline</a>. Abort these steps.</li>
+
+ <li><p>Associate any nodes that were not associated with a <a href=#concept-section title=concept-section>section</a> in the steps above with <var title="">current outlinee</var> as their section.</li>
+
+ <li><p>Associate all nodes with the heading of the <a href=#concept-section title=concept-section>section</a> with which they are
+ associated, if any.</li>
+
+ <li><p>If <var title="">current outlinee</var> is <a href=#the-body-element-0>the body
+ element</a>, then the outline created for that element is the
+ <a href=#outline>outline</a> of the entire document.</li>
+
+ </ol><p>The tree of sections created by the algorithm above, or a proper
+ subset thereof, must be used when generating document outlines, for
+ example when generating tables of contents.</p>
+
+ <p>When creating an interactive table of contents, entries should
+ jump the user to the relevant <a href=#sectioning-content>sectioning content</a>
+ element, if the <a href=#concept-section title=concept-section>section</a> was
+ created for a real element in the original document, or to the
+ relevant <a href=#heading-content>heading content</a> element, if the <a href=#concept-section title=concept-section>section</a> in the tree was generated for
+ a heading in the above process.</p>
+
+ <p class=note>Selecting the first <a href=#concept-section title=concept-section>section</a> of the document therefore
+ always takes the user to the top of the document, regardless of
+ where the first heading in the <code><a href=#the-body-element>body</a></code> is to be found.</p>
+
+ <p>The <dfn id=outline-depth>outline depth</dfn> of a <a href=#heading-content>heading content</a>
+ element associated with a <a href=#concept-section title=concept-section>section</a> <var title="">section</var>
+ is the number of <a href=#concept-section title=concept-section>sections</a> that
+ are ancestors of <var title="">section</var> in the
+ <a href=#outline>outline</a> that <var title="">section</var> finds itself
+ in when the <a href=#outline title=outline>outlines</a> of its
+ <code><a href=#document>Document</a></code>'s elements are created, plus 1. The
+ <a href=#outline-depth>outline depth</a> of a <a href=#heading-content>heading content</a> element
+ not associated with a <a href=#concept-section title=concept-section>section</a>
+ is 1.</p>
+
+ <p>User agents should provide default headings for sections that do
+ not have explicit section headings.</p>
+
+ <div class=example>
+
+ <p>Consider the following snippet:</p>
+
+ <pre>&lt;body&gt;
+ &lt;nav&gt;
+ &lt;p&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/p&gt;
+ &lt;/nav&gt;
+ &lt;p&gt;Hello world.&lt;/p&gt;
+ &lt;aside&gt;
+ &lt;p&gt;My cat is cute.&lt;/p&gt;
+ &lt;/aside&gt;
+&lt;/body&gt;</pre>
+
+ <p>Although it contains no headings, this snippet has three
+ sections: a document (the <code><a href=#the-body-element>body</a></code>) with two subsections
+ (a <code><a href=#the-nav-element>nav</a></code> and an <code><a href=#the-aside-element>aside</a></code>). A user agent could
+ present the outline as follows:</p>
+
+ <ol class=brief><li>Untitled document
+ <ol><li>Navigation</li>
+ <li>Sidebar</li>
+ </ol></li>
+ </ol><p>These default headings ("Untitled document", "Navigation",
+ "Sidebar") are not specified by this specification, and might vary
+ with the user's language, the page's language, the user's
+ preferences, the user agent implementor's preferences, etc.</p>
+
+ </div>
+
+ <div class=note>
+
+ <p>The following JavaScript function shows how the tree walk could
+ be implemented. The <var title="">root</var> argument is the root
+ of the tree to walk, and the <var title="">enter</var> and <var title="">exit</var> arguments are callbacks that are called with
+ the nodes as they are entered and exited. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ <pre>function (root, enter, exit) {
+ var node = root;
+ start: while (node) {
+ enter(node);
+ if (node.firstChild) {
+ node = node.firstChild;
+ continue start;
+ }
+ while (node) {
+ exit(node);
+ if (node.nextSibling) {
+ node = node.nextSibling;
+ continue start;
+ }
+ if (node == root)
+ node = null;
+ else
+ node = node.parentNode;
+ }
+ }
+}</pre>
+
+ </div>
+
+ </div>
+
+
+
+ <h3 id=grouping-content><span class=secno>4.5 </span>Grouping content</h3>
+
+ <h4 id=the-p-element><span class=secno>4.5.1 </span>The <dfn><code>p</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlparagraphelement>HTMLParagraphElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-p-element>p</a></code> element <a href=#represents>represents</a> a
+ <a href=#paragraph>paragraph</a>.</p>
+
+ <p class=note>While paragraphs are usually represented in visual
+ media by blocks of text that are physically separated from adjacent
+ blocks through blank lines, a style sheet or user agent would be
+ equally justified in presenting paragraph breaks in a different
+ manner, for instance using inline pilcrows (&para;).</p>
+
+ <div class=example>
+ <p>The following examples are conforming HTML fragments:</p>
+ <pre>&lt;p&gt;The little kitten gently seated himself on a piece of
+carpet. Later in his life, this would be referred to as the time the
+cat sat on the mat.&lt;/p&gt;</pre>
+ <pre>&lt;fieldset&gt;
+ &lt;legend&gt;Personal information&lt;/legend&gt;
+ &lt;p&gt;
+ &lt;label&gt;Name: &lt;input name="n"&gt;&lt;/label&gt;
+ &lt;label&gt;&lt;input name="anon" type="checkbox"&gt; Hide from other users&lt;/label&gt;
+ &lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Address: &lt;textarea name="a"&gt;&lt;/textarea&gt;&lt;/label&gt;&lt;/p&gt;
+&lt;/fieldset&gt;</pre>
+ <pre>&lt;p&gt;There was once an example from Femley,&lt;br&gt;
+Whose markup was of dubious quality.&lt;br&gt;
+The validator complained,&lt;br&gt;
+So the author was pained,&lt;br&gt;
+To move the error from the markup to the rhyming.&lt;/p&gt;</pre>
+ </div>
+
+ <p>The <code><a href=#the-p-element>p</a></code> element should not be used when a more
+ specific element is more appropriate.</p>
+
+ <div class=example>
+
+ <p>The following example is technically correct:</p>
+
+<pre>&lt;section&gt;
+ &lt;!-- ... --&gt;
+ &lt;p&gt;Last modified: 2001-04-23&lt;/p&gt;
+ &lt;p&gt;Author: fred@example.com&lt;/p&gt;
+&lt;/section&gt;</pre>
+
+ <p>However, it would be better marked-up as:</p>
+
+<pre>&lt;section&gt;
+ &lt;!-- ... --&gt;
+ &lt;footer&gt;Last modified: 2001-04-23&lt;/footer&gt;
+ &lt;address&gt;Author: fred@example.com&lt;/address&gt;
+&lt;/section&gt;</pre>
+
+ <p>Or:</p>
+
+<pre>&lt;section&gt;
+ &lt;!-- ... --&gt;
+ &lt;footer&gt;
+ &lt;p&gt;Last modified: 2001-04-23&lt;/p&gt;
+ &lt;address&gt;Author: fred@example.com&lt;/address&gt;
+ &lt;/footer&gt;
+&lt;/section&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-hr-element><span class=secno>4.5.2 </span>The <dfn><code>hr</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlhrelement>HTMLHRElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-hr-element>hr</a></code> element <a href=#represents>represents</a> a
+ <a href=#paragraph>paragraph</a>-level thematic break, e.g. a scene change in
+ a story, or a transition to another topic within a section of a
+ reference book.</p>
+
+ <div class=example>
+
+ <p>The following fictional extract from a project manual shows two
+ sections that use the <code><a href=#the-hr-element>hr</a></code> element to separate topics
+ within the section.</p>
+
+ <pre>&lt;section&gt;
+ &lt;h1&gt;Communication&lt;/h1&gt;
+ &lt;p&gt;There are various methods of communication. This section
+ covers a few of the important ones used by the project.&lt;/p&gt;
+ <strong>&lt;hr&gt;</strong>
+ &lt;p&gt;Communication stones seem to come in pairs and have mysterious
+ properties:&lt;/p&gt;
+ &lt;ul&gt;
+ &lt;li&gt;They can transfer thoughts in two directions once activated
+ if used alone.&lt;/li&gt;
+ &lt;li&gt;If used with another device, they can transfer one's
+ consciousness to another body.&lt;/li&gt;
+ &lt;li&gt;If both stones are used with another device, the
+ consciousnesses switch bodies.&lt;/li&gt;
+ &lt;/ul&gt;
+ <strong>&lt;hr&gt;</strong>
+ &lt;p&gt;Radios use the electromagnetic spectrum in the meter range and
+ longer.&lt;/p&gt;
+ <strong>&lt;hr&gt;</strong>
+ &lt;p&gt;Signal flares use the electromagnetic spectrum in the
+ nanometer range.&lt;/p&gt;
+&lt;/section&gt;
+&lt;section&gt;
+ &lt;h1&gt;Food&lt;/h1&gt;
+ &lt;p&gt;All food at the project is rationed:&lt;/p&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;Potatoes&lt;/dt&gt;
+ &lt;dd&gt;Two per day&lt;/dd&gt;
+ &lt;dt&gt;Soup&lt;/dt&gt;
+ &lt;dd&gt;One bowl per day&lt;/dd&gt;
+ &lt;/dl&gt;
+ <strong>&lt;hr&gt;</strong>
+ &lt;p&gt;Cooking is done by the chefs on a set rotation.&lt;/p&gt;
+&lt;/section&gt;</pre>
+
+ <p>There is no need for an <code><a href=#the-hr-element>hr</a></code> element between the
+ sections themselves, since the <code><a href=#the-section-element>section</a></code> elements and
+ the <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> elements imply thematic changes themselves.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following extract from <cite>Pandora's Star</cite> by Peter
+ F. Hamilton shows two paragraphs that precede a scene change and
+ the paragraph that follows it. The scene change, represented in the
+ printed book by a gap containing a solitary centered star between
+ the second and third paragraphs, is here represented using the
+ <code><a href=#the-hr-element>hr</a></code> element.</p>
+
+ <!-- ISBN 1-4050-0020-1; bottom of page 14 -->
+
+ <pre lang=en-GB>&lt;p&gt;Dudley was ninety-two, in his second life, and fast approaching
+time for another rejuvenation. Despite his body having the physical
+age of a standard fifty-year-old, the prospect of a long degrading
+campaign within academia was one he regarded with dread. For a
+supposedly advanced civilization, the Intersolar Commonwealth could be
+appallingly backward at times, not to mention cruel.&lt;/p&gt;
+&lt;p&gt;&lt;i&gt;Maybe it won't be that bad&lt;/i&gt;, he told himself. The lie was
+comforting enough to get him through the rest of the night's
+shift.&lt;/p&gt;
+<strong>&lt;hr&gt;</strong>
+&lt;p&gt;The Carlton AllLander drove Dudley home just after dawn. Like the
+astronomer, the vehicle was old and worn, but perfectly capable of
+doing its job. It had a cheap diesel engine, common enough on a
+semi-frontier world like Gralmond, although its drive array was a
+thoroughly modern photoneural processor. With its high suspension and
+deep-tread tyres it could plough along the dirt track to the
+observatory in all weather and seasons, including the metre-deep snow
+of Gralmond's winters.&lt;/p&gt;</pre>
+
+ </div>
+
+ <p class=note>The <code><a href=#the-hr-element>hr</a></code> element does not affect the
+ document's <a href=#outline>outline</a>.</p>
+
+
+ <h4 id=the-pre-element><span class=secno>4.5.3 </span>The <dfn><code>pre</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlpreelement>HTMLPreElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-pre-element>pre</a></code> element <a href=#represents>represents</a> a block of
+ preformatted text, in which structure is represented by typographic
+ conventions rather than by elements.</p>
+
+ <p class=note>In <a href=#syntax>the HTML syntax</a>, a leading
+ newline character immediately following the <code><a href=#the-pre-element>pre</a></code> element
+ start tag is stripped.</p>
+
+ <p>Some examples of cases where the <code><a href=#the-pre-element>pre</a></code> element could
+ be used:</p>
+
+ <ul><li>Including an e-mail, with paragraphs indicated by blank lines,
+ lists indicated by lines prefixed with a bullet, and so on.</li>
+
+ <li>Including fragments of computer code, with structure indicated
+ according to the conventions of that language.</li>
+
+ <li>Displaying ASCII art.</li>
+
+ </ul><p class=note>Authors are encouraged to consider how preformatted
+ text will be experienced when the formatting is lost, as will be the
+ case for users of speech synthesizers, braille displays, and the
+ like. For cases like ASCII art, it is likely that an alternative
+ presentation, such as a textual description, would be more
+ universally accessible to the readers of the document.</p>
+
+ <p>To represent a block of computer code, the <code><a href=#the-pre-element>pre</a></code>
+ element can be used with a <code><a href=#the-code-element>code</a></code> element; to represent a
+ block of computer output the <code><a href=#the-pre-element>pre</a></code> element can be used
+ with a <code><a href=#the-samp-element>samp</a></code> element. Similarly, the <code><a href=#the-kbd-element>kbd</a></code>
+ element can be used within a <code><a href=#the-pre-element>pre</a></code> element to indicate
+ text that the user is to enter.</p>
+
+ <div class=impl>
+
+ <p>A newline in a <code><a href=#the-pre-element>pre</a></code> element should separate
+ paragraphs for the purposes of the Unicode bidirectional algorithm.
+ This requirement may be implemented indirectly through the style
+ layer. For example, an HTML+CSS user agent could implement these
+ requirements by implementing the CSS 'unicode-bidi' property. <a href=#refsBIDI>[BIDI]</a> <a href=#refsCSS>[CSS]</a></p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following snippet, a sample of computer code is
+ presented.</p>
+
+ <pre>&lt;p&gt;This is the &lt;code&gt;Panel&lt;/code&gt; constructor:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;function Panel(element, canClose, closeHandler) {
+ this.element = element;
+ this.canClose = canClose;
+ this.closeHandler = function () { if (closeHandler) closeHandler() };
+}&lt;/code&gt;&lt;/pre&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following snippet, <code><a href=#the-samp-element>samp</a></code> and <code><a href=#the-kbd-element>kbd</a></code>
+ elements are mixed in the contents of a <code><a href=#the-pre-element>pre</a></code> element to
+ show a session of Zork I.</p>
+
+ <pre>&lt;pre&gt;&lt;samp&gt;You are in an open field west of a big white house with a boarded
+front door.
+There is a small mailbox here.
+
+&gt;&lt;/samp&gt; &lt;kbd&gt;open mailbox&lt;/kbd&gt;
+
+&lt;samp&gt;Opening the mailbox reveals:
+A leaflet.
+
+&gt;&lt;/samp&gt;&lt;/pre&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following shows a contemporary poem that uses the
+ <code><a href=#the-pre-element>pre</a></code> element to preserve its unusual formatting, which
+ forms an intrinsic part of the poem itself.</p>
+
+ <pre>&lt;pre&gt; maxling
+
+it is with a heart
+ heavy
+
+that i admit loss of a feline
+ so loved
+
+a friend lost to the
+ unknown
+ (night)
+
+~cdr 11dec07&lt;/pre&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-blockquote-element><span class=secno>4.5.4 </span>The <dfn><code>blockquote</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#sectioning-root>Sectioning root</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-blockquote-cite><a href=#attr-blockquote-cite>cite</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlquoteelement>HTMLQuoteElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-quote-cite title=dom-quote-cite>cite</a>;
+};</pre>
+ <p class=note>The <code><a href=#htmlquoteelement>HTMLQuoteElement</a></code> interface is
+ also used by the <code><a href=#the-q-element>q</a></code> element.</p>
+ </dd>
+ </dl><p>The <code><a href=#the-blockquote-element>blockquote</a></code> element <a href=#represents>represents</a> a
+ section that is quoted from another source.</p>
+
+ <p>Content inside a <code><a href=#the-blockquote-element>blockquote</a></code> must be quoted from
+ another source, whose address, if it has one, may be cited in the
+ <dfn id=attr-blockquote-cite title=attr-blockquote-cite><code>cite</code></dfn>
+ attribute.</p>
+
+ <p>If the <code title=attr-blockquote-cite><a href=#attr-blockquote-cite>cite</a></code> attribute
+ is present, it must be a <a href=#valid-url-potentially-surrounded-by-spaces>valid URL potentially surrounded by
+ spaces</a>. <span class=impl>To obtain the corresponding
+ citation link, the value of the attribute must be <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element. User
+ agents should allow users to follow such citation links.</span></p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-quote-cite title=dom-quote-cite><code>cite</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the element's <code title="">cite</code> content attribute.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This next example shows the use of <code><a href=#the-cite-element>cite</a></code> alongside
+ <code><a href=#the-blockquote-element>blockquote</a></code>:</p>
+
+ <pre>&lt;p&gt;His next piece was the aptly named &lt;cite&gt;Sonnet 130&lt;/cite&gt;:&lt;/p&gt;
+&lt;blockquote cite="http://quotes.example.org/s/sonnet130.html"&gt;
+ &lt;p&gt;My mistress' eyes are nothing like the sun,&lt;br&gt;
+ Coral is far more red, than her lips red,&lt;br&gt;
+ ...</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>This example shows how a forum post could use
+ <code><a href=#the-blockquote-element>blockquote</a></code> to show what post a user is replying
+ to. The <code><a href=#the-article-element>article</a></code> element is used for each post, to mark
+ up the threading.</p>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;&lt;a href="http://bacon.example.com/?blog=109431"&gt;Bacon on a crowbar&lt;/a&gt;&lt;/h1&gt;
+ &lt;article&gt;
+ &lt;header&gt;&lt;strong&gt;t3yw&lt;/strong&gt; 12 points 1 hour ago&lt;/header&gt;
+ &lt;p&gt;I bet a narwhal would love that.&lt;/p&gt;
+ &lt;footer&gt;&lt;a href="?pid=29578"&gt;permalink&lt;/a&gt;&lt;/footer&gt;
+ &lt;article&gt;
+ &lt;header&gt;&lt;strong&gt;greg&lt;/strong&gt; 8 points 1 hour ago&lt;/header&gt;
+ &lt;blockquote&gt;&lt;p&gt;I bet a narwhal would love that.&lt;/p&gt;&lt;/blockquote&gt;
+ &lt;p&gt;Dude narwhals don't eat bacon.&lt;/p&gt;
+ &lt;footer&gt;&lt;a href="?pid=29579"&gt;permalink&lt;/a&gt;&lt;/footer&gt;
+ &lt;article&gt;
+ &lt;header&gt;&lt;strong&gt;t3yw&lt;/strong&gt; 15 points 1 hour ago&lt;/header&gt;
+ &lt;blockquote&gt;
+ &lt;blockquote&gt;&lt;p&gt;I bet a narwhal would love that.&lt;/p&gt;&lt;/blockquote&gt;
+ &lt;p&gt;Dude narwhals don't eat bacon.&lt;/p&gt;
+ &lt;/blockquote&gt;
+ &lt;p&gt;Next thing you'll be saying they don't get capes and wizard
+ hats either!&lt;/p&gt;
+ &lt;footer&gt;&lt;a href="?pid=29580"&gt;permalink&lt;/a&gt;&lt;/footer&gt;
+ &lt;article&gt;
+ &lt;article&gt;
+ &lt;header&gt;&lt;strong&gt;boing&lt;/strong&gt; -5 points 1 hour ago&lt;/header&gt;
+ &lt;p&gt;narwhals are worse than ceiling cat&lt;/p&gt;
+ &lt;footer&gt;&lt;a href="?pid=29581"&gt;permalink&lt;/a&gt;&lt;/footer&gt;
+ &lt;/article&gt;
+ &lt;/article&gt;
+ &lt;/article&gt;
+ &lt;/article&gt;
+ &lt;article&gt;
+ &lt;header&gt;&lt;strong&gt;fred&lt;/strong&gt; 1 points 23 minutes ago&lt;/header&gt;
+ &lt;blockquote&gt;&lt;p&gt;I bet a narwhal would love that.&lt;/p&gt;&lt;/blockquote&gt;
+ &lt;p&gt;I bet they'd love to peel a banana too.&lt;/p&gt;
+ &lt;footer&gt;&lt;a href="?pid=29582"&gt;permalink&lt;/a&gt;&lt;/footer&gt;
+ &lt;/article&gt;
+ &lt;/article&gt;
+&lt;/article&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>This example shows the use of a <code><a href=#the-blockquote-element>blockquote</a></code> for
+ short snippets, demonstrating that one does not have to use
+ <code><a href=#the-p-element>p</a></code> elements inside <code><a href=#the-blockquote-element>blockquote</a></code>
+ elements:</p>
+
+ <pre>&lt;p&gt;He began his list of "lessons" with the following:&lt;/p&gt;
+&lt;blockquote&gt;One should never assume that his side of
+the issue will be recognized, let alone that it will
+be conceded to have merits.&lt;/blockquote&gt;
+&lt;p&gt;He continued with a number of similar points, ending with:&lt;/p&gt;
+&lt;blockquote&gt;Finally, one should be prepared for the threat
+of breakdown in negotiations at any given moment and not
+be cowed by the possiblity.&lt;/blockquote&gt;
+&lt;p&gt;We shall now discuss these points...</pre>
+
+ </div>
+
+ <p class=note><a href=#conversations>Examples of how to
+ represent a conversation</a> are shown in a later section; it is not
+ appropriate to use the <code><a href=#the-cite-element>cite</a></code> and <code><a href=#the-blockquote-element>blockquote</a></code>
+ elements for this purpose.</p>
+
+
+
+ <h4 id=the-ol-element><span class=secno>4.5.5 </span>The <dfn><code>ol</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Zero or more <code><a href=#the-li-element>li</a></code> elements.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-ol-reversed><a href=#attr-ol-reversed>reversed</a></code></dd>
+ <dd><code title=attr-ol-start><a href=#attr-ol-start>start</a></code></dd>
+ <dd><code title=attr-ol-type><a href=#attr-ol-type>type</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlolistelement>HTMLOListElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-ol-reversed title=dom-ol-reversed>reversed</a>;
+ attribute long <a href=#dom-ol-start title=dom-ol-start>start</a>;
+ attribute DOMString <a href=#dom-ol-type title=dom-ol-type>type</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-ol-element>ol</a></code> element <a href=#represents>represents</a> a list of
+ items, where the items have been intentionally ordered, such that
+ changing the order would change the meaning of the document.</p>
+
+ <p>The items of the list are the <code><a href=#the-li-element>li</a></code> element child nodes
+ of the <code><a href=#the-ol-element>ol</a></code> element, in <a href=#tree-order>tree order</a>.</p>
+
+ <p>The <dfn id=attr-ol-reversed title=attr-ol-reversed><code>reversed</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. If present, it
+ indicates that the list is a descending list (..., 3, 2, 1). If the
+ attribute is omitted, the list is an ascending list (1, 2, 3,
+ ...).</p>
+
+ <p>The <dfn id=attr-ol-start title=attr-ol-start><code>start</code></dfn>
+ attribute, if present, must be a <a href=#valid-integer>valid integer</a> giving
+ the <a href=#ordinal-value>ordinal value</a> of the first list item.</p>
+
+ <div class=impl>
+
+ <p>If the <code title=attr-ol-start><a href=#attr-ol-start>start</a></code> attribute is
+ present, user agents must <a href=#rules-for-parsing-integers title="rules for parsing
+ integers">parse it as an integer</a>, in order to determine the
+ attribute's value. The default value, used if the attribute is
+ missing or if the value cannot be converted to a number according to
+ the referenced algorithm, is 1 if the element has no <code title=attr-ol-reversed><a href=#attr-ol-reversed>reversed</a></code> attribute, and is the
+ number of child <code><a href=#the-li-element>li</a></code> elements otherwise.</p>
+
+ <p>The first item in the list has the <a href=#ordinal-value>ordinal value</a>
+ given by the <code><a href=#the-ol-element>ol</a></code> element's <code title=attr-ol-start><a href=#attr-ol-start>start</a></code> attribute, unless that
+ <code><a href=#the-li-element>li</a></code> element has a <code title=attr-li-value><a href=#attr-li-value>value</a></code> attribute with a value that can
+ be successfully parsed, in which case it has the <a href=#ordinal-value>ordinal
+ value</a> given by that <code title=attr-li-value><a href=#attr-li-value>value</a></code>
+ attribute.</p>
+
+ <p>Each subsequent item in the list has the <a href=#ordinal-value>ordinal
+ value</a> given by its <code title=attr-li-value><a href=#attr-li-value>value</a></code>
+ attribute, if it has one, or, if it doesn't, the <a href=#ordinal-value>ordinal
+ value</a> of the previous item, plus one if the <code title=attr-ol-reversed><a href=#attr-ol-reversed>reversed</a></code> is absent, or minus one if
+ it is present.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-ol-type title=attr-ol-type><code>type</code></dfn> attribute
+ can be used to specify the kind of marker to use in the list, in the
+ cases where that matters (e.g. because items are to be referenced by
+ their number/letter). The attribute, if specified, must have a value
+ that is a <a href=#case-sensitive>case-sensitive</a> match for one of the
+ characters given in the first cell of one of the rows of the
+ following table. <span class=impl>The <code title=attr-ol-type><a href=#attr-ol-type>type</a></code> attribute represents the state
+ given in the cell in the second column of the row whose first cell
+ matches the attribute's value; if none of the cells match, or if the
+ attribute is omitted, then the attribute represents the <a href=#attr-ol-type-state-decimal title=attr-ol-type-state-decimal>decimal</a> state.</span></p>
+
+ <table><thead><tr><th>Keyword
+ <th>State
+ <th>Description
+ <th colspan=8>Examples for values 1-3 and 3999-4001
+ <tbody><tr><td><dfn id=attr-ol-type-keyword-decimal title=attr-ol-type-keyword-decimal><code>1</code></dfn> (U+0031)
+ <td><dfn id=attr-ol-type-state-decimal title=attr-ol-type-state-decimal>decimal</dfn>
+ <td>Decimal numbers
+ <td class=eg><samp>1.</samp> <td class=eg><samp>2.</samp> <td class=eg><samp>3.</samp> <td class=eg>... <td class=eg><samp>3999.</samp> <td class=eg><samp>4000.</samp> <td class=eg><samp>4001.</samp> <td class=eg>...
+ <tr><td><dfn id=attr-ol-type-keyword-lower-alpha title=attr-ol-type-keyword-lower-alpha><code>a</code></dfn> (U+0061)
+ <td><dfn id=attr-ol-type-state-lower-alpha title=attr-ol-type-state-lower-alpha>lower-alpha</dfn>
+ <td>Lowercase latin alphabet
+ <td class=eg><samp>a.</samp> <td class=eg><samp>b.</samp> <td class=eg><samp>c.</samp> <td class=eg>... <td class=eg><samp>ewu.</samp> <td class=eg><samp>ewv.</samp> <td class=eg><samp>eww.</samp> <td class=eg>...
+ <tr><td><dfn id=attr-ol-type-keyword-upper-alpha title=attr-ol-type-keyword-upper-alpha><code>A</code></dfn> (U+0041)
+ <td><dfn id=attr-ol-type-state-upper-alpha title=attr-ol-type-state-upper-alpha>upper-alpha</dfn>
+ <td>Uppercase latin alphabet
+ <td class=eg><samp>A.</samp> <td class=eg><samp>B.</samp> <td class=eg><samp>C.</samp> <td class=eg>... <td class=eg><samp>EWU.</samp> <td class=eg><samp>EWV.</samp> <td class=eg><samp>EWW.</samp> <td class=eg>...
+ <tr><td><dfn id=attr-ol-type-keyword-lower-roman title=attr-ol-type-keyword-lower-roman><code>i</code></dfn> (U+0069)
+ <td><dfn id=attr-ol-type-state-lower-roman title=attr-ol-type-state-lower-roman>lower-roman</dfn>
+ <td>Lowercase roman numerals
+ <td class=eg><samp>i.</samp> <td class=eg><samp>ii.</samp> <td class=eg><samp>iii.</samp> <td class=eg>... <td class=eg><samp>mmmcmxcix.</samp> <td class=eg><samp>i&#773;v&#773;.</samp> <td class=eg><samp>i&#773;v&#773;i.</samp> <td class=eg>...
+ <tr><td><dfn id=attr-ol-type-keyword-upper-roman title=attr-ol-type-keyword-upper-roman><code>I</code></dfn> (U+0049)
+ <td><dfn id=attr-ol-type-state-upper-roman title=attr-ol-type-state-upper-roman>upper-roman</dfn>
+ <td>Uppercase roman numerals
+ <td class=eg><samp>I.</samp> <td class=eg><samp>II.</samp> <td class=eg><samp>III.</samp> <td class=eg>... <td class=eg><samp>MMMCMXCIX.</samp> <td class=eg><samp>I&#773;V&#773;.</samp> <td class=eg><samp>I&#773;V&#773;I.</samp> <td class=eg>...
+ </table><div class=impl>
+
+ <p>User agents should render the items of the list in a manner
+ consistent with the state of the <code title=attr-ol-type><a href=#attr-ol-type>type</a></code> attribute of the <code><a href=#the-ol-element>ol</a></code>
+ element. Numbers less than or equal to zero should always use the
+ decimal system regardless of the <code title=attr-ol-type><a href=#attr-ol-type>type</a></code> attribute.</p>
+
+ <p class=note>For CSS user agents, a mapping for this attribute to
+ the 'list-style-type' CSS property is given <a href=#decohints>in
+ the rendering section</a> (the mapping is straightforward: the
+ states above have the same names as their corresponding CSS
+ values).</p>
+
+ </div>
+
+ <!-- v2: resuming numbering of lists from previous lists? -->
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-ol-reversed title=dom-ol-reversed><code>reversed</code></dfn>,
+ <dfn id=dom-ol-start title=dom-ol-start><code>start</code></dfn>, and <dfn id=dom-ol-type title=dom-ol-type><code>type</code></dfn> IDL attributes must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name. The <code title=dom-ol-start><a href=#dom-ol-start>start</a></code> IDL attribute has
+ the same default as its content attribute.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following markup shows a list where the order matters, and
+ where the <code><a href=#the-ol-element>ol</a></code> element is therefore appropriate. Compare
+ this list to the equivalent list in the <code><a href=#the-ul-element>ul</a></code> section to
+ see an example of the same items using the <code><a href=#the-ul-element>ul</a></code>
+ element.</p>
+
+ <pre>&lt;p&gt;I have lived in the following countries (given in the order of when
+I first lived there):&lt;/p&gt;
+&lt;ol&gt;
+ &lt;li&gt;Switzerland
+ &lt;li&gt;United Kingdom
+ &lt;li&gt;United States
+ &lt;li&gt;Norway
+&lt;/ol&gt;</pre>
+
+ <p>Note how changing the order of the list changes the meaning of
+ the document. In the following example, changing the relative order
+ of the first two items has changed the birthplace of the
+ author:</p>
+
+ <pre>&lt;p&gt;I have lived in the following countries (given in the order of when
+I first lived there):&lt;/p&gt;
+&lt;ol&gt;
+ &lt;li&gt;United Kingdom
+ &lt;li&gt;Switzerland
+ &lt;li&gt;United States
+ &lt;li&gt;Norway
+&lt;/ol&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-ul-element><span class=secno>4.5.6 </span>The <dfn><code>ul</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Zero or more <code><a href=#the-li-element>li</a></code> elements.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlulistelement>HTMLUListElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-ul-element>ul</a></code> element <a href=#represents>represents</a> a list of
+ items, where the order of the items is not important &mdash; that
+ is, where changing the order would not materially change the meaning
+ of the document.</p>
+
+ <p>The items of the list are the <code><a href=#the-li-element>li</a></code> element child nodes
+ of the <code><a href=#the-ul-element>ul</a></code> element.</p>
+
+ <div class=example>
+
+ <p>The following markup shows a list where the order does not
+ matter, and where the <code><a href=#the-ul-element>ul</a></code> element is therefore
+ appropriate. Compare this list to the equivalent list in the
+ <code><a href=#the-ol-element>ol</a></code> section to see an example of the same items using
+ the <code><a href=#the-ol-element>ol</a></code> element.</p>
+
+ <pre>&lt;p&gt;I have lived in the following countries:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;Norway
+ &lt;li&gt;Switzerland
+ &lt;li&gt;United Kingdom
+ &lt;li&gt;United States
+&lt;/ul&gt;</pre>
+
+ <p>Note that changing the order of the list does not change the
+ meaning of the document. The items in the snippet above are given
+ in alphabetical order, but in the snippet below they are given in
+ order of the size of their current account balance in 2007, without
+ changing the meaning of the document whatsoever:</p>
+
+ <pre>&lt;p&gt;I have lived in the following countries:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;Switzerland
+ &lt;li&gt;Norway
+ &lt;li&gt;United Kingdom
+ &lt;li&gt;United States
+&lt;/ul&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-li-element><span class=secno>4.5.7 </span>The <dfn><code>li</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Inside <code><a href=#the-ol-element>ol</a></code> elements.</dd>
+ <dd>Inside <code><a href=#the-ul-element>ul</a></code> elements.</dd>
+ <dd>Inside <code><a href=#the-menu-element>menu</a></code> elements.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd>If the element is a child of an <code><a href=#the-ol-element>ol</a></code> element: <code title=attr-li-value><a href=#attr-li-value>value</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmllielement>HTMLLIElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute long <a href=#dom-li-value title=dom-li-value>value</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-li-element>li</a></code> element <a href=#represents>represents</a> a list
+ item. If its parent element is an <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-ul-element>ul</a></code>,
+ or <code><a href=#the-menu-element>menu</a></code> element, then the element is an item of the
+ parent element's list, as defined for those elements. Otherwise, the
+ list item has no defined list-related relationship to any other
+ <code><a href=#the-li-element>li</a></code> element.</p>
+
+ <p>If the parent element is an <code><a href=#the-ol-element>ol</a></code> element, then the
+ <code><a href=#the-li-element>li</a></code> element has an <dfn id=ordinal-value>ordinal value</dfn>.</p>
+
+ <p>The <dfn id=attr-li-value title=attr-li-value><code>value</code></dfn>
+ attribute, if present, must be a <a href=#valid-integer>valid integer</a> giving
+ the <a href=#ordinal-value>ordinal value</a> of the list item.</p>
+
+ <div class=impl>
+
+ <p>If the <code title=attr-li-value><a href=#attr-li-value>value</a></code> attribute is
+ present, user agents must <a href=#rules-for-parsing-integers title="rules for parsing
+ integers">parse it as an integer</a>, in order to determine the
+ attribute's value. If the attribute's value cannot be converted to a
+ number, the attribute must be treated as if it was absent. The
+ attribute has no default value.</p>
+
+ <p>The <code title=attr-li-value><a href=#attr-li-value>value</a></code> attribute is
+ processed relative to the element's parent <code><a href=#the-ol-element>ol</a></code> element
+ (q.v.), if there is one. If there is not, the attribute has no
+ effect.</p>
+
+ <p>The <dfn id=dom-li-value title=dom-li-value><code>value</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the value of the <code title=dom-li-value><a href=#dom-li-value>value</a></code> content attribute.</p>
+
+ </div>
+
+ <div class=example>
+ <p>The following example, the top ten movies are listed (in reverse
+ order). Note the way the list is given a title by using a
+ <code><a href=#the-figure-element>figure</a></code> element and its <code><a href=#the-figcaption-element>figcaption</a></code>
+ element.</p>
+ <pre>&lt;figure&gt;
+ &lt;figcaption&gt;The top 10 movies of all time&lt;/figcaption&gt;
+ &lt;ol&gt;
+ &lt;li value="10"&gt;&lt;cite&gt;Josie and the Pussycats&lt;/cite&gt;, 2001&lt;/li&gt;
+ &lt;li value="9"&gt;&lt;cite lang="sh"&gt;&#1062;&#1088;&#1085;&#1072; &#1084;&#1072;&#1095;&#1082;&#1072;, &#1073;&#1077;&#1083;&#1080; &#1084;&#1072;&#1095;&#1086;&#1088;&lt;/cite&gt;, 1998&lt;/li&gt;
+ &lt;li value="8"&gt;&lt;cite&gt;A Bug's Life&lt;/cite&gt;, 1998&lt;/li&gt;
+ &lt;li value="7"&gt;&lt;cite&gt;Toy Story&lt;/cite&gt;, 1995&lt;/li&gt;
+ &lt;li value="6"&gt;&lt;cite&gt;Monsters, Inc&lt;/cite&gt;, 2001&lt;/li&gt;
+ &lt;li value="5"&gt;&lt;cite&gt;Cars&lt;/cite&gt;, 2006&lt;/li&gt;
+ &lt;li value="4"&gt;&lt;cite&gt;Toy Story 2&lt;/cite&gt;, 1999&lt;/li&gt;
+ &lt;li value="3"&gt;&lt;cite&gt;Finding Nemo&lt;/cite&gt;, 2003&lt;/li&gt;
+ &lt;li value="2"&gt;&lt;cite&gt;The Incredibles&lt;/cite&gt;, 2004&lt;/li&gt;
+ &lt;li value="1"&gt;&lt;cite&gt;Ratatouille&lt;/cite&gt;, 2007&lt;/li&gt;
+ &lt;/ol&gt;
+&lt;/figure&gt;</pre>
+
+ <p>The markup could also be written as follows, using the <code title=attr-ol-reversed><a href=#attr-ol-reversed>reversed</a></code> attribute on the
+ <code><a href=#the-ol-element>ol</a></code> element:</p>
+
+ <pre>&lt;figure&gt;
+ &lt;figcaption&gt;The top 10 movies of all time&lt;/figcaption&gt;
+ &lt;ol reversed&gt;
+ &lt;li&gt;&lt;cite&gt;Josie and the Pussycats&lt;/cite&gt;, 2001&lt;/li&gt;
+ &lt;li&gt;&lt;cite lang="sh"&gt;&#1062;&#1088;&#1085;&#1072; &#1084;&#1072;&#1095;&#1082;&#1072;, &#1073;&#1077;&#1083;&#1080; &#1084;&#1072;&#1095;&#1086;&#1088;&lt;/cite&gt;, 1998&lt;/li&gt;
+ &lt;li&gt;&lt;cite&gt;A Bug's Life&lt;/cite&gt;, 1998&lt;/li&gt;
+ &lt;li&gt;&lt;cite&gt;Toy Story&lt;/cite&gt;, 1995&lt;/li&gt;
+ &lt;li&gt;&lt;cite&gt;Monsters, Inc&lt;/cite&gt;, 2001&lt;/li&gt;
+ &lt;li&gt;&lt;cite&gt;Cars&lt;/cite&gt;, 2006&lt;/li&gt;
+ &lt;li&gt;&lt;cite&gt;Toy Story 2&lt;/cite&gt;, 1999&lt;/li&gt;
+ &lt;li&gt;&lt;cite&gt;Finding Nemo&lt;/cite&gt;, 2003&lt;/li&gt;
+ &lt;li&gt;&lt;cite&gt;The Incredibles&lt;/cite&gt;, 2004&lt;/li&gt;
+ &lt;li&gt;&lt;cite&gt;Ratatouille&lt;/cite&gt;, 2007&lt;/li&gt;
+ &lt;/ol&gt;
+&lt;/figure&gt;</pre>
+ </div>
+
+ <p class=note>If the <code><a href=#the-li-element>li</a></code> element is the child of a
+ <code><a href=#the-menu-element>menu</a></code> element and itself has a child that defines a
+ <a href=#concept-command title=concept-command>command</a>, then the
+ <code><a href=#the-li-element>li</a></code> element will match the <code title=selector-enabled><a href=#selector-enabled>:enabled</a></code> and <code title=selector-disabled><a href=#selector-disabled>:disabled</a></code> pseudo-classes in the
+ same way as the first such child element does.</p>
+
+
+
+ <h4 id=the-dl-element><span class=secno>4.5.8 </span>The <dfn><code>dl</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Zero or more groups each consisting of one or more
+ <code><a href=#the-dt-element>dt</a></code> elements followed by one or more <code><a href=#the-dd-element>dd</a></code>
+ elements.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmldlistelement>HTMLDListElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-dl-element>dl</a></code> element <a href=#represents>represents</a> an
+ association list consisting of zero or more name-value groups (a
+ description list). Each group must consist of one or more names
+ (<code><a href=#the-dt-element>dt</a></code> elements) followed by one or more values
+ (<code><a href=#the-dd-element>dd</a></code> elements). Within a single <code><a href=#the-dl-element>dl</a></code> element,
+ there should not be more than one <code><a href=#the-dt-element>dt</a></code> element for each
+ name.</p>
+
+ <p>Name-value groups may be terms and definitions, metadata topics
+ and values, questions and answers, or any other groups of name-value
+ data.</p>
+
+ <p>The values within a group are alternatives; multiple paragraphs
+ forming part of the same value must all be given within the same
+ <code><a href=#the-dd-element>dd</a></code> element.</p>
+
+ <p>The order of the list of groups, and of the names and values
+ within each group, may be significant.</p>
+
+ <div class=impl>
+
+ <p>If a <code><a href=#the-dl-element>dl</a></code> element is empty, it contains no groups.</p>
+
+ <p>If a <code><a href=#the-dl-element>dl</a></code> element has one or more non-<a href=#inter-element-whitespace title="inter-element whitespace">whitespace</a> <a href=#text-node>text
+ node</a> children, or has child elements that are neither
+ <code><a href=#the-dt-element>dt</a></code> nor <code><a href=#the-dd-element>dd</a></code> elements, all such <a href=#text-node title="text node">text nodes</a> and elements, as well as their
+ descendants (including any <code><a href=#the-dt-element>dt</a></code> or <code><a href=#the-dd-element>dd</a></code>
+ elements), do not form part of any groups in that
+ <code><a href=#the-dl-element>dl</a></code>.</p>
+
+ <p>If a <code><a href=#the-dl-element>dl</a></code> element has one or more <code><a href=#the-dt-element>dt</a></code>
+ element chlidren but no <code><a href=#the-dd-element>dd</a></code> element children, then it
+ consists of one group with names but no values.</p>
+
+ <p>If a <code><a href=#the-dl-element>dl</a></code> element has one or more <code><a href=#the-dd-element>dd</a></code>
+ element children but no <code><a href=#the-dt-element>dt</a></code> element children, then it
+ consists of one group with values but no names.</p>
+
+ <p>If a <code><a href=#the-dl-element>dl</a></code> element's first <code><a href=#the-dt-element>dt</a></code> or
+ <code><a href=#the-dd-element>dd</a></code> element child is a <code><a href=#the-dd-element>dd</a></code> element, then the
+ first group has no associated name.</p>
+
+ <p>If a <code><a href=#the-dl-element>dl</a></code> element's last <code><a href=#the-dt-element>dt</a></code> or
+ <code><a href=#the-dd-element>dd</a></code> element child is a <code><a href=#the-dt-element>dt</a></code> element, then the
+ last group has no associated value.</p>
+
+ <p class=note>When a <code><a href=#the-dl-element>dl</a></code> element doesn't match its
+ content model, it is often due to accidentally using <code><a href=#the-dd-element>dd</a></code>
+ elements in the place of <code><a href=#the-dt-element>dt</a></code> elements and vice
+ versa. Conformance checkers can spot such mistakes and might be able
+ to advise authors how to correctly use the markup.</p>
+
+ </div>
+
+ <div class=example>
+ <p>In the following example, one entry ("Authors") is linked to two
+ values ("John" and "Luke").</p>
+ <pre>&lt;dl&gt;
+ &lt;dt&gt; Authors
+ &lt;dd&gt; John
+ &lt;dd&gt; Luke
+ &lt;dt&gt; Editor
+ &lt;dd&gt; Frank
+&lt;/dl&gt;</pre>
+ </div>
+
+ <div class=example>
+ <p>In the following example, one definition is linked to two
+ terms.</p>
+ <pre>&lt;dl&gt;
+ &lt;dt lang="en-US"&gt; &lt;dfn&gt;color&lt;/dfn&gt; &lt;/dt&gt;
+ &lt;dt lang="en-GB"&gt; &lt;dfn&gt;colour&lt;/dfn&gt; &lt;/dt&gt;
+ &lt;dd&gt; A sensation which (in humans) derives from the ability of
+ the fine structure of the eye to distinguish three differently
+ filtered analyses of a view. &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+ </div>
+
+ <div class=example>
+ <p>The following example illustrates the use of the <code><a href=#the-dl-element>dl</a></code>
+ element to mark up metadata of sorts. At the end of the example,
+ one group has two metadata labels ("Authors" and "Editors") and two
+ values ("Robert Rothman" and "Daniel Jackson").</p>
+ <pre>&lt;dl&gt;
+ &lt;dt&gt; Last modified time &lt;/dt&gt;
+ &lt;dd&gt; 2004-12-23T23:33Z &lt;/dd&gt;
+ &lt;dt&gt; Recommended update interval &lt;/dt&gt;
+ &lt;dd&gt; 60s &lt;/dd&gt;
+ &lt;dt&gt; Authors &lt;/dt&gt;
+ &lt;dt&gt; Editors &lt;/dt&gt;
+ &lt;dd&gt; Robert Rothman &lt;/dd&gt;
+ &lt;dd&gt; Daniel Jackson &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows the <code><a href=#the-dl-element>dl</a></code> element used to
+ give a set of instructions. The order of the instructions here is
+ important (in the other examples, the order of the blocks was not
+ important).</p>
+
+ <pre>&lt;p&gt;Determine the victory points as follows (use the
+first matching case):&lt;/p&gt;
+&lt;dl&gt;
+ &lt;dt&gt; If you have exactly five gold coins &lt;/dt&gt;
+ &lt;dd&gt; You get five victory points &lt;/dd&gt;
+ &lt;dt&gt; If you have one or more gold coins, and you have one or more silver coins &lt;/dt&gt;
+ &lt;dd&gt; You get two victory points &lt;/dd&gt;
+ &lt;dt&gt; If you have one or more silver coins &lt;/dt&gt;
+ &lt;dd&gt; You get one victory point &lt;/dd&gt;
+ &lt;dt&gt; Otherwise &lt;/dt&gt;
+ &lt;dd&gt; You get no victory points &lt;/dd&gt;
+&lt;/dl&gt;</pre>
+ </div>
+
+ <div class=example>
+ <p>The following snippet shows a <code><a href=#the-dl-element>dl</a></code> element being used
+ as a glossary. Note the use of <code><a href=#the-dfn-element>dfn</a></code> to indicate the
+ word being defined.</p>
+ <pre>&lt;dl&gt;
+ &lt;dt&gt;&lt;dfn&gt;Apartment&lt;/dfn&gt;, n.&lt;/dt&gt;
+ &lt;dd&gt;An execution context grouping one or more threads with one or
+ more COM objects.&lt;/dd&gt;
+ &lt;dt&gt;&lt;dfn&gt;Flat&lt;/dfn&gt;, n.&lt;/dt&gt;
+ &lt;dd&gt;A deflated tire.&lt;/dd&gt;
+ &lt;dt&gt;&lt;dfn&gt;Home&lt;/dfn&gt;, n.&lt;/dt&gt;
+ &lt;dd&gt;The user's login directory.&lt;/dd&gt;
+&lt;/dl&gt;</pre>
+ </div>
+
+ <p class=note>The <code><a href=#the-dl-element>dl</a></code> element is inappropriate for
+ marking up dialogue. <a href=#conversations>Examples of how to
+ mark up dialogue</a> are shown below.</p>
+
+
+
+ <h4 id=the-dt-element><span class=secno>4.5.9 </span>The <dfn><code>dt</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Before <code><a href=#the-dd-element>dd</a></code> or <code><a href=#the-dt-element>dt</a></code> elements inside <code><a href=#the-dl-element>dl</a></code> elements.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>, but with no <code><a href=#the-header-element>header</a></code>, <code><a href=#the-footer-element>footer</a></code>, <a href=#sectioning-content>sectioning content</a>, or <a href=#heading-content>heading content</a> descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-dt-element>dt</a></code> element <a href=#represents>represents</a> the term, or
+ name, part of a term-description group in a description list
+ (<code><a href=#the-dl-element>dl</a></code> element).</p>
+
+ <p class=note>The <code><a href=#the-dt-element>dt</a></code> element itself, when used in a
+ <code><a href=#the-dl-element>dl</a></code> element, does not indicate that its contents are a
+ term being defined, but this can be indicated using the
+ <code><a href=#the-dfn-element>dfn</a></code> element.</p>
+
+ <div class=example>
+
+ <p>This example shows a list of frequently asked questions (a FAQ)
+ marked up using the <code><a href=#the-dt-element>dt</a></code> element for questions and the
+ <code><a href=#the-dd-element>dd</a></code> element for answers.</p>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;FAQ&lt;/h1&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;What do we want?&lt;/dt&gt;
+ &lt;dd&gt;Our data.&lt;/dd&gt;
+ &lt;dt&gt;When do we want it?&lt;/dt&gt;
+ &lt;dd&gt;Now.&lt;/dd&gt;
+ &lt;dt&gt;Where is it?&lt;/dt&gt;
+ &lt;dd&gt;We are not sure.&lt;/dd&gt;
+ &lt;/dl&gt;
+&lt;/article&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-dd-element><span class=secno>4.5.10 </span>The <dfn><code>dd</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>After <code><a href=#the-dt-element>dt</a></code> or <code><a href=#the-dd-element>dd</a></code> elements inside <code><a href=#the-dl-element>dl</a></code> elements.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-dd-element>dd</a></code> element <a href=#represents>represents</a> the
+ description, definition, or value, part of a term-description group
+ in a description list (<code><a href=#the-dl-element>dl</a></code> element).</p>
+
+ <div class=example>
+
+ <p>A <code><a href=#the-dl-element>dl</a></code> can be used to define a vocabulary list, like
+ in a dictionary. In the following example, each entry, given by a
+ <code><a href=#the-dt-element>dt</a></code> with a <code><a href=#the-dfn-element>dfn</a></code>, has several
+ <code><a href=#the-dd-element>dd</a></code>s, showing the various parts of the definition.</p>
+
+ <!-- the actual pronunciations below are nonsense. -->
+ <pre>&lt;dl&gt;
+ &lt;dt&gt;&lt;dfn&gt;happiness&lt;/dfn&gt;&lt;/dt&gt;
+ &lt;dd class="pronunciation"&gt;/'h&aelig; p. nes/&lt;/dd&gt;
+ &lt;dd class="part-of-speech"&gt;&lt;i&gt;&lt;abbr&gt;n.&lt;/abbr&gt;&lt;/i&gt;&lt;/dd&gt;
+ &lt;dd&gt;The state of being happy.&lt;/dd&gt;
+ &lt;dd&gt;Good fortune; success. &lt;q&gt;Oh &lt;b&gt;happiness&lt;/b&gt;! It worked!&lt;/q&gt;&lt;/dd&gt;
+ &lt;dt&gt;&lt;dfn&gt;rejoice&lt;/dfn&gt;&lt;/dt&gt;
+ &lt;dd class="pronunciation"&gt;/ri jois'/&lt;/dd&gt;
+ &lt;dd&gt;&lt;i class="part-of-speech"&gt;&lt;abbr&gt;v.intr.&lt;/abbr&gt;&lt;/i&gt; To be delighted oneself.&lt;/dd&gt;
+ &lt;dd&gt;&lt;i class="part-of-speech"&gt;&lt;abbr&gt;v.tr.&lt;/abbr&gt;&lt;/i&gt; To cause one to be delighted.&lt;/dd&gt;
+&lt;/dl&gt;</pre>
+ </div>
+
+
+ <h4 id=the-figure-element><span class=secno>4.5.11 </span>The <dfn><code>figure</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#sectioning-root>Sectioning root</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Either: One <code><a href=#the-figcaption-element>figcaption</a></code> element followed by <a href=#flow-content>flow content</a>.</dd>
+ <dd>Or: <a href=#flow-content>Flow content</a> followed by one <code><a href=#the-figcaption-element>figcaption</a></code> element.</dd>
+ <dd>Or: <a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><!-- v2: Add a <credit> element for photo credits --><p>The <code><a href=#the-figure-element>figure</a></code> element <a href=#represents>represents</a> some
+ <a href=#flow-content>flow content</a>, optionally with a caption, that is
+ self-contained and is typically referenced as a single unit from the
+ main flow of the document.</p>
+
+ <p>The element can thus be used to annotate illustrations, diagrams,
+ photos, code listings, etc, that are referred to from the main
+ content of the document, but that could, without affecting the flow
+ of the document, be moved away from that primary content, e.g. to
+ the side of the page, to dedicated pages, or to an appendix.</p>
+
+ <p>The <span class=impl>first</span> <code><a href=#the-figcaption-element>figcaption</a></code>
+ element child of the element, if any, represents the caption of the
+ <code><a href=#the-figure-element>figure</a></code> element's contents. If there is no child
+ <code><a href=#the-figcaption-element>figcaption</a></code> element, then there is no caption.</p>
+
+ <div class=example>
+
+ <p>This example shows the <code><a href=#the-figure-element>figure</a></code> element to mark up a
+ code listing.</p>
+
+ <pre>&lt;p&gt;In &lt;a href="#l4"&gt;listing 4&lt;/a&gt; we see the primary core interface
+API declaration.&lt;/p&gt;
+&lt;figure id="l4"&gt;
+ &lt;figcaption&gt;Listing 4. The primary core interface API declaration.&lt;/figcaption&gt;
+ &lt;pre&gt;&lt;code&gt;interface PrimaryCore {
+ boolean verifyDataLine();
+ void sendData(in sequence&amp;lt;byte&gt; data);
+ void initSelfDestruct();
+}&lt;/code&gt;&lt;/pre&gt;
+&lt;/figure&gt;
+&lt;p&gt;The API is designed to use UTF-8.&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here we see a <code><a href=#the-figure-element>figure</a></code> element to mark up a
+ photo.</p>
+
+ <pre>&lt;figure&gt;
+ &lt;img src="bubbles-work.jpeg"
+ alt="Bubbles, sitting in his office chair, works on his
+ latest project intently."&gt;
+ &lt;figcaption&gt;Bubbles at work&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example, we see an image that is <em>not</em>
+ a figure, as well as an image and a video that are.</p>
+
+ <pre>&lt;h2&gt;Malinko's comics&lt;/h2&gt;
+
+&lt;p&gt;This case centered on some sort of "intellectual property"
+infringement related to a comic (see Exhibit A). The suit started
+after a trailer ending with these words:
+
+&lt;blockquote&gt;
+ &lt;img src="promblem-packed-action.png" alt="ROUGH COPY! Promblem-Packed Action!"&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;...was aired. A lawyer, armed with a Bigger Notebook, launched a
+preemptive strike using snowballs. A complete copy of the trailer is
+included with Exhibit B.
+
+&lt;figure&gt;
+ &lt;img src="ex-a.png" alt="Two squiggles on a dirty piece of paper."&gt;
+ &lt;figcaption&gt;Exhibit A. The alleged &lt;cite&gt;rough copy&lt;/cite&gt; comic.&lt;/figcaption&gt;
+&lt;/figure&gt;
+
+&lt;figure&gt;
+ &lt;video src="ex-b.mov"&gt;&lt;/video&gt;
+ &lt;figcaption&gt;Exhibit B. The &lt;cite&gt;Rough Copy&lt;/cite&gt; trailer.&lt;/figcaption&gt;
+&lt;/figure&gt;
+
+&lt;p&gt;The case was resolved out of court.</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here, a part of a poem is marked up using
+ <code><a href=#the-figure-element>figure</a></code>.</p>
+
+ <pre>&lt;figure&gt;
+ &lt;p&gt;'Twas brillig, and the slithy toves&lt;br&gt;
+ Did gyre and gimble in the wabe;&lt;br&gt;
+ All mimsy were the borogoves,&lt;br&gt;
+ And the mome raths outgrabe.&lt;/p&gt;
+ &lt;figcaption&gt;&lt;cite&gt;Jabberwocky&lt;/cite&gt; (first verse). Lewis Carroll, 1832-98&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example, which could be part of a much larger work
+ discussing a castle, the figure has three images in it.</p>
+
+ <pre>&lt;figure&gt;
+ &lt;img src="castle1423.jpeg" title="Etching. Anonymous, ca. 1423."
+ alt="The castle has one tower, and a tall wall around it."&gt;
+ &lt;img src="castle1858.jpeg" title="Oil-based paint on canvas. Maria Towle, 1858."
+ alt="The castle now has two towers and two walls."&gt;
+ &lt;img src="castle1999.jpeg" title="Film photograph. Peter Jankle, 1999."
+ alt="The castle lies in ruins, the original tower all that remains in one piece."&gt;
+ &lt;figcaption&gt;The castle through the ages: 1423, 1858, and 1999 respectively.&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-figcaption-element><span class=secno>4.5.12 </span>The <dfn><code>figcaption</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As the first or last child of a <code><a href=#the-figure-element>figure</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-figcaption-element>figcaption</a></code> element <a href=#represents>represents</a> a
+ caption or legend for the rest of the contents of the
+ <code><a href=#the-figcaption-element>figcaption</a></code> element's parent <code><a href=#the-figure-element>figure</a></code>
+ element<span class=impl>, if any</span>.</p>
+
+
+
+ <h4 id=the-div-element><span class=secno>4.5.13 </span>The <dfn><code>div</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmldivelement>HTMLDivElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-div-element>div</a></code> element has no special meaning at all. It
+ <a href=#represents>represents</a> its children. It can be used with the <code title=attr-class><a href=#classes>class</a></code>, <code title=attr-lang><a href=#attr-lang>lang</a></code>, and <code title=attr-title><a href=#the-title-attribute>title</a></code> attributes to mark up semantics
+ common to a group of consecutive elements.</p>
+
+ <p class=note>Authors are strongly encouraged to view the
+ <code><a href=#the-div-element>div</a></code> element as an element of last resort, for when no
+ other element is suitable. Use of more appropriate elements instead
+ of the <code><a href=#the-div-element>div</a></code> element leads to better accessibility for
+ readers and easier maintainability for authors.</p>
+
+ <div class=example>
+
+ <p>For example, a blog post would be marked up using
+ <code><a href=#the-article-element>article</a></code>, a chapter using <code><a href=#the-section-element>section</a></code>, a
+ page's navigation aids using <code><a href=#the-nav-element>nav</a></code>, and a group of form
+ controls using <code><a href=#the-fieldset-element>fieldset</a></code>.</p>
+
+ <p>On the other hand, <code><a href=#the-div-element>div</a></code> elements can be useful for
+ stylistic purposes or to wrap multiple paragraphs within a section
+ that are all to be annotated in a similar way. In the following
+ example, we see <code><a href=#the-div-element>div</a></code> elements used as a way to set the
+ language of two paragraphs at once, instead of setting the language
+ on the two paragraph elements separately:</p>
+
+ <pre>&lt;article lang="en-US"&gt;
+ &lt;h1&gt;My use of language and my cats&lt;/h1&gt;
+ &lt;p&gt;My cat's behavior hasn't changed much since her absence, except
+ that she plays her new physique to the neighbors regularly, in an
+ attempt to get pets.&lt;/p&gt;
+ &lt;div lang="en-GB"&gt;
+ &lt;p&gt;My other cat, coloured black and white, is a sweetie. He followed
+ us to the pool today, walking down the pavement with us. Yesterday
+ he apparently visited our neighbours. I wonder if he recognises that
+ their flat is a mirror image of ours.&lt;/p&gt;
+ &lt;p&gt;Hm, I just noticed that in the last paragraph I used British
+ English. But I'm supposed to write in American English. So I
+ shouldn't say "pavement" or "flat" or "colour"...&lt;/p&gt;
+ &lt;/div&gt;
+ &lt;p&gt;I should say "sidewalk" and "apartment" and "color"!&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+ </div>
+
+
+ <h3 id=text-level-semantics><span class=secno>4.6 </span>Text-level semantics</h3>
+
+ <h4 id=the-a-element><span class=secno>4.6.1 </span>The <dfn><code>a</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd>When the element only contains <a href=#phrasing-content>phrasing content</a>: <a href=#phrasing-content>phrasing content</a>.</dd>
+ <dd><a href=#interactive-content>Interactive content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>When the element only contains <a href=#phrasing-content>phrasing content</a>: where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dd>Otherwise: where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#transparent>Transparent</a>, but there must be no <a href=#interactive-content>interactive content</a> descendant.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code></dd>
+ <dd><code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code></dd>
+<!--DOWNLOAD--><!--PING-->
+ <dd><code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code></dd>
+ <dd><code title=attr-hyperlink-ping><a href=#ping>ping</a></code></dd>
+<!--DOWNLOAD--><!--PING-->
+ <dd><code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code></dd>
+ <dd><code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code></dd>
+ <dd><code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code></dd>
+ <dd><code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlanchorelement>HTMLAnchorElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ stringifier attribute DOMString <a href=#dom-a-href title=dom-a-href>href</a>;
+ attribute DOMString <a href=#dom-a-target title=dom-a-target>target</a>;
+<!--DOWNLOAD--><!--PING-->
+ attribute DOMString <a href=#dom-a-download title=dom-a-download>download</a>;
+ attribute DOMString <a href=#dom-a-ping title=dom-a-ping>ping</a>;
+<!--DOWNLOAD--><!--PING-->
+ attribute DOMString <a href=#dom-a-rel title=dom-a-rel>rel</a>;
+ readonly attribute <a href=#domtokenlist>DOMTokenList</a> <a href=#dom-a-rellist title=dom-a-relList>relList</a>;
+ attribute DOMString <a href=#dom-a-media title=dom-a-media>media</a>;
+ attribute DOMString <a href=#dom-a-hreflang title=dom-a-hreflang>hreflang</a>;
+ attribute DOMString <a href=#dom-a-type title=dom-a-type>type</a>;
+
+ attribute DOMString <a href=#dom-a-text title=dom-a-text>text</a>;
+
+ // <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>
+ attribute DOMString <a href=#dom-a-protocol title=dom-a-protocol>protocol</a>;
+ attribute DOMString <a href=#dom-a-host title=dom-a-host>host</a>;
+ attribute DOMString <a href=#dom-a-hostname title=dom-a-hostname>hostname</a>;
+ attribute DOMString <a href=#dom-a-port title=dom-a-port>port</a>;
+ attribute DOMString <a href=#dom-a-pathname title=dom-a-pathname>pathname</a>;
+ attribute DOMString <a href=#dom-a-search title=dom-a-search>search</a>;
+ attribute DOMString <a href=#dom-a-hash title=dom-a-hash>hash</a>;
+};</pre>
+ </dd>
+ </dl><p>If the <code><a href=#the-a-element>a</a></code> element has an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute, then it
+ <a href=#represents>represents</a> a <a href=#hyperlink>hyperlink</a> (a hypertext
+ anchor).</p>
+
+ <!-- v2: Eric Meyer requests the ability to nest links so that a big
+ hyperlink, e.g. representing a calendar event, can be clickable,
+ while within it there are subareas that represent links to distinct
+ areas, e.g. a link to see photos of the event, or to edit the event,
+ or some such. -->
+
+ <p>If the <code><a href=#the-a-element>a</a></code> element has no <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute, then the element
+ <a href=#represents>represents</a> a placeholder for where a link might
+ otherwise have been placed, if it had been relevant.</p>
+
+ <p>The <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code>,
+<!--DOWNLOAD--><!--PING-->
+ <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code>,
+ <code title=attr-hyperlink-ping><a href=#ping>ping</a></code>,
+<!--DOWNLOAD--><!--PING-->
+ <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>, <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes must be omitted
+ if the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute is
+ not present.</p>
+
+ <div class=example>
+ <p>If a site uses a consistent navigation toolbar on every page,
+ then the link that would normally link to the page itself could be
+ marked up using an <code><a href=#the-a-element>a</a></code> element:</p>
+ <pre>&lt;nav&gt;
+ &lt;ul&gt;
+ &lt;li&gt; &lt;a href="/"&gt;Home&lt;/a&gt; &lt;/li&gt;
+ &lt;li&gt; &lt;a href="/news"&gt;News&lt;/a&gt; &lt;/li&gt;
+ &lt;li&gt; &lt;a&gt;Examples&lt;/a&gt; &lt;/li&gt;
+ &lt;li&gt; &lt;a href="/legal"&gt;Legal&lt;/a&gt; &lt;/li&gt;
+ &lt;/ul&gt;
+&lt;/nav&gt;</pre>
+ </div>
+
+ <div class=impl>
+
+ <p>The <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>,
+ <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code>,
+<!--DOWNLOAD--><!--PING-->
+ <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code>, and
+ <code title=attr-hyperlink-ping><a href=#ping>ping</a></code>
+<!--DOWNLOAD--><!--PING-->
+ attributes affect what happens when users <a href=#following-hyperlinks title="following
+ hyperlinks">follow hyperlinks</a>
+<!--DOWNLOAD-->
+ or <a href=#downloading-hyperlinks title="downloading hyperlinks">download hyperlinks</a>
+<!--DOWNLOAD-->
+ created using the <code><a href=#the-a-element>a</a></code> element. The
+ <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>, <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes may be used to
+ indicate to the user the likely nature of the target resource before
+ the user follows the link.</p>
+
+ <p>The <a href=#activation-behavior>activation behavior</a> of <code><a href=#the-a-element>a</a></code> elements
+ that create <a href=#hyperlink title=hyperlink>hyperlinks</a> is to run the
+ following steps:</p>
+
+ <ol><li><p>If the <code title=event-click><a href=#event-click>click</a></code> event in
+ question is not <a href=#concept-events-trusted title=concept-events-trusted>trusted</a>
+ (i.e. a <code title=dom-click><a href=#dom-click>click()</a></code> method call was the
+ reason for the event being dispatched), and either the <code><a href=#the-a-element>a</a></code>
+<!--DOWNLOAD-->
+ element has a <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute or the
+<!--DOWNLOAD-->
+ element's <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code>
+ attribute is present and applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a
+ browsing context given a browsing context name</a>, using the
+ value of the <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code>
+ attribute as the browsing context name, would result in there not
+ being a chosen browsing context, then throw an
+ <code><a href=#invalidaccesserror>InvalidAccessError</a></code> exception and abort these
+ steps.</li>
+
+ <li><p>If the target of the <code title=event-click><a href=#event-click>click</a></code>
+ event is an <code><a href=#the-img-element>img</a></code> element with an <code title=attr-img-ismap><a href=#attr-img-ismap>ismap</a></code> attribute specified, then
+ server-side image map processing must be performed, as follows:</p>
+
+ <ol><!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0A...%3Ca%20href%3D%22%23%22%3E%3Cimg%20ismap%20usemap%3D%22%23a%22%20src%3D/resources/images/smallcats%3E%3C/a%3E%0A%3Cmap%20name%3Da%3E%3Carea%20shape%3Drect%20coords%3D0%2C0%2C50%2C50%20href%3Db%3E%3C/map%3E --><li>If the <code title=event-click><a href=#event-click>click</a></code> event was a
+ real pointing-device-triggered <code title=event-click><a href=#event-click>click</a></code> event on the <code><a href=#the-img-element>img</a></code>
+ element, then let <var title="">x</var> be the distance in CSS
+ pixels from the left edge of the image's left border, if it has
+ one, or the left edge of the image otherwise, to the location of
+ the click, and let <var title="">y</var> be the distance in CSS
+ pixels from the top edge of the image's top border, if it has
+ one, or the top edge of the image otherwise, to the location of
+ the click. Otherwise, let <var title="">x</var> and <var title="">y</var> be zero.</li>
+
+ <li>Let the <dfn id=hyperlink-suffix><var>hyperlink suffix</var></dfn> be a U+003F
+ QUESTION MARK character, the value of <var title="">x</var>
+ expressed as a base-ten integer using ASCII digits, a U+002C
+ COMMA character (,), and the value of <var title="">y</var>
+ expressed as a base-ten integer using ASCII digits. ASCII digits
+ are the characters in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9).</li>
+
+ </ol></li>
+
+ <li><p>Finally, the user agent must <a href=#following-hyperlinks title="following
+ hyperlinks">follow the hyperlink</a>
+<!--DOWNLOAD-->
+ or <a href=#downloading-hyperlinks title="downloading hyperlinks">download the hyperlink</a>
+<!--DOWNLOAD-->
+ created by the <code><a href=#the-a-element>a</a></code> element, as determined by
+<!--DOWNLOAD-->
+ the <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute and
+<!--DOWNLOAD-->
+ any expressed user preference. If the steps above defined a
+ <var><a href=#hyperlink-suffix>hyperlink suffix</a></var>, then take that into account when
+ following or downloading the hyperlink.</li>
+
+ </ol></div>
+
+ <dl class=domintro><dt><var title="">a</var> . <code title=dom-a-text><a href=#dom-a-text>text</a></code></dt>
+
+ <dd>
+
+ <p>Same as <code><a href=#textcontent>textContent</a></code>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The IDL attributes
+ <dfn id=dom-a-href title=dom-a-href><code>href</code></dfn>,
+<!--DOWNLOAD--><!--PING-->
+ <dfn id=dom-a-download title=dom-a-download><code>download</code></dfn>,
+ <dfn id=dom-a-ping title=dom-a-ping><code>ping</code></dfn>,
+<!--DOWNLOAD--><!--PING-->
+ <dfn id=dom-a-target title=dom-a-target><code>target</code></dfn>, <dfn id=dom-a-rel title=dom-a-rel><code>rel</code></dfn>, <dfn id=dom-a-media title=dom-a-media><code>media</code></dfn>, <dfn id=dom-a-hreflang title=dom-a-hreflang><code>hreflang</code></dfn>, and <dfn id=dom-a-type title=dom-a-type><code>type</code></dfn>, must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ <p>The IDL attribute <dfn id=dom-a-rellist title=dom-a-rellist><code>relList</code></dfn> must
+ <a href=#reflect>reflect</a> the <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>
+ content attribute.</p>
+
+ <p>The <dfn id=dom-a-text title=dom-a-text><code>text</code></dfn> IDL
+ attribute, on getting, must return the same value as the
+ <code><a href=#textcontent>textContent</a></code> IDL attribute on the element, and on
+ setting, must act as if the <code><a href=#textcontent>textContent</a></code> IDL attribute
+ on the element had been set to the new value.</p>
+
+ <p>The <code><a href=#the-a-element>a</a></code> element also supports the complement of
+ <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, <dfn id=dom-a-protocol title=dom-a-protocol><code>protocol</code></dfn>, <dfn id=dom-a-host title=dom-a-host><code>host</code></dfn>, <dfn id=dom-a-port title=dom-a-port><code>port</code></dfn>, <dfn id=dom-a-hostname title=dom-a-hostname><code>hostname</code></dfn>, <dfn id=dom-a-pathname title=dom-a-pathname><code>pathname</code></dfn>, <dfn id=dom-a-search title=dom-a-search><code>search</code></dfn>, and <dfn id=dom-a-hash title=dom-a-hash><code>hash</code></dfn>. These must follow the
+ rules given for <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, with
+ the <a href=#concept-uda-input title=concept-uda-input>input</a> being the result of
+ <a href=#resolve-a-url title="resolve a url">resolving</a> the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute relative to the
+ element, if there is such an attribute and resolving it is
+ successful, or the empty string otherwise; and the <a href=#concept-uda-setter title=concept-uda-setter>common setter action</a> being the
+ same as setting the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute to the new output
+ value.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The <code><a href=#the-a-element>a</a></code> element may be wrapped around entire
+ paragraphs, lists, tables, and so forth, even entire sections, so
+ long as there is no interactive content within (e.g. buttons or
+ other links). This example shows how this can be used to make an
+ entire advertising block into a link:</p>
+
+ <pre>&lt;aside class="advertising"&gt;
+ &lt;h1&gt;Advertising&lt;/h1&gt;
+ &lt;a href="http://ad.example.com/?adid=1929&amp;amp;pubid=1422"&gt;
+ &lt;section&gt;
+ &lt;h1&gt;Mellblomatic 9000!&lt;/h1&gt;
+ &lt;p&gt;Turn all your widgets into mellbloms!&lt;/p&gt;
+ &lt;p&gt;Only $9.99 plus shipping and handling.&lt;/p&gt;
+ &lt;/section&gt;
+ &lt;/a&gt;
+ &lt;a href="http://ad.example.com/?adid=375&amp;amp;pubid=1422"&gt;
+ &lt;section&gt;
+ &lt;h1&gt;The Mellblom Browser&lt;/h1&gt;
+ &lt;p&gt;Web browsing at the speed of light.&lt;/p&gt;
+ &lt;p&gt;No other browser goes faster!&lt;/p&gt;
+ &lt;/section&gt;
+ &lt;/a&gt;
+&lt;/aside&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-em-element><span class=secno>4.6.2 </span>The <dfn><code>em</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-em-element>em</a></code> element <a href=#represents>represents</a> stress
+ emphasis of its contents.</p>
+
+ <p>The level of emphasis that a particular piece of content has is
+ given by its number of ancestor <code><a href=#the-em-element>em</a></code> elements.</p>
+
+ <p>The placement of emphasis changes the meaning of the sentence.
+ The element thus forms an integral part of the content. The precise
+ way in which emphasis is used in this way depends on the
+ language.</p>
+
+ <div class=example>
+
+ <p>These examples show how changing the emphasis changes the
+ meaning. First, a general statement of fact, with no emphasis:</p>
+
+ <pre>&lt;p&gt;Cats are cute animals.&lt;/p&gt;</pre>
+
+ <p>By emphasizing the first word, the statement implies that the
+ kind of animal under discussion is in question (maybe someone is
+ asserting that dogs are cute):</p>
+
+ <pre>&lt;p&gt;&lt;em&gt;Cats&lt;/em&gt; are cute animals.&lt;/p&gt;</pre>
+
+ <p>Moving the emphasis to the verb, one highlights that the truth
+ of the entire sentence is in question (maybe someone is saying cats
+ are not cute):</p>
+
+ <pre>&lt;p&gt;Cats &lt;em&gt;are&lt;/em&gt; cute animals.&lt;/p&gt;</pre>
+
+ <p>By moving it to the adjective, the exact nature of the cats
+ is reasserted (maybe someone suggested cats were <em>mean</em>
+ animals):</p>
+
+ <pre>&lt;p&gt;Cats are &lt;em&gt;cute&lt;/em&gt; animals.&lt;/p&gt;</pre>
+
+ <p>Similarly, if someone asserted that cats were vegetables,
+ someone correcting this might emphasize the last word:</p>
+
+ <pre>&lt;p&gt;Cats are cute &lt;em&gt;animals&lt;/em&gt;.&lt;/p&gt;</pre>
+
+ <p>By emphasizing the entire sentence, it becomes clear that the
+ speaker is fighting hard to get the point across. This kind of
+ emphasis also typically affects the punctuation, hence the
+ exclamation mark here.</p>
+
+ <pre>&lt;p&gt;&lt;em&gt;Cats are cute animals!&lt;/em&gt;&lt;/p&gt;</pre>
+
+ <p>Anger mixed with emphasizing the cuteness could lead to markup
+ such as:</p>
+
+ <pre>&lt;p&gt;&lt;em&gt;Cats are &lt;em&gt;cute&lt;/em&gt; animals!&lt;/em&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=note>
+
+ <p>The <code><a href=#the-em-element>em</a></code> element isn't a generic "italics"
+ element. Sometimes, text is intended to stand out from the rest of
+ the paragraph, as if it was in a different mood or voice. For this,
+ the <code><a href=#the-i-element>i</a></code> element is more appropriate.</p>
+
+ <p>The <code><a href=#the-em-element>em</a></code> element also isn't intended to convey
+ importance; for that purpose, the <code><a href=#the-strong-element>strong</a></code> element is
+ more appropriate.</p>
+
+ <!--
+
+ Thus the following is a bad use of <em>:
+
+ <p><em>Note</em>: ...</p>
+
+ You should use <strong> or <i> for this instead (depending on
+ exactly what you're doing).
+
+ -->
+
+ </div>
+
+
+
+ <h4 id=the-strong-element><span class=secno>4.6.3 </span>The <dfn><code>strong</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-strong-element>strong</a></code> element <a href=#represents>represents</a> strong
+ importance for its contents.</p>
+
+ <p>The relative level of importance of a piece of content is given
+ by its number of ancestor <code><a href=#the-strong-element>strong</a></code> elements; each
+ <code><a href=#the-strong-element>strong</a></code> element increases the importance of its
+ contents.</p>
+
+ <p>Changing the importance of a piece of text with the
+ <code><a href=#the-strong-element>strong</a></code> element does not change the meaning of the
+ sentence.</p>
+
+ <div class=example>
+ <p>Here is an example of a warning notice in a game, with the
+ various parts marked up according to how important they are:</p>
+ <!-- DO NOT REFLOW THIS EXAMPLE it has been carefully balanced -->
+ <pre>&lt;p&gt;&lt;strong&gt;Warning.&lt;/strong&gt; This dungeon is dangerous.
+&lt;strong&gt;Avoid the ducks.&lt;/strong&gt; Take any gold you find.
+&lt;strong&gt;&lt;strong&gt;Do not take any of the diamonds&lt;/strong&gt;,
+they are explosive and &lt;strong&gt;will destroy anything within
+ten meters.&lt;/strong&gt;&lt;/strong&gt; You have been warned.&lt;/p&gt;</pre>
+ </div>
+
+
+ <h4 id=the-small-element><span class=secno>4.6.4 </span>The <dfn><code>small</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-small-element>small</a></code> element <a href=#represents>represents</a> side
+ comments such as small print.</p>
+
+ <p class=note>Small print typically features disclaimers, caveats,
+ legal restrictions, or copyrights. Small print is also sometimes
+ used for attribution, or for satisfying licensing requirements.</p>
+
+ <p class=note>The <code><a href=#the-small-element>small</a></code> element does not
+ "de-emphasize" or lower the importance of text emphasized by the
+ <code><a href=#the-em-element>em</a></code> element or marked as important with the
+ <code><a href=#the-strong-element>strong</a></code> element. To mark text as not emphasized or
+ important, simply do not mark it up with the <code><a href=#the-em-element>em</a></code> or
+ <code><a href=#the-strong-element>strong</a></code> elements respectively.</p>
+
+ <p>The <code><a href=#the-small-element>small</a></code> element should not be used for extended
+ spans of text, such as multiple paragraphs, lists, or sections of
+ text. It is only intended for short runs of text. The text of a page
+ listing terms of use, for instance, would not be a suitable
+ candidate for the <code><a href=#the-small-element>small</a></code> element: in such a case, the
+ text is not a side comment, it is the main content of the page.</p>
+
+ <div class=example>
+
+ <p>In this example, the <code><a href=#the-small-element>small</a></code> element is used to
+ indicate that value-added tax is not included in a price of a hotel
+ room:</p>
+
+ <pre class=example>&lt;dl&gt;
+ &lt;dt&gt;Single room
+ &lt;dd&gt;199 &euro; &lt;small&gt;breakfast included, VAT not included&lt;/small&gt;
+ &lt;dt&gt;Double room
+ &lt;dd&gt;239 &euro; &lt;small&gt;breakfast included, VAT not included&lt;/small&gt;
+&lt;/dl&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this second example, the <code><a href=#the-small-element>small</a></code> element is used
+ for a side comment in an article.</p>
+
+ <pre>&lt;p&gt;Example Corp today announced record profits for the
+second quarter &lt;small&gt;(Full Disclosure: Foo News is a subsidiary of
+Example Corp)&lt;/small&gt;, leading to speculation about a third quarter
+merger with Demo Group.&lt;/p&gt;</pre>
+
+ <p>This is distinct from a sidebar, which might be multiple
+ paragraphs long and is removed from the main flow of text. In the
+ following example, we see a sidebar from the same article. This
+ sidebar also has small print, indicating the source of the
+ information in the sidebar.</p>
+
+ <pre>&lt;aside&gt;
+ &lt;h1&gt;Example Corp&lt;/h1&gt;
+ &lt;p&gt;This company mostly creates small software and Web
+ sites.&lt;/p&gt;
+ &lt;p&gt;The Example Corp company mission is "To provide entertainment
+ and news on a sample basis".&lt;/p&gt;
+ &lt;p&gt;&lt;small&gt;Information obtained from &lt;a
+ href="http://example.com/about.html"&gt;example.com&lt;/a&gt; home
+ page.&lt;/small&gt;&lt;/p&gt;
+&lt;/aside&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this last example, the <code><a href=#the-small-element>small</a></code> element is marked
+ as being <em>important</em> small print.</p>
+
+ <pre>&lt;p&gt;&lt;strong&gt;&lt;small&gt;Continued use of this service will result in a kiss.&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-s-element><span class=secno>4.6.5 </span>The <dfn><code>s</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-s-element>s</a></code> element <a href=#represents>represents</a> contents that
+ are no longer accurate or no longer relevant.</p>
+
+ <p class=note>The <code><a href=#the-s-element>s</a></code> element is not appropriate when
+ indicating document edits; to mark a span of text as having been
+ removed from a document, use the <code><a href=#the-del-element>del</a></code> element.</p>
+
+ <div class=example>
+
+ <p>In this example a recommended retail price has been marked as no
+ longer relevant as the product in question has a new sale
+ price.</p>
+
+ <pre>&lt;p&gt;Buy our Iced Tea and Lemonade!&lt;/p&gt;
+&lt;p&gt;&lt;s&gt;Recommended retail price: $3.99 per bottle&lt;/s&gt;&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Now selling for just $2.99 a bottle!&lt;/strong&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-cite-element><span class=secno>4.6.6 </span>The <dfn><code>cite</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-cite-element>cite</a></code> element <a href=#represents>represents</a> the title
+ of a work (e.g.
+ a book,
+ a paper,
+ an essay,
+ a poem,
+ a score,
+ a song,
+ a script,
+ a film,
+ a TV show,
+ a game,
+ a sculpture,
+ a painting,
+ a theatre production,
+ a play,
+ an opera,
+ a musical,
+ an exhibition,
+ a legal case report,
+ etc). This can be a work that is being quoted or
+ referenced in detail (i.e. a citation), or it can just be a work
+ that is mentioned in passing.</p>
+
+ <p>A person's name is not the title of a work &mdash; even if people
+ call that person a piece of work &mdash; and the element must
+ therefore not be used to mark up people's names. (In some cases, the
+ <code><a href=#the-b-element>b</a></code> element might be appropriate for names; e.g. in a
+ gossip article where the names of famous people are keywords
+ rendered with a different style to draw attention to them. In other
+ cases, if an element is <em>really</em> needed, the
+ <code><a href=#the-span-element>span</a></code> element can be used.)</p>
+
+<!--(some people argue a ship is a work)
+ <p>A ship is similarly not a work, and the element must not be used
+ to mark up ship names (the <code>i</code> element can be used for
+ that purpose).</p>
+-->
+
+ <div class=example>
+
+ <p>This next example shows a typical use of the <code><a href=#the-cite-element>cite</a></code>
+ element:</p>
+
+ <pre>&lt;p&gt;My favorite book is &lt;cite&gt;The Reality Dysfunction&lt;/cite&gt; by
+Peter F. Hamilton. My favorite comic is &lt;cite&gt;Pearls Before
+Swine&lt;/cite&gt; by Stephan Pastis. My favorite track is &lt;cite&gt;Jive
+Samba&lt;/cite&gt; by the Cannonball Adderley Sextet.&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>This is correct usage:</p>
+
+ <pre>&lt;p&gt;According to the Wikipedia article &lt;cite&gt;HTML&lt;/cite&gt;, as it
+stood in mid-February 2008, leaving attribute values unquoted is
+unsafe. This is obviously an over-simplification.&lt;/p&gt;</pre>
+
+ <p>The following, however, is incorrect usage, as the
+ <code><a href=#the-cite-element>cite</a></code> element here is containing far more than the
+ title of the work:</p>
+
+ <pre class=bad>&lt;!-- do not copy this example, it is an example of bad usage! --&gt;
+&lt;p&gt;According to &lt;cite&gt;the Wikipedia article on HTML&lt;/cite&gt;, as it
+stood in mid-February 2008, leaving attribute values unquoted is
+unsafe. This is obviously an over-simplification.&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The <code><a href=#the-cite-element>cite</a></code> element is obviously a key part of any
+ citation in a bibliography, but it is only used to mark the
+ title:</p>
+
+ <pre>&lt;p&gt;&lt;cite&gt;Universal Declaration of Human Rights&lt;/cite&gt;, United Nations,
+December 1948. Adopted by General Assembly resolution 217 A (III).&lt;/p&gt;</pre>
+
+ </div>
+
+ <p class=note>A <em>citation</em> is not a <em>quote</em> (for
+ which the <code><a href=#the-q-element>q</a></code> element is appropriate).</p>
+
+ <div class=example>
+
+ <p>This is incorrect usage, because <code><a href=#the-cite-element>cite</a></code> is not for
+ quotes:</p>
+
+ <pre class=bad>&lt;p&gt;&lt;cite&gt;This is wrong!&lt;/cite&gt;, said Ian.&lt;/p&gt;</pre>
+
+ <p>This is also incorrect usage, because a person is not a
+ work:</p>
+
+ <pre class=bad>&lt;p&gt;&lt;q&gt;This is still wrong!&lt;/q&gt;, said &lt;cite&gt;Ian&lt;/cite&gt;.&lt;/p&gt;</pre>
+
+ <p>The correct usage does not use a <code><a href=#the-cite-element>cite</a></code> element:</p>
+
+ <pre>&lt;p&gt;&lt;q&gt;This is correct&lt;/q&gt;, said Ian.&lt;/p&gt;</pre>
+
+ <p>As mentioned above, the <code><a href=#the-b-element>b</a></code> element might be relevant
+ for marking names as being keywords in certain kinds of
+ documents:</p>
+
+ <pre>&lt;p&gt;And then &lt;b&gt;Ian&lt;/b&gt; said &lt;q&gt;this might be right, in a
+gossip column, maybe!&lt;/q&gt;.&lt;/p&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-q-element><span class=secno>4.6.7 </span>The <dfn><code>q</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-q-cite><a href=#attr-q-cite>cite</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlquoteelement>HTMLQuoteElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-q-element>q</a></code> element <a href=#represents>represents</a> some <a href=#phrasing-content title="phrasing content">phrasing content</a> quoted from another
+ source.</p>
+
+ <p>Quotation punctuation (such as quotation marks) that is quoting
+ the contents of the element must not appear immediately before,
+ after, or inside <code><a href=#the-q-element>q</a></code> elements; they will be inserted into
+ the rendering by the user agent.</p>
+
+ <p>Content inside a <code><a href=#the-q-element>q</a></code> element must be quoted from
+ another source, whose address, if it has one, may be cited in the
+ <dfn id=attr-q-cite title=attr-q-cite><code>cite</code></dfn> attribute. The
+ source may be fictional, as when quoting characters in a novel or
+ screenplay.</p>
+
+ <p>If the <code title=attr-q-cite><a href=#attr-q-cite>cite</a></code> attribute is
+ present, it must be a <a href=#valid-url-potentially-surrounded-by-spaces>valid URL potentially surrounded by
+ spaces</a>. <span class=impl>To obtain the corresponding
+ citation link, the value of the attribute must be <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element. User
+ agents should allow users to follow such citation links.</span></p>
+
+ <p>The <code><a href=#the-q-element>q</a></code> element must not be used in place of quotation
+ marks that do not represent quotes; for example, it is inappropriate
+ to use the <code><a href=#the-q-element>q</a></code> element for marking up sarcastic
+ statements.</p>
+
+ <p>The use of <code><a href=#the-q-element>q</a></code> elements to mark up quotations is
+ entirely optional; using explicit quotation punctuation without
+ <code><a href=#the-q-element>q</a></code> elements is just as correct.</p>
+
+ <div class=example>
+
+ <p>Here is a simple example of the use of the <code><a href=#the-q-element>q</a></code>
+ element:</p>
+
+ <pre>&lt;p&gt;The man said &lt;q&gt;Things that are impossible just take
+longer&lt;/q&gt;. I disagreed with him.&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here is an example with both an explicit citation link in the
+ <code><a href=#the-q-element>q</a></code> element, and an explicit citation outside:</p>
+
+ <pre>&lt;p&gt;The W3C page &lt;cite&gt;About W3C&lt;/cite&gt; says the W3C's
+mission is &lt;q cite="http://www.w3.org/Consortium/"&gt;To lead the
+World Wide Web to its full potential by developing protocols and
+guidelines that ensure long-term growth for the Web&lt;/q&gt;. I
+disagree with this mission.&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, the quotation itself contains a
+ quotation:</p>
+
+ <pre>&lt;p&gt;In &lt;cite&gt;Example One&lt;/cite&gt;, he writes &lt;q&gt;The man
+said &lt;q&gt;Things that are impossible just take longer&lt;/q&gt;. I
+disagreed with him&lt;/q&gt;. Well, I disagree even more!&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, quotation marks are used instead of
+ the <code><a href=#the-q-element>q</a></code> element:</p>
+
+ <pre>&lt;p&gt;His best argument was &#10077;I disagree&#10078;, which
+I thought was laughable.&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, there is no quote &mdash; the
+ quotation marks are used to name a word. Use of the <code><a href=#the-q-element>q</a></code>
+ element in this case would be inappropriate.</p>
+
+ <pre>&lt;p&gt;The word "ineffable" could have been used to describe the disaster
+resulting from the campaign's mismanagement.&lt;/p&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-dfn-element><span class=secno>4.6.8 </span>The <dfn><code>dfn</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>, but there must be no <code><a href=#the-dfn-element>dfn</a></code> element descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd>Also, the <code title=attr-dfn-title><a href=#attr-dfn-title>title</a></code> attribute has special semantics on this element.</dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-dfn-element>dfn</a></code> element <a href=#represents>represents</a> the defining
+ instance of a term. The <a href=#paragraph title=paragraph>paragraph</a>,
+ <a href=#the-dl-element title=dl>description list group</a>, or <a href=#sectioning-content title="sectioning content">section</a> that is the nearest
+ ancestor of the <code><a href=#the-dfn-element>dfn</a></code> element must also contain the
+ definition(s) for the <a href=#defining-term title="defining term">term</a> given
+ by the <code><a href=#the-dfn-element>dfn</a></code> element.</p>
+
+ <p><dfn id=defining-term>Defining term</dfn>: If the <code><a href=#the-dfn-element>dfn</a></code> element has a
+ <dfn id=attr-dfn-title title=attr-dfn-title><code>title</code></dfn> attribute, then
+ the exact value of that attribute is the term being defined.
+ Otherwise, if it contains exactly one element child node and no
+ child <a href=#text-node title="text node">text nodes</a>, and that child
+ element is an <code><a href=#the-abbr-element>abbr</a></code> element with a <code title=attr-abbr-title><a href=#attr-abbr-title>title</a></code> attribute, then the exact value
+ of <em>that</em> attribute is the term being defined. Otherwise, it
+ is the exact <code><a href=#textcontent>textContent</a></code> of the <code><a href=#the-dfn-element>dfn</a></code>
+ element that gives the term being defined.</p>
+
+ <!-- note that this means <dfn>x \n x</dfn> won't match <span>x x</span> -->
+
+ <p>If the <code title=attr-dfn-title><a href=#attr-dfn-title>title</a></code> attribute of the
+ <code><a href=#the-dfn-element>dfn</a></code> element is present, then it must contain only the
+ term being defined.</p>
+
+ <p class=note>The <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute
+ of ancestor elements does not affect <code><a href=#the-dfn-element>dfn</a></code> elements.</p>
+
+ <p>An <code><a href=#the-a-element>a</a></code> element that links to a <code><a href=#the-dfn-element>dfn</a></code>
+ element represents an instance of the term defined by the
+ <code><a href=#the-dfn-element>dfn</a></code> element.</p>
+
+ <div class=example>
+
+ <p>In the following fragment, the term "Garage Door Opener" is
+ first defined in the first paragraph, then used in the second. In
+ both cases, its abbreviation is what is actually displayed.</p>
+
+ <pre>&lt;p&gt;The <strong>&lt;dfn&gt;&lt;abbr title="Garage Door Opener"&gt;GDO&lt;/abbr&gt;&lt;/dfn&gt;</strong>
+is a device that allows off-world teams to open the iris.&lt;/p&gt;
+&lt;!-- ... later in the document: --&gt;
+&lt;p&gt;Teal'c activated his <strong>&lt;abbr title="Garage Door Opener"&gt;GDO&lt;/abbr&gt;</strong>
+and so Hammond ordered the iris to be opened.&lt;/p&gt;</pre>
+
+ <p>With the addition of an <code><a href=#the-a-element>a</a></code> element, the reference
+ can be made explicit:</p>
+
+ <pre>&lt;p&gt;The &lt;dfn <strong>id=gdo</strong>&gt;&lt;abbr title="Garage Door Opener"&gt;GDO&lt;/abbr&gt;&lt;/dfn&gt;
+is a device that allows off-world teams to open the iris.&lt;/p&gt;
+&lt;!-- ... later in the document: --&gt;
+&lt;p&gt;Teal'c activated his <strong>&lt;a href=#gdo&gt;</strong>&lt;abbr title="Garage Door Opener"&gt;GDO&lt;/abbr&gt;<strong>&lt;/a&gt;</strong>
+and so Hammond ordered the iris to be opened.&lt;/p&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-abbr-element><span class=secno>4.6.9 </span>The <dfn><code>abbr</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd>Also, the <code title=attr-abbr-title><a href=#attr-abbr-title>title</a></code> attribute has special semantics on this element.</dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-abbr-element>abbr</a></code> element <a href=#represents>represents</a> an
+ abbreviation or acronym, optionally with its expansion. The <dfn id=attr-abbr-title title=attr-abbr-title><code>title</code></dfn> attribute may be
+ used to provide an expansion of the abbreviation. The attribute, if
+ specified, must contain an expansion of the abbreviation, and
+ nothing else.</p>
+
+ <div class=example>
+ <p>The paragraph below contains an abbreviation marked up with the
+ <code><a href=#the-abbr-element>abbr</a></code> element. This paragraph <a href=#defining-term title="defining
+ term">defines the term</a> "Web Hypertext Application Technology
+ Working Group".</p>
+ <pre>&lt;p&gt;The &lt;dfn id=whatwg&gt;&lt;abbr
+title="Web Hypertext Application Technology Working Group"&gt;WHATWG&lt;/abbr&gt;&lt;/dfn&gt;
+is a loose unofficial collaboration of Web browser manufacturers and
+interested parties who wish to develop new technologies designed to
+allow authors to write and deploy Applications over the World Wide
+Web.&lt;/p&gt;</pre>
+ <p>An alternative way to write this would be:</p>
+ <pre>&lt;p&gt;The &lt;dfn id=whatwg&gt;Web Hypertext Application Technology
+Working Group&lt;/dfn&gt; (&lt;abbr
+title="Web Hypertext Application Technology Working Group"&gt;WHATWG&lt;/abbr&gt;)
+is a loose unofficial collaboration of Web browser manufacturers and
+interested parties who wish to develop new technologies designed to
+allow authors to write and deploy Applications over the World Wide
+Web.&lt;/p&gt;</pre>
+ </div>
+
+ <div class=example>
+ <p>This paragraph has two abbreviations. Notice how only one is
+ defined; the other, with no expansion associated with it, does not
+ use the <code><a href=#the-abbr-element>abbr</a></code> element.</p>
+ <pre>&lt;p&gt;The
+&lt;abbr title="Web Hypertext Application Technology Working Group"&gt;WHATWG&lt;/abbr&gt;
+started working on HTML5 in 2004.&lt;/p&gt;</pre>
+ </div>
+
+ <div class=example>
+ <p>This paragraph links an abbreviation to its definition.</p>
+ <pre>&lt;p&gt;The &lt;a href="#whatwg"&gt;&lt;abbr
+title="Web Hypertext Application Technology Working Group"&gt;WHATWG&lt;/abbr&gt;&lt;/a&gt;
+community does not have much representation from Asia.&lt;/p&gt;</pre>
+ </div>
+
+ <div class=example>
+ <p>This paragraph marks up an abbreviation without giving an
+ expansion, possibly as a hook to apply styles for abbreviations
+ (e.g. smallcaps).</p>
+ <pre>&lt;p&gt;Philip` and Dashiva both denied that they were going to
+get the issue counts from past revisions of the specification to
+backfill the &lt;abbr&gt;WHATWG&lt;/abbr&gt; issue graph.&lt;/p&gt;</pre>
+ </div>
+
+ <p>If an abbreviation is pluralized, the expansion's grammatical
+ number (plural vs singular) must match the grammatical number of the
+ contents of the element.</p>
+
+ <div class=example>
+
+ <p>Here the plural is outside the element, so the expansion is in
+ the singular:</p>
+
+ <pre>&lt;p&gt;Two &lt;abbr title="Working Group"&gt;WG&lt;/abbr&gt;s worked on
+this specification: the &lt;abbr&gt;WHATWG&lt;/abbr&gt; and the
+&lt;abbr&gt;HTMLWG&lt;/abbr&gt;.&lt;/p&gt;</pre>
+
+ <p>Here the plural is inside the element, so the expansion is in
+ the plural:</p>
+
+ <pre>&lt;p&gt;Two &lt;abbr title="Working Groups"&gt;WGs&lt;/abbr&gt; worked on
+this specification: the &lt;abbr&gt;WHATWG&lt;/abbr&gt; and the
+&lt;abbr&gt;HTMLWG&lt;/abbr&gt;.&lt;/p&gt;</pre>
+
+ </div>
+
+ <p>Abbreviations do not have to be marked up using this element. It
+ is expected to be useful in the following cases:</p>
+
+ <ul><li>Abbreviations for which the author wants to give expansions,
+ where using the <code><a href=#the-abbr-element>abbr</a></code> element with a <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute is an alternative to
+ including the expansion inline (e.g. in parentheses).</li>
+
+ <li>Abbreviations that are likely to be unfamiliar to the
+ document's readers, for which authors are encouraged to either mark
+ up the abbreviation using a <code><a href=#the-abbr-element>abbr</a></code> element with a <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute or include the expansion
+ inline in the text the first time the abbreviation is used.</li>
+
+ <li>Abbreviations whose presence needs to be semantically
+ annotated, e.g. so that they can be identified from a style sheet
+ and given specific styles, for which the <code><a href=#the-abbr-element>abbr</a></code> element
+ can be used without a <code title=attr-title><a href=#the-title-attribute>title</a></code>
+ attribute.</li>
+
+ </ul><p title=note>Providing an expansion in a <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute once will not necessarily
+ cause other <code><a href=#the-abbr-element>abbr</a></code> elements in the same document with the
+ same contents but without a <code title=attr-title><a href=#the-title-attribute>title</a></code>
+ attribute to behave as if they had the same expansion. Every
+ <code><a href=#the-abbr-element>abbr</a></code> element is independent.</p>
+
+
+
+
+ <h4 id=the-time-element><span class=secno>4.6.10 </span>The <dfn><code>time</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>, but there must be no <code><a href=#the-time-element>time</a></code> element descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code></dd>
+ <dd><code title=attr-time-pubdate><a href=#attr-time-pubdate>pubdate</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmltimeelement>HTMLTimeElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-time-datetime title=dom-time-datetime>dateTime</a>;
+ attribute boolean <a href=#dom-time-pubdate title=dom-time-pubDate>pubDate</a>;
+ readonly attribute <span>Date</span>? <a href=#dom-time-valueasdate title=dom-time-valueAsDate>valueAsDate</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-time-element>time</a></code> element <a href=#represents>represents</a> either a
+ time on a 24 hour clock, or a precise date in the proleptic
+ Gregorian calendar, optionally with a time and a time-zone
+ offset. <a href=#refsGREGORIAN>[GREGORIAN]</a></p>
+
+ <p>This element is intended as a way to encode modern dates and
+ times in a machine-readable way so that, for example, user agents
+ can offer to add birthday reminders or scheduled events to the
+ user's calendar.</p>
+
+ <!-- it's also intended for restyling to local conventions
+ (2000-12-31 vs 31-12-2000 vs 12-31-2000), but CSS doesn't support
+ that yet. Once CSS does support that, we should update this to also
+ support year and year-month cases, since in Japanese those need
+ special styling also. See #2 in:
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-August/028025.html
+ ...for details. -->
+
+ <div class=note>
+
+ <p>The <code><a href=#the-time-element>time</a></code> element is not intended for encoding times
+ for which a precise date or time cannot be established. For
+ example, it would be inappropriate for encoding times like "one
+ millisecond after the big bang", "the early part of the Jurassic
+ period", or "a winter around 250 BCE".</p>
+
+ <p>For dates before the introduction of the Gregorian calendar,
+ authors are encouraged to not use the <code><a href=#the-time-element>time</a></code> element, or
+ else to be very careful about converting dates and times from the
+ period to the Gregorian calendar. This is complicated by the manner
+ in which the Gregorian calendar was phased in, which occurred at
+ different times in different countries, ranging from partway
+ through the 16th century all the way to early in the 20th.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-time-pubdate title=attr-time-pubdate><code>pubdate</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. If specified, it
+ indicates that the date and time given by the element is the
+ publication date and time of the nearest ancestor
+ <code><a href=#the-article-element>article</a></code> element, or, if the element has no ancestor
+ <code><a href=#the-article-element>article</a></code> element, of the document as a whole. If the
+ element has a <code title=attr-time-pubdate><a href=#attr-time-pubdate>pubdate</a></code>
+ attribute specified, then the element <dfn id=needs-a-date>needs a date</dfn>. For
+ each <code><a href=#the-article-element>article</a></code> element, there must be no more than one
+ <code><a href=#the-time-element>time</a></code> element with a <code title=attr-time-pubdate><a href=#attr-time-pubdate>pubdate</a></code> attribute whose nearest
+ ancestor is that <code><a href=#the-article-element>article</a></code> element. Furthermore, for each
+ <code><a href=#document>Document</a></code>, there must be no more than one
+ <code><a href=#the-time-element>time</a></code> element with a <code title=attr-time-pubdate><a href=#attr-time-pubdate>pubdate</a></code> attribute that does not
+ have an ancestor <code><a href=#the-article-element>article</a></code> element.</p>
+
+ <p>The <dfn id=attr-time-datetime title=attr-time-datetime><code>datetime</code></dfn>
+ attribute, if present, gives the date or time being
+ specified. Otherwise, the date or time is given by the element's
+ contents.</p>
+
+ <p>If the element <i><a href=#needs-a-date>needs a date</a></i>, and the <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> attribute is present,
+ then the attribute's value must be a <a href=#valid-date-string-with-optional-time>valid date string with
+ optional time</a>.</p>
+
+ <p>If the element <i><a href=#needs-a-date>needs a date</a></i>, but the <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> attribute is not present,
+ then the element's <code><a href=#textcontent>textContent</a></code> must be a <a href=#valid-date-string-in-content-with-optional-time>valid
+ date string in content with optional time</a>.</p>
+
+ <p>If the element does not <i title="needs a date"><a href=#needs-a-date>need a date</a></i>,
+ and the <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> attribute
+ is present, then the attribute's value must be a <a href=#valid-date-or-time-string>valid date or
+ time string</a>.</p>
+
+ <p>If the element does not <i title="needs a date"><a href=#needs-a-date>need a date</a></i>,
+ but the <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> attribute
+ is not present, then the element's <code><a href=#textcontent>textContent</a></code> must be
+ a <a href=#valid-date-or-time-string-in-content>valid date or time string in content</a>.</p>
+
+ <p>The date, if any, must be expressed using the Gregorian
+ calendar.</p>
+
+ <div class=impl>
+
+ <p>If the <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> attribute
+ is present, the user agent should convey the attribute's value to
+ the user when rendering the element.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The <code><a href=#the-time-element>time</a></code> element can be used to encode dates, for
+ example in Microformats. The following shows a hypothetical way of
+ encoding an event using a variant on hCalendar that uses the
+ <code><a href=#the-time-element>time</a></code> element:</p>
+
+ <pre>&lt;div class="vevent"&gt;
+ &lt;a class="url" href="http://www.web2con.com/"&gt;http://www.web2con.com/&lt;/a&gt;
+ &lt;span class="summary"&gt;Web 2.0 Conference&lt;/span&gt;:
+ &lt;time class="dtstart" datetime="2007-10-05"&gt;October 5&lt;/time&gt; -
+ &lt;time class="dtend" datetime="2007-10-20"&gt;19&lt;/time&gt;,
+ at the &lt;span class="location"&gt;Argent Hotel, San Francisco, CA&lt;/span&gt;
+ &lt;/div&gt;</pre>
+
+ <p>(The end date is encoded as one day after the last date of the
+ event because in the iCalendar format, end dates are
+ <em>exclusive</em>, not inclusive.)</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The <code><a href=#the-time-element>time</a></code> element is not necessary for encoding
+ dates or times. In the following snippet, the time is encoded using
+ <code><a href=#the-time-element>time</a></code>, so that it can be restyled (e.g. using XBL2) to
+ match local conventions, while the year is not marked up at all,
+ since marking it up would not be particularly useful, and doing so
+ is thus not allowed.</p>
+
+ <pre>&lt;p&gt;I usually have a snack at &lt;time&gt;16:00&lt;/time&gt;.&lt;/p&gt;
+&lt;p&gt;I've liked model trains since at least 1983.&lt;/p&gt;</pre>
+
+ <p>Using a styling technology that supports restyling times, the
+ first paragraph from the above snippet could be rendered as follows:</p>
+
+ <blockquote><p>I usually have a snack at 4pm.</blockquote>
+
+ <p>Or it could be rendered as follows:</p>
+
+ <blockquote><p>I usually have a snack at 16h00.</blockquote>
+
+ </div>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-time-datetime title=dom-time-datetime><code>dateTime</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> content attribute.</p>
+
+ <p>The <dfn id=dom-time-pubdate title=dom-time-pubDate><code>pubDate</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-time-pubdate><a href=#attr-time-pubdate>pubdate</a></code> content attribute.</p>
+
+ <p>User agents, to obtain the <dfn id=concept-time-date title=concept-time-date>date</dfn>, <dfn id=concept-time-time title=concept-time-time>time</dfn>, and <dfn id=concept-time-timezone title=concept-time-timezone>time-zone offset</dfn> represented by
+ a <code><a href=#the-time-element>time</a></code> element, must follow these steps:</p>
+
+ <ol><li>If the <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code>
+ attribute is present, then use the rules to <a href=#parse-a-date-or-time-string>parse a date or
+ time string</a> with the flag <i>in attribute</i> from the value
+ of that attribute, and let the result be <var title="">result</var>.</li>
+
+ <li>Otherwise, use the rules to <a href=#parse-a-date-or-time-string>parse a date or time
+ string</a> with the flag <i>in content</i> from the element's
+ <code><a href=#textcontent>textContent</a></code>, and let the result be <var title="">result</var>.</li>
+
+ <li>If <var title="">result</var> is empty (because the parsing
+ failed), then the <a href=#concept-time-date title=concept-time-date>date</a> is
+ unknown, the <a href=#concept-time-time title=concept-time-time>time</a> is
+ unknown, and the <a href=#concept-time-timezone title=concept-time-timezone>time-zone
+ offset</a> is unknown.</li>
+
+ <li>Otherwise: if <var title="">result</var> contains a date, then
+ that is the <a href=#concept-time-date title=concept-time-date>date</a>; if <var title="">result</var> contains a time, then that is the <a href=#concept-time-time title=concept-time-time>time</a>; and if <var title="">result</var> contains a time-zone offset, then the
+ time-zone offset is the element's <a href=#concept-time-timezone title=concept-time-timezone>time-zone offset</a>. (A time-zone
+ offset can only be present if both a date and a time are also
+ present.)</li>
+
+ </ol></div>
+
+ <dl class=domintro><dt><var title="">time</var> . <code title=dom-time-valueAsDate><a href=#dom-time-valueasdate>valueAsDate</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code>Date</code> object representing the specified date and time.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-time-valueasdate title=dom-time-valueAsDate><code>valueAsDate</code></dfn> IDL
+ attribute must return either null or a new <code>Date</code> object
+ initialized to the relevant value as defined by the following
+ list:</p>
+
+ <dl><dt>If the <a href=#concept-time-date title=concept-time-date>date</a> is known but
+ the <a href=#concept-time-time title=concept-time-time>time</a> is not</dt>
+
+ <dd>The time corresponding to midnight UTC (i.e. the first second)
+ of the given <a href=#concept-time-date title=concept-time-date>date</a>.</dd>
+
+ <dt>If the <a href=#concept-time-time title=concept-time-time>time</a> is known but
+ the <a href=#concept-time-date title=concept-time-date>date</a> is not</dt>
+
+ <dd>The time corresponding to the given <a href=#concept-time-time title=concept-time-time>time</a> of 1970-01-01, with the time
+ zone UTC.</dd>
+
+ <dt>If both the <a href=#concept-time-date title=concept-time-date>date</a> and the
+ <a href=#concept-time-time title=concept-time-time>time</a> are known</dt>
+
+ <dd>The time corresponding to the <a href=#concept-time-date title=concept-time-date>date</a> and <a href=#concept-time-time title=concept-time-time>time</a>, with the given <a href=#concept-time-timezone title=concept-time-timezone>time-zone offset</a>.</dd>
+
+ <dt>If neither the <a href=#concept-time-date title=concept-time-date>date</a> nor
+ the <a href=#concept-time-time title=concept-time-time>time</a> are known</dt>
+
+ <dd>The null value.</dd>
+
+ </dl><p>When a <code>Date</code> object is to be returned, a new one must
+ be constructed.</p> <!-- yes, this means .valueAsDate !=
+ .valueAsDate, but the object is mutable, so it'd be weird if we
+ didn't do that -->
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following snippet:</p>
+
+ <pre>&lt;p&gt;Our first date was &lt;time datetime="2006-09-23"&gt;a Saturday&lt;/time&gt;.&lt;/p&gt;</pre>
+
+ <p>...the <code><a href=#the-time-element>time</a></code> element's <code title=dom-time-valueAsDate><a href=#dom-time-valueasdate>valueAsDate</a></code> attribute would
+ have the value 1,158,969,600,000ms.</p>
+
+ </div>
+
+ <!-- <pre>&lt;p>We stopped talking at &lt;time datetime="2006-09-24T05:00-07:00">5am the next morning&lt;/time>.&lt;/p></pre> -->
+
+ <div class=example>
+
+ <p>In the following snippet:</p>
+
+ <pre>&lt;p&gt;Many people get up at &lt;time&gt;08:00&lt;/time&gt;.&lt;/p&gt;</pre>
+
+ <p>...the <code><a href=#the-time-element>time</a></code> element's <code title=dom-time-valueAsDate><a href=#dom-time-valueasdate>valueAsDate</a></code> attribute would
+ have the value 28,800,000ms.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example, an article's publication date is marked up
+ using <code><a href=#the-time-element>time</a></code>:</p>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;Small tasks&lt;/h1&gt;
+ &lt;footer&gt;Published &lt;time pubdate&gt;2009-08-30&lt;/time&gt;.&lt;/footer&gt;
+ &lt;p&gt;I put a bike bell on his bike.&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+ <p>Here is another way that could be marked up. In this example,
+ legacy user agents would say "today", while newer user agents would
+ render the time in a locale-specific manner based on the value of
+ the attribute.</p>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;Small tasks&lt;/h1&gt;
+ &lt;footer&gt;Published &lt;time pubdate datetime="2009-08-30"&gt;today&lt;/time&gt;.&lt;/footer&gt;
+ &lt;p&gt;I put a bike bell on his bike.&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+ <p>Here is the same thing but with the time included only. Because
+ the element is empty, legacy user agents will not show anything
+ useful; user agents that implement this specification, on the other
+ hand, would show the date and time in a locale-specific manner.</p>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;Small tasks&lt;/h1&gt;
+ &lt;footer&gt;Published &lt;time pubdate datetime="2009-08-30T07:13Z"&gt;&lt;/time&gt;.&lt;/footer&gt;
+ &lt;p&gt;I put a bike bell on his bike.&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-code-element><span class=secno>4.6.11 </span>The <dfn><code>code</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-code-element>code</a></code> element <a href=#represents>represents</a> a fragment
+ of computer code. This could be an XML element name, a filename, a
+ computer program, or any other string that a computer would
+ recognize.</p>
+
+ <p>Although there is no formal way to indicate the language of
+ computer code being marked up, authors who wish to mark
+ <code><a href=#the-code-element>code</a></code> elements with the language used, e.g. so that
+ syntax highlighting scripts can use the right rules, may do so by
+ adding a class prefixed with "<code title="">language-</code>" to
+ the element.</p>
+
+ <div class=example>
+
+ <p>The following example shows how the element can be used in a
+ paragraph to mark up element names and computer code, including
+ punctuation.</p>
+
+ <pre>&lt;p&gt;The &lt;code&gt;code&lt;/code&gt; element represents a fragment of computer
+code.&lt;/p&gt;
+
+&lt;p&gt;When you call the &lt;code&gt;activate()&lt;/code&gt; method on the
+&lt;code&gt;robotSnowman&lt;/code&gt; object, the eyes glow.&lt;/p&gt;
+
+&lt;p&gt;The example below uses the &lt;code&gt;begin&lt;/code&gt; keyword to indicate
+the start of a statement block. It is paired with an &lt;code&gt;end&lt;/code&gt;
+keyword, which is followed by the &lt;code&gt;.&lt;/code&gt; punctuation character
+(full stop) to indicate the end of the program.&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows how a block of code could be marked
+ up using the <code><a href=#the-pre-element>pre</a></code> and <code><a href=#the-code-element>code</a></code> elements.</p>
+
+ <pre>&lt;pre&gt;&lt;code class="language-pascal"&gt;var i: Integer;
+begin
+ i := 1;
+end.&lt;/code&gt;&lt;/pre&gt;</pre>
+
+ <p>A class is used in that example to indicate the language
+ used.</p>
+
+ </div>
+
+ <p class=note>See the <code><a href=#the-pre-element>pre</a></code> element for more details.</p>
+
+
+ <h4 id=the-var-element><span class=secno>4.6.12 </span>The <dfn><code>var</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-var-element>var</a></code> element <a href=#represents>represents</a> a variable.
+ This could be an actual variable in a mathematical expression or
+ programming context, an identifier representing a constant, a
+ function parameter, or just be a term used as a placeholder in
+ prose.</p>
+
+ <div class=example>
+ <p>In the paragraph below, the letter "n" is being used as a
+ variable in prose:</p>
+ <pre>&lt;p&gt;If there are &lt;var&gt;n&lt;/var&gt; pipes leading to the ice
+cream factory then I expect at &lt;em&gt;least&lt;/em&gt; &lt;var&gt;n&lt;/var&gt;
+flavors of ice cream to be available for purchase!&lt;/p&gt;</pre>
+ </div>
+
+ <p>For mathematics, in particular for anything beyond the simplest
+ of expressions, MathML is more appropriate. However, the
+ <code><a href=#the-var-element>var</a></code> element can still be used to refer to specific
+ variables that are then mentioned in MathML expressions.</p>
+
+ <div class=example>
+
+ <p>In this example, an equation is shown, with a legend that
+ references the variables in the equation. The expression itself is
+ marked up with MathML, but the variables are mentioned in the
+ figure's legend using <code><a href=#the-var-element>var</a></code>.</p>
+
+ <pre>&lt;figure&gt;
+ &lt;math&gt;
+ &lt;mi&gt;a&lt;/mi&gt;
+ &lt;mo&gt;=&lt;/mo&gt;
+ &lt;msqrt&gt;
+ &lt;msup&gt;&lt;mi&gt;b&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;
+ &lt;mi&gt;+&lt;/mi&gt;
+ &lt;msup&gt;&lt;mi&gt;c&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;
+ &lt;/msqrt&gt;
+ &lt;/math&gt;
+ &lt;figcaption&gt;
+ Using Pythagoras' theorem to solve for the hypotenuse &lt;var&gt;a&lt;/var&gt; of
+ a triangle with sides &lt;var&gt;b&lt;/var&gt; and &lt;var&gt;c&lt;/var&gt;
+ &lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here, the equation describing mass-energy equivalence is used in
+ a sentence, and the <code><a href=#the-var-element>var</a></code> element is used to mark the
+ variables and constants in that equation:</p>
+
+ <pre>&lt;p&gt;Then he turned to the blackboard and picked up the chalk. After a few moment's
+thought, he wrote &lt;var&gt;E&lt;/var&gt; = &lt;var&gt;m&lt;/var&gt; &lt;var&gt;c&lt;/var&gt;&lt;sup&gt;2&lt;/sup&gt;. The teacher
+looked pleased.&lt;/p&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-samp-element><span class=secno>4.6.13 </span>The <dfn><code>samp</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-samp-element>samp</a></code> element <a href=#represents>represents</a> (sample)
+ output from a program or computing system.</p>
+
+ <p class=note>See the <code><a href=#the-pre-element>pre</a></code> and <code><a href=#the-kbd-element>kbd</a></code>
+ elements for more details.</p>
+
+ <div class=example>
+ <p>This example shows the <code><a href=#the-samp-element>samp</a></code> element being used
+ inline:</p>
+ <pre>&lt;p&gt;The computer said &lt;samp&gt;Too much cheese in tray
+two&lt;/samp&gt; but I didn't know what that meant.&lt;/p&gt;</pre>
+
+ <p>This second example shows a block of sample output. Nested
+ <code><a href=#the-samp-element>samp</a></code> and <code><a href=#the-kbd-element>kbd</a></code> elements allow for the
+ styling of specific elements of the sample output using a
+ style sheet.</p>
+
+ <pre>&lt;pre&gt;&lt;samp&gt;&lt;span class="prompt"&gt;jdoe@mowmow:~$&lt;/span&gt; &lt;kbd&gt;ssh demo.example.com&lt;/kbd&gt;
+Last login: Tue Apr 12 09:10:17 2005 from mowmow.example.com on pts/1
+Linux demo 2.6.10-grsec+gg3+e+fhs6b+nfs+gr0501+++p3+c4a+gr2b-reslog-v6.189 #1 SMP Tue Feb 1 11:22:36 PST 2005 i686 unknown
+
+&lt;span class="prompt"&gt;jdoe@demo:~$&lt;/span&gt; &lt;span class="cursor"&gt;_&lt;/span&gt;&lt;/samp&gt;&lt;/pre&gt;</pre>
+ </div>
+
+
+ <h4 id=the-kbd-element><span class=secno>4.6.14 </span>The <dfn><code>kbd</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-kbd-element>kbd</a></code> element <a href=#represents>represents</a> user input
+ (typically keyboard input, although it may also be used to represent
+ other input, such as voice commands).</p>
+
+ <p>When the <code><a href=#the-kbd-element>kbd</a></code> element is nested inside a
+ <code><a href=#the-samp-element>samp</a></code> element, it represents the input as it was echoed
+ by the system.</p>
+
+ <p>When the <code><a href=#the-kbd-element>kbd</a></code> element <em>contains</em> a
+ <code><a href=#the-samp-element>samp</a></code> element, it represents input based on system
+ output, for example invoking a menu item.</p>
+
+ <p>When the <code><a href=#the-kbd-element>kbd</a></code> element is nested inside another
+ <code><a href=#the-kbd-element>kbd</a></code> element, it represents an actual key or other
+ single unit of input as appropriate for the input mechanism.</p>
+
+ <div class=example>
+ <p>Here the <code><a href=#the-kbd-element>kbd</a></code> element is used to indicate keys to press:</p>
+ <pre>&lt;p&gt;To make George eat an apple, press &lt;kbd&gt;&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;F3&lt;/kbd&gt;&lt;/kbd&gt;&lt;/p&gt;</pre>
+
+ <p>In this second example, the user is told to pick a particular
+ menu item. The outer <code><a href=#the-kbd-element>kbd</a></code> element marks up a block of
+ input, with the inner <code><a href=#the-kbd-element>kbd</a></code> elements representing each
+ individual step of the input, and the <code><a href=#the-samp-element>samp</a></code> elements
+ inside them indicating that the steps are input based on something
+ being displayed by the system, in this case menu labels:</p>
+
+ <pre>&lt;p&gt;To make George eat an apple, select
+ &lt;kbd&gt;&lt;kbd&gt;&lt;samp&gt;File&lt;/samp&gt;&lt;/kbd&gt;|&lt;kbd&gt;&lt;samp&gt;Eat Apple...&lt;/samp&gt;&lt;/kbd&gt;&lt;/kbd&gt;
+&lt;/p&gt;</pre>
+
+ <p>Such precision isn't necessary; the following is equally fine:</p>
+
+ <pre>&lt;p&gt;To make George eat an apple, select &lt;kbd&gt;File | Eat Apple...&lt;/kbd&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-sub-and-sup-elements><span class=secno>4.6.15 </span>The <dfn id=the-sub-element><code>sub</code></dfn> and <dfn id=the-sup-element><code>sup</code></dfn> elements</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Use <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-sub-and-sup-elements>sup</a></code> element <a href=#represents>represents</a> a
+ superscript and the <code><a href=#the-sub-and-sup-elements>sub</a></code> element <a href=#represents>represents</a>
+ a subscript.</p>
+
+ <p>These elements must be used only to mark up typographical
+ conventions with specific meanings, not for typographical
+ presentation for presentation's sake. For example, it would be
+ inappropriate for the <code><a href=#the-sub-and-sup-elements>sub</a></code> and <code><a href=#the-sub-and-sup-elements>sup</a></code> elements
+ to be used in the name of the LaTeX document preparation system. In
+ general, authors should use these elements only if the
+ <em>absence</em> of those elements would change the meaning of the
+ content.</p>
+
+ <p>In certain languages, superscripts are part of the typographical
+ conventions for some abbreviations.</p>
+
+ <div class=example>
+ <pre>&lt;p&gt;The most beautiful women are
+&lt;span lang="fr"&gt;&lt;abbr&gt;M&lt;sup&gt;lle&lt;/sup&gt;&lt;/abbr&gt; Gwendoline&lt;/span&gt; and
+&lt;span lang="fr"&gt;&lt;abbr&gt;M&lt;sup&gt;me&lt;/sup&gt;&lt;/abbr&gt; Denise&lt;/span&gt;.&lt;/p&gt;</pre>
+ </div>
+
+ <p>The <code><a href=#the-sub-and-sup-elements>sub</a></code> element can be used inside a
+ <code><a href=#the-var-element>var</a></code> element, for variables that have subscripts.</p>
+
+ <div class=example>
+
+ <p>Here, the <code><a href=#the-sub-and-sup-elements>sub</a></code> element is used to represents the
+ subscript that identifies the variable in a family of
+ variables:</p>
+
+ <pre>&lt;p&gt;The coordinate of the &lt;var&gt;i&lt;/var&gt;th point is
+(&lt;var&gt;x&lt;sub&gt;&lt;var&gt;i&lt;/var&gt;&lt;/sub&gt;&lt;/var&gt;, &lt;var&gt;y&lt;sub&gt;&lt;var&gt;i&lt;/var&gt;&lt;/sub&gt;&lt;/var&gt;).
+For example, the 10th point has coordinate
+(&lt;var&gt;x&lt;sub&gt;10&lt;/sub&gt;&lt;/var&gt;, &lt;var&gt;y&lt;sub&gt;10&lt;/sub&gt;&lt;/var&gt;).&lt;/p&gt;</pre>
+ </div>
+
+ <p>Mathematical expressions often use subscripts and superscripts.
+ Authors are encouraged to use MathML for marking up mathematics, but
+ authors may opt to use <code><a href=#the-sub-and-sup-elements>sub</a></code> and <code><a href=#the-sub-and-sup-elements>sup</a></code> if
+ detailed mathematical markup is not desired. <a href=#refsMATHML>[MATHML]</a></p>
+
+ <div class=example>
+ <pre>&lt;var&gt;E&lt;/var&gt;=&lt;var&gt;m&lt;/var&gt;&lt;var&gt;c&lt;/var&gt;&lt;sup&gt;2&lt;/sup&gt;</pre>
+ <pre>f(&lt;var&gt;x&lt;/var&gt;, &lt;var&gt;n&lt;/var&gt;) = log&lt;sub&gt;4&lt;/sub&gt;&lt;var&gt;x&lt;/var&gt;&lt;sup&gt;&lt;var&gt;n&lt;/var&gt;&lt;/sup&gt;</pre>
+ </div>
+
+
+
+ <h4 id=the-i-element><span class=secno>4.6.16 </span>The <dfn><code>i</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-i-element>i</a></code> element <a href=#represents>represents</a> a span of text
+ in an alternate voice or mood, or otherwise offset from the normal
+ prose in a manner indicating a different quality of text, such as a
+ taxonomic designation, a technical term, an idiomatic phrase from
+ another language, a thought, or a ship name in Western texts.</p>
+
+ <p>Terms in languages different from the main text should be
+ annotated with <code title=attr-lang><a href=#attr-lang>lang</a></code> attributes (or,
+ in XML, <a href=#attr-xml-lang title=attr-xml-lang><code title="">lang</code>
+ attributes in the <span>XML namespace</span></a>).</p>
+
+ <div class=example>
+ <p>The examples below show uses of the <code><a href=#the-i-element>i</a></code> element:</p>
+ <pre>&lt;p&gt;The &lt;i class="taxonomy"&gt;Felis silvestris catus&lt;/i&gt; is cute.&lt;/p&gt;
+&lt;p&gt;The term &lt;i&gt;prose content&lt;/i&gt; is defined above.&lt;/p&gt;
+&lt;p&gt;There is a certain &lt;i lang="fr"&gt;je ne sais quoi&lt;/i&gt; in the air.&lt;/p&gt;</pre>
+ <p>In the following example, a dream sequence is marked up using
+ <code><a href=#the-i-element>i</a></code> elements.</p>
+ <pre>&lt;p&gt;Raymond tried to sleep.&lt;/p&gt;
+&lt;p&gt;&lt;i&gt;The ship sailed away on Thursday&lt;/i&gt;, he
+dreamt. &lt;i&gt;The ship had many people aboard, including a beautiful
+princess called Carey. He watched her, day-in, day-out, hoping she
+would notice him, but she never did.&lt;/i&gt;&lt;/p&gt;
+&lt;p&gt;&lt;i&gt;Finally one night he picked up the courage to speak with
+her&mdash;&lt;/i&gt;&lt;/p&gt;
+&lt;p&gt;Raymond woke with a start as the fire alarm rang out.&lt;/p&gt;</pre>
+ </div>
+
+ <p>Authors can use the <code title=attr-class><a href=#classes>class</a></code>
+ attribute on the <code><a href=#the-i-element>i</a></code> element to identify why the element
+ is being used, so that if the style of a particular use (e.g. dream
+ sequences as opposed to taxonomic terms) is to be changed at a later
+ date, the author doesn't have to go through the entire document (or
+ series of related documents) annotating each use.</p>
+
+ <p>Authors are encouraged to consider whether other elements might
+ be more applicable than the <code><a href=#the-i-element>i</a></code> element, for instance the
+ <code><a href=#the-em-element>em</a></code> element for marking up stress emphasis, or the
+ <code><a href=#the-dfn-element>dfn</a></code> element to mark up the defining instance of a
+ term.</p>
+
+ <p class=note>Style sheets can be used to format <code><a href=#the-i-element>i</a></code>
+ elements, just like any other element can be restyled. Thus, it is
+ not the case that content in <code><a href=#the-i-element>i</a></code> elements will
+ necessarily be italicized.</p>
+
+
+ <h4 id=the-b-element><span class=secno>4.6.17 </span>The <dfn><code>b</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-b-element>b</a></code> element <a href=#represents>represents</a> a span of text
+ to which attention is being drawn for utilitarian purposes without
+ conveying any extra importance and with no implication of an
+ alternate voice or mood, such as key words in a document abstract,
+ product names in a review, actionable words in interactive
+ text-driven software, or an article lede.</p>
+
+ <div class=example>
+ <p>The following example shows a use of the <code><a href=#the-b-element>b</a></code> element
+ to highlight key words without marking them up as important:</p>
+ <pre>&lt;p&gt;The &lt;b&gt;frobonitor&lt;/b&gt; and &lt;b&gt;barbinator&lt;/b&gt; components are fried.&lt;/p&gt;</pre>
+ </div>
+
+ <div class=example>
+ <p>In the following example, objects in a text adventure are
+ highlighted as being special by use of the <code><a href=#the-b-element>b</a></code>
+ element.</p>
+ <pre>&lt;p&gt;You enter a small room. Your &lt;b&gt;sword&lt;/b&gt; glows
+brighter. A &lt;b&gt;rat&lt;/b&gt; scurries past the corner wall.&lt;/p&gt;</pre>
+ </div>
+
+ <div class=example>
+ <p>Another case where the <code><a href=#the-b-element>b</a></code> element is appropriate is
+ in marking up the lede (or lead) sentence or paragraph. The
+ following example shows how a <a href=http://news.bbc.co.uk/2/hi/uk_news/scotland/north_east/7101506.stm>BBC
+ article about kittens adopting a rabbit as their own</a> could be
+ marked up:</p>
+ <pre>&lt;article&gt;
+ &lt;h2&gt;Kittens 'adopted' by pet rabbit&lt;/h2&gt;
+ &lt;p&gt;&lt;b class="lede"&gt;Six abandoned kittens have found an
+ unexpected new mother figure &mdash; a pet rabbit.&lt;/b&gt;&lt;/p&gt;
+ &lt;p&gt;Veterinary nurse Melanie Humble took the three-week-old
+ kittens to her Aberdeen home.&lt;/p&gt;
+<i>[...]</i></pre>
+ </div>
+
+ <p>As with the <code><a href=#the-i-element>i</a></code> element, authors can use the <code title=attr-class><a href=#classes>class</a></code> attribute on the <code><a href=#the-b-element>b</a></code>
+ element to identify why the element is being used, so that if the
+ style of a particular use is to be changed at a later date, the
+ author doesn't have to go through annotating each use.</p>
+
+ <p>The <code><a href=#the-b-element>b</a></code> element should be used as a last resort when
+ no other element is more appropriate. In particular, headings should
+ use the <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> to <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> elements, stress emphasis
+ should use the <code><a href=#the-em-element>em</a></code> element, importance should be denoted
+ with the <code><a href=#the-strong-element>strong</a></code> element, and text marked or highlighted
+ should use the <code><a href=#the-mark-element>mark</a></code> element.</p>
+
+ <div class=example>
+ <p>The following would be <em>incorrect</em> usage:</p>
+ <pre class=bad>&lt;p&gt;&lt;b&gt;WARNING!&lt;/b&gt; Do not frob the barbinator!&lt;/p&gt;</pre>
+ <p>In the previous example, the correct element to use would have
+ been <code><a href=#the-strong-element>strong</a></code>, not <code><a href=#the-b-element>b</a></code>.</p>
+ </div>
+
+ <p class=note>Style sheets can be used to format <code><a href=#the-b-element>b</a></code>
+ elements, just like any other element can be restyled. Thus, it is
+ not the case that content in <code><a href=#the-b-element>b</a></code> elements will
+ necessarily be boldened.</p>
+
+
+
+ <h4 id=the-u-element><span class=secno>4.6.18 </span>The <dfn><code>u</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-u-element>u</a></code> element <a href=#represents>represents</a> a span of text
+ with an unarticulated, though explicitly rendered, non-textual
+ annotation, such as labeling the text as being a proper name in
+ Chinese text (a Chinese proper name mark), or labeling the text as
+ being misspelt.</p>
+
+ <p>In most cases, another element is likely to be more appropriate:
+ for marking stress emphasis, the <code><a href=#the-em-element>em</a></code> element should be
+ used; for marking key words or phrases either the <code><a href=#the-b-element>b</a></code>
+ element or the <code><a href=#the-mark-element>mark</a></code> element should be used, depending
+ on the context; for marking book titles, the <code><a href=#the-cite-element>cite</a></code>
+ element should be used<!-- even for the Chinese wavy underline 'book
+ title mark' -->; for labeling text with explicit textual
+ annotations, the <code><a href=#the-ruby-element>ruby</a></code> element should be used; for
+ labeling ship names in Western texts, the <code><a href=#the-i-element>i</a></code> element
+ should be used.</p>
+
+ <p class=note>The default rendering of the <code><a href=#the-u-element>u</a></code> element
+ in visual presentations clashes with the conventional rendering of
+ hyperlinks (underlining). Authors are encouraged to avoid using the
+ <code><a href=#the-u-element>u</a></code> element where it could be confused for a
+ hyperlink.</p>
+
+
+
+
+ <h4 id=the-mark-element><span class=secno>4.6.19 </span>The <dfn><code>mark</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><!-- v2: attribute that means "highlight this on the scrollbar" --><p>The <code><a href=#the-mark-element>mark</a></code> element <a href=#represents>represents</a> a run of
+ text in one document marked or highlighted for reference purposes,
+ due to its relevance in another context. When used in a quotation or
+ other block of text referred to from the prose, it indicates a
+ highlight that was not originally present but which has been added
+ to bring the reader's attention to a part of the text that might not
+ have been considered important by the original author when the block
+ was originally written, but which is now under previously unexpected
+ scrutiny. When used in the main prose of a document, it indicates a
+ part of the document that has been highlighted due to its likely
+ relevance to the user's current activity.</p>
+
+ <div class=example>
+ <p>This example shows how the <code><a href=#the-mark-element>mark</a></code> element can be used
+ to bring attention to a particular part of a quotation:</p>
+ <pre>&lt;p lang="en-US"&gt;Consider the following quote:&lt;/p&gt;
+&lt;blockquote lang="en-GB"&gt;
+ &lt;p&gt;Look around and you will find, no-one's really
+ &lt;mark&gt;colour&lt;/mark&gt; blind.&lt;/p&gt;
+&lt;/blockquote&gt;
+&lt;p lang="en-US"&gt;As we can tell from the &lt;em&gt;spelling&lt;/em&gt; of the word,
+the person writing this quote is clearly not American.&lt;/p&gt;</pre>
+ <p>(If the goal was to mark the element as misspelt, however, the
+ <code><a href=#the-u-element>u</a></code> element, possibly with a class, would be more
+ appropriate.)</p>
+ </div>
+
+ <div class=example>
+
+ <p>Another example of the <code><a href=#the-mark-element>mark</a></code> element is highlighting
+ parts of a document that are matching some search string. If
+ someone looked at a document, and the server knew that the user was
+ searching for the word "kitten", then the server might return the
+ document with one paragraph modified as follows:</p>
+
+ <pre>&lt;p&gt;I also have some &lt;mark&gt;kitten&lt;/mark&gt;s who are visiting me
+these days. They're really cute. I think they like my garden! Maybe I
+should adopt a &lt;mark&gt;kitten&lt;/mark&gt;.&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following snippet, a paragraph of text refers to a
+ specific part of a code fragment.</p>
+
+ <pre>&lt;p&gt;The highlighted part below is where the error lies:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;var i: Integer;
+begin
+ i := &lt;mark&gt;1.1&lt;/mark&gt;;
+end.&lt;/code&gt;&lt;/pre&gt;</pre>
+
+ <p>This is separate from <em>syntax highlighting</em>, for which
+ <code><a href=#the-span-element>span</a></code> is more appropriate. Combining both, one would
+ get:</p>
+
+ <pre>&lt;p&gt;The highlighted part below is where the error lies:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;&lt;span class=keyword&gt;var&lt;/span&gt; &lt;span class=ident&gt;i&lt;/span&gt;: &lt;span class=type&gt;Integer&lt;/span&gt;;
+&lt;span class=keyword&gt;begin&lt;/span&gt;
+ &lt;span class=ident&gt;i&lt;/span&gt; := &lt;span class=literal&gt;&lt;mark&gt;1.1&lt;/mark&gt;&lt;/span&gt;;
+&lt;span class=keyword&gt;end&lt;/span&gt;.&lt;/code&gt;&lt;/pre&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>This is another example showing the use of <code><a href=#the-mark-element>mark</a></code> to
+ highlight a part of quoted text that was originally not
+ emphasized. In this example, common typographic conventions have
+ led the author to explicitly style <code><a href=#the-mark-element>mark</a></code> elements in
+ quotes to render in italics.</p>
+
+ <pre>&lt;article&gt;
+ &lt;style scoped&gt;
+ blockquote mark, q mark {
+ font: inherit; font-style: italic;
+ text-decoration: none;
+ background: transparent; color: inherit;
+ }
+ .bubble em {
+ font: inherit; font-size: larger;
+ text-decoration: underline;
+ }
+ &lt;/style&gt;
+ &lt;h1&gt;She knew&lt;/h1&gt;
+ &lt;p&gt;Did you notice the subtle joke in the joke on panel 4?&lt;/p&gt;
+ &lt;blockquote&gt;
+ &lt;p class="bubble"&gt;I didn't &lt;em&gt;want&lt;/em&gt; to believe. &lt;mark&gt;Of course
+ on some level I realized it was a known-plaintext attack.&lt;/mark&gt; But I
+ couldn't admit it until I saw for myself.&lt;/p&gt;
+ &lt;/blockquote&gt;
+ &lt;p&gt;(Emphasis mine.) I thought that was great. It's so pedantic, yet it
+ explains everything neatly.&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+ <p>Note, incidentally, the distinction between the <code><a href=#the-em-element>em</a></code>
+ element in this example, which is part of the original text being
+ quoted, and the <code><a href=#the-mark-element>mark</a></code> element, which is highlighting a
+ part for comment.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows the difference between denoting the
+ <em>importance</em> of a span of text (<code><a href=#the-strong-element>strong</a></code>) as
+ opposed to denoting the <em>relevance</em> of a span of text
+ (<code><a href=#the-mark-element>mark</a></code>). It is an extract from a textbook, where the
+ extract has had the parts relevant to the exam highlighted. The
+ safety warnings, important though they may be, are apparently not
+ relevant to the exam.</p>
+
+ <pre>&lt;h3&gt;Wormhole Physics Introduction&lt;/h3&gt;
+
+&lt;p&gt;&lt;mark&gt;A wormhole in normal conditions can be held open for a
+maximum of just under 39 minutes.&lt;/mark&gt; Conditions that can increase
+the time include a powerful energy source coupled to one or both of
+the gates connecting the wormhole, and a large gravity well (such as a
+black hole).&lt;/p&gt;
+
+&lt;p&gt;&lt;mark&gt;Momentum is preserved across the wormhole. Electromagnetic
+radiation can travel in both directions through a wormhole,
+but matter cannot.&lt;/mark&gt;&lt;/p&gt;
+
+&lt;p&gt;When a wormhole is created, a vortex normally forms.
+&lt;strong&gt;Warning: The vortex caused by the wormhole opening will
+annihilate anything in its path.&lt;/strong&gt; Vortexes can be avoided when
+using sufficiently advanced dialing technology.&lt;/p&gt;
+
+&lt;p&gt;&lt;mark&gt;An obstruction in a gate will prevent it from accepting a
+wormhole connection.&lt;/mark&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-ruby-element><span class=secno>4.6.20 </span>The <dfn><code>ruby</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>One or more groups of: <a href=#phrasing-content>phrasing content</a> followed either by a single <code><a href=#the-rt-element>rt</a></code> element, or an <code><a href=#the-rp-element>rp</a></code> element, an <code><a href=#the-rt-element>rt</a></code> element, and another <code><a href=#the-rp-element>rp</a></code> element.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-ruby-element>ruby</a></code> element allows one or more spans of
+ phrasing content to be marked with ruby annotations. Ruby
+ annotations are short runs of text presented alongside base text,
+ primarily used in East Asian typography as a guide for
+ pronunciation or to include other annotations. In Japanese, this
+ form of typography is also known as <i>furigana</i>.</p>
+
+ <p>A <code><a href=#the-ruby-element>ruby</a></code> element <a href=#represents>represents</a> the spans of
+ phrasing content it contains, ignoring all the child <code><a href=#the-rt-element>rt</a></code>
+ and <code><a href=#the-rp-element>rp</a></code> elements and their descendants. Those spans of
+ phrasing content have associated annotations created using the
+ <code><a href=#the-rt-element>rt</a></code> element.</p>
+
+ <div class=example>
+
+ <!-- this is the hiragana for the word "kanji" ("chinese character") in japanese -->
+ <!-- in japanese, ruby-like typography is called "furigana" -->
+
+ <p>In this example, each ideograph in the Japanese text <span lang=ja title="">&#28450;&#23383;</span> is annotated with its
+ reading in hiragana.</p>
+
+ <pre lang=ja>...
+&lt;ruby&gt;&#28450;&lt;rt&gt;&#12363;&#12435;&lt;/rt&gt;&#23383;&lt;rt&gt;&#12376;&lt;/rt&gt;&lt;/ruby&gt;
+...</pre>
+
+ <p>This might be rendered as:</p>
+
+ <p><img alt="The two main ideographs, each with its annotation in hiragana rendered in a smaller font above it." height=78 src=greenbox.png width=171></p>
+
+ </div>
+
+ <div class=example>
+
+ <!-- this is the bopomofo for the word "hanzi" ("chinese character") in traditional chinese, as used in taiwan -->
+
+ <p>In this example, each ideograph in the traditional Chinese text
+ <span lang=zh-TW title="">&#28450;&#23383;</span> is annotated
+ with its bopomofo reading.</p>
+
+ <pre lang=zh-TW>&lt;ruby&gt;&#28450;&lt;rt&gt;&#12559;&#12578;&#715;&lt;/rt&gt;&#23383;&lt;rt&gt;&#12567;&#715;&lt;/rt&gt;&lt;/ruby&gt;</pre>
+
+ <p>This might be rendered as:</p>
+
+ <p><img alt="The two main ideographs, each with its bopomofo annotation rendered in a smaller font next to it." height=100 src=greenbox.png width=78></p>
+
+ </div>
+
+ <div class=example>
+
+ <!-- this is the pinyin for the word "hanzi" ("chinese character") in simplified chinese, as used in mainland china -->
+
+ <p>In this example, each ideograph in the simplified Chinese text
+ <span lang=zh-CN title="">&#27721;&#23383;</span> is annotated
+ with its pinyin reading.</p>
+
+ <pre lang=zh-CN>...&lt;ruby&gt;&#27721;&lt;rt&gt;h&agrave;n&lt;/rt&gt;&#23383;&lt;rt&gt;z&igrave;&lt;/rt&gt;&lt;/ruby&gt;...</pre>
+
+ <p>This might be rendered as:</p>
+
+ <p><img alt="The two main ideographs, each with its pinyin annotation rendered in a smaller font above it." height=79 src=greenbox.png width=173></p>
+
+ </div>
+
+ <!-- Note: Examples are 32px/16px Stone Sans Sem ITC TT -->
+
+
+ <h4 id=the-rt-element><span class=secno>4.6.21 </span>The <dfn><code>rt</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-ruby-element>ruby</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-rt-element>rt</a></code> element marks the ruby text component of a
+ ruby annotation.</p>
+
+ <p>An <code><a href=#the-rt-element>rt</a></code> element <span class=impl>that is a child of
+ a <code><a href=#the-ruby-element>ruby</a></code> element</span> <a href=#represents>represents</a> an
+ annotation (given by its children) for the zero or more nodes of
+ phrasing content that immediately precedes it in the
+ <code><a href=#the-ruby-element>ruby</a></code> element, ignoring <code><a href=#the-rp-element>rp</a></code> elements.</p>
+
+ <div class=impl>
+
+ <p>An <code><a href=#the-rt-element>rt</a></code> element that is not a child of a
+ <code><a href=#the-ruby-element>ruby</a></code> element represents the same thing as its
+ children.</p>
+
+ </div>
+
+
+ <h4 id=the-rp-element><span class=secno>4.6.22 </span>The <dfn><code>rp</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-ruby-element>ruby</a></code> element, either immediately before or immediately after an <code><a href=#the-rt-element>rt</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+<!--
+ <dd>If the <code>rp</code> element is immediately after an <code>rt</code> element that is immediately preceded by another <code>rp</code> element: a single character from Unicode character class Pe.</dd>
+ <dd>Otherwise: a single character from Unicode character class Ps.</dd>
+-->
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-rp-element>rp</a></code> element can be used to provide parentheses
+ around a ruby text component of a ruby annotation, to be shown by
+ user agents that don't support ruby annotations.</p>
+
+ <p>An <code><a href=#the-rp-element>rp</a></code> element <span class=impl>that is a child of
+ a <code><a href=#the-ruby-element>ruby</a></code> element</span> <a href=#represents>represents</a>
+ nothing<span class=impl> and its contents must be
+ ignored</span>. <span class=impl>An <code><a href=#the-rp-element>rp</a></code> element whose
+ parent element is not a <code><a href=#the-ruby-element>ruby</a></code> element
+ <a href=#represents>represents</a> its children.</span></p>
+
+ <div class=example>
+
+ <p>The example above, in which each ideograph in the text <span lang=ja title="">&#28450;&#23383;</span> is annotated with its
+ phonetic reading, could be expanded to use <code><a href=#the-rp-element>rp</a></code> so that in
+ legacy user agents the readings are in parentheses:</p>
+
+ <pre lang=ja>...
+&lt;ruby&gt;
+ &#28450; &lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;&#12363;&#12435;&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;
+ &#23383; &lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;&#12376;&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;
+&lt;/ruby&gt;
+...</pre>
+
+ <p>In conforming user agents the rendering would be as above, but
+ in user agents that do not support ruby, the rendering would
+ be:</p>
+
+ <pre lang=ja>... &#28450; (&#12363;&#12435;) &#23383; (&#12376;) ...</pre>
+
+ </div>
+
+
+ <h4 id=the-bdi-element><span class=secno>4.6.23 </span>The <dfn><code>bdi</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd>Also, the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> global attribute has special semantics on this element.</dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-bdi-element>bdi</a></code> element <a href=#represents>represents</a> a span of
+ text that is to be isolated from its surroundings for the purposes
+ of bidirectional text formatting. <a href=#refsBIDI>[BIDI]</a></p>
+
+ <p class=note>The <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> global
+ attribute defaults to <code title=attr-dir-auto><a href=#attr-dir-auto>auto</a></code> on
+ this element (it never inherits from the parent element like with
+ other elements).</p>
+
+ <div class=impl>
+
+ <p>For the purposes of applying the bidirectional algorithm to the
+ contents of a <code><a href=#the-bdi-element>bdi</a></code> element, user agents must treat the
+ element as a paragraph-level container.</p>
+
+ <p>For the purposes of applying the bidirectional algorithm to the
+ paragraph-level container that a <code><a href=#the-bdi-element>bdi</a></code> element finds
+ itself within, the <code><a href=#the-bdi-element>bdi</a></code> element must be treated like a
+ U+FFFC OBJECT REPLACEMENT CHARACTER (in the same manner that an
+ image or other inline object is handled).</p>
+
+ <p>The requirements on handling the <code><a href=#the-bdi-element>bdi</a></code> element for the
+ bidirectional algorithm may be implemented indirectly through the
+ style layer. For example, an HTML+CSS user agent could implement
+ these requirements by implementing the CSS 'unicode-bidi' property.
+ <a href=#refsCSS>[CSS]</a></p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This element is especially useful when embedding user-generated
+ content with an unknown directionality.</p>
+
+ <p>In this example, usernames are shown along with the number of
+ posts that the user has submitted. If the <code><a href=#the-bdi-element>bdi</a></code> element
+ were not used, the username of the Arabic user would end up
+ confusing the text (the bidirectional algorithm would put the colon
+ and the number "3" next to the word "User" rather than next to the
+ word "posts").</p>
+
+ <pre>&lt;ul&gt;
+ &lt;li&gt;User &lt;bdi&gt;jcranmer&lt;/bdi&gt;: 12 posts.
+ &lt;li&gt;User &lt;bdi&gt;hober&lt;/bdi&gt;: 5 posts.
+ &lt;li&gt;User &lt;bdi&gt;<bdo dir=rtl>&#1573;&#1610;&#1575;&#1606;</bdo>&lt;/bdi&gt;: 3 posts.
+&lt;/ul&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-bdo-element><span class=secno>4.6.24 </span>The <dfn><code>bdo</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd>Also, the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> global attribute has special semantics on this element.</dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-bdo-element>bdo</a></code> element <a href=#represents>represents</a> explicit
+ text directionality formatting control for its children. It allows
+ authors to override the Unicode bidirectional algorithm by
+ explicitly specifying a direction override. <a href=#refsBIDI>[BIDI]</a></p>
+
+ <p>Authors must specify the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code>
+ attribute on this element, with the value <code>ltr</code> to
+ specify a left-to-right override and with the value <code>rtl</code>
+ to specify a right-to-left override.</p>
+
+ <div class=impl>
+
+ <p>If the element's <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute is
+ in the <i title=attr-dir-rtl-state><a href=#attr-dir-rtl-state>rtl</a></i> state, then for the
+ purposes of the bidirectional algorithm, the user agent must act as
+ if there was a U+202D LEFT-TO-RIGHT OVERRIDE character at the start
+ of the element, and a U+202C POP DIRECTIONAL FORMATTING at the end
+ of the element.</p>
+
+ <p>If the element's <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute is
+ in the <i title=attr-dir-ltr-state><a href=#attr-dir-ltr-state>ltr</a></i>, then for the purposes
+ of the bidirectional algorithm, the user agent must act as if there
+ was a U+202E RIGHT-TO-LEFT OVERRIDE character at the start of the
+ element, and a U+202C POP DIRECTIONAL FORMATTING at the end of the
+ element.</p>
+
+ <p>The requirements on handling the <code><a href=#the-bdo-element>bdo</a></code> element for the
+ bidirectional algorithm may be implemented indirectly through the
+ style layer. For example, an HTML+CSS user agent could implement
+ these requirements by implementing the CSS 'unicode-bidi' property.
+ <a href=#refsCSS>[CSS]</a></p>
+
+ </div>
+
+
+
+ <h4 id=the-span-element><span class=secno>4.6.25 </span>The <dfn><code>span</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlspanelement>HTMLSpanElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-span-element>span</a></code> element doesn't mean anything on its own,
+ but can be useful when used together with the <a href=#global-attributes>global
+ attributes</a>, e.g. <code title=attr-class><a href=#classes>class</a></code>, <code title=attr-lang><a href=#attr-lang>lang</a></code>, or <code title=attr-dir><a href=#the-dir-attribute>dir</a></code>.
+ It <a href=#represents>represents</a> its children.</p>
+
+ <div class=example>
+
+ <p>In this example, a code fragment is marked up using
+ <code><a href=#the-span-element>span</a></code> elements and <code title=attr-class><a href=#classes>class</a></code> attributes so that its keywords and
+ identifiers can be color-coded from CSS:</p>
+
+ <!-- extract from http://www.cs.cmu.edu/~dst/DeCSS/Gallery/vlc-dvd_css-c.txt -->
+
+ <pre>&lt;pre&gt;&lt;code class="lang-c"&gt;&lt;span class="keyword"&gt;for&lt;/span&gt; (&lt;span class="ident"&gt;j&lt;/span&gt; = 0; &lt;span class="ident"&gt;j&lt;/span&gt; &amp;lt; 256; &lt;span class="ident"&gt;j&lt;/span&gt;++) {
+ &lt;span class="ident"&gt;i_t3&lt;/span&gt; = (&lt;span class="ident"&gt;i_t3&lt;/span&gt; &amp; 0x1ffff) | (&lt;span class="ident"&gt;j&lt;/span&gt; &amp;lt;&amp;lt; 17);
+ &lt;span class="ident"&gt;i_t6&lt;/span&gt; = (((((((&lt;span class="ident"&gt;i_t3&lt;/span&gt; &gt;&gt; 3) ^ &lt;span class="ident"&gt;i_t3&lt;/span&gt;) &gt;&gt; 1) ^ &lt;span class="ident"&gt;i_t3&lt;/span&gt;) &gt;&gt; 8) ^ &lt;span class="ident"&gt;i_t3&lt;/span&gt;) &gt;&gt; 5) &amp; 0xff;
+ &lt;span class="keyword"&gt;if&lt;/span&gt; (&lt;span class="ident"&gt;i_t6&lt;/span&gt; == &lt;span class="ident"&gt;i_t1&lt;/span&gt;)
+ &lt;span class="keyword"&gt;break&lt;/span&gt;;
+}&lt;/code&gt;&lt;/pre&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-br-element><span class=secno>4.6.26 </span>The <dfn><code>br</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlbrelement>HTMLBRElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-br-element>br</a></code> element <a href=#represents>represents</a> a line
+ break.</p>
+
+ <p class=note>While line breaks are usually represented in visual
+ media by physically moving subsequent text to a new line, a style
+ sheet or user agent would be equally justified in causing line
+ breaks to be rendered in a different manner, for instance as green
+ dots, or as extra spacing.</p>
+
+ <p><code><a href=#the-br-element>br</a></code> elements must be used only for line breaks that
+ are actually part of the content, as in poems or addresses.</p>
+
+ <div class=example>
+
+ <p>The following example is correct usage of the <code><a href=#the-br-element>br</a></code>
+ element:</p>
+
+ <pre>&lt;p&gt;P. Sherman&lt;br&gt;
+42 Wallaby Way&lt;br&gt;
+Sydney&lt;/p&gt;</pre>
+
+ </div>
+
+ <p><code><a href=#the-br-element>br</a></code> elements must not be used for separating thematic
+ groups in a paragraph.</p>
+
+ <div class=example>
+
+ <p>The following examples are non-conforming, as they abuse the
+ <code><a href=#the-br-element>br</a></code> element:</p>
+
+ <pre>&lt;p&gt;&lt;a ...&gt;34 comments.&lt;/a&gt;&lt;br&gt;
+&lt;a ...&gt;Add a comment.&lt;/a&gt;&lt;/p&gt;</pre>
+
+ <pre>&lt;p&gt;&lt;label&gt;Name: &lt;input name="name"&gt;&lt;/label&gt;&lt;br&gt;
+&lt;label&gt;Address: &lt;input name="address"&gt;&lt;/label&gt;&lt;/p&gt;</pre>
+
+ <p>Here are alternatives to the above, which are correct:</p>
+
+ <pre>&lt;p&gt;&lt;a ...&gt;34 comments.&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a ...&gt;Add a comment.&lt;/a&gt;&lt;/p&gt;</pre>
+
+ <pre>&lt;p&gt;&lt;label&gt;Name: &lt;input name="name"&gt;&lt;/label&gt;&lt;/p&gt;
+&lt;p&gt;&lt;label&gt;Address: &lt;input name="address"&gt;&lt;/label&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+ <p>If a <a href=#paragraph>paragraph</a> consists of nothing but a single
+ <code><a href=#the-br-element>br</a></code> element, it represents a placeholder blank line
+ (e.g. as in a template). Such blank lines must not be used for
+ presentation purposes.</p>
+
+ <div class=impl>
+
+ <p>Any content inside <code><a href=#the-br-element>br</a></code> elements must not be
+ considered part of the surrounding text.</p>
+
+ <p>A <code><a href=#the-br-element>br</a></code> element should separate paragraphs for the
+ purposes of the Unicode bidirectional algorithm. This requirement
+ may be implemented indirectly through the style layer. For example,
+ an HTML+CSS user agent could implement these requirements by
+ implementing the CSS 'unicode-bidi' property. <a href=#refsBIDI>[BIDI]</a> <a href=#refsCSS>[CSS]</a></p>
+
+
+ </div>
+
+
+ <h4 id=the-wbr-element><span class=secno>4.6.27 </span>The <dfn><code>wbr</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-wbr-element>wbr</a></code> element <a href=#represents>represents</a> a line break
+ opportunity.</p>
+
+ <div class=example>
+
+ <p>In the following example, someone is quoted as saying something
+ which, for effect, is written as one long word. However, to ensure
+ that the text can be wrapped in a readable fashion, the individual
+ words in the quote are separated using a <code><a href=#the-wbr-element>wbr</a></code>
+ element.</p>
+
+ <pre>&lt;p&gt;So then he pointed at the tiger and screamed
+"there&lt;wbr&gt;is&lt;wbr&gt;no&lt;wbr&gt;way&lt;wbr&gt;you&lt;wbr&gt;are&lt;wbr&gt;ever&lt;wbr&gt;going&lt;wbr&gt;to&lt;wbr&gt;catch&lt;wbr&gt;me"!&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here, especially long lines of code in a program listing have
+ suggested wrapping points given using <code><a href=#the-wbr-element>wbr</a></code>
+ elements.</p>
+
+ <pre>&lt;pre&gt;...
+Heading heading = Helm.HeadingFactory(HeadingCoordinates[1], &lt;wbr&gt;HeadingCoordinates[2], &lt;wbr&gt;HeadingCoordinates[3], &lt;wbr&gt;HeadingCoordinates[4]);
+Course course = Helm.CourseFactory(Heading, &lt;wbr&gt;Maps.MapFactoryFromHeading(heading), &lt;wbr&gt;Speeds.GetMaximumSpeed().ConvertToWarp());
+...&lt;/pre&gt;</pre>
+
+ </div>
+
+ <div class=impl>
+
+ <p>Any content inside <code><a href=#the-wbr-element>wbr</a></code> elements must not be
+ considered part of the surrounding text.</p>
+
+ </div>
+
+
+
+ <h4 id=usage-summary><span class=secno>4.6.28 </span>Usage summary</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <table><thead><tr><th>Element
+ <th>Purpose
+ <th>Example
+ <tbody><tr><td><code><a href=#the-a-element>a</a></code>
+ <td>Hyperlinks
+ <td><pre class=example>Visit my <strong>&lt;a href="drinks.html"&gt;drinks&lt;/a&gt;</strong> page.</pre>
+
+ <tr><td><code><a href=#the-em-element>em</a></code>
+ <td>Stress emphasis
+ <td><pre class=example>I must say I <strong>&lt;em&gt;adore&lt;/em&gt;</strong> lemonade.</pre>
+
+ <tr><td><code><a href=#the-strong-element>strong</a></code>
+ <td>Importance
+ <td><pre class=example>This tea is <strong>&lt;strong&gt;very hot&lt;/strong&gt;</strong>.</pre>
+
+ <tr><td><code><a href=#the-small-element>small</a></code>
+ <td>Side comments
+ <td><pre class=example>These grapes are made into wine. <strong>&lt;small&gt;Alcohol is addictive.&lt;/small&gt;</strong></pre>
+
+ <tr><td><code><a href=#the-s-element>s</a></code>
+ <td>Inaccurate text
+ <td><pre class=example>Price: <strong>&lt;s&gt;&pound;4.50&lt;/s&gt;</strong> &pound;2.00!</pre>
+
+ <tr><td><code><a href=#the-cite-element>cite</a></code>
+ <td>Titles of works
+ <td><pre class=example>The case <strong>&lt;cite&gt;Hugo v. Danielle&lt;/cite&gt;</strong> is relevant here.</pre>
+
+ <tr><td><code><a href=#the-q-element>q</a></code>
+ <td>Quotations
+ <td><pre class=example>The judge said <strong>&lt;q&gt;You can drink water from the fish tank&lt;/q&gt;</strong> but advised against it.</pre>
+
+ <tr><td><code><a href=#the-dfn-element>dfn</a></code>
+ <td>Defining instance
+ <td><pre class=example>The term <strong>&lt;dfn&gt;organic food&lt;/dfn&gt;</strong> refers to food produced without synthetic chemicals.</pre>
+
+ <tr><td><code><a href=#the-abbr-element>abbr</a></code>
+ <td>Abbreviations
+ <td><pre class=example>Organic food in Ireland is certified by the <strong>&lt;abbr title="Irish Organic Farmers and Growers Association"&gt;IOFGA&lt;/abbr&gt;</strong>.</pre>
+
+ <tr><td><code><a href=#the-time-element>time</a></code>
+ <td>Date and/or time
+ <td><pre class=example>Published <strong>&lt;time&gt;2009-10-21&lt;/time&gt;</strong>.</pre>
+
+ <tr><td><code><a href=#the-code-element>code</a></code>
+ <td>Computer code
+ <td><pre class=example>The <strong>&lt;code&gt;fruitdb&lt;/code&gt;</strong> program can be used for tracking fruit production.</pre>
+
+ <tr><td><code><a href=#the-var-element>var</a></code>
+ <td>Variables
+ <td><pre class=example>If there are <strong>&lt;var&gt;n&lt;/var&gt;</strong> fruit in the bowl, at least <strong>&lt;var&gt;n&lt;/var&gt;</strong>&divide;2 will be ripe.</pre>
+
+ <tr><td><code><a href=#the-samp-element>samp</a></code>
+ <td>Computer output
+ <td><pre class=example>The computer said <strong>&lt;samp&gt;Unknown error -3&lt;/samp&gt;</strong>.</pre>
+
+ <tr><td><code><a href=#the-kbd-element>kbd</a></code>
+ <td>User input
+ <td><pre class=example>Hit <strong>&lt;kbd&gt;F1&lt;/kbd&gt;</strong> to continue.</pre>
+
+ <tr><td><code><a href=#the-sub-and-sup-elements>sub</a></code>
+ <td>Subscripts
+ <td><pre class=example>Water is H<strong>&lt;sub&gt;2&lt;/sub&gt;</strong>O.</pre>
+
+ <tr><td><code><a href=#the-sub-and-sup-elements>sup</a></code>
+ <td>Superscripts
+ <td><pre class=example>The Hydrogen in heavy water is usually <strong>&lt;sup&gt;2&lt;/sup&gt;</strong>H.</pre>
+
+ <tr><td><code><a href=#the-i-element>i</a></code>
+ <td>Alternative voice
+ <td><pre class=example>Lemonade consists primarily of <strong>&lt;i&gt;Citrus limon&lt;/i&gt;</strong>.</pre>
+
+ <tr><td><code><a href=#the-b-element>b</a></code>
+ <td>Keywords
+ <td><pre class=example>Take a <strong>&lt;b&gt;lemon&lt;/b&gt;</strong> and squeeze it with a <strong>&lt;b&gt;juicer&lt;/b&gt;</strong>.</pre>
+
+ <tr><td><code><a href=#the-u-element>u</a></code>
+ <td>Annotations
+ <td><pre class=example>The mixture of apple juice and &lt;u class="spelling"&gt;eldeflower&lt;/u&gt; juice is very pleasant.</pre>
+
+ <tr><td><code><a href=#the-mark-element>mark</a></code>
+ <td>Highlight
+ <td><pre class=example>Elderflower cordial, with one <strong>&lt;mark&gt;part&lt;/mark&gt;</strong> cordial to ten <strong>&lt;mark&gt;part&lt;/mark&gt;</strong>s water, stands a<strong>&lt;mark&gt;part&lt;/mark&gt;</strong> from the rest.</pre>
+
+ <tr><td><code><a href=#the-ruby-element>ruby</a></code>, <code><a href=#the-rt-element>rt</a></code>, <code><a href=#the-rp-element>rp</a></code>
+ <td>Ruby annotations
+ <td><pre class=example><strong>&lt;ruby&gt; OJ &lt;rp&gt;(&lt;rt&gt;Orange Juice&lt;rp&gt;)&lt;/ruby&gt;</strong></pre>
+
+ <tr><td><code><a href=#the-bdi-element>bdi</a></code>
+ <td>Text directionality isolation
+ <td><pre class=example>The recommended restaurant is <strong>&lt;bdi lang=""&gt;My Juice Caf&eacute; (At The Beach)&lt;/bdi&gt;</strong>.</pre>
+
+ <tr><td><code><a href=#the-bdo-element>bdo</a></code>
+ <td>Text directionality formatting
+ <td><pre class=example>The proposal is to write English, but in reverse order. "Juice" would become "<strong>&lt;bdo dir=rtl&gt;Juice&lt;/bdo&gt;</strong>"</pre>
+
+ <tr><td><code><a href=#the-span-element>span</a></code>
+ <td>Other
+ <td><pre class=example>In French we call it <strong>&lt;span lang="fr"&gt;sirop de sureau&lt;/span&gt;</strong>.</pre>
+
+ <tr><td><code><a href=#the-br-element>br</a></code>
+ <td>Line break
+ <td><pre class=example>Simply Orange Juice Company<strong>&lt;br&gt;</strong>Apopka, FL 32703<strong>&lt;br&gt;</strong>U.S.A.</pre>
+
+ <tr><td><code><a href=#the-wbr-element>wbr</a></code>
+ <td>Line breaking opportunity
+ <td><pre class=example>www.simply<strong>&lt;wbr&gt;</strong>orange<strong>&lt;wbr&gt;</strong>juice.com</pre>
+
+ </table><h3 id=edits><span class=secno>4.7 </span>Edits</h3>
+
+ <p>The <code><a href=#the-ins-element>ins</a></code> and <code><a href=#the-del-element>del</a></code> elements represent
+ edits to the document.</p>
+
+
+ <h4 id=the-ins-element><span class=secno>4.7.1 </span>The <dfn><code>ins</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd>When the element only contains <a href=#phrasing-content>phrasing content</a>: <a href=#phrasing-content>phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>When the element only contains <a href=#phrasing-content>phrasing content</a>: where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dd>Otherwise: where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#transparent>Transparent</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-mod-cite><a href=#attr-mod-cite>cite</a></code></dd>
+ <dd><code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses the <code><a href=#htmlmodelement>HTMLModElement</a></code> interface.</dd>
+ </dl><p>The <code><a href=#the-ins-element>ins</a></code> element <a href=#represents>represents</a> an addition
+ to the document.</p>
+
+ <div class=example>
+
+ <p>The following represents the addition of a single paragraph:</p>
+
+ <pre>&lt;aside&gt;
+ &lt;ins&gt;
+ &lt;p&gt; I like fruit. &lt;/p&gt;
+ &lt;/ins&gt;
+&lt;/aside&gt;</pre>
+
+ <p>As does this, because everything in the <code><a href=#the-aside-element>aside</a></code>
+ element here counts as <a href=#phrasing-content>phrasing content</a> and therefore
+ there is just one <a href=#paragraph>paragraph</a>:</p>
+
+ <pre>&lt;aside&gt;
+ &lt;ins&gt;
+ Apples are &lt;em&gt;tasty&lt;/em&gt;.
+ &lt;/ins&gt;
+ &lt;ins&gt;
+ So are pears.
+ &lt;/ins&gt;
+&lt;/aside&gt;</pre>
+
+ </div>
+
+ <p><code><a href=#the-ins-element>ins</a></code> elements should not cross <a href=#paragraph title=paragraph>implied paragraph</a> boundaries.</p>
+
+ <div class=example>
+
+ <p>The following example represents the addition of two paragraphs,
+ the second of which was inserted in two parts. The first
+ <code><a href=#the-ins-element>ins</a></code> element in this example thus crosses a paragraph
+ boundary, which is considered poor form.</p>
+
+ <pre class=bad>&lt;aside&gt;
+ &lt;!-- don't do this --&gt;
+ &lt;ins datetime="2005-03-16T00:00Z"&gt;
+ &lt;p&gt; I like fruit. &lt;/p&gt;
+ Apples are &lt;em&gt;tasty&lt;/em&gt;.
+ &lt;/ins&gt;
+ &lt;ins datetime="2007-12-19T00:00Z"&gt;
+ So are pears.
+ &lt;/ins&gt;
+&lt;/aside&gt;</pre>
+
+ <p>Here is a better way of marking this up. It uses more elements,
+ but none of the elements cross implied paragraph boundaries.</p>
+
+ <pre>&lt;aside&gt;
+ &lt;ins datetime="2005-03-16T00:00Z"&gt;
+ &lt;p&gt; I like fruit. &lt;/p&gt;
+ &lt;/ins&gt;
+ &lt;ins datetime="2005-03-16T00:00Z"&gt;
+ Apples are &lt;em&gt;tasty&lt;/em&gt;.
+ &lt;/ins&gt;
+ &lt;ins datetime="2007-12-19T00:00Z"&gt;
+ So are pears.
+ &lt;/ins&gt;
+&lt;/aside&gt;</pre>
+
+ <!-- Those dates aren't random. They're the start and end of
+ something. Can you guess what? -->
+
+ </div>
+
+
+ <h4 id=the-del-element><span class=secno>4.7.2 </span>The <dfn><code>del</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd>When the element only contains <a href=#phrasing-content>phrasing content</a>: <a href=#phrasing-content>phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>When the element only contains <a href=#phrasing-content>phrasing content</a>: where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dd>Otherwise: where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#transparent>Transparent</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-mod-cite><a href=#attr-mod-cite>cite</a></code></dd>
+ <dd><code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses the <code><a href=#htmlmodelement>HTMLModElement</a></code> interface.</dd>
+ </dl><p>The <code><a href=#the-del-element>del</a></code> element <a href=#represents>represents</a> a removal
+ from the document.</p>
+
+ <p><code><a href=#the-del-element>del</a></code> elements should not cross <a href=#paragraph title=paragraph>implied paragraph</a> boundaries.</p>
+
+ <div class=example>
+
+ <p>The following shows a "to do" list where items that have been
+ done are crossed-off with the date and time of their
+ completion.</p>
+
+ <pre>&lt;h1&gt;To Do&lt;/h1&gt;
+&lt;ul&gt;
+ &lt;li&gt;Empty the dishwasher&lt;/li&gt;
+ &lt;li&gt;&lt;del datetime="2009-10-11T01:25-07:00"&gt;Watch Walter Lewin's lectures&lt;/del&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;del datetime="2009-10-10T23:38-07:00"&gt;Download more tracks&lt;/del&gt;&lt;/li&gt;
+ &lt;li&gt;Buy a printer&lt;/li&gt;
+&lt;/ul&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=attributes-common-to-ins-and-del-elements><span class=secno>4.7.3 </span>Attributes common to <code><a href=#the-ins-element>ins</a></code> and <code><a href=#the-del-element>del</a></code> elements</h4>
+
+ <p>The <dfn id=attr-mod-cite title=attr-mod-cite><code>cite</code></dfn> attribute
+ may be used to specify the address of a document that explains the
+ change. When that document is long, for instance the minutes of a
+ meeting, authors are encouraged to include a fragment identifier
+ pointing to the specific part of that document that discusses the
+ change.</p>
+
+ <p>If the <code title=attr-mod-cite><a href=#attr-mod-cite>cite</a></code> attribute is
+ present, it must be a <a href=#valid-url-potentially-surrounded-by-spaces>valid URL potentially surrounded by
+ spaces</a> that explains the change. <span class=impl>To obtain
+ the corresponding citation link, the value of the attribute must be
+ <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the
+ element. User agents should allow users to follow such citation
+ links.</span></p>
+
+
+ <p>The <dfn id=attr-mod-datetime title=attr-mod-datetime><code>datetime</code></dfn>
+ attribute may be used to specify the time and date of the change.</p>
+
+ <p>If present, the <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code>
+ attribute's value must be a <a href=#valid-date-string-with-optional-time>valid date string with optional
+ time</a>.</p>
+
+ <div class=impl>
+
+ <p>User agents must parse the <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code> attribute according to the
+ <a href=#parse-a-date-or-time-string>parse a date or time string</a> algorithm. If that doesn't
+ return a <a href=#concept-date title=concept-date>date</a> or a <a href=#concept-datetime title=concept-datetime>global date and time</a>, then the
+ modification has no associated timestamp (the value is
+ non-conforming; it is not a <a href=#valid-date-string-with-optional-time>valid date string with optional
+ time</a>). Otherwise, the modification is marked as having been
+ made at the given <a href=#concept-date title=concept-date>date</a> or <a href=#concept-datetime title=concept-datetime>global date and time</a>. If the given
+ value is a <a href=#concept-datetime title=concept-datetime>global date and
+ time</a> then user agents should use the associated time-zone
+ offset information to determine which time zone to present the given
+ datetime in.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-ins-element>ins</a></code> and <code><a href=#the-del-element>del</a></code> elements <span class=impl>must</span> implement the <code><a href=#htmlmodelement>HTMLModElement</a></code>
+ interface:</p>
+
+ <pre class=idl>interface <dfn id=htmlmodelement>HTMLModElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-mod-cite title=dom-mod-cite>cite</a>;
+ attribute DOMString <a href=#dom-mod-datetime title=dom-mod-datetime>dateTime</a>;
+};</pre>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-mod-cite title=dom-mod-cite><code>cite</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the element's <code title=attr-mod-cite><a href=#attr-mod-cite>cite</a></code> content attribute. The <dfn id=dom-mod-datetime title=dom-mod-datetime><code>dateTime</code></dfn> IDL attribute
+ must <a href=#reflect>reflect</a> the element's <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code> content attribute.</p>
+
+ </div>
+
+
+
+ <h4 id=edits-and-paragraphs><span class=secno>4.7.4 </span>Edits and paragraphs</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Since the <code><a href=#the-ins-element>ins</a></code> and <code><a href=#the-del-element>del</a></code> elements do not
+ affect <a href=#paragraph title=paragraph>paragraphing</a>, it is possible,
+ in some cases where paragraphs are <a href=#paragraph title=paragraph>implied</a> (without explicit <code><a href=#the-p-element>p</a></code>
+ elements), for an <code><a href=#the-ins-element>ins</a></code> or <code><a href=#the-del-element>del</a></code> element to
+ span both an entire paragraph or other non-<a href=#phrasing-content>phrasing
+ content</a> elements and part of another paragraph. For
+ example:</p>
+
+ <pre>&lt;section&gt;
+ &lt;ins&gt;
+ &lt;p&gt;
+ This is a paragraph that was inserted.
+ &lt;/p&gt;
+ This is another paragraph whose first sentence was inserted
+ at the same time as the paragraph above.
+ &lt;/ins&gt;
+ This is a second sentence, which was there all along.
+&lt;/section&gt;</pre>
+
+ <p>By only wrapping some paragraphs in <code><a href=#the-p-element>p</a></code> elements, one
+ can even get the end of one paragraph, a whole second paragraph,
+ and the start of a third paragraph to be covered by the same
+ <code><a href=#the-ins-element>ins</a></code> or <code><a href=#the-del-element>del</a></code> element (though this is very
+ confusing, and not considered good practice):</p>
+
+ <pre class=bad>&lt;section&gt;
+ This is the first paragraph. &lt;ins&gt;This sentence was
+ inserted.
+ &lt;p&gt;This second paragraph was inserted.&lt;/p&gt;
+ This sentence was inserted too.&lt;/ins&gt; This is the
+ third paragraph in this example.
+ &lt;!-- (don't do this) --&gt;
+&lt;/section&gt;</pre>
+
+ <p>However, due to the way <a href=#paragraph title=paragraph>implied
+ paragraphs</a> are defined, it is not possible to mark up the
+ end of one paragraph and the start of the very next one using the
+ same <code><a href=#the-ins-element>ins</a></code> or <code><a href=#the-del-element>del</a></code> element. You instead have
+ to use one (or two) <code><a href=#the-p-element>p</a></code> element(s) and two
+ <code><a href=#the-ins-element>ins</a></code> or <code><a href=#the-del-element>del</a></code> elements, as for example:</p>
+
+ <pre>&lt;section&gt;
+ &lt;p&gt;This is the first paragraph. &lt;del&gt;This sentence was
+ deleted.&lt;/del&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;del&gt;This sentence was deleted too.&lt;/del&gt; That
+ sentence needed a separate &amp;lt;del&amp;gt; element.&lt;/p&gt;
+&lt;/section&gt;</pre>
+
+ <p>Partly because of the confusion described above, authors are
+ strongly encouraged to always mark up all paragraphs with the
+ <code><a href=#the-p-element>p</a></code> element, instead of having <code><a href=#the-ins-element>ins</a></code> or
+ <code><a href=#the-del-element>del</a></code> elements that cross <a href=#paragraph title=paragraph>implied
+ paragraphs</a> boundaries.</p>
+
+
+ <h4 id=edits-and-lists><span class=secno>4.7.5 </span>Edits and lists</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The content models of the <code><a href=#the-ol-element>ol</a></code> and <code><a href=#the-ul-element>ul</a></code>
+ elements do not allow <code><a href=#the-ins-element>ins</a></code> and <code><a href=#the-del-element>del</a></code> elements
+ as children. Lists always represent all their items, including items
+ that would otherwise have been marked as deleted.</p>
+
+ <p>To indicate that an item is inserted or deleted, an
+ <code><a href=#the-ins-element>ins</a></code> or <code><a href=#the-del-element>del</a></code> element can be wrapped around
+ the contents of the <code><a href=#the-li-element>li</a></code> element. To indicate that an
+ item has been replaced by another, a single <code><a href=#the-li-element>li</a></code> element
+ can have one or more <code><a href=#the-del-element>del</a></code> elements followed by one or
+ more <code><a href=#the-ins-element>ins</a></code> elements.</p>
+
+ <div class=example>
+
+ <p>In the following example, a list that started empty had items
+ added and removed from it over time. The bits in the example that
+ have been emphasized show the parts that are the "current" state of
+ the list. The list item numbers don't take into account the edits,
+ though.</p>
+
+ <pre>&lt;h1&gt;Stop-ship bugs&lt;/h1&gt;
+&lt;ol&gt;
+ &lt;li&gt;&lt;ins datetime="2008-02-12T15:20Z"&gt;<em>Bug 225:
+ Rain detector doesn't work in snow</em>&lt;/ins&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;del datetime="2008-03-01T20:22Z"&gt;&lt;ins datetime="2008-02-14T12:02Z"&gt;Bug 228:
+ Water buffer overflows in April&lt;/ins&gt;&lt;/del&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;ins datetime="2008-02-16T13:50Z"&gt;<em>Bug 230:
+ Water heater doesn't use renewable fuels</em>&lt;/ins&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;del datetime="2008-02-20T21:15Z"&gt;&lt;ins datetime="2008-02-16T14:25Z"&gt;Bug 232:
+ Carbon dioxide emissions detected after startup&lt;/ins&gt;&lt;/del&gt;&lt;/li&gt;
+&lt;/ol&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, a list that started with just fruit
+ was replaced by a list with just colors.</p>
+
+ <pre>&lt;h1&gt;List of &lt;del&gt;fruits&lt;/del&gt;&lt;ins&gt;colors&lt;/ins&gt;&lt;/h1&gt;
+&lt;ul&gt;
+ &lt;li&gt;&lt;del&gt;Lime&lt;/del&gt;&lt;ins&gt;Green&lt;/ins&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;del&gt;Apple&lt;/del&gt;&lt;/li&gt;
+ &lt;li&gt;Orange&lt;/li&gt;
+ &lt;li&gt;&lt;del&gt;Pear&lt;/del&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;ins&gt;Teal&lt;/ins&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;del&gt;Lemon&lt;/del&gt;&lt;ins&gt;Yellow&lt;/ins&gt;&lt;/li&gt;
+ &lt;li&gt;Olive&lt;/li&gt;
+ &lt;li&gt;&lt;ins&gt;Purple&lt;/ins&gt;&lt;/li&gt;
+&lt;/ul&gt;</pre>
+
+ </div>
+
+
+ <h4 id=edits-and-tables><span class=secno>4.7.6 </span>Edits and tables</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The elements that form part of the table model have complicated
+ content model requirements that do not allow for the
+ <code><a href=#the-ins-element>ins</a></code> and <code><a href=#the-del-element>del</a></code> elements, so indicating edits
+ to a table can be difficult.</p>
+
+ <p>To indicate that an entire row or an entire column has been added
+ or removed, the entire contents of each cell in that row or column
+ can be wrapped in <code><a href=#the-ins-element>ins</a></code> or <code><a href=#the-del-element>del</a></code> elements
+ (respectively).</p>
+
+ <div class=example>
+
+ <p>Here, a table's row has been added:</p>
+
+ <pre>&lt;table&gt;
+ &lt;thead&gt;
+ &lt;tr&gt; &lt;th&gt; Game name &lt;th&gt; Game publisher &lt;th&gt; Verdict
+ &lt;tbody&gt;
+ &lt;tr&gt; &lt;td&gt; Diablo 2 &lt;td&gt; Blizzard &lt;td&gt; 8/10
+ &lt;tr&gt; &lt;td&gt; Portal &lt;td&gt; Valve &lt;td&gt; 10/10
+<strong> &lt;tr&gt; &lt;td&gt; &lt;ins&gt;Portal 2&lt;/ins&gt; &lt;td&gt; &lt;ins&gt;Valve&lt;/ins&gt; &lt;td&gt; &lt;ins&gt;10/10&lt;/ins&gt;</strong>
+&lt;/table&gt;</pre>
+
+ <p>Here, a a column has been removed (the time at which it was removed is given also, as is a link to the page explaining why):</p>
+
+ <pre>&lt;table&gt;
+ &lt;thead&gt;
+ &lt;tr&gt; &lt;th&gt; Game name &lt;th&gt; Game publisher &lt;th&gt; <strong>&lt;del cite="/edits/r192" datetime="2011-05-02T14:23Z"&gt;Verdict&lt;/del&gt;</strong>
+ &lt;tbody&gt;
+ &lt;tr&gt; &lt;td&gt; Diablo 2 &lt;td&gt; Blizzard &lt;td&gt; <strong>&lt;del cite="/edits/r192" datetime="2011-05-02T14:23Z"&gt;8/10&lt;/del&gt;</strong>
+ &lt;tr&gt; &lt;td&gt; Portal &lt;td&gt; Valve &lt;td&gt; <strong>&lt;del cite="/edits/r192" datetime="2011-05-02T14:23Z"&gt;10/10&lt;/del&gt;</strong>
+ &lt;tr&gt; &lt;td&gt; Portal 2 &lt;td&gt; Valve &lt;td&gt; <strong>&lt;del cite="/edits/r192" datetime="2011-05-02T14:23Z"&gt;10/10&lt;/del&gt;</strong>
+&lt;/table&gt;</pre>
+
+ </div>
+
+ <p>Generally speaking, there is no good way to indicate more
+ complicated edits (e.g. that a cell was removed, moving all
+ subsequent cells up or to the left).</p>
+
+
+
+
+ <h3 id=embedded-content-1><span class=secno>4.8 </span>Embedded content</h3>
+
+
+ <h4 id=the-img-element><span class=secno>4.8.1 </span>The <dfn><code>img</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#embedded-content>Embedded content</a>.</dd>
+ <dd>If the element has a <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute: <a href=#interactive-content>Interactive content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#embedded-content>embedded content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-img-alt><a href=#attr-img-alt>alt</a></code></dd>
+ <dd><code title=attr-img-src><a href=#attr-img-src>src</a></code></dd>
+ <dd><code title=attr-img-crossorigin><a href=#attr-img-crossorigin>crossorigin</a></code></dd>
+ <dd><code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code></dd>
+ <dd><code title=attr-img-ismap><a href=#attr-img-ismap>ismap</a></code></dd>
+ <dd><code title=attr-dim-width><a href=#attr-dim-width>width</a></code></dd>
+ <dd><code title=attr-dim-height><a href=#attr-dim-height>height</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>[NamedConstructor=<a href=#dom-image title=dom-image>Image</a>(),
+ NamedConstructor=<a href=#dom-image-w title=dom-image-w>Image</a>(unsigned long width),
+ NamedConstructor=<a href=#dom-image-wh title=dom-image-wh>Image</a>(unsigned long width, unsigned long height)]
+interface <dfn id=htmlimageelement>HTMLImageElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-img-alt title=dom-img-alt>alt</a>;
+ attribute DOMString <a href=#dom-img-src title=dom-img-src>src</a>;
+ attribute DOMString <a href=#dom-img-crossorigin title=dom-img-crossOrigin>crossOrigin</a>;
+ attribute DOMString <a href=#dom-img-usemap title=dom-img-useMap>useMap</a>;
+ attribute boolean <a href=#dom-img-ismap title=dom-img-isMap>isMap</a>;
+ attribute unsigned long <a href=#dom-img-width title=dom-img-width>width</a>;
+ attribute unsigned long <a href=#dom-img-height title=dom-img-height>height</a>;
+ readonly attribute unsigned long <a href=#dom-img-naturalwidth title=dom-img-naturalWidth>naturalWidth</a>;
+ readonly attribute unsigned long <a href=#dom-img-naturalheight title=dom-img-naturalHeight>naturalHeight</a>;
+ readonly attribute boolean <a href=#dom-img-complete title=dom-img-complete>complete</a>;
+};</pre>
+ </dd>
+ </dl><p>An <code><a href=#the-img-element>img</a></code> element represents an image.</p>
+
+ <!-- v2 ideas for <img>:
+
+ * Maps sites would like to know which images are already cached,
+ so that they can use images that are vaguely suitable while
+ they wait for the most appropriate image to download.
+
+ Almost like lowsrc="", except that many images might be
+ appropriate.
+
+ Slight hitch: their images are at a different origin, and we
+ don't want to allow arbitrary cross-origin inspection (privacy
+ leak risk). So it will require them to do CORS opt-in.
+
+ * See note at rel=noreferrer.
+
+ -->
+
+ <p>The image given by the <dfn id=attr-img-src title=attr-img-src><code>src</code></dfn> attribute is the
+ embedded content; the value of the <dfn id=attr-img-alt title=attr-img-alt><code>alt</code></dfn> attribute provides
+ equivalent content for those who cannot process images or who have
+ image loading disabled<!--
+--><!--FORK--><!--
+ --> (i.e. it is the <code><a href=#the-img-element>img</a></code> element's <a href=#fallback-content>fallback
+ content</a>)<!--
+--><!--FORK--><!--
+ -->.</p>
+
+ <p>The <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute must be
+ present, and must contain a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially
+ surrounded by spaces</a> referencing a non-interactive,
+ optionally animated, image resource that is neither paged nor
+ scripted.</p>
+
+ <p class=note>Images can thus be static bitmaps (e.g. PNGs, GIFs,
+ JPEGs), single-page vector documents (single-page PDFs, XML files
+ with an SVG root element), animated bitmaps (APNGs, animated GIFs),
+ animated vector graphics (XML files with an SVG root element that
+ use declarative SMIL animation), and so forth. However, this also
+ precludes SVG files with script, multipage PDF files, interactive
+ MNG files, HTML documents, plain text documents, and so forth.</p>
+
+ <p>The requirements on the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code>
+ attribute's value are described <a href=#alt>in the next
+ section</a>.</p>
+
+ <p>The <code><a href=#the-img-element>img</a></code> element must not be used as a layout tool.
+ In particular, <code><a href=#the-img-element>img</a></code> elements should not be used to
+ display transparent images, as they rarely convey meaning and rarely
+ add anything useful to the document.</p>
+
+ <p>The <dfn id=attr-img-crossorigin title=attr-img-crossorigin><code>crossorigin</code></dfn>
+ attribute is a <a href=#cors-settings-attribute>CORS settings attribute</a>. Its purpose is
+ to allow images from third-party sites that allow cross-origin
+ access to be used with <code><a href=#the-canvas-element>canvas</a></code>.</p>
+
+ <div class=impl>
+
+ <hr><p>An <code><a href=#the-img-element>img</a></code> is always in one of the following states:</p>
+
+ <dl><dt><dfn id=img-none title=img-none>Unavailable</dfn></dt>
+ <dd>The user agent hasn't obtained any image data.</dd>
+
+ <dt><dfn id=img-inc title=img-inc>Partially available</dfn></dt>
+ <dd>The user agent has obtained some of the image data.</dd>
+
+ <dt><dfn id=img-all title=img-all>Completely available</dfn></dt>
+ <dd>The user agent has obtained all of the image data.</dd>
+
+ <dt><dfn id=img-error title=img-error>Broken</dfn></dt>
+ <dd>The user agent has obtained all of the image data that it can,
+ but it cannot decode the image (e.g. the image is corrupted, or the
+ format is not supported, or no data could be obtained).</dd>
+
+ </dl><p>When an <code><a href=#the-img-element>img</a></code> element is either in the <a href=#img-inc title=img-inc>partially available</a> state or in the <a href=#img-all title=img-all>completely available</a> state, it is said to be
+ <dfn id=img-yes title=img-yes>available</dfn>.</p>
+
+ <p>An <code><a href=#the-img-element>img</a></code> element is initially <a href=#img-none title=img-none>unavailable</a>.</p>
+
+ <p>When an <code><a href=#the-img-element>img</a></code> element is <a href=#img-yes title=img-yes>available</a>, it <a href=#provides-a-paint-source>provides a paint
+ source</a> whose width is the image's intrinsic width, whose
+ height is the image's intrinsic height, and whose appearance is the
+ intrinsic appearance of the image.</p>
+
+ <p>User agents may obtain images immediately or on demand.</p>
+
+ <p>A user agent that obtains images immediately must synchronously
+ <a href=#update-the-image-data>update the image data</a> of an <code><a href=#the-img-element>img</a></code> element
+ whenever that element is either created with a <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute, or has its <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute set, changed, or
+ removed.</p> <!-- Note how this does NOT happen when the base URL
+ changes. -->
+
+ <p>A user agent that obtains images on demand must <a href=#update-the-image-data>update the
+ image data</a> of an <code><a href=#the-img-element>img</a></code> element whenever it needs
+ the image data (i.e. on demand), but only if the <code><a href=#the-img-element>img</a></code>
+ element has a <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute, and
+ if it has not <a href=#update-the-image-data title="update the image data">updated the image
+ data</a> since the last time the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute was set. When an
+ <code><a href=#the-img-element>img</a></code> element's <code title=attr-img-src><a href=#attr-img-src>src</a></code>
+ attribute is changed or removed, if the user agent only obtains
+ images on demand, the <code><a href=#the-img-element>img</a></code> element must return to the
+ <a href=#img-none title=img-none>unavailable</a> state.</p> <!-- Note how
+ this does NOT happen when the base URL changes. -->
+
+ <p>When the user agent is to <dfn id=update-the-image-data>update the image data</dfn> of an
+ <code><a href=#the-img-element>img</a></code> element, it must run the following steps:</p>
+
+ <ol><li><p>Return the <code><a href=#the-img-element>img</a></code> element to the <a href=#img-none title=img-none>unavailable</a> state.</p>
+
+ <li><p>If an instance of the <a href=#fetch title=fetch>fetching</a>
+ algorithm is still running for this element, then abort that
+ algorithm, discarding any pending <a href=#concept-task title=concept-task>tasks</a> generated by that
+ algorithm.</li>
+
+ <li><p>Forget the <code><a href=#the-img-element>img</a></code> element's current image data, if
+ any.</li>
+
+ <li><p>If the user agent cannot support images, or its support for
+ images has been disabled, then abort these steps.</li>
+
+ <li><p>If the element's <code title=attr-img-src><a href=#attr-img-src>src</a></code>
+ attribute's value is the empty string, then set the element to the
+ <a href=#img-error title=img-error>broken</a> state, <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the <code><a href=#the-img-element>img</a></code> element,
+ and abort these steps.</li>
+
+ <li>
+
+ <p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value
+ of the element's <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute,
+ relative to the element.</p>
+
+ <p>If that is not successful, abort these steps.</p>
+
+ <p>Otherwise, do a <a href=#potentially-cors-enabled-fetch>potentially CORS-enabled fetch</a> of
+ the resulting <a href=#absolute-url>absolute URL</a>, with the <i>mode</i>
+ being the state of the element's <code title=attr-img-crossorigin><a href=#attr-img-crossorigin>crossorigin</a></code> content
+ attribute, the <i><a href=#origin>origin</a></i> being the <a href=#origin>origin</a> of the
+ <code><a href=#the-img-element>img</a></code> element's <code><a href=#document>Document</a></code>, and the
+ <i>default origin behaviour</i> set to <i>taint</i>.</p>
+
+ <p>The resource obtained in this fashion, if any, is the
+ <code><a href=#the-img-element>img</a></code> element's image data. It can be either
+ <a href=#cors-same-origin>CORS-same-origin</a> or <a href=#cors-cross-origin>CORS-cross-origin</a>;
+ this affects the <a href=#origin>origin</a> of the image itself (e.g.
+ when used on a <code><a href=#the-canvas-element>canvas</a></code>).</p>
+
+ <!-- same text in <input type=image> section and similar text
+ elsewhere --> <p>Fetching the image must <a href=#delay-the-load-event>delay the load
+ event</a> of the element's document until the <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a
+ task">queued</a> by the <a href=#networking-task-source>networking task source</a>
+ once the resource has been <a href=#fetch title=fetch>fetched</a> (<a href=#img-load>defined below</a>) has been run.</p>
+
+ <p class=warning>This, unfortunately, can be used to perform a
+ rudimentary port scan of the user's local network (especially in
+ conjunction with scripting, though scripting isn't actually
+ necessary to carry out such an attack). User agents may implement
+ <a href=#origin title=origin>cross-origin</a> access control policies
+ that are stricter than those described above to mitigate this
+ attack, but unfortunately such policies are typically not
+ compatible with existing Web content.</p>
+
+ <p>The first <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a task">queued</a> by the <a href=#networking-task-source>networking task
+ source</a> while the image is being <a href=#fetch title=fetch>fetched</a> must set the <code><a href=#the-img-element>img</a></code> element's
+ state to <a href=#img-inc title=img-inc>partially available</a>.</p>
+
+ <p id=img-load>If the resource is in a supported image format,
+ then each <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a task">queued</a> by the <a href=#networking-task-source>networking task
+ source</a> while the image is being <a href=#fetch title=fetch>fetched</a> must update the presentation of the
+ image appropriately (e.g. if the image is a progressive JPEG, each
+ packet can improve the resolution of the image); furthermore, the
+ last <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a task">queued</a> by the <a href=#networking-task-source>networking task
+ source</a> once the resource has been <a href=#fetch title=fetch>fetched</a> must act as appropriate given the
+ following alternatives:</p>
+
+ <dl class=switch><dt>If the download was successful</dt>
+
+ <dd>Set the <code><a href=#the-img-element>img</a></code> element to the <a href=#img-all title=img-all>completely available</a> state, update the
+ presentation of the image appropriately, and <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#the-img-element>img</a></code>
+ element.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>Set the <code><a href=#the-img-element>img</a></code> element to the <a href=#img-error title=img-error>broken</a> state, and <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the <code><a href=#the-img-element>img</a></code>
+ element.</dd>
+
+ </dl><p>On the other hand, if the resource type is
+ <code><a href=#multipart/x-mixed-replace>multipart/x-mixed-replace</a></code>, then each <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a
+ task">queued</a> by the <a href=#networking-task-source>networking task source</a>
+ while the image is being <a href=#fetch title=fetch>fetched</a> must
+ also update the presentation of the image, but as each new body
+ part comes in, it must replace the previous image. Once one body
+ part has been completely decoded, the user agent must set the
+ <code><a href=#the-img-element>img</a></code> element to the <a href=#img-all title=img-all>completely
+ available</a> state and <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire
+ a simple event</a> named <code title=event-load>load</code>
+ at the <code><a href=#the-img-element>img</a></code> element.</p>
+
+ <p>If at any point the user agent discovers that the image data is
+ corrupted in some fatal way, or that the image data is not in a
+ supported file format, then the user agent must set the
+ <code><a href=#the-img-element>img</a></code> element to the <a href=#img-error title=img-error>broken</a> state. If the <a href=#fetch title=fetch>fetching</a> algorithm is still running for this
+ element, then the user agent must also abort that algorithm,
+ discarding any pending <a href=#concept-task title=concept-task>tasks</a>
+ generated by that algorithm, and then <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the <code><a href=#the-img-element>img</a></code>
+ element.</p>
+
+ </li>
+
+ </ol><p>When an <code><a href=#the-img-element>img</a></code> element is in the <a href=#img-all title=img-all>completely available</a> state <em>and</em> the
+ user agent can decode the media data without errors, then the
+ <code><a href=#the-img-element>img</a></code> element is said to be <dfn id=img-good title=img-good>fully
+ decodable</dfn>.</p>
+
+ <p>Whether the image is fetched successfully or not (e.g. whether
+ the response code was a 2xx code <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a>) must be
+ ignored when determining the image's type and whether it is a valid
+ image.</p>
+
+ <p class=note>This allows servers to return images with error
+ responses, and have them displayed.</p>
+
+ <p>The user agents should apply the <a href=#content-type-sniffing:-image title="Content-Type
+ sniffing: image">image sniffing rules</a> to determine the type
+ of the image, with the image's <a href=#content-type title=Content-Type>associated
+ Content-Type headers</a> giving the <var title="">official
+ type</var>. If these rules are not applied, then the type of the
+ image must be the type given by the image's <a href=#content-type title=Content-Type>associated Content-Type headers</a>.</p>
+
+ <p>User agents must not support non-image resources with the
+ <code><a href=#the-img-element>img</a></code> element (e.g. XML files whose root element is an
+ HTML element). User agents must not run executable code
+ (e.g. scripts) embedded in the image resource. User agents must only
+ display the first page of a multipage resource (e.g. a PDF
+ file). User agents must not allow the resource to act in an
+ interactive fashion, but should honor any animation in the
+ resource.</p>
+
+ <p>This specification does not specify which image types are to be
+ supported.</p>
+
+ <p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#dom-manipulation-task-source>DOM manipulation
+ task source</a>.</p>
+
+ <hr><p>What an <code><a href=#the-img-element>img</a></code> element represents depends on the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute and the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute.</p>
+
+ <dl class=switch><dt>If the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute is set
+ and the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute is set to
+ the empty string</dt>
+
+ <dd>
+
+ <p>The image is either decorative or supplemental to the rest of
+ the content, redundant with some other information in the
+ document.</p>
+
+ <p>If the image is <a href=#img-yes title=img-yes>available</a> and the
+ user agent is configured to display that image, then the element
+ <a href=#represents>represents</a> the element's image data.</p>
+
+ <p>Otherwise, the element <a href=#represents>represents</a> nothing, and may
+ be omitted completely from the rendering. User agents may provide
+ the user with a notification that an image is present but has been
+ omitted from the rendering.</p>
+
+ </dd>
+
+ <dt>If the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute is set
+ and the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute is set to a
+ value that isn't empty</dt>
+
+ <dd>
+
+ <p>The image is a key part of the content; the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute gives a textual
+ equivalent or replacement for the image.</p>
+
+ <p>If the image is <a href=#img-yes title=img-yes>available</a> and the
+ user agent is configured to display that image, then the element
+ <a href=#represents>represents</a> the element's image data.</p>
+
+ <p>Otherwise, the element <a href=#represents>represents</a> the text given
+ by the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute. User
+ agents may provide the user with a notification that an image is
+ present but has been omitted from the rendering.</p>
+
+ </dd>
+
+ <dt>If the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute is set
+ and the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute is not</dt>
+
+ <dd>
+
+ <p>The image might be a key part of the content, and there is no
+ textual equivalent of the image available.</p>
+
+ <p class=note>In a conforming document, the absence of the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute indicates that the image
+ is a key part of the content but that a textual replacement for
+ the image was not available when the image was generated.</p>
+
+ <p>If the image is <a href=#img-yes title=img-yes>available</a> and the
+ user agent is configured to display that image, then the element
+ <a href=#represents>represents</a> the element's image data.</p>
+
+ <p>Otherwise, the user agent should display some sort of indicator
+ that there is an image that is not being rendered, and may, if
+ requested by the user, or if so configured, or when required to
+ provide contextual information in response to navigation, provide
+ caption information for the image, derived as follows:</p>
+
+ <ol><!-- when editing this list, search for the two other occurrences
+ of 'critical-no-alt' --><li><p>If the image has a <code title=attr-title><a href=#the-title-attribute>title</a></code>
+ attribute whose value is not the empty string, then the value of
+ that attribute is the caption information; abort these
+ steps.</li>
+
+ <li><p>If the image is a descendant of a <code><a href=#the-figure-element>figure</a></code>
+ element that has a child <code><a href=#the-figcaption-element>figcaption</a></code> element, and,
+ ignoring the <code><a href=#the-figcaption-element>figcaption</a></code> element and its descendants,
+ the <code><a href=#the-figure-element>figure</a></code> element has no text node descendants
+ other than <a href=#inter-element-whitespace>inter-element whitespace</a>, and no
+ <a href=#embedded-content>embedded content</a> descendant other than the
+ <code><a href=#the-img-element>img</a></code> element, then the contents of the first such
+ <code><a href=#the-figcaption-element>figcaption</a></code> element are the caption information;
+ abort these steps.</li>
+
+ </ol></dd>
+
+ <dt>If the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute is not
+ set and either the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute
+ is set to the empty string or the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute is not set at all</dt>
+
+ <dd>
+
+ <p>The element <a href=#represents>represents</a> nothing.</p>
+
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>The element <a href=#represents>represents</a> the text given by the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute.</p>
+
+ </dd>
+
+ </dl><p>The <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute does not
+ represent advisory information. User agents must not present the
+ contents of the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute in
+ the same way as content of the <code title=attr-title><a href=#the-title-attribute>title</a></code>
+ attribute.</p>
+
+ <p>User agents may always provide the user with the option to
+ display any image, or to prevent any image from being
+ displayed.
+
+ <!--POLITICS--><!--FORK-->
+ User agents may also apply heuristics to help the user make use of
+ the image when the user is unable to see it, e.g. due to a visual
+ disability or because they are using a text terminal with no
+ graphics capabilities. Such heuristics could include, for instance,
+ optical character recognition (OCR) of text found within the image.
+ <!--POLITICS--><!--FORK-->
+
+ </p>
+
+ <p class=warning>While user agents are encouraged to repair cases
+ of missing <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attributes, authors
+ must not rely on such behavior. <a href=#alt>Requirements for
+ providing text to act as an alternative for images</a> are described
+ in detail below.</p>
+
+ <p>The <em>contents</em> of <code><a href=#the-img-element>img</a></code> elements, if any, are
+ ignored for the purposes of rendering.</p>
+
+ </div>
+
+ <hr><p>The <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute,
+ if present, can indicate that the image has an associated
+ <a href=#image-map>image map</a>.</p>
+
+ <p>The <dfn id=attr-img-ismap title=attr-img-ismap><code>ismap</code></dfn>
+ attribute, when used on an element that is a descendant of an
+ <code><a href=#the-a-element>a</a></code> element with an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute, indicates by its
+ presence that the element provides access to a server-side image
+ map. This affects how events are handled on the corresponding
+ <code><a href=#the-a-element>a</a></code> element.</p>
+
+ <p>The <code title=attr-img-ismap><a href=#attr-img-ismap>ismap</a></code> attribute is a
+ <a href=#boolean-attribute>boolean attribute</a>. The attribute must not be specified
+ on an element that does not have an ancestor <code><a href=#the-a-element>a</a></code> element
+ with an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute.</p>
+
+ <p>The <code><a href=#the-img-element>img</a></code> element supports <a href=#dimension-attributes>dimension
+ attributes</a>.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-img-alt title=dom-img-alt><code>alt</code></dfn> and <dfn id=dom-img-src title=dom-img-src><code>src</code></dfn> IDL attributes must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ <p>The <dfn id=dom-img-crossorigin title=dom-img-crossOrigin><code>crossOrigin</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-img-crossorigin><a href=#attr-img-crossorigin>crossorigin</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-img-usemap title=dom-img-useMap><code>useMap</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-img-usemap>usemap</code> content attribute.</p>
+
+ <p>The <dfn id=dom-img-ismap title=dom-img-isMap><code>isMap</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-img-ismap><a href=#attr-img-ismap>ismap</a></code> content attribute.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">image</var> . <code title=dom-img-width><a href=#dom-img-width>width</a></code> [ = <var title="">value</var> ]</dt>
+ <dt><var title="">image</var> . <code title=dom-img-height><a href=#dom-img-height>height</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>These attributes return the actual rendered dimensions of the
+ image, or zero if the dimensions are not known.</p>
+
+ <p>They can be set, to change the corresponding content
+ attributes.</p>
+
+ </dd>
+
+ <dt><var title="">image</var> . <code title=dom-img-naturalWidth><a href=#dom-img-naturalwidth>naturalWidth</a></code></dt>
+ <dt><var title="">image</var> . <code title=dom-img-naturalHeight><a href=#dom-img-naturalheight>naturalHeight</a></code></dt>
+
+ <dd>
+
+ <p>These attributes return the intrinsic dimensions of the image,
+ or zero if the dimensions are not known.</p>
+
+ </dd>
+
+ <dt><var title="">image</var> . <code title=dom-img-complete><a href=#dom-img-complete>complete</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the image has been completely downloaded or if
+ no image is specified; otherwise, returns false.</p>
+
+ </dd>
+
+ <dt><var title="">image</var> = new <code title=dom-image><a href=#dom-image>Image</a></code>( [ <var title="">width</var> [, <var title="">height</var> ] ] )</dt>
+
+ <dd>
+
+ <p>Returns a new <code><a href=#the-img-element>img</a></code> element, with the <code title=attr-dim-width><a href=#attr-dim-width>width</a></code> and <code title=attr-dim-height><a href=#attr-dim-height>height</a></code> attributes set to the values
+ passed in the relevant arguments, if applicable.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The IDL attributes <dfn id=dom-img-width title=dom-img-width><code>width</code></dfn> and <dfn id=dom-img-height title=dom-img-height><code>height</code></dfn> must return the
+ rendered width and height of the image, in CSS pixels, if the image
+ is <a href=#being-rendered>being rendered</a>, and is being rendered to a visual
+ medium; or else the intrinsic width and height of the image, in CSS
+ pixels, if the image is <i title=img-available>available</i> but
+ not being rendered to a visual medium; or else 0, if the image is
+ not <i title=img-available>available</i>. <a href=#refsCSS>[CSS]</a></p>
+
+ <p>On setting, they must act as if they <a href=#reflect title=reflect>reflected</a> the respective content attributes
+ of the same name.</p>
+
+ <p>The IDL attributes <dfn id=dom-img-naturalwidth title=dom-img-naturalWidth><code>naturalWidth</code></dfn> and
+ <dfn id=dom-img-naturalheight title=dom-img-naturalHeight><code>naturalHeight</code></dfn>
+ must return the intrinsic width and height of the image, in CSS
+ pixels, if the image is <i title=img-available>available</i>, or
+ else 0. <a href=#refsCSS>[CSS]</a></p>
+
+ <p>The IDL attribute <dfn id=dom-img-complete title=dom-img-complete><code>complete</code></dfn> must return
+ true if any of the following conditions is true:</p>
+ <ul class=brief><li>The <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute is omitted.
+ <li>The <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute's value is the empty string.
+ <li>The final <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a task">queued</a> by the <a href=#networking-task-source>networking task source</a> once the resource has been <a href=#fetch title=fetch>fetched</a> has been <a href=#queue-a-task title="queue a task">queued</a>, but has not yet been run, and the <code><a href=#the-img-element>img</a></code> element is not in the <a href=#img-error title=img-error>broken</a> state.
+ <li>The <code><a href=#the-img-element>img</a></code> element is <a href=#img-all title=img-all>completely available</a>.
+ </ul><p>Otherwise, the attribute must return false.</p>
+
+ <p class=note>The value of <code title=dom-img-complete><a href=#dom-img-complete>complete</a></code> can thus change while a
+ <a href=#concept-script title=concept-script>script</a> is executing.</p>
+
+ <p>Three constructors are provided for creating
+ <code><a href=#htmlimageelement>HTMLImageElement</a></code> objects (in addition to the factory
+ methods from DOM Core such as <code title="">createElement()</code>): <dfn id=dom-image title=dom-image><code>Image()</code></dfn>, <dfn id=dom-image-w title=dom-image-w><code>Image(<var title="">width</var>)</code></dfn>, and <dfn id=dom-image-wh title=dom-image-wh><code>Image(<var title="">width</var>, <var title="">height</var>)</code></dfn>. When invoked as constructors,
+ these must return a new <code><a href=#htmlimageelement>HTMLImageElement</a></code> object (a new
+ <code><a href=#the-img-element>img</a></code> element). If the <var title="">width</var> argument
+ is present, the new object's <code title=attr-dim-width><a href=#attr-dim-width>width</a></code> content attribute must be set to
+ <var title="">width</var>. If the <var title="">height</var>
+ argument is also present, the new object's <code title=attr-dim-height><a href=#attr-dim-height>height</a></code> content attribute must be set
+ to <var title="">height</var>. The element's document must be the
+ <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing context</a> of
+ the <code><a href=#window>Window</a></code> object on which the interface object of the
+ invoked constructor is found.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>A single image can have different appropriate alternative text
+ depending on the context.</p>
+
+ <p>In each of the following cases, the same image is used, yet the
+ <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> text is different each
+ time. The image is the coat of arms of the Carouge municipality in
+ the canton Geneva in Switzerland.</p>
+
+ <p>Here it is used as a supplementary icon:</p>
+ <pre>&lt;p&gt;I lived in &lt;img src="carouge.svg" alt=""&gt; Carouge.&lt;/p&gt;</pre>
+
+ <p>Here it is used as an icon representing the town:</p>
+ <pre>&lt;p&gt;Home town: &lt;img src="carouge.svg" alt="Carouge"&gt;&lt;/p&gt;</pre>
+
+ <p>Here it is used as part of a text on the town:</p>
+
+ <pre>&lt;p&gt;Carouge has a coat of arms.&lt;/p&gt;
+&lt;p&gt;&lt;img src="carouge.svg" alt="The coat of arms depicts a lion, sitting in front of a tree."&gt;&lt;/p&gt;
+&lt;p&gt;It is used as decoration all over the town.&lt;/p&gt;</pre>
+
+ <p>Here it is used as a way to support a similar text where the
+ description is given as well as, instead of as an alternative to,
+ the image:</p>
+
+ <pre>&lt;p&gt;Carouge has a coat of arms.&lt;/p&gt;
+&lt;p&gt;&lt;img src="carouge.svg" alt=""&gt;&lt;/p&gt;
+&lt;p&gt;The coat of arms depicts a lion, sitting in front of a tree.
+It is used as decoration all over the town.&lt;/p&gt;</pre>
+
+ <p>Here it is used as part of a story:</p>
+
+ <pre>&lt;p&gt;He picked up the folder and a piece of paper fell out.&lt;/p&gt;
+&lt;p&gt;&lt;img src="carouge.svg" alt="Shaped like a shield, the paper had a
+red background, a green tree, and a yellow lion with its tongue
+hanging out and whose tail was shaped like an S."&gt;&lt;/p&gt;
+&lt;p&gt;He stared at the folder. S! The answer he had been looking for all
+this time was simply the letter S! How had he not seen that before? It all
+came together now. The phone call where Hector had referred to a lion's tail,
+the time Marco had stuck his tongue out...&lt;/p&gt;</pre>
+
+ <p>Here it is not known at the time of publication what the image
+ will be, only that it will be a coat of arms of some kind, and thus
+ no replacement text can be provided, and instead only a brief
+ caption for the image is provided, in the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute:</p>
+
+ <pre>&lt;p&gt;The last user to have uploaded a coat of arms uploaded this one:&lt;/p&gt;
+&lt;p&gt;&lt;img src="last-uploaded-coat-of-arms.cgi" title="User-uploaded coat of arms."&gt;&lt;/p&gt;</pre>
+
+ <p>Ideally, the author would find a way to provide real replacement
+ text even in this case, e.g. by asking the previous user. Not
+ providing replacement text makes the document more difficult to use
+ for people who are unable to view images, e.g. blind users, or
+ users or very low-bandwidth connections or who pay by the byte, or
+ users who are forced to use a text-only Web browser.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here are some more examples showing the same picture used in
+ different contexts, with different appropriate alternate texts each
+ time.</p>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;My cats&lt;/h1&gt;
+ &lt;h2&gt;Fluffy&lt;/h2&gt;
+ &lt;p&gt;Fluffy is my favorite.&lt;/p&gt;
+ &lt;img src="fluffy.jpg" alt="She likes playing with a ball of yarn."&gt;
+ &lt;p&gt;She's just too cute.&lt;/p&gt;
+ &lt;h2&gt;Miles&lt;/h2&gt;
+ &lt;p&gt;My other cat, Miles just eats and sleeps.&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;Photography&lt;/h1&gt;
+ &lt;h2&gt;Shooting moving targets indoors&lt;/h2&gt;
+ &lt;p&gt;The trick here is to know how to anticipate; to know at what speed and
+ what distance the subject will pass by.&lt;/p&gt;
+ &lt;img src="fluffy.jpg" alt="A cat flying by, chasing a ball of yarn, can be
+ photographed quite nicely using this technique."&gt;
+ &lt;h2&gt;Nature by night&lt;/h2&gt;
+ &lt;p&gt;To achieve this, you'll need either an extremely sensitive film, or
+ immense flash lights.&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;About me&lt;/h1&gt;
+ &lt;h2&gt;My pets&lt;/h2&gt;
+ &lt;p&gt;I've got a cat named Fluffy and a dog named Miles.&lt;/p&gt;
+ &lt;img src="fluffy.jpg" alt="Fluffy, my cat, tends to keep itself busy."&gt;
+ &lt;p&gt;My dog Miles and I like go on long walks together.&lt;/p&gt;
+ &lt;h2&gt;music&lt;/h2&gt;
+ &lt;p&gt;After our walks, having emptied my mind, I like listening to Bach.&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;Fluffy and the Yarn&lt;/h1&gt;
+ &lt;p&gt;Fluffy was a cat who liked to play with yarn. He also liked to jump.&lt;/p&gt;
+ &lt;aside&gt;&lt;img src="fluffy.jpg" alt="" title="Fluffy"&gt;&lt;/aside&gt;
+ &lt;p&gt;He would play in the morning, he would play in the evening.&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+ </div>
+
+
+
+ <h5 id=alt><span class=secno>4.8.1.1 </span>Requirements for providing text to act as an alternative for images</h5>
+
+
+ <h6 id=general-guidelines><span class=secno>4.8.1.1.1 </span>General guidelines</h6>
+
+ <p>Except where otherwise specified, the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute must be specified and its
+ value must not be empty; the value must be an appropriate
+ replacement for the image. The specific requirements for the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute depend on what the image
+ is intended to represent, as described in the following
+ sections.</p>
+
+ <p>The most general rule to consider when writing alternative text
+ is the following: <strong>the intent is that replacing every image
+ with the text of its <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute
+ not change the meaning of the page</strong>.</p>
+
+ <p>So, in general, alternative text can be written by considering
+ what one would have written had one not been able to include the
+ image.</p>
+
+ <p>A corollary to this is that the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute's value should never
+ contain text that could be considered the image's <em>caption</em>,
+ <em>title</em>, or <em>legend</em>. It is supposed to contain
+ replacement text that could be used by users <em>instead</em> of the
+ image; it is not meant to supplement the image. The <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute can be used for
+ supplemental information.</p>
+
+ <p class=note>One way to think of alternative text is to think
+ about how you would read the page containing the image to someone
+ over the phone, without mentioning that there is an image
+ present. Whatever you say instead of the image is typically a good
+ start for writing the alternative text.</p>
+
+
+ <h6 id=a-link-or-button-containing-nothing-but-the-image><span class=secno>4.8.1.1.2 </span>A link or button containing nothing but the image</h6>
+
+ <p>When an <a href=#the-a-element>a</a> element that creates a
+ <a href=#hyperlink>hyperlink</a>, or a <code><a href=#the-button-element>button</a></code> element, has no
+ textual content but contains one or more images, the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attributes must contain text that
+ together convey the purpose of the link or button.</p>
+
+ <div class=example>
+
+ <p>In this example, a user is asked to pick his preferred color
+ from a list of three. Each color is given by an image, but for
+ users who have configured their user agent not to display images,
+ the color names are used instead:</p>
+
+ <pre>&lt;h1&gt;Pick your color&lt;/h1&gt;
+&lt;ul&gt;
+ &lt;li&gt;&lt;a href="green.html"&gt;<strong>&lt;img src="green.jpeg" alt="Green"&gt;</strong>&lt;/a&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;a href="blue.html"&gt;<strong>&lt;img src="blue.jpeg" alt="Blue"&gt;</strong>&lt;/a&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;a href="red.html"&gt;<strong>&lt;img src="red.jpeg" alt="Red"&gt;</strong>&lt;/a&gt;&lt;/li&gt;
+&lt;/ul&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example, each button has a set of images to indicate the
+ kind of color output desired by the user. The first image is used
+ in each case to give the alternative text.</p>
+
+ <pre>&lt;button name="rgb"&gt;<strong>&lt;img src="red" alt="RGB"&gt;&lt;img src="green" alt=""&gt;&lt;img src="blue" alt=""&gt;</strong>&lt;/button&gt;
+&lt;button name="cmyk"&gt;<strong>&lt;img src="cyan" alt="CMYK"&gt;&lt;img src="magenta" alt=""&gt;&lt;img src="yellow" alt=""&gt;&lt;img src="black" alt=""&gt;</strong>&lt;/button&gt;</pre>
+
+ <p>Since each image represents one part of the text, it could also
+ be written like this:</p>
+
+ <pre>&lt;button name="rgb"&gt;<strong>&lt;img src="red" alt="R"&gt;&lt;img src="green" alt="G"&gt;&lt;img src="blue" alt="B"&gt;</strong>&lt;/button&gt;
+&lt;button name="cmyk"&gt;<strong>&lt;img src="cyan" alt="C"&gt;&lt;img src="magenta" alt="M"&gt;&lt;img src="yellow" alt="Y"&gt;&lt;img src="black" alt="K"&gt;</strong>&lt;/button&gt;</pre>
+
+ <p>However, with other alternative text, this might not work, and
+ putting all the alternative text into one image in each case might
+ make more sense:</p>
+
+ <pre>&lt;button name="rgb"&gt;<strong>&lt;img src="red" alt="sRGB profile"&gt;&lt;img src="green" alt=""&gt;&lt;img src="blue" alt=""&gt;</strong>&lt;/button&gt;
+&lt;button name="cmyk"&gt;<strong>&lt;img src="cyan" alt="CMYK profile"&gt;&lt;img src="magenta" alt=""&gt;&lt;img src="yellow" alt=""&gt;&lt;img src="black" alt=""&gt;</strong>&lt;/button&gt;</pre>
+
+ </div>
+
+
+
+ <h6 id=a-phrase-or-paragraph-with-an-alternative-graphical-representation:-charts,-diagrams,-graphs,-maps,-illustrations><span class=secno>4.8.1.1.3 </span>A phrase or paragraph with an alternative graphical representation: charts, diagrams, graphs, maps, illustrations</h6>
+
+ <p>Sometimes something can be more clearly stated in graphical
+ form, for example as a flowchart, a diagram, a graph, or a simple
+ map showing directions. In such cases, an image can be given using
+ the <code><a href=#the-img-element>img</a></code> element, but the lesser textual version must
+ still be given, so that users who are unable to view the image
+ (e.g. because they have a very slow connection, or because they
+ are using a text-only browser, or because they are listening to
+ the page being read out by a hands-free automobile voice Web
+ browser, or simply because they are blind) are still able to
+ understand the message being conveyed.</p>
+
+ <p>The text must be given in the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute, and must convey the
+ same message as the image specified in the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute.</p>
+
+ <p>It is important to realize that the alternative text is a
+ <em>replacement</em> for the image, not a description of the
+ image.</p>
+
+ <div class=example>
+
+ <p>In the following example we have <a href=images/parsing-model-overview.png>a flowchart</a> in image
+ form, with text in the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code>
+ attribute rephrasing the flowchart in prose form:</p>
+
+ <pre>&lt;p&gt;In the common case, the data handled by the tokenization stage
+comes from the network, but it can also come from script.&lt;/p&gt;
+&lt;p&gt;<strong>&lt;img src="images/parsing-model-overview.png" alt="The Network
+passes data to the Input Stream Preprocessor, which passes it to the
+Tokenizer, which passes it to the Tree Construction stage. From there,
+data goes to both the DOM and to Script Execution. Script Execution is
+linked to the DOM, and, using document.write(), passes data to the
+Tokenizer."&gt;</strong>&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here's another example, showing a good solution and a bad
+ solution to the problem of including an image in a
+ description.</p>
+
+ <p>First, here's the good solution. This sample shows how the
+ alternative text should just be what you would have put in the
+ prose if the image had never existed.</p>
+
+ <pre>&lt;!-- This is the correct way to do things. --&gt;
+&lt;p&gt;
+ You are standing in an open field west of a house.
+ <strong>&lt;img src="house.jpeg" alt="The house is white, with a boarded front door."&gt;</strong>
+ There is a small mailbox here.
+&lt;/p&gt;</pre>
+
+ <p>Second, here's the bad solution. In this incorrect way of
+ doing things, the alternative text is simply a description of the
+ image, instead of a textual replacement for the image. It's bad
+ because when the image isn't shown, the text doesn't flow as well
+ as in the first example.</p>
+
+ <pre class=bad>&lt;!-- <em>This is the wrong way to do things.</em> --&gt;
+&lt;p&gt;
+ You are standing in an open field west of a house.
+ &lt;img src="house.jpeg" alt="A white house, with a boarded front door."&gt;
+ There is a small mailbox here.
+&lt;/p&gt;</pre>
+
+ <p>Text such as "Photo of white house with boarded door" would be
+ equally bad alternative text (though it could be suitable for the
+ <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute or in the
+ <code><a href=#the-figcaption-element>figcaption</a></code> element of a <code><a href=#the-figure-element>figure</a></code> with this
+ image).</p>
+
+ </div>
+
+
+ <h6 id=a-short-phrase-or-label-with-an-alternative-graphical-representation:-icons,-logos><span class=secno>4.8.1.1.4 </span>A short phrase or label with an alternative graphical representation: icons, logos</h6>
+
+ <p>A document can contain information in iconic form. The icon is
+ intended to help users of visual browsers to recognize features at
+ a glance.</p>
+
+ <p>In some cases, the icon is supplemental to a text label
+ conveying the same meaning. In those cases, the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute must be present but must
+ be empty.</p>
+
+ <div class=example>
+
+ <p>Here the icons are next to text that conveys the same meaning,
+ so they have an empty <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code>
+ attribute:</p>
+
+ <pre>&lt;nav&gt;
+ &lt;p&gt;&lt;a href="/help/"&gt;<strong>&lt;img src="/icons/help.png" alt=""&gt;</strong> Help&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;a href="/configure/"&gt;<strong>&lt;img src="/icons/configuration.png" alt=""&gt;</strong>
+ Configuration Tools&lt;/a&gt;&lt;/p&gt;
+&lt;/nav&gt;</pre>
+
+ </div>
+
+ <p>In other cases, the icon has no text next to it describing what
+ it means; the icon is supposed to be self-explanatory. In those
+ cases, an equivalent textual label must be given in the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute.</p>
+
+ <div class=example>
+
+ <p>Here, posts on a news site are labeled with an icon
+ indicating their topic.</p>
+
+ <pre>&lt;body&gt;
+ &lt;article&gt;
+ &lt;header&gt;
+ &lt;h1&gt;Ratatouille wins &lt;i&gt;Best Movie of the Year&lt;/i&gt; award&lt;/h1&gt;
+ &lt;p&gt;<strong>&lt;img src="movies.png" alt="Movies"&gt;</strong>&lt;/p&gt;
+ &lt;/header&gt;
+ &lt;p&gt;Pixar has won yet another &lt;i&gt;Best Movie of the Year&lt;/i&gt; award,
+ making this its 8th win in the last 12 years.&lt;/p&gt;
+ &lt;/article&gt;
+ &lt;article&gt;
+ &lt;header&gt;
+ &lt;h1&gt;Latest TWiT episode is online&lt;/h1&gt;
+ &lt;p&gt;<strong>&lt;img src="podcasts.png" alt="Podcasts"&gt;</strong>&lt;/p&gt;
+ &lt;/header&gt;
+ &lt;p&gt;The latest TWiT episode has been posted, in which we hear
+ several tech news stories as well as learning much more about the
+ iPhone. This week, the panelists compare how reflective their
+ iPhones' Apple logos are.&lt;/p&gt;
+ &lt;/article&gt;
+&lt;/body&gt;</pre>
+
+ </div>
+
+ <p>Many pages include logos, insignia, flags, or emblems, which
+ stand for a particular entity such as a company, organization,
+ project, band, software package, country, or some such.</p>
+
+ <p>If the logo is being used to represent the entity, e.g. as a page
+ heading, the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute must
+ contain the name of the entity being represented by the logo. The
+ <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute must <em>not</em>
+ contain text like the word "logo", as it is not the fact that it is
+ a logo that is being conveyed, it's the entity itself.</p>
+
+ <p>If the logo is being used next to the name of the entity that
+ it represents, then the logo is supplemental, and its <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute must instead be
+ empty.</p>
+
+ <p>If the logo is merely used as decorative material (as branding,
+ or, for example, as a side image in an article that mentions the
+ entity to which the logo belongs), then the entry below on purely
+ decorative images applies. If the logo is actually being
+ discussed, then it is being used as a phrase or paragraph (the
+ description of the logo) with an alternative graphical
+ representation (the logo itself), and the first entry above
+ applies.</p>
+
+ <div class=example>
+
+ <p>In the following snippets, all four of the above cases are
+ present. First, we see a logo used to represent a company:</p>
+
+ <pre>&lt;h1&gt;<strong>&lt;img src="XYZ.gif" alt="The XYZ company"&gt;</strong>&lt;/h1&gt;</pre>
+
+ <p>Next, we see a paragraph which uses a logo right next to the
+ company name, and so doesn't have any alternative text:
+
+ <pre>&lt;article&gt;
+ &lt;h2&gt;News&lt;/h2&gt;
+ &lt;p&gt;We have recently been looking at buying the <strong>&lt;img src="alpha.gif"
+ alt=""&gt; &Alpha;&Beta;&Gamma; company</strong>, a small Greek company
+ specializing in our type of product.&lt;/p&gt;</pre>
+
+ <p>In this third snippet, we have a logo being used in an aside,
+ as part of the larger article discussing the acquisition:</p>
+
+<pre> <strong>&lt;aside&gt;&lt;p&gt;&lt;img src="alpha-large.gif" alt=""&gt;&lt;/p&gt;&lt;/aside&gt;</strong>
+ &lt;p&gt;The &Alpha;&Beta;&Gamma; company has had a good quarter, and our
+ pie chart studies of their accounts suggest a much bigger blue slice
+ than its green and orange slices, which is always a good sign.&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+ <p>Finally, we have an opinion piece talking about a logo, and
+ the logo is therefore described in detail in the alternative
+ text.</p>
+
+ <pre>&lt;p&gt;Consider for a moment their logo:&lt;/p&gt;
+
+<strong>&lt;p&gt;&lt;img src="/images/logo" alt="It consists of a green circle with a
+green question mark centered inside it."&gt;&lt;/p&gt;</strong>
+
+&lt;p&gt;How unoriginal can you get? I mean, oooooh, a question mark, how
+&lt;em&gt;revolutionary&lt;/em&gt;, how utterly &lt;em&gt;ground-breaking&lt;/em&gt;, I'm
+sure everyone will rush to adopt those specifications now! They could
+at least have tried for some sort of, I don't know, sequence of
+rounded squares with varying shades of green and bold white outlines,
+at least that would look good on the cover of a blue book.&lt;/p&gt;</pre>
+
+ <p>This example shows how the alternative text should be written
+ such that if the image isn't <i title=img-available>available</i>, and the text is used instead,
+ the text flows seamlessly into the surrounding text, as if the
+ image had never been there in the first place.</p>
+
+ </div>
+
+
+ <h6 id=text-that-has-been-rendered-to-a-graphic-for-typographical-effect><span class=secno>4.8.1.1.5 </span>Text that has been rendered to a graphic for typographical effect</h6>
+
+ <p>Sometimes, an image just consists of text, and the purpose of the
+ image is not to highlight the actual typographic effects used to
+ render the text, but just to convey the text itself.</p>
+
+ <p>In such cases, the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code>
+ attribute must be present but must consist of the same text as
+ written in the image itself.</p>
+
+ <div class=example>
+
+ <p>Consider a graphic containing the text "Earth Day", but with the
+ letters all decorated with flowers and plants. If the text is
+ merely being used as a heading, to spice up the page for graphical
+ users, then the correct alternative text is just the same text
+ "Earth Day", and no mention need be made of the decorations:</p>
+
+ <pre>&lt;h1&gt;<strong>&lt;img src="earthdayheading.png" alt="Earth Day"&gt;</strong>&lt;/h1&gt;</pre>
+
+ </div>
+
+
+
+ <h6 id=a-graphical-representation-of-some-of-the-surrounding-text><span class=secno>4.8.1.1.6 </span>A graphical representation of some of the surrounding text</h6>
+
+ <p>In many cases, the image is actually just supplementary, and
+ its presence merely reinforces the surrounding text. In these
+ cases, the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute must be
+ present but its value must be the empty string.</p>
+
+ <p>In general, an image falls into this category if removing the
+ image doesn't make the page any less useful, but including the
+ image makes it a lot easier for users of visual browsers to
+ understand the concept.</p>
+
+ <div class=example>
+
+ <p>A flowchart that repeats the previous paragraph in graphical form:</p>
+
+ <pre>&lt;p&gt;The Network passes data to the Input Stream Preprocessor, which
+passes it to the Tokenizer, which passes it to the Tree Construction
+stage. From there, data goes to both the DOM and to Script Execution.
+Script Execution is linked to the DOM, and, using document.write(),
+passes data to the Tokenizer.&lt;/p&gt;
+<strong>&lt;p&gt;&lt;img src="images/parsing-model-overview.png" alt=""&gt;&lt;/p&gt;</strong></pre>
+
+ <p>In these cases, it would be wrong to include alternative text
+ that consists of just a caption. If a caption is to be included,
+ then either the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute can
+ be used, or the <code><a href=#the-figure-element>figure</a></code> and <code><a href=#the-figcaption-element>figcaption</a></code>
+ elements can be used. In the latter case, the image would in fact
+ be a phrase or paragraph with an alternative graphical
+ representation, and would thus require alternative text.</p>
+
+ <pre>&lt;!-- Using the title="" attribute --&gt;
+&lt;p&gt;The Network passes data to the Input Stream Preprocessor, which
+passes it to the Tokenizer, which passes it to the Tree Construction
+stage. From there, data goes to both the DOM and to Script Execution.
+Script Execution is linked to the DOM, and, using document.write(),
+passes data to the Tokenizer.&lt;/p&gt;
+&lt;p&gt;<strong>&lt;img src="images/parsing-model-overview.png" alt=""
+ title="Flowchart representation of the parsing model."&gt;</strong>&lt;/p&gt;</pre>
+
+ <pre>&lt;!-- Using &lt;figure&gt; and &lt;figcaption&gt; --&gt;
+&lt;p&gt;The Network passes data to the Input Stream Preprocessor, which
+passes it to the Tokenizer, which passes it to the Tree Construction
+stage. From there, data goes to both the DOM and to Script Execution.
+Script Execution is linked to the DOM, and, using document.write(),
+passes data to the Tokenizer.&lt;/p&gt;
+&lt;figure&gt;
+ <strong>&lt;img src="images/parsing-model-overview.png" alt="The Network leads to
+ the Input Stream Preprocessor, which leads to the Tokenizer, which
+ leads to the Tree Construction stage. The Tree Construction stage
+ leads to two items. The first is Script Execution, which leads via
+ document.write() back to the Tokenizer. The second item from which
+ Tree Construction leads is the DOM. The DOM is related to the Script
+ Execution."&gt;</strong>
+ &lt;figcaption&gt;Flowchart representation of the parsing model.&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ <pre class=bad>&lt;!-- This is WRONG. Do not do this. Instead, do what the above examples do. --&gt;
+&lt;p&gt;The Network passes data to the Input Stream Preprocessor, which
+passes it to the Tokenizer, which passes it to the Tree Construction
+stage. From there, data goes to both the DOM and to Script Execution.
+Script Execution is linked to the DOM, and, using document.write(),
+passes data to the Tokenizer.&lt;/p&gt;
+&lt;p&gt;&lt;img src="images/parsing-model-overview.png"
+ alt="Flowchart representation of the parsing model."&gt;&lt;/p&gt;
+&lt;!-- Never put the image's caption in the alt="" attribute! --&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>A graph that repeats the previous paragraph in graphical form:</p>
+
+ <pre>&lt;p&gt;According to a study covering several billion pages,
+about 62% of documents on the Web in 2007 triggered the Quirks
+rendering mode of Web browsers, about 30% triggered the Almost
+Standards mode, and about 9% triggered the Standards mode.&lt;/p&gt;
+<strong>&lt;p&gt;&lt;img src="rendering-mode-pie-chart.png" alt=""&gt;&lt;/p&gt;</strong></pre>
+
+ </div>
+
+
+
+ <h6 id="a-purely-decorative-image-that-doesn't-add-any-information"><span class=secno>4.8.1.1.7 </span>A purely decorative image that doesn't add any information</h6>
+
+ <p>If an image is decorative but isn't especially page-specific
+ &mdash; for example an image that forms part of a site-wide design
+ scheme &mdash; the image should be specified in the site's CSS, not
+ in the markup of the document.</p>
+
+
+ <!-- The above paragraph is omitted in the WHATWG copy and replaced
+ with the explicit requirement below because accessibility is better
+ served by having authors get all their information from one place,
+ instead of requiring them to read multiple (contradictory) documents. -->
+
+<!--FORK-->
+
+ <p>However, a decorative image that isn't discussed by the
+ surrounding text but still has some relevance can be included in a page
+ using the <code><a href=#the-img-element>img</a></code> element. Such images are decorative, but
+ still form part of the content. In these cases, the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute must be present but its
+ value must be the empty string.</p>
+
+ <div class=example>
+
+ <p>Examples where the image is purely decorative despite being
+ relevant would include things like a photo of the Black Rock City
+ landscape in a blog post about an event at Burning Man, or an
+ image of a painting inspired by a poem, on a page reciting that
+ poem. The following snippet shows an example of the latter
+ case (only the first verse is included in this snippet):</p>
+
+ <pre>&lt;h1&gt;The Lady of Shalott&lt;/h1&gt;
+<strong>&lt;p&gt;&lt;img src="shalott.jpeg" alt=""&gt;&lt;/p&gt;</strong>
+&lt;p&gt;On either side the river lie&lt;br&gt;
+Long fields of barley and of rye,&lt;br&gt;
+That clothe the wold and meet the sky;&lt;br&gt;
+And through the field the road run by&lt;br&gt;
+To many-tower'd Camelot;&lt;br&gt;
+And up and down the people go,&lt;br&gt;
+Gazing where the lilies blow&lt;br&gt;
+Round an island there below,&lt;br&gt;
+The island of Shalott.&lt;/p&gt;</pre>
+
+ </div>
+
+<!--FORK-->
+
+
+ <h6 id=a-group-of-images-that-form-a-single-larger-picture-with-no-links><span class=secno>4.8.1.1.8 </span>A group of images that form a single larger picture with no links</h6>
+
+ <p>When a picture has been sliced into smaller image files that are
+ then displayed together to form the complete picture again, one of
+ the images must have its <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code>
+ attribute set as per the relevant rules that would be appropriate
+ for the picture as a whole, and then all the remaining images must
+ have their <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute set to
+ the empty string.</p>
+
+ <div class=example>
+
+ <p>In the following example, a picture representing a company logo
+ for <span title="">XYZ Corp</span> has been split into two pieces,
+ the first containing the letters "XYZ" and the second with the word
+ "Corp". The alternative text ("XYZ Corp") is all in the first
+ image.</p>
+
+ <pre>&lt;h1&gt;<strong>&lt;img src="logo1.png" alt="XYZ Corp"&gt;&lt;img src="logo2.png" alt=""&gt;</strong>&lt;/h1&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, a rating is shown as three filled
+ stars and two empty stars. While the alternative text could have
+ been "&#9733;&#9733;&#9733;&#9734;&#9734;", the author has
+ instead decided to more helpfully give the rating in the form "3
+ out of 5". That is the alternative text of the first image, and the
+ rest have blank alternative text.</p>
+
+ <pre>&lt;p&gt;Rating: &lt;meter max=5 value=3&gt;<strong>&lt;img src="1" alt="3 out of 5"
+ &gt;&lt;img src="1" alt=""&gt;&lt;img src="1" alt=""&gt;&lt;img src="0" alt=""
+ &gt;&lt;img src="0" alt=""&gt;</strong>&lt;/meter&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+
+
+ <h6 id=a-group-of-images-that-form-a-single-larger-picture-with-links><span class=secno>4.8.1.1.9 </span>A group of images that form a single larger picture with links</h6>
+
+ <p>Generally, <a href=#image-map title="image map">image maps</a> should be
+ used instead of slicing an image for links.</p>
+
+ <p>However, if an image is indeed sliced and any of the components
+ of the sliced picture are the sole contents of links, then one image
+ per link must have alternative text in its <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute representing the purpose
+ of the link.</p>
+
+ <div class=example>
+
+ <p>In the following example, a picture representing the flying
+ spaghetti monster emblem, with each of the left noodly appendages
+ and the right noodly appendages in different images, so that the
+ user can pick the left side or the right side in an adventure.</p>
+
+ <pre>&lt;h1&gt;The Church&lt;/h1&gt;
+&lt;p&gt;You come across a flying spaghetti monster. Which side of His
+Noodliness do you wish to reach out for?&lt;/p&gt;
+<strong>&lt;p&gt;&lt;a href="?go=left" &gt;&lt;img src="fsm-left.png" alt="Left side. "&gt;&lt;/a
+ &gt;&lt;img src="fsm-middle.png" alt=""
+ &gt;&lt;a href="?go=right"&gt;&lt;img src="fsm-right.png" alt="Right side."&gt;&lt;/a&gt;&lt;/p&gt;</strong></pre>
+
+ </div>
+
+
+
+ <h6 id=a-key-part-of-the-content><span class=secno>4.8.1.1.10 </span>A key part of the content</h6>
+
+ <p>In some cases, the image is a critical part of the
+ content. This could be the case, for instance, on a page that is
+ part of a photo gallery. The image is the whole <em>point</em> of
+ the page containing it.</p>
+
+ <p>How to provide alternative text for an image that is a key part
+ of the content depends on the image's provenance.</p>
+
+ <dl><dt>The general case</dt>
+
+ <dd>
+
+ <p>When it is possible for detailed alternative text to be
+ provided, for example if the image is part of a series of
+ screenshots in a magazine review, or part of a comic strip, or is
+ a photograph in a blog entry about that photograph, text that can
+ serve as a substitute for the image must be given as the contents
+ of the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute.</p>
+
+ <div class=example>
+
+ <p>A screenshot in a gallery of screenshots for a new OS, with
+ some alternative text:</p>
+
+ <pre>&lt;figure&gt;
+ <strong>&lt;img src="KDE%20Light%20desktop.png"
+ alt="The desktop is blue, with icons along the left hand side in
+ two columns, reading System, Home, K-Mail, etc. A window is
+ open showing that menus wrap to a second line if they
+ cannot fit in the window. The window has a list of icons
+ along the top, with an address bar below it, a list of
+ icons for tabs along the left edge, a status bar on the
+ bottom, and two panes in the middle. The desktop has a bar
+ at the bottom of the screen with a few buttons, a pager, a
+ list of open applications, and a clock."&gt;</strong>
+ &lt;figcaption&gt;Screenshot of a KDE desktop.&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>A graph in a financial report:</p>
+
+ <pre><strong>&lt;img src="sales.gif"
+ title="Sales graph"
+ alt="From 1998 to 2005, sales increased by the following percentages
+ with each year: 624%, 75%, 138%, 40%, 35%, 9%, 21%"&gt;</strong></pre>
+
+ <p>Note that "sales graph" would be inadequate alternative text
+ for a sales graph. Text that would be a good <em>caption</em> is
+ not generally suitable as replacement text.</p>
+
+ </div>
+
+ </dd>
+
+
+ <dt>Images that defy a complete description</dt>
+
+ <dd>
+
+ <p>In certain cases, the nature of the image might be such that
+ providing thorough alternative text is impractical. For example,
+ the image could be indistinct, or could be a complex fractal, or
+ could be a detailed topographical map.</p>
+
+ <p>In these cases, the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code>
+ attribute must contain some suitable alternative text, but it may
+ be somewhat brief.</p>
+
+ <div class=example>
+
+ <p>Sometimes there simply is no text that can do justice to an
+ image. For example, there is little that can be said to usefully
+ describe a Rorschach inkblot test. However, a description, even
+ if brief, is still better than nothing:</p>
+
+ <pre>&lt;figure&gt;
+ <strong>&lt;img src="/commons/a/a7/Rorschach1.jpg" alt="A shape with left-right
+ symmetry with indistinct edges, with a small gap in the center, two
+ larger gaps offset slightly from the center, with two similar gaps
+ under them. The outline is wider in the top half than the bottom
+ half, with the sides extending upwards higher than the center, and
+ the center extending below the sides."&gt;</strong>
+ &lt;figcaption&gt;A black outline of the first of the ten cards
+ in the Rorschach inkblot test.&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ <p>Note that the following would be a very bad use of alternative
+ text:</p>
+
+ <pre class=bad>&lt;!-- This example is wrong. Do not copy it. --&gt;
+&lt;figure&gt;
+ &lt;img src="/commons/a/a7/Rorschach1.jpg" alt="A black outline
+ of the first of the ten cards in the Rorschach inkblot test."&gt;
+ &lt;figcaption&gt;A black outline of the first of the ten cards
+ in the Rorschach inkblot test.&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ <p>Including the caption in the alternative text like this isn't
+ useful because it effectively duplicates the caption for users
+ who don't have images, taunting them twice yet not helping them
+ any more than if they had only read or heard the caption
+ once.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Another example of an image that defies full description is a
+ fractal, which, by definition, is infinite in detail.</p>
+
+ <p>The following example shows one possible way of providing
+ alternative text for the full view of an image of the Mandelbrot
+ set.</p>
+
+ <pre><strong>&lt;img src="ms1.jpeg" alt="The Mandelbrot set appears as a cardioid with
+its cusp on the real axis in the positive direction, with a smaller
+bulb aligned along the same center line, touching it in the negative
+direction, and with these two shapes being surrounded by smaller bulbs
+of various sizes."&gt;</strong></pre>
+
+ </div>
+
+ </dd>
+
+
+ <dt id=unknown-images>Images whose contents are not known</dt>
+
+ <dd>
+
+ <p>In some unfortunate cases, there might be no alternative text
+ available at all, either because the image is obtained in some
+ automated fashion without any associated alternative text (e.g. a
+ Webcam), or because the page is being generated by a script using
+ user-provided images where the user did not provide suitable or
+ usable alternative text (e.g. photograph sharing sites), or
+ because the author does not himself know what the images represent
+ (e.g. a blind photographer sharing an image on his blog).</p>
+
+ <p>In such cases, the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code>
+ attribute may be omitted, but one of the following conditions must
+ be met as well:</p>
+
+ <ul><!-- when editing this list, search for the two other occurrences
+ of 'critical-no-alt' --><li>The <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute is
+ present and has a non-empty value.</li>
+
+ <li id=figcaption-as-alt-condition>The <code><a href=#the-img-element>img</a></code> element
+ is in a <code><a href=#the-figure-element>figure</a></code> element that contains a
+ <code><a href=#the-figcaption-element>figcaption</a></code> element that contains content other than
+ <a href=#inter-element-whitespace>inter-element whitespace</a>, and, ignoring the
+ <code><a href=#the-figcaption-element>figcaption</a></code> element and its descendants, the
+ <code><a href=#the-figure-element>figure</a></code> element has no text node descendants other
+ than <a href=#inter-element-whitespace>inter-element whitespace</a>, and no <a href=#embedded-content>embedded
+ content</a> descendant other than the <code><a href=#the-img-element>img</a></code>
+ element.</li>
+
+ </ul><p class=note>Such cases are to be kept to an absolute
+ minimum. If there is even the slightest possibility of the author
+ having the ability to provide real alternative text, then it would
+ not be acceptable to omit the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code>
+ attribute.</p>
+
+ <div class=example>
+
+ <p>A photo on a photo-sharing site, if the site received the
+ image with no metadata other than the caption, could be marked up
+ as follows:</p>
+
+ <pre>&lt;figure&gt;
+ <strong>&lt;img src="1100670787_6a7c664aef.jpg"&gt;</strong>
+ &lt;figcaption&gt;Bubbles traveled everywhere with us.&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ <p>It would be better, however, if a detailed description of the
+ important parts of the image obtained from the user and included
+ on the page.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>A blind user's blog in which a photo taken by the user is
+ shown. Initially, the user might not have any idea what the photo
+ he took shows:</p>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;I took a photo&lt;/h1&gt;
+ &lt;p&gt;I went out today and took a photo!&lt;/p&gt;
+ &lt;figure&gt;
+ <strong>&lt;img src="photo2.jpeg"&gt;</strong>
+ &lt;figcaption&gt;A photograph taken blindly from my front porch.&lt;/figcaption&gt;
+ &lt;/figure&gt;
+&lt;/article&gt;</pre>
+
+ <p>Eventually though, the user might obtain a description of the
+ image from his friends and could then include alternative text:</p>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;I took a photo&lt;/h1&gt;
+ &lt;p&gt;I went out today and took a photo!&lt;/p&gt;
+ &lt;figure&gt;
+ <strong>&lt;img src="photo2.jpeg" alt="The photograph shows my hummingbird
+ feeder hanging from the edge of my roof. It is half full, but there
+ are no birds around. In the background, out-of-focus trees fill the
+ shot. The feeder is made of wood with a metal grate, and it contains
+ peanuts. The edge of the roof is wooden too, and is painted white
+ with light blue streaks."&gt;</strong>
+ &lt;figcaption&gt;A photograph taken blindly from my front porch.&lt;/figcaption&gt;
+ &lt;/figure&gt;
+&lt;/article&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Sometimes the entire point of the image is that a textual
+ description is not available, and the user is to provide the
+ description. For instance, the point of a CAPTCHA image is to see
+ if the user can literally read the graphic. Here is one way to
+ mark up a CAPTCHA (note the <code title=attr-title><a href=#the-title-attribute>title</a></code>
+ attribute):</p>
+
+ <pre>&lt;p&gt;&lt;label&gt;What does this image say?
+<strong>&lt;img src="captcha.cgi?id=8934" title="CAPTCHA"&gt;</strong>
+&lt;input type=text name=captcha&gt;&lt;/label&gt;
+(If you cannot see the image, you can use an &lt;a
+href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
+
+ <p>Another example would be software that displays images and
+ asks for alternative text precisely for the purpose of then
+ writing a page with correct alternative text. Such a page could
+ have a table of images, like this:</p>
+
+ <pre>&lt;table&gt;
+ &lt;thead&gt;
+ &lt;tr&gt; &lt;th&gt; Image &lt;th&gt; Description
+ &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;td&gt; <strong>&lt;img src="2421.png" title="Image 640 by 100, filename 'banner.gif'"&gt;</strong>
+ &lt;td&gt; &lt;input name="alt2421"&gt;
+ &lt;tr&gt;
+ &lt;td&gt; <strong>&lt;img src="2422.png" title="Image 200 by 480, filename 'ad3.gif'"&gt;</strong>
+ &lt;td&gt; &lt;input name="alt2422"&gt;
+&lt;/table&gt;</pre>
+
+ <p>Notice that even in this example, as much useful information
+ as possible is still included in the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute.</p>
+
+ </div>
+
+ <p class=note>Since some users cannot use images at all
+ (e.g. because they have a very slow connection, or because they
+ are using a text-only browser, or because they are listening to
+ the page being read out by a hands-free automobile voice Web
+ browser, or simply because they are blind), the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute is only allowed to be
+ omitted rather than being provided with replacement text when no
+ alternative text is available and none can be made available, as
+ in the above examples. Lack of effort from the part of the author
+ is not an acceptable reason for omitting the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute.</p>
+
+ </dd>
+
+ </dl><h6 id=an-image-not-intended-for-the-user><span class=secno>4.8.1.1.11 </span>An image not intended for the user</h6>
+
+ <p>Generally authors should avoid using <code><a href=#the-img-element>img</a></code> elements
+ for purposes other than showing images.</p>
+
+ <p>If an <code><a href=#the-img-element>img</a></code> element is being used for purposes other
+ than showing an image, e.g. as part of a service to count page
+ views, then the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute must
+ be the empty string.</p>
+
+ <p>In such cases, the <code title=attr-dim-width><a href=#attr-dim-width>width</a></code> and
+ <code title=attr-dim-height><a href=#attr-dim-height>height</a></code> attributes should both
+ be set to zero.</p>
+
+
+<!--FORK-->
+ <h6 id=an-image-in-an-e-mail-or-private-document-intended-for-a-specific-person-who-is-known-to-be-able-to-view-images><span class=secno>4.8.1.1.12 </span>An image in an e-mail or private document intended for a specific person who is known to be able to view images</h6>
+
+ <p><i>This section does not apply to documents that are publicly
+ accessible, or whose target audience is not necessarily personally
+ known to the author, such as documents on a Web site, e-mails sent
+ to public mailing lists, or software documentation.</i></p>
+
+ <p>When an image is included in a private communication (such as an
+ HTML e-mail) aimed at a specific person who is known to be able to
+ view images, the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute may
+ be omitted. However, even in such cases it is strongly recommended
+ that alternative text be included (as appropriate according to the
+ kind of image involved, as described in the above entries), so that
+ the e-mail is still usable should the user use a mail client that
+ does not support images, or should the document be forwarded on to
+ other users whose abilities might not include easily seeing
+ images.</p>
+<!--FORK-->
+
+
+
+
+ <div class=impl>
+
+ <h6 id=guidance-for-markup-generators><span class=secno>4.8.1.1.13 </span>Guidance for markup generators</h6>
+
+ <p>Markup generators (such as WYSIWYG authoring tools) should,
+ wherever possible, obtain alternative text from their
+ users. However, it is recognized that in many cases, this will not
+ be possible.</p>
+
+ <p>For images that are the sole contents of links, markup generators
+ should examine the link target to determine the title of the target,
+ or the URL of the target, and use information obtained in this
+ manner as the alternative text.</p>
+
+ <p>As a last resort, implementors should either set the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute to the empty string, under
+ the assumption that the image is a purely decorative image that
+ doesn't add any information but is still specific to the surrounding
+ content, or omit the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute
+ altogether, under the assumption that the image is a key part of the
+ content.</p>
+
+ <p>Markup generators should generally avoid using the image's own
+ file name as the alternative text. Similarly, markup generators
+ should avoid generating alternative text from any content that will
+ be equally available to presentation user agents (e.g. Web
+ browsers).</p>
+
+ <p class=note>This is because once a page is generated, it will
+ typically not be updated, whereas the browsers that later read the
+ page can be updated by the user, therefore the browser is likely to
+ have more up-to-date and finely-tuned heuristics than the markup
+ generator did when generating the page.</p>
+
+ </div>
+
+ <div class=impl>
+
+ <h6 id=guidance-for-conformance-checkers><span class=secno>4.8.1.1.14 </span>Guidance for conformance checkers</h6>
+
+ <p>A conformance checker must report the lack of an <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute as an error unless one of
+ the conditions listed below applies:</p>
+
+ <ul><!-- when editing this list, search for the two other occurrences
+ of 'critical-no-alt' --><li>The <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute is present
+ and has a non-empty value (as <a href=#unknown-images>described
+ above</a>).</li>
+
+ <li>The <code><a href=#the-img-element>img</a></code> element is in a <code><a href=#the-figure-element>figure</a></code>
+ element that satisfies <a href=#figcaption-as-alt-condition>the
+ conditions described above</a>.</li>
+
+ <!-- the following are additional entries not included in the
+ aforementioned list, as they apply only to conformance checkers -->
+
+<!--FORK-->
+ <li>The conformance checker has been configured to assume that the
+ document is an e-mail or document intended for a specific person
+ who is known to be able to view images.</li>
+<!--FORK-->
+
+ <li>The document has a <code><a href=#the-meta-element>meta</a></code> element with a <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute whose value is an
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title=meta-generator><a href=#meta-generator>generator</a></code>". (This case does not
+ represent a case where the document is conforming, only that the
+ generator could not determine appropriate alternative text &mdash;
+ validators are required to not show an error in this case to
+ discourage markup generators from including bogus alternative text
+ purely in an attempt to silence validators.)</li>
+
+ </ul></div>
+
+
+
+ <h4 id=the-iframe-element><span class=secno>4.8.2 </span>The <dfn><code>iframe</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#embedded-content>Embedded content</a>.</dd>
+ <dd><a href=#interactive-content>Interactive content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#embedded-content>embedded content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Text that conforms to <a href=#iframe-content-model>the requirements given in the prose</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code></dd>
+ <dd><code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code></dd>
+ <dd><code title=attr-iframe-name><a href=#attr-iframe-name>name</a></code></dd>
+ <dd><code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code></dd>
+ <dd><code title=attr-iframe-seamless><a href=#attr-iframe-seamless>seamless</a></code></dd>
+ <dd><code title=attr-dim-width><a href=#attr-dim-width>width</a></code></dd>
+ <dd><code title=attr-dim-height><a href=#attr-dim-height>height</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmliframeelement>HTMLIFrameElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-iframe-src title=dom-iframe-src>src</a>;
+ attribute DOMString <a href=#dom-iframe-srcdoc title=dom-iframe-srcdoc>srcdoc</a>;
+ attribute DOMString <a href=#dom-iframe-name title=dom-iframe-name>name</a>;
+ [PutForwards=<span title=dom-DOMSettableTokenList-value>value</span>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-iframe-sandbox title=dom-iframe-sandbox>sandbox</a>;
+ attribute boolean <a href=#dom-iframe-seamless title=dom-iframe-seamless>seamless</a>;
+ attribute DOMString <a href=#dom-dim-width title=dom-dim-width>width</a>;
+ attribute DOMString <a href=#dom-dim-height title=dom-dim-height>height</a>;
+ readonly attribute Document? <a href=#dom-iframe-contentdocument title=dom-iframe-contentDocument>contentDocument</a>;
+ readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-iframe-contentwindow title=dom-iframe-contentWindow>contentWindow</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-iframe-element>iframe</a></code> element <a href=#represents>represents</a> a
+ <a href=#nested-browsing-context>nested browsing context</a>.</p>
+
+ <p>The <dfn id=attr-iframe-src title=attr-iframe-src><code>src</code></dfn> attribute
+ gives the address of a page that the <a href=#nested-browsing-context>nested browsing
+ context</a> is to contain. The attribute, if present, must be a
+ <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
+ spaces</a>.</p>
+
+ <p>The <dfn id=attr-iframe-srcdoc title=attr-iframe-srcdoc><code>srcdoc</code></dfn>
+ attribute gives the content of the page that the <a href=#nested-browsing-context>nested
+ browsing context</a> is to contain. The value of the attribute is
+ the source of <dfn id=an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</dfn>.</p>
+
+ <p>For <code><a href=#the-iframe-element>iframe</a></code> elements in <a href=#html-documents>HTML documents</a>,
+ the attribute, if present, must have a value using <a href=#syntax>the HTML
+ syntax</a> that consists of the following syntactic components,
+ in the given order:</p>
+
+ <ol><li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
+ <a href=#space-character title="space character">space characters</a>.</li>
+
+ <li>Optionally, a <a href=#syntax-doctype title=syntax-doctype>DOCTYPE</a>.
+
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
+ <a href=#space-character title="space character">space characters</a>.</li>
+
+ <li>The root element, in the form of an <code><a href=#the-html-element>html</a></code> <a href=#syntax-elements title=syntax-elements>element</a>.</li>
+
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
+ <a href=#space-character title="space character">space characters</a>.</li>
+
+ </ol><p>For <code><a href=#the-iframe-element>iframe</a></code> elements in <a href=#xml-documents>XML documents</a>,
+ the attribute, if present, must have a value that matches the
+ production labeled <code><a href=#document>document</a></code> in the XML
+ specification. <a href=#refsXML>[XML]</a></p>
+
+ <p>If the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute and the
+ <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute are both
+ specified together, the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code>
+ attribute takes priority. This allows authors to provide a fallback
+ <a href=#url>URL</a> for legacy user agents that do not support the
+ <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute.</p>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-iframe-element>iframe</a></code> element is first <a href=#insert-an-element-into-a-document title="insert
+ an element into a document">inserted into a document</a>, the
+ user agent must create a <a href=#nested-browsing-context>nested browsing context</a>, and
+ then <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a> for the
+ first time.</p>
+
+ <p>Whenever an <code><a href=#the-iframe-element>iframe</a></code> element with a <a href=#nested-browsing-context>nested
+ browsing context</a> has its <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute set, changed, or
+ removed, the user agent must <a href=#process-the-iframe-attributes>process the <code>iframe</code>
+ attributes</a>.</p>
+
+ <p>Similarly, whenever an <code><a href=#the-iframe-element>iframe</a></code> element with a
+ <a href=#nested-browsing-context>nested browsing context</a> but with no <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute specified has its
+ <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute set, changed, or
+ removed, the user agent must <a href=#process-the-iframe-attributes>process the <code>iframe</code>
+ attributes</a>.</p> <!-- It doesn't happen when the base URL is
+ changed, though. -->
+
+ <p>When the user agent is to <dfn id=process-the-iframe-attributes>process the <code>iframe</code>
+ attributes</dfn>, it must run the first appropriate steps from the
+ following list:</p>
+
+ <dl class=switch><dt>If the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute
+ is specified</dt>
+
+ <dd><p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
+ <a href=#browsing-context>browsing context</a> to a resource whose
+ <a href=#content-type>Content-Type</a> is <code><a href=#text/html>text/html</a></code>, whose
+ <a href=#url>URL</a> is <code><a href=#about:srcdoc>about:srcdoc</a></code>, and whose data
+ consists of the value of the attribute. The resulting
+ <code><a href=#document>Document</a></code> must be considered <a href=#an-iframe-srcdoc-document>an
+ <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code>
+ document</a>.</dd>
+
+ <dt>If the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code>
+ attribute is specified but the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute is not</dt>
+
+ <dd>
+
+ <ol><li><p>If the value of the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute is the empty string,
+ jump to the <i title="">empty</i> step below.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
+ the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute, relative
+ to the <code><a href=#the-iframe-element>iframe</a></code> element.</li>
+
+ <li><p>If that is not successful, then jump to the <i title="">empty</i> step below.</li>
+
+ <li><p>If the resulting <a href=#absolute-url>absolute URL</a> is an
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string
+ "<code><a href=#about:blank>about:blank</a></code>", and the user agent is processing this
+ <code><a href=#the-iframe-element>iframe</a></code>'s attributes for the first time, then jump to
+ the <i title="">empty</i> step below. (In cases other than the
+ first time, <code><a href=#about:blank>about:blank</a></code> is loaded
+ normally.)</li>
+
+ <li><p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
+ <a href=#browsing-context>browsing context</a> to the resulting <a href=#absolute-url>absolute
+ URL</a>.</li>
+
+ </ol><p><i>Empty</i>: When the steps above require the user agent to
+ jump to the <i title="">empty</i> step, if the user agent is
+ processing this <code><a href=#the-iframe-element>iframe</a></code>'s attributes for the first
+ time, then the user agent must <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#the-iframe-element>iframe</a></code> element.
+ (After jumping to this step, the above steps are not resumed.)
+ <span class=note>No <code title=event-load>load</code> event
+ is fired at the <code><a href=#about:blank>about:blank</a></code> document
+ itself.</span></p>
+
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+ named <code title=event-load>load</code> at the
+ <code><a href=#the-iframe-element>iframe</a></code> element.</p>
+
+ </dd>
+
+ </dl><p>Any <a href=#navigate title=navigate>navigation</a> required of the user
+ agent in the <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a>
+ algorithm must be completed with the <code><a href=#the-iframe-element>iframe</a></code> element's
+ document's <a href=#browsing-context>browsing context</a> as the <a href=#source-browsing-context>source
+ browsing context</a>.</p>
+
+ <p>Furthermore, if the <a href=#browsing-context>browsing context</a>'s <a href=#session-history>session
+ history</a> contained only one <code><a href=#document>Document</a></code> when the
+ <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a> algorithm
+ was invoked, and that was the <code><a href=#about:blank>about:blank</a></code>
+ <code><a href=#document>Document</a></code> created when the <a href=#browsing-context>browsing context</a>
+ was created, then any <a href=#navigate title=navigate>navigation</a>
+ required of the user agent in that algorithm must be completed with
+ <a href=#replacement-enabled>replacement enabled</a>.</p> <!-- see also the note near
+ similar text for the location.assign() method -->
+
+ </div>
+
+ <p class=note>If, when the element is created, the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute is not set, and
+ the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute is either
+ also not set or set but its value cannot be <a href=#resolve-a-url title="resolve a
+ url">resolved</a>, the browsing context will remain at the
+ initial <code><a href=#about:blank>about:blank</a></code> page.</p>
+
+ <p class=note>If the user <a href=#navigate title=navigate>navigates</a>
+ away from this page, the <code><a href=#the-iframe-element>iframe</a></code>'s corresponding
+ <code><a href=#windowproxy>WindowProxy</a></code> object will proxy new <code><a href=#window>Window</a></code>
+ objects for new <code><a href=#document>Document</a></code> objects, but the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute will not change.</p>
+
+ <div class=impl>
+
+ <div class=note>
+
+ <p><a href=#remove-an-element-from-a-document title="remove an element from a document">Removing</a>
+ an <code><a href=#the-iframe-element>iframe</a></code> from a <code><a href=#document>Document</a></code> does not cause
+ its <a href=#browsing-context>browsing context</a> to be discarded. Indeed, an
+ <code><a href=#the-iframe-element>iframe</a></code>'s <a href=#browsing-context>browsing context</a> can survive its
+ original parent <code><a href=#document>Document</a></code> if its <code><a href=#the-iframe-element>iframe</a></code> is
+ moved to another <code><a href=#document>Document</a></code>.</p>
+
+ <p>On the other hand, if an <code><a href=#the-iframe-element>iframe</a></code> is <a href=#remove-an-element-from-a-document title="remove an element from a document">removed</a> from a
+ <code><a href=#document>Document</a></code> and is then subsequently garbage collected,
+ this will likely mean (in the absence of other references) that the
+ <a href=#child-browsing-context>child browsing context</a>'s <code><a href=#windowproxy>WindowProxy</a></code>
+ object will become eligble for garbage collection, which will then
+ lead to that <a href=#browsing-context>browsing context</a> being <a href=#a-browsing-context-is-discarded title="a
+ browsing context is discarded">discarded</a>, which will then
+ lead to its <code><a href=#document>Document</a></code> being <a href=#discard-a-document title="discard a
+ document">discarded</a> also. This happens without notice to any
+ scripts running in that <code><a href=#document>Document</a></code>; for example, no
+ <code title=event-unload>unload</code> events are fired (the
+ "<a href=#unload-a-document>unload a document</a>" steps are not run).</p>
+
+ </div>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here a blog uses the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute in conjunction
+ with the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> and <code title=attr-iframe-seamless><a href=#attr-iframe-seamless>seamless</a></code> attributes described
+ below to provide users of user agents that support this feature
+ with an extra layer of protection from script injection in the blog
+ post comments:</p>
+
+ <pre>&lt;article&gt;
+ &lt;h1&gt;I got my own magazine!&lt;/h1&gt;
+ &lt;p&gt;After much effort, I've finally found a publisher, and so now I
+ have my own magazine! Isn't that awesome?! The first issue will come
+ out in September, and we have articles about getting food, and about
+ getting in boxes, it's going to be great!&lt;/p&gt;
+ &lt;footer&gt;
+ &lt;p&gt;Written by &lt;a href="/users/cap"&gt;cap&lt;/a&gt;.
+ &lt;time pubdate&gt;2009-08-21T23:32Z&lt;/time&gt;&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;article&gt;
+ &lt;footer&gt; At &lt;time pubdate&gt;2009-08-21T23:35Z&lt;/time&gt;, &lt;a href="/users/ch"&gt;ch&lt;/a&gt; writes: &lt;/footer&gt;
+ &lt;iframe seamless sandbox srcdoc="&lt;p&gt;did you get a cover picture yet?"&gt;&lt;/iframe&gt;
+ &lt;/article&gt;
+ &lt;article&gt;
+ &lt;footer&gt; At &lt;time pubdate&gt;2009-08-21T23:44Z&lt;/time&gt;, &lt;a href="/users/cap"&gt;cap&lt;/a&gt; writes: &lt;/footer&gt;
+ &lt;iframe seamless sandbox srcdoc="&lt;p&gt;Yeah, you can see it &lt;a href=&amp;quot;/gallery?mode=cover&amp;amp;amp;page=1&amp;quot;&gt;in my gallery&lt;/a&gt;."&gt;&lt;/iframe&gt;
+ &lt;/article&gt;
+ &lt;article&gt;
+ &lt;footer&gt; At &lt;time pubdate&gt;2009-08-21T23:58Z&lt;/time&gt;, &lt;a href="/users/ch"&gt;ch&lt;/a&gt; writes: &lt;/footer&gt;
+ &lt;iframe seamless sandbox srcdoc="&lt;p&gt;hey that's earl's table.
+&lt;p&gt;you should get earl&amp;amp;amp;me on the next cover."&gt;&lt;/iframe&gt;
+ &lt;/article&gt;</pre>
+
+ <p>Notice the way that quotes have to be escaped (otherwise the
+ <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute would end
+ prematurely), and the way raw ampersands (e.g. in URLs or in prose)
+ mentioned in the sandboxed content have to be <em>doubly</em>
+ escaped &mdash; once so that the ampersand is preserved when
+ originally parsing the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute, and once more
+ to prevent the ampersand from being misinterpreted when parsing the
+ sandboxed content.</p>
+
+ </div>
+
+ <p class=note>In <a href=#syntax>the HTML syntax</a>, authors need only
+ remember to use U+0022 QUOTATION MARK characters (") to wrap the
+ attribute contents and then to escape all U+0022 QUOTATION MARK (")
+ and U+0026 AMPERSAND (&amp;) characters, and to specify the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute, to ensure safe
+ embedding of content.</p>
+
+ <p class=note>Due to restrictions of <span>the XML syntax</span>,
+ in XML the U+003C LESS-THAN SIGN character (&lt;) needs to be
+ escaped as well. In order to prevent <a href=http://www.w3.org/TR/REC-xml/#AVNormalize>attribute-value
+ normalization</a>, some of XML's whitespace characters &mdash;
+ specifically U+0009 CHARACTER TABULATION (tab), U+000A LINE FEED
+ (LF), and U+000D CARRIAGE RETURN (CR) &mdash; also need to be
+ escaped. <a href=#refsXML>[XML]</a></p>
+
+ <hr><p>The <dfn id=attr-iframe-name title=attr-iframe-name><code>name</code></dfn>
+ attribute, if present, must be a <a href=#valid-browsing-context-name>valid browsing context
+ name</a>. The given value is used to name the <a href=#nested-browsing-context>nested
+ browsing context</a>. <span class=impl>When the browsing
+ context is created, if the attribute is present, the <a href=#browsing-context-name>browsing
+ context name</a> must be set to the value of this attribute;
+ otherwise, the <a href=#browsing-context-name>browsing context name</a> must be set to the
+ empty string.</span></p>
+
+ <div class=impl>
+
+ <p>Whenever the <code title=attr-iframe-name><a href=#attr-iframe-name>name</a></code> attribute
+ is set, the nested <a href=#browsing-context>browsing context</a>'s <a href=#browsing-context-name title="browsing context name">name</a> must be changed to the new
+ value. If the attribute is removed, the <a href=#browsing-context-name>browsing context
+ name</a> must be set to the empty string.</p>
+
+ <p>When content loads in an <code><a href=#the-iframe-element>iframe</a></code>, after any <code title=event-load>load</code> events are fired within the content
+ itself, the user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire
+ a simple event</a> named <code title=event-load>load</code> at
+ the <code><a href=#the-iframe-element>iframe</a></code> element. When content whose <a href=#url>URL</a>
+ has the <a href=#same-origin>same origin</a> as the <code><a href=#the-iframe-element>iframe</a></code>
+ element's <code><a href=#document>Document</a></code> fails to load (e.g. due to a DNS
+ error, network error, or if the server returned a 4xx or 5xx status
+ code <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
+ equivalent</a>), then the user agent must <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the element instead. (This event
+ does not fire for <a href=#parse-error title="parse error">parse errors</a>,
+ script errors, or any errors for cross-origin resources.)</p>
+
+ <p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#dom-manipulation-task-source>DOM manipulation
+ task source</a>.</p>
+
+ <p class=note>A <code title=event-load>load</code> event is also
+ fired at the <code><a href=#the-iframe-element>iframe</a></code> element when it is created if no
+ other data is loaded in it.</p>
+
+ <p>When there is an <a href=#active-parser>active parser</a> in the
+ <code><a href=#the-iframe-element>iframe</a></code>, and when anything in the <code><a href=#the-iframe-element>iframe</a></code> is
+ <a href=#delay-the-load-event title="delay the load event">delaying the load event</a> of
+ the <code><a href=#the-iframe-element>iframe</a></code>'s <a href=#browsing-context>browsing context</a>'s
+ <a href=#active-document>active document</a>, the <code><a href=#the-iframe-element>iframe</a></code> must
+ <a href=#delay-the-load-event>delay the load event</a> of its document.</p>
+
+ <p class=note>If, during the handling of the <code title=event-load>load</code> event, the <a href=#browsing-context>browsing
+ context</a> in the <code><a href=#the-iframe-element>iframe</a></code> is again <a href=#navigate title=navigate>navigated</a>, that will further <a href=#delay-the-load-event>delay the
+ load event</a>.</p>
+
+ </div>
+
+ <hr><p>The <dfn id=attr-iframe-sandbox title=attr-iframe-sandbox><code>sandbox</code></dfn>
+ attribute, when specified, enables a set of extra restrictions on
+ any content hosted by the <code><a href=#the-iframe-element>iframe</a></code>. Its value must be an
+ <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique space-separated tokens</a> that are
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a>. The allowed values are
+ <code title=attr-iframe-sandbox-allow-forms><a href=#attr-iframe-sandbox-allow-forms>allow-forms</a></code>,
+ <code title=attr-iframe-sandbox-allow-same-origin><a href=#attr-iframe-sandbox-allow-same-origin>allow-same-origin</a></code>,
+ <code title=attr-iframe-sandbox-allow-scripts><a href=#attr-iframe-sandbox-allow-scripts>allow-scripts</a></code>, and
+ <code title=attr-iframe-sandbox-allow-top-navigation><a href=#attr-iframe-sandbox-allow-top-navigation>allow-top-navigation</a></code>.
+
+ When the attribute is set, the content is treated as being from a
+ unique <a href=#origin>origin</a>, forms and scripts are disabled, links
+ are prevented from targeting other <a href=#browsing-context title="browsing
+ context">browsing contexts</a>, and plugins are secured. The
+ <code title=attr-iframe-sandbox-allow-same-origin><a href=#attr-iframe-sandbox-allow-same-origin>allow-same-origin</a></code>
+ keyword allows the content to be treated as being from the same
+ origin instead of forcing it into a unique origin, the <code title=attr-iframe-sandbox-allow-top-navigation><a href=#attr-iframe-sandbox-allow-top-navigation>allow-top-navigation</a></code>
+ keyword allows the content to <a href=#navigate>navigate</a> its
+ <a href=#top-level-browsing-context>top-level browsing context</a>, and the <code title=attr-iframe-sandbox-allow-forms><a href=#attr-iframe-sandbox-allow-forms>allow-forms</a></code> and <code title=attr-iframe-sandbox-allow-scripts><a href=#attr-iframe-sandbox-allow-scripts>allow-scripts</a></code>
+ keywords re-enable forms and scripts respectively (though scripts
+ are still prevented from creating popups).</p>
+
+ <p class=warning>Setting both the
+ <code title=attr-iframe-sandbox-allow-scripts><a href=#attr-iframe-sandbox-allow-scripts>allow-scripts</a></code> and
+ <code title=attr-iframe-sandbox-allow-same-origin><a href=#attr-iframe-sandbox-allow-same-origin>allow-same-origin</a></code>
+ keywords together when the embedded page has the <a href=#same-origin>same
+ origin</a> as the page containing the <code><a href=#the-iframe-element>iframe</a></code> allows
+ the embedded page to simply remove the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute.</p>
+
+ <p class=warning>Sandboxing hostile content is of minimal help if
+ an attacker can convince the user to just visit the hostile content
+ directly, rather than in the <code><a href=#the-iframe-element>iframe</a></code>. To limit the
+ damage that can be caused by hostile HTML content, it should be
+ served using the <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> MIME type.</p>
+
+ <div class=impl>
+
+ <!-- v2: Add a new attribute that enables new restrictions, e.g.:
+ - disallow cross-origin loads of any kind (networking
+ override that only allows same-origin URLs or about:,
+ javascript:, data:)
+ - block access to 'parent.frames' from sandbox
+ -->
+
+ <p>While the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code>
+ attribute is specified, the <code><a href=#the-iframe-element>iframe</a></code> element's
+ <a href=#nested-browsing-context>nested browsing context</a> must have the flags given in
+ the following list set. In addition, any browsing contexts <a href=#nested-browsing-context title="nested browsing context">nested</a> within an
+ <code><a href=#the-iframe-element>iframe</a></code>, either directly or indirectly, must have all
+ the flags set on them as were set on the <code><a href=#the-iframe-element>iframe</a></code>'s
+ <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> when the
+ <code><a href=#the-iframe-element>iframe</a></code>'s <code><a href=#document>Document</a></code> was created.</p>
+
+ <dl><dt>The <dfn id=sandboxed-navigation-browsing-context-flag>sandboxed navigation browsing context flag</dfn></dt>
+
+ <dd>
+
+ <p>This flag <a href=#sandboxLinks>prevents content from
+ navigating browsing contexts other than the sandboxed browsing
+ context itself</a> (or browsing contexts further nested inside
+ it), and the <a href=#top-level-browsing-context>top-level browsing context</a> (which is
+ protected by the <a href=#sandboxed-top-level-navigation-browsing-context-flag>sandboxed top-level navigation browsing
+ context flag</a> defined next).</p>
+
+ <p>This flag also <a href=#sandboxWindowOpen>prevents content
+ from creating new auxiliary browsing contexts</a>, e.g. using the
+ <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, the
+ <code title=dom-open><a href=#dom-open>window.open()</a></code> method, or the <code title=dom-showModalDialog><a href=#dom-showmodaldialog>showModalDialog()</a></code> method.</p>
+
+ </dd>
+
+
+ <dt>The <dfn id=sandboxed-top-level-navigation-browsing-context-flag>sandboxed top-level navigation browsing context
+ flag</dfn>, unless the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute's value, when
+ <a href=#split-a-string-on-spaces title="split a string on spaces">split on spaces</a>, is
+ found to have the <dfn id=attr-iframe-sandbox-allow-top-navigation title=attr-iframe-sandbox-allow-top-navigation><code>allow-top-navigation</code></dfn>
+ keyword set</dt>
+
+ <dd>
+
+ <p>This flag <a href=#sandboxLinks>prevents content from
+ navigating their <span>top-level browsing context</span></a>.</p>
+
+ <p>When the <code title=attr-iframe-sandbox-allow-top-navigation><a href=#attr-iframe-sandbox-allow-top-navigation>allow-top-navigation</a></code>
+ is set, content can navigate its <a href=#top-level-browsing-context>top-level browsing
+ context</a>, but other <a href=#browsing-context title="browsing context">browsing
+ contexts</a> are still protected by the <a href=#sandboxed-navigation-browsing-context-flag>sandboxed
+ navigation browsing context flag</a> defined above.</p>
+
+ </dd>
+
+
+ <dt>The <dfn id=sandboxed-plugins-browsing-context-flag>sandboxed plugins browsing context flag</dfn></dt>
+
+ <dd>
+
+ <p>This flag prevents content from instantiating <a href=#plugin title=plugin>plugins</a>, whether using <a href=#sandboxPluginEmbed>the <code>embed</code> element</a>, <a href=#sandboxPluginObject>the <code>object</code> element</a>,
+ <a href=#sandboxPluginApplet>the <code>applet</code>
+ element</a>, or through <a href=#sandboxPluginNavigate>navigation</a> of a <a href=#nested-browsing-context>nested
+ browsing context</a>, unless those <a href=#plugin title=plugin>plugins</a> can be <a href=#concept-plugin-secure title=concept-plugin-secure>secured</a>.</p>
+
+ </dd>
+
+
+ <dt>The <dfn id=sandboxed-seamless-iframes-flag>sandboxed seamless iframes flag</dfn></dt>
+
+ <dd>
+
+ <p>This flag prevents content from using the <code title=attr-iframe-seamless><a href=#attr-iframe-seamless>seamless</a></code> attribute on
+ descendant <code><a href=#the-iframe-element>iframe</a></code> elements.</p>
+
+ <p class=note>This prevents a page inserted using the <code title=attr-iframe-sandbox-allow-same-origin><a href=#attr-iframe-sandbox-allow-same-origin>allow-same-origin</a></code>
+ keyword from using a CSS-selector-based method of probing the DOM
+ of other pages on the same site (in particular, pages that contain
+ user-sensitive information).</p>
+
+ <!-- http://lists.w3.org/Archives/Public/public-web-security/2009Dec/thread.html#msg51 -->
+
+ </dd>
+
+
+ <dt>The <dfn id=sandboxed-origin-browsing-context-flag>sandboxed origin browsing context flag</dfn>, unless
+ the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute's
+ value, when <a href=#split-a-string-on-spaces title="split a string on spaces">split on
+ spaces</a>, is found to have the <dfn id=attr-iframe-sandbox-allow-same-origin title=attr-iframe-sandbox-allow-same-origin><code>allow-same-origin</code></dfn>
+ keyword set</dt>
+
+ <dd>
+
+ <p>This flag <a href=#sandboxOrigin>forces content into a unique
+ origin</a>, thus preventing it from accessing other content from
+ the same <a href=#origin>origin</a>.</p>
+
+ <p>This flag also <a href=#sandboxCookies>prevents script from
+ reading from or writing to the <code title=dom-document-cookie>document.cookie</code> IDL
+ attribute</a>, and blocks access to <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code>.
+ </p>
+
+ <div class=note>
+
+ <p>The <code title=attr-iframe-sandbox-allow-same-origin><a href=#attr-iframe-sandbox-allow-same-origin>allow-same-origin</a></code>
+ attribute is intended for two cases.</p>
+
+ <p>First, it can be used to allow content from the same site to
+ be sandboxed to disable scripting, while still allowing access to
+ the DOM of the sandboxed content.</p>
+
+ <p>Second, it can be used to embed content from a third-party
+ site, sandboxed to prevent that site from opening popup windows,
+ etc, without preventing the embedded page from communicating back
+ to its originating site, using the database APIs to store data,
+ etc.</p>
+
+ </div>
+
+ </dd>
+
+
+ <dt>The <dfn id=sandboxed-forms-browsing-context-flag>sandboxed forms browsing context flag</dfn>, unless
+ the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute's
+ value, when <a href=#split-a-string-on-spaces title="split a string on spaces">split on
+ spaces</a>, is found to have the <dfn id=attr-iframe-sandbox-allow-forms title=attr-iframe-sandbox-allow-forms><code>allow-forms</code></dfn>
+ keyword set</dt>
+
+ <dd>
+
+ <p>This flag <a href=#sandboxSubmitBlocked>blocks form
+ submission</a>.</p>
+
+ </dd>
+
+
+ <dt>The <dfn id=sandboxed-scripts-browsing-context-flag>sandboxed scripts browsing context flag</dfn>, unless
+ the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute's
+ value, when <a href=#split-a-string-on-spaces title="split a string on spaces">split on
+ spaces</a>, is found to have the <dfn id=attr-iframe-sandbox-allow-scripts title=attr-iframe-sandbox-allow-scripts><code>allow-scripts</code></dfn>
+ keyword set</dt>
+
+ <dd>
+
+ <p>This flag <a href=#sandboxScriptBlocked>blocks script
+ execution</a>.</p>
+
+ </dd>
+
+
+ <dt>The <dfn id=sandboxed-automatic-features-browsing-context-flag>sandboxed automatic features browsing context
+ flag</dfn>, unless the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute's value, when
+ <a href=#split-a-string-on-spaces title="split a string on spaces">split on spaces</a>, is
+ found to have the <code title=attr-iframe-sandbox-allow-scripts><a href=#attr-iframe-sandbox-allow-scripts>allow-scripts</a></code>
+ keyword (defined above) set</dt>
+
+ <dd>
+
+ <p>This flag blocks features that trigger automatically, such as
+ <a href=#attr-media-autoplay title=attr-media-autoplay>automatically playing a
+ video</a> or <a href=#attr-fe-autofocus title=attr-fe-autofocus>automatically
+ focusing a form control</a>. It is relaxed by the same flag as
+ scripts, because when scripts are enabled these features are
+ trivially possible anyway, and it would be unfortunate to force
+ authors to use script to do them when sandboxed rather than
+ allowing them to use the declarative features.</p>
+
+ </dd>
+
+ </dl><p>These flags must not be set unless the conditions listed above
+ define them as being set.</p>
+
+ <p class=warning>These flags only take effect when the
+ <a href=#nested-browsing-context>nested browsing context</a> of the <code><a href=#the-iframe-element>iframe</a></code> is
+ <a href=#navigate title=navigate>navigated</a>. Removing them, or removing
+ the entire <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code>
+ attribute, has no effect on an already-loaded page.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example, some completely-unknown, potentially hostile,
+ user-provided HTML content is embedded in a page. Because it is
+ sandboxed, it is treated by the user agent as being from a unique
+ origin, despite the content being served from the same site. Thus
+ it is affected by all the normal cross-site restrictions. In
+ addition, the embedded page has scripting disabled, plugins
+ disabled, forms disabled, and it cannot navigate any frames or
+ windows other than itself (or any frames or windows it itself
+ embeds).</p>
+
+ <pre>&lt;p&gt;We're not scared of you! Here is your content, unedited:&lt;/p&gt;
+&lt;iframe sandbox src="getusercontent.cgi?id=12193"&gt;&lt;/iframe&gt;</pre>
+
+ <p>Note that cookies are still sent to the server in the <code title="">getusercontent.cgi</code> request, though they are not
+ visible in the <code title=dom-document-cookie><a href=#dom-document-cookie>document.cookie</a></code> IDL
+ attribute.</p>
+
+ <p class=warning>It is important that the server serve the
+ user-provided HTML using the <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> MIME
+ type so that if the attacker convinces the user to visit that page
+ directly, the page doesn't run in the context of the site's origin,
+ which would make the user vulnerable to any attack found in the
+ page.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example, a gadget from another site is embedded. The
+ gadget has scripting and forms enabled, and the origin sandbox
+ restrictions are lifted, allowing the gadget to communicate with
+ its originating server. The sandbox is still useful, however, as it
+ disables plugins and popups, thus reducing the risk of the user
+ being exposed to malware and other annoyances.</p>
+
+ <pre>&lt;iframe sandbox="allow-same-origin allow-forms allow-scripts"
+ src="http://maps.example.com/embedded.html"&gt;&lt;/iframe&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Suppose a file A contained the following fragment:</p>
+
+ <pre>&lt;iframe sandbox="allow-same-origin allow-forms" src=B&gt;&lt;/iframe&gt;</pre>
+
+ <p>Suppose that file B contained an iframe also:</p>
+
+ <pre>&lt;iframe sandbox="allow-scripts" src=C&gt;&lt;/iframe&gt;</pre>
+
+ <p>Further, suppose that file C contained a link:</p>
+
+ <pre>&lt;a href=D&gt;Link&lt;/a&gt;</pre>
+
+ <p>For this example, suppose all the files were served as
+ <code><a href=#text/html>text/html</a></code>.</p>
+
+ <p>Page C in this scenario has all the sandboxing flags
+ set. Scripts are disabled, because the <code><a href=#the-iframe-element>iframe</a></code> in A has
+ scripts disabled, and this overrides the <code title=attr-iframe-sandbox-allow-scripts><a href=#attr-iframe-sandbox-allow-scripts>allow-scripts</a></code>
+ keyword set on the <code><a href=#the-iframe-element>iframe</a></code> in B. Forms are also
+ disabled, because the inner <code><a href=#the-iframe-element>iframe</a></code> (in B) does not
+ have the <code title=attr-iframe-sandbox-allow-forms><a href=#attr-iframe-sandbox-allow-forms>allow-forms</a></code> keyword
+ set.</p>
+
+ <p>Suppose now that a script in A removes all the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attributes in A and
+ B. This would change nothing immediately. If the user clicked the
+ link in C, loading page D into the <code><a href=#the-iframe-element>iframe</a></code> in B, page D
+ would now act as if the <code><a href=#the-iframe-element>iframe</a></code> in B had the <code title=attr-iframe-sandbox-allow-same-origin><a href=#attr-iframe-sandbox-allow-same-origin>allow-same-origin</a></code>
+ and <code title=attr-iframe-sandbox-allow-forms><a href=#attr-iframe-sandbox-allow-forms>allow-forms</a></code> keywords
+ set, because that was the state of the <a href=#nested-browsing-context>nested browsing
+ context</a> in the <code><a href=#the-iframe-element>iframe</a></code> in A when page B was
+ loaded.</p>
+
+ <p>Generally speaking, dynamically removing or changing the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute is
+ ill-advised, because it can make it quite hard to reason about what
+ will be allowed and what will not.</p>
+
+ </div>
+
+ <p class=note>Potentially hostile files can be served from the
+ same server as the file containing the <code><a href=#the-iframe-element>iframe</a></code> element
+ by labeling them as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> instead of
+ <code><a href=#text/html>text/html</a></code>. This ensures that scripts in the files are
+ unable to attack the site (as if they were actually served from
+ another server), even if the user is tricked into visiting those
+ pages directly, without the protection of the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute.</p>
+
+ <p class=warning>If the <code title=attr-iframe-sandbox-allow-scripts><a href=#attr-iframe-sandbox-allow-scripts>allow-scripts</a></code>
+ keyword is set along with <code title=attr-iframe-sandbox-allow-same-origin><a href=#attr-iframe-sandbox-allow-same-origin>allow-same-origin</a></code>
+ keyword, and the file is from the <a href=#same-origin>same origin</a> as the
+ <code><a href=#the-iframe-element>iframe</a></code>'s <code><a href=#document>Document</a></code>, then a script in the
+ "sandboxed" iframe could just reach out, remove the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute, and then
+ reload itself, effectively breaking out of the sandbox
+ altogether.</p>
+
+
+ <hr><!-- v2: Might be interesting to have a value on seamless that
+ allowed event propagation of some sort, maybe based on the WICD
+ work: http://www.w3.org/TR/WICD/ --><p>The <dfn id=attr-iframe-seamless title=attr-iframe-seamless><code>seamless</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. When specified, it
+ indicates that the <code><a href=#the-iframe-element>iframe</a></code> element's <a href=#browsing-context>browsing
+ context</a> is to be rendered in a manner that makes it appear to
+ be part of the containing document (seamlessly included in the
+ parent document). <span class=impl>Specifically, when the
+ attribute is set on an <code><a href=#the-iframe-element>iframe</a></code> element whose owner
+ <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> did not have
+ the <a href=#sandboxed-seamless-iframes-flag>sandboxed seamless iframes flag</a> set when that
+ <code><a href=#document>Document</a></code> was created, and while either the
+ <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active document</a> has the
+ <a href=#same-origin>same origin</a> as the <code><a href=#the-iframe-element>iframe</a></code> element's
+ document, or the <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active
+ document</a>'s <em><a href="#the-document's-address" title="the document's
+ address">address</a></em> has the <a href=#same-origin>same origin</a> as the
+ <code><a href=#the-iframe-element>iframe</a></code> element's document, or the <a href=#browsing-context>browsing
+ context</a>'s <a href=#active-document>active document</a> is <a href=#an-iframe-srcdoc-document>an
+ <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code>
+ document</a>, the following requirements apply:</span></p>
+
+ <div class=impl>
+
+ <ul><li><p>The user agent must set the <dfn id=seamless-browsing-context-flag>seamless browsing context
+ flag</dfn> to true for that <a href=#browsing-context>browsing context</a>. This
+ will <a href=#seamlessLinks>cause links to open in the parent
+ browsing context</a> unless an <a href=#explicit-self-navigation-override>explicit self-navigation
+ override</a> is used (<code title="">target="_self"</code>).</li>
+
+ <li><p>In a CSS-supporting user agent: the user agent must add all
+ the style sheets that apply to the <code><a href=#the-iframe-element>iframe</a></code> element to
+ the cascade of the <a href=#active-document>active document</a> of the
+ <code><a href=#the-iframe-element>iframe</a></code> element's <a href=#nested-browsing-context>nested browsing context</a>,
+ at the appropriate cascade levels, before any style sheets
+ specified by the document itself.</li>
+
+ <li><p>In a CSS-supporting user agent: the user agent must, for the
+ purpose of CSS property inheritance only, treat the root element of
+ the <a href=#active-document>active document</a> of the <code><a href=#the-iframe-element>iframe</a></code>
+ element's <a href=#nested-browsing-context>nested browsing context</a> as being a child of
+ the <code><a href=#the-iframe-element>iframe</a></code> element. (Thus inherited properties on the
+ root element of the document in the <code><a href=#the-iframe-element>iframe</a></code> will
+ inherit the computed values of those properties on the
+ <code><a href=#the-iframe-element>iframe</a></code> element instead of taking their initial
+ values.)</li>
+
+ <li><p>In visual media, in a CSS-supporting user agent: the user agent
+ should set the intrinsic width of the <code><a href=#the-iframe-element>iframe</a></code> to the
+ width that the element would have if it was a non-replaced
+ block-level element with 'width: auto'.</li>
+
+ <li><p>In visual media, in a CSS-supporting user agent: the user
+ agent should set the intrinsic height of the <code><a href=#the-iframe-element>iframe</a></code> to
+ the height of the bounding box around the content rendered in the
+ <code><a href=#the-iframe-element>iframe</a></code> at its current width (as given in the previous
+ bullet point), as it would be if the scrolling position was such
+ that the top of the viewport for the content rendered in the
+ <code><a href=#the-iframe-element>iframe</a></code> was aligned with the origin of that content's
+ canvas.</li>
+
+ <li>
+
+ <p>In visual media, in a CSS-supporting user agent: the user agent
+ must force the height of the initial containing block of the
+ <a href=#active-document>active document</a> of the <a href=#nested-browsing-context>nested browsing
+ context</a> of the <code><a href=#the-iframe-element>iframe</a></code> to zero.</p>
+
+ <p class=note>This is intended to get around the otherwise
+ circular dependency of percentage dimensions that depend on the
+ height of the containing block, thus affecting the height of the
+ document's bounding box, thus affecting the height of the
+ viewport, thus affecting the size of the initial containing
+ block.</p>
+
+ </li>
+
+ <li><p>In speech media, the user agent should render the <a href=#nested-browsing-context>nested
+ browsing context</a> without announcing that it is a separate
+ document.</li>
+
+ <li>
+
+ <p>User agents should, in general, act as if the <a href=#active-document>active
+ document</a> of the <code><a href=#the-iframe-element>iframe</a></code>'s <a href=#nested-browsing-context>nested browsing
+ context</a> was part of the document that the
+ <code><a href=#the-iframe-element>iframe</a></code> is in, if any.</p>
+
+ <p class=example>For example if the user agent supports listing
+ all the links in a document, links in "seamlessly" nested
+ documents would be included in that list without being
+ significantly distinguished from links in the document itself.</p>
+
+ </li>
+
+ </ul><p>If the attribute is not specified, or if the <a href=#origin>origin</a>
+ conditions listed above are not met, then the user agent should
+ render the <a href=#nested-browsing-context>nested browsing context</a> in a manner that is
+ clearly distinguishable as a separate <a href=#browsing-context>browsing context</a>,
+ and the <a href=#seamless-browsing-context-flag>seamless browsing context flag</a> must be set to
+ false for that <a href=#browsing-context>browsing context</a>.</p>
+
+ <p class=warning>It is important that user agents recheck the
+ above conditions whenever the <a href=#active-document>active document</a> of the
+ <a href=#nested-browsing-context>nested browsing context</a> of the <code><a href=#the-iframe-element>iframe</a></code>
+ changes, such that the <a href=#seamless-browsing-context-flag>seamless browsing context flag</a>
+ gets unset if the <a href=#nested-browsing-context>nested browsing context</a> is <a href=#navigate title=navigate>navigated</a> to another origin.</p>
+
+ </div>
+
+ <p class=note>The attribute can be set or removed dynamically,
+ with the rendering updating in tandem.</p>
+
+ <div class=example>
+
+ <p>In this example, the site's navigation is embedded using a
+ client-side include using an <code><a href=#the-iframe-element>iframe</a></code>. Any links in the
+ <code><a href=#the-iframe-element>iframe</a></code> will, in new user agents, be automatically
+ opened in the <code><a href=#the-iframe-element>iframe</a></code>'s parent browsing context; for
+ legacy user agents, the site could also include a <code><a href=#the-base-element>base</a></code>
+ element with a <code title=attr-base-target><a href=#attr-base-target>target</a></code>
+ attribute with the value <code title="">_parent</code>. Similarly,
+ in new user agents the styles of the parent page will be
+ automatically applied to the contents of the frame, but to support
+ legacy user agents authors might wish to include the styles
+ explicitly.</p>
+
+ <pre>&lt;nav&gt;&lt;iframe seamless src="nav.include.html"&gt;&lt;/iframe&gt;&lt;/nav&gt;</pre>
+
+ </div>
+
+
+ <hr><p>The <code><a href=#the-iframe-element>iframe</a></code> element supports <a href=#dimension-attributes>dimension
+ attributes</a> for cases where the embedded content has specific
+ dimensions (e.g. ad units have well-defined dimensions).</p>
+
+ <p>An <code><a href=#the-iframe-element>iframe</a></code> element never has <a href=#fallback-content>fallback
+ content</a>, as it will always create a nested <a href=#browsing-context>browsing
+ context</a>, regardless of whether the specified initial contents
+ are successfully used.</p>
+
+ <p>Descendants of <code><a href=#the-iframe-element>iframe</a></code> elements represent
+ nothing. (In legacy user agents that do not support
+ <code><a href=#the-iframe-element>iframe</a></code> elements, the contents would be parsed as markup
+ that could act as fallback content.)</p>
+
+ <p id=iframe-content-model>When used in <a href=#html-documents>HTML
+ documents</a>, the allowed content model of <code><a href=#the-iframe-element>iframe</a></code>
+ elements is text, except that invoking the <a href=#html-fragment-parsing-algorithm>HTML fragment
+ parsing algorithm</a> with the <code><a href=#the-iframe-element>iframe</a></code> element as the
+ <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element and
+ the text contents as the <var title="">input</var> must result in a
+ list of nodes that are all <a href=#phrasing-content>phrasing content</a>, with no
+ <a href=#parse-error title="parse error">parse errors</a> having occurred, with
+ no <code><a href=#the-script-element>script</a></code> elements being anywhere in the list or as
+ descendants of elements in the list, and with all the elements in
+ the list (including their descendants) being themselves
+ conforming.</p>
+
+ <p>The <code><a href=#the-iframe-element>iframe</a></code> element must be empty in <a href=#xml-documents>XML
+ documents</a>.</p>
+
+ <p class=note>The <a href=#html-parser>HTML parser</a> treats markup inside
+ <code><a href=#the-iframe-element>iframe</a></code> elements as text.</p>
+
+ <div class=impl>
+
+ <p>The IDL attributes <dfn id=dom-iframe-src title=dom-iframe-src><code>src</code></dfn>, <dfn id=dom-iframe-srcdoc title=dom-iframe-srcdoc><code>srcdoc</code></dfn>, <dfn id=dom-iframe-name title=dom-iframe-name><code>name</code></dfn>, <dfn id=dom-iframe-sandbox title=dom-iframe-sandbox><code>sandbox</code></dfn>, and <dfn id=dom-iframe-seamless title=dom-iframe-seamless><code>seamless</code></dfn> must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ <p>The <dfn id=dom-iframe-contentdocument title=dom-iframe-contentDocument><code>contentDocument</code></dfn>
+ IDL attribute must return the <code><a href=#document>Document</a></code> object of the
+ <a href=#active-document>active document</a> of the <code><a href=#the-iframe-element>iframe</a></code> element's
+ <a href=#nested-browsing-context>nested browsing context</a>.</p>
+
+ <p>The <dfn id=dom-iframe-contentwindow title=dom-iframe-contentWindow><code>contentWindow</code></dfn>
+ IDL attribute must return the <code><a href=#windowproxy>WindowProxy</a></code> object of the
+ <code><a href=#the-iframe-element>iframe</a></code> element's <a href=#nested-browsing-context>nested browsing
+ context</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here is an example of a page using an <code><a href=#the-iframe-element>iframe</a></code> to
+ include advertising from an advertising broker:</p>
+
+ <pre>&lt;iframe src="http://ads.example.com/?customerid=923513721&amp;amp;format=banner"
+ width="468" height="60"&gt;&lt;/iframe&gt;</pre>
+
+ </div>
+
+
+
+
+ <h4 id=the-embed-element><span class=secno>4.8.3 </span>The <dfn><code>embed</code></dfn> element</h4>
+
+<!-- (v2?)
+ we have all kinds of quirks we should define if they come up during
+ testing, as e.g. shown in:
+ http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsObjectFrame.cpp
+ http://trac.webkit.org/browser/trunk/WebCore/html/HTMLEmbedElement.cpp
+ http://trac.webkit.org/browser/trunk/WebCore/rendering/RenderPartObject.cpp (updateWidget)
+ e.g. - 240x200 default
+ - the attributes/params are sent in a name-value pair list as follows (for Gecko):
+ + attributes of the element, in source order
+ + a synthesised 'src' attribute, if there was no 'src' but
+ there was a 'data', with the value of the 'data' attribute
+ + the params, in source order
+ (WebKit does something different still)
+ - the HIDDEN attribute (might be moot now)
+-->
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#embedded-content>Embedded content</a>.</dd>
+ <dd><a href=#interactive-content>Interactive content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#embedded-content>embedded content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-embed-src><a href=#attr-embed-src>src</a></code></dd>
+ <dd><code title=attr-embed-type><a href=#attr-embed-type>type</a></code></dd>
+ <dd><code title=attr-dim-width><a href=#attr-dim-width>width</a></code></dd>
+ <dd><code title=attr-dim-height><a href=#attr-dim-height>height</a></code></dd>
+ <dd>Any other attribute that has no namespace (see prose).</dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlembedelement>HTMLEmbedElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-embed-src title=dom-embed-src>src</a>;
+ attribute DOMString <a href=#dom-embed-type title=dom-embed-type>type</a>;
+ attribute DOMString <a href=#dom-dim-width title=dom-dim-width>width</a>;
+ attribute DOMString <a href=#dom-dim-height title=dom-dim-height>height</a>;
+};</pre>
+ <div class=impl>
+ <p>Depending on the type of content instantiated by the
+ <code><a href=#the-embed-element>embed</a></code> element, the node may also support other
+ interfaces.</p>
+ </div>
+ </dd>
+ </dl><p>The <code><a href=#the-embed-element>embed</a></code> element <a href=#represents>represents</a> an
+ integration point for an external (typically non-HTML) application
+ or interactive content.</p>
+
+ <p>The <dfn id=attr-embed-src title=attr-embed-src><code>src</code></dfn> attribute
+ gives the address of the resource being embedded. The attribute, if
+ present, must contain a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially
+ surrounded by spaces</a>.</p>
+
+ <p>The <dfn id=attr-embed-type title=attr-embed-type><code>type</code></dfn>
+ attribute, if present, gives the <a href=#mime-type>MIME type</a> by which the
+ plugin to instantiate is selected. The value must be a <a href=#valid-mime-type>valid
+ MIME type</a>. If both the <code title=attr-embed-type><a href=#attr-embed-type>type</a></code> attribute and the <code title=attr-embed-src><a href=#attr-embed-src>src</a></code> attribute are present, then the
+ <code title=attr-embed-type><a href=#attr-embed-type>type</a></code> attribute must specify the
+ same type as the <a href=#content-type title=Content-Type>explicit Content-Type
+ metadata</a> of the resource given by the <code title=attr-embed-src><a href=#attr-embed-src>src</a></code> attribute.</p>
+
+ <div class=impl>
+
+ <p>When the element is created with neither a <code title=attr-embed-src><a href=#attr-embed-src>src</a></code> attribute nor a <code title=attr-embed-type><a href=#attr-embed-type>type</a></code> attribute, and when attributes
+ are removed such that neither attribute is present on the element
+ anymore, and when the element has a <a href=#media-element>media element</a>
+ ancestor, and when the element has an ancestor <code><a href=#the-object-element>object</a></code>
+ element that is <em>not</em> showing its <a href=#fallback-content>fallback
+ content</a>, any plugins instantiated for the element must be
+ removed, and the <code><a href=#the-embed-element>embed</a></code> element represents nothing.</p>
+
+ <p>An <code><a href=#the-embed-element>embed</a></code> element is said to be <dfn id=concept-embed-active title=concept-embed-active>potentially active</dfn> when the
+ following conditions are all met simultaneously:</p>
+
+ <ul class=brief><li>The element is <a href=#in-a-document title="in a document">in a <code>Document</code></a>.</li>
+ <li>The element's <code><a href=#document>Document</a></code> is <a href=#fully-active>fully active</a>.</li>
+ <li>The element has either a <code title=attr-embed-src><a href=#attr-embed-src>src</a></code> attribute set or a <code title=attr-embed-type><a href=#attr-embed-type>type</a></code> attribute set (or both).</li>
+ <li>The element's <code title=attr-embed-src><a href=#attr-embed-src>src</a></code> attribute is either absent or its value is the empty string.</li>
+ <li>The element's <code><a href=#document>Document</a></code> was not parsed from a resource whose <a href=#content-type-sniffing-0 title="Content-Type sniffing">sniffed type</a> as determined during <a href=#navigate title=navigate>navigation</a> is <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> (unless this has been overridden as described above).</li>
+ <li>The element is not a descendant of a <a href=#media-element>media element</a>.</li>
+ <li>The element is not a descendant of an <code><a href=#the-object-element>object</a></code> element that is not showing its <a href=#fallback-content>fallback content</a>.</li>
+ </ul><p>Whenever an <code><a href=#the-embed-element>embed</a></code> element that was not <a href=#concept-embed-active title=concept-embed-active>potentially active</a> becomes <a href=#concept-embed-active title=concept-embed-active>potentially active</a>, and whenever
+ a <a href=#concept-embed-active title=concept-embed-active>potentially active</a>
+ <code><a href=#the-embed-element>embed</a></code> element's <code title=attr-embed-type><a href=#attr-embed-type>src</a></code> attribute is set, changed, or
+ removed, and whenever a <a href=#concept-embed-active title=concept-embed-active>potentially active</a>
+ <code><a href=#the-embed-element>embed</a></code> element's <code title=attr-embed-type><a href=#attr-embed-type>type</a></code> attribute is set, changed, or
+ removed, the appropriate set of steps from the following is then
+ applied:</p>
+
+ <dl class=switch><dt>If the element has a <code title=attr-embed-src><a href=#attr-embed-src>src</a></code>
+ attribute set</dt>
+
+ <dd>
+
+ <p>The user agent must <a href=#resolve-a-url title="resolve a url">resolve</a>
+ the value of the element's <code title=attr-embed-src><a href=#attr-embed-src>src</a></code>
+ attribute, relative to the element. If that is successful, the
+ user agent should <a href=#fetch>fetch</a> the resulting <a href=#absolute-url>absolute
+ URL</a>, from the element's <a href=#browsing-context-scope-origin>browsing context scope
+ origin</a> if it has one<!-- potentially http-origin privacy
+ sensitive -->. The <a href=#concept-task title=concept-task>task</a> that is
+ <a href=#queue-a-task title="queue a task">queued</a> by the <a href=#networking-task-source>networking
+ task source</a> once the resource has been <a href=#fetch title=fetch>fetched</a> must find and instantiate an
+ appropriate <a href=#plugin>plugin</a> based on the <a href=#concept-embed-type title=concept-embed-type>content's type</a>, and hand that
+ <a href=#plugin>plugin</a> the content of the resource, replacing any
+ previously instantiated plugin for the element.</p> <!-- Note that
+ this doesn't happen when the base URL changes. -->
+
+ <p>Fetching the resource must <a href=#delay-the-load-event>delay the load event</a> of
+ the element's document.</p>
+ <!-- if we add load/error events, then replace the previous
+ paragraph with the text one: -->
+ <!-- similar text in various places -->
+ <!--<p>Fetching the resource must <span>delay the load
+ event</span> of the element's document until the final <span
+ title="concept-task">task</span> that is <span title="queue a
+ task">queued</span> by the <span>networking task source</span>
+ once the resource has been <span title="fetch">fetched</span> has
+ been run.</p>-->
+
+ </dd>
+
+ <dt>If the element has no <code title=attr-embed-src><a href=#attr-embed-src>src</a></code>
+ attribute set</dt>
+
+ <dd><p>The user agent should find and instantiate an appropriate
+ <a href=#plugin>plugin</a> based on the value of the <code title=attr-embed-type><a href=#attr-embed-type>type</a></code> attribute.</p>
+
+ </dl><p>Whenever an <code><a href=#the-embed-element>embed</a></code> element that was <a href=#concept-embed-active title=concept-embed-active>potentially active</a> stops being
+ <a href=#concept-embed-active title=concept-embed-active>potentially active</a>, any
+ <a href=#plugin>plugin</a> that had been instantiated for that element must
+ be unloaded.</p>
+
+ <p id=sandboxPluginEmbed>When a <a href=#plugin>plugin</a> is to be
+ instantiated but it cannot be <a href=#concept-plugin-secure title=concept-plugin-secure>secured</a> and either:
+
+ <ul><li>the <a href=#sandboxed-plugins-browsing-context-flag>sandboxed plugins browsing context flag</a> was
+ set on the <a href=#browsing-context>browsing context</a> for which the
+ <code><a href=#the-embed-element>embed</a></code> element's <code><a href=#document>Document</a></code> is the
+ <a href=#active-document>active document</a> when that <code><a href=#document>Document</a></code> was
+ created, or</li>
+
+ <li>the <code><a href=#the-embed-element>embed</a></code> element's <code><a href=#document>Document</a></code> was
+ parsed from a resource whose <a href=#content-type-sniffing-0 title="Content-Type
+ sniffing">sniffed type</a> as determined during <a href=#navigate title=navigate>navigation</a> is
+ <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code></li>
+
+ </ul><p>...then the user agent must not instantiate the
+ <a href=#plugin>plugin</a>, and must instead render the <code><a href=#the-embed-element>embed</a></code>
+ element in a manner that conveys that the <a href=#plugin>plugin</a> was
+ disabled. The user agent may offer the user the option to override
+ the sandbox and instantiate the <a href=#plugin>plugin</a> anyway; if the
+ user invokes such an option, the user agent must act as if the
+ conditions above did not apply for the purposes of this element.</p>
+
+ <p class=warning>Plugins that cannot be <a href=#concept-plugin-secure title=concept-plugin-secure>secured</a> are disabled in
+ sandboxed browsing contexts because they might not honor the
+ restrictions imposed by the sandbox (e.g. they might allow scripting
+ even when scripting in the sandbox is disabled). User agents should
+ convey the danger of overriding the sandbox to the user if an option
+ to do so is provided.</p>
+
+ <p class=note>The <code><a href=#the-embed-element>embed</a></code> element is unaffected by the
+ CSS 'display' property. The selected plugin is instantiated even if
+ the element is hidden with a 'display:none' CSS style.</p>
+
+ <p>The <dfn id=concept-embed-type title=concept-embed-type>type of the content</dfn>
+ being embedded is defined as follows:</p>
+
+ <ol><li><p>If the element has a <code title=attr-embed-type><a href=#attr-embed-type>type</a></code> attribute, and that attribute's
+ value is a type that a <a href=#plugin>plugin</a> supports, then the value
+ of the <code title=attr-embed-type><a href=#attr-embed-type>type</a></code> attribute is the
+ <a href=#concept-embed-type title=concept-embed-type>content's type</a>.</li>
+
+ <li>
+
+ <!-- if we get to this point we know we can successfully parsed
+ the URL, since this algorithm is only used after fetching the
+ resource in the steps above -->
+
+ <p>Otherwise, if the <a href=#url-path title=url-path>&lt;path&gt;</a>
+ component of the <a href=#url>URL</a> of the specified resource (after
+ any redirects) matches a pattern that a <a href=#plugin>plugin</a>
+ supports, then the <a href=#concept-embed-type title=concept-embed-type>content's
+ type</a> is the type that that plugin can handle.</p>
+
+ <p class=example>For example, a plugin might say that it can
+ handle resources with <a href=#url-path title=url-path>&lt;path&gt;</a>
+ components that end with the four character string "<code title="">.swf</code>".</p>
+
+ <!-- it's sad that we have to do extension sniffing. sigh. -->
+ <!-- see also <object> which has a similar step -->
+
+ </li>
+
+ <li><p>Otherwise, if the specified resource has <a href=#content-type title=Content-Type>explicit Content-Type metadata</a>, then
+ that is the <a href=#concept-embed-type title=concept-embed-type>content's
+ type</a>.</li>
+
+ <li><p>Otherwise, the content has no type and there can be no
+ appropriate <a href=#plugin>plugin</a> for it.</li>
+
+ <!-- This algorithm is a monument to bad design. Go legacy! -->
+
+ </ol><p>The <code><a href=#the-embed-element>embed</a></code> element has no <a href=#fallback-content>fallback
+ content</a>. If the user agent can't find a suitable plugin, then
+ the user agent must use a default plugin. (This default could be as
+ simple as saying "Unsupported Format".)</p>
+
+ <p>Whether the resource is fetched successfully or not (e.g. whether
+ the response code was a 2xx code <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a>) must be
+ ignored when determining the resource's type and when handing the
+ resource to the plugin.</p>
+
+ <p class=note>This allows servers to return data for plugins even
+ with error responses (e.g. HTTP 500 Internal Server Error codes can
+ still contain plugin data).</p>
+
+ </div>
+
+ <p>Any namespace-less attribute other than <code title=attr-embed-name><a href=#attr-embed-name>name</a></code>, <code title=attr-embed-align><a href=#attr-embed-align>align</a></code>, <code title=attr-embed-hspace><a href=#attr-embed-hspace>hspace</a></code>, and <code title=attr-embed-vspace><a href=#attr-embed-vspace>vspace</a></code> <!-- when editing, see also
+ note below --> may be specified on the <code><a href=#the-embed-element>embed</a></code> element,
+ so long as its name is <a href=#xml-compatible>XML-compatible</a> and contains no
+ characters in the range U+0041 to U+005A (LATIN CAPITAL LETTER A to
+ LATIN CAPITAL LETTER Z). These attributes are then passed as
+ parameters to the <a href=#plugin>plugin</a>.</p>
+
+ <p class=note>All attributes in <a href=#html-documents>HTML documents</a> get
+ lowercased automatically, so the restriction on uppercase letters
+ doesn't affect such documents.</p>
+
+ <p class=note>The four exceptions are to exclude legacy attributes
+ that have side-effects beyond just sending parameters to the
+ <a href=#plugin>plugin</a>.</p>
+
+ <div class=impl>
+
+ <p>The user agent should pass the names and values of all the
+ attributes of the <code><a href=#the-embed-element>embed</a></code> element that have no namespace
+ to the <a href=#plugin>plugin</a> used, when it is instantiated.</p>
+
+ <p>If the <a href=#plugin>plugin</a> instantiated for the
+ <code><a href=#the-embed-element>embed</a></code> element supports a scriptable interface, the
+ <code><a href=#htmlembedelement>HTMLEmbedElement</a></code> object representing the element should
+ expose that interface while the element is instantiated.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-embed-element>embed</a></code> element supports <a href=#dimension-attributes>dimension
+ attributes</a>.</p>
+
+ <div class=impl>
+
+ <p>The IDL attributes <dfn id=dom-embed-src title=dom-embed-src><code>src</code></dfn> and <dfn id=dom-embed-type title=dom-embed-type><code>type</code></dfn> each must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here's a way to embed a resource that requires a proprietary
+ plugin, like Flash:</p>
+
+ <pre>&lt;embed src="catgame.swf"&gt;</pre>
+
+ <p>If the user does not have the plugin (for example if the
+ plugin vendor doesn't support the user's platform), then the user
+ will be unable to use the resource.</p>
+
+ <p>To pass the plugin a parameter "quality" with the value "high",
+ an attribute can be specified:</p>
+
+ <pre>&lt;embed src="catgame.swf" quality="high"&gt;</pre>
+
+ <p>This would be equivalent to the following, when using an
+ <code><a href=#the-object-element>object</a></code> element instead:</p>
+
+ <pre>&lt;object data="catgame.swf"&gt;
+ &lt;param name="quality" value="high"&gt;
+&lt;/object&gt;</pre>
+
+ </div>
+
+
+
+
+ <h4 id=the-object-element><span class=secno>4.8.4 </span>The <dfn><code>object</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#embedded-content>Embedded content</a>.</dd>
+ <dd>If the element has a <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute: <a href=#interactive-content>Interactive content</a>.</dd> <!-- also when showing a plugin or a nested browsing context, but checking that statically is hard...) -->
+ <dd><a href=#category-listed title=category-listed>Listed</a>, <a href=#category-submit title=category-submit>submittable</a>, <a href=#form-associated-element>form-associated element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#embedded-content>embedded content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Zero or more <code><a href=#the-param-element>param</a></code> elements, then, <a href=#transparent>transparent</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-object-data><a href=#attr-object-data>data</a></code></dd>
+ <dd><code title=attr-object-type><a href=#attr-object-type>type</a></code></dd>
+ <dd><code title=attr-object-typemustmatch><a href=#attr-object-typemustmatch>typemustmatch</a></code></dd>
+ <dd><code title=attr-object-name><a href=#attr-object-name>name</a></code></dd>
+ <dd><code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code></dd>
+ <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd>
+ <dd><code title=attr-dim-width><a href=#attr-dim-width>width</a></code></dd>
+ <dd><code title=attr-dim-height><a href=#attr-dim-height>height</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlobjectelement>HTMLObjectElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-object-data title=dom-object-data>data</a>;
+ attribute DOMString <a href=#dom-object-type title=dom-object-type>type</a>;
+ attribute boolean <a href=#dom-object-typemustmatch title=dom-object-typeMustMatch>typeMustMatch</a>;
+ attribute DOMString <a href=#dom-object-name title=dom-object-name>name</a>;
+ attribute DOMString <a href=#dom-object-usemap title=dom-object-useMap>useMap</a>;
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+ attribute DOMString <a href=#dom-dim-width title=dom-dim-width>width</a>;
+ attribute DOMString <a href=#dom-dim-height title=dom-dim-height>height</a>;
+ readonly attribute Document? <a href=#dom-object-contentdocument title=dom-object-contentDocument>contentDocument</a>;
+ readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-object-contentwindow title=dom-object-contentWindow>contentWindow</a>;
+
+ readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>;
+ readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>;
+ readonly attribute DOMString <a href=#dom-cva-validationmessage title=dom-cva-validationMessage>validationMessage</a>;
+ boolean <a href=#dom-cva-checkvalidatity title=dom-cva-checkValidatity>checkValidity</a>();
+ void <a href=#dom-cva-setcustomvalidity title=dom-cva-setCustomValidity>setCustomValidity</a>(DOMString error);
+};</pre>
+ <div class=impl>
+ <p>Depending on the type of content instantiated by the
+ <code><a href=#the-object-element>object</a></code> element, the node also supports other
+ interfaces.</p>
+ </div>
+ </dd>
+ </dl><p>The <code><a href=#the-object-element>object</a></code> element can represent an external
+ resource, which, depending on the type of the resource, will either
+ be treated as an image, as a <a href=#nested-browsing-context>nested browsing context</a>,
+ or as an external resource to be processed by a
+ <a href=#plugin>plugin</a>.</p>
+
+ <p>The <dfn id=attr-object-data title=attr-object-data><code>data</code></dfn>
+ attribute, if present, specifies the address of the resource. If
+ present, the attribute must be a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty
+ URL potentially surrounded by spaces</a>.</p>
+
+ <p class=warning>Authors who reference resources from other <a href=#origin title=origin>origins</a> that they do not trust are urged to
+ use the <code title=attr-object-typemustmatch><a href=#attr-object-typemustmatch>typemustmatch</a></code>
+ attribute defined below. Without that attribute, it is possible in
+ certain cases for an attacker on the remote host to use the plugin
+ mechanism to run arbitrary scripts, even if the author has used
+ features such as the Flash "allowScriptAccess" parameter.</p> <!--
+ for example, if the user doesn't have flash installed but does have
+ java installed, and the remote site unexpectedly returns java
+ instead of flash, then java will run, and it will ignore the
+ allowScriptAccess thing -->
+
+ <p>The <dfn id=attr-object-type title=attr-object-type><code>type</code></dfn>
+ attribute, if present, specifies the type of the resource. If
+ present, the attribute must be a <a href=#valid-mime-type>valid MIME type</a>.</p>
+
+ <p>At least one of either the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute or the <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute must be present.</p>
+
+ <p>The <dfn id=attr-object-typemustmatch title=attr-object-typemustmatch><code>typemustmatch</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a> whose presence
+ indicates that the resource specified by the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute is only to be used if
+ the value of the <code title=attr-object-type><a href=#attr-object-type>type</a></code>
+ attribute and the <a href=#content-type>Content-Type</a> of the aforementioned
+ resource match.</p>
+
+ <p>The <code title=attr-object-typemustmatch><a href=#attr-object-typemustmatch>typemustmatch</a></code>
+ attribute must not be specified unless both the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute and the <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute are present.</p>
+
+ <p>The <dfn id=attr-object-name title=attr-object-name><code>name</code></dfn>
+ attribute, if present, must be a <a href=#valid-browsing-context-name>valid browsing context
+ name</a>. The given value is used to name the <a href=#nested-browsing-context>nested
+ browsing context</a>, if applicable.</p>
+
+ <div class=impl>
+
+ <p>When the element is created, when it is popped off the
+ <a href=#stack-of-open-elements>stack of open elements</a> of an <a href=#html-parser>HTML parser</a>
+ or <a href=#xml-parser>XML parser</a>, and subsequently whenever the element is
+ <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted into a
+ document</a> or <a href=#remove-an-element-from-a-document title="remove an element from a
+ document">removed from a document</a>; and whenever the element's
+ <code><a href=#document>Document</a></code> changes whether it is <a href=#fully-active>fully
+ active</a>; and whenever an ancestor <code><a href=#the-object-element>object</a></code> element
+ changes to or from showing its <a href=#fallback-content>fallback content</a>; and
+ whenever the element's <code title=attr-object-classid><a href=#attr-object-classid>classid</a></code> attribute is set,
+ changed, or removed; and, when its <code title=attr-object-classid><a href=#attr-object-classid>classid</a></code> attribute is not present,
+ whenever its <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute is
+ set, changed, or removed; and, when neither its <code title=attr-object-classid><a href=#attr-object-classid>classid</a></code> attribute nor its <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute are present, whenever
+ its <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute is set,
+ changed, or removed: the user agent must <a href=#queue-a-task>queue a task</a>
+ to run the following steps to (re)determine what the
+ <code><a href=#the-object-element>object</a></code> element represents. The <a href=#task-source>task source</a>
+ for this <a href=#concept-task title=concept-task>task</a> is the <a href=#dom-manipulation-task-source>DOM
+ manipulation task source</a>.</p> <!-- Changing the base URL
+ doesn't trigger this. -->
+
+ <ol><li>
+
+ <p>If the user has indicated a preference that this
+ <code><a href=#the-object-element>object</a></code> element's <a href=#fallback-content>fallback content</a> be
+ shown instead of the element's usual behavior, then jump to the
+ last step in the overall set of steps (fallback).</p>
+
+ <p class=note>For example, a user could ask for the element's
+ <a href=#fallback-content>fallback content</a> to be shown because that content
+ uses a format that the user finds more accessible.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the element has an ancestor <a href=#media-element>media element</a>, or
+ has an ancestor <code><a href=#the-object-element>object</a></code> element that is <em>not</em>
+ showing its <a href=#fallback-content>fallback content</a>, or if the element is
+ not <a href=#in-a-document title="in a document">in a <code>Document</code></a>
+ with a <a href=#browsing-context>browsing context</a>, or if the element's
+ <code><a href=#document>Document</a></code> is not <a href=#fully-active>fully active</a>, or if the
+ element is still in the <a href=#stack-of-open-elements>stack of open elements</a> of an
+ <a href=#html-parser>HTML parser</a> or <a href=#xml-parser>XML parser</a>, then jump to
+ the last step in the overall set of steps (fallback).</p>
+
+ </li>
+
+ <li>
+
+ <!-- what if it's not in the document? if that should prevent
+ plugin instantiation, then here just skip to the last step -->
+
+ <p>If the <code title=attr-object-classid><a href=#attr-object-classid>classid</a></code>
+ attribute is present, and has a value that isn't the empty string,
+ then: if the user agent can find a <a href=#plugin>plugin</a> suitable
+ according to the value of the <code title=attr-object-classid><a href=#attr-object-classid>classid</a></code> attribute, and either
+ <a href=#sandboxPluginObject>plugins aren't being sandboxed</a>
+ or that <a href=#plugin>plugin</a> can be <a href=#concept-plugin-secure title=concept-plugin-secure>secured</a>, then that
+ <a href=#plugin>plugin</a> <a href=#object-plugin>should be used</a>,
+ and the value of the <code title=attr-object-data><a href=#attr-object-data>data</a></code>
+ attribute, if any, should be passed to the <a href=#plugin>plugin</a>. If
+ no suitable <a href=#plugin>plugin</a> can be found, or if the
+ <a href=#plugin>plugin</a> reports an error, jump to the last step in the
+ overall set of steps (fallback).</p>
+
+ <!--
+ case insensitive:
+ is "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" -> application/x-shockwave-flash
+ is "clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa" -> audio/x-pn-realaudio-plugin
+ is "clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" -> video/quicktime
+ is "clsid:166b1bca-3f9c-11cf-8075-444553540000" -> application/x-director
+ is "clsid:6bf52a52-394a-11d3-b153-00c04f79faa6" -> application/x-mplayer2
+ starts with "java:" -> application/x-java-vm
+ starts with "clsid:" -> application/x-oleobject
+ -->
+
+ </li>
+
+ <!-- (v2?)
+ we may have to define magic fallback to <param> if it turns out to
+ be needed in testing:
+ <hyatt> apparently your url can come from <param>
+ <hyatt> not just the data attribute
+ <hyatt> our code looks for params with "src", "movie", "code" and "url"
+ <hyatt> and also tries to find the type on a param
+ <Hixie> oh that's you trying to have hacky activex support
+ <Hixie> opera does that too
+ <hyatt> yeah we support activex versions of plugins that are common
+ <hyatt> like flash and quicktime and realaudio
+ <Hixie> that would be a step 1b. if no data attribute, then look for a <param> to get you a URL instead.
+ <Hixie> and if you find one, carry on as if that was your data="".
+ -->
+
+ <li><p>If the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute
+ is present and its value is not the empty string, then:</p>
+
+ <ol><li><p>If the <code title=attr-object-type><a href=#attr-object-type>type</a></code>
+ attribute is present and its value is not a type that the user
+ agent supports, and is not a type that the user agent can find a
+ <a href=#plugin>plugin</a> for, then the user agent may jump to the last
+ step in the overall set of steps (fallback) without fetching the
+ content to examine its real type.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
+ <a href=#url>URL</a> specified by the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute, relative to the
+ element.</li>
+
+ <li><p>If that failed, <a href=#fire-a-simple-event>fire a simple event</a> named
+ <code title=event-error>error</code> at the element, then jump
+ to the last step in the overall set of steps (fallback).</li>
+
+ <li>
+
+ <p><a href=#fetch>Fetch</a> the resulting <a href=#absolute-url>absolute URL</a>,
+ from the element's <a href=#browsing-context-scope-origin>browsing context scope origin</a> if
+ it has one<!-- potentially http-origin privacy sensitive
+ -->.</p>
+
+ <!-- similar text in various places --> <p>Fetching the resource
+ must <a href=#delay-the-load-event>delay the load event</a> of the element's document
+ until the <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a task">queued</a> by the <a href=#networking-task-source>networking task
+ source</a> once the resource has been <a href=#fetch title=fetch>fetched</a> (defined next) has been run.</p>
+
+ <p>For the purposes of the <a href=#application-cache>application cache</a>
+ networking model, this <a href=#fetch>fetch</a> operation is not for a
+ <a href=#child-browsing-context>child browsing context</a> (though it might end up
+ being used for one after all, as defined below).</p>
+
+ </li>
+
+ <li><p>If the resource is not yet available (e.g. because the
+ resource was not available in the cache, so that loading the
+ resource required making a request over the network), then jump
+ to the last step in the overall set of steps (fallback). The
+ <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue
+ a task">queued</a> by the <a href=#networking-task-source>networking task source</a>
+ once the resource is available must restart this algorithm from
+ this step. Resources can load incrementally; user agents may opt
+ to consider a resource "available" whenever enough data has been
+ obtained to begin processing the resource.</li>
+
+ <li><p>If the load failed (e.g. there was an HTTP 404 error,
+ there was a DNS error), <a href=#fire-a-simple-event>fire a simple event</a> named
+ <code title=event-error>error</code> at the element, then jump
+ to the last step in the overall set of steps (fallback).</li>
+
+ <li id=object-type-detection>
+
+ <p>Determine the <var title="">resource type</var>, as follows:</p>
+
+<!-- Hopefully this step is exactly equivalent to the following:
+
+ START
+ |
+ V
+ Is there a Content-Type and is the UA going to obey it blindly?
+ | |
+ | YES | NO
+ | V YES
+ | Is there a type="" attribute whose value is a plugin type? ============================================-.
+ | | |
+ | | NO |
+ | V NO YES |
+ | Is there a Content type? ========-> Is there a type="" attribute? ==========> Let TYPE be type="" |
+ | | | attribute value |
+ | | YES | NO | |
+ V NO V | V |
+ +-<============== Is it text/plain or application/octet-stream? `==> Let TYPE be =====>+ |
+ | | | Sniffed type | |
+ | | text/plain | octet-stream V |
+ | V YES V Is TYPE |
+ | Does the page sniff as binary? ======> Is there a type="" attribute? application/octet-stream? |
+ | | | | | | |
+ | | NO | YES | NO | YES | NO |
+ | | | YES V V | |
+ | | application/octet-stream? =====> Extension that is plugin type? | |
+ | | | | | | |
+ | | | NO | NO | YES | |
+ | | V | | | |
+ | | Type attribute is XML or YES V | | |
+ | | doesn't start with image/* ======> FALLBACK | | |
+ | | and is not a plugin type? | | |
+ | | | | | |
+ | | | NO | | V
+ V V V V V Use
+ Use Use Use it (will be Use Use type=""
+ Content-Type text/plain bitmap or plugin) extension TYPE attribute
+ | | | | | |
+ | V V V V |
+ `================->-+========================================>-+==============>-+-<============-+-<==============+-<======'
+ |
+ V
+ Continue following rules in the spec, which might
+ result in a plugin, a browsing context, an image,
+ or using fallback, depending on the UA and the type.
+
+
+ "Extension that is plugin type?" means "Is there an extension that matches one that a plugin supports?".
+ Plugins are not allowed to register text/plain or application/octet-stream.
+
+-->
+
+ <ol><li>
+
+ <p>Let the <var title="">resource type</var> be unknown.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <code><a href=#the-object-element>object</a></code> element has a <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute and a <code title=attr-object-typemustmatch><a href=#attr-object-typemustmatch>typemustmatch</a></code>
+ attribute, and the resource has <a href=#content-type title=Content-Type>associated Content-Type metadata</a>,
+ and the type specified in <a href=#content-type title=Content-Type>the
+ resource's Content-Type metadata</a> is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the value of the element's
+ <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute, then let
+ <var title="">resource type</var> be that type and jump to the
+ step below labeled <i>handler</i>.</p>
+
+ <!-- do we need to <span>strip leading and trailing
+ whitespace</span> from anything here? collapse sequences of
+ spaces? drop parameters? -->
+
+ </li>
+
+ <li>
+
+ <p>If the <code><a href=#the-object-element>object</a></code> element has a <code title=attr-object-typemustmatch><a href=#attr-object-typemustmatch>typemustmatch</a></code>
+ attribute, jump to the step below labeled <i>handler</i>.</p>
+
+ </li>
+
+ <li>
+
+ <!-- by request: http://www.w3.org/Bugs/Public/show_bug.cgi?id=8479 -->
+
+ <p>If the user agent is configured to strictly obey
+ Content-Type headers for this resource, and the resource has
+ <a href=#content-type title=Content-Type>associated Content-Type
+ metadata</a>, then let the <var title="">resource
+ type</var> be the type specified in <a href=#content-type title=Content-Type>the resource's Content-Type
+ metadata</a>, and jump to the step below labeled
+ <i>handler</i>.</p>
+
+ <p class=warning>This can introduce a vulnerability, wherein
+ a site is trying to embed a resource that uses a particular
+ plugin, but the remote site overrides that and instead
+ furnishes the user agent with a resource that triggers a
+ different plugin with different security characteristics. <!--
+ e.g. the example given above, where the site is expecting
+ Flash with allowScriptAccess=never, and instead gets back Java
+ with its unrestricted DOM access --></p>
+
+ </li>
+
+ <li>
+
+ <p>If there is a <code title=attr-object-type><a href=#attr-object-type>type</a></code>
+ attribute present on the <code><a href=#the-object-element>object</a></code> element, and that
+ attribute's value is not a type that the user agent supports,
+ but it <em>is</em> a type that a <a href=#plugin>plugin</a> supports,
+ then let the <var title="">resource type</var> be the type
+ specified in that <code title=attr-object-type><a href=#attr-object-type>type</a></code>
+ attribute, and jump to the step below labeled
+ <i>handler</i>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Run the approprate set of steps from the following
+ list:</p>
+
+ <dl class=switch><dt>The resource has <a href=#content-type title=Content-Type>associated
+ Content-Type metadata</a></dt>
+
+ <dd>
+
+ <ol><li>
+
+ <p>Let <var title="">binary</var> be false.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the type specified in <a href=#content-type title=Content-Type>the
+ resource's Content-Type metadata</a> is
+ "<code>text/plain</code>", and the result of applying the
+ <a href=#content-type-sniffing:-text-or-binary title="Content-Type sniffing: text or binary">rules
+ for distinguishing if a resource is text or binary</a>
+ to the resource is that the resource is not
+ <code>text/plain</code>, then set <var title="">binary</var> to true.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the type specified in <a href=#content-type title=Content-Type>the
+ resource's Content-Type metadata</a> is
+ "<code>application/octet-stream</code>", then set <var title="">binary</var> to true.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">binary</var> is false, then let the
+ <var title="">resource type</var> be the type specified in
+ <a href=#content-type title=Content-Type>the resource's Content-Type
+ metadata</a>, and jump to the step below labeled
+ <i>handler</i>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there is a <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute present on
+ the <code><a href=#the-object-element>object</a></code> element, and its value is not
+ <code>application/octet-stream</code>, then run the
+ following steps:</p>
+
+ <ol><li>
+
+ <p>If the attribute's value is a type that a <a href=#plugin>plugin</a> supports, or
+ the attribute's value is a type that starts with "<code>image/</code>" that is not also an <a href=#xml-mime-type>XML MIME type</a>,
+ then let the <var title="">resource type</var> be the type specified in that <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute.</p>
+
+ </li>
+
+ <li>
+
+ <p>Jump to the step below labeled <i>handler</i>.</p>
+
+ </li>
+
+ </ol></li>
+
+ </ol></dd>
+
+ <dt>The resource does not have <a href=#content-type title=Content-Type>associated Content-Type
+ metadata</a></dt>
+
+ <dd>
+
+ <ol><li>
+
+ <p>If there is a <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute present on
+ the <code><a href=#the-object-element>object</a></code> element, then let the <var title="">tentative type</var> be the type specified in that
+ <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute.</p>
+
+ <p>Otherwise, let <var title="">tentative type</var> be the
+ <a href=#content-type-sniffing-0 title="content-type sniffing">sniffed type of the
+ resource</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">tentative type</var> is <em>not</em>
+ <code>application/octet-stream</code>, then let <var title="">resource type</var> be <var title="">tentative
+ type</var> and jump to the step below labeled
+ <i>handler</i>.</p>
+
+ </li>
+
+ </ol></dd>
+
+ </dl></li>
+
+ <li>
+
+ <!-- if we get to this point we know we can successfully
+ parsed the URL, since this algorithm is only used after
+ fetching the resource in the steps above -->
+
+ <p>If the <a href=#url-path title=url-path>&lt;path&gt;</a> component
+ of the <a href=#url>URL</a> of the specified resource (after any
+ redirects) matches a pattern that a <a href=#plugin>plugin</a>
+ supports, then let <var title="">resource type</var> be the
+ type that that plugin can handle.</p>
+
+ <p class=example>For example, a plugin might say that it can
+ handle resources with <a href=#url-path title=url-path>&lt;path&gt;</a> components that end with
+ the four character string "<code title="">.swf</code>".</p>
+
+ <!-- it's sad that we have to do extension sniffing. sigh. -->
+ <!-- see also <embed> which has a similar step -->
+
+ </li>
+
+ </ol><p class=note>It is possible for this step to finish, or for
+ one of the substeps above to jump straight to the next step,
+ with <var title="">resource type</var> still being unknown. In
+ both cases, the next step will trigger fallback.</p>
+
+ </li>
+
+ <li><p><i>Handler</i>: Handle the content as given by the first
+ of the following cases that matches:</p>
+
+ <dl class=switch><dt>If the <var title="">resource type</var> is not a type that
+ the user agent supports, but it <em>is</em> a type that a
+ <a href=#plugin>plugin</a> supports</dt>
+
+ <dd>
+
+ <p>If <a href=#sandboxPluginObject>plugins are being
+ sandboxed</a> and the plugin that supports <var title="">resource type</var> cannot be <a href=#concept-plugin-secure title=concept-plugin-secure>secured</a>, jump to the last
+ step in the overall set of steps (fallback).</p>
+
+ <p>Otherwise, the user agent should <a href=#object-plugin>use the plugin that supports <var title="">resource type</var></a> and pass the content of the
+ resource to that <a href=#plugin>plugin</a>. If the
+ <a href=#plugin>plugin</a> reports an error, then jump to the last
+ step in the overall set of steps (fallback).</p>
+
+ </dd>
+
+
+ <dt>If the <var title="">resource type</var> is an <a href=#xml-mime-type>XML MIME
+ type</a>, or
+ <!-- (redundant with the next one) if the <var title="">resource type</var> is HTML, or -->
+ if the <var title="">resource type</var> does not start with
+ "<code>image/</code>"</dt>
+
+ <dd>
+
+ <p>The <code><a href=#the-object-element>object</a></code> element must be associated with a
+ newly created <a href=#nested-browsing-context>nested browsing context</a>, if it does
+ not already have one.</p>
+
+ <p>If the <a href=#url>URL</a> of the given resource is not
+ <code><a href=#about:blank>about:blank</a></code>, the element's <a href=#nested-browsing-context>nested browsing
+ context</a> must then be <a href=#navigate title=navigate>navigated</a><!--DONAV object--> to that
+ resource, with <a href=#replacement-enabled>replacement enabled</a>, and with the
+ <code><a href=#the-object-element>object</a></code> element's document's <a href=#browsing-context>browsing
+ context</a> as the <a href=#source-browsing-context>source browsing context</a>.
+ (The <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute of
+ the <code><a href=#the-object-element>object</a></code> element doesn't get updated if the
+ browsing context gets further navigated to other
+ locations.)</p>
+
+ <p>If the <a href=#url>URL</a> of the given resource <em>is</em>
+ <code><a href=#about:blank>about:blank</a></code>, then, instead, the user agent must
+ <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+ named <code title=event-load>load</code> at the
+ <code><a href=#the-object-element>object</a></code> element. <span class=note>No <code title=event-load>load</code> event is fired at the
+ <code><a href=#about:blank>about:blank</a></code> document itself.</span></p>
+
+ <p>The <code><a href=#the-object-element>object</a></code> element <a href=#represents>represents</a> the
+ <a href=#nested-browsing-context>nested browsing context</a>.</p>
+
+ <p>If the <code title=attr-object-name><a href=#attr-object-name>name</a></code> attribute
+ is present, the <a href=#browsing-context-name>browsing context name</a> must be set
+ to the value of this attribute; otherwise, the <a href=#browsing-context-name>browsing
+ context name</a> must be set to the empty string.</p>
+
+ <p class=note>In certain situations, e.g. if the resource
+ was <a href=#fetch title=fetch>fetched</a> from an
+ <a href=#application-cache>application cache</a> but it is an HTML file with a
+ <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute
+ that points to a different <a href=#concept-appcache-manifest title=concept-appcache-manifest>application cache
+ manifest</a>, the <a href=#navigate title=navigate>navigation</a>
+ of the <a href=#browsing-context>browsing context</a> will be restarted so as
+ to load the resource afresh from the network or a different
+ <a href=#application-cache>application cache</a>. Even if the resource is then
+ found to have a different type, it is still used as part of a
+ <a href=#nested-browsing-context>nested browsing context</a>: only the
+ <a href=#navigate>navigate</a> algorithm is restarted, not this
+ <code><a href=#the-object-element>object</a></code> algorithm.</p>
+
+ <!-- note that malformed XML files don't cause fallback -->
+
+ </dd>
+
+
+ <dt>If the <var title="">resource type</var> starts with
+ "<code>image/</code>", and support for images has not been
+ disabled</dt>
+
+ <dd>
+
+ <p>Apply the <a href=#content-type-sniffing:-image title="content-type sniffing: image">image
+ sniffing</a> rules to determine the type of the image.</p>
+
+ <p>The <code><a href=#the-object-element>object</a></code> element <a href=#represents>represents</a> the
+ specified image. The image is not a <a href=#nested-browsing-context>nested browsing
+ context</a>.</p>
+
+ <p>If the image cannot be rendered, e.g. because it is
+ malformed or in an unsupported format, jump to the last step
+ in the overall set of steps (fallback).</p>
+
+ </dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>The given <var title="">resource type</var> is not
+ supported. Jump to the last step in the overall set of steps
+ (fallback).</p>
+
+ <p class=note>If the previous step ended with the <var title="">resource type</var> being unknown, this is the case
+ that is triggered.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li><p>The element's contents are not part of what the
+ <code><a href=#the-object-element>object</a></code> element represents.</p>
+
+ <li>
+
+ <p>Once the resource is completely loaded, <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the element.</p>
+
+ <p>The <a href=#task-source>task source</a> for this task<!--tasks mentioned
+ in this section--> is the <a href=#dom-manipulation-task-source>DOM manipulation task
+ source</a>.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li><p>If the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute
+ is absent but the <code title=attr-object-type><a href=#attr-object-type>type</a></code>
+ attribute is present, and the user agent can find a
+ <a href=#plugin>plugin</a> suitable according to the value of the <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute, and either <a href=#sandboxPluginObject>plugins aren't being sandboxed</a> or
+ the <a href=#plugin>plugin</a> can be <a href=#concept-plugin-secure title=concept-plugin-secure>secured</a>, then that
+ <a href=#plugin>plugin</a> <a href=#object-plugin>should be used</a>. If
+ these conditions cannot be met, or if the <a href=#plugin>plugin</a>
+ reports an error, jump to the next step (fallback).</li>
+
+ <li><p>(Fallback.) The <code><a href=#the-object-element>object</a></code> element
+ <a href=#represents>represents</a> the element's children, ignoring any
+ leading <code><a href=#the-param-element>param</a></code> element children. This is the element's
+ <a href=#fallback-content>fallback content</a>. If the element has an instantiated
+ <a href=#plugin>plugin</a>, then unload it.</li>
+
+ </ol><p id=object-plugin>When the algorithm above instantiates a
+ <a href=#plugin>plugin</a>, the user agent should pass to the
+ <a href=#plugin>plugin</a> used the names and values of all the attributes
+ on the element, in the order they were added to the element, with
+ the attributes added by the parser being ordered in source order,
+ followed by a parameter named "PARAM" whose value is null,
+ followed by all the names and values of <a href=#concept-param-parameter title=concept-param-parameter>parameters</a> given by
+ <code><a href=#the-param-element>param</a></code> elements that are children of the
+ <code><a href=#the-object-element>object</a></code> element, in <a href=#tree-order>tree order</a>. If the
+ <a href=#plugin>plugin</a> supports a scriptable interface, the
+ <code><a href=#htmlobjectelement>HTMLObjectElement</a></code> object representing the element
+ should expose that interface. The <code><a href=#the-object-element>object</a></code> element
+ <a href=#represents>represents</a> the <a href=#plugin>plugin</a>. The
+ <a href=#plugin>plugin</a> is not a nested <a href=#browsing-context>browsing
+ context</a>.</p>
+
+ <p id=sandboxPluginObject>Plugins are considered sandboxed for the
+ purpose of an <code><a href=#the-object-element>object</a></code> element if either:</p>
+
+ <ul><li>the <a href=#sandboxed-plugins-browsing-context-flag>sandboxed plugins browsing context flag</a> was
+ set on the <code><a href=#the-object-element>object</a></code> element's <code><a href=#document>Document</a></code>'s
+ <a href=#browsing-context>browsing context</a> when the <code><a href=#document>Document</a></code> was
+ created, or</li>
+
+ <li>the <code><a href=#the-object-element>object</a></code> element's <code><a href=#document>Document</a></code> was
+ parsed from a resource whose <a href=#content-type-sniffing-0 title="Content-Type
+ sniffing">sniffed type</a> as determined during <a href=#navigate title=navigate>navigation</a> is
+ <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code></li>
+
+ </ul><p class=note>The above algorithm is independent of CSS properties
+ (including 'display', 'overflow', and 'visibility'). For example, it
+ runs even if the element is hidden with a 'display:none' CSS style,
+ and does not run <em>again</em> if the element's visibility
+ changes.</p>
+
+ <p>Due to the algorithm above, the contents of <code><a href=#the-object-element>object</a></code>
+ elements act as <a href=#fallback-content>fallback content</a>, used only when
+ referenced resources can't be shown (e.g. because it returned a 404
+ error). This allows multiple <code><a href=#the-object-element>object</a></code> elements to be
+ nested inside each other, targeting multiple user agents with
+ different capabilities, with the user agent picking the first one it
+ supports.</p>
+
+ <p>Whenever the <code title=attr-object-name><a href=#attr-object-name>name</a></code> attribute
+ is set, if the <code><a href=#the-object-element>object</a></code> element has a nested
+ <a href=#browsing-context>browsing context</a>, its <a href=#browsing-context-name title="browsing context
+ name">name</a> must be changed to the new value. If the attribute
+ is removed, if the <code><a href=#the-object-element>object</a></code> element has a <a href=#browsing-context>browsing
+ context</a>, the <a href=#browsing-context-name>browsing context name</a> must be set
+ to the empty string.</p>
+
+ </div>
+
+ <p>The <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute,
+ if present while the <code><a href=#the-object-element>object</a></code> element represents an
+ image, can indicate that the object has an associated <a href=#image-map>image
+ map</a>. <span class=impl>The attribute must be ignored if the
+ <code><a href=#the-object-element>object</a></code> element doesn't represent an image.</span></p>
+
+ <p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
+ explicitly associate the <code><a href=#the-object-element>object</a></code> element with its
+ <a href=#form-owner>form owner</a>.</p>
+
+ <div class=impl>
+
+ <p><strong>Constraint validation</strong>: <code><a href=#the-object-element>object</a></code>
+ elements are always <a href=#barred-from-constraint-validation>barred from constraint
+ validation</a>.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-object-element>object</a></code> element supports <a href=#dimension-attributes>dimension
+ attributes</a>.</p>
+
+ <div class=impl>
+
+ <p>The IDL attributes <dfn id=dom-object-data title=dom-object-data><code>data</code></dfn>, <dfn id=dom-object-type title=dom-object-type><code>type</code></dfn>, <dfn id=dom-object-name title=dom-object-name><code>name</code></dfn>, and <dfn id=dom-object-usemap title=dom-object-useMap><code>useMap</code></dfn> each must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ <p>The <dfn id=dom-object-typemustmatch title=dom-object-typeMustMatch><code>typeMustMatch</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-object-typemustmatch><a href=#attr-object-typemustmatch>typemustmatch</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-object-contentdocument title=dom-object-contentDocument><code>contentDocument</code></dfn>
+ IDL attribute must return the <code><a href=#document>Document</a></code> object of the
+ <a href=#active-document>active document</a> of the <code><a href=#the-object-element>object</a></code> element's
+ <a href=#nested-browsing-context>nested browsing context</a>, if it has one; otherwise, it
+ must return null.</p>
+
+ <p>The <dfn id=dom-object-contentwindow title=dom-object-contentWindow><code>contentWindow</code></dfn>
+ IDL attribute must return the <code><a href=#windowproxy>WindowProxy</a></code> object of the
+ <code><a href=#the-object-element>object</a></code> element's <a href=#nested-browsing-context>nested browsing context</a>,
+ if it has one; otherwise, it must return null.</p>
+
+ <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code>
+ attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
+ methods, are part of the <a href=#the-constraint-validation-api>constraint validation API</a>. The
+ <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> IDL attribute is part of the
+ element's forms API.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, a Java applet is embedded in a page
+ using the <code><a href=#the-object-element>object</a></code> element. (Generally speaking, it is
+ better to avoid using applets like these and instead use native
+ JavaScript and HTML to provide the functionality, since that way
+ the application will work on all Web browsers without requiring a
+ third-party plugin. Many devices, especially embedded devices, do
+ not support third-party technologies like Java.)</p>
+
+ <pre>&lt;figure&gt;
+ &lt;object type="application/x-java-applet"&gt;
+ &lt;param name="code" value="MyJavaClass"&gt;
+ &lt;p&gt;You do not have Java available, or it is disabled.&lt;/p&gt;
+ &lt;/object&gt;
+ &lt;figcaption&gt;My Java Clock&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example, an HTML page is embedded in another using the
+ <code><a href=#the-object-element>object</a></code> element.</p>
+
+ <pre>&lt;figure&gt;
+ &lt;object data="clock.html"&gt;&lt;/object&gt;
+ &lt;figcaption&gt;My HTML Clock&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows how a plugin can be used in HTML (in
+ this case the Flash plugin, to show a video file). Fallback is
+ provided for users who do not have Flash enabled, in this case
+ using the <code><a href=#the-video-element>video</a></code> element to show the video for those
+ using user agents that support <code><a href=#the-video-element>video</a></code>, and finally
+ providing a link to the video for those who have neither Flash nor
+ a <code><a href=#the-video-element>video</a></code>-capable browser.</p>
+
+ <pre>&lt;p&gt;Look at my video:
+ &lt;object type="application/x-shockwave-flash"&gt;
+ &lt;param name=movie value="http://video.example.com/library/watch.swf"&gt;
+ &lt;param name=allowfullscreen value=true&gt;
+ &lt;param name=flashvars value="http://video.example.com/vids/315981"&gt;
+ &lt;video controls src="http://video.example.com/vids/315981"&gt;
+ &lt;a href="http://video.example.com/vids/315981"&gt;View video&lt;/a&gt;.
+ &lt;/video&gt;
+ &lt;/object&gt;
+&lt;/p&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-param-element><span class=secno>4.8.5 </span>The <dfn><code>param</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of an <code><a href=#the-object-element>object</a></code> element, before any <a href=#flow-content>flow content</a>.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-param-name><a href=#attr-param-name>name</a></code></dd>
+ <dd><code title=attr-param-value><a href=#attr-param-value>value</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlparamelement>HTMLParamElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-param-name title=dom-param-name>name</a>;
+ attribute DOMString <a href=#dom-param-value title=dom-param-value>value</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-param-element>param</a></code> element defines parameters for plugins
+ invoked by <code><a href=#the-object-element>object</a></code> elements. It does not <a href=#represents title=represents>represent</a> anything on its own.</p>
+
+ <p>The <dfn id=attr-param-name title=attr-param-name><code>name</code></dfn>
+ attribute gives the name of the parameter.</p>
+
+ <p>The <dfn id=attr-param-value title=attr-param-value><code>value</code></dfn>
+ attribute gives the value of the parameter.</p>
+
+ <p>Both attributes must be present. They may have any value.</p>
+
+ <div class=impl>
+
+ <p>If both attributes are present, and if the parent element of the
+ <code><a href=#the-param-element>param</a></code> is an <code><a href=#the-object-element>object</a></code> element, then the
+ element defines a <dfn id=concept-param-parameter title=concept-param-parameter>parameter</dfn> with the given
+ name-value pair.</p>
+
+ <p>If either the name or value of a <a href=#concept-param-parameter title=concept-param-parameter>parameter</a> defined by a
+ <code><a href=#the-param-element>param</a></code> element that is the child of an
+ <code><a href=#the-object-element>object</a></code> element that <a href=#represents>represents</a> an
+ instantiated <a href=#plugin>plugin</a> changes, and if that
+ <a href=#plugin>plugin</a> is communicating with the user agent using an
+ API that features the ability to update the <a href=#plugin>plugin</a> when
+ the name or value of a <a href=#concept-param-parameter title=concept-param-parameter>parameter</a> so changes, then
+ the user agent must appropriately exercise that ability to notify
+ the <a href=#plugin>plugin</a> of the change.</p>
+
+ <p>The IDL attributes <dfn id=dom-param-name title=dom-param-name><code>name</code></dfn> and <dfn id=dom-param-value title=dom-param-value><code>value</code></dfn> must both
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows how the <code><a href=#the-param-element>param</a></code> element
+ can be used to pass a parameter to a plugin, in this case the O3D
+ plugin.</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html lang="en"&gt;
+ &lt;head&gt;
+ &lt;title&gt;O3D Utah Teapot&lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;p&gt;
+ &lt;object type="application/vnd.o3d.auto"&gt;
+ <strong>&lt;param name="o3d_features" value="FloatingPointTextures"&gt;</strong>
+ &lt;img src="o3d-teapot.png"
+ title="3D Utah Teapot illustration rendered using O3D."
+ alt="When O3D renders the Utah Teapot, it appears as a squat
+ teapot with a shiny metallic finish on which the
+ surroundings are reflected, with a faint shadow caused by
+ the lighting."&gt;
+ &lt;p&gt;To see the teapot actually rendered by O3D on your
+ computer, please download and install the &lt;a
+ href="http://code.google.com/apis/o3d/docs/gettingstarted.html#install"&gt;O3D plugin&lt;/a&gt;.&lt;/p&gt;
+ &lt;/object&gt;
+ &lt;script src="o3d-teapot.js"&gt;&lt;/script&gt;
+ &lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-video-element><span class=secno>4.8.6 </span>The <dfn id=video><code>video</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#embedded-content>Embedded content</a>.</dd>
+ <dd>If the element has a <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute: <a href=#interactive-content>Interactive content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#embedded-content>embedded content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>If the element has a <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute:
+ zero or more <code><a href=#the-track-element>track</a></code> elements, then
+ <a href=#transparent>transparent</a>, but with no <a href=#media-element>media element</a> descendants.</dd>
+ <dd>If the element does not have a <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute: zero or more <code><a href=#the-source-element>source</a></code> elements, then
+ zero or more <code><a href=#the-track-element>track</a></code> elements, then
+ <a href=#transparent>transparent</a>, but with no <a href=#media-element>media element</a> descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-media-src><a href=#attr-media-src>src</a></code></dd>
+ <dd><code title=attr-media-crossorigin><a href=#attr-media-crossorigin>crossorigin</a></code></dd>
+ <dd><code title=attr-video-poster><a href=#attr-video-poster>poster</a></code></dd>
+ <dd><code title=attr-media-preload><a href=#attr-media-preload>preload</a></code></dd>
+ <dd><code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code></dd>
+ <dd><code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code></dd>
+ <dd><code title=attr-media-loop><a href=#attr-media-loop>loop</a></code></dd>
+ <dd><code title=attr-media-muted><a href=#attr-media-muted>muted</a></code></dd>
+ <dd><code title=attr-media-controls><a href=#attr-media-controls>controls</a></code></dd>
+ <dd><code title=attr-dim-width><a href=#attr-dim-width>width</a></code></dd>
+ <dd><code title=attr-dim-height><a href=#attr-dim-height>height</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlvideoelement>HTMLVideoElement</dfn> : <a href=#htmlmediaelement>HTMLMediaElement</a> {
+ attribute unsigned long <a href=#dom-dim-width title=dom-dim-width>width</a>;
+ attribute unsigned long <a href=#dom-dim-height title=dom-dim-height>height</a>;
+ readonly attribute unsigned long <a href=#dom-video-videowidth title=dom-video-videoWidth>videoWidth</a>;
+ readonly attribute unsigned long <a href=#dom-video-videoheight title=dom-video-videoHeight>videoHeight</a>;
+ attribute DOMString <a href=#dom-video-poster title=dom-video-poster>poster</a>;
+};</pre>
+ </dd>
+ </dl><p>A <code><a href=#the-video-element>video</a></code> element is used for playing videos or
+ movies, and audio files with captions.</p>
+
+ <p>Content may be provided inside the <code><a href=#the-video-element>video</a></code>
+ element<span class=impl>. User agents should not show this content
+ to the user</span>; it is intended for older Web browsers which do
+ not support <code><a href=#the-video-element>video</a></code>, so that legacy video plugins can be
+ tried, or to show text to the users of these older browsers informing
+ them of how to access the video contents.</p>
+
+ <p class=note>In particular, this content is not intended to
+ address accessibility concerns. To make video content accessible to
+ the blind, deaf, and those with other physical or cognitive
+ disabilities, a variety of features are available. Captions can be
+ provided, either embedded in the video stream or as external files
+ using the <code><a href=#the-track-element>track</a></code> element. Sign-language tracks can be
+ provided, again either embedded in the video stream or by
+ synchronizing multiple <code><a href=#the-video-element>video</a></code> elements using the <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> attribute or a
+ <code><a href=#mediacontroller>MediaController</a></code> object. Audio descriptions can be
+ provided, either as a separate track embedded in the video stream,
+ or a separate audio track in an <code><a href=#the-audio-element>audio</a></code> element <a href=#slaved-media-elements title="slaved media elements">slaved</a> to the same controller
+ as the <code><a href=#the-video-element>video</a></code> element(s), or in text form using a
+ <a href=#webvtt-file>WebVTT file</a> referenced using the <code><a href=#the-track-element>track</a></code>
+ element and synthesized into speech by the user agent. WebVTT can
+ also be used to provide chapter titles. For users who would rather
+ not use a media element at all, transcripts or other textual
+ alternatives can be provided by simply linking to them in the prose
+ near the <code><a href=#the-video-element>video</a></code> element.</p>
+
+ <p>The <code><a href=#the-video-element>video</a></code> element is a <a href=#media-element>media element</a>
+ whose <a href=#media-data>media data</a> is ostensibly video data, possibly
+ with associated audio data.</p>
+
+ <p>The <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>, <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>,
+ <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>,
+ <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>,
+ <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attributes are <a href=#media-element-attributes title="media element attributes">the attributes common to all media
+ elements</a>.</p>
+
+ <p>The <dfn id=attr-video-poster title=attr-video-poster><code>poster</code></dfn>
+ attribute gives the address of an image file that the user agent can
+ show while no video data is available. The attribute, if present,
+ must contain a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
+ spaces</a>.</p>
+
+ <div class=impl>
+
+ <p>If the specified resource is to be used, then, when the element
+ is created or when the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code>
+ attribute is set, changed, or removed, the user agent must run the
+ following steps to determine the element's <dfn id=poster-frame>poster
+ frame</dfn>:</p> <!-- thus it is unaffected by changes to the base
+ URL. -->
+
+ <ol><li><p>If there is an existing instance of this algorithm running
+ for this <code><a href=#the-video-element>video</a></code> element, abort that instance of this
+ algorithm without changing the <a href=#poster-frame>poster frame</a>.</li>
+
+ <li><p>If the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code>
+ attribute's value is the empty string or if the attribute is
+ absent, then there is no <a href=#poster-frame>poster frame</a>; abort these
+ steps.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute's value relative
+ to the element. If this fails, then there is no <a href=#poster-frame>poster
+ frame</a>; abort these steps.</li>
+
+ <li><p><a href=#fetch>Fetch</a> the resulting <a href=#absolute-url>absolute URL</a>,
+ from the element's <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a>.
+ This must <a href=#delay-the-load-event>delay the load event</a> of the element's
+ document.</li>
+
+ <!-- could define how to sniff for an image here -->
+
+ <li><p>If an image is thus obtained, the <a href=#poster-frame>poster frame</a>
+ is that image. Otherwise, there is no <a href=#poster-frame>poster
+ frame</a>.</li>
+
+ </ol></div>
+
+ <p class=note>The image given by the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute, the <i><a href=#poster-frame>poster
+ frame</a></i>, is intended to be a representative frame of the video
+ (typically one of the first non-blank frames) that gives the user an
+ idea of what the video is like.</p>
+
+ <div class=impl>
+
+ <hr><p>When no video data is available (the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is either
+ <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, or <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> but no video
+ data has yet been obtained at all, or the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is any
+ subsequent value but the <a href=#media-resource>media resource</a> does not have a
+ video channel), the <code><a href=#the-video-element>video</a></code> element
+ <a href=#represents>represents</a> the <a href=#poster-frame>poster frame</a>.</p>
+
+ <p>When a <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a> and the <a href=#current-playback-position title="current
+ playback position">current playback position</a> is the first
+ frame of video, the element <a href=#represents>represents</a> the <a href=#poster-frame>poster
+ frame</a>, unless a frame of video has already been shown, in
+ which case the element <a href=#represents>represents</a> the frame of video
+ corresponding to the <a href=#current-playback-position title="current playback position">current
+ playback position</a>.</p>
+
+ <p>When a <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a> at any other position, and
+ the <a href=#media-resource>media resource</a> has a video channel, the element
+ <a href=#represents>represents</a> the frame of video corresponding to the
+ <a href=#current-playback-position title="current playback position">current playback
+ position</a>, or, if that is not yet available (e.g. because the
+ video is seeking or buffering), the last frame of the video to have
+ been rendered.</p>
+
+ <p>When a <code><a href=#the-video-element>video</a></code> element whose <a href=#media-resource>media
+ resource</a> has a video channel is <a href=#potentially-playing>potentially
+ playing</a>, it <a href=#represents>represents</a> the frame of video at the
+ continuously increasing <a href=#current-playback-position title="current playback
+ position">"current" position</a>. When the <a href=#current-playback-position>current playback
+ position</a> changes such that the last frame rendered is no
+ longer the frame corresponding to the <a href=#current-playback-position>current playback
+ position</a> in the video, the new frame must be rendered.
+
+ Similarly, any audio associated with the <a href=#media-resource>media resource</a>
+ must, if played, be played synchronized with the <a href=#current-playback-position>current
+ playback position</a>, at the element's <a href=#effective-media-volume>effective media
+ volume</a>.</p>
+
+ <p>When a <code><a href=#the-video-element>video</a></code> element whose <a href=#media-resource>media
+ resource</a> has a video channel is neither <a href=#potentially-playing>potentially
+ playing</a> nor <a href=#dom-media-paused title=dom-media-paused>paused</a>
+ (e.g. when seeking or stalled), the element <a href=#represents>represents</a>
+ the last frame of the video to have been rendered.</p>
+
+ <p class=note>Which frame in a video stream corresponds to a
+ particular playback position is defined by the video stream's
+ format.</p>
+
+ <p>The <code><a href=#the-video-element>video</a></code> element also <a href=#represents>represents</a> any
+ <a href=#text-track-cue title="text track cue">text track cues</a> whose
+ <a href=#text-track-cue-active-flag>text track cue active flag</a> is set and whose
+ <a href=#text-track>text track</a> is in the <a href=#text-track-showing title="text track
+ showing">showing</a> or <a href=#text-track-showing-by-default title="text track showing by
+ default">showing by default</a> modes.</p>
+
+ <p>In addition to the above, the user agent may provide messages to
+ the user (such as "buffering", "no video loaded", "error", or more
+ detailed information) by overlaying text or icons on the video or
+ other areas of the element's playback area, or in another
+ appropriate manner.</p>
+
+ <p>User agents that cannot render the video may instead make the
+ element <a href=#represents title=represents>represent</a> a link to an
+ external video playback utility or to the video data itself.</p>
+
+ <p>When a <code><a href=#the-video-element>video</a></code> element's <a href=#media-resource>media resource</a>
+ has a video channel, the element <a href=#provides-a-paint-source>provides a paint
+ source</a> whose width is the <a href=#media-resource>media resource</a>'s <a href=#concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic width</a>, whose
+ height is the <a href=#media-resource>media resource</a>'s <a href=#concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</a>, and
+ whose appearance is the frame of video corresponding to the <a href=#current-playback-position title="current playback position">current playback position</a>,
+ if that is available, or else (e.g. when the video is seeking or
+ buffering) its previous appearance, if any, or else (e.g. because
+ the video is still loading the first frame) blackness.</p>
+
+ <hr></div>
+
+ <dl class=domintro><dt><var title="">video</var> . <code title=dom-video-videoWidth><a href=#dom-video-videowidth>videoWidth</a></code></dt>
+ <dt><var title="">video</var> . <code title=dom-video-videoHeight><a href=#dom-video-videoheight>videoHeight</a></code></dt>
+
+ <dd>
+
+ <p>These attributes return the intrinsic dimensions of the video,
+ or zero if the dimensions are not known.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic
+ width</dfn> and <dfn id=concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</dfn> of the
+ <a href=#media-resource>media resource</a> are the dimensions of the resource in
+ CSS pixels after taking into account the resource's dimensions,
+ aspect ratio, clean aperture, resolution, and so forth, as defined
+ for the format used by the resource. If an anamorphic format does
+ not define how to apply the aspect ratio to the video data's
+ dimensions to obtain the "correct" dimensions, then the user agent
+ must apply the ratio by increasing one dimension and leaving the
+ other unchanged.</p>
+
+ <p>The <dfn id=dom-video-videowidth title=dom-video-videoWidth><code>videoWidth</code></dfn> IDL
+ attribute must return the <a href=#concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic width</a> of the
+ video in CSS pixels. The <dfn id=dom-video-videoheight title=dom-video-videoHeight><code>videoHeight</code></dfn> IDL
+ attribute must return the <a href=#concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</a> of
+ the video in CSS pixels. If the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, then the
+ attributes must return 0.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-video-element>video</a></code> element supports <a href=#dimension-attributes>dimension
+ attributes</a>.</p>
+
+ <div class=impl>
+
+ <p>In the absence of style rules to the contrary, video content
+ should be rendered inside the element's playback area such that the
+ video content is shown centered in the playback area at the largest
+ possible size that fits completely within it, with the video
+ content's aspect ratio being preserved. Thus, if the aspect ratio of
+ the playback area does not match the aspect ratio of the video, the
+ video will be shown letterboxed or pillarboxed. Areas of the
+ element's playback area that do not contain the video represent
+ nothing.</p>
+
+ <p class=note>In user agents that implement CSS, the above
+ requirement can be implemented by using the <a href=#video-object-fit>style rule suggested in the rendering
+ section</a>.</p>
+
+ <p>The intrinsic width of a <code><a href=#the-video-element>video</a></code> element's playback
+ area is the <a href=#concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic
+ width</a> of the video resource, if that is available; otherwise
+ it is the intrinsic width of the <a href=#poster-frame>poster frame</a>, if that
+ is available; otherwise it is 300 CSS pixels.</p>
+
+ <p>The intrinsic height of a <code><a href=#the-video-element>video</a></code> element's playback
+ area is the <a href=#concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic
+ height</a> of the video resource, if that is available; otherwise
+ it is the intrinsic height of the <a href=#poster-frame>poster frame</a>, if that
+ is available; otherwise it is 150 CSS pixels.</p>
+
+ <hr><p>User agents should provide controls to enable or disable the
+ display of closed captions, audio description tracks, and other
+ additional data associated with the video stream, though such
+ features should, again, not interfere with the page's normal
+ rendering.</p>
+
+ <p>User agents may allow users to view the video content in manners
+ more suitable to the user (e.g. full-screen or in an independent
+ resizable window). As for the other user interface features,
+ controls to enable this should not interfere with the page's normal
+ rendering unless the user agent is <a href=#expose-a-user-interface-to-the-user title="expose a user
+ interface to the user">exposing a user interface</a>. In such an
+ independent context, however, user agents may make full user
+ interfaces visible, with, e.g., play, pause, seeking, and volume
+ controls, even if the <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute is absent.</p>
+
+ <p>User agents may allow video playback to affect system features
+ that could interfere with the user's experience; for example, user
+ agents could disable screensavers while video playback is in
+ progress.</p>
+
+ <hr><p>The <dfn id=dom-video-poster title=dom-video-poster><code>poster</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> content attribute.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This example shows how to detect when a video has failed to play
+ correctly:</p>
+
+ <pre>&lt;script&gt;
+ function failed(e) {
+ // video playback failed - show a message saying why
+ switch (e.target.error.code) {
+ case e.target.error.MEDIA_ERR_ABORTED:
+ alert('You aborted the video playback.');
+ break;
+ case e.target.error.MEDIA_ERR_NETWORK:
+ alert('A network error caused the video download to fail part-way.');
+ break;
+ case e.target.error.MEDIA_ERR_DECODE:
+ alert('The video playback was aborted due to a corruption problem or because the video used features your browser did not support.');
+ break;
+ case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
+ alert('The video could not be loaded, either because the server or network failed or because the format is not supported.');
+ break;
+ default:
+ alert('An unknown error occurred.');
+ break;
+ }
+ }
+&lt;/script&gt;
+&lt;p&gt;&lt;video src="tgif.vid" autoplay controls onerror="failed(event)"&gt;&lt;/video&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a href="tgif.vid"&gt;Download the video file&lt;/a&gt;.&lt;/p&gt;</pre>
+
+ </div>
+
+
+
+
+ <!--CODECS
+
+ <div class="impl">
+
+ <h5>Video and audio codecs for <code>video</code> elements</h5>
+
+ <p>User agents may support any video and audio codecs and container
+ formats.</p>
+
+ <p class="note">Certain user agents might support no codecs at all,
+ e.g. text browsers running over SSH connections.</p>
+
+ <!- - similar note in audio codecs section - ->
+ <p class="note">Implementations are free to implement support for
+ video codecs either natively, or using platform-specific APIs, or
+ using plugins: this specification does not specify how codecs are to
+ be implemented.</p>
+
+ </div>
+
+ (when replacing this text, also fix "- -" nested comments)-->
+
+
+
+
+
+ <h4 id=the-audio-element><span class=secno>4.8.7 </span>The <dfn id=audio><code>audio</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#embedded-content>Embedded content</a>.</dd>
+ <dd>If the element has a <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute: <a href=#interactive-content>Interactive content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#embedded-content>embedded content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>If the element has a <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute:
+zero or more <code><a href=#the-track-element>track</a></code> elements, then
+<a href=#transparent>transparent</a>, but with no <a href=#media-element>media element</a> descendants.</dd>
+ <dd>If the element does not have a <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute: zero or more <code><a href=#the-source-element>source</a></code> elements, then
+ zero or more <code><a href=#the-track-element>track</a></code> elements, then
+ <a href=#transparent>transparent</a>, but with no <a href=#media-element>media element</a> descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-media-src><a href=#attr-media-src>src</a></code></dd>
+ <dd><code title=attr-media-crossorigin><a href=#attr-media-crossorigin>crossorigin</a></code></dd>
+ <dd><code title=attr-media-preload><a href=#attr-media-preload>preload</a></code></dd>
+ <dd><code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code></dd>
+ <dd><code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code></dd>
+ <dd><code title=attr-media-loop><a href=#attr-media-loop>loop</a></code></dd>
+ <dd><code title=attr-media-muted><a href=#attr-media-muted>muted</a></code></dd>
+ <dd><code title=attr-media-controls><a href=#attr-media-controls>controls</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>[NamedConstructor=<a href=#dom-audio title=dom-Audio>Audio</a>(),
+ NamedConstructor=<a href=#dom-audio-s title=dom-Audio-s>Audio</a>(DOMString src)]
+interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediaelement>HTMLMediaElement</a> {};</pre>
+ </dd>
+ </dl><p>An <code><a href=#the-audio-element>audio</a></code> element <a href=#represents>represents</a> a sound or
+ audio stream.</p>
+
+ <!-- v2 (actually v3) suggestions:
+ * Audio syntesis. Use cases from Charles Pritchard:
+ > Use a sound of varying pitch to hint to a user the location of their
+ > mouse (is it hovering over a button, is it x/y pixels away from the edge
+ > of the screen, how close is it to the center).
+ >
+ > Alter the pitch of a sound to make a very cheap midi instrument.
+ >
+ > Pre-mix a few generated sounds, because the client processor is slow.
+ >
+ > Alter the pitch of an actual audio recording, and pre-mix it, to give
+ > different sounding voices to pre-recorded readings of a single text. As
+ > has been tried for "male" "female" sound fonts.
+ >
+ > Support very simple audio codecs, and programmable synthesizers.
+ -->
+
+ <p>Content may be provided inside the <code><a href=#the-audio-element>audio</a></code>
+ element<span class=impl>. User agents should not show this content
+ to the user</span>; it is intended for older Web browsers which do
+ not support <code><a href=#the-audio-element>audio</a></code>, so that legacy audio plugins can be
+ tried, or to show text to the users of these older browsers informing
+ them of how to access the audio contents.</p>
+
+ <p class=note>In particular, this content is not intended to
+ address accessibility concerns. To make audio content accessible to
+ the deaf or to those with other physical or cognitive disabilities,
+ a variety of features are available. If captions or a sign language
+ video are available, the <code><a href=#the-video-element>video</a></code> element can be used
+ instead of the <code><a href=#the-audio-element>audio</a></code> element to play the audio,
+ allowing users to enable the visual alternatives. Chapter titles can
+ be provided to aid navigation, using the <code><a href=#the-track-element>track</a></code> element
+ and a WebVTT file. And, naturally, transcripts or other textual
+ alternatives can be provided by simply linking to them in the prose
+ near the <code><a href=#the-audio-element>audio</a></code> element.</p>
+
+ <p>The <code><a href=#the-audio-element>audio</a></code> element is a <a href=#media-element>media element</a>
+ whose <a href=#media-data>media data</a> is ostensibly audio data.</p>
+
+ <p>The <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>, <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>,
+ <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>,
+ <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>,
+ <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attributes are <a href=#media-element-attributes title="media element attributes">the attributes common to all media
+ elements</a>.</p>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-audio-element>audio</a></code> element is <a href=#potentially-playing>potentially
+ playing</a>, it must have its audio data played synchronized with
+ the <a href=#current-playback-position>current playback position</a>, at the element's
+ <a href=#effective-media-volume>effective media volume</a>.</p>
+
+ <p>When an <code><a href=#the-audio-element>audio</a></code> element is not <a href=#potentially-playing>potentially
+ playing</a>, audio must not play for the element.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">audio</var> = new <code title=dom-Audio><a href=#dom-audio>Audio</a></code>( [ <var title="">url</var> ] )</dt>
+
+ <dd>
+
+ <p>Returns a new <code><a href=#the-audio-element>audio</a></code> element, with the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute set to the value
+ passed in the argument, if applicable.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>Two constructors are provided for creating
+ <code><a href=#htmlaudioelement>HTMLAudioElement</a></code> objects (in addition to the factory
+ methods from DOM Core such as <code title="">createElement()</code>): <dfn id=dom-audio title=dom-Audio><code>Audio()</code></dfn> and <dfn id=dom-audio-s title=dom-Audio-s><code>Audio(<var title="">src</var>)</code></dfn>. When invoked as constructors,
+ these must return a new <code><a href=#htmlaudioelement>HTMLAudioElement</a></code> object (a new
+ <code><a href=#the-audio-element>audio</a></code> element). The element must have its <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code> attribute set to the
+ literal value "<code title=attr-media-preload-auto><a href=#attr-media-preload-auto>auto</a></code>". If the <var title="">src</var> argument is present, the object created must have
+ its <code title=attr-media-src><a href=#attr-media-src>src</a></code> content attribute set to
+ the provided value, and the user agent must invoke the object's
+ <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a> before returning. The element's document must be
+ the <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing
+ context</a> of the <code><a href=#window>Window</a></code> object on which the
+ interface object of the invoked constructor is found.</p>
+
+ </div>
+
+
+
+ <!--CODECS
+
+ <div class="impl">
+
+ <h5>Audio codecs for <code>audio</code> elements</h5>
+
+ <p>User agents may support any audio codecs and container
+ formats.</p>
+
+ <p>User agents must support the WAVE container format with audio
+ encoded using the 16 bit PCM (LE) codec, at sampling frequencies of
+ 11.025kHz, 22.050kHz, and 44.100kHz, and for both mono and
+ stereo. <a href="#- -refsWAVE">[WAVE]</a></p>
+
+ <!- -
+ <dt id="- -refsWAVE">WAVE</dt>
+ <dd>http://en.wikipedia.org/wiki/WAV? </dd>
+ - ->
+
+ <!- - similar note in video codecs section - ->
+ <p class="note">Implementations are free to implement support for
+ audio codecs either natively, or using platform-specific APIs, or
+ using plugins: this specification does not specify how codecs are to
+ be implemented.</p>
+
+ </div>
+
+ (when replacing this text, also fix "- -" nested comments)-->
+
+
+
+ <h4 id=the-source-element><span class=secno>4.8.8 </span>The <dfn><code>source</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <a href=#media-element>media element</a>, before any <a href=#flow-content>flow content</a>
+ or <code><a href=#the-track-element>track</a></code> elements.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-source-src><a href=#attr-source-src>src</a></code></dd>
+ <dd><code title=attr-source-type><a href=#attr-source-type>type</a></code></dd>
+ <dd><code title=attr-source-media><a href=#attr-source-media>media</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlsourceelement>HTMLSourceElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-source-src title=dom-source-src>src</a>;
+ attribute DOMString <a href=#dom-source-type title=dom-source-type>type</a>;
+ attribute DOMString <a href=#dom-source-media title=dom-source-media>media</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-source-element>source</a></code> element allows authors to specify
+ multiple alternative <a href=#media-resource title="media resource">media
+ resources</a> for <a href=#media-element title="media element">media
+ elements</a>. It does not <a href=#represents title=represents>represent</a> anything on its own.</p>
+
+ <p>The <dfn id=attr-source-src title=attr-source-src><code>src</code></dfn> attribute
+ gives the address of the <a href=#media-resource>media resource</a>. The value must
+ be a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
+ spaces</a>. This attribute must be present.</p>
+
+ <p class=note>Dynamically modifying a <code><a href=#the-source-element>source</a></code> element
+ and its attribute when the element is already inserted in a
+ <code><a href=#the-video-element>video</a></code> or <code><a href=#the-audio-element>audio</a></code> element will have no
+ effect. To change what is playing, just use the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute on the <a href=#media-element>media
+ element</a> directly, possibly making use of the <code title=dom-navigator-canPlayType><a href=#dom-navigator-canplaytype>canPlayType()</a></code> method to
+ pick from amongst available resources. Generally, manipulating
+ <code><a href=#the-source-element>source</a></code> elements manually after the document has been
+ parsed is an unncessarily complicated approach.</p>
+
+ <p>The <dfn id=attr-source-type title=attr-source-type><code>type</code></dfn>
+ attribute gives the type of the <a href=#media-resource>media resource</a>, to help
+ the user agent determine if it can play this <a href=#media-resource>media
+ resource</a> before fetching it. If specified, its value must be
+ a <a href=#valid-mime-type>valid MIME type</a>. The <code title="">codecs</code>
+ parameter, which certain MIME types define, might be necessary to
+ specify exactly how the resource is encoded. <a href=#refsRFC4281>[RFC4281]</a></p>
+
+ <div class=example>
+
+ <p>The following list shows some examples of how to use the <code title="">codecs=</code> MIME parameter in the <code title=attr-source-type><a href=#attr-source-type>type</a></code> attribute.</p>
+
+ <dl><dt>H.264 Constrained baseline profile video (main and extended video compatible) level 3 and Low-Complexity AAC audio in MP4 container</dt>
+ <dd><pre>&lt;source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt;</pre></dd>
+
+ <dt>H.264 Extended profile video (baseline-compatible) level 3 and Low-Complexity AAC audio in MP4 container</dt>
+ <dd><pre>&lt;source src='video.mp4' type='video/mp4; codecs="avc1.58A01E, mp4a.40.2"'&gt;</pre></dd>
+
+ <dt>H.264 Main profile video level 3 and Low-Complexity AAC audio in MP4 container</dt>
+ <dd><pre>&lt;source src='video.mp4' type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'&gt;</pre></dd>
+
+ <dt>H.264 'High' profile video (incompatible with main, baseline, or extended profiles) level 3 and Low-Complexity AAC audio in MP4 container</dt>
+ <dd><pre>&lt;source src='video.mp4' type='video/mp4; codecs="avc1.64001E, mp4a.40.2"'&gt;</pre></dd>
+
+
+ <dt>MPEG-4 Visual Simple Profile Level 0 video and Low-Complexity AAC audio in MP4 container</dt>
+ <dd><pre>&lt;source src='video.mp4' type='video/mp4; codecs="mp4v.20.8, mp4a.40.2"'&gt;</pre></dd>
+
+ <dt>MPEG-4 Advanced Simple Profile Level 0 video and Low-Complexity AAC audio in MP4 container</dt>
+ <dd><pre>&lt;source src='video.mp4' type='video/mp4; codecs="mp4v.20.240, mp4a.40.2"'&gt;</pre></dd>
+
+ <dt>MPEG-4 Visual Simple Profile Level 0 video and AMR audio in 3GPP container</dt>
+ <dd><pre>&lt;source src='video.3gp' type='video/3gpp; codecs="mp4v.20.8, samr"'&gt;</pre></dd>
+
+
+ <dt>Theora video and Vorbis audio in Ogg container</dt>
+ <dd><pre>&lt;source src='video.ogv' type='video/ogg; codecs="theora, vorbis"'&gt;</pre></dd>
+
+ <dt>Theora video and Speex audio in Ogg container</dt>
+ <dd><pre>&lt;source src='video.ogv' type='video/ogg; codecs="theora, speex"'&gt;</pre></dd>
+
+ <dt>Vorbis audio alone in Ogg container</dt>
+ <dd><pre>&lt;source src='audio.ogg' type='audio/ogg; codecs=vorbis'&gt;</pre></dd>
+
+ <dt>Speex audio alone in Ogg container</dt>
+ <dd><pre>&lt;source src='audio.spx' type='audio/ogg; codecs=speex'&gt;</pre></dd>
+
+ <dt>FLAC audio alone in Ogg container</dt>
+ <dd><pre>&lt;source src='audio.oga' type='audio/ogg; codecs=flac'&gt;</pre></dd>
+
+ <dt>Dirac video and Vorbis audio in Ogg container</dt>
+ <dd><pre>&lt;source src='video.ogv' type='video/ogg; codecs="dirac, vorbis"'&gt;</pre></dd>
+
+<!-- awaiting definition by the Matroska guys:
+ <dt>Theora video and Vorbis audio in Matroska container</dt>
+ <dd><pre>&lt;source src='video.mkv' type='video/x-matroska; codecs="theora, vorbis"'></pre></dd>
+-->
+
+<!-- awaiting definition by the Ogg or BBC guys:
+ <dt>Dirac video and Vorbis audio in Matroska container</dt>
+ <dd><pre>&lt;source src='video.mkv' type='video/x-matroska; codecs='></pre></dd>
+-->
+
+<!-- awaiting definition by the Microsoft guys:
+ <dt>WMV9 video and WMA 2 audio in ASF container</dt>
+ <dd><pre>&lt;source src='video.wmv' type='video/x-ms-wmv; codecs='></pre></dd>
+
+ <dt>WMV8 video and WMA 2 audio in ASF container</dt>
+ <dd><pre>&lt;source src='video.wmv' type='video/x-ms-wmv; codecs='></pre></dd>
+
+ <dt>VC-1 video and WMA 10 Pro audio in ASF container</dt>
+ <dd><pre>&lt;source src='video.wmv' type='video/x-ms-wmv; codecs='></pre></dd>
+
+ <dt>XviD video and MP3 audio in AVI container</dt>
+ <dd><pre>&lt;source src='video.avi' type='video/x-msvideo; codecs='></pre></dd>
+
+ <dt>Motion-JPEG video and uncompressed PCM audio in AVI container</dt>
+ <dd><pre>&lt;source src='video.avi' type='video/x-msvideo; codecs='></pre></dd>
+-->
+
+<!-- awaiting definition by Real:
+ <dt>Real Video 10 video and High-Efficiency AAC audio in Real Media container</dt>
+ <dd><pre>&lt;source src='video.rm' type='application/vnd.rn-realmedia; codecs='></pre></dd>
+-->
+
+<!-- undefined:
+ <dt>MPEG-1 video and MPEG-1 Audio Layer II audio in MPEG-1 program stream</dt>
+ <dd><pre>&lt;source src='video.mpg' type='video/mpeg; codecs='></pre></dd>
+-->
+
+ </dl></div>
+
+ <p>The <dfn id=attr-source-media title=attr-source-media><code>media</code></dfn>
+ attribute gives the intended media type of the <a href=#media-resource>media
+ resource</a>, to help the user agent determine if this
+ <a href=#media-resource>media resource</a> is useful to the user before fetching
+ it. Its value must be a <a href=#valid-media-query>valid media query</a>.</p>
+
+ <p id=source-default-media>The default, if the <code title=attr-srouce-media>media</code> attribute is omitted, is
+ "<code title="">all</code>", meaning that by default the <a href=#media-resource>media
+ resource</a> is suitable for all media.</p>
+
+ <div class=impl>
+
+ <p>If a <code><a href=#the-source-element>source</a></code> element is inserted as a child of a
+ <a href=#media-element>media element</a> that has no <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute and whose <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> has the value
+ <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>, the user
+ agent must invoke the <a href=#media-element>media element</a>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a>.</p>
+
+ <p>The IDL attributes <dfn id=dom-source-src title=dom-source-src><code>src</code></dfn>, <dfn id=dom-source-type title=dom-source-type><code>type</code></dfn>, and <dfn id=dom-source-media title=dom-source-media><code>media</code></dfn> must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>If the author isn't sure if the user agents will all be able to
+ render the media resources provided, the author can listen to the
+ <code title=event-error>error</code> event on the last
+ <code><a href=#the-source-element>source</a></code> element and trigger fallback behavior:</p>
+
+ <pre>&lt;script&gt;
+ function fallback(video) {
+ // replace &lt;video&gt; with its contents
+ while (video.hasChildNodes()) {
+ if (video.firstChild instanceof HTMLSourceElement)
+ video.removeChild(video.firstChild);
+ else
+ video.parentNode.insertBefore(video.firstChild, video);
+ }
+ video.parentNode.removeChild(video);
+ }
+&lt;/script&gt;
+&lt;video controls autoplay&gt;
+ &lt;source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt;
+ &lt;source src='video.ogv' type='video/ogg; codecs="theora, vorbis"'
+ onerror="fallback(parentNode)"&gt;
+ ...
+&lt;/video&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-track-element><span class=secno>4.8.9 </span>The <dfn><code>track</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <a href=#media-element>media element</a>, before any <a href=#flow-content>flow content</a>.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-track-kind><a href=#attr-track-kind>kind</a></code></dd>
+ <dd><code title=attr-track-src><a href=#attr-track-src>src</a></code></dd>
+ <dd><code title=attr-track-srclang><a href=#attr-track-srclang>srclang</a></code></dd>
+ <dd><code title=attr-track-label><a href=#attr-track-label>label</a></code></dd>
+ <dd><code title=attr-track-default><a href=#attr-track-default>default</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmltrackelement>HTMLTrackElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-track-kind title=dom-track-kind>kind</a>;
+ attribute DOMString <a href=#dom-track-src title=dom-track-src>src</a>;
+ attribute DOMString <a href=#dom-track-srclang title=dom-track-srclang>srclang</a>;
+ attribute DOMString <a href=#dom-track-label title=dom-track-label>label</a>;
+ attribute boolean <a href=#dom-track-default title=dom-track-default>default</a>;
+
+ readonly attribute <a href=#texttrack>TextTrack</a> <a href=#dom-track-track title=dom-track-track>track</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-track-element>track</a></code> element allows authors to specify explicit
+ external timed <a href=#text-track title="text track">text tracks</a> for <a href=#media-element title="media element">media elements</a>. It does not <a href=#represents title=represents>represent</a> anything on its own.</p>
+
+ <p>The <dfn id=attr-track-kind title=attr-track-kind><code>kind</code></dfn>
+ attribute is an <a href=#enumerated-attribute>enumerated attribute</a>. The following
+ table lists the keywords defined for this attribute. The keyword
+ given in the first cell of each row maps to the state given in the
+ second cell.</p>
+
+ <table><thead><tr><th>Keyword
+ <th>State
+ <th>Brief description
+ <tbody><tr><td><dfn id=attr-track-kind-keyword-subtitles title=attr-track-kind-keyword-subtitles><code>subtitles</code></dfn>
+ <td><dfn id=attr-track-kind-subtitles title=attr-track-kind-subtitles>Subtitles</dfn>
+ <td>
+ Transcription or translation of the dialogue, suitable for when the sound is available but not understood (e.g. because the user does not understand the language of the <a href=#media-resource>media resource</a>'s audio track).
+ Overlaid on the video.
+ <tr><td><dfn id=attr-track-kind-keyword-captions title=attr-track-kind-keyword-captions><code>captions</code></dfn>
+ <td><dfn id=attr-track-kind-captions title=attr-track-kind-captions>Captions</dfn>
+ <td>
+ Transcription or translation of the dialogue, sound effects, relevant musical cues, and other relevant audio information, suitable for when sound is unavailable or not clearly audible (e.g. because it is muted, drowned-out by ambient noise, or because the user is deaf).
+ Overlaid on the video; labeled as appropriate for the hard-of-hearing.
+ <tr><td><dfn id=attr-track-kind-keyword-descriptions title=attr-track-kind-keyword-descriptions><code>descriptions</code></dfn>
+ <td><dfn id=attr-track-kind-descriptions title=attr-track-kind-descriptions>Descriptions</dfn>
+ <td>
+ Textual descriptions of the video component of the <a href=#media-resource>media resource</a>, intended for audio synthesis when the visual component is obscured, unavailable, or not usable (e.g. because the user is interacting with the application without a screen while driving, or because the user is blind).
+ Synthesized as audio.
+ <tr><td><dfn id=attr-track-kind-keyword-chapters title=attr-track-kind-keyword-chapters><code>chapters</code></dfn>
+ <td><dfn id=attr-track-kind-chapters title=attr-track-kind-chapters>Chapters</dfn>
+ <td>
+ Chapter titles, intended to be used for navigating the <a href=#media-resource>media resource</a>.
+ Displayed as an interactive (potentially nested) list in the user agent's interface.
+ <tr><td><dfn id=attr-track-kind-keyword-metadata title=attr-track-kind-keyword-metadata><code>metadata</code></dfn>
+ <td><dfn id=attr-track-kind-metadata title=attr-track-kind-metadata>Metadata</dfn>
+ <td>
+ Tracks intended for use from script.
+ Not displayed by the user agent.
+ </table><p>The attribute may be omitted. The <i>missing value default</i> is
+ the <a href=#attr-track-kind-subtitles title=attr-track-kind-subtitles>subtitles</a> state.</p>
+
+ <p>The <dfn id=attr-track-src title=attr-track-src><code>src</code></dfn> attribute
+ gives the address of the text track data. The value must be a
+ <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
+ spaces</a>. This attribute must be present.</p>
+
+ <div class=impl>
+
+ <p>If the element has a <code title=attr-track-src><a href=#attr-track-src>src</a></code>
+ attribute whose value is not the empty string and whose value, when
+ the attribute was set, could be successfully <a href=#resolve-a-url title="resolve a
+ url">resolved</a> relative to the element, then the element's
+ <dfn id=track-url>track URL</dfn> is the resulting <a href=#absolute-url>absolute
+ URL</a>. Otherwise, the element's <a href=#track-url>track URL</a> is the
+ empty string.</p>
+
+ </div>
+
+<!--TTVTT-->
+ <p>If the element's <a href=#track-url>track URL</a> identifies a
+ <a href=#webvtt>WebVTT</a> resource, and the element's <code title=attr-track-kind><a href=#attr-track-kind>kind</a></code> attribute is not in the <a href=#attr-track-kind-metadata title=attr-track-kind-metadata>metadata</a> state, then the
+ <a href=#webvtt>WebVTT</a> file must be a <a href=#webvtt-file-using-cue-text>WebVTT file using cue
+ text</a>.</p>
+
+ <p>Furthermore, if the element's <a href=#track-url>track URL</a> identifies a
+ <a href=#webvtt>WebVTT</a> resource, and the element's <code title=attr-track-kind><a href=#attr-track-kind>kind</a></code> attribute is in the <a href=#attr-track-kind-chapters title=attr-track-kind-chapters>chapters</a> state, then the
+ <a href=#webvtt>WebVTT</a> file must be both a <a href=#webvtt-file-using-chapter-title-text>WebVTT file using
+ chapter title text</a> and a <a href=#webvtt-file-using-only-nested-cues>WebVTT file using only nested
+ cues</a>.</p>
+<!--TTVTT-->
+
+ <p>The <dfn id=attr-track-srclang title=attr-track-srclang><code>srclang</code></dfn>
+ attribute gives the language of the text track data. The value must
+ be a valid BCP 47 language tag. This attribute must be present if
+ the element's <code title=attr-track-kind><a href=#attr-track-kind>kind</a></code> attribute is
+ in the <a href=#attr-track-kind-subtitles title=attr-track-kind-subtitles>subtitles</a>
+ state. <a href=#refsBCP47>[BCP47]</a></p>
+
+ <div class=impl>
+
+ <p>If the element has a <code title=attr-track-srclang><a href=#attr-track-srclang>srclang</a></code> attribute whose value is
+ not the empty string, then the element's <dfn id=track-language>track language</dfn>
+ is the value of the attribute. Otherwise, the element has no
+ <a href=#track-language>track language</a>.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-track-label title=attr-track-label><code>label</code></dfn>
+ attribute gives a user-readable title for the track. This title is
+ used by user agents when listing <a href=#attr-track-kind-subtitles title=attr-track-kind-subtitles>subtitle</a>, <a href=#attr-track-kind-captions title=attr-track-kind-captions>caption</a>, and <a href=#attr-track-kind-descriptions title=attr-track-kind-descriptions>audio description</a> tracks
+ in their user interface.</p>
+
+ <p>The value of the <code title=attr-track-label><a href=#attr-track-label>label</a></code>
+ attribute, if the attribute is present, must not be the empty
+ string. Furthermore, there must not be two <code><a href=#the-track-element>track</a></code>
+ element children of the same <a href=#media-element>media element</a> whose <code title=attr-track-kind><a href=#attr-track-kind>kind</a></code> attributes are in the same
+ state, whose <code title=attr-track-srclang><a href=#attr-track-srclang>srclang</a></code>
+ attributes are both missing or have values that represent the same
+ language, and whose <code title=attr-track-label><a href=#attr-track-label>label</a></code>
+ attributes are again both missing or both have the same value.</p>
+
+ <div class=impl>
+
+ <p>If the element has a <code title=attr-track-label><a href=#attr-track-label>label</a></code>
+ attribute whose value is not the empty string, then the element's
+ <dfn id=track-label>track label</dfn> is the value of the attribute. Otherwise, the
+ element's <a href=#track-label>track label</a> is a user-agent defined string
+ (e.g. the string "untitled" in the user's locale, or a value
+ automatically generated from the other attributes).</p>
+
+ </div>
+
+ <p>The <dfn id=attr-track-default title=attr-track-default><code>default</code></dfn>
+ attribute, if specified, indicates that the track is to be enabled
+ if the user's preferences do not indicate that another track would
+ be more appropriate. There must not be more than one
+ <code><a href=#the-track-element>track</a></code> element with the same parent node with the <code title=attr-track-default><a href=#attr-track-default>default</a></code> attribute specified.</p>
+
+ <dl class=domintro><dt><var title="">track</var> . <code title=dom-track-track><a href=#dom-track-track>track</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#texttrack>TextTrack</a></code> object corresponding to the <a href=#text-track>text track</a> of the <code><a href=#the-track-element>track</a></code> element.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-track-track title=dom-track-track><code>track</code></dfn> IDL
+ attribute must, on getting, return the <code><a href=#the-track-element>track</a></code> element's
+ <a href=#text-track>text track</a>'s corresponding <code><a href=#texttrack>TextTrack</a></code>
+ object.</p>
+
+ <p>The <dfn id=dom-track-src title=dom-track-src><code>src</code></dfn>, <dfn id=dom-track-srclang title=dom-track-srclang><code>srclang</code></dfn>, <dfn id=dom-track-label title=dom-track-label><code>label</code></dfn>, and <dfn id=dom-track-default title=dom-track-default><code>default</code></dfn> IDL attributes
+ must <a href=#reflect>reflect</a> the respective content attributes of the
+ same name. The <dfn id=dom-track-kind title=dom-track-kind><code>kind</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This video has subtitles in several languages:</p>
+
+ <pre>&lt;video src="brave.webm"&gt;
+ &lt;track kind=subtitles src=brave.en.vtt srclang=en label="English"&gt;
+ &lt;track kind=captions src=brave.en.hoh.vtt srclang=en label="English for the Hard of Hearing"&gt;
+ &lt;track kind=subtitles src=brave.fr.vtt srclang=fr lang=fr label="Fran&ccedil;ais"&gt;
+ &lt;track kind=subtitles src=brave.de.vtt srclang=de lang=de label="Deutsch"&gt;
+&lt;/video&gt;</pre>
+
+ </div>
+
+
+ <h4 id=media-elements><span class=secno>4.8.10 </span>Media elements</h4>
+
+ <p><dfn id=media-element title="media element">Media elements</dfn>
+ (<code><a href=#the-audio-element>audio</a></code> and <code><a href=#the-video-element>video</a></code>, in this specification)
+ implement the following interface:</p>
+
+ <pre class=idl>interface <dfn id=htmlmediaelement>HTMLMediaElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+
+ // error state
+ readonly attribute <a href=#mediaerror>MediaError</a>? <a href=#dom-media-error title=dom-media-error>error</a>;
+
+ // network state
+ attribute DOMString <a href=#dom-media-src title=dom-media-src>src</a>;
+ readonly attribute DOMString <a href=#dom-media-currentsrc title=dom-media-currentSrc>currentSrc</a>;
+ attribute DOMString <a href=#dom-media-crossorigin title=dom-media-crossOrigin>crossOrigin</a>;
+ const unsigned short <a href=#dom-media-network_empty title=dom-media-NETWORK_EMPTY>NETWORK_EMPTY</a> = 0;
+ const unsigned short <a href=#dom-media-network_idle title=dom-media-NETWORK_IDLE>NETWORK_IDLE</a> = 1;
+ const unsigned short <a href=#dom-media-network_loading title=dom-media-NETWORK_LOADING>NETWORK_LOADING</a> = 2;
+ const unsigned short <a href=#dom-media-network_no_source title=dom-media-NETWORK_NO_SOURCE>NETWORK_NO_SOURCE</a> = 3;
+ readonly attribute unsigned short <a href=#dom-media-networkstate title=dom-media-networkState>networkState</a>;
+ attribute DOMString <a href=#dom-media-preload title=dom-media-preload>preload</a>;
+<!--v3BUF readonly attribute double <span title="dom-media-bufferingRate">bufferingRate</span>;
+ readonly attribute boolean <span title="dom-media-bufferingThrottled">bufferingThrottled</span>;
+--> readonly attribute <a href=#timeranges>TimeRanges</a> <a href=#dom-media-buffered title=dom-media-buffered>buffered</a>;
+ void <a href=#dom-media-load title=dom-media-load>load</a>();
+ DOMString <a href=#dom-navigator-canplaytype title=dom-navigator-canPlayType>canPlayType</a>(DOMString type);
+
+ // ready state
+ const unsigned short <a href=#dom-media-have_nothing title=dom-media-HAVE_NOTHING>HAVE_NOTHING</a> = 0;
+ const unsigned short <a href=#dom-media-have_metadata title=dom-media-HAVE_METADATA>HAVE_METADATA</a> = 1;
+ const unsigned short <a href=#dom-media-have_current_data title=dom-media-HAVE_CURRENT_DATA>HAVE_CURRENT_DATA</a> = 2;
+ const unsigned short <a href=#dom-media-have_future_data title=dom-media-HAVE_FUTURE_DATA>HAVE_FUTURE_DATA</a> = 3;
+ const unsigned short <a href=#dom-media-have_enough_data title=dom-media-HAVE_ENOUGH_DATA>HAVE_ENOUGH_DATA</a> = 4;
+ readonly attribute unsigned short <a href=#dom-media-readystate title=dom-media-readyState>readyState</a>;
+ readonly attribute boolean <a href=#dom-media-seeking title=dom-media-seeking>seeking</a>;
+
+ // playback state
+ attribute double <a href=#dom-media-currenttime title=dom-media-currentTime>currentTime</a>;
+ readonly attribute double <a href=#dom-media-initialtime title=dom-media-initialTime>initialTime</a>;
+ readonly attribute double <a href=#dom-media-duration title=dom-media-duration>duration</a>;
+ readonly attribute <span>Date</span> <a href=#dom-media-startoffsettime title=dom-media-startOffsetTime>startOffsetTime</a>;
+ readonly attribute boolean <a href=#dom-media-paused title=dom-media-paused>paused</a>;
+ attribute double <a href=#dom-media-defaultplaybackrate title=dom-media-defaultPlaybackRate>defaultPlaybackRate</a>;
+ attribute double <a href=#dom-media-playbackrate title=dom-media-playbackRate>playbackRate</a>;
+ readonly attribute <a href=#timeranges>TimeRanges</a> <a href=#dom-media-played title=dom-media-played>played</a>;
+ readonly attribute <a href=#timeranges>TimeRanges</a> <a href=#dom-media-seekable title=dom-media-seekable>seekable</a>;
+ readonly attribute boolean <a href=#dom-media-ended title=dom-media-ended>ended</a>;
+ attribute boolean <a href=#dom-media-autoplay title=dom-media-autoplay>autoplay</a>;
+ attribute boolean <a href=#dom-media-loop title=dom-media-loop>loop</a>;
+ void <a href=#dom-media-play title=dom-media-play>play</a>();
+ void <a href=#dom-media-pause title=dom-media-pause>pause</a>();
+
+ // media controller
+ attribute <span>DOMString</span> <a href=#dom-media-mediagroup title=dom-media-mediaGroup>mediaGroup</a>;
+ attribute <a href=#mediacontroller>MediaController</a>? <a href=#dom-media-controller title=dom-media-controller>controller</a>;
+
+ // controls
+ attribute boolean <a href=#dom-media-controls title=dom-media-controls>controls</a>;
+ attribute double <a href=#dom-media-volume title=dom-media-volume>volume</a>;
+ attribute boolean <a href=#dom-media-muted title=dom-media-muted>muted</a>;
+ attribute boolean <a href=#dom-media-defaultmuted title=dom-media-defaultMuted>defaultMuted</a>;
+
+ // tracks
+ readonly attribute <a href=#audiotracklist>AudioTrackList</a> <a href=#dom-media-audiotracks title=dom-media-audioTracks>audioTracks</a>;
+ readonly attribute <a href=#videotracklist>VideoTrackList</a> <a href=#dom-media-videotracks title=dom-media-videoTracks>videoTracks</a>;
+ readonly attribute <a href=#texttracklist>TextTrackList</a> <a href=#dom-media-texttracks title=dom-media-textTracks>textTracks</a>;
+ <a href=#mutabletexttrack>MutableTextTrack</a> <a href=#dom-media-addtexttrack title=dom-media-addTextTrack>addTextTrack</a>(DOMString kind, optional DOMString label, optional DOMString language);
+};</pre>
+
+ <p>The <dfn id=media-element-attributes>media element attributes</dfn>, <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-crossorigin><a href=#attr-media-crossorigin>crossorigin</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>, <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>,
+ <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>,
+ <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>,
+ <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code>, apply to all <a href=#media-element title="media element">media elements</a>. They are defined in
+ this section.</p>
+
+ <!-- proposed v2 (actually v3!) features:
+ * frame forward / backwards / step(n) while paused
+ * per-frame control: get current frame; set current frame
+ * queue of content
+ - pause current stream and insert content at front of queue to play immediately
+ - pre-download another stream
+ - add stream(s) to play at end of current stream
+ - pause playback upon reaching a certain time
+ - playlists, with the ability to get metadata out of them (e.g. xspf)
+ * general meta data, implemented as getters (don't expose the whole thing)
+ - getMetadata(key: string, language: string) => HTMLImageElement or string
+ - onmetadatachanged (no context info)
+ - general custom metadata store (ratings, etc.)
+ * video: applying CSS filters
+ * an event to notify people of when the video size changes
+ (e.g. for chained Ogg streams of multiple independent videos)
+ (or for when the current video track changes)
+ * balance and 3D position audio
+ * audio filters
+ * audio synthesis (see <audio> section for use cases)
+ * feedback to the script on how well the video is playing
+ - frames per second?
+ - skipped frames per second?
+ - an event that reports playback difficulties?
+ - an arbitrary quality metric?
+ * bufferingRate/bufferingThrottled (see v3BUF)
+ * events for when the user agent's controls get shown or hidden
+ so that the author's controls can get away of the UA's
+ -->
+
+ <!-- v2 features that already have experimental implementations:
+ * webkitPreservesPitch (for when playbackRate != 1.0)
+ -->
+
+ <p><a href=#media-element title="media element">Media elements</a> are used to
+ present audio data, or video and audio data, to the user. This is
+ referred to as <dfn id=media-data>media data</dfn> in this section, since this
+ section applies equally to <a href=#media-element title="media element">media
+ elements</a> for audio or for video.
+
+ The term <dfn id=media-resource>media resource</dfn> is used to refer to the complete
+ set of media data, e.g. the complete video file, or complete audio
+ file.
+
+ </p>
+
+ <p>A <a href=#media-resource>media resource</a> can have multiple audio and video
+ tracks. For the purposes of a <a href=#media-element>media element</a>, the video
+ data of the <a href=#media-resource>media resource</a> is only that of the
+ currently selected track (if any) given by the element's <code title=dom-media-videoTracks><a href=#dom-media-videotracks>videoTracks</a></code> attribute, and the
+ audio data of the <a href=#media-resource>media resource</a> is the result of
+ mixing all the currently enabled tracks (if any) given by the
+ element's <code title=dom-media-audioTracks><a href=#dom-media-audiotracks>audioTracks</a></code>
+ attribute.</p>
+
+ <p class=note>Both <code><a href=#the-audio-element>audio</a></code> and <code><a href=#the-video-element>video</a></code>
+ elements can be used for both audio and video. The main difference
+ between the two is simply that the <code><a href=#the-audio-element>audio</a></code> element has no
+ playback area for visual content (such as video or captions),
+ whereas the <code><a href=#the-video-element>video</a></code> element does.</p>
+
+ <div class=impl>
+
+ <p>Except where otherwise specified, the <a href=#task-source>task source</a>
+ for all the tasks <a href=#queue-a-task title="queue a task">queued</a> in this
+ section and its subsections is the <dfn id=media-element-event-task-source>media element event task
+ source</dfn>.</p>
+
+ </div>
+
+
+
+ <h5 id=error-codes><span class=secno>4.8.10.1 </span>Error codes</h5>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-error><a href=#dom-media-error>error</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#mediaerror>MediaError</a></code> object representing the
+ current error state of the element.</p>
+
+ <p>Returns null if there is no error.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>All <a href=#media-element title="media element">media elements</a> have an
+ associated error status, which records the last error the element
+ encountered since its <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a> was last invoked. The <dfn id=dom-media-error title=dom-media-error><code>error</code></dfn> attribute, on
+ getting, must return the <code><a href=#mediaerror>MediaError</a></code> object created for
+ this last error, or null if there has not been an error.</p>
+
+ </div>
+
+ <pre class=idl>interface <dfn id=mediaerror>MediaError</dfn> {
+ const unsigned short <a href=#dom-mediaerror-media_err_aborted title=dom-MediaError-MEDIA_ERR_ABORTED>MEDIA_ERR_ABORTED</a> = 1;
+ const unsigned short <a href=#dom-mediaerror-media_err_network title=dom-MediaError-MEDIA_ERR_NETWORK>MEDIA_ERR_NETWORK</a> = 2;
+ const unsigned short <a href=#dom-mediaerror-media_err_decode title=dom-MediaError-MEDIA_ERR_DECODE>MEDIA_ERR_DECODE</a> = 3;
+ const unsigned short <a href=#dom-mediaerror-media_err_src_not_supported title=dom-MediaError-MEDIA_ERR_SRC_NOT_SUPPORTED>MEDIA_ERR_SRC_NOT_SUPPORTED</a> = 4;
+ readonly attribute unsigned short <a href=#dom-mediaerror-code title=dom-MediaError-code>code</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-error><a href=#dom-media-error>error</a></code> . <code title=dom-MediaError-code><a href=#dom-mediaerror-code>code</a></code></dt>
+
+ <dd>
+
+ <p>Returns the current error's error code, from the list below.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-mediaerror-code title=dom-MediaError-code><code>code</code></dfn>
+ attribute of a <code><a href=#mediaerror>MediaError</a></code> object must return the code
+ for the error, which must be one of the following:</p>
+
+ </div>
+
+ <dl><dt><dfn id=dom-mediaerror-media_err_aborted title=dom-MediaError-MEDIA_ERR_ABORTED><code>MEDIA_ERR_ABORTED</code></dfn> (numeric value 1)</dt>
+
+ <dd>The fetching process for the <a href=#media-resource>media resource</a> was
+ aborted by the user agent at the user's request.</dd>
+
+ <dt><dfn id=dom-mediaerror-media_err_network title=dom-MediaError-MEDIA_ERR_NETWORK><code>MEDIA_ERR_NETWORK</code></dfn> (numeric value 2)</dt>
+
+ <dd>A network error of some description caused the user agent to
+ stop fetching the <a href=#media-resource>media resource</a>, after the resource
+ was established to be usable.</dd>
+
+ <dt><dfn id=dom-mediaerror-media_err_decode title=dom-MediaError-MEDIA_ERR_DECODE><code>MEDIA_ERR_DECODE</code></dfn> (numeric value 3)</dt>
+
+ <dd>An error of some description occurred while decoding the
+ <a href=#media-resource>media resource</a>, after the resource was established to
+ be usable.</dd>
+
+ <dt><dfn id=dom-mediaerror-media_err_src_not_supported title=dom-MediaError-MEDIA_ERR_SRC_NOT_SUPPORTED><code>MEDIA_ERR_SRC_NOT_SUPPORTED</code></dfn> (numeric value 4)</dt>
+
+ <dd>The <a href=#media-resource>media resource</a> indicated by the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute was not suitable.</dd>
+
+ </dl><h5 id=location-of-the-media-resource><span class=secno>4.8.10.2 </span>Location of the media resource</h5>
+
+ <p>The <dfn id=attr-media-src title=attr-media-src><code>src</code></dfn> content
+ attribute on <a href=#media-element title="media element">media elements</a> gives
+ the address of the media resource (video, audio) to show. The
+ attribute, if present, must contain a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty
+ URL potentially surrounded by spaces</a>.</p>
+
+ <p>The <dfn id=attr-media-crossorigin title=attr-media-crossorigin><code>crossorigin</code></dfn>
+ content attribute on <a href=#media-element title="media element">media
+ elements</a> is a <a href=#cors-settings-attribute>CORS settings attribute</a>.</p>
+
+ <div class=impl>
+
+ <p>If a <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute of a
+ <a href=#media-element>media element</a> is set or changed, the user agent must
+ invoke the <a href=#media-element>media element</a>'s <a href=#media-element-load-algorithm>media element load
+ algorithm</a>. (<em>Removing</em> the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute does not do this, even
+ if there are <code><a href=#the-source-element>source</a></code> elements present.)</p>
+
+ <p>The <dfn id=dom-media-src title=dom-media-src><code>src</code></dfn> IDL
+ attribute on <a href=#media-element title="media element">media elements</a> must
+ <a href=#reflect>reflect</a> the content attribute of the same name.</p>
+
+ <p>The <dfn id=dom-media-crossorigin title=dom-media-crossOrigin><code>crossOrigin</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-media-crossorigin><a href=#attr-media-crossorigin>crossorigin</a></code> content
+ attribute.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-currentSrc><a href=#dom-media-currentsrc>currentSrc</a></code></dt>
+
+ <dd>
+
+ <p>Returns the address of the current <a href=#media-resource>media resource</a>.</p>
+
+ <p>Returns the empty string when there is no <a href=#media-resource>media resource</a>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-media-currentsrc title=dom-media-currentSrc><code>currentSrc</code></dfn> IDL
+ attribute is initially the empty string. Its value is changed by the
+ <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a> defined below.</p>
+
+ </div>
+
+ <p class=note>There are two ways to specify a <a href=#media-resource>media
+ resource</a>, the <code title=attr-media-src><a href=#attr-media-src>src</a></code>
+ attribute, or <code><a href=#the-source-element>source</a></code> elements. The attribute overrides
+ the elements.</p>
+
+
+
+ <h5 id=mime-types><span class=secno>4.8.10.3 </span>MIME types</h5>
+
+ <p>A <a href=#media-resource>media resource</a> can be described in terms of its
+ <em>type</em>, specifically a <a href=#mime-type>MIME type</a>, in some cases
+ with a <code title="">codecs</code> parameter. (Whether the <code title="">codecs</code> parameter is allowed or not depends on the
+ MIME type.) <a href=#refsRFC4281>[RFC4281]</a></p>
+
+ <p>Types are usually somewhat incomplete descriptions; for example
+ "<code title="">video/mpeg</code>" doesn't say anything except what
+ the container type is, and even a type like "<code title="">video/mp4; codecs="avc1.42E01E,
+ mp4a.40.2"</code>" doesn't include information like the actual
+ bitrate (only the maximum bitrate). Thus, given a type, a user agent
+ can often only know whether it <em>might</em> be able to play
+ media of that type (with varying levels of confidence), or whether
+ it definitely <em>cannot</em> play media of that type.</p>
+
+ <p><dfn id=a-type-that-the-user-agent-knows-it-cannot-render>A type that the user agent knows it cannot render</dfn> is
+ one that describes a resource that the user agent definitely does
+ not support, for example because it doesn't recognize the container
+ type, or it doesn't support the listed codecs.</p>
+
+ <p>The <a href=#mime-type>MIME type</a>
+ "<code>application/octet-stream</code>" with no parameters is never
+ <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that the user agent knows it cannot render</a>. User
+ agents must treat that type as equivalent to the lack of any
+ explicit <a href=#content-type title=Content-Type>Content-Type metadata</a>
+ when it is used to label a potential <a href=#media-resource>media
+ resource</a>.</p>
+
+ <p class=note>
+ <!--FORK-->
+ Only the <a href=#mime-type>MIME type</a> <!-- the WG decision started with the next bit, which is not in the style of the spec -->
+ <!--FORK-->
+ "<code>application/octet-stream</code>"
+ <!--FORK-->
+ with no parameters
+ <!--FORK-->
+ is special-cased here; if any parameter appears with it, it
+ <!--FORK-->
+ will <!-- the WG decision that led to this text had a "should", but this is a non-normative section -->
+ be treated just like any other <a href=#mime-type>MIME type</a>.
+
+ This is a deviation from the rule <!-- in RFC 2046, section 1,
+ paragraph 3 --> that unknown <a href=#mime-type>MIME type</a> parameters
+ should be ignored.
+
+ <!-- but not really a "willful violation" since it's not that the
+ types are not being ignored, just that before the type is handled as
+ a type, there's a special case for a particular set of strings -->
+
+ </p>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-navigator-canPlayType><a href=#dom-navigator-canplaytype>canPlayType</a></code>(<var title="">type</var>)</dt>
+
+ <dd>
+
+ <p>Returns the empty string (a negative response), "maybe", or
+ "probably" based on how confident the user agent is that it can
+ play media resources of the given type.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-navigator-canplaytype title=dom-navigator-canPlayType><code>canPlayType(<var title="">type</var>)</code></dfn> method must return the empty
+ string if <var title="">type</var> is <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that the user
+ agent knows it cannot render</a> or is the type
+ "<code>application/octet-stream</code>"; it must return "<code title="">probably</code>" if the user agent is confident that the
+ type represents a <a href=#media-resource>media resource</a> that it can render if
+ used in with this <code><a href=#the-audio-element>audio</a></code> or <code><a href=#the-video-element>video</a></code> element;
+ and it must return "<code title="">maybe</code>" otherwise.
+ Implementors are encouraged to return "<code title="">maybe</code>"
+ unless the type can be confidently established as being supported or
+ not. Generally, a user agent should never return "<code title="">probably</code>" for a type that allows the <code title="">codecs</code> parameter if that parameter is not
+ present.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This script tests to see if the user agent supports a
+ (fictional) new format to dynamically decide whether to use a
+ <code><a href=#the-video-element>video</a></code> element or a plugin:</p>
+
+ <pre>&lt;section id="video"&gt;
+ &lt;p&gt;&lt;a href="playing-cats.nfv"&gt;Download video&lt;/a&gt;&lt;/p&gt;
+&lt;/section&gt;
+&lt;script&gt;
+ var videoSection = document.getElementById('video');
+ var videoElement = document.createElement('video');
+ var support = videoElement.canPlayType('video/x-new-fictional-format;codecs="kittens,bunnies"');
+ if (support != "probably" &amp;&amp; "New Fictional Video Plugin" in navigator.plugins) {
+ // not confident of browser support
+ // but we have a plugin
+ // so use plugin instead
+ videoElement = document.createElement("embed");
+ } else if (support == "") {
+ // no support from browser and no plugin
+ // do nothing
+ videoElement = null;
+ }
+ if (videoElement) {
+ while (videoSection.hasChildNodes())
+ videoSection.removeChild(videoSection.firstChild);
+ videoElement.setAttribute("src", "playing-cats.nfv");
+ videoSection.appendChild(videoElement);
+ }
+&lt;/script&gt;</pre>
+
+ </div>
+
+ <p class=note>The <code title=attr-source-type><a href=#attr-source-type>type</a></code>
+ attribute of the <code><a href=#the-source-element>source</a></code> element allows the user agent
+ to avoid downloading resources that use formats it cannot
+ render.</p>
+
+
+ <h5 id=network-states><span class=secno>4.8.10.4 </span>Network states</h5>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code></dt>
+
+ <dd>
+
+ <p>Returns the current state of network activity for the element,
+ from the codes in the list below.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>As <a href=#media-element title="media element">media elements</a> interact
+ with the network, their current network activity is represented by
+ the <dfn id=dom-media-networkstate title=dom-media-networkState><code>networkState</code></dfn>
+ attribute. On getting, it must return the current network state of
+ the element, which must be one of the following values:</p>
+
+ </div>
+
+ <dl><dt><dfn id=dom-media-network_empty title=dom-media-NETWORK_EMPTY><code>NETWORK_EMPTY</code></dfn> (numeric value 0)</dt>
+
+ <dd>The element has not yet been initialized. All attributes are in
+ their initial states.</dd>
+
+ <dt><dfn id=dom-media-network_idle title=dom-media-NETWORK_IDLE><code>NETWORK_IDLE</code></dfn> (numeric value 1)</dt>
+
+ <dd>The element<span class=impl>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a> is active and</span> has selected a <a href=#media-resource title="media resource">resource</a>, but it is not actually
+ using the network at this time.</dd>
+
+ <dt><dfn id=dom-media-network_loading title=dom-media-NETWORK_LOADING><code>NETWORK_LOADING</code></dfn> (numeric value 2)</dt>
+
+ <dd>The user agent is actively trying to download data.</dd>
+
+ <dt><dfn id=dom-media-network_no_source title=dom-media-NETWORK_NO_SOURCE><code>NETWORK_NO_SOURCE</code></dfn> (numeric value 3)</dt>
+
+ <dd>The element<span class=impl>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a> is active, but it</span> has not yet found a <a href=#media-resource title="media resource">resource</a> to use.</dd>
+
+ </dl><div class=impl>
+
+ <p>The <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a> defined below describes exactly when the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute changes
+ value and what events fire to indicate changes in this state.</p>
+
+ </div>
+
+
+
+
+ <h5 id=loading-the-media-resource><span class=secno>4.8.10.5 </span>Loading the media resource</h5>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-load><a href=#dom-media-load>load</a></code>()</dt>
+
+ <dd>
+
+ <p>Causes the element to reset and start selecting and loading a
+ new <a href=#media-resource>media resource</a> from scratch.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>All <a href=#media-element title="media element">media elements</a> have an
+ <dfn id=autoplaying-flag>autoplaying flag</dfn>, which must begin in the true state, and
+ a <dfn id=delaying-the-load-event-flag>delaying-the-load-event flag</dfn>, which must begin in the
+ false state. While the <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a> is
+ true, the element must <a href=#delay-the-load-event>delay the load event</a> of its
+ document.</p>
+
+ <p>When the <dfn id=dom-media-load title=dom-media-load><code>load()</code></dfn>
+ method on a <a href=#media-element>media element</a> is invoked, the user agent
+ must run the <a href=#media-element-load-algorithm>media element load algorithm</a>.</p>
+
+ <p>The <dfn id=media-element-load-algorithm>media element load algorithm</dfn> consists of the
+ following steps.</p>
+
+ <ol><li><p>Abort any already-running instance of the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a> for this element.</li>
+
+ <li>
+
+ <p>If there are any <a href=#concept-task title=concept-task>tasks</a> from
+ the <a href=#media-element>media element</a>'s <a href=#media-element-event-task-source>media element event task
+ source</a> in one of the <a href=#task-queue title="task queue">task
+ queues</a>, then remove those tasks.</p>
+
+ <p class=note>Basically, pending events and callbacks for the
+ media element are discarded when the media element starts loading
+ a new resource.</p>
+
+ </li>
+
+ <li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> is set to <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code> or <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code>, <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-abort><a href=#event-media-abort>abort</a></code> at the <a href=#media-element>media
+ element</a>.</li>
+
+ <li>
+
+ <p>If the <a href=#media-element>media element</a>'s <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> is not set to
+ <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>, then
+ run these substeps:</p>
+
+ <ol><li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-emptied><a href=#event-media-emptied>emptied</a></code> at the <a href=#media-element>media
+ element</a>.</li>
+
+ <li><p>If a fetching process is in progress for the <a href=#media-element>media
+ element</a>, the user agent should stop it.</li>
+
+ <li><p>Set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
+ <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>.</li>
+
+ <li><p><a href="#forget-the-media-element's-media-resource-specific-text-tracks">Forget the media element's media-resource-specific
+ text tracks</a>.</li>
+
+ <li><p>If <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is
+ not set to <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, then set it
+ to that state.
+ <!-- this can do the "report the controller state" thing -->
+ </li>
+
+ <li><p>If the <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code>
+ attribute is false, then set it to true.</li>
+
+ <li><p>If <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> is true,
+ set it to false.</li>
+
+ <li>
+
+ <p>Set the <a href=#current-playback-position>current playback position</a> to 0.</p>
+
+ <p>Set the <a href=#official-playback-position>official playback position</a> to 0.</p>
+
+ <p>If this changed the <a href=#official-playback-position>official playback position</a>,
+ then <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at the
+ <a href=#media-element>media element</a>.</p>
+
+ </li>
+
+ <li><p>Set the <a href=#initial-playback-position>initial playback position</a> to
+ 0.</li>
+
+ <li><p>Set the <a href=#timeline-offset>timeline offset</a> to Not-a-Number
+ (NaN).</li>
+
+ <li>
+
+ <p>Update the <code title=dom-media-duration><a href=#dom-media-duration>duration</a></code>
+ attribute to Not-a-Number (NaN).</p>
+
+ <p class=note>The user agent <a href=#durationChange>will
+ not</a> fire a <code title=event-media-durationchange><a href=#event-media-durationchange>durationchange</a></code> event
+ for this particular change of the duration.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li><p>Set the <code title=dom-media-playbackRate><a href=#dom-media-playbackrate>playbackRate</a></code> attribute to the
+ value of the <code title=dom-media-defaultPlaybackRate><a href=#dom-media-defaultplaybackrate>defaultPlaybackRate</a></code>
+ attribute.</li>
+
+ <li><p>Set the <code title=dom-media-error><a href=#dom-media-error>error</a></code> attribute
+ to null and the <a href=#autoplaying-flag>autoplaying flag</a> to true.</li>
+
+ <li><p>Invoke the <a href=#media-element>media element</a>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a>.</li>
+
+ <li>
+
+ <p class=note>Playback of any previously playing <a href=#media-resource>media
+ resource</a> for this element stops.</p>
+
+ </li>
+
+ </ol><p>The <dfn id=concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</dfn> for a <a href=#media-element>media element</a> is as follows. This
+ algorithm is always invoked synchronously, but one of the first
+ steps in the algorithm is to return and continue running the
+ remaining steps asynchronously, meaning that it runs in the
+ background with scripts and other <a href=#concept-task title=concept-task>tasks</a> running in parallel. In addition,
+ this algorithm interacts closely with the <a href=#event-loop>event loop</a>
+ mechanism; in particular, it has <a href=#synchronous-section title="synchronous
+ section">synchronous sections</a> (which are triggered as part of
+ the <a href=#event-loop>event loop</a> algorithm). Steps in such sections are
+ marked with &#8987;.</p>
+
+ <ol><!-- precondition: networkState == NETWORK_EMPTY at this point --><li><p>Set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_NO_SOURCE><a href=#dom-media-network_no_source>NETWORK_NO_SOURCE</a></code>.</li>
+
+ <li><p>Asynchronously <a href=#await-a-stable-state>await a stable state</a>, allowing
+ the <a href=#concept-task title=concept-task>task</a> that invoked this
+ algorithm to continue. The <a href=#synchronous-section>synchronous section</a>
+ consists of all the remaining steps of this algorithm until the
+ algorithm says the <a href=#synchronous-section>synchronous section</a> has
+ ended. (Steps in <a href=#synchronous-section title="synchronous section">synchronous
+ sections</a> are marked with &#8987;.)</li>
+
+ <li>
+
+ <p>&#8987; If the <a href=#media-element>media element</a> has a <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute, then let <var title="">mode</var> be <i title="">attribute</i>.</p>
+
+ <p>&#8987; Otherwise, if the <a href=#media-element>media element</a> does not
+ have a <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute but has a
+ <code><a href=#the-source-element>source</a></code> element child, then let <var title="">mode</var> be <i title="">children</i> and let <var title="">candidate</var> be the first such <code><a href=#the-source-element>source</a></code>
+ element child in <a href=#tree-order>tree order</a>.</p>
+
+ <p>&#8987; Otherwise the <a href=#media-element>media element</a> has neither a
+ <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute nor a
+ <code><a href=#the-source-element>source</a></code> element child: set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>, and abort
+ these steps; the <a href=#synchronous-section>synchronous section</a> ends.</p>
+
+ </li>
+
+ <li><p>&#8987; Set the <a href=#media-element>media element</a>'s
+ <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a> to true (this <a href=#delay-the-load-event title="delay the load event">delays the load event</a>), and set
+ its <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to
+ <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code>.</li>
+
+ <li><p>&#8987; <a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-loadstart><a href=#event-media-loadstart>loadstart</a></code> at the <a href=#media-element>media
+ element</a>.</li>
+
+ <li>
+
+ <p>If <var title="">mode</var> is <i title="">attribute</i>, then
+ run these substeps:</p>
+
+ <ol><li><p>&#8987; <i>Process candidate</i>: If the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute's value is the empty
+ string, then end the <a href=#synchronous-section>synchronous section</a>, and jump
+ down to the <i title="">failed</i> step below.</li>
+
+ <li><p>&#8987; Let <var title="">absolute URL</var> be the
+ <a href=#absolute-url>absolute URL</a> that would have resulted from <a href=#resolve-a-url title="resolve a url">resolving</a> the <a href=#url>URL</a>
+ specified by the <code title=attr-media-src><a href=#attr-media-src>src</a></code>
+ attribute's value relative to the <a href=#media-element>media element</a> when
+ the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute was last
+ changed.</p> <!-- i.e. changing xml:base or <base> after src=""
+ has no effect -->
+
+ <li><p>&#8987; If <var title="">absolute URL</var> was obtained
+ successfully, set the <code title=dom-media-currentSrc><a href=#dom-media-currentsrc>currentSrc</a></code> attribute to <var title="">absolute URL</var>.</li>
+
+ <li><p>End the <a href=#synchronous-section>synchronous section</a>, continuing the
+ remaining steps asynchronously.</li>
+
+ <li><p>If <var title="">absolute URL</var> was obtained
+ successfully, run the <a href=#concept-media-load-resource title=concept-media-load-resource>resource fetch
+ algorithm</a> with <var title="">absolute URL</var>. If that
+ algorithm returns without aborting <em>this</em> one, then the
+ load failed.</li>
+
+ <li>
+
+ <p><i>Failed</i>: Reaching this step indicates that the media
+ resource failed to load or that the given <a href=#url>URL</a> could
+ not be <a href=#resolve-a-url title="resolve a url">resolved</a>. In one
+ atomic operation, run the following steps:</p>
+
+ <ol><li><p>Set the <code title=dom-media-error><a href=#dom-media-error>error</a></code>
+ attribute to a new <code><a href=#mediaerror>MediaError</a></code> object whose <code title=dom-MediaError-code><a href=#dom-mediaerror-code>code</a></code> attribute is set to
+ <code title=dom-MediaError-MEDIA_ERR_SRC_NOT_SUPPORTED><a href=#dom-mediaerror-media_err_src_not_supported>MEDIA_ERR_SRC_NOT_SUPPORTED</a></code>.</li>
+
+ <li><p><a href="#forget-the-media-element's-media-resource-specific-text-tracks">Forget the media element's media-resource-specific
+ text tracks</a>.</li>
+
+ <li><p>Set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
+ the <a href=#dom-media-network_no_source title=dom-media-NETWORK_NO_SOURCE>NETWORK_NO_SOURCE</a>
+ value.</li>
+
+ </ol></li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-error><a href=#event-media-error>error</a></code>
+ at the <a href=#media-element>media element</a>.</li>
+
+ <li><p>Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a>
+ to false. This stops <a href=#delay-the-load-event title="delay the load event">delaying
+ the load event</a>.</li>
+
+ <li><p>Abort these steps. Until the <code title=dom-media-load><a href=#dom-media-load>load()</a></code> method is invoked or the
+ <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute is changed, the
+ element won't attempt to load another resource.</li>
+ <!-- it took its ball and went home, sulking. -->
+
+ </ol><p>Otherwise, the <code><a href=#the-source-element>source</a></code> elements will be used; run
+ these substeps:</p>
+
+ <ol><li>
+
+ <p>&#8987; Let <var title="">pointer</var> be a position
+ defined by two adjacent nodes in the <a href=#media-element>media
+ element</a>'s child list, treating the start of the list
+ (before the first child in the list, if any) and end of the list
+ (after the last child in the list, if any) as nodes in their own
+ right. One node is the node before <var title="">pointer</var>,
+ and the other node is the node after <var title="">pointer</var>. Initially, let <var title="">pointer</var> be the position between the <var title="">candidate</var> node and the next node, if there are
+ any, or the end of the list, if it is the last node.</p>
+
+ <p>As nodes are inserted and removed into the <a href=#media-element>media
+ element</a>, <var title="">pointer</var> must be updated as
+ follows:</p>
+
+ <dl><dt>If a new node is inserted between the two nodes that
+ define <var title="">pointer</var></dt>
+
+ <dd>Let <var title="">pointer</var> be the point between the
+ node before <var title="">pointer</var> and the new node. In
+ other words, insertions at <var title="">pointer</var> go after
+ <var title="">pointer</var>.</dd>
+
+ <dt>If the node before <var title="">pointer</var> is removed</dt>
+
+ <dd>Let <var title="">pointer</var> be the point between the
+ node after <var title="">pointer</var> and the node before the
+ node after <var title="">pointer</var>. In other words, <var title="">pointer</var> doesn't move relative to the remaining
+ nodes.</dd>
+
+ <dt>If the node after <var title="">pointer</var> is removed</dt>
+
+ <dd>Let <var title="">pointer</var> be the point between the
+ node before <var title="">pointer</var> and the node after the
+ node before <var title="">pointer</var>. Just as with the
+ previous case, <var title="">pointer</var> doesn't move
+ relative to the remaining nodes.</dd>
+
+ </dl><p>Other changes don't affect <var title="">pointer</var>.</p>
+
+ </li>
+
+ <li><p>&#8987; <i>Process candidate</i>: If <var title="">candidate</var> does not have a <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute, or if its <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute's value is the empty
+ string, then end the <a href=#synchronous-section>synchronous section</a>, and jump
+ down to the <i title="">failed</i> step below.</li>
+
+ <li><p>&#8987; Let <var title="">absolute URL</var> be the
+ <a href=#absolute-url>absolute URL</a> that would have resulted from <a href=#resolve-a-url title="resolve a url">resolving</a> the <a href=#url>URL</a>
+ specified by <var title="">candidate</var>'s <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute's value relative to
+ the <var title="">candidate</var> when the <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute was last
+ changed.</p> <!-- i.e. changing xml:base or <base> after src=""
+ has no effect -->
+
+ <li><p>&#8987; If <var title="">absolute URL</var> was not
+ obtained successfully, then end the <a href=#synchronous-section>synchronous
+ section</a>, and jump down to the <i title="">failed</i> step
+ below.</li>
+
+ <li><p>&#8987; If <var title="">candidate</var> has a <code title=attr-source-type><a href=#attr-source-type>type</a></code> attribute whose value, when
+ parsed as a <a href=#mime-type>MIME type</a> (including any codecs
+ described by the <code title="">codecs</code> parameter, for
+ types that define that parameter), represents <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that
+ the user agent knows it cannot render</a>, then end the
+ <a href=#synchronous-section>synchronous section</a>, and jump down to the <i title="">failed</i> step below.</li>
+
+ <li><p>&#8987; If <var title="">candidate</var> has a <code title=attr-source-media><a href=#attr-source-media>media</a></code> attribute whose value does
+ not <a href=#matches-the-environment title="matches the environment">match the
+ environment</a>, then end the <a href=#synchronous-section>synchronous
+ section</a>, and jump down to the <i title="">failed</i> step
+ below.</li>
+
+ <li><p>&#8987; Set the <code title=dom-media-currentSrc><a href=#dom-media-currentsrc>currentSrc</a></code> attribute to <var title="">absolute URL</var>.</li>
+
+ <li><p>End the <a href=#synchronous-section>synchronous section</a>, continuing the
+ remaining steps asynchronously.</li>
+
+ <li><p>Run the <a href=#concept-media-load-resource title=concept-media-load-resource>resource
+ fetch algorithm</a> with <var title="">absolute URL</var>. If
+ that algorithm returns without aborting <em>this</em> one, then
+ the load failed.</li>
+
+ <li><p><i title="">Failed</i>: <a href=#queue-a-task>Queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the <var title="">candidate</var> element, in the context of the <a href=#fetch title=fetch>fetching process</a> that was used to try to
+ obtain <var title="">candidate</var>'s corresponding <a href=#media-resource>media
+ resource</a> in the <a href=#concept-media-load-resource title=concept-media-load-resource>resource fetch
+ algorithm</a>.</li>
+
+ <li><p>Asynchronously <a href=#await-a-stable-state>await a stable state</a>. The
+ <a href=#synchronous-section>synchronous section</a> consists of all the remaining
+ steps of this algorithm until the algorithm says the
+ <a href=#synchronous-section>synchronous section</a> has ended. (Steps in <a href=#synchronous-section title="synchronous section">synchronous sections</a> are
+ marked with &#8987;.)</li>
+
+ <li><p>&#8987; <a href="#forget-the-media-element's-media-resource-specific-text-tracks">Forget the media element's
+ media-resource-specific text tracks</a>.</li>
+
+ <li><p>&#8987; <i title="">Find next candidate</i>: Let <var title="">candidate</var> be null.</li>
+
+ <li><p>&#8987; <i title="">Search loop</i>: If the node after
+ <var title="">pointer</var> is the end of the list, then jump to
+ the <i title="">waiting</i> step below.</li>
+
+ <li><p>&#8987; If the node after <var title="">pointer</var> is
+ a <code><a href=#the-source-element>source</a></code> element, let <var title="">candidate</var>
+ be that element.</li>
+
+ <li><p>&#8987; Advance <var title="">pointer</var> so that the
+ node before <var title="">pointer</var> is now the node that was
+ after <var title="">pointer</var>, and the node after <var title="">pointer</var> is the node after the node that used to be
+ after <var title="">pointer</var>, if any.</li>
+
+ <li><p>&#8987; If <var title="">candidate</var> is null, jump
+ back to the <i title="">search loop</i> step. Otherwise, jump
+ back to the <i title="">process candidate</i> step.</li>
+
+ <li><p>&#8987; <i title="">Waiting</i>: Set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
+ the <a href=#dom-media-network_no_source title=dom-media-NETWORK_NO_SOURCE>NETWORK_NO_SOURCE</a>
+ value.</li>
+
+ <li><p>&#8987; Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event
+ flag</a> to false. This stops <a href=#delay-the-load-event title="delay the load
+ event">delaying the load event</a>.</li>
+
+ <li><p>End the <a href=#synchronous-section>synchronous section</a>, continuing the
+ remaining steps asynchronously.</li>
+
+ <li><p>Wait until the node after <var title="">pointer</var> is a
+ node other than the end of the list. (This step might wait
+ forever.)</li>
+
+ <li><p>Asynchronously <a href=#await-a-stable-state>await a stable state</a>. The
+ <a href=#synchronous-section>synchronous section</a> consists of all the remaining
+ steps of this algorithm until the algorithm says the
+ <a href=#synchronous-section>synchronous section</a> has ended. (Steps in <a href=#synchronous-section title="synchronous section">synchronous sections</a> are
+ marked with &#8987;.)</li>
+
+ <li><p>&#8987; Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event
+ flag</a> back to true (this <a href=#delay-the-load-event title="delay the load
+ event">delays the load event</a> again, in case it hasn't been
+ fired yet).</p>
+
+ <li><p>&#8987; Set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> back to <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code>.</li>
+
+ <li><p>&#8987; Jump back to the <i title="">find next
+ candidate</i> step above.</li>
+
+ </ol></li>
+
+ </ol><p>The <dfn id=concept-media-load-resource title=concept-media-load-resource>resource fetch
+ algorithm</dfn> for a <a href=#media-element>media element</a> and a given
+ <a href=#absolute-url>absolute URL</a> is as follows:</p>
+
+ <ol><li><p>Let the <var title="">current media resource</var> be the
+ resource given by the <a href=#absolute-url>absolute URL</a> passed to this
+ algorithm. This is now the element's <a href=#media-resource>media
+ resource</a>.</li>
+
+ <li><p>Optionally, run the following substeps. This is the expected
+ behavior if the user agent intends to not attempt to fetch the
+ resource until the use requests it explicitly (e.g. as a way to
+ implement the <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>
+ attribute's <code title=attr-media-preload-none><a href=#attr-media-preload-none>none</a></code>
+ keyword).</p>
+
+ <ol><li><p>Set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code>.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-suspend><a href=#event-media-suspend>suspend</a></code> at the
+ element.</li>
+
+ <li><p>Wait for the task to be run.</li>
+
+ <li><p>Wait for an implementation-defined event (e.g. the user
+ requesting that the media element begin playback).</li>
+
+ <li><p>Set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code>.</li>
+
+ </ol></li>
+
+ <li>
+
+ <p>Perform a <a href=#potentially-cors-enabled-fetch>potentially CORS-enabled fetch</a> of the
+ <var title="">current media resource</var>'s <a href=#absolute-url>absolute
+ URL</a>, with the <i>mode</i> being the state of the
+ <a href=#media-element>media element</a>'s <code title=attr-media-crossorigin><a href=#attr-media-crossorigin>crossorigin</a></code> content
+ attribute, the <i><a href=#origin>origin</a></i> being the <a href=#origin>origin</a> of the
+ <a href=#media-element>media element</a>'s <code><a href=#document>Document</a></code>, and the
+ <i>default origin behaviour</i> set to <i>taint</i>.</p>
+
+ <p>The resource obtained in this fashion, if any, contains the
+ <a href=#media-data>media data</a>. It can be <a href=#cors-same-origin>CORS-same-origin</a>
+ or <a href=#cors-cross-origin>CORS-cross-origin</a>; this affects whether subtitles
+ referenced in the <a href=#media-data>media data</a> are exposed in the API
+ and, for <code><a href=#the-video-element>video</a></code> elements, whether a
+ <code><a href=#the-canvas-element>canvas</a></code> gets tainted when the video is drawn on
+ it.</p>
+
+ <p>While the load is not suspended (see below), every 350ms
+ (&plusmn;200ms) or for every byte received, whichever is
+ <em>least</em> frequent, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> named <code title=event-media-progress><a href=#event-media-progress>progress</a></code> at the element.</p>
+
+ <p>The <dfn id=stall-timeout>stall timeout</dfn> is a user-agent defined length of
+ time, which should be about three seconds. When a <a href=#media-element>media
+ element</a> that is actively attempting to obtain <a href=#media-data>media
+ data</a> has failed to receive any data for a duration equal to
+ the <a href=#stall-timeout>stall timeout</a>, the user agent must <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-stalled><a href=#event-media-stalled>stalled</a></code> at the element.</p>
+
+ <p>User agents may allow users to selectively block or slow
+ <a href=#media-data>media data</a> downloads. When a <a href=#media-element>media
+ element</a>'s download has been blocked altogether, the user
+ agent must act as if it was stalled (as opposed to acting as if
+ the connection was closed). The rate of the download may also be
+ throttled automatically by the user agent, e.g. to balance the
+ download with other connections sharing the same bandwidth.</p>
+
+ <p id=resourceSuspend>User agents may decide to not download
+ more content at any time, e.g. after buffering five minutes of a
+ one hour media resource, while waiting for the user to decide
+ whether to play the resource or not, or while waiting for user
+ input in an interactive resource. When a <a href=#media-element>media
+ element</a>'s download has been suspended, the user agent must
+ <a href=#queue-a-task>queue a task</a> to set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code> and <a href=#fire-a-simple-event>fire
+ a simple event</a> named <code title=event-media-suspend><a href=#event-media-suspend>suspend</a></code> at the element. If and
+ when downloading of the resource resumes, the user agent must
+ <a href=#queue-a-task>queue a task</a> to set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code>. Between
+ the queuing of these tasks, the load is suspended (so <code title=event-media-progress><a href=#event-media-progress>progress</a></code> events don't fire, as
+ described above).</p>
+
+ <p class=note>The <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code> attribute provides a
+ hint regarding how much buffering the author thinks is advisable,
+ even in the absence of the <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code> attribute.</p>
+
+ <p>When a user agent decides to completely stall a download,
+ e.g. if it is waiting until the user starts playback before
+ downloading any further content, the element's
+ <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a> must be set to
+ false. This stops <a href=#delay-the-load-event title="delay the load event">delaying the
+ load event</a>.</p>
+
+ <p>The user agent may use whatever means necessary to fetch the
+ resource (within the constraints put forward by this and other
+ specifications); for example, reconnecting to the server in the
+ face of network errors, using HTTP range retrieval requests, or
+ switching to a streaming protocol. The user agent must consider a
+ resource erroneous only if it has given up trying to fetch it.</p>
+
+ <p>The <a href=#networking-task-source>networking task source</a> <a href=#concept-task title=concept-task>tasks</a> to process the data as it is
+ being fetched must, when appropriate, include the relevant
+ substeps from the following list:</p>
+
+ <dl class=switch><dt>If the <a href=#media-data>media data</a> cannot be fetched at all, due
+ to network errors, causing the user agent to give up trying to
+ fetch the resource</dt>
+
+ <dt>If the <a href=#media-resource>media resource</a> is found to have <a href=#content-type title=Content-Type>Content-Type metadata</a> that, when
+ parsed as a <a href=#mime-type>MIME type</a> (including any codecs
+ described by the <code title="">codecs</code> parameter, if the
+ parameter is defined for that type), represents <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that
+ the user agent knows it cannot render</a> (even if the actual
+ <a href=#media-data>media data</a> is in a supported format)</dt>
+
+ <dt>If the <a href=#media-data>media data</a> can be fetched but is found by
+ inspection to be in an unsupported format, or can otherwise not
+ be rendered at all</dt>
+
+ <dd>
+
+ <p>DNS errors, HTTP 4xx and 5xx errors (and equivalents in
+ other protocols), and other fatal network errors that occur
+ before the user agent has established whether the <var title="">current media resource</var> is usable, as well as
+ the file using an unsupported container format, or using
+ unsupported codecs for all the data, must cause the user agent
+ to execute the following steps:</p>
+
+ <ol><li><p>The user agent should cancel the fetching
+ process.</li>
+
+ <li><p>Abort this subalgorithm, returning to the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a>.</p>
+
+ </ol></dd>
+
+
+ <!-- insert content sniffing here if we want to define that -->
+ <!-- (in practice I don't think that's necessary since it's not
+ like you can do anything with the resource if you sniff it as the
+ wrong type) -->
+
+
+ <dt id=found-another-audio-track>If the <a href=#media-resource>media
+ resource</a> is found to have an audio track</dt>
+
+ <dd>
+
+ <ol><li><p>Create a <code><a href=#audiotrack>AudioTrack</a></code> object to represent the
+ audio track.</li>
+
+ <li><p>Update the <a href=#media-element>media element</a>'s <code title=dom-media-audioTracks><a href=#dom-media-audiotracks>audioTracks</a></code> attribute's
+ <code><a href=#audiotracklist>AudioTrackList</a></code> object with the new
+ <code><a href=#audiotrack>AudioTrack</a></code> object.</li>
+
+ <li><p>Fire an event with the name <code title=event-addtrack>addtrack</code>, that does not bubble and
+ is not cancelable, and that uses the <code><a href=#trackevent>TrackEvent</a></code>
+ interface, with the <code title=dom-TrackEvent-track><a href=#dom-trackevent-track>track</a></code> attribute initialized
+ to the new <code><a href=#audiotrack>AudioTrack</a></code> object, at this
+ <code><a href=#audiotracklist>AudioTrackList</a></code> object.</li>
+
+ </ol></dd>
+
+
+ <dt id=found-another-video-track>If the <a href=#media-resource>media
+ resource</a> is found to have a video track</dt>
+
+ <dd>
+
+ <ol><li><p>Create a <code><a href=#videotrack>VideoTrack</a></code> object to represent the
+ video track.</li>
+
+ <li><p>Update the <a href=#media-element>media element</a>'s <code title=dom-media-videoTracks><a href=#dom-media-videotracks>videoTracks</a></code> attribute's
+ <code><a href=#videotracklist>VideoTrackList</a></code> object with the new
+ <code><a href=#videotrack>VideoTrack</a></code> object.</li>
+
+ <li><p>Fire an event with the name <code title=event-addtrack>addtrack</code>, that does not bubble and
+ is not cancelable, and that uses the <code><a href=#trackevent>TrackEvent</a></code>
+ interface, with the <code title=dom-TrackEvent-track><a href=#dom-trackevent-track>track</a></code> attribute initialized
+ to the new <code><a href=#videotrack>VideoTrack</a></code> object, at this
+ <code><a href=#videotracklist>VideoTrackList</a></code> object.</li>
+
+ </ol></dd>
+
+
+ <dt id=getting-media-metadata>Once enough of the <a href=#media-data>media
+ data</a> has been fetched to determine the duration of the
+ <a href=#media-resource>media resource</a>, its dimensions, and other metadata,
+ and once <a href=#the-text-tracks-are-ready>the text tracks are ready</a> </dt>
+
+ <dd>
+
+ <p>This indicates that the resource is usable. The user agent
+ must follow these substeps:</p>
+
+ <ol><li>
+
+ <p><a href=#defineTimeline>Establish the media timeline</a> for the purposes
+ of the <a href=#current-playback-position>current playback position</a>, the
+ <a href=#earliest-possible-position>earliest possible position</a>, and the <a href=#initial-playback-position>initial
+ playback position</a>, based on the <a href=#media-data>media
+ data</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Update the <a href=#timeline-offset>timeline offset</a> to the date and
+ time that corresponds to the zero time in the <a href=#media-timeline>media
+ timeline</a> established in the previous step, if any. If
+ no explicit time and date is given by the <a href=#media-resource>media
+ resource</a>, the <a href=#timeline-offset>timeline offset</a> must be set
+ to Not-a-Number (NaN).</p>
+
+ </li>
+
+ <li><p>Set the <a href=#current-playback-position>current playback position</a> and the
+ <a href=#official-playback-position>official playback position</a> to the <a href=#earliest-possible-position>earliest
+ possible position</a>.</li>
+
+ <li>
+
+ <p>Update the <code title=dom-media-duration><a href=#dom-media-duration>duration</a></code>
+ attribute with the time of the last frame of the resource, if
+ known, on the <a href=#media-timeline>media timeline</a> established above.
+ If it is not known (e.g. a stream that is in principle
+ infinite), update the <code title=dom-media-duration><a href=#dom-media-duration>duration</a></code> attribute to the
+ value positive Infinity.</p>
+
+ <p class=note>The user agent <a href=#durationChange>will</a> <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-durationchange><a href=#event-media-durationchange>durationchange</a></code> at the
+ element at this point.</p>
+
+ </li>
+
+ <li><p>For <code><a href=#the-video-element>video</a></code> elements, set the <code title=dom-video-videoWidth><a href=#dom-video-videowidth>videoWidth</a></code> and <code title=dom-video-videoHeight><a href=#dom-video-videoheight>videoHeight</a></code>
+ attributes.</li>
+
+ <li>
+
+ <p>Set the <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute to
+ <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code>.</p>
+
+ <p class=note>A <code title=event-media-loadedmetadata><a href=#event-media-loadedmetadata>loadedmetadata</a></code> DOM
+ event <a href=#fire-loadedmetadata>will be fired</a> as part
+ of setting the <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute to a
+ new value.</p>
+
+ <!-- this can also do the "report the controller state" thing -->
+
+ </li>
+
+ <li><p>Let <var title="">jumped</var> be false.</li>
+
+ <li><p>If the <a href=#media-element>media element</a>'s <a href=#default-playback-start-position>default playback
+ start position</a> is greater than zero, then <a href=#dom-media-seek title=dom-media-seek>seek</a> to that time, and let <var title="">jumped</var> be true.</li>
+
+ <li><p>Let the <a href=#media-element>media element</a>'s <a href=#default-playback-start-position>default playback
+ start position</a> be zero.</li>
+
+ <li>
+
+ <p>If either the <a href=#media-resource>media resource</a> or the address of
+ the <var title="">current media resource</var> indicate a
+ particular start time, then set the <a href=#initial-playback-position>initial playback
+ position</a> to that time and, if <var title="">jumped</var> is still false, <a href=#dom-media-seek title=dom-media-seek>seek</a> to that time and let <var title="">jumped</var> be true.</p>
+
+ <p class=example>For example, with media formats that
+ support the <cite>Media Fragments URI</cite> fragment
+ identifier syntax, the fragment identifier can be used to
+ indicate a start position. <a href=#refsMEDIAFRAG>[MEDIAFRAG]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>If either the <a href=#media-resource>media resource</a> or the address of
+ the <var title="">current media resource</var> indicate a
+ particular set of audio or video tracks to enable, then the
+ selected audio tracks must be enabled in the element's <code title=dom-media-audioTracks><a href=#dom-media-audiotracks>audioTracks</a></code> object, and,
+ of the selected video tracks, the one that is listed first in
+ the element's <code title=dom-media-videoTracks><a href=#dom-media-videotracks>videoTracks</a></code> object must
+ be selected.</p>
+
+ </li>
+
+ <li><p>If the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current
+ media controller</a>, then: if <var title="">jumped</var> is
+ true and the <a href=#initial-playback-position>initial playback position</a>, relative
+ to the <a href=#current-media-controller>current media controller</a>'s timeline, is
+ greater than the <a href=#current-media-controller>current media controller</a>'s
+ <a href=#media-controller-position>media controller position</a>, then <a href=#seek-the-media-controller>seek the
+ media controller</a> to the <a href=#media-element>media element</a>'s
+ <a href=#initial-playback-position>initial playback position</a>, relative to the
+ <a href=#current-media-controller>current media controller</a>'s timeline; otherwise,
+ <a href=#dom-media-seek title=dom-media-seek>seek</a> the <a href=#media-element>media
+ element</a> to the <a href=#media-controller-position>media controller position</a>,
+ relative to the <a href=#media-element>media element</a>'s timeline.</li>
+ <!-- i.e. "bring the media element up to speed with its new
+ media controller" --> <!-- we do this because otherwise the
+ fragment identifier initial position is lost. Basically this
+ means that if you are attached to a media controller when you
+ load your resource, and you have a fragment identifier with a
+ start time, you'll jump the media controller to that time if
+ it's not already past it. (So if there are several, you'll jump
+ the media controller to the furthest one in the timeline.) -->
+
+ </ol><p>Once the <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute
+ reaches <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code>,
+ <a href=#fire-loadeddata>after the <code title=event-media-loadeddata>loadeddata</code> event has been
+ fired</a>, set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event
+ flag</a> to false. This stops <a href=#delay-the-load-event title="delay the load
+ event">delaying the load event</a>.</p>
+
+ <p class=note>A user agent that is attempting to reduce
+ network usage while still fetching the metadata for each
+ <a href=#media-resource>media resource</a> would also stop buffering at this
+ point, following <a href=#resourceSuspend>the rules
+ described previously</a>, which involve the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute
+ switching to the <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code> value and a
+ <code title=event-suspend>suspend</code> event firing.</p>
+
+ <p class=note>The user agent is <em>required</em> to
+ determine the duration of the <a href=#media-resource>media resource</a> and
+ go through this step before playing.</p> <!-- actually defined
+ in the 'duration' section -->
+
+ </dd>
+
+
+ <dt>Once the entire <a href=#media-resource>media resource</a> has been <a href=#fetch title=fetch>fetched</a> (but potentially before any of it
+ has been decoded)</dt>
+
+ <dd>
+
+ <p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-media-progress><a href=#event-media-progress>progress</a></code> at the <a href=#media-element>media
+ element</a>.</p>
+
+ <p>Set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code> and
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-suspend><a href=#event-media-suspend>suspend</a></code> at the <a href=#media-element>media
+ element</a>.</p>
+
+ <p>If the user agent ever discards any <a href=#media-data>media data</a>
+ and then needs to resume the network activity to obtain it
+ again, then it must <a href=#queue-a-task>queue a task</a> to set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code>.</p>
+
+ <p class=note>If the user agent can keep the <a href=#media-resource>media
+ resource</a> loaded, then the algorithm will continue to its
+ final step below, which aborts the algorithm.</p><!-- see FINAL
+ STEP below -->
+
+ </dd>
+
+
+ <dt>If the connection is interrupted after some <a href=#media-data>media
+ data</a> has been received, causing the user agent to give up
+ trying to fetch the resource</dt>
+
+ <dd>
+
+ <p>Fatal network errors that occur after the user agent has
+ established whether the <var title="">current media
+ resource</var> is usable (i.e. once the <a href=#media-element>media
+ element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is no
+ longer <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>)
+ must cause the user agent to execute the following steps:</p>
+
+ <ol><li><p>The user agent should cancel the fetching
+ process.</li>
+
+ <li><p>Set the <code title=dom-media-error><a href=#dom-media-error>error</a></code>
+ attribute to a new <code><a href=#mediaerror>MediaError</a></code> object whose <code title=dom-MediaError-code><a href=#dom-mediaerror-code>code</a></code> attribute is set to
+ <code title=dom-MediaError-MEDIA_ERR_NETWORK><a href=#dom-mediaerror-media_err_network>MEDIA_ERR_NETWORK</a></code>.</li>
+
+ <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-media-error><a href=#event-media-error>error</a></code> at the <a href=#media-element>media
+ element</a>.</li>
+
+ <li><p>Set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
+ the <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code>
+ value.</li>
+
+ <li><p>Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event
+ flag</a> to false. This stops <a href=#delay-the-load-event title="delay the load
+ event">delaying the load event</a>.</li>
+
+ <li><p>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a>.</li>
+
+ </ol></dd>
+
+
+ <dt id=fatal-decode-error>If the <a href=#media-data>media data</a> is
+ corrupted</dt>
+
+ <dd>
+
+ <p>Fatal errors in decoding the <a href=#media-data>media data</a> that
+ occur after the user agent has established whether the <var title="">current media resource</var> is usable must cause the
+ user agent to execute the following steps:</p>
+
+ <ol><li><p>The user agent should cancel the fetching
+ process.</li>
+
+ <li><p>Set the <code title=dom-media-error><a href=#dom-media-error>error</a></code>
+ attribute to a new <code><a href=#mediaerror>MediaError</a></code> object whose <code title=dom-MediaError-code><a href=#dom-mediaerror-code>code</a></code> attribute is set to
+ <code title=dom-MediaError-MEDIA_ERR_DECODE><a href=#dom-mediaerror-media_err_decode>MEDIA_ERR_DECODE</a></code>.</li>
+
+ <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-media-error><a href=#event-media-error>error</a></code> at the <a href=#media-element>media
+ element</a>.</li>
+
+ <li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute has a
+ value equal to <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, set the
+ element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
+ the <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>
+ value and <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-emptied><a href=#event-media-emptied>emptied</a></code> at the element.
+ Otherwise, set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
+ the <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code>
+ value.</li>
+
+ <li><p>Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event
+ flag</a> to false. This stops <a href=#delay-the-load-event title="delay the load
+ event">delaying the load event</a>.</li>
+
+ <li><p>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a>.</li>
+
+ </ol></dd>
+
+
+ <dt>If the <a href=#media-data>media data</a> fetching process is aborted by
+ the user</dt>
+
+ <dd>
+
+ <p>The fetching process is aborted by the user, e.g. because the
+ user navigated the browsing context to another page, the user
+ agent must execute the following steps. These steps are not
+ followed if the <code title=dom-media-load><a href=#dom-media-load>load()</a></code>
+ method itself is invoked while these steps are running, as the
+ steps above handle that particular kind of abort.</p>
+
+ <ol><li><p>The user agent should cancel the fetching
+ process.</li>
+
+ <li><p>Set the <code title=dom-media-error><a href=#dom-media-error>error</a></code>
+ attribute to a new <code><a href=#mediaerror>MediaError</a></code> object whose <code title=dom-MediaError-code><a href=#dom-mediaerror-code>code</a></code> attribute is set to
+ <code title=dom-MediaError-MEDIA_ERR_ABORTED><a href=#dom-mediaerror-media_err_aborted>MEDIA_ERR_ABORTED</a></code>.</li>
+
+ <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-media-abort><a href=#event-media-abort>abort</a></code> at the <a href=#media-element>media
+ element</a>.</li>
+
+ <li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute has a
+ value equal to <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, set the
+ element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
+ the <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>
+ value and <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-emptied><a href=#event-media-emptied>emptied</a></code> at the element.
+ Otherwise, set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
+ the <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code>
+ value.</li>
+
+ <li><p>Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event
+ flag</a> to false. This stops <a href=#delay-the-load-event title="delay the load
+ event">delaying the load event</a>.</li>
+
+ <li><p>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a>.</li>
+
+ </ol></dd>
+
+
+ <dt id=non-fatal-media-error>If the <a href=#media-data>media data</a> can
+ be fetched but has non-fatal errors or uses, in part, codecs that
+ are unsupported, preventing the user agent from rendering the
+ content completely correctly but not preventing playback
+ altogether</dt>
+
+ <dd>
+
+ <p>The server returning data that is partially usable but cannot
+ be optimally rendered must cause the user agent to render just
+ the bits it can handle, and ignore the rest.</p>
+
+ <!-- v2: fire a 'warning' event and set the 'error' flag to 'MEDIA_ERR_SUBOPTIMAL' or something -->
+
+ </dd>
+
+
+ <dt id=found-a-media-resource-specific-timed-track>If the
+ <a href=#media-resource>media resource</a> is found to declare a
+ <a href=#media-resource-specific-text-track>media-resource-specific text track</a> that the user
+ agent supports</dt>
+
+ <dd>
+
+ <p>If the <a href=#media-data>media data</a> is
+ <a href=#cors-same-origin>CORS-same-origin</a>, run the <a href=#steps-to-expose-a-media-resource-specific-text-track>steps to expose a
+ media-resource-specific text track</a> with the relevant
+ data.</p>
+
+ <p class=note>Cross-origin videos do not expose their
+ subtitles, since that would allow attacks such as hostile sites
+ reading subtitles from confidential videos on a user's
+ intranet.</p>
+
+ </dd>
+
+ </dl><p>When the <a href=#networking-task-source>networking task source</a> has <a href=#queue-a-task title="queue a task">queued</a> the last <a href=#concept-task title=concept-task>task</a> as part of <a href=#fetch title=fetch>fetching</a> the <a href=#media-resource>media resource</a>
+ (i.e. once the download has completed), if the fetching process
+ completes without errors, including decoding the media data, and
+ if all of the data is available to the user agent without network
+ access, then, the user agent must move on to the next step. This
+ might never happen, e.g. when streaming an infinite resource such
+ as Web radio, or if the resource is longer than the user agent's
+ ability to cache data.</p>
+
+ <p>While the user agent might still need network access to obtain
+ parts of the <a href=#media-resource>media resource</a>, the user agent must
+ remain on this step.</p>
+
+ <p class=example>For example, if the user agent has discarded
+ the first half of a video, the user agent will remain at this step
+ even once the <a href=#ended-playback title="ended playback">playback has
+ ended</a>, because there is always the chance the user will
+ seek back to the start. In fact, in this situation, once <a href=#ended-playback title="ended playback">playback has ended</a>, the user agent
+ will end up firing a <code title=event-media-suspend><a href=#event-media-suspend>suspend</a></code> event, as described
+ earlier.</p>
+
+ </li>
+
+ <!-- this step is mentioned above, search for "FINAL STEP" -->
+ <li><p>If the user agent ever reaches this step (which can only
+ happen if the entire resource gets loaded and kept available):
+ abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a>.</li>
+
+ </ol></div>
+
+ <hr><p>The <dfn id=attr-media-preload title=attr-media-preload><code>preload</code></dfn>
+ attribute is an <a href=#enumerated-attribute>enumerated attribute</a>. The following table
+ lists the keywords and states for the attribute &mdash; the keywords
+ in the left column map to the states in the cell in the second
+ column on the same row as the keyword.</p>
+
+ <table><thead><tr><th> Keyword
+ <th> State
+ <th> Brief description
+ <tbody><tr><td><dfn id=attr-media-preload-none title=attr-media-preload-none><code>none</code></dfn>
+ <td><dfn id=attr-media-preload-none-state title=attr-media-preload-none-state>None</dfn>
+ <td>Hints to the user agent that either the author does not expect the user to need the media resource, or that the server wants to minimise unnecessary traffic.
+ <tr><td><dfn id=attr-media-preload-metadata title=attr-media-preload-metadata><code>metadata</code></dfn>
+ <td><dfn id=attr-media-preload-metadata-state title=attr-media-preload-metadata-state>Metadata</dfn>
+ <td>Hints to the user agent that the author does not expect the user to need the media resource, but that fetching the resource metadata (dimensions, first frame, track list, duration, etc) is reasonable. If the user agent precisely fetches no more than the metadata, then the <a href=#media-element>media element</a> will end up with its <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute set to <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code>; typically though, some frames will be obtained as well and it will probably be <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> or <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code>.
+ <tr><td><dfn id=attr-media-preload-auto title=attr-media-preload-auto><code>auto</code></dfn>
+ <td><dfn id=attr-media-preload-auto-state title=attr-media-preload-auto-state>Automatic</dfn>
+ <td>Hints to the user agent that the user agent can put the user's needs first without risk to the server, up to and including optimistically downloading the entire resource.
+ </table><p>The empty string is also a valid keyword, and maps to the <a href=#attr-media-preload-auto-state title=attr-media-preload-auto-state>Automatic</a> state. The
+ attribute's <i>missing value default</i> is user-agent defined,
+ though the <a href=#attr-media-preload-metadata-state title=attr-media-preload-metadata-state>Metadata</a> state is
+ suggested as a compromise between reducing server load and providing
+ an optimal user experience.</p>
+
+ <div class=impl>
+
+ <p>The <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code> attribute is
+ intended to provide a hint to the user agent about what the author
+ thinks will lead to the best user experience. The attribute may be
+ ignored altogether, for example based on explicit user preferences
+ or based on the available connectivity.</p>
+
+ <p>The <dfn id=dom-media-preload title=dom-media-preload><code>preload</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
+
+ </div>
+
+ <p class=note>The <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code> attribute can override
+ the <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code> attribute (since
+ if the media plays, it naturally has to buffer first, regardless of
+ the hint given by the <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code> attribute). Including
+ both is not an error, however.</p>
+
+ <hr><!--v3BUF (when readding this, also add a domintro block)
+ <p>The <dfn
+ title="dom-media-bufferingRate"><code>bufferingRate</code></dfn>
+ attribute must return the average number of bits received per second
+ for the current download over the past few seconds. If there is no
+ download in progress, the attribute must return 0.</p>
+
+ <p>The <dfn
+ title="dom-media-bufferingThrottled"><code>bufferingThrottled</code></dfn>
+ attribute must return true if the user agent is intentionally
+ throttling the bandwidth used by the download (including when
+ throttling to zero to pause the download altogether), and false
+ otherwise.</p>
+
+ <hr>
+--><dl class=domintro><dt><var title="">media</var> . <code title=dom-media-buffered><a href=#dom-media-buffered>buffered</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#timeranges>TimeRanges</a></code> object that represents the
+ ranges of the <a href=#media-resource>media resource</a> that the user agent has
+ buffered.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-media-buffered title=dom-media-buffered><code>buffered</code></dfn>
+ attribute must return a new static <a href=#normalized-timeranges-object>normalized
+ <code>TimeRanges</code> object</a> that represents the ranges of
+ the <a href=#media-resource>media resource</a>, if any, that the user agent has
+ buffered, at the time the attribute is evaluated. Users agents must
+ accurately determine the ranges available, even for media streams
+ where this can only be determined by tedious inspection.</p>
+
+ <p class=note>Typically this will be a single range anchored at
+ the zero point, but if, e.g. the user agent uses HTTP range requests
+ in response to seeking, then there could be multiple ranges.</p>
+
+ <p>User agents may discard previously buffered data.</p>
+
+ <p class=note>Thus, a time position included within a range of the
+ objects return by the <code title=dom-media-buffered><a href=#dom-media-buffered>buffered</a></code> attribute at one time can
+ end up being not included in the range(s) of objects returned by the
+ same attribute at later times.</p>
+
+ </div>
+
+
+
+ <h5 id=offsets-into-the-media-resource><span class=secno>4.8.10.6 </span>Offsets into the media resource</h5>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-duration><a href=#dom-media-duration>duration</a></code></dt>
+
+ <dd>
+
+ <p>Returns the length of the <a href=#media-resource>media resource</a>, in
+ seconds, assuming that the start of the <a href=#media-resource>media
+ resource</a> is at time zero.</p>
+
+ <p>Returns NaN if the duration isn't available.<p>
+
+ <p>Returns Infinity for unbounded streams.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-currentTime><a href=#dom-media-currenttime>currentTime</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the <a href=#official-playback-position>official playback position</a>, in seconds.</p>
+
+ <p>Can be set, to seek to the given time.<p>
+
+ <p>Will throw an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception if there
+ is no selected <a href=#media-resource>media resource</a>
+ or if there is a <a href=#current-media-controller>current media controller</a>.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-initialTime><a href=#dom-media-initialtime>initialTime</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <a href=#initial-playback-position>initial playback position</a>, that is, time
+ to which the <a href=#media-resource>media resource</a> was automatically seeked
+ when it was loaded. Returns zero if the <a href=#initial-playback-position>initial playback
+ position</a> is still unknown.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>A <a href=#media-resource>media resource</a> has a <dfn id=media-timeline>media timeline</dfn>
+ that maps times (in seconds) to positions in the <a href=#media-resource>media
+ resource</a>. The origin of a timeline is its earliest defined
+ position. The duration of a timeline is its last defined
+ position.</p>
+
+ <p><dfn id=defineTimeline title="establish the media
+ timeline">Establishing the media timeline</dfn>: If the <a href=#media-resource>media
+ resource</a> somehow specifies an explicit timeline whose origin
+ is not negative, then the <a href=#media-timeline>media timeline</a> should be that
+ timeline. (Whether the <a href=#media-resource>media resource</a> can specify a
+ timeline or not depends on the <a href=#media-resource title="media resource">media
+ resource's</a> format.) If the <a href=#media-resource>media resource</a>
+ specifies an explicit start time <em>and date</em>, then that time
+ and date should be considered the zero point in the <a href=#media-timeline>media
+ timeline</a>; the <a href=#timeline-offset>timeline offset</a> will be the time
+ and date, exposed using the <code title=dom-media-startOffsetTime><a href=#dom-media-startoffsettime>startOffsetTime</a></code>
+ attribute.</p>
+
+ <p>If the <a href=#media-resource>media resource</a> has a discontinuous timeline,
+ the user agent must extend the timeline used at the start of the
+ resource across the entire resource, so that the <a href=#media-timeline>media
+ timeline</a> of the <a href=#media-resource>media resource</a> increases
+ linearly starting from the <a href=#earliest-possible-position>earliest possible position</a>
+ (as defined below), even if the underlying <a href=#media-data>media data</a>
+ has out-of-order or even overlapping time codes.</p>
+
+ <p class=example>For example, if two clips have been concatenated
+ into one video file, but the video format exposes the original times
+ for the two clips, the video data might expose a timeline that goes,
+ say, 00:15..00:29 and then 00:05..00:38. However, the user agent
+ would not expose those times; it would instead expose the times as
+ 00:15..00:29 and 00:29..01:02, as a single video.</p>
+
+ <p>In the absence of an explicit timeline, the zero time on the
+ <a href=#media-timeline>media timeline</a> should correspond to the first frame of
+ the <a href=#media-resource>media resource</a>. For static audio and video files
+ this is generally trivial. For streaming resources, if the user
+ agent will be able to seek to an earlier point than the first frame
+ originally provided by the server, then the zero time should
+ correspond to the earliest seekable time of the <a href=#media-resource>media
+ resource</a>; otherwise, it should correspond to the first frame
+ received from the server (the point in the <a href=#media-resource>media
+ resource</a> at which the user agent began receiving the
+ stream).</p>
+
+ <p class=example>Another example would be a stream that carries a
+ video with several concatenated fragments, broadcast by a server
+ that does not allow user agents to request specific times but
+ instead just streams the video data in a predetermined order. If a
+ user agent connects to this stream and receives fragments defined as
+ covering timestamps 2010-03-20 23:15:00 UTC to 2010-03-21 00:05:00
+ UTC and 2010-02-12 14:25:00 UTC to 2010-02-12 14:35:00 UTC, it would
+ expose this with a <a href=#media-timeline>media timeline</a> starting at 0s and
+ extending to 3,600s (one hour). Assuming the streaming server
+ disconnected at the end of the second clip, the <code title=dom-media-duration><a href=#dom-media-duration>duration</a></code> attribute would then
+ return 3,600. The <code title=dom-media-startOffsetTime><a href=#dom-media-startoffsettime>startOffsetTime</a></code> attribute
+ would return a <code>Date</code> object with a time corresponding to
+ 2010-03-20 23:15:00 UTC. However, if a different user agent
+ connected five minutes later, <em>it</em> would (presumably) receive
+ fragments covering timestamps 2010-03-20 23:20:00 UTC to 2010-03-21
+ 00:05:00 UTC and 2010-02-12 14:25:00 UTC to 2010-02-12 14:35:00 UTC,
+ and would expose this with a <a href=#media-timeline>media timeline</a> starting at
+ 0s and extending to 3,300s (fifty five minutes). In this case, the
+ <code title=dom-media-startOffsetTime><a href=#dom-media-startoffsettime>startOffsetTime</a></code>
+ attribute would return a <code>Date</code> object with a time
+ corresponding to 2010-03-20 23:20:00 UTC.</p>
+
+ <p>In any case, the user agent must ensure that the <a href=#earliest-possible-position>earliest
+ possible position</a> (as defined below) using the established
+ <a href=#media-timeline>media timeline</a>, is greater than or equal to zero.</p>
+
+ <p>The <a href=#media-timeline>media timeline</a> also has an associated clock.
+ Which clock is used is user-agent defined, and may be <a href=#media-resource>media
+ resource</a>-dependent, but it should approximate the user's wall
+ clock.</p>
+
+ <p class=note>All the <a href=#media-element title="media element">media
+ elements</a> that share <a href=#current-media-controller>current media controller</a> use
+ the same clock for their <a href=#media-timeline>media timeline</a>.</p>
+
+ <p><a href=#media-element title="media element">Media elements</a> have a
+ <dfn id=current-playback-position>current playback position</dfn>, which must initially (i.e. in
+ the absence of <a href=#media-data>media data</a>) be zero seconds. The
+ <a href=#current-playback-position>current playback position</a> is a time on the <a href=#media-timeline>media
+ timeline</a>.</p>
+
+ <p><a href=#media-element title="media element">Media elements</a> also have an
+ <dfn id=official-playback-position>official playback position</dfn>, which must initially be set
+ to zero seconds. The <a href=#official-playback-position>official playback position</a> is an
+ approximation of the <a href=#current-playback-position>current playback position</a>
+ that is kept stable while scripts are running.</p>
+
+ <p><a href=#media-element title="media element">Media elements</a> also have a
+ <dfn id=default-playback-start-position>default playback start position</dfn>, which must initially be
+ set to zero seconds. This time is used to allow the element to be
+ seeked even before the media is loaded.</p>
+
+ <p>The <dfn id=dom-media-currenttime title=dom-media-currentTime><code>currentTime</code></dfn>
+ attribute must, on getting, return the <a href=#media-element>media element</a>'s
+ <a href=#default-playback-start-position>default playback start position</a>, unless that is zero,
+ in which case it must return the element's <a href=#official-playback-position>official playback
+ position</a>. The returned value must be expressed in seconds. On
+ setting, if the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, then the user agent must throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception; otherwise, if the
+ <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, then it must set
+ the <a href=#media-element>media element</a>'s <a href=#default-playback-start-position>default playback start
+ position</a> to the new value; otherwise, it must set the
+ <a href=#official-playback-position>official playback position</a> to the new value and then
+ <a href=#dom-media-seek title=dom-media-seek>seek</a> to the new value. The new
+ value must be interpreted as being in seconds.</p>
+
+ <p><a href=#media-element title="media element">Media elements</a> have an
+ <dfn id=initial-playback-position>initial playback position</dfn>, which must initially (i.e. in
+ the absence of <a href=#media-data>media data</a>) be zero seconds. The
+ <a href=#initial-playback-position>initial playback position</a> is updated when a <a href=#media-resource>media
+ resource</a> is loaded. The <a href=#initial-playback-position>initial playback
+ position</a> is a time on the <a href=#media-timeline>media timeline</a>.</p>
+
+ <p>The <dfn id=dom-media-initialtime title=dom-media-initialTime><code>initialTime</code></dfn>
+ attribute must, on getting, return the <a href=#initial-playback-position>initial playback
+ position</a>, expressed in seconds.</p>
+
+ <p>If the <a href=#media-resource>media resource</a> is a streaming resource, then
+ the user agent might be unable to obtain certain parts of the
+ resource after it has expired from its buffer. Similarly, some <a href=#media-resource title="media resource">media resources</a> might have a
+ <a href=#media-timeline>media timeline</a> that doesn't start at zero. The
+ <dfn id=earliest-possible-position>earliest possible position</dfn> is the earliest position in
+ the stream or resource that the user agent can ever obtain
+ again. It is also a time on the <a href=#media-timeline>media timeline</a>.</p>
+
+ <p class=note>The <a href=#earliest-possible-position>earliest possible position</a> is not
+ explicitly exposed in the API; it corresponds to the start time of
+ the first range in the <code title=dom-media-seekable><a href=#dom-media-seekable>seekable</a></code> attribute's
+ <code><a href=#timeranges>TimeRanges</a></code> object, if any, or the <a href=#current-playback-position>current
+ playback position</a> otherwise.</p>
+
+ <p>When the <a href=#earliest-possible-position>earliest possible position</a> changes, then:
+ if the <a href=#current-playback-position>current playback position</a> is before the
+ <a href=#earliest-possible-position>earliest possible position</a>, the user agent must <a href=#dom-media-seek title=dom-media-seek>seek</a> to the <a href=#earliest-possible-position>earliest possible
+ position</a>; otherwise, if the user agent has not fired a <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> event at the
+ element in the past 15 to 250ms and is not still running event
+ handlers for such an event, then the user agent must <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at the element.</p>
+
+ <p class=note>Because of the above requirement and the requirement
+ in the <a href=#concept-media-load-resource title=concept-media-load-resource>resource fetch
+ algorithm</a> that kicks in <a href=#getting-media-metadata>when the metadata of the clip becomes
+ known</a>, the <a href=#current-playback-position>current playback position</a> can never be
+ less than the <a href=#earliest-possible-position>earliest possible position</a>.</p>
+
+ <p>The <dfn id=dom-media-duration title=dom-media-duration><code>duration</code></dfn>
+ attribute must return the time of the end of the <a href=#media-resource>media
+ resource</a>, in seconds, on the <a href=#media-timeline>media timeline</a>. If
+ no <a href=#media-data>media data</a> is available, then the attributes must
+ return the Not-a-Number (NaN) value. If the <a href=#media-resource>media
+ resource</a> is not known to be bounded (e.g. streaming radio, or
+ a live event with no announced end time), then the attribute must
+ return the positive Infinity value.</p>
+
+ <p>The user agent must determine the duration of the <a href=#media-resource>media
+ resource</a> before playing any part of the <a href=#media-data>media
+ data</a> and before setting <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> to a value equal to
+ or greater than <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code>, even if doing
+ so requires fetching multiple parts of the resource.</p>
+
+ <p id=durationChange>When the length of the <a href=#media-resource>media
+ resource</a> changes to a known value (e.g. from being unknown to
+ known, or from a previously established length to a new length) the
+ user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-durationchange><a href=#event-media-durationchange>durationchange</a></code> at the
+ <a href=#media-element>media element</a>. (The event is not fired when the
+ duration is reset as part of loading a new media resource.) If the
+ duration is changed such that the <a href=#current-playback-position>current playback
+ position</a> ends up being greater than the time of the end of
+ the <a href=#media-resource>media resource</a>, then the user agent must also <a href=#dom-media-seek title=dom-media-seek>seek</a> the to the time of the end of the
+ <a href=#media-resource>media resource</a>.</p>
+
+ <p class=example>If an "infinite" stream ends for some reason,
+ then the duration would change from positive Infinity to the time of
+ the last frame or sample in the stream, and the <code title=event-media-durationchange><a href=#event-media-durationchange>durationchange</a></code> event would
+ be fired. Similarly, if the user agent initially estimated the
+ <a href=#media-resource>media resource</a>'s duration instead of determining it
+ precisely, and later revises the estimate based on new information,
+ then the duration would change and the <code title=event-media-durationchange><a href=#event-media-durationchange>durationchange</a></code> event would
+ be fired.</p>
+
+ <p>Some video files also have an explicit date and time
+ corresponding to the zero time in the <a href=#media-timeline>media timeline</a>,
+ known as the <dfn id=timeline-offset>timeline offset</dfn>. Initially, the
+ <a href=#timeline-offset>timeline offset</a> must be set to Not-a-Number (NaN).</p>
+
+ <p>The <dfn id=dom-media-startoffsettime title=dom-media-startOffsetTime><code>startOffsetTime</code></dfn>
+ attribute must return a new <code>Date</code> object representing
+ the current <a href=#timeline-offset>timeline offset</a>.</p>
+
+ </div>
+
+ <hr><p>The <dfn id=attr-media-loop title=attr-media-loop><code>loop</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a> that, if specified,
+ indicates that the <a href=#media-element>media element</a> is to seek back to the
+ start of the <a href=#media-resource>media resource</a> upon reaching the end.</p>
+
+ <p>The <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code> attribute has no
+ effect while the element has a <a href=#current-media-controller>current media
+ controller</a>.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-media-loop title=dom-media-loop><code>loop</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ </div>
+
+
+
+ <h5 id=ready-states><span class=secno>4.8.10.7 </span>Ready states</h5>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code></dt>
+
+ <dd>
+
+ <p>Returns a value that expresses the current state of the element
+ with respect to rendering the <a href=#current-playback-position>current playback
+ position</a>, from the codes in the list below.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p><a href=#media-element title="media element">Media elements</a> have a
+ <i>ready state</i>, which describes to what degree they are ready
+ to be rendered at the <a href=#current-playback-position>current playback position</a>. The
+ possible values are as follows; the ready state of a media element
+ at any particular time is the greatest value describing the state of
+ the element:</p>
+
+ </div>
+
+ <dl><dt><dfn id=dom-media-have_nothing title=dom-media-HAVE_NOTHING><code>HAVE_NOTHING</code></dfn> (numeric value 0)</dt>
+
+ <dd>No information regarding the <a href=#media-resource>media resource</a> is
+ available. No data for the <a href=#current-playback-position>current playback position</a>
+ is available. <a href=#media-element title="media element">Media elements</a>
+ whose <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code>
+ attribute are set to <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code> are always in
+ the <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>
+ state.</dd>
+
+ <dt><dfn id=dom-media-have_metadata title=dom-media-HAVE_METADATA><code>HAVE_METADATA</code></dfn> (numeric value 1)</dt>
+
+ <dd>Enough of the resource has been obtained that the duration of
+ the resource is available. In the case of a <code><a href=#the-video-element>video</a></code>
+ element, the dimensions of the video are also available. The API
+ will no longer throw an exception when seeking. No <a href=#media-data>media
+ data</a> is available for the immediate <a href=#current-playback-position>current playback
+ position</a>.
+ The <a href=#text-track title="text track">text tracks</a>
+ are <a href=#the-text-tracks-are-ready title="the text tracks are ready">ready</a>.
+ </dd>
+
+ <dt><dfn id=dom-media-have_current_data title=dom-media-HAVE_CURRENT_DATA><code>HAVE_CURRENT_DATA</code></dfn> (numeric value 2)</dt>
+
+ <dd>Data for the immediate <a href=#current-playback-position>current playback position</a>
+ is available, but either not enough data is available that the user
+ agent could successfully advance the <a href=#current-playback-position>current playback
+ position</a> in the <a href=#direction-of-playback>direction of playback</a> at all
+ without immediately reverting to the <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> state, or
+ there is no more data to obtain in the <a href=#direction-of-playback>direction of
+ playback</a>. For example, in video this corresponds to the user
+ agent having data from the current frame, but not the next frame,
+ when the <a href=#current-playback-position>current playback position</a> is at the end of
+ the current frame; and to when <a href=#ended-playback title="ended
+ playback">playback has ended</a>.</dd>
+
+ <dt><dfn id=dom-media-have_future_data title=dom-media-HAVE_FUTURE_DATA><code>HAVE_FUTURE_DATA</code></dfn> (numeric value 3)</dt>
+
+ <dd>Data for the immediate <a href=#current-playback-position>current playback position</a>
+ is available, as well as enough data for the user agent to advance
+ the <a href=#current-playback-position>current playback position</a> in the <a href=#direction-of-playback>direction
+ of playback</a> at least a little without immediately reverting
+ to the <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code>
+ state. For example, in video this corresponds to the user agent
+ having data for at least the current frame and the next frame when
+ the <a href=#current-playback-position>current playback position</a> is at the instant in
+ time between the two frames, or to the user agent having the video
+ data for the current frame and audio data to keep playing at least
+ a little when the <a href=#current-playback-position>current playback position</a> is in the
+ middle of a frame. The user agent cannot be in this state if <a href=#ended-playback title="ended playback">playback has ended</a>, as the
+ <a href=#current-playback-position>current playback position</a> can never advance in this
+ case.</dd>
+
+ <dt><dfn id=dom-media-have_enough_data title=dom-media-HAVE_ENOUGH_DATA><code>HAVE_ENOUGH_DATA</code></dfn> (numeric value 4)</dt>
+
+ <dd>All the conditions described for the <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> state
+ are met, and, in addition, the user agent estimates that data is
+ being fetched at a rate where the <a href=#current-playback-position>current playback
+ position</a>, if it were to advance at the <a href=#effective-playback-rate>effective
+ playback rate</a>, would not overtake the available data before
+ playback reaches the end of the <a href=#media-resource>media resource</a>.</dd>
+
+ </dl><p class=note>In practice, the difference between <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> and <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> is
+ negligible. Really the only time the difference is relevant is when
+ painting a <code><a href=#the-video-element>video</a></code> element onto a <code><a href=#the-canvas-element>canvas</a></code>,
+ where it distinguishes the case where something will be drawn (<code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> or
+ greater) from the case where nothing is drawn (<code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> or less).
+ Similarly, the difference between <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> (only
+ the current frame) and <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> (at least
+ this frame and the next) can be negligible (in the extreme, only one
+ frame). The only time that distinction really matters is when a page
+ provides an interface for "frame-by-frame" navigation.</p>
+
+ <div class=impl>
+
+ <p>When the ready state of a <a href=#media-element>media element</a> whose <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> is not <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code> changes, the
+ user agent must follow the steps given below:</p>
+
+ <ol><li>
+
+ <p>Apply the first applicable set of substeps from the following
+ list:</p>
+
+
+ <dl class=switch><!-- going up to metadata --><dt>If the previous ready state was <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, and the new
+ ready state is <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code></dt>
+
+ <dd id=fire-loadedmetadata>
+
+ <p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+ named <code title=event-media-loadedmetadata><a href=#event-media-loadedmetadata>loadedmetadata</a></code> at the
+ element.</p>
+
+ <p class=note>Before this task is run, as part of the event
+ loop mechanism, the rendering will have been updated to resize
+ the <code><a href=#the-video-element>video</a></code> element if appropriate.</p>
+
+ </dd>
+
+ <!-- going up to current for the first time -->
+
+ <dt id=handling-first-frame-available>If the previous ready state
+ was <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> and
+ the new ready state is <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> or
+ greater</dt>
+
+ <dd>
+
+ <p id=fire-loadeddata>If this is the first time this occurs for
+ this <a href=#media-element>media element</a> since the <code title=dom-media-load><a href=#dom-media-load>load()</a></code> algorithm was last invoked,
+ the user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> named <code title=event-media-loadeddata><a href=#event-media-loadeddata>loadeddata</a></code> at the element.</p>
+
+ <p>If the new ready state is <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> or
+ <code title=dom-media-HAVE_ENOUGH_DATA><a href=#dom-media-have_enough_data>HAVE_ENOUGH_DATA</a></code>,
+ then the relevant steps below must then be run also.</p>
+
+ </dd>
+
+ <!-- going down -->
+ <dt>If the previous ready state was <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> or more,
+ and the new ready state is <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> or
+ less</dt>
+
+ <dd>
+
+ <p id=fire-waiting-when-waiting>If the <a href=#media-element>media
+ element</a> was <a href=#potentially-playing>potentially playing</a> before its
+ <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute
+ changed to a value lower than <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code>, and
+ the element has not <a href=#ended-playback>ended playback</a>, and playback
+ has not <a href=#stopped-due-to-errors>stopped due to errors</a>, and playback has not
+ <a href=#paused-for-user-interaction>paused for user interaction</a>, the user agent must
+ <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+ named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at
+ the element, and <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> named <code title=event-media-waiting><a href=#event-media-waiting>waiting</a></code> at the element.</p>
+
+ </dd>
+
+ <!-- going up to future -->
+ <dt>If the previous ready state was <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> or
+ less, and the new ready state is <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code></dt>
+
+ <dd>
+
+ <p>The user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> named <code title=event-media-canplay><a href=#event-media-canplay>canplay</a></code>.</p>
+
+ <p>If the element's <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code>
+ attribute is false, the user agent must <a href=#queue-a-task>queue a task</a>
+ to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-playing><a href=#event-media-playing>playing</a></code>.</p>
+
+ </dd>
+
+ <!-- going up to enough -->
+ <dt>If the new ready state is <code title=dom-media-HAVE_ENOUGH_DATA><a href=#dom-media-have_enough_data>HAVE_ENOUGH_DATA</a></code></dt>
+
+ <dd>
+
+ <p>If the previous ready state was <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> or
+ less, the user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire
+ a simple event</a> named <code title=event-media-canplay><a href=#event-media-canplay>canplay</a></code>, and, if the element's
+ <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute is false,
+ <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+ named <code title=event-media-playing><a href=#event-media-playing>playing</a></code>.</p>
+
+ <p>If the <a href=#autoplaying-flag>autoplaying flag</a> is true, and the <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute is true, and the
+ <a href=#media-element>media element</a> has an <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code> attribute specified,
+ and the <a href=#media-element>media element</a>'s <code><a href=#document>Document</a></code>'s
+ <a href=#browsing-context>browsing context</a> did not have the <a href=#sandboxed-automatic-features-browsing-context-flag>sandboxed
+ automatic features browsing context flag</a> set when the
+ <code><a href=#document>Document</a></code> was created, then the user agent may also
+ set the <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute to
+ false, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-play><a href=#event-media-play>play</a></code>, and
+ <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+ named <code title=event-media-playing><a href=#event-media-playing>playing</a></code>.</p>
+
+ <p class=note>User agents do not need to support autoplay,
+ and it is suggested that user agents honor user preferences on the
+ matter. Authors are urged to use the <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code> attribute rather than
+ using script to force the video to play, so as to allow the user
+ to override the behavior if so desired.</p>
+
+ <p>In any case, the user agent must finally <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-canplaythrough><a href=#event-media-canplaythrough>canplaythrough</a></code>.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li><p>If the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, then <a href=#report-the-controller-state>report the controller state</a>
+ for the <a href=#media-element>media element</a>'s <a href=#current-media-controller>current media
+ controller</a>.</li>
+
+ </ol></div>
+
+ <p class=note>It is possible for the ready state of a media
+ element to jump between these states discontinuously. For example,
+ the state of a media element can jump straight from <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> to <code title=dom-media-HAVE_ENOUGH_DATA><a href=#dom-media-have_enough_data>HAVE_ENOUGH_DATA</a></code> without
+ passing through the <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> and
+ <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code>
+ states.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-media-readystate title=dom-media-readyState><code>readyState</code></dfn> IDL
+ attribute must, on getting, return the value described above that
+ describes the current ready state of the <a href=#media-element>media
+ element</a>.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-media-autoplay title=attr-media-autoplay><code>autoplay</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. When present, the
+ user agent <span class=impl>(as described in the algorithm
+ described herein)</span> will automatically begin playback of the
+ <a href=#media-resource>media resource</a> as soon as it can do so without
+ stopping.</p>
+
+ <p class=note>Authors are urged to use the <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code> attribute rather than
+ using script to trigger automatic playback, as this allows the user
+ to override the automatic playback when it is not desired, e.g. when
+ using a screen reader. Authors are also encouraged to consider not
+ using the automatic playback behavior at all, and instead to let the
+ user agent wait for the user to start playback explicitly.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-media-autoplay title=dom-media-autoplay><code>autoplay</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ </div>
+
+
+
+ <h5 id=playing-the-media-resource><span class=secno>4.8.10.8 </span>Playing the media resource</h5>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if playback is paused; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-ended><a href=#dom-media-ended>ended</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if playback has reached the end of the <a href=#media-resource>media resource</a>.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-defaultPlaybackRate><a href=#dom-media-defaultplaybackrate>defaultPlaybackRate</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the default rate of playback, for when the user is not
+ fast-forwarding or reversing through the <a href=#media-resource>media
+ resource</a>.</p>
+
+ <p>Can be set, to change the default rate of playback.</p>
+
+ <p>The default rate has no direct effect on playback, but if the
+ user switches to a fast-forward mode, when they return to the
+ normal playback mode, it is expected that the rate of playback
+ will be returned to the default rate of playback.</p>
+
+ <p>When the element has a <a href=#current-media-controller>current media controller</a>,
+ the <code title=dom-media-defaultPlaybackRate><a href=#dom-media-defaultplaybackrate>defaultPlaybackRate</a></code>
+ attribute is ignored and the <a href=#current-media-controller>current media
+ controller</a>'s <code title=dom-MediaController-defaultPlaybackRate><a href=#dom-mediacontroller-defaultplaybackrate>defaultPlaybackRate</a></code>
+ is used instead.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-playbackRate><a href=#dom-media-playbackrate>playbackRate</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current rate playback, where 1.0 is normal speed.</p>
+
+ <p>Can be set, to change the rate of playback.</p>
+
+ <p>When the element has a <a href=#current-media-controller>current media controller</a>,
+ the <code title=dom-media-playbackRate><a href=#dom-media-playbackrate>playbackRate</a></code>
+ attribute is ignored and the <a href=#current-media-controller>current media
+ controller</a>'s <code title=dom-MediaController-playbackRate><a href=#dom-mediacontroller-playbackrate>playbackRate</a></code> is
+ used instead.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-played><a href=#dom-media-played>played</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#timeranges>TimeRanges</a></code> object that represents the
+ ranges of the <a href=#media-resource>media resource</a> that the user agent has
+ played.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-play><a href=#dom-media-play>play</a></code>()</dt>
+
+ <dd>
+
+ <p>Sets the <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute
+ to false, loading the <a href=#media-resource>media resource</a> and beginning
+ playback if necessary. If the playback had ended, will restart it
+ from the start.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-pause><a href=#dom-media-pause>pause</a></code>()</dt>
+
+ <dd>
+
+ <p>Sets the <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute
+ to true, loading the <a href=#media-resource>media resource</a> if necessary.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-media-paused title=dom-media-paused><code>paused</code></dfn>
+ attribute represents whether the <a href=#media-element>media element</a> is
+ paused or not. The attribute must initially be true.</p>
+
+ <p>A <a href=#media-element>media element</a> is a <dfn id=blocked-media-element>blocked media
+ element</dfn> if its <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is in the
+ <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code> state, the
+ <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> state, or
+ the <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> state,
+ or if the element has <a href=#paused-for-user-interaction>paused for user interaction</a>.</p>
+
+ <p>A <a href=#media-element>media element</a> is said to be <dfn id=potentially-playing>potentially
+ playing</dfn> when its <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code>
+ attribute is false, the element has not <a href=#ended-playback>ended playback</a>,
+ playback has not <a href=#stopped-due-to-errors>stopped due to errors</a>,
+ the element either has no <a href=#current-media-controller>current media controller</a> or
+ has a <a href=#current-media-controller>current media controller</a> but is not <a href=#blocked-on-its-media-controller>blocked
+ on its media controller</a>,
+ and the element is not a <a href=#blocked-media-element>blocked media element</a>.</p>
+
+ <p>A <a href=#media-element>media element</a> is said to have <dfn id=ended-playback>ended
+ playback</dfn> when:</p>
+
+ <ul><li>The element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> or greater,
+ and
+
+ <li>
+
+ <p>Either:
+
+ <ul><li>The <a href=#current-playback-position>current playback position</a> is the end of the
+ <a href=#media-resource>media resource</a>, and
+
+ <li>The <a href=#direction-of-playback>direction of playback</a> is forwards, and
+
+ <li>
+ Either
+ the <a href=#media-element>media element</a> does not have a <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code> attribute specified,
+ or the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>.
+
+ </ul><p>Or:
+
+ <ul><li>The <a href=#current-playback-position>current playback position</a> is the
+ <a href=#earliest-possible-position>earliest possible position</a>, and
+
+ <li>The <a href=#direction-of-playback>direction of playback</a> is backwards.
+
+ </ul></li>
+
+ </ul><p>The <dfn id=dom-media-ended title=dom-media-ended><code>ended</code></dfn>
+ attribute must return true if, the last time the <a href=#event-loop>event
+ loop</a> reached step 1, the <a href=#media-element>media element</a> had
+ <a href=#ended-playback>ended playback</a> and the <a href=#direction-of-playback>direction of
+ playback</a> was forwards, and false otherwise.</p>
+
+ <p>A <a href=#media-element>media element</a> is said to have <dfn id=stopped-due-to-errors>stopped due to
+ errors</dfn> when the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> or greater, and
+ the user agent <a href=#non-fatal-media-error>encounters a
+ non-fatal error</a> during the processing of the <a href=#media-data>media
+ data</a>, and due to that error, is not able to play the content
+ at the <a href=#current-playback-position>current playback position</a>.</p>
+
+ <p>A <a href=#media-element>media element</a> is said to have <dfn id=paused-for-user-interaction>paused for user
+ interaction</dfn> when its <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute is false, the <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is either
+ <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> or
+ <code title=dom-media-HAVE_ENOUGH_DATA><a href=#dom-media-have_enough_data>HAVE_ENOUGH_DATA</a></code> and
+ the user agent has reached a point in the <a href=#media-resource>media
+ resource</a> where the user has to make a selection for the
+ resource to continue.
+ If the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a> when this happens, then the user agent must
+ <a href=#report-the-controller-state>report the controller state</a> for the <a href=#media-element>media
+ element</a>'s <a href=#current-media-controller>current media controller</a>. If the
+ <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a> when the user makes a selection, allowing playback
+ to resume, the user agent must similarly <a href=#report-the-controller-state>report the controller
+ state</a> for the <a href=#media-element>media element</a>'s <a href=#current-media-controller>current
+ media controller</a>.
+ </p>
+
+ <p>It is possible for a <a href=#media-element>media element</a> to have both
+ <a href=#ended-playback>ended playback</a> and <a href=#paused-for-user-interaction>paused for user
+ interaction</a> at the same time.</p>
+
+ <p>When a <a href=#media-element>media element</a> that is <a href=#potentially-playing>potentially
+ playing</a> stops playing because it has <a href=#paused-for-user-interaction>paused for user
+ interaction</a>, the user agent must <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at the element.</p>
+
+ <p class=note>A <code title=event-media-waiting><a href=#event-media-waiting>waiting</a></code>
+ DOM event <a href=#fire-waiting-when-waiting>can be fired</a> as a
+ result of an element that is <a href=#potentially-playing>potentially playing</a>
+ stopping playback due to its <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute changing to
+ a value lower than <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code>.</p>
+
+ <p>When the <a href=#current-playback-position>current playback position</a> reaches the end
+ of the <a href=#media-resource>media resource</a> when the <a href=#direction-of-playback>direction of
+ playback</a> is forwards, then the user agent must follow these
+ steps:</p>
+
+ <ol><li><p>If the <a href=#media-element>media element</a> has a <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code> attribute specified
+ and does not have a <a href=#current-media-controller>current media controller</a>,
+ then <a href=#dom-media-seek title=dom-media-seek>seek</a> to the <a href=#earliest-possible-position>earliest
+ possible position</a> of the <a href=#media-resource>media resource</a> and
+ abort these steps.</li> <!-- v2/v3: We should fire a 'looping'
+ event here to explain why this immediately fires a 'playing' event,
+ otherwise the 'playing' event that fires from the readyState going
+ from HAVE_CURRENT_DATA back to HAVE_FUTURE_DATA will seem
+ inexplicable (since the normally matching 'ended' given below event
+ doesn't fire in the loop case). -->
+
+ <li><p>As defined above, the <code title=dom-media-ended><a href=#dom-media-ended>ended</a></code> IDL attribute starts returning
+ true once the <a href=#event-loop>event loop</a>'s current <a href=#concept-task title=concept-task>task</a> ends.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at the <a href=#media-element>media
+ element</a>.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> that, if the <a href=#media-element>media
+ element</a> does not have a <a href=#current-media-controller>current media
+ controller</a>, and the <a href=#media-element>media element</a> has still
+ <a href=#ended-playback>ended playback</a>, and the <a href=#direction-of-playback>direction of
+ playback</a> is still forwards, and <a href=#dom-media-paused title=dom-media-paused>paused</a> is false, changes <a href=#dom-media-paused title=dom-media-paused>paused</a> to true and <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a> named <code title=event-media-pause><a href=#event-media-pause>pause</a></code> at the <a href=#media-element>media
+ element</a>.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-ended><a href=#event-media-ended>ended</a></code> at
+ the <a href=#media-element>media element</a>.</li>
+
+ <li><p>If the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, then <a href=#report-the-controller-state>report the controller state</a>
+ for the <a href=#media-element>media element</a>'s <a href=#current-media-controller>current media
+ controller</a>.</li>
+
+ </ol><p>When the <a href=#current-playback-position>current playback position</a> reaches the
+ <a href=#earliest-possible-position>earliest possible position</a> of the <a href=#media-resource>media
+ resource</a> when the <a href=#direction-of-playback>direction of playback</a> is
+ backwards, then the user agent must only <a href=#queue-a-task>queue a task</a>
+ to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at the element.</p>
+
+ <hr><p>The <dfn id=dom-media-defaultplaybackrate title=dom-media-defaultPlaybackRate><code>defaultPlaybackRate</code></dfn>
+ attribute gives the desired speed at which the <a href=#media-resource>media
+ resource</a> is to play, as a multiple of its intrinsic
+ speed. The attribute is mutable: on getting it must return the last
+ value it was set to, or 1.0 if it hasn't yet been set; on setting
+ the attribute must be set to the new value.</p>
+
+ <p class=note>The <code title=dom-media-defaultPlaybackRate><a href=#dom-media-defaultplaybackrate>defaultPlaybackRate</a></code> is
+ used by the user agent when it <a href=#expose-a-user-interface-to-the-user title="expose a user interface
+ to the user">exposes a user interface to the user</a>.</p>
+
+ <p>The <dfn id=dom-media-playbackrate title=dom-media-playbackRate><code>playbackRate</code></dfn>
+ attribute gives the <a href=#effective-playback-rate>effective playback rate</a>
+ (assuming there is no <a href=#current-media-controller>current media controller</a> overriding it),
+ which is the speed at which the <a href=#media-resource>media resource</a> plays,
+ as a multiple of its intrinsic speed. If it is not equal to the
+ <code title=dom-media-defaultPlaybackRate><a href=#dom-media-defaultplaybackrate>defaultPlaybackRate</a></code>,
+ then the implication is that the user is using a feature such as
+ fast forward or slow motion playback. The attribute is mutable: on
+ getting it must return the last value it was set to, or 1.0 if it
+ hasn't yet been set; on setting the attribute must be set to the new
+ value, and the playback will change speed
+ (if the element is <a href=#potentially-playing>potentially playing</a> and there is no
+ <a href=#current-media-controller>current media controller</a>).</p>
+
+ <p id=rateUpdate>When the <code title=dom-media-defaultPlaybackRate><a href=#dom-media-defaultplaybackrate>defaultPlaybackRate</a></code> or
+ <code title=dom-media-playbackRate><a href=#dom-media-playbackrate>playbackRate</a></code> attributes
+ change value (either by being set by script or by being changed
+ directly by the user agent, e.g. in response to user control) the
+ user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-ratechange><a href=#event-media-ratechange>ratechange</a></code> at the <a href=#media-element>media
+ element</a>.</p>
+
+ <p class=note>The <code title=dom-media-defaultPlaybackRate><a href=#dom-media-defaultplaybackrate>defaultPlaybackRate</a></code> and
+ <code title=dom-media-playbackRate><a href=#dom-media-playbackrate>playbackRate</a></code> attributes
+ have no effect when the <a href=#media-element>media element</a> has a
+ <a href=#current-media-controller>current media controller</a>; the namesake attributes on
+ the <code><a href=#mediacontroller>MediaController</a></code> object are used instead in that
+ situation.</p>
+
+ <hr><p>The <dfn id=dom-media-played title=dom-media-played><code>played</code></dfn>
+ attribute must return a new static <a href=#normalized-timeranges-object>normalized
+ <code>TimeRanges</code> object</a> that represents the ranges of
+ the <a href=#media-resource>media resource</a>, if any, that the user agent has so
+ far rendered, at the time the attribute is evaluated.</p>
+
+ <hr><p>When the <dfn id=dom-media-play title=dom-media-play><code>play()</code></dfn>
+ method on a <a href=#media-element>media element</a> is invoked, the user agent
+ must run the following steps.</p>
+
+ <ol><li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute has
+ the value <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>, invoke the
+ <a href=#media-element>media element</a>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a>.</li>
+
+ <li>
+
+ <p>If the <a href=#ended-playback title="ended playback">playback has ended</a>
+ and the <a href=#direction-of-playback>direction of playback</a> is forwards,
+ and the <a href=#media-element>media element</a> does not have a <a href=#current-media-controller>current
+ media controller</a>,
+ <a href=#dom-media-seek title=dom-media-seek>seek</a> to the <a href=#earliest-possible-position>earliest
+ possible position</a> of the <a href=#media-resource>media resource</a>.</p>
+
+ <p class=note>This <a href=#seekUpdate>will cause</a> the user
+ agent to <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at the
+ <a href=#media-element>media element</a>.</p> <!-- if we're already playing at
+ this point, it might also fire 'waiting' -->
+
+ </li>
+
+ <li><p>If the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current
+ media controller</a>, then <a href=#bring-the-media-element-up-to-speed-with-its-new-media-controller>bring the media element up
+ to speed with its new media controller</a>.</p>
+
+ <li>
+
+ <p>If the <a href=#media-element>media element</a>'s <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute is true, run
+ the following substeps:</p>
+
+ <ol><li><p>Change the value of <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> to false.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+ named <code title=event-media-play><a href=#event-media-play>play</a></code> at the element.</li>
+
+ <li>
+
+ <p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute has the
+ value <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>,
+ <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code>, or
+ <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code>,
+ <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+ named <code title=event-media-waiting><a href=#event-media-waiting>waiting</a></code> at the
+ element.</p>
+
+ <p>Otherwise, the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute has the
+ value <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> or
+ <code title=dom-media-HAVE_ENOUGH_DATA><a href=#dom-media-have_enough_data>HAVE_ENOUGH_DATA</a></code>:
+ <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+ named <code title=event-media-playing><a href=#event-media-playing>playing</a></code> at the
+ element.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li><p>Set the <a href=#media-element>media element</a>'s <a href=#autoplaying-flag>autoplaying
+ flag</a> to false.</li>
+
+ <li><p>If the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, then <a href=#report-the-controller-state>report the controller state</a>
+ for the <a href=#media-element>media element</a>'s <a href=#current-media-controller>current media
+ controller</a>.</li>
+
+ </ol><hr><p>When the <dfn id=dom-media-pause title=dom-media-pause><code>pause()</code></dfn>
+ method is invoked, and when the user agent is required to pause the
+ <a href=#media-element>media element</a>, the user agent must run the following
+ steps:</p>
+
+ <ol><li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute has
+ the value <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>, invoke the
+ <a href=#media-element>media element</a>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a>.</li>
+
+ <li><p>Set the <a href=#media-element>media element</a>'s <a href=#autoplaying-flag>autoplaying
+ flag</a> to false.</li>
+
+ <li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute is false, run the
+ following steps:</p>
+
+ <ol><li><p>Change the value of <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> to true.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at the
+ element.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-pause><a href=#event-media-pause>pause</a></code>
+ at the element.</li>
+
+ <li><p>Set the <a href=#official-playback-position>official playback position</a> to the
+ <a href=#current-playback-position>current playback position</a>.</li>
+
+ </ol></li>
+
+ <li><p>If the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, then <a href=#report-the-controller-state>report the controller state</a>
+ for the <a href=#media-element>media element</a>'s <a href=#current-media-controller>current media
+ controller</a>.</li>
+
+ </ol><hr><p>The
+ <dfn id=effective-playback-rate>effective playback rate</dfn> is not necessarily the element's
+ <code title=dom-media-playbackRate><a href=#dom-media-playbackrate>playbackRate</a></code>. When a
+ <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, its <a href=#effective-playback-rate>effective playback rate</a> is the
+ <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#media-controller-playback-rate>media controller playback
+ rate</a>. Otherwise, the
+ <a href=#effective-playback-rate>effective playback rate</a> is just the element's <code title=dom-media-playbackRate><a href=#dom-media-playbackrate>playbackRate</a></code>.
+ Thus, the <a href=#current-media-controller>current media controller</a> overrides the
+ <a href=#media-element>media element</a>.
+ </p>
+
+ <p>If the <a href=#effective-playback-rate>effective playback rate</a> is positive or zero,
+ then the <dfn id=direction-of-playback>direction of playback</dfn> is forwards. Otherwise, it
+ is backwards.</p>
+
+ <p id=media-playback>When a <a href=#media-element>media element</a> is
+ <a href=#potentially-playing>potentially playing</a> and its <code><a href=#document>Document</a></code> is a
+ <a href=#fully-active>fully active</a> <code><a href=#document>Document</a></code>, its <a href=#current-playback-position>current
+ playback position</a> must increase monotonically at
+ <a href=#effective-playback-rate>effective playback rate</a> units of media time per unit time
+ of the <a href=#media-timeline>media timeline</a>'s clock.</p>
+
+ <p class=note>The <a href=#effective-playback-rate>effective playback rate</a> can be 0.0,
+ in which case the <a href=#current-playback-position>current playback position</a> doesn't
+ move, despite playback not being paused (<code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> doesn't become true, and the
+ <code title=event-media-pause><a href=#event-media-pause>pause</a></code> event doesn't
+ fire).</p>
+
+ <p class=note>This specification doesn't define how the user agent
+ achieves the appropriate playback rate &mdash; depending on the
+ protocol and media available, it is plausible that the user agent
+ could negotiate with the server to have the server provide the media
+ data at the appropriate rate, so that (except for the period between
+ when the rate is changed and when the server updates the stream's
+ playback rate) the client doesn't actually have to drop or
+ interpolate any frames.</p>
+
+ <p>Any time the user agent <a href=#provide-a-stable-state title="provide a stable
+ state">provides a stable state</a>, the <a href=#official-playback-position>official playback
+ position</a> must be set to the <a href=#current-playback-position>current playback
+ position</a>.</p>
+
+ <p>When the <a href=#direction-of-playback>direction of playback</a> is backwards, any
+ corresponding audio must be muted. When the <a href=#effective-playback-rate>effective playback
+ rate</a> is so low or so high that the user agent cannot play
+ audio usefully, the corresponding audio must also be muted. If the
+ <a href=#effective-playback-rate>effective playback rate</a> is not 1.0, the user agent may
+ apply pitch adjustments to the audio as necessary to render it
+ faithfully.</p>
+
+ <p><a href=#media-element title="media element">Media elements</a> that are
+ <a href=#potentially-playing>potentially playing</a> while not <a href=#in-a-document>in a
+ <code>Document</code></a> must not play any video, but should
+ play any audio component. Media elements must not stop playing just
+ because all references to them have been removed; only once a media
+ element is in a state where no further audio could ever be played by
+ that element may the element be garbage collected.</p>
+
+ <p class=note>It is possible for an element to which no explicit
+ references exist to play audio, even if such an element is not still
+ actively playing: for instance, it could have a <a href=#current-media-controller>current media
+ controller</a> that still has references and can still be
+ unpaused, or it could be unpaused but stalled waiting for content to
+ buffer.</p>
+
+ <hr><p>When the <a href=#current-playback-position>current playback position</a> of a <a href=#media-element>media
+ element</a> changes (e.g. due to playback or seeking), the user
+ agent must run the following steps. If the <a href=#current-playback-position>current playback
+ position</a> changes while the steps are running, then the user
+ agent must wait for the steps to complete, and then must immediately
+ rerun the steps.
+ (These steps are thus run as often as possible or needed &mdash; if
+ one iteration takes a long time, this can cause certain <a href=#text-track-cue title="text track cue">cues</a> to be skipped over as the user
+ agent rushes ahead to "catch up".)
+ </p>
+
+ <ol><li><p>Let <var title="">current cues</var> be a list of <a href=#text-track-cue title="text track cue">cues</a>, initialized to contain all the
+ <a href=#text-track-cue title="text track cue">cues</a> of all the <a href=#text-track-hidden title="text track hidden">hidden</a>, <a href=#text-track-showing title="text track
+ showing">showing</a>, or <a href=#text-track-showing-by-default title="text track showing by
+ default">showing by default</a> <a href=#text-track title="text track">text
+ tracks</a> of the <a href=#media-element>media element</a> (not the <a href=#text-track-disabled title="text track disabled">disabled</a> ones) whose <a href=#text-track-cue-start-time title="text track cue start time">start times</a> are less than
+ or equal to the <a href=#current-playback-position>current playback position</a> and whose
+ <a href=#text-track-cue-end-time title="text track cue end time">end times</a> are greater
+ than the <a href=#current-playback-position>current playback position</a>.</li>
+
+ <li><p>Let <var title="">other cues</var> be a list of <a href=#text-track-cue title="text track cue">cues</a>, initialized to contain all the
+ <a href=#text-track-cue title="text track cue">cues</a> of <a href=#text-track-hidden title="text track
+ hidden">hidden</a>, <a href=#text-track-showing title="text track
+ showing">showing</a>, and <a href=#text-track-showing-by-default title="text track showing by
+ default">showing by default</a> <a href=#text-track title="text track">text
+ tracks</a> of the <a href=#media-element>media element</a> that are not
+ present in <var title="">current cues</var>.</li>
+
+ <li><p>Let <var title="">last time</var> be the <a href=#current-playback-position>current
+ playback position</a> at the time this algorithm was last run
+ for this <a href=#media-element>media element</a>, if this is not the first time
+ it has run.</li>
+
+ <li><p>If the <a href=#current-playback-position>current playback position</a> has, since the
+ last time this algorithm was run, only changed through its usual
+ monotonic increase during normal playback, then let <var title="">missed cues</var> be the list of <a href=#text-track-cue title="text track
+ cue">cues</a> in <var title="">other cues</var> whose <a href=#text-track-cue-start-time title="text track cue start time">start times</a> are greater
+ than or equal to <var title="">last time</var> and whose <a href=#text-track-cue-end-time title="text track cue end time">end times</a> are less than or
+ equal to the <a href=#current-playback-position>current playback position</a>. Otherwise, let
+ <var title="">missed cues</var> be an empty list.</li>
+
+ <li><p>If the time was reached through the usual monotonic increase
+ of the <a href=#current-playback-position>current playback position</a> during normal
+ playback, and if the user agent has not fired a <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> event at the
+ element in the past 15 to 250ms and is not still running event
+ handlers for such an event, then the user agent must <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at the element.
+ (In the other cases, such as explicit seeks, relevant events get
+ fired as part of the overall process of changing the <a href=#current-playback-position>current
+ playback position</a>.)</p>
+
+ <p class=note>The event thus is not to be fired faster than about
+ 66Hz or slower than 4Hz (assuming the event handlers don't take
+ longer than 250ms to run). User agents are encouraged to vary the
+ frequency of the event based on the system load and the average
+ cost of processing the event each time, so that the UI updates are
+ not any more frequent than the user agent can comfortably handle
+ while decoding the video.</li>
+
+ <li><p>If all of the <a href=#text-track-cue title="text track cue">cues</a> in
+ <var title="">current cues</var> have their <a href=#text-track-cue-active-flag>text track cue
+ active flag</a> set, none of the <a href=#text-track-cue title="text track
+ cue">cues</a> in <var title="">other cues</var> have their
+ <a href=#text-track-cue-active-flag>text track cue active flag</a> set, and <var title="">missed cues</var> is empty, then abort these
+ steps.</li>
+
+ <li>
+
+ <p>If the time was reached through the usual monotonic increase of
+ the <a href=#current-playback-position>current playback position</a> during normal playback,
+ and there are <a href=#text-track-cue title="text track cue">cues</a> in <var title="">other cues</var> that have their <a href=#text-track-cue-pause-on-exit-flag>text track cue
+ pause-on-exit flag</a> set and that either have their
+ <a href=#text-track-cue-active-flag>text track cue active flag</a> set or are also in <var title="">missed cues</var>, then immediately <a href=#dom-media-pause title=dom-media-pause>pause</a> the <a href=#media-element>media
+ element</a>. <!-- "pause" can in theory call load(), but never
+ can it do so as part of this invokation, since we wouldn't be in
+ this algorithm if the media element was empty. So, no need to
+ couch all this in a task. --></p>
+
+ <p class=note>In the other cases, such as explicit seeks,
+ playback is not paused by going past the end time of a <a href=#text-track-cue title="text track cue">cue</a>, even if that <a href=#text-track-cue title="text
+ track cue">cue</a> has its <a href=#text-track-cue-pause-on-exit-flag>text track cue pause-on-exit
+ flag</a> set.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">events</var> be a list of <a href=#concept-task title=concept-task>tasks</a>, initially empty. Each <a href=#concept-task title=concept-task>task</a> in this list will be associated
+ with a <a href=#text-track>text track</a>, a <a href=#text-track-cue>text track cue</a>, and
+ a time, which are used to sort the list before the <a href=#concept-task title=concept-task>tasks</a> are queued.</p>
+
+ <p>Let <var title="">affected tracks</var> be a list of <a href=#text-track title="text track">text tracks</a>, initially empty.</p>
+
+ <p>When the steps below say to <dfn id=prepare-an-event>prepare an event</dfn> named
+ <var title="">event</var> for a <a href=#text-track-cue>text track cue</a> <var title="">target</var> with a time <var title="">time</var>, the
+ user agent must run these substeps:</p>
+
+ <ol><li><p>Let <var title="">track</var> be the <a href=#text-track>text
+ track</a> with which the <a href=#text-track-cue>text track cue</a> <var title="">target</var> is associated.</li>
+
+ <li><p>Create a <a href=#concept-task title=concept-task>task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <var title="">event</var>
+ at <var title="">target</var>.</li>
+
+ <li><p>Add to the newly create <a href=#concept-task title=concept-task>task</a> to <var title="">events</var>,
+ associated with the time <var title="">time</var>, the <a href=#text-track>text
+ track</a> <var title="">track</var>, and the <a href=#text-track-cue>text track
+ cue</a> <var title="">target</var>.</li>
+
+ <li><p>Add <var title="">track</var> to <var title="">affected
+ tracks</var>.</li>
+
+ </ol></li>
+
+ <li><p>For each <a href=#text-track-cue title="text track cue">text track cue</a>
+ in <var title="">missed cues</var>, <a href=#prepare-an-event>prepare an event</a>
+ named <code title=event-enter>enter</code> for the
+ <code><a href=#texttrackcue>TextTrackCue</a></code> object with the <a href=#text-track-cue-start-time>text track cue
+ start time</a>.</li>
+
+ <li><p>For each <a href=#text-track-cue title="text track cue">text track cue</a>
+ in <var title="">other cues</var> that either has its <a href=#text-track-cue-active-flag>text
+ track cue active flag</a> set or is in <var title="">missed
+ cues</var>, <a href=#prepare-an-event>prepare an event</a> named <code title=event-exit>exit</code> for the <code><a href=#texttrackcue>TextTrackCue</a></code>
+ object with the <a href=#text-track-cue-end-time>text track cue end time</a>.</li>
+
+ <li><p>For each <a href=#text-track-cue title="text track cue">text track cue</a>
+ in <var title="">current cues</var> that does not have its
+ <a href=#text-track-cue-active-flag>text track cue active flag</a> set, <a href=#prepare-an-event>prepare an
+ event</a> named <code title=event-enter>enter</code> for the
+ <code><a href=#texttrackcue>TextTrackCue</a></code> object with the <a href=#text-track-cue-start-time>text track cue
+ start time</a>.</li>
+
+ <li>
+
+ <p>Sort the <a href=#concept-task title=concept-task>tasks</a> in <var title="">events</var> in ascending time order (<a href=#concept-task title=concept-task>tasks</a> with earlier times
+ first).</p>
+
+ <p>Further sort <a href=#concept-task title=concept-task>tasks</a> in <var title="">events</var> that have the same time by the relative
+ <a href=#text-track-cue-order>text track cue order</a> of the <a href=#text-track-cue title="text track
+ cue">text track cues</a> associated with these <a href=#concept-task title=concept-task>tasks</a>.</p>
+
+ </li>
+
+ <li><p><a href=#queue-a-task title="queue a task">Queue</a> each <a href=#concept-task title=concept-task>task</a> in <var title="">events</var>, in
+ list order.</li>
+
+ <li><p>Sort <var title="">affected tracks</var> in the same order
+ as the <a href=#text-track title="text track">text tracks</a> appear in the
+ <a href=#media-element>media element</a>'s <a href=#list-of-text-tracks>list of text tracks</a>, and
+ remove duplicates.</p>
+
+ <li><p>For each <a href=#text-track>text track</a> in <var title="">affected
+ tracks</var>, in the list order, <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-cuechange>cuechange</code> at the
+ <code><a href=#texttrack>TextTrack</a></code> object, and, if the <a href=#text-track>text track</a>
+ has a corresponding <code><a href=#the-track-element>track</a></code> element, to then <a href=#fire-a-simple-event>fire
+ a simple event</a> named <code title=event-cuechange>cuechange</code> at the <code><a href=#the-track-element>track</a></code>
+ element as well.</li>
+
+ <li><p>Set the <a href=#text-track-cue-active-flag>text track cue active flag</a> of all the
+ <a href=#text-track-cue title="text track cue">cues</a> in the <var title="">current cues</var>, and unset the <a href=#text-track-cue-active-flag>text track cue
+ active flag</a> of all the <a href=#text-track-cue title="text track
+ cue">cues</a> in the <var title="">other cues</var>.</li>
+
+ <li><p>Run the <a href=#rules-for-updating-the-text-track-rendering>rules for updating the text track
+ rendering</a> of each of the <a href=#text-track title="text track">text
+ tracks</a> in <var title="">affected tracks</var> that are <a href=#text-track-showing title="text track showing">showing</a> or <a href=#text-track-showing-by-default title="text
+ track showing by default">showing by default</a>.
+<!--TTVTT-->
+ For example, for <a href=#text-track title="text track">text tracks</a>
+ based on <a href=#webvtt>WebVTT</a>, the <a href=#rules-for-updating-the-display-of-webvtt-text-tracks>rules for updating the
+ display of WebVTT text tracks</a>.
+<!--TTVTT-->
+ </li>
+
+ </ol><p>For the purposes of the algorithm above, a <a href=#text-track-cue>text track
+ cue</a> is considered to be part of a <a href=#text-track>text track</a>
+ only if it is listed in the <a href=#text-track-list-of-cues>text track list of cues</a>,
+ not merely if it is associated with the <a href=#text-track>text
+ track</a>.</p>
+
+ <p class=note>If the <a href=#media-element>media element</a>'s
+ <code><a href=#document>Document</a></code> stops being a <a href=#fully-active>fully active</a>
+ document, then the playback will <a href=#media-playback>stop</a>
+ until the document is active again.</p>
+
+ <p>When a <a href=#media-element>media element</a> is <a href=#remove-an-element-from-a-document title="remove an
+ element from a document">removed from a
+ <code>Document</code></a>, the user agent must run
+ the following steps:</p>
+
+ <ol><li><p>Asynchronously <a href=#await-a-stable-state>await a stable state</a>, allowing
+ the <a href=#concept-task title=concept-task>task</a> that removed the
+ <a href=#media-element>media element</a> from the <code><a href=#document>Document</a></code> to
+ continue. The <a href=#synchronous-section>synchronous section</a> consists of all the
+ remaining steps of this algorithm. (Steps in the <a href=#synchronous-section>synchronous
+ section</a> are marked with &#8987;.)</li>
+
+ <li><p>&#8987; If the <a href=#media-element>media element</a> is <a href=#in-a-document>in a
+ <code>Document</code></a>, abort these steps.</li>
+
+ <li><p>&#8987; If the <a href=#media-element>media element</a>'s <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute has
+ the value <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>, abort these
+ steps.</li>
+
+ <li><p>&#8987; <a href=#dom-media-pause title=dom-media-pause>Pause</a> the
+ <a href=#media-element>media element</a>.</p>
+
+ </ol></div>
+
+
+
+ <h5 id=seeking><span class=secno>4.8.10.9 </span>Seeking</h5>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the user agent is currently seeking.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-seekable><a href=#dom-media-seekable>seekable</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#timeranges>TimeRanges</a></code> object that represents the
+ ranges of the <a href=#media-resource>media resource</a> to which it is possible
+ for the user agent to seek.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-media-seeking title=dom-media-seeking><code>seeking</code></dfn>
+ attribute must initially have the value false.</p>
+
+ <p>When the user agent is required to <dfn id=dom-media-seek title=dom-media-seek>seek</dfn> to a particular <var title="">new
+ playback position</var> in the <a href=#media-resource>media resource</a>, it means
+ that the user agent must run the following steps. This algorithm
+ interacts closely with the <a href=#event-loop>event loop</a> mechanism; in
+ particular, it has a <a href=#synchronous-section>synchronous
+ section</a> (which is triggered as part of the <a href=#event-loop>event
+ loop</a> algorithm). Steps in that section are marked with
+ &#8987;.</p>
+
+ <ol><li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, abort these
+ steps.</li>
+
+ <li><p>If the element's <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> IDL attribute is true,
+ then another instance of this algorithm is already running. Abort
+ that other instance of the algorithm without waiting for the step
+ that it is running to complete.</li>
+
+ <li><p>Set the <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> IDL
+ attribute to true.</li>
+
+ <li><p>If the seek was in response to a DOM method call or setting
+ of an IDL attribute, then continue the script. The remainder of
+ these steps must be run asynchronously. With the exception of the
+ steps marked with &#8987;, they could be aborted at any time by
+ another instance of this algorithm being invoked.</li>
+
+ <li><p>If the <var title="">new playback position</var> is later
+ than the end of the <a href=#media-resource>media resource</a>, then let it be the
+ end of the <a href=#media-resource>media resource</a> instead.</li>
+
+ <li><p>If the <var title="">new playback position</var> is less
+ than the <a href=#earliest-possible-position>earliest possible position</a>, let it be that
+ position instead.</li>
+
+ <li><p>If the (possibly now changed) <var title="">new playback
+ position</var> is not in one of the ranges given in the <code title=dom-media-seekable><a href=#dom-media-seekable>seekable</a></code> attribute, then let it
+ be the position in one of the ranges given in the <code title=dom-media-seekable><a href=#dom-media-seekable>seekable</a></code> attribute that is the
+ nearest to the <var title="">new playback position</var>. If two
+ positions both satisfy that constraint (i.e. the <var title="">new
+ playback position</var> is exactly in the middle between two ranges
+ in the <code title=dom-media-seekable><a href=#dom-media-seekable>seekable</a></code> attribute)
+ then use the position that is closest to the <a href=#current-playback-position>current playback
+ position</a>. If there are no ranges given in the <code title=dom-media-seekable><a href=#dom-media-seekable>seekable</a></code> attribute then set the
+ <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> IDL attribute to
+ false and abort these steps.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-seeking><a href=#event-media-seeking>seeking</a></code>
+ at the element.</li>
+
+ <li>
+
+ <p>Set the <a href=#current-playback-position>current playback position</a> to the given
+ <var title="">new playback position</var>.</p>
+
+ <p class=note>If the <a href=#media-element>media element</a> was
+ <a href=#potentially-playing>potentially playing</a> immediately before it started
+ seeking, but seeking caused its <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute to change
+ to a value lower than <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code>, then a
+ <code title=event-media-waiting><a href=#event-media-waiting>waiting</a></code> <a href=#fire-waiting-when-waiting>will be fired</a> at the
+ element.</p> <!-- also, timeupdate -->
+ <!-- also, it will do the "report the controller state" thing -->
+
+ <p class=note>The <code title=dom-media-currentTime><a href=#dom-media-currenttime>currentTime</a></code> attribute does
+ not get updated asynchronously, as it returns the <a href=#official-playback-position>official
+ playback position</a>, not the <a href=#current-playback-position>current playback
+ position</a>.</p>
+
+ </li>
+
+ <li><p>Wait until the user agent has established whether or not the
+ <a href=#media-data>media data</a> for the <var title="">new playback
+ position</var> is available, and, if it is, until it has decoded
+ enough data to play back that position.</p>
+ <!-- at which point, it will do the "port the controller state"
+ thing again -->
+ </li>
+
+ <li><p><a href=#await-a-stable-state>Await a stable state</a>. The <a href=#synchronous-section>synchronous
+ section</a> consists of all the remaining steps of this
+ algorithm. (Steps in the <a href=#synchronous-section>synchronous section</a> are
+ marked with &#8987;.)</li>
+
+ <li><p>&#8987; Set the <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> IDL attribute to
+ false.</li>
+
+ <li id=seekUpdate><p>&#8987; <a href=#queue-a-task>Queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at the
+ element.</li>
+
+ <li><p>&#8987; <a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-seeked><a href=#event-media-seeked>seeked</a></code>
+ at the element.</li>
+
+ </ol><p>The <dfn id=dom-media-seekable title=dom-media-seekable><code>seekable</code></dfn>
+ attribute must return a new static <a href=#normalized-timeranges-object>normalized
+ <code>TimeRanges</code> object</a> that represents the ranges of
+ the <a href=#media-resource>media resource</a>, if any, that the user agent is able
+ to seek to, at the time the attribute is evaluated.</p>
+
+ <p class=note>If the user agent can seek to anywhere in the
+ <a href=#media-resource>media resource</a>, e.g. because it is a simple movie file
+ and the user agent and the server support HTTP Range requests, then
+ the attribute would return an object with one range, whose start is
+ the time of the first frame (the <a href=#earliest-possible-position>earliest possible
+ position</a>, typically zero), and whose end is the same as the
+ time of the first frame plus the <code title=dom-media-duration><a href=#dom-media-duration>duration</a></code> attribute's value (which
+ would equal the time of the last frame, and might be positive
+ Infinity).</p>
+
+ <p class=note>The range might be continuously changing, e.g. if
+ the user agent is buffering a sliding window on an infinite
+ stream. This is the behavior seen with DVRs viewing live TV, for
+ instance.</p>
+
+ <p><a href=#media-resource title="media resource">Media resources</a> might be
+ internally scripted or interactive. Thus, a <a href=#media-element>media
+ element</a> could play in a non-linear fashion. If this happens,
+ the user agent must act as if the algorithm for <a href=#dom-media-seek title=dom-media-seek>seeking</a> was used whenever the
+ <a href=#current-playback-position>current playback position</a> changes in a discontinuous
+ fashion (so that the relevant events fire).
+ If the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, then the user agent must <a href=#seek-the-media-controller>seek the media
+ controller</a> appropriately instead.
+ </p>
+
+ </div>
+
+ <h5 id=media-resources-with-multiple-media-tracks><span class=secno>4.8.10.10 </span>Media resources with multiple media tracks</h5>
+
+ <p>A <a href=#media-resource>media resource</a> can have multiple embedded audio
+ and video tracks. For example, in addition to the primary video and
+ audio tracks, a <a href=#media-resource>media resource</a> could have
+ foreign-language dubbed dialogues, director's commentaries, audio
+ descriptions, alternative angles, or sign-language overlays.</p>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-audioTracks><a href=#dom-media-audiotracks>audioTracks</a></code></dt>
+
+ <dd>
+
+ <p>Returns an <code><a href=#audiotracklist>AudioTrackList</a></code> object representing
+ the audio tracks available in the <a href=#media-resource>media resource</a>.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-videoTracks><a href=#dom-media-videotracks>videoTracks</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#videotracklist>VideoTrackList</a></code> object representing
+ the video tracks available in the <a href=#media-resource>media resource</a>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-media-audiotracks title=dom-media-audioTracks><code>audioTracks</code></dfn>
+ attribute of a <a href=#media-element>media element</a> must return a
+ <a href=#live>live</a> <code><a href=#audiotracklist>AudioTrackList</a></code> object representing
+ the audio tracks available in the <a href=#media-element>media element</a>'s
+ <a href=#media-resource>media resource</a>. The same object must be returned each
+ time.</p>
+
+ <p>The <dfn id=dom-media-videotracks title=dom-media-videoTracks><code>videoTracks</code></dfn>
+ attribute of a <a href=#media-element>media element</a> must return a
+ <a href=#live>live</a> <code><a href=#videotracklist>VideoTrackList</a></code> object
+ representing the video tracks available in the <a href=#media-element>media
+ element</a>'s <a href=#media-resource>media resource</a>. The same object must
+ be returned each time.</p>
+
+ <p class=note>There are only ever one <code><a href=#audiotracklist>AudioTrackList</a></code>
+ object and one <code><a href=#videotracklist>VideoTrackList</a></code> object per <a href=#media-element>media
+ element</a>, even if another <a href=#media-resource>media resource</a> is
+ loaded into the element: the objects are reused. (The
+ <code><a href=#audiotrack>AudioTrack</a></code> and <code><a href=#videotrack>VideoTrack</a></code> objects are
+ not, though.)</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example, a script defines a function that takes a URL to
+ a video and a reference to an element where the video is to be
+ placed. That function then tries to load the video, and, once it is
+ loaded, checks to see if there is a sign-language track available.
+ If there is, it also displays that track. Both tracks are just
+ placed in the given container; it's assumed that styles have been
+ applied to make this work in a pretty way!</p>
+
+ <pre>&lt;script&gt;
+ function loadVideo(url, container) {
+ var controller = new MediaController();
+ var video = document.createElement('video');
+ video.src = url;
+ video.autoplay = true;
+ video.controls = true;
+ video.controller = controller;
+ container.appendChild(video);
+ video.onloadedmetadata = function (event) {
+ for (var i = 0; i &lt; video.videoTracks.length; i += 1) {
+ if (video.videoTracks[i].kind == 'sign') {
+ var sign = document.createElement('video');
+ sign.src = url + '#track=' + video.videoTracks[i].id; <!-- should escape this probably -->
+ sign.autoplay = true;
+ sign.controller = controller;
+ container.appendChild(sign);
+ return;
+ }
+ }
+ };
+ }
+&lt;/script&gt;</pre>
+
+ </div>
+
+
+ <h6 id=audiotracklist-and-videotracklist-objects><span class=secno>4.8.10.10.1 </span><code><a href=#audiotracklist>AudioTrackList</a></code> and <code><a href=#videotracklist>VideoTrackList</a></code> objects</h6>
+
+ <p>The <code><a href=#audiotracklist>AudioTrackList</a></code> and <code><a href=#videotracklist>VideoTrackList</a></code>
+ interfaces are used by attributes defined in the previous
+ section.</p>
+
+ <pre class=idl>interface <dfn id=audiotracklist>AudioTrackList</dfn> {
+ readonly attribute unsigned long <a href=#dom-audiotracklist-length title=dom-AudioTrackList-length>length</a>;
+ getter <a href=#audiotrack>AudioTrack</a> (unsigned long index);
+ <a href=#audiotrack>AudioTrack</a>? <a href=#dom-audiotracklist-gettrackbyid title=dom-AudioTrackList-getTrackById>getTrackById</a>(DOMString id);
+
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack>onaddtrack</a>;
+};
+
+interface <dfn id=audiotrack>AudioTrack</dfn> {
+ readonly attribute DOMString <a href=#dom-audiotrack-id title=dom-AudioTrack-id>id</a>;
+ readonly attribute DOMString <a href=#dom-audiotrack-kind title=dom-AudioTrack-kind>kind</a>;
+ readonly attribute DOMString <a href=#dom-audiotrack-label title=dom-AudioTrack-label>label</a>;
+ readonly attribute DOMString <a href=#dom-audiotrack-language title=dom-AudioTrack-language>language</a>;
+ attribute boolean <a href=#dom-audiotrack-enabled title=dom-AudioTrack-enabled>enabled</a>;
+};
+
+interface <dfn id=videotracklist>VideoTrackList</dfn> {
+ readonly attribute unsigned long <a href=#dom-videotracklist-length title=dom-VideoTrackList-length>length</a>;
+ getter <a href=#videotrack>VideoTrack</a> (unsigned long index);
+ <a href=#videotrack>VideoTrack</a>? <a href=#dom-videotracklist-gettrackbyid title=dom-VideoTrackList-getTrackById>getTrackById</a>(DOMString id);
+ readonly attribute long <a href=#dom-videotracklist-selectedindex title=dom-VideoTrackList-selectedIndex>selectedIndex</a>;
+
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onchange title=handler-TrackList-onchange>onchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack>onaddtrack</a>;
+};
+
+interface <dfn id=videotrack>VideoTrack</dfn> {
+ readonly attribute DOMString <a href=#dom-videotrack-id title=dom-VideoTrack-id>id</a>;
+ readonly attribute DOMString <a href=#dom-videotrack-kind title=dom-VideoTrack-kind>kind</a>;
+ readonly attribute DOMString <a href=#dom-videotrack-label title=dom-VideoTrack-label>label</a>;
+ readonly attribute DOMString <a href=#dom-videotrack-language title=dom-VideoTrack-language>language</a>;
+ attribute boolean <a href=#dom-videotrack-selected title=dom-VideoTrack-selected>selected</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-audioTracks><a href=#dom-media-audiotracks>audioTracks</a></code> . <code title=dom-AudioTrackList-length><a href=#dom-audiotracklist-length>length</a></code></dt>
+ <dt><var title="">media</var> . <code title=dom-media-videoTracks><a href=#dom-media-videotracks>videoTracks</a></code> . <code title=dom-VideoTrackList-length><a href=#dom-videotracklist-length>length</a></code></dt>
+
+ <dd>
+
+ <p>Returns the number of tracks in the list.</p>
+
+ </dd>
+
+ <dt><var title="">audioTrack</var> = <var title="">media</var> . <code title=dom-media-audioTracks><a href=#dom-media-audiotracks>audioTracks</a></code>[<var title="">index</var>]</dt>
+ <dt><var title="">videoTrack</var> = <var title="">media</var> . <code title=dom-media-videoTracks><a href=#dom-media-videotracks>videoTracks</a></code>[<var title="">index</var>]</dt>
+
+ <dd>
+
+ <p>Returns the specified <code><a href=#audiotrack>AudioTrack</a></code> or <code><a href=#videotrack>VideoTrack</a></code> object.</p>
+
+ </dd>
+
+ <dt><var title="">audioTrack</var> = <var title="">media</var> . <code title=dom-media-audioTracks><a href=#dom-media-audiotracks>audioTracks</a></code> . <code title=dom-AudioTrackList-getTrackById><a href=#dom-audiotracklist-gettrackbyid>getTrackById</a></code>( <var title="">id</var> )</dt>
+ <dt><var title="">videoTrack</var> = <var title="">media</var> . <code title=dom-media-videoTracks><a href=#dom-media-videotracks>videoTracks</a></code> . <code title=dom-VideoTrackList-getTrackById><a href=#dom-videotracklist-gettrackbyid>getTrackById</a></code>( <var title="">id</var> )</dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#audiotrack>AudioTrack</a></code> or <code><a href=#videotrack>VideoTrack</a></code> object with the given identifier, or null if no track has that identifier.</p>
+
+ </dd>
+
+ <dt><var title="">audioTrack</var> . <code title=dom-AudioTrack-id><a href=#dom-audiotrack-id>id</a></code></dt>
+ <dt><var title="">videoTrack</var> . <code title=dom-VideoTrack-id><a href=#dom-videotrack-id>id</a></code></dt>
+
+ <dd>
+
+ <p>Returns the ID of the given track. This is the ID that can be
+ used with a fragment identifier if the format supports the
+ <cite>Media Fragments URI</cite> syntax, and that can be used with
+ the <code title="">getTrackById()</code> method. <a href=#refsMEDIAFRAG>[MEDIAFRAG]</a></p>
+
+ </dd>
+
+ <dt><var title="">audioTrack</var> . <code title=dom-AudioTrack-kind><a href=#dom-audiotrack-kind>kind</a></code></dt>
+ <dt><var title="">videoTrack</var> . <code title=dom-VideoTrack-kind><a href=#dom-videotrack-kind>kind</a></code></dt>
+
+ <dd>
+
+ <p>Returns the category the given track falls into. The <a href=#dom-TrackList-getKind-categories>possible track categories</a> are given below.</p>
+
+ </dd>
+
+ <dt><var title="">audioTrack</var> . <code title=dom-AudioTrack-label><a href=#dom-audiotrack-label>label</a></code></dt>
+ <dt><var title="">videoTrack</var> . <code title=dom-VideoTrack-label><a href=#dom-videotrack-label>label</a></code></dt>
+
+ <dd>
+
+ <p>Returns the label of the given track, if known, or the empty string otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">audioTrack</var> . <code title=dom-AudioTrack-language><a href=#dom-audiotrack-language>language</a></code></dt>
+ <dt><var title="">videoTrack</var> . <code title=dom-VideoTrack-language><a href=#dom-videotrack-language>language</a></code></dt>
+
+ <dd>
+
+ <p>Returns the language of the given track, if known, or the empty string otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">audioTrack</var> . <code title=dom-AudioTrack-enabled><a href=#dom-audiotrack-enabled>enabled</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns true if the given track is active, and false otherwise.</p>
+
+ <p>Can be set, to change whether the track is enabled or not. If multiple audio tracks are enabled simultaneously, they are mixed.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-videoTracks><a href=#dom-media-videotracks>videoTracks</a></code> . <code title=dom-VideoTrackList-selectedIndex><a href=#dom-videotracklist-selectedindex>selectedIndex</a></code></dt>
+
+ <dd>
+
+ <p>Returns the index of the currently selected track, if any, or &minus;1 otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">videoTrack</var> . <code title=dom-VideoTrack-selected><a href=#dom-videotrack-selected>selected</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns true if the given track is active, and false otherwise.</p>
+
+ <p>Can be set, to change whether the track is selected or not. Either zero or one video track is selected; selecting a new track while a previous one is selected will unselect the previous one.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>An <code><a href=#audiotracklist>AudioTrackList</a></code> object represents a dynamic list
+ of zero or more audio tracks, of which zero or more can be enabled
+ at a time. Each audio track is represented by an
+ <code><a href=#audiotrack>AudioTrack</a></code> object.</p>
+
+ <p>A <code><a href=#videotracklist>VideoTrackList</a></code> object represents a dynamic list of
+ zero or more video tracks, of which zero or one can be selected at a
+ time. Each video track is represented by a <code><a href=#videotrack>VideoTrack</a></code>
+ object.</p>
+
+ <p>Tracks in <code><a href=#audiotracklist>AudioTrackList</a></code> and
+ <code><a href=#videotracklist>VideoTrackList</a></code> objects must be consistently ordered. If
+ the <a href=#media-resource>media resource</a> is in a format that defines an
+ order, then that order must be used; otherwise, the order must be
+ the relative order in which the tracks are declared in the
+ <a href=#media-resource>media resource</a>. The order used is called the <i>natural
+ order</i> of the list.</p>
+
+ <p class=note>Each track in a <code>TrackList</code> thus has an
+ index; the first has the index 0, and each subsequent track is
+ numbered one higher than the previous one. If a <a href=#media-resource>media
+ resource</a> dynamically adds or removes audio or video tracks,
+ then the indices of the tracks will change dynamically. If the
+ <a href=#media-resource>media resource</a> changes entirely, then all the previous
+ tracks will be removed and replaced with new tracks.</p>
+
+ <p>The <dfn id=dom-audiotracklist-length title=dom-AudioTrackList-length><code>AudioTrackList.length</code></dfn>
+ and <dfn id=dom-videotracklist-length title=dom-VideoTrackList-length><code>VideoTrackList.length</code></dfn>
+ attributes must return the number of tracks represented by their
+ objects at the time of getting.</p>
+
+ <p>The <a href=#supported-property-indices>supported property indices</a> of
+ <code><a href=#audiotracklist>AudioTrackList</a></code> and <code><a href=#videotracklist>VideoTrackList</a></code> objects
+ at any instant are the numbers from zero to the number of tracks
+ represented by the respective object minus one, if any tracks are
+ represented. If a <code><a href=#audiotracklist>AudioTrackList</a></code> or
+ <code><a href=#videotracklist>VideoTrackList</a></code> object represents no tracks, it has no
+ <a href=#supported-property-indices>supported property indices</a>.</p>
+
+ <p>To <a href=#determine-the-value-of-an-indexed-property>determine the value of an indexed property</a> for a
+ given index <var title="">index</var> in an
+ <code><a href=#audiotracklist>AudioTrackList</a></code> or <code><a href=#videotracklist>VideoTrackList</a></code> object
+ <var title="">list</var>, the user agent must return the
+ <code><a href=#audiotrack>AudioTrack</a></code> or <code><a href=#videotrack>VideoTrack</a></code> object that
+ represents the <var title="">index</var>th track in <var title="">list</var>.</p>
+
+ <p>The <dfn id=dom-audiotracklist-gettrackbyid title=dom-AudioTrackList-getTrackById><code>AudioTrackList.getTrackById(<var title="">id</var>)</code></dfn> and <dfn id=dom-videotracklist-gettrackbyid title=dom-VideoTrackList-getTrackById><code>VideoTrackList.getTrackById(<var title="">id</var>)</code></dfn> methods must return the first
+ <code><a href=#audiotrack>AudioTrack</a></code> or <code><a href=#videotrack>VideoTrack</a></code> object
+ (respectively) in the <code><a href=#audiotrack>AudioTrack</a></code> or
+ <code><a href=#videotrack>VideoTrack</a></code> object (respectively) whose identifier is
+ equal to the value of the <var title="">id</var> argument (in the
+ natural order of the list, as defined above). When no tracks match
+ the given argument, the methods must return null.</p>
+
+ <p>The <code><a href=#audiotrack>AudioTrack</a></code> and <code><a href=#videotrack>VideoTrack</a></code> objects
+ represent specific tracks of a <a href=#media-resource>media resource</a>. Each
+ track can have an identifier, category, label, and language. These
+ aspects of a track are permanent for the lifetime of the track; even
+ if a track is removed from a <a href=#media-resource>media resource</a>'s
+ <code><a href=#audiotracklist>AudioTrackList</a></code> or <code><a href=#videotracklist>VideoTrackList</a></code> objects,
+ those aspects do not change.</p>
+
+ <p>In addition, <code><a href=#audiotrack>AudioTrack</a></code> objects can each be enabled
+ or disabled; this is the audio track's <i>enabled state</i>. When an
+ <code><a href=#audiotrack>AudioTrack</a></code> is created, its <i>enabled state</i> must be
+ set to false (disabled). The <a href=#concept-media-load-resource title=concept-media-load-resource>resource fetch algorithm</a>
+ can override this.</p>
+
+ <p>Similarly, a single <code><a href=#videotrack>VideoTrack</a></code> object per
+ <code><a href=#videotracklist>VideoTrackList</a></code> object can be selected, this is the
+ video track's <i>selection state</i>. When a
+ <code><a href=#videotrack>VideoTrack</a></code> is created, its <i>selection state</i> must
+ be set to false (not selected). The <a href=#concept-media-load-resource title=concept-media-load-resource>resource fetch algorithm</a>
+ can override this.</p>
+
+ <p>The <dfn id=dom-audiotrack-id title=dom-AudioTrack-id><code>AudioTrack.id</code></dfn> and <dfn id=dom-videotrack-id title=dom-VideoTrack-id><code>VideTrack.id</code></dfn>
+ attributes must return the identifier of the track, if it has one,
+ or the empty string otherwise. If the <a href=#media-resource>media resource</a> is
+ in a format that supports the <cite>Media Fragments URI</cite>
+ fragment identifier syntax, the identifier returned for a particular
+ track must be the same identifier that would enable the track if
+ used as the name of a track in the track dimension of such a
+ fragment identifier. <a href=#refsMEDIAFRAG>[MEDIAFRAG]</a></p>
+
+ <p>The <dfn id=dom-audiotrack-kind title=dom-AudioTrack-kind><code>AudioTrack.kind</code></dfn> and
+ <dfn id=dom-videotrack-kind title=dom-VideoTrack-kind><code>VideoTrack.kind</code></dfn>
+ attributes must return the category of the track, if it has one, or
+ the empty string otherwise.</p>
+
+ <p>The category of a track is the string given in the first column
+ of the table below that is the most appropriate for the track based
+ on the definitions in the table's second and third columns, as
+ determined by the metadata included in the track in the <a href=#media-resource>media
+ resource</a>. For Ogg files, the Role header of the track gives
+ the relevant metadata. The cell in the third column of a row says
+ what the category given in the cell in the first column of that row
+ applies to; a category is only appropriate for an audio track if it
+ applies to audio tracks, and a category is only appropriate for
+ video tracks if it applies to video tracks. Categories must only be
+ returned for <code><a href=#audiotrack>AudioTrack</a></code> objects if they are appropriate
+ for audio, and must only be returned for <code><a href=#videotrack>VideoTrack</a></code>
+ objects if they are appropriate for video.</p>
+
+ </div>
+
+ <table id=dom-TrackList-getKind-categories><caption>Return values for <code title=dom-AudioTrack-kind><a href=#dom-audiotrack-kind>AudioTrack.kind()</a></code> and <code title=dom-VideoTrack-kind><a href=#dom-videotrack-kind>VideoTrack.kind()</a></code></caption>
+ <thead><tr><th>Category
+ <th>Definition
+ <th>Applies to...</th>
+ <th>Examples
+ <tbody><tr><td>"<dfn id=value-track-kind-alternate title=value-track-kind-alternate><code>alternative</code></dfn>"
+ <td>A possible alternative to the main track, e.g. a different take of a song (audio), or a different angle (video).
+ <td>Audio and video.
+ <td>Ogg: "audio/alternate" or "video/alternate".
+
+ <tr><td>"<dfn id=value-track-kind-description title=value-track-kind-description><code>description</code></dfn>"
+ <td>An audio description of a video track.
+ <td>Audio only.
+ <td>Ogg: "audio/audiodesc".
+
+ <tr><td>"<dfn id=value-track-kind-main title=value-track-kind-main><code>main</code></dfn>"
+ <td>The primary audio or video track.
+ <td>Audio and video.
+ <td>Ogg: "audio/main" or "video/main"; WebM: the "FlagDefault" element is set.
+
+ <tr><td>"<dfn id=value-track-kind-sign title=value-track-kind-sign><code>sign</code></dfn>"
+ <td>A sign-language interpretation of an audio track.
+ <td>Video only.
+ <td>Ogg: "video/sign".
+
+ <tr><td>"<dfn id=value-track-kind-translation title=value-track-kind-translation><code>translation</code></dfn>"
+ <td>A translated version of the main track.
+ <td>Audio only.
+ <td>Ogg: "audio/dub".
+
+ <tr><!-- added because of the volume of use cases, but we should remove it if none of the formats start supporting it --><td>"<dfn id=value-track-kind-commentary title=value-track-kind-commentary><code>commentary</code></dfn>"
+ <td>Commentary on the primary audio or video track, e.g. a director's commentary.
+ <td>Audio and video.
+ <td>No known formats expose this category at this time.
+
+ <tr><td>"<dfn id=value-track-kind-none title=value-track-kind-none><code></code></dfn>" (empty string)
+ <td>No explicit kind, or the kind given by the track's metadata is not recognised by the user agent.
+ <td>Audio and video.
+ <td>Any other track type or track role.
+
+ </table><div class=impl>
+
+ <p>The <dfn id=dom-audiotrack-label title=dom-AudioTrack-label><code>AudioTrack.label</code></dfn> and
+ <dfn id=dom-videotrack-label title=dom-VideoTrack-label><code>VideoTrack.label</code></dfn>
+ attributes must return the label of the track, if it has one, or the
+ empty string otherwise.</p>
+
+ <p>The <dfn id=dom-audiotrack-language title=dom-AudioTrack-language><code>AudioTrack.language</code></dfn>
+ and <dfn id=dom-videotrack-language title=dom-VideoTrack-language><code>VideoTrack.language</code></dfn>
+ attributes must return the BCP 47 language tag of the language of
+ the track, if it has one, or the empty string otherwise. If the user
+ agent is not able to express that language as a BCP 47 language tag
+ (for example because the language information in the <a href=#media-resource>media
+ resource</a>'s format is a free-form string without a defined
+ interpretation), then the method must return the empty string, as if
+ the track had no language.</p>
+
+ <p>The <dfn id=dom-audiotrack-enabled title=dom-AudioTrack-enabled><code>AudioTrack.enabled</code></dfn>
+ attribute, on getting, must return true if the track is currently
+ enabled, and false otherwise. On setting, it must enable the track
+ if the new value is true, and disable it otherwise. (If the track is
+ no longer in an <code><a href=#audiotracklist>AudioTrackList</a></code> object, then the track
+ being enabled or disabled has no effect beyond changing the value of
+ the attribute on the <code><a href=#audiotrack>AudioTrack</a></code> object.)</p>
+
+ <p>Whenever an audio track in an <code><a href=#audiotracklist>AudioTrackList</a></code> is
+ enabled or disabled, the user agent must <a href=#queue-a-task>queue a task</a>
+ to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-change>change</code> at the
+ <code><a href=#audiotracklist>AudioTrackList</a></code> object.</p>
+
+ <p>The <dfn id=dom-videotracklist-selectedindex title=dom-VideoTrackList-selectedIndex><code>VideoTrackList.selectedIndex</code></dfn>
+ attribute must return the index of the currently selected track, if
+ any. If the <code><a href=#videotracklist>VideoTrackList</a></code> object does not currently
+ represent any tracks, or if none of the tracks are selected, it must
+ instead return &minus;1.</p>
+
+ <p>The <dfn id=dom-videotrack-selected title=dom-VideoTrack-selected><code>VideoTrack.selected</code></dfn>
+ attribute, on getting, must return true if the track is currently
+ selected, and false otherwise. On setting, it must select the track
+ if the new value is true, and unselect it otherwise. If the track is
+ in a <code><a href=#videotracklist>VideoTrackList</a></code>, then all the other
+ <code><a href=#videotrack>VideoTrack</a></code> objects in that list must be unselected. (If
+ the track is no longer in a <code><a href=#videotracklist>VideoTrackList</a></code> object, then
+ the track being selected or unselected has no effect beyond changing
+ the value of the attribute on the <code><a href=#videotrack>VideoTrack</a></code>
+ object.)</p>
+
+ <p>Whenever a track in a <code><a href=#videotracklist>VideoTrackList</a></code> that was
+ previously not selected is selected, the user agent must <a href=#queue-a-task>queue
+ a task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-change>change</code> at the
+ <code><a href=#videotracklist>VideoTrackList</a></code> object.</p>
+
+ <hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ all objects implementing the <code><a href=#audiotracklist>AudioTrackList</a></code> and
+ <code><a href=#videotracklist>VideoTrackList</a></code> interfaces:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-tracklist-onchange title=handler-TrackList-onchange><code>onchange</code></dfn> <td> <code title=event-change>change</code>
+ <tr><td><dfn id=handler-tracklist-onaddtrack title=handler-TrackList-onaddtrack><code>onaddtrack</code></dfn> <td> <code title=event-addtrack>addtrack</code>
+ </table><hr><p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> listed in this section is the
+ <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
+
+ <!-- v2 should also fire an event when the list changes -->
+
+ </div>
+
+
+ <h6 id=selecting-specific-audio-and-video-tracks-declaratively><span class=secno>4.8.10.10.2 </span>Selecting specific audio and video tracks declaratively</h6>
+
+ <p>The <code title=dom-media-audioTracks><a href=#dom-media-audiotracks>audioTracks</a></code> and
+ <code title=dom-media-videoTracks><a href=#dom-media-videotracks>videoTracks</a></code> attributes
+ allow scripts to select which track should play, but it is also
+ possible to select specific tracks declaratively, by specifying
+ particular tracks in the fragment identifier of the <a href=#url>URL</a>
+ of the <a href=#media-resource>media resource</a>. The format of the fragment
+ identifier depends on the <a href=#mime-type>MIME type</a> of the <a href=#media-resource>media
+ resource</a>. <a href=#refsRFC2046>[RFC2046]</a> <a href=#refsRFC3986>[RFC3986]</a></p>
+
+ <div class=example>
+
+ <p>In this example, a video that uses a format that supports the
+ <cite>Media Fragments URI</cite> fragment identifier syntax is
+ embedded in such a way that the alternative angles labeled
+ "Alternative" are enabled instead of the default video track. <a href=#refsMEDIAFRAG>[MEDIAFRAG]</a></p>
+
+ <pre>&lt;video src="myvideo#track=Alternative"&gt;&lt;/video&gt;</pre>
+
+ <!-- XXX need to check with the mediafrag people about whether
+ there's a way to select a specific audio or video track without
+ affecting the default track selection of the other axis, e.g.
+ setting the video track without changing the default audio track
+ selection -->
+
+ </div>
+
+
+ <h5 id=synchronising-multiple-media-elements><span class=secno>4.8.10.11 </span>Synchronising multiple media elements</h5>
+
+ <h6 id=introduction-0><span class=secno>4.8.10.11.1 </span>Introduction</h6>
+
+ <p>Each <a href=#media-element>media element</a> can have a
+ <code><a href=#mediacontroller>MediaController</a></code>. A <code><a href=#mediacontroller>MediaController</a></code> is an
+ object that coordinates the playback of multiple <a href=#media-element title="media
+ element">media elements</a>, for instance so that a sign-language
+ interpreter track can be overlaid on a video track, with the two
+ being kept in sync.</p>
+
+ <p>By default, a <a href=#media-element>media element</a> has no
+ <code><a href=#mediacontroller>MediaController</a></code>. An implicit
+ <code><a href=#mediacontroller>MediaController</a></code> can be assigned using the <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> content attribute.
+ An explicit <code><a href=#mediacontroller>MediaController</a></code> can be assigned directly
+ using the <code title=dom-media-controller><a href=#dom-media-controller>controller</a></code> IDL
+ attribute.</p>
+
+ <p><a href=#media-element title="media element">Media elements</a> with a
+ <code><a href=#mediacontroller>MediaController</a></code> are said to be <i>slaved</i> to their
+ controller. The <code><a href=#mediacontroller>MediaController</a></code> modifies the playback
+ rate and the playback volume of each of the <a href=#media-element title="media
+ element">media elements</a> slaved to it, and ensures that when
+ any of its slaved <a href=#media-element title="media element">media elements</a>
+ unexpectedly stall, the others are stopped at the same time.</p>
+
+ <p>When a <a href=#media-element>media element</a> is slaved to a
+ <code><a href=#mediacontroller>MediaController</a></code>, its playback rate is fixed to that of
+ the other tracks in the same <code><a href=#mediacontroller>MediaController</a></code>, and any
+ looping is disabled.</p>
+
+<!-- v2: add control to loop, add control to playback rate
+ <div class="example">
+
+ <p>In this example, two audio elements are slaved to the same
+ (implicit) controller so that a waltz played by one audio element
+ is kept exactly synchronised to the "tick tock tock" sound of the
+ metronome played by the second element:</p>
+
+ <pre>&lt;audio src="The%20Amelia%20Earhart%20Waltz.wav" controls autoplay mediagroup="song">&lt;/audio>
+&lt;audio src="metronomes/3-4.wav" autoplay loop mediagroup="song">&lt;/audio></pre>
+
+ <p>Assuming the song keeps a regular tempo throughout and assuming
+ the metronome has the same tempo, this works even though if the
+ metronome file only has one measure's worth of "tick tock tock",
+ because the controller (implied by the <code
+ title="attr-media-mediagroup">mediagroup</code> attribute)
+ guarantees that the two elements will be kept synchronised, even if
+ the user rewinds, jumps to a different part of the song, etc (the
+ user agent controls made available by the <code
+ title="attr-media-controls">controls</code> attribute on the song's
+ <code>audio</code> element affect the
+ <code>MediaController</code>'s state).</p>
+
+ <p>If the metronome has the wrong rate, its rate can be adjusted by
+ script separately from the song's (using the <code
+ title="dom-media-playbackRate">audio.playbackRate</code> IDL
+ attribute). The two elements will play back their <span>media
+ data</span> at different rates, but the ratio will again be
+ controlled by the <code>MediaController</code>.</p>
+
+ </div>
+-->
+
+
+ <h6 id=media-controllers><span class=secno>4.8.10.11.2 </span>Media controllers</h6>
+
+ <pre class=idl>[<a href=#dom-mediacontroller title=dom-MediaController>Constructor</a>]
+interface <dfn id=mediacontroller>MediaController</dfn> {
+ readonly attribute <a href=#timeranges>TimeRanges</a> <a href=#dom-mediacontroller-buffered title=dom-MediaController-buffered>buffered</a>;
+ readonly attribute <a href=#timeranges>TimeRanges</a> <a href=#dom-mediacontroller-seekable title=dom-MediaController-seekable>seekable</a>;
+ readonly attribute double <a href=#dom-mediacontroller-duration title=dom-MediaController-duration>duration</a>;
+ attribute double <a href=#dom-mediacontroller-currenttime title=dom-MediaController-currentTime>currentTime</a>;
+
+ readonly attribute boolean <a href=#dom-mediacontroller-paused title=dom-MediaController-paused>paused</a>;
+ readonly attribute <a href=#timeranges>TimeRanges</a> <a href=#dom-mediacontroller-played title=dom-MediaController-played>played</a>;
+ void <a href=#dom-mediacontroller-play title=dom-MediaController-play>play</a>();
+ void <a href=#dom-mediacontroller-pause title=dom-MediaController-pause>pause</a>();
+
+ attribute double <a href=#dom-mediacontroller-defaultplaybackrate title=dom-MediaController-defaultPlaybackRate>defaultPlaybackRate</a>;
+ attribute double <a href=#dom-mediacontroller-playbackrate title=dom-MediaController-playbackRate>playbackRate</a>;
+
+ attribute double <a href=#dom-mediacontroller-volume title=dom-MediaController-volume>volume</a>;
+ attribute boolean <a href=#dom-mediacontroller-muted title=dom-MediaController-muted>muted</a>;
+
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onemptied title=handler-MediaController-onemptied>onemptied</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onloadedmetadata title=handler-MediaController-onloadedmetadata>onloadedmetadata</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onloadeddata title=handler-MediaController-onloadeddata>onloadeddata</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-oncanplay title=handler-MediaController-oncanplay>oncanplay</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-oncanplaythrough title=handler-MediaController-oncanplaythrough>oncanplaythrough</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onplaying title=handler-MediaController-onplaying>onplaying</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onended title=handler-MediaController-onended>onended</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onwaiting title=handler-MediaController-onwaiting>onwaiting</a>;
+
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-ondurationchange title=handler-MediaController-ondurationchange>ondurationchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-ontimeupdate title=handler-MediaController-ontimeupdate>ontimeupdate</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onplay title=handler-MediaController-onplay>onplay</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onpause title=handler-MediaController-onpause>onpause</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onratechange title=handler-MediaController-onratechange>onratechange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediacontroller-onvolumechange title=handler-MediaController-onvolumechange>onvolumechange</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">controller</var> = new <code title=dom-MediaController><a href=#dom-mediacontroller>MediaController</a></code>()</dt>
+
+ <dd>
+
+ <p>Returns a new <code><a href=#mediacontroller>MediaController</a></code> object.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-controller><a href=#dom-media-controller>controller</a></code> [ = <var title="">controller</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current <code><a href=#mediacontroller>MediaController</a></code> for the <a href=#media-element>media element</a>, if any; returns null otherwise.</p>
+
+ <p>Can be set, to set an explicit <code><a href=#mediacontroller>MediaController</a></code>.
+ Doing so removes the <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> attribute, if
+ any.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-buffered><a href=#dom-mediacontroller-buffered>buffered</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#timeranges>TimeRanges</a></code> object that represents the
+ intersection of the time ranges for which the user agent has all
+ relevant media data for all the slaved <a href=#media-element title="media
+ element">media elements</a>.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-seekable><a href=#dom-mediacontroller-seekable>seekable</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#timeranges>TimeRanges</a></code> object that represents the
+ intersection of the time ranges into which the user agent can seek
+ for all the slaved <a href=#media-element title="media element">media
+ elements</a>.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-duration><a href=#dom-mediacontroller-duration>duration</a></code></dt>
+
+ <dd>
+
+ <p>Returns the difference between the earliest playable moment and
+ the latest playable moment (not considering whether the data in
+ question is actually buffered or directly seekable, but not
+ including time in the future for infinite streams). Will return
+ zero if there is no media.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-currentTime><a href=#dom-mediacontroller-currenttime>currentTime</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the <a href=#current-playback-position>current playback position</a>, in seconds,
+ as a position between zero time and the current <code title=dom-MediaController-duration><a href=#dom-mediacontroller-duration>duration</a></code>.</p>
+
+ <p>Can be set, to seek to the given time.<p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-paused><a href=#dom-mediacontroller-paused>paused</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if playback is paused; false otherwise. When this
+ attribute is true, any <a href=#media-element>media element</a> slaved to this
+ controller will be stopped.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-play><a href=#dom-mediacontroller-play>play</a></code>()</dt>
+
+ <dd>
+
+ <p>Sets the <code title=dom-MediaController-paused><a href=#dom-mediacontroller-paused>paused</a></code>
+ attribute to false.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-pause><a href=#dom-mediacontroller-pause>pause</a></code>()</dt>
+
+ <dd>
+
+ <p>Sets the <code title=dom-MediaController-paused><a href=#dom-mediacontroller-paused>paused</a></code>
+ attribute to true.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-played><a href=#dom-mediacontroller-played>played</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#timeranges>TimeRanges</a></code> object that represents the
+ union of the time ranges in all the slaved <a href=#media-element title="media
+ element">media elements</a> that have been played.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-defaultPlaybackRate><a href=#dom-mediacontroller-defaultplaybackrate>defaultPlaybackRate</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the default rate of playback.</p>
+
+ <p>Can be set, to change the default rate of playback.</p>
+
+ <p>This default rate has no direct effect on playback, but if the
+ user switches to a fast-forward mode, when they return to the
+ normal playback mode, it is expected that rate of playback (<code title=dom-MediaController-playbackRate><a href=#dom-mediacontroller-playbackrate>playbackRate</a></code>) will
+ be returned to this default rate.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-playbackRate><a href=#dom-mediacontroller-playbackrate>playbackRate</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current rate of playback.</p>
+
+ <p>Can be set, to change the rate of playback.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-volume><a href=#dom-mediacontroller-volume>volume</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current playback volume multiplier, as a number in
+ the range 0.0 to 1.0, where 0.0 is the quietest and 1.0 the
+ loudest.</p>
+
+ <p>Can be set, to change the volume multiplier.</p>
+
+ <p>Throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> if the new value is not
+ in the range 0.0 .. 1.0.</p>
+
+ </dd>
+
+ <dt><var title="">controller</var> . <code title=dom-MediaController-muted><a href=#dom-mediacontroller-muted>muted</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns true if all audio is muted (regardless of other
+ attributes either on the controller or on any <a href=#media-element title="media
+ element">media elements</a> slaved to this controller), and
+ false otherwise.</p>
+
+ <p>Can be set, to change whether the audio is muted or not.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>A <a href=#media-element>media element</a> can have a <dfn id=current-media-controller>current media
+ controller</dfn>, which is a <code><a href=#mediacontroller>MediaController</a></code> object.
+ When a <a href=#media-element>media element</a> is created without a <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> attribute, it does
+ not have a <a href=#current-media-controller>current media controller</a>. (If it is created
+ <em>with</em> such an attribute, then that attribute initializes the
+ <a href=#current-media-controller>current media controller</a>, as defined below.)</p>
+
+ <p>The <dfn id=slaved-media-elements>slaved media elements</dfn> of a
+ <code><a href=#mediacontroller>MediaController</a></code> are the <a href=#media-element title="media
+ element">media elements</a> whose <a href=#current-media-controller>current media
+ controller</a> is that <code><a href=#mediacontroller>MediaController</a></code>. All the
+ <a href=#slaved-media-elements>slaved media elements</a> of a <code><a href=#mediacontroller>MediaController</a></code>
+ must use the same clock for their definition of their <a href=#media-timeline>media
+ timeline</a>'s unit time.</p>
+
+ <hr><p>The <dfn id=dom-media-controller title=dom-media-controller><code>controller</code></dfn> attribute
+ on a <a href=#media-element>media element</a>, on getting, must return the
+ element's <a href=#current-media-controller>current media controller</a>, if any, or null
+ otherwise. On setting, it must first remove the element's <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> attribute, if any,
+ and then set the <a href=#current-media-controller>current media controller</a> to the given
+ value. If the given value is null, the element no longer has a
+ <a href=#current-media-controller>current media controller</a>; if it is not null, then the
+ user agent must <a href=#bring-the-media-element-up-to-speed-with-its-new-media-controller>bring the media element up to speed with its
+ new media controller</a>.</p>
+
+ <hr><p>The <dfn id=dom-mediacontroller title=dom-MediaController><code>MediaController()</code></dfn>
+ constructor, when invoked, must return a newly created
+ <code><a href=#mediacontroller>MediaController</a></code> object.</p>
+
+ <hr><p>The <dfn id=dom-mediacontroller-seekable title=dom-MediaController-seekable><code>seekable</code></dfn>
+ attribute must return a new static <a href=#normalized-timeranges-object>normalized
+ <code>TimeRanges</code> object</a> that represents the
+ intersection of the ranges of the <a href=#media-resource title="media resource">media
+ resources</a> of the <a href=#slaved-media-elements>slaved media elements</a> that the
+ user agent is able to seek to, at the time the attribute is
+ evaluated.</p>
+
+ <p>The <dfn id=dom-mediacontroller-buffered title=dom-MediaController-buffered><code>buffered</code></dfn>
+ attribute must return a new static <a href=#normalized-timeranges-object>normalized
+ <code>TimeRanges</code> object</a> that represents the
+ intersection of the ranges of the <a href=#media-resource title="media resource">media
+ resources</a> of the <a href=#slaved-media-elements>slaved media elements</a> that the
+ user agent has buffered, at the time the attribute is evaluated.
+ Users agents must accurately determine the ranges available, even
+ for media streams where this can only be determined by tedious
+ inspection.</p>
+
+ <p>The <dfn id=dom-mediacontroller-duration title=dom-MediaController-duration><code>duration</code></dfn>
+ attribute must return the <a href=#media-controller-duration>media controller
+ duration</a>.</p>
+
+ <p>Every 15 to 250ms, or whenever the <code><a href=#mediacontroller>MediaController</a></code>'s
+ <a href=#media-controller-duration>media controller duration</a> changes, whichever happens
+ least often, the user agent must <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-MediaController-durationchange><a href=#event-mediacontroller-durationchange>durationchange</a></code>
+ at the <code><a href=#mediacontroller>MediaController</a></code>. If the
+ <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#media-controller-duration>media controller
+ duration</a> decreases such that the <a href=#media-controller-position>media controller
+ position</a> is greater than the <a href=#media-controller-duration>media controller
+ duration</a>, the user agent must immediately <a href=#seek-the-media-controller>seek the
+ media controller</a> to <a href=#media-controller-duration>media controller
+ duration</a>.</p>
+
+ <p>The <dfn id=dom-mediacontroller-currenttime title=dom-MediaController-currentTime><code>currentTime</code></dfn>
+ attribute must return the <a href=#media-controller-position>media controller position</a> on
+ getting, and on setting must <a href=#seek-the-media-controller>seek the media controller</a>
+ to the new value.</p>
+
+ <p>Every 15 to 250ms, or whenever the <code><a href=#mediacontroller>MediaController</a></code>'s
+ <a href=#media-controller-position>media controller position</a> changes, whichever happens
+ least often, the user agent must <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-MediaController-timeupdate><a href=#event-mediacontroller-timeupdate>timeupdate</a></code> at the
+ <code><a href=#mediacontroller>MediaController</a></code>.</p>
+
+ <hr><p>When a <code><a href=#mediacontroller>MediaController</a></code> is created it is a
+ <dfn id=playing-media-controller>playing media controller</dfn>. It can be changed into a
+ <dfn id=paused-media-controller>paused media controller</dfn> and back either via the user
+ agent's user interface (when the element is <a href=#expose-a-user-interface-to-the-user title="expose a
+ user interface to the user">exposing a user interface to the
+ user</a>) or by script using the APIs defined in this section
+ (see below).</p>
+
+ <p>The <dfn id=dom-mediacontroller-paused title=dom-MediaController-paused><code>paused</code></dfn>
+ attribute must return true if the <code><a href=#mediacontroller>MediaController</a></code>
+ object is a <a href=#paused-media-controller>paused media controller</a>, and false
+ otherwise.</p>
+
+ <p>When the <dfn id=dom-mediacontroller-pause title=dom-MediaController-pause><code>pause()</code></dfn> method
+ is invoked, if the <code><a href=#mediacontroller>MediaController</a></code> is a <a href=#playing-media-controller>playing
+ media controller</a> then the user agent must change the
+ <code><a href=#mediacontroller>MediaController</a></code> into a <a href=#paused-media-controller>paused media
+ controller</a>, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-MediaController-pause><a href=#event-mediacontroller-pause>pause</a></code> at the
+ <code><a href=#mediacontroller>MediaController</a></code>, and then <a href=#report-the-controller-state>report the controller
+ state</a> of the <code><a href=#mediacontroller>MediaController</a></code>.</p>
+
+ <p>When the <dfn id=dom-mediacontroller-play title=dom-MediaController-play><code>play()</code></dfn> method is
+ invoked, if the <code><a href=#mediacontroller>MediaController</a></code> is a <a href=#paused-media-controller>paused media
+ controller</a>, the user agent must change the
+ <code><a href=#mediacontroller>MediaController</a></code> into a <a href=#playing-media-controller>playing media
+ controller</a>, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-MediaController-play><a href=#event-mediacontroller-play>play</a></code> at the
+ <code><a href=#mediacontroller>MediaController</a></code>, and then <a href=#report-the-controller-state>report the controller
+ state</a> of the <code><a href=#mediacontroller>MediaController</a></code>.</p>
+
+ <p>The <dfn id=dom-mediacontroller-played title=dom-MediaController-played><code>played</code></dfn>
+ attribute must return a new static <a href=#normalized-timeranges-object>normalized
+ <code>TimeRanges</code> object</a> that represents the union of
+ the ranges of the <a href=#media-resource title="media resource">media
+ resources</a> of the <a href=#slaved-media-elements>slaved media elements</a> that the
+ user agent has so far rendered, at the time the attribute is
+ evaluated.</p>
+
+ <hr><p>A <code><a href=#mediacontroller>MediaController</a></code> has a <dfn id=media-controller-default-playback-rate>media controller
+ default playback rate</dfn> and a <dfn id=media-controller-playback-rate>media controller playback
+ rate</dfn>, which must both be set to 1.0 when the
+ <code><a href=#mediacontroller>MediaController</a></code> object is created.</p>
+
+ <p>The <dfn id=dom-mediacontroller-defaultplaybackrate title=dom-MediaController-defaultPlaybackRate><code>defaultPlaybackRate</code></dfn>
+ attribute, on getting, must return the
+ <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#media-controller-default-playback-rate>media controller default
+ playback rate</a>, and on setting, must set the
+ <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#media-controller-default-playback-rate>media controller default
+ playback rate</a> to the new value, then <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-MediaController-ratechange><a href=#event-mediacontroller-ratechange>ratechange</a></code> at the
+ <code><a href=#mediacontroller>MediaController</a></code>.</p>
+
+ <p>The <dfn id=dom-mediacontroller-playbackrate title=dom-MediaController-playbackRate><code>playbackRate</code></dfn>
+ attribute, on getting, must return the
+ <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#media-controller-playback-rate>media controller playback
+ rate</a>, and on setting, must set the
+ <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#media-controller-playback-rate>media controller playback
+ rate</a> to the new value, then <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-MediaController-ratechange><a href=#event-mediacontroller-ratechange>ratechange</a></code> at the
+ <code><a href=#mediacontroller>MediaController</a></code>.</p>
+
+ <hr><p>A <code><a href=#mediacontroller>MediaController</a></code> has a <dfn id=media-controller-volume-multiplier>media controller volume
+ multiplier</dfn>, which must be set to 1.0 when the
+ <code><a href=#mediacontroller>MediaController</a></code> object is created, and a <dfn id=media-controller-mute-override>media
+ controller mute override</dfn>, much must initially be false.</p>
+
+ <p>The <dfn id=dom-mediacontroller-volume title=dom-MediaController-volume><code>volume</code></dfn>
+ attribute, on getting, must return the
+ <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#media-controller-volume-multiplier>media controller volume
+ multiplier</a>, and on setting, if the new value is in the range
+ 0.0 to 1.0 inclusive, must set the <code><a href=#mediacontroller>MediaController</a></code>'s
+ <a href=#media-controller-volume-multiplier>media controller volume multiplier</a> to the new value and
+ <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named
+ <code title=event-MediaController-volumechange><a href=#event-mediacontroller-volumechange>volumechange</a></code>
+ at the <code><a href=#mediacontroller>MediaController</a></code>. If the new value is outside the
+ range 0.0 to 1.0 inclusive, then, on setting, an
+ <code><a href=#indexsizeerror>IndexSizeError</a></code> exception must be raised instead.</p>
+
+ <p>The <dfn id=dom-mediacontroller-muted title=dom-MediaController-muted><code>muted</code></dfn>
+ attribute, on getting, must return the
+ <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#media-controller-mute-override>media controller mute
+ override</a>, and on setting, must set the
+ <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#media-controller-mute-override>media controller mute
+ override</a> to the new value and <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-MediaController-volumechange><a href=#event-mediacontroller-volumechange>volumechange</a></code> at
+ the <code><a href=#mediacontroller>MediaController</a></code>.</p>
+
+ <hr><p>The <a href=#media-resource title="media resource">media resources</a> of all
+ the <a href=#slaved-media-elements>slaved media elements</a> of a
+ <code><a href=#mediacontroller>MediaController</a></code> have a defined temporal relationship
+ which provides relative offsets between the zero time of each such
+ <a href=#media-resource>media resource</a>: for <a href=#media-resource title="media resource">media
+ resources</a> with a <a href=#timeline-offset>timeline offset</a>, their relative
+ offsets are the difference between their <a href=#timeline-offset>timeline
+ offset</a>; the zero times of all the <a href=#media-resource title="media
+ resource">media resources</a> without a <a href=#timeline-offset>timeline
+ offset</a> are not offset from each other (i.e. the origins of
+ their timelines are cotemporal); and finally, the zero time of the
+ <a href=#media-resource>media resource</a> with the earliest <a href=#timeline-offset>timeline
+ offset</a> (if any) is not offset from the zero times of the
+ <a href=#media-resource title="media resource">media resources</a> without a
+ <a href=#timeline-offset>timeline offset</a> (i.e. the origins of <a href=#media-resource title="media
+ resource">media resources</a> without a <a href=#timeline-offset>timeline
+ offset</a> are further cotemporal with the earliest defined point
+ on the timeline of the <a href=#media-resource>media resource</a> with the earliest
+ <a href=#timeline-offset>timeline offset</a>).</p>
+
+ <p>The <dfn id=media-resource-end-position>media resource end position</dfn> of a <a href=#media-resource>media
+ resource</a> in a <a href=#media-element>media element</a> is defined as
+ follows: if the <a href=#media-resource>media resource</a> has a finite and known
+ duration, the <a href=#media-resource-end-position>media resource end position</a> is the
+ duration of the <a href=#media-resource>media resource</a>'s timeline (the last
+ defined position on that timeline); otherwise, the <a href=#media-resource>media
+ resource</a>'s duration is infinite or unknown, and the
+ <a href=#media-resource-end-position>media resource end position</a> is the time of the last
+ frame of <a href=#media-data>media data</a> currently available for that
+ <a href=#media-resource>media resource</a>.</p>
+
+ <p>Each <code><a href=#mediacontroller>MediaController</a></code> also has its own defined
+ timeline. On this timeline, all the <a href=#media-resource title="media
+ resource">media resources</a> of all the <a href=#slaved-media-elements>slaved media
+ elements</a> of the <code><a href=#mediacontroller>MediaController</a></code> are temporally
+ aligned according to their defined offsets. The <dfn id=media-controller-duration>media
+ controller duration</dfn> of that <code><a href=#mediacontroller>MediaController</a></code> is
+ the time from the earliest <a href=#earliest-possible-position>earliest possible position</a>,
+ relative to this <code><a href=#mediacontroller>MediaController</a></code> timeline, of any of
+ the <a href=#media-resource title="media resource">media resources</a> of the
+ <a href=#slaved-media-elements>slaved media elements</a> of the
+ <code><a href=#mediacontroller>MediaController</a></code>, to the time of the latest <a href=#media-resource-end-position>media
+ resource end position</a> of the <a href=#media-resource title="media
+ resource">media resources</a> of the <a href=#slaved-media-elements>slaved media
+ elements</a> of the <code><a href=#mediacontroller>MediaController</a></code>, again relative
+ to this <code><a href=#mediacontroller>MediaController</a></code> timeline.</p>
+
+ <p>Each <code><a href=#mediacontroller>MediaController</a></code> has a <dfn id=media-controller-position>media controller
+ position</dfn>. This is the time on the
+ <code><a href=#mediacontroller>MediaController</a></code>'s timeline at which the user agent is
+ trying to play the <a href=#slaved-media-elements>slaved media elements</a>. When a
+ <code><a href=#mediacontroller>MediaController</a></code> is created, its <a href=#media-controller-position>media controller
+ position</a> is initially zero.</p>
+
+ <p>When the user agent is to <dfn id=bring-the-media-element-up-to-speed-with-its-new-media-controller title="bring the media element up
+ to speed with its new media controller">bring a media element up to
+ speed with its new media controller</dfn>, it must <a href=#dom-media-seek title=dom-media-seek>seek</a> that <a href=#media-element>media element</a>
+ to the <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#media-controller-position>media controller
+ position</a> relative to the <a href=#media-element>media element</a>'s
+ timeline.</p>
+
+ <p>When the user agent is to <dfn id=seek-the-media-controller>seek the media controller</dfn> to
+ a particular <var title="">new playback position</var>, it must
+ follow these steps:</p>
+
+ <ol><li><p>If the <var title="">new playback position</var> is less
+ than zero, then set it to zero.</li>
+
+ <li><p>If the <var title="">new playback position</var> is greater
+ than the <a href=#media-controller-duration>media controller duration</a>, then set it to the
+ <a href=#media-controller-duration>media controller duration</a>.</li>
+
+ <li><p>Set the <a href=#media-controller-position>media controller position</a> to the <var title="">new playback position</var>.</li>
+
+ <li><p><a href=#dom-media-seek title=dom-media-seek>Seek</a> each <a href=#slaved-media-elements title="slaved media elements">slaved media element</a> to the
+ <var title="">new playback position</var> relative to the
+ <a href=#media-element>media element</a> timeline.</li> <!-- i.e. "bring the
+ media element up to speed with its new media controller" -->
+
+ </ol><p>A <code><a href=#mediacontroller>MediaController</a></code> is a <dfn id=blocked-media-controller>blocked media
+ controller</dfn> if the <code><a href=#mediacontroller>MediaController</a></code> is a
+ <a href=#paused-media-controller>paused media controller</a>, or if any of its <a href=#slaved-media-elements>slaved
+ media elements</a> are <a href=#blocked-media-element title="blocked media
+ element">blocked media elements</a>, or if any of its
+ <a href=#slaved-media-elements>slaved media elements</a> whose <a href=#autoplaying-flag>autoplaying
+ flag</a> is true still have their <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute set to true, or if
+ all of its <a href=#slaved-media-elements>slaved media elements</a> have their <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute set to true.</p>
+
+ <p>A <a href=#media-element>media element</a> is <dfn id=blocked-on-its-media-controller>blocked on its media
+ controller</dfn> if the <code><a href=#mediacontroller>MediaController</a></code> is a
+ <a href=#blocked-media-controller>blocked media controller</a>, or if its <a href=#media-controller-position>media
+ controller position</a> is either before the <a href=#media-resource>media
+ resource</a>'s <a href=#earliest-possible-position>earliest possible position</a> relative
+ to the <code><a href=#mediacontroller>MediaController</a></code>'s timeline or after the end of
+ the <a href=#media-resource>media resource</a> relative to the
+ <code><a href=#mediacontroller>MediaController</a></code>'s timeline.</p>
+
+ <p id=controller-playback>When a <code><a href=#mediacontroller>MediaController</a></code> is
+ not a <a href=#blocked-media-controller>blocked media controller</a> and it has at least one
+ <a href=#slaved-media-elements title="slaved media elements">slaved media element</a>
+ whose <code><a href=#document>Document</a></code> is a <a href=#fully-active>fully active</a>
+ <code><a href=#document>Document</a></code>, the <code><a href=#mediacontroller>MediaController</a></code>'s
+ <a href=#media-controller-position>media controller position</a> must increase monotonically
+ at <a href=#media-controller-playback-rate>media controller playback rate</a> units of time on the
+ <code><a href=#mediacontroller>MediaController</a></code>'s timeline per unit time of the clock
+ used by its <a href=#slaved-media-elements>slaved media elements</a>.</p>
+
+ <p>When the zero point on the timeline of a
+ <code><a href=#mediacontroller>MediaController</a></code> moves relative to the timelines of the
+ <a href=#slaved-media-elements>slaved media elements</a> by a time difference <var title="">&Delta;T</var>, the <code><a href=#mediacontroller>MediaController</a></code>'s
+ <a href=#media-controller-position>media controller position</a> must be decremented by <var title="">&Delta;T</var>.</p>
+
+ <p class=note>In some situations, e.g. when playing back a live
+ stream without buffering anything, the <a href=#media-controller-position>media controller
+ position</a> would increase motonically as described above at the
+ same rate as the <var title="">&Delta;T</var> described in the
+ previous paragraph decreases it, with the end result that for all
+ intents and purposes, the <a href=#media-controller-position>media controller position</a>
+ would appear to remain constant (probably with the value 0).</p>
+
+ <hr><p>A <code><a href=#mediacontroller>MediaController</a></code> has a <dfn id=most-recently-reported-readiness-state>most recently reported
+ readiness state</dfn>, which is a number from 0 to 4 derived from
+ the numbers used for the <a href=#media-element>media element</a> <code title=attr-media-readyState>readyState</code> attribute, and a
+ <dfn id=most-recently-reported-playback-state>most recently reported playback state</dfn>, which is either
+ <i>playing</i>, <i>waiting</i>, or <i>ended</i>.</p>
+
+ <p>When a <code><a href=#mediacontroller>MediaController</a></code> is created, its <a href=#most-recently-reported-readiness-state>most
+ recently reported readiness state</a> must be set to 0, and its
+ <a href=#most-recently-reported-playback-state>most recently reported playback state</a> must be set to
+ <i>waiting</i>.</p>
+
+ <p>When a user agent is required to <dfn id=report-the-controller-state>report the controller
+ state</dfn> for a <code><a href=#mediacontroller>MediaController</a></code>, the user agent must
+ run the following steps:</p>
+
+ <ol><li>
+
+ <p>If the <code><a href=#mediacontroller>MediaController</a></code> has no <a href=#slaved-media-elements>slaved media
+ elements</a>, let <var title="">new readiness state</var> be
+ 0.</p>
+
+ <p>Otherwise, let it have the lowest value of the <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> IDL attributes of
+ all of its <a href=#slaved-media-elements>slaved media elements</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#most-recently-reported-readiness-state>most recently
+ reported readiness state</a> is not equal to <var title="">new
+ readiness state</var> then <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire
+ a simple event</a> at the <code><a href=#mediacontroller>MediaController</a></code> object,
+ whose name is the event name corresponding to the value of <var title="">new readiness state</var> given in the table below:</p>
+ <!-- hopefully everyone will understand what this means -->
+
+ <table><thead><tr><th>Value of <var title="">new readiness state</var>
+ <th>Event name
+
+ <tbody><tr><td> 0
+ <td> <code title=event-MediaController-emptied><a href=#event-mediacontroller-emptied>emptied</a></code>
+
+ <tr><td> 1
+ <td> <code title=event-MediaController-loadedmetadata><a href=#event-mediacontroller-loadedmetadata>loadedmetadata</a></code>
+
+ <tr><td> 2
+ <td> <code title=event-MediaController-loadeddata><a href=#event-mediacontroller-loadeddata>loadeddata</a></code>
+
+ <tr><td> 3
+ <td> <code title=event-MediaController-canplay><a href=#event-mediacontroller-canplay>canplay</a></code>
+
+ <tr><td> 4
+ <td> <code title=event-MediaController-canplaythrough><a href=#event-mediacontroller-canplaythrough>canplaythrough</a></code>
+
+ </table></li>
+
+ <li><p>Let the <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#most-recently-reported-readiness-state>most recently
+ reported readiness state</a> be <var title="">new readiness
+ state</var>.</li>
+
+ <li>
+
+ <p>Initialize <var title="">new playback state</var> by setting it
+ to the state given for the first matching condition from the
+ following list:</p>
+
+ <dl class=switch><dt>If the <code><a href=#mediacontroller>MediaController</a></code> has no <a href=#slaved-media-elements>slaved
+ media elements</a></dt>
+
+ <dd>Let <var title="">new playback state</var> be <i>waiting</i>.</dd>
+
+ <dt>If all of the <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#slaved-media-elements>slaved
+ media elements</a> have <a href=#ended-playback>ended playback</a> and the
+ <a href=#media-controller-playback-rate>media controller playback rate</a> is positive or
+ zero</dt>
+
+ <dd>Let <var title="">new playback state</var> be <i>ended</i>.</dd>
+
+ <dt>If the <code><a href=#mediacontroller>MediaController</a></code> is a <a href=#blocked-media-controller>blocked media
+ controller</a></dt>
+
+ <dd>Let <var title="">new playback state</var> be <i>waiting</i>.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>Let <var title="">new playback state</var> be <i>playing</i>.</dd>
+
+ </dl></li>
+
+ <li><p>If the <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#most-recently-reported-playback-state>most recently
+ reported playback state</a> is not equal to <var title="">new
+ playback state</var> and the <var title="">new playback state</var>
+ is <i>ended</i>, then <a href=#queue-a-task>queue a task</a> that, if the
+ <code><a href=#mediacontroller>MediaController</a></code> object is a <a href=#playing-media-controller>playing media
+ controller</a>, and all of the <code><a href=#mediacontroller>MediaController</a></code>'s
+ <a href=#slaved-media-elements>slaved media elements</a> have still <a href=#ended-playback>ended
+ playback</a>, and the <a href=#media-controller-playback-rate>media controller playback
+ rate</a> is still positive or zero, changes the
+ <code><a href=#mediacontroller>MediaController</a></code> object to a <a href=#paused-media-controller>paused media
+ controller</a> and then <a href=#fire-a-simple-event title="fire a simple event">fires
+ a simple event</a> named <code title=event-MediaController-pause><a href=#event-mediacontroller-pause>pause</a></code> at the
+ <code><a href=#mediacontroller>MediaController</a></code> object.</li>
+
+ <li><p>If the <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#most-recently-reported-playback-state>most recently
+ reported playback state</a> is not equal to <var title="">new
+ playback state</var> then <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> at the <code><a href=#mediacontroller>MediaController</a></code> object,
+ whose name is <code title=event-MediaController-playing><a href=#event-mediacontroller-playing>playing</a></code> if <var title="">new playback state</var> is <i>playing</i>, <code title=event-MediaController-ended><a href=#event-mediacontroller-ended>ended</a></code> if <var title="">new playback state</var> is <i>ended</i>, and <code title=event-MediaController-waiting><a href=#event-mediacontroller-waiting>waiting</a></code>
+ otherwise.</li>
+
+ <li><p>Let the <code><a href=#mediacontroller>MediaController</a></code>'s <a href=#most-recently-reported-playback-state>most recently
+ reported playback state</a> be <var title="">new playback
+ state</var>.</li>
+
+ </ol><hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ all objects implementing the <code><a href=#mediacontroller>MediaController</a></code>
+ interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-mediacontroller-onemptied title=handler-MediaController-onemptied><code>onemptied</code></dfn> <td> <code title=event-MediaController-emptied><a href=#event-mediacontroller-emptied>emptied</a></code>
+ <tr><td><dfn id=handler-mediacontroller-onloadedmetadata title=handler-MediaController-onloadedmetadata><code>onloadedmetadata</code></dfn> <td> <code title=event-MediaController-loadedmetadata><a href=#event-mediacontroller-loadedmetadata>loadedmetadata</a></code>
+ <tr><td><dfn id=handler-mediacontroller-onloadeddata title=handler-MediaController-onloadeddata><code>onloadeddata</code></dfn> <td> <code title=event-MediaController-loadeddata><a href=#event-mediacontroller-loadeddata>loadeddata</a></code>
+ <tr><td><dfn id=handler-mediacontroller-oncanplay title=handler-MediaController-oncanplay><code>oncanplay</code></dfn> <td> <code title=event-MediaController-canplay><a href=#event-mediacontroller-canplay>canplay</a></code>
+ <tr><td><dfn id=handler-mediacontroller-oncanplaythrough title=handler-MediaController-oncanplaythrough><code>oncanplaythrough</code></dfn> <td> <code title=event-MediaController-canplaythrough><a href=#event-mediacontroller-canplaythrough>canplaythrough</a></code>
+ <tr><td><dfn id=handler-mediacontroller-onplaying title=handler-MediaController-onplaying><code>onplaying</code></dfn> <td> <code title=event-MediaController-playing><a href=#event-mediacontroller-playing>playing</a></code>
+ <tr><td><dfn id=handler-mediacontroller-onended title=handler-MediaController-onended><code>onended</code></dfn> <td> <code title=event-MediaController-ended><a href=#event-mediacontroller-ended>ended</a></code>
+ <tr><td><dfn id=handler-mediacontroller-onwaiting title=handler-MediaController-onwaiting><code>onwaiting</code></dfn> <td> <code title=event-MediaController-waiting><a href=#event-mediacontroller-waiting>waiting</a></code>
+ <tbody><tr><td><dfn id=handler-mediacontroller-ondurationchange title=handler-MediaController-ondurationchange><code>ondurationchange</code></dfn> <td> <code title=event-MediaController-durationchange><a href=#event-mediacontroller-durationchange>durationchange</a></code>
+ <tr><td><dfn id=handler-mediacontroller-ontimeupdate title=handler-MediaController-ontimeupdate><code>ontimeupdate</code></dfn> <td> <code title=event-MediaController-timeupdate><a href=#event-mediacontroller-timeupdate>timeupdate</a></code>
+ <tr><td><dfn id=handler-mediacontroller-onplay title=handler-MediaController-onplay><code>onplay</code></dfn> <td> <code title=event-MediaController-play><a href=#event-mediacontroller-play>play</a></code>
+ <tr><td><dfn id=handler-mediacontroller-onpause title=handler-MediaController-onpause><code>onpause</code></dfn> <td> <code title=event-MediaController-pause><a href=#event-mediacontroller-pause>pause</a></code>
+ <tr><td><dfn id=handler-mediacontroller-onratechange title=handler-MediaController-onratechange><code>onratechange</code></dfn> <td> <code title=event-MediaController-ratechange><a href=#event-mediacontroller-ratechange>ratechange</a></code>
+ <tr><td><dfn id=handler-mediacontroller-onvolumechange title=handler-MediaController-onvolumechange><code>onvolumechange</code></dfn> <td> <code title=event-MediaController-volumechange><a href=#event-mediacontroller-volumechange>volumechange</a></code>
+ </table><hr><p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> listed in this section is the
+ <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
+
+ </div>
+
+
+ <h6 id=assigning-a-media-controller-declaratively><span class=secno>4.8.10.11.3 </span>Assigning a media controller declaratively</h6>
+
+ <p>The <dfn id=attr-media-mediagroup title=attr-media-mediagroup><code>mediagroup</code></dfn> content
+ attribute on <a href=#media-element title="media element">media elements</a> can
+ be used to link multiple <a href=#media-element title="media element">media
+ elements</a> together by implicitly creating a
+ <code><a href=#mediacontroller>MediaController</a></code>.</p>
+
+ <div class=impl>
+
+ <p>When a <a href=#media-element>media element</a> is created with a <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> attribute, and when
+ a <a href=#media-element>media element</a>'s <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> attribute is set,
+ changed, or removed, the user agent must run the following
+ steps:</p>
+
+ <ol><li><p>Let <var title="">m</var> be the <a href=#media-element>media element</a>
+ in question.</li>
+
+ <li><p>Let <var title="">m</var> have no <a href=#current-media-controller>current
+ media controller</a>, if it currently has one.</li>
+
+ <li><p>If <var title="">m</var>'s <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> attribute is being
+ removed, then abort these steps.</li>
+
+ <li>
+
+ <p>If there is another <a href=#media-element>media element</a> whose
+ <code><a href=#document>Document</a></code> is the same as <var title="">m</var>'s
+ <code><a href=#document>Document</a></code> (even if one or both of these elements are
+ not actually <a href=#in-a-document title="in a Document"><em>in</em> the
+ <code>Document</code></a>), and which also has a <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> attribute, and
+ whose <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>
+ attribute has the same value as the new value of <var title="">m</var>'s <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> attribute, then
+ let <var title="">controller</var> be that <a href=#media-element>media
+ element</a>'s <a href=#current-media-controller>current media controller</a>.</p>
+
+ <p>Otherwise, let <var title="">controller</var> be a newly created
+ <code><a href=#mediacontroller>MediaController</a></code>.</p>
+
+ </li>
+
+ <li><p>Let <var title="">m</var>'s <a href=#current-media-controller>current media
+ controller</a> be <var title="">controller</var>.</li>
+
+ <li><p><a href=#bring-the-media-element-up-to-speed-with-its-new-media-controller>Bring the media element up to speed with its new media
+ controller</a>.</li>
+
+ </ol><p>The <dfn id=dom-media-mediagroup title=dom-media-mediaGroup><code>mediaGroup</code></dfn> IDL
+ attribute on <a href=#media-element title="media element">media elements</a> must
+ <a href=#reflect>reflect</a> the <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> content
+ attribute.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Multiple <a href=#media-element title="media element">media elements</a>
+ referencing the same <a href=#media-resource>media resource</a> will share a
+ single network request. This can be used to efficiently play two
+ (video) tracks from the same <a href=#media-resource>media resource</a> in two
+ different places on the screen. Used with the <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code> attribute, these
+ elements can also be kept synchronised.</p>
+
+ <p>In this example, a sign-languge interpreter track from a movie
+ file is overlaid on the primary video track of that same video file
+ using two <code><a href=#the-video-element>video</a></code> elements, some CSS, and an implicit
+ <code><a href=#mediacontroller>MediaController</a></code>:</p>
+
+ <pre>&lt;article&gt;
+ &lt;style scoped&gt;
+ div { margin: 1em auto; position: relative; width: 400px; height: 300px; }
+ video { position; absolute; bottom: 0; right: 0; }
+ video:first-child { width: 100%; height: 100%; }
+ video:last-child { width: 30%; }
+ &lt;/style&gt;
+ &lt;div&gt;
+ &lt;video src="movie.vid#track=Video&amp;amp;track=English" autoplay controls mediagroup=movie&gt;&lt;/video&gt;
+ &lt;video src="movie.vid#track=sign" autoplay mediagroup=movie&gt;&lt;/video&gt;
+ &lt;/div&gt;
+&lt;/article&gt;</pre>
+
+ </div>
+
+
+<!--v2:
+ <h6>Ducking</h6>
+
+ <p><dfn>Ducking</dfn> is the process of reducing the volume of one
+ audio track when another audio track is playing, for example
+ occasionally reducing the volume of a the soundtrack to allow the
+ viewer to hear an intermittent commentary track.</p>
+
+ (add an "autoduck" attribute that reduces the volume of other media
+ elements with the same <span>current media controller</span>
+ whenever this media element is playing audio)
+
+ <video src="movie.vid#track=Video&amp;amp;track=English" autoplay controls mediagroup=main></video>
+ <audio src="movie.vid#track=Descriptions" mediagroup=main autoduck></audio>
+-->
+
+
+
+ <h5 id=timed-text-tracks><span class=secno>4.8.10.12 </span>Timed text tracks</h5>
+
+ <h6 id=text-track-model><span class=secno>4.8.10.12.1 </span>Text track model</h6>
+
+ <p>A <a href=#media-element>media element</a> can have a group of associated <dfn id=text-track title="text track">text tracks</dfn>, known as the <a href=#media-element>media
+ element</a>'s <dfn id=list-of-text-tracks>list of text tracks</dfn>. The <a href=#text-track title="text track">text tracks</a> are sorted as follows:</p>
+
+ <ol class=brief><li>The <a href=#text-track title="text track">text tracks</a> corresponding
+ to <code><a href=#the-track-element>track</a></code> element children of the <a href=#media-element>media
+ element</a>, in <a href=#tree-order>tree order</a>.</li>
+
+ <li>Any <a href=#text-track title="text track">text tracks</a> added using
+ the <code title=dom-media-addTextTrack><a href=#dom-media-addtexttrack>addTextTrack()</a></code> method, in
+ the order they were added, oldest first.</li>
+
+ <li>Any <a href=#media-resource-specific-text-track title="media-resource-specific text
+ track">media-resource-specific text tracks</a> (<a href=#text-track title="text track">text tracks</a> corresponding to data in
+ the <a href=#media-resource>media resource</a>), in the order defined by the
+ <a href=#media-resource>media resource</a>'s format specification.</li>
+
+ </ol><p>A <a href=#text-track>text track</a> consists of:</p>
+
+ <dl><dt><dfn id=text-track-kind title="text track kind">The kind of text track</dfn>
+
+ <dd>
+
+ <p>This decides how the track is handled by the user agent. The
+ kind is represented by a string. The possible strings are:</p>
+
+ <ul class=brief><li><dfn id=dom-texttrack-kind-subtitles title=dom-TextTrack-kind-subtitles><code>subtitles</code></dfn>
+ <li><dfn id=dom-texttrack-kind-captions title=dom-TextTrack-kind-captions><code>captions</code></dfn>
+ <li><dfn id=dom-texttrack-kind-descriptions title=dom-TextTrack-kind-descriptions><code>descriptions</code></dfn>
+ <li><dfn id=dom-texttrack-kind-chapters title=dom-TextTrack-kind-chapters><code>chapters</code></dfn>
+ <li><dfn id=dom-texttrack-kind-metadata title=dom-TextTrack-kind-metadata><code>metadata</code></dfn>
+ </ul><p>The <a href=#text-track-kind title="text track kind">kind of track</a> can
+ change dynamically, in the case of a <a href=#text-track>text track</a>
+ corresponding to a <code><a href=#the-track-element>track</a></code> element.</p>
+
+ </dd>
+
+ <dt><dfn id=text-track-label title="text track label">A label</dfn>
+
+ <dd>
+
+ <p>This is a human-readable string intended to identify the track
+ for the user. In certain cases, the label might be generated
+ automatically.</p>
+
+ <p>The <a href=#text-track-label title="text track label">label of a track</a> can
+ change dynamically, in the case of a <a href=#text-track>text track</a>
+ corresponding to a <code><a href=#the-track-element>track</a></code> element or in the case of an
+ automatically-generated label whose value depends on variable
+ factors such as the user's preferred user interface language.</p>
+
+ </dd>
+
+ <dt><dfn id=text-track-language title="text track language">A language</dfn>
+
+ <dd>
+
+ <p>This is a string (a BCP 47 language tag) representing the
+ language of the text track's cues. <a href=#refsBCP47>[BCP47]</a></p>
+
+ <p>The <a href=#text-track-language title="text track language">language of a text
+ track</a> can change dynamically, in the case of a <a href=#text-track>text
+ track</a> corresponding to a <code><a href=#the-track-element>track</a></code> element.</p>
+
+ </dd>
+
+ <dt><dfn id=text-track-readiness-state title="text track readiness state">A readiness state</dfn>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl><dt><dfn id=text-track-not-loaded title="text track not loaded">Not loaded</dfn>
+
+ <dd>
+
+ <p>Indicates that the text track is known to exist (e.g. it has
+ been declared with a <code><a href=#the-track-element>track</a></code> element), but its cues
+ have not been obtained.</p>
+
+ </dd>
+
+ <dt><dfn id=text-track-loading title="text track loading">Loading</dfn>
+
+ <dd>
+
+ <p>Indicates that the text track is loading and there have been
+ no fatal errors encountered so far. Further cues might still be
+ added to the track.</p>
+
+ </dd>
+
+ <dt><dfn id=text-track-loaded title="text track loaded">Loaded</dfn>
+
+ <dd>
+
+ <p>Indicates that the text track has been loaded with no fatal
+ errors. No new cues will be added to the track except if the
+ <a href=#text-track>text track</a> corresponds to a
+ <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object.</p>
+
+ </dd>
+
+ <dt><dfn id=text-track-failed-to-load title="text track failed to load">Failed to load</dfn>
+
+ <dd>
+
+ <p>Indicates that the text track was enabled, but when the user
+ agent attempted to obtain it, this failed in some way
+ (e.g. <a href=#url>URL</a> could not be <a href=#resolve-a-url title="resolve a
+ url">resolved</a>, network error, unknown text track
+ format). Some or all of the cues are likely missing and will not
+ be obtained.</p>
+
+ </dd>
+
+ </dl><p>The <a href=#text-track-readiness-state title="text track readiness state">readiness
+ state</a> of a <a href=#text-track>text track</a> changes dynamically as
+ the track is obtained.</p>
+
+ </dd>
+
+ <dt><dfn id=text-track-mode title="text track mode">A mode</dfn>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl><dt><dfn id=text-track-disabled title="text track disabled">Disabled</dfn>
+
+ <dd>
+
+ <p>Indicates that the text track is not active. Other than for
+ the purposes of exposing the track in the DOM, the user agent is
+ ignoring the text track. No cues are active, no events are
+ fired, and the user agent will not attempt to obtain the track's
+ cues.</p>
+
+ </dd>
+
+ <dt><dfn id=text-track-hidden title="text track hidden">Hidden</dfn>
+
+ <dd>
+
+ <p>Indicates that the text track is active, but that the user
+ agent is not actively displaying the cues. If no attempt has yet
+ been made to obtain the track's cues, the user agent will
+ perform such an attempt momentarily. The user agent is
+ maintaining a list of which cues are active, and events are
+ being fired accordingly.</p>
+
+ </dd>
+
+ <dt><dfn id=text-track-showing title="text track showing">Showing</dfn>
+ <dt><dfn id=text-track-showing-by-default title="text track showing by default">Showing by default</dfn>
+
+ </dt><dd>
+
+ <p>Indicates that the text track is active. If no attempt has
+ yet been made to obtain the track's cues, the user agent will
+ perform such an attempt momentarily. The user agent is
+ maintaining a list of which cues are active, and events are
+ being fired accordingly. In addition, for text tracks whose
+ <a href=#text-track-kind title="text track kind">kind</a> is <code title=dom-mediatrack-kind-subtitles>subtitles</code> or <code title=dom-mediatrack-kind-captions>captions</code>, the cues
+ are being overlaid on the video as appropriate; for text tracks
+ whose <a href=#text-track-kind title="text track kind">kind</a> is <code title=dom-mediatrack-kind-descriptions>descriptions</code>,
+ the user agent is making the cues available to the user in a
+ non-visual fashion; and for text tracks whose <a href=#text-track-kind title="text
+ track kind">kind</a> is <code title=dom-mediatrack-kind-chapters>chapters</code>, the user
+ agent is making available to the user a mechanism by which the
+ user can navigate to any point in the <a href=#media-resource>media
+ resource</a> by selecting a cue.</p>
+
+ <p>The <a href=#text-track-showing-by-default title="text track showing by default">showing by
+ default</a> state is used in conjunction with the <code title=attr-track-default><a href=#attr-track-default>default</a></code> attribute on
+ <code><a href=#the-track-element>track</a></code> elements to indicate that the text track was
+ enabled due to that attribute. This allows the user agent to
+ override the state if a later track is discovered that is more
+ appropriate per the user's preferences.</p>
+
+ </dd>
+
+ </dl></dd>
+
+ <dt><dfn id=text-track-list-of-cues title="text track list of cues">A list of zero or more cues</dfn>
+
+ <dd>
+
+ <p>A list of <a href=#text-track-cue title="text track cue">text track
+ cues</a>, along with <dfn id=rules-for-updating-the-text-track-rendering>rules for updating the text track
+ rendering</dfn>.
+<!--TTVTT-->
+ For example, for <a href=#webvtt>WebVTT</a>, the <a href=#rules-for-updating-the-display-of-webvtt-text-tracks>rules for updating
+ the display of WebVTT text tracks</a>.
+<!--TTVTT-->
+ </p>
+
+ <p>The <a href=#text-track-list-of-cues title="text track list of cues">list of cues of a
+ text track</a> can change dynamically, either because the
+ <a href=#text-track>text track</a> has <a href=#text-track-not-loaded title="text track not
+ loaded">not yet been loaded</a> or is still <a href=#text-track-loading title="text
+ track loading">loading</a>, or because the <a href=#text-track>text
+ track</a> corresponds to a <code><a href=#mutabletexttrack>MutableTextTrack</a></code>
+ object, whose API allows individual cues can be added or removed
+ dynamically.</p>
+
+ </dd>
+
+ </dl><p>Each <a href=#text-track>text track</a> has a corresponding
+ <code><a href=#texttrack>TextTrack</a></code> object.</p>
+
+ <p>The <a href=#text-track title="text track">text tracks</a> of a
+ <a href=#media-element>media element</a> are <dfn id=the-text-tracks-are-ready title="the text tracks are
+ ready">ready</dfn> if all the <a href=#text-track title="text track">text
+ tracks</a> whose <a href=#text-track-mode title="text track mode">mode</a> was
+ not in the <a href=#text-track-disabled title="text track disabled">disabled</a> state
+ when the element's <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
+ algorithm</a> last started now have a <a href=#text-track-readiness-state>text track readiness
+ state</a> of <a href=#text-track-loaded title="text track loaded">loaded</a> or
+ <a href=#text-track-failed-to-load title="text track failed to load">failed to load</a>.</p>
+
+ <hr><p>A <dfn id=text-track-cue>text track cue</dfn> is the unit of time-sensitive data
+ in a <a href=#text-track>text track</a>, corresponding for instance for
+ subtitles and captions to the text that appears at a particular time
+ and disappears at another time.</p>
+
+ <p>Each <a href=#text-track-cue>text track cue</a> consists of:</p>
+
+ <dl><dt><dfn id=text-track-cue-identifier title="text track cue identifier">An identifier</dfn>
+ <dd>
+ <p>An arbitrary string.</p>
+ </dd>
+
+ <dt><dfn id=text-track-cue-start-time title="text track cue start time">A start time</dfn>
+ <dd>
+ <p>A time, in seconds and fractions of a second, at which the cue
+ becomes relevant.</p>
+ </dd>
+
+ <dt><dfn id=text-track-cue-end-time title="text track cue end time">An end time</dfn>
+ <dd>
+ <p>A time, in seconds and fractions of a second, at which the cue
+ stops being relevant.</p>
+ </dd>
+
+ <dt><dfn id=text-track-cue-pause-on-exit-flag title="text track cue pause-on-exit flag">A pause-on-exit flag</dfn>
+ <dd>
+ <p>A boolean indicating whether playback of the <a href=#media-resource>media
+ resource</a> is to pause when the cue stops being relevant.</p>
+ </dd>
+
+ <dt><dfn id=text-track-cue-writing-direction title="text track cue writing direction">A writing direction</dfn>
+ <dd>
+ <p>A writing direction, either <dfn id=text-track-cue-horizontal-writing-direction title="text track cue
+ horizontal writing direction">horizontal</dfn> (a line extends
+ horizontally and is positioned vertically, with consecutive lines
+ displayed below each other), <dfn id=text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical
+ growing left writing direction">vertical growing left</dfn> (a
+ line extends vertically and is positioned horizontally, with
+ consecutive lines displayed to the left of each other<!-- used
+ for east asian-->), or <dfn id=text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical
+ growing right writing direction">vertical growing right</dfn> (a
+ line extends vertically and is positioned horizontally, with
+ consecutive lines displayed to the right of each other<!-- used for
+ mongolian -->).</p>
+
+<!--TTVTT-->
+ <p>If the <a href=#text-track-cue-writing-direction title="text track cue writing direction">writing
+ direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal
+ writing direction">horizontal</a>, then <a href=#text-track-cue-line-position title="text
+ track cue line position">line position</a> percentages are
+ relative to the height of the video, and <a href=#text-track-cue-text-position title="text track
+ cue text position">text position</a> and <a href=#text-track-cue-size title="text
+ track cue size">size</a> percentages are relative to the width
+ of the video.</p>
+
+ <p>Otherwise, <a href=#text-track-cue-line-position title="text track cue line position">line
+ position</a> percentages are relative to the width of the
+ video, and <a href=#text-track-cue-text-position title="text track cue text position">text
+ position</a> and <a href=#text-track-cue-size title="text track cue size">size</a>
+ percentages are relative to the height of the video.</p>
+<!--TTVTT-->
+
+ </dd>
+
+<!--TTVTT-->
+ <dt><dfn id=text-track-cue-snap-to-lines-flag title="text track cue snap-to-lines flag">A snap-to-lines flag</dfn>
+ <dd>
+ <p>A boolean indicating whether the <a href=#text-track-cue-line-position title="text track cue
+ line position">line's position</a> is a line position
+ (positioned to a multiple of the line dimensions of the first line
+ of the cue), or whether it is a percentage of the dimension of the
+ video.</p>
+ </dd>
+
+ <dt><dfn id=text-track-cue-line-position title="text track cue line position">A line position</dfn>
+ <dd>
+ <p>Either a number giving the position of the lines of the cue, to
+ be interpreted as defined by the <a href=#text-track-cue-writing-direction title="text track cue
+ writing direction">writing direction</a> and <a href=#text-track-cue-snap-to-lines-flag title="text
+ track cue snap-to-lines flag">snap-to-lines flag</a> of the
+ cue, or the special value <dfn id=text-track-cue-automatic-line-position title="text track cue automatic line
+ position">auto</dfn>, which means the position is to depend on
+ the other active tracks.</p>
+ </dd>
+
+ <dt><dfn id=text-track-cue-text-position title="text track cue text position">A text position</dfn>
+ <dd>
+ <p>A number giving the position of the text of the cue within each
+ line, to be interpreted as a percentage of the video, as defined
+ by the <a href=#text-track-cue-writing-direction title="text track cue writing direction">writing
+ direction</a>.</p>
+ </dd>
+<!--TTVTT-->
+
+ <dt><dfn id=text-track-cue-size title="text track cue size">A size</dfn>
+ <dd>
+ <p>A number giving the size of the box within which the text of
+ each line of the cue is to be aligned, to be interpreted as a
+ percentage of the video, as defined by the <a href=#text-track-cue-writing-direction title="text
+ track cue writing direction">writing direction</a>.</p>
+ </dd>
+
+<!--TTVTT-->
+ <dt><dfn id=text-track-cue-alignment title="text track cue alignment">An alignment</dfn>
+ <dd>
+ <p>An alignment for the text of each line of the cue, either <dfn id=text-track-cue-start-alignment title="text track cue start alignment">start alignment</dfn> (the
+ text is aligned towards its start side), <dfn id=text-track-cue-middle-alignment title="text track
+ cue middle alignment">middle alignment</dfn> (the text is aligned
+ centered between its start and end sides), <dfn id=text-track-cue-end-alignment title="text track
+ cue end alignment">end alignment</dfn> (the text is aligned
+ towards its end side). Which sides are the start and end sides
+ depends on the Unicode bidirectional algorithm and the <a href=#text-track-cue-writing-direction title="text track cue writing direction">writing
+ direction</a>. <a href=#refsBIDI>[BIDI]</a></p>
+ </dd>
+<!--TTVTT-->
+
+ <dt><dfn id=text-track-cue-text title="text track cue text">The text of the cue</dfn>
+ <dd>
+ <p>The raw text of the cue, and rules for its interpretation,
+ allowing the text to be rendered and converted to a DOM fragment.</p>
+ </dd>
+
+ </dl><p>A <a href=#text-track-cue>text track cue</a> is immutable.</p>
+
+ <p>Each <a href=#text-track-cue>text track cue</a> has a corresponding
+ <code><a href=#texttrackcue>TextTrackCue</a></code> object, and can be associated with a
+ particular <a href=#text-track>text track</a>. Once a <a href=#text-track-cue>text track
+ cue</a> is associated with a particular <a href=#text-track>text track</a>,
+ the association is permanent.</p>
+
+ <p>In addition, each <a href=#text-track-cue>text track cue</a> has two pieces of
+ dynamic information:</p>
+
+ <dl><dt>The <dfn id=text-track-cue-active-flag title="text track cue active flag">active flag</dfn>
+ <dd>
+
+ <p>This flag must be initially unset. The flag is used to ensure
+ events are fired appropriately when the cue becomes active or
+ inactive, and to make sure the right cues are rendered.</p>
+
+ <p>The user agent must synchronously unset this flag whenever the
+ <a href=#text-track-cue>text track cue</a> is removed from its <a href=#text-track>text
+ track</a>'s <a href=#text-track-list-of-cues>text track list of cues</a>; whenever the
+ <a href=#text-track>text track</a> itself is removed from its <a href=#media-element>media
+ element</a>'s <a href=#list-of-text-tracks>list of text tracks</a> or has its
+ <a href=#text-track-mode>text track mode</a> changed to <a href=#text-track-disabled title="text track
+ disabled">disabled</a>; and whenever the <a href=#media-element>media
+ element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is changed back to
+ <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>. When the
+ flag is unset in this way for one or more cues in <a href=#text-track title="text track">text tracks</a> that were <a href=#text-track-showing title="text track showing">showing</a> or <a href=#text-track-showing-by-default title="text
+ track showing by default">showing by default</a> prior to the
+ relevant incident, the user agent must, after having unset the
+ flag for all the affected cues, apply the <a href=#rules-for-updating-the-text-track-rendering>rules for updating
+ the text track rendering</a> of those <a href=#text-track title="text
+ track">text tracks</a>.
+<!--TTVTT-->
+ For example, for <a href=#text-track title="text track">text tracks</a>
+ based on <a href=#webvtt>WebVTT</a>, the <a href=#rules-for-updating-the-display-of-webvtt-text-tracks>rules for updating the
+ display of WebVTT text tracks</a>.</p>
+<!--TTVTT-->
+ </dd>
+
+ <dt>The <dfn id=text-track-cue-display-state title="text track cue display state">display state</dfn>
+ <dd>
+
+ <p>This is used as part of the rendering model, to keep cues in a
+ consistent position. It must initially be empty. Whenever the
+ <a href=#text-track-cue-active-flag>text track cue active flag</a> is unset, the user agent
+ must empty the <a href=#text-track-cue-display-state>text track cue display state</a>.</p>
+
+ </dd>
+
+ </dl><p>The <a href=#text-track-cue title="text track cue">text track cues</a> of a
+ <a href=#media-element>media element</a>'s <a href=#text-track title="text track">text
+ tracks</a> are ordered relative to each other in the <dfn id=text-track-cue-order>text
+ track cue order</dfn>, which is determined as follows: first group
+ the <a href=#text-track-cue title="text track cue">cues</a> by their <a href=#text-track>text
+ track</a>, with the groups being sorted in the same order as
+ their <a href=#text-track title="text track">text tracks</a> appear in the
+ <a href=#media-element>media element</a>'s <a href=#list-of-text-tracks>list of text tracks</a>;
+ then, within each group, <a href=#text-track-cue title="text track cue">cues</a>
+ must be sorted by their <a href=#text-track-cue-start-time title="text track cue start
+ time">start time</a>, earliest first; then, any <a href=#text-track-cue title="text track cue">cues</a> with the same <a href=#text-track-cue-start-time title="text
+ track cue start time">start time</a> must be sorted by their
+ <a href=#text-track-cue-end-time title="text track cue end time">end time</a>, latest
+ first; and finally, any <a href=#text-track-cue title="text track cue">cues</a>
+ with identical <a href=#text-track-cue-end-time title="text track cue end time">end
+ times</a> must be sorted in the order they were created (so
+ e.g. for cues from a <a href=#webvtt>WebVTT</a> file, that would be the
+ order in which the cues were listed in the file).</p>
+
+
+ <h6 id=sourcing-in-band-text-tracks><span class=secno>4.8.10.12.2 </span>Sourcing in-band text tracks</h6>
+
+ <p>A <dfn id=media-resource-specific-text-track>media-resource-specific text track</dfn> is a <a href=#text-track>text
+ track</a> that corresponds to data found in the <a href=#media-resource>media
+ resource</a>.</p>
+
+
+ <div class=impl>
+
+ <p>Rules for processing and rendering such data are defined by the
+ relevant specifications, e.g. the specification of the video format
+ if the <a href=#media-resource>media resource</a> is a video.</p>
+
+ <p>When a <a href=#media-resource>media resource</a> contains data that the user
+ agent recognises and supports as being equivalent to a <a href=#text-track>text
+ track</a>, the user agent <a href=#found-a-media-resource-specific-timed-track>runs</a> the
+ <dfn id=steps-to-expose-a-media-resource-specific-text-track>steps to expose a media-resource-specific text track</dfn>
+ with the relevant data, as follows.</p>
+
+ <!-- this runs synchronously from a fetch task -->
+
+ <ol><li><p>Associate the relevant data with a new <a href=#text-track>text
+ track</a> and its corresponding new <code><a href=#texttrack>TextTrack</a></code>
+ object. The <a href=#text-track>text track</a> is a
+ <a href=#media-resource-specific-text-track>media-resource-specific text track</a>.</li>
+
+ <li><p>Set the new <a href=#text-track>text track</a>'s <a href=#text-track-kind title="text track
+ kind">kind</a>, <a href=#text-track-label title="text track label">label</a>,
+ and <a href=#text-track-language title="text track language">language</a> based on the
+ semantics of the relevant data, as defined by the relevant
+ specification.</li>
+
+ <li><p>Populate the new <a href=#text-track>text track</a>'s <a href=#text-track-list-of-cues title="text track list of cues">list of cues</a> with the cues
+ parsed so far, folllowing the <a href=#guidelines-for-exposing-cues-in-various-formats-as-text-track-cues>guidelines for exposing
+ cues</a>, and begin updating it dynamically as
+ necessary.</li>
+
+ <li>
+
+ <p>Set the new <a href=#text-track>text track</a>'s <a href=#text-track-readiness-state title="text track
+ readiness state">readiness state</a> to the value that most
+ correctly describes the current state, and begin updating it
+ dynamically as necessary.</p>
+
+ <p class=example>For example, if the relevant data in the
+ <a href=#media-resource>media resource</a> has been fully parsed and completely
+ describes the cues, then the <a href=#text-track>text track</a> would be
+ <a href=#text-track-loaded title="text track loaded">loaded</a>. On the other hand,
+ if the data for the cues is interleaved with the <a href=#media-data>media
+ data</a>, and the <a href=#media-resource>media resource</a> as a whole is
+ still being downloaded, then the <a href=#text-track-loading title="text track
+ loading">loading</a> state might be more accurate.</p>
+
+ </li>
+
+ <li><p>Set the new <a href=#text-track>text track</a>'s <a href=#text-track-mode title="text
+ track mode">mode</a> to the mode consistent with the user's
+ preferences and the requirements of the relevant specification for
+ the data.</li>
+
+ <li><p>Leave the <a href=#text-track-list-of-cues>text track list of cues</a> empty, and
+ associate with it the <a href=#rules-for-updating-the-text-track-rendering>rules for updating the text track
+ rendering</a> appropriate for the format in question.</p>
+
+ <li><p>Add the new <a href=#text-track>text track</a> to the <a href=#media-element>media
+ element</a>'s <a href=#list-of-text-tracks>list of text tracks</a>.</li>
+
+ <li><p>Fire an event with the name <code title=event-addtrack>addtrack</code>, that does not bubble and is
+ not cancelable, and that uses the <code><a href=#trackevent>TrackEvent</a></code>
+ interface, with the <code title=dom-TrackEvent-track><a href=#dom-trackevent-track>track</a></code>
+ attribute initialized to the <a href=#text-track>text track</a>'s
+ <code><a href=#texttrack>TextTrack</a></code> object, at the <a href=#media-element>media element</a>'s
+ <code title=dom-media-textTracks><a href=#dom-media-texttracks>textTracks</a></code> attribute's
+ <code><a href=#texttracklist>TextTrackList</a></code> object.</li>
+
+ </ol><p>When a <a href=#media-element>media element</a> is to <dfn id="forget-the-media-element's-media-resource-specific-text-tracks">forget the media
+ element's media-resource-specific text tracks</dfn>, the user
+ agent must remove from the <a href=#media-element>media element</a>'s <a href=#list-of-text-tracks>list
+ of text tracks</a> all the <a href=#media-resource-specific-text-track title="media-resource-specific
+ text track">media-resource-specific text tracks</a>.</p>
+
+ </div>
+
+
+
+ <div class=impl>
+
+ <h6 id=sourcing-out-of-band-text-tracks><span class=secno>4.8.10.12.3 </span>Sourcing out-of-band text tracks</h6>
+
+ <p>When a <code><a href=#the-track-element>track</a></code> element is created, it must be
+ associated with a new <a href=#text-track>text track</a> (with its value set
+ as defined below) and its corresponding new <code><a href=#texttrack>TextTrack</a></code>
+ object.</p>
+
+ <p>The <a href=#text-track-kind>text track kind</a> is determined from the state of
+ the element's <code title=attr-track-kind><a href=#attr-track-kind>kind</a></code> attribute
+ according to the following table; for a state given in a cell of the
+ first column, the <a href=#text-track-kind title="text track kind">kind</a> is the
+ string given in the second column:</p>
+
+ <table><thead><tr><th>State
+ <th>String
+ <tbody><tr><td><a href=#attr-track-kind-subtitles title=attr-track-kind-subtitles>Subtitles</a>
+ <td><code title=dom-timedtrack-kind-subtitles>subtitles</code>
+ <tr><td><a href=#attr-track-kind-captions title=attr-track-kind-captions>Captions</a>
+ <td><code title=dom-timedtrack-kind-captions>captions</code>
+ <tr><td><a href=#attr-track-kind-descriptions title=attr-track-kind-descriptions>Descriptions</a>
+ <td><code title=dom-timedtrack-kind-descriptions>descriptions</code>
+ <tr><td><a href=#attr-track-kind-chapters title=attr-track-kind-chapters>Chapters</a>
+ <td><code title=dom-timedtrack-kind-chapters>chapters</code>
+ <tr><td><a href=#attr-track-kind-metadata title=attr-track-kind-metadata>Metadata</a>
+ <td><code title=dom-timedtrack-kind-metadata>metadata</code>
+ </table><p>The <a href=#text-track-label>text track label</a> is the element's <a href=#track-label>track
+ label</a>.</p>
+
+ <p>The <a href=#text-track-language>text track language</a> is the element's
+ <a href=#track-language>track language</a>, if any, or the empty string
+ otherwise.</p>
+
+ <p>As the <code title=attr-track-kind><a href=#attr-track-kind>kind</a></code>, <code title=attr-track-label><a href=#attr-track-label>label</a></code>, and <code title=attr-track-srclang><a href=#attr-track-srclang>srclang</a></code> attributes are set,
+ changed, or removed, the <a href=#text-track>text track</a> must update
+ accordingly, as per the definitions above.</p>
+
+ <p class=note>Changes to the <a href=#track-url>track URL</a> are handled in
+ the algorithm below.</p>
+
+ <p>The <a href=#text-track-list-of-cues>text track list of cues</a> is initially empty. It
+ is dynamically modified when the referenced file is parsed.
+ Associated with the list are the <a href=#rules-for-updating-the-text-track-rendering>rules for updating the text
+ track rendering</a> appropriate for the format in question; for
+ <a href=#webvtt>WebVTT</a>, this is the <a href=#rules-for-updating-the-display-of-webvtt-text-tracks>rules for updating the
+ display of WebVTT text tracks</a>.</p>
+
+ <p>When a <code><a href=#the-track-element>track</a></code> element's parent element changes and
+ the new parent is a <a href=#media-element>media element</a>, then the user agent
+ must add the <code><a href=#the-track-element>track</a></code> element's corresponding <a href=#text-track>text
+ track</a> to the <a href=#media-element>media element</a>'s <a href=#list-of-text-tracks>list of text
+ tracks</a>, and then <a href=#queue-a-task>queue a task</a> to fire an event
+ with the name <code title=event-addtrack>addtrack</code>, that
+ does not bubble and is not cancelable, and that uses the
+ <code><a href=#trackevent>TrackEvent</a></code> interface, with the <code title=dom-TrackEvent-track><a href=#dom-trackevent-track>track</a></code> attribute initialized to
+ the <a href=#text-track>text track</a>'s <code><a href=#texttrack>TextTrack</a></code> object, at the
+ <a href=#media-element>media element</a>'s <code title=dom-media-textTracks><a href=#dom-media-texttracks>textTracks</a></code> attribute's
+ <code><a href=#texttracklist>TextTrackList</a></code> object.</p>
+
+ <p>When a <code><a href=#the-track-element>track</a></code> element's parent element changes and
+ the old parent was a <a href=#media-element>media element</a>, then the user agent
+ must remove the <code><a href=#the-track-element>track</a></code> element's corresponding
+ <a href=#text-track>text track</a> from the <a href=#media-element>media element</a>'s
+ <a href=#list-of-text-tracks>list of text tracks</a>.</p> <!-- removetrack -->
+
+ <p>When a <a href=#text-track>text track</a> corresponding to a
+ <code><a href=#the-track-element>track</a></code> element is added to a <a href=#media-element>media
+ element</a>'s <a href=#list-of-text-tracks>list of text tracks</a>, the user agent
+ must set the <a href=#text-track-mode>text track mode</a> appropriately, as
+ determined by the following conditions:</p>
+
+ <dl class=switch><dt>If the <a href=#text-track-kind>text track kind</a> is <code title=dom-TextTrack-kind-subtitles><a href=#dom-texttrack-kind-subtitles>subtitles</a></code> or <code title=dom-TextTrack-kind-captions><a href=#dom-texttrack-kind-captions>captions</a></code> and the user
+ has indicated an interest in having a track with this <a href=#text-track-kind>text
+ track kind</a>, <a href=#text-track-language>text track language</a>, and
+ <a href=#text-track-label>text track label</a> enabled, and there is no other
+ <a href=#text-track>text track</a> in the <a href=#media-element>media element</a>'s
+ <a href=#list-of-text-tracks>list of text tracks</a> with a <a href=#text-track-kind>text track
+ kind</a> of either <code title=dom-TextTrack-kind-subtitles><a href=#dom-texttrack-kind-subtitles>subtitles</a></code> or <code title=dom-TextTrack-kind-captions><a href=#dom-texttrack-kind-captions>captions</a></code> whose
+ <a href=#text-track-mode>text track mode</a> is <a href=#text-track-showing title="text track
+ showing">showing</a></dt>
+
+ <dt>If the <a href=#text-track-kind>text track kind</a> is <code title=dom-TextTrack-kind-descriptions><a href=#dom-texttrack-kind-descriptions>descriptions</a></code> and
+ the user has indicated an interest in having text descriptions with
+ this <a href=#text-track-language>text track language</a> and <a href=#text-track-label>text track
+ label</a> enabled, and there is no other <a href=#text-track>text
+ track</a> in the <a href=#media-element>media element</a>'s <a href=#list-of-text-tracks>list of
+ text tracks</a> with a <a href=#text-track-kind>text track kind</a> of <code title=dom-TextTrack-kind-descriptions><a href=#dom-texttrack-kind-descriptions>descriptions</a></code> whose
+ <a href=#text-track-mode>text track mode</a> is <a href=#text-track-showing title="text track
+ showing">showing</a></dt>
+
+ <dd>
+ <p>Let the <a href=#text-track-mode>text track mode</a> be <a href=#text-track-showing title="text
+ track showing">showing</a>.</p>
+
+ <p>If there is a <a href=#text-track>text track</a> in the <a href=#media-element>media
+ element</a>'s <a href=#list-of-text-tracks>list of text tracks</a> whose
+ <a href=#text-track-mode>text track mode</a> is <a href=#text-track-showing-by-default title="text track showing
+ by default">showing by default</a>, the user agent must
+ furthermore change <em>that</em> <a href=#text-track>text track</a>'s
+ <a href=#text-track-mode>text track mode</a> to <a href=#text-track-hidden title="text track
+ hidden">hidden</a>.</p> <!-- so that we still get events and
+ stuff: we can expect authors to forget that default doesn't mean
+ that it'll always be turned on, and that they'll still rely on
+ events firing even if it doesn't show -->
+
+ </dd>
+
+ <dt>If the <a href=#text-track-kind>text track kind</a> is <code title=dom-TextTrack-kind-chapters><a href=#dom-texttrack-kind-chapters>chapters</a></code> and the
+ <a href=#text-track-language>text track language</a> is one that the user agent has
+ reason to believe is appropriate for the user, and there is no
+ other <a href=#text-track>text track</a> in the <a href=#media-element>media element</a>'s
+ <a href=#list-of-text-tracks>list of text tracks</a> with a <a href=#text-track-kind>text track
+ kind</a> of <code title=dom-TextTrack-kind-chapters><a href=#dom-texttrack-kind-chapters>chapters</a></code> whose
+ <a href=#text-track-mode>text track mode</a> is <a href=#text-track-showing title="text track
+ showing">showing</a></dt>
+
+ <dd>
+ <p>Let the <a href=#text-track-mode>text track mode</a> be <a href=#text-track-showing title="text
+ track showing">showing</a>.</p>
+ </dd>
+
+ <dt>If the <code><a href=#the-track-element>track</a></code> element has a <code title=attr-track-default><a href=#attr-track-default>default</a></code> attribute specified, and
+ there is no other <a href=#text-track>text track</a> in the <a href=#media-element>media
+ element</a>'s <a href=#list-of-text-tracks>list of text tracks</a> whose
+ <a href=#text-track-mode>text track mode</a> is <a href=#text-track-showing title="text track
+ showing">showing</a> or <a href=#text-track-showing-by-default title="text track
+ showing by default">showing by default</a></dt>
+
+ <dd>
+ <p>Let the <a href=#text-track-mode>text track mode</a> be <a href=#text-track-showing-by-default title="text
+ track showing by default">showing by default</a>.</p>
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+ <p>Let the <a href=#text-track-mode>text track mode</a> be <a href=#text-track-disabled title="text
+ track disabled">disabled</a>.</p>
+ </dd>
+
+ </dl><p>When a <a href=#text-track>text track</a> corresponding to a
+ <code><a href=#the-track-element>track</a></code> element is created with <a href=#text-track-mode>text track
+ mode</a> set to <a href=#text-track-hidden title="text track hidden">hidden</a>,
+ <a href=#text-track-showing title="text track showing">showing</a>, or <a href=#text-track-showing-by-default title="text track showing by default">showing by default</a>,
+ and when a <a href=#text-track>text track</a> corresponding to a
+ <code><a href=#the-track-element>track</a></code> element is created with <a href=#text-track-mode>text track
+ mode</a> set to <a href=#text-track-disabled title="text track
+ disabled">disabled</a> and subsequently changes its <a href=#text-track-mode>text
+ track mode</a> to <a href=#text-track-hidden title="text track hidden">hidden</a>,
+ <a href=#text-track-showing title="text track showing">showing</a>, or <a href=#text-track-showing-by-default title="text track showing by default">showing by default</a> for
+ the first time, the user agent must immediately and synchronously
+ run the following algorithm. This algorithm interacts closely with
+ the <a href=#event-loop>event loop</a> mechanism; in particular, it has a
+ <a href=#synchronous-section>synchronous section</a> (which is triggered as part of the
+ <a href=#event-loop>event loop</a> algorithm). The step in that section is
+ marked with &#8987;.</p>
+
+ <ol><li><p>Set the <a href=#text-track-readiness-state>text track readiness state</a> to <a href=#text-track-loading title="text track loading">loading</a>.</li>
+
+ <li><p>Let <var title="">URL</var> be the <a href=#track-url>track URL</a> of
+ the <code><a href=#the-track-element>track</a></code> element.</li>
+
+ <li><p>Asynchronously run the remaining steps, while continuing
+ with whatever task was responsible for creating the <a href=#text-track>text
+ track</a> or changing the <a href=#text-track-mode>text track
+ mode</a>.</li>
+
+ <li>
+
+ <p><i>Download</i>: At this point, the text track is downloaded.</p>
+
+ <p>If <var title="">URL</var> is not the empty string, perform a
+ <a href=#potentially-cors-enabled-fetch>potentially CORS-enabled fetch</a> of <var title="">URL</var>, with the <i>mode</i> being the state of the
+ <a href=#media-element>media element</a>'s <code title=attr-media-crossorigin><a href=#attr-media-crossorigin>crossorigin</a></code> content
+ attribute, the <i><a href=#origin>origin</a></i> being the <a href=#origin>origin</a> of the
+ <a href=#media-element>media element</a>'s <code><a href=#document>Document</a></code>, and the
+ <i>default origin behaviour</i> set to <i>fail</i>.</p>
+
+ <p>The resource obtained in this fashion, if any, contains the
+ text track data. If any data is obtained, it is by definition
+ <a href=#cors-same-origin>CORS-same-origin</a> (cross-origin resources that are not
+ suitably CORS-enabled do not get this far).</p>
+
+ <p>The <a href=#concept-task title=concept-task>tasks</a> <a href=#queue-a-task title="queue
+ a task">queued</a> by the <a href=#fetch title=fetch>fetching
+ algorithm</a> on the <a href=#networking-task-source>networking task source</a> to
+ process the data as it is being fetched must examine the
+ resource's <a href=#content-type title=Content-Type>Content Type
+ metadata</a>, once it is available, if it ever is. If no <a href=#content-type title=Content-Type>Content Type metadata</a> is ever
+ available, or if the type is not recognised as a text track
+ format, then the resource's format must be assumed to be
+ unsupported (this causes the load to fail, as described below). If
+ a type is obtained, and represents a supported text track format,
+ then the resource's data must be passed to the appropriate parser
+<!--TTVTT-->
+ (e.g. the <a href=#webvtt-parser>WebVTT parser</a> if the <a href=#content-type title=Content-Type>Content Type metadata</a> is
+ <code><a href=#text/vtt>text/vtt</a></code>)
+<!--TTVTT-->
+ as it is received, with the <a href=#text-track-list-of-cues>text
+ track list of cues</a> being used for that parser's output.</p>
+
+ <p>If the <a href=#fetch title=fetch>fetching algorithm</a> fails for
+ any reason (network error, the server returns an error code, a
+ cross-origin check fails, etc), if <var title="">URL</var> is the
+ empty string, or if the fetched resource is not in a supported
+ format, then <a href=#queue-a-task>queue a task</a> to first change the
+ <a href=#text-track-readiness-state>text track readiness state</a> to <a href=#text-track-failed-to-load title="text track
+ failed to load">failed to load</a> and then <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-error>error</code> at the
+ <code><a href=#the-track-element>track</a></code> element; and then, once that <a href=#concept-task title=concept-task>task</a> is <a href=#queue-a-task title="queue a
+ task">queued</a>, move on to the step below labeled
+ <i>monitoring</i>.</p>
+
+ <p>If the <a href=#fetch title=fetch>fetching algorithm</a> does not
+ fail, then, when it completes, <a href=#queue-a-task>queue a task</a> to run
+ the following steps:</p>
+
+ <ol><li><p>Change the <a href=#text-track-readiness-state>text track readiness state</a> to
+ <a href=#text-track-loaded title="text track loaded">loaded</a>.</li>
+
+ <li>
+
+ <p>If the file was successfully processed, <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-load>load</code> at the
+ <code><a href=#the-track-element>track</a></code> element.</p>
+
+ <p>If the file was not successfully processed, e.g. the format
+ in question is an XML format and the file contained a
+ well-formedness error that the XML specification requires be
+ detected and reported to the application, then <a href=#fire-a-simple-event>fire a
+ simple event</a> named <code title=event-error>error</code>
+ at the <code><a href=#the-track-element>track</a></code> element.</p>
+
+ <p class=note>The WebVTT format does not report errors in this
+ fashion.</p>
+
+ </li>
+
+ </ol><p>Once that <a href=#concept-task title=concept-task>task</a> is <a href=#queue-a-task title="queue a task">queued</a>, move on to the step below
+ labeled <i>monitoring</i>.</p>
+
+ <p>If, while the <a href=#fetch title=fetch>fetching algorithm</a> is
+ active, either:</p>
+
+ <ul><li>the <a href=#track-url>track URL</a> changes so that it is no longer
+ equal to <var title="">URL</var>, while the <a href=#text-track-mode>text track
+ mode</a> is set to <a href=#text-track-hidden title="text track
+ hidden">hidden</a>, <a href=#text-track-showing title="text track
+ showing">showing</a>, or <a href=#text-track-showing-by-default title="text track showing by
+ default">showing by default</a>; or</li>
+
+ <li>the <a href=#text-track-mode>text track mode</a> changes to <a href=#text-track-hidden title="text track hidden">hidden</a>, <a href=#text-track-showing title="text
+ track showing">showing</a>, or <a href=#text-track-showing-by-default title="text track
+ showing by default">showing by default</a>, while the
+ <a href=#track-url>track URL</a> is not equal to <var title="">URL</var></li>
+
+ </ul><p>...then the user agent must run the following steps:</p>
+
+ <ol><li><p>Abort the <a href=#fetch title=fetch>fetching
+ algorithm</a>.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-abort>abort</code> at
+ the <code><a href=#the-track-element>track</a></code> element.</li>
+
+ <li><p>Let <var title="">URL</var> be the new <a href=#track-url>track
+ URL</a>.</li>
+
+ <li><p>Jump back to the top of the step labeled
+ <i>download</i>.</li>
+
+ </ol><p>Until one of the above circumstances occurs, the user agent
+ must remain on this step.</p>
+
+ </li>
+
+ <li><p><i>Monitoring</i>: Wait until the <a href=#track-url>track URL</a> is
+ no longer equal to <var title="">URL</var>, at the same time as the
+ <a href=#text-track-mode>text track mode</a> is set to <a href=#text-track-hidden title="text track
+ hidden">hidden</a>, <a href=#text-track-showing title="text track
+ showing">showing</a>, or <a href=#text-track-showing-by-default title="text track showing by
+ default">showing by default</a>.</li>
+
+ <li><p>Wait until the <a href=#text-track-readiness-state>text track readiness state</a> is
+ no longer set to <a href=#text-track-loading title="text track
+ loading">loading</a>.</li>
+
+ <li><p><a href=#await-a-stable-state>Await a stable state</a>. The <a href=#synchronous-section>synchronous
+ section</a> consists of the following step. (The step in the
+ <a href=#synchronous-section>synchronous section</a> is marked with &#8987;.)</li>
+
+ <li><p>&#8987; Set the <a href=#text-track-readiness-state>text track readiness state</a> to
+ <a href=#text-track-loading title="text track loading">loading</a>.</li>
+
+ <!-- if you add more, change the grammar of the sentences above to
+ be plural with respect to the number of synchronous steps (both in
+ the step above and in the intro to the whole algorithm) -->
+
+ <li><p>End the <a href=#synchronous-section>synchronous section</a>, continuing the
+ remaining steps asynchronously.</li>
+
+ <li><p>Jump to the step labeled <i>download</i>.</li>
+
+ </ol></div>
+
+
+<!--TTVTT-->
+<div data-component="other Hixie drafts (editor: Ian Hickson)">
+ <div class=impl>
+
+ <h6 id=guidelines-for-exposing-cues-in-various-formats-as-text-track-cues><span class=secno>4.8.10.12.4 </span><dfn>Guidelines for exposing cues</dfn> in various formats as
+ <a href=#text-track-cue title="text track cue">text track cues</a></h6>
+
+ <p>How a specific format's text track cues are to be interpreted
+ for the purposes of processing by an HTML user agent is defined by
+ that format. In the absence of such a specification, this section
+ provides some constraints within which implementations can attempt
+ to consistently expose such formats.</p>
+
+ <p>To support the <a href=#text-track>text track</a> model of HTML, each unit
+ of timed data is converted to a <a href=#text-track-cue>text track cue</a>. Where
+ the mapping of the format's features to the aspects of a <a href=#text-track-cue>text
+ track cue</a> as defined in this specification are not defined,
+ implementations must ensure that the mapping is consistent with the
+ definitions of the aspects of a <a href=#text-track-cue>text track cue</a> as
+ defined above, as well as with the following constraints:</p>
+
+ <dl><dt>The <a href=#text-track-cue-identifier>text track cue identifier</a>
+ <dd>
+ <p>Should be set to the empty string if the format has no
+ obvious analogue to a per-cue identifier.</p>
+ </dd>
+
+ <dt>The <a href=#text-track-cue-pause-on-exit-flag>text track cue pause-on-exit flag</a>
+ <dd>
+ <p>Should be set to false.</p>
+ </dd>
+
+ <dt>The <a href=#text-track-cue-writing-direction>text track cue writing direction</a>
+ <dd>
+ <p>Should be set to <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing
+ direction">horizontal</a> if the concept of writing direction
+ doesn't really apply (e.g. the cue consists of a bitmap
+ image).</p>
+ </dd>
+
+ <dt>The <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a>
+ <dd>
+ <p>Should be set to false unless the format uses a rendering and
+ positioning model for cues that is largely consistent with the
+ <a href=#webvtt-cue-text-rendering-rules>WebVTT cue text rendering rules</a>.</p>
+ </dd>
+
+ <dt>The <a href=#text-track-cue-line-position>text track cue line position</a>
+ <dt>The <a href=#text-track-cue-text-position>text track cue text position</a>
+ <dt>The <a href=#text-track-cue-size>text track cue size</a>
+ <dt>The <a href=#text-track-cue-alignment>text track cue alignment</a>
+ </dt></dt></dt><dd>
+ <p>If the format uses a rendering and positioning model for
+ cues that can be largely simulated using the <a href=#webvtt-cue-text-rendering-rules>WebVTT cue text
+ rendering rules</a>, then these should be set to the values
+ that would give the same effect for <a href=#webvtt>WebVTT</a>
+ cues. Otherwise, they should be set to zero.</p>
+ </dd>
+
+ </dl></div>
+</div>
+<!--TTVTT-->
+
+
+ <h6 id=text-track-api><span class=secno>4.8.10.12.5 </span>Text track API</h6>
+
+ <pre class=idl>interface <dfn id=texttracklist>TextTrackList</dfn> {
+ readonly attribute unsigned long <a href=#dom-texttracklist-length title=dom-TextTrackList-length>length</a>;
+ getter <a href=#texttrack>TextTrack</a> (unsigned long index);
+
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttracklist-onaddtrack title=handler-TextTrackList-onaddtrack>onaddtrack</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-textTracks><a href=#dom-media-texttracks>textTracks</a></code> . <code title="">length</code></dt>
+ <dd>
+ <p>Returns the number of <a href=#text-track title="text track">text tracks</a> associated with the <a href=#media-element>media element</a> (e.g. from <code><a href=#the-track-element>track</a></code> elements). This is the number of <a href=#text-track title="text track">text tracks</a> in the <a href=#media-element>media element</a>'s <a href=#list-of-text-tracks>list of text tracks</a>.</p>
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-textTracks><a href=#dom-media-texttracks>textTracks[</a></code> <var title="">n</var> <code title="">]</code></dt>
+ <dd>
+ <p>Returns the <code><a href=#texttrack>TextTrack</a></code> object representing the <var title="">n</var>th <a href=#text-track>text track</a> in the <a href=#media-element>media element</a>'s <a href=#list-of-text-tracks>list of text tracks</a>.</p>
+ </dd>
+
+ <dt><var title="">track</var> . <code title=dom-track-track><a href=#dom-track-track>track</a></code></dt>
+ <dd>
+ <p>Returns the <code><a href=#texttrack>TextTrack</a></code> object representing the <code><a href=#the-track-element>track</a></code> element's <a href=#text-track>text track</a>.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>A <code><a href=#texttracklist>TextTrackList</a></code> object represents a dynamically
+ updating list of <a href=#text-track title="text track">text tracks</a> in a
+ given order.</p>
+
+ <p>The <dfn id=dom-media-texttracks title=dom-media-textTracks><code>textTracks</code></dfn> attribute
+ of <a href=#media-element title="media element">media elements</a> must return a
+ <code><a href=#texttracklist>TextTrackList</a></code> object representing the
+ <code><a href=#texttrack>TextTrack</a></code> objects of the <a href=#text-track title="text track">text
+ tracks</a> in the <a href=#media-element>media element</a>'s <a href=#list-of-text-tracks>list of text
+ tracks</a>, in the same order as in the <a href=#list-of-text-tracks>list of text
+ tracks</a>. The same object must be returned each time the
+ attribute is accessed. <a href=#refsWEBIDL>[WEBIDL]</a></p>
+
+ <p>The <dfn id=dom-texttracklist-length title=dom-TextTrackList-length><code>length</code></dfn> attribute
+ of a <code><a href=#texttracklist>TextTrackList</a></code> object must return the number of
+ <a href=#text-track title="text track">text tracks</a> in the list represented
+ by the <code><a href=#texttracklist>TextTrackList</a></code> object.</p>
+
+ <p>The <a href=#supported-property-indices>supported property indices</a> of a
+ <code><a href=#texttracklist>TextTrackList</a></code> object at any instant are the numbers
+ from zero to the number of <a href=#text-track title="text track">text
+ tracks</a> in the list represented by the
+ <code><a href=#texttracklist>TextTrackList</a></code> object minus one, if any. If there are no
+ <a href=#text-track title="text track">text tracks</a> in the list, there are
+ no <a href=#supported-property-indices>supported property indices</a>.</p>
+
+ <p>To <a href=#determine-the-value-of-an-indexed-property>determine the value of an indexed property</a> of a
+ <code><a href=#texttracklist>TextTrackList</a></code> object for a given index <var title="">index</var>, the user agent must return the <var title="">index</var>th <a href=#text-track>text track</a> in the list
+ represented by the <code><a href=#texttracklist>TextTrackList</a></code> object.</p>
+
+ </div>
+
+ <hr><pre class=idl>interface <dfn id=texttrack>TextTrack</dfn> : <a href=#eventtarget>EventTarget</a> {
+ readonly attribute DOMString <a href=#dom-texttrack-kind title=dom-TextTrack-kind>kind</a>;
+ readonly attribute DOMString <a href=#dom-texttrack-label title=dom-TextTrack-label>label</a>;
+ readonly attribute DOMString <a href=#dom-texttrack-language title=dom-TextTrack-language>language</a>;
+
+ const unsigned short <a href=#dom-texttrack-none title=dom-TextTrack-NONE>NONE</a> = 0;
+ const unsigned short <a href=#dom-texttrack-loading title=dom-TextTrack-LOADING>LOADING</a> = 1;
+ const unsigned short <a href=#dom-texttrack-loaded title=dom-TextTrack-LOADED>LOADED</a> = 2;
+ const unsigned short <a href=#dom-texttrack-error title=dom-TextTrack-ERROR>ERROR</a> = 3;
+ readonly attribute unsigned short <a href=#dom-texttrack-readystate title=dom-TextTrack-readyState>readyState</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrack-onload title=handler-TextTrack-onload>onload</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrack-onerror title=handler-TextTrack-onerror>onerror</a>;
+
+ const unsigned short <a href=#dom-texttrack-disabled title=dom-TextTrack-DISABLED>DISABLED</a> = 0;
+ const unsigned short <a href=#dom-texttrack-hidden title=dom-TextTrack-HIDDEN>HIDDEN</a> = 1;
+ const unsigned short <a href=#dom-texttrack-showing title=dom-TextTrack-SHOWING>SHOWING</a> = 2;
+ attribute unsigned short <a href=#dom-texttrack-mode title=dom-TextTrack-mode>mode</a>;
+
+ readonly attribute <a href=#texttrackcuelist>TextTrackCueList</a>? <a href=#dom-texttrack-cues title=dom-TextTrack-cues>cues</a>;
+ readonly attribute <a href=#texttrackcuelist>TextTrackCueList</a>? <a href=#dom-texttrack-activecues title=dom-TextTrack-activeCues>activeCues</a>;
+
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrack-oncuechange title=handler-TextTrack-oncuechange>oncuechange</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">textTrack</var> . <code title=dom-TextTrack-kind><a href=#dom-texttrack-kind>kind</a></code></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-kind>text track kind</a> string.</p>
+ </dd>
+
+ <dt><var title="">textTrack</var> . <code title=dom-TextTrack-label><a href=#dom-texttrack-label>label</a></code></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-label>text track label</a>.</p>
+ </dd>
+
+ <dt><var title="">textTrack</var> . <code title=dom-TextTrack-language><a href=#dom-texttrack-language>language</a></code></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-language>text track language</a> string.</p>
+ </dd>
+
+ <dt><var title="">textTrack</var> . <code title=dom-TextTrack-readyState><a href=#dom-texttrack-readystate>readyState</a></code></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-readiness-state>text track readiness state</a>,
+ represented by a number from the following list:</p>
+ <dl><dt><code><a href=#texttrack>TextTrack</a></code> . <code title=dom-TextTrack-NONE><a href=#dom-texttrack-none>NONE</a></code> (0)</dt>
+ <dd>
+ <p>The <a href=#text-track-not-loaded>text track not loaded</a> state.</p>
+ </dd>
+ <dt><code><a href=#texttrack>TextTrack</a></code> . <code title=dom-TextTrack-LOADING><a href=#dom-texttrack-loading>LOADING</a></code> (1)</dt>
+ <dd>
+ <p>The <a href=#text-track-loading>text track loading</a> state.</p>
+ </dd>
+ <dt><code><a href=#texttrack>TextTrack</a></code> . <code title=dom-TextTrack-LOADED><a href=#dom-texttrack-loaded>LOADED</a></code> (2)</dt>
+ <dd>
+ <p>The <a href=#text-track-loaded>text track loaded</a> state.</p>
+ </dd>
+ <dt><code><a href=#texttrack>TextTrack</a></code> . <code title=dom-TextTrack-ERROR><a href=#dom-texttrack-error>ERROR</a></code> (3)</dt>
+ <dd>
+ <p>The <a href=#text-track-failed-to-load>text track failed to load</a> state.</p>
+ </dd>
+ </dl></dd>
+
+ <dt><var title="">textTrack</var> . <code title=dom-TextTrack-mode><a href=#dom-texttrack-mode>mode</a></code></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-mode>text track mode</a>, represented by a
+ number from the following list:</p>
+ <dl><dt><code><a href=#texttrack>TextTrack</a></code> . <code title=dom-TextTrack-DISABLED><a href=#dom-texttrack-disabled>DISABLED</a></code> (0)</dt>
+ <dd>
+ <p>The <a href=#text-track-disabled>text track disabled</a> mode.</p>
+ </dd>
+ <dt><code><a href=#texttrack>TextTrack</a></code> . <code title=dom-TextTrack-HIDDEN><a href=#dom-texttrack-hidden>HIDDEN</a></code> (1)</dt>
+ <dd>
+ <p>The <a href=#text-track-hidden>text track hidden</a> mode.</p>
+ </dd>
+ <dt><code><a href=#texttrack>TextTrack</a></code> . <code title=dom-TextTrack-SHOWING><a href=#dom-texttrack-showing>SHOWING</a></code> (2)</dt>
+ <dd>
+ <p>The <a href=#text-track-showing>text track showing</a> and <a href=#text-track-showing-by-default title="text track showing by default">showing by default</a> modes.</p>
+ </dd>
+ </dl><p>Can be set, to change the mode.</p>
+ </dd>
+
+ <dt><var title="">textTrack</var> . <code title=dom-TextTrack-cues><a href=#dom-texttrack-cues>cues</a></code></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-list-of-cues>text track list of cues</a>, as a <code><a href=#texttrackcuelist>TextTrackCueList</a></code> object.</p>
+ </dd>
+
+ <dt><var title="">textTrack</var> . <code title=dom-TextTrack-activeCues><a href=#dom-texttrack-activecues>activeCues</a></code></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-cue title="text track cue">text track cues</a> from the <a href=#text-track-list-of-cues>text track list of cues</a> that are currently active (i.e. that start before the <a href=#current-playback-position>current playback position</a> and end after it), as a <code><a href=#texttrackcuelist>TextTrackCueList</a></code> object.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-texttrack-kind title=dom-TextTrack-kind><code>kind</code></dfn>
+ attribute must return the <a href=#text-track-kind>text track kind</a> of the
+ <a href=#text-track>text track</a> that the <code><a href=#texttrack>TextTrack</a></code> object
+ represents.</p>
+
+ <p>The <dfn id=dom-texttrack-label title=dom-TextTrack-label><code>label</code></dfn>
+ attribute must return the <a href=#text-track-label>text track label</a> of the
+ <a href=#text-track>text track</a> that the <code><a href=#texttrack>TextTrack</a></code> object
+ represents.</p>
+
+ <p>The <dfn id=dom-texttrack-language title=dom-TextTrack-language><code>language</code></dfn>
+ attribute must return the <a href=#text-track-language>text track language</a> of the
+ <a href=#text-track>text track</a> that the <code><a href=#texttrack>TextTrack</a></code> object
+ represents.</p>
+
+ <p>The <dfn id=dom-texttrack-readystate title=dom-TextTrack-readyState><code>readyState</code></dfn>
+ attribute must return the numeric value corresponding to the
+ <a href=#text-track-readiness-state>text track readiness state</a> of the <a href=#text-track>text
+ track</a> that the <code><a href=#texttrack>TextTrack</a></code> object represents, as
+ defined by the following list:</p>
+
+ <dl><dt><dfn id=dom-texttrack-none title=dom-TextTrack-NONE><code>NONE</code></dfn> (numeric value 0)</dt>
+ <dd>The <a href=#text-track-not-loaded>text track not loaded</a> state.</dd>
+ <dt><dfn id=dom-texttrack-loading title=dom-TextTrack-LOADING><code>LOADING</code></dfn> (numeric value 1)</dt>
+ <dd>The <a href=#text-track-loading>text track loading</a> state.</dd>
+ <dt><dfn id=dom-texttrack-loaded title=dom-TextTrack-LOADED><code>LOADED</code></dfn> (numeric value 2)</dt>
+ <dd>The <a href=#text-track-loaded>text track loaded</a> state.</dd>
+ <dt><dfn id=dom-texttrack-error title=dom-TextTrack-ERROR><code>ERROR</code></dfn> (numeric value 3)</dt>
+ <dd>The <a href=#text-track-failed-to-load>text track failed to load</a> state.</dd>
+ </dl><p>The <dfn id=dom-texttrack-mode title=dom-TextTrack-mode><code>mode</code></dfn>
+ attribute, on getting, must return the numeric value corresponding
+ to the <a href=#text-track-mode>text track mode</a> of the <a href=#text-track>text track</a>
+ that the <code><a href=#texttrack>TextTrack</a></code> object represents, as defined by
+ the following list:</p>
+
+ <dl><dt><dfn id=dom-texttrack-disabled title=dom-TextTrack-DISABLED><code>DISABLED</code></dfn> (numeric value 0)</dt>
+ <dd>The <a href=#text-track-disabled>text track disabled</a> mode.</dd>
+ <dt><dfn id=dom-texttrack-hidden title=dom-TextTrack-HIDDEN><code>HIDDEN</code></dfn> (numeric value 1)</dt>
+ <dd>The <a href=#text-track-hidden>text track hidden</a> mode.</dd>
+ <dt><dfn id=dom-texttrack-showing title=dom-TextTrack-SHOWING><code>SHOWING</code></dfn> (numeric value 2)</dt>
+ <dd>The <a href=#text-track-showing>text track showing</a> and <a href=#text-track-showing-by-default title="text track showing by default">showing by default</a> modes.</dd>
+ </dl><p>On setting, if the new value is not either 0, 1, or 2, the user
+ agent must throw an <code><a href=#invalidaccesserror>InvalidAccessError</a></code>
+ exception. Otherwise, if the new value isn't equal to what the
+ attribute would currently return, the new value must be processed as
+ follows:</p>
+
+ <dl class=switch><dt>If the new value is 0</dt>
+
+ <dd>
+
+ <p>Set the <a href=#text-track-mode>text track mode</a> of the <a href=#text-track>text
+ track</a> that the <code><a href=#texttrack>TextTrack</a></code> object represents to
+ the <a href=#text-track-disabled>text track disabled</a> mode.</p>
+
+ </dd>
+
+ <dt>If the new value is 1</dt>
+
+ <dd>
+
+ <p>Set the <a href=#text-track-mode>text track mode</a> of the <a href=#text-track>text
+ track</a> that the <code><a href=#texttrack>TextTrack</a></code> object represents to
+ the <a href=#text-track-hidden>text track hidden</a> mode.</p>
+
+ </dd>
+
+ <dt>If the new value is 2</dt>
+
+ <dd>
+
+ <p>Set the <a href=#text-track-mode>text track mode</a> of the <a href=#text-track>text
+ track</a> that the <code><a href=#texttrack>TextTrack</a></code> object represents to
+ the <a href=#text-track-showing>text track showing</a> mode.</p>
+
+ <p class=note>If the mode had been <a href=#text-track-showing-by-default title="text track
+ showing by default">showing by default</a>, this will change it
+ to <a href=#text-track-showing title="text track showing">showing</a>, even though
+ the value of <code title=dom-TextTrack-mode><a href=#dom-texttrack-mode>mode</a></code> would
+ appear not to change.</p>
+
+ </dd>
+
+ </dl><p>If the <a href=#text-track-mode>text track mode</a> of the <a href=#text-track>text
+ track</a> that the <code><a href=#texttrack>TextTrack</a></code> object represents is
+ not the <a href=#text-track-disabled>text track disabled</a> mode, then the <dfn id=dom-texttrack-cues title=dom-TextTrack-cues><code>cues</code></dfn> attribute must
+ return a <a href=#live>live</a> <code><a href=#texttrackcuelist>TextTrackCueList</a></code> object that
+ represents the subset of the <a href=#text-track-list-of-cues>text track list of cues</a> of
+ the <a href=#text-track>text track</a> that the <code><a href=#texttrack>TextTrack</a></code> object
+ represents whose <a href=#text-track-cue-start-time title="text track cue start time">start
+ times</a> occur at or after the <a href=#earliest-possible-position-when-the-script-started>earliest possible position
+ when the script started</a>, in <a href=#text-track-cue-order>text track cue
+ order</a>. Otherwise, it must return null. When an object is
+ returned, the same object must be returned each time.</p>
+
+ <p>The <dfn id=earliest-possible-position-when-the-script-started>earliest possible position when the script started</dfn>
+ is whatever the <a href=#earliest-possible-position>earliest possible position</a> was the last
+ time the <a href=#event-loop>event loop</a> reached step 1.</p>
+
+ <p>If the <a href=#text-track-mode>text track mode</a> of the <a href=#text-track>text
+ track</a> that the <code><a href=#texttrack>TextTrack</a></code> object represents is
+ not the <a href=#text-track-disabled>text track disabled</a> mode, then the <dfn id=dom-texttrack-activecues title=dom-TextTrack-activeCues><code>activeCues</code></dfn>
+ attribute must return a <a href=#live>live</a>
+ <code><a href=#texttrackcuelist>TextTrackCueList</a></code> object that represents the subset of
+ the <a href=#text-track-list-of-cues>text track list of cues</a> of the <a href=#text-track>text
+ track</a> that the <code><a href=#texttrack>TextTrack</a></code> object represents
+ whose <a href=#active-flag-was-set-when-the-script-started>active flag was set when the script started</a>, in
+ <a href=#text-track-cue-order>text track cue order</a>. Otherwise, it must return
+ null. When an object is returned, the same object must be returned
+ each time.</p>
+
+ <p>A <a href=#text-track-cue>text track cue</a>'s <dfn id=active-flag-was-set-when-the-script-started>active flag was set when
+ the script started</dfn> if its <a href=#text-track-cue-active-flag>text track cue active
+ flag</a> was set the last time the <a href=#event-loop>event loop</a>
+ reached step 1.</p>
+
+ </div>
+
+ <hr><pre class=idl>interface <dfn id=mutabletexttrack>MutableTextTrack</dfn> : <a href=#texttrack>TextTrack</a> {
+ void <a href=#dom-mutabletexttrack-addcue title=dom-MutableTextTrack-addCue>addCue</a>(<a href=#texttrackcue>TextTrackCue</a> cue);
+ void <a href=#dom-mutabletexttrack-removecue title=dom-MutableTextTrack-removeCue>removeCue</a>(<a href=#texttrackcue>TextTrackCue</a> cue);
+};</pre>
+
+ <dl class=domintro><dt><var title="">mutableTextTrack</var> = <var title="">media</var> . <code title=dom-media-addTextTrack><a href=#dom-media-addtexttrack>addTextTrack</a></code>( <var title="">kind</var> [, <var title="">label</var> [, <var title="">language</var> ] ] )</dt>
+
+ <dd>
+ <p>Creates and returns a new <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object, which is also added to the <a href=#media-element>media element</a>'s <a href=#list-of-text-tracks>list of text tracks</a>.</p>
+ </dd>
+
+ <dt><var title="">mutableTextTrack</var> . <code title=dom-MutableTextTrack-addCue><a href=#dom-mutabletexttrack-addcue>addCue</a></code>( <var title="">cue</var> )</dt>
+ <dd>
+ <p>Adds the given cue to <var title="">mutableTextTrack</var>'s <a href=#text-track-list-of-cues>text track list of cues</a>.</p>
+ <p>Throws an exception if the argument is associated with another <a href=#text-track>text track</a> or already in the list of cues.</p>
+ </dd>
+
+ <dt><var title="">mutableTextTrack</var> . <code title=dom-MutableTextTrack-removeCue><a href=#dom-mutabletexttrack-removecue>removeCue</a></code>( <var title="">cue</var> )</dt>
+ <dd>
+ <p>Removes the given cue from <var title="">mutableTextTrack</var>'s <a href=#text-track-list-of-cues>text track list of cues</a>.</p>
+ <p>Throws an exception if the argument is associated with another <a href=#text-track>text track</a> or not in the list of cues.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-media-addtexttrack title=dom-media-addTextTrack><code>addTextTrack(<var title="">kind</var>, <var title="">label</var>, <var title="">language</var>)</code></dfn> method of <a href=#media-element title="media
+ element">media elements</a>, when invoked, must run the following
+ steps:</p>
+
+ <ol><li>
+
+ <p>If <var title="">kind</var> is not one of the following
+ strings, then throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort
+ these steps:</p>
+
+ <ul class=brief><li><code title=dom-TextTrack-kind-subtitles><a href=#dom-texttrack-kind-subtitles>subtitles</a></code>
+ <li><code title=dom-TextTrack-kind-captions><a href=#dom-texttrack-kind-captions>captions</a></code>
+ <li><code title=dom-TextTrack-kind-descriptions><a href=#dom-texttrack-kind-descriptions>descriptions</a></code>
+ <li><code title=dom-TextTrack-kind-chapters><a href=#dom-texttrack-kind-chapters>chapters</a></code>
+ <li><code title=dom-TextTrack-kind-metadata><a href=#dom-texttrack-kind-metadata>metadata</a></code>
+ </ul></li>
+
+ <li>
+
+ <p>If the <var title="">label</var> argument was omitted, let <var title="">label</var> be the empty string.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <var title="">language</var> argument was omitted, let
+ <var title="">language</var> be the empty string.</p>
+
+ </li>
+
+ <li>
+
+ <p>Create a new <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object.</p>
+
+ </li>
+
+ <li>
+
+ <p>Create a new <a href=#text-track>text track</a> corresponding to the new
+ object, and set its <a href=#text-track-kind>text track kind</a> to <var title="">kind</var>, its <a href=#text-track-label>text track label</a> to <var title="">label</var>, its <a href=#text-track-language>text track language</a> to <var title="">language</var>, its <a href=#text-track-readiness-state>text track readiness
+ state</a> to the <a href=#text-track-loaded>text track loaded</a> state, its
+ <a href=#text-track-mode>text track mode</a> to the <a href=#text-track-hidden>text track hidden</a>
+ mode, and its <a href=#text-track-list-of-cues>text track list of cues</a> to an empty
+ list.
+<!--TTVTT-->
+ Associate the <a href=#text-track-list-of-cues>text track list of cues</a> with the
+ <a href=#rules-for-updating-the-display-of-webvtt-text-tracks>rules for updating the display of WebVTT text tracks</a>
+ as its <a href=#rules-for-updating-the-text-track-rendering>rules for updating the text track rendering</a>.
+<!--TTVTT-->
+ </p>
+
+ </li>
+
+ <li>
+
+ <p>Add the new <a href=#text-track>text track</a> to the <a href=#media-element>media
+ element</a>'s <a href=#list-of-text-tracks>list of text tracks</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#queue-a-task>Queue a task</a> to fire an event with the name <code title=event-addtrack>addtrack</code>, that does not bubble and
+ is not cancelable, and that uses the <code><a href=#trackevent>TrackEvent</a></code>
+ interface, with the <code title=dom-TrackEvent-track><a href=#dom-trackevent-track>track</a></code> attribute initialized to
+ the new <a href=#text-track>text track</a>'s <code><a href=#mutabletexttrack>MutableTextTrack</a></code>
+ object, at the <a href=#media-element>media element</a>'s <code title=dom-media-textTracks><a href=#dom-media-texttracks>textTracks</a></code> attribute's
+ <code><a href=#texttracklist>TextTrackList</a></code> object.</p>
+
+ </li>
+
+ <li>
+
+ <p>Return the new <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object.</p>
+
+ </li>
+
+ </ol><p>The <dfn id=dom-mutabletexttrack-addcue title=dom-MutableTextTrack-addCue><code>addCue(<var title="">cue</var>)</code></dfn> method of
+ <code><a href=#mutabletexttrack>MutableTextTrack</a></code> objects, when invoked, must run the
+ following steps:</p>
+
+ <ol><li><p>If the given <var title="">cue</var> is already associated
+ with a <a href=#text-track>text track</a> other than the method's
+ <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text track</a>,
+ then throw an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception and abort
+ these steps.</li>
+
+ <li><p>Associate <var title="">cue</var> with the method's
+ <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text track</a>,
+ if it is not currently associated with a <a href=#text-track>text
+ track</a>.</li>
+
+ <li><p>If the given <var title="">cue</var> is already listed in
+ the method's <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text
+ track</a>'s <a href=#text-track-list-of-cues>text track list of cues</a>, then throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception.</li>
+
+ <li><p>Add <var title="">cue</var> to the method's
+ <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text track</a>'s
+ <a href=#text-track-list-of-cues>text track list of cues</a>.</li>
+
+ </ol><p>The <dfn id=dom-mutabletexttrack-removecue title=dom-MutableTextTrack-removeCue><code>removeCue(<var title="">cue</var>)</code></dfn> method of
+ <code><a href=#mutabletexttrack>MutableTextTrack</a></code> objects, when invoked, must run the
+ following steps:</p>
+
+ <ol><li><p>If the given <var title="">cue</var> is not associated with
+ the method's <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text
+ track</a>, then throw an <code><a href=#invalidstateerror>InvalidStateError</a></code>
+ exception.</li>
+
+ <li><p>If the given <var title="">cue</var> is not currently listed
+ in the method's <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text
+ track</a>'s <a href=#text-track-list-of-cues>text track list of cues</a>, then throw a
+ <code><a href=#notfounderror>NotFoundError</a></code> exception.</li>
+
+ <li><p>Remove <var title="">cue</var> from the method's
+ <code><a href=#mutabletexttrack>MutableTextTrack</a></code> object's <a href=#text-track>text track</a>'s
+ <a href=#text-track-list-of-cues>text track list of cues</a>.</li>
+
+ </ol></div>
+
+ <div class=example>
+
+ <p>In this example, an <code><a href=#the-audio-element>audio</a></code> element is used to play a
+ specific sound-effect from a sound file containing many sound
+ effects. A cue is used to pause the audio, so that it ends exactly
+ at the end of the clip, even if the browser is busy running some
+ script. If the page had relied on script to pause the audio, then
+ the start of the next clip might be heard if the browser was not
+ able to run the script at the exact time specified.</p>
+
+ <pre>var sfx = new Audio('sfx.wav');
+var sounds = a.addTextTrack('metadata');
+
+// add sounds we care about
+sounds.addCue(new TextTrackCue('dog bark', 12.783, 13.612, '', '', '', true));
+sounds.addCue(new TextTrackCue('kitten mew', 13.612, 15.091, '', '', '', true));
+
+function playSound(id) {
+ sfx.currentTime = sounds.getCueById(id).startTime;
+ sfx.play();
+}
+
+sfx.oncanplaythrough = function () {
+ playSound('dog bark');
+}
+window.onbeforeunload = function () {
+ playSound('kitten mew');
+ return 'Are you sure you want to leave this awesome page?';
+}</pre>
+
+ </div>
+
+ <hr><pre class=idl>interface <dfn id=texttrackcuelist>TextTrackCueList</dfn> {
+ readonly attribute unsigned long <a href=#dom-texttrackcuelist-length title=dom-TextTrackCueList-length>length</a>;
+ getter <a href=#texttrackcue>TextTrackCue</a> (unsigned long index);
+ <a href=#texttrackcue>TextTrackCue</a>? <a href=#dom-texttrackcuelist-getcuebyid title=dom-TextTrackCueList-getCueById>getCueById</a>(DOMString id);
+};</pre>
+
+ <dl class=domintro><dt><var title="">cuelist</var> . <code title=dom-TextTrackCueList-length><a href=#dom-texttrackcuelist-length>length</a></code></dt>
+ <dd>
+ <p>Returns the number of <a href=#text-track-cue title="text track cue">cues</a> in the list.</p>
+ </dd>
+
+ <dt><var title="">cuelist</var>[<var title="">index</var>]</dt>
+ <dd>
+ <p>Returns the <a href=#text-track-cue>text track cue</a> with index <var title="">index</var> in the list. The cues are sorted in <a href=#text-track-cue-order>text track cue order</a>.</p>
+ </dd>
+
+ <dt><var title="">cuelist</var> . <code title=dom-TextTrackCueList-getCueById><a href=#dom-texttrackcuelist-getcuebyid>getCueById</a></code>( <var title="">id</var> )</dt>
+ <dd>
+ <p>Returns the first <a href=#text-track-cue>text track cue</a> (in <a href=#text-track-cue-order>text track cue order</a>) with <a href=#text-track-cue-identifier>text track cue identifier</a> <var title="">id</var>.</p>
+ <p>Returns null if none of the cues have the given identifier or if the argument is the empty string.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>A <code><a href=#texttrackcuelist>TextTrackCueList</a></code> object represents a dynamically
+ updating list of <a href=#text-track-cue title="text track cue">text track
+ cues</a> in a given order.</p>
+
+ <p>The <dfn id=dom-texttrackcuelist-length title=dom-TextTrackCueList-length><code>length</code></dfn>
+ attribute must return the number of <a href=#text-track-cue title="text track
+ cue">cues</a> in the list represented by the
+ <code><a href=#texttrackcuelist>TextTrackCueList</a></code> object.</p>
+
+ <p>The <a href=#supported-property-indices>supported property indices</a> of a
+ <code><a href=#texttrackcuelist>TextTrackCueList</a></code> object at any instant are the numbers
+ from zero to the number of <a href=#text-track-cue title="text track cue">cues</a>
+ in the list represented by the <code><a href=#texttrackcuelist>TextTrackCueList</a></code> object
+ minus one, if any. If there are no <a href=#text-track-cue title="text track
+ cue">cues</a> in the list, there are no <a href=#supported-property-indices>supported property
+ indices</a>.</p>
+
+ <p>To <a href=#determine-the-value-of-an-indexed-property>determine the value of an indexed property</a> for a
+ given index <var title="">index</var>, the user agent must return
+ the <var title="">index</var>th <a href=#text-track-cue>text track cue</a> in the
+ list represented by the <code><a href=#texttrackcuelist>TextTrackCueList</a></code> object.</p>
+
+ <p>The <dfn id=dom-texttrackcuelist-getcuebyid title=dom-TextTrackCueList-getCueById><code>getCueById(<var title="">id</var>)</code></dfn> method, when called with an argument
+ other than the empty string, must return the first <a href=#text-track-cue>text track
+ cue</a> in the list represented by the
+ <code><a href=#texttrackcuelist>TextTrackCueList</a></code> object whose <a href=#text-track-cue-identifier>text track cue
+ identifier</a> is <var title="">id</var>, if any, or null
+ otherwise. If the argument is the empty string, then the method must
+ return null.</p>
+
+ </div>
+
+ <hr><pre class=idl>
+<!--TTVTT-->
+[<a href=#dom-texttrackcue title=dom-TextTrackCue>Constructor</a>(DOMString id, double startTime, double endTime, DOMString text, optional DOMString settings, optional boolean pauseOnExit)]
+<!--TTVTT-->
+interface <dfn id=texttrackcue>TextTrackCue</dfn> : <a href=#eventtarget>EventTarget</a> {
+ readonly attribute <a href=#texttrack>TextTrack</a>? <a href=#dom-texttrackcue-track title=dom-TextTrackCue-track>track</a>;
+ readonly attribute DOMString <a href=#dom-texttrackcue-id title=dom-TextTrackCue-id>id</a>;
+
+ readonly attribute double <a href=#dom-texttrackcue-starttime title=dom-TextTrackCue-startTime>startTime</a>;
+ readonly attribute double <a href=#dom-texttrackcue-endtime title=dom-TextTrackCue-endTime>endTime</a>;
+ readonly attribute boolean <a href=#dom-texttrackcue-pauseonexit title=dom-TextTrackCue-pauseOnExit>pauseOnExit</a>;
+
+<!--TTVTT-->
+ readonly attribute DOMString <a href=#dom-texttrackcue-direction title=dom-TextTrackCue-direction>direction</a>;
+ readonly attribute boolean <a href=#dom-texttrackcue-snaptolines title=dom-TextTrackCue-snapToLines>snapToLines</a>;
+ readonly attribute long <a href=#dom-texttrackcue-lineposition title=dom-TextTrackCue-linePosition>linePosition</a>;
+ readonly attribute long <a href=#dom-texttrackcue-textposition title=dom-TextTrackCue-textPosition>textPosition</a>;
+ readonly attribute long <a href=#dom-texttrackcue-size title=dom-TextTrackCue-size>size</a>;
+ readonly attribute DOMString <a href=#dom-texttrackcue-alignment title=dom-TextTrackCue-alignment>alignment</a>;
+<!--TTVTT-->
+
+ DOMString <a href=#dom-texttrackcue-getcueassource title=dom-TextTrackCue-getCueAsSource>getCueAsSource</a>();
+ <a href=#documentfragment>DocumentFragment</a> <a href=#dom-texttrackcue-getcueashtml title=dom-TextTrackCue-getCueAsHTML>getCueAsHTML</a>();
+
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrackcue-onenter title=handler-TextTrackCue-onenter>onenter</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-texttrackcue-onexit title=handler-TextTrackCue-onexit>onexit</a>;
+};</pre>
+
+ <dl class=domintro><!--TTVTT--><dt><var title="">cue</var> = new <code title=dom-TextTrackCue><a href=#dom-texttrackcue>TextTrackCue</a></code>( <var title="">id</var>, <var title="">startTime</var>, <var title="">endTime</var>, <var title="">text</var> [, <var title="">settings</var> [, <var title="">pauseOnExit</var> ] ] )</dt>
+ <dd>
+ <p>Returns a new <code><a href=#texttrackcue>TextTrackCue</a></code> object, for use with the <code title=dom-MutableTextTrack-addCue><a href=#dom-mutabletexttrack-addcue>addCue()</a></code> method.</p>
+ <p>The <var title="">id</var> argument sets the <a href=#text-track-cue-identifier>text track cue identifier</a>.</p>
+ <p>The <var title="">startTime</var> argument sets the <a href=#text-track-cue-start-time>text track cue start time</a>.</p>
+ <p>The <var title="">endTime</var> argument sets the <a href=#text-track-cue-end-time>text track cue end time</a>.</p>
+ <p>The <var title="">text</var> argument sets the <a href=#text-track-cue-text>text track cue text</a>.</p>
+ <p>The <var title="">settings</var> argument is a string in the format of <a href=#webvtt-cue-settings>WebVTT cue settings</a>. If omitted, the empty string is assumed.</p>
+ <p>The <var title="">pauseOnExit</var> argument sets the <a href=#text-track-cue-pause-on-exit-flag>text track cue pause-on-exit flag</a>. If omitted, false is assumed.</p>
+ </dd>
+<!--TTVTT-->
+
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-track title=dom-TextTrackCue-track>track</a></dt>
+ <dd>
+ <p>Returns the <code><a href=#texttrack>TextTrack</a></code> object to which this
+ <a href=#text-track-cue>text track cue</a> belongs, if any, or null
+ otherwise.</p>
+ </dd>
+
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-id title=dom-TextTrackCue-id>id</a></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-cue-identifier>text track cue identifier</a>.</p>
+ </dd>
+
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-starttime title=dom-TextTrackCue-startTime>startTime</a></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-cue-start-time>text track cue start time</a>, in seconds.</p>
+ </dd>
+
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-endtime title=dom-TextTrackCue-endTime>endTime</a></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-cue-end-time>text track cue end time</a>, in seconds.</p>
+ </dd>
+
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-pauseonexit title=dom-TextTrackCue-pauseOnExit>pauseOnExit</a></dt>
+ <dd>
+ <p>Returns true if the <a href=#text-track-cue-pause-on-exit-flag>text track cue pause-on-exit flag</a> is set, false otherwise.</p>
+ </dd>
+
+<!--TTVTT-->
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-direction title=dom-TextTrackCue-direction>direction</a></dt>
+ <dd>
+ <p>Returns a string representing the <a href=#text-track-cue-writing-direction>text track cue writing direction</a>, as follows:</p>
+ <dl class=switch><dt>If it is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a></dt>
+ <dd><p>The string "<code title="">horizontal</code>".</dd>
+ <dt>If it is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing direction">vertical growing left</a></dt>
+ <dd><p>The string "<code title="">vertical</code>".</dd>
+ <dt>If it is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing right writing direction">vertical growing right</a></dt>
+ <dd><p>The string "<code title="">vertical-lr</code>".</dd>
+ </dl></dd>
+
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-snaptolines title=dom-TextTrackCue-snapToLines>snapToLines</a></dt>
+ <dd>
+ <p>Returns true if the <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a> is set, false otherwise.</p>
+ </dd>
+
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-lineposition title=dom-TextTrackCue-linePosition>linePosition</a></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-cue-line-position>text track cue line position</a>. In the
+ case of the value being <a href=#text-track-cue-automatic-line-position title="text track cue automatic
+ line position">auto</a>, the appropriate default is returned.</p>
+ </dd>
+
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-textposition title=dom-TextTrackCue-textPosition>textPosition</a></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-cue-text-position>text track cue text position</a>.</p>
+ </dd>
+
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-size title=dom-TextTrackCue-size>size</a></dt>
+ <dd>
+ <p>Returns the <a href=#text-track-cue-size>text track cue size</a>.</p>
+ </dd>
+
+ <dt><var title="">cue</var> . <a href=#dom-texttrackcue-alignment title=dom-TextTrackCue-alignment>alignment</a></dt>
+ <dd>
+ <p>Returns a string representing the <a href=#text-track-cue-alignment>text track cue alignment</a>, as follows:</p>
+ <dl class=switch><dt>If it is <a href=#text-track-cue-start-alignment title="text track cue start alignment">start alignment</a></dt>
+ <dd><p>The string "<code title="">start</code>".</dd>
+ <dt>If it is <a href=#text-track-cue-middle-alignment title="text track cue middle alignment">middle alignment</a></dt>
+ <dd><p>The string "<code title="">middle</code>".</dd>
+ <dt>If it is <a href=#text-track-cue-end-alignment title="text track cue end alignment">end alignment</a></dt>
+ <dd><p>The string "<code title="">end</code>".</dd>
+ </dl></dd>
+<!--TTVTT-->
+
+ <dt><var title="">source</var> = <var title="">cue</var> . <a href=#dom-texttrackcue-getcueassource title=dom-TextTrackCue-getCueAsSource>getCueAsSource</a>()</dt>
+ <dd>
+ <p>Returns the <a href=#text-track-cue-text>text track cue text</a> in raw unparsed form.</p>
+ </dd>
+
+ <dt><var title="">fragment</var> = <var title="">cue</var> . <a href=#dom-texttrackcue-getcueashtml title=dom-TextTrackCue-getCueAsHTML>getCueAsHTML</a>()</dt>
+ <dd>
+ <p>Returns the <a href=#text-track-cue-text>text track cue text</a> as a <code><a href=#documentfragment>DocumentFragment</a></code> of <a href=#html-elements>HTML elements</a> and other DOM nodes.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+<!--TTVTT-->
+ <p>The <dfn id=dom-texttrackcue title=dom-TextTrackCue><code>TextTrackCue(<var title="">id</var>, <var title="">startTime</var>, <var title="">endTime</var>, <var title="">text</var>, <var title="">settings</var>, <var title="">pauseOnExit</var>)</code></dfn> constructor, when invoked,
+ must run the following steps:</p>
+
+ <ol><li><p>Create a new <a href=#text-track-cue>text track cue</a> that is not
+ associated with any <a href=#text-track>text track</a>. Let <var title="">cue</var> be that <a href=#text-track-cue>text track cue</a>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-identifier>text track cue
+ identifier</a> be the value of the <var title="">id</var>
+ argument.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-start-time>text track cue start
+ time</a> be the value of the <var title="">startTime</var>
+ argument, interpreted as a time in seconds.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-end-time>text track cue end
+ time</a> be the value of the <var title="">endTime</var>
+ argument, interpreted as a time in seconds.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-pause-on-exit-flag>text track cue
+ pause-on-exit flag</a> be true if the <var title="">pauseOnExit</var> is present and true. Otherwise, let it
+ be false.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-text>text track cue
+ text</a> be the value of the <var title="">text</var> argument,
+ and let the rules for its interpretation be the <a href=#webvtt-cue-text-parsing-rules>WebVTT cue
+ text parsing rules</a>, the <a href=#webvtt-cue-text-rendering-rules>WebVTT cue text rendering
+ rules</a>, and the <a href=#webvtt-cue-text-dom-construction-rules>WebVTT cue text DOM construction
+ rules</a>.</li>
+
+ <!-- default settings -->
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-writing-direction>text track cue
+ writing direction</a> be <a href=#text-track-cue-horizontal-writing-direction title="text track cue
+ horizontal writing direction">horizontal</a>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-snap-to-lines-flag>text track cue
+ snap-to-lines flag</a> be true.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-line-position>text track cue line
+ position</a> be <a href=#text-track-cue-automatic-line-position title="text track cue automatic line
+ position">auto</a>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-text-position>text track cue
+ text position</a> be 50.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-size>text track cue
+ size</a> be 100.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-alignment>text track cue
+ alignment</a> be <a href=#text-track-cue-middle-alignment title="text track cue middle
+ alignment">middle alignment</a>.</li>
+
+ <li><p>Let <var title="">input</var> be the string given by the
+ <var title="">settings</var> argument.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#parse-the-webvtt-settings>Parse the WebVTT settings</a> for <var title="">cue</var>.</li>
+
+ <li><p>Return the <code><a href=#texttrackcue>TextTrackCue</a></code> object representing
+ <var title="">cue</var>.</li>
+
+ </ol><!--TTVTT--><p>The <dfn id=dom-texttrackcue-track title=dom-TextTrackCue-track><code>track</code></dfn>
+ attribute must return the <code><a href=#texttrack>TextTrack</a></code> object of the
+ <a href=#text-track>text track</a> with which the <a href=#text-track-cue>text track cue</a>
+ that the <code><a href=#texttrackcue>TextTrackCue</a></code> object represents is associated,
+ if any; or null otherwise.</p>
+
+ <p>The <dfn id=dom-texttrackcue-id title=dom-TextTrackCue-id><code>id</code></dfn>
+ attribute must return the <a href=#text-track-cue-identifier>text track cue identifier</a> of
+ the <a href=#text-track-cue>text track cue</a> that the <code><a href=#texttrackcue>TextTrackCue</a></code>
+ object represents.</p>
+
+ <p>The <dfn id=dom-texttrackcue-starttime title=dom-TextTrackCue-startTime><code>startTime</code></dfn>
+ attribute must return the <a href=#text-track-cue-start-time>text track cue start time</a> of
+ the <a href=#text-track-cue>text track cue</a> that the <code><a href=#texttrackcue>TextTrackCue</a></code>
+ object represents, in seconds.</p>
+
+ <p>The <dfn id=dom-texttrackcue-endtime title=dom-TextTrackCue-endTime><code>endTime</code></dfn>
+ attribute must return the <a href=#text-track-cue-end-time>text track cue end time</a> of
+ the <a href=#text-track-cue>text track cue</a> that the <code><a href=#texttrackcue>TextTrackCue</a></code>
+ object represents, in seconds.</p>
+
+ <p>The <dfn id=dom-texttrackcue-pauseonexit title=dom-TextTrackCue-pauseOnExit><code>pauseOnExit</code></dfn>
+ attribute must return true if the <a href=#text-track-cue-pause-on-exit-flag>text track cue
+ pause-on-exit flag</a> of the <a href=#text-track-cue>text track cue</a> that
+ the <code><a href=#texttrackcue>TextTrackCue</a></code> object represents is set; or false
+ otherwise.</p>
+
+ <p>The <dfn id=dom-texttrackcue-direction title=dom-TextTrackCue-direction><code>direction</code></dfn>
+ attribute must return the string from the second cell of the row in
+ the table below whose first cell is the <a href=#text-track-cue-writing-direction>text track cue
+ writing direction</a> of the <a href=#text-track-cue>text track cue</a> that the
+ <code><a href=#texttrackcue>TextTrackCue</a></code> object represents:</p>
+
+ <table><thead><tr><th> <a href=#text-track-cue-writing-direction>Text track cue writing direction</a>
+ <th> <code title=dom-TextTrackCue-direction><a href=#dom-texttrackcue-direction>direction</a></code> value
+ <tbody><tr><td> <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">Horizontal</a>
+ <td> "<code title="">horizontal</code>"
+ <tr><td> <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing direction">Vertical growing left</a>
+ <td> "<code title="">vertical</code>"
+ <tr><td> <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing right writing direction">Vertical growing right</a>
+ <td> "<code title="">vertical-lr</code>"
+ </table><!--TTVTT--><p>The <dfn id=dom-texttrackcue-snaptolines title=dom-TextTrackCue-snapToLines><code>snapToLines</code></dfn>
+ attribute must return true if the <a href=#text-track-cue-snap-to-lines-flag>text track cue
+ snap-to-lines flag</a> of the <a href=#text-track-cue>text track cue</a> that
+ the <code><a href=#texttrackcue>TextTrackCue</a></code> object represents is set; or false
+ otherwise.</p>
+
+ <p>The <dfn id=dom-texttrackcue-lineposition title=dom-TextTrackCue-linePosition><code>linePosition</code></dfn>
+ attribute must return the <a href=#text-track-cue-line-position>text track cue line position</a>
+ of the <a href=#text-track-cue>text track cue</a> that the
+ <code><a href=#texttrackcue>TextTrackCue</a></code> object represents, if that value is
+ numeric. Otherwise, the value is the special value <a href=#text-track-cue-automatic-line-position title="text track cue automatic line position">auto</a>; if the
+ <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a> of the <a href=#text-track-cue>text
+ track cue</a> that the <code><a href=#texttrackcue>TextTrackCue</a></code> object
+ represents is not set, the attribute must return the value 100;
+ otherwise, it must return the value returned by the following
+ algorithm:</p>
+
+ <ol><li><p>Let <var title="">cue</var> be the <a href=#text-track-cue>text track
+ cue</a> that the <code><a href=#texttrackcue>TextTrackCue</a></code> object
+ represents.</li>
+
+ <li><p>If <var title="">cue</var> is not associated with a
+ <a href=#text-track>text track</a>, return &minus;1 and abort these
+ steps.</li>
+
+ <li><p>Let <var title="">track</var> be the <a href=#text-track>text
+ track</a> that the <var title="">cue</var> is associated
+ with.</li>
+
+ <li><p>Let <var title="">n</var> be the number of <a href=#text-track title="text track">text tracks</a> whose <a href=#text-track-mode>text track
+ mode</a> is <a href=#text-track-showing title="text track showing">showing</a> or
+ <a href=#text-track-showing-by-default title="text track showing by default">showing by
+ default</a> and that are in the <a href=#media-element>media element</a>'s
+ <a href=#list-of-text-tracks>list of text tracks</a> before <var title="">track</var>.</li>
+
+ <li><p>Return <var title="">n</var>.</li>
+
+ </ol><p>The <dfn id=dom-texttrackcue-textposition title=dom-TextTrackCue-textPosition><code>textPosition</code></dfn>
+ attribute must return the <a href=#text-track-cue-text-position>text track cue text position</a>
+ of the <a href=#text-track-cue>text track cue</a> that the
+ <code><a href=#texttrackcue>TextTrackCue</a></code> object represents.</p>
+
+ <p>The <dfn id=dom-texttrackcue-size title=dom-TextTrackCue-size><code>size</code></dfn>
+ attribute must return the <a href=#text-track-cue-size>text track cue size</a> of the
+ <a href=#text-track-cue>text track cue</a> that the <code><a href=#texttrackcue>TextTrackCue</a></code>
+ object represents.</p>
+
+ <p>The <dfn id=dom-texttrackcue-alignment title=dom-TextTrackCue-alignment><code>alignment</code></dfn>
+ attribute must return the string from the second cell of the row in
+ the table below whose first cell is the <a href=#text-track-cue-alignment>text track cue
+ alignment</a> of the <a href=#text-track-cue>text track cue</a> that the
+ <code><a href=#texttrackcue>TextTrackCue</a></code> object represents:</p>
+
+ <table><thead><tr><th><a href=#text-track-cue-alignment>Text track cue alignment</a> <th> <code title=dom-TextTrackCue-alignment><a href=#dom-texttrackcue-alignment>alignment</a></code> value
+ <tbody><tr><td><a href=#text-track-cue-start-alignment title="text track cue start alignment">Start alignment</a> <td> "<code title="">start</code>"
+ <tr><td><a href=#text-track-cue-middle-alignment title="text track cue middle alignment">Middle alignment</a> <td> "<code title="">middle</code>"
+ <tr><td><a href=#text-track-cue-end-alignment title="text track cue end alignment">End alignment</a> <td> "<code title="">end</code>"
+ </table><!--TTVTT--><p>The <dfn id=dom-texttrackcue-getcueassource title=dom-TextTrackCue-getCueAsSource><code>getCueAsSource()</code></dfn>
+ method must return the raw <a href=#text-track-cue-text>text track cue text</a>.</p>
+
+ <p>The <dfn id=dom-texttrackcue-getcueashtml title=dom-TextTrackCue-getCueAsHTML><code>getCueAsHTML()</code></dfn>
+ method must convert the <a href=#text-track-cue-text>text track cue text</a> to a
+ <code><a href=#documentfragment>DocumentFragment</a></code> for the <a href=#media-element>media element</a>'s
+ <code><a href=#document>Document</a></code>, using the appropriate rules for doing
+ so.
+<!--TTVTT-->
+ For example, for <a href=#webvtt>WebVTT</a>, those rules are the
+ <a href=#webvtt-cue-text-parsing-rules>WebVTT cue text parsing rules</a> and the <a href=#webvtt-cue-text-dom-construction-rules>WebVTT cue
+ text DOM construction rules</a>.
+<!--TTVTT-->
+ </p>
+
+ </div>
+
+
+ <h6 id=text-tracks-describing-chapters><span class=secno>4.8.10.12.6 </span>Text tracks describing chapters</h6>
+
+ <p>Chapters are segments of a <a href=#media-resource>media resource</a> with a
+ given title. Chapters can be nested, in the same way that sections
+ in a document outline can have subsections.</p>
+
+ <p>Each <a href=#text-track-cue>text track cue</a> in a <a href=#text-track>text track</a>
+ being used for describing chapters has three key features: the
+ <a href=#text-track-cue-start-time>text track cue start time</a>, giving the start time of the
+ chapter, the <a href=#text-track-cue-end-time>text track cue end time</a>, giving the end
+ time of the chapter, and the <a href=#text-track-cue-text>text track cue text</a> giving
+ the chapter title.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=rules-for-constructing-the-chapter-tree-from-a-text-track>rules for constructing the chapter tree from a text
+ track</dfn> are as follows. They produce a potentially nested list
+ of chapters, each of which have a start time, end time, title, and a
+ list of nested chapters. This algorithm discards cues that do not
+ correctly nest within each other, or that are out of order.</p>
+
+ <ol><li><p>Let <var title="">list</var> be a copy of the <a href=#text-track-list-of-cues title="text track list of cues">list of cues</a> of the
+ <a href=#text-track>text track</a> being processed.</li>
+
+ <li><p>Let <var title="">output</var> be an empty list of chapters,
+ where a chapter is a record consisting of a start time, an end
+ time, a title, and a (potentially empty) list of nested chapters.
+ For the purpose of this algorithm, each chapter also has a parent
+ chapter.</li>
+
+ <li><p>Let <var title="">current chapter</var> be a stand-in
+ chapter whose start time is negative infinity, whose end time is
+ positive infinity, and whose list of nested chapters is <var title="">output</var>. (This is just used to make the algorithm
+ easier to describe.)</li>
+
+ <!-- while not empty... -->
+ <li><p><i>Loop</i>: If <var title="">list</var> is empty, jump to
+ the step labeled <i>end</i>.</li>
+
+ <!-- do... -->
+ <li><p>Let <var title="">current cue</var> be the first cue in <var title="">list</var>, and then remove it from <var title="">list</var>.</li>
+
+ <li><p>If <var title="">current cue</var>'s <a href=#text-track-cue-start-time>text track cue
+ start time</a> is less than the start time of <var title="">current chapter</var>, then return to the step labeled
+ <i>loop</i>.</p> <!-- out of order chapter -->
+
+ <li><p>While <var title="">current cue</var>'s <a href=#text-track-cue-start-time>text track cue
+ start time</a> is greater than or equal to <var title="">current
+ chapter</var>'s end time, let <var title="">current chapter</var>
+ be <var title="">current chapter</var>'s parent chapter.</li>
+
+ <li><p>If <var title="">current cue</var>'s <a href=#text-track-cue-end-time>text track cue
+ end time</a> is greater than the end time of <var title="">current chapter</var>, then return to the step labeled
+ <i>loop</i>.</p> <!-- misnested chapter -->
+
+ <li><p>Create a new chapter <var title="">new chapter</var>, whose
+ start time is <var title="">current cue</var>'s <a href=#text-track-cue-start-time>text track
+ cue start time</a>, whose end time is <var title="">current
+ cue</var>'s <a href=#text-track-cue-end-time>text track cue end time</a>, whose title is
+ <var title="">current cue</var>'s <a href=#text-track-cue-text>text track cue text</a>
+ interpreted according to its rules for interpretation, and whose
+ list of nested chapters is empty.</li>
+
+ <li><p>Append <var title="">new chapter</var> to <var title="">current chapter</var>'s list of nested chapters, and let
+ <var title="">current chapter</var> be <var title="">new
+ chapter</var>'s parent.</li>
+
+ <li><p>Let <var title="">current chapter</var> be <var title="">new
+ chapter</var>.</li>
+
+ <li><p>Return to the step labeled <i>loop</i>.</li>
+ <!-- ...end while -->
+
+ <li><p><i>End</i>: Return <var title="">output</var>.</li>
+
+ </ol></div>
+
+<!--TTVTT-->
+ <div class=example>
+
+ <p>The following snippet of a <a href=#webvtt-file>WebVTT file</a> shows how
+ nested chapters can be marked up. The file describes three
+ 50-minute chapters, "Astrophysics", "Computational Physics", and
+ "General Relativity". The first has three subchapters, the second
+ has four, and the third has two.</p>
+
+ <pre>WEBVTT
+
+00:00:00.00 --&gt; 00:50:00.00
+Astrophysics
+
+00:00:00.00 --&gt; 00:10:00.00
+Introduction to Astrophysics
+
+00:10:00.00 --&gt; 00:45:00.00
+The Solar System
+
+00:00:00.00 --&gt; 00:10:00.00
+Coursework Description
+
+00:50:00.00 --&gt; 01:40:00.00
+Computational Physics
+
+00:50:00.00 --&gt; 00:55:00.00
+Introduction to Programming
+
+00:55:00.00 --&gt; 01:30:00.00
+Data Structures
+
+01:30:00.00 --&gt; 01:35:00.00
+Answers to Last Exam
+
+01:35:00.00 --&gt; 01:40:00.00
+Coursework Description
+
+01:40:00.00 --&gt; 02:30:00.00
+General Relativity
+
+01:40:00.00 --&gt; 02:00:00.00
+Tensor Algebra
+
+02:00:00.00 --&gt; 02:30:00.00
+The General Relativistic Field Equations</pre>
+
+ </div>
+<!--TTVTT-->
+
+
+ <div class=impl>
+
+ <h6 id=cue-events><span class=secno>4.8.10.12.7 </span>Event definitions</h6>
+
+ <p>The following are the <a href=#event-handlers>event handlers</a> that (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) must be
+ supported, as IDL attributes, by all objects implementing the
+ <code><a href=#texttracklist>TextTrackList</a></code> interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-texttracklist-onaddtrack title=handler-TextTrackList-onaddtrack><code>onaddtrack</code></dfn> <td> <code title=event-addtrack>addtrack</code>
+ </table><p>The following are the <a href=#event-handlers>event handlers</a> that (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) must be supported, as IDL attributes, by all
+ objects implementing the <code><a href=#texttrack>TextTrack</a></code> interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-texttrack-onload title=handler-TextTrack-onload><code>onload</code></dfn> <td> <code title=event-load>load</code>
+ <tr><td><dfn id=handler-texttrack-onerror title=handler-TextTrack-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
+ <tr><td><dfn id=handler-texttrack-oncuechange title=handler-TextTrack-oncuechange><code>oncuechange</code></dfn> <td> <code title=event-cuechange>cuechange</code>
+ </table><p>The following are the <a href=#event-handlers>event handlers</a> that (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) must be supported, as IDL attributes, by all
+ objects implementing the <code><a href=#texttrackcue>TextTrackCue</a></code> interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-texttrackcue-onenter title=handler-TextTrackCue-onenter><code>onenter</code></dfn> <td> <code title=event-enter>enter</code>
+ <tr><td><dfn id=handler-texttrackcue-onexit title=handler-TextTrackCue-onexit><code>onexit</code></dfn> <td> <code title=event-exit>exit</code>
+ </table></div>
+
+<!--TTVTT-->
+
+<div data-component="other Hixie drafts (editor: Ian Hickson)">
+ <h5 id=webvtt-0><span class=secno>4.8.10.13 </span>WebVTT</h5>
+
+ <p>The <dfn id=webvtt>WebVTT</dfn> format (Web Video Text Tracks) is a
+ format intended for marking up external text track resources.</p>
+
+ <!-- v2 feature requests:
+
+ Explicitly allow random comments on the line after the
+ signature line, for metadata, copyrights, etc.
+
+
+ A comment block, e.g.
+
+ COMMENT - - >
+ this is a comment, bla bla
+
+
+ Inline CSS, maybe as:
+
+ STYLE - - >
+ ::cue(.narration) { color: blue; }
+
+
+ Default settings:
+
+ DEFAULTS - - >
+ L:-1 A:middle S:50%
+
+
+ Except in all these cases, - - > is really:
+ -->
+
+
+ <h6 id=introduction-1><span class=secno>4.8.10.13.1 </span>Introduction</h6>
+
+ <p>The main use for WebVTT files is captioning video content. Here
+ is a sample file that captions an interview:</p>
+
+ <pre>WEBVTT
+
+00:11.000 --&gt; 00:13.000
+&lt;v Roger Bingham&gt;We are in New York City
+
+00:13.000 --&gt; 00:16.000
+&lt;v Roger Bingham&gt;We're actually at the Lucern Hotel, just down the street
+
+00:16.000 --&gt; 00:18.000
+&lt;v Roger Bingham&gt;from the American Museum of Natural History
+
+00:18.000 --&gt; 00:20.000
+&lt;v Roger Bingham&gt;And with me is Neil DeGrasse Tyson
+
+00:20.000 --&gt; 00:22.000
+&lt;v Roger Bingham&gt;Astrophysicist, Director of the Hayden Planetarium
+
+00:22.000 --&gt; 00:24.000
+&lt;v Roger Bingham&gt;at the AMNH.
+
+00:24.000 --&gt; 00:26.000
+&lt;v Roger Bingham&gt;Thank you for walking down here.
+
+00:27.000 --&gt; 00:30.000
+&lt;v Roger Bingham&gt;And I want to do a follow-up on the last conversation we did.
+
+00:30.000 --&gt; 00:31.500 A:end S:50%
+&lt;v Roger Bingham&gt;When we e-mailed&mdash;
+
+00:30.500 --&gt; 00:32.500 A:start S:50%
+&lt;v Neil DeGrass Tyson&gt;Didn't we talk about enough in that conversation?
+
+00:32.000 --&gt; 00:35.500 A:end S:50%
+&lt;v Roger Bingham&gt;No! No no no no; 'cos 'cos obviously 'cos
+
+00:32.500 --&gt; 00:33.500 A:start S:50%
+&lt;v Neil DeGrass Tyson&gt;&lt;i&gt;Laughs&lt;/i&gt;
+
+00:35.500 --&gt; 00:38.000
+&lt;v Roger Bingham&gt;You know I'm so excited my glasses are falling off here.</pre>
+
+
+ <h6 id=syntax-0><span class=secno>4.8.10.13.2 </span>Syntax</h6>
+
+ <p>A <dfn id=webvtt-file>WebVTT file</dfn> must consist of a <a href=#webvtt-file-body>WebVTT file
+ body</a> encoded as UTF-8 and labeled with the <a href=#mime-type>MIME
+ type</a> <code><a href=#text/vtt>text/vtt</a></code>. <a href=#refsRFC3629>[RFC3629]</a></p>
+
+ <p>A <dfn id=webvtt-file-body>WebVTT file body</dfn> consists of the following
+ components, in the following order:</p>
+
+ <ol><li>An optional U+FEFF BYTE ORDER MARK (BOM) character.</li>
+
+ <li>The string "<code title="">WEBVTT</code>".</li>
+
+ <li>Optionally, either a U+0020 SPACE character or a U+0009
+ CHARACTER TABULATION (tab) character followed by any number of
+ characters that are not U+000A LINE FEED (LF) or U+000D CARRIAGE
+ RETURN (CR) characters.</li> <!-- allows for Emacs line -->
+
+ <li>Two or more <a href=#webvtt-line-terminator title="WebVTT line terminator">WebVTT line
+ terminators</a>.</li> <!-- the first one to terminate the magic
+ line, the second one to terminate the header block: in the future,
+ we can add a metadata block before the first blank line -->
+
+ <li>Zero or more <a href=#webvtt-cue title="WebVTT cue">WebVTT cues</a>
+ separated from each other by two or more <a href=#webvtt-line-terminator title="WebVTT line
+ terminator">WebVTT line terminators</a>.</li>
+
+ <li>Zero or more <a href=#webvtt-line-terminator title="WebVTT line terminator">WebVTT line
+ terminators</a>.</li>
+
+ </ol><p>A <dfn id=webvtt-cue>WebVTT cue</dfn> consists of the following components, in
+ the given order:</p>
+
+ <ol><li>Optionally, a <a href=#webvtt-cue-identifier>WebVTT cue identifier</a> followed by a <a href=#webvtt-line-terminator>WebVTT line terminator</a>.</li>
+ <li><a href=#webvtt-cue-timings>WebVTT cue timings</a>.</li>
+ <li>Optionally, one or more U+0020 SPACE characters or U+0009 CHARACTER TABULATION (tab) characters followed by <a href=#webvtt-cue-settings>WebVTT cue settings</a>.</li>
+ <li>A <a href=#webvtt-line-terminator>WebVTT line terminator</a>.</li>
+ <li>The <dfn id=cue-payload>cue payload</dfn>: either <a href=#webvtt-cue-text>WebVTT cue text</a>, <a href=#webvtt-chapter-title-text>WebVTT chapter title text</a>, or <a href=#webvtt-metadata-text>WebVTT metadata text</a>.</li>
+ </ol><p class=note>A <a href=#webvtt-cue>WebVTT cue</a> corresponds to one piece
+ of time-aligned text or data in the <a href=#webvtt-file>WebVTT file</a>, for
+ example one subtitle. The <a href=#cue-payload>cue payload</a> is the text or
+ data associated with the cue.</p>
+
+ <p><a href=#webvtt-chapter-title-text>WebVTT chapter title text</a> is syntactically a subset
+ of <a href=#webvtt-cue-text>WebVTT cue text</a>, and <a href=#webvtt-cue-text>WebVTT cue text</a> is
+ syntactically a subset of <a href=#webvtt-metadata-text>WebVTT metadata text</a>.
+ Conformance checkers, when validating <a href=#webvtt>WebVTT</a> files, may
+ offer to restrict all cues to only having <a href=#webvtt-chapter-title-text>WebVTT chapter title
+ text</a> or <a href=#webvtt-cue-text>WebVTT cue text</a> as their <a href=#cue-payload>cue
+ payload</a>; <a href=#webvtt-metadata-text>WebVTT metadata text</a> cues are only
+ useful for scripted applications (using the <code title=dom-timedtrack-kind-metadata>metadata</code> <a href=#text-track-kind>text
+ track kind</a>).</p>
+
+ <p>A <a href=#webvtt-file>WebVTT file</a> whose cues all have a <a href=#cue-payload>cue
+ payload</a> that is <a href=#webvtt-chapter-title-text>WebVTT chapter title text</a> is
+ said to be a <dfn id=webvtt-file-using-chapter-title-text>WebVTT file using chapter title text</dfn>.</p>
+
+ <p>A <a href=#webvtt-file>WebVTT file</a> whose cues all have a <a href=#cue-payload>cue
+ payload</a> that is <a href=#webvtt-cue-text>WebVTT cue text</a> is said to be a
+ <dfn id=webvtt-file-using-cue-text>WebVTT file using cue text</dfn>. By definition, any file that
+ is a <a href=#webvtt-file-using-chapter-title-text>WebVTT file using chapter title text</a> is also a
+ <a href=#webvtt-file-using-cue-text>WebVTT file using cue text</a>.</p>
+
+ <p>A <dfn id=webvtt-line-terminator>WebVTT line terminator</dfn> consists of one of the
+ following:</p>
+
+ <ul class=brief><li>A U+000D CARRIAGE RETURN U+000A LINE FEED (CRLF) character pair.</li>
+ <li>A single U+000A LINE FEED (LF) character.</li>
+ <li>A single U+000D CARRIAGE RETURN (CR) character.</li>
+ </ul><p>A <dfn id=webvtt-cue-identifier>WebVTT cue identifier</dfn> is any sequence of one or more
+ characters not containing the substring "<code title="">--&gt;</code>"
+ (U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS, U+003E GREATER-THAN
+ SIGN), nor containing any U+000A LINE FEED (LF) characters or U+000D
+ CARRIAGE RETURN (CR) characters.</p>
+
+ <p class=note>A <a href=#webvtt-cue-identifier>WebVTT cue identifier</a> can be used to
+ reference a specific cue, for example from script or CSS.</p>
+
+ <p>The <dfn id=webvtt-cue-timings>WebVTT cue timings</dfn> part of a <a href=#webvtt-cue>WebVTT
+ cue</a> consists of the following components, in the given
+ order:</p>
+
+ <ol><!-- we could allow leading and trailing spaces and tabs, and make
+ the space between the arrow either optional or allow multiple
+ spaces or tabs --><li>A <a href=#webvtt-timestamp>WebVTT timestamp</a> representing the start time
+ offset of the cue. The time represented by this <a href=#webvtt-timestamp>WebVTT
+ timestamp</a> must be greater than or equal to the start time
+ offsets of all previous cues in the file.</li>
+
+ <li>A U+0020 SPACE character.</li>
+
+ <li>The string "<code title="">--&gt;</code>" (U+002D HYPHEN-MINUS,
+ U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN).</li>
+
+ <li>A U+0020 SPACE character.</li>
+
+ <li>A <a href=#webvtt-timestamp>WebVTT timestamp</a> representing the end time
+ offset of the cue. The time represented by this <a href=#webvtt-timestamp>WebVTT
+ timestamp</a> must be greater than the start time offset of the
+ cue.</li>
+
+ </ol><p class=note>The <a href=#webvtt-cue-timings>WebVTT cue timings</a> give the start
+ and end offsets of the <a href=#webvtt-cue>WebVTT cue</a>. Different cues can
+ overlap. Cues are always listed ordered by their start time.</p>
+
+ <p>A <a href=#webvtt-file>WebVTT file</a> whose cues all have an end time offset
+ <var title="">x</var> greater than or equal to the end time offsets
+ of all the cues whose start time offsets are less than <var title="">x</var> is said to be a <dfn id=webvtt-file-using-only-nested-cues>WebVTT file using only nested
+ cues</dfn>.</p>
+
+ <p>A <dfn id=webvtt-timestamp>WebVTT timestamp</dfn> representing a time in seconds and
+ fractions of a second is a <a href=#webvtt-timestamp>WebVTT timestamp</a>
+ representing hours <var title="">hours</var>, minutes <var title="">minutes</var>, seconds
+ <var title="">seconds</var>, and thousandths of a second <var title="">seconds-frac</var>, calculated as follows:</p>
+
+ <ol><li><p>Let <var title="">seconds</var> be the integer part of the
+ time.</li>
+
+ <li><p>Let <var title="">seconds-frac</var> be the fractional
+ component of the time, expressed as the digits of the decimal
+ fraction given to three decimal digits.</li>
+
+ <li><p>If <var title="">seconds</var> is greater than 59, then let
+ <var title="">minutes</var> be the integer component of <var title="">seconds</var> divided by sixty, and then let <var title="">seconds</var> be the remainder of dividing <var title="">seconds</var> divided by sixty. Otherwise, let <var title="">minutes</var> be zero.</li>
+
+ <li><p>If <var title="">minutes</var> is greater than 59, then let
+ <var title="">hours</var> be the integer component of <var title="">minutes</var> divided by sixty, and then let <var title="">minutes</var> be the remainder of dividing <var title="">minutes</var> divided by sixty. Otherwise, let <var title="">hours</var> be zero.</li>
+
+ </ol><p>A <a href=#webvtt-timestamp>WebVTT timestamp</a> representing hours <var title="">hours</var>, minutes <var title="">minutes</var>, seconds
+ <var title="">seconds</var>, and thousandths of a second <var title="">seconds-frac</var>, consists of the following components,
+ in the given order:</p>
+
+ <ol><li>Optionally (required if <var title="">hour</var> is non-zero):
+
+ <ol><li>Two or more characters in the range U+0030 DIGIT ZERO (0) to
+ U+0039 DIGIT NINE (9), representing the <var title="">hours</var>
+ as a base ten integer.</li>
+
+ <li>A U+003A COLON character (:)</li>
+
+ </ol></li>
+
+ <li>Two characters in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9), representing the <var title="">minutes</var> as a
+ base ten integer in the range 0&nbsp;&le;&nbsp;<var title="">minutes</var>&nbsp;&le;&nbsp;59.</li>
+
+ <li>A U+003A COLON character (:)</li>
+
+ <li>Two characters in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9), representing the <var title="">seconds</var> as a
+ base ten integer in the range 0&nbsp;&le;&nbsp;<var title="">seconds</var>&nbsp;&le;&nbsp;59.</li>
+
+ <li>A U+002E FULL STOP character (.).</li>
+
+ <li>Three characters in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9), representing the thousandths of a second <var title="">seconds-frac</var> as a base ten integer.</li>
+
+ </ol><p>The <dfn id=webvtt-cue-settings>WebVTT cue settings</dfn> part of a <a href=#webvtt-cue>WebVTT
+ cue</a> consists of zero or more of the following components, in
+ any order, separated from each other by one or more U+0020 SPACE
+ characters or U+0009 CHARACTER TABULATION (tab) characters. Each
+ component must not be included more than once per <a href=#webvtt-cue-settings>WebVTT cue
+ settings</a> string.</p>
+
+ <ul class=brief><li>A <a href=#webvtt-vertical-text-cue-setting>WebVTT vertical text cue setting</a>.</li> <!-- D:vertical/vertical-lr -->
+ <li>A <a href=#webvtt-line-position-cue-setting>WebVTT line position cue setting</a>.</li> <!-- L:100% L:1 L:-1 -->
+ <li>A <a href=#webvtt-text-position-cue-setting>WebVTT text position cue setting</a>.</li> <!-- T:100% -->
+ <li>A <a href=#webvtt-size-cue-setting>WebVTT size cue setting</a>.</li> <!-- S:100% -->
+ <li>A <a href=#webvtt-alignment-cue-setting>WebVTT alignment cue setting</a>.</li> <!-- A:start/middle/end -->
+ </ul><p class=note><a href=#webvtt-cue-settings>WebVTT cue settings</a> give configuration
+ options regarding the position and alignment of the cue. For
+ example, it allows a cue to be aligned to the left or positioned at
+ the top right.</p>
+
+ <p>A <dfn id=webvtt-vertical-text-cue-setting>WebVTT vertical text cue setting</dfn> consists of the
+ following components, in the order given:</p>
+
+ <ol><li>A U+0044 LATIN CAPITAL LETTER D character.</li>
+ <li>A U+003A COLON character (:).</li>
+ <li>One of the following strings: "<code title="">vertical</code>", "<code title="">vertical-lr</code>".</li>
+ </ol><p class=note>A <a href=#webvtt-vertical-text-cue-setting>WebVTT vertical text cue setting</a>
+ configures the cue to use vertical text layout rather than
+ horizontal text layout. Vertical text layout is sometimes used in
+ Japanese, for example. The default is horiontal layout.</p>
+
+ <p>A <dfn id=webvtt-line-position-cue-setting>WebVTT line position cue setting</dfn> consists of the
+ following components, in the order given:</p>
+
+ <ol><li><p>A U+004C LATIN CAPITAL LETTER L character.</li>
+ <li><p>A U+003A COLON character (:).</li>
+ <li>Either:
+ <dl><dt>To represent a specific position relative to the video frame</dt>
+ <dd>
+ <ol><li>One or more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</li>
+ <li>A U+0025 PERCENT SIGN character (%).</li>
+ </ol></dd>
+ <dt>To represent a line number</dt>
+ <dd>
+ <ol><li>Optionally a U+002D HYPHEN-MINUS character (-).</li>
+ <li>One or more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</li>
+ </ol></dd>
+ </dl></li>
+ </ol><p class=note>A <a href=#webvtt-line-position-cue-setting>WebVTT line position cue setting</a>
+ configures the position of the cue. For horizontal cues, this is the
+ vertical position. The position can be given either as a percentage,
+ which gives the distance from the top of the frame, or as a line
+ number. Line numbers are based on the size of the first line of the
+ cue. Positive line numbers count from the top of the frame (the top
+ line is numbered 0), negative line numbers from the bottom of the
+ frame (the bottom line is numbered &minus;1).</p>
+
+ <p>A <dfn id=webvtt-text-position-cue-setting>WebVTT text position cue setting</dfn> consists of the
+ following components, in the order given:</p>
+
+ <ol><li>A U+0054 LATIN CAPITAL LETTER T character.</li>
+ <li>A U+003A COLON character (:).</li>
+ <li>One or more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</li>
+ <li>A U+0025 PERCENT SIGN character (%).</li>
+ </ol><p class=note>A <a href=#webvtt-text-position-cue-setting>WebVTT text position cue setting</a>
+ configures the position of the text in the direction orthogonal to
+ the <a href=#webvtt-line-position-cue-setting>WebVTT line position cue setting</a>. For horizontal
+ cues, this is the horizontal position. The <a href=#webvtt-text-position-cue-setting>WebVTT text
+ position cue setting</a> is given as a percentage, calculated
+ from the edge of the frame that the text begins (so for
+ left-to-right English text, the left edge).</p>
+
+ <p>A <dfn id=webvtt-size-cue-setting>WebVTT size cue setting</dfn> consists of the
+ following components, in the order given:</p>
+
+ <ol><li>A U+0053 LATIN CAPITAL LETTER S character.</li>
+ <li>A U+003A COLON character (:).</li>
+ <li>One or more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</li>
+ <li>A U+0025 PERCENT SIGN character (%).</li>
+ </ol><p class=note>A <a href=#webvtt-size-cue-setting>WebVTT size cue setting</a> configures
+ the size of the cue in the same direction as the <a href=#webvtt-text-position-cue-setting>WebVTT text
+ position cue setting</a>. For horizontal cues, this is the width
+ of the cue. It is given as a percentage of the width of the
+ frame.</p>
+
+ <p>A <dfn id=webvtt-alignment-cue-setting>WebVTT alignment cue setting</dfn> consists of the
+ following components, in the order given:</p>
+
+ <ol><li>A U+0041 LATIN CAPITAL LETTER A character.</li>
+ <li>A U+003A COLON character (:).</li>
+ <li>One of the following strings: "<code title="">start</code>", "<code title="">middle</code>", "<code title="">end</code>"</li>
+ </ol><p class=note>A <a href=#webvtt-alignment-cue-setting>WebVTT alignment cue setting</a>
+ configures the alignment of the text within the cue. The keywords
+ are relative to the text direction; for left-to-right English text,
+ "<code title="">start</code>" means left-aligned.</p>
+
+
+ <p><dfn id=webvtt-metadata-text>WebVTT metadata text</dfn> consists of any sequence of zero
+ or more characters other than U+000A LINE FEED (LF) characters and
+ U+000D CARRIAGE RETURN (CR) characters, each optionally separated
+ from the next by a <a href=#webvtt-line-terminator>WebVTT line terminator</a>. (In other
+ words, any text that does not have two consecutive <a href=#webvtt-line-terminator title="WebVTT line terminator">WebVTT line terminators</a> and
+ does not start or end with a <a href=#webvtt-line-terminator>WebVTT line
+ terminator</a>.)</p>
+
+
+ <p><dfn id=webvtt-chapter-title-text>WebVTT chapter title text</dfn> consists of zero or more of
+ the following, each optionally separated from the next by a
+ <a href=#webvtt-line-terminator>WebVTT line terminator</a>:</p>
+
+ <ul><li>A <a href=#webvtt-cue-text-span>WebVTT cue text span</a>, representing the text of the cue.</li>
+ <li>A <a href=#webvtt-cue-amp-escape>WebVTT cue amp escape</a>, representing a "&amp;" character in the text of the cue.</li>
+ <li>A <a href=#webvtt-cue-lt-escape>WebVTT cue lt escape</a>, representing a "&lt;" character in the text of the cue.</li>
+ <li>A <a href=#webvtt-cue-gt-escape>WebVTT cue gt escape</a>, representing a "&gt;" character in the text of the cue.</li>
+ </ul><p><dfn id=webvtt-cue-text>WebVTT cue text</dfn> consists of zero or more <a href=#webvtt-cue-components>WebVTT
+ cue components</a>, in any order, each optionally separated from
+ the next by a <a href=#webvtt-line-terminator>WebVTT line terminator</a>.</p>
+
+ <p>The <dfn id=webvtt-cue-components>WebVTT cue components</dfn> are:</p>
+
+ <ul><li>A <a href=#webvtt-cue-class-span>WebVTT cue class span</a>.</li>
+ <li>A <a href=#webvtt-cue-italics-span>WebVTT cue italics span</a>.</li>
+ <li>A <a href=#webvtt-cue-bold-span>WebVTT cue bold span</a>.</li>
+ <li>A <a href=#webvtt-cue-underline-span>WebVTT cue underline span</a>.</li>
+ <li>A <a href=#webvtt-cue-ruby-span>WebVTT cue ruby span</a>.</li>
+ <li>A <a href=#webvtt-cue-voice-span>WebVTT cue voice span</a>.</li>
+
+ <li>A <a href=#webvtt-cue-timestamp>WebVTT cue timestamp</a>.</li>
+
+ <li>A <a href=#webvtt-cue-text-span>WebVTT cue text span</a>, representing the text of the cue.</li>
+
+ <li>A <a href=#webvtt-cue-amp-escape>WebVTT cue amp escape</a>, representing a "&amp;" character in the text of the cue.</li>
+ <li>A <a href=#webvtt-cue-lt-escape>WebVTT cue lt escape</a>, representing a "&lt;" character in the text of the cue.</li>
+ <li>A <a href=#webvtt-cue-gt-escape>WebVTT cue gt escape</a>, representing a "&gt;" character in the text of the cue.</li>
+
+ </ul><p><dfn id=webvtt-cue-internal-text>WebVTT cue internal text</dfn> consists of an optional
+ <a href=#webvtt-line-terminator>WebVTT line terminator</a>, followed by zero or more
+ <a href=#webvtt-cue-components>WebVTT cue components</a>, in any order, each optionally
+ followed by a <a href=#webvtt-line-terminator>WebVTT line terminator</a>.</p>
+
+
+ <p>A <dfn id=webvtt-cue-class-span>WebVTT cue class span</dfn> consists of a <a href=#webvtt-cue-span-start-tag>WebVTT cue
+ span start tag</a> "<code title="">c</code>" that disallows an
+ annotation, <a href=#webvtt-cue-internal-text>WebVTT cue internal text</a> representing cue
+ text, and a <a href=#webvtt-cue-span-end-tag>WebVTT cue span end tag</a> "<code title="">c</code>".</p>
+
+ <p>A <dfn id=webvtt-cue-italics-span>WebVTT cue italics span</dfn> consists of a <a href=#webvtt-cue-span-start-tag>WebVTT
+ cue span start tag</a> "<code title="">i</code>" that disallows
+ an annotation, <a href=#webvtt-cue-internal-text>WebVTT cue internal text</a> representing
+ the italicized text, and a <a href=#webvtt-cue-span-end-tag>WebVTT cue span end tag</a>
+ "<code title="">i</code>".</p>
+
+ <p>A <dfn id=webvtt-cue-bold-span>WebVTT cue bold span</dfn> consists of a <a href=#webvtt-cue-span-start-tag>WebVTT cue
+ span start tag</a> "<code title="">b</code>" that disallows an
+ annotation, <a href=#webvtt-cue-internal-text>WebVTT cue internal text</a> representing the
+ boldened text, and a <a href=#webvtt-cue-span-end-tag>WebVTT cue span end tag</a> "<code title="">b</code>".</p>
+
+ <p>A <dfn id=webvtt-cue-underline-span>WebVTT cue underline span</dfn> consists of a <a href=#webvtt-cue-span-start-tag>WebVTT
+ cue span start tag</a> "<code title="">u</code>" that disallows
+ an annotation, <a href=#webvtt-cue-internal-text>WebVTT cue internal text</a> representing
+ the underlined text, and a <a href=#webvtt-cue-span-end-tag>WebVTT cue span end tag</a>
+ "<code title="">u</code>".</p>
+
+ <p>A <dfn id=webvtt-cue-ruby-span>WebVTT cue ruby span</dfn> consists of the following
+ components, in the order given:</p>
+
+ <ol><li>A <a href=#webvtt-cue-span-start-tag>WebVTT cue span start tag</a> "<code title="">ruby</code>" that disallows an annotation.</li>
+ <li>One or more occurrences of the following group of components, in the order given:
+ <ol><li><a href=#webvtt-cue-internal-text>WebVTT cue internal text</a>, representing the ruby base.</li>
+ <li>A <a href=#webvtt-cue-span-start-tag>WebVTT cue span start tag</a> "<code title="">rt</code>" that disallows an annotation.</li>
+ <li>A <dfn id=webvtt-cue-ruby-text-span>WebVTT cue ruby text span</dfn>: <a href=#webvtt-cue-internal-text>WebVTT cue internal text</a>, representing the ruby text component of the ruby annotation.</li>
+ <li>A <a href=#webvtt-cue-span-end-tag>WebVTT cue span end tag</a> "<code title="">rt</code>".
+ If this is the last occurance of this group of components in the
+ <a href=#webvtt-cue-ruby-span>WebVTT cue ruby span</a>, then this last end tag string
+ may be omitted.</li>
+ </ol></li>
+ <li>If the last end tag string was not omitted: Optionally, a <a href=#webvtt-line-terminator>WebVTT line terminator</a>.</li>
+ <li>If the last end tag string was not omitted: Zero or more U+0020 SPACE characters or U+0009 CHARACTER TABULATION (tab) characters, each optionally followed by a <a href=#webvtt-line-terminator>WebVTT line terminator</a>.</li>
+ <li>A <a href=#webvtt-cue-span-end-tag>WebVTT cue span end tag</a> "<code title="">ruby</code>".</li>
+ </ol><p>A <dfn id=webvtt-cue-voice-span>WebVTT cue voice span</dfn> consists of the following
+ components, in the order given:</p>
+
+ <ol><li>A <a href=#webvtt-cue-span-start-tag>WebVTT cue span start tag</a> "<code title="">v</code>" that requires an annotation; the annotation represents the name of the voice.</li>
+ <li><a href=#webvtt-cue-internal-text>WebVTT cue internal text</a>.</li>
+ <li>A <a href=#webvtt-cue-span-end-tag>WebVTT cue span end tag</a> "<code title="">v</code>". If this <a href=#webvtt-cue-voice-span>WebVTT cue voice span</a> is the only <a href=#webvtt-cue-components title="WebVTT cue components">component</a> of its <a href=#webvtt-cue-text>WebVTT cue text</a> sequence, then the end tag may be omitted for brevity.</li>
+ </ol><p>A <dfn id=webvtt-cue-span-start-tag>WebVTT cue span start tag</dfn> has a <var title="">tag
+ name</var> and either allows, requires, and disallows an annotation,
+ and consists of the following components, in the order given:</p>
+
+ <ol><li>A U+003C LESS-THAN SIGN character (&lt;).</li>
+
+ <li>The <var title="">tag name</var>.</li>
+
+ <li>Zero or more occurrences of the following sequence:
+
+ <ol><li>U+002E FULL STOP character (.)</li>
+
+ <li>One or more characters other than U+0009 CHARACTER TABULATION
+ (tab) characters, U+000A LINE FEED (LF) characters, U+000D
+ CARRIAGE RETURN (CR) characters, U+0020 SPACE characters, U+0026
+ AMPERSAND characters (&amp;), U+003C LESS-THAN SIGN characters
+ (&lt;), U+003E GREATER-THAN SIGN characters (&gt;), and U+002E FULL
+ STOP characters (.), representing a class that describes the cue
+ span's significance.</li>
+
+ </ol></li>
+
+ <li>
+<!--
+ <dl class="switch">
+
+ <dt>If the start tag allows an annotation:</dt>
+
+ <dd>Optionally, a <span>WebVTT cue span start tag annotation</span>.</dd>
+
+ <dt>-->If the start tag requires an annotation:<!--</dt>
+
+ <dd>A <span>WebVTT cue span start tag annotation</span>.</dd>
+
+ </dl>
+
+ <p>A <dfn>WebVTT cue span start tag annotation</dfn> consists of-->
+ a U+0020 SPACE character or a U+0009 CHARACTER TABULATION (tab)
+ character, followed by one or more of the following components,
+ the concatenation of their representations having a value that
+ contains at least one character other than U+0020 SPACE and U+0009
+ CHARACTER TABULATION (tab) characters:<!--</p>-->
+
+ <ul><li><a href=#webvtt-cue-span-start-tag-annotation-text>WebVTT cue span start tag annotation text</a>, representing the text of the annotation.</li>
+ <li>A <a href=#webvtt-cue-amp-escape>WebVTT cue amp escape</a>, representing a "&amp;" character in the text of the annotation.</li>
+ <li>A <a href=#webvtt-cue-lt-escape>WebVTT cue lt escape</a>, representing a "&lt;" character in the text of the annotation.</li>
+ <li>A <a href=#webvtt-cue-gt-escape>WebVTT cue gt escape</a>, representing a "&gt;" character in the text of the annotation.</li>
+ </ul></li>
+
+ <li>A U+003E GREATER-THAN SIGN character (&gt;).</li>
+
+ </ol><p>A <dfn id=webvtt-cue-span-end-tag>WebVTT cue span end tag</dfn> has a <var title="">tag
+ name</var> and consists of the following components, in the order
+ given:</p>
+
+ <ol><li>A U+003C LESS-THAN SIGN character (&lt;).</li>
+ <li>U+002F SOLIDUS character (/).</li>
+ <li>The <var title="">tag name</var>.</li>
+ <li>A U+003E GREATER-THAN SIGN character (&gt;).</li>
+ </ol><p>A <dfn id=webvtt-cue-timestamp>WebVTT cue timestamp</dfn> consists of a U+003C LESS-THAN
+ SIGN character (&lt;), followed by a <a href=#webvtt-timestamp>WebVTT timestamp</a>
+ representing the time that the given point in the cue becomes
+ active, followed by a U+003E GREATER-THAN SIGN character (&gt;). The
+ time represented by the <a href=#webvtt-timestamp>WebVTT timestamp</a> must be
+ greater than the times represented by any previous <a href=#webvtt-cue-timestamp title="WebVTT cue timestamp">WebVTT cue timestamps</a> in the
+ cue, as well as greater than the cue's start time offset, and less
+ than the cue's end time offset.</p>
+
+ <p>A <dfn id=webvtt-cue-text-span>WebVTT cue text span</dfn> consists of one or more
+ characters other than U+000A LINE FEED (LF) characters, U+000D
+ CARRIAGE RETURN (CR) characters, U+0026 AMPERSAND characters (&amp;),
+ and U+003C LESS-THAN SIGN characters (&lt;).</p>
+
+ <p><dfn id=webvtt-cue-span-start-tag-annotation-text>WebVTT cue span start tag annotation text</dfn> consists of
+ one or more characters other than U+000A LINE FEED (LF) characters,
+ U+000D CARRIAGE RETURN (CR) characters, U+0026 AMPERSAND characters
+ (&amp;), and U+003E GREATER-THAN SIGN characters (&gt;).</p>
+
+ <p>A <dfn id=webvtt-cue-amp-escape>WebVTT cue amp escape</dfn> is the five character string
+ "<code title="">&amp;amp;</code>".</p>
+
+ <p>A <dfn id=webvtt-cue-lt-escape>WebVTT cue lt escape</dfn> is the four character string
+ "<code title="">&amp;lt;</code>".</p>
+
+ <p>A <dfn id=webvtt-cue-gt-escape>WebVTT cue gt escape</dfn> is the four character string
+ "<code title="">&amp;gt;</code>".</p>
+
+
+
+ <div class=impl>
+
+ <h6 id=parsing-0><span class=secno>4.8.10.13.3 </span>Parsing</h6>
+
+ <p>A <dfn id=webvtt-parser>WebVTT parser</dfn>, given an input byte stream and a
+ <a href=#text-track-list-of-cues>text track list of cues</a> <var title="">output</var>,
+ must <a href=#decoded-as-utf-8,-with-error-handling title="decoded as UTF-8, with error handling">decode the
+ byte stream as UTF-8, with error handling</a>, and then must
+ parse the resulting string according to the <a href=#webvtt-parser-algorithm>WebVTT parser
+ algorithm</a> below. This results in <a href=#text-track-cue title="text track
+ cue">text track cues</a> being added to <var title="">output</var>. <a href=#refsRFC3629>[RFC3629]</a></p>
+
+ <p>A <a href=#webvtt-parser>WebVTT parser</a>, specifically its conversion and
+ parsing steps, is typically run asynchronously, with the input byte
+ stream being updated incrementally as the resource is downloaded;
+ this is called an <dfn id=incremental-webvtt-parser>incremental WebVTT parser</dfn>.</p>
+
+ <p>A <a href=#webvtt-parser>WebVTT parser</a> verifies a file signature before
+ parsing the provided byte stream. If the stream lacks this WebVTT
+ file signature, then the parser aborts.</p>
+
+ <p>The <dfn id=webvtt-parser-algorithm>WebVTT parser algorithm</dfn> is as follows:</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being parsed,
+ after conversion to Unicode.</li>
+
+ <li><p>Replace all U+0000 NULL characters in <var title="">input</var> by U+FFFD REPLACEMENT CHARACTERs.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string. In an <a href=#incremental-webvtt-parser>incremental WebVTT parser</a>, when this
+ algorithm (or further algorithms that it uses) moves the <var title="">position</var> pointer, the user agent must wait until
+ appropriate further characters from the byte stream have been added
+ to <var title="">input</var> before moving the pointer, so that the
+ algorithm never reads past the end of the <var title="">input</var>
+ string. Once the byte stream has ended, and all characters have
+ been added to <var title="">input</var>, then the <var title="">position</var> pointer may, when so instructed by the
+ algorithms, be moved past the end of <var title="">input</var>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+FEFF BYTE ORDER MARK (BOM) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ <em>not</em> U+000D CARRIAGE RETURN (CR) or U+000A LINE FEED (LF)
+ characters. Let <var title="">line</var> be those characters, if
+ any.</li>
+
+ <li><p>If <var title="">line</var> is less than six characters
+ long, then abort these steps. The file is not a <a href=#webvtt-file>WebVTT
+ file</a>.</li>
+
+ <li><p>If <var title="">line</var> is exactly six characters long
+ but does not exactly equal "<code title="">WEBVTT</code>", then
+ abort these steps. The file is not a <a href=#webvtt-file>WebVTT
+ file</a>.</li>
+
+ <li><p>If <var title="">line</var> is more than six characters long
+ but the first six characters do not exactly equal "<code title="">WEBVTT</code>", or the seventh character is neither a
+ U+0020 SPACE character nor a U+0009 CHARACTER TABULATION (tab)
+ character, then abort these steps. The file is not a <a href=#webvtt-file>WebVTT
+ file</a>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
+ <i>end</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+000D CARRIAGE RETURN (CR) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
+ <i>end</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+000A LINE FEED (LF) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+
+ <li><p><i title="">Header</i>: <a href=#collect-a-sequence-of-characters>Collect a sequence of
+ characters</a> that are <em>not</em> U+000D CARRIAGE RETURN (CR)
+ or U+000A LINE FEED (LF) characters. Let <var title="">line</var>
+ be those characters, if any.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
+ <i>end</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+000D CARRIAGE RETURN (CR) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
+ <i>end</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+000A LINE FEED (LF) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+ <!-- In v2, this is where we can put header metadata processing -->
+
+ <li><p>If <var title="">line</var> is not the empty string, then
+ jump back to the step labeled <i title="">header</i>.</li>
+
+
+ <li><p><i>Cue loop</i>: <a href=#collect-a-sequence-of-characters>Collect a sequence of
+ characters</a> that are either U+000D CARRIAGE RETURN (CR) or
+ U+000A LINE FEED (LF) characters.</li>
+
+ <li><p>Let <var title="">cue</var> be a new <a href=#text-track-cue>text track
+ cue</a> associated with <var title="">output</var>'s <a href=#text-track>text
+ track</a>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-identifier>text track cue
+ identifier</a> be the empty string.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-pause-on-exit-flag>text track cue
+ pause-on-exit flag</a> be false.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-writing-direction>text track cue
+ writing direction</a> be <a href=#text-track-cue-horizontal-writing-direction title="text track cue
+ horizontal writing direction">horizontal</a>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-snap-to-lines-flag>text track cue
+ snap-to-lines flag</a> be true.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-line-position>text track cue line
+ position</a> be <a href=#text-track-cue-automatic-line-position title="text track cue automatic line
+ position">auto</a>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-text-position>text track cue
+ text position</a> be 50.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-size>text track cue
+ size</a> be 100.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-alignment>text track cue
+ alignment</a> be <a href=#text-track-cue-middle-alignment title="text track cue middle
+ alignment">middle alignment</a>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-text>text track cue
+ text</a> be the empty string.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ <em>not</em> U+000D CARRIAGE RETURN (CR) or U+000A LINE FEED (LF)
+ characters. Let <var title="">line</var> be those characters, if
+ any.</li>
+
+ <li><p>If <var title="">line</var> is the empty string, then
+ discard <var title="">cue</var> and jump to the step labeled
+ <i>end</i>.</li>
+
+ <li><p>If <var title="">line</var> contains the three-character
+ substring "<code title="">--&gt;</code>" (U+002D HYPHEN-MINUS, U+002D
+ HYPHEN-MINUS, U+003E GREATER-THAN SIGN), then jump to the step
+ labeled <i>timings</i> below.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-identifier>text track cue
+ identifier</a> be <var title="">line</var>.<p></li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then discard <var title="">cue</var> and jump
+ to the step labeled <i>end</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+000D CARRIAGE RETURN (CR) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then discard <var title="">cue</var> and jump
+ to the step labeled <i>end</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+000A LINE FEED (LF) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ <em>not</em> U+000D CARRIAGE RETURN (CR) or U+000A LINE FEED (LF)
+ characters. Let <var title="">line</var> be those characters, if
+ any.</li>
+
+ <li><p>If <var title="">line</var> is the empty string, then
+ discard <var title="">cue</var> and jump to the step labeled <i>cue
+ loop</i>.</li>
+
+ <li><p><i>Timings</i>: <a href=#collect-webvtt-cue-timings-and-settings>Collect WebVTT cue timings and
+ settings</a> from <var title="">line</var>, using <var title="">cue</var> for the results. If that fails, jump to the step
+ labeled <i>bad cue</i>.</li>
+
+ <li><p>Let <var title="">cue text</var> be the empty
+ string.</li>
+
+ <li><p><i>Cue text loop</i>: If <var title="">position</var> is
+ past the end of <var title="">input</var>, then jump to the step
+ labeled <i>cue text processing</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+000D CARRIAGE RETURN (CR) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled <i>cue text
+ processing</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+000A LINE FEED (LF) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ <em>not</em> U+000D CARRIAGE RETURN (CR) or U+000A LINE FEED (LF)
+ characters. Let <var title="">line</var> be those characters, if
+ any.</li>
+
+ <li><p>If <var title="">line</var> is the empty string, then jump
+ to the step labeled <i>cue text processing</i>.</li>
+
+ <li><p>If <var title="">cue text</var> is not empty, append a
+ U+000A LINE FEED (LF) character to <var title="">cue
+ text</var>.</li>
+
+ <li><p>Let <var title="">cue text</var> be the concatenation of
+ <var title="">cue text</var> and <var title="">line</var>.</li>
+
+ <li><p>Return to the step labeled <i>cue text loop</i>.</li>
+
+ <li><p><i>Cue text processing</i>: Let the <a href=#text-track-cue-text>text track cue
+ text</a> of <var title="">cue</var> be <var title="">cue
+ text</var>, and let the rules for its interpretation be the
+ <a href=#webvtt-cue-text-parsing-rules>WebVTT cue text parsing rules</a>, the <a href=#webvtt-cue-text-rendering-rules>WebVTT cue
+ text rendering rules</a>, and the <a href=#webvtt-cue-text-dom-construction-rules>WebVTT cue text DOM
+ construction rules</a>.</li>
+
+ <li><p>Add <var title="">cue</var> to the <a href=#text-track-list-of-cues>text track list of
+ cues</a> <var title="">output</var>.</li>
+
+ <li><p>Jump to the step labeled <i>cue loop</i>.</li>
+
+
+ <li><p><i>Bad cue</i>: Discard <var title="">cue</var>.</li>
+
+ <li><p><i>Bad cue loop</i>: If <var title="">position</var> is
+ past the end of <var title="">input</var>, then jump to the step
+ labeled <i>end</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+000D CARRIAGE RETURN (CR) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
+ <i>end</i>.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is a U+000A LINE FEED (LF) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ <em>not</em> U+000D CARRIAGE RETURN (CR) or U+000A LINE FEED (LF)
+ characters. Let <var title="">line</var> be those characters, if
+ any.</li>
+
+ <li><p>If <var title="">line</var> is the empty string, then jump
+ to the step labeled <i>cue loop</i>.</li>
+
+ <li><p>Otherwise, jump to the step labeled <i>bad cue
+ loop</i>.</li>
+
+
+ <li><p><i>End</i>: The file has ended. Abort these steps. The
+ <a href=#webvtt-parser>WebVTT parser</a> has finished.</li>
+
+ </ol><p>When the algorithm above requires that the user agent
+ <dfn id=collect-webvtt-cue-timings-and-settings>collect WebVTT cue timings and settings</dfn> from a string
+ <var title="">input</var> for a <a href=#text-track-cue>text track cue</a> <var title="">cue</var>, the user agent must run the following
+ algorithm.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p><a href=#collect-a-webvtt-timestamp>Collect a WebVTT timestamp</a>. If that algorithm
+ fails, then abort these steps and return failure. Otherwise, let
+ <var title="">cue</var>'s <a href=#text-track-cue-start-time>text track cue start time</a>
+ be the collected time.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <!-- we can't be beyond the end of the string until we've seen the
+ arrow, since we know the arrow is in the string and nothing we've
+ done so far would move us past the first "-". -->
+
+ <li><p>If <!--<var title="">position</var> is beyond the end of
+ <var title="">input</var> or if--> the character at <var title="">position</var> is not a U+002D HYPHEN-MINUS character (-)
+ then abort these steps and return failure. Otherwise, move <var title="">position</var> forwards one character.</li>
+
+ <li><p>If <!--<var title="">position</var> is beyond the end of
+ <var title="">input</var> or if--> the character at <var title="">position</var> is not a U+002D HYPHEN-MINUS character (-)
+ then abort these steps and return failure. Otherwise, move <var title="">position</var> forwards one character.</li>
+
+ <li><p>If <!--<var title="">position</var> is beyond the end of
+ <var title="">input</var> or if--> the character at <var title="">position</var> is not a U+003E GREATER-THAN SIGN character
+ (&gt;) then abort these steps and return failure. Otherwise, move <var title="">position</var> forwards one character.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p><a href=#collect-a-webvtt-timestamp>Collect a WebVTT timestamp</a>. If that algorithm
+ fails, then abort these steps and return failure. Otherwise, let
+ <var title="">cue</var>'s <a href=#text-track-cue-end-time>text track cue end time</a>
+ be the collected time.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p><a href=#parse-the-webvtt-settings>Parse the WebVTT settings</a> for <var title="">cue</var>.</li>
+
+ </ol><p>When the user agent is to <dfn id=parse-the-webvtt-settings>parse the WebVTT settings</dfn>
+ for a <a href=#text-track-cue>text track cue</a> <var title="">cue</var>, the
+ user agent must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">input</var> and <var title="">position</var> be the same variables as those of the same
+ name in the algorithm that invoked these steps.</li>
+
+ <li><p><i>Settings</i>: If <var title="">position</var> is beyond
+ the end of <var title="">input</var> then abort these
+ steps.</li>
+
+ <li><p>Let <var title="">setting</var> be the character at <var title="">position</var>, and move <var title="">position</var>
+ forwards one character.</p>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> then abort these steps.</li>
+
+ <li><p>If the character at <var title="">position</var> is not a
+ U+003A COLON character (:), then set <var title="">setting</var> to
+ the empty string.</li>
+
+ <li><p>Move <var title="">position</var> forwards one
+ character.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> then abort these steps.</li>
+
+ <li>
+
+ <p>Run the appropriate substeps that apply for the value of <var title="">setting</var>, as follows:</p>
+
+ <dl><dt>If <var title="">setting</var> is a U+0044 LATIN CAPITAL
+ LETTER D character</dt>
+
+ <dd>
+
+ <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ not <a href=#space-character title="space character">space characters</a>. Let
+ <var title="">value</var> be those characters, if any.</li>
+
+ <li><p>If <var title="">value</var> is a
+ <a href=#case-sensitive>case-sensitive</a> match for the string "<code title="">vertical</code>", then let <var title="">cue</var>'s
+ <a href=#text-track-cue-writing-direction>text track cue writing direction</a> be <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing
+ direction">vertical growing left</a>.</li>
+
+ <li><p>Otherwise, if <var title="">value</var> is a
+ <a href=#case-sensitive>case-sensitive</a> match for the string "<code title="">vertical-lr</code>", then let <var title="">cue</var>'s <a href=#text-track-cue-writing-direction>text track cue writing
+ direction</a> be <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical
+ growing right writing direction">vertical growing
+ right</a>.</li>
+
+ </ol></dd>
+
+ <dt>If <var title="">setting</var> is a U+004C LATIN CAPITAL
+ LETTER L character</dt>
+
+ <dd>
+
+ <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ either U+002D HYPHEN-MINUS characters (-), U+0025 PERCENT SIGN
+ characters (%), or characters in the range U+0030 DIGIT ZERO
+ (0) to U+0039 DIGIT NINE (9). Let <var title="">value</var> be
+ those characters, if any.</li>
+
+ <li><p>If <var title="">position</var> is not beyond the end of
+ <var title="">input</var> but the character at <var title="">position</var> is not a <a href=#space-character>space character</a>,
+ then jump to the "otherwise" case below.</li>
+
+ <li><p>If <var title="">value</var> does not contain at least
+ one character in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9), then jump back to the step labeled
+ <i>settings</i>.</li>
+
+ <li><p>If any character in <var title="">value</var> other than
+ the first character is a U+002D HYPHEN-MINUS character (-),
+ then jump back to the step labeled <i>settings</i>.</li>
+
+ <li><p>If any character in <var title="">value</var> other than
+ the last character is a U+0025 PERCENT SIGN character (%), then
+ jump back to the step labeled <i>settings</i>.</li>
+
+ <li><p>If the first character in <var title="">value</var> is a
+ U+002D HYPHEN-MINUS character (-) <em>and</em> the last
+ character in <var title="">value</var> is a U+0025 PERCENT SIGN
+ character (%), then jump back to the step labeled
+ <i>settings</i>.</li>
+
+ <li><p>Ignoring the trailing percent sign, if any, interpret
+ <var title="">value</var> as a (potentially signed) integer,
+ and let <var title="">number</var> be that number.</li>
+
+ <li><p>If the last character in <var title="">value</var> is a
+ U+0025 PERCENT SIGN character (%), but <var title="">number</var> is not in the range 0&nbsp;&le;&nbsp;<var title="">number</var>&nbsp;&le;&nbsp;100, then jump back to the
+ step labeled <i>settings</i>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-line-position>text track cue line
+ position</a> be <var title="">number</var>.</li>
+
+ <li><p>If the last character in <var title="">value</var> is a
+ U+0025 PERCENT SIGN character (%), then let <var title="">cue</var>'s <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines
+ flag</a> be false.</li>
+
+ </ol></dd>
+
+ <dt>If <var title="">setting</var> is a U+0054 LATIN CAPITAL
+ LETTER T character</dt>
+
+ <dd>
+
+ <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE
+ (9). Let <var title="">value</var> be those characters, if
+ any.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of
+ <var title="">input</var> then jump back to the step labeled
+ <i>settings</i>.</li>
+
+ <li><p>If the character at <var title="">position</var> is not
+ a U+0025 PERCENT SIGN character (%), then then jump to the
+ "otherwise" case below.</li>
+
+ <li><p>Move <var title="">position</var> forwards one
+ character.</li>
+
+ <li><p>If <var title="">position</var> is not beyond the end of
+ <var title="">input</var> but the character at <var title="">position</var> is not a <a href=#space-character>space character</a>,
+ then jump to the "otherwise" case below.</li>
+
+ <li><p>If <var title="">value</var> is the empty string, then
+ jump back to the step labeled <i>settings</i>.</li>
+
+ <li><p>Interpret <var title="">value</var> as an integer, and
+ let <var title="">number</var> be that number.</li>
+
+ <li><p>If <var title="">number</var> is not in the range
+ 0&nbsp;&le;&nbsp;<var title="">number</var>&nbsp;&le;&nbsp;100,
+ then jump back to the step labeled <i>settings</i>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-text-position>text track cue text
+ position</a> be <var title="">number</var>.</li>
+
+ </ol></dd>
+
+ <dt>If <var title="">setting</var> is a U+0053 LATIN CAPITAL
+ LETTER S character</dt>
+
+ <dd>
+
+ <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE
+ (9). Let <var title="">value</var> be those characters, if
+ any.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of
+ <var title="">input</var> then jump back to the step labeled
+ <i>settings</i>.</li>
+
+ <li><p>If the character at <var title="">position</var> is not
+ a U+0025 PERCENT SIGN character (%), then then jump to the
+ "otherwise" case below.</li>
+
+ <li><p>Move <var title="">position</var> forwards one
+ character.</li>
+
+ <li><p>If <var title="">position</var> is not beyond the end of
+ <var title="">input</var> but the character at <var title="">position</var> is not a <a href=#space-character>space character</a>,
+ then jump to the "otherwise" case below.</li>
+
+ <li><p>If <var title="">value</var> is the empty string, then
+ jump back to the step labeled <i>settings</i>.</li>
+
+ <li><p>Interpret <var title="">value</var> as an integer, and
+ let <var title="">number</var> be that number.</li>
+
+ <li><p>If <var title="">number</var> is not in the range
+ 0&nbsp;&le;&nbsp;<var title="">number</var>&nbsp;&le;&nbsp;100,
+ then jump back to the step labeled <i>settings</i>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-size>text track cue
+ size</a> be <var title="">number</var>.</li>
+
+ </ol></dd>
+
+ <dt>If <var title="">setting</var> is a U+0041 LATIN CAPITAL
+ LETTER A character</dt>
+
+ <dd>
+
+ <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ not <a href=#space-character title="space character">space characters</a>. Let
+ <var title="">value</var> be those characters, if any.</li>
+
+ <li><p>If <var title="">value</var> is a
+ <a href=#case-sensitive>case-sensitive</a> match for the string "<code title="">start</code>", then let <var title="">cue</var>'s
+ <a href=#text-track-cue-alignment>text track cue alignment</a> be <a href=#text-track-cue-start-alignment title="text
+ track cue start alignment">start alignment</a>.</li>
+
+ <li><p>If <var title="">value</var> is a
+ <a href=#case-sensitive>case-sensitive</a> match for the string "<code title="">middle</code>", then let <var title="">cue</var>'s
+ <a href=#text-track-cue-alignment>text track cue alignment</a> be <a href=#text-track-cue-middle-alignment title="text
+ track cue middle alignment">middle alignment</a>.</li>
+
+ <li><p>If <var title="">value</var> is a
+ <a href=#case-sensitive>case-sensitive</a> match for the string "<code title="">end</code>", then let <var title="">cue</var>'s
+ <a href=#text-track-cue-alignment>text track cue alignment</a> be <a href=#text-track-cue-end-alignment title="text
+ track cue end alignment">end alignment</a>.</li>
+
+ </ol></dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are not
+ <a href=#space-character title="space character">space characters</a> and
+ discard them.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li><p>Jump back to the step labeled <i>settings</i>.</li>
+
+ </ol><p>When this specification says that a user agent is to
+ <dfn id=collect-a-webvtt-timestamp>collect a WebVTT timestamp</dfn>, the user agent must run the
+ following steps:</p>
+
+ <ol><li><p>Let <var title="">input</var> and <var title="">position</var> be the same variables as those of the same
+ name in the algorithm that invoked these steps.</li>
+
+ <li><p>Let <var title="">most significant units</var> be <i title="">minutes</i>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return an error and abort these
+ steps.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
+ return an error and abort these steps.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let <var title="">string</var> be the collected substring.</li>
+
+ <li><p>Interpret <var title="">string</var> as a base-ten
+ integer. Let <var title="">value<sub>1</sub></var> be that
+ integer.</li>
+
+ <li><p>If <var title="">string</var> is not exactly two characters
+ in length, or if <var title="">value<sub>1</sub></var> is greater
+ than 59, let <var title="">most significant units</var> be <i title="">hours</i>.</li>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+003A COLON character (:), then
+ return an error and abort these steps. Otherwise, move <var title="">position</var> forwards one character.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
+ return an error and abort these steps.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let <var title="">string</var> be the collected substring.</li>
+
+ <li><p>If <var title="">string</var> is not exactly two characters
+ in length, return an error and abort these steps.</li>
+
+ <li><p>Interpret <var title="">string</var> as a base-ten
+ integer. Let <var title="">value<sub>2</sub></var> be that
+ integer.</li>
+
+ <li>
+
+ <p>If <var title="">most significant units</var> is <i title="">hours</i>, or if <var title="">position</var> is not
+ beyond the end of <var title="">input</var> and the character at
+ <var title="">position</var> is a U+003A COLON character (:), run
+ these substeps:</p>
+
+ <ol><li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+003A COLON character (:), then
+ return an error and abort these steps. Otherwise, move <var title="">position</var> forwards one character.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
+ return an error and abort these steps.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let <var title="">string</var> be the collected substring.</li>
+
+ <li><p>If <var title="">string</var> is not exactly two
+ characters in length, return an error and abort these
+ steps.</li>
+
+ <li><p>Interpret <var title="">string</var> as a base-ten
+ integer. Let <var title="">value<sub>3</sub></var> be that
+ integer.</li>
+
+ </ol><p>Otherwise (if <var title="">most significant units</var> is not
+ <i title="">hours</i>, and either <var title="">position</var> is
+ beyond the end of <var title="">input</var>, or the character at
+ <var title="">position</var> is not a U+003A COLON character (:)),
+ let <var title="">value<sub>3</sub></var> have the value of <var title="">value<sub>2</sub></var>, then <var title="">value<sub>2</sub></var> have the value of <var title="">value<sub>1</sub></var>, then let <var title="">value<sub>1</sub></var> equal zero.</p>
+
+ </li>
+
+ <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+002E FULL STOP character (.),
+ then return an error and abort these steps. Otherwise, move <var title="">position</var> forwards one character.</li>
+
+ <li><p>If the character indicated by <var title="">position</var>
+ is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
+ return an error and abort these steps.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let <var title="">string</var> be the collected substring.</li>
+
+ <li><p>If <var title="">string</var> is not exactly three
+ characters in length, return an error and abort these
+ steps.</li>
+
+ <li><p>Interpret <var title="">string</var> as a base-ten
+ integer. Let <var title="">value<sub>4</sub></var> be that
+ integer.</li>
+
+ <li><p>If <var title="">value<sub>2</sub></var> is greater than 59
+ or if <var title="">value<sub>3</sub></var> is greater than 59,
+ return an error and abort these steps.</li>
+
+ <!-- no need to check if <var title="">value<sub>4</sub></var> is
+ greater than 999, since we know it had exactly three characters in
+ the range 0-9, so we know it's a number in the range 0-999 -->
+
+ <li><p>Let <var title="">result</var> be <span title=""><var title="">value<sub>1</sub></var>&times;60&times;60 + <var title="">value<sub>2</sub></var>&times;60 + <var title="">value<sub>3</sub></var> + <var title="">value<sub>4</sub></var>&#8725;1000</span>. <!-- &#x00f7;
+ is the division sign if people prefer that to the slash
+ --></li>
+
+ <li><p>Return <var title="">result</var>.</li>
+
+ </ol><h6 id=webvtt-cue-text-parsing-rules><span class=secno>4.8.10.13.4 </span><dfn>WebVTT cue text parsing rules</dfn></h6>
+
+ <p>A <dfn id=webvtt-node-object>WebVTT Node Object</dfn> is a conceptual construct used to
+ represent components of <a href=#webvtt-cue-text>WebVTT cue text</a> so that its
+ processing can be described without reference to the underlying
+ syntax.</p>
+
+ <p>There are two broad classes of <a href=#webvtt-node-object title="WebVTT Node
+ Object">WebVTT Node Objects</a>: <a href=#webvtt-internal-node-object title="WebVTT Internal
+ Node Object">WebVTT Internal Node Objects</a> and <a href=#webvtt-leaf-node-object title="WebVTT Leaf Node Object">WebVTT Leaf Node Objects</a>.</p>
+
+ <p><dfn id=webvtt-internal-node-object title="WebVTT Internal Node Object">WebVTT Internal Node
+ Objects</dfn> are those that can contain further <a href=#webvtt-node-object title="WebVTT
+ Node Object">WebVTT Node Objects</a>. They are conceptually
+ similar to elements in HTML or the DOM. <a href=#webvtt-internal-node-object title="WebVTT Internal
+ Node Object">WebVTT Internal Node Objects</a> have an ordered
+ list of child <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT Node
+ Objects</a>. The <a href=#webvtt-internal-node-object>WebVTT Internal Node Object</a> is said
+ to be the <i>parent</i> of the children. Cycles do not occur; the
+ parent-child relationships so constructed form a tree structure.
+ <a href=#webvtt-internal-node-object title="WebVTT Internal Node Object">WebVTT Internal Node
+ Objects</a> also have an ordered list of class names, know as
+ their <dfn id="webvtt-node-object's-applicable-classes" title="WebVTT Node Object's applicable
+ classes">applicable classes</dfn>.</p>
+
+ <p>There are several concrete classes of <a href=#webvtt-internal-node-object title="WebVTT
+ Internal Node Object">WebVTT Internal Node Objects</a>:</p>
+
+ <dl><dt><dfn id=list-of-webvtt-node-objects title="List of WebVTT Node Objects">Lists of WebVTT Node Objects</dfn></dt>
+ <dd>
+ <p>These are used as root nodes for trees of <a href=#webvtt-node-object title="WebVTT
+ Node Object">WebVTT Node Objects</a>.</p>
+ </dd>
+
+ <dt><dfn id=webvtt-class-object title="WebVTT Class Object">WebVTT Class Objects</dfn></dt>
+ <dd>
+ <p>These represent spans of text (a <a href=#webvtt-cue-class-span>WebVTT cue class
+ span</a>) in <a href=#webvtt-cue-text>WebVTT cue text</a>, and are used to
+ annotate parts of the cue with <a href="#webvtt-node-object's-applicable-classes" title="WebVTT Node Object's
+ applicable classes">applicable classes</a> without implying
+ further meaning (such as italics or bold).</p>
+ </dd>
+
+ <dt><dfn id=webvtt-italic-object title="WebVTT Italic Object">WebVTT Italic Objects</dfn></dt>
+ <dd>
+ <p>These represent spans of italic text (a <a href=#webvtt-cue-italics-span>WebVTT cue
+ italics span</a>) in <a href=#webvtt-cue-text>WebVTT cue text</a>.</p>
+ </dd>
+
+ <dt><dfn id=webvtt-bold-object title="WebVTT Bold Object">WebVTT Bold Objects</dfn></dt>
+ <dd>
+ <p>These represent spans of bold text (a <a href=#webvtt-cue-bold-span>WebVTT cue
+ bold span</a>) in <a href=#webvtt-cue-text>WebVTT cue text</a>.</p>
+ </dd>
+
+ <dt><dfn id=webvtt-underline-object title="WebVTT Underline Object">WebVTT Underline Objects</dfn></dt>
+ <dd>
+ <p>These represent spans of underline text (a <a href=#webvtt-cue-underline-span>WebVTT cue
+ underline span</a>) in <a href=#webvtt-cue-text>WebVTT cue text</a>.</p>
+ </dd>
+
+ <dt><dfn id=webvtt-ruby-object title="WebVTT Ruby Object">WebVTT Ruby Objects</dfn></dt>
+ <dd>
+ <p>These represent spans of ruby (a <a href=#webvtt-cue-ruby-span>WebVTT cue
+ ruby span</a>) in <a href=#webvtt-cue-text>WebVTT cue text</a>.</p>
+ </dd>
+
+ <dt><dfn id=webvtt-ruby-text-object title="WebVTT Ruby Text Object">WebVTT Ruby Text Objects</dfn></dt>
+ <dd>
+ <p>These represent spans of ruby text (a <a href=#webvtt-cue-ruby-text-span>WebVTT cue ruby
+ text span</a>) in <a href=#webvtt-cue-text>WebVTT cue text</a>.</p>
+ </dd>
+
+ <dt><dfn id=webvtt-voice-object title="WebVTT Voice Object">WebVTT Voice Objects</dfn></dt>
+ <dd>
+ <p>These represent spans of text associated with a specific voice
+ (a <a href=#webvtt-cue-voice-span>WebVTT cue voice span</a>) in <a href=#webvtt-cue-text>WebVTT cue
+ text</a>. A <a href=#webvtt-voice-object>WebVTT Voice Object</a> has a value, which
+ is the name of the voice.</p>
+ </dd>
+
+ </dl><p><dfn id=webvtt-leaf-node-object title="WebVTT Leaf Node Object">WebVTT Leaf Node
+ Objects</dfn> are those that contain data, such as text, and cannot
+ contain child <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT Node
+ Objects</a>.</p>
+
+ <p>There are two concrete classes of <a href=#webvtt-leaf-node-object title="WebVTT Leaf Node
+ Object">WebVTT Leaf Node Objects</a>:</p>
+
+ <dl><dt><dfn id=webvtt-text-object title="WebVTT Text Object">WebVTT Text Objects</dfn></dt>
+ <dd>
+ <p>A fragment of text. A <a href=#webvtt-text-object>WebVTT Text Object</a> has a
+ value, which is the text it represents.</p>
+ </dd>
+
+ <dt><dfn id=webvtt-timestamp-object title="WebVTT Timestamp Object">WebVTT Timestamp Objects</dfn></dt>
+ <dd>
+ <p>A timestamp. A <a href=#webvtt-timestamp-object>WebVTT Timestamp Object</a> has a
+ value, in seconds and fractions of a second, which is the time
+ represented by the timestamp.</p>
+ </dd>
+
+ </dl><p>To parse a string <var title="">input</var> supposedly containing
+ <a href=#webvtt-cue-text>WebVTT cue text</a>, user agents must use the following
+ algorithm. This algorithm returns a <a href=#list-of-webvtt-node-objects>list of WebVTT Node
+ Objects</a>.</p>
+
+ <ol><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>Let <var title="">result</var> be a <a href=#list-of-webvtt-node-objects>List of WebVTT
+ Node Objects</a>, initially empty.</li>
+
+ <li><p>Let <var title="">current</var> be the <a href=#webvtt-internal-node-object>WebVTT Internal
+ Node Object</a> <var title="">result</var>.</li>
+
+ <li><p><i>Loop</i>: If <var title="">position</var> is past the end
+ of <var title="">input</var>, return <var title="">result</var> and
+ abort these steps.</li>
+
+ <li><p>Let <var title="">token</var> be the result of invoking the
+ <a href=#webvtt-cue-text-tokenizer>WebVTT cue text tokenizer</a>.</li>
+
+ <li>
+
+ <p>Run the appropriate steps given the type of <var title="">token</var>:</p>
+
+ <dl><dt>If <var title="">token</var> is a string</dt>
+ <dd>
+
+ <ol><li><p>Create a <a href=#webvtt-text-object>WebVTT Text Object</a> whose value is
+ the value of the string token <var title="">token</var>.</li>
+
+ <li><p>Append the newly created <a href=#webvtt-text-object>WebVTT Text Object</a>
+ to <var title="">current</var>.</li>
+
+ </ol></dd>
+
+ <dt>If <var title="">token</var> is a start tag</dt>
+ <dd>
+
+ <p>How the start tag token <var title="">token</var> is
+ processed depends on its tag name, as follows:</p>
+
+ <dl><dt>If the tag name is the empty string</dt>
+ <dd>
+ <p>Ignore the token.</p>
+ </dd>
+
+ <dt>If the tag name is "<code title="">c</code>"</dt>
+ <dd>
+ <p><a href=#attach-a-webvtt-internal-node-object title="attach a WebVTT Internal Node
+ Object">Attach</a> a <a href=#webvtt-class-object>WebVTT Class Object</a>.</p>
+ </dd>
+
+ <dt>If the tag name is "<code title="">i</code>"</dt>
+ <dd>
+ <p><a href=#attach-a-webvtt-internal-node-object title="attach a WebVTT Internal Node
+ Object">Attach</a> a <a href=#webvtt-italic-object>WebVTT Italic Object</a>.</p>
+ </dd>
+
+ <dt>If the tag name is "<code title="">b</code>"</dt>
+ <dd>
+ <p><a href=#attach-a-webvtt-internal-node-object title="attach a WebVTT Internal Node
+ Object">Attach</a> a <a href=#webvtt-bold-object>WebVTT Bold Object</a>.</p>
+ </dd>
+
+ <dt>If the tag name is "<code title="">u</code>"</dt>
+ <dd>
+ <p><a href=#attach-a-webvtt-internal-node-object title="attach a WebVTT Internal Node
+ Object">Attach</a> a <a href=#webvtt-underline-object>WebVTT Underline Object</a>.</p>
+ </dd>
+
+ <dt>If the tag name is "<code title="">ruby</code>"</dt>
+ <dd>
+ <p><a href=#attach-a-webvtt-internal-node-object title="attach a WebVTT Internal Node
+ Object">Attach</a> a <a href=#webvtt-ruby-object>WebVTT Ruby Object</a>.</p>
+ </dd>
+
+ <dt>If the tag name is "<code title="">rt</code>"</dt>
+ <dd>
+ <p>If <var title="">current</var> is a <a href=#webvtt-ruby-object>WebVTT Ruby
+ Object</a>, then <a href=#attach-a-webvtt-internal-node-object title="attach a WebVTT Internal Node
+ Object">attach</a> a <a href=#webvtt-ruby-text-object>WebVTT Ruby Text
+ Object</a>.</p>
+ </dd>
+
+ <dt>If the tag name is "<code title="">v</code>"</dt>
+ <dd>
+ <p><a href=#attach-a-webvtt-internal-node-object title="attach a WebVTT Internal Node
+ Object">Attach</a> a <a href=#webvtt-voice-object>WebVTT Voice Object</a>, and
+ set its value to the token's annotation string.</p>
+ </dd>
+
+ <dt>Otherwise</dt>
+ <dd>
+ <p>Ignore the token.</p>
+ </dd>
+
+ </dl><p>When the steps above say to <dfn id=attach-a-webvtt-internal-node-object>attach a WebVTT Internal
+ Node Object</dfn> of a particular class, the user agent must
+ first create an object of the specified class, then set its list
+ of <a href="#webvtt-node-object's-applicable-classes" title="WebVTT Node Object's applicable
+ classes">applicable classes</a> to the list of classes in the
+ token, append the newly created node object to <var title="">current</var>, and finally let <var title="">current</var> be the newly created node object.</p>
+
+ </dd>
+
+ <dt>If <var title="">token</var> is an end tag</dt>
+ <dd>
+
+ <p>If any of the following conditions is true, then let <var title="">current</var> be the parent node of <var title="">current</var>.</p>
+
+ <ul class=brief><li>The tag name of the end tag token <var title="">token</var>
+ is "<code title="">c</code>" and <var title="">current</var> is
+ a <a href=#webvtt-class-object>WebVTT Class Object</a>.</li>
+
+ <li>The tag name of the end tag token <var title="">token</var>
+ is "<code title="">i</code>" and <var title="">current</var> is
+ a <a href=#webvtt-italic-object>WebVTT Italic Object</a>.</li>
+
+ <li>The tag name of the end tag token <var title="">token</var>
+ is "<code title="">b</code>" and <var title="">current</var> is
+ a <a href=#webvtt-bold-object>WebVTT Bold Object</a>.</li>
+
+ <li>The tag name of the end tag token <var title="">token</var>
+ is "<code title="">u</code>" and <var title="">current</var> is
+ a <a href=#webvtt-underline-object>WebVTT Underline Object</a>.</li>
+
+ <li>The tag name of the end tag token <var title="">token</var>
+ is "<code title="">ruby</code>" and <var title="">current</var> is
+ a <a href=#webvtt-ruby-object>WebVTT Ruby Object</a>.</li>
+
+ <li>The tag name of the end tag token <var title="">token</var>
+ is "<code title="">rt</code>" and <var title="">current</var> is
+ a <a href=#webvtt-ruby-text-object>WebVTT Ruby Text Object</a>.</li>
+
+ <li>The tag name of the end tag token <var title="">token</var>
+ is "<code title="">v</code>" and <var title="">current</var> is
+ a <a href=#webvtt-voice-object>WebVTT Voice Object</a>.</li>
+
+ </ul><p>Otherwise, if the tag name of the end tag token <var title="">token</var> is "<code title="">ruby</code>" and <var title="">current</var> is a <a href=#webvtt-ruby-text-object>WebVTT Ruby Text
+ Object</a>, then let <var title="">current</var> be the
+ parent node of <var title="">current</var> of the parent node of
+ <var title="">current</var>.</p>
+
+ <p>Otherwise, ignore the token.</p>
+
+ </dd>
+
+ <dt>If <var title="">token</var> is a timestamp tag</dt>
+ <dd>
+
+ <ol><li><p>Let <var title="">input</var> be the tag value.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into
+ <var title="">input</var>, initially pointing at the start of
+ the string.</li>
+
+ <li><p><a href=#collect-a-webvtt-timestamp>Collect a WebVTT timestamp</a>.</li>
+
+ <li>
+
+ <p>If that algorithm does not fail, and if <var title="">position</var> now points at the end of <var title="">input</var> (i.e. there are no trailing characters
+ after the timestamp), then create a <a href=#webvtt-timestamp-object>WebVTT Timestamp
+ Object</a> whose value is the collected time, then append
+ it to <var title="">current</var>.</p>
+
+ <p>Otherwise, ignore the token.</p>
+
+ </li>
+
+ </ol></dd>
+
+ </dl></li>
+
+ <li><p>Jump to the step labeled <i>loop</i>.</li>
+
+ </ol><p>The <dfn id=webvtt-cue-text-tokenizer>WebVTT cue text tokenizer</dfn> is as follows. It emits
+ a token, which is either a string (whose value is a sequence of
+ Unicode characters), a start tag (with a tag name, a list of
+ classes, and optionally an annotation), an end tag (with a tag
+ name), or a timestamp tag (with a tag value).</p>
+
+ <ol><li><p>Let <var title="">input</var> and <var title="">position</var> be the same variables as those of the same
+ name in the algorithm that invoked these steps.</li>
+
+ <li><p>Let <var title="">tokenizer state</var> be <a href=#webvtt-data-state>WebVTT data
+ state</a>.</li>
+
+ <li><p>Let <var title="">result</var> be the empty string.</li>
+
+ <li><p>Let <var title="">buffer</var> be the empty string.</li>
+
+ <li><p>Let <var title="">classes</var> be an empty list.</li>
+
+ <li>
+
+ <p><i>Loop</i>: If <var title="">position</var> is past the end of
+ <var title="">input</var>, let <var title="">c</var> be an
+ end-of-file marker. Otherwise, let <var title="">c</var> be the
+ character in <var title="">input</var> pointed to by <var title="">position</var>.</p>
+
+ <p class=note>An end-of-file marker is not a Unicode character,
+ it is used to end the tokenizer.</p>
+
+ </li>
+
+ <li>
+
+ <p>Jump to the state given by <var title="">tokenizer
+ state</var>:</p>
+
+ <dl><dt><dfn id=webvtt-data-state>WebVTT data state</dfn></dt>
+
+ <dd>
+
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
+
+ <dl><dt>U+0026 AMPERSAND (&amp;)</dt>
+ <dd>
+ <p>Set <var title="">buffer</var> to <var title="">c</var>,
+ set <var title="">tokenizer state</var> to the <a href=#webvtt-escape-state>WebVTT
+ escape state</a>, and jump to the step labeled
+ <i>next</i>.</p>
+ </dd>
+
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>
+ <p>If <var title="">result</var> is the empty string, then set
+ <var title="">tokenizer state</var> to the <a href=#webvtt-tag-state>WebVTT tag
+ state</a> and jump to the step labeled <i>next</i>.</p>
+ <p>Otherwise, return a string token whose value is <var title="">result</var> and abort these steps.</p>
+ </dd>
+
+ <dt>End-of-file marker</dt>
+ <dd>
+ <p>Return a string token whose value is <var title="">result</var> and abort these steps.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Append <var title="">c</var> to <var title="">result</var>
+ and jump to the step labeled <i>next</i>.</p>
+ </dd>
+
+ </dl></dd>
+
+ <dt><dfn id=webvtt-escape-state>WebVTT escape state</dfn></dt>
+
+ <dd>
+
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
+
+ <dl><dt>U+003B SEMICOLON character (;)</dt>
+ <dd>
+
+ <p>First, examine the value of <var title="">buffer</var>:</p>
+
+ <p>If <var title="">buffer</var> is the string "<code title="">&amp;amp</code>", then append a U+0026 AMPERSAND
+ character (&amp;) to <var title="">result</var>.</p>
+
+ <p>If <var title="">buffer</var> is the string "<code title="">&amp;lt</code>", then append a U+003C LESS-THAN SIGN
+ character (&lt;) to <var title="">result</var>.</p>
+
+ <p>If <var title="">buffer</var> is the string "<code title="">&amp;gt</code>", then append a U+003E GREATER-THAN SIGN
+ character (&gt;) to <var title="">result</var>.</p>
+
+ <p>Otherwise, append <var title="">buffer</var> followed by a
+ U+003B SEMICOLON character (;) to <var title="">result</var>.</p>
+
+ <p>Then, in any case, set <var title="">tokenizer state</var>
+ to the <a href=#webvtt-data-state>WebVTT data state</a>, and jump to the step
+ labeled <i>next</i>.</p>
+
+ </dd>
+
+ <dt>Characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)</dt>
+ <dt>Characters in the range U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dt>Characters in the range U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>
+ <p>Append <var title="">c</var> to <var title="">buffer</var>
+ and jump to the step labeled <i>next</i>.</p>
+ </dd>
+
+ <dt>End-of-file marker</dt>
+ <dd>
+ <p>Append <var title="">buffer</var> to <var title="">result</var>, return a string token whose value is
+ <var title="">result</var>, and abort these steps.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Append <var title="">buffer</var> to <var title="">result</var>, set <var title="">tokenizer state</var>
+ to the <a href=#webvtt-data-state>WebVTT data state</a>, and jump to the step
+ labeled <i>next</i>.</p>
+ </dd>
+
+ </dl></dd>
+
+ <dt><dfn id=webvtt-tag-state>WebVTT tag state</dfn></dt>
+
+ <dd>
+
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
+
+ <dl><dt>U+0020 SPACE character</dt>
+ <dt>U+0009 CHARACTER TABULATION (tab) character</dt>
+ <dd>
+ <!-- assert: >result< is the empty string -->
+ <p>Set <var title="">tokenizer state</var> to the <a href=#webvtt-start-tag-annotation-state>WebVTT
+ start tag annotation state</a>, and jump to the step labeled
+ <i>next</i>.</p>
+ </dd>
+
+ <dt>U+002E FULL STOP character (.)</dt>
+ <dd>
+ <!-- assert: >result< is the empty string -->
+ <p>Set <var title="">tokenizer state</var> to the <a href=#webvtt-start-tag-class-state>WebVTT
+ start tag class state</a>, and jump to the step labeled
+ <i>next</i>.</p>
+ </dd>
+
+ <dt>U+002F SOLIDUS character (/)</dt>
+ <dd>
+ <p>Set <var title="">tokenizer state</var> to the <a href=#webvtt-end-tag-state>WebVTT
+ end tag state</a>, and jump to the step labeled
+ <i>next</i>.</p>
+ </dd>
+
+ <dt>Characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)</dt>
+ <dd>
+ <p>Set <var title="">result</var> to <var title="">c</var>,
+ set <var title="">tokenizer state</var> to the <a href=#webvtt-timestamp-tag-state>WebVTT
+ timestamp tag state</a>, and jump to the step labeled
+ <i>next</i>.</p>
+ </dd>
+
+ <dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
+ <dd>
+ <p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>, then jump to the next "end-of-file
+ marker" entry below.</p>
+ </dd>
+
+ <dt>End-of-file marker</dt>
+ <dd>
+ <p>Return a start tag whose tag name is the empty string, with
+ no classes and no annotation, and abort these steps.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Set <var title="">result</var> to <var title="">c</var>,
+ set <var title="">tokenizer state</var> to the <a href=#webvtt-start-tag-state>WebVTT
+ start tag state</a>, and jump to the step labeled
+ <i>next</i>.</p>
+ </dd>
+
+ </dl></dd>
+
+ <dt><dfn id=webvtt-start-tag-state>WebVTT start tag state</dfn></dt>
+
+ <dd>
+
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
+
+ <dl><dt>U+0020 SPACE character</dt>
+ <dt>U+0009 CHARACTER TABULATION (tab) character</dt>
+ <dd>
+ <p>Set <var title="">tokenizer state</var> to the <a href=#webvtt-start-tag-annotation-state>WebVTT
+ start tag annotation state</a>, and jump to the step labeled
+ <i>next</i>.</p>
+ </dd>
+
+ <dt>U+002E FULL STOP character (.)</dt>
+ <dd>
+ <p>Set <var title="">tokenizer state</var> to the <a href=#webvtt-start-tag-class-state>WebVTT
+ start tag class state</a>, and jump to the step labeled
+ <i>next</i>.</p>
+ </dd>
+
+ <dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
+ <dd>
+ <p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>, then jump to the next "end-of-file
+ marker" entry below.</p>
+ </dd>
+
+ <dt>End-of-file marker</dt>
+ <dd>
+ <p>Return a start tag whose tag name is <var title="">result</var>, with no classes and no annotation, and
+ abort these steps.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Append <var title="">c</var> to <var title="">result</var>
+ and jump to the step labeled <i>next</i>.</p>
+ </dd>
+
+ </dl></dd>
+
+ <dt><dfn id=webvtt-start-tag-class-state>WebVTT start tag class state</dfn></dt>
+
+ <dd>
+
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
+
+ <dl><dt>U+0020 SPACE character</dt>
+ <dt>U+0009 CHARACTER TABULATION (tab) character</dt>
+ <dd>
+ <p>Append to <var title="">classes</var> an entry whose value
+ is <var title="">buffer</var>, set <var title="">buffer</var>
+ to the empty string, set <var title="">tokenizer state</var>
+ to the <a href=#webvtt-start-tag-annotation-state>WebVTT start tag annotation state</a>, and
+ jump to the step labeled <i>next</i>.</p>
+ </dd>
+
+ <dt>U+002E FULL STOP character (.)</dt>
+ <dd>
+ <p>Append to <var title="">classes</var> an entry whose value
+ is <var title="">buffer</var>, set <var title="">buffer</var>
+ to the empty string, and jump to the step labeled
+ <i>next</i>.</p>
+ </dd>
+
+ <dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
+ <dd>
+ <p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>, then jump to the next "end-of-file
+ marker" entry below.</p>
+ </dd>
+
+ <dt>End-of-file marker</dt>
+ <dd>
+ <p>Append to <var title="">classes</var> an entry whose value
+ is <var title="">buffer</var>, then return a start tag whose
+ tag name is <var title="">result</var>, with the classes given
+ in <var title="">classes</var> but no annotation, and abort
+ these steps.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Append <var title="">c</var> to <var title="">buffer</var>
+ and jump to the step labeled <i>next</i>.</p>
+ </dd>
+
+ </dl></dd>
+
+ <dt><dfn id=webvtt-start-tag-annotation-state>WebVTT start tag annotation state</dfn></dt>
+
+ <dd>
+
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
+
+ <dl><dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
+ <dd>
+ <p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>, then jump to the next "end-of-file
+ marker" entry below.</p>
+ </dd>
+
+ <dt>End-of-file marker</dt>
+ <dd>
+ <p>Remove any leading or trailing U+0020 SPACE or U+0009
+ CHARACTER TABULATION (tab) characters from <var title="">buffer</var>, and replace any sequence of one or
+ more consecutive U+0020 SPACE and U+0009 CHARACTER TABULATION
+ (tab) characters in <var title="">buffer</var> with a single
+ U+0020 SPACE character; then, return a start tag whose tag name is
+ <var title="">result</var>, with the classes given in <var title="">classes</var>, and with <var title="">buffer</var> as
+ the annotation, and abort these steps.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Append <var title="">c</var> to <var title="">buffer</var>
+ and jump to the step labeled <i>next</i>.</p>
+ </dd>
+
+ </dl></dd>
+
+ <dt><dfn id=webvtt-end-tag-state>WebVTT end tag state</dfn></dt>
+
+ <dd>
+
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
+
+ <dl><dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
+ <dd>
+ <p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>, then jump to the next "end-of-file
+ marker" entry below.</p>
+ </dd>
+
+ <dt>End-of-file marker</dt>
+ <dd>
+ <p>Return an end tag whose tag name is <var title="">result</var> and abort these steps.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Append <var title="">c</var> to <var title="">result</var>
+ and jump to the step labeled <i>next</i>.</p>
+ </dd>
+
+ </dl></dd>
+
+ <dt><dfn id=webvtt-timestamp-tag-state>WebVTT timestamp tag state</dfn></dt>
+
+ <dd>
+
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
+
+ <dl><dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
+ <dd>
+ <p>Advance <var title="">position</var> to the next character
+ in <var title="">input</var>, then jump to the next "end-of-file
+ marker" entry below.</p>
+ </dd>
+
+ <dt>End-of-file marker</dt>
+ <dd>
+ <p>Return a timestamp tag whose tag name is <var title="">result</var> and abort these steps.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Append <var title="">c</var> to <var title="">result</var>
+ and jump to the step labeled <i>next</i>.</p>
+ </dd>
+
+ </dl></dd>
+
+ </dl></li>
+
+ <li><p><i>Next</i>: Advance <var title="">position</var> to the next
+ character in <var title="">input</var>.</li>
+
+ <li><p>Jump to the step labeled <i>loop</i>.</li>
+
+ </ol><h6 id=webvtt-cue-text-dom-construction-rules><span class=secno>4.8.10.13.5 </span><dfn>WebVTT cue text DOM construction rules</dfn></h6>
+
+ <p>To convert a <a href=#list-of-webvtt-node-objects>List of WebVTT Node Objects</a> to a DOM
+ tree for <code><a href=#document>Document</a></code> <var title="">owner</var>, user
+ agents must create a tree of DOM nodes that is isomorphous to the
+ tree of <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT Node Objects</a>,
+ with the following mapping of <a href=#webvtt-node-object title="WebVTT Node
+ Object">WebVTT Node Objects</a> to DOM nodes:</p>
+
+ <table><thead><tr><th><a href=#webvtt-node-object>WebVTT Node Object</a>
+ <th>DOM node
+ <tbody><tr><td><a href=#list-of-webvtt-node-objects>List of WebVTT Node Objects</a>
+ <td><code><a href=#documentfragment>DocumentFragment</a></code> node
+ <tr><td><a href=#webvtt-class-object>WebVTT Class Object</a>
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-span-element>span</a></code>".
+ <tr><td><a href=#webvtt-italic-object>WebVTT Italic Object</a>
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-i-element>i</a></code>".
+ <tr><td><a href=#webvtt-bold-object>WebVTT Bold Object</a>
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-b-element>b</a></code>".
+ <tr><td><a href=#webvtt-underline-object>WebVTT Underline Object</a>
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-u-element>u</a></code>".
+ <tr><td><a href=#webvtt-ruby-object>WebVTT Ruby Object</a>
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-ruby-element>ruby</a></code>".
+ <tr><td><a href=#webvtt-ruby-text-object>WebVTT Ruby Text Object</a>
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-rt-element>rt</a></code>".
+ <tr><td><a href=#webvtt-voice-object>WebVTT Voice Object</a>
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-q-element>q</a></code>", a <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute set to the <a href=#webvtt-voice-object>WebVTT Voice Object</a>'s value.
+ <tr><td><a href=#webvtt-text-object>WebVTT Text Object</a>
+ <td><code><a href=#text>Text</a></code> node whose character data is the value of the <a href=#webvtt-text-object>WebVTT Text Object</a>.
+ <tr><td><a href=#webvtt-timestamp-object>WebVTT Timestamp Object</a>
+ <td><code><a href=#processinginstruction>ProcessingInstruction</a></code> node whose <code title=dom-ProcessingInstruction-target>target</code> is "<code title="">timestamp</code>" and whose <code title=dom-ProcessingInstruction-data>data</code> is a <a href=#webvtt-timestamp>WebVTT timestamp</a> representing the value of the <a href=#webvtt-timestamp-object>WebVTT Timestamp Object</a>, with all optional components included and with the seconds separator being a U+002E FULL STOP character (.).
+ </table><p><code><a href=#htmlelement>HTMLElement</a></code> nodes created as part of the mapping
+ described above must have their <code title=dom-Node-namespaceURI><a href=#dom-node-namespaceuri>namespaceURI</a></code> set to the
+ <a href=#html-namespace-0>HTML namespace</a>, and must have a <code title=attr-class><a href=#classes>class</a></code> attribute set to the string obtained
+ by concatenating all the classes that apply to the corresponding
+ <a href=#webvtt-internal-node-object>WebVTT Internal Node Object</a>, each separated from the
+ next by a single U+0020 SPACE character.</p>
+
+ <p>The <code title=dom-Node-ownerDocument><a href=#dom-node-ownerdocument>ownerDocument</a></code>
+ attribute of all nodes in the DOM tree must be set to the given
+ document <var title="">owner</var>.</p>
+
+ <p>All characteristics of the DOM nodes that are not described above
+ or dependent on characteristics defined above must be left at their
+ initial values.</p>
+
+ </div>
+
+</div>
+
+<!--TTVTT-->
+
+ <h5 id=user-interface><span class=secno>4.8.10.14 </span>User interface</h5>
+
+ <p>The <dfn id=attr-media-controls title=attr-media-controls><code>controls</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. If present, it
+ indicates that the author has not provided a scripted controller and
+ would like the user agent to provide its own set of controls.</p>
+
+ <div class=impl>
+
+ <p>If the attribute is present, or if <a href=#concept-n-noscript title=concept-n-noscript>scripting is disabled</a> for the
+ <a href=#media-element>media element</a>, then the user agent should <dfn id=expose-a-user-interface-to-the-user>expose a
+ user interface to the user</dfn>. This user interface should include
+ features to begin playback, pause playback, seek to an arbitrary
+ position in the content (if the content supports arbitrary seeking),
+ change the volume, change the display of closed captions or embedded
+ sign-language tracks, select different audio tracks or turn on audio
+ descriptions, and show the media content in manners more suitable to
+ the user (e.g. full-screen video or in an independent resizable
+ window). Other controls may also be made available.</p>
+
+ <p>If the <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, then the user agent should expose audio tracks
+ from all the <a href=#slaved-media-elements>slaved media elements</a> (although avoiding
+ duplicates if the same <a href=#media-resource>media resource</a> is being used
+ several times). If a <a href=#media-resource>media resource</a>'s audio track
+ exposed in this way has no known name, and it is the only audio
+ track for a particular <a href=#media-element>media element</a>, the user agent
+ should use the element's <code title=attr-title><a href=#the-title-attribute>title</a></code>
+ attribute, if any, as the name (or as part of the name) of that
+ track.</p>
+
+ <p>Even when the attribute is absent, however, user agents may
+ provide controls to affect playback of the media resource
+ (e.g. play, pause, seeking, and volume controls), but such features
+ should not interfere with the page's normal rendering. For example,
+ such features could be exposed in the <a href=#media-element>media element</a>'s
+ context menu.</p>
+
+ <p>Where possible (specifically, for starting, stopping, pausing,
+ and unpausing playback, for seeking, for changing the rate of
+ playback, for fast-forwarding or rewinding,
+ for listing, enabling, and disabling text tracks,
+ and for muting or changing the volume of the audio), user interface
+ features exposed by the user agent must be implemented in terms of
+ the DOM API described above, so that, e.g., all the same events
+ fire.</p>
+
+ <p>When a <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, the user agent's user interface for pausing and
+ unpausing playback, for seeking, for changing the rate of playback,
+ for fast-forwarding or rewinding, and for muting or changing the
+ volume of audio of the entire group must be implemented in terms of
+ the <code><a href=#mediacontroller>MediaController</a></code> API exposed on that <a href=#current-media-controller>current
+ media controller</a>.</p>
+
+ <p>The "play" function in the user agent's interface must set the
+ <code title="">playbackRate</code> attribute to the value of the
+ <code title="">defaultPlaybackRate</code> attribute before invoking
+ the <code title="">play()</code> method.
+ When a <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, the attributes and method with those names on
+ that <code><a href=#mediacontroller>MediaController</a></code> object must be used. Otherwise,
+ the attributes and method with those names on the <a href=#media-element>media
+ element</a> itself must be used.
+ </p>
+
+ <p>Features such as fast-forward or rewind must be implemented by
+ only changing the <code title="">playbackRate</code> attribute (and
+ not the <code title="">defaultPlaybackRate</code> attribute).
+ Again, when a <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, the attributes with those names on that
+ <code><a href=#mediacontroller>MediaController</a></code> object must be used; otherwise, the
+ attributes with those names on the <a href=#media-element>media element</a> itself
+ must be used.
+ </p>
+
+ <p>When a <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, and all the <a href=#slaved-media-elements>slaved media elements</a> of
+ that <code><a href=#mediacontroller>MediaController</a></code> are paused, the user agent should
+ unpause all the <a href=#slaved-media-elements>slaved media elements</a> when the user
+ invokes a user agent interface control for beginning playback.</p>
+
+ <p>When a <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, seeking must be implemented in terms of the <code title=dom-MediaController-currentTime><a href=#dom-mediacontroller-currenttime>currentTime</a></code> attribute
+ on that <code><a href=#mediacontroller>MediaController</a></code> object. Otherwise, the user
+ agent must directly <a href=#dom-media-seek title=dom-media-seek>seek</a> to the
+ requested position in the <a href=#media-element>media element</a>'s <a href=#media-timeline>media
+ timeline</a>.</p>
+
+ <p>When a <a href=#media-element>media element</a> has a <a href=#current-media-controller>current media
+ controller</a>, user agents may additionally provide the user
+ with controls that directly manipulate an individual <a href=#media-element>media
+ element</a> without affecting the <code><a href=#mediacontroller>MediaController</a></code>,
+ but such features are considered relatively advanced and unlikely to
+ be useful to most users.
+
+ <p>For the purposes of listing chapters in the <a href=#media-resource>media
+ resource</a>, only <a href=#text-track title="text track">text tracks</a> in
+ the <a href=#media-element>media element</a>'s <a href=#list-of-text-tracks>list of text tracks</a>
+ <a href=#text-track-showing title="text track showing">showing</a> or <a href=#text-track-showing-by-default title="text
+ track showing by default">showing by default</a> and whose
+ <a href=#text-track-kind>text track kind</a> is <code title=dom-timedtrack-kind-chapters>chapters</code> should be used.
+ Such tracks must be interpreted according to the <a href=#rules-for-constructing-the-chapter-tree-from-a-text-track>rules for
+ constructing the chapter tree from a text track</a>.</p>
+
+ <p>The <dfn id=dom-media-controls title=dom-media-controls><code>controls</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ <hr></div>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-media-volume><a href=#dom-media-volume>volume</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current playback volume, as a number in the range
+ 0.0 to 1.0, where 0.0 is the quietest and 1.0 the loudest.</p>
+
+ <p>Can be set, to change the volume.</p>
+
+ <p>Throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> if the new value is not
+ in the range 0.0 .. 1.0.</p>
+
+ </dd>
+
+ <dt><var title="">media</var> . <code title=dom-media-muted><a href=#dom-media-muted>muted</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns true if audio is muted, overriding the <code title=dom-media-volume><a href=#dom-media-volume>volume</a></code> attribute, and false if the
+ <code title=dom-media-volume><a href=#dom-media-volume>volume</a></code> attribute is being
+ honored.</p>
+
+ <p>Can be set, to change whether the audio is muted or not.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-media-volume title=dom-media-volume><code>volume</code></dfn>
+ attribute must return the playback volume of any audio portions of
+ the <a href=#media-element>media element</a>, in the range 0.0 (silent) to 1.0
+ (loudest). Initially, the volume should be 1.0, but user agents may
+ remember the last set value across sessions, on a per-site basis or
+ otherwise, so the volume may start at other values. On setting, if
+ the new value is in the range 0.0 to 1.0 inclusive, the playback
+ volume of any audio portions of the <a href=#media-element>media element</a> must
+ be set to the new value. If the new value is outside the range 0.0
+ to 1.0 inclusive, then, on setting, an <code><a href=#indexsizeerror>IndexSizeError</a></code>
+ exception must be raised instead.</p>
+
+ <p>The <dfn id=dom-media-muted title=dom-media-muted><code>muted</code></dfn>
+ attribute must return true if the audio output is muted and false
+ otherwise. Initially, the audio output should not be muted (false),
+ but user agents may remember the last set value across sessions, on
+ a per-site basis or otherwise, so the muted state may start as muted
+ (true). On setting, if the new value is true then the audio output
+ should be muted and if the new value is false it should be
+ unmuted.</p>
+
+ <p>Whenever either of the values that would be returned by the <code title=dom-media-volume><a href=#dom-media-volume>volume</a></code> and <code title=dom-media-muted><a href=#dom-media-muted>muted</a></code> attributes change, the user
+ agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-media-volumechange><a href=#event-media-volumechange>volumechange</a></code> at the
+ <a href=#media-element>media element</a>.</p>
+
+ <p>An element's <dfn id=effective-media-volume>effective media volume</dfn> is determined as
+ follows:</p>
+
+ <ol><li><p>If the user has indicated that the user agent is to override
+ the volume of the element, then the element's <a href=#effective-media-volume>effective media
+ volume</a> is the volume desired by the user. Abort these
+ steps.</li>
+
+ <li><p>If the element's audio output is muted, the element's
+ <a href=#effective-media-volume>effective media volume</a> is zero. Abort these
+ steps.</li>
+
+ <li><p>If the element has a <a href=#current-media-controller>current media controller</a>
+ and that <code><a href=#mediacontroller>MediaController</a></code> object's <a href=#media-controller-mute-override>media
+ controller mute override</a> is true, the element's
+ <a href=#effective-media-volume>effective media volume</a> is zero. Abort these
+ steps.</li>
+
+ <li><p>Let <var title="">volume</var> be the playback volume of the
+ audio portions of the <a href=#media-element>media element</a>, in range 0.0
+ (silent) to 1.0 (loudest).</li>
+
+ <li><p>If the element has a <a href=#current-media-controller>current media controller</a>,
+ multiply <var title="">volume</var> by that
+ <code><a href=#mediacontroller>MediaController</a></code> object's <a href=#media-controller-volume-multiplier>media controller volume
+ multiplier</a>.</li>
+
+ <li><p>The element's <a href=#effective-media-volume>effective media volume</a> is <var title="">volume</var>, interpreted relative to the range 0.0 to
+ 1.0, with 0.0 being silent, and 1.0 being the loudest setting,
+ values in between increasing in loudness. The range need not be
+ linear. The loudest setting may be lower than the system's loudest
+ possible setting; for example the user could have set a maximum
+ volume.</li>
+
+ </ol></div>
+
+ <p>The <dfn id=attr-media-muted title=attr-media-muted><code>muted</code></dfn>
+ attribute on <a href=#media-element title="media element">media elements</a> is a
+ <a href=#boolean-attribute>boolean attribute</a> that controls the default state of
+ the audio output of the <a href=#media-resource>media resource</a>, potentially
+ overriding user preferences.</p>
+
+ <div class=impl>
+
+ <p>When a <a href=#media-element>media element</a> is created, if it has a <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code> attribute specified, the user
+ agent must mute the <a href=#media-element>media element</a>'s audio output,
+ overriding any user preference.</p>
+
+ <p>The <dfn id=dom-media-defaultmuted title=dom-media-defaultMuted><code>defaultMuted</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code> content attribute.</p>
+
+ </div>
+
+ <p class=note>This attribute has no dynamic effect (it only
+ controls the default state of the element).</p>
+
+ <div class=example>
+
+ <p>This video (an advertisment) autoplays, but to avoid annoying
+ users, it does so without sound, and allows the user to turn the
+ sound on.</p>
+
+ <pre>&lt;video src="adverts.cgi?kind=video" controls autoplay loop muted&gt;&lt;/video&gt;</pre>
+
+ </div>
+
+
+
+
+ <h5 id=time-ranges><span class=secno>4.8.10.15 </span>Time ranges</h5>
+
+ <p>Objects implementing the <code><a href=#timeranges>TimeRanges</a></code> interface
+ represent a list of ranges (periods) of time.</p>
+
+ <pre class=idl>interface <dfn id=timeranges>TimeRanges</dfn> {
+ readonly attribute unsigned long <a href=#dom-timeranges-length title=dom-TimeRanges-length>length</a>;
+ double <a href=#dom-timeranges-start title=dom-TimeRanges-start>start</a>(unsigned long index);
+ double <a href=#dom-timeranges-end title=dom-TimeRanges-end>end</a>(unsigned long index);
+};</pre>
+
+ <dl class=domintro><dt><var title="">media</var> . <code title=dom-TimeRanges-length><a href=#dom-timeranges-length>length</a></code></dt>
+
+ <dd>
+
+ <p>Returns the number of ranges in the object.</p>
+
+ </dd>
+
+ <dt><var title="">time</var> = <var title="">media</var> . <code title=dom-TimeRanges-start><a href=#dom-timeranges-start>start</a></code>(<var title="">index</var>)</dt>
+
+ <dd>
+
+ <p>Returns the time for the start of the range with the given index.</p>
+
+ <p>Throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> if the index is out of range.</p>
+
+ </dd>
+
+ <dt><var title="">time</var> = <var title="">media</var> . <code title=dom-TimeRanges-end><a href=#dom-timeranges-end>end</a></code>(<var title="">index</var>)</dt>
+
+ <dd>
+
+ <p>Returns the time for the end of the range with the given index.</p>
+
+ <p>Throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> if the index is out of range.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-timeranges-length title=dom-TimeRanges-length><code>length</code></dfn>
+ IDL attribute must return the number of ranges represented by the object.</p>
+
+ <p>The <dfn id=dom-timeranges-start title=dom-TimeRanges-start><code>start(<var title="">index</var>)</code></dfn> method must return the position
+ of the start of the <var title="">index</var>th range represented by
+ the object, in seconds measured from the start of the timeline that
+ the object covers.</p>
+
+ <p>The <dfn id=dom-timeranges-end title=dom-TimeRanges-end><code>end(<var title="">index</var>)</code></dfn> method must return the position
+ of the end of the <var title="">index</var>th range represented by
+ the object, in seconds measured from the start of the timeline that
+ the object covers.</p>
+
+ <p>These methods must throw <code><a href=#indexsizeerror>IndexSizeError</a></code> exceptions
+ if called with an <var title="">index</var> argument greater than or
+ equal to the number of ranges represented by the object.</p>
+
+ <p>When a <code><a href=#timeranges>TimeRanges</a></code> object is said to be a
+ <dfn id=normalized-timeranges-object>normalized <code>TimeRanges</code> object</dfn>, the ranges it
+ represents must obey the following criteria:</p>
+
+ <ul><li>The start of a range must be greater than the end of all
+ earlier ranges.</li>
+
+ <li>The start of a range must be less than the end of that same
+ range.</li>
+
+ </ul><p>In other words, the ranges in such an object are ordered, don't
+ overlap, aren't empty, and don't touch (adjacent ranges are folded
+ into one bigger range).</p>
+
+ <p>Ranges in a <code><a href=#timeranges>TimeRanges</a></code> object must be inclusive.</p>
+
+ <p class=example>Thus, the end of a range would be equal to the
+ start of a following adjacent (touching but not overlapping) range.
+ Similarly, a range covering a whole timeline anchored at zero would
+ have a start equal to zero and an end equal to the duration of the
+ timeline.</p>
+
+ <p>The timelines used by the objects returned by the <code title=dom-media-buffered><a href=#dom-media-buffered>buffered</a></code>, <code title=dom-media-seekable><a href=#dom-media-seekable>seekable</a></code> and <code title=dom-media-played><a href=#dom-media-played>played</a></code> IDL attributes of <a href=#media-element title="media element">media elements</a> must be that element's
+ <a href=#media-timeline>media timeline</a>.</p>
+
+ </div>
+
+
+ <h5 id=event-definitions><span class=secno>4.8.10.16 </span>Event definitions</h5>
+
+ <pre class=idl>[Constructor(DOMString type, optional <a href=#trackeventinit>TrackEventInit</a> eventInitDict)]
+interface <dfn id=trackevent>TrackEvent</dfn> : <a href=#event>Event</a> {
+ readonly attribute object? <a href=#dom-trackevent-track title=dom-TrackEvent-track>track</a>;
+};
+
+dictionary <dfn id=trackeventinit>TrackEventInit</dfn> : <a href=#eventinit>EventInit</a> {
+ object? Track;
+};</pre>
+
+ <dl class=domintro><dt><var title="">event</var> . <code title=dom-TrackEvent-track><a href=#dom-trackevent-track>track</a></code></dt>
+
+ <dd>
+
+ <p>Returns the track object (<code><a href=#texttrack>TextTrack</a></code>,
+ <code><a href=#audiotrack>AudioTrack</a></code>, or <code><a href=#videotrack>VideoTrack</a></code>) to which the
+ event relates.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-trackevent-track title=dom-TrackEvent-track><code>track</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to null. It
+ represents the context information for the event.</p>
+
+ </div>
+
+
+
+ <h5 id=mediaevents><span class=secno>4.8.10.17 </span>Event summary</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The following events fire on <a href=#media-element title="media element">media
+ elements</a> as part of the processing model described above:</p>
+
+ <table><thead><tr><th>Event name
+ <th>Interface
+ <th>Fired when...
+ <th>Preconditions
+
+ <tbody><tr><td><dfn id=event-media-loadstart title=event-media-loadstart><code>loadstart</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The user agent begins looking for <a href=#media-data>media data</a>, as part of the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a>.
+ <td><code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> equals <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code>
+ <tr><td><dfn id=event-media-progress title=event-media-progress><code>progress</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The user agent is fetching <a href=#media-data>media data</a>.
+ <td><code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> equals <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code>
+ <tr><td><dfn id=event-media-suspend title=event-media-suspend><code>suspend</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The user agent is intentionally not currently fetching <a href=#media-data>media data</a>.
+ <td><code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> equals <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code>
+ <tr><td><dfn id=event-media-abort title=event-media-abort><code>abort</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The user agent stops fetching the <a href=#media-data>media data</a> before it is completely downloaded, but not due to an error.
+ <td><code title=dom-media-error><a href=#dom-media-error>error</a></code> is an object with the code <code title=dom-MediaError-MEDIA_ERR_ABORTED><a href=#dom-mediaerror-media_err_aborted>MEDIA_ERR_ABORTED</a></code>.
+ <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> equals either <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code> or <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code>, depending on when the download was aborted.
+ <tr><td><dfn id=event-media-error title=event-media-error><code>error</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>An error occurs while fetching the <a href=#media-data>media data</a>.
+ <td><code title=dom-media-error><a href=#dom-media-error>error</a></code> is an object with the code <code title=dom-MediaError-MEDIA_ERR_NETWORK><a href=#dom-mediaerror-media_err_network>MEDIA_ERR_NETWORK</a></code> or higher.
+ <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> equals either <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code> or <code title=dom-media-NETWORK_IDLE><a href=#dom-media-network_idle>NETWORK_IDLE</a></code>, depending on when the download was aborted.
+ <tr><td><dfn id=event-media-emptied title=event-media-emptied><code>emptied</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>A <a href=#media-element>media element</a> whose <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> was previously not in the <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code> state has just switched to that state (either because of a fatal error during load that's about to be reported, or because the <code title=dom-media-load><a href=#dom-media-load>load()</a></code> method was invoked while the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a> was already running).
+ <td><code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> is <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>; all the IDL attributes are in their initial states.
+ <tr><td><dfn id=event-media-stalled title=event-media-stalled><code>stalled</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The user agent is trying to fetch <a href=#media-data>media data</a>, but data is unexpectedly not forthcoming.
+ <td><code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> is <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code>.
+
+ <tbody><tr><td><dfn id=event-media-loadedmetadata title=event-media-loadedmetadata><code>loadedmetadata</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The user agent has just determined the duration and dimensions of the <a href=#media-resource>media resource</a>
+ and <a href=#the-text-tracks-are-ready>the text tracks are ready</a>.
+ <td><code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is newly equal to <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> or greater for the first time.
+ <tr><td><dfn id=event-media-loadeddata title=event-media-loadeddata><code>loadeddata</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The user agent can render the <a href=#media-data>media data</a> at the <a href=#current-playback-position>current playback position</a> for the first time.
+ <td><code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> newly increased to <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> or greater for the first time.
+ <tr><td><dfn id=event-media-canplay title=event-media-canplay><code>canplay</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The user agent can resume playback of the <a href=#media-data>media data</a>, but estimates that if playback were to be started now, the <a href=#media-resource>media resource</a> could not be rendered at the current playback rate up to its end without having to stop for further buffering of content.
+ <td><code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> newly increased to <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> or greater.
+ <tr><td><dfn id=event-media-canplaythrough title=event-media-canplaythrough><code>canplaythrough</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The user agent estimates that if playback were to be started now, the <a href=#media-resource>media resource</a> could be rendered at the current playback rate all the way to its end without having to stop for further buffering.
+ <td><code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is newly equal to <code title=dom-media-HAVE_ENOUGH_DATA><a href=#dom-media-have_enough_data>HAVE_ENOUGH_DATA</a></code>.
+ <tr><td><dfn id=event-media-playing title=event-media-playing><code>playing</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>Playback is ready to start after having been paused or delayed due to lack of <a href=#media-data>media data</a>.
+ <td><code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is newly equal to or greater than <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> and <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> is false, or <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> is newly false and <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is equal to or greater than <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code>. Even if this event fires, the element might still not be <a href=#potentially-playing>potentially playing</a>, e.g. if
+ the element is <a href=#blocked-on-its-media-controller>blocked on its media controller</a> (e.g. because the <a href=#current-media-controller>current media controller</a> is paused, or another <a href=#slaved-media-elements title="slaved media elements">slaved media element</a> is stalled somehow, or because the <a href=#media-resource>media resource</a> has no data corresponding to the <a href=#media-controller-position>media controller position</a>), or
+ the element is <a href=#paused-for-user-interaction>paused for user interaction</a>.
+ <tr><td><dfn id=event-media-waiting title=event-media-waiting><code>waiting</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>Playback has stopped because the next frame is not available, but the user agent expects that frame to become available in due course.
+ <td><code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is equal to or less than <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code>, and <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> is false. Either <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> is true, or the <a href=#current-playback-position>current playback position</a> is not contained in any of the ranges in <code title=dom-media-buffered><a href=#dom-media-buffered>buffered</a></code>. It is possible for playback to stop for other reasons without <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> being false, but those reasons do not fire this event (and when those situations resolve, a separate <code title=event-media-playing><a href=#event-media-playing>playing</a></code> event is not fired either): e.g.
+ the element is newly <a href=#blocked-on-its-media-controller>blocked on its media controller</a>, or
+ <a href=#ended-playback title="ended playback">playback ended</a>, or playback <a href=#stopped-due-to-errors>stopped due to errors</a>, or the element has <a href=#paused-for-user-interaction>paused for user interaction</a>.
+ <tbody><tr><td><dfn id=event-media-seeking title=event-media-seeking><code>seeking</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> IDL attribute changed to true.
+ <td>
+ <tr><td><dfn id=event-media-seeked title=event-media-seeked><code>seeked</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> IDL attribute changed to false.
+ <td>
+ <tr><td><dfn id=event-media-ended title=event-media-ended><code>ended</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>Playback has stopped because the end of the <a href=#media-resource>media resource</a> was reached.
+ <td><code title=dom-media-currentTime><a href=#dom-media-currenttime>currentTime</a></code> equals the end of the <a href=#media-resource>media resource</a>; <code title=dom-media-ended><a href=#dom-media-ended>ended</a></code> is true.
+
+ <tbody><tr><td><dfn id=event-media-durationchange title=event-media-durationchange><code>durationchange</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <code title=dom-media-duration><a href=#dom-media-duration>duration</a></code> attribute has just been updated.
+ <td>
+ <tr><td><dfn id=event-media-timeupdate title=event-media-timeupdate><code>timeupdate</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <a href=#current-playback-position>current playback position</a> changed as part of normal playback or in an especially interesting way, for example discontinuously.
+ <td>
+ <tr><td><dfn id=event-media-play title=event-media-play><code>play</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The element is no longer paused. Fired after the <code title=dom-media-play><a href=#dom-media-play>play()</a></code> method has returned, or when the <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code> attribute has caused playback to begin.
+ <td><code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> is newly false.
+ <tr><td><dfn id=event-media-pause title=event-media-pause><code>pause</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The element has been paused. Fired after the <code title=dom-media-pause><a href=#dom-media-pause>pause()</a></code> method has returned.
+ <td><code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> is newly true.
+ <tr><td><dfn id=event-media-ratechange title=event-media-ratechange><code>ratechange</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>Either the <code title=dom-media-defaultPlaybackRate><a href=#dom-media-defaultplaybackrate>defaultPlaybackRate</a></code> or the <code title=dom-media-playbackRate><a href=#dom-media-playbackrate>playbackRate</a></code> attribute has just been updated.
+ <td>
+ <tr><td><dfn id=event-media-volumechange title=event-media-volumechange><code>volumechange</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>Either the <code title=dom-media-volume><a href=#dom-media-volume>volume</a></code> attribute or the <code title=dom-media-muted><a href=#dom-media-muted>muted</a></code> attribute has changed. Fired after the relevant attribute's setter has returned.
+ <td>
+ </table><p>The following events fire on <code><a href=#mediacontroller>MediaController</a></code> objects:</p>
+
+ <table><thead><tr><th>Event name
+ <th>Interface
+ <th>Fired when...
+
+ <tbody><tr><td><dfn id=event-mediacontroller-emptied title=event-MediaController-emptied><code>emptied</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>All the <a href=#slaved-media-elements>slaved media elements</a> newly have <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> set to <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code> or greater, or there are no longer any <a href=#slaved-media-elements>slaved media elements</a>.
+ <tr><td><dfn id=event-mediacontroller-loadedmetadata title=event-MediaController-loadedmetadata><code>loadedmetadata</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>All the <a href=#slaved-media-elements>slaved media elements</a> newly have <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> set to <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> or greater.
+ <tr><td><dfn id=event-mediacontroller-loadeddata title=event-MediaController-loadeddata><code>loadeddata</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>All the <a href=#slaved-media-elements>slaved media elements</a> newly have <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> set to <code title=dom-media-HAVE_CURRENT_DATA><a href=#dom-media-have_current_data>HAVE_CURRENT_DATA</a></code> or greater.
+ <tr><td><dfn id=event-mediacontroller-canplay title=event-MediaController-canplay><code>canplay</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>All the <a href=#slaved-media-elements>slaved media elements</a> newly have <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> set to <code title=dom-media-HAVE_FUTURE_DATA><a href=#dom-media-have_future_data>HAVE_FUTURE_DATA</a></code> or greater.
+ <tr><td><dfn id=event-mediacontroller-canplaythrough title=event-MediaController-canplaythrough><code>canplaythrough</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>All the <a href=#slaved-media-elements>slaved media elements</a> newly have <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> set to <code title=dom-media-HAVE_ENOUGH_DATA><a href=#dom-media-have_enough_data>HAVE_ENOUGH_DATA</a></code> or greater.
+ <tr><td><dfn id=event-mediacontroller-playing title=event-MediaController-playing><code>playing</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <code><a href=#mediacontroller>MediaController</a></code> is no longer a <a href=#blocked-media-controller>blocked media controller</a>.
+ <tr><td><dfn id=event-mediacontroller-ended title=event-MediaController-ended><code>ended</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <code><a href=#mediacontroller>MediaController</a></code> has reached the end of all the <a href=#slaved-media-elements>slaved media elements</a>.
+ <tr><td><dfn id=event-mediacontroller-waiting title=event-MediaController-waiting><code>waiting</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <code><a href=#mediacontroller>MediaController</a></code> is now a <a href=#blocked-media-controller>blocked media controller</a>.
+ <tr><td><dfn id=event-mediacontcoller-ended title=event-MediaContcoller-ended><code>ended</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>All the <a href=#slaved-media-elements>slaved media elements</a> have newly <a href=#ended-playback>ended playback</a>.
+
+ <tbody><tr><td><dfn id=event-mediacontroller-durationchange title=event-MediaController-durationchange><code>durationchange</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <code title=dom-MediaController-duration><a href=#dom-mediacontroller-duration>duration</a></code> attribute has just been updated.
+ <tr><td><dfn id=event-mediacontroller-timeupdate title=event-MediaController-timeupdate><code>timeupdate</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <a href=#media-controller-position>media controller position</a> changed.
+ <tr><td><dfn id=event-mediacontroller-play title=event-MediaController-play><code>play</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <code title=dom-MediaController-paused><a href=#dom-mediacontroller-paused>paused</a></code> attribute is newly false.
+ <tr><td><dfn id=event-mediacontroller-pause title=event-MediaController-pause><code>pause</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <code title=dom-MediaController-paused><a href=#dom-mediacontroller-paused>paused</a></code> attribute is newly true.
+ <tr><td><dfn id=event-mediacontroller-ratechange title=event-MediaController-ratechange><code>ratechange</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>Either the <code title=dom-MediaController-defaultPlaybackRate><a href=#dom-mediacontroller-defaultplaybackrate>defaultPlaybackRate</a></code> attribute or the <code title=dom-MediaController-playbackRate><a href=#dom-mediacontroller-playbackrate>playbackRate</a></code> attribute has just been updated.
+ <tr><td><dfn id=event-mediacontroller-volumechange title=event-MediaController-volumechange><code>volumechange</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>Either the <code title=dom-MediaController-volume><a href=#dom-mediacontroller-volume>volume</a></code> attribute or the <code title=dom-MediaController-muted><a href=#dom-mediacontroller-muted>muted</a></code> attribute has just been updated.
+ </table><div class=impl>
+
+ <h5 id=security-and-privacy-considerations><span class=secno>4.8.10.18 </span>Security and privacy considerations</h5>
+
+ <p>The main security and privacy implications of the
+ <code><a href=#the-video-element>video</a></code> and <code><a href=#the-audio-element>audio</a></code> elements come from the
+ ability to embed media cross-origin. There are two directions that
+ threats can flow: from hostile content to a victim page, and from a
+ hostile page to victim content.</p>
+
+ <hr><p>If a victim page embeds hostile content, the threat is that the
+ content might contain scripted code that attempts to interact with
+ the <code><a href=#document>Document</a></code> that embeds the content. To avoid this,
+ user agents must ensure that there is no access from the content to
+ the embedding page. In the case of media content that uses DOM
+ concepts, the embedded content must be treated as if it was in its
+ own unrelated <a href=#top-level-browsing-context>top-level browsing context</a>.</p>
+
+ <p class=example>For instance, if an SVG animation was embedded in
+ a <code><a href=#the-video-element>video</a></code> element, the user agent would not give it
+ access to the DOM of the outer page. From the perspective of scripts
+ in the SVG resource, the SVG file would appear to be in a lone
+ top-level browsing context with no parent.</p>
+
+ <hr><p>If a hostile page embeds victim content, the threat is that the
+ embedding page could obtain information from the content that it
+ would not otherwise have access to. The API does expose some
+ information: the existence of the media, its type, its duration, its
+ size, and the performance characteristics of its host. Such
+ information is already potentially problematic, but in practice the
+ same information can more or less be obtained using the
+ <code><a href=#the-img-element>img</a></code> element, and so it has been deemed acceptable.</p>
+
+ <p>However, significantly more sensitive information could be
+ obtained if the user agent further exposes metadata within the
+ content such as subtitles or chapter titles. Such information is
+ therefore only exposed if the video resource passes a CORS
+ <a href=#resource-sharing-check>resource sharing check</a>. The <code title=attr-media-crossorigin><a href=#attr-media-crossorigin>crossorigin</a></code> attribute allows
+ authors to control how this check is performed. <a href=#refsCORS>[CORS]</a></p>
+
+ <p class=example>Without this restriction, an attacker could trick
+ a user running within a corporate network into visiting a site that
+ attempts to load a video from a previously leaked location on the
+ corporation's intranet. If such a video included confidential plans
+ for a new product, then being able to read the subtitles would
+ present a serious confidentiality breach.</p>
+
+ </div>
+
+
+ <h5 id=best-practices-for-authors-using-media-elements><span class=secno>4.8.10.19 </span>Best practices for authors using media elements</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Playing audio and video resources on small devices such as
+ set-top boxes or mobile phones is often constrained by limited
+ hardware resources in the device. For example, a device might only
+ support three simultaneous videos. For this reason, it is a good
+ practice to release resources held by <a href=#media-element title="media
+ element">media elements</a> when they are done playing, either by
+ being very careful about removing all references to the element and
+ allowing it to be garbage collected, or, even better, by removing
+ the element's <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute and
+ any <code><a href=#the-source-element>source</a></code> element descendants, and invoking the
+ element's <code title=dom-media-load><a href=#dom-media-load>load()</a></code> method.</p>
+
+ <p>Similarly, when the playback rate is not exactly 1.0, hardware,
+ software, or format limitations can cause video frames to be dropped
+ and audio to be choppy or muted.</p>
+
+
+ <div class=impl>
+
+ <h5 id=best-practices-for-implementors-of-media-elements><span class=secno>4.8.10.20 </span>Best practices for implementors of media elements</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>How accurately various aspects of the <a href=#media-element>media element</a>
+ API are implemented is considered a quality-of-implementation issue.</p>
+
+ <p>For example, when implementing the <code title=attr-media-buffered>buffered</code> attribute, how precise
+ an implementation reports the ranges that have been buffered depends
+ on how carefully the user agent inspects the data. Since the API
+ reports ranges as times, but the data is obtained in byte streams, a
+ user agent receiving a variable-bit-rate stream might only be able
+ to determine precise times by actually decoding all of the data.
+ User agents aren't required to do this, however; they can instead
+ return estimates (e.g. based on the average bit rate seen so far)
+ which get revised as more information becomes available.</p>
+
+ <p>As a general rule, user agents are urged to be conservative
+ rather than optimistic. For example, it would be bad to report that
+ everything had been buffered when it had not.</p>
+
+ <p>Another quality-of-implementation issue would be playing a video
+ backwards when the codec is designed only for forward playback (e.g.
+ there aren't many key frames, and they are far apart, and the
+ intervening frames only have deltas from the previous frame). User
+ agents could do a poor job, e.g. only showing key frames; however,
+ better implementations would do more work and thus do a better job,
+ e.g. actually decoding parts of the video forwards, storing the
+ complete frames, and then playing the frames backwards.</p>
+
+ <p>Similarly, while implementations are allowed to drop buffered
+ data at any time (there is no requirement that a user agent keep all
+ the media data obtained for the lifetime of the media element), it
+ is again a quality of implementation issue: user agents with
+ sufficient resources to keep all the data around are encouraged to
+ do so, as this allows for a better user experience. For example, if
+ the user is watching a live stream, a user agent could allow the
+ user only to view the live video; however, a better user agent would
+ buffer everything and allow the user to seek through the earlier
+ material, pause it, play it forwards and backwards, etc.</p>
+
+ <p>When multiple tracks are synchronised with a
+ <code><a href=#mediacontroller>MediaController</a></code>, it is possible for scripts to add and
+ remove media elements from the <code><a href=#mediacontroller>MediaController</a></code>'s list
+ of <a href=#slaved-media-elements>slaved media elements</a>, even while these tracks are
+ playing. How smoothly the media plays back in such situations is
+ another quality-of-implementation issue.</p>
+
+ <hr><p>When a <a href=#media-element>media element</a> that is paused is <a href=#remove-an-element-from-a-document title="remove an element from a document">removed from a
+ document</a> and not reinserted before the next time the
+ <a href=#event-loop>event loop</a> spins, implementations that are resource
+ constrained are encouraged to take that opportunity to release all
+ hardware resources (like video planes, networking resources, and
+ data buffers) used by the <a href=#media-element>media element</a>. (User agents
+ still have to keep track of the playback position and so forth,
+ though, in case playback is later restarted.)</p>
+
+ </div>
+
+
+
+
+ <h4 id=the-canvas-element><span class=secno>4.8.11 </span>The <dfn id=canvas><code>canvas</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#embedded-content>Embedded content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#embedded-content>embedded content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#transparent>Transparent</a>.</dd>
+ <dd><a href=#transparent>Transparent</a><!--
+--><!--FORK--><!--
+-->, but with no <a href=#interactive-content>interactive content</a> descendants except for <code><a href=#the-a-element>a</a></code> elements, <code><a href=#the-button-element>button</a></code> elements, <code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute are in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> or <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> states, and <code><a href=#the-input-element>input</a></code> elements that are <a href=#concept-button title=concept-button>buttons</a><!--
+--><!--FORK--><!--
+-->.</dd> <!-- and maybe <select>, I guess? I've left it in for now, since I guess authors might make accessible selects if they're simple enough, and it's not obvious how to distinguish the simple ones from the complex ones... -->
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-canvas-width><a href=#attr-canvas-width>width</a></code></dd>
+ <dd><code title=attr-canvas-height><a href=#attr-canvas-height>height</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmlcanvaselement>HTMLCanvasElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute unsigned long <a href=#dom-canvas-width title=dom-canvas-width>width</a>;
+ attribute unsigned long <a href=#dom-canvas-height title=dom-canvas-height>height</a>;
+
+ DOMString <a href=#dom-canvas-todataurl title=dom-canvas-toDataURL>toDataURL</a>(optional DOMString type, any... args);
+ void <a href=#dom-canvas-toblob title=dom-canvas-toBlob>toBlob</a>(<span>FileCallback</span>? callback, optional DOMString type, any... args);
+
+ object? <a href=#dom-canvas-getcontext title=dom-canvas-getContext>getContext</a>(DOMString contextId, any... args);
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-canvas-element>canvas</a></code> element provides scripts with a
+ resolution-dependent bitmap canvas, which can be used for rendering
+ graphs, game graphics, or other visual images on the fly.</p>
+
+ <p>Authors should not use the <code><a href=#the-canvas-element>canvas</a></code> element in a
+ document when a more suitable element is available. For example, it
+ is inappropriate to use a <code><a href=#the-canvas-element>canvas</a></code> element to render a
+ page heading: if the desired presentation of the heading is
+ graphically intense, it should be marked up using appropriate
+ elements (typically <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>) and then styled using CSS and
+ supporting technologies such as XBL.</p>
+
+ <p>When authors use the <code><a href=#the-canvas-element>canvas</a></code> element, they must also
+ provide content that, when presented to the user, conveys
+ essentially the same function or purpose as the bitmap canvas. This
+ content may be placed as content of the <code><a href=#the-canvas-element>canvas</a></code>
+ element. The contents of the <code><a href=#the-canvas-element>canvas</a></code> element, if any,
+ are the element's <a href=#fallback-content>fallback content</a>.</p>
+
+ <p>In interactive visual media, if <a href=#concept-n-script title=concept-n-script>scripting is enabled</a> for the
+ <code><a href=#the-canvas-element>canvas</a></code> element, and if support for <code><a href=#the-canvas-element>canvas</a></code>
+ elements has been enabled, the <code><a href=#the-canvas-element>canvas</a></code> element
+ <a href=#represents>represents</a> <a href=#embedded-content>embedded content</a> consisting of
+ a dynamically created image.</p>
+
+ <p>In non-interactive, static, visual media, if the
+ <code><a href=#the-canvas-element>canvas</a></code> element has been previously painted on (e.g. if
+ the page was viewed in an interactive visual medium and is now being
+ printed, or if some script that ran during the page layout process
+ painted on the element), then the <code><a href=#the-canvas-element>canvas</a></code> element
+ <a href=#represents>represents</a> <a href=#embedded-content>embedded content</a> with the
+ current image and size. Otherwise, the element represents its
+ <a href=#fallback-content>fallback content</a> instead.</p>
+
+ <p>In non-visual media, and in visual media if <a href=#concept-n-noscript title=concept-n-noscript>scripting is disabled</a> for the
+ <code><a href=#the-canvas-element>canvas</a></code> element or if support for <code><a href=#the-canvas-element>canvas</a></code>
+ elements has been disabled, the <code><a href=#the-canvas-element>canvas</a></code> element
+ <a href=#represents>represents</a> its <a href=#fallback-content>fallback content</a>
+ instead.</p>
+
+ <!-- CANVAS-FOCUS-FALLBACK -->
+ <p>When a <code><a href=#the-canvas-element>canvas</a></code> element <a href=#represents>represents</a>
+ <a href=#embedded-content>embedded content</a>, the user can still focus descendants
+ of the <code><a href=#the-canvas-element>canvas</a></code> element (in the <a href=#fallback-content>fallback
+ content</a>). When an element is focused, it is the target of
+ keyboard interaction events (even though the element itself is not
+ visible). This allows authors to make an interactive canvas
+ keyboard-accessible: authors should have a one-to-one mapping of
+ interactive regions to focusable elements in the <a href=#fallback-content>fallback
+ content</a>. (Focus has no effect on mouse interaction
+ events.) <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
+
+ <p>The <code><a href=#the-canvas-element>canvas</a></code> element has two attributes to control the
+ size of the coordinate space: <dfn id=attr-canvas-width title=attr-canvas-width><code>width</code></dfn> and <dfn id=attr-canvas-height title=attr-canvas-height><code>height</code></dfn>. These
+ attributes, when specified, must have values that are <a href=#valid-non-negative-integer title="valid non-negative integer">valid non-negative
+ integers</a>. <span class=impl>The <a href=#rules-for-parsing-non-negative-integers>rules for parsing
+ non-negative integers</a> must be used to obtain their numeric
+ values. If an attribute is missing, or if parsing its value returns
+ an error, then the default value must be used instead.</span> The
+ <code title=attr-canvas-width><a href=#attr-canvas-width>width</a></code> attribute defaults to
+ 300, and the <code title=attr-canvas-height><a href=#attr-canvas-height>height</a></code>
+ attribute defaults to 150.</p>
+
+ <p>The intrinsic dimensions of the <code><a href=#the-canvas-element>canvas</a></code> element equal
+ the size of the coordinate space, with the numbers interpreted in
+ CSS pixels. However, the element can be sized arbitrarily by a
+ style sheet. During rendering, the image is scaled to fit this layout
+ size.</p>
+
+ <div class=impl>
+
+ <p>The size of the coordinate space does not necessarily represent
+ the size of the actual bitmap that the user agent will use
+ internally or during rendering. On high-definition displays, for
+ instance, the user agent may internally use a bitmap with two device
+ pixels per unit in the coordinate space, so that the rendering
+ remains at high quality throughout.</p>
+
+ <p>When the <code><a href=#the-canvas-element>canvas</a></code> element is created, and subsequently
+ whenever the <code title=attr-canvas-width><a href=#attr-canvas-width>width</a></code> and <code title=attr-canvas-height><a href=#attr-canvas-height>height</a></code> attributes are set (whether
+ to a new value or to the previous value), the bitmap and any
+ associated contexts must be cleared back to their initial state and
+ reinitialized with the newly specified coordinate space
+ dimensions.</p>
+
+ <p>When the canvas is initialized, its bitmap must be cleared to
+ transparent black.</p>
+
+ <p>When a <code><a href=#the-canvas-element>canvas</a></code> element does not represent its
+ <a href=#fallback-content>fallback content</a>, it <a href=#provides-a-paint-source>provides a paint
+ source</a> whose width is the element's intrinsic width, whose
+ height is the element's intrinsic height, and whose appearance is
+ the element's bitmap.</p>
+
+ <p>The <dfn id=dom-canvas-width title=dom-canvas-width><code>width</code></dfn> and
+ <dfn id=dom-canvas-height title=dom-canvas-height><code>height</code></dfn> IDL
+ attributes must <a href=#reflect>reflect</a> the respective content
+ attributes of the same name, with the same defaults.</p>
+
+ </div>
+
+ <div class=example>
+ <p>Only one square appears to be drawn in the following example:</p>
+ <pre> // canvas is a reference to a &lt;canvas&gt; element
+ var context = canvas.getContext('2d');
+ context.fillRect(0,0,50,50);
+ canvas.setAttribute('width', '300'); // clears the canvas
+ context.fillRect(0,100,50,50);
+ canvas.width = canvas.width; // clears the canvas
+ context.fillRect(100,0,50,50); // only this square remains</pre>
+ </div>
+
+ <hr><dl class=domintro><dt><var title="">context</var> = <var title="">canvas</var> . <code title=dom-canvas-getContext><a href=#dom-canvas-getcontext>getContext</a></code>(<var title="">contextId</var> [, ... ])</dt>
+
+ <dd>
+
+ <p>Returns an object that exposes an API for drawing on the
+ canvas. The first argument specifies the desired API. Subsequent
+ arguments are handled by that API.</p>
+
+<!--2DCONTEXT-->
+
+ <p>This specification defines the "<code title=canvas-context-2d><a href=#canvas-context-2d>2d</a></code>" context below. There is also
+ a specification that defines a "<code title=canvas-context-webgl>webgl</code>" context. <a href=#refsWEBGL>[WEBGL]</a></p>
+
+<!--2DCONTEXT-->
+
+ <p>The list of defined contexts is given on the <a href=http://wiki.whatwg.org/wiki/CanvasContexts>WHATWG Wiki
+ CanvasContexts page</a>. <a href=#refsWHATWGWIKI>[WHATWGWIKI]</a>
+
+ <p>Returns null if the given context ID is not supported or if the
+ canvas has already been initialized with some other (incompatible)
+ context type (e.g. trying to get a "<code title=canvas-context-2d><a href=#canvas-context-2d>2d</a></code>" context after getting a
+ "<code title=canvas-context-webgl>webgl</code>" context).</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>A <code><a href=#the-canvas-element>canvas</a></code> element can have a <dfn id=primary-context>primary
+ context</dfn>, which is the first context to have been obtained for
+ that element. When created, a <code><a href=#the-canvas-element>canvas</a></code> element must not
+ have a <a href=#primary-context>primary context</a>.</p>
+
+
+ <p>The <dfn id=dom-canvas-getcontext title=dom-canvas-getContext><code>getContext(<var title="">contextId</var>, <var title="">args...</var>)</code></dfn>
+ method of the <code><a href=#the-canvas-element>canvas</a></code> element, when invoked, must run
+ the following steps:</p>
+
+ <ol><li><p>Let <var title="">contextId</var> be the first argument to
+ the method.</li>
+
+ <li>
+
+ <p>If <var title="">contextId</var> is not the name of a context
+ supported by the user agent, return null and abort these
+ steps.</p>
+
+ <p class=note>An example of this would be a user agent that
+ theoretically supports the "<code title=canvas-context-webgl>webgl</code>" 3D context, in the case
+ where the platform does not have hardware support for OpenGL and
+ the user agent does not have a software OpenGL implementation.
+ Despite the user agent recognising the "<code title=canvas-context-webgl>webgl</code>" name, it would return
+ null at this step because that context is not, in practice,
+ supported at the time of the call.</p>
+
+ </li>
+
+ <li><p>If the element has a <a href=#primary-context>primary context</a> and that
+ context's entry in the <a href=http://wiki.whatwg.org/wiki/CanvasContexts>WHATWG Wiki
+ CanvasContexts page</a> does not list <var title="">contextId</var>
+ as a context with which it is compatible, return null and abort
+ these steps. <a href=#refsWHATWGWIKI>[WHATWGWIKI]</a></li>
+
+ <li><p>If the element does not have a <a href=#primary-context>primary context</a>,
+ let the element's <a href=#primary-context>primary context</a> be <var title="">contextId</var>.</li>
+
+ <li><p>If the <code title=dom-canvas-getContext><a href=#dom-canvas-getcontext>getContext()</a></code> method has
+ already been invoked on this element for the same <var title="">contextId</var>, return the same object as was returned
+ that time, and abort these steps. The additional arguments are
+ ignored.</li>
+
+ <li><p><dfn id=getcontext-return title=getContext-return>Return a new object for <var title="">contextId</var></dfn>, as defined by the specification
+ given for <var title="">contextId</var>'s entry in the <a href=http://wiki.whatwg.org/wiki/CanvasContexts>WHATWG Wiki
+ CanvasContexts page</a>. <a href=#refsWHATWGWIKI>[WHATWGWIKI]</a></li>
+
+ </ol><p>New context types may be registered in the <a href=http://wiki.whatwg.org/wiki/CanvasContexts>WHATWG Wiki
+ CanvasContexts page</a>. <a href=#refsWHATWGWIKI>[WHATWGWIKI]</a></p>
+
+ <p>Anyone is free to edit the WHATWG Wiki CanvasContexts page at any
+ time to add a new context type. These new context types must be
+ specified with the following information:</p>
+
+ <dl><dt>Keyword</dt>
+
+ <dd><p>The value of <var title="">contextID</var> that will return
+ the object for the new API.</dd>
+
+
+ <dt>Specification</dt>
+
+ <dd><p>A link to a formal specification of the context type's
+ API. It could be another page on the Wiki, or a link to an external
+ page. If the type does not have a formal specification, an informal
+ description can be substituted until such time as a formal
+ specification is available.</dd>
+
+
+ <dt>Compatible with</dt>
+
+ <dd><p>The list of context types that are compatible with this one
+ (i.e. that operate on the same underlying bitmap). This list must
+ be transitive and symmetric; if one context type is defined as
+ compatible with another, then all types it is compatible with must
+ be compatible with all types the other is compatible with.</dd>
+
+ </dl><p>Vendors may also define experimental contexts using the syntax
+ <code><var title="">vendorname</var>-<var title="">context</var></code>, for example,
+ <code>moz-3d</code>. Such contexts should be registered in the
+ WHATWG Wiki CanvasContexts page.</p>
+
+ </div>
+
+ <hr><dl class=domintro><dt><var title="">url</var> = <var title="">canvas</var> . <code title=dom-canvas-toDataURL><a href=#dom-canvas-todataurl>toDataURL</a></code>( [ <var title="">type</var>, ... ])</dt>
+
+ <dd>
+
+ <p>Returns a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a> for the image in the canvas.</p>
+
+ <p>The first argument, if provided, controls the type of the image
+ to be returned (e.g. PNG or JPEG). The default is <code title="">image/png</code>; that type is also used if the given
+ type isn't supported. The other arguments are specific to the
+ type, and control the way that the image is generated, as given in
+ the table below.</p>
+
+ <p>When trying to use types other than "<code>image/png</code>",
+ authors can check if the image was really returned in the
+ requested format by checking to see if the returned string starts
+ with one of the exact strings "<code title="">data:image/png,</code>" or "<code title="">data:image/png;</code>". If it does, the image is PNG,
+ and thus the requested type was not supported. (The one exception
+ to this is if the canvas has either no height or no width, in
+ which case the result might simply be "<code title="">data:,</code>".)</p>
+
+ </dd>
+
+ <dt><var title="">canvas</var> . <code title=dom-canvas-toBlob><a href=#dom-canvas-toblob>toBlob</a></code>(<var title="">callback</var> [, <var title="">type</var>, ... ])</dt>
+
+ <dd>
+
+ <p>Creates a <code><a href=#blob>Blob</a></code> object representing a file
+ containing the image in the canvas, and invokes a callback with a
+ handle to that object.</p>
+
+ <p>The second argument, if provided, controls the type of the
+ image to be returned (e.g. PNG or JPEG). The default is <code title="">image/png</code>; that type is also used if the given
+ type isn't supported. The other arguments are specific to the
+ type, and control the way that the image is generated, as given in
+ the table below.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-canvas-todataurl title=dom-canvas-toDataURL><code>toDataURL()</code></dfn> method
+ must run the following steps:</p>
+
+ <ol><li><p>If the canvas has no pixels (i.e. either its horizontal
+ dimension or its vertical dimension is zero) then return the string
+ "<code title="">data:,</code>" and abort these steps. (This is the
+ shortest <a href=#data-protocol title="data protocol"><code title="">data:</code>
+ URL</a>; it represents the empty string in a <code title="">text/plain</code> resource.)</li>
+
+ <li><p>Let <var title="">file</var> be <a href=#a-serialization-of-the-image-as-a-file>a serialization of the
+ image as a file</a>, using the method's arguments (if any) as
+ the <var title="">arguments</var>.</li>
+
+ <li><p>Return a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a> representing <var title="">file</var>. <a href=#refsRFC2397>[RFC2397]</a></p>
+
+ <!-- should we explicitly require the URL to be base64-encoded and
+ not have any parameters, to ensure the same exact URL is generated
+ in each browser? -->
+
+ </ol><p>The <dfn id=dom-canvas-toblob title=dom-canvas-toBlob><code>toBlob()</code></dfn> method
+ must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">callback</var> be the first
+ argument.</li>
+
+ <li><p>Let <var title="">arguments</var> be the second and
+ subsequent arguments to the method, if any.</li>
+
+ <li><p>Let <var title="">file</var> be <a href=#a-serialization-of-the-image-as-a-file>a serialization of the
+ image as a file</a>, using <var title="">arguments</var>.</li>
+
+ <li><p>Return, but continue running these steps
+ asynchronously.</li>
+
+ <li><p>If <var title="">callback</var> is null, abort these
+ steps.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to invoke the
+ <code>FileCallback</code> <var title="">callback</var> with a
+ <code><a href=#blob>Blob</a></code> object representing <var title="">file</var> as
+ its argument. The <a href=#task-source>task source</a> for this task is the
+ <dfn id=canvas-blob-serialization-task-source>canvas blob serialization task source</dfn>. <a href=#refsFILESYSTEMAPI>[FILESYSTEMAPI]</a> <a href=#refsFILEAPI>[FILEAPI]</a> </li>
+
+ </ol><p>When a user agent is to create <dfn id=a-serialization-of-the-image-as-a-file>a serialization of the image
+ as a file</dfn>, optionally with some given <var title="">arguments</var>, it must create an image file in the format
+ given by the first value of <var title="">arguments</var>, or, if
+ there are no <var title="">arguments</var>, in the PNG format. <a href=#refsPNG>[PNG]</a></p>
+
+ <p>If <var title="">arguments</var> is not empty, the first value
+ must be interpreted as a <a href=#mime-type title="MIME type">MIME type</a>
+ giving the format to use. If the type has any parameters, it must be
+ treated as not supported.</p>
+
+ <p class=example>For example, the value "<code>image/png</code>" would
+ mean to generate a PNG image, the value "<code>image/jpeg</code>"
+ would mean to generate a JPEG image, and the value
+ "<code>image/svg+xml</code>" would mean to generate an SVG image
+ (which would probably require that the implementation actually keep
+ enough information to reliably render an SVG image from the canvas).</p>
+
+ <p>User agents must support PNG ("<code>image/png</code>"). User
+ agents may support other types. If the user agent does not support
+ the requested type, it must create the file using the PNG format. <a href=#refsPNG>[PNG]</a></p>
+
+ <p>User agents must <a href=#converted-to-ascii-lowercase title="converted to ASCII
+ lowercase">convert the provided type to ASCII lowercase</a>
+ before establishing if they support that type.</p>
+
+ <p>For image types that do not support an alpha channel, the
+ serialized image must be the canvas image composited onto a solid
+ black background using the source-over operator.</p>
+
+ <p>If the first argument in <var title="">arguments</var> gives a
+ type corresponding to one of the types given in the first column of
+ the following table, and the user agent supports that type, then the
+ subsequent arguments, if any, must be treated as described in the
+ second cell of that row.</p>
+
+ </div>
+
+ <table><thead><tr><th> Type <th> Other arguments <th> Reference
+ <tbody><tr><td> <code>image/jpeg</code>
+ <td> The second argument<span class=impl>, if it</span> is a
+ number in the range 0.0 to 1.0 inclusive<span class=impl>, must
+ be</span> treated as the desired quality level. <span class=impl>If it is not a number or is outside that range, the
+ user agent must use its default value, as if the argument had
+ been omitted.</span>
+ <td> <a href=#refsJPEG>[JPEG]</a>
+ </table><div class=impl>
+
+ <p>For the purposes of these rules, an argument is considered to be
+ a number if it is converted to an IDL double value by the rules for
+ handling arguments of type <code title="">any</code> in the Web IDL
+ specification. <a href=#refsWEBIDL>[WEBIDL]</a></p>
+
+ <p>Other arguments must be ignored and must not cause the user agent
+ to throw an exception. A future version of this specification will
+ probably define other parameters to be passed to these methods to
+ allow authors to more carefully control compression settings, image
+ metadata, etc.</p>
+
+ </div>
+
+ <!--2DCONTEXT-->
+
+ <div data-component="HTML Canvas 2D Context (editor: Ian Hickson)">
+
+ <h5 id=2dcontext><span class=secno>4.8.11.1 </span>The 2D context</h5>
+
+ <!-- v2: we're on v4.1. suggestions for next version are marked v5, v6. -->
+
+
+
+ <p>This specification defines the <dfn id=canvas-context-2d title=canvas-context-2d><code>2d</code></dfn> context type, whose
+ API is implemented using the <code><a href=#canvasrenderingcontext2d>CanvasRenderingContext2D</a></code>
+ interface.</p>
+
+ <div class=impl>
+
+ <p>When the <code title=dom-canvas-getContext><a href=#dom-canvas-getcontext>getContext()</a></code>
+ method of a <code><a href=#the-canvas-element>canvas</a></code> element is to <a href=#getcontext-return title=getContext-return>return a new object for the <var title="">contextId</var></a> <code title=canvas-context-2d><a href=#canvas-context-2d>2d</a></code>, the user agent must return a
+ new <code><a href=#canvasrenderingcontext2d>CanvasRenderingContext2D</a></code> object. Any additional
+ arguments are ignored.</p>
+
+ </div>
+
+ <p>The 2D context represents a flat Cartesian surface whose origin
+ (0,0) is at the top left corner, with the coordinate space having
+ <var title="">x</var> values increasing when going right, and <var title="">y</var> values increasing when going down.</p>
+
+ <pre class=idl>interface <dfn id=canvasrenderingcontext2d>CanvasRenderingContext2D</dfn> {
+
+ // back-reference to the canvas
+ readonly attribute <a href=#htmlcanvaselement>HTMLCanvasElement</a> <a href=#dom-context-2d-canvas title=dom-context-2d-canvas>canvas</a>;
+
+ // state
+ void <a href=#dom-context-2d-save title=dom-context-2d-save>save</a>(); // push state on state stack
+ void <a href=#dom-context-2d-restore title=dom-context-2d-restore>restore</a>(); // pop state stack and restore state
+<!--
+ // v6 we've also received requests for:
+ attribute boolean <span title="dom-context-2d-forceHighQuality">forceHighQuality</span> // (default false)
+ // when enabled, it would prevent the UA from falling back on lower-quality but faster rendering routines
+ // useful e.g. for when an image manipulation app uses <canvas> both for UI previews and the actual work
+-->
+ // transformations (default transform is the identity matrix)
+ void <a href=#dom-context-2d-scale title=dom-context-2d-scale>scale</a>(double x, double y);
+ void <a href=#dom-context-2d-rotate title=dom-context-2d-rotate>rotate</a>(double angle);
+ void <a href=#dom-context-2d-translate title=dom-context-2d-translate>translate</a>(double x, double y);
+ void <a href=#dom-context-2d-transform title=dom-context-2d-transform>transform</a>(double a, double b, double c, double d, double e, double f);
+ void <a href=#dom-context-2d-settransform title=dom-context-2d-setTransform>setTransform</a>(double a, double b, double c, double d, double e, double f);
+<!--
+ // v6 we've also received requests for:
+ void skew(...);
+ void reflect(...); // or mirror(...)
+-->
+ // compositing
+ attribute double <a href=#dom-context-2d-globalalpha title=dom-context-2d-globalAlpha>globalAlpha</a>; // (default 1.0)
+ attribute DOMString <a href=#dom-context-2d-globalcompositeoperation title=dom-context-2d-globalCompositeOperation>globalCompositeOperation</a>; // (default source-over)
+<!--
+ // v6 we've also received requests for:
+ - turning off antialiasing to avoid seams when patterns are painted next to each other
+ - might be better to overdraw?
+ - might be better to just draw at a higher res then downsample, like for 3d?
+ - nested layers
+ - the ability to composite an entire set of drawing operations with one shadow all at once
+ http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2008-August/015567.html
+-->
+ // colors and styles
+ attribute any <a href=#dom-context-2d-strokestyle title=dom-context-2d-strokeStyle>strokeStyle</a>; // (default black)
+ attribute any <a href=#dom-context-2d-fillstyle title=dom-context-2d-fillStyle>fillStyle</a>; // (default black)
+ <a href=#canvasgradient>CanvasGradient</a> <a href=#dom-context-2d-createlineargradient title=dom-context-2d-createLinearGradient>createLinearGradient</a>(double x0, double y0, double x1, double y1);
+ <a href=#canvasgradient>CanvasGradient</a> <a href=#dom-context-2d-createradialgradient title=dom-context-2d-createRadialGradient>createRadialGradient</a>(double x0, double y0, double r0, double x1, double y1, double r1);
+ <a href=#canvaspattern>CanvasPattern</a> <a href=#dom-context-2d-createpattern title=dom-context-2d-createPattern>createPattern</a>(<a href=#htmlimageelement>HTMLImageElement</a> image, DOMString repetition);
+ <a href=#canvaspattern>CanvasPattern</a> <a href=#dom-context-2d-createpattern title=dom-context-2d-createPattern>createPattern</a>(<a href=#htmlcanvaselement>HTMLCanvasElement</a> image, DOMString repetition);
+ <a href=#canvaspattern>CanvasPattern</a> <a href=#dom-context-2d-createpattern title=dom-context-2d-createPattern>createPattern</a>(<a href=#htmlvideoelement>HTMLVideoElement</a> image, DOMString repetition);
+
+ // line caps/joins
+ attribute double <a href=#dom-context-2d-linewidth title=dom-context-2d-lineWidth>lineWidth</a>; // (default 1)
+ attribute DOMString <a href=#dom-context-2d-linecap title=dom-context-2d-lineCap>lineCap</a>; // "butt", "round", "square" (default "butt")
+ attribute DOMString <a href=#dom-context-2d-linejoin title=dom-context-2d-lineJoin>lineJoin</a>; // "round", "bevel", "miter" (default "miter")
+ attribute double <a href=#dom-context-2d-miterlimit title=dom-context-2d-miterLimit>miterLimit</a>; // (default 10)
+
+ // shadows
+ attribute double <a href=#dom-context-2d-shadowoffsetx title=dom-context-2d-shadowOffsetX>shadowOffsetX</a>; // (default 0)
+ attribute double <a href=#dom-context-2d-shadowoffsety title=dom-context-2d-shadowOffsetY>shadowOffsetY</a>; // (default 0)
+ attribute double <a href=#dom-context-2d-shadowblur title=dom-context-2d-shadowBlur>shadowBlur</a>; // (default 0)
+ attribute DOMString <a href=#dom-context-2d-shadowcolor title=dom-context-2d-shadowColor>shadowColor</a>; // (default transparent black)
+
+ // rects
+ void <a href=#dom-context-2d-clearrect title=dom-context-2d-clearRect>clearRect</a>(double x, double y, double w, double h);
+ void <a href=#dom-context-2d-fillrect title=dom-context-2d-fillRect>fillRect</a>(double x, double y, double w, double h);
+ void <a href=#dom-context-2d-strokerect title=dom-context-2d-strokeRect>strokeRect</a>(double x, double y, double w, double h);
+
+ // path API
+ void <a href=#dom-context-2d-beginpath title=dom-context-2d-beginPath>beginPath</a>();
+ void <a href=#dom-context-2d-closepath title=dom-context-2d-closePath>closePath</a>();
+ void <a href=#dom-context-2d-moveto title=dom-context-2d-moveTo>moveTo</a>(double x, double y);
+ void <a href=#dom-context-2d-lineto title=dom-context-2d-lineTo>lineTo</a>(double x, double y);
+ void <a href=#dom-context-2d-quadraticcurveto title=dom-context-2d-quadraticCurveTo>quadraticCurveTo</a>(double cpx, double cpy, double x, double y);
+ void <a href=#dom-context-2d-beziercurveto title=dom-context-2d-bezierCurveTo>bezierCurveTo</a>(double cp1x, double cp1y, double cp2x, double cp2y, double x, double y);
+ void <a href=#dom-context-2d-arcto title=dom-context-2d-arcTo>arcTo</a>(double x1, double y1, double x2, double y2, double radius); <!-- see ARC-ORDER note below -->
+ void <a href=#dom-context-2d-rect title=dom-context-2d-rect>rect</a>(double x, double y, double w, double h);
+ void <a href=#dom-context-2d-arc title=dom-context-2d-arc>arc</a>(double x, double y, double radius, double startAngle, double endAngle, optional boolean anticlockwise); <!-- see ARC-ORDER note below -->
+ void <a href=#dom-context-2d-fill title=dom-context-2d-fill>fill</a>();
+ void <a href=#dom-context-2d-stroke title=dom-context-2d-stroke>stroke</a>();
+ void <a href=#dom-context-2d-drawsystemfocusring title=dom-context-2d-drawSystemFocusRing>drawSystemFocusRing</a>(<a href=#element>Element</a> element);
+ boolean <a href=#dom-context-2d-drawcustomfocusring title=dom-context-2d-drawCustomFocusRing>drawCustomFocusRing</a>(<a href=#element>Element</a> element);
+ void <a href=#dom-context-2d-scrollpathintoview title=dom-context-2d-scrollPathIntoView>scrollPathIntoView</a>();
+ void <a href=#dom-context-2d-clip title=dom-context-2d-clip>clip</a>();
+ boolean <a href=#dom-context-2d-ispointinpath title=dom-context-2d-isPointInPath>isPointInPath</a>(double x, double y);
+
+ // text
+ attribute DOMString <a href=#dom-context-2d-font title=dom-context-2d-font>font</a>; // (default 10px sans-serif)
+ attribute DOMString <a href=#dom-context-2d-textalign title=dom-context-2d-textAlign>textAlign</a>; // "start", "end", "left", "right", "center" (default: "start")
+ attribute DOMString <a href=#dom-context-2d-textbaseline title=dom-context-2d-textBaseline>textBaseline</a>; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
+ void <a href=#dom-context-2d-filltext title=dom-context-2d-fillText>fillText</a>(DOMString text, double x, double y, optional double maxWidth);
+ void <a href=#dom-context-2d-stroketext title=dom-context-2d-strokeText>strokeText</a>(DOMString text, double x, double y, optional double maxWidth);<!-- v6DVT
+ void <span title="dom-context-2d-fillVerticalText">fillVerticalText</span>(DOMString text, double x, double y, optional double maxHeight);
+ void <span title="dom-context-2d-strokeVerticalText">strokeVerticalText</span>(DOMString text, double x, double y, optional double maxHeight); -->
+ <a href=#textmetrics>TextMetrics</a> <a href=#dom-context-2d-measuretext title=dom-context-2d-measureText>measureText</a>(DOMString text);
+
+ // drawing images
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(<a href=#htmlimageelement>HTMLImageElement</a> image, double dx, double dy);
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(<a href=#htmlimageelement>HTMLImageElement</a> image, double dx, double dy, double dw, double dh);
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(<a href=#htmlimageelement>HTMLImageElement</a> image, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh);
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(<a href=#htmlcanvaselement>HTMLCanvasElement</a> image, double dx, double dy);
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(<a href=#htmlcanvaselement>HTMLCanvasElement</a> image, double dx, double dy, double dw, double dh);
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(<a href=#htmlcanvaselement>HTMLCanvasElement</a> image, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh);
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(<a href=#htmlvideoelement>HTMLVideoElement</a> image, double dx, double dy);
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(<a href=#htmlvideoelement>HTMLVideoElement</a> image, double dx, double dy, double dw, double dh);
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(<a href=#htmlvideoelement>HTMLVideoElement</a> image, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh);
+
+ // pixel manipulation
+ <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-createimagedata title=dom-context-2d-createImageData>createImageData</a>(double sw, double sh);
+ <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-createimagedata title=dom-context-2d-createImageData>createImageData</a>(<a href=#imagedata>ImageData</a> imagedata);
+ <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-getimagedata title=dom-context-2d-getImageData>getImageData</a>(double sx, double sy, double sw, double sh);
+ void <a href=#dom-context-2d-putimagedata title=dom-context-2d-putImageData>putImageData</a>(<a href=#imagedata>ImageData</a> imagedata, double dx, double dy);
+ void <a href=#dom-context-2d-putimagedata title=dom-context-2d-putImageData>putImageData</a>(<a href=#imagedata>ImageData</a> imagedata, double dx, double dy, double dirtyX, double dirtyY, double dirtyWidth, double dirtyHeight);
+};
+
+interface <dfn id=canvasgradient>CanvasGradient</dfn> {
+ // opaque object
+ void <a href=#dom-canvasgradient-addcolorstop title=dom-canvasgradient-addColorStop>addColorStop</a>(double offset, DOMString color);
+};
+
+interface <dfn id=canvaspattern>CanvasPattern</dfn> {
+ // opaque object
+};
+
+interface <dfn id=textmetrics>TextMetrics</dfn> {
+ readonly attribute double <a href=#dom-textmetrics-width title=dom-textmetrics-width>width</a>;
+};
+
+interface <dfn id=imagedata>ImageData</dfn> {
+ readonly attribute unsigned long <a href=#dom-imagedata-width title=dom-imagedata-width>width</a>;
+ readonly attribute unsigned long <a href=#dom-imagedata-height title=dom-imagedata-height>height</a>;
+ readonly attribute <span>Uint8ClampedArray</span> <a href=#dom-imagedata-data title=dom-imagedata-data>data</a>;
+};</pre>
+
+ <!-- ARC-ORDER note (see above):
+ some demos rely on the precise order of the arc() and arcTo()
+ methods, see https://bugzilla.mozilla.org/show_bug.cgi?id=623437
+ for an example, and its duplicates for more -->
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-canvas><a href=#dom-context-2d-canvas>canvas</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#the-canvas-element>canvas</a></code> element.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-context-2d-canvas title=dom-context-2d-canvas><code>canvas</code></dfn>
+ attribute must return the <code><a href=#the-canvas-element>canvas</a></code> element that the
+ context paints on.</p>
+
+ <p>Except where otherwise specified, for the 2D context interface,
+ any method call with a numeric argument whose value is infinite or a
+ NaN value must be ignored.</p>
+
+ <!--
+ Philip Taylor wrote:
+ > My experience with some 3d canvas code is that infinities come up in
+ > naturally harmless places, e.g. having a function that scales by x then
+ > translates by 1/x and wanting it to work when x=0 (which ought to draw
+ > nothing, since anything it draws is zero pixels wide), and it's a bit
+ > annoying to track down and fix those issues, so I'd probably like it if
+ > they were harmless in canvas methods. Opera appears to silently not draw
+ > anything if the transformation matrix is not finite, but Firefox throws
+ > exceptions when passing in non-finite arguments.
+ -->
+
+ <p>Whenever the CSS value <code title="">currentColor</code> is used
+ as a color in this API, the "computed value of the 'color' property"
+ for the purposes of determining the computed value of the <code title="">currentColor</code> keyword is the computed value of the
+ 'color' property on the element in question at the time that the
+ color is specified (e.g. when the appropriate attribute is set, or
+ when the method is called; not when the color is rendered or
+ otherwise used). If the computed value of the 'color' property is
+ undefined for a particular case (e.g. because the element is not
+ <a href=#in-a-document>in a <code>Document</code></a>), then the "computed value
+ of the 'color' property" for the purposes of determining the
+ computed value of the <code title="">currentColor</code> keyword is
+ fully opaque black. <a href=#refsCSSCOLOR>[CSSCOLOR]</a></p>
+
+ <p>In the case of <code title=dom-canvasgradient-addColorStop><a href=#dom-canvasgradient-addcolorstop>addColorStop()</a></code> on
+ <code><a href=#canvasgradient>CanvasGradient</a></code>, the "computed value of the 'color'
+ property" for the purposes of determining the computed value of the
+ <code title="">currentColor</code> keyword is always fully opaque
+ black (there is no associated element). <a href=#refsCSSCOLOR>[CSSCOLOR]</a></p>
+
+ <p class=note>This is because <code><a href=#canvasgradient>CanvasGradient</a></code> objects
+ are <code><a href=#the-canvas-element>canvas</a></code>-neutral &mdash; a
+ <code><a href=#canvasgradient>CanvasGradient</a></code> object created by one
+ <code><a href=#the-canvas-element>canvas</a></code> can be used by another, and there is therefore
+ no way to know which is the "element in question" at the time that
+ the color is specified.</p>
+
+ </div>
+
+
+
+ <h6 id=the-canvas-state><span class=secno>4.8.11.1.1 </span>The canvas state</h6>
+
+ <p>Each context maintains a stack of drawing states. <dfn id=drawing-state title="drawing state">Drawing states</dfn> consist of:</p>
+
+ <ul class=brief><li>The current <a href=#transformations title=dom-context-2d-transformation>transformation matrix</a>.</li>
+ <li>The current <a href=#clipping-region>clipping region</a>.</li>
+ <li>The current values of the following attributes: <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code>, <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code>, <code title=dom-context-2d-globalAlpha><a href=#dom-context-2d-globalalpha>globalAlpha</a></code>, <code title=dom-context-2d-lineWidth><a href=#dom-context-2d-linewidth>lineWidth</a></code>, <code title=dom-context-2d-lineCap><a href=#dom-context-2d-linecap>lineCap</a></code>, <code title=dom-context-2d-lineJoin><a href=#dom-context-2d-linejoin>lineJoin</a></code>, <code title=dom-context-2d-miterLimit><a href=#dom-context-2d-miterlimit>miterLimit</a></code>, <code title=dom-context-2d-shadowOffsetX><a href=#dom-context-2d-shadowoffsetx>shadowOffsetX</a></code>, <code title=dom-context-2d-shadowOffsetY><a href=#dom-context-2d-shadowoffsety>shadowOffsetY</a></code>, <code title=dom-context-2d-shadowBlur><a href=#dom-context-2d-shadowblur>shadowBlur</a></code>, <code title=dom-context-2d-shadowColor><a href=#dom-context-2d-shadowcolor>shadowColor</a></code>, <code title=dom-context-2d-globalCompositeOperation><a href=#dom-context-2d-globalcompositeoperation>globalCompositeOperation</a></code>, <code title=dom-context-2d-font><a href=#dom-context-2d-font>font</a></code>, <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code>, <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code>.</li>
+ </ul><p class=note>The current path and the current bitmap are not part
+ of the drawing state. The current path is persistent, and can only
+ be reset using the <code title=dom-context-2d-beginPath><a href=#dom-context-2d-beginpath>beginPath()</a></code> method. The
+ current bitmap is a property of the canvas, not the context.</p>
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-save><a href=#dom-context-2d-save>save</a></code>()</dt>
+
+ <dd>
+
+ <p>Pushes the current state onto the stack.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-restore><a href=#dom-context-2d-restore>restore</a></code>()</dt>
+
+ <dd>
+
+ <p>Pops the top state on the stack, restoring the context to that state.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-context-2d-save title=dom-context-2d-save><code>save()</code></dfn>
+ method must push a copy of the current drawing state onto the
+ drawing state stack.</p>
+
+ <p>The <dfn id=dom-context-2d-restore title=dom-context-2d-restore><code>restore()</code></dfn> method
+ must pop the top entry in the drawing state stack, and reset the
+ drawing state it describes. If there is no saved state, the method
+ must do nothing.</p>
+
+ <!-- v6
+idea from Mihai:
+> 5. Drawing states should be saveable with IDs, and for easier restoring.
+>
+> save(id)
+> restore(id)
+>
+> If id is not provided, then save() works as defined now. The same for
+> restore().
+>
+> Currently, it's not trivial to save and restore a specific state.
+...and from Philip:
+> I think a more convenient syntax would be:
+> var state = ctx.save();
+> ctx.restore(state);
+> But how would it interact with normal calls to ctx.restore()?
+ -->
+
+ </div>
+
+
+ <h6 id=transformations><span class=secno>4.8.11.1.2 </span><dfn title=dom-context-2d-transformation>Transformations</dfn></h6>
+
+ <p>The transformation matrix is applied to coordinates when creating
+ shapes and paths.</p> <!-- conformance criteria for actual drawing
+ are described in the various sections below -->
+
+ <div class=impl>
+
+ <p>When the context is created, the transformation matrix must
+ initially be the identity transform. It may then be adjusted using
+ the transformation methods.</p>
+
+ <p>The transformations must be performed in reverse order. For
+ instance, if a scale transformation that doubles the width is
+ applied, followed by a rotation transformation that rotates drawing
+ operations by a quarter turn, and a rectangle twice as wide as it is
+ tall is then drawn on the canvas, the actual result will be a
+ square.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-scale><a href=#dom-context-2d-scale>scale</a></code>(<var title="">x</var>, <var title="">y</var>)</dt>
+
+ <dd>
+
+ <p>Changes the transformation matrix to apply a scaling transformation with the given characteristics.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-rotate><a href=#dom-context-2d-rotate>rotate</a></code>(<var title="">angle</var>)</dt>
+
+ <dd>
+
+ <p>Changes the transformation matrix to apply a rotation transformation with the given characteristics. The angle is in radians.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-translate><a href=#dom-context-2d-translate>translate</a></code>(<var title="">x</var>, <var title="">y</var>)</dt>
+
+ <dd>
+
+ <p>Changes the transformation matrix to apply a translation transformation with the given characteristics.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-transform><a href=#dom-context-2d-transform>transform</a></code>(<var title="">a</var>, <var title="">b</var>, <var title="">c</var>, <var title="">d</var>, <var title="">e</var>, <var title="">f</var>)</dt>
+
+ <dd>
+
+ <p>Changes the transformation matrix to apply the matrix given by the arguments as described below.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-setTransform><a href=#dom-context-2d-settransform>setTransform</a></code>(<var title="">a</var>, <var title="">b</var>, <var title="">c</var>, <var title="">d</var>, <var title="">e</var>, <var title="">f</var>)</dt>
+
+ <dd>
+
+ <p>Changes the transformation matrix <em>to</em> the matrix given by the arguments as described below.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-context-2d-scale title=dom-context-2d-scale><code>scale(<var title="">x</var>, <var title="">y</var>)</code></dfn> method must
+ add the scaling transformation described by the arguments to the
+ transformation matrix. The <var title="">x</var> argument represents
+ the scale factor in the horizontal direction and the <var title="">y</var> argument represents the scale factor in the
+ vertical direction. The factors are multiples.</p>
+
+ <p>The <dfn id=dom-context-2d-rotate title=dom-context-2d-rotate><code>rotate(<var title="">angle</var>)</code></dfn> method must add the rotation
+ transformation described by the argument to the transformation
+ matrix. The <var title="">angle</var> argument represents a
+ clockwise rotation angle expressed in radians.</p>
+
+ <p>The <dfn id=dom-context-2d-translate title=dom-context-2d-translate><code>translate(<var title="">x</var>, <var title="">y</var>)</code></dfn> method must
+ add the translation transformation described by the arguments to the
+ transformation matrix. The <var title="">x</var> argument represents
+ the translation distance in the horizontal direction and the <var title="">y</var> argument represents the translation distance in the
+ vertical direction. The arguments are in coordinate space units.</p>
+
+ <p>The <dfn id=dom-context-2d-transform title=dom-context-2d-transform><code>transform(<var title="">a</var>, <var title="">b</var>, <var title="">c</var>, <var title="">d</var>, <var title="">e</var>, <var title="">f</var>)</code></dfn> method must replace the current
+ transformation matrix with the result of multiplying the current
+ transformation matrix with the matrix described by:</p>
+
+ </div>
+
+ <table class=matrix><tr><td><var title="">a</var></td>
+ <td><var title="">c</var></td>
+ <td><var title="">e</var></td>
+ <tr><td><var title="">b</var></td>
+ <td><var title="">d</var></td>
+ <td><var title="">f</var></td>
+ <tr><td>0</td>
+ <td>0</td>
+ <td>1</td>
+ </table><p class=note>The arguments <var title="">a</var>, <var title="">b</var>, <var title="">c</var>, <var title="">d</var>, <var title="">e</var>, and <var title="">f</var> are sometimes called
+ <var title="">m11</var>, <var title="">m12</var>, <var title="">m21</var>, <var title="">m22</var>, <var title="">dx</var>,
+ and <var title="">dy</var> or <var title="">m11</var>, <var title="">m21</var>, <var title="">m12</var>, <var title="">m22</var>, <var title="">dx</var>, and <var title="">dy</var>. Care should be taken in particular with the order
+ of the second and third arguments (<var title="">b</var> and <var title="">c</var>) as their order varies from API to API and APIs
+ sometimes use the notation <var title="">m12</var>/<var title="">m21</var> and sometimes <var title="">m21</var>/<var title="">m12</var> for those positions.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-context-2d-settransform title=dom-context-2d-setTransform><code>setTransform(<var title="">a</var>, <var title="">b</var>, <var title="">c</var>, <var title="">d</var>, <var title="">e</var>,
+ <var title="">f</var>)</code></dfn> method must reset the current
+ transform to the identity matrix, and then invoke the <code><a href=#dom-context-2d-transform title=dom-context-2d-transform>transform</a>(<var title="">a</var>, <var title="">b</var>, <var title="">c</var>, <var title="">d</var>, <var title="">e</var>,
+ <var title="">f</var>)</code> method with the same arguments.</p>
+
+ </div>
+
+
+ <h6 id=compositing><span class=secno>4.8.11.1.3 </span>Compositing</h6>
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-globalAlpha><a href=#dom-context-2d-globalalpha>globalAlpha</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current alpha value applied to rendering operations.</p>
+
+ <p>Can be set, to change the alpha value. Values outside of the
+ range 0.0 .. 1.0 are ignored.</p>
+
+ </dd>
+
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-globalCompositeOperation><a href=#dom-context-2d-globalcompositeoperation>globalCompositeOperation</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current composition operation, from the list below.</p>
+
+ <p>Can be set, to change the composition operation. Unknown values
+ are ignored.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>All drawing operations are affected by the global compositing
+ attributes, <code title=dom-context-2d-globalAlpha><a href=#dom-context-2d-globalalpha>globalAlpha</a></code> and <code title=dom-context-2d-globalCompositeOperation><a href=#dom-context-2d-globalcompositeoperation>globalCompositeOperation</a></code>.</p>
+
+ <!-- conformance criteria for painting are described in the "drawing
+ model" section below -->
+
+ <p>The <dfn id=dom-context-2d-globalalpha title=dom-context-2d-globalAlpha><code>globalAlpha</code></dfn>
+ attribute gives an alpha value that is applied to shapes and images
+ before they are composited onto the canvas. The value must be in the
+ range from 0.0 (fully transparent) to 1.0 (no additional
+ transparency). If an attempt is made to set the attribute to a value
+ outside this range, including Infinity and Not-a-Number (NaN)
+ values, the attribute must retain its previous value. When the
+ context is created, the <code title=dom-context-2d-globalAlpha><a href=#dom-context-2d-globalalpha>globalAlpha</a></code> attribute must
+ initially have the value 1.0.</p>
+
+ <p>The <dfn id=dom-context-2d-globalcompositeoperation title=dom-context-2d-globalCompositeOperation><code>globalCompositeOperation</code></dfn>
+ attribute sets how shapes and images are drawn onto the existing
+ bitmap, once they have had <code title=dom-context-2d-globalAlpha><a href=#dom-context-2d-globalalpha>globalAlpha</a></code> and the
+ current transformation matrix applied. It must be set to a value
+ from the following list. In the descriptions below, the source
+ image, <var title="">A</var>, is the shape or image being rendered,
+ and the destination image, <var title="">B</var>, is the current
+ state of the bitmap.</p>
+
+ </div>
+
+ <dl><dt><dfn id=gcop-source-atop title=gcop-source-atop><code>source-atop</code></dfn></dt>
+
+ <dd><var title="">A</var> atop <var title="">B</var>. <span class=note>Display the
+ source image wherever both images are opaque. Display the
+ destination image wherever the destination image is opaque but the
+ source image is transparent. Display transparency elsewhere.</span></dd>
+
+ <dt><dfn id=gcop-source-in title=gcop-source-in><code>source-in</code></dfn></dt>
+
+ <dd><var title="">A</var> in <var title="">B</var>. <span class=note>Display the
+ source image wherever both the source image and destination image
+ are opaque. Display transparency elsewhere.</span></dd>
+
+ <dt><dfn id=gcop-source-out title=gcop-source-out><code>source-out</code></dfn></dt>
+
+ <dd><var title="">A</var> out <var title="">B</var>. <span class=note>Display the
+ source image wherever the source image is opaque and the
+ destination image is transparent. Display transparency
+ elsewhere.</span></dd>
+
+ <dt><dfn id=gcop-source-over title=gcop-source-over><code>source-over</code></dfn> (default)</dt>
+
+ <dd><var title="">A</var> over <var title="">B</var>. <span class=note>Display the
+ source image wherever the source image is opaque. Display the
+ destination image elsewhere.</span></dd>
+
+
+ <dt><dfn id=gcop-destination-atop title=gcop-destination-atop><code>destination-atop</code></dfn></dt>
+
+ <dd><var title="">B</var> atop <var title="">A</var>. <span class=note>Same as <code title=gcop-source-atop><a href=#gcop-source-atop>source-atop</a></code> but using the
+ destination image instead of the source image and vice versa.</span></dd>
+
+ <dt><dfn id=gcop-destination-in title=gcop-destination-in><code>destination-in</code></dfn></dt>
+
+ <dd><var title="">B</var> in <var title="">A</var>. <span class=note>Same as <code title=gcop-source-in><a href=#gcop-source-in>source-in</a></code> but using the destination
+ image instead of the source image and vice versa.</span></dd>
+
+ <dt><dfn id=gcop-destination-out title=gcop-destination-out><code>destination-out</code></dfn></dt>
+
+ <dd><var title="">B</var> out <var title="">A</var>. <span class=note>Same as <code title=gcop-source-out><a href=#gcop-source-out>source-out</a></code> but using the destination
+ image instead of the source image and vice versa.</span></dd>
+
+ <dt><dfn id=gcop-destination-over title=gcop-destination-over><code>destination-over</code></dfn></dt>
+
+ <dd><var title="">B</var> over <var title="">A</var>. <span class=note>Same as <code title=gcop-source-over><a href=#gcop-source-over>source-over</a></code> but using the
+ destination image instead of the source image and vice versa.</span></dd>
+
+
+<!-- no clear definition of this operator (doesn't correspond to a PorterDuff operator)
+ <dt><dfn title="gcop-darker"><code>darker</code></dfn></dt>
+
+ <dd><span class="note">Display the sum of the source image and destination image,
+ with color values approaching 0 as a limit.</span></dd>
+-->
+
+ <dt><dfn id=gcop-lighter title=gcop-lighter><code>lighter</code></dfn></dt>
+
+ <dd><var title="">A</var> plus <var title="">B</var>. <span class=note>Display the
+ sum of the source image and destination image, with color values
+ approaching 255 (100%) as a limit.</span></dd>
+
+
+ <dt><dfn id=gcop-copy title=gcop-copy><code>copy</code></dfn></dt>
+
+ <dd><var title="">A</var> (<var title="">B</var> is
+ ignored). <span class=note>Display the source image instead of the destination
+ image.</span></dd>
+
+
+ <dt><dfn id=gcop-xor title=gcop-xor><code>xor</code></dfn></dt>
+
+ <dd><var title="">A</var> xor <var title="">B</var>. <span class=note>Exclusive OR
+ of the source image and destination image.</span></dd>
+
+
+ <dt class=impl><code><var title="">vendorName</var>-<var title="">operationName</var></code></dt>
+
+ <dd class=impl>Vendor-specific extensions to the list of
+ composition operators should use this syntax.</dd>
+
+ </dl><div class=impl>
+
+ <p>The operators in the above list must be treated as described by
+ the Porter-Duff operator given at the start of their description
+ (e.g. <var title="">A</var> over <var title="">B</var>). They are to
+ be applied as part of the <a href=#drawing-model>drawing model</a>, at which point the
+ <a href=#clipping-region>clipping region</a> is also applied. (Without a clipping
+ region, these operators act on the whole bitmap with every
+ operation.) <a href=#refsPORTERDUFF>[PORTERDUFF]</a></p>
+
+ <p>These values are all case-sensitive &mdash; they must be used
+ exactly as shown. User agents must not recognize values that are not
+ a <a href=#case-sensitive>case-sensitive</a> match for one of the values given
+ above.</p>
+
+ <p>On setting, if the user agent does not recognize the specified
+ value, it must be ignored, leaving the value of <code title=dom-context-2d-globalCompositeOperation><a href=#dom-context-2d-globalcompositeoperation>globalCompositeOperation</a></code>
+ unaffected.</p>
+
+ <p>When the context is created, the <code title=dom-context-2d-globalCompositeOperation><a href=#dom-context-2d-globalcompositeoperation>globalCompositeOperation</a></code>
+ attribute must initially have the value
+ <code>source-over</code>.</p>
+
+ </div>
+
+
+ <h6 id=colors-and-styles><span class=secno>4.8.11.1.4 </span>Colors and styles</h6>
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current style used for stroking shapes.</p>
+
+ <p>Can be set, to change the stroke style.</p>
+
+ <p>The style can be either a string containing a CSS color, or a
+ <code><a href=#canvasgradient>CanvasGradient</a></code> or <code><a href=#canvaspattern>CanvasPattern</a></code>
+ object. Invalid values are ignored.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current style used for filling shapes.</p>
+
+ <p>Can be set, to change the fill style.</p>
+
+ <p>The style can be either a string containing a CSS color, or a
+ <code><a href=#canvasgradient>CanvasGradient</a></code> or <code><a href=#canvaspattern>CanvasPattern</a></code>
+ object. Invalid values are ignored.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <!-- v6 feature requests:
+
+ * Getting and setting colours by component to bypass the CSS value parsing.
+
+ Either:
+ context.fillStyle.red += 1;
+
+ Or:
+ var array = context.fillStyle;
+ array[1] += 1;
+ context.fillStyle = array;
+
+ * A more performant way of setting colours in general, e.g.:
+
+ context.setFillColor(r,g,b,a) // already supported by webkit
+
+ Or:
+
+ context.fillStyle = 0xRRGGBBAA; // set a 32bit int directly
+
+ * fill rule for deciding between winding and even-odd algorithms.
+ SVG has fill-rule: nonzero | evenodd
+ http://www.w3.org/TR/SVG/painting.html#FillProperties
+
+ -->
+
+ <p>The <dfn id=dom-context-2d-strokestyle title=dom-context-2d-strokeStyle><code>strokeStyle</code></dfn>
+ attribute represents the color or style to use for the lines around
+ shapes, and the <dfn id=dom-context-2d-fillstyle title=dom-context-2d-fillStyle><code>fillStyle</code></dfn>
+ attribute represents the color or style to use inside the
+ shapes.</p>
+
+ <p>Both attributes can be either strings,
+ <code><a href=#canvasgradient>CanvasGradient</a></code>s, or <code><a href=#canvaspattern>CanvasPattern</a></code>s. On
+ setting, strings must be <a href=#parsed-as-a-css-color-value title="parsed as a CSS <color>
+ value">parsed as CSS &lt;color&gt; values</a> and the color
+ assigned, and <code><a href=#canvasgradient>CanvasGradient</a></code> and
+ <code><a href=#canvaspattern>CanvasPattern</a></code> objects must be assigned themselves. <a href=#refsCSSCOLOR>[CSSCOLOR]</a> If the value is a string but
+ cannot be <a href=#parsed-as-a-css-color-value>parsed as a CSS &lt;color&gt; value</a>, or is
+ neither a string, a <code><a href=#canvasgradient>CanvasGradient</a></code>, nor a
+ <code><a href=#canvaspattern>CanvasPattern</a></code>, then it must be ignored, and the
+ attribute must retain its previous value.</p>
+
+ <p>When set to a <code><a href=#canvaspattern>CanvasPattern</a></code> or
+ <code><a href=#canvasgradient>CanvasGradient</a></code> object, the assignment is
+ <a href=#live>live</a>, meaning that changes made to the object after the
+ assignment do affect subsequent stroking or filling of shapes.</p>
+
+ <p>On getting, if the value is a color, then the <a href=#serialization-of-a-color title="serialization of a color">serialization of the color</a>
+ must be returned. Otherwise, if it is not a color but a
+ <code><a href=#canvasgradient>CanvasGradient</a></code> or <code><a href=#canvaspattern>CanvasPattern</a></code>, then the
+ respective object must be returned. (Such objects are opaque and
+ therefore only useful for assigning to other attributes or for
+ comparison to other gradients or patterns.)</p>
+
+ <p>The <dfn id=serialization-of-a-color>serialization of a color</dfn> for a color value is a
+ string, computed as follows: if it has alpha equal to 1.0, then the
+ string is a lowercase six-digit hex value, prefixed with a "#"
+ character (U+0023 NUMBER SIGN), with the first two digits
+ representing the red component, the next two digits representing the
+ green component, and the last two digits representing the blue
+ component, the digits being in the range 0-9 a-f (U+0030 to U+0039
+ and U+0061 to U+0066). Otherwise, the color value has alpha less
+ than 1.0, and the string is the color value in the CSS <code title="">rgba()</code> functional-notation format: the literal
+ string <code title="">rgba</code> (U+0072 U+0067 U+0062 U+0061)
+ followed by a U+0028 LEFT PARENTHESIS, a base-ten integer in the
+ range 0-255 representing the red component (using digits 0-9, U+0030
+ to U+0039, in the shortest form possible), a literal U+002C COMMA
+ and U+0020 SPACE, an integer for the green component, a comma and a
+ space, an integer for the blue component, another comma and space, a
+ U+0030 DIGIT ZERO, if the alpha value is greater than zero then a
+ U+002E FULL STOP (representing the decimal point), if the alpha
+ value is greater than zero then one or more digits in the range 0-9
+ (U+0030 to U+0039) representing the fractional part of the alpha<!--
+ value with no trailing zeros (implied by next sentence)-->, and
+ finally a U+0029 RIGHT PARENTHESIS. User agents must express the
+ fractional part of the alpha value, if any, with the level of
+ precision necessary for the alpha value, when reparsed, to be
+ interpreted as the same alpha value.</p> <!-- if people complain
+ this is unreadable, expand it into a <dl> with two nested <ol>s -->
+
+ <p>When the context is created, the <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code> and <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code> attributes must
+ initially have the string value <code title="">#000000</code>.</p>
+
+ <p>When the value is a color, it must not be affected by the
+ transformation matrix when used to draw on the canvas.</p> <!-- so
+ singular matrices don't affect solid color fillStyles -->
+
+ </div>
+
+ <hr><p>There are two types of gradients, linear gradients and radial
+ gradients, both represented by objects implementing the opaque
+ <code><a href=#canvasgradient>CanvasGradient</a></code> interface.</p>
+
+ <p id=interpolation>Once a gradient has been created (see below),
+ stops are placed along it to define how the colors are distributed
+ along the gradient. <span class=impl>The color of the gradient at
+ each stop is the color specified for that stop. Between each such
+ stop, the colors and the alpha component must be linearly
+ interpolated over the RGBA space without premultiplying the alpha
+ value to find the color to use at that offset. Before the first
+ stop, the color must be the color of the first stop. After the last
+ stop, the color must be the color of the last stop. When there are
+ no stops, the gradient is transparent black.</span></p>
+
+ <dl class=domintro><dt><var title="">gradient</var> . <code title=dom-canvasgradient-addColorStop><a href=#dom-canvasgradient-addcolorstop>addColorStop</a></code>(<var title="">offset</var>, <var title="">color</var>)</dt>
+
+ <dd>
+
+ <p>Adds a color stop with the given color to the gradient at the
+ given offset. 0.0 is the offset at one end of the gradient, 1.0 is
+ the offset at the other end.</p>
+
+ <p>Throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception if the offset
+ is out of range. Throws a <code><a href=#syntaxerror>SyntaxError</a></code> exception if the
+ color cannot be parsed.</p>
+
+ </dd>
+
+ <dt><var title="">gradient</var> = <var title="">context</var> . <code title=dom-context-2d-createLinearGradient><a href=#dom-context-2d-createlineargradient>createLinearGradient</a></code>(<var title="">x0</var>, <var title="">y0</var>, <var title="">x1</var>, <var title="">y1</var>)</dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#canvasgradient>CanvasGradient</a></code> object that represents a
+ linear gradient that paints along the line given by the
+ coordinates represented by the arguments.</p>
+
+ <p>If any of the arguments are not finite numbers, throws a
+ <code><a href=#notsupportederror>NotSupportedError</a></code> exception.</p>
+
+ </dd>
+
+ <dt><var title="">gradient</var> = <var title="">context</var> . <code title=dom-context-2d-createRadialGradient><a href=#dom-context-2d-createradialgradient>createRadialGradient</a></code>(<var title="">x0</var>, <var title="">y0</var>, <var title="">r0</var>, <var title="">x1</var>, <var title="">y1</var>, <var title="">r1</var>)</dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#canvasgradient>CanvasGradient</a></code> object that represents a
+ radial gradient that paints along the cone given by the circles
+ represented by the arguments.</p>
+
+ <p>If any of the arguments are not finite numbers, throws a
+ <code><a href=#notsupportederror>NotSupportedError</a></code> exception. If either of the radii
+ are negative, throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-canvasgradient-addcolorstop title=dom-canvasgradient-addColorStop><code>addColorStop(<var title="">offset</var>, <var title="">color</var>)</code></dfn>
+ method on the <code><a href=#canvasgradient>CanvasGradient</a></code> interface adds a new stop
+ to a gradient. If the <var title="">offset</var> is less than 0,
+ greater than 1, infinite, or NaN, then an
+ <code><a href=#indexsizeerror>IndexSizeError</a></code> exception must be raised. If the <var title="">color</var> cannot be <a href=#parsed-as-a-css-color-value>parsed as a CSS &lt;color&gt;
+ value</a>, then a <code><a href=#syntaxerror>SyntaxError</a></code> exception must be
+ raised. Otherwise, the gradient must have a new stop placed, at
+ offset <var title="">offset</var> relative to the whole gradient,
+ and with the color obtained by parsing <var title="">color</var> as
+ a CSS &lt;color&gt; value. If multiple stops are added at the same
+ offset on a gradient, they must be placed in the order added, with
+ the first one closest to the start of the gradient, and each
+ subsequent one infinitesimally further along towards the end point
+ (in effect causing all but the first and last stop added at each
+ point to be ignored).</p>
+
+ <p>The <dfn id=dom-context-2d-createlineargradient title=dom-context-2d-createLinearGradient><code>createLinearGradient(<var title="">x0</var>, <var title="">y0</var>, <var title="">x1</var>,
+ <var title="">y1</var>)</code></dfn> method takes four arguments
+ that represent the start point (<var title="">x0</var>, <var title="">y0</var>) and end point (<var title="">x1</var>, <var title="">y1</var>) of the gradient. If any of the arguments to <code title=dom-context-2d-createLinearGradient><a href=#dom-context-2d-createlineargradient>createLinearGradient()</a></code>
+ are infinite or NaN, the method must throw a
+ <code><a href=#notsupportederror>NotSupportedError</a></code> exception. Otherwise, the method must
+ return a linear <code><a href=#canvasgradient>CanvasGradient</a></code> initialized with the
+ specified line.</p>
+
+ <p>Linear gradients must be rendered such that all points on a line
+ perpendicular to the line that crosses the start and end points have
+ the color at the point where those two lines cross (with the colors
+ coming from the <a href=#interpolation>interpolation and
+ extrapolation</a> described above). The points in the linear
+ gradient must be transformed as described by the <a href=#transformations title=dom-context-2d-transformation>current transformation
+ matrix</a> when rendering.</p>
+
+ <p>If <span title=""><var title="">x0</var>&nbsp;=&nbsp;<var title="">x1</var></span> and <span title=""><var title="">y0</var>&nbsp;=&nbsp;<var title="">y1</var></span>, then
+ the linear gradient must paint nothing.</p>
+
+ <p>The <dfn id=dom-context-2d-createradialgradient title=dom-context-2d-createRadialGradient><code>createRadialGradient(<var title="">x0</var>, <var title="">y0</var>, <var title="">r0</var>,
+ <var title="">x1</var>, <var title="">y1</var>, <var title="">r1</var>)</code></dfn> method takes six arguments, the
+ first three representing the start circle with origin (<var title="">x0</var>, <var title="">y0</var>) and radius <var title="">r0</var>, and the last three representing the end circle
+ with origin (<var title="">x1</var>, <var title="">y1</var>) and
+ radius <var title="">r1</var>. The values are in coordinate space
+ units. If any of the arguments are infinite or NaN, a
+ <code><a href=#notsupportederror>NotSupportedError</a></code> exception must be raised. If either
+ of <var title="">r0</var> or <var title="">r1</var> are negative, an
+ <code><a href=#indexsizeerror>IndexSizeError</a></code> exception must be raised. Otherwise,
+ the method must return a radial <code><a href=#canvasgradient>CanvasGradient</a></code>
+ initialized with the two specified circles.</p>
+
+ <p>Radial gradients must be rendered by following these steps:</p>
+
+ <ol><li><p>If <span title=""><var title="">x<sub>0</sub></var>&nbsp;=&nbsp;<var title="">x<sub>1</sub></var></span> and <span title=""><var title="">y<sub>0</sub></var>&nbsp;=&nbsp;<var title="">y<sub>1</sub></var></span> and <span title=""><var title="">r<sub>0</sub></var>&nbsp;=&nbsp;<var title="">r<sub>1</sub></var></span>, then the radial gradient must
+ paint nothing. Abort these steps.</li>
+
+ <li>
+
+ <p>Let <span title="">x(<var title="">&omega;</var>)&nbsp;=&nbsp;(<var title="">x<sub>1</sub></var>-<var title="">x<sub>0</sub></var>)<var title="">&omega;</var>&nbsp;+&nbsp;<var title="">x<sub>0</sub></var></span></p>
+
+ <p>Let <span title="">y(<var title="">&omega;</var>)&nbsp;=&nbsp;(<var title="">y<sub>1</sub></var>-<var title="">y<sub>0</sub></var>)<var title="">&omega;</var>&nbsp;+&nbsp;<var title="">y<sub>0</sub></var></span></p>
+
+ <p>Let <span title="">r(<var title="">&omega;</var>)&nbsp;=&nbsp;(<var title="">r<sub>1</sub></var>-<var title="">r<sub>0</sub></var>)<var title="">&omega;</var>&nbsp;+&nbsp;<var title="">r<sub>0</sub></var></span></p>
+
+ <p>Let the color at <var title="">&omega;</var> be the color at
+ that position on the gradient (with the colors coming from the <a href=#interpolation>interpolation and extrapolation</a>
+ described above).</p>
+
+ </li>
+
+ <li><p>For all values of <var title="">&omega;</var> where <span title="">r(<var title="">&omega;</var>)&nbsp;&gt;&nbsp;0</span>,
+ starting with the value of <var title="">&omega;</var> nearest to
+ positive infinity and ending with the value of <var title="">&omega;</var> nearest to negative infinity, draw the
+ circumference of the circle with radius <span title="">r(<var title="">&omega;</var>)</span> at position (<span title="">x(<var title="">&omega;</var>)</span>, <span title="">y(<var title="">&omega;</var>)</span>), with the color at <var title="">&omega;</var>, but only painting on the parts of the
+ canvas that have not yet been painted on by earlier circles in this
+ step for this rendering of the gradient.</li>
+
+ </ol><p class=note>This effectively creates a cone, touched by the two
+ circles defined in the creation of the gradient, with the part of
+ the cone before the start circle (0.0) using the color of the first
+ offset, the part of the cone after the end circle (1.0) using the
+ color of the last offset, and areas outside the cone untouched by
+ the gradient (transparent black).</p>
+
+ <p>The resulting radial gradient must then be transformed as
+ described by the <a href=#transformations title=dom-context-2d-transformation>current
+ transformation matrix</a> when rendering.</p>
+
+ <p>Gradients must be painted only where the relevant stroking or
+ filling effects requires that they be drawn.</p>
+
+ </div>
+
+ <hr><p>Patterns are represented by objects implementing the opaque
+ <code><a href=#canvaspattern>CanvasPattern</a></code> interface.</p>
+
+ <dl class=domintro><dt><var title="">pattern</var> = <var title="">context</var> . <code title=dom-context-2d-createPattern><a href=#dom-context-2d-createpattern>createPattern</a></code>(<var title="">image</var>, <var title="">repetition</var>)</dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#canvaspattern>CanvasPattern</a></code> object that uses the given image
+ and repeats in the direction(s) given by the <var title="">repetition</var> argument.</p>
+
+ <p>The allowed values for <var title="">repetition</var> are <code title="">repeat</code> (both directions), <code title="">repeat-x</code> (horizontal only), <code title="">repeat-y</code> (vertical only), and <code title="">no-repeat</code> (neither). If the <var title="">repetition</var> argument is empty, the value <code title="">repeat</code> is used.</p>
+
+ <p>If the image has no image data, throws an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception. If the second argument
+ isn't one of the allowed values, throws a <code><a href=#syntaxerror>SyntaxError</a></code>
+ exception. If the image isn't yet fully decoded, then the method
+ returns null.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>To create objects of this type, the <dfn id=dom-context-2d-createpattern title=dom-context-2d-createPattern><code>createPattern(<var title="">image</var>, <var title="">repetition</var>)</code></dfn>
+ method is used. The first argument gives the image to use as the
+ pattern (either an <code><a href=#htmlimageelement>HTMLImageElement</a></code>,
+ <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code>, or <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>
+ object). Modifying this image after calling the <code title=dom-context-2d-createPattern><a href=#dom-context-2d-createpattern>createPattern()</a></code> method
+ must not affect the pattern. The second argument must be a string
+ with one of the following values: <code title="">repeat</code>,
+ <code title="">repeat-x</code>, <code title="">repeat-y</code>,
+ <code title="">no-repeat</code>. If the empty string is specified,
+ <code title="">repeat</code> must be assumed. If an unrecognized value
+ is given, then the user agent must throw a <code><a href=#syntaxerror>SyntaxError</a></code>
+ exception. User agents must recognize the four values described above
+ exactly (e.g. they must not do case folding). Except as specified
+ below, the method must return a <code><a href=#canvaspattern>CanvasPattern</a></code> object
+ suitably initialized.</p>
+
+ <p>The <var title="">image</var> argument is an instance of either
+ <code><a href=#htmlimageelement>HTMLImageElement</a></code>, <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code>, or
+ <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>.</p> <!-- drawImage() has an equivalent
+ paragraph -->
+
+ <p>If the <var title="">image</var> argument is an
+ <code><a href=#htmlimageelement>HTMLImageElement</a></code> object that is not <a href=#img-good title=img-good>fully decodable</a>, or if the <var title="">image</var> argument is an <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>
+ object whose <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code>
+ attribute is either <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code> or <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code>, then the
+ implementation must return null.</p> <!-- drawImage() has an
+ equivalent paragraph -->
+
+ <p>If the <var title="">image</var> argument is an
+ <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code> object with either a horizontal
+ dimension or a vertical dimension equal to zero, then the
+ implementation must throw an <code><a href=#invalidstateerror>InvalidStateError</a></code>
+ exception.</p>
+ <!-- drawImage() has an equivalent paragraph -->
+
+ <p>Patterns must be painted so that the top left of the first image
+ is anchored at the origin of the coordinate space, and images are
+ then repeated horizontally to the left and right, if the
+ <code>repeat-x</code> string was specified, or vertically up and
+ down, if the <code>repeat-y</code> string was specified, or in all
+ four directions all over the canvas, if the <code>repeat</code>
+ string was specified, to create the repeated pattern that is used
+ for rendering. The images are not scaled by this process; one CSS
+ pixel of the image must be painted on one coordinate space unit in
+ generating the repeated pattern. When rendered, however, patterns
+ must actually be painted only where the stroking or filling effect
+ requires that they be drawn, and the repeated pattern must be
+ affected by the current transformation matrix. Pixels not covered by
+ the repeating pattern (if the <code>repeat</code> string was not
+ specified) must be transparent black.</p>
+
+ <p>If the original image data is a bitmap image, the value painted
+ at a point in the area of the repetitions is computed by filtering
+ the original image data. The user agent may use any filtering
+ algorithm (for example bilinear interpolation or nearest-neighbor).
+ When the filtering algorithm requires a pixel value from outside the
+ original image data, it must instead use the value from wrapping the
+ pixel's coordinates to the original image's dimensions. (That is,
+ the filter uses 'repeat' behavior, regardless of the value of
+ <var title="">repetition</var>.)
+ <!-- drawImage() has a similar paragraph with different rules -->
+
+ <p>When the <code title=dom-context-2d-createPattern><a href=#dom-context-2d-createpattern>createPattern()</a></code> method
+ is passed an animated image as its <var title="">image</var>
+ argument, the user agent must use the poster frame of the animation,
+ or, if there is no poster frame, the first frame of the
+ animation.</p>
+ <!-- drawImage() has an equivalent paragraph -->
+
+ <p>When the <var title="">image</var> argument is an
+ <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>, then the frame at the <a href=#current-playback-position>current
+ playback position</a> must be used as the source image, and the
+ source image's dimensions must be the <a href=#concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic width</a> and
+ <a href=#concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</a>
+ of the <a href=#media-resource>media resource</a> (i.e. after any aspect-ratio
+ correction has been applied).</p>
+ <!-- drawImage() has an equivalent paragraph -->
+
+ <!--
+ Requests for v6 features:
+ * apply transforms to patterns, so you don't have to create
+ transformed patterns manually by rendering them to an off-screen
+ canvas then using that canvas as the pattern.
+ -->
+
+ </div>
+
+ <div class=impl>
+
+ <hr><p>If a radial gradient or repeated pattern is used when the
+ transformation matrix is singular, the resulting style must be
+ transparent black (otherwise the gradient or pattern would be
+ collapsed to a point or line, leaving the other pixels undefined).
+ Linear gradients and solid colors always define all points even with
+ singular tranformation matrices.</p>
+
+ </div>
+
+
+
+ <h6 id=line-styles><span class=secno>4.8.11.1.5 </span>Line styles</h6>
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-lineWidth><a href=#dom-context-2d-linewidth>lineWidth</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current line width.</p>
+
+ <p>Can be set, to change the line width. Values that are not
+ finite values greater than zero are ignored.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-lineCap><a href=#dom-context-2d-linecap>lineCap</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current line cap style.</p>
+
+ <p>Can be set, to change the line cap style.</p>
+
+ <p>The possible line cap styles are <code>butt</code>,
+ <code>round</code>, and <code>square</code>. Other values are
+ ignored.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-lineJoin><a href=#dom-context-2d-linejoin>lineJoin</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current line join style.</p>
+
+ <p>Can be set, to change the line join style.</p>
+
+ <p>The possible line join styles are <code>bevel</code>,
+ <code>round</code>, and <code>miter</code>. Other values are
+ ignored.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-miterLimit><a href=#dom-context-2d-miterlimit>miterLimit</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current miter limit ratio.</p>
+
+ <p>Can be set, to change the miter limit ratio. Values that are
+ not finite values greater than zero are ignored.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-context-2d-linewidth title=dom-context-2d-lineWidth><code>lineWidth</code></dfn>
+ attribute gives the width of lines, in coordinate space units. On
+ getting, it must return the current value. On setting, zero,
+ negative, infinite, and NaN values must be ignored, leaving the
+ value unchanged; other values must change the current value to the
+ new value.</p>
+
+ <p>When the context is created, the <code title=dom-context-2d-lineWidth><a href=#dom-context-2d-linewidth>lineWidth</a></code> attribute must
+ initially have the value <code>1.0</code>.</p>
+
+ <hr><p>The <dfn id=dom-context-2d-linecap title=dom-context-2d-lineCap><code>lineCap</code></dfn> attribute
+ defines the type of endings that UAs will place on the end of
+ lines. The three valid values are <code>butt</code>,
+ <code>round</code>, and <code>square</code>. The <code>butt</code>
+ value means that the end of each line has a flat edge perpendicular
+ to the direction of the line (and that no additional line cap is
+ added). The <code>round</code> value means that a semi-circle with
+ the diameter equal to the width of the line must then be added on to
+ the end of the line. The <code>square</code> value means that a
+ rectangle with the length of the line width and the width of half
+ the line width, placed flat against the edge perpendicular to the
+ direction of the line, must be added at the end of each line.</p>
+
+ <p>On getting, it must return the current value. On setting, if the
+ new value is one of the literal strings <code>butt</code>,
+ <code>round</code>, and <code>square</code>, then the current value
+ must be changed to the new value; other values must ignored, leaving
+ the value unchanged.</p>
+
+ <p>When the context is created, the <code title=dom-context-2d-lineCap><a href=#dom-context-2d-linecap>lineCap</a></code> attribute must
+ initially have the value <code>butt</code>.</p>
+
+ <hr><p>The <dfn id=dom-context-2d-linejoin title=dom-context-2d-lineJoin><code>lineJoin</code></dfn>
+ attribute defines the type of corners that UAs will place where two
+ lines meet. The three valid values are <code>bevel</code>,
+ <code>round</code>, and <code>miter</code>.</p>
+
+ <p>On getting, it must return the current value. On setting, if the
+ new value is one of the literal strings <code>bevel</code>,
+ <code>round</code>, and <code>miter</code>, then the current value
+ must be changed to the new value; other values must be ignored,
+ leaving the value unchanged.</p>
+
+ <p>When the context is created, the <code title=dom-context-2d-lineJoin><a href=#dom-context-2d-linejoin>lineJoin</a></code> attribute must
+ initially have the value <code>miter</code>.</p>
+
+ <hr><p>A join exists at any point in a subpath shared by two consecutive
+ lines. When a subpath is closed, then a join also exists at its
+ first point (equivalent to its last point) connecting the first and
+ last lines in the subpath.</p>
+
+ <p>In addition to the point where the join occurs, two additional
+ points are relevant to each join, one for each line: the two corners
+ found half the line width away from the join point, one
+ perpendicular to each line, each on the side furthest from the other
+ line.</p>
+
+ <p>A filled triangle connecting these two opposite corners with a
+ straight line, with the third point of the triangle being the join
+ point, must be rendered at all joins. The <code title=dom-context-2d-lineJoin><a href=#dom-context-2d-linejoin>lineJoin</a></code> attribute controls
+ whether anything else is rendered. The three aforementioned values
+ have the following meanings:</p>
+
+ <p>The <code>bevel</code> value means that this is all that is
+ rendered at joins.</p>
+
+ <p>The <code>round</code> value means that a filled arc connecting
+ the two aforementioned corners of the join, abutting (and not
+ overlapping) the aforementioned triangle, with the diameter equal to
+ the line width and the origin at the point of the join, must be
+ rendered at joins.</p>
+
+ <p>The <code>miter</code> value means that a second filled triangle
+ must (if it can given the miter length) be rendered at the join,
+ with one line being the line between the two aforementioned corners,
+ abutting the first triangle, and the other two being continuations of
+ the outside edges of the two joining lines, as long as required to
+ intersect without going over the miter length.</p>
+
+ <p>The miter length is the distance from the point where the join
+ occurs to the intersection of the line edges on the outside of the
+ join. The miter limit ratio is the maximum allowed ratio of the
+ miter length to half the line width. If the miter length would cause
+ the miter limit ratio to be exceeded, this second triangle must not
+ be rendered.</p>
+
+ <p>The miter limit ratio can be explicitly set using the <dfn id=dom-context-2d-miterlimit title=dom-context-2d-miterLimit><code>miterLimit</code></dfn>
+ attribute. On getting, it must return the current value. On setting,
+ zero, negative, infinite, and NaN values must be ignored, leaving
+ the value unchanged; other values must change the current value to
+ the new value.</p>
+
+ <p>When the context is created, the <code title=dom-context-2d-miterLimit><a href=#dom-context-2d-miterlimit>miterLimit</a></code> attribute must
+ initially have the value <code>10.0</code>.</p>
+
+ <!--
+v6: dashed lines have been requested. Philip Taylor provides these
+notes on what would need to be defined for dashed lines:
+> I don't think it's entirely trivial to add, to the detail that's
+> necessary in a specification. The common graphics APIs (at least
+> Cairo, Quartz and java.awt.Graphics, and any SVG implementation) all
+> have dashes specified by passing an array of dash lengths (alternating
+> on/off), so that should be alright as long as you define what units
+> it's measured in and what happens when you specify an odd number of
+> values and how errors are handled and what happens if you update the
+> array later. But after that, what does it do when stroking multiple
+> subpaths, in terms of offsetting the dashes? When you use strokeRect,
+> where is offset 0? Does moveTo reset the offset? How does it interact
+> with lineCap/lineJoin? All the potential issues need test cases too,
+> and the implementations need to make sure they handle any edge cases
+> that the underlying graphics library does differently. (SVG Tiny 1.2
+> appears to skip some of the problems by leaving things undefined and
+> allowing whatever behavior the graphics library has.)
+
+Another request has been for hairline width lines, that remain
+hairline width with transform. ack Shaun Morris.
+ -->
+
+ </div>
+
+
+ <h6 id=shadows><span class=secno>4.8.11.1.6 </span><dfn>Shadows</dfn></h6>
+
+ <p>All drawing operations are affected by the four global shadow
+ attributes.</p>
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-shadowColor><a href=#dom-context-2d-shadowcolor>shadowColor</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current shadow color.</p>
+
+ <p>Can be set, to change the shadow color. Values that cannot be parsed as CSS colors are ignored.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-shadowOffsetX><a href=#dom-context-2d-shadowoffsetx>shadowOffsetX</a></code> [ = <var title="">value</var> ]</dt>
+ <dt><var title="">context</var> . <code title=dom-context-2d-shadowOffsetY><a href=#dom-context-2d-shadowoffsety>shadowOffsetY</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current shadow offset.</p>
+
+ <p>Can be set, to change the shadow offset. Values that are not finite numbers are ignored.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-shadowBlur><a href=#dom-context-2d-shadowblur>shadowBlur</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current level of blur applied to shadows.</p>
+
+ <p>Can be set, to change the blur level. Values that are not finite numbers greater than or equal to zero are ignored.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-context-2d-shadowcolor title=dom-context-2d-shadowColor><code>shadowColor</code></dfn>
+ attribute sets the color of the shadow.</p>
+
+ <p>When the context is created, the <code title=dom-context-2d-shadowColor><a href=#dom-context-2d-shadowcolor>shadowColor</a></code> attribute
+ initially must be fully-transparent black.</p>
+
+ <p>On getting, the <a href=#serialization-of-a-color title="serialization of a
+ color">serialization of the color</a> must be returned.</p>
+
+ <p>On setting, the new value must be <a href=#parsed-as-a-css-color-value>parsed as a CSS
+ &lt;color&gt; value</a> and the color assigned. If the value
+ cannot be parsed as a CSS &lt;color&gt; value then it must be
+ ignored, and the attribute must retain its previous value. <a href=#refsCSSCOLOR>[CSSCOLOR]</a></p>
+
+ <p>The <dfn id=dom-context-2d-shadowoffsetx title=dom-context-2d-shadowOffsetX><code>shadowOffsetX</code></dfn>
+ and <dfn id=dom-context-2d-shadowoffsety title=dom-context-2d-shadowOffsetY><code>shadowOffsetY</code></dfn>
+ attributes specify the distance that the shadow will be offset in
+ the positive horizontal and positive vertical distance
+ respectively. Their values are in coordinate space units. They are
+ not affected by the current transformation matrix.</p>
+
+ <p>When the context is created, the shadow offset attributes must
+ initially have the value <code>0</code>.</p>
+
+ <p>On getting, they must return their current value. On setting, the
+ attribute being set must be set to the new value, except if the
+ value is infinite or NaN, in which case the new value must be
+ ignored.</p>
+
+ <p>The <dfn id=dom-context-2d-shadowblur title=dom-context-2d-shadowBlur><code>shadowBlur</code></dfn>
+ attribute specifies the level of the blurring effect. (The units do
+ not map to coordinate space units, and are not affected by the
+ current transformation matrix.)</p>
+
+ <p>When the context is created, the <code title=dom-context-2d-shadowBlur><a href=#dom-context-2d-shadowblur>shadowBlur</a></code> attribute must
+ initially have the value <code>0</code>.</p>
+
+ <p>On getting, the attribute must return its current value. On
+ setting the attribute must be set to the new value, except if the
+ value is negative, infinite or NaN, in which case the new value must
+ be ignored.</p>
+
+ <p><dfn id=when-shadows-are-drawn title="when shadows are drawn">Shadows are only drawn
+ if</dfn> the opacity component of the alpha component of the color
+ of <code title=dom-context-2d-shadowColor><a href=#dom-context-2d-shadowcolor>shadowColor</a></code> is
+ non-zero and either the <code title=dom-context-2d-shadowBlur><a href=#dom-context-2d-shadowblur>shadowBlur</a></code> is non-zero, or
+ the <code title=dom-context-2d-shadowOffsetX><a href=#dom-context-2d-shadowoffsetx>shadowOffsetX</a></code>
+ is non-zero, or the <code title=dom-context-2d-shadowOffsetY><a href=#dom-context-2d-shadowoffsety>shadowOffsetY</a></code> is
+ non-zero.</p>
+
+ <p class=critical>It is likely that this will change: browser
+ vendors have indicated an interest in changing the processing model
+ for shadows such that they only draw when the composition operator
+ is "source-over" (the default). <a href=http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-May/thread.html#31457>Read
+ more...</a></p>
+
+ <p><a href=#when-shadows-are-drawn>When shadows are drawn</a>, they must be rendered as follows:</p>
+
+ <ol><li> <p>Let <var title="">A</var> be an infinite transparent black
+ bitmap on which the source image for which a shadow is being
+ created has been rendered.</p> </li>
+
+ <li> <p>Let <var title="">B</var> be an infinite transparent black
+ bitmap, with a coordinate space and an origin identical to <var title="">A</var>.</p> </li>
+
+ <li> <p>Copy the alpha channel of <var title="">A</var> to <var title="">B</var>, offset by <code title=dom-context-2d-shadowOffsetX><a href=#dom-context-2d-shadowoffsetx>shadowOffsetX</a></code> in the
+ positive <var title="">x</var> direction, and <code title=dom-context-2d-shadowOffsetY><a href=#dom-context-2d-shadowoffsety>shadowOffsetY</a></code> in the
+ positive <var title="">y</var> direction.</p> </li>
+
+ <li> <p>If <code title=dom-context-2d-shadowBlur><a href=#dom-context-2d-shadowblur>shadowBlur</a></code> is greater than
+ 0:</p>
+
+ <ol><li> <p>Let <var title="">&sigma;</var> be half the value of
+ <code title=dom-context-2d-shadowBlur><a href=#dom-context-2d-shadowblur>shadowBlur</a></code>.</li>
+
+ <li> <p>Perform a 2D Gaussian Blur on <var title="">B</var>,
+ using <var title="">&sigma;</var> as the standard deviation.</p>
+ <!-- wish i could find a reference for this --> </li>
+
+ </ol><p>User agents may limit values of <var title="">&sigma;</var> to
+ an implementation-specific maximum value to avoid exceeding
+ hardware limitations during the Gaussian blur operation.</p>
+
+ </li>
+
+ <li> <p>Set the red, green, and blue components of every pixel in
+ <var title="">B</var> to the red, green, and blue components
+ (respectively) of the color of <code title=dom-context-2d-shadowColor><a href=#dom-context-2d-shadowcolor>shadowColor</a></code>.</p> </li>
+
+ <li> <p>Multiply the alpha component of every pixel in <var title="">B</var> by the alpha component of the color of <code title=dom-context-2d-shadowColor><a href=#dom-context-2d-shadowcolor>shadowColor</a></code>.</p> </li>
+
+ <li> <p>The shadow is in the bitmap <var title="">B</var>, and is
+ rendered as part of the <a href=#drawing-model>drawing model</a> described below.</p> </li>
+
+ </ol></div>
+
+ <p>If the current composition operation is <code title=gcop-copy><a href=#gcop-copy>copy</a></code>, shadows effectively won't render
+ (since the shape will overwrite the shadow).</p>
+
+
+ <h6 id=simple-shapes-(rectangles)><span class=secno>4.8.11.1.7 </span>Simple shapes (rectangles)</h6>
+
+ <p>There are three methods that immediately draw rectangles to the
+ bitmap. They each take four arguments; the first two give the <var title="">x</var> and <var title="">y</var> coordinates of the top
+ left of the rectangle, and the second two give the width <var title="">w</var> and height <var title="">h</var> of the rectangle,
+ respectively.</p>
+
+ <div class=impl>
+
+ <p>The <a href=#transformations title=dom-context-2d-transformation>current
+ transformation matrix</a> must be applied to the following four
+ coordinates, which form the path that must then be closed to get the
+ specified rectangle: <span title="">(<var title="">x</var>, <var title="">y</var>)</span>, <span title="">(<span title=""><var title="">x</var>+<var title="">w</var></span>, <var title="">y</var>)</span>,
+ <span title="">(<span title=""><var title="">x</var>+<var title="">w</var></span>,
+ <span title=""><var title="">y</var>+<var title="">h</var></span>)</span>,
+ <span title="">(<var title="">x</var>, <span title=""><var title="">y</var>+<var title="">h</var></span>)</span>.</p>
+
+ <p>Shapes are painted without affecting the current path, and are
+ subject to the <a href=#clipping-region title="clipping region">clipping region</a>,
+ and, with the exception of <code title=dom-context-2d-clearRect><a href=#dom-context-2d-clearrect>clearRect()</a></code>, also <a href=#shadows title=shadows>shadow effects</a>, <a href=#dom-context-2d-globalalpha title=dom-context-2d-globalAlpha>global alpha</a>, and <a href=#dom-context-2d-globalcompositeoperation title=dom-context-2d-globalCompositeOperation>global composition
+ operators</a>.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-clearRect><a href=#dom-context-2d-clearrect>clearRect</a></code>(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</dt>
+
+ <dd>
+
+ <p>Clears all pixels on the canvas in the given rectangle to transparent black.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-fillRect><a href=#dom-context-2d-fillrect>fillRect</a></code>(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</dt>
+
+ <dd>
+
+ <p>Paints the given rectangle onto the canvas, using the current fill style.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-strokeRect><a href=#dom-context-2d-strokerect>strokeRect</a></code>(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</dt>
+
+ <dd>
+
+ <p>Paints the box that outlines the given rectangle onto the canvas, using the current stroke style.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-context-2d-clearrect title=dom-context-2d-clearRect><code>clearRect(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</code></dfn> method must clear the pixels in the
+ specified rectangle that also intersect the current clipping region
+ to a fully transparent black, erasing any previous image. If either
+ height or width are zero, this method has no effect.</p>
+
+ <p>The <dfn id=dom-context-2d-fillrect title=dom-context-2d-fillRect><code>fillRect(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</code></dfn> method must paint the specified
+ rectangular area using the <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code>. If either height
+ or width are zero, this method has no effect.</p>
+
+ <p>The <dfn id=dom-context-2d-strokerect title=dom-context-2d-strokeRect><code>strokeRect(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</code></dfn> method must stroke the specified
+ rectangle's path using the <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code>, <code title=dom-context-2d-lineWidth><a href=#dom-context-2d-linewidth>lineWidth</a></code>, <code title=dom-context-2d-lineJoin><a href=#dom-context-2d-linejoin>lineJoin</a></code>, and (if
+ appropriate) <code title=dom-context-2d-miterLimit><a href=#dom-context-2d-miterlimit>miterLimit</a></code> attributes. If
+ both height and width are zero, this method has no effect, since
+ there is no path to stroke (it's a point). If only one of the two is
+ zero, then the method will draw a line instead (the path for the
+ outline is just a straight line along the non-zero dimension).</p>
+
+ </div>
+
+
+ <h6 id=complex-shapes-(paths)><span class=secno>4.8.11.1.8 </span>Complex shapes (paths)</h6>
+
+ <p>The context always has a current path. There is only one current
+ path, it is not part of the <a href=#drawing-state>drawing state</a>.</p>
+
+ <p>A <dfn id=path>path</dfn> has a list of zero or more subpaths. Each
+ subpath consists of a list of one or more points, connected by
+ straight or curved lines, and a flag indicating whether the subpath
+ is closed or not. A closed subpath is one where the last point of
+ the subpath is connected to the first point of the subpath by a
+ straight line. Subpaths with fewer than two points are ignored when
+ painting the path.</p>
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-beginPath><a href=#dom-context-2d-beginpath>beginPath</a></code>()</dt>
+
+ <dd>
+
+ <p>Resets the current path.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-moveTo><a href=#dom-context-2d-moveto>moveTo</a></code>(<var title="">x</var>, <var title="">y</var>)</dt>
+
+ <dd>
+
+ <p>Creates a new subpath with the given point.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-closePath><a href=#dom-context-2d-closepath>closePath</a></code>()</dt>
+
+ <dd>
+
+ <p>Marks the current subpath as closed, and starts a new subpath with a point the same as the start and end of the newly closed subpath.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-lineTo><a href=#dom-context-2d-lineto>lineTo</a></code>(<var title="">x</var>, <var title="">y</var>)</dt>
+
+ <dd>
+
+ <p>Adds the given point to the current subpath, connected to the previous one by a straight line.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-quadraticCurveTo><a href=#dom-context-2d-quadraticcurveto>quadraticCurveTo</a></code>(<var title="">cpx</var>, <var title="">cpy</var>, <var title="">x</var>, <var title="">y</var>)</dt>
+
+ <dd>
+
+ <p>Adds the given point to the current subpath, connected to the previous one by a quadratic B&eacute;zier curve with the given control point.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-bezierCurveTo><a href=#dom-context-2d-beziercurveto>bezierCurveTo</a></code>(<var title="">cp1x</var>, <var title="">cp1y</var>, <var title="">cp2x</var>, <var title="">cp2y</var>, <var title="">x</var>, <var title="">y</var>)</dt>
+
+ <dd>
+
+ <p>Adds the given point to the current subpath, connected to the previous one by a cubic B&eacute;zier curve with the given control points.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-arcTo><a href=#dom-context-2d-arcto>arcTo</a></code>(<var title="">x1</var>, <var title="">y1</var>, <var title="">x2</var>, <var title="">y2</var>, <var title="">radius</var>)</dt>
+
+ <dd>
+
+ <p>Adds an arc with the given control points and radius to the
+ current subpath, connected to the previous point by a straight
+ line.</p>
+
+ <p>Throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception if the given
+ radius is negative.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-arc><a href=#dom-context-2d-arc>arc</a></code>(<var title="">x</var>, <var title="">y</var>, <var title="">radius</var>, <var title="">startAngle</var>, <var title="">endAngle</var> [, <var title="">anticlockwise</var> ] )</dt>
+
+ <dd>
+
+ <p>Adds points to the subpath such that the arc described by the
+ circumference of the circle described by the arguments, starting
+ at the given start angle and ending at the given end angle, going
+ in the given direction (defaulting to clockwise), is added to the
+ path, connected to the previous point by a straight line.</p>
+
+ <p>Throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception if the given
+ radius is negative.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-rect><a href=#dom-context-2d-rect>rect</a></code>(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</dt>
+
+ <dd>
+
+ <p>Adds a new closed subpath to the path, representing the given rectangle.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-fill><a href=#dom-context-2d-fill>fill</a></code>()</dt>
+
+ <dd>
+
+ <p>Fills the subpaths with the current fill style.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-stroke><a href=#dom-context-2d-stroke>stroke</a></code>()</dt>
+
+ <dd>
+
+ <p>Strokes the subpaths with the current stroke style.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-drawSystemFocusRing><a href=#dom-context-2d-drawsystemfocusring>drawSystemFocusRing</a></code>(<var title="">element</var>)</dt>
+
+ <dd>
+
+ <p>If the given element is focused, draws a focus ring around the
+ current path, following the platform conventions for focus
+ rings.</p>
+
+ </dd>
+
+ <dt><var title="">shouldDraw</var> = <var title="">context</var> . <code title=dom-context-2d-drawCustomFocusRing><a href=#dom-context-2d-drawcustomfocusring>drawCustomFocusRing</a></code>(<var title="">element</var>)</dt>
+
+ <dd>
+
+ <p>If the given element is focused, and the user has configured
+ his system to draw focus rings in a particular manner (for
+ example, high contrast focus rings), draws a focus ring around the
+ current path and returns false.</p>
+
+ <p>Otherwise, returns true if the given element is focused, and
+ false otherwise. This can thus be used to determine when to draw a
+ focus ring (see <a href=#drawCustomFocusRingExample>the
+ example</a> below).</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-scrollPathIntoView><a href=#dom-context-2d-scrollpathintoview>scrollPathIntoView</a></code>()</dt>
+
+ <dd>
+
+ <p>Scrolls the current path into view. This is especially useful
+ on devices with small screens, where the whole canvas might not be
+ visible at once.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-clip><a href=#dom-context-2d-clip>clip</a></code>()</dt>
+
+ <dd>
+
+ <p>Further constrains the clipping region to the given path.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-isPointInPath><a href=#dom-context-2d-ispointinpath>isPointInPath</a></code>(<var title="">x</var>, <var title="">y</var>)</dt>
+
+ <dd>
+
+ <p>Returns true if the given point is in the current path.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>Initially, the context's path must have zero subpaths.</p>
+
+ <p>The points and lines added to the path by these methods must be
+ transformed according to the <a href=#transformations title=dom-context-2d-transformation>current transformation
+ matrix</a> as they are added.</p>
+
+
+ <p>The <dfn id=dom-context-2d-beginpath title=dom-context-2d-beginPath><code>beginPath()</code></dfn>
+ method must empty the list of subpaths so that the context once
+ again has zero subpaths.</p>
+
+
+ <p>The <dfn id=dom-context-2d-moveto title=dom-context-2d-moveTo><code>moveTo(<var title="">x</var>, <var title="">y</var>)</code></dfn> method must
+ create a new subpath with the specified point as its first (and
+ only) point.</p>
+
+ <p>When the user agent is to <dfn id=ensure-there-is-a-subpath>ensure there is a subpath</dfn>
+ for a coordinate (<var title="">x</var>, <var title="">y</var>), the
+ user agent must check to see if the context has any subpaths, and if
+ it does not, then the user agent must create a new subpath with the
+ point (<var title="">x</var>, <var title="">y</var>) as its first
+ (and only) point, as if the <code title=dom-context-2d-moveTo><a href=#dom-context-2d-moveto>moveTo()</a></code> method had been
+ called.</p>
+
+
+ <p>The <dfn id=dom-context-2d-closepath title=dom-context-2d-closePath><code>closePath()</code></dfn>
+ method must do nothing if the context has no subpaths. Otherwise, it
+ must mark the last subpath as closed, create a new subpath whose
+ first point is the same as the previous subpath's first point, and
+ finally add this new subpath to the path.</p>
+
+ <p class=note>If the last subpath had more than one point in its
+ list of points, then this is equivalent to adding a straight line
+ connecting the last point back to the first point, thus "closing"
+ the shape, and then repeating the last (possibly implied) <code title=dom-context-2d-moveTo><a href=#dom-context-2d-moveto>moveTo()</a></code> call.</p>
+
+
+ <p>New points and the lines connecting them are added to subpaths
+ using the methods described below. In all cases, the methods only
+ modify the last subpath in the context's paths.</p>
+
+
+ <p>The <dfn id=dom-context-2d-lineto title=dom-context-2d-lineTo><code>lineTo(<var title="">x</var>, <var title="">y</var>)</code></dfn> method must
+ <a href=#ensure-there-is-a-subpath>ensure there is a subpath</a> for <span title="">(<var title="">x</var>, <var title="">y</var>)</span> if the context has
+ no subpaths. Otherwise, it must connect the last point in the
+ subpath to the given point (<var title="">x</var>, <var title="">y</var>) using a straight line, and must then add the given
+ point (<var title="">x</var>, <var title="">y</var>) to the
+ subpath.</p>
+
+
+ <p>The <dfn id=dom-context-2d-quadraticcurveto title=dom-context-2d-quadraticCurveTo><code>quadraticCurveTo(<var title="">cpx</var>, <var title="">cpy</var>, <var title="">x</var>,
+ <var title="">y</var>)</code></dfn> method must <a href=#ensure-there-is-a-subpath>ensure there
+ is a subpath</a> for <span title="">(<var title="">cpx</var>,
+ <var title="">cpy</var>)</span>, and then must connect the last
+ point in the subpath to the given point (<var title="">x</var>, <var title="">y</var>) using a quadratic B&eacute;zier curve with control
+ point (<var title="">cpx</var>, <var title="">cpy</var>), and must
+ then add the given point (<var title="">x</var>, <var title="">y</var>) to the subpath. <a href=#refsBEZIER>[BEZIER]</a></p>
+
+
+ <p>The <dfn id=dom-context-2d-beziercurveto title=dom-context-2d-bezierCurveTo><code>bezierCurveTo(<var title="">cp1x</var>, <var title="">cp1y</var>, <var title="">cp2x</var>, <var title="">cp2y</var>, <var title="">x</var>, <var title="">y</var>)</code></dfn> method must
+ <a href=#ensure-there-is-a-subpath>ensure there is a subpath</a> for <span title="">(<var title="">cp1x</var>, <var title="">cp1y</var>)</span>, and then must
+ connect the last point in the subpath to the given point (<var title="">x</var>, <var title="">y</var>) using a cubic B&eacute;zier
+ curve with control points (<var title="">cp1x</var>, <var title="">cp1y</var>) and (<var title="">cp2x</var>, <var title="">cp2y</var>). Then, it must add the point (<var title="">x</var>, <var title="">y</var>) to the subpath. <a href=#refsBEZIER>[BEZIER]</a></p>
+
+ <hr><p>The <dfn id=dom-context-2d-arcto title=dom-context-2d-arcTo><code>arcTo(<var title="">x1</var>, <var title="">y1</var>, <var title="">x2</var>,
+ <var title="">y2</var>, <var title="">radius</var>)</code></dfn>
+ method must first <a href=#ensure-there-is-a-subpath>ensure there is a subpath</a> for <span title="">(<var title="">x1</var>, <var title="">y1</var>)</span>. Then, the behavior depends on the
+ arguments and the last point in the subpath, as described below.</p>
+
+ <p>Negative values for <var title="">radius</var> must cause the
+ implementation to throw an <code><a href=#indexsizeerror>IndexSizeError</a></code>
+ exception.</p>
+
+ <p>Let the point (<var title="">x0</var>, <var title="">y0</var>) be
+ the last point in the subpath.</p>
+
+ <p>If the point (<var title="">x0</var>, <var title="">y0</var>) is
+ equal to the point (<var title="">x1</var>, <var title="">y1</var>),
+ or if the point (<var title="">x1</var>, <var title="">y1</var>) is
+ equal to the point (<var title="">x2</var>, <var title="">y2</var>),
+ or if the radius <var title="">radius</var> is zero, then the method
+ must add the point (<var title="">x1</var>, <var title="">y1</var>)
+ to the subpath, and connect that point to the previous point (<var title="">x0</var>, <var title="">y0</var>) by a straight line.</p>
+
+ <p>Otherwise, if the points (<var title="">x0</var>, <var title="">y0</var>), (<var title="">x1</var>, <var title="">y1</var>), and (<var title="">x2</var>, <var title="">y2</var>) all lie on a single straight line, then the
+ method must add the point (<var title="">x1</var>, <var title="">y1</var>) to the subpath, and connect that point to the
+ previous point (<var title="">x0</var>, <var title="">y0</var>) by a
+ straight line.</p>
+
+ <p>Otherwise, let <var title="">The Arc</var> be the shortest arc
+ given by circumference of the circle that has radius <var title="">radius</var>, and that has one point tangent to the
+ half-infinite line that crosses the point (<var title="">x0</var>,
+ <var title="">y0</var>) and ends at the point (<var title="">x1</var>, <var title="">y1</var>), and that has a different
+ point tangent to the half-infinite line that ends at the point (<var title="">x1</var>, <var title="">y1</var>) and crosses the point
+ (<var title="">x2</var>, <var title="">y2</var>). The points at
+ which this circle touches these two lines are called the start and
+ end tangent points respectively. The method must connect the point
+ (<var title="">x0</var>, <var title="">y0</var>) to the start
+ tangent point by a straight line, adding the start tangent point to
+ the subpath, and then must connect the start tangent point to the
+ end tangent point by <var title="">The Arc</var>, adding the end
+ tangent point to the subpath.</p>
+
+ <hr><p>The <dfn id=dom-context-2d-arc title=dom-context-2d-arc><code>arc(<var title="">x</var>, <var title="">y</var>, <var title="">radius</var>,
+ <var title="">startAngle</var>, <var title="">endAngle</var>, <var title="">anticlockwise</var>)</code></dfn> method draws an arc. If
+ the context has any subpaths, then the method must add a straight
+ line from the last point in the subpath to the start point of the
+ arc. In any case, it must draw the arc between the start point of
+ the arc and the end point of the arc, and add the start and end
+ points of the arc to the subpath. The arc and its start and end
+ points are defined as follows:</p>
+
+ <p>Consider a circle that has its origin at (<var title="">x</var>,
+ <var title="">y</var>) and that has radius <var title="">radius</var>. The points at <var title="">startAngle</var>
+ and <var title="">endAngle</var> along this circle's circumference,
+ measured in radians clockwise from the positive x-axis, are the
+ start and end points respectively.</p>
+
+ <p>If the <var title="">anticlockwise</var> argument is omitted or
+ false and <span title=""><var title="">endAngle</var>-<var title="">startAngle</var></span> is equal to or greater than <span title="">2&pi;</span>, or, if the <var title="">anticlockwise</var>
+ argument is <em>true</em> and <span title=""><var title="">startAngle</var>-<var title="">endAngle</var></span> is
+ equal to or greater than <span title="">2&pi;</span>, then the arc
+ is the whole circumference of this circle.</p>
+
+ <p>Otherwise, the arc is the path along the circumference of this
+ circle from the start point to the end point, going anti-clockwise
+ if the <var title="">anticlockwise</var> argument is true, and
+ clockwise otherwise. Since the points are on the circle, as opposed
+ to being simply angles from zero, the arc can never cover an angle
+ greater than <span title="">2&pi;</span> radians. If the two points are the
+ same, or if the radius is zero, then the arc is defined as being of
+ zero length in both directions.</p>
+
+ <p>Negative values for <var title="">radius</var> must cause the
+ implementation to throw an <code><a href=#indexsizeerror>IndexSizeError</a></code>
+ exception.</p>
+
+ <hr><p>The <dfn id=dom-context-2d-rect title=dom-context-2d-rect><code>rect(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</code></dfn> method must create a new subpath
+ containing just the four points (<var title="">x</var>, <var title="">y</var>), (<var title="">x</var>+<var title="">w</var>,
+ <var title="">y</var>), (<var title="">x</var>+<var title="">w</var>, <var title="">y</var>+<var title="">h</var>),
+ (<var title="">x</var>, <var title="">y</var>+<var title="">h</var>), with those four points connected by straight
+ lines, and must then mark the subpath as closed. It must then create
+ a new subpath with the point (<var title="">x</var>, <var title="">y</var>) as the only point in the subpath.</p>
+
+
+ <!-- v6 feature request:
+ * points as a primitive shape
+ http://home.comcast.net/~urbanjost/canvas/vogle4.html
+ -->
+
+
+ <p>The <dfn id=dom-context-2d-fill title=dom-context-2d-fill><code>fill()</code></dfn>
+ method must fill all the subpaths of the current path, using
+ <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code>, and using
+ the non-zero winding number rule. Open subpaths must be implicitly
+ closed when being filled (without affecting the actual
+ subpaths).</p>
+
+ <p class=note>Thus, if two overlapping but otherwise independent
+ subpaths have opposite windings, they cancel out and result in no
+ fill. If they have the same winding, that area just gets painted
+ once.</p>
+
+ <p>The <dfn id=dom-context-2d-stroke title=dom-context-2d-stroke><code>stroke()</code></dfn> method
+ must calculate the strokes of all the subpaths of the current path,
+ using the <code title=dom-context-2d-lineWidth><a href=#dom-context-2d-linewidth>lineWidth</a></code>,
+ <code title=dom-context-2d-lineCap><a href=#dom-context-2d-linecap>lineCap</a></code>, <code title=dom-context-2d-lineJoin><a href=#dom-context-2d-linejoin>lineJoin</a></code>, and (if
+ appropriate) <code title=dom-context-2d-miterLimit><a href=#dom-context-2d-miterlimit>miterLimit</a></code> attributes, and
+ then fill the combined stroke area using the <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code>
+ attribute.</p>
+
+ <p class=note>Since the subpaths are all stroked as one,
+ overlapping parts of the paths in one stroke operation are treated
+ as if their union was what was painted.</p>
+
+ <p>Paths, when filled or stroked, must be painted without affecting
+ the current path, and must be subject to <a href=#shadows title=shadows>shadow effects</a>, <a href=#dom-context-2d-globalalpha title=dom-context-2d-globalAlpha>global alpha</a>, the <a href=#clipping-region title="clipping region">clipping region</a>, and <a href=#dom-context-2d-globalcompositeoperation title=dom-context-2d-globalCompositeOperation>global composition
+ operators</a>. (Transformations affect the path when the path is
+ created, not when it is painted, though the stroke <em>style</em> is
+ still affected by the transformation during painting.)</p>
+
+ <p>Zero-length line segments must be pruned before stroking a
+ path. Empty subpaths must be ignored.</p>
+
+ <hr><p id=dom-context-2d-drawosfocusring>The <dfn id=dom-context-2d-drawsystemfocusring title=dom-context-2d-drawSystemFocusRing><code>drawSystemFocusRing(<var title="">element</var>)</code></dfn> method, when invoked, must run
+ the following steps:</p>
+
+ <ol><li><p>If <var title="">element</var> is not focused or is not a
+ descendant of the element with whose context the method is
+ associated, then abort these steps.</li>
+
+ <li>
+
+ <p>If the user has requested the use of particular focus rings
+ (e.g. high-contrast focus rings), or if the <var title="">element</var> would have a focus ring drawn around it,
+ then draw a focus ring of the appropriate style along the path,
+ following platform conventions, and abort these steps.</p>
+
+ <p class=note>Some platforms only draw focus rings around
+ elements that have been focused from the keyboard, and not those
+ focused from the mouse. Other platforms simply don't draw focus
+ rings around some elements at all unless relevant accessibility
+ features are enabled. This API is intended to follow these
+ conventions. User agents that implement distinctions based on the
+ manner in which the element was focused are encouraged to classify
+ focus driven by the <code title=dom-focus><a href=#dom-focus>focus()</a></code> method
+ based on the kind of user interaction event from which the call
+ was triggered (if any).</p>
+
+ <p>The focus ring should not be subject to the <a href=#shadows title=shadows>shadow effects</a>, the <a href=#dom-context-2d-globalalpha title=dom-context-2d-globalAlpha>global alpha</a>, or the <a href=#dom-context-2d-globalcompositeoperation title=dom-context-2d-globalCompositeOperation>global composition
+ operators</a>, but <em>should</em> be subject to the <a href=#clipping-region title="clipping region">clipping region</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Optionally, <a href=#inform>inform the user</a> that the
+ focus is at the location given by the path. User agents may wait
+ until the next time the <a href=#event-loop>event loop</a> reaches its
+ "update the rendering" step to optionally inform the user.</p>
+
+ </li>
+
+ </ol><p>The <dfn id=dom-context-2d-drawcustomfocusring title=dom-context-2d-drawCustomFocusRing><code>drawCustomFocusRing(<var title="">element</var>)</code></dfn> method, when invoked, must run
+ the following steps:</p>
+
+ <ol><li><p>If <var title="">element</var> is not focused or is not a
+ descendant of the element with whose context the method is
+ associated, then return false and abort these steps.</li>
+
+ <li>
+
+ <p>If the user has requested the use of particular focus rings
+ (e.g. high-contrast focus rings), then draw a focus ring of the
+ appropriate style along the path, return false, and abort these
+ steps.</p>
+
+ <p>The focus ring should not be subject to the <a href=#shadows title=shadows>shadow effects</a>, the <a href=#dom-context-2d-globalalpha title=dom-context-2d-globalAlpha>global alpha</a>, or the <a href=#dom-context-2d-globalcompositeoperation title=dom-context-2d-globalCompositeOperation>global composition
+ operators</a>, but <em>should</em> be subject to the <a href=#clipping-region title="clipping region">clipping region</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Optionally, <a href=#inform>inform the user</a> that the
+ focus is at the location given by the path. User agents may wait
+ until the next time the <a href=#event-loop>event loop</a> reaches its
+ "update the rendering" step to optionally inform the user.</p>
+
+ </li>
+
+ <li><p>Return true.</li>
+
+ </ol><p>The <dfn id=dom-context-2d-scrollpathintoview title=dom-context-2d-scrollPathIntoView><code>scrollPathIntoView()</code></dfn>
+ method, when invoked, must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">notional child</var> be a hypothetical
+ element that is a rendered child of the <code><a href=#the-canvas-element>canvas</a></code> element
+ whose dimensions are exactly the rectangle of the bounding box of
+ the current path.</li>
+
+ <li><p><span title="scroll an element into view">Scroll <var title="">notional child</var> into view</span> with the <var title="">align to top flag</var> set.</p>
+
+ <li><p>Optionally, <a href=#inform>inform the user</a> that the
+ caret and/or selection cover <var title="">the specified
+ rectangle</var> of the canvas. User agents may wait until the next
+ time the <a href=#event-loop>event loop</a> reaches its "update the rendering"
+ step to optionally inform the user.</li>
+
+ </ol><p class=note id=inform>"Inform the user", as used in this
+ section, could mean calling a system accessibility API, which would
+ notify assistive technologies such as magnification tools. To
+ properly drive magnification based on a focus change, a system
+ accessibility API driving a screen magnifier needs the bounds for
+ the newly focused object. The methods above are intended to enable
+ this by allowing the user agent to report the bounding box of the
+ path used to render the focus ring as the bounds of the <var title="">element</var> element passed as an argument, if that
+ element is focused, and the bounding box of the area to which the
+ user agent is scrolling as the bounding box of the current
+ selection.</p>
+
+ <hr><p>The <dfn id=dom-context-2d-clip title=dom-context-2d-clip><code>clip()</code></dfn>
+ method must create a new <dfn id=clipping-region>clipping region</dfn> by calculating
+ the intersection of the current clipping region and the area
+ described by the current path, using the non-zero winding number
+ rule. Open subpaths must be implicitly closed when computing the
+ clipping region, without affecting the actual subpaths. The new
+ clipping region replaces the current clipping region.</p>
+
+ <p>When the context is initialized, the clipping region must be set
+ to the rectangle with the top left corner at (0,0) and the width and
+ height of the coordinate space.</p>
+
+ <!-- v6
+ Jordan OSETE suggests:
+ * support ways of extending the clipping region (union instead of intersection)
+ - also "add", "subtract", "replace", "intersect" and "xor"
+ * support ways of resetting the clipping region without save/restore
+ -->
+
+ <hr><p>The <dfn id=dom-context-2d-ispointinpath title=dom-context-2d-isPointInPath><code>isPointInPath(<var title="">x</var>, <var title="">y</var>)</code></dfn> method must
+ return true if the point given by the <var title="">x</var> and <var title="">y</var> coordinates passed to the method, when treated as
+ coordinates in the canvas coordinate space unaffected by the current
+ transformation, is inside the current path as determined by the
+ non-zero winding number rule; and must return false
+ otherwise. Points on the path itself are considered to be inside the
+ path. If either of the arguments is infinite or NaN, then the method
+ must return false.</p>
+
+ </div>
+
+
+ <div class=example id=drawCustomFocusRingExample>
+
+ <p>This <code><a href=#the-canvas-element>canvas</a></code> element has a couple of checkboxes. The
+ path-related commands are highlighted:</p>
+
+ <pre>&lt;canvas height=400 width=750&gt;
+ &lt;label&gt;&lt;input type=checkbox id=showA&gt; Show As&lt;/label&gt;
+ &lt;label&gt;&lt;input type=checkbox id=showB&gt; Show Bs&lt;/label&gt;
+ &lt;!-- ... --&gt;
+&lt;/canvas&gt;
+&lt;script&gt;
+ function drawCheckbox(context, element, x, y, paint) {
+ context.save();
+ context.font = '10px sans-serif';
+ context.textAlign = 'left';
+ context.textBaseline = 'middle';
+ var metrics = context.measureText(element.labels[0].textContent);
+ if (paint) {
+<strong> context.beginPath();
+ context.strokeStyle = 'black';
+ context.rect(x-5, y-5, 10, 10);
+ context.stroke();
+</strong> if (element.checked) {
+<strong> context.fillStyle = 'black';
+ context.fill();
+</strong> }
+ context.fillText(element.labels[0].textContent, x+5, y);
+ }
+<strong> context.beginPath();
+ context.rect(x-7, y-7, 12 + metrics.width+2, 14);
+ if (paint &amp;&amp; context.drawCustomFocusRing(element)) {
+ context.strokeStyle = 'silver';
+ context.stroke();
+ }
+</strong> context.restore();
+ }
+ function drawBase() { /* ... */ }
+ function drawAs() { /* ... */ }
+ function drawBs() { /* ... */ }
+ function redraw() {
+ var canvas = document.getElementsByTagName('canvas')[0];
+ var context = canvas.getContext('2d');
+ context.clearRect(0, 0, canvas.width, canvas.height);
+ drawCheckbox(context, document.getElementById('showA'), 20, 40, true);
+ drawCheckbox(context, document.getElementById('showB'), 20, 60, true);
+ drawBase();
+ if (document.getElementById('showA').checked)
+ drawAs();
+ if (document.getElementById('showB').checked)
+ drawBs();
+ }
+ function processClick(event) {
+ var canvas = document.getElementsByTagName('canvas')[0];
+ var context = canvas.getContext('2d');
+ var x = event.clientX;
+ var y = event.clientY;
+ while (node) {
+ x -= node.offsetLeft - node.scrollLeft;
+ y -= node.offsetTop - node.scrollTop;
+ node = node.offsetParent;
+ }
+ drawCheckbox(context, document.getElementById('showA'), 20, 40, false);
+ if (<strong>context.isPointInPath(x, y)</strong>)
+ document.getElementById('showA').checked = !(document.getElementById('showA').checked);
+ drawCheckbox(context, document.getElementById('showB'), 20, 60, false);
+ if (<strong>context.isPointInPath(x, y)</strong>)
+ document.getElementById('showB').checked = !(document.getElementById('showB').checked);
+ redraw();
+ }
+ document.getElementsByTagName('canvas')[0].addEventListener('focus', redraw, true);
+ document.getElementsByTagName('canvas')[0].addEventListener('blur', redraw, true);
+ document.getElementsByTagName('canvas')[0].addEventListener('change', redraw, true);
+ document.getElementsByTagName('canvas')[0].addEventListener('click', processClick, false);
+ redraw();
+&lt;/script&gt;</pre>
+<!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/340 -->
+
+ </div>
+
+
+
+
+ <h6 id=text-0><span class=secno>4.8.11.1.9 </span>Text</h6> <!-- a v3 feature -->
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-font><a href=#dom-context-2d-font>font</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current font settings.</p>
+
+ <p>Can be set, to change the font. The syntax is the same as for
+ the CSS 'font' property; values that cannot be parsed as CSS font
+ values are ignored.</p>
+
+ <p>Relative keywords and lengths are computed relative to the font
+ of the <code><a href=#the-canvas-element>canvas</a></code> element.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current text alignment settings.</p>
+
+ <p>Can be set, to change the alignment. The possible values are
+ <code title="">start</code>, <code title="">end</code>, <code title="">left</code>, <code title="">right</code>, and <code title="">center</code>. Other values are ignored. The default is
+ <code title="">start</code>.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current baseline alignment settings.</p>
+
+ <p>Can be set, to change the baseline alignment. The possible
+ values and their meanings are given below. Other values are
+ ignored. The default is <code title="">alphabetic</code>.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-fillText><a href=#dom-context-2d-filltext>fillText</a></code>(<var title="">text</var>, <var title="">x</var>, <var title="">y</var> [, <var title="">maxWidth</var> ] )</dt>
+ <dt><var title="">context</var> . <code title=dom-context-2d-strokeText><a href=#dom-context-2d-stroketext>strokeText</a></code>(<var title="">text</var>, <var title="">x</var>, <var title="">y</var> [, <var title="">maxWidth</var> ] )</dt>
+
+ <dd>
+
+ <p>Fills or strokes (respectively) the given text at the given
+ position. If a maximum width is provided, the text will be scaled
+ to fit that width if necessary.</p>
+
+ </dd>
+
+ <dt><var title="">metrics</var> = <var title="">context</var> . <code title=dom-context-2d-measureText><a href=#dom-context-2d-measuretext>measureText</a></code>(<var title="">text</var>)</dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#textmetrics>TextMetrics</a></code> object with the metrics of the given text in the current font.</p>
+
+ </dd>
+
+ <dt><var title="">metrics</var> . <code title=dom-textmetrics-width><a href=#dom-textmetrics-width>width</a></code></dt>
+
+ <dd>
+
+ <p>Returns the advance width of the text that was passed to the
+ <code title=dom-context-2d-measureText><a href=#dom-context-2d-measuretext>measureText()</a></code>
+ method.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-context-2d-font title=dom-context-2d-font><code>font</code></dfn> IDL
+ attribute, on setting, must be parsed the same way as the 'font'
+ property of CSS (but without supporting property-independent style
+ sheet syntax like 'inherit'), and the resulting font must be
+ assigned to the context, with the 'line-height' component forced to
+ 'normal', with the 'font-size' component converted to CSS pixels,
+ and with system fonts being computed to explicit values. If the new
+ value is syntactically incorrect (including using
+ property-independent style sheet syntax like 'inherit' or
+ 'initial'), then it must be ignored, without assigning a new font
+ value. <a href=#refsCSS>[CSS]</a></p>
+
+ <p>Font names must be interpreted in the context of the
+ <code><a href=#the-canvas-element>canvas</a></code> element's stylesheets; any fonts embedded using
+ <code title="">@font-face</code> must therefore be available once
+ they are loaded. (If a font is referenced before it is fully loaded,
+ then it must be treated as if it was an unknown font, falling back
+ to another as described by the relevant CSS specifications.) <a href=#refsCSSFONTS>[CSSFONTS]</a></p>
+
+ <p>Only vector fonts should be used by the user agent; if a user
+ agent were to use bitmap fonts then transformations would likely
+ make the font look very ugly.</p>
+
+ <p>On getting, the <code title=dom-context-2d-font><a href=#dom-context-2d-font>font</a></code>
+ attribute must return the <span title="serializing a CSS
+ value">serialized form</span> of the current font of the context
+ (with no 'line-height' component). <a href=#refsCSSOM>[CSSOM]</a></p>
+
+ <div class=example>
+
+ <p>For example, after the following statement:</p>
+
+ <pre>context.font = 'italic 400 12px/2 Unknown Font, sans-serif';</pre>
+
+ <p>...the expression <code title="">context.font</code> would
+ evaluate to the string "<code title="">italic&nbsp;12px&nbsp;"Unknown&nbsp;Font",&nbsp;sans-serif</code>". The
+ "400" font-weight doesn't appear because that is the default
+ value. The line-height doesn't appear because it is forced to
+ "normal", the default value.</p>
+
+ </div>
+
+ <p>When the context is created, the font of the context must be set
+ to 10px sans-serif. When the 'font-size' component is set to lengths
+ using percentages, 'em' or 'ex' units, or the 'larger' or 'smaller'
+ keywords, these must be interpreted relative to the computed value
+ of the 'font-size' property of the corresponding <code><a href=#the-canvas-element>canvas</a></code>
+ element at the time that the attribute is set. When the
+ 'font-weight' component is set to the relative values 'bolder' and
+ 'lighter', these must be interpreted relative to the computed value
+ of the 'font-weight' property of the corresponding
+ <code><a href=#the-canvas-element>canvas</a></code> element at the time that the attribute is
+ set. If the computed values are undefined for a particular case
+ (e.g. because the <code><a href=#the-canvas-element>canvas</a></code> element is not <a href=#in-a-document>in a
+ <code>Document</code></a>), then the relative keywords must be
+ interpreted relative to the normal-weight 10px sans-serif
+ default.</p>
+
+ <p>The <dfn id=dom-context-2d-textalign title=dom-context-2d-textAlign><code>textAlign</code></dfn> IDL
+ attribute, on getting, must return the current value. On setting, if
+ the value is one of <code title="">start</code>, <code title="">end</code>, <code title="">left</code>, <code title="">right</code>, or <code title="">center</code>, then the
+ value must be changed to the new value. Otherwise, the new value
+ must be ignored. When the context is created, the <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code> attribute must
+ initially have the value <code title="">start</code>.</p>
+
+ <p>The <dfn id=dom-context-2d-textbaseline title=dom-context-2d-textBaseline><code>textBaseline</code></dfn>
+ IDL attribute, on getting, must return the current value. On
+ setting, if the value is one of <code title=dom-context-2d-textBaseline-top><a href=#dom-context-2d-textbaseline-top>top</a></code>, <code title=dom-context-2d-textBaseline-hanging><a href=#dom-context-2d-textbaseline-hanging>hanging</a></code>, <code title=dom-context-2d-textBaseline-middle><a href=#dom-context-2d-textbaseline-middle>middle</a></code>, <code title=dom-context-2d-textBaseline-alphabetic><a href=#dom-context-2d-textbaseline-alphabetic>alphabetic</a></code>,
+ <code title=dom-context-2d-textBaseline-ideographic><a href=#dom-context-2d-textbaseline-ideographic>ideographic</a></code>,
+ or <code title=dom-context-2d-textBaseline-bottom><a href=#dom-context-2d-textbaseline-bottom>bottom</a></code>,
+ then the value must be changed to the new value. Otherwise, the new
+ value must be ignored. When the context is created, the <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code> attribute
+ must initially have the value <code title="">alphabetic</code>.</p>
+
+ </div>
+
+ <p>The <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code>
+ attribute's allowed keywords correspond to alignment points in the
+ font:</p>
+
+ <!-- this is filler to make sure the TCP packet boundary doesn't fall in the middle of one of the NCRs below -->
+ <!-- (because otherwise the parser in anolis screws it up) -->
+ <p><img alt="The top of the em square is roughly at the top of the glyphs in a font, the hanging baseline is where some glyphs like &#2310; are anchored, the middle is half-way between the top of the em square and the bottom of the em square, the alphabetic baseline is where characters like &Aacute;, &yuml;, f, and &Omega; are anchored, the ideographic baseline is where glyphs like &#31169; and &#36948; are anchored, and the bottom of the em square is roughly at the bottom of the glyphs in a font. The top and bottom of the bounding box can be far from these baselines, due to glyphs extending far outside the em square." height=300 src=greenbox.png width=738></p>
+
+ <p>The keywords map to these alignment points as follows:</p>
+
+ <dl><dt><dfn id=dom-context-2d-textbaseline-top title=dom-context-2d-textBaseline-top><code>top</code></dfn>
+ <dd>The top of the em square</dd>
+
+ <dt><dfn id=dom-context-2d-textbaseline-hanging title=dom-context-2d-textBaseline-hanging><code>hanging</code></dfn>
+ <dd>The hanging baseline</dd>
+
+ <dt><dfn id=dom-context-2d-textbaseline-middle title=dom-context-2d-textBaseline-middle><code>middle</code></dfn>
+ <dd>The middle of the em square</dd>
+
+ <dt><dfn id=dom-context-2d-textbaseline-alphabetic title=dom-context-2d-textBaseline-alphabetic><code>alphabetic</code></dfn>
+ <dd>The alphabetic baseline</dd>
+
+ <dt><dfn id=dom-context-2d-textbaseline-ideographic title=dom-context-2d-textBaseline-ideographic><code>ideographic</code></dfn>
+ <dd>The ideographic baseline</dd>
+
+ <dt><dfn id=dom-context-2d-textbaseline-bottom title=dom-context-2d-textBaseline-bottom><code>bottom</code></dfn>
+ <dd>The bottom of the em square</dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-context-2d-filltext title=dom-context-2d-fillText><code>fillText()</code></dfn> and
+ <dfn id=dom-context-2d-stroketext title=dom-context-2d-strokeText><code>strokeText()</code></dfn>
+ methods take three or four arguments, <var title="">text</var>, <var title="">x</var>, <var title="">y</var>, and optionally <var title="">maxWidth</var>, and render the given <var title="">text</var> at the given (<var title="">x</var>, <var title="">y</var>) coordinates ensuring that the text isn't wider
+ than <var title="">maxWidth</var> if specified, using the current
+ <code title=dom-context-2d-font><a href=#dom-context-2d-font>font</a></code>, <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code>, and <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code>
+ values. Specifically, when the methods are called, the user agent
+ must run the following steps:</p>
+
+ <ol><li><p>If <var title="">maxWidth</var> is present but less than or
+ equal to zero, return without doing anything; abort these
+ steps.</li>
+
+ <li><p>Let <var title="">font</var> be the current font of the
+ context, as given by the <code title=dom-context-2d-font><a href=#dom-context-2d-font>font</a></code> attribute.</li>
+
+ <li><p>Replace all the <a href=#space-character title="space character">space
+ characters</a> in <var title="">text</var> with U+0020 SPACE
+ characters.</li>
+
+ <li><p>Form a hypothetical infinitely wide CSS line box containing
+ a single inline box containing the text <var title="">text</var>,
+ with all the properties at their initial values except the 'font'
+ property of the inline box set to <var title="">font</var>, the
+ 'direction' property of the inline box set to <a href=#the-directionality>the
+ directionality</a> of the <code><a href=#the-canvas-element>canvas</a></code> element, and the
+ 'white-space' property set to 'pre'. <a href=#refsCSS>[CSS]</a></li>
+
+ <!-- if you insert a step here, make sure to adjust the next step's
+ final words -->
+
+ <li><p>If the <var title="">maxWidth</var> argument was specified
+ and the hypothetical width of the inline box in the hypothetical
+ line box is greater than <var title="">maxWidth</var> CSS pixels,
+ then change <var title="">font</var> to have a more condensed font
+ (if one is available or if a reasonably readable one can be
+ synthesized by applying a horizontal scale factor to the font) or a
+ smaller font, and return to the previous step.</li>
+
+ <li>
+
+ <p>Let the <var title="">anchor point</var> be a point on the
+ inline box, determined by the <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code> and <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code> values, as
+ follows:</p>
+
+ <p>Horizontal position:</p>
+
+ <dl><dt> If <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code> is <code title="">left</code></dt>
+ <dt> If <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code> is <code title="">start</code> and <a href=#the-directionality>the directionality</a> of the
+ <code><a href=#the-canvas-element>canvas</a></code> element is 'ltr'</dt>
+ <dt> If <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code> is <code title="">end</code> and <a href=#the-directionality>the directionality</a> of the
+ <code><a href=#the-canvas-element>canvas</a></code> element is 'rtl'</dt>
+
+ <dd>Let the <var title="">anchor point</var>'s horizontal
+ position be the left edge of the inline box.</dd>
+
+
+ <dt> If <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code> is <code title="">right</code></dt>
+ <dt> If <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code> is <code title="">end</code> and <a href=#the-directionality>the directionality</a> of the
+ <code><a href=#the-canvas-element>canvas</a></code> element is 'ltr'</dt>
+ <dt> If <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code> is <code title="">start</code> and <a href=#the-directionality>the directionality</a> of the
+ <code><a href=#the-canvas-element>canvas</a></code> element is 'rtl'</dt>
+
+ <dd>Let the <var title="">anchor point</var>'s horizontal
+ position be the right edge of the inline box.</dd>
+
+
+ <dt> If <code title=dom-context-2d-textAlign><a href=#dom-context-2d-textalign>textAlign</a></code> is <code title="">center</code></dt>
+
+ <dd>Let the <var title="">anchor point</var>'s horizontal
+ position be half way between the left and right edges of the
+ inline box.</dd>
+
+ </dl><p>Vertical position:</p>
+
+ <dl><dt> If <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code> is <code title=dom-context-2d-textBaseline-top><a href=#dom-context-2d-textbaseline-top>top</a></code></dt>
+
+ <dd>Let the <var title="">anchor point</var>'s vertical position
+ be the top of the em box of the first available font of the
+ inline box.</dd>
+
+
+ <dt> If <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code> is <code title=dom-context-2d-textBaseline-hanging><a href=#dom-context-2d-textbaseline-hanging>hanging</a></code></dt>
+
+ <dd>Let the <var title="">anchor point</var>'s vertical position
+ be the hanging baseline of the first available font of the inline
+ box.</dd>
+
+
+ <dt> If <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code> is <code title=dom-context-2d-textBaseline-middle><a href=#dom-context-2d-textbaseline-middle>middle</a></code></dt>
+
+ <dd>Let the <var title="">anchor point</var>'s vertical position
+ be half way between the bottom and the top of the em box of the
+ first available font of the inline box.</dd>
+
+
+ <dt> If <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code> is <code title=dom-context-2d-textBaseline-alphabetic><a href=#dom-context-2d-textbaseline-alphabetic>alphabetic</a></code></dt>
+
+ <dd>Let the <var title="">anchor point</var>'s vertical position
+ be the alphabetic baseline of the first available font of the inline
+ box.</dd>
+
+
+ <dt> If <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code> is <code title=dom-context-2d-textBaseline-ideographic><a href=#dom-context-2d-textbaseline-ideographic>ideographic</a></code></dt>
+
+ <dd>Let the <var title="">anchor point</var>'s vertical position
+ be the ideographic baseline of the first available font of the inline
+ box.</dd>
+
+
+ <dt> If <code title=dom-context-2d-textBaseline><a href=#dom-context-2d-textbaseline>textBaseline</a></code> is <code title=dom-context-2d-textBaseline-bottom><a href=#dom-context-2d-textbaseline-bottom>bottom</a></code></dt>
+
+ <dd>Let the <var title="">anchor point</var>'s vertical position
+ be the bottom of the em box of the first available font of the
+ inline box.</dd>
+
+ </dl></li>
+
+ <li>
+
+ <p>Paint the hypothetical inline box as the shape given by the
+ text's glyphs, as transformed by the <a href=#transformations title=dom-context-2d-transformation>current transformation
+ matrix</a>, and anchored and sized so that before applying the
+ <a href=#transformations title=dom-context-2d-transformation>current transformation
+ matrix</a>, the <var title="">anchor point</var> is at (<var title="">x</var>, <var title="">y</var>) and each CSS pixel is
+ mapped to one coordinate space unit.</p>
+
+ <p>For <code title=dom-context-2d-fillText><a href=#dom-context-2d-filltext>fillText()</a></code>
+ <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code> must be
+ applied to the glyphs and <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code> must be
+ ignored. For <code title=dom-context-2d-strokeText><a href=#dom-context-2d-stroketext>strokeText()</a></code> the reverse
+ holds and <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code> must be
+ applied to the glyph outlines and <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code> must be
+ ignored.</p>
+
+ <p>Text is painted without affecting the current path, and is
+ subject to <a href=#shadows title=shadows>shadow effects</a>, <a href=#dom-context-2d-globalalpha title=dom-context-2d-globalAlpha>global alpha</a>, the <a href=#clipping-region title="clipping region">clipping region</a>, and <a href=#dom-context-2d-globalcompositeoperation title=dom-context-2d-globalCompositeOperation>global composition
+ operators</a>.</p>
+
+ </li>
+
+ </ol><!--v6DVT - this is commented out until CSS can get its act together
+enough to actual specify vertical text rendering (how long have we
+been waiting now?)
+
+WHEN EDITING THIS, FIX THE PARTS MARKED "&#x0058;&#x0058;&#x0058;" BELOW
+
+ <p>The <dfn
+ title="dom-context-2d-fillVerticalText"><code>fillVerticalText()</code></dfn>
+ and <dfn
+ title="dom-context-2d-strokeVerticalText"><code>strokeVerticalText()</code></dfn>
+ methods take three or four arguments, <var title="">text</var>, <var
+ title="">x</var>, <var title="">y</var>, and optionally <var
+ title="">maxHeight</var>, and render the given <var
+ title="">text</var> as vertical text at the given (<var
+ title="">x</var>, <var title="">y</var>) coordinates ensuring that
+ the text isn't taller than <var title="">maxHeight</var> if
+ specified, using the current <code
+ title="dom-context-2d-font">font</code> and <code
+ title="dom-context-2d-textAlign">textAlign</code>
+ values. Specifically, when the methods are called, the user agent
+ must run the following steps:</p>
+
+ <ol>
+
+ <li><p>If <var title="">maxHeight</var> is present but less than or
+ equal to zero, return without doing anything; abort these
+ steps.</p></li>
+
+ <li><p>Let <var title="">font</var> be the current font of the
+ context, as given by the <code
+ title="dom-context-2d-font">font</code> attribute.</p></li>
+
+ <li><p>Replace all the <span title="space character">space
+ characters</span> in <var title="">text</var> with U+0020 SPACE
+ characters.</p></li>
+
+ <li><p>Form a <em class="&#x0058;&#x0058;&#x0058;">whatever CSS ends up calling
+ vertical line boxes and inline boxes</em> containing the text <var
+ title="">text</var>, with all the properties at their initial
+ values except the 'font' property of the inline box set to <var
+ title="">font</var> and the 'direction' property of the inline
+ box set to <span>the directionality</span> of the <code>canvas</code>
+ element.</p></li>
+
+ <!- - if you insert a step here, make sure to adjust the next step's
+ final words - ->
+
+ <li><p>If the <var title="">maxHeight</var> argument was specified
+ and the hypothetical height of the <em class="&#x0058;&#x0058;&#x0058;">box</em>
+ in the hypothetical line box is greater than <var
+ title="">maxHeight</var> CSS pixels, then change <var
+ title="">font</var> to have a more condensed font (if one is
+ available or if a reasonably readable one can be synthesized by
+ applying an appropriate scale factor to the font) or a smaller
+ font, and return to the previous step.</p></li>
+
+ <li>
+
+ <p>Let the <var title="">anchor point</var> be a point on the <em
+ class="&#x0058;&#x0058;&#x0058;">inline box</var>, determined by the <code
+ title="dom-context-2d-textAlign">textAlign</code>, as follows:</p>
+
+ <p>Vertical position:</p>
+
+ <dl>
+
+ <dt> If <code
+ title="dom-context-2d-textAlign">textAlign</code> is <code
+ title="">start</code></dt>
+ <dt> If <code
+ title="dom-context-2d-textAlign">textAlign</code> is <code
+ title="">left</code> and <span>the directionality</span> of the
+ <code>canvas</code> element is 'ltr'</dt>
+ <dt> If <code
+ title="dom-context-2d-textAlign">textAlign</code> is <code
+ title="">right</code> and <span>the directionality</span> of the
+ <code>canvas</code> element is 'rtl'</dt>
+
+ <dd>Let the <var title="">anchor point</var>'s vertical
+ position be the top edge of the <em class="&#x0058;&#x0058;&#x0058;">inline
+ box</em>.</dd>
+
+ <dt> If <code
+ title="dom-context-2d-textAlign">textAlign</code> is <code
+ title="">end</code></dt>
+ <dt> If <code
+ title="dom-context-2d-textAlign">textAlign</code> is <code
+ title="">right</code> and <span>the directionality</span> of the
+ <code>canvas</code> element is 'ltr'</dt>
+ <dt> If <code
+ title="dom-context-2d-textAlign">textAlign</code> is <code
+ title="">left</code> and <span>the directionality</span> of the
+ <code>canvas</code> element is 'rtl'</dt>
+
+ <dd>Let the <var title="">anchor point</var>'s vertical
+ position be the bottom edge of the <em class="&#x0058;&#x0058;&#x0058;">inline
+ box</em>.</dd>
+
+
+ <dt> If <code
+ title="dom-context-2d-textAlign">textAlign</code> is <code
+ title="">center</code></dt>
+
+ <dd>Let the <var title="">anchor point</var>'s vertical position
+ be half way between the top and bottom edges of the <em
+ class="&#x0058;&#x0058;&#x0058;">inline box</em>.</dd>
+
+ </dl>
+
+ <p>Let the horizontal position be half way between the left and
+ right edges of the em box of the first available font of the <em
+ class="&#x0058;&#x0058;&#x0058;">inline box</em>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Paint the hypothetical inline box as the shape given by the
+ text's glyphs, as transformed by the <span
+ title="dom-context-2d-transformation">current transformation
+ matrix</span>, and anchored and sized so that before applying the
+ <span title="dom-context-2d-transformation">current transformation
+ matrix</span>, the <var title="">anchor point</var> is at (<var
+ title="">x</var>, <var title="">y</var>) and each CSS pixel is
+ mapped to one coordinate space unit.</p>
+
+ <p>For <code
+ title="dom-context-2d-fillVerticalText">fillVerticalText()</code>
+ <code title="dom-context-2d-fillStyle">fillStyle</code> must be
+ applied and <code
+ title="dom-context-2d-strokeStyle">strokeStyle</code> must be
+ ignored. For <code
+ title="dom-context-2d-strokeVerticalText">strokeVerticalText()</code>
+ the reverse holds and <code
+ title="dom-context-2d-strokeStyle">strokeStyle</code> must be
+ applied and <code
+ title="dom-context-2d-fillStyle">fillStyle</code> must be
+ ignored.</p>
+
+ <p>Text is painted without affecting the current path, and is
+ subject to <span title="shadows">shadow effects</span>, <span
+ title="dom-context-2d-globalAlpha">global alpha</span>, the <span
+ title="clipping region">clipping region</span>, and <span
+ title="dom-context-2d-globalCompositeOperation">global composition
+ operators</span>.</p>
+
+ </li>
+
+ </ol>
+
+v6DVT (also check for '- -' bits in the part above) --><p>The <dfn id=dom-context-2d-measuretext title=dom-context-2d-measureText><code>measureText()</code></dfn>
+ method takes one argument, <var title="">text</var>. When the method
+ is invoked, the user agent must replace all the <a href=#space-character title="space
+ character">space characters</a> in <var title="">text</var> with
+ U+0020 SPACE characters, and then must form a hypothetical
+ infinitely wide CSS line box containing a single inline box
+ containing the text <var title="">text</var>, with all the
+ properties at their initial values except the 'white-space' property
+ of the inline element set to 'pre' and the 'font' property of the
+ inline element set to the current font of the context as given by
+ the <code title=dom-context-2d-font><a href=#dom-context-2d-font>font</a></code> attribute, and
+ must then return a new <code><a href=#textmetrics>TextMetrics</a></code> object with its
+ <code title=dom-textmetrics-width><a href=#dom-textmetrics-width>width</a></code> attribute set to
+ the width of that inline box, in CSS pixels. <a href=#refsCSS>[CSS]</a></p>
+
+ <p>The <code><a href=#textmetrics>TextMetrics</a></code> interface is used for the objects
+ returned from <code title=dom-context-2d-measureText><a href=#dom-context-2d-measuretext>measureText()</a></code>. It has one
+ attribute, <dfn id=dom-textmetrics-width title=dom-textmetrics-width><code>width</code></dfn>, which is set
+ by the <code title=dom-context-2d-measureText><a href=#dom-context-2d-measuretext>measureText()</a></code>
+ method.</p>
+
+ <p class=note>Glyphs rendered using <code title=dom-context-2d-fillText><a href=#dom-context-2d-filltext>fillText()</a></code> and <code title=dom-context-2d-strokeText><a href=#dom-context-2d-stroketext>strokeText()</a></code> can spill out
+ of the box given by the font size (the em square size) and the width
+ returned by <code title=dom-context-2d-measureText><a href=#dom-context-2d-measuretext>measureText()</a></code> (the text
+ width). This version of the specification does not provide a way to
+ obtain the bounding box dimensions of the text. If the text is to be
+ rendered and removed, care needs to be taken to replace the entire
+ area of the canvas that the clipping region covers, not just the box
+ given by the em square height and measured text width.</p>
+
+ <!-- v6: Drawing text along a given path -->
+ <!-- v6: Adding text to a path -->
+ <!-- see also: http://www.w3.org/TR/SVG11/text.html#TextpathLayoutRules -->
+ <!-- see also: http://developer.mozilla.org/en/docs/Drawing_text_using_a_canvas -->
+
+ </div>
+
+ <p class=note>A future version of the 2D context API may provide a
+ way to render fragments of documents, rendered using CSS, straight
+ to the canvas. This would be provided in preference to a dedicated
+ way of doing multiline layout.</p>
+
+
+
+ <h6 id=images><span class=secno>4.8.11.1.10 </span>Images</h6>
+
+ <p>To draw images onto the canvas, the <dfn id=dom-context-2d-drawimage title=dom-context-2d-drawImage><code>drawImage</code></dfn> method
+ can be used.</p>
+
+ <p>This method can be invoked with three different sets of arguments:</p>
+
+ <ul class=brief><li><code title="">drawImage(<var title="">image</var>, <var title="">dx</var>, <var title="">dy</var>)</code>
+ <li><code title="">drawImage(<var title="">image</var>, <var title="">dx</var>, <var title="">dy</var>, <var title="">dw</var>, <var title="">dh</var>)</code>
+ <li><code title="">drawImage(<var title="">image</var>, <var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>, <var title="">sh</var>, <var title="">dx</var>, <var title="">dy</var>, <var title="">dw</var>, <var title="">dh</var>)</code>
+ </ul><!-- v3: drawImage() of an ImageData object might make sense (when resizing as well as filtering) - ack Charles Pritchard --><p>Each of those three can take either an
+ <code><a href=#htmlimageelement>HTMLImageElement</a></code>, an <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code>, or
+ an <code><a href=#htmlvideoelement>HTMLVideoElement</a></code> for the <var title="">image</var>
+ argument.</p>
+
+ <dl class=domintro><dt><var title="">context</var> . <code title=dom-context-2d-drawImage><a href=#dom-context-2d-drawimage>drawImage</a></code>(<var title="">image</var>, <var title="">dx</var>, <var title="">dy</var>)</dt>
+ <dt><var title="">context</var> . <code title=dom-context-2d-drawImage><a href=#dom-context-2d-drawimage>drawImage</a></code>(<var title="">image</var>, <var title="">dx</var>, <var title="">dy</var>, <var title="">dw</var>, <var title="">dh</var>)</dt>
+ <dt><var title="">context</var> . <code title=dom-context-2d-drawImage><a href=#dom-context-2d-drawimage>drawImage</a></code>(<var title="">image</var>, <var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>, <var title="">sh</var>, <var title="">dx</var>, <var title="">dy</var>, <var title="">dw</var>, <var title="">dh</var>)</dt>
+
+ <dd>
+
+ <p>Draws the given image onto the canvas. The arguments are
+ interpreted as follows:</p>
+
+ <p><img alt="The sx and sy parameters give the x and y coordinates of the source rectangle; the sw and sh arguments give the width and height of the source rectangle; the dx and dy give the x and y coordinates of the destination rectangle; and the dw and dh arguments give the width and height of the destination rectangle." height=356 src=greenbox.png width=356></p>
+
+ <p>If the first argument isn't an <code><a href=#the-img-element>img</a></code>,
+ <code><a href=#the-canvas-element>canvas</a></code>, or <code><a href=#the-video-element>video</a></code> element, throws a
+ <code><a href=#typemismatcherror>TypeMismatchError</a></code> exception. If the image has no
+ image data, throws an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception. If
+ the one of the source rectangle dimensions is zero, throws an
+ <code><a href=#indexsizeerror>IndexSizeError</a></code> exception. If the image isn't yet
+ fully decoded, then nothing is drawn.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>If not specified, the <var title="">dw</var> and <var title="">dh</var> arguments must default to the values of <var title="">sw</var> and <var title="">sh</var>, interpreted such that
+ one CSS pixel in the image is treated as one unit in the canvas
+ coordinate space. If the <var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>, and <var title="">sh</var> arguments are omitted, they must default to 0, 0,
+ the image's intrinsic width in image pixels, and the image's
+ intrinsic height in image pixels, respectively. If the image has no
+ intrinsic dimensions, the <i>concrete object size</i> must be used
+ instead, as determined using the CSS "<a href=http://dev.w3.org/csswg/css3-images/#default-sizing>Concrete
+ Object Size Resolution</a>" algorithm, with the <i>specified
+ size</i> having neither a definite width nor height, nor any
+ additional contraints, the object's intrinsic properties being those
+ of the <var title="">image</var> argument, and the <i>default object
+ size</i> being the size of the <code><a href=#the-canvas-element>canvas</a></code> element. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
+
+ <p>The <var title="">image</var> argument is an instance of either
+ <code><a href=#htmlimageelement>HTMLImageElement</a></code>, <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code>, or
+ <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>.</p> <!-- createPattern() has an
+ equivalent paragraph -->
+
+ <p>If the <var title="">image</var> argument is an
+ <code><a href=#htmlimageelement>HTMLImageElement</a></code> object that is not <a href=#img-good title=img-good>fully decodable</a>, or if the <var title="">image</var> argument is an <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>
+ object whose <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code>
+ attribute is either <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code> or <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code>, then the
+ implementation must return without drawing anything.</p> <!--
+ createPattern() has an equivalent paragraph -->
+
+ <p>If the <var title="">image</var> argument is an
+ <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code> object with either a horizontal
+ dimension or a vertical dimension equal to zero, then the
+ implementation must throw an <code><a href=#invalidstateerror>InvalidStateError</a></code>
+ exception.</p>
+ <!-- createPattern() has an equivalent paragraph -->
+
+ <p>The source rectangle is the rectangle whose corners are the four
+ points (<var title="">sx</var>, <var title="">sy</var>), (<span title=""><var title="">sx</var>+<var title="">sw</var></span>, <var title="">sy</var>), (<span title=""><var title="">sx</var>+<var title="">sw</var></span>, <span title=""><var title="">sy</var>+<var title="">sh</var></span>), (<var title="">sx</var>, <span title=""><var title="">sy</var>+<var title="">sh</var></span>).</p>
+
+ <p>If one of the <var title="">sw</var> or <var title="">sh</var>
+ arguments is zero, the implementation must throw an
+ <code><a href=#indexsizeerror>IndexSizeError</a></code> exception.</p>
+
+ <p>The destination rectangle is the rectangle whose corners are the
+ four points (<var title="">dx</var>, <var title="">dy</var>),
+ (<span title=""><var title="">dx</var>+<var title="">dw</var></span>, <var title="">dy</var>), (<span title=""><var title="">dx</var>+<var title="">dw</var></span>, <span title=""><var title="">dy</var>+<var title="">dh</var></span>), (<var title="">dx</var>, <span title=""><var title="">dy</var>+<var title="">dh</var></span>).</p>
+
+ <p>When <code title=dom-context-2d-drawImage><a href=#dom-context-2d-drawimage>drawImage()</a></code> is
+ invoked, the region of the image specified by the source rectangle
+ must be painted on the region of the canvas specified by the
+ destination rectangle, after applying the <a href=#transformations title=dom-context-2d-transformation>current transformation
+ matrix</a> to the points of the destination rectangle.</p>
+
+ <p>The original image data of the source image must be used, not the
+ image as it is rendered (e.g. <code title=attr-dim-width><a href=#attr-dim-width>width</a></code> and <code title=attr-dim-height><a href=#attr-dim-height>height</a></code> attributes on the source
+ element have no effect). The image data must be processed in the
+ original direction, even if the dimensions given are negative. <!--
+ remove that last sentence if it causes confusion. Someone once
+ suggested that 5,5,-2,-2 was different than 3,3,2,2; this is trying
+ to clarify that this is no the case. --></p>
+
+ <p class=note>This specification does not define the algorithm to
+ use when scaling the image, if necessary.</p>
+
+ <p class=note>When a canvas is drawn onto itself, the <a href=#drawing-model>drawing
+ model</a> requires the source to be copied before the image is drawn
+ back onto the canvas, so it is possible to copy parts of a canvas
+ onto overlapping parts of itself.</p>
+
+ <p>If the original image data is a bitmap image, the value painted
+ at a point in the destination rectangle is computed by filtering the
+ original image data. The user agent may use any filtering algorithm
+ (for example bilinear interpolation or nearest-neighbor). When the
+ filtering algorithm requires a pixel value from outside the original
+ image data, it must instead use the value from the nearest edge
+ pixel. (That is, the filter uses 'clamp-to-edge' behavior.)</p>
+ <!-- see CORE-32111 and:
+ http://krijnhoetmer.nl/irc-logs/whatwg/20100818#l-737
+ http://www.w3.org/Bugs/Public/show_bug.cgi?id=10799#c11
+ -->
+ <!-- createPattern() has a similar paragraph with different rules -->
+
+ <p>When the <code title=dom-context-2d-drawImage><a href=#dom-context-2d-drawimage>drawImage()</a></code> method
+ is passed an animated image as its <var title="">image</var>
+ argument, the user agent must use the poster frame of the animation,
+ or, if there is no poster frame, the first frame of the
+ animation.</p>
+ <!-- createPattern() has an equivalent paragraph -->
+
+ <p>When the <var title="">image</var> argument is an
+ <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>, then the frame at the <a href=#current-playback-position>current
+ playback position</a> must be used as the source image, and the
+ source image's dimensions must be the <a href=#concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic width</a> and
+ <a href=#concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</a>
+ of the <a href=#media-resource>media resource</a> (i.e. after any aspect-ratio
+ correction has been applied).</p>
+ <!-- createPattern() has an equivalent paragraph -->
+
+ <p>Images are painted without affecting the current path, and are
+ subject to <a href=#shadows title=shadows>shadow effects</a>, <a href=#dom-context-2d-globalalpha title=dom-context-2d-globalAlpha>global alpha</a>, the <a href=#clipping-region title="clipping region">clipping region</a>, and <a href=#dom-context-2d-globalcompositeoperation title=dom-context-2d-globalCompositeOperation>global composition
+ operators</a>.</p>
+
+ </div>
+
+
+
+ <h6 id=pixel-manipulation><span class=secno>4.8.11.1.11 </span><dfn>Pixel manipulation</dfn></h6>
+
+ <dl class=domintro><dt><var title="">imagedata</var> = <var title="">context</var> . <code title=dom-context-2d-createImageData><a href=#dom-context-2d-createimagedata>createImageData</a></code>(<var title="">sw</var>, <var title="">sh</var>)</dt>
+
+ <dd>
+
+ <p>Returns an <code><a href=#imagedata>ImageData</a></code> object with the given
+ dimensions in CSS pixels (which might map to a different number of
+ actual device pixels exposed by the object itself). All the pixels
+ in the returned object are transparent black.</p>
+
+ </dd>
+
+ <dt><var title="">imagedata</var> = <var title="">context</var> . <code title=dom-context-2d-createImageData><a href=#dom-context-2d-createimagedata>createImageData</a></code>(<var title="">imagedata</var>)</dt>
+
+ <dd>
+
+ <p>Returns an <code><a href=#imagedata>ImageData</a></code> object with the same
+ dimensions as the argument. All the pixels in the returned object
+ are transparent black.</p>
+
+ </dd>
+
+ <dt><var title="">imagedata</var> = <var title="">context</var> . <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData</a></code>(<var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>, <var title="">sh</var>)</dt>
+
+ <dd>
+
+ <p>Returns an <code><a href=#imagedata>ImageData</a></code> object containing the image
+ data for the given rectangle of the canvas.</p>
+
+ <p>Throws a <code><a href=#notsupportederror>NotSupportedError</a></code> exception if any of the
+ arguments are not finite. Throws an <code><a href=#indexsizeerror>IndexSizeError</a></code>
+ exception if the either of the width or height arguments are
+ zero.</p>
+
+ </dd>
+
+ <dt><var title="">imagedata</var> . <code title=dom-imagedata-width><a href=#dom-imagedata-width>width</a></code></dt>
+ <dt><var title="">imagedata</var> . <code title=dom-imagedata-height><a href=#dom-imagedata-height>height</a></code></dt>
+
+ <dd>
+
+ <p>Returns the actual dimensions of the data in the <code><a href=#imagedata>ImageData</a></code> object, in device pixels.</p>
+
+ </dd>
+
+ <dt><var title="">imagedata</var> . <code title=dom-imagedata-data><a href=#dom-imagedata-data>data</a></code></dt>
+
+ <dd>
+
+ <p>Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255.</p>
+
+ </dd>
+
+ <dt><var title="">context</var> . <code title=dom-context-2d-putImageData><a href=#dom-context-2d-putimagedata>putImageData</a></code>(<var title="">imagedata</var>, <var title="">dx</var>, <var title="">dy</var> [, <var title="">dirtyX</var>, <var title="">dirtyY</var>, <var title="">dirtyWidth</var>, <var title="">dirtyHeight</var> ])</dt>
+
+ <dd>
+
+ <p>Paints the data from the given <code><a href=#imagedata>ImageData</a></code> object
+ onto the canvas. If a dirty rectangle is provided, only the pixels
+ from that rectangle are painted.</p>
+
+ <p>The <code title=dom-context-2d-globalAlpha><a href=#dom-context-2d-globalalpha>globalAlpha</a></code>
+ and <code title=dom-context-2d-globalCompositeOperation><a href=#dom-context-2d-globalcompositeoperation>globalCompositeOperation</a></code>
+ attributes, as well as the shadow attributes, are ignored for the
+ purposes of this method call; pixels in the canvas are replaced
+ wholesale, with no composition, alpha blending, no shadows,
+ etc.</p>
+
+ <p>Throws a <code><a href=#notsupportederror>NotSupportedError</a></code> exception if any of the
+ arguments are not finite.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-context-2d-createimagedata title=dom-context-2d-createImageData><code>createImageData()</code></dfn>
+ method is used to instantiate new blank <code><a href=#imagedata>ImageData</a></code>
+ objects. When the method is invoked with two arguments <var title="">sw</var> and <var title="">sh</var>, it must return an
+ <code><a href=#imagedata>ImageData</a></code> object representing a rectangle with a width
+ in CSS pixels equal to the absolute magnitude of <var title="">sw</var> and a height in CSS pixels equal to the absolute
+ magnitude of <var title="">sh</var>. When invoked with a single <var title="">imagedata</var> argument, it must return an
+ <code><a href=#imagedata>ImageData</a></code> object representing a rectangle with the same
+ dimensions as the <code><a href=#imagedata>ImageData</a></code> object passed as the
+ argument. The <code><a href=#imagedata>ImageData</a></code> object returned must be filled
+ with transparent black.</p>
+
+ <p>The <dfn id=dom-context-2d-getimagedata title=dom-context-2d-getImageData><code>getImageData(<var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>,
+ <var title="">sh</var>)</code></dfn> method must return an
+ <code><a href=#imagedata>ImageData</a></code> object representing the underlying pixel data
+ for the area of the canvas denoted by the rectangle whose corners are
+ the four points (<var title="">sx</var>, <var title="">sy</var>),
+ (<span title=""><var title="">sx</var>+<var title="">sw</var></span>, <var title="">sy</var>), (<span title=""><var title="">sx</var>+<var title="">sw</var></span>, <span title=""><var title="">sy</var>+<var title="">sh</var></span>), (<var title="">sx</var>, <span title=""><var title="">sy</var>+<var title="">sh</var></span>), in canvas
+ coordinate space units. Pixels outside the canvas must be returned
+ as transparent black. Pixels must be returned as non-premultiplied
+ alpha values.</p>
+
+ <p>If any of the arguments to <code title=dom-context-2d-createImageData><a href=#dom-context-2d-createimagedata>createImageData()</a></code> or
+ <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code>
+ are infinite or NaN, the method must instead throw a
+ <code><a href=#notsupportederror>NotSupportedError</a></code> exception. If either the <var title="">sw</var> or <var title="">sh</var> arguments are zero,
+ the method must instead throw an <code><a href=#indexsizeerror>IndexSizeError</a></code>
+ exception.</p>
+
+ <p><code><a href=#imagedata>ImageData</a></code> objects must be initialized so that their
+ <dfn id=dom-imagedata-width title=dom-imagedata-width><code>width</code></dfn> attribute
+ is set to <var title="">w</var>, the number of physical device
+ pixels per row in the image data, their <dfn id=dom-imagedata-height title=dom-imagedata-height><code>height</code></dfn> attribute is
+ set to <var title="">h</var>, the number of rows in the image data,
+ and their <dfn id=dom-imagedata-data title=dom-imagedata-data><code>data</code></dfn>
+ attribute is initialized to a <code>Uint8ClampedArray</code> object.
+ The <code>Uint8ClampedArray</code> object must use a <a href=#canvas-pixel-arraybuffer>Canvas
+ Pixel <code>ArrayBuffer</code></a> for its storage, and must have
+ a zero start offset and a length equal to the length of its storage,
+ in bytes. The <a href=#canvas-pixel-arraybuffer>Canvas Pixel <code>ArrayBuffer</code></a>
+ must contain the image data. At least one pixel's worth of image
+ data must be returned. <a href=#refsTYPEDARRAY>[TYPEDARRAY]</a></p>
+
+ <p>A <dfn id=canvas-pixel-arraybuffer>Canvas Pixel <code>ArrayBuffer</code></dfn> is an
+ <code><a href=#arraybuffer>ArrayBuffer</a></code> that whose data is represented in
+ left-to-right order, row by row top to bottom, starting with the top
+ left, with each pixel's red, green, blue, and alpha components being
+ given in that order for each pixel. Each component of each device
+ pixel represented in this array must be in the range 0..255,
+ representing the 8 bit value for that component. The components must
+ be assigned consecutive indices starting with 0 for the top left
+ pixel's red component. <a href=#refsTYPEDARRAY>[TYPEDARRAY]</a></p>
+
+ <p>The <dfn id=dom-context-2d-putimagedata title=dom-context-2d-putImageData><code>putImageData(<var title="">imagedata</var>, <var title="">dx</var>, <var title="">dy</var>, <var title="">dirtyX</var>, <var title="">dirtyY</var>, <var title="">dirtyWidth</var>, <var title="">dirtyHeight</var>)</code></dfn> method writes data from
+ <code><a href=#imagedata>ImageData</a></code> structures back to the canvas.</p>
+
+ <p>If any of the arguments to the method are infinite or NaN, the
+ method must throw a <code><a href=#notsupportederror>NotSupportedError</a></code> exception.</p>
+
+ <p>When the last four arguments are omitted, they must be assumed to
+ have the values 0, 0, the <code title=dom-imagedata-width><a href=#dom-imagedata-width>width</a></code> member of the <var title="">imagedata</var> structure, and the <code title=dom-imagedata-height><a href=#dom-imagedata-height>height</a></code> member of the <var title="">imagedata</var> structure, respectively.</p>
+
+ <p>When invoked with arguments that do not, per the last few
+ paragraphs, cause an exception to be raised, the <code title=dom-context-2d-putImageData><a href=#dom-context-2d-putimagedata>putImageData()</a></code> method
+ must act as follows:</p>
+
+ <ol><li>
+
+ <p>Let <var title="">dx<sub>device</sub></var> be the x-coordinate
+ of the device pixel in the underlying pixel data of the canvas
+ corresponding to the <var title="">dx</var> coordinate in the
+ canvas coordinate space.</p>
+
+ <p>Let <var title="">dy<sub>device</sub></var> be the y-coordinate
+ of the device pixel in the underlying pixel data of the canvas
+ corresponding to the <var title="">dy</var> coordinate in the
+ canvas coordinate space.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">dirtyWidth</var> is negative, let <var title="">dirtyX</var> be <span title=""><var title="">dirtyX</var>+<var title="">dirtyWidth</var></span>, and let <var title="">dirtyWidth</var> be equal to the absolute magnitude of
+ <var title="">dirtyWidth</var>.</p>
+
+ <p>If <var title="">dirtyHeight</var> is negative, let <var title="">dirtyY</var> be <span title=""><var title="">dirtyY</var>+<var title="">dirtyHeight</var></span>, and let <var title="">dirtyHeight</var> be equal to the absolute magnitude of
+ <var title="">dirtyHeight</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">dirtyX</var> is negative, let <var title="">dirtyWidth</var> be <span title=""><var title="">dirtyWidth</var>+<var title="">dirtyX</var></span>, and
+ let <var title="">dirtyX</var> be zero.</p>
+
+ <p>If <var title="">dirtyY</var> is negative, let <var title="">dirtyHeight</var> be <span title=""><var title="">dirtyHeight</var>+<var title="">dirtyY</var></span>, and
+ let <var title="">dirtyY</var> be zero.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <span title=""><var title="">dirtyX</var>+<var title="">dirtyWidth</var></span> is greater than the <code title=dom-imagedata-width><a href=#dom-imagedata-width>width</a></code> attribute of the <var title="">imagedata</var> argument, let <var title="">dirtyWidth</var> be the value of that <code title=dom-imagedata-width><a href=#dom-imagedata-width>width</a></code> attribute, minus the
+ value of <var title="">dirtyX</var>.</p>
+
+ <p>If <span title=""><var title="">dirtyY</var>+<var title="">dirtyHeight</var></span> is greater than the <code title=dom-imagedata-height><a href=#dom-imagedata-height>height</a></code> attribute of the <var title="">imagedata</var> argument, let <var title="">dirtyHeight</var> be the value of that <code title=dom-imagedata-height><a href=#dom-imagedata-height>height</a></code> attribute, minus the
+ value of <var title="">dirtyY</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If, after those changes, either <var title="">dirtyWidth</var>
+ or <var title="">dirtyHeight</var> is negative or zero, stop these
+ steps without affecting the canvas.</p>
+
+ </li>
+
+ <li><p>Otherwise, for all integer values of <var title="">x</var>
+ and <var title="">y</var> where <span title=""><var title="">dirtyX</var>&nbsp;&le;&nbsp;<var title="">x</var>&nbsp;&lt;&nbsp;<span title=""><var title="">dirtyX</var>+<var title="">dirtyWidth</var></span></span>
+ and <span title=""><var title="">dirtyY</var>&nbsp;&le;&nbsp;<var title="">y</var>&nbsp;&lt;&nbsp;<span title=""><var title="">dirtyY</var>+<var title="">dirtyHeight</var></span></span>, copy the four channels of
+ the pixel with coordinate (<var title="">x</var>, <var title="">y</var>) in the <var title="">imagedata</var> data
+ structure to the pixel with coordinate (<span title=""><var title="">dx<sub>device</sub></var>+<var title="">x</var></span>,
+ <span title=""><var title="">dy<sub>device</sub></var>+<var title="">y</var></span>) in the underlying pixel data of the
+ canvas.</li>
+
+ </ol><p>The handling of pixel rounding when the specified coordinates do
+ not exactly map to the device coordinate space is not defined by
+ this specification, except that the following must result in no
+ visible changes to the rendering:</p>
+
+ <pre>context.putImageData(context.getImageData(x, y, w, h), p, q);</pre>
+
+ <p>...for any value of <var title="">x</var>, <var title="">y</var>,
+ <var title="">w</var>, and <var title="">h</var> and where <var title="">p</var> is the smaller of <var title="">x</var> and the sum
+ of <var title="">x</var> and <var title="">w</var>, and <var title="">q</var> is the smaller of <var title="">y</var> and the sum
+ of <var title="">y</var> and <var title="">h</var>; and except that
+ the following two calls:</p>
+
+ <pre>context.createImageData(w, h);
+context.getImageData(0, 0, w, h);</pre>
+
+ <p>...must return <code><a href=#imagedata>ImageData</a></code> objects with the same
+ dimensions, for any value of <var title="">w</var> and <var title="">h</var>. In other words, while user agents may round the
+ arguments of these methods so that they map to device pixel
+ boundaries, any rounding performed must be performed consistently
+ for all of the <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>createImageData()</a></code>, <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code> and <code title=dom-context-2d-putImageData><a href=#dom-context-2d-putimagedata>putImageData()</a></code>
+ operations.</p>
+
+ <p class=note>This implies that the data returned by <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code> is at the
+ resolution of the canvas backing store. This is likely to not be one
+ device pixel to each CSS pixel if the display used is a high
+ resolution display.</p>
+
+ <p class=note>Due to the lossy nature of converting to and from
+ premultiplied alpha color values, pixels that have just been set
+ using <code title=dom-context-2d-putImageData><a href=#dom-context-2d-putimagedata>putImageData()</a></code> might be
+ returned to an equivalent <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code> as
+ different values.</p>
+
+ <p>The current path, <a href=#transformations title=dom-context-2d-transformation>transformation matrix</a>,
+ <a href=#shadows title=shadows>shadow attributes</a>, <a href=#dom-context-2d-globalalpha title=dom-context-2d-globalAlpha>global alpha</a>, the <a href=#clipping-region title="clipping region">clipping region</a>, and <a href=#dom-context-2d-globalcompositeoperation title=dom-context-2d-globalCompositeOperation>global composition
+ operator</a> must not affect the <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code> and <code title=dom-context-2d-putImageData><a href=#dom-context-2d-putimagedata>putImageData()</a></code>
+ methods.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, the script generates an
+ <code><a href=#imagedata>ImageData</a></code> object so that it can draw onto it.</p>
+
+ <pre>// canvas is a reference to a &lt;canvas&gt; element
+var context = canvas.getContext('2d');
+
+// create a blank slate
+var data = context.createImageData(canvas.width, canvas.height);
+
+// create some plasma
+FillPlasma(data, 'green'); // green plasma
+
+// add a cloud to the plasma
+AddCloud(data, data.width/2, data.height/2); // put a cloud in the middle
+
+// paint the plasma+cloud on the canvas
+context.putImageData(data, 0, 0);
+
+// support methods
+function FillPlasma(data, color) { ... }
+function AddCloud(data, x, y) { ... }</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here is an example of using <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code> and <code title=dom-context-2d-putImageData><a href=#dom-context-2d-putimagedata>putImageData()</a></code> to
+ implement an edge detection filter.</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Edge detection demo&lt;/title&gt;
+ &lt;script&gt;
+ var image = new Image();
+ function init() {
+ image.onload = demo;
+ image.src = "image.jpeg";
+ }
+ function demo() {
+ var canvas = document.getElementsByTagName('canvas')[0];
+ var context = canvas.getContext('2d');
+
+ // draw the image onto the canvas
+ context.drawImage(image, 0, 0);
+
+ // get the image data to manipulate
+ var input = context.getImageData(0, 0, canvas.width, canvas.height);
+
+ // get an empty slate to put the data into
+ var output = context.createImageData(canvas.width, canvas.height);
+
+ // alias some variables for convenience
+ // notice that we are using input.width and input.height here
+ // as they might not be the same as canvas.width and canvas.height
+ // (in particular, they might be different on high-res displays)
+ var w = input.width, h = input.height;
+ var inputData = input.data;
+ var outputData = output.data;
+
+ // edge detection
+ for (var y = 1; y &lt; h-1; y += 1) {
+ for (var x = 1; x &lt; w-1; x += 1) {
+ for (var c = 0; c &lt; 3; c += 1) {
+ var i = (y*w + x)*4 + c;
+ outputData[i] = 127 + -inputData[i - w*4 - 4] - inputData[i - w*4] - inputData[i - w*4 + 4] +
+ -inputData[i - 4] + 8*inputData[i] - inputData[i + 4] +
+ -inputData[i + w*4 - 4] - inputData[i + w*4] - inputData[i + w*4 + 4];
+ }
+ outputData[(y*w + x)*4 + 3] = 255; // alpha
+ }
+ }
+
+ // put the image data back after manipulation
+ context.putImageData(output, 0, 0);
+ }
+ &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body onload="init()"&gt;
+ &lt;canvas&gt;&lt;/canvas&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h6 id=drawing-model><span class=secno>4.8.11.1.12 </span><dfn>Drawing model</dfn></h6>
+
+ <p>When a shape or image is painted, user agents must follow these
+ steps, in the order given (or act as if they do):</p>
+
+ <ol><li><p>Render the shape or image onto an infinite transparent black
+ bitmap, creating image <var title="">A</var>, as described in the
+ previous sections. For shapes, the current fill, stroke, and line
+ styles must be honored, and the stroke must itself also be
+ subjected to the current transformation matrix.</li>
+
+ <li><p><a href=#when-shadows-are-drawn>When shadows are drawn</a>, render the shadow from
+ image <var title="">A</var>, using the current shadow styles,
+ creating image <var title="">B</var>.</li>
+
+ <li><p><a href=#when-shadows-are-drawn>When shadows are drawn</a>, multiply the alpha
+ component of every pixel in <var title="">B</var> by <code title=dom-context-2d-globalAlpha><a href=#dom-context-2d-globalalpha>globalAlpha</a></code>.</li>
+
+ <li><p><a href=#when-shadows-are-drawn>When shadows are drawn</a>, composite <var title="">B</var> within the <a href=#clipping-region>clipping region</a> over the
+ current canvas bitmap using the current composition
+ operator.</li>
+
+ <li><p>Multiply the alpha component of every pixel in <var title="">A</var> by <code title=dom-context-2d-globalAlpha><a href=#dom-context-2d-globalalpha>globalAlpha</a></code>.</li>
+
+ <li><p>Composite <var title="">A</var> within the <a href=#clipping-region>clipping
+ region</a> over the current canvas bitmap using the current
+ composition operator.</li>
+
+ </ol></div>
+
+
+ <h6 id=best-practices><span class=secno>4.8.11.1.13 </span>Best practices</h6>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>When a canvas is interactive, authors should include focusable
+ elements in the element's fallback content corresponding to each
+ focusable part of the canvas, as in the <a href=#drawCustomFocusRingExample>example above</a>.</p>
+
+ <p>To indicate which focusable part of the canvas is currently
+ focused, authors should use the <code title=dom-context-2d-drawSystemFocusRing><a href=#dom-context-2d-drawsystemfocusring>drawSystemFocusRing()</a></code>
+ method, passing it the element for which a ring is being drawn. This
+ method only draws the focus ring if the element is focused, so that
+ it can simply be called whenever drawing the element, without
+ checking whether the element is focused or not first.</p>
+
+ <p>Authors should avoid implementing text editing controls using the
+ <code><a href=#the-canvas-element>canvas</a></code> element. Doing so has a large number of
+ disadvantages:</p>
+
+ <ul><li>Mouse placement of the caret has to be reimplemented.</li>
+
+ <li>Keyboard movement of the caret has to be reimplemented (possibly across lines, for multiline text input).</li>
+
+ <li>Scrolling of the text field has to be implemented (horizontally for long lines, vertically for multiline input).</li>
+
+ <li>Native features such as copy-and-paste have to be reimplemented.</li>
+
+ <li>Native features such as spell-checking have to be reimplemented.</li>
+
+ <li>Native features such as drag-and-drop have to be reimplemented.</li>
+
+ <li>Native features such as page-wide text search have to be reimplemented.</li>
+
+ <li>Native features specific to the user, for example custom text
+ services, have to be reimplemented. This is close to impossible
+ since each user might have different services installed, and there
+ is an unbounded set of possible such services.</li>
+
+ <li>Bidirectional text editing has to be reimplemented.</li>
+
+ <li>For multiline text editing, line wrapping has to be implemented for all relevant languages.</li>
+
+ <li>Text selection has to be reimplemented.</li>
+
+ <li>Dragging of bidirectional text selections has to be reimplemented.</li>
+
+ <li>Platform-native keyboard shortcuts have to be reimplemented.</li>
+
+ <li>Platform-native input method editors (IMEs) have to be reimplemented.</li>
+
+ <li>Undo and redo functionality has to be reimplemented.</li>
+
+ <li>Accessibility features such as magnification following the
+ caret or selection have to be reimplemented.</li>
+
+ </ul><p>This is a huge amount of work, and authors are most strongly
+ encouraged to avoid doing any of it by instead using the
+ <code><a href=#the-input-element>input</a></code> element, the <code><a href=#the-textarea-element>textarea</a></code> element, or
+ the <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code>
+ attribute.</p>
+
+
+ <h6 id=examples><span class=secno>4.8.11.1.14 </span>Examples</h6>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <div class=example>
+
+ <p>Here is an example of a script that uses canvas to draw <a href="data:text/html;charset=utf-8;base64,PCFET0NUWVBFIEhUTUw%2BDQo8aHRtbCBsYW5nPSJlbiI%2BDQogPGhlYWQ%2BDQogIDx0aXRsZT5QcmV0dHkgR2xvd2luZyBMaW5lczwvdGl0bGU%2BDQogPC9oZWFkPg0KIDxib2R5Pg0KPGNhbnZhcyB3aWR0aD0iODAwIiBoZWlnaHQ9IjQ1MCI%2BPC9jYW52YXM%2BDQo8c2NyaXB0Pg0KDQogdmFyIGNvbnRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2FudmFzJylbMF0uZ2V0Q29udGV4dCgnMmQnKTsNCg0KIHZhciBsYXN0WCA9IGNvbnRleHQuY2FudmFzLndpZHRoICogTWF0aC5yYW5kb20oKTsNCiB2YXIgbGFzdFkgPSBjb250ZXh0LmNhbnZhcy5oZWlnaHQgKiBNYXRoLnJhbmRvbSgpOw0KIHZhciBodWUgPSAwOw0KIGZ1bmN0aW9uIGxpbmUoKSB7DQogICBjb250ZXh0LnNhdmUoKTsNCiAgIGNvbnRleHQudHJhbnNsYXRlKGNvbnRleHQuY2FudmFzLndpZHRoLzIsIGNvbnRleHQuY2FudmFzLmhlaWdodC8yKTsNCiAgIGNvbnRleHQuc2NhbGUoMC45LCAwLjkpOw0KICAgY29udGV4dC50cmFuc2xhdGUoLWNvbnRleHQuY2FudmFzLndpZHRoLzIsIC1jb250ZXh0LmNhbnZhcy5oZWlnaHQvMik7DQogICBjb250ZXh0LmJlZ2luUGF0aCgpOw0KICAgY29udGV4dC5saW5lV2lkdGggPSA1ICsgTWF0aC5yYW5kb20oKSAqIDEwOw0KICAgY29udGV4dC5tb3ZlVG8obGFzdFgsIGxhc3RZKTsNCiAgIGxhc3RYID0gY29udGV4dC5jYW52YXMud2lkdGggKiBNYXRoLnJhbmRvbSgpOw0KICAgbGFzdFkgPSBjb250ZXh0LmNhbnZhcy5oZWlnaHQgKiBNYXRoLnJhbmRvbSgpOw0KICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGNvbnRleHQuY2FudmFzLndpZHRoICogTWF0aC5yYW5kb20oKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNhbnZhcy5oZWlnaHQgKiBNYXRoLnJhbmRvbSgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuY2FudmFzLndpZHRoICogTWF0aC5yYW5kb20oKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNhbnZhcy5oZWlnaHQgKiBNYXRoLnJhbmRvbSgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RYLCBsYXN0WSk7DQoNCiAgIGh1ZSA9IGh1ZSArIDEwICogTWF0aC5yYW5kb20oKTsNCiAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSAnaHNsKCcgKyBodWUgKyAnLCA1MCUsIDUwJSknOw0KICAgY29udGV4dC5zaGFkb3dDb2xvciA9ICd3aGl0ZSc7DQogICBjb250ZXh0LnNoYWRvd0JsdXIgPSAxMDsNCiAgIGNvbnRleHQuc3Ryb2tlKCk7DQogICBjb250ZXh0LnJlc3RvcmUoKTsNCiB9DQogc2V0SW50ZXJ2YWwobGluZSwgNTApOw0KDQogZnVuY3Rpb24gYmxhbmsoKSB7DQogICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAsMCwwLDAuMSknOw0KICAgY29udGV4dC5maWxsUmVjdCgwLCAwLCBjb250ZXh0LmNhbnZhcy53aWR0aCwgY29udGV4dC5jYW52YXMuaGVpZ2h0KTsNCiB9DQogc2V0SW50ZXJ2YWwoYmxhbmssIDQwKTsNCg0KPC9zY3JpcHQ%2BDQogPC9ib2R5Pg0KPC9odG1sPg0K">pretty glowing lines</a>.</p>
+
+ <pre>&lt;canvas width="800" height="450"&gt;&lt;/canvas&gt;
+&lt;script&gt;
+
+ var context = document.getElementsByTagName('canvas')[0].getContext('2d');
+
+ var lastX = context.canvas.width * Math.random();
+ var lastY = context.canvas.height * Math.random();
+ var hue = 0;
+ function line() {
+ context.save();
+ context.translate(context.canvas.width/2, context.canvas.height/2);
+ context.scale(0.9, 0.9);
+ context.translate(-context.canvas.width/2, -context.canvas.height/2);
+ context.beginPath();
+ context.lineWidth = 5 + Math.random() * 10;
+ context.moveTo(lastX, lastY);
+ lastX = context.canvas.width * Math.random();
+ lastY = context.canvas.height * Math.random();
+ context.bezierCurveTo(context.canvas.width * Math.random(),
+ context.canvas.height * Math.random(),
+ context.canvas.width * Math.random(),
+ context.canvas.height * Math.random(),
+ lastX, lastY);
+
+ hue = hue + 10 * Math.random();
+ context.strokeStyle = 'hsl(' + hue + ', 50%, 50%)';
+ context.shadowColor = 'white';
+ context.shadowBlur = 10;
+ context.stroke();
+ context.restore();
+ }
+ setInterval(line, 50);
+
+ function blank() {
+ context.fillStyle = 'rgba(0,0,0,0.1)';
+ context.fillRect(0, 0, context.canvas.width, context.canvas.height);
+ }
+ setInterval(blank, 40);
+
+&lt;/script&gt;</pre>
+
+ </div>
+
+
+
+ </div><!--data-component-->
+
+ <!--2DCONTEXT-->
+
+ <div class=impl>
+
+ <h5 id=color-spaces-and-color-correction><span class=secno>4.8.11.2 </span>Color spaces and color correction</h5>
+
+ <p>The <code><a href=#the-canvas-element>canvas</a></code> APIs must perform color correction at
+ only two points: when rendering images with their own gamma
+ correction and color space information onto the canvas, to convert
+ the image to the color space used by the canvas (e.g. using the 2D
+ Context's <code title=dom-context-2d-drawImage><a href=#dom-context-2d-drawimage>drawImage()</a></code>
+ method with an <code><a href=#htmlimageelement>HTMLImageElement</a></code> object), and when
+ rendering the actual canvas bitmap to the output device.</p>
+
+ <p class=note>Thus, in the 2D context, colors used to draw shapes
+ onto the canvas will exactly match colors obtained through the <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code>
+ method.</p>
+
+ <p>The <code title=dom-canvas-toDataURL><a href=#dom-canvas-todataurl>toDataURL()</a></code> method
+ must not include color space information in the resource
+ returned. Where the output format allows it, the color of pixels in
+ resources created by <code title=dom-canvas-toDataURL><a href=#dom-canvas-todataurl>toDataURL()</a></code> must match those
+ returned by the <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code>
+ method.</p>
+
+ <p>In user agents that support CSS, the color space used by a
+ <code><a href=#the-canvas-element>canvas</a></code> element must match the color space used for
+ processing any colors for that element in CSS.</p>
+
+ <p>The gamma correction and color space information of images must
+ be handled in such a way that an image rendered directly using an
+ <code><a href=#the-img-element>img</a></code> element would use the same colors as one painted on
+ a <code><a href=#the-canvas-element>canvas</a></code> element that is then itself
+ rendered. Furthermore, the rendering of images that have no color
+ correction information (such as those returned by the <code title=dom-canvas-toDataURL><a href=#dom-canvas-todataurl>toDataURL()</a></code> method) must be
+ rendered with no color correction.</p>
+
+ <p class=note>Thus, in the 2D context, calling the <code title=dom-context-2d-drawImage><a href=#dom-context-2d-drawimage>drawImage()</a></code> method to render
+ the output of the <code title=dom-canvas-toDataURL><a href=#dom-canvas-todataurl>toDataURL()</a></code> method to the
+ canvas, given the appropriate dimensions, has no visible effect.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h5 id=security-with-canvas-elements><span class=secno>4.8.11.3 </span>Security with <code><a href=#the-canvas-element>canvas</a></code> elements</h5>
+
+ <p><strong>Information leakage</strong> can occur if scripts from
+ one <a href=#origin>origin</a> can access information (e.g. read pixels)
+ from images from another origin (one that isn't the <a href=#same-origin title="same origin">same</a>).</p>
+
+ <p>To mitigate this, <code><a href=#the-canvas-element>canvas</a></code> elements are defined to
+ have a flag indicating whether they are <i>origin-clean</i>. All
+ <code><a href=#the-canvas-element>canvas</a></code> elements must start with their
+ <i>origin-clean</i> set to true. The flag must be set to false if
+ any of the following actions occur:</p>
+
+ <ul><li><p>The element's 2D context's <code title=dom-context-2d-drawImage><a href=#dom-context-2d-drawimage>drawImage()</a></code> method is
+ called with an <code><a href=#htmlimageelement>HTMLImageElement</a></code> or an
+ <code><a href=#htmlvideoelement>HTMLVideoElement</a></code> whose <a href=#origin>origin</a> is not the
+ <a href=#same-origin title="same origin">same</a> as that of the
+ <code><a href=#document>Document</a></code> object that owns the <code><a href=#the-canvas-element>canvas</a></code>
+ element.</li>
+
+ <li><p>The element's 2D context's <code title=dom-context-2d-drawImage><a href=#dom-context-2d-drawimage>drawImage()</a></code> method is
+ called with an <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code> whose
+ <i>origin-clean</i> flag is false.</li>
+
+ <li><p>The element's 2D context's <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code> attribute is set
+ to a <code><a href=#canvaspattern>CanvasPattern</a></code> object that was created from an
+ <code><a href=#htmlimageelement>HTMLImageElement</a></code> or an <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>
+ whose <a href=#origin>origin</a> was not the <a href=#same-origin title="same
+ origin">same</a> as that of the <code><a href=#document>Document</a></code> object
+ that owns the <code><a href=#the-canvas-element>canvas</a></code> element when the pattern was
+ created.</li>
+
+ <li><p>The element's 2D context's <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code> attribute is set
+ to a <code><a href=#canvaspattern>CanvasPattern</a></code> object that was created from an
+ <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code> whose <i>origin-clean</i> flag was
+ false when the pattern was created.</li>
+
+ <li><p>The element's 2D context's <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code> attribute is
+ set to a <code><a href=#canvaspattern>CanvasPattern</a></code> object that was created from an
+ <code><a href=#htmlimageelement>HTMLImageElement</a></code> or an <code><a href=#htmlvideoelement>HTMLVideoElement</a></code>
+ whose <a href=#origin>origin</a> was not the <a href=#same-origin title="same
+ origin">same</a> as that of the <code><a href=#document>Document</a></code> object
+ that owns the <code><a href=#the-canvas-element>canvas</a></code> element when the pattern was
+ created.</li>
+
+ <li><p>The element's 2D context's <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code> attribute is
+ set to a <code><a href=#canvaspattern>CanvasPattern</a></code> object that was created from an
+ <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code> whose <i>origin-clean</i> flag was
+ false when the pattern was created.</li>
+
+ <li><p>The element's 2D context's <code title=dom-context-2d-fillText><a href=#dom-context-2d-filltext>fillText()</a></code> or <code title=dom-context-2d-fillText><a href=#dom-context-2d-filltext>strokeText()</a></code> methods are
+ invoked and consider using a font that has an <a href=#origin>origin</a>
+ that is not the <a href=#same-origin title="same origin">same</a> as that of
+ the <code><a href=#document>Document</a></code> object that owns the <code><a href=#the-canvas-element>canvas</a></code>
+ element. (The font doesn't even have to be used; all that matters
+ is whether the font was considered for any of the glyphs
+ drawn.)</li> <!-- because fonts could consider sensitive
+ material, I guess; and because that sensitivity could extend to
+ whether or not a particular glyph is in the font in the first
+ place. -->
+
+ </ul><p>Whenever the <code title=dom-canvas-toDataURL><a href=#dom-canvas-todataurl>toDataURL()</a></code> method of a
+ <code><a href=#the-canvas-element>canvas</a></code> element whose <i>origin-clean</i> flag is set to
+ false is called, the method must throw a <code><a href=#securityerror>SecurityError</a></code>
+ exception.</p>
+
+ <p>Whenever the <code title=dom-context-2d-getImageData><a href=#dom-context-2d-getimagedata>getImageData()</a></code> method of
+ the 2D context of a <code><a href=#the-canvas-element>canvas</a></code> element whose
+ <i>origin-clean</i> flag is set to false is called with otherwise
+ correct arguments, the method must throw a <code><a href=#securityerror>SecurityError</a></code>
+ exception.</p>
+
+ <p>Whenever the <code title=dom-context-2d-measureText><a href=#dom-context-2d-measuretext>measureText()</a></code> method of
+ the 2D context of a <code><a href=#the-canvas-element>canvas</a></code> element ends up using a font
+ that has an <a href=#origin>origin</a> that is not the <a href=#same-origin title="same
+ origin">same</a> as that of the <code><a href=#document>Document</a></code> object that
+ owns the <code><a href=#the-canvas-element>canvas</a></code> element, the method must throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception.</p>
+
+ <p class=note>Even resetting the canvas state by changing its
+ <code title=attr-canvas-width><a href=#attr-canvas-width>width</a></code> or <code title=attr-canvas-height><a href=#attr-canvas-height>height</a></code> attributes doesn't reset
+ the <i>origin-clean</i> flag.</p>
+
+ </div>
+
+
+
+ <h4 id=the-map-element><span class=secno>4.8.12 </span>The <dfn><code>map</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd>When the element only contains <a href=#phrasing-content>phrasing content</a>: <a href=#phrasing-content>phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>When the element only contains <a href=#phrasing-content>phrasing content</a>: where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dd>Otherwise: where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#transparent>Transparent</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-map-name><a href=#attr-map-name>name</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlmapelement>HTMLMapElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-map-name title=dom-map-name>name</a>;
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-map-areas title=dom-map-areas>areas</a>;
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-map-images title=dom-map-images>images</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-map-element>map</a></code> element, in conjunction with any
+ <code><a href=#the-area-element>area</a></code> element descendants, defines an <a href=#image-map>image
+ map</a>. The element <a href=#represents>represents</a> its children.</p>
+
+ <p>The <dfn id=attr-map-name title=attr-map-name><code>name</code></dfn> attribute
+ gives the map a name so that it can be referenced. The attribute
+ must be present and must have a non-empty value with no <a href=#space-character title="space character">space characters</a>. The value of the
+ <code title=attr-map-name><a href=#attr-map-name>name</a></code> attribute must not be a
+ <a href=#compatibility-caseless title="compatibility caseless">compatibility-caseless</a>
+ match for the value of the <code title=attr-map-name><a href=#attr-map-name>name</a></code>
+ attribute of another <code><a href=#the-map-element>map</a></code> element in the same
+ document. If the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute is also
+ specified, both attributes must have the same value.</p>
+
+ <dl class=domintro><dt><var title="">map</var> . <code title=dom-map-areas><a href=#dom-map-areas>areas</a></code></dt>
+
+ <dd>
+
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-area-element>area</a></code> elements in the <code><a href=#the-map-element>map</a></code>.</p>
+
+ </dd>
+
+ <dt><var title="">map</var> . <code title=dom-map-images><a href=#dom-map-images>images</a></code></dt>
+
+ <dd>
+
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-img-element>img</a></code> and <code><a href=#the-object-element>object</a></code> elements that use the <code><a href=#the-map-element>map</a></code>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-map-areas title=dom-map-areas><code>areas</code></dfn> attribute
+ must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#the-map-element>map</a></code> element, whose filter matches only
+ <code><a href=#the-area-element>area</a></code> elements.</p>
+
+ <p>The <dfn id=dom-map-images title=dom-map-images><code>images</code></dfn>
+ attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only
+ <code><a href=#the-img-element>img</a></code> and <code><a href=#the-object-element>object</a></code> elements that are
+ associated with this <code><a href=#the-map-element>map</a></code> element according to the
+ <a href=#image-map>image map</a> processing model.</p>
+
+ <p>The IDL attribute <dfn id=dom-map-name title=dom-map-name><code>name</code></dfn> must
+ <a href=#reflect>reflect</a> the content attribute of the same name.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Image maps can be defined in conjunction with other content on
+ the page, to ease maintenance. This example is of a page with an
+ image map at the top of the page and a corresponding set of text
+ links at the bottom.</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;TITLE&gt;Babies&trade;: Toys&lt;/TITLE&gt;
+&lt;HEADER&gt;
+ &lt;H1&gt;Toys&lt;/H1&gt;
+ &lt;IMG SRC="/images/menu.gif"
+ ALT="Babies&trade; navigation menu. Select a department to go to its page."
+ USEMAP="#NAV"&gt;
+&lt;/HEADER&gt;
+ ...
+&lt;FOOTER&gt;
+ &lt;MAP NAME="NAV"&gt;
+ &lt;P&gt;
+ &lt;A HREF="/clothes/"&gt;Clothes&lt;/A&gt;
+ &lt;AREA ALT="Clothes" COORDS="0,0,100,50" HREF="/clothes/"&gt; |
+ &lt;A HREF="/toys/"&gt;Toys&lt;/A&gt;
+ &lt;AREA ALT="Toys" COORDS="0,0,100,50" HREF="/toys/"&gt; |
+ &lt;A HREF="/food/"&gt;Food&lt;/A&gt;
+ &lt;AREA ALT="Food" COORDS="0,0,100,50" HREF="/food/"&gt; |
+ &lt;A HREF="/books/"&gt;Books&lt;/A&gt;
+ &lt;AREA ALT="Books" COORDS="0,0,100,50" HREF="/books/"&gt;
+ &lt;/MAP&gt;
+&lt;/FOOTER&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-area-element><span class=secno>4.8.13 </span>The <dfn><code>area</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected, but only if there is a <code><a href=#the-map-element>map</a></code> element ancestor.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-area-alt><a href=#attr-area-alt>alt</a></code></dd>
+ <dd><code title=attr-area-coords><a href=#attr-area-coords>coords</a></code></dd>
+ <dd><code title=attr-area-shape><a href=#attr-area-shape>shape</a></code></dd>
+ <dd><code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code></dd>
+ <dd><code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code></dd>
+<!--DOWNLOAD--><!--PING-->
+ <dd><code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code></dd>
+ <dd><code title=attr-hyperlink-ping><a href=#ping>ping</a></code></dd>
+<!--DOWNLOAD--><!--PING-->
+ <dd><code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code></dd>
+ <dd><code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code></dd>
+ <dd><code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code></dd>
+ <dd><code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlareaelement>HTMLAreaElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-area-alt title=dom-area-alt>alt</a>;
+ attribute DOMString <a href=#dom-area-coords title=dom-area-coords>coords</a>;
+ attribute DOMString <a href=#dom-area-shape title=dom-area-shape>shape</a>;
+ stringifier attribute DOMString <a href=#dom-area-href title=dom-area-href>href</a>;
+ attribute DOMString <a href=#dom-area-target title=dom-area-target>target</a>;
+<!--DOWNLOAD--><!--PING-->
+ attribute DOMString <a href=#dom-area-download title=dom-area-download>download</a>;
+ attribute DOMString <a href=#dom-area-ping title=dom-area-ping>ping</a>;
+<!--DOWNLOAD--><!--PING-->
+ attribute DOMString <a href=#dom-area-rel title=dom-area-rel>rel</a>;
+ readonly attribute <a href=#domtokenlist>DOMTokenList</a> <a href=#dom-area-rellist title=dom-area-relList>relList</a>;
+ attribute DOMString <a href=#dom-area-media title=dom-area-media>media</a>;
+ attribute DOMString <a href=#dom-area-hreflang title=dom-area-hreflang>hreflang</a>;
+ attribute DOMString <a href=#dom-area-type title=dom-area-type>type</a>;
+
+ // <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>
+ attribute DOMString <a href=#dom-area-protocol title=dom-area-protocol>protocol</a>;
+ attribute DOMString <a href=#dom-area-host title=dom-area-host>host</a>;
+ attribute DOMString <a href=#dom-area-hostname title=dom-area-hostname>hostname</a>;
+ attribute DOMString <a href=#dom-area-port title=dom-area-port>port</a>;
+ attribute DOMString <a href=#dom-area-pathname title=dom-area-pathname>pathname</a>;
+ attribute DOMString <a href=#dom-area-search title=dom-area-search>search</a>;
+ attribute DOMString <a href=#dom-area-hash title=dom-area-hash>hash</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-area-element>area</a></code> element <a href=#represents>represents</a> either a
+ hyperlink with some text and a corresponding area on an <a href=#image-map>image
+ map</a>, or a dead area on an image map.</p>
+
+ <p>If the <code><a href=#the-area-element>area</a></code> element has an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute, then the
+ <code><a href=#the-area-element>area</a></code> element represents a <a href=#hyperlink>hyperlink</a>. In
+ this case, the <dfn id=attr-area-alt title=attr-area-alt><code>alt</code></dfn>
+ attribute must be present. It specifies the text of the
+ hyperlink. Its value must be text that, when presented with the
+ texts specified for the other hyperlinks of the <a href=#image-map>image
+ map</a>, and with the alternative text of the image, but without
+ the image itself, provides the user with the same kind of choice as
+ the hyperlink would when used without its text but with its shape
+ applied to the image. The <code title=attr-area-alt><a href=#attr-area-alt>alt</a></code>
+ attribute may be left blank if there is another <code><a href=#the-area-element>area</a></code>
+ element in the same <a href=#image-map>image map</a> that points to the same
+ resource and has a non-blank <code title=attr-area-alt><a href=#attr-area-alt>alt</a></code>
+ attribute.</p>
+
+ <p>If the <code><a href=#the-area-element>area</a></code> element has no <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute, then the area
+ represented by the element cannot be selected, and the <code title=attr-area-alt><a href=#attr-area-alt>alt</a></code> attribute must be omitted.</p>
+
+ <p>In both cases, the <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code> and
+ <code title=attr-area-coords><a href=#attr-area-coords>coords</a></code> attributes specify the
+ area.</p>
+
+ <p>The <dfn id=attr-area-shape title=attr-area-shape><code>shape</code></dfn>
+ attribute is an <a href=#enumerated-attribute>enumerated attribute</a>. The following
+ table lists the keywords defined for this attribute. The states
+ given in the first cell of the rows with keywords give the states to
+ which those keywords map. <span class=impl>Some of the keywords
+ are non-conforming, as noted in the last column.</span></p>
+
+ <table><thead><tr><th>State
+ <th>Keywords
+ <th class=impl>Notes
+ <tbody><tr><td rowspan=2><a href=#attr-area-shape-circle title=attr-area-shape-circle>Circle state</a>
+ <td><dfn id=attr-area-shape-keyword-circle title=attr-area-shape-keyword-circle><code>circle</code></dfn>
+ <td class=impl>
+ <tr><td class=impl><dfn id=attr-area-shape-keyword-circ title=attr-area-shape-keyword-circ><code>circ</code></dfn>
+ <td class=impl>Non-conforming
+ <tr><td><a href=#attr-area-shape-default title=attr-area-shape-default>Default state</a>
+ <td><dfn id=attr-area-shape-keyword-default title=attr-area-shape-keyword-default><code>default</code></dfn>
+ <td class=impl>
+ <tr><td rowspan=2><a href=#attr-area-shape-poly title=attr-area-shape-poly>Polygon state</a>
+ <td><dfn id=attr-area-shape-keyword-poly title=attr-area-shape-keyword-poly><code>poly</code></dfn>
+ <td class=impl>
+ <tr><td class=impl><dfn id=attr-area-shape-keyword-polygon title=attr-area-shape-keyword-polygon><code>polygon</code></dfn>
+ <td class=impl>Non-conforming
+ <tr><td rowspan=2><a href=#attr-area-shape-rect title=attr-area-shape-rect>Rectangle state</a>
+ <td><dfn id=attr-area-shape-keyword-rect title=attr-area-shape-keyword-rect><code>rect</code></dfn>
+ <td class=impl>
+ <tr><td class=impl><dfn id=attr-area-shape-keyword-rectangle title=attr-area-shape-keyword-rectangle><code>rectangle</code></dfn>
+ <td class=impl>Non-conforming
+ </table><p>The attribute may be omitted. The <i>missing value default</i> is
+ the <a href=#attr-area-shape-rect title=attr-area-shape-rect>rectangle</a> state.</p>
+
+ <p>The <dfn id=attr-area-coords title=attr-area-coords><code>coords</code></dfn>
+ attribute must, if specified, contain a <a href=#valid-list-of-integers>valid list of
+ integers</a>. This attribute gives the coordinates for the shape
+ described by the <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code>
+ attribute. <span class=impl>The processing for this attribute is
+ described as part of the <a href=#image-map>image map</a> processing
+ model.</span></p>
+
+ <!-- v2: It was suggested by John S. Urban that coords should
+ support percentages as well as pixels, so that one could use the
+ same image map for images of various sizes. -->
+
+ <p>In the <dfn id=attr-area-shape-circle title=attr-area-shape-circle>circle state</dfn>,
+ <code><a href=#the-area-element>area</a></code> elements must have a <code title=attr-area-coords><a href=#attr-area-coords>coords</a></code> attribute present, with three
+ integers, the last of which must be non-negative. The first integer
+ must be the distance in CSS pixels from the left edge of the image
+ to the center of the circle, the second integer must be the distance
+ in CSS pixels from the top edge of the image to the center of the
+ circle, and the third integer must be the radius of the circle,
+ again in CSS pixels.</p>
+
+ <p>In the <dfn id=attr-area-shape-default title=attr-area-shape-default>default state</dfn>
+ state, <code><a href=#the-area-element>area</a></code> elements must not have a <code title=attr-area-coords><a href=#attr-area-coords>coords</a></code> attribute. (The area is the
+ whole image.)</p>
+
+ <p>In the <dfn id=attr-area-shape-poly title=attr-area-shape-poly>polygon state</dfn>,
+ <code><a href=#the-area-element>area</a></code> elements must have a <code title=attr-area-coords><a href=#attr-area-coords>coords</a></code> attribute with at least six
+ integers, and the number of integers must be even. Each pair of
+ integers must represent a coordinate given as the distances from the
+ left and the top of the image in CSS pixels respectively, and all
+ the coordinates together must represent the points of the polygon,
+ in order.</p>
+
+ <p>In the <dfn id=attr-area-shape-rect title=attr-area-shape-rect>rectangle state</dfn>,
+ <code><a href=#the-area-element>area</a></code> elements must have a <code title=attr-area-coords><a href=#attr-area-coords>coords</a></code> attribute with exactly four
+ integers, the first of which must be less than the third, and the
+ second of which must be less than the fourth. The four points must
+ represent, respectively, the distance from the left edge of the
+ image to the left side of the rectangle, the distance from the
+ top edge to the top side, the distance from the left edge to the
+ right side, and the distance from the top edge to the bottom side,
+ all in CSS pixels.</p>
+
+ <div class=impl>
+
+ <p>When user agents allow users to <a href=#following-hyperlinks title="following
+ hyperlinks">follow hyperlinks</a>
+<!--DOWNLOAD-->
+ or <a href=#downloading-hyperlinks title="downloading hyperlinks">download hyperlinks</a>
+<!--DOWNLOAD-->
+ created using the <code><a href=#the-area-element>area</a></code> element, as described in the
+ next section, the
+ <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>,
+ <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code>,
+<!--DOWNLOAD--><!--PING-->
+ <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code>, and
+ <code title=attr-hyperlink-ping><a href=#ping>ping</a></code>
+<!--DOWNLOAD--><!--PING-->
+ attributes decide how the link is followed.
+ The <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>,
+ <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes may be used to
+ indicate to the user the likely nature of the target resource before
+ the user follows the link.</p>
+
+ </div>
+
+ <p>The <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code>,
+<!--DOWNLOAD--><!--PING-->
+ <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code>,
+ <code title=attr-hyperlink-ping><a href=#ping>ping</a></code>,
+<!--DOWNLOAD--><!--PING-->
+ <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>, <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes must be omitted
+ if the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute is
+ not present.</p>
+
+ <div class=impl>
+
+ <p>The <a href=#activation-behavior>activation behavior</a> of <code><a href=#the-area-element>area</a></code>
+ elements is to run the following steps:</p>
+
+ <ol><li><p>If the <code title=event-click><a href=#event-click>click</a></code> event in
+ question is not <a href=#concept-events-trusted title=concept-events-trusted>trusted</a>
+ (i.e. a <code title=dom-click><a href=#dom-click>click()</a></code> method call was the
+ reason for the event being dispatched), and the <code><a href=#the-area-element>area</a></code>
+<!--DOWNLOAD-->
+ element has a <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute or the
+<!--DOWNLOAD-->
+ element's <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code>
+ attribute is present and applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a
+ browsing context given a browsing context name</a>, using the
+ value of the <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code>
+ attribute as the browsing context name, would result in there not
+ being a chosen browsing context, then throw an
+ <code><a href=#invalidaccesserror>InvalidAccessError</a></code> exception and abort these
+ steps.</li>
+
+ <li><p>Otherwise, the user agent must <a href=#following-hyperlinks title="following
+ hyperlinks">follow the hyperlink</a>
+<!--DOWNLOAD-->
+ or <a href=#downloading-hyperlinks title="downloading hyperlinks">download the hyperlink</a>
+<!--DOWNLOAD-->
+ created by the <code><a href=#the-area-element>area</a></code> element, if any, and as determined by
+<!--DOWNLOAD-->
+ the <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute and
+<!--DOWNLOAD-->
+ any expressed user preference.</li>
+
+ </ol><p>The IDL attributes <dfn id=dom-area-alt title=dom-area-alt><code>alt</code></dfn>, <dfn id=dom-area-coords title=dom-area-coords><code>coords</code></dfn>, <dfn id=dom-area-href title=dom-area-href><code>href</code></dfn>, <dfn id=dom-area-target title=dom-area-target><code>target</code></dfn>,
+<!--DOWNLOAD--><!--PING-->
+ <dfn id=dom-area-download title=dom-area-download><code>download</code></dfn>,
+ <dfn id=dom-area-ping title=dom-area-ping><code>ping</code></dfn>,
+<!--DOWNLOAD--><!--PING-->
+ <dfn id=dom-area-rel title=dom-area-rel><code>rel</code></dfn>, <dfn id=dom-area-media title=dom-area-media><code>media</code></dfn>, <dfn id=dom-area-hreflang title=dom-area-hreflang><code>hreflang</code></dfn>, and <dfn id=dom-area-type title=dom-area-type><code>type</code></dfn>, each must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ <p>The IDL attribute <dfn id=dom-area-shape title=dom-area-shape><code>shape</code></dfn> must
+ <a href=#reflect>reflect</a> the <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code>
+ content attribute.</p>
+
+ <p>The IDL attribute <dfn id=dom-area-rellist title=dom-area-rellist><code>relList</code></dfn> must
+ <a href=#reflect>reflect</a> the <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>
+ content attribute.</p>
+
+ <p>The <code><a href=#the-area-element>area</a></code> element also supports the complement of
+ <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, <dfn id=dom-area-protocol title=dom-area-protocol><code>protocol</code></dfn>, <dfn id=dom-area-host title=dom-area-host><code>host</code></dfn>, <dfn id=dom-area-port title=dom-area-port><code>port</code></dfn>, <dfn id=dom-area-hostname title=dom-area-hostname><code>hostname</code></dfn>, <dfn id=dom-area-pathname title=dom-area-pathname><code>pathname</code></dfn>, <dfn id=dom-area-search title=dom-area-search><code>search</code></dfn>, and <dfn id=dom-area-hash title=dom-area-hash><code>hash</code></dfn>. These must follow the
+ rules given for <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, with
+ the <a href=#concept-uda-input title=concept-uda-input>input</a> being the result of
+ <a href=#resolve-a-url title="resolve a url">resolving</a> the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute relative to the
+ element, if there is such an attribute and resolving it is
+ successful, or the empty string otherwise; and the <a href=#concept-uda-setter title=concept-uda-setter>common setter action</a> being the
+ same as setting the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute to the new output
+ value.</p>
+
+ </div>
+
+
+
+ <h4 id=image-maps><span class=secno>4.8.14 </span>Image maps</h4>
+
+ <!-- TESTS
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0A%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/smallcats%22%20usemap%3D%23a%20onclick%3Dw%28%27img%27%29%3E%0A%3Cmap%20name%3Da%3E%0A%20%3Carea%20onclick%3Dw%28%271%27%29%20coords%3D%270%25%200%25%20100%25%20100%25%27%20href%3Djavascript%3A%3E%0A%3C/map%3E
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0A%3Cbody%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/smallcats%22%20usemap%3D%23a%20onclick%3Dw%28%27img%27%29%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/sample%22%20usemap%3D%23a%20onclick%3Dw%28%27img%27%29%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3Cmap%20name%3Da%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%20%3Carea%20onclick%3Dw%28%271%27%29%20coords%3D%270%200%2050%2050%27%20href%3Djavascript%3A%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3C/map%3E%0A%3Cscript%3E%0A%20var%20x%20%3D%20document.getElementsByTagName%28%27img%27%29%5B0%5D%3B%0A%20x.parentNode.appendChild%28x%29%3B%0A%20document.getElementsByTagName%28%27area%27%29%5B0%5D.focus%28%29%3B%0A%3C/script%3E
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3Ex%3Cmap%3E%3Carea%20shape%3Dpolyg%20coords%3D%221%2C2%203%22%3E%3C/map%3E%0A%3Cscript%3Ex%20%3D%20document.getElementsByTagName%28%27area%27%29%5B0%5D%3B%20w%28x.shape%20+%20%27%20%27%20+%20x.coords%29%3C/script%3E
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0D%0A%3Cp%3E%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/astrophy/128%22%20usemap%3D%23a%3E%0D%0A%3Cmap%20name%3Da%3E%3Carea%20shape%3Dcirc%20coords%3D%2220%2C20%2C10%25%22%20href%3D%23%3E%3Carea%20shape%3Dcirc%20coords%3D%2220%2C20%2C10%22%20href%3D%23%3E%3C/map%3E%0D%0A%3Cscript%3Edocument.write%28document.getElementsByTagName%28%27area%27%29%5B0%5D.coords%29%3C/script%3E
+ -->
+
+ <div class=impl>
+
+ <h5 id=authoring><span class=secno>4.8.14.1 </span>Authoring</h5>
+
+ </div>
+
+ <p>An <dfn id=image-map>image map</dfn> allows geometric areas on an image to be
+ associated with <a href=#hyperlink title=hyperlink>hyperlinks</a>.</p>
+
+ <p>An image, in the form of an <code><a href=#the-img-element>img</a></code> element or an
+ <code><a href=#the-object-element>object</a></code> element representing an image, may be associated
+ with an image map (in the form of a <code><a href=#the-map-element>map</a></code> element) by
+ specifying a <dfn id=attr-hyperlink-usemap title=attr-hyperlink-usemap><code>usemap</code></dfn> attribute on
+ the <code><a href=#the-img-element>img</a></code> or <code><a href=#the-object-element>object</a></code> element. The <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute, if specified,
+ must be a <a href=#valid-hash-name-reference>valid hash-name reference</a> to a
+ <code><a href=#the-map-element>map</a></code> element.</p>
+
+ <div class=example>
+
+ <p>Consider an image that looks as follows:</p>
+
+ <p><img alt="A line with four shapes in it, equally spaced: a red hollow box, a green circle, a blue triangle, and a yellow four-pointed star." height=150 src=greenbox.png width=600></p>
+
+ <p>If we wanted just the colored areas to be clickable, we could
+ do it as follows:</p>
+
+ <pre>&lt;p&gt;
+ Please select a shape:
+ &lt;img src="shapes.png" usemap="#shapes"
+ alt="Four shapes are available: a red hollow box, a green circle, a blue triangle, and a yellow four-pointed star."&gt;
+ &lt;map name="shapes"&gt;
+ &lt;area shape=rect coords="50,50,100,100"&gt; &lt;!-- the hole in the red box --&gt;
+ &lt;area shape=rect coords="25,25,125,125" href="red.html" alt="Red box."&gt;
+ &lt;area shape=circle coords="200,75,50" href="green.html" alt="Green circle."&gt;
+ &lt;area shape=poly coords="325,25,262,125,388,125" href="blue.html" alt="Blue triangle."&gt;
+ &lt;area shape=poly coords="450,25,435,60,400,75,435,90,450,125,465,90,500,75,465,60"
+ href="yellow.html" alt="Yellow star."&gt;
+ &lt;/map&gt;
+&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=impl>
+
+ <h5 id=processing-model><span class=secno>4.8.14.2 </span>Processing model</h5>
+
+ <p>If an <code><a href=#the-img-element>img</a></code> element or an <code><a href=#the-object-element>object</a></code> element
+ representing an image has a <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute specified,
+ user agents must process it as follows:</p>
+
+ <ol><li><p>First, <a href=#rules-for-parsing-a-hash-name-reference>rules for parsing a hash-name reference</a>
+ to a <code><a href=#the-map-element>map</a></code> element must be followed. This will return
+ either an element (the <var title="">map</var>) or null.</li>
+
+ <li><p>If that returned null, then abort these steps. The image is
+ not associated with an image map after all.</li>
+
+ <li><p>Otherwise, the user agent must collect all the
+ <code><a href=#the-area-element>area</a></code> elements that are descendants of the <var title="">map</var>. Let those be the <var title="">areas</var>.</li>
+
+ </ol><p>Having obtained the list of <code><a href=#the-area-element>area</a></code> elements that form
+ the image map (the <var title="">areas</var>), interactive user
+ agents must process the list in one of two ways.</p>
+
+ <p>If the user agent intends to show the text that the
+ <code><a href=#the-img-element>img</a></code> element represents, then it must use the following
+ steps.</p>
+
+ <p class=note>In user agents that do not support images, or that
+ have images disabled, <code><a href=#the-object-element>object</a></code> elements cannot represent
+ images, and thus this section never applies (the <a href=#fallback-content>fallback
+ content</a> is shown instead). The following steps therefore only
+ apply to <code><a href=#the-img-element>img</a></code> elements.</p>
+
+ <ol><li><p>Remove all the <code><a href=#the-area-element>area</a></code> elements in <var title="">areas</var> that have no <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute.</li>
+
+ <li><p>Remove all the <code><a href=#the-area-element>area</a></code> elements in <var title="">areas</var> that have no <code title=attr-area-alt><a href=#attr-area-alt>alt</a></code> attribute, or whose <code title=attr-area-alt><a href=#attr-area-alt>alt</a></code> attribute's value is the empty
+ string, <em>if</em> there is another <code><a href=#the-area-element>area</a></code> element in
+ <var title="">areas</var> with the same value in the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute and with a
+ non-empty <code title=attr-area-alt><a href=#attr-area-alt>alt</a></code> attribute.</li>
+
+ <li><p>Each remaining <code><a href=#the-area-element>area</a></code> element in <var title="">areas</var> represents a <a href=#hyperlink>hyperlink</a>. Those
+ hyperlinks should all be made available to the user in a manner
+ associated with the text of the <code><a href=#the-img-element>img</a></code>.</p>
+
+ <p>In this context, user agents may represent <code><a href=#the-area-element>area</a></code> and
+ <code><a href=#the-img-element>img</a></code> elements with no specified <code title="">alt</code> attributes, or whose <code title="">alt</code>
+ attributes are the empty string or some other non-visible text, in
+ a user-agent-defined fashion intended to indicate the lack of
+ suitable author-provided text.</li>
+
+ </ol><p>If the user agent intends to show the image and allow interaction
+ with the image to select hyperlinks, then the image must be
+ associated with a set of layered shapes, taken from the
+ <code><a href=#the-area-element>area</a></code> elements in <var title="">areas</var>, in reverse
+ tree order (so the last specified <code><a href=#the-area-element>area</a></code> element in the
+ <var title="">map</var> is the bottom-most shape, and the first
+ element in the <var title="">map</var>, in tree order, is the
+ top-most shape).</p>
+
+ <p>Each <code><a href=#the-area-element>area</a></code> element in <var title="">areas</var> must
+ be processed as follows to obtain a shape to layer onto the
+ image:</p>
+
+ <ol><li><p>Find the state that the element's <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code> attribute represents.</li>
+
+ <li><p>Use the <a href=#rules-for-parsing-a-list-of-integers>rules for parsing a list of integers</a> to
+ parse the element's <code title=attr-area-coords><a href=#attr-area-coords>coords</a></code>
+ attribute, if it is present, and let the result be the <var title="">coords</var> list. If the attribute is absent, let the
+ <var title="">coords</var> list be the empty list.</li>
+
+ <li><p>If the number of items in the <var title="">coords</var>
+ list is less than the minimum number given for the
+ <code><a href=#the-area-element>area</a></code> element's current state, as per the following
+ table, then the shape is empty; abort these steps.</p>
+ <table><thead><tr><th>State
+ <th>Minimum number of items
+ <tbody><tr><td><a href=#attr-area-shape-circle title=attr-area-shape-circle>Circle state</a>
+ <td>3
+ <tr><td><a href=#attr-area-shape-default title=attr-area-shape-default>Default state</a>
+ <td>0
+ <tr><td><a href=#attr-area-shape-poly title=attr-area-shape-poly>Polygon state</a>
+ <td>6
+ <tr><td><a href=#attr-area-shape-rect title=attr-area-shape-rect>Rectangle state</a>
+ <td>4
+ </table></li>
+
+ <li><p>Check for excess items in the <var title="">coords</var>
+ list as per the entry in the following list corresponding to the
+ <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code> attribute's state:</p>
+ <dl class=switch><dt><a href=#attr-area-shape-circle title=attr-area-shape-circle>Circle state</a></dt>
+ <dd>Drop any items in the list beyond the third.</dd>
+ <dt><a href=#attr-area-shape-default title=attr-area-shape-default>Default state</a></dt>
+ <dd>Drop all items in the list.</dd>
+ <dt><a href=#attr-area-shape-poly title=attr-area-shape-poly>Polygon state</a></dt>
+ <dd>Drop the last item if there's an odd number of items.</dd>
+ <dt><a href=#attr-area-shape-rect title=attr-area-shape-rect>Rectangle state</a></dt>
+ <dd>Drop any items in the list beyond the fourth.</dd>
+ </dl></li>
+
+ <li><p>If the <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code> attribute
+ represents the <a href=#attr-area-shape-rect title=attr-area-shape-rect>rectangle
+ state</a>, and the first number in the list is numerically less
+ than the third number in the list, then swap those two numbers
+ around.</li>
+
+ <li><p>If the <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code> attribute
+ represents the <a href=#attr-area-shape-rect title=attr-area-shape-rect>rectangle
+ state</a>, and the second number in the list is numerically less
+ than the fourth number in the list, then swap those two numbers
+ around.</li>
+
+ <li><p>If the <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code> attribute
+ represents the <a href=#attr-area-shape-circle title=attr-area-shape-circle>circle
+ state</a>, and the third number in the list is less than or
+ equal to zero, then the shape is empty; abort these steps.</li>
+
+ <li><p>Now, the shape represented by the element is the one
+ described for the entry in the list below corresponding to the
+ state of the <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code>
+ attribute:</p>
+
+ <dl class=switch><dt><a href=#attr-area-shape-circle title=attr-area-shape-circle>Circle state</a></dt>
+ <dd>
+ <p>Let <var title="">x</var> be the first number in <var title="">coords</var>, <var title="">y</var> be the second
+ number, and <var title="">r</var> be the third number.</p>
+ <p>The shape is a circle whose center is <var title="">x</var>
+ CSS pixels from the left edge of the image and <var title="">y</var> CSS pixels from the top edge of the image, and
+ whose radius is <var title="">r</var> pixels.</p>
+ </dd>
+
+ <dt><a href=#attr-area-shape-default title=attr-area-shape-default>Default state</a></dt>
+ <dd>
+ <p>The shape is a rectangle that exactly covers the entire
+ image.</p>
+ </dd>
+
+ <dt><a href=#attr-area-shape-poly title=attr-area-shape-poly>Polygon state</a></dt>
+ <dd>
+
+ <p>Let <var title="">x<sub title=""><var title="">i</var></sub></var> be the <span title="">(2<var title="">i</var>)</span>th entry in <var title="">coords</var>,
+ and <var title="">y<sub title=""><var title="">i</var></sub></var> be the <span title="">(2<var title="">i</var>+1)</span>th entry in <var title="">coords</var>
+ (the first entry in <var title="">coords</var> being the one
+ with index 0).</p>
+
+ <p>Let <var title="">the coordinates</var> be (<var title="">x<sub title=""><var title="">i</var></sub></var>, <var title="">y<sub title=""><var title="">i</var></sub></var>),
+ interpreted in CSS pixels measured from the top left of the
+ image, for all integer values of <var title="">i</var> from 0 to
+ <span title="">(<var title="">N</var>/2)-1</span>, where <var title="">N</var> is the number of items in <var title="">coords</var>.</p>
+
+ <p>The shape is a polygon whose vertices are given by <var title="">the coordinates</var>, and whose interior is
+ established using the even-odd rule. <a href=#refsGRAPHICS>[GRAPHICS]</a></p>
+
+ <!--
+ browsers implement the even-odd rule / even winding rule:
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0A%3Cimg%20usemap%3D%22%23x%22%20src%3D%22/resources/images/sample%22%3E%0A%3Cmap%20name%3D%22x%22%3E%0A%20%20%3Carea%20shape%3Dpolygon%20coords%3D%220%2C0%200%2C100%20100%2C100%20100%2C2%201%2C2%202%2C1%202%2C99%2099%2C99%2099%2C0%22%20href%3Da%3E%0A%3C/map%3E%0A
+ -->
+
+ </dd>
+
+ <dt><a href=#attr-area-shape-rect title=attr-area-shape-rect>Rectangle state</a></dt>
+
+ <dd>
+
+ <p>Let <var title="">x<sub title="">1</sub></var> be the first
+ number in <var title="">coords</var>, <var title="">y<sub title="">1</sub></var> be the second number, <var title="">x<sub title="">2</sub></var> be the third number, and <var title="">y<sub title="">2</sub></var> be the fourth number.</p>
+
+ <p>The shape is a rectangle whose top-left corner is given by
+ the coordinate (<var title="">x<sub title="">1</sub></var>, <var title="">y<sub title="">1</sub></var>) and whose bottom right
+ corner is given by the coordinate (<var title="">x<sub title="">2</sub></var>, <var title="">y<sub title="">2</sub></var>), those coordinates being interpreted as
+ CSS pixels from the top left corner of the image.</p>
+
+ </dd>
+
+ </dl><p>For historical reasons, the coordinates must be interpreted
+ relative to the <em>displayed</em> image after any stretching
+ caused by the CSS 'width' and 'height' properties (or, for non-CSS
+ browsers, the image element's <code title="">width</code> and
+ <code title="">height</code> attributes &mdash; CSS browsers map
+ those attributes to the aforementioned CSS properties).</p>
+
+ <p class=note>Browser zoom features and transforms applied using
+ CSS or SVG do not affect the coordinates.</p>
+
+ </li>
+
+ </ol><p>Pointing device interaction with an image associated with a set
+ of layered shapes per the above algorithm must result in the
+ relevant user interaction events being first fired to the top-most
+ shape covering the point that the pointing device indicated (if
+ any), and then fired again (with a new <code><a href=#event>Event</a></code> object) to
+ the image element itself. User agents may also allow individual
+ <code><a href=#the-area-element>area</a></code> elements representing <a href=#hyperlink title=hyperlink>hyperlinks</a> to be selected and activated
+ (e.g. using a keyboard); events from this are not also propagated to
+ the image.</p>
+
+ <p class=note>Because a <code><a href=#the-map-element>map</a></code> element (and its
+ <code><a href=#the-area-element>area</a></code> elements) can be associated with multiple
+ <code><a href=#the-img-element>img</a></code> and <code><a href=#the-object-element>object</a></code> elements, it is possible
+ for an <code><a href=#the-area-element>area</a></code> element to correspond to multiple focusable
+ areas of the document.</p>
+
+ <p>Image maps are <a href=#live>live</a>; if the DOM is mutated, then the
+ user agent must act as if it had rerun the algorithms for image
+ maps.</p>
+
+ </div>
+
+
+
+ <h4 id=mathml><span class=secno>4.8.15 </span>MathML</h4>
+
+ <p>The <dfn id=math><code>math</code></dfn> element from the <a href=#mathml-namespace>MathML
+ namespace</a> falls into the <a href=#embedded-content>embedded content</a>,
+ <a href=#phrasing-content>phrasing content</a>, and <a href=#flow-content>flow content</a>
+ categories for the purposes of the content models in this
+ specification.</p>
+
+ <div class=impl>
+
+ <!-- apparently we get to define error handling, so: -->
+
+ <p>User agents must handle text other than <a href=#inter-element-whitespace>inter-element
+ whitespace</a> found in MathML elements whose content models do
+ not allow straight text by pretending for the purposes of MathML
+ content models, layout, and rendering that that text is actually
+ wrapped in an <code title="">mtext</code> element in the
+ <a href=#mathml-namespace>MathML namespace</a>. (Such text is not, however,
+ conforming.)</p>
+
+ <p>User agents must act as if any MathML element whose contents does
+ not match the element's content model was replaced, for the purposes
+ of MathML layout and rendering, by an <code title="">merror</code>
+ element in the <a href=#mathml-namespace>MathML namespace</a> containing some
+ appropriate error message.</p>
+
+ <p>To enable authors to use MathML tools that only accept MathML in
+ its XML form, interactive HTML user agents are encouraged to provide
+ a way to export any MathML fragment as an XML namespace-well-formed
+ XML fragment.</p>
+
+ </div>
+
+ <p>The semantics of MathML elements are defined by the MathML
+ specification and <a href=#other-applicable-specifications>other applicable specifications</a>. <a href=#refsMATHML>[MATHML]</a></p>
+
+ <div class=example>
+
+ <p>Here is an example of the use of MathML in an HTML document:</p>
+
+ <pre>&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;The quadratic formula&lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;h1&gt;The quadratic formula&lt;/h1&gt;
+ &lt;p&gt;
+ &lt;math&gt;
+ &lt;mi&gt;x&lt;/mi&gt;
+ &lt;mo&gt;=&lt;/mo&gt;
+ &lt;mfrac&gt;
+ &lt;mrow&gt;
+ &lt;mo form="prefix"&gt;&minus;&lt;/mo&gt; &lt;mi&gt;b&lt;/mi&gt;
+ &lt;mo&gt;&plusmn;&lt;/mo&gt;
+ &lt;msqrt&gt;
+ &lt;msup&gt; &lt;mi&gt;b&lt;/mi&gt; &lt;mn&gt;2&lt;/mn&gt; &lt;/msup&gt;
+ &lt;mo&gt;&minus;&lt;/mo&gt;
+ &lt;mn&gt;4&lt;/mn&gt; &lt;mo&gt;&#8290;&lt;/mo&gt; &lt;mi&gt;a&lt;/mi&gt; &lt;mo&gt;&#8290;&lt;/mo&gt; &lt;mi&gt;c&lt;/mi&gt;
+ &lt;/msqrt&gt;
+ &lt;/mrow&gt;
+ &lt;mrow&gt;
+ &lt;mn&gt;2&lt;/mn&gt; &lt;mo&gt;&#8290;&lt;/mo&gt; &lt;mi&gt;a&lt;/mi&gt;
+ &lt;/mrow&gt;
+ &lt;/mfrac&gt;
+ &lt;/math&gt;
+ &lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=svg-0><span class=secno>4.8.16 </span>SVG</h4>
+
+ <p>The <dfn id=svg><code>svg</code></dfn> element from the <a href=#svg-namespace>SVG
+ namespace</a> falls into the <a href=#embedded-content>embedded content</a>,
+ <a href=#phrasing-content>phrasing content</a>, and <a href=#flow-content>flow content</a>
+ categories for the purposes of the content models in this
+ specification.</p>
+
+ <div class=impl>
+
+ <p>To enable authors to use SVG tools that only accept SVG in its
+ XML form, interactive HTML user agents are encouraged to provide a
+ way to export any SVG fragment as an XML namespace-well-formed XML
+ fragment.</p>
+
+ </div>
+
+ <p>When the SVG <code title="">foreignObject</code> element contains
+ elements from the <a href=#html-namespace-0>HTML namespace</a>, such elements must
+ all be <a href=#flow-content>flow content</a>. <a href=#refsSVG>[SVG]</a></p>
+
+ <p>The content model for <code title="">title</code> elements in the
+ <a href=#svg-namespace>SVG namespace</a> inside <a href=#html-documents>HTML documents</a> is
+ <a href=#phrasing-content>phrasing content</a>. (This further constrains the
+ requirements given in the SVG specification.)</p>
+
+ <p>The semantics of SVG elements are defined by the SVG
+ specification and <a href=#other-applicable-specifications>other applicable specifications</a>. <a href=#refsSVG>[SVG]</a></p>
+
+ <!-- The following paragraph is for bug 7510 -->
+ <p>The SVG specification includes requirements regarding the
+ handling of elements in the DOM that are not in the SVG namespace,
+ that are in SVG fragments, and that are not included in a
+ <code title="">foreignObject</code> element. <em>This</em>
+ specification does not define any processing for elements in SVG
+ fragments that are not in the HTML namespace; they are considered
+ neither conforming nor non-conforming from the perspective of this
+ specification.</p>
+
+
+
+ <h4 id=dimension-attributes><span class=secno>4.8.17 </span><dfn>Dimension attributes</dfn></h4>
+
+ <p><span class=impl><strong>Author requirements</strong>:</span>
+ The <dfn id=attr-dim-width title=attr-dim-width><code>width</code></dfn> and <dfn id=attr-dim-height title=attr-dim-height><code>height</code></dfn> attributes on
+ <code><a href=#the-img-element>img</a></code>, <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-embed-element>embed</a></code>,
+ <code><a href=#the-object-element>object</a></code>, <code><a href=#the-video-element>video</a></code>, and, when their <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state,
+ <code><a href=#the-input-element>input</a></code> elements may be specified to give the dimensions
+ of the visual content of the element (the width and height
+ respectively, relative to the nominal direction of the output
+ medium), in CSS pixels. The attributes, if specified, must have
+ values that are <a href=#valid-non-negative-integer title="valid non-negative integer">valid
+ non-negative integers</a>.</p>
+
+ <p>The specified dimensions given may differ from the dimensions
+ specified in the resource itself, since the resource may have a
+ resolution that differs from the CSS pixel resolution. (On screens,
+ CSS pixels have a resolution of 96ppi, but in general the CSS pixel
+ resolution depends on the reading distance.) If both attributes are
+ specified, then one of the following statements must be true:</p>
+
+ <ul><li><span title=""><var title="">specified width</var> - 0.5 &le;
+ <var title="">specified height</var> * <var title="">target ratio</var> &le;
+ <var title="">specified width</var> + 0.5</span></li>
+
+ <li><span title=""><var title="">specified height</var> - 0.5 &le;
+ <var title="">specified width</var> / <var title="">target ratio</var> &le;
+ <var title="">specified height</var> + 0.5</span></li>
+
+ <li><span title=""><var title="">specified height</var> = <var title="">specified width</var> = 0</span></li>
+
+ </ul><p>The <var title="">target ratio</var> is the ratio of the
+ intrinsic width to the intrinsic height in the resource. The <var title="">specified width</var> and <var title="">specified
+ height</var> are the values of the <code title=attr-dim-width><a href=#attr-dim-width>width</a></code> and <code title=attr-dim-height><a href=#attr-dim-height>height</a></code> attributes respectively.</p>
+
+ <p>The two attributes must be omitted if the resource in question
+ does not have both an intrinsic width and an intrinsic height.</p>
+
+ <p>If the two attributes are both zero, it indicates that the
+ element is not intended for the user (e.g. it might be a part of a
+ service to count page views).</p>
+
+ <p class=note>The dimension attributes are not intended to be used
+ to stretch the image.</p>
+
+ <div class=impl>
+
+ <p><strong>User agent requirements</strong>: User agents are
+ expected to use these attributes <a href=#dimRendering>as hints
+ for the rendering</a>.</p>
+
+ <p>The <dfn id=dom-dim-width title=dom-dim-width><code>width</code></dfn> and <dfn id=dom-dim-height title=dom-dim-height><code>height</code></dfn> IDL attributes on
+ the <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-embed-element>embed</a></code>, <code><a href=#the-object-element>object</a></code>,
+ and <code><a href=#the-video-element>video</a></code> elements must <a href=#reflect>reflect</a> the
+ respective content attributes of the same name.</p>
+
+ <p class=note>For <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-embed-element>embed</a></code>, and
+ <code><a href=#the-object-element>object</a></code> the IDL attributes are <code>DOMString</code>;
+ for <code><a href=#the-video-element>video</a></code> the IDL attributes are <code>unsigned
+ long</code>.</p>
+
+ </div>
+
+
+
+ <h3 id=tabular-data><span class=secno>4.9 </span>Tabular data</h3>
+
+
+ <h4 id=the-table-element><span class=secno>4.9.1 </span>The <dfn><code>table</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>In this order: optionally a <code><a href=#the-caption-element>caption</a></code> element,
+ followed by zero or more <code><a href=#the-colgroup-element>colgroup</a></code> elements, followed
+ optionally by a <code><a href=#the-thead-element>thead</a></code> element, followed optionally by
+ a <code><a href=#the-tfoot-element>tfoot</a></code> element, followed by either zero or more
+ <code><a href=#the-tbody-element>tbody</a></code> elements or one or more <code><a href=#the-tr-element>tr</a></code>
+ elements, followed optionally by a <code><a href=#the-tfoot-element>tfoot</a></code> element (but
+ there can only be one <code><a href=#the-tfoot-element>tfoot</a></code> element child in
+ total).</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-table-border><a href=#attr-table-border>border</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmltableelement>HTMLTableElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute <a href=#htmltablecaptionelement>HTMLTableCaptionElement</a>? <a href=#dom-table-caption title=dom-table-caption>caption</a>;
+ <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createcaption title=dom-table-createCaption>createCaption</a>();
+ void <a href=#dom-table-deletecaption title=dom-table-deleteCaption>deleteCaption</a>();
+ attribute <a href=#htmltablesectionelement>HTMLTableSectionElement</a>? <a href=#dom-table-thead title=dom-table-tHead>tHead</a>;
+ <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createthead title=dom-table-createTHead>createTHead</a>();
+ void <a href=#dom-table-deletethead title=dom-table-deleteTHead>deleteTHead</a>();
+ attribute <a href=#htmltablesectionelement>HTMLTableSectionElement</a>? <a href=#dom-table-tfoot title=dom-table-tFoot>tFoot</a>;
+ <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createtfoot title=dom-table-createTFoot>createTFoot</a>();
+ void <a href=#dom-table-deletetfoot title=dom-table-deleteTFoot>deleteTFoot</a>();
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-table-tbodies title=dom-table-tBodies>tBodies</a>;
+ <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-createtbody title=dom-table-createTBody>createTBody</a>();
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-table-rows title=dom-table-rows>rows</a>;
+ <a href=#htmlelement>HTMLElement</a> <a href=#dom-table-insertrow title=dom-table-insertRow>insertRow</a>(optional long index);
+ void <a href=#dom-table-deleterow title=dom-table-deleteRow>deleteRow</a>(long index);
+ attribute DOMString <a href=#dom-table-border title=dom-table-border>border</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-table-element>table</a></code> element <a href=#represents>represents</a> data with
+ more than one dimension, in the form of a <a href=#concept-table title=concept-table>table</a>.</p>
+
+ <p><span class=impl>The <code><a href=#the-table-element>table</a></code> element takes part in
+ the <a href=#table-model>table model</a>.</span> Tables have rows, columns, and
+ cells given by their descendants. The rows and columns form a grid;
+ a table's cells must completely cover that grid without overlap.</p>
+
+ <div class=impl>
+ <p class=note>Precise rules for determining whether this
+ conformance requirement is met are described in the description of
+ the <a href=#table-model>table model</a>.</p>
+ </div>
+
+ <p>Authors are encouraged to provide information describing how to
+ interpret complex tables. Guidance on how <a href=#table-descriptions-techniques>provide such information</a>
+ is given below.</p>
+
+ <div class=impl>
+ <p>If a <code><a href=#the-table-element>table</a></code> element has a (non-conforming) <code title=attr-table-summary><a href=#attr-table-summary>summary</a></code> attribute, and the user
+ agent has not classified the table as a layout table, the user agent
+ may report the contents of that attribute to the user.</p>
+ </div>
+
+<!--FORK-->
+
+ <p>Tables must not be used as layout aids.
+
+ Historically, some Web authors have misused tables in HTML as a way
+ to control their page layout. This usage is non-conforming, because
+ tools attempting to extract tabular data from such documents would
+ obtain very confusing results.
+
+ In particular, users of accessibility tools like screen readers are
+ likely to find it very difficult to navigate pages with tables used
+ for layout.</p>
+
+ <!-- The paragraph below replaces the above one in the W3C copy due
+ to a WG decision. It is not used in the WHATWG copy for the
+ following reasons:
+
+ * "should not" implies that there may be valid reasons to use
+ tables for layout, which there are not.
+
+ * The second sentence appears to be grammatically incorrect, and
+ more importantly, does not clearly state that use of tables for
+ layout has always been a misuse. This implies it may have once
+ been correct (even though that is not the case), and that further
+ may reduce the effectiveness of advocacy on this topic.
+
+ * The third sentence (in the paragraph below) is identical to the
+ fourth one in the paragraph above except for comma usage which
+ seems incorrect (it implies that the users are the screen
+ readers, as opposed to the tools, if I'm reading it right).
+
+ * The final sentence below flat out legitimizes layout tables.
+
+ * The paragraph below seems to assume that only ARIA-enabled ATs
+ are a concern, when in fact there are numerous UAs other than
+ ARIA-enabled ATs that are harmed by this use of layout tables.
+
+ * The paragraph below fails to suggest that UAs will need
+ heuristics to deal with the existing content.
+
+ * The text below actually contradicts other requirements in this
+ specification (<table>s represent tables, and elements must be
+ used per their semantics, so the requirement that tables not be
+ used for layout is in fact technically redundant, and the
+ paragraph below doesn't change that).
+
+ * There really is no good reason to use tables for layout anymore,
+ and conformance criteria should support best practices, not
+ obsolete authoring practices.
+
+ -->
+
+
+ <p class=note>There are a variety of alternatives to using HTML
+ tables for layout, primarily using CSS positioning and the CSS table
+ model.</p>
+
+ <p>The <dfn id=attr-table-border title=attr-table-border><code>border</code></dfn>
+ attribute may be specified on a <code><a href=#the-table-element>table</a></code> element to
+ explicitly indicate that the <code><a href=#the-table-element>table</a></code> element is not being
+ used for layout purposes. If specified, the attribute's value must
+ either be the empty string or the value "<code title="">1</code>".
+ The attribute is used by certain user agents as an indication that
+ borders should be drawn around cells of the table.</p>
+ <!--!--> <!-- http://lists.w3.org/Archives/Public/public-html/2011Apr/0419.html -->
+
+
+ <div class=impl>
+ <hr><p>Tables can be complicated to understand and navigate. To help
+ users with this, user agents should clearly delineate cells in a
+ table from each other, unless the user agent has classified the
+ table as a
+<!--FORK-->
+ (non-conforming)
+<!--FORK-->
+ layout table.</p>
+ </div>
+
+ <p class=note>Authors <span class=impl>and implementors</span>
+ are encouraged to consider using some of the <a href=#table-layout-techniques>table layout techniques</a>
+ described below to make tables easier to navigate for users.</p>
+
+ <div class=impl>
+
+ <p>User agents, especially those that do table analysis on arbitrary
+ content, are encouraged to find heuristics to determine which tables
+ actually contain data and which are merely being used for layout.
+ This specification does not define a precise heuristic, but the
+ following are suggested as possible indicators:</p>
+
+ <table><thead><tr><th>Feature
+ <th>Indication
+ <tbody><tr><td>The use of the <code title=attr-aria-role>role</code> attribute with the value <code title=attr-aria-role-presentation>presentation</code>
+ <td>Probably a layout table
+ <tr><td>The use of the <code title=attr-table-border><a href=#attr-table-border>border</a></code> attribute with the non-conforming value 0
+ <td>Probably a layout table
+ <tr><td>The use of the non-conforming <code title=attr-table-cellspacing><a href=#attr-table-cellspacing>cellspacing</a></code> and <code title=attr-table-cellpadding><a href=#attr-table-cellpadding>cellpadding</a></code> attributes with the value 0
+ <td>Probably a layout table
+ <tbody><tr><td>The use of <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-thead-element>thead</a></code>, or <code><a href=#the-th-element>th</a></code> elements
+ <td>Probably a non-layout table
+ <tr><td>The use of the <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> and <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attributes
+ <td>Probably a non-layout table
+ <tr><td>The use of the <code title=attr-table-border><a href=#attr-table-border>border</a></code> attribute with a value other than 0
+ <td>Probably a non-layout table
+ <tr><td>Explicit visible borders set using CSS
+ <td>Probably a non-layout table
+ <tbody><tr><td>The use of the <code title=attr-table-summary><a href=#attr-table-summary>summary</a></code> attribute
+ <td>Not a good indicator (both layout and non-layout tables have historically been given this attribute)
+ </table><p class=note>It is quite possible that the above suggestions are
+ wrong. Implementors are urged to provide feedback elaborating on
+ their experiences with trying to create a layout table detection
+ heuristic.</p>
+
+ </div>
+
+ <hr><dl class=domintro><dt><var title="">table</var> . <code title=dom-table-caption><a href=#dom-table-caption>caption</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the table's <code><a href=#the-caption-element>caption</a></code> element.</p>
+ <p>Can be set, to replace the <code><a href=#the-caption-element>caption</a></code> element. If the
+ new value is not a <code><a href=#the-caption-element>caption</a></code> element, throws a
+ <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code> exception.</p>
+ </dd>
+
+ <dt><var title="">caption</var> = <var title="">table</var> . <code title=dom-table-createCaption><a href=#dom-table-createcaption>createCaption</a></code>()</dt>
+ <dd>
+ <p>Ensures the table has a <code><a href=#the-caption-element>caption</a></code> element, and returns it.</p>
+ </dd>
+
+ <dt><var title="">table</var> . <code title=dom-table-deleteCaption><a href=#dom-table-deletecaption>deleteCaption</a></code>()</dt>
+ <dd>
+ <p>Ensures the table does not have a <code><a href=#the-caption-element>caption</a></code> element.</p>
+ </dd>
+
+ <dt><var title="">table</var> . <code title=dom-table-tHead><a href=#dom-table-thead>tHead</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the table's <code><a href=#the-thead-element>thead</a></code> element.</p>
+ <p>Can be set, to replace the <code><a href=#the-thead-element>thead</a></code> element. If the
+ new value is not a <code><a href=#the-thead-element>thead</a></code> element, throws a
+ <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code> exception.</p>
+ </dd>
+
+ <dt><var title="">thead</var> = <var title="">table</var> . <code title=dom-table-createTHead><a href=#dom-table-createthead>createTHead</a></code>()</dt>
+ <dd>
+ <p>Ensures the table has a <code><a href=#the-thead-element>thead</a></code> element, and returns it.</p>
+ </dd>
+
+ <dt><var title="">table</var> . <code title=dom-table-deleteTHead><a href=#dom-table-deletethead>deleteTHead</a></code>()</dt>
+ <dd>
+ <p>Ensures the table does not have a <code><a href=#the-thead-element>thead</a></code> element.</p>
+ </dd>
+
+ <dt><var title="">table</var> . <code title=dom-table-tFoot><a href=#dom-table-tfoot>tFoot</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the table's <code><a href=#the-tfoot-element>tfoot</a></code> element.</p>
+ <p>Can be set, to replace the <code><a href=#the-tfoot-element>tfoot</a></code> element. If the
+ new value is not a <code><a href=#the-tfoot-element>tfoot</a></code> element, throws a
+ <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code> exception.</p>
+ </dd>
+
+ <dt><var title="">tfoot</var> = <var title="">table</var> . <code title=dom-table-createTFoot><a href=#dom-table-createtfoot>createTFoot</a></code>()</dt>
+ <dd>
+ <p>Ensures the table has a <code><a href=#the-tfoot-element>tfoot</a></code> element, and returns it.</p>
+ </dd>
+
+ <dt><var title="">table</var> . <code title=dom-table-deleteTFoot><a href=#dom-table-deletetfoot>deleteTFoot</a></code>()</dt>
+ <dd>
+ <p>Ensures the table does not have a <code><a href=#the-tfoot-element>tfoot</a></code> element.</p>
+ </dd>
+
+ <dt><var title="">table</var> . <code title=dom-table-tBodies><a href=#dom-table-tbodies>tBodies</a></code></dt>
+ <dd>
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-tbody-element>tbody</a></code> elements of the table.</p>
+ </dd>
+
+ <dt><var title="">tbody</var> = <var title="">table</var> . <code title=dom-table-createTBody><a href=#dom-table-createtbody>createTBody</a></code>()</dt>
+ <dd>
+ <p>Creates a <code><a href=#the-tbody-element>tbody</a></code> element, inserts it into the table, and returns it.</p>
+ </dd>
+
+ <dt><var title="">table</var> . <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code></dt>
+ <dd>
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-tr-element>tr</a></code> elements of the table.</p>
+ </dd>
+
+ <dt><var title="">tr</var> = <var title="">table</var> . <code title=dom-table-insertRow><a href=#dom-table-insertrow>insertRow</a></code>(<var title="">index</var>)</dt>
+ <dd>
+ <p>Creates a <code><a href=#the-tr-element>tr</a></code> element, along with a <code><a href=#the-tbody-element>tbody</a></code> if required, inserts them into the table at the position given by the argument, and returns the <code><a href=#the-tr-element>tr</a></code>.</p>
+ <p>The position is relative to the rows in the table. The index &minus;1 is equivalent to inserting at the end of the table.</p>
+ <p>If the given position is less than &minus;1 or greater than the number of rows, throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception.</p>
+ </dd>
+
+ <dt><var title="">table</var> . <code title=dom-table-deleteRow><a href=#dom-table-deleterow>deleteRow</a></code>(<var title="">index</var>)</dt>
+ <dd>
+ <p>Removes the <code><a href=#the-tr-element>tr</a></code> element with the given position in the table.</p>
+ <p>The position is relative to the rows in the table. The index &minus;1 is equivalent to deleting the last row of the table.</p>
+ <p>If the given position is less than &minus;1 or greater than the index of the last row, or if there are no rows, throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-table-caption title=dom-table-caption><code>caption</code></dfn> IDL
+ attribute must return, on getting, the first <code><a href=#the-caption-element>caption</a></code>
+ element child of the <code><a href=#the-table-element>table</a></code> element, if any, or null
+ otherwise. On setting, if the new value is a <code><a href=#the-caption-element>caption</a></code>
+ element, the first <code><a href=#the-caption-element>caption</a></code> element child of the
+ <code><a href=#the-table-element>table</a></code> element, if any, must be removed, and the new
+ value must be inserted as the first node of the <code><a href=#the-table-element>table</a></code>
+ element. If the new value is not a <code><a href=#the-caption-element>caption</a></code> element,
+ then a <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code> DOM exception must be
+ raised instead.</p>
+
+ <p>The <dfn id=dom-table-createcaption title=dom-table-createCaption><code>createCaption()</code></dfn>
+ method must return the first <code><a href=#the-caption-element>caption</a></code> element child of
+ the <code><a href=#the-table-element>table</a></code> element, if any; otherwise a new
+ <code><a href=#the-caption-element>caption</a></code> element must be created, inserted as the first
+ node of the <code><a href=#the-table-element>table</a></code> element, and then returned.</p>
+
+ <p>The <dfn id=dom-table-deletecaption title=dom-table-deleteCaption><code>deleteCaption()</code></dfn>
+ method must remove the first <code><a href=#the-caption-element>caption</a></code> element child of
+ the <code><a href=#the-table-element>table</a></code> element, if any.</p>
+
+ <p>The <dfn id=dom-table-thead title=dom-table-tHead><code>tHead</code></dfn> IDL
+ attribute must return, on getting, the first <code><a href=#the-thead-element>thead</a></code>
+ element child of the <code><a href=#the-table-element>table</a></code> element, if any, or null
+ otherwise. On setting, if the new value is a <code><a href=#the-thead-element>thead</a></code>
+ element, the first <code><a href=#the-thead-element>thead</a></code> element child of the
+ <code><a href=#the-table-element>table</a></code> element, if any, must be removed, and the new
+ value must be inserted immediately before the first element in the
+ <code><a href=#the-table-element>table</a></code> element that is neither a <code><a href=#the-caption-element>caption</a></code>
+ element nor a <code><a href=#the-colgroup-element>colgroup</a></code> element, if any, or at the end
+ of the table if there are no such elements. If the new value is not
+ a <code><a href=#the-thead-element>thead</a></code> element, then a
+ <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code> DOM exception must be raised
+ instead.</p>
+
+ <p>The <dfn id=dom-table-createthead title=dom-table-createTHead><code>createTHead()</code></dfn>
+ method must return the first <code><a href=#the-thead-element>thead</a></code> element child of the
+ <code><a href=#the-table-element>table</a></code> element, if any; otherwise a new
+ <code><a href=#the-thead-element>thead</a></code> element must be created and inserted immediately
+ before the first element in the <code><a href=#the-table-element>table</a></code> element that is
+ neither a <code><a href=#the-caption-element>caption</a></code> element nor a <code><a href=#the-colgroup-element>colgroup</a></code>
+ element, if any, or at the end of the table if there are no such
+ elements, and then that new element must be returned.</p>
+
+ <p>The <dfn id=dom-table-deletethead title=dom-table-deleteTHead><code>deleteTHead()</code></dfn>
+ method must remove the first <code><a href=#the-thead-element>thead</a></code> element child of the
+ <code><a href=#the-table-element>table</a></code> element, if any.</p>
+
+ <p>The <dfn id=dom-table-tfoot title=dom-table-tFoot><code>tFoot</code></dfn> IDL
+ attribute must return, on getting, the first <code><a href=#the-tfoot-element>tfoot</a></code>
+ element child of the <code><a href=#the-table-element>table</a></code> element, if any, or null
+ otherwise. On setting, if the new value is a <code><a href=#the-tfoot-element>tfoot</a></code>
+ element, the first <code><a href=#the-tfoot-element>tfoot</a></code> element child of the
+ <code><a href=#the-table-element>table</a></code> element, if any, must be removed, and the new
+ value must be inserted immediately before the first element in the
+ <code><a href=#the-table-element>table</a></code> element that is neither a <code><a href=#the-caption-element>caption</a></code>
+ element, a <code><a href=#the-colgroup-element>colgroup</a></code> element, nor a <code><a href=#the-thead-element>thead</a></code>
+ element, if any, or at the end of the table if there are no such
+ elements. If the new value is not a <code><a href=#the-tfoot-element>tfoot</a></code> element, then
+ a <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code> DOM exception must be raised
+ instead.</p>
+
+ <p>The <dfn id=dom-table-createtfoot title=dom-table-createTFoot><code>createTFoot()</code></dfn>
+ method must return the first <code><a href=#the-tfoot-element>tfoot</a></code> element child of the
+ <code><a href=#the-table-element>table</a></code> element, if any; otherwise a new
+ <code><a href=#the-tfoot-element>tfoot</a></code> element must be created and inserted immediately
+ before the first element in the <code><a href=#the-table-element>table</a></code> element that is
+ neither a <code><a href=#the-caption-element>caption</a></code> element, a <code><a href=#the-colgroup-element>colgroup</a></code>
+ element, nor a <code><a href=#the-thead-element>thead</a></code> element, if any, or at the end of
+ the table if there are no such elements, and then that new element
+ must be returned.</p>
+
+ <p>The <dfn id=dom-table-deletetfoot title=dom-table-deleteTFoot><code>deleteTFoot()</code></dfn>
+ method must remove the first <code><a href=#the-tfoot-element>tfoot</a></code> element child of the
+ <code><a href=#the-table-element>table</a></code> element, if any.</p>
+
+ <p>The <dfn id=dom-table-tbodies title=dom-table-tBodies><code>tBodies</code></dfn>
+ attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#the-table-element>table</a></code> node, whose filter matches only
+ <code><a href=#the-tbody-element>tbody</a></code> elements that are children of the
+ <code><a href=#the-table-element>table</a></code> element.</p>
+
+ <p>The <dfn id=dom-table-createtbody title=dom-table-createTBody><code>createTBody()</code></dfn>
+ method must create a new <code><a href=#the-tbody-element>tbody</a></code> element, insert it
+ immediately after the last <code><a href=#the-tbody-element>tbody</a></code> element in the
+ <code><a href=#the-table-element>table</a></code> element, if any, or at the end of the
+ <code><a href=#the-table-element>table</a></code> element if the <code><a href=#the-table-element>table</a></code> element has no
+ <code><a href=#the-tbody-element>tbody</a></code> element children, and then must return the new
+ <code><a href=#the-tbody-element>tbody</a></code> element.</p>
+
+ <p>The <dfn id=dom-table-rows title=dom-table-rows><code>rows</code></dfn> attribute
+ must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#the-table-element>table</a></code> node, whose filter matches only <code><a href=#the-tr-element>tr</a></code>
+ elements that are either children of the <code><a href=#the-table-element>table</a></code> element,
+ or children of <code><a href=#the-thead-element>thead</a></code>, <code><a href=#the-tbody-element>tbody</a></code>, or
+ <code><a href=#the-tfoot-element>tfoot</a></code> elements that are themselves children of the
+ <code><a href=#the-table-element>table</a></code> element. The elements in the collection must be
+ ordered such that those elements whose parent is a
+ <code><a href=#the-thead-element>thead</a></code> are included first, in tree order, followed by
+ those elements whose parent is either a <code><a href=#the-table-element>table</a></code> or
+ <code><a href=#the-tbody-element>tbody</a></code> element, again in tree order, followed finally by
+ those elements whose parent is a <code><a href=#the-tfoot-element>tfoot</a></code> element, still
+ in tree order.</p>
+
+ <p>The behavior of the <dfn id=dom-table-insertrow title=dom-table-insertRow><code>insertRow(<var title="">index</var>)</code></dfn> method depends on the state of
+ the table. When it is called, the method must act as required by the
+ first item in the following list of conditions that describes the
+ state of the table and the <var title="">index</var> argument:</p>
+
+ <dl class=switch><dt>If <var title="">index</var> is less than &minus;1 or greater than
+ the number of elements in <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code>
+ collection:</dt>
+
+ <dd>The method must throw an <code><a href=#indexsizeerror>IndexSizeError</a></code>
+ exception.</dd>
+
+ <dt>If the <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code> collection has
+ zero elements in it, and the <code><a href=#the-table-element>table</a></code> has no
+ <code><a href=#the-tbody-element>tbody</a></code> elements in it:</dt>
+
+ <dd>The method must create a <code><a href=#the-tbody-element>tbody</a></code> element, then
+ create a <code><a href=#the-tr-element>tr</a></code> element, then append the <code><a href=#the-tr-element>tr</a></code>
+ element to the <code><a href=#the-tbody-element>tbody</a></code> element, then append the
+ <code><a href=#the-tbody-element>tbody</a></code> element to the <code><a href=#the-table-element>table</a></code> element, and
+ finally return the <code><a href=#the-tr-element>tr</a></code> element.</dd>
+
+ <dt>If the <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code> collection has
+ zero elements in it:</dt>
+
+ <dd>The method must create a <code><a href=#the-tr-element>tr</a></code> element, append it to
+ the last <code><a href=#the-tbody-element>tbody</a></code> element in the table, and return the
+ <code><a href=#the-tr-element>tr</a></code> element.</dd>
+
+ <dt>If <var title="">index</var> is missing, equal to &minus;1, or
+ equal to the number of items in <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code> collection:</dt>
+
+ <dd>The method must create a <code><a href=#the-tr-element>tr</a></code> element, and append it
+ to the parent of the last <code><a href=#the-tr-element>tr</a></code> element in the <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code> collection. Then, the newly
+ created <code><a href=#the-tr-element>tr</a></code> element must be returned.</dd>
+
+ <dt>Otherwise:</dt>
+
+ <dd>The method must create a <code><a href=#the-tr-element>tr</a></code> element, insert it
+ immediately before the <var title="">index</var>th <code><a href=#the-tr-element>tr</a></code>
+ element in the <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code> collection,
+ in the same parent, and finally must return the newly created
+ <code><a href=#the-tr-element>tr</a></code> element.</dd>
+
+ </dl><p>When the <dfn id=dom-table-deleterow title=dom-table-deleteRow><code>deleteRow(<var title="">index</var>)</code></dfn> method is called, the user agent
+ must run the following steps:</p>
+
+ <ol><li><p>If <var title="">index</var> is equal to &minus;1, then
+ <var title="">index</var> must be set to the number if items in the
+ <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code> collection, minus
+ one.</li>
+
+ <li><p>Now, if <var title="">index</var> is less than zero, or
+ greater than or equal to the number of elements in the <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code> collection, the method must
+ instead throw an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception, and these
+ steps must be aborted.</li>
+
+ <li><p>Otherwise, the method must remove the <var title="">index</var>th element in the <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code> collection from its parent.</p>
+
+ </ol><p>The <dfn id=dom-table-border title=dom-table-border><code>border</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here is an example of a table being used to mark up a Sudoku
+ puzzle. Observe the lack of headers, which are not necessary in
+ such a table.</p>
+
+ <pre>&lt;section&gt;
+ &lt;style scoped&gt;
+ table { border-collapse: collapse; border: solid thick; }
+ colgroup, tbody { border: solid medium; }
+ td { border: solid thin; height: 1.4em; width: 1.4em; text-align: center; padding: 0; }
+ &lt;/style&gt;
+ &lt;h1&gt;Today's Sudoku&lt;/h1&gt;
+ &lt;table&gt;
+ &lt;colgroup&gt;&lt;col&gt;&lt;col&gt;&lt;col&gt;
+ &lt;colgroup&gt;&lt;col&gt;&lt;col&gt;&lt;col&gt;
+ &lt;colgroup&gt;&lt;col&gt;&lt;col&gt;&lt;col&gt;
+ &lt;tbody&gt;
+ &lt;tr&gt; &lt;td&gt; 1 &lt;td&gt; &lt;td&gt; 3 &lt;td&gt; 6 &lt;td&gt; &lt;td&gt; 4 &lt;td&gt; 7 &lt;td&gt; &lt;td&gt; 9
+ &lt;tr&gt; &lt;td&gt; &lt;td&gt; 2 &lt;td&gt; &lt;td&gt; &lt;td&gt; 9 &lt;td&gt; &lt;td&gt; &lt;td&gt; 1 &lt;td&gt;
+ &lt;tr&gt; &lt;td&gt; 7 &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; 6
+ &lt;tbody&gt;
+ &lt;tr&gt; &lt;td&gt; 2 &lt;td&gt; &lt;td&gt; 4 &lt;td&gt; &lt;td&gt; 3 &lt;td&gt; &lt;td&gt; 9 &lt;td&gt; &lt;td&gt; 8
+ &lt;tr&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt;
+ &lt;tr&gt; &lt;td&gt; 5 &lt;td&gt; &lt;td&gt; &lt;td&gt; 9 &lt;td&gt; &lt;td&gt; 7 &lt;td&gt; &lt;td&gt; &lt;td&gt; 1
+ &lt;tbody&gt;
+ &lt;tr&gt; &lt;td&gt; 6 &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; 5 &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; 2
+ &lt;tr&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; 7 &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt;
+ &lt;tr&gt; &lt;td&gt; 9 &lt;td&gt; &lt;td&gt; &lt;td&gt; 8 &lt;td&gt; &lt;td&gt; 2 &lt;td&gt; &lt;td&gt; &lt;td&gt; 5
+ &lt;/table&gt;
+&lt;/section&gt;</pre>
+
+ </div>
+
+
+
+
+ <h5 id=table-descriptions-techniques><span class=secno>4.9.1.1 </span>Techniques for describing tables</h5>
+
+ <p id=table-descriptions>For tables that consist of more than just
+ a grid of cells with headers in the first row and headers in the
+ first column, and for any table in general where the reader might
+ have difficulty understanding the content, authors should include
+ explanatory information introducing the table. This information is
+ useful for all users, but is especially useful for users who cannot
+ see the table, e.g. users of screen readers.</p>
+
+ <p>Such explanatory information should introduce the purpose of the
+ table, outline its basic cell structure, highlight any trends or
+ patterns, and generally teach the user how to use the table.</p>
+
+ <!--Describing the conclusions of the data in a table is useful to
+ everyone; explaining how to read the table, if not obvious from the
+ headers alone, is useful to everyone; describing the structure of
+ the table, if it is easy to grasp visually, might not be useful to
+ everyone, but it might also not be useful to users who can quickly
+ navigate the table with an accessibility tool.-->
+
+ <p>For instance, the following table:</p>
+
+ <table><caption>Characteristics with positive and negative sides</caption>
+ <thead><tr><th id=n> Negative
+ <th> Characteristic
+ <th> Positive
+ <tbody><tr><td headers="n r1"> Sad
+ <th id=r1> Mood
+ <td> Happy
+ <tr><td headers="n r2"> Failing
+ <th id=r2> Grade
+ <td> Passing
+ </table><p>...might benefit from a description explaining the way the table
+ is laid out, something like "Characteristics are given in the
+ second column, with the negative side in the left column and the
+ positive side in the right column".</p>
+
+ <p>There are a variety of ways to include this information, such as:</p>
+
+ <dl><dt>In prose, surrounding the table</dt>
+
+ <dd>
+ <div class=example><pre>&lt;p&gt;In the following table, characteristics are given in the second
+column, with the negative side in the left column and the positive
+side in the right column.&lt;/p&gt;
+&lt;table&gt;
+ &lt;caption&gt;Characteristics with positive and negative sides&lt;/caption&gt;
+ &lt;thead&gt;
+ &lt;tr&gt;
+ &lt;th id="n"&gt; Negative
+ &lt;th&gt; Characteristic
+ &lt;th&gt; Positive
+ &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;td headers="n r1"&gt; Sad
+ &lt;th id="r1"&gt; Mood
+ &lt;td&gt; Happy
+ &lt;tr&gt;
+ &lt;td headers="n r2"&gt; Failing
+ &lt;th id="r2"&gt; Grade
+ &lt;td&gt; Passing
+&lt;/table&gt;</pre></div>
+ </dd>
+
+ <dt>In the table's <code><a href=#the-caption-element>caption</a></code></dt>
+
+ <dd>
+ <div class=example><pre>&lt;table&gt;
+ &lt;caption&gt;
+ &lt;strong&gt;Characteristics with positive and negative sides.&lt;/strong&gt;
+ &lt;p&gt;Characteristics are given in the second column, with the
+ negative side in the left column and the positive side in the right
+ column.&lt;/p&gt;
+ &lt;/caption&gt;
+ &lt;thead&gt;
+ &lt;tr&gt;
+ &lt;th id="n"&gt; Negative
+ &lt;th&gt; Characteristic
+ &lt;th&gt; Positive
+ &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;td headers="n r1"&gt; Sad
+ &lt;th id="r1"&gt; Mood
+ &lt;td&gt; Happy
+ &lt;tr&gt;
+ &lt;td headers="n r2"&gt; Failing
+ &lt;th id="r2"&gt; Grade
+ &lt;td&gt; Passing
+&lt;/table&gt;</pre></div>
+ </dd>
+
+ <dt>In the table's <code><a href=#the-caption-element>caption</a></code>, in a <code><a href=#the-details-element>details</a></code> element</dt>
+
+ <dd>
+ <div class=example><pre>&lt;table&gt;
+ &lt;caption&gt;
+ &lt;strong&gt;Characteristics with positive and negative sides.&lt;/strong&gt;
+ &lt;details&gt;
+ &lt;summary&gt;Help&lt;/summary&gt;
+ &lt;p&gt;Characteristics are given in the second column, with the
+ negative side in the left column and the positive side in the right
+ column.&lt;/p&gt;
+ &lt;/details&gt;
+ &lt;/caption&gt;
+ &lt;thead&gt;
+ &lt;tr&gt;
+ &lt;th id="n"&gt; Negative
+ &lt;th&gt; Characteristic
+ &lt;th&gt; Positive
+ &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;td headers="n r1"&gt; Sad
+ &lt;th id="r1"&gt; Mood
+ &lt;td&gt; Happy
+ &lt;tr&gt;
+ &lt;td headers="n r2"&gt; Failing
+ &lt;th id="r2"&gt; Grade
+ &lt;td&gt; Passing
+&lt;/table&gt;</pre></div>
+ </dd>
+
+ <dt>Next to the table, in the same <code><a href=#the-figure-element>figure</a></code></dt>
+
+ <dd>
+ <div class=example><pre>&lt;figure&gt;
+ &lt;figcaption&gt;Characteristics with positive and negative sides&lt;/figcaption&gt;
+ &lt;p&gt;Characteristics are given in the second column, with the
+ negative side in the left column and the positive side in the right
+ column.&lt;/p&gt;
+ &lt;table&gt;
+ &lt;thead&gt;
+ &lt;tr&gt;
+ &lt;th id="n"&gt; Negative
+ &lt;th&gt; Characteristic
+ &lt;th&gt; Positive
+ &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;td headers="n r1"&gt; Sad
+ &lt;th id="r1"&gt; Mood
+ &lt;td&gt; Happy
+ &lt;tr&gt;
+ &lt;td headers="n r2"&gt; Failing
+ &lt;th id="r2"&gt; Grade
+ &lt;td&gt; Passing
+ &lt;/table&gt;
+&lt;/figure&gt;</pre></div>
+ </dd>
+
+ <dt>Next to the table, in a <code><a href=#the-figure-element>figure</a></code>'s <code><a href=#the-figcaption-element>figcaption</a></code></dt>
+
+ <dd>
+ <div class=example><pre>&lt;figure&gt;
+ &lt;figcaption&gt;
+ &lt;strong&gt;Characteristics with positive and negative sides&lt;/strong&gt;
+ &lt;p&gt;Characteristics are given in the second column, with the
+ negative side in the left column and the positive side in the right
+ column.&lt;/p&gt;
+ &lt;/figcaption&gt;
+ &lt;table&gt;
+ &lt;thead&gt;
+ &lt;tr&gt;
+ &lt;th id="n"&gt; Negative
+ &lt;th&gt; Characteristic
+ &lt;th&gt; Positive
+ &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;td headers="n r1"&gt; Sad
+ &lt;th id="r1"&gt; Mood
+ &lt;td&gt; Happy
+ &lt;tr&gt;
+ &lt;td headers="n r2"&gt; Failing
+ &lt;th id="r2"&gt; Grade
+ &lt;td&gt; Passing
+ &lt;/table&gt;
+&lt;/figure&gt;</pre></div>
+ </dd>
+
+ </dl><p>Authors may also use other techniques, or combinations of the
+ above techniques, as appropriate.</p>
+
+ <p>The best option, of course, rather than writing a description
+ explaining the way the table is laid out, is to adjust the table
+ such that no explanation is needed.</p>
+
+ <div class=example>
+
+ <p>In the case of the table used in the examples above, a simple
+ rearrangement of the table so that the headers are on the top and
+ left sides removes the need for an explanation as well as removing
+ the need for the use of <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attributes:</p>
+
+ <pre>&lt;table&gt;
+ &lt;caption&gt;Characteristics with positive and negative sides&lt;/caption&gt;
+ &lt;thead&gt;
+ &lt;tr&gt;
+ &lt;th&gt; Characteristic
+ &lt;th&gt; Negative
+ &lt;th&gt; Positive
+ &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;th&gt; Mood
+ &lt;td&gt; Sad
+ &lt;td&gt; Happy
+ &lt;tr&gt;
+ &lt;th&gt; Grade
+ &lt;td&gt; Failing
+ &lt;td&gt; Passing
+&lt;/table&gt;</pre>
+
+ </div>
+
+
+
+ <h5 id=table-layout-techniques><span class=secno>4.9.1.2 </span>Techniques for table layout</h5>
+
+ <p>Good table layout is key to making tables more readable and usable.</p>
+
+ <p>In visual media, providing column and row borders and alternating
+ row backgrounds can be very effective to make complicated tables
+ more readable.</p>
+
+ <p>For tables with large volumes of numeric content, using
+ monospaced fonts can help users see patterns, especially in
+ situations where a user agent does not render the borders.
+ (Unfortunately, for historical reasons, not rendering borders on
+ tables is a common default.)</p>
+
+ <p>In speech media, table cells can be distinguished by reporting
+ the corresponding headers before reading the cell's contents, and by
+ allowing users to navigate the table in a grid fashion, rather than
+ serializing the entire contents of the table in source order.</p>
+
+ <p>Authors are encouraged to use CSS to achieve these effects.</p>
+
+ <div class=impl>
+ <p>User agents are encouraged to render tables using these
+ techniques whenever the page does not use CSS and the table is not
+ classified as a layout table.</p>
+ </div>
+
+
+
+
+ <h4 id=the-caption-element><span class=secno>4.9.2 </span>The <dfn><code>caption</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As the first element child of a <code><a href=#the-table-element>table</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>, but with no descendant <code><a href=#the-table-element>table</a></code> elements.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmltablecaptionelement>HTMLTableCaptionElement</dfn> : <a href=#htmlelement>HTMLElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-caption-element>caption</a></code> element <a href=#represents>represents</a> the title of the
+ <code><a href=#the-table-element>table</a></code> that is its parent, if it has a parent and that
+ is a <code><a href=#the-table-element>table</a></code> element.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#the-caption-element>caption</a></code> element takes part in the <a href=#table-model>table
+ model</a>.</p>
+
+ </div>
+
+ <p>When a <code><a href=#the-table-element>table</a></code> element is the only content in a
+ <code><a href=#the-figure-element>figure</a></code> element other than the <code><a href=#the-figcaption-element>figcaption</a></code>,
+ the <code><a href=#the-caption-element>caption</a></code> element should be omitted in favor of the
+ <code><a href=#the-figcaption-element>figcaption</a></code>.</p>
+
+ <p>A caption can introduce context for a table, making it
+ significantly easier to understand.</p>
+
+ <div class=example>
+
+ <p>Consider, for instance, the following table:</p>
+
+ <table class=dice-example><tr><th> <th> 1 <th> 2 <th> 3 <th> 4 <th> 5 <th> 6
+ <tr><th> 1 <td> 2 <td> 3 <td> 4 <td> 5 <td> 6 <td> 7
+ <tr><th> 2 <td> 3 <td> 4 <td> 5 <td> 6 <td> 7 <td> 8
+ <tr><th> 3 <td> 4 <td> 5 <td> 6 <td> 7 <td> 8 <td> 9
+ <tr><th> 4 <td> 5 <td> 6 <td> 7 <td> 8 <td> 9 <td> 10
+ <tr><th> 5 <td> 6 <td> 7 <td> 8 <td> 9 <td> 10 <td> 11
+ <tr><th> 6 <td> 7 <td> 8 <td> 9 <td> 10 <td> 11 <td> 12
+ </table><p>In the abstract, this table is not clear. However, with a
+ caption giving the table's number (for reference in the main prose)
+ and explaining its use, it makes more sense:</p>
+
+ <pre>&lt;caption&gt;
+&lt;p&gt;Table 1.
+&lt;p&gt;This table shows the total score obtained from rolling two
+six-sided dice. The first row represents the value of the first die,
+the first column the value of the second die. The total is given in
+the cell that corresponds to the values of the two dice.
+&lt;/caption&gt;</pre>
+
+<!--HTML4POLICE (hidden in w3c version because w3c version has to be valid HTML4) --><!--FORK-->
+ <p>This provides the user with more context:</p>
+
+ <table class=dice-example><caption>
+ <p>Table 1.
+ <p>This table shows the total score obtained from rolling two
+ six-sided dice. The first row represents the value of the first
+ die, the first column the value of the second die. The total is
+ given in the cell that corresponds to the values of the two dice.
+ </caption>
+ <tr><th> <th> 1 <th> 2 <th> 3 <th> 4 <th> 5 <th> 6
+ <tr><th> 1 <td> 2 <td> 3 <td> 4 <td> 5 <td> 6 <td> 7
+ <tr><th> 2 <td> 3 <td> 4 <td> 5 <td> 6 <td> 7 <td> 8
+ <tr><th> 3 <td> 4 <td> 5 <td> 6 <td> 7 <td> 8 <td> 9
+ <tr><th> 4 <td> 5 <td> 6 <td> 7 <td> 8 <td> 9 <td> 10
+ <tr><th> 5 <td> 6 <td> 7 <td> 8 <td> 9 <td> 10 <td> 11
+ <tr><th> 6 <td> 7 <td> 8 <td> 9 <td> 10 <td> 11 <td> 12
+ </table><!--HTML4POLICE--><!--FORK--></div>
+
+
+
+
+ <h4 id=the-colgroup-element><span class=secno>4.9.3 </span>The <dfn><code>colgroup</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-table-element>table</a></code> element, after any
+ <code><a href=#the-caption-element>caption</a></code> elements and before any <code><a href=#the-thead-element>thead</a></code>,
+ <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>, and <code><a href=#the-tr-element>tr</a></code>
+ elements.</dd>
+ <dt>Content model:</dt>
+ <dd>If the <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> attribute is present: Empty.</dd>
+ <dd>If the <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> attribute is absent: Zero or more <code><a href=#the-col-element>col</a></code> elements.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmltablecolelement>HTMLTableColElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute unsigned long <a href=#dom-colgroup-span title=dom-colgroup-span>span</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-colgroup-element>colgroup</a></code> element <a href=#represents>represents</a> a <a href=#concept-column-group title=concept-column-group>group</a> of one or more <a href=#concept-column title=concept-column>columns</a> in the <code><a href=#the-table-element>table</a></code> that
+ is its parent, if it has a parent and that is a <code><a href=#the-table-element>table</a></code>
+ element.</p>
+
+ <p>If the <code><a href=#the-colgroup-element>colgroup</a></code> element contains no <code><a href=#the-col-element>col</a></code>
+ elements, then the element may have a <dfn id=attr-colgroup-span title=attr-colgroup-span><code>span</code></dfn> content attribute
+ specified, whose value must be a <a href=#valid-non-negative-integer>valid non-negative
+ integer</a> greater than zero.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#the-colgroup-element>colgroup</a></code> element and its <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> attribute take part in the
+ <a href=#table-model>table model</a>.</p>
+
+ <p>The <dfn id=dom-colgroup-span title=dom-colgroup-span><code>span</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name. The value must be <a href=#limited-to-only-non-negative-numbers-greater-than-zero>limited to only non-negative
+ numbers greater than zero</a>.</p>
+
+ </div>
+
+
+ <h4 id=the-col-element><span class=secno>4.9.4 </span>The <dfn><code>col</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-colgroup-element>colgroup</a></code> element that doesn't have
+ a <code title=attr-col-span><a href=#attr-col-span>span</a></code> attribute.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-col-span><a href=#attr-col-span>span</a></code></dd>
+ <!-- v2: char, to specify the decimal character used in numeric data cells in the column (not header cells) -->
+ <dt>DOM interface:</dt>
+ <dd>
+ <p><code><a href=#htmltablecolelement>HTMLTableColElement</a></code>, same as for
+ <code><a href=#the-colgroup-element>colgroup</a></code> elements. This interface defines one member,
+ <code title=dom-col-span><a href=#dom-col-span>span</a></code>.</p>
+ </dd>
+ </dl><p>If a <code><a href=#the-col-element>col</a></code> element has a parent and that is a
+ <code><a href=#the-colgroup-element>colgroup</a></code> element that itself has a parent that is a
+ <code><a href=#the-table-element>table</a></code> element, then the <code><a href=#the-col-element>col</a></code> element
+ <a href=#represents>represents</a> one or more <a href=#concept-column title=concept-column>columns</a> in the <a href=#concept-column-group title=concept-column-group>column group</a> represented by that
+ <code><a href=#the-colgroup-element>colgroup</a></code>.</p>
+
+ <p>The element may have a <dfn id=attr-col-span title=attr-col-span><code>span</code></dfn> content attribute
+ specified, whose value must be a <a href=#valid-non-negative-integer>valid non-negative
+ integer</a> greater than zero.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#the-col-element>col</a></code> element and its <code title=attr-col-span><a href=#attr-col-span>span</a></code> attribute take part in the
+ <a href=#table-model>table model</a>.</p>
+
+ <p>The <dfn id=dom-col-span title=dom-col-span><code>span</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name. The value must be <a href=#limited-to-only-non-negative-numbers-greater-than-zero>limited to only non-negative
+ numbers greater than zero</a>.</p>
+
+ </div>
+
+
+ <h4 id=the-tbody-element><span class=secno>4.9.5 </span>The <dfn><code>tbody</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-table-element>table</a></code> element, after any
+ <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-colgroup-element>colgroup</a></code>, and
+ <code><a href=#the-thead-element>thead</a></code> elements, but only if there are no
+ <code><a href=#the-tr-element>tr</a></code> elements that are children of the
+ <code><a href=#the-table-element>table</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd>Zero or more <code><a href=#the-tr-element>tr</a></code> elements</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmltablesectionelement>HTMLTableSectionElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-tbody-rows title=dom-tbody-rows>rows</a>;
+ <a href=#htmlelement>HTMLElement</a> <a href=#dom-tbody-insertrow title=dom-tbody-insertRow>insertRow</a>(optional long index);
+ void <a href=#dom-tbody-deleterow title=dom-tbody-deleteRow>deleteRow</a>(long index);
+};</pre>
+ <p>The <code><a href=#htmltablesectionelement>HTMLTableSectionElement</a></code> interface is also
+ used for <code><a href=#the-thead-element>thead</a></code> and <code><a href=#the-tfoot-element>tfoot</a></code> elements.</p>
+ </dd>
+ </dl><p>The <code><a href=#the-tbody-element>tbody</a></code> element <a href=#represents>represents</a> a <a href=#concept-row-group title=concept-row-group>block</a> of <a href=#concept-row title=concept-row>rows</a> that consist of a body of data for
+ the parent <code><a href=#the-table-element>table</a></code> element, if the <code><a href=#the-tbody-element>tbody</a></code>
+ element has a parent and it is a <code><a href=#the-table-element>table</a></code>.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#the-tbody-element>tbody</a></code> element takes part in the <a href=#table-model>table
+ model</a>.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">tbody</var> . <code title=dom-tbody-rows><a href=#dom-tbody-rows>rows</a></code></dt>
+ <dd>
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-tr-element>tr</a></code> elements of the table section.</p>
+ </dd>
+
+ <dt><var title="">tr</var> = <var title="">tbody</var> . <code title=dom-tbody-insertRow><a href=#dom-tbody-insertrow>insertRow</a></code>( [ <var title="">index</var> ] )</dt>
+ <dd>
+ <p>Creates a <code><a href=#the-tr-element>tr</a></code> element, inserts it into the table section at the position given by the argument, and returns the <code><a href=#the-tr-element>tr</a></code>.</p>
+ <p>The position is relative to the rows in the table section. The index &minus;1, which is the default if the argument is omitted, is equivalent to inserting at the end of the table section.</p>
+ <p>If the given position is less than &minus;1 or greater than the number of rows, throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception.</p>
+ </dd>
+
+ <dt><var title="">tbody</var> . <code title=dom-tbody-deleteRow><a href=#dom-tbody-deleterow>deleteRow</a></code>(<var title="">index</var>)</dt>
+ <dd>
+ <p>Removes the <code><a href=#the-tr-element>tr</a></code> element with the given position in the table section.</p>
+ <p>The position is relative to the rows in the table section. The index &minus;1 is equivalent to deleting the last row of the table section.</p>
+ <p>If the given position is less than &minus;1 or greater than the index of the last row, or if there are no rows, throws an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-tbody-rows title=dom-tbody-rows><code>rows</code></dfn> attribute
+ must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the element,
+ whose filter matches only <code><a href=#the-tr-element>tr</a></code> elements that are children
+ of the element.</p>
+
+ <p>The <dfn id=dom-tbody-insertrow title=dom-tbody-insertRow><code>insertRow(<var title="">index</var>)</code></dfn> method must, when invoked on an
+ element <var title="">table section</var>, act as follows:</p>
+
+ <p>If <var title="">index</var> is less than &minus;1 or greater than the
+ number of elements in the <code title=dom-tbody-rows><a href=#dom-tbody-rows>rows</a></code>
+ collection, the method must throw an <code><a href=#indexsizeerror>IndexSizeError</a></code>
+ exception.</p>
+
+ <p>If <var title="">index</var> is missing, equal to &minus;1, or
+ equal to the number of items in the <code title=dom-tbody-rows><a href=#dom-tbody-rows>rows</a></code> collection, the method must
+ create a <code><a href=#the-tr-element>tr</a></code> element, append it to the element <var title="">table section</var>, and return the newly created
+ <code><a href=#the-tr-element>tr</a></code> element.</p>
+
+ <p>Otherwise, the method must create a <code><a href=#the-tr-element>tr</a></code> element,
+ insert it as a child of the <var title="">table section</var>
+ element, immediately before the <var title="">index</var>th
+ <code><a href=#the-tr-element>tr</a></code> element in the <code title=dom-tbody-rows><a href=#dom-tbody-rows>rows</a></code> collection, and finally must
+ return the newly created <code><a href=#the-tr-element>tr</a></code> element.</p>
+
+ <p>The <dfn id=dom-tbody-deleterow title=dom-tbody-deleteRow><code>deleteRow(<var title="">index</var>)</code></dfn> method must remove the <var title="">index</var>th element in the <code title=dom-tbody-rows><a href=#dom-tbody-rows>rows</a></code> collection from its parent. If
+ <var title="">index</var> is less than zero or greater than or equal
+ to the number of elements in the <code title=dom-tbody-rows><a href=#dom-tbody-rows>rows</a></code> collection, the method must
+ instead throw an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception.</p>
+
+ </div>
+
+
+ <h4 id=the-thead-element><span class=secno>4.9.6 </span>The <dfn><code>thead</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-table-element>table</a></code> element, after any
+ <code><a href=#the-caption-element>caption</a></code>, and <code><a href=#the-colgroup-element>colgroup</a></code>
+ elements and before any <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>, and
+ <code><a href=#the-tr-element>tr</a></code> elements, but only if there are no other
+ <code><a href=#the-thead-element>thead</a></code> elements that are children of the
+ <code><a href=#the-table-element>table</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd>Zero or more <code><a href=#the-tr-element>tr</a></code> elements</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd><code><a href=#htmltablesectionelement>HTMLTableSectionElement</a></code>, as defined for
+ <code><a href=#the-tbody-element>tbody</a></code> elements.</dd>
+ </dl><p>The <code><a href=#the-thead-element>thead</a></code> element <a href=#represents>represents</a> the <a href=#concept-row-group title=concept-row-group>block</a> of <a href=#concept-row title=concept-row>rows</a> that consist of the column labels
+ (headers) for the parent <code><a href=#the-table-element>table</a></code> element, if the
+ <code><a href=#the-thead-element>thead</a></code> element has a parent and it is a
+ <code><a href=#the-table-element>table</a></code>.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#the-thead-element>thead</a></code> element takes part in the <a href=#table-model>table
+ model</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This example shows a <code><a href=#the-thead-element>thead</a></code> element being used.
+ Notice the use of both <code><a href=#the-th-element>th</a></code> and <code><a href=#the-td-element>td</a></code> elements
+ in the <code><a href=#the-thead-element>thead</a></code> element: the first row is the headers,
+ and the second row is an explanation of how to fill in the
+ table.</p>
+
+ <pre>&lt;table&gt;
+ &lt;caption&gt; School auction sign-up sheet &lt;/caption&gt;
+<strong> &lt;thead&gt;
+ &lt;tr&gt;
+ &lt;th&gt;&lt;label for=e1&gt;Name&lt;/label&gt;
+ &lt;th&gt;&lt;label for=e2&gt;Product&lt;/label&gt;
+ &lt;th&gt;&lt;label for=e3&gt;Picture&lt;/label&gt;
+ &lt;th&gt;&lt;label for=e4&gt;Price&lt;/label&gt;
+ &lt;tr&gt;
+ &lt;td&gt;Your name here
+ &lt;td&gt;What are you selling?
+ &lt;td&gt;Link to a picture
+ &lt;td&gt;Your reserve price
+</strong> &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;td&gt;Ms Danus
+ &lt;td&gt;Doughnuts
+ &lt;td&gt;&lt;img src="http://example.com/mydoughnuts.png" title="Doughnuts from Ms Danus"&gt;
+ &lt;td&gt;$45
+ &lt;tr&gt;
+ &lt;td&gt;&lt;input id=e1 type=text name=who required form=f&gt;
+ &lt;td&gt;&lt;input id=e2 type=text name=what required form=f&gt;
+ &lt;td&gt;&lt;input id=e3 type=url name=pic form=f&gt;
+ &lt;td&gt;&lt;input id=e4 type=number step=0.01 min=0 value=0 required form=f&gt;
+&lt;/table&gt;
+&lt;form id=f action="/auction.cgi"&gt;
+ &lt;input type=button name=add value="Submit"&gt;
+&lt;/form&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-tfoot-element><span class=secno>4.9.7 </span>The <dfn><code>tfoot</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-table-element>table</a></code> element, after any
+ <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-colgroup-element>colgroup</a></code>, and <code><a href=#the-thead-element>thead</a></code>
+ elements and before any <code><a href=#the-tbody-element>tbody</a></code> and <code><a href=#the-tr-element>tr</a></code>
+ elements, but only if there are no other <code><a href=#the-tfoot-element>tfoot</a></code>
+ elements that are children of the <code><a href=#the-table-element>table</a></code> element.</dd>
+ <dd>As a child of a <code><a href=#the-table-element>table</a></code> element, after any
+ <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-colgroup-element>colgroup</a></code>, <code><a href=#the-thead-element>thead</a></code>,
+ <code><a href=#the-tbody-element>tbody</a></code>, and <code><a href=#the-tr-element>tr</a></code> elements, but only if there
+ are no other <code><a href=#the-tfoot-element>tfoot</a></code> elements that are children of the
+ <code><a href=#the-table-element>table</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd>Zero or more <code><a href=#the-tr-element>tr</a></code> elements</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd><code><a href=#htmltablesectionelement>HTMLTableSectionElement</a></code>, as defined for
+ <code><a href=#the-tbody-element>tbody</a></code> elements.</dd>
+ </dl><p>The <code><a href=#the-tfoot-element>tfoot</a></code> element <a href=#represents>represents</a> the <a href=#concept-row-group title=concept-row-group>block</a> of <a href=#concept-row title=concept-row>rows</a> that consist of the column summaries
+ (footers) for the parent <code><a href=#the-table-element>table</a></code> element, if the
+ <code><a href=#the-tfoot-element>tfoot</a></code> element has a parent and it is a
+ <code><a href=#the-table-element>table</a></code>.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#the-tfoot-element>tfoot</a></code> element takes part in the <a href=#table-model>table
+ model</a>.</p>
+
+ </div>
+
+
+ <h4 id=the-tr-element><span class=secno>4.9.8 </span>The <dfn><code>tr</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-thead-element>thead</a></code> element.</dd>
+ <dd>As a child of a <code><a href=#the-tbody-element>tbody</a></code> element.</dd>
+ <dd>As a child of a <code><a href=#the-tfoot-element>tfoot</a></code> element.</dd>
+ <dd>As a child of a <code><a href=#the-table-element>table</a></code> element, after any
+ <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-colgroup-element>colgroup</a></code>, and <code><a href=#the-thead-element>thead</a></code>
+ elements, but only if there are no <code><a href=#the-tbody-element>tbody</a></code> elements that
+ are children of the <code><a href=#the-table-element>table</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd>Zero or more <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> elements</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmltablerowelement>HTMLTableRowElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ readonly attribute long <a href=#dom-tr-rowindex title=dom-tr-rowIndex>rowIndex</a>;
+ readonly attribute long <a href=#dom-tr-sectionrowindex title=dom-tr-sectionRowIndex>sectionRowIndex</a>;
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-tr-cells title=dom-tr-cells>cells</a>;
+ <a href=#htmlelement>HTMLElement</a> <a href=#dom-tr-insertcell title=dom-tr-insertCell>insertCell</a>(optional long index);
+ void <a href=#dom-tr-deletecell title=dom-tr-deleteCell>deleteCell</a>(long index);
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-tr-element>tr</a></code> element <a href=#represents>represents</a> a <a href=#concept-row title=concept-row>row</a> of <a href=#concept-cell title=concept-cell>cells</a> in a <a href=#concept-table title=concept-table>table</a>.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#the-tr-element>tr</a></code> element takes part in the <a href=#table-model>table
+ model</a>.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">tr</var> . <code title=dom-tr-rowIndex><a href=#dom-tr-rowindex>rowIndex</a></code></dt>
+
+ <dd>
+
+ <p>Returns the position of the row in the table's <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code> list.</p>
+
+ <p>Returns &minus;1 if the element isn't in a table.</p>
+
+ </dd>
+
+ <dt><var title="">tr</var> . <code title=dom-tr-sectionRowIndex><a href=#dom-tr-sectionrowindex>sectionRowIndex</a></code></dt>
+
+ <dd>
+
+ <p>Returns the position of the row in the table section's <code title=dom-tbody-rows><a href=#dom-tbody-rows>rows</a></code> list.</p>
+
+ <p>Returns &minus;1 if the element isn't in a table section.</p>
+
+ </dd>
+
+ <dt><var title="">tr</var> . <code title=dom-tr-cells><a href=#dom-tr-cells>cells</a></code></dt>
+ <dd>
+
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements of the row.</p>
+
+ </dd>
+
+ <dt><var title="">cell</var> = <var title="">tr</var> . <code title=dom-tr-insertCell><a href=#dom-tr-insertcell>insertCell</a></code>( [ <var title="">index</var> ] )</dt>
+
+ <dd>
+
+ <p>Creates a <code><a href=#the-td-element>td</a></code> element, inserts it into the table
+ row at the position given by the argument, and returns the
+ <code><a href=#the-td-element>td</a></code>.</p>
+
+ <p>The position is relative to the cells in the row. The
+ index &minus;1, which is the default if the argument is omitted,
+ is equivalent to inserting at the end of the row.</p>
+
+ <p>If the given position is less than &minus;1 or greater than
+ the number of cells, throws an <code><a href=#indexsizeerror>IndexSizeError</a></code>
+ exception.</p>
+
+ </dd>
+
+ <dt><var title="">tr</var> . <code title=dom-tr-deleteCell><a href=#dom-tr-deletecell>deleteCell</a></code>(<var title="">index</var>)</dt>
+ <dd>
+
+ <p>Removes the <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element with the
+ given position in the row.</p>
+
+ <p>The position is relative to the cells in the row. The index
+ &minus;1 is equivalent to deleting the last cell of the row.</p>
+
+ <p>If the given position is less than &minus;1 or greater than
+ the index of the last cell, or if there are no cells, throws an
+ <code><a href=#indexsizeerror>IndexSizeError</a></code> exception.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-tr-rowindex title=dom-tr-rowIndex><code>rowIndex</code></dfn>
+ attribute must, if the element has a parent <code><a href=#the-table-element>table</a></code>
+ element, or a parent <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element and a <em>grandparent</em>
+ <code><a href=#the-table-element>table</a></code> element, return the index of the <code><a href=#the-tr-element>tr</a></code>
+ element in that <code><a href=#the-table-element>table</a></code> element's <code title=dom-table-rows><a href=#dom-table-rows>rows</a></code> collection. If there is no such
+ <code><a href=#the-table-element>table</a></code> element, then the attribute must return
+ &minus;1.</p>
+
+ <p>The <dfn id=dom-tr-sectionrowindex title=dom-tr-sectionRowIndex><code>sectionRowIndex</code></dfn>
+ attribute must, if the element has a parent <code><a href=#the-table-element>table</a></code>,
+ <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or <code><a href=#the-tfoot-element>tfoot</a></code>
+ element, return the index of the <code><a href=#the-tr-element>tr</a></code> element in the
+ parent element's <code title="">rows</code> collection (for tables,
+ that's the <code title=dom-table-rows><a href=#dom-table-rows>HTMLTableElement.rows</a></code>
+ collection; for table sections, that's the <code title=dom-tbody-rows><a href=#dom-tbody-rows>HTMLTableRowElement.rows</a></code>
+ collection). If there is no such parent element, then the attribute
+ must return &minus;1.</p>
+
+ <p>The <dfn id=dom-tr-cells title=dom-tr-cells><code>cells</code></dfn> attribute
+ must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#the-tr-element>tr</a></code> element, whose filter matches only <code><a href=#the-td-element>td</a></code>
+ and <code><a href=#the-th-element>th</a></code> elements that are children of the
+ <code><a href=#the-tr-element>tr</a></code> element.</p>
+
+ <p>The <dfn id=dom-tr-insertcell title=dom-tr-insertCell><code>insertCell(<var title="">index</var>)</code></dfn> method must act as follows:</p>
+
+ <p>If <var title="">index</var> is less than &minus;1 or greater than the
+ number of elements in the <code title=dom-tr-cells><a href=#dom-tr-cells>cells</a></code>
+ collection, the method must throw an <code><a href=#indexsizeerror>IndexSizeError</a></code>
+ exception.</p>
+
+ <p>If <var title="">index</var> is missing, equal to &minus;1, or
+ equal to the number of items in <code title=dom-tr-cells><a href=#dom-tr-cells>cells</a></code> collection, the method must create
+ a <code><a href=#the-td-element>td</a></code> element, append it to the <code><a href=#the-tr-element>tr</a></code> element,
+ and return the newly created <code><a href=#the-td-element>td</a></code> element.</p>
+
+ <p>Otherwise, the method must create a <code><a href=#the-td-element>td</a></code> element,
+ insert it as a child of the <code><a href=#the-tr-element>tr</a></code> element, immediately
+ before the <var title="">index</var>th <code><a href=#the-td-element>td</a></code> or
+ <code><a href=#the-th-element>th</a></code> element in the <code title=dom-tr-cells><a href=#dom-tr-cells>cells</a></code> collection, and finally must
+ return the newly created <code><a href=#the-td-element>td</a></code> element.</p>
+
+ <p>The <dfn id=dom-tr-deletecell title=dom-tr-deleteCell><code>deleteCell(<var title="">index</var>)</code></dfn> method must remove the <var title="">index</var>th element in the <code title=dom-tr-cells><a href=#dom-tr-cells>cells</a></code> collection from its parent. If
+ <var title="">index</var> is less than zero or greater than or equal
+ to the number of elements in the <code title=dom-tr-cells><a href=#dom-tr-cells>cells</a></code> collection, the method must
+ instead throw an <code><a href=#indexsizeerror>IndexSizeError</a></code> exception.</p>
+
+ </div>
+
+
+ <h4 id=the-td-element><span class=secno>4.9.9 </span>The <dfn><code>td</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#sectioning-root>Sectioning root</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-tr-element>tr</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code></dd>
+ <dd><code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>rowspan</a></code></dd>
+ <dd><code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code></dd>
+ <!-- v2 char, to specify the decimal character used in numeric cells -->
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmltabledatacellelement>HTMLTableDataCellElement</dfn> : <a href=#htmltablecellelement>HTMLTableCellElement</a> {};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-td-element>td</a></code> element <a href=#represents>represents</a> a data <a href=#concept-cell title=concept-cell>cell</a> in a table.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#the-td-element>td</a></code> element and its <code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code>, <code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>rowspan</a></code>, and <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attributes take part in the
+ <a href=#table-model>table model</a>.</p>
+
+ </div>
+
+
+ <h4 id=the-th-element><span class=secno>4.9.10 </span>The <dfn><code>th</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-tr-element>tr</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>, but with no <code><a href=#the-header-element>header</a></code>, <code><a href=#the-footer-element>footer</a></code>, <a href=#sectioning-content>sectioning content</a>, or <a href=#heading-content>heading content</a> descendants.</dd>
+ <!-- EDITING NOTE: If you remove 'heading content' from the list above, make sure to fix the definition of 'sectioning root' to include <th> -->
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code></dd>
+ <dd><code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>rowspan</a></code></dd>
+ <dd><code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code></dd>
+ <dd><code title=attr-th-scope><a href=#attr-th-scope>scope</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmltableheadercellelement>HTMLTableHeaderCellElement</dfn> : <a href=#htmltablecellelement>HTMLTableCellElement</a> {
+ attribute DOMString <a href=#dom-th-scope title=dom-th-scope>scope</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-th-element>th</a></code> element <a href=#represents>represents</a> a header <a href=#concept-cell title=concept-cell>cell</a> in a table.</p>
+
+ <p>The <code><a href=#the-th-element>th</a></code> element may have a <dfn id=attr-th-scope title=attr-th-scope><code>scope</code></dfn> content attribute
+ specified. The <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute is
+ an <a href=#enumerated-attribute>enumerated attribute</a> with five states, four of which
+ have explicit keywords:</p>
+
+ <dl><dt>The <dfn id=attr-th-scope-row title=attr-th-scope-row><code>row</code></dfn>
+ keyword, which maps to the <i>row</i> state</dt>
+
+ <dd>The <i>row</i> state means the header cell applies to some of
+ the subsequent cells in the same row(s).</dd>
+
+ <dt>The <dfn id=attr-th-scope-col title=attr-th-scope-col><code>col</code></dfn>
+ keyword, which maps to the <i>column</i> state</dt>
+
+ <dd>The <i>column</i> state means the header cell applies to some
+ of the subsequent cells in the same column(s).</dd>
+
+ <dt>The <dfn id=attr-th-scope-rowgroup title=attr-th-scope-rowgroup><code>rowgroup</code></dfn> keyword,
+ which maps to the <i>row group</i> state</dt>
+
+ <dd>The <i>row group</i> state means the header cell applies to all
+ the remaining cells in the row group. A <code><a href=#the-th-element>th</a></code> element's
+ <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute must not be in
+ the <a href=#attr-th-scope-rowgroup title=attr-th-scope-rowgroup>row group</a> state if
+ the element is not anchored in a <a href=#concept-row-group title=concept-row-group>row group</a>.</dd>
+
+ <dt>The <dfn id=attr-th-scope-colgroup title=attr-th-scope-colgroup><code>colgroup</code></dfn> keyword,
+ which maps to the <i>column group</i> state</dt>
+
+ <dd>The <i>column group</i> state means the header cell applies to
+ all the remaining cells in the column group. A <code><a href=#the-th-element>th</a></code>
+ element's <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute must
+ not be in the <a href=#attr-th-scope-colgroup title=attr-th-scope-colgroup>column
+ group</a> state if the element is not anchored in a <a href=#concept-column-group title=concept-column-group>column group</a>.</dd>
+
+ <dt>The <dfn id=attr-th-scope-auto title=attr-th-scope-auto>auto</dfn> state</dt>
+
+ <dd>The <i>auto</i> state makes the header cell apply to a set of
+ cells selected based on context.</dd>
+
+ </dl><p>The <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute's
+ <i>missing value default</i> is the <i>auto</i> state.</p>
+
+ <div class=impl>
+
+ <p>The <code><a href=#the-th-element>th</a></code> element and its <code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code>, <code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>rowspan</a></code>, <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code>, and <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attributes take part in the
+ <a href=#table-model>table model</a>.</p>
+
+ <p>The <dfn id=dom-th-scope title=dom-th-scope><code>scope</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows how the <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute's <code title=attr-th-scope-rowgroup><a href=#attr-th-scope-rowgroup>rowgroup</a></code> value affects which
+ data cells a header cell applies to.</p>
+
+ <p>Here is a markup fragment showing a table:</p>
+
+ <pre>&lt;table&gt;
+ &lt;thead&gt;
+ &lt;tr&gt; &lt;th&gt; ID &lt;th&gt; Measurement &lt;th&gt; Average &lt;th&gt; Maximum
+ &lt;tbody&gt;
+ &lt;tr&gt; &lt;td&gt; &lt;th scope=rowgroup&gt; Cats &lt;td&gt; &lt;td&gt;
+ &lt;tr&gt; &lt;td&gt; 93 &lt;th scope=row&gt; Legs &lt;td&gt; 3.5 &lt;td&gt; 4
+ &lt;tr&gt; &lt;td&gt; 10 &lt;th scope=row&gt; Tails &lt;td&gt; 1 &lt;td&gt; 1
+ &lt;tbody&gt;
+ &lt;tr&gt; &lt;td&gt; &lt;th scope=rowgroup&gt; English speakers &lt;td&gt; &lt;td&gt;
+ &lt;tr&gt; &lt;td&gt; 32 &lt;th scope=row&gt; Legs &lt;td&gt; 2.67 &lt;td&gt; 4
+ &lt;tr&gt; &lt;td&gt; 35 &lt;th scope=row&gt; Tails &lt;td&gt; 0.33 &lt;td&gt; 1
+&lt;/table&gt;</pre>
+
+ <p>This would result in the following table:</p>
+
+ <table><thead><tr><th> ID <th> Measurement <th> Average <th> Maximum
+ <tbody><tr><td> <th scope=rowgroup> Cats <td> <td>
+ <tr><td> 93 <th scope=row> Legs <td> 3.5 <td> 4
+ <tr><td> 10 <th scope=row> Tails <td> 1 <td> 1
+ <tbody><tr><td> <th scope=rowgroup> English speakers <td> <td>
+ <tr><td> 32 <th scope=row> Legs <td> 2.67 <td> 4
+ <tr><td> 35 <th scope=row> Tails <td> 0.33 <td> 1
+ </table><p>The headers in the first row all apply directly down to the rows
+ in their column.</p>
+
+ <p>The headers with the explicit <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attributes apply to all the
+ cells in their row group other than the cells in the first column.</p>
+
+ <p>The remaining headers apply just to the cells to the right of
+ them.</p>
+
+ <!-- image source: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/151 -->
+ <img alt="" height=256 src=greenbox.png width=459><!-- (alt is empty because the diagram is completely described by the previous paragraphs) --></div>
+
+
+
+ <h4 id=attributes-common-to-td-and-th-elements><span class=secno>4.9.11 </span>Attributes common to <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</h4>
+
+ <p>The <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements may have a <dfn id=attr-tdth-colspan title=attr-tdth-colspan><code>colspan</code></dfn> content
+ attribute specified, whose value must be a <a href=#valid-non-negative-integer>valid non-negative
+ integer</a> greater than zero.</p>
+
+ <p>The <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements may also have a
+ <dfn id=attr-tdth-rowspan title=attr-tdth-rowspan><code>rowspan</code></dfn> content
+ attribute specified, whose value must be a <a href=#valid-non-negative-integer>valid non-negative
+ integer</a>.</p>
+
+ <p>These attributes give the number of columns and rows respectively
+ that the cell is to span. These attributes must not be used to
+ overlap cells<span class=impl>, as described in the description of
+ the <a href=#table-model>table model</a></span>.</p> <!-- conformance criteria
+ for determining when this is violated are given in the processing
+ model -->
+
+ <hr><p>The <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> element may have a <dfn id=attr-tdth-headers title=attr-tdth-headers><code>headers</code></dfn> content
+ attribute specified. The <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attribute, if specified,
+ must contain a string consisting of an <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique
+ space-separated tokens</a> that are <a href=#case-sensitive>case-sensitive</a>,
+ each of which must have the value of an <a href=#concept-id title=concept-id>ID</a> of a <code><a href=#the-th-element>th</a></code> element taking
+ part in the same <a href=#concept-table title=concept-table>table</a> as the
+ <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element<span class=impl> (as
+ defined by the <a href=#table-model>table model</a>)</span>.</p>
+
+ <p>A <code><a href=#the-th-element>th</a></code> element with <a href=#concept-id title=concept-id>ID</a> <var title="">id</var> is said
+ to be <i>directly targeted</i> by all <code><a href=#the-td-element>td</a></code> and
+ <code><a href=#the-th-element>th</a></code> elements in the same <a href=#concept-table title=concept-table>table</a> that have <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attributes whose values
+ include as one of their tokens the <a href=#concept-id title=concept-id>ID</a> <var title="">id</var>. A
+ <code><a href=#the-th-element>th</a></code> element <var title="">A</var> is said to be
+ <i>targeted</i> by a <code><a href=#the-th-element>th</a></code> or <code><a href=#the-td-element>td</a></code> element
+ <var title="">B</var> if either <var title="">A</var> is <i>directly
+ targeted</i> by <var title="">B</var> or if there exists an element
+ <var title="">C</var> that is itself <i>targeted</i> by the element
+ <var title="">B</var> and <var title="">A</var> is <i>directly
+ targeted</i> by <var title="">C</var>.</p>
+
+ <p>A <code><a href=#the-th-element>th</a></code> element must not be <i>targeted</i> by
+ itself.</p>
+
+ <div class=impl>
+
+ <p>The <code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code>, <code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>rowspan</a></code>, and <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attributes take part in the
+ <a href=#table-model>table model</a>.</p>
+
+ </div>
+
+ <hr><p>The <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements implement
+ interfaces that inherit from the <code><a href=#htmltablecellelement>HTMLTableCellElement</a></code>
+ interface:</p>
+
+ <pre class=idl>interface <dfn id=htmltablecellelement>HTMLTableCellElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute unsigned long <a href=#dom-tdth-colspan title=dom-tdth-colSpan>colSpan</a>;
+ attribute unsigned long <a href=#dom-tdth-rowspan title=dom-tdth-rowSpan>rowSpan</a>;
+ [PutForwards=<span title=dom-DOMSettableTokenList-value>value</span>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-tdth-headers title=dom-tdth-headers>headers</a>;
+ readonly attribute long <a href=#dom-tdth-cellindex title=dom-tdth-cellIndex>cellIndex</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">cell</var> . <code title=dom-tdth-cellIndex><a href=#dom-tdth-cellindex>cellIndex</a></code></dt>
+
+ <dd>
+
+ <p>Returns the position of the cell in the row's <code title=dom-tr-cells><a href=#dom-tr-cells>cells</a></code> list. This does not necessarily
+ correspond to the <var title="">x</var>-position of the cell in
+ the table, since earlier cells might cover multiple rows or
+ columns.</p>
+
+ <p>Returns 0 if the element isn't in a row.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-tdth-colspan title=dom-tdth-colSpan><code>colSpan</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name. The value must be <a href=#limited-to-only-non-negative-numbers-greater-than-zero>limited to only non-negative
+ numbers greater than zero</a>.</p>
+
+ <p>The <dfn id=dom-tdth-rowspan title=dom-tdth-rowSpan><code>rowSpan</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name. Its default value, which must be used if <a href=#rules-for-parsing-non-negative-integers title="rules for parsing non-negative integers">parsing the
+ attribute as a non-negative integer</a> returns an error, is 1.</p>
+
+ <p>The <dfn id=dom-tdth-headers title=dom-tdth-headers><code>headers</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ <p>The <dfn id=dom-tdth-cellindex title=dom-tdth-cellIndex><code>cellIndex</code></dfn>
+ IDL attribute must, if the element has a parent <code><a href=#the-tr-element>tr</a></code>
+ element, return the index of the cell's element in the parent
+ element's <code title=dom-tr-cells><a href=#dom-tr-cells>cells</a></code> collection. If
+ there is no such parent element, then the attribute must return
+ 0.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=processing-model-0><span class=secno>4.9.12 </span>Processing model</h4>
+
+ <p>The various table elements and their content attributes together
+ define the <dfn id=table-model>table model</dfn>.</p>
+
+ <p>A <dfn id=concept-table title=concept-table>table</dfn> consists of cells
+ aligned on a two-dimensional grid of <dfn id=concept-slots title=concept-slots>slots</dfn> with coordinates (<var title="">x</var>, <var title="">y</var>). The grid is finite, and is
+ either empty or has one or more slots. If the grid has one or more
+ slots, then the <var title="">x</var> coordinates are always in the
+ range <span title="">0&nbsp;&le;&nbsp;<var title="">x</var>&nbsp;&lt;&nbsp;<var title="">x<sub title="">width</sub></var></span>, and the <var title="">y</var>
+ coordinates are always in the range <span title="">0&nbsp;&le;&nbsp;<var title="">y</var>&nbsp;&lt;&nbsp;<var title="">y<sub title="">height</sub></var></span>. If one or both of <var title="">x<sub title="">width</sub></var> and <var title="">y<sub title="">height</sub></var> are zero, then the table is empty (has
+ no slots). Tables correspond to <code><a href=#the-table-element>table</a></code> elements.</p>
+
+ <p>A <dfn id=concept-cell title=concept-cell>cell</dfn> is a set of slots anchored
+ at a slot (<var title="">cell<sub title="">x</sub></var>, <var title="">cell<sub title="">y</sub></var>), and with a particular
+ <var title="">width</var> and <var title="">height</var> such that
+ the cell covers all the slots with coordinates (<var title="">x</var>, <var title="">y</var>) where <span title=""><var title="">cell<sub title="">x</sub></var>&nbsp;&le;&nbsp;<var title="">x</var>&nbsp;&lt;&nbsp;<var title="">cell<sub title="">x</sub></var>+<var title="">width</var></span> and
+ <span title=""><var title="">cell<sub title="">y</sub></var>&nbsp;&le;&nbsp;<var title="">y</var>&nbsp;&lt;&nbsp;<var title="">cell<sub title="">y</sub></var>+<var title="">height</var></span>. Cells can
+ either be <em>data cells</em> or <em>header cells</em>. Data cells
+ correspond to <code><a href=#the-td-element>td</a></code> elements, and header cells correspond
+ to <code><a href=#the-th-element>th</a></code> elements. Cells of both types can have zero or
+ more associated header cells.</p>
+
+ <p>It is possible, in certain error cases, for two cells to occupy
+ the same slot.</p>
+
+ <p>A <dfn id=concept-row title=concept-row>row</dfn> is a complete set of slots
+ from <span title=""><var title="">x</var>=0</span> to <span title=""><var title="">x</var>=<var title="">x<sub title="">width</sub></var>-1</span>, for a particular value of <var title="">y</var>. Rows correspond to <code><a href=#the-tr-element>tr</a></code> elements.</p>
+
+ <p>A <dfn id=concept-column title=concept-column>column</dfn> is a complete set of
+ slots from <span title=""><var title="">y</var>=0</span> to <span title=""><var title="">y</var>=<var title="">y<sub title="">height</sub></var>-1</span>, for a particular value of <var title="">x</var>. Columns can correspond to <code><a href=#the-col-element>col</a></code>
+ elements. In the absence of <code><a href=#the-col-element>col</a></code> elements, columns are
+ implied.</p>
+
+ <p>A <dfn id=concept-row-group title=concept-row-group>row group</dfn> is a set of
+ <a href=#concept-row title=concept-row>rows</a> anchored at a slot (0, <var title="">group<sub title="">y</sub></var>) with a particular <var title="">height</var> such that the row group covers all the slots
+ with coordinates (<var title="">x</var>, <var title="">y</var>)
+ where <span title="">0&nbsp;&le;&nbsp;<var title="">x</var>&nbsp;&lt;&nbsp;<var title="">x<sub title="">width</sub></var></span> and <span title=""><var title="">group<sub title="">y</sub></var>&nbsp;&le;&nbsp;<var title="">y</var>&nbsp;&lt;&nbsp;<var title="">group<sub title="">y</sub></var>+<var title="">height</var></span>. Row groups
+ correspond to <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, and
+ <code><a href=#the-tfoot-element>tfoot</a></code> elements. Not every row is necessarily in a row
+ group.</p>
+
+ <p>A <dfn id=concept-column-group title=concept-column-group>column group</dfn> is a set
+ of <a href=#concept-column title=concept-column>columns</a> anchored at a slot
+ (<var title="">group<sub title="">x</sub></var>, 0) with a
+ particular <var title="">width</var> such that the column group
+ covers all the slots with coordinates (<var title="">x</var>, <var title="">y</var>) where <span title=""><var title="">group<sub title="">x</sub></var>&nbsp;&le;&nbsp;<var title="">x</var>&nbsp;&lt;&nbsp;<var title="">group<sub title="">x</sub></var>+<var title="">width</var></span> and
+ <span title="">0&nbsp;&le;&nbsp;<var title="">y</var>&nbsp;&lt;&nbsp;<var title="">y<sub title="">height</sub></var></span>. Column groups
+ correspond to <code><a href=#the-colgroup-element>colgroup</a></code> elements. Not every column is
+ necessarily in a column group.</p>
+
+ <p><a href=#concept-row-group title=concept-row-group>Row groups</a> cannot overlap
+ each other. Similarly, <a href=#concept-column-group title=concept-column-group>column
+ groups</a> cannot overlap each other.</p>
+
+ <p>A <a href=#concept-cell title=concept-cell>cell</a> cannot cover slots that
+ are from two or more <a href=#concept-row-group title=concept-row-group>row
+ groups</a>. It is, however, possible for a cell to be in multiple
+ <a href=#concept-column-group title=concept-column-group>column groups</a>. All the
+ slots that form part of one cell are part of zero or one <a href=#concept-row-group title=concept-row-group>row groups</a> and zero or more <a href=#concept-column-group title=concept-column-group>column groups</a>.</p>
+
+ <p>In addition to <a href=#concept-cell title=concept-cell>cells</a>, <a href=#concept-column title=concept-column>columns</a>, <a href=#concept-row title=concept-row>rows</a>, <a href=#concept-row-group title=concept-row-group>row
+ groups</a>, and <a href=#concept-column-group title=concept-column-group>column
+ groups</a>, <a href=#concept-table title=concept-table>tables</a> can have a
+ <code><a href=#the-caption-element>caption</a></code> element associated with them. This gives the
+ table a heading, or legend.</p>
+
+ <p>A <dfn id=table-model-error>table model error</dfn> is an error with the data
+ represented by <code><a href=#the-table-element>table</a></code> elements and their
+ descendants. Documents must not have table model errors.</p>
+
+
+ <h5 id=forming-a-table><span class=secno>4.9.12.1 </span>Forming a table</h5>
+
+ <p>To determine which elements correspond to which slots in a <a href=#concept-table title=concept-table>table</a> associated with a
+ <code><a href=#the-table-element>table</a></code> element, to determine the dimensions of the table
+ (<var title="">x<sub title="">width</sub></var> and <var title="">y<sub title="">height</sub></var>), and to determine if
+ there are any <a href=#table-model-error title="table model error">table model
+ errors</a>, user agents must use the following algorithm:</p>
+
+ <ol><li>
+ <p>Let <var title="">x<sub title="">width</sub></var> be zero.</p>
+ </li>
+
+ <li>
+ <p>Let <var title="">y<sub title="">height</sub></var> be zero.</p>
+ </li>
+
+ <li>
+
+ <p>Let <var title="">pending <code><a href=#the-tfoot-element>tfoot</a></code> elements</var> be
+ a list of <code><a href=#the-tfoot-element>tfoot</a></code> elements, initially empty.</p>
+
+ </li>
+
+ <li>
+ <p>Let <var title="">the table</var> be the <a href=#concept-table title=concept-table>table</a> represented by the
+ <code><a href=#the-table-element>table</a></code> element. The <var title="">x<sub title="">width</sub></var> and <var title="">y<sub title="">height</sub></var> variables give <var title="">the
+ table</var>'s dimensions. <var title="">The table</var> is
+ initially empty.</p>
+ </li>
+
+ <li>
+
+ <!-- this step is here just so that we can be sure to have a first
+ element in the next step, so that we can set up the "advance"
+ exception-handling thingy below; otherwise it'd be more
+ complicated. it's not a perf optimization per se. -->
+
+ <p>If the <code><a href=#the-table-element>table</a></code> element has no children elements,
+ then return <var title="">the table</var> (which will be empty),
+ and abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Associate the first <code><a href=#the-caption-element>caption</a></code> element child of the
+ <code><a href=#the-table-element>table</a></code> element with <var title="">the table</var>. If
+ there are no such children, then it has no associated
+ <code><a href=#the-caption-element>caption</a></code> element.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let the <var title="">current element</var> be the first
+ element child of the <code><a href=#the-table-element>table</a></code> element.</p>
+
+ <p>If a step in this algorithm ever requires the <var title="">current element</var> to be <dfn id=concept-table-advance title=concept-table-advance>advanced to the next child of the
+ <code>table</code></dfn> when there is no such next child, then
+ the user agent must jump to the step labeled <i>end</i>, near the
+ end of this algorithm.</p>
+
+ </li>
+
+ <li>
+
+ <p>While the <var title="">current element</var> is not one of the
+ following elements, <a href=#concept-table-advance title=concept-table-advance>advance</a> the <var title="">current element</var> to the next child of the
+ <code><a href=#the-table-element>table</a></code>:</p>
+
+ <ul class=brief><li><code><a href=#the-colgroup-element>colgroup</a></code></li>
+ <li><code><a href=#the-thead-element>thead</a></code></li>
+ <li><code><a href=#the-tbody-element>tbody</a></code></li>
+ <li><code><a href=#the-tfoot-element>tfoot</a></code></li>
+ <li><code><a href=#the-tr-element>tr</a></code></li>
+ </ul></li>
+
+ <li>
+
+ <p>If the <var title="">current element</var> is a
+ <code><a href=#the-colgroup-element>colgroup</a></code>, follow these substeps:</p>
+
+ <ol><li>
+
+ <p><i>Column groups</i>: Process the <var title="">current
+ element</var> according to the appropriate case below:</p>
+
+ <dl class=switch><dt>If the <var title="">current element</var> has any
+ <code><a href=#the-col-element>col</a></code> element children</dt>
+
+ <dd>
+
+ <p>Follow these steps:</p>
+
+ <ol><li>
+
+ <p>Let <var title="">x<sub title="">start</sub></var> have
+ the value of <span title=""><var title="">x<sub title="">width</sub></var></span>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let the <var title="">current column</var> be the first
+ <code><a href=#the-col-element>col</a></code> element child of the <code><a href=#the-colgroup-element>colgroup</a></code>
+ element.</p>
+
+ </li>
+
+ <li>
+
+ <p><i>Columns</i>: If the <var title="">current column</var>
+ <code><a href=#the-col-element>col</a></code> element has a <code title=attr-col-span><a href=#attr-col-span>span</a></code> attribute, then parse its
+ value using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a>.</p>
+
+ <p>If the result of parsing the value is not an error or
+ zero, then let <var title="">span</var> be that value.</p>
+
+ <p>Otherwise, if the <code><a href=#the-col-element>col</a></code> element has no <code title=attr-col-span><a href=#attr-col-span>span</a></code> attribute, or if trying to
+ parse the attribute's value resulted in an error or zero,
+ then let <var title="">span</var> be 1.</p>
+
+ </li>
+
+ <li>
+
+ <p>Increase <var title="">x<sub title="">width</sub></var> by
+ <var title="">span</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let the last <var title="">span</var> <a href=#concept-column title=concept-column>columns</a> in <var title="">the
+ table</var> correspond to the <var title="">current
+ column</var> <code><a href=#the-col-element>col</a></code> element.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">current column</var> is not the last
+ <code><a href=#the-col-element>col</a></code> element child of the <code><a href=#the-colgroup-element>colgroup</a></code>
+ element, then let the <var title="">current column</var> be
+ the next <code><a href=#the-col-element>col</a></code> element child of the
+ <code><a href=#the-colgroup-element>colgroup</a></code> element, and return to the step
+ labeled <i>columns</i>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let all the last <a href=#concept-column title=concept-column>columns</a> in <var title="">the
+ table</var> from <span title="">x=<var title="">x<sub title="">start</sub></var></span> to <span title="">x=<var title="">x<sub title="">width</sub></var>-1</span> form a
+ new <a href=#concept-column-group title=concept-column-group>column group</a>,
+ anchored at the slot (<var title="">x<sub title="">start</sub></var>, 0), with width <span title=""><var title="">x<sub title="">width</sub></var>-<var title="">x<sub title="">start</sub></var></span>,
+ corresponding to the <code><a href=#the-colgroup-element>colgroup</a></code> element.</p>
+
+ </li>
+
+ </ol></dd>
+
+
+ <dt>If the <var title="">current element</var> has no
+ <code><a href=#the-col-element>col</a></code> element children</dt>
+
+ <dd>
+
+ <ol><li>
+
+ <p>If the <code><a href=#the-colgroup-element>colgroup</a></code> element has a <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> attribute, then parse
+ its value using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a>.</p>
+
+ <p>If the result of parsing the value is not an error or
+ zero, then let <var title="">span</var> be that value.</p>
+
+ <p>Otherwise, if the <code><a href=#the-colgroup-element>colgroup</a></code> element has no
+ <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> attribute, or
+ if trying to parse the attribute's value resulted in an
+ error or zero, then let <var title="">span</var> be 1.</p>
+
+ </li>
+
+ <li>
+
+ <p>Increase <var title="">x<sub title="">width</sub></var> by
+ <var title="">span</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let the last <var title="">span</var> <a href=#concept-column title=concept-column>columns</a> in <var title="">the
+ table</var> form a new <a href=#concept-column-group title=concept-column-group>column group</a>, anchored
+ at the slot (<span title=""><var title="">x<sub title="">width</sub></var>-<var title="">span</var></span>,
+ 0), with width <var title="">span</var>, corresponding to
+ the <code><a href=#the-colgroup-element>colgroup</a></code> element.</p>
+
+ </li>
+
+ </ol></dd>
+
+ </dl></li>
+
+ <li>
+
+ <p><a href=#concept-table-advance title=concept-table-advance>Advance</a> the <var title="">current element</var> to the next child of the
+ <code><a href=#the-table-element>table</a></code>.</p>
+
+ </li>
+
+ <li>
+
+ <p>While the <var title="">current element</var> is not one of
+ the following elements, <a href=#concept-table-advance title=concept-table-advance>advance</a> the <var title="">current element</var> to the next child of the
+ <code><a href=#the-table-element>table</a></code>:</p>
+
+ <ul class=brief><li><code><a href=#the-colgroup-element>colgroup</a></code></li>
+ <li><code><a href=#the-thead-element>thead</a></code></li>
+ <li><code><a href=#the-tbody-element>tbody</a></code></li>
+ <li><code><a href=#the-tfoot-element>tfoot</a></code></li>
+ <li><code><a href=#the-tr-element>tr</a></code></li>
+ </ul></li>
+
+ <li>
+
+ <p>If the <var title="">current element</var> is a
+ <code><a href=#the-colgroup-element>colgroup</a></code> element, jump to the step labeled
+ <i>column groups</i> above.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li>
+
+ <p>Let <var title="">y<sub title="">current</sub></var> be
+ zero.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let the <var title="">list of downward-growing cells</var> be
+ an empty list.</p>
+
+ </li>
+
+ <li>
+
+ <p><i>Rows</i>: While the <var title="">current element</var> is
+ not one of the following elements, <a href=#concept-table-advance title=concept-table-advance>advance</a> the <var title="">current element</var> to the next child of the
+ <code><a href=#the-table-element>table</a></code>:</p>
+
+ <ul class=brief><li><code><a href=#the-thead-element>thead</a></code></li>
+ <li><code><a href=#the-tbody-element>tbody</a></code></li>
+ <li><code><a href=#the-tfoot-element>tfoot</a></code></li>
+ <li><code><a href=#the-tr-element>tr</a></code></li>
+ </ul></li>
+
+ <li>
+
+ <p>If the <var title="">current element</var> is a
+ <code><a href=#the-tr-element>tr</a></code>, then run the <a href=#algorithm-for-processing-rows>algorithm for processing
+ rows</a>, <a href=#concept-table-advance title=concept-table-advance>advance</a>
+ the <var title="">current element</var> to the next child of the
+ <code><a href=#the-table-element>table</a></code>, and return to the step labeled
+ <i>rows</i>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Run the <a href=#algorithm-for-ending-a-row-group>algorithm for ending a row group</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <var title="">current element</var> is a
+ <code><a href=#the-tfoot-element>tfoot</a></code>, then add that element to the list of <var title="">pending <code><a href=#the-tfoot-element>tfoot</a></code> elements</var>, <a href=#concept-table-advance title=concept-table-advance>advance</a> the <var title="">current element</var> to the next child of the
+ <code><a href=#the-table-element>table</a></code>, and return to the step labeled
+ <i>rows</i>.</p>
+
+ </li>
+
+ <li>
+
+ <p>The <var title="">current element</var> is either a
+ <code><a href=#the-thead-element>thead</a></code> or a <code><a href=#the-tbody-element>tbody</a></code>.</p>
+
+ <p>Run the <a href=#algorithm-for-processing-row-groups>algorithm for processing row groups</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#concept-table-advance title=concept-table-advance>Advance</a> the <var title="">current element</var> to the next child of the
+ <code><a href=#the-table-element>table</a></code>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Return to the step labeled <i>rows</i>.</p>
+
+ </li>
+
+ <li>
+
+ <p><i>End</i>: For each <code><a href=#the-tfoot-element>tfoot</a></code> element in the list of
+ <var title="">pending <code><a href=#the-tfoot-element>tfoot</a></code> elements</var>, in tree
+ order, run the <a href=#algorithm-for-processing-row-groups>algorithm for processing row
+ groups</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there exists a <a href=#concept-row title=concept-row>row</a> or <a href=#concept-column title=concept-column>column</a> in <var title="">the
+ table</var> containing only <a href=#concept-slots title=concept-slots>slots</a> that do not have a <a href=#concept-cell title=concept-cell>cell</a> anchored to them, then this is a
+ <a href=#table-model-error>table model error</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Return <var title="">the table</var>.</p>
+
+ </li>
+
+ </ol><p>The <dfn id=algorithm-for-processing-row-groups>algorithm for processing row groups</dfn>, which is
+ invoked by the set of steps above for processing
+ <code><a href=#the-thead-element>thead</a></code>, <code><a href=#the-tbody-element>tbody</a></code>, and <code><a href=#the-tfoot-element>tfoot</a></code>
+ elements, is:</p>
+
+ <ol><li>
+
+ <p>Let <var title="">y<sub title="">start</sub></var> have the
+ value of <var title="">y<sub title="">height</sub></var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>For each <code><a href=#the-tr-element>tr</a></code> element that is a child of the element
+ being processed, in tree order, run the <a href=#algorithm-for-processing-rows>algorithm for
+ processing rows</a>.</p>
+
+ </li>
+
+ <li>
+
+ <!-- if we added any rows, make them part of a row group -->
+ <p>If <span title=""><var title="">y<sub title="">height</sub></var>&nbsp;&gt;&nbsp;<var title="">y<sub title="">start</sub></var></span>, then let all the last <a href=#concept-row title=concept-row>rows</a> in <var title="">the table</var>
+ from <span title="">y=<var title="">y<sub title="">start</sub></var></span>
+ to <span title="">y=<var title="">y<sub title="">height</sub></var>-1</span> form a new <a href=#concept-row-group title=concept-row-group>row group</a>, anchored at the slot
+ with coordinate (0, <var title="">y<sub title="">start</sub></var>), with height <span title=""><var title="">y<sub title="">height</sub></var>-<var title="">y<sub title="">start</sub></var></span>, corresponding to the element
+ being processed.</p>
+
+ </li>
+
+ <li>
+
+ <p>Run the <a href=#algorithm-for-ending-a-row-group>algorithm for ending a row group</a>.</p>
+
+ </li>
+
+ </ol><p>The <dfn id=algorithm-for-ending-a-row-group>algorithm for ending a row group</dfn>, which is invoked
+ by the set of steps above when starting and ending a block of rows,
+ is:</p>
+
+ <ol><li>
+
+ <p>While <var title="">y<sub title="">current</sub></var> is less
+ than <var title="">y<sub title="">height</sub></var>, follow these
+ steps:</p>
+
+ <ol><li>
+
+ <p>Run the <a href=#algorithm-for-growing-downward-growing-cells>algorithm for growing downward-growing
+ cells</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Increase <var title="">y<sub title="">current</sub></var> by
+ 1.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li>
+
+ <p>Empty the <var title="">list of downward-growing
+ cells</var>.</p>
+
+ </li>
+
+ </ol><p>The <dfn id=algorithm-for-processing-rows>algorithm for processing rows</dfn>, which is invoked by
+ the set of steps above for processing <code><a href=#the-tr-element>tr</a></code> elements,
+ is:</p>
+
+ <ol><li>
+
+ <p>If <var title="">y<sub title="">height</sub></var> is equal to
+ <var title="">y<sub title="">current</sub></var>, then increase
+ <var title="">y<sub title="">height</sub></var> by 1. (<var title="">y<sub title="">current</sub></var> is never
+ <em>greater</em> than <var title="">y<sub title="">height</sub></var>.)</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">x<sub title="">current</sub></var> be 0.</p>
+
+ </li>
+
+ <li>
+
+ <p>Run the <a href=#algorithm-for-growing-downward-growing-cells>algorithm for growing downward-growing
+ cells</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <code><a href=#the-tr-element>tr</a></code> element being processed has no
+ <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element children, then increase
+ <var title="">y<sub title="">current</sub></var> by 1, abort this
+ set of steps, and return to the algorithm above.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">current cell</var> be the first
+ <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element in the <code><a href=#the-tr-element>tr</a></code>
+ element being processed.</p>
+
+ </li>
+
+ <li>
+
+ <p><i>Cells</i>: While <var title="">x<sub title="">current</sub></var> is less than <var title="">x<sub title="">width</sub></var> and the slot with coordinate (<var title="">x<sub title="">current</sub></var>, <var title="">y<sub title="">current</sub></var>) already has a cell assigned to it,
+ increase <var title="">x<sub title="">current</sub></var> by
+ 1.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">x<sub title="">current</sub></var> is equal to
+ <var title="">x<sub title="">width</sub></var>, increase <var title="">x<sub title="">width</sub></var> by 1. (<var title="">x<sub title="">current</sub></var> is never
+ <em>greater</em> than <var title="">x<sub title="">width</sub></var>.)</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <var title="">current cell</var> has a <code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code> attribute, then <a href=#rules-for-parsing-non-negative-integers title="rules for parsing non-negative integers">parse that
+ attribute's value</a>, and let <var title="">colspan</var> be
+ the result.</p>
+
+ <p>If parsing that value failed, or returned zero, or if the
+ attribute is absent, then let <var title="">colspan</var> be 1,
+ instead.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <var title="">current cell</var> has a <code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>rowspan</a></code> attribute, then <a href=#rules-for-parsing-non-negative-integers title="rules for
+ parsing non-negative integers">parse that attribute's
+ value</a>, and let <var title="">rowspan</var> be the
+ result.</p>
+
+ <p>If parsing that value failed or if the attribute is absent,
+ then let <var title="">rowspan</var> be 1, instead.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">rowspan</var> is zero, then let <var title="">cell grows downward</var> be true, and set <var title="">rowspan</var> to 1. Otherwise, let <var title="">cell
+ grows downward</var> be false.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <span title=""><var title="">x<sub title="">width</sub></var>&nbsp;&lt;&nbsp;<var title="">x<sub title="">current</sub></var>+<var title="">colspan</var></span>,
+ then let <var title="">x<sub title="">width</sub></var> be
+ <span title=""><var title="">x<sub title="">current</sub></var>+<var title="">colspan</var></span>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <span title=""><var title="">y<sub title="">height</sub></var>&nbsp;&lt;&nbsp;<var title="">y<sub title="">current</sub></var>+<var title="">rowspan</var></span>,
+ then let <var title="">y<sub title="">height</sub></var> be
+ <span title=""><var title="">y<sub title="">current</sub></var>+<var title="">rowspan</var></span>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let the slots with coordinates (<var title="">x</var>, <var title="">y</var>) such that <span title=""><var title="">x<sub title="">current</sub></var>&nbsp;&le;&nbsp;<var title="">x</var>&nbsp;&lt;&nbsp;<var title="">x<sub title="">current</sub></var>+<var title="">colspan</var></span>
+ and <span title=""><var title="">y<sub title="">current</sub></var>&nbsp;&le;&nbsp;<var title="">y</var>&nbsp;&lt;&nbsp;<var title="">y<sub title="">current</sub></var>+<var title="">rowspan</var></span> be
+ covered by a new <a href=#concept-cell title=concept-cell>cell</a> <var title="">c</var>, anchored at (<var title="">x<sub title="">current</sub></var>, <var title="">y<sub title="">current</sub></var>), which has width <var title="">colspan</var> and height <var title="">rowspan</var>,
+ corresponding to the <var title="">current cell</var> element.</p>
+
+ <p>If the <var title="">current cell</var> element is a
+ <code><a href=#the-th-element>th</a></code> element, let this new cell <var title="">c</var>
+ be a header cell; otherwise, let it be a data cell.</p>
+
+ <p>To establish which header cells apply to the <var title="">current cell</var> element, use the <a href=#algorithm-for-assigning-header-cells>algorithm for
+ assigning header cells</a> described in the next section.</p>
+
+ <p>If any of the slots involved already had a <a href=#concept-cell title=concept-cell>cell</a> covering them, then this is a
+ <a href=#table-model-error>table model error</a>. Those slots now have two cells
+ overlapping.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">cell grows downward</var> is true, then add
+ the tuple {<var title="">c</var>, <var title="">x<sub title="">current</sub></var>, <var title="">colspan</var>} to the
+ <var title="">list of downward-growing cells</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Increase <var title="">x<sub title="">current</sub></var> by
+ <var title="">colspan</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">current cell</var> is the last <code><a href=#the-td-element>td</a></code>
+ or <code><a href=#the-th-element>th</a></code> element in the <code><a href=#the-tr-element>tr</a></code> element being
+ processed, then increase <var title="">y<sub title="">current</sub></var> by 1, abort this set of steps, and
+ return to the algorithm above.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">current cell</var> be the next
+ <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element in the <code><a href=#the-tr-element>tr</a></code>
+ element being processed.</p>
+
+ </li>
+
+ <li>
+
+ <p>Return to the step labelled <i>cells</i>.</p>
+
+ </li>
+
+ </ol><p>When the algorithms above require the user agent to run the
+ <dfn id=algorithm-for-growing-downward-growing-cells>algorithm for growing downward-growing cells</dfn>, the user
+ agent must, for each {<var title="">cell</var>, <var title="">cell<sub title="">x</sub></var>, <var title="">width</var>}
+ tuple in the <var title="">list of downward-growing cells</var>, if
+ any, extend the <a href=#concept-cell title=concept-cell>cell</a> <var title="">cell</var> so that it also covers the slots with
+ coordinates (<var title="">x</var>, <var title="">y<sub title="">current</sub></var>), where <span title=""><var title="">cell<sub title="">x</sub></var>&nbsp;&le;&nbsp;<var title="">x</var>&nbsp;&lt;&nbsp;<var title="">cell<sub title="">x</sub></var>+<var title="">width</var></span>.</p>
+
+
+
+
+ <h5 id=header-and-data-cell-semantics><span class=secno>4.9.12.2 </span>Forming relationships between data cells and header cells</h5>
+
+ <p>Each cell can be assigned zero or more header cells. The
+ <dfn id=algorithm-for-assigning-header-cells>algorithm for assigning header cells</dfn> to a cell <var title="">principal cell</var> is as follows.</p>
+
+ <ol><!-- INITIALIZATION --><li>
+
+ <p>Let <var title="">header list</var> be an empty list of
+ cells.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let (<var title="">principal<sub title="">x</sub></var>, <var title="">principal<sub title="">y</sub></var>) be the coordinate
+ of the slot to which the <var title="">principal cell</var> is
+ anchored.</p>
+
+ </li>
+
+ <li>
+
+ <dl class=switch><dt>If the <var title="">principal cell</var> has a <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attribute specified</dt>
+
+ <dd>
+
+ <!-- HEADERS="" -->
+
+ <ol><li>
+
+ <p>Take the value of the <var title="">principal cell</var>'s
+ <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attribute and
+ <a href=#split-a-string-on-spaces title="split a string on spaces">split it on
+ spaces</a>, letting <var title="">id list</var> be the list
+ of tokens obtained.</p>
+
+ </li>
+
+ <li>
+
+ <!-- support headers="" to <td> for legacy compat -->
+ <!-- note that it's not conforming though -->
+ <p>For each token in the <var title="">id list</var>, if the
+ first element in the <code><a href=#document>Document</a></code> with an <a href=#concept-id title=concept-id>ID</a> equal to
+ the token is a cell in the same <a href=#concept-table title=concept-table>table</a>, and that cell is not the
+ <var title="">principal cell</var>, then add that cell to <var title="">header list</var>.</p>
+
+ </li>
+
+ </ol></dd>
+
+
+ <dt>If <var title="">principal cell</var> does not have a <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attribute specified</dt>
+
+ <dd>
+
+ <ol><li>
+
+ <p>Let <var title="">principal<sub title="">width</sub></var>
+ be the width of the <var title="">principal cell</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">principal<sub title="">height</sub></var>
+ be the height of the <var title="">principal cell</var>.</p>
+
+ </li>
+
+
+ <!-- HORIZONTAL -->
+
+ <li>
+
+ <p>For each value of <var title="">y</var> from <var title="">principal<sub title="">y</sub></var> to <span title=""><var title="">principal<sub title="">y</sub></var>+<var title="">principal<sub title="">height</sub></var>-1</span>,
+ run the <a href=#internal-algorithm-for-scanning-and-assigning-header-cells>internal algorithm for scanning and assigning
+ header cells</a>, with the <var title="">principal
+ cell</var>, the <var title="">header list</var>, the initial
+ coordinate (<var title="">principal<sub title="">x</sub></var>,<var title="">y</var>), and the
+ increments <span title="">&Delta;<var title="">x</var>=&minus;1</span>
+ and <span title="">&Delta;<var title="">y</var>=0</span>.</p>
+
+ </li>
+
+
+ <!-- VERTICAL -->
+
+ <li>
+
+ <p>For each value of <var title="">x</var> from <var title="">principal<sub title="">x</sub></var> to <span title=""><var title="">principal<sub title="">x</sub></var>+<var title="">principal<sub title="">width</sub></var>-1</span>,
+ run the <a href=#internal-algorithm-for-scanning-and-assigning-header-cells>internal algorithm for scanning and assigning
+ header cells</a>, with the <var title="">principal
+ cell</var>, the <var title="">header list</var>, the initial
+ coordinate (<var title="">x</var>,<var title="">principal<sub title="">y</sub></var>), and the increments <span title="">&Delta;<var title="">x</var>=0</span> and <span title="">&Delta;<var title="">y</var>=&minus;1</span>.</p>
+
+ </li>
+
+
+ <!-- ROW GROUP HEADERS -->
+
+ <li>
+
+ <p>If the <var title="">principal cell</var> is anchored in a
+ <a href=#concept-row-group title=concept-row-group>row group</a>, then add all
+ header cells that are <a href=#row-group-header title="row group header">row group
+ headers</a> and are anchored in the same row group with an
+ <var title="">x</var>-coordinate less than or equal to
+ <span title=""><var title="">principal<sub title="">x</sub></var>+<var title="">principal<sub title="">width</sub></var>-1</span> and
+ a <var title="">y</var>-coordinate less than or equal to
+ <span title=""><var title="">principal<sub title="">y</sub></var>+<var title="">principal<sub title="">height</sub></var>-1</span> to
+ <var title="">header list</var>.</p>
+
+ <!-- this might introduce principal accidentally; fixed below -->
+
+ </li>
+
+
+ <!-- COLUMN GROUP HEADERS -->
+
+ <li>
+
+ <p>If the <var title="">principal cell</var> is anchored in a
+ <a href=#concept-column-group title=concept-column-group>column group</a>, then
+ add all header cells that are <a href=#column-group-header title="column group
+ header">column group headers</a> and are anchored in the
+ same column group with an <var title="">x</var>-coordinate
+ less than or equal to <span title=""><var title="">principal<sub title="">x</sub></var>+<var title="">principal<sub title="">width</sub></var>-1</span> and a <var title="">y</var>-coordinate less than or equal to <span title=""><var title="">principal<sub title="">y</sub></var>+<var title="">principal<sub title="">height</sub></var>-1</span> to
+ <var title="">header list</var>.</p>
+
+ <!-- this might introduce principal accidentally; fixed below -->
+
+ </li>
+
+ </ol></dd>
+
+ </dl></li>
+
+
+ <!-- CLEANUP -->
+
+ <li>
+
+ <p>Remove all the <a href=#empty-cell title="empty cell">empty cells</a> from
+ the <var title="">header list</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Remove any duplicates from the <var title="">header
+ list</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Remove <var title="">principal cell</var> from the <var title="">header list</var> if it is there.</p> <!-- see "might
+ introduce principal accidentally" above -->
+
+ </li>
+
+ <li>
+
+ <p>Assign the headers in the <var title="">header list</var> to
+ the <var title="">principal cell</var>.</p>
+
+ </li>
+
+ </ol><p>The <dfn id=internal-algorithm-for-scanning-and-assigning-header-cells>internal algorithm for scanning and assigning header
+ cells</dfn>, given a <var title="">principal cell</var>, a <var title="">header list</var>, an initial coordinate (<var title="">initial<sub title="">x</sub></var>, <var title="">initial<sub title="">y</sub></var>), and &Delta;<var title="">x</var> and &Delta;<var title="">y</var> increments, is as
+ follows:</p>
+
+ <ol><li>
+
+ <p>Let <var title="">x</var> equal <var title="">initial<sub title="">x</sub></var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">y</var> equal <var title="">initial<sub title="">y</sub></var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">opaque headers</var> be an empty list of
+ cells.</p>
+
+ </li>
+
+ <li>
+
+ <dl class=switch><dt>If <var title="">principal cell</var> is a header cell</dt>
+
+ <dd><p>Let <var title="">in header block</var> be true, and let
+ <var title="">headers from current header block</var> be a list
+ of cells containing just the <var title="">principal
+ cell</var>.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd><p>Let <var title="">in header block</var> be false and let
+ <var title="">headers from current header block</var> be an
+ empty list of cells.</p>
+
+ </dl></li>
+
+ <li>
+
+ <p><i>Loop</i>: Increment <var title="">x</var> by &Delta;<var title="">x</var>; increment <var title="">y</var> by &Delta;<var title="">y</var>.</p>
+
+ <p class=note>For each invocation of this algorithm, one of
+ &Delta;<var title="">x</var> and &Delta;<var title="">y</var> will
+ be &minus;1, and the other will be 0.</p>
+
+ </li>
+
+ <li>
+
+ <p>If either <var title="">x</var> or <var title="">y</var> is
+ less than 0, then abort this internal algorithm.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there is no cell covering slot (<var title="">x</var>,
+ <var title="">y</var>), or if there is more than one cell
+ covering slot (<var title="">x</var>, <var title="">y</var>),
+ return to the substep labeled <i>loop</i>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">current cell</var> be the cell covering
+ slot (<var title="">x</var>, <var title="">y</var>).</p>
+
+ </li>
+
+ <li>
+
+ <dl class=switch><dt>If <var title="">current cell</var> is a header cell</dt>
+
+ <dd>
+
+ <ol><li><p>Set <var title="">in header block</var> to
+ true.</li>
+
+ <li><p>Add <var title="">current cell</var> to <var title="">headers from current header block</var>.</li>
+
+ <li><p>Let <var title="">blocked</var> be false.</li>
+
+ <li>
+
+ <dl class=switch><dt>If &Delta;<var title="">x</var> is 0</dt>
+
+ <dd>
+
+ <p>If there are any cells in the <var title="">opaque
+ headers</var> list anchored with the same <var title="">x</var>-coordinate as the <var title="">current
+ cell</var>, and with the same width as <var title="">current
+ cell</var>, then let <var title="">blocked</var> be
+ true.</p>
+
+ <p>If the <var title="">current cell</var> is not a
+ <a href=#column-header>column header</a>, then let <var title="">blocked</var> be true.</p>
+
+ </dd>
+
+ <dt>If &Delta;<var title="">y</var> is 0</dt>
+
+ <dd>
+
+ <p>If there are any cells in the <var title="">opaque
+ headers</var> list anchored with the same <var title="">y</var>-coordinate as the <var title="">current
+ cell</var>, and with the same height as <var title="">current cell</var>, then let <var title="">blocked</var> be true.</p>
+
+ <p>If the <var title="">current cell</var> is not a
+ <a href=#row-header>row header</a>, then let <var title="">blocked</var> be true.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li><p>If <var title="">blocked</var> is false, then add the
+ <var title="">current cell</var> to the <var title="">headers
+ list</var>.</li>
+
+ </ol></dd>
+
+ <dt>If <var title="">current cell</var> is a data cell and <var title="">in header block</var> is true</dt>
+
+ <dd><p>Set <var title="">in header block</var> to false. Add
+ all the cells in <var title="">headers from current header
+ block</var> to the <var title="">opaque headers</var> list, and
+ empty the <var title="">headers from current header block</var>
+ list.</p>
+
+ </dl></li>
+
+ <li>
+
+ <p>Return to the step labeled <i>loop</i>.</p>
+
+ </li>
+
+ </ol><p>A header cell anchored at the slot with coordinate (<var title="">x</var>, <var title="">y</var>) with width <var title="">width</var> and height <var title="">height</var> is said
+ to be a <dfn id=column-header>column header</dfn> if any of the following conditions
+ are true:</p>
+
+ <ul><li>The cell's <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute
+ is in the <a href=#attr-th-scope-col title=attr-th-scope-col>column</a> state, or</li>
+
+ <li>The cell's <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute
+ is in the <a href=#attr-th-scope-auto title=attr-th-scope-auto>auto</a> state, and
+ there are no data cells in any of the cells covering slots with
+ <var title="">y</var>-coordinates <var title="">y</var>
+ .. <span title=""><var title="">y</var>+<var title="">height</var>-1</span>.</li>
+
+ </ul><p>A header cell anchored at the slot with coordinate (<var title="">x</var>, <var title="">y</var>) with width <var title="">width</var> and height <var title="">height</var> is said
+ to be a <dfn id=row-header>row header</dfn> if any of the following conditions
+ are true:</p>
+
+ <ul><li>The cell's <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute
+ is in the <a href=#attr-th-scope-row title=attr-th-scope-row>row</a> state, or</li>
+
+ <li>The cell's <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute
+ is in the <a href=#attr-th-scope-auto title=attr-th-scope-auto>auto</a> state, the
+ cell is not a <a href=#column-header>column header</a>, and there are no data
+ cells in any of the cells covering slots with <var title="">x</var>-coordinates <var title="">x</var> .. <span title=""><var title="">x</var>+<var title="">width</var>-1</span>.</li>
+
+ </ul><p>A header cell is said to be a <dfn id=column-group-header>column group header</dfn> if
+ its <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute is in the
+ <a href=#attr-th-scope-colgroup title=attr-th-scope-colgroup>column group</a> state.</p>
+
+ <p>A header cell is said to be a <dfn id=row-group-header>row group header</dfn> if
+ its <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute is in the
+ <a href=#attr-th-scope-rowgroup title=attr-th-scope-rowgroup>row group</a> state.</p>
+
+ <p>A cell is said to be an <dfn id=empty-cell>empty cell</dfn> if it contains no
+ elements and its text content, if any, consists only of
+ <a href=#white_space>White_Space</a> characters.</p>
+
+ </div>
+
+
+ <h4 id=examples-0><span class=secno>4.9.13 </span>Examples</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The following shows how might one mark up the bottom part of
+ table 45 of the <cite>Smithsonian physical tables, Volume
+ 71</cite>:</p>
+
+ <!-- Smithsonian physical tables, Volume 71: By Smithsonian Institution, Frederick Eugene Fowle; page 76 -->
+ <!-- from the reprint of the seventh revised edition; publication 2539, published 1921 -->
+ <pre>&lt;table&gt;
+ &lt;caption&gt;Specification values: &lt;b&gt;Steel&lt;/b&gt;, &lt;b&gt;Castings&lt;/b&gt;,
+ Ann. A.S.T.M. A27-16, Class B;* P max. 0.06; S max. 0.05.&lt;/caption&gt;
+ &lt;thead&gt;
+ &lt;tr&gt;
+ &lt;th rowspan=2&gt;Grade.&lt;/th&gt;
+ &lt;th rowspan=2&gt;Yield Point.&lt;/th&gt;
+ &lt;th colspan=2&gt;Ultimate tensile strength&lt;/th&gt;
+ &lt;th rowspan=2&gt;Per cent elong. 50.8mm or 2 in.&lt;/th&gt;
+ &lt;th rowspan=2&gt;Per cent reduct. area.&lt;/th&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;th&gt;kg/mm&lt;sup&gt;2&lt;/sup&gt;&lt;/th&gt;
+ &lt;th&gt;lb/in&lt;sup&gt;2&lt;/sup&gt;&lt;/th&gt;
+ &lt;/tr&gt;
+ &lt;/thead&gt;
+ &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;td&gt;Hard&lt;/td&gt;
+ &lt;td&gt;0.45 ultimate&lt;/td&gt;
+ &lt;td&gt;56.2&lt;/td&gt;
+ &lt;td&gt;80,000&lt;/td&gt;
+ &lt;td&gt;15&lt;/td&gt;
+ &lt;td&gt;20&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td&gt;Medium&lt;/td&gt;
+ &lt;td&gt;0.45 ultimate&lt;/td&gt;
+ &lt;td&gt;49.2&lt;/td&gt;
+ &lt;td&gt;70,000&lt;/td&gt;
+ &lt;td&gt;18&lt;/td&gt;
+ &lt;td&gt;25&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td&gt;Soft&lt;/td&gt;
+ &lt;td&gt;0.45 ultimate&lt;/td&gt;
+ &lt;td&gt;42.2&lt;/td&gt;
+ &lt;td&gt;60,000&lt;/td&gt;
+ &lt;td&gt;22&lt;/td&gt;
+ &lt;td&gt;30&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/tbody&gt;
+&lt;/table&gt;</pre>
+
+ <p>This table could look like this:</p>
+
+ <table id=table-example-1><caption>Specification values: <b>Steel</b>, <b>Castings</b>,
+ Ann. A.S.T.M. A27-16, Class B;* P max. 0.06; S max. 0.05.</caption>
+ <thead><tr><th rowspan=2>Grade.</th>
+ <th rowspan=2>Yield Point.</th>
+ <th colspan=2>Ultimate tensile strength</th>
+ <th rowspan=2>Per cent elong. 50.8&nbsp;mm or&nbsp;2&nbsp;in.</th>
+ <th rowspan=2>Per cent reduct. area.</th>
+ <tr><th>kg/mm<sup>2</sup></th>
+ <th>lb/in<sup>2</sup></th>
+ <tbody><tr><td>Hard</td>
+ <td>0.45 ultimate</td>
+ <td>56.2</td>
+ <td>80,000</td>
+ <td>15</td>
+ <td>20</td>
+ <tr><td>Medium</td>
+ <td>0.45 ultimate</td>
+ <td>49.2</td>
+ <td>70,000</td>
+ <td>18</td>
+ <td>25</td>
+ <tr><td>Soft</td>
+ <td>0.45 ultimate</td>
+ <td>42.2</td>
+ <td>60,000</td>
+ <td>22</td>
+ <td>30</td>
+ </table><hr><p>The following shows how one might mark up the gross margin table
+ on page 46 of Apple, Inc's 10-K filing for fiscal year 2008:</p>
+
+ <pre>&lt;table&gt;
+ &lt;thead&gt;
+ &lt;tr&gt;
+ &lt;th&gt;
+ &lt;th&gt;2008
+ &lt;th&gt;2007
+ &lt;th&gt;2006
+ &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;th&gt;Net sales
+ &lt;td&gt;$ 32,479
+ &lt;td&gt;$ 24,006
+ &lt;td&gt;$ 19,315
+ &lt;tr&gt;
+ &lt;th&gt;Cost of sales
+ &lt;td&gt; 21,334
+ &lt;td&gt; 15,852
+ &lt;td&gt; 13,717
+ &lt;tbody&gt;
+ &lt;tr&gt;
+ &lt;th&gt;Gross margin
+ &lt;td&gt;$ 11,145
+ &lt;td&gt;$ 8,154
+ &lt;td&gt;$ 5,598
+ &lt;tfoot&gt;
+ &lt;tr&gt;
+ &lt;th&gt;Gross margin percentage
+ &lt;td&gt;34.3%
+ &lt;td&gt;34.0%
+ &lt;td&gt;29.0%
+&lt;/table&gt;</pre>
+
+<!--HTML4POLICE--><!--FORK-->
+ <p>This table could look like this:</p>
+
+ <table class="apple-table-examples e1"><thead><tr><th>
+ <th>2008
+ <th>2007
+ <th>2006
+ <tbody><tr><th>Net sales
+ <td>$ 32,479
+ <td>$ 24,006
+ <td>$ 19,315
+ <tr><th>Cost of sales
+ <td> 21,334
+ <td> 15,852
+ <td> 13,717
+ <tbody><tr><th>Gross margin
+ <td>$ 11,145
+ <td>$ 8,154
+ <td>$ 5,598
+ <tfoot><tr><th>Gross margin percentage
+ <td>34.3%
+ <td>34.0%
+ <td>29.0%
+ </table><!--HTML4POLICE--><!--FORK--><hr><p>The following shows how one might mark up the operating expenses
+ table from lower on the same page of that document:</p>
+
+ <pre>&lt;table&gt;
+ &lt;colgroup&gt; &lt;col&gt;
+ &lt;colgroup&gt; &lt;col&gt; &lt;col&gt; &lt;col&gt;
+ &lt;thead&gt;
+ &lt;tr&gt; &lt;th&gt; &lt;th&gt;2008 &lt;th&gt;2007 &lt;th&gt;2006
+ &lt;tbody&gt;
+ &lt;tr&gt; &lt;th scope=rowgroup&gt; Research and development
+ &lt;td&gt; $ 1,109 &lt;td&gt; $ 782 &lt;td&gt; $ 712
+ &lt;tr&gt; &lt;th scope=row&gt; Percentage of net sales
+ &lt;td&gt; 3.4% &lt;td&gt; 3.3% &lt;td&gt; 3.7%
+ &lt;tbody&gt;
+ &lt;tr&gt; &lt;th scope=rowgroup&gt; Selling, general, and administrative
+ &lt;td&gt; $ 3,761 &lt;td&gt; $ 2,963 &lt;td&gt; $ 2,433
+ &lt;tr&gt; &lt;th scope=row&gt; Percentage of net sales
+ &lt;td&gt; 11.6% &lt;td&gt; 12.3% &lt;td&gt; 12.6%
+&lt;/table&gt;</pre>
+
+ <p>This table could look like this:</p>
+
+ <table class="apple-table-examples e2"><thead><tr><th> <th>2008 <th>2007 <th>2006
+ <tbody><tr><th scope=rowgroup> Research and development
+ <td> $ 1,109 <td> $ 782 <td> $ 712
+ <tr><th scope=row> Percentage of net sales
+ <td> 3.4% <td> 3.3% <td> 3.7%
+ <tbody><tr><th scope=rowgroup> Selling, general, and administrative
+ <td> $ 3,761 <td> $ 2,963 <td> $ 2,433
+ <tr><th scope=row> Percentage of net sales
+ <td> 11.6% <td> 12.3% <td> 12.6%
+ </table><h3 id=forms><span class=secno>4.10 </span>Forms</h3>
+
+ <h4 id=introduction-2><span class=secno>4.10.1 </span>Introduction</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>A form is a component of a Web page that has form controls, such
+ as text fields, buttons, checkboxes, range controls, or color
+ pickers. A user can interact with such a form, providing data that
+ can then be sent to the server for further processing (e.g.
+ returning the results of a search or calculation). No client-side
+ scripting is needed in many cases, though an API is available so
+ that scripts can augment the user experience or use forms for
+ purposes other than submitting data to a server.</p>
+
+ <p>Writing a form consists of several steps, which can be performed
+ in any order: writing the user interface, implementing the
+ server-side processing, and configuring the user interface to
+ communicate with the server.</p>
+
+
+ <h5 id="writing-a-form's-user-interface"><span class=secno>4.10.1.1 </span>Writing a form's user interface</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>For the purposes of this brief introduction, we will create a
+ pizza ordering form.</p>
+
+ <p>Any form starts with a <code><a href=#the-form-element>form</a></code> element, inside which
+ are placed the controls. Most controls are represented by the
+ <code><a href=#the-input-element>input</a></code> element, which by default provides a one-line
+ text field. To label a control, the <code><a href=#the-label-element>label</a></code> element is
+ used; the label text and the control itself go inside the
+ <code><a href=#the-label-element>label</a></code> element. Each part of a form is considered a
+ <a href=#paragraph>paragraph</a>, and is typically separated from other parts
+ using <code><a href=#the-p-element>p</a></code> elements. Putting this together, here is how
+ one might ask for the customer's name:</p>
+
+ <pre><strong>&lt;form&gt;
+ &lt;p&gt;&lt;label&gt;Customer name: &lt;input&gt;&lt;/label&gt;&lt;/p&gt;
+&lt;/form&gt;</strong></pre>
+
+ <p>To let the user select the size of the pizza, we can use a set of
+ radio buttons. Radio buttons also use the <code><a href=#the-input-element>input</a></code>
+ element, this time with a <code title=attr-input-type><a href=#attr-input-type>type</a></code>
+ attribute with the value <code title=attr-input-type-radio><a href=#radio-button-state>radio</a></code>. To make the radio
+ buttons work as a group, they are given a common name using the
+ <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute. To group a batch
+ of controls together, such as, in this case, the radio buttons, one
+ can use the <code><a href=#the-fieldset-element>fieldset</a></code> element. The title of such a group
+ of controls is given by the first element in the
+ <code><a href=#the-fieldset-element>fieldset</a></code>, which has to be a <code><a href=#the-legend-element>legend</a></code>
+ element.</p>
+
+ <pre>&lt;form&gt;
+ &lt;p&gt;&lt;label&gt;Customer name: &lt;input&gt;&lt;/label&gt;&lt;/p&gt;
+<strong> &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Size &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Small &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Medium &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Large &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;</strong>
+&lt;/form&gt;</pre>
+
+ <p class=note>Changes from the previous step are highlighted.</p>
+
+ <p>To pick toppings, we can use checkboxes. These use the
+ <code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute with the value <code title=attr-input-type-checkbox><a href=#checkbox-state>checkbox</a></code>:</p>
+
+ <pre>&lt;form&gt;
+ &lt;p&gt;&lt;label&gt;Customer name: &lt;input&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Size &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Small &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Medium &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Large &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+<strong> &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Toppings &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Bacon &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Extra Cheese &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Onion &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Mushroom &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;</strong>
+&lt;/form&gt;</pre>
+
+ <p>The pizzeria for which this form is being written is always
+ making mistakes, so it needs a way to contact the customer. For this
+ purpose, we can use form controls specifically for telephone numbers
+ (<code><a href=#the-input-element>input</a></code> elements with their <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute set to <code title=attr-input-type-tel><a href=#telephone-state>tel</a></code>) and e-mail addresses
+ (<code><a href=#the-input-element>input</a></code> elements with their <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute set to <code title=attr-input-type-email><a href=#e-mail-state>email</a></code>):</p>
+
+ <pre>&lt;form&gt;
+ &lt;p&gt;&lt;label&gt;Customer name: &lt;input&gt;&lt;/label&gt;&lt;/p&gt;
+<strong> &lt;p&gt;&lt;label&gt;Telephone: &lt;input type=tel&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;E-mail address: &lt;input type=email&gt;&lt;/label&gt;&lt;/p&gt;</strong>
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Size &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Small &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Medium &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Large &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Toppings &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Bacon &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Extra Cheese &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Onion &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Mushroom &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+&lt;/form&gt;</pre>
+
+ <p>We can use an <code><a href=#the-input-element>input</a></code> element with its <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute set to <code title=attr-input-type-time><a href=#time-state>time</a></code> to ask for a delivery
+ time. Many of these form controls have attributes to control exactly
+ what values can be specified; in this case, three attributes of
+ particular interest are <code title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>, and <code title=attr-input-step><a href=#attr-input-step>step</a></code>. These set the minimum time, the
+ maximum time, and the interval between allowed values (in
+ seconds). This pizzeria only delivers between 11am and 9pm, and
+ doesn't promise anything better than 15 minute increments, which we
+ can mark up as follows:</p>
+
+ <pre>&lt;form&gt;
+ &lt;p&gt;&lt;label&gt;Customer name: &lt;input&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Telephone: &lt;input type=tel&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;E-mail address: &lt;input type=email&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Size &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Small &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Medium &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Large &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Toppings &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Bacon &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Extra Cheese &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Onion &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Mushroom &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+<strong> &lt;p&gt;&lt;label&gt;Preferred delivery time: &lt;input type=time min="11:00" max="21:00" step="900"&gt;&lt;/label&gt;&lt;/p&gt;</strong>
+&lt;/form&gt;</pre>
+
+ <p>The <code><a href=#the-textarea-element>textarea</a></code> element can be used to provide a
+ free-form text field. In this instance, we are going to use it to
+ provide a space for the customer to give delivery instructions:</p>
+
+ <pre>&lt;form&gt;
+ &lt;p&gt;&lt;label&gt;Customer name: &lt;input&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Telephone: &lt;input type=tel&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;E-mail address: &lt;input type=email&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Size &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Small &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Medium &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Large &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Toppings &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Bacon &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Extra Cheese &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Onion &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Mushroom &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;p&gt;&lt;label&gt;Preferred delivery time: &lt;input type=time min="11:00" max="21:00" step="900"&gt;&lt;/label&gt;&lt;/p&gt;
+<strong> &lt;p&gt;&lt;label&gt;Delivery instructions: &lt;textarea&gt;&lt;/textarea&gt;&lt;/label&gt;&lt;/p&gt;</strong>
+&lt;/form&gt;</pre>
+
+ <p>Finally, to make the form submittable we use the
+ <code><a href=#the-button-element>button</a></code> element:</p>
+
+ <pre>&lt;form&gt;
+ &lt;p&gt;&lt;label&gt;Customer name: &lt;input&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Telephone: &lt;input type=tel&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;E-mail address: &lt;input type=email&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Size &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Small &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Medium &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size&gt; Large &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Toppings &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Bacon &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Extra Cheese &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Onion &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox&gt; Mushroom &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;p&gt;&lt;label&gt;Preferred delivery time: &lt;input type=time min="11:00" max="21:00" step="900"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Delivery instructions: &lt;textarea&gt;&lt;/textarea&gt;&lt;/label&gt;&lt;/p&gt;
+<strong> &lt;p&gt;&lt;button&gt;Submit order&lt;/button&gt;&lt;/p&gt;</strong>
+&lt;/form&gt;</pre>
+
+
+ <h5 id=implementing-the-server-side-processing-for-a-form><span class=secno>4.10.1.2 </span>Implementing the server-side processing for a form</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The exact details for writing a server-side processor are out of
+ scope for this specification. For the purposes of this introduction,
+ we will assume that the script at <code title="">https://pizza.example.com/order.cgi</code> is configured to
+ accept submissions using the <code title=attr-fs-enctype-urlencoded><a href=#attr-fs-enctype-urlencoded>application/x-www-form-urlencoded</a></code>
+ format, expecting the following parameters sent in an HTTP POST
+ body:</p>
+
+ <dl><dt><code title="">custname</code></dt>
+ <dd>Customer's name</dd>
+
+ <dt><code title="">custtel</code></dt>
+ <dd>Customer's telephone number</dd>
+
+ <dt><code title="">custemail</code></dt>
+ <dd>Customer's e-mail address</dd>
+
+ <dt><code title="">size</code></dt>
+ <dd>The pizza size, either <code title="">small</code>, <code title="">medium</code>, or <code title="">large</code></dd>
+
+ <dt><code title="">toppings</code></dt>
+ <dd>The topping, specified once for each selected topping, with the allowed values being <code title="">bacon</code>, <code title="">cheese</code>, <code title="">onion</code>, and <code title="">mushroom</code></dd>
+
+ <dt><code title="">delivery</code></dt>
+ <dd>The requested delivery time</dd>
+
+ <dt><code title="">comments</code></dt>
+ <dd>The delivery instructions</dd>
+
+ </dl><h5 id=configuring-a-form-to-communicate-with-a-server><span class=secno>4.10.1.3 </span>Configuring a form to communicate with a server</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Form submissions are exposed to servers in a variety of ways,
+ most commonly as HTTP GET or POST requests. To specify the exact
+ method used, the <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>
+ attribute is specified on the <code><a href=#the-form-element>form</a></code> element. This
+ doesn't specify how the form data is encoded, though; to specify
+ that, you use the <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>
+ attribute. You also have to specify the <a href=#url>URL</a> of the
+ service that will handle the submitted data, using the <code title=attr-fs-action><a href=#attr-fs-action>action</a></code> attribute.</p>
+
+ <p>For each form control you want submitted, you then have to give a
+ name that will be used to refer to the data in the submission. We
+ already specified the name for the group of radio buttons; the same
+ attribute (<code title=attr-fe-name><a href=#attr-fe-name>name</a></code>) also specifies
+ the submission name. Radio buttons can be distinguished from each
+ other in the submission by giving them different values, using the
+ <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute.</p>
+
+ <p>Multiple controls can have the same name; for example, here we
+ give all the checkboxes the same name, and the server distinguishes
+ which checkbox was checked by seeing which values are submitted with
+ that name &mdash; like the radio buttons, they are also given unique
+ values with the <code title=attr-input-value><a href=#attr-input-value>value</a></code>
+ attribute.</p>
+
+ <p>Given the settings in the previous section, this all becomes:</p>
+
+ <pre>&lt;form<strong> method="post"
+ enctype="application/x-www-form-urlencoded"
+ action="https://pizza.example.com/order.cgi"</strong>&gt;
+ &lt;p&gt;&lt;label&gt;Customer name: &lt;input<strong> name="custname"</strong>&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Telephone: &lt;input type=tel<strong> name="custtel"</strong>&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;E-mail address: &lt;input type=email<strong> name="custemail"</strong>&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Size &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size<strong> value="small"</strong>&gt; Small &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size<strong> value="medium"</strong>&gt; Medium &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size<strong> value="large"</strong>&gt; Large &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Toppings &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox<strong> name="topping" value="bacon"</strong>&gt; Bacon &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox<strong> name="topping" value="cheese"</strong>&gt; Extra Cheese &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox<strong> name="topping" value="onion"</strong>&gt; Onion &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox<strong> name="topping" value="mushroom"</strong>&gt; Mushroom &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;p&gt;&lt;label&gt;Preferred delivery time: &lt;input type=time min="11:00" max="21:00" step="900"<strong> name="delivery"</strong>&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Delivery instructions: &lt;textarea<strong> name="comments"</strong>&gt;&lt;/textarea&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;button&gt;Submit order&lt;/button&gt;&lt;/p&gt;
+&lt;/form&gt;</pre>
+
+ <p>For example, if the customer entered "Denise Lawrence" as their
+ name, "555-321-8642" as their telephone number, did not specify an
+ e-mail address, asked for a medium-sized pizza, selected the Extra
+ Cheese and Mushroom toppings, entered a delivery time of 7pm, and
+ left the delivery instructions text field blank, the user agent
+ would submit the following to the online Web service:</p>
+
+ <pre>custname=Denise+Lawrence&amp;custtel=555-321-8624&amp;custemail=&amp;size=medium&amp;topping=cheese&amp;topping=mushroom&amp;delivery=19%3A00&amp;comments=</pre>
+
+
+
+ <h5 id=client-side-form-validation><span class=secno>4.10.1.4 </span>Client-side form validation</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Forms can be annotated in such a way that the user agent will
+ check the user's input before the form is submitted. The server
+ still has to verify the input is valid (since hostile users can
+ easily bypass the form validation), but it allows the user to avoid
+ the wait incurred by having the server be the sole checker of the
+ user's input.</p>
+
+ <p>The simplest annotation is the <code title=attr-input-required><a href=#attr-input-required>required</a></code> attribute, which can be
+ specified on <code><a href=#the-input-element>input</a></code> elements to indicate that the form
+ is not to be submitted until a value is given. By adding this
+ attribute to the customer name and delivery time fields, we allow
+ the user agent to notify the user when the user submits the form
+ without filling in those fields:</p>
+
+ <pre>&lt;form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action="https://pizza.example.com/order.cgi"&gt;
+ &lt;p&gt;&lt;label&gt;Customer name: &lt;input name="custname"<strong> required</strong>&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Telephone: &lt;input type=tel name="custtel"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;E-mail address: &lt;input type=email name="custemail"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Size &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size value="small"&gt; Small &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size value="medium"&gt; Medium &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size value="large"&gt; Large &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Toppings &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox name="topping" value="bacon"&gt; Bacon &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox name="topping" value="cheese"&gt; Extra Cheese &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox name="topping" value="onion"&gt; Onion &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox name="topping" value="mushroom"&gt; Mushroom &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;p&gt;&lt;label&gt;Preferred delivery time: &lt;input type=time min="11:00" max="21:00" step="900" name="delivery"<strong> required</strong>&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Delivery instructions: &lt;textarea name="comments"&gt;&lt;/textarea&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;button&gt;Submit order&lt;/button&gt;&lt;/p&gt;
+&lt;/form&gt;</pre>
+
+ <p>It is also possible to limit the length of the input, using the
+ <code title=attr-fe-maxlength><a href=#attr-fe-maxlength>maxlength</a></code> attribute. By
+ adding this to the <code><a href=#the-textarea-element>textarea</a></code> element, we can limit users
+ to 1000 characters, preventing them from writing huge essays to the
+ busy delivery drivers instead of staying focused and to the
+ point:</p>
+
+ <pre>&lt;form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action="https://pizza.example.com/order.cgi"&gt;
+ &lt;p&gt;&lt;label&gt;Customer name: &lt;input name="custname" required&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Telephone: &lt;input type=tel name="custtel"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;E-mail address: &lt;input type=email name="custemail"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Size &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size value="small"&gt; Small &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size value="medium"&gt; Medium &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=radio name=size value="large"&gt; Large &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;fieldset&gt;
+ &lt;legend&gt; Pizza Toppings &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox name="topping" value="bacon"&gt; Bacon &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox name="topping" value="cheese"&gt; Extra Cheese &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox name="topping" value="onion"&gt; Onion &lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt; &lt;input type=checkbox name="topping" value="mushroom"&gt; Mushroom &lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;p&gt;&lt;label&gt;Preferred delivery time: &lt;input type=time min="11:00" max="21:00" step="900" name="delivery" required&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Delivery instructions: &lt;textarea name="comments"<strong> maxlength=1000</strong>&gt;&lt;/textarea&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;button&gt;Submit order&lt;/button&gt;&lt;/p&gt;
+&lt;/form&gt;</pre>
+
+
+
+
+ <h4 id=categories><span class=secno>4.10.2 </span>Categories</h4>
+
+ <p>Mostly for historical reasons, elements in this section fall into
+ several overlapping (but subtly different) categories in addition to
+ the usual ones like <a href=#flow-content>flow content</a>, <a href=#phrasing-content>phrasing
+ content</a>, and <a href=#interactive-content>interactive content</a>.</p>
+
+ <p>A number of the elements are <dfn id=form-associated-element title="form-associated
+ element">form-associated elements</dfn>, which means they can have a
+ <a href=#form-owner>form owner</a> and, to expose this, have a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> content attribute with a matching
+ <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> IDL attribute.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-button-element>button</a></code></li>
+ <li><code><a href=#the-fieldset-element>fieldset</a></code></li>
+ <li><code><a href=#the-input-element>input</a></code></li>
+ <li><code><a href=#the-keygen-element>keygen</a></code></li>
+ <li><code><a href=#the-label-element>label</a></code></li>
+ <li><code><a href=#the-object-element>object</a></code></li>
+ <li><code><a href=#the-output-element>output</a></code></li>
+ <li><code><a href=#the-select-element>select</a></code></li>
+ <li><code><a href=#the-textarea-element>textarea</a></code></li>
+ </ul><p>The <a href=#form-associated-element title="form-associated element">form-associated
+ elements</a> fall into several subcategories:</p>
+
+ <dl><dt><dfn id=category-listed title=category-listed>Listed elements</dfn></dt>
+
+ <dd>
+
+ <p>Denotes elements that are listed in the <code title=dom-form-elements><a href=#dom-form-elements><var title="">form</var>.elements</a></code>
+ and <code title=dom-fieldset-elements><a href=#dom-fieldset-elements><var title="">fieldset</var>.elements</a></code> APIs.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-button-element>button</a></code></li>
+ <li><code><a href=#the-fieldset-element>fieldset</a></code></li>
+ <li><code><a href=#the-input-element>input</a></code></li>
+ <li><code><a href=#the-keygen-element>keygen</a></code></li>
+ <li><code><a href=#the-object-element>object</a></code></li>
+ <li><code><a href=#the-output-element>output</a></code></li>
+ <li><code><a href=#the-select-element>select</a></code></li>
+ <li><code><a href=#the-textarea-element>textarea</a></code></li>
+ </ul></dd>
+
+ <dt><dfn id=category-submit title=category-submit>Submittable elements</dfn></dt>
+
+ <dd>
+
+ <p>Denotes elements that can be used for <a href=#constructing-form-data-set>constructing the form data
+ set</a> when a <code><a href=#the-form-element>form</a></code> element is <a href=#concept-form-submit title=concept-form-submit>submitted</a>.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-button-element>button</a></code></li>
+ <li><code><a href=#the-input-element>input</a></code></li>
+ <li><code><a href=#the-keygen-element>keygen</a></code></li>
+ <li><code><a href=#the-object-element>object</a></code></li>
+ <li><code><a href=#the-select-element>select</a></code></li>
+ <li><code><a href=#the-textarea-element>textarea</a></code></li>
+ </ul><p>Some <a href=#category-submit title=category-submit>submittable elements</a>
+ can be, depending on their attributes, <dfn id=concept-button title=concept-button>buttons</dfn>. The prose below defines when
+ an element is a button. Some buttons are specifically <dfn id=concept-submit-button title=concept-submit-button>submit buttons</dfn>.</p>
+
+ </dd>
+
+ <dt><dfn id=category-reset title=category-reset>Resettable elements</dfn></dt>
+
+ <dd>
+
+ <p>Denotes elements that can be affected when a <code><a href=#the-form-element>form</a></code>
+ element is <a href=#concept-form-reset title=concept-form-reset>reset</a>.</p>
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-input-element>input</a></code></li>
+ <li><code><a href=#the-keygen-element>keygen</a></code></li>
+ <li><code><a href=#the-output-element>output</a></code></li>
+ <li><code><a href=#the-select-element>select</a></code></li>
+ <li><code><a href=#the-textarea-element>textarea</a></code></li>
+ </ul></dd>
+
+ </dl><p>Some elements, not all of them <a href=#form-associated-element title="form-associated
+ element">form-associated</a>, are categorized as <dfn id=category-label title=category-label>labelable elements</dfn>. These are elements
+ that can be associated with a <code><a href=#the-label-element>label</a></code> element.
+
+ <!-- when updating this also update the category index -->
+ <ul class="brief category-list"><li><code><a href=#the-button-element>button</a></code></li>
+ <li><code><a href=#the-input-element>input</a></code> (if the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is <em>not</em> in the <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state)</li>
+ <li><code><a href=#the-keygen-element>keygen</a></code></li>
+ <li><code><a href=#the-meter-element>meter</a></code></li>
+ <li><code><a href=#the-output-element>output</a></code></li>
+ <li><code><a href=#the-progress-element>progress</a></code></li>
+ <li><code><a href=#the-select-element>select</a></code></li>
+ <li><code><a href=#the-textarea-element>textarea</a></code></li>
+ </ul><h4 id=the-form-element><span class=secno>4.10.3 </span>The <dfn><code>form</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#flow-content>Flow content</a>, but with no <code><a href=#the-form-element>form</a></code> element descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-form-accept-charset><a href=#attr-form-accept-charset>accept-charset</a></code></dd>
+ <dd><code title=attr-fs-action><a href=#attr-fs-action>action</a></code></dd>
+ <dd><code title=attr-form-autocomplete><a href=#attr-form-autocomplete>autocomplete</a></code></dd>
+ <dd><code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code></dd>
+ <dd><code title=attr-fs-method><a href=#attr-fs-method>method</a></code></dd>
+ <dd><code title=attr-form-name><a href=#attr-form-name>name</a></code></dd>
+ <dd><code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code></dd>
+ <dd><code title=attr-fs-target><a href=#attr-fs-target>target</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>[OverrideBuiltins]
+interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-form-acceptcharset title=dom-form-acceptCharset>acceptCharset</a>;
+ attribute DOMString <a href=#dom-fs-action title=dom-fs-action>action</a>;
+ attribute DOMString <a href=#dom-form-autocomplete title=dom-form-autocomplete>autocomplete</a>;
+ attribute DOMString <a href=#dom-fs-enctype title=dom-fs-enctype>enctype</a>;
+ attribute DOMString <a href=#dom-fs-encoding title=dom-fs-encoding>encoding</a>;<!-- historical artefact -->
+ attribute DOMString <a href=#dom-fs-method title=dom-fs-method>method</a>;
+ attribute DOMString <a href=#dom-form-name title=dom-form-name>name</a>;
+ attribute boolean <a href=#dom-fs-novalidate title=dom-fs-noValidate>noValidate</a>;
+ attribute DOMString <a href=#dom-fs-target title=dom-fs-target>target</a>;
+
+ readonly attribute <a href=#htmlformcontrolscollection>HTMLFormControlsCollection</a> <a href=#dom-form-elements title=dom-form-elements>elements</a>;
+ readonly attribute long <a href=#dom-form-length title=dom-form-length>length</a>;
+ legacycaller <a href=#dom-form-item title=dom-form-item>getter</a> <a href=#element>Element</a> (unsigned long index);
+ legacycaller <a href=#dom-form-nameditem title=dom-form-namedItem>getter</a> object (DOMString name);
+
+ void <a href=#dom-form-submit title=dom-form-submit>submit</a>();
+ void <a href=#dom-form-reset title=dom-form-reset>reset</a>();
+ boolean <a href=#dom-form-checkvalidity title=dom-form-checkValidity>checkValidity</a>();
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-form-element>form</a></code> element <a href=#represents>represents</a> a
+ collection of <a href=#form-associated-element title="form-associated element">form-associated
+ elements</a>, some of which can represent editable values that
+ can be submitted to a server for processing.</p>
+
+ <p>The <dfn id=attr-form-accept-charset title=attr-form-accept-charset><code>accept-charset</code></dfn>
+ attribute gives the character encodings that are to be used for the
+ submission. If specified, the value must be an <a href=#ordered-set-of-unique-space-separated-tokens>ordered set of
+ unique space-separated tokens</a> that are <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a>, and each token must be an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the <a href=#preferred-mime-name>preferred MIME
+ name</a> of an <a href=#ascii-compatible-character-encoding>ASCII-compatible character encoding</a>.
+ <a href=#refsIANACHARSET>[IANACHARSET]</a></p>
+
+ <p>The <dfn id=attr-form-name title=attr-form-name><code>name</code></dfn> attribute
+ represents the <code><a href=#the-form-element>form</a></code>'s name within the <code title=dom-document-forms><a href=#dom-document-forms>forms</a></code> collection. The value must
+ not be the empty string, and the value must be unique amongst the
+ <code><a href=#the-form-element>form</a></code> elements in the <code title=dom-document-forms><a href=#dom-document-forms>forms</a></code> collection that it is in, if
+ any.</p>
+
+ <p>The <dfn id=attr-form-autocomplete title=attr-form-autocomplete><code>autocomplete</code></dfn>
+ attribute is an <a href=#enumerated-attribute>enumerated attribute</a>. The attribute has
+ two states. The <code title=attr-form-autocomplete-on>on</code>
+ keyword maps to the <dfn id=attr-form-autocomplete-on-state title=attr-form-autocomplete-on-state>on</dfn> state, and the
+ <code title=attr-form-autocomplete-off>off</code> keyword maps to
+ the <dfn id=attr-form-autocomplete-off-state title=attr-form-autocomplete-off-state>off</dfn>
+ state. The attribute may also be omitted. The <i>missing value
+ default</i> is the <a href=#attr-form-autocomplete-on-state title=attr-form-autocomplete-on-state>on</a> state. The <a href=#attr-form-autocomplete-off-state title=attr-form-autocomplete-off-state>off</a> state indicates
+ that by default, <code><a href=#the-input-element>input</a></code> elements in the form will have
+ their <a href=#resulting-autocompletion-state>resulting autocompletion state</a> set to <i title="">off</i>; the <a href=#attr-form-autocomplete-on-state title=attr-form-autocomplete-on-state>on</a> state indicates
+ that by default, <code><a href=#the-input-element>input</a></code> elements in the form will have
+ their <a href=#resulting-autocompletion-state>resulting autocompletion state</a> set to <i title="">on</i>.</p>
+
+ <p>The <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes are <a href=#attributes-for-form-submission>attributes
+ for form submission</a>.</p>
+
+ <dl class=domintro><dt><var title="">form</var> . <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code></dt>
+
+ <dd>
+
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the form controls in
+ the form (excluding image buttons for historical reasons).</p>
+
+ </dd>
+
+ <dt><var title="">form</var> . <code title=dom-form-length><a href=#dom-form-length>length</a></code></dt>
+
+ <dd>
+
+ <p>Returns the number of form controls in the form (excluding
+ image buttons for historical reasons).</p>
+
+ </dd>
+
+ <dt><var title="">form</var>[<var title="">index</var>]</dt>
+ <dt><var title="">form</var>(<var title="">index</var>)</dt>
+
+ <dd>
+
+ <p>Returns the <var title="">index</var>th element in the form
+ (excluding image buttons for historical reasons).</p>
+
+ </dd>
+
+ <dt><var title="">form</var>[<var title="">name</var>]</dt>
+ <dt><var title="">form</var>(<var title="">name</var>)</dt>
+
+ <dd>
+
+ <p>Returns the form control in the form with the given <a href=#concept-id title=concept-id>ID</a> or <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> (excluding image buttons for
+ historical reasons).</p>
+
+ <p>Once an element has been referenced using a particular name,
+ that name will continue being available as a way to reference that
+ element in this method, even if the element's actual <a href=#concept-id title=concept-id>ID</a> or <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> changes, for as long as the
+ element remains in the <code><a href=#document>Document</a></code>.</p>
+
+ <p>If there are multiple matching items, then a
+ <code><a href=#nodelist>NodeList</a></code> object containing all those elements is
+ returned.</p>
+
+ </dd>
+
+ <dt><var title="">form</var> . <code title=dom-form-submit><a href=#dom-form-submit>submit</a></code>()</dt>
+
+ <dd>
+
+ <p>Submits the form.</p>
+
+ </dd>
+
+ <dt><var title="">form</var> . <code title=dom-form-reset><a href=#dom-form-reset>reset</a></code>()</dt>
+
+ <dd>
+
+ <p>Resets the form.</p>
+
+ </dd>
+
+ <dt><var title="">form</var> . <code title=dom-form-checkValidity><a href=#dom-form-checkvalidity>checkValidity</a></code>()</dt>
+
+ <dd>
+
+ <p>Returns true if the form's controls are all valid; otherwise,
+ returns false.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-form-autocomplete title=dom-form-autocomplete><code>autocomplete</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
+
+ <p>The <dfn id=dom-form-name title=dom-form-name><code>name</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ <p>The <dfn id=dom-form-acceptcharset title=dom-form-acceptCharset><code>acceptCharset</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-form-accept-charset><a href=#attr-form-accept-charset>accept-charset</a></code> content
+ attribute.</p>
+
+ <hr><p>The <dfn id=dom-form-elements title=dom-form-elements><code>elements</code></dfn>
+ IDL attribute must return an <code><a href=#htmlformcontrolscollection>HTMLFormControlsCollection</a></code>
+ rooted at the <code><a href=#document>Document</a></code> node, whose filter matches <a href=#category-listed title=category-listed>listed elements</a> whose <a href=#form-owner>form
+ owner</a> is the <code><a href=#the-form-element>form</a></code> element, with the exception of
+ <code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state, which must,
+ for historical reasons, be excluded from this particular
+ collection.</p>
+
+ <p>The <dfn id=dom-form-length title=dom-form-length><code>length</code></dfn> IDL
+ attribute must return the number of nodes <a href=#represented-by-the-collection title="represented
+ by the collection">represented</a> by the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> collection.</p>
+
+ <p>The <a href=#supported-property-indices>supported property indices</a> at any instant are
+ the indices supported by the object returned by the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> attribute at that
+ instant.</p>
+
+ <p>When a <code><a href=#the-form-element>form</a></code> element is <dfn id=dom-form-item title=dom-form-item>indexed for indexed property retrieval</dfn>,
+ the user agent must return the value returned by the <code title=dom-HTMLFormControlsCollection-item>item</code> method on
+ the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> collection, when
+ invoked with the given index as its argument.</p>
+
+ <p>Each <code><a href=#the-form-element>form</a></code> element has a mapping of names to elements
+ called the <dfn id=past-names-map>past names map</dfn>. It is used to persist names of
+ controls even when they change names.</p>
+
+ <p>The <a href=#supported-property-names>supported property names</a> are the union of the
+ names currently supported by the object returned by the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> attribute, and the names
+ currently in the <a href=#past-names-map>past names map</a>.</p>
+
+ <p>When a <code><a href=#the-form-element>form</a></code> element is <dfn id=dom-form-nameditem title=dom-form-namedItem>indexed for named property
+ retrieval</dfn>, the user agent must run the following steps:</p>
+
+ <ol><li>
+
+ <p>If <var title="">name</var> is one of the <a href=#supported-property-names>supported
+ property names</a> of the object returned by the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> attribute, then run
+ these substeps:</p>
+
+ <ol><li><p>Let <var title="">candidate</var> be the object returned
+ by the <code title=dom-HTMLFormControlsCollection-namedItem><a href=#dom-htmlformcontrolscollection-nameditem>namedItem()</a></code>
+ method on the object returned by the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> attribute when passed
+ the <var title="">name</var> argument.</li>
+
+ <li><p>If <var title="">candidate</var> is an element, then add a
+ mapping from <var title="">name</var> to <var title="">candidate</var> in the <code><a href=#the-form-element>form</a></code> element's
+ <a href=#past-names-map>past names map</a>, replacing the previous entry with
+ the same name, if any.</li>
+
+ <li><p>Return <var title="">candidate</var> and abort these
+ steps.</li>
+
+ </ol></li>
+
+ <li><p>Otherwise, <var title="">name</var> is the name of one of
+ the entries in the <code><a href=#the-form-element>form</a></code> element's <a href=#past-names-map>past names
+ map</a>: return the object associated with <var title="">name</var> in that map.</li>
+
+ </ol><p>If an element listed in the <code><a href=#the-form-element>form</a></code> element's <a href=#past-names-map>past
+ names map</a> is removed from the <code><a href=#document>Document</a></code>, then its
+ entries must be removed from the map.</p>
+
+ <!--
+ This ridiculous setup is intended to do as much of the right thing
+ while still supporting code written to work in IE7. IE versions
+ prior to IE8 do not update the names on the <form> element
+ collection to match new names when elements are renamed, and there
+ are enough pages that rename elements and then access them by
+ their old name that we have to support this.
+
+ But we still want to expose them using the new names, so as far as
+ possible we pretend the legacy names aren't there except if
+ there's no other element actually named that way.
+
+ Removing the element did remove the legacy name in IE7:
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Cform%20action%3D%22%2F%22%3E%3Cinput%20name%3Dsubmit%3E%3C%2Fform%3E%0A%3Cscript%3E%0A%20w(document.forms%5B0%5D.submit)%3B%0A%20w(document.forms%5B0%5D.removeChild(document.getElementsByTagName('input')%5B0%5D))%3B%0A%20w(document.forms%5B0%5D.length)%3B%0A%20try%20%7B%20document.forms%5B0%5D.submit()%3B%20%7D%20catch%20(e)%20%20%7B%20w(e.message)%20%7D%0A%3C%2Fscript%3E
+
+ There's no interop on what happens when the name was originally a
+ duplicate name, so we don't persist such accesses - at the time
+ of writing, Safari returned the first element, Firefox returned
+ null (as we do), and IE7 returned the original collection:
+ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Cform%20action%3D%22%2F%22%3E%3Cinput%20name%3Da%20id%3Dfirst%3E%3Cinput%20name%3Da%20id%3Dsecond%3E%3C%2Fform%3E%0A%3Cscript%3E%0A%20w%28document.forms[0].a%29%3B%0A%20document.getElementsByTagName%28%27input%27%29[0].name%20%3D%20%27b%27%3B%0A%20document.getElementsByTagName%28%27input%27%29[1].name%20%3D%20%27b%27%3B%0A%20w%28document.forms[0].length%29%3B%0A%20w%28document.forms[0].a.id%29%3B%0A%3C%2Fscript%3E
+ -->
+
+ <hr><p>The <dfn id=dom-form-submit title=dom-form-submit><code>submit()</code></dfn>
+ method, when invoked, must <a href=#concept-form-submit title=concept-form-submit>submit</a> the <code><a href=#the-form-element>form</a></code>
+ element from the <code><a href=#the-form-element>form</a></code> element itself, with the <var title="">submitted from <code title=dom-form-submit><a href=#dom-form-submit>submit()</a></code> method</var> flag set.</p>
+
+ <p>The <dfn id=dom-form-reset title=dom-form-reset><code>reset()</code></dfn>
+ method, when invoked, must run the following steps:</p>
+
+ <ol><li><p>If the <code><a href=#the-form-element>form</a></code> element is marked as <i><a href=#locked-for-reset>locked for
+ reset</a></i>, then abort these steps.</li>
+
+ <li><p>Mark the <code><a href=#the-form-element>form</a></code> element as <dfn id=locked-for-reset>locked for
+ reset</dfn>.</li>
+
+ <li><p><a href=#concept-form-reset title=concept-form-reset>Reset</a> the
+ <code><a href=#the-form-element>form</a></code> element.</li>
+
+ <li><p>Unmark the <code><a href=#the-form-element>form</a></code> element as <i><a href=#locked-for-reset>locked for
+ reset</a></i>.</li>
+
+ </ol><p>If the <dfn id=dom-form-checkvalidity title=dom-form-checkValidity><code>checkValidity()</code></dfn>
+ method is invoked, the user agent must <a href=#statically-validate-the-constraints>statically validate the
+ constraints</a> of the <code><a href=#the-form-element>form</a></code> element, and return true
+ if the constraint validation return a <i>positive</i> result, and
+ false if it returned a <i>negative</i> result.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This example shows two search forms:</p>
+
+ <pre>&lt;form action="http://www.google.com/search" method="get"&gt;
+ &lt;label&gt;Google: &lt;input type="search" name="q"&gt;&lt;/label&gt; &lt;input type="submit" value="Search..."&gt;
+&lt;/form&gt;
+&lt;form action="http://www.bing.com/search" method="get"&gt;
+ &lt;label&gt;Bing: &lt;input type="search" name="q"&gt;&lt;/label&gt; &lt;input type="submit" value="Search..."&gt;
+&lt;/form&gt;</pre>
+
+ </div>
+
+
+
+
+ <h4 id=the-fieldset-element><span class=secno>4.10.4 </span>The <dfn><code>fieldset</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#sectioning-root>Sectioning root</a>.</dd>
+ <dd><a href=#category-listed title=category-listed>Listed</a> <a href=#form-associated-element>form-associated element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Optionally a <code><a href=#the-legend-element>legend</a></code> element, followed by <a href=#flow-content>flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-fieldset-disabled><a href=#attr-fieldset-disabled>disabled</a></code></dd>
+ <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd>
+ <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlfieldsetelement>HTMLFieldSetElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-fieldset-disabled title=dom-fieldset-disabled>disabled</a>;
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+ attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
+
+ readonly attribute DOMString <a href=#dom-fieldset-type title=dom-fieldset-type>type</a>;
+
+ readonly attribute <a href=#htmlformcontrolscollection>HTMLFormControlsCollection</a> <a href=#dom-fieldset-elements title=dom-fieldset-elements>elements</a>;
+
+ readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>;
+ readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>;
+ readonly attribute DOMString <a href=#dom-cva-validationmessage title=dom-cva-validationMessage>validationMessage</a>;
+ boolean <a href=#dom-cva-checkvalidatity title=dom-cva-checkValidatity>checkValidity</a>();
+ void <a href=#dom-cva-setcustomvalidity title=dom-cva-setCustomValidity>setCustomValidity</a>(DOMString error);
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-fieldset-element>fieldset</a></code> element <a href=#represents>represents</a> a set
+ of form controls optionally grouped under a common name.</p>
+
+ <p>The name of the group is given by the first <code><a href=#the-legend-element>legend</a></code>
+ element that is a child of the <code><a href=#the-fieldset-element>fieldset</a></code> element, if
+ any. The remainder of the descendants form the group.</p>
+
+ <p>The <dfn id=attr-fieldset-disabled title=attr-fieldset-disabled><code>disabled</code></dfn>
+ attribute, when specified, causes all the form control descendants
+ of the <code><a href=#the-fieldset-element>fieldset</a></code> element, excluding those that are
+ descendants of the <code><a href=#the-fieldset-element>fieldset</a></code> element's first
+ <code><a href=#the-legend-element>legend</a></code> element child, if any, to be <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>.</p>
+
+ <p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
+ explicitly associate the <code><a href=#the-fieldset-element>fieldset</a></code> element with its
+ <a href=#form-owner>form owner</a>. The <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>
+ attribute represents the element's name.</p>
+
+ <dl class=domintro><dt><var title="">fieldset</var> . <code title=dom-fieldset-type><a href=#dom-fieldset-type>type</a></code></dt>
+
+ <dd>
+
+ <p>Returns the string "fieldset".</p>
+
+ </dd>
+
+ <dt><var title="">fieldset</var> . <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code></dt>
+
+ <dd>
+
+ <p>Returns an <code><a href=#htmlformcontrolscollection>HTMLFormControlsCollection</a></code> of the form
+ controls in the element.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-fieldset-disabled title=dom-fieldset-disabled><code>disabled</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ <p>The <dfn id=dom-fieldset-type title=dom-fieldset-type><code>type</code></dfn> IDL
+ attribute must return the string "<code title="">fieldset</code>".</p>
+
+ <p>The <dfn id=dom-fieldset-elements title=dom-fieldset-elements><code>elements</code></dfn> IDL
+ attribute must return an <code><a href=#htmlformcontrolscollection>HTMLFormControlsCollection</a></code>
+ rooted at the <code><a href=#the-fieldset-element>fieldset</a></code> element, whose filter matches
+ <a href=#category-listed title=category-listed>listed elements</a>.</p>
+
+ <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code>
+ attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
+ methods, are part of the <a href=#the-constraint-validation-api>constraint validation API</a>. The
+ <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> and <code title=dom-fe-name><a href=#dom-fe-name>name</a></code> IDL attributes are part of the
+ element's forms API.</p>
+
+ <p><strong>Constraint validation</strong>: <code><a href=#the-fieldset-element>fieldset</a></code>
+ elements are always <a href=#barred-from-constraint-validation>barred from constraint
+ validation</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This example shows a <code><a href=#the-fieldset-element>fieldset</a></code> element being used to
+ group a set of related controls:</p>
+
+ <pre>&lt;fieldset&gt;
+ &lt;legend&gt;Display&lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt;&lt;input type=radio name=c value=0 checked&gt; Black on White&lt;/label&gt;
+ &lt;p&gt;&lt;label&gt;&lt;input type=radio name=c value=1&gt; White on Black&lt;/label&gt;
+ &lt;p&gt;&lt;label&gt;&lt;input type=checkbox name=g&gt; Use grayscale&lt;/label&gt;
+ &lt;p&gt;&lt;label&gt;Enhance contrast &lt;input type=range name=e list=contrast min=0 max=100 value=0 step=1&gt;&lt;/label&gt;
+ &lt;datalist id=contrast&gt;
+ &lt;option label=Normal value=0&gt;
+ &lt;option label=Maximum value=100&gt;
+ &lt;/datalist&gt;
+&lt;/fieldset&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following snippet shows a fieldset with a checkbox in the
+ legend that controls whether or not the fieldset is enabled. The
+ contents of the fieldset consist of two required text fields and an
+ optional year/month control.</p>
+
+ <pre>&lt;fieldset name="clubfields" disabled&gt;
+ &lt;legend&gt; &lt;label&gt;
+ &lt;input type=checkbox name=club onchange="form.clubfields.disabled = !checked"&gt;
+ Use Club Card
+ &lt;/label&gt; &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt;Name on card: &lt;input name=clubname required&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Card number: &lt;input name=clubnum required pattern="[-0-9]+"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Expiry date: &lt;input name=clubexp type=month&gt;&lt;/label&gt;&lt;/p&gt;
+&lt;/fieldset&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>You can also nest <code><a href=#the-fieldset-element>fieldset</a></code> elements. Here is an
+ example expanding on the previous one that does so:</p>
+
+ <pre>&lt;fieldset name="clubfields" disabled&gt;
+ &lt;legend&gt; &lt;label&gt;
+ &lt;input type=checkbox name=club onchange="form.clubfields.disabled = !checked"&gt;
+ Use Club Card
+ &lt;/label&gt; &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt;Name on card: &lt;input name=clubname required&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;fieldset name="numfields"&gt;
+ &lt;legend&gt; &lt;label&gt;
+ &lt;input type=radio checked name=clubtype onchange="form.numfields.disabled = !checked"&gt;
+ My card has numbers on it
+ &lt;/label&gt; &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt;Card number: &lt;input name=clubnum required pattern="[-0-9]+"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+ &lt;fieldset name="letfields" disabled&gt;
+ &lt;legend&gt; &lt;label&gt;
+ &lt;input type=radio name=clubtype onchange="form.letfields.disabled = !checked"&gt;
+ My card has letters on it
+ &lt;/label&gt; &lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt;Card code: &lt;input name=clublet required pattern="[A-Za-z]+"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;/fieldset&gt;
+&lt;/fieldset&gt;</pre>
+
+ <p>In this example, if the outer "Use Club Card" checkbox is not
+ checked, everything inside the outer <code><a href=#the-fieldset-element>fieldset</a></code>,
+ including the two radio buttons in the legends of the two nested
+ <code><a href=#the-fieldset-element>fieldset</a></code>s, will be disabled. However, if the checkbox
+ is checked, then the radio buttons will both be enabled and will
+ let you select which of the two inner <code><a href=#the-fieldset-element>fieldset</a></code>s is to
+ be enabled.</p>
+
+ </div>
+
+
+ <h4 id=the-legend-element><span class=secno>4.10.5 </span>The <dfn><code>legend</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As the first child of a <code><a href=#the-fieldset-element>fieldset</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+ <pre class=idl>interface <dfn id=htmllegendelement>HTMLLegendElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-legend-form title=dom-legend-form>form</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-legend-element>legend</a></code> element <a href=#represents>represents</a> a caption
+ for the rest of the contents of the <code><a href=#the-legend-element>legend</a></code> element's
+ parent <code><a href=#the-fieldset-element>fieldset</a></code> element<span class=impl>, if
+ any</span>.</p>
+
+ <dl class=domintro><dt><var title="">legend</var> . <code title=dom-legend-form><a href=#dom-legend-form>form</a></code></dt>
+
+ <dd>
+
+ <p>Returns the element's <code><a href=#the-form-element>form</a></code> element, if any, or
+ null otherwise.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-legend-form title=dom-legend-form><code>form</code></dfn> IDL
+ attribute's behavior depends on whether the <code><a href=#the-legend-element>legend</a></code>
+ element is in a <code><a href=#the-fieldset-element>fieldset</a></code> element or not. If the
+ <code><a href=#the-legend-element>legend</a></code> has a <code><a href=#the-fieldset-element>fieldset</a></code> element as its
+ parent, then the <code title=dom-legend-form><a href=#dom-legend-form>form</a></code> IDL
+ attribute must return the same value as the <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> IDL attribute on that
+ <code><a href=#the-fieldset-element>fieldset</a></code> element. Otherwise, it must return null.</p>
+
+ </div>
+
+
+
+ <h4 id=the-label-element><span class=secno>4.10.6 </span>The <dfn><code>label</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#interactive-content>Interactive content</a>.</dd>
+ <dd><a href=#form-associated-element>Form-associated element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>, but with no descendant <a href=#category-label title=category-label>labelable elements</a> unless it is the element's <a href=#labeled-control>labeled control</a>, and no descendant <code><a href=#the-label-element>label</a></code> elements.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd>
+ <dd><code title=attr-label-for><a href=#attr-label-for>for</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmllabelelement>HTMLLabelElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+ attribute DOMString <a href=#dom-label-htmlfor title=dom-label-htmlFor>htmlFor</a>;
+ readonly attribute <a href=#htmlelement>HTMLElement</a>? <a href=#dom-label-control title=dom-label-control>control</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-label-element>label</a></code> <a href=#represents>represents</a> a caption in a
+ user interface. The caption can be associated with a specific form
+ control<span class=impl>, known as the <code><a href=#the-label-element>label</a></code>
+ element's <dfn id=labeled-control>labeled control</dfn></span>, either using <code title=attr-label-for><a href=#attr-label-for>for</a></code> attribute, or by putting the form
+ control inside the <code><a href=#the-label-element>label</a></code> element itself.</p>
+
+ <div class=impl>
+
+ <p>Except where otherwise specified by the following rules, a
+ <code><a href=#the-label-element>label</a></code> element has no <a href=#labeled-control>labeled control</a>.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-label-for title=attr-label-for><code>for</code></dfn> attribute
+ may be specified to indicate a form control with which the caption
+ is to be associated. If the attribute is specified, the attribute's
+ value must be the <a href=#concept-id title=concept-id>ID</a> of a <a href=#category-label title=category-label>labelable element</a> in the same
+ <code><a href=#document>Document</a></code> as the <code><a href=#the-label-element>label</a></code> element. <span class=impl>If the attribute is specified and there is an element
+ in the <code><a href=#document>Document</a></code> whose <a href=#concept-id title=concept-id>ID</a> is equal to the value of the <code title=attr-label-for><a href=#attr-label-for>for</a></code> attribute, and the first such
+ element is a <a href=#category-label title=category-label>labelable element</a>,
+ then that element is the <code><a href=#the-label-element>label</a></code> element's <a href=#labeled-control>labeled
+ control</a>.</span></p>
+
+ <div class=impl>
+
+ <p>If the <code title=attr-label-for><a href=#attr-label-for>for</a></code> attribute is not
+ specified, but the <code><a href=#the-label-element>label</a></code> element has a <a href=#category-label title=category-label>labelable element</a> descendant, then the
+ first such descendant in <a href=#tree-order>tree order</a> is the
+ <code><a href=#the-label-element>label</a></code> element's <a href=#labeled-control>labeled control</a>.</p>
+
+ <p>The <code><a href=#the-label-element>label</a></code> element's exact default presentation and
+ behavior, in particular what its <a href=#activation-behavior>activation behavior</a>
+ might be, if anything, should match the platform's label behavior.
+ The <a href=#activation-behavior>activation behavior</a> of a <code><a href=#the-label-element>label</a></code> element
+ for events targetted at <a href=#interactive-content>interactive content</a> descendants
+ of a <code><a href=#the-label-element>label</a></code> element, and any descendants of those
+ <a href=#interactive-content>interactive content</a> descendants, must be to do
+ nothing.</p>
+
+ <!-- activation behaviour need not be dependent on whether the
+ labeled control is being rendered:
+ http://software.hixie.ch/utilities/js/live-dom-viewer/saved/371
+ -->
+
+ <div class=example>
+
+ <p>For example, on platforms where clicking a checkbox label checks
+ the checkbox, clicking the <code><a href=#the-label-element>label</a></code> in the following
+ snippet could trigger the user agent to <a href=#run-synthetic-click-activation-steps>run synthetic click
+ activation steps</a> on the <code><a href=#the-input-element>input</a></code> element, as if
+ the element itself had been triggered by the user:</p>
+
+ <pre>&lt;label&gt;&lt;input type=checkbox name=lost&gt; Lost&lt;/label&gt;</pre>
+
+ <p>On other platforms, the behavior might be just to focus the
+ control, or do nothing.</p>
+
+ </div>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">label</var> . <code title=dom-label-control><a href=#dom-label-control>control</a></code></dt>
+
+ <dd>
+
+ <p>Returns the form control that is associated with this element.</p>
+
+ </dd>
+
+ </dl><p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
+ explicitly associate the <code><a href=#the-label-element>label</a></code> element with its
+ <a href=#form-owner>form owner</a>.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-label-htmlfor title=dom-label-htmlFor><code>htmlFor</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-label-for><a href=#attr-label-for>for</a></code> content attribute.</p>
+
+ <p>The <dfn id=dom-label-control title=dom-label-control><code>control</code></dfn> IDL
+ attribute must return the <code><a href=#the-label-element>label</a></code> element's <a href=#labeled-control>labeled
+ control</a>, if any, or null if there isn't one.</p>
+
+ </div>
+
+ <hr><dl class=domintro><dt><var title="">control</var> . <code title=dom-lfe-labels><a href=#dom-lfe-labels>labels</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#nodelist>NodeList</a></code> of all the <code><a href=#the-label-element>label</a></code>
+ elements that the form control is associated with.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p><a href=#category-label title=category-label>Labelable elements</a> have a
+ <code><a href=#nodelist>NodeList</a></code> object associated with them that represents
+ the list of <code><a href=#the-label-element>label</a></code> elements, in <a href=#tree-order>tree order</a>,
+ whose <a href=#labeled-control>labeled control</a> is the element in question. The
+ <dfn id=dom-lfe-labels title=dom-lfe-labels><code>labels</code></dfn> IDL attribute
+ of <a href=#category-label title=category-label>labelable elements</a>, on
+ getting, must return that <code><a href=#nodelist>NodeList</a></code> object.</p>
+
+ <p>The <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> IDL attribute is part
+ of the element's forms API.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows three form controls each with a
+ label, two of which have small text showing the right format for
+ users to use.</p>
+
+ <pre>&lt;p&gt;&lt;label&gt;Full name: &lt;input name=fn&gt; &lt;small&gt;Format: First Last&lt;/small&gt;&lt;/label&gt;&lt;/p&gt;
+&lt;p&gt;&lt;label&gt;Age: &lt;input name=age type=number min=0&gt;&lt;/label&gt;&lt;/p&gt;
+&lt;p&gt;&lt;label&gt;Post code: &lt;input name=pc&gt; &lt;small&gt;Format: AB12 3CD&lt;/small&gt;&lt;/label&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-input-element><span class=secno>4.10.7 </span>The <dfn><code>input</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd>If the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is <em>not</em> in the <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state: <a href=#interactive-content>Interactive content</a>.</dd>
+ <dd>If the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is <em>not</em> in the <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state: <a href=#category-listed title=category-listed>Listed</a>, <a href=#category-label title=category-label>labelable</a>, <a href=#category-submit title=category-submit>submittable</a>, and <a href=#category-reset title=category-reset>resettable</a> <a href=#form-associated-element>form-associated element</a>.</dd>
+ <dd>If the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state: <a href=#category-listed title=category-listed>Listed</a>, <a href=#category-submit title=category-submit>submittable</a>, and <a href=#category-reset title=category-reset>resettable</a> <a href=#form-associated-element>form-associated element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-input-accept><a href=#attr-input-accept>accept</a></code></dd>
+ <dd><code title=attr-input-alt><a href=#attr-input-alt>alt</a></code></dd>
+ <dd><code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code></dd>
+ <dd><code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code></dd>
+ <dd><code title=attr-input-checked><a href=#attr-input-checked>checked</a></code></dd>
+ <dd><code title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code></dd>
+ <dd><code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code></dd>
+ <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd>
+ <dd><code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code></dd>
+ <dd><code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code></dd>
+ <dd><code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code></dd>
+ <dd><code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code></dd>
+ <dd><code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code></dd>
+ <dd><code title=attr-dim-height><a href=#attr-dim-height>height</a></code></dd>
+ <dd><code title=attr-input-list><a href=#attr-input-list>list</a></code></dd>
+ <dd><code title=attr-input-max><a href=#attr-input-max>max</a></code></dd>
+ <dd><code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code></dd>
+ <dd><code title=attr-input-min><a href=#attr-input-min>min</a></code></dd>
+ <dd><code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code></dd>
+ <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd>
+ <dd><code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code></dd>
+ <dd><code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code></dd>
+ <dd><code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code></dd>
+ <dd><code title=attr-input-required><a href=#attr-input-required>required</a></code></dd>
+ <dd><code title=attr-input-size><a href=#attr-input-size>size</a></code></dd>
+ <dd><code title=attr-input-src><a href=#attr-input-src>src</a></code></dd>
+ <dd><code title=attr-input-step><a href=#attr-input-step>step</a></code></dd>
+ <dd><code title=attr-input-type><a href=#attr-input-type>type</a></code></dd>
+ <dd><code title=attr-input-value><a href=#attr-input-value>value</a></code></dd>
+ <dd><code title=attr-dim-width><a href=#attr-dim-width>width</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlinputelement>HTMLInputElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-input-accept title=dom-input-accept>accept</a>;
+ attribute DOMString <a href=#dom-input-alt title=dom-input-alt>alt</a>;
+ attribute DOMString <a href=#dom-input-autocomplete title=dom-input-autocomplete>autocomplete</a>;
+ attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
+ attribute boolean <a href=#dom-input-defaultchecked title=dom-input-defaultChecked>defaultChecked</a>;
+ attribute boolean <a href=#dom-input-checked title=dom-input-checked>checked</a>;
+ attribute DOMString <a href=#dom-input-dirname title=dom-input-dirName>dirName</a>;
+ attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+ readonly attribute <a href=#filelist>FileList</a>? <a href=#dom-input-files title=dom-input-files>files</a>;
+ attribute DOMString <a href=#dom-fs-formaction title=dom-fs-formAction>formAction</a>;
+ attribute DOMString <a href=#dom-fs-formenctype title=dom-fs-formEnctype>formEnctype</a>;
+ attribute DOMString <a href=#dom-fs-formmethod title=dom-fs-formMethod>formMethod</a>;
+ attribute boolean <a href=#dom-fs-formnovalidate title=dom-fs-formNoValidate>formNoValidate</a>;
+ attribute DOMString <a href=#dom-fs-formtarget title=dom-fs-formTarget>formTarget</a>;
+ attribute DOMString <a href=#dom-dim-height title=dom-dim-height>height</a>;
+ attribute boolean <a href=#dom-input-indeterminate title=dom-input-indeterminate>indeterminate</a>;
+ readonly attribute <a href=#htmlelement>HTMLElement</a>? <a href=#dom-input-list title=dom-input-list>list</a>;
+ attribute DOMString <a href=#dom-input-max title=dom-input-max>max</a>;
+ attribute long <a href=#dom-input-maxlength title=dom-input-maxLength>maxLength</a>;
+ attribute DOMString <a href=#dom-input-min title=dom-input-min>min</a>;
+ attribute boolean <a href=#dom-input-multiple title=dom-input-multiple>multiple</a>;
+ attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
+ attribute DOMString <a href=#dom-input-pattern title=dom-input-pattern>pattern</a>;
+ attribute DOMString <a href=#dom-input-placeholder title=dom-input-placeholder>placeholder</a>;
+ attribute boolean <a href=#dom-input-readonly title=dom-input-readOnly>readOnly</a>;
+ attribute boolean <a href=#dom-input-required title=dom-input-required>required</a>;
+ attribute unsigned long <a href=#dom-input-size title=dom-input-size>size</a>;
+ attribute DOMString <a href=#dom-input-src title=dom-input-src>src</a>;
+ attribute DOMString <a href=#dom-input-step title=dom-input-step>step</a>;
+ attribute DOMString <a href=#dom-input-type title=dom-input-type>type</a>;
+ attribute DOMString <a href=#dom-input-defaultvalue title=dom-input-defaultValue>defaultValue</a>;
+ attribute DOMString <a href=#dom-input-value title=dom-input-value>value</a>;
+ attribute <span>Date</span> <a href=#dom-input-valueasdate title=dom-input-valueAsDate>valueAsDate</a>;
+ attribute double <a href=#dom-input-valueasnumber title=dom-input-valueAsNumber>valueAsNumber</a>;
+ readonly attribute <a href=#htmloptionelement>HTMLOptionElement</a>? <a href=#dom-input-selectedoption title=dom-input-selectedOption>selectedOption</a>;
+ attribute DOMString <a href=#dom-dim-width title=dom-dim-width>width</a>;
+
+ void <a href=#dom-input-stepup title=dom-input-stepUp>stepUp</a>(optional long n);
+ void <a href=#dom-input-stepdown title=dom-input-stepDown>stepDown</a>(optional long n);
+
+ readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>;
+ readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>;
+ readonly attribute DOMString <a href=#dom-cva-validationmessage title=dom-cva-validationMessage>validationMessage</a>;
+ boolean <a href=#dom-cva-checkvalidatity title=dom-cva-checkValidatity>checkValidity</a>();
+ void <a href=#dom-cva-setcustomvalidity title=dom-cva-setCustomValidity>setCustomValidity</a>(DOMString error);
+
+ readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
+
+ void <a href=#dom-textarea/input-select title=dom-textarea/input-select>select</a>();
+ attribute unsigned long <a href=#dom-textarea/input-selectionstart title=dom-textarea/input-selectionStart>selectionStart</a>;
+ attribute unsigned long <a href=#dom-textarea/input-selectionend title=dom-textarea/input-selectionEnd>selectionEnd</a>;
+ attribute DOMString <a href=#dom-textarea/input-selectiondirection title=dom-textarea/input-selectionDirection>selectionDirection</a>;
+ void <a href=#dom-textarea/input-setselectionrange title=dom-textarea/input-setSelectionRange>setSelectionRange</a>(unsigned long start, unsigned long end, optional DOMString direction);
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a typed data field,
+ usually with a form control to allow the user to edit the data.</p>
+
+ <p>The <dfn id=attr-input-type title=attr-input-type><code>type</code></dfn>
+ attribute controls the data type (and associated control) of the
+ element. It is an <a href=#enumerated-attribute>enumerated attribute</a>. The following
+ table lists the keywords and states for the attribute &mdash; the
+ keywords in the left column map to the states in the cell in the
+ second column on the same row as the keyword.</p>
+
+ <table id=attr-input-type-keywords><thead><tr><th> Keyword
+ <th> State
+ <th> Data type
+ <th> Control type
+ <tbody><tr><td> <dfn id=attr-input-type-hidden-keyword title=attr-input-type-hidden-keyword><code>hidden</code></dfn>
+ <td> <a href=#hidden-state title=attr-input-type-hidden>Hidden</a>
+ <td> An arbitrary string
+ <td> n/a
+ <tr><td> <dfn id=attr-input-type-text-keyword title=attr-input-type-text-keyword><code>text</code></dfn>
+ <td> <a href=#text-state-and-search-state title=attr-input-type-text>Text</a>
+ <td> Text with no line breaks
+ <td> Text field
+ <tr><td> <dfn id=attr-input-type-search-keyword title=attr-input-type-search-keyword><code>search</code></dfn>
+ <td> <a href=#text-state-and-search-state title=attr-input-type-search>Search</a>
+ <td> Text with no line breaks
+ <td> Search field
+ <tr><td> <dfn id=attr-input-type-tel-keyword title=attr-input-type-tel-keyword><code>tel</code></dfn>
+ <td> <a href=#telephone-state title=attr-input-type-tel>Telephone</a>
+ <td> Text with no line breaks
+ <td> A text field
+ <tr><td> <dfn id=attr-input-type-url-keyword title=attr-input-type-url-keyword><code>url</code></dfn>
+ <td> <a href=#url-state title=attr-input-type-url>URL</a>
+ <td> An absolute IRI
+ <td> A text field
+ <tr><td> <dfn id=attr-input-type-email-keyword title=attr-input-type-email-keyword><code>email</code></dfn>
+ <td> <a href=#e-mail-state title=attr-input-type-email>E-mail</a>
+ <td> An e-mail address or list of e-mail addresses
+ <td> A text field
+ <tr><td> <dfn id=attr-input-type-password-keyword title=attr-input-type-password-keyword><code>password</code></dfn>
+ <td> <a href=#password-state title=attr-input-type-password>Password</a>
+ <td> Text with no line breaks (sensitive information)
+ <td> Text field that obscures data entry
+ <tr><td> <dfn id=attr-input-type-datetime-keyword title=attr-input-type-datetime-keyword><code>datetime</code></dfn>
+ <td> <a href=#date-and-time-state title=attr-input-type-datetime>Date and Time</a>
+ <td> A date and time (year, month, day, hour, minute, second, fraction of a second) with the time zone set to UTC
+ <td> A date and time control
+ <tr><td> <dfn id=attr-input-type-date-keyword title=attr-input-type-date-keyword><code>date</code></dfn>
+ <td> <a href=#date-state title=attr-input-type-date>Date</a>
+ <td> A date (year, month, day) with no time zone
+ <td> A date control
+ <tr><td> <dfn id=attr-input-type-month-keyword title=attr-input-type-month-keyword><code>month</code></dfn>
+ <td> <a href=#month-state title=attr-input-type-month>Month</a>
+ <td> A date consisting of a year and a month with no time zone
+ <td> A month control
+ <tr><td> <dfn id=attr-input-type-week-keyword title=attr-input-type-week-keyword><code>week</code></dfn>
+ <td> <a href=#week-state title=attr-input-type-week>Week</a>
+ <td> A date consisting of a week-year number and a week number with no time zone
+ <td> A week control
+ <tr><td> <dfn id=attr-input-type-time-keyword title=attr-input-type-time-keyword><code>time</code></dfn>
+ <td> <a href=#time-state title=attr-input-type-time>Time</a>
+ <td> A time (hour, minute, seconds, fractional seconds) with no time zone
+ <td> A time control
+ <tr><td> <dfn id=attr-input-type-datetime-local-keyword title=attr-input-type-datetime-local-keyword><code>datetime-local</code></dfn>
+ <td> <a href=#local-date-and-time-state title=attr-input-type-datetime-local>Local Date and Time</a>
+ <td> A date and time (year, month, day, hour, minute, second, fraction of a second) with no time zone
+ <td> A date and time control
+ <tr><td> <dfn id=attr-input-type-number-keyword title=attr-input-type-number-keyword><code>number</code></dfn>
+ <td> <a href=#number-state title=attr-input-type-number>Number</a>
+ <td> A numerical value
+ <td> A text field or spinner control
+ <tr><td> <dfn id=attr-input-type-range-keyword title=attr-input-type-range-keyword><code>range</code></dfn>
+ <td> <a href=#range-state title=attr-input-type-range>Range</a>
+ <td> A numerical value, with the extra semantic that the exact value is not important
+ <td> A slider control or similar
+ <tr><td> <dfn id=attr-input-type-color-keyword title=attr-input-type-color-keyword><code>color</code></dfn>
+ <td> <a href=#color-state title=attr-input-type-color>Color</a>
+ <td> An sRGB color with 8-bit red, green, and blue components
+ <td> A color well
+ <tr><td> <dfn id=attr-input-type-checkbox-keyword title=attr-input-type-checkbox-keyword><code>checkbox</code></dfn>
+ <td> <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a>
+ <td> A set of zero or more values from a predefined list
+ <td> A checkbox
+ <tr><td> <dfn id=attr-input-type-radio-keyword title=attr-input-type-radio-keyword><code>radio</code></dfn>
+ <td> <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a>
+ <td> An enumerated value
+ <td> A radio button
+ <tr><td> <dfn id=attr-input-type-file-keyword title=attr-input-type-file-keyword><code>file</code></dfn>
+ <td> <a href=#file-upload-state title=attr-input-type-file>File Upload</a>
+ <td> Zero or more files each with a <a href=#mime-type>MIME type</a> and optionally a file name
+ <td> A label and a button
+ <tr><td> <dfn id=attr-input-type-submit-keyword title=attr-input-type-submit-keyword><code>submit</code></dfn>
+ <td> <a href=#submit-button-state title=attr-input-type-submit>Submit Button</a>
+ <td> An enumerated value, with the extra semantic that it must be the last value selected and initiates form submission
+ <td> A button
+ <tr><td> <dfn id=attr-input-type-image-keyword title=attr-input-type-image-keyword><code>image</code></dfn>
+ <td> <a href=#image-button-state title=attr-input-type-image>Image Button</a>
+ <td> A coordinate, relative to a particular image's size, with the extra semantic that it must be the last value selected and initiates form submission
+ <td> Either a clickable image, or a button
+ <tr><td> <dfn id=attr-input-type-reset-keyword title=attr-input-type-reset-keyword><code>reset</code></dfn>
+ <td> <a href=#reset-button-state title=attr-input-type-reset>Reset Button</a>
+ <td> n/a
+ <td> A button
+ <tr><td> <dfn id=attr-input-type-button-keyword title=attr-input-type-button-keyword><code>button</code></dfn>
+ <td> <a href=#button-state title=attr-input-type-button>Button</a>
+ <td> n/a
+ <td> A button
+ </table><p>The <i>missing value default</i> is the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state.</p>
+
+ <p>Which of the <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code>, <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code>, <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>, <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>, <code title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>, <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>, <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>, <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>, <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>, <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>, <code title=attr-dim-height><a href=#attr-dim-height>height</a></code>, <code title=attr-input-list><a href=#attr-input-list>list</a></code>, <code title=attr-input-max><a href=#attr-input-max>max</a></code>, <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>, <code title=attr-input-min><a href=#attr-input-min>min</a></code>, <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>, <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>, <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>, <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>, <code title=attr-input-required><a href=#attr-input-required>required</a></code>, <code title=attr-input-size><a href=#attr-input-size>size</a></code>, <code title=attr-input-src><a href=#attr-input-src>src</a></code>, <code title=attr-input-step><a href=#attr-input-step>step</a></code>, and <code title=attr-dim-width><a href=#attr-dim-width>width</a></code> content attributes, the <code title=dom-input-checked><a href=#dom-input-checked>checked</a></code>, <code title=dom-input-files><a href=#dom-input-files>files</a></code>, <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, <code title=dom-input-list><a href=#dom-input-list>list</a></code>, and <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL
+ attributes, the <code title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> method, the <code title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>, and
+ <code title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ IDL attributes, the <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>
+ method, the <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> and
+ <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> methods, and the
+ <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply to an
+ <code><a href=#the-input-element>input</a></code> element depends on the state of its <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute. The following table
+ <span class=impl>is non-normative and</span> summarizes which of
+ those content attributes, IDL attributes, methods, and events apply
+ to each state:</p>
+
+ <table class=applies id=input-type-attr-summary><thead><tr><th>
+ <th> <span title=""><a href=#hidden-state title=attr-input-type-hidden>Hidden</a></span>
+ <th> <span title=""><a href=#text-state-and-search-state title=attr-input-type-text>Text</a>,</span>
+ <span title=""><a href=#text-state-and-search-state title=attr-input-type-search>Search</a></span>
+ <th> <span title=""><a href=#url-state title=attr-input-type-url>URL</a>,</span>
+ <span title=""><a href=#telephone-state title=attr-input-type-tel>Telephone</a></span>
+ <th> <span title=""><a href=#e-mail-state title=attr-input-type-email>E-mail</a></span>
+ <th> <span title=""><a href=#password-state title=attr-input-type-password>Password</a></span>
+ <th> <span title=""><a href=#date-and-time-state title=attr-input-type-datetime>Date and Time</a>,</span>
+ <span title=""><a href=#date-state title=attr-input-type-date>Date</a>,</span>
+ <span title=""><a href=#month-state title=attr-input-type-month>Month</a>,</span>
+ <span title=""><a href=#week-state title=attr-input-type-week>Week</a>,</span>
+ <span title=""><a href=#time-state title=attr-input-type-time>Time</a></span>
+ <th> <span title=""><a href=#local-date-and-time-state title=attr-input-type-datetime-local>Local Date and Time</a></span>
+ <th> <span title=""><a href=#number-state title=attr-input-type-number>Number</a></span>
+ <th> <span title=""><a href=#range-state title=attr-input-type-range>Range</a></span>
+ <th> <span title=""><a href=#color-state title=attr-input-type-color>Color</a></span>
+ <th> <span title=""><a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a>,</span>
+ <span title=""><a href=#radio-button-state title=attr-input-type-radio>Radio Button</a></span>
+ <th> <span title=""><a href=#file-upload-state title=attr-input-type-file>File Upload</a></span>
+ <th> <span title=""><a href=#submit-button-state title=attr-input-type-submit>Submit Button</a></span>
+ <th> <span title=""><a href=#image-button-state title=attr-input-type-image>Image Button</a></span>
+ <th> <span title=""><a href=#reset-button-state title=attr-input-type-reset>Reset Button</a>,</span>
+ <span title=""><a href=#button-state title=attr-input-type-button>Button</a></span>
+
+ <tbody><tr><th colspan=16 scope=rowgroup>Content attributes
+
+ <tr><th> <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=yes> Yes <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=yes> Yes <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=yes> Yes <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=yes> Yes <!-- Checkbox -->
+<!-- <td class="yes"> Yes Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=yes> Yes <!-- Submit Button -->
+ <td class=yes> Yes <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=yes> Yes <!-- Submit Button -->
+ <td class=yes> Yes <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=yes> Yes <!-- Submit Button -->
+ <td class=yes> Yes <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=yes> Yes <!-- Submit Button -->
+ <td class=yes> Yes <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=yes> Yes <!-- Submit Button -->
+ <td class=yes> Yes <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-dim-height><a href=#attr-dim-height>height</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=yes> Yes <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-list><a href=#attr-input-list>list</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=yes> Yes <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-max><a href=#attr-input-max>max</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-min><a href=#attr-input-min>min</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone --> <!-- if you change this, you can merge this line with the next to save room on the chart -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=yes> Yes <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-required><a href=#attr-input-required>required</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=yes> Yes <!-- Checkbox -->
+<!-- <td class="yes"> Yes Radio Button -->
+ <td class=yes> Yes <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-size><a href=#attr-input-size>size</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-src><a href=#attr-input-src>src</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=yes> Yes <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-input-step><a href=#attr-input-step>step</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=attr-dim-width><a href=#attr-dim-width>width</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=yes> Yes <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tbody><tr><th colspan=16 scope=rowgroup>IDL attributes and methods
+
+ <tr><th> <code title=dom-input-checked><a href=#dom-input-checked>checked</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=yes> Yes <!-- Checkbox -->
+<!-- <td class="yes"> Yes Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-input-files><a href=#dom-input-files>files</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=yes> Yes <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr class=impl><th> <code title=dom-input-value><a href=#dom-input-value>value</a></code>
+ <td class=yes> <a href=#dom-input-value-default title=dom-input-value-default>default</a> <!-- Hidden -->
+ <td class=yes> <a href=#dom-input-value-value title=dom-input-value-value>value</a> <!-- Text -->
+<!-- <td class="yes"> <span title="dom-input-value-value">value</span> Search -->
+ <td class=yes> <a href=#dom-input-value-value title=dom-input-value-value>value</a> <!-- URL, Telephone -->
+ <td class=yes> <a href=#dom-input-value-value title=dom-input-value-value>value</a> <!-- E-mail -->
+ <td class=yes> <a href=#dom-input-value-value title=dom-input-value-value>value</a> <!-- Password -->
+ <td class=yes> <a href=#dom-input-value-value title=dom-input-value-value>value</a> <!-- Date and Time -->
+<!-- <td class="yes"> <span title="dom-input-value-value">value</span> Date -->
+<!-- <td class="yes"> <span title="dom-input-value-value">value</span> Month -->
+<!-- <td class="yes"> <span title="dom-input-value-value">value</span> Week -->
+<!-- <td class="yes"> <span title="dom-input-value-value">value</span> Time -->
+ <td class=yes> <a href=#dom-input-value-value title=dom-input-value-value>value</a> <!-- Local Date and Time -->
+ <td class=yes> <a href=#dom-input-value-value title=dom-input-value-value>value</a> <!-- Number -->
+ <td class=yes> <a href=#dom-input-value-value title=dom-input-value-value>value</a> <!-- Range -->
+ <td class=yes> <a href=#dom-input-value-value title=dom-input-value-value>value</a> <!-- Color -->
+ <td class=yes> <a href=#dom-input-value-default-on title=dom-input-value-default-on>default/on</a> <!-- Checkbox -->
+<!-- <td class="yes"> <span title="dom-input-value-default-on">default/on</span> Radio Button -->
+ <td class=yes> <a href=#dom-input-value-filename title=dom-input-value-filename>filename</a> <!-- File Upload -->
+ <td class=yes> <a href=#dom-input-value-default title=dom-input-value-default>default</a> <!-- Submit Button -->
+ <td class=yes> <a href=#dom-input-value-default title=dom-input-value-default>default</a> <!-- Image Button -->
+ <td class=yes> <a href=#dom-input-value-default title=dom-input-value-default>default</a> <!-- Reset Button -->
+<!-- <td class="yes"> <span title="dom-input-value-default">default</span> Button -->
+
+ <tr><th> <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-input-list><a href=#dom-input-list>list</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=yes> Yes <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes&dagger; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=yes> Yes <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot; Date -->
+<!-- <td class="no"> &middot; Month -->
+<!-- <td class="no"> &middot; Week -->
+<!-- <td class="no"> &middot; Time -->
+ <td class=no> &middot; <!-- Local Date and Time -->
+ <td class=no> &middot; <!-- Number -->
+ <td class=no> &middot; <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot; Search -->
+ <td class=no> &middot; <!-- URL, Telephone -->
+ <td class=no> &middot; <!-- E-mail -->
+ <td class=no> &middot; <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=no> &middot; <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tbody><tr><th colspan=16 scope=rowgroup>Events
+
+ <tr><th> <span title=""><code title=event-input-input><a href=#event-input-input>input</a></code> event</span>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=yes> Yes <!-- Color -->
+ <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot; Radio Button -->
+ <td class=no> &middot; <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ <tr><th> <span title=""><code title=event-input-change><a href=#event-input-change>change</a></code> event</span>
+ <td class=no> &middot; <!-- Hidden -->
+ <td class=yes> Yes <!-- Text -->
+<!-- <td class="yes"> Yes Search -->
+ <td class=yes> Yes <!-- URL, Telephone -->
+ <td class=yes> Yes <!-- E-mail -->
+ <td class=yes> Yes <!-- Password -->
+ <td class=yes> Yes <!-- Date and Time -->
+<!-- <td class="yes"> Yes Date -->
+<!-- <td class="yes"> Yes Month -->
+<!-- <td class="yes"> Yes Week -->
+<!-- <td class="yes"> Yes Time -->
+ <td class=yes> Yes <!-- Local Date and Time -->
+ <td class=yes> Yes <!-- Number -->
+ <td class=yes> Yes <!-- Range -->
+ <td class=yes> Yes <!-- Color -->
+ <td class=yes> Yes <!-- Checkbox -->
+<!-- <td class="yes"> Yes Radio Button -->
+ <td class=yes> Yes <!-- File Upload -->
+ <td class=no> &middot; <!-- Submit Button -->
+ <td class=no> &middot; <!-- Image Button -->
+ <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot; Button -->
+
+ </table><p class=note>&dagger; The dagger symbol (&dagger;) indicates that
+ the feature only applies when the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute is not
+ specified.</p>
+
+
+ <div class=impl>
+
+ <p>Some states of the <code title=attr-input-type><a href=#attr-input-type>type</a></code>
+ attribute define a <dfn id=value-sanitization-algorithm>value sanitization algorithm</dfn>.</p>
+
+ <p>Each <code><a href=#the-input-element>input</a></code> element has a <a href=#concept-fe-value title=concept-fe-value>value</a>, which is exposed by the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute. Some states
+ define an <dfn id=concept-input-value-string-number title=concept-input-value-string-number>algorithm
+ to convert a string to a number</dfn>, an <dfn id=concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</dfn>, an <dfn id=concept-input-value-string-date title=concept-input-value-string-date>algorithm to convert a
+ string to a <code>Date</code> object</dfn>, and an <dfn id=concept-input-value-date-string title=concept-input-value-date-string>algorithm to convert a
+ <code>Date</code> object to a string</dfn>, which are used by
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code>,
+ <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>,
+ <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>,
+ <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
+ <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code>.</p>
+
+ <p>Each <code><a href=#the-input-element>input</a></code> element has a boolean <dfn id=concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</dfn>. The
+ <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</a>
+ must be initially set to false when the element is created, and must
+ be set to true whenever the user interacts with the control in a way
+ that changes the <a href=#concept-fe-value title=concept-fe-value>value</a>. (It is
+ also set to true when the value is programmatically changed, as
+ described in the definition of the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute.)</p>
+
+ </div>
+
+ <p>The <dfn id=attr-input-value title=attr-input-value><code>value</code></dfn>
+ content attribute gives the default <a href=#concept-fe-value title=concept-fe-value>value</a> of the <code><a href=#the-input-element>input</a></code>
+ element. <span class=impl>When the <code title=attr-input-value><a href=#attr-input-value>value</a></code> content attribute is added,
+ set, or removed, if the control's <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</a> is
+ false, the user agent must set the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element to the value of
+ the <code title=attr-input-value><a href=#attr-input-value>value</a></code> content attribute,
+ if there is one, or the empty string otherwise, and then run the
+ current <a href=#value-sanitization-algorithm>value sanitization algorithm</a>, if one is
+ defined.</span></p>
+
+ <div class=impl>
+
+ <p>Each <code><a href=#the-input-element>input</a></code> element has a <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a>, which is exposed by
+ the <code title=dom-input-checked><a href=#dom-input-checked>checked</a></code> IDL
+ attribute.</p>
+
+ <p>Each <code><a href=#the-input-element>input</a></code> element has a boolean <dfn id=concept-input-checked-dirty-flag title=concept-input-checked-dirty-flag>dirty checkedness
+ flag</dfn>. When it is true, the element is said to have a <dfn id=concept-input-checked-dirty title=concept-input-checked-dirty><i>dirty
+ checkedness</i></dfn>. The <a href=#concept-input-checked-dirty-flag title=concept-input-checked-dirty-flag>dirty checkedness
+ flag</a> must be initially set to false when the element is
+ created, and must be set to true whenever the user interacts with
+ the control in a way that changes the <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a>.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-input-checked title=attr-input-checked><code>checked</code></dfn>
+ content attribute is a <a href=#boolean-attribute>boolean attribute</a> that gives the
+ default <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> of the
+ <code><a href=#the-input-element>input</a></code> element. <span class=impl>When the <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code> content attribute is
+ added, if the control does not have <i title=concept-input-checked-dirty><a href=#concept-input-checked-dirty>dirty checkedness</a></i>, the user
+ agent must set the <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> of the element to
+ true; when the <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>
+ content attribute is removed, if the control does not have <i title=concept-input-checked-dirty><a href=#concept-input-checked-dirty>dirty checkedness</a></i>, the user
+ agent must set the <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> of the element to
+ false.</span></p>
+
+ <div class=impl>
+
+ <p>The <a href=#concept-form-reset-control title=concept-form-reset-control>reset
+ algorithm</a> for <code><a href=#the-input-element>input</a></code> elements is to set the <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</a> and
+ <a href=#concept-input-checked-dirty-flag title=concept-input-checked-dirty-flag>dirty checkedness
+ flag</a> back to false, set the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element to the value of
+ the <code title=attr-input-value><a href=#attr-input-value>value</a></code> content attribute,
+ if there is one, or the empty string otherwise, set the <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> of the element to true
+ if the element has a <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>
+ content attribute and false if it does not, empty the list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>, and
+ then invoke the <a href=#value-sanitization-algorithm>value sanitization algorithm</a>, if the
+ <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state
+ defines one.</p>
+
+ <p>Each <code><a href=#the-input-element>input</a></code> element is either <dfn id=concept-input-mutable title=concept-input-mutable><i>mutable</i></dfn> or <dfn id=concept-input-immutable title=concept-input-immutable><i>immutable</i></dfn>. Except where
+ otherwise specified, an <code><a href=#the-input-element>input</a></code> element is always <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>. Similarly, except where
+ otherwise specified, the user agent should not allow the user to
+ modify the element's <a href=#concept-fe-value title=concept-fe-value>value</a> or
+ <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a>.</p>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, it is <i title=concept-input-immutable><a href=#concept-input-immutable>immutable</a></i>.</p>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element does not have a
+ <code><a href=#document>Document</a></code> node as one of its ancestors (i.e. when it is
+ not in the document), it is <i title=concept-input-immutable><a href=#concept-input-immutable>immutable</a></i>.</p> <!-- XBL2 spec
+ point -->
+
+ <p class=note>The <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute can also in
+ some cases (e.g. for the <a href=#date-state title=attr-input-type-date>Date</a> state, but not the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state) make an
+ <code><a href=#the-input-element>input</a></code> element <i title=concept-input-immutable><a href=#concept-input-immutable>immutable</a></i>.</p>
+
+ <p>The <a href=#concept-node-clone-ext title=concept-node-clone-ext>cloning steps</a> for
+ <code><a href=#the-input-element>input</a></code> elements must propagate the <a href=#concept-fe-value title=concept-fe-value>value</a>, <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</a>,
+ <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a>, and <a href=#concept-input-checked-dirty-flag title=concept-input-checked-dirty-flag>dirty checkedness
+ flag</a> from the node being cloned to the copy.</p>
+
+ <hr><p>When an <code><a href=#the-input-element>input</a></code> element is first created, the
+ element's rendering and behavior must be set to the rendering and
+ behavior defined for the <code title=attr-input-type><a href=#attr-input-type>type</a></code>
+ attribute's state, and the <a href=#value-sanitization-algorithm>value sanitization
+ algorithm</a>, if one is defined for the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's state, must be
+ invoked.</p>
+
+ </div>
+
+ <div class=impl id=input-type-change>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute changes state, the
+ user agent must run the following steps:</p>
+
+ <ol><!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/602 --><li><p>If the previous state of the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute put the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute in the <i title=dom-input-value-value><a href=#dom-input-value-value>value</a></i> mode, and the element's
+ <a href=#concept-fe-value title=concept-fe-value>value</a> is not the empty
+ string, and the new state of the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute puts the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute in either the <i title=dom-input-value-default><a href=#dom-input-value-default>default</a></i> mode or the <i title=dom-input-value-default-on><a href=#dom-input-value-default-on>default/on</a></i> mode, then set
+ the element's <code title=attr-input-value><a href=#attr-input-value>value</a></code> content
+ attribute to the element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</li>
+
+ <li><p>Otherwise, if the previous state of the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute put the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute in any mode
+ other than the <i title=dom-input-value-value><a href=#dom-input-value-value>value</a></i> mode, and
+ the new state of the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute puts the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute in the <i title=dom-input-value-value><a href=#dom-input-value-value>value</a></i> mode, then set the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element to the value
+ of the <code title=attr-input-value><a href=#attr-input-value>value</a></code> content
+ attribute, if there is one, or the empty string otherwise, and
+ then set the control's <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</a> to
+ false.</li>
+
+ <li><p>Update the element's rendering and behavior to the new
+ state's.</li>
+
+ <li><p>Invoke the <a href=#value-sanitization-algorithm>value sanitization algorithm</a>, if one
+ is defined for the <code title=attr-input-type><a href=#attr-input-type>type</a></code>
+ attribute's new state.</li>
+
+ </ol></div>
+
+ <hr><p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
+ explicitly associate the <code><a href=#the-input-element>input</a></code> element with its
+ <a href=#form-owner>form owner</a>. The <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>
+ attribute represents the element's name. The <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is used to make
+ the control non-interactive and to prevent its value from being
+ submitted. The <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>
+ attribute controls focus.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-input-indeterminate title=dom-input-indeterminate><code>indeterminate</code></dfn> IDL
+ attribute must initially be set to false. On getting, it must return
+ the last value it was set to. On setting, it must be set to the new
+ value. It has no effect except for changing the appearance of <a href=#checkbox-state title=attr-input-type-checkbox>checkbox</a> controls.</p>
+
+ <p>The <dfn id=dom-input-accept title=dom-input-accept><code>accept</code></dfn>, <dfn id=dom-input-alt title=dom-input-alt><code>alt</code></dfn>, <dfn id=dom-input-max title=dom-input-max><code>max</code></dfn>, <dfn id=dom-input-min title=dom-input-min><code>min</code></dfn>, <dfn id=dom-input-multiple title=dom-input-multiple><code>multiple</code></dfn>, <dfn id=dom-input-pattern title=dom-input-pattern><code>pattern</code></dfn>, <dfn id=dom-input-placeholder title=dom-input-placeholder><code>placeholder</code></dfn>, <dfn id=dom-input-required title=dom-input-required><code>required</code></dfn>, <dfn id=dom-input-size title=dom-input-size><code>size</code></dfn>, <dfn id=dom-input-src title=dom-input-src><code>src</code></dfn>, and <dfn id=dom-input-step title=dom-input-step><code>step</code></dfn> IDL attributes must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name. The <dfn id=dom-input-dirname title=dom-input-dirName><code>dirName</code></dfn> IDL attribute
+ must <a href=#reflect>reflect</a> the <code title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code> content attribute. The <dfn id=dom-input-readonly title=dom-input-readOnly><code>readOnly</code></dfn> IDL attribute
+ must <a href=#reflect>reflect</a> the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> content attribute. The
+ <dfn id=dom-input-defaultchecked title=dom-input-defaultChecked><code>defaultChecked</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code> content attribute. The
+ <dfn id=dom-input-defaultvalue title=dom-input-defaultValue><code>defaultValue</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the <code title=attr-input-value><a href=#attr-input-value>value</a></code> content attribute.</p>
+
+ <p>The <dfn id=dom-input-autocomplete title=dom-input-autocomplete><code>autocomplete</code></dfn> and
+ <dfn id=dom-input-type title=dom-input-type><code>type</code></dfn> IDL attributes
+ must <a href=#reflect>reflect</a> the respective content attributes of the
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>. The <dfn id=dom-input-maxlength title=dom-input-maxLength><code>maxLength</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code> content attribute,
+ <a href=#limited-to-only-non-negative-numbers>limited to only non-negative numbers</a>.</p>
+
+ <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code>
+ attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
+ methods, are part of the <a href=#the-constraint-validation-api>constraint validation API</a>. The
+ <code title=dom-lfe-labels><a href=#dom-lfe-labels>labels</a></code> attribute provides a list
+ of the element's <code><a href=#the-label-element>label</a></code>s. The <code title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>, <code title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ and <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>
+ methods and attributes expose the element's text selection. The
+ <code title=dom-fe-autofocus><a href=#dom-fe-autofocus>autofocus</a></code>, <code title=dom-fe-disabled><a href=#dom-fe-disabled>disabled</a></code>, <code title=dom-fae-form><a href=#dom-fae-form>form</a></code>, and <code title=dom-fe-name><a href=#dom-fe-name>name</a></code> IDL attributes are part of the
+ element's forms API.</p>
+
+ </div>
+
+
+
+ <h5 id=states-of-the-type-attribute><span class=secno>4.10.7.1 </span>States of the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute</h5>
+
+
+ <h6 id=hidden-state><span class=secno>4.10.7.1.1 </span><dfn title=attr-input-type-hidden>Hidden</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state, the rules in
+ this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a value
+ that is not intended to be examined or manipulated by the user.</p>
+
+ <div class=impl>
+
+ <p><strong>Constraint validation</strong>: If an <code><a href=#the-input-element>input</a></code>
+ element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in
+ the <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state, it is
+ <a href=#barred-from-constraint-validation>barred from constraint validation</a>.</p>
+
+ </div>
+
+ <p>If the <code title=attr-input-value><a href=#attr-input-value>name</a></code> attribute is
+ present and has a value that is a <a href=#case-sensitive>case-sensitive</a> match
+ for the string "<code title=attr-fe-name-charset><a href=#attr-fe-name-charset>_charset_</a></code>", then the element's
+ <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute must be
+ omitted.</p>
+
+ <div class=bookkeeping>
+
+ <p>The
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code>
+ IDL attribute applies to this element and is
+ in mode <a href=#dom-input-value-default title=dom-input-value-default>default</a>.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code class=no-backref title=attr-input-required><a href=#attr-input-required>required</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code class=no-backref title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>,
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>,
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not apply.</p>
+
+ </div>
+
+
+ <h6 id=text-state-and-search-state><span class=secno>4.10.7.1.2 </span><dfn title=attr-input-type-text>Text</dfn> state and <dfn title=attr-input-type-search>Search</dfn> state</h6>
+
+ <!-- v2 idea: applying input masks to <input>, e.g. for entering
+ data with slashes and dashes (ack Greg Kilwein)
+ -->
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state or the <a href=#text-state-and-search-state title=attr-input-type-search>Search</a> state, the rules in
+ this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a one line
+ plain text edit control for the element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ <p class=note>The difference between the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state and the <a href=#text-state-and-search-state title=attr-input-type-search>Search</a> state is primarily
+ stylistic: on platforms where search fields are distinguished from
+ regular text fields, the <a href=#text-state-and-search-state title=attr-input-type-search>Search</a> state might result in
+ an appearance consistent with the platform's search fields rather
+ than appearing like a regular text field.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ its <a href=#concept-fe-value title=concept-fe-value>value</a> should be editable
+ by the user. User agents must not allow users to insert U+000A LINE
+ FEED (LF) or U+000D CARRIAGE RETURN (CR) characters into the
+ element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ <!-- this next bit is also in the <textarea> section -->
+ <!-- and something similar is in the session history section -->
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the writing direction
+ of the element, setting it either to a left-to-right writing
+ direction or a right-to-left writing direction. If the user does so,
+ the user agent must then run the following steps:</p>
+
+ <ol><li><p>Set the element's <code title=attr-dir><a href=#the-dir-attribute>dir</a></code>
+ attribute to "<code title=attr-dir-ltr><a href=#attr-dir-ltr>ltr</a></code>" if the user
+ selected a left-to-right writing direction, and "<code title=attr-dir-rtl><a href=#attr-dir-rtl>rtl</a></code>" if the user selected a
+ right-to-left writing direction.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> that bubbles named <code title=event-input>input</code> at the <code><a href=#the-input-element>input</a></code>
+ element.</li>
+
+ </ol></div>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified, must have a value that contains no U+000A LINE FEED (LF)
+ or U+000D CARRIAGE RETURN (CR) characters.</p>
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: <a href=#strip-line-breaks>Strip line breaks</a> from the <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-size><a href=#attr-input-size>size</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>, and
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attributes;
+ <code title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ </div>
+
+
+ <h6 id=telephone-state><span class=secno>4.10.7.1.3 </span><dfn title=attr-input-type-tel>Telephone</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#telephone-state title=attr-input-type-tel>Telephone</a> state, the rules in
+ this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ for editing a telephone number given in the element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ its <a href=#concept-fe-value title=concept-fe-value>value</a> should be editable
+ by the user. User agents may change the spacing and, with care, the
+ punctuation of <a href=#concept-fe-value title=concept-fe-value>values</a> that the
+ user enters. User agents must not allow users to insert U+000A LINE
+ FEED (LF) or U+000D CARRIAGE RETURN (CR) characters into the
+ element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified, must have a value that contains no U+000A LINE FEED (LF)
+ or U+000D CARRIAGE RETURN (CR) characters.</p>
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: <a href=#strip-line-breaks>Strip line breaks</a> from the <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ </div>
+
+ <p class=note>Unlike the <a href=#url-state title=attr-input-type-url>URL</a> and <a href=#e-mail-state title=attr-input-type-email>E-mail</a> types, the <a href=#telephone-state title=attr-input-type-tel>Telephone</a> type does not enforce a
+ particular syntax. This is intentional; in practice, telephone
+ number fields tend to be free-form fields, because there are a wide
+ variety of valid phone numbers. Systems that need to enforce a
+ particular format are encouraged to use the <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code> attribute or the <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code> method
+ to hook into the client-side validation mechanism.</p>
+
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-size><a href=#attr-input-size>size</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>, and
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attributes;
+ <code title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ </div>
+
+
+ <h6 id=url-state><span class=secno>4.10.7.1.4 </span><dfn title=attr-input-type-url>URL</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#url-state title=attr-input-type-url>URL</a> state, the rules in this
+ section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ for editing a single <a href=#absolute-url>absolute URL</a> given in the
+ element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the URL represented
+ by its <a href=#concept-fe-value title=concept-fe-value>value</a>. User agents may
+ allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a string that is not a
+ <a href=#valid-url title="valid URL">valid</a> <a href=#absolute-url>absolute URL</a>, but
+ may also or instead automatically escape characters entered by the
+ user so that the <a href=#concept-fe-value title=concept-fe-value>value</a> is
+ always a <a href=#valid-url title="valid URL">valid</a> <a href=#absolute-url>absolute
+ URL</a> (even if that isn't the actual value seen and edited by
+ the user in the interface). User agents should allow the user to set
+ the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty
+ string. User agents must not allow users to insert U+000A LINE FEED
+ (LF) or U+000D CARRIAGE RETURN (CR) characters into the <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified and not empty, must have a value that is a <a href=#valid-url-potentially-surrounded-by-spaces>valid URL
+ potentially surrounded by spaces</a> that is also an
+ <a href=#absolute-url>absolute URL</a>.</p>
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: <a href=#strip-line-breaks>Strip line breaks</a> from the <a href=#concept-fe-value title=concept-fe-value>value</a>, then <a href=#strip-leading-and-trailing-whitespace>strip leading and
+ trailing whitespace</a> from the <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ <p><strong>Constraint validation</strong>: While the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element is neither the
+ empty string nor a <a href=#valid-url title="valid URL">valid</a>
+ <a href=#absolute-url>absolute URL</a>, the element is <a href=#suffering-from-a-type-mismatch>suffering from a
+ type mismatch</a>.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-size><a href=#attr-input-size>size</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>, and
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attributes;
+ <code title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>If a document contained the following markup:</p>
+
+ <pre>&lt;input type="url" name="location" list="urls"&gt;
+&lt;datalist id="urls"&gt;
+ &lt;option label="MIME: Format of Internet Message Bodies" value="http://tools.ietf.org/html/rfc2045"&gt;
+ &lt;option label="HTML 4.01 Specification" value="http://www.w3.org/TR/html4/"&gt;
+ &lt;option label="Form Controls" value="http://www.w3.org/TR/xforms/slice8.html#ui-commonelems-hint"&gt;
+ &lt;option label="Scalable Vector Graphics (SVG) 1.1 Specification" value="http://www.w3.org/TR/SVG/"&gt;
+ &lt;option label="Feature Sets - SVG 1.1 - 20030114" value="http://www.w3.org/TR/SVG/feature.html"&gt;
+ &lt;option label="The Single UNIX Specification, Version 3" value="http://www.unix-systems.org/version3/"&gt;
+&lt;/datalist&gt;
+</pre>
+
+ <p>...and the user had typed "<kbd>www.w3</kbd>", and the user
+ agent had also found that the user had visited
+ <code>http://www.w3.org/Consortium/#membership</code> and
+ <code>http://www.w3.org/TR/XForms/</code> in the recent past, then
+ the rendering might look like this:</p>
+
+ <p><img alt='A text box with an icon on the left followed by the text "www.w3" and a cursor, with a drop down button on the right hand side; with, below, a drop down box containing a list of six URLs on the left, with the first four having grayed out labels on the right; and a scroll bar to the right of the drow down box, indicating further values are available.' height=134 src=greenbox.png width=472></p>
+
+ <p>The first four URLs in this sample consist of the four URLs in
+ the author-specified list that match the text the user has entered,
+ sorted in some UA-defined manner (maybe by how frequently the user
+ refers to those URLs). Note how the UA is using the knowledge that
+ the values are URLs to allow the user to omit the scheme part and
+ perform intelligent matching on the domain name.</p>
+
+ <p>The last two URLs (and probably many more, given the scrollbar's
+ indications of more values being available) are the matches from
+ the user agent's session history data. This data is not made
+ available to the page DOM. In this particular case, the UA has no
+ titles to provide for those values.</p>
+
+ </div>
+
+
+ <h6 id=e-mail-state><span class=secno>4.10.7.1.5 </span><dfn title=attr-input-type-email>E-mail</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#e-mail-state title=attr-input-type-email>E-mail</a> state, the rules in this
+ section apply.</p>
+
+ </div>
+
+ <p>How the <a href=#e-mail-state title=attr-input-type-email>E-mail</a> state
+ operates depends on whether the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute is specified
+ or not.</p>
+
+ <dl class=switch><dt>When the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+ attribute is not specified on the element</dt>
+
+ <dd>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a
+ control for editing an e-mail address given in the element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the e-mail address
+ represented by its <a href=#concept-fe-value title=concept-fe-value>value</a>.
+ User agents may allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a string that is not a
+ <a href=#valid-e-mail-address>valid e-mail address</a>. The user agent should act in a
+ manner consistent with expecting the user to provide a single
+ e-mail address. User agents should allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string. User
+ agents must not allow users to insert U+000A LINE FEED (LF) or
+ U+000D CARRIAGE RETURN (CR) characters into the <a href=#concept-fe-value title=concept-fe-value>value</a>. User agents may transform
+ the <a href=#concept-fe-value title=concept-fe-value>value</a> for display and
+ editing; in particular, user agents should convert punycode in the
+ <a href=#concept-fe-value title=concept-fe-value>value</a> to IDN in the display
+ and vice versa.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified and not empty, must have a value that is a single
+ <a href=#valid-e-mail-address>valid e-mail address</a>.</p>
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: <a href=#strip-line-breaks>Strip line breaks</a> from the <a href=#concept-fe-value title=concept-fe-value>value</a>, then <a href=#strip-leading-and-trailing-whitespace>strip leading
+ and trailing whitespace</a> from the <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ <p>When the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+ attribute is removed, the user agent must run the <a href=#value-sanitization-algorithm>value
+ sanitization algorithm</a>.</p>
+
+ <p><strong>Constraint validation</strong>: While the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element is neither
+ the empty string nor a single <a href=#valid-e-mail-address>valid e-mail address</a>,
+ the element is <a href=#suffering-from-a-type-mismatch>suffering from a type mismatch</a>.</p>
+
+ </div>
+
+ </dd>
+
+ <dt>When the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+ attribute <em>is</em> specified on the element</dt>
+
+ <dd>
+
+ <div class=impl>
+
+ <p>The element's <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a> are the result of
+ <a href=#split-a-string-on-commas title="split a string on commas">splitting on commas</a>
+ the element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a
+ control for adding, removing, and editing the e-mail addresses
+ given in the element's <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to add, remove, and edit the
+ e-mail addresses represented by its <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a>. User agents may
+ allow the user to set any individual value in the list of <a href=#concept-fe-value title=concept-fe-value>value<em>s</em></a> to a string that
+ is not a <a href=#valid-e-mail-address>valid e-mail address</a>, but must not allow
+ users to set any individual value to a string containing U+002C
+ COMMA (,), U+000A LINE FEED (LF), or U+000D CARRIAGE RETURN (CR)
+ characters. User agents should allow the user to remove all the
+ addresses in the element's <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a>. User agents may
+ transform the <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a> for display and
+ editing; in particular, user agents should convert punycode in the
+ <a href=#concept-fe-value title=concept-fe-value>value</a> to IDN in the display
+ and vice versa.</p>
+
+ <p>Whenever the user changes the element's <a href=#concept-fe-value title=concept-fe-value>value<em>s</em></a>, the user agent
+ must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">latest values</var> be a copy of the
+ element's <a href=#concept-fe-value title=concept-fe-value>value<em>s</em></a>.</li>
+
+ <!-- It's a copy because /values/ might include leading and
+ trailing spaces that we don't necessarily want to remove from the
+ UI but that we do want to remove before serialising. -->
+
+ <li><p><a href=#strip-leading-and-trailing-whitespace>Strip leading and trailing whitespace</a> from
+ each value in <var title="">latest values</var>.</li>
+
+ <li><p>Let the element's <a href=#concept-fe-value title=concept-fe-value>value</a> be the result of
+ concatenating all the values in <var title="">latest
+ values</var>, separating each value from the next by a single
+ U+002C COMMA character (,), maintaining the list's
+ order.</li>
+
+ </ol></div>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-e-mail-address-list>valid e-mail address
+ list</a>.</p>
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>:</p>
+
+ <ol><li><p><a href=#split-a-string-on-commas title="split a string on commas">Split on
+ commas</a> the element's <a href=#concept-fe-value title=concept-fe-value>value</a>, <a href=#strip-leading-and-trailing-whitespace>strip leading and
+ trailing whitespace</a> from each resulting token, if any, and
+ let the element's <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a> be the (possibly
+ empty) resulting list of (possibly empty) tokens, maintaining the
+ original order.</li>
+
+ <li><p>Let the element's <a href=#concept-fe-value title=concept-fe-value>value</a> be the result of
+ concatenating the element's <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a>, separating each
+ value from the next by a single U+002C COMMA character (,),
+ maintaining the list's order.</li>
+
+ </ol><p>When the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+ attribute is set, the user agent must run the <a href=#value-sanitization-algorithm>value
+ sanitization algorithm</a>.</p>
+
+ <p><strong>Constraint validation</strong>: While the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element is not a
+ <a href=#valid-e-mail-address-list>valid e-mail address list</a>, the element is
+ <a href=#suffering-from-a-type-mismatch>suffering from a type mismatch</a>.</p>
+
+ </div>
+
+ </dd>
+
+ </dl><p>A <dfn id=valid-e-mail-address>valid e-mail address</dfn> is a string that matches the
+ ABNF production <code title="">1*(&nbsp;atext&nbsp;/&nbsp;"."&nbsp;)&nbsp;"@"&nbsp;ldh-str&nbsp;*(&nbsp;"."&nbsp;ldh-str&nbsp;)</code>
+ where <code title="">atext</code> is defined in <a href=http://tools.ietf.org/html/rfc5322#section-3.2.3>RFC 5322
+ section 3.2.3</a>, and <code title="">ldh-str</code> is defined in
+ <a href=http://tools.ietf.org/html/rfc1034#section-3.5>RFC 1034
+ section 3.5</a>. <a href=#refsABNF>[ABNF]</a> <a href=#refsRFC5322>[RFC5322]</a> <a href=#refsRFC1034>[RFC1034]</a></p> <!-- Domain syntax based on
+ section 3.5 of [RFC1034] and section 2.1 of [RFC1123] -->
+
+ <p class=note>This requirement is a <a href=#willful-violation>willful violation</a>
+ of RFC 5322, which defines a syntax for e-mail addresses that is
+ simultaneously too strict (before the "@" character), too vague
+ (after the "@" character), and too lax (allowing comments,
+ whitespace characters, and quoted strings in manners unfamiliar to
+ most users) to be of practical use here.</p>
+
+ <p>A <dfn id=valid-e-mail-address-list>valid e-mail address list</dfn> is a <a href=#set-of-comma-separated-tokens>set of
+ comma-separated tokens</a>, where each token is itself a
+ <a href=#valid-e-mail-address>valid e-mail address</a>. <span class=impl>To obtain the
+ list of tokens from a <a href=#valid-e-mail-address-list>valid e-mail address list</a>, and
+ implementation must <a href=#split-a-string-on-commas title="split a string on commas">split the
+ string on commas</a>.</span></p>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-size><a href=#attr-input-size>size</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code> and
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attributes.</p>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element when
+ the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute is
+ not specified:
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL attribute.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>,
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>,
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ </div>
+
+
+ <h6 id=password-state><span class=secno>4.10.7.1.6 </span><dfn title=attr-input-type-password>Password</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#password-state title=attr-input-type-password>Password</a> state, the rules in
+ this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a one line
+ plain text edit control for the element's <a href=#concept-fe-value title=concept-fe-value>value</a>. The user agent should obscure
+ the value so that people other than the user cannot see it.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ its <a href=#concept-fe-value title=concept-fe-value>value</a> should be editable
+ by the user. User agents must not allow users to insert U+000A LINE
+ FEED (LF) or U+000D CARRIAGE RETURN (CR) characters into the <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified, must have a value that contains no U+000A LINE FEED (LF)
+ or U+000D CARRIAGE RETURN (CR) characters.</p>
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: <a href=#strip-line-breaks>Strip line breaks</a> from the <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-size><a href=#attr-input-size>size</a></code> content attributes;
+ <code title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>, and
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attributes;
+ <code title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>, and
+ <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code class=no-backref title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ </div>
+
+
+ <h6 id=date-and-time-state><span class=secno>4.10.7.1.7 </span><dfn title=attr-input-type-datetime>Date and Time</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#date-and-time-state title=attr-input-type-datetime>Date and Time</a> state, the
+ rules in this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ for setting the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a string representing a
+ specific <a href=#concept-datetime title=concept-datetime>global date and
+ time</a>. <span class=impl>User agents may display the date and
+ time in whatever time zone is appropriate for the user.</span></p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the <a href=#concept-datetime title=concept-datetime>global date and time</a> represented by
+ its <a href=#concept-fe-value title=concept-fe-value>value</a>, as obtained by
+ <a href=#parse-a-global-date-and-time-string title="parse a global date and time string">parsing a global
+ date and time</a> from it. User agents must not allow the user to
+ set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a non-empty
+ string that is not a <a href=#valid-forced-utc-global-date-and-time-string>valid forced-UTC global date and time
+ string</a>, though user agents may allow the user to set and view
+ the time in another time zone and silently translate the time to and
+ from the UTC time zone in the <a href=#concept-fe-value title=concept-fe-value>value</a>. If the user agent provides a
+ user interface for selecting a <a href=#concept-datetime title=concept-datetime>global
+ date and time</a>, then the <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to a <a href=#valid-forced-utc-global-date-and-time-string>valid
+ forced-UTC global date and time string</a> representing the
+ user's selection. User agents should allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.</p>
+
+ </div>
+
+ <p class=note>The format shown to the user is independent of the
+ format used for form submission. Browsers are encouraged to use user
+ interfaces that present dates and times according to the conventions
+ of the user's preferred locale.</p>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified and not empty, must have a value that is a <a href=#valid-global-date-and-time-string>valid
+ global date and time string</a>.</p> <!-- ok to set out-of-range
+ value, we never know when we might have to represent bogus input;
+ also ok to be non-UTC, we convert it -->
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: If the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element is a <a href=#valid-global-date-and-time-string>valid global date and time string</a>,
+ then adjust the time so that the <a href=#concept-fe-value title=concept-fe-value>value</a> represents the same point in
+ time but expressed in the UTC time zone as a <a href=#valid-forced-utc-global-date-and-time-string>valid forced-UTC
+ global date and time string</a>, otherwise, set it to the empty
+ string instead.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-global-date-and-time-string>valid global date and
+ time string</a>. The <code title=attr-input-max><a href=#attr-input-max>max</a></code>
+ attribute, if specified, must have a value that is a <a href=#valid-global-date-and-time-string>valid
+ global date and time string</a>.</p>
+
+ <p>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute is
+ expressed in seconds. <span class=impl>The <a href=#concept-input-step-scale title=concept-input-step-scale>step scale factor</a> is 1000
+ (which converts the seconds to milliseconds, as used in the other
+ algorithms).</span> The <a href=#concept-input-step-default title=concept-input-step-default>default step</a> is 60
+ seconds.</p>
+
+ <div class=impl>
+
+ <p>When the element is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>,
+ the user agent may round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest <a href=#concept-datetime title=concept-datetime>global date and time</a> for which the
+ element would not <a href=#suffering-from-a-step-mismatch title="suffering from a step
+ mismatch">suffer from a step mismatch</a>.</p>
+
+ <p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a>, given a string <var title="">input</var>,
+ is as follows</strong>: If <a href=#parse-a-global-date-and-time-string title="parse a global date and time
+ string">parsing a global date and time</a> from <var title="">input</var> results in an error, then return an error;
+ otherwise, return the number of milliseconds elapsed from midnight
+ UTC on the morning of 1970-01-01 (the time represented by the value
+ "<code title="">1970-01-01T00:00:00.0Z</code>") to the parsed <a href=#concept-datetime title=concept-datetime>global date and time</a>, ignoring leap
+ seconds.</p>
+
+ <p><strong>The <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</a>, given a number <var title="">input</var>,
+ is as follows</strong>: Return a <a href=#valid-global-date-and-time-string>valid global date and time
+ string</a> expressed in UTC that represents the <a href=#concept-datetime title=concept-datetime>global date and time</a> that is <var title="">input</var> milliseconds after midnight UTC on the morning
+ of 1970-01-01 (the time represented by the value "<code title="">1970-01-01T00:00:00.0Z</code>").</p>
+
+ <p><strong>The <a href=#concept-input-value-string-date title=concept-input-value-string-date>algorithm to convert a
+ string to a <code>Date</code> object</a>, given a string <var title="">input</var>, is as follows</strong>: If <a href=#parse-a-global-date-and-time-string title="parse
+ a global date and time string">parsing a global date and time</a>
+ from <var title="">input</var> results in an error, then return an
+ error; otherwise, return a <code>Date</code> object representing the
+ parsed <a href=#concept-datetime title=concept-datetime>global date and time</a>,
+ expressed in UTC.</p>
+
+ <p><strong>The <a href=#concept-input-value-date-string title=concept-input-value-date-string>algorithm to convert a
+ <code>Date</code> object to a string</a>, given a
+ <code>Date</code> object <var title="">input</var>, is as
+ follows</strong>: Return a <a href=#valid-global-date-and-time-string>valid global date and time
+ string</a> expressed in UTC that represents the <a href=#concept-datetime title=concept-datetime>global date and time</a> that is
+ represented by <var title="">input</var>.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code>,
+ <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>,
+ <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, and
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL attributes;
+ <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>, and
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following fragment shows part of a calendar application. A
+ user can specify a date and time for a meeting (in his local time
+ zone, probably, though the user agent can allow the user to change
+ that), and since the submitted data includes the time-zone offset,
+ the application can ensure that the meeting is shown at the correct
+ time regardless of the time zones used by all the participants.</p>
+
+ <pre>&lt;fieldset&gt;
+ &lt;legend&gt;Add Meeting&lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt;Meeting name: &lt;input type=text name="meeting.label"&gt;&lt;/label&gt;
+ &lt;p&gt;&lt;label&gt;Meeting time: &lt;input type=datetime name="meeting.start"&gt;&lt;/label&gt;
+&lt;/fieldset&gt;</pre>
+
+ <p>Had the application used the <code title=attr-input-type-datetime-local><a href=#local-date-and-time-state>datetime-local</a></code> type
+ instead, the calendar application would have also had to explicitly
+ determine which time zone the user intended.</p>
+
+ </div>
+
+
+ <h6 id=date-state><span class=secno>4.10.7.1.8 </span><dfn title=attr-input-type-date>Date</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#date-state title=attr-input-type-date>Date</a> state, the rules in this
+ section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ for setting the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a string representing a
+ specific <a href=#concept-date title=concept-date>date</a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the <a href=#concept-date title=concept-date>date</a> represented by its <a href=#concept-fe-value title=concept-fe-value>value</a>, as obtained by <a href=#parse-a-date-string title="parse a date string">parsing a date</a> from it. User
+ agents must not allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a non-empty string that is
+ not a <a href=#valid-date-string>valid date string</a>. If the user agent provides a
+ user interface for selecting a <a href=#concept-date title=concept-date>date</a>, then the <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to a <a href=#valid-date-string>valid
+ date string</a> representing the user's selection. User agents
+ should allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.</p>
+
+ </div>
+
+ <p class=note>The format shown to the user is independent of the
+ format used for form submission. Browsers are encouraged to use user
+ interfaces that present dates according to the conventions of the
+ user's preferred locale.</p>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified and not empty, must have a value that is a <a href=#valid-date-string>valid
+ date string</a>.</p> <!-- ok to set out-of-range value, we never
+ know when we might have to represent bogus input -->
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: If the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element is not a <a href=#valid-date-string>valid date string</a>, then set it
+ to the empty string instead.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-date-string>valid date
+ string</a>. The <code title=attr-input-max><a href=#attr-input-max>max</a></code>
+ attribute, if specified, must have a value that is a <a href=#valid-date-string>valid
+ date string</a>.</p>
+
+ <p>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute is
+ expressed in days. <span class=impl>The <a href=#concept-input-step-scale title=concept-input-step-scale>step scale factor</a> is
+ 86,400,000 (which converts the days to milliseconds, as used in the
+ other algorithms).</span> The <a href=#concept-input-step-default title=concept-input-step-default>default step</a> is 1 day.</p>
+
+ <div class=impl>
+
+ <p>When the element is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>,
+ the user agent may round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest <a href=#concept-date title=concept-date>date</a> for which the element would not
+ <a href=#suffering-from-a-step-mismatch title="suffering from a step mismatch">suffer from a step
+ mismatch</a>.</p>
+
+ <p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a>, given a string <var title="">input</var>,
+ is as follows</strong>: If <a href=#parse-a-date-string title="parse a date string">parsing
+ a date</a> from <var title="">input</var> results in an error,
+ then return an error; otherwise, return the number of milliseconds
+ elapsed from midnight UTC on the morning of 1970-01-01 (the time
+ represented by the value "<code title="">1970-01-01T00:00:00.0Z</code>") to midnight UTC on the
+ morning of the parsed <a href=#concept-date title=concept-date>date</a>,
+ ignoring leap seconds.</p>
+
+ <p><strong>The <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</a>, given a number <var title="">input</var>,
+ is as follows</strong>: Return a <a href=#valid-date-string>valid date string</a> that
+ represents the <a href=#concept-date title=concept-date>date</a> that, in UTC,
+ is current <var title="">input</var> milliseconds after midnight UTC
+ on the morning of 1970-01-01 (the time represented by the value
+ "<code title="">1970-01-01T00:00:00.0Z</code>").</p>
+
+ <p><strong>The <a href=#concept-input-value-string-date title=concept-input-value-string-date>algorithm to convert a
+ string to a <code>Date</code> object</a>, given a string <var title="">input</var>, is as follows</strong>: If <a href=#parse-a-date-string title="parse
+ a date string">parsing a date</a> from <var title="">input</var>
+ results in an error, then return an error; otherwise, return a
+ <code>Date</code> object representing midnight UTC on the morning of
+ the parsed <a href=#concept-date title=concept-date>date</a>.</p>
+
+ <p><strong>The <a href=#concept-input-value-date-string title=concept-input-value-date-string>algorithm to convert a
+ <code>Date</code> object to a string</a>, given a
+ <code>Date</code> object <var title="">input</var>, is as
+ follows</strong>: Return a <a href=#valid-date-string>valid date string</a> that
+ represents the <a href=#concept-date title=concept-date>date</a> current at the
+ time represented by <var title="">input</var> in the UTC
+ time zone.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code>,
+ <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>,
+ <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, and
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL attributes;
+ <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>, and
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ </div>
+
+
+ <h6 id=month-state><span class=secno>4.10.7.1.9 </span><dfn title=attr-input-type-month>Month</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#month-state title=attr-input-type-month>Month</a> state, the rules in this
+ section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ for setting the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a string representing a
+ specific <a href=#concept-month title=concept-month>month</a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the <a href=#concept-month title=concept-month>month</a> represented by its <a href=#concept-fe-value title=concept-fe-value>value</a>, as obtained by <a href=#parse-a-month-string title="parse a month string">parsing a month</a> from it. User
+ agents must not allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a non-empty string that is
+ not a <a href=#valid-month-string>valid month string</a>. If the user agent provides a
+ user interface for selecting a <a href=#concept-month title=concept-month>month</a>, then the <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to a <a href=#valid-month-string>valid
+ month string</a> representing the user's selection. User agents
+ should allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.</p>
+
+ </div>
+
+ <p class=note>The format shown to the user is independent of the
+ format used for form submission. Browsers are encouraged to use user
+ interfaces that present months according to the conventions of the
+ user's preferred locale.</p>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified and not empty, must have a value that is a <a href=#valid-month-string>valid
+ month string</a>.</p> <!-- ok to set out-of-range value, we never
+ know when we might have to represent bogus input -->
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: If the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element is not a <a href=#valid-month-string>valid month string</a>, then set it
+ to the empty string instead.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-month-string>valid month
+ string</a>. The <code title=attr-input-max><a href=#attr-input-max>max</a></code>
+ attribute, if specified, must have a value that is a <a href=#valid-month-string>valid
+ month string</a>.</p>
+
+ <p>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute is
+ expressed in months. <span class=impl>The <a href=#concept-input-step-scale title=concept-input-step-scale>step scale factor</a> is 1
+ (there is no conversion needed as the algorithms use months).</span>
+ The <a href=#concept-input-step-default title=concept-input-step-default>default step</a> is
+ 1 month.</p>
+
+ <div class=impl>
+
+ <p>When the element is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>,
+ the user agent may round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest <a href=#concept-month title=concept-month>month</a> for which the element would not
+ <a href=#suffering-from-a-step-mismatch title="suffering from a step mismatch">suffer from a step
+ mismatch</a>.</p>
+
+ <p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a>, given a string <var title="">input</var>,
+ is as follows</strong>: If <a href=#parse-a-month-string title="parse a month
+ string">parsing a month</a> from <var title="">input</var>
+ results in an error, then return an error; otherwise, return the
+ number of months between January 1970 and the parsed <a href=#concept-month title=concept-month>month</a>.</p>
+
+ <p><strong>The <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</a>, given a number <var title="">input</var>,
+ is as follows</strong>: Return a <a href=#valid-month-string>valid month string</a>
+ that represents the <a href=#concept-month title=concept-month>month</a> that
+ has <var title="">input</var> months between it and January
+ 1970.</p>
+
+ <!-- note - it doesn't matter exactly how many months are "between"
+ two months, so long as the UA implements this consistently. The
+ number is never actually exposed. -->
+
+ <p><strong>The <a href=#concept-input-value-string-date title=concept-input-value-string-date>algorithm to convert a
+ string to a <code>Date</code> object</a>, given a string <var title="">input</var>, is as follows</strong>: If <a href=#parse-a-month-string title="parse
+ a month string">parsing a month</a> from <var title="">input</var> results in an error, then return an error;
+ otherwise, return a <code>Date</code> object representing midnight
+ UTC on the morning of the first day of the parsed <a href=#concept-month title=concept-month>month</a>.</p>
+
+ <p><strong>The <a href=#concept-input-value-date-string title=concept-input-value-date-string>algorithm to convert a
+ <code>Date</code> object to a string</a>, given a
+ <code>Date</code> object <var title="">input</var>, is as
+ follows</strong>: Return a <a href=#valid-month-string>valid month string</a> that
+ represents the <a href=#concept-month title=concept-month>month</a> current at
+ the time represented by <var title="">input</var> in the UTC
+ time zone.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code>,
+ <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>,
+ <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, and
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL attributes;
+ <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>, and
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ </div>
+
+
+ <h6 id=week-state><span class=secno>4.10.7.1.10 </span><dfn title=attr-input-type-week>Week</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#week-state title=attr-input-type-week>Week</a> state, the rules in this
+ section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ for setting the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a string representing a
+ specific <a href=#concept-week title=concept-week>week</a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the <a href=#concept-week title=concept-week>week</a> represented by its <a href=#concept-fe-value title=concept-fe-value>value</a>, as obtained by <a href=#parse-a-week-string title="parse a week string">parsing a week</a> from it. User
+ agents must not allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a non-empty string that is
+ not a <a href=#valid-week-string>valid week string</a>. If the user agent provides a
+ user interface for selecting a <a href=#concept-week title=concept-week>week</a>, then the <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to a <a href=#valid-week-string>valid
+ week string</a> representing the user's selection. User agents
+ should allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.</p>
+
+ </div>
+
+ <p class=note>The format shown to the user is independent of the
+ format used for form submission. Browsers are encouraged to use user
+ interfaces that present weeks according to the conventions of the
+ user's preferred locale.</p>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified and not empty, must have a value that is a <a href=#valid-week-string>valid
+ week string</a>.</p> <!-- ok to set out-of-range value, we never
+ know when we might have to represent bogus input -->
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: If the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element is not a <a href=#valid-week-string>valid week string</a>, then set it
+ to the empty string instead.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-week-string>valid week
+ string</a>. The <code title=attr-input-max><a href=#attr-input-max>max</a></code>
+ attribute, if specified, must have a value that is a <a href=#valid-week-string>valid
+ week string</a>.</p>
+
+ <p>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute is
+ expressed in weeks. <span class=impl>The <a href=#concept-input-step-scale title=concept-input-step-scale>step scale factor</a> is
+ 604,800,000 (which converts the weeks to milliseconds, as used in
+ the other algorithms).</span> The <a href=#concept-input-step-default title=concept-input-step-default>default step</a> is 1
+ week. <span class=impl>The <a href=#concept-input-step-default-base title=concept-input-step-default-base>default step base</a> is
+ &minus;259,200,000 (the start of week 1970-W01).</span></p>
+
+ <div class=impl>
+
+ <p>When the element is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>,
+ the user agent may round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest <a href=#concept-week title=concept-week>week</a> for which the element would not
+ <a href=#suffering-from-a-step-mismatch title="suffering from a step mismatch">suffer from a step
+ mismatch</a>.</p>
+
+ <p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a>, given a string <var title="">input</var>,
+ is as follows</strong>: If <a href=#parse-a-week-string title="parse a week string">parsing
+ a week string</a> from <var title="">input</var> results in an
+ error, then return an error; otherwise, return the number of
+ milliseconds elapsed from midnight UTC on the morning of 1970-01-01
+ (the time represented by the value "<code title="">1970-01-01T00:00:00.0Z</code>") to midnight UTC on the
+ morning of the Monday of the parsed <a href=#concept-week title=concept-week>week</a>, ignoring leap seconds.</p>
+
+ <p><strong>The <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</a>, given a number <var title="">input</var>,
+ is as follows</strong>: Return a <a href=#valid-week-string>valid week string</a> that
+ represents the <a href=#concept-week title=concept-week>week</a> that, in UTC,
+ is current <var title="">input</var> milliseconds after midnight UTC
+ on the morning of 1970-01-01 (the time represented by the value
+ "<code title="">1970-01-01T00:00:00.0Z</code>").</p>
+
+ <p><strong>The <a href=#concept-input-value-string-date title=concept-input-value-string-date>algorithm to convert a
+ string to a <code>Date</code> object</a>, given a string <var title="">input</var>, is as follows</strong>: If <a href=#parse-a-week-string title="parse
+ a week string">parsing a week</a> from <var title="">input</var>
+ results in an error, then return an error; otherwise, return a
+ <code>Date</code> object representing midnight UTC on the morning of
+ the Monday of the parsed <a href=#concept-week title=concept-week>week</a>.</p>
+
+ <p><strong>The <a href=#concept-input-value-date-string title=concept-input-value-date-string>algorithm to convert a
+ <code>Date</code> object to a string</a>, given a
+ <code>Date</code> object <var title="">input</var>, is as
+ follows</strong>: Return a <a href=#valid-week-string>valid week string</a> that
+ represents the <a href=#concept-week title=concept-week>week</a> current at the
+ time represented by <var title="">input</var> in the UTC
+ time zone.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code>,
+ <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>,
+ <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, and
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL attributes;
+ <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>, and
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ </div>
+
+
+ <h6 id=time-state><span class=secno>4.10.7.1.11 </span><dfn title=attr-input-type-time>Time</dfn> state</h6>
+
+ <!-- v2: allow min="" and max="" to be set such that the range
+ crosses midnight, as in <input type=time min="23:00" max="02:00">
+ (from http://www.w3.org/Bugs/Public/show_bug.cgi?id=7688) -->
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#time-state title=attr-input-type-time>Time</a> state, the rules in this
+ section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ for setting the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a string representing a
+ specific <a href=#concept-time title=concept-time>time</a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the <a href=#concept-time title=concept-time>time</a> represented by its <a href=#concept-fe-value title=concept-fe-value>value</a>, as obtained by <a href=#parse-a-time-string title="parse a time string">parsing a time</a> from it. User
+ agents must not allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a non-empty string that is
+ not a <a href=#valid-time-string>valid time string</a>. If the user agent provides a
+ user interface for selecting a <a href=#concept-time title=concept-time>time</a>, then the <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to a <a href=#valid-time-string>valid
+ time string</a> representing the user's selection. User agents
+ should allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.</p>
+
+ </div>
+
+ <p class=note>The format shown to the user is independent of the
+ format used for form submission. Browsers are encouraged to use user
+ interfaces that present times according to the conventions of the
+ user's preferred locale.</p>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified and not empty, must have a value that is a <a href=#valid-time-string>valid
+ time string</a>.</p> <!-- ok to set out-of-range value, we never
+ know when we might have to represent bogus input -->
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: If the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element is not a <a href=#valid-time-string>valid time string</a>, then set it
+ to the empty string instead.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-time-string>valid time
+ string</a>. The <code title=attr-input-max><a href=#attr-input-max>max</a></code>
+ attribute, if specified, must have a value that is a <a href=#valid-time-string>valid
+ time string</a>.</p>
+
+ <p>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute is
+ expressed in seconds. <span class=impl>The <a href=#concept-input-step-scale title=concept-input-step-scale>step scale factor</a> is 1000
+ (which converts the seconds to milliseconds, as used in the other
+ algorithms).</span> The <a href=#concept-input-step-default title=concept-input-step-default>default step</a> is 60
+ seconds.</p>
+
+ <div class=impl>
+
+ <p>When the element is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>,
+ the user agent may round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest <a href=#concept-time title=concept-time>time</a> for which the element would not
+ <a href=#suffering-from-a-step-mismatch title="suffering from a step mismatch">suffer from a step
+ mismatch</a>.</p>
+
+ <p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a>, given a string <var title="">input</var>,
+ is as follows</strong>: If <a href=#parse-a-time-string title="parse a time string">parsing
+ a time</a> from <var title="">input</var> results in an error,
+ then return an error; otherwise, return the number of milliseconds
+ elapsed from midnight to the parsed <a href=#concept-time title=concept-time>time</a> on a day with no time changes.</p>
+
+ <p><strong>The <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</a>, given a number <var title="">input</var>,
+ is as follows</strong>: Return a <a href=#valid-time-string>valid time string</a> that
+ represents the <a href=#concept-time title=concept-time>time</a> that is <var title="">input</var> milliseconds after midnight on a day with no
+ time changes.</p>
+
+ <p><strong>The <a href=#concept-input-value-string-date title=concept-input-value-string-date>algorithm to convert a
+ string to a <code>Date</code> object</a>, given a string <var title="">input</var>, is as follows</strong>: If <a href=#parse-a-time-string title="parse
+ a time string">parsing a time</a> from <var title="">input</var>
+ results in an error, then return an error; otherwise, return a
+ <code>Date</code> object representing the parsed <a href=#concept-time title=concept-time>time</a> in UTC on 1970-01-01.</p>
+
+ <p><strong>The <a href=#concept-input-value-date-string title=concept-input-value-date-string>algorithm to convert a
+ <code>Date</code> object to a string</a>, given a
+ <code>Date</code> object <var title="">input</var>, is as
+ follows</strong>: Return a <a href=#valid-time-string>valid time string</a> that
+ represents the UTC <a href=#concept-time title=concept-time>time</a> component
+ that is represented by <var title="">input</var>.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code>,
+ <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>,
+ <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, and
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL attributes;
+ <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>, and
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ </div>
+
+
+ <h6 id=local-date-and-time-state><span class=secno>4.10.7.1.12 </span><dfn title=attr-input-type-datetime-local>Local Date and Time</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#local-date-and-time-state title=attr-input-type-datetime-local>Local Date and Time</a>
+ state, the rules in this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ for setting the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a string representing a
+ <a href=#concept-datetime-local title=concept-datetime-local>local date and time</a>,
+ with no time-zone offset information.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the <a href=#concept-datetime-local title=concept-datetime-local>date and time</a> represented by
+ its <a href=#concept-fe-value title=concept-fe-value>value</a>, as obtained by
+ <a href=#parse-a-local-date-and-time-string title="parse a local date and time string">parsing a date and
+ time</a> from it. User agents must not allow the user to set the
+ <a href=#concept-fe-value title=concept-fe-value>value</a> to a non-empty string
+ that is not a <a href=#valid-local-date-and-time-string>valid local date and time string</a>. If the
+ user agent provides a user interface for selecting a <a href=#concept-datetime-local title=concept-datetime-local>local date and time</a>, then the
+ <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to a
+ <a href=#valid-local-date-and-time-string>valid local date and time string</a> representing the
+ user's selection. User agents should allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.</p>
+
+ </div>
+
+ <p class=note>The format shown to the user is independent of the
+ format used for form submission. Browsers are encouraged to use user
+ interfaces that present dates and times according to the conventions
+ of the user's preferred locale.</p>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified and not empty, must have a value that is a <a href=#valid-local-date-and-time-string>valid
+ local date and time string</a>.</p> <!-- ok to set out-of-range
+ value, we never know when we might have to represent bogus input -->
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: If the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element is not a <a href=#valid-local-date-and-time-string>valid local date and time
+ string</a>, then set it to the empty string instead.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-local-date-and-time-string>valid local date and
+ time string</a>. The <code title=attr-input-max><a href=#attr-input-max>max</a></code>
+ attribute, if specified, must have a value that is a <a href=#valid-local-date-and-time-string>valid
+ local date and time string</a>.</p>
+
+ <p>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute is
+ expressed in seconds. <span class=impl>The <a href=#concept-input-step-scale title=concept-input-step-scale>step scale factor</a> is 1000
+ (which converts the seconds to milliseconds, as used in the other
+ algorithms).</span> The <a href=#concept-input-step-default title=concept-input-step-default>default step</a> is 60
+ seconds.</p>
+
+ <div class=impl>
+
+ <p>When the element is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>,
+ the user agent may round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest <a href=#concept-datetime-local title=concept-datetime-local>local date and time</a> for which
+ the element would not <a href=#suffering-from-a-step-mismatch title="suffering from a step
+ mismatch">suffer from a step mismatch</a>.</p>
+
+ <p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a>, given a string <var title="">input</var>,
+ is as follows</strong>: If <a href=#parse-a-local-date-and-time-string title="parse a local date and time
+ string">parsing a date and time</a> from <var title="">input</var> results in an error, then return an error;
+ otherwise, return the number of milliseconds elapsed from midnight
+ on the morning of 1970-01-01 (the time represented by the value
+ "<code title="">1970-01-01T00:00:00.0</code>") to the parsed <a href=#concept-datetime-local title=concept-datetime-local>local date and time</a>, ignoring
+ leap seconds.</p>
+
+ <p><strong>The <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</a>, given a number <var title="">input</var>,
+ is as follows</strong>: Return a <a href=#valid-local-date-and-time-string>valid local date and time
+ string</a> that represents the date and time that is <var title="">input</var> milliseconds after midnight on the morning of
+ 1970-01-01 (the time represented by the value "<code title="">1970-01-01T00:00:00.0</code>").</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code>,
+ <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, and
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL attributes;
+ <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>, and
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows part of a flight booking
+ application. The application uses an <code><a href=#the-input-element>input</a></code> element
+ with its <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute set to
+ <code title=attr-input-type-datetime-local><a href=#local-date-and-time-state>datetime-local</a></code>,
+ and it then interprets the given date and time in the time zone of
+ the selected airport.</p>
+
+ <pre>&lt;fieldset&gt;
+ &lt;legend&gt;Destination&lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt;Airport: &lt;input type=text name=to list=airports&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Departure time: &lt;input type=datetime-local name=totime step=3600&gt;&lt;/label&gt;&lt;/p&gt;
+&lt;/fieldset&gt;
+&lt;datalist id=airports&gt;
+ &lt;option value=ATL label="Atlanta"&gt;
+ &lt;option value=MEM label="Memphis"&gt;
+ &lt;option value=LHR label="London Heathrow"&gt;
+ &lt;option value=LAX label="Los Angeles"&gt;
+ &lt;option value=FRA label="Frankfurt"&gt;
+&lt;/datalist&gt;</pre>
+
+ <p>If the application instead used the <code title=attr-input-type-datetime><a href=#date-and-time-state>datetime</a></code> type, then the
+ user would have to work out the time-zone conversions himself,
+ which is clearly not a good user experience!</p>
+
+ </div>
+
+
+ <h6 id=number-state><span class=secno>4.10.7.1.13 </span><dfn title=attr-input-type-number>Number</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#number-state title=attr-input-type-number>Number</a> state, the rules in
+ this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ for setting the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a string representing a
+ number.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the number
+ represented by its <a href=#concept-fe-value title=concept-fe-value>value</a>, as
+ obtained from applying the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating point
+ number values</a> to it. User agents must not allow the user to
+ set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a non-empty
+ string that is not a <a href=#valid-floating-point-number>valid floating point number</a>. If
+ the user agent provides a user interface for selecting a number,
+ then the <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to
+ the <a href=#best-representation-of-the-number-as-a-floating-point-number title="best representation of the number as a floating
+ point number">best representation of the number representing the
+ user's selection as a floating point number</a>. User agents
+ should allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.</p>
+
+ </div>
+
+ <p class=note>This specification does not define what user
+ interface user agents are to use; user agent vendors are encouraged
+ to consider what would best serve their users' needs. For example, a
+ user agent in Persian or Arabic markets might support Persian and
+ Arabic numeric input (converting it to the format required for
+ submission as described above). <!--Similarly, a user agent designed
+ for Romans might display the value in Roman numerals rather than in
+ decimal.--></p>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified and not empty, must have a value that is a <a href=#valid-floating-point-number>valid
+ floating point number</a>.</p> <!-- ok to set out-of-range value,
+ we never know when we might have to represent bogus input -->
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: If the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element is not a <a href=#valid-floating-point-number>valid floating point number</a>,
+ then set it to the empty string instead.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-floating-point-number>valid floating point
+ number</a>. The <code title=attr-input-max><a href=#attr-input-max>max</a></code>
+ attribute, if specified, must have a value that is a <a href=#valid-floating-point-number>valid
+ floating point number</a>.</p>
+
+ <p><span class=impl>The <a href=#concept-input-step-scale title=concept-input-step-scale>step scale factor</a> is
+ 1.</span> The <a href=#concept-input-step-default title=concept-input-step-default>default
+ step</a> is 1 (allowing only integers, unless the <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute has a non-integer
+ value).</p>
+
+ <div class=impl>
+
+ <p>When the element is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>,
+ the user agent may round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest number for
+ which the element would not <a href=#suffering-from-a-step-mismatch title="suffering from a step
+ mismatch">suffer from a step mismatch</a>. If there are two such
+ numbers, user agents are encouraged to pick the one nearest positive
+ infinity.</p>
+
+ <p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a>, given a string <var title="">input</var>,
+ is as follows</strong>: If applying the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing
+ floating point number values</a> to <var title="">input</var>
+ results in an error, then return an error; otherwise, return the
+ resulting number.</p>
+
+ <p><strong>The <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</a>, given a number <var title="">input</var>,
+ is as follows</strong>: Return a <a href=#valid-floating-point-number>valid floating point
+ number</a> that represents <var title="">input</var>.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>, and
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code>,
+ <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, and
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL attributes;
+ <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>, and
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ </div>
+
+
+ <h6 id=range-state><span class=secno>4.10.7.1.14 </span><dfn title=attr-input-type-range>Range</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#range-state title=attr-input-type-range>Range</a> state, the rules in this
+ section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ for setting the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a string representing a
+ number, but with the caveat that the exact value is not important,
+ letting UAs provide a simpler interface than they do for the <a href=#number-state title=attr-input-type-number>Number</a> state.</p>
+
+ <div class=impl>
+
+ <p class=note>In this state, the range and step constraints are
+ enforced even during user input, and there is no way to set the
+ value to the empty string.</p>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the number
+ represented by its <a href=#concept-fe-value title=concept-fe-value>value</a>, as
+ obtained from applying the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating point
+ number values</a> to it. User agents must not allow the user to
+ set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a string that
+ is not a <a href=#valid-floating-point-number>valid floating point number</a>. If the user agent
+ provides a user interface for selecting a number, then the <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to a <a href=#best-representation-of-the-number-as-a-floating-point-number title="best representation of the number as a floating point
+ number">best representation of the number representing the user's
+ selection as a floating point number</a>. User agents must not
+ allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-floating-point-number>valid floating point
+ number</a>.</p> <!-- ok to set out-of-range value, we never know
+ when we might have to represent bogus input; not ok to not have a
+ value if the attribute is present, since you can't not have a value
+ (attribute missing is treated as implying a default value) -->
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: If the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element is not a <a href=#valid-floating-point-number>valid floating point number</a>,
+ then set it to a <a href=#valid-floating-point-number>valid floating point number</a> that
+ represents the <a href=#concept-input-value-default-range title=concept-input-value-default-range>default value</a>.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-floating-point-number>valid floating point
+ number</a>. The <a href=#concept-input-min-default title=concept-input-min-default>default
+ minimum</a> is 0. The <code title=attr-input-max><a href=#attr-input-max>max</a></code>
+ attribute, if specified, must have a value that is a <a href=#valid-floating-point-number>valid
+ floating point number</a>. The <a href=#concept-input-max-default title=concept-input-max-default>default maximum</a> is 100.</p>
+
+ <p>The <dfn id=concept-input-value-default-range title=concept-input-value-default-range>default
+ value</dfn> is the <a href=#concept-input-min title=concept-input-min>minimum</a>
+ plus half the difference between the <a href=#concept-input-min title=concept-input-min>minimum</a> and the <a href=#concept-input-max title=concept-input-max>maximum</a>, unless the <a href=#concept-input-max title=concept-input-max>maximum</a> is less than the <a href=#concept-input-min title=concept-input-min>minimum</a>, in which case the <a href=#concept-input-value-default-range title=concept-input-value-default-range>default value</a> is
+ the <a href=#concept-input-min title=concept-input-min>minimum</a>.</p>
+
+ <div class=impl>
+
+ <p>When the element is <a href=#suffering-from-an-underflow>suffering from an
+ underflow</a>, the user agent must set the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a <a href=#valid-floating-point-number>valid floating point
+ number</a> that represents the <a href=#concept-input-min title=concept-input-min>minimum</a>.</p>
+
+ <p>When the element is <a href=#suffering-from-an-overflow>suffering from an overflow</a>,
+ if the <a href=#concept-input-max title=concept-input-max>maximum</a> is not less
+ than the <a href=#concept-input-min title=concept-input-min>minimum</a>, the user
+ agent must set the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a <a href=#valid-floating-point-number>valid floating point
+ number</a> that represents the <a href=#concept-input-max title=concept-input-max>maximum</a>.</p>
+
+ </div>
+
+ <p><span class=impl>The <a href=#concept-input-step-scale title=concept-input-step-scale>step scale factor</a> is
+ 1.</span> The <a href=#concept-input-step-default title=concept-input-step-default>default
+ step</a> is 1 (allowing only integers, unless the <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute has a non-integer
+ value).</p>
+
+ <div class=impl>
+
+ <p>When the element is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>,
+ the user agent must round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest number for
+ which the element would not <a href=#suffering-from-a-step-mismatch title="suffering from a step
+ mismatch">suffer from a step mismatch</a>, and which is greater
+ than or equal to the <a href=#concept-input-min title=concept-input-min>minimum</a>,
+ and, if the <a href=#concept-input-max title=concept-input-max>maximum</a> is not
+ less than the <a href=#concept-input-min title=concept-input-min>minimum</a>, which
+ is less than or equal to the <a href=#concept-input-max title=concept-input-max>maximum</a>. If two numbers match these
+ constraints, then user agents must use the one nearest to positive
+ infinity.</p>
+
+ <p class=example>For example, the markup
+ <code>&lt;input&nbsp;type="range"&nbsp;min=0&nbsp;max=100&nbsp;step=20&nbsp;value=50&gt;</code>
+ results in a range control whose initial value is 60.</p>
+
+ <p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a>, given a string <var title="">input</var>,
+ is as follows</strong>: If applying the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing
+ floating point number values</a> to <var title="">input</var>
+ results in an error, then return an error; otherwise, return the
+ resulting number.</p>
+
+ <p><strong>The <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</a>, given a number <var title="">input</var>,
+ is as follows</strong>: Return a <a href=#valid-floating-point-number>valid floating point
+ number</a> that represents <var title="">input</var>.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code title=attr-input-min><a href=#attr-input-min>min</a></code>, and
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code>,
+ <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, and
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL attributes;
+ <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code class=no-backref title=attr-input-required><a href=#attr-input-required>required</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>, and
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code> and
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code> methods.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here is an example of a range control using an autocomplete list
+ with the <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute. This
+ could be useful if there are values along the full range of the
+ control that are especially important, such as preconfigured light
+ levels or typical speed limits in a range control used as a speed
+ control. The following markup fragment:</p>
+
+ <pre>&lt;input type="range" min="-100" max="100" value="0" step="10" name="power" list="powers"&gt;
+&lt;datalist id="powers"&gt;
+ &lt;option value="0"&gt;
+ &lt;option value="-30"&gt;
+ &lt;option value="30"&gt;
+ &lt;option value="+50"&gt;
+&lt;/datalist&gt;
+</pre>
+
+ <p>...with the following style sheet applied:</p>
+
+ <pre>input { height: 75px; width: 49px; background: #D5CCBB; color: black; }</pre>
+
+ <p>...might render as:</p>
+
+ <p><img alt="A vertical slider control whose primary color is black and whose background color is beige, with the slider having five tick marks, one long one at each extremity, and three short ones clustered around the midpoint." height=75 src=greenbox.png width=49><p>Note how the UA determined the orientation of the control from
+ the ratio of the style-sheet-specified height and width properties.
+ The colors were similiarly derived from the style sheet. The tick
+ marks, however, were derived from the markup. In particular, the
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute has not
+ affected the placement of tick marks, the UA deciding to only use
+ the author-specified completion values and then adding longer tick
+ marks at the extremes.</p>
+
+ <p>Note also how the invalid value <code title="">+50</code> was
+ completely ignored.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>For another example, consider the following markup fragment:</p>
+
+ <pre>&lt;input name=x type=range min=100 max=700 step=9.09090909 value=509.090909&gt;</pre>
+
+ <p>A user agent could display in a variety of ways, for instance:</p>
+
+ <p><img alt="As a dial." height=57 src=greenbox.png width=231></p>
+
+ <p>Or, alternatively, for instance:</p>
+
+ <p><img alt="As a long horizontal slider with tick marks." height=56 src=greenbox.png width=445></p>
+
+ <p>The user agent could pick which one to display based on the
+ dimensions given in the style sheet. This would allow it to
+ maintain the same resolution for the tick marks, despite the
+ differences in width.</p>
+
+ </div>
+
+
+
+ <h6 id=color-state><span class=secno>4.10.7.1.15 </span><dfn title=attr-input-type-color>Color</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#color-state title=attr-input-type-color>Color</a> state, the rules in this
+ section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a color
+ well control, for setting the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a string representing a
+ <a href=#simple-color>simple color</a>.</p>
+
+ <div class=impl>
+
+ <p class=note>In this state, there is always a color picked, and
+ there is no way to set the value to the empty string.</p>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the color represented
+ by its <a href=#concept-fe-value title=concept-fe-value>value</a>, as obtained from
+ applying the <a href=#rules-for-parsing-simple-color-values>rules for parsing simple color values</a> to
+ it. User agents must not allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a string that is not a
+ <a href=#valid-lowercase-simple-color>valid lowercase simple color</a>. If the user agent
+ provides a user interface for selecting a color, then the <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to the result of
+ using the <a href=#rules-for-serializing-simple-color-values>rules for serializing simple color values</a> to
+ the user's selection. User agents must not allow the user to set the
+ <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
+ specified and not empty, must have a value that is a <a href=#valid-simple-color>valid
+ simple color</a>.</p>
+
+ <div class=impl>
+
+ <p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+ follows</strong>: If the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element is a <a href=#valid-simple-color>valid simple color</a>, then set it to
+ the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>; otherwise, set it to the string
+ "<code title="">#000000</code>".</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes, IDL attributes, and methods apply to the element:
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code> and
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code> content attributes;
+ <code title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code>, and
+ <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL attributes.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>.</p>
+
+ <p>The <code title=event-input-input><a href=#event-input-input>input</a></code> and <code title=event-input-change><a href=#event-input-change>change</a></code> events apply.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code class=no-backref title=attr-input-required><a href=#attr-input-required>required</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>,
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>,
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ </div>
+
+
+ <h6 id=checkbox-state><span class=secno>4.10.7.1.16 </span><dfn title=attr-input-type-checkbox>Checkbox</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state, the rules in
+ this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a
+ two-state control that represents the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> state. If the
+ element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> state
+ is true, the control represents a positive selection, and if it is
+ false, a negative selection. If the element's <code title=dom-input-indeterminate><a href=#dom-input-indeterminate>indeterminate</a></code> IDL attribute
+ is set to true, then the control's selection should be obscured as
+ if the control was in a third, indeterminate, state.</p>
+
+ <p class=note>The control is never a true tri-state control, even
+ if the element's <code title=dom-input-indeterminate><a href=#dom-input-indeterminate>indeterminate</a></code> IDL attribute
+ is set to true. The <code title=dom-input-indeterminate><a href=#dom-input-indeterminate>indeterminate</a></code> IDL attribute
+ only gives the appearance of a third state.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ then: The <a href=#pre-click-activation-steps>pre-click activation steps</a> consist of setting
+ the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> to
+ its opposite value (i.e. true if it is false, false if it is true),
+ and of setting the element's <code title=dom-input-indeterminate><a href=#dom-input-indeterminate>indeterminate</a></code> IDL attribute
+ to false. The <a href=#canceled-activation-steps>canceled activation steps</a> consist of
+ setting the <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> and
+ the element's <code title=dom-input-indeterminate><a href=#dom-input-indeterminate>indeterminate</a></code> IDL attribute
+ back to the values they had before the <a href=#pre-click-activation-steps>pre-click activation
+ steps</a> were run. The <a href=#activation-behavior>activation behavior</a> is to
+ <a href=#fire-a-simple-event>fire a simple event</a> that bubbles named <code title=event-change>change</code> at the element. <!-- It's not
+ cancelable. Once this fires, the control is checked, end of story.
+ --></p>
+
+ <p><strong>Constraint validation</strong>: If the element is <i title=concept-input-required><a href=#concept-input-required>required</a></i> and its <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> is false, then the
+ element is <a href=#suffering-from-being-missing>suffering from being missing</a>.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">input</var> . <code title=dom-input-indeterminate><a href=#dom-input-indeterminate>indeterminate</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>When set, overrides the rendering of <a href=#checkbox-state title=attr-input-type-checkbox>checkbox</a> controls so that
+ the current value is not visible.</p>
+
+ </dd>
+
+ </dl><div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes and IDL attributes apply to the element:
+ <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>, and
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code> content attributes;
+ <code title=dom-input-checked><a href=#dom-input-checked>checked</a></code> and
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attributes.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-default-on title=dom-input-value-default-on>default/on</a>.</p>
+
+ <p>The <code title=event-input-change><a href=#event-input-change>change</a></code> event applies.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code class=no-backref title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>,
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>,
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> event does not apply.</p>
+
+ </div>
+
+
+
+ <h6 id=radio-button-state><span class=secno>4.10.7.1.17 </span><dfn title=attr-input-type-radio>Radio Button</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> state, the rules
+ in this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a control
+ that, when used in conjunction with other <code><a href=#the-input-element>input</a></code>
+ elements, forms a <i><a href=#radio-button-group>radio button group</a></i> in which only one
+ control can have its <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> state set to true. If
+ the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a>
+ state is true, the control represents the selected control in the
+ group, and if it is false, it indicates a control in the group that
+ is not selected.</p>
+
+ <p>The <dfn id=radio-button-group><i>radio button group</i></dfn> that contains an
+ <code><a href=#the-input-element>input</a></code> element <var title="">a</var> also contains all
+ the other <code><a href=#the-input-element>input</a></code> elements <var title="">b</var> that
+ fulfill all of the following conditions:</p>
+
+ <ul><li>The <code><a href=#the-input-element>input</a></code> element <var title="">b</var>'s <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> state.</li>
+
+ <li>Either <var title="">a</var> and <var title="">b</var> have the
+ same <a href=#form-owner>form owner</a>, or they both have no <a href=#form-owner>form
+ owner</a>.</li>
+
+ <li>They both have a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>
+ attribute, their <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attributes
+ are not empty, and the value of <var title="">a</var>'s <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute is a <a href=#compatibility-caseless>compatibility
+ caseless</a> match for the value of <var title="">b</var>'s
+ <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute.</li>
+
+ </ul><p>A document must not contain an <code><a href=#the-input-element>input</a></code> element whose
+ <i><a href=#radio-button-group>radio button group</a></i> contains only that element.</p>
+
+ <div class=impl>
+
+ <p>When any of the following phenomena occur, if the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> state is true after
+ the occurrence, the <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> state of all the other
+ elements in the same <i><a href=#radio-button-group>radio button group</a></i> must be set to
+ false:</p>
+
+ <ul><li>The element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> state is set to
+ true (for whatever reason).</li>
+
+ <li>The element's <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute
+ is set, changed, or removed.</li>
+
+ <li>The element's <a href=#form-owner>form owner</a> changes.</li>
+
+ </ul><p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ then: The <a href=#pre-click-activation-steps>pre-click activation steps</a> consist of setting
+ the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> to
+ true. The <a href=#canceled-activation-steps>canceled activation steps</a> consist of setting
+ the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> to
+ false. The <a href=#activation-behavior>activation behavior</a> is to <a href=#fire-a-simple-event>fire a
+ simple event</a> that bubbles named <code title=event-change>change</code> at the element. <!-- It's not
+ cancelable. Once this fires, the control is checked, end of story.
+ -->.</p>
+
+ <p><strong>Constraint validation</strong>: If an element in the
+ <i><a href=#radio-button-group>radio button group</a></i> is <i title=concept-input-required><a href=#concept-input-required>required</a></i>, and all of the
+ <code><a href=#the-input-element>input</a></code> elements in the <i><a href=#radio-button-group>radio button group</a></i> have a
+ <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> that is false,
+ then the element is <a href=#suffering-from-being-missing>suffering from being missing</a>.</p>
+
+ </div>
+
+ <p class=note>If none of the radio buttons in a <a href=#radio-button-group>radio button
+ group</a> are checked when they are inserted into the document,
+ then they will all be initially unchecked in the interface, until
+ such time as one of them is checked (either by the user or by
+ script).</p>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes and IDL attributes apply to the element:
+ <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code> and
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code> content attributes;
+ <code title=dom-input-checked><a href=#dom-input-checked>checked</a></code> and
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attributes.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-default-on title=dom-input-value-default-on>default/on</a>.</p>
+
+ <p>The <code title=event-input-change><a href=#event-input-change>change</a></code> event applies.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code class=no-backref title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>,
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>,
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> event does not apply.</p>
+
+ </div>
+
+
+
+ <h6 id=file-upload-state><span class=secno>4.10.7.1.18 </span><dfn title=attr-input-type-file>File Upload</dfn> state</h6>
+
+ <!-- v2 ideas:
+ * maximum height/width or required ratio for image uploads? - Leons Petrazickis
+ * maximum per-file upload size - Alfonso Mart&iacute;nez de Lizarrondo
+ -->
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#file-upload-state title=attr-input-type-file>File Upload</a> state, the rules in this
+ section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a list of
+ <dfn id=concept-input-type-file-selected title=concept-input-type-file-selected>selected files</dfn>,
+ each file consisting of a file name, a file type, and a file body
+ (the contents of the file).</p>
+
+ <div class=impl>
+
+ <p>File names may contain partial paths, e.g. in the case that a
+ user has selected an entire directory hierarchy. Path components
+ should be separated from each other using U+005C REVERSE SOLIDUS
+ character (\).</p>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to change the files on the
+ list, e.g. adding or removing files. Files can be from the
+ filesystem or created on the fly, e.g. a picture taken from a camera
+ connected to the user's device.</p>
+
+ <p><strong>Constraint validation</strong>: If the element is <i title=concept-input-required><a href=#concept-input-required>required</a></i> and the list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a> is
+ empty, then the element is <a href=#suffering-from-being-missing>suffering from being
+ missing</a>.</p>
+
+ <p>Unless the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+ attribute is set, there must be no more than one file in the list of
+ <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected
+ files</a>.</p>
+
+ </div>
+
+ <hr><p>The <dfn id=attr-input-accept title=attr-input-accept><code>accept</code></dfn>
+ attribute may be specified to provide user agents with a hint of
+ what file types will be accepted.</p>
+
+ <p>If specified, the attribute must consist of a <a href=#set-of-comma-separated-tokens>set of
+ comma-separated tokens</a>, each of which must be an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for one of the following:</p>
+
+ <dl><dt>The string <code title="">audio/*</code></dt>
+
+ <dd>Indicates that sound files are accepted.</dd>
+
+ <dt>The string <code title="">video/*</code></dt>
+
+ <dd>Indicates that video files are accepted.</dd>
+
+ <dt>The string <code title="">image/*</code></dt>
+
+ <dd>Indicates that image files are accepted.</dd>
+
+ <dt>A <a href=#valid-mime-type-with-no-parameters>valid MIME type with no parameters</a></dt>
+
+ <dd>Indicates that files of the specified type are accepted.</dd>
+
+ </dl><p>The tokens must not be <a href=#ascii-case-insensitive>ASCII case-insensitive</a>
+ matches for any of the other tokens (i.e. duplicates are not
+ allowed). <span class=impl>To obtain the list of tokens from the
+ attribute, the user agent must <a href=#split-a-string-on-commas title="split a string on
+ commas">split the attribute value on commas</a>.</span></p>
+
+ <p>User agents may use the value of this attribute to display a more
+ appropriate user interface than a generic file picker. For instance,
+ given the value <code title="">image/*</code>, a user agent could
+ offer the user the option of using a local camera or selecting a
+ photograph from their photo collection; given the value <code title="">audio/*</code>, a user agent could offer the user the
+ option of recording a clip using a headset microphone.</p>
+
+ <div class=impl>
+
+ <p>User agents should prevent the user from selecting files that are
+ not accepted by one (or more) of these tokens.</p>
+
+ </div>
+
+ <div class=example id=fakepath-srsly>
+
+ <p>For historical reasons, the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute prefixes the
+ filename with the string "<code title="">C:\fakepath\</code>". Some
+ legacy user agents actually included the full path (which was a
+ security vulnerability). As a result of this, obtaining the
+ filename from the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL
+ attribute in a backwards-compatible way is non-trivial. The
+ following function extracts the filename in a suitably compatible
+ manner:</p>
+
+ <pre>function extractFilename(path) {
+ if (path.substr(0, 12) == "C:\\fakepath\\")
+ return path.substr(12); // modern browser
+ var x;
+ x = path.lastIndexOf('/');
+ if (x &gt;= 0) // Unix-based path
+ return path.substr(x+1);
+ x = path.lastIndexOf('\\');
+ if (x &gt;= 0) // Windows-based path
+ return path.substr(x+1);
+ return path; // just the filename
+}</pre>
+
+ <p>This can be used as follows:</p>
+
+ <pre>&lt;p&gt;&lt;input type=file name=image onchange="updateFilename(this.value)"&gt;&lt;/p&gt;
+&lt;p&gt;The name of the file you picked is: &lt;span id="filename"&gt;(none)&lt;/span&gt;&lt;/p&gt;
+&lt;script&gt;
+ function updateFilename(path) {
+ var name = extractFilename(path);
+ document.getElementById('filename').textContent = name;
+ }
+&lt;/script&gt;</pre>
+
+ <!-- How useful this actually is... is unclear. -->
+
+ </div>
+
+ <hr><div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes apply to the element:
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes and IDL attributes apply to the element:
+ <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>, and
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>;
+ <code title=dom-input-files><a href=#dom-input-files>files</a></code> and
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attributes.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-filename title=dom-input-value-filename>filename</a>.</p>
+
+ <p>The <code title=event-input-change><a href=#event-input-change>change</a></code> event applies.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The element's <code title=attr-input-value><a href=#attr-input-value>value</a></code>
+ attribute must be omitted.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code class=no-backref title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>,
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>,
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> event does not apply.</p>
+
+ </div>
+
+
+
+ <h6 id=submit-button-state><span class=secno>4.10.7.1.19 </span><dfn title=attr-input-type-submit>Submit Button</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#submit-button-state title=attr-input-type-submit>Submit Button</a> state, the rules
+ in this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a button
+ that, when activated, submits the form. <span class=impl>If the
+ element has a <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute,
+ the button's label must be the value of that attribute; otherwise,
+ it must be an implementation-defined string that means "Submit" or
+ some such.</span> The element is a <a href=#concept-button title=concept-button>button</a>, specifically a <a href=#concept-submit-button title=concept-submit-button>submit button</a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to activate the element.</p>
+
+ <p>The element's <a href=#activation-behavior>activation behavior</a>, if the element
+ has a <a href=#form-owner>form owner</a>, is to <a href=#concept-form-submit title=concept-form-submit>submit</a> the <a href=#form-owner>form
+ owner</a> from the <code><a href=#the-input-element>input</a></code> element; otherwise, it is
+ to do nothing.</p>
+
+ </div>
+
+ <p>The <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>, <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>, <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>, <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>, and <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code> attributes are <a href=#attributes-for-form-submission>attributes
+ for form submission</a>.</p>
+
+ <p class=note>The <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code> attribute can
+ be used to make submit buttons that do not trigger the constraint
+ validation.</p>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes and IDL attributes apply to the element:
+ <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>, and
+ <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code> content attributes;
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-default title=dom-input-value-default>default</a>.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code class=no-backref title=attr-input-required><a href=#attr-input-required>required</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code class=no-backref title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>,
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>,
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not apply.</p>
+
+ </div>
+
+
+ <h6 id=image-button-state><span class=secno>4.10.7.1.20 </span><dfn title=attr-input-type-image>Image Button</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state, the rules
+ in this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> either an
+ image from which a user can select a coordinate and submit the form,
+ or alternatively a button from which the user can submit the
+ form. The element is a <a href=#concept-button title=concept-button>button</a>,
+ specifically a <a href=#concept-submit-button title=concept-submit-button>submit
+ button</a>.</p>
+
+ <p class=note>The coordinate is sent to the server <a href=#constructing-the-form-data-set title="constructing the form data set">during form submission</a>
+ by sending two entries for the element, derived from the name of the
+ control but with "<code title="">.x</code>" and "<code title="">.y</code>" appended to the name with the <var title="">x</var> and <var title="">y</var> components of the
+ coordinate respectively.</p>
+
+ <hr><p>The image is given by the <dfn id=attr-input-src title=attr-input-src><code>src</code></dfn> attribute. The <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute must be present, and
+ must contain a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
+ spaces</a> referencing a non-interactive, optionally animated,
+ image resource that is neither paged nor scripted.</p>
+
+ <div class=impl>
+
+ <p>When any of the following events occur, unless the user agent
+ cannot support images, or its support for images has been disabled,
+ or the user agent only fetches elements on demand, or the <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute's value is the empty
+ string, the user agent must <a href=#resolve-a-url title="resolve a
+ url">resolve</a> the value of the <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute, relative to the
+ element, and if that is successful, must <a href=#fetch>fetch</a> the
+ resulting <a href=#absolute-url>absolute URL</a>:</p> <!-- Note how this does NOT
+ happen when the base URL changes. --> <!-- http-origin privacy
+ sensitive -->
+
+ <ul><li>The <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is first set to the
+ <a href=#image-button-state title=attr-input-type-image>Image Button</a> state
+ (possibly when the element is first created), and the <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute is present.</li>
+
+ <li>The <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is changed back to
+ the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state,
+ and the <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute is
+ present, and its value has changed since the last time the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute was in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state.</li>
+
+ <li>The <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state, and the
+ <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute is set or
+ changed.</li>
+
+ </ul><!-- same text in <img> section and similar text elsewhere --><p>Fetching the image must <a href=#delay-the-load-event>delay the load event</a> of the
+ element's document until the <a href=#concept-task title=concept-task>task</a>
+ that is <a href=#queue-a-task title="queue a task">queued</a> by the
+ <a href=#networking-task-source>networking task source</a> once the resource has been <a href=#fetch title=fetch>fetched</a> (defined below) has been run.</p>
+
+ <p>If the image was successfully obtained, with no network errors,
+ and the image's type is a supported image type, and the image is a
+ valid image of that type, then the image is said to be <dfn id=input-img-available title=input-img-available><i>available</i></dfn>. If this is true
+ before the image is completely downloaded, each <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a
+ task">queued</a> by the <a href=#networking-task-source>networking task source</a> while
+ the image is being <a href=#fetch title=fetch>fetched</a> must update
+ the presentation of the image appropriately.</p>
+
+ <p>The user agents should apply the <a href=#content-type-sniffing:-image title="Content-Type
+ sniffing: image">image sniffing rules</a> to determine the type
+ of the image, with the image's <a href=#content-type title=Content-Type>associated
+ Content-Type headers</a> giving the <var title="">official
+ type</var>. If these rules are not applied, then the type of the
+ image must be the type given by the image's <a href=#content-type title=Content-Type>associated Content-Type headers</a>.</p>
+
+ <p>User agents must not support non-image resources with the
+ <code><a href=#the-input-element>input</a></code> element. User agents must not run executable code
+ embedded in the image resource. User agents must only display the
+ first page of a multipage resource. User agents must not allow the
+ resource to act in an interactive fashion, but should honor any
+ animation in the resource.</p>
+
+ <p>The <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a task">queued</a> by the <a href=#networking-task-source>networking task
+ source</a> once the resource has been <a href=#fetch title=fetch>fetched</a>, must, if the download was successful
+ and the image is <i title=input-img-available><a href=#input-img-available>available</a></i>,
+ <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named
+ <code title=event-load>load</code> at the <code><a href=#the-input-element>input</a></code>
+ element; and otherwise, if the fetching process fails without a
+ response from the remote server, or completes but the image is not a
+ valid or supported image, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> named <code title=event-error>error</code> on
+ the <code><a href=#the-input-element>input</a></code> element.</p>
+
+ <hr></div>
+
+ <p>The <dfn id=attr-input-alt title=attr-input-alt><code>alt</code></dfn> attribute
+ provides the textual label for the alternative button for users and
+ user agents who cannot use the image. The <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code> attribute must also be present,
+ and must contain a non-empty string.</p>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element supports <a href=#dimension-attributes>dimension
+ attributes</a>.</p>
+
+ <div class=impl>
+
+ <hr><p>If the <code title=attr-input-src><a href=#attr-input-src>src</a></code> attribute is set,
+ and the image is <i title=input-img-available><a href=#input-img-available>available</a></i> and
+ the user agent is configured to display that image, then: The
+ element <a href=#represents>represents</a> a control for selecting a <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>coordinate</a> from
+ the image specified by the <code title=attr-input-src><a href=#attr-input-src>src</a></code>
+ attribute; if the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>, the user agent should
+ allow the user to select this <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>coordinate</a>. The
+ <a href=#activation-behavior>activation behavior</a> in this case consists of taking the
+ user's selected <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>coordinate</a>, and
+ then, if the element has a <a href=#form-owner>form owner</a>, <a href=#concept-form-submit title=concept-form-submit>submitting</a> the <code><a href=#the-input-element>input</a></code>
+ element's <a href=#form-owner>form owner</a> from the <code><a href=#the-input-element>input</a></code>
+ element. If the user activates the control without explicitly
+ selecting a coordinate, then the coordinate (0,0) must be
+ assumed.</p>
+
+ <p>Otherwise, the element <a href=#represents>represents</a> a submit button
+ whose label is given by the value of the <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code> attribute; if the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>, the user agent should
+ allow the user to activate the button. The <a href=#activation-behavior>activation
+ behavior</a> in this case consists of setting the <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>selected
+ coordinate</a> to (0,0), and then, if the element has a
+ <a href=#form-owner>form owner</a>, <a href=#concept-form-submit title=concept-form-submit>submitting</a> the <code><a href=#the-input-element>input</a></code>
+ element's <a href=#form-owner>form owner</a> from the <code><a href=#the-input-element>input</a></code>
+ element.</p>
+
+ <p>The <dfn id=concept-input-type-image-coordinate title=concept-input-type-image-coordinate>selected
+ coordinate</dfn> must consist of an <var title="">x</var>-component
+ and a <var title="">y</var>-component. The coordinates represent the
+ position relative to the edge of the image, with the coordinate
+ space having the positive <var title="">x</var> direction to the
+ right, and the positive <var title="">y</var> direction
+ downwards.</p>
+
+ <p>The <var title="">x</var>-component must be a <a href=#valid-integer>valid
+ integer</a> representing a number <var title="">x</var> in the
+ range <span title="">&minus;(<var title="">border<sub title="">left</sub></var>+<var title="">padding<sub title="">left</sub></var>) &le; <var title="">x</var> &le; <var title="">width</var>+<var title="">border<sub title="">right</sub></var>+<var title="">padding<sub title="">right</sub></var></span>, where <var title="">width</var>
+ is the rendered width of the image, <var title="">border<sub title="">left</sub></var> is the width of the border on the left of
+ the image, <var title="">padding<sub title="">left</sub></var> is
+ the width of the padding on the left of the image, <var title="">border<sub title="">right</sub></var> is the width of the
+ border on the right of the image, and <var title="">padding<sub title="">right</sub></var> is the width of the padding on the right
+ of the image, with all dimensions given in CSS pixels.</p>
+
+ <p>The <var title="">y</var>-component must be a <a href=#valid-integer>valid
+ integer</a> representing a number <var title="">y</var> in the
+ range <span title="">&minus;(<var title="">border<sub title="">top</sub></var>+<var title="">padding<sub title="">top</sub></var>) &le; <var title="">y</var> &le; <var title="">height</var>+<var title="">border<sub title="">bottom</sub></var>+<var title="">padding<sub title="">bottom</sub></var></span>, where <var title="">height</var>
+ is the rendered height of the image, <var title="">border<sub title="">top</sub></var> is the width of the border above the image,
+ <var title="">padding<sub title="">top</sub></var> is the width of
+ the padding above the image, <var title="">border<sub title="">bottom</sub></var> is the width of the border below the
+ image, and <var title="">padding<sub title="">bottom</sub></var> is
+ the width of the padding below the image, with all dimensions given
+ in CSS pixels.</p>
+
+ <p>Where a border or padding is missing, its width is zero CSS
+ pixels.</p>
+
+ <hr></div>
+
+ <p>The <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>, <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>, <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>, <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>, and <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code> attributes are <a href=#attributes-for-form-submission>attributes
+ for form submission</a>.</p>
+
+ <div class=bookkeeping>
+
+ <p>The following common <code><a href=#the-input-element>input</a></code> element content
+ attributes and IDL attributes apply to the element:
+ <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code title=attr-input-src><a href=#attr-input-src>src</a></code>, and
+ <code title=attr-dim-width><a href=#attr-dim-width>width</a></code> content attributes;
+ <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute.</p>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute is
+ in mode <a href=#dom-input-value-default title=dom-input-value-default>default</a>.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code class=no-backref title=attr-input-required><a href=#attr-input-required>required</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>, and
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>.</p>
+
+ <p>The element's <code title=attr-input-value><a href=#attr-input-value>value</a></code>
+ attribute must be omitted.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code class=no-backref title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>,
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>,
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not apply.</p>
+
+ </div>
+
+ <p class=note>Many aspects of this state's behavior are similar to
+ the behavior of the <code><a href=#the-img-element>img</a></code> element. Readers are encouraged
+ to read that section, where many of the same requirements are
+ described in more detail.</p>
+
+ <div class=example>
+
+ <p>Take the following form:</p>
+
+ <pre>&lt;form action="process.cgi"&gt;
+ &lt;input type=image src=map.png name=where&gt;
+&lt;/form&gt;</pre>
+
+ <p>If the user clicked on the image at coordinate (127,40) then the
+ URL used to submit the form would be "<code title="">process.cgi?where.x=127&amp;where.y=40</code>".</p>
+
+ </div>
+
+
+
+ <h6 id=reset-button-state><span class=secno>4.10.7.1.21 </span><dfn title=attr-input-type-reset>Reset Button</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#reset-button-state title=attr-input-type-reset>Reset Button</a> state, the rules
+ in this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a button
+ that, when activated, resets the form. <span class=impl>If the
+ element has a <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute,
+ the button's label must be the value of that attribute; otherwise,
+ it must be an implementation-defined string that means "Reset" or
+ some such.</span> The element is a <a href=#concept-button title=concept-button>button</a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to activate the element.</p>
+
+ <p>The element's <a href=#activation-behavior>activation behavior</a>, if the element
+ has a <a href=#form-owner>form owner</a>, is to <a href=#concept-form-reset title=concept-form-reset>reset</a> the <a href=#form-owner>form owner</a>;
+ otherwise, it is to do nothing.</p>
+
+ <p><strong>Constraint validation</strong>: The element is
+ <a href=#barred-from-constraint-validation>barred from constraint validation</a>.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute
+ applies to this element and is in mode <a href=#dom-input-value-default title=dom-input-value-default>default</a>.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code class=no-backref title=attr-input-required><a href=#attr-input-required>required</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code class=no-backref title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>,
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>,
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not apply.</p>
+
+ </div>
+
+
+ <h6 id=button-state><span class=secno>4.10.7.1.22 </span><dfn title=attr-input-type-button>Button</dfn> state</h6>
+
+ <div class=impl>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#button-state title=attr-input-type-button>Button</a> state, the rules in
+ this section apply.</p>
+
+ </div>
+
+ <p>The <code><a href=#the-input-element>input</a></code> element <a href=#represents>represents</a> a button
+ with no default behavior. A label for the button must be provided in
+ the <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, though it
+ may be the empty string. <span class=impl>If the element has a
+ <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, the button's
+ label must be the value of that attribute; otherwise, it must be the
+ empty string.</span> The element is a <a href=#concept-button title=concept-button>button</a>.</p>
+
+ <div class=impl>
+
+ <p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+ the user agent should allow the user to activate the element. The
+ element's <a href=#activation-behavior>activation behavior</a> is to do nothing.</p>
+
+ <p><strong>Constraint validation</strong>: The element is
+ <a href=#barred-from-constraint-validation>barred from constraint validation</a>.</p>
+
+ </div>
+
+ <div class=bookkeeping>
+
+ <p>The <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute
+ applies to this element and is in mode <a href=#dom-input-value-default title=dom-input-value-default>default</a>.</p>
+
+ <p>The following content attributes must not be specified and do not
+ apply to the element:
+ <code class=no-backref title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+ <code class=no-backref title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
+ <code class=no-backref title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
+ <code class=no-backref title=attr-input-checked><a href=#attr-input-checked>checked</a></code>,
+ <code class=no-backref title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>,
+ <code class=no-backref title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>,
+ <code class=no-backref title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>,
+ <code class=no-backref title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>,
+ <code class=no-backref title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>,
+ <code class=no-backref title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>,
+ <code class=no-backref title=attr-dim-height><a href=#attr-dim-height>height</a></code>,
+ <code class=no-backref title=attr-input-list><a href=#attr-input-list>list</a></code>,
+ <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
+ <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+ <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+ <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
+ <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
+ <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
+ <code class=no-backref title=attr-input-required><a href=#attr-input-required>required</a></code>,
+ <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
+ <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
+ <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
+ <code class=no-backref title=attr-dim-width><a href=#attr-dim-width>width</a></code>.</p>
+
+ <p>The following IDL attributes and methods do not apply to the
+ element:
+ <code class=no-backref title=dom-input-checked><a href=#dom-input-checked>checked</a></code>,
+ <code class=no-backref title=dom-input-files><a href=#dom-input-files>files</a></code>,
+ <code class=no-backref title=dom-input-list><a href=#dom-input-list>list</a></code>,
+ <code class=no-backref title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code class=no-backref title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ <code class=no-backref title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, and
+ <code class=no-backref title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> IDL attributes;
+ <code class=no-backref title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>,
+ <code class=no-backref title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>,
+ <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
+ <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
+
+ <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not apply.</p>
+
+ </div>
+
+
+
+ <h5 id=common-input-element-attributes><span class=secno>4.10.7.2 </span>Common <code><a href=#the-input-element>input</a></code> element attributes</h5>
+
+ <div class=impl>
+
+ <p>These attributes only apply to an <code><a href=#the-input-element>input</a></code> element if
+ its <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in a
+ state whose definition declares that the attribute applies. When an
+ attribute doesn't apply to an <code><a href=#the-input-element>input</a></code> element, user
+ agents must <a href=#ignore>ignore</a> the attribute, regardless of the
+ requirements and definitions below.</p>
+
+ </div>
+
+
+ <h6 id=the-autocomplete-attribute><span class=secno>4.10.7.2.1 </span>The <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code> attribute</h6>
+
+ <p>User agents sometimes have features for helping users fill forms
+ in, for example prefilling the user's address based on earlier user
+ input.</p>
+
+ <p>The <dfn id=attr-input-autocomplete title=attr-input-autocomplete><code>autocomplete</code></dfn>
+ attribute is an <a href=#enumerated-attribute>enumerated attribute</a>. The attribute has
+ three states. The <code title=attr-input-autocomplete-on>on</code>
+ keyword maps to the <dfn id=attr-input-autocomplete-on-state title=attr-input-autocomplete-on-state>on</dfn> state, and the
+ <code title=attr-input-autocomplete-off>off</code> keyword maps to
+ the <dfn id=attr-input-autocomplete-off-state title=attr-input-autocomplete-off-state>off</dfn>
+ state. The attribute may also be omitted. The <i>missing value
+ default</i> is the <dfn id=attr-input-autocomplete-default-state title=attr-input-autocomplete-default-state>default</dfn>
+ state.</p>
+
+ <p>The <a href=#attr-input-autocomplete-off-state title=attr-input-autocomplete-off-state>off</a>
+ state indicates either that the control's input data is particularly
+ sensitive (for example the activation code for a nuclear weapon); or
+ that it is a value that will never be reused (for example a
+ one-time-key for a bank login) and the user will therefore have to
+ explicitly enter the data each time, instead of being able to rely
+ on the UA to prefill the value for him; or that the document
+ provides its own autocomplete mechanism and does not want the user
+ agent to provide autocompletion values.</p>
+
+ <p>Conversely, the <a href=#attr-input-autocomplete-on-state title=attr-input-autocomplete-on-state>on</a> state indicates
+ that the value is not particularly sensitive and the user can expect
+ to be able to rely on his user agent to remember values he has
+ entered for that control.</p>
+
+ <p>The <a href=#attr-input-autocomplete-default-state title=attr-input-autocomplete-default-state>default</a> state
+ indicates that the user agent is to use the <code title=attr-form-autocomplete><a href=#attr-form-autocomplete>autocomplete</a></code> attribute on the
+ element's <a href=#form-owner>form owner</a> instead. (By default, the <code title=attr-form-autocomplete><a href=#attr-form-autocomplete>autocomplete</a></code> attribute of
+ <code><a href=#the-form-element>form</a></code> elements is in the <a href=#attr-form-autocomplete-on-state title=attr-form-autocomplete-on-state>on</a> state.)</p>
+
+ <div class=impl>
+
+ <p>Each <code><a href=#the-input-element>input</a></code> element has a <dfn id=resulting-autocompletion-state>resulting
+ autocompletion state</dfn>, which is either <i title="">on</i> or <i title="">off</i>.</p>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element is in one of the following
+ conditions, the <code><a href=#the-input-element>input</a></code> element's <a href=#resulting-autocompletion-state>resulting
+ autocompletion state</a> is <i title="">on</i>; otherwise, the
+ <code><a href=#the-input-element>input</a></code> element's <a href=#resulting-autocompletion-state>resulting autocompletion
+ state</a> is <i title="">off</i>:</p>
+
+ <ul class=brief><li>Its <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>
+ attribute is in the <a href=#attr-input-autocomplete-on-state title=attr-input-autocomplete-on-state>on</a> state.</li>
+
+ <li>Its <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>
+ attribute is in the <a href=#attr-input-autocomplete-default-state title=attr-input-autocomplete-default-state>default</a> state,
+ and the element has no <a href=#form-owner>form owner</a>.</li>
+
+ <li>Its <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>
+ attribute is in the <a href=#attr-input-autocomplete-default-state title=attr-input-autocomplete-default-state>default</a> state,
+ and the element's <a href=#form-owner>form owner</a>'s <code title=attr-form-autocomplete><a href=#attr-form-autocomplete>autocomplete</a></code> attribute is in
+ the <a href=#attr-form-autocomplete-on-state title=attr-form-autocomplete-on-state>on</a>
+ state.</li>
+
+ </ul><p>When an <code><a href=#the-input-element>input</a></code> element's <a href=#resulting-autocompletion-state>resulting
+ autocompletion state</a> is <i title="">on</i>, the user agent
+ may store the value entered by the user so that if the user returns
+ to the page, the UA can prefill the form. Otherwise, the user agent
+ should not remember the control's <a href=#concept-fe-value title=concept-fe-value>value</a>, and should not offer past
+ values to the user.</p>
+
+ <p>In addition, if the <a href=#resulting-autocompletion-state>resulting autocompletion state</a>
+ is <i title="">off</i>, <a href=#history-autocomplete>values are
+ reset</a> when <a href=#traverse-the-history title="traverse the history">traversing the
+ history</a>.</p>
+
+ <p>The autocompletion mechanism must be implemented by the user
+ agent acting as if the user had modified the element's <a href=#concept-fe-value title=concept-fe-value>value</a>, and must be done at a time
+ where the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>
+ (e.g. just after the element has been inserted into the document, or
+ when the user agent <a href=#stop-parsing title="stop parsing">stops
+ parsing</a>).</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Banks frequently do not want UAs to prefill login
+ information:</p>
+
+ <pre>&lt;p&gt;&lt;label&gt;Account: &lt;input type="text" name="ac" autocomplete="off"&gt;&lt;/label&gt;&lt;/p&gt;
+&lt;p&gt;&lt;label&gt;PIN: &lt;input type="password" name="pin" autocomplete="off"&gt;&lt;/label&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=impl>
+
+ <p>A user agent may allow the user to override the <a href=#resulting-autocompletion-state>resulting
+ autocompletion state</a> and set it to always <i title="">on</i>,
+ always allowing values to be remembered and prefilled, or always <i title="">off</i>, never remembering values. However, user agents
+ should not allow users to trivially override the <a href=#resulting-autocompletion-state>resulting
+ autocompletion state</a> to <i title="">on</i>, as there are
+ significant security implications for the user if all values are
+ always remembered, regardless of the site's preferences.</p>
+
+ </div>
+
+
+ <h6 id=the-dirname-attribute><span class=secno>4.10.7.2.2 </span>The <code title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code> attribute</h6>
+
+ <p>The <dfn id=attr-input-dirname title=attr-input-dirname><code>dirname</code></dfn>
+ attribute, when it applies, is a <a href=#form-control-dirname-attribute>form control <code title="">dirname</code> attribute</a>.</p>
+
+ <div class=example>
+
+ <p>In this example, a form contains a text field and a submission
+ button:</p>
+
+ <pre>&lt;form action="addcomment.cgi" method=post&gt;
+ &lt;p&gt;&lt;label&gt;Comment: &lt;input type=text name="comment" dirname="comment.dir" required&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;button name="mode" type=submit value="add"&gt;Post Comment&lt;/button&gt;&lt;/p&gt;
+&lt;/form&gt;</pre>
+
+ <p>When the user submits the form, the user agent includes three
+ fields, one called "comment", one called "comment.dir", and one
+ called "mode"; so if the user types "Hello", the submission body
+ might be something like:</p>
+
+ <pre>comment=Hello&amp;<strong>comment.dir=ltr</strong>&amp;mode=add</pre>
+
+ <p>If the user manually switches to a right-to-left writing
+ direction and enters "<span dir=rtl lang=ar title="">&#1605;&#1585;&#1581;&#1576;&#1611;&#1575;</span>", the
+ submission body might be something like:</p>
+
+ <pre>comment=%D9%85%D8%B1%D8%AD%D8%A8%D9%8B%D8%A7&amp;<strong>comment.dir=rtl</strong>&amp;mode=add</pre>
+
+ </div>
+
+
+ <h6 id=the-list-attribute><span class=secno>4.10.7.2.3 </span>The <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute</h6>
+
+ <p>The <dfn id=attr-input-list title=attr-input-list><code>list</code></dfn>
+ attribute is used to identify an element that lists predefined
+ options suggested to the user.</p>
+
+ <p>If present, its value must be the <a href=#concept-id title=concept-id>ID</a> of a <code><a href=#the-datalist-element>datalist</a></code> element in
+ the same document.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=concept-input-list title=concept-input-list>suggestions source
+ element</dfn> is the first element in the document in <a href=#tree-order>tree
+ order</a> to have an <a href=#concept-id title=concept-id>ID</a> equal to
+ the value of the <code title=attr-input-list><a href=#attr-input-list>list</a></code>
+ attribute, if that element is a <code><a href=#the-datalist-element>datalist</a></code> element. If
+ there is no <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute, or
+ if there is no element with that <a href=#concept-id title=concept-id>ID</a>,
+ or if the first element with that <a href=#concept-id title=concept-id>ID</a>
+ is not a <code><a href=#the-datalist-element>datalist</a></code> element, then there is no <a href=#concept-input-list title=concept-input-list>suggestions source element</a>.</p>
+
+ <p>If there is a <a href=#concept-input-list title=concept-input-list>suggestions source
+ element</a>, then, when the user agent is allowing the user to
+ edit the <code><a href=#the-input-element>input</a></code> element's <a href=#concept-fe-value title=concept-fe-value>value</a>, the user agent should offer
+ the suggestions represented by the <a href=#concept-input-list title=concept-input-list>suggestions source element</a> to the
+ user in a manner suitable for the type of control used. The user
+ agent may use the suggestion's <a href=#concept-option-label title=concept-option-label>label</a> to identify the suggestion
+ if appropriate.</p>
+
+ <p>How user selections of suggestions are handled depends on whether
+ the element is a control accepting a single value only, or whether
+ it accepts multiple values:</p>
+
+ <dl class=switch><dt>If the element does not have a <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute specified or
+ if the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute
+ does not apply</dt>
+
+ <dd>
+
+ <p>When the user selects a suggestion, the <code><a href=#the-input-element>input</a></code>
+ element's <a href=#concept-fe-value title=concept-fe-value>value</a> must be set
+ to the selected suggestion's <a href=#concept-option-value title=concept-option-value>value</a>, as if the user had
+ written that value himself.</p>
+
+ </dd>
+
+ <dt>If the element <em>does</em> have a <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute specified,
+ and the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute
+ does apply</dt>
+
+ <dd>
+
+ <p>When the user selects a suggestion, the user agent must either
+ add a new entry to the <code><a href=#the-input-element>input</a></code> element's <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a>, whose value is
+ the selected suggestion's <a href=#concept-option-value title=concept-option-value>value</a>, or change an existing
+ entry in the <code><a href=#the-input-element>input</a></code> element's <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a> to have the value
+ given by the selected suggestion's <a href=#concept-option-value title=concept-option-value>value</a>, as if the user had
+ himself added an entry with that value, or edited an existing
+ entry to be that value. Which behavior is to be applied depends on
+ the user interface in a user-agent-defined manner.</p>
+
+ </dd>
+
+ </dl><hr><p>If the <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute does
+ not apply, there is no <a href=#concept-input-list title=concept-input-list>suggestions
+ source element</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This URL field offers some suggestions.</p>
+
+ <pre>&lt;label&gt;Homepage: &lt;input name=hp type=url list=hpurls&gt;&lt;/label&gt;
+&lt;datalist id=hpurls&gt;
+ &lt;option value="http://www.google.com/" label="Google"&gt;
+ &lt;option value="http://www.reddit.com/" label="Reddit"&gt;
+&lt;/datalist&gt;</pre>
+
+ <p>Other URLs from the user's history might show also; this is up
+ to the user agent.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This example demonstrates how to design a form that uses the
+ autocompletion list feature while still degrading usefully in
+ legacy user agents.</p>
+
+ <p>If the autocompletion list is merely an aid, and is not
+ important to the content, then simply using a <code><a href=#the-datalist-element>datalist</a></code>
+ element with children <code><a href=#the-option-element>option</a></code> elements is enough. To
+ prevent the values from being rendered in legacy user agents, they
+ need to be placed inside the <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute instead of
+ inline.</p>
+
+ <pre>&lt;p&gt;
+ &lt;label&gt;
+ Enter a breed:
+ &lt;input type="text" name="breed" list="breeds"&gt;
+ &lt;datalist id="breeds"&gt;
+ &lt;option value="Abyssinian"&gt;
+ &lt;option value="Alpaca"&gt;
+ &lt;!-- ... --&gt;
+ &lt;/datalist&gt;
+ &lt;/label&gt;
+&lt;/p&gt;</pre>
+
+ <p>However, if the values need to be shown in legacy UAs, then
+ fallback content can be placed inside the <code><a href=#the-datalist-element>datalist</a></code>
+ element, as follows:</p>
+
+ <pre>&lt;p&gt;
+ &lt;label&gt;
+ Enter a breed:
+ &lt;input type="text" name="breed" list="breeds"&gt;
+ &lt;/label&gt;
+ &lt;datalist id="breeds"&gt;
+ &lt;label&gt;
+ or select one from the list:
+ &lt;select name="breed"&gt;
+ &lt;option value=""&gt; (none selected)
+ &lt;option&gt;Abyssinian
+ &lt;option&gt;Alpaca
+ &lt;!-- ... --&gt;
+ &lt;/select&gt;
+ &lt;/label&gt;
+ &lt;/datalist&gt;
+&lt;/p&gt;
+</pre>
+
+ <p>The fallback content will only be shown in UAs that don't
+ support <code><a href=#the-datalist-element>datalist</a></code>. The options, on the other hand, will
+ be detected by all UAs, even though they are not children of the
+ <code><a href=#the-datalist-element>datalist</a></code> element.</p>
+
+ <p>Note that if an <code><a href=#the-option-element>option</a></code> element used in a
+ <code><a href=#the-datalist-element>datalist</a></code> is <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code>, it will be selected
+ by default by legacy UAs (because it affects the
+ <code><a href=#the-select-element>select</a></code>), but it will not have any effect on the
+ <code><a href=#the-input-element>input</a></code> element in UAs that support
+ <code><a href=#the-datalist-element>datalist</a></code>.</p>
+
+ </div>
+
+
+
+ <h6 id=the-readonly-attribute><span class=secno>4.10.7.2.4 </span>The <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute</h6>
+
+ <p>The <dfn id=attr-input-readonly title=attr-input-readonly><code>readonly</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a> that controls whether
+ or not the user can edit the form control. <span class=impl>When
+ specified, the element is <i title=concept-input-immutable><a href=#concept-input-immutable>immutable</a></i>.</span></p>
+
+ <div class=impl>
+
+ <p><strong>Constraint validation</strong>: If the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute is specified
+ on an <code><a href=#the-input-element>input</a></code> element, the element is <a href=#barred-from-constraint-validation>barred from
+ constraint validation</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, the existing product identifiers
+ cannot be modified, but they are still displayed as part of the
+ form, for consistency with the row representing a new product
+ (where the identifier is not yet filled in).</p>
+
+ <pre>&lt;form action="products.cgi" method=post enctype="multipart/form-data"&gt;
+ &lt;table&gt;
+ &lt;tr&gt; &lt;th&gt; Product ID &lt;th&gt; Product name &lt;th&gt; Price &lt;th&gt; Action
+ &lt;tr&gt;
+ &lt;td&gt; &lt;input readonly name="1.pid" value="H412"&gt;
+ &lt;td&gt; &lt;input required name="1.pname" value="Floor lamp Ulke"&gt;
+ &lt;td&gt; $&lt;input required type=number min=0 step=0.01 name="1.pprice" value="49.99"&gt;
+ &lt;td&gt; &lt;button formnovalidate name="action" value="delete:1"&gt;Delete&lt;/button&gt;
+ &lt;tr&gt;
+ &lt;td&gt; &lt;input readonly name="2.pid" value="FG28"&gt;
+ &lt;td&gt; &lt;input required name="2.pname" value="Table lamp Ulke"&gt;
+ &lt;td&gt; $&lt;input required type=number min=0 step=0.01 name="2.pprice" value="24.99"&gt;
+ &lt;td&gt; &lt;button formnovalidate name="action" value="delete:2"&gt;Delete&lt;/button&gt;
+ &lt;tr&gt;
+ &lt;td&gt; &lt;input required name="3.pid" value="" pattern="[A-Z0-9]+"&gt;
+ &lt;td&gt; &lt;input required name="3.pname" value=""&gt;
+ &lt;td&gt; $&lt;input required type=number min=0 step=0.01 name="3.pprice" value=""&gt;
+ &lt;td&gt; &lt;button formnovalidate name="action" value="delete:3"&gt;Delete&lt;/button&gt;
+ &lt;/table&gt;
+ &lt;p&gt; &lt;button formnovalidate name="action" value="add"&gt;Add&lt;/button&gt; &lt;/p&gt;
+ &lt;p&gt; &lt;button name="action" value="update"&gt;Save&lt;/button&gt; &lt;/p&gt;
+&lt;/form&gt;</pre>
+
+ </div>
+
+
+
+ <h6 id=the-size-attribute><span class=secno>4.10.7.2.5 </span>The <code title=attr-input-size><a href=#attr-input-size>size</a></code> attribute</h6>
+
+ <p>The <dfn id=attr-input-size title=attr-input-size><code>size</code></dfn>
+ attribute gives the number of characters that, in a visual
+ rendering, the user agent is to allow the user to see while editing
+ the element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ <p>The <code title=attr-input-size><a href=#attr-input-size>size</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-non-negative-integer>valid non-negative
+ integer</a> greater than zero.</p>
+
+ <div class=impl>
+
+ <p>If the attribute is present, then its value must be parsed using
+ the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a>, and if the
+ result is a number greater than zero, then the user agent should
+ ensure that at least that many characters are visible.</p>
+
+ <p>The <code title=dom-input-size><a href=#dom-input-size>size</a></code> IDL attribute is
+ <a href=#limited-to-only-non-negative-numbers-greater-than-zero>limited to only non-negative numbers greater than
+ zero</a> and has a default value of 20.</p>
+
+ </div>
+
+
+
+ <h6 id=the-required-attribute><span class=secno>4.10.7.2.6 </span>The <code title=attr-input-required><a href=#attr-input-required>required</a></code> attribute</h6>
+
+ <p>The <dfn id=attr-input-required title=attr-input-required><code>required</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. When specified, the
+ element is <dfn id=concept-input-required title=concept-input-required><i>required</i></dfn>.</p>
+
+ <div class=impl>
+
+ <p><strong>Constraint validation</strong>: If the element is <i title=concept-input-required><a href=#concept-input-required>required</a></i>, and its <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute applies and is in
+ the mode <a href=#dom-input-value-value title=dom-input-value-value>value</a>, and the
+ element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>, and the
+ element's <a href=#concept-fe-value title=concept-fe-value>value</a> is the empty
+ string, then the element is <a href=#suffering-from-being-missing>suffering from being
+ missing</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following form has two required fields, one for an e-mail
+ address and one for a password. It also has a third field that is
+ only considerd valid if the user types the same password in the
+ password field and this third field.</p>
+
+ <pre>&lt;h1&gt;Create new account&lt;/h1&gt;
+&lt;form action="/newaccount" method=post
+ oninput="up2.setCustomValidity(up2.value != up.value ? 'Passwords do not match.' : '')"&gt;
+ &lt;p&gt;
+ &lt;label for="username"&gt;E-mail address:&lt;/label&gt;
+ &lt;input id="username" type=email required name=un&gt;
+ &lt;p&gt;
+ &lt;label for="password1"&gt;Password:&lt;/label&gt;
+ &lt;input id="password1" type=password required name=up&gt;
+ &lt;p&gt;
+ &lt;label for="password2"&gt;Confirm password:&lt;/label&gt;
+ &lt;input id="password2" type=password name=up2&gt;
+ &lt;p&gt;
+ &lt;input type=submit value="Create account"&gt;
+&lt;/form&gt;</pre>
+
+ </div>
+
+
+ <h6 id=the-multiple-attribute><span class=secno>4.10.7.2.7 </span>The <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute</h6>
+
+ <p>The <dfn id=attr-input-multiple title=attr-input-multiple><code>multiple</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a> that indicates whether
+ the user is to be allowed to specify more than one value.</p>
+
+ <div class=example>
+
+ <p>The following extract shows how an e-mail client's "Cc" field
+ could accept multiple e-mail addresses.</p>
+
+ <pre>&lt;label&gt;Cc: &lt;input type=email multiple name=cc&gt;&lt;/label&gt;</pre>
+
+ <p>If the user had, amongst many friends in his user contacts
+ database, two friends "Arthur Dent" (with address
+ "art@example.net") and "Adam Josh" (with address
+ "adamjosh@example.net"), then, after the user has typed "a", the
+ user agent might suggest these two e-mail addresses to the
+ user.</p>
+
+ <p><img alt="" height=140 src=greenbox.png width=500></p>
+
+ <p>The page could also link in the user's contacts database from the site:</p>
+
+ <pre>&lt;label&gt;Cc: &lt;input type=email multiple name=cc list=contacts&gt;&lt;/label&gt;
+...
+&lt;datalist id="contacts"&gt;
+ &lt;option value="hedral@damowmow.com"&gt;
+ &lt;option value="pillar@example.com"&gt;
+ &lt;option value="astrophy@cute.example"&gt;
+ &lt;option value="astronomy@science.example.org"&gt;
+&lt;/datalist&gt;</pre>
+
+ <p>Suppose the user had entered "bob@example.net" into this text
+ field, and then started typing a second e-mail address starting
+ with "a". The user agent might show both the two friends mentioned
+ earlier, as well as the "astrophy" and "astronomy" values given in
+ the <code><a href=#the-datalist-element>datalist</a></code> element.</p>
+
+ <p><img alt="" height=171 src=greenbox.png width=500></p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following extract shows how an e-mail client's "Attachments"
+ field could accept multiple files for upload.</p>
+
+ <pre>&lt;label&gt;Attachments: &lt;input type=file multiple name=att&gt;&lt;/label&gt;</pre>
+
+ </div>
+
+
+ <h6 id=the-maxlength-attribute><span class=secno>4.10.7.2.8 </span>The <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code> attribute</h6>
+
+ <p>The <dfn id=attr-input-maxlength title=attr-input-maxlength><code>maxlength</code></dfn>
+ attribute<span class=impl>, when it applies,</span> is a <a href=#attr-fe-maxlength title=attr-fe-maxlength>form control <code title="">maxlength</code> attribute</a><span class=impl>
+ controlled by the <code><a href=#the-input-element>input</a></code> element's <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value
+ flag</a></span>.</p>
+
+ <p>If the <code><a href=#the-input-element>input</a></code> element has a <a href=#maximum-allowed-value-length>maximum allowed
+ value length</a>, then the <a href=#code-point-length>code-point length</a> of the
+ value of the element's <code title=attr-input-value><a href=#attr-input-value>value</a></code>
+ attribute must be equal to or less than the element's <a href=#maximum-allowed-value-length>maximum
+ allowed value length</a>.</p>
+
+ <div class=example>
+
+ <p>The following extract shows how a messaging client's text entry
+ could be arbitrarily restricted to a fixed number of characters,
+ thus forcing any conversation through this medium to be terse and
+ discouraging intelligent discourse.</p>
+
+ <pre>&lt;label&gt;What are you doing? &lt;input name=status maxlength=140&gt;&lt;/label&gt;</pre>
+
+ </div>
+
+
+
+ <h6 id=the-pattern-attribute><span class=secno>4.10.7.2.9 </span>The <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code> attribute</h6>
+
+ <p>The <dfn id=attr-input-pattern title=attr-input-pattern><code>pattern</code></dfn>
+ attribute specifies a regular expression against which the control's
+ <a href=#concept-fe-value title=concept-fe-value>value</a>, or, when the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute applies and is
+ set, the control's <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a>, are to be
+ checked.</p>
+
+ <p>If specified, the attribute's value must match the JavaScript <i title="">Pattern</i> production. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ <div class=impl>
+
+ <p>If an <code><a href=#the-input-element>input</a></code> element has a <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code> attribute specified, and
+ the attribute's value, when compiled as a JavaScript regular
+ expression with the <code title="">global</code>, <code title="">ignoreCase</code>, and <code title="">multiline</code>
+ flags <em>disabled</em> (see ECMA262 Edition 5, sections 15.10.7.2
+ through 15.10.7.4), compiles successfully, then the resulting
+ regular expression is the element's <dfn id=compiled-pattern-regular-expression>compiled pattern regular
+ expression</dfn>. If the element has no such attribute, or if the
+ value doesn't compile successfully, then the element has no
+ <a href=#compiled-pattern-regular-expression>compiled pattern regular expression</a>. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ <p><strong>Constraint validation</strong>: If the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is not the empty string, and
+ either the element's <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute is not
+ specified or it does not apply to the <code><a href=#the-input-element>input</a></code> element
+ given its <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's
+ current state, and the element has a <a href=#compiled-pattern-regular-expression>compiled pattern regular
+ expression</a> but that regular expression does not match the
+ entirety of the element's <a href=#concept-fe-value title=concept-fe-value>value</a>, then the element is
+ <a href=#suffering-from-a-pattern-mismatch>suffering from a pattern mismatch</a>.</p>
+
+ <p><strong>Constraint validation</strong>: If the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is not the empty string, and
+ the element's <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+ attribute is specified and applies to the <code><a href=#the-input-element>input</a></code>
+ element, and the element has a <a href=#compiled-pattern-regular-expression>compiled pattern regular
+ expression</a> but that regular expression does not match the
+ entirety of each of the element's <a href=#concept-fe-values title=concept-fe-values>value<em>s</em></a>, then the element
+ is <a href=#suffering-from-a-pattern-mismatch>suffering from a pattern mismatch</a>.</p>
+
+ <p>The <a href=#compiled-pattern-regular-expression>compiled pattern regular expression</a>, when
+ matched against a string, must have its start anchored to the start
+ of the string and its end anchored to the end of the string.</p>
+
+ <p class=note>This implies that the regular expression language
+ used for this attribute is the same as that used in JavaScript,
+ except that the <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>
+ attribute is matched against the entire value, not just any subset
+ (somewhat as if it implied a <code title="">^(?:</code> at the start
+ of the pattern and a <code title="">)$</code> at the end).</p>
+
+ </div>
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element has a <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code> attribute specified,
+ authors should include a <code title=attr-title><a href=#the-title-attribute>title</a></code>
+ attribute to give a description of the pattern. User agents may use
+ the contents of this attribute, if it is present, when informing the
+ user that the pattern is not matched, or at any other suitable time,
+ such as in a tooltip or read out by assistive technology when the
+ control gains focus.</p>
+
+ <div class=example>
+ <p>For example, the following snippet:</p>
+ <pre>&lt;label&gt; Part number:
+ &lt;input pattern="[0-9][A-Z]{3}" name="part"
+ title="A part number is a digit followed by three uppercase letters."/&gt;
+&lt;/label&gt;</pre>
+ <p>...could cause the UA to display an alert such as:</p>
+ <pre><samp>A part number is a digit followed by three uppercase letters.
+You cannot submit this form when the field is incorrect.</samp></pre>
+ </div>
+
+ <p>When a control has a <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code> attribute, the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute, if used, must describe
+ the pattern. Additional information could also be included, so long
+ as it assists the user in filling in the control. Otherwise,
+ assistive technology would be impaired.</p>
+
+ <p class=example>For instance, if the title attribute contained
+ the caption of the control, assistive technology could end up saying
+ something like <samp>The text you have entered does not match the
+ required pattern. Birthday</samp>, which is not useful.</p>
+
+ <p>UAs may still show the <code><a href=#the-title-element>title</a></code> in non-error situations
+ (for example, as a tooltip when hovering over the control), so
+ authors should be careful not to word <code><a href=#the-title-element>title</a></code>s as if an
+ error has necessarily occurred.</p>
+
+
+
+ <h6 id=the-min-and-max-attributes><span class=secno>4.10.7.2.10 </span>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> and <code title=attr-input-max><a href=#attr-input-max>max</a></code> attributes</h6>
+
+ <p>The <dfn id=attr-input-min title=attr-input-min><code>min</code></dfn> and <dfn id=attr-input-max title=attr-input-max><code>max</code></dfn> attributes indicate
+ the allowed range of values for the element.</p>
+
+ <div class=impl>
+
+ <p>Their syntax is defined by the section that defines the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state.</p>
+
+ <p>If the element has a <code title=attr-input-min><a href=#attr-input-min>min</a></code>
+ attribute, and the result of applying the <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a> to the value of the <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute is a number, then that
+ number is the element's <dfn id=concept-input-min title=concept-input-min>minimum</dfn>; otherwise, if the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state
+ defines a <dfn id=concept-input-min-default title=concept-input-min-default>default
+ minimum</dfn>, then that is the <a href=#concept-input-min title=concept-input-min>minimum</a>; otherwise, the element has
+ no <a href=#concept-input-min title=concept-input-min>minimum</a>.</p>
+
+ <p><strong>Constraint validation</strong>: When the element has a
+ <a href=#attr-input-min title=attr-input-min>minimum</a>, and the result of
+ applying the <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a> to the string given by the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is a number, and the number
+ obtained from that algorithm is less than the <a href=#attr-input-min title=attr-input-min>minimum</a>, the element is
+ <a href=#suffering-from-an-underflow>suffering from an underflow</a>.</p>
+
+ <p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute also
+ defines the <a href=#concept-input-min-zero title=concept-input-min-zero>step
+ base</a>.</p>
+
+ <p>If the element has a <code title=attr-input-max><a href=#attr-input-max>max</a></code>
+ attribute, and the result of applying the <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a> to the value of the <code title=attr-input-max><a href=#attr-input-max>max</a></code> attribute is a number, then that
+ number is the element's <dfn id=concept-input-max title=concept-input-max>maximum</dfn>; otherwise, if the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state
+ defines a <dfn id=concept-input-max-default title=concept-input-max-default>default
+ maximum</dfn>, then that is the <a href=#concept-input-max title=concept-input-max>maximum</a>; otherwise, the element has
+ no <a href=#concept-input-max title=concept-input-max>maximum</a>.</p>
+
+ <p><strong>Constraint validation</strong>: When the element has a
+ <a href=#attr-input-max title=attr-input-max>maximum</a>, and the result of
+ applying the <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a> to the string given by the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is a number, and the number
+ obtained from that algorithm is more than the <a href=#attr-input-max title=attr-input-max>maximum</a>, the element is
+ <a href=#suffering-from-an-overflow>suffering from an overflow</a>.</p>
+
+ </div>
+
+ <p>The <code title=attr-input-max><a href=#attr-input-max>max</a></code> attribute's value
+ (the <a href=#concept-input-max title=concept-input-max>maximum</a>) must not be
+ less than the <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute's
+ value (its <a href=#concept-input-min title=concept-input-min>minimum</a>).</p>
+
+ <div class=impl>
+
+ <p class=note>If an element has a <a href=#attr-input-max title=attr-input-max>maximum</a> that is less than its <a href=#attr-input-min title=attr-input-min>minimum</a>, then so long as the element
+ has a <a href=#concept-fe-value title=concept-fe-value>value</a>, it will either be
+ <a href=#suffering-from-an-underflow>suffering from an underflow</a> or <a href=#suffering-from-an-overflow>suffering from an
+ overflow</a>.</p>
+
+ </div>
+
+ <p>An element <dfn id=have-range-limitations title="have range limitations">has range
+ limitations</dfn> if it has a defined <a href=#concept-input-min title=concept-input-min>minimum</a> or a defined <a href=#concept-input-max title=concept-input-max>maximum</a>.</p>
+
+ <div class=example>
+
+ <p>The following date control limits input to dates that are before
+ the 1980s:</p>
+
+ <pre>&lt;input name=bday type=date max="1979-12-31"&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following number control limits input to whole numbers
+ greater than zero:</p>
+
+ <pre>&lt;input name=quantity required type=number min=1 value=1&gt;</pre>
+
+ </div>
+
+
+ <h6 id=the-step-attribute><span class=secno>4.10.7.2.11 </span>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute</h6>
+
+ <p>The <dfn id=attr-input-step title=attr-input-step><code>step</code></dfn>
+ attribute indicates the granularity that is expected (and required)
+ of the <a href=#concept-fe-value title=concept-fe-value>value</a>, by limiting the
+ allowed values. <span class=impl>The section that defines the
+ <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state
+ also defines the <dfn id=concept-input-step-default title=concept-input-step-default>default
+ step</dfn>, the <dfn id=concept-input-step-scale title=concept-input-step-scale>step scale
+ factor</dfn>, and in some cases the <dfn id=concept-input-step-default-base title=concept-input-step-default-base>default step base</dfn>,
+ which are used in processing the attribute as described
+ below.</span></p>
+
+ <p>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute, if
+ specified, must either have a value that is a <a href=#valid-floating-point-number>valid floating
+ point number</a> that <a href=#rules-for-parsing-floating-point-number-values title="rules for parsing floating
+ point number values">parses</a> to a number that is greater than
+ zero, or must have a value that is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">any</code>".</p>
+
+ <div class=impl>
+
+ <p>The attribute provides the <dfn id=concept-input-step title=concept-input-step>allowed value step</dfn> for the element,
+ as follows:</p>
+
+ <ol><li>If the attribute is absent, then the <a href=#concept-input-step title=concept-input-step>allowed value step</a> is the <a href=#concept-input-step-default title=concept-input-step-default>default step</a> multiplied
+ by the <a href=#concept-input-step-scale title=concept-input-step-scale>step scale
+ factor</a>.</li>
+
+ <li>Otherwise, if the attribute's value is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">any</code>", then there is no <a href=#concept-input-step title=concept-input-step>allowed value step</a>.</li>
+
+ <li>Otherwise, if the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating point number
+ values</a>, when they are applied to the attribute's value,
+ return an error, zero, or a number less than zero, then the <a href=#concept-input-step title=concept-input-step>allowed value step</a> is the <a href=#concept-input-step-default title=concept-input-step-default>default step</a> multiplied
+ by the <a href=#concept-input-step-scale title=concept-input-step-scale>step scale
+ factor</a>.</li>
+
+ <li>Otherwise, the <a href=#concept-input-step title=concept-input-step>allowed value
+ step</a> is the number returned by the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing
+ floating point number values</a> when they are applied to the
+ attribute's value, multiplied by the <a href=#concept-input-step-scale title=concept-input-step-scale>step scale factor</a>.</li>
+
+ </ol><p>The <dfn id=concept-input-min-zero title=concept-input-min-zero>step base</dfn> is the
+ result of applying the <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a> to the value of the <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, unless the element does
+ not have a <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute
+ specified or the result of applying that algorithm is an error, in
+ which case the <a href=#concept-input-min-zero title=concept-input-min-zero>step base</a>
+ is the <a href=#concept-input-step-default-base title=concept-input-step-default-base>default step
+ base</a>, if one is defined, or zero, if not.</p>
+
+ <p><strong>Constraint validation</strong>: When the element has an
+ <a href=#concept-input-step title=concept-input-step>allowed value step</a>, and the
+ result of applying the <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a> to the string given by the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is a number, and that
+ number subtracted from the <a href=#concept-input-min-zero title=concept-input-min-zero>step
+ base</a> is not an integral multiple of the <a href=#concept-input-step title=concept-input-step>allowed value step</a>, the element is
+ <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following range control only accepts values in the range
+ 0..1, and allows 256 steps in that range:</p>
+
+ <pre>&lt;input name=opacity type=range min=0 max=1 step=0.00392156863&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following control allows any time in the day to be selected,
+ with any accuracy (e.g. thousandth-of-a-second accuracy or
+ more):</p>
+
+ <pre>&lt;input name=favtime type=time step=any&gt;</pre>
+
+ <p>Normally, time controls are limited to an accuracy of one
+ minute.</p>
+
+ </div>
+
+
+
+
+ <h6 id=the-placeholder-attribute><span class=secno>4.10.7.2.12 </span>The <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code> attribute</h6>
+
+ <!-- similar text in the <textarea> section -->
+
+ <p>The <dfn id=attr-input-placeholder title=attr-input-placeholder><code>placeholder</code></dfn>
+ attribute represents a <em>short</em> hint (a word or short phrase)
+ intended to aid the user with data entry. A hint could be a sample
+ value or a brief description of the expected format. The attribute,
+ if specified, must have a value that contains no U+000A LINE FEED
+ (LF) or U+000D CARRIAGE RETURN (CR) characters.</p>
+
+ <p class=note>For a longer hint or other advisory text, the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute is more appropriate.</p>
+
+ <p>The <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>
+ attribute should not be used as an alternative to a
+ <code><a href=#the-label-element>label</a></code>.</p>
+
+ <div class=impl>
+
+ <p>User agents should present this hint to the user, after having
+ <a href=#strip-line-breaks title="strip line breaks">stripped line breaks</a> from it,
+ when the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is
+ the empty string and the control is not focused (e.g. by displaying
+ it inside a blank unfocused control).</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here is an example of a mail configuration user interface that
+ uses the <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>
+ attribute:</p>
+
+ <pre>&lt;fieldset&gt;
+ &lt;legend&gt;Mail Account&lt;/legend&gt;
+ &lt;p&gt;&lt;label&gt;Name: &lt;input type="text" name="fullname" placeholder="John Ratzenberger"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Address: &lt;input type="email" name="address" placeholder="john@example.net"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Password: &lt;input type="password" name="password"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Description: &lt;input type="text" name="desc" placeholder="My Email Account"&gt;&lt;/label&gt;&lt;/p&gt;
+&lt;/fieldset&gt;</pre>
+
+ </div>
+
+
+
+ <h5 id=common-input-element-apis><span class=secno>4.10.7.3 </span>Common <code><a href=#the-input-element>input</a></code> element APIs</h5>
+
+ <dl class=domintro><dt><var title="">input</var> . <code title=dom-input-value><a href=#dom-input-value>value</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the form control.</p>
+
+ <p>Can be set, to change the value.</p>
+
+ <p>Throws an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception if it is
+ set to any value other than the empty string when the control is a
+ file upload control.</p>
+
+ </dd>
+
+ <dt><var title="">input</var> . <code title=dom-input-checked><a href=#dom-input-checked>checked</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> of the form
+ control.</p>
+
+ <p>Can be set, to change the <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a>.</p>
+
+ </dd>
+
+ <dt><var title="">input</var> . <code title=dom-input-files><a href=#dom-input-files>files</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#filelist>FileList</a></code> object listing the <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a> of
+ the form control.</p>
+
+ <p>Returns null if the control isn't a file control.</p>
+
+ </dd>
+
+ <dt><var title="">input</var> . <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns a <code>Date</code> object representing the form
+ control's <a href=#concept-fe-value title=concept-fe-value>value</a>, if
+ applicable; otherwise, returns null.</p>
+
+ <p>Can be set, to change the value.</p>
+
+ <p>Throws an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception if the
+ control isn't date- or time-based.</p>
+
+ </dd>
+
+ <dt><var title="">input</var> . <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns a number representing the form control's <a href=#concept-fe-value title=concept-fe-value>value</a>, if applicable; otherwise,
+ returns null.</p>
+
+ <p>Can be set, to change the value.</p>
+
+ <p>Throws an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception if the
+ control is neither date- or time-based nor numeric.</p>
+
+ </dd>
+
+ <dt><var title="">input</var> . <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp</a></code>( [ <var title="">n</var> ] )</dt>
+ <dt><var title="">input</var> . <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown</a></code>( [ <var title="">n</var> ] )</dt>
+
+ <dd>
+
+ <p>Changes the form control's <a href=#concept-fe-value title=concept-fe-value>value</a> by the value given in the
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute, multiplied by
+ <var title="">n</var>. The default value for <var title="">n</var>
+ is 1.</p>
+
+ <p>Throws <code><a href=#invalidstateerror>InvalidStateError</a></code> exception if the control
+ is neither date- or time-based nor numeric, if the <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute's value is "<code title="">any</code>", if the current <a href=#concept-fe-value title=concept-fe-value>value</a> could not be parsed, or if
+ stepping in the given direction by the given amount would take the
+ value out of range.</p>
+
+ </dd>
+
+ <dt><var title="">input</var> . <code title=dom-input-list><a href=#dom-input-list>list</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#the-datalist-element>datalist</a></code> element indicated by the
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute.</p>
+
+ </dd>
+
+ <dt><var title="">input</var> . <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#the-option-element>option</a></code> element from the
+ <code><a href=#the-datalist-element>datalist</a></code> element indicated by the <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute that matches the
+ form control's <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-input-value title=dom-input-value><code>value</code></dfn> IDL
+ attribute allows scripts to manipulate the <a href=#concept-fe-value title=concept-fe-value>value</a> of an <code><a href=#the-input-element>input</a></code>
+ element. The attribute is in one of the following modes, which
+ define its behavior:</p>
+
+ <dl><dt><dfn id=dom-input-value-value title=dom-input-value-value>value</dfn>
+
+ <dd>
+
+ <p>On getting, it must return the current <a href=#concept-fe-value title=concept-fe-value>value</a> of the element. On setting,
+ it must set the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the new value, set the
+ element's <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value
+ flag</a> to true, invoke the <a href=#value-sanitization-algorithm>value sanitization
+ algorithm</a>, if the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state
+ defines one, and then, if the element has a text entry cursor
+ position, should move the text entry cursor position to the end of
+ the text field, unselecting any selected text and resetting the
+ selection direction to <i>none</i>.</p>
+
+ </dd>
+
+ <dt><dfn id=dom-input-value-default title=dom-input-value-default>default</dfn>
+
+ <dd>
+
+ <p>On getting, if the element has a <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, it must return
+ that attribute's value; otherwise, it must return the empty
+ string. On setting, it must set the element's <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute to the new
+ value.</p>
+
+ </dd>
+
+ <dt><dfn id=dom-input-value-default-on title=dom-input-value-default-on>default/on</dfn>
+
+ <dd>
+
+ <p>On getting, if the element has a <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, it must return
+ that attribute's value; otherwise, it must return the string
+ "<code title="">on</code>". On setting, it must set the element's
+ <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute to the new
+ value.</p>
+
+ </dd>
+
+ <dt><dfn id=dom-input-value-filename title=dom-input-value-filename>filename</dfn>
+
+ <dd id=fakepath-orly>
+
+ <p>On getting, it must return the string "<code title="">C:\fakepath\</code>" followed by the filename of the
+ first file in the list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>, if
+ any, or the empty string if the list is empty. On setting, if the
+ new value is the empty string, it must empty the list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>;
+ otherwise, it must throw an <code><a href=#invalidstateerror>InvalidStateError</a></code>
+ exception.</p>
+
+ <p class=note>This "fakepath" requirement is a sad accident of
+ history. See <a href=#fakepath-srsly>the example in the File
+ Upload state section</a> for more information.</p>
+
+ </dd>
+
+ </dl><hr><p>The <dfn id=dom-input-checked title=dom-input-checked><code>checked</code></dfn> IDL
+ attribute allows scripts to manipulate the <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> of an
+ <code><a href=#the-input-element>input</a></code> element. On getting, it must return the current
+ <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> of the element;
+ and on setting, it must set the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> to the new value and
+ set the element's <a href=#concept-input-checked-dirty-flag title=concept-input-checked-dirty-flag>dirty checkedness
+ flag</a> to true.</p>
+
+ <hr><p>The <dfn id=dom-input-files title=dom-input-files><code>files</code></dfn> IDL
+ attribute allows scripts to access the element's <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>. On
+ getting, if the IDL attribute applies, it must return a
+ <code><a href=#filelist>FileList</a></code> object that represents the current <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>. The
+ same object must be returned until the list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>
+ changes. If the IDL attribute does not apply, then it must instead
+ return null. <a href=#refsFILEAPI>[FILEAPI]</a></p>
+
+ <hr><p>The <dfn id=dom-input-valueasdate title=dom-input-valueAsDate><code>valueAsDate</code></dfn> IDL
+ attribute represents the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element, interpreted
+ as a date.</p>
+
+ <p>On getting, if the <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code> attribute does not
+ apply, as defined for the <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state, then
+ return null. Otherwise, run the <a href=#concept-input-value-string-date title=concept-input-value-string-date>algorithm to convert a
+ string to a <code>Date</code> object</a> defined for that state;
+ if the algorithm returned a <code>Date</code> object, then return
+ it, otherwise, return null.</p>
+
+ <p>On setting, if the <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code> attribute does not
+ apply, as defined for the <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state, then
+ throw an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception; otherwise, if
+ the new value is null, then set the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element to the empty
+ string; otherwise, run the <a href=#concept-input-value-date-string title=concept-input-value-date-string>algorithm to convert a
+ <code>Date</code> object to a string</a>, as defined for that
+ state, on the new value, and set the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element to resulting
+ string.</p>
+
+ <hr><p>The <dfn id=dom-input-valueasnumber title=dom-input-valueAsNumber><code>valueAsNumber</code></dfn> IDL
+ attribute represents the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element, interpreted as a number.</p>
+
+ <p>On getting, if the <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> attribute does
+ not apply, as defined for the <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state, then
+ return a Not-a-Number (NaN) value. Otherwise, if the <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAs<em>Date</em></a></code>
+ attribute applies, run the <a href=#concept-input-value-string-date title=concept-input-value-string-date>algorithm to convert a
+ string to a <code>Date</code> object</a> defined for that state;
+ if the algorithm returned a <code>Date</code> object, then return
+ the <i>time value</i> of the object (the number of milliseconds from
+ midnight UTC the morning of 1970-01-01 to the time represented by
+ the <code>Date</code> object), otherwise, return a Not-a-Number
+ (NaN) value. Otherwise, run the <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a> defined for that state; if the algorithm
+ returned a number, then return it, otherwise, return a Not-a-Number
+ (NaN) value.</p>
+
+ <p>On setting, if the <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code> attribute does
+ not apply, as defined for the <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state, then
+ throw an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception. Otherwise, if
+ the <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAs<em>Date</em></a></code>
+ attribute applies, run the <a href=#concept-input-value-date-string title=concept-input-value-date-string>algorithm to convert a
+ <code>Date</code> object to a string</a> defined for that state,
+ passing it a <code>Date</code> object whose <i>time value</i> is the
+ new value, and set the <a href=#concept-fe-value title=concept-fe-value>value</a>
+ of the element to resulting string. Otherwise, run the <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</a>, as defined for that state, on the new
+ value, and set the <a href=#concept-fe-value title=concept-fe-value>value</a> of
+ the element to resulting string.</p>
+
+ <hr><p>The <dfn id=dom-input-stepdown title=dom-input-stepDown><code>stepDown(<var title="">n</var>)</code></dfn> and <dfn id=dom-input-stepup title=dom-input-stepUp><code>stepUp(<var title="">n</var>)</code></dfn> methods, when invoked, must run the
+ following algorithm:</p>
+
+ <ol><li><p>If the <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
+ <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods do not
+ apply, as defined for the <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state, then
+ throw an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception, and abort these
+ steps.</li>
+
+ <li><p>If the element has no <a href=#concept-input-step title=concept-input-step>allowed value step</a>, then throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception, and abort these
+ steps.</li>
+
+ <li><p>If applying the <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
+ string to a number</a> to the string given by the element's
+ <a href=#concept-fe-value title=concept-fe-value>value</a> results in an error,
+ then throw an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception, and abort
+ these steps; otherwise, let <var title="">value</var> be the result
+ of that algorithm.</li>
+
+ <li><p>Let <var title="">n</var> be the argument, or 1 if the
+ argument was omitted.</li>
+
+ <li><p>Let <var title="">delta</var> be the <a href=#concept-input-step title=concept-input-step>allowed value step</a> multiplied by
+ <var title="">n</var>.</li>
+
+ <li><p>If the method invoked was the <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> method, negate <var title="">delta</var>.</li>
+
+ <li><p>Let <var title="">value</var> be the result of adding <var title="">delta</var> to <var title="">value</var>.</li>
+ <li><p>If the element has a <a href=#concept-input-min title=concept-input-min>minimum</a>, and the <var title="">value</var> is less than that <a href=#concept-input-min title=concept-input-min>minimum</a>, then throw a
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception.</li>
+
+ <li><p>If the element has a <a href=#concept-input-max title=concept-input-max>maximum</a>, and the <var title="">value</var> is greater than that <a href=#concept-input-max title=concept-input-max>maximum</a>, then throw a
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception.</li>
+
+ <li><p>Let <var title="">value as string</var> be the result of
+ running the <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a
+ number to a string</a>, as defined for the <code><a href=#the-input-element>input</a></code>
+ element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's
+ current state, on <var title="">value</var>.</li>
+
+ <li><p>Set the <a href=#concept-fe-value title=concept-fe-value>value</a> of the
+ element to <var title="">value as string</var>.</li>
+
+ </ol><hr><p>The <dfn id=dom-input-list title=dom-input-list><code>list</code></dfn> IDL
+ attribute must return the current <a href=#concept-input-list title=concept-input-list>suggestions source element</a>, if
+ any, or null otherwise.</p>
+
+ <p>The <dfn id=dom-input-selectedoption title=dom-input-selectedOption><code>selectedOption</code></dfn>
+ IDL attribute must return the value determined by the following
+ steps:</p>
+
+ <ol><li><p>If there is no <a href=#concept-input-list title=concept-input-list>suggestions
+ source element</a> (e.g. because the <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute doesn't apply or is
+ not specified), then return null and abort these steps.</li>
+
+ <li><p>If the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+ attribute is specified and applies, then return null and abort
+ these steps. (The <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> IDL
+ attribute doesn't apply.)</li>
+
+ <li><p>Return the first <code><a href=#the-option-element>option</a></code> element, in <a href=#tree-order>tree
+ order</a>, to be a child of the <a href=#concept-input-list title=concept-input-list>suggestions source element</a> and
+ whose <a href=#concept-option-value title=concept-option-value>value</a> matches the
+ <code><a href=#the-input-element>input</a></code> element's <a href=#concept-fe-value title=concept-fe-value>value</a>, if any. If the <a href=#concept-input-list title=concept-input-list>suggestions source element</a>
+ contains no matching <code><a href=#the-option-element>option</a></code> element, then return null
+ instead.</li>
+
+ </ol></div>
+
+
+ <div class=impl>
+
+ <h5 id=common-event-behaviors><span class=secno>4.10.7.4 </span>Common event behaviors</h5>
+
+ <p>When the <dfn id=event-input-input title=event-input-input><code>input</code></dfn>
+ event applies, any time the user causes the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to change, the user agent must
+ <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a> that
+ bubbles named <code title=event-input>input</code> at the
+ <code><a href=#the-input-element>input</a></code> element. User agents may wait for a suitable
+ break in the user's interaction before queuing the task; for
+ example, a user agent could wait for the user to have not hit a key
+ for 100ms, so as to only fire the event when the user pauses,
+ instead of continuously for each keystroke.</p> <!-- same text is
+ present in the <textarea> section -->
+
+ <p class=example>Examples of a user changing the element's <a href=#concept-fe-value title=concept-fe-value>value</a> would include the user typing
+ into a text field, pasting a new value into the field, or undoing an
+ edit in that field. Some user interactions do not cause changes to
+ the value, e.g. hitting the "delete" key in an empty text field, or
+ replacing some text in the field with text from the clipboard that
+ happens to be exactly the same text.</p>
+
+ <p>When the <dfn id=event-input-change title=event-input-change><code>change</code></dfn> event applies,
+ if the element does not have an <a href=#activation-behavior>activation behavior</a>
+ defined but uses a user interface that involves an explicit commit
+ action, then any time the user commits a change to the element's
+ <a href=#concept-fe-value title=concept-fe-value>value</a> or list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>, the
+ user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> that bubbles named <code title=event-change>change</code> at the <code><a href=#the-input-element>input</a></code>
+ element.</p>
+
+ <p class=example>An example of a user interface with a commit
+ action would be a <a href=#file-upload-state title=attr-input-type-file>File
+ Upload</a> control that consists of a single button that brings
+ up a file selection dialog: when the dialog is closed, if that the
+ <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>file selection</a>
+ changed as a result, then the user has committed a new <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>file selection</a>.</p>
+
+ <p class=example>Another example of a user interface with a commit
+ action would be a <a href=#date-state title=attr-input-type-date>Date</a>
+ control that allows both text-based user input and user selection
+ from a drop-down calendar: while text input might not have an
+ explicit commit step, selecting a date from the drop down calendar
+ and then dismissing the drop down would be a commit action.</p>
+
+ <p>When the user agent changes the element's <a href=#concept-fe-value title=concept-fe-value>value</a> on behalf of the user (e.g. as
+ part of a form prefilling feature), the user agent must follow these
+ steps:</p>
+
+ <ol><li>If the <code title=event-input-input><a href=#event-input-input>input</a></code> event
+ applies, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> that bubbles named <code title=event-input>input</code> at the <code><a href=#the-input-element>input</a></code>
+ element.</li>
+
+ <li>If the <code title=event-input-change><a href=#event-input-change>change</a></code> event
+ applies, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> that bubbles named <code title=event-change>change</code> at the <code><a href=#the-input-element>input</a></code>
+ element.</li>
+
+ </ol><p class=note>In addition, when the <code title=event-input-change><a href=#event-input-change>change</a></code> event applies, <code title=event-change>change</code> events can also be fired as part
+ of the element's <a href=#activation-behavior>activation behavior</a> and as part of the
+ <a href=#unfocusing-steps>unfocusing steps</a>.</p>
+
+ <p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#user-interaction-task-source>user interaction task
+ source</a>.</p>
+
+ </div>
+
+
+
+ <h4 id=the-button-element><span class=secno>4.10.8 </span>The <dfn><code>button</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#interactive-content>Interactive content</a>.</dd>
+ <dd><a href=#category-listed title=category-listed>Listed</a>, <a href=#category-label title=category-label>labelable</a>, and <a href=#category-submit title=category-submit>submittable</a> <a href=#form-associated-element>form-associated element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>, but there must be no <a href=#interactive-content>interactive content</a> descendant.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code></dd>
+ <dd><code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code></dd>
+ <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd>
+ <dd><code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code></dd>
+ <dd><code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code></dd>
+ <dd><code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code></dd>
+ <dd><code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code></dd>
+ <dd><code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code></dd>
+ <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd>
+ <dd><code title=attr-button-type><a href=#attr-button-type>type</a></code></dd>
+ <dd><code title=attr-button-value><a href=#attr-button-value>value</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlbuttonelement>HTMLButtonElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
+ attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+ attribute DOMString <a href=#dom-fs-formaction title=dom-fs-formAction>formAction</a>;
+ attribute DOMString <a href=#dom-fs-formenctype title=dom-fs-formEnctype>formEnctype</a>;
+ attribute DOMString <a href=#dom-fs-formmethod title=dom-fs-formMethod>formMethod</a>;
+ attribute boolean <a href=#dom-fs-formnovalidate title=dom-fs-formNoValidate>formNoValidate</a>;
+ attribute DOMString <a href=#dom-fs-formtarget title=dom-fs-formTarget>formTarget</a>;
+ attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
+ attribute DOMString <a href=#dom-button-type title=dom-button-type>type</a>;
+ attribute DOMString <a href=#dom-button-value title=dom-button-value>value</a>;
+
+ readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>;
+ readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>;
+ readonly attribute DOMString <a href=#dom-cva-validationmessage title=dom-cva-validationMessage>validationMessage</a>;
+ boolean <a href=#dom-cva-checkvalidatity title=dom-cva-checkValidatity>checkValidity</a>();
+ void <a href=#dom-cva-setcustomvalidity title=dom-cva-setCustomValidity>setCustomValidity</a>(DOMString error);
+
+ readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-button-element>button</a></code> element <a href=#represents>represents</a> a
+ button. <span class=impl>If the element is not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, then the user agent
+ should allow the user to activate the button.</span></p>
+
+ <p>The element is a <a href=#concept-button title=concept-button>button</a>.</p>
+
+ <p>The <dfn id=attr-button-type title=attr-button-type><code>type</code></dfn>
+ attribute controls the behavior of the button when it is activated.
+ It is an <a href=#enumerated-attribute>enumerated attribute</a>. The following table
+ lists the keywords and states for the attribute &mdash; the keywords
+ in the left column map to the states in the cell in the second
+ column on the same row as the keyword.</p>
+
+ <table><thead><tr><th> Keyword
+ <th> State
+ <th> Brief description
+ <tbody><tr><td><dfn id=attr-button-type-submit title=attr-button-type-submit><code>submit</code></dfn>
+ <td><a href=#attr-button-type-submit-state title=attr-button-type-submit-state>Submit Button</a>
+ <td>Submits the form.
+ <tr><td><dfn id=attr-button-type-reset title=attr-button-type-reset><code>reset</code></dfn>
+ <td><a href=#attr-button-type-reset-state title=attr-button-type-reset-state>Reset Button</a>
+ <td>Resets the form.
+ <tr><td><dfn id=attr-button-type-button title=attr-button-type-button><code>button</code></dfn>
+ <td><a href=#attr-button-type-button-state title=attr-button-type-button-state>Button</a>
+ <td>Does nothing.
+ </table><p>The <i>missing value default</i> is the <a href=#attr-button-type-submit-state title=attr-button-type-submit-state>Submit Button</a>
+ state.</p>
+
+ <p>If the <code title=attr-button-type><a href=#attr-button-type>type</a></code> attribute is in
+ the <a href=#attr-button-type-submit-state title=attr-button-type-submit-state>Submit Button</a>
+ state, the element is specifically a <a href=#concept-submit-button title=concept-submit-button>submit button</a>.</p>
+
+ <div class=impl>
+
+ <p><strong>Constraint validation</strong>: If the <code title=attr-button-type><a href=#attr-button-type>type</a></code> attribute is in the <a href=#attr-button-type-reset-state title=attr-button-type-reset-state>Reset Button</a> state or
+ the <a href=#attr-button-type-button-state title=attr-button-type-button-state>Button</a> state,
+ the element is <a href=#barred-from-constraint-validation>barred from constraint validation</a>.</p>
+
+ <p>If the element is not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, the <a href=#activation-behavior>activation
+ behavior</a> of the <code><a href=#the-button-element>button</a></code> element is to run the
+ steps defined in the following list for the current state of the
+ element's <code title=attr-button-type><a href=#attr-button-type>type</a></code> attribute.</p>
+
+ <dl><dt> <dfn id=attr-button-type-submit-state title=attr-button-type-submit-state>Submit Button</dfn> </dt>
+
+ <dd><p>If the element has a <a href=#form-owner>form owner</a>, the element
+ must <a href=#concept-form-submit title=concept-form-submit>submit</a> the <a href=#form-owner>form
+ owner</a> from the <code><a href=#the-button-element>button</a></code> element.</dd>
+
+ <dt> <dfn id=attr-button-type-reset-state title=attr-button-type-reset-state>Reset Button</dfn> </dt>
+
+ <dd><p>If the element has a <a href=#form-owner>form owner</a>, the element
+ must <a href=#concept-form-reset title=concept-form-reset>reset</a> the <a href=#form-owner>form
+ owner</a>.</dd>
+
+ <dt> <dfn id=attr-button-type-button-state title=attr-button-type-button-state>Button</dfn>
+
+ <dd><p>Do nothing.</dd>
+
+ </dl></div>
+
+ <p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
+ explicitly associate the <code><a href=#the-button-element>button</a></code> element with its
+ <a href=#form-owner>form owner</a>. The <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>
+ attribute represents the element's name. The <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is used to make
+ the control non-interactive and to prevent its value from being
+ submitted. The <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>
+ attribute controls focus. The <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>, <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>, <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>, <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>, and <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code> attributes are
+ <a href=#attributes-for-form-submission>attributes for form submission</a>.</p>
+
+ <p class=note>The <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code> attribute can
+ be used to make submit buttons that do not trigger the constraint
+ validation.</p>
+
+ <p>The <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>, <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>, <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>, <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>, and <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code> must not be specified
+ if the element's <code title=attr-button-type><a href=#attr-button-type>type</a></code>
+ attribute is not in the <a href=#attr-button-type-submit-state title=attr-button-type-submit-state>Submit Button</a>
+ state.</p>
+
+ <p>The <dfn id=attr-button-value title=attr-button-value><code>value</code></dfn>
+ attribute gives the element's value for the purposes of form
+ submission. The element's <a href=#concept-fe-value title=concept-fe-value>value</a> is the value of the element's
+ <code title=attr-button-value><a href=#attr-button-value>value</a></code> attribute, if there is
+ one, or the empty string otherwise.</p>
+
+ <p class=note>A button (and its value) is only included in the
+ form submission if the button itself was used to initiate the form
+ submission.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-button-value title=dom-button-value><code>value</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ <p>The <dfn id=dom-button-type title=dom-button-type><code>type</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
+
+ <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code>
+ attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
+ methods, are part of the <a href=#the-constraint-validation-api>constraint validation API</a>. The
+ <code title=dom-lfe-labels><a href=#dom-lfe-labels>labels</a></code> attribute provides a list
+ of the element's <code><a href=#the-label-element>label</a></code>s. The <code title=dom-fe-autofocus><a href=#dom-fe-autofocus>autofocus</a></code>, <code title=dom-fe-disabled><a href=#dom-fe-disabled>disabled</a></code>, <code title=dom-fae-form><a href=#dom-fae-form>form</a></code>, and <code title=dom-fe-name><a href=#dom-fe-name>name</a></code> IDL attributes are part of the
+ element's forms API.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following button is labeled "Show hint" and pops up a dialog
+ box when activated:</p>
+
+ <pre>&lt;button type=button
+ onclick="alert('This 15-20 minute piece was composed by George Gershwin.')"&gt;
+ Show hint
+&lt;/button&gt;</pre>
+
+ </div>
+
+
+
+
+ <h4 id=the-select-element><span class=secno>4.10.9 </span>The <dfn><code>select</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#interactive-content>Interactive content</a>.</dd>
+ <dd><a href=#category-listed title=category-listed>Listed</a>, <a href=#category-label title=category-label>labelable</a>, <a href=#category-submit title=category-submit>submittable</a>, and <a href=#category-reset title=category-reset>resettable</a> <a href=#form-associated-element>form-associated element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Zero or more <code><a href=#the-option-element>option</a></code> or <code><a href=#the-optgroup-element>optgroup</a></code> elements.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code></dd>
+ <dd><code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code></dd>
+ <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd>
+ <dd><code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code></dd>
+ <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd>
+ <dd><code title=attr-select-required><a href=#attr-select-required>required</a></code></dd>
+ <dd><code title=attr-select-size><a href=#attr-select-size>size</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlselectelement>HTMLSelectElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
+ attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+ attribute boolean <a href=#dom-select-multiple title=dom-select-multiple>multiple</a>;
+ attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
+ attribute boolean <a href=#dom-select-required title=dom-select-required>required</a>;
+ attribute unsigned long <a href=#dom-select-size title=dom-select-size>size</a>;
+
+ readonly attribute DOMString <a href=#dom-select-type title=dom-select-type>type</a>;
+
+ readonly attribute <a href=#htmloptionscollection>HTMLOptionsCollection</a> <a href=#dom-select-options title=dom-select-options>options</a>;
+ attribute unsigned long <a href=#dom-select-length title=dom-select-length>length</a>;
+ getter <a href=#element>Element</a> <a href=#dom-select-item title=dom-select-item>item</a>(unsigned long index);
+ object <a href=#dom-select-nameditem title=dom-select-namedItem>namedItem</a>(DOMString name);
+ void <a href=#dom-select-add title=dom-select-add>add</a>(<a href=#htmloptionelement>HTMLOptionElement</a> element, optional <a href=#htmlelement>HTMLElement</a>? before);
+ void <a href=#dom-select-add title=dom-select-add>add</a>(<a href=#htmloptgroupelement>HTMLOptGroupElement</a> element, optional <a href=#htmlelement>HTMLElement</a>? before);
+ void <a href=#dom-select-add title=dom-select-add>add</a>(<a href=#htmloptionelement>HTMLOptionElement</a> element, long before);
+ void <a href=#dom-select-add title=dom-select-add>add</a>(<a href=#htmloptgroupelement>HTMLOptGroupElement</a> element, long before);
+ void <a href=#dom-select-remove title=dom-select-remove>remove</a>(long index);
+ <a href=#dom-htmloptionscollection-setter title=dom-HTMLOptionsCollection-setter>setter creator</a> void (unsigned long index, <a href=#htmloptionelement>HTMLOptionElement</a> option);
+
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-select-selectedoptions title=dom-select-selectedOptions>selectedOptions</a>;
+ attribute long <a href=#dom-select-selectedindex title=dom-select-selectedIndex>selectedIndex</a>;
+ attribute DOMString <a href=#dom-select-value title=dom-select-value>value</a>;
+
+ readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>;
+ readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>;
+ readonly attribute DOMString <a href=#dom-cva-validationmessage title=dom-cva-validationMessage>validationMessage</a>;
+ boolean <a href=#dom-cva-checkvalidatity title=dom-cva-checkValidatity>checkValidity</a>();
+ void <a href=#dom-cva-setcustomvalidity title=dom-cva-setCustomValidity>setCustomValidity</a>(DOMString error);
+
+ readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
+};</pre>
+ </dd>
+ </dl><!-- Proposals for v2:
+ * <select value=""> as an alternative to <option selected>
+ http://developers.slashdot.org/comments.pl?sid=426306&cid=22142072
+ <Philip`> http://www.ipiao.com.cn/ does <select size="1" name="to"><script>City_Default="PEK"</script><SCRIPT language=javascript
+ src="/js/flightcity.js"></SCRIPT></select> which is the kind of thing that could be much simpler with <select value="PEK">
+ --><p>The <code><a href=#the-select-element>select</a></code> element represents a control for
+ selecting amongst a set of options.</p>
+
+ <p>The <dfn id=attr-select-multiple title=attr-select-multiple><code>multiple</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. If the attribute is
+ present, then the <code><a href=#the-select-element>select</a></code> element
+ <a href=#represents>represents</a> a control for selecting zero or more options
+ from the <a href=#concept-select-option-list title=concept-select-option-list>list of
+ options</a>. If the attribute is absent, then the
+ <code><a href=#the-select-element>select</a></code> element <a href=#represents>represents</a> a control for
+ selecting a single option from the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>.</p>
+
+ <p>The <dfn id=attr-select-size title=attr-select-size><code>size</code></dfn>
+ attribute gives the number of options to show to the user. The <code title=attr-select-size><a href=#attr-select-size>size</a></code> attribute, if specified, must
+ have a value that is a <a href=#valid-non-negative-integer>valid non-negative integer</a>
+ greater than zero. If the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute is present,
+ then the <code title=attr-select-size><a href=#attr-select-size>size</a></code> attribute's
+ default value is 4. If the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute is absent,
+ then the <code title=attr-select-size><a href=#attr-select-size>size</a></code> attribute's
+ default value is 1.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=concept-select-size title=concept-select-size>display size</dfn> of a
+ <code><a href=#the-select-element>select</a></code> element is the result of applying the
+ <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a> to the value of
+ element's <code title=attr-select-size><a href=#attr-select-size>size</a></code> attribute, if it
+ has one and parsing it is successful. If applying those rules to the
+ attribute's value is not successful, or if the <code title=attr-select-size><a href=#attr-select-size>size</a></code> attribute is absent, the
+ element's <a href=#concept-select-size title=concept-select-size>display size</a> is
+ the default value of the attribute.</p>
+
+ </div>
+
+ <p>The <dfn id=concept-select-option-list title=concept-select-option-list>list of options</dfn>
+ for a <code><a href=#the-select-element>select</a></code> element consists of all the
+ <code><a href=#the-option-element>option</a></code> element children of the <code><a href=#the-select-element>select</a></code>
+ element, and all the <code><a href=#the-option-element>option</a></code> element children of all the
+ <code><a href=#the-optgroup-element>optgroup</a></code> element children of the <code><a href=#the-select-element>select</a></code>
+ element, in <a href=#tree-order>tree order</a>.</p>
+
+ <p>The <dfn id=attr-select-required title=attr-select-required><code>required</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. When specified, the
+ user will be required to select a value before submitting the
+ form.</p>
+
+ <p>If a <code><a href=#the-select-element>select</a></code> element has a <code title=attr-select-required><a href=#attr-select-required>required</a></code> attribute specified,
+ does not have a <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>
+ attribute specified, and has a <a href=#concept-select-size title=concept-select-size>display size</a> of 1;
+ and if the <a href=#concept-option-value title=concept-option-value>value</a> of the
+ first <code><a href=#the-option-element>option</a></code> element in the <code><a href=#the-select-element>select</a></code>
+ element's <a href=#concept-select-option-list title=concept-select-option-list>list of
+ options</a> (if any) is the empty string, and that
+ <code><a href=#the-option-element>option</a></code> element's parent node is the <code><a href=#the-select-element>select</a></code>
+ element (and not an <code><a href=#the-optgroup-element>optgroup</a></code> element), then that
+ <code><a href=#the-option-element>option</a></code> is the <code><a href=#the-select-element>select</a></code> element's
+ <dfn id=placeholder-label-option>placeholder label option</dfn>.</p>
+
+ <p>If a <code><a href=#the-select-element>select</a></code> element has a <code title=attr-select-required><a href=#attr-select-required>required</a></code> attribute specified,
+ does not have a <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>
+ attribute specified, and has a <a href=#concept-select-size title=concept-select-size>display size</a> of 1,
+ then the <code><a href=#the-select-element>select</a></code> element must have a <a href=#placeholder-label-option>placeholder
+ label option</a>.</p>
+
+ <div class=impl>
+
+ <p><strong>Constraint validation</strong>: If the element has its
+ <code title=attr-select-required><a href=#attr-select-required>required</a></code> attribute
+ specified, and either none of the <code><a href=#the-option-element>option</a></code> elements in
+ the <code><a href=#the-select-element>select</a></code> element's <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> have their
+ <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to
+ true, or the only <code><a href=#the-option-element>option</a></code> element in the
+ <code><a href=#the-select-element>select</a></code> element's <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> with its
+ <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to
+ true is the <a href=#placeholder-label-option>placeholder label option</a>, then the element
+ is <a href=#suffering-from-being-missing>suffering from being missing</a>.</p>
+
+ </div>
+
+ <div class=impl>
+
+ <p>If the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>
+ attribute is absent, and the element is not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, then the user agent
+ should allow the user to pick an <code><a href=#the-option-element>option</a></code> element in its
+ <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> that
+ is itself not <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>.
+ Upon this <code><a href=#the-option-element>option</a></code> element being <dfn id=concept-select-pick title=concept-select-pick>picked</dfn> (either through a click, or
+ through unfocusing the element after changing its value, or through
+ a <a href=#using-the-option-element-to-define-a-command title=option-command>menu command</a>, or through any
+ other mechanism), and before the relevant user interaction event
+ <!-- interaction event spec point --> is queued (e.g. before the
+ <code title=event-click><a href=#event-click>click</a></code> event), the user agent must
+ set the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of the
+ picked <code><a href=#the-option-element>option</a></code> element to true and then <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> that bubbles named
+ <code title=event-change>change</code> at the <code><a href=#the-select-element>select</a></code>
+ element, using the <a href=#user-interaction-task-source>user interaction task source</a> as the
+ task source.</p>
+
+ <p>If the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>
+ attribute is absent, whenever an <code><a href=#the-option-element>option</a></code> element in the
+ <code><a href=#the-select-element>select</a></code> element's <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> has its
+ <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to
+ true, and whenever an <code><a href=#the-option-element>option</a></code> element with its <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to true
+ is added to the <code><a href=#the-select-element>select</a></code> element's <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>, the user
+ agent must set the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of all the
+ other <code><a href=#the-option-element>option</a></code> element in its <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> to
+ false.</p>
+
+ <p>If the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>
+ attribute is absent and the element's <a href=#concept-select-size title=concept-select-size>display size</a> is greater than 1,
+ then the user agent should also allow the user to request that the
+ <code><a href=#the-option-element>option</a></code> whose <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true, if
+ any, be unselected. Upon this request being conveyed to the user
+ agent, and before the relevant user interaction event <!--
+ interaction event spec point --> is queued (e.g. before the <code title=event-click><a href=#event-click>click</a></code> event), the user agent must set the
+ <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of
+ that <code><a href=#the-option-element>option</a></code> element to false and then <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> that bubbles named
+ <code title=event-change>change</code> at the <code><a href=#the-select-element>select</a></code>
+ element, using the <a href=#user-interaction-task-source>user interaction task source</a> as the
+ task source.</p>
+
+ <p>If the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>
+ attribute is absent and the element's <a href=#concept-select-size title=concept-select-size>display size</a> is 1, then whenever
+ there are no <code><a href=#the-option-element>option</a></code> elements in the <code><a href=#the-select-element>select</a></code>
+ element's <a href=#concept-select-option-list title=concept-select-option-list>list of
+ options</a> that have their <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to true,
+ the user agent must set the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of the first
+ <code><a href=#the-option-element>option</a></code> element in the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> in
+ <a href=#tree-order>tree order</a> that is not <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>, if any, to
+ true.</p>
+
+ <p>If the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>
+ attribute is present, and the element is not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, then the user agent
+ should allow the user to <dfn id=concept-select-toggle title=concept-select-toggle>toggle</dfn> the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of the
+ <code><a href=#the-option-element>option</a></code> elements in its <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> that are
+ themselves not <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>
+ (either through a click, or through a <a href=#using-the-option-element-to-define-a-command title=option-command>menu command</a>, or any other mechanism).
+ Upon the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of one or
+ more <code><a href=#the-option-element>option</a></code> elements being changed by the user, and
+ before the relevant user interaction event <!-- interaction event
+ spec point --> is queued (e.g. before a related <code title=event-click><a href=#event-click>click</a></code> event), the user agent must
+ <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a> that
+ bubbles named <code title=event-change>change</code> at the
+ <code><a href=#the-select-element>select</a></code> element, using the <a href=#user-interaction-task-source>user interaction task
+ source</a> as the task source.</p>
+
+ <p>The <a href=#concept-form-reset-control title=concept-form-reset-control>reset
+ algorithm</a> for <code><a href=#the-select-element>select</a></code> elements is to go through
+ all the <code><a href=#the-option-element>option</a></code> elements in the element's <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>, and set
+ their <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a>
+ to true if the <code><a href=#the-option-element>option</a></code> element has a <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code> attribute, and false
+ otherwise.</p>
+
+ </div>
+
+ <p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
+ explicitly associate the <code><a href=#the-select-element>select</a></code> element with its
+ <a href=#form-owner>form owner</a>. The <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>
+ attribute represents the element's name. The <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is used to make
+ the control non-interactive and to prevent its value from being
+ submitted. The <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>
+ attribute controls focus.</p>
+
+ <dl class=domintro><dt><var title="">select</var> . <code title=dom-select-type><a href=#dom-select-type>type</a></code></dt>
+
+ <dd>
+
+ <p>Returns "<code title="">select-multiple</code>" if the element
+ has a <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>
+ attribute, and "<code title="">select-one</code>"
+ otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">select</var> . <code title=dom-select-options><a href=#dom-select-options>options</a></code></dt>
+
+ <dd>
+
+ <p>Returns an <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code> of the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>.</p>
+
+ </dd>
+
+ <dt><var title="">select</var> . <code title=dom-select-length><a href=#dom-select-length>length</a></code> [ = <var title="">value</var> ]</dt>
+ <dd>
+ <p>Returns the number of elements in the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>.</p>
+ <p>When set to a smaller number, truncates the number of <code><a href=#the-option-element>option</a></code> elements in the <code><a href=#the-select-element>select</a></code>.</p>
+ <p>When set to a greater number, adds new blank <code><a href=#the-option-element>option</a></code> elements to the <code><a href=#the-select-element>select</a></code>.</p>
+ </dd>
+
+ <dt><var title="">element</var> = <var title="">select</var> . <code title=dom-select-item><a href=#dom-select-item>item</a></code>(<var title="">index</var>)</dt>
+ <dt><var title="">select</var>[<var title="">index</var>]</dt>
+ <dd>
+ <p>Returns the item with index <var title="">index</var> from the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>. The items are sorted in <a href=#tree-order>tree order</a>.</p>
+ </dd>
+
+ <dt><var title="">element</var> = <var title="">select</var> . <code title=dom-select-item><a href=#dom-select-item>namedItem</a></code>(<var title="">name</var>)</dt>
+ <dd>
+ <p>Returns the item with <a href=#concept-id title=concept-id>ID</a> or <code title=attr-option-name><a href=#attr-option-name>name</a></code> <var title="">name</var> from the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>.</p>
+ <p>If there are multiple matching items, then a <code><a href=#nodelist>NodeList</a></code> object containing all those elements is returned.</p>
+ <p>Returns null if no element with that <a href=#concept-id title=concept-id>ID</a> could be found.</p>
+ </dd>
+
+ <dt><var title="">select</var> . <code title=dom-select-add><a href=#dom-select-add>add</a></code>(<var title="">element</var> [, <var title="">before</var> ])</dt>
+ <dd>
+ <p>Inserts <var title="">element</var> before the node given by <var title="">before</var>.</p>
+ <p>The <var title="">before</var> argument can be a number, in
+ which case <var title="">element</var> is inserted before the item
+ with that number, or an element from the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>, in
+ which case <var title="">element</var> is inserted before that
+ element.</p>
+ <p>If <var title="">before</var> is omitted, null, or a number out
+ of range, then <var title="">element</var> will be added at the
+ end of the list.</p>
+ <p>This method will throw a <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code>
+ exception if <var title="">element</var> is an ancestor of the
+ element into which it is to be inserted.</p>
+ </dd>
+
+ <dt><var title="">select</var> . <code title=dom-select-selectedOptions><a href=#dom-select-selectedoptions>selectedOptions</a></code></dt>
+
+ <dd>
+
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> that are
+ selected.</p>
+
+ </dd>
+
+ <dt><var title="">select</var> . <code title=dom-select-selectedIndex><a href=#dom-select-selectedindex>selectedIndex</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the index of the first selected item, if any, or
+ &minus;1 if there is no selected item.</p>
+
+ <p>Can be set, to change the selection.</p>
+
+ </dd>
+
+ <dt><var title="">select</var> . <code title=dom-select-value><a href=#dom-select-value>value</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the <a href=#concept-fe-value title=concept-fe-value>value</a> of the
+ first selected item, if any, or the empty string if there is no
+ selected item.</p>
+
+ <p>Can be set, to change the selection.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-select-type title=dom-select-type><code>type</code></dfn> IDL
+ attribute, on getting, must return the string "<code title="">select-one</code>" if the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute is absent,
+ and the string "<code title="">select-multiple</code>" if the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute is
+ present.</p>
+
+ <p>The <dfn id=dom-select-options title=dom-select-options><code>options</code></dfn>
+ IDL attribute must return an <code><a href=#htmloptionscollection>HTMLOptionsCollection</a></code>
+ rooted at the <code><a href=#the-select-element>select</a></code> node, whose filter matches the
+ elements in the <a href=#concept-select-option-list title=concept-select-option-list>list of
+ options</a>.</p>
+
+ <p>The <code title=dom-select-options><a href=#dom-select-options>options</a></code> collection is
+ also mirrored on the <code><a href=#htmlselectelement>HTMLSelectElement</a></code> object. The
+ <a href=#supported-property-indices>supported property indices</a> at any instant are the
+ indices supported by the object returned by the <code title=dom-select-options><a href=#dom-select-options>options</a></code> attribute at that
+ instant.</p>
+
+ <p>The <dfn id=dom-select-length title=dom-select-length><code>length</code></dfn> IDL
+ attribute must return the number of nodes <a href=#represented-by-the-collection title="represented
+ by the collection">represented</a> by the <code title=dom-select-options><a href=#dom-select-options>options</a></code> collection. On setting, it
+ must act like the attribute of the same name on the <code title=dom-select-options><a href=#dom-select-options>options</a></code> collection.</p>
+
+ <p>The <dfn id=dom-select-item title=dom-select-item><code>item(<var title="">index</var>)</code></dfn> method must return the value
+ returned by the method of the same name on the <code title=dom-select-options><a href=#dom-select-options>options</a></code> collection, when invoked
+ with the same argument.</p>
+
+ <p>The <dfn id=dom-select-nameditem title=dom-select-namedItem><code>namedItem(<var title="">name</var>)</code></dfn> method must return the value
+ returned by the method of the same name on the <code title=dom-select-options><a href=#dom-select-options>options</a></code> collection, when invoked
+ with the same argument.</p>
+
+ <p>When the user agent is to <dfn id=dom-htmlselectelement-setter title=dom-HTMLSelectElement-setter>set the value of a new indexed
+ property</dfn> for a given property index <var title="">index</var>
+ to a new value <var title="">value</var>, it must instead <a href=#dom-htmloptionscollection-setter title=dom-HTMLOptionsCollection-setter>set the value of a new
+ indexed property</a> with the given property index <var title="">index</var> to the new value <var title="">value</var> on the
+ <code title=dom-select-options><a href=#dom-select-options>options</a></code> collection.</p>
+
+ <p>Similarly, the <dfn id=dom-select-add title=dom-select-add><code>add()</code></dfn> and <dfn id=dom-select-remove title=dom-select-remove><code>remove()</code></dfn> methods must
+ act like their namesake methods on that same <code title=dom-select-options><a href=#dom-select-options>options</a></code> collection.</p>
+
+ <p>The <dfn id=dom-select-selectedoptions title=dom-select-selectedOptions><code>selectedOptions</code></dfn>
+ IDL attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at
+ the <code><a href=#the-select-element>select</a></code> node, whose filter matches the elements in
+ the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>
+ that have their <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to
+ true.</p>
+
+ <p>The <dfn id=dom-select-selectedindex title=dom-select-selectedIndex><code>selectedIndex</code></dfn>
+ IDL attribute, on getting, must return the <a href=#concept-option-index title=concept-option-index>index</a> of the first
+ <code><a href=#the-option-element>option</a></code> element in the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> in
+ <a href=#tree-order>tree order</a> that has its <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to true,
+ if any. If there isn't one, then it must return &minus;1.</p>
+
+ <p>On setting, the <code title=dom-select-selectedIndex><a href=#dom-select-selectedindex>selectedIndex</a></code> attribute must
+ set the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of all the
+ <code><a href=#the-option-element>option</a></code> elements in the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> to false,
+ and then the <code><a href=#the-option-element>option</a></code> element in the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> whose
+ <a href=#concept-option-index title=concept-option-index>index</a> is the given new
+ value, if any, must have its <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to
+ true.</p>
+
+ <p>The <dfn id=dom-select-value title=dom-select-value><code>value</code></dfn> IDL
+ attribute, on getting, must return the <a href=#concept-option-value title=concept-option-value>value</a> of the first
+ <code><a href=#the-option-element>option</a></code> element in the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> in
+ <a href=#tree-order>tree order</a> that has its <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to true,
+ if any. If there isn't one, then it must return the empty
+ string.</p>
+
+ <p>On setting, the <code title=dom-select-value><a href=#dom-select-value>value</a></code>
+ attribute must set the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of all the
+ <code><a href=#the-option-element>option</a></code> elements in the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> to false,
+ and then the first <code><a href=#the-option-element>option</a></code> element in the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>, in
+ <a href=#tree-order>tree order</a>, whose <a href=#concept-option-value title=concept-option-value>value</a> is equal to the given new
+ value, if any, must have its <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to
+ true.</p>
+
+ <p>The <dfn id=dom-select-multiple title=dom-select-multiple><code>multiple</code></dfn>,
+ <dfn id=dom-select-required title=dom-select-required><code>required</code></dfn>, and
+ <dfn id=dom-select-size title=dom-select-size><code>size</code></dfn> IDL attributes
+ must <a href=#reflect>reflect</a> the respective content attributes of the
+ same name. The <code title=dom-select-size><a href=#dom-select-size>size</a></code> IDL
+ attribute has a default value of zero (which for historical reasons
+ is different from the default value of the <code title=attr-select-size><a href=#attr-select-size>size</a></code> content attribute that it
+ reflects).</p> <!-- see bug 12288 for compat reasons why .size
+ allows zero (it's not limited to values greater than zero) even
+ though that value really makes no sense -->
+
+ <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code>
+ attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
+ methods, are part of the <a href=#the-constraint-validation-api>constraint validation API</a>. The
+ <code title=dom-lfe-labels><a href=#dom-lfe-labels>labels</a></code> attribute provides a list
+ of the element's <code><a href=#the-label-element>label</a></code>s. The <code title=dom-fe-autofocus><a href=#dom-fe-autofocus>autofocus</a></code>, <code title=dom-fe-disabled><a href=#dom-fe-disabled>disabled</a></code>, <code title=dom-fae-form><a href=#dom-fae-form>form</a></code>, and <code title=dom-fe-name><a href=#dom-fe-name>name</a></code> IDL attributes are part of the
+ element's forms API.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows how a <code><a href=#the-select-element>select</a></code> element
+ can be used to offer the user with a set of options from which the
+ user can select a single option. The default option is
+ preselected.</p>
+
+ <pre>&lt;p&gt;
+ &lt;label for="unittype"&gt;Select unit type:&lt;/label&gt;
+ &lt;select id="unittype" name="unittype"&gt;
+ &lt;option value="1"&gt; Miner &lt;/option&gt;
+ &lt;option value="2"&gt; Puffer &lt;/option&gt;
+ &lt;option value="3" selected&gt; Snipey &lt;/option&gt;
+ &lt;option value="4"&gt; Max &lt;/option&gt;
+ &lt;option value="5"&gt; Firebot &lt;/option&gt;
+ &lt;/select&gt;
+&lt;/p&gt;</pre>
+
+ <p>When there is no default option, a placeholder can be used
+ instead:</p>
+
+ <pre>&lt;select name="unittype" <strong>required</strong>&gt;
+ <strong>&lt;option value=""&gt; Select unit type &lt;/option&gt;</strong>
+ &lt;option value="1"&gt; Miner &lt;/option&gt;
+ &lt;option value="2"&gt; Puffer &lt;/option&gt;
+ &lt;option value="3"&gt; Snipey &lt;/option&gt;
+ &lt;option value="4"&gt; Max &lt;/option&gt;
+ &lt;option value="5"&gt; Firebot &lt;/option&gt;
+&lt;/select&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here, the user is offered a set of options from which he can
+ select any number. By default, all five options are selected.</p>
+
+ <pre>&lt;p&gt;
+ &lt;label for="allowedunits"&gt;Select unit types to enable on this map:&lt;/label&gt;
+ &lt;select id="allowedunits" name="allowedunits" multiple&gt;
+ &lt;option value="1" selected&gt; Miner &lt;/option&gt;
+ &lt;option value="2" selected&gt; Puffer &lt;/option&gt;
+ &lt;option value="3" selected&gt; Snipey &lt;/option&gt;
+ &lt;option value="4" selected&gt; Max &lt;/option&gt;
+ &lt;option value="5" selected&gt; Firebot &lt;/option&gt;
+ &lt;/select&gt;
+&lt;/p&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Sometimes, a user has to select one or more items. This example
+ shows such an interface.</p>
+
+ <pre>&lt;p&gt;Select the songs from that you would like on your Act II Mix Tape:&lt;/p&gt;
+&lt;select multiple required name="act2"&gt;
+ &lt;option value="s1"&gt;It Sucks to Be Me (Reprise)
+ &lt;option value="s2"&gt;There is Life Outside Your Apartment
+ &lt;option value="s3"&gt;The More You Ruv Someone
+ &lt;option value="s4"&gt;Schadenfreude
+ &lt;option value="s5"&gt;I Wish I Could Go Back to College
+ &lt;option value="s6"&gt;The Money Song
+ &lt;option value="s7"&gt;School for Monsters
+ &lt;option value="s8"&gt;The Money Song (Reprise)
+ &lt;option value="s9"&gt;There's a Fine, Fine Line (Reprise)
+ &lt;option value="s10"&gt;What Do You Do With a B.A. in English? (Reprise)
+ &lt;option value="s11"&gt;For Now
+&lt;/select&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-datalist-element><span class=secno>4.10.10 </span>The <dfn><code>datalist</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Either: <a href=#phrasing-content>phrasing content</a>.</dd>
+ <dd>Or: Zero or more <code><a href=#the-option-element>option</a></code> elements.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmldatalistelement>HTMLDataListElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-datalist-options title=dom-datalist-options>options</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-datalist-element>datalist</a></code> element represents a set of
+ <code><a href=#the-option-element>option</a></code> elements that represent predefined options for
+ other controls. The contents of the element represents fallback
+ content for legacy user agents, intermixed with <code><a href=#the-option-element>option</a></code>
+ elements that represent the predefined options. In the rendering,
+ the <code><a href=#the-datalist-element>datalist</a></code> element <a href=#represents>represents</a>
+ nothing<span class=impl> and it, along with its children, should
+ be hidden</span>.</p>
+
+ <p>The <code><a href=#the-datalist-element>datalist</a></code> element is hooked up to an
+ <code><a href=#the-input-element>input</a></code> element using the <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute on the
+ <code><a href=#the-input-element>input</a></code> element.</p>
+
+ <p>Each <code><a href=#the-option-element>option</a></code> element that is a descendant of the
+ <code><a href=#the-datalist-element>datalist</a></code> element, that is not <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>, and whose <a href=#concept-option-value title=concept-option-value>value</a> is a string that isn't the
+ empty string, represents a suggestion. Each suggestion has a <a href=#concept-option-value title=concept-option-value>value</a> and a <a href=#concept-option-label title=concept-option-label>label</a>.
+
+ <dl class=domintro><dt><var title="">datalist</var> . <code title=dom-datalist-options><a href=#dom-datalist-options>options</a></code></dt>
+
+ <dd>
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the <code>options</code> elements of the table.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-datalist-options title=dom-datalist-options><code>options</code></dfn>
+ IDL attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at
+ the <code><a href=#the-datalist-element>datalist</a></code> node, whose filter matches
+ <code><a href=#the-option-element>option</a></code> elements.</p>
+
+ <p><strong>Constraint validation</strong>: If an element has a
+ <code><a href=#the-datalist-element>datalist</a></code> element ancestor, it is <a href=#barred-from-constraint-validation>barred from
+ constraint validation</a>.</p>
+
+ </div>
+
+
+ <h4 id=the-optgroup-element><span class=secno>4.10.11 </span>The <dfn><code>optgroup</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-select-element>select</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd>Zero or more <code><a href=#the-option-element>option</a></code> elements.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-optgroup-disabled><a href=#attr-optgroup-disabled>disabled</a></code></dd>
+ <dd><code title=attr-optgroup-label><a href=#attr-optgroup-label>label</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmloptgroupelement>HTMLOptGroupElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-optgroup-disabled title=dom-optgroup-disabled>disabled</a>;
+ attribute DOMString <a href=#dom-optgroup-label title=dom-optgroup-label>label</a>;
+};</pre>
+ </dd>
+ </dl><!-- v2: make optgroups selectable if they have a value. --><p>The <code><a href=#the-optgroup-element>optgroup</a></code> element <a href=#represents>represents</a> a group of
+ <code><a href=#the-option-element>option</a></code> elements with a common label.</p>
+
+ <p>The element's group of <code><a href=#the-option-element>option</a></code> elements consists of
+ the <code><a href=#the-option-element>option</a></code> elements that are children of the
+ <code><a href=#the-optgroup-element>optgroup</a></code> element.</p>
+
+ <div class=impl>
+
+ <p>When showing <code><a href=#the-option-element>option</a></code> elements in <code><a href=#the-select-element>select</a></code>
+ elements, user agents should show the <code><a href=#the-option-element>option</a></code> elements
+ of such groups as being related to each other and separate from
+ other <code><a href=#the-option-element>option</a></code> elements.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-optgroup-disabled title=attr-optgroup-disabled><code>disabled</code></dfn> attribute
+ is a <a href=#boolean-attribute>boolean attribute</a> and can be used to <a href=#concept-option-disabled title=concept-option-disabled>disable</a> a group of
+ <code><a href=#the-option-element>option</a></code> elements together.</p>
+
+ <p>The <dfn id=attr-optgroup-label title=attr-optgroup-label><code>label</code></dfn>
+ attribute must be specified. Its value gives the name of the group,
+ for the purposes of the user interface. <span class=impl>User
+ agents should use this attribute's value when labelling the group of
+ <code><a href=#the-option-element>option</a></code> elements in a <code><a href=#the-select-element>select</a></code>
+ element.</span></p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-optgroup-disabled title=dom-optgroup-disabled><code>disabled</code></dfn> and <dfn id=dom-optgroup-label title=dom-optgroup-label><code>label</code></dfn> attributes must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following snippet shows how a set of lessons from three
+ courses could be offered in a <code><a href=#the-select-element>select</a></code> drop-down
+ widget:</p>
+
+ <pre>&lt;form action="courseselector.dll" method="get"&gt;
+ &lt;p&gt;Which course would you like to watch today?
+ &lt;p&gt;&lt;label&gt;Course:
+ &lt;select name="c"&gt;
+ &lt;optgroup label="8.01 Physics I: Classical Mechanics"&gt;
+ &lt;option value="8.01.1"&gt;Lecture 01: Powers of Ten
+ &lt;option value="8.01.2"&gt;Lecture 02: 1D Kinematics
+ &lt;option value="8.01.3"&gt;Lecture 03: Vectors
+ &lt;optgroup label="8.02 Electricity and Magnestism"&gt;
+ &lt;option value="8.02.1"&gt;Lecture 01: What holds our world together?
+ &lt;option value="8.02.2"&gt;Lecture 02: Electric Field
+ &lt;option value="8.02.3"&gt;Lecture 03: Electric Flux
+ &lt;optgroup label="8.03 Physics III: Vibrations and Waves"&gt;
+ &lt;option value="8.03.1"&gt;Lecture 01: Periodic Phenomenon
+ &lt;option value="8.03.2"&gt;Lecture 02: Beats
+ &lt;option value="8.03.3"&gt;Lecture 03: Forced Oscillations with Damping
+ &lt;/select&gt;
+ &lt;/label&gt;
+ &lt;p&gt;&lt;input type=submit value="&#9654; Play"&gt;
+&lt;/form&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-option-element><span class=secno>4.10.12 </span>The <dfn><code>option</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As a child of a <code><a href=#the-select-element>select</a></code> element.</dd>
+ <dd>As a child of a <code><a href=#the-datalist-element>datalist</a></code> element.</dd>
+ <dd>As a child of an <code><a href=#the-optgroup-element>optgroup</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#text-content title="text content">Text</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-option-disabled><a href=#attr-option-disabled>disabled</a></code></dd>
+ <dd><code title=attr-option-label><a href=#attr-option-label>label</a></code></dd>
+ <dd><code title=attr-option-selected><a href=#attr-option-selected>selected</a></code></dd>
+ <dd><code title=attr-option-value><a href=#attr-option-value>value</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>[NamedConstructor=<a href=#dom-option title=dom-option>Option</a>(),
+ NamedConstructor=<a href=#dom-option-t title=dom-option-t>Option</a>(DOMString text),
+ NamedConstructor=<a href=#dom-option-tv title=dom-option-tv>Option</a>(DOMString text, DOMString value),
+ NamedConstructor=<a href=#dom-option-tvd title=dom-option-tvd>Option</a>(DOMString text, DOMString value, boolean defaultSelected),
+ NamedConstructor=<a href=#dom-option-tvds title=dom-option-tvds>Option</a>(DOMString text, DOMString value, boolean defaultSelected, boolean selected)]
+interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-option-disabled title=dom-option-disabled>disabled</a>;
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-option-form title=dom-option-form>form</a>;
+ attribute DOMString <a href=#dom-option-label title=dom-option-label>label</a>;
+ attribute boolean <a href=#dom-option-defaultselected title=dom-option-defaultSelected>defaultSelected</a>;
+ attribute boolean <a href=#dom-option-selected title=dom-option-selected>selected</a>;
+ attribute DOMString <a href=#dom-option-value title=dom-option-value>value</a>;
+
+ attribute DOMString <a href=#dom-option-text title=dom-option-text>text</a>;
+ readonly attribute long <a href=#dom-option-index title=dom-option-index>index</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-option-element>option</a></code> element <a href=#represents>represents</a> an option
+ in a <code><a href=#the-select-element>select</a></code> element or as part of a list of suggestions
+ in a <code><a href=#the-datalist-element>datalist</a></code> element.</p>
+
+ <p>In certain circumstances described in the definition of the
+ <code><a href=#the-select-element>select</a></code> element, an <code><a href=#the-option-element>option</a></code> element can be a
+ <code><a href=#the-select-element>select</a></code> element's <a href=#placeholder-label-option>placeholder label option</a>.
+ A <a href=#placeholder-label-option>placeholder label option</a> does not represent an actual
+ option, but instead represents a label for the <code><a href=#the-select-element>select</a></code>
+ control.</p>
+
+ <p>The <dfn id=attr-option-disabled title=attr-option-disabled><code>disabled</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. An
+ <code><a href=#the-option-element>option</a></code> element is <dfn id=concept-option-disabled title=concept-option-disabled>disabled</dfn> if its <code title=attr-option-disabled><a href=#attr-option-disabled>disabled</a></code> attribute is present or
+ if it is a child of an <code><a href=#the-optgroup-element>optgroup</a></code> element whose <code title=attr-optgroup-disabled><a href=#attr-optgroup-disabled>disabled</a></code> attribute is
+ present.</p>
+
+ <div class=impl>
+
+ <p>An <code><a href=#the-option-element>option</a></code> element that is <a href=#attr-option-disabled title=attr-option-disabled>disabled</a> must prevent any <code title=event-click><a href=#event-click>click</a></code> events that are <a href=#queue-a-task title="queue
+ a task">queued</a> on the <a href=#user-interaction-task-source>user interaction task
+ source</a> from being dispatched on the element.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-option-label title=attr-option-label><code>label</code></dfn>
+ attribute provides a label for element. The <dfn id=concept-option-label title=concept-option-label>label</dfn> of an <code><a href=#the-option-element>option</a></code>
+ element is the value of the <code title=attr-option-label><a href=#attr-option-label>label</a></code> content attribute, if there
+ is one, or, if there is not, the value of the element's <code title=dom-option-text><a href=#dom-option-text>text</a></code> IDL attribute.</p>
+
+ <p>The <dfn id=attr-option-value title=attr-option-value><code>value</code></dfn>
+ attribute provides a value for element. The <dfn id=concept-option-value title=concept-option-value>value</dfn> of an <code><a href=#the-option-element>option</a></code>
+ element is the value of the <code title=attr-option-value><a href=#attr-option-value>value</a></code> content attribute, if there
+ is one, or, if there is not, the value of the element's <code title=dom-option-text><a href=#dom-option-text>text</a></code> IDL attribute.</p>
+
+ <p>The <dfn id=attr-option-selected title=attr-option-selected><code>selected</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>. It represents the
+ default <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of the
+ element.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=concept-option-selectedness title=concept-option-selectedness>selectedness</dfn>
+ of an <code><a href=#the-option-element>option</a></code> element is a boolean state, initially
+ false. Except where otherwise
+ specified, when the element is created, its <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> must be set
+ to true if the element has a <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code> attribute. Whenever an
+ <code><a href=#the-option-element>option</a></code> element's <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code> attribute is added, its
+ <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> must
+ be set to true.</p>
+
+ <p class=note>The <code title=dom-option-tvd><a href=#dom-option-tvd>Option()</a></code>
+ constructor with three or fewer arguments overrides the initial
+ state of the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> state to
+ always be false even if the third argument is true (implying that a
+ <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code> attribute is to
+ be set). The fourth argument can be used to explicitly set the
+ initial <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> state when
+ using the constructor.</p>
+
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/604 -->
+
+ </div>
+
+ <p>A <code><a href=#the-select-element>select</a></code> element whose <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute is not
+ specified must not have more than one descendant <code><a href=#the-option-element>option</a></code>
+ element with its <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code>
+ attribute set.</p>
+
+ <div class=impl>
+
+ <p>An <code><a href=#the-option-element>option</a></code> element's <dfn id=concept-option-index title=concept-option-index>index</dfn> is the number of
+ <code><a href=#the-option-element>option</a></code> element that are in the same <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> but that
+ come before it in <a href=#tree-order>tree order</a>. If the
+ <code><a href=#the-option-element>option</a></code> element is not in a <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>, then the
+ <code><a href=#the-option-element>option</a></code> element's <a href=#concept-option-index title=concept-option-index>index</a> is zero.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">option</var> . <code title=dom-option-selected><a href=#dom-option-selected>selected</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element is selected, and false otherwise.</p>
+
+ <p>Can be set, to override the current state of the element.</p>
+
+ </dd>
+
+ <dt><var title="">option</var> . <code title=dom-option-index><a href=#dom-option-index>index</a></code></dt>
+
+ <dd>
+
+ <p>Returns the index of the element in its <code><a href=#the-select-element>select</a></code>
+ element's <code title=dom-select-options><a href=#dom-select-options>options</a></code>
+ list.</p>
+
+ </dd>
+
+ <dt><var title="">option</var> . <code title=dom-option-form><a href=#dom-option-form>form</a></code></dt>
+
+ <dd>
+
+ <p>Returns the element's <code><a href=#the-form-element>form</a></code> element, if any, or
+ null otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">option</var> . <code title=dom-option-text><a href=#dom-option-text>text</a></code></dt>
+
+ <dd>
+
+ <p>Same as <code><a href=#textcontent>textContent</a></code>, except that spaces are collapsed.</p>
+
+ </dd>
+
+ <dt><var title="">option</var> = new <code title=dom-option><a href=#dom-option>Option</a></code>( [ <var title="">text</var> [, <var title="">value</var> [, <var title="">defaultSelected</var> [, <var title="">selected</var> ] ] ] ] )</dt>
+
+ <dd>
+
+ <p>Returns a new <code><a href=#the-option-element>option</a></code> element.</p>
+
+ <p>The <var title="">text</var> argument sets the contents of the element.</p>
+ <p>The <var title="">value</var> argument sets the <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute.</p>
+ <p>The <var title="">defaultSelected</var> argument sets the <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code> attribute.</p>
+ <p>The <var title="">selected</var> argument sets whether or not the element is selected. If it is omitted, even if the <var title="">defaultSelected</var> argument is true, the element is not selected.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-option-disabled title=dom-option-disabled><code>disabled</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name. The <dfn id=dom-option-defaultselected title=dom-option-defaultSelected><code>defaultSelected</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code> content attribute.</p>
+
+ <p>The <dfn id=dom-option-label title=dom-option-label><code>label</code></dfn> IDL
+ attribute, on getting, must return the value of the element's <code title=attr-option-label><a href=#attr-option-label>label</a></code> content attribute, if it has
+ one, or else the value of the element's <code><a href=#textcontent>textContent</a></code> IDL
+ attribute. On setting, the element's <code title=attr-option-label><a href=#attr-option-label>label</a></code> content attribute must be set
+ to the new value.</p>
+
+ <p>The <dfn id=dom-option-value title=dom-option-value><code>value</code></dfn> IDL
+ attribute, on getting, must return the value of the element's <code title=attr-option-value><a href=#attr-option-value>value</a></code> content attribute, if it has
+ one, or else the value of the element's <code><a href=#textcontent>textContent</a></code> IDL
+ attribute. On setting, the element's <code title=attr-option-value><a href=#attr-option-value>value</a></code> content attribute must be set
+ to the new value.</p>
+
+ <p>The <dfn id=dom-option-selected title=dom-option-selected><code>selected</code></dfn>
+ IDL attribute, on getting, must return true if the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true, and
+ false otherwise. On setting, it must set the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> to the new
+ value.</p>
+
+ <p>The <dfn id=dom-option-index title=dom-option-index><code>index</code></dfn> IDL
+ attribute must return the element's <a href=#concept-option-index title=concept-option-index>index</a>.</p>
+
+ <p>The <dfn id=dom-option-text title=dom-option-text><code>text</code></dfn> IDL
+ attribute, on getting, must return the value of the
+ <code><a href=#textcontent>textContent</a></code> IDL attribute on the element, with <a href=#strip-leading-and-trailing-whitespace title="strip leading and trailing whitespace">leading and trailing
+ whitespace stripped</a>, and with any sequences of two or more
+ <a href=#space-character title="space character">space characters</a> replaced by a
+ single U+0020 SPACE character. On setting, it must act as if the
+ <code><a href=#textcontent>textContent</a></code> IDL attribute on the element had been set
+ to the new value.</p>
+
+ <p>The <dfn id=dom-option-form title=dom-option-form><code>form</code></dfn> IDL
+ attribute's behavior depends on whether the <code><a href=#the-option-element>option</a></code>
+ element is in a <code><a href=#the-select-element>select</a></code> element or not. If the
+ <code><a href=#the-option-element>option</a></code> has a <code><a href=#the-select-element>select</a></code> element as its parent,
+ or has a <code><a href=#the-optgroup-element>optgroup</a></code> element as its parent and that
+ <code><a href=#the-optgroup-element>optgroup</a></code> element has a <code><a href=#the-select-element>select</a></code> element as
+ its parent, then the <code title=dom-option-form><a href=#dom-option-form>form</a></code> IDL
+ attribute must return the same value as the <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> IDL attribute on that
+ <code><a href=#the-select-element>select</a></code> element. Otherwise, it must return null.</p>
+
+ <p>Several constructors are provided for creating
+ <code><a href=#htmloptionelement>HTMLOptionElement</a></code> objects (in addition to the factory
+ methods from DOM Core such as <code title="">createElement()</code>): <dfn id=dom-option title=dom-option><code>Option()</code></dfn>, <dfn id=dom-option-t title=dom-option-t><code>Option(<var title="">text</var>)</code></dfn>, <dfn id=dom-option-tv title=dom-option-tv><code>Option(<var title="">text</var>, <var title="">value</var>)</code></dfn>, <dfn id=dom-option-tvd title=dom-option-tvd><code>Option(<var title="">text</var>, <var title="">value</var>, <var title="">defaultSelected</var>)</code></dfn>, and <dfn id=dom-option-tvds title=dom-option-tvds><code>Option(<var title="">text</var>, <var title="">value</var>, <var title="">defaultSelected</var>, <var title="">selected</var>)</code></dfn>. When invoked as constructors,
+ these must return a new <code><a href=#htmloptionelement>HTMLOptionElement</a></code> object (a new
+ <code><a href=#the-option-element>option</a></code> element). If the <var title="">text</var>
+ argument is present, the new object must have as its only child a
+ <code><a href=#node>Node</a></code> with node type <code title="">TEXT_NODE</code> (3)
+ whose data is the value of that argument<!-- we mention TEXT_NODE
+ and all that explicitly here because we redefine "text node" in this
+ spec to also include CDATA sections -->. If the <var title="">value</var> argument is present, the new object must have a
+ <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute set with the
+ value of the argument as its value. If the <var title="">defaultSelected</var> argument is present and true, the new
+ object must have a <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code> attribute set with no
+ value. If the <var title="">selected</var> argument is present and
+ true, the new object must have its <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> set to true;
+ otherwise the fourth argument is absent or false, and the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> must be set
+ to false, even if the <var title="">defaultSelected</var> argument
+ is present and true. The element's document must be the <a href=#active-document>active
+ document</a> of the <a href=#browsing-context>browsing context</a> of the
+ <code><a href=#window>Window</a></code> object on which the interface object of the
+ invoked constructor is found.</p>
+
+ </div>
+
+
+
+ <h4 id=the-textarea-element><span class=secno>4.10.13 </span>The <dfn><code>textarea</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#interactive-content>Interactive content</a>.</dd>
+ <dd><a href=#category-listed title=category-listed>Listed</a>, <a href=#category-label title=category-label>labelable</a>, <a href=#category-submit title=category-submit>submittable</a>, and <a href=#category-reset title=category-reset>resettable</a> <a href=#form-associated-element>form-associated element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#text-content title="text content">Text</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code></dd>
+ <dd><code title=attr-textarea-cols><a href=#attr-textarea-cols>cols</a></code></dd>
+ <dd><code title=attr-textarea-dirname><a href=#attr-textarea-dirname>dirname</a></code></dd>
+ <dd><code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code></dd>
+ <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd>
+ <dd><code title=attr-textarea-maxlength><a href=#attr-textarea-maxlength>maxlength</a></code></dd>
+ <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd>
+ <dd><code title=attr-textarea-placeholder><a href=#attr-textarea-placeholder>placeholder</a></code></dd>
+ <dd><code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code></dd>
+ <dd><code title=attr-textarea-required><a href=#attr-textarea-required>required</a></code></dd>
+ <dd><code title=attr-textarea-rows><a href=#attr-textarea-rows>rows</a></code></dd>
+ <dd><code title=attr-textarea-wrap><a href=#attr-textarea-wrap>wrap</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmltextareaelement>HTMLTextAreaElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
+ attribute unsigned long <a href=#dom-textarea-cols title=dom-textarea-cols>cols</a>;
+ attribute DOMString <a href=#dom-textarea-dirname title=dom-textarea-dirName>dirName</a>;
+ attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+ attribute long <a href=#dom-textarea-maxlength title=dom-textarea-maxLength>maxLength</a>;
+ attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
+ attribute DOMString <a href=#dom-textarea-placeholder title=dom-textarea-placeholder>placeholder</a>;
+ attribute boolean <a href=#dom-textarea-readonly title=dom-textarea-readOnly>readOnly</a>;
+ attribute boolean <a href=#dom-textarea-required title=dom-textarea-required>required</a>;
+ attribute unsigned long <a href=#dom-textarea-rows title=dom-textarea-rows>rows</a>;
+ attribute DOMString <a href=#dom-textarea-wrap title=dom-textarea-wrap>wrap</a>;
+
+ readonly attribute DOMString <a href=#dom-textarea-type title=dom-textarea-type>type</a>;
+ attribute DOMString <a href=#dom-textarea-defaultvalue title=dom-textarea-defaultValue>defaultValue</a>;
+ attribute DOMString <a href=#dom-textarea-value title=dom-textarea-value>value</a>;
+ readonly attribute unsigned long <a href=#dom-textarea-textlength title=dom-textarea-textLength>textLength</a>;
+
+ readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>;
+ readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>;
+ readonly attribute DOMString <a href=#dom-cva-validationmessage title=dom-cva-validationMessage>validationMessage</a>;
+ boolean <a href=#dom-cva-checkvalidatity title=dom-cva-checkValidatity>checkValidity</a>();
+ void <a href=#dom-cva-setcustomvalidity title=dom-cva-setCustomValidity>setCustomValidity</a>(DOMString error);
+
+ readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
+
+ void <a href=#dom-textarea/input-select title=dom-textarea/input-select>select</a>();
+ attribute unsigned long <a href=#dom-textarea/input-selectionstart title=dom-textarea/input-selectionStart>selectionStart</a>;
+ attribute unsigned long <a href=#dom-textarea/input-selectionend title=dom-textarea/input-selectionEnd>selectionEnd</a>;
+ attribute DOMString <a href=#dom-textarea/input-selectiondirection title=dom-textarea/input-selectionDirection>selectionDirection</a>;
+ void <a href=#dom-textarea/input-setselectionrange title=dom-textarea/input-setSelectionRange>setSelectionRange</a>(unsigned long start, unsigned long end, optional DOMString direction);
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-textarea-element>textarea</a></code> element <a href=#represents>represents</a> a
+ multiline plain text edit control<span class=impl> for the
+ element's <dfn id=concept-textarea-raw-value title=concept-textarea-raw-value>raw
+ value</dfn></span>. The contents of the control represent the
+ control's default value.</p>
+
+ <div class=impl>
+
+ <p>The <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw value</a> of
+ a <code><a href=#the-textarea-element>textarea</a></code> control must be initially the empty
+ string.</p>
+
+ <p>A newline in a <code><a href=#the-textarea-element>textarea</a></code> element, and in its <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw value</a>, should separate
+ paragraphs for the purposes of the Unicode bidirectional algorithm.
+ This requirement may be implemented indirectly through the style
+ layer. For example, an HTML+CSS user agent could implement these
+ requirements by implementing the CSS 'unicode-bidi' property. <a href=#refsBIDI>[BIDI]</a> <a href=#refsCSS>[CSS]</a></p>
+
+ </div>
+
+ <p>The <dfn id=attr-textarea-readonly title=attr-textarea-readonly><code>readonly</code></dfn> attribute
+ is a <a href=#boolean-attribute>boolean attribute</a> used to control whether the text
+ can be edited by the user or not.</p>
+
+ <div class=impl>
+
+ <p><strong>Constraint validation</strong>: If the <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code> attribute is
+ specified on a <code><a href=#the-textarea-element>textarea</a></code> element, the element is
+ <a href=#barred-from-constraint-validation>barred from constraint validation</a>.</p>
+
+ <p>A <code><a href=#the-textarea-element>textarea</a></code> element is <dfn id=concept-textarea-mutable title=concept-textarea-mutable>mutable</dfn> if it is neither
+ <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a> nor has a <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code> attribute
+ specified.</p>
+
+ <p>When a <code><a href=#the-textarea-element>textarea</a></code> is <a href=#concept-textarea-mutable title=concept-textarea-mutable>mutable</a>, its <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw value</a> should be
+ editable by the user: the user agent should allow the user to edit,
+ insert, and remove text, and to insert and remove line breaks in the
+ form of U+000A LINE FEED (LF) characters. Any time the user causes
+ the element's <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw
+ value</a> to change, the user agent must <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> that bubbles named
+ <code title=event-input>input</code> at the <code><a href=#the-textarea-element>textarea</a></code>
+ element. User agents may wait for a suitable break in the user's
+ interaction before queuing the task; for example, a user agent could
+ wait for the user to have not hit a key for 100ms, so as to only
+ fire the event when the user pauses, instead of continuously for
+ each keystroke.</p> <!-- same text is present in the <input> section
+ -->
+
+ <p>A <code><a href=#the-textarea-element>textarea</a></code> element has a <dfn id=concept-textarea-dirty title=concept-textarea-dirty>dirty value flag</dfn>, which must be
+ initially set to false, and must be set to true whenever the user
+ interacts with the control in a way that changes the <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw value</a>.</p>
+
+ <p>When the <code><a href=#the-textarea-element>textarea</a></code> element's <code><a href=#textcontent>textContent</a></code>
+ IDL attribute changes value, if the element's <a href=#concept-textarea-dirty title=concept-textarea-dirty>dirty value flag</a> is false,
+ then the element's <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw
+ value</a> must be set to the value of the element's
+ <code><a href=#textcontent>textContent</a></code> IDL attribute.</p>
+
+ <p>The <a href=#concept-form-reset-control title=concept-form-reset-control>reset
+ algorithm</a> for <code><a href=#the-textarea-element>textarea</a></code> elements is to set the
+ element's <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>value</a> to
+ the value of the element's <code><a href=#textcontent>textContent</a></code> IDL
+ attribute.</p>
+
+ <!-- this next bit is also in the <input> Text/Search section -->
+ <!-- and something similar is in the session history section -->
+ <p>If the element is <a href=#concept-textarea-mutable title=concept-textarea-mutable>mutable</a>, the user agent
+ should allow the user to change the writing direction of the
+ element, setting it either to a left-to-right writing direction or a
+ right-to-left writing direction. If the user does so, the user agent
+ must then run the following steps:</p>
+
+ <ol><li><p>Set the element's <code title=attr-dir><a href=#the-dir-attribute>dir</a></code>
+ attribute to "<code title=attr-dir-ltr><a href=#attr-dir-ltr>ltr</a></code>" if the user
+ selected a left-to-right writing direction, and "<code title=attr-dir-rtl><a href=#attr-dir-rtl>rtl</a></code>" if the user selected a
+ right-to-left writing direction.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> that bubbles named <code title=event-input>input</code> at the <code><a href=#the-textarea-element>textarea</a></code>
+ element.</li>
+
+ </ol></div>
+
+ <p>The <dfn id=attr-textarea-cols title=attr-textarea-cols><code>cols</code></dfn>
+ attribute specifies the expected maximum number of characters per
+ line. If the <code title=attr-textarea-cols><a href=#attr-textarea-cols>cols</a></code> attribute
+ is specified, its value must be a <a href=#valid-non-negative-integer>valid non-negative
+ integer</a> greater than zero. <span class=impl>If applying the
+ <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a> to the
+ attribute's value results in a number greater than zero, then the
+ element's <dfn id=attr-textarea-cols-value title=attr-textarea-cols-value>character
+ width</dfn> is that value; otherwise, it is 20.</span></p>
+
+ <div class=impl>
+
+ <p>The user agent may use the <code><a href=#the-textarea-element>textarea</a></code> element's <a href=#attr-textarea-cols-value title=attr-textarea-cols-value>character width</a> as a hint to
+ the user as to how many characters the server prefers per line
+ (e.g. for visual user agents by making the width of the control be
+ that many characters). In visual renderings, the user agent should
+ wrap the user's input in the rendering so that each line is no wider
+ than this number of characters.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-textarea-rows title=attr-textarea-rows><code>rows</code></dfn>
+ attribute specifies the number of lines to show. If the <code title=attr-textarea-rows><a href=#attr-textarea-rows>rows</a></code> attribute is specified, its
+ value must be a <a href=#valid-non-negative-integer>valid non-negative integer</a> greater than
+ zero. <span class=impl>If applying the <a href=#rules-for-parsing-non-negative-integers>rules for parsing
+ non-negative integers</a> to the attribute's value results in a
+ number greater than zero, then the element's <dfn id=attr-textarea-rows-value title=attr-textarea-rows-value>character height</dfn> is that
+ value; otherwise, it is 2.</span></p>
+
+ <div class=impl>
+
+ <p>Visual user agents should set the height of the control to the
+ number of lines given by <a href=#attr-textarea-rows-value title=attr-textarea-rows-value>character height</a>.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-textarea-wrap title=attr-textarea-wrap><code>wrap</code></dfn>
+ attribute is an <a href=#enumerated-attribute>enumerated attribute</a> with two keywords
+ and states: the <dfn id=attr-textarea-wrap-soft title=attr-textarea-wrap-soft><code>soft</code></dfn> keyword
+ which maps to the <a href=#attr-textarea-wrap-soft-state title=attr-textarea-wrap-soft-state>Soft</a> state, and the
+ <dfn id=attr-textarea-wrap-hard title=attr-textarea-wrap-hard><code>hard</code></dfn> keyword
+ which maps to the <a href=#attr-textarea-wrap-hard-state title=attr-textarea-wrap-hard-state>Hard</a> state. The
+ <i>missing value default</i> is the <a href=#attr-textarea-wrap-soft-state title=attr-textarea-wrap-soft-state>Soft</a> state.</p>
+
+ <p>The <dfn id=attr-textarea-wrap-soft-state title=attr-textarea-wrap-soft-state>Soft</dfn> state
+ indicates that the text in the <code><a href=#the-textarea-element>textarea</a></code> is not to be
+ wrapped when it is submitted (though it can still be wrapped in the
+ rendering).</p>
+
+ <p>The <dfn id=attr-textarea-wrap-hard-state title=attr-textarea-wrap-hard-state>Hard</dfn> state
+ indicates that the text in the <code><a href=#the-textarea-element>textarea</a></code> is to have
+ newlines added by the user agent so that the text is wrapped when it
+ is submitted.</p>
+
+ <p>If the element's <code title=attr-textarea-wrap><a href=#attr-textarea-wrap>wrap</a></code>
+ attribute is in the <a href=#attr-textarea-wrap-hard-state title=attr-textarea-wrap-hard-state>Hard</a> state, the <code title=attr-textarea-cols><a href=#attr-textarea-cols>cols</a></code> attribute must be
+ specified.</p>
+
+ <!-- attr-textarea-wrap-off (attr-textarea-wrap-off-state): not
+ conforming; turns off the rendering of wrapping but otherwise acts
+ like 'soft' -->
+
+ <div class=impl>
+
+ <p>The element's <a href=#concept-fe-value title=concept-fe-value>value</a> is
+ defined to be the element's <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw value</a> with the
+ following transformation applied:</p>
+
+ <ol><li><p>Replace every occurrence of a U+000D CARRIAGE RETURN (CR)
+ character not followed by a U+000A LINE FEED (LF) character, and
+ every occurrence of a U+000A LINE FEED (LF) character not preceded
+ by a U+000D CARRIAGE RETURN (CR) character, by a two-character
+ string consisting of a U+000D CARRIAGE RETURN U+000A LINE FEED
+ (CRLF) character pair.</li>
+
+ <li><p>If the element's <code title=attr-textarea-wrap><a href=#attr-textarea-wrap>wrap</a></code> attribute is in the <a href=#attr-textarea-wrap-hard-state title=attr-textarea-wrap-hard-state>Hard</a> state, insert
+ U+000D CARRIAGE RETURN U+000A LINE FEED (CRLF) character pairs
+ into the string using a UA-defined algorithm so that each line has
+ no more than <a href=#attr-textarea-cols-value title=attr-textarea-cols-value>character
+ width</a> characters. For the purposes of this requirement,
+ lines are delimited by the start of the string, the end of the
+ string, and U+000D CARRIAGE RETURN U+000A LINE FEED (CRLF)
+ character pairs.</li>
+
+ </ol></div>
+
+ <p>The <dfn id=attr-textarea-maxlength title=attr-textarea-maxlength><code>maxlength</code></dfn>
+ attribute is a <a href=#attr-fe-maxlength title=attr-fe-maxlength>form control <code title="">maxlength</code> attribute</a> controlled by the
+ <code><a href=#the-textarea-element>textarea</a></code> element's <a href=#concept-textarea-dirty title=concept-textarea-dirty>dirty value flag</a>.</p>
+
+ <p>If the <code><a href=#the-textarea-element>textarea</a></code> element has a <a href=#maximum-allowed-value-length>maximum allowed
+ value length</a>, then the element's children must be such that
+ the <a href=#code-point-length>code-point length</a> of the value of the element's
+ <code><a href=#textcontent>textContent</a></code> IDL attribute is equal to or less than the
+ element's <a href=#maximum-allowed-value-length>maximum allowed value length</a>.</p>
+
+ <p>The <dfn id=attr-textarea-required title=attr-textarea-required><code>required</code></dfn> attribute
+ is a <a href=#boolean-attribute>boolean attribute</a>. When specified, the user will
+ be required to enter a value before submitting the form.</p>
+
+ <div class=impl>
+
+ <p><strong>Constraint validation</strong>: If the element has its
+ <code title=attr-textarea-required><a href=#attr-textarea-required>required</a></code> attribute
+ specified, and the element is <a href=#concept-textarea-mutable title=concept-textarea-mutable>mutable</a>, and the element's
+ <a href=#concept-fe-value title=concept-fe-value>value</a> is the empty string,
+ then the element is <a href=#suffering-from-being-missing>suffering from being missing</a>.</p>
+
+ </div>
+
+
+ <!-- similar text in the <input> section -->
+
+ <p>The <dfn id=attr-textarea-placeholder title=attr-textarea-placeholder><code>placeholder</code></dfn>
+ attribute represents a hint (a word or short phrase) intended to aid
+ the user with data entry. A hint could be a sample value or a brief
+ description of the expected format. The attribute, if specified,
+ must have a value that contains no U+000A LINE FEED (LF) or U+000D
+ CARRIAGE RETURN (CR) characters.</p>
+
+ <p class=note>For a longer hint or other advisory text, the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute is more appropriate.</p>
+
+ <p>The <code title=attr-textarea-placeholder><a href=#attr-textarea-placeholder>placeholder</a></code>
+ attribute should not be used as an alternative to a
+ <code><a href=#the-label-element>label</a></code>.</p>
+
+ <div class=impl>
+
+ <p>User agents should present this hint to the user, after having
+ <a href=#strip-line-breaks title="strip line breaks">stripped line breaks</a> from it,
+ when the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is
+ the empty string and the control is not focused (e.g. by displaying
+ it inside a blank unfocused control).</p>
+
+ </div>
+
+ <p>The <dfn id=attr-textarea-dirname title=attr-textarea-dirname><code>dirname</code></dfn>
+ attribute is a <a href=#form-control-dirname-attribute>form control <code title="">dirname</code>
+ attribute</a>.</p>
+
+ <p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
+ explicitly associate the <code><a href=#the-textarea-element>textarea</a></code> element with its
+ <a href=#form-owner>form owner</a>. The <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>
+ attribute represents the element's name. The <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is used to make
+ the control non-interactive and to prevent its value from being
+ submitted. The <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>
+ attribute controls focus.</p>
+
+ <dl class=domintro><dt><var title="">textarea</var> . <code title=attr-textarea-type>type</code></dt>
+
+ <dd>
+
+ <p>Returns the string "<code title="">textarea</code>".</p>
+
+ </dd>
+
+ <dt><var title="">textarea</var> . <code title=attr-textarea-value>value</code></dt>
+
+ <dd>
+
+ <p>Returns the current value of the element.</p>
+
+ <p>Can be set, to change the value.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-textarea-cols title=dom-textarea-cols><code>cols</code></dfn>, <dfn id=dom-textarea-placeholder title=dom-textarea-placeholder><code>placeholder</code></dfn>,
+ <dfn id=dom-textarea-required title=dom-textarea-required><code>required</code></dfn>, <dfn id=dom-textarea-rows title=dom-textarea-rows><code>rows</code></dfn>, and <dfn id=dom-textarea-wrap title=dom-textarea-wrap><code>wrap</code></dfn> attributes must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name. The <code title=dom-textarea-cols><a href=#dom-textarea-cols>cols</a></code> and <code title=dom-textarea-rows><a href=#dom-textarea-rows>rows</a></code> attributes are <a href=#limited-to-only-non-negative-numbers-greater-than-zero>limited
+ to only non-negative numbers greater than zero</a>. The <code title=dom-textarea-cols><a href=#dom-textarea-cols>cols</a></code> attribute's default value is
+ 20. The <code title=dom-textarea-rows><a href=#dom-textarea-rows>rows</a></code> attribute's
+ default value is 2. The <dfn id=dom-textarea-dirname title=dom-textarea-dirName><code>dirName</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-textarea-dirname><a href=#attr-textarea-dirname>dirname</a></code> content attribute. The
+ <dfn id=dom-textarea-maxlength title=dom-textarea-maxLength><code>maxLength</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-textarea-maxlength><a href=#attr-textarea-maxlength>maxlength</a></code> content attribute,
+ <a href=#limited-to-only-non-negative-numbers>limited to only non-negative numbers</a>. The <dfn id=dom-textarea-readonly title=dom-textarea-readOnly><code>readOnly</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-textarea-type title=dom-textarea-type><code>type</code></dfn> IDL
+ attribute must return the value "<code title="">textarea</code>".</p>
+
+ <p>The <dfn id=dom-textarea-defaultvalue title=dom-textarea-defaultValue><code>defaultValue</code></dfn>
+ IDL attribute must act like the element's <code><a href=#textcontent>textContent</a></code>
+ IDL attribute.</p>
+
+ <p>The <dfn id=dom-textarea-value title=dom-textarea-value><code>value</code></dfn>
+ attribute must, on getting, return the element's <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw value</a>; on setting, it
+ must set the element's <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw
+ value</a> to the new value, set the element's <a href=#concept-textarea-dirty title=concept-textarea-dirty>dirty value flag</a> to true, and
+ should then move the text entry cursor position to the end of the
+ text field, unselecting any selected text and resetting the
+ selection direction to <i>none</i>.</p>
+
+ <p>The <dfn id=dom-textarea-textlength title=dom-textarea-textLength><code>textLength</code></dfn> IDL
+ attribute must return the <a href=#code-point-length>code-point length</a> of the
+ element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
+
+ <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code>
+ attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
+ methods, are part of the <a href=#the-constraint-validation-api>constraint validation API</a>. The
+ <code title=dom-lfe-labels><a href=#dom-lfe-labels>labels</a></code> attribute provides a list
+ of the element's <code><a href=#the-label-element>label</a></code>s. The <code title=dom-textarea/input-select><a href=#dom-textarea/input-select>select()</a></code>, <code title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>,
+ <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>,
+ <code title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>,
+ and <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>
+ methods and attributes expose the element's text selection. The
+ <code title=dom-fe-autofocus><a href=#dom-fe-autofocus>autofocus</a></code>, <code title=dom-fe-disabled><a href=#dom-fe-disabled>disabled</a></code>, <code title=dom-fae-form><a href=#dom-fae-form>form</a></code>, and <code title=dom-fe-name><a href=#dom-fe-name>name</a></code> IDL attributes are part of the
+ element's forms API.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here is an example of a <code><a href=#the-textarea-element>textarea</a></code> being used for
+ unrestricted free-form text input in a form:</p>
+
+ <pre>&lt;p&gt;If you have any comments, please let us know: &lt;textarea cols=80 name=comments&gt;&lt;/textarea&gt;&lt;/p&gt;</pre>
+
+ <p>To specify a maximum length for the comments, one can use
+ the <code title=attr-textarea-maxlength><a href=#attr-textarea-maxlength>maxlength</a></code>
+ attribute:</p>
+
+ <pre>&lt;p&gt;If you have any short comments, please let us know: &lt;textarea cols=80 name=comments maxlength=200&gt;&lt;/textarea&gt;&lt;/p&gt;</pre>
+
+ <p>To give a default value, text can be included inside the element:</p>
+
+ <pre>&lt;p&gt;If you have any comments, please let us know: &lt;textarea cols=80 name=comments&gt;You rock!&lt;/textarea&gt;&lt;/p&gt;</pre>
+
+ <p>To have the browser submit <a href=#the-directionality>the directionality</a> of
+ the element along with the value, the <code title=attr-textarea-dirname><a href=#attr-textarea-dirname>dirname</a></code> attribute can be
+ specified:</p>
+
+ <pre>&lt;p&gt;If you have any comments, please let us know (you may use either English or Hebrew for your comments):
+&lt;textarea cols=80 name=comments dirname=comments.dir&gt;&lt;/textarea&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-keygen-element><span class=secno>4.10.14 </span>The <dfn><code>keygen</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#interactive-content>Interactive content</a>.</dd>
+ <dd><a href=#category-listed title=category-listed>Listed</a>, <a href=#category-label title=category-label>labelable</a>, <a href=#category-submit title=category-submit>submittable</a>, and <a href=#category-reset title=category-reset>resettable</a> <a href=#form-associated-element>form-associated element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code></dd>
+ <dd><code title=attr-keygen-challenge><a href=#attr-keygen-challenge>challenge</a></code></dd>
+ <dd><code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code></dd>
+ <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd>
+ <dd><code title=attr-keygen-keytype><a href=#attr-keygen-keytype>keytype</a></code></dd>
+ <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlkeygenelement>HTMLKeygenElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>;
+ attribute DOMString <a href=#dom-keygen-challenge title=dom-keygen-challenge>challenge</a>;
+ attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>;
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+ attribute DOMString <a href=#dom-keygen-keytype title=dom-keygen-keytype>keytype</a>;
+ attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
+
+ readonly attribute DOMString <a href=#dom-keygen-type title=dom-keygen-type>type</a>;
+
+ readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>;
+ readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>;
+ readonly attribute DOMString <a href=#dom-cva-validationmessage title=dom-cva-validationMessage>validationMessage</a>;
+ boolean <a href=#dom-cva-checkvalidatity title=dom-cva-checkValidatity>checkValidity</a>();
+ void <a href=#dom-cva-setcustomvalidity title=dom-cva-setCustomValidity>setCustomValidity</a>(DOMString error);
+
+ readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-keygen-element>keygen</a></code> element <a href=#represents>represents</a> a key
+ pair generator control. When the control's form is submitted, the
+ private key is stored in the local keystore, and the public key is
+ packaged and sent to the server.</p>
+
+ <p>The <dfn id=attr-keygen-challenge title=attr-keygen-challenge><code>challenge</code></dfn> attribute
+ may be specified. Its value will be packaged with the submitted
+ key.</p>
+
+ <p>The <dfn id=attr-keygen-keytype title=attr-keygen-keytype><code>keytype</code></dfn>
+ attribute is an <a href=#enumerated-attribute>enumerated attribute</a>. The following
+ table lists the keywords and states for the attribute &mdash; the
+ keywords in the left column map to the states listed in the cell in
+ the second column on the same row as the keyword. User agents are
+ not required to support these values, and must only recognize values
+ whose corresponding algorithms they support.</p>
+
+ <table><thead><tr><th> Keyword <th> State
+ <tbody><tr><td> <code title="">rsa</code>
+ <td> <i title="">RSA</i>
+<!-- v2 (see below)
+ <tr>
+ <td> <code title="">ec</code>
+ <td> <i title="">EC</i>
+-->
+ </table><p>The <i>invalid value default</i> state is the <i title="">unknown</i> state. The <i>missing value default</i> state
+ is the <i title="">RSA</i> state, if it is supported, or the <i title="">unknown</i> state otherwise.</p>
+
+ <p class=note>This specification does not specify what key types
+ user agents are to support &mdash; it is possible for a user agent
+ to not support any key types at all.</p>
+
+ <div class=impl>
+
+ <p>The user agent may expose a user interface for each
+ <code><a href=#the-keygen-element>keygen</a></code> element to allow the user to configure settings
+ of the element's key pair generator, e.g. the key length.</p>
+
+ <p>The <a href=#concept-form-reset-control title=concept-form-reset-control>reset
+ algorithm</a> for <code><a href=#the-keygen-element>keygen</a></code> elements is to set these
+ various configuration settings back to their defaults.</p>
+
+ <p>The element's <a href=#concept-fe-value title=concept-fe-value>value</a> is the
+ string returned from the following algorithm:</p>
+
+ <ol><li>
+
+ <p>Use the appropriate step from the following list:</p>
+
+ <dl class=switch><!-- v2 (see above)
+
+ <dt>If the <code title="attr-keygen-keytype">keytype</code>
+ attribute is in the <i title="">EC</i> state</dt>
+
+ <dd>
+
+ <p>...
+
+ http://www.mail-archive.com/dev-tech-crypto@lists.mozilla.org/msg05902.html
+
+ </dd>
+
+ --><dt>If the <code title=attr-keygen-keytype><a href=#attr-keygen-keytype>keytype</a></code>
+ attribute is in the <i title="">RSA</i> state</dt>
+
+ <dd>
+
+ <p>Generate an RSA key pair using the settings given by the
+ user, if appropriate, using the <code title="">md5WithRSAEncryption</code> RSA signature algorithm
+ (the signature algorithm with MD5 and the RSA encryption
+ algorithm) referenced in section 2.2.1 ("RSA Signature
+ Algorithm") of RFC 3279, and defined in RFC 2313. <a href=#refsRFC3279>[RFC3279]</a> <a href=#refsRFC2313>[RFC2313]</a></p>
+
+ </dd>
+
+ <dt>Otherwise, the <code title=attr-keygen-keytype><a href=#attr-keygen-keytype>keytype</a></code> attribute is in the <i title="">unknown</i> state</dt>
+
+ <dd>
+
+ <p>The given key type is not supported. Return the empty string
+ and abort this algorithm.</p>
+
+ </dd>
+
+ </dl><p>Let <var title="">private key</var> be the generated private key.</p>
+
+ <p>Let <var title="">public key</var> be the generated public key.</p>
+
+ <p>Let <var title="">signature algorithm</var> be the selected
+ signature algorithm.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the element has a <code title=attr-keygen-challenge><a href=#attr-keygen-challenge>challenge</a></code> attribute, then let
+ <var title="">challenge</var> be that attribute's value.
+ Otherwise, let <var title="">challenge</var> be the empty
+ string.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">algorithm</var> be an ASN.1 <code title="">AlgorithmIdentifier</code> structure as defined by
+ RFC 5280, with the <code title="">algorithm</code> field giving the
+ ASN.1 OID used to identify <var title="">signature
+ algorithm</var>, using the OIDs defined in section 2.2 ("Signature
+ Algorithms") of RFC 3279, and the <code title="">parameters</code>
+ field set up as required by RFC 3279 for <code title="">AlgorithmIdentifier</code> structures for that
+ algorithm. <a href=#refsX690>[X690]</a> <a href=#refsRFC5280>[RFC5280]</a> <a href=#refsRFC3279>[RFC3279]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">spki</var> be an ASN.1 <code title="">SubjectPublicKeyInfo</code> structure as defined by
+ RFC 5280, with the <code title="">algorithm</code> field set to the
+ <var title="">algorithm</var> structure from the previous step,
+ and the <code title="">subjectPublicKey</code> field set to the
+ BIT STRING value resulting from ASN.1 DER encoding the <var title="">public key</var>. <a href=#refsX690>[X690]</a> <a href=#refsRFC5280>[RFC5280]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">publicKeyAndChallenge</var> be an ASN.1
+ <code><a href=#publickeyandchallenge>PublicKeyAndChallenge</a></code> structure as defined below,
+ with the <code title="">spki</code> field set to the <var title="">spki</var> structure from the previous step, and the
+ <code title="">challenge</code> field set to the string <var title="">challenge</var> obtained earlier. <a href=#refsX690>[X690]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">signature</var> be the BIT STRING value
+ resulting from ASN.1 DER encoding the signature generated by
+ applying the <var title="">signature algorithm</var> to the byte
+ string obtained by ASN.1 DER encoding the <var title="">publicKeyAndChallenge</var> structure, using <var title="">private key</var> as the signing key. <a href=#refsX690>[X690]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">signedPublicKeyAndChallenge</var> be an ASN.1
+ <code><a href=#signedpublickeyandchallenge>SignedPublicKeyAndChallenge</a></code> structure as defined
+ below, with the <code title="">publicKeyAndChallenge</code> field
+ set to the <var title="">publicKeyAndChallenge</var> structure,
+ the <code title="">signatureAlgorithm</code> field set to the <var title="">algorithm</var> structure, and the <code title="">signature</code> field set to the BIT STRING <var title="">signature</var> from the previous step. <a href=#refsX690>[X690]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>Return the result of base64 encoding the result of ASN.1 DER
+ encoding the <var title="">signedPublicKeyAndChallenge</var>
+ structure. <a href=#refsRFC4648>[RFC4648]</a><!--base64--> <a href=#refsX690>[X690]</a></p>
+
+ </li>
+
+ </ol><p>The data objects used by the above algorithm are defined as
+ follows. These definitions use the same "ASN.1-like" syntax defined
+ by RFC 5280. <a href=#refsRFC5280>[RFC5280]</a></p>
+
+ <pre class=asn><dfn id=publickeyandchallenge>PublicKeyAndChallenge</dfn> ::= SEQUENCE {
+ spki <span>SubjectPublicKeyInfo</span>,
+ challenge IA5STRING
+}
+
+<dfn id=signedpublickeyandchallenge>SignedPublicKeyAndChallenge</dfn> ::= SEQUENCE {
+ publicKeyAndChallenge <a href=#publickeyandchallenge>PublicKeyAndChallenge</a>,
+ signatureAlgorithm <span>AlgorithmIdentifier</span>,
+ signature BIT STRING
+}</pre>
+
+ <hr><p><strong>Constraint validation</strong>: The <code><a href=#the-keygen-element>keygen</a></code>
+ element is <a href=#barred-from-constraint-validation>barred from constraint validation</a>.</p>
+
+ </div>
+
+ <p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
+ explicitly associate the <code><a href=#the-keygen-element>keygen</a></code> element with its
+ <a href=#form-owner>form owner</a>. The <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>
+ attribute represents the element's name. The <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is used to make
+ the control non-interactive and to prevent its value from being
+ submitted. The <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>
+ attribute controls focus.</p>
+
+ <dl class=domintro><dt><var title="">keygen</var> . <code title=attr-keygen-type>type</code></dt>
+
+ <dd>
+
+ <p>Returns the string "<code title="">keygen</code>".</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-keygen-challenge title=dom-keygen-challenge><code>challenge</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ <p>The <dfn id=dom-keygen-keytype title=dom-keygen-keytype><code>keytype</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
+
+ <p>The <dfn id=dom-keygen-type title=dom-keygen-type><code>type</code></dfn> IDL
+ attribute must return the value "<code title="">keygen</code>".</p>
+
+ <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code>
+ attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
+ methods, are part of the <a href=#the-constraint-validation-api>constraint validation API</a>. The
+ <code title=dom-lfe-labels><a href=#dom-lfe-labels>labels</a></code> attribute provides a list
+ of the element's <code><a href=#the-label-element>label</a></code>s. The <code title=dom-fe-autofocus><a href=#dom-fe-autofocus>autofocus</a></code>, <code title=dom-fe-disabled><a href=#dom-fe-disabled>disabled</a></code>, <code title=dom-fae-form><a href=#dom-fae-form>form</a></code>, and <code title=dom-fe-name><a href=#dom-fe-name>name</a></code> IDL attributes are part of the
+ element's forms API.</p>
+
+ </div>
+
+ <p class=note>This specification does not specify how the private
+ key generated is to be used. It is expected that after receiving the
+ <code><a href=#signedpublickeyandchallenge>SignedPublicKeyAndChallenge</a></code> (SPKAC) structure, the
+ server will generate a client certificate and offer it back to the
+ user for download; this certificate, once downloaded and stored in
+ the key store along with the private key, can then be used to
+ authenticate to services that use TLS and certificate
+ authentication.</p>
+
+ <!-- how does the UA know which private key is associated with a
+ certificate it gets back after the server has taken the public key
+ created by <keygen> and turned it into a client cert? -->
+
+ <div class=example>
+
+ <p>To generate a key pair, add the private key to the user's key
+ store, and submit the public key to the server, markup such as the
+ following can be used:</p>
+
+ <pre>&lt;form action="processkey.cgi" method="post" enctype="multipart/form-data"&gt;
+ &lt;p&gt;&lt;keygen name="key"&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;input type=submit value="Submit key..."&gt;&lt;/p&gt;
+&lt;/form&gt;</pre>
+
+ <p>The server will then receive a form submission with a packaged
+ RSA public key as the value of "<code title="">key</code>". This
+ can then be used for various purposes, such as generating a client
+ certificate, as mentioned above.</p>
+
+ </div>
+
+
+
+ <h4 id=the-output-element><span class=secno>4.10.15 </span>The <dfn><code>output</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#category-listed title=category-listed>Listed</a>, <a href=#category-label title=category-label>labelable</a>, and <a href=#category-reset title=category-reset>resettable</a> <a href=#form-associated-element>form-associated element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-output-for><a href=#attr-output-for>for</a></code></dd>
+ <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd>
+ <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmloutputelement>HTMLOutputElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ [PutForwards=<span title=dom-DOMSettableTokenList-value>value</span>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-output-htmlfor title=dom-output-htmlFor>htmlFor</a>;
+ readonly attribute <a href=#htmlformelement>HTMLFormElement</a>? <a href=#dom-fae-form title=dom-fae-form>form</a>;
+ attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
+
+ readonly attribute DOMString <a href=#dom-output-type title=dom-output-type>type</a>;
+ attribute DOMString <a href=#dom-output-defaultvalue title=dom-output-defaultValue>defaultValue</a>;
+ attribute DOMString <a href=#dom-output-value title=dom-output-value>value</a>;
+
+ readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>;
+ readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>;
+ readonly attribute DOMString <a href=#dom-cva-validationmessage title=dom-cva-validationMessage>validationMessage</a>;
+ boolean <a href=#dom-cva-checkvalidatity title=dom-cva-checkValidatity>checkValidity</a>();
+ void <a href=#dom-cva-setcustomvalidity title=dom-cva-setCustomValidity>setCustomValidity</a>(DOMString error);
+
+ readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-output-element>output</a></code> element <a href=#represents>represents</a> the result of a
+ calculation.</p>
+
+ <p>The <dfn id=attr-output-for title=attr-output-for><code>for</code></dfn> content
+ attribute allows an explicit relationship to be made between the
+ result of a calculation and the elements that represent the values
+ that went into the calculation or that otherwise influenced the
+ calculation. The <code title=attr-output-for><a href=#attr-output-for>for</a></code> attribute,
+ if specified, must contain a string consisting of an <a href=#unordered-set-of-unique-space-separated-tokens>unordered
+ set of unique space-separated tokens</a> that are
+ <a href=#case-sensitive>case-sensitive</a>, each of which must have the value of an
+ <a href=#concept-id title=concept-id>ID</a> of an element in the same
+ <code><a href=#document>Document</a></code>.</p>
+
+ <p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
+ explicitly associate the <code><a href=#the-output-element>output</a></code> element with its
+ <a href=#form-owner>form owner</a>. The <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>
+ attribute represents the element's name.</p>
+
+ <div class=impl>
+
+ <p>The element has a <dfn id=concept-output-mode title=concept-output-mode>value mode
+ flag</dfn> which is either <i title=concept-output-mode-value>value</i> or <i title=concept-output-mode-default>default</i>. Initially, the
+ <a href=#concept-output-mode title=concept-output-mode>value mode flag</a> must be set
+ to <i title=concept-output-mode-default>default</i>.</p>
+
+ <p>The element also has a <dfn id=concept-output-defaultvalue title=concept-output-defaultValue>default value</dfn>. Initially,
+ the <a href=#concept-output-defaultvalue title=concept-output-defaultValue>default value</a>
+ must be the empty string.</p>
+
+ <p>When the <a href=#concept-output-mode title=concept-output-mode>value mode flag</a>
+ is in mode <i title=concept-output-mode-default>default</i>, the
+ contents of the element represent both the value of the element and
+ its <a href=#concept-output-defaultvalue title=concept-output-defaultValue>default
+ value</a>. When the <a href=#concept-output-mode title=concept-output-mode>value mode
+ flag</a> is in mode <i title=concept-output-mode-value>value</i>, the contents of the
+ element represent the value of the element only, and the <a href=#concept-output-defaultvalue title=concept-output-defaultValue>default value</a> is only
+ accessible using the <code title=dom-output-defaultValue><a href=#dom-output-defaultvalue>defaultValue</a></code> IDL
+ attribute.</p>
+
+ <p>Whenever the element's descendants are changed in any way, if the
+ <a href=#concept-output-mode title=concept-output-mode>value mode flag</a> is in mode
+ <i title=concept-output-mode-default>default</i>, the element's
+ <a href=#concept-output-defaultvalue title=concept-output-defaultValue>default value</a> must
+ be set to the value of the element's <code><a href=#textcontent>textContent</a></code> IDL
+ attribute.</p>
+
+ <p>The <a href=#concept-form-reset-control title=concept-form-reset-control>reset
+ algorithm</a> for <code><a href=#the-output-element>output</a></code> elements is to set the
+ element's <a href=#concept-output-mode title=concept-output-mode>value mode flag</a>
+ to <i title=concept-output-mode-default>default</i> and then to
+ set the element's <code><a href=#textcontent>textContent</a></code> IDL attribute to the
+ value of the element's <a href=#concept-output-defaultvalue title=concept-output-defaultValue>default value</a> (thus
+ replacing the element's child nodes).</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">output</var> . <code title=dom-output-value><a href=#dom-output-value>value</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the element's current value.</p>
+
+ <p>Can be set, to change the value.</p>
+
+ </dd>
+
+ <dt><var title="">output</var> . <code title=dom-output-defaultValue><a href=#dom-output-defaultvalue>defaultValue</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the element's current default value.</p>
+
+ <p>Can be set, to change the default value.</p>
+
+ </dd>
+
+ <dt><var title="">output</var> . <code title=dom-output-type><a href=#dom-output-type>type</a></code></dt>
+
+ <dd>
+
+ <p>Returns the string "<code title="">output</code>".</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-output-value title=dom-output-value><code>value</code></dfn> IDL
+ attribute must act like the element's <code><a href=#textcontent>textContent</a></code> IDL
+ attribute, except that on setting, in addition, before the child
+ nodes are changed, the element's <a href=#concept-output-mode title=concept-output-mode>value mode flag</a> must be set to <i title=concept-output-mode-value>value</i>.</p>
+
+ <p>The <dfn id=dom-output-defaultvalue title=dom-output-defaultValue><code>defaultValue</code></dfn> IDL
+ attribute, on getting, must return the element's <a href=#concept-output-defaultvalue title=concept-output-defaultValue>default value</a>. On
+ setting, the attribute must set the element's <a href=#concept-output-defaultvalue title=concept-output-defaultValue>default value</a>, and, if
+ the element's <a href=#concept-output-mode title=concept-output-mode>value mode
+ flag</a> is in the mode <i title=concept-output-mode-default>default</i>, set the element's
+ <code><a href=#textcontent>textContent</a></code> IDL attribute as well.</p>
+
+ <p>The <dfn id=dom-output-type title=dom-output-type><code>type</code></dfn>
+ attribute must return the string "<code title="">output</code>".</p>
+
+ <p>The <dfn id=dom-output-htmlfor title=dom-output-htmlFor><code>htmlFor</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the <code title=attr-output-for><a href=#attr-output-for>for</a></code> content attribute.</p>
+
+ <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code>
+ attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
+ methods, are part of the <a href=#the-constraint-validation-api>constraint validation API</a>. The
+ <code title=dom-lfe-labels><a href=#dom-lfe-labels>labels</a></code> attribute provides a list
+ of the element's <code><a href=#the-label-element>label</a></code>s. The <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> and <code title=dom-fe-name><a href=#dom-fe-name>name</a></code> IDL attributes are part of the
+ element's forms API.</p>
+
+ <p><strong>Constraint validation</strong>: <code><a href=#the-output-element>output</a></code>
+ elements are always <a href=#barred-from-constraint-validation>barred from constraint
+ validation</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>A simple calculator could use <code><a href=#the-output-element>output</a></code> for its
+ display of calculated results:</p>
+
+ <pre>&lt;form onsubmit="return false" oninput="o.value = a.valueAsNumber + b.valueAsNumber"&gt;
+ &lt;input name=a type=number step=any&gt; +
+ &lt;input name=b type=number step=any&gt; =
+ &lt;output name=o&gt;&lt;/output&gt;
+&lt;/form&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-progress-element><span class=secno>4.10.16 </span>The <dfn><code>progress</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#category-label title=category-label>Labelable element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>, but there must be no <code><a href=#the-progress-element>progress</a></code> element descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-progress-value><a href=#attr-progress-value>value</a></code></dd>
+ <dd><code title=attr-progress-max><a href=#attr-progress-max>max</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlprogresselement>HTMLProgressElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute double <a href=#dom-progress-value title=dom-progress-value>value</a>;
+ attribute double <a href=#dom-progress-max title=dom-progress-max>max</a>;
+ readonly attribute double <a href=#dom-progress-position title=dom-progress-position>position</a>;
+ readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-progress-element>progress</a></code> element <a href=#represents>represents</a> the
+ completion progress of a task. The progress is either indeterminate,
+ indicating that progress is being made but that it is not clear how
+ much more work remains to be done before the task is complete (e.g.
+ because the task is waiting for a remote host to respond), or the
+ progress is a number in the range zero to a maximum, giving the
+ fraction of work that has so far been completed.</p>
+
+ <p>There are two attributes that determine the current task
+ completion represented by the element. The <dfn id=attr-progress-value title=attr-progress-value><code>value</code></dfn> attribute
+ specifies how much of the task has been completed, and the <dfn id=attr-progress-max title=attr-progress-max><code>max</code></dfn> attribute specifies
+ how much work the task requires in total. The units are arbitrary
+ and not specified.</p>
+
+ <p class=note>To make a determinate progress bar, add a <code title=attr-progress-value><a href=#attr-progress-value>value</a></code> attribute with the current
+ progress (either a number from 0.0 to 1.0, or, if the <code title=attr-progress-max><a href=#attr-progress-max>max</a></code> attribute is specified, a
+ number from 0 to the value of the <code title=attr-progress-max><a href=#attr-progress-max>max</a></code> attribute). To make an
+ indeterminate progress bar, remove the <code title=attr-progress-value><a href=#attr-progress-value>value</a></code> attribute.</p>
+
+ <p>Authors are encouraged to also include the current value and the
+ maximum value inline as text inside the element, so that the
+ progress is made available to users of legacy user agents.</p>
+
+ <div class=example>
+ <p>Here is a snippet of a Web application that shows the progress
+ of some automated task:</p>
+ <pre>&lt;section&gt;
+ &lt;h2&gt;Task Progress&lt;/h2&gt;
+ &lt;p&gt;Progress: &lt;progress id="p" max=100&gt;&lt;span&gt;0&lt;/span&gt;%&lt;/progress&gt;&lt;/p&gt;
+ &lt;script&gt;
+ var progressBar = document.getElementById('p');
+ function updateProgress(newValue) {
+ progressBar.value = newValue;
+ progressBar.getElementsByTagName('span')[0].textContent = newValue;
+ }
+ &lt;/script&gt;
+&lt;/section&gt;</pre>
+ <p>(The <code>updateProgress()</code> method in this example would
+ be called by some other code on the page to update the actual
+ progress bar as the task progressed.)</p>
+ </div>
+
+ <p>The <code title=attr-progress-value><a href=#attr-progress-value>value</a></code> and <code title=attr-progress-max><a href=#attr-progress-max>max</a></code> attributes, when present, must
+ have values that are <a href=#valid-floating-point-number title="valid floating point number">valid
+ floating point numbers</a>. The <code title=attr-progress-value><a href=#attr-progress-value>value</a></code> attribute, if present, must
+ have a value equal to or greater than zero, and less than or equal
+ to the value of the <code title=attr-progress-max><a href=#attr-progress-max>max</a></code>
+ attribute, if present, or 1.0, otherwise. The <code title=attr-progress-max><a href=#attr-progress-max>max</a></code> attribute, if present, must
+ have a value greater than zero.</p>
+
+ <p class=note>The <code><a href=#the-progress-element>progress</a></code> element is the wrong
+ element to use for something that is just a gauge, as opposed to
+ task progress. For instance, indicating disk space usage using
+ <code><a href=#the-progress-element>progress</a></code> would be inappropriate. Instead, the
+ <code><a href=#the-meter-element>meter</a></code> element is available for such use cases.</p>
+
+ <div class=impl>
+
+ <p><strong>User agent requirements</strong>: If the <code title=attr-progress-value><a href=#attr-progress-value>value</a></code> attribute is omitted, then
+ the progress bar is an indeterminate progress bar. Otherwise, it is
+ a determinate progress bar.</p>
+
+ <p>If the progress bar is a determinate progress bar and the element
+ has a <code title=attr-progress-max><a href=#attr-progress-max>max</a></code> attribute, the user
+ agent must parse the <code title=attr-progress-max><a href=#attr-progress-max>max</a></code>
+ attribute's value according to the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating
+ point number values</a>. If this does not result in an error, and
+ if the parsed value is greater than zero, then the <dfn id=concept-progress-maximum title=concept-progress-maximum>maximum value</dfn> of the progress
+ bar is that value. Otherwise, if the element has no <code title=attr-progress-max><a href=#attr-progress-max>max</a></code> attribute, or if it has one but
+ parsing it resulted in an error, or if the parsed value was less
+ than or equal to zero, then the <a href=#concept-progress-maximum title=concept-progress-maximum>maximum value</a> of the
+ progress bar is 1.0.</p>
+
+ <p>If the progress bar is a determinate progress bar, user agents
+ must parse the <code title=attr-progress-value><a href=#attr-progress-value>value</a></code>
+ attribute's value according to the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating
+ point number values</a>. If this does not result in an error, and
+ if the parsed value is less than the <a href=#concept-progress-maximum title=concept-progress-maximum>maximum value</a> and greater
+ than zero, then the <dfn id=concept-progress-value title=concept-progress-value>current
+ value</dfn> of the progress bar is that parsed value. Otherwise, if
+ the parsed value was greater than or equal to the <a href=#concept-progress-maximum title=concept-progress-maximum>maximum value</a>, then the
+ <a href=#concept-progress-value title=concept-progress-value>current value</a> of the
+ progress bar is the <a href=#concept-progress-maximum title=concept-progress-maximum>maximum
+ value</a> of the progress bar. Otherwise, if parsing the <code title=attr-progress-value><a href=#attr-progress-value>value</a></code> attribute's value resulted
+ in an error, or a number less than or equal to zero, then the <a href=#concept-progress-value title=concept-progress-value>current value</a> of the
+ progress bar is zero.</p>
+
+ <p><strong>UA requirements for showing the progress bar</strong>:
+ When representing a <code><a href=#the-progress-element>progress</a></code> element to the user, the
+ UA should indicate whether it is a determinate or indeterminate
+ progress bar, and in the former case, should indicate the relative
+ position of the <a href=#concept-progress-value title=concept-progress-value>current
+ value</a> relative to the <a href=#concept-progress-maximum title=concept-progress-maximum>maximum value</a>.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">progress</var> . <code title=dom-progress-position><a href=#dom-progress-position>position</a></code></dt>
+
+ <dd>
+
+ <p>For a determinate progress bar (one with known current and
+ maximum values), returns the result of dividing the current value
+ by the maximum value.</p>
+
+ <p>For an indeterminate progress bar, returns &minus;1.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>If the progress bar is an indeterminate progress bar, then the
+ <dfn id=dom-progress-position title=dom-progress-position><code>position</code></dfn> IDL
+ attribute must return &minus;1. Otherwise, it must return the
+ result of dividing the <a href=#concept-progress-value title=concept-progress-value>current value</a> by the <a href=#concept-progress-maximum title=concept-progress-maximum>maximum value</a>.</p>
+
+ <p>If the progress bar is an indeterminate progress bar, then the
+ <dfn id=dom-progress-value title=dom-progress-value><code>value</code></dfn> IDL
+ attribute, on getting, must return 0. Otherwise, it must return the
+ <a href=#concept-progress-value title=concept-progress-value>current value</a>. On
+ setting, the given value must be converted to the <a href=#best-representation-of-the-number-as-a-floating-point-number>best
+ representation of the number as a floating point number</a> and
+ then the <code title=dom-progress-value><a href=#dom-progress-value>value</a></code> content
+ attribute must be set to that string.</p>
+
+ <p class=note>Setting the <code title=dom-progress-value><a href=#dom-progress-value>value</a></code> IDL attribute to itself when
+ the corresponding content attribute is absent would change the
+ progress bar from an indeterminate progress bar to a determinate
+ progress bar with no progress.</p>
+
+ <p>The <dfn id=dom-progress-max title=dom-progress-max><code>max</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name, <a href=#limited-to-numbers-greater-than-zero>limited to numbers greater than zero</a>. The
+ default value for <code title=dom-progress-max><a href=#dom-progress-max>max</a></code> is
+ 1.0.</p>
+
+ <p>The <code title=dom-lfe-labels><a href=#dom-lfe-labels>labels</a></code> attribute provides
+ a list of the element's <code><a href=#the-label-element>label</a></code>s.</p>
+
+ </div>
+
+
+
+ <h4 id=the-meter-element><span class=secno>4.10.17 </span>The <dfn><code>meter</code></dfn> element</h4>
+ <!-- Keep this after <progress> and NOT close to <time> -->
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dd><a href=#category-label title=category-label>Labelable element</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>, but there must be no <code><a href=#the-meter-element>meter</a></code> element descendants.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-meter-value><a href=#attr-meter-value>value</a></code></dd>
+ <dd><code title=attr-meter-min><a href=#attr-meter-min>min</a></code></dd>
+ <dd><code title=attr-meter-max><a href=#attr-meter-max>max</a></code></dd>
+ <dd><code title=attr-meter-low><a href=#attr-meter-low>low</a></code></dd>
+ <dd><code title=attr-meter-high><a href=#attr-meter-high>high</a></code></dd>
+ <dd><code title=attr-meter-optimum><a href=#attr-meter-optimum>optimum</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlmeterelement>HTMLMeterElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute double <a href=#dom-meter-value title=dom-meter-value>value</a>;
+ attribute double <a href=#dom-meter-min title=dom-meter-min>min</a>;
+ attribute double <a href=#dom-meter-max title=dom-meter-max>max</a>;
+ attribute double <a href=#dom-meter-low title=dom-meter-low>low</a>;
+ attribute double <a href=#dom-meter-high title=dom-meter-high>high</a>;
+ attribute double <a href=#dom-meter-optimum title=dom-meter-optimum>optimum</a>;
+ readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-meter-element>meter</a></code> element <a href=#represents>represents</a> a scalar
+ measurement within a known range, or a fractional value; for example
+ disk usage, the relevance of a query result, or the fraction of a
+ voting population to have selected a particular candidate.</p>
+
+ <p>This is also known as a gauge.</p>
+
+ <p class=note>The <code><a href=#the-meter-element>meter</a></code> element should not be used to
+ indicate progress (as in a progress bar). For that role, HTML
+ provides a separate <code><a href=#the-progress-element>progress</a></code> element.</p>
+
+ <p class=note>The <code><a href=#the-meter-element>meter</a></code> element also does not
+ represent a scalar value of arbitrary range &mdash; for example, it
+ would be wrong to use this to report a weight, or height, unless
+ there is a known maximum value.</p>
+
+ <p>There are six attributes that determine the semantics of the
+ gauge represented by the element.</p>
+
+ <p>The <dfn id=attr-meter-min title=attr-meter-min><code>min</code></dfn> attribute
+ specifies the lower bound of the range, and the <dfn id=attr-meter-max title=attr-meter-max><code>max</code></dfn> attribute specifies
+ the upper bound. The <dfn id=attr-meter-value title=attr-meter-value><code>value</code></dfn> attribute
+ specifies the value to have the gauge indicate as the "measured"
+ value.</p>
+
+ <p>The other three attributes can be used to segment the gauge's
+ range into "low", "medium", and "high" parts, and to indicate which
+ part of the gauge is the "optimum" part. The <dfn id=attr-meter-low title=attr-meter-low><code>low</code></dfn> attribute specifies
+ the range that is considered to be the "low" part, and the <dfn id=attr-meter-high title=attr-meter-high><code>high</code></dfn> attribute specifies
+ the range that is considered to be the "high" part. The <dfn id=attr-meter-optimum title=attr-meter-optimum><code>optimum</code></dfn> attribute
+ gives the position that is "optimum"; if that is higher than the
+ "high" value then this indicates that the higher the value, the
+ better; if it's lower than the "low" mark then it indicates that
+ lower values are better, and naturally if it is in between then it
+ indicates that neither high nor low values are good.</p>
+
+ <p><span class=impl><strong>Authoring
+ requirements</strong>:</span> The <code title=attr-meter-value><a href=#attr-meter-value>value</a></code> attribute must be
+ specified. The <code title=attr-meter-value><a href=#attr-meter-value>value</a></code>, <code title=attr-meter-min><a href=#attr-meter-min>min</a></code>, <code title=attr-meter-low><a href=#attr-meter-low>low</a></code>, <code title=attr-meter-high><a href=#attr-meter-high>high</a></code>, <code title=attr-meter-max><a href=#attr-meter-max>max</a></code>, and <code title=attr-meter-optimum><a href=#attr-meter-optimum>optimum</a></code> attributes, when present,
+ must have values that are <a href=#valid-floating-point-number title="valid floating point
+ number">valid floating point numbers</a>.</p>
+
+ <p>In addition, the attributes' values are further constrained:</p>
+
+ <p>Let <var title="">value</var> be the <code title=attr-meter-value><a href=#attr-meter-value>value</a></code> attribute's number.</p>
+
+ <p>If the <code title=attr-meter-min><a href=#attr-meter-min>min</a></code> attribute
+ attribute is specified, then let <var title="">minimum</var> be that
+ attribute's value; otherwise, let it be zero.</p>
+
+ <p>If the <code title=attr-meter-max><a href=#attr-meter-max>max</a></code> attribute
+ attribute is specified, then let <var title="">maximum</var> be that
+ attribute's value; otherwise, let it be 1.0.</p>
+
+ <p>The following inequalities must hold, as applicable:</p>
+
+ <ul class=brief><li><var title="">minimum</var> &le; <var title="">value</var> &le; <var title="">maximum</var></li>
+ <li><var title="">minimum</var> &le; <code title=attr-meter-low><a href=#attr-meter-low>low</a></code> &le; <var title="">maximum</var> (if <code title=attr-meter-low><a href=#attr-meter-low>low</a></code> is specified)</li>
+ <li><var title="">minimum</var> &le; <code title=attr-meter-high><a href=#attr-meter-high>high</a></code> &le; <var title="">maximum</var> (if <code title=attr-meter-high><a href=#attr-meter-high>high</a></code> is specified)</li>
+ <li><var title="">minimum</var> &le; <code title=attr-meter-optimum><a href=#attr-meter-optimum>optimum</a></code> &le; <var title="">maximum</var> (if <code title=attr-meter-optimum><a href=#attr-meter-optimum>optimum</a></code> is specified)</li>
+ <li><code title=attr-meter-low><a href=#attr-meter-low>low</a></code> &le; <code title=attr-meter-high><a href=#attr-meter-high>high</a></code> (if both <code title=attr-meter-low><a href=#attr-meter-low>low</a></code> and <code title=attr-meter-high><a href=#attr-meter-high>high</a></code> are specified)</li>
+ </ul><p class=note>If no minimum or maximum is specified, then the
+ range is assumed to be 0..1, and the value thus has to be within
+ that range.</p>
+
+ <p>Authors are encouraged to include a textual representation of the
+ gauge's state in the element's contents, for users of user agents
+ that do not support the <code><a href=#the-meter-element>meter</a></code> element.</p>
+
+ <div class=example>
+
+ <p>The following examples show three gauges that would all be
+ three-quarters full:</p>
+
+ <pre>Storage space usage: &lt;meter value=6 max=8&gt;6 blocks used (out of 8 total)&lt;/meter&gt;
+Voter turnout: &lt;meter value=0.75&gt;&lt;img alt="75%" src="graph75.png"&gt;&lt;/meter&gt;
+Tickets sold: &lt;meter min="0" max="100" value="75"&gt;&lt;/meter&gt;</pre>
+
+ <p>The following example is incorrect use of the element, because
+ it doesn't give a range (and since the default maximum is 1, both
+ of the gauges would end up looking maxed out):</p>
+
+ <pre class=bad>&lt;p&gt;The grapefruit pie had a radius of &lt;meter value=12&gt;12cm&lt;/meter&gt;
+and a height of &lt;meter value=2&gt;2cm&lt;/meter&gt;.&lt;/p&gt; &lt;!-- <strong>BAD!</strong> --&gt;</pre>
+
+ <p>Instead, one would either not include the meter element, or use
+ the meter element with a defined range to give the dimensions in
+ context compared to other pies:</p>
+
+ <pre>&lt;p&gt;The grapefruit pie had a radius of 12cm and a height of
+2cm.&lt;/p&gt;
+&lt;dl&gt;
+ &lt;dt&gt;Radius: &lt;dd&gt; &lt;meter min=0 max=20 value=12&gt;12cm&lt;/meter&gt;
+ &lt;dt&gt;Height: &lt;dd&gt; &lt;meter min=0 max=10 value=2&gt;2cm&lt;/meter&gt;
+&lt;/dl&gt;</pre>
+
+ </div>
+
+ <p>There is no explicit way to specify units in the
+ <code><a href=#the-meter-element>meter</a></code> element, but the units may be specified in the
+ <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute in free-form text.</p>
+
+ <div class=example>
+
+ <p>The example above could be extended to mention the units:</p>
+
+ <pre>&lt;dl&gt;
+ &lt;dt&gt;Radius: &lt;dd&gt; &lt;meter min=0 max=20 value=12 title="centimeters"&gt;12cm&lt;/meter&gt;
+ &lt;dt&gt;Height: &lt;dd&gt; &lt;meter min=0 max=10 value=2 title="centimeters"&gt;2cm&lt;/meter&gt;
+&lt;/dl&gt;</pre>
+
+ </div>
+
+ <div class=impl>
+
+ <p><strong>User agent requirements</strong>: User agents must parse
+ the <code title=attr-meter-min><a href=#attr-meter-min>min</a></code>, <code title=attr-meter-max><a href=#attr-meter-max>max</a></code>, <code title=attr-meter-value><a href=#attr-meter-value>value</a></code>, <code title=attr-meter-low><a href=#attr-meter-low>low</a></code>, <code title=attr-meter-high><a href=#attr-meter-high>high</a></code>, and <code title=attr-meter-optimum><a href=#attr-meter-optimum>optimum</a></code> attributes using the
+ <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating point number values</a>.</p>
+
+ <p>User agents must then use all these numbers to obtain values for
+ six points on the gauge, as follows. (The order in which these are
+ evaluated is important, as some of the values refer to earlier
+ ones.)</p>
+
+ <dl><dt>The <dfn id=concept-meter-minimum title=concept-meter-minimum>minimum value</dfn></dt>
+
+ <dd>
+ <p>If the <code title=attr-meter-min><a href=#attr-meter-min>min</a></code> attribute is
+ specified and a value could be parsed out of it, then the minimum
+ value is that value. Otherwise, the minimum value is zero.</p>
+ </dd>
+
+ <dt>The <dfn id=concept-meter-maximum title=concept-meter-maximum>maximum value</dfn></dt>
+
+ <dd>
+
+ <p>If the <code title=attr-meter-max><a href=#attr-meter-max>max</a></code> attribute is
+ specified and a value could be parsed out of it, then the
+ candidate maximum value is that value. Otherwise, the candidate
+ maximum value is 1.0.</p>
+
+ <p>If the candidate maximum value is greater than or equal to the
+ minimum value, then the maximum value is the candidate maximum
+ value. Otherwise, the maximum value is the same as the minimum
+ value.</p>
+
+ </dd>
+
+ <dt>The <dfn id=concept-meter-actual title=concept-meter-actual>actual value</dfn></dt>
+
+ <dd>
+
+ <p>If the <code title=attr-meter-value><a href=#attr-meter-value>value</a></code> attribute is
+ specified and a value could be parsed out of it, then that value
+ is the candidate actual value. Otherwise, the candidate actual
+ value is zero.</p>
+
+ <p>If the candidate actual value is less than the minimum value,
+ then the actual value is the minimum value.</p>
+
+ <p>Otherwise, if the candidate actual value is greater than the
+ maximum value, then the actual value is the maximum value.</p>
+
+ <p>Otherwise, the actual value is the candidate actual value.</p>
+
+ </dd>
+
+ <dt>The <dfn id=concept-meter-low title=concept-meter-low>low boundary</dfn></dt>
+
+ <dd>
+
+ <p>If the <code title=attr-meter-low><a href=#attr-meter-low>low</a></code> attribute is
+ specified and a value could be parsed out of it, then the
+ candidate low boundary is that value. Otherwise, the candidate low
+ boundary is the same as the minimum value.</p>
+
+ <p>If the candidate low boundary is less than the minimum value,
+ then the low boundary is the minimum value.</p>
+
+ <p>Otherwise, if the candidate low boundary is greater than the
+ maximum value, then the low boundary is the maximum value.</p>
+
+ <p>Otherwise, the low boundary is the candidate low boundary.</p>
+
+ </dd>
+
+ <dt>The <dfn id=concept-meter-high title=concept-meter-high>high boundary</dfn></dt>
+
+ <dd>
+
+ <p>If the <code title=attr-meter-high><a href=#attr-meter-high>high</a></code> attribute is
+ specified and a value could be parsed out of it, then the
+ candidate high boundary is that value. Otherwise, the candidate
+ high boundary is the same as the maximum value.</p>
+
+ <p>If the candidate high boundary is less than the low boundary,
+ then the high boundary is the low boundary.</p>
+
+ <p>Otherwise, if the candidate high boundary is greater than the
+ maximum value, then the high boundary is the maximum value.</p>
+
+ <p>Otherwise, the high boundary is the candidate high boundary.</p>
+
+ </dd>
+
+ <dt>The <dfn id=concept-meter-optimum title=concept-meter-optimum>optimum point</dfn></dt>
+
+ <dd>
+
+ <p>If the <code title=attr-meter-optimum><a href=#attr-meter-optimum>optimum</a></code>
+ attribute is specified and a value could be parsed out of it, then
+ the candidate optimum point is that value. Otherwise, the
+ candidate optimum point is the midpoint between the minimum value
+ and the maximum value.</p>
+
+ <p>If the candidate optimum point is less than the minimum value,
+ then the optimum point is the minimum value.</p>
+
+ <p>Otherwise, if the candidate optimum point is greater than the
+ maximum value, then the optimum point is the maximum value.</p>
+
+ <p>Otherwise, the optimum point is the candidate optimum
+ point.</p>
+
+ </dd>
+
+ </dl><p>All of which will result in the following inequalities all being
+ true:</p>
+
+ <ul class=brief><li>minimum value &le; actual value &le; maximum value</li>
+ <li>minimum value &le; low boundary &le; high boundary &le; maximum value</li>
+ <li>minimum value &le; optimum point &le; maximum value</li>
+ </ul><p><strong>UA requirements for regions of the gauge</strong>: If the
+ optimum point is equal to the low boundary or the high boundary, or
+ anywhere in between them, then the region between the low and high
+ boundaries of the gauge must be treated as the optimum region, and
+ the low and high parts, if any, must be treated as suboptimal.
+ Otherwise, if the optimum point is less than the low boundary, then
+ the region between the minimum value and the low boundary must be
+ treated as the optimum region, the region from the low boundary up
+ to the high boundary must be treated as a suboptimal region, and the
+ remaining region must be treated as an even less good region.
+ Finally, if the optimum point is higher than the high boundary, then
+ the situation is reversed; the region between the high boundary and
+ the maximum value must be treated as the optimum region, the region
+ from the high boundary down to the low boundary must be treated as a
+ suboptimal region, and the remaining region must be treated as an
+ even less good region.</p>
+
+ <p><strong>UA requirements for showing the gauge</strong>: When
+ representing a <code><a href=#the-meter-element>meter</a></code> element to the user, the UA should
+ indicate the relative position of the actual value to the minimum
+ and maximum values, and the relationship between the actual value
+ and the three regions of the gauge.</p>
+
+ </div>
+
+ <div class=example>
+ <p>The following markup:</p>
+ <pre>&lt;h3&gt;Suggested groups&lt;/h3&gt;
+&lt;menu type="toolbar"&gt;
+ &lt;a href="?cmd=hsg" onclick="hideSuggestedGroups()"&gt;Hide suggested groups&lt;/a&gt;
+&lt;/menu&gt;
+&lt;ul&gt;
+ &lt;li&gt;
+ &lt;p&gt;&lt;a href="/group/comp.infosystems.www.authoring.stylesheets/view"&gt;comp.infosystems.www.authoring.stylesheets&lt;/a&gt; -
+ &lt;a href="/group/comp.infosystems.www.authoring.stylesheets/subscribe"&gt;join&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;Group description: &lt;strong&gt;Layout/presentation on the WWW.&lt;/strong&gt;&lt;/p&gt;
+ &lt;p&gt;<strong>&lt;meter value="0.5"&gt;Moderate activity,&lt;/meter&gt;</strong> Usenet, 618 subscribers&lt;/p&gt;
+ &lt;/li&gt;
+ &lt;li&gt;
+ &lt;p&gt;&lt;a href="/group/netscape.public.mozilla.xpinstall/view"&gt;netscape.public.mozilla.xpinstall&lt;/a&gt; -
+ &lt;a href="/group/netscape.public.mozilla.xpinstall/subscribe"&gt;join&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;Group description: &lt;strong&gt;Mozilla XPInstall discussion.&lt;/strong&gt;&lt;/p&gt;
+ &lt;p&gt;<strong>&lt;meter value="0.25"&gt;Low activity,&lt;/meter&gt;</strong> Usenet, 22 subscribers&lt;/p&gt;
+ &lt;/li&gt;
+ &lt;li&gt;
+ &lt;p&gt;&lt;a href="/group/mozilla.dev.general/view"&gt;mozilla.dev.general&lt;/a&gt; -
+ &lt;a href="/group/mozilla.dev.general/subscribe"&gt;join&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;<strong>&lt;meter value="0.25"&gt;Low activity,&lt;/meter&gt;</strong> Usenet, 66 subscribers&lt;/p&gt;
+ &lt;/li&gt;
+&lt;/ul&gt;</pre>
+ <p>Might be rendered as follows:</p>
+ <p><img alt="With the <meter> elements rendered as inline green bars of varying lengths." height=178 src=greenbox.png width=332></p>
+ </div>
+
+ <p>User agents <span class=impl>may</span> combine the value of
+ the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute and the other
+ attributes to provide context-sensitive help or inline text
+ detailing the actual values.</p>
+
+ <div class=example>
+ <p>For example, the following snippet:</p>
+ <pre>&lt;meter min=0 max=60 value=23.2 title=seconds&gt;&lt;/meter&gt;</pre>
+ <p>...might cause the user agent to display a gauge with a tooltip
+ saying "Value: 23.2 out of 60." on one line and "seconds" on a
+ second line.</p>
+ </div>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-meter-value title=dom-meter-value><code>value</code></dfn> IDL
+ attribute, on getting, must return the <a href=#concept-meter-actual title=concept-meter-actual>actual value</a>. On setting, the
+ given value must be converted to the <a href=#best-representation-of-the-number-as-a-floating-point-number>best representation of
+ the number as a floating point number</a> and then the <code title=dom-meter-value><a href=#dom-meter-value>value</a></code> content attribute must be set
+ to that string.</p>
+
+ <p>The <dfn id=dom-meter-min title=dom-meter-min><code>min</code></dfn> IDL
+ attribute, on getting, must return the <a href=#concept-meter-minimum title=concept-meter-minimum>minimum value</a>. On setting, the
+ given value must be converted to the <a href=#best-representation-of-the-number-as-a-floating-point-number>best representation of
+ the number as a floating point number</a> and then the <code title=dom-meter-min><a href=#dom-meter-min>min</a></code> content attribute must be set to
+ that string.</p>
+
+ <p>The <dfn id=dom-meter-max title=dom-meter-max><code>max</code></dfn> IDL
+ attribute, on getting, must return the <a href=#concept-meter-maximum title=concept-meter-maximum>maximum value</a>. On setting, the
+ given value must be converted to the <a href=#best-representation-of-the-number-as-a-floating-point-number>best representation of
+ the number as a floating point number</a> and then the <code title=dom-meter-max><a href=#dom-meter-max>max</a></code> content attribute must be set to
+ that string.</p>
+
+ <p>The <dfn id=dom-meter-low title=dom-meter-low><code>low</code></dfn> IDL
+ attribute, on getting, must return the <a href=#concept-meter-low title=concept-meter-low>low boundary</a>. On setting, the given
+ value must be converted to the <a href=#best-representation-of-the-number-as-a-floating-point-number>best representation of the
+ number as a floating point number</a> and then the <code title=dom-meter-low><a href=#dom-meter-low>low</a></code> content attribute must be set to
+ that string.</p>
+
+ <p>The <dfn id=dom-meter-high title=dom-meter-high><code>high</code></dfn> IDL
+ attribute, on getting, must return the <a href=#concept-meter-high title=concept-meter-high>high boundary</a>. On setting, the
+ given value must be converted to the <a href=#best-representation-of-the-number-as-a-floating-point-number>best representation of
+ the number as a floating point number</a> and then the <code title=dom-meter-high><a href=#dom-meter-high>high</a></code> content attribute must be set to
+ that string.</p>
+
+ <p>The <dfn id=dom-meter-optimum title=dom-meter-optimum><code>optimum</code></dfn> IDL
+ attribute, on getting, must return the <a href=#concept-meter-optimum title=concept-meter-optimum>optimum value</a>. On setting, the
+ given value must be converted to the <a href=#best-representation-of-the-number-as-a-floating-point-number>best representation of
+ the number as a floating point number</a> and then the <code title=dom-meter-optimum><a href=#dom-meter-optimum>optimum</a></code> content attribute must be
+ set to that string.</p>
+
+ <p>The <code title=dom-lfe-labels><a href=#dom-lfe-labels>labels</a></code> attribute provides
+ a list of the element's <code><a href=#the-label-element>label</a></code>s.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows how a gauge could fall back to
+ localized or pretty-printed text.</p>
+
+ <pre>&lt;p&gt;Disk usage: &lt;meter min=0 value=170261928 max=233257824&gt;170&thinsp;261&thinsp;928 bytes used
+out of 233&thinsp;257&thinsp;824 bytes available&lt;/meter&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+
+
+
+ <h4 id=association-of-controls-and-forms><span class=secno>4.10.18 </span>Association of controls and forms</h4>
+
+ <p>A <a href=#form-associated-element>form-associated element</a> can have a relationship
+ with a <code><a href=#the-form-element>form</a></code> element, which is called the element's
+ <dfn id=form-owner>form owner</dfn>. If a <a href=#form-associated-element>form-associated element</a> is
+ not associated with a <code><a href=#the-form-element>form</a></code> element, its <a href=#form-owner>form
+ owner</a> is said to be null.</p>
+
+ <p>A <a href=#form-associated-element>form-associated element</a> is, by default, associated
+ with its <span class=impl>nearest</span> ancestor
+ <code><a href=#the-form-element>form</a></code> element<span class=impl> (as described
+ below)</span>, but may have a <dfn id=attr-fae-form title=attr-fae-form><code>form</code></dfn> attribute specified to
+ override this.</p>
+
+ <p class=note>This feature allows authors to work around the lack
+ of support for nested <code><a href=#the-form-element>form</a></code> elements.</p>
+
+ <p>If a <a href=#form-associated-element>form-associated element</a> has a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute specified, then that
+ attribute's value must be the <a href=#concept-id title=concept-id>ID</a> of a <code><a href=#the-form-element>form</a></code> element in
+ the element's owner <code><a href=#document>Document</a></code>.</p>
+
+ <div class=impl>
+
+ <p class=note>The rules in this section are complicated by the
+ fact that although conforming documents will never contain nested
+ <code><a href=#the-form-element>form</a></code> elements, it is quite possible (e.g. using a
+ script that performs DOM manipulation) to generate documents that
+ have such nested elements. They are also complicated by rules in the
+ HTML parser that, for historical reasons, can result in a
+ <a href=#form-associated-element>form-associated element</a> being associated with a
+ <code><a href=#the-form-element>form</a></code> element that is not its ancestor.</p>
+
+ <p>When a <a href=#form-associated-element>form-associated element</a> is created, its
+ <a href=#form-owner>form owner</a> must be initialized to null (no owner).</p>
+
+ <p>When a <a href=#form-associated-element>form-associated element</a> is to be <dfn id=concept-form-association title=concept-form-association>associated</dfn> with a form, its
+ <a href=#form-owner>form owner</a> must be set to that form.</p>
+
+ <p>When a <a href=#form-associated-element>form-associated element</a>'s ancestor chain
+ changes, e.g. because it or one of its ancestors was <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted</a> or <a href=#remove-an-element-from-a-document title="remove an element from a document">removed</a> from a
+ <code><a href=#document>Document</a></code>, then the user agent must <a href=#reset-the-form-owner>reset the form
+ owner</a> of that element. <span class=note>The <a href=#html-parser>HTML
+ parser</a> overrides this requirement when inserting form
+ controls.</span></p>
+
+ <p>When a <a href=#form-associated-element>form-associated element</a>'s <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is set, changed, or
+ removed, then the user agent must <a href=#reset-the-form-owner>reset the form owner</a>
+ of that element.</p>
+
+ <p>When a <a href=#form-associated-element>form-associated element</a> has a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute and the <a href=#concept-id title=concept-id>ID</a> of any of the
+ elements in the <code><a href=#document>Document</a></code> changes, then the user agent
+ must <a href=#reset-the-form-owner>reset the form owner</a> of that <a href=#form-associated-element>form-associated
+ element</a>.</p>
+
+ <p>When a <a href=#form-associated-element>form-associated element</a> has a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute and an element with an
+ <a href=#concept-id title=concept-id>ID</a> is <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted
+ into</a> or <a href=#remove-an-element-from-a-document title="remove an element from a
+ document">removed from</a> the <code><a href=#document>Document</a></code>, then the
+ user agent must <a href=#reset-the-form-owner>reset the form owner</a> of that
+ <a href=#form-associated-element>form-associated element</a>.</p>
+
+ <p>When the user agent is to <dfn id=reset-the-form-owner>reset the form owner</dfn> of a
+ <a href=#form-associated-element>form-associated element</a>, it must run the following
+ steps:</p>
+
+ <ol><li><p>If the element's <a href=#form-owner>form owner</a> is not null, and
+ the element's <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> content
+ attribute is not present, and the element's <a href=#form-owner>form owner</a>
+ is its nearest <code><a href=#the-form-element>form</a></code> element ancestor after the change
+ to the ancestor chain, then do nothing, and abort these
+ steps.</li>
+
+ <li><p>Let the element's <a href=#form-owner>form owner</a> be null.</li>
+
+ <li>
+
+ <p>If the element has a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code>
+ content attribute, then run these substeps:</p>
+
+ <ol><!-- note that this ignores the name="" attribute and is
+ unaffected by quirks mode (it's always case sensitive) --><li><p>If the first element <a href=#in-a-document title="in a Document">in the
+ <code>Document</code></a> to have an <a href=#concept-id title=concept-id>ID</a> that is <a href=#case-sensitive title=case-sensitive>case-sensitively</a> equal to the
+ element's <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> content
+ attribute's value is a <code><a href=#the-form-element>form</a></code> element, then <a href=#concept-form-association title=concept-form-association>associate</a> the
+ <a href=#form-associated-element>form-associated element</a> with that <code><a href=#the-form-element>form</a></code>
+ element.</li>
+
+ <li><p>Abort the "reset the form owner" steps.</li>
+
+ </ol></li>
+
+ <li><p>Otherwise, if the <a href=#form-associated-element>form-associated element</a> in
+ question has an ancestor <code><a href=#the-form-element>form</a></code> element, then <a href=#concept-form-association title=concept-form-association>associate</a> the
+ <a href=#form-associated-element>form-associated element</a> with the nearest such ancestor
+ <code><a href=#the-form-element>form</a></code> element.</li>
+
+ <li><p>Otherwise, the element is left unassociated.</li>
+
+ </ol><div class=example>
+
+ <p>In the following non-conforming snippet:</p>
+
+ <pre class=bad>...
+ &lt;form id="a"&gt;
+ &lt;div id="b"&gt;&lt;/div&gt;
+ &lt;/form&gt;
+ &lt;script&gt;
+ document.getElementById('b').innerHTML =
+ '&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;form id="c"&gt;&lt;input id="d"&gt;&lt;/table&gt;' +
+ '&lt;input id="e"&gt;';
+ &lt;/script&gt;
+...</pre>
+
+ <p>The <a href=#form-owner>form owner</a> of "d" would be the inner nested
+ form "c", while the <a href=#form-owner>form owner</a> of "e" would be the
+ outer form "a".</p>
+
+ <p>This happens as follows: First, the "e" node gets associated
+ with "c" in the <a href=#html-parser>HTML parser</a>. Then, the <code title=dom-innerHTML>innerHTML</code> algorithm moves the nodes
+ from the temporary document to the "b" element. At this point, the
+ nodes see their ancestor chain change, and thus all the "magic"
+ associations done by the parser are reset to normal ancestor
+ associations.</p>
+
+ <p>This example is a non-conforming document, though, as it is a
+ violation of the content models to nest <code><a href=#the-form-element>form</a></code>
+ elements.</p>
+
+ </div>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">element</var> . <code title=dom-fae-form><a href=#dom-fae-form>form</a></code></dt>
+
+ <dd>
+
+ <p>Returns the element's <a href=#form-owner>form owner</a>.</p>
+
+ <p>Returns null if there isn't one.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p><a href=#form-associated-element title="form-associated element">Form-associated
+ elements</a> have a <dfn id=dom-fae-form title=dom-fae-form><code>form</code></dfn> IDL attribute, which,
+ on getting, must return the element's <a href=#form-owner>form owner</a>, or
+ null if there isn't one.</p>
+
+ </div>
+
+
+
+ <h4 id=attributes-common-to-form-controls><span class=secno>4.10.19 </span><dfn>Attributes common to form controls</dfn></h4>
+
+ <h5 id=naming-form-controls><span class=secno>4.10.19.1 </span>Naming form controls</h5>
+
+ <p>The <dfn id=attr-fe-name title=attr-fe-name><code>name</code></dfn> content
+ attribute gives the name of the form control, as used in <a href=#form-submission>form
+ submission</a> and in the <code><a href=#the-form-element>form</a></code> element's <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> object. If the attribute
+ is specified, its value must not be the empty string.</p>
+
+ <p>Any non-empty value for <code title=attr-form-name><a href=#attr-form-name>name</a></code>
+ is allowed, but the names "<code title=attr-fe-name-charset><a href=#attr-fe-name-charset>_charset_</a></code>" and "<code title=attr-fe-name-isindex><a href=#attr-fe-name-isindex>isindex</a></code>" are special:</p>
+
+ <dl><dt><dfn id=attr-fe-name-isindex title=attr-fe-name-isindex><code>isindex</code></dfn></dt>
+ <dd>
+ <p>This value, if used as the name of a <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> control that is the first
+ control in a form that is submitted using the <code title=attr-fs-enctype-urlencoded><a href=#attr-fs-enctype-urlencoded>application/x-www-form-urlencoded</a></code>
+ mechanism, causes the submission to only include the value of this
+ control, with no name.</p>
+ </dd>
+
+ <dt><dfn id=attr-fe-name-charset title=attr-fe-name-charset><code>_charset_</code></dfn></dt>
+ <dd>
+ <p>This value, if used as the name of a <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> control with no <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, is automatically
+ given a value during submission consisting of the submission
+ character encoding.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-fe-name title=dom-fe-name><code>name</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> content attribute.</p>
+
+ </div>
+
+
+ <h5 id=enabling-and-disabling-form-controls><span class=secno>4.10.19.2 </span>Enabling and disabling form controls</h5>
+
+ <p>The <dfn id=attr-fe-disabled title=attr-fe-disabled><code>disabled</code></dfn>
+ content attribute is a <a href=#boolean-attribute>boolean attribute</a>.</p>
+
+ <p>A form control is <dfn id=concept-fe-disabled title=concept-fe-disabled>disabled</dfn>
+ if its <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is
+ set, or if it is a descendant of a <code><a href=#the-fieldset-element>fieldset</a></code> element
+ whose <code title=attr-fieldset-disabled><a href=#attr-fieldset-disabled>disabled</a></code> attribute
+ is set and is <em>not</em> a descendant of that
+ <code><a href=#the-fieldset-element>fieldset</a></code> element's first <code><a href=#the-legend-element>legend</a></code> element
+ child, if any.</p>
+
+ <div class=impl>
+
+ <p>A form control that is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a> must prevent any <code title=event-click><a href=#event-click>click</a></code> events that are <a href=#queue-a-task title="queue
+ a task">queued</a> on the <a href=#user-interaction-task-source>user interaction task
+ source</a> from being dispatched on the element.</p>
+
+ <p><strong>Constraint validation</strong>: If an element is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, it is <a href=#barred-from-constraint-validation>barred from
+ constraint validation</a>.</p>
+
+ <p>The <dfn id=dom-fe-disabled title=dom-fe-disabled><code>disabled</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> content attribute.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h5 id="a-form-control's-value"><span class=secno>4.10.19.3 </span>A form control's value</h5>
+
+ <p>Form controls have a <dfn id=concept-fe-value title=concept-fe-value>value</dfn>
+ and a <dfn id=concept-fe-checked title=concept-fe-checked>checkedness</dfn>. (The latter
+ is only used by <code><a href=#the-input-element>input</a></code> elements.) These are used to
+ describe how the user interacts with the control.</p>
+
+ <p>To define the behaviour of constraint validation in the face of
+ the <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute,
+ <code><a href=#the-input-element>input</a></code> elements can also have separately defined <dfn id=concept-fe-values title=concept-fe-values>value<em>s</em></dfn>.</p>
+
+ </div>
+
+
+ <h5 id=autofocusing-a-form-control><span class=secno>4.10.19.4 </span>Autofocusing a form control</h5>
+
+ <!-- v2: Apply this to contentEditable elements -->
+
+ <p>The <dfn id=attr-fe-autofocus title=attr-fe-autofocus><code>autofocus</code></dfn>
+ content attribute allows the author to indicate that a control is to
+ be focused as soon as the page is loaded, allowing the user to just
+ start typing without having to manually focus the main control.</p>
+
+ <p>The <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code> attribute is
+ a <a href=#boolean-attribute>boolean attribute</a>.</p>
+
+ <p>There must not be more than one element in the document with the
+ <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code> attribute
+ specified.</p>
+
+ <div class=impl>
+
+ <p>When an element with the <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code> attribute specified is
+ <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted into a
+ document</a>, user agents should run the following steps:</p>
+
+ <ol><li><p>Let <var title="">target</var> be the element's
+ <code><a href=#document>Document</a></code>.</li>
+
+ <li><p>If <var title="">target</var> has no <a href=#browsing-context>browsing
+ context</a>, abort these steps.</li>
+
+ <li><p>If <var title="">target</var>'s <a href=#browsing-context>browsing
+ context</a> has no <a href=#top-level-browsing-context>top-level browsing context</a> (e.g.
+ it is a <a href=#nested-browsing-context>nested browsing context</a> with no <a href=#parent-browsing-context>parent
+ browsing context</a>), abort these steps.</li>
+
+ <li><p>If <var title="">target</var>'s <a href=#browsing-context>browsing
+ context</a> had the <a href=#sandboxed-automatic-features-browsing-context-flag>sandboxed automatic features browsing
+ context flag</a> set when <var title="">target</var> was
+ created, abort these steps.</li>
+
+ <li><p>If <var title="">target</var>'s <a href=#origin>origin</a> is not
+ the <a href=#same-origin title="same origin">same</a> as the
+ <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> of the currently
+ focused element in <var title="">target</var>'s <a href=#top-level-browsing-context>top-level
+ browsing context</a>, abort these steps.</li>
+
+ <li><p>If <var title="">target</var>'s <a href=#origin>origin</a> is not
+ the <a href=#same-origin title="same origin">same</a> as the
+ <a href=#origin>origin</a> of the <a href=#active-document>active document</a> of <var title="">target</var>'s <a href=#top-level-browsing-context>top-level browsing context</a>,
+ abort these steps.</li>
+
+ <li><p>If the user agent has already reached the last step of this
+ list of steps in response to an element being <a href=#insert-an-element-into-a-document title="insert
+ an element into a document">inserted</a> into a
+ <code><a href=#document>Document</a></code> whose <a href=#top-level-browsing-context>top-level browsing
+ context</a>'s <a href=#active-document>active document</a> is the same as <var title="">target</var>'s <a href=#top-level-browsing-context>top-level browsing context</a>'s
+ <a href=#active-document>active document</a>, abort these steps.</li>
+
+ <li><p>If the user has indicated (for example, by starting to type
+ in a form control) that he does not wish focus to be changed, then
+ optionally abort these steps.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> that checks to see if the element
+ is <a href=#focusable>focusable</a>, and if so, runs the <a href=#focusing-steps>focusing
+ steps</a> for that element. User agents may also change the
+ scrolling position of the document, or perform some other action
+ that brings the element to the user's attention. The <a href=#task-source>task
+ source</a> for this task is the <a href=#dom-manipulation-task-source>DOM manipulation task
+ source</a>.</li>
+
+ </ol><p class=note>Focusing the control does not imply that the user
+ agent must focus the browser window if it has lost focus.</p>
+
+ <p>The <dfn id=dom-fe-autofocus title=dom-fe-autofocus><code>autofocus</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ </div>
+
+ <div class=example>
+ <p>In the following snippet, the text control would be focused when
+ the document was loaded.</p>
+ <pre>&lt;input maxlength="256" name="q" value="" autofocus&gt;
+&lt;input type="submit" value="Search"&gt;</pre>
+ </div>
+
+
+ <h5 id=limiting-user-input-length><span class=secno>4.10.19.5 </span>Limiting user input length</h5>
+
+ <p>A <dfn id=attr-fe-maxlength title=attr-fe-maxlength>form control <code title="">maxlength</code> attribute</dfn>, controlled by a <var title="">dirty value flag</var>, declares a limit on the number of
+ characters a user can input.</p>
+
+ <p>If an element has its <a href=#attr-fe-maxlength title=attr-fe-maxlength>form
+ control <code title="">maxlength</code> attribute</a> specified,
+ the attribute's value must be a <a href=#valid-non-negative-integer>valid non-negative
+ integer</a>. If the attribute is specified and applying the
+ <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a> to its value
+ results in a number, then that number is the element's <dfn id=maximum-allowed-value-length>maximum
+ allowed value length</dfn>. If the attribute is omitted or parsing
+ its value results in an error, then there is no <a href=#maximum-allowed-value-length>maximum
+ allowed value length</a>.</p>
+
+ <div class=impl>
+
+ <p><strong>Constraint validation</strong>: If an element has a
+ <a href=#maximum-allowed-value-length>maximum allowed value length</a>, its <var title="">dirty
+ value flag</var> is true, its <a href=#concept-fe-value title=concept-fe-value>value</a> was last changed by a user
+ edit (as opposed to a change made by a script), and the
+ <a href=#code-point-length>code-point length</a> of the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is greater than the element's
+ <a href=#maximum-allowed-value-length>maximum allowed value length</a>, then the element is
+ <a href=#suffering-from-being-too-long>suffering from being too long</a>.</p>
+
+ <p>User agents may prevent the user from causing the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to be set to a value whose
+ <a href=#code-point-length>code-point length</a> is greater than the element's
+ <a href=#maximum-allowed-value-length>maximum allowed value length</a>.</p>
+
+ </div>
+
+
+
+ <h5 id=form-submission-0><span class=secno>4.10.19.6 </span>Form submission</h5>
+
+ <p><dfn id=attributes-for-form-submission>Attributes for form submission</dfn> can be specified both
+ on <code><a href=#the-form-element>form</a></code> elements and on <a href=#concept-submit-button title=concept-submit-button>submit buttons</a> (elements that
+ represent buttons that submit forms, e.g. an <code><a href=#the-input-element>input</a></code>
+ element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is
+ in the <a href=#submit-button-state title=attr-input-type-submit>Submit Button</a>
+ state).
+
+ <p>The <a href=#attributes-for-form-submission>attributes for form submission</a> that may be
+ specified on <code><a href=#the-form-element>form</a></code> elements are <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code>.</p>
+
+ <p>The corresponding <a href=#attributes-for-form-submission>attributes for form submission</a>
+ that may be specified on <a href=#concept-submit-button title=concept-submit-button>submit
+ buttons</a> are <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>, <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>, <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>, <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>, and <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>. When omitted, they
+ default to the values given on the corresponding attributes on the
+ <code><a href=#the-form-element>form</a></code> element.</p>
+
+ <hr><p>The <dfn id=attr-fs-action title=attr-fs-action><code>action</code></dfn> and
+ <dfn id=attr-fs-formaction title=attr-fs-formaction><code>formaction</code></dfn>
+ content attributes, if specified, must have a value that is a
+ <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
+ spaces</a>.</p>
+
+ <p>The <dfn id=concept-fs-action title=concept-fs-action>action</dfn> of an element is
+ the value of the element's <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code> attribute, if the
+ element is a <a href=#concept-submit-button title=concept-submit-button>submit
+ button</a> and has such an attribute, or the value of its
+ <a href=#form-owner>form owner</a>'s <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>
+ attribute, if <em>it</em> has one, or else the empty string.</p>
+
+ <hr><p>The <dfn id=attr-fs-method title=attr-fs-method><code>method</code></dfn> and
+ <dfn id=attr-fs-formmethod title=attr-fs-formmethod><code>formmethod</code></dfn>
+ content attributes are <a href=#enumerated-attribute title="enumerated attribute">enumerated
+ attributes</a> with the following keywords and states:</p>
+
+ <ul><li>The keyword <dfn id=attr-fs-method-get-keyword title=attr-fs-method-GET-keyword><code>get</code></dfn>, mapping
+ to the state <dfn id=attr-fs-method-get title=attr-fs-method-GET>GET</dfn>, indicating
+ the HTTP GET method.</li>
+
+ <li>The keyword <dfn id=attr-fs-method-post-keyword title=attr-fs-method-POST-keyword><code>post</code></dfn>, mapping
+ to the state <dfn id=attr-fs-method-post title=attr-fs-method-POST>POST</dfn>, indicating
+ the HTTP POST method.</li>
+
+ </ul><p>The <i>missing value default</i> for these attributes is the
+ <a href=#attr-fs-method-get title=attr-fs-method-GET>GET</a> state.</p>
+
+ <p>The <dfn id=concept-fs-method title=concept-fs-method>method</dfn> of an element is
+ one of those states. If the element is a <a href=#concept-submit-button title=concept-submit-button>submit button</a> and has a <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code> attribute, then the
+ element's <a href=#concept-fs-method title=concept-fs-method>method</a> is that
+ attribute's state; otherwise, it is the <a href=#form-owner>form owner</a>'s
+ <code title=attr-fs-method><a href=#attr-fs-method>method</a></code> attribute's state.</p>
+
+ <hr><p>The <dfn id=attr-fs-enctype title=attr-fs-enctype><code>enctype</code></dfn> and
+ <dfn id=attr-fs-formenctype title=attr-fs-formenctype><code>formenctype</code></dfn>
+ content attributes are <a href=#enumerated-attribute title="enumerated attribute">enumerated
+ attributes</a> with the following keywords and states:</p>
+
+ <ul><li>The "<dfn id=attr-fs-enctype-urlencoded title=attr-fs-enctype-urlencoded><code>application/x-www-form-urlencoded</code></dfn>" keyword and corresponding state.</li>
+ <li>The "<dfn id=attr-fs-enctype-formdata title=attr-fs-enctype-formdata><code>multipart/form-data</code></dfn>" keyword and corresponding state.</li>
+ <li>The "<dfn id=attr-fs-enctype-text title=attr-fs-enctype-text><code>text/plain</code></dfn>" keyword and corresponding state.</li>
+ </ul><p>The <i>missing value default</i> for these attributes is the
+ <code title=attr-fs-enctype-urlencoded><a href=#attr-fs-enctype-urlencoded>application/x-www-form-urlencoded</a></code>
+ state.</p>
+
+ <p>The <dfn id=concept-fs-enctype title=concept-fs-enctype>enctype</dfn> of an element
+ is one of those three states. If the element is a <a href=#concept-submit-button title=concept-submit-button>submit button</a> and has a <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code> attribute, then the
+ element's <a href=#concept-fs-enctype title=concept-fs-enctype>enctype</a> is that
+ attribute's state; otherwise, it is the <a href=#form-owner>form owner</a>'s
+ <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code> attribute's state.</p>
+
+ <hr><p>The <dfn id=attr-fs-target title=attr-fs-target><code>target</code></dfn> and
+ <dfn id=attr-fs-formtarget title=attr-fs-formtarget><code>formtarget</code></dfn>
+ content attributes, if specified, must have values that are <a href=#valid-browsing-context-name-or-keyword title="valid browsing context name or keyword">valid browsing
+ context names or keywords</a>.</p>
+
+ <p>The <dfn id=concept-fs-target title=concept-fs-target>target</dfn> of an element is
+ the value of the element's <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code> attribute, if the
+ element is a <a href=#concept-submit-button title=concept-submit-button>submit
+ button</a> and has such an attribute; or the value of its
+ <a href=#form-owner>form owner</a>'s <code title=attr-fs-target><a href=#attr-fs-target>target</a></code>
+ attribute, if <em>it</em> has such an attribute; or, if the
+ <code><a href=#document>Document</a></code> contains a <code><a href=#the-base-element>base</a></code> element with a
+ <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, then the
+ value of the <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute
+ of the first such <code><a href=#the-base-element>base</a></code> element; or, if there is no such
+ element, the empty string.</p> <!-- c.f. hyperlink following -->
+
+ <hr><p>The <dfn id=attr-fs-novalidate title=attr-fs-novalidate><code>novalidate</code></dfn>
+ and <dfn id=attr-fs-formnovalidate title=attr-fs-formnovalidate><code>formnovalidate</code></dfn>
+ content attributes are <a href=#boolean-attribute title="boolean attribute">boolean
+ attributes</a>. If present, they indicate that the form is not to
+ be validated during submission.</p>
+
+ <p>The <dfn id=concept-fs-novalidate title=concept-fs-novalidate>no-validate state</dfn> of
+ an element is true if the element is a <a href=#concept-submit-button title=concept-submit-button>submit button</a> and the element's
+ <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code> attribute
+ is present, or if the element's <a href=#form-owner>form owner</a>'s <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code> attribute is present,
+ and false otherwise.</p>
+
+ <div class=example>
+
+ <p>This attribute is useful to include "save" buttons on forms that
+ have validation constraints, to allow users to save their progress
+ even though they haven't fully entered the data in the form. The
+ following example shows a simple form that has two required
+ fields. There are three buttons: one to submit the form, which
+ requires both fields to be filled in; one to save the form so that
+ the user can come back and fill it in later; and one to cancel the
+ form altogether.</p>
+
+ <pre>&lt;form action="editor.cgi" method="post"&gt;
+ &lt;p&gt;&lt;label&gt;Name: &lt;input required name=fn&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;label&gt;Essay: &lt;textarea required name=essay&gt;&lt;/textarea&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;input type=submit name=submit value="Submit essay"&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;input type=submit formnovalidate name=save value="Save essay"&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;input type=submit formnovalidate name=cancel value="Cancel"&gt;&lt;/p&gt;
+&lt;/form&gt;</pre>
+
+ </div>
+
+ <div class=impl>
+
+ <hr><p>The <dfn id=dom-fs-action title=dom-fs-action><code>action</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name, except that on getting, when the content attribute is
+ missing or its value is the empty string, <a href="#the-document's-address">the document's
+ address</a> must be returned instead. The <dfn id=dom-fs-target title=dom-fs-target><code>target</code></dfn> IDL attribute must
+ <a href=#reflect>reflect</a> the content attribute of the same name. The
+ <dfn id=dom-fs-method title=dom-fs-method><code>method</code></dfn> and <dfn id=dom-fs-enctype title=dom-fs-enctype><code>enctype</code></dfn> IDL attributes
+ must <a href=#reflect>reflect</a> the respective content attributes of the
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>. The <dfn id=dom-fs-encoding title=dom-fs-encoding><code>encoding</code></dfn> IDL attribute
+ must <a href=#reflect>reflect</a> the <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code> content attribute,
+ <a href=#limited-to-only-known-values>limited to only known values</a>. The <dfn id=dom-fs-novalidate title=dom-fs-noValidate><code>noValidate</code></dfn> IDL
+ attribute must reflect the <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code> content attribute. The
+ <dfn id=dom-fs-formaction title=dom-fs-formAction><code>formAction</code></dfn> IDL
+ attribute must reflect the <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code> content attribute,
+ except that on getting, when the content attribute is missing or its
+ value is the empty string, <a href="#the-document's-address">the document's address</a> must
+ be returned instead. The <dfn id=dom-fs-formenctype title=dom-fs-formEnctype><code>formEnctype</code></dfn> IDL
+ attribute must reflect the <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code> content attribute,
+ <a href=#limited-to-only-known-values>limited to only known values</a>. The <dfn id=dom-fs-formmethod title=dom-fs-formMethod><code>formMethod</code></dfn> IDL
+ attribute must reflect the <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code> content attribute,
+ <a href=#limited-to-only-known-values>limited to only known values</a>. The <dfn id=dom-fs-formnovalidate title=dom-fs-formNoValidate><code>formNoValidate</code></dfn> IDL
+ attribute must reflect the <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code> content
+ attribute. The <dfn id=dom-fs-formtarget title=dom-fs-formTarget><code>formTarget</code></dfn> IDL
+ attribute must reflect the <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code> content attribute.
+
+ </div>
+
+
+ <h5 id=submitting-element-directionality><span class=secno>4.10.19.7 </span>Submitting element directionality</h5>
+
+ <p>A <dfn id=form-control-dirname-attribute>form control <code title="">dirname</code> attribute</dfn>
+ on a form control element enables the submission of <a href=#the-directionality>the
+ directionality</a> of the element, and gives the name of the
+ field that contains this value during <a href=#form-submission>form submission</a>.
+ If such an attribute is specified, its value must not be the empty
+ string.</p>
+
+
+ <h4 id=textFieldSelection><span class=secno>4.10.20 </span>APIs for the text field selections</h4>
+
+ <!-- v2 idea: DOM Range APIs to expose the textarea/input edited
+ value (ack martijnw) -->
+
+ <p>The <code><a href=#the-input-element>input</a></code> and <code><a href=#the-textarea-element>textarea</a></code> elements define
+ the following members in their DOM interfaces for handling their
+ selection:</p>
+
+ <pre class="idl extract"> void <a href=#dom-textarea/input-select title=dom-textarea/input-select>select</a>();
+ attribute unsigned long <a href=#dom-textarea/input-selectionstart title=dom-textarea/input-selectionStart>selectionStart</a>;
+ attribute unsigned long <a href=#dom-textarea/input-selectionend title=dom-textarea/input-selectionEnd>selectionEnd</a>;
+ attribute DOMString <a href=#dom-textarea/input-selectiondirection title=dom-textarea/input-selectionDirection>selectionDirection</a>;
+ void <a href=#dom-textarea/input-setselectionrange title=dom-textarea/input-setSelectionRange>setSelectionRange</a>(unsigned long start, unsigned long end, optional DOMString direction);</pre>
+ <!-- v2: also add textLength? it seems to be widely used -->
+
+ <p>These methods and attributes expose and control the selection of
+ <code><a href=#the-input-element>input</a></code> and <code><a href=#the-textarea-element>textarea</a></code> text fields.</p>
+
+ <dl class=domintro><dt><var title="">element</var> . <code title=dom-textarea/input-select><a href=#dom-textarea/input-select>select</a></code>()</dt>
+
+ <dd>
+
+ <p>Selects everything in the text field.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-textarea/input-selecionStart>selectionStart</code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the offset to the start of the selection.</p>
+
+ <p>Can be set, to change the start of the selection.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-textarea/input-selecionEnd>selectionEnd</code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the offset to the end of the selection.</p>
+
+ <p>Can be set, to change the end of the selection.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-textarea/input-selecionDirection>selectionDirection</code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current direction of the selection.</p>
+
+ <p>Can be set, to change the direction of the selection.</p>
+
+ <p>The possible values are "<code title="">forward</code>", "<code title="">backward</code>", and "<code title="">none</code>".</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange</a></code>(<var title="">start</var>, <var title="">end</var> [, <var title="">direction</var>] )</dt>
+
+ <dd>
+
+ <p>Changes the selection to cover the given substring in the given direction. If the direction is omitted, it will be reset to be the platform default (none or forward).</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>When these methods and attributes are used with
+ <code><a href=#the-input-element>input</a></code> elements while they don't apply, they must throw
+ an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception. Otherwise, they must
+ act as described below.</p>
+
+ <p>For <code><a href=#the-input-element>input</a></code> elements, these methods and attributes
+ must operate on the element's <a href=#concept-fe-value title=concept-fe-value>value</a>. For <code><a href=#the-textarea-element>textarea</a></code>
+ elements, these methods and attributes must operate on the element's
+ <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw value</a>.</p>
+
+ <p>Where possible, user interface features for changing the text
+ selection in <code><a href=#the-input-element>input</a></code> and <code><a href=#the-textarea-element>textarea</a></code> elements
+ must be implemented in terms of the DOM API described in this
+ section, so that, e.g., all the same events fire.</p>
+
+
+ <p>The selections of <code><a href=#the-input-element>input</a></code> and <code><a href=#the-textarea-element>textarea</a></code>
+ elements have a <i>direction</i>, which is either <i>forward</i>,
+ <i>backward</i>, or <i>none</i>. This direction is set when the user
+ manipulates the selection. The exact meaning of the selection
+ direction depends on the platform.</p>
+
+ <p class=note>On Windows, the direction indicates the position of
+ the caret relative to the selection: a <i>forward</i> selection has
+ the caret at the end of the selection and a <i>backward</i>
+ selection has the caret at the start of the selection. Windows has
+ no <i>none</i> direction. On Mac, the direction indicates which end
+ of the selection is affected when the user adjusts the size of the
+ selection using the arrow keys with the Shift modifier: the forward
+ direction means the end of the selection is modified, and the
+ backwards direction means the start of the selection is modified.
+ The none direction is the default on Mac, it indicates that no
+ particular direction has yet been selected. The user sets the
+ direction implicitly when first adjusting the selection, based on
+ which directional arrow key was used.</p>
+
+
+ <p>The <dfn id=dom-textarea/input-select title=dom-textarea/input-select><code>select()</code></dfn> method
+ must cause the contents of the text field to be fully selected, with
+ the selection direction being none, if the platform support
+ selections with the direction <i>none</i>, or otherwise
+ <i>forward</i>. The user agent must then <a href=#queue-a-task>queue a task</a>
+ to <a href=#fire-a-simple-event>fire a simple event</a> that bubbles named <code title=event-select>select</code> at the element, using the
+ <a href=#user-interaction-task-source>user interaction task source</a> as the task source.</p>
+
+
+ <p>The <dfn id=dom-textarea/input-selectionstart title=dom-textarea/input-selectionStart><code>selectionStart</code></dfn>
+ attribute must, on getting, return the offset (in logical order) to
+ the character that immediately follows the start of the
+ selection. If there is no selection, then it must return the offset
+ (in logical order) to the character that immediately follows the
+ text entry cursor.</p>
+
+ <p>On setting, it must act as if the <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>
+ method had been called, with the new value as the first argument;
+ the current value of the <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>
+ attribute as the second argument, unless the current value of the
+ <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code> is
+ less than the new value, in which case the second argument must also
+ be the new value; and the current value of the <code title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>
+ as the third argument.</p>
+
+
+ <p>The <dfn id=dom-textarea/input-selectionend title=dom-textarea/input-selectionEnd><code>selectionEnd</code></dfn>
+ attribute must, on getting, return the offset (in logical order) to
+ the character that immediately follows the end of the selection. If
+ there is no selection, then it must return the offset (in logical
+ order) to the character that immediately follows the text entry
+ cursor.</p>
+
+ <p>On setting, it must act as if the <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>
+ method had been called, with the current value of the <code title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>
+ attribute as the first argument, the new value as the second
+ argument, and the current value of the <code title=dom-textarea/input-selectionDirection><a href=#dom-textarea/input-selectiondirection>selectionDirection</a></code>
+ as the third argument.</p>
+
+
+ <p>The <dfn id=dom-textarea/input-selectiondirection title=dom-textarea/input-selectionDirection><code>selectionDirection</code></dfn>
+ attribute must, on getting, return the string corresponding to the
+ current selection direction: if the direction is <i>forward</i>,
+ "<code title="">forward</code>"; if the direction is
+ <i>backward</i>, "<code title="">backward</code>"; and otherwise,
+ "<code title="">none</code>".</p>
+
+ <p>On setting, it must act as if the <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea/input-setselectionrange>setSelectionRange()</a></code>
+ method had been called, with the current value of the <code title=dom-textarea/input-selectionStart><a href=#dom-textarea/input-selectionstart>selectionStart</a></code>
+ attribute as the first argument, the current value of the <code title=dom-textarea/input-selectionEnd><a href=#dom-textarea/input-selectionend>selectionEnd</a></code>
+ attribute as the second argument, and the new value as the third
+ argument.</p>
+
+
+ <p>The <dfn id=dom-textarea/input-setselectionrange title=dom-textarea/input-setSelectionRange><code>setSelectionRange(<var title="">start</var>, <var title="">end</var>, <var title="">direction</var>)</code></dfn> method must set the selection
+ of the text field to the sequence of characters starting with the
+ character at the <var title="">start</var>th position (in logical
+ order) and ending with the character at the <span title="">(<var title="">end</var>-1)</span>th position. Arguments greater than the
+ length of the value in the text field must be treated as pointing at
+ the end of the text field. If <var title="">end</var> is less than
+ or equal to <var title="">start</var> then the start of the
+ selection and the end of the selection must both be placed
+ immediately before the character with offset <var title="">end</var>. In UAs where there is no concept of an empty
+ selection, this must set the cursor to be just before the character
+ with offset <var title="">end</var>. The direction of the selection
+ must be set to <i>backward</i> if <var title="">direction</var> is a
+ <a href=#case-sensitive>case-sensitive</a> match for the string "<code title="">backward</code>", <i>forward</i> if <var title="">direction</var> is a <a href=#case-sensitive>case-sensitive</a> match for
+ the string "<code title="">forward</code>" or if the platform does
+ not support selections with the direction <i>none</i>, and
+ <i>none</i> otherwise (including if the argument is omitted). The
+ user agent must then <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> that bubbles named <code title=event-select>select</code> at the element, using the
+ <a href=#user-interaction-task-source>user interaction task source</a> as the task source.</p>
+
+
+ <p>All elements to which this API applies have either a selection or
+ a text entry cursor position at all times (even for elements that
+ are not <a href=#being-rendered>being rendered</a>). User agents should follow
+ platform conventions to determine their initial state.</p>
+
+ </div>
+
+ <p>Characters with no visible rendering, such as U+200D ZERO WIDTH
+ JOINER, still count as characters. Thus, for instance, the selection
+ can include just an invisible character, and the text insertion
+ cursor can be placed to one side or another of such a character.</p>
+
+ <div class=example>
+
+ <p>To obtain the currently selected text, the following JavaScript
+ suffices:</p>
+
+ <pre>var selectionText = control.value.substring(control.selectionStart, control.selectionEnd);</pre>
+
+ <p>...where <var title="">control</var> is the <code><a href=#the-input-element>input</a></code>
+ or <code><a href=#the-textarea-element>textarea</a></code> element.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>To add some text at the start of a text control, while
+ maintaining the text selection, the three attributes must be
+ preserved:</p>
+
+ <pre>var oldStart = control.selectionStart;
+var oldEnd = control.selectionEnd;
+var oldDirection = control.selectionDirection;
+var prefix = "http://";
+control.value = prefix + control.value;
+control.setSelectionRange(oldStart + prefix.length, oldEnd + prefix.length, oldDirection);</pre>
+
+ <p>...where <var title="">control</var> is the <code><a href=#the-input-element>input</a></code>
+ or <code><a href=#the-textarea-element>textarea</a></code> element.</p>
+
+ </div>
+
+
+
+ <h4 id=constraints><span class=secno>4.10.21 </span>Constraints</h4>
+
+ <h5 id=definitions><span class=secno>4.10.21.1 </span>Definitions</h5>
+
+ <div class=impl>
+
+ <p>A <a href=#category-listed title=category-listed>listed form-associated
+ element</a> is a <dfn id=candidate-for-constraint-validation>candidate for constraint validation</dfn>
+ except when a condition has <dfn id=barred-from-constraint-validation title="barred from constraint
+ validation">barred the element from constraint
+ validation</dfn>. (For example, an element is <a href=#barred-from-constraint-validation>barred from
+ constraint validation</a> if it is an <code><a href=#the-output-element>output</a></code> or
+ <code><a href=#the-fieldset-element>fieldset</a></code> element.)</p>
+
+ <p>An element can have a <dfn id=custom-validity-error-message>custom validity error message</dfn>
+ defined. Initially, an element must have its <a href=#custom-validity-error-message>custom validity
+ error message</a> set to the empty string. When its value is not
+ the empty string, the element is <a href=#suffering-from-a-custom-error>suffering from a custom
+ error</a>. It can be set using the <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
+ method. The user agent should use the <a href=#custom-validity-error-message>custom validity error
+ message</a> when alerting the user to the problem with the
+ control.</p>
+
+ <p>An element can be constrained in various ways. The following is
+ the list of <dfn id=validity-states>validity states</dfn> that a form control can be
+ in, making the control invalid for the purposes of constraint
+ validation. (The definitions below are non-normative; other parts of
+ this specification define more precisely when each state applies or
+ does not.)</p>
+
+ <dl><dt> <dfn id=suffering-from-being-missing>Suffering from being missing</dfn> </dt>
+
+ <dd> <p>When a control has no <a href=#concept-fe-value title=concept-fe-value>value</a> but has a <code title="">required</code> attribute (<code><a href=#the-input-element>input</a></code> <code title=attr-input-required><a href=#attr-input-required>required</a></code>, <code><a href=#the-select-element>select</a></code>
+ <code title=attr-select-required><a href=#attr-select-required>required</a></code>,
+ <code><a href=#the-textarea-element>textarea</a></code> <code title=attr-textarea-required><a href=#attr-textarea-required>required</a></code>), or, in the case of
+ an element in a <i><a href=#radio-button-group>radio button group</a></i>, any of the other
+ elements in the group has a <code title=attr-input-required><a href=#attr-input-required>required</a></code> attribute. </dd>
+
+ <dt> <dfn id=suffering-from-a-type-mismatch>Suffering from a type mismatch</dfn> </dt>
+
+ <dd> <p>When a control that allows arbitrary user
+ input has a <a href=#concept-fe-value title=concept-fe-value>value</a> that is not
+ in the correct syntax (<a href=#e-mail-state title=attr-input-type-email>E-mail</a>, <a href=#url-state title=attr-input-type-url>URL</a>). </dd>
+
+ <dt> <dfn id=suffering-from-a-pattern-mismatch>Suffering from a pattern mismatch</dfn> </dt>
+
+ <dd> <p>When a control has a <a href=#concept-fe-value title=concept-fe-value>value</a> that doesn't satisfy the
+ <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code> attribute.</dd>
+
+ <dt> <dfn id=suffering-from-being-too-long>Suffering from being too long</dfn> </dt>
+
+ <dd> <p>When a control has a <a href=#concept-fe-value title=concept-fe-value>value</a> that is too long for the
+ <a href=#attr-fe-maxlength title=attr-fe-maxlength>form control <code title="">maxlength</code> attribute</a> (<code><a href=#the-input-element>input</a></code>
+ <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+ <code><a href=#the-textarea-element>textarea</a></code> <code title=attr-textarea-maxlength><a href=#attr-textarea-maxlength>maxlength</a></code>). </dd>
+
+ <dt> <dfn id=suffering-from-an-underflow>Suffering from an underflow</dfn> </dt>
+
+ <dd> <p>When a control has a <a href=#concept-fe-value title=concept-fe-value>value</a> that is too low for the <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute.</dd>
+
+ <dt> <dfn id=suffering-from-an-overflow>Suffering from an overflow</dfn> </dt>
+
+ <dd> <p>When a control has a <a href=#concept-fe-value title=concept-fe-value>value</a> that is too high for the
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code> attribute.</dd>
+
+ <dt> <dfn id=suffering-from-a-step-mismatch>Suffering from a step mismatch</dfn> </dt>
+
+ <dd> <p>When a control has a <a href=#concept-fe-value title=concept-fe-value>value</a> that doesn't fit the rules
+ given by the <code title=attr-input-step><a href=#attr-input-step>step</a></code>
+ attribute.</dd>
+
+ <dt> <dfn id=suffering-from-a-custom-error>Suffering from a custom error</dfn> </dt>
+
+ <dd> <p>When a control's <a href=#custom-validity-error-message>custom validity error
+ message</a> (as set by the element's <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
+ method) is not the empty string.</p> </dd>
+
+ </dl><p class=note>An element can still suffer from these states even
+ when the element is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>; thus these states can
+ be represented in the DOM even if validating the form during
+ submission wouldn't indicate a problem to the user.</p>
+
+ <p>An element <dfn id=concept-fv-valid title=concept-fv-valid>satisfies its
+ constraints</dfn> if it is not suffering from any of the above
+ <a href=#validity-states>validity states</a>.</p>
+
+ </div>
+
+
+
+ <div class=impl>
+
+ <h5 id=constraint-validation><span class=secno>4.10.21.2 </span>Constraint validation</h5>
+
+ <p>When the user agent is required to <dfn id=statically-validate-the-constraints>statically validate the
+ constraints</dfn> of <code><a href=#the-form-element>form</a></code> element <var title="">form</var>, it must run the following steps, which return
+ either a <i>positive</i> result (all the controls in the form are
+ valid) or a <i>negative</i> result (there are invalid controls)
+ along with a (possibly empty) list of elements that are invalid and
+ for which no script has claimed responsibility:</p>
+
+ <ol><li><p>Let <var title="">controls</var> be a list of all the <a href=#category-submit title=category-submit>submittable elements</a> whose
+ <a href=#form-owner>form owner</a> is <var title="">form</var>, in <a href=#tree-order>tree
+ order</a>.</li>
+
+ <li><p>Let <var title="">invalid controls</var> be an initially
+ empty list of elements.</li>
+
+ <li>
+
+ <p>For each element <var title="">field</var> in <var title="">controls</var>, in <a href=#tree-order>tree order</a>, run the
+ following substeps:</p>
+
+ <ol><li><p>If <var title="">field</var> is not a <a href=#candidate-for-constraint-validation>candidate for
+ constraint validation</a>, then move on to the next
+ element.</li>
+
+ <li><p>Otherwise, if <var title="">field</var> <a href=#concept-fv-valid title=concept-fv-valid>satisfies its constraints</a>, then
+ move on to the next element.</li>
+
+ <li><p>Otherwise, add <var title="">field</var> to <var title="">invalid controls</var>.</li>
+
+ </ol></li>
+
+ <li><p>If <var title="">invalid controls</var> is empty, then
+ return a <i>positive</i> result and abort these steps.</li>
+
+ <li><p>Let <var title="">unhandled invalid controls</var> be an
+ initially empty list of elements.</li>
+
+ <li>
+
+ <p>For each element <var title="">field</var> in <var title="">invalid controls</var>, if any, in <a href=#tree-order>tree
+ order</a>, run the following substeps:</p>
+
+ <ol><li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-invalid>invalid</code> that is cancelable at <var title="">field</var>.</li>
+
+ <li><p>If the event was not canceled, then add <var title="">field</var> to <var title="">unhandled invalid
+ controls</var>.</li>
+
+ </ol></li>
+
+ <li><p>Return a <i>negative</i> result with the list of elements in
+ the <var title="">unhandled invalid controls</var> list.</li>
+
+ </ol><p>If a user agent is to <dfn id=interactively-validate-the-constraints>interactively validate the
+ constraints</dfn> of <code><a href=#the-form-element>form</a></code> element <var title="">form</var>, then the user agent must run the following
+ steps:</p>
+
+ <ol><li><p><a href=#statically-validate-the-constraints>Statically validate the constraints</a> of <var title="">form</var>, and let <var title="">unhandled invalid
+ controls</var> be the list of elements returned if the result was
+ <i>negative</i>.</li>
+
+ <li><p>If the result was <i>positive</i>, then return that result
+ and abort these steps.</li>
+
+ <li><p>Report the problems with the constraints of at least one of
+ the elements given in <var title="">unhandled invalid
+ controls</var> to the user. User agents may focus one of those
+ elements in the process, by running the <a href=#focusing-steps>focusing steps</a>
+ for that element, and may change the scrolling position of the
+ document, or perform some other action that brings the element to
+ the user's attention. User agents may report more than one
+ constraint violation. User agents may coalesce related constraint
+ violation reports if appropriate (e.g. if multiple radio buttons in
+ a <a href=#radio-button-group title="radio button group">group</a> are marked as
+ required, only one error need be reported). If one of the controls
+ is not <a href=#being-rendered>being rendered</a> (e.g. it has the <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute set) then user agents
+ may report a script error.</li>
+
+ <li><p>Return a <i>negative</i> result.</li>
+
+ </ol></div>
+
+
+
+ <h5 id=the-constraint-validation-api><span class=secno>4.10.21.3 </span>The <dfn>constraint validation API</dfn></h5>
+
+ <dl class=domintro><dt><var title="">element</var> . <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element will be validated when the form is submitted; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity</a></code>(<var title="">message</var>)</dt>
+
+ <dd>
+
+ <p>Sets a custom error, so that the element would fail to
+ validate. The given message is the message to be shown to the user
+ when reporting the problem to the user.</p>
+
+ <p>If the argument is the empty string, clears the custom error.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code> . <code title=dom-validitystate-valueMissing><a href=#dom-validitystate-valuemissing>valueMissing</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element has no value but is a required field; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code> . <code title=dom-validitystate-typeMismatch><a href=#dom-validitystate-typemismatch>typeMismatch</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element's value is not in the correct syntax; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code> . <code title=dom-validitystate-patternMismatch><a href=#dom-validitystate-patternmismatch>patternMismatch</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element's value doesn't match the provided pattern; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code> . <code title=dom-validitystate-tooLong><a href=#dom-validitystate-toolong>tooLong</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element's value is longer than the provided maximum length; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code> . <code title=dom-validitystate-rangeUnderflow><a href=#dom-validitystate-rangeunderflow>rangeUnderflow</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element's value is lower than the provided minimum; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code> . <code title=dom-validitystate-rangeOverflow><a href=#dom-validitystate-rangeoverflow>rangeOverflow</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element's value is higher than the provided maximum; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code> . <code title=dom-validitystate-stepMismatch><a href=#dom-validitystate-stepmismatch>stepMismatch</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element's value doesn't fit the rules given by the <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code> . <code title=dom-validitystate-customError><a href=#dom-validitystate-customerror>customError</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element has a custom error; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code> . <code title=dom-validitystate-valid><a href=#dom-validitystate-valid>valid</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element's value has no validity problems; false otherwise.</p>
+
+ </dd>
+
+ <dt><var title="">valid</var> = <var title="">element</var> . <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity</a></code>()</dt>
+
+ <dd>
+
+ <p>Returns true if the element's value has no validity problems;
+ false otherwise. Fires an <code title=event-invalid>invalid</code> event at the element in the
+ latter case.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code></dt>
+
+ <dd>
+
+ <p>Returns the error message that would be shown to the user if
+ the element was to be checked for validity.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-cva-willvalidate title=dom-cva-willValidate><code>willValidate</code></dfn>
+ attribute must return true if an element is a <a href=#candidate-for-constraint-validation>candidate for
+ constraint validation</a>, and false otherwise (i.e. false if any
+ conditions are <a href=#barred-from-constraint-validation title="barred from constraint
+ validation">barring it from constraint validation</a>).</p>
+
+ <p>The <dfn id=dom-cva-setcustomvalidity title=dom-cva-setCustomValidity><code>setCustomValidity(<var title="">message</var>)</code></dfn>, when invoked, must set the
+ <a href=#custom-validity-error-message>custom validity error message</a> to the value of the given
+ <var title="">message</var> argument.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, a script checks the value of a form
+ control each time it is edited, and whenever it is not a valid
+ value, uses the <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code> method
+ to set an appropriate message.</p>
+
+ <pre>&lt;label&gt;Feeling: &lt;input name=f type="text" oninput="check(this)"&gt;&lt;/label&gt;
+&lt;script&gt;
+ function check(input) {
+ if (input.value == "good" ||
+ input.value == "fine" ||
+ input.value == "tired") {
+ input.setCustomValidity('"' + input.value + '" is not a feeling.');
+<!-- } else if (input.value == "...") {
+ input.setCustomValidity('...');
+--> } else {
+ // input is fine -- reset the error message
+ input.setCustomValidity('');
+ }
+ }
+&lt;/script&gt;</pre>
+
+ </div>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-cva-validity title=dom-cva-validity><code>validity</code></dfn>
+ attribute must return a <code><a href=#validitystate>ValidityState</a></code> object that
+ represents the <a href=#validity-states>validity states</a> of the element. This
+ object is <a href=#live>live</a>, and the same object must be returned
+ each time the element's <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code> attribute is retrieved.</p>
+
+<pre class=idl>interface <dfn id=validitystate>ValidityState</dfn> {
+ readonly attribute boolean <a href=#dom-validitystate-valuemissing title=dom-ValidityState-valueMissing>valueMissing</a>;
+ readonly attribute boolean <a href=#dom-validitystate-typemismatch title=dom-ValidityState-typeMismatch>typeMismatch</a>;
+ readonly attribute boolean <a href=#dom-validitystate-patternmismatch title=dom-ValidityState-patternMismatch>patternMismatch</a>;
+ readonly attribute boolean <a href=#dom-validitystate-toolong title=dom-ValidityState-tooLong>tooLong</a>;
+ readonly attribute boolean <a href=#dom-validitystate-rangeunderflow title=dom-ValidityState-rangeUnderflow>rangeUnderflow</a>;
+ readonly attribute boolean <a href=#dom-validitystate-rangeoverflow title=dom-ValidityState-rangeOverflow>rangeOverflow</a>;
+ readonly attribute boolean <a href=#dom-validitystate-stepmismatch title=dom-ValidityState-stepMismatch>stepMismatch</a>;
+ readonly attribute boolean <a href=#dom-validitystate-customerror title=dom-ValidityState-customError>customError</a>;
+ readonly attribute boolean <a href=#dom-validitystate-valid title=dom-ValidityState-valid>valid</a>;
+};</pre>
+
+ <p>A <code><a href=#validitystate>ValidityState</a></code> object has the following
+ attributes. On getting, they must return true if the corresponding
+ condition given in the following list is true, and false
+ otherwise.</p>
+
+ <dl><dt><dfn id=dom-validitystate-valuemissing title=dom-ValidityState-valueMissing><code>valueMissing</code></dfn></dt>
+ <dd> <p>The control is <a href=#suffering-from-being-missing>suffering from being missing</a>.</p> </dd>
+
+ <dt><dfn id=dom-validitystate-typemismatch title=dom-ValidityState-typeMismatch><code>typeMismatch</code></dfn></dt>
+ <dd> <p>The control is <a href=#suffering-from-a-type-mismatch>suffering from a type mismatch</a>.</p> </dd>
+
+ <dt><dfn id=dom-validitystate-patternmismatch title=dom-ValidityState-patternMismatch><code>patternMismatch</code></dfn></dt>
+ <dd> <p>The control is <a href=#suffering-from-a-pattern-mismatch>suffering from a pattern mismatch</a>.</p> </dd>
+
+ <dt><dfn id=dom-validitystate-toolong title=dom-ValidityState-tooLong><code>tooLong</code></dfn></dt>
+ <dd> <p>The control is <a href=#suffering-from-being-too-long>suffering from being too long</a>.</p> </dd>
+
+ <dt><dfn id=dom-validitystate-rangeunderflow title=dom-ValidityState-rangeUnderflow><code>rangeUnderflow</code></dfn></dt>
+ <dd> <p>The control is <a href=#suffering-from-an-underflow>suffering from an underflow</a>.</p> </dd>
+
+ <dt><dfn id=dom-validitystate-rangeoverflow title=dom-ValidityState-rangeOverflow><code>rangeOverflow</code></dfn></dt>
+ <dd> <p>The control is <a href=#suffering-from-an-overflow>suffering from an overflow</a>.</p> </dd>
+
+ <dt><dfn id=dom-validitystate-stepmismatch title=dom-ValidityState-stepMismatch><code>stepMismatch</code></dfn></dt>
+ <dd> <p>The control is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>.</p> </dd>
+
+ <dt><dfn id=dom-validitystate-customerror title=dom-ValidityState-customError><code>customError</code></dfn></dt>
+ <dd> <p>The control is <a href=#suffering-from-a-custom-error>suffering from a custom error</a>.</p> </dd>
+
+ <dt><dfn id=dom-validitystate-valid title=dom-ValidityState-valid><code>valid</code></dfn></dt>
+ <dd> <p>None of the other conditions are true.</p> </dd>
+
+ </dl><p>When the <dfn id=dom-cva-checkvalidatity title=dom-cva-checkValidatity><code>checkValidity()</code></dfn>
+ method is invoked, if the element is a <a href=#candidate-for-constraint-validation>candidate for
+ constraint validation</a> and does not <a href=#concept-fv-valid title=concept-fv-valid>satisfy its constraints</a>, the user
+ agent must <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-invalid>invalid</code> that is cancelable (but in this
+ case has no default action) at the element and return
+ false. Otherwise, it must only return true without doing anything
+ else.</p>
+
+ <p>The <dfn id=dom-cva-validationmessage title=dom-cva-validationMessage><code>validationMessage</code></dfn>
+ attribute must return the empty string if the element is not a
+ <a href=#candidate-for-constraint-validation>candidate for constraint validation</a> or if it is one but
+ it <a href=#concept-fv-valid title=concept-fv-valid>satisfies its constraints</a>;
+ otherwise, it must return a suitably localized message that the user
+ agent would show the user if this were the only form control with a
+ validity constraint problem. If the user agent would not actually
+ show a textual message in such a situation (e.g. it would show a
+ graphical cue instead), then the attribute must return a suitably
+ localized message that expresses (one or more of) the validity
+ constraint(s) that the control does not satisfy. If the element is a
+ <a href=#candidate-for-constraint-validation>candidate for constraint validation</a> and is
+ <a href=#suffering-from-a-custom-error>suffering from a custom error</a>, then the <a href=#custom-validity-error-message>custom
+ validity error message</a> should be present in the return
+ value.</p>
+
+ </div>
+
+
+ <h5 id=security-forms><span class=secno>4.10.21.4 </span>Security</h5>
+
+ <p id=security-0>Servers should not rely on client-side
+ validation. Client-side validation can be intentionally bypassed by
+ hostile users, and unintentionally bypassed by users of older user
+ agents or automated tools that do not implement these features. The
+ constraint validation features are only intended to improve the user
+ experience, not to provide any kind of security mechanism.</p>
+
+
+
+
+ <h4 id=form-submission><span class=secno>4.10.22 </span><dfn>Form submission</dfn></h4>
+
+ <div class=impl>
+
+ <h5 id=introduction-3><span class=secno>4.10.22.1 </span>Introduction</h5>
+
+ </div>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>When a form is submitted, the data in the form is converted into
+ the structure specified by the <a href=#concept-fs-enctype title=concept-fs-enctype>enctype</a>, and then sent to the
+ destination specified by the <a href=#concept-fs-action title=concept-fs-action>action</a> using the given <a href=#concept-fs-method title=concept-fs-method>method</a>.</p>
+
+ <p>For example, take the following form:</p>
+
+ <pre>&lt;form action="/find.cgi" method=get&gt;
+ &lt;input type=text name=t&gt;
+ &lt;input type=search name=q&gt;
+ &lt;input type=submit&gt;
+&lt;/form&gt;</pre>
+
+ <p>If the user types in "cats" in the first field and "fur" in the
+ second, and then hits the submit button, then the user agent will
+ load <code title="">/find.cgi?t=cats&amp;q=fur</code>.</p>
+
+ <p>On the other hand, consider this form:</p>
+
+ <pre>&lt;form action="/find.cgi" method=post enctype="multipart/form-data"&gt;
+ &lt;input type=text name=t&gt;
+ &lt;input type=search name=q&gt;
+ &lt;input type=submit&gt;
+&lt;/form&gt;</pre>
+
+ <p>Given the same user input, the result on submission is quite
+ different: the user agent instead does an HTTP POST to the given
+ URL, with as the entity body something like the following text:</p>
+
+ <pre>------kYFrd4jNJEgCervE
+Content-Disposition: form-data; name="t"
+
+cats
+------kYFrd4jNJEgCervE
+Content-Disposition: form-data; name="q"
+
+fur
+------kYFrd4jNJEgCervE--</pre>
+
+
+
+ <div class=impl>
+
+ <h5 id=implicit-submission><span class=secno>4.10.22.2 </span>Implicit submission</h5>
+
+ <p>User agents may establish a <a href=#concept-button title=concept-button>button</a> in each form as being the
+ form's <dfn id=default-button>default button</dfn>. This should be the first <a href=#concept-submit-button title=concept-submit-button>submit button</a> in <a href=#tree-order>tree
+ order</a> whose <a href=#form-owner>form owner</a> is that <code><a href=#the-form-element>form</a></code>
+ element, but user agents may pick another button if another would be
+ more appropriate for the platform. If the platform supports letting
+ the user submit a form implicitly (for example, on some platforms
+ hitting the "enter" key while a text field is focused implicitly
+ submits the form), then doing so must cause the form's <a href=#default-button>default
+ button</a>'s <a href=#activation-behavior>activation behavior</a>, if any, to be
+ run.</p>
+
+ <p class=note>Consequently, if the <a href=#default-button>default button</a> is
+ <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, the form is not
+ submitted when such an implicit submission mechanism is used. (A
+ button has no <a href=#activation-behavior>activation behavior</a> when disabled.)</p>
+
+ <p>If the form has no <a href=#concept-submit-button title=concept-submit-button>submit
+ button</a>, then the implicit submission mechanism must just
+ <a href=#concept-form-submit title=concept-form-submit>submit</a> the
+ <code><a href=#the-form-element>form</a></code> element from the <code><a href=#the-form-element>form</a></code> element
+ itself.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h5 id=form-submission-algorithm><span class=secno>4.10.22.3 </span>Form submission algorithm</h5>
+
+ <p>When a <code><a href=#the-form-element>form</a></code> element <var title="">form</var> is <dfn id=concept-form-submit title=concept-form-submit>submitted</dfn> from an element <var title="">submitter</var> (typically a button), optionally with a
+ <var title="">submitted from <code title=dom-form-submit><a href=#dom-form-submit>submit()</a></code> method</var> flag set, the
+ user agent must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">form document</var> be the <var title="">form</var>'s <code><a href=#document>Document</a></code>.</li>
+
+ <li id=sandboxSubmitBlocked><p>If <var title="">form
+ document</var> has no associated <a href=#browsing-context>browsing context</a> or
+ its <a href=#browsing-context>browsing context</a> had its <a href=#sandboxed-forms-browsing-context-flag>sandboxed forms
+ browsing context flag</a> set when the <code><a href=#document>Document</a></code> was
+ created, then abort these steps without doing anything.</li>
+
+ <li><p>Let <var title="">form browsing context</var> be the
+ <a href=#browsing-context>browsing context</a> of <var title="">form
+ document</var>.</li>
+
+ <li><p>If <var title="">form</var> is already being submitted
+ (i.e. the form was <a href=#concept-form-submit title=concept-form-submit>submitted</a> again while processing
+ the events fired from the next two steps, probably from a script
+ redundantly calling the <code title=dom-form-submit><a href=#dom-form-submit>submit()</a></code> method on <var title="">form</var>), then abort these steps. This doesn't affect
+ the earlier instance of this algorithm.</li>
+
+ <!-- lock (implicit in previous step) -->
+
+ <li><p>If the <var title="">submitted from <code title=dom-form-submit><a href=#dom-form-submit>submit()</a></code> method</var> flag is not
+ set, and the <var title="">submitter</var> element's <a href=#concept-fs-novalidate title=concept-fs-novalidate>no-validate state</a> is false,
+ then <a href=#interactively-validate-the-constraints>interactively validate the constraints</a> of <var title="">form</var> and examine the result: if the result is
+ negative (the constraint validation concluded that there were
+ invalid fields and probably informed the user of this) then abort
+ these steps.</li>
+
+ <li><p>If the <var title="">submitted from <code title=dom-form-submit><a href=#dom-form-submit>submit()</a></code> method</var> flag is not
+ set, then <a href=#fire-a-simple-event>fire a simple event</a> that is cancelable named
+ <code title=event-submit>submit</code>, at <var title="">form</var>. If the event's default action is prevented
+ (i.e. if the event is canceled) then abort these steps. Otherwise,
+ continue (effectively the default action is to perform the
+ submission).</li>
+
+ <!-- if you add any steps between the "lock" and "unlock" lines,
+ make sure to update the step immediately before the "lock" line -->
+
+ <!-- unlock -->
+
+ <li><p>Let <var title="">form data set</var> be the result of
+ <a href=#constructing-the-form-data-set>constructing the form data set</a> for <var title="">form</var> in the context of <var title="">submitter</var>.</li>
+
+ <li><p>Let <var title="">action</var> be the <var title="">submitter</var> element's <a href=#concept-fs-action title=concept-fs-action>action</a>.</li>
+
+ <li>
+
+ <p>If <var title="">action</var> is the empty string, let <var title="">action</var> be <a href="#the-document's-address">the document's address</a> of
+ the <var title="">form document</var>.</p>
+
+ <p class=note>This step is a <a href=#willful-violation>willful violation</a> of
+ RFC 3986, which would require base URL processing here. This
+ violation is motivated by a desire for compatibility with legacy
+ content. <a href=#refsRFC3986>[RFC3986]</a></p>
+
+ <!-- Don't ask me why. But that's what IE does. It even treats
+ action="" differently from action=" " or action="#" (the latter
+ two resolve to the base URL, the first one resolves to the doc
+ URL). And other browsers concur. It is even required, see e.g.
+ http://bugs.webkit.org/show_bug.cgi?id=7763
+ https://bugzilla.mozilla.org/show_bug.cgi?id=297761
+ -->
+
+ </li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
+ <a href=#url>URL</a> <var title="">action</var>, relative to the <var title="">submitter</var> element. If this fails, abort these
+ steps. Otherwise, let <var title="">action</var> be the resulting
+ <a href=#absolute-url>absolute URL</a>.</li>
+
+ <li><p>Let <var title="">scheme</var> be the <a href=#url-scheme title=url-scheme>&lt;scheme&gt;</a> of the resulting
+ <a href=#absolute-url>absolute URL</a>.</li>
+
+ <li><p>Let <var title="">enctype</var> be the <var title="">submitter</var> element's <a href=#concept-fs-enctype title=concept-fs-enctype>enctype</a>.</li>
+
+ <li><p>Let <var title="">method</var> be the <var title="">submitter</var> element's <a href=#concept-fs-method title=concept-fs-method>method</a>.</li>
+
+ <li><p>Let <var title="">target</var> be the <var title="">submitter</var> element's <a href=#concept-fs-target title=concept-fs-target>target</a>.</li>
+
+ <li><p>If the user indicated a specific <a href=#browsing-context>browsing
+ context</a> to use when submitting the form, then let <var title="">target browsing context</var> be that <a href=#browsing-context>browsing
+ context</a>. Otherwise, apply <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a
+ browsing context given a browsing context name</a> using <var title="">target</var> as the name and <var title="">form browsing
+ context</var> as the context in which the algorithm is executed,
+ and let <var title="">target browsing context</var> be the
+ resulting <a href=#browsing-context>browsing context</a>.</li>
+
+ <li><p>If <var title="">target browsing context</var> was created
+ in the previous step, or if the <var title="">form document</var>
+ has not yet <a href=#completely-loaded>completely loaded</a>, then let <var title="">replace</var> be true. Otherwise, let it be
+ false.</li>
+
+ <li>
+
+ <p>Select the appropriate row in the table below based on the
+ value of <var title="">scheme</var> as given by the first cell of
+ each row. Then, select the appropriate cell on that row based on
+ the value of <var title="">method</var> as given in the first cell
+ of each column. Then, jump to the steps named in that cell and
+ defined below the table.</p>
+
+ <table><thead><tr><td>
+ <th> <a href=#attr-fs-method-get title=attr-fs-method-GET>GET</a>
+ <th> <a href=#attr-fs-method-post title=attr-fs-method-POST>POST</a>
+ <tbody><tr><th> <code title="">http</code>
+ <td> <a href=#submit-mutate-action title=submit-mutate-action>Mutate action URL</a>
+ <td> <a href=#submit-body title=submit-body>Submit as entity body</a>
+ <tr><th> <code title="">https</code>
+ <td> <a href=#submit-mutate-action title=submit-mutate-action>Mutate action URL</a>
+ <td> <a href=#submit-body title=submit-body>Submit as entity body</a>
+ <tr><th> <code title="">ftp</code>
+ <td> <a href=#submit-get-action title=submit-get-action>Get action URL</a>
+ <td> <a href=#submit-get-action title=submit-get-action>Get action URL</a>
+ <tr><th> <code title="">javascript</code>
+ <td> <a href=#submit-get-action title=submit-get-action>Get action URL</a>
+ <td> <a href=#submit-get-action title=submit-get-action>Get action URL</a>
+ <tr><th> <code title="">data</code>
+ <td> <a href=#submit-get-action title=submit-get-action>Get action URL</a>
+ <td> <a href=#submit-data-post title=submit-data-post>Post to data:</a>
+ <tr><th> <code title="">mailto</code>
+ <td> <a href=#submit-mailto-headers title=submit-mailto-headers>Mail with headers</a>
+ <td> <a href=#submit-mailto-body title=submit-mailto-body>Mail as body</a>
+ </table><p>If <var title="">scheme</var> is not one of those listed in
+ this table, then the behavior is not defined by this
+ specification. User agents should, in the absence of another
+ specification defining this, act in a manner analogous to that
+ defined in this specification for similar schemes.</p>
+
+ <p>The behaviors are as follows:</p>
+
+ <dl><dt><dfn id=submit-mutate-action title=submit-mutate-action>Mutate action URL</dfn>
+ <dd>
+
+ <p>Let <var title="">query</var> be the result of encoding the
+ <var title="">form data set</var> using the <a href=#application/x-www-form-urlencoded-encoding-algorithm><code title="">application/x-www-form-urlencoded</code> encoding
+ algorithm</a>, interpreted as a US-ASCII string.</p>
+
+ <!-- by this point we've already tried to resolve the URL, so we
+ know we can parse it -->
+
+ <p>Let <var title="">destination</var> be a new <a href=#url>URL</a>
+ that is equal to the <var title="">action</var> except that its
+ <a href=#url-query title=url-query>&lt;query&gt;</a> component is
+ replaced by <var title="">query</var> (adding a U+003F QUESTION
+ MARK character (?) if appropriate).</p>
+
+ <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target
+ browsing context</var> to <var title="">destination</var>. If
+ <var title="">replace</var> is true, then <var title="">target
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
+ enabled</a>.</p>
+
+ </dd>
+
+ <dt><dfn id=submit-body title=submit-body>Submit as entity body</dfn>
+ <dd>
+
+ <p>Let <var title="">entity body</var> be the result of encoding
+ the <var title="">form data set</var> using the
+ <a href=#appropriate-form-encoding-algorithm>appropriate form encoding algorithm</a>.</p>
+
+ <p>Let <var title="">MIME type</var> be determined as
+ follows:</p>
+
+ <dl><dt>If <var title="">enctype</var> is <code title=attr-fs-enctype-urlencoded><a href=#attr-fs-enctype-urlencoded>application/x-www-form-urlencoded</a></code></dt>
+
+ <dd>Let <var title="">MIME type</var> be "<code title="">application/x-www-form-urlencoded</code>".</dd>
+
+ <dt>If <var title="">enctype</var> is <code title=attr-fs-enctype-formdata><a href=#attr-fs-enctype-formdata>multipart/form-data</a></code></dt>
+
+ <dd>Let <var title="">MIME type</var> be the concatenation of
+ the string "<code title="">multipart/form-data;</code>", a
+ U+0020 SPACE character, the string "<code title="">boundary=</code>", and the <a href=#multipart/form-data-boundary-string><code title="">multipart/form-data</code> boundary string</a>
+ generated by the <a href=#multipart/form-data-encoding-algorithm><code title="">multipart/form-data</code> encoding
+ algorithm</a>.</dd>
+
+ <dt>If <var title="">enctype</var> is <code title=attr-fs-enctype-text><a href=#attr-fs-enctype-text>text/plain</a></code></dt>
+
+ <dd>Let <var title="">MIME type</var> be "<code title="">text/plain</code>".</dd>
+
+ </dl><!--<p>If <var title="">method</var> is anything but (GET or)
+ POST, and the <span>origin</span> of <var title="">action</var>
+ is not the <span>same origin</span> as that of <var
+ title="">form document</var>, then abort these steps.</p> [or do
+ CORS] (this is commented out since only POST can trigger this
+ now, and that's historically unrestricted)--><p>Otherwise, <a href=#navigate>navigate</a><!--DONAV form--> <var title="">target browsing context</var> to <var title="">action</var> using the HTTP method given by <var title="">method</var> and with <var title="">entity body</var>
+ as the entity body, of type <var title="">MIME type</var>. If
+ <var title="">replace</var> is true, then <var title="">target
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
+ enabled</a>.</p>
+
+ </dd>
+
+ <dt><dfn id=submit-get-action title=submit-get-action>Get action URL</dfn>
+ <dd>
+
+ <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target
+ browsing context</var> to <var title="">action</var>. If <var title="">replace</var> is true, then <var title="">target
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
+ enabled</a>.</p>
+
+ </dd>
+
+ <dt><dfn id=submit-data-post title=submit-data-post>Post to data:</dfn>
+ <dd>
+
+ <p>Let <var title="">data</var> be the result of encoding the
+ <var title="">form data set</var> using the <a href=#appropriate-form-encoding-algorithm>appropriate
+ form encoding algorithm</a>.</p>
+
+ <p>If <var title="">action</var> contains the string "<code title="">%%%%</code>" (four U+0025 PERCENT SIGN characters),
+ then %-escape all bytes in <var title="">data</var> that, if
+ interpreted as US-ASCII, do not match the <code title="">unreserved</code> production in the URI Generic Syntax,
+ and then, treating the result as a US-ASCII string, further
+ %-escape all the U+0025 PERCENT SIGN characters in the resulting
+ string and replace the first occurrence of "<code title="">%%%%</code>" in <var title="">action</var> with the
+ resulting double-escaped string. <a href=#refsRFC3986>[RFC3986]</a></p>
+
+ <p>Otherwise, if <var title="">action</var> contains the string
+ "<code title="">%%</code>" (two U+0025 PERCENT SIGN characters
+ in a row, but not four), then %-escape all characters in <var title="">data</var> that, if interpreted as US-ASCII, do not
+ match the <code title="">unreserved</code> production in the URI
+ Generic Syntax, and then, treating the result as a US-ASCII
+ string, replace the first occurrence of "<code title="">%%</code>" in <var title="">action</var> with the
+ resulting escaped string. <a href=#refsRFC3986>[RFC3986]</a></p>
+
+ <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target
+ browsing context</var> to the potentially modified <var title="">action</var> (which will be a <a href=#data-protocol title="data
+ protocol"><code title="">data:</code> URL</a>). If <var title="">replace</var> is true, then <var title="">target
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
+ enabled</a>.</p>
+
+ </dd>
+
+ <dt><dfn id=submit-mailto-headers title=submit-mailto-headers>Mail with headers</dfn>
+ <dd>
+
+ <p>Let <var title="">headers</var> be the resulting encoding the
+ <var title="">form data set</var> using the <a href=#application/x-www-form-urlencoded-encoding-algorithm><code title="">application/x-www-form-urlencoded</code> encoding
+ algorithm</a>, interpreted as a US-ASCII string.</p>
+
+ <p>Replace occurrences of U+002B PLUS SIGN characters (+) in
+ <var title="">headers</var> with the string "<code title="">%20</code>".</p>
+
+ <p>Let <var title="">destination</var> consist of all the
+ characters from the first character in <var title="">action</var> to the character immediately before the
+ first U+003F QUESTION MARK character (?), if any, or the end of
+ the string if there are none.</p>
+
+ <p>Append a single U+003F QUESTION MARK character (?) to <var title="">destination</var>.</p>
+
+ <p>Append <var title="">headers</var> to <var title="">destination</var>.</p>
+
+ <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target
+ browsing context</var> to <var title="">destination</var>. If
+ <var title="">replace</var> is true, then <var title="">target
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
+ enabled</a>.</p>
+
+ </dd>
+
+ <dt><dfn id=submit-mailto-body title=submit-mailto-body>Mail as body</dfn>
+ <dd>
+
+ <p>Let <var title="">body</var> be the resulting encoding the
+ <var title="">form data set</var> using the <a href=#appropriate-form-encoding-algorithm>appropriate
+ form encoding algorithm</a> and then %-escaping all the bytes
+ in the resulting byte string that, when interpreted as US-ASCII,
+ do not match the <code title="">unreserved</code> production in
+ the URI Generic Syntax. <a href=#refsRFC3986>[RFC3986]</a></p>
+
+ <p>Let <var title="">destination</var> have the same value as
+ <var title="">action</var>.</p>
+
+ <p>If <var title="">destination</var> does not contain a U+003F
+ QUESTION MARK character (?), append a single U+003F QUESTION
+ MARK character (?) to <var title="">destination</var>. Otherwise, append a single U+0026
+ AMPERSAND character (&amp;).</p>
+
+ <p>Append the string "<code title="">body=</code>" to <var title="">destination</var>.</p>
+
+ <p>Append <var title="">body</var>, interpreted as a US-ASCII
+ string, to <var title="">destination</var>.</p>
+
+ <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target
+ browsing context</var> to <var title="">destination</var>. If
+ <var title="">replace</var> is true, then <var title="">target
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
+ enabled</a>.</p>
+
+ </dd>
+
+ </dl><p>The <dfn id=appropriate-form-encoding-algorithm>appropriate form encoding algorithm</dfn> is
+ determined as follows:</p>
+
+ <dl><dt>If <var title="">enctype</var> is <code title=attr-fs-enctype-urlencoded><a href=#attr-fs-enctype-urlencoded>application/x-www-form-urlencoded</a></code></dt>
+
+ <dd>Use the <a href=#application/x-www-form-urlencoded-encoding-algorithm><code title="">application/x-www-form-urlencoded</code> encoding
+ algorithm</a>.</dd>
+
+ <dt>If <var title="">enctype</var> is <code title=attr-fs-enctype-formdata><a href=#attr-fs-enctype-formdata>multipart/form-data</a></code></dt>
+
+ <dd>Use the <a href=#multipart/form-data-encoding-algorithm><code title="">multipart/form-data</code> encoding
+ algorithm</a>.</dd>
+
+ <dt>If <var title="">enctype</var> is <code title=attr-fs-enctype-text><a href=#attr-fs-enctype-text>text/plain</a></code></dt>
+
+ <dd>Use the <a href=#text/plain-encoding-algorithm><code title="">text/plain</code> encoding
+ algorithm</a>.</dd>
+
+ </dl></li>
+
+ </ol><h5 id=constructing-form-data-set><span class=secno>4.10.22.4 </span>Constructing the form data set</h5>
+
+ <p>The algorithm to <dfn id=constructing-the-form-data-set title="constructing the form data
+ set">construct the form data set</dfn> for a form <var title="">form</var> optionally in the context of a submitter <var title="">submitter</var> is as follows. If not specified otherwise,
+ <var title="">submitter</var> is null.</p>
+
+ <ol><li><p>Let <var title="">controls</var> be a list of all the <a href=#category-submit title=category-submit>submittable elements</a> whose
+ <a href=#form-owner>form owner</a> is <var title="">form</var>, in <a href=#tree-order>tree
+ order</a>.</li>
+
+ <li><p>Let the <var title="">form data set</var> be a list of
+ name-value-type tuples, initially empty.</li>
+
+ <li>
+
+ <p><i>Loop</i>: For each element <var title="">field</var> in <var title="">controls</var>, in <a href=#tree-order>tree order</a>, run the
+ following substeps:</p>
+
+ <ol><li>
+
+ <p>If any of the following conditions are met, then skip these
+ substeps for this element:</p>
+
+ <ul><li>The <var title="">field</var> element has a
+ <code><a href=#the-datalist-element>datalist</a></code> element ancestor.</li>
+
+ <li>The <var title="">field</var> element is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>.</li>
+
+ <li>The <var title="">field</var> element is a <a href=#concept-button title=concept-button>button</a> but it is not <var title="">submitter</var>.</li>
+
+ <li>The <var title="">field</var> element is an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state and
+ whose <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> is
+ false.</li>
+
+ <li>The <var title="">field</var> element is an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> state and
+ whose <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> is
+ false.</li>
+
+ <li>The <var title="">field</var> element is not an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state, and
+ either the <var title="">field</var> element does not have a
+ <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute specified, or
+ its <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute's value is
+ the empty string.</li>
+
+ <li>The <var title="">field</var> element is an
+ <code><a href=#the-object-element>object</a></code> element that is not using a
+ <a href=#plugin>plugin</a>.</li>
+
+ </ul><p>Otherwise, process <var title="">field</var> as follows:</p>
+
+ </li>
+
+ <li><p>Let <var title="">type</var> be the value of the <code title="">type</code> IDL attribute of <var title="">field</var>.</li> <!-- if the field is an <object>
+ element, this will get ignored. -->
+
+ <li>
+
+ <p>If the <var title="">field</var> element is an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state,
+ then run these further nested substeps:</p>
+
+ <ol><li><p>If the <var title="">field</var> element has a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute specified and its
+ value is not the empty string, let <var title="">name</var> be
+ that value followed by a single U+002E FULL STOP character (.).
+ Otherwise, let <var title="">name</var> be the empty
+ string.</li>
+
+ <li><p>Let <var title="">name<sub title="">x</sub></var> be the
+ string consisting of the concatenation of <var title="">name</var> and a single U+0078 LATIN SMALL LETTER X
+ character (x).</li>
+
+ <li><p>Let <var title="">name<sub title="">y</sub></var> be the
+ string consisting of the concatenation of <var title="">name</var> and a single U+0079 LATIN SMALL LETTER Y
+ character (y).</li>
+
+ <li><p>The <var title="">field</var> element is <var title="">submitter</var>, and before this algorithm was invoked
+ the user <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>indicated a
+ coordinate</a>. Let <var title="">x</var> be the <var title="">x</var>-component of the coordinate selected by the
+ user, and let <var title="">y</var> be the <var title="">y</var>-component of the coordinate selected by the
+ user.</li>
+
+ <li><p>Append an entry to the <var title="">form data set</var>
+ with the name <var title="">name<sub title="">x</sub></var>,
+ the value <var title="">x</var>, and the type <var title="">type</var>.</li>
+
+ <li><p>Append an entry to the <var title="">form data set</var>
+ with the name <var title="">name<sub title="">y</sub></var> and
+ the value <var title="">y</var>, and the type <var title="">type</var>.</li>
+
+ <li><p>Skip the remaining substeps for this element: if there
+ are any more elements in <var title="">controls</var>, return
+ to the top of the <i>loop</i> step, otherwise, jump to the
+ <i>end</i> step below.</li>
+
+ </ol></li>
+
+ <li><p>Let <var title="">name</var> be the value of the <var title="">field</var> element's <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute.</li>
+
+ <li><p>If the <var title="">field</var> element is a
+ <code><a href=#the-select-element>select</a></code> element, then for each <code><a href=#the-option-element>option</a></code>
+ element in the <code><a href=#the-select-element>select</a></code> element whose <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true,
+ append an entry to the <var title="">form data set</var> with the
+ <var title="">name</var> as the name, the <a href=#concept-option-value title=concept-option-value>value</a> of the
+ <code><a href=#the-option-element>option</a></code> element as the value, and <var title="">type</var> as the type.</li>
+
+ <li>
+
+ <p>Otherwise, if the <var title="">field</var> element is an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state or the
+ <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> state,
+ then run these further nested substeps:</p>
+
+ <ol><li><p>If the <var title="">field</var> element has a <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute specified, then
+ let <var title="">value</var> be the value of that attribute;
+ otherwise, let <var title="">value</var> be the string
+ "<code title="">on</code>".</li>
+
+ <li><p>Append an entry to the <var title="">form data set</var>
+ with <var title="">name</var> as the name, <var title="">value</var> as the value, and <var title="">type</var>
+ as the type.</li>
+
+ </ol></li>
+
+ <li><p>Otherwise, if the <var title="">field</var> element is an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#file-upload-state title=attr-input-type-file>File Upload</a> state, then for
+ each file <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected</a> in the
+ <code><a href=#the-input-element>input</a></code> element, append an entry to the <var title="">form data set</var> with the <var title="">name</var> as
+ the name, the file (consisting of the name, the type, and the
+ body) as the value, and <var title="">type</var> as the type. If
+ there are no <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>,
+ then append an entry to the <var title="">form data set</var>
+ with the <var title="">name</var> as the name, the empty string
+ as the value, and <code>application/octet-stream</code> as the
+ type.</li>
+ <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=529859 -->
+
+ <li><p>Otherwise, if the <var title="">field</var> element is an
+ <code><a href=#the-object-element>object</a></code> element: try to obtain a form submission
+ value from the <a href=#plugin>plugin</a><!-- using NPAPI's
+ NPP_GetValue() entry point with the NPPVformValue variable -->,
+ and if that is successful, append an entry to the <var title="">form data set</var> with <var title="">name</var> as the
+ name, the returned form submission value as the value, and the
+ string "<code title="">object</code>" as the type.</li>
+
+ <li><p>Otherwise, append an entry to the <var title="">form data
+ set</var> with <var title="">name</var> as the name, the <a href=#concept-fe-value title=concept-fe-value>value</a> of the <var title="">field</var> element as the value, and <var title="">type</var> as the type.</li>
+
+ <li>
+
+ <p>If the element has a <a href=#form-control-dirname-attribute>form control <code title="">dirname</code> attribute</a>, and that attribute's
+ value is not the empty string, then run these substeps:</p>
+
+ <ol><li><p>Let <var title="">dirname</var> be the value of the
+ element's <code title="">dirname</code> attribute.</li>
+
+ <li><p>Let <var title="">dir</var> be the string "<code title="">ltr</code>" if <a href=#the-directionality>the directionality</a> of the
+ element is '<a href=#concept-ltr title=concept-ltr>ltr</a>', and "<code title="">rtl</code>" otherwise (i.e. when <a href=#the-directionality>the
+ directionality</a> of the element is '<a href=#concept-rtl title=concept-rtl>rtl</a>').</li>
+
+ <li><p>Append an entry to the <var title="">form data set</var>
+ with <var title="">dirname</var> as the name, <var title="">dir</var> as the value, and the string "<code title="">direction</code>" as the type.</li>
+
+ </ol><p class=note>An element can only have a <a href=#form-control-dirname-attribute>form control
+ <code title="">dirname</code> attribute</a> if it is a
+ <code><a href=#the-textarea-element>textarea</a></code> element or an <code><a href=#the-input-element>input</a></code> element
+ whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in
+ either the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state
+ or the <a href=#text-state-and-search-state title=attr-input-type-search>Search</a>
+ state.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li>
+
+ <p><i>End</i>: For the name and value of each entry in the <var title="">form data set</var> whose type is not "<code title="">file</code>", replace every occurrence of a U+000D
+ CARRIAGE RETURN (CR) character not followed by a U+000A LINE FEED
+ (LF) character, and every occurrence of a U+000A LINE FEED (LF)
+ character not preceded by a U+000D CARRIAGE RETURN (CR) character,
+ by a two-character string consisting of a U+000D CARRIAGE RETURN
+ U+000A LINE FEED (CRLF) character pair.</p>
+
+ <p class=note>In the case of the <a href=#concept-fe-value title=concept-fe-value>value</a> of <code><a href=#the-textarea-element>textarea</a></code>
+ elements, this newline normalization is redundant, as it is
+ already normalized from its <a href=#concept-textarea-raw-value title=concept-textarea-raw-value>raw value</a> for the
+ purposes of the DOM API.</p>
+
+ </li>
+
+ <li><p>Return the <var title="">form data set</var>.</li>
+
+ </ol></div>
+
+
+ <h5 id=url-encoded-form-data><span class=secno>4.10.22.5 </span>URL-encoded form data</h5>
+
+ <p class=note>This form data set encoding is in many ways an
+ aberrant monstrosity, the result of many years of implementation
+ accidents and compromises leading to a set of requirements necessary
+ for interoperability, but in no way representing good design
+ practices. In particular, readers are cautioned to pay close
+ attention to the twisted details involving repeated (and in some
+ cases nested) conversions between character encodings and byte
+ sequences.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=application/x-www-form-urlencoded-encoding-algorithm><code title="">application/x-www-form-urlencoded</code> encoding
+ algorithm</dfn> is as follows:</p>
+
+ <ol><!-- the first few steps of this are the same as in the next section --><li><p>Let <var title="">result</var> be the empty string.</li>
+
+ <li>
+
+ <p>If the <code><a href=#the-form-element>form</a></code> element has an <code title=attr-form-accept-charset><a href=#attr-form-accept-charset>accept-charset</a></code> attribute,
+ then, taking into account the characters found in the <var title="">form data set</var>'s names and values, and the character
+ encodings supported by the user agent, select a character encoding
+ from the list given in the <code><a href=#the-form-element>form</a></code>'s <code title=attr-form-accept-charset><a href=#attr-form-accept-charset>accept-charset</a></code> attribute
+ that is an <a href=#ascii-compatible-character-encoding>ASCII-compatible character encoding</a>. If
+ none of the encodings are supported, or if none are listed, then
+ let the selected character encoding be UTF-8.</p>
+
+ <p>Otherwise, if the <a href="#document's-character-encoding">document's character encoding</a> is
+ an <a href=#ascii-compatible-character-encoding>ASCII-compatible character encoding</a>, then that is
+ the selected character encoding.</p>
+
+ <p>Otherwise, let the selected character encoding be UTF-8.</p>
+
+ </li>
+
+ <li><p>Let <var title="">charset</var> be the <a href=#preferred-mime-name>preferred MIME
+ name</a> of the selected character encoding.</li>
+
+ <li>
+
+ <p>For each entry in the <var title="">form data set</var>,
+ perform these substeps:</p>
+
+ <ol><li><p>If the entry's name is "<code title=attr-fe-name-charset><a href=#attr-fe-name-charset>_charset_</a></code>"
+ and its type is "<code title="">hidden</code>", replace its value
+ with <var title="">charset</var>.</li>
+
+ <li><p>If the entry's type is "<code title="">file</code>",
+ replace its value with the file's filename only.</li> <!--
+ this is not present in the next section -->
+
+ <li><p>For each character in the entry's name and value that
+ cannot be expressed using the selected character encoding,
+ replace the character by a string consisting of a U+0026
+ AMPERSAND character (&amp;), a U+0023 NUMBER SIGN character (#),
+ one or more characters in the range U+0030 DIGIT ZERO (0) to
+ U+0039 DIGIT NINE (9) representing the Unicode code point of the
+ character in base ten, and finally a U+003B SEMICOLON character
+ (;).</li><!-- we should say it should be the shortest
+ possible string, no leading zeros. this whole step is asinine,
+ though, so... -->
+
+ <!-- this is where the similarities with the next section end -->
+
+ <li>
+
+ <p>Encode the entry's name and value using the selected
+ character encoding. The entry's name and value are now byte
+ strings.</p>
+
+ </li>
+
+ <li>
+
+ <p>For each byte in the entry's name and value, apply the
+ appropriate subsubsteps from the following list:</p>
+
+ <dl class=switch><dt>The byte is 0x20 (U+0020 SPACE if interpreted as ASCII)</dt>
+
+ <dd>Replace the byte with a single 0x2B byte (U+002B PLUS SIGN
+ character (+) if interpreted as ASCII).</dd>
+
+
+ <!-- * - . 0-9 a-z _ A-Z -->
+
+ <dt>If the byte is in the range 0x2A, 0x2D, 0x2E, 0x30 to 0x39,
+ 0x41 to 0x5A, 0x5F, 0x61 to 0x7A</dt>
+
+ <dd><p>Leave the byte as is.</dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <ol><li><p>Let <var title="">s</var> be a string consisting of a
+ U+0025 PERCENT SIGN character (%) followed by two characters
+ in the ranges U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
+ and U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL
+ LETTER F representing the hexadecimal value of the byte in
+ question (zero-padded if necessary).</li>
+
+ <li><p>Encode the string <var title="">s</var> as US-ASCII,
+ so that it is now a byte string.</p>
+
+ <li><p>Replace the byte in question in the name or value
+ being processed by the bytes in <var title="">s</var>,
+ preserving their relative order.</li>
+
+ </ol></dd>
+
+ </dl></li>
+
+ <li>
+
+ <p>Interpret the entry's name and value as Unicode strings
+ encoded in US-ASCII. (All of the bytes in the string will be in
+ the range 0x00 to 0x7F; the high bit will be zero throughout.)
+ The entry's name and value are now Unicode strings again.</p>
+
+ </li>
+
+ <li><p>If the entry's name is "<code title=attr-fe-name-isindex><a href=#attr-fe-name-isindex>isindex</a></code>", its type is "<code title="">text</code>", and this is the first entry in the <var title="">form data set</var>, then append the value to <var title="">result</var> and skip the rest of the substeps for this
+ entry, moving on to the next entry, if any, or the next step in
+ the overall algorithm otherwise.</li>
+
+ <li><p>If this is not the first entry, append a single U+0026
+ AMPERSAND character (&amp;) to <var title="">result</var>.</li>
+
+ <li><p>Append the entry's name to <var title="">result</var>.</li>
+
+ <li><p>Append a single U+003D EQUALS SIGN character (=) to <var title="">result</var>.</li>
+
+ <li><p>Append the entry's value to <var title="">result</var>.</li>
+
+ </ol></li>
+
+ <li><p>Encode <var title="">result</var> as US-ASCII and return the
+ resulting byte stream.</li>
+
+ </ol></div>
+
+ <p>To decode <code><a href=#application/x-www-form-urlencoded>application/x-www-form-urlencoded</a></code>
+ payloads, the following algorithm should be used. This algorithm
+ uses as inputs the payload itself, <var title="">payload</var>,
+ consisting of a Unicode string using only characters in the range
+ U+0000 to U+007F; a default character encoding <var title="">default
+ encoding</var>; and optionally an <var title="">isindex</var> flag
+ indicating that the payload is to be processed as if it had been
+ generated for a form containing an <code title=attr-fe-name-isindex><a href=#attr-fe-name-isindex>isindex</a></code> control. The output of
+ this algorithm is a sorted list of name-value pairs. If the <var title="">isindex</var> flag is set and the first control really ways
+ an <code title=attr-fe-name-isindex><a href=#attr-fe-name-isindex>isindex</a></code> control, then
+ the first name-value pair will have as its name the empty
+ string.</p>
+
+ <ol><li><p>Let <var title="">strings</var> be the result of <a href=#strictly-split-a-string title="strictly split a string">strictly splitting the
+ string</a> <var title="">payload</var> on U+0026 AMPERSAND
+ characters (&amp;).</li>
+
+ <li><p>If the <var title="">isindex</var> flag is set and the first
+ string in <var title="">strings</var> does not contain a U+003D
+ EQUALS SIGN character (=), insert a U+003D EQUALS SIGN character
+ (=) at the start of the first string in <var title="">strings</var>.</li>
+
+ <li><p>Let <var title="">pairs</var> be an empty list of name-value
+ pairs.</li>
+
+ <li>
+
+ <p>For each string <var title="">string</var> in <var title="">strings</var>, run these substeps:</p>
+
+ <ol><li>
+
+ <p>If <var title="">string</var> contains a U+003D EQUALS SIGN
+ character (=), then let <var title="">name</var> be the
+ substring of <var title="">string</var> from the start of <var title="">string</var> up to but excluding its first U+003D
+ EQUALS SIGN character (=), and let <var title="">value</var> be
+ the substring from the first character, if any, after the first
+ U+003D EQUALS SIGN character (=) up to the end of <var title="">string</var>. If the first U+003D EQUALS SIGN character
+ (=) is the first character, then <var title="">name</var> will
+ be the empty string. If it is the last character, then <var title="">value</var> will be the empty string.</p>
+
+ <p>Otherwise, <var title="">string</var> contains no U+003D
+ EQUALS SIGN characters (=). Let <var title="">name</var> have
+ the value of <var title="">string</var> and let <var title="">value</var> be the empty string.</p>
+
+ </li>
+
+ <li>
+
+ <p>Replace any U+002B PLUS SIGN characters (+) in <var title="">name</var> and <var title="">value</var> with U+0020
+ SPACE characters.</p>
+
+ </li>
+
+ <li>
+
+ <p>Replace any escape in <var title="">name</var> and <var title="">value</var> with the character represented by the
+ escape. This replacement most not be recursive.</p>
+
+ <p>An escape is a U+0025 PERCENT SIGN character (%) followed by
+ two characters in the ranges U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN
+ CAPITAL LETTER F, and U+0061 LATIN SMALL LETTER A to U+0066
+ LATIN SMALL LETTER F.</p>
+
+ <p>The character represented by an escape is the Unicode
+ character whose code point is equal to the value of the two
+ characters after the U+0025 PERCENT SIGN character (%),
+ interpreted as a hexadecimal number (in the range 0..255).</p>
+
+ <p class=example>So for instance the string "<code title="">A%2BC</code>" would become "<code title="">A+C</code>".
+ Similarly, the string "<code title="">100%25AA%21</code>"
+ becomes the string "<code title="">100%AA!</code>".</p>
+
+ </li>
+
+ <li><p>Convert the <var title="">name</var> and <var title="">value</var> strings to their byte representation in
+ ISO-8859-1 (i.e. convert the Unicode string to a byte string,
+ mapping code points to byte values directly).</li>
+
+ <li><p>Add a pair consisting of <var title="">name</var> and <var title="">value</var> to <var title="">pairs</var>.</li>
+
+ </ol></li>
+
+ <li><p>If any of the name-value pairs in <var title="">pairs</var>
+ have a name component consisting of the string "<code title="">_charset_</code>" encoded in US-ASCII, and the value
+ component of the first such pair, when decoded as US-ASCII, is the
+ name of a supported character encoding, then let <var title="">encoding</var> be that character encoding.</li>
+
+ <li><p>Convert the name and value components of each name-value
+ pair in <var title="">pairs</var> to Unicode by interpreting the
+ bytes according to the encoding <var title="">encoding</var>.</li>
+
+ <li><p>Return <var title="">pairs</var>.</li>
+
+ </ol><div class=impl>
+
+ <h5 id=multipart-form-data><span class=secno>4.10.22.6 </span>Multipart form data</h5>
+
+ <!-- http://hixie.ch/tests/adhoc/html/forms/submission/multipart_form-data/ -->
+
+ <!-- NOTE: This algorithm is also used by the XHR spec -->
+
+ <p>The <dfn id=multipart/form-data-encoding-algorithm><code title="">multipart/form-data</code> encoding
+ algorithm</dfn> is as follows:</p>
+
+ <ol><!-- the first few steps of this are the same as in the previous section --><li><p>Let <var title="">result</var> be the empty string.</li>
+
+ <li>
+
+ <p>If the algorithm was invoked with an explicit character
+ encoding, let the selected character encoding be that encoding.
+ (This algorithm is used by other specifications, which provide an
+ explicit character encoding to avoid the dependency on the
+ <code><a href=#the-form-element>form</a></code> element described in the next paragraph.)</p>
+
+ <p>Otherwise, if the <code><a href=#the-form-element>form</a></code> element has an <code title=attr-form-accept-charset><a href=#attr-form-accept-charset>accept-charset</a></code> attribute,
+ then, taking into account the characters found in the <var title="">form data set</var>'s names and values, and the character
+ encodings supported by the user agent, select a character encoding
+ from the list given in the <code><a href=#the-form-element>form</a></code>'s <code title=attr-form-accept-charset><a href=#attr-form-accept-charset>accept-charset</a></code> attribute
+ that is an <a href=#ascii-compatible-character-encoding>ASCII-compatible character encoding</a>. If
+ none of the encodings are supported, or if none are listed, then
+ let the selected character encoding be UTF-8.</p>
+
+ <p>Otherwise, if the <a href="#document's-character-encoding">document's character encoding</a> is
+ an <a href=#ascii-compatible-character-encoding>ASCII-compatible character encoding</a>, then that is
+ the selected character encoding.</p>
+
+ <p>Otherwise, let the selected character encoding be UTF-8.</p>
+
+ </li>
+
+ <li><p>Let <var title="">charset</var> be the <a href=#preferred-mime-name>preferred MIME
+ name</a> of the selected character encoding.</li>
+
+ <li>
+
+ <p>For each entry in the <var title="">form data set</var>,
+ perform these substeps:</p>
+
+ <ol><li><p>If the entry's name is "<code title=attr-fe-name-charset><a href=#attr-fe-name-charset>_charset_</a></code>" and its type is
+ "<code title="">hidden</code>", replace its value with <var title="">charset</var>.</li>
+
+ <!-- the step that replaces a file with its name is missing in
+ this version of the algorithm -->
+
+ <li><p>For each character in the entry's name and value that
+ cannot be expressed using the selected character encoding,
+ replace the character by a string consisting of a U+0026
+ AMPERSAND character (&amp;), a U+0023 NUMBER SIGN character (#),
+ one or more characters in the range U+0030 DIGIT ZERO (0) to
+ U+0039 DIGIT NINE (9) representing the Unicode code point of the
+ character in base ten, and finally a U+003B SEMICOLON character
+ (;).</li><!-- we should say it should be the shortest
+ possible string, no leading zeros. this whole step is asinine,
+ though, so... -->
+
+ <!-- this is where the similarities with the previous section end -->
+
+ </ol></li>
+
+ <li>
+
+ <p>Encode the (now mutated) <var title="">form data set</var>
+ using the rules described by RFC 2388, <cite>Returning Values from
+ Forms: <code title="">multipart/form-data</code></cite>, and
+ return the resulting byte stream. <a href=#refsRFC2388>[RFC2388]</a></p>
+
+ <p>Each entry in the <var title="">form data set</var> is a
+ <i>field</i>, the name of the entry is the <i>field name</i> and
+ the value of the entry is the <i>field value</i>.</p>
+
+ <p>The order of parts must be the same as the order of fields in
+ the <var title="">form data set</var>. Multiple entries with the
+ same name must be treated as distinct fields.</p>
+
+ <p class=note>In particular, this means that multiple files
+ submitted as part of a single <code title="">&lt;input&nbsp;type=file&nbsp;multiple&gt;</code> element
+ will result in each file having its own field; the "sets of files"
+ feature ("<code title="">multipart/mixed</code>") of RFC 2388 is
+ not used.</p>
+
+ <p>The parts of the generated <code title="">multipart/form-data</code> resource that correspond to
+ non-file fields must not have a <code><a href=#content-type>Content-Type</a></code> header
+ specified. Their names and values must be encoded using the
+ character encoding selected above (field names in particular do
+ not get converted to a 7-bit safe encoding as suggested in RFC
+ 2388).</p>
+
+ <p>File names included in the generated <code title="">multipart/form-data</code> resource (as part of file
+ fields) must use the character encoding selected above, though the
+ precise name may be approximated if necessary (e.g. newlines could
+ be removed from file names, quotes could be changed to "%22", and
+ characters not expressible in the selected character encoding
+ could be replaced by other characters). User agents must not use
+ the RFC 2231 encoding suggested by RFC 2388.</p> <!-- this isn't a
+ willful violation since 2388 doesn't make it a requirement, it
+ just vaguely suggests it -->
+
+ <p>The boundary used by the user agent in generating the return
+ value of this algorithm is the <dfn id=multipart/form-data-boundary-string><code title="">multipart/form-data</code> boundary string</dfn>. (This
+ value is used to generate the MIME type of the form submission
+ payload generated by this algorithm.)</p>
+
+ </li>
+
+ </ol></div>
+
+ <p>For details on how to interpret <code>multipart/form-data</code>
+ payloads, see RFC 2388. <a href=#refsRFC2388>[RFC2388]</a></p>
+
+
+
+ <h5 id=plain-text-form-data><span class=secno>4.10.22.7 </span>Plain text form data</h5>
+
+ <div class=impl>
+
+ <p>The <dfn id=text/plain-encoding-algorithm><code title="">text/plain</code> encoding
+ algorithm</dfn> is as follows:</p>
+
+ <ol><li><p>Let <var title="">result</var> be the empty string.</li>
+
+ <li>
+
+ <!-- this is different from application/x-www-form-urlencoded in
+ that it isn't limited to ASCII-compatible encodings -->
+
+ <p>If the <code><a href=#the-form-element>form</a></code> element has an <code title=attr-form-accept-charset><a href=#attr-form-accept-charset>accept-charset</a></code> attribute,
+ then, taking into account the characters found in the <var title="">form data set</var>'s names and values, and the character
+ encodings supported by the user agent, select a character encoding
+ from the list given in the <code><a href=#the-form-element>form</a></code>'s <code title=attr-form-accept-charset><a href=#attr-form-accept-charset>accept-charset</a></code> attribute.
+ If none of the encodings are supported, or if none are listed,
+ then let the selected character encoding be UTF-8.</p>
+
+ <p>Otherwise, the selected character encoding is the
+ <a href="#document's-character-encoding">document's character encoding</a>.</p>
+
+ </li>
+
+ <li><p>Let <var title="">charset</var> be the <a href=#preferred-mime-name>preferred MIME
+ name</a> of the selected character encoding.</li>
+
+ <li><p>If the entry's name is "<code title=attr-fe-name-charset><a href=#attr-fe-name-charset>_charset_</a></code>" and its type is
+ "<code title="">hidden</code>", replace its value with <var title="">charset</var>.</li>
+
+ <li><p>If the entry's type is "<code title="">file</code>", replace
+ its value with the file's filename only.</li>
+
+ <li>
+
+ <p>For each entry in the <var title="">form data set</var>,
+ perform these substeps:</p>
+
+ <ol><li><p>Append the entry's name to <var title="">result</var>.</li>
+
+ <li><p>Append a single U+003D EQUALS SIGN character (=) to <var title="">result</var>.</li>
+
+ <li><p>Append the entry's value to <var title="">result</var>.</li>
+
+ <li><p>Append a U+000D CARRIAGE RETURN (CR) U+000A LINE FEED (LF)
+ character pair to <var title="">result</var>.</li>
+
+ </ol></li>
+
+ <li><p>Encode <var title="">result</var> using the selected
+ character encoding and return the resulting byte stream.</li>
+
+ </ol></div>
+
+ <p>Payloads using the <code>text/plain</code> format are intended to
+ be human readable. They are not reliably interpretable by computer,
+ as the format is ambiguous (for example, there is no way to
+ distinguish a literal newline in a value from the newline at the end
+ of the value).</p>
+
+
+
+ <div class=impl>
+
+ <h4 id=resetting-a-form><span class=secno>4.10.23 </span>Resetting a form</h4>
+
+ <p>When a <code><a href=#the-form-element>form</a></code> element <var title="">form</var> is <dfn id=concept-form-reset title=concept-form-reset>reset</dfn>, the user agent must
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-reset>reset</code>, that is cancelable, at <var title="">form</var>, and then, if that event is not canceled, must
+ invoke the <a href=#concept-form-reset-control title=concept-form-reset-control>reset
+ algorithm</a> of each <a href=#category-reset title=category-reset>resettable
+ element</a> whose <a href=#form-owner>form owner</a> is <var title="">form</var>.</p>
+
+ <p>Each <a href=#category-reset title=category-reset>resettable element</a>
+ defines its own <dfn id=concept-form-reset-control title=concept-form-reset-control>reset
+ algorithm</dfn>. Changes made to form controls as part of these
+ algorithms do not count as changes caused by the user (and thus,
+ e.g., do not cause <code title=event-input>input</code> events to
+ fire).</p>
+
+ </div>
+
+
+
+ <h3 id=interactive-elements><span class=secno>4.11 </span>Interactive elements</h3>
+
+ <h4 id=the-details-element><span class=secno>4.11.1 </span>The <dfn><code>details</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#sectioning-root>Sectioning root</a>.</dd>
+ <dd><a href=#interactive-content>Interactive content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>One <code><a href=#the-summary-element>summary</a></code> element followed by <a href=#flow-content>flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-details-open><a href=#attr-details-open>open</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmldetailselement>HTMLDetailsElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-details-open title=dom-details-open>open</a>;
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-details-element>details</a></code> element <a href=#represents>represents</a> a
+ disclosure widget from which the user can obtain additional
+ information or controls.</p>
+
+ <p class=note>The <code><a href=#the-details-element>details</a></code> element is not appropriate
+ for footnotes. Please see <a href=#footnotes>the section on
+ footnotes</a> for details on how to mark up footnotes.</p>
+
+ <p>The <span class=impl>first</span> <code><a href=#the-summary-element>summary</a></code> element
+ child of the element, if any, <a href=#represents>represents</a> the summary or
+ legend of the details. <span class=impl>If there is no child
+ <code><a href=#the-summary-element>summary</a></code> element, the user agent should provide its own
+ legend (e.g. "Details").</span></p>
+
+ <p>The rest of the element's contents <a href=#represents>represents</a> the
+ additional information or controls.</p>
+
+ <p>The <dfn id=attr-details-open title=attr-details-open><code>open</code></dfn>
+ content attribute is a <a href=#boolean-attribute>boolean attribute</a>. If present,
+ it indicates that both the summary and the additional information is
+ to be shown to the user. If the attribute is absent, only the
+ summary is to be shown.</p>
+
+ <div class=impl>
+
+ <p>When the element is created, if the attribute is absent, the
+ additional information should be hidden; if the attribute is
+ present, that information should be shown. Subsequently, if the
+ attribute is removed, then the information should be hidden; if the
+ attribute is added, the information should be shown.</p>
+
+ <p>The user agent should allow the user to request that the
+ additional information be shown or hidden. To honor a request for
+ the details to be shown, the user agent must set the <code title=attr-details-open><a href=#attr-details-open>open</a></code> attribute on the element to
+ the value <code title="">open</code>. To honor a request for the
+ information to be hidden, the user agent must remove the <code title=attr-details-open><a href=#attr-details-open>open</a></code> attribute from the
+ element.</p>
+
+ <p>The <dfn id=dom-details-open title=dom-details-open><code>open</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-details-open><a href=#attr-details-open>open</a></code> content attribute.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following example shows the <code><a href=#the-details-element>details</a></code> element
+ being used to hide technical details in a progress report.</p>
+
+ <pre>&lt;section class="progress window"&gt;
+ &lt;h1&gt;Copying "Really Achieving Your Childhood Dreams"&lt;/h1&gt;
+ &lt;details&gt;
+ &lt;summary&gt;Copying... &lt;progress max="375505392" value="97543282"&gt;&lt;/progress&gt; 25%&lt;/summary&gt;
+ &lt;dl&gt;
+ &lt;dt&gt;Transfer rate:&lt;/dt&gt; &lt;dd&gt;452KB/s&lt;/dd&gt;
+ &lt;dt&gt;Local filename:&lt;/dt&gt; &lt;dd&gt;/home/rpausch/raycd.m4v&lt;/dd&gt;
+ &lt;dt&gt;Remote filename:&lt;/dt&gt; &lt;dd&gt;/var/www/lectures/raycd.m4v&lt;/dd&gt;
+ &lt;dt&gt;Duration:&lt;/dt&gt; &lt;dd&gt;01:16:27&lt;/dd&gt;
+ &lt;dt&gt;Color profile:&lt;/dt&gt; &lt;dd&gt;SD (6-1-6)&lt;/dd&gt;
+ &lt;dt&gt;Dimensions:&lt;/dt&gt; &lt;dd&gt;320&times;240&lt;/dd&gt;
+ &lt;/dl&gt;
+ &lt;/details&gt;
+&lt;/section&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following shows how a <code><a href=#the-details-element>details</a></code> element can be
+ used to hide some controls by default:</p>
+
+ <pre>&lt;details&gt;
+ &lt;summary&gt;&lt;label for=fn&gt;Name &amp; Extension:&lt;/label&gt;&lt;/summary&gt;
+ &lt;p&gt;&lt;input type=text id=fn name=fn value="Pillar Magazine.pdf"&gt;
+ &lt;p&gt;&lt;label&gt;&lt;input type=checkbox name=ext checked&gt; Hide extension&lt;/label&gt;
+&lt;/details&gt;</pre>
+
+ <p>One could use this in conjunction with other <code><a href=#the-details-element>details</a></code>
+ in a list to allow the user to collapse a set of fields down to a
+ small set of headings, with the ability to open each one.</p>
+
+ <p class=details-example><img alt="" height=611 src=greenbox.png width=345><img alt="" height=666 src=greenbox.png width=345></p>
+
+ <p>In these examples, the summary really just summarises what the
+ controls can change, and not the actual values, which is less than
+ ideal.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Because the <code title=attr-details-open><a href=#attr-details-open>open</a></code>
+ attribute is added and removed automatically as the user interacts
+ with the control, it can be used in CSS to style the element
+ differently based on its state. Here, a stylesheet is used to
+ animate the color of the summary when the element is opened or
+ closed:</p>
+
+ <pre>&lt;style&gt;
+ details &gt; summary { transition: color 1s; color: black; }
+ details[open] &gt; summary { color: red; }
+&lt;/style&gt;
+&lt;details&gt;
+ &lt;summary&gt;Automated Status: Operational&lt;/summary&gt;
+ &lt;p&gt;Velocity: 12m/s&lt;/p&gt;
+ &lt;p&gt;Direction: North&lt;/p&gt;
+&lt;/details&gt;</pre>
+
+ </div>
+
+
+ <h4 id=the-summary-element><span class=secno>4.11.2 </span>The <dfn><code>summary</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd>None.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>As the first child of a <code><a href=#the-details-element>details</a></code> element.</dd>
+ <dt>Content model:</dt>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dt>DOM interface:</dt>
+ <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
+ </dl><p>The <code><a href=#the-summary-element>summary</a></code> element <a href=#represents>represents</a> a
+ summary, caption, or legend for the rest of the contents of the
+ <code><a href=#the-summary-element>summary</a></code> element's parent <code><a href=#the-details-element>details</a></code>
+ element<span class=impl>, if any</span>.</p>
+
+
+
+
+ <h4 id=the-command-element><span class=secno>4.11.3 </span>The <dfn id=the-command><code>command</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#metadata-content>Metadata content</a>.</dd>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#metadata-content>metadata content</a> is expected.</dd>
+ <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Empty.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-command-type><a href=#attr-command-type>type</a></code></dd>
+ <dd><code title=attr-command-label><a href=#attr-command-label>label</a></code></dd>
+ <dd><code title=attr-command-icon><a href=#attr-command-icon>icon</a></code></dd>
+ <dd><code title=attr-command-disabled><a href=#attr-command-disabled>disabled</a></code></dd>
+ <dd><code title=attr-command-checked><a href=#attr-command-checked>checked</a></code></dd>
+ <dd><code title=attr-command-radiogroup><a href=#attr-command-radiogroup>radiogroup</a></code></dd>
+ <!--<dd><code title="attr-command-default">default</code></dd>-->
+ <dd>Also, the <code title=attr-command-title><a href=#attr-command-title>title</a></code> attribute has special semantics on this element.</dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlcommandelement>HTMLCommandElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-command-type title=dom-command-type>type</a>;
+ attribute DOMString <a href=#dom-command-label title=dom-command-label>label</a>;
+ attribute DOMString <a href=#dom-command-icon title=dom-command-icon>icon</a>;
+ attribute boolean <a href=#dom-command-disabled title=dom-command-disabled>disabled</a>;
+ attribute boolean <a href=#dom-command-checked title=dom-command-checked>checked</a>;
+ attribute DOMString <a href=#dom-command-radiogroup title=dom-command-radiogroup>radiogroup</a>;<!--
+ attribute boolean <span title="dom-command-default">default</span>;-->
+};</pre>
+ </dd>
+ </dl><p>The <code><a href=#the-command-element>command</a></code> element represents a command that the user
+ can invoke.</p>
+
+ <p>A command can be part of a context menu or toolbar, using the
+ <code><a href=#the-menu-element>menu</a></code> element, or can be put anywhere else in the page,
+ to define a keyboard shortcut.</p> <!-- in the future we'll also add
+ a command="" attribute to refer to a command, which can then be
+ defined anywhere -->
+
+ <p>The <dfn id=attr-command-type title=attr-command-type><code>type</code></dfn>
+ attribute indicates the kind of command: either a normal command
+ with an associated action, or a state or option that can be toggled,
+ or a selection of one item from a list of items.</p>
+
+ <p>The attribute is an <a href=#enumerated-attribute>enumerated attribute</a> with three
+ keywords and states. The "<dfn id=attr-command-type-keyword-command title=attr-command-type-keyword-command><code>command</code></dfn>"
+ keyword maps to the <a href=#attr-command-type-state-command title=attr-command-type-state-command>Command</a> state, the
+ "<dfn id=attr-command-type-keyword-checkbox title=attr-command-type-keyword-checkbox><code>checkbox</code></dfn>"
+ keyword maps to the <a href=#attr-command-type-state-checkbox title=attr-command-type-state-checkbox>Checkbox</a> state, and
+ the "<dfn id=attr-command-type-keyword-radio title=attr-command-type-keyword-radio><code>radio</code></dfn>"
+ keyword maps to the <a href=#attr-command-type-state-radio title=attr-command-type-state-radio>Radio</a> state. The
+ <i>missing value default</i> is the <a href=#attr-command-type-state-command title=attr-command-type-state-command>Command</a> state.</p>
+
+ <dl><dt>The <dfn id=attr-command-type-state-command title=attr-command-type-state-command>Command</dfn> state</dt>
+
+ <dd><p>The element <a href=#represents>represents</a> a normal command with an associated action.</dd>
+
+ <dt>The <dfn id=attr-command-type-state-checkbox title=attr-command-type-state-checkbox>Checkbox</dfn> state</dt>
+
+ <dd><p>The element <a href=#represents>represents</a> a state or option that can be toggled.</dd>
+
+ <dt>The <dfn id=attr-command-type-state-radio title=attr-command-type-state-radio>Radio</dfn> state</dt>
+
+ <dd><p>The element <a href=#represents>represents</a> a selection of one item from a list of items.</dd>
+
+ </dl><p>The <dfn id=attr-command-label title=attr-command-label><code>label</code></dfn>
+ attribute gives the name of the command, as shown to the user. The
+ <code title=attr-command-label><a href=#attr-command-label>label</a></code> attribute must be
+ specified and must have a value that is not the empty string.</p>
+
+ <p>The <dfn id=attr-command-title title=attr-command-title><code>title</code></dfn>
+ attribute gives a hint describing the command, which might be shown
+ to the user to help him.</p>
+
+ <p>The <dfn id=attr-command-icon title=attr-command-icon><code>icon</code></dfn>
+ attribute gives a picture that represents the command. If the
+ attribute is specified, the attribute's value must contain a
+ <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
+ spaces</a>. <span class=impl>To obtain the <a href=#absolute-url>absolute
+ URL</a> of the icon when the attribute's value is not the empty
+ string, the attribute's value must be <a href=#resolve-a-url title="resolve a
+ url">resolved</a> relative to the element. When the attribute is
+ absent, or its value is the empty string, or <a href=#resolve-a-url title="resolve a
+ url">resolving</a> its value fails, there is no icon.</span></p>
+ <!-- this is affected by the base URL being changed, so users of
+ this should cache the image once they've fetched it once, at least
+ until the relative url changes again -->
+
+ <p>The <dfn id=attr-command-disabled title=attr-command-disabled><code>disabled</code></dfn> attribute
+ is a <a href=#boolean-attribute>boolean attribute</a> that, if present, indicates that
+ the command is not available in the current state.</p>
+
+ <p class=note>The distinction between <code title=attr-command-disabled><a href=#attr-command-disabled>disabled</a></code> and <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> is subtle. A command would be
+ disabled if, in the same context, it could be enabled if only
+ certain aspects of the situation were changed. A command would be
+ marked as hidden if, in that situation, the command will never be
+ enabled. For example, in the context menu for a water faucet, the
+ command "open" might be disabled if the faucet is already open, but
+ the command "eat" would be marked hidden since the faucet could
+ never be eaten.</p>
+
+ <p>The <dfn id=attr-command-checked title=attr-command-checked><code>checked</code></dfn>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a> that, if present,
+ indicates that the command is selected. The attribute must be
+ omitted unless the <code title=attr-command-type><a href=#attr-command-type>type</a></code>
+ attribute is in either the <a href=#attr-command-type-state-checkbox title=attr-command-type-state-checkbox>Checkbox</a> state or
+ the <a href=#attr-command-type-state-radio title=attr-command-type-state-radio>Radio</a>
+ state.</p>
+
+ <p>The <dfn id=attr-command-radiogroup title=attr-command-radiogroup><code>radiogroup</code></dfn>
+ attribute gives the name of the group of commands that will be
+ toggled when the command itself is toggled, for commands whose <code title=attr-command-type><a href=#attr-command-type>type</a></code> attribute has the value "<code title="">radio</code>". The scope of the name is the child list of
+ the parent element. The attribute must be omitted unless the <code title=attr-command-type><a href=#attr-command-type>type</a></code> attribute is in the <a href=#attr-command-type-state-radio title=attr-command-type-state-radio>Radio</a> state.</p>
+
+<!--
+ <p>If the <code>command</code> element is used when <span
+ title="menu generation">generating</span> a <span>context
+ menu</span>, then the <dfn
+ title="attr-command-default"><code>default</code></dfn> attribute
+ indicates, if present, that the command is the one that would have
+ been invoked if the user had directly activated the menu's subject
+ instead of using its context menu. The <code
+ title="attr-command-default">default</code> attribute is a
+ <span>boolean attribute</span>. The attribute must be omitted unless
+ the <code title="attr-command-type">type</code> attribute is in the
+ <span title="attr-command-type-state-command">Command</span>
+ state.</p>
+
+ <div class="example">
+
+ ...an example that shows an element that, if double-clicked,
+ invokes an action, but that also has a context menu, showing the
+ various <code>command</code> attributes off, and that has a default
+ command...
+
+ </div>
+-->
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-command-type title=dom-command-type><code>type</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
+
+ <p>The <dfn id=dom-command-label title=dom-command-label><code>label</code></dfn>, <dfn id=dom-command-icon title=dom-command-icon><code>icon</code></dfn>, <dfn id=dom-command-disabled title=dom-command-disabled><code>disabled</code></dfn>, <dfn id=dom-command-checked title=dom-command-checked><code>checked</code></dfn>, and <dfn id=dom-command-radiogroup title=dom-command-radiogroup><code>radiogroup</code></dfn><!--,
+ and <dfn title="dom-command-default"><code>default</code></dfn>-->
+ IDL attributes must <a href=#reflect>reflect</a> the respective content
+ attributes of the same name.</p>
+
+ <p>The element's <a href=#activation-behavior>activation behavior</a> depends on the
+ value of the <code title=attr-command-type><a href=#attr-command-type>type</a></code> attribute
+ of the element, as follows:</p>
+
+ <dl class=switch><dt>If the <code title=attr-command-type><a href=#attr-command-type>type</a></code> attribute is
+ in the <a href=#attr-command-type-state-checkbox title=attr-command-type-state-checkbox>Checkbox</a> state</dt>
+
+ <dd><p>If the element has a <code title=attr-command-checked><a href=#attr-command-checked>checked</a></code> attribute, the UA must
+ remove that attribute. Otherwise, the UA must add a <code title=attr-command-checked><a href=#attr-command-checked>checked</a></code> attribute, with the
+ literal value <code title="">checked</code>.</dd>
+
+
+ <dt>If the <code title=attr-command-type><a href=#attr-command-type>type</a></code> attribute is
+ in the <a href=#attr-command-type-state-radio title=attr-command-type-state-radio>Radio</a> state</dt>
+
+ <dd><p>If the element has a parent, then the UA must walk the list
+ of child nodes of that parent element, and for each node that is a
+ <code><a href=#the-command-element>command</a></code> element, if that element has a <code title=attr-command-radiogroup><a href=#attr-command-radiogroup>radiogroup</a></code> attribute whose
+ value exactly matches the current element's (treating missing <code title=attr-command-radiogroup><a href=#attr-command-radiogroup>radiogroup</a></code> attributes as if
+ they were the empty string), and has a <code title=attr-command-checked><a href=#attr-command-checked>checked</a></code> attribute, must remove
+ that attribute.</p>
+
+ <p>Then, the element's <code title=attr-command-checked><a href=#attr-command-checked>checked</a></code> attribute attribute
+ must be set to the literal value <code title="">checked</code>.</dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd><p>The element has no <a href=#activation-behavior>activation behavior</a>.</dd>
+
+ </dl><p class=note>Firing a synthetic <code title=event-click><a href=#event-click>click</a></code> event at the element does not cause
+ any of the actions described above to happen.</p>
+
+ <!-- v2COMMAND: the command="" attribute to make a <command> element
+ reflect the state of another command, so that the script can update
+ one place in the page and have context menus, toolbars, shortcuts,
+ etc, automatically update. Once we add this, expose the Triggers
+ facet again. -->
+
+ </div>
+
+ <p class=note><code><a href=#the-command-element>command</a></code> elements are not rendered
+ unless they <a href=#the-menu-element title=menu>form part of a menu</a>.</p>
+
+ <div class=example>
+
+ <p>Here is an example of a toolbar with three buttons that let the
+ user toggle between left, center, and right alignment. One could
+ imagine such a toolbar as part of a text editor. The toolbar also
+ has a separator followed by another button labeled "Publish",
+ though that button is disabled.</p>
+
+ <pre>&lt;menu type="toolbar"&gt;
+ &lt;command type="radio" radiogroup="alignment" checked="checked"
+ label="Left" icon="icons/alL.png" onclick="setAlign('left')"&gt;
+ &lt;command type="radio" radiogroup="alignment"
+ label="Center" icon="icons/alC.png" onclick="setAlign('center')"&gt;
+ &lt;command type="radio" radiogroup="alignment"
+ label="Right" icon="icons/alR.png" onclick="setAlign('right')"&gt;
+ &lt;hr&gt;
+ &lt;command type="command" disabled
+ label="Publish" icon="icons/pub.png" onclick="publish()"&gt;
+&lt;/menu&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-menu-element><span class=secno>4.11.4 </span>The <dfn id=menus><code>menu</code></dfn> element</h4>
+
+ <dl class=element><dt>Categories</dt>
+ <dd><a href=#flow-content>Flow content</a>.</dd>
+ <dd>If the element's <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute is in the <a href=#toolbar-state title="toolbar state">toolbar</a> state: <a href=#interactive-content>Interactive content</a>.</dd>
+ <dt>Contexts in which this element can be used:</dt>
+ <dd>Where <a href=#flow-content>flow content</a> is expected.</dd>
+ <dt>Content model:</dt>
+ <dd>Either: Zero or more <code><a href=#the-li-element>li</a></code> elements.</dd>
+ <dd>Or: <a href=#flow-content>Flow content</a>.</dd>
+ <dt>Content attributes:</dt>
+ <dd><a href=#global-attributes>Global attributes</a></dd>
+ <dd><code title=attr-menu-type><a href=#attr-menu-type>type</a></code></dd>
+ <dd><code title=attr-menu-label><a href=#attr-menu-label>label</a></code></dd>
+ <dt>DOM interface:</dt>
+ <dd>
+<pre class=idl>interface <dfn id=htmlmenuelement>HTMLMenuElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-menu-type title=dom-menu-type>type</a>;
+ attribute DOMString <a href=#dom-menu-label title=dom-menu-label>label</a>;
+};</pre>
+ </dl><p>The <code><a href=#the-menu-element>menu</a></code> element represents a list of commands.</p>
+
+ <!-- v2 idea: <menu> should get an icon, like <command> -->
+
+ <p>The <dfn id=attr-menu-type title=attr-menu-type><code>type</code></dfn> attribute
+ is an <a href=#enumerated-attribute>enumerated attribute</a> indicating the kind of menu
+ being declared. The attribute has three states. The <code title=attr-menu-type-context>context</code> keyword maps to the
+ <dfn id=context-menu-state title="context menu state">context menu</dfn> state, in which
+ the element is declaring a context menu. The <code title=attr-menu-type-toolbar>toolbar</code> keyword maps to the
+ <dfn id=toolbar-state title="toolbar state">toolbar</dfn> state, in which the
+ element is declaring a toolbar. The attribute may also be
+ omitted. The <i>missing value default</i> is the <dfn id=list-state title="list
+ state">list</dfn> state, which indicates that the element is merely
+ a list of commands that is neither declaring a context menu nor
+ defining a toolbar.</p>
+
+ <p>If a <code><a href=#the-menu-element>menu</a></code> element's <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute is in the <a href=#context-menu-state title="context menu state">context menu</a> state, then the
+ element <a href=#represents>represents</a> the commands of a context menu, and
+ the user can only interact with the commands if that context menu is
+ activated.</p>
+
+ <p>If a <code><a href=#the-menu-element>menu</a></code> element's <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute is in the <a href=#toolbar-state title="toolbar state">toolbar</a> state, then the element
+ <a href=#represents>represents</a> a list of active commands that the user can
+ immediately interact with.</p>
+
+ <p>If a <code><a href=#the-menu-element>menu</a></code> element's <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute is in the <a href=#list-state title="list state">list</a> state, then the element either
+ <a href=#represents>represents</a> an unordered list of items (each represented
+ by an <code><a href=#the-li-element>li</a></code> element), each of which represents a command
+ that the user can perform or activate, or, if the element has no
+ <code><a href=#the-li-element>li</a></code> element children, <a href=#flow-content>flow content</a>
+ describing available commands.</p>
+
+ <p>The <dfn id=attr-menu-label title=attr-menu-label><code>label</code></dfn>
+ attribute gives the label of the menu. It is used by user agents to
+ display nested menus in the UI. For example, a context menu
+ containing another menu would use the nested menu's <code title=attr-menu-label><a href=#attr-menu-label>label</a></code> attribute for the submenu's
+ menu label.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-menu-type title=dom-menu-type><code>type</code></dfn> and <dfn id=dom-menu-label title=dom-menu-label><code>label</code></dfn> IDL attributes must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ </div>
+
+
+
+ <h5 id=menus-intro><span class=secno>4.11.4.1 </span>Introduction</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The <code><a href=#the-menu-element>menu</a></code> element is used to define context menus and
+ toolbars.</p>
+
+ <p>For example, the following represents a toolbar with three menu
+ buttons on it, each of which has a dropdown menu with a series of
+ options:</p>
+
+ <pre>&lt;menu type="toolbar"&gt;
+ &lt;li&gt;
+ &lt;menu label="File"&gt;
+ &lt;button type="button" onclick="fnew()"&gt;New...&lt;/button&gt;
+ &lt;button type="button" onclick="fopen()"&gt;Open...&lt;/button&gt;
+ &lt;button type="button" onclick="fsave()"&gt;Save&lt;/button&gt;
+ &lt;button type="button" onclick="fsaveas()"&gt;Save as...&lt;/button&gt;
+ &lt;/menu&gt;
+ &lt;/li&gt;
+ &lt;li&gt;
+ &lt;menu label="Edit"&gt;
+ &lt;button type="button" onclick="ecopy()"&gt;Copy&lt;/button&gt;
+ &lt;button type="button" onclick="ecut()"&gt;Cut&lt;/button&gt;
+ &lt;button type="button" onclick="epaste()"&gt;Paste&lt;/button&gt;
+ &lt;/menu&gt;
+ &lt;/li&gt;
+ &lt;li&gt;
+ &lt;menu label="Help"&gt;
+ &lt;li&gt;&lt;a href="help.html"&gt;Help&lt;/a&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;a href="about.html"&gt;About&lt;/a&gt;&lt;/li&gt;
+ &lt;/menu&gt;
+ &lt;/li&gt;
+&lt;/menu&gt;</pre>
+
+ <p>In a supporting user agent, this might look like this:</p>
+
+ <p><img alt="A toolbar with three buttons, labeled 'File', 'Edit', and 'Help'; where if you select the 'Edit' button you get a drop-down menu with three more options, 'Copy', 'Cut', and 'Paste'." height=101 src=greenbox.png width=303></p>
+
+ <p>In a legacy user agent, the above would look like a bulleted list
+ with three items, the first of which has four buttons, the second of
+ which has three, and the third of which has two nested bullet points
+ with two items consisting of links.</p>
+
+ <hr><p>The following implements a similar toolbar, with a single button
+ whose values, when selected, redirect the user to Web sites.</p>
+
+ <pre>&lt;form action="redirect.cgi"&gt;
+ &lt;menu type="toolbar"&gt;
+ &lt;label for="goto"&gt;Go to...&lt;/label&gt;
+ &lt;menu label="Go"&gt;
+ &lt;select id="goto"<!--
+ onchange="if (this.options[this.selectedIndex].value)
+ window.location = this.options[this.selectedIndex].value"-->&gt;
+ &lt;option value="" selected="selected"&gt; Select site: &lt;/option&gt;
+ &lt;option value="http://www.apple.com/"&gt; Apple &lt;/option&gt;
+ &lt;option value="http://www.mozilla.org/"&gt; Mozilla &lt;/option&gt;
+ &lt;option value="http://www.opera.com/"&gt; Opera &lt;/option&gt;
+ &lt;/select&gt;
+ &lt;span&gt;&lt;input type="submit" value="Go"&gt;&lt;/span&gt;
+ &lt;/menu&gt;
+ &lt;/menu&gt;
+&lt;/form&gt;</pre>
+
+ <p>The behavior in supporting user agents is similar to the example
+ above, but here the legacy behavior consists of a single
+ <code><a href=#the-select-element>select</a></code> element with a submit button. The submit button
+ doesn't appear in the toolbar, because it is not a child of the
+ <code><a href=#the-menu-element>menu</a></code> element or of its <code><a href=#the-li-element>li</a></code> children.</p>
+
+
+
+ <div class=impl>
+
+ <h5 id=building-menus-and-toolbars><span class=secno>4.11.4.2 </span><dfn>Building menus and toolbars</dfn></h5>
+
+ <p>A menu (or toolbar) consists of a list of zero or more of the
+ following components:</p>
+
+ <ul class=brief><li><a href=#concept-command title=concept-command>Commands</a>, which can be marked as default commands</li>
+ <li>Separators</li>
+ <li>Other menus (which allows the list to be nested)</li>
+ </ul><p>The list corresponding to a particular <code><a href=#the-menu-element>menu</a></code> element
+ is built by iterating over its child nodes. For each child node in
+ <a href=#tree-order>tree order</a>, the required behavior depends on what the
+ node is, as follows:</p>
+
+ <dl class=switch><dt>An element that <a href=#concept-command title=concept-command>defines a command</a></dt>
+
+ <dd>Append the command to the menu, respecting its <a href=#concept-facet title=concept-facet>facets</a><!-- we might need to be
+ explicit about what this means for each facet, if testing shows
+ this isn't well-implemented. e.g.: If there's an Icon facet for the
+ command, it should be <span title="fetch">fetched</span> (this
+ would be http-origin privacy-sensitive), and then that image should
+ be associated with the command, such that each command only has its
+ image fetched once, to prevent changes to the base URL from having
+ effects after the image has been fetched once. (no need to resolve
+ the Icon facet, it's an absolute URL) -->. <!--If the element is a
+ <code>command</code> element with a <code
+ title="attr-command-default">default</code> attribute, mark the
+ command as being a default command.--></dd>
+
+
+ <dt>An <code><a href=#the-hr-element>hr</a></code> element</dt>
+ <dt>An <code><a href=#the-option-element>option</a></code> element that has a <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute set to the empty
+ string, and has a <code title=attr-option-disabled><a href=#attr-option-disabled>disabled</a></code> attribute, and whose
+ <code><a href=#textcontent>textContent</a></code> consists of a string of one or more
+ hyphens (U+002D HYPHEN-MINUS)</dt>
+
+ <dd>Append a separator to the menu.</dd>
+
+
+ <dt>An <code><a href=#the-li-element>li</a></code> element</dt>
+ <dt>A <code><a href=#the-label-element>label</a></code> element</dt>
+
+ <dd>Iterate over the children of the element.</dd>
+
+
+ <dt>A <code><a href=#the-menu-element>menu</a></code> element with no <code title=attr-menu-label><a href=#attr-menu-label>label</a></code> attribute</dt>
+ <dt>A <code><a href=#the-select-element>select</a></code> element</dt>
+
+ <dd>Append a separator to the menu, then iterate over the children
+ of the <code><a href=#the-menu-element>menu</a></code> or <code><a href=#the-select-element>select</a></code> element, then
+ append another separator.</dd>
+
+ <!-- v2: we might want to support <select> in <label> as giving a named submenu -->
+
+
+ <dt>A <code><a href=#the-menu-element>menu</a></code> element with a <code title=attr-menu-label><a href=#attr-menu-label>label</a></code> attribute</dt>
+ <dt>An <code><a href=#the-optgroup-element>optgroup</a></code> element with a <code title=attr-menu-label><a href=#attr-menu-label>label</a></code> attribute</dt>
+
+ <dd>Append a submenu to the menu, using the value of the element's
+ <code title="">label</code> attribute as the label of the menu. The
+ submenu must be constructed by taking the element and creating a
+ new menu for it using the complete process described in this
+ section.</dd>
+
+
+ <dt>Any other node</dt>
+
+ <dd><a href=#ignore>Ignore</a> the node.</dd>
+
+ </dl><p>Once all the nodes have been processed as described above, the
+ user agent must the post-process the menu as follows:</p>
+
+ <ol><li>Except for separators, any menu item with no label, or whose
+ label is the empty string, must be removed.</li>
+
+ <li>Any sequence of two or more separators in a row must be
+ collapsed to a single separator.</li>
+
+ <li>Any separator at the start or end of the menu must be
+ removed.</li>
+
+ </ol></div>
+
+
+
+
+ <h5 id=context-menus><span class=secno>4.11.4.3 </span><dfn>Context menus</dfn></h5>
+
+ <p>The <dfn id=attr-contextmenu title=attr-contextmenu><code>contextmenu</code></dfn>
+ attribute gives the element's <a href=#context-menus title="context menus">context
+ menu</a>. The value must be the <a href=#concept-id title=concept-id>ID</a> of a <code><a href=#the-menu-element>menu</a></code> element in the
+ DOM. <span class=impl>If the node that would be obtained by
+ invoking the <code title=dom-Document-getElementById><a href=#dom-document-getelementbyid>getElementById()</a></code> method
+ using the attribute's value as the only argument is null or not a
+ <code><a href=#the-menu-element>menu</a></code> element, then the element has no assigned context
+ menu. Otherwise, the element's assigned context menu is the element
+ so identified.</span></p>
+
+ <div class=impl>
+
+ <p>When an element's context menu is requested (e.g. by the user
+ right-clicking the element, or pressing a context menu key), the
+ user agent must apply the appropriate rules from the following
+ list:</p>
+
+ <dl class=switch><dt>If the user requested a context menu using a pointing device</dt>
+
+ <dd><p>The user agent must fire an event with the name <code title=event-contextmenu>contextmenu</code>, that bubbles and is
+ cancelable, and that uses the <code><a href=#mouseevent>MouseEvent</a></code> interface, at
+ the element for which the menu was requested. The context
+ information of the event must be initialized to the same values as
+ the last <code><a href=#mouseevent>MouseEvent</a></code> user interaction event that was
+ fired as part of the gesture that that was interpreted as a request
+ for the context menu.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd><p>The user agent must <a href=#fire-a-synthetic-mouse-event title="fire a synthetic mouse
+ event">fire a synthetic mouse event named <code title=event-contextmenu>contextmenu</code></a> that bubbles
+ and is cancelable at the element for which the menu was
+ requested.</dd>
+
+ </dl><p class=note>Typically, therefore, the firing of the <code title=event-contextmenu>contextmenu</code> event will be the
+ default action of a <code title=mouseup>mouseup</code> or <code title=event-keyup>keyup</code> event. The exact sequence of events
+ is UA-dependent, as it will vary based on platform conventions.</p>
+
+ <p>The default action of the <code title=event-contextmenu>contextmenu</code> event depends on
+ whether the element or one of its ancestors has a context menu
+ assigned (using the <code title=attr-contextmenu><a href=#attr-contextmenu>contextmenu</a></code> attribute) or not. If
+ there is no context menu assigned, the default action must be for
+ the user agent to show its default context menu, if it has one.</p>
+
+ <p>If the element or one of its ancestors <em>does</em> have a
+ context menu assigned, then the user agent must <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-show>show</code> at the
+ <code><a href=#the-menu-element>menu</a></code> element of the context menu of the nearest
+ ancestor (including the element itself) with one assigned.</p>
+ <!-- v2: include modifier key information -->
+
+ <p>The default action of <em>this</em> event is that the user agent
+ must show a context menu <a href=#building-menus-and-toolbars title="building menus and
+ toolbars">built</a> from the <code><a href=#the-menu-element>menu</a></code> element.</p>
+
+ <p>The user agent may also provide access to its default context
+ menu, if any, with the context menu shown. For example, it could
+ merge the menu items from the two menus together, or provide the
+ page's context menu as a submenu of the default menu.</p>
+
+ <p>If the user dismisses the menu without making a selection,
+ nothing in particular happens.</p>
+
+ <p>If the user selects a menu item that represents a <a href=#concept-command title=concept-command>command</a>, then the UA must invoke
+ that command's <a href=#command-facet-action title=command-facet-Action>Action</a>.</p>
+
+ <p>Context menus must not, while being shown, reflect changes in the
+ DOM; they are constructed as the default action of the <code title=event-show>show</code> event and must remain as constructed
+ until dismissed.</p>
+
+ <p>User agents may provide means for bypassing the context menu
+ processing model, ensuring that the user can always access the UA's
+ default context menus. For example, the user agent could handle
+ right-clicks that have the Shift key depressed in such a way that it
+ does not fire the <code title=event-contextmenu>contextmenu</code>
+ event and instead always shows the default context menu.</p>
+
+ <p>The <dfn id=dom-contextmenu title=dom-contextMenu><code>contextMenu</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the <code title=attr-contextmenu><a href=#attr-contextmenu>contextmenu</a></code> content attribute.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Here is an example of a context menu for an input control:</p>
+
+ <pre>&lt;form name="npc"&gt;
+ &lt;label&gt;Character name: &lt;input name=char type=text contextmenu=namemenu required&gt;&lt;/label&gt;
+ &lt;menu type=context id=namemenu&gt;
+ &lt;command label="Pick random name" onclick="document.forms.npc.elements.char.value = getRandomName()"&gt;
+ &lt;command label="Prefill other fields based on name" onclick="prefillFields(document.forms.npc.elements.char.value)"&gt;
+ &lt;/menu&gt;
+&lt;/form&gt;</pre>
+
+ <p>This adds two items to the control's context menu, one called
+ "Pick random name", and one called "Prefill other fields based on
+ name". They invoke scripts that are not shown in the example
+ above.</p>
+
+ </div>
+
+
+
+ <div class=impl>
+
+ <h5 id=toolbars><span class=secno>4.11.4.4 </span><dfn>Toolbars</dfn></h5>
+
+ <p>When a <code><a href=#the-menu-element>menu</a></code> element has a <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute in the <a href=#toolbar-state title="toolbar state">toolbar</a> state, then the user agent
+ must <a href=#building-menus-and-toolbars title="building menus and toolbars">build</a> the
+ menu for that <code><a href=#the-menu-element>menu</a></code> element, and use the result in the
+ rendering.</p>
+
+ <p>The user agent must reflect changes made to the
+ <code><a href=#the-menu-element>menu</a></code>'s DOM, by immediately <a href=#building-menus-and-toolbars title="building menus
+ and toolbars">rebuilding</a> the menu.</p>
+
+ </div>
+
+
+
+ <h4 id=commands><span class=secno>4.11.5 </span>Commands</h4>
+
+ <p>A <dfn id=concept-command title=concept-command>command</dfn> is the abstraction
+ behind menu items, buttons, and links.<!--v2COMMAND: Once a command
+ is defined, other parts of the interface can refer to the same
+ command, allowing many access points to a single feature to share
+ aspects such as the disabled state.--></p>
+
+ <p id=facets>Commands are defined to have the following
+ <dfn id=concept-facet title=concept-facet>facets</dfn>:</p>
+
+ <dl><dt><dfn id=command-facet-type title=command-facet-Type>Type</dfn></dt>
+
+ <dd>The kind of command: "command", meaning it is a normal command;
+ "radio", meaning that triggering the command will, amongst other
+ things, set the <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked
+ State</a> to true (and probably uncheck some other commands); or
+ "checkbox", meaning that triggering the command will, amongst other
+ things, toggle the value of the <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>.</dd>
+
+ <dt><dfn id=command-facet-id title=command-facet-ID>ID</dfn></dt>
+
+ <dd>The name of the command, for referring to the command from the
+ markup or from script. If a command has no ID, it is an
+ <dfn id=anonymous-command>anonymous command</dfn>.</dd>
+
+ <dt><dfn id=command-facet-label title=command-facet-Label>Label</dfn></dt>
+
+ <dd>The name of the command as seen by the user.</dd>
+
+ <dt><dfn id=command-facet-hint title=command-facet-Hint>Hint</dfn></dt>
+
+ <dd>A helpful or descriptive string that can be shown to the
+ user.</dd>
+
+ <dt><dfn id=command-facet-icon title=command-facet-Icon>Icon</dfn></dt>
+
+ <dd>An <a href=#absolute-url>absolute URL</a> identifying a graphical image that
+ represents the action. A command might not have an Icon.</dd> <!--
+ changing base URLs might change the icon -->
+
+ <dt><dfn id=command-facet-accesskey title=command-facet-AccessKey>Access Key</dfn></dt>
+
+ <dd>A key combination selected by the user agent that triggers the
+ command. A command might not have an Access Key.</dd>
+
+ <dt><dfn id=command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</dfn></dt>
+
+ <dd>Whether the command is hidden or not (basically, whether it
+ should be shown in menus).</dd>
+
+ <dt><dfn id=command-facet-disabledstate title=command-facet-DisabledState>Disabled State</dfn></dt>
+
+ <dd>Whether the command is relevant and can be triggered or not.</dd>
+
+ <dt><dfn id=command-facet-checkedstate title=command-facet-CheckedState>Checked State</dfn></dt>
+
+ <dd>Whether the command is checked or not.</dd>
+
+ <dt><dfn id=command-facet-action title=command-facet-Action>Action</dfn></dt>
+
+ <dd>The actual effect that triggering the command will have. This
+ could be a scripted event handler, a <a href=#url>URL</a> to which to
+ <a href=#navigate>navigate</a>, or a form submission.</dd>
+
+<!-- v2COMMAND
+ <dt><dfn title="command-facet-Triggers">Triggers</dfn></dt>
+
+ <dd>The list of elements that can trigger the command. The element
+ defining a command is always in the list of elements that can
+ trigger the command. For anonymous commands, only the element
+ defining the command is on the list, since other elements have no
+ way to refer to it.</dd>
+-->
+
+ </dl><p>These facets are exposed on elements using the <dfn id=command-api>command
+ API</dfn>:</p>
+
+ <dl class=domintro><dt><var title="">element</var> . <code title=dom-command-ro-commandType><a href=#dom-command-ro-commandtype>commandType</a></code></dt>
+
+ <dd>
+
+ <p>Exposes the <a href=#command-facet-type title=command-facet-Type>Type</a> facet of the command.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-Element-id><a href=#dom-element-id>id</a></code></dt>
+
+ <dd>
+
+ <p>Exposes the <a href=#command-facet-id title=command-facet-ID>ID</a> facet of the command.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-command-ro-commandLabel><a href=#dom-command-ro-commandlabel>commandLabel</a></code></dt>
+
+ <dd>
+
+ <p>Exposes the <a href=#command-facet-label title=command-facet-Label>Label</a> facet of the command.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-title><a href=#dom-title>title</a></code></dt>
+
+ <dd>
+
+ <p>Exposes the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> facet of the command.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-command-ro-commandIcon><a href=#dom-command-ro-commandicon>commandIcon</a></code></dt>
+
+ <dd>
+
+ <p>Exposes the <a href=#command-facet-icon title=command-facet-Icon>Icon</a> facet of the command.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-accessKeyLabel><a href=#dom-accesskeylabel>accessKeyLabel</a></code></dt>
+
+ <dd>
+
+ <p>Exposes the <a href=#command-facet-accesskey title=command-facet-AccessKey>Access Key</a> facet of the command.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-command-ro-commandHidden><a href=#dom-command-ro-commandhidden>commandHidden</a></code></dt>
+
+ <dd>
+
+ <p>Exposes the <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> facet of the command.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-command-ro-commandDisabled><a href=#dom-command-ro-commanddisabled>commandDisabled</a></code></dt>
+
+ <dd>
+
+ <p>Exposes the <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> facet of the command.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-command-ro-commandChecked><a href=#dom-command-ro-commandchecked>commandChecked</a></code></dt>
+
+ <dd>
+
+ <p>Exposes the <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> facet of the command.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-click><a href=#dom-click>click</a></code>()</dt>
+
+ <dd>
+
+ <p>Triggers the <a href=#command-facet-action title=command-facet-Action>Action</a> of the command.</p>
+
+ </dd>
+
+<!--v2COMMAND
+ <dt><var title="">element</var> . <code title="dom-command-ro-commandTriggers">commandTriggers</code></dt>
+
+ <dd>
+
+ <p>Exposes the <span title="command-facet-Triggers">Triggers</span> facet of the command.</p>
+
+ </dd>
+-->
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-command-ro-commandtype title=dom-command-ro-commandType><code>commandType</code></dfn>
+ attribute must return a string whose value is either "<code title="">command</code>", "<code title="">radio</code>", or "<code title="">checkbox</code>", depending on whether the <a href=#command-facet-type title=command-facet-Type>Type</a> of the command defined by the
+ element is "command", "radio", or "checkbox" respectively. If the
+ element does not define a command, it must return null.</p>
+
+ <p>The <dfn id=dom-command-ro-commandlabel title=dom-command-ro-commandLabel><code>commandLabel</code></dfn>
+ attribute must return the command's <a href=#command-facet-label title=command-facet-Label>Label</a>, or null if the element
+ does not define a command or does not specify a <a href=#command-facet-label title=command-facet-Label>Label</a>.</p>
+
+ <p>The <dfn id=dom-command-ro-commandicon title=dom-command-ro-commandIcon><code>commandIcon</code></dfn>
+ attribute must return the <a href=#absolute-url>absolute URL</a> of the command's
+ <a href=#command-facet-icon title=command-facet-Icon>Icon</a>. If the element does
+ not specify an icon, or if the element does not define a command,
+ then the attribute must return null.</p>
+
+ <p>The <dfn id=dom-command-ro-commandhidden title=dom-command-ro-commandHidden><code>commandHidden</code></dfn>
+ attribute must return true if the command's <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> is that the
+ command is hidden, and false if the command is not hidden. If the
+ element does not define a command, the attribute must return
+ null.</p>
+
+ <p>The <dfn id=dom-command-ro-commanddisabled title=dom-command-ro-commandDisabled><code>commandDisabled</code></dfn>
+ attribute must return true if the command's <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> is that
+ the command is disabled, and false if the command is not disabled.
+ This attribute is not affected by the command's <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>. If the
+ element does not define a command, the attribute must return
+ null.</p>
+
+ <p>The <dfn id=dom-command-ro-commandchecked title=dom-command-ro-commandChecked><code>commandChecked</code></dfn>
+ attribute must return true if the command's <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> is that the
+ command is checked, and false if it is that the command is not
+ checked. If the element does not define a command, the attribute
+ must return null.</p>
+
+<!--v2COMMAND
+ <p>The <dfn
+ title="dom-command-ro-commandTriggers"><code>commandTriggers</code></dfn>
+ attribute must return a list containing the elements that can
+ trigger the command (the command's <span
+ title="command-facet-Triggers">Triggers</span>). The list must be
+ <span>live</span>. The same object must be returned each time. While
+ the element does not define a command, the list must be empty.</p>
+-->
+
+ <p class=note>The <a href=#command-facet-id title=command-facet-ID>ID</a> facet
+ is exposed by the <code title=dom-Element-id><a href=#dom-element-id>id</a></code> IDL attribute, the
+ <a href=#command-facet-hint title=command-facet-Hint>Hint</a> facet is exposed by the
+ <code title=dom-title><a href=#dom-title>title</a></code> IDL attribute, and the <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> facet is exposed by
+ the <code title=dom-accessKeyLabel><a href=#dom-accesskeylabel>accessKeyLabel</a></code> IDL
+ attribute.</p>
+
+ </div>
+
+ <hr><dl class=domintro><dt><var title="">document</var> . <code title=dom-document-commands><a href=#dom-document-commands>commands</a></code></dt>
+ <dd>
+ <p>Returns an <code><a href=#htmlcollection>HTMLCollection</a></code> of the elements in the
+ <code><a href=#document>Document</a></code> that define commands and have IDs.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-commands title=dom-document-commands><code>commands</code></dfn> attribute
+ of the document's <code><a href=#htmldocument>HTMLDocument</a></code> interface must return an
+ <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the <code><a href=#document>Document</a></code>
+ node, whose filter matches only elements that <a href=#concept-command title=concept-command>define commands</a> and have <a href=#command-facet-id title=command-facet-ID>IDs</a>.</p>
+
+ </div>
+
+ <hr><p>User agents may expose the <a href=#concept-command title=concept-command>commands</a> whose <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> facet is false
+ (visible) and whose elements are <a href=#in-a-document>in a
+ <code>Document</code></a>. For example, such commands could be
+ listed in the user agent's menu bar. User agents are encouraged to
+ do this especially for commands that have <a href=#command-facet-accesskey title=command-facet-AccessKey>Access Keys</a>, as a way to
+ advertise those keys to the user.</p>
+
+
+ <div class=impl>
+
+ <h5 id=using-the-a-element-to-define-a-command><span class=secno>4.11.5.1 </span><dfn title=a-command>Using the <code>a</code> element to define a command</dfn></h5>
+
+ <p>An <code><a href=#the-a-element>a</a></code> element with an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute <a href=#concept-command title=concept-command>defines a command</a>.</p>
+
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
+ is "command".</p>
+
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
+ the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
+ element, if the attribute is present and not empty. Otherwise the
+ command is an <a href=#anonymous-command>anonymous command</a>.</p>
+
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
+ is the string given by the element's <code><a href=#textcontent>textContent</a></code> IDL
+ attribute.</p>
+
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
+ is the value of the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute
+ of the element. If the attribute is not present, the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> is the empty string.</p>
+
+ <p>The <a href=#command-facet-icon title=command-facet-Icon>Icon</a> of the command
+ is the <a href=#absolute-url>absolute URL</a> obtained from <a href=#resolve-a-url title="resolve
+ a url">resolving</a> the value of the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute of the first
+ <code><a href=#the-img-element>img</a></code> element descendant of the element in <a href=#tree-order>tree
+ order</a>, relative to that element, if there is such an element
+ and resolving its attribute is successful. Otherwise, there is no
+ <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
+
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
+ command is the element's <a href=#assigned-access-key>assigned access key</a>, if
+ any.</p>
+
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
+ of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
+ otherwise.</p>
+
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
+ State</a> facet of the command is always false. (The command is
+ always enabled.)</p>
+
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
+ of the command is always false. (The command is never checked.)</p>
+
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
+ command is to <a href=#fire-a-click-event title="fire a click event">fire a <code title=event-click>click</code> event</a> at the element.</p>
+
+
+ <h5 id=using-the-button-element-to-define-a-command><span class=secno>4.11.5.2 </span><dfn title=button-command>Using the <code>button</code> element to define a command</dfn></h5>
+
+ <p>A <code><a href=#the-button-element>button</a></code> element always <a href=#concept-command title=concept-command>defines a command</a>.</p>
+
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a>, <a href=#command-facet-id title=command-facet-ID>ID</a>, <a href=#command-facet-label title=command-facet-Label>Label</a>, <a href=#command-facet-hint title=command-facet-Hint>Hint</a>, <a href=#command-facet-icon title=command-facet-Icon>Icon</a>, <a href=#command-facet-accesskey title=command-facet-AccessKey>Access Key</a>, <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>, <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>, and <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the command are
+ determined <a href=#using-the-a-element-to-define-a-command title=a-command>as for <code>a</code>
+ elements</a> (see the previous section).</p>
+
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
+ State</a> of the command mirrors the <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a> state of the button.</p>
+
+
+ <h5 id=using-the-input-element-to-define-a-command><span class=secno>4.11.5.3 </span><dfn title=input-command>Using the <code>input</code> element to define a command</dfn></h5>
+
+ <p>An <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in one of the <a href=#submit-button-state title=attr-input-type-submit>Submit Button</a>, <a href=#reset-button-state title=attr-input-type-reset>Reset Button</a>, <a href=#image-button-state title=attr-input-type-image>Image Button</a>, <a href=#button-state title=attr-input-type-button>Button</a>, <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a>, or <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> states <a href=#concept-command title=concept-command>defines a command</a>.</p>
+
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
+ is "radio" if the <code title=attr-input-type><a href=#attr-input-type>type</a></code>
+ attribute is in the <code title=attr-input-type-radio><a href=#radio-button-state>Radio
+ Button</a></code> state, "checkbox" if the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <code title=attr-input-type-checkbox><a href=#checkbox-state>Checkbox</a></code> state, and
+ "command" otherwise.</p>
+
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
+ the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
+ element, if the attribute is present and not empty. Otherwise the
+ command is an <a href=#anonymous-command>anonymous command</a>.</p>
+
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
+ depends on the Type of the command:</p>
+
+ <p>If the <a href=#command-facet-type title=command-facet-Type>Type</a> is "command",
+ then it is the string given by the <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if any, and a
+ UA-dependent, locale-dependent value that the UA uses to label the
+ button itself if the attribute is absent.</p>
+
+ <p>Otherwise, the <a href=#command-facet-type title=command-facet-Type>Type</a> is
+ "radio" or "checkbox". If the element is a <a href=#labeled-control>labeled
+ control</a>, the <code><a href=#textcontent>textContent</a></code> of the first
+ <code><a href=#the-label-element>label</a></code> element in <a href=#tree-order>tree order</a> whose
+ <a href=#labeled-control>labeled control</a> is the element in question is the <a href=#command-facet-label title=command-facet-Label>Label</a> (in DOM terms, this is the
+ string given by <code><var title="">element</var>.labels[0].textContent</code>). Otherwise,
+ the value of the <code title=attr-input-value><a href=#attr-input-value>value</a></code>
+ attribute, if present, is the <a href=#command-facet-label title=command-facet-Label>Label</a>. Otherwise, the <a href=#command-facet-label title=command-facet-Label>Label</a> is the empty string.</p>
+
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
+ is the value of the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute
+ of the <code><a href=#the-input-element>input</a></code> element. If the attribute is not present, the
+ <a href=#command-facet-hint title=command-facet-Hint>Hint</a> is the empty
+ string.</p>
+
+ <p>If the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code>
+ attribute is in the <a href=#image-button-state title=attr-input-type-image>Image
+ Button</a> state, and the element has a <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute, and that attribute's
+ value can be successfully <a href=#resolve-a-url title="resolve a
+ url">resolved</a> relative to the element, then the <a href=#command-facet-icon title=command-facet-Icon>Icon</a> of the command is the
+ <a href=#absolute-url>absolute URL</a> obtained from resolving that attribute
+ that way. Otherwise, there is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
+
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
+ command is the element's <a href=#assigned-access-key>assigned access key</a>, if
+ any.</p>
+
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
+ of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
+ otherwise.</p>
+
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
+ State</a> of the command mirrors the <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a> state of the
+ control.</p>
+
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
+ of the command is true if the command is of <a href=#command-facet-type title=command-facet-Type>Type</a> "radio" or "checkbox" and the
+ element is <a href=#concept-fe-checked title=concept-fe-checked>checked</a>
+ attribute, and false otherwise.</p>
+
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
+ command, if the element has a defined <a href=#activation-behavior>activation
+ behavior</a>, is to <a href=#run-synthetic-click-activation-steps>run synthetic click activation
+ steps</a> on the element. Otherwise, it is just to <a href=#fire-a-click-event>fire a
+ <code title=event-click>click</code> event</a> at the
+ element.</p>
+
+
+ <h5 id=using-the-option-element-to-define-a-command><span class=secno>4.11.5.4 </span><dfn title=option-command>Using the <code>option</code> element to define a command</dfn></h5>
+
+ <p>An <code><a href=#the-option-element>option</a></code> element with an ancestor
+ <code><a href=#the-select-element>select</a></code> element and either no <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute or a <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute that is not the
+ empty string <a href=#concept-command title=concept-command>defines a
+ command</a>.</p>
+
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
+ is "radio" if the <code><a href=#the-option-element>option</a></code>'s nearest ancestor
+ <code><a href=#the-select-element>select</a></code> element has no <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute, and
+ "checkbox" if it does.</p>
+
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
+ the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
+ element, if the attribute is present and not empty. Otherwise the
+ command is an <a href=#anonymous-command>anonymous command</a>.</p>
+
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
+ is the value of the <code><a href=#the-option-element>option</a></code> element's <code title=attr-option-label><a href=#attr-option-label>label</a></code> attribute, if there is one,
+ or the value of the <code><a href=#the-option-element>option</a></code> element's
+ <code><a href=#textcontent>textContent</a></code> IDL attribute if there isn't.</p>
+
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
+ is the string given by the element's <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute, if any, and the empty
+ string if the attribute is absent.</p>
+
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
+ command.</p>
+
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
+ command is the element's <a href=#assigned-access-key>assigned access key</a>, if
+ any.</p>
+
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
+ of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
+ otherwise.</p>
+
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
+ State</a> of the command is true (disabled) if the element is
+ <a href=#concept-option-disabled title=concept-option-disabled>disabled</a> or if its
+ nearest ancestor <code><a href=#the-select-element>select</a></code> element is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, and false
+ otherwise.</p>
+
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
+ of the command is true (checked) if the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true, and
+ false otherwise.</p>
+
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
+ command depends on its <a href=#command-facet-type title=command-facet-Type>Type</a>. If the command is of <a href=#command-facet-type title=command-facet-Type>Type</a> "radio" then it must <a href=#concept-select-pick title=concept-select-pick>pick</a> the <code><a href=#the-option-element>option</a></code>
+ element. Otherwise, it must <a href=#concept-select-toggle title=concept-select-toggle>toggle</a> the <code><a href=#the-option-element>option</a></code>
+ element.</p>
+
+
+ <h5 id=using-the-command-element-to-define-a-command><span class=secno>4.11.5.5 </span>Using the <dfn title=command-element><code>command</code></dfn> element to define
+ a command</h5>
+
+ <p>A <code><a href=#the-command-element>command</a></code> element <a href=#concept-command title=concept-command>defines a command</a>.</p>
+
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
+ is "radio" if the <code><a href=#the-command-element>command</a></code>'s <code title=attr-command-type><a href=#attr-command-type>type</a></code> attribute is
+ "<code>radio</code>", "checkbox" if the attribute's value is
+ "<code>checkbox</code>", and "command" otherwise.</p>
+
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
+ the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
+ element, if the attribute is present and not empty. Otherwise the
+ command is an <a href=#anonymous-command>anonymous command</a>.</p>
+
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
+ is the value of the element's <code title=attr-command-label><a href=#attr-command-label>label</a></code> attribute, if there is one,
+ or the empty string if it doesn't.</p>
+
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
+ is the string given by the element's <code title=attr-command-title><a href=#attr-command-title>title</a></code> attribute, if any, and the
+ empty string if the attribute is absent.</p>
+
+ <p>The <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command
+ is the <a href=#absolute-url>absolute URL</a> obtained from <a href=#resolve-a-url title="resolve
+ a url">resolving</a> the value of the element's <code title=attr-command-icon><a href=#attr-command-icon>icon</a></code> attribute, relative to the
+ element, if it has such an attribute and resolving it is
+ successful. Otherwise, there is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
+
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
+ command is the element's <a href=#assigned-access-key>assigned access key</a>, if
+ any.</p>
+
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
+ of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
+ otherwise.</p>
+
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
+ State</a> of the command is true (disabled) if the element has a
+ <code title=attr-command-disabled><a href=#attr-command-disabled>disabled</a></code> attribute, and
+ false otherwise.</p>
+
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
+ of the command is true (checked) if the element has a <code title=attr-command-checked><a href=#attr-command-checked>checked</a></code> attribute, and false
+ otherwise.</p>
+
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
+ command, if the element has a defined <a href=#activation-behavior>activation
+ behavior</a>, is to <a href=#run-synthetic-click-activation-steps>run synthetic click activation
+ steps</a> on the element. Otherwise, it is just to <a href=#fire-a-click-event>fire a
+ <code title=event-click>click</code> event</a> at the
+ element.</p>
+
+
+
+
+
+ <h5 id=using-the-accesskey-attribute-on-a-label-element-to-define-a-command><span class=secno>4.11.5.6 </span><dfn title=label-command>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>label</code> element to define a command</dfn></h5>
+
+ <p>A <code><a href=#the-label-element>label</a></code> element that has an <a href=#assigned-access-key>assigned access
+ key</a> and a <a href=#labeled-control>labeled control</a> and whose
+ <a href=#labeled-control>labeled control</a> <a href=#concept-command title=concept-command>defines a
+ command</a>, itself <a href=#concept-command title=concept-command>defines a
+ command</a>.</p>
+
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
+ is "command".</p>
+
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
+ the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
+ element, if the attribute is present and not empty. Otherwise the
+ command is an <a href=#anonymous-command>anonymous command</a>.</p>
+
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
+ is the string given by the element's <code><a href=#textcontent>textContent</a></code> IDL
+ attribute.</p>
+
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
+ is the value of the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute
+ of the element.</p>
+
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
+ command.</p>
+
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
+ command is the element's <a href=#assigned-access-key>assigned access key</a>.</p>
+
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>,
+ <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a>, and
+ <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the
+ command are the same as the respective facets of the element's
+ <a href=#labeled-control>labeled control</a>.</p>
+
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
+ of the command is always false. (The command is never checked.)</p>
+
+
+
+ <h5 id=using-the-accesskey-attribute-on-a-legend-element-to-define-a-command><span class=secno>4.11.5.7 </span><dfn title=legend-command>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>legend</code> element to define a command</dfn></h5>
+
+ <p>A <code><a href=#the-legend-element>legend</a></code> element that has an <a href=#assigned-access-key>assigned access
+ key</a> and is a child of a <code><a href=#the-fieldset-element>fieldset</a></code> element that
+ has a descendant that is not a descendant of the <code><a href=#the-legend-element>legend</a></code>
+ element and is neither a <code><a href=#the-label-element>label</a></code> element nor a
+ <code><a href=#the-legend-element>legend</a></code> element but that <a href=#concept-command title=concept-command>defines a command</a>, itself <a href=#concept-command title=concept-command>defines a command</a>.</p>
+
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
+ is "command".</p>
+
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
+ the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
+ element, if the attribute is present and not empty. Otherwise the
+ command is an <a href=#anonymous-command>anonymous command</a>.</p>
+
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
+ is the string given by the element's <code><a href=#textcontent>textContent</a></code> IDL
+ attribute.</p>
+
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
+ is the value of the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute
+ of the element.</p>
+
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
+ command.</p>
+
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
+ command is the element's <a href=#assigned-access-key>assigned access key</a>.</p>
+
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>,
+ <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a>, and
+ <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the
+ command are the same as the respective facets of the first element
+ in <a href=#tree-order>tree order</a> that is a descendant of the parent of the
+ <code><a href=#the-legend-element>legend</a></code> element that <a href=#concept-command title=concept-command>defines a command</a> but is not a
+ descendant of the <code><a href=#the-legend-element>legend</a></code> element and is neither a
+ <code><a href=#the-label-element>label</a></code> nor a <code><a href=#the-legend-element>legend</a></code> element.</p>
+
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
+ of the command is always false. (The command is never checked.)</p>
+
+
+
+ <h5 id=using-the-accesskey-attribute-to-define-a-command-on-other-elements><span class=secno>4.11.5.8 </span><dfn title=accesskey-command>Using the <code title=attr-accesskey>accesskey</code> attribute to define a command on other elements</dfn></h5>
+
+ <p>An element that has an <a href=#assigned-access-key>assigned access key</a> <a href=#concept-command title=concept-command>defines a command</a>.</p>
+
+ <p>If one of the other sections that define elements that <a href=#concept-command title=concept-command>define commands</a> define that this
+ element <a href=#concept-command title=concept-command>defines a command</a>, then
+ that section applies to this element, and this section does
+ not. Otherwise, this section applies to that element.</p>
+
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
+ is "command".</p>
+
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
+ the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
+ element, if the attribute is present and not empty. Otherwise the
+ command is an <a href=#anonymous-command>anonymous command</a>.</p>
+
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
+ depends on the element. If the element is a <a href=#labeled-control>labeled
+ control</a>, the <code><a href=#textcontent>textContent</a></code> of the first
+ <code><a href=#the-label-element>label</a></code> element in <a href=#tree-order>tree order</a> whose
+ <a href=#labeled-control>labeled control</a> is the element in question is the <a href=#command-facet-label title=command-facet-Label>Label</a> (in DOM terms, this is the
+ string given by <code><var title="">element</var>.labels[0].textContent</code>). Otherwise, the
+ <a href=#command-facet-label title=command-facet-Label>Label</a> is the
+ <code><a href=#textcontent>textContent</a></code> of the element itself.</p>
+
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
+ is the value of the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute
+ of the element. If the attribute is not present, the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> is the empty string.</p>
+
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
+ command.</p>
+
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
+ command is the element's <a href=#assigned-access-key>assigned access key</a>.</p>
+
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
+ of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
+ otherwise.</p>
+
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
+ State</a> facet of the command is always false. (The command is
+ always enabled.)</p>
+
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
+ of the command is always false. (The command is never checked.)</p>
+
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
+ command is to run the following steps:</p>
+
+ <ol><li>If the element is <a href=#focusable>focusable</a>, run the
+ <a href=#focusing-steps>focusing steps</a> for the element.</li>
+
+ <li>If the element has a defined <a href=#activation-behavior>activation behavior</a>,
+ <a href=#run-synthetic-click-activation-steps>run synthetic click activation steps</a> on the
+ element.</li>
+
+ <li>Otherwise, if the element does not have a defined
+ <a href=#activation-behavior>activation behavior</a>, <a href=#fire-a-click-event>fire a <code title=event-click>click</code> event</a> at the element.</li>
+
+ </ol></div>
+
+
+
+
+ <h3 id=links><span class=secno>4.12 </span>Links</h3>
+
+ <h4 id=introduction-4><span class=secno>4.12.1 </span>Introduction</h4>
+
+ <p>Links are a conceptual construct, created by <code><a href=#the-a-element>a</a></code>,
+ <code><a href=#the-area-element>area</a></code>, and <code><a href=#the-link-element>link</a></code> elements, that <a href=#represents title=represents>represent</a> a connection between two
+ resources, one of which is the current <code><a href=#document>Document</a></code>. There
+ are two kinds of links in HTML:</p>
+
+ <dl><dt><dfn id=external-resource-link title="external resource link">Links to external
+ resources</dfn></dt>
+
+ <dd><p>These are links to resources that are to be used to augment
+ the current document, generally automatically processed by the user
+ agent.</dd>
+
+ <dt><dfn id=hyperlink title=hyperlink>Hyperlinks</dfn></dt>
+
+ <dd><p>These are links to other resources that are generally
+ exposed to the user by the user agent so that the user can cause
+ the user agent to <a href=#navigate>navigate</a> to those resources, e.g. to
+ visit them in a browser or download them.</dd>
+
+ </dl><p>For <code><a href=#the-link-element>link</a></code> elements with an <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute and a <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute, links must be created
+ for the keywords of the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code>
+ attribute, as defined for those keywords in the <a href=#linkTypes>link types</a> section.</p>
+
+ <p>Similarly, for <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements with
+ an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute and a
+ <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute, links must be
+ created for the keywords of the <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute as defined for those
+ keywords in the <a href=#linkTypes>link types</a> section. Unlike
+ <code><a href=#the-link-element>link</a></code> elements, however, <code><a href=#the-a-element>a</a></code> and
+ <code><a href=#the-area-element>area</a></code> element with an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute that either do not
+ have a <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute, or
+ whose <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute has no
+ keywords that are defined as specifying <a href=#hyperlink title=hyperlink>hyperlinks</a>, must also create a
+ <a href=#hyperlink>hyperlink</a>. This implied hyperlink has no special
+ meaning (it has no <a href=#linkTypes>link type</a>) beyond
+ linking the element's document to the resource given by the
+ element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>
+ attribute.</p>
+
+ <p>A <a href=#hyperlink>hyperlink</a> can have one or more <dfn id=hyperlink-annotation title="hyperlink annotation">hyperlink annotations</dfn> that modify
+ the processing semantics of that hyperlink.</p>
+
+
+ <h4 id=links-created-by-a-and-area-elements><span class=secno>4.12.2 </span>Links created by <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements</h4>
+
+ <p>The <dfn id=attr-hyperlink-href title=attr-hyperlink-href><code>href</code></dfn>
+ attribute on <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements must have
+ a value that is a <a href=#valid-url-potentially-surrounded-by-spaces>valid URL potentially surrounded by
+ spaces</a>.</p>
+
+ <p class=note>The <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>
+ attribute on <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements is not
+ required; when those elements do not have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes they do not
+ create hyperlinks.</p>
+
+ <p>The <dfn id=attr-hyperlink-target title=attr-hyperlink-target><code>target</code></dfn>
+ attribute, if present, must be a <a href=#valid-browsing-context-name-or-keyword>valid browsing context name
+ or keyword</a>. It gives the name of the <a href=#browsing-context>browsing
+ context</a> that will be used. <span class=impl>User agents use
+ this name when <a href=#following-hyperlinks>following hyperlinks</a>.</span></p>
+
+<!--DOWNLOAD-->
+ <p>When an <code><a href=#the-a-element>a</a></code> or <code><a href=#the-area-element>area</a></code> element's
+ <a href=#activation-behavior>activation behavior</a> is invoked, the user agent may
+ allow the user to indicate a preference regarding whether the
+ hyperlink is to be used for <a href=#navigate title=navigate>navigation</a>
+ or whether the resource it specifies is to be downloaded.</p>
+
+ <p>In the absence of a user preference, the default should be
+ navigation if the element has no <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute, and
+ should be to download the specified resource if it does.</p>
+
+ <p>Whether determined by the user's preferences or via the presence
+ or absence of the attribute, if the decision is to use the hyperlink
+ for <a href=#navigate title=navigate>navigation</a> then the user agent
+ must <a href=#following-hyperlinks title="following hyperlinks">follow the hyperlink</a>,
+ and if the decision is to use the hyperlink to download a resource,
+ the user agent must <a href=#downloading-hyperlinks title="downloading hyperlinks">download
+ the hyperlink</a>. These terms are defined in subsequent sections
+ below.</p>
+
+ <p>The <dfn id=attr-hyperlink-download title=attr-hyperlink-download><code>download</code></dfn>
+ attribute, if present, indicates that the author intends the
+ hyperlink to be used for downloading a resource. The attribute may
+ have a value; the value, if any, specifies the default filename that
+ the author recommends for use in labeling the resource in a local
+ file system. There are no restrictions on allowed values, but
+ authors are cautioned that most file systems have limitations with
+ regard to what punctuation is supported in file names, and user
+ agents are likely to adjust file names accordingly.</p>
+<!--DOWNLOAD-->
+
+<!--PING-->
+ <p>The <dfn id=ping title=attr-hyperlink-ping><code>ping</code></dfn> attribute, if
+ present, gives the URLs of the resources that are interested in
+ being notified if the user follows the hyperlink. The value must be
+ a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>, each of which must be
+ a <a href=#valid-non-empty-url>valid non-empty URL</a>. <span class=impl>The value is
+ used by the user agent for <a href=#hyperlink-auditing>hyperlink
+ auditing</a>.</span></p>
+<!--PING-->
+
+ <p>The <dfn id=attr-hyperlink-rel title=attr-hyperlink-rel><code>rel</code></dfn>
+ attribute on <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements controls
+ what kinds of links the elements create. The attribue's value must
+ be a <a href=#set-of-space-separated-tokens>set of space-separated tokens</a>. The <a href=#linkTypes>allowed keywords and their meanings</a> are
+ defined below.</p>
+
+ <p>The <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute has
+ no default value. If the attribute is omitted or if none of the
+ values in the attribute are recognized by the user agent, then the
+ document has no particular relationship with the destination
+ resource other than there being a hyperlink between the two.</p>
+
+ <p>The <dfn id=attr-hyperlink-media title=attr-hyperlink-media><code>media</code></dfn>
+ attribute describes for which media the target document was
+ designed. It is purely advisory. The value must be a <a href=#valid-media-query>valid
+ media query</a>. The default, if the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code> attribute is omitted, is
+ "<code title="">all</code>".</p>
+
+ <p>The <dfn id=attr-hyperlink-hreflang title=attr-hyperlink-hreflang><code>hreflang</code></dfn>
+ attribute on <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements that
+ create <a href=#hyperlink title=hyperlink>hyperlinks</a>, if present, gives
+ the language of the linked resource. It is purely advisory. The
+ value must be a valid BCP 47 language tag. <a href=#refsBCP47>[BCP47]</a> <span class=impl>User agents must
+ not consider this attribute authoritative &mdash; upon fetching the
+ resource, user agents must use only language information associated
+ with the resource to determine its language, not metadata included
+ in the link to the resource.</span></p>
+
+ <p>The <dfn id=attr-hyperlink-type title=attr-hyperlink-type><code>type</code></dfn>
+ attribute, if present, gives the <a href=#mime-type>MIME type</a> of the
+ linked resource. It is purely advisory. The value must be a
+ <a href=#valid-mime-type>valid MIME type</a>. <span class=impl>User agents must
+ not consider the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code>
+ attribute authoritative &mdash; upon fetching the resource, user
+ agents must not use metadata included in the link to the resource to
+ determine its type.</span></p>
+
+
+ <div class=impl>
+
+ <h4 id=following-hyperlinks-0><span class=secno>4.12.3 </span>Following hyperlinks</h4>
+
+ <p>When a user <dfn id=following-hyperlinks title="following hyperlinks">follows a
+ hyperlink</dfn> created by an element, the user agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the <a href=#url>URL</a> given by
+ the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute of that
+ element, relative to that element, and if that is successful, must
+ <a href=#navigate>navigate</a><!--DONAV hyperlink--> a <a href=#browsing-context>browsing
+ context</a> to the resulting <a href=#absolute-url>absolute URL</a>. In the
+ case of server-side image maps, that <a href=#absolute-url>absolute URL</a> must
+ have its <var><a href=#hyperlink-suffix>hyperlink suffix</a></var> appended to it before the
+ navigation is started.</p>
+
+ <p>If <a href=#resolve-a-url title="resolve a url">resolving</a> the
+ <a href=#url>URL</a> fails, the user agent may report the error to the
+ user in a user-agent-specific manner, may
+ <a href=#navigate>navigate</a><!--DONAV hyperlink--> to an error page to
+ report the error, or may ignore the error and do nothing.</p>
+
+ <p>If the user indicated a specific <a href=#browsing-context>browsing context</a>
+ when following the hyperlink, or if the user agent is configured to
+ follow hyperlinks by navigating a particular browsing context, then
+ that must be the <a href=#browsing-context>browsing context</a> that is
+ navigated.</p>
+
+ <p>Otherwise, if the element is an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element that has a <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, then the
+ <a href=#browsing-context>browsing context</a> that is navigated must be chosen by
+ applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a browsing context given a
+ browsing context name</a>, using the value of the <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute as the
+ browsing context name. If these rules result in the creation of a
+ new <a href=#browsing-context>browsing context</a>, it must be navigated with
+ <a href=#replacement-enabled>replacement enabled</a>.</p>
+
+<!-- if http://www.w3.org/Bugs/Public/show_bug.cgi?id=11183 is ever reverted, then change the dfn below back into a span -->
+<!-- in the meantime, the definition of rel=sidebar in the wiki says that it's a "sidebar hyperlink" --> <!--!-->
+ <p>Otherwise, if the hyperlink is a <dfn id=rel-sidebar-hyperlink title=rel-sidebar-hyperlink>sidebar hyperlink</dfn> and the user
+ agent implements a feature that can be considered a <a href=#secondary-browsing-context>secondary
+ browsing context</a>, such a <a href=#secondary-browsing-context>secondary browsing
+ context</a> may be selected as the browsing context to be
+ navigated.</p>
+
+ <p>Otherwise, if the element is an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element with no <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, but the
+ <code><a href=#document>Document</a></code> contains a <code><a href=#the-base-element>base</a></code> element with a
+ <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, then the
+ browsing context that is navigated must be chosen by applying
+ <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a browsing context given a browsing
+ context name</a>, using the value of the <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute of the first such
+ <code><a href=#the-base-element>base</a></code> element as the browsing context name. If these
+ rules result in the creation of a new <a href=#browsing-context>browsing context</a>,
+ it must be navigated with <a href=#replacement-enabled>replacement enabled</a>.</p>
+ <!-- c.f. concept-fs-target -->
+
+ <p>Otherwise, the browsing context that must be navigated is the
+ same browsing context as the one which the element itself is in.</p>
+
+ <p>The navigation must be done with the <a href=#browsing-context>browsing
+ context</a> that contains the <code><a href=#document>Document</a></code> object with
+ which the element in question is associated as the <a href=#source-browsing-context>source
+ browsing context</a>.</p>
+
+ </div>
+
+
+<!--DOWNLOAD-->
+
+ <h4 id=downloading-resources><span class=secno>4.12.4 </span>Downloading resources</h4>
+
+ <p>In some cases, resources are intended for later use rather than
+ immediate viewing. To indicate that a resource is intended to be
+ downloaded for use later, rather than immediately used, the <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute can be
+ specified on the <code><a href=#the-a-element>a</a></code> or <code><a href=#the-area-element>area</a></code> element that
+ creates the <a href=#hyperlink>hyperlink</a> to that resource.</p>
+
+ <p>The attribute can furthermore be given a value, to specify the
+ filename that user agents are to use when storing the resource in a
+ file system. This value can be overridden by the <code title=http-content-disposition>Content-Disposition</code> HTTP
+ header's filename parameters. <a href=#refsRFC6266>[RFC6266]</a></p>
+
+ <p>In cross-origin situations, the <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute has to be
+ combined with the <code title=http-content-disposition>Content-Disposition</code> HTTP
+ header, specifically with the <code title="">attachment</code>
+ disposition type, to avoid the user being warned of possibly
+ nefarious activity. (This is to protect users from being made to
+ download sensitive personal or confidential information without
+ their full understanding.)</p>
+
+ <div class=impl>
+
+ <hr><p>When a user <dfn id=downloading-hyperlinks title="downloading hyperlinks">downloads a
+ hyperlink</dfn> created by an element, the user agent must run the
+ following steps:</p>
+
+ <ol><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
+ <a href=#url>URL</a> given by the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute of that element,
+ relative to that element.</li>
+
+ <li><p>If <a href=#resolve-a-url title="resolve a url">resolving</a> the
+ <a href=#url>URL</a> fails, the user agent may report the error to the
+ user in a user-agent-specific manner, may
+ <a href=#navigate>navigate</a><!--DONAV download error--> to an error page
+ to report the error, or may ignore the error and do nothing. In
+ either case, the user agent must abort these steps.</p>
+
+ <li><p>Otherwise, let <var title="">URL</var> be the resulting
+ <a href=#absolute-url>absolute URL</a>.</li>
+
+ <li><p>In the case of server-side image maps, append the
+ <var><a href=#hyperlink-suffix>hyperlink suffix</a></var> to <var title="">URL</var>.</li>
+
+ <li><p>Return to whatever algorithm invoked these steps and continue
+ these steps asynchronously.</li>
+
+ <li><p><a href=#fetch>Fetch</a> <var title="">URL</var> and handle the
+ resulting resource <a href=#as-a-download>as a download</a>.</li> <!--
+ http-origin privacy sensitive -->
+
+ </ol><p>When a user agent is to handle a resource obtained from a
+ <a href=#fetch>fetch</a> algorithm <dfn id=as-a-download>as a download</dfn>, it should
+ provide the user with a way to save the resource for later use, if a
+ resource is successfully obtained; or otherwise should report any
+ problems downloading the file to the user.</p>
+
+ <p>If the user agent needs a file name for a resource being handled
+ <a href=#as-a-download>as a download</a>, it should select one using the following
+ algorithm.</p>
+
+ <p class=warning>This algorithm is intended to mitigate security
+ dangers involved in downloading files from untrusted sites, and user
+ agents are strongly recommended to follow it.</p> <!-- but it's
+ optional, since it's not really an interoperability issue -->
+
+ <ol><li><p>Let <var title="">filename</var> be the void value.</li>
+
+ <li><p>If the resource has a <code title=http-content-disposition>Content-Disposition</code> header, <!-- Content-Disposition: attachment; filename="" is always honoured, even cross-origin -->
+ that header specifies the <code title="">attachment</code>
+ disposition type, and the header includes a filename parameter,
+ then let <var title="">filename</var> have the value specified by
+ the header, and jump to the step labeled "sanitize" below. <a href=#refsRFC6266>[RFC6266]</a></li>
+
+ <li><p>Let <var title="">resource origin</var> be the
+ <a href=#origin>origin</a> of the resource being downloaded.</li>
+
+ <li><p>Let <var title="">interface origin</var> be the
+ <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> in which the <a href=#downloading-hyperlinks title="downloading hyperlinks">download</a> or
+ <a href=#navigate>navigate</a> action resulting in the download was
+ initiated, if any.</li>
+
+ <li><p>If there is no <var title="">interface origin</var>, then
+ let <var title="">trusted operation</var> be true. Otherwise, let
+ <var title="">trusted operation</var> be true if <var title="">resource origin</var> is the <a href=#same-origin>same origin</a> as
+ <var title="">interface origin</var>, and false otherwise.</li>
+
+ <li><p>If <var title="">trusted operation</var> is true and the <!-- Content-Disposition: *; filename="" overrides download="" for same-origin -->
+ resource has a <code title=http-content-disposition>Content-Disposition</code> header
+ and that header includes a filename parameter, then let <var title="">filename</var> have the value specified by the header, and
+ jump to the step labeled "sanitize" below. <a href=#refsRFC6266>[RFC6266]</a></li>
+
+ <li><p>If the download was not initiated from a
+ <a href=#hyperlink>hyperlink</a> created by an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element, or if the element of the
+ <a href=#hyperlink>hyperlink</a> from which it was initiated did not have a
+ <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute
+ when the download was initiated, or if there was such an attribute
+ but its value when the download was initiated was the empty string,
+ then jump to the step labeled <i>no proposed filename</i>.</li>
+
+ <li><p>Let <var title="">proposed filename</var> have the value of
+ the <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute
+ of the element of the <a href=#hyperlink>hyperlink</a> that initiated the
+ download at the time the download was initiated.</li>
+
+ <li><p>If <var title="">trusted operation</var> is true, let <var title="">filename</var> have the value of <var title="">proposed
+ filename</var>, and jump to the step labeled "sanitize" <!-- download="" works for all links when same-origin -->
+ below.</li> <!-- it is not used cross-origin, though, even for explicit user gestures -->
+ <!-- except: -->
+ <li><p>If the resource has a <code title=http-content-disposition>Content-Disposition</code> header <!-- Content-Disposition: attachment with no filename="" allows download="" cross-origin -->
+ and that header specifies the <code title="">attachment</code>
+ disposition type, let <var title="">filename</var> have the value
+ of <var title="">proposed filename</var>, and jump to the step
+ labeled "sanitize" below. <a href=#refsRFC6266>[RFC6266]</a></li>
+
+ <li><p><i>No proposed filename</i>: If <var title="">trusted <!-- fallback for same-origin resources or explicit downloads: use the resource's file name -->
+ operation</var> is true, or if the user indicated a preference for
+ having the resource in question downloaded, let <var title="">filename</var> have a value derived from the
+ <a href=#url>URL</a> of the resource in a user-agent-defined manner,
+ and jump to the step labeled "sanitize" below.</li>
+
+ <li>
+
+ <p>Act in a user-agent-defined manner to safeguard the user from a <!-- no C-D: a header on cross-origin raises red flags -->
+ potentially hostile cross-origin download. If the download is not
+ to be aborted, then let <var title="">filename</var> be set to the
+ user's preferred file name or to a file name selected by the user
+ agent, and jump to the step labeled "sanitize" below.</p>
+
+ <div class=warning>
+
+ <p>If the algorithm reaches this step, then a download was begun
+ from a different origin than the resource being downloaded, and
+ the origin did not mark the file as suitable for downloading, and
+ the download was not initiated by the user. This could be because
+ a <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute
+ was used to trigger the download, or because the resource in
+ question is not of a type that the user agent supports.</p>
+
+ <p>This could be dangerous, because, for instance, a hostile
+ server could be trying to get a user to unknowingly download
+ private information and then re-upload it to the hostile server,
+ by tricking the user into thinking the data is from the hostile
+ server.</p>
+
+ <p>Thus, it is in the user's interests that the user be somehow
+ notified that the resource in question comes from quite a
+ different source, and to prevent confusion, any suggested
+ filename from the potentially hostile <var title="">interface
+ origin</var> should be ignored.</p>
+
+ </div>
+
+ </li>
+
+ <li><p><i>Sanitize</i>: Optionally, allow the user to influence <var title="">filename</var>. For example, a user agent could prompt the
+ user for a file name, potentially providing the value of <var title="">filename</var> as determined above as a default
+ value.</li>
+
+ <li>
+
+ <p>Adjust <var title="">filename</var> to be suitable for the
+ local file system.</p>
+
+ <p class=example>For example, this could involve removing
+ characters that are not legal in file names, or trimming leading
+ and trailing whitespace.</p>
+
+ </li>
+
+ <li><p>If the platform conventions do not in any way use <a href=#concept-extension title=concept-extension>extensions</a> to determine the types
+ of file on the file system, then return <var title="">filename</var> as the file name and abort these
+ steps.</li>
+
+ <li><p>Let <var title="">claimed type</var> be the type given by
+ the resource's <a href=#content-type title=Content-Type>Content-Type
+ metadata</a>, if any is known. Let <var title="">named
+ type</var> be the type given by <var title="">filename</var>'s
+ <a href=#concept-extension title=concept-extension>extension</a>, if any is known.
+ For the purposes of this step, a <i>type</i> is a mapping of a
+ <a href=#mime-type>MIME type</a> to an <a href=#concept-extension title=concept-extension>extension</a>.</li>
+
+ <li><p>If <var title="">named type</var> is consistent with the
+ user's preferences (e.g. because the value of <var title="">filename</var> was determined by prompting the user), then
+ return <var title="">filename</var> as the file name and abort
+ these steps.</li>
+
+ <li><p>If <var title="">claimed type</var> and <var title="">named
+ type</var> are the same type (i.e. the type given by the resource's
+ <a href=#content-type title=Content-Type>Content-Type metadata</a> is
+ consistent with the type given by <var title="">filename</var>'s
+ <a href=#concept-extension title=concept-extension>extension</a>), then return <var title="">filename</var> as the file name and abort these
+ steps.</li>
+
+ <li>
+
+ <p>If the <var title="">claimed type</var> is known, then alter
+ <var title="">filename</var> to add an <a href=#concept-extension title=concept-extension>extension</a> corresponding to <var title="">claimed type</var>.</p>
+
+ <p>Otherwise, if <var title="">named type</var> is known to be
+ potentially dangerous (e.g. it will be treated by the platform
+ conventions as a native executable, shell script, HTML
+ application, or executable-macro-capable document) then optionally
+ alter <var title="">filename</var> to add a known-safe <a href=#concept-extension title=concept-extension>extension</a> (e.g. "<code title="">.txt</code>").</p>
+
+ <p class=note>This last step would make it impossible to
+ download executables, which might not be desireable. As always,
+ implementors are forced to balance security and usability in this
+ matter.</p>
+
+ </li>
+
+ <li><p>Return <var title="">filename</var> as the file
+ name.</li>
+
+ </ol><p>For the purposes of this algorithm, a file <dfn id=concept-extension title=concept-extension>extension</dfn> consists of any part of
+ the file name that platform conventions dictate will be used for
+ identifying the type of the file. For example, many operating
+ systems use the part of the file name following the last dot ("<code title="">.</code>") in the file name to determine the type of the
+ file, and from that the manner in which the file is to be opened or
+ executed.</p>
+
+ <p>User agents should ignore any directory or path information
+ provided by the resource itself, its <a href=#url>URL</a>, and any <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute, in
+ deciding where to store the resulting file in the user's file
+ system.</p>
+
+ </div>
+
+<!--DOWNLOAD-->
+
+
+<!--PING-->
+
+ <div class=impl>
+
+ <h5 id=hyperlink-auditing><span class=secno>4.12.4.1 </span><dfn>Hyperlink auditing</dfn></h5>
+
+ <p>If a <a href=#hyperlink>hyperlink</a> created by an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element has a <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute, and the user
+ follows the hyperlink, and the value of the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute can be <a href=#resolve-a-url title="resolve a url">resolved</a>, relative to the element,
+ without failure, then the user agent must take the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute's value, <a href=#split-a-string-on-spaces title="split a string on spaces">split that string on spaces</a>,
+ <a href=#resolve-a-url title="resolve a url">resolve</a> each resulting token
+ relative to the element, and then should send a request (as
+ described below) to each of the resulting <a href=#absolute-url title="absolute
+ URL">absolute URLs</a>. (Tokens that fail to resolve are
+ ignored.) This may be done in parallel with the primary request, and
+ is independent of the result of that request.</p>
+
+ <p>User agents should allow the user to adjust this behavior, for
+ example in conjunction with a setting that disables the sending of
+ HTTP <code title=http-referer>Referer</code> (sic) headers. Based
+ on the user's preferences, UAs may either <a href=#ignore>ignore</a> the
+ <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute altogether,
+ or selectively ignore URLs in the list (e.g. ignoring any
+ third-party URLs).</p>
+
+ <p>For URLs that are HTTP URLs, the requests must be performed by
+ <a href=#fetch title=fetch>fetching</a> the specified URLs using the
+ POST method, with an entity body with the <a href=#mime-type>MIME type</a>
+ <code><a href=#text/ping>text/ping</a></code> consisting of the four-character string
+ "<code title="">PING</code>", from the <a href=#origin>origin</a> of the
+ <code><a href=#document>Document</a></code> containing the <a href=#hyperlink>hyperlink</a>. <!--
+ not http-origin privacy sensitive --> All relevant cookie and HTTP
+ authentication headers must be included in the request. Which other
+ headers are required depends on the URLs involved.</p>
+
+ <dl class=switch><dt>If both the <a href="#the-document's-address" title="the document's address">address</a>
+ of the <code><a href=#document>Document</a></code> object containing the hyperlink being
+ audited and the ping URL have the <a href=#same-origin>same origin</a></dt>
+
+ <dd>The request must include a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header with, as its
+ value, the <a href="#the-document's-address" title="the document's address">address</a> of
+ the document containing the hyperlink, and a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
+ the address of the <a href=#absolute-url>absolute URL</a> of the target of the
+ hyperlink. The request must not include a <code title=http-referer>Referer</code> (sic) HTTP header. <!-- because
+ otherwise it would look like a trustable same-origin POST --></dd>
+
+ <dt>Otherwise, if the origins are different, but the document
+ containing the hyperlink being audited was not retrieved over an
+ encrypted connection</dt>
+
+ <dd>The request must include a <code title=http-referer>Referer</code> (sic) HTTP header with, as its
+ value, the <a href="#the-document's-current-address" title="the document's current address">current
+ address</a> of the document containing the hyperlink, a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header with the same
+ value, and a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header
+ with, as its value, the address of the target of the
+ hyperlink.</dd>
+
+ <dt>Otherwise, the origins are different and the document
+ containing the hyperlink being audited was retrieved over an
+ encrypted connection</dt>
+
+ <dd>The request must include a <code title=http-ping-to><a href=#ping-to>Ping-To</a></code> HTTP header with, as its value,
+ the address of the target of the hyperlink. The request must
+ neither include a <code title=http-referer>Referer</code> (sic)
+ HTTP header nor include a <code title=http-ping-from><a href=#ping-from>Ping-From</a></code> HTTP header.</dd>
+
+ </dl><p class=note>To save bandwidth, implementors might also wish to
+ consider omitting optional headers such as <code>Accept</code> from
+ these requests.</p>
+
+ <p>User agents must, unless otherwise specified by the user, honor
+ the HTTP headers (including, in particular, redirects and HTTP
+ cookie headers), but must ignore any entity bodies returned in the
+ responses. User agents may close the connection prematurely once
+ they start receiving an entity body. <a href=#refsCOOKIES>[COOKIES]</a></p>
+
+ <p>For URLs that are not HTTP URLs, the requests must be performed
+ by <a href=#fetch title=fetch>fetching</a> the specified URL normally,
+ and discarding the results.</p>
+
+ <p>When the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute is
+ present, user agents should clearly indicate to the user that
+ following the hyperlink will also cause secondary requests to be
+ sent in the background, possibly including listing the actual target
+ URLs.</p>
+
+ <p class=example>For example, a visual user agent could include
+ the hostnames of the target ping URLs along with the hyperlink's
+ actual URL in a status bar or tooltip.</p>
+
+ </div>
+
+ <div class=note>
+
+ <p>The <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute is redundant
+ with pre-existing technologies like HTTP redirects and JavaScript
+ in allowing Web pages to track which off-site links are most
+ popular or allowing advertisers to track click-through rates.</p>
+
+ <p>However, the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute
+ provides these advantages to the user over those alternatives:</p>
+
+ <ul><li>It allows the user to see the final target URL
+ unobscured.</li>
+
+ <li>It allows the UA to inform the user about the out-of-band
+ notifications.</li>
+
+ <li>It allows the user to disable the notifications without losing
+ the underlying link functionality.</li>
+
+ <li>It allows the UA to optimize the use of available network
+ bandwidth so that the target page loads faster.</li>
+
+ </ul><p>Thus, while it is possible to track users without this feature,
+ authors are encouraged to use the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute so that the user
+ agent can make the user experience more transparent.</p>
+
+ </div>
+
+ <!-- resolving ping urls happens at audit time, so base URL changes
+ affect the values of ping attributes -->
+<!--PING-->
+
+
+
+ <h4 id=linkTypes><span class=secno>4.12.5 </span>Link types</h4>
+
+ <p>The following table summarizes the link types that are defined by
+ this specification. This table is non-normative; the actual
+ definitions for the link types are given in the next few
+ sections.</p>
+
+ <p>In this section, the term <i>referenced document</i> refers to
+ the resource identified by the element representing the link, and
+ the term <i>current document</i> refers to the resource within
+ which the element representing the link finds itself.</p>
+
+ <div class=impl>
+
+ <p>To determine which link types apply to a <code><a href=#the-link-element>link</a></code>,
+ <code><a href=#the-a-element>a</a></code>, or <code><a href=#the-area-element>area</a></code> element, the element's <code title="">rel</code> attribute must be <a href=#split-a-string-on-spaces title="split a string on
+ spaces">split on spaces</a>. The resulting tokens are the link
+ types that apply to that element.</p>
+
+ </div>
+
+ <p>Except where otherwise specified, a keyword must not be specified
+ more than once per <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>
+ attribute.</p>
+
+ <p>Link types are always <a href=#ascii-case-insensitive>ASCII case-insensitive</a><span class=impl>, and must be compared as such</span>.</p>
+
+ <p class=example>Thus, <code title="">rel="next"</code> is the
+ same as <code title="">rel="NEXT"</code>.</p>
+
+ <table><thead><tr><th rowspan=2>Link type</th>
+ <th colspan=2>Effect on...</th>
+ <th rowspan=2>Brief description</th>
+ <tr><th><code><a href=#the-link-element>link</a></code></th>
+ <th><code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code></th>
+ <tbody><tr><td><code title=rel-alternate><a href=#rel-alternate>alternate</a></code></td> <!-- second most used <link rel> value -->
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives alternate representations of the current document.</td>
+ <tr><td><code title=rel-author><a href=#link-type-author>author</a></code></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a link to the current document's author.</td>
+ <tr><td><code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code></td> <!-- fourth most used <a rel> value -->
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives the permalink for the nearest ancestor section.</td>
+ </tr><!-- (commented out on the assumption that rel=contact is really XFN)
+ <tr>
+ <td><code title="rel-contact">contact</code></td> <!- 8th most used <a rel> value ->
+ <td><span>Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Gives a link to contact information for the current document.</td>
+ </tr>
+--><!-- fifth and sixth most used <a rel> value (sixth is "external nofollow"), but moved to the wiki because of http://www.w3.org/Bugs/Public/show_bug.cgi?id=11181 --><!--!--><!--
+ <tr>
+ <td><code title="rel-external">external</code></td>
+ <td><em>not allowed</em></td>
+ <td><span>Hyperlink</span></td>
+ <td>Indicates that the referenced document is not part of the same site as the current document.</td>
+ </tr>
+--><tr><td><code title=rel-help><a href=#link-type-help>help</a></code></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Provides a link to context-sensitive help.</td>
+ <tr><td><code title=rel-icon><a href=#rel-icon>icon</a></code></td> <!-- link rel="shortcut icon" and its ilk are the fourth, sixth, and ninth most used values -->
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><em>not allowed</em></td>
+ <td>Imports an icon to represent the current document.</td>
+ <tr><td><code title=rel-license><a href=#link-type-license>license</a></code></td> <!-- seventh most used <a rel> value -->
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Indicates that the main content of the current document is covered by the copyright license described by the referenced document.</td>
+ <tr><td><code title=rel-next><a href=#link-type-next>next</a></code></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Indicates that the current document is a part of a series, and that the next document in the series is the referenced document.</td>
+ <tr><td><code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code></td> <!-- most used <a rel> value (and sixth most used is "external nofollow") -->
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink-annotation title="hyperlink annotation">Annotation</a></td>
+ <td>Indicates that the current document's original author or publisher does not endorse the referenced document.</td>
+ <tr><td><code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code></td>
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink-annotation title="hyperlink annotation">Annotation</a></td>
+ <td>Requires that the user agent not send an HTTP <code title=http-referer>Referer</code> (sic) header if the user follows the hyperlink.</td>
+ </tr><!-- used quite a bit; removed for http://www.w3.org/Bugs/Public/show_bug.cgi?id=12224 --><!-- now registered in http://microformats.org/wiki/existing-rel-values#formats --><!--
+ <tr>
+ <td><code title="rel-pingback">pingback</code></td>
+ <td><span title="external resource link">External Resource</span></td>
+ <td><em>not allowed</em></td>
+ <td>Gives the address of the pingback server that handles pingbacks to the current document.</td>
+ </tr>
+--><tr><td><code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code></td>
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td>Specifies that the target resource should be preemptively cached.</td>
+ <tr><td><code title=rel-prev><a href=#link-type-prev>prev</a></code></td> <!-- prev is used more than previous -->
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Indicates that the current document is a part of a series, and that the previous document in the series is the referenced document.</td>
+ <tr><td><code title=rel-search><a href=#link-type-search>search</a></code></td> <!-- used quite a bit -->
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a link to a resource that can be used to search through the current document and its related pages.</td>
+ </tr><!-- used quite a bit, but dropped due to wg decision in http://www.w3.org/Bugs/Public/show_bug.cgi?id=11183 --><!--!--><!--
+ <tr>
+ <td><code title="rel-sidebar">sidebar</code></td>
+ <td><span>Hyperlink</span></td>
+ <td><span>Hyperlink</span></td>
+ <td>Specifies that the referenced document, if retrieved, is intended to be shown in the browser's sidebar (if it has one).</td>
+ </tr>
+--><tr><td><code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code></td> <!-- most commonly used <link rel> value, variants came in 7th, 8th, 12th, 17th... -->
+ <td><a href=#external-resource-link title="external resource link">External Resource</a></td>
+ <td><em>not allowed</em></td>
+ <td>Imports a stylesheet.</td>
+ <tr><td><code title=rel-tag><a href=#link-type-tag>tag</a></code></td> <!-- second and third most used <a rel> value (third is technically "category tag"). -->
+ <td><em>not allowed</em></td>
+ <td><a href=#hyperlink>Hyperlink</a></td>
+ <td>Gives a tag (identified by the given address) that applies to the current document.</td>
+ </table><div class=impl>
+
+ <p>Some of the types described below list synonyms for these
+ values. These <!--<span class="impl">-->are to be handled as
+ specified by user agents, but<!--</span>--> must not be used in
+ documents.</p>
+
+ </div>
+
+ <!-- v2 ideas:
+ * rel="related" // see also
+ * http://microformats.org/wiki/rel-enclosure
+ -->
+
+
+ <h5 id=rel-alternate><span class=secno>4.12.5.1 </span>Link type "<dfn title=rel-alternate><code>alternate</code></dfn>"</h5>
+
+ <p>The <code title=rel-alternate><a href=#rel-alternate>alternate</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements.</p>
+
+ <p>The meaning of this keyword depends on the values of the other
+ attributes.</p>
+
+ <dl class=switch><dt>If the element is a <code><a href=#the-link-element>link</a></code> element and the <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute also contains the
+ keyword <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code></dt>
+
+ <dd>
+
+ <p>The <code title=rel-alternate><a href=#rel-alternate>alternate</a></code> keyword
+ modifies the meaning of the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword in the way
+ described for that keyword. The <code title=rel-alternate><a href=#rel-alternate>alternate</a></code> keyword does not create a
+ link of its own.</p>
+
+ </dd>
+
+
+ <dt>The <code title=rel-alternate><a href=#rel-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code>
+ attribute set to the value <code title="">application/rss+xml</code> or the value <code title="">application/atom+xml</code></dt>
+
+ <dd>
+
+ <p>The keyword creates a <a href=#hyperlink>hyperlink</a> referencing a
+ syndication feed (though not necessarily syndicating exactly the
+ same content as the current page).</p>
+
+ <div class=impl>
+
+ <p>The first <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, or <code><a href=#the-area-element>area</a></code>
+ element in the document (in tree order) with the <code title=rel-alternate><a href=#rel-alternate>alternate</a></code> keyword used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attribute set to the value
+ <code title="">application/rss+xml</code> or the value <code title="">application/atom+xml</code> must be treated as the default
+ syndication feed for the purposes of feed autodiscovery.</p>
+
+ <div class=example>
+ <p>The following <code><a href=#the-link-element>link</a></code> element gives the syndication
+ feed for the current page:</p>
+ <pre>&lt;link rel="alternate" type="application/atom+xml" href="data.xml"&gt;</pre>
+ <p>The following extract offers various different syndication
+ feeds:</p>
+ <pre>&lt;p&gt;You can access the planets database using Atom feeds:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;&lt;a href="recently-visited-planets.xml" rel="alternate" type="application/atom+xml"&gt;Recently Visited Planets&lt;/a&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;a href="known-bad-planets.xml" rel="alternate" type="application/atom+xml"&gt;Known Bad Planets&lt;/a&gt;&lt;/li&gt;
+ &lt;li&gt;&lt;a href="unexplored-planets.xml" rel="alternate" type="application/atom+xml"&gt;Unexplored Planets&lt;/a&gt;&lt;/li&gt;
+&lt;/ul&gt;</pre>
+ </div>
+
+ </div>
+
+ </dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>The keyword creates a <a href=#hyperlink>hyperlink</a> referencing an
+ alternate representation of the current document.</p>
+
+ <p>The nature of the referenced document is given by the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes.</p>
+
+ <p>If the <code title=rel-alternate><a href=#rel-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>
+ attribute, it indicates that the referenced document is intended for
+ use with the media specified.</p>
+
+ <p>If the <code title=rel-alternate><a href=#rel-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>
+ attribute, and that attribute's value differs from the <a href=#root-element>root
+ element</a>'s <a href=#language>language</a>, it indicates that the
+ referenced document is a translation.</p>
+
+ <p>If the <code title=rel-alternate><a href=#rel-alternate>alternate</a></code> keyword is
+ used with the <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code>
+ attribute, it indicates that the referenced document is a
+ reformulation of the current document in the specified format.</p>
+
+ <p>The <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>, <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>, and <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code> attributes can be combined
+ when specified with the <code title=rel-alternate><a href=#rel-alternate>alternate</a></code>
+ keyword.</p>
+
+ <div class=example>
+
+ <p>For example, the following link is a French translation that
+ uses the PDF format:</p>
+
+ <pre>&lt;link rel=alternate type=application/pdf hreflang=fr href=manual-fr&gt;</pre>
+
+ </div>
+
+ <p>This relationship is transitive &mdash; that is, if a document
+ links to two other documents with the link type "<code title=rel-alternate><a href=#rel-alternate>alternate</a></code>", then, in addition to
+ implying that those documents are alternative representations of
+ the first document, it is also implying that those two documents
+ are alternative representations of each other.</p>
+
+ </dd>
+
+ </dl><h5 id=link-type-author><span class=secno>4.12.5.2 </span>Link type "<dfn title=rel-author><code>author</code></dfn>"</h5>
+
+ <p>The <code title=rel-author><a href=#link-type-author>author</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. This keyword creates a <a href=#hyperlink>hyperlink</a>.</p>
+
+ <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, the <code title=rel-author><a href=#link-type-author>author</a></code> keyword indicates that the
+ referenced document provides further information about the author of
+ the nearest <code><a href=#the-article-element>article</a></code> element ancestor of the element
+ defining the hyperlink, if there is one, or of the page as a whole,
+ otherwise.</p>
+
+ <p>For <code><a href=#the-link-element>link</a></code> elements, the <code title=rel-author><a href=#link-type-author>author</a></code> keyword indicates that the
+ referenced document provides further information about the author
+ for the page as a whole.</p>
+
+ <p class=note>The "referenced document" can be, and often is, a
+ <code title="">mailto:</code> URL giving the e-mail address of the
+ author. <a href=#refsMAILTO>[MAILTO]</a></p>
+
+ <div class=impl>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and
+ <code><a href=#the-area-element>area</a></code> elements that have a <code title="">rev</code>
+ attribute with the value "<code>made</code>" as having the <code title=rel-author><a href=#link-type-author>author</a></code> keyword specified as a link
+ relationship.</p>
+
+ </div>
+
+
+ <h5 id=link-type-bookmark><span class=secno>4.12.5.3 </span>Link type "<dfn title=rel-bookmark><code>bookmark</code></dfn>"</h5>
+
+ <p>The <code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements. This
+ keyword creates a <a href=#hyperlink>hyperlink</a>.</p>
+
+ <p>The <code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code> keyword gives a
+ permalink for the nearest ancestor <code><a href=#the-article-element>article</a></code> element of
+ the linking element in question, or of <a href=#associatedSection>the section the linking element is most
+ closely associated with</a>, if there are no ancestor
+ <code><a href=#the-article-element>article</a></code> elements.</p>
+
+ <div class=example>
+ <p>The following snippet has three permalinks. A user agent could
+ determine which permalink applies to which part of the spec by
+ looking at where the permalinks are given.</p>
+ <pre> ...
+ &lt;body&gt;
+ &lt;h1&gt;Example of permalinks&lt;/h1&gt;
+ &lt;div id="a"&gt;
+ &lt;h2&gt;First example&lt;/h2&gt;
+ &lt;p&gt;&lt;a href="a.html" rel="bookmark"&gt;This&lt;/a&gt; permalink applies to
+ only the content from the first H2 to the second H2. The DIV isn't
+ exactly that section, but it roughly corresponds to it.&lt;/p&gt;
+ &lt;/div&gt;
+ &lt;h2&gt;Second example&lt;/h2&gt;
+ &lt;article id="b"&gt;
+ &lt;p&gt;&lt;a href="b.html" rel="bookmark"&gt;This&lt;/a&gt; permalink applies to
+ the outer ARTICLE element (which could be, e.g., a blog post).&lt;/p&gt;
+ &lt;article id="c"&gt;
+ &lt;p&gt;&lt;a href="c.html" rel="bookmark"&gt;This&lt;/a&gt; permalink applies to
+ the inner ARTICLE element (which could be, e.g., a blog comment).&lt;/p&gt;
+ &lt;/article&gt;
+ &lt;/article&gt;
+ &lt;/body&gt;
+ ...</pre>
+ </div>
+
+<!-- (commented out on the assumption that rel=contact is really XFN)
+ <h5>Link type "<dfn title="rel-contact"><code>contact</code></dfn>"</h5>
+
+ <p>The <code title="rel-contact">contact</code> keyword may be used
+ with <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. This keyword creates a <span>hyperlink</span>.</p>
+
+ <p>For <code>a</code> and <code>area</code> elements, the <code
+ title="rel-contact">contact</code> keyword indicates that the
+ referenced document provides further contact information for the
+ author of the nearest <code>article</code> element ancestor of the
+ element defining the hyperlink, if there is one, or of the page as a
+ whole, otherwise.</p>
+
+ <div class="impl">
+
+ <p>User agents must treat any hyperlink in an <code>address</code>
+ element as having the <code title="rel-contact">contact</code> link
+ type specified.</p>
+
+ </div>
+
+ <p>For <code>link</code> elements, the <code
+ title="rel-contact">contact</code> keyword indicates that the
+ referenced document provides further contact information for the
+ page as a whole.</p>
+-->
+
+<!-- fifth and sixth most used <a rel> value (sixth is "external nofollow"), but moved to the wiki because of http://www.w3.org/Bugs/Public/show_bug.cgi?id=11181 --> <!--!-->
+<!--
+ <h5>Link type "<dfn title="rel-external"><code>external</code></dfn>"</h5>
+
+ <p>The <code title="rel-external">external</code> keyword may be
+ used with <code>a</code> and <code>area</code> elements. This
+ keyword creates a <span>hyperlink</span>.</p>
+
+ <p>The <code title="rel-external">external</code> keyword indicates
+ that the link is leading to a document that is not part of the site
+ that the current document forms a part of.</p>
+-->
+
+ <h5 id=link-type-help><span class=secno>4.12.5.4 </span>Link type "<dfn title=rel-help><code>help</code></dfn>"</h5>
+
+ <p>The <code title=rel-help><a href=#link-type-help>help</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. This keyword creates a <a href=#hyperlink>hyperlink</a>.</p>
+
+ <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, the <code title=rel-help><a href=#link-type-help>help</a></code> keyword indicates that the referenced
+ document provides further help information for the parent of the
+ element defining the hyperlink, and its children.</p>
+
+ <div class=example>
+
+ <p>In the following example, the form control has associated
+ context-sensitive help. The user agent could use this information,
+ for example, displaying the referenced document if the user presses
+ the "Help" or "F1" key.</p>
+
+ <pre> &lt;p&gt;&lt;label&gt; Topic: &lt;input name=topic&gt; &lt;a href="help/topic.html" rel="help"&gt;(Help)&lt;/a&gt;&lt;/label&gt;&lt;/p&gt;</pre>
+
+ </div>
+
+ <p>For <code><a href=#the-link-element>link</a></code> elements, the <code title=rel-help><a href=#link-type-help>help</a></code> keyword indicates that the referenced
+ document provides help for the page as a whole.</p>
+
+ <p>For <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements, on some
+ browsers, the <code title=rel-help><a href=#link-type-help>help</a></code> keyword causes the
+ link to use a different cursor.</p>
+
+
+ <h5 id=rel-icon><span class=secno>4.12.5.5 </span>Link type "<dfn title=rel-icon><code>icon</code></dfn>"</h5>
+
+ <p>The <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code> elements. This keyword creates an <a href=#external-resource-link title="external resource link">external resource link</a>.</p>
+
+ <div class=impl>
+
+ <p>The specified resource is an icon representing the page or site,
+ and should be used by the user agent when representing the page in
+ the user interface.</p>
+
+ </div>
+
+ <p>Icons could be auditory icons, visual icons, or other kinds of
+ icons. <span class=impl>If multiple icons are provided, the user
+ agent must select the most appropriate icon according to the <code title=attr-link-type><a href=#attr-link-type>type</a></code>, <code title=attr-link-media><a href=#attr-link-media>media</a></code>, and <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attributes. If there are
+ multiple equally appropriate icons, user agents must use the last
+ one declared in <a href=#tree-order>tree order</a> at the time that the user
+ agent collected the list of icons. If the user agent tries to use an
+ icon but that icon is determined, upon closer examination, to in
+ fact be inappropriate (e.g. because it uses an unsupported format),
+ then the user agent must try the next-most-appropriate icon as
+ determined by the attributes.</span></p>
+
+ <div class=impl>
+
+ <p class=note>User agents are not required to update icons when
+ the list of icons changes, but are encouraged to do so.</p>
+
+ <p>There is no default type for resources given by the <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword. However, for the purposes of
+ <a href=#concept-link-type-sniffing>determining the type of the
+ resource</a>, user agents must expect the resource to be an image.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-link-sizes title=attr-link-sizes><code>sizes</code></dfn>
+ attribute gives the sizes of icons for visual media. Its value, if
+ present, is merely advisory. User agents may use the value to decide
+ which icon(s) to use if multiple icons are available.</p>
+
+ <p>If specified, the attribute must have a value that is an
+ <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique space-separated tokens</a> which
+ are <a href=#ascii-case-insensitive>ASCII case-insensitive</a>. Each value must be either
+ an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title=attr-link-sizes-any><a href=#attr-link-sizes-any>any</a></code>", or a value that consists of
+ two <a href=#valid-non-negative-integer title="valid non-negative integer">valid non-negative
+ integers</a> that do not have a leading U+0030 DIGIT ZERO (0)
+ character and that are separated by a single U+0078 LATIN SMALL
+ LETTER X or U+0058 LATIN CAPITAL LETTER X character.</p>
+
+ <p>The keywords represent icon sizes.</p>
+
+ <div class=impl>
+
+ <p>To parse and process the attribute's value, the user agent must
+ first <a href=#split-a-string-on-spaces title="split a string on spaces">split the attribute's
+ value on spaces</a>, and must then parse each resulting keyword
+ to determine what it represents.</p>
+
+ </div>
+
+ <p>The <dfn id=attr-link-sizes-any title=attr-link-sizes-any><code>any</code></dfn> keyword
+ represents that the resource contains a scalable icon, e.g. as
+ provided by an SVG image.</p>
+
+ <div class=impl>
+
+ <p>Other keywords must be further parsed as follows to determine
+ what they represent:</p>
+
+ <ul><li><p>If the keyword doesn't contain exactly one U+0078 LATIN
+ SMALL LETTER X or U+0058 LATIN CAPITAL LETTER X character, then
+ this keyword doesn't represent anything. Abort these steps for that
+ keyword.</li>
+
+ <li><p>Let <var title="">width string</var> be the string before
+ the "<code title="">x</code>" or "<code title="">X</code>".</li>
+
+ <li><p>Let <var title="">height string</var> be the string after
+ the "<code title="">x</code>" or "<code title="">X</code>".</li>
+
+ <li><p>If either <var title="">width string</var> or <var title="">height string</var> start with a U+0030 DIGIT ZERO (0)
+ character or contain any characters other than characters in the
+ range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then this
+ keyword doesn't represent anything. Abort these steps for that
+ keyword.</li>
+
+ <li><p>Apply the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a> to <var title="">width string</var> to obtain <var title="">width</var>.</li>
+
+ <li><p>Apply the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a> to <var title="">height string</var> to obtain <var title="">height</var>.</li>
+
+ <li><p>The keyword represents that the resource contains a bitmap
+ icon with a width of <var title="">width</var> device pixels and a
+ height of <var title="">height</var> device pixels.</li>
+
+ </ul></div>
+
+ <p>The keywords specified on the <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code> attribute must not represent
+ icon sizes that are not actually available in the linked
+ resource.</p>
+
+ <div class=impl>
+
+ <p>In the absence of a <code><a href=#the-link-element>link</a></code> with the <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword, for <code><a href=#document>Document</a></code>s
+ obtained over HTTP or HTTPS, user agents may instead attempt to
+ <a href=#fetch>fetch</a> and use an icon with the <a href=#absolute-url>absolute
+ URL</a> obtained by resolving the <a href=#url>URL</a> "<code title="">/favicon.ico</code>" against <a href="#the-document's-address">the document's
+ address</a>, as if the page had declared that icon using the
+ <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following snippet shows the top part of an application with
+ several icons.</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;lsForums &mdash; Inbox&lt;/title&gt;
+ &lt;link rel=icon href=favicon.png sizes="16x16" type="image/png"&gt;
+ &lt;link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon"&gt;
+ &lt;link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768"&gt;
+ &lt;link rel=icon href=iphone.png sizes="57x57" type="image/png"&gt;
+ &lt;link rel=icon href=gnome.svg sizes="any" type="image/svg+xml"&gt;
+ &lt;link rel=stylesheet href=lsforums.css&gt;
+ &lt;script src=lsforums.js&gt;&lt;/script&gt;
+ &lt;meta name=application-name content="lsForums"&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ ...</pre>
+
+ </div>
+
+ <p>For historical reasons, the <code title=rel-icon><a href=#rel-icon>icon</a></code>
+ keyword may be preceded by the keyword "<code title="">shortcut</code>". If the "<code title="">shortcut</code>"
+ keyword is present, it must be come immediately before the <code title=rel-icon><a href=#rel-icon>icon</a></code> keyword and the two keywords must be
+ separated by only a single U+0020 SPACE character.</p>
+
+
+ <h5 id=link-type-license><span class=secno>4.12.5.6 </span>Link type "<dfn title=rel-license><code>license</code></dfn>"</h5>
+
+ <p>The <code title=rel-license><a href=#link-type-license>license</a></code> keyword may be used
+ with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. This keyword creates a <a href=#hyperlink>hyperlink</a>.</p>
+
+ <p>The <code title=rel-license><a href=#link-type-license>license</a></code> keyword indicates
+ that the referenced document provides the copyright license terms
+ under which the main content of the current document is
+ provided.</p>
+
+ <p>This specification does not specify how to distinguish between
+ the main content of a document and content that is not deemed to be
+ part of that main content. The distinction should be made clear to
+ the user.</p>
+
+ <div class=example>
+
+ <p>Consider a photo sharing site. A page on that site might
+ describe and show a photograph, and the page might be marked up as
+ follows:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Exampl Pictures: Kissat&lt;/title&gt;
+ &lt;link rel="stylesheet" href="/style/default"&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;h1&gt;Kissat&lt;/h1&gt;
+ &lt;nav&gt;
+ &lt;a href="../"&gt;Return to photo index&lt;/a&gt;
+ &lt;/nav&gt;
+ &lt;figure&gt;
+ &lt;img src="/pix/39627052_fd8dcd98b5.jpg"&gt;
+ &lt;figcaption&gt;Kissat&lt;/figcaption&gt;
+ &lt;/figure&gt;
+ &lt;p&gt;One of them has six toes!&lt;/p&gt;
+ &lt;p&gt;&lt;small&gt;&lt;a rel="license" href="http://www.opensource.org/licenses/mit-license.php"&gt;MIT Licensed&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
+ &lt;footer&gt;
+ &lt;a href="/"&gt;Home&lt;/a&gt; | &lt;a href="../"&gt;Photo index&lt;/a&gt;
+ &lt;p&gt;&lt;small&gt;&copy; copyright 2009 Exampl Pictures. All Rights Reserved.&lt;/small&gt;&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>In this case the <code title=rel-license><a href=#link-type-license>license</a></code>
+ applies to just the photo (the main content of the document), not
+ the whole document. In particular not the design of the page
+ itself, which is covered by the copyright given at the bottom of
+ the document. This could be made clearer in the styling
+ (e.g. making the license link prominently positioned near the
+ photograph, while having the page copyright in light small text at
+ the foot of the page.</p>
+
+ </div>
+
+ <div class=impl>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat the keyword "<code title="">copyright</code>" like
+ the <code title=rel-license><a href=#link-type-license>license</a></code> keyword.</p>
+
+ </div>
+
+
+ <h5 id=link-type-nofollow><span class=secno>4.12.5.7 </span>Link type "<dfn title=rel-nofollow><code>nofollow</code></dfn>"</h5>
+
+ <p>The <code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements. This
+ keyword does not create a <a href=#hyperlink>hyperlink</a>, but <a href=#hyperlink-annotation title="hyperlink annotation">annotates</a> any other hyperlinks
+ created by the element (the implied hyperlink, if no other keywords
+ create one).</p>
+
+ <p>The <code title=rel-nofollow><a href=#link-type-nofollow>nofollow</a></code> keyword indicates
+ that the link is not endorsed by the original author or publisher of
+ the page, or that the link to the referenced document was included
+ primarily because of a commercial relationship between people
+ affiliated with the two pages.</p>
+
+
+ <h5 id=link-type-noreferrer><span class=secno>4.12.5.8 </span>Link type "<dfn title=rel-noreferrer><code>noreferrer</code></dfn>"</h5>
+
+ <p>The <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword may be
+ used with <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements. This
+ keyword does not create a <a href=#hyperlink>hyperlink</a>, but <a href=#hyperlink-annotation title="hyperlink annotation">annotates</a> any other hyperlinks
+ created by the element (the implied hyperlink, if no other keywords
+ create one).</p>
+
+ <p>It indicates that no referrer information is to be leaked when
+ following the link.</p>
+
+ <div class=impl>
+
+ <p>If a user agent follows a link defined by an <code><a href=#the-a-element>a</a></code> or
+ <code><a href=#the-area-element>area</a></code> element that has the <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword, the user agent
+ must not include a <code title=http-referer>Referer</code> (sic)
+ HTTP header (<a href=#concept-http-equivalent-headers title=concept-http-equivalent-headers>or
+ equivalent</a> for other protocols) in the request.</p>
+
+ <p>This keyword also <a href=#noopener>causes the <code title=dom-opener>opener</code> attribute to remain null</a> if the
+ hyperlink creates a new <a href=#browsing-context>browsing context</a>.</p>
+
+ </div>
+
+ <!-- v2: Would be nice to apply this to other elements too,
+ e.g. letting <img> or CSS or <video> hide the referrer -->
+
+<!-- used quite a bit; removed for http://www.w3.org/Bugs/Public/show_bug.cgi?id=12224 -->
+<!-- now registered in http://microformats.org/wiki/existing-rel-values#formats -->
+<!--
+ <h5>Link type "<dfn title="rel-pingback"><code>pingback</code></dfn>"</h5>
+
+ <p>The <code title="rel-pingback">pingback</code> keyword may be
+ used with <code>link</code> elements. This keyword creates an <span
+ title="external resource link">external resource link</span>.</p>
+
+ <p>For the semantics of the <code
+ title="rel-pingback">pingback</code> keyword, see the Pingback 1.0
+ specification. <a href="#refsPINGBACK">[PINGBACK]</a></p>
+-->
+
+ <h5 id=link-type-prefetch><span class=secno>4.12.5.9 </span>Link type "<dfn title=rel-prefetch><code>prefetch</code></dfn>"</h5>
+
+ <p>The <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. This keyword creates an <a href=#external-resource-link title="external resource
+ link">external resource link</a>.</p>
+
+ <p>The <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword indicates
+ that preemptively fetching and caching the specified resource is
+ likely to be beneficial, as it is highly likely that the user will
+ require this resource.</p>
+
+ <p>There is no default type for resources given by the <code title=rel-prefetch><a href=#link-type-prefetch>prefetch</a></code> keyword.</p>
+
+
+ <h5 id=link-type-search><span class=secno>4.12.5.10 </span>Link type "<dfn title=rel-search><code>search</code></dfn>"</h5>
+
+ <p>The <code title=rel-search><a href=#link-type-search>search</a></code> keyword may be used
+ with <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. This keyword creates a <a href=#hyperlink>hyperlink</a>.</p>
+
+ <p>The <code title=rel-search><a href=#link-type-search>search</a></code> keyword indicates that
+ the referenced document provides an interface specifically for
+ searching the document and its related resources.</p>
+
+ <p class=note>OpenSearch description documents can be used with
+ <code><a href=#the-link-element>link</a></code> elements and the <code title=rel-search><a href=#link-type-search>search</a></code> link type to enable user agents to
+ autodiscover search interfaces. <a href=#refsOPENSEARCH>[OPENSEARCH]</a></p>
+
+
+<!-- dropped due to wg decision in http://www.w3.org/Bugs/Public/show_bug.cgi?id=11183 --> <!--!-->
+<!--
+ <h5>Link type "<dfn title="rel-sidebar"><code>sidebar</code></dfn>"</h5>
+
+ <p>The <code title="rel-sidebar">sidebar</code> keyword may be used
+ with <code>link</code>, <code>a</code>, and <code>area</code>
+ elements. This keyword creates a <span>hyperlink</span>.</p>
+
+ <p>The <code title="rel-sidebar">sidebar</code> keyword indicates
+ that the referenced document, if retrieved, is intended to be shown
+ in a <span>secondary browsing context</span> (if possible), instead
+ of in the current <span>browsing context</span>.</p>
+
+ <p>A <span>hyperlink</span> with the <code
+ title="rel-sidebar">sidebar</code> keyword specified is a <dfn
+ title="rel-sidebar-hyperlink">sidebar hyperlink</dfn>.</p>
+-->
+
+ <h5 id=link-type-stylesheet><span class=secno>4.12.5.11 </span>Link type "<dfn title=rel-stylesheet><code>stylesheet</code></dfn>"</h5>
+
+ <p>The <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword may be
+ used with <code><a href=#the-link-element>link</a></code> elements. This keyword creates an <a href=#external-resource-link title="external resource link">external resource link</a> that
+ contributes to the <a href=#styling>styling processing model</a>.</p>
+
+ <p>The specified resource is a resource that describes how to
+ present the document. Exactly how the resource is to be processed
+ depends on the actual type of the resource.</p>
+
+ <p>If the <code title=rel-alternate><a href=#rel-alternate>alternate</a></code> keyword is
+ also specified on the <code><a href=#the-link-element>link</a></code> element, then <dfn id=the-link-is-an-alternative-stylesheet>the link
+ is an alternative stylesheet</dfn>; in this case, the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute must be specified on the
+ <code><a href=#the-link-element>link</a></code> element, with a non-empty value.</p>
+
+ <p>The default type for resources given by the <code title=rel-stylesheet><a href=#link-type-stylesheet>stylesheet</a></code> keyword is <code title="">text/css</code>.</p>
+
+ <div class=impl>
+
+ <p>The appropriate time to <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource is when the
+ <a href=#external-resource-link title="external resource link">external resource link</a>
+ is created or when its element is <a href=#insert-an-element-into-a-document title="insert an element
+ into a document">inserted into a document</a>, whichever happens
+ last. If the resource is <a href=#the-link-is-an-alternative-stylesheet title="the link is an alternative
+ stylesheet">an alternative stylesheet</a> then the user agent may
+ defer obtaining the resource until it is part of the <span>preferred
+ style sheet set</span>. <a href=#refsCSSOM>[CSSOM]</a></p> <!--
+ what about DOM access of alt style sheets? -->
+
+ <p><strong>Quirk</strong>: If the document has been set to
+ <a href=#quirks-mode>quirks mode</a>, has the <a href=#same-origin>same origin</a> as the
+ <a href=#url>URL</a> of the external resource<!-- CVE-2010-0654 -->, and
+ the <a href=#content-type title=Content-Type>Content-Type metadata</a> of the
+ external resource is not a supported style sheet type, the user
+ agent must instead assume it to be <code title="">text/css</code>.</p>
+
+ </div>
+
+
+ <h5 id=link-type-tag><span class=secno>4.12.5.12 </span>Link type "<dfn title=rel-tag><code>tag</code></dfn>"</h5>
+
+ <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> keyword may be used with
+ <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code> elements. This keyword creates
+ a <a href=#hyperlink>hyperlink</a>.</p>
+
+ <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> keyword indicates that the
+ <em>tag</em> that the referenced document represents applies to the
+ current document.</p>
+
+ <p class=note>Since it indicates that the tag <em>applies to the
+ current document</em>, it would be inappropriate to use this keyword
+ in the markup of a <a href=#tag-cloud>tag cloud</a>, which lists
+ the popular tags across a set of pages.</p>
+
+
+
+ <h5 id=sequential-link-types><span class=secno>4.12.5.13 </span>Sequential link types</h5>
+
+ <p>Some documents form part of a sequence of documents.</p>
+
+ <p>A sequence of documents is one where each document can have a
+ <em>previous sibling</em> and a <em>next sibling</em>. A document
+ with no previous sibling is the start of its sequence, a document
+ with no next sibling is the end of its sequence.</p>
+
+ <p>A document may be part of multiple sequences.</p>
+
+
+ <h6 id=link-type-next><span class=secno>4.12.5.13.1 </span>Link type "<dfn title=rel-next><code>next</code></dfn>"</h6>
+
+ <p>The <code title=rel-next><a href=#link-type-next>next</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. This keyword creates a <a href=#hyperlink>hyperlink</a>.</p>
+
+ <p>The <code title=rel-next><a href=#link-type-next>next</a></code> keyword indicates that the
+ document is part of a sequence, and that the link is leading to the
+ document that is the next logical document in the sequence.</p>
+
+
+ <h6 id=link-type-prev><span class=secno>4.12.5.13.2 </span>Link type "<dfn title=rel-prev><code>prev</code></dfn>"</h6>
+
+ <p>The <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword may be used with
+ <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code>
+ elements. This keyword creates a <a href=#hyperlink>hyperlink</a>.</p>
+
+ <p>The <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword indicates that the
+ document is part of a sequence, and that the link is leading to the
+ document that is the previous logical document in the sequence.</p>
+
+ <div class=impl>
+
+ <p><strong>Synonyms</strong>: For historical reasons, user agents
+ must also treat the keyword "<code title="">previous</code>" like
+ the <code title=rel-prev><a href=#link-type-prev>prev</a></code> keyword.</p>
+
+ </div>
+
+
+ <h5 id=other-link-types><span class=secno>4.12.5.14 </span>Other link types</h5>
+
+ <!-- XXX should update this section to more closely match the wiki -->
+ <!-- possibly also applying the principles described here:
+ http://lists.w3.org/Archives/Public/public-html/2011Mar/0497.html
+ -->
+
+ <p><dfn id=concept-rel-extensions title=concept-rel-extensions>Extensions to the predefined
+ set of link types</dfn> may be registered in the <a href=http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions>Microformats wiki existing-rel-values page</a>. <a href=#refsMFREL>[MFREL]</a></p>
+
+ <p>Anyone is free to edit the <span title="">Microformats wiki
+ existing-rel-values page</span> at any time to add a type. Extension
+ types must be specified with the following information:</p>
+
+ <dl><dt>Keyword</dt>
+
+ <dd>
+
+ <p>The actual value being defined. The value should not be
+ confusingly similar to any other defined value (e.g. differing
+ only in case).</p>
+
+ <p>If the value contains a U+003A COLON character (:), it must
+ also be an <a href=#absolute-url>absolute URL</a>.</p>
+
+ </dd>
+
+
+ <dt>Effect on... <code><a href=#the-link-element>link</a></code></dt>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl><dt>Not allowed</dt>
+
+ <dd>The keyword must not be specified on <code><a href=#the-link-element>link</a></code>
+ elements.</dd>
+
+ <dt>Hyperlink</dt>
+
+ <dd>The keyword may be specified on a <code><a href=#the-link-element>link</a></code> element;
+ it creates a <a href=#hyperlink>hyperlink</a>.</dd>
+
+ <dt>External Resource</dt>
+
+ <dd>The keyword may be specified on a <code><a href=#the-link-element>link</a></code> element;
+ it creates an <a href=#external-resource-link>external resource link</a>.</dd>
+
+ </dl></dd>
+
+
+ <dt>Effect on... <code><a href=#the-a-element>a</a></code> and <code><a href=#the-area-element>area</a></code></dt>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl><dt>Not allowed</dt>
+
+ <dd>The keyword must not be specified on <code><a href=#the-a-element>a</a></code> and
+ <code><a href=#the-area-element>area</a></code> elements.</dd>
+
+ <dt>Hyperlink</dt>
+
+ <dd>The keyword may be specified on <code><a href=#the-a-element>a</a></code> and
+ <code><a href=#the-area-element>area</a></code> elements; it creates a
+ <a href=#hyperlink>hyperlink</a>.</dd>
+
+ <dt>External Resource</dt>
+
+ <dd>The keyword may be specified on a <code><a href=#the-a-element>a</a></code> and
+ <code><a href=#the-area-element>area</a></code> elements; it creates an <a href=#external-resource-link>external resource
+ link</a>.</dd>
+
+ <dt>Hyperlink Annotation</dt>
+
+ <dd>The keyword may be specified on a <code><a href=#the-a-element>a</a></code> and
+ <code><a href=#the-area-element>area</a></code> elements; it <a href=#hyperlink-annotation title="hyperlink
+ annotation">annotates</a> other <a href=#hyperlink title=hyperlink>hyperlinks</a> created by the element.</dd>
+
+ </dl></dd>
+
+
+ <dt>Brief description</dt>
+
+ <dd><p>A short non-normative description of what the keyword's
+ meaning is.</dd>
+
+
+ <dt>Specification</dt>
+
+ <dd><p>A link to a more detailed description of the keyword's
+ semantics and requirements. It could be another page on the Wiki,
+ or a link to an external page.</dd>
+
+
+ <dt>Synonyms</dt>
+
+ <dd><p>A list of other keyword values that have exactly the same
+ processing requirements. Authors should not use the values defined
+ to be synonyms, they are only intended to allow user agents to
+ support legacy content. Anyone may remove synonyms that are not
+ used in practice; only names that need to be processed as synonyms
+ for compatibility with legacy content are to be registered in this
+ way.</dd>
+
+
+ <dt>Status</dt>
+
+ <dd>
+
+ <p>One of the following:</p>
+
+ <dl><dt>Proposed</dt>
+
+ <dd>The keyword has not received wide peer review and
+ approval. Someone has proposed it and is, or soon will be, using
+ it.</dd>
+
+ <dt>Ratified</dt>
+
+ <dd>The keyword has received wide peer review and approval. It
+ has a specification that unambiguously defines how to handle
+ pages that use the keyword, including when they use it in
+ incorrect ways.</dd>
+
+ <dt>Discontinued</dt>
+
+ <dd>The keyword has received wide peer review and it has been
+ found wanting. Existing pages are using this keyword, but new
+ pages should avoid it. The "brief description" and
+ "specification" entries will give details of what authors should
+ use instead, if anything.</dd>
+
+ </dl><p>If a keyword is found to be redundant with existing values, it
+ should be removed and listed as a synonym for the existing
+ value.</p>
+
+ <p>If a keyword is registered in the "proposed" state for a
+ period of a month or more without being used or specified, then it
+ may be removed from the registry.</p>
+
+ <p>If a keyword is added with the "proposed" status and found to
+ be redundant with existing values, it should be removed and listed
+ as a synonym for the existing value. If a keyword is added with
+ the "proposed" status and found to be harmful, then it should be
+ changed to "discontinued" status.</p>
+
+ <p>Anyone can change the status at any time, but should only do so
+ in accordance with the definitions above.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>Conformance checkers must use the information given on the <span title="">Microformats wiki existing-rel-values page</span> to
+ establish if a value is allowed or not: values defined in this
+ specification or marked as "proposed" or "ratified" must be accepted
+ when used on the elements for which they apply as described in the
+ "Effect on..." field, whereas values marked as "discontinued" or not
+ listed in either this specification or on the aforementioned page
+ must be rejected as invalid. Conformance checkers may cache this
+ information (e.g. for performance reasons or to avoid the use of
+ unreliable network connectivity).</p>
+
+ <p>When an author uses a new type not defined by either this
+ specification or the Wiki page, conformance checkers should offer to
+ add the value to the Wiki, with the details described above, with
+ the "proposed" status.</p>
+
+ </div>
+
+ <p>Types defined as extensions in the <a href=http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions>Microformats
+ wiki existing-rel-values page</a> with the status "proposed" or
+ "ratified" may be used with the <code title="">rel</code> attribute
+ on <code><a href=#the-link-element>link</a></code>, <code><a href=#the-a-element>a</a></code>, and <code><a href=#the-area-element>area</a></code> elements
+ in accordance to the "Effect on..." field. <a href=#refsMFREL>[MFREL]</a></p>
+
+
+
+ <h3 id=common-idioms-without-dedicated-elements><span class=secno>4.13 </span>Common idioms without dedicated elements</h3>
+
+ <h4 id=the-main-part-of-the-content><span class=secno>4.13.1 </span>The main part of the content</h4>
+
+ <p>The main content of a page &mdash; not including headers and
+ footers, navigation links, sidebars, advertisements, and so forth
+ &mdash; can be marked up in a variety of ways, depending on the
+ needs of the author.</p>
+
+ <p>The simplest solution is to not mark up the main content at all,
+ and just leave it as implicit. Another way to think of this is that
+ the <code><a href=#the-body-element>body</a></code> elements marks up the main content of the
+ page, and the bits that aren't main content are excluded through the
+ use of more appropriate elements like <code><a href=#the-aside-element>aside</a></code> and
+ <code><a href=#the-nav-element>nav</a></code>.</p>
+
+ <div class=example>
+
+ <p>Here is a short Web page marked up along this minimalistic
+ school of thought. The main content is highlighted. Notice how all
+ the <em>other</em> content in the <code><a href=#the-body-element>body</a></code> is marked up
+ with elements to indicate that it's not part of the main content,
+ in this case <code><a href=#the-header-element>header</a></code>, <code><a href=#the-nav-element>nav</a></code>, and
+ <code><a href=#the-footer-element>footer</a></code>.</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt; My Toys &lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;header&gt;
+ &lt;h1&gt;My toys&lt;/h1&gt;
+ &lt;/header&gt;
+ &lt;nav&gt;
+ &lt;p&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;a href="/contact"&gt;Contact&lt;/a&gt;&lt;/p&gt;
+ &lt;/nav&gt;
+<strong> &lt;p&gt;I really like my chained book and my telephone. I'm not such a
+ fan of my big ball.&lt;/p&gt;
+ &lt;p&gt;Another toy I like is my mirror.&lt;/p&gt;</strong>
+ &lt;footer&gt;
+ &lt;p&gt;&copy; copyright 2010 by the boy&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+ <p>If the main content is an independent unit of content that one
+ could imagine syndicating independently, then the
+ <code><a href=#the-article-element>article</a></code> element would be appropriate to mark up the
+ main content of the document.</p>
+
+ <div class=example>
+
+ <p>The document in the previous example is here recast as a blog
+ post:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt; The Boy Blog: My Toys &lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;header&gt;
+ &lt;h1&gt;The Boy Blog&lt;/h1&gt;
+ &lt;/header&gt;
+ &lt;nav&gt;
+ &lt;p&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;a href="/contact"&gt;Contact&lt;/a&gt;&lt;/p&gt;
+ &lt;/nav&gt;
+<strong> &lt;article&gt;
+ &lt;header&gt;
+ &lt;h1&gt;My toys&lt;/h1&gt;
+ &lt;p&gt;Published &lt;time pubdate datetime="2010-08-04"&gt;August 4th&lt;/time&gt;&lt;/p&gt;
+ &lt;/header&gt;
+ &lt;p&gt;I really like my chained book and my telephone. I'm not such a
+ fan of my big ball.&lt;/p&gt;
+ &lt;p&gt;Another toy I like is my mirror.&lt;/p&gt;
+ &lt;/article&gt;</strong>
+ &lt;footer&gt;
+ &lt;p&gt;&copy; copyright 2010 by the boy&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+ <p>If the main content is not an independent unit of content so much
+ as a section of a larger work, for instance a chapter, then the
+ <code><a href=#the-section-element>section</a></code> element would be appropriate to mark up the
+ main content of the document.</p>
+
+ <div class=example>
+
+ <p>Here is the same document, case as a chapter in an online
+ book:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt; Chapter 2: My Toys &mdash; The Book of the Boy &lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;header&gt;
+ &lt;h1&gt;Chapter 2: My Toys&lt;/h1&gt;
+ &lt;/header&gt;
+ &lt;nav&gt;
+ &lt;p&gt;&lt;a href="/"&gt;Front Page&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;a href="/toc"&gt;Table of Contents&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;a href="/c1"&gt;Chapter 1&lt;/a&gt; &mdash; &lt;a href="/c3"&gt;Chapter 3&lt;/a&gt;&lt;/p&gt;
+ &lt;/nav&gt;
+<strong> &lt;section&gt;
+ &lt;p&gt;I really like my chained book and my telephone. I'm not such a
+ fan of my big ball.&lt;/p&gt;
+ &lt;p&gt;Another toy I like is my mirror.&lt;/p&gt;
+ &lt;/section&gt;</strong>
+ &lt;footer&gt;
+ &lt;p&gt;&copy; copyright 2010 by the boy&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+ <p>If neither <code><a href=#the-article-element>article</a></code> nor <code><a href=#the-section-element>section</a></code> would be
+ appropriate, but the main content still needs an explicit element,
+ for example for styling purposes, then the <code><a href=#the-div-element>div</a></code> element
+ can be used.</p>
+
+ <div class=example>
+
+ <p>This is the same as the original example, but using
+ <code><a href=#the-div-element>div</a></code> for the main content instead of leaving it
+ implied:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt; My Toys &lt;/title&gt;
+ &lt;style&gt;
+ body &gt; div { background: navy; color: yellow; }
+ &lt;/style&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;header&gt;
+ &lt;h1&gt;My toys&lt;/h1&gt;
+ &lt;/header&gt;
+ &lt;nav&gt;
+ &lt;p&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;a href="/contact"&gt;Contact&lt;/a&gt;&lt;/p&gt;
+ &lt;/nav&gt;
+<strong> &lt;div&gt;
+ &lt;p&gt;I really like my chained book and my telephone. I'm not such a
+ fan of my big ball.&lt;/p&gt;
+ &lt;p&gt;Another toy I like is my mirror.&lt;/p&gt;
+ &lt;/div&gt;</strong>
+ &lt;footer&gt;
+ &lt;p&gt;&copy; copyright 2010 by the boy&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+
+ <h4 id=rel-up><span class=secno>4.13.2 </span>Bread crumb navigation</h4>
+
+ <p>This specification does not provide a machine-readable way of
+ describing bread-crumb navigation menus. Authors are encouraged to
+ just use a series of links in a paragraph. The <code><a href=#the-nav-element>nav</a></code>
+ element can be used to mark the section containing these
+ paragraphs as being navigation blocks.</p>
+
+ <div class=example>
+
+ <p>In the following example, the current page can be reached via
+ two paths.</p>
+
+ <pre>&lt;nav&gt;
+ &lt;p&gt;
+ &lt;a href="/"&gt;Main&lt;/a&gt; &gt;
+ &lt;a href="/products/"&gt;Products&lt;/a&gt; &gt;
+ &lt;a href="/products/dishwashers/"&gt;Dishwashers&lt;/a&gt; &gt;
+ &lt;a&gt;Second hand&lt;/a&gt;
+ &lt;/p&gt;
+ &lt;p&gt;
+ &lt;a href="/"&gt;Main&lt;/a&gt; &gt;
+ &lt;a href="/second-hand/"&gt;Second hand&lt;/a&gt; &gt;
+ &lt;a&gt;Dishwashers&lt;/a&gt;
+ &lt;/p&gt;
+&lt;/nav&gt;</pre>
+
+ </div>
+
+
+ <h4 id=tag-clouds><span class=secno>4.13.3 </span>Tag clouds</h4>
+
+ <p id=tag-cloud>This specification does not define any markup
+ specifically for marking up lists of keywords that apply to a group
+ of pages (also known as <i>tag clouds</i>). In general, authors are
+ encouraged to either mark up such lists using <code><a href=#the-ul-element>ul</a></code>
+ elements with explicit inline counts that are then hidden and turned
+ into a presentational effect using a style sheet, or to use SVG.</p>
+
+ <div class=example>
+
+ <p>Here, three tags are included in a short tag cloud:</p>
+
+ <pre>&lt;style&gt;
+@media screen, print, handheld, tv {
+ /* should be ignored by non-visual browsers */
+ .tag-cloud &gt; li &gt; span { display: none; }
+ .tag-cloud &gt; li { display: inline; }
+ .tag-cloud-1 { font-size: 0.7em; }
+ .tag-cloud-2 { font-size: 0.9em; }
+ .tag-cloud-3 { font-size: 1.1em; }
+ .tag-cloud-4 { font-size: 1.3em; }
+ .tag-cloud-5 { font-size: 1.5em; }
+}
+&lt;/style&gt;
+...
+&lt;ul class="tag-cloud"&gt;
+ &lt;li class="tag-cloud-4"&gt;&lt;a title="28 instances" href="/t/apple"&gt;apple&lt;/a&gt; &lt;span&gt;(popular)&lt;/span&gt;
+ &lt;li class="tag-cloud-2"&gt;&lt;a title="6 instances" href="/t/kiwi"&gt;kiwi&lt;/a&gt; &lt;span&gt;(rare)&lt;/span&gt;
+ &lt;li class="tag-cloud-5"&gt;&lt;a title="41 instances" href="/t/pear"&gt;pear&lt;/a&gt; &lt;span&gt;(very popular)&lt;/span&gt;
+&lt;/ul&gt;</pre>
+
+ <p>The actual frequency of each tag is given using the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute. A CSS style sheet is
+ provided to convert the markup into a cloud of differently-sized
+ words, but for user agents that do not support CSS or are not
+ visual, the markup contains annotations like "(popular)" or
+ "(rare)" to categorize the various tags by frequency, thus enabling
+ all users to benefit from the information.</p>
+
+ <p>The <code><a href=#the-ul-element>ul</a></code> element is used (rather than
+ <code><a href=#the-ol-element>ol</a></code>) because the order is not particularly important:
+ while the list is in fact ordered alphabetically, it would convey
+ the same information if ordered by, say, the length of the tag.</p>
+
+ <p>The <code title=rel-tag><a href=#link-type-tag>tag</a></code> <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>-keyword is <em>not</em> used
+ on these <code><a href=#the-a-element>a</a></code> elements because they do not represent tags
+ that apply to the page itself; they are just part of an index
+ listing the tags themselves.</p>
+
+ </div>
+
+
+ <h4 id=conversations><span class=secno>4.13.4 </span>Conversations</h4>
+
+ <!-- http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-September/022576.html -->
+
+ <p>This specification does not define a specific element for marking
+ up conversations, meeting minutes, chat transcripts, dialogues in
+ screenplays, instant message logs, and other situations where
+ different players take turns in discourse.</p>
+
+ <p>Instead, authors are encouraged to mark up conversations using
+ <code><a href=#the-p-element>p</a></code> elements and punctuation. Authors who need to mark
+ the speaker for styling purposes are encouraged to use
+ <code><a href=#the-span-element>span</a></code> or <code><a href=#the-b-element>b</a></code>. Paragraphs with their text
+ wrapped in the <code><a href=#the-i-element>i</a></code> element can be used for marking up
+ stage directions.</p>
+
+ <div class=example>
+
+ <p>This example demonstrates this using an extract from Abbot and
+ Costello's famous sketch, <cite>Who's on first</cite>:</p>
+
+<pre>&lt;p&gt; Costello: Look, you gotta first baseman?
+&lt;p&gt; Abbott: Certainly.
+&lt;p&gt; Costello: Who's playing first?
+&lt;p&gt; Abbott: That's right.
+&lt;p&gt; Costello becomes exasperated.
+&lt;p&gt; Costello: When you pay off the first baseman every month, who gets the money?
+&lt;p&gt; Abbott: Every dollar of it.</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following extract shows how an IM conversation log could be
+ marked up.</p>
+
+ <pre>&lt;p&gt; &lt;time&gt;14:22&lt;/time&gt; &lt;b&gt;egof&lt;/b&gt; I'm not that nerdy, I've only seen 30% of the star trek episodes
+&lt;p&gt; &lt;time&gt;14:23&lt;/time&gt; &lt;b&gt;kaj&lt;/b&gt; if you know what percentage of the star trek episodes you have seen, you are inarguably nerdy
+&lt;p&gt; &lt;time&gt;14:23&lt;/time&gt; &lt;b&gt;egof&lt;/b&gt; it's unarguably
+&lt;p&gt; &lt;time&gt;14:23&lt;/time&gt; &lt;i&gt;* kaj blinks&lt;/i&gt;
+&lt;p&gt; &lt;time&gt;14:24&lt;/time&gt; &lt;b&gt;kaj&lt;/b&gt; you are not helping your case</pre>
+ <!-- with thanks to http://bash.org/?854262 -->
+
+ </div>
+
+
+ <h4 id=footnotes><span class=secno>4.13.5 </span>Footnotes</h4>
+
+ <p>HTML does not have a dedicated mechanism for marking up
+ footnotes. Here are the recommended alternatives.</p>
+
+ <hr><p>For short inline annotations, the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute should be used.</p>
+
+ <div class=example>
+
+ <p>In this example, two parts of a dialogue are annotated with
+ footnote-like content using the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute.</p>
+
+ <pre>&lt;p&gt; &lt;b&gt;Customer&lt;/b&gt;: Hello! I wish to register a complaint. Hello. Miss?
+&lt;p&gt; &lt;b&gt;Shopkeeper&lt;/b&gt;: <strong>&lt;span title="Colloquial pronunciation of 'What do you'"</strong>
+&gt;Watcha&lt;/span&gt; mean, miss?
+&lt;p&gt; &lt;b&gt;Customer&lt;/b&gt;: Uh, I'm sorry, I have a cold. I wish to make a complaint.
+&lt;p&gt; &lt;b&gt;Shopkeeper&lt;/b&gt;: Sorry, &lt;span <strong>title="This is, of course, a lie."</strong>&gt;we're
+closing for lunch&lt;/span&gt;.</pre>
+
+ </div>
+
+ <hr><p>For longer annotations, the <code><a href=#the-a-element>a</a></code> element should be
+ used, pointing to an element later in the document. The convention
+ is that the contents of the link be a number in square brackets.</p>
+
+ <div class=example>
+
+ <p>In this example, a footnote in the dialogue links to a paragraph
+ below the dialogue. The paragraph then reciprocally links back to the
+ dialogue, allowing the user to return to the location of the
+ footnote.</p>
+
+ <pre>&lt;p&gt; Announcer: Number 16: The &lt;i&gt;hand&lt;/i&gt;.
+&lt;p&gt; Interviewer: Good evening. I have with me in the studio tonight
+Mr Norman St John Polevaulter, who for the past few years has been
+contradicting people. Mr Polevaulter, why &lt;em&gt;do&lt;/em&gt; you
+contradict people?
+&lt;p&gt; Norman: I don't. &lt;sup&gt;&lt;a href="#fn1" id="r1"&gt;[1]&lt;/a&gt;&lt;/sup&gt;
+&lt;p&gt; Interviewer: You told me you did!
+<em>...</em>
+&lt;section&gt;
+ &lt;p id="fn1"&gt;&lt;a href="#r1"&gt;[1]&lt;/a&gt; This is, naturally, a lie,
+ but paradoxically if it were true he could not say so without
+ contradicting the interviewer and thus making it false.&lt;/p&gt;
+&lt;/section&gt;</pre>
+
+ </div>
+
+ <hr><p>For side notes, longer annotations that apply to entire sections
+ of the text rather than just specific words or sentences, the
+ <code><a href=#the-aside-element>aside</a></code> element should be used.</p>
+
+ <div class=example>
+
+ <p>In this example, a sidebar is given after a dialogue, giving it
+ some context.</p>
+
+ <pre>&lt;p&gt; &lt;span class="speaker"&gt;Customer&lt;/span&gt;: I will not buy this record, it is scratched.
+&lt;p&gt; &lt;span class="speaker"&gt;Shopkeeper&lt;/span&gt;: I'm sorry?
+&lt;p&gt; &lt;span class="speaker"&gt;Customer&lt;/span&gt;: I will not buy this record, it is scratched.
+&lt;p&gt; &lt;span class="speaker"&gt;Shopkeeper&lt;/span&gt;: No no no, this's'a tobacconist's.
+&lt;aside&gt;
+ &lt;p&gt;In 1970, the British Empire lay in ruins, and foreign
+ nationalists frequented the streets &mdash; many of them Hungarians
+ (not the streets &mdash; the foreign nationals). Sadly, Alexander
+ Yalt has been publishing incompetently-written phrase books.
+&lt;/aside&gt;</pre>
+
+ </div>
+
+ <hr><p>For figures or tables, footnotes can be included in the relevant
+ <code><a href=#the-figcaption-element>figcaption</a></code> or <code><a href=#the-caption-element>caption</a></code> element, or in
+ surrounding prose.</p>
+
+ <div class=example>
+
+ <p>In this example, a <!-- round --> table has cells with footnotes
+ that are given in prose. A <code><a href=#the-figure-element>figure</a></code> element is used to
+ give a single legend to the combination of the table and its
+ footnotes.</p>
+
+ <pre>&lt;figure&gt;
+ &lt;figcaption&gt;Table 1. Alternative activities for knights.&lt;/figcaption&gt;
+ &lt;table&gt;
+ &lt;tr&gt;
+ &lt;th&gt; Activity
+ &lt;th&gt; Location
+ &lt;th&gt; Cost
+ &lt;tr&gt;
+ &lt;td&gt; Dance
+ &lt;td&gt; Wherever possible
+ &lt;td&gt; &pound;0&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;
+ &lt;tr&gt;
+ &lt;td&gt; Routines, chorus scenes&lt;sup&gt;&lt;a href="#fn2"&gt;2&lt;/a&gt;&lt;/sup&gt;
+ &lt;td&gt; Undisclosed
+ &lt;td&gt; Undisclosed
+ &lt;tr&gt;
+ &lt;td&gt; Dining&lt;sup&gt;&lt;a href="#fn3"&gt;3&lt;/a&gt;&lt;/sup&gt;
+ &lt;td&gt; Camelot
+ &lt;td&gt; Cost of ham, jam, and spam&lt;sup&gt;&lt;a href="#fn4"&gt;4&lt;/a&gt;&lt;/sup&gt;
+ &lt;/table&gt;
+ &lt;p id="fn1"&gt;1. Assumed.&lt;/p&gt;
+ &lt;p id="fn2"&gt;2. Footwork impeccable.&lt;/p&gt;
+ &lt;p id="fn3"&gt;3. Quality described as "well".&lt;/p&gt;
+ &lt;p id="fn4"&gt;4. A lot.&lt;/p&gt;
+&lt;/figure&gt;</pre>
+
+ </div>
+
+
+
+ <div class=impl>
+
+ <h3 id=matching-html-elements-using-selectors><span class=secno>4.14 </span>Matching HTML elements using selectors</h3>
+
+ <h4 id=selectors><span class=secno>4.14.1 </span>Case-sensitivity</h4>
+
+ <p>Attribute and element <em>names</em> of <a href=#html-elements>HTML
+ elements</a> in <a href=#html-documents>HTML documents</a> must be treated as
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a>.</p>
+
+ <p>Classes from the <code title=attr-class><a href=#classes>class</a></code> attribute
+ of <a href=#html-elements>HTML elements</a> in documents that are in <a href=#quirks-mode>quirks
+ mode</a> must be treated as <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a>.</p>
+
+ <p>Attribute selectors on an <a href=#html-elements title="HTML elements">HTML
+ element</a> in an <a href=#html-documents title="HTML documents">HTML
+ document</a> must treat the <em>values</em> of attributes with
+ the following names as <a href=#ascii-case-insensitive>ASCII case-insensitive</a>, with one
+ exception as noted below:</p>
+
+ <!-- based on Mozilla's list, which was itself based on HTML4 -->
+ <!-- WebKit's was identical at the time of writing except as noted below -->
+ <ul class=brief><li><code title="">accept</code>
+ <li><code title="">accept-charset</code>
+ <li><code title="">align</code>
+ <li><code title="">alink</code>
+ <li><code title="">axis</code>
+ <li><code title="">bgcolor</code>
+ <li><code title="">charset</code>
+ <li><code title="">checked</code>
+ <li><code title="">clear</code>
+ <li><code title="">codetype</code>
+ <li><code title="">color</code>
+ <li><code title="">compact</code>
+ <li><code title="">declare</code>
+ <li><code title="">defer</code>
+ <li><code title="">dir</code>
+ <li><code title="">direction</code> <!-- not in webkit -->
+ <li><code title="">disabled</code>
+ <li><code title="">enctype</code>
+ <li><code title="">face</code>
+ <li><code title="">frame</code>
+ <li><code title="">hreflang</code>
+ <li><code title="">http-equiv</code>
+ <li><code title="">lang</code>
+ <li><code title="">language</code>
+ <li><code title="">link</code>
+ <li><code title="">media</code>
+ <li><code title="">method</code>
+ <li><code title="">multiple</code>
+ <li><code title="">nohref</code>
+ <li><code title="">noresize</code>
+ <li><code title="">noshade</code>
+ <li><code title="">nowrap</code>
+ <li><code title="">readonly</code>
+ <li><code title="">rel</code>
+ <li><code title="">rev</code>
+ <li><code title="">rules</code>
+ <li><code title="">scope</code>
+ <li><code title="">scrolling</code>
+ <li><code title="">selected</code>
+ <li><code title="">shape</code>
+ <li><code title="">target</code>
+ <li><code title="">text</code>
+ <li><code title="">type</code> (except as specified below)
+ <li><code title="">valign</code>
+ <li><code title="">valuetype</code>
+ <li><code title="">vlink</code>
+ </ul><p>All other attribute values on <a href=#html-elements>HTML elements</a> must be
+ treated as <a href=#case-sensitive>case-sensitive</a>.</p>
+
+ <p>The exception to the list above is the <code title=attr-ol-type><a href=#attr-ol-type>type</a></code> attribute on <code><a href=#the-ol-element>ol</a></code>
+ elements, which must be treated as <a href=#case-sensitive>case-sensitive</a>.</p>
+
+
+ <h4 id=pseudo-classes><span class=secno>4.14.2 </span>Pseudo-classes</h4>
+
+ <p>There are a number of dynamic selectors that can be used with
+ HTML. This section defines when these selectors match HTML elements.
+ <a href=#refsSELECTORS>[SELECTORS]</a> <a href=#refsCSSUI>[CSSUI]</a></p>
+
+ <dl><dt><dfn id=selector-link title=selector-link><code>:link</code></dfn></dt>
+ <dt><dfn id=selector-visited title=selector-visited><code>:visited</code></dfn></dt>
+
+ <dd>
+
+ <p>All <code><a href=#the-a-element>a</a></code> elements that have an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute, all
+ <code><a href=#the-area-element>area</a></code> elements that have an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute, and all
+ <code><a href=#the-link-element>link</a></code> elements that have an <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute, must match one of
+ <code title=selector-link><a href=#selector-link>:link</a></code> and <code title=selector-visited><a href=#selector-visited>:visited</a></code>.</p>
+
+ <p>Other specifications might apply more specific rules regarding
+ how these elements are to match these pseudo-elements, to mitigate
+ some privacy concerns that apply with straightforward
+ implementations of this requirement.</p>
+
+ </dd>
+
+
+ <dt><dfn id=selector-active title=selector-active><code>:active</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-active><a href=#selector-active>:active</a></code> pseudo-class
+ is defined to match an element <q cite=http://dev.w3.org/csswg/selectors3/#the-user-action-pseudo-classes-hover-act>while
+ an element is <i>being activated</i> by the user</q>. For the
+ purposes of defining the <code title=selector-active><a href=#selector-active>:active</a></code> pseudo-class only, an HTML
+ user agent must consider an element as <i>being activated</i> if
+ it is:</p>
+
+ <ul><li>
+
+ <p>An element falling into one of the following categories
+ between the time the user begins to indicate an intent to
+ trigger the element's <a href=#activation-behavior>activation behavior</a> and
+ either the time the user stops indicating an intent to trigger
+ the element's <a href=#activation-behavior>activation behavior</a>, or the time the
+ element's <a href=#activation-behavior>activation behavior</a> has finished running,
+ which ever comes first:</p>
+
+ <ul><li><code><a href=#the-a-element>a</a></code> elements that have an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute</li>
+
+ <li><code><a href=#the-area-element>area</a></code> elements that have an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute</li>
+
+ <li><code><a href=#the-link-element>link</a></code> elements that have an <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute</li>
+
+ <li><code><a href=#the-button-element>button</a></code> elements that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#submit-button-state title=attr-input-type-submit>Submit Button</a>, <a href=#image-button-state title=attr-input-type-image>Image Button</a>, <a href=#reset-button-state title=attr-input-type-reset>Reset Button</a>, or <a href=#button-state title=attr-input-type-button>Button</a> state</li>
+
+ <li><code><a href=#the-command-element>command</a></code> elements that do not have a <code title=attr-command-disabled><a href=#attr-command-disabled>disabled</a></code> attribute</li>
+
+ <li>elements that are <a href=#specially-focusable>specially focusable</a></li>
+
+ </ul><p class=example>For example, if the user is using a keyboard
+ to push a <code><a href=#the-button-element>button</a></code> element by pressing the space bar,
+ the element would match this pseudo-class in between the time
+ that the element received the <code title=event-keydown>keydown</code> event and the time the
+ element received the <code title=event-keyup>keyup</code>
+ event.</p>
+
+ </li>
+
+ <li>
+
+ <p>An element that the user indicates using a pointing device
+ while that pointing device is in the "down" state (e.g. for a
+ mouse, between the time the mouse button is pressed and the time
+ it is depressed).</p>
+
+ </li>
+
+ <li>
+
+ <p>An element that has a descendant that is currently matching
+ the <code title=selector-active><a href=#selector-active>:active</a></code>
+ pseudo-class.</p>
+
+ </li>
+
+ </ul></dd>
+
+
+ <dt><dfn id=selector-enabled title=selector-enabled><code>:enabled</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-enabled><a href=#selector-enabled>:enabled</a></code> pseudo-class
+ must match any element falling into one of the following
+ categories:</p>
+
+ <ul><li><code><a href=#the-a-element>a</a></code> elements that have an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute</li>
+
+ <li><code><a href=#the-area-element>area</a></code> elements that have an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute</li>
+
+ <li><code><a href=#the-link-element>link</a></code> elements that have an <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute</li>
+
+ <li><code><a href=#the-button-element>button</a></code> elements that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute are not in the
+ <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state and that
+ are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-select-element>select</a></code> elements that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-textarea-element>textarea</a></code> elements that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-optgroup-element>optgroup</a></code> elements that do not have a <code title=attr-optgroup-disabled><a href=#attr-optgroup-disabled>disabled</a></code> attribute</li>
+
+ <li><code><a href=#the-option-element>option</a></code> elements that are not <a href=#concept-option-disabled title=concept-option-disabled>disabled</a></li>
+
+ <li><code><a href=#the-command-element>command</a></code> elements that do not have a <code title=attr-command-disabled><a href=#attr-command-disabled>disabled</a></code> attribute</li>
+
+ <li><code><a href=#the-li-element>li</a></code> elements that are children of
+ <code><a href=#the-menu-element>menu</a></code> elements, and that have a child element that
+ defines a <a href=#concept-command title=concept-command>command</a>, if the
+ first such element's <a href=#command-facet-disabledstate title=command-facet-disabledstate>Disabled State</a> facet
+ is false (not disabled)</li>
+
+ <li><code><a href=#the-fieldset-element>fieldset</a></code> elements that do not have a <code title=attr-fieldset-disabled><a href=#attr-fieldset-disabled>disabled</a></code> attribute</li>
+
+ </ul></dd>
+
+
+ <dt><dfn id=selector-disabled title=selector-disabled><code>:disabled</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-disabled><a href=#selector-disabled>:disabled</a></code>
+ pseudo-class must match any element falling into one of the
+ following categories:</p>
+
+ <ul><li><code><a href=#the-button-element>button</a></code> elements that are <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute are not in the
+ <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state and that
+ are <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-select-element>select</a></code> elements that are <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-textarea-element>textarea</a></code> elements that are <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-optgroup-element>optgroup</a></code> elements that have a <code title=attr-optgroup-disabled><a href=#attr-optgroup-disabled>disabled</a></code> attribute</li>
+
+ <li><code><a href=#the-option-element>option</a></code> elements that are <a href=#concept-option-disabled title=concept-option-disabled>disabled</a></li>
+
+ <li><code><a href=#the-command-element>command</a></code> elements that have a <code title=attr-command-disabled><a href=#attr-command-disabled>disabled</a></code> attribute</li>
+
+ <li><code><a href=#the-li-element>li</a></code> elements that are children of
+ <code><a href=#the-menu-element>menu</a></code> elements, and that have a child element that
+ defines a <a href=#concept-command title=concept-command>command</a>, if the
+ first such element's <a href=#command-facet-disabledstate title=command-facet-disabledstate>Disabled State</a> facet
+ is true (disabled)</li>
+
+ <li><code><a href=#the-fieldset-element>fieldset</a></code> elements that have a <code title=attr-fieldset-disabled><a href=#attr-fieldset-disabled>disabled</a></code> attribute</li>
+
+ </ul></dd>
+
+
+ <dt><dfn id=selector-checked title=selector-checked><code>:checked</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-checked><a href=#selector-checked>:checked</a></code> pseudo-class
+ must match any element falling into one of the following
+ categories:</p>
+
+ <ul><li><code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state and whose
+ <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> state is
+ true</li>
+
+ <li><code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> state and whose
+ <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> state is
+ true</li>
+
+ <li><code><a href=#the-option-element>option</a></code> elements whose <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is
+ true</li>
+
+ <li><code><a href=#the-command-element>command</a></code> elements whose <code title=attr-command-type><a href=#attr-command-type>type</a></code> attribute is in the <a href=#attr-command-type-state-checkbox title=attr-command-type-state-checkbox>Checkbox</a> state
+ and that have a <code title=attr-command-checked><a href=#attr-command-checked>checked</a></code>
+ attribute</li>
+
+ <li><code><a href=#the-command-element>command</a></code> elements whose <code title=attr-command-type><a href=#attr-command-type>type</a></code> attribute is in the <a href=#attr-command-type-state-radio title=attr-command-type-state-radio>Radio</a> state and that
+ have a <code title=attr-command-checked><a href=#attr-command-checked>checked</a></code>
+ attribute</li>
+
+ </ul></dd>
+
+
+ <dt><dfn id=selector-indeterminate title=selector-indeterminate><code>:indeterminate</code></dfn></dt>
+
+ <dd>
+
+ <!-- does this pseudo-class even exist? -->
+
+ <p>The <code title=selector-indeterminate><a href=#selector-indeterminate>:indeterminate</a></code>
+ pseudo-class must match any element falling into one of the
+ following categories:</p>
+
+ <ul><li><code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state and whose
+ <code title=dom-input-indeterminate><a href=#dom-input-indeterminate>indeterminate</a></code> IDL
+ attribute is set to true</li>
+
+ <li><code><a href=#the-progress-element>progress</a></code> elements with no <code title=attr-progress-value><a href=#attr-progress-value>value</a></code> content attribute</li>
+
+ </ul></dd>
+
+
+ <dt><dfn id=selector-default title=selector-default><code>:default</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-default><a href=#selector-default>:default</a></code> pseudo-class
+ must match any element falling into one of the following
+ categories:</p>
+
+ <ul><li><code><a href=#the-button-element>button</a></code> elements that are their form's
+ <a href=#default-button>default button</a></li>
+
+ <li><code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#submit-button-state title=attr-input-type-submit>Submit Button</a> or <a href=#image-button-state title=attr-input-type-image>Image Button</a> state, and that
+ are their form's <a href=#default-button>default button</a></li>
+
+ <li><code><a href=#the-input-element>input</a></code> elements to which the <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code> attribute applies and
+ that have a <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>
+ attribute</li>
+
+ <li><code><a href=#the-option-element>option</a></code> elements that have a <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code> attribute</li>
+<!--
+ <li><code>command</code> elements that have a <code
+ title="attr-command-default">default</code> attribute</li>
+-->
+ </ul></dd>
+
+
+ <dt><dfn id=selector-valid title=selector-valid><code>:valid</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-valid><a href=#selector-valid>:valid</a></code> pseudo-class
+ must match all elements that are <a href=#candidate-for-constraint-validation title="candidate for
+ constraint validation">candidates for constraint validation</a>
+ and that <a href=#concept-fv-valid title=concept-fv-valid>satisfy their
+ constraints</a>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=selector-invalid title=selector-invalid><code>:invalid</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-invalid><a href=#selector-invalid>:invalid</a></code> pseudo-class
+ must match all elements that are <a href=#candidate-for-constraint-validation title="candidate for
+ constraint validation">candidates for constraint validation</a>
+ but that do not <a href=#concept-fv-valid title=concept-fv-valid>satisfy their
+ constraints</a>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=selector-in-range title=selector-in-range><code>:in-range</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-in-range><a href=#selector-in-range>:in-range</a></code>
+ pseudo-class must match all elements that are <a href=#candidate-for-constraint-validation title="candidate for constraint validation">candidates for
+ constraint validation</a>, <a href=#have-range-limitations>have range limitations</a>,
+ and that are neither <a href=#suffering-from-an-underflow>suffering from an underflow</a> nor
+ <a href=#suffering-from-an-overflow>suffering from an overflow</a>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=selector-out-of-range title=selector-out-of-range><code>:out-of-range</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-out-of-range><a href=#selector-out-of-range>:out-of-range</a></code>
+ pseudo-class must match all elements that are <a href=#candidate-for-constraint-validation title="candidate for constraint validation">candidates for
+ constraint validation</a>, <a href=#have-range-limitations>have range limitations</a>,
+ and that are either <a href=#suffering-from-an-underflow>suffering from an underflow</a> or
+ <a href=#suffering-from-an-overflow>suffering from an overflow</a>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=selector-required title=selector-required><code>:required</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-required><a href=#selector-required>:required</a></code>
+ pseudo-class must match any element falling into one of the
+ following categories:</p>
+
+ <ul><li><code><a href=#the-input-element>input</a></code> elements that are <i title=concept-input-required><a href=#concept-input-required>required</a></i></li>
+
+ <li><code><a href=#the-select-element>select</a></code> elements that have a <code title=attr-select-required><a href=#attr-select-required>required</a></code>
+ attribute</li>
+
+ <li><code><a href=#the-textarea-element>textarea</a></code> elements that have a <code title=attr-textarea-required><a href=#attr-textarea-required>required</a></code>
+ attribute</li>
+
+ </ul></dd>
+
+
+ <dt><dfn id=selector-optional title=selector-optional><code>:optional</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-optional><a href=#selector-optional>:optional</a></code>
+ pseudo-class must match any element falling into one of the
+ following categories:</p>
+
+ <ul><li><code><a href=#the-input-element>input</a></code> elements to which the <code title=attr-input-required><a href=#attr-input-required>required</a></code> attribute applies
+ that are not <i title=concept-input-required><a href=#concept-input-required>required</a></i></li>
+
+ <li><code><a href=#the-select-element>select</a></code> elements that do not have a <code title=attr-select-required><a href=#attr-select-required>required</a></code> attribute</li>
+
+ <li><code><a href=#the-textarea-element>textarea</a></code> elements that do not have a <code title=attr-textarea-required><a href=#attr-textarea-required>required</a></code>
+ attribute</li>
+
+ </ul></dd>
+
+
+ <dt><dfn id=selector-read-only title=selector-read-only><code>:read-only</code></dfn></dt>
+ <dt><dfn id=selector-read-write title=selector-read-write><code>:read-write</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-read-write><a href=#selector-read-write>:read-write</a></code>
+ pseudo-class must match any element falling into one of the
+ following categories:</p>
+
+ <ul><li><code><a href=#the-input-element>input</a></code> elements to which the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute applies,
+ but that are not <i title=concept-input-immutable><a href=#concept-input-immutable>immutable</a></i>
+ (i.e. that do not have the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute specified
+ and that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>)</li>
+
+ <li><code><a href=#the-textarea-element>textarea</a></code> elements that do not have a <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code> attribute, and
+ that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li>elements that are <a href=#editing-host title="editing host">editing
+ hosts</a> or <a href=#editable>editable</a> and are neither
+ <code><a href=#the-input-element>input</a></code> elemenst nor <code><a href=#the-textarea-element>textarea</a></code>
+ elements</li>
+
+ </ul><p>The <code title=selector-read-only><a href=#selector-read-only>:read-only</a></code>
+ pseudo-class must match all other <a href=#html-elements>HTML elements</a>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=selector-ltr title=selector-ltr><code>:dir(ltr)</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-ltr><a href=#selector-ltr>:dir(ltr)</a></code> pseudo-class must
+ match all elements whose <a href=#the-directionality title="the
+ directionality">directionality</a> is '<a href=#concept-ltr title=concept-ltr>ltr</a>'.</p>
+
+ </dd>
+
+ <dt><dfn id=selector-rtl title=selector-rtl><code>:dir(rtl)</code></dfn></dt>
+
+ <dd>
+
+ <p>The <code title=selector-rtl><a href=#selector-rtl>:dir(rtl)</a></code> pseudo-class must
+ match all elements whose <a href=#the-directionality title="the
+ directionality">directionality</a> is '<a href=#concept-rtl title=concept-rtl>rtl</a>'.</p>
+
+ </dd>
+
+ </dl><p class=note>Another section of this specification defines the
+ <i><a href=#target-element>target element</a></i> used with the <code title=selector-target>:target</code> pseudo-class.</p>
+
+ <p class=note>This specification does not define when an element
+ matches the <code title=selector-hover>:hover</code>, <code title=selector-focus>:focus</code>, or <code title=selector-lang()>:lang()</code> dynamic pseudo-classes, as
+ those are all defined in sufficient detail in a language-agnostic
+ fashion in the Selectors specification. <a href=#refsSELECTORS>[SELECTORS]</a></p>
+
+ </div>
+
+<!--MD-->
+
+
+ <div data-component="HTML Microdata (editor: Ian Hickson)">
+
+ <h2 id=microdata><span class=secno>5 </span><dfn>Microdata</dfn></h2>
+
+<!-- USE CASES
+
+ Getting data out of poorly written Web pages
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019595.html
+
+ Allowing authors to keep track of where content originates
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019620.html
+
+ Helping people seaching for content filtered by license
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019668.html
+
+ Allowing authors to annotate their documents to explain things for readers
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019672.html
+
+ Annotating structured data that HTML has no semantics for
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019681.html
+
+ Exposing known data types in a reusable way
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019833.html
+
+ Providing enhanced search results
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019834.html
+
+ Dragging or copying data between sites
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019835.html
+
+ Writing authoring tools and validators for custom microdata vocabularies
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019839.html
+
+ Removing the need for separate feeds
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019884.html
+
+ Use cases for which I haven't been able to find solutions
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019886.html
+
+-->
+
+<!-- v2
+
+ * <itemref itemprop="foo" src="url#id"> to import the item with
+ id="id" from url into the current microdata block as the value of
+ property foo?
+
+ * splitting the 'content' part of a property into multiple sub-bits,
+ as in:
+
+ <span itemprop="tel" item-content-in-bits>
+ Telephone:
+ <span content-bit>+44</span> (0) <span content-bit>1223 123 123</span>
+ </span>
+
+ maybe vocabs that need this can use a sub vocabulary specifically
+ for this:
+
+ <span itemprop="tel" itemscope itemtype="http://bits.example/">
+ Telephone:
+ <span itemprop=bit>+44</span> (0) <span itemprop=bit>1223 123 123</span>
+ </span>
+
+-->
+
+
+ <h3 id=introduction-5><span class=secno>5.1 </span>Introduction</h3>
+
+ <h4 id=overview><span class=secno>5.1.1 </span>Overview</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Sometimes, it is desirable to annotate content with specific
+ machine-readable labels, e.g. to allow generic scripts to provide
+ services that are customised to the page, or to enable content from
+ a variety of cooperating authors to be processed by a single script
+ in a consistent manner.</p>
+
+ <p>For this purpose, authors can use the microdata features
+ described in this section. Microdata allows nested groups of
+ name-value pairs to be added to documents, in parallel with the
+ existing content.</p>
+
+
+
+ <h4 id=the-basic-syntax><span class=secno>5.1.2 </span>The basic syntax</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>At a high level, microdata consists of a group of name-value
+ pairs. The groups are called <a href=#concept-item title=concept-item>items</a>, and each name-value pair is a
+ property. Items and properties are represented by regular
+ elements.</p>
+
+ <p>To create an item, the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute is used.</p>
+
+ <p>To add a property to an item, the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is used on one of
+ the <a href=#concept-item title=concept-item>item's</a> descendants.</p>
+
+ <div class=example>
+
+ <p>Here there are two items, each of which has the property "name":</p>
+
+ <pre>&lt;div itemscope&gt;
+ &lt;p&gt;My name is &lt;span itemprop="name"&gt;Elizabeth&lt;/span&gt;.&lt;/p&gt;
+&lt;/div&gt;
+
+&lt;div itemscope&gt;
+ &lt;p&gt;My name is &lt;span itemprop="name"&gt;Daniel&lt;/span&gt;.&lt;/p&gt;
+&lt;/div&gt;</pre>
+
+ </div>
+
+ <p>Properties generally have values that are strings.</p>
+
+ <div class=example>
+
+ <p>Here the item has three properties:</p>
+
+ <pre>&lt;div itemscope&gt;
+ &lt;p&gt;My name is &lt;span itemprop="name"&gt;Neil&lt;/span&gt;.&lt;/p&gt;
+ &lt;p&gt;My band is called &lt;span itemprop="band"&gt;Four Parts Water&lt;/span&gt;.&lt;/p&gt;
+ &lt;p&gt;I am &lt;span itemprop="nationality"&gt;British&lt;/span&gt;.&lt;/p&gt;
+&lt;/div&gt;</pre>
+
+ </div>
+
+ <p>When a string value is a <a href=#url title=URL>URLs</a>, it is
+ expressed using the <code><a href=#the-a-element>a</a></code> element and its <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute, the
+ <code><a href=#the-img-element>img</a></code> element and its <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute, or other elements that
+ link to or embed external resources.</p>
+
+ <div class=example>
+
+ <p>In this example, the item has one property, "image", whose value
+ is a URL:</p>
+
+ <pre>&lt;div itemscope&gt;
+ &lt;img itemprop="image" src="google-logo.png" alt="Google"&gt;
+&lt;/div&gt;</pre>
+
+ </div>
+
+ <p>When a string value is a date, time, or both a date and a time,
+ it is expressed using the <code><a href=#the-time-element>time</a></code> element and its <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> attribute.</p>
+
+ <div class=example>
+
+ <p>In this example, the item has one property,
+ "birthday", whose value is a date:</p>
+
+ <pre>&lt;div itemscope&gt;
+ I was born on &lt;time itemprop="birthday" datetime="2009-05-10"&gt;May 10th 2009&lt;/time&gt;.
+&lt;/div&gt;</pre>
+
+ </div>
+
+ <p>Properties can also themselves be groups of name-value pairs, by
+ putting the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute
+ on the element that declares the property.</p>
+
+ <p>Items that are not part of others are called <a href=#top-level-microdata-items>top-level
+ microdata items</a>.</p>
+
+ <div class=example>
+
+ <p>In this example, the outer item represents a person, and the
+ inner one represents a band:</p>
+
+ <pre>&lt;div itemscope&gt;
+ &lt;p&gt;Name: &lt;span itemprop="name"&gt;Amanda&lt;/span&gt;&lt;/p&gt;
+ &lt;p&gt;Band: &lt;span itemprop="band" itemscope&gt; &lt;span itemprop="name"&gt;Jazz Band&lt;/span&gt; (&lt;span itemprop="size"&gt;12&lt;/span&gt; players)&lt;/span&gt;&lt;/p&gt;
+&lt;/div&gt;</pre>
+
+ <p>The outer item here has two properties, "name" and
+ "band". The "name" is "Amanda", and the
+ "band" is an item in its own right, with two
+ properties, "name" and "size". The
+ "name" of the band is "Jazz Band", and the
+ "size" is "12".</p>
+
+ <p>The outer item in this example is a top-level microdata
+ item.</p>
+
+ </div>
+
+ <p>Properties that are not descendants of the element with the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute can be associated
+ with the <a href=#concept-item title=concept-item>item</a> using the <code title=attr-itemref><a href=#attr-itemref>itemref</a></code> attribute. This attribute takes
+ a list of IDs of elements to crawl in addition to crawling the
+ children of the element with the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute.</p>
+
+ <div class=example>
+
+ <p>This example is the same as the previous one, but all the
+ properties are separated from their <a href=#concept-item title=concept-item>items</a>:</p>
+
+ <pre>&lt;div itemscope id="amanda" itemref="a b"&gt;&lt;/div&gt;
+&lt;p id="a"&gt;Name: &lt;span itemprop="name"&gt;Amanda&lt;/span&gt;&lt;/p&gt;
+&lt;div id="b" itemprop="band" itemscope itemref="c"&gt;&lt;/div&gt;
+&lt;div id="c"&gt;
+ &lt;p&gt;Band: &lt;span itemprop="name"&gt;Jazz Band&lt;/span&gt;&lt;/p&gt;
+ &lt;p&gt;Size: &lt;span itemprop="size"&gt;12&lt;/span&gt; players&lt;/p&gt;
+&lt;/div&gt;</pre>
+
+ <p>This gives the same result as the previous example. The first
+ item has two properties, "name", set to "Amanda", and "band", set
+ to another item. That second item has two further properties,
+ "name", set to "Jazz Band", and "size", set to "12".</p>
+
+ </div>
+
+ <p>An <a href=#concept-item title=concept-item>item</a> can have multiple
+ properties with the same name and different values.</p>
+
+ <div class=example>
+
+ <p>This example describes an ice cream, with two flavors:</p>
+
+ <pre>&lt;div itemscope&gt;
+ &lt;p&gt;Flavors in my favorite ice cream:&lt;/p&gt;
+ &lt;ul&gt;
+ &lt;li itemprop="flavor"&gt;Lemon sorbet&lt;/li&gt;
+ &lt;li itemprop="flavor"&gt;Apricot sorbet&lt;/li&gt;
+ &lt;/ul&gt;
+&lt;/div&gt;</pre>
+
+ <p>This thus results in an item with two properties, both
+ "flavor", having the values "Lemon sorbet" and "Apricot
+ sorbet".</p>
+
+ </div>
+
+ <p>An element introducing a property can also introduce multiple
+ properties at once, to avoid duplication when some of the properties
+ have the same value.</p>
+
+ <div class=example>
+
+ <p>Here we see an item with two properties,
+ "favorite-color" and "favorite-fruit", both
+ set to the value "orange":</p>
+
+ <pre>&lt;div itemscope&gt;
+ &lt;span itemprop="favorite-color favorite-fruit"&gt;orange&lt;/span&gt;
+&lt;/div&gt;</pre>
+
+ </div>
+
+ <p>It's important to note that there is no relationship between the
+ microdata and the content of the document where the microdata is
+ marked up.</p>
+
+ <div class=example>
+
+ <p>There is no semantic difference, for instance, between the
+ following two examples:</p>
+
+ <pre>&lt;figure&gt;
+ &lt;img src="castle.jpeg"&gt;
+ &lt;figcaption&gt;&lt;span itemscope&gt;&lt;span itemprop="name"&gt;The Castle&lt;/span&gt;&lt;/span&gt; (1986)&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ <pre>&lt;span itemscope&gt;&lt;meta itemprop="name" content="The Castle"&gt;&lt;/span&gt;
+&lt;figure&gt;
+ &lt;img src="castle.jpeg"&gt;
+ &lt;figcaption&gt;The Castle (1986)&lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ <p>Both have a figure with a caption, and both, completely
+ unrelated to the figure, have an item with a name-value pair with
+ the name "name" and the value "The Castle". The only
+ difference is that if the user drags the caption out of the
+ document, in the former case, the item will be included in the
+ drag-and-drop data. In neither case is the image in any way
+ associated with the item.</p>
+
+ </div>
+
+
+ <h4 id=typed-items><span class=secno>5.1.3 </span>Typed items</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The examples in the previous section show how information could
+ be marked up on a page that doesn't expect its microdata to be
+ re-used. Microdata is most useful, though, when it is used in
+ contexts where other authors and readers are able to cooperate to
+ make new uses of the markup.</p>
+
+ <p>For this purpose, it is necessary to give each <a href=#concept-item title=concept-item>item</a> a type, such as
+ "http://example.com/person", or "http://example.org/cat", or
+ "http://band.example.net/". Types are identified as <a href=#url title=URL>URLs</a>.</p>
+
+ <p>The type for an <a href=#concept-item title=concept-item>item</a> is given
+ as the value of an <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code>
+ attribute on the same element as the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute.</p>
+
+ <div class=example>
+
+ <p>Here, the item's type is "http://example.org/animals#cat":</p>
+
+<pre>&lt;section itemscope itemtype="http://example.org/animals#cat"&gt;
+ &lt;h1 itemprop="name"&gt;Hedral&lt;/h1&gt;
+ &lt;p itemprop="desc"&gt;Hedral is a male american domestic
+ shorthair, with a fluffy black fur with white paws and belly.&lt;/p&gt;
+ &lt;img itemprop="img" src="hedral.jpeg" alt="" title="Hedral, age 18 months"&gt;
+&lt;/section&gt;</pre>
+
+ <p>In this example the "http://example.org/animals#cat" item has three
+ properties, a "name" ("Hedral"), a "desc" ("Hedral is..."), and an
+ "img" ("hedral.jpeg").</p>
+
+ </div>
+
+ <p>An item can only have one type. The type gives the context for
+ the properties, thus defining a vocabulary: a property named "class"
+ given for an item with the type "http://census.example/person" might
+ refer to the economic class of an individual, while a property named
+ "class" given for an item with the type "http://example.com/school/teacher"
+ might refer to the classroom a teacher has been assigned.</p>
+
+
+ <h4 id=global-identifiers-for-items><span class=secno>5.1.4 </span>Global identifiers for items</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Sometimes, an <a href=#concept-item title=concept-item>item</a> gives
+ information about a topic that has a global identifier. For example,
+ books can be identified by their ISBN number.</p>
+
+ <p>Vocabularies (as identified by the <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute) can be designed
+ such that <a href=#concept-item title=concept-item>items</a> get associated
+ with their global identifier in an unambiguous way by expressing the
+ global identifiers as <a href=#url title=URL>URLs</a> given in an
+ <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute.</p>
+
+ <p>The exact meaning of the <a href=#url title=URL>URLs</a> given in
+ <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attributes depends on the
+ vocabulary used.</p>
+
+ <div class=example>
+
+ <p>Here, an item is talking about a particular book:</p>
+
+<pre>&lt;dl itemscope
+ itemtype="http://vocab.example.net/book"
+ <strong>itemid="urn:isbn:0-330-34032-8"</strong>&gt;
+ &lt;dt&gt;Title
+ &lt;dd itemprop="title"&gt;The Reality Dysfunction
+ &lt;dt&gt;Author
+ &lt;dd itemprop="author"&gt;Peter F. Hamilton
+ &lt;dt&gt;Publication date
+ &lt;dd&gt;&lt;time itemprop="pubdate" datetime="1996-01-26"&gt;26 January 1996&lt;/time&gt;
+&lt;/dl&gt;</pre>
+
+ <p>The "<code title="">http://vocab.example.net/book</code>"
+ vocabulary in this example would define that the <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute takes a <code title="">urn:</code> <a href=#url>URL</a> pointing to the ISBN of the
+ book.</p>
+
+ </div>
+
+ <!-- (commented out since itemtype="" defines the meaning of the
+ identifier for now)
+ <p>Although it is common practice, authors are encouraged not to use
+ the same URL to identify multiple topics; in particular, an HTTP URL
+ usually identifies a specific resource (such as an image or
+ document), and authors are encouraged to not use them to identify
+ people, non-Web resources like companies, movies, and products, or
+ other abstract concepts. Using an HTTP URL as a global identifier
+ for something other than the resource actually designated by the URL
+ leads to a situation where it is ambiguous whether the identifier,
+ and thus the set of properties specified in the microdata,
+ references the page or something else.</p>
+ -->
+
+
+
+ <h4 id=selecting-names-when-defining-vocabularies><span class=secno>5.1.5 </span>Selecting names when defining vocabularies</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Using microdata means using a vocabulary. For some purposes, an
+ ad-hoc vocabulary is adequate. For others, a vocabulary will need to
+ be designed. Where possible, authors are encouraged to re-use
+ existing vocabularies, as this makes content re-use easier.</p>
+
+ <p>When designing new vocabularies, identifiers can be created
+ either using <a href=#url title=URL>URLs</a>, or, for properties, as
+ plain words (with no dots or colons). For URLs, conflicts with other
+ vocabularies can be avoided by only using identifiers that
+ correspond to pages that the author has control over.</p>
+
+ <div class=example>
+
+ <p>For instance, if Jon and Adam both write content at <code title="">example.com</code>, at <code title="">http://example.com/~jon/...</code> and <code title="">http://example.com/~adam/...</code> respectively, then
+ they could select identifiers of the form
+ "http://example.com/~jon/name" and "http://example.com/~adam/name"
+ respectively.</p>
+
+ </div>
+
+ <p>Properties whose names are just plain words can only be used
+ within the context of the types for which they are intended;
+ properties named using URLs can be reused in items of any type. If
+ an item has no type, and is not part of another item, then if its
+ properties have names that are just plain words, they are not
+ intended to be globally unique, and are instead only intended for
+ limited use. Generally speaking, authors are encouraged to use
+ either properties with globally unique names (URLs) or ensure that
+ their items are typed.</p>
+
+ <div class=example>
+
+ <p>Here, an item is an "http://example.org/animals#cat", and most of the
+ properties have names that are words defined in the context of that
+ type. There are also a few additional properties whose names come
+ from other vocabularies.</p>
+
+<pre>&lt;section itemscope itemtype="http://example.org/animals#cat"&gt;
+ &lt;h1 itemprop="name http://example.com/fn"&gt;Hedral&lt;/h1&gt;
+ &lt;p itemprop="desc"&gt;Hedral is a male american domestic
+ shorthair, with a fluffy &lt;span
+ itemprop="http://example.com/color"&gt;black&lt;/span&gt; fur with &lt;span
+ itemprop="http://example.com/color"&gt;white&lt;/span&gt; paws and belly.&lt;/p&gt;
+ &lt;img itemprop="img" src="hedral.jpeg" alt="" title="Hedral, age 18 months"&gt;
+&lt;/section&gt;</pre>
+
+ <p>This example has one item with the type "http://example.org/animals#cat"
+ and the following properties:</p>
+
+ <table><thead><tr><td>Property
+ <td>Value
+ <tbody><tr><td>name
+ <td>Hedral
+ <tr><td>http://example.com/fn
+ <td>Hedral
+ <tr><td>desc
+ <td>Hedral is a male american domestic shorthair, with a fluffy black fur with white paws and belly.
+ <tr><td>http://example.com/color
+ <td>black
+ <tr><td>http://example.com/color
+ <td>white
+ <tr><td>img
+ <td>.../hedral.jpeg
+ </table></div>
+
+
+
+ <h4 id=using-the-microdata-dom-api><span class=secno>5.1.6 </span>Using the microdata DOM API</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The microdata becomes even more useful when scripts can use it to
+ expose information to the user, for example offering it in a form
+ that can be used by other applications.</p>
+
+ <p>The <code title=dom-document-getItems><a href=#dom-document-getitems>document.getItems(<var title="">typeNames</var>)</a></code> method provides access to the
+ <a href=#top-level-microdata-items>top-level microdata items</a>. It returns a
+ <code><a href=#nodelist>NodeList</a></code> containing the items with the specified types,
+ or all types if no argument is specified.</p>
+
+ <p>Each <a href=#concept-item title=concept-item>item</a> is represented in the
+ DOM by the element on which the relevant <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute is found. These
+ elements have their <code title=dom-itemScope><a href=#dom-itemscope>element.itemScope</a></code> IDL attribute set to
+ true.</p>
+
+ <p>The type of <a href=#concept-item title=concept-item>items</a> can be
+ obtained using the <code title=dom-itemType><a href=#dom-itemtype>element.itemType</a></code> IDL attribute on the
+ element with the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+ attribute.</p>
+
+ <div class=example>
+
+ <p>This sample shows how the <code title=dom-document-getItems><a href=#dom-document-getitems>getItems()</a></code> method can be used
+ to obtain a list of all the top-level microdata items of one type
+ given in the document:</p>
+
+ <pre>var cats = document.getItems("http://example.com/feline");</pre>
+
+ </div>
+
+ <p>Once an element representing an <a href=#concept-item title=concept-item>item</a> has been obtained, its properties
+ can be extracted using the <code title=dom-properties><a href=#dom-properties>properties</a></code> IDL attribute. This
+ attribute returns an <code><a href=#htmlpropertiescollection>HTMLPropertiesCollection</a></code>, which can
+ be enumerated to go through each element that adds one or more
+ properties to the item. It can also be indexed by name, which will
+ return an object with a list of the elements that add properties
+ with that name.</p>
+
+ <p>Each element that adds a property also has a <code title=dom-itemValue><a href=#dom-itemvalue>itemValue</a></code> IDL attribute that returns
+ its value.</p>
+
+ <div class=example>
+
+ <p>This sample gets the first item of type "http://example.net/user" and
+ then pops up an alert using the "name" property from
+ that item.</p>
+
+ <pre>var user = document.getItems('http://example.net/user')[0];
+alert('Hello ' + user.properties['name'][0].content + '!');</pre>
+
+ </div>
+
+ <p>The <code><a href=#htmlpropertiescollection>HTMLPropertiesCollection</a></code> object, when indexed by
+ name in this way, actually returns a <code><a href=#propertynodelist>PropertyNodeList</a></code>
+ object with all the matching properties. The
+ <code><a href=#propertynodelist>PropertyNodeList</a></code> object can be used to obtain all the
+ values at once using <em>its</em> <code title=dom-PropertyNodeList-getValues><a href=#dom-propertynodelist-getvalues>getValues</a></code> method,
+ which returns an array of all the values.</p>
+
+ <div class=example>
+
+ <p>In an earlier example, a "http://example.org/animals#cat" item had two
+ "http://example.com/color" values. This script looks up the first such
+ item and then lists all its values.</p>
+
+ <pre>var cat = document.getItems('http://example.org/animals#cat')[0];
+var colors = cat.properties['http://example.com/color'].getValues();
+var result;
+if (colors.length == 0) {
+ result = 'Color unknown.';
+} else if (colors.length == 1) {
+ result = 'Color: ' + colors[0];
+} else {
+ result = 'Colors:';
+ for (var i = 0; i &lt; colors.length; i += 1)
+ result += ' ' + colors[i];
+}</pre>
+
+ </div>
+
+ <p>It's also possible to get a list of all the <a href=#property-names>property
+ names</a> using the object's <code title=dom-HTMLPropertiesCollection-names><a href=#dom-htmlpropertiescollection-names>names</a></code> IDL
+ attribute.</p>
+
+ <div class=example>
+
+ <p>This example creates a big list with a nested list for each item
+ on the page, each with of all the property names used in that
+ item.</p>
+
+ <pre>var outer = document.createElement('ul');
+var items = document.getItems();
+for (var item = 0; item &lt; items.length; item += 1) {
+ var itemLi = document.createElement('li');
+ var inner = document.createElement('ul');
+ for (var name = 0; name &lt; items[item].properties.names.length; name += 1) {
+ var propLi = document.createElement('li');
+ propLi.appendChild(document.createTextNode(items[item].properties.names[name]));
+ inner.appendChild(propLi);
+ }
+ itemLi.appendChild(inner);
+ outer.appendChild(itemLi);
+}
+document.body.appendChild(outer);</pre>
+
+ <p>If faced with the following from an earlier example:</p>
+
+ <pre>&lt;section itemscope itemtype="http://example.org/animals#cat"&gt;
+ &lt;h1 itemprop="name http://example.com/fn"&gt;Hedral&lt;/h1&gt;
+ &lt;p itemprop="desc"&gt;Hedral is a male american domestic
+ shorthair, with a fluffy &lt;span
+ itemprop="http://example.com/color"&gt;black&lt;/span&gt; fur with &lt;span
+ itemprop="http://example.com/color"&gt;white&lt;/span&gt; paws and belly.&lt;/p&gt;
+ &lt;img itemprop="img" src="hedral.jpeg" alt="" title="Hedral, age 18 months"&gt;
+&lt;/section&gt;</pre>
+
+ <p>...it would result in the following output:</p>
+
+ <ul><li>
+ <ul><li>name</li>
+ <li>http://example.com/fn</li>
+ <li>desc</li>
+ <li>http://example.com/color</li>
+ <li>img</li>
+ </ul></li>
+ </ul><p>(The duplicate occurrence of "http://example.com/color" is not included
+ in the list.)</p>
+
+ </div>
+
+
+ <h3 id=encoding-microdata><span class=secno>5.2 </span>Encoding microdata</h3>
+
+
+
+ <h4 id=the-microdata-model><span class=secno>5.2.1 </span>The microdata model</h4>
+
+ <p>The microdata model consists of groups of name-value pairs known
+ as <a href=#concept-item title=concept-item>items</a>.</p>
+
+ <p>Each group is known as an <a href=#concept-item title=concept-item>item</a>.
+ Each <a href=#concept-item title=concept-item>item</a> can have an <a href=#item-type>item
+ type</a>, a <a href=#global-identifier>global identifier</a> (if the <a href=#item-type>item
+ type</a> <a href=#support-global-identifiers-for-items title="support global identifiers for
+ items">supports global identifiers for its items</a>), and a list
+ of name-value pairs. Each name in the name-value pair is known as a
+ <a href=#the-properties-of-an-item title="the properties of an item">property</a>, and each
+ <a href=#the-properties-of-an-item title="the properties of an item">property</a> has one or
+ more <a href=#concept-property-value title=concept-property-value>values</a>. Each <a href=#concept-property-value title=concept-property-value>value</a> is either a string or
+ itself a group of name-value pairs (an <a href=#concept-item title=concept-item>item</a>). The names are unordered relative
+ to each other, but if a particular name has multiple values, they do
+ have a relative order.</p>
+
+ <p>An <a href=#concept-item title=concept-item>item</a> is said to be a
+ <dfn id=typed-item>typed item</dfn> when either it has an <a href=#item-type>item type</a>,
+ or it is the <a href=#concept-property-value title=concept-property-value>value</a> of a <a href=#the-properties-of-an-item title="the properties of an
+ item">property</a> of a <a href=#typed-item>typed item</a>. The
+ <dfn id=relevant-type>relevant type</dfn> for a <a href=#typed-item>typed item</a> is the <a href=#concept-item title=concept-item>item</a>'s <a href=#item-type>item type</a>, if it has
+ one, or else is the <a href=#relevant-type>relevant type</a> of the <a href=#concept-item title=concept-item>item</a> for which it is a <a href=#the-properties-of-an-item title="the
+ properties of an item">property</a>'s <a href=#concept-property-value title=concept-property-value>value</a>.</p>
+
+
+
+ <h4 id=items><span class=secno>5.2.2 </span>Items</h4>
+
+ <p>Every <a href=#html-elements title="HTML elements">HTML element</a> may have an
+ <dfn id=attr-itemscope title=attr-itemscope><code>itemscope</code></dfn> attribute
+ specified. The <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+ attribute is a <a href=#boolean-attribute>boolean attribute</a>.</p>
+
+ <p>An element with the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+ attribute specified creates a new <dfn id=concept-item title=concept-item>item</dfn>, a group of name-value pairs.</p>
+
+ <hr><p>Elements with an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+ attribute may have an <dfn id=attr-itemtype title=attr-itemtype><code>itemtype</code></dfn> attribute
+ specified, to give the <a href=#item-type>item type</a> of the <a href=#concept-item title=concept-item>item</a>.</p>
+
+ <p>The <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-url>valid URL</a> that
+ is an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>The <dfn id=item-type>item type</dfn> of an <a href=#concept-item title=concept-item>item</a> is the value of its element's <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute, if it has one and
+ its value is not the empty string. If the <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute is missing or its
+ value is the empty string, the <a href=#concept-item title=concept-item>item</a> is said to have no <a href=#item-type>item
+ type</a>.</p>
+
+ <p>The <a href=#item-type>item type</a> must be a type defined in an <a href=#other-applicable-specifications title="other applicable specifications">applicable
+ specification</a>.</p>
+
+ <div class=impl>
+
+ <p>Except if otherwise specified by that specification, the
+ <a href=#url>URL</a> given as the <a href=#item-type>item type</a> should not be
+ automatically dereferenced.</p>
+
+ <p class=note>A specification could define that its <a href=#item-type>item
+ type</a> can be derefenced to provide the user with help
+ information, for example. In fact, vocabulary authors are
+ encouraged to provide useful information at the given
+ <a href=#url>URL</a>.</p>
+
+ <p><a href=#item-type title="item type">Item types</a> are opaque
+ identifiers, and user agents must not dereference unknown <a href=#item-type title="item type">item types</a>, or otherwise deconstruct them,
+ in order to determine how to process <a href=#concept-item title=concept-item>items</a> that use them.</p>
+
+ </div>
+
+ <p>The <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute must
+ not be specified on elements that do not have an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute specified.</p>
+
+ <hr><p>Elements with an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+ attribute and an <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code>
+ attribute that references a vocabulary that is defined to
+ <dfn id=support-global-identifiers-for-items>support global identifiers for items</dfn> may also have an
+ <dfn id=attr-itemid title=attr-itemid><code>itemid</code></dfn> attribute
+ specified, to give a global identifier for the <a href=#concept-item title=concept-item>item</a>, so that it can be related to other
+ <a href=#concept-item title=concept-item>items</a> on pages elsewhere on the
+ Web.</p>
+
+ <p>The <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-url-potentially-surrounded-by-spaces>valid URL potentially
+ surrounded by spaces</a>.</p>
+
+ <p>The <dfn id=global-identifier>global identifier</dfn> of an <a href=#concept-item title=concept-item>item</a> is the value of its element's <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute, if it has one, <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element on
+ which the attribute is specified. If the <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute is missing or if
+ resolving it fails, it is said to have no <a href=#global-identifier>global
+ identifier</a>.</p>
+
+ <p>The <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute must not be
+ specified on elements that do not have both an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute and an <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute specified, and must
+ not be specified on elements with an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute whose <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute specifies a
+ vocabulary that does not <a href=#support-global-identifiers-for-items>support global identifiers for
+ items</a>, as defined by that vocabulary's specification.</p>
+
+ <p>The exact meaning of a <a href=#global-identifier>global identifier</a> is
+ determined by the vocabulary's specification. It is up to such
+ specifications to define whether multiple items with the same global
+ identifier (whether on the same page or on different pages) are
+ allowed to exist, and what the processing rules for that vocabulary
+ are with respect to handling the case of multiple items with the
+ same ID.</p>
+
+ <hr><p>Elements with an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+ attribute may have an <dfn id=attr-itemref title=attr-itemref><code>itemref</code></dfn> attribute specified,
+ to give a list of additional elements to crawl to find the
+ name-value pairs of the <a href=#concept-item title=concept-item>item</a>.</p>
+
+ <p>The <code title=attr-itemref><a href=#attr-itemref>itemref</a></code> attribute, if
+ specified, must have a value that is an <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of
+ unique space-separated tokens</a> that are
+ <a href=#case-sensitive>case-sensitive</a>, consisting of <a href=#concept-id title=concept-ID>IDs</a> of elements in the same <a href=#home-subtree>home
+ subtree</a>.</p>
+
+ <p>The <code title=attr-itemref><a href=#attr-itemref>itemref</a></code> attribute must not
+ be specified on elements that do not have an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute specified.</p>
+
+ <p class=note>The <code title=attr-itemref><a href=#attr-itemref>itemref</a></code>
+ attribute is not part of the microdata data model. It is merely a
+ syntactic construct to aid authors in adding annotations to pages
+ where the data to be annotated does not follow a convenient tree
+ structure. For example, it allows authors to mark up data in a table
+ so that each column defines a separate <a href=#concept-item title=concept-item>item</a>, while keeping the properties in
+ the cells.</p>
+
+
+ <h4 id=names:-the-itemprop-attribute><span class=secno>5.2.3 </span>Names: the <dfn title=attr-itemprop><code>itemprop</code></dfn> attribute</h4>
+
+ <p>Every <a href=#html-elements title="HTML elements">HTML element</a> may have an
+ <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute specified, if
+ doing so <a href=#the-properties-of-an-item title="the properties of an item">adds one or more
+ properties</a> to one or more <a href=#concept-item title=concept-item>items</a> (as defined below).</p>
+
+ <p>The <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute, if
+ specified, must have a value that is an <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of
+ unique space-separated tokens</a> that are
+ <a href=#case-sensitive>case-sensitive</a>, representing the names of the
+ name-value pairs that it adds. The attribute's value must have at
+ least one token.</p>
+
+ <p>Each token must be either:</p>
+
+ <ul><li>A <a href=#valid-url>valid URL</a> that is an <a href=#absolute-url>absolute URL</a>,
+ or</li>
+
+ <li>If the item is a <a href=#typed-item>typed item</a>: a <dfn id=defined-property-name>defined
+ property name</dfn> allowed in this situation according to the
+ specification that defines the <a href=#relevant-type>relevant type</a> for the
+ item, or</li>
+
+ <li>If the item is not a <a href=#typed-item>typed item</a>: a string that
+ contains no U+002E FULL STOP characters (.) and no U+003A COLON
+ characters (:).</li>
+
+ </ul><p>Specifications that introduce <a href=#defined-property-name title="defined property
+ name">defined property names</a> that are not <a href=#absolute-url title="absolute URL">absolute URLs</a> must ensure all such
+ property names contain no U+002E FULL STOP characters (.), no U+003A
+ COLON characters (:), and no <a href=#space-character title="space character">space
+ characters</a>.</p>
+
+ <p>When an element with an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute <a href=#the-properties-of-an-item title="the
+ properties of an item">adds a property</a> to multiple <a href=#concept-item title=concept-item>items</a>, the requirement above regarding
+ the tokens applies for each <a href=#concept-item title=concept-item>item</a>
+ individually.</p>
+
+ <!--
+
+ e.g.:
+
+ <div itemscope itemtype="http://example.com/a"> <ref refid="x"> </div>
+ <div itemscope itemtype="http://example.com/b"> <ref refid="x"> </div>
+ <meta id="x" itemprop="z" content="">
+
+ "z" had better be valid for both http://example.com/a and http://example.com/b
+
+ -->
+
+ <p>The <dfn id=property-names>property names</dfn> of an element are the tokens that
+ the element's <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute
+ is found to contain when its value is <a href=#split-a-string-on-spaces title="split a string on
+ spaces">split on spaces</a>, with the order preserved but with
+ duplicates removed (leaving only the first occurrence of each
+ name).</p>
+
+ <p>Within an <a href=#concept-item title=concept-item>item</a>, the properties
+ are unordered with respect to each other, except for properties with
+ the same name, which are ordered in the order they are given by the
+ algorithm that defines <a href=#the-properties-of-an-item>the properties of an item</a>.</p>
+
+ <div class=example>
+
+ <p>In the following example, the "a" property has the values "1"
+ and "2", <em>in that order</em>, but whether the "a" property comes
+ before the "b" property or not is not important:</p>
+
+ <pre>&lt;div itemscope&gt;
+ &lt;p itemprop="a"&gt;1&lt;/p&gt;
+ &lt;p itemprop="a"&gt;2&lt;/p&gt;
+ &lt;p itemprop="b"&gt;test&lt;/p&gt;
+&lt;/div&gt;</pre>
+
+ <p>Thus, the following is equivalent:</p>
+
+ <pre>&lt;div itemscope&gt;
+ &lt;p itemprop="b"&gt;test&lt;/p&gt;
+ &lt;p itemprop="a"&gt;1&lt;/p&gt;
+ &lt;p itemprop="a"&gt;2&lt;/p&gt;
+&lt;/div&gt;</pre>
+
+ <p>As is the following:</p>
+
+ <pre>&lt;div itemscope&gt;
+ &lt;p itemprop="a"&gt;1&lt;/p&gt;
+ &lt;p itemprop="b"&gt;test&lt;/p&gt;
+ &lt;p itemprop="a"&gt;2&lt;/p&gt;
+&lt;/div&gt;</pre>
+
+ <p>And the following:</p>
+
+ <pre>&lt;div id="x"&gt;
+ &lt;p itemprop="a"&gt;1&lt;/p&gt;
+&lt;/div&gt;
+&lt;div itemscope itemref="x"&gt;
+ &lt;p itemprop="b"&gt;test&lt;/p&gt;
+ &lt;p itemprop="a"&gt;2&lt;/p&gt;
+&lt;/div&gt;
+</pre>
+
+ </div>
+
+
+
+ <h4 id=values><span class=secno>5.2.4 </span>Values</h4>
+
+ <p>The <dfn id=concept-property-value title=concept-property-value>property value</dfn> of a
+ name-value pair added by an element with an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute depends on the
+ element, as follows:</p>
+
+ <dl><dt>If the element also has an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute</dt>
+
+ <dd><p>The value is the <a href=#concept-item title=concept-item>item</a>
+ created by the element.</dd>
+
+
+ <dt>If the element is a <code><a href=#the-meta-element>meta</a></code> element</dt>
+
+ <dd><p>The value is the value of the element's <code title=attr-content>content</code> attribute, if any, or the empty
+ string if there is no such attribute.</dd>
+
+
+ <dt>If the element is an <code><a href=#the-audio-element>audio</a></code>, <code><a href=#the-embed-element>embed</a></code>,
+ <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, <code><a href=#the-source-element>source</a></code>,
+ <code><a href=#the-track-element>track</a></code>, or <code><a href=#the-video-element>video</a></code> element</dt>
+
+ <dd><p>The value is the <a href=#absolute-url>absolute URL</a> that results from
+ <a href=#resolve-a-url title="resolve a url">resolving</a> the value of the
+ element's <code title="">src</code> attribute relative to the
+ element at the time the attribute is set, or the empty string if
+ there is no such attribute or if <a href=#resolve-a-url title="resolve a
+ url">resolving</a> it results in an error.</dd>
+
+
+ <dt>If the element is an <code><a href=#the-a-element>a</a></code>, <code><a href=#the-area-element>area</a></code>, or
+ <code><a href=#the-link-element>link</a></code> element</dt>
+
+ <dd><p>The value is the <a href=#absolute-url>absolute URL</a> that results from
+ <a href=#resolve-a-url title="resolve a url">resolving</a> the value of the
+ element's <code title="">href</code> attribute relative to the
+ element at the time the attribute is set, or the empty string if
+ there is no such attribute or if <a href=#resolve-a-url title="resolve a
+ url">resolving</a> it results in an error.</dd>
+
+
+ <dt>If the element is an <code><a href=#the-object-element>object</a></code> element</dt>
+
+ <dd><p>The value is the <a href=#absolute-url>absolute URL</a> that results from
+ <a href=#resolve-a-url title="resolve a url">resolving</a> the value of the
+ element's <code title="">data</code> attribute relative to the
+ element at the time the attribute is set, or the empty string if
+ there is no such attribute or if <a href=#resolve-a-url title="resolve a
+ url">resolving</a> it results in an error.</dd>
+
+
+ <dt>If the element is a <code><a href=#the-time-element>time</a></code> element with a <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> attribute</dt>
+
+ <dd><p>The value is the value of the element's <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> attribute.</dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd><p>The value is the element's
+ <code><a href=#textcontent>textContent</a></code>.</dd>
+
+ </dl><p>The <dfn id=url-property-elements>URL property elements</dfn> are the <code><a href=#the-a-element>a</a></code>,
+ <code><a href=#the-area-element>area</a></code>, <code><a href=#the-audio-element>audio</a></code>, <code><a href=#the-embed-element>embed</a></code>,
+ <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, <code><a href=#the-link-element>link</a></code>,
+ <code><a href=#the-object-element>object</a></code>, <code><a href=#the-source-element>source</a></code>, <code><a href=#the-track-element>track</a></code>, and
+ <code><a href=#the-video-element>video</a></code> elements.</p>
+
+ <p>If a property's <a href=#concept-property-value title=concept-property-value>value</a>, as defined by the
+ property's definition, is an <a href=#absolute-url>absolute URL</a>, the property
+ must be specified using a <a href=#url-property-elements title="URL property elements">URL
+ property element</a>.</p>
+
+ <p>If a property's <a href=#concept-property-value title=concept-property-value>value</a>
+ represents a <a href=#concept-date title=concept-date>date</a>, <a href=#concept-time title=concept-time>time</a>, or <a href=#concept-datetime title=concept-datetime>global date and time</a>, as defined by
+ the property's definition, the property must be specified using the
+ <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> attribute of a
+ <code><a href=#the-time-element>time</a></code> element.</p>
+
+ <p class=note>These requirements do not apply just because a
+ property value happens to match the syntax for a URL or date/time
+ construct. They only apply if the property is explicitly defined as
+ taking such a value.</p>
+
+ <p class=example>For example, a book about the first moon landing
+ could be called "1969-07-20". A "title" property from a vocabulary
+ that defines a title as being a string would not expect the title to
+ be given in a <code><a href=#the-time-element>time</a></code> element, even though it looks like a
+ date. On the other hand, if there was a (rather narrowly scoped!)
+ vocaburaly for "books whose titles imply dates" which had a "title"
+ property defined to take a date, then the property <em>would</em>
+ except the title to be given in a <code><a href=#the-time-element>time</a></code> element, because
+ of the requirement above.</p>
+
+
+
+ <div class=impl> <!-- this is unfortunate, as it is hiding authoring conformance criteria (so we leave it in for the w3c copy) -->
+
+
+ <h4 id=associating-names-with-items><span class=secno>5.2.5 </span>Associating names with items</h4>
+
+ <p>To find <dfn id=the-properties-of-an-item>the properties of an item</dfn> defined by the
+ element <var title="">root</var>, the user agent must run the
+ following steps. These steps are also used to flag <a href=#microdata-error title="microdata error">microdata errors</a>.</p>
+
+ <ol><li><p>Let <var title="">results</var>, <var title="">memory</var>, and <var title="">pending</var> be empty lists of elements.</li>
+
+ <li><p>Add the element <var title="">root</var> to <var title="">memory</var>.</li>
+
+ <li><p>Add the child elements of <var title="">root</var>, if any,
+ to <var title="">pending</var>.</li>
+
+ <li><p>If <var title="">root</var> has an <code title=attr-itemref><a href=#attr-itemref>itemref</a></code> attribute, <a href=#split-a-string-on-spaces title="split a
+ string on spaces">split the value of that <code title=attr-itemref>itemref</code> attribute on spaces</a>. For
+ each resulting token <var title="">ID</var>, if there is an element
+ in the <a href=#home-subtree>home subtree</a> of <var title="">root</var> with
+ the <a href=#concept-id title=concept-ID>ID</a> <var title="">ID</var>, then
+ add the first such element to <var title="">pending</var>.</li>
+
+ <li><p><i>Loop</i>: If <var title="">pending</var> is empty, jump
+ to the step labeled <i>end of loop</i>.</li>
+
+ <li><p>Remove an element from <var title="">pending</var> and let
+ <var title="">current</var> be that element.</li>
+
+ <li><p>If <var title="">current</var> is already in <var title="">memory</var>, there is a <a href=#microdata-error>microdata error</a>;
+ return to the step labeled <i>loop</i>.</li>
+
+ <li><p>Add <var title="">current</var> to <var title="">memory</var>.</li>
+
+ <li><p>If <var title="">current</var> does not
+ have an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute,
+ then: add all the child elements of <var title="">current</var> to
+ <var title="">pending</var>.</li>
+
+ <li><p>If <var title="">current</var> has an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute specified, add it
+ to <var title="">results</var>.</li>
+
+ <li><p>Return to the step labeled <i>loop</i>.</li>
+
+ <li><p><i>End of loop</i>: Sort <var title="">results</var> in
+ <a href=#tree-order>tree order</a>.</li>
+
+ <li><p>Return <var title="">results</var>.</li>
+
+ </ol><p>A document must not contain any <a href=#concept-item title=concept-item>items</a> for which the algorithm to find
+ <a href=#the-properties-of-an-item>the properties of an item</a> finds any <dfn id=microdata-error title="microdata error">microdata errors</dfn>.</p>
+
+ <p>An <a href=#concept-item title=concept-item>item</a> is a <dfn id=top-level-microdata-items title="top-level microdata items">top-level microdata item</dfn> if
+ its element does not have an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute.</p>
+
+<!--(this is currently redundant with "requirement itemprop" below)
+ <p>An <span title="concept-item">item</span> is a <dfn title="used
+ microdata items">used microdata item</dfn> if it is a <span
+ title="top-level microdata items">top-level microdata item</span>,
+ or if it has an <code title="attr-itemprop">itemprop</code>
+ attribute and would be <span title="the properties of an item">found
+ to be the property</span> of an <span
+ title="concept-item">item</span> that is itself a <span title="used
+ microdata items">used microdata item</span>.</p>
+
+ <p>All <span title="concept-item">items</span> in a document must be
+ <span>used microdata items</span>.</p>
+-->
+
+ <p>All <code title=attr-itemref><a href=#attr-itemref>itemref</a></code> attributes in a
+ <code><a href=#document>Document</a></code> must be such that there are no cycles in the
+ graph formed from representing each <a href=#concept-item title=concept-item>item</a> in the <code><a href=#document>Document</a></code> as a
+ node in the graph and each <a href=#the-properties-of-an-item title="the properties of an
+ item">property</a> of an item whose <a href=#concept-property-value title=concept-property-value>value</a> is another item as an
+ edge in the graph connecting those two items.</p>
+
+ <!-- "requirement itemprop" (see above) -->
+ <p>A document must not contain any elements that have an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute that would not be
+ found to be a property of any of the <a href=#concept-item title=concept-item>items</a> in that document were their <a href=#the-properties-of-an-item title="the properties of an item">properties</a> all to be
+ determined.</p>
+
+ <div class=example>
+
+ <p>In this example, a single license statement is applied to two
+ works, using <code title=attr-itemref><a href=#attr-itemref>itemref</a></code> from the
+ items representing the works:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Photo gallery&lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;h1&gt;My photos&lt;/h1&gt;
+ &lt;figure itemscope itemtype="http://n.whatwg.org/work" itemref="licenses"&gt;
+ &lt;img itemprop="work" src="images/house.jpeg" alt="A white house, boarded up, sits in a forest."&gt;
+ &lt;figcaption itemprop="title"&gt;The house I found.&lt;/figcaption&gt;
+ &lt;/figure&gt;
+ &lt;figure itemscope itemtype="http://n.whatwg.org/work" itemref="licenses"&gt;
+ &lt;img itemprop="work" src="images/mailbox.jpeg" alt="Outside the house is a mailbox. It has a leaflet inside."&gt;
+ &lt;figcaption itemprop="title"&gt;The mailbox.&lt;/figcaption&gt;
+ &lt;/figure&gt;
+ &lt;footer&gt;
+ &lt;p id="licenses"&gt;All images licensed under the &lt;a itemprop="license"
+ href="http://www.opensource.org/licenses/mit-license.php"&gt;MIT
+ license&lt;/a&gt;.&lt;/p&gt;
+ &lt;/footer&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>The above results in two items with the type "<code title="">http://n.whatwg.org/work</code>", one with:</p>
+
+ <dl class=brief><dt>work
+ <dd><code title="">images/house.jpeg</code>
+ <dt>title
+ <dd>The house I found.
+ <dt>license
+ <dd><code title="">http://www.opensource.org/licenses/mit-license.php</code>
+ </dl><p>...and one with:</p>
+
+ <dl class=brief><dt>work
+ <dd><code title="">images/mailbox.jpeg</code>
+ <dt>title
+ <dd>The mailbox.
+ <dt>license
+ <dd><code title="">http://www.opensource.org/licenses/mit-license.php</code>
+ </dl></div>
+
+
+ </div> <!-- see comment above -->
+
+
+
+
+ <h3 id=microdata-dom-api><span class=secno>5.3 </span>Microdata DOM API</h3>
+
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-getItems><a href=#dom-document-getitems>getItems</a></code>( [ <var title="">types</var> ] )</dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#nodelist>NodeList</a></code> of the elements in the <code><a href=#document>Document</a></code> that create <a href=#concept-item title=concept-item>items</a>, that are not part of other <a href=#concept-item title=concept-item>items</a>, and that are of one of the types given in the argument, if any are listed.</p>
+
+ <p>The <var title="">types</var> argument is interpreted as a space-separated list of types.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-properties><a href=#dom-properties>properties</a></code></dt>
+
+ <dd>
+
+ <p>If the element has an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute, returns an
+ <code><a href=#htmlpropertiescollection>HTMLPropertiesCollection</a></code> object with all the element's
+ properties. Otherwise, an empty
+ <code><a href=#htmlpropertiescollection>HTMLPropertiesCollection</a></code> object.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-itemValue><a href=#dom-itemvalue>itemValue</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the element's <a href=#concept-property-value title=concept-property-value>value</a>.</p>
+
+ <p>Can be set, to change the element's <a href=#concept-property-value title=concept-property-value>value</a>. Setting the <a href=#concept-property-value title=concept-property-value>value</a> when the element has
+ no <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute or when
+ the element's value is an <a href=#concept-item title=concept-item>item</a>
+ throws an <code><a href=#invalidaccesserror>InvalidAccessError</a></code> exception.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-getitems title=dom-document-getItems><code>document.getItems(<var title="">typeNames</var>)</code></dfn> method takes an optional
+ string that contains an <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique
+ space-separated tokens</a> that are <a href=#case-sensitive>case-sensitive</a>,
+ representing types. When called, the method must return a
+ <a href=#live>live</a> <code><a href=#nodelist>NodeList</a></code> object containing all the
+ elements in the document, in <a href=#tree-order>tree order</a>, that are each
+ <a href=#top-level-microdata-items>top-level microdata items</a> with a <a href=#item-type title="item
+ type">type</a> equal to one of the types specified in that
+ argument, having obtained the types by <a href=#split-a-string-on-spaces title="split a string
+ on spaces">splitting the string on spaces</a>. If there are no
+ tokens specified in the argument, or if the argument is missing,
+ then the method must return a <code><a href=#nodelist>NodeList</a></code> containing all
+ the <a href=#top-level-microdata-items>top-level microdata items</a> in the document. When the
+ method is invoked on a <code><a href=#document>Document</a></code> object again with the
+ same argument, the user agent may return the same object as the
+ object returned by the earlier call. In other cases, a new
+ <code><a href=#nodelist>NodeList</a></code> object must be returned.</p>
+
+ <p>The <dfn id=dom-itemscope title=dom-itemScope><code>itemScope</code></dfn> IDL
+ attribute on <a href=#html-elements>HTML elements</a> must <a href=#reflect>reflect</a>
+ the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> content attribute.
+ The <dfn id=dom-itemtype title=dom-itemType><code>itemType</code></dfn> IDL
+ attribute on <a href=#html-elements>HTML elements</a> must <a href=#reflect>reflect</a>
+ the <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> content attribute,
+ as if it was a regular string attribute, not a <a href=#url>URL</a>
+ string attribute. The <dfn id=dom-itemid title=dom-itemId><code>itemId</code></dfn> IDL attribute on
+ <a href=#html-elements>HTML elements</a> must <a href=#reflect>reflect</a> the <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> content attribute. The <dfn id=dom-itemprop title=dom-itemProp><code>itemProp</code></dfn> IDL attribute on
+ <a href=#html-elements>HTML elements</a> must <a href=#reflect>reflect</a> the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> content attribute. The <dfn id=dom-itemref title=dom-itemRef><code>itemRef</code></dfn> IDL attribute on
+ <a href=#html-elements>HTML elements</a> must <a href=#reflect>reflect</a> the <code title=attr-itemref><a href=#attr-itemref>itemref</a></code> content attribute.</p>
+
+ <p>The <dfn id=dom-properties title=dom-properties><code>properties</code></dfn> IDL
+ attribute on <a href=#html-elements>HTML elements</a> must return an
+ <code><a href=#htmlpropertiescollection>HTMLPropertiesCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only elements that
+ have <a href=#property-names>property names</a> and are <a href=#the-properties-of-an-item title="the properties
+ of an item">the properties of the item</a> created by the element
+ on which the attribute was invoked, while that element is an <a href=#concept-item title=concept-item>item</a>, and matches nothing the rest of
+ the time.</p>
+
+ <p>The <dfn id=dom-itemvalue title=dom-itemValue><code>itemValue</code></dfn> IDL
+ attribute's behavior depends on the element, as follows:</p>
+
+ <dl><dt>If the element has no <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute</dt>
+
+ <dd><p>The attribute must return null on getting and must throw an
+ <code><a href=#invalidaccesserror>InvalidAccessError</a></code> exception on setting.</p>
+
+
+ <dt>If the element has an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute</dt>
+
+ <dd><p>The attribute must return the element itself on getting and
+ must throw an <code><a href=#invalidaccesserror>InvalidAccessError</a></code> exception on
+ setting.</p>
+
+
+ <dt>If the element is a <code><a href=#the-meta-element>meta</a></code> element</dt>
+
+ <dd><p>The attribute must act as it would if it was <a href=#reflect title=reflect>reflecting</a> the element's <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> content
+ attribute.</dd>
+
+
+ <dt>If the element is an <code><a href=#the-audio-element>audio</a></code>, <code><a href=#the-embed-element>embed</a></code>,
+ <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, <code><a href=#the-source-element>source</a></code>,
+ <code><a href=#the-track-element>track</a></code>, or <code><a href=#the-video-element>video</a></code> element</dt>
+
+ <dd><p>The attribute must act as it would if it was <a href=#reflect title=reflect>reflecting</a> the element's <code title="">src</code> content attribute.</dd>
+
+
+ <dt>If the element is an <code><a href=#the-a-element>a</a></code>, <code><a href=#the-area-element>area</a></code>, or
+ <code><a href=#the-link-element>link</a></code> element</dt>
+
+ <dd><p>The attribute must act as it would if it was <a href=#reflect title=reflect>reflecting</a> the element's <code title="">href</code> content attribute.</dd>
+
+
+ <dt>If the element is an <code><a href=#the-object-element>object</a></code> element</dt>
+
+ <dd><p>The attribute must act as it would if it was <a href=#reflect title=reflect>reflecting</a> the element's <code title="">data</code> content attribute.</dd>
+
+
+ <dt>If the element is a <code><a href=#the-time-element>time</a></code> element with a <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> attribute</dt>
+
+ <dd><p>The attribute must act as it would if it was <a href=#reflect title=reflect>reflecting</a> the element's <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code> content
+ attribute.</dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd><p>The attribute must act the same as the element's
+ <code><a href=#textcontent>textContent</a></code> attribute.</dd>
+
+ </dl><p>When the <code title=dom-itemValue><a href=#dom-itemvalue>itemValue</a></code> IDL
+ attribute is <a href=#reflect title=reflect>reflecting</a> a content
+ attribute or acting like the element's <code><a href=#textcontent>textContent</a></code>
+ attribute, the user agent must, on setting, convert the new value to
+ the IDL <code title="">DOMString</code> value before using it
+ according to the mappings described above.</p>
+
+ </div>
+
+ <div class=exmaple>
+
+ <p>In this example, a script checks to see if a particular element
+ <var title="">element</var> is declaring a particular property, and
+ if it is, it increments a counter:</p>
+
+ <pre>if (element.itemProp.contains('color'))
+ count += 1;</pre>
+
+ </div>
+
+ <div class=exmaple>
+
+ <p>This script iterates over each of the values of an element's
+ <code title=attr-itemref><a href=#attr-itemref>itemref</a></code> attribute, calling a
+ function for each referenced element:</p>
+
+ <pre>for (var index = 0; index &lt; element.itemRef.length; index += 1)
+ process(document.getElementById(element.itemRef[index]));</pre>
+
+ </div>
+
+
+
+
+ <h3 id=mdvocabs><span class=secno>5.4 </span>Microdata vocabularies</h3>
+
+
+
+ <h4 id=vcard><span class=secno>5.4.1 </span>vCard</h4>
+
+
+
+ <p>An item with the <a href=#item-type>item type</a> <dfn id=md-vcard title=md-vcard><code>http://microformats.org/profile/hcard</code></dfn>
+ represents a person's or organization's contact information.</p>
+
+ <p>This vocabulary <a href=#support-global-identifiers-for-items title="support global identifiers for
+ items">supports global identifiers for items</a>. The
+ <a href=#global-identifier>global identifier</a> gives a value that represents a
+ globally unique identifier corresponding to the individual or
+ resource.</p> <!-- UID -->
+
+ <p>The following are the type's <a href=#defined-property-name title="defined property
+ name">defined property names</a>. They are based on the
+ vocabulary defined in the vCard specification and its extensions,
+ where more information on how to interpret the values can be
+ found. <a href=#refsRFC2426>[RFC2426]</a> <a href=#refsRFC4770>[RFC4770]</a></p>
+
+ <dl><dt><dfn id=md-vcard-fn title=md-vcard-fn><code>fn</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the formatted text corresponding to the name of the
+ person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Exactly one property with the name <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> must be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-n title=md-vcard-n><code>n</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the structured name of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#concept-item title=concept-item>item</a> with zero or more of
+ each of the <code title=md-vcard-n-family-name><a href=#md-vcard-n-family-name>family-name</a></code>, <code title=md-vcard-n-given-name><a href=#md-vcard-n-given-name>given-name</a></code>, <code title=md-vcard-n-additional-name><a href=#md-vcard-n-additional-name>additional-name</a></code>, <code title=md-vcard-n-honorific-prefix><a href=#md-vcard-n-honorific-prefix>honorific-prefix</a></code>, and
+ <code title=md-vcard-n-honorific-suffix><a href=#md-vcard-n-honorific-suffix>honorific-suffix</a></code>
+ properties.</p>
+
+ <p>Exactly one property with the name <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> must be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-n-family-name title=md-vcard-n-family-name><code>family-name</code></dfn> (inside <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the family name of the person, or the full name of the
+ organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-n-family-name><a href=#md-vcard-n-family-name>family-name</a></code> may be present
+ within the <a href=#concept-item title=concept-item>item</a> that forms the
+ <a href=#concept-property-value title=concept-property-value>value</a> of the <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-n-given-name title=md-vcard-n-given-name><code>given-name</code></dfn> (inside <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the given-name of the person.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-n-given-name><a href=#md-vcard-n-given-name>given-name</a></code> may be present
+ within the <a href=#concept-item title=concept-item>item</a> that forms the
+ <a href=#concept-property-value title=concept-property-value>value</a> of the <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-n-additional-name title=md-vcard-n-additional-name><code>additional-name</code></dfn> (inside <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the any additional names of the person.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-n-additional-name><a href=#md-vcard-n-additional-name>additional-name</a></code> may be
+ present within the <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of the
+ <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-n-honorific-prefix title=md-vcard-n-honorific-prefix><code>honorific-prefix</code></dfn> (inside <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the honorific prefix of the person.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-n-honorific-prefix><a href=#md-vcard-n-honorific-prefix>honorific-prefix</a></code> may be
+ present within the <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of the
+ <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-n-honorific-suffix title=md-vcard-n-honorific-suffix><code>honorific-suffix</code></dfn> (inside <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the honorific suffix of the person.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-n-honorific-suffix><a href=#md-vcard-n-honorific-suffix>honorific-suffix</a></code> may be
+ present within the <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of the
+ <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-nickname title=md-vcard-nickname><code>nickname</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the nickname of the person or organization.</p>
+
+ <!-- copied from vCard -->
+ <p class=note>The nickname is the descriptive name given instead
+ of or in addition to the one belonging to a person, place, or
+ thing. It can also be used to specify a familiar form of a proper
+ name specified by the <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> or <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> properties.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-nickname><a href=#md-vcard-nickname>nickname</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-photo title=md-vcard-photo><code>photo</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a photograph of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-photo><a href=#md-vcard-photo>photo</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-bday title=md-vcard-bday><code>bday</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the birth date of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be a
+ <a href=#valid-date-string>valid date string</a>.</p>
+
+ <p>A single property with the name <code title=md-vcard-bday><a href=#md-vcard-bday>bday</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-adr title=md-vcard-adr><code>adr</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the delivery address of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#concept-item title=concept-item>item</a> with zero or more <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code>, <code title=md-vcard-adr-post-office-box><a href=#md-vcard-adr-post-office-box>post-office-box</a></code>, <code title=md-vcard-adr-extended-address><a href=#md-vcard-adr-extended-address>extended-address</a></code>, and
+ <code title=md-vcard-adr-street-address><a href=#md-vcard-adr-street-address>street-address</a></code>
+ properties, and optionally a <code title=md-vcard-adr-locality><a href=#md-vcard-adr-locality>locality</a></code> property, optionally
+ a <code title=md-vcard-adr-region><a href=#md-vcard-adr-region>region</a></code> property,
+ optionally a <code title=md-vcard-adr-postal-code><a href=#md-vcard-adr-postal-code>postal-code</a></code> property, and
+ optionally a <code title=md-vcard-adr-country-name><a href=#md-vcard-adr-country-name>country-name</a></code>
+ property.</p>
+
+ <p>If no <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code> properties
+ are present within an <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
+ <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, then the <a href=#address-type-strings>address type
+ strings</a> <code title=mv-vcard-type-adr-intl>intl</code>,
+ <code title=mv-vcard-type-adr-postal>postal</code>, <code title=mv-vcard-type-adr-parcel>parcel</code>, and <code title=mv-vcard-type-adr-work>work</code> are implied.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-adr-type title=md-vcard-adr-type><code>type</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the type of delivery address.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that, when compared in a <a href=#case-sensitive>case-sensitive</a> manner,
+ is equal to one of the <a href=#address-type-strings>address type strings</a>.</p>
+
+ <p>Within each <a href=#concept-item title=concept-item>item</a> with the
+ type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, there must be no more
+ than one <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property <a href=#concept-item title=concept-item>item</a> with a <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code> property whose value is
+ <code title=md-vcard-type-adr-pref><a href=#md-vcard-type-adr-pref>pref</a></code>.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code> may be present within the
+ <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, but within each such <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property <a href=#concept-item title=concept-item>item</a> there must only be one <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code> property per distinct
+ value.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-adr-post-office-box title=md-vcard-adr-post-office-box><code>post-office-box</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the post office box component of the delivery address of
+ the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-adr-post-office-box><a href=#md-vcard-adr-post-office-box>post-office-box</a></code> may be
+ present within the <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
+ <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-adr-extended-address title=md-vcard-adr-extended-address><code>extended-address</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives an additional component of the delivery address of the
+ person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-adr-extended-address><a href=#md-vcard-adr-extended-address>extended-address</a></code> may
+ be present within the <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
+ <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-adr-street-address title=md-vcard-adr-street-address><code>street-address</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the street address component of the delivery address of
+ the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-adr-street-address><a href=#md-vcard-adr-street-address>street-address</a></code> may be
+ present within the <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
+ <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-adr-locality title=md-vcard-adr-locality><code>locality</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the locality component (e.g. city) of the delivery
+ address of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>A single property with the name <code title=md-vcard-adr-locality><a href=#md-vcard-adr-locality>locality</a></code> may be present
+ within the <a href=#concept-item title=concept-item>item</a> that forms the
+ <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-adr-region title=md-vcard-adr-region><code>region</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the region component (e.g. state or province) of the
+ delivery address of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>A single property with the name <code title=md-vcard-adr-region><a href=#md-vcard-adr-region>region</a></code> may be present within
+ the <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-adr-postal-code title=md-vcard-adr-postal-code><code>postal-code</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the postal code component of the delivery address of the
+ person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>A single property with the name <code title=md-vcard-adr-postal-code><a href=#md-vcard-adr-postal-code>postal-code</a></code> may be present
+ within the <a href=#concept-item title=concept-item>item</a> that forms the
+ <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-adr-country-name title=md-vcard-adr-country-name><code>country-name</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the country name component of the delivery address of the
+ person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>A single property with the name <code title=md-vcard-adr-country-name><a href=#md-vcard-adr-country-name>country-name</a></code> may be
+ present within the <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
+ <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-label title=md-vcard-label><code>label</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the formatted text corresponding to the delivery address
+ of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ either text or an <a href=#concept-item title=concept-item>item</a> with zero
+ or more <code title=md-vcard-label-type><a href=#md-vcard-label-type>type</a></code> properties
+ and exactly one <code title=md-vcard-label-value><a href=#md-vcard-label-value>value</a></code>
+ property.</p>
+
+ <p>If no <code title=md-vcard-label-type><a href=#md-vcard-label-type>type</a></code> properties
+ are present within an <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of a
+ <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, or if the <a href=#concept-property-value title=concept-property-value>value</a> of such a <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property is text, then the
+ <a href=#address-type-strings>address type strings</a> <code title=mv-vcard-type-adr-intl>intl</code>, <code title=mv-vcard-type-adr-postal>postal</code>, <code title=mv-vcard-type-adr-parcel>parcel</code>, and <code title=mv-vcard-type-adr-work>work</code> are implied.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-label-type title=md-vcard-label-type><code>type</code></dfn> (inside <code title=md-vcard-label><a href=#md-vcard-label>label</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the type of delivery address.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that, when compared in a <a href=#case-sensitive>case-sensitive</a> manner,
+ is equal to one of the <a href=#address-type-strings>address type strings</a>.</p>
+
+ <p>Within each <a href=#concept-item title=concept-item>item</a> with the
+ type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, there must be no more
+ than one <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property <a href=#concept-item title=concept-item>item</a> with a <code title=md-vcard-label-type><a href=#md-vcard-label-type>type</a></code> property whose value is
+ <code title=md-vcard-type-adr-pref><a href=#md-vcard-type-adr-pref>pref</a></code>.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-label-type><a href=#md-vcard-label-type>type</a></code> may be present within the
+ <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of a <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, but within each such <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property <a href=#concept-item title=concept-item>item</a> there must only be one <code title=md-vcard-label-type><a href=#md-vcard-label-type>type</a></code> property per distinct
+ value.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-label-value title=md-vcard-label-value><code>value</code></dfn> (inside <code title=md-vcard-label><a href=#md-vcard-label>label</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the actual formatted text corresponding to the delivery
+ address of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Exactly one property with the name <code title=md-vcard-label-value><a href=#md-vcard-label-value>value</a></code> must be present within
+ the <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of a <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-tel title=md-vcard-tel><code>tel</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the telephone number of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ either text that can be interpreted as a telephone number as
+ defined in the CCITT specifications E.163 and X.121, or an <a href=#concept-item title=concept-item>item</a> with zero or more <code title=md-vcard-tel-type><a href=#md-vcard-tel-type>type</a></code> properties and exactly one
+ <code title=md-vcard-tel-value><a href=#md-vcard-tel-value>value</a></code> property. <a href=#refsE163>[E163]</a> <a href=#refsX121>[X121]</a></p>
+
+ <p>If no <code title=md-vcard-tel-type><a href=#md-vcard-tel-type>type</a></code> properties
+ are present within an <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of a
+ <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, or if the <a href=#concept-property-value title=concept-property-value>value</a> of such a <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property is text, then the <a href=#telephone-type-strings title="telephone type strings">telephone type string</a> <code title=mv-vcard-type-tel-voice>voice</code> is implied.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-tel-type title=md-vcard-tel-type><code>type</code></dfn> (inside <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the type of telephone number.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that, when compared in a <a href=#case-sensitive>case-sensitive</a> manner,
+ is equal to one of the <a href=#telephone-type-strings>telephone type strings</a>.</p>
+
+ <p>Within each <a href=#concept-item title=concept-item>item</a> with the
+ type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, there must be no more
+ than one <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property <a href=#concept-item title=concept-item>item</a> with a <code title=md-vcard-tel-type><a href=#md-vcard-tel-type>type</a></code> property whose value is
+ <code title=md-vcard-type-tel-pref><a href=#md-vcard-type-tel-pref>pref</a></code>.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-tel-type><a href=#md-vcard-tel-type>type</a></code> may be present within the
+ <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of a <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, but within each such <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property <a href=#concept-item title=concept-item>item</a> there must only be one <code title=md-vcard-tel-type><a href=#md-vcard-tel-type>type</a></code> property per distinct
+ value.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-tel-value title=md-vcard-tel-value><code>value</code></dfn> (inside <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the actual telephone number of the person or
+ organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that can be interpreted as a telephone number as defined in
+ the CCITT specifications E.163 and X.121. <a href=#refsE163>[E163]</a> <a href=#refsX121>[X121]</a></p>
+
+ <p>Exactly one property with the name <code title=md-vcard-tel-value><a href=#md-vcard-tel-value>value</a></code> must be present within the
+ <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of a <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-email title=md-vcard-email><code>email</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the e-mail address of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ either text or an <a href=#concept-item title=concept-item>item</a> with zero
+ or more <code title=md-vcard-email-type><a href=#md-vcard-email-type>type</a></code> properties
+ and exactly one <code title=md-vcard-email-value><a href=#md-vcard-email-value>value</a></code>
+ property.</p>
+
+ <p>If no <code title=md-vcard-email-type><a href=#md-vcard-email-type>type</a></code> properties
+ are present within an <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
+ <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, or if the <a href=#concept-property-value title=concept-property-value>value</a> of such an <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property is text, then the
+ <a href=#e-mail-type-strings title="e-mail type strings">e-mail type string</a> <code title=mv-vcard-type-email-internet>internet</code> is
+ implied.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-email-type title=md-vcard-email-type><code>type</code></dfn> (inside <code title=md-vcard-email><a href=#md-vcard-email>email</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the type of e-mail address.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that, when compared in a <a href=#case-sensitive>case-sensitive</a> manner,
+ is equal to one of the <a href=#e-mail-type-strings>e-mail type strings</a>.</p>
+
+ <p>Within each <a href=#concept-item title=concept-item>item</a> with the
+ type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, there must be no more
+ than one <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property <a href=#concept-item title=concept-item>item</a> with a <code title=md-vcard-email-type><a href=#md-vcard-email-type>type</a></code> property whose value is
+ <code title=md-vcard-type-email-pref><a href=#md-vcard-type-email-pref>pref</a></code>.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-email-type><a href=#md-vcard-email-type>type</a></code> may be present within the
+ <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, but within each such <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property <a href=#concept-item title=concept-item>item</a> there must only be one <code title=md-vcard-email-type><a href=#md-vcard-email-type>type</a></code> property per distinct
+ value.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-email-value title=md-vcard-email-value><code>value</code></dfn> (inside <code title=md-vcard-email><a href=#md-vcard-email>email</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the actual e-mail address of the person or
+ organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Exactly one property with the name <code title=md-vcard-email-value><a href=#md-vcard-email-value>value</a></code> must be present within
+ the <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-mailer title=md-vcard-mailer><code>mailer</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the name of the e-mail software used by the person or
+ organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-mailer><a href=#md-vcard-mailer>mailer</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-tz title=md-vcard-tz><code>tz</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the time zone of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text and must match the following syntax:</p>
+
+ <ol><li>Either a U+002B PLUS SIGN character (+) or a U+002D
+ HYPHEN-MINUS character (-).</li>
+
+ <li>A <a href=#valid-non-negative-integer>valid non-negative integer</a> that is exactly two
+ digits long and that represents a number in the range
+ 00..23.</li>
+
+ <li>A U+003A COLON character (:).</li>
+
+ <li>A <a href=#valid-non-negative-integer>valid non-negative integer</a> that is exactly two
+ digits long and that represents a number in the range
+ 00..59.</li>
+
+ </ol><p>Any number of properties with the name <code title=md-vcard-tz><a href=#md-vcard-tz>tz</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-geo title=md-vcard-geo><code>geo</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the geographical position of the person or
+ organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text and must match the following syntax:</p>
+
+ <ol><li>Optionally, either a U+002B PLUS SIGN character (+) or a
+ U+002D HYPHEN-MINUS character (-).</li>
+
+ <li>One or more digits in the range U+0030 DIGIT ZERO (0) to
+ U+0039 DIGIT NINE (9).</li>
+
+ <li>Optionally*, a U+002E FULL STOP character (.) followed by one
+ or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
+ NINE (9).</li>
+
+ <li>A U+003B SEMICOLON character (;).</li>
+
+ <li>Optionally, either a U+002B PLUS SIGN character (+) or a
+ U+002D HYPHEN-MINUS character (-).</li>
+
+ <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9).</li>
+
+ <li>Optionally*, a U+002E FULL STOP character (.) followed by one
+ or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
+ NINE (9).</li>
+
+ </ol><p>The optional components marked with an asterisk (*) should be
+ included, and should have six digits each.</p>
+
+ <!-- copied from vCard -->
+ <p class=note>The value specifies latitude and longitude, in
+ that order (i.e., "LAT LON" ordering), in decimal degrees. The
+ longitude represents the location east and west of the prime
+ meridian as a positive or negative real number, respectively. The
+ latitude represents the location north and south of the equator as
+ a positive or negative real number, respectively.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-geo><a href=#md-vcard-geo>geo</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-title title=md-vcard-title><code>title</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the job title, functional position or function of the
+ person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-title><a href=#md-vcard-title>title</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-role title=md-vcard-role><code>role</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the role, occupation, or business category of the person
+ or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-role><a href=#md-vcard-role>role</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-logo title=md-vcard-logo><code>logo</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the logo of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-logo><a href=#md-vcard-logo>logo</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-agent title=md-vcard-agent><code>agent</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the contact information of another person who will act on
+ behalf of the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ either an <a href=#concept-item title=concept-item>item</a> with the type
+ <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, or an <a href=#absolute-url>absolute
+ URL</a>, or text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-agent><a href=#md-vcard-agent>agent</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-org title=md-vcard-org><code>org</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the name and units of the organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ either text or an <a href=#concept-item title=concept-item>item</a> with one
+ <code title=md-vcard-org-organization-name><a href=#md-vcard-org-organization-name>organization-name</a></code>
+ property and zero or more <code title=md-vcard-n-organization-unit>organization-unit</code>
+ properties.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-org><a href=#md-vcard-org>org</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-org-organization-name title=md-vcard-org-organization-name><code>organization-name</code></dfn> (inside <code title=md-vcard-org><a href=#md-vcard-org>org</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the name of the organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Exactly one property with the name <code title=md-vcard-org-organization-name><a href=#md-vcard-org-organization-name>organization-name</a></code>
+ must be present within the <a href=#concept-item title=concept-item>item</a>
+ that forms the <a href=#concept-property-value title=concept-property-value>value</a>
+ of an <code title=md-vcard-org><a href=#md-vcard-org>org</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-org-organization-unit title=md-vcard-org-organization-unit><code>organization-unit</code></dfn> (inside <code title=md-vcard-org><a href=#md-vcard-org>org</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the name of the organization unit.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-org-organization-unit><a href=#md-vcard-org-organization-unit>organization-unit</a></code>
+ may be present within the <a href=#concept-item title=concept-item>item</a>
+ that forms the <a href=#concept-property-value title=concept-property-value>value</a>
+ of the <code title=md-vcard-org><a href=#md-vcard-org>org</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-categories title=md-vcard-categories><code>categories</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the name of a category or tag that the person or
+ organization could be classified as.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-categories><a href=#md-vcard-categories>categories</a></code> may be present
+ within each <a href=#concept-item title=concept-item>item</a> with the type
+ <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-note title=md-vcard-note><code>note</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives supplemental information or a comment about the person or
+ organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-note><a href=#md-vcard-note>note</a></code> may be present
+ within each <a href=#concept-item title=concept-item>item</a> with the type
+ <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <!-- PRODID not included -->
+
+
+ <dt><dfn id=md-vcard-rev title=md-vcard-rev><code>rev</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the revision date and time of the contact
+ information.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that is a <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</p>
+
+ <!-- copied from vCard -->
+ <p class=note>The value distinguishes the current revision of
+ the information for other renditions of the information.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-rev><a href=#md-vcard-rev>rev</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-sort-string title=md-vcard-sort-string><code>sort-string</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the string to be used for sorting the person or
+ organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-sort-string><a href=#md-vcard-sort-string>sort-string</a></code> may be present
+ within each <a href=#concept-item title=concept-item>item</a> with the type
+ <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vcard-sound title=md-vcard-sound><code>sound</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a sound file relating to the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-sound><a href=#md-vcard-sound>sound</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <!-- UID not included - use "itemid" -->
+
+
+ <dt><dfn id=md-vcard-url title=md-vcard-url><code>url</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a <a href=#url>URL</a> relating to the person or
+ organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-url><a href=#md-vcard-url>url</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <!-- VERSION not included - always 3.0 -->
+
+
+ <dt><dfn id=md-vcard-class title=md-vcard-class><code>class</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the access classification of the information regarding
+ the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text with one of the following values:</p>
+
+ <ul class=brief><li><code title="">public</code></li>
+ <li><code title="">private</code></li>
+ <li><code title="">confidential</code></li>
+ </ul><p class=warning>This is merely advisory and cannot be
+ considered a confidentiality measure.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-class><a href=#md-vcard-class>class</a></code> may be present
+ within each <a href=#concept-item title=concept-item>item</a> with the type
+ <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <!-- KEY not included - no way to include binary data at this time -->
+
+
+ <!-- IMPP is from RFC4770 -->
+
+ <dt><dfn id=md-vcard-impp title=md-vcard-impp><code>impp</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a <a href=#url>URL</a> for instant messaging and presence
+ protocol communications with the person or organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ either an <a href=#absolute-url>absolute URL</a> or an <a href=#concept-item title=concept-item>item</a> with zero or more <code title=md-vcard-impp-type><a href=#md-vcard-impp-type>type</a></code> properties and exactly one
+ <code title=md-vcard-impp-value><a href=#md-vcard-impp-value>value</a></code> property.</p>
+
+ <p>If no <code title=md-vcard-impp-type><a href=#md-vcard-impp-type>type</a></code> properties
+ are present within an <a href=#concept-item title=concept-item>item</a> that
+ forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
+ <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, or if the <a href=#concept-property-value title=concept-property-value>value</a> of such an <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property is an <a href=#absolute-url>absolute
+ URL</a>, then no <a href=#impp-type-strings>IMPP type strings</a> are
+ implied.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-impp-type title=md-vcard-impp-type><code>type</code></dfn> (inside <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the intended use of the IMPP <a href=#url>URL</a>.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that, when compared in a <a href=#case-sensitive>case-sensitive</a> manner,
+ is equal to one of the <a href=#impp-type-strings>IMPP type strings</a>.</p>
+
+ <p>Within each <a href=#concept-item title=concept-item>item</a> with the
+ type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, there must be no more
+ than one <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property <a href=#concept-item title=concept-item>item</a> with a <code title=md-vcard-impp-type><a href=#md-vcard-impp-type>type</a></code> property whose value is
+ <code title=md-vcard-type-impp-pref><a href=#md-vcard-type-impp-pref>pref</a></code>.</p>
+
+ <p>Any number of properties with the name <code title=md-vcard-impp-type><a href=#md-vcard-impp-type>type</a></code> may be present within the
+ <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, but within each such <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property <a href=#concept-item title=concept-item>item</a> there must only be one <code title=md-vcard-impp-type><a href=#md-vcard-impp-type>type</a></code> property per distinct
+ value.</p>
+
+ </dd>
+
+ <dt><dfn id=md-vcard-impp-value title=md-vcard-impp-value><code>value</code></dfn> (inside <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code>)</dt>
+
+ <dd>
+
+ <p>Gives the actual <a href=#url>URL</a> for instant messaging and
+ presence protocol communications with the person or
+ organization.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>Exactly one property with the name <code title=md-vcard-impp-value><a href=#md-vcard-impp-value>value</a></code> must be present within
+ the <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ </dl><p>The <dfn id=address-type-strings>address type strings</dfn> are:</p>
+
+ <dl><dt><dfn id=md-vcard-type-adr-dom title=md-vcard-type-adr-dom><code>dom</code></dfn></dt>
+ <dd>
+ <p>Indicates a domestic delivery address.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-adr-intl title=md-vcard-type-adr-intl><code>intl</code></dfn></dt>
+ <dd>
+ <p>Indicates an international delivery address.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-adr-postal title=md-vcard-type-adr-postal><code>postal</code></dfn></dt>
+ <dd>
+ <p>Indicates a postal delivery address.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-adr-parcel title=md-vcard-type-adr-parcel><code>parcel</code></dfn></dt>
+ <dd>
+ <p>Indicates a parcel delivery address.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-adr-home title=md-vcard-type-adr-home><code>home</code></dfn></dt>
+ <dd>
+ <p>Indicates a residential delivery address.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-adr-work title=md-vcard-type-adr-work><code>work</code></dfn></dt>
+ <dd>
+ <p>Indicates a delivery address for a place of work.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-adr-pref title=md-vcard-type-adr-pref><code>pref</code></dfn></dt>
+ <dd>
+
+ <p>Indicates the preferred delivery address when multiple
+ addresses are specified.</p>
+
+ </dd>
+
+ </dl><p>The <dfn id=telephone-type-strings>telephone type strings</dfn> are:</p>
+
+ <dl><dt><dfn id=md-vcard-type-tel-home title=md-vcard-type-tel-home><code>home</code></dfn></dt>
+ <dd>
+ <p>Indicates a residential number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-msg title=md-vcard-type-tel-msg><code>msg</code></dfn></dt>
+ <dd>
+ <p>Indicates a telephone number with voice messaging support.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-work title=md-vcard-type-tel-work><code>work</code></dfn></dt>
+ <dd>
+ <p>Indicates a telephone number for a place of work.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-voice title=md-vcard-type-tel-voice><code>voice</code></dfn></dt>
+ <dd>
+ <p>Indicates a voice telephone number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-fax title=md-vcard-type-tel-fax><code>fax</code></dfn></dt>
+ <dd>
+ <p>Indicates a facsimile telephone number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-cell title=md-vcard-type-tel-cell><code>cell</code></dfn></dt>
+ <dd>
+ <p>Indicates a cellular telephone number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-video title=md-vcard-type-tel-video><code>video</code></dfn></dt>
+ <dd>
+ <p>Indicates a video conferencing telephone number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-pager title=md-vcard-type-tel-pager><code>pager</code></dfn></dt>
+ <dd>
+ <p>Indicates a paging device telephone number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-bbs title=md-vcard-type-tel-bbs><code>bbs</code></dfn></dt>
+ <dd>
+ <p>Indicates a bulletin board system telephone number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-modem title=md-vcard-type-tel-modem><code>modem</code></dfn></dt>
+ <dd>
+ <p>Indicates a MODEM-connected telephone number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-car title=md-vcard-type-tel-car><code>car</code></dfn></dt>
+ <dd>
+ <p>Indicates a car-phone telephone number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-isdn title=md-vcard-type-tel-isdn><code>isdn</code></dfn></dt>
+ <dd>
+ <p>Indicates an ISDN service telephone number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-pcs title=md-vcard-type-tel-pcs><code>pcs</code></dfn></dt>
+ <dd>
+ <p>Indicates a personal communication services telephone number.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-tel-pref title=md-vcard-type-tel-pref><code>pref</code></dfn></dt>
+ <dd>
+
+ <p>Indicates the preferred telephone number when multiple
+ telephone numbers are specified.</p>
+
+ </dd>
+
+ </dl><p>The <dfn id=e-mail-type-strings>e-mail type strings</dfn> are:</p>
+
+ <dl><dt><dfn id=md-vcard-type-email-internet title=md-vcard-type-email-internet><code>internet</code></dfn></dt>
+ <dd>
+ <p>Indicates an Internet e-mail address.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-email-x400 title=md-vcard-type-email-x400><code>x400</code></dfn></dt>
+ <dd>
+ <p>Indicates a X.400 addressing type.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-email-pref title=md-vcard-type-email-pref><code>pref</code></dfn></dt>
+ <dd>
+
+ <p>Indicates the preferred e-mail address when multiple e-mail
+ addresses are specified.</p>
+
+ </dd>
+
+ </dl><p>The <dfn id=impp-type-strings>IMPP type strings</dfn> are:</p>
+
+ <dl><dt><dfn id=md-vcard-type-impp-personal title=md-vcard-type-impp-personal><code>personal</code></dfn></dt>
+ <dt><dfn id=md-vcard-type-impp-business title=md-vcard-type-impp-business><code>business</code></dfn></dt>
+ <dd>
+ <p>Indicates the type of communication for which this IMPP
+ <a href=#url>URL</a> is appropriate.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-impp-home title=md-vcard-type-impp-home><code>home</code></dfn></dt>
+ <dt><dfn id=md-vcard-type-impp-work title=md-vcard-type-impp-work><code>work</code></dfn></dt>
+ <dt><dfn id=md-vcard-type-impp-mobile title=md-vcard-type-impp-mobile><code>mobile</code></dfn></dt>
+ <dd>
+ <p>Indicates the location of a device associated with this IMPP
+ <a href=#url>URL</a>.</p>
+ </dd>
+
+ <dt><dfn id=md-vcard-type-impp-pref title=md-vcard-type-impp-pref><code>pref</code></dfn></dt>
+ <dd>
+ <p>Indicates the preferred address when multiple IMPP
+ <a href=#url>URL</a>s are specified.</p>
+ </dd>
+
+ </dl><h5 id=conversion-to-vcard><span class=secno>5.4.1.1 </span>Conversion to vCard</h5>
+
+ <p>Given a list of nodes <var title="">nodes</var> in a
+ <code><a href=#document>Document</a></code>, a user agent must run the following algorithm
+ to <dfn id=extracting-a-vcard title="extracting a vCard">extract any vCard data
+ represented by those nodes</dfn> (only the first vCard is
+ returned):</p>
+
+ <ol><li><p>If none of the nodes in <var title="">nodes</var> are <a href=#concept-item title=concept-item>items</a> with the <a href=#item-type>item type</a>
+ <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, then
+ there is no vCard. Abort the algorithm, returning nothing.</li>
+
+ <li><p>Let <var title="">node</var> be the first node in <var title="">nodes</var> that is an <a href=#concept-item title=concept-item>item</a> with the <a href=#item-type>item type</a>
+ <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>.</li>
+
+ <li><p>Let <var title="">output</var> be an empty string.</li>
+
+ <li><p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">BEGIN</code>" and the value "<code title="">VCARD</code>"
+ to <var title="">output</var>.</li>
+
+ <li><p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">PROFILE</code>" and the value "<code title="">VCARD</code>" to <var title="">output</var>.</li>
+
+ <li><p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">VERSION</code>" and the value "<code title="">3.0</code>"
+ to <var title="">output</var>.</li>
+
+ <li><p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">SOURCE</code>" and the result of <a href=#escaping-the-vcard-text-string>escaping the vCard
+ text string</a> that is <a href="#the-document's-current-address">the document's current
+ address</a> as the value to <var title="">output</var>.</li>
+
+ <li><p>If <a href=#the-title-element-0>the <code>title</code> element</a> is not null,
+ <a href=#add-a-vcard-line>add a vCard line</a> with the type "<code title="">NAME</code>" and with the result of <a href=#escaping-the-vcard-text-string>escaping the
+ vCard text string</a> obtained from the <code><a href=#textcontent>textContent</a></code>
+ of <a href=#the-title-element-0>the <code>title</code> element</a> as the value to <var title="">output</var>.</li>
+
+ <li><p>If <var title="">node</var> has a <a href=#global-identifier>global
+ identifier</a>, <a href=#add-a-vcard-line>add a vCard line</a> with the type
+ "<code title="">UID</code>" and with the result of <a href=#escaping-the-vcard-text-string>escaping
+ the vCard text string</a> of that <a href=#global-identifier>global identifier</a>
+ as the value to <var title="">output</var>.</li>
+
+ <li>
+
+ <p>For each element <var title="">element</var> that is <a href=#the-properties-of-an-item title="the properties of an item">a property of the item</a>
+ <var title="">node</var>: for each name <var title="">name</var>
+ in <var title="">element</var>'s <a href=#property-names>property names</a>, run
+ the following substeps:</p>
+
+ <ol><li><p>Let <var title="">parameters</var> be an empty set of
+ name-value pairs.</li>
+
+ <li>
+
+ <p>Run the appropriate set of substeps from the following
+ list. The steps will set a variable <var title="">value</var>,
+ which is used in the next step.</p>
+
+ <dl><dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a> <var title="">subitem</var>
+ and <var title="">name</var> is <code title=md-vcard-n><a href=#md-vcard-n>n</a></code></dt>
+
+ <dd>
+
+ <ol><li><p>Let <var title="">value</var> be the empty
+ string.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title=md-vcard-n-family-name><a href=#md-vcard-n-family-name>family-name</a></code> in
+ <var title="">subitem</var>.</p>
+
+ <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title=md-vcard-n-given-name><a href=#md-vcard-n-given-name>given-name</a></code> in <var title="">subitem</var>.</p>
+
+ <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title=md-vcard-n-additional-name><a href=#md-vcard-n-additional-name>additional-name</a></code> in
+ <var title="">subitem</var>.</p>
+
+ <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title=md-vcard-n-honorific-prefix><a href=#md-vcard-n-honorific-prefix>honorific-prefix</a></code>
+ in <var title="">subitem</var>.</p>
+
+ <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title=md-vcard-n-honorific-suffix><a href=#md-vcard-n-honorific-suffix>honorific-suffix</a></code>
+ in <var title="">subitem</var>.</p>
+
+ </ol></dd>
+
+ <dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a> <var title="">subitem</var>
+ and <var title="">name</var> is <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code></dt>
+
+ <dd>
+
+ <ol><li><p>Let <var title="">value</var> be the empty
+ string.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-vcard-subproperties>collecting vCard subproperties</a> named <code title=md-vcard-adr-post-office-box><a href=#md-vcard-adr-post-office-box>post-office-box</a></code>
+ in <var title="">subitem</var>.</p>
+
+ <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-vcard-subproperties>collecting vCard subproperties</a> named <code title=md-vcard-adr-extended-address><a href=#md-vcard-adr-extended-address>extended-address</a></code>
+ in <var title="">subitem</var>.</p>
+
+ <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-vcard-subproperties>collecting vCard subproperties</a> named <code title=md-vcard-adr-street-address><a href=#md-vcard-adr-street-address>street-address</a></code> in
+ <var title="">subitem</var>.</p>
+
+ <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title=md-vcard-adr-locality><a href=#md-vcard-adr-locality>locality</a></code> in <var title="">subitem</var>.</p>
+
+ <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title=md-vcard-adr-region><a href=#md-vcard-adr-region>region</a></code> in <var title="">subitem</var>.</p>
+
+ <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title=md-vcard-adr-postal-code><a href=#md-vcard-adr-postal-code>postal-code</a></code> in
+ <var title="">subitem</var>.</p>
+
+ <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title=md-vcard-adr-country-name><a href=#md-vcard-adr-country-name>country-name</a></code>
+ in <var title="">subitem</var>.</p>
+
+ <li><p>If there is a property named <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code> in <var title="">subitem</var>, and the first such property has a
+ <a href=#concept-property-value title=concept-property-value>value</a> that is not
+ an <a href=#concept-item title=concept-item>item</a> and whose value
+ consists only of <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>,
+ then add a parameter named "<code title="">TYPE</code>" whose
+ value is the <a href=#concept-property-value title=concept-property-value>value</a> of that property
+ to <var title="">parameters</var>.</li>
+
+ </ol></dd>
+
+ <dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a> <var title="">subitem</var>
+ and <var title="">name</var> is <code title=md-vcard-org><a href=#md-vcard-org>org</a></code></dt>
+
+ <dd>
+
+ <ol><li><p>Let <var title="">value</var> be the empty
+ string.</li>
+
+ <li><p>Append to <var title="">value</var> the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title=md-vcard-org-organization-name><a href=#md-vcard-org-organization-name>organization-name</a></code>
+ in <var title="">subitem</var>.</p>
+
+ <li>
+
+ <p>For each property named <code title=md-vcard-org-organization-unit><a href=#md-vcard-org-organization-unit>organization-unit</a></code>
+ in <var title="">subitem</var>, run the following steps:</p>
+
+ <ol><li><p>If the <a href=#concept-property-value title=concept-property-value>value</a> of the property
+ is an <a href=#concept-item title=concept-item>item</a>, then skip
+ this property.</li>
+
+ <li><p>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
+
+ <li><p>Append the result of <a href=#escaping-the-vcard-text-string>escaping the vCard text
+ string</a> given by the <a href=#concept-property-value title=concept-property-value>value</a> of the property
+ to <var title="">value</var>.</li>
+
+ </ol></li>
+
+ </ol></dd>
+
+ <dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a> <var title="">subitem</var>
+ with the <a href=#item-type>item type</a> <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>
+ and <var title="">name</var> is <code title=md-vcard-agent><a href=#md-vcard-agent>agent</a></code></dt>
+
+ <dd>
+
+ <ol><li>
+
+ <p>If the user agent is already attempting to <a href=#extracting-a-vcard title="extracting a vCard">extract a vCard</a> from the
+ element that represents <var title="">subitem</var>, then
+ let <var title="">value</var> be the string "<code title="">ERROR</code>".</p>
+
+ <p>Otherwise, let <var title="">value</var> be the result of
+ <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> obtained from
+ <a href=#extracting-a-vcard>extracting a vCard</a> from the element that
+ represents <var title="">subitem</var>.</p>
+
+ </li>
+
+ <li><p>Add a parameter named "<code title="">VALUE</code>"
+ whose value is "<code title="">VCARD</code>" to <var title="">parameters</var>.</li>
+
+ </ol></dd>
+
+ <dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a> and <var title="">name</var>
+ is none of the above</dt>
+
+ <dd>
+
+ <ol><li><p>Let <var title="">value</var> be the result of
+ <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
+ <code title="">value</code> in <var title="">subitem</var>.</p>
+
+ <li><p>If there is a property named <code title="">type</code> in <var title="">subitem</var>, and the
+ first such property has a <a href=#concept-property-value title=concept-property-value>value</a> that is not an
+ <a href=#concept-item title=concept-item>item</a> and whose value
+ consists only of <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>,
+ then add a parameter named "<code title="">TYPE</code>" whose
+ value is the <a href=#concept-property-value title=concept-property-value>value</a> of that property
+ to <var title="">parameters</var>.</li>
+
+ </ol></dd>
+
+ <dt>Otherwise (the property's <a href=#concept-property-value title=concept-property-value>value</a> is not an <a href=#concept-item title=concept-item>item</a>)</dt>
+
+ <dd>
+
+ <ol><li><p>Let <var title="">value</var> be the property's <a href=#concept-property-value title=concept-property-value>value</a>.</li>
+
+ <li><p>If <var title="">element</var> is one of the <a href=#url-property-elements>URL
+ property elements</a>, add a parameter with the name "<code title="">VALUE</code>" and the value "<code title="">URI</code>" to <var title="">parameters</var>.</li>
+
+ <li><p>Otherwise, if <var title="">element</var> is a
+ <code><a href=#the-time-element>time</a></code> element and the <var title="">value</var> is
+ a <a href=#valid-date-string>valid date string</a>, add a parameter with the name
+ "<code title="">VALUE</code>" and the value "<code title="">DATE</code>" to <var title="">parameters</var>.</li>
+
+ <li><p>Otherwise, if <var title="">element</var> is a
+ <code><a href=#the-time-element>time</a></code> element and the <var title="">value</var> is
+ a <a href=#valid-global-date-and-time-string>valid global date and time string</a>, add a
+ parameter with the name "<code title="">VALUE</code>" and the
+ value "<code title="">DATE-TIME</code>" to <var title="">parameters</var>.</li>
+
+ <li><p>Prefix every U+005C REVERSE SOLIDUS character (\) in
+ <var title="">value</var> with another U+005C REVERSE SOLIDUS
+ character (\).</li>
+
+ <li><p>Prefix every U+002C COMMA character (,) in <var title="">value</var> with a U+005C REVERSE SOLIDUS character
+ (\).</li>
+
+ <li><p>Unless <var title="">name</var> is <code title=md-vcard-geo><a href=#md-vcard-geo>geo</a></code>, prefix every U+003B SEMICOLON
+ character (;) in <var title="">value</var> with a U+005C
+ REVERSE SOLIDUS character (\).</li>
+
+ <li><p>Replace every U+000D CARRIAGE RETURN U+000A LINE FEED
+ character pair (CRLF) in <var title="">value</var> with a
+ U+005C REVERSE SOLIDUS character (\) followed by a U+006E
+ LATIN SMALL LETTER N character (n).</li>
+
+ <li><p>Replace every remaining U+000D CARRIAGE RETURN (CR) or
+ U+000A LINE FEED (LF) character in <var title="">value</var>
+ with a U+005C REVERSE SOLIDUS character (\) followed by a
+ U+006E LATIN SMALL LETTER N character (n).</li>
+
+ </ol></dd>
+
+ </dl></li>
+
+ <li>
+
+ <p><a href=#add-a-vcard-line>Add a vCard line</a> with the type <var title="">name</var>, the parameters <var title="">parameters</var>, and the value <var title="">value</var> to <var title="">output</var>.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li><p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">END</code>" and the value "<code title="">VCARD</code>"
+ to <var title="">output</var>.</li>
+
+ </ol><p>When the above algorithm says that the user agent is to <dfn id=add-a-vcard-line>add
+ a vCard line</dfn> consisting of a type <var title="">type</var>,
+ optionally some parameters, and a value <var title="">value</var> to
+ a string <var title="">output</var>, it must run the following
+ steps:</p>
+
+ <ol><li><p>Let <var title="">line</var> be an empty string.
+
+ <li><p>Append <var title="">type</var>, <a href=#converted-to-ascii-uppercase>converted to
+ ASCII uppercase</a>, to <var title="">line</var>.</li>
+
+ <li>
+
+ <p>If there are any parameters, then for each parameter, in the
+ order that they were added, run these substeps:</p>
+
+ <ol><li><p>Append a U+003B SEMICOLON character (;) to <var title="">line</var>.</li>
+
+ <li><p>Append the parameter's name to <var title="">line</var>.</li>
+
+ <li><p>Append a U+003D EQUALS SIGN character (=) to <var title="">line</var>.</li>
+
+ <li><p>Append the parameter's value to <var title="">line</var>.</li>
+
+ </ol></li>
+
+ <li><p>Append a U+003A COLON character (:) to <var title="">line</var>.</li>
+
+ <li><p>Append <var title="">value</var> to <var title="">line</var>.</li>
+
+ <li><p>Let <var title="">maximum length</var> be 75.</li>
+
+ <li>
+
+ <p>If and while <var title="">line</var> is longer than <var title="">maximum length</var> Unicode code points long, run the
+ following substeps:</p>
+
+ <ol><li><p>Append the first <var title="">maximum length</var>
+ Unicode code points of <var title="">line</var> to <var title="">output</var>.</li>
+
+ <li><p>Remove the first <var title="">maximum length</var>
+ Unicode code points from <var title="">line</var>.</li>
+
+ <li><p>Append a U+000D CARRIAGE RETURN character (CR) to <var title="">output</var>.</li>
+
+ <li><p>Append a U+000A LINE FEED character (LF) to <var title="">output</var>.</li>
+
+ <li><p>Append a U+0020 SPACE character to <var title="">output</var>.</li>
+
+ <li><p>Let <var title="">maximum length</var> be 74.</li>
+
+ </ol></li>
+
+ <li><p>Append (what remains of) <var title="">line</var> to <var title="">output</var>.</li>
+
+ <li><p>Append a U+000D CARRIAGE RETURN character (CR) to <var title="">output</var>.</li>
+
+ <li><p>Append a U+000A LINE FEED character (LF) to <var title="">output</var>.</li>
+
+ </ol><p>When the steps above require the user agent to obtain the result
+ of <dfn id=collecting-vcard-subproperties>collecting vCard subproperties</dfn> named <var title="">subname</var> in <var title="">subitem</var>, the user
+ agent must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">value</var> be the empty string.</li>
+
+ <li>
+
+ <p>For each property named <var title="">subname</var> in the item
+ <var title="">subitem</var>, run the following substeps:</p>
+
+ <ol><li><p>If the <a href=#concept-property-value title=concept-property-value>value</a>
+ of the property is itself an <a href=#concept-item title=concept-item>item</a>, then skip this
+ property.</li>
+
+ <li><p>If this is not the first property named <var title="">subname</var> in <var title="">subitem</var> (ignoring
+ any that were skipped by the previous step), then append a U+002C
+ COMMA character (,) to <var title="">value</var>.</li>
+
+ <li><p>Append the result of <a href=#escaping-the-vcard-text-string>escaping the vCard text
+ string</a> given by the <a href=#concept-property-value title=concept-property-value>value</a> of the property to
+ <var title="">value</var>.</li>
+
+ </ol></li>
+
+ <li><p>Return <var title="">value</var>.</li>
+
+ </ol><p>When the steps above require the user agent to obtain the result
+ of <dfn id=collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</dfn> named <var title="">subname</var> in <var title="">subitem</var>, the user
+ agent must run the following steps:</p>
+
+ <ol><li><p>If there are no properties named <var title="">subname</var>
+ in <var title="">subitem</var>, then abort these substeps,
+ returning the empty string.</li>
+
+ <li><p>If the <a href=#concept-property-value title=concept-property-value>value</a> of
+ the first property named <var title="">subname</var> in <var title="">subitem</var> is an <a href=#concept-item title=concept-item>item</a>, then abort these substeps,
+ returning the empty string.</li>
+
+ <li><p>Return the result of <a href=#escaping-the-vcard-text-string>escaping the vCard text
+ string</a> given by the <a href=#concept-property-value title=concept-property-value>value</a> of the first property
+ named <var title="">subname</var> in <var title="">subitem</var>.</li>
+
+ </ol><p>When the above algorithms say the user agent is to <dfn id=escaping-the-vcard-text-string title="escaping the vCard text string">escape the vCard text
+ string</dfn> <var title="">value</var>, the user agent must use the
+ following steps:</p>
+
+ <ol><li><p>Prefix every U+005C REVERSE SOLIDUS character (\) in <var title="">value</var> with another U+005C REVERSE SOLIDUS character
+ (\).</li>
+
+ <li><p>Prefix every U+002C COMMA character (,) in <var title="">value</var> with a U+005C REVERSE SOLIDUS character
+ (\).</li>
+
+ <li><p>Prefix every U+003B SEMICOLON character (;) in <var title="">value</var> with a U+005C REVERSE SOLIDUS character
+ (\).</li>
+
+ <li><p>Replace every U+000D CARRIAGE RETURN U+000A LINE FEED
+ character pair (CRLF) in <var title="">value</var> with a U+005C
+ REVERSE SOLIDUS character (\) followed by a U+006E LATIN SMALL
+ LETTER N character (n).</li>
+
+ <li><p>Replace every remaining U+000D CARRIAGE RETURN (CR) or
+ U+000A LINE FEED (LF) character in <var title="">value</var> with a
+ U+005C REVERSE SOLIDUS character (\) followed by a U+006E LATIN
+ SMALL LETTER N character (n).</li>
+
+ <li><p>Return the mutated <var title="">value</var>.</li>
+
+ </ol><p class=note>This algorithm can generate invalid vCard output, if
+ the input does not conform to the rules described for the <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>
+ <a href=#item-type>item type</a> and <a href=#defined-property-name title="defined property
+ name">defined property names</a>.</p> <!-- of course since vcard
+ doesn't define error handling, this is somewhat problematic. -->
+
+
+
+ <h5 id=examples-1><span class=secno>5.4.1.2 </span>Examples</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <div class=example>
+
+ <p>Here is a long example vCard for a fictional character called
+ "Jack Bauer":</p>
+
+ <pre>&lt;section id="jack" itemscope itemtype="http://microformats.org/profile/hcard"&gt;
+ &lt;h1 itemprop="fn"&gt;
+ &lt;span itemprop="n" itemscope&gt;
+ &lt;span itemprop="given-name"&gt;Jack&lt;/span&gt;
+ &lt;span itemprop="family-name"&gt;Bauer&lt;/span&gt;
+ &lt;/span&gt;
+ &lt;/h1&gt;
+ &lt;img itemprop="photo" alt="" src="jack-bauer.jpg"&gt;
+ &lt;p itemprop="org" itemscope&gt;
+ &lt;span itemprop="organization-name"&gt;Counter-Terrorist Unit&lt;/span&gt;
+ (&lt;span itemprop="organization-unit"&gt;Los Angeles Division&lt;/span&gt;)
+ &lt;/p&gt;
+ &lt;p&gt;
+ &lt;span itemprop="adr" itemscope&gt;
+ &lt;span itemprop="street-address"&gt;10201 W. Pico Blvd.&lt;/span&gt;&lt;br&gt;
+ &lt;span itemprop="locality"&gt;Los Angeles&lt;/span&gt;,
+ &lt;span itemprop="region"&gt;CA&lt;/span&gt;
+ &lt;span itemprop="postal-code"&gt;90064&lt;/span&gt;&lt;br&gt;
+ &lt;span itemprop="country-name"&gt;United States&lt;/span&gt;&lt;br&gt;
+ &lt;/span&gt;
+ &lt;span itemprop="geo"&gt;34.052339;-118.410623&lt;/span&gt;
+ &lt;/p&gt;
+ &lt;h2&gt;Assorted Contact Methods&lt;/h2&gt;
+ &lt;ul&gt;
+ &lt;li itemprop="tel" itemscope&gt;
+ &lt;span itemprop="value"&gt;+1 (310) 597 3781&lt;/span&gt; &lt;span itemprop="type"&gt;work&lt;/span&gt;
+ &lt;meta itemprop="type" content="pref"&gt;
+ &lt;/li&gt;
+ &lt;li&gt;&lt;a itemprop="url" href="http://en.wikipedia.org/wiki/Jack_Bauer"&gt;I'm on Wikipedia&lt;/a&gt;
+ so you can leave a message on my user talk page.&lt;/li&gt;
+ &lt;li&gt;&lt;a itemprop="url" href="http://www.jackbauerfacts.com/"&gt;Jack Bauer Facts&lt;/a&gt;&lt;/li&gt;
+ &lt;li itemprop="email"&gt;&lt;a href="mailto:j.bauer@la.ctu.gov.invalid"&gt;j.bauer@la.ctu.gov.invalid&lt;/a&gt;&lt;/li&gt;
+ &lt;li itemprop="tel" itemscope&gt;
+ &lt;span itemprop="value"&gt;+1 (310) 555 3781&lt;/span&gt; &lt;span&gt;
+ &lt;meta itemprop="type" content="cell"&gt;mobile phone&lt;/span&gt;
+ &lt;/li&gt;
+ &lt;/ul&gt;
+ &lt;p itemprop="note"&gt;If I'm out in the field, you may be better off contacting &lt;span
+ itemprop="agent" itemscope itemtype="http://microformats.org/profile/hcard"&gt;&lt;a
+ itemprop="email" href="mailto:c.obrian@la.ctu.gov.invalid"&gt;&lt;span
+ itemprop="fn"&gt;&lt;span itemprop="n" itemscope&gt;&lt;span
+ itemprop="given-name"&gt;Chloe&lt;/span&gt; &lt;span
+ itemprop="family-name"&gt;O'Brian&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;
+ if it's about work, or ask &lt;span itemprop="agent"&gt;Tony Almeida&lt;/span&gt;
+ if you're interested in the CTU five-a-side football team we're trying to get going.&lt;/p&gt;
+ &lt;ins datetime="2008-07-20T21:00:00+01:00"&gt;
+ &lt;span itemprop="rev" itemscope&gt;
+ &lt;meta itemprop="type" content="date-time"&gt;
+ &lt;meta itemprop="value" content="2008-07-20T21:00:00+01:00"&gt;
+ &lt;/span&gt;
+ &lt;p itemprop="tel" itemscope&gt;&lt;strong&gt;Update!&lt;/strong&gt;
+ My new &lt;span itemprop="type"&gt;home&lt;/span&gt; phone number is
+ &lt;span itemprop="value"&gt;01632 960 123&lt;/span&gt;.&lt;/p&gt;
+ &lt;/ins&gt;
+&lt;/section&gt;</pre>
+
+ <p>The odd line wrapping is needed because newlines are meaningful
+ in microdata: newlines would be preserved in a conversion to, for
+ example, the vCard format.<p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This example shows a site's contact details (using the
+ <code><a href=#the-address-element>address</a></code> element) containing an address with two street
+ components:</p>
+
+ <pre>&lt;address itemscope itemtype="http://microformats.org/profile/hcard"&gt;
+ &lt;strong itemprop="fn"&gt;&lt;span itemprop="n" itemscope&gt;&lt;span itemprop="given-name"&gt;Alfred&lt;/span&gt;
+ &lt;span itemprop="family-name"&gt;Person&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;br&gt;
+ &lt;span itemprop="adr" itemscope&gt;
+ &lt;span itemprop="street-address"&gt;1600 Amphitheatre Parkway&lt;/span&gt; &lt;br&gt;
+ &lt;span itemprop="street-address"&gt;Building 43, Second Floor&lt;/span&gt; &lt;br&gt;
+ &lt;span itemprop="locality"&gt;Mountain View&lt;/span&gt;,
+ &lt;span itemprop="region"&gt;CA&lt;/span&gt; &lt;span itemprop="postal-code"&gt;94043&lt;/span&gt;
+ &lt;/span&gt;
+&lt;/address&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The vCard vocabulary can be used to just mark up people's
+ names:</p>
+
+ <pre>&lt;span itemscope itemtype="http://microformats.org/profile/hcard"
+&gt;&lt;span itemprop=fn&gt;&lt;span itemprop="n" itemscope&gt;&lt;span itemprop="given-name"
+&gt;George&lt;/span&gt; &lt;span itemprop="family-name"&gt;Washington&lt;/span&gt;&lt;/span
+&gt;&lt;/span&gt;&lt;/span&gt;</pre>
+
+ <p>This creates a single item with a two name-value pairs, one with
+ the name "fn" and the value "George Washington", and the other with
+ the name "n" and a second item as its value, the second item having
+ the two name-value pairs "given-name" and "family-name" with the
+ values "George" and "Washington" respectively. This is defined to
+ map to the following vCard:</p>
+
+ <pre>BEGIN:VCARD
+PROFILE:VCARD
+VERSION:3.0
+SOURCE:<var title="">document's address</var>
+FN:George Washington
+N:Washington;George;;;
+END:VCARD</pre>
+
+ </div>
+
+
+
+ <h4 id=vevent><span class=secno>5.4.2 </span>vEvent</h4>
+
+
+
+ <p>An item with the <a href=#item-type>item type</a> <dfn id=md-vevent title=md-vevent><code>http://microformats.org/profile/hcalendar#vevent</code></dfn>
+ represents an event.</p>
+
+ <p>This vocabulary <a href=#support-global-identifiers-for-items title="support global identifiers for
+ items">supports global identifiers for items</a>. The
+ <a href=#global-identifier>global identifier</a> gives the persistent, globally unique
+ identifier for the calendar event.</p> <!-- UID -->
+
+ <p>The following are the type's <a href=#defined-property-name title="defined property
+ name">defined property names</a>. They are based on the
+ vocabulary defined in the iCalendar specification, where more
+ information on how to interpret the values can be found. <a href=#refsRFC2445>[RFC2445]</a></p>
+
+ <p class=note>Only the parts of the iCalendar vocabulary relating
+ to events are used here; this vocabulary cannot express a complete
+ iCalendar instance.</p>
+
+ <dl><dt><dfn id=md-vevent-attach title=md-vevent-attach><code>attach</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the address of an associated document for the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>Any number of properties with the name <code title=md-vevent-attach><a href=#md-vevent-attach>attach</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-categories title=md-vevent-categories><code>categories</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the name of a category or tag that the event could be
+ classified as.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vevent-categories><a href=#md-vevent-categories>categories</a></code> may be present
+ within each <a href=#concept-item title=concept-item>item</a> with the type
+ <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-class title=md-vevent-class><code>class</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the access classification of the information regarding
+ the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text with one of the following values:</p>
+
+ <ul class=brief><li><code title="">public</code></li>
+ <li><code title="">private</code></li>
+ <li><code title="">confidential</code></li>
+ </ul><p class=warning>This is merely advisory and cannot be
+ considered a confidentiality measure.</p>
+
+ <p>A single property with the name <code title=md-vevent-class><a href=#md-vevent-class>class</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-comment title=md-vevent-comment><code>comment</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a comment regarding the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-vevent-comment><a href=#md-vevent-comment>comment</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-description title=md-vevent-description><code>description</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a detailed description of the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>A single property with the name <code title=md-vevent-description><a href=#md-vevent-description>description</a></code> may be present
+ within each <a href=#concept-item title=concept-item>item</a> with the type
+ <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-geo title=md-vevent-geo><code>geo</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the geographical position of the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text and must match the following syntax:</p>
+
+ <ol><li>Optionally, either a U+002B PLUS SIGN character (+) or a
+ U+002D HYPHEN-MINUS character (-).</li>
+
+ <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9).</li>
+
+ <li>Optionally*, a U+002E FULL STOP character (.) followed by one
+ or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
+ NINE (9).</li>
+
+ <li>A U+003B SEMICOLON character (;).</li>
+
+ <li>Optionally, either a U+002B PLUS SIGN character (+) or a
+ U+002D HYPHEN-MINUS character (-).</li>
+
+ <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
+ DIGIT NINE (9).</li>
+
+ <li>Optionally*, a U+002E FULL STOP character (.) followed by one
+ or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
+ NINE (9).</li>
+
+ </ol><p>The optional components marked with an asterisk (*) should be
+ included, and should have six digits each.</p> <!-- iCalendar
+ actually limits the range to -91.0 < lat < 91.0; -181.0 < long <
+ 181.0, which seems weird. It also gives special meanings to
+ +90/-90 lat, and +180 long. -->
+
+ <!-- copied from vcard (not icalendar!) -->
+ <p class=note>The value specifies latitude and longitude, in
+ that order (i.e., "LAT LON" ordering), in decimal degrees. The
+ longitude represents the location east and west of the prime
+ meridian as a positive or negative real number, respectively. The
+ latitude represents the location north and south of the equator as
+ a positive or negative real number, respectively.</p>
+
+ <p>A single property with the name <code title=md-vevent-geo><a href=#md-vevent-geo>geo</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-location title=md-vevent-location><code>location</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the location of the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p> <!-- v2: support vcard here -->
+
+ <p>A single property with the name <code title=md-vevent-location><a href=#md-vevent-location>location</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <!-- PRIORITY not included - always 0 - doesn't make sense for single events -->
+
+
+ <dt><dfn id=md-vevent-resources title=md-vevent-resources><code>resources</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a resource that will be needed for the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p> <!-- v2: support vcard here -->
+
+ <p>Any number of properties with the name <code title=md-vevent-resources><a href=#md-vevent-resources>resources</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-status title=md-vevent-status><code>status</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the confirmation status of the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text with one of the following values:</p>
+
+ <ul class=brief><li><code title="">tentative</code></li>
+ <li><code title="">confirmed</code></li>
+ <li><code title="">cancelled</code></li> <!-- two Ls as per iCalendar spec -->
+ </ul><p>A single property with the name <code title=md-vevent-status><a href=#md-vevent-status>status</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-summary title=md-vevent-summary><code>summary</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a short summary of the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p>
+
+ <p>User agents should replace U+000A LINE FEED (LF) characters in
+ the <a href=#concept-property-value title=concept-property-value>value</a> by U+0020
+ SPACE characters when using the value.</p>
+
+ <p>A single property with the name <code title=md-vevent-summary><a href=#md-vevent-summary>summary</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-dtend title=md-vevent-dtend><code>dtend</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the date and time by which the event ends.</p>
+
+ <p>If the property with the name <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code> is present within an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>
+ that has a property with the name <code title=md-vevent-dtstart><a href=#md-vevent-dtstart>dtstart</a></code> whose value is a
+ <a href=#valid-date-string>valid date string</a>, then the <a href=#concept-property-value title=concept-property-value>value</a> of the property with
+ the name <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code> must be text
+ that is a <a href=#valid-date-string>valid date string</a> also. Otherwise, the
+ <a href=#concept-property-value title=concept-property-value>value</a> of the property
+ must be text that is a <a href=#valid-global-date-and-time-string>valid global date and time
+ string</a>.</p>
+
+ <p>In either case, the <a href=#concept-property-value title=concept-property-value>value</a> be later in time than
+ the value of the <code title=md-event-dtstart>dtstart</code>
+ property of the same <a href=#concept-item title=concept-item>item</a>.</p>
+
+ <p class=note>The time given by the <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code> property is not
+ inclusive. For day-long events, therefore, the <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code> property's <a href=#concept-property-value title=concept-property-value>value</a> will be the day
+ <em>after</em> the end of the event.</p>
+
+ <p>A single property with the name <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>,
+ so long as that <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>
+ does not have a property with the name <code title=md-vevent-duration><a href=#md-vevent-duration>duration</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-dtstart title=md-vevent-dtstart><code>dtstart</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the date and time at which the event starts.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that is either a <a href=#valid-date-string>valid date string</a> or a
+ <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</p>
+
+ <p>Exactly one property with the name <code title=md-vevent-dtstart><a href=#md-vevent-dtstart>dtstart</a></code> must be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-duration title=md-vevent-duration><code>duration</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the duration of the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that is a <a href=#valid-vevent-duration-string>valid vevent duration string</a>.</p>
+
+ <p>The duration represented is the sum of all the durations
+ represented by integers in the value.</p>
+
+ <p>A single property with the name <code title=md-vevent-duration><a href=#md-vevent-duration>duration</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>,
+ so long as that <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>
+ does not have a property with the name <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-transp title=md-vevent-transp><code>transp</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives whether the event is to be considered as consuming time
+ on a calendar, for the purpose of free-busy time searches.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text with one of the following values:</p>
+
+ <ul class=brief><li><code title="">opaque</code></li>
+ <li><code title="">transparent</code></li>
+ </ul><p>A single property with the name <code title=md-vevent-transp><a href=#md-vevent-transp>transp</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <!-- ATTENDEE not included; iCalendar says MUST NOT be included in
+ published events -->
+
+
+ <dt><dfn id=md-vevent-contact title=md-vevent-contact><code>contact</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the contact information for the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text.</p> <!-- v2: support vcard here -->
+
+ <p>Any number of properties with the name <code title=md-vevent-contact><a href=#md-vevent-contact>contact</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <!-- ORGANIZER not included, as it is calendar-system-specific
+ (gives a CAL-ADDRESS value); use CONTACT instead -->
+
+
+ <!-- RECURRENCE-ID not included... unclear how to make it usefully
+ work here -->
+
+
+ <!-- RELATED-TO not included, as it only makes sense for complete
+ calendars -->
+
+
+ <dt><dfn id=md-vevent-url title=md-vevent-url><code>url</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a <a href=#url>URL</a> for the event.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>A single property with the name <code title=md-vevent-url><a href=#md-vevent-url>url</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <!-- UID not included - use "itemid" -->
+
+
+ <dt><dfn id=md-vevent-exdate title=md-vevent-exdate><code>exdate</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a date and time at which the event does not occur despite
+ the recurrence rules.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that is either a <a href=#valid-date-string>valid date string</a> or a
+ <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</p>
+
+ <p>Any number of properties with the name <code title=md-vevent-exdate><a href=#md-vevent-exdate>exdate</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-exrule title=md-vevent-exrule><code>exrule</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a rule for finding dates and times at which the event
+ does not occur despite the recurrence rules.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that matches the RECUR value type defined in the iCalendar
+ specification. <a href=#refsRFC2445>[RFC2445]</a></p>
+
+ <p>Any number of properties with the name <code title=md-vevent-exrule><a href=#md-vevent-exrule>exrule</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-rdate title=md-vevent-rdate><code>rdate</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a date and time at which the event recurs.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that is one of the following:
+
+ <ul><li>A <a href=#valid-date-string>valid date string</a>.</li>
+
+ <li>A <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</li>
+
+ <li>A <a href=#valid-global-date-and-time-string>valid global date and time string</a> followed by
+ a U+002F SOLIDUS character (/) followed by a second <a href=#valid-global-date-and-time-string>valid
+ global date and time string</a> representing a later time.</li>
+
+ <li>A <a href=#valid-global-date-and-time-string>valid global date and time string</a> followed by
+ a U+002F SOLIDUS character (/) followed by a <a href=#valid-vevent-duration-string>valid vevent
+ duration string</a>.</li>
+
+ </ul><p>Any number of properties with the name <code title=md-vevent-rdate><a href=#md-vevent-rdate>rdate</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-rrule title=md-vevent-rrule><code>rrule</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a rule for finding dates and times at which the event
+ occurs.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that matches the RECUR value type defined in the iCalendar
+ specification. <a href=#refsRFC2445>[RFC2445]</a></p>
+
+ <p>Any number of properties with the name <code title=md-vevent-rrule><a href=#md-vevent-rrule>rrule</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-created title=md-vevent-created><code>created</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the date and time at which the event information was first
+ created in a calendaring system.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that is a <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</p>
+
+ <p>A single property with the name <code title=md-vevent-created><a href=#md-vevent-created>created</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <!-- DTSTAMP not included, it gets added when serialising -->
+
+
+ <dt><dfn id=md-vevent-last-modified title=md-vevent-last-modified><code>last-modified</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the date and time at which the event information was last
+ modified in a calendaring system.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that is a <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</p>
+
+ <p>A single property with the name <code title=md-vevent-last-modified><a href=#md-vevent-last-modified>last-modified</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-vevent-sequence title=md-vevent-sequence><code>sequence</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a revision number for the event information.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ text that is a <a href=#valid-non-negative-integer>valid non-negative integer</a>.</p>
+
+ <p>A single property with the name <code title=md-vevent-sequence><a href=#md-vevent-sequence>sequence</a></code> may be present within
+ each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <!-- REQUEST-STATUS not included, calendaring system interop
+ feature -->
+
+
+ </dl><p>A string is a <dfn id=valid-vevent-duration-string>valid vevent duration string</dfn> if it
+ matches the following pattern:</p>
+
+ <ol><li>A U+0050 LATIN CAPITAL LETTER P character (P).</li>
+
+ <li>One of the following:
+
+ <ul><li> A <a href=#valid-non-negative-integer>valid non-negative integer</a> followed by a
+ U+0057 LATIN CAPITAL LETTER W character (W). The integer
+ represents a duration of that number of weeks. </li>
+
+ <li> At least one, and possible both in this order, of the
+ following:
+
+ <ol><li> A <a href=#valid-non-negative-integer>valid non-negative integer</a> followed by a
+ U+0044 LATIN CAPITAL LETTER D character (D). The integer
+ represents a duration of that number of days. </li>
+
+ <li> A U+0054 LATIN CAPITAL LETTER T character (T) followed by
+ any one of the following, or the first and second of the
+ following in that order, or the second and third of the
+ following in that order, or all three of the following in this
+ order:
+
+ <ol><li> A <a href=#valid-non-negative-integer>valid non-negative integer</a> followed by a
+ U+0048 LATIN CAPITAL LETTER H character (H). The integer
+ represents a duration of that number of hours. </li>
+
+ <li> A <a href=#valid-non-negative-integer>valid non-negative integer</a> followed by a
+ U+004D LATIN CAPITAL LETTER M character (M). The integer
+ represents a duration of that number of minutes. </li>
+
+ <li> A <a href=#valid-non-negative-integer>valid non-negative integer</a> followed by a
+ U+0053 LATIN CAPITAL LETTER S character (S). The integer
+ represents a duration of that number of seconds. </li>
+
+ </ol></ol></li>
+
+ </ul></li>
+
+ </ol><h5 id=conversion-to-icalendar><span class=secno>5.4.2.1 </span>Conversion to iCalendar</h5>
+
+ <p>Given a list of nodes <var title="">nodes</var> in a
+ <code><a href=#document>Document</a></code>, a user agent must run the following algorithm
+ to <dfn id=extracting-vevent-data title="extracting vEvent data">extract any vEvent data
+ represented by those nodes</dfn>:</p>
+
+ <ol><li><p>If none of the nodes in <var title="">nodes</var> are <a href=#concept-item title=concept-item>items</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>,
+ then there is no vEvent data. Abort the algorithm, returning
+ nothing.</li>
+
+ <li><p>Let <var title="">output</var> be an empty string.</li>
+
+ <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">BEGIN</code>" and the value "<code title="">VCALENDAR</code>" to <var title="">output</var>.</li>
+
+ <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">PRODID</code>" and the value equal to a
+ user-agent-specific string representing the user agent to <var title="">output</var>.</li>
+
+ <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">VERSION</code>" and the value "<code title="">2.0</code>"
+ to <var title="">output</var>.</li>
+
+ <li>
+
+ <p>For each node <var title="">node</var> in <var title="">nodes</var> that is an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>,
+ run the following steps:</p>
+
+ <ol><li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">BEGIN</code>" and the value "<code title="">VEVENT</code>" to <var title="">output</var>.</li>
+
+ <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">DTSTAMP</code>" and a value consisting of an iCalendar
+ DATE-TIME string representing the current date and time, with the
+ annotation "<code title="">VALUE=DATE-TIME</code>", to <var title="">output</var>. <a href=#refsRFC2445>[RFC2445]</a></li>
+
+ <li><p>If the <a href=#concept-item title=concept-item>item</a> has a
+ <a href=#global-identifier>global identifier</a>, <a href=#add-an-icalendar-line>add an iCalendar
+ line</a> with the type "<code title="">UID</code>" and that
+ <a href=#global-identifier>global identifier</a> as the value to <var title="">output</var>.</li>
+
+ <li>
+
+ <p>For each element <var title="">element</var> that is <a href=#the-properties-of-an-item title="the properties of an item">a property of the item</a>
+ <var title="">node</var>: for each name <var title="">name</var>
+ in <var title="">element</var>'s <a href=#property-names>property names</a>,
+ run the appropriate set of substeps from the following list:</p>
+
+ <dl><dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a></dt>
+
+ <dd>
+
+ <p>Skip the property.</p>
+
+ </dd>
+
+
+ <dt>If <var title="">element</var> is a <code><a href=#the-time-element>time</a></code>
+ element</dt>
+
+ <dd>
+
+ <p>Let <var title="">value</var> be the result of stripping
+ all U+002D HYPHEN-MINUS (-) and U+003A COLON (:) characters
+ from the property's <a href=#concept-property-value title=concept-property-value>value</a>.</p>
+
+ <p>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is a <a href=#valid-date-string>valid
+ date string</a> then <a href=#add-an-icalendar-line>add an iCalendar line</a>
+ with the type <var title="">name</var> and the value <var title="">value</var> to <var title="">output</var>, with the
+ annotation "<code title="">VALUE=DATE</code>".</p>
+
+ <p>Otherwise, if the property's <a href=#concept-property-value title=concept-property-value>value</a> is a <a href=#valid-global-date-and-time-string>valid
+ global date and time string</a> then <a href=#add-an-icalendar-line>add an iCalendar
+ line</a> with the type <var title="">name</var> and the
+ value <var title="">value</var> to <var title="">output</var>,
+ with the annotation "<code title="">VALUE=DATE-TIME</code>".</p>
+
+ <p>Otherwise skip the property.</p>
+
+ </dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type <var title="">name</var> and the property's <a href=#concept-property-value title=concept-property-value>value</a> to <var title="">output</var>.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">END</code>" and the value "<code title="">VEVENT</code>"
+ to <var title="">output</var>.</li>
+
+ </ol></li>
+
+ <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">END</code>" and the value "<code title="">VCALENDAR</code>" to <var title="">output</var>.</li>
+
+ </ol><p>When the above algorithm says that the user agent is to <dfn id=add-an-icalendar-line>add
+ an iCalendar line</dfn> consisting of a type <var title="">type</var>, a value <var title="">value</var>, and
+ optionally an annotation, to a string <var title="">output</var>, it
+ must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">line</var> be an empty string.</li>
+
+ <li><p>Append <var title="">type</var>, <a href=#converted-to-ascii-uppercase>converted to
+ ASCII uppercase</a>, to <var title="">line</var>.</li>
+
+ <li>
+
+ <p>If there is an annotation:</p>
+
+ <ol><li><p>Append a U+003B SEMICOLON character (;) to <var title="">line</var>.</li>
+
+ <li><p>Append the annotation to <var title="">line</var>.</li>
+
+ </ol></li>
+
+ <li><p>Append a U+003A COLON character (:) to <var title="">line</var>.</li>
+
+ <li><p>Prefix every U+005C REVERSE SOLIDUS character (\) in
+ <var title="">value</var> with another U+005C REVERSE SOLIDUS
+ character (\).</li>
+
+ <li><p>Prefix every U+002C COMMA character (,) in <var title="">value</var> with a U+005C REVERSE SOLIDUS character
+ (\).</li>
+
+ <li><p>Prefix every U+003B SEMICOLON character (;) in <var title="">value</var> with a U+005C REVERSE SOLIDUS character
+ (\).</li>
+
+ <li><p>Replace every U+000D CARRIAGE RETURN U+000A LINE FEED
+ character pair (CRLF) in <var title="">value</var> with a U+005C
+ REVERSE SOLIDUS character (\) followed by a U+006E LATIN SMALL
+ LETTER N character (n).</li>
+
+ <li><p>Replace every remaining U+000D CARRIAGE RETURN (CR) or
+ U+000A LINE FEED (LF) character in <var title="">value</var> with a
+ U+005C REVERSE SOLIDUS character (\) followed by a U+006E LATIN
+ SMALL LETTER N character (n).</li>
+
+ <li><p>Append <var title="">value</var> to <var title="">line</var>.</li>
+
+ <li><p>Let <var title="">maximum length</var> be 75.</li>
+
+ <li>
+
+ <p>If and while <var title="">line</var> is longer than <var title="">maximum length</var> Unicode code points long, run the
+ following substeps:</p>
+
+ <ol><li><p>Append the first <var title="">maximum length</var>
+ Unicode code points of <var title="">line</var> to <var title="">output</var>.</li>
+
+ <li><p>Remove the first <var title="">maximum length</var>
+ Unicode code points from <var title="">line</var>.</li>
+
+ <li><p>Append a U+000D CARRIAGE RETURN character (CR) to <var title="">output</var>.</li>
+
+ <li><p>Append a U+000A LINE FEED character (LF) to <var title="">output</var>.</li>
+
+ <li><p>Append a U+0020 SPACE character to <var title="">output</var>.</li>
+
+ <li><p>Let <var title="">maximum length</var> be 74.</li>
+
+ </ol></li>
+
+ <li><p>Append (what remains of) <var title="">line</var> to <var title="">output</var>.</li>
+
+ <li><p>Append a U+000D CARRIAGE RETURN character (CR) to <var title="">output</var>.</li>
+
+ <li><p>Append a U+000A LINE FEED character (LF) to <var title="">output</var>.</li>
+
+ </ol><p class=note>This algorithm can generate invalid iCalendar
+ output, if the input does not conform to the rules described for the
+ <code title=md-vevent><a href=#md-vevent>http://microformats.org/profile/hcalendar#vevent</a></code>
+ <a href=#item-type>item type</a> and <a href=#defined-property-name title="defined property
+ name">defined property names</a>.</p> <!-- of course since
+ iCalendar doesn't define error handling, this is somewhat
+ problematic. -->
+
+
+
+ <h5 id=examples-2><span class=secno>5.4.2.2 </span>Examples</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+<!-- get more from http://tools.ietf.org/html/rfc2445 -->
+
+ <div class=example>
+
+ <p>Here is an example of a page that uses the vEvent vocabulary to
+ mark up an event:</p>
+
+ <pre>&lt;body itemscope itemtype="http://microformats.org/profile/hcalendar#vevent"&gt;
+ ...
+ &lt;h1 itemprop="summary"&gt;Bluesday Tuesday: Money Road&lt;/h1&gt;
+ ...
+ &lt;time itemprop="dtstart" datetime="2009-05-05T19:00:00Z"&gt;May 5th @ 7pm&lt;/time&gt;
+ (until &lt;time itemprop="dtend" datetime="2009-05-05T21:00:00Z"&gt;9pm&lt;/time&gt;)
+ ...
+ &lt;a href="http://livebrum.co.uk/2009/05/05/bluesday-tuesday-money-road"
+ rel="bookmark" itemprop="url"&gt;Link to this page&lt;/a&gt;
+ ...
+ &lt;p&gt;Location: &lt;span itemprop="location"&gt;The RoadHouse&lt;/span&gt;&lt;/p&gt;
+ ...
+ &lt;p&gt;&lt;input type=button value="Add to Calendar"
+ onclick="location = getCalendar(this)"&gt;&lt;/p&gt;
+ ...
+ &lt;meta itemprop="description" content="via livebrum.co.uk"&gt;
+&lt;/body&gt;</pre>
+
+ <p>The "<code title="">getCalendar()</code>" method could look like
+ this:</p>
+
+ <pre>function getCalendar(node) {
+ // This function assumes the content is valid.
+ // It is not a compliant implementation of the algorithm for <a href=#extracting-vevent-data>extracting vEvent data</a>.
+ while (node &amp;&amp; (!node.itemScope || !node.itemType == 'http://microformats.org/profile/hcalendar#vevent'))
+ node = node.parentNode;
+ if (!node) {
+ alert('No event data found.');
+ return;
+ }
+ var stamp = new Date();
+ var stampString = '' + stamp.getUTCFullYear() + (stamp.getUTCMonth() + 1) + stamp.getUTCDate() + 'T' +
+ stamp.getUTCHours() + stamp.getUTCMinutes() + stamp.getUTCSeconds() + 'Z';
+ var calendar = 'BEGIN:VCALENDAR\r\nPRODID:HTML\r\nVERSION:2.0\r\nBEGIN:VEVENT\r\nDTSTAMP:' + stampString + '\r\n';
+ if (node.itemId)
+ calendar += 'UID:' + node.itemId + '\r\n';
+ for (var propIndex = 0; propIndex &lt; node.properties.length; propIndex += 1) {
+ var prop = node.properties[propIndex];
+ var value = prop.itemValue;
+ var parameters = '';
+ if (prop.localName == 'time') {
+ value = value.replace(/[:-]/g, '');
+ if (value.match(/T/))
+ parameters = ';VALUE=DATE';
+ else
+ parameters = ';VALUE=DATE-TIME';
+ } else {
+ value = value.replace(/\\/g, '\\n');
+ value = value.replace(/;/g, '\\;');
+ value = value.replace(/,/g, '\\,');
+ value = value.replace(/\n/g, '\\n');
+ }
+ for (var nameIndex = 0; nameIndex &lt; prop.itemProp.length; nameIndex += 1) {
+ var name = prop.itemProp[nameIndex];
+ if (!name.match(/:/) &amp;&amp; !name.match(/\./))
+ calendar += name.toUpperCase() + parameters + ':' + value + '\r\n';
+ }
+ }
+ calendar += 'END:VEVENT\r\nEND:VCALENDAR\r\n';
+ return 'data:text/calendar;component=vevent,' + encodeURI(calendar);
+}</pre>
+
+ <p>The same page could offer some markup, such as the following,
+ for copy-and-pasting into blogs:</p>
+
+ <pre>&lt;div itemscope itemtype="http://microformats.org/profile/hcalendar#vevent"&gt;
+ &lt;p&gt;I'm going to
+ &lt;strong itemprop="summary"&gt;Bluesday Tuesday: Money Road&lt;/strong&gt;,
+ &lt;time itemprop="dtstart" datetime="2009-05-05T19:00:00Z"&gt;May 5th at 7pm&lt;/time&gt;
+ to &lt;time itemprop="dtend" content="2009-05-05T21:00:00Z"&gt;9pm&lt;/time&gt;,
+ at &lt;span itemprop="location"&gt;The RoadHouse&lt;/span&gt;!&lt;/p&gt;
+ &lt;p&gt;&lt;a href="http://livebrum.co.uk/2009/05/05/bluesday-tuesday-money-road"
+ itemprop="url"&gt;See this event on livebrum.co.uk&lt;/a&gt;.&lt;/p&gt;
+ &lt;meta itemprop="description" content="via livebrum.co.uk"&gt;
+&lt;/div&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=licensing-works><span class=secno>5.4.3 </span>Licensing works</h4>
+
+
+
+ <p>An item with the <a href=#item-type>item type</a> <dfn id=md-work title=md-work><code>http://n.whatwg.org/work</code></dfn>
+ represents a work (e.g. an article, an image, a video, a song,
+ etc). This type is primarily intended to allow authors to include
+ licensing information for works.</p>
+
+ <p>The following are the type's <a href=#defined-property-name title="defined property
+ name">defined property names</a>.</p>
+
+ <dl><dt><dfn id=md-work-work title=md-work-work><code>work</code></dfn></dt>
+
+ <dd>
+
+ <p>Identifies the work being described.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>Exactly one property with the name <code title=md-work-work><a href=#md-work-work>work</a></code> must be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-work><a href=#md-work>http://n.whatwg.org/work</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-work-title title=md-work-title><code>title</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the name of the work.</p>
+
+ <p>A single property with the name <code title=md-work-title><a href=#md-work-title>title</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-work><a href=#md-work>http://n.whatwg.org/work</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-work-author title=md-work-author><code>author</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives the name or contact information of one of the authors or
+ creators of the work.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ either an <a href=#concept-item title=concept-item>item</a> with the type
+ <code title=md-vcard><a href=#md-vcard>http://microformats.org/profile/hcard</a></code>, or
+ text.</p>
+
+ <p>Any number of properties with the name <code title=md-work-author><a href=#md-work-author>author</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-work><a href=#md-work>http://n.whatwg.org/work</a></code>.</p>
+
+ </dd>
+
+
+ <dt><dfn id=md-work-license title=md-work-license><code>license</code></dfn></dt>
+
+ <dd>
+
+ <p>Identifies one of the licenses under which the work is
+ available.</p>
+
+ <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
+ an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>Any number of properties with the name <code title=md-work-license><a href=#md-work-license>license</a></code> may be present within each
+ <a href=#concept-item title=concept-item>item</a> with the type <code title=md-work><a href=#md-work>http://n.whatwg.org/work</a></code>.</p>
+
+ </dd>
+
+ </dl><h5 id=examples-3><span class=secno>5.4.3.1 </span>Examples</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <div class=example>
+
+ <p>This example shows an embedded image entitled <cite>My
+ Pond</cite>, licensed under the Creative Commons Attribution-Share
+ Alike 3.0 United States License and the MIT license
+ simultaneously.</p>
+
+ <pre>&lt;figure <strong>itemscope itemtype="http://n.whatwg.org/work"</strong>&gt;
+ &lt;img <strong>itemprop="work"</strong> src="mypond.jpeg"&gt;
+ &lt;figcaption&gt;
+ &lt;p&gt;&lt;cite <strong>itemprop="title"</strong>&gt;My Pond&lt;/cite&gt;&lt;/p&gt;
+ &lt;p&gt;&lt;small&gt;Licensed under the &lt;a <strong>itemprop="license"</strong>
+ href="http://creativecommons.org/licenses/by-sa/3.0/us/"&gt;Creative
+ Commons Attribution-Share Alike 3.0 United States License&lt;/a&gt;
+ and the &lt;a <strong>itemprop="license"</strong>
+ href="http://www.opensource.org/licenses/mit-license.php"&gt;MIT
+ license&lt;/a&gt;.&lt;/small&gt;
+ &lt;/figcaption&gt;
+&lt;/figure&gt;</pre>
+
+ </div>
+
+
+
+
+
+
+
+ <div class=impl>
+
+ <h3 id=converting-html-to-other-formats><span class=secno>5.5 </span>Converting HTML to other formats</h3>
+
+ <h4 id=json><span class=secno>5.5.1 </span>JSON</h4>
+
+ <p>Given a list of nodes <var title="">nodes</var> in a
+ <code><a href=#document>Document</a></code>, a user agent must run the following algorithm
+ to <dfn id=extracting-json title="extracting JSON">extract the microdata from those
+ nodes into a JSON form</dfn>:</p>
+
+ <ol><li><p>Let <var title="">result</var> be an empty object.</li>
+
+ <li><p>Let <var title="">items</var> be an empty array.</li>
+
+ <li><p>For each <var title="">node</var> in <var title="">nodes</var>, check if the element is a <a href=#top-level-microdata-items title="top-level microdata items">top-level microdata item</a>,
+ and if it is then <a href=#get-the-object>get the object</a> for that element and
+ add it to <var title="">items</var>.</li>
+
+ <li><p>Add an entry to <var title="">result</var> called "<code title="">items</code>" whose value is the array <var title="">items</var>.</li>
+
+ <li><p>Return the result of serializing <var title="">result</var>
+ to JSON in the shortest possible way (meaning no whitespace between
+ tokens, no unnecessary zero digits in numbers, and only using
+ Unicode escapes in strings for characters that do not have a
+ dedicated escape sequence), and with a lowercase "<code title="">e</code>" used, when appropriate, in the representation of
+ any numbers. <a href=#refsJSON>[JSON]</a></li>
+
+ </ol><p class=note>This algorithm returns an object with a single
+ property that is an array, instead of just returning an array, so
+ that it is possible to extend the algorithm in the future if
+ necessary.</p>
+
+ <p>When the user agent is to <dfn id=get-the-object>get the object</dfn> for an item
+ <var title="">item</var>, optionally with a list of elements <var title="">memory</var>, it must run the following substeps:</p>
+
+ <ol><li><p>Let <var title="">result</var> be an empty object.</li>
+
+ <li><p>Add <var title="">item</var> to <var title="">memory</var>.</li>
+
+ <li><p>If the <var title="">item</var> has an <a href=#item-type>item
+ type</a>, add an entry to <var title="">result</var> called
+ "<code title="">type</code>" whose value is the <a href=#item-type>item
+ type</a> of <var title="">item</var>.</li>
+
+ <li><p>If the <var title="">item</var> has a <a href=#global-identifier>global
+ identifier</a>, add an entry to <var title="">result</var>
+ called "<code title="">id</code>" whose value is the <a href=#global-identifier>global
+ identifier</a> of <var title="">item</var>.</li>
+
+ <li><p>Let <var title="">properties</var> be an empty
+ object.</li>
+
+ <li>
+
+ <p>For each element <var title="">element</var> that has one or
+ more <a href=#property-names>property names</a> and is one of <a href=#the-properties-of-an-item title="the
+ properties of an item">the properties of the item</a> <var title="">item</var>, in the order those elements are given by the
+ algorithm that returns <a href=#the-properties-of-an-item>the properties of an item</a>, run
+ the following substeps:</p>
+
+ <ol><li><p>Let <var title="">value</var> be the <a href=#concept-property-value title=concept-property-value>property value</a> of <var title="">element</var>.</li>
+
+ <li><p>If <var title="">value</var> is an <a href=#concept-item title=concept-item>item</a>, then: If <var title="">value</var> is in <var title="">memory</var>, then let
+ <var title="">value</var> be the string "<code title="">ERROR</code>". Otherwise, <a href=#get-the-object>get the object</a>
+ for <var title="">value</var>, passing a copy of <var title="">memory</var>, and then replace <var title="">value</var>
+ with the object returned from those steps.</li>
+
+ <li>
+
+ <p>For each name <var title="">name</var> in <var title="">element</var>'s <a href=#property-names>property names</a>, run the
+ following substeps:</p>
+
+ <ol><li><p>If there is no entry named <var title="">name</var> in
+ <var title="">properties</var>, then add an entry named <var title="">name</var> to <var title="">properties</var> whose
+ value is an empty array.</li>
+
+ <li><p>Append <var title="">value</var> to the entry named <var title="">name</var> in <var title="">properties</var>.</li>
+
+ </ol></li>
+
+ </ol></li>
+
+ <li><p>Add an entry to <var title="">result</var> called "<code title="">properties</code>" whose value is the object <var title="">properties</var>.</li>
+
+ <li><p>Return <var title="">result</var>.</li>
+
+ </ol></div><!--data-component-->
+
+
+
+
+ <div data-component="other Hixie drafts (editor: Ian Hickson)">
+
+ <h4 id=atom><span class=secno>5.5.2 </span>Atom</h4>
+
+ <p>Given a <code><a href=#document>Document</a></code> <var title="">source</var>, a user
+ agent may run the following algorithm to <dfn id=extracting-atom title="extracting
+ Atom">extract an Atom feed</dfn>. This is not the only algorithm
+ that can be used for this purpose; for instance, a user agent might
+ instead use the hAtom algorithm. <a href=#refsHATOM>[HATOM]</a></p>
+
+ <ol><li><p>If the <code><a href=#document>Document</a></code> <var title="">source</var> does
+ not contain any <code><a href=#the-article-element>article</a></code> elements, then return nothing
+ and abort these steps. This algorithm can only be used with
+ documents that contain distinct articles.</p>
+
+ <li><p>Let <var title="">R</var> be an empty <a href=#xml-documents title="XML
+ documents">XML</a> <code><a href=#document>Document</a></code> object whose <a href="#the-document's-address" title="the document's address">address</a> is user-agent
+ defined.</li>
+
+ <li><p>Append a <code title="">feed</code> element in the
+ <a href=#atom-namespace>Atom namespace</a> to <var title="">R</var>.</li>
+
+ <li>
+
+ <p>For each <code><a href=#the-meta-element>meta</a></code> element with a <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute and a <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute and whose <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute's value is <code title=meta-author><a href=#meta-author>author</a></code>, run the following substeps:</p>
+
+ <ol><li><p>Append an <code title="">author</code> element in the
+ <a href=#atom-namespace>Atom namespace</a> to the root element of <var title="">R</var>.</li>
+
+ <li><p>Append a <code title="">name</code> element in the
+ <a href=#atom-namespace>Atom namespace</a> to the element created in the
+ previous step.</p>
+
+ <li><p>Append a text node whose data is the value of the
+ <code><a href=#the-meta-element>meta</a></code> element's <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute to the element
+ created in the previous step.</li>
+
+ </ol><!-- could use vCards instead, and get <atom:email> and <atom:uri>
+ elements out of this instead of just <atom:name> --></li>
+
+ <li>
+
+ <p>If there is a <code><a href=#the-link-element>link</a></code> element with a <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code> attribute, and <a href=#split-a-string-on-spaces title="split
+ a string on spaces">splitting on spaces</a> the value of that
+ attribute results in a list which has at least one token that is
+ an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title=rel-icon><a href=#rel-icon>icon</a></code>", and that element also has an <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute whose value
+ successfully <a href=#resolve-a-url title="resolve a url">resolves</a> relative
+ to the <code><a href=#the-link-element>link</a></code> element, then append an <code title="">icon</code> element in the <a href=#atom-namespace>Atom namespace</a> to
+ the root element of <var title="">R</var> whose contents is a text
+ node with its data set to the <a href=#absolute-url>absolute URL</a> resulting
+ from <a href=#resolve-a-url title="resolve a url">resolving</a> the value of the
+ <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute of the first
+ such <code><a href=#the-link-element>link</a></code> element.</p>
+
+ <!-- could check ratio, could check type... -->
+
+ </li>
+
+ <li>
+
+ <p>Append an <code title="">id</code> element in the <a href=#atom-namespace>Atom
+ namespace</a> to the root element of <var title="">R</var>
+ whose contents is a text node with its data set to <a href="#the-document's-current-address">the
+ document's current address</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Optionally: Let <var title="">x</var> be a <code title="">link</code> element in the <a href=#atom-namespace>Atom
+ namespace</a>. Add a <code title="">rel</code> attribute whose
+ value is the string "<code title="">self</code>" to <var title="">x</var>. Append a text node with its data set to the
+ (user-agent-defined) <a href="#the-document's-address" title="the document's
+ address">address</a> of <var title="">R</var> to <var title="">x</var>. Append <var title="">x</var> to the root element
+ of <var title="">R</var>.</p>
+
+ <p class=note>This step would be skipped when the document <var title="">R</var> has no convenient <a href="#the-document's-address" title="the document's
+ address">address</a>. The presence of the <code title="">rel="self"</code> link is a "should"-level requirement in
+ the Atom specification.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">x</var> be a <code title="">link</code>
+ element in the <a href=#atom-namespace>Atom namespace</a>. Add a <code title="">rel</code> attribute whose value is the string "<code title="">alternate</code>" to <var title="">x</var>. If the
+ document being converted is an <a href=#html-documents title="HTML documents">HTML
+ document</a>, add a <code title="">type</code> attribute whose
+ value is the string "<code><a href=#text/html>text/html</a></code>" to <var title="">x</var>. Otherwise, the document being converted is an
+ <a href=#xml-documents title="XML documents">XML document</a>; add a <code title="">type</code> attribute whose value is the string
+ "<code><a href=#application/xhtml+xml>application/xhtml+xml</a></code>" to <var title="">x</var>. Add
+ an <code title="">href</code> attribute whose value is <a href="#the-document's-current-address">the
+ document's current address</a> to <var title="">x</var>. Append
+ <var title="">x</var> to the root element of <var title="">R</var>.</p>
+
+ </li>
+
+ <li><p>Let <var title="">subheading content</var> be an empty
+ list.</li>
+
+ <li><p>Let <var title="">heading</var> be the first element of
+ <a href=#heading-content>heading content</a> whose nearest ancestor element that is
+ a <a href=#sectioning-root>sectioning root</a> or that is <a href=#sectioning-content>sectioning
+ content</a> is <a href=#the-body-element-0>the body element</a>, if any, or null if
+ there is none.</li>
+
+ <li>
+
+ <p>Take the appropriate action from the following list, as
+ determined by the type of the <var title="">heading</var>
+ element:</p>
+
+ <dl><dt>If <var title="">heading</var> is null</dt>
+
+ <dd>
+
+ <p>Let <var title="">heading content</var> be the descendants of
+ <a href=#the-title-element-0>the <code>title</code> element</a>, if there is one, or
+ an empty list otherwise.</p>
+
+ </dd>
+
+ <dt>If <var title="">heading</var> is a <code><a href=#the-hgroup-element>hgroup</a></code> element</dt>
+
+ <dd>
+
+ <p>If <var title="">heading</var> contains no child
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> elements, let <var title="">heading content</var> be an empty list.</p>
+
+ <p>Otherwise, let <var title="">headings list</var> be a list of
+ all the <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> element children
+ of <var title="">heading</var>, sorted first by descending
+ <a href=#rank>rank</a> and then in <a href=#tree-order>tree order</a> (so
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>s first, then <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>s, etc, with each
+ group in the order they appear in the document). Then, let <var title="">heading content</var> be the descendants of the first
+ entry in <var title="">headings list</var>, and if there are
+ multiple entries, let <var title="">subheading content</var> be
+ the descendants of the second entry in <var title="">headings
+ list</var>.</p>
+
+ </dd>
+
+ <dt>If <var title="">heading</var> is an <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> element</dt>
+
+ <dd>
+
+ <p>Let <var title="">heading content</var> be the descendants of
+ <var title="">heading</var>.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li>
+
+ <p><a href=#concept-node-clone title=concept-node-clone>Clone</a> the nodes in <var title="">heading content</var> and their descendants into an
+ environment that has <a href=#concept-bc-noscript title=concept-bc-noscript>scripting
+ disabled</a>, has no <a href=#plugin title=plugin>plugins</a>, and
+ fails any attempt to <a href=#fetch title=fetch>fetch</a> any
+ resources. Let <var title="">cloned heading content</var> be a new
+ <code><a href=#documentfragment>DocumentFragment</a></code> containing the resulting cloned
+ nodes, preserving their relative order.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the document being converted is an <a href=#html-documents title="HTML
+ documents">HTML document</a>, then: Let <var title="">x</var>
+ be a <code title="">title</code> element in the <a href=#atom-namespace>Atom
+ namespace</a>. Add a <code title="">type</code> attribute whose
+ value is the string "<code title="">html</code>" to <var title="">x</var>. Append a text node with its data set to the
+ result of running the <a href=#html-fragment-serialization-algorithm>HTML fragment serialization
+ algorithm</a> on <var title="">cloned heading content</var> to
+ <var title="">x</var>. Append <var title="">x</var> to the root
+ element of <var title="">R</var>.</p>
+
+ <p>Otherwise, the document being converted is an <a href=#xml-documents title="XML
+ documents">XML document</a>: Let <var title="">x</var> be a
+ <code title="">title</code> element in the <a href=#atom-namespace>Atom
+ namespace</a>. Add a <code title="">type</code> attribute whose
+ value is the string "<code title="">xhtml</code>" to <var title="">x</var>. Append a <code><a href=#the-div-element>div</a></code> element to <var title="">x</var>. Move all the child nodes of the <var title="">cloned heading content</var> node to that
+ <code><a href=#the-div-element>div</a></code> element, preserving their relative order. Append
+ <var title="">x</var> to the root element of <var title="">R</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">subheading content</var> is not an empty list,
+ run these substeps:</p>
+
+ <ol><li>
+
+ <p><a href=#concept-node-clone title=concept-node-clone>Clone</a> the nodes in
+ <var title="">subheading content</var> and their descendants
+ into an environment that has <a href=#concept-bc-noscript title=concept-bc-noscript>scripting disabled</a>, has no
+ <a href=#plugin title=plugin>plugins</a>, and fails any attempt to
+ <a href=#fetch title=fetch>fetch</a> any resources. Let <var title="">cloned subheading content</var> be a new
+ <code><a href=#documentfragment>DocumentFragment</a></code> containing the resulting cloned
+ nodes, preserving their relative order.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the document being converted is an <a href=#html-documents title="HTML
+ documents">HTML document</a>, then: Let <var title="">x</var>
+ be a <code title="">subtitle</code> element in the <a href=#atom-namespace>Atom
+ namespace</a>. Add a <code title="">type</code> attribute
+ whose value is the string "<code title="">html</code>" to <var title="">x</var>. Append a text node with its data set to the
+ result of running the <a href=#html-fragment-serialization-algorithm>HTML fragment serialization
+ algorithm</a> on <var title="">cloned subheading
+ content</var> to <var title="">x</var>. Append <var title="">x</var> to the root element of <var title="">R</var>.</p>
+
+ <p>Otherwise, the document being converted is an <a href=#xml-documents title="XML documents">XML document</a>: Let <var title="">x</var> be a <code title="">subtitle</code> element in
+ the <a href=#atom-namespace>Atom namespace</a>. Add a <code title="">type</code> attribute whose value is the string "<code title="">xhtml</code>" to <var title="">x</var>. Append a
+ <code><a href=#the-div-element>div</a></code> element to <var title="">x</var>. Move all the
+ child nodes of the <var title="">cloned subheading content</var>
+ node to that <code><a href=#the-div-element>div</a></code> element, preserving their relative
+ order. Append <var title="">x</var> to the root element of <var title="">R</var>.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li><p>Let <var title="">global update date</var> have no
+ value.</li>
+
+ <li>
+
+ <p>For each <code><a href=#the-article-element>article</a></code> element <var title="">article</var> that does not have an ancestor
+ <code><a href=#the-article-element>article</a></code> element, run the following steps:</p>
+
+ <ol><li><p>Let <var title="">E</var> be an <code title="">entry</code> element in the <a href=#atom-namespace>Atom namespace</a>,
+ and append <var title="">E</var> to the root element of <var title="">R</var>.</li>
+
+ <li>
+
+ <p>Set the <code title=attr-xml-base><a href=#the-xml:base-attribute-(xml-only)>xml:base</a></code> attribute
+ of <var title="">E</var> to the <i>base URI of the element</i>
+ <var title="">article</var>, as defined by the XML Base
+ specification, with <i>the base URI of the document entity</i>
+ being defined as the <a href=#document-base-url>document base URL</a> of the
+ <code><a href=#document>Document</a></code> <var title="">source</var>. <a href=#refsXMLBASE>[XMLBASE]</a></p>
+
+ <p>For the purposes of the XML Base specification, user agents
+ must act as if all <code><a href=#document>Document</a></code> objects represented XML
+ documents.</p>
+
+ </li>
+
+ <li><p>Let <var title="">heading</var> be the first element of
+ <a href=#heading-content>heading content</a> whose nearest ancestor of
+ <a href=#sectioning-content>sectioning content</a> is <var title="">article</var>,
+ if any, or null if there is none.</li>
+
+ <li>
+
+ <p>Take the appropriate action from the following list, as
+ determined by the type of the <var title="">heading</var>
+ element:</p>
+
+ <dl><dt>If <var title="">heading</var> is null</dt>
+
+ <dd>
+
+ <p>Let <var title="">heading content</var> be an empty
+ list.</p>
+
+ </dd>
+
+ <dt>If <var title="">heading</var> is a <code><a href=#the-hgroup-element>hgroup</a></code> element</dt>
+
+ <dd>
+
+ <p>If <var title="">heading</var> contains no child
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> elements, let <var title="">heading content</var> be an empty list.</p>
+
+ <p>Otherwise, let <var title="">headings list</var> be a list
+ of all the <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> element
+ children of <var title="">heading</var>, sorted first by
+ descending <a href=#rank>rank</a> and then in <a href=#tree-order>tree
+ order</a> (so <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>s first, then
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>s, etc, with each group in the order they
+ appear in the document). Then, let <var title="">heading
+ content</var> be the descendants of the first entry in <var title="">headings list</var>.</p>
+
+ </dd>
+
+ <dt>If <var title="">heading</var> is an <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> element</dt>
+
+ <dd>
+
+ <p>Let <var title="">heading content</var> be the descendants
+ of <var title="">heading</var>.</p>
+
+ </dd>
+
+ </dl><p class=note>This algorithm differs from the earlier similar
+ algorithm in that it doesn't extract subheadings from
+ <code><a href=#the-hgroup-element>hgroup</a></code> and it has no default fallback when <var title="">heading</var> is null.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#concept-node-clone title=concept-node-clone>Clone</a> the nodes in
+ <var title="">heading content</var> and their descendants into
+ an environment that has <a href=#concept-bc-noscript title=concept-bc-noscript>scripting disabled</a>, has no
+ <a href=#plugin title=plugin>plugins</a>, and fails any attempt to
+ <a href=#fetch title=fetch>fetch</a> any resources. Let <var title="">cloned heading content</var> be a new
+ <code><a href=#documentfragment>DocumentFragment</a></code> containing the resulting cloned
+ nodes, preserving their relative order.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the document being converted is an <a href=#html-documents title="HTML
+ documents">HTML document</a>, then: Let <var title="">x</var>
+ be a <code title="">title</code> element in the <a href=#atom-namespace>Atom
+ namespace</a>. Add a <code title="">type</code> attribute
+ whose value is the string "<code title="">html</code>" to <var title="">x</var>. Append a text node with its data set to the
+ result of running the <a href=#html-fragment-serialization-algorithm>HTML fragment serialization
+ algorithm</a> on <var title="">cloned heading content</var>
+ to <var title="">x</var>. Append <var title="">x</var> to <var title="">E</var>.</p>
+
+ <p>Otherwise, the document being converted is an <a href=#xml-documents title="XML documents">XML document</a>: Let <var title="">x</var> be a <code title="">title</code> element in the
+ <a href=#atom-namespace>Atom namespace</a>. Add a <code title="">type</code>
+ attribute whose value is the string "<code title="">xhtml</code>" to <var title="">x</var>. Append a
+ <code><a href=#the-div-element>div</a></code> element to <var title="">x</var>. Move all the
+ child nodes of the <var title="">cloned heading content</var>
+ node to that <code><a href=#the-div-element>div</a></code> element, preserving their relative
+ order. Append <var title="">x</var> to <var title="">E</var>.</p>
+
+ </li>
+
+ <!-- <atom:author> is required either at the feed level (above)
+ or the entry level (here) but we don't provide it here -->
+
+ <li>
+
+ <p><a href=#concept-node-clone title=concept-node-clone>Clone</a> <var title="">article</var> and its descendants into an environment
+ that has <a href=#concept-bc-noscript title=concept-bc-noscript>scripting
+ disabled</a>, has no <a href=#plugin title=plugin>plugins</a>, and
+ fails any attempt to <a href=#fetch title=fetch>fetch</a> any
+ resources. Let <var title="">cloned article</var> be the
+ resulting clone <code><a href=#the-article-element>article</a></code> element.</p>
+
+ </li>
+
+ <li>
+
+ <p>Find in the subtree rooted at <var title="">cloned
+ article</var> all the <code><a href=#the-article-element>article</a></code> elements other than
+ the <var title="">cloned article</var> itself, all the
+ <code><a href=#the-header-element>header</a></code>, <code><a href=#the-footer-element>footer</a></code>, and <code><a href=#the-nav-element>nav</a></code>
+ elements whose nearest ancestor of <a href=#sectioning-content>sectioning
+ content</a> is the <var title="">cloned article</var>, and
+ the first element of <a href=#heading-content>heading content</a> whose nearest
+ ancestor of <a href=#sectioning-content>sectioning content</a> is the <var title="">cloned article</var>, if any, and remove them all.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">cloned article</var> contains any
+ <code><a href=#the-ins-element>ins</a></code> or <code><a href=#the-del-element>del</a></code> elements with <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code> attributes whose
+ values <a href=#parse-a-global-date-and-time-string title="parse a global date and time string">parse
+ as global date and time strings</a> without errors, then let
+ <var title="">update date</var> be the value of the <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code> attribute that parses
+ to the newest <a href=#concept-datetime title=concept-datetime>global date and
+ time</a>.</p>
+
+ <p>Otherwise, let <var title="">update date</var> have no
+ value.</p>
+
+ <p class=note>This value is used below; it is calculated here
+ because in certain cases the next step mutates the <var title="">cloned article</var>.</p>
+
+ <p class=note>Any <code><a href=#the-ins-element>ins</a></code> or <code><a href=#the-del-element>del</a></code>
+ elements whose <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code>
+ attributes have values that are just <a href=#valid-date-string title="valid date
+ string">valid date strings</a> (i.e. that have no time
+ component) are ignored for the purposes of finding the update
+ time of an entry.</p> <!-- because atom needs a time, as far as
+ I can tell -->
+
+ </li>
+
+ <li>
+
+ <p>If the document being converted is an <a href=#html-documents title="HTML
+ documents">HTML document</a>, then: Let <var title="">x</var>
+ be a <code title="">content</code> element in the <a href=#atom-namespace>Atom
+ namespace</a>. Add a <code title="">type</code> attribute
+ whose value is the string "<code title="">html</code>" to <var title="">x</var>. Append a text node with its data set to the
+ result of running the <a href=#html-fragment-serialization-algorithm>HTML fragment serialization
+ algorithm</a> on <var title="">cloned article</var> to <var title="">x</var>. Append <var title="">x</var> to <var title="">E</var>.</p>
+
+ <p>Otherwise, the document being converted is an <a href=#xml-documents title="XML documents">XML document</a>: Let <var title="">x</var> be a <code title="">content</code> element in
+ the <a href=#atom-namespace>Atom namespace</a>. Add a <code title="">type</code> attribute whose value is the string "<code title="">xhtml</code>" to <var title="">x</var>. Append a
+ <code><a href=#the-div-element>div</a></code> element to <var title="">x</var>. Move all the
+ child nodes of the <var title="">cloned article</var> node to
+ that <code><a href=#the-div-element>div</a></code> element, preserving their relative
+ order. Append <var title="">x</var> to <var title="">E</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Establish the value of <var title="">id</var> and <var title="">has-alternate</var> from the first of the following to
+ apply:</p>
+
+ <dl><dt>If the <var title="">article</var> node has a descendant
+ <code><a href=#the-a-element>a</a></code> or <code><a href=#the-area-element>area</a></code> element with an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute that
+ successfully <a href=#resolve-a-url title="resolve a url">resolves</a>
+ relative to that descendant and a <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> attribute, and <a href=#split-a-string-on-spaces title="split a string on spaces">splitting on spaces</a> the
+ value of that attribute results in a list which has at least
+ one token that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match
+ for the string "<code title=rel-bookmark><a href=#link-type-bookmark>bookmark</a></code>"</dt>
+
+ <dd>Let <var title="">id</var> be the <a href=#absolute-url>absolute URL</a>
+ resulting from <a href=#resolve-a-url title="resolve a url">resolving</a> the
+ value of the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>
+ attribute of the first such <code><a href=#the-a-element>a</a></code> or <code><a href=#the-area-element>area</a></code>
+ element, relative to the element. Let <var title="">has-alternate</var> be true.</dd>
+
+ <dt>If the <var title="">article</var> node has an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute</dt>
+
+ <dd>Let <var title="">id</var> be <a href="#the-document's-current-address">the document's current
+ address</a>, with the fragment identifier (if any) removed,
+ and with a new fragment identifier specified, consisting of the
+ value of the <var title="">article</var> element's <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute. Let <var title="">has-alternate</var> be false.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>Let <var title="">id</var> be a user-agent-defined
+ undereferenceable yet globally unique <a href=#valid-url title="valid
+ URL">valid</a> <a href=#absolute-url>absolute URL</a>. The same
+ <a href=#absolute-url>absolute URL</a> should be generated for each run of
+ this algorithm when given the same input. Let <var title="">has-alternate</var> be false.</dd>
+
+ </dl></li>
+
+ <li>
+
+ <p>Append an <code title="">id</code> element in the <a href=#atom-namespace>Atom
+ namespace</a> to <var title="">E</var> whose contents is a
+ text node with its data set to <var title="">id</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">has-alternate</var> is true: Let <var title="">x</var> be a <code title="">link</code> element in the
+ <a href=#atom-namespace>Atom namespace</a>. Add a <code title="">rel</code>
+ attribute whose value is the string "<code title="">alternate</code>" to <var title="">x</var>. Add an
+ <code title="">href</code> attribute whose value is <var title="">id</var> to <var title="">x</var>. Append <var title="">x</var> to <var title="">E</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">article</var> has a <code><a href=#the-time-element>time</a></code>
+ element descendant that has a <code title=attr-time-pubdate><a href=#attr-time-pubdate>pubdate</a></code> attribute and whose
+ nearest ancestor <code><a href=#the-article-element>article</a></code> element is <var title="">article</var>, and the first such element's <a href=#concept-time-date title=concept-time-date>date</a> is not unknown, then run
+ the following substeps, with <var title="">e</var> being the
+ first such element:</p>
+
+ <ol><li><p>Let <var title="">datetime</var> be a <a href=#concept-datetime title=concept-datetime>global date and time</a> whose date
+ component is the <a href=#concept-time-date title=concept-time-date>date</a> of
+ <var title="">e</var>.</li>
+
+ <li><p>If <var title="">e</var>'s <a href=#concept-time-time title=concept-time-time>time</a> and <a href=#concept-time-timezone title=concept-time-timezone>time-zone offset</a> are not
+ unknown, then let <var title="">datetime</var>'s time and
+ time-zone offset components be the <a href=#concept-time-time title=concept-time-time>time</a> and <a href=#concept-time-timezone title=concept-time-timezone>time-zone offset</a> of <var title="">e</var>. Otherwise, let them be midnight and no offset
+ respectively ("<code title="">00:00Z</code>").</li>
+
+ <li><p>Let <var title="">publication date</var> be the
+ <a href=#best-representation-of-the-global-date-and-time-string>best representation of the global date and time
+ string</a> <var title="">datetime</var>.</li>
+
+ </ol><p>Otherwise, let <var title="">publication date</var> have no
+ value.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">update date</var> has no value but <var title="">publication date</var> does, then let <var title="">update date</var> have the value of <var title="">publication date</var>.</p>
+
+ <p>Otherwise, if <var title="">publication date</var> has no
+ value but <var title="">update date</var> does, then let <var title="">publication date</var> have the value of <var title="">update date</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">update date</var> has a value, and <var title="">global update date</var> has no value or is less recent
+ than <var title="">update date</var>, then let <var title="">global update date</var> have the value of <var title="">update date</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">fallback date</var> be the <a href=#concept-datetime title=concept-datetime>global date and time</a> of the
+ moment that this algorithm was invoked, with a resolution of one
+ second (i.e. not including a fractional second component).</p>
+
+ <p>If <var title="">publication date</var> and <var title="">update date</var> both still have no value, then let
+ them both have a value that is the <a href=#best-representation-of-the-global-date-and-time-string>best representation of
+ the global date and time string</a> <var title="">fallback
+ date</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Append a <code title="">published</code> element in the
+ <a href=#atom-namespace>Atom namespace</a> to <var title="">E</var> whose
+ contents is a text node with its data set to <var title="">publication date</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Append an <code title="">updated</code> element in the
+ <a href=#atom-namespace>Atom namespace</a> to <var title="">E</var> whose
+ contents is a text node with its data set to <var title="">update date</var>.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li>
+
+ <p>If <var title="">global update date</var> has no value, then
+ let it have a value that is a <a href=#valid-global-date-and-time-string>valid global date and time
+ string</a> representing the <a href=#concept-datetime title=concept-datetime>global date and time</a> of the date
+ and time of the <code><a href=#document>Document</a></code>'s source file's last
+ modification, if it is known, or else of the moment that this
+ algorithm was invoked.</p>
+
+ </li>
+
+ <li>
+
+ <p>Insert an <code title="">updated</code> element in the
+ <a href=#atom-namespace>Atom namespace</a> into the root element of <var title="">R</var> before the first <code title="">entry</code> in
+ the <a href=#atom-namespace>Atom namespace</a> whose contents is a text node with
+ its data set to <var title="">global update date</var>.</p>
+
+ </li>
+
+ <li><p>Return the Atom document <var title="">R</var>.</li>
+
+ </ol><p class=note>The above algorithm does not guarantee that the
+ output will be a conforming Atom feed. In particular, if
+ insufficient information is provided in the document (e.g. if the
+ document does not have any <code title="">&lt;meta name="author"
+ content="..."&gt;</code> elements), then the output will not be
+ conforming.</p>
+
+ <p>The <dfn id=atom-namespace>Atom namespace</dfn> is: <code>http://www.w3.org/2005/Atom</code></p>
+
+ </div>
+
+<!--MD-->
+
+
+ </div>
+
+
+
+
+
+ <h2 id=browsers><span class=secno>6 </span>Loading Web pages</h2>
+
+ <div class=impl>
+
+ <p>This section describes features that apply most directly to Web
+ browsers. Having said that, except where specified otherwise, the
+ requirements defined in this section <em>do</em> apply to all user
+ agents, whether they are Web browsers or not.</p>
+
+ </div>
+
+
+
+ <h3 id=windows><span class=secno>6.1 </span>Browsing contexts</h3>
+
+ <p>A <dfn id=browsing-context>browsing context</dfn> is an environment in which
+ <code><a href=#document>Document</a></code> objects are presented to the user.</p>
+
+ <p class=note>A tab or window in a Web browser typically contains
+ a <a href=#browsing-context>browsing context</a>, as does an <code><a href=#the-iframe-element>iframe</a></code><span class=impl> or <code><a href=#frame>frame</a></code>s in a
+ <code><a href=#frameset>frameset</a></code></span>.</p>
+
+ <p>Each <a href=#browsing-context>browsing context</a> has a corresponding
+ <code><a href=#windowproxy>WindowProxy</a></code> object.</p>
+
+ <p>A <a href=#browsing-context>browsing context</a> has a <a href=#session-history>session
+ history</a>, which lists the <code><a href=#document>Document</a></code> objects that
+ that <a href=#browsing-context>browsing context</a> has presented, is presenting, or
+ will present. At any time, one <code><a href=#document>Document</a></code> in each
+ <a href=#browsing-context>browsing context</a> is designated the <dfn id=active-document>active
+ document</dfn>.</p>
+
+ <p>Each <code><a href=#document>Document</a></code> is associated with a
+ <code><a href=#window>Window</a></code> object. A <a href=#browsing-context>browsing context</a>'s
+ <code><a href=#windowproxy>WindowProxy</a></code> object forwards everything to the
+ <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active document</a>'s
+ <code><a href=#window>Window</a></code> object.</p>
+
+ <p class=note>In general, there is a 1-to-1 mapping from the
+ <code><a href=#window>Window</a></code> object to the <code><a href=#document>Document</a></code> object.
+ There are two exceptions. First, a <code><a href=#window>Window</a></code> can be reused
+ for the presentation of a second <code><a href=#document>Document</a></code> in the same
+ <a href=#browsing-context>browsing context</a>, such that the mapping is then 2-to-1.
+ This occurs when a <a href=#browsing-context>browsing context</a> is <a href=#navigate title=navigate>navigated</a> from the initial
+ <code><a href=#about:blank>about:blank</a></code> <code><a href=#document>Document</a></code> to another, with
+ <a href=#replacement-enabled>replacement enabled</a>. Second, a <code><a href=#document>Document</a></code>
+ can end up being reused for several <code><a href=#window>Window</a></code> objects when
+ the <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code> method is
+ used, such that the mapping is then 1-to-many.</p>
+
+ <p class=note>A <code><a href=#document>Document</a></code> does not necessarily have a
+ <a href=#browsing-context>browsing context</a> associated with it. In particular,
+ data mining tools are likely to never instantiate browsing
+ contexts.</p>
+
+ <hr><p>A <a href=#browsing-context>browsing context</a> can have a <dfn id=creator-browsing-context>creator browsing
+ context</dfn>, the <a href=#browsing-context>browsing context</a> that was
+ responsible for its creation. If a <a href=#browsing-context>browsing context</a> has
+ a <a href=#parent-browsing-context>parent browsing context</a>, then that is its
+ <a href=#creator-browsing-context>creator browsing context</a>. Otherwise, if the
+ <a href=#browsing-context>browsing context</a> has an <a href=#opener-browsing-context>opener browsing
+ context</a>, then <em>that</em> is its <a href=#creator-browsing-context>creator browsing
+ context</a>. Otherwise, the <a href=#browsing-context>browsing context</a> has no
+ <a href=#creator-browsing-context>creator browsing context</a>.</p>
+
+ <p>If a <a href=#browsing-context>browsing context</a> <var title="">A</var> has a
+ <a href=#creator-browsing-context>creator browsing context</a>, then the
+ <code><a href=#document>Document</a></code> that was the <a href=#active-document>active document</a> of
+ that <a href=#creator-browsing-context>creator browsing context</a> at the time <var title="">A</var> was created is the <dfn id=creator-document>creator
+ <code>Document</code></dfn>.</p>
+
+ <div class=impl>
+
+ <p>When a <a href=#browsing-context>browsing context</a> is first created, it must be
+ created with a single <code><a href=#document>Document</a></code> in its session history,
+ whose <a href="#the-document's-address" title="the document's address">address</a> is
+ <code><a href=#about:blank>about:blank</a></code>, which is marked as being an <a href=#html-documents title="HTML documents">HTML document</a>, and whose <a href="#document's-character-encoding" title="document's character encoding">character encoding</a> is
+ UTF-8. The <code><a href=#document>Document</a></code> must have a single child
+ <code><a href=#the-html-element>html</a></code> node, which itself has a single child
+ <code><a href=#the-body-element>body</a></code> node.</p>
+
+ <p class=note>If the <a href=#browsing-context>browsing context</a> is created
+ specifically to be immediately navigated, then that initial
+ navigation will have <a href=#replacement-enabled>replacement enabled</a>.</p>
+
+ <p id=about-blank-origin>The <a href=#origin>origin</a> of the
+ <code><a href=#about:blank>about:blank</a></code> <code><a href=#document>Document</a></code> is set when the
+ <code><a href=#document>Document</a></code> is created. If the new <a href=#browsing-context>browsing
+ context</a> has a <a href=#creator-browsing-context>creator browsing context</a>, then the
+ <a href=#origin>origin</a> of the <code><a href=#about:blank>about:blank</a></code>
+ <code><a href=#document>Document</a></code> is the <a href=#origin>origin</a> of the
+ <a href=#creator-document>creator <code>Document</code></a>. Otherwise, the
+ <a href=#origin>origin</a> of the <code><a href=#about:blank>about:blank</a></code>
+ <code><a href=#document>Document</a></code> is a globally unique identifier assigned when
+ the new <a href=#browsing-context>browsing context</a> is created.</p>
+
+ </div>
+
+
+ <h4 id=nested-browsing-contexts><span class=secno>6.1.1 </span>Nested browsing contexts</h4>
+
+ <p>Certain elements (for example, <code><a href=#the-iframe-element>iframe</a></code> elements) can
+ instantiate further <a href=#browsing-context title="browsing context">browsing
+ contexts</a>. These are called <dfn id=nested-browsing-context title="nested browsing
+ context">nested browsing contexts</dfn>. If a browsing context <var title="">P</var> has a <code><a href=#document>Document</a></code>s <var title="">D</var>
+ with an element <var title="">E</var> that nests another browsing
+ context <var title="">C</var> inside it, then <var title="">C</var>
+ is said to be <dfn id=browsing-context-nested-through title="browsing context nested through">nested
+ through</dfn> <var title="">D</var>, and <var title="">E</var> is
+ said to be the <dfn id=browsing-context-container>browsing context container</dfn> of <var title="">C</var>. If the <a href=#browsing-context-container>browsing context container</a>
+ element <var title="">E</var> is <a href=#in-a-document title="in a
+ Document">in</a> the <code><a href=#document>Document</a></code> <var title="">D</var>,
+ then <var title="">P</var> is said to be the <dfn id=parent-browsing-context>parent browsing
+ context</dfn> of <var title="">C</var> and <var title="">C</var> is
+ said to be a <dfn id=child-browsing-context>child browsing context</dfn> of <var title="">P</var>. Otherwise, the <a href=#nested-browsing-context>nested browsing
+ context</a> <var title="">C</var> has no <a href=#parent-browsing-context>parent browsing
+ context</a>.</p>
+
+ <p>A browsing context <var title="">A</var> is said to be an <dfn id=ancestor-browsing-context title="ancestor browsing context">ancestor</dfn> of a browsing
+ context <var title="">B</var> if there exists a browsing context
+ <var title="">A'</var> that is a <a href=#child-browsing-context>child browsing context</a>
+ of <var title="">A</var> and that is itself an <a href=#ancestor-browsing-context title="ancestor
+ browsing context">ancestor</a> of <var title="">B</var>, or if
+ there is a browsing context <var title="">P</var> that is a
+ <a href=#child-browsing-context>child browsing context</a> of <var title="">A</var> and
+ that is the <a href=#parent-browsing-context>parent browsing context</a> of <var title="">B</var>.</p>
+
+ <p>A browsing context that is not a <a href=#nested-browsing-context>nested browsing
+ context</a> has no <a href=#parent-browsing-context>parent browsing context</a>, and is
+ the <dfn id=top-level-browsing-context>top-level browsing context</dfn> of all the browsing
+ contexts for which it is an <a href=#ancestor-browsing-context>ancestor browsing
+ context</a>.</p>
+
+ <p>The transitive closure of <a href=#parent-browsing-context title="parent browsing
+ context">parent browsing contexts</a> for a <a href=#nested-browsing-context>nested browsing
+ context</a> gives the list of <a href=#ancestor-browsing-context title="ancestor browsing
+ context">ancestor browsing contexts</a>.</p>
+
+ <p>The <dfn id=list-of-the-descendant-browsing-contexts>list of the descendant browsing contexts</dfn> of a
+ <code><a href=#document>Document</a></code> <var title="">d</var> is the (ordered) list
+ returned by the following algorithm:</p>
+
+ <ol><li><p>Let <var title="">list</var> be an empty list.</li>
+
+ <li>
+
+ <p>For each <a href=#child-browsing-context>child browsing context</a> of <var title="">d</var> that is <a href=#browsing-context-nested-through title="browsing context nested
+ through">nested through</a> an element that is <a href=#in-a-document title="in
+ a document">in the <code>Document</code></a> <var title="">d</var>, in the <a href=#tree-order>tree order</a> of the elements
+ nesting those <a href=#browsing-context title="browsing context">browsing
+ contexts</a>, run these substeps:</p>
+
+ <ol><li><p>Append that <a href=#child-browsing-context>child browsing context</a> to the
+ list <var title="">list</var>.</p>
+
+ <li><p>Append the <a href=#list-of-the-descendant-browsing-contexts>list of the descendant browsing
+ contexts</a> of the <a href=#active-document>active document</a> of that
+ <a href=#child-browsing-context>child browsing context</a> to the list <var title="">list</var>.</li>
+
+ </ol></li>
+
+ <li><p>Return the constructed <var title="">list</var>.</li>
+
+ </ol><p>A <code><a href=#document>Document</a></code> is said to be <dfn id=fully-active>fully active</dfn>
+ when it is the <a href=#active-document>active document</a> of its <a href=#browsing-context>browsing
+ context</a>, and either its browsing context is a <a href=#top-level-browsing-context>top-level
+ browsing context</a>, or it has a <a href=#parent-browsing-context>parent browsing
+ context</a> and the <code><a href=#document>Document</a></code> <a href=#browsing-context-nested-through title="browsing
+ context nested through">through which</a> it is <a href=#nested-browsing-context title="nested browsing context">nested</a> is itself <a href=#fully-active>fully
+ active</a>.</p>
+
+ <p>Because they are nested through an element, <a href=#child-browsing-context title="child
+ browsing context">child browsing contexts</a> are always tied to
+ a specific <code><a href=#document>Document</a></code> in their <a href=#parent-browsing-context>parent browsing
+ context</a>. User agents must not allow the user to interact with
+ <a href=#child-browsing-context title="child browsing context">child browsing contexts</a>
+ of elements that are in <code><a href=#document>Document</a></code>s that are not
+ themselves <a href=#fully-active>fully active</a>.</p>
+
+ <p>A <a href=#nested-browsing-context>nested browsing context</a> can have a <a href=#seamless-browsing-context-flag>seamless
+ browsing context flag</a> set, if it is embedded through an
+ <code><a href=#the-iframe-element>iframe</a></code> element with a <code title=attr-iframe-seamless><a href=#attr-iframe-seamless>seamless</a></code> attribute.</p>
+
+ <p class=note>A <a href=#nested-browsing-context>nested browsing context</a> can in some
+ cases be taken out of its <a href=#parent-browsing-context>parent browsing context</a> (e.g.
+ if an <code><a href=#the-iframe-element>iframe</a></code> element is removed from its
+ <code><a href=#document>Document</a></code>). In such a situation, the <a href=#nested-browsing-context>nested
+ browsing context</a> has no <a href=#parent-browsing-context>parent browsing context</a>,
+ but it still has the same <a href=#browsing-context-container>browsing context container</a>
+ and is still <a href=#browsing-context-nested-through title="browsing context nested through">nested
+ through</a> that element's <code><a href=#document>Document</a></code>. Such a
+ <a href=#nested-browsing-context>nested browsing context</a> is <em>not</em> a
+ <a href=#top-level-browsing-context>top-level browsing context</a>, and cannot contain
+ <code><a href=#document>Document</a></code>s that are <a href=#fully-active>fully active</a>.
+ Furthermore, if a <a href=#browsing-context-container>browsing context container</a> (such as
+ an <code><a href=#the-iframe-element>iframe</a></code>) is moved to another <code><a href=#document>Document</a></code>,
+ then the <a href=#parent-browsing-context>parent browsing context</a> of its <a href=#nested-browsing-context>nested
+ browsing context</a> will change.</p>
+
+
+ <h5 id=navigating-nested-browsing-contexts-in-the-dom><span class=secno>6.1.1.1 </span>Navigating nested browsing contexts in the DOM</h5>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-top><a href=#dom-top>top</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#windowproxy>WindowProxy</a></code> for the <a href=#top-level-browsing-context>top-level browsing context</a>.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-parent><a href=#dom-parent>parent</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#windowproxy>WindowProxy</a></code> for the <a href=#parent-browsing-context>parent browsing context</a>.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-frameElement><a href=#dom-frameelement>frameElement</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#element>Element</a></code> for the <a href=#browsing-context-container>browsing context container</a>.</p>
+
+ <p>Returns null if there isn't one.</p>
+
+ <p>Throws a <code><a href=#securityerror>SecurityError</a></code> exception in cross-origin situations.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-top title=dom-top><code>top</code></dfn> IDL attribute on
+ the <code><a href=#window>Window</a></code> object of a <code><a href=#document>Document</a></code> in a
+ <a href=#browsing-context>browsing context</a> <var title="">b</var> must return the
+ <code><a href=#windowproxy>WindowProxy</a></code> object of its <a href=#top-level-browsing-context>top-level browsing
+ context</a> (which would be its own <code><a href=#windowproxy>WindowProxy</a></code>
+ object if it was a <a href=#top-level-browsing-context>top-level browsing context</a> itself),
+ if it has one, or its own <code><a href=#windowproxy>WindowProxy</a></code> object otherwise
+ (e.g. if it was a detached <a href=#nested-browsing-context>nested browsing
+ context</a>).</p>
+
+ <p>The <dfn id=dom-parent title=dom-parent><code>parent</code></dfn> IDL
+ attribute on the <code><a href=#window>Window</a></code> object of a
+ <code><a href=#document>Document</a></code> in a <a href=#browsing-context>browsing context</a> <var title="">b</var> must return the <code><a href=#windowproxy>WindowProxy</a></code> object of
+ the <a href=#parent-browsing-context>parent browsing context</a>, if there is one (i.e. if
+ <var title="">b</var> is a <a href=#child-browsing-context>child browsing context</a>), or
+ the <code><a href=#windowproxy>WindowProxy</a></code> object of the <a href=#browsing-context>browsing
+ context</a> <var title="">b</var> itself, otherwise (i.e. if it
+ is a <a href=#top-level-browsing-context>top-level browsing context</a> or a detached
+ <a href=#nested-browsing-context>nested browsing context</a>).</p>
+
+ <p>The <dfn id=dom-frameelement title=dom-frameElement><code>frameElement</code></dfn>
+ IDL attribute on the <code><a href=#window>Window</a></code> object of a
+ <code><a href=#document>Document</a></code> <var title="">d</var>, on getting, must run
+ the following algorithm:</p>
+
+ <ol><li><p>If <var title="">d</var> is not a <code><a href=#document>Document</a></code> in a
+ <a href=#nested-browsing-context>nested browsing context</a>, return null and abort these
+ steps.</li>
+
+ <li><p>If the <a href=#browsing-context-container>browsing context container</a>'s
+ <code><a href=#document>Document</a></code> does not have the <a href=#same-origin title="same
+ origin">same</a> <a href=#effective-script-origin>effective script origin</a> as the
+ <a href=#entry-script>entry script</a>, then throw a <code><a href=#securityerror>SecurityError</a></code>
+ exception.</li>
+
+ <li><p>Otherwise, return the <a href=#browsing-context-container>browsing context
+ container</a> for <var title="">b</var>.</li>
+
+ </ol></div>
+
+
+
+ <h4 id=auxiliary-browsing-contexts><span class=secno>6.1.2 </span>Auxiliary browsing contexts</h4>
+
+ <p>It is possible to create new browsing contexts that are related
+ to a <a href=#top-level-browsing-context>top-level browsing context</a> without being nested
+ through an element. Such browsing contexts are called <dfn id=auxiliary-browsing-context title="auxiliary browsing context">auxiliary browsing
+ contexts</dfn>. Auxiliary browsing contexts are always <a href=#top-level-browsing-context title="top-level browsing context">top-level browsing
+ contexts</a>.</p>
+
+ <p>An <a href=#auxiliary-browsing-context>auxiliary browsing context</a> has an <dfn id=opener-browsing-context>opener
+ browsing context</dfn>, which is the <a href=#browsing-context>browsing context</a>
+ from which the <a href=#auxiliary-browsing-context>auxiliary browsing context</a> was
+ created.</p>
+
+
+ <h5 id=navigating-auxiliary-browsing-contexts-in-the-dom><span class=secno>6.1.2.1 </span>Navigating auxiliary browsing contexts in the DOM</h5>
+
+ <p>The <dfn id=dom-opener title=dom-opener><code>opener</code></dfn> IDL
+ attribute on the <code><a href=#window>Window</a></code> object, on getting, must return
+ the <code><a href=#windowproxy>WindowProxy</a></code> object of the <a href=#browsing-context>browsing
+ context</a> from which the current <a href=#browsing-context>browsing context</a>
+ was created (its <a href=#opener-browsing-context>opener browsing context</a>), if there is
+ one, if it is still available, and if the current <a href=#browsing-context>browsing
+ context</a> has not <i><a href=#disowned-its-opener>disowned its opener</a></i>. On setting, if
+ the new value is null then the current <a href=#browsing-context>browsing context</a>
+ must <dfn id=disowned-its-opener title="disowned its opener">disown its opener</dfn>; if
+ the new value is anything else then the user agent must ignore the
+ new value.</p>
+
+
+
+ <h4 id=secondary-browsing-contexts><span class=secno>6.1.3 </span>Secondary browsing contexts</h4>
+
+ <!-- This section only exists for the purpose of defining
+ rel=sidebar, which was dropped due to wg decision in
+ http://www.w3.org/Bugs/Public/show_bug.cgi?id=11183
+ and then moved to the wiki -->
+
+ <p>User agents may support <dfn id=secondary-browsing-context title="secondary browsing
+ context">secondary browsing contexts</dfn>, which are <a href=#browsing-context title="browsing context">browsing contexts</a> that form part of
+ the user agent's interface, apart from the main content area.</p>
+
+
+ <div class=impl>
+
+ <h4 id=security-nav><span class=secno>6.1.4 </span>Security</h4>
+
+ <p id=security-1>A <a href=#browsing-context>browsing context</a> <var title="">A</var> is <dfn id=allowed-to-navigate>allowed to navigate</dfn> a second
+ <a href=#browsing-context>browsing context</a> <var title="">B</var> if one of the
+ following conditions is true:</p>
+
+ <ul><li>Either the <a href=#origin>origin</a> of the <a href=#active-document>active
+ document</a> of <var title="">A</var> is the <a href=#same-origin title="same
+ origin">same</a> as the <a href=#origin>origin</a> of the <a href=#active-document>active
+ document</a> of <var title="">B</var>, or</li>
+
+ <li>The browsing context <var title="">A</var> is a <a href=#nested-browsing-context>nested
+ browsing context</a> with a <a href=#top-level-browsing-context>top-level browsing
+ context</a>, and its <a href=#top-level-browsing-context>top-level browsing context</a> is
+ <var title="">B</var>, or</li>
+
+ <li>The browsing context <var title="">B</var> is an
+ <a href=#auxiliary-browsing-context>auxiliary browsing context</a> and <var title="">A</var>
+ is <a href=#allowed-to-navigate>allowed to navigate</a> <var title="">B</var>'s
+ <a href=#opener-browsing-context>opener browsing context</a>, or</li>
+
+ <li>The browsing context <var title="">B</var> is not a
+ <a href=#top-level-browsing-context>top-level browsing context</a>, but there exists an
+ <a href=#ancestor-browsing-context>ancestor browsing context</a> of <var title="">B</var>
+ whose <a href=#active-document>active document</a> has the <a href=#same-origin title="same
+ origin">same</a> <a href=#origin>origin</a> as the <a href=#active-document>active
+ document</a> of <var title="">A</var> (possibly in fact being
+ <var title="">A</var> itself).</li>
+
+ </ul><hr><p>An element has a <dfn id=browsing-context-scope-origin>browsing context scope origin</dfn> if its
+ <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> is a
+ <a href=#top-level-browsing-context>top-level browsing context</a> or if all of its
+ <code><a href=#document>Document</a></code>'s <a href=#ancestor-browsing-context title="ancestor browsing
+ context">ancestor browsing contexts</a> all have <a href=#active-document title="active document">active documents</a> whose
+ <a href=#origin>origin</a> are the <a href=#same-origin>same origin</a> as the
+ element's <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a>. If an element
+ has a <a href=#browsing-context-scope-origin>browsing context scope origin</a>, then its value is
+ the <a href=#origin>origin</a> of the element's <code><a href=#document>Document</a></code>.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=groupings-of-browsing-contexts><span class=secno>6.1.5 </span>Groupings of browsing contexts</h4>
+
+ <p>Each <a href=#browsing-context>browsing context</a> is defined as having a list of
+ one or more <dfn id=directly-reachable-browsing-contexts>directly reachable browsing contexts</dfn>. These
+ are:</p>
+
+ <ul><li>The <a href=#browsing-context>browsing context</a> itself.</li>
+
+ <li>All the <a href=#browsing-context>browsing context</a>'s <a href=#child-browsing-context title="child
+ browsing context">child browsing contexts</a>.</li>
+
+ <li>The <a href=#browsing-context>browsing context</a>'s <a href=#parent-browsing-context>parent browsing
+ context</a>.</li>
+
+ <li>All the <a href=#browsing-context title="browsing context">browsing contexts</a>
+ that have the <a href=#browsing-context>browsing context</a> as their <a href=#opener-browsing-context>opener
+ browsing context</a>.</li>
+
+ <li>The <a href=#browsing-context>browsing context</a>'s <a href=#opener-browsing-context>opener browsing
+ context</a>.</li>
+
+ </ul><p>The transitive closure of all the <a href=#browsing-context title="browsing
+ context">browsing contexts</a> that are <a href=#directly-reachable-browsing-contexts>directly reachable
+ browsing contexts</a> forms a <dfn id=unit-of-related-browsing-contexts>unit of related browsing
+ contexts</dfn>.</p>
+
+ <p>Each <a href=#unit-of-related-browsing-contexts>unit of related browsing contexts</a> is then
+ further divided into the smallest number of groups such that every
+ member of each group has an <a href=#active-document>active document</a> with an
+ <a href=#effective-script-origin>effective script origin</a> that, through appropriate
+ manipulation of the <code title=dom-document-domain><a href=#dom-document-domain>document.domain</a></code> attribute, could
+ be made to be the same as other members of the group, but could not
+ be made the same as members of any other group. Each such group is a
+ <dfn id=unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</dfn>.</p>
+
+ <p>Each <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing
+ contexts</a> can have a <dfn id=entry-script>entry script</dfn> which is used to
+ obtain, amongst other things, the <a href="#script's-base-url">script's base URL</a> to
+ <a href=#resolve-a-url title="resolve a url">resolve</a> relative <a href=#url title=URL>URLs</a> used in scripts running in that <a href=#unit-of-related-similar-origin-browsing-contexts>unit
+ of related similar-origin browsing contexts</a>. Initially, there
+ is no <a href=#entry-script>entry script</a>. It is changed by the <a href=#jump-to-a-code-entry-point>jump to
+ a code entry-point</a> algorithm.</p>
+
+ <p class=note>There is at most one <a href=#event-loop>event loop</a> per
+ <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</a>.</p>
+
+ </div>
+
+
+
+ <h4 id=browsing-context-names><span class=secno>6.1.6 </span>Browsing context names</h4>
+
+ <p>Browsing contexts can have a <dfn id=browsing-context-name>browsing context name</dfn>. By
+ default, a browsing context has no name (its name is not set).</p>
+
+ <p>A <dfn id=valid-browsing-context-name>valid browsing context name</dfn> is any string with at
+ least one character that does not start with a U+005F LOW LINE
+ character. (Names starting with an underscore are reserved for
+ special keywords.)</p>
+
+ <p>A <dfn id=valid-browsing-context-name-or-keyword>valid browsing context name or keyword</dfn> is any string
+ that is either a <a href=#valid-browsing-context-name>valid browsing context name</a> or that is
+ an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for one of: <code title="">_blank</code>, <code title="">_self</code>, <code title="">_parent</code>, or <code title="">_top</code>.</p>
+
+ <p>These values have different meanings based on whether the page is
+ sandboxed or not, as summarized in the following (non-normative)
+ table. In this table, "current" means the <a href=#browsing-context>browsing
+ context</a> that the link or script is in, "parent" means the
+ <a href=#parent-browsing-context>parent browsing context</a> of the one the link or script
+ is in, "master" means the nearest <a href=#ancestor-browsing-context>ancestor browsing
+ context</a> of the one the link or script is in that is not
+ itself in a <a href=#attr-iframe-seamless title=attr-iframe-seamless>seamless
+ iframe</a>, "top" means the <a href=#top-level-browsing-context>top-level browsing
+ context</a> of the one the link or script is in, "new" means a
+ new <a href=#top-level-browsing-context>top-level browsing context</a> or <a href=#auxiliary-browsing-context>auxiliary
+ browsing context</a> is to be created, subject to various user
+ preferences and user agent policies, "maybe new" means the same as
+ "new" but the requirements for those cases encourage user agents to
+ treat it more like "none", and "none" means that by default nothing
+ will happen.</p>
+
+ <table><thead><tr><th rowspan=2>Keyword
+ <th rowspan=2>Ordinary effect
+ <th colspan=5>Effect in an <code><a href=#the-iframe-element>iframe</a></code> with...
+ <tr><!-- nothing --><th><code title="">seamless=""</code>
+ <th><code title="">sandbox=""</code>
+ <th><code title="">sandbox="" seamless=""</code>
+ <th><code title="">sandbox="allow-top-navigation"</code>
+ <th><code title="">sandbox="allow-top-navigation" seamless=""</code>
+
+ <tbody><tr><td>none specified, for links and form submissions <!-- same as empty string -->
+ <td>current
+ <td>master
+ <td>current
+ <td>master
+ <td>current
+ <td>master
+
+ <tr><td>none specified, for <code title=dom-open><a href=#dom-open>window.open()</a></code> <!-- same as _blank -->
+ <td>new
+ <td>new
+ <td>maybe new&dagger;
+ <td>maybe new&dagger;
+ <td>maybe new&dagger;
+ <td>maybe new&dagger;
+
+ <tr><td>empty string
+ <td>current
+ <td>master
+ <td>current
+ <td>master
+ <td>current
+ <td>master
+
+ <tr><td><code title="">_blank</code>
+ <td>new
+ <td>new
+ <td>maybe new
+ <td>maybe new
+ <td>maybe new
+ <td>maybe new
+
+ <tr><td><code title="">_self</code>
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+
+ <tr><td><code title="">_parent</code> if there isn't a parent
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+
+ <tr><td><code title="">_parent</code> if parent is also top
+ <td>parent/top
+ <td>parent/top
+ <td>none
+ <td>none
+ <td>parent/top
+ <td>parent/top
+
+ <tr><td><code title="">_parent</code> if there is one and it's not top
+ <td>parent
+ <td>parent
+ <td>none
+ <td>none
+ <td>none
+ <td>none
+
+ <tr><td><code title="">_top</code> if top is current
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+
+ <tr><td><code title="">_top</code> if top is not current
+ <td>top
+ <td>top
+ <td>none
+ <td>none
+ <td>top
+ <td>top
+
+ <tr><td>name that doesn't exist
+ <td>new
+ <td>new
+ <td>maybe new
+ <td>maybe new
+ <td>maybe new
+ <td>maybe new
+
+ <tr><td>name that exists and is a descendant
+ <td>specified descendant
+ <td>specified descendant
+ <td>specified descendant
+ <td>specified descendant
+ <td>specified descendant
+ <td>specified descendant
+
+ <tr><td>name that exists and is current
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+ <td>current
+
+ <tr><td>name that exists and is a ancestor that is top
+ <td>specified ancestor
+ <td>specified ancestor
+ <td>none
+ <td>none
+ <td>specified ancestor/top
+ <td>specified ancestor/top
+
+ <tr><td>name that exists and is a ancestor that is not top
+ <td>specified ancestor
+ <td>specified ancestor
+ <td>none
+ <td>none
+ <td>none
+ <td>none
+
+ </table><p><small>&dagger; This case is only possible if the <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code> attribute also allows
+ scripts.</small></p>
+
+ <div class=impl>
+
+ <p><dfn id=the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>The rules for choosing a browsing context given a browsing
+ context name</dfn> are as follows. The rules assume that they are
+ being applied in the context of a <a href=#browsing-context>browsing context</a>.</p>
+
+ <ol><li>
+
+ <p>If the given browsing context name is the empty string or <code title="">_self</code>, then the chosen browsing context must be
+ the current one.</p>
+
+ <p>If the given browsing context name is <code title="">_self</code>, then this is an <dfn id=explicit-self-navigation-override>explicit
+ self-navigation override</dfn>, which overrides the behavior of
+ the <a href=#seamless-browsing-context-flag>seamless browsing context flag</a> set by the <code title=attr-iframe-seamless><a href=#attr-iframe-seamless>seamless</a></code> attribute on
+ <code><a href=#the-iframe-element>iframe</a></code> elements.</p>
+
+ </li>
+
+ <li><p>If the given browsing context name is <code title="">_parent</code>, then the chosen browsing context must be
+ the <a href=#parent-browsing-context><em>parent</em> browsing context</a> of the current
+ one, unless there isn't one, in which case the chosen browsing
+ context must be the current browsing context.</li>
+
+ <li><p>If the given browsing context name is <code title="">_top</code>, then the chosen browsing context must be the
+ <a href=#top-level-browsing-context>top-level browsing context</a> of the current one, if
+ there is one, or else the current browsing context.</li>
+
+ <li>
+
+ <p>If the given browsing context name is not <code title="">_blank</code> and there exists a browsing context whose
+ <a href=#browsing-context-name title="browsing context name">name</a> is the same as the
+ given browsing context name, and the current browsing context is
+ <a href=#allowed-to-navigate>allowed to navigate</a> that browsing context, and the
+ user agent determines that the two browsing contexts are related
+ enough that it is ok if they reach each other, then that browsing
+ context must be the chosen one. If there are multiple matching
+ browsing contexts, the user agent should select one in some
+ arbitrary consistent manner, such as the most recently opened,
+ most recently focused, or more closely related.</p>
+
+ <p>If the browsing context is chosen by this step to be the
+ current browsing context, then this is also an <a href=#explicit-self-navigation-override>explicit
+ self-navigation override</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Otherwise, a new browsing context is being requested, and what
+ happens depends on the user agent's configuration and/or abilities
+ &mdash; it is determined by the rules given for the first
+ applicable option from the following list:</p>
+
+ <dl class=switch><dt id=sandboxWindowOpen>If the current browsing context had
+ the <a href=#sandboxed-navigation-browsing-context-flag>sandboxed navigation browsing context flag</a> set
+ when its <a href=#active-document>active document</a> was created.</dt>
+
+ <dd><p>The user agent may offer to create a new <a href=#top-level-browsing-context>top-level
+ browsing context</a> or reuse an existing <a href=#top-level-browsing-context>top-level
+ browsing context</a>. If the user picks one of those options,
+ then the designated browsing context must be the chosen one (the
+ browsing context's name isn't set to the given browsing context
+ name). The default behaviour (if the user agent doesn't offer the
+ option to the user, or if the user declines to allow a browsing
+ context to be used) there must not be a chosen browsing
+ context.</dd>
+
+
+ <dt id=noopener>If the user agent has been configured such that
+ in this instance it will create a new browsing context, and the
+ browsing context is being requested as part of <a href=#following-hyperlinks title="following hyperlinks">following a hyperlink</a> whose
+ <a href=#linkTypes>link types</a> include the <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword</dt>
+
+ <dd><p>A new <a href=#top-level-browsing-context>top-level browsing context</a> must be
+ created. If the given browsing context name is not <code title="">_blank</code>, then the new top-level browsing context's
+ name must be the given browsing context name (otherwise, it has
+ no name). The chosen browsing context must be this new browsing
+ context.</p>
+
+ <p class=note>If it is immediately <a href=#navigate title=navigate>navigated</a>, then the navigation will be
+ done with <a href=#replacement-enabled>replacement enabled</a>.</dd>
+
+
+ <dt>If the user agent has been configured such that in this
+ instance it will create a new browsing context, and the <code title=rel-noreferrer><a href=#link-type-noreferrer>noreferrer</a></code> keyword doesn't
+ apply</dt>
+
+ <dd><p>A new <a href=#auxiliary-browsing-context>auxiliary browsing context</a> must be
+ created, with the <a href=#opener-browsing-context>opener browsing context</a> being the
+ current one. If the given browsing context name is not <code title="">_blank</code>, then the new auxiliary browsing context's
+ name must be the given browsing context name (otherwise, it has
+ no name). The chosen browsing context must be this new browsing
+ context.</p>
+
+ <p class=note>If it is immediately <a href=#navigate title=navigate>navigated</a>, then the navigation will be
+ done with <a href=#replacement-enabled>replacement enabled</a>.</dd>
+
+
+ <dt>If the user agent has been configured such that in this
+ instance it will reuse the current browsing context</dt>
+
+ <dd><p>The chosen browsing context is the current browsing
+ context.</dd>
+
+
+ <dt>If the user agent has been configured such that in this
+ instance it will not find a browsing context</dt>
+
+ <dd><p>There must not be a chosen browsing context.</dd>
+
+ </dl><p>User agent implementors are encouraged to provide a way for
+ users to configure the user agent to always reuse the current
+ browsing context.</p>
+
+ </li>
+
+ </ol></div>
+
+
+
+
+ <h3 id=the-window-object><span class=secno>6.2 </span>The <code><a href=#window>Window</a></code> object</h3>
+
+ <pre class=idl>[ReplaceableNamedProperties]
+interface <dfn id=window>Window</dfn> : <a href=#eventtarget>EventTarget</a> {
+ // the current browsing context
+ [Unforgeable] readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-window title=dom-window>window</a>;
+ [Replaceable] readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-self title=dom-self>self</a>;
+ [Unforgeable] readonly attribute <a href=#document>Document</a> <a href=#dom-document title=dom-document>document</a>;
+ attribute DOMString <a href=#dom-name title=dom-name>name</a>; <!-- not [Replaceable] per WebKit and IE8 -->
+ [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>, Unforgeable] readonly attribute <a href=#location>Location</a> <a href=#dom-location title=dom-location>location</a>;
+ readonly attribute <a href=#history-0>History</a> <a href=#dom-history title=dom-history>history</a>;
+<!--FIND-->
+ boolean <a href=#dom-find title=dom-find>find</a>(optional DOMString aString, optional boolean aCaseSensitive, optional boolean aBackwards, optional boolean aWrapAround, optional boolean aWholeWord, optional boolean aSearchInFrames, optional boolean aShowDialog);
+<!--FIND-->
+ [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-locationbar title=dom-window-locationbar>locationbar</a>;
+ [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-menubar title=dom-window-menubar>menubar</a>;
+ [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-personalbar title=dom-window-personalbar>personalbar</a>;
+ [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-scrollbars title=dom-window-scrollbars>scrollbars</a>;
+ [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-statusbar title=dom-window-statusbar>statusbar</a>;
+ [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-toolbar title=dom-window-toolbar>toolbar</a>;<!--
+ [Replaceable] readonly attribute <span>BarProp</span> <span title="dom-window-directories">directories</span>; // legacy (Gecko-only) -->
+ attribute DOMString <a href=#dom-window-status title=dom-window-status>status</a>;
+ void <a href=#dom-window-close title=dom-window-close>close</a>();
+ void <a href=#dom-window-stop title=dom-window-stop>stop</a>();
+ void <a href=#dom-window-focus title=dom-window-focus>focus</a>();
+ void <a href=#dom-window-blur title=dom-window-blur>blur</a>();
+
+ // other browsing contexts
+ [Replaceable] readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-frames title=dom-frames>frames</a>;
+ [Replaceable] readonly attribute unsigned long <a href=#dom-length title=dom-length>length</a>;
+ [Unforgeable] readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-top title=dom-top>top</a>;
+ attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-opener title=dom-opener>opener</a>;
+ readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-parent title=dom-parent>parent</a>;
+ readonly attribute <a href=#element>Element</a>? <a href=#dom-frameelement title=dom-frameElement>frameElement</a>;
+ <a href=#windowproxy>WindowProxy</a> <a href=#dom-open title=dom-open>open</a>(optional DOMString url, optional DOMString target, optional DOMString features, optional boolean replace);
+ <a href=#dom-window-item title=dom-window-item>getter</a> <a href=#windowproxy>WindowProxy</a> (unsigned long index);
+ <a href=#dom-window-nameditem title=dom-window-namedItem>getter</a> object (DOMString name);
+
+ // the user agent
+ readonly attribute <a href=#navigator>Navigator</a> <a href=#dom-navigator title=dom-navigator>navigator</a>; <!-- IE also has window.clientInformation === window.navigator -->
+ readonly attribute <a href=#external>External</a> <a href=#dom-external title=dom-external>external</a>;
+ readonly attribute <a href=#applicationcache>ApplicationCache</a> <a href=#dom-applicationcache title=dom-applicationCache>applicationCache</a>;
+
+ // user prompts
+ void <a href=#dom-alert title=dom-alert>alert</a>(DOMString message);
+ boolean <a href=#dom-confirm title=dom-confirm>confirm</a>(DOMString message);
+ DOMString? <a href=#dom-prompt title=dom-prompt>prompt</a>(DOMString message, optional DOMString default);
+ void <a href=#dom-print title=dom-print>print</a>();
+ any <a href=#dom-showmodaldialog title=dom-showModalDialog>showModalDialog</a>(DOMString url, optional any argument<!--, optional DOMString features-->);
+
+<!--POSTMSG--> // <a href=#web-messaging>cross-document messaging</a>
+ void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, DOMString targetOrigin, optional sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer);
+<!--POSTMSG-->
+ // <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplay title=handler-oncanplay>oncanplay</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>oncanplaythrough</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onchange title=handler-onchange>onchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onclick title=handler-onclick>onclick</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncontextmenu title=handler-oncontextmenu>oncontextmenu</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oncuechange title=handler-oncuechange>oncuechange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondblclick title=handler-ondblclick>ondblclick</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrag title=handler-ondrag>ondrag</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragend title=handler-ondragend>ondragend</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragenter title=handler-ondragenter>ondragenter</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragleave title=handler-ondragleave>ondragleave</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragover title=handler-ondragover>ondragover</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondragstart title=handler-ondragstart>ondragstart</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondrop title=handler-ondrop>ondrop</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ondurationchange title=handler-ondurationchange>ondurationchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onemptied title=handler-onemptied>onemptied</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onended title=handler-onended>onended</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninput title=handler-oninput>oninput</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-oninvalid title=handler-oninvalid>oninvalid</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeydown title=handler-onkeydown>onkeydown</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeypress title=handler-onkeypress>onkeypress</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onkeyup title=handler-onkeyup>onkeyup</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadeddata title=handler-onloadeddata>onloadeddata</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>onloadedmetadata</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onloadstart title=handler-onloadstart>onloadstart</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousedown title=handler-onmousedown>onmousedown</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousemove title=handler-onmousemove>onmousemove</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseout title=handler-onmouseout>onmouseout</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseover title=handler-onmouseover>onmouseover</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmouseup title=handler-onmouseup>onmouseup</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onmousewheel title=handler-onmousewheel>onmousewheel</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onpause title=handler-onpause>onpause</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplay title=handler-onplay>onplay</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onplaying title=handler-onplaying>onplaying</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onprogress title=handler-onprogress>onprogress</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onratechange title=handler-onratechange>onratechange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onreset title=handler-onreset>onreset</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onscroll title=handler-onscroll>onscroll</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeked title=handler-onseeked>onseeked</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onseeking title=handler-onseeking>onseeking</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onselect title=handler-onselect>onselect</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onshow title=handler-onshow>onshow</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onstalled title=handler-onstalled>onstalled</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsubmit title=handler-onsubmit>onsubmit</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onsuspend title=handler-onsuspend>onsuspend</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-ontimeupdate title=handler-ontimeupdate>ontimeupdate</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onvolumechange title=handler-onvolumechange>onvolumechange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onwaiting title=handler-onwaiting>onwaiting</a>;
+};</pre>
+
+<!-- for more features to add here, look here:
+ http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_window.asp
+ http://www.mozilla.org/docs/dom/domref/dom_window_ref.html
+ http://lxr.mozilla.org/mozilla/source/dom/public/idl/base/nsIDOMWindow.idl - scrollBy, etc
+ http://lxr.mozilla.org/mozilla/source/dom/public/idl/base/nsIDOMWindowInternal.idl - DOM level 0
+-->
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-window><a href=#dom-window>window</a></code></dt>
+ <dt><var title="">window</var> . <code title=dom-frames><a href=#dom-frames>frames</a></code></dt>
+ <dt><var title="">window</var> . <code title=dom-self><a href=#dom-self>self</a></code></dt>
+
+ <dd>
+
+ <p>These attributes all return <var title="">window</var>.</p>
+
+ </dd>
+
+
+ <dt><var title="">window</var> . <code title=dom-document><a href=#dom-document>document</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <a href=#active-document>active document</a>.</p>
+
+ </dd>
+
+
+ <dt><var title="">document</var> . <code title=dom-document-defaultView><a href=#dom-document-defaultview>defaultView</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#window>Window</a></code> object of the <a href=#active-document>active document</a>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-window title=dom-window><code>window</code></dfn>, <dfn id=dom-frames title=dom-frames><code>frames</code></dfn>, and <dfn id=dom-self title=dom-self><code>self</code></dfn> IDL attributes must all
+ return the <code><a href=#window>Window</a></code> object's <a href=#browsing-context>browsing
+ context</a>'s <code><a href=#windowproxy>WindowProxy</a></code> object.</p>
+
+ <p>The <dfn id=dom-document title=dom-document><code>document</code></dfn> IDL
+ attribute must return the <code><a href=#document>Document</a></code> object of the
+ <code><a href=#window>Window</a></code> object's <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing
+ context</a>'s <a href=#active-document>active document</a>.</p>
+
+ <p>The <dfn id=dom-document-defaultview title=dom-document-defaultView><code>defaultView</code></dfn> IDL
+ attribute of the <code><a href=#htmldocument>HTMLDocument</a></code> interface must return the
+ <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a>'s
+ <code><a href=#windowproxy>WindowProxy</a></code> object, if there is one, or null
+ otherwise.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=security-window><span class=secno>6.2.1 </span>Security</h4>
+
+ <p id=security-2>User agents must throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception whenever any properties of a
+ <code><a href=#window>Window</a></code> object are accessed by scripts whose
+ <a href=#effective-script-origin>effective script origin</a> is not the same as the
+ <code><a href=#window>Window</a></code> object's <code><a href=#document>Document</a></code>'s <a href=#effective-script-origin>effective
+ script origin</a>, with the following exceptions:</p>
+
+ <ul><li>The <code title=dom-location><a href=#dom-location>location</a></code> attribute
+
+ <li>The <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage()</a></code> method
+
+ <li>The <code title=dom-frames><a href=#dom-frames>frames</a></code> attribute
+
+ <li>The <a href=#dynamic-nested-browsing-context-properties>dynamic nested browsing context properties</a>
+
+ </ul><p>When a script whose <a href=#effective-script-origin>effective script origin</a> is not
+ the same as the <code><a href=#window>Window</a></code> object's <code><a href=#document>Document</a></code>'s
+ <a href=#effective-script-origin>effective script origin</a> attempts to access that
+ <code><a href=#window>Window</a></code> object's methods or attributes, the user agent
+ must act as if any changes to the <code><a href=#window>Window</a></code> object's
+ properties, getters, setters, etc, were not present.</p>
+
+ <p>For members that return objects (including function objects),
+ each distinct <a href=#effective-script-origin>effective script origin</a> that is not the
+ same as the <code><a href=#window>Window</a></code> object's <code><a href=#document>Document</a></code>'s
+ <a href=#effective-script-origin>effective script origin</a> must be provided with a
+ separate set of objects. These objects must have the prototype chain
+ appropriate for the script for which the objects are created (not
+ those that would be appropriate for scripts whose <a href="#script's-global-object">script's
+ global object</a> is the <code><a href=#window>Window</a></code> object in
+ question).</p>
+
+ <div class=example>
+
+ <p>For instance, if two frames containing <code><a href=#document>Document</a></code>s
+ from different <a href=#origin title=origin>origins</a> access the same
+ <code><a href=#window>Window</a></code> object's <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage()</a></code> method, they
+ will get distinct objects that are not equal.</p>
+
+ </div>
+
+ </div>
+
+
+
+ <h4 id=apis-for-creating-and-navigating-browsing-contexts-by-name><span class=secno>6.2.2 </span>APIs for creating and navigating browsing contexts by name</h4>
+
+ <dl class=domintro><dt><var title="">window</var> = <var title="">window</var> . <code title=dom-open><a href=#dom-open>open</a></code>( [ <var title="">url</var> [, <var title="">target</var> [, <var title="">features</var> [, <var title="">replace</var> ] ] ] ] )</dt>
+
+ <dd>
+
+ <p>Opens a window to show <var title="">url</var> (defaults to
+ <code><a href=#about:blank>about:blank</a></code>), and returns it. The <var title="">target</var> argument gives the name of the new
+ window. If a window exists with that name already, it is
+ reused. The <var title="">replace</var> attribute, if true, means
+ that whatever page is currently open in that window will be
+ removed from the window's session history. The <var title="">features</var> argument is ignored.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-name><a href=#dom-name>name</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the name of the window.</p>
+
+ <p>Can be set, to change the name.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-window-close><a href=#dom-window-close>close</a></code>()</dt>
+
+ <dd>
+
+ <p>Closes the window.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-window-stop><a href=#dom-window-stop>stop</a></code>()</dt>
+
+ <dd>
+
+ <p>Cancels the document load.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-open title=dom-open><code>open()</code></dfn> method on
+ <code><a href=#window>Window</a></code> objects provides a mechanism for <a href=#navigate title=navigate>navigating</a> an existing <a href=#browsing-context>browsing
+ context</a> or opening and navigating an <a href=#auxiliary-browsing-context>auxiliary browsing
+ context</a>.</p>
+
+ <p>The method has four arguments, though they are all optional.</p>
+
+ <p>The first argument, <var title="">url</var>, must be a
+ <a href=#valid-non-empty-url>valid non-empty URL</a> for a page to load in the browsing
+ context. If no arguments are provided, or if the first argument is
+ the empty string, then the <var title="">url</var> argument defaults
+ to "<code><a href=#about:blank>about:blank</a></code>". The argument must be <a href=#resolve-a-url title="resolve a url">resolved</a> to an <a href=#absolute-url>absolute
+ URL</a> (or an error), relative to the <a href=#entry-script>entry
+ script</a>'s <a href="#script's-base-url" title="script's base URL">base URL</a>,
+ when the method is invoked.</p>
+
+ <p>The second argument, <var title="">target</var>, specifies the
+ <a href=#browsing-context-name title="browsing context name">name</a> of the browsing
+ context that is to be navigated. It must be a <a href=#valid-browsing-context-name-or-keyword>valid browsing
+ context name or keyword</a>. If fewer than two arguments are
+ provided, then the <var title="">target</var> argument defaults to the
+ value "<code>_blank</code>".</p>
+
+ <p>The third argument, <var title="">features</var>, has no defined
+ effect and is mentioned for historical reasons only. User agents may
+ interpret this argument as instructions to set the size and position
+ of the browsing context, but are encouraged to instead ignore the
+ argument entirely.</p>
+
+ <p>The fourth argument, <var title="">replace</var>, specifies
+ whether or not the new page will <a href=#replacement-enabled title="replacement
+ enabled">replace</a> the page currently loaded in the browsing
+ context, when <var title="">target</var> identifies an existing
+ browsing context (as opposed to leaving the current page in the
+ browsing context's <a href=#session-history>session history</a>). When three or
+ fewer arguments are provided, <var title="">replace</var> defaults
+ to false.</p>
+
+ <p>When the method is invoked, the user agent must first select a
+ <a href=#browsing-context>browsing context</a> to navigate by applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the
+ rules for choosing a browsing context given a browsing context
+ name</a> using the <var title="">target</var> argument as the
+ name and the <a href=#browsing-context>browsing context</a> of the script as the
+ context in which the algorithm is executed, unless the user has
+ indicated a preference, in which case the browsing context to
+ navigate may instead be the one indicated by the user.</p>
+
+ <p class=example>For example, suppose there is a user agent that
+ supports control-clicking a link to open it in a new tab. If a user
+ clicks in that user agent on an element whose <code title=handler-onclick><a href=#handler-onclick>onclick</a></code> handler uses the <code title=dom-open><a href=#dom-open>window.open()</a></code> API to open a page in an
+ iframe, but, while doing so, holds the control key down, the user
+ agent could override the selection of the target browsing context to
+ instead target a new tab.</p>
+
+ <p>Then, if <var title="">url</var> is not
+ "<code><a href=#about:blank>about:blank</a></code>", the user agent must
+ <a href=#navigate>navigate</a><!--DONAV window.open()--> the selected
+ <a href=#browsing-context>browsing context</a> to the <a href=#absolute-url>absolute URL</a> (or
+ error) obtained from <a href=#resolve-a-url title="resolve a url">resolving</a>
+ <var title="">url</var> earlier. If the <var title="">replace</var>
+ is true or if the <a href=#browsing-context>browsing context</a> was just created as
+ part of <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a browsing context given a
+ browsing context name</a>, then <a href=#replacement-enabled title="replacement
+ enabled">replacement must be enabled</a>. The navigation must be
+ done with the <a href="#script's-browsing-context" title="script's browsing context">browsing
+ context</a> of the <a href=#entry-script>entry script</a> as the <a href=#source-browsing-context>source
+ browsing context</a>.</p>
+
+ <p>If <var title="">url</var> <em>is</em>
+ "<code><a href=#about:blank>about:blank</a></code>", the user agent must instead <a href=#queue-a-task>queue
+ a task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the selected <a href=#browsing-context>browsing
+ context</a>'s <code><a href=#window>Window</a></code> object, but with its <code title=dom-event-target><a href=#dom-event-target>target</a></code> set to the selected
+ <a href=#browsing-context>browsing context</a>'s <code><a href=#window>Window</a></code> object's
+ <code><a href=#document>Document</a></code> object (and the <code title=dom-event-currentTarget>currentTarget</code> set to the
+ <code><a href=#window>Window</a></code> object).</p>
+
+ <p>The method must return the <code><a href=#windowproxy>WindowProxy</a></code> object of the
+ <a href=#browsing-context>browsing context</a> that was navigated, or null if no
+ browsing context was navigated.</p>
+
+ <hr><p>The <dfn id=dom-name title=dom-name><code>name</code></dfn> attribute of
+ the <code><a href=#window>Window</a></code> object must, on getting, return the current
+ name of the <a href=#browsing-context>browsing context</a>, and, on setting, set the
+ name of the <a href=#browsing-context>browsing context</a> to the new value.</p>
+
+ <p class=note>The name <a href=#resetBCName>gets reset</a> when
+ the browsing context is navigated to another domain.</p>
+
+ <hr><p>The <dfn id=dom-window-close title=dom-window-close><code>close()</code></dfn>
+ method on <code><a href=#window>Window</a></code> objects should, if the corresponding
+ <a href=#browsing-context>browsing context</a> <var title="">A</var> is an
+ <a href=#auxiliary-browsing-context>auxiliary browsing context</a> that was created by a script
+ (as opposed to by an action of the user), and if the <a href="#script's-browsing-context" title="script's browsing context">browsing context</a> of the
+ <a href=#concept-script title=concept-script>script</a> that invokes the method
+ is <a href=#allowed-to-navigate>allowed to navigate</a> the <a href=#browsing-context>browsing
+ context</a> <var title="">A</var>, close the <a href=#browsing-context>browsing
+ context</a> <var title="">A</var> (and may <a href=#a-browsing-context-is-discarded title="a
+ browsing context is discarded">discard</a> it too).</p>
+
+ <p>The <dfn id=dom-window-stop title=dom-window-stop><code>stop()</code></dfn> method
+ on <code><a href=#window>Window</a></code> objects should, if there is an existing
+ attempt to <a href=#navigate>navigate</a> the <a href=#browsing-context>browsing context</a>
+ and that attempt is not currently running the <a href=#unload-a-document>unload a
+ document</a> algorithm, cancel that <a href=#navigate title=navigate>navigation</a> and any associated instances of
+ the <a href=#fetch title=fetch>fetch algorithm</a>. Otherwise, it must
+ do nothing.</p>
+
+ </div>
+
+
+ <h4 id=accessing-other-browsing-contexts><span class=secno>6.2.3 </span>Accessing other browsing contexts</h4>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-length><a href=#dom-length>length</a></code></dt>
+
+ <dd>
+
+ <p>Returns the number of <a href=#child-browsing-context title="child browsing
+ context">child browsing contexts</a>.</p>
+
+ </dd>
+
+ <dt><var title="">window</var>[<var title="">index</var>]</dt>
+
+ <dd>
+
+ <p>Returns the indicated <a href=#child-browsing-context>child browsing context</a>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-length title=dom-length><code>length</code></dfn> IDL
+ attribute on the <code><a href=#window>Window</a></code> interface must return the
+ number of <a href=#child-browsing-context title="child browsing context">child browsing
+ contexts</a> that are <a href=#browsing-context-nested-through title="browsing context nested
+ through">nested through</a> elements that are <a href=#in-a-document title="in a
+ document">in the <code>Document</code></a> that is the
+ <a href=#active-document>active document</a> of that <code><a href=#window>Window</a></code> object, if
+ that <code><a href=#window>Window</a></code>'s <a href=#browsing-context>browsing context</a> shares the
+ same <a href=#event-loop>event loop</a> as the <a href="#script's-browsing-context">script's browsing
+ context</a> of the <a href=#entry-script>entry script</a> accessing the IDL
+ attribute; otherwise, it must return zero.</p>
+
+ <!-- in other words, frames are only accessible to same-thread processes -->
+
+ <p>The <a href=#supported-property-indices>supported property indices</a> on the
+ <code><a href=#window>Window</a></code> object at any instant are the numbers in the
+ range 0 .. <span title=""><var title="">n</var>-1</span>, where <var title="">n</var> is the number returned by the <code title=dom-length><a href=#dom-length>length</a></code> IDL attribute. If <var title="">n</var> is zero then there are no <a href=#supported-property-indices>supported property
+ indices</a>.</p>
+
+ <p>To <dfn id=dom-window-item title=dom-window-item>determine the value of an indexed
+ property</dfn> <var title="">index</var> of a <code><a href=#window>Window</a></code>
+ object, the user agent must return the <code><a href=#windowproxy>WindowProxy</a></code>
+ object of the <var title="">index</var>th <a href=#child-browsing-context>child browsing
+ context</a> of the <code><a href=#document>Document</a></code> that is nested through
+ an element that is <a href=#in-a-document title="in a document">in the
+ <code>Document</code></a>, sorted in the <a href=#tree-order>tree order</a>
+ of the elements nesting those <a href=#browsing-context title="browsing
+ context">browsing contexts</a>.</p>
+
+ <p>These properties are the <dfn id=dynamic-nested-browsing-context-properties>dynamic nested browsing context
+ properties</dfn>.</p>
+
+ </div>
+
+
+
+ <h4 id=named-access-on-the-window-object><span class=secno>6.2.4 </span>Named access on the <code><a href=#window>Window</a></code> object</h4>
+
+ <dl class=domintro><dt><var title="">window</var>[<var title="">name</var>]</dt>
+
+ <dd>
+
+ <p>Returns the indicated element or collection of elements.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <code><a href=#window>Window</a></code> interface <span title="support named
+ properties">supports named properties</span>. The <a href=#supported-property-names>supported
+ property names</a> at any moment consist of:</p>
+
+ <ul><li>the value of the <code title="">name</code> content attribute
+ for all <code><a href=#the-a-element>a</a></code>, <code><a href=#the-applet-element>applet</a></code>, <code><a href=#the-area-element>area</a></code>,
+ <code><a href=#the-embed-element>embed</a></code>, <code><a href=#the-form-element>form</a></code>, <code><a href=#frame>frame</a></code>,
+ <code><a href=#frameset>frameset</a></code>, <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, and
+ <code><a href=#the-object-element>object</a></code> elements in the <a href=#active-document>active document</a>
+ that have a <code title="">name</code> content attribute, and</li>
+
+ <li>the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> content
+ attribute of any <a href=#html-elements title="HTML elements">HTML element</a> in
+ the <a href=#active-document>active document</a> with an <code title=attr-id><a href=#the-id-attribute>id</a></code> content attribute.</li>
+
+ </ul><p class=critical>It is possible that this will change. Browser
+ vendors are considering limiting this behaviour to <a href=#quirks-mode>quirks
+ mode</a>. <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=11960">Read
+ more...</a></p>
+
+ <p>To <a href=#determine-the-value-of-a-named-property>determine the value of a named property</a> <var title="">name</var> when <dfn id=dom-window-nameditem title=dom-window-namedItem>the
+ <code>Window</code> object is indexed for property retrieval</dfn>,
+ the user agent must return the value obtained using the following
+ steps:</p>
+
+ <ol><li>
+
+ <p>Let <var title="">elements</var> be the list of <a href=#dom-window-nameditem-filter title=dom-window-namedItem-filter>named elements</a> with the
+ name <var title="">name</var> in the <a href=#active-document>active document</a>.
+
+ <p class=note>There will be at least one such element, by
+ definition.<!-- (If there wasn't, then this algorithm wouldn't
+ have been invoked by Web IDL.) --></p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">elements</var> contains an <code><a href=#the-iframe-element>iframe</a></code>
+ element, then return the <code><a href=#windowproxy>WindowProxy</a></code> object of the
+ <a href=#nested-browsing-context>nested browsing context</a> represented by the first such
+ <code><a href=#the-iframe-element>iframe</a></code> element in <a href=#tree-order>tree order</a>, and abort
+ these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Otherwise, if <var title="">elements</var> has only one
+ element, return that element and abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Otherwise return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only <a href=#dom-window-nameditem-filter title=dom-window-namedItem-filter>named elements</a> with
+ the name <var title="">name</var>.</p> <!-- the same one each time
+ is returned, because of the rule under collections -->
+
+ </li>
+
+ </ol><p><dfn id=dom-window-nameditem-filter title=dom-window-nameditem-filter>Named elements</dfn>
+ with the name <var title="">name</var>, for the purposes of the
+ above algorithm, are those that are either:</p>
+
+ <ul><li><code><a href=#the-a-element>a</a></code>, <code><a href=#the-applet-element>applet</a></code>, <code><a href=#the-area-element>area</a></code>,
+ <code><a href=#the-embed-element>embed</a></code>, <code><a href=#the-form-element>form</a></code>, <code><a href=#frame>frame</a></code>,
+ <code><a href=#frameset>frameset</a></code>, <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, or
+ <code><a href=#the-object-element>object</a></code> elements that have a <code title=attr-name>name</code> content attribute whose value is <var title="">name</var>, or</li>
+
+ <li><a href=#html-elements>HTML elements</a> that have an <code title=attr-id><a href=#the-id-attribute>id</a></code> content attribute whose value is <var title="">name</var>.</li>
+
+ </ul></div>
+
+
+ <div class=impl>
+
+ <h4 id=garbage-collection-and-browsing-contexts><span class=secno>6.2.5 </span>Garbage collection and browsing contexts</h4>
+
+ <p>A <a href=#browsing-context>browsing context</a> has a strong reference to each of
+ its <code><a href=#document>Document</a></code>s and its <code><a href=#windowproxy>WindowProxy</a></code> object,
+ and the user agent itself has a strong reference to its <a href=#top-level-browsing-context title="top-level browsing context">top-level browsing
+ contexts</a>.</p>
+
+ <p>A <code><a href=#document>Document</a></code> has a strong reference to its
+ <code><a href=#window>Window</a></code> object.</p>
+
+ <p class=note>A <code><a href=#window>Window</a></code> object <a href=#implied-strong-reference title="implied
+ strong reference">has a strong reference</a> to its
+ <code><a href=#document>Document</a></code> object through its <code title=dom-document><a href=#dom-document>document</a></code> attribute. Thus, references
+ from other scripts to either of those objects will keep both
+ alive. Similarly, both <code><a href=#document>Document</a></code> and <code><a href=#window>Window</a></code>
+ objects have <a href=#implied-strong-reference title="implied strong reference">implied strong
+ references</a> to the <code><a href=#windowproxy>WindowProxy</a></code> object.</p>
+
+ <p>Each <a href=#concept-script title=concept-script>script</a> has a strong
+ reference to its <a href="#script's-browsing-context" title="script's browsing context">browsing
+ context</a> and its <a href="#script's-document" title="script's
+ document">document</a>.</p>
+
+ <!-- discard a document -->
+ <p>When a <a href=#browsing-context>browsing context</a> is to <dfn id=discard-a-document>discard a
+ <code>Document</code></dfn>, the user agent must run the following
+ steps:</p>
+
+ <ol><li><p>Set the <code><a href=#document>Document</a></code>'s <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state to
+ false.</li>
+
+ <li><p>Run any <a href=#unloading-document-cleanup-steps>unloading document cleanup steps</a> for
+ the <code><a href=#document>Document</a></code> that are defined by this specification
+ and <a href=#other-applicable-specifications>other applicable specifications</a>.</li>
+
+ <li><p><a href=#abort-a-document title="abort a document">Abort the
+ <code>Document</code></a>.</li>
+
+ <li><p>Remove any <a href=#concept-task title=concept-task>tasks</a>
+ associated with the <code><a href=#document>Document</a></code> in any <a href=#task-source>task
+ source</a>, without running those tasks.</li>
+
+ <li><p><a href=#a-browsing-context-is-discarded title="a browsing context is discarded">Discard</a>
+ all the <a href=#child-browsing-context title="child browsing context">child browsing
+ contexts</a> of the <code><a href=#document>Document</a></code>.</li>
+
+ <li><p>Lose the strong reference from the <code><a href=#document>Document</a></code>'s
+ <a href=#browsing-context>browsing context</a> to the
+ <code><a href=#document>Document</a></code>.</li>
+
+ </ol><p class=note>Whenever a <code><a href=#document>Document</a></code> object is <a href=#discard-a-document title="discard a Document">discarded</a>, it is also removed from
+ the list of <a href="#the-worker's-documents">the worker's <code>Document</code>s</a> of each
+ worker whose list contains that <code><a href=#document>Document</a></code>.</p>
+
+ <p>When <dfn id=a-browsing-context-is-discarded>a <em><span>browsing context</span></em> is
+ discarded</dfn>, the strong reference from the user agent itself to
+ the <a href=#browsing-context>browsing context</a> must be severed, and all the
+ <code><a href=#document>Document</a></code> objects for all the entries in the
+ <a href=#browsing-context>browsing context</a>'s session history must be <a href=#discard-a-document title="discard a document">discarded</a> as well.</p>
+
+ <p>User agents may <a href=#a-browsing-context-is-discarded title="a browsing context is
+ discarded">discard</a> <a href=#top-level-browsing-context title="top-level browsing
+ context">top-level browsing contexts</a> at any time (typically,
+ in response to user requests, e.g. when a user closes a window
+ containing one or more <a href=#top-level-browsing-context title="top-level browsing
+ context">top-level browsing contexts</a>). Other <a href=#browsing-context title="browsing context">browsing contexts</a> must be discarded
+ once their <code><a href=#windowproxy>WindowProxy</a></code> object is eligible for garbage
+ collection.</p>
+
+ </div>
+
+
+
+ <h4 id=browser-interface-elements><span class=secno>6.2.6 </span>Browser interface elements</h4>
+
+ <p>To allow Web pages to integrate with Web browsers, certain Web
+ browser interface elements are exposed in a limited way to scripts
+ in Web pages.</p>
+
+ <p>Each interface element is represented by a <code><a href=#barprop>BarProp</a></code>
+ object:</p>
+
+ <pre class=idl>interface <dfn id=barprop>BarProp</dfn> {
+ attribute boolean <a href=#dom-barprop-visible title=dom-BarProp-visible>visible</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-window-locationbar><a href=#dom-window-locationbar>locationbar</a></code> . <code title=dom-BarProp-visible><a href=#dom-barprop-visible>visible</a></code></dt>
+ <dd>
+ <p>Returns true if the location bar is visible; otherwise, returns false.</p>
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-window-menubar><a href=#dom-window-menubar>menubar</a></code> . <code title=dom-BarProp-visible><a href=#dom-barprop-visible>visible</a></code></dt>
+ <dd>
+ <p>Returns true if the menu bar is visible; otherwise, returns false.</p>
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-window-personalbar><a href=#dom-window-personalbar>personalbar</a></code> . <code title=dom-BarProp-visible><a href=#dom-barprop-visible>visible</a></code></dt>
+ <!--<dt><var title="">window</var> . <code title="dom-window-directories">directories</code> . <code title="dom-BarProp-visible">visible</code></dt>-->
+ <dd>
+ <p>Returns true if the personal bar is visible; otherwise, returns false.</p>
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-window-scrollbars><a href=#dom-window-scrollbars>scrollbars</a></code> . <code title=dom-BarProp-visible><a href=#dom-barprop-visible>visible</a></code></dt>
+ <dd>
+ <p>Returns true if the scroll bars are visible; otherwise, returns false.</p>
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-window-statusbar><a href=#dom-window-statusbar>statusbar</a></code> . <code title=dom-BarProp-visible><a href=#dom-barprop-visible>visible</a></code></dt>
+ <dd>
+ <p>Returns true if the status bar is visible; otherwise, returns false.</p>
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-window-toolbar><a href=#dom-window-toolbar>toolbar</a></code> . <code title=dom-BarProp-visible><a href=#dom-barprop-visible>visible</a></code></dt>
+ <dd>
+ <p>Returns true if the toolbar is visible; otherwise, returns false.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-barprop-visible title=dom-BarProp-visible>visible</dfn> attribute, on
+ getting, must return either true or a value determined by the user
+ agent to most accurately represent the visibility state of the user
+ interface element that the object represents, as described below. On
+ setting, the new value must be discarded.</p>
+
+ <p>The following <code><a href=#barprop>BarProp</a></code> objects exist for each
+ <code><a href=#document>Document</a></code> object in a <a href=#browsing-context>browsing
+ context</a>. Some of the user interface elements represented by
+ these objects might have no equivalent in some user agents; for
+ those user agents, except when otherwise specified, the object must
+ act as if it was present and visible (i.e. its <code title=dom-BarProp-visible><a href=#dom-barprop-visible>visible</a></code> attribute must return
+ true).</p>
+
+ <dl><dt><dfn id=the-location-bar-barprop-object>The location bar <code>BarProp</code> object</dfn></dt>
+
+ <dd>Represents the user interface element that contains a control
+ that displays the <a href=#url>URL</a> of the <a href=#active-document>active
+ document</a>, or some similar interface concept.</dd>
+
+ <dt><dfn id=the-menu-bar-barprop-object>The menu bar <code>BarProp</code> object</dfn></dt>
+
+ <dd>Represents the user interface element that contains a list of
+ commands in menu form, or some similar interface concept.</dd>
+
+ <dt><dfn id=the-personal-bar-barprop-object>The personal bar <code>BarProp</code> object</dfn></dt>
+
+ <dd>Represents the user interface element that contains links to
+ the user's favorite pages, or some similar interface concept.</dd>
+
+ <dt><dfn id=the-scrollbar-barprop-object>The scrollbar <code>BarProp</code> object</dfn></dt>
+
+ <dd>Represents the user interface element that contains a scrolling
+ mechanism, or some similar interface concept.</dd>
+
+ <dt><dfn id=the-status-bar-barprop-object>The status bar <code>BarProp</code> object</dfn></dt>
+
+ <dd>Represents a user interface element found immediately below or
+ after the document, as appropriate for the user's media. If the
+ user agent has no such user interface element, then the object may
+ act as if the corresponding user interface element was absent
+ (i.e. its <code title=dom-BarProp-visible><a href=#dom-barprop-visible>visible</a></code>
+ attribute may return false).</dd>
+
+ <dt><dfn id=the-toolbar-barprop-object>The toolbar <code>BarProp</code> object</dfn></dt>
+
+ <dd>Represents the user interface element found immediately above
+ or before the document, as appropriate for the user's media. If the
+ user agent has no such user interface element, then the object may
+ act as if the corresponding user interface element was absent
+ (i.e. its <code title=dom-BarProp-visible><a href=#dom-barprop-visible>visible</a></code>
+ attribute may return false).</dd>
+
+ </dl><p>The <dfn id=dom-window-locationbar title=dom-window-locationbar><code>locationbar</code></dfn>
+ attribute must return <a href=#the-location-bar-barprop-object>the location bar <code>BarProp</code>
+ object</a>.</p>
+
+ <p>The <dfn id=dom-window-menubar title=dom-window-menubar><code>menubar</code></dfn>
+ attribute must return <a href=#the-menu-bar-barprop-object>the menu bar <code>BarProp</code>
+ object</a>.</p>
+
+ <p>The <dfn id=dom-window-personalbar title=dom-window-personalbar><code>personalbar</code></dfn>
+ attribute must return <a href=#the-personal-bar-barprop-object>the personal bar <code>BarProp</code>
+ object</a>.</p>
+
+ <p>The <dfn id=dom-window-scrollbars title=dom-window-scrollbars><code>scrollbars</code></dfn>
+ attribute must return <a href=#the-scrollbar-barprop-object>the scrollbar <code>BarProp</code>
+ object</a>.</p>
+
+ <p>The <dfn id=dom-window-statusbar title=dom-window-statusbar><code>statusbar</code></dfn> attribute
+ must return <a href=#the-status-bar-barprop-object>the status bar <code>BarProp</code>
+ object</a>.</p>
+
+ <p>The <dfn id=dom-window-toolbar title=dom-window-toolbar><code>toolbar</code></dfn>
+ attribute must return <a href=#the-toolbar-barprop-object>the toolbar <code>BarProp</code>
+ object</a>.</p>
+
+<!--
+ <p>For legacy reasons, the <dfn
+ title="dom-window-directories"><code>directories</code></dfn>
+ attribute must also return <span>the personal bar
+ <code>BarProp</code> object</span>.</p>
+-->
+
+ <hr><p>For historical reasons, the <dfn id=dom-window-status title=dom-window-status><code>status</code></dfn> attribute on the
+ <code><a href=#window>Window</a></code> object must return an empty string on getting,
+ and do nothing on setting.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-windowproxy-object><span class=secno>6.2.7 </span>The <code><a href=#windowproxy>WindowProxy</a></code> object</h4>
+
+
+ <p>As mentioned earlier, each <a href=#browsing-context>browsing context</a> has a
+ <dfn id=windowproxy><code>WindowProxy</code></dfn> object. This object is unusual
+ in that all operations that would be performed on it must be
+ performed on the <code><a href=#window>Window</a></code> object of the <a href=#browsing-context>browsing
+ context</a>'s <a href=#active-document>active document</a> instead. It is thus
+ indistinguishable from that <code><a href=#window>Window</a></code> object in every way
+ until the <a href=#browsing-context>browsing context</a> is navigated.</p>
+
+ <p>There is no <code><a href=#windowproxy>WindowProxy</a></code> interface object.</p>
+
+ <p class=note>The <code><a href=#windowproxy>WindowProxy</a></code> object allows scripts
+ to act as if each <a href=#browsing-context>browsing context</a> had a single
+ <code><a href=#window>Window</a></code> object, while still keeping separate
+ <code><a href=#window>Window</a></code> objects for each <code><a href=#document>Document</a></code>.</p>
+
+ <div class=example>
+
+ <p>In the following example, the variable <var title="">x</var> is
+ set to the <code><a href=#windowproxy>WindowProxy</a></code> object returned by the <code title=dom-window><a href=#dom-window>window</a></code> accessor on the global object. All
+ of the expressions following the assignment return true, because in
+ every respect, the <code><a href=#windowproxy>WindowProxy</a></code> object acts like the
+ underlying <code><a href=#window>Window</a></code> object.</p>
+
+ <pre>var x = window;
+x instanceof Window; // true
+x === this; // true</pre>
+
+ </div>
+
+ </div>
+
+
+
+ <h3 id=origin-0><span class=secno>6.3 </span>Origin</h3>
+ <!-- Hallowed are the Ori -->
+
+ <p>The <dfn id=origin>origin</dfn> of a resource and the <dfn id=effective-script-origin>effective script
+ origin</dfn> of a resource are both either opaque identifiers or
+ tuples consisting of a scheme component, a host component, a port
+ component, and optionally extra data.</p>
+
+ <p class=note>The extra data could include the certificate of the
+ site when using encrypted connections, to ensure that if the site's
+ secure certificate changes, the origin is considered to change as
+ well.</p>
+
+
+ <div class=impl>
+
+ <p>These characteristics are defined as follows:</p>
+
+ <dl><dt>For URLs</dt>
+
+ <dd>
+
+ <p>The <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
+ origin</a> of the <a href=#url>URL</a> is whatever is returned by
+ the following algorithm:</p>
+
+ <ol><li><p>Let <var title="">url</var> be the <a href=#url>URL</a> for
+ which the <a href=#origin>origin</a> is being determined.</li>
+
+ <li><p><a href=#parse-a-url title="parse a url">Parse</a> <var title="">url</var>.</li>
+
+ <li><p>If <var title="">url</var> identifies a resource that is
+ its own trust domain (e.g. it identifies an e-mail on an IMAP
+ server or a post on an NNTP server) then return a globally unique
+ identifier specific to the resource identified by <var title="">url</var>, so that if this algorithm is invoked again
+ for <a href=#url title=URL>URLs</a> that identify the same resource,
+ the same identifier will be returned.</li>
+
+ <li><p>If <var title="">url</var> does not use a server-based
+ naming authority, or if parsing <var title="">url</var> failed,
+ or if <var title="">url</var> is not an <a href=#absolute-url>absolute
+ URL</a>, then return a new globally unique
+ identifier.</li>
+
+ <li><p>Let <var title="">scheme</var> be the <a href=#url-scheme title=url-scheme>&lt;scheme&gt;</a> component of <var title="">url</var>, <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
+
+ <li><p>If the UA doesn't support the protocol given by <var title="">scheme</var>, then return a new globally unique
+ identifier.</li>
+
+ <li><p>If <var title="">scheme</var> is "<code title="">file</code>", then the user agent may return a
+ UA-specific value.</li>
+
+ <li><p>Let <var title="">host</var> be the <a href=#url-host title=url-host>&lt;host&gt;</a> component of <var title="">url</var>.</li>
+
+ <li>
+
+ <p>Apply the IDNA ToASCII algorithm to <var title="">host</var>,
+ with both the AllowUnassigned and UseSTD3ASCIIRules flags
+ set. Let <var title="">host</var> be the result of the ToASCII
+ algorithm.</p>
+
+ <p>If ToASCII fails to convert one of the components of the
+ string, e.g. because it is too long or because it contains
+ invalid characters, then return a new globally unique
+ identifier. <a href=#refsRFC3490>[RFC3490]</a></p>
+
+ </li>
+
+ <li><p>Let <var title="">host</var> be the result of converting
+ <var title="">host</var> <a href=#converted-to-ascii-lowercase title="converted to ASCII lowercase">to
+ ASCII lowercase</a>.</li>
+
+ <li><p>If there is no <a href=#url-port title=url-port>&lt;port&gt;</a>
+ component, then let <var title="">port</var> be the default port
+ for the protocol given by <var title="">scheme</var>. Otherwise,
+ let <var title="">port</var> be the <a href=#url-port title=url-port>&lt;port&gt;</a> component of <var title="">url</var>.</li>
+
+ <li><p>Return the tuple (<var title="">scheme</var>, <var title="">host</var>, <var title="">port</var>).</li>
+
+ </ol><p>In addition, if the <a href=#url>URL</a> is in fact associated with
+ a <code><a href=#document>Document</a></code> object that was created by parsing the
+ resource obtained from fetching <a href=#url>URL</a>, and this was
+ done over a secure connection, then the server's secure
+ certificate may be added to the origin as additional data.</p>
+
+ </dd>
+
+
+ <dt>For scripts</dt>
+
+ <dd>
+
+ <p>The <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
+ origin</a> of a script are determined from another resource,
+ called the <i>owner</i>:</p>
+
+ <dl class=switch><dt>If a script is in a <code><a href=#the-script-element>script</a></code> element</dt>
+
+ <dd>The owner is the <code><a href=#document>Document</a></code> to which the
+ <code><a href=#the-script-element>script</a></code> element belongs.</dd>
+
+
+ <dt>If a script is in an <a href=#event-handler-content-attributes title="event handler content
+ attributes">event handler content attribute</a></dt>
+
+ <dd>The owner is the <code><a href=#document>Document</a></code> to which the
+ attribute node belongs.</dd>
+
+
+ <dt>If a script is a function or other code reference created by
+ another script</dt>
+
+ <dd>The owner is the script that created it.</dd>
+
+
+ <dt>If a script is a <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a> that was returned as the
+ location of an HTTP redirect (<a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a> in
+ other protocols)</dt>
+
+ <dd>The owner is the <a href=#url>URL</a> that redirected to the
+ <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a>.</dd>
+
+
+ <dt>If a script is a <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a> in an attribute</dt>
+
+ <dd>The owner is the <code><a href=#document>Document</a></code> of the element on
+ which the attribute is found.</dd>
+
+
+ <dt>If a script is a <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a> in a style sheet</dt>
+
+ <dd>The owner is the <a href=#url>URL</a> of the style sheet.</dd>
+
+
+ <dt>If a script is a <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a> to which a <a href=#browsing-context>browsing
+ context</a> is being <a href=#navigate title=navigate>navigated</a>,
+ the URL having been provided by the user (e.g. by using a
+ <i>bookmarklet</i>)</dt>
+
+ <dd>The owner is the <code><a href=#document>Document</a></code> of the <a href=#browsing-context>browsing
+ context</a>'s <a href=#active-document>active document</a>.</dd>
+
+
+ <dt>If a script is a <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a> to which a <a href=#browsing-context>browsing
+ context</a> is being <a href=#navigate title=navigate>navigated</a>,
+ the URL having been declared in markup</dt>
+
+ <dd>The owner is the <code><a href=#document>Document</a></code> of the element
+ (e.g. an <code><a href=#the-a-element>a</a></code> or <code><a href=#the-area-element>area</a></code> element) that
+ declared the URL.</dd>
+
+
+ <dt>If a script is a <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a> to which a <a href=#browsing-context>browsing
+ context</a> is being <a href=#navigate title=navigate>navigated</a>,
+ the URL having been provided by script</dt>
+
+ <dd>The owner is the script that provided the URL.</dd>
+
+ </dl><p>The <a href=#origin>origin</a> of the script is then equal to the
+ <a href=#origin>origin</a> of the owner, and the <a href=#effective-script-origin>effective script
+ origin</a> of the script is equal to the <a href=#effective-script-origin>effective script
+ origin</a> of the owner.</p>
+
+ </dd>
+
+
+ <dt>For <code><a href=#document>Document</a></code> objects</dt>
+
+ <dd>
+
+ <dl class=switch><dt id=sandboxOrigin>If a <code><a href=#document>Document</a></code> is in a
+ <a href=#browsing-context>browsing context</a> whose <a href=#sandboxed-origin-browsing-context-flag>sandboxed origin
+ browsing context flag</a> was set when the
+ <code><a href=#document>Document</a></code> was created</dt>
+
+ <dt>If a <code><a href=#document>Document</a></code> was generated from a resource
+ labeled as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code></dt>
+
+ <dd>The <a href=#origin>origin</a> is a globally unique identifier
+ assigned when the <code><a href=#document>Document</a></code> is created.</dd>
+
+
+ <dt>If a <code><a href=#document>Document</a></code> was generated from a <a href=#javascript-protocol title="javascript protocol"><code>javascript:</code>
+ URL</a></dt>
+
+ <dd>The <a href=#origin>origin</a> is equal to the <a href=#origin>origin</a>
+ of the script of that <a href=#javascript-protocol title="javascript
+ protocol"><code>javascript:</code> URL</a>.</dd>
+
+
+ <dt>If a <code><a href=#document>Document</a></code> was served over the network and
+ has an address that uses a URL scheme with a server-based naming
+ authority</dt>
+
+ <dd>The <a href=#origin>origin</a> is the <a href=#origin>origin</a> of
+ <a href="#the-document's-address">the <code>Document</code>'s address</a>.</dd>
+
+
+ <dt>If a <code><a href=#document>Document</a></code> was generated from a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a> that
+ was returned as the location of an HTTP redirect (<a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a> in
+ other protocols)</dt>
+
+ <dd>The <a href=#origin>origin</a> is the <a href=#origin>origin</a> of the
+ <a href=#url>URL</a> that redirected to the <a href=#data-protocol title="data
+ protocol"><code title="">data:</code> URL</a>.</dd>
+
+
+ <dt>If a <code><a href=#document>Document</a></code> was generated from a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a>
+ found in another <code><a href=#document>Document</a></code> or in a script</dt>
+
+ <dd>The <a href=#origin>origin</a> is the <a href=#origin>origin</a> of the
+ <code><a href=#document>Document</a></code> or script that initiated the <a href=#navigate title=navigate>navigation</a> to that <a href=#url>URL</a>.</dd>
+
+
+ <dt>If a <code><a href=#document>Document</a></code> has the <a href="#the-document's-address" title="the
+ document's address">address</a>
+ "<code><a href=#about:blank>about:blank</a></code>"</dt>
+
+ <dd>The <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> is <a href=#about-blank-origin>the <span>origin</span> it was
+ assigned when its browsing context was created</a>.</dd>
+
+
+ <dt>If a <code><a href=#document>Document</a></code> is <a href=#an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a></dt>
+
+ <dd>The <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> is the
+ <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing
+ context</a>'s <a href=#browsing-context-container>browsing context container</a>'s
+ <code><a href=#document>Document</a></code>.</dd>
+
+
+ <dt>If a <code><a href=#document>Document</a></code> was obtained in some other manner
+ (e.g. a <a href=#data-protocol title="data protocol"><code title="">data:</code>
+ URL</a> typed in by the user, a <code><a href=#document>Document</a></code> created
+ using the <code title=dom-DOMImplementation-createDocument><a href=#dom-domimplementation-createdocument>createDocument()</a></code>
+ API, etc)</dt>
+
+ <dd>The <a href=#origin>origin</a> is a globally unique identifier
+ assigned when the <code><a href=#document>Document</a></code> is created.</dd>
+
+ </dl><p>When a <code><a href=#document>Document</a></code> is created, its <a href=#effective-script-origin>effective
+ script origin</a> is initialized to the <a href=#origin>origin</a> of
+ the <code><a href=#document>Document</a></code>. However, the <code title=dom-document-domain><a href=#dom-document-domain>document.domain</a></code> attribute can
+ be used to change it.</p>
+
+ </dd>
+
+
+ <dt>For images</dt>
+
+ <dd>
+
+ <dl class=switch><dt>If an image is the image of an <code><a href=#the-img-element>img</a></code> element and
+ its image data is <a href=#cors-cross-origin>CORS-cross-origin</a></dt>
+
+ <dd>The <a href=#origin>origin</a> is a globally unique identifier
+ assigned when the image is created.</dd>
+
+
+ <dt>If an image is the image of an <code><a href=#the-img-element>img</a></code> element and
+ its image data is <a href=#cors-same-origin>CORS-same-origin</a></dt>
+
+ <dd>The <a href=#origin>origin</a> is the <a href=#origin>origin</a> of the
+ <code><a href=#the-img-element>img</a></code> element's <code><a href=#document>Document</a></code>.</dd>
+
+
+<!-- does anything depend on the origin of an image other than from <img>? If not, we can cut out the remainder of this <dl>: -->
+
+ <dt>If an image was served over the network and has an address
+ that uses a URL scheme with a server-based naming authority</dt>
+
+ <dd>The <a href=#origin>origin</a> is the <a href=#origin>origin</a> of the
+ image's <a href=#url>URL</a>.</dd>
+
+
+ <dt>If an image was generated from a <a href=#data-protocol title="data
+ protocol"><code title="">data:</code> URL</a> that was
+ returned as the location of an HTTP redirect (<a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a> in
+ other protocols)</dt>
+
+ <dd>The <a href=#origin>origin</a> is the <a href=#origin>origin</a> of the
+ <a href=#url>URL</a> that redirected to the <a href=#data-protocol title="data
+ protocol"><code title="">data:</code> URL</a>.</dd>
+
+
+ <dt>If an image was generated from a <a href=#data-protocol title="data
+ protocol"><code title="">data:</code> URL</a> found in another
+ <code><a href=#document>Document</a></code> or in a script</dt>
+
+ <dd>The <a href=#origin>origin</a> is the <a href=#origin>origin</a> of the
+ <code><a href=#document>Document</a></code> or script that loaded that image.</dd>
+
+
+ <dt>If an image was obtained in some other manner (e.g. a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a>
+ typed in by the user)</dt>
+
+ <dd>The <a href=#origin>origin</a> is a globally unique identifier
+ assigned when the image is created.</dd>
+
+ </dl></dd>
+
+
+ <dt>For <code><a href=#the-audio-element>audio</a></code> and <code><a href=#the-video-element>video</a></code> elements</dt>
+
+ <dd>
+
+ <dl class=switch><dt>If the <a href=#media-data>media data</a> is
+ <a href=#cors-cross-origin>CORS-cross-origin</a></dt>
+
+ <dd>The <a href=#origin>origin</a> is a globally unique identifier
+ assigned when the image is created.</dd>
+
+
+ <dt>If the <a href=#media-data>media data</a> is
+ <a href=#cors-same-origin>CORS-same-origin</a></dt>
+
+ <dd>The <a href=#origin>origin</a> is the <a href=#origin>origin</a> of the
+ <a href=#media-element>media element</a>'s <code><a href=#document>Document</a></code>.</dd>
+
+ </dl></dd>
+
+
+ <dt>For fonts</dt>
+
+ <dd>
+
+ <p>The <a href=#origin>origin</a> of a downloadable Web font is equal to
+ the <a href=#origin>origin</a> of the <a href=#absolute-url>absolute URL</a> used to
+ obtain the font (after any redirects). <a href=#refsCSSFONTS>[CSSFONTS]</a></p> <!-- this means you can
+ get data from a remote site if you can make it redirect to your
+ own site in some fashion controlled by the data you want to read
+ -->
+
+ <p>The <a href=#origin>origin</a> of a locally installed system font is
+ equal to the <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> in
+ which that font is being used.</p>
+
+ </dd>
+
+ </dl><p>Other specifications can override the above definitions by
+ themselves specifying the origin of a particular URL, script,
+ <code><a href=#document>Document</a></code>, or image.</p>
+
+ <!-- e.g.:
+
+ <p>The <span>origin</span> of a <code>Document</code> object
+ returned by the <code>XMLHttpRequest</code> API is equal to the
+ <span>XMLHttpRequest origin</span> of the
+ <code>XMLHttpRequest</code> object.</p>
+
+ -->
+
+ <hr><p>The <dfn id=unicode-serialization-of-an-origin>Unicode serialization of an origin</dfn> is the string
+ obtained by applying the following algorithm to the given
+ <a href=#origin>origin</a>:</p>
+
+ <ol><li><p>If the <a href=#origin>origin</a> in question is not a
+ scheme/host/port tuple, then return the literal string "<code title="">null</code>" and abort these steps.</li>
+
+ <li><p>Otherwise, let <var title="">result</var> be the scheme part
+ of the <a href=#origin>origin</a> tuple.</li>
+
+ <li><p>Append the string "<code title="">://</code>" to <var title="">result</var>.</li>
+
+ <li><p>Apply the IDNA ToUnicode algorithm to each component of the
+ host part of the <a href=#origin>origin</a> tuple, and append the results
+ &mdash; each component, in the same order, separated by U+002E FULL
+ STOP characters (.) &mdash; to <var title="">result</var>. <a href=#refsRFC3490>[RFC3490]</a></li>
+
+ <li><p>If the port part of the <a href=#origin>origin</a> tuple gives a port
+ that is different from the default port for the protocol given by
+ the scheme part of the <a href=#origin>origin</a> tuple, then append a
+ U+003A COLON character (:) and the given port, in base ten, to
+ <var title="">result</var>.</li>
+
+ <li><p>Return <var title="">result</var>.</li>
+
+ </ol><p>The <dfn id=ascii-serialization-of-an-origin>ASCII serialization of an origin</dfn> is the string
+ obtained by applying the following algorithm to the given
+ <a href=#origin>origin</a>:</p>
+
+ <ol><li><p>If the <a href=#origin>origin</a> in question is not a
+ scheme/host/port tuple, then return the literal string "<code title="">null</code>" and abort these steps.</li>
+
+ <li><p>Otherwise, let <var title="">result</var> be the scheme part
+ of the <a href=#origin>origin</a> tuple.</li>
+
+ <li><p>Append the string "<code title="">://</code>" to <var title="">result</var>.</li>
+
+ <li>
+
+ <p>Apply the IDNA ToASCII algorithm the host part of the
+ <a href=#origin>origin</a> tuple, with both the AllowUnassigned and
+ UseSTD3ASCIIRules flags set, and append the results <var title="">result</var>.</p>
+
+ <p>If ToASCII fails to convert one of the components of the
+ string, e.g. because it is too long or because it contains invalid
+ characters, then return the empty string and abort these steps. <a href=#refsRFC3490>[RFC3490]</a></p>
+
+ </li>
+
+ <li><p>If the port part of the <a href=#origin>origin</a> tuple gives a port
+ that is different from the default port for the protocol given by
+ the scheme part of the <a href=#origin>origin</a> tuple, then append a
+ U+003A COLON character (:) and the given port, in base ten, to
+ <var title="">result</var>.</li>
+
+ <li><p>Return <var title="">result</var>.</li>
+
+ </ol><p>Two <a href=#origin title=origin>origins</a> are said to be the
+ <dfn id=same-origin>same origin</dfn> if the following algorithm returns true:</p>
+
+ <ol><li><p>Let <var title="">A</var> be the first <a href=#origin>origin</a>
+ being compared, and <var title="">B</var> be the second
+ <a href=#origin>origin</a> being compared.</li>
+
+ <li><p>If <var title="">A</var> and <var title="">B</var> are both
+ opaque identifiers, and their value is equal, then return
+ true.</li>
+
+ <li><p>Otherwise, if either <var title="">A</var> or <var title="">B</var> or both are opaque identifiers, return
+ false.</li>
+
+ <li><p>If <var title="">A</var> and <var title="">B</var> have
+ scheme components that are not identical, return false.</li>
+
+ <li><p>If <var title="">A</var> and <var title="">B</var> have host
+ components that are not identical, return false.</li>
+
+ <li><p>If <var title="">A</var> and <var title="">B</var> have port
+ components that are not identical, return false.</li>
+
+ <li><p>If either <var title="">A</var> or <var title="">B</var>
+ have additional data, but that data is not identical for both,
+ return false.</li>
+
+ <li><p>Return true.</li>
+
+ </ol></div>
+
+
+ <h4 id=relaxing-the-same-origin-restriction><span class=secno>6.3.1 </span>Relaxing the same-origin restriction</h4>
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-domain><a href=#dom-document-domain>domain</a></code> [ = <var title="">domain</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current domain used for security checks.</p>
+
+ <p>Can be set to a value that removes subdomains, to change the
+ <a href=#effective-script-origin>effective script origin</a> to allow pages on other
+ subdomains of the same domain (if they do the same thing) to
+ access each other.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-domain title=dom-document-domain><code>domain</code></dfn>
+ attribute on <code><a href=#document>Document</a></code> objects must be initialized to
+ <a href="#the-document's-domain">the document's domain</a>, if it has one, and the empty
+ string otherwise. If the value is an IPv6 address, then the square
+ brackets from the host portion of the <a href=#url-host title=url-host>&lt;host&gt;</a> component must be omitted from
+ the attribute's value.</p>
+
+ <p>On getting, the attribute must return its current value, unless
+ the <code><a href=#document>Document</a></code> has no <a href=#browsing-context>browsing context</a>, in
+ which case it must return the empty string.</p>
+
+ <p>On setting, the user agent must run the following algorithm:</p>
+
+ <ol><li>
+
+ <p>If the <code><a href=#document>Document</a></code> has no <a href=#browsing-context>browsing
+ context</a>, throw a <code><a href=#securityerror>SecurityError</a></code> exception and
+ abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the new value is an IP address, let <var title="">new
+ value</var> be the new value. Otherwise, apply the IDNA ToASCII
+ algorithm to the new value, with both the AllowUnassigned and
+ UseSTD3ASCIIRules flags set, and let <var title="">new value</var>
+ be the result of the ToASCII algorithm.</p>
+
+ <p>If ToASCII fails to convert one of the components of the
+ string, e.g. because it is too long or because it contains invalid
+ characters, then throw a <code><a href=#securityerror>SecurityError</a></code> exception and abort
+ these steps. <a href=#refsRFC3490>[RFC3490]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">new value</var> is not exactly equal to the
+ current value of the <code title=dom-document-domain><a href=#dom-document-domain>document.domain</a></code> attribute, then
+ run these substeps:</p>
+
+ <ol><li>
+
+ <p>If the current value is an IP address, throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception and abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">new value</var>, prefixed by a U+002E FULL
+ STOP (.), does not exactly match the end of the current value,
+ throw a <code><a href=#securityerror>SecurityError</a></code> exception and abort these
+ steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">new value</var> matches a suffix in the
+ Public Suffix List, or, if <var title="">new value</var>,
+ prefixed by a U+002E FULL STOP (.), matches the end of a
+ suffix in the Public Suffix List, then throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception and abort these steps. <a href=#refsPSL>[PSL]</a></p>
+
+ <p>Suffixes must be compared after applying the IDNA ToASCII
+ algorithm to them, with both the AllowUnassigned and
+ UseSTD3ASCIIRules flags set, in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner. <a href=#refsRFC3490>[RFC3490]</a></p>
+
+ </li>
+
+ </ol></li>
+
+ <li><p>Release the <a href=#storage-mutex>storage mutex</a>.</li>
+
+ <li>
+
+ <p>Set the attribute's value to <var title="">new value</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Set the host part of the <a href=#effective-script-origin>effective script origin</a>
+ tuple of the <code><a href=#document>Document</a></code> to <var title="">new
+ value</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Set the port part of the <a href=#effective-script-origin>effective script origin</a>
+ tuple of the <code><a href=#document>Document</a></code> to "manual override" (a value
+ that, for the purposes of <a href=#same-origin title="same origin">comparing
+ origins</a>, is identical to "manual override" but not
+ identical to any other value).</p>
+
+ </li>
+
+ </ol><p>The <dfn id="the-document's-domain" title="the document's domain">domain</dfn> of a
+ <code><a href=#document>Document</a></code> is the host part of the document's
+ <a href=#origin>origin</a>, if that is a scheme/host/port tuple. If it
+ isn't, then the document does not have a domain.</p>
+
+ </div>
+
+ <p class=note>The <code title=dom-document-domain><a href=#dom-document-domain>domain</a></code>
+ attribute is used to enable pages on different hosts of a domain to
+ access each others' DOMs.</p>
+
+ <p class=warning>Do not use the <code title=dom-document-domain><a href=#dom-document-domain>document.domain</a></code> attribute when
+ using shared hosting. If an untrusted third party is able to host an
+ HTTP server at the same IP address but on a different port, then the
+ same-origin protection that normally protects two different sites on
+ the same host will fail, as the ports are ignored when comparing
+ origins after the <code title=dom-document-domain><a href=#dom-document-domain>document.domain</a></code> attribute has
+ been used.</p>
+
+
+
+ <h3 id=history><span class=secno>6.4 </span>Session history and navigation</h3>
+
+ <h4 id=the-session-history-of-browsing-contexts><span class=secno>6.4.1 </span>The session history of browsing contexts</h4>
+
+ <p>The sequence of <code><a href=#document>Document</a></code>s in a <a href=#browsing-context>browsing
+ context</a> is its <dfn id=session-history>session history</dfn>.</p>
+
+ <p><code><a href=#history-0>History</a></code> objects provide a representation of the
+ pages in the session history of <a href=#browsing-context title="browsing
+ context">browsing contexts</a>. Each <a href=#browsing-context>browsing
+ context</a>, including <a href=#nested-browsing-context title="nested browsing
+ context">nested browsing contexts</a>, has a distinct session
+ history.</p>
+
+ <p>Each <code><a href=#document>Document</a></code> object in a <a href=#browsing-context>browsing
+ context</a>'s <a href=#session-history>session history</a> is associated with a
+ unique instance of the <code><a href=#history-0>History</a></code> object, although they
+ all must model the same underlying <a href=#session-history>session history</a>.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-history title=dom-history><code>history</code></dfn> attribute
+ of the <code><a href=#window>Window</a></code> interface must return the object
+ implementing the <code><a href=#history-0>History</a></code> interface for that
+ <code><a href=#window>Window</a></code> object's <code><a href=#document>Document</a></code>.</p>
+
+ </div>
+
+ <p><code><a href=#history-0>History</a></code> objects represent their <a href=#browsing-context>browsing
+ context</a>'s session history as a flat list of <a href=#session-history-entry title="session history entry">session history entries</a>. Each
+ <dfn id=session-history-entry>session history entry</dfn> consists of either a
+ <a href=#url>URL</a> or a <a href=#state-object>state object</a>, or both<span class=impl>, and may in addition have a title, a
+ <code><a href=#document>Document</a></code> object, form data, a scroll position, and
+ other information associated with it</span>.</p>
+
+ <div class=impl>
+
+ <p class=note>This does not imply that the user interface need be
+ linear. See the <a href=#history-notes>notes below</a>.</p>
+
+ </div>
+
+ <p class=note>Titles associated with <a href=#session-history-entry title="session history
+ entry">session history entries</a> need not have any relation
+ with the current <code><a href=#the-title-element>title</a></code> of the
+ <code><a href=#document>Document</a></code>. The title of a <a href=#session-history-entry>session history
+ entry</a> is intended to explain the state of the document at
+ that point, so that the user can navigate the document's
+ history.</p>
+
+ <p>URLs without associated <a href=#state-object title="state object">state
+ objects</a> are added to the session history as the user (or
+ script) navigates from page to page.</p>
+
+ <p>A <dfn id=state-object>state object</dfn> is an object representing a user
+ interface state.</p>
+
+ <p>Pages can <a href=#dom-history-pushstate title=dom-history-pushState>add</a> <a href=#state-object title="state object">state objects</a> between their entry in the
+ session history and the next ("forward") entry. These are then <a href=#event-popstate title=event-popstate>returned to the script</a> when the user
+ (or script) goes back in the history, thus enabling authors to use
+ the "navigation" metaphor even in one-page applications.</p>
+
+ <div class=note>
+
+ <p><a href=#state-object title="state object">State objects</a> are intended to
+ be used for two main purposes: first, storing a preparsed
+ description of the state in the <a href=#url>URL</a> so that in the
+ simple case an author doesn't have to do the parsing (though one
+ would still need the parsing for handling <a href=#url title=URL>URLs</a> passed around by users, so it's only a minor
+ optimization), and second, so that the author can store state that
+ one wouldn't store in the URL because it only applies to the current
+ <code><a href=#document>Document</a></code> instance and it would have to be reconstructed
+ if a new <code><a href=#document>Document</a></code> were opened.</p>
+
+ <p>An example of the latter would be something like keeping track of
+ the precise coordinate from which a popup <code><a href=#the-div-element>div</a></code> was made
+ to animate, so that if the user goes back, it can be made to animate
+ to the same location. Or alternatively, it could be used to keep a
+ pointer into a cache of data that would be fetched from the server
+ based on the information in the <a href=#url>URL</a>, so that when going
+ back and forward, the information doesn't have to be fetched
+ again.</p>
+
+ </div>
+
+ <hr><p>At any point, one of the entries in the session history is the
+ <dfn id=current-entry>current entry</dfn>. This is the entry representing the
+ <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing
+ context</a>. The <a href=#current-entry>current entry</a> is usually an entry
+ for the <a href=#dom-location-href title=dom-location-href>location</a> of the
+ <code><a href=#document>Document</a></code>. However, it can also be one of the entries
+ for <a href=#state-object title="state object">state objects</a> added to the
+ history by that document.</p>
+
+ <p><dfn id=an-entry-with-persisted-user-state>An entry with persisted user state</dfn> is one that also
+ has user-agent defined state. This specification does not specify
+ what kind of state can be stored.</p>
+
+ <p class=example>For example, some user agents might want to
+ persist the scroll position, or the values of form controls.</p>
+
+ <p class=note>User agents that persist the value of form controls
+ are encouraged to also persist their directionality (the value of
+ the element's <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute). This
+ prevents values from being displayed incorrectly after a history
+ traversal when the user had originally entered the values with an
+ explicit, non-default directionality.</p>
+
+ <p>Entries that consist of <a href=#state-object title="state object">state
+ objects</a> share the same <code><a href=#document>Document</a></code> as the entry for
+ the page that was active when they were added.</p>
+
+ <p>Contiguous entries that differ just by fragment identifier also
+ share the same <code><a href=#document>Document</a></code>.</p>
+
+ <p class=note>All entries that share the same
+ <code><a href=#document>Document</a></code> (and that are therefore merely different
+ states of one particular document) are contiguous by definition.</p>
+
+ <p>Each <code><a href=#document>Document</a></code> in a <a href=#browsing-context>browsing context</a>
+ also has a <dfn id=latest-entry>latest entry</dfn>. This is the entry or that
+ <code><a href=#document>Document</a></code> that was most the recently traversed to. When
+ a <code><a href=#document>Document</a></code> is created, it initially has no <a href=#latest-entry>latest
+ entry</a>.</p>
+
+ <div class=impl>
+
+ <p>User agents may <a href=#discard-a-document title="discard a Document">discard</a>
+ the <code><a href=#document>Document</a></code> objects of entries other than the
+ <a href=#current-entry>current entry</a> that are not referenced from any script,
+ reloading the pages afresh when the user or script navigates back to
+ such pages. This specification does not specify when user agents
+ should discard <code><a href=#document>Document</a></code> objects and when they should
+ cache them.</p>
+
+ <p>Entries that have had their <code><a href=#document>Document</a></code> objects
+ discarded must, for the purposes of the algorithms given below, act
+ as if they had not. When the user or script navigates back or
+ forwards to a page which has no in-memory DOM objects, any other
+ entries that shared the same <code><a href=#document>Document</a></code> object with it
+ must share the new object as well.</p>
+
+ </div>
+
+
+ <h4 id=the-history-interface><span class=secno>6.4.2 </span>The <code><a href=#history-0>History</a></code> interface</h4>
+
+ <pre class=idl>interface <dfn id=history-0>History</dfn> {
+ readonly attribute long <a href=#dom-history-length title=dom-history-length>length</a>;
+ readonly attribute any <a href=#dom-history-state title=dom-history-state>state</a>;
+ void <a href=#dom-history-go title=dom-history-go>go</a>(optional long delta);
+ void <a href=#dom-history-back title=dom-history-back>back</a>();
+ void <a href=#dom-history-forward title=dom-history-forward>forward</a>();
+ void <a href=#dom-history-pushstate title=dom-history-pushState>pushState</a>(any data, DOMString title, optional DOMString url);
+ void <a href=#dom-history-replacestate title=dom-history-replaceState>replaceState</a>(any data, DOMString title, optional DOMString url);
+};</pre>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-history><a href=#dom-history>history</a></code> . <code title=dom-history-length><a href=#dom-history-length>length</a></code></dt>
+
+ <dd>
+
+ <p>Returns the number of entries in the <a href=#joint-session-history>joint session history</a>.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-history><a href=#dom-history>history</a></code> . <code title=dom-history-state><a href=#dom-history-state>state</a></code></dt>
+
+ <dd>
+
+ <p>Returns the current <a href=#state-object>state object</a>.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-history><a href=#dom-history>history</a></code> . <code title=dom-history-go><a href=#dom-history-go>go</a></code>( [ <var title="">delta</var> ] )</dt>
+
+ <dd>
+
+ <p>Goes back or forward the specified number of steps in the <a href=#joint-session-history>joint session history</a>.</p>
+
+ <p>A zero delta will reload the current page.</p>
+
+ <p>If the delta is out of range, does nothing.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-history><a href=#dom-history>history</a></code> . <code title=dom-history-back><a href=#dom-history-back>back</a></code>()</dt>
+
+ <dd>
+
+ <p>Goes back one step in the <a href=#joint-session-history>joint session history</a>.</p>
+
+ <p>If there is no previous page, does nothing.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-history><a href=#dom-history>history</a></code> . <code title=dom-history-forward><a href=#dom-history-forward>forward</a></code>()</dt>
+
+ <dd>
+
+ <p>Goes forward one step in the <a href=#joint-session-history>joint session history</a>.</p>
+
+ <p>If there is no next page, does nothing.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-history><a href=#dom-history>history</a></code> . <code title=dom-history-pushState><a href=#dom-history-pushstate>pushState</a></code>(<var title="">data</var>, <var title="">title</var> [, <var title="">url</var> ] )</dt>
+
+ <dd>
+
+ <p>Pushes the given data onto the session history, with the given title, and, if provided, the given URL.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-history><a href=#dom-history>history</a></code> . <code title=dom-history-replaceState><a href=#dom-history-replacestate>replaceState</a></code>(<var title="">data</var>, <var title="">title</var> [, <var title="">url</var> ] )</dt>
+
+ <dd>
+
+ <p>Updates the current entry in the session history to have the given data, title, and, if provided, URL.</p>
+
+ </dd>
+
+ </dl><p>The <dfn id=joint-session-history>joint session history</dfn> of a <code><a href=#history-0>History</a></code>
+ object is the union of all the <a href=#session-history title="session history">session
+ histories</a> of all <a href=#browsing-context title="browsing context">browsing
+ contexts</a> of all the <a href=#fully-active>fully active</a>
+ <code><a href=#document>Document</a></code> objects that share the <code><a href=#history-0>History</a></code>
+ object's <a href=#top-level-browsing-context>top-level browsing context</a>, with all the
+ entries that are <a href=#current-entry title="current entry">current entries</a>
+ in their respective <a href=#session-history title="session history">session
+ histories</a> removed except for the <a href=#current-entry-of-the-joint-session-history>current entry of the
+ joint session history</a>.</p>
+
+ <p>The <dfn id=current-entry-of-the-joint-session-history>current entry of the joint session history</dfn> is the
+ entry that most recently became a <a href=#current-entry>current entry</a> in its
+ <a href=#session-history>session history</a>.</p>
+
+ <p>Entries in the <a href=#joint-session-history>joint session history</a> are ordered
+ chronologically by the time they were added to their respective
+ <a href=#session-history title="session history">session histories</a>. (Since all
+ these <a href=#browsing-context title="browsing context">browsing contexts</a> by
+ definition share an <a href=#event-loop>event loop</a>, there is always a
+ well-defined sequential order in which their <a href=#session-history title="session
+ history">session histories</a> had their entries added.) Each
+ entry has an index; the earliest entry has index 0, and the
+ subsequent entries are numbered with consecutively increasing
+ integers (1, 2, 3, etc).</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-history-length title=dom-history-length><code>length</code></dfn>
+ attribute of the <code><a href=#history-0>History</a></code> interface must return the
+ number of entries in the <a href=#joint-session-history>joint session history</a>.</p>
+
+ <p>The actual entries are not accessible from script.</p>
+
+ <p>The <dfn id=dom-history-state title=dom-history-state><code>state</code></dfn>
+ attribute of the <code><a href=#history-0>History</a></code> interface must return the last
+ value it was set to by the user agent. Initially, its value must be
+ null.</p>
+
+ <p>When the <dfn id=dom-history-go title=dom-history-go><code>go(<var title="">delta</var>)</code></dfn> method is invoked, if the
+ argument to the method was omitted or has the value zero, the user
+ agent must act as if the <code title=dom-location-reload><a href=#dom-location-reload>location.reload()</a></code> method was
+ called instead. Otherwise, the user agent must <a href=#traverse-the-history-by-a-delta>traverse the
+ history by a delta</a> whose value is the value of the method's
+ argument.</p>
+
+ <p>When the <dfn id=dom-history-back title=dom-history-back><code>back()</code></dfn>
+ method is invoked, the user agent must <a href=#traverse-the-history-by-a-delta>traverse the history by
+ a delta</a> &minus;1.</p>
+
+ <p>When the <dfn id=dom-history-forward title=dom-history-forward><code>forward()</code></dfn>method is
+ invoked, the user agent must <a href=#traverse-the-history-by-a-delta>traverse the history by a
+ delta</a> +1.</p>
+
+ <p>To <dfn id=traverse-the-history-by-a-delta>traverse the history by a delta</dfn> <var title="">delta</var>, the user agent must <a href=#queue-a-task>queue a task</a>
+ to run the following steps. The <a href=#task-source>task source</a> for the
+ queued task is the <a href=#history-traversal-task-source>history traversal task source</a>.</p>
+
+ <ol><li><p>Let <var title="">delta</var> be the argument to the
+ method.</li>
+
+ <li><p>If the index of the <a href=#current-entry-of-the-joint-session-history>current entry of the joint session
+ history</a> plus <var title="">delta</var> is less than zero or
+ greater than or equal to the number of items in the <a href=#joint-session-history>joint
+ session history</a>, then abort these steps.</p>
+
+ <li><p>Let <var title="">specified entry</var> be the entry in the
+ <a href=#joint-session-history>joint session history</a> whose index is the sum of <var title="">delta</var> and the index of the <a href=#current-entry-of-the-joint-session-history>current entry of
+ the joint session history</a>.</li>
+
+ <li><p>Let <var title="">specified browsing context</var> be the
+ <a href=#browsing-context>browsing context</a> of the <var title="">specified
+ entry</var>.</li>
+
+ <li>
+
+ <p>If the <var title="">specified browsing context</var>'s
+ <a href=#active-document>active document</a> is not the same <code><a href=#document>Document</a></code>
+ as the <code><a href=#document>Document</a></code> of the <var title="">specified
+ entry</var>, then run these substeps:</p>
+
+ <ol><li><p><a href=#prompt-to-unload-a-document title="prompt to unload a document">Prompt to
+ unload</a> the <a href=#active-document>active document</a> of the <var title="">specified browsing context</var>. If the user
+ <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be unloaded</a>, then
+ abort these steps.</li>
+
+ <li><p><a href=#unload-a-document title="unload a document">Unload</a> the
+ <a href=#active-document>active document</a> of the <var title="">specified
+ browsing context</var> with the <var title="">recycle</var>
+ parameter set to false.</li>
+
+ </ol></li>
+
+ <li><p><a href=#traverse-the-history>Traverse the history</a> of the <var title="">specified browsing context</var> to the <var title="">specified entry</var>.</p>
+
+ </ol><p>When the user navigates through a <a href=#browsing-context>browsing context</a>,
+ e.g. using a browser's back and forward buttons, the user agent must
+ <a href=#traverse-the-history-by-a-delta>traverse the history by a delta</a> equivalent to the
+ action specified by the user.</p>
+
+ <hr><p>The <dfn id=dom-history-pushstate title=dom-history-pushState><code>pushState(<var title="">data</var>, <var title="">title</var>, <var title="">url</var>)</code></dfn> method adds a state object entry to
+ the history.</p>
+
+ <p>The <dfn id=dom-history-replacestate title=dom-history-replaceState><code>replaceState(<var title="">data</var>, <var title="">title</var>, <var title="">url</var>)</code></dfn> method updates the state object,
+ title, and optionally the <a href=#url>URL</a> of the <a href=#current-entry>current
+ entry</a> in the history.</p>
+
+ <p>When either of these methods is invoked, the user agent must run
+ the following steps:</p>
+
+ <ol><li><p>Let <var title="">cloned data</var> be a <a href=#structured-clone>structured
+ clone</a> of the specified <var title="">data</var>. If this
+ throws an exception, then rethrow that exception and abort these
+ steps.</li>
+
+ <li>
+
+ <p>If a third argument is specified, run these substeps:</p>
+
+ <ol><li><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of the
+ third argument, relative to the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base URL">base URL</a>.</li>
+
+ <li>If that fails, throw a <code><a href=#securityerror>SecurityError</a></code> exception
+ and abort these steps.</li>
+
+ <li>Compare the resulting <a href=#absolute-url>absolute URL</a> to <a href="#the-document's-address">the
+ document's address</a>. If any part of these two <a href=#url title=URL>URLs</a> differ other than the <a href=#url-path title=url-path>&lt;path&gt;</a>, <a href=#url-query title=url-query>&lt;query&gt;</a>, and <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a> components, then
+ throw a <code><a href=#securityerror>SecurityError</a></code> exception and abort these
+ steps.</li>
+
+ <li>If the <a href=#origin>origin</a> of the resulting <a href=#absolute-url>absolute
+ URL</a> is not the same as the <a href=#origin>origin</a> of the
+ <a href=#entry-script>entry script</a>'s <a href="#script's-document" title="script's
+ document">document</a>, and either the <a href=#url-path title=url-path>&lt;path&gt;</a> or <a href=#url-query title=url-query>&lt;query&gt;</a> components of the two
+ <a href=#url title=URL>URLs</a> compared in the previous step
+ differ, throw a <code><a href=#securityerror>SecurityError</a></code> exception and abort
+ these steps. (This prevents sandboxed content from spoofing other
+ pages on the same origin.)</li>
+
+ </ol><p>For the purposes of the comparisons in the above substeps, the
+ <a href=#url-path title=url-path>&lt;path&gt;</a> and <a href=#url-query title=url-query>&lt;query&gt;</a> components can only be the
+ same if the URLs are both <a href=#hierarchical-url title="hierarchical
+ URL">hierarchical URLs</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the method invoked was the <code title=dom-history-pushState><a href=#dom-history-pushstate>pushState()</a></code> method:</p>
+
+ <ol><li>
+
+ <p>Remove all the entries in the <a href=#browsing-context>browsing context</a>'s
+ <a href=#session-history>session history</a> after the <a href=#current-entry>current
+ entry</a>. If the <a href=#current-entry>current entry</a> is the last
+ entry in the session history, then no entries are
+ removed.</p>
+
+ <p class=note>This <a href=#history-notes>doesn't
+ necessarily have to affect</a> the user agent's user
+ interface.</p>
+
+ </li>
+
+ <li><p>Remove any <a href=#concept-task title=concept-task>tasks</a> queued
+ by the <a href=#history-traversal-task-source>history traversal task source</a>.</li>
+
+ <li><p>If appropriate, update the <a href=#current-entry>current entry</a> to
+ reflect any state that the user agent wishes to persist. The
+ entry is then said to be <a href=#an-entry-with-persisted-user-state>an entry with persisted user
+ state</a>.</li>
+
+ <li><p>Add a <a href=#state-object>state object</a> entry to the session
+ history, after the <a href=#current-entry>current entry</a>, with <var title="">cloned data</var> as the <a href=#state-object>state object</a>, the
+ given <var title="">title</var> as the title, and, if the third
+ argument is present, the <a href=#absolute-url>absolute URL</a> that was found
+ earlier in this algorithm as the <a href=#url>URL</a> of the
+ entry.</li>
+
+ <li><p>Update the <a href=#current-entry>current entry</a> to be this newly
+ added entry.</li>
+
+ </ol><p>Otherwise, if the method invoked was the <code title=dom-history-replaceState><a href=#dom-history-replacestate>replaceState()</a></code> method:</p>
+
+ <ol><li><p>Update the <a href=#current-entry>current entry</a> in the session
+ history so that <var title="">cloned data</var> is the entry's
+ new state object, the given <var title="">title</var> is the new
+ title, and, if the third argument is present, the <a href=#absolute-url>absolute
+ URL</a> that was found earlier in this algorithm is the
+ entry's new <a href=#url>URL</a>.</li>
+
+ </ol></li>
+
+ <li><p>If the <a href=#current-entry>current entry</a> in the session history
+ represents a non-GET request (e.g. it was the result of a POST
+ submission) then update it to instead represent a GET request
+ (<a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or
+ equivalent</a>).</li>
+
+ <li>
+
+ <p>If the third argument is present, set <a href="#the-document's-current-address">the document's
+ current address</a> to the <a href=#absolute-url>absolute URL</a> that was
+ found earlier in this algorithm.</p>
+
+ <p class=note>Since this is neither a <a href=#navigate title=navigate>navigation</a> of the <a href=#browsing-context>browsing
+ context</a> nor a <a href=#traverse-the-history title="traverse the history">history
+ traversal</a>, it does not cause a <code title=event-hashchange><a href=#event-hashchange>hashchange</a></code> event to be fired.</p>
+
+ </li>
+
+ <li>
+
+ <p>Set <code title=dom-history-state><a href=#dom-history-state>history.state</a></code> to a
+ <a href=#structured-clone>structured clone</a> of <var title="">cloned
+ data</var>.</p> <!-- it's a clone of /cloned data/, not /data/, so
+ that there's no risk of running scripts again -->
+
+ </li>
+
+ <li>
+
+ <p>Let the <a href=#latest-entry>latest entry</a> of the
+ <code><a href=#document>Document</a></code> of the <a href=#current-entry>current entry</a> be the
+ <a href=#current-entry>current entry</a>.</p>
+
+ </li>
+
+ </ol><p class=note>The <var title="">title</var> is purely
+ advisory. User agents might use the title in the user interface.</p>
+
+ <p>User agents may limit the number of state objects added to the
+ session history per page. If a page hits the UA-defined limit, user
+ agents must remove the entry immediately after the first entry for
+ that <code><a href=#document>Document</a></code> object in the session history after
+ having added the new entry. (Thus the state history acts as a FIFO
+ buffer for eviction, but as a LIFO buffer for navigation.)</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Consider a game where the user can navigate along a line, such
+ that the user is always at some coordinate, and such that the user
+ can bookmark the page corresponding to a particular coordinate, to
+ return to it later.</p>
+
+ <p>A static page implementing the x=5 position in such a game could
+ look like the following:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;!-- this is http://example.com/line?x=5 --&gt;
+&lt;title&gt;Line Game - 5&lt;/title&gt;
+&lt;p&gt;You are at coordinate 5 on the line.&lt;/p&gt;
+&lt;p&gt;
+ &lt;a href="?x=6"&gt;Advance to 6&lt;/a&gt; or
+ &lt;a href="?x=4"&gt;retreat to 4&lt;/a&gt;?
+&lt;/p&gt;</pre>
+
+ <p>The problem with such a system is that each time the user
+ clicks, the whole page has to be reloaded. Here instead is another
+ way of doing it, using script:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;!-- this starts off as http://example.com/line?x=5 --&gt;
+&lt;title&gt;Line Game - 5&lt;/title&gt;
+&lt;p&gt;You are at coordinate &lt;span id="coord"&gt;5&lt;/span&gt; on the line.&lt;/p&gt;
+&lt;p&gt;
+ &lt;a href="?x=6" onclick="go(1); return false;"&gt;Advance to 6&lt;/a&gt; or
+ &lt;a href="?x=4" onclick="go(-1); return false;"&gt;retreat to 4&lt;/a&gt;?
+&lt;/p&gt;
+&lt;script&gt;
+ var currentPage = 5; // prefilled by server
+ function go(d) {
+ setupPage(currentPage + d);
+ history.pushState(currentPage, document.title, '?x=' + currentPage);
+ }
+ onpopstate = function(event) {
+ setupPage(event.state);
+ }
+ function setupPage(page) {
+ currentPage = page;
+ document.title = 'Line Game - ' + currentPage;
+ document.getElementById('coord').textContent = currentPage;
+ document.links[0].href = '?x=' + (currentPage+1);
+ document.links[0].textContent = 'Advance to ' + (currentPage+1);
+ document.links[1].href = '?x=' + (currentPage-1);
+ document.links[1].textContent = 'retreat to ' + (currentPage-1);
+ }
+&lt;/script&gt;</pre>
+
+ <p>In systems without script, this still works like the previous
+ example. However, users that <em>do</em> have script support can
+ now navigate much faster, since there is no network access for the
+ same experience. Furthermore, contrary to the experience the user
+ would have with just a na&iuml;ve script-based approach,
+ bookmarking and navigating the session history still work.</p>
+
+ <p>In the example above, the <var title="">data</var> argument to
+ the <code title=dom-history-pushState><a href=#dom-history-pushstate>pushState()</a></code> method
+ is the same information as would be sent to the server, but in a
+ more convenient form, so that the script doesn't have to parse the
+ URL each time the user navigates.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>Applications might not use the same title for a <a href=#session-history-entry>session
+ history entry</a> as the value of the document's
+ <code><a href=#the-title-element>title</a></code> element at that time. For example, here is a
+ simple page that shows a block in the <code><a href=#the-title-element>title</a></code> element.
+ Clearly, when navigating backwards to a previous state the user
+ does not go back in time, and therefore it would be inappropriate
+ to put the time in the session history title.</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;TITLE&gt;Line&lt;/TITLE&gt;
+&lt;SCRIPT&gt;
+ setInterval(function () { document.title = 'Line - ' + new Date(); }, 1000);
+ var i = 1;
+ function inc() {
+ set(i+1);
+ history.pushState(i, 'Line - ' + i);
+ }
+ function set(newI) {
+ i = newI;
+ document.forms.F.I.value = newI;
+ }
+&lt;/SCRIPT&gt;
+&lt;BODY ONPOPSTATE="set(event.state)"&gt;
+&lt;FORM NAME=F&gt;
+State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BUTTON ONCLICK="inc()"&gt;
+&lt;/FORM&gt;</pre>
+
+ </div>
+
+
+
+ <h4 id=the-location-interface><span class=secno>6.4.3 </span>The <code><a href=#location>Location</a></code> interface</h4>
+
+ <p>Each <code><a href=#document>Document</a></code> object in a <a href=#browsing-context>browsing
+ context</a>'s session history is associated with a unique
+ instance of a <code><a href=#location>Location</a></code> object.</p>
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-location><a href=#dom-document-location>location</a></code> [ = <var title="">value</var> ]</dt>
+ <dt><var title="">window</var> . <code title=dom-location><a href=#dom-location>location</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#location>Location</a></code> object with the current page's location.</p>
+
+ <p>Can be set, to navigate to another page.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-location title=dom-document-location><code>location</code></dfn> attribute
+ of the <code><a href=#htmldocument>HTMLDocument</a></code> interface must return the
+ <code><a href=#location>Location</a></code> object for that <code><a href=#document>Document</a></code> object,
+ if it is in a <a href=#browsing-context>browsing context</a>, and null otherwise.</p>
+
+ <p>The <dfn id=dom-location title=dom-location><code>location</code></dfn>
+ attribute of the <code><a href=#window>Window</a></code> interface must return the
+ <code><a href=#location>Location</a></code> object for that <code><a href=#window>Window</a></code> object's
+ <code><a href=#document>Document</a></code>.</p>
+
+ </div>
+
+ <p><code><a href=#location>Location</a></code> objects provide a representation of <a href="#the-document's-current-address" title="the document's current address">their document's current
+ address</a>, and allow the <a href=#current-entry>current entry</a> of the
+ <a href=#browsing-context>browsing context</a>'s session history to be changed, by
+ adding or replacing entries in the <code title=dom-history><a href=#dom-history>history</a></code> object.</p>
+
+ <pre class=idl>interface <dfn id=location>Location</dfn> {
+ stringifier attribute DOMString <a href=#dom-location-href title=dom-location-href>href</a>;
+ void <a href=#dom-location-assign title=dom-location-assign>assign</a>(DOMString url);
+ void <a href=#dom-location-replace title=dom-location-replace>replace</a>(DOMString url);
+ void <a href=#dom-location-reload title=dom-location-reload>reload</a>();
+
+ // <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a> <!-- blame brendan for these "innovative" names -->
+ attribute DOMString <a href=#dom-location-protocol title=dom-location-protocol>protocol</a>;
+ attribute DOMString <a href=#dom-location-host title=dom-location-host>host</a>;
+ attribute DOMString <a href=#dom-location-hostname title=dom-location-hostname>hostname</a>;
+ attribute DOMString <a href=#dom-location-port title=dom-location-port>port</a>;
+ attribute DOMString <a href=#dom-location-pathname title=dom-location-pathname>pathname</a>;
+ attribute DOMString <a href=#dom-location-search title=dom-location-search>search</a>;
+ attribute DOMString <a href=#dom-location-hash title=dom-location-hash>hash</a>;
+
+ // resolving relative URLs
+ DOMString <a href=#dom-location-resolveurl title=dom-location-resolveURL>resolveURL</a>(DOMString url);
+};</pre>
+
+ <dl class=domintro><dt><var title="">location</var> . <code title=dom-location-href><a href=#dom-location-href>href</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current page's location.</p>
+
+ <p>Can be set, to navigate to another page.</p>
+
+ </dd>
+
+ <dt><var title="">location</var> . <code title=dom-location-assign><a href=#dom-location-assign>assign</a></code>(<var title="">url</var>)</dt>
+
+ <dd>
+
+ <p>Navigates to the given page.</p>
+
+ </dd>
+
+ <dt><var title="">location</var> . <code title=dom-location-replace><a href=#dom-location-replace>replace</a></code>(<var title="">url</var>)</dt>
+
+ <dd>
+
+ <p>Removes the current page from the session history and navigates to the given page.</p>
+
+ </dd>
+
+ <dt><var title="">location</var> . <code title=dom-location-reload><a href=#dom-location-reload>reload</a></code>()</dt>
+
+ <dd>
+
+ <p>Reloads the current page.</p>
+
+ </dd>
+
+ <dt><var title="">url</var> = <var title="">location</var> . <code title=dom-location-resolveURL><a href=#dom-location-resolveurl>resolveURL</a></code>(<var title="">url</var>)</dt>
+
+ <dd>
+
+ <p>Resolves the given relative URL to an absolute URL.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-location-href title=dom-location-href><code>href</code></dfn>
+ attribute must return <a href="#the-document's-current-address" title="the document's current
+ address">the current address</a> of the associated
+ <code><a href=#document>Document</a></code> object, as an <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>On setting, if the <code><a href=#location>Location</a></code> object's associated
+ <code><a href=#document>Document</a></code> object has <a href=#completely-loaded>completely loaded</a>,
+ then the user agent must act as if the <code title=dom-location-assign><a href=#dom-location-assign>assign()</a></code> method had been called
+ with the new value as its argument. Otherwise, the user agent must
+ act as if the <code title=dom-location-replace><a href=#dom-location-replace>replace()</a></code>
+ method had been called with the new value as its argument.</p>
+ <!--DONAV location.href, defined in terms of the paragraphs below-->
+
+ <p>When the <dfn id=dom-location-assign title=dom-location-assign><code>assign(<var title="">url</var>)</code></dfn> method is invoked, the UA must
+ <a href=#resolve-a-url title="resolve a url">resolve</a> the argument, relative to
+ the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base URL">base
+ URL</a>, and if that is successful, must
+ <a href=#navigate>navigate</a><!--DONAV location.href/assign--> the
+ <a href=#browsing-context>browsing context</a> to the specified <var title="">url</var>. If the <a href=#browsing-context>browsing context</a>'s
+ <a href=#session-history>session history</a> contains only one
+ <code><a href=#document>Document</a></code>, and that was the <code><a href=#about:blank>about:blank</a></code>
+ <code><a href=#document>Document</a></code> created when the <a href=#browsing-context>browsing context</a>
+ was created, then the navigation must be done with <a href=#replacement-enabled>replacement
+ enabled</a>.</p> <!-- READ ME WHEN EDITING THIS: IE and Firefox
+ only seem to treat it that way if the DOM is still a virgin DOM;
+ Safari doesn't check that. Thus this might need changing if testing
+ shows the IE/Firefox behaviour is required here. -->
+
+ <p>When the <dfn id=dom-location-replace title=dom-location-replace><code>replace(<var title="">url</var>)</code></dfn> method is invoked, the UA must
+ <a href=#resolve-a-url title="resolve a url">resolve</a> the argument, relative to
+ the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base URL">base
+ URL</a>, and if that is successful,
+ <a href=#navigate>navigate</a><!--DONAV location.href/replace--> the
+ <a href=#browsing-context>browsing context</a> to the specified <var title="">url</var> with <a href=#replacement-enabled>replacement enabled</a>.</p>
+
+ <p>Navigation for the <code title=dom-location-assign><a href=#dom-location-assign>assign()</a></code> and <code title=dom-location-replace><a href=#dom-location-replace>replace()</a></code> methods must be done
+ with the <a href="#script's-browsing-context" title="script's browsing context">browsing
+ context</a> of the script that invoked the method as the
+ <a href=#source-browsing-context>source browsing context</a>.</p>
+
+ <p>If the <a href=#resolve-a-url title="resolve a url">resolving</a> step of the
+ <code title=dom-location-assign><a href=#dom-location-assign>assign()</a></code> and <code title=dom-location-replace><a href=#dom-location-replace>replace()</a></code> methods is not
+ successful, then the user agent must instead throw a
+ <code><a href=#syntaxerror>SyntaxError</a></code> exception.</p>
+
+ <p>When the <dfn id=dom-location-reload title=dom-location-reload><code>reload()</code></dfn> method is
+ invoked, the user agent must run the appropriate steps from the
+ following list:</p>
+
+ <dl class=switch><dt>If the currently executing <a href=#concept-task title=concept-task>task</a> is the dispatch of a <code title=event-resize>resize</code> event in response to the user
+ resizing the <a href=#browsing-context>browsing context</a></dt>
+
+ <dd><p>Repaint the <a href=#browsing-context>browsing context</a> and abort these
+ steps.</dd> <!-- this theoretically would have no effect but in
+ practice can be useful to work around rendering bugs. -->
+
+ <dt>If the <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active
+ document</a> is <a href=#an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a></dt>
+
+ <dd><p><a href=#process-the-iframe-attributes title="process the iframe attributes">Reprocess the
+ <code>iframe</code> attributes</a> of the <a href=#browsing-context>browsing
+ context</a>'s <a href=#browsing-context-container>browsing context container</a>.</dd>
+
+ <dt>If the <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active
+ document</a> has its <a href=#reload-override-flag>reload override
+ flag</a> set</dt>
+
+ <dd><p>Perform <a href=#an-overridden-reload>an overridden reload</a>.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd><p><a href=#navigate>Navigate</a><!--DONAV location.reload()--> the
+ <a href=#browsing-context>browsing context</a> to <a href="#the-document's-current-address">the document's current
+ address</a> with <a href=#replacement-enabled>replacement enabled</a>. The
+ <a href=#source-browsing-context>source browsing context</a> must be the <a href=#browsing-context>browsing
+ context</a> being navigated.</dd> <!-- it appears that
+ document.reload() always uses GET and does not, e.g., re-POST. -->
+
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/141 -->
+
+ </dl><p>When a user requests that the current page of a <a href=#browsing-context>browsing
+ context</a> be reloaded through a user interface element, the
+ user agent should <a href=#navigate>navigate</a><!--DONAV user reload--> the
+ <a href=#browsing-context>browsing context</a> to the same resource as
+ <code><a href=#document>Document</a></code>, with <a href=#replacement-enabled>replacement enabled</a>. In the
+ case of non-idempotent methods (e.g. HTTP POST), the user agent
+ should prompt the user to confirm the operation first, since
+ otherwise transactions (e.g. purchases or database modifications)
+ could be repeated. User agents may allow the user to explicitly
+ override any caches when reloading. If <a href=#browsing-context>browsing
+ context</a>'s <a href=#active-document>active document</a>'s <a href=#reload-override-flag>reload
+ override flag</a> is set, then the user agent may instead perform
+ <a href=#an-overridden-reload>an overridden reload</a> rather than the navigation
+ described in this paragraph.</p>
+
+ </div>
+
+ <p>The <code><a href=#location>Location</a></code> interface also has the complement of
+ <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, <dfn id=dom-location-protocol title=dom-location-protocol><code>protocol</code></dfn>, <dfn id=dom-location-host title=dom-location-host><code>host</code></dfn>, <dfn id=dom-location-port title=dom-location-port><code>port</code></dfn>, <dfn id=dom-location-hostname title=dom-location-hostname><code>hostname</code></dfn>, <dfn id=dom-location-pathname title=dom-location-pathname><code>pathname</code></dfn>, <dfn id=dom-location-search title=dom-location-search><code>search</code></dfn>, and <dfn id=dom-location-hash title=dom-location-hash><code>hash</code></dfn>. <span class=impl>These must follow the rules given for <a href=#url-decomposition-idl-attributes>URL
+ decomposition IDL attributes</a>, with the <a href=#concept-uda-input title=concept-uda-input>input</a> being <a href="#the-document's-current-address" title="the
+ document's current address">the current address</a> of the
+ associated <code><a href=#document>Document</a></code> object, as an <a href=#absolute-url>absolute
+ URL</a> (same as the <code title=dom-location-href><a href=#dom-location-href>href</a></code>
+ attribute), and the <a href=#concept-uda-setter title=concept-uda-setter>common setter
+ action</a> being the same as setting the <code title=dom-location-href><a href=#dom-location-href>href</a></code> attribute to the new output
+ value.</span></p>
+
+ <div class=impl>
+
+ <hr><p>The <dfn id=dom-location-resolveurl title=dom-location-resolveURL><code>resolveURL(<var title="">url</var>)</code></dfn> method must <a href=#resolve-a-url title="resolve a
+ url">resolve</a> its <var title="">url</var> argument, relative
+ to the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base
+ URL">base URL</a>, and if that succeeds, return the resulting
+ <a href=#absolute-url>absolute URL</a>. If it fails, it must throw a
+ <code><a href=#syntaxerror>SyntaxError</a></code> exception instead.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h5 id=security-location><span class=secno>6.4.3.1 </span>Security</h5>
+
+ <p id=security-3>User agents must throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception whenever any of the members of a
+ <code><a href=#location>Location</a></code> object are accessed by scripts whose
+ <a href=#effective-script-origin>effective script origin</a> is not the <a href=#same-origin title="same
+ origin">same</a> as the <code><a href=#location>Location</a></code> object's associated
+ <code><a href=#document>Document</a></code>'s <a href=#effective-script-origin>effective script origin</a>, with
+ the following exceptions:</p>
+
+ <ul><li>The <code title=dom-location-href><a href=#dom-location-href>href</a></code> setter, if the
+ script is running in a <a href=#browsing-context>browsing context</a> that is
+ <a href=#allowed-to-navigate>allowed to navigate</a> the browsing context with which
+ the <code><a href=#location>Location</a></code> object is associated
+
+ <li>The <code title=dom-location-replace><a href=#dom-location-replace>replace()</a></code> method,
+ if the script is running in a <a href=#browsing-context>browsing context</a> that is
+ <a href=#allowed-to-navigate>allowed to navigate</a> the browsing context with which
+ the <code><a href=#location>Location</a></code> object is associated
+
+ </ul></div>
+
+
+ <div class=impl>
+
+ <h4 id=history-notes><span class=secno>6.4.4 </span>Implementation notes for session history</h4>
+ <!-- don't change the ID without updating multiple internal links -->
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The <code><a href=#history-0>History</a></code> interface is not meant to place
+ restrictions on how implementations represent the session history to
+ the user.</p>
+
+ <p>For example, session history could be implemented in a tree-like
+ manner, with each page having multiple "forward" pages. This
+ specification doesn't define how the linear list of pages in the
+ <code title=dom-history><a href=#dom-history>history</a></code> object are derived from the
+ actual session history as seen from the user's perspective.</p>
+
+ <p>Similarly, a page containing two <code><a href=#the-iframe-element>iframe</a></code>s has a <code title=dom-history><a href=#dom-history>history</a></code> object distinct from the
+ <code><a href=#the-iframe-element>iframe</a></code>s' <code title=dom-history><a href=#dom-history>history</a></code>
+ objects, despite the fact that typical Web browsers present the user
+ with just one "Back" button, with a session history that interleaves
+ the navigation of the two inner frames and the outer page.</p>
+
+ <p><strong>Security</strong>: It is suggested that to avoid letting
+ a page "hijack" the history navigation facilities of a UA by abusing
+ <code title=dom-history-pushState><a href=#dom-history-pushstate>pushState()</a></code>, the UA
+ provide the user with a way to jump back to the previous page
+ (rather than just going back to the previous state). For example,
+ the back button could have a drop down showing just the pages in the
+ session history, and not showing any of the states. Similarly, an
+ aural browser could have two "back" commands, one that goes back to
+ the previous state, and one that jumps straight back to the previous
+ page.</p>
+
+ <p>In addition, a user agent could ignore calls to <code title=dom-history-pushState><a href=#dom-history-pushstate>pushState()</a></code> that are invoked on
+ a timer, or from event listeners that are not triggered in response
+ to a clear user action, or that are invoked in rapid succession.</p>
+
+ </div>
+
+
+ <h3 id=browsing-the-web><span class=secno>6.5 </span>Browsing the Web</h3>
+
+ <div class=impl>
+
+ <h4 id=navigating-across-documents><span class=secno>6.5.1 </span>Navigating across documents</h4>
+
+ <p>Certain actions cause the <a href=#browsing-context>browsing context</a> to
+ <i><a href=#navigate>navigate</a></i> to a new resource. Navigation always involves
+ <dfn id=source-browsing-context>source browsing context</dfn>, which is the browsing context
+ which was responsible for starting the navigation.</p>
+
+ <p class=example>For example, <a href=#following-hyperlinks title="following
+ hyperlinks">following a hyperlink</a>, <a href=#concept-form-submit title=concept-form-submit>form submission</a>, and the <code title=dom-open><a href=#dom-open>window.open()</a></code> and <code title=dom-location-assign><a href=#dom-location-assign>location.assign()</a></code> methods can all
+ cause a browsing context to navigate.</p>
+
+ <p>A user agent may provide various ways for the user to explicitly
+ cause a browsing context to navigate, in addition to those defined
+ in this specification.</p>
+
+ <!-- NAVIGATE <dfn>navigate</dfn> -->
+ <!-- For places that _call_ this, as opposed to just referring to
+ it, search for "DONAV" -->
+ <p>When a browsing context is <dfn id=navigate title=navigate>navigated</dfn>
+ to a new resource, the user agent must run the following steps:</p>
+
+ <ol><li><p>Release the <a href=#storage-mutex>storage mutex</a>.</li>
+
+ <li id=sandboxLinks>
+
+ <p>If the <a href=#source-browsing-context>source browsing context</a> is not the same as
+ the <a href=#browsing-context>browsing context</a> being navigated, and the
+ <a href=#source-browsing-context>source browsing context</a> is not one of the <a href=#ancestor-browsing-context title="ancestor browsing context">ancestor browsing
+ contexts</a> of the <a href=#browsing-context>browsing context</a> being
+ navigated, and the <a href=#browsing-context>browsing context</a> being navigated is
+ not both a <a href=#top-level-browsing-context>top-level browsing context</a> and one of the
+ <a href=#ancestor-browsing-context title="ancestor browsing context">ancestor browsing
+ contexts</a> of the <a href=#source-browsing-context>source browsing context</a>, and
+ the <a href=#source-browsing-context>source browsing context</a> had its <a href=#sandboxed-navigation-browsing-context-flag>sandboxed
+ navigation browsing context flag</a> set when its <a href=#active-document>active
+ document</a> was created, then abort these steps.</p>
+
+ <p>Otherwise, if the <a href=#browsing-context>browsing context</a> being navigated
+ is a <a href=#top-level-browsing-context>top-level browsing context</a>, and is one of the
+ <a href=#ancestor-browsing-context title="ancestor browsing context">ancestor browsing
+ contexts</a> of the <a href=#source-browsing-context>source browsing context</a>, and
+ the <a href=#source-browsing-context>source browsing context</a> had its <a href=#sandboxed-top-level-navigation-browsing-context-flag>sandboxed
+ top-level navigation browsing context flag</a> set when its
+ <a href=#active-document>active document</a> was created, then abort these
+ steps.</p>
+
+ <p>In both cases, the user agent may additionally offer to open
+ the new resource in a new <a href=#top-level-browsing-context>top-level browsing context</a>
+ or in the <a href=#top-level-browsing-context>top-level browsing context</a> of the
+ <a href=#source-browsing-context>source browsing context</a>, at the user's option, in
+ which case the user agent must <a href=#navigate>navigate</a><!--DONAV
+ sandbox manual load--> that designated <a href=#top-level-browsing-context>top-level browsing
+ context</a> to the new resource as if the user had requested it
+ independently.</p>
+
+ </li>
+
+ <li id=seamlessLinks><p>If the <a href=#source-browsing-context>source browsing
+ context</a> is the same as the <a href=#browsing-context>browsing context</a>
+ being navigated, and this browsing context has its <a href=#seamless-browsing-context-flag>seamless
+ browsing context flag</a> set, and the <a href=#browsing-context>browsing
+ context</a> being navigated was not chosen using an
+ <a href=#explicit-self-navigation-override>explicit self-navigation override</a>, then find the
+ nearest <a href=#ancestor-browsing-context>ancestor browsing context</a> that does not have
+ its <a href=#seamless-browsing-context-flag>seamless browsing context flag</a> set, and continue
+ these steps as if <em>that</em> <a href=#browsing-context>browsing context</a> was
+ the one that was going to be <a href=#navigate title=navigate>navigated</a> instead.</li>
+
+ <li><p>If there is a preexisting attempt to navigate the
+ <a href=#browsing-context>browsing context</a>, and the <a href=#source-browsing-context>source browsing
+ context</a> is the same as the <a href=#browsing-context>browsing context</a>
+ being navigated, and that attempt is currently
+ running the <a href=#unload-a-document>unload a document</a> algorithm, and the
+ <a href=#origin>origin</a> of the <a href=#url>URL</a> of the resource being
+ loaded in that navigation is not the <a href=#same-origin>same origin</a> as
+ the <a href=#origin>origin</a> of the <a href=#url>URL</a> of the resource
+ being loaded in <em>this</em> navigation, then abort these steps
+ without affecting the preexisting attempt to navigate the
+ <a href=#browsing-context>browsing context</a>.</li>
+ <!-- http://www.hixie.ch/tests/adhoc/html/navigation/unload/ -->
+
+ <li><p>If a <a href=#concept-task title=concept-task>task</a> queued by the
+ <a href=#traverse-the-history-by-a-delta>traverse the history by a delta</a> algorithm is running
+ the <a href=#unload-a-document>unload a document</a> algorithm for the <a href=#active-document>active
+ document</a> of the <a href=#browsing-context>browsing context</a> being
+ navigated, then abort these steps without affecting the
+ <a href=#unload-a-document>unload a document</a> algorithm or the aforementioned
+ history traversal task.</li> <!-- this stops pages from
+ hijacking the back/forward button -->
+
+ <li><p>If there is a preexisting attempt to navigate the
+ <a href=#browsing-context>browsing context</a>, and either that attempt has not yet
+ <a href=#concept-navigate-mature title=concept-navigate-mature>matured</a> (i.e. it has
+ not passed the point of making its <code><a href=#document>Document</a></code> the
+ <a href=#active-document>active document</a>), or that navigation's resource is not
+ to be fetched using HTTP GET <a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or equivalent</a>, or its
+ resource's <a href=#absolute-url>absolute URL</a> differs from this attempt's by
+ more than the presence, absence, or value of the <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a> component, then cancel
+ that preexisting attempt to navigate the <a href=#browsing-context>browsing
+ context</a>.</li>
+
+ <li id=navigate-fragid-step><p><i>Fragment identifiers</i>: If
+ the <a href=#absolute-url>absolute URL</a> of the new resource is the same as
+ the <a href="#the-document's-address" title="the document's address">address</a> of the
+ <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing context</a>
+ being navigated, ignoring any <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a> components of those
+ <a href=#url title=URL>URLs</a>, and the new resource is to be
+ fetched using HTTP GET <a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or
+ equivalent</a>, and the <a href=#absolute-url>absolute URL</a> of the new
+ resource has a <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a>
+ component (even if it is empty), then <a href=#scroll-to-fragid title=navigate-fragid>navigate to that fragment identifier</a>
+ and abort these steps.</li>
+
+ <li><p>Cancel <em>any</em> preexisting attempt to navigate the
+ <a href=#browsing-context>browsing context</a>, including canceling any instances of
+ the <a href=#fetch>fetch</a> algorithm started by those attempts. If one
+ of those attempts has already <a href=#create-a-document-object title="create a document
+ object">created a new <code>Document</code> object</a>, <a href=#abort-a-document title="abort a document">abort</a> that <code><a href=#document>Document</a></code>
+ also. (Previous navigation attempts whose <a href=#fetch>fetch</a>
+ requests have <em>finished</em> are unaffected, however.)</li>
+
+ <li><p>If the new resource is to be handled using a mechanism that
+ does not affect the browsing context, e.g. ignoring the navigation
+ request altogether because the specified scheme is not one of the
+ supported protocols, then abort these steps and proceed with that
+ mechanism instead.</li>
+
+ <li><p><a href=#prompt-to-unload-a-document title="prompt to unload a document">Prompt to
+ unload</a> the <code><a href=#document>Document</a></code> object. If the user
+ <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be unloaded</a>, then
+ these steps must be aborted.</li>
+
+ <li><p><a href=#abort-a-document title="abort a document">Abort</a> the
+ <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing
+ context</a>.</li>
+
+ <li>
+
+ <p>If the new resource is to be handled by displaying some sort of
+ inline content, e.g. an error message because the specified scheme
+ is not one of the supported protocols, or an inline prompt to
+ allow the user to select <a href=#dom-navigator-registerprotocolhandler title=dom-navigator-registerProtocolHandler>a registered
+ handler</a> for the given scheme, then <a href=#read-ua-inline title=navigate-ua-inline>display the inline content</a> and
+ abort these steps.</p>
+
+ <p class=note>In the case of a registered handler being used,
+ the algorithm will be reinvoked with a new URL to handle the
+ request.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the resource has already been obtained (e.g. because it is
+ being used to populate an <code><a href=#the-object-element>object</a></code> element's new
+ <a href=#child-browsing-context>child browsing context</a>), then skip this step.</p>
+
+ <p>Otherwise:</p>
+
+ <p>If the new resource is to be fetched using HTTP GET <a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or equivalent</a>, and
+ there are <a href=#relevant-application-cache title="relevant application cache">relevant
+ application caches</a> that are identified by a URL with the
+ <a href=#same-origin>same origin</a> as the URL in question, and that have
+ this URL as one of their entries, excluding entries marked as
+ <a href=#concept-appcache-foreign title=concept-appcache-foreign>foreign</a>, then get
+ the resource from the <a href=#concept-appcache-selection title=concept-appcache-selection>most appropriate application
+ cache</a> of those that match.</p>
+
+ <p class=example>For example, imagine an HTML page with an
+ associated application cache displaying an image and a form, where
+ the image is also used by several other application caches. If the
+ user right-clicks on the image and chooses "View Image", then the
+ user agent could decide to show the image from any of those
+ caches, but it is likely that the most useful cache for the user
+ would be the one that was used for the aforementioned HTML
+ page. On the other hand, if the user submits the form, and the
+ form does a POST submission, then the user agent will not use an
+ application cache at all; the submission will be made to the
+ network.</p>
+
+ <p>Otherwise, <a href=#fetch>fetch</a> the new resource, with the
+ <i>manual redirect flag</i> set.</p>
+
+ <p>If the resource is being fetched using a method other than one
+ <a href=#concept-http-equivalent-get title=concept-http-equivalent-get>equivalent to</a>
+ HTTP's GET<!-- or HEAD (but that can't happen) -->, or, if the
+ <a href=#navigate title=navigate>navigation algorithm</a> was invoked as
+ a result of the <a href=#concept-form-submit title=concept-form-submit>form submission
+ algorithm</a>, then the <a href=#fetch title=fetch>fetching
+ algorithm</a> must be invoked from the <a href=#origin>origin</a> of
+ the <a href=#active-document>active document</a> of the <a href=#source-browsing-context>source browsing
+ context</a>, if any.</p> <!-- potentially http-origin privacy
+ sensitive -->
+
+ <p>If the <a href=#browsing-context>browsing context</a> being navigated is a
+ <a href=#child-browsing-context>child browsing context</a> for an <code><a href=#the-iframe-element>iframe</a></code> or
+ <code><a href=#the-object-element>object</a></code> element, then the <a href=#fetch title=fetch>fetching
+ algorithm</a> must be invoked from the <code><a href=#the-iframe-element>iframe</a></code> or
+ <code><a href=#the-object-element>object</a></code> element's <a href=#browsing-context-scope-origin>browsing context scope
+ origin</a>, if it has one.</p> <!-- potentially http-origin
+ privacy sensitive -->
+
+ <p>The <a href=#fetch>fetch</a> algorithm must <a href=#delay-the-load-event>delay the load
+ event</a> of the <a href=#browsing-context>browsing context</a>.</p> <!-- this
+ is what makes <iframe> elements delay the load event of their
+ parent browsing context when their child browsing context is in
+ between this step and the step that starts the parser. -->
+
+ </li>
+
+ <li>
+
+ <p>At this point, unless this step has already been reached once
+ before in the execution of this instance of the algorithm, the
+ user agents must return to whatever algorithm invoked the
+ navigation steps and must continue these steps asynchronously.</p>
+
+ </li>
+
+ <li>
+
+ <p>If fetching the resource results in a redirect, and either the
+ <a href=#url>URL</a> of the target of the redirect has the <a href=#same-origin>same
+ origin</a> as the original resource, or the resource is being
+ obtained using the POST method or a safe method (in HTTP terms),
+ return to <a href=#navigate-fragid-step>the step labeled
+ "fragment identifiers"</a> with the new resource, except that if
+ the <a href=#url>URL</a> of the target of the redirect does not have a
+ fragment identifier and the <a href=#url>URL</a> of the resource that
+ led to the redirect does, then the fragment identifier of the
+ resource that led to the redirect must be propagated to the
+ <a href=#url>URL</a> of the target of the redirect.</p>
+
+ <p class=example>So for instance, if the original URL was "<code title="">http://example.com/#!sample</code>" and "<code title="">http://example.com/</code>" is found to redirect to
+ "<code title="">https://example.com/</code>", the URL of the new
+ resource will be "<code title="">https://example.com/#!sample</code>".</p>
+
+ <p>Otherwise, if fetching the resource results in a redirect but
+ the <a href=#url>URL</a> of the target of the redirect does not have
+ the <a href=#same-origin>same origin</a> as the original resource and the
+ resource is being obtained using a method that is neither the POST
+ method nor a safe method (in HTTP terms), then abort these
+ steps. The user agent may indicate to the user that the navigation
+ has been aborted for security reasons.</p>
+
+ </li>
+
+ <li><p>Wait for one or more bytes to be available or for the user
+ agent to establish that the resource in question is empty. During
+ this time, the user agent may allow the user to cancel this
+ navigation attempt or start other navigation attempts.</li>
+
+ <li>
+
+ <p>If the resource was not fetched from an <a href=#application-cache>application
+ cache</a>, and was to be fetched using HTTP GET <a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or equivalent</a>, and its
+ URL <a href=#concept-appcache-matches-fallback title=concept-appcache-matches-fallback>matches the
+ fallback namespace</a> of one or more <a href=#relevant-application-cache title="relevant
+ application cache">relevant application caches</a>, and the
+ <a href=#concept-appcache-selection title=concept-appcache-selection>most appropriate
+ application cache</a> of those that match does not have an
+ entry in its <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online
+ whitelist</a> that has the <a href=#same-origin>same origin</a> as the
+ resource's URL and that is a <a href=#prefix-match>prefix match</a> for the
+ resource's URL, and the user didn't cancel the navigation attempt
+ during the previous step, and the navigation attempt failed (e.g.
+ the server returned a 4xx or 5xx status code <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a>, or
+ there was a DNS error), then:</p> <!-- note that a redirect can
+ never reach this point as it is handled earlier, meaning that a
+ captive portal captures URLs in fallback namespaces and you can't
+ ever get to the fallback file of a resource if you have a captive
+ portal -->
+
+ <p>Let <var title="">candidate</var> be the <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback resource</a>
+ specified for the <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespace</a> in
+ question. If multiple application caches match, the user agent
+ must use the fallback of the <a href=#concept-appcache-selection title=concept-appcache-selection>most appropriate application
+ cache</a> of those that match.</p>
+
+ <p>If <var title="">candidate</var> is not marked as <a href=#concept-appcache-foreign title=concept-appcache-foreign>foreign</a>, then the user
+ agent must discard the failed load and instead continue along
+ these steps using <var title="">candidate</var> as the
+ resource. <a href="#the-document's-address">The document's address</a>, if appropriate,
+ will still be the originally requested URL, not the fallback URL,
+ but the user agent may indicate to the user that the original page
+ load failed, that the page used was a fallback resource, and what
+ the URL of the fallback resource actually is.</p>
+
+ </li>
+
+ <li>
+
+ <p><i>Resource handling</i>: If the resource's out-of-band
+ metadata (e.g. HTTP headers), not counting any <a href=#content-type title=Content-Type>type information</a> (such as the
+ Content-Type HTTP header), requires some sort of processing that
+ will not affect the browsing context, then perform that processing
+ and abort these steps.</p>
+
+ <div class=note>
+ <p>Such processing might be triggered by, amongst other things, the
+ following:</p>
+ <ul class=brief><li>HTTP status codes (e.g. 204 No Content or 205 Reset Content)</li>
+ <li>Network errors (e.g. the network interface being unavailable)</li>
+ <li>Cryptographic protocol failures (e.g. an incorrect TLS certificate)</li>
+ <!-- Other schemes are handled earlier -->
+ <!-- Content-Disposition is handled below -->
+ <!-- Content-Type is handled in subsequent steps -->
+ <!-- ...and I can't think of any others. -->
+ </ul></div>
+
+<!--DOWNLOAD-->
+ <p>Responses with HTTP <code title=http-content-disposition>Content-Disposition</code>
+ headers specifying the <code title="">attachment</code>
+ disposition type must be handled <a href=#as-a-download>as a download</a>.</p>
+<!--DOWNLOAD-->
+
+ <!-- theoretically, HTTP 205 processing would occur here,
+ resetting all forms with no other effect. However, it seems nobody
+ actually wants to use this ability, so requiring it here seems
+ like unnecessary work. -->
+
+ <p>HTTP 401 responses that do not include a challenge recognized
+ by the user agent must be processed as if they had no challenge,
+ e.g. rendering the entity body as if the response had been 200
+ OK.</p>
+
+ <p>User agents may show the entity body of an HTTP 401 response
+ even when the response does include a recognized challenge, with the
+ option to login being included in a non-modal fashion, to enable
+ the information provided by the server to be used by the user
+ before authenticating. Similarly, user agents should allow the
+ user to authenticate (in a non-modal fashion) against
+ authentication challenges included in other responses such as HTTP
+ 200 OK responses, effectively allowing resources to present HTTP
+ login forms without requiring their use.</p>
+
+ </li>
+
+ <li><p>Let <var title="">type</var> be <a href=#content-type-sniffing-0 title="Content-Type
+ sniffing">the sniffed type of the resource</a>.</li>
+
+ <li><p>If the user agent has been configured to process resources
+ of the given <var title="">type</var> using some mechanism other
+ than rendering the content in a <a href=#browsing-context>browsing context</a>, then
+ skip this step. Otherwise, if the <var title="">type</var> is one
+ of the following types, jump to the appropriate entry in the
+ following list, and process the resource as described there:</p>
+
+ <dl class=switch><!-- an <span>HTML MIME type</span> --><dt>"<code><a href=#text/html>text/html</a></code>"</dt>
+ <dt>"<code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>"</dt>
+ <dd>Follow the steps given in the <a href=#read-html title=navigate-html>HTML document</a> section, and abort
+ these steps.</dd>
+
+ <!-- an <span>XML MIME type</span> -->
+ <dt>Any type ending in "<code title="">+xml</code>"</dt> <!-- no need to say that the _subtype_ ends in "+xml" so long as the "sniffed type" algorithm continues to drop parameters -->
+ <dt>"<code>application/xml</code>"</dt>
+ <dt>"<code>text/xml</code>"</dt>
+ <dd>Follow the steps given in the <a href=#read-xml title=navigate-xml>XML
+ document</a> section. If that section determines that the
+ content is <em>not</em> to be displayed as a generic XML
+ document, then proceed to the next step in this overall set of
+ steps. Otherwise, abort these steps.</dd>
+
+ <dt>"<code>text/plain</code>"</dt>
+ <dd>Follow the steps given in the <a href=#read-text title=navigate-text>plain text file</a> section, and abort
+ these steps.</dd>
+
+ <dt>"<code><a href=#multipart/x-mixed-replace>multipart/x-mixed-replace</a></code>"</dt>
+ <dd>Follow the steps given in the <a href=#read-multipart-x-mixed-replace title=navigate-multipart-x-mixed-replace>multipart/x-mixed-replace</a>
+ section, and abort these steps.</dd>
+
+ <dt>A supported image type</dt>
+ <dd>Follow the steps given in the <a href=#read-image title=navigate-image>image</a> section, and abort these
+ steps.</dd>
+
+ <dt>A type that will use an external application to render the
+ content in the <a href=#browsing-context>browsing context</a></dt>
+ <dd>Follow the steps given in the <a href=#read-plugin title=navigate-plugin>plugin</a> section, and abort these
+ steps.</dd>
+
+ </dl><p><dfn id="set-the-document's-address" title="set the document's address">Setting the document's
+ address</dfn>: If there is no <dfn id=override-url>override URL</dfn>, then any
+ <code><a href=#document>Document</a></code> created by these steps must have its <a href="#the-document's-address" title="the document's address">address</a> set to the
+ <a href=#url>URL</a> that was originally to be <a href=#fetch title=fetch>fetched</a>, ignoring any other data that was
+ used to obtain the resource (e.g. the entity body in the case of a
+ POST submission is not part of <a href="#the-document's-address">the document's
+ address</a>, nor is the URL of the fallback resource in the
+ case of the original load having failed and that URL having been
+ found to match a <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback
+ namespace</a>). However, if there <em>is</em> an <a href=#override-url>override
+ URL</a>, then any <code><a href=#document>Document</a></code> created by these steps
+ must have its <a href="#the-document's-address" title="the document's address">address</a>
+ set to that <a href=#url>URL</a> instead.</p>
+
+ <p class=note>An <a href=#override-url title="override URL">override URL</a>
+ is set when <a href=#concept-js-deref title=concept-js-deref>dereferencing a
+ <code>javascript:</code> URL</a>.</p>
+
+ <p><dfn id=create-a-document-object title="create a Document object">Creating a new
+ <code>Document</code> object</dfn>: When a <code><a href=#document>Document</a></code>
+ is created as part of the above steps, a new <code><a href=#window>Window</a></code>
+ object must be created and associated with the
+ <code><a href=#document>Document</a></code>, with one exception: if the <a href=#browsing-context>browsing
+ context</a>'s only entry in its <a href=#session-history>session history</a> is
+ the <code><a href=#about:blank>about:blank</a></code> <code><a href=#document>Document</a></code> that was added
+ when the <a href=#browsing-context>browsing context</a> was created, and navigation
+ is occurring with <a href=#replacement-enabled>replacement enabled</a>, and that
+ <code><a href=#document>Document</a></code> has the <a href=#same-origin>same origin</a> as the new
+ <code><a href=#document>Document</a></code>, then the <code><a href=#window>Window</a></code> object of that
+ <code><a href=#document>Document</a></code> must be used instead, and the <code title=dom-document><a href=#dom-document>document</a></code> attribute of the
+ <code><a href=#window>Window</a></code> object must be changed to point to the new
+ <code><a href=#document>Document</a></code> instead.</p>
+
+ </li>
+
+ <li id=navigate-non-Document>
+
+ <p><i>Non-document content</i>: If, given <var title="">type</var>, the new resource is to be handled by
+ displaying some sort of inline content, e.g. a native rendering of
+ the content, an error message because the specified type is not
+ supported, or an inline prompt to allow the user to select <a href=#dom-navigator-registercontenthandler title=dom-navigator-registerContentHandler>a registered
+ handler</a> for the given type, then <a href=#read-ua-inline title=navigate-ua-inline>display the inline content</a> and
+ abort these steps.</p>
+
+ <p class=note>In the case of a registered handler being used,
+ the algorithm will be reinvoked with a new URL to handle the
+ request.</p>
+
+ </li>
+
+ <li><p>Otherwise, the document's <var title="">type</var> is such
+ that the resource will not affect the browsing context, e.g.
+ because the resource is to be handed to an external application or
+ because it is an unknown type that will be processed <a href=#as-a-download>as a
+ download</a>. Process the resource appropriately.</p>
+
+ </ol><hr><p>Some of the sections below, to which the above algorithm defers
+ in certain cases, require the user agent to <dfn id=update-the-session-history-with-the-new-page>update the session
+ history with the new page</dfn>. When a user agent is required to do
+ this, it must <a href=#queue-a-task>queue a task</a> (associated with the
+ <code><a href=#document>Document</a></code> object of the <a href=#current-entry>current entry</a>, not
+ the new one) to run the following steps:</p>
+
+ <ol><li><p><a href=#unload-a-document title="unload a document">Unload</a> the
+ <code><a href=#document>Document</a></code> object of the <a href=#current-entry>current entry</a>,
+ with the <var title="">recycle</var> parameter set to
+ false.</li>
+
+ <li>
+
+ <dl><dt>If the navigation was initiated for <dfn id=entry-update>entry update</dfn> of
+ an entry</dt>
+
+ <dd>
+
+ <ol><li><p>Replace the <code><a href=#document>Document</a></code> of the entry being
+ updated, and any other entries that referenced the same
+ document as that entry, with the new
+ <code><a href=#document>Document</a></code>.</li>
+
+ <li><p><a href=#traverse-the-history>Traverse the history</a> to the new
+ entry.</li>
+
+ </ol><p class=note>This can only happen if the entry being updated
+ is no the <a href=#current-entry>current entry</a>, and can never happen with
+ <a href=#replacement-enabled>replacement enabled</a>. (It happens when the user
+ tried to traverse to a session history entry that no longer had
+ a <code><a href=#document>Document</a></code> object.)</p>
+
+ </dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <ol><li>
+
+ <p>Remove all the entries in the <a href=#browsing-context>browsing
+ context</a>'s <a href=#session-history>session history</a> after the
+ <a href=#current-entry>current entry</a>. If the <a href=#current-entry>current entry</a>
+ is the last entry in the session history, then no entries are
+ removed.</p>
+
+ <p class=note>This <a href=#history-notes>doesn't
+ necessarily have to affect</a> the user agent's user
+ interface.</p>
+
+ </li>
+
+ <li><p>Remove any <a href=#concept-task title=concept-task>tasks</a>
+ queued by the <a href=#history-traversal-task-source>history traversal task
+ source</a>.</li> <!-- so the network is racing
+ history.back(), in the case of setting location.href="" and
+ then calling history.back() -->
+
+ <li><p>Append a new entry at the end of the <code><a href=#history-0>History</a></code>
+ object representing the new resource and its
+ <code><a href=#document>Document</a></code> object and related state.</li>
+
+ <li><p><a href=#traverse-the-history>Traverse the history</a> to the new entry. If
+ the navigation was initiated with <a href=#replacement-enabled>replacement
+ enabled</a>, then the traversal must itself be initiated
+ with <a href=#replacement-enabled>replacement enabled</a>.</p>
+
+ </li>
+
+ </ol></dd>
+
+ </dl></li>
+
+ <li><p>The <a href=#navigate title=navigate>navigation algorithm</a> has
+ now <dfn id=concept-navigate-mature title=concept-navigate-mature>matured</dfn>.</li>
+
+ <li><p><i>Fragment identifier loop</i>: <a href=#spin-the-event-loop>Spin the event
+ loop</a> for a user-agent-defined amount of time, as desired by
+ the user agent implementor. (This is intended to allow the user
+ agent to optimize the user experience in the face of performance
+ concerns.)</li>
+
+ <li><p>If the <code><a href=#document>Document</a></code> object has no parser, or its
+ parser has <a href=#stop-parsing title="stop parsing">stopped parsing</a>, or
+ the user agent has reason to believe the user is no longer
+ interested in scrolling to the fragment identifier, then abort
+ these steps.</li>
+
+ <li><p><a href=#scroll-to-the-fragment-identifier>Scroll to the fragment identifier</a> given in
+ <a href="#the-document's-current-address">the document's current address</a>. If this fails to find
+ <a href=#the-indicated-part-of-the-document title="the indicated part of the document">an indicated part
+ of the document</a>, then return to the <i>fragment identifier
+ loop</i> step.</li>
+
+ </ol><p>The <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#networking-task-source>networking task
+ source</a>.</p>
+
+
+ <h4 id=read-html><span class=secno>6.5.2 </span><dfn title=navigate-html>Page load processing model for HTML files</dfn></h4>
+
+ <p>When an HTML document is to be loaded in a <a href=#browsing-context>browsing
+ context</a>, the user agent must <a href=#queue-a-task>queue a task</a> to
+ <a href=#create-a-document-object>create a <code>Document</code> object</a>, mark it as being
+ an <a href=#html-documents title="HTML documents">HTML document</a>, set its <a href=#concept-document-media-type title=concept-document-media-type>media type</a> to "<code title="">text/html</code>", create an <a href=#html-parser>HTML parser</a>, and
+ associate it with the document. Each <a href=#concept-task title=concept-task>task</a> that the <a href=#networking-task-source>networking task
+ source</a> places on the <a href=#task-queue>task queue</a> while the <a href=#fetch title=fetch>fetching algorithm</a> runs must then fill the
+ parser's <a href=#the-input-stream>input stream</a> with the fetched bytes and cause
+ the <a href=#html-parser>HTML parser</a> to perform the appropriate processing
+ of the input stream.</p>
+
+ <p class=note>The <a href=#the-input-stream>input stream</a> converts bytes into
+ characters for use in the <a href=#tokenization title=tokenization>tokenizer</a>. This process relies, in part,
+ on character encoding information found in the real <a href=#content-type title=Content-Type>Content-Type metadata</a> of the resource;
+ the "sniffed type" is not used for this purpose.</p>
+
+ <!-- next two paragraphs are nearly identical to the navigate-text
+ section, keep them in sync -->
+
+ <p>When no more bytes are available, the user agent must <a href=#queue-a-task>queue
+ a task</a> for the parser to process the implied EOF character,
+ which eventually causes a <code title=event-load>load</code> event
+ to be fired.</p>
+
+ <p>After creating the <code><a href=#document>Document</a></code> object, but before any
+ script execution, certainly before the parser <a href=#stop-parsing title="stop
+ parsing">stops</a>, the user agent must <a href=#update-the-session-history-with-the-new-page>update the session
+ history with the new page</a>.</p>
+
+ <p class=note><a href=#concept-appcache-init title=concept-appcache-init>Application
+ cache selection</a> happens <a href=#parser-appcache>in the
+ HTML parser</a>.</p>
+
+ <p>The <a href=#task-source>task source</a> for the two tasks mentioned in this
+ section must be the <a href=#networking-task-source>networking task source</a>.</p>
+
+
+
+ <h4 id=read-xml><span class=secno>6.5.3 </span><dfn title=navigate-xml>Page load processing model for XML files</dfn></h4>
+
+ <p>When faced with displaying an XML file inline, user agents must
+ first <a href=#create-a-document-object>create a <code>Document</code> object</a>, following
+ the requirements of the XML and Namespaces in XML recommendations,
+ RFC 3023, DOM Core, and other relevant specifications. <a href=#refsXML>[XML]</a> <a href=#refsXMLNS>[XMLNS]</a> <a href=#refsRFC3023>[RFC3023]</a> <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+ <p>The actual HTTP headers and other metadata, not the headers as
+ mutated or implied by the algorithms given in this specification,
+ are the ones that must be used when determining the character
+ encoding according to the rules given in the above
+ specifications. Once the character encoding is established, the
+ <a href="#document's-character-encoding">document's character encoding</a> must be set to that
+ character encoding.</p>
+
+ <p>If the root element, as parsed according to the XML
+ specifications cited above, is found to be an <code><a href=#the-html-element>html</a></code>
+ element with an attribute <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> whose value is not the
+ empty string, then, as soon as the element is <a href=#insert-an-element-into-a-document title="insert an
+ element into a document">inserted into the document</a>, the user
+ agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of
+ that attribute relative to that element, and if that is successful,
+ must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache
+ selection algorithm</a> with the resulting <a href=#absolute-url>absolute
+ URL</a> with any <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a> component removed as
+ the manifest URL, and passing in the newly-created
+ <code><a href=#document>Document</a></code>. Otherwise, if the attribute is absent, its
+ value is the empty string, or resolving its value fails, then as
+ soon as the root element is <a href=#insert-an-element-into-a-document title="insert an element into a
+ document">inserted into the document</a>, the user agent must run
+ the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ algorithm</a> with no manifest, and passing in the
+ <code><a href=#document>Document</a></code>.</p>
+
+ <p class=note>Because the processing of the <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute happens
+ only once the root element is parsed, any URLs referenced by
+ processing instructions before the root element (such as <code title="">&lt;?xml-stylesheet?&gt;</code> and <code title="">&lt;?xbl?&gt;</code> PIs) will be fetched from the network and
+ cannot be cached.</p><!-- v2: fix this somehow -->
+
+ <p>User agents may examine the namespace of the root
+ <code><a href=#element>Element</a></code> node of this <code><a href=#document>Document</a></code> object to
+ perform namespace-based dispatch to alternative processing tools,
+ e.g. determining that the content is actually a syndication feed and
+ passing it to a feed handler. If such processing is to take place,
+ abort the steps in this section, and jump to <a href=#navigate-non-Document>the next step</a> (labeled
+ "non-document content") in the <a href=#navigate>navigate</a> steps
+ above.</p>
+
+ <p>Otherwise, then, with the newly created <code><a href=#document>Document</a></code>,
+ the user agents must <a href=#update-the-session-history-with-the-new-page>update the session history with the new
+ page</a>. User agents may do this before the complete document
+ has been parsed (thus achieving <i>incremental rendering</i>), and
+ must do this before any scripts are to be executed.</p>
+
+ <p>Error messages from the parse process (e.g. XML namespace
+ well-formedness errors) may be reported inline by mutating the
+ <code><a href=#document>Document</a></code>.</p>
+
+
+ <h4 id=read-text><span class=secno>6.5.4 </span><dfn title=navigate-text>Page load processing model for text files</dfn></h4>
+
+ <p>When a plain text document is to be loaded in a <a href=#browsing-context>browsing
+ context</a>, the user agent should <a href=#queue-a-task>queue a task</a> to
+ <a href=#create-a-document-object>create a <code>Document</code> object</a>, mark it as being
+ an <a href=#html-documents title="HTML documents">HTML document</a>, set its <a href=#concept-document-media-type title=concept-document-media-type>media type</a> to "<code title="">text/plain</code>", create an <a href=#html-parser>HTML parser</a>,
+ associate it with the document, act as if the tokenizer had emitted
+ a start tag token with the tag name "pre" followed by a single
+ U+000A LINE FEED (LF) character<!-- to get eaten, so that a leading
+ LF in the text/plain stream doesn't get eaten itself-->, and switch
+ the <a href=#html-parser>HTML parser</a>'s tokenizer to the <a href=#plaintext-state>PLAINTEXT
+ state</a>. Each <a href=#concept-task title=concept-task>task</a> that the
+ <a href=#networking-task-source>networking task source</a> places on the <a href=#task-queue>task
+ queue</a> while the <a href=#fetch title=fetch>fetching algorithm</a>
+ runs must then fill the parser's <a href=#the-input-stream>input stream</a> with the
+ fetched bytes and cause the <a href=#html-parser>HTML parser</a> to perform the
+ appropriate processing of the input stream.</p>
+
+ <p>The rules for how to convert the bytes of the plain text document
+ into actual characters, and the rules for actually rendering the
+ text to the user, are defined in RFC 2046, RFC 3676, and subsequent
+ versions thereof. <a href=#refsRFC2046>[RFC2046]</a> <a href=#refsRFC3676>[RFC3676]</a></p>
+
+ <p>The <a href="#document's-character-encoding">document's character encoding</a> must be set to the
+ character encoding used to decode the document.</p>
+
+ <p>Upon creation of the <code><a href=#document>Document</a></code> object, the user agent
+ must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache
+ selection algorithm</a> with no manifest, and passing in the
+ newly-created <code><a href=#document>Document</a></code>.</p>
+
+ <!-- next two paragraphs are nearly identical to the navigate-html
+ section and similar to the "navigate-ua-inline" section, and the
+ next three are similar to the navigate-image and navigate-plugin
+ sections; keep them all in sync -->
+
+ <p>When no more bytes are available, the user agent must <a href=#queue-a-task>queue
+ a task</a> for the parser to process the implied EOF character,
+ which eventually causes a <code title=event-load>load</code> event
+ to be fired.</p>
+
+ <p>After creating the <code><a href=#document>Document</a></code> object, but potentially
+ before the page has finished parsing, the user agent must
+ <a href=#update-the-session-history-with-the-new-page>update the session history with the new page</a>.</p>
+
+ <p>User agents may add content to the <code><a href=#the-head-element>head</a></code> element of
+ the <code><a href=#document>Document</a></code>, e.g. linking to a style sheet or an XBL
+ binding, providing script, giving the document a <code><a href=#the-title-element>title</a></code>,
+ etc.</p>
+
+ <p class=note>In particular, if the user agent supports the <code title="">Format=Flowed</code> feature of RFC 3676 then the user
+ agent would need to apply extra styling to cause the text to wrap
+ correctly and to handle the quoting feature. This could be performed
+ using, e.g., an XBL binding or a CSS extension.</p>
+
+ <p>The <a href=#task-source>task source</a> for the two tasks mentioned in this
+ section must be the <a href=#networking-task-source>networking task source</a>.</p>
+
+
+ <h4 id=read-multipart-x-mixed-replace><span class=secno>6.5.5 </span><dfn title=navigate-multipart-x-mixed-replace>Page load processing model for <code>multipart/x-mixed-replaced</code> resources</dfn></h4>
+
+ <p>When a resource with the type
+ <code>multipart/x-mixed-replaced</code> is to be loaded in a
+ <a href=#browsing-context>browsing context</a>, the user agent must parse the
+ resource using the rules for multipart types. <a href=#refsRFC2046>[RFC2046]</a></p>
+
+ <p>For each body part obtained from the resource, the user agent
+ must run a new instance of the <a href=#navigate>navigate</a> algorithm,
+ starting from the <i>resource handling</i> step, using the new body
+ part as the resource being navigated, with <a href=#replacement-enabled>replacement
+ enabled</a> if a previous body part from the same resource
+ resulted in a <code><a href=#document>Document</a></code> object being <a href=#create-a-document-object title="create
+ a document object">created</a>, and otherwise using the same
+ setup as the <a href=#navigate>navigate</a> attempt that caused this section
+ to be invoked in the first place.</p>
+
+ <p>For the purposes of algorithms processing these body parts as if
+ they were complete stand-alone resources, the user agent must act as
+ if there were no more bytes for those resources whenever the
+ boundary following the body part is reached.</p>
+
+ <p class=note>Thus, <code title=event-load>load</code> events
+ (and for that matter <code title=event-unload>unload</code>
+ events) do fire for each body part loaded.</p>
+
+
+ <h4 id=read-image><span class=secno>6.5.6 </span><dfn title=navigate-image>Page load processing model for images</dfn></h4>
+
+ <p>When an image resource is to be loaded in a <a href=#browsing-context>browsing
+ context</a>, the user agent should <a href=#create-a-document-object>create a
+ <code>Document</code> object</a>, mark it as being an <a href=#html-documents title="HTML documents">HTML document</a>, set its <a href=#concept-document-media-type title=concept-document-media-type>media type</a> to the sniffed
+ MIME type of the resource (<var title="">type</var> in the
+ <a href=#navigate>navigate</a> algorithm), append an <code><a href=#the-html-element>html</a></code>
+ element to the <code><a href=#document>Document</a></code>, append a <code><a href=#the-head-element>head</a></code>
+ element and a <code><a href=#the-body-element>body</a></code> element to the <code><a href=#the-html-element>html</a></code>
+ element, append an <code><a href=#the-img-element>img</a></code> to the <code><a href=#the-body-element>body</a></code>
+ element, and set the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute
+ of the <code><a href=#the-img-element>img</a></code> element to the address of the image.</p>
+
+ <!-- next three paragraphs are similar to the navigate-text section,
+ keep them in sync -->
+
+ <p>Then, the user agent must act as if it had <a href=#stop-parsing title="stop
+ parsing">stopped parsing</a>.</p>
+
+ <p>Upon creation of the <code><a href=#document>Document</a></code> object, the user agent
+ must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache
+ selection algorithm</a> with no manifest, and passing in the
+ newly-created <code><a href=#document>Document</a></code>.</p>
+
+ <p>After creating the <code><a href=#document>Document</a></code> object, but potentially
+ before the page has finished fully loading, the user agent must
+ <a href=#update-the-session-history-with-the-new-page>update the session history with the new page</a>.</p>
+
+ <p>User agents may add content to the <code><a href=#the-head-element>head</a></code> element of
+ the <code><a href=#document>Document</a></code>, or attributes to the <code><a href=#the-img-element>img</a></code>
+ element, e.g. to link to a style sheet or an XBL binding, to provide
+ a script, to give the document a <code><a href=#the-title-element>title</a></code>, etc.</p>
+
+
+ <h4 id=read-plugin><span class=secno>6.5.7 </span><dfn title=navigate-plugin>Page load processing model for content that uses plugins</dfn></h4>
+
+ <p>When a resource that requires an external resource to be rendered
+ is to be loaded in a <a href=#browsing-context>browsing context</a>, the user agent
+ should <a href=#create-a-document-object>create a <code>Document</code> object</a>, mark it
+ as being an <a href=#html-documents title="HTML documents">HTML document</a>, set
+ its <a href=#concept-document-media-type title=concept-document-media-type>media type</a> to
+ the sniffed MIME type of the resource (<var title="">type</var> in
+ the <a href=#navigate>navigate</a> algorithm), append an <code><a href=#the-html-element>html</a></code>
+ element to the <code><a href=#document>Document</a></code>, append a <code><a href=#the-head-element>head</a></code>
+ element and a <code><a href=#the-body-element>body</a></code> element to the <code><a href=#the-html-element>html</a></code>
+ element, append an <code><a href=#the-embed-element>embed</a></code> to the <code><a href=#the-body-element>body</a></code>
+ element, and set the <code title=attr-embed-src><a href=#attr-embed-src>src</a></code>
+ attribute of the <code><a href=#the-embed-element>embed</a></code> element to the address of the
+ resource.</p>
+
+ <!-- next three paragraphs are similar to the navigate-text section,
+ keep them in sync -->
+
+ <p>Then, the user agent must act as if it had <a href=#stop-parsing title="stop
+ parsing">stopped parsing</a>.</p>
+
+ <p>Upon creation of the <code><a href=#document>Document</a></code> object, the user agent
+ must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache
+ selection algorithm</a> with no manifest, and passing in the
+ newly-created <code><a href=#document>Document</a></code>.</p>
+
+ <p>After creating the <code><a href=#document>Document</a></code> object, but potentially
+ before the page has finished fully loading, the user agent must
+ <a href=#update-the-session-history-with-the-new-page>update the session history with the new page</a>.</p>
+
+ <p>User agents may add content to the <code><a href=#the-head-element>head</a></code> element of
+ the <code><a href=#document>Document</a></code>, or attributes to the <code><a href=#the-embed-element>embed</a></code>
+ element, e.g. to link to a style sheet or an XBL binding, or to give
+ the document a <code><a href=#the-title-element>title</a></code>.</p>
+
+ <p class=note id=sandboxPluginNavigate>If the <a href=#sandboxed-plugins-browsing-context-flag>sandboxed
+ plugins browsing context flag</a> was set on the <a href=#browsing-context>browsing
+ context</a> when the <code><a href=#document>Document</a></code> was created, the
+ synthesized <code><a href=#the-embed-element>embed</a></code> element will <a href=#sandboxPluginEmbed>fail to render the content</a> if the
+ relevant <a href=#plugin>plugin</a> cannot be <a href=#concept-plugin-secure title=concept-plugin-secure>secured</a>.</p>
+
+
+ <h4 id=read-ua-inline><span class=secno>6.5.8 </span><dfn title=navigate-ua-inline>Page load processing model for inline content that doesn't have a DOM</dfn></h4>
+
+ <p>When the user agent is to display a user agent page inline in a
+ <a href=#browsing-context>browsing context</a>, the user agent should <a href=#create-a-document-object>create a
+ <code>Document</code> object</a>, mark it as being an <a href=#html-documents title="HTML documents">HTML document</a>, set its <a href=#concept-document-media-type title=concept-document-media-type>media type</a> to "<code title="">text/html</code>", and then either associate that
+ <code><a href=#document>Document</a></code> with a custom rendering that is not rendered
+ using the normal <code><a href=#document>Document</a></code> rendering rules, or mutate
+ that <code><a href=#document>Document</a></code> until it represents the content the user
+ agent wants to render.</p>
+
+ <!-- next two paragraphs are similar to the navigate-text section,
+ keep them in sync -->
+
+ <p>Once the page has been set up, the user agent must act as if it
+ had <a href=#stop-parsing title="stop parsing">stopped parsing</a>.</p>
+
+ <p>Upon creation of the <code><a href=#document>Document</a></code> object, the user agent
+ must run the <a href=#concept-appcache-init title=concept-appcache-init>application cache
+ selection algorithm</a> with no manifest, passing in the
+ newly-created <code><a href=#document>Document</a></code>.</p>
+
+ <p>After creating the <code><a href=#document>Document</a></code> object, but potentially
+ before the page has been completely set up, the user agent must
+ <a href=#update-the-session-history-with-the-new-page>update the session history with the new page</a>.</p>
+
+
+
+ <h4 id=scroll-to-fragid><span class=secno>6.5.9 </span><dfn title=navigate-fragid>Navigating to a fragment identifier</dfn></h4>
+
+ <p>When a user agent is supposed to navigate to a fragment
+ identifier, then the user agent must <a href=#queue-a-task>queue a task</a> to
+ run the following steps:</p>
+
+ <ol><li>
+
+ <p>Remove all the entries in the <a href=#browsing-context>browsing context</a>'s
+ <a href=#session-history>session history</a> after the <a href=#current-entry>current
+ entry</a>. If the <a href=#current-entry>current entry</a> is the last entry
+ in the session history, then no entries are removed.</p>
+
+ <p class=note>This <a href=#history-notes>doesn't necessarily
+ have to affect</a> the user agent's user interface.</p>
+
+ </li>
+
+ <li><p>Remove any <a href=#concept-task title=concept-task>tasks</a> queued by
+ the <a href=#history-traversal-task-source>history traversal task source</a>.</li>
+
+ <li><p>Append a new entry at the end of the <code><a href=#history-0>History</a></code>
+ object representing the new resource and its <code><a href=#document>Document</a></code>
+ object and related state. Its <a href=#url>URL</a> must be set to the
+ address to which the user agent was <a href=#navigate title=navigate>navigating</a>. The title must be left
+ unset.</li>
+
+ <li><p><a href=#traverse-the-history>Traverse the history</a> to the new entry. This
+ will <a href=#scroll-to-the-fragment-identifier>scroll to the fragment identifier</a> given in what
+ is now <a href="#the-document's-current-address">the document's current address</a>.</li>
+
+ </ol><p class=note>If the scrolling fails because the relevant <a href=#concept-id title=concept-id>ID</a> has
+ not yet been parsed, then the original <a href=#navigate title=navigate>navigation</a> algorithm will take care of the
+ scrolling instead, as the last few steps of its <a href=#update-the-session-history-with-the-new-page>update the
+ session history with the new page</a> algorithm.</p>
+
+ <hr><p>When the user agent is required to <dfn id=scroll-to-the-fragment-identifier>scroll to the fragment
+ identifier</dfn>, it must change the scrolling position of the
+ document using the <span>scroll an element into view</span>
+ algorithm defined in the CSSOM View specification, or perform some
+ other action, such that <a href=#the-indicated-part-of-the-document>the indicated part of the
+ document</a> is brought to the user's attention. If there is no
+ indicated part, then the user agent must not scroll anywhere. <a href=#refsCSSOMVIEW>[CSSOMVIEW]</a></p>
+
+ <p><dfn id=the-indicated-part-of-the-document>The indicated part of the document</dfn> is the one that the
+ fragment identifier, if any, identifies. The semantics of the
+ fragment identifier in terms of mapping it to a specific DOM Node is
+ defined by the specification that defines the <a href=#mime-type>MIME type</a>
+ used by the <code><a href=#document>Document</a></code> (for example, the processing of
+ fragment identifiers for <a href=#xml-mime-type title="XML MIME type">XML MIME
+ types</a> is the responsibility of RFC3023). <a href=#refsRFC3023>[RFC3023]</a></p>
+
+ <p>For HTML documents (and <a href=#html-mime-type title="HTML MIME type">HTML MIME
+ types</a>), the following processing model must be followed to
+ determine what <a href=#the-indicated-part-of-the-document>the indicated part of the document</a>
+ is.</p>
+
+ <ol><li><p><a href=#parse-a-url title="parse a url">Parse</a> the <a href=#url>URL</a>,
+ and let <var title="">fragid</var> be the <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a> component of the
+ URL.</li><!-- parsing can't fail, since we checked earlier on
+ when navigating -->
+
+ <li><p>If <var title="">fragid</var> is the empty string, then
+ <a href=#the-indicated-part-of-the-document>the indicated part of the document</a> is the top of the
+ document; stop the algorithm here.</li>
+
+ <li><p>Let <var title="">decoded fragid</var> be the result of
+ expanding any sequences of percent-encoded octets in <var title="">fragid</var> that are valid UTF-8 sequences into Unicode
+ characters as defined by UTF-8. If any percent-encoded octets in
+ that string are not valid UTF-8 sequences (e.g. they expand to
+ surrogate code points), then skip this step and the next one.</p>
+
+ <li><p>If this step was not skipped and there is an element in the
+ DOM that has an <a href=#concept-id title=concept-id>ID</a> exactly equal to
+ <var title="">decoded fragid</var>, then the first such element in
+ tree order is <a href=#the-indicated-part-of-the-document>the indicated part of the document</a>; stop
+ the algorithm here.</li>
+
+ <li><p>If there is an <code><a href=#the-a-element>a</a></code> element in the DOM that has a
+ <code title=attr-a-name><a href=#attr-a-name>name</a></code> attribute whose value is
+ exactly equal to <var title="">fragid</var> (<em>not</em> <var title="">decoded fragid</var>), then the first such element in tree
+ order is <a href=#the-indicated-part-of-the-document>the indicated part of the document</a>; stop the
+ algorithm here.</li>
+
+ <li><p>If <var title="">fragid</var> is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string <code title="">top</code>, then <a href=#the-indicated-part-of-the-document>the indicated part of the
+ document</a> is the top of the document; stop the algorithm
+ here.</li>
+
+ <li><p>Otherwise, there is no <a href=#the-indicated-part-of-the-document title="the indicated part of
+ the document">indicated part of the document</a>.</li>
+
+ </ol><p>For the purposes of the interaction of HTML with Selectors' <code title=selector-target>:target</code> pseudo-class, the
+ <dfn id=target-element><i>target element</i></dfn> is <a href=#the-indicated-part-of-the-document>the indicated part of the
+ document</a>, if that is an element; otherwise there is no
+ <i><a href=#target-element>target element</a></i>. <a href=#refsSELECTORS>[SELECTORS]</a></p>
+
+ </div>
+
+
+
+ <h4 id=history-traversal><span class=secno>6.5.10 </span>History traversal</h4> <!-- session history -->
+
+ <div class=impl>
+
+ <p>When a user agent is required to <dfn id=traverse-the-history>traverse the history</dfn>
+ to a <var title="">specified entry</var>, optionally with
+ <a href=#replacement-enabled>replacement enabled</a>, the user agent must act as
+ follows.</p>
+
+ <p class=note>This algorithm is not just invoked when <a href=#traverse-the-history-by-a-delta title="traverse the history by a delta">explicitly going back or
+ forwards in the session history</a> &mdash; it is also invoked in
+ other situations, for example when <a href=#navigate title=navigate>navigating
+ a browsing context</a>, as part of <a href=#update-the-session-history-with-the-new-page title="update the
+ session history with the new page">updating the session history with
+ the new page</a>.</p>
+
+ <ol><li><p>If there is no longer a <code><a href=#document>Document</a></code> object for the
+ entry in question, the user agent must
+ <a href=#navigate>navigate</a><!--DONAV history traversal after eviction-->
+ the browsing context to the location for that entry to perform an
+ <a href=#entry-update>entry update</a> of that entry, and abort these steps. The
+ "<a href=#navigate>navigate</a>" algorithm reinvokes this "traverse"
+ algorithm to complete the traversal, at which point there
+ <em>is</em> a <code><a href=#document>Document</a></code> object and so this step gets
+ skipped. The navigation must be done using the same <a href=#source-browsing-context>source
+ browsing context</a> as was used the first time this entry was
+ created. (This can never happen with <a href=#replacement-enabled>replacement
+ enabled</a>.)</li>
+
+ <li><p>If the <a href=#current-entry>current entry</a>'s title was not set by the
+ <code title=dom-history-pushState><a href=#dom-history-pushstate>pushState()</a></code> or <code title=dom-history-replaceState><a href=#dom-history-replacestate>replaceState()</a></code> methods,
+ then set its title to the value returned by the <code title=dom-document-title><a href=#document.title>document.title</a></code> IDL
+ attribute.</li>
+
+ <li><p>If appropriate, update the <a href=#current-entry>current entry</a> in the
+ <a href=#browsing-context>browsing context</a>'s <code><a href=#document>Document</a></code> object's
+ <code><a href=#history-0>History</a></code> object to reflect any state that the user
+ agent wishes to persist. The entry is then said to be <a href=#an-entry-with-persisted-user-state>an
+ entry with persisted user state</a>.</li>
+
+ <li><p>If the <var title="">specified entry</var> has a different
+ <code><a href=#document>Document</a></code> object than the <a href=#current-entry>current entry</a>
+ then the user agent must run the following substeps:</p>
+
+ <ol><li>If the browsing context is a <a href=#top-level-browsing-context>top-level browsing
+ context</a>, but not an <a href=#auxiliary-browsing-context>auxiliary browsing
+ context</a>, and the <a href=#origin>origin</a> of the
+ <code><a href=#document>Document</a></code> of the <var title="">specified entry</var>
+ is not the <a href=#same-origin title="same origin">same</a> as the
+ <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> of the
+ <a href=#current-entry>current entry</a>, then the following sub-sub-steps must
+ be run:
+
+ <ol><li>The current <a href=#browsing-context-name>browsing context name</a> must be
+ stored with all the entries in the history that are associated
+ with <code><a href=#document>Document</a></code> objects with the <a href=#same-origin>same
+ origin</a> as the <a href=#active-document>active document</a> <em>and</em>
+ that are contiguous with the <a href=#current-entry>current entry</a>.</li>
+
+ <li id=resetBCName>The browsing context's <a href=#browsing-context-name>browsing
+ context name</a> must be unset.</li>
+
+ </ol></li>
+
+ <li id=appcache-history-2>The user agent must make the <var title="">specified entry</var>'s <code><a href=#document>Document</a></code> object the
+ <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing
+ context</a>.</li>
+
+ <li>If the <var title="">specified entry</var> has a <a href=#browsing-context-name>browsing
+ context name</a> stored with it, then the following
+ sub-sub-steps must be run:
+
+ <ol><li>The browsing context's <a href=#browsing-context-name>browsing context name</a>
+ must be set to the name stored with the specified entry.</li>
+
+ <li>Any <a href=#browsing-context-name>browsing context name</a> stored with the
+ entries in the history that are associated with
+ <code><a href=#document>Document</a></code> objects with the <a href=#same-origin>same origin</a>
+ as the new <a href=#active-document>active document</a>, and that are
+ contiguous with the specified entry, must be cleared.</li>
+
+ </ol></li>
+
+ <li id=history-autocomplete><p>If the <var title="">specified
+ entry</var>'s <code><a href=#document>Document</a></code> has any <code><a href=#the-input-element>input</a></code>
+ elements whose <a href=#resulting-autocompletion-state>resulting autocompletion state</a> is <i title="">off</i>, invoke the <a href=#concept-form-reset-control title=concept-form-reset-control>reset algorithm</a> of each
+ of those elements.</li>
+
+ <li><p>If the <a href=#current-document-readiness>current document readiness</a> of the <var title="">specified entry</var>'s <code><a href=#document>Document</a></code> is
+ "complete", <a href=#queue-a-task>queue a task</a> to fire a <code title=event-pageshow><a href=#event-pageshow>pageshow</a></code> event at the
+ <code><a href=#window>Window</a></code> object of that <code><a href=#document>Document</a></code>, but
+ with its <code title=dom-event-target><a href=#dom-event-target>target</a></code> set to the
+ <code><a href=#document>Document</a></code> object (and the <code title=dom-event-currentTarget>currentTarget</code> set to the
+ <code><a href=#window>Window</a></code> object), using the
+ <code><a href=#pagetransitionevent>PageTransitionEvent</a></code> interface, with the <code title=dom-PageTransitionEvent-persisted><a href=#dom-pagetransitionevent-persisted>persisted</a></code>
+ attribute initialized to true. This event must not bubble, must
+ not be cancelable, and has no default action.</li>
+
+ <!-- an interesting thing to test would be to traverse back
+ during onload, before the first pageshow has fired, and then to
+ traverse forward again, and see if we get _two_ pageshows. If so,
+ it indicates that the history traversal task source has a higher
+ priority than the DOM manipulation task source. -->
+
+ </ol></li>
+
+ <li><p>Set <a href="#the-document's-current-address">the document's current address</a> to the URL
+ of the <var title="">specified entry</var>.</li>
+
+ <li><p>If the <var title="">specified entry</var> has a URL whose
+ fragment identifier differs from that of the <a href=#current-entry>current
+ entry</a>'s when compared in a <a href=#case-sensitive>case-sensitive</a>
+ manner, and the two share the same <code><a href=#document>Document</a></code> object,
+ then let <var title="">hash changed</var> be true, and let <var title="">old URL</var> be the URL of the <a href=#current-entry>current entry</a>
+ and <var title="">new URL</var> be the URL of the <var title="">specified entry</var>. Otherwise, let <var title="">hash
+ changed</var> be false.</li>
+
+ <li><p>If the traversal was initiated with <dfn id=replacement-enabled>replacement
+ enabled</dfn>, remove the entry immediately before the
+ <var title="">specified entry</var> in the session history.</p>
+
+ <li><p>If the <var title="">specified entry</var> is not <a href=#an-entry-with-persisted-user-state>an
+ entry with persisted user state</a>, but its URL has a fragment
+ identifier, <a href=#scroll-to-the-fragment-identifier>scroll to the fragment
+ identifier</a>.</li>
+
+ <li>
+
+ <p>If the entry is <a href=#an-entry-with-persisted-user-state>an entry with persisted user
+ state</a>, the user agent may update aspects of the document
+ and its rendering, for instance the scroll position or values of
+ form fields, that it had previously recorded.</p>
+
+ <!-- see similar paragraphs in the textarea and input sections -->
+ <p class=note>This can even include updating the <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute of <code><a href=#the-textarea-element>textarea</a></code>
+ elements or <code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in either the
+ <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state or the <a href=#text-state-and-search-state title=attr-input-type-search>Search</a> state, if the
+ persisted state includes the directionality of user input in such
+ controls.</p>
+
+ </li>
+
+ <li><p>If the entry is a <a href=#state-object>state object</a> entry, let <var title="">state</var> be a <a href=#structured-clone>structured clone</a> of that
+ state object. Otherwise, let <var title="">state</var> be
+ null.</li>
+
+ <li><p>Set <code title=dom-history-state><a href=#dom-history-state>history.state</a></code> to
+ <var title="">state</var>.</li>
+
+ <li><p>Let <var title="">state changed</var> be true if the
+ <a href=#latest-entry>latest entry</a> of the <code><a href=#document>Document</a></code> of the <var title="">specified entry</var> is not the <var title="">specified
+ entry</var>; otherwise let it be false. (If the
+ <code><a href=#document>Document</a></code> has no <a href=#latest-entry>latest entry</a> then by
+ definition its <a href=#latest-entry>latest entry</a> is not the <var title="">specified entry</var>.)</p>
+
+ <li><p>Let the <a href=#latest-entry>latest entry</a> of the
+ <code><a href=#document>Document</a></code> of the <var title="">specified entry</var> be
+ the <var title="">specified entry</var>.</li>
+
+ <li><p><var title="">state changed</var> is true, fire a <code title=event-popstate><a href=#event-popstate>popstate</a></code> event at the
+ <code><a href=#window>Window</a></code> object of the <code><a href=#document>Document</a></code>, using the
+ <code><a href=#popstateevent>PopStateEvent</a></code> interface, with the <code title=dom-PopStateEvent-state><a href=#dom-popstateevent-state>state</a></code> attribute initialized
+ to the value of <var title="">state</var>. This event must bubble
+ but not be cancelable and has no default action.</li>
+
+ <li><p>If <var title="">hash changed</var> is true, then fire a
+ <code title=event-hashchange><a href=#event-hashchange>hashchange</a></code> event at the
+ <a href=#browsing-context>browsing context</a>'s <code><a href=#window>Window</a></code> object, using
+ the <code><a href=#hashchangeevent>HashChangeEvent</a></code> interface, with the <code title=dom-HashChangeEvent-oldURL><a href=#dom-hashchangeevent-oldurl>oldURL</a></code> attribute
+ initialized to <var title="">old URL</var> and the <code title=dom-HashChangeEvent-newURL><a href=#dom-hashchangeevent-newurl>newURL</a></code> attribute
+ initialized to <var title="">new URL</var>. This event must bubble
+ but not be cancelable and has no default action.</li>
+
+ <li><p>The <a href=#current-entry>current entry</a> is now the <var title="">specified
+ entry</var>.</li>
+
+ </ol><p>The <a href=#task-source>task source</a> for the tasks mentioned above is the
+ <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
+
+
+ <h5 id=event-definitions-0><span class=secno>6.5.10.1 </span>Event definitions</h5>
+
+ </div>
+
+ <p>The <dfn id=event-popstate title=event-popstate><code>popstate</code></dfn> event
+ is fired in certain cases when navigating to a <a href=#session-history-entry>session history
+ entry</a>.</p>
+
+ <pre class=idl>[Constructor(DOMString type, optional <a href=#popstateeventinit>PopStateEventInit</a> eventInitDict)]
+interface <dfn id=popstateevent>PopStateEvent</dfn> : <a href=#event>Event</a> {
+ readonly attribute any <a href=#dom-popstateevent-state title=dom-PopStateEvent-state>state</a>;
+};
+
+dictionary <dfn id=popstateeventinit>PopStateEventInit</dfn> : <a href=#eventinit>EventInit</a> {
+ any state;
+};</pre>
+
+ <dl class=domintro><dt><var title="">event</var> . <code title=dom-PopStateEvent-state><a href=#dom-popstateevent-state>state</a></code></dt>
+
+ <dd>
+
+ <p>Returns a copy of the information that was provided to <code title=dom-history-pushState><a href=#dom-history-pushstate>pushState()</a></code> or <code title=dom-history-replaceState><a href=#dom-history-replacestate>replaceState()</a></code>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-popstateevent-state title=dom-PopStateEvent-state><code>state</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to null. It
+ represents the context information for the event, or null, if the
+ state represented is the initial state of the
+ <code><a href=#document>Document</a></code>.</p>
+
+ </div>
+
+ <hr><p>The <dfn id=event-hashchange title=event-hashchange><code>hashchange</code></dfn>
+ event is fired when navigating to a <a href=#session-history-entry>session history
+ entry</a> whose <a href=#url>URL</a> differs from that of the
+ previous one only in the fragment identifier.</p>
+
+ <pre class=idl>[Constructor(DOMString type, optional <a href=#hashchangeeventinit>HashChangeEventInit</a> eventInitDict)]
+interface <dfn id=hashchangeevent>HashChangeEvent</dfn> : <a href=#event>Event</a> {
+ readonly attribute DOMString <a href=#dom-hashchangeevent-oldurl title=dom-HashChangeEvent-oldURL>oldURL</a>;
+ readonly attribute DOMString <a href=#dom-hashchangeevent-newurl title=dom-HashChangeEvent-newURL>newURL</a>;
+};
+
+dictionary <dfn id=hashchangeeventinit>HashChangeEventInit</dfn> : <a href=#eventinit>EventInit</a> {
+ DOMString oldURL;
+ DOMString newURL;
+};</pre>
+
+ <dl class=domintro><dt><var title="">event</var> . <code title=dom-HashChangeEvent-oldURL><a href=#dom-hashchangeevent-oldurl>oldURL</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <a href=#url>URL</a> of the <a href=#session-history-entry>session history
+ entry</a> that was previously current.</p>
+
+ </dd>
+
+
+ <dt><var title="">event</var> . <code title=dom-HashChangeEvent-newURL><a href=#dom-hashchangeevent-newurl>newURL</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <a href=#url>URL</a> of the <a href=#session-history-entry>session history
+ entry</a> that is now current.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-hashchangeevent-oldurl title=dom-HashChangeEvent-oldURL><code>oldURL</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to null. It
+ represents context information for the event, specifically the URL
+ of the <a href=#session-history-entry>session history entry</a> that was traversed
+ from.</p>
+
+ <p>The <dfn id=dom-hashchangeevent-newurl title=dom-HashChangeEvent-newURL><code>newURL</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to null. It
+ represents context information for the event, specifically the URL
+ of the <a href=#session-history-entry>session history entry</a> that was traversed to.</p>
+
+ </div>
+
+ <hr><p>The <dfn id=event-pageshow title=event-pageshow><code>pageshow</code></dfn> event
+ is fired when traversing <em>to</em> a <a href=#session-history-entry>session history
+ entry</a>.</p>
+
+ <p>The <dfn id=event-pagehide title=event-pagehide><code>pagehide</code></dfn>
+ event is fired when traversing <em>from</em> a <a href=#session-history-entry>session history
+ entry</a>.</p>
+
+ <pre class=idl>[Constructor(DOMString type, optional <a href=#pagetransitioneventinit>PageTransitionEventInit</a> eventInitDict)]
+interface <dfn id=pagetransitionevent>PageTransitionEvent</dfn> : <a href=#event>Event</a> {
+ readonly attribute boolean <a href=#dom-pagetransitionevent-persisted title=dom-PageTransitionEvent-persisted>persisted</a>;
+};
+
+dictionary <dfn id=pagetransitioneventinit>PageTransitionEventInit</dfn> : <a href=#eventinit>EventInit</a> {
+ boolean persisted;
+};</pre>
+
+ <dl class=domintro><dt><var title="">event</var> . <code title=dom-PageTransitionEvent-persisted><a href=#dom-pagetransitionevent-persisted>persisted</a></code></dt>
+
+ <dd>
+
+ <p>Returns false if the page is newly being loaded (and the <code title=event-load>load</code> event will fire). Otherwise, returns true.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-pagetransitionevent-persisted title=dom-PageTransitionEvent-persisted><code>persisted</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to false. It
+ represents the context information for the event.</p>
+
+ </div>
+
+
+
+ <h4 id=unloading-documents><span class=secno>6.5.11 </span>Unloading documents</h4>
+
+ <div class=impl>
+
+ <p>A <code><a href=#document>Document</a></code> has a <dfn id=concept-document-salvageable title=concept-document-salvageable><var>salvageable</var></dfn>
+ state, which is initially true.</p>
+
+ <p>When a user agent is to <dfn id=prompt-to-unload-a-document>prompt to unload a document</dfn>,
+ it must run the following steps.</p>
+
+ <ol><li><p>Let <var title="">event</var> be a new
+ <code><a href=#beforeunloadevent>BeforeUnloadEvent</a></code> event object with the name <code title=event-beforeunload>beforeunload</code>, which does not
+ bubble but is cancelable.</li>
+
+ <li><p><i>Dispatch</i>: Dispatch <var title="">event</var> at the
+ <code><a href=#document>Document</a></code>'s <code><a href=#window>Window</a></code> object.</li>
+
+ <li><p>Release the <a href=#storage-mutex>storage mutex</a>.</li>
+
+ <li><p>If any event listeners were triggered by the earlier
+ <i>dispatch</i> step, then set the <code><a href=#document>Document</a></code>'s <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state to
+ false.</li>
+
+ <li>
+
+ <p>If the <code title=dom-BeforeUnloadEvent-returnValue><a href=#dom-beforeunloadevent-returnvalue>returnValue</a></code>
+ attribute of the <var title="">event</var> object is not the empty
+ string, or if the event was canceled, then the user agent should
+ ask the user to confirm that they wish to unload the document.</p>
+
+ <p>The prompt shown by the user agent may include the string of
+ the <code title=dom-BeforeUnloadEvent-returnValue><a href=#dom-beforeunloadevent-returnvalue>returnValue</a></code>
+ attribute, or some leading subset thereof. (A user agent may want
+ to truncate the string to 1024 characters for display, for
+ instance.)</p>
+
+ <p>The user agent must <a href=#pause>pause</a> while waiting for the
+ user's response.</p>
+
+ <p>If the user did not confirm the page navigation, then the user
+ agent <dfn id=refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be unloaded</dfn>.</p>
+
+ </li>
+
+ <li><p>If this algorithm was invoked by another instance of the
+ "prompt to unload a document" algorithm (i.e. through the steps
+ below that invoke this algorithm for all descendant browsing
+ contexts), then abort these steps here.</li>
+
+ <li><p>Let <var title="">descendants</var> be the <a href=#list-of-the-descendant-browsing-contexts>list of the
+ descendant browsing contexts</a> of the
+ <code><a href=#document>Document</a></code>.</li>
+
+ <li>
+
+ <p>If <var title="">descendants</var> is not an empty list, then
+ for each <a href=#browsing-context>browsing context</a> <var title="">b</var> in
+ <var title="">descendants</var> run the following substeps:</p>
+
+ <ol><li><p><a href=#prompt-to-unload-a-document title="prompt to unload a document">Prompt to
+ unload</a> the <a href=#active-document>active document</a> of the
+ <a href=#browsing-context>browsing context</a> <var title="">b</var>. If the user
+ <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be unloaded</a>, then
+ the user implicitly also <a href=#refused-to-allow-the-document-to-be-unloaded title="refused to allow the
+ document to be unloaded">refused to allow <em>this</em> document
+ to be unloaded</a>; abort these steps.</p>
+
+ <li><p>If <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state of
+ the <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing
+ context</a> <var title="">b</var> is false, then set the <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state of
+ <em>this</em> document to false also.</li>
+
+ </ol></li>
+
+ </ol><p>When a user agent is to <dfn id=unload-a-document>unload a document</dfn>, it must run
+ the following steps. These steps are passed an argument, <var title="">recycle</var>, which is either true or false, indicating
+ whether the <code><a href=#document>Document</a></code> object is going to be
+ re-used. (This is set by the <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code> method.)</p>
+
+ <ol><li><p>Fire a <code title=event-pagehide><a href=#event-pagehide>pagehide</a></code> event at
+ the <code><a href=#window>Window</a></code> object of the <code><a href=#document>Document</a></code>, but
+ with its <code title=dom-event-target><a href=#dom-event-target>target</a></code> set to the
+ <code><a href=#document>Document</a></code> object (and the <code title=dom-event-currentTarget>currentTarget</code> set to the
+ <code><a href=#window>Window</a></code> object), using the
+ <code><a href=#pagetransitionevent>PageTransitionEvent</a></code> interface, with the <code title=dom-PageTransitionEvent-persisted><a href=#dom-pagetransitionevent-persisted>persisted</a></code>
+ attribute initialized to true. This event must not bubble, must not
+ be cancelable, and has no default action.</li>
+
+ <li><p><i>Unload event</i>: <a href=#fire-a-simple-event>Fire a simple event</a> named
+ <code title=event-unload>unload</code> at the
+ <code><a href=#document>Document</a></code>'s <code><a href=#window>Window</a></code> object.</li>
+
+ <li><p>Release the <a href=#storage-mutex>storage mutex</a>.</li>
+
+ <li><p>If any event listeners were triggered by the earlier
+ <i>unload event</i> step, then set the <code><a href=#document>Document</a></code>
+ object's <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state to
+ false.</li>
+
+ <li><p>Run any <a href=#unloading-document-cleanup-steps>unloading document cleanup steps</a> for
+ <code><a href=#document>Document</a></code> that are defined by this specification and
+ <a href=#other-applicable-specifications>other applicable specifications</a>.</li>
+
+ <li><p>If this algorithm was invoked by another instance of the
+ "unload a document" algorithm (i.e. through the steps below that
+ invoke this algorithm for all descendant browsing contexts), then
+ abort these steps here.</li>
+
+ <li><p>Let <var title="">descendants</var> be the <a href=#list-of-the-descendant-browsing-contexts>list of the
+ descendant browsing contexts</a> of the
+ <code><a href=#document>Document</a></code>.</li>
+
+ <li>
+
+ <p>If <var title="">descendants</var> is not an empty list, then
+ for each <a href=#browsing-context>browsing context</a> <var title="">b</var> in
+ <var title="">descendants</var> run the following substeps:</p>
+
+ <ol><li><p><a href=#unload-a-document title="unload a document">Unload</a> the
+ <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing context</a>
+ <var title="">b</var> with the <var title="">recycle</var>
+ parameter set to false.</li>
+
+ <li><p>If <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state of
+ the <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing
+ context</a> <var title="">b</var> is false, then set the <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state of
+ <em>this</em> document to false also.</li>
+
+ </ol></li>
+
+ <li><p>If <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> and <var title="">recycle</var> are both false, then the
+ <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> must <a href=#discard-a-document title="discard a document">discard the
+ <code>Document</code></a>.</li>
+
+ </ol><p>This specification defines the following <dfn id=unloading-document-cleanup-steps>unloading document
+ cleanup steps</dfn>. Other specifications can define more.</p>
+
+ <ol><li>
+
+ <p><a href=#make-disappear>Make disappear</a> any <code><a href=#websocket>WebSocket</a></code> objects
+ that were created by the <code title=dom-WebSocket><a href=#dom-websocket>WebSocket()</a></code> constructor whose global
+ object is the <code><a href=#document>Document</a></code>'s <code><a href=#window>Window</a></code> object.
+
+
+ </p>
+
+ <p>If this affected any <code><a href=#websocket>WebSocket</a></code> objects, the set
+ <code><a href=#document>Document</a></code>'s <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state to
+ false.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <code><a href=#document>Document</a></code>'s <code><a href=#window>Window</a></code> object <a href=#concept-peerconnection-owner title=concept-PeerConnection-owner>owns</a> any
+ <code><a href=#peerconnection>PeerConnection</a></code> objects whose
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is not
+ <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code>, then set
+ <code><a href=#document>Document</a></code>'s <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state to
+ false.</p>
+
+ </li>
+
+ <li><p>If the <code><a href=#document>Document</a></code>'s <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state is
+ false, <a href=#concept-eventsource-forcibly-close title=concept-EventSource-forcibly-close>forcibly
+ close</a> any <code><a href=#eventsource>EventSource</a></code> objects that whose
+ constructor was invoked from the <code><a href=#document>Document</a></code>'s
+ <code><a href=#window>Window</a></code> object.</li>
+
+ <li><p>If the <code><a href=#document>Document</a></code>'s <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state is
+ false, empty the <code><a href=#document>Document</a></code>'s <code><a href=#window>Window</a></code>'s
+ <a href=#list-of-active-timeouts>list of active timeouts</a> and its <a href=#list-of-active-intervals>list of active
+ intervals</a>.</li>
+
+ </ol><h5 id=event-definition><span class=secno>6.5.11.1 </span>Event definition</h5>
+
+ </div>
+
+ <pre class=idl>interface <dfn id=beforeunloadevent>BeforeUnloadEvent</dfn> : <a href=#event>Event</a> {
+ attribute DOMString <a href=#dom-beforeunloadevent-returnvalue title=dom-BeforeUnloadEvent-returnValue>returnValue</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">event</var> . <code title=dom-BeforeUnloadEvent-returnValue><a href=#dom-beforeunloadevent-returnvalue>returnValue</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current return value of the event (the message to show the user).</p>
+
+ <p>Can be set, to update the message.</p>
+
+ </dd>
+
+ </dl><p class=note>There are no <code><a href=#beforeunloadevent>BeforeUnloadEvent</a></code>-specific
+ initialization methods.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-beforeunloadevent-returnvalue title=dom-BeforeUnloadEvent-returnValue><code>returnValue</code></dfn>
+ attribute represents the message to show the user. When the event is
+ created, the attribute must be set to the empty string. On getting,
+ it must return the last value it was set to. On setting, the
+ attribute must be set to the new value.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=aborting-a-document-load><span class=secno>6.5.12 </span>Aborting a document load</h4>
+
+ <p>If a <code><a href=#document>Document</a></code> is <dfn id=abort-a-document title="abort a
+ document">aborted</dfn>, the user agent must run the following
+ steps:</p>
+
+ <ol><li><p><a href=#abort-a-document title="abort a document">Abort</a> the <a href=#active-document title="active document">active documents</a> of every
+ <a href=#child-browsing-context>child browsing context</a>.</li>
+
+ <li><p>Cancel any instances of the <a href=#fetch title=fetch>fetch</a>
+ algorithm in the context of this <code><a href=#document>Document</a></code>, discarding
+ any <a href=#concept-task title=concept-task>tasks</a> <a href=#queue-a-task title="queue a
+ task">queued</a> for them, and discarding any further data
+ received from the network for them.</li>
+
+ <li><p>If the <code><a href=#document>Document</a></code> has an <a href=#active-parser>active
+ parser</a>, then <a href=#abort-a-parser title="abort a parser">abort that
+ parser</a>.</li>
+
+ <li><p>Set the <code><a href=#document>Document</a></code>'s <var title=concept-document-salvageable><a href=#concept-document-salvageable>salvageable</a></var> state to
+ false.</li>
+
+ <!-- we could also stop all script, or stop animations -->
+
+ </ol><p>User agents may allow users to explicitly invoke the <a href=#abort-a-document title="abort a document">abort a document</a> algorithm for a
+ <code><a href=#document>Document</a></code>. If the user does so, then, if that
+ <code><a href=#document>Document</a></code> is an <a href=#active-document>active document</a>, the user
+ agent should <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-abort>abort</code> at that
+ <code><a href=#document>Document</a></code>'s <code><a href=#window>Window</a></code> object before invoking
+ the <a href=#abort-a-document title="abort a document">abort</a> algorithm.</p>
+
+ <!-- I'd love to make this more precise, anyone have any suggestions
+ on what it should say? -->
+
+ </div>
+
+
+ <h3 id=offline><span class=secno>6.6 </span>Offline Web applications</h3>
+
+ <!-- v2 ideas for appcache:
+
+ * A way to limit what gets download when the user agent is
+ updating the application cache and it turns out the server has
+ changed EVERY page because every page has a dynamic "site last
+ modified" date on it.
+
+ http://groups.google.com/group/gears-users/browse_thread/thread/efbd808325df607a/c73adb34f9b63cf7?hl=en&q=whatwg#c73adb34f9b63cf7
+
+
+ * Multiuser appcaches.
+
+ If the application code (HTML, JS, CSS) is all the same for two
+ users, then appcache works for multiple users by just having
+ the data for the users separate from the logic.
+
+ This is the expected model for most apps. For example, your
+ typical blog has just one set of CSS for all users.
+
+ For systems where the user affects what HTML, JS, and CSS is
+ served back, the spec as written pretty much requires that
+ there be one app per user, and one generic "login" app that
+ then redirects to one of those other apps - and where each app
+ has a different base URL, separate manifest, etc.
+
+ An alternative that we could explore in a future version is to
+ have the manifest include a manifest name, and then have script
+ that allows you to "activate" a particular manifest name for a
+ given appcache.
+
+ So each appcache group would be futher subdivided into named
+ subgroups, and for a given manifest URL with such a group of
+ subgroups, one subgroup would be the default one at a time. The
+ inactive ones would just lie dormant, but and the active ones
+ would act like now, but there'd be a scripted way to change the
+ default (and maybe query what available variants exist for the
+ current appcache), so that you could log back in as someone
+ else by just making the script pick the other user's variant,
+ and then reloading.
+
+
+ * Add and remove specific additional files from the cache (e.g.
+ precaching new master entries).
+
+ -->
+
+ <h4 id=introduction-6><span class=secno>6.6.1 </span>Introduction</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>In order to enable users to continue interacting with Web
+ applications and documents even when their network connection is
+ unavailable &mdash; for instance, because they are traveling outside
+ of their ISP's coverage area &mdash; authors can provide a manifest
+ which lists the files that are needed for the Web application to
+ work offline and which causes the user's browser to keep a copy of
+ the files for use offline.</p>
+
+ <p>To illustrate this, consider a simple clock applet consisting of
+ an HTML page "<code title="">clock.html</code>", a CSS style sheet
+ "<code title="">clock.css</code>", and a JavaScript script "<code title="">clock.js</code>".</p>
+
+ <p>Before adding the manifest, these three files might look like
+ this:</p>
+
+ <pre>&lt;!-- clock.html --&gt;
+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Clock&lt;/title&gt;
+ &lt;script src="clock.js"&gt;&lt;/script&gt;
+ &lt;link rel="stylesheet" href="clock.css"&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;p&gt;The time is: &lt;output id="clock"&gt;&lt;/output&gt;&lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+ <pre>/* clock.css */
+output { font: 2em sans-serif; }</pre>
+ <pre>/* clock.js */
+setTimeout(function () {
+ document.getElementById('clock').value = new Date();
+}, 1000);</pre>
+
+ <p>If the user tries to open the "<code title="">clock.html</code>"
+ page while offline, though, the user agent (unless it happens to
+ have it still in the local cache) will fail with an error.</p>
+
+ <p>The author can instead provide a manifest of the three files, say
+ "<code title="">clock.appcache</code>":</p>
+
+ <pre>CACHE MANIFEST
+clock.html
+clock.css
+clock.js</pre>
+
+ <p>With a small change to the HTML file, the manifest (served as
+ <code><a href=#text/cache-manifest>text/cache-manifest</a></code>) is linked to the application:</p>
+
+ <pre>&lt;!-- clock.html --&gt;
+&lt;!DOCTYPE HTML&gt;
+&lt;html manifest="clock.appcache"&gt;
+ &lt;head&gt;
+ &lt;title&gt;Clock&lt;/title&gt;
+ &lt;script src="clock.js"&gt;&lt;/script&gt;
+ &lt;link rel="stylesheet" href="clock.css"&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;p&gt;The time is: &lt;output id="clock"&gt;&lt;/output&gt;&lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>Now, if the user goes to the page, the browser will cache the
+ files and make them available even when the user is offline.</p>
+
+ <p class=note>Authors are encouraged to include the main page in
+ the manifest also, but in practice the page that referenced the
+ manifest is automatically cached even if it isn't explicitly
+ mentioned.</p>
+
+ <p class=note>With the exception of "no-store" directive, HTTP
+ cache headers and restrictions on caching pages served over TLS
+ (encrypted, using <code title="">https:</code>) are overridden by
+ manifests. Thus, pages will not expire from an application cache
+ before the user agent has updated it, and even applications served
+ over TLS can be made to work offline.</p>
+
+<!--(doesn't currently function)
+ <p><a href="http://www.whatwg.org/demos/offline/clock/clock2.html">View this example online</a>.</p>
+-->
+
+
+
+ <h5 id=appcacheevents><span class=secno>6.6.1.1 </span>Event summary</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>When the user visits a page that declares a manifest, the browser
+ will try to update the cache. It does this by fetching a copy of the
+ manifest and, if the manifest has changed since the user agent last
+ saw it, redownloading all the resources it mentions and caching them
+ anew.</p>
+
+ <p>As this is going on, a number of events get fired on the
+ <code><a href=#applicationcache>ApplicationCache</a></code> object to keep the script updated as
+ to the state of the cache update, so that the user can be notified
+ appropriately. The events are as follows:</p>
+
+ <table><thead><tr><th> Event name
+ <th> Interface
+ <th> Fired when...
+ <th> Next events
+ <tbody><tr><td> <dfn id=event-appcache-checking title=event-appcache-checking><code>checking</code></dfn>
+ <td> <code><a href=#event>Event</a></code>
+ <td> The user agent is checking for an update, or attempting to download the manifest for the first time. <strong>This is always the first event in the sequence.</strong>
+ <td> <code title=event-appcache-noupdate><a href=#event-appcache-noupdate>noupdate</a></code>, <code title=event-appcache-downloading><a href=#event-appcache-downloading>downloading</a></code>, <code title=event-appcache-obsolete><a href=#event-appcache-obsolete>obsolete</a></code>, <code title=event-appcache-error><a href=#event-appcache-error>error</a></code>
+ <tr><td> <dfn id=event-appcache-noupdate title=event-appcache-noupdate><code>noupdate</code></dfn>
+ <td> <code><a href=#event>Event</a></code>
+ <td> The manifest hadn't changed.
+ <td> Last event in sequence.
+ <tr><td> <dfn id=event-appcache-downloading title=event-appcache-downloading><code>downloading</code></dfn>
+ <td> <code><a href=#event>Event</a></code>
+ <td> The user agent has found an update and is fetching it, or is downloading the resources listed by the manifest for the first time.
+ <td> <code title=event-appcache-progress><a href=#event-appcache-progress>progress</a></code>, <code title=event-appcache-error><a href=#event-appcache-error>error</a></code>, <code title=event-appcache-cached><a href=#event-appcache-cached>cached</a></code>, <code title=event-appcache-updateready><a href=#event-appcache-updateready>updateready</a></code>
+ <tr><td> <dfn id=event-appcache-progress title=event-appcache-progress><code>progress</code></dfn>
+ <td> <code>ProgressEvent</code>
+ <td> The user agent is downloading resources listed by the manifest.
+ <td> <code title=event-appcache-progress><a href=#event-appcache-progress>progress</a></code>, <code title=event-appcache-error><a href=#event-appcache-error>error</a></code>, <code title=event-appcache-cached><a href=#event-appcache-cached>cached</a></code>, <code title=event-appcache-updateready><a href=#event-appcache-updateready>updateready</a></code>
+ <tr><td> <dfn id=event-appcache-cached title=event-appcache-cached><code>cached</code></dfn>
+ <td> <code><a href=#event>Event</a></code>
+ <td> The resources listed in the manifest have been downloaded, and the application is now cached.
+ <td> Last event in sequence.
+ <tr><td> <dfn id=event-appcache-updateready title=event-appcache-updateready><code>updateready</code></dfn>
+ <td> <code><a href=#event>Event</a></code>
+ <td> The resources listed in the manifest have been newly redownloaded, and the script can use <code title=dom-appcache-swapCache><a href=#dom-appcache-swapcache>swapCache()</a></code> to switch to the new cache.
+ <td> Last event in sequence.
+ <tr><td> <dfn id=event-appcache-obsolete title=event-appcache-obsolete><code>obsolete</code></dfn>
+ <td> <code><a href=#event>Event</a></code>
+ <td> The manifest was found to have become a 404 or 410 page, so the application cache is being deleted.
+ <td> Last event in sequence.
+ <tr><td rowspan=4> <dfn id=event-appcache-error title=event-appcache-error><code>error</code></dfn>
+ <td rowspan=4> <code><a href=#event>Event</a></code>
+ <td> The manifest was a 404 or 410 page, so the attempt to cache the application has been aborted.
+ <td rowspan=3> Last event in sequence.
+ <tr><td> The manifest hadn't changed, but the page referencing the manifest failed to download properly.
+ <tr><td> A fatal error occurred while fetching the resources listed in the manifest.
+ <tr><td> The manifest changed while the update was being run.
+ <td> The user agent will try fetching the files again momentarily.
+ </table><div class=impl>
+
+ <h4 id=appcache><span class=secno>6.6.2 </span>Application caches</h4>
+
+ <p>An <dfn id=application-cache>application cache</dfn> is a set of cached resources
+ consisting of:</p>
+
+ <ul><li>
+
+ <p>One or more resources (including their out-of-band metadata,
+ such as HTTP headers, if any), identified by URLs, each falling
+ into one (or more) of the following categories:</p>
+
+ <dl><dt><dfn id=concept-appcache-master title=concept-appcache-master>Master entries</dfn>
+
+ <dd><p class=note>These are documents that were added to the
+ cache because a <a href=#browsing-context>browsing context</a> was <a href=#navigate title=navigate>navigated</a> to that document and the
+ document indicated that this was its cache, using the <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute.</p>
+
+
+ <dt><dfn id=concept-appcache-manifest title=concept-appcache-manifest>The manifest</dfn>
+
+ <dd><p class=note>This is the resource corresponding to the URL
+ that was given in a master entry's <code><a href=#the-html-element>html</a></code> element's
+ <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute. The
+ manifest is fetched and processed during the <a href=#application-cache-download-process>application
+ cache download process</a>. All the <a href=#concept-appcache-master title=concept-appcache-master>master entries</a> have the
+ <a href=#same-origin title="same origin">same origin</a> as the manifest.</p>
+
+
+ <dt><dfn id=concept-appcache-explicit title=concept-appcache-explicit>Explicit entries</dfn>
+
+ <dd><p class=note>These are the resources that were listed in
+ the cache's <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a> in an <a href=#concept-appcache-manifest-explicit title=concept-appcache-manifest-explicit>explicit
+ section</a>.</p>
+
+
+ <dt><dfn id=concept-appcache-fallback title=concept-appcache-fallback>Fallback entries</dfn>
+
+ <dd><p class=note>These are the resources that were listed in
+ the cache's <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a> in a <a href=#concept-appcache-manifest-fallback title=concept-appcache-manifest-fallback>fallback
+ section</a>.</p>
+
+
+ </dl><p><a href=#concept-appcache-explicit title=concept-appcache-explicit>Explicit entries</a>
+ and <a href=#concept-appcache-fallback title=concept-appcache-fallback>Fallback
+ entries</a> can be marked as <dfn id=concept-appcache-foreign title=concept-appcache-foreign>foreign</dfn>, which means that
+ they have a <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code>
+ attribute but that it doesn't point at this cache's <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a>.</p>
+
+ <p class=note>A URL in the list can be flagged with multiple
+ different types, and thus an entry can end up being categorized as
+ multiple entries. For example, an entry can be a manifest entry
+ and an explicit entry at the same time, if the manifest is listed
+ within the manifest.</p>
+
+ </li>
+
+ <li>
+
+ <p>Zero or more <dfn id=concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback
+ namespaces</dfn>, each of which is mapped to a <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback entry</a>.</p>
+
+ <p class=note>These are URLs used as <a href=#concept-appcache-matches-fallback title=concept-appcache-matches-fallback>prefix match
+ patterns</a> for resources that are to be fetched from the
+ network if possible, or to be replaced by the corresponding <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback entry</a> if not.
+ Each namespace URL has the <a href=#same-origin>same origin</a> as <a href=#concept-appcache-manifest title=concept-appcache-manifest>the manifest</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Zero or more URLs that form the <dfn id=concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist
+ namespaces</dfn>.</p>
+
+ <p class=note>These are used as prefix match patterns, and
+ declare URLs that the user agent will never load from the cache
+ but will instead always attempt to obtain from the network.</p>
+
+ </li>
+
+ <li>
+
+ <p>An <dfn id=concept-appcache-onlinewhitelist-wildcard title=concept-appcache-onlinewhitelist-wildcard>online whitelist
+ wildcard flag</dfn>, which is either <i title="">open</i> or <i title="">blocking</i>.</p>
+
+ <p class=note>The <i title="">open</i> state indicates that any
+ URL not listed as cached is to be implicitly treated as being in
+ the <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online
+ whitelist namespaces</a>; the <i title="">blocking</i> state
+ indicates that URLs not listed explicitly in the manifest are to
+ be treated as unavailable.</p>
+
+ </li>
+
+ </ul><p>Each <a href=#application-cache>application cache</a> has a <dfn id=concept-appcache-completeness title=concept-appcache-completeness>completeness flag</dfn>, which is
+ either <i>complete</i> or <i>incomplete</i>.</p>
+
+ <hr><p>An <dfn id=application-cache-group>application cache group</dfn> is a group of <a href=#application-cache title="application cache">application caches</a>, identified by
+ the <a href=#absolute-url>absolute URL</a> of a resource <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a> which is used to
+ populate the caches in the group.</p>
+
+ <p>An <a href=#application-cache>application cache</a> is <dfn id=concept-appcache-newer title=concept-appcache-newer>newer</dfn> than another if it was
+ created after the other (in other words, <a href=#application-cache title="application
+ cache">application caches</a> in an <a href=#application-cache-group>application cache
+ group</a> have a chronological order).</p>
+
+ <p>Only the newest <a href=#application-cache>application cache</a> in an
+ <a href=#application-cache-group>application cache group</a> can have its <a href=#concept-appcache-completeness title=concept-appcache-completeness>completeness flag</a> set to
+ <i>incomplete</i>; the others are always all <i>complete</i>.</p>
+
+ <p>Each <a href=#application-cache-group>application cache group</a> has an <dfn id=concept-appcache-status title=concept-appcache-status>update status</dfn>, which is one of
+ the following: <i>idle</i>, <i>checking</i>, <i>downloading</i>.</p>
+
+ <p>A <dfn id=relevant-application-cache>relevant application cache</dfn> is an <a href=#application-cache>application
+ cache</a> that is the <a href=#concept-appcache-newer title=concept-appcache-newer>newest</a> in its <a href=#application-cache-group title="application cache group">group</a> to be
+ <i>complete</i>.</p>
+
+ <p>Each <a href=#application-cache-group>application cache group</a> has a <dfn id=concept-appcache-pending-masters title=concept-appcache-pending-masters>list of pending master
+ entries</dfn>. Each entry in this list consists of a resource and a
+ corresponding <code><a href=#document>Document</a></code> object. It is used during the
+ <a href=#application-cache-download-process>application cache download process</a> to ensure that new
+ master entries are cached even if the <a href=#application-cache-download-process>application cache
+ download process</a> was already running for their
+ <a href=#application-cache-group>application cache group</a> when they were loaded.</p>
+
+ <p>An <a href=#application-cache-group>application cache group</a> can be marked as <dfn id=concept-appcache-obsolete title=concept-appcache-obsolete>obsolete</dfn>, meaning that it
+ must be ignored when looking at what <a href=#application-cache-group title="application cache
+ group">application cache groups</a> exist.</p>
+
+ <hr><p>A <dfn id=cache-host>cache host</dfn> is a <code><a href=#document>Document</a></code> or a
+ <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object. A <a href=#cache-host>cache
+ host</a> can be associated with an <a href=#application-cache>application
+ cache</a>.
+ </p>
+
+ <p>A <code><a href=#document>Document</a></code> initially is not associated with an
+ <a href=#application-cache>application cache</a>, but can become associated with one
+ early during the page load process, when steps <a href=#parser-appcache>in the parser</a> and in the <a href=#navigate title=navigate>navigation</a> sections cause <a href=#concept-appcache-init title=concept-appcache-init>cache selection</a> to occur.</p>
+
+ <p>A <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> can be associated with an
+ <a href=#application-cache>application cache</a> when it is created.
+ </p>
+
+ <p>Each <a href=#cache-host>cache host</a> has an associated
+ <code><a href=#applicationcache>ApplicationCache</a></code> object.</p>
+
+ <hr><p>Multiple <a href=#application-cache title="application cache">application
+ caches</a> in different <a href=#application-cache-group title="application cache
+ group">application cache groups</a> can contain the same
+ resource, e.g. if the manifests all reference that resource. If the
+ user agent is to <dfn id=concept-appcache-selection title=concept-appcache-selection>select an
+ application cache</dfn> from a list of <a href=#relevant-application-cache title="relevant
+ application cache">relevant application caches</a> that contain a
+ resource, the user agent must use the application cache that the
+ user most likely wants to see the resource from, taking into account
+ the following:</p>
+
+ <ul><li>which application cache was most recently updated,
+
+ <li>which application cache was being used to display the
+ resource from which the user decided to look at the new resource,
+ and
+
+ <li>which application cache the user prefers.
+
+ </ul><hr><p>A URL <dfn id=concept-appcache-matches-fallback title=concept-appcache-matches-fallback>matches a
+ fallback namespace</dfn> if there exists a <a href=#relevant-application-cache>relevant
+ application cache</a> whose <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a>'s URL has the
+ <a href=#same-origin>same origin</a> as the URL in question, and that has a
+ <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespace</a>
+ that is a <a href=#prefix-match>prefix match</a> for the URL being examined. If
+ multiple fallback namespaces match the same URL, the longest one is
+ the one that matches. A URL looking for a fallback namespace can
+ match more than one application cache at a time, but only matches
+ one namespace in each cache.</p>
+
+ <div class=example>
+
+ <p>If a manifest <code title="">http://example.com/app1/manifest</code> declares that
+ <code title="">http://example.com/resources/images</code> is a
+ fallback namespace, and the user navigates to <code title="">HTTP://EXAMPLE.COM:80/resources/images/cat.png</code>,
+ then the user agent will decide that the application cache
+ identified by <code title="">http://example.com/app1/manifest</code> contains a
+ namespace with a match for that URL.</p>
+
+ <!-- "resolve a url" canonicalises the case for the scheme and host
+ and removes the port if it is the default -->
+
+ </div>
+
+ </div>
+
+
+
+ <h4 id=manifests><span class=secno>6.6.3 </span>The cache manifest syntax</h4>
+
+
+ <h5 id=some-sample-manifests><span class=secno>6.6.3.1 </span>Some sample manifests</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <div class=example>
+
+ <p>This example manifest requires two images and a style sheet to be
+ cached and whitelists a CGI script.</p>
+
+ <pre>CACHE MANIFEST
+# the above line is required
+
+# this is a comment
+# there can be as many of these anywhere in the file
+# they are all ignored
+ # comments can have spaces before them
+ # but must be alone on the line
+
+# blank lines are ignored too
+
+# these are files that need to be cached they can either be listed
+# first, or a "CACHE:" header could be put before them, as is done
+# lower down.
+images/sound-icon.png
+images/background.png
+# note that each file has to be put on its own line
+
+# here is a file for the online whitelist -- it isn't cached, and
+# references to this file will bypass the cache, always hitting the
+# network (or trying to, if the user is offline).
+NETWORK:
+comm.cgi
+
+# here is another set of files to cache, this time just the CSS file.
+CACHE:
+style/default.css</pre>
+
+ <p>It could equally well be written as follows:</p>
+
+ <pre>CACHE MANIFEST
+NETWORK:
+comm.cgi
+CACHE:
+style/default.css
+images/sound-icon.png
+images/background.png</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>Offline application cache manifests can use absolute paths or
+ even absolute URLs:</p>
+
+ <pre>CACHE MANIFEST
+
+/main/home
+/main/app.js
+/settings/home
+/settings/app.js
+http://img.example.com/logo.png
+http://img.example.com/check.png
+http://img.example.com/cross.png</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following manifest defines a catch-all error page that is
+ displayed for any page on the site while the user is offline. It
+ also specifies that the <a href=#concept-appcache-onlinewhitelist-wildcard title=concept-appcache-onlinewhitelist-wildcard>online whitelist
+ wildcard flag</a> is <i title="">open</i>, meaning that accesses
+ to resources on other sites will not be blocked. (Resources on the
+ same site are already not blocked because of the catch-all fallback
+ namespace.)</p>
+
+ <p>So long as all pages on the site reference this manifest, they
+ will get cached locally as they are fetched, so that subsequent hits
+ to the same page will load the page immediately from the
+ cache. Until the manifest is changed, those pages will not be
+ fetched from the server again. When the manifest changes, then all
+ the files will be redownloaded.</p>
+
+ <p>Subresources, such as style sheets, images, etc, would only be
+ cached using the regular HTTP caching semantics, however.</p>
+
+ <pre>CACHE MANIFEST
+FALLBACK:
+/ /offline.html
+NETWORK:
+*</pre>
+
+ </div>
+
+
+
+ <h5 id=writing-cache-manifests><span class=secno>6.6.3.2 </span>Writing cache manifests</h5>
+
+ <p>Manifests must be served using the
+ <code><a href=#text/cache-manifest>text/cache-manifest</a></code> <a href=#mime-type>MIME type</a>. All
+ resources served using the <code><a href=#text/cache-manifest>text/cache-manifest</a></code>
+ <a href=#mime-type>MIME type</a> must follow the syntax of application cache
+ manifests, as described in this section.</p>
+
+ <p>An application cache manifest is a text file, whose text is
+ encoded using UTF-8. Data in application cache manifests is
+ line-based. Newlines must be represented by U+000A LINE FEED (LF)
+ characters, U+000D CARRIAGE RETURN (CR) characters, or U+000D
+ CARRIAGE RETURN (CR) U+000A LINE FEED (LF) pairs. <a href=#refsRFC3629>[RFC3629]</a></p>
+
+ <p class=note>This is a <a href=#willful-violation>willful violation</a> of RFC
+ 2046, which requires all <code title="">text/*</code> types to only
+ allow CRLF line breaks. This requirement, however, is outdated; the
+ use of CR, LF, and CRLF line breaks is commonly supported and indeed
+ sometimes CRLF is <em>not</em> supported by text editors. <a href=#refsRFC2046>[RFC2046]</a></p>
+
+ <p>The first line of an application cache manifest must consist of
+ the string "CACHE", a single U+0020 SPACE character, the string
+ "MANIFEST", and either a U+0020 SPACE character, a U+0009 CHARACTER
+ TABULATION (tab) character, a U+000A LINE FEED (LF) character, or a
+ U+000D CARRIAGE RETURN (CR) character. The first line may optionally
+ be preceded by a U+FEFF BYTE ORDER MARK (BOM) character. If any
+ other text is found on the first line, it is ignored.</p>
+
+ <p>Subsequent lines, if any, must all be one of the following:</p>
+
+ <dl><dt>A blank line
+ <dd>
+ <p>Blank lines must consist of zero or more U+0020 SPACE and
+ U+0009 CHARACTER TABULATION (tab) characters only.</p>
+
+ <dt>A comment
+ <dd>
+ <p>Comment lines must consist of zero or more U+0020 SPACE and
+ U+0009 CHARACTER TABULATION (tab) characters, followed by a single
+ U+0023 NUMBER SIGN character (#), followed by zero or more
+ characters other than U+000A LINE FEED (LF) and U+000D CARRIAGE
+ RETURN (CR) characters.</p>
+
+ <p class=note>Comments must be on a line on their own. If they
+ were to be included on a line with a URL, the "#" would be
+ mistaken for part of a fragment identifier.</p>
+
+ <dt>A section header
+ <dd>
+ <p>Section headers change the current section. There are three
+ possible section headers:
+
+ <dl><dt><code>CACHE:</code>
+ <dd>Switches to the <dfn id=concept-appcache-manifest-explicit title=concept-appcache-manifest-explicit>explicit section</dfn>.
+
+ <dt><code>FALLBACK:</code>
+ <dd>Switches to the <dfn id=concept-appcache-manifest-fallback title=concept-appcache-manifest-fallback>fallback section</dfn>.
+
+ <dt><code>NETWORK:</code>
+ <dd>Switches to the <dfn id=concept-appcache-manifest-network title=concept-appcache-manifest-network>online whitelist section</dfn>.
+
+ </dl><p>Section header lines must consist of zero or more U+0020 SPACE
+ and U+0009 CHARACTER TABULATION (tab) characters, followed by one
+ of the names above (including the U+003A COLON character (:))
+ followed by zero or more U+0020 SPACE and U+0009 CHARACTER
+ TABULATION (tab) characters.</p>
+
+ <p>Ironically, by default, the current section is the
+ <a href=#concept-appcache-manifest-explicit title=concept-appcache-manifest-explicit>explicit section</a>.</p>
+
+ <dt>Data for the current section
+ <dd>
+ <p>The format that data lines must take depends on the current
+ section.</p>
+
+ <p>When the current section is the <a href=#concept-appcache-manifest-explicit title=concept-appcache-manifest-explicit>explicit
+ section</a>, data lines must consist of zero or more U+0020
+ SPACE and U+0009 CHARACTER TABULATION (tab) characters, a
+ <a href=#valid-url>valid URL</a> identifying a resource other than the
+ manifest itself, and then zero or more U+0020 SPACE and U+0009
+ CHARACTER TABULATION (tab) characters.</p>
+
+ <p>When the current section is the <a href=#concept-appcache-manifest-fallback title=concept-appcache-manifest-fallback>fallback
+ section</a>, data lines must consist of zero or more U+0020
+ SPACE and U+0009 CHARACTER TABULATION (tab) characters, a
+ <a href=#valid-url>valid URL</a> identifying a resource other than the
+ manifest itself, one or more U+0020 SPACE and U+0009 CHARACTER
+ TABULATION (tab) characters, another <a href=#valid-url>valid URL</a>
+ identifying a resource other than the manifest itself, and then
+ zero or more U+0020 SPACE and U+0009 CHARACTER TABULATION (tab)
+ characters.</p>
+
+ <p>When the current section is the <a href=#concept-appcache-manifest-network title=concept-appcache-manifest-network>online whitelist
+ section</a>, data lines must consist of zero or more U+0020
+ SPACE and U+0009 CHARACTER TABULATION (tab) characters, either a
+ single U+002A ASTERISK character (*) <!--
+ concept-appcache-onlinewhitelist-wildcard --> or a <a href=#valid-url>valid
+ URL</a> identifying a resource other than the manifest itself,
+ and then zero or more U+0020 SPACE and U+0009 CHARACTER TABULATION
+ (tab) characters.</p>
+
+<!--
+ <p class="note">The URLs in data lines can't be empty strings,
+ since those would be relative URLs to the manifest itself. Such
+ lines would be confused with blank or invalid lines, anyway.</p>
+-->
+
+ </dl><p>Manifests may contain sections more than once. Sections may be
+ empty.</p>
+
+ <p>URLs that are to be fallback pages associated with <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespaces</a>, and
+ those namespaces themselves, must be given in <a href=#concept-appcache-manifest-fallback title=concept-appcache-manifest-fallback>fallback sections</a>,
+ with the namespace being the first URL of the data line, and the
+ corresponding fallback page being the second URL. All the other
+ pages to be cached must be listed in <a href=#concept-appcache-manifest-explicit title=concept-appcache-manifest-explicit>explicit
+ sections</a>.</p>
+
+ <p><a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>Fallback
+ namespaces</a> and <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback entries</a> must have
+ the <a href=#same-origin>same origin</a> as the manifest itself.</p>
+
+ <p>A <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback
+ namespace</a> must not be listed more than once.</p>
+
+ <p>Namespaces that the user agent is to put into the <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist</a>
+ must all be specified in <a href=#concept-appcache-manifest-network title=concept-appcache-manifest-network>online whitelist
+ sections</a>. (This is needed for any URL that the page is
+ intending to use to communicate back to the server.) To specify that
+ all URLs are automatically whitelisted in this way, a U+002A
+ ASTERISK character (*) may be specified as one of the URLs. <!--
+ concept-appcache-onlinewhitelist-wildcard --></p>
+
+ <p>Authors should not include namespaces in the <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist</a> for
+ which another namespace in the <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist</a> is
+ a <a href=#prefix-match>prefix match</a>.</p>
+
+ <p>Relative URLs must be given relative to the manifest's own
+ URL. All URLs in the manifest must have the same <a href=#url-scheme title=url-scheme>&lt;scheme&gt;</a> as the manifest itself
+ (either explicitly or implicitly, through the use of relative
+ URLs).</p>
+
+ <p>URLs in manifests must not have fragment identifiers (i.e. the
+ U+0023 NUMBER SIGN character isn't allowed in URLs in
+ manifests).</p>
+
+ <p><a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>Fallback
+ namespaces</a> and namespaces in the <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist</a> are
+ matched by <a href=#prefix-match>prefix match</a>.</p>
+
+
+ <div class=impl>
+
+ <h5 id=parsing-cache-manifests><span class=secno>6.6.3.3 </span>Parsing cache manifests</h5>
+
+ <p>When a user agent is to <dfn id=parse-a-manifest>parse a manifest</dfn>, it means
+ that the user agent must run the following steps:</p>
+
+ <ol><li><p>The user agent must decode the byte stream corresponding
+ with the manifest to be parsed <a href=#decoded-as-utf-8,-with-error-handling title="decoded as UTF-8, with
+ error handling">as UTF-8, with error handling</a>. <!--All
+ U+0000 NULL characters must be replaced by U+FFFD REPLACEMENT
+ CHARACTERs. (this isn't black-box testable since neither U+0000 nor
+ U+FFFD are valid anywhere in the syntax and thus both will be
+ treated the same anyway)--></li>
+
+ <li><p>Let <var title="">base URL</var> be the <a href=#absolute-url>absolute
+ URL</a> representing the manifest.</li>
+
+ <li><p>Let <var title="">explicit URLs</var> be an initially empty
+ list of <a href=#absolute-url title="absolute URL">absolute URLs</a> for <a href=#concept-appcache-explicit title=concept-appcache-explicit>explicit entries</a>.</li>
+
+ <li><p>Let <var title="">fallback URLs</var> be an initially empty
+ mapping of <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback
+ namespaces</a> to <a href=#absolute-url title="absolute URL">absolute
+ URLs</a> for <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback
+ entries</a>.</li>
+
+ <li><p>Let <var title="">online whitelist namespaces</var> be an
+ initially empty list of <a href=#absolute-url title="absolute URL">absolute
+ URLs</a> for an <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online
+ whitelist</a>.</li>
+
+ <li><p>Let <var title="">online whitelist wildcard flag</var> be <i title="">blocking</i>. <!--
+ concept-appcache-onlinewhitelist-wildcard --></li>
+
+ <li><p>Let <var title="">input</var> be the decoded text of the
+ manifest's byte stream.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the first
+ character.</li>
+
+ <li><p>If <var title="">position</var> is pointing at a U+FEFF BYTE
+ ORDER MARK (BOM) character, then advance <var title="">position</var> to the next character.</li>
+
+ <li><p>If the characters starting from <var title="">position</var>
+ are "CACHE", followed by a U+0020 SPACE character, followed by
+ "MANIFEST", then advance <var title="">position</var> to the next
+ character after those. Otherwise, this isn't a cache manifest;
+ abort this algorithm with a failure while checking for the magic
+ signature.</li>
+
+ <li><p>If the character at <var title="">position</var> is neither
+ a U+0020 SPACE character, a U+0009 CHARACTER TABULATION (tab)
+ character, U+000A LINE FEED (LF) character, nor a U+000D CARRIAGE
+ RETURN (CR) character, then this isn't a cache manifest; abort this
+ algorithm with a failure while checking for the magic
+ signature.</li>
+
+ <li><p>This is a cache manifest. The algorithm cannot fail beyond
+ this point (though bogus lines can get ignored).</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
+ <em>not</em> U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR)
+ characters, and ignore those characters. (Extra text on the first
+ line, after the signature, is ignored.)</li>
+
+ <li><p>Let <var title="">mode</var> be "explicit".</li>
+
+ <li><p><i>Start of line</i>: If <var title="">position</var> is
+ past the end of <var title="">input</var>, then jump to the last
+ step. Otherwise, <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> that
+ are U+000A LINE FEED (LF), U+000D CARRIAGE RETURN (CR), U+0020
+ SPACE, or U+0009 CHARACTER TABULATION (tab) characters.</li>
+ <!-- strips leading spaces, ignores space-only lines, ignores blank lines -->
+
+ <li><p>Now, <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> that are
+ <em>not</em> U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR)
+ characters, and let the result be <var title="">line</var>.</li>
+
+ <li><p>Drop any trailing U+0020 SPACE and U+0009 CHARACTER
+ TABULATION (tab) characters at the end of <var title="">line</var>.</li>
+
+ <li><p>If <var title="">line</var> is the empty string, then jump
+ back to the step labeled "start of line".</li>
+
+ <li><p>If the first character in <var title="">line</var> is a
+ U+0023 NUMBER SIGN character (#), then jump back to the step
+ labeled "start of line".</li>
+
+ <li><p>If <var title="">line</var> equals "CACHE:" (the word
+ "CACHE" followed by a U+003A COLON character (:)), then set <var title="">mode</var> to "explicit" and jump back to the step
+ labeled "start of line".</li>
+
+ <li><p>If <var title="">line</var> equals "FALLBACK:" (the word
+ "FALLBACK" followed by a U+003A COLON character (:)), then set <var title="">mode</var> to "fallback" and jump back to the step
+ labeled "start of line".</li>
+
+ <li><p>If <var title="">line</var> equals "NETWORK:" (the word
+ "NETWORK" followed by a U+003A COLON character (:)), then set <var title="">mode</var> to "online whitelist" and jump back to the step
+ labeled "start of line".</li>
+
+ <li><p>If <var title="">line</var> ends with a U+003A COLON
+ character (:), then set <var title="">mode</var> to "unknown" and
+ jump back to the step labeled "start of line".</li>
+
+ <li><p>This is either a data line or it is syntactically
+ incorrect.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">line</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>Let <var title="">tokens</var> be a list of strings,
+ initially empty.</li>
+
+ <li>
+
+ <p>While <var title="">position</var> doesn't point past the end
+ of <var title="">line</var>:</p>
+
+ <ol><li><p>Let <var title="">current token</var> be an empty
+ string.</li>
+
+ <li><p>While <var title="">position</var> doesn't point past the
+ end of <var title="">line</var> and the character at <var title="">position</var> is neither a U+0020 SPACE nor a U+0009
+ CHARACTER TABULATION (tab) character, add the character at <var title="">position</var> to <var title="">current token</var> and
+ advance <var title="">position</var> to the next character in
+ <var title="">input</var>.</li>
+
+ <li><p>Add <var title="">current token</var> to the <var title="">tokens</var> list.</li>
+
+ <li><p>While <var title="">position</var> doesn't point past the
+ end of <var title="">line</var> and the character at <var title="">position</var> is either a U+0020 SPACE or a U+0009
+ CHARACTER TABULATION (tab) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
+
+ </ol></li>
+
+ <li>
+
+ <p>Process <var title="">tokens</var> as follows:</p>
+
+ <dl class=switch><dt>If <var title="">mode</var> is "explicit"</dt>
+
+ <dd>
+
+ <p><a href=#resolve-a-url title="resolve a url">Resolve</a> the first item in
+ <var title="">tokens</var>, relative to <var title="">base
+ URL</var>; ignore the rest.</p>
+
+ <p>If this fails, then jump back to the step labeled "start of
+ line".</p>
+
+ <p>If the resulting <a href=#absolute-url>absolute URL</a> has a different
+ <a href=#url-scheme title=url-scheme>&lt;scheme&gt;</a> component than
+ the manifest's URL (compared in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner), then jump back to the step
+ labeled "start of line".</p>
+
+ <p>Drop the <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a>
+ component of the resulting <a href=#absolute-url>absolute URL</a>, if it has
+ one.</p>
+
+ <p>Add the resulting <a href=#absolute-url>absolute URL</a> to the <var title="">explicit URLs</var>.</p>
+
+ </dd>
+
+ <dt>If <var title="">mode</var> is "fallback"</dt>
+
+ <dd>
+
+ <p>Let <var title="">part one</var> be the first token in <var title="">tokens</var>, and let <var title="">part two</var> be
+ the second token in <var title="">tokens</var>.</p>
+
+ <p><a href=#resolve-a-url title="resolve a url">Resolve</a> <var title="">part
+ one</var> and <var title="">part two</var>, relative to <var title="">base URL</var>.</p>
+
+ <p>If either fails, then jump back to the step labeled "start of
+ line".</p>
+
+ <p>If the <a href=#absolute-url>absolute URL</a> corresponding to either <var title="">part one</var> or <var title="">part two</var> does not
+ have the <a href=#same-origin>same origin</a> as the manifest's URL, then
+ jump back to the step labeled "start of line".</p> <!-- SECURITY
+ -->
+
+ <p>Drop any <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a>
+ components of the resulting <a href=#absolute-url title="absolute URL">absolute
+ URLs</a>.</p>
+
+ <p>If the <a href=#absolute-url>absolute URL</a> corresponding to <var title="">part one</var> is already in the <var title="">fallback
+ URLs</var> mapping as a <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespace</a>,
+ then jump back to the step labeled "start of line".</p>
+
+ <p>Otherwise, add the <a href=#absolute-url>absolute URL</a> corresponding to
+ <var title="">part one</var> to the <var title="">fallback
+ URLs</var> mapping as a <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespace</a>,
+ mapped to the <a href=#absolute-url>absolute URL</a> corresponding to <var title="">part two</var> as the <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback entry</a>.</p>
+
+ </dd>
+
+ <dt>If <var title="">mode</var> is "online whitelist"</dt>
+
+ <dd>
+
+ <p>If the first item in <var title="">tokens</var> is a U+002A
+ ASTERISK character (*), then set <var title="">online whitelist
+ wildcard flag</var> to <i title="">open</i> and jump back to the
+ step labeled "start of line".</p>
+
+ <p>Otherwise, <a href=#resolve-a-url title="resolve a url">resolve</a> the
+ first item in <var title="">tokens</var>, relative to <var title="">base URL</var>; ignore the rest.</p>
+
+ <p>If this fails, then jump back to the step labeled "start of
+ line".</p>
+
+ <p>If the resulting <a href=#absolute-url>absolute URL</a> has a different
+ <a href=#url-scheme title=url-scheme>&lt;scheme&gt;</a> component than
+ the manifest's URL (compared in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner), then jump back to the step
+ labeled "start of line".</p>
+
+ <p>Drop the <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a>
+ component of the resulting <a href=#absolute-url>absolute URL</a>, if it has
+ one.</p>
+
+ <p>Add the resulting <a href=#absolute-url>absolute URL</a> to the <var title="">online whitelist namespaces</var>.</p>
+
+ </dd>
+
+ <dt>If <var title="">mode</var> is "unknown"</dt>
+
+ <dd>
+
+ <p>Do nothing. The line is ignored.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li><p>Jump back to the step labeled "start of line". (That step
+ jumps to the next, and last, step when the end of the file is
+ reached.)</li>
+
+ <li><p>Return the <var title="">explicit URLs</var> list, the <var title="">fallback URLs</var> mapping, the <var title="">online
+ whitelist namespaces</var>, and the <var title="">online whitelist
+ wildcard flag</var>.</li>
+
+ </ol><div class=note>
+
+ <p>The resource that declares the manifest (with the <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute) will always
+ get taken from the cache, whether it is listed in the cache or not,
+ even if it is listed in an <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist
+ namespace</a>.</p>
+
+ <p>If a resource is listed in the <a href=#concept-appcache-manifest-explicit title=concept-appcache-manifest-explicit>explicit section</a>
+ or as a <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback
+ entry</a> in the <a href=#concept-appcache-manifest-fallback title=concept-appcache-manifest-fallback>fallback section</a>,
+ the resource will always be taken from the cache, regardless of any
+ other matching entries in the <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespaces</a> or
+ <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist
+ namespaces</a>.</p>
+
+ <p>When a <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback
+ namespace</a> and an <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist
+ namespace</a> overlap, the <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist
+ namespace</a> has priority.</p>
+
+ <p>The <a href=#concept-appcache-onlinewhitelist-wildcard title=concept-appcache-onlinewhitelist-wildcard>online whitelist
+ wildcard flag</a> is applied last, only for URLs that match
+ neither the <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online
+ whitelist namespace</a> nor the <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespace</a> and
+ that are not listed in the <a href=#concept-appcache-manifest-explicit title=concept-appcache-manifest-explicit>explicit
+ section</a>.</p>
+
+ </div>
+
+
+ <h4 id=downloading-or-updating-an-application-cache><span class=secno>6.6.4 </span>Downloading or updating an application cache</h4>
+
+ <p>When the user agent is required (by other parts of this
+ specification) to start the <dfn id=application-cache-download-process>application cache download
+ process</dfn> for an <a href=#absolute-url>absolute URL</a> purported to identify
+ a <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a>, or for an
+ <a href=#application-cache-group>application cache group</a>, potentially given a particular
+ <a href=#cache-host>cache host</a>, and potentially given a <a href=#concept-appcache-master title=concept-appcache-master>master</a> resource, the user
+ agent must run the steps below. These steps are always run
+ asynchronously, in parallel with the <a href=#event-loop>event loop</a> <a href=#concept-task title=concept-task>tasks</a>.</p>
+
+ <p>Some of these steps have requirements that only apply if the user
+ agent <dfn id=shows-caching-progress>shows caching progress</dfn>. Support for this is
+ optional. Caching progress UI could consist of a progress bar or
+ message panel in the user agent's interface, or an overlay, or
+ something else. Certain events fired during the <a href=#application-cache-download-process>application
+ cache download process</a> allow the script to override the display
+ of such an interface. The goal of this is to allow Web applications
+ to provide more seamless update mechanisms, hiding from the user the
+ mechanics of the application cache mechanism. User agents may
+ display user interfaces independent of this, but are encouraged to
+ not show prominent update progress notifications for applications
+ that cancel the relevant events.</p>
+
+ <p class=note>These events are delayed until after the <code title=event-load>load</code> event has fired.</p>
+
+ <p>The <a href=#application-cache-download-process>application cache download process</a> steps are as
+ follows:
+
+ <ol><li><p>Optionally, wait until the permission to start the
+ <a href=#application-cache-download-process>application cache download process</a> has been obtained
+ from the user and until the user agent is confident that the
+ network is available. This could include doing nothing until the
+ user explicitly opts-in to caching the site, or could involve
+ prompting the user for permission. The algorithm might never get
+ past this point. (This step is particularly intended to be used by
+ user agents running on severely space-constrained devices or in
+ highly privacy-sensitive environments).</li>
+
+ <li>
+
+ <p>Atomically, so as to avoid race conditions, perform the
+ following substeps:</p>
+
+ <ol><li>
+
+ <p>Pick the appropriate substeps:</p>
+
+ <dl class=switch><dt>If these steps were invoked with an <a href=#absolute-url>absolute
+ URL</a> purported to identify a <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a></dt>
+
+ <dd>
+
+ <p>Let <var title="">manifest URL</var> be that <a href=#absolute-url>absolute
+ URL</a>.</p>
+
+ <p>If there is no <a href=#application-cache-group>application cache group</a>
+ identified by <var title="">manifest URL</var>, then create a
+ new <a href=#application-cache-group>application cache group</a> identified by <var title="">manifest URL</var>. Initially, it has no <a href=#application-cache title="application cache">application caches</a>. One will
+ be created later in this algorithm.</p>
+
+ </dd>
+
+
+ <dt>If these steps were invoked with an <a href=#application-cache-group>application cache
+ group</a></dt>
+
+ <dd>
+
+ <p>Let <var title="">manifest URL</var> be the <a href=#absolute-url>absolute
+ URL</a> of the <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a> used to
+ identify the <a href=#application-cache-group>application cache group</a> to be
+ updated.</p>
+
+ <p>If that <a href=#application-cache-group>application cache group</a> is <a href=#concept-appcache-obsolete title=concept-appcache-obsolete>obsolete</a>, then abort
+ this instance of the <a href=#application-cache-download-process>application cache download
+ process</a>. This can happen if another instance of this
+ algorithm found the manifest to be 404 or 410 while this
+ algorithm was waiting in the first step above.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li><p>Let <var title="">cache group</var> be the
+ <a href=#application-cache-group>application cache group</a> identified by <var title="">manifest URL</var>.</li>
+
+ <li><p>If these steps were invoked with a <a href=#concept-appcache-master title=concept-appcache-master>master</a> resource, then add
+ the resource, along with the resource's <code><a href=#document>Document</a></code>, to
+ <var title="">cache group</var>'s <a href=#concept-appcache-pending-masters title=concept-appcache-pending-masters>list of pending master
+ entries</a>.</li>
+
+ <li><p>If these steps were invoked with a <a href=#cache-host>cache
+ host</a>, and the <a href=#concept-appcache-status title=concept-appcache-status>status</a> of <var title="">cache group</var> is <i>checking</i> or
+ <i>downloading</i>, then <a href=#queue-a-post-load-task>queue a post-load task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-appcache-checking><a href=#event-appcache-checking>checking</a></code> that is
+ cancelable at the <code><a href=#applicationcache>ApplicationCache</a></code> singleton of that
+ <a href=#cache-host>cache host</a>. The default action of this event must
+ be, if the user agent <a href=#shows-caching-progress>shows caching progress</a>, the
+ display of some sort of user interface indicating to the user
+ that the user agent is checking to see if it can download the
+ application.</li>
+
+ <li><p>If these steps were invoked with a <a href=#cache-host>cache
+ host</a>, and the <a href=#concept-appcache-status title=concept-appcache-status>status</a> of <var title="">cache group</var> is <i>downloading</i>, then also
+ <a href=#queue-a-post-load-task>queue a post-load task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-appcache-downloading><a href=#event-appcache-downloading>downloading</a></code> that is
+ cancelable at the <code><a href=#applicationcache>ApplicationCache</a></code> singleton of that
+ <a href=#cache-host>cache host</a>. The default action of this event must
+ be, if the user agent <a href=#shows-caching-progress>shows caching progress</a>, the
+ display of some sort of user interface indicating to the user the
+ application is being downloaded.</li>
+
+ <li><p>If the <a href=#concept-appcache-status title=concept-appcache-status>status</a>
+ of the <var title="">cache group</var> is either <i>checking</i>
+ or <i>downloading</i>, then abort this instance of the
+ <a href=#application-cache-download-process>application cache download process</a>, as an update is
+ already in progress.</li>
+
+ <li><p>Set the <a href=#concept-appcache-status title=concept-appcache-status>status</a> of <var title="">cache group</var> to <i>checking</i>.</p>
+
+ <li><p>For each <a href=#cache-host>cache host</a> associated with an
+ <a href=#application-cache>application cache</a> in <var title="">cache
+ group</var>, <a href=#queue-a-post-load-task>queue a post-load task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> that is cancelable named <code title=event-appcache-checking><a href=#event-appcache-checking>checking</a></code> at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
+ host</a>. The default action of these events must be, if the
+ user agent <a href=#shows-caching-progress>shows caching progress</a>, the display of
+ some sort of user interface indicating to the user that the user
+ agent is checking for the availability of updates.</li>
+
+ </ol><p class=note>The remainder of the steps run asynchronously.</p>
+
+ <p>If <var title="">cache group</var> already has an
+ <a href=#application-cache>application cache</a> in it, then this is an <dfn id=concept-appcache-upgrade title=concept-appcache-upgrade>upgrade attempt</dfn>. Otherwise,
+ this is a <dfn id=concept-appcache-cache title=concept-appcache-cache>cache
+ attempt</dfn>.</p>
+
+ </li>
+
+ <li><p>If this is a <a href=#concept-appcache-cache title=concept-appcache-cache>cache
+ attempt</a>, then this algorithm was invoked with a <a href=#cache-host>cache
+ host</a>; <a href=#queue-a-post-load-task>queue a post-load task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> named <code title=event-appcache-checking><a href=#event-appcache-checking>checking</a></code> that is cancelable
+ at the <code><a href=#applicationcache>ApplicationCache</a></code> singleton of that <a href=#cache-host>cache
+ host</a>. The default action of this event must be, if the user
+ agent <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort
+ of user interface indicating to the user that the user agent is
+ checking for the availability of updates.</li>
+
+ <li>
+
+ <p><i>Fetching the manifest</i>: <a href=#fetch>Fetch</a> the resource
+ from <var title="">manifest URL</var> with the <i>synchronous
+ flag</i> set, and let <var title="">manifest</var> be that
+ resource.</p> <!-- http-origin privacy sensitive, though it
+ doesn't matter, since this can never be cross-origin -->
+
+ <p>If the resource is labeled with the <a href=#mime-type>MIME type</a>
+ <code><a href=#text/cache-manifest>text/cache-manifest</a></code>, either with no parameters or
+ with a single parameter with the name "<code title="">charset</code>" whose value is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">utf-8</code>", parse <var title="">manifest</var>
+ according to the <a href=#parse-a-manifest title="parse a manifest">rules for parsing
+ manifests</a>, obtaining a list of <a href=#concept-appcache-explicit title=concept-appcache-explicit>explicit entries</a>, <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback entries</a> and the
+ <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback
+ namespaces</a> that map to them, entries for the <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist</a>,
+ and a value for the <a href=#concept-appcache-onlinewhitelist-wildcard title=concept-appcache-onlinewhitelist-wildcard>online whitelist
+ wildcard flag</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <i>fetching the manifest</i> fails due to a 404 or 410
+ response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
+ equivalent</a>, then run these substeps:</p>
+
+ <ol><li><p>Mark <var title="">cache group</var> as <a href=#concept-appcache-obsolete title=concept-appcache-obsolete>obsolete</a>. This <var title="">cache group</var> no longer exists for any purpose other
+ than the processing of <code><a href=#document>Document</a></code> objects already
+ associated with an <a href=#application-cache>application cache</a> in the <var title="">cache group</var>.</li>
+
+ <li><p>Let <var title="">task list</var> be an empty list of
+ <a href=#concept-task title=concept-task>tasks</a>.</p>
+
+ <li><p>For each <a href=#cache-host>cache host</a> associated with an
+ <a href=#application-cache>application cache</a> in <var title="">cache
+ group</var>, create a <a href=#concept-task title=concept-task>task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-appcache-obsolete><a href=#event-appcache-obsolete>obsolete</a></code> that is
+ cancelable at the <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the
+ <a href=#cache-host>cache host</a>, and append it to <var title="">task
+ list</var>. The default action of these events must be, if the
+ user agent <a href=#shows-caching-progress>shows caching progress</a>, the display of
+ some sort of user interface indicating to the user that the
+ application is no longer available for offline use.</li>
+
+ <li><p>For each entry in <var title="">cache group</var>'s <a href=#concept-appcache-pending-masters title=concept-appcache-pending-masters>list of pending master
+ entries</a>, create a <a href=#concept-task title=concept-task>task</a>
+ to <a href=#fire-a-simple-event>fire a simple event</a> that is cancelable named
+ <code title=event-appcache-error><a href=#event-appcache-error>error</a></code> (not <code title=event-appcache-obsolete><a href=#event-appcache-obsolete>obsolete</a></code>!) at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
+ host</a> the <code><a href=#document>Document</a></code> for this entry, if there
+ still is one, and append it to <var title="">task list</var>. The
+ default action of this event must be, if the user agent
+ <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort of
+ user interface indicating to the user that the user agent failed
+ to save the application for offline use.</li>
+
+ <li><p>If <var title="">cache group</var> has an
+ <a href=#application-cache>application cache</a> whose <a href=#concept-appcache-completeness title=concept-appcache-completeness>completeness flag</a> is
+ <i>incomplete</i>, then discard that <a href=#application-cache>application
+ cache</a>.</p>
+
+ <li><p>If appropriate, remove any user interface indicating that
+ an update for this cache is in progress.</li>
+
+ <li><p>Let the <a href=#concept-appcache-status title=concept-appcache-status>status</a> of <var title="">cache group</var> be <i>idle</i>.</li>
+
+ <li><p>For each <a href=#concept-task title=concept-task>task</a> in <var title="">task list</var>, <a href=#queue-a-post-load-task title="queue a post-load
+ task">queue that task as a post-load task</a>.</li>
+
+ <li><p>Abort the <a href=#application-cache-download-process>application cache download
+ process</a>.</li>
+
+ </ol></li>
+
+ <li>
+
+ <p>Otherwise, if <i>fetching the manifest</i> fails in some other
+ way (e.g. the server returns another 4xx or 5xx response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a>, or
+ there is a DNS error, or the connection times out, or the user
+ cancels the download, or the parser for manifests fails when
+ checking the magic signature), or if the server returned a
+ redirect, or if the resource is labeled with a <a href=#mime-type>MIME
+ type</a> other than <code><a href=#text/cache-manifest>text/cache-manifest</a></code> or has
+ parameters that do not match the conditions listed earlier, then
+ run the <a href=#cache-failure-steps>cache failure steps</a>. <a href=#refsHTTP>[HTTP]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>If this is an <a href=#concept-appcache-upgrade title=concept-appcache-upgrade>upgrade
+ attempt</a> and the newly downloaded <var title="">manifest</var> is byte-for-byte identical to the manifest
+ found in the <a href=#concept-appcache-newer title=concept-appcache-newer>newest</a>
+ <a href=#application-cache>application cache</a> in <var title="">cache group</var>,
+ or the server reported it as "304 Not Modified" <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a>, then
+ run these substeps:</p>
+
+ <ol><li><p>Let <var title="">cache</var> be the <a href=#concept-appcache-newer title=concept-appcache-newer>newest</a> <a href=#application-cache>application
+ cache</a> in <var title="">cache group</var>.</li>
+
+ <li><p>Let <var title="">task list</var> be an empty list of
+ <a href=#concept-task title=concept-task>tasks</a>.</p>
+
+ <li>
+
+ <p>For each entry in <var title="">cache group</var>'s <a href=#concept-appcache-pending-masters title=concept-appcache-pending-masters>list of pending master
+ entries</a>, wait for the resource for this entry to have
+ either completely downloaded or failed.</p>
+
+ <p>If the download failed (e.g. the server returns a 4xx or 5xx
+ response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
+ equivalent</a>, or there is a DNS error, the connection times
+ out, or the user cancels the download), or if the resource is
+ labeled with the "no-store" cache directive, then create a <a href=#concept-task title=concept-task>task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> that is cancelable named <code title=event-appcache-error><a href=#event-appcache-error>error</a></code> at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
+ host</a> the <code><a href=#document>Document</a></code> for this entry, if there
+ still is one, and append it to <var title="">task list</var>.
+ The default action of this event must be, if the user agent
+ <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort of
+ user interface indicating to the user that the user agent failed
+ to save the application for offline use.</p>
+
+ <p>Otherwise, associate the <code><a href=#document>Document</a></code> for this entry
+ with <var title="">cache</var>; store the resource for this
+ entry in <var title="">cache</var>, if it isn't already there,
+ and categorize its entry as a <a href=#concept-appcache-master title=concept-appcache-master>master entry</a>. If the
+ resource's <a href=#url>URL</a> has a <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a> component, it must
+ be removed from the entry in <var title="">cache</var>
+ (application caches never include fragment identifiers).</p>
+
+ </li>
+
+ <li><p>For each <a href=#cache-host>cache host</a> associated with an
+ <a href=#application-cache>application cache</a> in <var title="">cache
+ group</var>, create a <a href=#concept-task title=concept-task>task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> that is cancelable named <code title=event-appcache-noupdate><a href=#event-appcache-noupdate>noupdate</a></code> at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
+ host</a>, and append it to <var title="">task list</var>. The
+ default action of these events must be, if the user agent
+ <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort of
+ user interface indicating to the user that the application is up
+ to date.</li>
+
+ <li><p>Empty <var title="">cache group</var>'s <a href=#concept-appcache-pending-masters title=concept-appcache-pending-masters>list of pending master
+ entries</a>.</li>
+
+ <li><p>If appropriate, remove any user interface indicating that
+ an update for this cache is in progress.</li>
+
+ <li><p>Let the <a href=#concept-appcache-status title=concept-appcache-status>status</a> of <var title="">cache group</var> be <i>idle</i>.</li>
+
+ <li><p>For each <a href=#concept-task title=concept-task>task</a> in <var title="">task list</var>, <a href=#queue-a-post-load-task title="queue a post-load
+ task">queue that task as a post-load task</a>.</li>
+
+ <li><p>Abort the <a href=#application-cache-download-process>application cache download
+ process</a>.</li>
+
+ </ol></li>
+
+ <li><p>Let <var title="">new cache</var> be a newly created
+ <a href=#application-cache>application cache</a> in <var title="">cache
+ group</var>. Set its <a href=#concept-appcache-completeness title=concept-appcache-completeness>completeness flag</a> to
+ <i>incomplete</i>.</li>
+
+ <li><p>For each entry in <var title="">cache group</var>'s <a href=#concept-appcache-pending-masters title=concept-appcache-pending-masters>list of pending master
+ entries</a>, associate the <code><a href=#document>Document</a></code> for this entry
+ with <var title="">new cache</var>.</li>
+
+ <li><p>Set the <a href=#concept-appcache-status title=concept-appcache-status>status</a>
+ of <var title="">cache group</var> to <i>downloading</i>.</li>
+
+ <li><p>For each <a href=#cache-host>cache host</a> associated with an
+ <a href=#application-cache>application cache</a> in <var title="">cache group</var>,
+ <a href=#queue-a-post-load-task>queue a post-load task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> that is cancelable named <code title=event-appcache-downloading><a href=#event-appcache-downloading>downloading</a></code> at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
+ host</a>. The default action of these events must be, if the
+ user agent <a href=#shows-caching-progress>shows caching progress</a>, the display of some
+ sort of user interface indicating to the user that a new version is
+ being downloaded.</li>
+
+ <li><p>Let <var title="">file list</var> be an empty list of
+ URLs with flags.</li>
+
+ <li><p>Add all the URLs in the list of <a href=#concept-appcache-explicit title=concept-appcache-explicit>explicit entries</a> obtained
+ by parsing <var title="">manifest</var> to <var title="">file
+ list</var>, each flagged with "explicit entry".</li>
+
+ <li><p>Add all the URLs in the list of <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback entries</a> obtained
+ by parsing <var title="">manifest</var> to <var title="">file
+ list</var>, each flagged with "fallback entry".</li>
+
+ <li><p>If this is an <a href=#concept-appcache-upgrade title=concept-appcache-upgrade>upgrade
+ attempt</a>, then add all the URLs of <a href=#concept-appcache-master title=concept-appcache-master>master entries</a> in the <a href=#concept-appcache-newer title=concept-appcache-newer>newest</a> <a href=#application-cache>application
+ cache</a> in <var title="">cache group</var> whose <a href=#concept-appcache-completeness title=concept-appcache-completeness>completeness flag</a> is
+ <i>complete</i> to <var title="">file list</var>, each flagged with
+ "master entry".</li>
+
+ <li><p>If any URL is in <var title="">file list</var> more than
+ once, then merge the entries into one entry for that URL, that
+ entry having all the flags that the original entries had.</li>
+
+ <li>
+
+ <p>For each URL in <var title="">file list</var>, run the
+ following steps. These steps may be run in parallel for two or
+ more of the URLs at a time. If, while running these steps, the
+ <code><a href=#applicationcache>ApplicationCache</a></code> object's <code title=dom-appcache-abort><a href=#dom-appcache-abort>abort()</a></code> method <a href=#send-a-signal title="send
+ a signal">sends a signal</a> to this instance of the
+ <a href=#application-cache-download-process>application cache download process</a> algorithm, then
+ run the <a href=#cache-failure-steps>cache failure steps</a> instead.</p>
+
+ <ol><li>
+
+ <p>If the resource URL being processed was flagged as neither an
+ "explicit entry" nor or a "fallback entry", then the user agent
+ may skip this URL.</p>
+
+ <p class=note>This is intended to allow user agents to expire
+ resources not listed in the manifest from the cache. Generally,
+ implementors are urged to use an approach that expires
+ lesser-used resources first.</p>
+
+ </li>
+
+ <li><p>For each <a href=#cache-host>cache host</a> associated with an
+ <a href=#application-cache>application cache</a> in <var title="">cache
+ group</var>, <a href=#queue-a-post-load-task>queue a post-load task</a> to fire an event
+ with the name <code title=event-appcache-progress><a href=#event-appcache-progress>progress</a></code>, which does not
+ bubble, which is cancelable, and which uses the
+ <code>ProgressEvent</code> interface, at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
+ host</a>. The <code title=dom-ProgressEvents-lengthComputable>lengthComputable</code>
+ attribute must be set to true, the <code title=dom-ProgressEvents-total>total</code> attribute must be
+ set to the number of files in <var title="">file list</var>, and
+ the <code title=dom-ProgressEvents-loaded>loaded</code>
+ attribute must be set to the number of files in <var title="">file list</var> that have been either downloaded or
+ skipped so far. The default action of these events must be, if
+ the user agent <a href=#shows-caching-progress>shows caching progress</a>, the display
+ of some sort of user interface indicating to the user that a file
+ is being downloaded in preparation for updating the application.
+ <a href=#refsPROGRESS>[PROGRESS]</a></li>
+
+ <li>
+
+ <p><a href=#fetch>Fetch</a> the resource, from the <a href=#origin>origin</a>
+ of the <a href=#url>URL</a> <var title="">manifest URL</var>, with
+ the <i>synchronous flag</i> set and the <i>manual redirect
+ flag</i> set. If this is an <a href=#concept-appcache-upgrade title=concept-appcache-upgrade>upgrade attempt</a>, then
+ use the <a href=#concept-appcache-newer title=concept-appcache-newer>newest</a>
+ <a href=#application-cache>application cache</a> in <var title="">cache
+ group</var> as an HTTP cache, and honor HTTP caching semantics
+ (such as expiration, ETags, and so forth) with respect to that
+ cache. User agents may also have other caches in place that are
+ also honored.</p> <!-- not http-origin privacy sensitive -->
+
+ <p class=note>If the resource in question is already being
+ downloaded for other reasons then the existing download process
+ can sometimes be used for the purposes of this step, as defined
+ by the <a href=#fetch title=fetch>fetching</a> algorithm.</p>
+
+ <p class=example>An example of a resource that might already
+ be being downloaded is a large image on a Web page that is being
+ seen for the first time. The image would get downloaded to
+ satisfy the <code><a href=#the-img-element>img</a></code> element on the page, as well as
+ being listed in the cache manifest. According to the rules for
+ <a href=#fetch title=fetch>fetching</a> that image only need be
+ downloaded once, and it can be used both for the cache and for
+ the rendered Web page.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the previous step fails (e.g. the server returns a 4xx or
+ 5xx response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
+ equivalent</a>, or there is a DNS error, or the connection
+ times out, or the user cancels the download), or if the server
+ returned a redirect, or if the resource is labeled with the
+ "no-store" cache directive, then run the first appropriate step
+ from the following list: <a href=#refsHTTP>[HTTP]</a></p>
+
+ <dl class=switch><dt>If the URL being processed was flagged as an "explicit
+ entry" or a "fallback entry"</dt>
+
+ <dd>
+
+ <p>If these steps are being run in parallel for any other URLs
+ in <var title="">file list</var>, then abort these steps for
+ those other URLs. Run the <a href=#cache-failure-steps>cache failure
+ steps</a>.</p>
+
+ <p class=note>Redirects are fatal because they are either
+ indicative of a network problem (e.g. a captive portal); or
+ would allow resources to be added to the cache under URLs that
+ differ from any URL that the networking model will allow
+ access to, leaving orphan entries; or would allow resources to
+ be stored under URLs different than their true URLs. All of
+ these situations are bad.</p>
+
+ </dd>
+
+ <dt>If the error was a 404 or 410 HTTP response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a></dt>
+
+ <dt>If the resource was labeled with the "no-store" cache
+ directive</dt>
+
+ <dd>
+
+ <p>Skip this resource. It is dropped from the cache.</p>
+
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>Copy the resource and its metadata from the <a href=#concept-appcache-newer title=concept-appcache-newer>newest</a> <a href=#application-cache>application
+ cache</a> in <var title="">cache group</var> whose <a href=#concept-appcache-completeness title=concept-appcache-completeness>completeness flag</a>
+ is <i>complete</i>, and act as if that was the fetched
+ resource, ignoring the resource obtained from the network.</p>
+
+ </dd>
+
+ </dl><p>User agents may warn the user of these errors as an aid to
+ development.</p>
+
+ <p class=note>These rules make errors for resources listed in
+ the manifest fatal, while making it possible for other resources
+ to be removed from caches when they are removed from the server,
+ without errors, and making non-manifest resources survive
+ server-side errors.</p>
+
+ <p class=note>Except for the "no-store" directive, HTTP
+ caching rules are ignored for the purposes of the
+ <a href=#application-cache-download-process>application cache download process</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Otherwise, the fetching succeeded. Store the resource in
+ the <var title="">new cache</var>.</p>
+
+ <p>If the user agent is not able to store the resource (e.g.
+ because of quota restrictions), the user agent may prompt the
+ user or try to resolve the problem in some other manner (e.g.
+ automatically pruning content in other caches). If the problem
+ cannot be resolved, the user agent must run the <a href=#cache-failure-steps>cache
+ failure steps</a>.</p>
+
+ </li>
+
+ <li><p>If the URL being processed was flagged as an "explicit
+ entry" in <var title="">file list</var>, then categorize the
+ entry as an <a href=#concept-appcache-explicit title=concept-appcache-explicit>explicit
+ entry</a>.</li>
+
+ <li><p>If the URL being processed was flagged as a "fallback
+ entry" in <var title="">file list</var>, then categorize the
+ entry as a <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback
+ entry</a>.</li>
+
+ <li><p>If the URL being processed was flagged as an "master
+ entry" in <var title="">file list</var>, then categorize the
+ entry as a <a href=#concept-appcache-master title=concept-appcache-master>master
+ entry</a>.</li>
+
+ <li><p>As an optimization, if the resource is an HTML or XML file
+ whose root element is an <code><a href=#the-html-element>html</a></code> element with a <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute whose value
+ doesn't match the manifest URL of the application cache being
+ processed, then the user agent should mark the entry as being
+ <a href=#concept-appcache-foreign title=concept-appcache-foreign>foreign</a>.</p>
+
+ </ol></li>
+
+ <li><p>For each <a href=#cache-host>cache host</a> associated with an
+ <a href=#application-cache>application cache</a> in <var title="">cache group</var>,
+ <a href=#queue-a-post-load-task>queue a post-load task</a> to fire an event with the name
+ <code title=event-appcache-progress><a href=#event-appcache-progress>progress</a></code>, which does
+ not bubble, which is cancelable, and which uses the
+ <code>ProgressEvent</code> interface, at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
+ host</a>. The <code title=dom-ProgressEvents-lengthComputable>lengthComputable</code>
+ attribute must be set to true, the <code title=dom-ProgressEvents-total>total</code> and the <code title=dom-ProgressEvents-loaded>loaded</code> attributes must be
+ set to the number of files in <var title="">file list</var>. The
+ default action of these events must be, if the user agent
+ <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort of
+ user interface indicating to the user that all the files have been
+ downloaded. <a href=#refsPROGRESS>[PROGRESS]</a></li>
+
+ <li><p>Store the list of <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespaces</a>,
+ and the URLs of the <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback entries</a> that they
+ map to, in <var title="">new cache</var>.</li>
+
+ <li><p>Store the URLs that form the new <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist</a> in
+ <var title="">new cache</var>.</li>
+
+ <li><p>Store the value of the new <a href=#concept-appcache-onlinewhitelist-wildcard title=concept-appcache-onlinewhitelist-wildcard>online whitelist
+ wildcard flag</a> in <var title="">new cache</var>.</li>
+
+ <li>
+
+ <p>For each entry in <var title="">cache group</var>'s <a href=#concept-appcache-pending-masters title=concept-appcache-pending-masters>list of pending master
+ entries</a>, wait for the resource for this entry to have
+ either completely downloaded or failed.</p>
+
+ <p>If the download failed (e.g. the server returns a 4xx or 5xx
+ response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
+ equivalent</a>, or there is a DNS error, the connection times
+ out, or the user cancels the download), or if the resource is
+ labeled with the "no-store" cache directive, then run these
+ substeps:</p>
+
+ <ol><li><p>Unassociate the <code><a href=#document>Document</a></code> for this entry from
+ <var title="">new cache</var>.</li>
+
+ <li><p><a href=#queue-a-post-load-task>Queue a post-load task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> that is cancelable named <code title=event-appcache-error><a href=#event-appcache-error>error</a></code> at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the
+ <code><a href=#document>Document</a></code> for this entry, if there still is one. The
+ default action of this event must be, if the user agent
+ <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort of
+ user interface indicating to the user that the user agent failed
+ to save the application for offline use.</p>
+
+ <li>
+
+ <p>If this is a <a href=#concept-appcache-cache title=concept-appcache-cache>cache
+ attempt</a> and this entry is the last entry in <var title="">cache group</var>'s <a href=#concept-appcache-pending-masters title=concept-appcache-pending-masters>list of pending master
+ entries</a>, then run these further substeps:</p>
+
+ <ol><li><p>Discard <var title="">cache group</var> and its only
+ <a href=#application-cache>application cache</a>, <var title="">new
+ cache</var>.</p>
+
+ <li><p>If appropriate, remove any user interface indicating
+ that an update for this cache is in progress.</li>
+
+ <li><p>Abort the <a href=#application-cache-download-process>application cache download
+ process</a>.</li>
+
+ </ol></li>
+
+ <li><p>Otherwise, remove this entry from <var title="">cache
+ group</var>'s <a href=#concept-appcache-pending-masters title=concept-appcache-pending-masters>list
+ of pending master entries</a>.</li>
+
+ </ol><p>Otherwise, store the resource for this entry in <var title="">new cache</var>, if it isn't already there, and
+ categorize its entry as a <a href=#concept-appcache-master title=concept-appcache-master>master entry</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#fetch>Fetch</a> the resource from <var title="">manifest
+ URL</var> again, with the <i>synchronous flag</i> set, and let
+ <var title="">second manifest</var> be that resource.</p> <!--
+ http-origin privacy sensitive, though it doesn't matter, since
+ this can never be cross-origin -->
+
+ </li>
+
+ <li>
+
+ <p>If the previous step failed for any reason, or if the fetching
+ attempt involved a redirect, or if <var title="">second
+ manifest</var> and <var title="">manifest</var> are not
+ byte-for-byte identical, then schedule a rerun of the entire
+ algorithm with the same parameters after a short delay, and run
+ the <a href=#cache-failure-steps>cache failure steps</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Otherwise, store <var title="">manifest</var> in <var title="">new cache</var>, if it's not there already, and
+ categorize its entry as <a href=#concept-appcache-manifest title=concept-appcache-manifest>the manifest</a>.</p>
+
+ </li>
+
+ <li><p>Set the <a href=#concept-appcache-completeness title=concept-appcache-completeness>completeness flag</a> of
+ <var title="">new cache</var> to <i>complete</i>.</li>
+
+ <li><p>Let <var title="">task list</var> be an empty list of <a href=#concept-task title=concept-task>tasks</a>.</p>
+
+ <li>
+
+ <p>If this is a <a href=#concept-appcache-cache title=concept-appcache-cache>cache
+ attempt</a>, then for each <a href=#cache-host>cache host</a> associated
+ with an <a href=#application-cache>application cache</a> in <var title="">cache
+ group</var>, create a <a href=#concept-task title=concept-task>task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> that is cancelable named <code title=event-appcache-cached><a href=#event-appcache-cached>cached</a></code> at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
+ host</a>, and append it to <var title="">task list</var>. The
+ default action of these events must be, if the user agent
+ <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort of
+ user interface indicating to the user that the application has
+ been cached and that they can now use it offline.</p>
+
+ <p>Otherwise, it is an <a href=#concept-appcache-upgrade title=concept-appcache-upgrade>upgrade attempt</a>. For each
+ <a href=#cache-host>cache host</a> associated with an <a href=#application-cache>application
+ cache</a> in <var title="">cache group</var>, create a <a href=#concept-task title=concept-task>task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> that is cancelable named <code title=event-appcache-updateready><a href=#event-appcache-updateready>updateready</a></code> at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
+ host</a>, and append it to <var title="">task list</var>. The
+ default action of these events must be, if the user agent
+ <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort of
+ user interface indicating to the user that a new version is
+ available and that they can activate it by reloading the page.</p>
+
+ </li>
+
+ <li><p>If appropriate, remove any user interface indicating that
+ an update for this cache is in progress.</li>
+
+ <li><p>Set the <a href=#concept-appcache-status title=concept-appcache-status>update
+ status</a> of <var title="">cache group</var> to
+ <i>idle</i>.</li>
+
+ <li><p>For each <a href=#concept-task title=concept-task>task</a> in <var title="">task list</var>, <a href=#queue-a-post-load-task title="queue a post-load
+ task">queue that task as a post-load task</a>.</li>
+
+ </ol><p>The <dfn id=cache-failure-steps>cache failure steps</dfn> are as follows:</p>
+
+ <ol><li><p>Let <var title="">task list</var> be an empty list of <a href=#concept-task title=concept-task>tasks</a>.</p>
+
+ <li>
+
+ <p>For each entry in <var title="">cache group</var>'s <a href=#concept-appcache-pending-masters title=concept-appcache-pending-masters>list of pending master
+ entries</a>, run the following further substeps. These steps
+ may be run in parallel for two or more entries at a time.</p>
+
+ <ol><li><p>Wait for the resource for this entry to have either
+ completely downloaded or failed.</p>
+
+ <li><p>Unassociate the <code><a href=#document>Document</a></code> for this entry from
+ its <a href=#application-cache>application cache</a>, if it has one.</li>
+
+ <li><p>Create a <a href=#concept-task title=concept-task>task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> that is cancelable named <code title=event-appcache-error><a href=#event-appcache-error>error</a></code> at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the
+ <code><a href=#document>Document</a></code> for this entry, if there still is one, and
+ append it to <var title="">task list</var>. The default action of
+ these events must be, if the user agent <a href=#shows-caching-progress>shows caching
+ progress</a>, the display of some sort of user interface
+ indicating to the user that the user agent failed to save the
+ application for offline use.</p>
+
+ </ol></li>
+
+ <li><p>For each <a href=#cache-host>cache host</a> still associated with an
+ <a href=#application-cache>application cache</a> in <var title="">cache group</var>,
+ create a <a href=#concept-task title=concept-task>task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> that is cancelable named <code title=event-appcache-error><a href=#event-appcache-error>error</a></code> at the
+ <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
+ host</a>, and append it to <var title="">task list</var>. The
+ default action of these events must be, if the user agent
+ <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort of
+ user interface indicating to the user that the user agent failed to
+ save the application for offline use.</li>
+
+ <li><p>Empty <var title="">cache group</var>'s <a href=#concept-appcache-pending-masters title=concept-appcache-pending-masters>list of pending master
+ entries</a>.</li>
+
+ <li><p>If <var title="">cache group</var> has an <a href=#application-cache>application
+ cache</a> whose <a href=#concept-appcache-completeness title=concept-appcache-completeness>completeness flag</a> is
+ <i>incomplete</i>, then discard that <a href=#application-cache>application
+ cache</a>.</p>
+
+ <li><p>If appropriate, remove any user interface indicating that an
+ update for this cache is in progress.</li>
+
+ <li><p>Let the <a href=#concept-appcache-status title=concept-appcache-status>status</a>
+ of <var title="">cache group</var> be <i>idle</i>.</li>
+
+ <li><p>If this was a <a href=#concept-appcache-cache title=concept-appcache-cache>cache
+ attempt</a>, discard <var title="">cache group</var>
+ altogether.</p>
+
+ <li><p>For each <a href=#concept-task title=concept-task>task</a> in <var title="">task list</var>, <a href=#queue-a-post-load-task title="queue a post-load
+ task">queue that task as a post-load task</a>.</li>
+
+ <li><p>Abort the <a href=#application-cache-download-process>application cache download
+ process</a>.</li>
+
+ </ol><p>Attempts to <a href=#fetch>fetch</a> resources as part of the
+ <a href=#application-cache-download-process>application cache download process</a> may be done with
+ cache-defeating semantics, to avoid problems with stale or
+ inconsistent intermediary caches.</p>
+
+ <hr><p>User agents may invoke the <a href=#application-cache-download-process>application cache download
+ process</a>, in the background, for any <a href=#application-cache>application
+ cache</a>, at any time (with no <a href=#cache-host>cache host</a>). This
+ allows user agents to keep caches primed and to update caches even
+ before the user visits a site.</p>
+
+ <hr><p>Each <code><a href=#document>Document</a></code> has a list of <dfn id=pending-application-cache-download-process-tasks>pending application
+ cache download process tasks</dfn> that is used to delay events
+ fired by the algorithm above until the document's <code title=event-load>load</code> event has fired. When the
+ <code><a href=#document>Document</a></code> is created, the list must be empty.</p>
+
+ <p>When the steps above say to <dfn id=queue-a-post-load-task>queue a post-load task</dfn>
+ <var title="">task</var>, where <var title="">task</var> is a <a href=#concept-task title=concept-task>task</a> that dispatches an event on a
+ target <code><a href=#applicationcache>ApplicationCache</a></code> object <var title="">target</var>, the user agent must run the appropriate steps
+ from the following list:</p>
+
+ <dl><dt>If <var title="">target</var>'s <code><a href=#document>Document</a></code> is
+ <a href=#ready-for-post-load-tasks>ready for post-load tasks</a></dt>
+
+ <dd><p><a href=#queue-a-task title="queue a task">Queue</a> the task <var title="">task</var>.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd><p>Add <var title="">task</var> to <var title="">target</var>'s
+ <code><a href=#document>Document</a></code>'s list of <a href=#pending-application-cache-download-process-tasks>pending application cache
+ download process tasks</a>.</dd>
+
+ </dl><p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#networking-task-source>networking task
+ source</a>.</p>
+
+
+
+
+ <h4 id=the-application-cache-selection-algorithm><span class=secno>6.6.5 </span>The application cache selection algorithm</h4>
+
+ <p>When the <dfn id=concept-appcache-init title=concept-appcache-init>application cache
+ selection algorithm</dfn> algorithm is invoked with a
+ <code><a href=#document>Document</a></code> <var title="">document</var> and optionally a
+ manifest <a href=#url>URL</a> <var title="">manifest URL</var>, the user
+ agent must run the first applicable set of steps from the following
+ list:</p>
+
+ <dl class=switch><dt>If there is a <var title="">manifest URL</var>, and <var title="">document</var> was loaded from an <a href=#application-cache>application
+ cache</a>, and the URL of the <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a> of that cache's
+ <a href=#application-cache-group>application cache group</a> is <em>not</em> the same as
+ <var title="">manifest URL</var></dt>
+
+ <dd>
+
+ <p>Mark the entry for the resource from which <var title="">document</var> was taken in the <a href=#application-cache>application
+ cache</a> from which it was loaded as <a href=#concept-appcache-foreign title=concept-appcache-foreign>foreign</a>.</p>
+
+ <p>Restart the current navigation from the top of the <a href=#navigate title=navigate>navigation algorithm</a>, undoing any changes
+ that were made as part of the initial load (changes can be avoided
+ by ensuring that the step to <a href=#update-the-session-history-with-the-new-page>update the session history with
+ the new page</a> is only ever completed <em>after</em> this
+ <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ algorithm</a> is run, though this is not required).</p>
+
+ <p class=note>The navigation will not result in the same
+ resource being loaded, because "foreign" entries are never picked
+ during navigation.</p>
+
+ <p>User agents may notify the user of the inconsistency between
+ the cache manifest and the document's own metadata, to aid in
+ application development.</p>
+
+ </dd>
+
+
+ <dt>If <var title="">document</var> was loaded from an
+ <a href=#application-cache>application cache</a>, and that <a href=#application-cache>application
+ cache</a> still exists (it is not now <a href=#concept-appcache-obsolete title=concept-appcache-obsolete>obsolete</a>)<!--[redundant],
+ and either there is no <var title="">manifest URL</var>, or the URL
+ of the <span title="concept-appcache-manifest">manifest</span> of
+ the cache's <span>application cache group</span> is the same as
+ <var title="">manifest URL</var>--></dt>
+
+ <dd>
+
+ <p>Associate <var title="">document</var> with the
+ <a href=#application-cache>application cache</a> from which it was loaded. Invoke,
+ in the background, the <a href=#application-cache-download-process>application cache download
+ process</a> for that <a href=#application-cache>application cache</a>'s
+ <a href=#application-cache-group>application cache group</a>, with <var title="">document</var> as the <a href=#cache-host>cache host</a>.</p>
+
+ </dd>
+
+
+ <dt>If <var title="">document</var> <!--[redundant] was not loaded
+ from an <span>application cache</span>, but it--> was loaded using
+ HTTP GET <a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or
+ equivalent</a>, and, there is a <var title="">manifest
+ URL</var>, and <var title="">manifest URL</var> has the <a href=#same-origin>same
+ origin</a> as <var title="">document</var></dt>
+
+ <dd>
+
+ <p>Invoke, in the background, the <a href=#application-cache-download-process>application cache download
+ process</a> for <var title="">manifest URL</var>, with <var title="">document</var> as the <a href=#cache-host>cache host</a> and with
+ the resource from which <var title="">document</var> was parsed as
+ the <a href=#concept-appcache-master title=concept-appcache-master>master</a>
+ resource.</p>
+
+ </dd>
+
+
+ <dt>Otherwise</dt> <!-- not from cache and either no <var
+ title="">manifest URL</var>, or non-GET, or wrong-origin manifest -->
+
+ <dd>
+
+ <p>The <code><a href=#document>Document</a></code> is not associated with any
+ <a href=#application-cache>application cache</a>.</p>
+
+ <p>If there was a <var title="">manifest URL</var>, the user agent
+ may report to the user that it was ignored, to aid in application
+ development.</p>
+
+ </dd>
+
+ </dl><h4 id=changesToNetworkingModel><span class=secno>6.6.6 </span>Changes to the networking model</h4>
+
+ <p>When a <a href=#cache-host>cache host</a> is associated with an
+ <a href=#application-cache>application cache</a> whose <a href=#concept-appcache-completeness title=concept-appcache-completeness>completeness flag</a> is
+ <i>complete</i>, any and all loads for resources related to that
+ <a href=#cache-host>cache host</a> other than those for <a href=#child-browsing-context title="child
+ browsing context">child browsing contexts</a> must go through the
+ following steps instead of immediately invoking the mechanisms
+ appropriate to that resource's scheme:</p>
+
+ <ol><li><p>If the resource is not to be fetched using the HTTP GET
+ mechanism <a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or
+ equivalent</a>, or if its <a href=#url>URL</a> has a different <a href=#url-scheme title=url-scheme>&lt;scheme&gt;</a> component than the
+ <a href=#application-cache>application cache</a>'s <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a>, then
+ <a href=#fetch>fetch</a> the resource normally and abort these
+ steps.</li>
+
+ <li><p>If the resource's URL is <a href=#concept-appcache-master title=concept-appcache-master>a master entry</a>, <a href=#concept-appcache-manifest title=concept-appcache-manifest>the manifest</a>, <a href=#concept-appcache-explicit title=concept-appcache-explicit>an explicit entry</a>, or
+ <a href=#concept-appcache-fallback title=concept-appcache-fallback>a fallback entry</a> in
+ the <a href=#application-cache>application cache</a>, then get the resource from the
+ cache (instead of fetching it), and abort these steps.</li>
+
+ <li><p>If there is an entry in the <a href=#application-cache>application cache</a>'s
+ <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online
+ whitelist</a> that has the <a href=#same-origin>same origin</a> as the
+ resource's URL and that is a <a href=#prefix-match>prefix match</a> for the
+ resource's URL, then <a href=#fetch>fetch</a> the resource normally and
+ abort these steps.</li>
+
+ <li>
+
+ <p>If the resource's URL has the <a href=#same-origin>same origin</a> as the
+ manifest's URL, and there is a <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespace</a>
+ <var title="">f</var> in the <a href=#application-cache>application cache</a> that
+ is a <a href=#prefix-match>prefix match</a> for the resource's URL, then:</p>
+
+ <p><a href=#fetch>Fetch</a> the resource normally. If this results in a
+ redirect to a resource with another <a href=#origin>origin</a>
+ (indicative of a captive portal), or a 4xx or 5xx status code
+ <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a>,
+ or if there were network errors (but not if the user canceled the
+ download), then instead get, from the cache, the resource of the
+ <a href=#concept-appcache-fallback title=concept-appcache-fallback>fallback entry</a>
+ corresponding to the <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespace</a>
+ <var title="">f</var>. Abort these steps.</p>
+
+ </li>
+
+ <li><p>If the <a href=#application-cache>application cache</a>'s <a href=#concept-appcache-onlinewhitelist-wildcard title=concept-appcache-onlinewhitelist-wildcard>online whitelist
+ wildcard flag</a> is <i title="">open</i>, then
+ <a href=#fetch>fetch</a> the resource normally and abort these
+ steps.</li>
+
+ <li><p>Fail the resource load as if there had been a generic
+ network error.</li>
+
+ </ol><p class=note>The above algorithm ensures that so long as the
+ <a href=#concept-appcache-onlinewhitelist-wildcard title=concept-appcache-onlinewhitelist-wildcard>online
+ whitelist wildcard flag</a> is <i title="">blocking</i>,
+ resources that are not present in the <a href=#concept-appcache-manifest title=concept-appcache-manifest>manifest</a> will always fail
+ to load (at least, after the <a href=#application-cache>application cache</a> has been
+ primed the first time), making the testing of offline applications
+ simpler.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=expiring-application-caches><span class=secno>6.6.7 </span>Expiring application caches</h4>
+
+ <p>As a general rule, user agents should not expire application
+ caches, except on request from the user, or after having been left
+ unused for an extended period of time.</p>
+
+ <p>Application caches and cookies have similar implications with
+ respect to privacy (e.g. if the site can identify the user when
+ providing the cache, it can store data in the cache that can be used
+ for cookie resurrection). Implementors are therefore encouraged to
+ expose application caches in a manner related to HTTP cookies,
+ allowing caches to be expunged together with cookies and other
+ origin-specific data.</p>
+
+ <p class=example>For example, a user agent could have a "delete
+ site-specific data" feature that clears all cookies, application
+ caches, local storage, databases, etc, from an origin all at
+ once.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=disk-space><span class=secno>6.6.8 </span>Disk space</h4>
+
+ <p>User agents should consider applying constraints on disk usage of
+ <a href=#application-cache title="application cache">application caches</a>, and care
+ should be taken to ensure that the restrictions cannot be easily
+ worked around using subdomains.</p>
+
+ <p>User agents should allow users to see how much space each domain
+ is using, and may offer the user the ability to delete specific
+ <a href=#application-cache title="application cache">application caches</a>.</p>
+
+ <p class=note>How quotas are presented to the user is not defined
+ by this specification. User agents are encouraged to provide
+ features such as allowing a user to indicate that certain sites are
+ trusted to use more than the default quota, e.g. by asynchronously
+ presenting a user interface while a cache is being updated, or by
+ having an explicit whitelist in the user agent's configuration
+ interface.</p>
+
+ </div>
+
+
+
+ <h4 id=application-cache-api><span class=secno>6.6.9 </span>Application cache API</h4>
+
+ <pre class=idl>interface <dfn id=applicationcache>ApplicationCache</dfn> : <a href=#eventtarget>EventTarget</a> {
+
+ // <a href=#concept-appcache-status title=concept-appcache-status>update status</a>
+ const unsigned short <a href=#dom-appcache-uncached title=dom-appcache-UNCACHED>UNCACHED</a> = 0;
+ const unsigned short <a href=#dom-appcache-idle title=dom-appcache-IDLE>IDLE</a> = 1;
+ const unsigned short <a href=#dom-appcache-checking title=dom-appcache-CHECKING>CHECKING</a> = 2;
+ const unsigned short <a href=#dom-appcache-downloading title=dom-appcache-DOWNLOADING>DOWNLOADING</a> = 3;
+ const unsigned short <a href=#dom-appcache-updateready title=dom-appcache-UPDATEREADY>UPDATEREADY</a> = 4;
+ const unsigned short <a href=#dom-appcache-obsolete title=dom-appcache-OBSOLETE>OBSOLETE</a> = 5;
+ readonly attribute unsigned short <a href=#dom-appcache-status title=dom-appcache-status>status</a>;
+
+ // updates
+ void <a href=#dom-appcache-update title=dom-appcache-update>update</a>();
+ void <a href=#dom-appcache-abort title=dom-appcache-abort>abort</a>();
+ void <a href=#dom-appcache-swapcache title=dom-appcache-swapCache>swapCache</a>();
+
+ // events
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onchecking title=handler-appcache-onchecking>onchecking</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onerror title=handler-appcache-onerror>onerror</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onnoupdate title=handler-appcache-onnoupdate>onnoupdate</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-ondownloading title=handler-appcache-ondownloading>ondownloading</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onprogress title=handler-appcache-onprogress>onprogress</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onupdateready title=handler-appcache-onupdateready>onupdateready</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-oncached title=handler-appcache-oncached>oncached</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-appcache-onobsolete title=handler-appcache-onobsolete>onobsolete</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">cache</var> = <var title="">window</var> . <code title=dom-applicationCache><a href=#dom-applicationcache>applicationCache</a></code></dt>
+ <dd>
+
+ <p>(In a window.) Returns the <code><a href=#applicationcache>ApplicationCache</a></code> object that applies to the <a href=#active-document>active document</a> of that <code><a href=#window>Window</a></code>.</p>
+
+ </dd>
+
+ <dt><var title="">cache</var> = <var title="">self</var> . <code title=dom-applicationCache><a href=#dom-applicationcache>applicationCache</a></code></dt>
+ <dd>
+
+ <p>(In a shared worker.) Returns the <code><a href=#applicationcache>ApplicationCache</a></code> object that applies to the current shared worker.
+ </p>
+
+ </dd>
+
+ <dt><var title="">cache</var> . <code title=dom-appcache-status><a href=#dom-appcache-status>status</a></code></dt>
+ <dd>
+
+ <p>Returns the current status of the application cache, as given by the constants defined below.</p>
+
+ </dd>
+
+ <dt><var title="">cache</var> . <code title=dom-appcache-update><a href=#dom-appcache-update>update</a></code>()</dt>
+ <dd>
+
+ <p>Invokes the <a href=#application-cache-download-process>application cache download process</a>.</p>
+
+ <p>Throws an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception if there is no application cache to update.</p>
+
+ <p>Calling this method is not usually necessary, as user agents
+ will generally take care of updating <a href=#application-cache title="application
+ cache">application caches</a> automatically.</p>
+
+ <p>The method can be useful in situations such as long-lived
+ applications. For example, a Web mail application might stay open
+ in a browser tab for weeks at a time. Such an application could
+ want to test for updates each day.</p>
+
+ </dd>
+
+ <dt><var title="">cache</var> . <code title=dom-appcache-abort><a href=#dom-appcache-abort>abort</a></code>()</dt>
+ <dd>
+
+ <p>Cancels the <a href=#application-cache-download-process>application cache download process</a>.</p>
+
+ <p>This method is intended to be used by Web application showing
+ their own caching progress UI, in case the user wants to stop the
+ update (e.g. because bandwidth is limited).</p>
+
+ </dd>
+
+ <dt><var title="">cache</var> . <code title=dom-appcache-swapCache><a href=#dom-appcache-swapcache>swapCache</a></code>()</dt>
+ <dd>
+
+ <p>Switches to the most recent application cache, if there is a
+ newer one. If there isn't, throws an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception.</p>
+
+ <p>This does not cause previously-loaded resources to be reloaded;
+ for example, images do not suddenly get reloaded and style sheets
+ and scripts do not get reparsed or reevaluated. The only change is
+ that subsequent requests for cached resources will obtain the
+ newer copies.</p>
+
+ <p>The <code title=event-appcache-updateready><a href=#event-appcache-updateready>updateready</a></code>
+ event will fire before this method can be called. Once it fires,
+ the Web application can, at its leisure, call this method to
+ switch the underlying cache to the one with the more recent
+ updates. To make proper use of this, applications have to be able
+ to bring the new features into play; for example, reloading
+ scripts to enable new features.</p>
+
+ <p>An easier alternative to <code title=dom-appcache-swapCache><a href=#dom-appcache-swapcache>swapCache()</a></code> is just to
+ reload the entire page at a time suitable for the user, using
+ <code title=dom-location-reload><a href=#dom-location-reload>location.reload()</a></code>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>There is a one-to-one mapping from <a href=#cache-host title="cache host">cache
+ hosts</a> to <code><a href=#applicationcache>ApplicationCache</a></code> objects. The <dfn id=dom-applicationcache title=dom-applicationCache><code>applicationCache</code></dfn>
+ attribute on <code><a href=#window>Window</a></code> objects must return the
+ <code><a href=#applicationcache>ApplicationCache</a></code> object associated with the
+ <code><a href=#window>Window</a></code> object's <a href=#active-document>active document</a>. The <dfn id=dom-sharedworkerglobalscope-applicationcache title=dom-SharedWorkerGlobalScope-applicationCache><code>applicationCache</code></dfn>
+ attribute on <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> objects must
+ return the <code><a href=#applicationcache>ApplicationCache</a></code> object associated with the
+ worker.
+ </p>
+
+ <p class=note>A <code><a href=#window>Window</a></code> or
+ <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object has an associated
+ <code><a href=#applicationcache>ApplicationCache</a></code> object even if that <a href=#cache-host>cache
+ host</a> has no actual <a href=#application-cache>application cache</a>.</p>
+
+ <hr><p>The <dfn id=dom-appcache-status title=dom-appcache-status><code>status</code></dfn>
+ attribute, on getting, must return the current state of the
+ <a href=#application-cache>application cache</a> that the
+ <code><a href=#applicationcache>ApplicationCache</a></code> object's <a href=#cache-host>cache host</a> is
+ associated with, if any. This must be the appropriate value from the
+ following list:</p>
+
+ </div>
+
+ <dl><dt><dfn id=dom-appcache-uncached title=dom-appcache-UNCACHED><code>UNCACHED</code></dfn>
+ (numeric value 0)</dt>
+
+ <dd><p>The <code><a href=#applicationcache>ApplicationCache</a></code> object's <a href=#cache-host>cache
+ host</a> is not associated with an <a href=#application-cache>application
+ cache</a> at this time.</dd>
+
+ <dt><dfn id=dom-appcache-idle title=dom-appcache-IDLE><code>IDLE</code></dfn>
+ (numeric value 1)</dt>
+
+ <dd><p>The <code><a href=#applicationcache>ApplicationCache</a></code> object's <a href=#cache-host>cache
+ host</a> is associated with an <a href=#application-cache>application cache</a>
+ whose <a href=#application-cache-group>application cache group</a>'s <a href=#concept-appcache-status title=concept-appcache-status>update status</a> is
+ <i>idle</i>, and that <a href=#application-cache>application cache</a> is the <a href=#concept-appcache-newer title=concept-appcache-newer>newest</a> cache in its
+ <a href=#application-cache-group>application cache group</a>, and the <a href=#application-cache-group>application
+ cache group</a> is not marked as <a href=#concept-appcache-obsolete title=concept-appcache-obsolete>obsolete</a>.</dd>
+
+ <dt><dfn id=dom-appcache-checking title=dom-appcache-CHECKING><code>CHECKING</code></dfn>
+ (numeric value 2)</dt>
+
+ <dd><p>The <code><a href=#applicationcache>ApplicationCache</a></code> object's <a href=#cache-host>cache
+ host</a> is associated with an <a href=#application-cache>application cache</a>
+ whose <a href=#application-cache-group>application cache group</a>'s <a href=#concept-appcache-status title=concept-appcache-status>update status</a> is
+ <i>checking</i>.</dd>
+
+ <dt><dfn id=dom-appcache-downloading title=dom-appcache-DOWNLOADING><code>DOWNLOADING</code></dfn>
+ (numeric value 3)</dt>
+
+ <dd><p>The <code><a href=#applicationcache>ApplicationCache</a></code> object's <a href=#cache-host>cache
+ host</a> is associated with an <a href=#application-cache>application cache</a>
+ whose <a href=#application-cache-group>application cache group</a>'s <a href=#concept-appcache-status title=concept-appcache-status>update status</a> is
+ <i>downloading</i>.</dd>
+
+ <dt><dfn id=dom-appcache-updateready title=dom-appcache-UPDATEREADY><code>UPDATEREADY</code></dfn>
+ (numeric value 4)</dt>
+
+ <dd><p>The <code><a href=#applicationcache>ApplicationCache</a></code> object's <a href=#cache-host>cache
+ host</a> is associated with an <a href=#application-cache>application cache</a>
+ whose <a href=#application-cache-group>application cache group</a>'s <a href=#concept-appcache-status title=concept-appcache-status>update status</a> is
+ <i>idle</i>, and whose <a href=#application-cache-group>application cache group</a> is not
+ marked as <a href=#concept-appcache-obsolete title=concept-appcache-obsolete>obsolete</a>,
+ but that <a href=#application-cache>application cache</a> is <em>not</em> the <a href=#concept-appcache-newer title=concept-appcache-newer>newest</a> cache in its
+ group.</dd>
+
+ <dt><dfn id=dom-appcache-obsolete title=dom-appcache-OBSOLETE><code>OBSOLETE</code></dfn>
+ (numeric value 5)</dt>
+
+ <dd><p>The <code><a href=#applicationcache>ApplicationCache</a></code> object's <a href=#cache-host>cache
+ host</a> is associated with an <a href=#application-cache>application cache</a>
+ whose <a href=#application-cache-group>application cache group</a> is marked as <a href=#concept-appcache-obsolete title=concept-appcache-obsolete>obsolete</a>.</dd>
+
+ </dl><div class=impl>
+
+ <hr><p>If the <dfn id=dom-appcache-update title=dom-appcache-update><code>update()</code></dfn> method is
+ invoked, the user agent must invoke the <a href=#application-cache-download-process>application cache
+ download process</a>, in the background, for the <a href=#application-cache>application
+ cache</a> with which the <code><a href=#applicationcache>ApplicationCache</a></code> object's
+ <a href=#cache-host>cache host</a> is associated, but without giving that
+ <a href=#cache-host>cache host</a> to the algorithm. If there is no such
+ <a href=#application-cache>application cache</a>, or if it is marked as <a href=#concept-appcache-obsolete title=concept-appcache-obsolete>obsolete</a>, then the method
+ must throw an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception instead.</p>
+
+ <p>If the <dfn id=dom-appcache-abort title=dom-appcache-abort><code>abort()</code></dfn>
+ method is invoked, the user agent must <dfn id=send-a-signal>send a signal</dfn> to
+ the current <a href=#application-cache-download-process>application cache download process</a> for the
+ <a href=#application-cache>application cache</a> with which the
+ <code><a href=#applicationcache>ApplicationCache</a></code> object's <a href=#cache-host>cache host</a> is
+ associated, if any. If there is no such <a href=#application-cache>application
+ cache</a>, or if does not have a current <a href=#application-cache-download-process>application cache
+ download process</a>, then do nothing.</p>
+
+ <p>If the <dfn id=dom-appcache-swapcache title=dom-appcache-swapCache><code>swapCache()</code></dfn> method
+ is invoked, the user agent must run the following steps:
+
+ <ol><li><p>Check that <code><a href=#applicationcache>ApplicationCache</a></code> object's
+ <a href=#cache-host>cache host</a> is associated with an <a href=#application-cache>application
+ cache</a>. If it is not, then throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception and abort these
+ steps.</li>
+
+ <li><p>Let <var title="">cache</var> be the <a href=#application-cache>application
+ cache</a> with which the <code><a href=#applicationcache>ApplicationCache</a></code> object's
+ <a href=#cache-host>cache host</a> is associated. (By definition, this is the
+ same as the one that was found in the previous step.)</li>
+
+ <li><p>If <var title="">cache</var>'s <a href=#application-cache-group>application cache
+ group</a> is marked as <a href=#concept-appcache-obsolete title=concept-appcache-obsolete>obsolete</a>, then unassociate
+ the <code><a href=#applicationcache>ApplicationCache</a></code> object's <a href=#cache-host>cache host</a>
+ from <var title="">cache</var> and abort these steps. (Resources
+ will now load from the network instead of the cache.)</li>
+
+ <li><p>Check that there is an application cache in the same
+ <a href=#application-cache-group>application cache group</a> as <var title="">cache</var>
+ whose <a href=#concept-appcache-completeness title=concept-appcache-completeness>completeness
+ flag</a> is <i>complete</i> and that is <a href=#concept-appcache-newer title=concept-appcache-newer>newer</a> than <var title="">cache</var>. If there is not, then throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception and abort these
+ steps.</li>
+
+ <li><p>Let <var title="">new cache</var> be the <a href=#concept-appcache-newer title=concept-appcache-newer>newest</a> <a href=#application-cache>application
+ cache</a> in the same <a href=#application-cache-group>application cache group</a> as
+ <var title="">cache</var> whose <a href=#concept-appcache-completeness title=concept-appcache-completeness>completeness flag</a> is
+ <i>complete</i>.</li>
+
+ <li><p>Unassociate the <code><a href=#applicationcache>ApplicationCache</a></code> object's
+ <a href=#cache-host>cache host</a> from <var title="">cache</var> and instead
+ associate it with <var title="">new cache</var>.</li>
+
+ </ol><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ all objects implementing the <code><a href=#applicationcache>ApplicationCache</a></code>
+ interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-appcache-onchecking title=handler-appcache-onchecking><code>onchecking</code></dfn> <td> <code title=event-appcache-checking><a href=#event-appcache-checking>checking</a></code>
+ <tr><td><dfn id=handler-appcache-onerror title=handler-appcache-onerror><code>onerror</code></dfn> <td> <code title=event-appcache-error><a href=#event-appcache-error>error</a></code>
+ <tr><td><dfn id=handler-appcache-onnoupdate title=handler-appcache-onnoupdate><code>onnoupdate</code></dfn> <td> <code title=event-appcache-noupdate><a href=#event-appcache-noupdate>noupdate</a></code>
+ <tr><td><dfn id=handler-appcache-ondownloading title=handler-appcache-ondownloading><code>ondownloading</code></dfn> <td> <code title=event-appcache-downloading><a href=#event-appcache-downloading>downloading</a></code>
+ <tr><td><dfn id=handler-appcache-onprogress title=handler-appcache-onprogress><code>onprogress</code></dfn> <td> <code title=event-appcache-progress><a href=#event-appcache-progress>progress</a></code>
+ <tr><td><dfn id=handler-appcache-onupdateready title=handler-appcache-onupdateready><code>onupdateready</code></dfn> <td> <code title=event-appcache-updateready><a href=#event-appcache-updateready>updateready</a></code>
+ <tr><td><dfn id=handler-appcache-oncached title=handler-appcache-oncached><code>oncached</code></dfn> <td> <code title=event-appcache-cached><a href=#event-appcache-cached>cached</a></code>
+ <tr><td><dfn id=handler-appcache-onobsolete title=handler-appcache-onobsolete><code>onobsolete</code></dfn> <td> <code title=event-appcache-obsolete><a href=#event-appcache-obsolete>obsolete</a></code>
+ </table></div>
+
+
+ <h4 id=browser-state><span class=secno>6.6.10 </span>Browser state</h4>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=navigatoronline>NavigatorOnLine</dfn> {
+ readonly attribute boolean <a href=#dom-navigator-online title=dom-navigator-onLine>onLine</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-onLine><a href=#dom-navigator-online>onLine</a></code></dt>
+
+ <dd>
+
+ <p>Returns false if the user agent is definitely offline
+ (disconnected from the network). Returns true if the user agent
+ might be online.</p>
+
+ <p>The events <code title=event-online><a href=#event-online>online</a></code> and <code title=event-offline><a href=#event-offline>offline</a></code> are fired when the value of
+ this attribute changes.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-navigator-online title=dom-navigator-onLine><code>navigator.onLine</code></dfn>
+ attribute must return false if the user agent will not contact the
+ network when the user follows links or when a script requests a
+ remote page (or knows that such an attempt would fail), and must
+ return true otherwise.</p>
+
+ <p>When the value that would be returned by the <code title=dom-navigator-onLine><a href=#dom-navigator-online>navigator.onLine</a></code> attribute of a
+ <code><a href=#window>Window</a></code> or <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> changes from
+ true to false, the user agent must <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <dfn id=event-offline title=event-offline><code>offline</code></dfn> at the
+ <code><a href=#window>Window</a></code> or <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object.</p>
+
+ <p>On the other hand, when the value that would be returned by the
+ <code title=dom-navigator-onLine><a href=#dom-navigator-online>navigator.onLine</a></code> attribute
+ of a <code><a href=#window>Window</a></code> or <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> changes
+ from false to true, the user agent must <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <dfn id=event-online title=event-online><code>online</code></dfn> at the
+ <code><a href=#window>Window</a></code> or <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object.</p>
+
+ <p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#networking-task-source>networking task
+ source</a>.</p>
+
+ </div>
+
+ <p class=note>This attribute is inherently unreliable. A computer
+ can be connected to a network without having Internet access.</p>
+
+ <div class=example>
+
+ <p>In this example, an indicator is updated as the browser goes
+ online and offline.</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Online status&lt;/title&gt;
+ &lt;script&gt;
+ function updateIndicator() {
+ document.getElementById('indicator').textContent = navigator.onLine ? 'online' : 'offline';
+ }
+ &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body onload="updateIndicator()" ononline="updateIndicator()" onoffline="updateIndicator()"&gt;
+ &lt;p&gt;The network is: &lt;span id="indicator"&gt;(state unknown)&lt;/span&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ </div>
+
+
+
+ <h2 id=webappapis><span class=secno>7 </span>Web application APIs</h2>
+
+ <h3 id=scripting><span class=secno>7.1 </span>Scripting</h3>
+
+ <h4 id=introduction-7><span class=secno>7.1.1 </span>Introduction</h4>
+
+ <p>Various mechanisms can cause author-provided executable code to
+ run in the context of a document. These mechanisms include, but are
+ probably not limited to:</p>
+
+ <ul><li>Processing of <code><a href=#the-script-element>script</a></code> elements.</li>
+
+ <li>Processing of inline <code title="javascript
+ protocol"><a href=#javascript-protocol>javascript:</a></code> URLs (e.g. the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute of <code><a href=#the-img-element>img</a></code>
+ elements, or an <code title="">@import</code> rule in a CSS
+ <code><a href=#the-style-element>style</a></code> element block).</li>
+
+ <li>Event handlers, whether registered through the DOM using <code title="">addEventListener()</code>, by explicit <a href=#event-handler-content-attributes>event handler
+ content attributes</a>, by <a href=#event-handler-idl-attributes>event handler IDL
+ attributes</a>, or otherwise.</li>
+
+ <li>Processing of technologies like XBL or SVG that have their own
+ scripting features.</li>
+
+ </ul><div class=impl>
+
+ <h4 id=enabling-and-disabling-scripting><span class=secno>7.1.2 </span>Enabling and disabling scripting</h4>
+
+ <p><dfn id=concept-bc-script title=concept-bc-script>Scripting is enabled</dfn> in a
+ <em><a href=#browsing-context>browsing context</a></em> when all of the
+ following conditions are true:</p>
+
+ <ul><li>The user agent supports scripting.</li>
+
+ <li>The user has not disabled scripting for this <a href=#browsing-context>browsing
+ context</a> at this time. (User agents may provide users with
+ the option to disable scripting globally, or in a finer-grained
+ manner, e.g. on a per-origin basis.)</li>
+
+ <li id=sandboxScriptBlocked>The <a href=#browsing-context>browsing context</a> did
+ not have the <a href=#sandboxed-scripts-browsing-context-flag>sandboxed scripts browsing context flag</a>
+ set when the <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active
+ document</a> was created.</li>
+
+ </ul><p><dfn id=concept-bc-noscript title=concept-bc-noscript>Scripting is disabled</dfn> in a
+ <a href=#browsing-context>browsing context</a> when any of the above conditions are
+ false (i.e. when scripting is not <a href=#concept-bc-script title=concept-bc-script>enabled</a>).</p>
+
+ <hr><p><dfn id=concept-n-script title=concept-n-script>Scripting is enabled</dfn> for a
+ <em>node</em> if the <code><a href=#document>Document</a></code> object of the node (the
+ node itself, if it is itself a <code><a href=#document>Document</a></code> object) has an
+ associated <a href=#browsing-context>browsing context</a>, and <a href=#concept-bc-script title=concept-bc-script>scripting is enabled</a> in that
+ <a href=#browsing-context>browsing context</a>.</p>
+
+ <p><dfn id=concept-n-noscript title=concept-n-noscript>Scripting is disabled</dfn> for a
+ node if there is no such <a href=#browsing-context>browsing context</a>, or if <a href=#concept-bc-noscript title=concept-bc-noscript>scripting is disabled</a> in that
+ <a href=#browsing-context>browsing context</a>.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <!-- SCRIPT EXEC (marks areas related to creation of scripts) -->
+ <h4 id=processing-model-1><span class=secno>7.1.3 </span>Processing model</h4>
+
+ <h5 id=definitions-0><span class=secno>7.1.3.1 </span>Definitions</h5>
+
+ <p>A <dfn id=concept-script title=concept-script>script</dfn> has:</p>
+
+ <dl><dt>A <dfn id=script-execution-environment>script execution environment</dfn></dt>
+
+ <dd>
+
+ <p>The characteristics of the script execution environment depend
+ on the language, and are not defined by this specification.</p>
+
+ <p class=example>In JavaScript, the script execution environment
+ consists of the interpreter, the stack of <i>execution
+ contexts</i>, the <i>global code</i> and <i>function code</i> and
+ the Function objects resulting, and so forth.</p>
+
+ </dd>
+
+ <dt>A <dfn id=list-of-code-entry-points>list of code entry-points</dfn></dt>
+
+ <dd>
+
+ <p>Each code entry-point represents a block of executable code
+ that the script exposes to other scripts and to the user
+ agent.</p>
+
+ <p class=example>Each Function object in a JavaScript
+ <a href=#script-execution-environment>script execution environment</a> has a corresponding code
+ entry-point, for instance.</p>
+
+ <p>The main program code of the script, if any, is the
+ <dfn id=initial-code-entry-point><i>initial code entry-point</i></dfn>. Typically, the code
+ corresponding to this entry-point is executed immediately after
+ the script is parsed.</p>
+
+ <p class=example>In JavaScript, this corresponds to the
+ execution context of the global code.</p>
+
+ </dd>
+
+ <dt>A relationship with the <dfn id="script's-global-object">script's global object</dfn></dt>
+
+ <dd>
+
+ <p>An object that provides the APIs that the code can use.</p>
+
+ <p class=example>This is typically a <code><a href=#window>Window</a></code>
+ object. In JavaScript, this corresponds to the <i>global
+ object</i>.</p>
+
+ <p class=note>When a <a href="#script's-global-object">script's global object</a> is an
+ empty object, it can't do anything that interacts with the
+ environment.</p>
+
+ <p>If the <a href="#script's-global-object">script's global object</a> is a
+ <code><a href=#window>Window</a></code> object, then in JavaScript, the ThisBinding of
+ the global execution context for this script must be the
+ <code><a href=#window>Window</a></code> object's <code><a href=#windowproxy>WindowProxy</a></code> object,
+ rather than the global object. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ <p class=note>This is a <a href=#willful-violation>willful violation</a> of the
+ JavaScript specification current at the time of writing
+ (ECMAScript edition 5, as defined in section 10.4.1.1 Initial
+ Global Execution Context, step 3). The JavaScript specification
+ requires that the <code title="">this</code> keyword in the global
+ scope return the global object, but this is not compatible with
+ the security design prevalent in implementations as specified
+ herein. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ </dd>
+
+ <dt>A relationship with the <dfn id="script's-browsing-context">script's browsing context</dfn></dt>
+
+ <dd>
+
+ <p>A <a href=#browsing-context>browsing context</a> that is assigned responsibility
+ for actions taken by the script.</p>
+
+ <p class=example>When a script creates and <a href=#navigate title=navigate>navigates</a> a new <a href=#top-level-browsing-context>top-level browsing
+ context</a>, the <code title=dom-opener><a href=#dom-opener>opener</a></code>
+ attribute of the new <a href=#browsing-context>browsing context</a>'s
+ <code><a href=#window>Window</a></code> object will be set to the <a href="#script's-browsing-context">script's
+ browsing context</a>'s <code><a href=#windowproxy>WindowProxy</a></code> object.</p>
+
+ </dd>
+
+ <dt>A relationship with the <dfn id="script's-document">script's document</dfn></dt>
+
+ <dd>
+
+ <p>A <code><a href=#document>Document</a></code> that is assigned responsibility for
+ actions taken by the script.</p>
+
+ <p class=example>When a script <a href=#fetch title=fetch>fetches</a> a resource, the <a href="#the-document's-current-address" title="the
+ document's current address">current address</a> of the
+ <a href="#script's-document">script's document</a> will be used to set the <code title=http-referer>Referer</code> (sic) header.</p>
+
+ </dd>
+
+ <dt>A <dfn id="script's-url-character-encoding" title="script's URL character encoding">URL character encoding</dfn></dt>
+
+ <dd>
+
+ <p>A character encoding, set when the script is created, used to
+ encode URLs. <span id=sce-not-copy title="">If the character
+ encoding is set from another source, e.g. a <a href="#document's-character-encoding">document's
+ character encoding</a>, then the <a href="#script's-url-character-encoding">script's URL character
+ encoding</a> must follow the source, so that if the source's
+ changes, so does the script's.</span></p>
+
+ </dd>
+
+ <dt>A <dfn id="script's-base-url" title="script's base URL">base URL</dfn></dt>
+
+ <dd>
+
+ <p>A <a href=#url>URL</a>, set when the script is created, used to
+ resolve relative URLs. <span id=sbu-not-copy title="">If the
+ base URL is set from another source, e.g. a <a href=#document-base-url>document base
+ URL</a>, then the <a href="#script's-base-url">script's base URL</a> must follow
+ the source, so that if the source's changes, so does the
+ script's.</span></p>
+
+ </dd>
+
+ </dl></div>
+
+
+ <div class=impl>
+
+ <h5 id=calling-scripts><span class=secno>7.1.3.2 </span>Calling scripts</h5>
+
+ <p>When a user agent is to <dfn id=jump-to-a-code-entry-point>jump to a code entry-point</dfn> for
+ a <a href=#concept-script title=concept-script>script</a>, for example to invoke
+ an event listener defined in that <a href=#concept-script title=concept-script>script</a>, the user agent must run the
+ following steps:</p>
+
+ <ol><li><p>If the <a href="#script's-global-object">script's global object</a> is a
+ <code><a href=#window>Window</a></code> object whose <code><a href=#document>Document</a></code> object is
+ not <a href=#fully-active>fully active</a>, then abort these steps without doing
+ anything. The callback is not run.</p>
+
+ <li><p>Set the <a href=#entry-script>entry script</a> to be the <a href=#concept-script title=concept-script>script</a> being invoked.</li>
+
+ <li><p>Make the <a href=#script-execution-environment title="script execution environment">script
+ execution environment</a> for the <a href=#concept-script title=concept-script>script</a> execute the code for the given
+ code entry-point.</li>
+
+ <li><p>Set the <a href=#entry-script>entry script</a> back to whatever it was
+ when this algorithm started.</li>
+
+ </ol><p>This algorithm is not invoked by one script calling another.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h5 id=creating-scripts><span class=secno>7.1.3.3 </span>Creating scripts</h5>
+
+ <p>When the specification says that a <a href=#concept-script title=concept-script>script</a> is to be <dfn id=create-a-script title="create a
+ script">created</dfn>, given some script source, its scripting
+ language, a global object, a browsing context, a URL character
+ encoding, and a base URL, the user agent must run the following
+ steps:</p>
+
+ <ol><li><p>If <a href=#concept-bc-noscript title=concept-bc-noscript>scripting is
+ disabled</a> for <a href=#browsing-context>browsing context</a> passed to this
+ algorithm, then abort these steps, as if the script did nothing but
+ return void.</p>
+
+ <li><p>Set up a <a href=#script-execution-environment>script execution environment</a> as
+ appropriate for the scripting language.</li>
+
+ <li><p>Parse/compile/initialize the source of the script using the
+ <a href=#script-execution-environment>script execution environment</a>, as appropriate for the
+ scripting language, and thus obtain the <a href=#list-of-code-entry-points>list of code
+ entry-points</a> for the script. If the semantics of the
+ scripting language and the given source code are such that there is
+ executable code to be immediately run, then the <i><a href=#initial-code-entry-point>initial code
+ entry-point</a></i> is the entry-point for that code.</li>
+
+ <li><p>Set up the <a href="#script's-global-object">script's global object</a>, the
+ <a href="#script's-browsing-context">script's browsing context</a>, the <a href="#script's-document">script's
+ document</a>, the <a href="#script's-url-character-encoding">script's URL character encoding</a>,
+ and the <a href="#script's-base-url">script's base URL</a> from the settings passed to
+ this algorithm.</li>
+
+ <li>
+
+ <p>If all the steps above succeeded (in particular, if the script
+ was compiled successfully), <a href=#jump-to-a-code-entry-point title="jump to a code
+ entry-point">Jump</a> to the <a href=#concept-script title=concept-script>script</a>'s <i><a href=#initial-code-entry-point>initial code
+ entry-point</a></i>.</p>
+
+ <p>Otherwise, <a href=#report-the-error>report the error</a> using the <code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code> <a href=#event-handlers title="event
+ handlers">event handler</a> of the <a href="#script's-global-object">script's global
+ object</a>. If the error is still <i title=concept-error-nothandled><a href=#concept-error-nothandled>not handled</a></i> after this, then
+ the error may be reported to the user.</p>
+
+ </li>
+
+ </ol><hr><p>When the user agent is to <dfn id=create-an-impotent-script>create an impotent script</dfn>,
+ given some script source, its scripting language, and a browsing
+ context, the user agent must <a href=#create-a-script>create a script</a>, using the
+ given script source and scripting language, using a new empty object
+ as the global object, and using the given browsing context as the
+ browsing context. The URL character encoding and base URL for the
+ resulting <a href=#concept-script title=concept-script>script</a> are not
+ important as no APIs are exposed to the script.</p>
+
+ <hr><p>When the specification says that a <a href=#concept-script title=concept-script>script</a> is to be <dfn id=create-a-script-from-a-node title="create a
+ script from a node">created from a node</dfn> <var title="">node</var>, given some script source and its scripting
+ language, the user agent must <a href=#create-a-script>create a script</a>, using
+ the given script source and scripting language, and using <a href=#the-script-settings-determined-from-the-node>the
+ script settings determined from the node</a> <var title="">node</var>.</p>
+
+ <p><dfn id=the-script-settings-determined-from-the-node>The script settings determined from the node</dfn> <var title="">node</var> are computed as follows:</p>
+
+ <ol><li><p>Let <var title="">document</var> be the
+ <code><a href=#document>Document</a></code> of <var title="">node</var> (or <var title="">node</var> itself if it is a
+ <code><a href=#document>Document</a></code>).</li>
+
+ <li><p>The browsing context is the <a href=#browsing-context>browsing context</a> of
+ <var title="">document</var>.</p>
+
+ <li><p>The global object is the <code><a href=#window>Window</a></code> object of
+ <var title="">document</var>.</li>
+
+ <li><p>The URL character encoding is the <a href="#document's-character-encoding" title="document's
+ character encoding">character encoding</a> of <var title="">document</var>. (<a href=#sce-not-copy>This is a
+ reference, not a copy</a>.)</li>
+
+ <li><p>The base URL is the <a href=#document-base-url title="document base URL">base
+ URL</a> of <var title="">document</var>. (<a href=#sbu-not-copy>This is a reference, not a copy</a>.)</li>
+
+ </ol></div>
+
+
+ <div class=impl>
+
+ <h5 id=killing-scripts><span class=secno>7.1.3.4 </span>Killing scripts</h5>
+
+ <p>User agents may impose resource limitations on scripts, for
+ example CPU quotas, memory limits, total execution time limits, or
+ bandwidth limitations. When a script exceeds a limit, the user agent
+ may either throw a <code><a href=#quotaexceedederror>QuotaExceededError</a></code> exception, abort
+ the script without an exception, prompt the user, or throttle script
+ execution.</p>
+
+ <div class=example>
+
+ <p>For example, the following script never terminates. A user agent
+ could, after waiting for a few seconds, prompt the user to either
+ terminate the script or let it continue.</p>
+
+ <pre>&lt;script&gt;
+ while (true) { /* loop */ }
+&lt;/script&gt;</pre>
+
+ </div>
+
+ <p>User agents are encouraged to allow users to disable scripting
+ whenever the user is prompted either by a script (e.g. using the
+ <code title=dom-alert><a href=#dom-alert>window.alert()</a></code> API) or because of a
+ script's actions (e.g. because it has exceeded a time limit).</p>
+
+ <p>If scripting is disabled while a script is executing, the script
+ should be terminated immediately.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h5 id=runtime-script-errors><span class=secno>7.1.3.5 </span>Runtime script errors</h5>
+
+ <p>When the user agent is required to <dfn id=report-the-error title="report the
+ error">report an error</dfn> <var title="">error</var> using the
+ <a href=#event-handlers title="event handlers">event handler</a> <var title="">onerror</var>, it must run these steps, after which the
+ error is either <dfn id=concept-error-handled title=concept-error-handled><i>handled</i></dfn> or <dfn id=concept-error-nothandled title=concept-error-nothandled><i>not handled</i></dfn>:</p>
+
+ <dl class=switch><dt>If the value of <var title="">onerror</var> is a
+ <code><a href=#function>Function</a></code></dt>
+
+ <dd>
+
+ <p>The function must be invoked with three arguments. The first
+ two arguments passed to the function must be of type
+ <code>DOMString</code>, and the third must be of type
+ <code>unsigned long</code>. The first must give the message that
+ the UA is considering reporting, the second must give the
+ <a href=#absolute-url>absolute URL</a> of the resource in which the error
+ occurred, and the third must give the line number in that resource
+ on which the error occurred.</p>
+
+ <p>If the function returns false, then the error is <i title=concept-error-handled><a href=#concept-error-handled>handled</a></i>. Otherwise, the error is
+ <i title=concept-error-nothandled><a href=#concept-error-nothandled>not handled</a></i>.</p>
+
+ <p>Any uncaught exceptions thrown or errors caused by this
+ function may be reported to the user immediately after the error
+ that the function was called for; the <a href=#report-the-error title="report the
+ error">report an error</a> algorithm must not be used to handle
+ exceptions thrown or errors caused by this function.</p>
+
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>The error is <i title=concept-error-nothandled><a href=#concept-error-nothandled>not handled</a></i>.</p>
+
+ </dd>
+
+ </dl><h6 id=runtime-script-errors-in-documents><span class=secno>7.1.3.5.1 </span>Runtime script errors in documents</h6>
+
+ <p>Whenever an uncaught runtime script error occurs in one of the
+ scripts associated with a <code><a href=#document>Document</a></code>, the user agent must
+ <a href=#report-the-error>report the error</a> using the <code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code> <a href=#event-handlers title="event
+ handlers">event handler</a> of the <a href="#script's-global-object">script's global
+ object</a>. If the error is still <i title=concept-error-nothandled><a href=#concept-error-nothandled>not handled</a></i> after this, then
+ the error may be reported to the user.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=event-loops><span class=secno>7.1.4 </span>Event loops</h4>
+
+ <h5 id=definitions-1><span class=secno>7.1.4.1 </span>Definitions</h5>
+
+ <p>To coordinate events, user interaction, scripts, rendering,
+ networking, and so forth, user agents must use <dfn id=event-loop title="event
+ loop">event loops</dfn> as described in this section.</p>
+
+ <p>There must be at least one <a href=#event-loop>event loop</a> per user
+ agent, and at most one <a href=#event-loop>event loop</a> per <a href=#unit-of-related-similar-origin-browsing-contexts>unit of
+ related similar-origin browsing contexts</a>.</p>
+
+ <p class=note>When there is more than one <a href=#event-loop>event loop</a>
+ for a <a href=#unit-of-related-browsing-contexts>unit of related browsing contexts</a>, complications
+ arise when a <a href=#browsing-context>browsing context</a> in that group is <a href=#navigate title=navigate>navigated</a> such that it switches from one
+ <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</a> to
+ another. This specification does not currently describe how to
+ handle these complications.</p>
+
+ <p>An <a href=#event-loop>event loop</a> always has at least one <a href=#browsing-context>browsing
+ context</a>. If an <a href=#event-loop>event loop</a>'s <a href=#browsing-context title="browsing context">browsing contexts</a> all go away, then
+ the <a href=#event-loop>event loop</a> goes away as well. A <a href=#browsing-context>browsing
+ context</a> always has an <a href=#event-loop>event loop</a> coordinating
+ its activities.</p>
+
+
+ <p>An <a href=#event-loop>event loop</a> has one or more <dfn id=task-queue title="task
+ queue">task queues</dfn>. A <a href=#task-queue>task queue</a> is an ordered
+ list of <dfn id=concept-task title=concept-task>tasks</dfn>, which can be:</p>
+
+ <dl><dt>Events</dt>
+
+ <dd>
+
+ <p>Asynchronously dispatching an <code><a href=#event>Event</a></code> object at a
+ particular <code><a href=#eventtarget>EventTarget</a></code> object is a task.</p>
+
+ <p class=note>Not all events are dispatched using the <a href=#task-queue>task
+ queue</a>, many are dispatched synchronously during other
+ tasks.</p>
+
+ </dd>
+
+
+ <dt>Parsing</dt>
+
+ <dd><p>The <a href=#html-parser>HTML parser</a> tokenizing one or more bytes,
+ and then processing any resulting tokens, is typically a
+ task.</dd>
+
+
+ <dt>Callbacks</dt>
+
+ <dd><p>Calling a callback asynchronously is a task.</dd>
+
+
+ <dt>Using a resource</dt>
+
+ <dd><p>When an algorithm <a href=#fetch title=fetch>fetches</a> a
+ resource, if the fetching occurs asynchronously then the processing
+ of the resource once some or all of the resource is available is a
+ task.</dd>
+
+
+ <dt>Reacting to DOM manipulation</dt>
+
+ <dd><p>Some elements have tasks that trigger in response to DOM
+ manipulation, e.g. when that element is <a href=#insert-an-element-into-a-document title="insert an
+ element into a document">inserted into the document</a>.</p>
+
+ </dl><p>When a user agent is to <dfn id=queue-a-task>queue a task</dfn>, it must add the
+ given task to one of the <a href=#task-queue title="task queue">task queues</a>
+ of the relevant <a href=#event-loop>event loop</a>. All the tasks from one
+ particular <dfn id=task-source>task source</dfn> (e.g. the callbacks generated by
+ timers, the events fired for mouse movements, the tasks queued for
+ the parser) must always be added to the same <a href=#task-queue>task
+ queue</a>, but tasks from different <a href=#task-source title="task
+ source">task sources</a> may be placed in different <a href=#task-queue title="task queue">task queues</a>.</p>
+
+ <p class=example>For example, a user agent could have one
+ <a href=#task-queue>task queue</a> for mouse and key events (the <a href=#user-interaction-task-source>user
+ interaction task source</a>), and another for everything
+ else. The user agent could then give keyboard and mouse events
+ preference over other tasks three quarters of the time, keeping the
+ interface responsive but not starving other task queues, and never
+ processing events from any one <a href=#task-source>task source</a> out of
+ order.</p>
+
+ <p>Each <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a task">queued</a> onto a <a href=#task-queue>task queue</a> of
+ an <a href=#event-loop>event loop</a> defined by this specification is
+ associated with a <code><a href=#document>Document</a></code>; if the task was queued in
+ the context of an element, then it is the element's
+ <code><a href=#document>Document</a></code>; if the task was queued in the context of a
+ <a href=#browsing-context>browsing context</a>, then it is the <a href=#browsing-context>browsing
+ context</a>'s <a href=#active-document>active document</a> at the time the task
+ was queued; if the task was queued by or for a <a href=#concept-script title=concept-script>script</a> then the document is the
+ <a href="#script's-document">script's document</a>.</p>
+
+ <p>A user agent may have one <dfn id=storage-mutex>storage mutex</dfn>. This mutex is
+ used to control access to shared state like cookies. At any one
+ point, the <a href=#storage-mutex>storage mutex</a> is either free, or owned by a
+ particular <a href=#event-loop>event loop</a> or instance of the <a href=#fetch title=fetch>fetching</a> algorithm.</p>
+
+ <p>If a user agent does not implement a <a href=#storage-mutex>storage mutex</a>,
+ it is exempt from implementing the requirements that require it to
+ acquire or release it.</p>
+
+ <p class=note>User agent implementors have to make a choice
+ between two evils. On the one hand, not implementing the storage
+ mutex means that there is a risk of data corruption: a site could,
+ for instance, try to read a cookie, increment its value, then write
+ it back out, using the new value of the cookie as a unique
+ identifier for the session; if the site does this twice in two
+ different browser windows at the same time, it might end up using
+ the same "unique" identifier for both sessions, with potentially
+ disastrous effects. On the other hand, implementing the storage
+ mutex has potentially serious performance implications: whenever a
+ site uses Web Storage or cookies, all other sites that try to use
+ Web Storage or cookies are blocked until the first site finishes.</p>
+
+ <p>Whenever a <a href=#concept-script title=concept-script>script</a> calls into
+ a <a href=#plugin>plugin</a>, and whenever a <a href=#plugin>plugin</a> calls into
+ a <a href=#concept-script title=concept-script>script</a>, the user agent must
+ release the <a href=#storage-mutex>storage mutex</a>.</p>
+
+
+ <h5 id=processing-model-2><span class=secno>7.1.4.2 </span>Processing model</h5>
+
+ <p>An <a href=#event-loop>event loop</a> must continually run through the
+ following steps for as long as it exists:</p>
+
+ <ol><li><p>Run the oldest <a href=#concept-task title=concept-task>task</a> on one
+ of the <a href=#event-loop>event loop</a>'s <a href=#task-queue title="task queue">task
+ queues</a>, ignoring tasks whose associated
+ <code><a href=#document>Document</a></code>s are not <a href=#fully-active>fully active</a>. The user
+ agent may pick any <a href=#task-queue>task queue</a>.</li>
+
+ <!-- warning! if you renumber these steps, make sure to update the
+ "spin the event loop" algorith below! -->
+
+ <li><p>If the <a href=#storage-mutex>storage mutex</a> is now owned by the
+ <a href=#event-loop>event loop</a>, release it so that it is once again
+ free.</li>
+
+ <li><p>Remove that task from its <a href=#task-queue>task queue</a>.</li>
+
+ <li><p><a href=#provide-a-stable-state>Provide a stable state</a>.</li>
+
+ <li><p>If necessary, update the rendering or user interface of any
+ <code><a href=#document>Document</a></code> or <a href=#browsing-context>browsing context</a> to reflect
+ the current state.</li>
+
+ <li><p>Return to the first step of the <a href=#event-loop>event
+ loop</a>.</li>
+
+ </ol><hr><p>When the user agent is to <dfn id=provide-a-stable-state>provide a stable state</dfn>, if
+ any asynchronously-running algorithms are <dfn id=await-a-stable-state title="await a stable
+ state">awaiting a stable state</dfn>, then the user agent must run
+ their <dfn id=synchronous-section>synchronous section</dfn> and then resume running their
+ asynchronous algorithm (if appropriate).</p>
+
+ <p class=note>A <a href=#synchronous-section>synchronous section</a> never mutates
+ the DOM, runs any script, or has any other side-effects.</p>
+
+ <p class=note>Steps in <a href=#synchronous-section title="synchronous
+ section">synchronous sections</a> are marked with &#8987;.</p>
+
+ <hr><p>When an algorithm says to <dfn id=spin-the-event-loop>spin the event loop</dfn> until
+ a condition <var title="">goal</var> is met, the user agent must run
+ the following steps:</p>
+
+ <ol><li><p>Let <var title="">task source</var> be the <a href=#task-source>task
+ source</a> of the currently running <a href=#concept-task title=concept-task>task</a>.</li>
+
+ <li>
+
+ <p>Stop the currently running <a href=#concept-task title=concept-task>task</a>, allowing the <a href=#event-loop>event
+ loop</a> to resume, but continue these steps
+ asynchronously.</p>
+
+ <p class=note>This causes the <a href=#event-loop>event loop</a> to move on
+ to the second step of its processing model (defined above).</p>
+
+ </li>
+
+ <li><p>Wait until the condition <var title="">goal</var> is
+ met.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to continue running these steps,
+ using the <a href=#task-source>task source</a> <var title="">task
+ source</var>. Wait until this task runs before continuing these
+ steps.</li>
+
+ <li><p>Return to the caller.</li>
+
+ </ol><hr><p>Some of the algorithms in this specification, for historical
+ reasons, require the user agent to <dfn id=pause>pause</dfn> while running a
+ <a href=#concept-task title=concept-task>task</a> until a condition <var title="">goal</var> is met. This means running the following
+ steps:</p>
+
+ <ol><li><p>If any asynchronously-running algorithms are <a href=#await-a-stable-state title="await a stable state">awaiting a stable state</a>, then
+ run their <a href=#synchronous-section>synchronous section</a> and then resume running
+ their asynchronous algorithm. (See the <a href=#event-loop>event loop</a>
+ processing model definition above for details.)</p>
+
+ <li><p>If necessary, update the rendering or user interface of any
+ <code><a href=#document>Document</a></code> or <a href=#browsing-context>browsing context</a> to reflect
+ the current state.</li>
+
+ <li><p>Wait until the condition <var title="">goal</var> is met.
+ While a user agent has a paused <a href=#concept-task title=concept-task>task</a>, the corresponding <a href=#event-loop>event
+ loop</a> must not run further <a href=#concept-task title=concept-task>tasks</a>, and any script in the currently
+ running <a href=#concept-task title=concept-task>task</a> must block. User
+ agents should remain responsive to user input while paused,
+ however, albeit in a reduced capacity since the <a href=#event-loop>event
+ loop</a> will not be doing anything.</li>
+
+ </ol><hr><p>When a user agent is to <dfn id=obtain-the-storage-mutex>obtain the storage mutex</dfn> as
+ part of running a <a href=#concept-task title=concept-task>task</a>, it must
+ run through the following steps:</p>
+
+ <ol><li><p>If the <a href=#storage-mutex>storage mutex</a> is already owned by this
+ <a href=#concept-task title=concept-task>task</a>'s <a href=#event-loop>event loop</a>,
+ then abort these steps.</li>
+
+ <li><p>Otherwise, <a href=#pause>pause</a> until the <a href=#storage-mutex>storage
+ mutex</a> can be taken by the <a href=#event-loop>event loop</a>.</li>
+
+ <li><p>Take ownership of the <a href=#storage-mutex>storage mutex</a>.</li>
+
+ </ol></div>
+
+
+ <div class=impl>
+
+ <h5 id=generic-task-sources><span class=secno>7.1.4.3 </span>Generic task sources</h5>
+
+ <p>The following <a href=#task-source title="task source">task sources</a> are
+ used by a number of mostly unrelated features in this and other
+ specifications.</p>
+
+ <dl><dt>The <dfn id=dom-manipulation-task-source>DOM manipulation task source</dfn></dt>
+
+ <dd>
+
+ <p>This <a href=#task-source>task source</a> is used for features that react
+ to DOM manipulations, such as things that happen asynchronously
+ when an element is <a href=#insert-an-element-into-a-document title="insert an element into a
+ document">inserted into the document</a>.</p>
+
+ </dd>
+
+ <dt>The <dfn id=user-interaction-task-source>user interaction task source</dfn></dt>
+
+ <dd>
+
+ <p>This <a href=#task-source>task source</a> is used for features that react
+ to user interaction, for example keyboard or mouse input.</p>
+
+ <p>Asynchronous events sent in response to user input (e.g. <code title=event-click><a href=#event-click>click</a></code> events) must be fired using
+ <a href=#concept-task title=concept-task>tasks</a> <a href=#queue-a-task title="queue a
+ task">queued</a> with the <a href=#user-interaction-task-source>user interaction task
+ source</a>. <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
+
+ </dd>
+
+ <dt>The <dfn id=networking-task-source>networking task source</dfn></dt>
+
+ <dd>
+
+ <p>This <a href=#task-source>task source</a> is used for features that trigger
+ in response to network activity.</p>
+
+ <!-- XHR should use this -->
+
+ </dd>
+
+ <dt>The <dfn id=history-traversal-task-source>history traversal task source</dfn></dt>
+
+ <dd>
+
+ <p>This <a href=#task-source>task source</a> is used to queue calls to <code title=dom-history-back><a href=#dom-history-back>history.back()</a></code> and similar
+ APIs.</p>
+
+ </dd>
+
+ </dl></div>
+
+
+
+ <div class=impl>
+
+ <!-- SCRIPT EXEC -->
+ <h4 id=javascript-protocol><span class=secno>7.1.5 </span><dfn title="javascript protocol">The <code title="">javascript:</code> URL scheme</dfn></h4>
+
+ <p>When a <a href=#url>URL</a> using the <code title="">javascript:</code> scheme is <dfn id=concept-js-deref title=concept-js-deref>dereferenced</dfn>, the user agent must run
+ the following steps:</p>
+
+ <ol><li><p>Let the script source be the string obtained using the
+ content retrieval operation defined for <code title="">javascript:</code> URLs. <a href=#refsJSURL>[JSURL]</a></li>
+
+ <li>
+
+ <p>Use the appropriate step from the following list:</p>
+
+ <dl><dt>If a <a href=#browsing-context>browsing context</a> is being <a href=#navigate title=navigate>navigated</a> to a <code>javascript:</code>
+ URL, and the <a href=#source-browsing-context>source browsing context</a> for that
+ navigation, if any, has <a href=#concept-bc-noscript title=concept-bc-noscript>scripting disabled</a></dt>
+
+ <dd>
+
+ <p>Let <var title="">result</var> be void.</p>
+
+ </dd>
+
+ <dt>If a <a href=#browsing-context>browsing context</a> is being <a href=#navigate title=navigate>navigated</a> to a <code>javascript:</code>
+ URL, and the <a href=#active-document>active document</a> of that browsing
+ context has the <a href=#same-origin>same origin</a> as the script given by
+ that URL</dt>
+
+ <dd>
+
+ <!-- http://www.hixie.ch/tests/adhoc/html/navigation/javascript-url/ -->
+
+ <p>Let <var title="">address</var> be the <a href="#the-document's-address" title="the
+ document's address">address</a> of the <a href=#active-document>active
+ document</a> of the <a href=#browsing-context>browsing context</a> being
+ navigated.</p>
+
+ <p>If <var title="">address</var> is <code><a href=#about:blank>about:blank</a></code>,
+ and the <a href=#browsing-context>browsing context</a> being navigated has a
+ <a href=#creator-browsing-context>creator browsing context</a>, then let <var title="">address</var> be the <a href="#the-document's-address" title="the document's
+ address">address</a> of the <a href=#creator-document>creator
+ <code>Document</code></a> instead.</p>
+
+ <p><a href=#create-a-script-from-a-node title="create a script from a node">Create a
+ script</a> from the <code><a href=#document>Document</a></code> node of the
+ <a href=#active-document>active document</a>, using the aforementioned script
+ source, and assuming the scripting language is JavaScript.</p>
+
+ <p>Let <var title="">result</var> be the return value of the
+ <i><a href=#initial-code-entry-point>initial code entry-point</a></i> of this <a href=#concept-script title=concept-script>script</a>. If an exception was
+ raised, let <var title="">result</var> be void instead. (The
+ result will be void also if <a href=#concept-bc-noscript title=concept-bc-noscript>scripting is disabled</a>.)</p>
+
+ <p>When it comes time to <a href="#set-the-document's-address">set the document's address</a>
+ in the <a href=#navigate title=navigate>navigation algorithm</a>, use
+ <var title="">address</var> as the <a href=#override-url>override
+ URL</a>.</p>
+
+ </dd>
+
+<!--(turns out only Firefox does this, and only for <img src=""> and a
+ few others, so it's commented out for now pending someone having
+ a convincing use case)
+
+ <dt>If the <code>Document</code> object of the element,
+ attribute, or style sheet from which the <code>javascript:</code>
+ URL was reached has an associated <span>browsing
+ context</span></dt>
+
+ <dd>
+
+ <p><span>Create an impotent script</span> using the
+ aforementioned script source, with the scripting language set to
+ JavaScript, and with the <code>Document</code>'s object's
+ <span>browsing context</span> as the browsing context.</p>
+
+ <p>Let <var title="">result</var> be the return value of the
+ <i>initial code entry-point</i> of this <span
+ title="concept-script">script</span>. If an exception was
+ raised, let <var title="">result</var> be void instead. (The
+ result will be void also if <span
+ title="concept-bc-noscript">scripting is disabled</span>.)</p>
+
+ </dd>
+-->
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>Let <var title="">result</var> be void.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li>
+
+ <p>If the result of executing the script is void (there is no
+ return value), then the URL must be treated in a manner equivalent
+ to an HTTP resource with an HTTP 204 No Content response.</p>
+
+ <p>Otherwise, the URL must be treated in a manner equivalent to an
+ HTTP resource with a 200 OK response whose <a href=#content-type title=Content-Type>Content-Type metadata</a> is
+ <code><a href=#text/html>text/html</a></code> and whose response body is the return value
+ converted to a string value.</p>
+
+ <p class=note>Certain contexts, in particular <code><a href=#the-img-element>img</a></code>
+ elements, ignore the <a href=#content-type title=Content-Type>Content-Type
+ metadata</a>.</p>
+
+ </li>
+
+ </ol><div class=example>
+
+ <p>So for example a <code title="">javascript:</code> URL for a
+ <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute of an
+ <code><a href=#the-img-element>img</a></code> element would be evaluated in the context of an
+ empty object as soon as the attribute is set; it would then be
+ sniffed to determine the image type and decoded as an image.</p>
+
+ <p>A <code title="">javascript:</code> URL in an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute of an <code><a href=#the-a-element>a</a></code>
+ element would only be evaluated when the link was <a href=#following-hyperlinks title="following hyperlinks">followed</a>.</p>
+
+ <p>The <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute of an
+ <code><a href=#the-iframe-element>iframe</a></code> element would be evaluated in the context of
+ the <code><a href=#the-iframe-element>iframe</a></code>'s own <a href=#browsing-context>browsing context</a>; once
+ evaluated, its return value (if it was not void) would replace that
+ <a href=#browsing-context>browsing context</a>'s document, thus changing the
+ variables visible in that <a href=#browsing-context>browsing context</a>.</p>
+
+ </div>
+
+ </div>
+
+
+
+ <h4 id=events><span class=secno>7.1.6 </span>Events</h4>
+
+ <div class=impl>
+
+ <h5 id=event-handler-attributes><span class=secno>7.1.6.1 </span>Event handlers</h5>
+
+ </div>
+
+ <!--test: <a href="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A...%3Cscript%3E%0Aw(a%3Ddocument.implementation.createDocument(null%2C%20null%2C%20null))%3B%0Aw(a.appendChild(a.createElementNS('http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml'%2C%20'html')))%3B%0Aw(b%3Da.firstChild.appendChild(a.createElementNS('http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml'%2C%20'body')))%3B%0Aw(b.test%20%3D%20w)%3B%0Aw(b.setAttribute('onclick'%2C%20'test(%22fire%3A%20%22%20%2B%20event)'))%3B%0Aw(b.onclick)%3B%0Aw(e%3Da.createEvent('Event'))%3B%0Aw(e.initEvent('click'%2C%20false%2C%20false))%3B%0Aw(b.dispatchEvent(e))%3B%0A%3C%2Fscript%3E">test</a>-->
+
+ <p>Many objects can have <dfn id=event-handlers>event handlers</dfn> specified. These
+ act as bubbling event listeners for the object on which they are
+ specified.</p>
+
+ <p>An <a href=#event-handlers title="event handlers">event handler</a> can either
+ have the value null or be set to a <code><a href=#function>Function</a></code>
+ object. <span class=impl>Initially, event handlers must be set to
+ null.</span></p>
+
+ <p>Event handlers are exposed in one or two ways.</p>
+
+ <p>The first way, common to all event handlers, is as an <a href=#event-handler-idl-attributes title="event handler IDL attributes">event handler IDL
+ attribute</a>.</p>
+
+ <p>The second way is as an <a href=#event-handler-content-attributes title="event handler content
+ attributes">event handler content attribute</a>. Event handlers
+ on <a href=#html-elements>HTML elements</a> and some of the event handlers on
+ <code><a href=#window>Window</a></code> objects are exposed in this way.</p>
+
+ <div class=impl>
+
+ <hr><p><dfn id=event-handler-idl-attributes>Event handler IDL attributes</dfn>, on setting, must set the
+ corresponding event handler to their new value, and on
+ getting, must return whatever the current value of the corresponding
+ event handler is (possibly null).</p>
+
+ <p>If an <a href=#event-handler-idl-attributes title="event handler IDL attributes">event handler
+ IDL attribute</a> exposes an <a href=#event-handlers title="event handlers">event
+ handler</a> of an object that doesn't exist, it must always
+ return null on getting and must do nothing on setting.</p>
+
+ <p class=note>This can happen in particular for <a href=#event-handler-idl-attributes title="event
+ handler IDL attributes">event handler IDL attribute</a> on
+ <code><a href=#the-body-element>body</a></code> elements that do not have corresponding
+ <code><a href=#window>Window</a></code> objects.</p>
+
+ <p class=note>Certain event handler IDL attributes have additional
+ requirements, in particular the <code title=handler-MessagePort-onmessage><a href=#handler-messageport-onmessage>onmessage</a></code> attribute of
+ <code><a href=#messageport>MessagePort</a></code> objects.</p>
+
+ <hr></div>
+
+ <p><dfn id=event-handler-content-attributes>Event handler content attributes</dfn>, when specified, must
+ contain valid JavaScript code which, when parsed, would match the
+ <code title="">FunctionBody</code> production after automatic
+ semicolon insertion. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ <div class=impl>
+
+ <!-- SCRIPT EXEC -->
+ <p>When an <a href=#event-handler-content-attributes title="event handler content attributes">event
+ handler content attribute</a> is set, if the element is owned by
+ a <code><a href=#document>Document</a></code> that is in a <a href=#browsing-context>browsing context</a>,
+ and <a href=#concept-bc-script title=concept-bc-script>scripting is enabled</a> for
+ that <a href=#browsing-context>browsing context</a>, the user agent must run the
+ following steps to create a <a href=#concept-script title=concept-script>script</a> after setting the content
+ attribute to its new value:</p>
+
+ <ol><li><p>Set the corresponding <a href=#event-handlers title="event handlers">event
+ handler</a> to null.</li>
+
+ <li><p>Set up a <a href=#script-execution-environment>script execution environment</a> for
+ JavaScript.</li>
+
+ <li><p>Let <var title="">body</var> be the <a href=#event-handler-content-attributes title="event
+ handler content attributes">event handler content
+ attribute</a>'s new value.</li>
+
+ <li>
+
+ <p>If <var title="">body</var> is not parsable as
+ <i>FunctionBody</i> or if parsing detects an <i>early error</i>
+ then abort these steps.</p>
+
+ <p class=note><i>FunctionBody</i> is defined in ECMAScript
+ edition 5 section 13 Function Definition. <i>Early error</i> is
+ defined in ECMAScript edition 5 section 16 Errors. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">body</var> begins with a Directive Prologue
+ that contains a Use Strict Directive then let <var title="">strict</var> be true, otherwise let <var title="">strict</var> be false.</p> <!-- we can't defer to 10.1.1
+ since we're not using a Function constructor but doing it
+ ourselves. -->
+
+ <p class=note>The terms "Directive Prologue" and "Use Strict
+ Directive" are defined in ECMAScript edition 5 section 14.1
+ Directive Prologues and the Use Strict Directive. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ </li>
+
+<!--
+currently this is unnecessary: http://www.w3.org/Bugs/Public/show_bug.cgi?id=11977#c4
+ <li>
+
+ <p>If <var title="">strict</var> is true, and anything in <var
+ title="">body</var> is a <code>SyntaxError</code> according to the
+ Strict Mode Restrictions, then abort these steps.</p>
+
+ <p class="note">The Strict Mode Restrictions are those listed in
+ ECMAScript edition 5 section 13.1 Strict Mode Restrictions. <a
+ href="#refsECMA262">[ECMA262]</a></p>
+
+ </li>
+-->
+
+ <li>
+
+ <p>Using the script execution environment created above, create a
+ function object (as defined in ECMAScript edition 5 section 13.2
+ Creating Function Objects), with:</p>
+
+ <dl><dt>Parameter list <var title="">FormalParameterList</var></dt>
+
+ <dd>
+
+ <dl class=switch><dt>If the attribute is the <code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code> attribute of the
+ <code><a href=#window>Window</a></code> object</dt>
+
+ <dd>Let the function have three arguments, named <code title="">event</code>, <code title="">source</code>, and <code title="">lineno</code>.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>Let the function have a single argument called <code title="">event</code>.</dd>
+
+ </dl></dd>
+
+ <dt>Function body <var title="">FunctionBody</var></dt>
+
+ <dd>The result of parsing <var title="">body</var> above.</dd>
+
+ <dt>Lexical Environment <var title="">Scope</var></dt>
+
+ <dd>
+
+ <ol><li>Let <var title="">Scope</var> be the result of
+ NewObjectEnvironment(the element's <code><a href=#document>Document</a></code>, the
+ <var title="">global environment</var>).</li>
+
+ <li>If the element has a <a href=#form-owner>form owner</a>, let <var title="">Scope</var> be the result of NewObjectEnvironment(the
+ element's <a href=#form-owner>form owner</a>, <var title="">Scope</var>).</li>
+
+ <li>Let <var title="">Scope</var> be the result of
+ NewObjectEnvironment(the element's object, <var title="">Scope</var>).</li>
+
+ </ol><p class=note>NewObjectEnvironment() is defined in ECMAScript
+ edition 5 section 10.2.2.3 NewObjectEnvironment (O, E). <a href=#refsECMA262>[ECMA262]</a></p>
+
+ </dd>
+
+ <dt>Boolean flag <var title="">Strict</var></dt>
+
+ <dd>The value of <var title="">strict</var>.</dd>
+
+ </dl><p>Let this new function be the only entry in the script's
+ <a href=#list-of-code-entry-points>list of code entry-points</a>.</p>
+
+ </li>
+
+ <li><p>Set up the <a href="#script's-global-object">script's global object</a>, the
+ <a href="#script's-browsing-context">script's browsing context</a>, the <a href="#script's-document">script's
+ document</a>, the <a href="#script's-url-character-encoding">script's URL character encoding</a>,
+ and the <a href="#script's-base-url">script's base URL</a> from <a href=#the-script-settings-determined-from-the-node>the script
+ settings determined from the node</a> on which the attribute is
+ being set.</li>
+
+ <li><p>Set the corresponding <a href=#event-handlers title="event handlers">event
+ handler</a> to the aforementioned function.</li>
+
+ </ol><p>When an event handler content attribute is removed, the user
+ agent must set the corresponding <a href=#event-handlers title="event handlers">event
+ handler</a> to null.</p>
+ <!--
+ http://software.hixie.ch/utilities/js/live-dom-viewer/saved/245 onload
+ http://software.hixie.ch/utilities/js/live-dom-viewer/saved/247 onclick
+ see http://www.w3.org/Bugs/Public/show_bug.cgi?id=7626#c5 for reasoning
+ -->
+
+ </div>
+
+ <p class=note>When an <a href=#event-handler-content-attributes title="event handler content
+ attributes">event handler content attribute</a> is set on an
+ element owned by a <code><a href=#document>Document</a></code> that is not in a
+ <a href=#browsing-context>browsing context</a>, the corresponding event handler is
+ not changed.</p>
+
+ <!-- v2: we should probably support HTML4's Content-Script-Type header here. -->
+
+ <div class=impl>
+
+ <hr><p>All <a href=#event-handlers>event handlers</a> on an object, whether an element
+ or some other object, and whether set to null or to a
+ <code><a href=#function>Function</a></code> object, must be registered as event listeners
+ on the object when it is created, as if the <code title=dom-EventTarget-addEventListener>addEventListener()</code>
+ method on the object's <code><a href=#eventtarget>EventTarget</a></code> interface had been
+ invoked, with the event type (<var title=dom-event-type>type</var>
+ argument) equal to the type corresponding to the event handler (the
+ <dfn id=event-handler-event-type>event handler event type</dfn>), the listener set to be a
+ target and bubbling phase listener (<var title=dom-event-useCapture>useCapture</var> argument set to
+ false), and the event listener itself (<var title=dom-event-listener>listener</var> argument) set to do
+ nothing while the event handler's value is not a
+ <code><a href=#function>Function</a></code> object, and set to invoke the <code title=dom-function-call><a href=#dom-function-call>call()</a></code> callback of the
+ <code><a href=#function>Function</a></code> object associated with the event handler
+ otherwise.</p>
+
+ </div>
+
+ <p class=note><a href=#event-handlers>Event handlers</a> <span class=impl>therefore</span> always run before event listeners
+ attached using <code title=dom-EventTarget-addEventListener>addEventListener()</code>.</p>
+
+ <div class=impl>
+
+ <p class=note>The <var title=dom-event-listener>listener</var>
+ argument is emphatically <em>not</em> the <a href=#event-handlers title="event
+ handlers">event handler</a> itself.</p>
+
+ <p class=note>The interfaces implemented by the event object do
+ not influence whether an <a href=#event-handlers title="event handlers">event
+ handler</a> is triggered or not.</p>
+
+ <p>When an <a href=#event-handlers title="event handlers">event handler</a>'s
+ <code><a href=#function>Function</a></code> object is invoked, its <code title=dom-function-call><a href=#dom-function-call>call()</a></code> callback must be invoked
+ with one argument, set to the <code><a href=#event>Event</a></code> object of the event
+ in question.</p>
+
+ <p>The handler's return value must then be processed as follows:</p>
+
+ <dl class=switch><dt>If the event type is <code class=event-mouseover>mouseover</code></dt>
+
+ <dd><p>If the return value is a boolean with the value true, then
+ the event must be canceled.</dd>
+
+ <dt>If the event object is a <code><a href=#beforeunloadevent>BeforeUnloadEvent</a></code> object</dt>
+
+ <dd><p>If the return value is a string, and the event object's
+ <code title=dom-BeforeUnloadEvent-returnValue><a href=#dom-beforeunloadevent-returnvalue>returnValue</a></code>
+ attribute's value is the empty string, then set the <code title=dom-BeforeUnloadEvent-returnValue><a href=#dom-beforeunloadevent-returnvalue>returnValue</a></code>
+ attribute's value to the return value.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd><p>If the return value is a boolean with the value false, then
+ the event must be canceled.</dd>
+
+ </dl></div>
+
+ <!-- IE actually uncancels the event if the function returns true -->
+
+ <hr><p>The <code><a href=#function>Function</a></code> interface represents a function in the
+ scripting language being used. It is represented in IDL as
+ follows:</p>
+
+ <pre class=idl>[Callback=FunctionOnly, NoInterfaceObject]
+interface <dfn id=function>Function</dfn> {
+ any <a href=#dom-function-call title=dom-function-call>call</a>(any... arguments);
+};</pre>
+
+ <p>The <dfn id=dom-function-call title=dom-function-call><code>call(...)</code></dfn>
+ method is the object's callback.</p>
+
+ <p class=note>In JavaScript, any <code title="">Function</code>
+ object implements this interface.</p>
+
+ <p>If the <code><a href=#function>Function</a></code> object is a JavaScript <code title="">Function</code>, then when it is invoked by the user agent,
+ the user agent must set the <var title="">thisArg</var> (as defined
+ by ECMAScript edition 5 section 10.4.3 Entering Function Code) to
+ the <a href=#event-handlers title="event handlers">event handler</a>'s object. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ <div class=example>
+
+ <p>For example, the following document fragment:</p>
+
+ <pre>&lt;body onload="alert(this)" onclick="alert(this)"&gt;</pre>
+
+ <p>...leads to an alert saying "<code title="">[object&nbsp;Window]</code>" when the document is loaded,
+ and an alert saying "<code title="">[object&nbsp;HTMLBodyElement]</code>" whenever the user
+ clicks something in the page.</p>
+
+ </div>
+
+ <p>The return value of the function affects whether the event is
+ canceled or not: <span class=impl>as described above,</span> if
+ the return value is false, the event is canceled (except for <code class=event-mouseover>mouseover</code> events, where the return
+ value has to be true to cancel the event). With <code title=event-beforeunload>beforeunload</code> events, the value is
+ instead used to determine the message to show the user.</p>
+
+
+ <h5 id=event-handlers-on-elements,-document-objects,-and-window-objects><span class=secno>7.1.6.2 </span>Event handlers on elements, <code><a href=#document>Document</a></code> objects, and <code><a href=#window>Window</a></code> objects</h5>
+
+ <p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) <span class=impl>that must be</span> supported
+ by all <a href=#html-elements>HTML elements</a>, as both content attributes and
+ IDL attributes, and on <code><a href=#document>Document</a></code> and <code><a href=#window>Window</a></code>
+ objects, as IDL attributes.</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-onabort title=handler-onabort><code>onabort</code></dfn> <td> <code title=event-abort>abort</code>
+ <tr><td><dfn id=handler-oncanplay title=handler-oncanplay><code>oncanplay</code></dfn> <td> <code title=event-media-canplay><a href=#event-media-canplay>canplay</a></code>
+ <tr><td><dfn id=handler-oncanplaythrough title=handler-oncanplaythrough><code>oncanplaythrough</code></dfn> <td> <code title=event-media-canplaythrough><a href=#event-media-canplaythrough>canplaythrough</a></code>
+ <tr><td><dfn id=handler-onchange title=handler-onchange><code>onchange</code></dfn> <td> <code title=event-change>change</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onclick title=handler-onclick><code>onclick</code></dfn> <td> <code title=event-click><a href=#event-click>click</a></code> <!-- widely used -->
+ <tr><td><dfn id=handler-oncontextmenu title=handler-oncontextmenu><code>oncontextmenu</code></dfn> <td> <code title=event-contextmenu>contextmenu</code> <!-- widely used -->
+ <tr><td><dfn id=handler-oncuechange title=handler-oncuechange><code>oncuechange</code></dfn> <td> <code title=event-cuechange>cuechange</code>
+ <tr><td><dfn id=handler-ondblclick title=handler-ondblclick><code>ondblclick</code></dfn> <td> <code title=event-dblclick>dblclick</code> <!-- widely used -->
+ <tr><td><dfn id=handler-ondrag title=handler-ondrag><code>ondrag</code></dfn> <td> <code title=event-drag><a href=#event-drag>drag</a></code>
+ <tr><td><dfn id=handler-ondragend title=handler-ondragend><code>ondragend</code></dfn> <td> <code title=event-dragend><a href=#event-dragend>dragend</a></code>
+ <tr><td><dfn id=handler-ondragenter title=handler-ondragenter><code>ondragenter</code></dfn> <td> <code title=event-dragenter><a href=#event-dragenter>dragenter</a></code>
+ <tr><td><dfn id=handler-ondragleave title=handler-ondragleave><code>ondragleave</code></dfn> <td> <code title=event-dragleave><a href=#event-dragleave>dragleave</a></code>
+ <tr><td><dfn id=handler-ondragover title=handler-ondragover><code>ondragover</code></dfn> <td> <code title=event-dragover><a href=#event-dragover>dragover</a></code>
+ <tr><td><dfn id=handler-ondragstart title=handler-ondragstart><code>ondragstart</code></dfn> <td> <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code> <!-- widely used -->
+ <tr><td><dfn id=handler-ondrop title=handler-ondrop><code>ondrop</code></dfn> <td> <code title=event-drop><a href=#event-drop>drop</a></code>
+ <tr><td><dfn id=handler-ondurationchange title=handler-ondurationchange><code>ondurationchange</code></dfn> <td> <code title=event-media-durationchange><a href=#event-media-durationchange>durationchange</a></code>
+ <tr><td><dfn id=handler-onemptied title=handler-onemptied><code>onemptied</code></dfn> <td> <code title=event-media-emptied><a href=#event-media-emptied>emptied</a></code>
+ <tr><td><dfn id=handler-onended title=handler-onended><code>onended</code></dfn> <td> <code title=event-media-ended><a href=#event-media-ended>ended</a></code>
+ <tr><td><dfn id=handler-oninput title=handler-oninput><code>oninput</code></dfn> <td> <code title=event-input>input</code>
+ <tr><td><dfn id=handler-oninvalid title=handler-oninvalid><code>oninvalid</code></dfn> <td> <code title=event-invalid>invalid</code>
+ <tr><td><dfn id=handler-onkeydown title=handler-onkeydown><code>onkeydown</code></dfn> <td> <code title=event-keydown>keydown</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onkeypress title=handler-onkeypress><code>onkeypress</code></dfn> <td> <code title=event-keypress>keypress</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onkeyup title=handler-onkeyup><code>onkeyup</code></dfn> <td> <code title=event-keyup>keyup</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onloadeddata title=handler-onloadeddata><code>onloadeddata</code></dfn> <td> <code title=event-media-loadeddata><a href=#event-media-loadeddata>loadeddata</a></code>
+ <tr><td><dfn id=handler-onloadedmetadata title=handler-onloadedmetadata><code>onloadedmetadata</code></dfn> <td> <code title=event-media-loadedmetadata><a href=#event-media-loadedmetadata>loadedmetadata</a></code>
+ <tr><td><dfn id=handler-onloadstart title=handler-onloadstart><code>onloadstart</code></dfn> <td> <code title=event-media-loadstart><a href=#event-media-loadstart>loadstart</a></code>
+ <tr><td><dfn id=handler-onmousedown title=handler-onmousedown><code>onmousedown</code></dfn> <td> <code title=event-mousedown>mousedown</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onmousemove title=handler-onmousemove><code>onmousemove</code></dfn> <td> <code title=event-mousemove>mousemove</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onmouseout title=handler-onmouseout><code>onmouseout</code></dfn> <td> <code title=event-mouseout>mouseout</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onmouseover title=handler-onmouseover><code>onmouseover</code></dfn> <td> <code title=event-mouseover>mouseover</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onmouseup title=handler-onmouseup><code>onmouseup</code></dfn> <td> <code title=event-mouseup>mouseup</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onmousewheel title=handler-onmousewheel><code>onmousewheel</code></dfn> <td> <code title=event-mousewheel>mousewheel</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onpause title=handler-onpause><code>onpause</code></dfn> <td> <code title=event-media-pause><a href=#event-media-pause>pause</a></code>
+ <tr><td><dfn id=handler-onplay title=handler-onplay><code>onplay</code></dfn> <td> <code title=event-media-play><a href=#event-media-play>play</a></code>
+ <tr><td><dfn id=handler-onplaying title=handler-onplaying><code>onplaying</code></dfn> <td> <code title=event-media-playing><a href=#event-media-playing>playing</a></code>
+ <tr><td><dfn id=handler-onprogress title=handler-onprogress><code>onprogress</code></dfn> <td> <code title=event-media-progress><a href=#event-media-progress>progress</a></code>
+ <tr><td><dfn id=handler-onratechange title=handler-onratechange><code>onratechange</code></dfn> <td> <code title=event-media-ratechange><a href=#event-media-ratechange>ratechange</a></code>
+ <tr><td><dfn id=handler-onreset title=handler-onreset><code>onreset</code></dfn> <td> <code title=event-reset>reset</code>
+ <tr><td><dfn id=handler-onseeked title=handler-onseeked><code>onseeked</code></dfn> <td> <code title=event-media-seeked><a href=#event-media-seeked>seeked</a></code>
+ <tr><td><dfn id=handler-onseeking title=handler-onseeking><code>onseeking</code></dfn> <td> <code title=event-media-seeking><a href=#event-media-seeking>seeking</a></code>
+ <tr><td><dfn id=handler-onselect title=handler-onselect><code>onselect</code></dfn> <td> <code title=event-select>select</code> <!-- widely used --> <!-- [CSSOM] -->
+ <tr><td><dfn id=handler-onshow title=handler-onshow><code>onshow</code></dfn> <td> <code title=event-show>show</code>
+ <tr><td><dfn id=handler-onstalled title=handler-onstalled><code>onstalled</code></dfn> <td> <code title=event-media-stalled><a href=#event-media-stalled>stalled</a></code>
+ <tr><td><dfn id=handler-onsubmit title=handler-onsubmit><code>onsubmit</code></dfn> <td> <code title=event-submit>submit</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onsuspend title=handler-onsuspend><code>onsuspend</code></dfn> <td> <code title=event-media-suspend><a href=#event-media-suspend>suspend</a></code>
+ <tr><td><dfn id=handler-ontimeupdate title=handler-ontimeupdate><code>ontimeupdate</code></dfn> <td> <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code>
+ <tr><td><dfn id=handler-onvolumechange title=handler-onvolumechange><code>onvolumechange</code></dfn> <td> <code title=event-media-volumechange><a href=#event-media-volumechange>volumechange</a></code>
+ <tr><td><dfn id=handler-onwaiting title=handler-onwaiting><code>onwaiting</code></dfn> <td> <code title=event-media-waiting><a href=#event-media-waiting>waiting</a></code>
+
+<!-- not supported, use dnd: -->
+<!--<tr><td><dfn title="handler-onbeforecopy"><code>onbeforecopy</code></dfn> <td> <code title="event-beforecopy">beforecopy</code>--> <!-- widely used -->
+<!--<tr><td><dfn title="handler-oncopy"><code>oncopy</code></dfn> <td> <code title="event-copy">copy</code>--> <!-- widely used -->
+<!--<tr><td><dfn title="handler-onpaste"><code>onpaste</code></dfn> <td> <code title="event-paste">paste</code>--> <!-- widely used -->
+<!-- not supported yet (v2?): -->
+<!--<tr><td><dfn title="handler-onselectstart"><code>onselectstart</code></dfn> <td> <code title="event-selectstart">selectstart</code>--> <!-- widely used -->
+ </table><hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) <span class=impl>that must be</span> supported
+ by all <a href=#html-elements>HTML elements</a> other than <code><a href=#the-body-element>body</a></code>, as
+ both content attributes and IDL attributes, and on
+ <code><a href=#document>Document</a></code> objects, as IDL attributes:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-onblur title=handler-onblur><code>onblur</code></dfn> <td> <code title=event-blur>blur</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onerror title=handler-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
+ <tr><td><dfn id=handler-onfocus title=handler-onfocus><code>onfocus</code></dfn> <td> <code title=event-focus>focus</code> <!-- widely used -->
+ <tr><td><dfn id=handler-onload title=handler-onload><code>onload</code></dfn> <td> <code title=event-load>load</code>
+ <tr><td><dfn id=handler-onscroll title=handler-onscroll><code>onscroll</code></dfn> <td> <code title=event-scroll>scroll</code>
+ </table><hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) <span class=impl>that must be</span> supported
+ by <code><a href=#window>Window</a></code> objects, as IDL attributes on the
+ <code><a href=#window>Window</a></code> object, and with corresponding content
+ attributes and IDL attributes exposed on the <code><a href=#the-body-element>body</a></code> and
+ <code><a href=#frameset>frameset</a></code> elements:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-window-onafterprint title=handler-window-onafterprint><code>onafterprint</code></dfn> <td> <code title=event-afterprint>afterprint</code>
+ <tr><td><dfn id=handler-window-onbeforeprint title=handler-window-onbeforeprint><code>onbeforeprint</code></dfn> <td> <code title=event-beforeprint>beforeprint</code>
+ <tr><td><dfn id=handler-window-onbeforeunload title=handler-window-onbeforeunload><code>onbeforeunload</code></dfn> <td> <code title=event-beforeunload>beforeunload</code>
+ <tr><td><dfn id=handler-window-onblur title=handler-window-onblur><code>onblur</code></dfn> <td> <code title=event-blur>blur</code>
+ <tr><td><dfn id=handler-window-onerror title=handler-window-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
+ <tr><td><dfn id=handler-window-onfocus title=handler-window-onfocus><code>onfocus</code></dfn> <td> <code title=event-focus>focus</code>
+ <tr><td><dfn id=handler-window-onhashchange title=handler-window-onhashchange><code>onhashchange</code></dfn> <td> <code title=event-hashchange><a href=#event-hashchange>hashchange</a></code> <!-- new -->
+ <tr><td><dfn id=handler-window-onload title=handler-window-onload><code>onload</code></dfn> <td> <code title=event-load>load</code> <!-- widely used -->
+ <tr><td><dfn id=handler-window-onmessage title=handler-window-onmessage><code>onmessage</code></dfn> <td> <code title=event-message><a href=#event-message>message</a></code> <!-- new for postMessage -->
+ <tr><td><dfn id=handler-window-onoffline title=handler-window-onoffline><code>onoffline</code></dfn> <td> <code title=event-offline><a href=#event-offline>offline</a></code> <!-- new -->
+ <tr><td><dfn id=handler-window-ononline title=handler-window-ononline><code>ononline</code></dfn> <td> <code title=event-online><a href=#event-online>online</a></code> <!-- new -->
+ <tr><td><dfn id=handler-window-onpagehide title=handler-window-onpagehide><code>onpagehide</code></dfn> <td> <code title=event-pagehide><a href=#event-pagehide>pagehide</a></code> <!-- new -->
+ <tr><td><dfn id=handler-window-onpageshow title=handler-window-onpageshow><code>onpageshow</code></dfn> <td> <code title=event-pageshow><a href=#event-pageshow>pageshow</a></code> <!-- new -->
+ <tr><td><dfn id=handler-window-onpopstate title=handler-window-onpopstate><code>onpopstate</code></dfn> <td> <code title=event-popstate><a href=#event-popstate>popstate</a></code> <!-- new -->
+ <tr><td><dfn id=handler-window-onresize title=handler-window-onresize><code>onresize</code></dfn> <td> <code title=event-resize>resize</code> <!-- widely used --> <!-- [CSSOM] -->
+ <tr><td><dfn id=handler-window-onscroll title=handler-window-onscroll><code>onscroll</code></dfn> <td> <code title=event-scroll>scroll</code>
+ <tr><td><dfn id=handler-window-onstorage title=handler-window-onstorage><code>onstorage</code></dfn> <td> <code title=event-storage><a href=#event-storage>storage</a></code> <!-- new -->
+ <tr><td><dfn id=handler-window-onunload title=handler-window-onunload><code>onunload</code></dfn> <td> <code title=event-unload>unload</code> <!-- widely used -->
+ </table><p class=note>The <code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code>
+ handler is also used for <a href=#runtime-script-errors>reporting script errors</a>.</p>
+
+ <hr><!-- this guy is only on HTMLDocument and not on HTMLElement because
+ otherwise HTMLScriptElement would have it and that causes
+ compatibility issues since IE fires readystatechange events on
+ <script>, not load events, and we can't fire both, and some sites
+ try to decide which to look for based on the presence of
+ script.onreadystatechange on HTMLScriptElement.
+ http://www.w3.org/Bugs/Public/show_bug.cgi?id=13965
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-September/033136.html
+ --><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) <span class=impl>that must be</span> supported
+ on <code><a href=#document>Document</a></code> objects as IDL attributes:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-onreadystatechange title=handler-onreadystatechange><code>onreadystatechange</code></dfn> <td> <code title=event-readystatechange><a href=#event-readystatechange>readystatechange</a></code>
+ </table><div class=impl>
+
+ <h5 id=event-firing><span class=secno>7.1.6.3 </span>Event firing</h5>
+
+ <p>Certain operations and methods are defined as firing events on
+ elements. For example, the <code title=dom-click><a href=#dom-click>click()</a></code>
+ method on the <code><a href=#htmlelement>HTMLElement</a></code> interface is defined as
+ firing a <code title=event-click><a href=#event-click>click</a></code> event on the
+ element. <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
+
+ <p><dfn id=fire-a-simple-event title="fire a simple event">Firing a simple event named <var title="">e</var></dfn> means that an event with the name <var title="">e</var>, which does not bubble (except where otherwise
+ stated) and is not cancelable (except where otherwise stated), and
+ which uses the <code><a href=#event>Event</a></code> interface, must be created and
+ dispatched at the given target.</p>
+
+ <p><dfn id=fire-a-synthetic-mouse-event title="fire a synthetic mouse event">Firing a synthetic
+ mouse event named <var title="">e</var></dfn> means that an event
+ with the name <var title="">e</var>, which does not bubble (except
+ where otherwise stated) and is not cancelable (except where
+ otherwise stated), and which uses the <code><a href=#mouseevent>MouseEvent</a></code>
+ interface, must be created and dispatched at the given target. The
+ event object must have its <code title="">screenX</code>, <code title="">screenY</code>, <code title="">clientX</code>, <code title="">clientY</code>, and <code title="">button</code> attributes
+ initialized to 0, its <code title="">ctrlKey</code>, <code title="">shiftKey</code>, <code title="">altKey</code>, and <code title="">metaKey</code> attributes initialized according to the
+ current state of the key input device, if any (false for any keys
+ that are not available), its <code title="">detail</code> attribute
+ initialized to 1, and its <code title="">relatedTarget</code>
+ attribute initialized to null. The <code title="">getModifierState()</code> method on the object must return
+ values appropriately describing the state of the key input device at
+ the time the event is created.</p>
+
+ <p><dfn id=fire-a-click-event title="fire a click event">Firing a <code title=event-click>click</code> event</dfn> means <a href=#fire-a-synthetic-mouse-event title="fire
+ a synthetic mouse event">firing a synthetic mouse event named <code title=event-click>click</code></a>, which bubbles and is
+ cancelable.</p>
+
+ <p>The default action of these events is to do nothing except where
+ otherwise stated.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h5 id=events-and-the-window-object><span class=secno>7.1.6.4 </span>Events and the <code><a href=#window>Window</a></code> object</h5>
+
+ <p>When an event is dispatched at a DOM node in a
+ <code><a href=#document>Document</a></code> in a <a href=#browsing-context>browsing context</a>, if the
+ event is not a <code title=event-load>load</code> event, the user
+ agent must act as if, for the purposes of <a href=#concept-event-dispatch title=concept-event-dispatch>event dispatching</a>, the
+ <code><a href=#window>Window</a></code> object is the parent of the
+ <code><a href=#document>Document</a></code> object. <a href=#refsDOMCORE>[DOMCORE]</a></p>
+
+ </div>
+
+
+ <h3 id=atob><span class=secno>7.2 </span>Base64 utility methods</h3>
+
+ <p>The <code title=dom-windowbase64-atob><a href=#dom-windowbase64-atob>atob()</a></code> and <code title=dom-windowbase64-btoa><a href=#dom-windowbase64-btoa>btoa()</a></code> methods allow authors to
+ transform content to and from the base64 encoding.</p>
+
+ <!-- v2: actual binary support -->
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=windowbase64>WindowBase64</dfn> {
+ DOMString <a href=#dom-windowbase64-btoa title=dom-windowbase64-btoa>btoa</a>(DOMString btoa);
+ DOMString <a href=#dom-windowbase64-atob title=dom-windowbase64-atob>atob</a>(DOMString atob);
+};
+<a href=#window>Window</a> implements <a href=#windowbase64>WindowBase64</a>;</pre>
+
+ <p class=note>In these APIs, for mnemonic purposes, the "b" can be
+ considered to stand for "binary", and the "a" for "ASCII". In
+ practice, though, for primarily historical reasons, both the input
+ and output of these functions are Unicode strings.</p>
+
+ <dl class=domintro><dt><var title="">result</var> = <var title="">window</var> . <code title=dom-windowbase64-btoa><a href=#dom-windowbase64-btoa>btoa</a></code>( <var title="">data</var> )</dt>
+
+ <dd>
+
+ <p>Takes the input data, in the form of a Unicode string
+ containing only characters in the range U+0000 to U+00FF, each
+ representing a binary byte with values 0x00 to 0xFF respectively,
+ and converts it to its base64 representation, which it returns.</p>
+
+ <p>Throws an <code><a href=#invalidcharactererror>InvalidCharacterError</a></code> exception if the
+ input string contains any out-of-range characters.</p>
+
+ </dd>
+
+ <dt><var title="">result</var> = <var title="">window</var> . <code title=dom-windowbase64-atob><a href=#dom-windowbase64-atob>atob</a></code>( <var title="">data</var> )</dt>
+
+ <dd>
+
+ <p>Takes the input data, in the form of a Unicode string
+ containing base64-encoded binary data, decodes it, and returns a
+ string consisting of characters in the range U+0000 to U+00FF,
+ each representing a binary byte with values 0x00 to 0xFF
+ respectively, corresponding to that binary data.</p>
+
+ <p>Throws an <code><a href=#invalidcharactererror>InvalidCharacterError</a></code> exception if the
+ input string is not valid base64 data.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p class=note>The <code><a href=#windowbase64>WindowBase64</a></code> interface adds to the
+ <code><a href=#window>Window</a></code> interface and the <code><a href=#workerutils>WorkerUtils</a></code>
+ interface (part of Web Workers).</p>
+
+ <p>The <dfn id=dom-windowbase64-btoa title=dom-windowbase64-btoa><code>btoa()</code></dfn>
+ method must throw an <code><a href=#invalidcharactererror>InvalidCharacterError</a></code> exception if
+ the method's first argument contains any character whose code point
+ is greater than U+00FF. Otherwise, the user agent must convert that
+ argument to a sequence of octets whose <var title="">n</var>th octet
+ is the eight-bit representation of the code point of the <var title="">n</var>th character of the argument, and then must apply
+ the base64 algorithm to that sequence of octets, and return the
+ result. <a href=#refsRFC4648>[RFC4648]</a><!--base64--></p>
+ <!-- Aryeh says: This seems to be what all browsers do as of January
+ 2011 (except IE, which doesn't support these functions at all). -->
+
+
+ <p>The <dfn id=dom-windowbase64-atob title=dom-windowbase64-atob><code>atob()</code></dfn>
+ method must run the following steps to parse the string passed in
+ the method's first argument:</p>
+
+ <ol><!-- Aryeh says: Copies Firefox behavior as of January 2011
+ (4.0b8). WebKit is somewhat laxer, and Opera throws no exceptions
+ at all. gsnedders reports Opera's behavior causes site-compat
+ problems, and I figure most sites depend on Firefox if on anything,
+ so go with that. --><li><p>Let <var title="">input</var> be the string being
+ parsed.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p>If the length of <var title="">input</var> divides by 4
+ leaving no remainder, then: if <var title="">input</var> ends with
+ one or two U+003D EQUALS SIGN (=) characters, remove them from <var title="">input</var>.</li>
+
+ <li><p>If the length of <var title="">input</var> divides by 4
+ leaving a remainder of 1, throw an
+ <code><a href=#invalidcharactererror>InvalidCharacterError</a></code> exception and abort these
+ steps.</p>
+
+ <li>
+
+ <p>If <var title="">input</var> contains a character that is not
+ in the following list of characters and character ranges, throw an
+ <code><a href=#invalidcharactererror>InvalidCharacterError</a></code> exception and abort these
+ steps:</p>
+
+ <ul class=brief><li>U+002B PLUS SIGN (+)
+ <li>U+002F SOLIDUS (/)
+ <li>U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
+ <li>U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z
+ <li>U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z
+ </ul></li>
+
+ <li><p>Let <var title="">output</var> be a string, initially
+ empty.</li>
+
+ <li><p>Let <var title="">buffer</var> be a buffer that can have
+ bits appended to it, initially empty.</li>
+
+ <li>
+
+ <p>While <var title="">position</var> does not point past the end
+ of <var title="">input</var>, run these substeps:</p>
+
+ <ol><li>
+
+ <p>Find the character pointed to by <var title="">position</var>
+ in the first column of the following table. Let <var title="">n</var> be the number given in the second cell of the
+ same row.</p>
+
+ <div id=base64-table>
+ <table><thead><tr><th>Character
+ <th>Number
+ <tbody><tr><td>A<td>0
+ <tr><td>B<td>1
+ <tr><td>C<td>2
+ <tr><td>D<td>3
+ <tr><td>E<td>4
+ <tr><td>F<td>5
+ <tr><td>G<td>6
+ <tr><td>H<td>7
+ <tr><td>I<td>8
+ <tr><td>J<td>9
+ <tr><td>K<td>10
+ <tr><td>L<td>11
+ <tr><td>M<td>12
+ <tr><td>N<td>13
+ <tr><td>O<td>14
+ <tr><td>P<td>15
+ <tr><td>Q<td>16
+ <tr><td>R<td>17
+ <tr><td>S<td>18
+ <tr><td>T<td>19
+ <tr><td>U<td>20
+ <tr><td>V<td>21
+ <tr><td>W<td>22
+ <tr><td>X<td>23
+ <tr><td>Y<td>24
+ <tr><td>Z<td>25
+ <tr><td>a<td>26
+ <tr><td>b<td>27
+ <tr><td>c<td>28
+ <tr><td>d<td>29
+ <tr><td>e<td>30
+ <tr><td>f<td>31
+ <tr><td>g<td>32
+ <tr><td>h<td>33
+ <tr><td>i<td>34
+ <tr><td>j<td>35
+ <tr><td>k<td>36
+ <tr><td>l<td>37
+ <tr><td>m<td>38
+ <tr><td>n<td>39
+ <tr><td>o<td>40
+ <tr><td>p<td>41
+ <tr><td>q<td>42
+ <tr><td>r<td>43
+ <tr><td>s<td>44
+ <tr><td>t<td>45
+ <tr><td>u<td>46
+ <tr><td>v<td>47
+ <tr><td>w<td>48
+ <tr><td>x<td>49
+ <tr><td>y<td>50
+ <tr><td>z<td>51
+ <tr><td>0<td>52
+ <tr><td>1<td>53
+ <tr><td>2<td>54
+ <tr><td>3<td>55
+ <tr><td>4<td>56
+ <tr><td>5<td>57
+ <tr><td>6<td>58
+ <tr><td>7<td>59
+ <tr><td>8<td>60
+ <tr><td>9<td>61
+ <tr><td>+<td>62
+ <tr><td>/<td>63
+ </table></div>
+
+ </li>
+
+ <li><p>Append to <var title="">buffer</var> the six bits
+ corresponding to <var title="">number</var>, most significant bit
+ first.</li>
+
+ <li><p>If <var title="">buffer</var> has accumulated 24 bits,
+ interpret them as three 8-bit big-endian numbers. Append the
+ three characters with code points equal to those numbers to <var title="">output</var>, in the same order, and then empty <var title="">buffer</var>.</li>
+
+ <li><p>Advance <var title="">position</var> by one
+ character.</li>
+
+ </ol></li>
+
+ <li>
+
+ <p>If <var title="">buffer</var> is not empty, it contains either
+ 12 or 18 bits. If it contains 12 bits, discard the last four and
+ interpret the remaining eight as an 8-bit big-endian number. If it
+ contains 18 bits, discard the last two and interpret the remaining
+ 16 as two 8-bit big-endian numbers. Append the one or two
+ characters with code points equal to those one or two numbers to
+ <var title="">output</var>, in the same order.</p>
+
+ <p class=note>The discarded bits mean that, for instance, <code title="">atob("YQ")</code> and <code title="">atob("YR")</code>
+ both return "<code title="">a</code>".</p>
+
+ </li>
+
+ <li><p>Return <var title="">output</var>.</li>
+
+ </ol><!-- Note: this function is defined explicitly here because RFC4648
+ does not specify how to handle erroneous input, and no preexisting
+ browser implementation simply throws an exception on all erroneous
+ input. --></div>
+
+ <p class=note>Some base64 encoders add newlines or other
+ whitespace to their output. The <code title=dom-windowbase64-atob><a href=#dom-windowbase64-atob>atob()</a></code> method throws an
+ exception if its input contains characters other than those
+ described by the regular expression bracket expression <code title="">[+/=0-9A-Za-z]</code>, so other characters need to be
+ removed before <code title=dom-windowbase64-atob><a href=#dom-windowbase64-atob>atob()</a></code> is
+ used for decoding.</p>
+
+
+
+ <h3 id=timers><span class=secno>7.3 </span>Timers</h3>
+
+ <p>The <code title=dom-windowtimers-setTimeout><a href=#dom-windowtimers-settimeout>setTimeout()</a></code>
+ and <code title=dom-windowtimers-setInterval><a href=#dom-windowtimers-setinterval>setInterval()</a></code>
+ methods allow authors to schedule timer-based callbacks.</p>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=windowtimers>WindowTimers</dfn> {
+ long <a href=#dom-windowtimers-settimeout title=dom-windowtimers-setTimeout>setTimeout</a>(Function handler, optional float timeout, any... args);
+ long <a href=#dom-windowtimers-settimeout title=dom-windowtimers-setTimeout>setTimeout</a>([AllowAny] DOMString handler, optional float timeout, any... args);
+ void <a href=#dom-windowtimers-cleartimeout title=dom-windowtimers-clearTimeout>clearTimeout</a>(long handle);
+ long <a href=#dom-windowtimers-setinterval title=dom-windowtimers-setInterval>setInterval</a>(Function handler, optional float timeout, any... args);
+ long <a href=#dom-windowtimers-setinterval title=dom-windowtimers-setInterval>setInterval</a>([AllowAny] DOMString handler, optional float timeout, any... args);
+ void <a href=#dom-windowtimers-clearinterval title=dom-windowtimers-clearInterval>clearInterval</a>(long handle);
+};
+<a href=#window>Window</a> implements <a href=#windowtimers>WindowTimers</a>;</pre>
+
+ <dl class=domintro><dt><var title="">handle</var> = <var title="">window</var> . <code title=dom-windowtimers-setTimeout><a href=#dom-windowtimers-settimeout>setTimeout</a></code>( <var title="">handler</var> [, <var title="">timeout</var> [, <var title="">arguments</var>... ] ] )</dt>
+
+ <dd>
+
+ <p>Schedules a timeout to run <var title="">handler</var> after
+ <var title="">timeout</var> milliseconds. Any <var title="">arguments</var> are passed straight through to the <var title="">handler</var>.</p>
+
+ </dd>
+
+ <dt><var title="">handle</var> = <var title="">window</var> . <code title=dom-windowtimers-setTimeout><a href=#dom-windowtimers-settimeout>setTimeout</a></code>( <var title="">code</var> [, <var title="">timeout</var> ] )</dt>
+
+ <dd>
+
+ <p>Schedules a timeout to compile and run <var title="">code</var>
+ after <var title="">timeout</var> milliseconds.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-windowtimers-clearTimeout><a href=#dom-windowtimers-cleartimeout>clearTimeout</a></code>( <var title="">handle</var> )</dt>
+
+ <dd>
+
+ <p>Cancels the timeout set with <code title=dom-windowtimers-setTimeout><a href=#dom-windowtimers-settimeout>setTimeout()</a></code> identified by <var title="">handle</var>.</p>
+
+ </dd>
+
+ <dt><var title="">handle</var> = <var title="">window</var> . <code title=dom-windowtimers-setInterval><a href=#dom-windowtimers-setinterval>setInterval</a></code>( <var title="">handler</var> [, <var title="">timeout</var> [, <var title="">arguments</var>... ] ] )</dt>
+
+ <dd>
+
+ <p>Schedules a timeout to run <var title="">handler</var> every
+ <var title="">timeout</var> milliseconds. Any <var title="">arguments</var> are passed straight through to the <var title="">handler</var>.</p>
+
+ </dd>
+
+ <dt><var title="">handle</var> = <var title="">window</var> . <code title=dom-windowtimers-setInterval><a href=#dom-windowtimers-setinterval>setInterval</a></code>( <var title="">code</var> [, <var title="">timeout</var> ] )</dt>
+
+ <dd>
+
+ <p>Schedules a timeout to compile and run <var title="">code</var>
+ every <var title="">timeout</var> milliseconds.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-windowtimers-clearInterval><a href=#dom-windowtimers-clearinterval>clearInterval</a></code>( <var title="">handle</var> )</dt>
+
+ <dd>
+
+ <p>Cancels the timeout set with <code title=dom-windowtimers-setInterval><a href=#dom-windowtimers-setinterval>setInterval()</a></code> identified by <var title="">handle</var>.</p>
+
+ </dd>
+
+ </dl><p class=note>This API does not guarantee that timers will run
+ exactly on schedule. Delays due to CPU load, other tasks, etc, are
+ to be expected.</p>
+
+ <div class=impl>
+
+ <p class=note>The <code><a href=#windowtimers>WindowTimers</a></code> interface adds to the
+ <code><a href=#window>Window</a></code> interface and the <code><a href=#workerutils>WorkerUtils</a></code>
+ interface (part of Web Workers).
+ </p>
+
+ <p>Each object that implements the <code><a href=#windowtimers>WindowTimers</a></code>
+ interface has a <dfn id=list-of-active-timeouts>list of active timeouts</dfn> and a <dfn id=list-of-active-intervals>list
+ of active intervals</dfn>. Each entry in these lists is identified
+ by a number, which must be unique within its list for the lifetime
+ of the object that implements the <code><a href=#windowtimers>WindowTimers</a></code>
+ interface.</p>
+
+ <hr><p>The <dfn id=dom-windowtimers-settimeout title=dom-windowtimers-setTimeout><code>setTimeout()</code></dfn>
+ method must run the following steps:
+
+ <ol><li><p>Let <var title="">handle</var> be a user-agent-defined integer
+ that is greater than zero that will identify the timeout to be set
+ by this call.</li>
+
+ <li><p>Add an entry to the <a href=#list-of-active-timeouts>list of active timeouts</a> for
+ <var title="">handle</var>.</li>
+
+ <li><p><a href=#get-the-timed-task>Get the timed task</a> <var title="">handle</var> in
+ the <a href=#list-of-active-timeouts>list of active timeouts</a>, and let <var title="">task</var> be the result.</li>
+
+ <li><p><a href=#get-the-timeout>Get the timeout</a>, and let <var title="">timeout</var> be the result.</li>
+
+ <li><p>If the currently running <a href=#concept-task title=concept-task>task</a> is a task that was created by the
+ <code title=dom-windowtimers-setTimeout><a href=#dom-windowtimers-settimeout>setTimeout()</a></code>
+ method, and <var title="">timeout</var> is less than 4, then
+ increase <var title="">timeout</var> to 4.</li>
+
+ <li><p>Return <var title="">handle</var>, and then continue running
+ this algorithm asynchronously.</li>
+
+ <li>
+
+ <p>If the <a href=#method-context>method context</a> is a <code><a href=#window>Window</a></code>
+ object, wait until the <code><a href=#document>Document</a></code> associated with the
+ <a href=#method-context>method context</a> has been <a href=#fully-active>fully active</a> for
+ a further <var title="">timeout</var> milliseconds (not
+ necessarily consecutively).</p>
+
+ <p>Otherwise, if the <a href=#method-context>method context</a> is a
+ <code><a href=#workerutils>WorkerUtils</a></code> object, wait until <var title="">timeout</var> milliseconds have passed with the worker
+ not suspended (not necessarily consecutively).</p>
+
+ <p>Otherwise, act as described in the specification that defines
+ that the <code><a href=#windowtimers>WindowTimers</a></code> interface is implemented by
+ some other object.</p>
+
+ </li>
+
+ <li>
+
+ <p>Wait until any invocations of this algorithm started before
+ this one whose <var title="">timeout</var> is equal to or less
+ than this one's have completed.</p>
+
+ <p class=note>Argument conversion as defined by WebIDL (for
+ example, invoking <code title="">toString()</code> methods on
+ objects passed as the first argument) happens in the algorithms
+ defined in WebIDL, before this algorithm is invoked.</p>
+
+ <div class=example>
+
+ <p>So for example, the following rather silly code will result in
+ the log containing "<code title="">ONE&nbsp;TWO&nbsp;</code>":</p>
+
+ <pre>var log = '';
+function logger(s) { log += s + ' '; }
+
+setTimeout({ toString: function () {
+ setTimeout("logger('ONE')", 100);
+ return "logger('TWO')";
+} }, 100);</pre>
+
+ </div>
+
+ </li>
+
+ <li>
+
+ <p>Optionally, wait a further user-agent defined length of
+ time.</p>
+
+ <p class=note>This is intended to allow user agents to pad
+ timeouts as needed to optimise the power usage of the device. For
+ example, some processors have a low-power mode where the
+ granularity of timers is reduced; on such platforms, user agents
+ can slow timers down to fit this schedule instead of requiring the
+ processor to use the more accurate mode with its associated higher
+ power usage.</p>
+
+ </li>
+
+ <li><p><a href=#queue-a-task title="queue a task">Queue</a> the <var title="">task</var> <a href=#concept-task title=concept-task>task</a>.</li>
+
+ </ol><p>The <dfn id=dom-windowtimers-cleartimeout title=dom-windowtimers-clearTimeout><code>clearTimeout()</code></dfn>
+ method must clear the entry identified as <var title="">handle</var>
+ from the <a href=#list-of-active-timeouts>list of active timeouts</a> of the
+ <code><a href=#windowtimers>WindowTimers</a></code> object on which the method was invoked,
+ where <var title="">handle</var> is the argument passed to the
+ method, if any. (If <var title="">handle</var> does not identify an
+ entry in the <a href=#list-of-active-timeouts>list of active timeouts</a> of the
+ <code><a href=#windowtimers>WindowTimers</a></code> object on which the method was invoked,
+ the method does nothing.)</p>
+
+ <hr><p>The <dfn id=dom-windowtimers-setinterval title=dom-windowtimers-setInterval><code>setInterval()</code></dfn>
+ method must run the following steps:
+
+ <ol><li><p>Let <var title="">handle</var> be a user-agent-defined integer
+ that is greater than zero that will identify the interval to be set
+ by this call.</li>
+
+ <li><p>Add an entry to the <a href=#list-of-active-intervals>list of active intervals</a> for
+ <var title="">handle</var>.</li>
+
+ <li><p><a href=#get-the-timed-task>Get the timed task</a> <var title="">handle</var> in
+ the <a href=#list-of-active-intervals>list of active intervals</a>, and let <var title="">task</var> be the result.</li>
+
+ <li><p><a href=#get-the-timeout>Get the timeout</a>, and let <var title="">timeout</var> be the result.</li>
+
+ <li><p>If <var title="">timeout</var> is less than 4, then
+ increase <var title="">timeout</var> to 4.</li> <!-- (but see
+ note below about IE) -->
+
+ <li><p>Return <var title="">handle</var>, and then continue running
+ this algorithm asynchronously.</li>
+
+ <!-- Note: IE doesn't actually run intervals with duration zero, it
+ aborts roughly here in the algorithm for them. -->
+
+ <li>
+
+ <p><i title="">Wait</i>: If the <a href=#method-context>method context</a> is a
+ <code><a href=#window>Window</a></code> object, wait until the <code><a href=#document>Document</a></code>
+ associated with the <a href=#method-context>method context</a> has been <a href=#fully-active>fully
+ active</a> for a further <var title="">interval</var>
+ milliseconds (not necessarily consecutively).</p>
+
+ <p>Otherwise, if the <a href=#method-context>method context</a> is a
+ <code><a href=#workerutils>WorkerUtils</a></code> object, wait until <var title="">interval</var> milliseconds have passed with the worker
+ not suspended (not necessarily consecutively).</p>
+
+ <p>Otherwise, act as described in the specification that defines
+ that the <code><a href=#windowtimers>WindowTimers</a></code> interface is implemented by
+ some other object.</p>
+
+ </li>
+
+ <li>
+
+ <p>Optionally, wait a further user-agent defined length of
+ time.</p>
+
+ <p class=note>This is intended to allow user agents to pad
+ timeouts as needed to optimise the power usage of the device. For
+ example, some processors have a low-power mode where the
+ granularity of timers is reduced; on such platforms, user agents
+ can slow timers down to fit this schedule instead of requiring the
+ processor to use the more accurate mode with its associated higher
+ power usage.</p>
+
+ </li>
+
+ <li><p><a href=#queue-a-task title="queue a task">Queue</a> the <var title="">task</var> <a href=#concept-task title=concept-task>task</a>.</li>
+
+ <li><p>Return to the step labeled <i>wait</i>.</li>
+
+ </ol><p>The <dfn id=dom-windowtimers-clearinterval title=dom-windowtimers-clearInterval><code>clearInterval()</code></dfn>
+ method must clear the entry identified as <var title="">handle</var>
+ from the <a href=#list-of-active-intervals>list of active intervals</a> of the
+ <code><a href=#windowtimers>WindowTimers</a></code> object on which the method was invoked,
+ where <var title="">handle</var> is the argument passed to the
+ method, if any. (If <var title="">handle</var> does not identify an
+ entry in the <a href=#list-of-active-intervals>list of active intervals</a> of the
+ <code><a href=#windowtimers>WindowTimers</a></code> object on which the method was invoked,
+ the method does nothing.)</p>
+
+ <hr><p>The <dfn id=method-context>method context</dfn>, when referenced by the algorithms
+ in this section, is the object on which the method for which the
+ algorithm is running is implemented (a <code><a href=#window>Window</a></code> or
+ <code><a href=#workerutils>WorkerUtils</a></code> object).</p>
+
+ <p>When the above methods are invoked and try to <dfn id=get-the-timed-task>get the timed
+ task</dfn> <var title="">handle</var> in list <var title="">list</var>,
+ they must run the following steps:</p>
+
+ <ol><li>
+
+ <p>If the first argument to the invoked method is a
+ <code><a href=#function>Function</a></code>, then return a <a href=#concept-task title=concept-task>task</a> that checks if the entry for <var title="">handle</var> in <var title="">list</var> has been
+ cleared, and if it has not, calls the <code><a href=#function>Function</a></code> with
+ as its arguments the third and subsequent arguments to the invoked
+ method (if any) and with an undefined <var title="">thisArg</var>,
+ and abort these steps. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ <p class=note>Setting <var title="">thisArg</var> to undefined
+ means that the function code will be executed with the <code title="">this</code> keyword bound to the <code><a href=#windowproxy>WindowProxy</a></code>
+ or the <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object, as if the code was
+ running in the global scope.</p>
+
+ <p>Otherwise, continue with the remaining steps.</p>
+
+ </li>
+
+ <li><p>Let <var title="">script source</var> be the first argument
+ to the method.</li>
+
+ <li><p>Let <var title="">script language</var> be
+ JavaScript.</li>
+
+ <li>
+
+ <p>If the <a href=#method-context>method context</a> is a <code><a href=#window>Window</a></code>
+ object, let <var title="">global object</var> be the <a href=#method-context>method
+ context</a>, let <var title="">browsing context</var> be the
+ <a href=#browsing-context>browsing context</a> with which <var title="">global
+ object</var> is associated, let <var title="">character
+ encoding</var> be the <a href="#document's-character-encoding" title="document's character
+ encoding">character encoding</a> of the <code><a href=#document>Document</a></code>
+ associated with <var title="">global object</var> (<a href=#sce-not-copy>this is a reference, not a copy</a>), and let
+ <var title="">base URL</var> be the <a href=#document-base-url title="document base
+ URL">base URL</a> of the <code><a href=#document>Document</a></code> associated with
+ <var title="">global object</var> (<a href=#sbu-not-copy>this is
+ a reference, not a copy</a>).</p>
+
+ <p>Otherwise, if the <a href=#method-context>method context</a> is a
+ <code><a href=#workerutils>WorkerUtils</a></code> object, let <var title="">global
+ object</var>, <var title="">browsing context</var>, <var title="">document</var>, <var title="">character encoding</var>,
+ and <var title="">base URL</var> be the <a href="#script's-global-object">script's global
+ object</a>, <a href="#script's-browsing-context">script's browsing context</a>,
+ <a href="#script's-document">script's document</a>, <a href="#script's-url-character-encoding">script's URL character
+ encoding</a>, and <a href="#script's-base-url">script's base URL</a> (respectively)
+ of the <a href=#concept-script title=concept-script>script</a> that the
+ <a href=#run-a-worker>run a worker</a> algorithm created when it created the
+ <a href=#method-context>method context</a>.</p>
+
+ <p>Otherwise, act as described in the specification that defines
+ that the <code><a href=#windowtimers>WindowTimers</a></code> interface is implemented by
+ some other object.</p>
+
+ </li>
+
+ <li><p>Return a <a href=#concept-task title=concept-task>task</a> that checks
+ if the entry for <var title="">handle</var> in <var title="">list</var> has been cleared, and if it has not, <a href=#create-a-script title="create a script">creates a script</a> using <var title="">script source</var> as the script source, <var title="">scripting language</var> as the scripting language, <var title="">global object</var> as the global object, <var title="">browsing context</var> as the browsing context, <var title="">document</var> as the document, <var title="">character
+ encoding</var> as the URL character encoding, and <var title="">base URL</var> as the base URL.</li>
+
+ </ol><p>When the above methods are to <dfn id=get-the-timeout>get the timeout</dfn>, they
+ must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">timeout</var> be the second argument to
+ the method, or zero if the argument was omitted.</li>
+
+ <li><p>If <var title="">timeout</var> is an Infinity value, a
+ Not-a-Number (NaN) value, or negative, let <var title="">timeout</var> be zero.</li>
+
+ <li><p>Round <var title="">timeout</var> down to the nearest
+ integer, and let <var title="">timeout</var> be the
+ result.</li>
+
+ <li><p>Return <var title="">timeout</var>.</li>
+
+ </ol><hr><p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <dfn id=timer-task-source>timer task
+ source</dfn>.</p>
+
+ </div>
+
+
+
+ <h3 id=user-prompts><span class=secno>7.4 </span>User prompts</h3>
+
+ <!--
+ v2 ideas:
+ * in-window modal dialogs
+ - escape/enter handling
+ - dragging the window out of the tab
+ * in-window non-modal palettes
+ - with a solution for the mobile space
+ -->
+
+ <h4 id=simple-dialogs><span class=secno>7.4.1 </span>Simple dialogs</h4>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-alert><a href=#dom-alert>alert</a></code>(<var title="">message</var>)</dt>
+ <dd>
+
+ <p>Displays a modal alert with the given message, and waits for the user to dismiss it.</p>
+
+ <p>A call to the <code title=dom-navigator-yieldForStorageUpdates><a href=#dom-navigator-yieldforstorageupdates>navigator.yieldForStorageUpdates()</a></code>
+ method is implied when this method is invoked.</p>
+
+ </dd>
+
+ <dt><var title="">result</var> = <var title="">window</var> . <code title=dom-confirm><a href=#dom-confirm>confirm</a></code>(<var title="">message</var>)</dt>
+ <dd>
+
+ <p>Displays a modal OK/Cancel prompt with the given message, waits
+ for the user to dismiss it, and returns true if the user clicks OK
+ and false if the user clicks Cancel.</p>
+
+ <p>A call to the <code title=dom-navigator-yieldForStorageUpdates><a href=#dom-navigator-yieldforstorageupdates>navigator.yieldForStorageUpdates()</a></code>
+ method is implied when this method is invoked.</p>
+
+ </dd>
+
+ <dt><var title="">result</var> = <var title="">window</var> . <code title=dom-prompt><a href=#dom-prompt>prompt</a></code>(<var title="">message</var> [, <var title="">default</var>] )</dt>
+ <dd>
+
+ <p>Displays a modal text field prompt with the given message,
+ waits for the user to dismiss it, and returns the value that the
+ user entered. If the user cancels the prompt, then returns null
+ instead. If the second argument is present, then the given value
+ is used as a default.</p>
+
+ <p>A call to the <code title=dom-navigator-yieldForStorageUpdates><a href=#dom-navigator-yieldforstorageupdates>navigator.yieldForStorageUpdates()</a></code>
+ method is implied when this method is invoked.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-alert title=dom-alert><code>alert(<var title="">message</var>)</code></dfn> method, when invoked, must
+ release the <a href=#storage-mutex>storage mutex</a> and show the given <var title="">message</var> to the user. The user agent may make the
+ method wait for the user to acknowledge the message before
+ returning; if so, the user agent must <a href=#pause>pause</a> while the
+ method is waiting.</p>
+
+ <p>The <dfn id=dom-confirm title=dom-confirm><code>confirm(<var title="">message</var>)</code></dfn> method, when invoked, must
+ release the <a href=#storage-mutex>storage mutex</a> and show the given <var title="">message</var> to the user, and ask the user to respond with
+ a positive or negative response. The user agent must then
+ <a href=#pause>pause</a> as the method waits for the user's response. If
+ the user responds positively, the method must return true, and if
+ the user responds negatively, the method must return false.</p>
+
+ <p>The <dfn id=dom-prompt title=dom-prompt><code>prompt(<var title="">message</var>, <var title="">default</var>)</code></dfn>
+ method, when invoked, must release the <a href=#storage-mutex>storage mutex</a>,
+ show the given <var title="">message</var> to the user, and ask the
+ user to either respond with a string value or abort. The user agent
+ must then <a href=#pause>pause</a> as the method waits for the user's
+ response. The second argument is optional. If the second argument
+ (<var title="">default</var>) is present, then the response must be
+ defaulted to the value given by <var title="">default</var>. If the
+ user aborts, then the method must return null; otherwise, the method
+ must return the string that the user responded with.</p>
+
+ </div>
+
+
+ <h4 id=printing><span class=secno>7.4.2 </span>Printing</h4>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-print><a href=#dom-print>print</a></code>()</dt>
+
+ <dd>
+
+ <p>Prompts the user to print the page.</p>
+
+ <p>A call to the <code title=dom-navigator-yieldForStorageUpdates><a href=#dom-navigator-yieldforstorageupdates>navigator.yieldForStorageUpdates()</a></code>
+ method is implied when this method is invoked.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>When the <dfn id=dom-print title=dom-print><code>print()</code></dfn> method
+ is invoked, if the <code><a href=#document>Document</a></code> is <a href=#ready-for-post-load-tasks>ready for
+ post-load tasks</a>, then the user agent must synchronously run
+ the <a href=#printing-steps>printing steps</a>. Otherwise, the user agent must only
+ set the <dfn id=print-when-loaded>print when loaded</dfn> flag on the
+ <code><a href=#document>Document</a></code>.</p>
+
+ <p>User agents should also run the <a href=#printing-steps>printing steps</a>
+ whenever the user asks for the opportunity to <a href=#obtain-a-physical-form>obtain a
+ physical form</a> (e.g. printed copy), or the representation of a
+ physical form (e.g. PDF copy), of a document.</p>
+
+ <p>The <dfn id=printing-steps>printing steps</dfn> are as follows:</p>
+
+ <ol><li>
+
+ <p>The user agent may display a message to the user and/or may
+ abort these steps.</p>
+
+ <p class=example>For instance, a kiosk browser could silently
+ ignore any invocations of the <code title=dom-print><a href=#dom-print>print()</a></code> method.</p>
+
+ <p class=example>For instance, a browser on a mobile device
+ could detect that there are no printers in the vicinity and
+ display a message saying so before continuing to offer a "save to
+ PDF" option.</p>
+
+ </li>
+
+ <li>
+
+ <p>The user agent must <a href=#fire-a-simple-event>fire a simple event</a> named
+ <code title=event-beforeprint>beforeprint</code> at the
+ <code><a href=#window>Window</a></code> object of the <code><a href=#document>Document</a></code> that is
+ being printed, as well as any <a href=#nested-browsing-context title="nested browsing
+ context">nested browsing contexts</a> in it.</p>
+
+ <p class=example>The <code title=event-beforeprint>beforeprint</code> event can be used
+ to annotate the printed copy, for instance adding the time at
+ which the document was printed.</p>
+
+ </li>
+
+ <li>
+
+ <p>The user agent must release the <a href=#storage-mutex>storage mutex</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>The user agent should offer the user the opportunity to
+ <a href=#obtain-a-physical-form>obtain a physical form</a> (or the representation of a
+ physical form) of the document. The user agent may wait for the
+ user to either accept or decline before returning; if so, the user
+ agent must <a href=#pause>pause</a> while the method is waiting. Even if
+ the user agent doesn't wait at this point, the user agent must use
+ the state of the relevant documents as they are at this point in
+ the algorithm if and when it eventually creates the alternate
+ form.</p>
+
+ </li>
+
+ <li>
+
+ <p>The user agent must <a href=#fire-a-simple-event>fire a simple event</a> named
+ <code title=event-afterprint>afterprint</code> at the
+ <code><a href=#window>Window</a></code> object of the <code><a href=#document>Document</a></code> that is
+ being printed, as well as any <a href=#nested-browsing-context title="nested browsing
+ context">nested browsing contexts</a> in it.</p>
+
+ <p class=example>The <code title=event-afterprint>afterprint</code> event can be used
+ to revert annotations added in the earlier event, as well as
+ showing post-printing UI. For instance, if a page is walking the
+ user through the steps of applying for a home loan, the script
+ could automatically advance to the next step after having printed
+ a form or other.</p>
+
+ </li>
+
+ </ol></div>
+
+
+ <h4 id=dialogs-implemented-using-separate-documents><span class=secno>7.4.3 </span>Dialogs implemented using separate documents</h4>
+
+ <dl class=domintro><dt><var title="">result</var> = <var title="">window</var> . <code title=dom-showModalDialog><a href=#dom-showmodaldialog>showModalDialog</a></code>(<var title="">url</var> [, <var title="">argument</var>] )</dt>
+
+ <dd>
+
+ <p>Prompts the user with the given page, waits for that page to
+ close, and returns the return value.</p>
+
+ <p>A call to the <code title=dom-navigator-yieldForStorageUpdates><a href=#dom-navigator-yieldforstorageupdates>navigator.yieldForStorageUpdates()</a></code>
+ method is implied when this method is invoked.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-showmodaldialog title=dom-showModalDialog><code>showModalDialog(<var title="">url</var>, <var title="">argument</var><!--, <var
+ title="">features</var>-->)</code></dfn> method, when invoked, must
+ cause the user agent to run the following steps:</p>
+
+ <ol><li>
+
+ <p><a href=#resolve-a-url title="resolve a url">Resolve</a> <var title="">url</var> relative to the <a href=#entry-script>entry script</a>'s
+ <a href="#script's-base-url" title="script's base URL">base URL</a>.</p>
+
+ <p>If this fails, then throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception
+ and abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Release the <a href=#storage-mutex>storage mutex</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the user agent is configured such that this invocation of
+ <code title=dom-showModalDialog><a href=#dom-showmodaldialog>showModalDialog()</a></code> is
+ somehow disabled, then return the empty string and abort these
+ steps.</p>
+
+ <p class=note>User agents are expected to disable this method in
+ certain cases to avoid user annoyance (e.g. as part of their popup
+ blocker feature). For instance, a user agent could require that a
+ site be white-listed before enabling this method, or the user
+ agent could be configured to only allow one modal dialog at a
+ time.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the current browsing context had the <a href=#sandboxed-navigation-browsing-context-flag>sandboxed
+ navigation browsing context flag</a> set when its <a href=#active-document>active
+ document</a> was created, then return the empty string and
+ abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">the list of background browsing
+ contexts</var> be a list of all the browsing contexts that:</p>
+
+ <ul><li>are part of the same <a href=#unit-of-related-browsing-contexts>unit of related browsing
+ contexts</a> as the browsing context of the
+ <code><a href=#window>Window</a></code> object on which the <code title=dom-showModalDialog><a href=#dom-showmodaldialog>showModalDialog()</a></code> method was
+ called, and that</li>
+
+ <li>have an <a href=#active-document>active document</a> whose
+ <a href=#origin>origin</a> is the <a href=#same-origin title="same origin">same</a>
+ as the <a href=#origin>origin</a> of the <a href=#concept-script title=concept-script>script</a> that called the <code title=dom-showModalDialog><a href=#dom-showmodaldialog>showModalDialog()</a></code> method at
+ the time the method was called,</li> <!-- Note that changing
+ document.domain to talk to another domain doesn't make you able
+ to block that domain -->
+
+ </ul><p>...as well as any browsing contexts that are nested inside any
+ of the browsing contexts matching those conditions.</p>
+
+ </li>
+
+ <li>
+
+ <p>Disable the user interface for all the browsing contexts in
+ <var title="">the list of background browsing contexts</var>. This
+ should prevent the user from navigating those browsing contexts,
+ causing events to be sent to those browsing context, or editing
+ any content in those browsing contexts. However, it does not
+ prevent those browsing contexts from receiving events from sources
+ other than the user, from running scripts, from running
+ animations, and so forth.</p>
+
+ </li>
+
+ <li>
+
+ <p>Create a new <a href=#auxiliary-browsing-context>auxiliary browsing context</a>, with the
+ <a href=#opener-browsing-context>opener browsing context</a> being the browsing context of
+ the <code><a href=#window>Window</a></code> object on which the <code title=dom-showModalDialog><a href=#dom-showmodaldialog>showModalDialog()</a></code> method was
+ called. The new auxiliary browsing context has no name.</p>
+
+ <p class=note>This <a href=#browsing-context>browsing context</a>'s
+ <code><a href=#document>Document</a></code>s' <code><a href=#window>Window</a></code> objects all implement
+ the <code><a href=#windowmodal>WindowModal</a></code> interface.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let the <a href=#dialog-arguments>dialog arguments</a> of the new browsing
+ context be set to the value of <var title="">argument</var>, or
+ the 'undefined' value if the argument was omitted.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let the <a href="#dialog-arguments'-origin">dialog arguments' origin</a> be the
+ <a href=#origin>origin</a> of the <a href=#concept-script title=concept-script>script</a> that called the <code title=dom-showModalDialog><a href=#dom-showmodaldialog>showModalDialog()</a></code> method.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#navigate>Navigate</a><!--DONAV showModalDialog--> the new
+ <a href=#browsing-context>browsing context</a> to the <a href=#absolute-url>absolute URL</a>
+ that resulted from <a href=#resolve-a-url title="resolve a url">resolving</a>
+ <var title="">url</var> earlier, with <a href=#replacement-enabled>replacement
+ enabled</a>, and with the <a href="#script's-browsing-context" title="script's browsing
+ context">browsing context</a> of the <a href=#concept-script title=concept-script>script</a> that invoked the method as
+ the <a href=#source-browsing-context>source browsing context</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#spin-the-event-loop>Spin the event loop</a> until the new <a href=#browsing-context>browsing
+ context</a> is closed. (The user agent must allow the user to
+ indicate that the <a href=#browsing-context>browsing context</a> is to be
+ closed.)</p>
+
+ </li>
+
+ <li>
+
+ <p>Reenable the user interface for all the browsing contexts in
+ <var title="">the list of background browsing contexts</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Return the <a href=#auxiliary-browsing-context>auxiliary browsing context</a>'s
+ <a href=#return-value>return value</a>.</p>
+
+ </li>
+
+ </ol><p>The <code><a href=#window>Window</a></code> objects of <code><a href=#document>Document</a></code>s hosted
+ by <a href=#browsing-context title="browsing context">browsing contexts</a> created
+ by the above algorithm must also implement the
+ <code><a href=#windowmodal>WindowModal</a></code> interface.</p>
+
+ <p class=note>When this happens, the members of the
+ <code><a href=#windowmodal>WindowModal</a></code> interface, in JavaScript environments,
+ appear to actually be part of the <code><a href=#window>Window</a></code> interface
+ (e.g. they are on the same prototype chain as the <code title=dom-alert><a href=#dom-alert>window.alert()</a></code> method).</p>
+
+ </div>
+
+ <pre class=idl>[NoInterfaceObject] interface <dfn id=windowmodal>WindowModal</dfn> {
+ readonly attribute any <a href=#dom-windowmodal-dialogarguments title=dom-WindowModal-dialogArguments>dialogArguments</a>;
+ attribute DOMString <a href=#dom-windowmodal-returnvalue title=dom-WindowModal-returnValue>returnValue</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-WindowModal-dialogArguments><a href=#dom-windowmodal-dialogarguments>dialogArguments</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <var title="">argument</var> argument that was
+ passed to the <code title=dom-showModalDialog><a href=#dom-showmodaldialog>showModalDialog()</a></code> method.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-WindowModal-returnValue><a href=#dom-windowmodal-returnvalue>returnValue</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the current return value for the window.</p>
+
+ <p>Can be set, to change the value that will be returned by the
+ <code title=dom-showModalDialog><a href=#dom-showmodaldialog>showModalDialog()</a></code>
+ method.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>Such browsing contexts have associated <dfn id=dialog-arguments>dialog
+ arguments</dfn>, which are stored along with the <dfn id="dialog-arguments'-origin">dialog
+ arguments' origin</dfn>. These values are set by the <code title=dom-showModalDialog><a href=#dom-showmodaldialog>showModalDialog()</a></code> method in the
+ algorithm above, when the browsing context is created, based on the
+ arguments provided to the method.</p>
+
+ <p>The <dfn id=dom-windowmodal-dialogarguments title=dom-WindowModal-dialogArguments><code>dialogArguments</code></dfn>
+ IDL attribute, on getting, must check whether its browsing context's
+ <a href=#active-document>active document</a>'s <a href=#origin>origin</a> is the <a href=#same-origin title="same origin">same</a> as the <a href="#dialog-arguments'-origin">dialog arguments'
+ origin</a>. If it is, then the browsing context's <a href=#dialog-arguments>dialog
+ arguments</a> must be returned unchanged. Otherwise, if the
+ <a href=#dialog-arguments>dialog arguments</a> are an object, then the empty string
+ must be returned, and if the <a href=#dialog-arguments>dialog arguments</a> are not
+ an object, then the stringification of the <a href=#dialog-arguments>dialog
+ arguments</a> must be returned.
+
+ <p>These browsing contexts also have an associated <dfn id=return-value>return
+ value</dfn>. The <a href=#return-value>return value</a> of a browsing context
+ must be initialized to the empty string when the browsing context is
+ created.</p>
+
+ <p>The <dfn id=dom-windowmodal-returnvalue title=dom-WindowModal-returnValue><code>returnValue</code></dfn>
+ IDL attribute, on getting, must return the <a href=#return-value>return value</a>
+ of its browsing context, and on setting, must set the <a href=#return-value>return
+ value</a> to the given new value.</p>
+
+ </div>
+
+ <p class=note>The <code title=dom-window-close><a href=#dom-window-close>window.close()</a></code> method can be used to
+ close the browsing context.</p>
+
+
+
+
+ <h3 id=system-state-and-capabilities><span class=secno>7.5 </span>System state and capabilities</h3>
+
+ <h4 id=the-navigator-object><span class=secno>7.5.1 </span>The <code><a href=#navigator>Navigator</a></code> object</h4>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-navigator title=dom-navigator><code>navigator</code></dfn>
+ attribute of the <code><a href=#window>Window</a></code> interface must return an
+ instance of the <code><a href=#navigator>Navigator</a></code> interface, which represents
+ the identity and state of the user agent (the client), and allows
+ Web pages to register themselves as potential protocol and content
+ handlers:</p>
+
+ </div>
+
+ <pre class=idl>interface <dfn id=navigator>Navigator</dfn> {
+ // objects implementing this interface also implement the interfaces given below
+};
+<a href=#navigator>Navigator</a> implements <a href=#navigatorid>NavigatorID</a>;
+<a href=#navigator>Navigator</a> implements <a href=#navigatoronline>NavigatorOnLine</a>;
+<a href=#navigator>Navigator</a> implements <a href=#navigatorcontentutils>NavigatorContentUtils</a>;
+<a href=#navigator>Navigator</a> implements <a href=#navigatorstorageutils>NavigatorStorageUtils</a>;</pre>
+
+<!-- v2:
+ cookieEnabled geolocator javaEnabled mozIsLocallyAvailable preference
+ readonly attribute <span>MimeTypeArray</span> <span title="dom-navigator-mimeTypes">mimeTypes</span>;
+ readonly attribute <span>PluginArray</span> <span title="dom-navigator-plugins">plugins</span>;
+ (the latter is used in a <video> element demo now, so we might need to pull this forward from v2!)
+-->
+
+ <div class=impl>
+
+ <p>These interfaces are defined separately so that other
+ specifications can re-use parts of the <code><a href=#navigator>Navigator</a></code>
+ interface.</p>
+
+ <!-- v2: also, could expose languages:
+ <dt><dfn title="dom-navigator-browserLanguage"><code>browserLanguage</code></dfn></dt> <!- - Opera and IE only - ->
+ <dd><p>Must return either null or a language tag representing the language the browser uses in its interface.</p></dd>
+ <dt><dfn title="dom-navigator-userLanguage"><code>userLanguage</code></dfn></dt> <!- - Opera and IE only - ->
+ <dt><dfn title="dom-navigator-language"><code>language</code></dfn></dt> <!- - Opera, Safari, and Mozilla only - ->
+ <dd><p>Must return either null or a language tag representing the user's preferred language.</p></dd>
+ -->
+
+ </div>
+
+
+ <h5 id=client-identification><span class=secno>7.5.1.1 </span>Client identification</h5>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=navigatorid>NavigatorID</dfn> {<!--
+ readonly attribute DOMString <span title="dom-navigator-appCodeName">appCodeName</span>;-->
+ readonly attribute DOMString <a href=#dom-navigator-appname title=dom-navigator-appName>appName</a>;
+ readonly attribute DOMString <a href=#dom-navigator-appversion title=dom-navigator-appVersion>appVersion</a>;
+ readonly attribute DOMString <a href=#dom-navigator-platform title=dom-navigator-platform>platform</a>;
+ readonly attribute DOMString <a href=#dom-navigator-useragent title=dom-navigator-userAgent>userAgent</a>;
+};</pre>
+
+ <p>In certain cases, despite the best efforts of the entire
+ industry, Web browsers have bugs and limitations that Web authors
+ are forced to work around.</p>
+
+ <p>This section defines a collection of attributes that can be used
+ to determine, from script, the kind of user agent in use, in order
+ to work around these issues.</p>
+
+ <p>Client detection should always be limited to detecting known
+ current versions; future versions and unknown versions should always
+ be assumed to be fully compliant.</p>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-appName><a href=#dom-navigator-appname>appName</a></code></dt>
+ <dd>
+ <p>Returns the name of the browser.</p>
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-appVersion><a href=#dom-navigator-appversion>appVersion</a></code></dt>
+ <dd>
+ <p>Returns the version of the browser.</p>
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-platform><a href=#dom-navigator-platform>platform</a></code></dt>
+ <dd>
+ <p>Returns the name of the platform.</p>
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-userAgent><a href=#dom-navigator-useragent>userAgent</a></code></dt>
+ <dd>
+ <p>Returns the complete User-Agent header.</p>
+ </dd>
+
+ </dl><div class=impl>
+
+ <dl><!-- redundant
+ <dt><dfn title="dom-navigator-appCodeName"><code>appCodeName</code></dfn></dt>
+ <dd><p>Must return the string "<code title="">Mozilla</code>".</p></dd>
+ --><!-- appMinorVersion: IE only. In IE8b1, returns " Beta" (with the space) --><dt><dfn id=dom-navigator-appname title=dom-navigator-appName><code>appName</code></dfn></dt>
+ <dd><p>Must return either the string "<code title="">Netscape</code>" or the full name of the browser, e.g. "<code title="">Mellblom Browsernator</code>".</dd>
+
+ <dt><dfn id=dom-navigator-appversion title=dom-navigator-appVersion><code>appVersion</code></dfn></dt>
+ <dd><p>Must return either the string "<code title="">4.0</code>" or a string representing the version of the browser in detail, e.g. "<code title="">1.0 (VMS; en-US) Mellblomenator/9000</code>".</dd>
+
+ <!-- buildID: Mozilla only -->
+
+ <!-- oscpu: Mozilla only -->
+
+ <dt><dfn id=dom-navigator-platform title=dom-navigator-platform><code>platform</code></dfn></dt>
+ <dd><p>Must return either the empty string or a string representing the platform on which the browser is executing, e.g. "<code title="">MacIntel</code>", "<code title="">Win32</code>", "<code title="">FreeBSD i386</code>", "<code title="">WebTV OS</code>".</dd>
+
+ <!-- product: Mozilla and Safari only; always returns "Gecko" -->
+
+ <!-- productSub: Mozilla and Safari only; returns same as buildID in Mozilla, and returns the fixed string "20030107" in Safari -->
+
+ <!-- securityPolicy: Mozilla only; always returns "" -->
+
+ <!-- taintEnabled(): Opera, IE and Mozilla have this function as one that always returns false -->
+
+ <dt><dfn id=dom-navigator-useragent title=dom-navigator-userAgent><code>userAgent</code></dfn></dt>
+ <dd><p>Must return the string used for the value of the "<code title="">User-Agent</code>" header in HTTP requests, or the empty string if no such header is ever sent.</dd>
+
+ <!-- vendor: Mozilla and Safari only; always returns "" in Mozilla, and returns the fixed string "Apple Computer, Inc." in Safari -->
+
+ <!-- vendorSub: Mozilla and Safari only; always returns "" -->
+
+ </dl><p class=warning>Any information in this API that varies from user
+ to user can be used to profile the user. In fact, if enough such
+ information is available, a user can actually be uniquely
+ identified. For this reason, user agent implementors are strongly
+ urged to include as little information in this API as possible.</p>
+
+ </div>
+
+
+ <h5 id=custom-handlers><span class=secno>7.5.1.2 </span>Custom scheme and content handlers</h5>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=navigatorcontentutils>NavigatorContentUtils</dfn> {
+ // content handler registration
+ void <a href=#dom-navigator-registerprotocolhandler title=dom-navigator-registerProtocolHandler>registerProtocolHandler</a>(DOMString scheme, DOMString url, DOMString title);
+ void <a href=#dom-navigator-registercontenthandler title=dom-navigator-registerContentHandler>registerContentHandler</a>(DOMString mimeType, DOMString url, DOMString title);
+ DOMString <a href=#dom-navigator-isprotocolhandlerregistered title=dom-navigator-isProtocolHandlerRegistered>isProtocolHandlerRegistered</a>(DOMString scheme, DOMString url);
+ DOMString <a href=#dom-navigator-iscontenthandlerregistered title=dom-navigator-isContentHandlerRegistered>isContentHandlerRegistered</a>(DOMString mimeType, DOMString url);
+ void <a href=#dom-navigator-unregisterprotocolhandler title=dom-navigator-unregisterProtocolHandler>unregisterProtocolHandler</a>(DOMString scheme, DOMString url);
+ void <a href=#dom-navigator-unregistercontenthandler title=dom-navigator-unregisterContentHandler>unregisterContentHandler</a>(DOMString mimeType, DOMString url);
+};</pre>
+
+ <p>The <dfn id=dom-navigator-registerprotocolhandler title=dom-navigator-registerProtocolHandler><code>registerProtocolHandler()</code></dfn>
+ method allows Web sites to register themselves as possible handlers
+ for particular schemes. For example, an online telephone messaging
+ service could register itself as a handler of the <code>sms:</code>
+ scheme (<a href=#refsRFC5724>[RFC5724]</a>), so that if the user
+ clicks on such a link, he is given the opportunity to use that Web
+ site. Analogously, the <dfn id=dom-navigator-registercontenthandler title=dom-navigator-registerContentHandler><code>registerContentHandler()</code></dfn>
+ method allows Web sites to register themselves as possible handlers
+ for content in a particular <a href=#mime-type>MIME type</a>. For example, the
+ same online telephone messaging service could register itself as a
+ handler for <code>text/directory</code> files (<a href=#refsRFC2425>[RFC2425]</a>), so that if the user has no
+ native application capable of handling vCards (<a href=#refsRFC2426>[RFC2426]</a>), his Web browser can instead
+ suggest he use that site to view contact information stored on
+ vCards that he opens.</p>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-registerProtocolHandler><a href=#dom-navigator-registerprotocolhandler>registerProtocolHandler</a></code>(<var title="">scheme</var>, <var title="">url</var>, <var title="">title</var>)</dt>
+ <dt><var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-registerContentHandler><a href=#dom-navigator-registercontenthandler>registerContentHandler</a></code>(<var title="">mimeType</var>, <var title="">url</var>, <var title="">title</var>)</dt>
+
+ <dd>
+
+ <p>Registers a handler for the given scheme or content type, at
+ the given URL, with the given title.</p>
+
+ <p>The string "<code title="">%s</code>" in the URL is used as a
+ placeholder for where to put the URL of the content to be
+ handled.</p>
+
+ <p>Throws a <code><a href=#securityerror>SecurityError</a></code> exception if the user agent
+ blocks the registration (this might happen if trying to register
+ as a handler for "http", for instance).</p>
+
+ <p>Throws a <code><a href=#syntaxerror>SyntaxError</a></code> if the "<code title="">%s</code>" string is missing in the URL.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>User agents may, within the constraints described in this
+ section, do whatever they like when the methods are called. A UA
+ could, for instance, prompt the user and offer the user the
+ opportunity to add the site to a shortlist of handlers, or make the
+ handlers his default, or cancel the request. UAs could provide such
+ a UI through modal UI or through a non-modal transient notification
+ interface. UAs could also simply silently collect the information,
+ providing it only when relevant to the user.</p>
+
+ <p>User agents should keep track of which sites have registered
+ handlers (even if the user has declined such registrations) so that
+ the user is not repeatedly prompted with the same request.</p>
+
+ <p>The arguments to the methods have the following meanings and
+ corresponding implementation requirements. The requirements that
+ involve throwing exceptions must be processed in the order given
+ below, stopping at the first exception raised. (So the exceptions
+ for the first argument take precedence over the exceptions for the
+ second argument.)</p>
+
+ <dl><dt><var title="">scheme</var> (<code title=dom-navigator-registerProtocolHandler><a href=#dom-navigator-registerprotocolhandler>registerProtocolHandler()</a></code> only)</dt>
+
+ <dd>
+
+ <p>A scheme, such as <code>mailto</code> or <code>web+auth</code>.
+ The scheme must be compared in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner by user agents for the purposes of
+ comparing with the scheme part of URLs that they consider against
+ the list of registered handlers.</p>
+
+ <p>The <var title="">scheme</var> value, if it contains a colon
+ (as in "<code>mailto:</code>"), will never match anything, since
+ schemes don't contain colons.</p>
+
+ <p>If the <code title=dom-navigator-registerProtocolHandler><a href=#dom-navigator-registerprotocolhandler>registerProtocolHandler()</a></code>
+ method is invoked with a scheme that is neither a
+ <a href=#whitelisted-scheme>whitelisted scheme</a> nor a scheme whose value starts
+ with the substring "<code title="">web+</code>" and otherwise
+ contains only characters in the range U+0061 LATIN SMALL LETTER A
+ to U+007A LATIN SMALL LETTER Z, the user agent must throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception.</p>
+
+ <p>The following schemes are the <dfn id=whitelisted-scheme title="whitelisted
+ scheme">whitelisted schemes</dfn>:</p>
+
+ <ul class=brief><li><code title="">irc</code></li>
+ <li><code title="">mailto</code></li>
+ <li><code title="">mms</code></li>
+ <li><code title="">news</code></li>
+ <li><code title="">nntp</code></li>
+ <li><code title="">sms</code></li>
+ <li><code title="">smsto</code></li>
+ <li><code title="">tel</code></li>
+ <li><code title="">urn</code></li>
+ <li><code title="">webcal</code></li>
+ </ul><p class=note>This list can be changed. If there are schemes
+ that should be added, please send feedback.</p>
+
+ </dd>
+
+ <dt><var title="">mimeType</var> (<code title=dom-navigator-registerContentHandler><a href=#dom-navigator-registercontenthandler>registerContentHandler()</a></code> only)</dt>
+
+ <dd>
+
+ <p>A <a href=#mime-type>MIME type</a>, such as
+ <code>model/vnd.flatland.3dml</code> or
+ <code>application/vnd.google-earth.kml+xml</code>. The <a href=#mime-type>MIME
+ type</a> must be compared in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner by user agents for the purposes of
+ comparing with MIME types of documents that they consider against
+ the list of registered handlers.</p>
+
+ <p>User agents must compare the given values only to the MIME
+ type/subtype parts of content types, not to the complete type
+ including parameters. Thus, if <var title="">mimeType</var> values
+ passed to this method include characters such as commas or
+ whitespace, or include MIME parameters, then the handler being
+ registered will never be used.</p>
+
+ <p class=note>The type is compared to the <a href=#mime-type>MIME type</a>
+ used by the user agent <em>after</em> the sniffing algorithms have
+ been applied.</p>
+
+ <p>If the <code title=dom-navigator-registerContentHandler><a href=#dom-navigator-registercontenthandler>registerContentHandler()</a></code>
+ method is invoked with a <a href=#mime-type>MIME type</a> that is in the
+ <a href=#type-blacklist>type blacklist</a> or that the user agent has deemed a
+ privileged type, the user agent must throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception.</p>
+
+ <p>The following <a href=#mime-type title="MIME type">MIME types</a> are in
+ the <dfn id=type-blacklist>type blacklist</dfn>:</p>
+
+ <ul class=brief><li><code><a href=#text/cache-manifest>text/cache-manifest</a></code></li>
+ <li><code>text/css</code></li>
+ <li><code><a href=#text/html-sandboxed>text/html-sandboxed</a></code></li>
+ <li><code><a href=#text/html>text/html</a></code></li>
+ <li><code><a href=#text/ping>text/ping</a></code></li>
+ <li><code>text/plain</code></li>
+ <li><code><a href=#application/x-www-form-urlencoded>application/x-www-form-urlencoded</a></code></li>
+ <li><code>image/gif</code></li>
+ <li><code>image/jpeg</code></li>
+ <li><code>image/png</code></li>
+ <li><code><a href=#multipart/x-mixed-replace>multipart/x-mixed-replace</a></code></li>
+ <li>All <a href=#xml-mime-type title="XML MIME type">XML MIME types</a></li>
+ <li>All types that the user agent supports displaying natively in a <a href=#browsing-context>browsing context</a> during <a href=#navigate title=navigate>navigation</a></li>
+
+ </ul><p class=note>This list can be changed. If there are schemes
+ that should be added, please send feedback.</p>
+
+ </dd>
+
+
+ <dt><var title="">url</var></dt>
+
+ <dd>
+
+ <p>A string used to build the <a href=#url>URL</a> of the page that
+ will handle the requests.</p>
+
+ <p>User agents must throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception if
+ the <var title="">url</var> argument passed to one of these
+ methods does not contain the exact literal string
+ "<code>%s</code>".</p>
+
+ <p>User agents must throw a <code><a href=#syntaxerror>SyntaxError</a></code> if <a href=#resolve-a-url title="resolve a url">resolving</a> the <var title="">url</var>
+ argument relative to the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base URL">base URL</a>, is not successful.</p>
+
+ <p class=note>The resulting <a href=#absolute-url>absolute URL</a> would by
+ definition not be a <a href=#valid-url>valid URL</a> as it would include the
+ string "<code title="">%s</code>" which is not a valid component
+ in a URL.</p>
+
+ <p>User agents must throw a <code><a href=#securityerror>SecurityError</a></code> exception if
+ the resulting <a href=#absolute-url>absolute URL</a> has an <a href=#origin>origin</a>
+ that differs from the <a href=#origin>origin</a> of the <a href=#entry-script>entry
+ script</a>.</p>
+
+ <p class=note>This is forcibly the case if the <code title="">%s</code> placeholder is in the scheme, host, or port
+ parts of the URL.</p>
+
+ <p>The resulting <a href=#absolute-url>absolute URL</a> is the
+ <dfn id=proto-url>proto-URL</dfn>. It identifies the handler for the purposes
+ of the methods described below.</p>
+
+ <p>When the user agent uses this handler, it must replace the
+ first occurrence of the exact literal string "<code title="">%s</code>" in the <var title="">url</var> argument with
+ an escaped version of the <a href=#absolute-url>absolute URL</a> of the content
+ in question (as defined below), then <a href=#resolve-a-url title="resolve a
+ url">resolve</a> the resulting URL, relative to the <a href="#script's-base-url" title="script's base URL">base URL</a> of the <a href=#entry-script>entry
+ script</a> at the time the <code title=dom-navigator-registerContentHandler><a href=#dom-navigator-registercontenthandler>registerContentHandler()</a></code>
+ or <code title=dom-navigator-registerProtocolHandler><a href=#dom-navigator-registerprotocolhandler>registerProtocolHandler()</a></code>
+ methods were invoked, and then <a href=#navigate>navigate</a><!--DONAV
+ user--> an appropriate <a href=#browsing-context>browsing context</a> to the
+ resulting URL using the GET method (<a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or equivalent</a> for
+ non-HTTP URLs).</p>
+
+ <p>To get the escaped version of the <a href=#absolute-url>absolute URL</a> of
+ the content in question, the user agent must replace every
+ character in that <a href=#absolute-url>absolute URL</a> that doesn't match the
+ &lt;query&gt; production defined in RFC 3986 by the
+ percent-encoded form of that character. <a href=#refsRFC3986>[RFC3986]</a></p>
+
+ <div class=example>
+
+ <p>If the user had visited a site at <code title="">http://example.com/</code> that made the following
+ call:</p>
+
+ <pre>navigator.registerContentHandler('application/x-soup', 'soup?url=%s', 'SoupWeb&trade;')</pre>
+
+ <p>...and then, much later, while visiting <code title="">http://www.example.net/</code>, clicked on a link such
+ as:</p>
+
+ <pre>&lt;a href="chickenk&iuml;wi.soup"&gt;Download our Chicken K&iuml;wi soup!&lt;/a&gt;</pre>
+
+ <p>...then, assuming this <code>chickenk&iuml;wi.soup</code> file
+ was served with the <a href=#mime-type>MIME type</a>
+ <code>application/x-soup</code>, the UA might navigate to the
+ following URL:</p>
+
+ <pre>http://example.com/soup?url=http://www.example.net/chickenk%C3%AFwi.soup</pre>
+
+ <p>This site could then fetch the <code>chickenk&iuml;wi.soup</code>
+ file and do whatever it is that it does with soup (synthesize it
+ and ship it to the user, or whatever).</p>
+
+ </div>
+
+ </dd>
+
+ <dt><var title="">title</var></dt>
+
+ <dd>
+
+ <p>A descriptive title of the handler, which the UA might use to
+ remind the user what the site in question is.</p>
+
+ </dd>
+
+ </dl><p>This section does not define how the pages registered by these
+ methods are used, beyond the requirements on how to process the <var title="">url</var> value (see above). To some extent, the <a href=#navigate title=navigate>processing model for navigating across
+ documents</a> defines some cases where these methods are
+ relevant, but in general UAs may use this information wherever they
+ would otherwise consider handing content to native plugins or helper
+ applications.</p>
+
+ <p>UAs must not use registered content handlers to handle content
+ that was returned as part of a non-GET transaction (or rather, as
+ part of any non-idempotent transaction), as the remote site would
+ not be able to fetch the same data.</p>
+
+ <hr></div>
+
+ <p>In addition to the registration methods, there are also methods
+ for determining if particular handlers have been registered, and for
+ unregistering handlers.</p>
+
+ <dl class=domintro><dt><var title="">state</var> = <var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-isProtocolHandlerRegistered><a href=#dom-navigator-isprotocolhandlerregistered>isProtocolHandlerRegistered</a></code>(<var title="">scheme</var>, <var title="">url</var>)</dt>
+ <dt><var title="">state</var> = <var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-isContentHandlerRegistered><a href=#dom-navigator-iscontenthandlerregistered>isContentHandlerRegistered</a></code>(<var title="">mimeType</var>, <var title="">url</var>)</dt>
+
+ <dd>
+
+ <p>Returns one of the following strings describing the state of
+ the handler given by the arguments:</p>
+
+ <dl><dt><code title="">new</code>
+ <dd>Indicates that no attempt has been made to register the given
+ handler (or that the handler has been unregistered). It would be
+ appropriate to promote the availability of the handler or to just
+ automatically register the handler.
+
+ <dt><code title="">registered</code>
+ <dd>Indicates that the given handler has been registered or that
+ the site is blocked from registering the handler. Trying to
+ register the handler again would have no effect.
+
+ <dt><code title="">declined</code>
+ <dd>Indicates that the given handler has been offered but was
+ rejected. Trying to register the handler again may prompt the
+ user again.
+
+ </dl></dd>
+
+ <dt><var title="">state</var> = <var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-unregisterProtocolHandler><a href=#dom-navigator-unregisterprotocolhandler>unregisterProtocolHandler</a></code>(<var title="">scheme</var>, <var title="">url</var>)</dt>
+ <dt><var title="">state</var> = <var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-unregisterContentHandler><a href=#dom-navigator-unregistercontenthandler>unregisterContentHandler</a></code>(<var title="">mimeType</var>, <var title="">url</var>)</dt>
+
+ <dd>
+
+ <p>Unregisters the handler given by the arguments.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-navigator-isprotocolhandlerregistered title=dom-navigator-isProtocolHandlerRegistered><code>isProtocolHandlerRegistered()</code></dfn>
+ method must return the <a href=#handler-state-string>handler state string</a> that most
+ closely describes the current state of the handler described by the
+ two arguments to the method, where the first argument gives the
+ scheme and the second gives the string used to build the
+ <a href=#url>URL</a> of the page that will handle the requests.</p>
+
+ <p>The first argument must be compared to the schemes for which
+ custom protocol handlers are registered in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner to find the relevant handlers.</p>
+
+ <p>The second argument must be preprocessed as described below, and
+ if that is successful, must then be matched against the <a href=#proto-url title=proto-URL>proto-URLs</a> of the relevant handlers to find
+ the described handler.</p>
+
+ <hr><p>The <dfn id=dom-navigator-iscontenthandlerregistered title=dom-navigator-isContentHandlerRegistered><code>isContentHandlerRegistered()</code></dfn>
+ method must return the <a href=#handler-state-string>handler state string</a> that most
+ closely describes the current state of the handler described by the
+ two arguments to the method, where the first argument gives the
+ <a href=#mime-type>MIME type</a> and the second gives the string used to build
+ the <a href=#url>URL</a> of the page that will handle the requests.</p>
+
+ <p>The first argument must be compared to the <a href=#mime-type title="MIME
+ type">MIME types</a> for which custom content handlers are
+ registered in an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> manner to find
+ the relevant handlers.</p>
+
+ <p>The second argument must be preprocessed as described below, and
+ if that is successful, must then be matched against the
+ <a href=#proto-url title=proto-URL>proto-URLs</a> of the relevant handlers to
+ find the described handler.</p>
+
+ <hr><p>The <dfn id=handler-state-string title="handler state string">handler state strings</dfn>
+ are the following strings. Each string describes several situations,
+ as given by the following list.</p>
+
+ <dl><dt><code title="">new</code>
+
+ <dd>The described handler has never been registered for the given
+ scheme or type.
+
+ <dd>The described handler was once registered for the given scheme
+ or type, but the site has since unregistered it. If the handler
+ were to be reregistered, the user would be notified accordingly.
+
+ <dd>The described handler was once registered for the given scheme
+ or type, but the site has since unregistered it, but the user has
+ indicated that the site is to be blocked from registering the type
+ again, so the user agent would ignore further registration attempts.
+
+
+ <dt><code title="">registered</code>
+
+ <dd>An attempt was made to register the described handler for the
+ given scheme or type, but the user has not yet been notified, and
+ the user agent would ignore further registration attempts. (Maybe
+ the user agent batches registration requests to display them when
+ the user requests to be notified about them, and the user has not
+ yet requested that the user agent notify it of the previous
+ registration attempt.)
+
+ <dd>The described handler is registered for the given scheme or
+ type (maybe, or maybe not, as the default handler).
+
+ <dd>The described handler is permanently blocked from being
+ (re)registered. (Maybe the user marked the registration attempt as
+ spam, or blocked the site for other reasons.)
+
+
+ <dt><code title="">declined</code>
+
+ <dd>An attempt was made to register the described handler for the
+ given scheme or type, but the user has not yet been notified;
+ however, the user might be notified if another registration attempt
+ were to be made. (Maybe the last registration attempt was made
+ while the page was in the background and the user closed the page
+ without looking at it, and the user agent requires confirmation for
+ this registration attempt.)
+
+ <dd>An attempt was made to register the described handler for the
+ given scheme or type, but the user has not yet responded.
+
+ <dd>An attempt was made to register the described handler for the
+ given scheme or type, but the user declined the offer. The user has
+ not indicated that the handler is to be permanently blocked,
+ however, so another attempt to register the described handler might
+ result in the user being prompted again.
+
+ <dd>The described handler was once registered for the given scheme
+ or type, but the user has since removed it. The user has not
+ indicated that the handler is to be permanently blocked, however,
+ so another attempt to register the described handler might result
+ in the user being prompted again.
+
+ </dl><hr><p>The <dfn id=dom-navigator-unregisterprotocolhandler title=dom-navigator-unregisterProtocolHandler><code>unregisterProtocolHandler()</code></dfn>
+ method must unregister the handler described by the two arguments to
+ the method, where the first argument gives the scheme and the second
+ gives the string used to build the <a href=#url>URL</a> of the page that
+ will handle the requests.</p>
+
+ <p>The first argument must be compared to the schemes for which
+ custom protocol handlers are registered in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner to find the relevant handlers.</p>
+
+ <p>The second argument must be preprocessed as described below, and
+ if that is successful, must then be matched against the <a href=#proto-url title=proto-URL>proto-URLs</a> of the relevant handlers to find
+ the described handler.</p>
+
+ <hr><p>The <dfn id=dom-navigator-unregistercontenthandler title=dom-navigator-unregisterContentHandler><code>unregisterContentHandler()</code></dfn>
+ method must unregister the handler described by the two arguments to
+ the method, where the first argument gives the <a href=#mime-type>MIME
+ type</a> and the second gives the string used to build the
+ <a href=#url>URL</a> of the page that will handle the requests.</p>
+
+ <p>The first argument must be compared to the <a href=#mime-type title="MIME
+ type">MIME types</a> for which custom content handlers are
+ registered in an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> manner to find
+ the relevant handlers.</p>
+
+ <p>The second argument must be preprocessed as described below, and
+ if that is successful, must then be matched against the
+ <a href=#proto-url title=proto-URL>proto-URLs</a> of the relevant handlers to
+ find the described handler.</p>
+
+ <hr><p>The second argument of the four methods described above must be
+ preprocessed as follows:</p>
+
+ <ol><li><p>If the string does not contain the substring "<code title="">%s</code>", abort these steps. There's no matching
+ handler.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a URL">Resolve</a> the string
+ relative to the <a href="#script's-base-url" title="script's base URL">base URL</a> of
+ the <a href=#entry-script>entry script</a>.</li>
+
+ <li><p>If this fails, then throw a <code><a href=#syntaxerror>SyntaxError</a></code>
+ exception, aborting the method.</li>
+
+ <li><p>If the resoluting <a href=#absolute-url>absolute URL</a>'s
+ <a href=#origin>origin</a> is not the <a href=#same-origin>same origin</a> as that of
+ the <a href=#entry-script>entry script</a> throw a <a href=#securityerror>SecurityError</a>
+ exception, aborting the method.</li>
+
+ <li><p>Return the resulting <a href=#absolute-url>absolute URL</a> as the result
+ of preprocessing the argument.</li>
+
+ </ol></div>
+
+
+ <div class=impl>
+
+ <h5 id=security-and-privacy><span class=secno>7.5.1.3 </span>Security and privacy</h5>
+
+ <p>These mechanisms can introduce a number of concerns, in
+ particular privacy concerns.</p>
+
+ <p><strong>Hijacking all Web usage.</strong> User agents should not
+ allow schemes that are key to its normal operation, such as
+ <code>http</code> or <code>https</code>, to be rerouted through
+ third-party sites. This would allow a user's activities to be
+ trivially tracked, and would allow user information, even in secure
+ connections, to be collected.</p>
+
+ <p><strong>Hijacking defaults.</strong> It is strongly recommended
+ that user agents do not automatically change any defaults, as this
+ could lead the user to send data to remote hosts that the user is
+ not expecting. New handlers registering themselves should never
+ automatically cause those sites to be used.</p>
+
+ <p><strong>Registration spamming.</strong> User agents should
+ consider the possibility that a site will attempt to register a
+ large number of handlers, possibly from multiple domains (e.g. by
+ redirecting through a series of pages each on a different domain,
+ and each registering a handler for <code>video/mpeg</code> &mdash;
+ analogous practices abusing other Web browser features have been
+ used by pornography Web sites for many years). User agents should
+ gracefully handle such hostile attempts, protecting the user.</p>
+
+ <p><strong>Misleading titles.</strong> User agents should not rely
+ wholly on the <var title="">title</var> argument to the methods when
+ presenting the registered handlers to the user, since sites could
+ easily lie. For example, a site <code>hostile.example.net</code>
+ could claim that it was registering the "Cuddly Bear Happy Content
+ Handler". User agents should therefore use the handler's domain in
+ any UI along with any title.</p>
+
+ <p><strong>Hostile handler metadata.</strong> User agents should
+ protect against typical attacks against strings embedded in their
+ interface, for example ensuring that markup or escape characters in
+ such strings are not executed, that null bytes are properly handled,
+ that over-long strings do not cause crashes or buffer overruns, and
+ so forth.</p>
+
+ <p><strong>Leaking Intranet URLs.</strong> The mechanism described
+ in this section can result in secret Intranet URLs being leaked, in
+ the following manner:</p>
+
+ <ol><li>The user registers a third-party content handler as the default
+ handler for a content type.</li>
+
+ <li>The user then browses his corporate Intranet site and accesses
+ a document that uses that content type.</li>
+
+ <li>The user agent contacts the third party and hands the third
+ party the URL to the Intranet content.</li>
+
+ </ol><p>No actual confidential file data is leaked in this manner, but
+ the URLs themselves could contain confidential information. For
+ example, the URL could be
+ <code>http://www.corp.example.com/upcoming-aquisitions/the-sample-company.egf</code>,
+ which might tell the third party that Example Corporation is
+ intending to merge with The Sample Company. Implementors might wish
+ to consider allowing administrators to disable this feature for
+ certain subdomains, content types, or schemes.</p>
+
+ <p><strong>Leaking secure URLs.</strong> User agents should not send
+ HTTPS URLs to third-party sites registered as content handlers, in
+ the same way that user agents do not send <code title=http-referer>Referer</code> (sic) HTTP headers from secure
+ sites to third-party sites.</p>
+
+ <p><strong>Leaking credentials.</strong> User agents must never send
+ username or password information in the URLs that are escaped and
+ included sent to the handler sites. User agents may even avoid
+ attempting to pass to Web-based handlers the URLs of resources
+ that are known to require authentication to access, as such sites
+ would be unable to access the resources in question without
+ prompting the user for credentials themselves (a practice that would
+ require the user to know whether to trust the third-party handler, a
+ decision many users are unable to make or even understand).</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h5 id=sample-handler-impl><span class=secno>7.5.1.4 </span>Sample user interface</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>A simple implementation of this feature for a desktop Web browser
+ might work as follows.</p>
+
+ <p>The <code title=dom-navigator-registerContentHandler><a href=#dom-navigator-registercontenthandler>registerContentHandler()</a></code>
+ method could display a modal dialog box:</p>
+
+ <p><img alt="The modal dialog box could have the title 'Content Handler Registration', and could say 'This Web page: Kittens at work http://kittens.example.org/ ...would like permission to handle files of type: application/x-meowmeow using the following Web-based application: Kittens-at-work displayer http://kittens.example.org/?show=%s Do you trust the administrators of the &quot;kittens.example.org&quot; domain?' with two buttons, 'Trust kittens.example.org' and 'Cancel'." height=374 src=greenbox.png width=534></p>
+
+ <p>In this dialog box, "Kittens at work" is the title of the page
+ that invoked the method, "http://kittens.example.org/" is the URL of
+ that page, "application/x-meowmeow" is the string that was passed to
+ the <code title=dom-navigator-registerContentHandler><a href=#dom-navigator-registercontenthandler>registerContentHandler()</a></code>
+ method as its first argument (<var title="">mimeType</var>),
+ "http://kittens.example.org/?show=%s" was the second argument (<var title="">url</var>), and "Kittens-at-work displayer" was the third
+ argument (<var title="">title</var>).</p>
+
+ <p>If the user clicks the Cancel button, then nothing further
+ happens. If the user clicks the "Trust" button, then the handler is
+ remembered.</p>
+
+ <p>When the user then attempts to fetch a URL that uses the
+ "application/x-meowmeow" <a href=#mime-type>MIME type</a>, then it might
+ display a dialog as follows:</p>
+
+ <p><img alt="The dialog box could have the title 'Unknown File Type' and could say 'You have attempted to access:' followed by a URL, followed by a prompt such as 'How would you like FerretBrowser to handle this resource?' with three radio buttons, one saying 'Contact the FerretBrowser plugin registry to see if there is an official way to handle this resource.', one saying 'Pass this URL to a local application' with an application selector, and one saying 'Pass this URL to the &quot;Kittens-at-work displayer&quot; application at &quot;kittens.example.org&quot;', with a checkbox labeled 'Always do this for resources using the &quot;application/x-meowmeow&quot; type in future.', and with two buttons, 'Ok' and 'Cancel'." height=428 src=greenbox.png width=577></p>
+
+ <p>In this dialog, the third option is the one that was primed by
+ the site registering itself earlier.</p>
+
+ <p>If the user does select that option, then the browser, in
+ accordance with the requirements described in the previous two
+ sections, will redirect the user to
+ "http://kittens.example.org/?show=data%3Aapplication/x-meowmeow;base64,S2l0dGVucyBhcmUgdGhlIGN1dGVzdCE%253D".</p>
+
+ <p>The <code title=dom-navigator-registerProtocolHandler><a href=#dom-navigator-registerprotocolhandler>registerProtocolHandler()</a></code>
+ method would work equivalently, but for schemes instead of unknown
+ content types.</p>
+
+ </div>
+
+
+
+ <h5 id=manually-releasing-the-storage-mutex><span class=secno>7.5.1.5 </span>Manually releasing the storage mutex</h5>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=navigatorstorageutils>NavigatorStorageUtils</dfn> {
+ void <a href=#dom-navigator-yieldforstorageupdates title=dom-navigator-yieldForStorageUpdates>yieldForStorageUpdates</a>();
+};</pre>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-yieldForStorageUpdates><a href=#dom-navigator-yieldforstorageupdates>yieldForStorageUpdates</a></code>()</dt>
+
+ <dd>
+
+ <p>If a script uses the <code title=dom-document-cookie><a href=#dom-document-cookie>document.cookie</a></code> API, or the
+ <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> API, the
+ browser will block other scripts from accessing cookies or storage
+ until the first script finishes.
+ </p>
+
+ <p>Calling the <code title=dom-navigator-yieldForStorageUpdates><a href=#dom-navigator-yieldforstorageupdates>navigator.yieldForStorageUpdates()</a></code>
+ method tells the user agent to unblock any other scripts that may
+ be blocked, even though the script hasn't returned.</p>
+
+ <p>Values of cookies and items in the <code><a href=#storage-0>Storage</a></code> objects
+ of <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attributes
+ can change after calling this method, whence its name.
+ </p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-navigator-yieldforstorageupdates title=dom-navigator-yieldForStorageUpdates><code>yieldForStorageUpdates()</code></dfn>
+ method, when invoked, must, if the <a href=#storage-mutex>storage mutex</a> is
+ owned by the <a href=#event-loop>event loop</a> of the <a href=#concept-task title=concept-task>task</a> that resulted in the method being
+ called, release the <a href=#storage-mutex>storage mutex</a> so that it is once
+ again free. Otherwise, it must do nothing.</p>
+
+ </div>
+
+
+ <h4 id=the-external-interface><span class=secno>7.5.2 </span>The <code><a href=#external>External</a></code> interface</h4>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-external title=dom-external><code>external</code></dfn>
+ attribute of the <code><a href=#window>Window</a></code> interface must return an
+ instance of the <code><a href=#external>External</a></code> interface. The same object
+ must be returned each time.</p>
+
+ </div>
+
+ <pre class=idl>interface <dfn id=external>External</dfn> {
+ void <a href=#dom-external-addsearchprovider title=dom-external-AddSearchProvider>AddSearchProvider</a>(DOMString engineURL);
+ unsigned long <a href=#dom-external-issearchproviderinstalled title=dom-external-IsSearchProviderInstalled>IsSearchProviderInstalled</a>(DOMString engineURL);
+};</pre>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-external><a href=#dom-external>external</a></code> . <code title=dom-external-AddSearchProvider><a href=#dom-external-addsearchprovider>AddSearchProvider</a></code>( <var title="">url</var> )</dt>
+ <dd>
+
+ <p>Adds the search engine described by the OpenSearch description
+ document at <var title="">url</var>. <a href=#refsOPENSEARCH>[OPENSEARCH]</a></p>
+
+ <p>The OpenSearch description document has to be on the same
+ server as the script that calls this method.</p>
+
+ </dd>
+
+ <dt><var title="">installed</var> = <var title="">window</var> . <code title=dom-external><a href=#dom-external>external</a></code> . <code title=dom-external-IsSearchProviderInstalled><a href=#dom-external-issearchproviderinstalled>IsSearchProviderInstalled</a></code>( <var title="">url</var> )</dt>
+ <dd>
+
+ <p>Returns a value based on comparing <var title="">url</var> to
+ the URLs of the results pages of the installed search engines.</p>
+
+ <dl><dt>0 <dd>None of the installed search engines match <var title="">url</var>.
+ <dt>1 <dd>One or more installed search engines match <var title="">url</var>, but none are the user's default search engine.
+ <dt>2 <dd>The user's default search engine matches <var title="">url</var>.
+ </dl><p>The <var title="">url</var> is compared to the URLs of the
+ results pages of the installed search engines using a prefix
+ match. Only results pages on the same domain as the script that
+ calls this method are checked.</p>
+
+ </dd>
+
+ </dl><p class=note>Another way of exposing search engines using
+ OpenSearch description documents is using a <code><a href=#the-link-element>link</a></code>
+ element with the <code title=rel-search><a href=#link-type-search>search</a></code> link
+ type.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-external-addsearchprovider title=dom-external-AddSearchProvider><code>AddSearchProvider()</code></dfn>
+ method, when invoked, must run the following steps:</p>
+
+ <ol><li><p>Optionally, abort these steps. User agents may implement
+ the method as a stub method that never does anything, or may
+ arbitrarily ignore invocations with particular arguments for
+ security, privacy, or usability reasons.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of the
+ method's first argument relative to the <a href=#entry-script>entry
+ script</a>'s <a href="#script's-base-url" title="script's base URL">base
+ URL</a>.</li>
+
+ <li><p>If this fails, abort these steps.</li>
+
+ <li><p>Process the resulting <a href=#absolute-url>absolute URL</a> as the
+ <a href=#url>URL</a> to an OpenSearch description document. <a href=#refsOPENSEARCH>[OPENSEARCH]</a></li>
+
+ </ol><p>The <dfn id=dom-external-issearchproviderinstalled title=dom-external-IsSearchProviderInstalled><code>IsSearchProviderInstalled()</code></dfn>
+ method, when invoked, must run the following steps:</p>
+
+ <ol><li><p>Optionally, return 0 and abort these steps. User agents may
+ implement the method as a stub method that never returns a
+ non-zero value, or may arbitrarily ignore invocations with
+ particular arguments for security, privacy, or usability
+ reasons.</li>
+
+ <li><p>If the <a href=#origin>origin</a> of the <a href=#entry-script>entry script</a>
+ is an opaque identifier (i.e. it has no host component), then
+ return 0 and abort these steps.</li>
+
+ <li><p>Let <var title="">host1</var> be the host component of the
+ <a href=#origin>origin</a> of the <a href=#entry-script>entry script</a>.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the <var title="">scriptURL</var> argument relative to the <a href=#entry-script>entry
+ script</a>'s <a href="#script's-base-url" title="script's base URL">base
+ URL</a>.</li>
+
+ <li><p>If this fails, return 0 and abort these steps.</li>
+
+ <li><p>Let <var title="">host2</var> be be the <a href=#url-host title=url-host>&lt;host&gt;</a> component of the resulting
+ <a href=#absolute-url>absolute URL</a>.</li>
+
+ <li>
+
+ <p>If the longest suffix in the Public Suffix List that matches
+ the end of <var title="">host1</var> is different than the
+ longest suffix in the Public Suffix List that matches the end of
+ <var title="">host2</var>, then return 0 and abort these steps.
+ <a href=#refsPSL>[PSL]</a></p>
+
+ <p>If the next domain component of <var title="">host1</var> and
+ <var title="">host2</var> after their common suffix are not the
+ same, then return 0 and abort these steps.</p>
+
+ <p>Domain labels must be compared after applying the IDNA ToASCII
+ algorithm to them, with both the AllowUnassigned and
+ UseSTD3ASCIIRules flags set, in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner. <a href=#refsRFC3490>[RFC3490]</a></p>
+
+ </li>
+
+ <li><p>Let <var title="">search engines</var> be the list of
+ search engines known by the user agent and made available to the
+ user by the user agent for which the resulting <a href=#absolute-url>absolute
+ URL</a> is a <a href=#prefix-match>prefix match</a> of the search engine's
+ <a href=#url>URL</a>, if any. For search engines registered using
+ OpenSearch description documents, the <a href=#url>URL</a> of the
+ search engine corresponds to the URL given in a <code title="">Url</code> element whose <code title="">rel</code>
+ attribute is "<code title="">results</code>" (the default). <a href=#refsOPENSEARCH>[OPENSEARCH]</a></li>
+
+ <li><p>If <var title="">search engines</var> is empty, return 0
+ and abort these steps.</li>
+
+ <li><p>If the user's default search engine (as determined by the
+ user agent) is one of the search engines in <var title="">search
+ engines</var>, then return 2 and abort these steps.</li>
+
+ <li><p>Return 1.</li>
+
+ </ol></div>
+
+
+
+ <h2 id=editing><span class=secno>8 </span><dfn>User interaction</dfn></h2>
+
+
+ <h3 id=the-hidden-attribute><span class=secno>8.1 </span>The <dfn title=attr-hidden><code>hidden</code></dfn> attribute</h3>
+
+ <p>All <a href=#html-elements>HTML elements</a> may have the <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> content attribute set. The <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute is a <a href=#boolean-attribute>boolean
+ attribute</a>. When specified on an element, it indicates that
+ the element is not yet, or is no longer, relevant. <span class=impl>User agents should not render elements that have the
+ <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute
+ specified.</span></p>
+
+ <div class=example>
+
+ <p>In the following skeletal example, the attribute is used to hide
+ the Web game's main screen until the user logs in:</p>
+
+ <pre> &lt;h1&gt;The Example Game&lt;/h1&gt;
+ &lt;section id="login"&gt;
+ &lt;h2&gt;Login&lt;/h2&gt;
+ &lt;form&gt;
+ ...
+ &lt;!-- calls login() once the user's credentials have been checked --&gt;
+ &lt;/form&gt;
+ &lt;script&gt;
+ function login() {
+ // switch screens
+ document.getElementById('login').hidden = true;
+ document.getElementById('game').hidden = false;
+ }
+ &lt;/script&gt;
+ &lt;/section&gt;
+ &lt;section id="game" hidden&gt;
+ ...
+ &lt;/section&gt;</pre>
+
+ </div>
+
+ <p>The <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute must not be
+ used to hide content that could legitimately be shown in another
+ presentation. For example, it is incorrect to use <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> to hide panels in a tabbed dialog,
+ because the tabbed interface is merely a kind of overflow
+ presentation &mdash; one could equally well just show all the form
+ controls in one big page with a scrollbar. It is similarly incorrect
+ to use this attribute to hide content just from one presentation
+ &mdash; if something is marked <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code>, it is hidden from all
+ presentations, including, for instance, screen readers.</p>
+
+ <!-- for example, "<a hidden href=#content>Skip to content</a>" would be inappropriate. -->
+ <!-- (but only add that example if you first add some more good valid examples -->
+
+ <p>Elements that are not <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code>
+ should not link to or refer to elements that are <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code>.</p>
+
+ <div class=example>
+
+ <p>For example, it would be incorrect to use the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute to link to a
+ section marked with the <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code>
+ attribute. If the content is not applicable or relevant, then there
+ is no reason to link to it.</p>
+
+ <p>It would similarly be incorrect to use the ARIA <code title=attr-aria-describedby>aria-describedby</code> attribute to
+ refer to descriptions that are themselves <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code>. Hiding a section means that it
+ is not applicable or relevant to anyone at the current time, so
+ clearly it cannot be a valid description of content the user can
+ interact with.</p>
+
+ </div>
+
+ <p>Elements in a section hidden by the <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute are still active,
+ e.g. scripts and form controls in such sections still execute
+ and submit respectively. Only their presentation to the user
+ changes.</p>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-hidden title=dom-hidden><code>hidden</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ </div>
+
+
+
+ <h3 id=activation><span class=secno>8.2 </span>Activation</h3>
+
+ <!-- v2 idea: HTMLImageElement.click(x, y); or clickPoint(), if
+ click() can't be done in IE; can this be emulated in IE by
+ posting a synthetic mouse click event with those X and Y
+ coords? (ack Csaba Gabor)
+ -->
+
+ <dl class=domintro><dt><var title="">element</var> . <code title=dom-click><a href=#dom-click>click</a></code>()</dt>
+
+ <dd>
+
+ <p>Acts as if the element was clicked.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>Each element has a <var title="">click in progress</var> flag,
+ initially set to false.</p>
+
+ <p>The <dfn id=dom-click title=dom-click><code>click()</code></dfn> method must
+ run these steps:</p>
+
+ <ol><li><p>If the element's <var title="">click in progress</var> flag
+ is set to true, then abort these steps.</li>
+
+ <li><p>Set the <var title="">click in progress</var> flag on the
+ element to true.</li>
+
+ <li><p>If the element has a defined <a href=#activation-behavior>activation behavior</a>,
+ <a href=#run-synthetic-click-activation-steps>run synthetic click activation steps</a> on the
+ element. Otherwise, <a href=#fire-a-click-event>fire a <code>click</code> event</a> at
+ the element.</li>
+
+ <li><p>Set the <var title="">click in progress</var> flag on the
+ element to false.</li>
+
+ </ol></div>
+
+
+ <h3 id=focus><span class=secno>8.3 </span>Focus</h3>
+
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%20%0A...%3Cform%3E%3Cinput%20name%3Da%20onfocus%3D%22value%2B%3D1%3Bd.name%3D%27a%27%3Bname%3D%27d%27%3Bb.focus()%22%3E%0A%3Cinput%20name%3Db%20onfocus%3D%22value%2B%3D1%3Bc.focus()%22%3E%0A%3Cinput%20name%3Dc%20onfocus%3D%22value%2B%3D1%3Bd.focus()%22%3E%0A%3Cinput%20name%3Dd%20onfocus%3D%22value%2B%3D1%3Ba.focus()%22%3E -->
+
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A...%3Cform%3E%0A%3Ctextarea%20name%3Dt%20cols%3D100%20rows%3D3%3E%3C%2Ftextarea%3E%3Cp%3E%0A%3Cinput%20name%3Da%20onfocus%3D%22t.value%2B%3D%27af1%20%27%3Bb.focus()%3Balert(document.activeElement.name)%3Bt.value%2B%3D%27af2%20%27%3B%22%20onblur%3D%22t.value%2B%3D%27ab%20%27%3B%22%3E%0A%3Cinput%20name%3Db%20onfocus%3D%22t.value%2B%3D%27bf1%20%27%3Bc.focus()%3Bt.value%2B%3D%27bf2%20%27%3B%22%20onblur%3D%22t.value%2B%3D%27bb%20%27%3B%22%3E%0A%3Cinput%20name%3Dc%20onfocus%3D%22t.value%2B%3D%27cf1%20%27%3Bc.focus()%3Bt.value%2B%3D%27cf2%20%27%3B%22%20onblur%3D%22t.value%2B%3D%27cb%20%27%3B%22%3E%0A -->
+
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%3Cbody%20onload%3D%22document.forms%5B0%5D.a.focus()%22%3E%0A...%3Cform%3E%0A%3Ctextarea%20name%3Dt%20cols%3D100%20rows%3D3%3E%3C%2Ftextarea%3E%3Cp%3E%0A%3Cinput%20name%3Da%20onblur%3D%22t.value%2B%3D'ab%20'%3B%20b.focus()%3B%22%3E%0A%3Cinput%20name%3Db%20onfocus%3D%22t.value%2B%3D'bf1%20'%3Ba.focus()%3Bt.value%2B%3D'bf2%20'%3B%22%20onblur%3D%22t.value%2B%3D'bb%20'%3B%22%3E -->
+
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%3Cbody%3E...%3Cform%3E%0A%3Ctextarea%20name%3Dt%20cols%3D100%20rows%3D3%3E%3C%2Ftextarea%3E%3Cp%3E%0A%3Cinput%20name%3Da%20onfocus%3D%22t.value%2B%3D%27af%20%27%3B%22%20onblur%3D%22t.value%2B%3D%27ab1%20%27%3Bb.focus()%3Bt.value%2B%3D%27ab2%20%27%3B%22%3E%0A%3Cinput%20name%3Db%20onfocus%3D%22t.value%2B%3D%27bf1%20%27%3Ba.focus()%3Bt.value%2B%3D%27bf2%20%27%3B%22%20onblur%3D%22t.value%2B%3D%27bb%20%27%3B%22%3E -->
+
+ <!-- v2: more things to define, if no other specs define them:
+ - define onfocus/onblur behaviour for Window
+ - Other things to look at are IE's focus APIs (HTMLElement.setActive(),
+ onBeforeActivate, onActivate, onBeforeDeactivate, onDeactivate):
+ https://bugzilla.mozilla.org/show_bug.cgi?id=296471
+ https://bugzilla.mozilla.org/show_bug.cgi?id=296469
+ http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/setactive.asp
+ http://msdn.microsoft.com/workshop/author/dhtml/reference/events/onbeforeactivate.asp
+ -->
+
+ <div class=impl>
+
+ <p>When an element is <i>focused</i>, key events received by the
+ document must be targeted at that element. There may be no element
+ focused; when no element is focused, key events received by the
+ document must be targeted at <a href=#the-body-element-0>the body element</a>.</p>
+
+ <p>User agents may track focus for each <a href=#browsing-context>browsing
+ context</a> or <code><a href=#document>Document</a></code> individually, or may support
+ only one focused element per <a href=#top-level-browsing-context>top-level browsing context</a>
+ &mdash; user agents should follow platform conventions in this
+ regard.</p>
+
+ <p>Which elements within a <a href=#top-level-browsing-context>top-level browsing context</a>
+ currently have focus must be independent of whether or not the
+ <a href=#top-level-browsing-context>top-level browsing context</a> itself has the <i>system
+ focus</i>.</p>
+
+ <p class=note>When an element is focused, the element matches the
+ CSS <code>:focus</code> pseudo-class.</p>
+
+ </div>
+
+
+ <h4 id=sequential-focus-navigation-and-the-tabindex-attribute><span class=secno>8.3.1 </span>Sequential focus navigation and the <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute</h4>
+
+ <p>The <dfn id=attr-tabindex title=attr-tabindex><code>tabindex</code></dfn>
+ content attribute specifies whether the element is focusable,
+ whether it can be reached using sequential focus navigation, and the
+ relative order of the element for the purposes of sequential focus
+ navigation. The name "tab index" comes from the common use of the
+ "tab" key to navigate through the focusable elements. The term
+ "tabbing" refers to moving forward through the focusable elements
+ that can be reached using sequential focus navigation.</p>
+
+ <p>The <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute, if
+ specified, must have a value that is a <a href=#valid-integer>valid
+ integer</a>.</p>
+
+ <div class=impl>
+
+ <p>If the attribute is specified, it must be parsed using the
+ <a href=#rules-for-parsing-integers>rules for parsing integers</a>. The attribute's values have
+ the following meanings:</p>
+
+ <dl><dt>If the attribute is omitted or parsing the value returns an
+ error</dt>
+
+ <dd>
+
+ <p>The user agent should follow platform conventions to determine if
+ the element is to be focusable and, if so, whether the element can
+ be reached using sequential focus navigation, and if so, what its
+ relative order should be.</p>
+
+ </dd>
+
+ <dt id=negative-tabindex>If the value is a negative integer</dt>
+
+ <dd>
+
+ <p>The user agent must allow the element to be focused, but should
+ not allow the element to be reached using sequential focus
+ navigation.</p>
+
+ </dd>
+
+ <dt>If the value is a zero</dt>
+
+ <dd>
+
+ <p>The user agent must allow the element to be focused, should
+ allow the element to be reached using sequential focus navigation,
+ and should follow platform conventions to determine the element's
+ relative order.</p>
+
+ </dd>
+
+ <dt>If the value is greater than zero</dt>
+
+ <dd>
+
+ <p>The user agent must allow the element to be focused, should
+ allow the element to be reached using sequential focus navigation,
+ and should place the element in the sequential focus navigation
+ order so that it is:</p>
+
+ <ul><li>before any focusable element whose <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute has been
+ omitted or whose value, when parsed, returns an error,</li>
+
+ <li>before any focusable element whose <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute has a value equal
+ to or less than zero,</li>
+
+ <li>after any element whose <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute has a value
+ greater than zero but less than the value of the <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute on the
+ element,</li>
+
+ <li>after any element whose <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute has a value equal
+ to the value of the <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code>
+ attribute on the element but that is earlier in the document in
+ <a href=#tree-order>tree order</a> than the element,</li>
+
+ <li>before any element whose <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute has a value equal
+ to the value of the <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code>
+ attribute on the element but that is later in the document in
+ <a href=#tree-order>tree order</a> than the element, and</li>
+
+ <li>before any element whose <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute has a value
+ greater than the value of the <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute on the
+ element.</li>
+
+ </ul></dd>
+
+ </dl><p>An element is <dfn id=specially-focusable>specially focusable</dfn> if the <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute's definition above
+ defines the element to be focusable.</p>
+
+ <p>An element that is <a href=#specially-focusable>specially focusable</a> but does not
+ otherwise have an <a href=#activation-behavior>activation behavior</a> defined has an
+ <a href=#activation-behavior>activation behavior</a> that does nothing.</p>
+
+ <p class=note>This means that an element that is only focusable
+ because of its <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> attribute
+ will fire a <code title=event-click><a href=#event-click>click</a></code> event in response
+ to a non-mouse activation (e.g. hitting the "enter" key while the
+ element is focused).</p>
+
+ <p>The <dfn id=dom-tabindex title=dom-tabIndex><code>tabIndex</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the value of the <code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code> content attribute. Its default
+ value is 0 for elements that are focusable and &minus;1 for
+ elements that are not focusable.</p>
+
+ </div>
+
+
+
+ <div class=impl>
+
+ <h4 id=focus-management><span class=secno>8.3.2 </span>Focus management</h4>
+
+ <p>An element is <dfn id=focusable>focusable</dfn> if the user agent's default
+ behavior allows it to be focusable or if the element is
+ <a href=#specially-focusable>specially focusable</a>, but only if the element is either
+ <a href=#being-rendered>being rendered</a> or <!-- CANVAS-FOCUS-FALLBACK --> is a
+ descendant of a <code><a href=#the-canvas-element>canvas</a></code> element that
+ <a href=#represents>represents</a> <a href=#embedded-content>embedded content</a>.</p>
+
+ <p>User agents should make the following elements
+ <a href=#focusable>focusable</a>, unless platform conventions dictate
+ otherwise:</p>
+
+ <ul><li><code><a href=#the-a-element>a</a></code> elements that have an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute</li>
+
+ <li><code><a href=#the-link-element>link</a></code> elements that have an <code title=attr-link-href><a href=#attr-link-href>href</a></code> attribute</li>
+
+ <li><code><a href=#the-button-element>button</a></code> elements that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute are not in the
+ <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state and that
+ are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-select-element>select</a></code> elements that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-textarea-element>textarea</a></code> elements that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
+
+ <li><code><a href=#the-command-element>command</a></code> elements that do not have a <code title=attr-command-disabled><a href=#attr-command-disabled>disabled</a></code> attribute</li>
+
+ <li>Elements with a <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code>
+ attribute set, if that would enable the user agent to allow the
+ user to begin a drag operations for those elements without the use
+ of a pointing device</li>
+
+ <li><a href=#editing-host title="editing host">Editing hosts</a></li>
+
+ </ul><p>In addition, each shape that is generated for an
+ <code><a href=#the-area-element>area</a></code> element should be <a href=#focusable>focusable</a>, unless
+ platform conventions dictate otherwise. (A single <code><a href=#the-area-element>area</a></code>
+ element can correspond to multiple shapes, since image maps can be
+ reused with multiple images on a page.)</p>
+
+ <p>The user agent may also make part of a <code><a href=#the-details-element>details</a></code>
+ element's rendering focusable, to enable the element to be opened or
+ closed using keyboard input. However, this is distinct from the
+ <code><a href=#the-details-element>details</a></code> or <code><a href=#the-summary-element>summary</a></code> element being
+ focusable.</p>
+
+ <hr><p>The <dfn id=focusing-steps>focusing steps</dfn> are as follows:</p>
+
+ <ol><li><p>If the element is not <a href=#in-a-document title="in a Document">in a
+ <code>Document</code></a>, or if the element's
+ <code><a href=#document>Document</a></code> has no <a href=#browsing-context>browsing context</a>, or if
+ the element's <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a>
+ has no <a href=#top-level-browsing-context>top-level browsing context</a>, then abort these
+ steps.</p>
+
+ <li><p>If focusing the element will remove the focus from another
+ element, then run the <a href=#unfocusing-steps>unfocusing steps</a> for that
+ element.</li>
+
+ <li>
+
+ <p>Make the element the currently focused element in its
+ <a href=#top-level-browsing-context>top-level browsing context</a>.</p>
+
+ <p>Some elements, most notably <code><a href=#the-area-element>area</a></code>, can correspond
+ to more than one distinct focusable area. If a particular area was
+ indicated when the element was focused, then that is the area that
+ must get focus; otherwise, e.g. when using the <code title=dom-focus><a href=#dom-focus>focus()</a></code> method, the first such region in
+ tree order is the one that must be focused.</p>
+
+ </li>
+
+ <li>
+
+ <p>The user agent may apply relevant platform-specific conventions
+ for focusing widgets.</p>
+
+ <p class=note>For example, some platforms select the contents of
+ a text field when that field is focused.</p>
+
+ </li>
+
+ <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-focus>focus</code> at the element.</li>
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/723 -->
+
+ </ol><p>User agents must synchronously run the <a href=#focusing-steps>focusing
+ steps</a> for an element whenever the user moves the focus to a
+ <a href=#focusable>focusable</a> element.</p>
+
+ <p>The <dfn id=unfocusing-steps>unfocusing steps</dfn> are as follows:</p>
+
+ <ol><li><p>If the element is an <code><a href=#the-input-element>input</a></code> element, and the
+ <code title=event-input-change><a href=#event-input-change>change</a></code> event applies to the
+ element, and the element does not have a defined <a href=#activation-behavior>activation
+ behavior</a>, and the user has changed the element's <a href=#concept-fe-value title=concept-fe-value>value</a> or its list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>
+ while the control was focused without committing that change, then
+ <a href=#fire-a-simple-event>fire a simple event</a> that bubbles named <code title=event-change>change</code> at the element.</p>
+
+ <li><p>Unfocus the element.</li>
+
+ <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-blur>blur</code> at the element.</li>
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/723 -->
+
+ </ol><p>When an element that is focused stops being a
+ <a href=#focusable>focusable</a> element, or stops being focused without
+ another element being explicitly focused in its stead, the user
+ agent should synchronously run the <a href=#focusing-steps>focusing steps</a> for
+ <a href=#the-body-element-0>the body element</a>, if there is one; if there is not,
+ then the user agent should synchronously run the <a href=#unfocusing-steps>unfocusing
+ steps</a> for the affected element only.</p>
+
+ <p class=example>For example, this might happen because the
+ element is removed from its <code><a href=#document>Document</a></code>, or has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute added. It would also
+ happen to an <code><a href=#the-input-element>input</a></code> element when the element gets <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>.</p>
+
+ </div>
+
+
+ <h4 id=document-level-focus-apis><span class=secno>8.3.3 </span>Document-level focus APIs</h4>
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-activeElement><a href=#dom-document-activeelement>activeElement</a></code></dt>
+
+ <dd>
+
+ <p>Returns the currently focused element.</p>
+
+ </dd>
+
+ <dt><var title="">document</var> . <code title=dom-document-hasFocus><a href=#dom-document-hasfocus>hasFocus</a></code>()</dt>
+
+ <dd>
+
+ <p>Returns true if the document has focus; otherwise, returns false.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-window-focus><a href=#dom-window-focus>focus</a></code>()</dt>
+
+ <dd>
+
+ <p>Focuses the window. Use of this method is discouraged. Allow the user to control window focus instead.</p>
+
+ </dd>
+
+ <dt><var title="">window</var> . <code title=dom-window-blur><a href=#dom-window-blur>blur</a></code>()</dt>
+
+ <dd>
+
+ <p>Unfocuses the window. Use of this method is discouraged. Allow the user to control window focus instead.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-document-activeelement title=dom-document-activeElement><code>activeElement</code></dfn>
+ attribute on <code><a href=#htmldocument>HTMLDocument</a></code> objects must return the
+ element in the document that is focused. If no element in the
+ <code><a href=#document>Document</a></code> is focused, this must return <a href=#the-body-element-0>the body
+ element</a>.</p>
+
+ <p>The <dfn id=dom-document-hasfocus title=dom-document-hasFocus><code>hasFocus()</code></dfn> method
+ on <code><a href=#htmldocument>HTMLDocument</a></code> objects must return true if the
+ <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> is focused,
+ and all its <a href=#ancestor-browsing-context title="ancestor browsing context">ancestor
+ browsing contexts</a> are also focused, and the <a href=#top-level-browsing-context>top-level
+ browsing context</a> has the <i>system focus</i>. If the
+ <code><a href=#document>Document</a></code> has no <a href=#browsing-context>browsing context</a> or if its
+ <a href=#browsing-context>browsing context</a> has no <a href=#top-level-browsing-context>top-level browsing
+ context</a>, then the method will always return false.</p>
+
+ <p>The <dfn id=dom-window-focus title=dom-window-focus><code>focus()</code></dfn>
+ method on the <code><a href=#window>Window</a></code> object, when invoked, provides a
+ hint to the user agent that the script believes the user might be
+ interested in the contents of the <a href=#browsing-context>browsing context</a> of
+ the <code><a href=#window>Window</a></code> object on which the method was invoked.</p>
+
+ <p>User agents are encouraged to have this <code title=dom-window-focus><a href=#dom-window-focus>focus()</a></code> method trigger some kind of
+ notification.</p>
+
+ <p>The <dfn id=dom-window-blur title=dom-window-blur><code>blur()</code></dfn> method
+ on the <code><a href=#window>Window</a></code> object, when invoked, provides a hint to
+ the user agent that the script believes the user probably is not
+ currently interested in the contents of the <a href=#browsing-context>browsing
+ context</a> of the <code><a href=#window>Window</a></code> object on which the method
+ was invoked, but that the contents might become interesting again in
+ the future.</p>
+
+ <p>User agents are encouraged to ignore calls to this <code title=dom-window-blur><a href=#dom-window-blur>blur()</a></code> method entirely.</p>
+
+ <p class=note>Historically the <code title=dom-window-blur><a href=#dom-window-blur>focus()</a></code> and <code title=dom-window-blur><a href=#dom-window-blur>blur()</a></code> methods actually affected the
+ system focus, but hostile sites widely abuse this behavior to the
+ user's detriment.</p>
+
+ </div>
+
+
+ <h4 id=element-level-focus-apis><span class=secno>8.3.4 </span>Element-level focus APIs</h4>
+
+ <dl class=domintro><dt><var title="">element</var> . <code title=dom-focus><a href=#dom-focus>focus</a></code>()</dt>
+
+ <dd>
+
+ <p>Focuses the element.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-blur><a href=#dom-blur>blur</a></code>()</dt>
+
+ <dd>
+
+ <p>Unfocuses the element. Use of this method is discouraged. Focus
+ another element instead.</p>
+
+ <p>Do not use this method to hide the focus ring if you find the
+ focus ring unsightly. Instead, use a CSS rule to override the
+ 'outline' property. (Be aware, however, that this makes the page
+ significantly less usable for some people, especially those with
+ reduced vision who use focus outlines to help them navigate the
+ page.)</p>
+
+ <div class=example>
+
+ <p>For example, to hide the outline from links, you could use:</p>
+
+ <pre>:link:focus, :visited:focus { outline: none; }</pre>
+
+ </div>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-focus title=dom-focus><code>focus()</code></dfn> method,
+ when invoked, must run the following algorithm:</p>
+
+ <ol><li><p>If the element is marked as <i><a href=#locked-for-focus>locked for focus</a></i>, then abort
+ these steps.</li>
+
+ <li><p>If the element is not <a href=#focusable>focusable</a>, then abort these
+ steps.</li>
+
+ <li><p>Mark the element as <dfn id=locked-for-focus>locked for focus</dfn>.</li>
+
+ <li><p>If the element is not already focused, run the <a href=#focusing-steps>focusing
+ steps</a> for the element.</li>
+
+ <li><p>Unmark the element as <i><a href=#locked-for-focus>locked for focus</a></i>.</li>
+
+ </ol><p>The <dfn id=dom-blur title=dom-blur><code>blur()</code></dfn> method, when
+ invoked, should run the <a href=#focusing-steps>focusing steps</a> for <a href=#the-body-element-0>the
+ body element</a>, if there is one; if there is not, then it
+ should run the <a href=#unfocusing-steps>unfocusing steps</a> for the element on
+ which the method was called instead. User agents may selectively or
+ uniformly ignore calls to this method for usability reasons.</p>
+
+ <p class=example>For example, if the <code title=dom-blur><a href=#dom-blur>blur()</a></code> method is unwisely being used to
+ remove the focus ring for aesthetics reasons, the page would become
+ unusable by keyboard users. Ignoring calls to this method would thus
+ allow keyboard users to interact with the page.</p>
+
+ </div>
+
+
+
+
+ <h3 id=assigning-keyboard-shortcuts><span class=secno>8.4 </span>Assigning keyboard shortcuts</h3>
+
+ <h4 id=introduction-8><span class=secno>8.4.1 </span>Introduction</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Each element that can be activated or focused can be assigned a
+ single key combination to activate it, using the <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code> attribute.</p>
+
+ <p>The exact shortcut is determined by the user agent, based on
+ information about the user's keyboard, what keyboard shortcuts
+ already exist on the platform, and what other shortcuts have been
+ specified on the page, using the information provided in the <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code> attribute as a guide.</p>
+
+ <p>In order to ensure that a relevant keyboard shortcut is available
+ on a wide variety of input devices, the author can provide a number
+ of alternatives in the <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code>
+ attribute.</p>
+
+ <p>Each alternative consists of a single character, such as a letter
+ or digit.</p>
+
+ <p>User agents can provide users with a list of the keyboard
+ shortcuts, but authors are encouraged to do so also. The <code title=dom-accessKeyLabel><a href=#dom-accesskeylabel>accessKeyLabel</a></code> IDL attribute
+ returns a string representing the actual key combination assigned by
+ the user agent.</p>
+
+
+ <h4 id=the-accesskey-attribute><span class=secno>8.4.2 </span>The <dfn title=attr-accesskey><code>accesskey</code></dfn> attribute</h4>
+
+ <p>All <a href=#html-elements>HTML elements</a> may have the <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code> content attribute set. The
+ <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code> attribute's value is
+ used by the user agent as a guide for creating a keyboard shortcut
+ that activates or focuses the element.</p>
+
+ <p>If specified, the value must be an <a href=#ordered-set-of-unique-space-separated-tokens>ordered set of unique
+ space-separated tokens</a> that are <a href=#case-sensitive>case-sensitive</a>,
+ each of which must be exactly one Unicode code point in length.</p>
+
+ <div class=example>
+
+ <p>In the following example, a variety of links are given with
+ access keys so that keyboard users familiar with the site can
+ more quickly navigate to the relevant pages:</p>
+
+ <pre>&lt;nav&gt;
+ &lt;p&gt;
+ &lt;a title="Consortium Activities" accesskey="A" href="/Consortium/activities"&gt;Activities&lt;/a&gt; |
+ &lt;a title="Technical Reports and Recommendations" accesskey="T" href="/TR/"&gt;Technical Reports&lt;/a&gt; |
+ &lt;a title="Alphabetical Site Index" accesskey="S" href="/Consortium/siteindex"&gt;Site Index&lt;/a&gt; |
+ &lt;a title="About This Site" accesskey="B" href="/Consortium/"&gt;About Consortium&lt;/a&gt; |
+ &lt;a title="Contact Consortium" accesskey="C" href="/Consortium/contact"&gt;Contact&lt;/a&gt;
+ &lt;/p&gt;
+&lt;/nav&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, the search field is given two possible
+ access keys, "s" and "0" (in that order). A user agent on a device
+ with a full keyboard might pick
+ <kbd><kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>S</kbd></kbd> as the
+ shortcut key, while a user agent on a small device with just a
+ numeric keypad might pick just the plain unadorned key
+ <kbd><kbd>0</kbd></kbd>:</p>
+
+ <pre>&lt;form action="/search"&gt;
+ &lt;label&gt;Search: &lt;input type="search" name="q" accesskey="s 0"&gt;&lt;/label&gt;
+ &lt;input type="submit"&gt;
+&lt;/form&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>In the following example, a button has possible access keys
+ described. A script then tries to update the button's label to
+ advertise the key combination the user agent selected.</p>
+
+ <pre>&lt;input type=submit accesskey="N @ 1" value="Compose"&gt;
+...
+&lt;script&gt;
+ function labelButton(button) {
+ if (button.accessKeyLabel)
+ button.value += ' (' + button.accessKeyLabel + ')';
+ }
+ var inputs = document.getElementsByTagName('input');
+ for (var i = 0; i &lt; inputs.length; i += 1) {
+ if (inputs[i].type == "submit")
+ labelButton(inputs[i]);
+ }
+&lt;/script&gt;</pre>
+
+ <p>On one user agent, the button's label might become
+ "<samp>Compose (&#8984;N)</samp>". On another, it might become
+ "<samp>Compose (Alt+&#8679;+1)</samp>". If the user agent doesn't
+ assign a key, it will be just "<samp>Compose</samp>". The exact
+ string depends on what the <a href=#assigned-access-key>assigned access key</a> is, and
+ on how the user agent represents that key combination.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=processing-model-3><span class=secno>8.4.3 </span>Processing model</h4>
+
+ <p>An element's <dfn id=assigned-access-key>assigned access key</dfn> is a key combination
+ derived from the element's <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code> content attribute.
+ Initially, an element must not have an <a href=#assigned-access-key>assigned access
+ key</a>.</p>
+
+ <p>Whenever an element's <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code> attribute is set, changed,
+ or removed, the user agent must update the element's <a href=#assigned-access-key>assigned
+ access key</a> by running the following steps:</p>
+
+ <ol><li><p>If the element has no <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code> attribute, then skip to the
+ <i>fallback</i> step below.</li>
+
+ <li><p>Otherwise, <a href=#split-a-string-on-spaces title="split a string on spaces">split the
+ attribute's value on spaces</a>, and let <var title="">keys</var> be the resulting tokens.</li>
+
+ <li>
+
+ <p>For each value in <var title="">keys</var> in turn, in the
+ order the tokens appeared in the attribute's value, run the
+ following substeps:</p>
+
+ <ol><li><p>If the value is not a string exactly one Unicode code
+ point in length, then skip the remainder of these steps for this
+ value.</li>
+
+ <li><p>If the value does not correspond to a key on the system's
+ keyboard, then skip the remainder of these steps for this
+ value.</li>
+
+ <li><p>If the user agent can find a mix of zero or more modifier
+ keys that, combined with the key that corresponds to the value
+ given in the attribute, can be used as the access key, then the
+ user agent may assign that combination of keys as the element's
+ <a href=#assigned-access-key>assigned access key</a> and abort these steps.</li>
+
+ </ol></li>
+
+ <li><p><i>Fallback</i>: Optionally, the user agent may assign a key
+ combination of its choosing as the element's <a href=#assigned-access-key>assigned access
+ key</a> and then abort these steps.</li>
+
+ <li><p>If this step is reached, the element has no <a href=#assigned-access-key>assigned
+ access key</a>.</li>
+
+ </ol><p>Once a user agent has selected and assigned an access key for an
+ element, the user agent should not change the element's
+ <a href=#assigned-access-key>assigned access key</a> unless the <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code> content attribute is changed
+ or the element is moved to another <code><a href=#document>Document</a></code>.</p>
+
+ <p>When the user presses the key combination corresponding to the
+ <a href=#assigned-access-key>assigned access key</a> for an element, if the element
+ <a href=#concept-command title=concept-command>defines a command</a>, the
+ command's <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden
+ State</a> facet is false (visible), the command's <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> facet is
+ also false (enabled), and the element is <a href=#in-a-document>in a
+ <code>Document</code></a>, then the user agent must trigger the
+ <a href=#command-facet-action title=command-facet-Action>Action</a> of the command.</p>
+
+ <p class=note>User agents might expose elements that have an <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code> attribute in other ways as
+ well, e.g. in a menu displayed in response to a specific key
+ combination.</p> <!-- the actual conformance criteria for this is in
+ the section that defines commands -->
+
+ <hr><p>The <dfn id=dom-accesskey title=dom-accessKey><code>accessKey</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-accesskey><a href=#the-accesskey-attribute>accesskey</a></code> content attribute.</p>
+
+ <p>The <dfn id=dom-accesskeylabel title=dom-accessKeyLabel><code>accessKeyLabel</code></dfn> IDL
+ attribute must return a string that represents the element's
+ <a href=#assigned-access-key>assigned access key</a>, if any. If the element does not
+ have one, then the IDL attribute must return the empty string.</p>
+
+ </div>
+
+
+
+ <h3 id=editing-0><span class=secno>8.5 </span>Editing</h3>
+
+ <h4 id=contenteditable><span class=secno>8.5.1 </span>Making document regions editable: The <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> content
+ attribute</h4>
+
+ <p>The <dfn id=attr-contenteditable title=attr-contenteditable><code>contenteditable</code></dfn>
+ attribute is an <a href=#enumerated-attribute>enumerated attribute</a> whose keywords are
+ the empty string, <code title="">true</code>, and <code title="">false</code>. The empty string and the <code title="">true</code> keyword map to the <i>true</i> state. The <code title="">false</code> keyword maps to the <i>false</i> state. In
+ addition, there is a third state, the <i>inherit</i> state, which is
+ the <i>missing value default</i> (and the <i>invalid value
+ default</i>).</p>
+
+ <p>The <i>true</i> state indicates that the element is editable. The
+ <i>inherit</i> state indicates that the element is editable if its
+ parent is. The <i>false</i> state indicates that the element is not
+ editable.</p>
+
+ <dl class=domintro><dt><var title="">element</var> . <code title=dom-contentEditable><a href=#dom-contenteditable>contentEditable</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns "<code title="">true</code>", "<code title="">false</code>", or "<code title="">inherit</code>", based
+ on the state of the <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute.</p>
+
+ <p>Can be set, to change that state.</p>
+
+ <p>Throws a <code><a href=#syntaxerror>SyntaxError</a></code> exception if the new value
+ isn't one of those strings.</p>
+
+ </dd>
+
+ <dt><var title="">element</var> . <code title=dom-isContentEditable><a href=#dom-iscontenteditable>isContentEditable</a></code></dt>
+
+ <dd>
+
+ <p>Returns true if the element is editable; otherwise, returns false.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-contenteditable title=dom-contentEditable><code>contentEditable</code></dfn> IDL
+ attribute, on getting, must return the string "<code title="">true</code>" if the content attribute is set to the true
+ state, "<code title="">false</code>" if the content attribute is set
+ to the false state, and "<code title="">inherit</code>"
+ otherwise. On setting, if the new value is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">inherit</code>" then the content attribute must be removed,
+ if the new value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for
+ the string "<code title="">true</code>" then the content attribute
+ must be set to the string "<code title="">true</code>", if the new
+ value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string
+ "<code title="">false</code>" then the content attribute must be set
+ to the string "<code title="">false</code>", and otherwise the
+ attribute setter must throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception.</p>
+
+ <p>The <dfn id=dom-iscontenteditable title=dom-isContentEditable><code>isContentEditable</code></dfn>
+ IDL attribute, on getting, must return true if the element is either
+ an <a href=#editing-host>editing host</a> or <a href=#editable>editable</a>, and false
+ otherwise.</p>
+
+ </div>
+
+
+ <h4 id=making-entire-documents-editable:-the-designmode-idl-attribute><span class=secno>8.5.2 </span>Making entire documents editable: The <code title=dom-document-designMode><a href=#designMode>designMode</a></code> IDL attribute</h4>
+
+ <div class=impl>
+
+ <p>Documents have a <dfn id=designMode title=dom-document-designMode><code>designMode</code></dfn>, which
+ can be either enabled or disabled.</p>
+
+ </div>
+
+ <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-designMode><a href=#designMode>designMode</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns "<code title="">on</code>" if the document is editable,
+ and "<code title="">off</code>" if it isn't.</p>
+
+ <p>Can be set, to change the document's current state.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <code title=dom-document-designMode><a href=#designMode>designMode</a></code> IDL
+ attribute on the <code><a href=#document>Document</a></code> object takes two values,
+ "<code title="">on</code>" and "<code title="">off</code>". When it
+ is set, the new value must be compared in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner to these two values. If it matches
+ the "<code title="">on</code>" value, then <code title=dom-document-designMode><a href=#designMode>designMode</a></code> must be enabled,
+ and if it matches the "<code title="">off</code>" value, then <code title=dom-document-designMode><a href=#designMode>designMode</a></code> must be
+ disabled. Other values must be ignored.</p>
+
+ <p>When <code title=dom-document-designMode><a href=#designMode>designMode</a></code> is
+ enabled, the IDL attribute must return the value "<code title="">on</code>", and when it is disabled, it must return the
+ value "<code title="">off</code>".</p>
+
+ <p>The last state set must persist until the document is destroyed
+ or the state is changed. Initially, documents must have their <code title=dom-document-designMode><a href=#designMode>designMode</a></code> disabled.</p>
+
+ </div>
+
+
+ <h4 id=best-practices-for-in-page-editors><span class=secno>8.5.3 </span>Best practices for in-page editors</h4>
+
+ <p>Authors are encouraged to set the 'white-space' property on <a href=#editing-host title="editing host">editing hosts</a> and on markup that was
+ originally created through these editing mechanisms to the value
+ 'pre-wrap'. Default HTML whitespace handling is not well suited to
+ WYSIWYG editing, and line wrapping will not work correctly in some
+ corner cases if 'white-space' is left at its default value.</p>
+
+ <div class=example>
+
+ <p>As an example of problems that occur if the default 'normal'
+ value is used instead, consider the case of the user typing
+ "<kbd>yellow&#9251;&#9251;ball</kbd>", with two spaces (here
+ represented by "&#9251;") between the words. With the editing
+ rules in place for the default value of 'white-space' ('normal'),
+ the resulting markup will either consist of
+ "<samp>yellow&amp;nbsp;&nbsp;ball</samp>" or
+ "<samp>yellow&nbsp;&amp;nbsp;ball</samp>"; i.e., there will be a
+ non-breaking space between the two words in addition to the regular
+ space. This is necessary because the 'normal' value for
+ 'white-space' requires adjacent regular spaces to be collapsed
+ together.</p>
+
+ <p>In the former case, "<samp>yellow&#9085;</samp>" might wrap to
+ the next line ("&#9085;" being used here to represent a
+ non-breaking space) even though "<samp>yellow</samp>" alone might
+ fit at the end of the line; in the latter case,
+ "<samp>&#9085;ball</samp>", if wrapped to the start of the line,
+ would have visible indentation from the non-breaking space.</p>
+
+ <p>When 'white-space' is set to 'pre-wrap', however, the editing
+ rules will instead simply put two regular spaces between the words,
+ and should the two words be split at the end of a line, the spaces
+ would be neatly removed from the rendering.</p>
+
+ </div>
+
+
+
+ <h4 id=editing-apis><span class=secno>8.5.4 </span>Editing APIs</h4>
+
+ <p>The definition of the terms <dfn id=active-range>active range</dfn>, <dfn id=editing-host>editing
+ host</dfn>, and <dfn id=editable>editable</dfn>, the user interface requirements
+ of elements that are <a href=#editing-host title="editing host">editing hosts</a>
+ or <a href=#editable>editable</a>, and the
+
+ <dfn id=execCommand title=dom-document-execCommand><code>execCommand()</code></dfn>,
+ <dfn id=dom-document-querycommandenabled title=dom-document-queryCommandEnabled><code>queryCommandEnabled()</code></dfn>,
+ <dfn id=dom-document-querycommandindeterm title=dom-document-queryCommandIndeterm><code>queryCommandIndeterm()</code></dfn>,
+ <dfn id=dom-document-querycommandstate title=dom-document-queryCommandState><code>queryCommandState()</code></dfn>,
+ <dfn id=dom-document-querycommandsupported title=dom-document-queryCommandSupported><code>queryCommandSupported()</code></dfn>, and
+ <dfn id=dom-document-querycommandvalue title=dom-document-queryCommandValue><code>queryCommandValue()</code></dfn>
+
+ methods are defined in the HTML Editing APIs specification. Text
+ selections are defined in the DOM Range specification. The
+ interaction of editing and the undo/redo features in user agents is
+ defined by the UndoManager and DOM Transaction specification. <a href=#refsEDITING>[EDITING]</a> <a href=#refsDOMRANGE>[DOMRANGE]</a> <a href=#refsUNDO>[UNDO]</a></p>
+
+ <p class=XXX><dfn id=undo-transaction-history>undo transaction history</dfn> is currently
+ defined in <a href=#refsUNDO>[UNDO]</a> but this spec hasn't been
+ updated to make sense with the new definition</p>
+
+ <!-- those might get merged in here eventually -->
+
+
+
+ <h4 id=spelling-and-grammar-checking><span class=secno>8.5.5 </span>Spelling and grammar checking</h4>
+
+ <div class=impl>
+
+ <p>User agents can support the checking of spelling and grammar of
+ editable text, either in form controls (such as the value of
+ <code><a href=#the-textarea-element>textarea</a></code> elements), or in elements in an <a href=#editing-host>editing
+ host</a> (e.g. using <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code>).</p>
+
+ <p>For each element, user agents must establish a <dfn id=concept-spellcheck-default title=concept-spellcheck-default>default behavior</dfn>, either
+ through defaults or through preferences expressed by the user. There
+ are three possible default behaviors for each element:</p>
+
+ <dl><dt><dfn id=concept-spellcheck-default-true title=concept-spellcheck-default-true>true-by-default</dfn>
+
+ <dd>The element will be checked for spelling and grammar if its
+ contents are editable.
+
+ <dt><dfn id=concept-spellcheck-default-false title=concept-spellcheck-default-false>false-by-default</dfn>
+
+ <dd>The element will never be checked for spelling and grammar.
+
+ <dt><dfn id=concept-spellcheck-default-inherit title=concept-spellcheck-default-inherit>inherit-by-default</dfn>
+
+ <dd>The element's default behavior is the same as its parent
+ element's. Elements that have no parent element cannot have this as
+ their default behavior.
+
+ </dl><hr></div>
+
+ <p>The <dfn id=attr-spellcheck title=attr-spellcheck><code>spellcheck</code></dfn>
+ attribute is an <a href=#enumerated-attribute>enumerated attribute</a> whose keywords are
+ the empty string, <code title="">true</code> and <code title="">false</code>. The empty string and the <code title="">true</code> keyword map to the <i>true</i> state. The <code title="">false</code> keyword maps to the <i>false</i> state. In
+ addition, there is a third state, the <i>default</i> state, which is
+ the <i>missing value default</i> (and the <i>invalid value
+ default</i>).</p>
+
+ <p class=note>The <i>true</i> state indicates that the element is
+ to have its spelling and grammar checked. The <i>default</i> state
+ indicates that the element is to act according to a default
+ behavior, possibly based on the parent element's own <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> state, as defined below.
+ The <i>false</i> state indicates that the element is not to be
+ checked.</p>
+
+ <div class=impl>
+
+ <hr></div>
+
+ <dl class=domintro><dt><var title="">element</var> . <code title=dom-spellcheck><a href=#dom-spellcheck>spellcheck</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns true if the element is to have its spelling and grammar
+ checked; otherwise, returns false.</p>
+
+ <p>Can be set, to override the default and set the <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-spellcheck title=dom-spellcheck><code>spellcheck</code></dfn> IDL
+ attribute, on getting, must return true if the element's <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute is in
+ the <i>true</i> state, or if the element's <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute is in
+ the <i>default</i> state and the element's <a href=#concept-spellcheck-default title=concept-spellcheck-default>default behavior</a> is <a href=#concept-spellcheck-default-true title=concept-spellcheck-default-true>true-by-default</a>, or
+ if the element's <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code>
+ content attribute is in the <i>default</i> state and the element's
+ <a href=#concept-spellcheck-default title=concept-spellcheck-default>default behavior</a> is
+ <a href=#concept-spellcheck-default-inherit title=concept-spellcheck-default-inherit>inherit-by-default</a>
+ and the element's parent element's <code title=dom-spellcheck><a href=#dom-spellcheck>spellcheck</a></code> IDL attribute would return
+ true; otherwise, if none of those conditions applies, then the
+ attribute must instead return false.</p>
+
+ <p class=note>The <code title=dom-spellcheck><a href=#dom-spellcheck>spellcheck</a></code>
+ IDL attribute is not affected by user preferences that override the
+ <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute,
+ and therefore might not reflect the actual spellchecking state.</p>
+
+ <p>On setting, if the new value is true, then the element's <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute must be
+ set to the literal string "<code title="">true</code>", otherwise it
+ must be set to the literal string "<code title="">false</code>".
+
+ <hr><p>User agents must only consider the following pieces of text as
+ checkable for the purposes of this feature:</p>
+
+ <ul><li>The value of <code><a href=#the-input-element>input</a></code> elements to which the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute applies,
+ whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attributes are not
+ in the <a href=#password-state title=attr-input-type-password>Password</a>
+ state, and that are not <i title=concept-input-immutable><a href=#concept-input-immutable>immutable</a></i> (i.e. that do not
+ have the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>
+ attribute specified and that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>).</li>
+
+ <li>The value of <code><a href=#the-textarea-element>textarea</a></code> elements that do not have a
+ <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code> attribute and
+ that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>.</li>
+
+ <li>Text in <a href=#text-node title="text node">text nodes</a> that are
+ children of <a href=#editing-host title="editing host">editing hosts</a> or
+ <a href=#editable>editable</a> elements.</li>
+
+ <li>Text in attributes of <a href=#editable>editable</a> elements.</li>
+
+ </ul><p>For text that is part of a <a href=#text-node>text node</a>, the element
+ with which the text is associated is the element that is the
+ immediate parent of the first character of the word, sentence, or
+ other piece of text. For text in attributes, it is the attribute's
+ element. For the values of <code><a href=#the-input-element>input</a></code> and
+ <code><a href=#the-textarea-element>textarea</a></code> elements, it is the element itself.</p>
+
+ <p>To determine if a word, sentence, or other piece of text in an
+ applicable element (as defined above) is to have spelling- and/or
+ grammar-checking enabled, the UA must use the following
+ algorithm:</p>
+
+ <ol><!-- user override --><li>If the user has disabled the checking for this text, then the
+ checking is disabled.</li>
+
+ <li>Otherwise, if the user has forced the checking for this text to
+ always be enabled, then the checking is enabled.</li>
+
+ <!-- content attribute: on, off -->
+
+ <li>Otherwise, if the element with which the text is associated has
+ a <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content
+ attribute, then: if that attribute is in the <i>true</i> state,
+ then checking is enabled; otherwise, if that attribute is in the
+ <i>false</i> state, then checking is disabled.</li>
+
+ <!-- inherit, if there is one to inherit from -->
+
+ <li>Otherwise, if there is an ancestor element with a <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute that is
+ not in the <i>default</i> state, then: if the nearest such
+ ancestor's <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content
+ attribute is in the <i>true</i> state, then checking is enabled;
+ otherwise, checking is disabled.</li>
+
+ <!-- default -->
+
+ <li>Otherwise, if the element's <a href=#concept-spellcheck-default title=concept-spellcheck-default>default behavior</a> is <a href=#concept-spellcheck-default-true title=concept-spellcheck-default-true>true-by-default</a>,
+ then checking is enabled.</li>
+
+ <li>Otherwise, if the element's <a href=#concept-spellcheck-default title=concept-spellcheck-default>default behavior</a> is <a href=#concept-spellcheck-default-false title=concept-spellcheck-default-false>false-by-default</a>,
+ then checking is disabled.</li>
+
+ <!-- default inheritance -->
+
+ <li>Otherwise, if the element's parent element has <em>its</em>
+ checking enabled, then checking is enabled.</li>
+
+ <li>Otherwise, checking is disabled.</li>
+
+ </ol><p>If the checking is enabled for a word/sentence/text, the user
+ agent should indicate spelling and/or grammar errors in that
+ text. User agents should take into account the other semantics given
+ in the document when suggesting spelling and grammar
+ corrections. User agents may use the language of the element to
+ determine what spelling and grammar rules to use, or may use the
+ user's preferred language settings. UAs should use
+ <code><a href=#the-input-element>input</a></code> element attributes such as <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code> to ensure that the
+ resulting value is valid, where possible.</p>
+
+ <p>If checking is disabled, the user agent should not indicate
+ spelling or grammar errors for that text.</p>
+
+ <div class=example>
+
+ <p>The element with ID "a" in the following example would be the
+ one used to determine if the word "Hello" is checked for spelling
+ errors. In this example, it would not be.</p>
+
+ <pre>&lt;div contenteditable="true"&gt;
+ &lt;span spellcheck="false" id="a"&gt;Hell&lt;/span&gt;&lt;em&gt;o!&lt;/em&gt;
+&lt;/div&gt;</pre>
+
+ <p>The element with ID "b" in the following example would have
+ checking enabled (the leading space character in the attribute's
+ value on the <code><a href=#the-input-element>input</a></code> element causes the attribute to be
+ ignored, so the ancestor's value is used instead, regardless of the
+ default).</p>
+
+ <pre>&lt;p spellcheck="true"&gt;
+ &lt;label&gt;Name: &lt;input spellcheck=" false" id="b"&gt;&lt;/label&gt;
+&lt;/p&gt;</pre>
+
+ </div>
+
+ </div>
+
+ <p class=note>This specification does not define the user
+ interface for spelling and grammar checkers. A user agent could
+ offer on-demand checking, could perform continuous checking while
+ the checking is enabled, or could use other interfaces.</p>
+
+
+ <h3 id=dnd><span class=secno>8.6 </span><dfn>Drag and drop</dfn></h3>
+
+<!-- v2: ideas for drag and drop:
+
+ * being able to animate a drop target:
+
+ > To implement this with simple interface I've proposed, events
+ > should be handled either by existing elements (like list
+ > items that compare their size and position of dragged element
+ > to decide whether element should be dropped before or after)
+ > or handled by container that would probably need to calculate
+ > positions of it's children and create new element to show
+ > drop target. Smooth Mac-like drag'n'drop can be implemented
+ > by animating drop target's padding/margin. So that's quite a
+ > bit of code that's going to be reinvented each time someone
+ > implements reordering.
+
+ <hyatt> :droptarget
+ <hyatt> or something
+ <hyatt> we don't support a pseudo-class for the drop target but that's a great idea
+ <Hixie_> yeah, thinking about that too
+ <Hixie_> :drop-target, :drop-target(above), :drop-target(below) and having ondragover be able to say "not on me, but next to me maybe"
+
+ - some way to be able to match an element that is being dragged over.
+
+ - some way to be able to animate an element as it goes into and out of
+ this state (CSS transitions?), e.g. to be able to animate something
+ "getting out of the way" to let you drop an item between others.
+
+ - as an extension to the previous feature, a way to distinguish being
+ dragged above or to the left of the drag target vs below or to the
+ right of the drag target.
+
+ * We should let drop targets communicate back to drag sources if
+ they want to communicate. (e.g. expose Window, and thus
+ postMessage(), on the dataTransfer object on drop.)
+ Or maybe just use a MessagePort!
+
+ We should let drag sources provide a set of options via a
+ context menu when the drop happens. (So that, e.g., the source
+ can know whether a capabilities URI that it is passing along is
+ supposed to be read-write access or read-only access to the
+ object being dragged.)
+
+ We should let potential drop targets see the types (but not the
+ contents!) of dragged data so they can establish if they care
+ or not. (dataTransfer.hasType())
+
+ Ack: Ben Laurie (@g)
+
+ * Interop with native apps. In particular, we probably want to
+ whitelist the list of types that a Web page can see, since
+ otherwise we'll end up exposing things like the username (if a
+ user drags a file from their desktop, the path is exposed on
+ some OSes).
+
+ Other things listed below:
+ DND-v2: more native support: text/html from selections, etc
+ DND-v3: add Blob support
+ DND-v4: add structured clone support
+ DND-v5: add promises (should be able to say "if you accept this
+ drop, then I can provide the File object that
+ corresponds to it eventually")
+
+ DataTransferPromise.type = 'string' or 'file' or 'blob' or 'data'
+ .onneeddata - can wait until this fires to provide data
+ .setData() - call this once you have data, must be the right type
+
+-->
+
+ <p>This section defines an event-based drag-and-drop mechanism.</p>
+
+ <p>This specification does not define exactly what a
+ <em>drag-and-drop operation</em> actually is.</p>
+
+ <p>On a visual medium with a pointing device, a drag operation could
+ be the default action of a <code title=event-mousedown>mousedown</code> event that is followed by a
+ series of <code title=event-mousemove>mousemove</code> events, and
+ the drop could be triggered by the mouse being released.</p>
+
+ <p>When using an input modality other than a pointing device, users
+ would probably have to explicitly indicate their intention to
+ perform a drag-and-drop operation, stating what they wish to drag
+ and where they wish to drop it, respectively.</p>
+
+ <div class=impl>
+
+ <p>However it is implemented, drag-and-drop operations must have a
+ starting point (e.g. where the mouse was clicked, or the start of
+ the selection or element that was selected for the drag), may have
+ any number of intermediate steps (elements that the mouse moves over
+ during a drag, or elements that the user picks as possible drop
+ points as he cycles through possibilities), and must either have an
+ end point (the element above which the mouse button was released, or
+ the element that was finally selected), or be canceled. The end
+ point must be the last element selected as a possible drop point
+ before the drop occurs (so if the operation is not canceled, there
+ must be at least one element in the middle step).</p>
+
+ </div>
+
+
+ <h4 id=introduction-9><span class=secno>8.6.1 </span>Introduction</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>To make an element draggable is simple: give the element a <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> attribute, and set an event
+ listener for <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code> that
+ stores the data being dragged.</p>
+
+ <p>The event handler typically needs to check that it's not a text
+ selection that is being dragged, and then needs to store data into
+ the <code><a href=#datatransfer>DataTransfer</a></code> object and set the allowed effects
+ (copy, move, link, or some combination).</p>
+
+ <p>For example:</p>
+
+ <pre>&lt;p&gt;What fruits do you like?&lt;/p&gt;
+&lt;ol ondragstart="dragStartHandler(event)"&gt;
+ &lt;li draggable="true" data-value="fruit-apple"&gt;Apples&lt;/li&gt;
+ &lt;li draggable="true" data-value="fruit-orange"&gt;Oranges&lt;/li&gt;
+ &lt;li draggable="true" data-value="fruit-pear"&gt;Pears&lt;/li&gt;
+&lt;/ol&gt;
+&lt;script&gt;
+ var internalDNDType = 'text/x-example'; // set this to something specific to your site
+ function dragStartHandler(event) {
+ if (event.target instanceof HTMLLIElement) {
+ // use the element's data-value="" attribute as the value to be moving:
+ event.dataTransfer.setData(internalDNDType, event.target.dataset.value);
+ event.dataTransfer.effectAllowed = 'move'; // only allow moves
+ } else {
+ event.preventDefault(); // don't allow selection to be dragged
+ }
+ }
+&lt;/script&gt;</pre>
+
+ <hr><p>To accept a drop, the drop target has to have a <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute and listen to the
+ <code title=drop-event>drop</code> event.</p>
+
+ <p>The value of the <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code>
+ attribute specifies what kind of data to accept (e.g. "<code title="">s:text/plain</code>" to accept any text strings, or
+ "<code>f:image/png</code>" to accept a PNG image file) and what kind
+ of feedback to give (e.g. "<code>move</code>" to indicate that the
+ data will be moved).</p>
+
+ <p class=note>Instead of using the <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute, a drop target can
+ handle the <code title=event-dragenter><a href=#event-dragenter>dragenter</a></code> event (to
+ report whether or not the drop target is to accept the drop) and the
+ <code title=event-dragover><a href=#event-dragover>dragover</a></code> event (to specify what
+ feedback is to be shown to the user).</p>
+
+ <p>The <code title=event-drop><a href=#event-drop>drop</a></code> event allows the actual
+ drop to be performed. This event needs to be canceled, so that the
+ <code title=dom-DataTransfer-DropEffect><a href=#dom-datatransfer-dropeffect>dropEffect</a></code>
+ attribute's value can be used by the source (otherwise it's
+ reset).</p>
+
+ <p>For example:</p>
+
+ <pre>&lt;p&gt;Drop your favorite fruits below:&lt;/p&gt;
+&lt;ol dropzone="move s:text/x-example" ondrop="dropHandler(event)"&gt;
+ &lt;-- don't forget to change the "text/x-example" type to something
+ specific to your site --&gt;
+&lt;/ol&gt;
+&lt;script&gt;
+ var internalDNDType = 'text/x-example'; // set this to something specific to your site
+ function dropHandler(event) {
+ var li = document.createElement('li');
+ var data = event.dataTransfer.getData(internalDNDType);
+ if (data == 'fruit-apple') {
+ li.textContent = 'Apples';
+ } else if (data == 'fruit-orange') {
+ li.textContent = 'Oranges';
+ } else if (data == 'fruit-pear') {
+ li.textContent = 'Pears';
+ } else {
+ li.textContent = 'Unknown Fruit';
+ }
+ event.target.appendChild(li);
+ }
+&lt;/script&gt;</pre>
+
+ <hr><p>To remove the original element (the one that was dragged) from
+ the display, the <code title=event-dragend><a href=#event-dragend>dragend</a></code> event
+ can be used.</p>
+
+ <p>For our example here, that means updating the original markup to
+ handle that event:</p>
+
+ <pre>&lt;p&gt;What fruits do you like?&lt;/p&gt;
+&lt;ol ondragstart="dragStartHandler(event)" ondragend="dragEndHandler(event)"&gt;
+ <em>...as before...</em>
+&lt;/ol&gt;
+&lt;script&gt;
+ function dragStartHandler(event) {
+ // <em>...as before...</em>
+ }
+ function dragEndHandler(event) {
+ // remove the dragged element
+ event.target.parentNode.removeChild(event.target);
+ }
+&lt;/script&gt;</pre>
+
+
+
+ <h4 id=the-drag-data-store><span class=secno>8.6.2 </span>The drag data store</h4>
+
+ <p>The data that underlies a drag-and-drop operation, known as the
+ <dfn id=drag-data-store>drag data store</dfn>, consists of the following information:</p>
+
+ <ul><li><p>A <dfn id=drag-data-store-item-list>drag data store item list</dfn>, which is a list of
+ items representing the dragged data, each consisting of the
+ following information:</p>
+
+ <dl><dt><dfn id=the-drag-data-item-kind>The drag data item kind</dfn></dt>
+
+ <dd>
+
+ <p>The kind of data:</p>
+
+ <dl><dt><i>Plain Unicode string</i></dt>
+ <dd>
+ <p>Text.</p>
+ </dd>
+
+<!-- DND-v3:
+ <dt><i title="">Blob</i></dt>
+ <dd>
+ <p>Binary data.</p>
+ </dd>
+-->
+
+ <dt><i title="">File</i></dt>
+ <dd>
+ <p>Binary data with a file name.</p>
+ </dd>
+
+<!-- DND-v4:
+ <dt><i>Structured object</i></dt>
+ <dd>
+ <p>An object that will be cloned using the <span>structured clone</span> algorithm.</p>
+ </dd>
+-->
+
+ </dl></dd>
+
+ <dt><dfn id=the-drag-data-item-type-string>The drag data item type string</dfn></dt>
+
+ <dd>
+
+ <p>A Unicode string giving the type or format of the data,
+ generally given by a <a href=#mime-type>MIME type</a>. Some values that
+ are not <a href=#mime-type title="MIME type">MIME types</a> are
+ special-cased for legacy reasons. The API does not enforce the
+ use of <a href=#mime-type title="MIME type">MIME types</a>; other values
+ can be used as well. In all cases, however, the values are all
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a> by the API.</p>
+
+ <p class=note>Strings that contain <a href=#space-character title="space
+ character">space characters</a> cannot be used with the <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute, so authors are
+ encouraged to use only <a href=#mime-type title="MIME type">MIME types</a>
+ or custom strings (without spaces).</p>
+
+ <p>There is a limit of one <i>Plain Unicode string</i> item per
+ <a href=#the-drag-data-item-type-string title="The drag data item type string">item type
+ string</a>.</p> <!-- DND-v4: consider limiting the structured
+ objects too -->
+
+ </dd>
+
+ <dt>The actual data</dt>
+
+ <dd><p>A Unicode or binary string, in some cases with a file name
+ (itself a Unicode string), <!-- (DND-v4:) or an object, --> as
+ per <a href=#the-drag-data-item-kind>the drag data item kind</a>.</dd>
+
+ </dl><p>The <a href=#drag-data-store-item-list>drag data store item list</a> is ordered in the
+ order that the items were added to the list; most recently added
+ last.</p>
+
+ </li>
+
+ <li>
+
+ <p>The following information, used to generate the UI feedback
+ during the drag:</p>
+
+ <ul><li>User-agent-defined default feedback information, known as the
+ <dfn id=drag-data-store-default-feedback>drag data store default feedback</dfn>.</li>
+
+ <li>A list of zero or more elements known as the <dfn id=drag-data-store-elements-list>drag data
+ store elements list</dfn>.</li>
+
+ <li>Optionally, a bitmap image and the coordinate of a point
+ within that image, known as the <dfn id=drag-data-store-bitmap>drag data store bitmap</dfn>
+ and <dfn id=drag-data-store-hot-spot-coordinate>drag data store hot spot coordinate</dfn>.</li>
+
+ </ul></li>
+
+ <li>
+
+ <p>A <dfn id=drag-data-store-mode>drag data store mode</dfn>, which is one of the
+ following:</p>
+
+ <dl><dt><dfn id=concept-dnd-rw title=concept-dnd-rw>Read/write mode</dfn></dt>
+ <dd>
+
+ <p>For the <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code> event.
+ New data can be added to the <a href=#drag-data-store>drag data store</a>.</p>
+
+ </dd>
+
+ <dt><dfn id=concept-dnd-ro title=concept-dnd-ro>Read-only mode</dfn></dt>
+ <dd>
+
+ <p>For the <code title=event-drop><a href=#event-drop>drop</a></code> event. The list of
+ items representing dragged data can be read, including the data.
+ No new data can be added.</p>
+
+ </dd>
+
+ <dt><dfn id=concept-dnd-p title=concept-dnd-p>Protected mode</dfn></dt>
+ <dd>
+
+ <p>For all other events. The formats and kinds in the <a href=#drag-data-store>drag
+ data store</a> list of items representing dragged data can be
+ enumerated, but the data itself is unavailable and no new data can
+ be added.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li>
+
+ <p>A <dfn id=drag-data-store-allowed-effects-state>drag data store allowed effects state</dfn>, which is a
+ string.</p>
+
+ </li>
+
+ </ul><p>When a <a href=#drag-data-store>drag data store</a> is <dfn id=create-a-drag-data-store title="create a drag
+ data store">created</dfn>, it must be initialized such that its
+ <a href=#drag-data-store-item-list>drag data store item list</a> is empty, it has no
+ <a href=#drag-data-store-default-feedback>drag data store default feedback</a>, its <a href=#drag-data-store-elements-list>drag data
+ store elements list</a> is empty, it has no <a href=#drag-data-store-bitmap>drag data store
+ bitmap</a> / <a href=#drag-data-store-hot-spot-coordinate>drag data store hot spot coordinate</a>,
+ its <a href=#drag-data-store-mode>drag data store mode</a> is <a href=#concept-dnd-p title=concept-dnd-p>protected mode</a>, and its <a href=#drag-data-store-allowed-effects-state>drag data
+ store allowed effects state</a> is the string "<code title="">uninitialized</code>".</p>
+
+
+ <h4 id=the-datatransfer-interface><span class=secno>8.6.3 </span>The <code><a href=#datatransfer>DataTransfer</a></code> interface</h4>
+
+ <p><code><a href=#datatransfer>DataTransfer</a></code> objects are used to expose the
+ <a href=#drag-data-store>drag data store</a> that underlies a drag-and-drop
+ operation.</p>
+
+ <pre class=idl>interface <dfn id=datatransfer>DataTransfer</dfn> {
+ attribute DOMString <a href=#dom-datatransfer-dropeffect title=dom-DataTransfer-dropEffect>dropEffect</a>;
+ attribute DOMString <a href=#dom-datatransfer-effectallowed title=dom-DataTransfer-effectAllowed>effectAllowed</a>;
+
+ readonly attribute <a href=#datatransferitemlist>DataTransferItemList</a> <a href=#dom-datatransfer-items title=dom-DataTransfer-items>items</a>;
+
+ void <a href=#dom-datatransfer-setdragimage title=dom-DataTransfer-setDragImage>setDragImage</a>(Element image, long x, long y);
+ void <a href=#dom-datatransfer-addelement title=dom-DataTransfer-addElement>addElement</a>(Element element);
+
+ /* old interface */
+ readonly attribute DOMStringList <a href=#dom-datatransfer-types title=dom-DataTransfer-types>types</a>;
+ DOMString <a href=#dom-datatransfer-getdata title=dom-DataTransfer-getData>getData</a>(DOMString format);
+ void <a href=#dom-datatransfer-setdata title=dom-DataTransfer-setData>setData</a>(DOMString format, DOMString data);
+ void <a href=#dom-datatransfer-cleardata title=dom-DataTransfer-clearData>clearData</a>(optional DOMString format);
+ readonly attribute <a href=#filelist>FileList</a> <a href=#dom-datatransfer-files title=dom-DataTransfer-files>files</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">dataTransfer</var> . <code title=dom-DataTransfer-dropEffect><a href=#dom-datatransfer-dropeffect>dropEffect</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the kind of operation that is currently selected. If
+ the kind of operation isn't one of those that is allowed by the
+ <code title=dom-DataTransfer-effectAllowed><a href=#dom-datatransfer-effectallowed>effectAllowed</a></code>
+ attribute, then the operation will fail.</p>
+
+ <p>Can be set, to change the selected operation.</p>
+
+ <p>The possible values are "<code title="">none</code>", "<code title="">copy</code>", "<code title="">link</code>", and "<code title="">move</code>".</p>
+
+ </dd>
+
+
+ <dt><var title="">dataTransfer</var> . <code title=dom-DataTransfer-effectAllowed><a href=#dom-datatransfer-effectallowed>effectAllowed</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns the kinds of operations that are to be allowed.</p>
+
+ <p>Can be set, to change the allowed operations.</p>
+
+ <p>The possible values are "<code title="">none</code>", "<code title="">copy</code>", "<code title="">copyLink</code>", "<code title="">copyMove</code>", "<code title="">link</code>", "<code title="">linkMove</code>", "<code title="">move</code>", "<code title="">all</code>", and "<code title="">uninitialized</code>",</p>
+
+ </dd>
+
+
+ <dt><var title="">dataTransfer</var> . <code title=dom-DataTransfer-items><a href=#dom-datatransfer-items>items</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object, with the drag data.</p>
+
+ </dd>
+
+
+ <dt><var title="">dataTransfer</var> . <code title=dom-DataTransfer-setDragImage><a href=#dom-datatransfer-setdragimage>setDragImage</a></code>(<var title="">element</var>, <var title="">x</var>, <var title="">y</var>)</dt>
+
+ <dd>
+
+ <p>Uses the given element to update the drag feedback, replacing any previously specified feedback.</p>
+
+ </dd>
+
+
+ <dt><var title="">dataTransfer</var> . <code title=dom-DataTransfer-addElement><a href=#dom-datatransfer-addelement>addElement</a></code>(<var title="">element</var>)</dt>
+
+ <dd>
+
+ <p>Adds the given element to the list of elements used to render the drag feedback.</p>
+
+ </dd>
+
+
+ <dt><var title="">dataTransfer</var> . <code title=dom-DataTransfer-types><a href=#dom-datatransfer-types>types</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code>DOMStringList</code> listing the formats that
+ were set in the <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code>
+ event. In addition, if any files are being dragged, then one of
+ the types will be the string "<code title="">Files</code>".</p>
+
+ </dd>
+
+
+ <dt><var title="">data</var> = <var title="">dataTransfer</var> . <code title=dom-DataTransfer-getData><a href=#dom-datatransfer-getdata>getData</a></code>(<var title="">format</var>)</dt>
+
+ <dd>
+
+ <p>Returns the specified data. If there is no such data, returns the empty string.</p>
+
+ </dd>
+
+
+ <dt><var title="">dataTransfer</var> . <code title=dom-DataTransfer-setData><a href=#dom-datatransfer-setdata>setData</a></code>(<var title="">format</var>, <var title="">data</var>)</dt>
+
+ <dd>
+
+ <p>Adds the specified data.</p>
+
+ </dd>
+
+
+ <dt><var title="">dataTransfer</var> . <code title=dom-DataTransfer-clearData><a href=#dom-datatransfer-cleardata>clearData</a></code>( [ <var title="">format</var> ] )</dt>
+
+ <dd>
+
+ <p>Removes the data of the specified formats. Removes all data if
+ the argument is omitted.</p>
+
+ </dd>
+
+
+ <dt><var title="">dataTransfer</var> . <code title=dom-DataTransfer-files><a href=#dom-datatransfer-files>files</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#filelist>FileList</a></code> of the files being dragged, if any.</p>
+
+ </dd>
+
+ </dl><p><code><a href=#datatransfer>DataTransfer</a></code> objects are used during the <a href=#dndevents>drag-and-drop events</a>, and are only valid while
+ those events are being fired.</p>
+
+ <div class=impl>
+
+ <p>A <code><a href=#datatransfer>DataTransfer</a></code> object is associated with a
+ <a href=#drag-data-store>drag data store</a> while it is valid.</p>
+
+ <p>The <dfn id=dom-datatransfer-dropeffect title=dom-DataTransfer-dropEffect><code>dropEffect</code></dfn>
+ attribute controls the drag-and-drop feedback that the user is given
+ during a drag-and-drop operation. When the <code><a href=#datatransfer>DataTransfer</a></code>
+ object is created, the <code title=dom-DataTransfer-dropEffect><a href=#dom-datatransfer-dropeffect>dropEffect</a></code> attribute is
+ set to a string value. On getting, it must return its current value.
+ On setting, if the new value is one of "<code title="">none</code>",
+ "<code title="">copy</code>", "<code title="">link</code>", or
+ "<code title="">move</code>", then the attribute's current value
+ must be set to the new value. Other values must be ignored.</p>
+
+ <p>The <dfn id=dom-datatransfer-effectallowed title=dom-DataTransfer-effectAllowed><code>effectAllowed</code></dfn>
+ attribute is used in the drag-and-drop processing model to
+ initialize the <code title=dom-DataTransfer-dropEffect><a href=#dom-datatransfer-dropeffect>dropEffect</a></code> attribute
+ during the <code title=event-dragenter><a href=#event-dragenter>dragenter</a></code> and <code title=event-dragover><a href=#event-dragover>dragover</a></code> events. When the
+ <code><a href=#datatransfer>DataTransfer</a></code> object is created, the <code title=dom-DataTransfer-effectAllowed><a href=#dom-datatransfer-effectallowed>effectAllowed</a></code>
+ attribute is set to a string value. On getting, it must return its
+ current value. On setting, if the new value is one of "<code title="">none</code>", "<code title="">copy</code>", "<code title="">copyLink</code>", "<code title="">copyMove</code>", "<code title="">link</code>", "<code title="">linkMove</code>", "<code title="">move</code>", "<code title="">all</code>", or "<code title="">uninitialized</code>", then the attribute's current value
+ must be set to the new value. Other values must be ignored.</p>
+
+ <p>The <dfn id=dom-datatransfer-items title=dom-DataTransfer-items><code>items</code></dfn>
+ attribute must return a <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object
+ associated with the <code><a href=#datatransfer>DataTransfer</a></code> object. The same
+ object must be returned each time.</p>
+
+ <p>The <dfn id=dom-datatransfer-setdragimage title=dom-DataTransfer-setDragImage><code>setDragImage(<var title="">element</var>, <var title="">x</var>, <var title="">y</var>)</code></dfn> method must run the following
+ steps:</p>
+
+ <ol><li><p>If the <code><a href=#datatransfer>DataTransfer</a></code> object is no longer
+ associated with a <a href=#drag-data-store>drag data store</a>, abort these steps.
+ Nothing happens.</li>
+
+ <li><p>If the <a href=#drag-data-store>drag data store</a>'s <a href=#drag-data-store-mode title="drag data
+ store mode">mode</a> is not in the <a href=#concept-dnd-rw title=concept-dnd-rw>read/write mode</a>, abort these steps.
+ Nothing happens.</li>
+
+ <li><p>If the <var title="">element</var> argument is an
+ <code><a href=#the-img-element>img</a></code> element, then set the <a href=#drag-data-store-bitmap>drag data store
+ bitmap</a> to the element's image (at its intrinsic size);
+ otherwise, set the <a href=#drag-data-store-bitmap>drag data store bitmap</a> to an image
+ generated from the given element (the exact mechanism for doing so
+ is not currently specified).</li>
+
+ <li><p>Set the <a href=#drag-data-store-hot-spot-coordinate>drag data store hot spot coordinate</a> to
+ the given <var title="">x</var>, <var title="">y</var>
+ coordinate.</li>
+
+ </ol><p>The <dfn id=dom-datatransfer-addelement title=dom-DataTransfer-addElement><code>addElement(<var title="">element</var>)</code></dfn> method is an alternative way of
+ specifying how the user agent is to <a href=#base-dnd-feedback>render the drag feedback</a>. The method
+ must run the following steps:</p>
+
+ <ol><li><p>If the <code><a href=#datatransfer>DataTransfer</a></code> object is no longer
+ associated with a <a href=#drag-data-store>drag data store</a>, abort these steps.
+ Nothing happens.</li>
+
+ <li><p>If the <a href=#drag-data-store>drag data store</a>'s <a href=#drag-data-store-mode title="drag data
+ store mode">mode</a> is not in the <a href=#concept-dnd-rw title=concept-dnd-rw>read/write mode</a>, abort these steps.
+ Nothing happens.</li>
+
+ <li><p>Add the given <var title="">element</var> to the element's
+ <a href=#drag-data-store-elements-list>drag data store elements list</a>.</li>
+
+ </ol><p class=note>The difference between <code title=dom-DataTransfer-setDragImage><a href=#dom-datatransfer-setdragimage>setDragImage()</a></code> and
+ <code title=dom-DataTransfer-addElement><a href=#dom-datatransfer-addelement>addElement()</a></code> is
+ that the latter automatically generates the image based on the
+ current rendering of the elements added (potentially keeping it
+ updated as the drag continues, e.g. if the elements include an
+ actively playing video), whereas the former uses the exact specified
+ image at the time the method is invoked.</p>
+
+ <p>The <dfn id=dom-datatransfer-types title=dom-DataTransfer-types><code>types</code></dfn>
+ attribute must return a <a href=#live>live</a> <code>DOMStringList</code>
+ giving the strings that the following steps would produce. The same
+ object must be returned each time.</p>
+
+ <ol><li><p>Start with an empty list <var title="">L</var>.</li>
+
+ <li><p>If the <code><a href=#datatransfer>DataTransfer</a></code> object is no longer
+ associated with a <a href=#drag-data-store>drag data store</a>, the
+ <code>DOMStringList</code> is empty. Abort these steps; return the
+ empty list <var title="">L</var>.</li>
+
+ <li><p>For each item in the <a href=#drag-data-store-item-list>drag data store item list</a>
+ <!-- in some order...? --> whose <a href=#the-drag-data-item-kind title="the drag data item
+ kind">kind</a> is <i>Plain Unicode string</i>, add an entry to
+ the list <var title="">L</var> consisting of the item's <a href=#the-drag-data-item-type-string title="the drag data item type string">type string</a>.</li>
+
+ <li><p>If there are any items in the <a href=#drag-data-store-item-list>drag data store item
+ list</a> whose <a href=#the-drag-data-item-kind title="the drag data item kind">kind</a>
+ is <i><a href=#file>File</a></i>, then add an entry to the list <var title="">L</var>
+ consisting of the string "<code title="">Files</code>". (This value
+ can be distinguished from the other values because it is not
+ lowercase.)</li>
+
+ <!-- <li><p>Sort the list...?</p></li> -->
+
+ <li><p>The strings produced by these steps are those in the list
+ <var title="">L</var>.</li>
+
+ </ol><p>The <dfn id=dom-datatransfer-getdata title=dom-DataTransfer-getData><code>getData(<var title="">format</var>)</code></dfn> method
+ must run the following steps:</p>
+
+ <ol><li><p>If the <code><a href=#datatransfer>DataTransfer</a></code> object is no longer
+ associated with a <a href=#drag-data-store>drag data store</a>, return the empty
+ string and abort these steps.</li>
+
+ <li><p>If the <a href=#drag-data-store>drag data store</a>'s <a href=#drag-data-store-mode title="drag data
+ store mode">mode</a> is in the <a href=#concept-dnd-p title=concept-dnd-p>protected mode</a>, return the empty
+ string and abort these steps.</li>
+
+ <li><p>Let <var title="">format</var> be the first argument,
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
+
+ <li><p>Let <var title="">convert-to-URL</var> be false.</li>
+
+ <li><p>If <var title="">format</var> equals "<code title="">text</code>", change it to "<code title="">text/plain</code>".</li>
+
+ <li><p>If <var title="">format</var> equals "<code title="">url</code>", change it to "<code title="">text/uri-list</code>" and set <var title="">convert-to-URL</var> to true.</li>
+
+ <li><p>If there is no item in the <a href=#drag-data-store-item-list>drag data store item
+ list</a> whose <a href=#the-drag-data-item-kind title="the drag data item kind">kind</a>
+ is <i>Plain Unicode string</i> and whose <a href=#the-drag-data-item-type-string title="the drag data
+ item type string">type string</a> is equal to <var title="">format</var>, return the empty string and abort these
+ steps.</li>
+
+ <li><p>Let <var title="">result</var> be the data of the item
+ in the <a href=#drag-data-store-item-list>drag data store item list</a> whose <a href=#the-drag-data-item-kind title="the drag data item kind">kind</a> is <i>Plain Unicode
+ string</i> and whose <a href=#the-drag-data-item-type-string title="the drag data item type
+ string">type string</a> is equal to <var title="">format</var>.</li>
+
+ <li><p>If <var title="">convert-to-URL</var> is true, then parse
+ <var title="">result</var> as appropriate for <code title="">text/uri-list</code> data, and then set <var title="">result</var> to the first URL from the list, if any, or
+ the empty string otherwise. <a href=#refsRFC2483>[RFC2483]</a></li>
+
+ <li><p>Return <var title="">result</var>.</li>
+
+ </ol><p>The <dfn id=dom-datatransfer-setdata title=dom-DataTransfer-setData><code>setData(<var title="">format</var>, <var title="">data</var>)</code></dfn> method
+ must run the following steps:</p>
+
+ <ol><li><p>If the <code><a href=#datatransfer>DataTransfer</a></code> object is no longer
+ associated with a <a href=#drag-data-store>drag data store</a>, abort these steps.
+ Nothing happens.</li>
+
+ <li><p>If the <a href=#drag-data-store>drag data store</a>'s <a href=#drag-data-store-mode title="drag data
+ store mode">mode</a> is not the <a href=#concept-dnd-rw title=concept-dnd-rw>read/write mode</a>, abort these steps.
+ Nothing happens.</li>
+
+ <li><p>Let <var title="">format</var> be the first argument,
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
+
+ <li>
+
+ <p>If <var title="">format</var> equals "<code title="">text</code>", change it to "<code title="">text/plain</code>".</p>
+
+ <p>If <var title="">format</var> equals "<code title="">url</code>", change it to "<code title="">text/uri-list</code>".</p>
+
+ </li>
+
+ <li><p>Remove the item in the <a href=#drag-data-store-item-list>drag data store item
+ list</a> whose <a href=#the-drag-data-item-kind title="the drag data item kind">kind</a>
+ is <i>Plain Unicode string</i> and whose <a href=#the-drag-data-item-type-string title="the drag data
+ item type string">type string</a> is equal to <var title="">format</var>, if there is one.</li>
+
+ <li><p>Add an item to the <a href=#drag-data-store-item-list>drag data store item list</a>
+ whose <a href=#the-drag-data-item-kind title="the drag data item kind">kind</a> is <i>Plain
+ Unicode string</i>, whose <a href=#the-drag-data-item-type-string title="the drag data item type
+ string">type string</a> is equal to <var title="">format</var>,
+ and whose data is the string given by the method's second
+ argument.</li>
+
+ </ol><p>The <dfn id=dom-datatransfer-cleardata title=dom-DataTransfer-clearData><code>clearData()</code></dfn>
+ method must run the following steps:</p>
+
+ <ol><li><p>If the <code><a href=#datatransfer>DataTransfer</a></code> object is no longer
+ associated with a <a href=#drag-data-store>drag data store</a>, abort these steps.
+ Nothing happens.</li>
+
+ <li><p>If the <a href=#drag-data-store>drag data store</a>'s <a href=#drag-data-store-mode title="drag data
+ store mode">mode</a> is not the <a href=#concept-dnd-rw title=concept-dnd-rw>read/write mode</a>, abort these steps.
+ Nothing happens.</li>
+
+ <li><p>If the method was called with no arguments, remove each item
+ in the <a href=#drag-data-store-item-list>drag data store item list</a> whose <a href=#the-drag-data-item-kind title="the drag data item kind">kind</a> is <i>Plain Unicode
+ string</i>, and abort these steps.</li>
+
+ <li><p>Let <var title="">format</var> be the first argument,
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
+
+ <li>
+
+ <p>If <var title="">format</var> equals "<code title="">text</code>", change it to "<code title="">text/plain</code>".</p>
+
+ <p>If <var title="">format</var> equals "<code title="">url</code>", change it to "<code title="">text/uri-list</code>".</p>
+
+ </li>
+
+ <li><p>Remove the item in the <a href=#drag-data-store-item-list>drag data store item
+ list</a> whose <a href=#the-drag-data-item-kind title="the drag data item kind">kind</a>
+ is <i>Plain Unicode string</i> and whose <a href=#the-drag-data-item-type-string title="the drag data
+ item type string">type string</a> is equal to <var title="">format</var>, if there is one.</li>
+
+ </ol><p class=note>The <code title=dom-DataTransfer-clearData><a href=#dom-datatransfer-cleardata>clearData()</a></code> method does
+ not affect whether any files were included in the drag, so the <code title=dom-DataTransfer-types><a href=#dom-datatransfer-types>types</a></code> attribute's list might
+ still not be empty after calling <code title=dom-DataTransfer-clearData><a href=#dom-datatransfer-cleardata>clearData()</a></code> (it would
+ still contain the "<code title="">Files</code>" string if any files
+ were included in the drag).</p>
+
+ <p>The <dfn id=dom-datatransfer-files title=dom-DataTransfer-files><code>files</code></dfn>
+ attribute must return a <a href=#live>live</a> <code><a href=#filelist>FileList</a></code>
+ sequence consisting of <code><a href=#file>File</a></code> objects representing the
+ files found by the following steps. The same object must be returned
+ each time. Furthermore, for a given <code><a href=#filelist>FileList</a></code> object and
+ a given underlying file, the same <code><a href=#file>File</a></code> object must be
+ used each time.</p>
+
+ <ol><li><p>Start with an empty list <var title="">L</var>.</li>
+
+ <li><p>If the <code><a href=#datatransfer>DataTransfer</a></code> object is no longer
+ associated with a <a href=#drag-data-store>drag data store</a>, the
+ <code><a href=#filelist>FileList</a></code> is empty. Abort these steps; return the
+ empty list <var title="">L</var>.</li>
+
+ <li><p>If the <a href=#drag-data-store>drag data store</a>'s <a href=#drag-data-store-mode title="drag data
+ store mode">mode</a> is in the <a href=#concept-dnd-p title=concept-dnd-p>protected mode</a>, abort these steps;
+ return the empty list <var title="">L</var>.</li>
+
+ <li><p>For each item in the <a href=#drag-data-store-item-list>drag data store item list</a>
+ <!-- in some order...? --> whose <a href=#the-drag-data-item-kind title="the drag data item
+ kind">kind</a> is <i><a href=#file>File</a></i> <!-- DND-v3: (not <i>Blob</i>) -->,
+ add the item's data (the file, in particular its name and contents,
+ as well as its <a href=#the-drag-data-item-type-string title="the drag data item type
+ string">type</a>) to the list <var title="">L</var>.</li>
+
+ <!-- <li><p>Sort the list...?</p></li> -->
+
+ <li><p>The files found by these steps are those in the list <var title="">L</var>.</li>
+
+ </ol><p class=note>This version of the API does not expose the types of
+ the files during the drag.</p>
+
+ </div>
+
+
+ <h5 id=the-datatransferitemlist-interface><span class=secno>8.6.3.1 </span>The <code><a href=#datatransferitemlist>DataTransferItemList</a></code> interface</h5>
+
+ <p>Each <code><a href=#datatransfer>DataTransfer</a></code> object is associated with a
+ <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object.</p>
+
+ <pre class=idl>interface <dfn id=datatransferitemlist>DataTransferItemList</dfn> {
+ readonly attribute unsigned long <a href=#dom-datatransferitemlist-length title=dom-DataTransferItemList-length>length</a>;
+ <a href=#dom-datatransferitemlist-item title=dom-DataTransferItemList-item>getter</a> <a href=#datatransferitem>DataTransferItem</a> (unsigned long index);
+ <a href=#dom-datatransferitemlist-removeitem title=dom-DataTransferItemList-removeItem>deleter</a> void (unsigned long index);
+ void <a href=#dom-datatransferitemlist-clear title=dom-DataTransferItemList-clear>clear</a>();
+
+ <a href=#datatransferitem>DataTransferItem</a>? <a href=#dom-datatransferitemlist-add title=dom-DataTransferItemList-add>add</a>(DOMString data, DOMString type);<!--
+DND-v3: <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(<span>Blob</span> data);-->
+ <a href=#datatransferitem>DataTransferItem</a>? <a href=#dom-datatransferitemlist-add title=dom-DataTransferItemList-add>add</a>(<a href=#file>File</a> data);<!--
+DND-v4: <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(any data, DOMString type);--><!--
+DND-v5: <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(<span>DataTransferPromise</span> data);-->
+};</pre>
+
+ <dl class=domintro><dt><var title="">items</var> . <code title=dom-DataTransferItemList-length><a href=#dom-datatransferitemlist-length>length</a></code></dt>
+
+ <dd><p>Returns the number of items in the <a href=#drag-data-store>drag data store</a>.</dd>
+
+
+ <dt><var title="">items</var>[<var title="">index</var>]</dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#datatransferitem>DataTransferItem</a></code> object representing the <var title="">index</var>th entry in the <a href=#drag-data-store>drag data store</a>.</p>
+
+ </dd>
+
+
+ <dt><code title="">delete</code> <var title="">items</var>[<var title="">index</var>]</dt>
+
+ <dd>
+
+ <p>Removes the <var title="">index</var>th entry in the <a href=#drag-data-store>drag data store</a>.</p>
+
+ </dd>
+
+
+ <dt><var title="">items</var> . <code title=dom-DataTransferItemList-clear><a href=#dom-datatransferitemlist-clear>clear</a></code>()</dt>
+
+ <dd>
+
+ <p>Removes all the entries in the <a href=#drag-data-store>drag data store</a>.</p>
+
+ </dd>
+
+
+ <dt><var title="">items</var> . <code title=dom-DataTransferItemList-add><a href=#dom-datatransferitemlist-add>add</a></code>(<var title="">data</var>)</dt>
+ <dt><var title="">items</var> . <code title=dom-DataTransferItemList-add><a href=#dom-datatransferitemlist-add>add</a></code>(<var title="">data</var>, <var title="">type</var>)</dt>
+
+ <dd>
+
+ <p>Adds a new entry for the given data to the <a href=#drag-data-store>drag data
+ store</a>. If the data is plain text <!-- DND-v4: or an object -->
+ then a <var title="">type</var> string has to be provided
+ also.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>While the <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object's
+ <code><a href=#datatransfer>DataTransfer</a></code> object is associated with a <a href=#drag-data-store>drag
+ data store</a>, the <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object's
+ <i>mode</i> is the same as the <a href=#drag-data-store-mode>drag data store mode</a>.
+ When the <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object's
+ <code><a href=#datatransfer>DataTransfer</a></code> object is <em>not</em> associated with a
+ <a href=#drag-data-store>drag data store</a>, the <code><a href=#datatransferitemlist>DataTransferItemList</a></code>
+ object's <i>mode</i> is the <i>disabled mode</i>. The <a href=#drag-data-store>drag
+ data store</a> referenced in this section (which is used only
+ when the <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object is not in the
+ <i>disabled mode</i>) is the <a href=#drag-data-store>drag data store</a> with which
+ the <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object's
+ <code><a href=#datatransfer>DataTransfer</a></code> object is associated.</p>
+
+ <p>The <dfn id=dom-datatransferitemlist-length title=dom-DataTransferItemList-length><code>length</code></dfn>
+ attribute must return zero if the object is in the <i>disabled
+ mode</i>; otherwise it must return the number of items in the
+ <a href=#drag-data-store-item-list>drag data store item list</a>.</p>
+
+ <p>When a <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object is not in the
+ <i>disabled mode</i>, its <a href=#supported-property-indices>supported property indices</a>
+ are the numbers in the range
+
+ <span title="">0 .. <var title="">n</var>-1</span>,
+
+ where <var title="">n</var> is the number of items in the <a href=#drag-data-store-item-list>drag
+ data store item list</a>.</p>
+
+ <p>To <dfn id=dom-datatransferitemlist-item title=dom-DataTransferItemList-item>determine the value of
+ an indexed property</dfn> <var title="">i</var> of a
+ <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object, the user agent must return a
+ <code><a href=#datatransferitem>DataTransferItem</a></code> object representing the <var title="">i</var>th item in the <a href=#drag-data-store>drag data store</a>. The
+ same object must be returned each time a particular item is obtained
+ from this <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object. The
+ <code><a href=#datatransferitem>DataTransferItem</a></code> object must be associated with the
+ same <code><a href=#datatransfer>DataTransfer</a></code> object as the
+ <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object when it is first created.</p>
+
+ <p>To <dfn id=dom-datatransferitemlist-removeitem title=dom-DataTransferItemList-removeItem>delete an
+ existing indexed property</dfn> <var title="">i</var> of a
+ <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object, the user agent must run these
+ steps:</p>
+
+ <ol><li><p>If the <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object is not in the
+ <i title=concept-dnd-rw><a href=#concept-dnd-rw>read/write mode</a></i>, throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception and abort these
+ steps.</li>
+
+ <li><p>Remove the <var title="">i</var>th item from the <a href=#drag-data-store>drag
+ data store</a>.</li>
+
+ </ol><p>The <dfn id=dom-datatransferitemlist-clear title=dom-DataTransferItemList-clear><code>clear</code></dfn> method,
+ if the <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object is in the <i title=concept-dnd-rw><a href=#concept-dnd-rw>read/write mode</a></i>, must remove all the
+ items from the <a href=#drag-data-store>drag data store</a>. Otherwise, it must do
+ nothing.</p>
+
+ <p>The <dfn id=dom-datatransferitemlist-add title=dom-DataTransferItemList-add><code>add()</code></dfn> method
+ must run the following steps:</p>
+
+ <ol><li><p>If the <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object is not in the
+ <i title=concept-dnd-rw><a href=#concept-dnd-rw>read/write mode</a></i>, return null and
+ abort these steps.</li>
+
+ <li>
+
+ <p>Jump to the appropriate set of steps from the following list:</p>
+
+ <dl class=switch><dt>If the first argument to the method is a string</dt>
+
+ <dd>
+
+ <p>If there is already an item in the <a href=#drag-data-store-item-list>drag data store item
+ list</a> whose <a href=#the-drag-data-item-kind title="the drag data item
+ kind">kind</a> is <i>Plain Unicode string</i> and whose <a href=#the-drag-data-item-type-string title="the drag data item type string">type string</a> is
+ equal to the value of the method's second argument,
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>, then throw a
+ <code><a href=#notsupportederror>NotSupportedError</a></code> exception and abort these
+ steps.</p>
+
+ <p>Otherwise, add an item to the <a href=#drag-data-store-item-list>drag data store item
+ list</a> whose <a href=#the-drag-data-item-kind title="the drag data item
+ kind">kind</a> is <i>Plain Unicode string</i>, whose <a href=#the-drag-data-item-type-string title="the drag data item type string">type string</a> is
+ equal to the value of the method's second argument,
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>, and whose data is the
+ string given by the method's first argument.</p>
+
+ </dd>
+
+<!--DND-v3:
+ <dt>If the first argument to the method is a <code>Blob</code></dt>
+
+ <dd>
+
+ <p>Add an item to the <span>drag data store item list</span>
+ whose <span title="the drag data item kind">kind</span> is
+ <i>Blob</i>, whose <span title="the drag data item type
+ string">type string</span> is the <code
+ title="dom-Blob-type">type</code> of the <code>Blob</code>,
+ <span>converted to ASCII lowercase</span>, and whose data is the
+ same as the <code>Blob</code>'s data.</p>
+
+ </dd>
+-->
+
+ <dt>If the first argument to the method is a <code><a href=#file>File</a></code></dt>
+
+ <dd>
+
+ <p>Add an item to the <a href=#drag-data-store-item-list>drag data store item list</a>
+ whose <a href=#the-drag-data-item-kind title="the drag data item kind">kind</a> is
+ <i><a href=#file>File</a></i>, whose <a href=#the-drag-data-item-type-string title="the drag data item type
+ string">type string</a> is the <code title=dom-Blob-type>type</code> of the <code><a href=#file>File</a></code>,
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>, and whose data is the
+ same as the <code><a href=#file>File</a></code>'s data.</p>
+
+ </dd>
+
+<!--DND-v4: (might want to prevent duplicates like for strings; see above)
+[make sure that the cloning happens before any side-effects can happen]
+ <dt>Otherwise
+
+ <dd>
+
+ <p>Add an item to the <span>drag data store item list</span>
+ whose <span title="the drag data item kind">kind</span> is
+ <i>Object</i>, whose <span title="the drag data item type
+ string">type string</span> is equal to the value of the method's
+ second argument, <span>converted to ASCII lowercase</span>, and
+ whose data is a <span>structured clone</span> of the method's
+ first argument. If creating the clone throws an exception, then
+ throw that exception and abort these steps.</p>
+
+ </dd>
+-->
+
+ </dl></li>
+
+ <li><p><a href=#dom-datatransferitemlist-item title=dom-DataTransferItemList-item>Determine the value
+ of the indexed property</a> corresponding to the newly added
+ item, and return that value (a newly created
+ <code><a href=#datatransferitem>DataTransferItem</a></code> object).</li>
+
+ </ol></div>
+
+
+ <h5 id=the-datatransferitem-interface><span class=secno>8.6.3.2 </span>The <code><a href=#datatransferitem>DataTransferItem</a></code> interface</h5>
+
+ <p>Each <code><a href=#datatransferitem>DataTransferItem</a></code> object is associated with a
+ <code><a href=#datatransfer>DataTransfer</a></code> object.</p>
+
+ <pre class=idl>interface <dfn id=datatransferitem>DataTransferItem</dfn> {
+ readonly attribute DOMString <a href=#dom-datatransferitem-kind title=dom-DataTransferItem-kind>kind</a>;
+ readonly attribute DOMString <a href=#dom-datatransferitem-type title=dom-DataTransferItem-type>type</a>;
+ void <a href=#dom-datatransferitem-getasstring title=dom-DataTransferItem-getAsString>getAsString</a>(<a href=#functionstringcallback>FunctionStringCallback</a>? callback);<!--
+DND-v3: <span>Blob</span> <span title="dom-DataTransferItem-getAsBlob">getAsBlob</span>();-->
+ <a href=#file>File</a>? <a href=#dom-datatransferitem-getasfile title=dom-DataTransferItem-getAsFile>getAsFile</a>();<!--
+DND-v4: void <span title="dom-DataTransferItem-getAsObject">getAsObject</span>(<span>FunctionObjectCallback</span> callback);-->
+};
+
+[Callback=FunctionOnly, NoInterfaceObject]
+interface <dfn id=functionstringcallback>FunctionStringCallback</dfn> {
+ void <span title=dom-FunctionStringCallback-handleEvent>handleEvent</span>(DOMString data);
+};<!--
+
+// DND-v4:
+[Callback=FunctionOnly, NoInterfaceObject]
+interface <dfn>FunctionObjectCallback</dfn> {
+ void <span title="dom-FunctionObjectCallback-handleEvent">handleEvent</span>(DOMString data);
+};--></pre>
+
+ <dl class=domintro><dt><var title="">item</var> . <code title=dom-DataTransferItem-kind><a href=#dom-datatransferitem-kind>kind</a></code></dt>
+ <dd>
+
+ <p>Returns <a href=#the-drag-data-item-kind>the drag data item kind</a>, one of: "string",
+ <!-- DND-v3: "blob", --> "file"<!-- DND-v4: , "object" -->.</p>
+
+ </dd>
+
+ <dt><var title="">item</var> . <code title=dom-DataTransferItem-type><a href=#dom-datatransferitem-type>type</a></code></dt>
+ <dd>
+
+ <p>Returns <a href=#the-drag-data-item-type-string>the drag data item type string</a>.</p>
+
+ </dd>
+
+ <dt><var title="">item</var> . <code title=dom-DataTransferItem-getAsString><a href=#dom-datatransferitem-getasstring>getAsString</a></code>(<var title="">callback</var>)</dt>
+ <dd>
+
+ <p>Invokes the callback with the string data as the argument, if <a href=#the-drag-data-item-kind>the drag data item kind</a> is <i>Plain Unicode string</i>.</p>
+
+ </dd>
+
+<!-- DND-v3:
+ <dt><var title="">file</var> = <var title="">item</var> . <code title="dom-DataTransferItem-getAsBlob">getAsBlob</code>()</dt>
+ <dd>
+
+ <p>Returns a <code>Blob</code> object, if <span>the drag data item kind</span> is <i>Blob</i> or <i>File</i>.</p>
+
+ </dd>
+-->
+
+ <dt><var title="">file</var> = <var title="">item</var> . <code title=dom-DataTransferItem-getAsFile><a href=#dom-datatransferitem-getasfile>getAsFile</a></code>()</dt>
+ <dd>
+
+ <p>Returns a <code><a href=#file>File</a></code> object, if <a href=#the-drag-data-item-kind>the drag data item kind</a> is <i><a href=#file>File</a></i>.</p>
+
+ </dd>
+
+<!-- DND-v4:
+ <dt><var title="">file</var> = <var title="">item</var> . <code title="dom-DataTransferItem-getAsObject">getAsObject</code>()</dt>
+ <dd>
+
+ <p>Invokes the callback with the cloned object data as the argument, if <span>the drag data item kind</span> is <i>Plain Unicode string</i> or <i>Object</i>.</p>
+
+ </dd>
+-->
+
+ </dl><div class=impl>
+
+ <p>While the <code><a href=#datatransferitem>DataTransferItem</a></code> object's
+ <code><a href=#datatransfer>DataTransfer</a></code> object is associated with a <a href=#drag-data-store>drag
+ data store</a> and that <a href=#drag-data-store>drag data store</a>'s <a href=#drag-data-store-item-list>drag
+ data store item list</a> still contains the item that the
+ <code><a href=#datatransferitem>DataTransferItem</a></code> object represents, the
+ <code><a href=#datatransferitem>DataTransferItem</a></code> object's <i>mode</i> is the same as
+ the <a href=#drag-data-store-mode>drag data store mode</a>. When the
+ <code><a href=#datatransferitem>DataTransferItem</a></code> object's <code><a href=#datatransfer>DataTransfer</a></code>
+ object is <em>not</em> associated with a <a href=#drag-data-store>drag data
+ store</a>, or if the item that the <code><a href=#datatransferitem>DataTransferItem</a></code>
+ object represents has been removed from the relevant <a href=#drag-data-store-item-list>drag data
+ store item list</a>, the <code><a href=#datatransferitem>DataTransferItem</a></code> object's
+ <i>mode</i> is the <i>disabled mode</i>. The <a href=#drag-data-store>drag data
+ store</a> referenced in this section (which is used only when the
+ <code><a href=#datatransferitem>DataTransferItem</a></code> object is not in the <i>disabled
+ mode</i>) is the <a href=#drag-data-store>drag data store</a> with which the
+ <code><a href=#datatransferitem>DataTransferItem</a></code> object's <code><a href=#datatransfer>DataTransfer</a></code>
+ object is associated.</p>
+
+ <p>The <dfn id=dom-datatransferitem-kind title=dom-DataTransferItem-kind><code>kind</code></dfn> attribute
+ must return the empty string if the <code><a href=#datatransferitem>DataTransferItem</a></code>
+ object is in the <i>disabled mode</i>; otherwise it must return the
+ string given in the cell from the second column of the following
+ table from the row whose cell in the first column contains <a href=#the-drag-data-item-kind>the
+ drag data item kind</a> of the item represented by the
+ <code><a href=#datatransferitem>DataTransferItem</a></code> object:</p>
+
+ <table><thead><tr><th> Kind <th> String
+ <tbody><tr><td> <i>Plain Unicode string</i> <td> "<code title="">string</code>"
+<!-- DND-v3: <tr> <td> <i>Blob</i> <td> "<code title="">blob</code>"-->
+ <tr><td> <i><a href=#file>File</a></i> <td> "<code title="">file</code>"
+<!-- DND-v4: <tr> <td> <i>Object</i> <td> "<code title="">object</code>"-->
+ </table><p>The <dfn id=dom-datatransferitem-type title=dom-DataTransferItem-type><code>type</code></dfn> attribute
+ must return the empty string if the <code><a href=#datatransferitem>DataTransferItem</a></code>
+ object is in the <i>disabled mode</i>; otherwise it must return
+ <a href=#the-drag-data-item-type-string>the drag data item type string</a> of the item represented
+ by the <code><a href=#datatransferitem>DataTransferItem</a></code> object.</p>
+
+ <p>The <dfn id=dom-datatransferitem-getasstring title=dom-DataTransferItem-getAsString><code>getAsString(<var title="">callback</var>)</code></dfn> method must run the following
+ steps:</p>
+
+ <ol><li><p>If the <var title="">callback</var> is null, abort these
+ steps.</li>
+
+ <li><p>If the <code><a href=#datatransferitem>DataTransferItem</a></code> object is not in the <i title=concept-dnd-rw><a href=#concept-dnd-rw>read/write mode</a></i> or the <i title=concept-dnd-ro><a href=#concept-dnd-ro>read-only mode</a></i>, abort these steps. The
+ callback is never invoked.</li>
+
+ <li><p>If <a href=#the-drag-data-item-kind>the drag data item kind</a> is not <i>Plain
+ Unicode string</i>, abort these steps. The callback is never
+ invoked.</li>
+
+ <li><p>Otherwise, <a href=#queue-a-task>queue a task</a> to invoke <var title="">callback</var>, passing the actual data of the item
+ represented by the <code><a href=#datatransferitem>DataTransferItem</a></code> object as the
+ argument.</li>
+
+ </ol><!--DND-v3:
+ <p>The <dfn
+ title="dom-DataTransferItem-getAsBlob"><code>getAsBlob()</code></dfn>
+ method must run the following steps:</p>
+
+ <ol>
+
+ <li><p>If the <code>DataTransferItem</code> object is not in the <i
+ title="concept-dnd-rw">read/write mode</i> or the <i
+ title="concept-dnd-ro">read-only mode</i>, return null and abort
+ these steps.</p></li>
+
+ <li>
+
+--><!--DND-v4:
+ <p>If <span>the drag data item kind</span> is <i>Object</i>,
+ return null.</p></li>
+--><!--DND-v3:
+
+ <p>If <span>the drag data item kind</span> is <i>File</i>, then
+ return a new <code>File</code> object representing the actual data
+ of the item represented by the <code>DataTransferItem</code>
+ object.</p>
+
+ <p>If <span>the drag data item kind</span> is <i>Unicode Data
+ string</i>, then return a new <code>Blob</code> object
+ representing the actual data of the item represented by the
+ <code>DataTransferItem</code> object, with the <code
+ title="dom-Blob-type">type</code> of the <code>Blob</code> being
+ <span>the drag data item type string</span> and with the binary
+ data of the <code>Blob</code> object being the Unicode string
+ encoded as UTF-8. <a href="#refsRFC3629">[RFC3629]</a></p>
+
+ <p>Otherwise, <span>the drag data item kind</span> is <i>Blob</i>;
+ return a new <code>Blob</code> object representing the actual data
+ of the item represented by the <code>DataTransferItem</code>
+ object.</p>
+
+ </li>
+
+ </ol>
+--><p>The <dfn id=dom-datatransferitem-getasfile title=dom-DataTransferItem-getAsFile><code>getAsFile()</code></dfn>
+ method must run the following steps:</p>
+
+ <ol><li><p>If the <code><a href=#datatransferitem>DataTransferItem</a></code> object is not in the <i title=concept-dnd-rw><a href=#concept-dnd-rw>read/write mode</a></i> or the <i title=concept-dnd-ro><a href=#concept-dnd-ro>read-only mode</a></i>, return null and abort
+ these steps.</li>
+
+ <li><p>If <a href=#the-drag-data-item-kind>the drag data item kind</a> is not <i><a href=#file>File</a></i>,
+ then return null and abort these steps.</li>
+
+ <li><p>Return a new <code><a href=#file>File</a></code> object representing the
+ actual data of the item represented by the
+ <code><a href=#datatransferitem>DataTransferItem</a></code> object.</p>
+
+ </ol><!--DND-v4:
+ <p>The <dfn
+ title="dom-DataTransferItem-getAsObject"><code>getAsObject(<var
+ title="">callback</var>)</code></dfn> method must run the following
+ steps:</p>
+
+ <ol>
+
+ <li><p>If the <code>DataTransferItem</code> object is not in the <i
+ title="concept-dnd-rw">read/write mode</i> or the <i
+ title="concept-dnd-ro">read-only mode</i>, return null and abort
+ these steps.</p></li>
+
+ <li>
+
+ <p>Let <var title="">data</var> be the actual data of the item
+ represented by the <code>DataTransferItem</code> object.</p>
+
+ <p>If <span>the drag data item kind</span> is <i>Unicode Data
+ string</i>, then <var title="">data</var> is a <code
+ title="">DOMString</code> containing the actual data.</p>
+
+ <p>If <span>the drag data item kind</span> is <i>Blob</i>, then
+ <var title="">data</var> is a <code>Blob</code> representing the
+ actual data.</p>
+
+ <p>If <span>the drag data item kind</span> is <i>File</i>, then
+ <var title="">data</var> is a <code>File</code> representing the
+ actual data.</p>
+
+ <p>If <span>the drag data item kind</span> is <i>Object</i>, then
+ <var title="">data</var> is the object that is the actual
+ data.</p>
+
+ </li>
+
+ <li><span>Queue a task</span> to invoke <var
+ title="">callback</var>, passing a <span>structured clone</span> of
+ <var title="">data</var> as the argument.</p></li>
+
+ </ol>
+--></div>
+
+
+
+ <h4 id=the-dragevent-interface><span class=secno>8.6.4 </span>The <code><a href=#dragevent>DragEvent</a></code> interface</h4>
+
+ <p>The drag-and-drop processing model involves several events. They
+ all use the <code><a href=#dragevent>DragEvent</a></code> interface.</p>
+
+ <pre class=idl>[Constructor(DOMString type, optional <a href=#drageventinit>DragEventInit</a> eventInitDict)]
+interface <dfn id=dragevent>DragEvent</dfn> : <a href=#mouseevent>MouseEvent</a> {
+ readonly attribute <a href=#datatransfer>DataTransfer</a>? <a href=#dom-dragevent-datatransfer title=dom-DragEvent-dataTransfer>dataTransfer</a>;
+};
+
+dictionary <dfn id=drageventinit>DragEventInit</dfn> : <a href=#mouseeventinit>MouseEventInit</a> {
+ <a href=#datatransfer>DataTransfer</a>? dataTransfer;
+};</pre>
+
+ <dl class=domintro><dt><var title="">event</var> . <code title=dom-DragEvent-dataTransfer><a href=#dom-dragevent-datatransfer>dataTransfer</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#datatransfer>DataTransfer</a></code> object for the event.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-dragevent-datatransfer title=dom-DragEvent-dataTransfer><code>dataTransfer</code></dfn>
+ attribute of the <code><a href=#dragevent>DragEvent</a></code> interface must return the
+ value it was initialized to. When the object is created, this
+ attribute must be initialized to null. It represents the context
+ information for the event.</p>
+
+ </div>
+
+ <div class=impl>
+
+ <p>When a user agent is required to <dfn id=fire-a-dnd-event>fire a DND event</dfn>
+ named <var title="">e</var> at an element, using a particular
+ <a href=#drag-data-store>drag data store</a>, the user agent must run the following
+ steps:</p>
+
+ <ol><li>
+
+ <p>If <var title="">e</var> is <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code>, set the <a href=#drag-data-store-mode>drag data
+ store mode</a> to the <a href=#concept-dnd-rw title=concept-dnd-rw>read/write
+ mode</a>.</p>
+
+ <p>If <var title="">e</var> is <code title=event-drop><a href=#event-drop>drop</a></code>, set the <a href=#drag-data-store-mode>drag data store
+ mode</a> to the <a href=#concept-dnd-ro title=concept-dnd-ro>read-only
+ mode</a>.</p>
+
+ </li>
+
+ <li><p>Let <var title="">dataTransfer</var> be a newly created
+ <code><a href=#datatransfer>DataTransfer</a></code> object associated with the given
+ <a href=#drag-data-store>drag data store</a>.</li>
+
+ <li><p id=effectAllowed-initialization>Set the <code title=dom-DataTransfer-effectAllowed><a href=#dom-datatransfer-effectallowed>effectAllowed</a></code>
+ attribute to the <a href=#drag-data-store>drag data store</a>'s <a href=#drag-data-store-allowed-effects-state>drag data
+ store allowed effects state</a>.</li>
+
+ <li>
+
+ <p id=dropEffect-initialization>Set the <code title=dom-DataTransfer-dropEffect><a href=#dom-datatransfer-dropeffect>dropEffect</a></code> attribute to
+ "<code title="">none</code>" if <var title="">e</var> is <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code>, <code title=event-drag><a href=#event-drag>drag</a></code>, or <code title=event-dragleave><a href=#event-dragleave>dragleave</a></code>; to the value
+ corresponding to the <a href=#current-drag-operation>current drag operation</a> if <var title="">e</var> is <code title=event-drop><a href=#event-drop>drop</a></code> or <code title=event-dragend><a href=#event-dragend>dragend</a></code>; and to a value based on the
+ <code title=dom-DataTransfer-effectAllowed><a href=#dom-datatransfer-effectallowed>effectAllowed</a></code>
+ attribute's value and to the drag-and-drop source, as given by the
+ following table, otherwise (i.e. if <var title="">e</var> is <code title=event-dragenter><a href=#event-dragenter>dragenter</a></code> or <code title=event-dragover><a href=#event-dragover>dragover</a></code>):</p>
+
+ <table><thead><tr><th><code title=dom-DataTransfer-effectAllowed><a href=#dom-datatransfer-effectallowed>effectAllowed</a></code></th>
+ <th><code title=dom-DataTransfer-dropEffect><a href=#dom-datatransfer-dropeffect>dropEffect</a></code></th>
+ </thead><tr><td>"<code title="">none</code>"</td>
+ <td>"<code title="">none</code>"</td>
+ <tr><td>"<code title="">copy</code>", "<code title="">copyLink</code>", "<code title="">copyMove</code>", "<code title="">all</code>"</td>
+ <td>"<code title="">copy</code>"</td>
+ <tr><td>"<code title="">link</code>", "<code title="">linkMove</code>"</td>
+ <td>"<code title="">link</code>"</td>
+ <tr><td>"<code title="">move</code>"</td>
+ <td>"<code title="">move</code>"</td>
+ <tr><td>"<code title="">uninitialized</code>" when what is being dragged is a selection from a text field</td>
+ <td>"<code title="">move</code>"</td>
+ <tr><td>"<code title="">uninitialized</code>" when what is being dragged is a selection</td>
+ <td>"<code title="">copy</code>"</td>
+ <tr><td>"<code title="">uninitialized</code>" when what is being dragged is an <code><a href=#the-a-element>a</a></code> element with an <code>href</code> attribute</td>
+ <td>"<code title="">link</code>"</td>
+ <tr><td>Any other case</td>
+ <td>"<code title="">copy</code>"</td>
+ </table></li>
+
+ <li>
+
+ <p>Create a <code><a href=#dragevent>DragEvent</a></code> object and initialize it to
+ have the given name <var title="">e</var>, to bubble, to be
+ cancelable unless <var title="">e</var> is <code title=event-dragleave><a href=#event-dragleave>dragleave</a></code> or <code title=event-dragend><a href=#event-dragend>dragend</a></code>, and to have the <code title=dom-UIEvent-detail>detail</code> attribute initialized to
+ zero, the mouse and key attributes initialized according to the
+ state of the input devices as they would be for user interaction
+ events, the <code title="">relatedTarget</code> attribute
+ initialized to null, and the <code title=dom-DragEvent-dataTransfer><a href=#dom-dragevent-datatransfer>dataTransfer</a></code> attribute
+ initialized to <var title="">dataTransfer</var>, the
+ <code><a href=#datatransfer>DataTransfer</a></code> object created above.</p>
+
+ <!-- interaction event spec point -->
+
+ <p>If there is no relevant pointing device, the object must have
+ its <code title="">screenX</code>, <code title="">screenY</code>,
+ <code title="">clientX</code>, <code title="">clientY</code>, and
+ <code title="">button</code> attributes set to 0.</p>
+
+ </li>
+
+ <li><p>Dispatch the newly created <code><a href=#dragevent>DragEvent</a></code> object at
+ the specified target element.</li>
+
+ <li><p>Set the <a href=#drag-data-store-allowed-effects-state>drag data store allowed effects state</a>
+ to the current value of <var title="">dataTransfer</var>'s <code title=dom-DataTransfer-effectAllowed><a href=#dom-datatransfer-effectallowed>effectAllowed</a></code>
+ attribute.</li>
+
+ <li><p>Set the <a href=#drag-data-store-mode>drag data store mode</a> back to the <a href=#concept-dnd-p title=concept-dnd-p>protected mode</a> if it was changed in
+ the first step.</li>
+
+ <li><p>Break the association between <var title="">dataTransfer</var> and the <a href=#drag-data-store>drag data
+ store</a>.</li>
+
+ </ol></div>
+
+
+ <div class=impl>
+
+ <h4 id=drag-and-drop-processing-model><span class=secno>8.6.5 </span>Drag-and-drop processing model</h4>
+
+ <p>When the user attempts to begin a drag operation, the user agent
+ must run the following steps. User agents must act as if these steps
+ were run even if the drag actually started in another document or
+ application and the user agent was not aware that the drag was
+ occuring until it intersected with a document under the user agent's
+ purview.</p>
+
+ <ol><li>
+
+ <p>Determine what is being dragged, as follows:</p>
+
+ <p>If the drag operation was invoked on a selection, then it is
+ the selection that is being dragged.</p>
+
+ <p>Otherwise, if the drag operation was invoked on a
+ <code><a href=#document>Document</a></code>, it is the first element, going up the
+ ancestor chain, starting at the node that the user tried to drag,
+ that has the IDL attribute <code title=dom-draggable><a href=#dom-draggable>draggable</a></code> set to true. If there is no
+ such element, then nothing is being dragged; abort these steps,
+ the drag-and-drop operation is never started.</p>
+
+ <p>Otherwise, the drag operation was invoked outside the user
+ agent's purview. What is being dragged is defined by the document
+ or application where the drag was started.</p>
+
+ <p class=note><code><a href=#the-img-element>img</a></code> elements and <code><a href=#the-a-element>a</a></code>
+ elements with an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>
+ attribute have their <code title=dom-draggable><a href=#dom-draggable>draggable</a></code>
+ attribute set to true by default.</p>
+
+ </li>
+
+ <li><p><a href=#create-a-drag-data-store>Create a drag data store</a>. All the DND events
+ fired subsequently by the steps in this section must use this
+ <a href=#drag-data-store>drag data store</a>.</li>
+
+ <li>
+
+ <p>Establish which DOM node is the <dfn id=source-node>source node</dfn>, as
+ follows:</p>
+
+ <p>If it is a selection that is being dragged, then the
+ <a href=#source-node>source node</a> is the text node that the user started
+ the drag on (typically the text node that the user originally
+ clicked). If the user did not specify a particular node, for
+ example if the user just told the user agent to begin a drag of
+ "the selection", then the <a href=#source-node>source node</a> is the first
+ text node containing a part of the selection.</p>
+
+ <p>Otherwise, if it is an element that is being dragged, then the
+ <a href=#source-node>source node</a> is the element that is being dragged.</p>
+
+ <p>Otherwise, the <a href=#source-node>source node</a> is part of another
+ document or application. When this specification requires that an
+ event be dispatched at the <a href=#source-node>source node</a> in this case,
+ the user agent must instead follow the platform-specific
+ conventions relevant to that situation.</p>
+
+ <p class=note>Multiple events are fired on the <a href=#source-node>source
+ node</a> during the course of the drag-and-drop operation.</p>
+
+ </li>
+
+ <li>
+
+ <p>Determine the <dfn id=list-of-dragged-nodes>list of dragged nodes</dfn>, as follows:</p>
+
+ <p>If it is a selection that is being dragged, then the <a href=#list-of-dragged-nodes>list
+ of dragged nodes</a> contains, in <a href=#tree-order>tree order</a>,
+ every node that is partially or completely included in the
+ selection (including all their ancestors).</p>
+
+ <p>Otherwise, the <a href=#list-of-dragged-nodes>list of dragged nodes</a> contains only
+ the <a href=#source-node>source node</a>, if any.</p>
+
+ </li>
+
+ <li>
+
+ <p>If it is a selection that is being dragged, then add an item to
+ the <a href=#drag-data-store-item-list>drag data store item list</a>, with its properties
+ set as follows:</p>
+
+ <dl><dt><a href=#the-drag-data-item-type-string>The drag data item type string</a>
+ <dd>"<code>text/plain</code>"</dd>
+
+ <dt><a href=#the-drag-data-item-kind>The drag data item kind</a>
+ <dd><i>Plain Unicode string</i></dd>
+
+ <dt>The actual data</dt>
+ <dd>The text of the selection</dd>
+
+ </dl><p>Otherwise, if any files are being dragged, then add one item
+ per file to the <a href=#drag-data-store-item-list>drag data store item list</a>, with their
+ properties set as follows:</p>
+
+ <dl><dt><a href=#the-drag-data-item-type-string>The drag data item type string</a>
+ <dd>The MIME type of the file, if known, or "<code>application/octet-stream</code>" otherwise.</dd>
+
+ <dt><a href=#the-drag-data-item-kind>The drag data item kind</a>
+ <dd><i><a href=#file>File</a></i></dd>
+
+ <dt>The actual data</dt>
+ <dd>The file's contents and name.</dd>
+
+ </dl><p class=note>Dragging files can currently only happen from
+ outside a <a href=#browsing-context>browsing context</a>, for example from a file
+ system manager application.</p>
+
+ <p>If the drag initiated outside of the application, the user
+ agent must add items to the <a href=#drag-data-store-item-list>drag data store item list</a>
+ as appropriate for the data being dragged, honoring platform
+ conventions where appropriate; however, if the platform
+ conventions do not use <a href=#mime-type title="MIME type">MIME types</a>
+ to label dragged data, the user agent must make a best-effort
+ attempt to map the types to MIME types, and, in any case, all the
+ <a href=#the-drag-data-item-type-string title="the drag data item type string">drag data item type
+ strings</a> must be <a href=#converted-to-ascii-lowercase>converted to ASCII
+ lowercase</a>.</p>
+
+ </li>
+
+ <!-- DND-v2: text/html as an export format -->
+
+<!--MD-->
+
+ <li>
+
+ <p>If the <a href=#list-of-dragged-nodes>list of dragged nodes</a> is not empty, then
+ <a href=#extracting-json title="extracting JSON">extract the microdata from those
+ nodes into a JSON form</a>, and add one item to the <a href=#drag-data-store-item-list>drag
+ data store item list</a>, with its properties set as
+ follows:</p>
+
+ <dl><dt><a href=#the-drag-data-item-type-string>The drag data item type string</a>
+ <dd><code><a href=#application/microdata+json>application/microdata+json</a></code></dd>
+
+ <dt><a href=#the-drag-data-item-kind>The drag data item kind</a>
+ <dd><i>Plain Unicode string</i></dd>
+
+ <dt>The actual data</dt>
+ <dd>The resulting JSON string.</dd>
+
+ </dl></li>
+
+
+ <li>
+
+ <p>Run the following substeps:</p>
+
+ <ol><li><p>Let <var title="">urls</var> be an empty list of <a href=#absolute-url title="absolute URL">absolute URLs</a>.</li>
+
+ <li>
+
+ <p>For each <var title="">node</var> in the <a href=#list-of-dragged-nodes>list of
+ dragged nodes</a>:</p>
+
+ <dl><dt>If the node is an <code><a href=#the-a-element>a</a></code> element with an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute</dt>
+
+ <dd>Add to <var title="">urls</var> the result of <a href=#resolve-a-url title="resolve a url">resolving</a> the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute
+ relative to the element.</dd>
+
+ <dt>If the node is an <code><a href=#the-img-element>img</a></code> element with an <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute</dt>
+
+ <dd>Add to <var title="">urls</var> the result of <a href=#resolve-a-url title="resolve a url">resolving</a> the element's <code title=attr-img-src><a href=#attr-img-src>src</a></code> content attribute relative to
+ the element.</dd>
+
+ <!-- DND-v2: more -->
+
+ </dl></li>
+
+ <li><p>If <var title="">urls</var> is still empty, abort these
+ substeps.</li>
+
+ <li><p>Let <var title="">url string</var> be the result of
+ concatenating the strings in <var title="">urls</var>, in the
+ order they were added, separated by a U+000D CARRIAGE RETURN
+ U+000A LINE FEED character pair (CRLF).</li>
+
+ <li><p>Add one item to the <a href=#drag-data-store-item-list>drag data store item
+ list</a>, with its properties set as follows:</p>
+
+ <dl><dt><a href=#the-drag-data-item-type-string>The drag data item type string</a>
+ <dd><code>text/uri-list</code></dd>
+
+ <dt><a href=#the-drag-data-item-kind>The drag data item kind</a>
+ <dd><i>Plain Unicode string</i></dd>
+
+ <dt>The actual data</dt>
+ <dd><var title="">url string</var></dd>
+
+ </dl></li>
+
+ </ol></li>
+
+ <li>
+
+ <p>If it is an element that is being dragged, then set the
+ <a href=#drag-data-store-elements-list>drag data store elements list</a> to contain just the
+ <a href=#source-node>source node</a>.</p>
+
+ <p>Otherwise, update the <a href=#drag-data-store-default-feedback>drag data store default
+ feedback</a> as appropriate for the user agent (if the user is
+ dragging the selection, then the selection would likely be the
+ basis for this feedback; if the drag began outside the user agent,
+ then the platform conventions for determining the drag feedback
+ should be used).</p>
+
+ <p class=note>Script can use the <code title=dom-DataTransfer-addElement><a href=#dom-datatransfer-addelement>addElement()</a></code> method to
+ add further elements to the list of what is being dragged. (This
+ list is only used for rendering the drag feedback.)</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#fire-a-dnd-event>Fire a DND event</a> named <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code> at the <a href=#source-node>source
+ node</a>.</p>
+
+ <p>If the event is canceled, then the drag-and-drop operation
+ should not occur; abort these steps.</p> <!-- only a should
+ because the UA can always allow the user to drag without the page
+ knowing -->
+
+ <p class=note>Since events with no event listeners registered
+ are, almost by definition, never canceled, drag-and-drop is always
+ available to the user if the author does not specifically prevent
+ it.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#initiate-the-drag-and-drop-operation>Initiate the drag-and-drop operation</a> in a manner
+ consistent with platform conventions, and as described below.</p>
+
+ <p id=base-dnd-feedback>The drag-and-drop feedback must be
+ generated from the first of the following sources that is
+ available:</p>
+
+ <ol><li>The <a href=#drag-data-store-bitmap>drag data store bitmap</a>, if any. In this
+ case, the <a href=#drag-data-store-hot-spot-coordinate>drag data store hot spot coordinate</a> should
+ be used as hints for where to put the cursor relative to the
+ resulting image. The values are expressed as distances in CSS
+ pixels from the left side and from the top side of the image
+ respectively. <a href=#refsCSS>[CSS]</a></li>
+
+ <li>The elements in the <a href=#drag-data-store-elements-list>drag data store elements
+ list</a>, if any.</li>
+
+ <li>The <a href=#drag-data-store-default-feedback>drag data store default feedback</a>.</li>
+
+ </ol></li>
+
+ </ol><p>From the moment that the user agent is to <dfn id=initiate-the-drag-and-drop-operation>initiate the
+ drag-and-drop operation</dfn>, until the end of the drag-and-drop
+ operation, device input events (e.g. mouse and keyboard events) must
+ be suppressed. <span class=XXX>In addition, the user agent must
+ track all DOM changes made during the drag-and-drop operation, and
+ add them to its <a href=#undo-transaction-history>undo transaction history</a> as one atomic
+ operation once the drag-and-drop operation has ended.</span></p>
+ <!-- need to update this to new UndoManager code -->
+
+ <p>During the drag operation, the element directly indicated by the
+ user as the drop target is called the <dfn id=immediate-user-selection>immediate user
+ selection</dfn>. (Only elements can be selected by the user; other
+ nodes must not be made available as drop targets.) However, the
+ <a href=#immediate-user-selection>immediate user selection</a> is not necessarily the
+ <dfn id=current-target-element>current target element</dfn>, which is the element currently
+ selected for the drop part of the drag-and-drop operation.</p>
+
+ <p>The <a href=#immediate-user-selection>immediate user selection</a> changes as the user
+ selects different elements (either by pointing at them with a
+ pointing device, or by selecting them in some other way). The
+ <a href=#current-target-element>current target element</a> changes when the <a href=#immediate-user-selection>immediate
+ user selection</a> changes, based on the results of event
+ listeners in the document, as described below.</p>
+
+ <p>Both the <a href=#current-target-element>current target element</a> and the
+ <a href=#immediate-user-selection>immediate user selection</a> can be null, which means no
+ target element is selected. They can also both be elements in other
+ (DOM-based) documents, or other (non-Web) programs altogether. (For
+ example, a user could drag text to a word-processor.) The
+ <a href=#current-target-element>current target element</a> is initially null.</p>
+
+ <p>In addition, there is also a <dfn id=current-drag-operation>current drag operation</dfn>,
+ which can take on the values "<code title="">none</code>", "<code title="">copy</code>", "<code title="">link</code>", and "<code title="">move</code>". Initially, it has the value "<code title="">none</code>". It is updated by the user agent as described
+ in the steps below.</p>
+
+ <p>User agents must, as soon as the drag operation is <a href=#initiate-the-drag-and-drop-operation title="initiate the drag-and-drop operation">initiated</a> and
+ every 350ms (&plusmn;200ms) thereafter for as long as the drag
+ operation is ongoing, <a href=#queue-a-task>queue a task</a> to perform the
+ following steps in sequence:</p>
+
+ <ol><li>
+
+ <p>If the user agent is still performing the previous iteration of
+ the sequence (if any) when the next iteration becomes due, abort
+ these steps for this iteration (effectively "skipping missed
+ frames" of the drag-and-drop operation).</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#fire-a-dnd-event>Fire a DND event</a> named <code title=event-drag><a href=#event-drag>drag</a></code> event at the <a href=#source-node>source
+ node</a>. If this event is canceled, the user agent must set
+ the <a href=#current-drag-operation>current drag operation</a> to "<code title="">none</code>" (no drag operation).</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <code title=event-drag><a href=#event-drag>drag</a></code> event was not
+ canceled and the user has not ended the drag-and-drop operation,
+ check the state of the drag-and-drop operation, as follows:</p>
+
+ <ol><li>
+
+ <p>If the user is indicating a different <a href=#immediate-user-selection>immediate user
+ selection</a> than during the last iteration (or if this is
+ the first iteration), and if this <a href=#immediate-user-selection>immediate user
+ selection</a> is not the same as the <a href=#current-target-element>current target
+ element</a>, then update the <a href=#current-target-element>current target
+ element</a> as follows:</p>
+
+ <dl class=switch><dt>If the new <a href=#immediate-user-selection>immediate user selection</a> is null</dt>
+
+ <dd><p>Set the <a href=#current-target-element>current target element</a> to null
+ also.</dd>
+
+ <dt>If the new <a href=#immediate-user-selection>immediate user selection</a> is in a
+ non-DOM document or application</dt>
+
+ <dd><p>Set the <a href=#current-target-element>current target element</a> to the
+ <a href=#immediate-user-selection>immediate user selection</a>.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p><a href=#fire-a-dnd-event>Fire a DND event</a> named <code title=event-dragenter><a href=#event-dragenter>dragenter</a></code> at the
+ <a href=#immediate-user-selection>immediate user selection</a>.</p>
+
+ <p>If the event is canceled, then set the <a href=#current-target-element>current target
+ element</a> to the <a href=#immediate-user-selection>immediate user
+ selection</a>.</p>
+
+ <p>Otherwise, run the appropriate step from the following
+ list:</p>
+
+ <dl class=switch><dt>If the <a href=#current-target-element>current target element</a> is a text
+ field (e.g. <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code>
+ element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code>
+ attribute is in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state) or an
+ <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element,
+ and the <a href=#drag-data-store-item-list>drag data store item list</a> has an item
+ with <a href=#the-drag-data-item-type-string>the drag data item type string</a>
+ "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data item
+ kind</a> <i>Plain Unicode string</i></dt>
+
+ <dd><p>Set the <a href=#current-target-element>current target element</a> to the
+ <a href=#immediate-user-selection>immediate user selection</a> anyway.</dd>
+
+
+ <dt>If the <a href=#current-target-element>current target element</a> is an element
+ with a <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute
+ that <a href=#concept-dropzone-match title=concept-dropzone-match>matches</a> the
+ <a href=#drag-data-store>drag data store</a></dt>
+
+ <dd><p>Set the <a href=#current-target-element>current target element</a> to the
+ <a href=#immediate-user-selection>immediate user selection</a> anyway.</dd>
+
+
+ <dt>If the <a href=#current-target-element>current target element</a> is
+ <a href=#the-body-element-0>the body element</a></dt>
+
+ <dd><p>Leave the <a href=#current-target-element>current target element</a>
+ unchanged.</dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p><a href=#fire-a-dnd-event>Fire a DND event</a> named <code title=event-dragenter><a href=#event-dragenter>dragenter</a></code> at <a href=#the-body-element-0>the body
+ element</a>, and set the <a href=#current-target-element>current target
+ element</a> to <a href=#the-body-element-0>the body element</a>, regardless
+ of whether that event was canceled or not.</p>
+
+ <p class=note>If <a href=#the-body-element-0>the body element</a> is null,
+ then the event will be fired at the <code><a href=#document>Document</a></code>
+ object (as required by the definition of <a href=#the-body-element-0>the body
+ element</a>), but the <a href=#current-target-element>current target element</a>
+ would be set to null, not the <code><a href=#document>Document</a></code>
+ object.</dd>
+
+ </dl></dd>
+
+ </dl></li>
+
+ <li>
+
+ <p>If the previous step caused the <a href=#current-target-element>current target
+ element</a> to change, and if the previous target element was
+ not null or a part of a non-DOM document, then <a href=#fire-a-dnd-event>fire a DND
+ event</a> named <code title=event-dragleave><a href=#event-dragleave>dragleave</a></code> at the previous target
+ element.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <a href=#current-target-element>current target element</a> is a DOM element,
+ then <a href=#fire-a-dnd-event>fire a DND event</a> named <code title=event-dragover><a href=#event-dragover>dragover</a></code> at this <a href=#current-target-element>current
+ target element</a>.</p>
+
+ <p>If the <code title=event-dragover><a href=#event-dragover>dragover</a></code> event is
+ not canceled, run the appropriate step from the following
+ list:</p>
+
+ <dl class=switch><dt>If the <a href=#current-target-element>current target element</a> is a text field
+ (e.g. <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code> element
+ whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in
+ the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state) or an
+ <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element, and
+ the <a href=#drag-data-store-item-list>drag data store item list</a> has an item with
+ <a href=#the-drag-data-item-type-string>the drag data item type string</a>
+ "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data item
+ kind</a> <i>Plain Unicode string</i></dt>
+
+ <dd><p>Set the <a href=#current-drag-operation>current drag operation</a> to either
+ "<code title="">copy</code>" or "<code title="">move</code>",
+ as appropriate given the platform conventions.</dd>
+
+
+ <dt>If the <a href=#current-target-element>current target element</a> is an element
+ with a <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute
+ that <a href=#concept-dropzone-match title=concept-dropzone-match>matches</a> the
+ <a href=#drag-data-store>drag data store</a> and <a href=#concept-dropzone-operation title=concept-dropzone-operation>specifies an
+ operation</a></dt>
+
+ <dd><p>Set the <a href=#current-drag-operation>current drag operation</a> to the
+ operation <a href=#concept-dropzone-operation title=concept-dropzone-operation>specified</a> by the
+ <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute of the
+ <a href=#current-target-element>current target element</a>.</p>
+
+
+ <dt>If the <a href=#current-target-element>current target element</a> is an element
+ with a <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute
+ that <a href=#concept-dropzone-match title=concept-dropzone-match>matches</a> the
+ <a href=#drag-data-store>drag data store</a> and does not <a href=#concept-dropzone-operation title=concept-dropzone-operation>specify an
+ operation</a></dt>
+
+ <dd><p>Set the <a href=#current-drag-operation>current drag operation</a> to "<code title="">copy</code>".</p>
+
+
+ <dt>Otherwise</dt>
+
+ <dd><p>Reset the <a href=#current-drag-operation>current drag operation</a> to "<code title="">none</code>".</dd>
+
+ </dl><p>Otherwise (if the <code title=event-dragover><a href=#event-dragover>dragover</a></code> event <em>is</em>
+ canceled), set the <a href=#current-drag-operation>current drag operation</a> based on
+ the values of the <code title=dom-DataTransfer-effectAllowed><a href=#dom-datatransfer-effectallowed>effectAllowed</a></code> and
+ <code title=dom-DataTransfer-dropEffect><a href=#dom-datatransfer-dropeffect>dropEffect</a></code>
+ attributes of the <code><a href=#dragevent>DragEvent</a></code> object's <code title=dom-DragEvent-dataTransfer><a href=#dom-dragevent-datatransfer>dataTransfer</a></code> object as
+ they stood after the event dispatch finished, as per the
+ following table:</p>
+
+ <table><thead><tr><th><code title=dom-DataTransfer-effectAllowed><a href=#dom-datatransfer-effectallowed>effectAllowed</a></code></th>
+ <th><code title=dom-DataTransfer-dropEffect><a href=#dom-datatransfer-dropeffect>dropEffect</a></code></th>
+ <th>Drag operation</th>
+ </thead><tr><td>"<code title="">uninitialized</code>", "<code title="">copy</code>", "<code title="">copyLink</code>", "<code title="">copyMove</code>", or "<code title="">all</code>"</td>
+ <td>"<code title="">copy</code>"</td>
+ <td>"<code title="">copy</code>"</td>
+ <tr><td>"<code title="">uninitialized</code>", "<code title="">link</code>", "<code title="">copyLink</code>", "<code title="">linkMove</code>", or "<code title="">all</code>"</td>
+ <td>"<code title="">link</code>"</td>
+ <td>"<code title="">link</code>"</td>
+ <tr><td>"<code title="">uninitialized</code>", "<code title="">move</code>", "<code title="">copyMove</code>", "<code title="">linkMove</code>", or "<code title="">all</code>"</td>
+ <td>"<code title="">move</code>"</td>
+ <td>"<code title="">move</code>"</td>
+ <tr><td colspan=2>Any other case</td>
+ <td>"<code title="">none</code>"</td>
+ </table></li>
+
+ <li>
+
+ <p>Otherwise, if the <a href=#current-target-element>current target element</a> is not
+ a DOM element, use platform-specific mechanisms to determine
+ what drag operation is being performed (none, copy, link, or
+ move), and set the <i><a href=#current-drag-operation>current drag operation</a></i>
+ accordingly.</p>
+
+ </li>
+
+ <li>
+
+ <p>Update the drag feedback (e.g. the mouse cursor) to match the
+ <a href=#current-drag-operation>current drag operation</a>, as follows:</p>
+
+ <table><thead><tr><th>Drag operation</th>
+ <th>Feedback</th>
+ </thead><tr><td>"<code title="">copy</code>"</td>
+ <td>Data will be copied if dropped here.</td>
+ <tr><td>"<code title="">link</code>"</td>
+ <td>Data will be linked if dropped here.</td>
+ <tr><td>"<code title="">move</code>"</td>
+ <td>Data will be moved if dropped here.</td>
+ <tr><td>"<code title="">none</code>"</td>
+ <td>No operation allowed, dropping here will cancel the drag-and-drop operation.</td>
+ </table></li>
+
+ </ol></li>
+
+ <li>
+
+ <p>Otherwise, if the user ended the drag-and-drop operation (e.g.
+ by releasing the mouse button in a mouse-driven drag-and-drop
+ interface), or if the <code title=event-drag><a href=#event-drag>drag</a></code> event
+ was canceled, then this will be the last iteration. Run the
+ following steps, then stop the drag-and-drop operation:</p>
+
+ <ol><li>
+
+ <p>If the <a href=#current-drag-operation>current drag operation</a> is "<code title="">none</code>" (no drag operation), or, if the user ended
+ the drag-and-drop operation by canceling it (e.g. by hitting the
+ <kbd>Escape</kbd> key), or if the <a href=#current-target-element>current target
+ element</a> is null, then the drag operation failed. Run
+ these substeps:</p>
+
+ <ol><li><p>Let <var title="">dropped</var> be false.</li>
+
+ <li><p>If the <a href=#current-target-element>current target element</a> is a DOM
+ element, <a href=#fire-a-dnd-event>fire a DND event</a> named <code title=event-dragleave><a href=#event-dragleave>dragleave</a></code> at it; otherwise, if
+ it is not null, use platform-specific conventions for drag
+ cancellation.</p>
+
+ </ol><p>Otherwise, the drag operation was as success; run these substeps:</p>
+
+ <ol><li><p>Let <var title="">dropped</var> be true.</li>
+
+ <li><p>If the <a href=#current-target-element>current target element</a> is a DOM
+ element, <a href=#fire-a-dnd-event>fire a DND event</a> named <code title=event-drop><a href=#event-drop>drop</a></code> at it; otherwise, use
+ platform-specific conventions for indicating a drop.</li>
+
+ <li>
+
+ <p>If the event is canceled, set the <a href=#current-drag-operation>current drag
+ operation</a> to the value of the <code title=dom-DataTransfer-dropEffect><a href=#dom-datatransfer-dropeffect>dropEffect</a></code> attribute
+ of the <code><a href=#dragevent>DragEvent</a></code> object's <code title=dom-DragEvent-dataTransfer><a href=#dom-dragevent-datatransfer>dataTransfer</a></code> object
+ as it stood after the event dispatch finished.</p>
+
+ <p>Otherwise, the event is not canceled; perform the event's
+ default action, which depends on the exact target as
+ follows:</p>
+
+ <dl class=switch><dt>If the <a href=#current-target-element>current target element</a> is a text
+ field (e.g. <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code>
+ element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code>
+ attribute is in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state) or an
+ <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element,
+ and the <a href=#drag-data-store-item-list>drag data store item list</a> has an item
+ with <a href=#the-drag-data-item-type-string>the drag data item type string</a>
+ "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data item
+ kind</a> <i>Plain Unicode string</i></dt>
+
+ <dd><p>Insert the actual data of the first item in the
+ <a href=#drag-data-store-item-list>drag data store item list</a> to have <a href=#the-drag-data-item-type-string title="the drag data item type string">a drag data item type
+ string</a> of "<code>text/plain</code>" and <a href=#the-drag-data-item-kind title="the drag data item kind">a drag data item kind</a>
+ that is <i>Plain Unicode string</i> into the text field or
+ <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element in
+ a manner consistent with platform-specific conventions (e.g.
+ inserting it at the current mouse cursor position, or
+ inserting it at the end of the field).</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd><p>Reset the <a href=#current-drag-operation>current drag operation</a> to
+ "<code title="">none</code>".</dd>
+
+ </dl></li>
+
+ </ol></li>
+
+ <li>
+
+ <p><a href=#fire-a-dnd-event>Fire a DND event</a> named <code title=event-dragend><a href=#event-dragend>dragend</a></code> at the <a href=#source-node>source
+ node</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Run the appropriate steps from the following list as the
+ default action of the <code title=event-dragend><a href=#event-dragend>dragend</a></code>
+ event:</p>
+
+ <dl class=switch><dt>If <var title="">dropped</var> is true, and the
+ <a href=#current-target-element>current target element</a> is a text field (e.g.
+ <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code> element whose
+ <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the
+ <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state), and the
+ <a href=#current-drag-operation>current drag operation</a> is "<code title="">move</code>", and the source of the drag-and-drop
+ operation is a selection in the DOM</dt>
+
+ <dd><p>The user agent should delete the range representing the
+ dragged selection from the DOM.</dd>
+
+ <dt>If <var title="">dropped</var> is true, and the
+ <a href=#current-target-element>current target element</a> is a text field (e.g.
+ <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code> element whose
+ <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the
+ <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state), and the
+ <a href=#current-drag-operation>current drag operation</a> is "<code title="">move</code>", and the source of the drag-and-drop
+ operation is a selection in a text field</dt>
+
+ <dd><p>The user agent should delete the dragged selection from
+ the relevant text field.</dd>
+
+ <dt>If the <var title="">dropped</var> is false of it the
+ <a href=#current-drag-operation>current drag operation</a> is "<code title="">none</code>"</dt>
+
+ <dd><p>The drag was canceled. If the platform conventions
+ dictate that this be represented to the user (e.g. by animating
+ the dragged selection going back to the source of the
+ drag-and-drop operation), then do so.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd><p>The event has no default action.</dd>
+
+ </dl></li>
+
+ </ol></li>
+
+ </ol><p class=note>User agents are encouraged to consider how to react
+ to drags near the edge of scrollable regions. For example, if a user
+ drags a link to the bottom of the viewport on a long page, it might
+ make sense to scroll the page so that the user can drop the link
+ lower on the page.</p>
+
+ <p class=note>This model is independent of which
+ <code><a href=#document>Document</a></code> object the nodes involved are from; the events
+ are fired as described above and the rest of the processing model
+ runs as described above, irrespective of how many documents are
+ involved in the operation.</p>
+
+ </div>
+
+
+ <h4 id=dndevents><span class=secno>8.6.6 </span>Events summary</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The following events are involved in the drag-and-drop
+ model.</p>
+
+ <table><thead><tr><th> Event Name </th>
+ <th> Target </th>
+ <!-- <th> Bubbles? </th> -->
+ <th> Cancelable? </th>
+ <th> <a href=#drag-data-store-mode>Drag data store mode</a> </th>
+ <!-- <th> <code title="dom-DataTransfer-effectAllowed">effectAllowed</code> </th> -->
+ <th> <code title=dom-DataTransfer-dropEffect><a href=#dom-datatransfer-dropeffect>dropEffect</a></code> </th>
+ <th> Default Action </th>
+ <tbody><tr><td><dfn id=event-dragstart title=event-dragstart><code>dragstart</code></dfn></td>
+ <td><a href=#source-node>Source node</a></td>
+ <!-- <td>&#x2713; Bubbles</td> -->
+ <td>&#10003; Cancelable</td>
+ <td><a href=#concept-dnd-rw title=concept-dnd-rw>Read/write mode</a>
+ <!-- <td>"<code title="">uninitialized</code>"</td> -->
+ <td>"<code title="">none</code>"</td>
+ <td>Initiate the drag-and-drop operation</td>
+ <tr><td><dfn id=event-drag title=event-drag><code>drag</code></dfn></td>
+ <td><a href=#source-node>Source node</a></td>
+ <!-- <td>&#x2713; Bubbles</td> -->
+ <td>&#10003; Cancelable</td>
+ <td><a href=#concept-dnd-p title=concept-dnd-p>Protected mode</a>
+ <!-- <td>Same as last event</td> -->
+ <td>"<code title="">none</code>"</td>
+ <td>Continue the drag-and-drop operation</td>
+ <tr><td><dfn id=event-dragenter title=event-dragenter><code>dragenter</code></dfn></td>
+ <td><a href=#immediate-user-selection>Immediate user selection</a> or <a href=#the-body-element-0>the body element</a></td>
+ <!-- <td>&#x2713; Bubbles</td> -->
+ <td>&#10003; Cancelable</td>
+ <td><a href=#concept-dnd-p title=concept-dnd-p>Protected mode</a>
+ <!-- <td>Same as last event</td> -->
+ <td><a href=#dropEffect-initialization>Based on <code>effectAllowed</code> value</a></td>
+ <td>Reject <a href=#immediate-user-selection>immediate user selection</a> as potential <a href=#current-target-element title="current target element">target element</a></td>
+ <tr><td><dfn id=event-dragleave title=event-dragleave><code>dragleave</code></dfn></td>
+ <td><a href=#current-target-element title="current target element">Previous target element</a></td>
+ <!-- <td>&#x2713; Bubbles</td> -->
+ <td>&mdash;</td>
+ <td><a href=#concept-dnd-p title=concept-dnd-p>Protected mode</a>
+ <!-- <td>Same as last event</td> -->
+ <td>"<code title="">none</code>"</td>
+ <td>None</td>
+ <tr><td><dfn id=event-dragover title=event-dragover><code>dragover</code></dfn></td>
+ <td><a href=#current-target-element>Current target element</a></td>
+ <!-- <td>&#x2713; Bubbles</td> -->
+ <td>&#10003; Cancelable</td>
+ <td><a href=#concept-dnd-p title=concept-dnd-p>Protected mode</a>
+ <!-- <td>Same as last event</td> -->
+ <td><a href=#dropEffect-initialization>Based on <code>effectAllowed</code> value</a></td>
+ <td>Reset the <a href=#current-drag-operation>current drag operation</a> to "none"</td>
+ <tr><td><dfn id=event-drop title=event-drop><code>drop</code></dfn></td>
+ <td><a href=#current-target-element>Current target element</a></td>
+ <!-- <td>&#x2713; Bubbles</td> -->
+ <td>&#10003; Cancelable</td>
+ <td><a href=#concept-dnd-ro title=concept-dnd-ro>Read-only mode</a>
+ <!-- <td>Same as last event</td> -->
+ <td><a href=#current-drag-operation>Current drag operation</a></td>
+ <td>Varies</td>
+ <tr><td><dfn id=event-dragend title=event-dragend><code>dragend</code></dfn></td>
+ <td><a href=#source-node>Source node</a></td>
+ <!-- <td>&#x2713; Bubbles</td> -->
+ <td>&mdash;</td>
+ <td><a href=#concept-dnd-p title=concept-dnd-p>Protected mode</a>
+ <!-- <td>Same as last event</td> -->
+ <td><a href=#current-drag-operation>Current drag operation</a></td>
+ <td>Varies</td>
+ </table><p>Not shown in the above table: all these events bubble, and the
+ <code title=dom-DataTransfer-effectAllowed><a href=#dom-datatransfer-effectallowed>effectAllowed</a></code>
+ attribute always has the value it had after the previous event was
+ fired, defaulting to "<code title="">uninitialized</code>" in the
+ <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code> event.</p>
+
+
+
+ <h4 id=the-draggable-attribute><span class=secno>8.6.7 </span>The <dfn title=attr-draggable><code>draggable</code></dfn> attribute</h4>
+
+ <p>All <a href=#html-elements>HTML elements</a> may have the <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> content attribute set. The
+ <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> attribute is an
+ <a href=#enumerated-attribute>enumerated attribute</a>. It has three states. The first
+ state is <i>true</i> and it has the keyword <code title="">true</code>. The second state is <i>false</i> and it has
+ the keyword <code title="">false</code>. The third state is
+ <i>auto</i>; it has no keywords but it is the <i>missing value
+ default</i>.</p>
+
+ <p>The <i>true</i> state means the element is draggable; the
+ <i>false</i> state means that it is not. The <i>auto</i> state
+ uses the default behavior of the user agent.</p>
+
+ <dl class=domintro><dt><var title="">element</var> . <code title=dom-draggable><a href=#dom-draggable>draggable</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns true if the element is draggable; otherwise, returns
+ false.</p>
+
+ <p>Can be set, to override the default and set the <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> content attribute.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-draggable title=dom-draggable><code>draggable</code></dfn> IDL
+ attribute, whose value depends on the content attribute's in the way
+ described below, controls whether or not the element is
+ draggable. Generally, only text selections are draggable, but
+ elements whose <code title=dom-draggable><a href=#dom-draggable>draggable</a></code> IDL
+ attribute is true become draggable as well.</p>
+
+ <p>If an element's <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code>
+ content attribute has the state <i>true</i>, the <code title=dom-draggable><a href=#dom-draggable>draggable</a></code> IDL attribute must return
+ true.</p>
+
+ <p>Otherwise, if the element's <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> content attribute has the
+ state <i>false</i>, the <code title=dom-draggable><a href=#dom-draggable>draggable</a></code> IDL attribute must return
+ false.</p>
+
+ <p>Otherwise, the element's <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> content attribute has the
+ state <i>auto</i>. If the element is an <code><a href=#the-img-element>img</a></code> element,
+ or, if the element is an <code><a href=#the-a-element>a</a></code> element with an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute, the <code title=dom-draggable><a href=#dom-draggable>draggable</a></code> IDL attribute must return
+ true.</p>
+
+ <p>Otherwise, the <code title=dom-draggable><a href=#dom-draggable>draggable</a></code> DOM
+ must return false.</p>
+
+ <p>If the <code title=dom-draggable><a href=#dom-draggable>draggable</a></code> IDL attribute
+ is set to the value false, the <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> content attribute must be
+ set to the literal value <code title="">false</code>. If the <code title=dom-draggable><a href=#dom-draggable>draggable</a></code> IDL attribute is set to the
+ value true, the <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code>
+ content attribute must be set to the literal value <code title="">true</code>.</p>
+
+ </div>
+
+
+ <h4 id=the-dropzone-attribute><span class=secno>8.6.8 </span>The <dfn title=attr-dropzone><code>dropzone</code></dfn> attribute</h4>
+
+ <p>All <a href=#html-elements>HTML elements</a> may have the <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> content attribute set. When
+ specified, its value must be an <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique
+ space-separated tokens</a> that are <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a>. The allowed values are the following:</p>
+
+ <dl><dt><dfn id=attr-dropzone-copy title=attr-dropzone-copy><code>copy</code></dfn></dt>
+
+ <dd><p>Indicates that dropping an accepted item on the element will
+ result in a copy of the dragged data.</p>
+
+
+ <dt><dfn id=attr-dropzone-move title=attr-dropzone-move><code>move</code></dfn></dt>
+
+ <dd><p>Indicates that dropping an accepted item on the element will
+ result in the dragged data being moved to the new location.</p>
+
+
+ <dt><dfn id=attr-dropzone-link title=attr-dropzone-link><code>link</code></dfn></dt>
+
+ <dd><p>Indicates that dropping an accepted item on the element will
+ result in a link to the original data.</p>
+
+
+ <dt>Any keyword with three characters or more, beginning with the
+ two characters U+0073 LATIN SMALL LETTER S and U+003A COLON or
+ U+0053 LATIN CAPITAL LETTER S and U+003A COLON (i.e. an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">s:</code>")<dt>
+
+ </dt><dd><p>Indicates that items with <a href=#the-drag-data-item-kind>the drag data item
+ kind</a> <i>Plain Unicode string</i> and <a href=#the-drag-data-item-type-string>the drag data
+ item type string</a> set to a value that matches the remainder
+ of the keyword are accepted.</dd>
+
+<!--DND-v3:
+ <dt>Any keyword with three characters or more, beginning with the
+ two characters U+0062 LATIN SMALL LETTER B and U+003A COLON or
+ U+0042 LATIN CAPITAL LETTER B and U+003A COLON (i.e. an <span>ASCII
+ case-insensitive</span> match for the string "<code
+ title="">b:</code>")<dt>
+
+ <dd><p>Indicates that items with <span>the drag data item
+ kind</span> <i>Blob</i>, <i>File</i>, or <i>Plain Unicode
+ string</i> and <span>the drag data item type string</span> set to a
+ value that matches the remainder of the keyword are
+ accepted.</p></dd>
+-->
+
+ <dt>Any keyword with three characters or more, beginning with the
+ two characters U+0066 LATIN SMALL LETTER F and U+003A COLON or
+ U+0046 LATIN CAPITAL LETTER F and U+003A COLON (i.e. an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">f:</code>")<dt>
+
+ </dt><dd><p>Indicates that items with <a href=#the-drag-data-item-kind>the drag data item
+ kind</a> <i><a href=#file>File</a></i> and <a href=#the-drag-data-item-type-string>the drag data item type
+ string</a> set to a value that matches the remainder of the
+ keyword are accepted.</dd>
+
+<!--DND-v4:
+ <dt>Any keyword with three characters or more, beginning with the
+ two characters U+006F LATIN SMALL LETTER O and U+003A COLON or
+ U+004F LATIN CAPITAL LETTER O and U+003A COLON (i.e. an <span>ASCII
+ case-insensitive</span> match for the string "<code
+ title="">o:</code>")<dt>
+
+ <dd><p>Indicates that items with <span>the drag data item type
+ string</span> set to a value that matches the remainder of the
+ keyword are accepted.</p></dd>
+-->
+
+ </dl><p>The <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> content
+ attribute's values must not have more than one of the three feedback
+ values (<code title=attr-dropzone-copy><a href=#attr-dropzone-copy>copy</a></code>, <code title=attr-dropzone-move><a href=#attr-dropzone-move>move</a></code>, and <code title=attr-dropzone-link><a href=#attr-dropzone-link>link</a></code>) specified. If none are
+ specified, the <code title=attr-dropzone-copy><a href=#attr-dropzone-copy>copy</a></code> value is
+ implied.</p>
+
+ <div class=impl>
+
+ <p>A <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute <dfn id=concept-dropzone-match title=concept-dropzone-match>matches a drag data store</dfn> if
+ the <a href=#dropzone-processing-steps><code title=attr-dropzone>dropzone</code> processing
+ steps</a> result in a match.</p>
+
+ <p>A <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute <dfn id=concept-dropzone-operation title=concept-dropzone-operation>specifies an operation</dfn> if
+ the <a href=#dropzone-processing-steps><code title=attr-dropzone>dropzone</code> processing
+ steps</a> result in a specified operation. The specified
+ operation is as given by those steps.</p>
+
+ <p>The <dfn id=dropzone-processing-steps><code title=attr-dropzone>dropzone</code> processing
+ steps</dfn> are as follows. They either result in a match or not,
+ and separate from this result either in a specified operation or
+ not, as defined below.</p>
+
+ <ol><li><p>Let <var title="">value</var> be the value of the <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute.</li>
+
+ <li><p>Let <var title="">keywords</var> be the result of <a href=#split-a-string-on-spaces title="split a string on spaces">splitting <var title="">value</var> on spaces</a>.</li>
+
+ <li><p>Let <var title="">matched</var> be false.</li>
+
+ <li><p>Let <var title="">operation</var> be unspecified.</li>
+
+ <li>
+
+ <p>For each value in <var title="">keywords</var>, if any, in the
+ order that they were found in <var title="">value</var>, run the
+ following steps.</p>
+
+ <ol><li><p>Let <var title="">keyword</var> be the keyword.</li>
+
+ <li>
+
+ <p>If <var title="">keyword</var> is one of "<code title=attr-dropzone-copy><a href=#attr-dropzone-copy>copy</a></code>", "<code title=attr-dropzone-move><a href=#attr-dropzone-move>move</a></code>", or "<code title=attr-dropzone-link><a href=#attr-dropzone-link>link</a></code>", then: run the following
+ substeps:</p>
+
+ <ol><li><p>If <var title="">operation</var> is still unspecified,
+ then let <var title="">operation</var> be the string given by
+ <var title="">keyword</var>.</li>
+
+ <li><p>Skip to the step labeled <i>end of keyword</i>
+ below.</li>
+
+ </ol></li>
+
+ <li><p>If <var title="">keyword</var> is shorter than three
+ characters in length, then skip to the step labeled <i>end of
+ keyword</i> below.</li>
+
+ <li><p>If the second character in <var title="">keyword</var> is
+ not a U+003A COLON character (:), then skip to the step labeled
+ <i>end of keyword</i> below.</li>
+
+ <li><p>Let <var title="">kind code</var> be the first character
+ in <var title="">keyword</var>, <a href=#converted-to-ascii-lowercase>converted to ASCII
+ lowercase</a>.</li>
+
+ <li>
+
+ <p>Jump to the appropriate step from the list below, based on
+ the value of <var title="">kind code</var>:</p>
+
+ <dl class=switch><dt>If <var title="">kind code</var> is a U+0073 LATIN SMALL LETTER S character</dt>
+ <dd>
+
+ <p>Let <var title="">kind<!--DND-v3:/DND-v4: s--></var> be
+ <i>Plain Unicode string</i>.</p>
+
+ </dd>
+
+<!--DND-v3:
+ <dt>If <var title="">kind code</var> is a U+0062 LATIN SMALL LETTER B character</dt>
+ <dd>
+
+ <p>Let <var title="">kinds</var> be <i>Plain Unicode
+ string</i>, <i>Blob</i>, and <i>File</i>.</p>
+
+ </dd>
+-->
+
+ <dt>If <var title="">kind code</var> is a U+0066 LATIN SMALL LETTER F character</dt>
+ <dd>
+
+ <p>Let <var title="">kind<!--DND-v3:/DND-v4: s--></var> be
+ <i><a href=#file>File</a></i>.</p>
+
+ </dd>
+
+<!--DND-v4:
+ <dt>If <var title="">kind code</var> is a U+006F LATIN SMALL LETTER O character</dt>
+ <dd>
+
+ <p>Let <var title="">kinds</var> be <i>Plain Unicode
+ string</i>, <i>Blob</i>, <i>File</i>, and <i>Object</i>.</p>
+
+ </dd>
+-->
+
+ <dt>Otherwise</dt>
+ <dd>
+
+ <p>Skip to the step labeled <i>end of keyword</i> below.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li><p>Let <var title="">type</var> be the string consisting of
+ all but the first two characters of <var title="">keyword</var>,
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
+
+ <li><p>If there exist any items in the <a href=#drag-data-store-item-list>drag data store item
+ list</a> whose <a href=#the-drag-data-item-kind title="the drag data item kind">drag data
+ item kind</a> is <!--DND-v3:/DND-v4: one of--> the
+ kind<!--DND-v3:/DND-v4: s--> given in <var title="">kind<!--DND-v3:/DND-v4: s--></var> and whose <span title="the drag data item type">drag data item type</span> is
+ <var title="">type</var>, then let <var title="">matched</var> be
+ true.</li>
+
+ <li><p><i>End of keyword</i>: Go on to the next keyword, if any,
+ or the next step in the overall algorithm, if there are no
+ more.</li>
+
+ </ol></li>
+
+ <li>
+
+ <p>The algorithm results in a match if <var title="">matched</var>
+ is true, and does not otherwise.</p>
+
+ <p>The algorithm results in a specified operation if <var title="">operation</var> is not unspecified. The specified
+ operation, if one is specified, is the one given by <var title="">operation</var>.</p>
+
+ </li>
+
+ </ol><p>The <dfn id=dom-dropzone title=dom-dropzone><code>dropzone</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
+ same name.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>In this example, a <code><a href=#the-div-element>div</a></code> element is made into a drop
+ target for image files using the <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> attribute. Images dropped
+ into the target are then displayed.</p>
+
+ <pre>&lt;div dropzone="copy f:image/png f:image/gif f:image/jpeg" ondrop="receive(event, this)"&gt;
+ &lt;p&gt;Drop an image here to have it displayed.&lt;/p&gt;
+&lt;/div&gt;
+&lt;script&gt;
+ function receive(event, element) {
+ var data = event.dataTransfer.items;
+ for (var i = 0; i &lt; data.length; i += 1) {
+ if ((data[i].kind == 'file') &amp;&amp; (data[i].type.match('^image/'))) {
+ var img = new Image();
+ img.src = window.createObjectURL(data[i].getAsFile());
+ element.appendChild(img);
+ }
+ }
+ }
+&lt;/script&gt;</pre>
+
+ </div>
+
+
+<!--
+ <h4>Copy and paste</h4>
+
+ <p>Copy-and-paste is a form of drag-and-drop: the "copy" part is
+ equivalent to dragging content to another application (the
+ "clipboard"), and the "paste" part is equivalent to dragging content
+ <em>from</em> another application.</p>
+
+ <p>Select-and-paste (a model used by mouse operations in the X
+ Window System) is equivalent to a drag-and-drop operation where the
+ source is the selection.</p>
+
+
+ <div class="impl">
+
+ <h5>Copy to clipboard</h5>
+
+ <p>When the user invokes a copy operation, the user agent must act
+ as if the user had invoked a drag on the current selection. If the
+ drag-and-drop operation initiates, then the user agent must act as
+ if the user had indicated (as the <span>immediate user
+ selection</span>) a hypothetical application representing the
+ clipboard. Then, the user agent must act as if the user had ended
+ the drag-and-drop operation without canceling it. If the
+ drag-and-drop operation didn't get canceled, the user agent should
+ then follow the relevant platform-specific conventions for copy
+ operations (e.g. updating the clipboard).</p>
+
+ <p>The events involved in this process are the <code
+ title="event-dragstart">dragstart</code>, <code
+ title="event-drag">drag</code>, and <code
+ title="event-dragend">dragend</code> events.</p>
+
+
+ <h5>Cut to clipboard</h5>
+
+ <p>When the user invokes a cut operation, the user agent must act as
+ if the user had invoked a copy operation (see the previous section),
+ followed, if the copy was completed successfully, by <a
+ href="#contenteditable-delete">a selection delete operation</a>.</p>
+
+ <p>The events involved in this process are the <code
+ title="event-dragstart">dragstart</code>, <code
+ title="event-drag">drag</code>, and <code
+ title="event-dragend">dragend</code> events.</p>
+
+
+ <h5>Paste from clipboard</h5>
+
+ <p>When the user invokes a clipboard paste operation, the user agent
+ must act as if the user had invoked a drag on a hypothetical
+ application representing the clipboard, setting the data associated
+ with the drag as the content on the clipboard (in whatever formats
+ are available).</p>
+
+ <p>Then, the user agent must act as if the user had indicated (as
+ the <span>immediate user selection</span>) the element with the
+ keyboard focus, and then ended the drag-and-drop operation without
+ canceling it.</p>
+
+ <p>The events involved in this process are the <code
+ title="event-dragenter">dragenter</code>, <code
+ title="event-dragover">dragover</code>, <code
+ title="event-dragleave">dragleave</code>, and <code
+ title="event-drop">drop</code> events.</p>
+
+
+ <h5>Paste from selection</h5>
+
+ <p>When the user invokes a selection paste operation, the user agent
+ must act as if the user had invoked a drag on the current selection,
+ then indicated (as the <span>immediate user selection</span>) the
+ element with the keyboard focus, and then ended the drag-and-drop
+ operation without canceling it.</p>
+
+ <p>All the drag-and-drop events can be involved in this process.</p>
+
+ </div>
+-->
+
+
+ <div class=impl>
+
+ <h4 id=security-risks-in-the-drag-and-drop-model><span class=secno>8.6.9 </span>Security risks in the drag-and-drop model</h4>
+
+ <p>User agents must not make the data added to the
+ <code><a href=#datatransfer>DataTransfer</a></code> object during the <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code> event available to scripts
+ until the <code title=event-drop><a href=#event-drop>drop</a></code> event, because
+ otherwise, if a user were to drag sensitive information from one
+ document to a second document, crossing a hostile third document in
+ the process, the hostile document could intercept the data.</p>
+
+ <p>For the same reason, user agents must consider a drop to be
+ successful only if the user specifically ended the drag operation
+ &mdash; if any scripts end the drag operation, it must be considered
+ unsuccessful (canceled) and the <code title=event-drop><a href=#event-drop>drop</a></code>
+ event must not be fired.</p>
+
+ <p>User agents should take care to not start drag-and-drop
+ operations in response to script actions. For example, in a
+ mouse-and-window environment, if a script moves a window while the
+ user has his mouse button depressed, the UA would not consider that
+ to start a drag. This is important because otherwise UAs could cause
+ data to be dragged from sensitive sources and dropped into hostile
+ documents without the user's consent.</p>
+
+ </div>
+
+
+<!--FIND-->
+
+ <h3 id=text-search-apis><span class=secno>8.7 </span>Text search APIs</h3> <!-- window.find() -->
+
+ <p class=critical>This legacy API is not very interoperably
+ implemented, and has a number of design problems (such as having six
+ boolean arguments in a row, giving the ability to expose a UA
+ dialog, affecting the selection when successful, etc). We may just
+ drop it instead. <a href=http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-May/thread.html#31457>Read
+ more...</a></p>
+
+ <!-- demo: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1076 -->
+
+ <!-- bugs:
+
+ https://bugzilla.mozilla.org/show_bug.cgi?id=672395
+ https://bugs.webkit.org/show_bug.cgi?id=64761
+
+ -->
+
+ <!-- notes:
+
+ if first argument is '', gecko throws a dialog. webkit does not.
+
+ aCaseSensitive, if true, matches case.
+ Webkit: If false, even if the search string is the equivalent of c&aring;t, it'll still match "cat".
+ Gecko: some sort of unicode case-insensitive (aring matches Aring)
+
+ search starts from the last place the user placed the invisible cursor
+
+ once find() has selected text in a text field, it acts as if the cursor jumps back to the top of the page
+
+ aWholeWord has no effect.
+
+ Gecko: aWrapAround has no effect.
+ WebKit: aWrapAround works by wrapping around at the bottom of the page (top if going backwards).
+
+ Gecko: searches iframes if aSearchInFrames is set
+ WebKit: doesn't search iframes; aSearchInFrames has no effect.
+
+ Gecko: aShowDialog works
+ Webkit: does not
+
+ Gecko: doesn't work on display:none iframes. (works fine in webkit)
+ WebKit: doesn't work before body.onload has fired or some such (works fine in gecko)
+
+ -->
+
+ <!--
+ boolean <span title="dom-find">find</span>(in optional DOMString aString, in optional boolean aCaseSensitive, in optional boolean aBackwards, in optional boolean aWrapAround, in optional aWholeWord, in optional aSearchInFrames, in optional aShowDialog);
+ -->
+
+ <p class=XXX><dfn id=dom-find title=dom-find>window.find()</dfn> goes here</p>
+
+<!--FIND-->
+
+
+
+
+<!--PEERCONNECTION-->
+<div data-component="other Hixie drafts (editor: Ian Hickson)">
+
+ <h2 id=video-conferencing-and-peer-to-peer-communication><span class=secno>9 </span>Video conferencing and peer-to-peer communication</h2>
+
+ <h3 id=introduction-10><span class=secno>9.1 </span>Introduction</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>There are a number of facets to video-conferencing in HTML:</p>
+
+ <ul><li>Getting a multimedia stream (video, audio, or both) from local
+ devices (video cameras, microphones, Web cams) or from prerecorded
+ files provided by the user.</li>
+
+ <li>Recording such streams locally.</li>
+
+ <li>Connecting to remote peers using NAT-traversal technologies
+ such as ICE, STUN, and TURN.</li>
+
+ <li>Sending the locally-produced streams to remote peers and
+ receiving streams from remote peers.</li>
+
+ <li>Displaying such streams (both the locally-produced ones and the
+ remotely-obtained ones) locally using the <code><a href=#the-video-element>video</a></code> or
+ <code><a href=#the-audio-element>audio</a></code> elements.</li>
+
+ <li>Sending arbitrary data to remote peers.</li>
+
+ </ul><p>This section defines the APIs used for these features.</p>
+
+
+ <h3 id=obtaining-local-multimedia-content><span class=secno>9.2 </span>Obtaining local multimedia content</h3>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=navigatorusermedia>NavigatorUserMedia</dfn> {
+ void <a href=#dom-navigator-getusermedia title=dom-navigator-getUserMedia>getUserMedia</a>(DOMString options, <a href=#navigatorusermediasuccesscallback>NavigatorUserMediaSuccessCallback</a>? successCallback, optional <a href=#navigatorusermediaerrorcallback>NavigatorUserMediaErrorCallback</a>? errorCallback);
+};
+<a href=#navigator>Navigator</a> implements <a href=#navigatorusermedia>NavigatorUserMedia</a>;
+
+[Callback=FunctionOnly, NoInterfaceObject]
+interface <dfn id=navigatorusermediasuccesscallback>NavigatorUserMediaSuccessCallback</dfn> {
+ void <span title=dom-NavigatorUserMediaSuccessCallback-handleEvent>handleEvent</span>(<a href=#localmediastream>LocalMediaStream</a> stream);
+};
+
+[NoInterfaceObject]<!-- this is based on PositionError in geolocation -->
+interface <dfn id=navigatorusermediaerror>NavigatorUserMediaError</dfn> {
+ const unsigned short <a href=#dom-navigatorusermediaerror-permission_denied title=dom-NavigatorUserMediaError-PERMISSION_DENIED>PERMISSION_DENIED</a> = 1;<!--
+ const unsigned short <span title="dom-NavigatorUserMediaError-UNAVAILABLE">UNAVAILABLE</span> = 2;
+ const unsigned short <span title="dom-NavigatorUserMediaError-TIMEOUT">TIMEOUT</span> = 3;-->
+ readonly attribute unsigned short <a href=#dom-navigatorusermediaerror-code title=dom-NavigatorUserMediaError-code>code</a>;<!--
+ readonly attribute DOMString <span title="dom-NavigatorUserMediaError-message">message</span>;-->
+};
+
+[Callback=FunctionOnly, NoInterfaceObject]
+interface <dfn id=navigatorusermediaerrorcallback>NavigatorUserMediaErrorCallback</dfn> {
+ void <span title=dom-NavigatorUserMediaSuccessCallback-handleEvent>handleEvent</span>(<a href=#navigatorusermediaerror>NavigatorUserMediaError</a> error);
+};</pre>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-navigator><a href=#dom-navigator>navigator</a></code> . <code title=dom-navigator-getUserMedia><a href=#dom-navigator-getusermedia>getUserMedia</a></code>(<var title="">options</var>, <var title="">successCallback</var> [, <var title="">errorCallback</var> ] )</dt>
+
+ <dd>
+
+ <p>Prompts the user for permission to use their Web cam or other
+ video or audio input.</p>
+
+ <p>The <var title="">options</var> argument is a string of
+ comma-separated values, each of which is itself a space-separated
+ list of tokens, the first token of which is from the following
+ list:</p>
+
+ <dl><dt>"<code title="">audio</code>"</dt>
+
+ <dd>The provided media needs to include audio data.</dd>
+
+
+ <dt>"<code title="">video</code>"</dt>
+
+ <dd>The provided media needs to include video data. The token can
+ be followed by the tokens "<code title="">user</code>" or "<code title="">environment</code>" to indicate the preferred cameras to
+ use.</dd>
+
+
+ </dl><p>If the user accepts, the <var title="">successCallback</var> is
+ invoked, with a suitable <code><a href=#localmediastream>LocalMediaStream</a></code> object as
+ its argument.</p>
+
+ <p>If the user declines, the <var title="">errorCallback</var> (if
+ any) is invoked.</p>
+
+ </dd>
+
+
+ <dt><var title="">error</var> . <code title=dom-NavigatorUserMediaError-code><a href=#dom-navigatorusermediaerror-code>code</a></code></dt>
+
+ <dd>
+
+ <p>Returns the current error's error code. At this time, this will
+ always be 1, for which the constant <code title=dom-NavigatorUserMediaError-PERMISSION_DENIED><a href=#dom-navigatorusermediaerror-permission_denied>PERMISSION_DENIED</a></code>
+ is defined.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>When the <dfn id=dom-navigator-getusermedia title=dom-navigator-getUserMedia><code>getUserMedia()</code></dfn>
+ method is called, the user agent must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">options</var> be the method's first
+ argument.</li>
+
+ <li><p>Let <var title="">successCallback</var> be the callback
+ indicated by the method's second argument.</li>
+
+ <li><p>Let <var title="">errorCallback</var> be the callback
+ indicated by the method's third argument, if any, or null
+ otherwise.</li>
+
+ <li><p>If <var title="">successCallback</var> is null, abort these
+ steps.</li> <!-- we could throw an exception instead (that's
+ why the method doesn't return until later: so that we can add an
+ exception here, or for /options/ below, without changing the
+ algorithm) -->
+
+ <li><p>Let <var title="">audio</var> be false.</li>
+
+ <li><p>Let <var title="">video</var> be false.</li>
+
+ <li><p>Let <var title="">camera preference</var> be the empty
+ set.</li>
+
+ <li><p><a href=#split-a-string-on-commas title="split a string on commas">Split <var title="">options</var> on commas</a> to obtain <var title="">list of options</var>.</li>
+
+ <li>
+
+ <p>For each string <var title="">option</var> in <var title="">list of options</var>, run the following substeps:</p>
+
+ <ol><li><p><a href=#split-a-string-on-spaces title="split a string on spaces">Split <var title="">option</var> on spaces</a> to obtain <var title="">list of suboptions</var>.</li>
+
+ <li><p>If the first token in <var title="">list of
+ suboptions</var> is a <a href=#case-sensitive>case-sensitive</a> match for the
+ string "<code title="">audio</code>", let <var title="">audio</var> be true.</li>
+
+ <li><p>If the first token in <var title="">list of
+ suboptions</var> is a <a href=#case-sensitive>case-sensitive</a> match for the
+ string "<code title="">video</code>", run these subsubsteps:</p>
+
+ <ol><li><p>Let <var title="">video</var> be true.</li>
+
+ <li><p>If <var title="">list of suboptions</var> contains a
+ token that is a <a href=#case-sensitive>case-sensitive</a> match for the
+ string "<code title="">user</code>", add any cameras that face
+ towards the user to the <var title="">camera preference</var>
+ set.</li>
+
+ <li><p>If <var title="">list of suboptions</var> contains a
+ token that is a <a href=#case-sensitive>case-sensitive</a> match for the
+ string "<code title="">environment</code>", add any cameras
+ that face away from the user to the <var title="">camera
+ preference</var> set.</li>
+
+ </ol></li>
+
+ </ol></li>
+
+ <!-- any error handling for /options/ should be done here (that's
+ why the method doesn't return until the next step: so we can add
+ exception throwing here) -->
+
+ <li><p>If both <var title="">audio</var> and <var title="">video</var>
+ are still false, then throw a <code><a href=#notsupportederror>NotSupportedError</a></code>
+ exception and abort these steps.</li>
+
+ <li><p>Return, and run the remaining steps asynchronously.</li>
+
+ <li><p>Optionally, e.g. based on a previously-established user
+ preference, for security reasons, or due to platform limitations,
+ jump to the step labeled <i>failure</i> below.</li>
+
+ <li>
+
+ <p>Prompt the user in a user-agent-specific manner for permission
+ to provide the <a href=#entry-script>entry script</a>'s <a href=#origin>origin</a>
+ with a <code><a href=#localmediastream>LocalMediaStream</a></code> object representing a media
+ stream.</p>
+
+ <p>If <var title="">audio</var> is true, then the provided media
+ should include an audio track. If <var title="">audio</var>
+ is false, then the provided media must not include an audio
+ track.</p>
+
+ <p>If <var title="">video</var> is true, then the provided media
+ should include a video track. If <var title="">video</var> is
+ false, then the provided media must not include a video
+ track.</p>
+
+ <p>User agents are encouraged to default to using the user's
+ primary or system default camera and/or microphone (as
+ appropriate) to generate the media stream. User agents may allow
+ users to use any media source, including pre-recorded media
+ files.</p>
+
+ <p>If <var title="">video</var> is true, then the user agent
+ should encourage the user to provide a camera from the <var title="">camera preference</var> set.</p>
+
+ <p>User agents may wish to offer the user more control over the
+ provided media. For example, a user agent could offer to enable a
+ camera light or flash, or to change settings such as the frame
+ rate or shutter speed.</p>
+
+ <p>If the user grants permission to use local recording devices,
+ user agents are encouraged to include a prominent indicator that
+ the devices are "hot" (i.e. an "on-air" or "recording"
+ indicator).</p>
+
+ <p>If the user denies permission, jump to the step labeled
+ <i>failure</i> below. If the user never responds, this algorithm
+ stalls on this step.</p>
+
+ </li>
+
+ <li><p>Let <var title="">stream</var> be the
+ <code><a href=#localmediastream>LocalMediaStream</a></code> object for which the user granted
+ permission.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to invoke <var title="">successCallback</var> with <var title="">stream</var> as
+ its argument.</li>
+
+ <li><p>Abort these steps.</li>
+
+ <li><p><i>Failure</i>: If <var title="">errorCallback</var> is
+ null, abort these steps.</li>
+
+ <li><p>Let <var title="">error</var> be a new
+ <code><a href=#navigatorusermediaerror>NavigatorUserMediaError</a></code> object whose <code title=dom-NavigatorUserMediaError-code><a href=#dom-navigatorusermediaerror-code>code</a></code> attribute has
+ the numeric value 1 (<code title=dom-NavigatorUserMediaError-PERMISSION_DENIED><a href=#dom-navigatorusermediaerror-permission_denied>PERMISSION_DENIED</a></code>).</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to invoke <var title="">errorCallback</var> with <var title="">error</var> as its
+ argument.</li>
+
+ </ol><p>The <a href=#task-source>task source</a> for these <a href=#concept-task title=concept-task>tasks</a> is the <a href=#user-interaction-task-source>user interaction task
+ source</a>.</p>
+
+ <hr><p>The <dfn id=dom-navigatorusermediaerror-code title=dom-NavigatorUserMediaError-code><code>code</code></dfn>
+ attribute of a <code><a href=#navigatorusermediaerror>NavigatorUserMediaError</a></code> object must return the code
+ for the error, which must be <!--one of--> the following:</p>
+
+ <dl><dt><dfn id=dom-navigatorusermediaerror-permission_denied title=dom-NavigatorUserMediaError-PERMISSION_DENIED><code>PERMISSION_DENIED</code></dfn> (numeric value 1)</dt>
+
+ <dd>The user denied the page permission to use the user's media devices.</dd>
+
+ </dl></div>
+
+ <div class=example>
+
+ <p>A voice chat feature in a game could attempt to get access to
+ the user's microphone by calling the API as follows:</p>
+
+ <pre>&lt;script&gt;
+ navigator.getUserMedia('audio', gotAudio);
+ function gotAudio(stream) {
+ // ... use 'stream' ...
+ }
+&lt;/script&gt;</pre>
+
+ </div>
+
+ <div class=example>
+
+ <p>A video-conferencing system would ask for both audio and video:</p>
+
+ <pre>&lt;script&gt;
+ function beginCall() {
+ navigator.getUserMedia('audio,video user', gotStream);
+ }
+ function gotStream(stream) {
+ // ... use 'stream' ...
+ }
+&lt;/script&gt;</pre>
+
+ </div>
+
+
+
+ <h3 id=stream-api><span class=secno>9.3 </span>Stream API</h3>
+
+ <h4 id=introduction-11><span class=secno>9.3.1 </span>Introduction</h4>
+
+ <p>The <code><a href=#mediastream>MediaStream</a></code> interface is used to represent
+ streams of media data, typically (but not necessarily) of audio
+ and/or video content, e.g. from a local camera or a remote site. The
+ data from a <code><a href=#mediastream>MediaStream</a></code> object does not necessarily
+ have a canonical binary form; for example, it could just be "the
+ video currently coming from the user's video camera". This allows
+ user agents to manipulate media streams in whatever fashion is most
+ suitable on the user's platform.</p>
+
+ <p>Each <code><a href=#mediastream>MediaStream</a></code> object can represent zero or more
+ tracks, in particular audio and video tracks. Tracks can contain
+ multiple channels of parallel data; for example a single audio track
+ could have nine channels of audio data to represent a 7.2 surround
+ sound audio track.</p>
+
+ <p>Each track represented by a <code><a href=#mediastream>MediaStream</a></code> object has a
+ corresponding <code><a href=#mediastreamtrack>MediaStreamTrack</a></code> object.</p>
+
+ <p>A <code><a href=#mediastream>MediaStream</a></code> object has an input and an output. The
+ input depends on how the object was created: a
+ <code><a href=#localmediastream>LocalMediaStream</a></code> object generated by a <code title=dom-navigator-getUserMedia><a href=#dom-navigator-getusermedia>getUserMedia()</a></code> call, for
+ instance, might take its input from the user's local camera, while a
+ <code><a href=#mediastream>MediaStream</a></code> created by a <code><a href=#peerconnection>PeerConnection</a></code>
+ object will take as input the data received from a remote peer. The
+ output of the object controls how the object is used, e.g. what is
+ saved if the object is written to a file, what is displayed if the
+ object is used in a <code><a href=#the-video-element>video</a></code> element, or indeed what is
+ transmitted to a remote peer if the object is used with a
+ <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
+
+ <p>Each track in a <code><a href=#mediastream>MediaStream</a></code> object can be disabled,
+ meaning that it is muted in the object's output. All tracks are
+ initially enabled.</p>
+
+ <p id=finishedMute>A <code><a href=#mediastream>MediaStream</a></code> can be <a href=#concept-stream-finished title=concept-stream-finished>finished</a>, indicating that its
+ inputs have forever stopped providing data. When a
+ <code><a href=#mediastream>MediaStream</a></code> object is finished, all its tracks are
+ muted regardless of whether they are enabled or disabled.</p>
+
+ <p>The output of a <code><a href=#mediastream>MediaStream</a></code> object must correspond
+ to the tracks in its input. Muted audio tracks must be replaced with
+ silence. Muted video tracks must be replaced with blackness.</p>
+
+ <p>A <code><a href=#mediastream>MediaStream</a></code> object's output can be "forked" by
+ creating a new <code><a href=#mediastream>MediaStream</a></code> object from it using the
+ <code title=dom-MediaStream><a href=#dom-mediastream>MediaStream()</a></code> constructor. The
+ new <code><a href=#mediastream>MediaStream</a></code> object's input is the output of the
+ object from which it was created, with any disabled tracks removed,
+ and its output is therefore at most a subset of that "parent"
+ object. (Merely muted tracks are not removed, so the tracks do not
+ change when the parent is finished.) When such a fork's parent
+ finishes, the fork is also said to have finished.</p>
+
+ <p><img alt="" src=greenbox.png></p><!-- no alt since
+ it's all described in the previous paragraphs: this is just a
+ summary -->
+
+<!--
+c.clearRect(0, 0, 640, 480);
+c.save();
+try {
+ with (c) {
+ save();
+ strokeStyle = '#AA0000';
+ lineWidth = 20;
+ beginPath();
+ moveTo(50,98);
+ lineTo(550, 98);
+ stroke();
+ }
+ mediaStream(c,50,10, true);
+
+} finally {
+ c.restore();
+}
+
+function cameraIcon(c,x,y) {
+ with (c) { save(); try {
+ translate(x,y);
+ fillRect(-10,-10,20,20);
+ beginPath();
+ moveTo(7,0);
+ lineTo(20,-10);
+ lineTo(20,10);
+ fill();
+ font = '100 8px "Press Start 2P", sans-serif';
+ textAlign = 'center';
+ textBaseline = 'top';
+ fillText('Camera', 4, 15);
+ } finally { restore(); } }
+}
+
+function mediaStream(c,x,y,vid) {
+ with (c) {
+ save();
+ translate(x-10,y-97);
+
+ // cable
+ fillStyle = 'black';
+ font = '100 10px "Press Start 2P", sans-serif';
+ textAlign = 'right';
+ fillText('Input', 95, 170);
+ textAlign = 'left';
+ fillText('Output', 407, 170);
+
+ // media stream
+ fillStyle = '#EE8800';
+ strokeStyle = '#FFCC00';
+ lineWidth = 6;
+ fillRect(100,100,300,170);
+ strokeRect(100,100,300,170);
+ fillStyle = 'black';
+ font = '900 12px "Press Start 2P", sans-serif';
+ textAlign = 'left';
+ fillText('MediaStream', 110, 123);
+
+ // tracks
+ textAlign = 'left';
+ strokeStyle = '#CC3300';
+ fillStyle = '#FFFF00';
+ lineWidth = 4;
+ globalAlpha = vid ? 1 : 0.4;
+ fillRect(120,140,100,110);
+ strokeRect(120,140,100,110);
+ globalAlpha = 1;
+ fillRect(238,140,100,110);
+ strokeRect(238,140,100,110);
+ fillStyle = 'black';
+ font = '900 10px "Press Start 2P", sans-serif';
+ globalAlpha = vid ? 1 : 0.4;
+ fillText('Track', 123, 155);
+ fillText('(video)', 123, 170);
+ globalAlpha = 1;
+ fillText('Track', 241, 155);
+ fillText('(stereo', 241, 170);
+ fillText(' audio)', 241, 185);
+
+ // channels
+ strokeStyle = '#999999';
+ fillStyle = '#FFFFFF';
+ lineWidth = 2;
+ fillRect(245,191,86,23);
+ strokeRect(245,191,86,23);
+ fillRect(245,220,86,23);
+ strokeRect(245,220,86,23);
+ fillStyle = 'black';
+ font = '100 8px "Press Start 2P", sans-serif';
+ textAlign = 'left';
+ textBaseline = 'alphabetic';
+ fillText('left', 249, 202);
+ fillText('channel', 249, 211);
+ fillText('right', 249, 231);
+ fillText('channel', 249, 240);
+
+ // track check marks
+ fillStyle = 'black';
+ font = '900 35px "Lucida Grande", sans-serif';
+ textAlign = 'center';
+ textBaseline = 'middle';
+ fillText(vid ? '\u2713' : '\u2716', 220, 245);
+ fillText('\u2713', 338, 245);
+
+ restore();
+ }
+}
+-->
+
+ <p>This can be used, for instance, in a video-conferencing scenario
+ to display the local video from the user's camera and microphone in
+ a local monitor, while only transmitting the audio to the remote
+ peer (e.g. in response to the user using a "video mute"
+ feature).</p>
+
+ <p><img alt="" src=greenbox.png></p><!-- again, no
+ alt since it's all described in the previous paragraphs: this is
+ just a summary -->
+
+<!--
+c.clearRect(0, 0, 640, 480);
+c.save();
+try {
+ with (c) {
+ save();
+ strokeStyle = '#AA0000';
+ lineWidth = 20;
+ beginPath();
+ moveTo(50,98);
+ lineTo(550, 98);
+ lineTo(550, 210);
+ lineTo(50, 210);
+ lineTo(50, 320);
+ lineTo(550, 320);
+ lineTo(550,420);
+ stroke();
+ beginPath();
+ moveTo(50,320);
+ lineTo(50,420);
+ stroke();
+ restore();
+ fillStyle = 'black';
+ font = '100 10px "Press Start 2P", sans-serif';
+ textAlign = 'center';
+ fillText('<video>', 50, 440);
+ fillText('PeerConnection', 550, 440);
+ font = '100 8px "Press Start 2P", sans-serif';
+ }
+ cameraIcon(c,25,98)
+ mediaStream(c,50,10, true);
+ mediaStream(c,50,233, false);
+
+ with (c) {
+ font = '100 8px "Press Start 2P", sans-serif';
+ textAlign = 'left';
+ textBaseline = 'middle';
+ fillStyle = 'gray';
+
+ fillText('from', 4, 130);
+ fillText('getUserMedia()', 4, 140);
+
+ fillText('via URL.createObjectURL()', 4, 450);
+
+ textAlign = 'center';
+ fillText('via addStream()', 550, 450);
+ }
+} finally {
+ c.restore();
+}
+
+function cameraIcon(c,x,y) {
+ with (c) { save(); try {
+ translate(x,y);
+ fillRect(-10,-10,20,20);
+ beginPath();
+ moveTo(7,0);
+ lineTo(20,-10);
+ lineTo(20,10);
+ fill();
+ font = '100 8px "Press Start 2P", sans-serif';
+ textAlign = 'center';
+ textBaseline = 'top';
+ fillText('Camera', 4, 15);
+ } finally { restore(); } }
+}
+
+function mediaStream(c,x,y,vid) {
+ with (c) {
+ save();
+ translate(x-10,y-97);
+
+ // cable
+ fillStyle = 'black';
+ font = '100 10px "Press Start 2P", sans-serif';
+ textAlign = 'right';
+ fillText('Input', 95, 170);
+ textAlign = 'left';
+ fillText('Output', 407, 170);
+
+ // media stream
+ fillStyle = '#EE8800';
+ strokeStyle = '#FFCC00';
+ lineWidth = 6;
+ fillRect(100,100,300,170);
+ strokeRect(100,100,300,170);
+ fillStyle = 'black';
+ font = '900 12px "Press Start 2P", sans-serif';
+ textAlign = 'left';
+ fillText(!vid ? 'MediaStream' : 'LocalMediaStream', 110, 123);
+
+ // tracks
+ textAlign = 'left';
+ strokeStyle = '#CC3300';
+ fillStyle = '#FFFF00';
+ lineWidth = 4;
+ globalAlpha = vid ? 1 : 0.4;
+ fillRect(120,140,100,110);
+ strokeRect(120,140,100,110);
+ globalAlpha = 1;
+ fillRect(238,140,100,110);
+ strokeRect(238,140,100,110);
+ fillStyle = 'black';
+ font = '900 10px "Press Start 2P", sans-serif';
+ globalAlpha = vid ? 1 : 0.4;
+ fillText('Track', 123, 155);
+ fillText('(video)', 123, 170);
+ globalAlpha = 1;
+ fillText('Track', 241, 155);
+ fillText('(stereo', 241, 170);
+ fillText(' audio)', 241, 185);
+
+ // channels
+ strokeStyle = '#999999';
+ fillStyle = '#FFFFFF';
+ lineWidth = 2;
+ fillRect(245,191,86,23);
+ strokeRect(245,191,86,23);
+ fillRect(245,220,86,23);
+ strokeRect(245,220,86,23);
+ fillStyle = 'black';
+ font = '100 8px "Press Start 2P", sans-serif';
+ textAlign = 'left';
+ textBaseline = 'alphabetic';
+ fillText('left', 249, 202);
+ fillText('channel', 249, 211);
+ fillText('right', 249, 231);
+ fillText('channel', 249, 240);
+
+ // track check marks
+ fillStyle = 'black';
+ font = '900 35px "Lucida Grande", sans-serif';
+ textAlign = 'center';
+ textBaseline = 'middle';
+ fillText(vid ? '\u2713' : '\u2716', 220, 245);
+ fillText('\u2713', 338, 245);
+
+ restore();
+ }
+}
+-->
+
+ <p>When a track in a <code><a href=#mediastream>MediaStream</a></code> <var title="">parent</var> is disabled, any <code><a href=#mediastreamtrack>MediaStreamTrack</a></code>
+ objects corresponding to the tracks in any <code><a href=#mediastream>MediaStream</a></code>
+ objects that were created from <var title="">parent</var> are
+ disassociated from any track, and must not be reused for tracks
+ again. If a disabled track in a <code><a href=#mediastream>MediaStream</a></code> <var title="">parent</var> is re-enabled, from the perspective of any
+ <code><a href=#mediastream>MediaStream</a></code> objects that were created from <var title="">parent</var> it is a new track and thus new
+ <code><a href=#mediastreamtrack>MediaStreamTrack</a></code> objects must be created for the tracks
+ that correspond to the re-enabled track.</p>
+
+ <hr><p>The <code><a href=#localmediastream>LocalMediaStream</a></code> interface is used when the user
+ agent is generating the stream's data (e.g. from a camera or
+ streaming it from a local video file). It allows authors to control
+ individual tracks during the generation of the content, e.g. to
+ allow the user to temporarily disable a local camera during a
+ video-conference chat.</p>
+
+ <p>When a <code><a href=#localmediastream>LocalMediaStream</a></code> object is being generated
+ from a local file (as opposed to a live audio/video source), the
+ user agent should stream the data from the file in real time, not
+ all at once. This reduces the ease with which pages can distinguish
+ live video from pre-recorded video, which can help protect the
+ user's privacy.</p>
+
+
+ <h4 id=interface-definitions><span class=secno>9.3.2 </span>Interface definitions</h4>
+
+ <!-- v2: support reading the bits from the stream directly, for use
+ with streaming over WebSocket? Or do we rely on FileReader for that?
+ sicking suggests defining a DataStream or BlobStream interface that
+ you can get from a Stream to get to the underlying data; such an
+ object would then be readable using the File API -->
+
+ <pre class=idl>[<a href=#dom-mediastream title=dom-MediaStream>Constructor</a>(<a href=#mediastream>MediaStream</a> parentStream)]
+interface <dfn id=mediastream>MediaStream</dfn> : <a href=#eventtarget>EventTarget</a> {
+ readonly attribute DOMString <a href=#dom-mediastream-label title=dom-MediaStream-label>label</a>;
+ readonly attribute <a href=#mediastreamtrack>MediaStreamTrack</a>[] <a href=#dom-mediastream-tracks title=dom-MediaStream-tracks>tracks</a>;
+
+ <a href=#mediastreamrecorder>MediaStreamRecorder</a> <a href=#dom-mediastream-record title=dom-MediaStream-record>record</a>();
+<!--
+ const unsigned short <span title="dom-MediaStream-LOADING">LOADING</span> = 0; -->
+ const unsigned short <a href=#dom-mediastream-live title=dom-MediaStream-LIVE>LIVE</a> = 1;
+ const unsigned short <a href=#dom-mediastream-ended title=dom-MediaStream-ENDED>ENDED</a> = 2;
+ readonly attribute unsigned short <a href=#dom-mediastream-readystate title=dom-MediaStream-readyState>readyState</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-mediastream-onended title=handler-MediaStream-onended>onended</a>;
+};
+
+interface <dfn id=localmediastream>LocalMediaStream</dfn> : <a href=#mediastream>MediaStream</a> {
+ void <a href=#dom-mediastream-stop title=dom-MediaStream-stop>stop</a>();
+};
+
+interface <dfn id=mediastreamtrack>MediaStreamTrack</dfn> {
+ readonly attribute DOMString <a href=#dom-mediastreamtrack-kind title=dom-MediaStreamTrack-kind>kind</a>;
+ readonly attribute DOMString <a href=#dom-mediastreamtrack-label title=dom-MediaStreamTrack-label>label</a>;
+ attribute boolean <a href=#dom-mediastreamtrack-enabled title=dom-MediaStreamTrack-enabled>enabled</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">stream</var> = new <code title=dom-MediaStream><a href=#dom-mediastream>MediaStream</a></code>( <var title="">parentStream</var> )</dt>
+
+ <dd>
+
+ <p>Creates a new <code><a href=#mediastream>MediaStream</a></code> object whose tracks are the enabled tracks of <var title="">parentStream</var>.</p>
+
+ </dd>
+
+
+ <dt><var title="">stream</var> . <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code></dt>
+
+ <dd>
+
+ <p>Returns a label that is unique to this stream, so that streams
+ can be recognised after they are sent through the
+ <code><a href=#peerconnection>PeerConnection</a></code> API.</p>
+
+ </dd>
+
+
+ <dt><var title="">recorder</var> = <var title="">stream</var> . <code title=dom-MediaStream-record><a href=#dom-mediastream-record>record</a></code>()</dt>
+
+ <dd>
+
+ <p>Begins recording the stream. The returned
+ <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object provides access to the
+ recorded data.</p>
+
+ </dd>
+
+
+ <dt><var title="">stream</var> . <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop</a></code>()</dt>
+
+ <dd>
+
+ <p>Permanently stops the generation of media data for the stream.</p>
+
+ </dd>
+
+
+ <dt><var title="">stream</var> . <code title=dom-MediaStream-tracks><a href=#dom-mediastream-tracks>tracks</a></code></dt>
+
+ <dd>
+
+ <p>Returns a <code><a href=#mediastreamtrack>MediaStreamTrack</a></code> array representing
+ the tracks that can be enabled and disabled.</p>
+
+ </dd>
+
+
+ <dt><var title="">track</var> = <var title="">stream</var> . <code title=dom-MediaStream-tracks><a href=#dom-mediastream-tracks>tracks</a></code>[<var title="">index</var>]</dt>
+
+ <dd>
+
+ <p>Returns the specified <code><a href=#mediastreamtrack>MediaStreamTrack</a></code> object.</p>
+
+ </dd>
+
+
+ <dt><var title="">track</var> . <code title=dom-MediaStreamTrack-kind><a href=#dom-mediastreamtrack-kind>kind</a></code></dt>
+
+ <dd>
+
+ <p>Returns the string "<code title="">audio</code>" if the track
+ is an audio track, and the string "<code title="">video</code>" if
+ it is a video track.</p>
+
+ </dd>
+
+
+ <dt><var title="">track</var> . <code title=dom-MediaStreamTrack-label><a href=#dom-mediastreamtrack-label>label</a></code></dt>
+
+ <dd>
+
+ <p>Returns the label of the given track, if known, or the empty string otherwise.</p>
+
+ </dd>
+
+
+ <dt><var title="">track</var> . <code title=dom-MediaStreamTrack-enabled><a href=#dom-mediastreamtrack-enabled>enabled</a></code> [ = <var title="">value</var> ]</dt>
+
+ <dd>
+
+ <p>Returns true if the given track is active in the <code><a href=#mediastream>MediaStream</a></code>'s output, and false otherwise.</p>
+
+ <p>Can be set, to change whether the track is enabled or not.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-mediastream title=dom-MediaStream><code>MediaStream(<var title="">parentStream</var>)</code></dfn> constructor must return a
+ new <code><a href=#mediastream>MediaStream</a></code> object whose tracks at any moment in
+ time are the enabled tracks of <var title="">parentStream</var> at
+ that moment, and whose <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> is equal to the <var title="">parentStream</var>'s.</p>
+
+ <p>The <dfn id=dom-mediastream-readystate title=dom-MediaStream-readyState><code>readyState</code></dfn>
+ attribute represents the state of the stream. It must return the
+ value to which the user agent last set it (as defined below). It can
+ have the following values:</p>
+
+ <dl><dt><dfn id=dom-mediastream-live title=dom-MediaStream-LIVE><code>LIVE</code></dfn> (numeric value 1)</dt>
+
+ <dd>The stream is active (the user agent is making a best-effort
+ attempt to receive or generate data in real time).</dd>
+
+ <dt><dfn id=dom-mediastream-ended title=dom-MediaStream-ENDED><code>ENDED</code></dfn> (numeric value 2)</dt>
+
+ <dd>The stream has finished (the user agent is no longer receiving
+ or generating data, and will never receive or generate more data
+ for this stream).</dd>
+
+ </dl><p>When a <code><a href=#mediastream>MediaStream</a></code> object is created, its <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute must
+ be set to <code title=dom-MediaStream-LIVE><a href=#dom-mediastream-live>LIVE</a></code> (1), unless
+ it is being created using the <code title=dom-MediaStream><a href=#dom-mediastream>MediaStream()</a></code> constructor whose
+ argument is a <code><a href=#mediastream>MediaStream</a></code> object whose <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute has
+ the value <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2), in
+ which case the <code><a href=#mediastream>MediaStream</a></code> object must be created with
+ its <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code>
+ attribute set to <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code>
+ (2).</p>
+
+ <p>A <code><a href=#mediastream>MediaStream</a></code> object is said to <i>end</i> when the
+ user agent learns that no more data will ever be forthcoming for
+ this stream.</p>
+
+ <p>When a <code><a href=#mediastream>MediaStream</a></code> object ends for any reason (e.g.
+ because the user rescinds the permission for the page to use the
+ local camera, or because the data comes from a finite file and the
+ file's end has been reached and the user has not requested that it
+ be looped, or because the stream comes from a remote peer and the
+ remote peer has permanently stopped sending data, or because the
+ <code><a href=#mediastream>MediaStream</a></code> was created from another
+ <code><a href=#mediastream>MediaStream</a></code> and that stream has just itself ended), it
+ is said to be <dfn id=concept-stream-finished title=concept-stream-finished>finished</dfn>.
+ When this happens for any reason other than the <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code> method being invoked, the
+ user agent must <a href=#queue-a-task>queue a task</a> that runs the following
+ steps:</p>
+
+ <ol><li><p>If the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute has the
+ value <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2) already, then
+ abort these steps. (The <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code>
+ method was probably called just before the stream stopped for other
+ reasons, e.g. the user clicked an in-page stop button and then the
+ user-agent-provided stop button.)</li>
+
+ <li><p>Set the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute to <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2).</li>
+
+ <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-MediaStream-ended><a href=#event-mediastream-ended>ended</a></code> at the object.</li>
+
+ </ol><p>As soon as a <code><a href=#mediastream>MediaStream</a></code> object is <a href=#concept-stream-finished title=concept-stream-finished>finished</a>, the stream's tracks
+ start outputting only silence and/or blackness, as appropriate, <a href=#finishedMute>as defined earlier</a>.</p>
+
+ <p>If the end of the stream was reached due to a user request, the
+ <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#user-interaction-task-source>user interaction task
+ source</a>. Otherwise the <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#networking-task-source>networking task
+ source</a>.</p>
+
+ <hr><p>When a <code><a href=#localmediastream>LocalMediaStream</a></code> object's <dfn id=dom-mediastream-stop title=dom-MediaStream-stop><code>stop()</code></dfn> method is
+ invoked, the user agent must <a href=#queue-a-task>queue a task</a> that runs the
+ following steps:</p>
+
+ <ol><li><p>If the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute is
+ in the <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2) state,
+ then abort these steps.</li>
+
+ <li><p>Permanently stop the generation of data for the stream. If
+ the data is being generated from a live source (e.g. a microphone
+ or camera), and no other stream is being generated from a live
+ source, then the user agent should remove any active "on-air"
+ indicator. If the data is being generated from a prerecorded source
+ (e.g. a video file), any remaining content in the file is ignored.
+ The stream is <a href=#concept-stream-finished title=concept-stream-finished>finished</a>. The stream's
+ tracks start outputting only silence and/or blackness, as
+ appropriate, <a href=#finishedMute>as defined
+ earlier</a>.</li>
+
+ <li><p>Set the object's <code title=dom-MediaStream-readyState><a href=#dom-mediastream-readystate>readyState</a></code> attribute to
+ <code title=dom-MediaStream-ENDED><a href=#dom-mediastream-ended>ENDED</a></code> (2).</li>
+
+ <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-MediaStream-ended><a href=#event-mediastream-ended>ended</a></code> at the object.</li>
+
+ </ol><p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> queued for the <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code> method is the <a href=#dom-manipulation-task-source>DOM
+ manipulation task source</a>.</p>
+
+ <hr><p>When a <code><a href=#localmediastream>LocalMediaStream</a></code> object is created, the user
+ agent must generate a globally unique identifier string, and must
+ initialize the object's <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code>
+ attribute to that string. Such strings must only use characters in
+ the ranges U+0021, U+0023 to U+0027, U+002A to U+002B, U+002D to
+ U+002E, U+0030 to U+0039, U+0041 to U+005A, U+005E to U+007E, and
+ must be 36 characters long.</p> <!-- UUIDs have 36 characters
+ including hyphens; the ranges above comes from RFC4574 (the a=label:
+ thing in SDP) -->
+
+ <p>When a <code><a href=#mediastream>MediaStream</a></code> is created to represent a stream
+ obtained from a remote peer, the <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> attribute is initialized from
+ information provided by the remote source.</p> <!-- described below
+ -->
+
+ <p>When a <code><a href=#mediastream>MediaStream</a></code> is created from another using the
+ <code title=dom-MediaStream><a href=#dom-mediastream>MediaStream()</a></code> constructor, the
+ <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> attribute is
+ initialized from the original.</p> <!-- described above -->
+
+ <p>The <dfn id=dom-mediastream-label title=dom-MediaStream-label><code>label</code></dfn>
+ attribute must return the value to which it was initialized when the
+ object was created.</p>
+
+ <p class=note>The label of a <code><a href=#mediastream>MediaStream</a></code> object is
+ unique to the source of the stream, but that does not mean it is not
+ possible to end up with duplicates. For example, when a
+ <code><a href=#mediastream>MediaStream</a></code> object is created from another using the
+ <code title=dom-MediaStream><a href=#dom-mediastream>MediaStream()</a></code> constructor, the
+ fork has the same label as the original. Similarly, a locally
+ generated stream could be sent from one user to a remote peer using
+ <code><a href=#peerconnection>PeerConnection</a></code>, and then sent back to the original user
+ in the same manner, in which case the original user will have
+ multiple streams with the same label (the locally-generated one and
+ the one received from the remote peer).</p>
+
+ <hr><p>When the <dfn id=dom-mediastream-record title=dom-MediaStream-record><code>record()</code></dfn> method is
+ invoked, the user agent must return a new
+ <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object associated with the stream.</p>
+
+ <hr><p>A <code><a href=#mediastream>MediaStream</a></code> can have multiple audio and video
+ sources (e.g. because the user has multiple microphones, or because
+ the real source of the stream is a <a href=#media-resource>media resource</a> with
+ many media tracks). The stream represented by a
+ <code><a href=#mediastream>MediaStream</a></code> thus has zero or more tracks.</p>
+
+ <hr><p>The <dfn id=dom-mediastream-tracks title=dom-MediaStream-tracks><code>tracks</code></dfn>
+ attribute must return a <a href=#platform-array-objects title="platform array objects">platform array
+ object</a> for objects of type <code><a href=#mediastreamtrack>MediaStreamTrack</a></code> that is
+ <i>fixed length</i> and <i>read only</i>. The same object must be
+ returned each time the attribute is accessed. <a href=#refsWEBIDL>[WEBIDL]</a></p>
+
+ <p>The array must contain the <code><a href=#mediastreamtrack>MediaStreamTrack</a></code> objects
+ that correspond to the tracks of the stream. The relative order of
+ all tracks in a user agent must be stable. All audio tracks must
+ precede all video tracks. Tracks that come from a <a href=#media-resource>media
+ resource</a> whose format defines an order must be in the order
+ defined by the format; tracks that come from a <a href=#media-resource>media
+ resource</a> whose format does not define an order must be in the
+ relative order in which the tracks are declared in that <a href=#media-resource>media
+ resource</a>. Within these constraints, the order is user-agent
+ defined.</p> <!-- doesn't matter currently since I can't think of
+ any way that you can get multiple tracks together. It would matter
+ if we allowed a MediaStream() constructor that took an array of
+ streams, though, or if getUserMedia() could return multiple audio or
+ video tracks. -->
+
+ <p>The <dfn id=dom-mediastreamtrack-kind title=dom-MediaStreamTrack-kind><code>MediaStreamTrack.kind</code></dfn>
+ attribute must return the string "<code title="">audio</code>" if
+ the object's corresponding track is or was an audio track, "<code title="">video</code>" if the corresponding track is or was a video
+ track, and a user-agent defined string otherwise.</p>
+
+ <p>User agents may label audio and video sources (e.g. "Internal
+ microphone" or "External USB Webcam"). The <dfn id=dom-mediastreamtrack-label title=dom-MediaStreamTrack-label><code>MediaStreamTrack.label</code></dfn>
+ attribute must return the label of the object's corresponding track,
+ if any. If the corresponding track has or had no label, the
+ attribute must instead return the empty string.</p>
+
+ <p class=note>Thus the <code title=dom-MediaStreamTrack-kind><a href=#dom-mediastreamtrack-kind>kind</a></code> and <code title=dom-MediaStreamTrack-label><a href=#dom-mediastreamtrack-label>label</a></code> attributes do not change
+ value, even if the <code><a href=#mediastreamtrack>MediaStreamTrack</a></code> object is disassociated
+ from its corresponding track.</p>
+
+ <p>The <dfn id=dom-mediastreamtrack-enabled title=dom-MediaStreamTrack-enabled><code>MediaStreamTrack.enabled</code></dfn>
+ attribute, on getting, must return the last value to which it was
+ set. On setting, it must be set to the new value, and then, if the
+ <code><a href=#mediastreamtrack>MediaStreamTrack</a></code> object is still associated with a track,
+ must enable the track if the new value is true, and disable it
+ otherwise.</p>
+
+ <p class=note>Thus, after a <code><a href=#mediastreamtrack>MediaStreamTrack</a></code> is
+ disassociated from its track, its <code title=dom-MediaStreamTrack-enabled><a href=#dom-mediastreamtrack-enabled>enabled</a></code> attribute still
+ changes value when set, it just doesn't do anything with that new
+ value.</p>
+
+ <hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ all objects implementing the <code><a href=#mediastream>MediaStream</a></code> interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-mediastream-onended title=handler-MediaStream-onended><code>onended</code></dfn> <td> <code title=event-MediaStream-ended><a href=#event-mediastream-ended>ended</a></code>
+ </table></div>
+
+ <div class=example>
+
+ <p>This sample code exposes a button. When clicked, the button is
+ disabled and the user is prompted to offer a stream. The user can
+ cause the button to be re-enabled by providing a stream (e.g.
+ giving the page access to the local camera) and then disabling the
+ stream (e.g. revoking that access).</p>
+
+ <pre>
+&lt;input type="button" value="Start" onclick="start()" id="startBtn"&gt;
+&lt;script&gt;
+ var startBtn = document.getElementById('startBtn');
+ function start() {
+ navigator.getUserMedia('audio,video', gotStream);
+ startBtn.disabled = true;
+ }
+ function gotStream(stream) {
+ stream.onended = function () {
+ startBtn.disabled = false;
+ }
+ }
+&lt;/script&gt;</pre>
+
+ </div>
+
+ <pre class=idl>interface <dfn id=mediastreamrecorder>MediaStreamRecorder</dfn> {
+ void <a href=#dom-mediastreamrecorder-getrecordeddata title=dom-MediaStreamRecorder-getRecordedData>getRecordedData</a>(<a href=#blobcallback>BlobCallback</a>? callback);
+};
+
+[Callback=FunctionOnly, NoInterfaceObject]
+interface <dfn id=blobcallback>BlobCallback</dfn> {
+ void <span title=dom-BlobCallback-handleEvent>handleEvent</span>(<a href=#blob>Blob</a> blob);
+};</pre>
+
+ <dl class=domintro><dt><var title="">recorder</var> . <code title=dom-MediaStreamRecorder-getRecordedData><a href=#dom-mediastreamrecorder-getrecordeddata>getRecordedData</a></code>(<var title="">callback</var>)</dt>
+
+ <dd>
+
+ <p>Creates a <code><a href=#blob>Blob</a></code> of the recorded data, and invokes
+ the provided callback with that <code><a href=#blob>Blob</a></code>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>When the <dfn id=dom-mediastreamrecorder-getrecordeddata title=dom-MediaStreamRecorder-getRecordedData><code>getRecordedData()</code></dfn>
+ method is called, the user agent must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">callback</var> be the callback
+ indicated by the method's first argument.</li>
+
+ <li><p>If <var title="">callback</var> is null, abort these
+ steps.</li> <!-- we could throw an exception instead (that's
+ why the method doesn't return until later: so that we can add an
+ exception here without changing the algorithm) -->
+
+ <li><p>Let <var title="">data</var> be the data that was streamed
+ by the <code><a href=#mediastream>MediaStream</a></code> object from which the
+ <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> was created since the creation of the
+ <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object.</li>
+
+ <li><p>Return, and run the remaining steps asynchronously.</li>
+
+ <li><p>Generate a file that containing <var title="">data</var> in
+ a format supported by the user agent for use in <code><a href=#the-audio-element>audio</a></code>
+ and <code><a href=#the-video-element>video</a></code> elements.</li>
+
+ <li><p>Let <var title="">blob</var> be a <code><a href=#blob>Blob</a></code> object
+ representing the contents of the file generated in the previous
+ step. <a href=#refsFILEAPI>[FILEAPI]</a></p>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to invoke <var title="">callback</var> with <var title="">blob</var> as its
+ argument.</li>
+
+ </ol><p class=note>The <code title=dom-MediaStreamRecorder-getRecordedData><a href=#dom-mediastreamrecorder-getrecordeddata>getRecordedData()</a></code>
+ method can be called multiple times on one
+ <code><a href=#mediastreamrecorder>MediaStreamRecorder</a></code> object; each time, it will create a new
+ file as if this was the first time the method was being called. In
+ particular, the method does not stop or reset the recording when the
+ method is called.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This example allows people to record a short audio message and
+ upload it to the server. This example even shows rudimentary error
+ handling.</p>
+
+ <pre>&lt;input type="button" value="&#9899;" onclick="msgRecord()" id="recBtn"&gt;
+&lt;input type="button" value="&#9724;" onclick="msgStop()" id="stopBtn" disabled&gt;
+&lt;p id="status"&gt;To start recording, press the &#9899; button.&lt;/p&gt;
+&lt;script&gt;
+ var recBtn = document.getElementById('recBtn');
+ var stopBtn = document.getElementById('stopBtn');
+ function report(s) {
+ document.getElementById('status').textContent = s;
+ }
+ function msgRecord() {
+ report('Attempting to access microphone...');
+ navigator.getUserMedia('audio', gotStream, noStream);
+ recBtn.disabled = true;
+ }
+ var msgStream, msgStreamRecorder;
+ function gotStream(stream) {
+ report('Recording... To stop, press to &#9724; button.');
+ msgStream = stream;
+ msgStreamRecorder = stream.record();
+ stopBtn.disabled = false;
+ stream.onended = function () {
+ msgStop();
+ }
+ }
+ function msgStop() {
+ report('Creating file...');
+ stopBtn.disabled = true;
+ msgStream.onended = null;
+ msgStream.stop();
+ msgStreamRecorder.getRecordedData(msgSave);
+ }
+ function msgSave(blob) {
+ report('Uploading file...');
+ var x = new XMLHttpRequest();
+ x.open('POST', 'uploadMessage');
+ x.send(blob);
+ x.onload = function () {
+ report('Done! To record a new message, press the &#9899; button.');
+ recBtn.disabled = false;
+ };
+ x.onerror = function () {
+ report('Failed to upload message. To try recording a message again, press the &#9899; button.');
+ recBtn.disabled = false;
+ };
+ }
+ function noStream() {
+ report('Could not obtain access to your microphone. To try again, press the &#9899; button.');
+ recBtn.disabled = false;
+ }
+&lt;/script&gt;</pre>
+
+ </div>
+
+ <pre class=idl>partial interface <dfn id=dom-url title=dom-URL>URL</dfn> {
+ static DOMString <a href=#dom-url-createobjecturl title=dom-URL-createObjectURL>createObjectURL</a>(<a href=#mediastream>MediaStream</a> stream);
+};</pre>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-URL><a href=#dom-url>URL</a></code> . <code title=dom-URL-createObjectURL><a href=#dom-url-createobjecturl>createObjectURL</a></code>(<var title="">stream</var>)</dt>
+
+ <dd>
+
+ <p>Mints a <a href=#blob-url>Blob URL</a> to refer to the given <code><a href=#mediastream>MediaStream</a></code>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>When the <dfn id=dom-url-createobjecturl title=dom-URL-createObjectURL><code>createObjectURL()</code></dfn>
+ method is called with a <code><a href=#mediastream>MediaStream</a></code> argument, the user agent
+ must return a unique <a href=#blob-url>Blob URL</a> for the given
+ <code><a href=#mediastream>MediaStream</a></code>. <a href=#refsFILEAPI>[FILEAPI]</a></p>
+
+ <p>For audio and video streams, the data exposed on that stream must
+ be in a format supported by the user agent for use in
+ <code><a href=#the-audio-element>audio</a></code> and <code><a href=#the-video-element>video</a></code> elements.</p>
+
+ <p class=bookkeeping>A <dfn id=blob-url>Blob URL</dfn> is the same as what the
+ File API specification calls a <span>Blob URI</span>, except that
+ anything in the definition of that feature that refers to
+ <code><a href=#file>File</a></code> and <code><a href=#blob>Blob</a></code> objects is hereby extended
+ to also apply to <code><a href=#mediastream>MediaStream</a></code> and
+ <code><a href=#localmediastream>LocalMediaStream</a></code> objects.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>This example allows people to take photos of themselves from the
+ local video camera.</p>
+
+ <pre>&lt;article&gt;
+ &lt;style scoped&gt;
+ video { transform: scaleX(-1); }
+ p { text-align: center; }
+ &lt;/style&gt;
+ &lt;h1&gt;Snapshot Kiosk&lt;/h1&gt;
+ &lt;section id="splash"&gt;
+ &lt;p id="errorMessage"&gt;Loading...&lt;/p&gt;
+ &lt;/section&gt;
+ &lt;section id="app" hidden&gt;
+ &lt;p&gt;&lt;video id="monitor" autoplay&gt;&lt;/video&gt; &lt;canvas id="photo"&gt;&lt;/canvas&gt;
+ &lt;p&gt;&lt;input type=button value="&amp;#x1F4F7;" onclick="snapshot()"&gt;
+ &lt;/section&gt;
+ &lt;script&gt;
+ navigator.getUserMedia('video user', gotStream, noStream);
+ var video = document.getElementById('monitor');
+ var canvas = document.getElementById('photo');
+ function gotStream(stream) {
+ video.src = URL.createObjectURL(stream);
+ video.onerror = function () {
+ stream.stop();
+ };
+ stream.onended = noStream;
+ video.onloadedmetadata = function () {
+ canvas.width = video.videoWidth;
+ canvas.height = video.videoHeight;
+ document.getElementById('splash').hidden = true;
+ document.getElementById('app').hidden = false;
+ };
+ }
+ function noStream() {
+ document.getElementById('errorMessage').textContent = 'No camera available.';
+ }
+ function snapshot() {
+ canvas.getContext('2d').drawImage(video, 0, 0);
+ }
+ &lt;/script&gt;
+&lt;/article&gt;</pre>
+
+ </div>
+
+
+
+ <h3 id=peer-to-peer-connections><span class=secno>9.4 </span>Peer-to-peer connections</h3>
+
+ <h4 id=introduction-12><span class=secno>9.4.1 </span>Introduction</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>To send audio, video, or data to another peer, the
+ <code><a href=#peerconnection>PeerConnection</a></code> interface can be used.</p>
+
+ <p>This interface uses the ICE, SDP, STUN, and TURN technologies to
+ perform NAT traversal and codec negotiation. This is entirely
+ abstracted from the interface, so as to make the API as simple as
+ possible to use.</p>
+
+ <p>In order to bootstrap a peer-to-peer connection, a page has to
+ first have an indirect communications channel, known as the
+ <i>signaling channel</i>, via which messages can be exchanged with
+ the other peer. Typically, this will take the form of
+ <code>XMLHttpRequest</code>-based or <code><a href=#websocket>WebSocket</a></code>-based
+ communication through the server: messages are sent to the server
+ with a session identifier, and the server then routes them to the
+ other peer using the same session. The precise details of this
+ signaling channel are left up to the page author.</p>
+
+ <p>Once a signaling channel has been established, one peer is
+ arbitrarily picked as the initiator of the peer-to-peer connection.
+ Typically, this would be the peer whose user initiated the call (in
+ the telephonic sense).</p>
+
+ <p>This initiating peer creates a <code><a href=#peerconnection>PeerConnection</a></code>
+ object, passing it a configuration string and a signaling callback.
+ The configuration string is how the user agent is informed of STUN
+ and TURN servers, and is described in more detail in the next
+ section. The signaling callback is a function that takes one
+ argument, a string, which it then sends on the signaling
+ channel.</p>
+
+ <p>After creating the <code><a href=#peerconnection>PeerConnection</a></code> object, the script
+ can use the <code title=dom-PeerConnection-addStream><a href=#dom-peerconnection-addstream>addStream()</a></code> method to
+ add any audio or video streams to be sent.</p>
+
+ <p>Once the script that created the <code><a href=#peerconnection>PeerConnection</a></code>
+ object has finished, the user agent will invoke the callback with an
+ initial offer, containing any audio or video streams. The precise
+ format of the string sent to the callback is not important for the
+ purposes of the page author; it is simply an opaque string to be
+ sent to the other peer over the signaling channel established
+ earlier.</p>
+
+ <p>When the other peer, the receiving peer, receives this initial
+ offer, it similarly creates a <code><a href=#peerconnection>PeerConnection</a></code> object
+ with a configuration string and signaling callback, and then calls
+ the <code title=dom-PeerConnection-processSignalingMessage><a href=#dom-peerconnection-processsignalingmessage>processSignalingMessage()</a></code>
+ method with, as its argument, the initial offer received from the
+ initiating peer. It can also use the <code title=dom-PeerConnection-addStream><a href=#dom-peerconnection-addstream>addStream()</a></code> method to
+ add any audio or video streams to be sent back.</p>
+
+ <p>Once the script that created the receiving peer's
+ <code><a href=#peerconnection>PeerConnection</a></code> object has finished, the receiving
+ peer's user agent invokes its callback to send a response. Again,
+ the author treats this as an opaque string to be sent back to the
+ initating peer over the signaling channel.</p>
+
+ <p>Messages can be sent back and forth an arbitrary number of times
+ over the signaling channel as the user agents negotiate codecs, as
+ streams get added or removed, etc.</p>
+
+ <p>Finally when the connection is to be ended the <code title=dom-PeerConnection-close><a href=#dom-peerconnection-close>close()</a></code> method is invoked on
+ the <code><a href=#peerconnection>PeerConnection</a></code> objects.</p>
+
+
+ <h4 id=interface-definitions-0><span class=secno>9.4.2 </span>Interface definitions</h4>
+
+ <pre class=idl>[<a href=#dom-peerconnection title=dom-PeerConnection>Constructor</a>(DOMString serverConfiguration, <a href=#signalingcallback>SignalingCallback</a> signalingCallback)]
+interface <dfn id=peerconnection>PeerConnection</dfn> : <a href=#eventtarget>EventTarget</a> {
+ void <a href=#dom-peerconnection-processsignalingmessage title=dom-PeerConnection-processSignalingMessage>processSignalingMessage</a>(DOMString message);
+
+ const unsigned short <a href=#dom-peerconnection-new title=dom-PeerConnection-NEW>NEW</a> = 0;
+ const unsigned short <a href=#dom-peerconnection-negotiating title=dom-PeerConnection-NEGOTIATING>NEGOTIATING</a> = 1;
+ const unsigned short <a href=#dom-peerconnection-active title=dom-PeerConnection-ACTIVE>ACTIVE</a> = 2;
+ const unsigned short <a href=#dom-peerconnection-closed title=dom-PeerConnection-CLOSED>CLOSED</a> = 3;
+ readonly attribute unsigned short <a href=#dom-peerconnection-readystate title=dom-PeerConnection-readyState>readyState</a>;
+
+ void <a href=#dom-peerconnection-send title=dom-PeerConnection-send>send</a>(DOMString text); <!-- v2: binary -->
+ void <a href=#dom-peerconnection-addstream title=dom-PeerConnection-addStream>addStream</a>(<a href=#mediastream>MediaStream</a> stream);
+ void <a href=#dom-peerconnection-removestream title=dom-PeerConnection-removeStream>removeStream</a>(<a href=#mediastream>MediaStream</a> stream);
+ readonly attribute <a href=#mediastream>MediaStream</a>[] <a href=#dom-peerconnection-localstreams title=dom-PeerConnection-localStreams>localStreams</a>;
+ readonly attribute <a href=#mediastream>MediaStream</a>[] <a href=#dom-peerconnection-remotestreams title=dom-PeerConnection-remoteStreams>remoteStreams</a>;
+
+ void <a href=#dom-peerconnection-close title=dom-PeerConnection-close>close</a>();
+
+ // <span class=XXX>connection quality information</span>
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onconnecting title=handler-PeerConnection-onconnecting>onconnecting</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onopen title=handler-PeerConnection-onopen>onopen</a>;<!--
+ [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-PeerConnection-onerror">onerror</span>;
+ [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-PeerConnection-onclose">onclose</span>;-->
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onmessage title=handler-PeerConnection-onmessage>onmessage</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onaddstream title=handler-PeerConnection-onaddstream>onaddstream</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-peerconnection-onremovestream title=handler-PeerConnection-onremovestream>onremovestream</a>;
+};
+
+[Callback=FunctionOnly, NoInterfaceObject]
+interface <dfn id=signalingcallback>SignalingCallback</dfn> {
+ void <span title=dom-SignalingCallback-handleEvent>handleEvent</span>(DOMString message, <a href=#peerconnection>PeerConnection</a> source);
+};</pre>
+
+ <p>A <code><a href=#peerconnection>PeerConnection</a></code> allows two users to communicate
+ directly, browser-to-browser. Communications are coordinated via a
+ signaling channel provided by script in the page via the server,
+ e.g. using <code>XMLHttpRequest</code>.</p>
+
+ <dl class=domintro><dt><var title="">connection</var> = new <code title=dom-PeerConnection><a href=#dom-peerconnection>PeerConnection</a></code>(<var title="">serverConfiguration</var>, <var title="">signalingCallback</var>)</dt>
+
+ <dd>
+
+ <p>Creates a <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
+
+ <p>The <var title="">serverConfiguration</var> string gives the address
+ of a STUN or TURN server to use to establish the connection. <a href=#refsSTUN>[STUN]</a> <a href=#refsTURN>[TURN]</a></p>
+
+ <p>The allowed formats for this string are:</p>
+
+ <dl><dt>"<code title=""><var title="">TYPE</var> 203.0.113.2:3478</code>"
+ <dd>
+ <p>Indicates a specific IP address and port for the server.</p>
+ </dd>
+
+ <dt>"<code title=""><var title="">TYPE</var> relay.example.net:3478</code>"
+ <dd>
+ <p>Indicates a specific host and port for the server; the user agent will look up the IP address in DNS.</p>
+ </dd>
+
+ <dt>"<code title=""><var title="">TYPE</var> example.net</code>"
+ <dd>
+ <p>Indicates a specific domain for the server; the user agent will look up the IP address and port in DNS.</p>
+ </dd>
+
+ </dl><p>The "<code title=""><var title="">TYPE</var></code>" is one of:</p>
+
+ <dl><dt><code title="">STUN</code></dt>
+ <dd>Indicates a STUN server
+
+ <dt><code title="">STUNS</code></dt>
+ <dd>Indicates a STUN server that is to be contacted using a TLS session.
+
+ <dt><code title="">TURN</code></dt>
+ <dd>Indicates a TURN server
+
+ <dt><code title="">TURNS</code></dt>
+ <dd>Indicates a TURN server that is to be contacted using a TLS session.
+
+ </dl><p>The <var title="">signalingCallback</var> argument is a method
+ that will be invoked when the user agent needs to send a message
+ to the other host over the signaling channel. When the callback is
+ invoked, convey its first argument (a string) to the other peer
+ using whatever method is being used by the Web application to
+ relay signaling messages. (Messages returned from the other peer
+ are provided back to the user agent using the <code title=dom-PeerConnection-processSignalingMessage><a href=#dom-peerconnection-processsignalingmessage>processSignalingMessage()</a></code>
+ method.)</p>
+
+ </dd>
+
+
+ <dt><var title="">connection</var> . <code title=dom-PeerConnection-readyState><a href=#dom-peerconnection-readystate>readyState</a></code></dt>
+ <dd>
+ <p>Returns the current readiness state for the connection,
+ represented by a number from the following list:</p>
+ <dl><dt> <code><a href=#peerconnection>PeerConnection</a></code> . <code title=dom-PeerConnection-NEW><a href=#dom-peerconnection-new>NEW</a></code> (0)</dt>
+ <dd>The object was just created, and no networking has yet occurred.</dd>
+ <dt> <code><a href=#peerconnection>PeerConnection</a></code> . <code title=dom-PeerConnection-NEGOTIATING><a href=#dom-peerconnection-negotiating>NEGOTIATING</a></code> (1)</dt>
+ <dd>The user agent is attempting to establish a connection.</dd>
+ <dt> <code><a href=#peerconnection>PeerConnection</a></code> . <code title=dom-PeerConnection-ACTIVE><a href=#dom-peerconnection-active>ACTIVE</a></code> (2)</dt>
+ <dd>The connection is as good as its going to get.</dd>
+ <dt> <code><a href=#peerconnection>PeerConnection</a></code> . <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3)</dt>
+ <dd>The connection is closed.</dd>
+ </dl></dd>
+
+
+ <dt><var title="">connection</var> . <code title=dom-PeerConnection-processSignalingMessage><a href=#dom-peerconnection-processsignalingmessage>processSignalingMessage</a></code>(<var title="">message</var>)</dt>
+
+ <dd>
+
+ <p>When a message is relayed from the remote peer over the
+ signaling channel is received by the Web application, pass it to
+ the user agent by calling the <code title=dom-PeerConnection-processSignalingMessage><a href=#dom-peerconnection-processsignalingmessage>processSignalingMessage()</a></code>
+ method.</p>
+
+ <p>The order of messages is important. Passing messages to the
+ user agent in a different order than they were generated by the
+ remote peer's user agent can prevent a successful connection from
+ being established or degrade the connection's quality if one is
+ established.</p>
+
+ </dd>
+
+ <dt><var title="">connection</var> . <code title=dom-PeerConnection-send><a href=#dom-peerconnection-send>send</a></code>(<var title="">text</var>)</dt>
+
+ <dd> <!-- v2: binary -->
+
+ <p>Attempts to send the given text to the remote peer. This uses
+ UDP, which is inherently unreliable; there is no guarantee that
+ every message will be received.</p>
+
+ <p>When a message sent in this manner from the other peer is
+ received, a <code title=event-MediaStream-message><a href=#event-mediastream-message>message</a></code>
+ event is fired at the <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
+
+ <p>The maximum length of <var title="">text</var> is 504 bytes
+ after encoding the string as UTF-8; attempting to send a payload
+ greater than 504 bytes results in an
+ <code><a href=#invalidaccesserror>InvalidAccessError</a></code> exception.</p>
+
+ </dd>
+
+ <dt><var title="">connection</var> . <code title=dom-PeerConnection-addStream><a href=#dom-peerconnection-addstream>addStream</a></code>(<var title="">stream</var>)</dt>
+
+ <dd>
+
+ <p>Attempts to starting sending the given stream to the remote
+ peer.</p>
+
+ <p>When the other peer starts sending a stream in this manner, an
+ <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code>
+ event is fired at the <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
+
+ </dd>
+
+ <dt><var title="">connection</var> . <code title=dom-PeerConnection-removeStream><a href=#dom-peerconnection-removestream>removeStream</a></code>(<var title="">stream</var>)</dt>
+
+ <dd>
+
+ <p>Stops sending the given stream to the remote peer.</p>
+
+ <p>When the other peer stops sending a stream in this manner, a
+ <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code>
+ event is fired at the <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
+
+ </dd>
+
+ <dt><var title="">connection</var> . <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code></dt>
+
+ <dd>
+
+ <p>Returns a live array containing the streams that the user agent
+ is currently attempting to transmit to the remote peer (those that
+ were added with <code title=dom-PeerConnection-addStream><a href=#dom-peerconnection-addstream>addStream()</a></code>).</p>
+
+ </dd>
+
+ <dt><var title="">connection</var> . <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code></dt>
+
+ <dd>
+
+ <p>Returns a live array containing the streams that the user agent
+ is currently receiving from the remote peer.</p>
+
+ <p>This array is updated when <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code> and <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code>
+ events are fired.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>A <code><a href=#peerconnection>PeerConnection</a></code> object has an associated
+ <dfn id=peerconnection-signaling-callback><code>PeerConnection</code> signaling callback</dfn>, a
+ <dfn id=peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</dfn>, a
+ <dfn id=peerconnection-data-udp-media-stream><code>PeerConnection</code> data UDP media stream</dfn>, a
+ <dfn id=peerconnection-readiness-state><code>PeerConnection</code> readiness state</dfn> and an
+ <dfn id=ice-started-flag>ICE started flag</dfn>. These are initialized when the object
+ is created.</p>
+
+ <p>The <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> can
+ have the following values:</p>
+
+ <dl><dt><dfn id=dom-peerconnection-new title=dom-PeerConnection-NEW><code>NEW</code></dfn> (numeric value 0)</dt>
+
+ <dd>The object was just created and its ICE Agent has not yet been started.</dd>
+
+ <dt><dfn id=dom-peerconnection-negotiating title=dom-PeerConnection-NEGOTIATING><code>NEGOTIATING</code></dfn> (numeric value 1)</dt>
+
+ <dd>The ICE Agent is actively preforming ICE processing.</dd>
+
+ <dt><dfn id=dom-peerconnection-active title=dom-PeerConnection-ACTIVE><code>ACTIVE</code></dfn> (numeric value 2)</dt>
+
+ <dd>The ICE Agent has concluded ICE processing. If any media streams were successfully negotiated, any relevant media is streaming.</dd>
+
+ <dt><dfn id=dom-peerconnection-closed title=dom-PeerConnection-CLOSED><code>CLOSED</code></dfn> (numeric value 3)</dt>
+
+ <dd>The <code title=dom-PeerConnection-close><a href=#dom-peerconnection-close>close()</a></code> method has been invoked.</dd>
+
+ </dl><p>When the <dfn id=dom-peerconnection title=dom-PeerConnection><code>PeerConnection()</code></dfn>
+ constructor is invoked, the user agent must run the following steps.
+ This algorithm has a <a href=#synchronous-section>synchronous section</a> (which is
+ triggered as part of the <a href=#event-loop>event loop</a> algorithm). Steps
+ in the <a href=#synchronous-section>synchronous section</a> are marked with
+ &#8987;.</p>
+
+ <ol><li><p>Let <var title="">serverConfiguration</var> be the
+ constructor's first argument.</li>
+
+ <li><p>Let <var title="">signalingCallback</var> be the
+ constructor's second argument.</li>
+
+ <li><p>Let <var title="">connection</var> be a newly created
+ <code><a href=#peerconnection>PeerConnection</a></code> object.</li>
+
+ <li><p>Create an ICE Agent and let <var title="">connection</var>'s
+ <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> be that ICE
+ Agent. <a href=#refsICE>[ICE]</a></li>
+
+ <li><p>If <var title="">serverConfiguration</var> contains a U+000A LINE
+ FEED (LF) character or a U+000D CARRIAGE RETURN (CR) character (or
+ both), remove all characters from <var title="">serverConfiguration</var>
+ after the first such character.</li>
+
+ <li><p><a href=#split-a-string-on-spaces title="split a string on spaces">Split <var title="">serverConfiguration</var> on spaces</a> to obtain <var title="">configuration components</var>.</li>
+
+ <li>
+
+ <p>If <var title="">configuration components</var> has two or more
+ components, and the first component is a
+ <a href=#case-sensitive>case-sensitive</a> match for one of the following
+ strings:</p>
+
+ <ul class=brief><li>"<code title="">STUN</code>"
+ <li>"<code title="">STUNS</code>"
+ <li>"<code title="">TURN</code>"
+ <li>"<code title="">TURNS</code>"
+ </ul><p>...then run the following substeps:</p>
+
+ <ol><li><p>Let <var title="">server type</var> be STUN if the first
+ component of <var title="">configuration components</var> is
+ "<code title="">STUN</code>" or "<code title="">STUNS</code>",
+ and TURN otherwise (the first component of <var title="">configuration components</var> is "<code title="">TURN</code>" or "<code title="">TURNS</code>").</p>
+
+ <li><p>Let <var title="">secure</var> be true if the first
+ component of <var title="">configuration components</var> is
+ "<code title="">STUNS</code>" or "<code title="">TURNS</code>",
+ and false otherwise.</p>
+
+ <li><p>Let <var title="">host</var> be the contents of the second
+ component of <var title="">configuration components</var> up to
+ the character before the first U+003A COLON character (:), if
+ any, or the entire string otherwise.</li>
+
+ <li><p>Let <var title="">port</var> be the contents of the second
+ component of <var title="">configuration components</var> from
+ the character after the first U+003A COLON character (:) up to
+ the end, if any, or the empty string otherwise.</li>
+
+ <li>
+
+ <p>Configure the <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE
+ Agent</a>'s STUN or TURN server as follows:</p>
+
+ <ul><li>If <var title="">server type</var> is STUN, the server is a
+ STUN server. Otherwise, <var title="">server type</var> is TURN
+ and the server is a TURN server.</li>
+
+ <li>If <var title="">secure</var> is true, the server is to be
+ contacted using TLS-over-TCP, otherwise, it is to be contacted
+ using UDP.</li>
+
+ <li>The IP address, host name, or domain name of the server is
+ <var title="">host</var>.</li>
+
+ <li>The port to use is <var title="">port</var>. If this is the
+ empty string, then only a domain name is configured (and the
+ ICE Agent will use DNS SRV requests to determine the IP address
+ and port).</li>
+
+ <li>The long-term username for the STUN or TURN server is
+ the <a href=#ascii-serialization-of-an-origin title="ASCII serialization of an origin">ASCII
+ serialization</a> of the <a href=#entry-script>entry script</a>'s
+ <a href=#origin>origin</a>; the long-term password is the empty
+ string.</li>
+
+ </ul><p>If the given IP address, host name, domain name, or port are
+ invalid, then the user agent must act as if no STUN or TURN
+ server is configured.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li><p>Let the <var title="">connection</var>'s
+ <a href=#peerconnection-signaling-callback><code>PeerConnection</code> signaling callback</a> be
+ <var title="">signalingCallback</var>.</li>
+
+ <li><p>Set <var title="">connection</var>'s
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> to <code title=dom-PeerConnection-NEW><a href=#dom-peerconnection-new>NEW</a></code> (0).</li>
+
+ <li><p>Set <var title="">connection</var>'s <a href=#ice-started-flag>ICE started
+ flag</a> to false.</li>
+
+ <li><p>Let <var title="">connection</var>'s
+ <a href=#peerconnection-data-udp-media-stream><code>PeerConnection</code> data UDP media stream</a> be a
+ new <a href=#data-udp-media-stream>data UDP media stream</a>.</li>
+
+ <li><p>Let <var title="">connection</var>'s <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code>
+ attribute be an empty read-only <code><a href=#mediastream>MediaStream</a></code> array. <a href=#refsWEBIDL>[WEBIDL]</a></li>
+
+ <li><p>Let <var title="">connection</var>'s <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code>
+ attribute be an empty read-only <code><a href=#mediastream>MediaStream</a></code> array. <a href=#refsWEBIDL>[WEBIDL]</a></li>
+
+ <li><p>Return <var title="">connection</var>, but continue these
+ steps asynchronously.</li>
+
+ <li><p><a href=#await-a-stable-state>Await a stable state</a>. The <a href=#synchronous-section>synchronous
+ section</a> consists of the remaining steps of this
+ algorithm. (Steps in <a href=#synchronous-section title="synchronous section">synchronous
+ sections</a> are marked with &#8987;.)</li>
+
+ <li><p>&#8987; If <var title="">connection</var>'s <a href=#ice-started-flag>ICE
+ started flag</a> is still false, start the
+ <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> and send the
+ initial offer. The initial offer must include a media description
+ for the <a href=#peerconnection-data-udp-media-stream><code>PeerConnection</code> data UDP media
+ stream</a>, marked as "sendrecv", and for all the streams in
+ <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code>
+ (marked as "sendonly"). <a href=#refsICE>[ICE]</a> <a href=#refsSDPOFFERANSWER>[SDPOFFERANSWER]</a></li>
+
+ <li><p>&#8987; Let <var title="">connection</var>'s <a href=#ice-started-flag>ICE
+ started flag</a> be true.</li>
+
+ <li><p>&#8987; If <var title="">connection</var>'s
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is still
+ <code title=dom-PeerConnection-NEW><a href=#dom-peerconnection-new>NEW</a></code> (0), then
+ <a href=#queue-a-task>queue a task</a> that sets it to <code title=dom-PeerConnection-NEGOTIATING><a href=#dom-peerconnection-negotiating>NEGOTIATING</a></code> (1) and
+ then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a>
+ named <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code> at the
+ <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
+
+ </ol><p>When a <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> is
+ required to send SDP offers or answers, the user agent must follow
+ these steps:</p>
+
+ <ol><li><p>Let <var title="">sdp</var> be the SDP offer or answer to be
+ sent. <a href=#refsSDPOFFERANSWER>[SDPOFFERANSWER]</a></li>
+
+ <li><p>Let <var title="">message</var> be the concatenation of the
+ string "<code title="">SDP</code>", a U+000A LINE FEED (LF)
+ character, and <var title="">sdp</var>, in that order.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to invoke that
+ <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a>'s
+ <a href=#peerconnection-signaling-callback><code>PeerConnection</code> signaling callback</a> with
+ <var title="">message</var> as its first argument and the
+ <code><a href=#peerconnection>PeerConnection</a></code> as its second argument.</li>
+
+ </ol><p>All streams represented by <code><a href=#mediastream>MediaStream</a></code> objects must be
+ marked as "sendonly" by the peer that initially adds the stream to
+ the session. The <code><a href=#peerconnection>PeerConnection</a></code> API does not support
+ bidirectional ("sendrecv") audio or video media streams. <a href=#refsSDPOFFERANSWER>[SDPOFFERANSWER]</a></p>
+
+ <p>User agents may negotiate any codec and any resolution, bitrate,
+ or other quality metric. User agents are encouraged to initially
+ negotiate for the native resolution of the stream. For streams that
+ are then rendered (using a <code><a href=#the-video-element>video</a></code> element), user agents
+ are encouraged to renegotiate for a resolution that matches the
+ rendered display size.</p>
+
+ <p class=note>Starting with the native resolution means that if
+ the Web application notifies its peer of the native resolution as it
+ starts sending data, and the peer prepares its <code><a href=#the-video-element>video</a></code>
+ element accordingly, there will be no need for a renegotiation once
+ the stream is flowing.</p>
+
+ <p>All SDP media descriptions for streams represented by
+ <code><a href=#mediastream>MediaStream</a></code> objects must include a label attribute ("<code title="">a=label:</code>") whose value is the value of the
+ <code><a href=#mediastream>MediaStream</a></code> object's <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> attribute. <a href=#refsSDP>[SDP]</a> <a href=#refsSDPLABEL>[SDPLABEL]</a></p>
+
+ <p><a href=#peerconnection-ice-agent title="PeerConnection ICE
+ Agent"><code>PeerConnection</code> ICE Agents</a> must not
+ generate any candidates for media streams whose media descriptions
+ do not have a label attribute ("<code title="">a=label:</code>"). <a href=#refsICE>[ICE]</a> <a href=#refsSDP>[SDP]</a> <a href=#refsSDPLABEL>[SDPLABEL]</a></p>
+
+ <p>When a user agent starts receiving media for a component and a
+ candidate was provided for that component by a
+ <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a>, the user agent
+ must follow these steps:</p>
+
+ <ol><li><p>Let <var title="">connection</var> be the
+ <code><a href=#peerconnection>PeerConnection</a></code> whose ICE Agent is expecting this
+ media.</li>
+
+ <li><p>If there is already a <code><a href=#mediastream>MediaStream</a></code> object for the
+ media stream to which this component belongs, then associate the
+ component with that media stream and abort these steps. (Some media
+ streams have multiple components; this API does not expose the
+ role of these individual components in ICE.)</li>
+
+ <li><p>Create a <code><a href=#mediastream>MediaStream</a></code> object to represent the
+ media stream. Set its <code title=dom-MediaStream-label><a href=#dom-mediastream-label>label</a></code> attribute to the value
+ of the SDP Label attribute for that component's media
+ stream.</li>
+
+ <li>
+
+ <p><a href=#queue-a-task>Queue a task</a> to run the following substeps:</p>
+
+ <ol><li><p>If the <var title="">connection</var>'s
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), abort these
+ steps.</li> <!-- close() was probably called just before this
+ task ran -->
+
+ <li><p>Add the newly created <code><a href=#mediastream>MediaStream</a></code> object to the
+ end of <var title="">connection</var>'s <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code>
+ array.</li>
+
+ <li><p><a href=#fire-a-stream-event>Fire a stream event</a> named <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code> with the newly
+ created <code><a href=#mediastream>MediaStream</a></code> object at the <var title="">connection</var> object.</li>
+
+ </ol></li>
+
+ </ol><p>When a <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> finds
+ that a stream from the remote peer has been removed (its port has
+ been set to zero in a media description sent on the signaling
+ channel), the user agent must follow these steps:</p>
+
+ <ol><li><p>Let <var title="">connection</var> be the
+ <code><a href=#peerconnection>PeerConnection</a></code> whose <a href=#peerconnection-ice-agent><code>PeerConnection</code>
+ ICE Agent</a> has determined that a stream is being removed.</li>
+
+ <li><p>Let <var title="">stream</var> be the <code><a href=#mediastream>MediaStream</a></code>
+ object that represents the media stream being removed, if any. If
+ there isn't one, then abort these steps.</li>
+
+ <li>
+
+ <p>By definition, <var title="">stream</var> is now <a href=#concept-stream-finished title=concept-stream-finished>finished</a>.</p>
+
+ <p class=note>A <a href=#concept-task title=concept-task>task</a> is thus
+ <a href=#queue-a-task title="queue a task">queued</a> to update <var title="">stream</var> and fire an event.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#queue-a-task>Queue a task</a> to run the following substeps:</p>
+
+ <ol><li><p>If the <var title="">connection</var>'s
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), abort these
+ steps.</li> <!-- close() was probably called just before this
+ task ran -->
+
+ <li><p>Remove <var title="">stream</var> from <var title="">connection</var>'s <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code>
+ array.</li>
+
+ <li><p><a href=#fire-a-stream-event>Fire a stream event</a> named <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code> with <var title="">stream</var> at the <var title="">connection</var>
+ object.</li>
+
+ </ol></li>
+
+ </ol><p>When the <dfn id=dom-peerconnection-processsignalingmessage title=dom-PeerConnection-processSignalingMessage><code title="">processSignalingMessage()</code></dfn> method is invoked, the
+ user agent must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">message</var> be the method's
+ argument.</li>
+
+ <li><p>Let <var title="">connection</var> be the
+ <code><a href=#peerconnection>PeerConnection</a></code> object on which the method was
+ invoked.</li>
+
+ <li><p>If <var title="">connection</var>'s
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception.</li>
+
+ <li>
+
+ <p>If the first four characters of <var title="">message</var> are
+ not "<code title="">SDP</code>" followed by a U+000A LINE FEED
+ (LF) character, then abort these steps. (This indicates an error
+ in the signaling channel implementation. User agents may report
+ such errors to their developer consoles to aid debugging.)</p>
+
+ <p class=note>Future extensions to the
+ <code><a href=#peerconnection>PeerConnection</a></code> interface might use other prefix
+ values to implement additional features.</p>
+
+ </li>
+
+ <li><p>Let <var title="">sdp</var> be the string consisting of all
+ but the first four characters of <var title="">message</var>.</li>
+
+ <li><p>If <var title="">connection</var>'s <a href=#ice-started-flag>ICE started
+ flag</a> is true, then pass <var title="">sdp</var> to the
+ <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> as a subsequent
+ offer or answer, to be interpreted as appropriate given the current
+ state of the ICE Agent, and abort these steps. <a href=#refsICE>[ICE]</a></li>
+
+ <li>
+
+ <p>The <a href=#ice-started-flag>ICE started flag</a> is false. Start the
+ <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> and pass it
+ <var title="">sdp</var> as the initial offer from the other peer;
+ the ICE Agent will then (asynchronously) construct the initial
+ answer and transmit it as described above.</p>
+
+ <p>If there is a <a href=#remotely-initiated-data-udp-media-stream>remotely-initiated data UDP media
+ stream</a> in the initial offer, and it has an encryption key
+ advertised in its media description that is 16 bytes long, then
+ that is the <a href=#peerconnection-data-udp-media-stream><code>PeerConnection</code> data UDP media
+ stream</a>.</p>
+
+ <p>After the initial answer has been sent, the ICE Agent must add
+ all the streams in <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code> to the
+ session, as described above. <a href=#refsICE>[ICE]</a></p>
+
+ </li>
+
+ <li><p>Let <var title="">connection</var>'s <a href=#ice-started-flag>ICE started
+ flag</a> be true.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> that sets <var title="">connection</var>'s <a href=#peerconnection-readiness-state><code>PeerConnection</code>
+ readiness state</a> to <code title=dom-PeerConnection-NEGOTIATING><a href=#dom-peerconnection-negotiating>NEGOTIATING</a></code> (1) and
+ then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a>
+ named <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code> at the
+ <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
+
+ </ol><p>When a <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a>
+ completes ICE processing (even if there are no active streams), the
+ user agent must <a href=#queue-a-task>queue a task</a> that sets the
+ <code><a href=#peerconnection>PeerConnection</a></code> object's
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> to <code title=dom-PeerConnection-ACTIVE><a href=#dom-peerconnection-active>ACTIVE</a></code> (2) and then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a> named <code title=event-MediaStream-open><a href=#event-mediastream-open>open</a></code> at the
+ <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
+
+ <p>When a <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a>
+ restarts ICE processing for any reason (e.g. because a peer is
+ adding or removing a stream), the user agent must <a href=#queue-a-task>queue a
+ task</a> that sets the <code><a href=#peerconnection>PeerConnection</a></code> object's
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> to <code title=dom-PeerConnection-NEGOTIATING><a href=#dom-peerconnection-negotiating>NEGOTIATING</a></code> (1) and
+ then <a href=#fire-a-simple-event title="fire a simple event">fires a simple event</a>
+ named <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code> at the
+ <code><a href=#peerconnection>PeerConnection</a></code> object.</p>
+
+ <p>The <dfn id=dom-peerconnection-readystate title=dom-PeerConnection-readyState><code title="">readyState</code></dfn> attribute must return the numeric
+ value of the <code><a href=#peerconnection>PeerConnection</a></code> object's
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a>.</p>
+
+ <p>When the <dfn id=dom-peerconnection-send title=dom-PeerConnection-send><code title="">send()</code></dfn> method is invoked, the
+ user agent must run the following steps:</p>
+
+ <ol><!-- v2: binary --><li><p>Let <var title="">message</var> be the method's first
+ argument.</li>
+
+ <li><p>If the <code><a href=#peerconnection>PeerConnection</a></code> object's
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception.</li>
+
+ <li><p>Let <var title="">data</var> be <var title="">message</var>
+ encoded as UTF-8. <a href=#refsRFC3629>[RFC3629]</a></li>
+
+ <li><p>If <var title="">data</var> is longer than 504 bytes,
+ throw an <code><a href=#invalidaccesserror>InvalidAccessError</a></code> exception and abort these
+ steps.</li>
+ <!-- IPv4: 576 (min IPv4 MTU size) - 20 (IP header) - 8 (UDP header) - 44 (UDP data media stream overhead) = 504 -->
+ <!-- IPv6: 1280 (min IPv6 MTU size) - 40 (IP header) - 8 (UDP header) - 44 (UDP data media stream overhead) = 1188 -->
+
+ <li><p>If the <code><a href=#peerconnection>PeerConnection</a></code>'s
+ <a href=#peerconnection-data-udp-media-stream><code>PeerConnection</code> data UDP media stream</a> is
+ not an <a href=#active-data-udp-media-stream>active data UDP media stream</a>, abort these
+ steps. No message is sent.</li>
+
+ <li><p>If the user agent is rate-limiting packets sent using this
+ API, and sending the data packet at this time would exceed the
+ limit, then abort these steps. User agents may report this to the
+ user, e.g. in a development console.</li>
+
+ <li><p><a href=#transmit-a-data-packet-to-a-peer>Transmit a data packet to a peer</a> using the
+ <code><a href=#peerconnection>PeerConnection</a></code>'s <a href=#peerconnection-data-udp-media-stream><code>PeerConnection</code>
+ data UDP media stream</a> with <var title="">data</var> as the
+ message.</li>
+
+ </ol><p>When the <dfn id=dom-peerconnection-addstream title=dom-PeerConnection-addStream><code title="">addStream()</code></dfn> method is invoked, the user agent
+ must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">stream</var> be the method's
+ argument.</li>
+
+ <li><p>If the <code><a href=#peerconnection>PeerConnection</a></code> object's
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception.</li>
+
+ <li><p>If <var title="">stream</var> is already in the
+ <code><a href=#peerconnection>PeerConnection</a></code> object's <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code> object,
+ then abort these steps.</li>
+
+ <li><p>Add <var title="">stream</var> to the end of the
+ <code><a href=#peerconnection>PeerConnection</a></code> object's <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code>
+ object.</li>
+
+ <li><p>Return from the method.</li>
+
+ <li><p>If the <code><a href=#peerconnection>PeerConnection</a></code>'s <a href=#ice-started-flag>ICE
+ started flag</a> is false, then abort these steps.</li>
+
+ <li><p>Have the <code><a href=#peerconnection>PeerConnection</a></code>'s
+ <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> add a media
+ stream for <var title="">stream</var> the next time the user agent
+ <a href=#provide-a-stable-state title="provide a stable state">provides a stable
+ state</a>. Any other pending stream additions and removals must
+ be processed at the same time. <a href=#refsICE>[ICE]</a></li> <!-- section 9.1.1.3 -->
+
+ </ol><p>When the <dfn id=dom-peerconnection-removestream title=dom-PeerConnection-removeStream><code title="">removeStream()</code></dfn> method is invoked, the user agent
+ must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">stream</var> be the method's
+ argument.</li>
+
+ <li><p>If the <code><a href=#peerconnection>PeerConnection</a></code> object's
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception.</li>
+
+ <li><p>If <var title="">stream</var> is not in the
+ <code><a href=#peerconnection>PeerConnection</a></code> object's <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code> object,
+ then abort these steps.</li>
+
+ <li><p>Remove <var title="">stream</var> from the
+ <code><a href=#peerconnection>PeerConnection</a></code> object's <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code>
+ object.</li>
+
+ <li><p>Return from the method.</li>
+
+ <li><p>If the <code><a href=#peerconnection>PeerConnection</a></code>'s <a href=#ice-started-flag>ICE
+ started flag</a> is false, then abort these steps.</li>
+
+ <li><p>Have the <code><a href=#peerconnection>PeerConnection</a></code>'s
+ <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> remove the media
+ stream for <var title="">stream</var> the next time the user agent
+ <a href=#provide-a-stable-state title="provide a stable state">provides a stable
+ state</a>. Any other pending stream additions and removals must
+ be processed at the same time. <a href=#refsICE>[ICE]</a></li> <!-- section 9.1.1.2 -->
+
+ </ol><p>The <dfn id=dom-peerconnection-localstreams title=dom-PeerConnection-localStreams><code>localStreams</code></dfn>
+ and <dfn id=dom-peerconnection-remotestreams title=dom-PeerConnection-remoteStreams><code>remoteStreams</code></dfn>
+ attributes must return the read-only <code><a href=#mediastream>MediaStream</a></code> arrays that
+ the attributes were respectively set to when the
+ <code><a href=#peerconnection>PeerConnection</a></code>'s constructor ran.</p>
+
+ <p>When the <dfn id=dom-peerconnection-close title=dom-PeerConnection-close><code title="">close()</code></dfn> method is invoked, the user agent must
+ run the following steps:</p>
+
+ <ol><li><p>If the <code><a href=#peerconnection>PeerConnection</a></code> object's
+ <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness state</a> is <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3), throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception.</li>
+
+ <li><p>Destroy the <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE
+ Agent</a>, abruptly ending any active ICE processing and any
+ active streaming, and releasing any relevant resources (e.g. TURN
+ permissions).</li>
+
+ <li><p>Set the object's <a href=#peerconnection-readiness-state><code>PeerConnection</code> readiness
+ state</a> to <code title=dom-PeerConnection-CLOSED><a href=#dom-peerconnection-closed>CLOSED</a></code> (3).</li>
+<!--
+ <li><p><span>Queue a task</span> to <span>fire a simple
+ event</span> named <code title="event-MediaStream-close">close</code> at the
+ <code>PeerConnection</code> object.</p></li>
+-->
+ </ol><p class=note>The <code title=dom-PeerConnection-localStreams><a href=#dom-peerconnection-localstreams>localStreams</a></code> and
+ <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code>
+ objects remain in the state they were in when the object was
+ closed.</p>
+
+ <hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ all objects implementing the <code><a href=#peerconnection>PeerConnection</a></code>
+ interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-peerconnection-onconnecting title=handler-PeerConnection-onconnecting><code>onconnecting</code></dfn> <td> <code title=event-MediaStream-connecting><a href=#event-mediastream-connecting>connecting</a></code>
+ <tr><td><dfn id=handler-peerconnection-onopen title=handler-PeerConnection-onopen><code>onopen</code></dfn> <td> <code title=event-MediaStream-open><a href=#event-mediastream-open>open</a></code>
+<!-- <tr><td><dfn title="handler-PeerConnection-onerror"><code>onerror</code></dfn> <td> <code title="event-MediaStream-error">error</code>-->
+<!-- <tr><td><dfn title="handler-PeerConnection-onclose"><code>onclose</code></dfn> <td> <code title="event-MediaStream-close">close</code>-->
+ <tr><td><dfn id=handler-peerconnection-onmessage title=handler-PeerConnection-onmessage><code>onmessage</code></dfn> <td> <code title=event-MediaStream-message><a href=#event-mediastream-message>message</a></code>
+ <tr><td><dfn id=handler-peerconnection-onaddstream title=handler-PeerConnection-onaddstream><code>onaddstream</code></dfn> <td> <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code>
+ <tr><td><dfn id=handler-peerconnection-onremovestream title=handler-PeerConnection-onremovestream><code>onremovestream</code></dfn> <td> <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code>
+ </table><hr><p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> listed in this section is the
+ <a href=#networking-task-source>networking task source</a>.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>When two peers decide they are going to set up a connection to
+ each other, they both go through these steps. The STUN/TURN server
+ configuration describes a server they can use to get things like
+ their public IP address or to set up NAT traversal. They also have
+ to send data for the signaling channel to each other using the same
+ out-of-band mechanism they used to establish that they were going
+ to communicate in the first place.</p>
+
+ <pre>// the first argument describes the STUN/TURN server configuration
+var local = new PeerConnection('TURNS example.net', sendSignalingChannel);
+local.signalingChannel(...); // if we have a message from the other side, pass it along here
+
+// (aLocalStream is some LocalMediaStream object)
+local.addStream(aLocalStream); // start sending video
+
+function sendSignalingChannel(message) {
+ ... // send message to the other side via the signaling channel
+}
+
+function receiveSignalingChannel (message) {
+ // call this whenever we get a message on the signaling channel
+ local.signalingChannel(message);
+}
+
+local.onaddstream = function (event) {
+ // (videoElement is some &lt;video&gt; element)
+ videoElement.src = URL.createObjectURL(event.stream);
+};</pre>
+
+ </div>
+
+ <p class=warning>To prevent network sniffing from allowing a
+ fourth party to establish a connection to a peer using the
+ information sent out-of-band to the other peer and thus spoofing the
+ client, the configuration information should always be transmitted
+ using an encrypted connection.</p>
+
+
+
+ <div class=impl>
+
+ <h3 id=the-data-stream><span class=secno>9.5 </span>The data stream</h3>
+
+ <p>All <code><a href=#peerconnection>PeerConnection</a></code> connections include a <dfn id=data-udp-media-stream>data
+ UDP media stream</dfn>, which is used to send data packets
+ peer-to-peer, for instance game control packets. This data channel
+ is unreliable (packets are not guaranteed to be delivered), and
+ packets received out of order are discarded.</p>
+
+ <p>SDP media descriptions for <a href=#data-udp-media-stream title="data UDP media
+ stream">data UDP media streams</a> must use the "<code title="">application</code>" media type, the "<code title="">udp</code>" transport protocol, and the
+ "<code><a href=#application/html-peer-connection-data>application/html-peer-connection-data</a></code>" media format
+ description. <a href=#refsSDP>[SDP]</a></p>
+
+ <p>All SDP media descriptions for <a href=#data-udp-media-stream title="data UDP media
+ stream">data UDP media streams</a> must include a label attribute
+ ("<code title="">a=label:</code>") whose value is the string "<code title="">data</code>". <a href=#refsSDP>[SDP]</a> <a href=#refsSDPLABEL>[SDPLABEL]</a></p>
+
+ <p>All SDP media descriptions for <a href=#data-udp-media-stream title="data UDP media
+ stream">data UDP media streams</a> must also include a key field
+ ("<code title="">k=</code>"), with the value being a base64-encoded
+ representation of 16 cryptographically random bytes determined on a
+ per-ICE-Agent basis. <a href=#refsSDP>[SDP]</a></p>
+
+ <p><a href=#peerconnection-ice-agent title="PeerConnection ICE
+ Agent"><code>PeerConnection</code> ICE Agents</a> must attempt to
+ establish a connection for their <a href=#peerconnection-data-udp-media-stream><code>PeerConnection</code>
+ data UDP media stream</a> with the initial offer/answer exchange,
+ and must maintain that UDP media stream for the ICE Agents' whole
+ lifetime.</p>
+
+ <p>Each <a href=#peerconnection-data-udp-media-stream><code>PeerConnection</code> data UDP media
+ stream</a> has a <dfn id=sending-sequence-number>sending sequence number</dfn>, which must
+ initially be set to one (1), and a <dfn id=most-recently-received-sequence-number>most recently received
+ sequence number</dfn>, much must initially be zero (0).
+
+ <p>A <a href=#data-udp-media-stream>data UDP media stream</a> is an <dfn id=active-data-udp-media-stream>active data UDP
+ media stream</dfn> if the <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE
+ Agent</a> has selected a destination for it. A <a href=#data-udp-media-stream>data UDP
+ media stream</a> can change active status many times during the
+ lifetime of its <code><a href=#peerconnection>PeerConnection</a></code> object (e.g. any time
+ the network topology changes and the ICE Agent performs an ICE
+ Restart). <a href=#refsICE>[ICE]</a></p>
+
+ <p>Bytes transmitted on a <a href=#data-udp-media-stream>data UDP media stream</a> are
+ masked so as to prevent cross-protocol attacks (<a href=#data-udp-media-stream>data UDP media
+ stream</a> always appear to contain random noise to other
+ protocols). For the purposes of masking, the <dfn id=data-udp-media-stream-masking-salt>data UDP media
+ stream masking salt</dfn> is defined to be the following 16 bytes,
+ described here as hexadecimal numbers: DB 68 B5 FD 17 0E 15 77 56 AF
+ 7A 3A 1A 57 75 02</p>
+ <!-- obtained thusly: head -c 16 /dev/urandom | hexdump -C -->
+
+ <p>Bytes transmitted on a <a href=#data-udp-media-stream>data UDP media stream</a> are
+ also hashed so as to prevent forgery attacks (an attacker cannot
+ change the data without knowing the key negotiated via the signaling
+ channel). For the purposes of this hashing, the <dfn id=data-udp-media-stream-hashing-salt>data UDP media
+ stream hashing salt</dfn> is defined to be the following 16 bytes,
+ described here as hexadecimal numbers: 4E 2F 96 AB 0A 39 92 A2 56 94
+ 91 F5 7E 58 2E FA</p>
+ <!-- obtained thusly: head -c 16 /dev/urandom | hexdump -C -->
+
+ <p>When the user agent is to <dfn id=transmit-a-data-packet-to-a-peer>transmit a data packet to a
+ peer</dfn> using a <a href=#data-udp-media-stream>data UDP media stream</a> and with a
+ byte string payload <var title="">raw message</var>, the user agent
+ must run the following steps:</p>
+
+ <ol><li><p>Let <var title="">nonce</var> be 16 cryptographically random
+ bytes.</li>
+
+ <li><p>Let <var title="">ice-key</var> be the 16 bytes given as the
+ encryption key for the <a href=#data-udp-media-stream>data UDP media stream</a> in its
+ media description, as defined above.</li>
+
+ <li><p>Let <var title="">sending sequence number</var> be the
+ current <a href=#sending-sequence-number>sending sequence number</a>.</li>
+
+ <li><p>Increment the <a href=#sending-sequence-number>sending sequence number</a> by one
+ (1).</li>
+
+ <li><p>Let <var title="">mask-key</var> be the first 16 bytes of the
+ HMAC-SHA1 of the 16 <a href=#data-udp-media-stream-masking-salt>data UDP media stream masking salt</a>
+ bytes keyed with the 16 <var title="">ice-key</var> bytes. <a href=#refsHMAC>[HMAC]</a> <a href=#refsSHA1>[SHA1]</a></li>
+
+ <li><p>Let <var title="">typed raw message</var> be the
+ concatenation of the <var title="">sequence number</var> as a
+ big-endian 64 bit integer, three 0x00 bytes, a 0x01 byte, and <var title="">raw message</var>.</li>
+
+ <li><p>Let <var title="">masked message</var> be the result of
+ encrypting <var title="">typed raw message</var> using AES-128-CTR
+ keyed with <var title="">mask-key</var> and using the 16 <var title="">nonce</var> bytes as the initial counter value. <a href=#refsAES128CTR>[AES128CTR]</a></li>
+
+ <li><p>Let <var title="">masked message with nonce</var> be the
+ concatenation of <var title="">nonce</var> and <var title="">masked
+ message</var>.</li>
+
+ <li><p>Let <var title="">hash-key</var> be the first 16 bytes of
+ the HMAC-SHA1 of the 16 <a href=#data-udp-media-stream-hashing-salt>data UDP media stream hashing
+ salt</a> bytes keyed with the 16 <var title="">ice-key</var>
+ bytes. <a href=#refsHMAC>[HMAC]</a> <a href=#refsSHA1>[SHA1]</a></li>
+
+ <li><p>Let <var title="">hash</var> be the first 16 bytes of the
+ HMAC-SHA1 of <var title="">masked message with nonce</var> keyed
+ with the 16 <var title="">hash-key</var> bytes. <a href=#refsHMAC>[HMAC]</a> <a href=#refsSHA1>[SHA1]</a></li>
+
+ <li><p>Let <var title="">hashed masked message with nonce</var> be the
+ concatenation of <var title="">hash</var> and <var title="">masked message with nonce</var>.</li>
+
+ <li><p>Send <var title="">hashed masked message with nonce</var> in
+ a UDP packet to the destination that the relevant
+ <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE Agent</a> has selected a
+ destination for the <a href=#data-udp-media-stream>data UDP media stream</a>.</li>
+
+ </ol><p>When a packet that is part of a <a href=#data-udp-media-stream>data UDP media
+ stream</a> is received, the user agent must run the following
+ steps:</p>
+
+ <ol><!-- v2: binary --><li><p>Let <var title="">hashed masked message with nonce</var> be the UDP
+ packet's data.</li>
+
+ <li><p>If <var title="">hashed masked message with nonce</var> is
+ shorter than 32 bytes, then abort these steps.</li>
+
+ <li><p>Let <var title="">ice-key</var> be the 16 bytes given as the
+ encryption key for the <a href=#data-udp-media-stream>data UDP media stream</a> in the
+ media description for this media stream. <a href=#refsSDP>[SDP]</a></li>
+
+ <li><p>Let <var title="">hash-key</var> be the first 16 bytes of
+ the HMAC-SHA1 of the 16 <a href=#data-udp-media-stream-hashing-salt>data UDP media stream hashing
+ salt</a> bytes keyed with the 16 <var title="">ice-key</var>
+ bytes. <a href=#refsHMAC>[HMAC]</a> <a href=#refsSHA1>[SHA1]</a></li>
+
+ <li><p>Let <var title="">hash</var> be the first 16 bytes of
+ the <var title="">hashed masked message with nonce</var>.</li>
+
+ <li><p>Let <var title="">masked message with nonce</var> be all but
+ the first 16 bytes of <var title="">hashed masked message with
+ nonce</var>.</li>
+
+ <li><p>If <var title="">hash</var> does not equal the first 16
+ bytes of the HMAC-SHA1 of <var title="">masked message with
+ nonce</var> keyed with the 16 <var title="">hash-key</var> bytes,
+ abort these steps. <a href=#refsHMAC>[HMAC]</a> <a href=#refsSHA1>[SHA1]</a></li>
+
+ <li><p>Let <var title="">nonce</var> be the first 16 bytes of the
+ <var title="">masked message with nonce</var>.</li>
+
+ <li><p>Let <var title="">masked message</var> be all but the first
+ 16 bytes of <var title="">masked message with nonce</var>.</li>
+
+ <li><p>Let <var title="">mask-key</var> be the first 16 bytes of the
+ HMAC-SHA1 of the 16 <a href=#data-udp-media-stream-masking-salt>data UDP media stream masking salt</a>
+ bytes keyed with the 16 <var title="">ice-key</var> bytes. <a href=#refsHMAC>[HMAC]</a> <a href=#refsSHA1>[SHA1]</a></li>
+
+ <li><p>Let <var title="">typed raw message</var> be the result of
+ decrypting <var title="">masked message</var> using AES-128-CTR
+ keyed with <var title="">mask-key</var> and using the 16 <var title="">nonce</var> bytes as the initial counter value. <a href=#refsAES128CTR>[AES128CTR]</a></li>
+
+ <li><p>Let <var title="">sequence number</var> be the result of
+ interpreting the first eight bytes of <var title="">typed raw
+ message</var> as a 64 bit big-endian integer.</li>
+
+ <li><p>If <var title="">sequence number</var> is less than the
+ <a href=#most-recently-received-sequence-number>most recently received sequence number</a> then abort
+ these steps.</li>
+
+ <li><p>Let the <a href=#most-recently-received-sequence-number>most recently received sequence number</a>
+ be <var title="">sequence number</var>.</li>
+
+ <li><p>If the ninth, tenth, eleventh, and twelfth bytes of <var title="">typed raw message</var> are not 0x00, 0x00, 0x00, and 0x01
+ respectively, then abort these steps.</li>
+
+ <li><p>Let <var title="">raw message</var> be the byte string
+ consisting of all but the first twelve bytes of <var title="">typed
+ raw message</var>.</li>
+
+ <li><p>Let <var title="">message</var> be <var title="">raw
+ message</var> <a href=#decoded-as-utf-8,-with-error-handling>decoded as UTF-8, with error
+ handling</a>.</li>
+
+ <li><p>Create an event that uses the <code><a href=#messageevent>MessageEvent</a></code>
+ interface, with the name <code title=event-message><a href=#event-message>message</a></code>, which does not bubble, is not
+ cancelable, has no default action, and has a <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code> attribute initialized to
+ <var title="">message</var>, and <a href=#queue-a-task>queue a task</a> to
+ dispatch the event at the <code><a href=#peerconnection>PeerConnection</a></code> object
+ responsible for this side of the <a href=#data-udp-media-stream>data UDP media
+ stream</a>.</li>
+
+ </ol><p class=note>Though described above as being computed for each
+ packet, the <var title="">ice-key</var>, <var title="">hash-key</var>, and <var title="">mask-key</var> values can
+ be precomputed as soon as the <a href=#peerconnection-ice-agent><code>PeerConnection</code> ICE
+ Agent</a> is started.</p>
+
+ <div class=note>
+
+ <p>The format of a packet sent over a <a href=#data-udp-media-stream>data UDP media
+ stream</a>, as generated and parsed by the algorithms above, is
+ as follows. The total overhead per packet is thus 44 bytes, of which
+ four are intended for future extensions.</p>
+
+ <pre>
+ /'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.
++--------------+ +---------------+ +-ENCRYPTED------------------------------------------------------------+ :
+| 16 byte hash | | 16 byte nonce | | [ 8 bytes of sequence number ] [ 4 bytes of frame type ] [ data... ] | :
++--------------+ +---------------+ +----------------------------------------------------------------------+ :
+ \...........................................................................................'
+</pre>
+
+ </div>
+
+ <p>A <dfn id=remotely-initiated-data-udp-media-stream>remotely-initiated data UDP media stream</dfn> is the
+ first "sendrecv" media stream in the initial offer whose media is
+ "<code title="">application</code>", whose transport protocol is
+ "<code title="">udp</code>", whose media format description is
+ "<code><a href=#application/html-peer-connection-data>application/html-peer-connection-data</a></code>", and whose label
+ attribute ("<code title="">a=label:</code>") has the value "<code title="">data</code>".</p>
+
+ <p>The <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#networking-task-source>networking task
+ source</a>.</p>
+
+ </div>
+
+
+ <h4 id=security-considerations><span class=secno>9.5.1 </span>Security considerations</h4>
+
+ <p>The <a href=#data-udp-media-stream>data UDP media stream</a> packet format is designed
+ to protect against several obvious attacks. The data is made to
+ appear pseudo-random, so that it cannot be used in a cross-protocol
+ attack, even if somehow the stream were to be directed at an
+ unsuspecting remote host. The data is hashed in such a way that it
+ cannot be modified in transit. That data is encrypted so that it
+ cannot be read in transit.</p>
+
+ <p>These security mechanisms rely in part on a key that is
+ negotiated over the signalling channel; as such, the security is
+ only as strong as the security of the signaling channel. Authors are
+ encouraged to use TLS to protect the signalling channel and the
+ page(s) hosting the application, and are encouraged to secure the
+ host used to relay the signalling channel.</p>
+
+ <div class=impl>
+
+ <p>To avoid network traffic congestion and other denial of service
+ attacks based on traffic volume, user agents should apply
+ rate-limiting to <a href=#data-udp-media-stream title="data UDP media stream">data UDP media
+ streams</a>.</p>
+
+ </div>
+
+
+ <h3 id=garbage-collection-0><span class=secno>9.6 </span>Garbage collection</h3>
+
+ <p>A <code><a href=#window>Window</a></code> object <dfn id=concept-peerconnection-owner title=concept-PeerConnection-owner>has a strong reference</dfn> to
+ any <code><a href=#peerconnection>PeerConnection</a></code> objects created from the constructor
+ whose global object is that <code><a href=#window>Window</a></code> object.</p> <!-- we
+ could be less strict here, e.g. dropping the reference when there's
+ no way for an event to be fired because there's no event handlers
+ registered and there's no way for the remote peer to notice anything
+ because no media is streaming; or e.g. dropping the reference when
+ the object reaches the CLOSED state. But as dropping the reference
+ in those cases is black-box indistinguishable from keeping the
+ reference, I haven't bothered to work out the exact rules. If you do
+ change this, see the /unloading document cleanup steps/. -->
+
+
+ <h3 id=event-definitions-1><span class=secno>9.7 </span>Event definitions</h3>
+
+ <p>The <code title=event-MediaStream-addstream><a href=#event-mediastream-addstream>addstream</a></code> and
+ <code title=event-MediaStream-removestream><a href=#event-mediastream-removestream>removestream</a></code> events
+ use the <code><a href=#mediastreamevent>MediaStreamEvent</a></code> interface:</p>
+
+ <pre class=idl>[Constructor(DOMString type, optional <a href=#mediastreameventinit>MediaStreamEventInit</a> eventInitDict)]
+interface <dfn id=mediastreamevent>MediaStreamEvent</dfn> : <a href=#event>Event</a> {
+ readonly attribute <a href=#mediastream>MediaStream</a>? <a href=#dom-mediastreamevent-stream title=dom-MediaStreamEvent-stream>stream</a>;
+};
+
+dictionary <dfn id=mediastreameventinit>MediaStreamEventInit</dfn> : <a href=#eventinit>EventInit</a> {
+ DOMString <a href=#mediastream>MediaStream</a>? stream;
+};</pre>
+
+ <div class=impl>
+
+ <p>The <dfn id=dom-mediastreamevent-stream title=dom-MediaStreamEvent-stream><code>stream</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to null. It
+ represents the <code><a href=#mediastream>MediaStream</a></code> object associated with the
+ event.</p>
+
+ <p><dfn id=fire-a-stream-event title="fire a stream event">Firing a stream event named <var title="">e</var></dfn> with a <code><a href=#mediastream>MediaStream</a></code> <var title="">stream</var> means that an event with the name <var title="">e</var>, which does not bubble (except where otherwise
+ stated) and is not cancelable (except where otherwise stated), and
+ which uses the <code><a href=#mediastreamevent>MediaStreamEvent</a></code> interface with the
+ <code title=dom-MediaStreamEvent-stream><a href=#dom-mediastreamevent-stream>stream</a></code> attribute
+ initialized to <var title="">stream</var>, must be created and
+ dispatched at the given target.</p>
+
+ </div>
+
+
+ <h3 id=mediastreamevents><span class=secno>9.8 </span>Event Summary</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The following event fires on <code><a href=#mediastream>MediaStream</a></code> objects:</p>
+
+ <table><thead><tr><th>Event name
+ <th>Interface
+ <th>Fired when...
+
+ <tbody><tr><td><dfn id=event-mediastream-ended title=event-MediaStream-ended><code>ended</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The <code><a href=#mediastream>MediaStream</a></code> object will no longer stream any data, either because the user revoked the permissions, or because the source device has been ejected, or because the remote peer stopped sending data, or because the <code title=dom-MediaStream-stop><a href=#dom-mediastream-stop>stop()</a></code> method was invoked.
+
+ </table><p>The following events fire on <code><a href=#peerconnection>PeerConnection</a></code> objects:</p>
+
+ <table><thead><tr><th>Event name
+ <th>Interface
+ <th>Fired when...
+
+ <tbody><tr><td><dfn id=event-mediastream-connecting title=event-MediaStream-connecting><code>connecting</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The ICE Agent has begun negotiating with the peer. This can happen multiple times during the lifetime of the <code><a href=#peerconnection>PeerConnection</a></code> object.
+
+ <tr><td><dfn id=event-mediastream-open title=event-MediaStream-open><code>open</code></dfn>
+ <td><code><a href=#event>Event</a></code>
+ <td>The ICE Agent has finished negotiating with the peer.
+
+<!--
+ <tr>
+ <td><dfn title="event-MediaStream-error"><code>error</code></dfn>
+ <td><code>Event</code>
+ <td>
+
+ <tr>
+ <td><dfn title="event-MediaStream-close"><code>close</code></dfn>
+ <td><code>Event</code>
+ <td>The <code title="dom-PeerConnection-close">close()</code> method was called.
+-->
+
+ <tr><td><dfn id=event-mediastream-message title=event-MediaStream-message><code>message</code></dfn>
+ <td><code><a href=#messageevent>MessageEvent</a></code>
+ <td>A <a href=#data-udp-media-stream>data UDP media stream</a> message was received.
+
+ <tr><td><dfn id=event-mediastream-addstream title=event-MediaStream-addstream><code>addstream</code></dfn>
+ <td><code><a href=#mediastreamevent>MediaStreamEvent</a></code>
+ <td>A new stream has been added to the <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code> array.
+
+ <tr><td><dfn id=event-mediastream-removestream title=event-MediaStream-removestream><code>removestream</code></dfn>
+ <td><code><a href=#mediastreamevent>MediaStreamEvent</a></code>
+ <td>A stream has been removed from the <code title=dom-PeerConnection-remoteStreams><a href=#dom-peerconnection-remotestreams>remoteStreams</a></code> array.
+
+ </table></div>
+
+<!--PEERCONNECTION-->
+
+
+
+
+
+
+
+ <div data-component="Web Workers (editor: Ian Hickson)">
+
+ <h2 id=workers><span class=secno>10 </span>Web workers</h2>
+
+
+
+
+ <h3 id=introduction-13><span class=secno>10.1 </span>Introduction</h3>
+
+ <h4 id=scope-0><span class=secno>10.1.1 </span>Scope</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>This specification defines an API for running scripts in the
+ background independently of any user interface scripts.</p>
+
+ <p>This allows for long-running scripts that are not interrupted by
+ scripts that respond to clicks or other user interactions, and
+ allows long tasks to be executed without yielding to keep the page
+ responsive.</p>
+
+ <p>Workers (as these background scripts are called herein) are
+ relatively heavy-weight, and are not intended to be used in large
+ numbers. For example, it would be inappropriate to launch one worker
+ for each pixel of a four megapixel image. The examples below show
+ some appropriate uses of workers.</p>
+
+ <p>Generally, workers are expected to be long-lived, have a high
+ start-up performance cost, and a high per-instance memory cost.</p>
+
+
+ <h4 id=examples-4><span class=secno>10.1.2 </span>Examples</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>There are a variety of uses that workers can be put to. The
+ following subsections show various examples of this use.</p>
+
+ <h5 id=a-background-number-crunching-worker><span class=secno>10.1.2.1 </span>A background number-crunching worker</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The simplest use of workers is for performing a computationally
+ expensive task without interrupting the user interface.</p>
+
+ <p>In this example, the main document spawns a worker to
+ (na&iuml;vely) compute prime numbers, and progressively displays the
+ most recently found prime number.</p>
+
+ <p>The main page is as follows:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Worker example: One-core computation&lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;p&gt;The highest prime number discovered so far is: &lt;output id="result"&gt;&lt;/output&gt;&lt;/p&gt;
+ &lt;script&gt;
+ var worker = new Worker('worker.js');
+ worker.onmessage = function (event) {
+ document.getElementById('result').textContent = event.data;
+ };
+ &lt;/script&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>The <code title=dom-Worker><a href=#dom-worker>Worker()</a></code> constructor call
+ creates a worker and returns a <code><a href=#worker>Worker</a></code> object
+ representing that worker, which is used to communicate with the
+ worker. That object's <code title=handler-Worker-onmessage><a href=#handler-worker-onmessage>onmessage</a></code> event handler allows the code to receive messages from the worker.</p>
+
+ <p>The worker itself is as follows:</p>
+
+ <pre>var n = 1;
+search: while (true) {
+ n += 1;
+ for (var i = 2; i &lt;= Math.sqrt(n); i += 1)
+ if (n % i == 0)
+ continue search;
+ // found a prime!
+ postMessage(n);
+}</pre>
+
+ <p>The bulk of this code is simply an unoptimized search for a prime
+ number. The <code title=dom-DedicatedWorkerGlobalScope-postMessage><a href=#dom-dedicatedworkerglobalscope-postmessage>postMessage()</a></code>
+ method is used to send a message back to the page when a prime is
+ found.</p>
+
+ <p><a href=http://www.whatwg.org/demos/workers/primes/page.html>View this example online</a>.</p>
+
+
+
+ <h5 id=a-worker-for-updating-a-client-side-database><span class=secno>10.1.2.2 </span>A worker for updating a client-side database</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>In this example, the main document spawns a worker whose only
+ task is to listen for notifications from the server, and, when
+ appropriate, either add or remove data from the client-side
+ database.</p>
+
+ <p>Since no communication occurs between the worker and the main
+ page, the main page can start the worker by just doing:</p>
+
+ <pre>&lt;script&gt;
+ new Worker('worker.js');
+&lt;/script&gt;</pre>
+
+ <p>The worker itself is as follows:</p>
+
+ <pre>var server = new WebSocket('ws://whatwg.org/database');
+var database = openDatabase('demobase', '1.0', 'Demo Database', 10240);
+server.onmessage = function (event) {
+ // data is in the format "command key value"
+ var data = event.data.split(' ');
+ switch (data[0]) {
+ case '+':
+ database.transaction(function(tx) {
+ tx.executeSql('INSERT INTO pairs (key, value) VALUES (?, ?)', data[1], data[2]);
+ });
+ case '-':
+ database.transaction(function(tx) {
+ tx.executeSql('DELETE FROM pairs WHERE key=? AND value=?', data[1], data[2]);
+ });
+ }
+};</pre>
+
+ <p>This connects to the server using the <code><a href=#websocket>WebSocket</a></code>
+ mechanism and opens the local database (which, we presume, has been
+ created earlier). The worker then just listens for messages from the
+ server and acts on them as appropriate, forever (or until the main
+ page is closed).</p>
+
+ <p><a href=http://www.whatwg.org/demos/workers/database-updater/page.html>View
+ this example online</a>. (This example will not actually function,
+ since the server does not actually exist and the database is not
+ created by this sample code.)</p>
+
+
+
+ <h5 id=worker-used-for-background-i/o><span class=secno>10.1.2.3 </span>Worker used for background I/O</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>In this example, the main document uses two workers, one for
+ fetching stock updates for at regular intervals, and one for
+ fetching performing search queries that the user requests.</p>
+
+ <p>The main page is as follows:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Worker example: Stock ticker&lt;/title&gt;
+ &lt;script&gt;
+ // TICKER
+ var symbol = 'GOOG'; // default symbol to watch
+ var ticker = new Worker('ticker.js');
+
+ // SEARCHER
+ var searcher = new Worker('searcher.js');
+ function search(query) {
+ searcher.postMessage(query);
+ }
+
+ // SYMBOL SELECTION UI
+ function select(newSymbol) {
+ symbol = newSymbol;
+ ticker.postMessage(symbol);
+ }
+ &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body onload="search('')"&gt;
+ &lt;p&gt;&lt;output id="symbol"&gt;&lt;/output&gt; &lt;output id="value"&gt;&lt;/output&gt;&lt;/p&gt;
+ &lt;script&gt;
+ ticker.onmessage = function (event) {
+ var data = event.data.split(' ');
+ document.getElementById('symbol').textContent = data[0];
+ document.getElementById('value').textContent = data[1];
+ };
+ ticker.postMessage(symbol);
+ &lt;/script&gt;
+ &lt;p&gt;&lt;label&gt;Search: &lt;input type="text" autofocus oninput="search(this.value)"&gt;&lt;/label&gt;&lt;/p&gt;
+ &lt;ul id="results"&gt;&lt;/ul&gt;
+ &lt;script&gt;
+ searcher.onmessage = function (event) {
+ var data = event.data.split(' ');
+ var results = document.getElementById('results');
+ while (results.hasChildNodes()) // clear previous results
+ results.removeChild(results.firstChild);
+ for (var i = 0; i &lt; data.length; i += 1) {
+ // add a list item with a button for each result
+ var li = document.createElement('li');
+ var button = document.createElement('button');
+ button.value = data[i];
+ button.type = 'button';
+ button.onclick = function () { select(this.value); };
+ button.textContent = data[i];
+ li.appendChild(button);
+ results.appendChild(li);
+ }
+ };
+ &lt;/script&gt;
+ &lt;p&gt;(The data in this example is not real. Try searching for "Google" or "Apple".)&lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>The two workers use a common library for performing the actual
+ network calls. This library is as follows:</p>
+
+ <pre>function get(url) {
+ try {
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', url, false);
+ xhr.send();
+ return xhr.responseText;
+ } catch (e) {
+ return ''; // turn all errors into empty results
+ }
+}</pre>
+
+ <p>The stock updater worker is as follows:</p>
+
+ <pre>importScripts('io.js');
+var timer;
+var symbol;
+function update() {
+ postMessage(symbol + ' ' + get('stock.cgi?' + symbol));
+ timer = setTimeout(update, 10000);
+}
+onmessage = function (event) {
+ if (timer)
+ clearTimeout(timer);
+ symbol = event.data;
+ update();
+};</pre>
+
+ <p>The search query worker is as follows:</p>
+
+ <pre>importScripts('io.js');
+onmessage = function (event) {
+ postMessage(get('search.cgi?' + event.data));
+};</pre>
+
+ <p><a href=http://www.whatwg.org/demos/workers/stocks/page.html>View this example online</a>.</p>
+
+
+ <h5 id=shared-workers-introduction><span class=secno>10.1.2.4 </span>Shared workers introduction</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>This section introduces shared workers using a Hello World
+ example. Shared workers use slightly different APIs, since each
+ worker can have multiple connections.</p>
+
+ <p>This first example shows how you connect to a worker and how a
+ worker can send a message back to the page when it connects to
+ it. Received messages are displayed in a log.</p>
+
+ <p>Here is the HTML page:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;title&gt;Shared workers: demo 1&lt;/title&gt;
+&lt;pre id="log"&gt;Log:&lt;/pre&gt;
+&lt;script&gt;
+ var worker = new SharedWorker('test.js');
+ var log = document.getElementById('log');
+ worker.port.onmessage = function(e) { // note: not worker.onmessage!
+ log.textContent += '\n' + e.data;
+ }
+&lt;/script&gt;
+</pre>
+
+ <p>Here is the JavaScript worker:</p>
+
+ <pre>onconnect = function(e) {
+ var port = e.ports[0];
+ port.postMessage('Hello World!');
+}
+</pre>
+
+ <p><a href=http://www.whatwg.org/demos/workers/shared/001/test.html>View this example online</a>.</p>
+
+ <hr><p>This second example extends the first one by changing two things:
+ first, messages are received using <code title="">addEventListener()</code> instead of an <a href=#event-handler-idl-attributes title="event
+ handler IDL attributes">event handler IDL attribute</a>, and
+ second, a message is sent <em>to</em> the worker, causing the worker
+ to send another message in return. Received messages are again
+ displayed in a log.</p>
+
+ <p>Here is the HTML page:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;title&gt;Shared workers: demo 2&lt;/title&gt;
+&lt;pre id="log"&gt;Log:&lt;/pre&gt;
+&lt;script&gt;
+ var worker = new SharedWorker('test.js');
+ var log = document.getElementById('log');
+ worker.port.addEventListener('message', function(e) {
+ log.textContent += '\n' + e.data;
+ }, false);
+ worker.port.start(); // note: need this when using addEventListener
+ worker.port.postMessage('ping');
+&lt;/script&gt;
+</pre>
+
+ <p>Here is the JavaScript worker:</p>
+
+ <pre>onconnect = function(e) {
+ var port = e.ports[0];
+ port.postMessage('Hello World!');
+ port.onmessage = function(e) {
+ port.postMessage('pong'); // not e.ports[0].postMessage!
+ // e.target.postMessage('pong'); would work also
+ }
+}
+</pre>
+
+ <p><a href=http://www.whatwg.org/demos/workers/shared/002/test.html>View this example online</a>.</p>
+
+ <hr><p>Finally, the example is extended to show how two pages can
+ connect to the same worker; in this case, the second page is merely
+ in an <code><a href=#the-iframe-element>iframe</a></code> on the first page, but the same principle
+ would apply to an entirely separate page in a separate
+ <a href=#top-level-browsing-context>top-level browsing context</a>.</p>
+
+ <p>Here is the outer HTML page:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;title&gt;Shared workers: demo 3&lt;/title&gt;
+&lt;pre id="log"&gt;Log:&lt;/pre&gt;
+&lt;script&gt;
+ var worker = new SharedWorker('test.js');
+ var log = document.getElementById('log');
+ worker.port.addEventListener('message', function(e) {
+ log.textContent += '\n' + e.data;
+ }, false);
+ worker.port.start();
+ worker.port.postMessage('ping');
+&lt;/script&gt;
+&lt;iframe src="inner.html"&gt;&lt;/iframe&gt;
+</pre>
+
+ <p>Here is the inner HTML page:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;title&gt;Shared workers: demo 3 inner frame&lt;/title&gt;
+&lt;pre id=log&gt;Inner log:&lt;/pre&gt;
+&lt;script&gt;
+ var worker = new SharedWorker('test.js');
+ var log = document.getElementById('log');
+ worker.port.onmessage = function(e) {
+ log.textContent += '\n' + e.data;
+ }
+&lt;/script&gt;
+</pre>
+
+ <p>Here is the JavaScript worker:</p>
+
+ <pre>var count = 0;
+onconnect = function(e) {
+ count += 1;
+ var port = e.ports[0];
+ port.postMessage('Hello World! You are connection #' + count);
+ port.onmessage = function(e) {
+ port.postMessage('pong');
+ }
+}
+</pre>
+
+ <p><a href=http://www.whatwg.org/demos/workers/shared/003/test.html>View this example online</a>.</p>
+
+
+ <h5 id=shared-state-using-a-shared-worker><span class=secno>10.1.2.5 </span>Shared state using a shared worker</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>In this example, multiple windows (viewers) can be opened that
+ are all viewing the same map. All the windows share the same map
+ information, with a single worker coordinating all the viewers. Each
+ viewer can move around independently, but if they set any data on
+ the map, all the viewers are updated.</p>
+
+ <p>The main page isn't interesting, it merely provides a way to open
+ the viewers:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Workers example: Multiviewer&lt;/title&gt;
+ &lt;script&gt;
+ function openViewer() {
+ window.open('viewer.html');
+ }
+ &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;p&gt;&lt;button type=button onclick="openViewer()"&gt;Open a new
+ viewer&lt;/button&gt;&lt;/p&gt;
+ &lt;p&gt;Each viewer opens in a new window. You can have as many viewers
+ as you like, they all view the same data.&lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>The viewer is more involved:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Workers example: Multiviewer viewer&lt;/title&gt;
+ &lt;script&gt;
+ var worker = new SharedWorker('worker.js', 'core');
+
+ // CONFIGURATION
+ function configure(event) {
+ if (event.data.substr(0, 4) != 'cfg ') return;
+ var name = event.data.substr(4).split(' ', 1);
+ // update display to mention our name is name
+ document.getElementsByTagName('h1')[0].textContent += ' ' + name;
+ // no longer need this listener
+ worker.port.removeEventListener('message', configure, false);
+ }
+ worker.port.addEventListener('message', configure, false);
+
+ // MAP
+ function paintMap(event) {
+ if (event.data.substr(0, 4) != 'map ') return;
+ var data = event.data.substr(4).split(',');
+ // display tiles data[0] .. data[8]
+ var canvas = document.getElementById('map');
+ var context = canvas.getContext('2d');
+ for (var y = 0; y &lt; 3; y += 1) {
+ for (var x = 0; x &lt; 3; x += 1) {
+ var tile = data[y * 3 + x];
+ if (tile == '0')
+ context.fillStyle = 'green';
+ else
+ context.fillStyle = 'maroon';
+ fillRect(x * 50, y * 50, 50, 50);
+ }
+ }
+ }
+ worker.port.addEventListener('message', paintMap, false);
+
+ // PUBLIC CHAT
+ function updatePublicChat(event) {
+ if (event.data.substr(0, 4) != 'txt ') return;
+ var name = event.data.substr(4).split(' ', 1);
+ var message = event.data.substr(4 + length(name) + 1);
+ // display "&lt;name&gt; message" in public chat
+ var dialog = document.getElementById('public');
+ var dt = document.createElement('dt');
+ dt.textContent = name;
+ dialog.appendChild(dt);
+ var dd = document.createElement('dd');
+ dd.textContent = message;
+ dialog.appendChild(dd);
+ }
+ worker.port.addEventListener('message', updatePublicChat, false);
+
+ // PRIVATE CHAT
+ function startPrivateChat(event) {
+ if (event.data.substr(0, 4) != 'msg ') return;
+ var name = event.data.substr(4).split(' ', 1);
+ var port = event.ports[0];
+ // display a private chat UI
+ var ul = document.getElementById('private');
+ var li = document.createElement('li');
+ var h3 = document.createElement('h3');
+ h3.textContent = 'Private chat with ' + name;
+ li.appendChild(h3);
+ var dialog = document.createElement('dialog');
+ var addMessage = function(name, message) {
+ var dt = document.createElement('dt');
+ dt.textContent = name;
+ dialog.appendChild(dt);
+ var dd = document.createElement('dd');
+ dd.textContent = message;
+ dialog.appendChild(dd);
+ };
+ port.onmessage = function (event) {
+ addMessage(name, event.data);
+ };
+ li.appendChild(dialog);
+ var form = document.createElement('form');
+ var p = document.createElement('p');
+ var input = document.createElement('input');
+ input.size = 50;
+ p.appendChild(input);
+ p.appendChild(document.createTextNode(' '));
+ var button = document.createElement('button');
+ button.textContent = 'Post';
+ p.appendChild(button);
+ form.onsubmit = function () {
+ port.postMessage(input.value);
+ addMessage('me', input.value);
+ input.value = '';
+ return false;
+ };
+ form.appendChild(p);
+ li.appendChild(form);
+ }
+ worker.port.addEventListener('message', startPrivateChat, false);
+
+ worker.port.start();
+ &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;h1&gt;Viewer&lt;/h1&gt;
+ &lt;h2&gt;Map&lt;/h2&gt;
+ &lt;p&gt;&lt;canvas id="map" height=150 width=150&gt;&lt;/canvas&gt;&lt;/p&gt;
+ &lt;p&gt;
+ &lt;button type=button onclick="worker.port.postMessage('mov left')"&gt;Left&lt;/button&gt;
+ &lt;button type=button onclick="worker.port.postMessage('mov up')"&gt;Up&lt;/button&gt;
+ &lt;button type=button onclick="worker.port.postMessage('mov down')"&gt;Down&lt;/button&gt;
+ &lt;button type=button onclick="worker.port.postMessage('mov right')"&gt;Right&lt;/button&gt;
+ &lt;button type=button onclick="worker.port.postMessage('set 0')"&gt;Set 0&lt;/button&gt;
+ &lt;button type=button onclick="worker.port.postMessage('set 1')"&gt;Set 1&lt;/button&gt;
+ &lt;/p&gt;
+ &lt;h2&gt;Public Chat&lt;/h2&gt;
+ &lt;dialog id="public"&gt;&lt;/dialog&gt;
+ &lt;form onsubmit="worker.port.postMessage('txt ' + message.value); message.value = ''; return false;"&gt;
+ &lt;p&gt;
+ &lt;input type="text" name="message" size="50"&gt;
+ &lt;button&gt;Post&lt;/button&gt;
+ &lt;/p&gt;
+ &lt;/form&gt;
+ &lt;h2&gt;Private Chat&lt;/h2&gt;
+ &lt;ul id="private"&gt;&lt;/ul&gt;
+ &lt;/body&gt;
+&lt;/html&gt;
+</pre>
+
+ <p>There are several key things worth noting about the way the
+ viewer is written.</p>
+
+ <p><strong>Multiple listeners</strong>. Instead of a single message
+ processing function, the code here attaches multiple event
+ listeners, each one performing a quick check to see if it is
+ relevant for the message. In this example it doesn't make much
+ difference, but if multiple authors wanted to collaborate using a
+ single port to communicate with a worker, it would allow for
+ independent code instead of changes having to all be made to a
+ single event handling function.</p>
+
+ <p>Registering event listeners in this way also allows you to
+ unregister specific listeners when you are done with them, as is
+ done with the <code title="">configure()</code> method in this
+ example.</p>
+
+ <p>Finally, the worker:</p>
+
+ <pre>
+var nextName = 0;
+function getNextName() {
+ // this could use more friendly names
+ // but for now just return a number
+ return nextName++;
+}
+
+var map = [
+ [0, 0, 0, 0, 0, 0, 0],
+ [1, 1, 0, 1, 0, 1, 1],
+ [0, 1, 0, 1, 0, 0, 0],
+ [0, 1, 0, 1, 0, 1, 1],
+ [0, 0, 0, 1, 0, 0, 0],
+ [1, 0, 0, 1, 1, 1, 1],
+ [1, 1, 0, 1, 1, 0, 1],
+];
+
+function wrapX(x) {
+ if (x &lt; 0) return wrapX(x + map[0].length);
+ if (x &gt;= map[0].length) return wrapX(x - map[0].length);
+ return x;
+}
+
+function wrapY(y) {
+ if (y &lt; 0) return wrapY(y + map.length);
+ if (y &gt;= map[0].length) return wrapY(y - map.length);
+ return y;
+}
+
+function sendMapData(callback) {
+ var data = '';
+ for (var y = viewer.y-1; y &lt;= viewer.y+1; y += 1) {
+ for (var x = viewer.x-1; x &lt;= viewer.x+1; x += 1) {
+ if (data != '')
+ data += ',';
+ data += map[y][x];
+ }
+ }
+ callback('map ' + data);
+}
+
+var viewers = {};
+onconnect = function (event) {
+ event.ports[0]._name = getNextName();
+ event.ports[0]._data = { port: event.port, x: 0, y: 0, };
+ viewers[event.ports[0]._name] = event.port._data;
+ event.ports[0].postMessage('cfg ' + name);
+ event.ports[0].onmessage = getMessage;
+ sendMapData(event.ports[0].postMessage);
+};
+
+function getMessage(event) {
+ switch (event.data.substr(0, 4)) {
+ case 'mov ':
+ var direction = event.data.substr(4);
+ var dx = 0;
+ var dy = 0;
+ switch (direction) {
+ case 'up': dy = -1; break;
+ case 'down': dy = 1; break;
+ case 'left': dx = -1; break;
+ case 'right': dx = 1; break;
+ }
+ event.target._data.x = wrapX(event.target._data.x + dx);
+ event.target._data.y = wrapY(event.target._data.y + dy);
+ sendMapData(event.target.postMessage);
+ break;
+ case 'set ':
+ var value = event.data.substr(4);
+ map[event.target._data.y][event.target._data.x] = value;
+ for (var viewer in viewers)
+ sendMapData(viewers[viewer].port.postMessage);
+ break;
+ case 'txt ':
+ var name = event.target._name;
+ var message = event.data.substr(4);
+ for (var viewer in viewers)
+ viewers[viewer].port.postMessage('txt ' + name + ' ' + message);
+ break;
+ case 'msg ':
+ var party1 = event._data;
+ var party2 = viewers[event.data.substr(4).split(' ', 1)];
+ if (party2) {
+ var channel = new MessageChannel();
+ party1.port.postMessage('msg ' + party2.name, [channel.port1]);
+ party2.port.postMessage('msg ' + party1.name, [channel.port2]);
+ }
+ break;
+ }
+}</pre>
+
+ <p><strong>Connecting to multiple pages</strong>. The script uses
+ the <code title=handler-SharedWorkerGlobalScope-onconnect><a href=#handler-sharedworkerglobalscope-onconnect>onconnect</a></code>
+ event listener to listen for multiple connections.</p>
+
+ <p><strong>Direct channels</strong>. When the worker receives a
+ "msg" message from one viewer naming another viewer, it sets up a
+ direct connection between the two, so that the two viewers can
+ communicate directly without the worker having to proxy all the
+ messages.</p>
+
+ <p><a href=http://www.whatwg.org/demos/workers/multiviewer/page.html>View this example online</a>.</p>
+
+
+ <h5 id=delegation><span class=secno>10.1.2.6 </span>Delegation</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>With multicore CPUs becoming prevalent, one way to obtain better
+ performance is to split computationally expensive tasks amongst
+ multiple workers. In this example, a computationally expensive task
+ that is to be performed for every number from 1 to 10,000,000 is
+ farmed out to ten subworkers.</p>
+
+ <p>The main page is as follows, it just reports the result:</p>
+
+ <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Worker example: Multicore computation&lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;p&gt;Result: &lt;output id="result"&gt;&lt;/output&gt;&lt;/p&gt;
+ &lt;script&gt;
+ var worker = new Worker('worker.js');
+ worker.onmessage = function (event) {
+ document.getElementById('result').textContent = event.data;
+ };
+ &lt;/script&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+ <p>The worker itself is as follows:</p>
+
+ <pre>// settings
+var num_workers = 10;
+var items_per_worker = 1000000;
+
+// start the workers
+var result = 0;
+var pending_workers = num_workers;
+for (var i = 0; i &lt; num_workers; i += 1) {
+ var worker = new Worker('core.js');
+ worker.postMessage(i * items_per_worker);
+ worker.postMessage((i+1) * items_per_worker);
+ worker.onmessage = storeResult;
+}
+
+// handle the results
+function storeResult(event) {
+ result += 1*event.data;
+ pending_workers -= 1;
+ if (pending_workers &lt;= 0)
+ postMessage(result); // finished!
+}</pre>
+
+ <p>It consists of a loop to start the subworkers, and then a handler
+ that waits for all the subworkers to respond.</p>
+
+ <p>The subworkers are implemented as follows:</p>
+
+ <pre>var start;
+onmessage = getStart;
+function getStart(event) {
+ start = 1*event.data;
+ onmessage = getEnd;
+}
+
+var end;
+function getEnd(event) {
+ end = 1*event.data;
+ onmessage = null;
+ work();
+}
+
+function work() {
+ var result = 0;
+ for (var i = start; i &lt; end; i += 1) {
+ // perform some complex calculation here
+ result += 1;
+ }
+ postMessage(result);
+ close();
+}</pre>
+
+ <p>They receive two numbers in two events, perform the computation
+ for the range of numbers thus specified, and then report the result
+ back to the parent.</p>
+
+ <p><a href=http://www.whatwg.org/demos/workers/multicore/page.html>View this example online</a>.</p>
+
+<!--(this uses startConversation, which is currently commented out)
+
+ <h5>Providing libraries</h5>
+
+ <!- -END dev-html- -><p><i>This section is non-normative.</i></p><!- -START dev-html- ->
+
+ <p>Suppose that a cryptography library is made available that
+ provides three tasks:</p>
+
+ <dl>
+
+ <dt>Generate a public/private key pair</dt>
+
+ <dd>Takes a port, on which it will send two messages, first the
+ public key and then the private key.</dd>
+
+ <dt>Given a plaintext and a public key, return the corresponding cyphertext</dt>
+
+ <dd>Takes a port, to which any number of messages can be sent, the
+ first giving the public key, and the remainder giving the
+ plaintext, each of which is encrypted and then sent on that same
+ channel as the cyphertext. The user can close the port when it is
+ done encrypting content.</dd>
+
+ <dt>Given a cyphertext and a private key, return the corresponding plaintext</dt>
+
+ <dd>Takes a port, to which any number of messages can be sent, the
+ first giving the private key, and the remainder giving the
+ cyphertext, each of which is decrypted and then sent on that same
+ channel as the plaintext. The user can close the port when it is
+ done decrypting content.</dd>
+
+ </dl>
+
+ <p>The library itself is as follows:</p>
+
+ <pre>function handleMessage(e) {
+ if (e.data == "genkeys")
+ genkeys(e.ports[0]);
+ else if (e.data == "encrypt")
+ encrypt(e.ports[0]);
+ else if (e.data == "decrypt")
+ decrypt(e.ports[0]);
+}
+
+function genkeys(p) {
+ var keys = _generateKeyPair();
+ p.postMessage(keys[0]);
+ p.postMessage(keys[1]);
+}
+
+function encrypt(p) {
+ var key, state = 0;
+ p.onmessage = function (e) {
+ if (state == 0) {
+ key = e.data;
+ state = 1;
+ } else {
+ p.postMessage(_encrypt(key, e.data));
+ }
+ };
+}
+
+function decrypt(p) {
+ var key, state = 0;
+ p.onmessage = function (e) {
+ if (state == 0) {
+ key = e.data;
+ state = 1;
+ } else {
+ p.postMessage(_decrypt(key, e.data));
+ }
+ };
+}
+
+// support being used as a shared worker as well as a dedicated worker
+if ('onmessage' in this) // dedicated worker
+ onmessage = handleMessage;
+else // shared worker
+ onconnect = function (e) { e.port.onmessage = handleMessage; }
+
+
+// the "crypto" functions:
+
+function _generateKeyPair() {
+ return [Math.random(), Math.random()];
+}
+
+function _encrypt(k, s) {
+ return 'encrypted-' + k + ' ' + s;
+}
+
+function _decrypt(k, s) {
+ return s.substr(s.indexOf(' ')+1);
+}</pre>
+
+ <p>Note that the crypto functions here are just stubs and don't do
+ real cryptography.</p>
+
+ <p>This library could be used as follows:</p>
+
+ <pre>&lt;!DOCTYPE HTML>
+&lt;html>
+ &lt;head>
+ &lt;title>Worker example: Crypto library&lt;/title>
+ &lt;script>
+ var cryptoLib = new Worker('libcrypto-v1.js'); // or could use 'libcrypto-v2.js'
+ function getKeys() {
+ var state = 0;
+ cryptoLib.startConversation("genkeys").onmessage = function (e) {
+ if (state == 0)
+ document.getElementById('public').value = e.data;
+ else if (state == 1)
+ document.getElementById('private').value = e.data;
+ state += 1;
+ };
+ }
+ function enc() {
+ var port = cryptoLib.startConversation("encrypt");
+ port.postMessage(document.getElementById('public').value);
+ port.postMessage(document.getElementById('input').value);
+ port.onmessage = function (e) {
+ document.getElementById('input').value = e.data;
+ port.close();
+ };
+ }
+ function dec() {
+ var port = cryptoLib.startConversation("decrypt");
+ port.postMessage(document.getElementById('private').value);
+ port.postMessage(document.getElementById('input').value);
+ port.onmessage = function (e) {
+ document.getElementById('input').value = e.data;
+ port.close();
+ };
+ }
+ &lt;/script>
+ &lt;style>
+ textarea { display: block; }
+ &lt;/style>
+ &lt;/head>
+ &lt;body onload="getKeys()">
+ &lt;fieldset>
+ &lt;legend>Keys&lt;/legend>
+ &lt;p>&lt;label>Public Key: &lt;textarea id="public">&lt;/textarea>&lt;/label>&lt;/p>
+ &lt;p>&lt;label>Private Key: &lt;textarea id="private">&lt;/textarea>&lt;/label>&lt;/p>
+ &lt;/fieldset>
+ &lt;p>&lt;label>Input: &lt;textarea id="input">&lt;/textarea>&lt;/label>&lt;/p>
+ &lt;p>&lt;button onclick="enc()">Encrypt&lt;/button> &lt;button onclick="dec()">Decrypt&lt;/button>&lt;/p>
+ &lt;/body>
+&lt;/html></pre>
+
+ <p>A later version of the API, though, might want to offload all the
+ crypto work onto subworkers. This could be done as follows:</p>
+
+ <pre>function handleMessage(e) {
+ if (e.data == "genkeys")
+ genkeys(e.ports[0]);
+ else if (e.data == "encrypt")
+ encrypt(e.ports[0]);
+ else if (e.data == "decrypt")
+ decrypt(e.ports[0]);
+}
+
+function genkeys(p) {
+ var generator = new Worker('libcrypto-v2-generator.js');
+ generator.postMessage('', [p]);
+}
+
+function encrypt(p) {
+ p.onmessage = function (e) {
+ var key = e.data;
+ var encryptor = new Worker('libcrypto-v2-encryptor.js');
+ encryptor.postMessage(key, [p]);
+ };
+}
+
+function encrypt(p) {
+ p.onmessage = function (e) {
+ var key = e.data;
+ var decryptor = new Worker('libcrypto-v2-decryptor.js');
+ decryptor.postMessage(key, [p]);
+ };
+}
+
+// support being used as a shared worker as well as a dedicated worker
+if ('onmessage' in this) // dedicated worker
+ onmessage = handleMessage;
+else // shared worker
+ onconnect = function (e) { e.ports[0].onmessage = handleMessage };
+</pre>
+
+ <p>The little subworkers would then be as follows.</p>
+
+ <p>For generating key pairs:</p>
+
+ <pre>onmessage = function (e) {
+ var k = _generateKeyPair();
+ e.ports[0].postMessage(k[0]);
+ e.ports[0].postMessage(k[1]);
+ close();
+}
+
+function _generateKeyPair() {
+ return [Math.random(), Math.random()];
+}</pre>
+
+ <p>For encrypting:</p>
+
+ <pre>onmessage = function (e) {
+ var key = e.data;
+ e.ports[0].onmessage = function (e) {
+ var s = e.data;
+ postMessage(_encrypt(key, s));
+ }
+}
+
+function _encrypt(k, s) {
+ return 'encrypted-' + k + ' ' + s;
+}</pre>
+
+ <p>For decrypting:</p>
+
+ <pre>onmessage = function (e) {
+ var key = e.data;
+ e.ports[0].onmessage = function (e) {
+ var s = e.data;
+ postMessage(_decrypt(key, s));
+ }
+}
+
+function _decrypt(k, s) {
+ return s.substr(s.indexOf(' ')+1);
+}</pre>
+
+ <p>Notice how the users of the API don't have to even know that this
+ is happening &mdash; the API hasn't changed; the library can
+ delegate to subworkers without changing its API, even though it is
+ accepting data using message channels.</p>
+
+ <p><a href="http://www.whatwg.org/demos/workers/crypto/page.html">View this example online</a>.</p>
+
+(end startConversation block) (beware nested comments)-->
+
+
+ <h4 id=tutorials><span class=secno>10.1.3 </span>Tutorials</h4>
+
+ <h5 id=creating-a-dedicated-worker><span class=secno>10.1.3.1 </span>Creating a dedicated worker</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Creating a worker requires a URL to a JavaScript file. The <code title=dom-Worker><a href=#dom-worker>Worker()</a></code> constructor is invoked with the
+ URL to that file as its only argument; a worker is then created and
+ returned:</p>
+
+ <pre>var worker = new Worker('helper.js');</pre>
+
+
+ <h5 id=communicating-with-a-dedicated-worker><span class=secno>10.1.3.2 </span>Communicating with a dedicated worker</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Dedicated workers use <code><a href=#messageport>MessagePort</a></code> objects behind the
+ scenes, and thus support all the same features, such as sending
+ structured data, transferring binary data, and transferring other
+ ports.</p>
+
+ <p>To receive messages from a dedicated worker, use the <code title=handler-worker-onmessage><a href=#handler-worker-onmessage>onmessage</a></code> <a href=#event-handler-idl-attributes title="event
+ handler IDL attributes">event handler IDL attribute</a> on the
+ <code><a href=#worker>Worker</a></code> object:</p>
+
+ <pre>worker.onmessage = function (event) { ... };</pre>
+
+ <p>You can also use the <code title=dom-EventTarget-addEventListener>addEventListener()</code> method.</p>
+
+ <p class=note>The implicit <code><a href=#messageport>MessagePort</a></code> used by
+ dedicated workers has its <a href=#port-message-queue>port message queue</a> implicitly
+ enabled when it is created, so there is no equivanet to the
+ <code><a href=#messageport>MessagePort</a></code> interface's <code title=dom-MessagePort-start><a href=#dom-messageport-start>start()</a></code> method on the
+ <code><a href=#worker>Worker</a></code> interface.</p>
+
+ <p>To <em>send</em> data to a worker, use the <code title=dom-Worker-postMessage><a href=#dom-worker-postmessage>postMessage()</a></code> method.
+ Structured data can be sent over this communication channel. To send
+ <code><a href=#arraybuffer>ArrayBuffer</a></code> objects efficiently (by transferring them
+ rather than cloning them), list them in an array in the second
+ argument.</p>
+
+ <pre>worker.postMessage({
+ operation: 'find-edges',
+ input: buffer, // an ArrayBuffer object
+ threshold: 0.6,
+}, [buffer]);</pre>
+
+ <p>To receive a message inside the worker, the <code title=handler-DedicatedWorkerGlobalScope-onmessage><a href=#handler-dedicatedworkerglobalscope-onmessage>onmessage</a></code>
+ <a href=#event-handler-idl-attributes title="event handler IDL attributes">event handler IDL
+ attribute</a> is used.</p>
+
+ <pre>onmessage = function (event) { ... };</pre>
+
+ <p>You can again also use the <code title=dom-EventTarget-addEventListener>addEventListener()</code>
+ method.</p>
+
+ <p>In either case, the data is provided in the event object's <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code> attribute.</p>
+
+ <p>To send messages back, you again use <code title=dom-DedicatedWorkerGlobalScope-postMessage><a href=#dom-dedicatedworkerglobalscope-postmessage>postMessage()</a></code>.
+ It supports the structured data in the same manner.</p>
+
+ <pre>postMessage(event.data.input, [event.data.input]); // transfer the buffer back</pre>
+
+
+ <h5 id=shared-workers><span class=secno>10.1.3.3 </span>Shared workers</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Shared workers are identified in one of two ways: either by the
+ URL of the script used to create it, or by explicit name. When
+ created by name, the URL used by the first page to create the worker
+ with that name is the URL of the script that will be used for that
+ worker. This allows multiple applications on a domain to all use a
+ single shared worker to provide a common service, without the
+ applications having to keep track of a common URL for the script
+ used to provide the service.</p>
+
+ <p class=note>In either case, shared workers are scoped by
+ <a href=#origin>origin</a>. Two different sites using the same names will
+ not collide.</p>
+
+ <p>Creating shared workers is done using the <code title=dom-SharedWorker><a href=#dom-sharedworker>SharedWorker()</a></code> constructor. This
+ constructor takes the URL to the script to use for its first
+ argument, and the name of the worker, if any, as the second
+ argument.</p>
+
+ <pre>var worker = new SharedWorker('service.js');</pre>
+
+ <p>Communicating with shared workers is done with explicit
+ <code><a href=#messageport>MessagePort</a></code> objects. The object returned by the <code title=dom-SharedWorker><a href=#dom-sharedworker>SharedWorker()</a></code> constructor holds a
+ reference to the port on its <code title=dom-SharedWorker-port><a href=#dom-sharedworker-port>port</a></code> attribute.</p>
+
+ <pre>worker.port.onmessage = function (event) { ... };
+worker.port.postMessage('some message');
+worker.port.postMessage({ foo: 'structured'; bar: ['data', 'also', 'possible']});</pre>
+
+ <p>Inside the shared worker, new clients of the worker are announced
+ using the <code title=event-connect>connect</code> event. The port
+ for the new client is given by the event object's <code title=dom-messageevent-ports><a href=#dom-messageevent-ports>ports</a></code> array as its first (and
+ only) value.</p>
+
+ <pre>onconnect = function (event) {
+ var newPort = event.ports[0];
+ // set up a listener
+ newPort.onmessage = function (event) { ... };
+ // send a message back to the port
+ newPort.postMessage('ready!'); // can also send structured data, of course
+};</pre>
+
+
+
+
+ <h3 id=infrastructure-0><span class=secno>10.2 </span>Infrastructure</h3>
+
+ <p>There are two kinds of workers; dedicated workers, and shared
+ workers. Dedicated workers, once created, and are linked to their
+ creator; but message ports can be used to communicate from a
+ dedicated worker to multiple other browsing contexts or
+ workers. Shared workers, on the other hand, are named, and once
+ created any script running in the same <a href=#origin>origin</a> can
+ obtain a reference to that worker and communicate with it.</p>
+
+
+
+ <h4 id=the-global-scope><span class=secno>10.2.1 </span>The global scope</h4>
+
+ <p>The global scope is the "inside" of a worker.</p>
+
+ <h5 id=the-workerglobalscope-abstract-interface><span class=secno>10.2.1.1 </span>The <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> abstract interface</h5>
+
+ <pre class=idl>interface <dfn id=workerglobalscope>WorkerGlobalScope</dfn> : <a href=#eventtarget>EventTarget</a> {
+ readonly attribute <a href=#workerglobalscope>WorkerGlobalScope</a> <a href=#dom-workerglobalscope-self title=dom-WorkerGlobalScope-self>self</a>;
+ readonly attribute <a href=#workerlocation>WorkerLocation</a> <a href=#dom-workerglobalscope-location title=dom-WorkerGlobalScope-location>location</a>;
+
+ void <a href=#dom-workerglobalscope-close title=dom-WorkerGlobalScope-close>close</a>();
+<!-- v2-onclose [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-WorkerGlobalScope-onclose">onclose</span>;
+--> [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-onerror title=handler-WorkerGlobalScope-onerror>onerror</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-onoffline title=handler-WorkerGlobalScope-onoffline>onoffline</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-workerglobalscope-ononline title=handler-WorkerGlobalScope-ononline>ononline</a>;
+};
+<a href=#workerglobalscope>WorkerGlobalScope</a> implements <a href=#workerutils>WorkerUtils</a>;</pre>
+
+ <p>The <dfn id=dom-workerglobalscope-self title=dom-WorkerGlobalScope-self><code>self</code></dfn> attribute
+ must return the <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object itself.</p>
+
+ <p>The <dfn id=dom-workerglobalscope-location title=dom-WorkerGlobalScope-location><code>location</code></dfn>
+ attribute must return the <code><a href=#workerlocation>WorkerLocation</a></code> object created
+ for the <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object when the worker was
+ created. It represents the <a href=#absolute-url>absolute URL</a> of the script
+ that was used to initialize the worker, after any redirects.</p>
+
+ <hr><p>When a script invokes the <dfn id=dom-workerglobalscope-close title=dom-WorkerGlobalScope-close><code>close()</code></dfn>
+ method on a <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object, the user agent
+ must run the following steps (atomically):</p>
+
+ <ol><li><p>Discard any <a href=#concept-task title=concept-task>tasks</a> that
+ have been added to the <a href=#event-loop>event loop</a>'s <a href=#task-queue title="task
+ queue">task queues</a>.</p>
+
+<!-- v2-onclose
+ <li><p><span>Queue a task</span> to <span>fire a simple
+ event</span> named <code title="event-close">close</code> at the
+ <code>WorkerGlobalScope</code> object.</p></li>
+-->
+
+ <li><p>Set the worker's <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object's
+ <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag to
+ true. (This prevents any further tasks from being queued.)</li>
+
+ </ol><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ objects implementing the <code><a href=#workerglobalscope>WorkerGlobalScope</a></code>
+ interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><!-- v2-onclose <tr><td><dfn title="handler-WorkerGlobalScope-onclose"><code>onclose</code></dfn> <td> <code title="event-close">close</code> --><tr><td><dfn id=handler-workerglobalscope-onerror title=handler-WorkerGlobalScope-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
+ <tr><td><dfn id=handler-workerglobalscope-onoffline title=handler-WorkerGlobalScope-onoffline><code>onoffline</code></dfn> <td> <code title=event-offline><a href=#event-offline>offline</a></code> <!-- new -->
+ <tr><td><dfn id=handler-workerglobalscope-ononline title=handler-WorkerGlobalScope-ononline><code>ononline</code></dfn> <td> <code title=event-online><a href=#event-online>online</a></code> <!-- new -->
+ </table><hr><p>The <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> interface must not exist if
+ the interface's <span>relevant namespace object</span> is a
+ <code><a href=#window>Window</a></code> object. <a href=#refsWEBIDL>[WEBIDL]</a></p>
+
+
+
+ <h5 id=dedicated-workers-and-the-dedicatedworkerglobalscope-interface><span class=secno>10.2.1.2 </span>Dedicated workers and the <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> interface</h5>
+
+ <pre class=idl>[Supplemental, NoInterfaceObject]
+interface <dfn id=dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</dfn> : <a href=#workerglobalscope>WorkerGlobalScope</a> {
+ void <a href=#dom-dedicatedworkerglobalscope-postmessage title=dom-DedicatedWorkerGlobalScope-postMessage>postMessage</a>(any message, optional sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer);<!--
+ <span>MessagePort</span> <span title="dom-DedicatedWorkerGlobalScope-startConversation">startConversation</span>(any message);-->
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-dedicatedworkerglobalscope-onmessage title=handler-DedicatedWorkerGlobalScope-onmessage>onmessage</a>;
+};</pre>
+
+ <p><code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> objects act as if they
+ had an implicit <code><a href=#messageport>MessagePort</a></code> associated with them. This
+ port is part of a channel that is set up when the worker is created,
+ but it is not exposed. This object must never be garbage collected
+ before the <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> object.</p>
+
+ <p>All messages received by that port must immediately be retargeted
+ at the <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> object.</p>
+
+ <p>The <dfn id=dom-dedicatedworkerglobalscope-postmessage title=dom-DedicatedWorkerGlobalScope-postMessage><code>postMessage()</code></dfn><!--
+ and <dfn
+ title="dom-DedicatedWorkerGlobalScope-startConversation"><code>startConversation()</code></dfn>-->
+ method<!--s (startConversation)--> on
+ <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> objects must act as if, when
+ invoked, it<!--/they (startConversation)--> immediately invoked the
+ method of the same name on the port, with the same arguments, and
+ returned the same return value.</p>
+
+ <p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ objects implementing the <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code>
+ interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-dedicatedworkerglobalscope-onmessage title=handler-DedicatedWorkerGlobalScope-onmessage><code>onmessage</code></dfn> <td> <code title=event-message><a href=#event-message>message</a></code>
+ </table><p>For the purposes of the <a href=#application-cache>application cache</a> networking
+ model, a dedicated worker is an extension of the <a href=#cache-host>cache
+ host</a> from which it was created.</p>
+
+
+
+ <h5 id=shared-workers-and-the-sharedworkerglobalscope-interface><span class=secno>10.2.1.3 </span>Shared workers and the <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> interface</h5>
+
+ <pre class=idl>[Supplemental, NoInterfaceObject]
+interface <dfn id=sharedworkerglobalscope>SharedWorkerGlobalScope</dfn> : <a href=#workerglobalscope>WorkerGlobalScope</a> {
+ readonly attribute DOMString <a href=#dom-sharedworkerglobalscope-name title=dom-SharedWorkerGlobalScope-name>name</a>;
+ readonly attribute <a href=#applicationcache>ApplicationCache</a> <a href=#dom-sharedworkerglobalscope-applicationcache title=dom-SharedWorkerGlobalScope-applicationCache>applicationCache</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-sharedworkerglobalscope-onconnect title=handler-SharedWorkerGlobalScope-onconnect>onconnect</a>;
+};</pre>
+
+ <p>Shared workers receive message ports through <code title=event-WorkerGlobalScope-connect>connect</code> events on
+ their global object for each connection.</p>
+
+ <p>The <dfn id=dom-sharedworkerglobalscope-name title=dom-SharedWorkerGlobalScope-name><code>name</code></dfn>
+ attribute must return the value it was assigned when the
+ <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object was created by the
+ "<a href=#run-a-worker>run a worker</a>" algorithm. Its value represents the name
+ that can be used to obtain a reference to the worker using the
+ <code><a href=#sharedworker>SharedWorker</a></code> constructor.</p>
+
+ <p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ objects implementing the <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code>
+ interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-sharedworkerglobalscope-onconnect title=handler-SharedWorkerGlobalScope-onconnect><code>onconnect</code></dfn> <td> <code title=event-connect>connect</code>
+ </table><p>For the purposes of the <a href=#application-cache>application cache</a> networking
+ model, a shared worker is its own <a href=#cache-host>cache host</a>. The
+ <a href=#run-a-worker>run a worker</a> algorithm takes care of associating the
+ worker with an <a href=#application-cache>application cache</a>.</p>
+
+ <p class=note>The <code title=dom-SharedWorkerGlobalScope-applicationCache><a href=#dom-sharedworkerglobalscope-applicationcache>applicationCache</a></code>
+ attribute returns the <code><a href=#applicationcache>ApplicationCache</a></code> object for the
+ worker.</p><!-- normative conf criteria is in the appcache section
+ -->
+
+
+ <h4 id=origins-of-workers><span class=secno>10.2.2 </span>Origins of workers</h4>
+
+ <p>Both the <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
+ origin</a> of scripts running in workers are the
+ <a href=#origin>origin</a> of the <a href=#absolute-url>absolute URL</a> given in that
+ the worker's <code title=dom-WorkerGlobalScope-location><a href=#dom-workerglobalscope-location>location</a></code> attribute
+ represents.</p>
+
+
+
+ <h4 id=the-event-loop><span class=secno>10.2.3 </span>The event loop</h4>
+
+ <p>Each <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object has an <a href=#event-loop>event
+ loop</a> distinct from those defined for <a href=#unit-of-related-similar-origin-browsing-contexts title="unit of
+ related similar-origin browsing contexts">units of related
+ similar-origin browsing contexts</a>. This <a href=#event-loop>event
+ loop</a> has no associated <a href=#browsing-context>browsing context</a>, and its
+ <a href=#task-queue title="task queue">task queues</a> only have events,
+ callbacks, and networking activity as <a href=#concept-task title=concept-task>tasks</a>. The processing model of these
+ <a href=#event-loop title="event loop">event loops</a> is defined below in the
+ <a href=#run-a-worker>run a worker</a> algorithm.</p>
+
+ <p>Each <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object also has a <dfn id=dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</dfn> flag, which must
+ initially be false, but which can get set to true by the algorithms
+ in the processing model section below.</p>
+
+ <p>Once the <code><a href=#workerglobalscope>WorkerGlobalScope</a></code>'s <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag is set to
+ true, the <a href=#event-loop>event loop</a>'s <a href=#task-queue title="task queue">task
+ queues</a> must discard any further <a href=#concept-task title=concept-task>tasks</a> that would be added to them (tasks
+ already on the queue are unaffected except where otherwise
+ specified). Effectively, once the <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag is true,
+ timers stop firing, notifications for all pending asynchronous
+ operations are dropped, etc.</p>
+
+
+
+ <h4 id="the-worker's-lifetime"><span class=secno>10.2.4 </span>The worker's lifetime</h4>
+
+ <p>Workers communicate with other workers and with <a href=#browsing-context title="browsing context">browsing contexts</a> through <a href=#channel-messaging title="channel messaging">message channels</a> and their
+ <code><a href=#messageport>MessagePort</a></code> objects.</p>
+
+ <p>Each <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> <var title="">worker global
+ scope</var> has a list of <dfn id="the-worker's-ports">the worker's ports</dfn>, which
+ consists of all the <code><a href=#messageport>MessagePort</a></code> objects that are
+ entangled with another port and that have one (but only one) port
+ owned by <var title="">worker global scope</var>. This list includes
+ <!--all the <code>MessagePort</code> objects that are in events
+ pending in the <span>event loop</span>, as well as (commented out
+ because in practice it makes no difference either way as far as I
+ can tell, and it would be hard to strictly implement since these
+ ports might not yet be across the thread boundary)--> the implicit
+ <code><a href=#messageport>MessagePort</a></code> in the case of <a href=#dedicatedworkerglobalscope title=DedicatedWorkerGlobalScope>dedicated workers</a>.</p>
+
+ <p>Each <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> also has a list of <dfn id="the-worker's-workers">the
+ worker's workers</dfn>. Initially this list is empty; it is
+ populated when the worker creates or obtains further workers.</p>
+
+ <p>Finally, each <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> also has a list of
+ <dfn id="the-worker's-documents">the worker's <code>Document</code>s</dfn>. Initially this list
+ is empty; it is populated when the worker is created.</p>
+
+ <p>Whenever a <code><a href=#document>Document</a></code> <var title="">d</var> is <dfn id="add-a-document-to-the-worker's-documents" title="add a document to the worker's documents">added to the
+ worker's <code>Document</code>s</dfn>, the user agent must, for each
+ worker in the list of <a href="#the-worker's-workers">the worker's workers</a> whose list
+ of <a href="#the-worker's-documents">the worker's <code>Document</code>s</a> does not contain
+ <var title="">d</var>, <a href="#add-a-document-to-the-worker's-documents" title="add a document to the worker's
+ documents">add <var title="">d</var> to <var title="">q</var>'s
+ <code>WorkerGlobalScope</code> owner's list of <span>the worker's
+ <code>Document</code>s</span></a>.</p> <!-- suggestions welcome
+ on making this sentence into understandable English -->
+
+ <p>Whenever a <code><a href=#document>Document</a></code> object is <a href=#discard-a-document title="discard a
+ Document">discarded</a>, it must be removed from the list of
+ <a href="#the-worker's-documents">the worker's <code>Document</code>s</a> of each worker
+ whose list contains that <code><a href=#document>Document</a></code>.</p>
+
+ <p>Given a <a href="#script's-global-object">script's global object</a> <var title="">o</var>
+ when creating or obtaining a worker, the <dfn id=list-of-relevant-document-objects-to-add>list of relevant
+ <code>Document</code> objects to add</dfn> depends on the type of
+ <var title="">o</var>. If <var title="">o</var> is a
+ <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object (i.e. if we are creating a
+ nested worker), then the relevant <code><a href=#document>Document</a></code>s are the
+ <code><a href=#document>Document</a></code>s that are in <var title="">o</var>'s own list
+ of <a href="#the-worker's-documents">the worker's <code>Document</code>s</a>. Otherwise, <var title="">o</var> is a <code><a href=#window>Window</a></code> object, and the relevant
+ <code><a href=#document>Document</a></code> is just the <code><a href=#document>Document</a></code> that is the
+ <a href=#active-document>active document</a> of the <code><a href=#window>Window</a></code> object <var title="">o</var>.</p>
+
+ <hr><p>A worker is said to be a <dfn id=permissible-worker>permissible worker</dfn> if its
+ list of <a href="#the-worker's-documents">the worker's <code>Document</code>s</a> is not
+ empty.</p>
+
+ <p>A worker is said to be a <dfn id=protected-worker>protected worker</dfn> if it is a
+ <a href=#permissible-worker>permissible worker</a> and either it has outstanding
+ timers, database transactions, or network connections, or its list
+ of <a href="#the-worker's-ports">the worker's ports</a> is not empty, or its
+ <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> is actually a
+ <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object (i.e. the worker is a
+ shared worker).</p>
+
+ <p>A worker is said to be an <dfn id=active-needed-worker>active needed worker</dfn> if any
+ of the <code><a href=#document>Document</a></code> objects in <a href="#the-worker's-documents">the worker's
+ <code>Document</code>s</a> are <a href=#fully-active>fully active</a>.</p>
+
+ <p>A worker is said to be a <dfn id=suspendable-worker>suspendable worker</dfn> if it is
+ not an <a href=#active-needed-worker>active needed worker</a> but it is a
+ <a href=#permissible-worker>permissible worker</a>.</p>
+
+
+ <h4 id=processing-model-4><span class=secno>10.2.5 </span>Processing model</h4>
+
+ <p>When a user agent is to <dfn id=run-a-worker>run a worker</dfn> for a script with
+ <a href=#url>URL</a> <var title="">url</var>, a <a href=#browsing-context>browsing
+ context</a> <var title="">owner browsing context</var>, a
+ <code><a href=#document>Document</a></code> <var title="">owner document</var>, an
+ <a href=#origin>origin</a> <var title="">owner origin</var>, and with
+ global scope <var title="">worker global scope</var>, it must run
+ the following steps:</p>
+
+ <ol><li>
+
+ <p>Create a separate parallel execution environment (i.e. a
+ separate thread or process or equivalent construct), and run the
+ rest of these steps asynchronously in that context.</p>
+
+ </li>
+
+ <li><p>If <var title="">worker global scope</var> is actually a
+ <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object (i.e. the worker is a
+ shared worker), and there are any <a href=#relevant-application-cache title="relevant application
+ cache">relevant application caches</a> that are identified by a
+ manifest URL with the <a href=#same-origin>same origin</a> as <var title="">url</var> and that have <var title="">url</var> as one of
+ their entries, <em>not</em> excluding entries marked as <a href=#concept-appcache-foreign title=concept-appcache-foreign>foreign</a>, then associate the
+ <var title="">worker global scope</var> with the <a href=#concept-appcache-selection title=concept-appcache-selection>most appropriate application
+ cache</a> of those that match.</li>
+
+ <li>
+
+ <p>Attempt to <a href=#fetch>fetch</a> the resource identified by <var title="">url</var>, from the <var title="">owner origin</var>,
+ with the <i>synchronous flag</i> set and the <i>force same-origin
+ flag</i> set.</p> <!-- not http-origin privacy sensitive (looking
+ forward to CORS) -->
+
+ <p>If the attempt fails, then for each <code><a href=#worker>Worker</a></code> or
+ <code><a href=#sharedworker>SharedWorker</a></code> object associated with <var title="">worker global scope</var>, <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at that object. Abort these
+ steps.</p>
+
+ <p>If the attempt succeeds, then let <var title="">source</var> be
+ the script resource <a href=#decoded-as-utf-8,-with-error-handling>decoded as UTF-8, with error
+ handling</a>.
+ </p>
+
+ <p>Let <var title="">language</var> be JavaScript.</p>
+
+ <p class=note>As with <code><a href=#the-script-element>script</a></code> elements, the MIME
+ type of the script is ignored. Unlike with <code><a href=#the-script-element>script</a></code>
+ elements, there is no way to override the type. It's always
+ assumed to be JavaScript.</p>
+
+ </li>
+
+ <li>
+
+ <p>A new <a href=#concept-script title=concept-script>script</a> is now
+ created, as follows.</p>
+
+ <p>Create a new <a href=#script-execution-environment>script execution environment</a>
+ set up as appropriate for the scripting language <var title="">language</var>.</p>
+
+ <p>Parse/compile/initialize <var title="">source</var> using that
+ <a href=#script-execution-environment>script execution environment</a>, as appropriate for <var title="">language</var>, and thus obtain a <a href=#list-of-code-entry-points>list of code
+ entry-points</a>; set the <i><a href=#initial-code-entry-point>initial code entry-point</a></i> to
+ the entry-point for any executable code to be immediately run.</p>
+
+ <p>Set the <a href="#script's-global-object">script's global object</a> to <var title="">worker global scope</var>.</p>
+
+ <p>Set the <a href="#script's-browsing-context">script's browsing context</a> to <var title="">owner browsing context</var>.</p>
+
+ <p>Set the <a href="#script's-document">script's document</a> to <var title="">owner
+ document</var>.</p>
+
+ <p>Set the <a href="#script's-url-character-encoding">script's URL character encoding</a> to
+ UTF-8. (This is just used for encoding non-ASCII characters in the
+ query component of URLs.)</p>
+
+ <p>Set the <a href="#script's-base-url">script's base URL</a> to <var title="">url</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p><strong>Closing orphan workers</strong>: Start monitoring the
+ worker such that no sooner than it stops being either a
+ <a href=#protected-worker>protected worker</a> or a <a href=#suspendable-worker>suspendable
+ worker</a>, and no later than it stops being a
+ <a href=#permissible-worker>permissible worker</a>, <var title="">worker global
+ scope</var>'s <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag is set
+ to true<!-- v2-onclose and <span title="queue a task">a task is
+ queued</span> to <span>fire a simple event</span> named <code
+ title="event-close">close</code> at <var title="">worker global
+ scope</var>-->.</p>
+
+ </li>
+
+ <li>
+
+ <p><strong>Suspending workers</strong>: Start monitoring the
+ worker, such that whenever <var title="">worker global
+ scope</var>'s <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag is false
+ and the worker is a <a href=#suspendable-worker>suspendable worker</a>, the user
+ agent suspends execution of script in that worker until such time
+ as either the <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag switches
+ to true or the worker stops being a <a href=#suspendable-worker>suspendable
+ worker</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#jump-to-a-code-entry-point title="jump to a code entry-point">Jump</a> to the
+ <a href=#concept-script title=concept-script>script</a>'s <i><a href=#initial-code-entry-point>initial code
+ entry-point</a></i>, and let that run until it either returns, fails
+ to catch an exception, or gets prematurely aborted by the
+ "<a href=#kill-a-worker>kill a worker</a>" or "<a href=#terminate-a-worker>terminate a worker</a>"
+ algorithms defined below.</p>
+
+<!-- v2-onclose
+ <p class="note">If the script gets aborted by the "<span>kill a
+ worker</span>" algorithm, then that same algorithm will cause
+ there to only be a single <span title="concept-task">task</span>
+ in the <span>event loop</span> at the next step, namely the task
+ for the <code title="message-close">close</code> event. The
+ "<span>terminate a worker</span>" algorithm removes all the
+ events.</p>
+-->
+
+ </li>
+
+ <li><p>If <var title="">worker global scope</var> is actually a
+ <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> object (i.e. the worker is
+ a dedicated worker), then enable the <a href=#port-message-queue>port message
+ queue</a> of the worker's implicit port.</li>
+
+ <li>
+
+ <p><i title="">Event loop</i>: Wait until either there is a <a href=#concept-task title=concept-task>task</a> in one of the <a href=#event-loop>event
+ loop</a>'s <a href=#task-queue title="task queue">task queues</a> or <var title="">worker global scope</var>'s <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag is set
+ to true.</p>
+
+ </li>
+
+ <li>
+
+ <p>Run the oldest task on one of the <a href=#event-loop>event loop</a>'s
+ <a href=#task-queue title="task queue">task queues</a>, if any. The user
+ agent may pick any <a href=#task-queue>task queue</a>.</p>
+
+ <p class=note>The handling of events or the execution of
+ callbacks might get prematurely aborted by the "<a href=#kill-a-worker>kill a
+ worker</a>" or "<a href=#terminate-a-worker>terminate a worker</a>" algorithms
+ defined below.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <a href=#storage-mutex>storage mutex</a> is now owned by the worker's
+ <a href=#event-loop>event loop</a>, release it so that it is once again
+ free.</p>
+
+ </li>
+
+ <li>
+
+ <p>Remove the task just run in the earlier step, if any, from its
+ <a href=#task-queue>task queue</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there are any more events in the <a href=#event-loop>event loop</a>'s
+ <a href=#task-queue title="task queue">task queues</a> or if <var title="">worker global scope</var>'s <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag is set
+ to false, then jump back to the step above labeled <i><a href=#event-loop>event
+ loop</a></i>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Empty the <var title="">worker global scope</var>'s <a href=#list-of-active-timeouts>list
+ of active timeouts</a> and its <a href=#list-of-active-intervals>list of active
+ intervals</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Disentangle all the ports in the list of <a href="#the-worker's-ports">the worker's
+ ports</a>.</p>
+
+ </li>
+
+<!-- v2-onclose
+ <li>
+
+ <p>For each <code>Worker</code> or <code>SharedWorker</code>
+ object associated with <var title="">worker global scope</var>,
+ <span>queue a task</span> to <span>fire a simple event</span>
+ named <code title="event-close">close</code> at that object.</p>
+
+ </li>
+-->
+ </ol><hr><p>When a user agent is to <dfn id=kill-a-worker>kill a worker</dfn> it must
+ run the following steps in parallel with the worker's main loop (the
+ "<a href=#run-a-worker>run a worker</a>" processing model defined above):</p>
+
+ <ol><!-- v2-onclose
+ <li><p>If the worker's <code>WorkerGlobalScope</code> object's
+ <span title="dom-WorkerGlobalScope-closing">closing</span> flag is
+ false, <span>queue a task</span> to <span>fire a simple
+ event</span> named <code title="event-close">close</code> at the
+ worker's <code>WorkerGlobalScope</code> object.</p></li>
+--><li><p>Set the worker's <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object's <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag to
+ true.</li>
+
+<!-- v2-onclose
+ <li><p>Wait a user-agent-defined amount of time. If the "<span>run
+ a worker</span>" processing model defined above immediately starts
+ running event listeners registered for the <code
+ title="event-close">close</code> event, this time should not be
+ zero &mdash; the idea is that the <code
+ title="event-close">close</code> event can be used to clean up
+ when shutting down unexpectedly.</p></li>
+-->
+
+ <li><p>If there are any <a href=#concept-task title=concept-task>tasks</a>
+ queued in the <a href=#event-loop>event loop</a>'s <a href=#task-queue title="task
+ queue">task queues</a><!-- v2-onclose other than the <code
+ title="event-close">close</code> event that this algorithm just
+ added-->, discard them without processing them.</li>
+
+<!-- v2-onclose
+ <li><p>If the <code title="event-close">close</code> event that
+ this algorithm just queued hasn't yet been dispatched, then abort
+ the script currently running in the worker.</p></li>
+-->
+
+ <li><p>Wait a user-agent-defined amount of time.</li>
+
+ <li><p>Abort the script currently running in the worker<!--
+ v2-onclose (if any script is running, then it will be a handler for
+ the <code title="event-close">close</code> event)-->.</li>
+
+ </ol><p>User agents may invoke the "<a href=#kill-a-worker>kill a worker</a>"
+ processing model on a worker at any time, e.g. in response to user
+ requests, in response to CPU quota management, or when a worker
+ stops being an <a href=#active-needed-worker>active needed worker</a> if the worker
+ continues executing even after its <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag was
+ set to true.</p>
+
+ <hr><p>When a user agent is to <dfn id=terminate-a-worker>terminate a worker</dfn> it must run
+ the following steps in parallel with the worker's main loop (the
+ "<a href=#run-a-worker>run a worker</a>" processing model defined above):</p>
+
+ <ol><li><p>Set the worker's <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object's
+ <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag to
+ true.</li>
+
+ <li><p>If there are any <a href=#concept-task title=concept-task>tasks</a>
+ queued in the <a href=#event-loop>event loop</a>'s <a href=#task-queue title="task
+ queue">task queues</a>, discard them without processing
+ them.</li>
+
+ <li><p>Abort the script currently running in the worker.</li>
+
+ <li><p>If the worker's <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object is
+ actually a <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> object (i.e. the
+ worker is a dedicated worker), then empty the <a href=#port-message-queue>port message
+ queue</a> of the port that the worker's implicit port is
+ entangled with.</li>
+
+ </ol><hr><p>The <a href=#task-source>task source</a> for the tasks mentioned above is the
+ <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
+
+
+ <h4 id=runtime-script-errors-0><span class=secno>10.2.6 </span>Runtime script errors</h4>
+
+ <p>Whenever an uncaught runtime script error occurs in one of the
+ worker's scripts, if the error did not occur while handling a
+ previous script error, the user agent must <a href=#report-the-error>report the
+ error</a> using the <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object's <code title=handler-WorkerGlobalScope-onerror><a href=#handler-workerglobalscope-onerror>onerror</a></code>
+ attribute.
+ </p>
+
+ <p>For shared workers, if the error is still <i title=concept-error-nothandled><a href=#concept-error-nothandled>not handled</a></i> afterwards, or if
+ the error occurred while handling a previous script error, the error
+ may be reported to the user.
+ </p>
+
+ <p>For dedicated workers, if the error is still <i title=concept-error-nothandled><a href=#concept-error-nothandled>not handled</a></i> afterwards, or if
+ the error occurred while handling a previous script error, the user
+ agent must <a href=#queue-a-task>queue a task</a> to fire an event that uses the
+ <code><a href=#errorevent>ErrorEvent</a></code> interface, with the name <code title=event-error>error</code>, that doesn't bubble and is
+ cancelable, with its <code title=dom-ErrorEvent-message><a href=#dom-errorevent-message>message</a></code>, <code title=dom-ErrorEvent-filename><a href=#dom-errorevent-filename>filename</a></code>, and <code title=dom-ErrorEvent-lineno><a href=#dom-errorevent-lineno>lineno</a></code> attributes initialized
+ appropriately, at the <code><a href=#worker>Worker</a></code> object associated with the
+ worker. If the event is not canceled, the user agent must act as if
+ the uncaught runtime script error had occurred in the global scope
+ that the <code><a href=#worker>Worker</a></code> object is in, thus repeating the entire
+ runtime script error reporting process one level up.</p>
+
+ <p>If the implicit port connecting the worker to its
+ <code><a href=#worker>Worker</a></code> object has been disentangled (i.e. if the parent
+ worker has been terminated), then the user agent must act as if the
+ <code><a href=#worker>Worker</a></code> object had no <code title=event-error>error</code> event handler and as if that
+ worker's <code title=handler-WorkerGlobalScope-onerror><a href=#handler-workerglobalscope-onerror>onerror</a></code> attribute
+ was null, but must otherwise act as described above.</p>
+
+ <p class=note>Thus, error reports proagate up to the chain of
+ dedicated workers up to the original <code><a href=#document>Document</a></code>, even if
+ some of the workers along this chain have been terminated and
+ garbage collected.</p>
+
+ <p>The <a href=#task-source>task source</a> for the task mentioned above is the
+ <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
+
+ <hr><pre class=idl>[Constructor(DOMString type, optional <a href=#erroreventinit>ErrorEventInit</a> eventInitDict)]
+interface <dfn id=errorevent>ErrorEvent</dfn> : <a href=#event>Event</a> {
+ readonly attribute DOMString <a href=#dom-errorevent-message title=dom-ErrorEvent-message>message</a>;
+ readonly attribute DOMString <a href=#dom-errorevent-filename title=dom-ErrorEvent-filename>filename</a>;
+ readonly attribute unsigned long <a href=#dom-errorevent-lineno title=dom-ErrorEvent-lineno>lineno</a>;
+};
+
+dictionary <dfn id=erroreventinit>ErrorEventInit</dfn> : <a href=#eventinit>EventInit</a> {
+ DOMString message;
+ DOMString filename;
+ unsigned long lineno;
+};</pre>
+
+ <p>The <dfn id=dom-errorevent-message title=dom-ErrorEvent-message><code>message</code></dfn> attribute
+ must return the value it was initialized to. When the object is
+ created, this attribute must be initialized to the empty string. It
+ represents the error message.</p>
+
+ <p>The <dfn id=dom-errorevent-filename title=dom-ErrorEvent-filename><code>filename</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to the empty
+ string. It represents the <a href=#absolute-url>absolute URL</a> of the script in
+ which the error originally occurred.</p>
+
+ <p>The <dfn id=dom-errorevent-lineno title=dom-ErrorEvent-lineno><code>lineno</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to zero. It
+ represents the line number where the error occurred in the
+ script.</p>
+
+
+
+ <h4 id=creating-workers><span class=secno>10.2.7 </span>Creating workers</h4>
+
+ <h5 id=the-abstractworker-abstract-interface><span class=secno>10.2.7.1 </span>The <code><a href=#abstractworker>AbstractWorker</a></code> abstract interface</h5>
+
+ <pre class=idl>[Supplemental, NoInterfaceObject]
+interface <dfn id=abstractworker>AbstractWorker</dfn> : <a href=#eventtarget>EventTarget</a> {
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-abstractworker-onerror title=handler-AbstractWorker-onerror>onerror</a>;
+<!-- v2-onclose [TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-AbstractWorker-onclose">onclose</span>; -->
+};</pre>
+
+ <p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ objects implementing the <code><a href=#abstractworker>AbstractWorker</a></code> interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-abstractworker-onerror title=handler-AbstractWorker-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
+<!-- v2-onclose <tr><td><dfn title="handler-AbstractWorker-onclose"><code>onclose</code></dfn> <td> <code title="event-close">close</code> -->
+ </table><h5 id=dedicated-workers-and-the-worker-interface><span class=secno>10.2.7.2 </span>Dedicated workers and the <code><a href=#worker>Worker</a></code> interface</h5>
+
+ <pre class=idl>[<a href=#dom-worker title=dom-Worker>Constructor</a>(DOMString scriptURL)]
+interface <dfn id=worker>Worker</dfn> : <a href=#abstractworker>AbstractWorker</a> {
+ void <a href=#dom-worker-terminate title=dom-Worker-terminate>terminate</a>();
+
+ void <a href=#dom-worker-postmessage title=dom-Worker-postMessage>postMessage</a>(any message, optional sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer);<!--
+ <span>MessagePort</span> <span title="dom-Worker-startConversation">startConversation</span>(any message);-->
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-worker-onmessage title=handler-Worker-onmessage>onmessage</a>;
+};</pre>
+
+ <p>The <dfn id=dom-worker-terminate title=dom-Worker-terminate><code>terminate()</code></dfn> method,
+ when invoked, must cause the "<a href=#terminate-a-worker>terminate a worker</a>"
+ algorithm to be run on the worker with with the object is
+ associated.</p>
+
+ <p><code><a href=#worker>Worker</a></code> objects act as if they had an implicit
+ <code><a href=#messageport>MessagePort</a></code> associated with them. This port is part of
+ a channel that is set up when the worker is created, but it is not
+ exposed. This object must never be garbage collected before the
+ <code><a href=#worker>Worker</a></code> object.</p>
+
+ <p>All messages received by that port must immediately be retargeted
+ at the <code><a href=#worker>Worker</a></code> object.</p>
+
+ <p>The <dfn id=dom-worker-postmessage title=dom-Worker-postMessage><code>postMessage()</code></dfn><!--
+ and <dfn
+ title="dom-Worker-startConversation"><code>startConversation()</code></dfn>-->
+ method<!--s (startConversation)--> on <code><a href=#worker>Worker</a></code> objects
+ must act as if, when invoked, it<!--/they (startConversation)-->
+ immediately invoked the method of the same name on the port, with
+ the same arguments, and returned the same return value.</p>
+
+ <p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ objects implementing the <code><a href=#worker>Worker</a></code> interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-worker-onmessage title=handler-Worker-onmessage><code>onmessage</code></dfn> <td> <code title=event-message><a href=#event-message>message</a></code>
+ </table><hr><p>When the <dfn id=dom-worker title=dom-Worker><code>Worker(<var title="">scriptURL</var>)</code></dfn> constructor is invoked, the
+ user agent must run the following steps:</p>
+
+ <ol><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the <var title="">scriptURL</var> argument relative to the <a href=#entry-script>entry
+ script</a>'s <a href="#script's-base-url" title="script's base URL">base URL</a>,
+ when the method is invoked.</li>
+
+ <li><p>If this fails, throw a <code><a href=#syntaxerror>SyntaxError</a></code>
+ exception.</li>
+
+ <li>
+
+ <p>If the <a href=#origin>origin</a> of the resulting <a href=#absolute-url>absolute
+ URL</a> is not the <a href=#same-origin title="same origin">same</a> as the
+ origin of the <a href=#entry-script>entry script</a>, then throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception.</p>
+
+ <p class=note>Thus, scripts must be external files with the same
+ scheme as the original page: you can't load a script from a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a> or
+ <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a>, and an <code>https:</code>
+ page couldn't start workers using scripts with <code>http:</code>
+ URLs.</p>
+
+ </li>
+
+ <li><p>Create a new <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code>
+ object. Let <var title="">worker global scope</var> be this new
+ object.</li>
+
+ <li><p>Create a new <code><a href=#worker>Worker</a></code> object, associated with
+ <var title="">worker global scope</var>. Let <var title="">worker</var> be this new object.</li>
+
+ <li><p><a href=#create-a-new-messageport-object>Create a new <code>MessagePort</code> object</a>
+ owned by the <a href="#script's-global-object" title="script's global object">global
+ object</a> of the <a href=#concept-script title=concept-script>script</a> that
+ invoked the constructor. Let this be the <var title="">outside
+ port</var>.</li>
+
+ <li><p>Associate the <var title="">outside port</var> with <var title="">worker</var>.</li>
+
+ <li><p><a href=#create-a-new-messageport-object>Create a new <code>MessagePort</code> object</a>
+ owned by <var title="">worker global scope</var>. Let <var title="">inside port</var> be this new object.</li>
+
+ <li><p>Associate <var title="">inside port</var> with <var title="">worker global scope</var>.</li>
+
+ <li><p><a href=#entangle>Entangle</a> <var title="">outside port</var> and
+ <var title="">inside port</var>.</li>
+
+ <li><p>Return <var title="">worker</var>, and run the following
+ steps asynchronously.</li>
+
+<!-- (this is done by the "run a worker" algorithm)
+ <li><p>Enable <var title="">inside port</var>'s <span>port message
+ queue</span>.</p></li>
+-->
+
+ <li><p>Enable <var title="">outside port</var>'s <a href=#port-message-queue>port message
+ queue</a>.</li>
+
+ <li>
+
+ <p>Let <var title="">docs</var> be the <a href=#list-of-relevant-document-objects-to-add>list of relevant
+ <code>Document</code> objects to add</a> given the <a href="#script's-global-object" title="script's global object">global object</a> of the <a href=#concept-script title=concept-script>script</a> that invoked the
+ constructor.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href="#add-a-document-to-the-worker's-documents" title="add a document to the worker's documents">Add to
+ <var title="">worker global scope</var>'s list of <span>the
+ worker's <code>Document</code>s</span></a> the
+ <code><a href=#document>Document</a></code> objects in <var title="">docs</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <a href="#script's-global-object" title="script's global object">global object</a>
+ of the <a href=#concept-script title=concept-script>script</a> that invoked the
+ constructor is a <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object (i.e. we
+ are creating a nested worker), add <var title="">worker global
+ scope</var> to the list of <a href="#the-worker's-workers">the worker's workers</a> of the
+ <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object that is the <a href="#script's-global-object" title="script's global object">global object</a> of the <a href=#concept-script title=concept-script>script</a> that invoked the
+ constructor.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#run-a-worker>Run a worker</a> for the resulting <a href=#absolute-url>absolute
+ URL</a>, with the <a href="#script's-browsing-context">script's browsing context</a> of the
+ script that invoked the method as the <var title="">owner browsing
+ context</var>, with the <a href="#script's-document">script's document</a> of the
+ script that invoked the method as the <var title="">owner
+ document</var>, with the <a href=#origin>origin</a> of the <a href=#entry-script>entry
+ script</a> as the <var title="">owner origin</var>, and with
+ <var title="">worker global scope</var> as the global scope.</p>
+
+ </li>
+
+ </ol><p>This constructor must be visible when the <a href="#script's-global-object">script's global
+ object</a> is either a <code><a href=#window>Window</a></code> object or an object
+ implementing the <code><a href=#workerutils>WorkerUtils</a></code> interface.</p>
+
+
+ <h5 id=shared-workers-and-the-sharedworker-interface><span class=secno>10.2.7.3 </span>Shared workers and the <code><a href=#sharedworker>SharedWorker</a></code> interface</h5>
+
+ <pre class=idl>[<a href=#dom-sharedworker title=dom-SharedWorker>Constructor</a>(DOMString scriptURL, optional DOMString name)]
+interface <dfn id=sharedworker>SharedWorker</dfn> : <a href=#abstractworker>AbstractWorker</a> {
+ readonly attribute <a href=#messageport>MessagePort</a> <a href=#dom-sharedworker-port title=dom-SharedWorker-port>port</a>;
+};</pre>
+
+ <p>The <dfn id=dom-sharedworker-port title=dom-SharedWorker-port><code>port</code></dfn>
+ attribute must return the value it was assigned by the object's
+ constructor. It represents the <code><a href=#messageport>MessagePort</a></code> for
+ communicating with the shared worker.</p>
+
+ <p>When the <dfn id=dom-sharedworker title=dom-SharedWorker><code>SharedWorker(<var title="">scriptURL</var>, <var title="">name</var>)</code></dfn>
+ constructor is invoked, the user agent must run the following
+ steps:</p>
+
+ <ol><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the <var title="">scriptURL</var> argument.</li>
+
+ <li><p>If this fails, throw a <code><a href=#syntaxerror>SyntaxError</a></code>
+ exception.</li>
+
+ <li><p>Otherwise, let <var title="">scriptURL</var> be the
+ resulting <a href=#absolute-url>absolute URL</a>.</li>
+
+ <li><p>Let <var title="">name</var> be the value of the second
+ argument, or the empty string if the second argument was
+ omitted.</li>
+
+ <li>
+
+ <p>If the <a href=#origin>origin</a> of <var title="">scriptURL</var> is
+ not the <a href=#same-origin title="same origin">same</a> as the origin of the
+ <a href=#entry-script>entry script</a>, then throw a <code><a href=#securityerror>SecurityError</a></code>
+ exception.</p>
+
+ <p class=note>Thus, scripts must be external files with the same
+ scheme as the original page: you can't load a script from a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a> or
+ <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a>, and a <code>https:</code>
+ page couldn't start workers using scripts with <code>http:</code>
+ URLs.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">docs</var> be the <a href=#list-of-relevant-document-objects-to-add>list of relevant
+ <code>Document</code> objects to add</a> given the <a href="#script's-global-object" title="script's global object">global object</a> of the <a href=#concept-script title=concept-script>script</a> that invoked the
+ constructor.</p>
+
+ </li>
+
+ <li>
+
+ <p>Execute the following substeps atomically:</p>
+
+ <ol><li><p>Create a new <code><a href=#sharedworker>SharedWorker</a></code> object, which will
+ shortly be associated with a <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code>
+ object. Let this <code><a href=#sharedworker>SharedWorker</a></code> object be <var title="">worker</var>.</li>
+
+ <li><p><a href=#create-a-new-messageport-object>Create a new <code>MessagePort</code> object</a>
+ owned by the <a href="#script's-global-object" title="script's global object">global
+ object</a> of the script that invoked the method. Let this be
+ the <var title="">outside port</var>.</li>
+
+ <li><p>Assign <var title="">outside port</var> to the <code title=dom-SharedWorker-port><a href=#dom-sharedworker-port>port</a></code> attribute of <var title="">worker</var>.</li>
+
+ <li><p>Let <var title="">worker global scope</var> be
+ null.</li>
+
+ <li><p>If <var title="">name</var> is not the empty string and
+ there exists a <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object whose
+ <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag
+ is false, whose <code title=dom-WorkerGlobalScope-name>name</code> attribute is
+ exactly equal to <var title="">name</var>, and whose <code title=dom-WorkerGlobalScope-location><a href=#dom-workerglobalscope-location>location</a></code> attribute
+ represents an <a href=#absolute-url>absolute URL</a> with the <a href=#same-origin>same
+ origin</a> as <var title="">scriptURL</var>, then let <var title="">worker global scope</var> be that
+ <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object.</li>
+
+ <li><p>Otherwise, if <var title="">name</var> is the empty string
+ and there exists a <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object
+ whose <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a>
+ flag is false, whose <code title=dom-WorkerGlobalScope-name>name</code> attribute is the
+ empty string, and whose <code title=dom-WorkerGlobalScope-location><a href=#dom-workerglobalscope-location>location</a></code> attribute
+ represents an <a href=#absolute-url>absolute URL</a> that is exactly equal to
+ <var title="">scriptURL</var>, then let <var title="">worker
+ global scope</var> be that <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code>
+ object.</li>
+
+ <li>
+
+ <p>If <var title="">worker global scope</var> is not null, then
+ run these steps:</p>
+
+ <ol><li><p>If <var title="">worker global scope</var>'s <code title=dom-WorkerGlobalScope-location><a href=#dom-workerglobalscope-location>location</a></code>
+ attribute represents an <a href=#absolute-url>absolute URL</a> that is not
+ exactly equal to <var title="">scriptURL</var>, then throw a
+ <code><a href=#urlmismatcherror>URLMismatchError</a></code> exception and abort all these
+ steps.</li>
+
+ <li><p>Associate <var title="">worker</var> with <var title="">worker global scope</var>.</li>
+
+ <li><p><a href=#create-a-new-messageport-object>Create a new <code>MessagePort</code>
+ object</a> owned by <var title="">worker global
+ scope</var>. Let this be the <var title="">inside
+ port</var>.</li>
+
+ <li><p><a href=#entangle>Entangle</a> <var title="">outside port</var>
+ and <var title="">inside port</var>.</li>
+
+ <li><p>Return <var title="">worker</var> and perform the next
+ step asynchronously.</li>
+
+ <li><p>Create an event that uses the <code><a href=#messageevent>MessageEvent</a></code>
+ interface, with the name <code title=event-connect>connect</code>, which does not bubble, is
+ not cancelable, has no default action, has a <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code> attribute whose value
+ is initialized to the empty string and has a <code title=dom-MessageEvent-ports><a href=#dom-messageevent-ports>ports</a></code> attribute whose
+ value is initialized to a <a href=#dfn-read-only-array title=dfn-read-only-array>read only</a> array containing
+ only the newly created port, and <a href=#queue-a-task>queue a task</a> to
+ dispatch the event at <var title="">worker global
+ scope</var>.</li>
+
+ <li>
+
+ <p><a href="#add-a-document-to-the-worker's-documents" title="add a document to the worker's documents">Add to
+ <var title="">worker global scope</var>'s list of <span>the
+ worker's <code>Document</code>s</span></a> the
+ <code><a href=#document>Document</a></code> objects in <var title="">docs</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <a href="#script's-global-object" title="script's global object">global
+ object</a> of the <a href=#concept-script title=concept-script>script</a>
+ that invoked the constructor is a
+ <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object, add <var title="">worker global scope</var> to the list of <a href="#the-worker's-workers">the
+ worker's workers</a> of the <code><a href=#workerglobalscope>WorkerGlobalScope</a></code>
+ object that is the <a href="#script's-global-object" title="script's global object">global
+ object</a> of the <a href=#concept-script title=concept-script>script</a>
+ that invoked the constructor.</p>
+
+ </li>
+
+ <li><p>Abort all these steps.</li>
+
+ </ol></li>
+
+ <li><p>Create a new <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code>
+ object. Let <var title="">worker global scope</var> be this new
+ object.</li>
+
+ <li><p>Associate <var title="">worker</var> with <var title="">worker global scope</var>.</li>
+
+ <li><p>Set the <code title=dom-SharedWorkerGlobalScope-name><a href=#dom-sharedworkerglobalscope-name>name</a></code> attribute of
+ <var title="">worker global scope</var> to <var title="">name</var>.</li>
+
+ <li><p><a href=#create-a-new-messageport-object>Create a new <code>MessagePort</code> object</a>
+ owned by <var title="">worker global scope</var>. Let <var title="">inside port</var> be this new object.</li>
+
+ <li><p><a href=#entangle>Entangle</a> <var title="">outside port</var> and
+ <var title="">inside port</var>.</li>
+
+ </ol></li>
+
+ <li><p>Return <var title="">worker</var> and perform the remaining
+ steps asynchronously.</li>
+
+ <li><p>Create an event that uses the <code><a href=#messageevent>MessageEvent</a></code>
+ interface, with the name <code title=event-connect>connect</code>, which does not bubble, is not
+ cancelable, has no default action, has a <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code> attribute whose value is
+ initialized to the empty string and has a <code title=dom-MessageEvent-ports><a href=#dom-messageevent-ports>ports</a></code> attribute whose value
+ is initialized to a <a href=#dfn-read-only-array title=dfn-read-only-array>read
+ only</a> array containing only the newly created port, and
+ <a href=#queue-a-task>queue a task</a> to dispatch the event at <var title="">worker global scope</var>.</li>
+
+ <li>
+
+ <p><a href="#add-a-document-to-the-worker's-documents" title="add a document to the worker's documents">Add to
+ <var title="">worker global scope</var>'s list of <span>the
+ worker's <code>Document</code>s</span></a> the
+ <code><a href=#document>Document</a></code> objects in <var title="">docs</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <a href="#script's-global-object" title="script's global object">global object</a>
+ of the <a href=#concept-script title=concept-script>script</a> that invoked the
+ constructor is a <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object, add <var title="">worker global scope</var> to the list of <a href="#the-worker's-workers">the
+ worker's workers</a> of the <code><a href=#workerglobalscope>WorkerGlobalScope</a></code>
+ object that is the <a href="#script's-global-object" title="script's global object">global
+ object</a> of the <a href=#concept-script title=concept-script>script</a>
+ that invoked the constructor.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#run-a-worker>Run a worker</a> for <var title="">scriptURL</var>,
+ with the <a href="#script's-browsing-context">script's browsing context</a> of the script that
+ invoked the method as the <var title="">owner browsing
+ context</var>, with the <a href="#script's-document">script's document</a> of the
+ script that invoked the method as the <var title="">owner
+ document</var>, with the <a href=#origin>origin</a> of the <a href=#entry-script>entry
+ script</a> as the <var title="">owner origin</var>, and with
+ <var title="">worker global scope</var> as the global scope.</p>
+
+ </li>
+
+ </ol><p>This constructor must be visible when the <a href="#script's-global-object">script's global
+ object</a> is either a <code><a href=#window>Window</a></code> object or an object
+ implementing the <code><a href=#workerutils>WorkerUtils</a></code> interface.</p>
+
+ <p>The <a href=#task-source>task source</a> for the tasks mentioned above is the
+ <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
+
+
+
+ <h3 id=apis-available-to-workers><span class=secno>10.3 </span>APIs available to workers</h3>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=workerutils>WorkerUtils</dfn> {
+ void <a href=#dom-workerglobalscope-importscripts title=dom-WorkerGlobalScope-importScripts>importScripts</a>(DOMString... urls);
+ readonly attribute <a href=#workernavigator>WorkerNavigator</a> <a href=#dom-worker-navigator title=dom-worker-navigator>navigator</a>;
+};
+<a href=#workerutils>WorkerUtils</a> implements <a href=#windowtimers>WindowTimers</a>;
+<a href=#workerutils>WorkerUtils</a> implements <a href=#windowbase64>WindowBase64</a>;</pre>
+
+
+ <p>The DOM APIs (<code><a href=#node>Node</a></code> objects, <code><a href=#document>Document</a></code>
+ objects, etc) are not available to workers in this version of this
+ specification.</p>
+
+
+ <h4 id=importing-scripts-and-libraries><span class=secno>10.3.1 </span>Importing scripts and libraries</h4>
+
+ <p>When a script invokes the <dfn id=dom-workerglobalscope-importscripts title=dom-WorkerGlobalScope-importScripts><code>importScripts(<var title="">urls</var>)</code></dfn> method on a
+ <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object, the user agent must run the
+ following steps:</p>
+
+ <ol><li><p>If there are no arguments, return without doing
+ anything. Abort these steps.</li>
+
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> each
+ argument.</li>
+
+ <li><p>If any fail, throw a <code><a href=#syntaxerror>SyntaxError</a></code>
+ exception.</li>
+
+<!--
+ <li><p>If any of the resulting <span title="absolute URL">absolute
+ URLs</span> have an <span>origin</span> that is not the <span
+ title="same origin">same</span> as the origin of the script that
+ invoked the method, then throw a <code>SecurityError</code>
+ exception.</p></li>
+-->
+
+ <li>
+
+ <p>Attempt to <a href=#fetch>fetch</a> each resource identified by the
+ resulting <a href=#absolute-url title="absolute URL">absolute URLs</a>, from
+ the <a href=#entry-script>entry script</a>'s <a href=#origin>origin</a>, with the
+ <i>synchronous flag</i> set.</p> <!-- not http-origin privacy
+ sensitive -->
+
+ </li>
+
+ <li>
+
+ <p>For each argument in turn, in the order given, starting with
+ the first one, run these substeps:</p>
+
+ <ol><li>
+
+ <p>Wait for the fetching attempt for the corresponding resource
+ to complete.</p>
+
+ <p>If the fetching attempt failed, throw a
+ <code><a href=#networkerror>NetworkError</a></code> exception and abort all these
+ steps.</p>
+
+ <p>If the attempt succeeds, then let <var title="">source</var> be
+ the script resource <a href=#decoded-as-utf-8,-with-error-handling>decoded as UTF-8, with error
+ handling</a>.
+ </p>
+
+ <p>Let <var title="">language</var> be JavaScript.</p>
+
+ <p class=note>As with the worker's script, the script here is
+ always assumed to be JavaScript, regardless of the MIME
+ type.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#create-a-script>Create a script</a>, using <var title="">source</var> as the script source and <var title="">language</var> as the scripting language, using the
+ same global object, browsing context, URL character encoding,
+ base URL, and script group as the <a href=#concept-script title=concept-script>script</a> that was created by the
+ worker's <a href=#run-a-worker>run a worker</a> algorithm.</p>
+
+ <p>Let the newly created <a href=#concept-script title=concept-script>script</a> run until it either
+ returns, fails to parse, fails to catch an exception, or gets
+ prematurely aborted by the "<a href=#kill-a-worker>kill a worker</a>" or
+ "<a href=#terminate-a-worker>terminate a worker</a>" algorithms defined above.</p>
+
+ <p>If it failed to parse, then throw an ECMAScript
+ <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort all these
+ steps. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ <p>If an exception was raised or if the script was prematurely
+ aborted, then abort all these steps, letting the exception or
+ aborting continue to be processed by the script that called the
+ <code title=dom-WorkerGlobalScope-importScripts><a href=#dom-workerglobalscope-importscripts>importScripts()</a></code>
+ method.</p>
+
+ <p>If the "<a href=#kill-a-worker>kill a worker</a>" or "<a href=#terminate-a-worker>terminate a
+ worker</a>" algorithms abort the script then abort all these
+ steps.</p>
+
+ </li>
+
+ </ol></li>
+
+ </ol><h4 id=the-workernavigator-object><span class=secno>10.3.2 </span>The <code><a href=#workernavigator>WorkerNavigator</a></code> object</h4>
+
+ <p>The <dfn id=dom-worker-navigator title=dom-worker-navigator><code>navigator</code></dfn> attribute
+ of the <code><a href=#workerutils>WorkerUtils</a></code> interface must return an instance of
+ the <code><a href=#workernavigator>WorkerNavigator</a></code> interface, which represents the
+ identity and state of the user agent (the client):</p>
+
+ <pre class=idl>interface <dfn id=workernavigator>WorkerNavigator</dfn> {};
+<a href=#workernavigator>WorkerNavigator</a> implements <a href=#navigatorid>NavigatorID</a>;
+<a href=#workernavigator>WorkerNavigator</a> implements <a href=#navigatoronline>NavigatorOnLine</a>;</pre>
+
+ <p>Objects implementing the <code><a href=#workernavigator>WorkerNavigator</a></code> interface
+ also implement the <code><a href=#navigatorid>NavigatorID</a></code> and
+ <code><a href=#navigatoronline>NavigatorOnLine</a></code> interfaces.
+ </p>
+
+ <p>This <code><a href=#workernavigator>WorkerNavigator</a></code> interface must not exist if the
+ interface's <span>relevant namespace object</span> is a
+ <code><a href=#window>Window</a></code> object. <a href=#refsWEBIDL>[WEBIDL]</a></p>
+
+
+
+
+ <h4 id=interface-objects-and-constructors><span class=secno>10.3.3 </span>Interface objects and constructors</h4>
+
+ <p>There must be no interface objects and constructors available in
+ the global scope of scripts whose <a href="#script's-global-object">script's global
+ object</a> is a <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object except for
+ the following:</p>
+
+ <ul><li><p><code>XMLHttpRequest</code> and all interface objects and
+ constructors defined by the XMLHttpRequest specifications, except
+ that the <span>document response entity body</span> must always be
+ null. The <span><code>XMLHttpRequest</code> base URL</span> is the
+ <a href="#script's-base-url">script's base URL</a>; the
+ <span><code>XMLHttpRequest</code> origin</span> is the script's
+ <a href=#origin>origin</a>. <a href=#refsXHR>[XHR]</a></li>
+
+ <li><p>The interface objects and constructors defined by this
+ specification.</li>
+
+ <li><p>Constructors defined by specifications that explicitly say
+ that they should be visible when the <a href="#script's-global-object">script's global
+ object</a> is a <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code>, a
+ <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code>, or an object implementing the
+ <code><a href=#workerutils>WorkerUtils</a></code> interface; the interfaces of any objects
+ with such constructors; and the interfaces of any objects made
+ accessible through APIs exposed by those constructors or made
+ accessible through interfaces to be implemented by any objects that
+ are themselves accessible to scripts whose <a href="#script's-global-object">script's global
+ object</a> implements the <code><a href=#workerutils>WorkerUtils</a></code>
+ interface.</li>
+
+ </ul><p class=note>These requirements do not override the requirements
+ defined by the Web IDL specification, in particular concerning the
+ visibility of interfaces annotated with the <code title="">[NoInterfaceObject]</code> extended attribute.</p>
+
+
+ <h4 id=worker-locations><span class=secno>10.3.4 </span>Worker locations</h4>
+
+ <pre class=idl>interface <dfn id=workerlocation>WorkerLocation</dfn> {
+ // <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>
+ stringifier readonly attribute DOMString <a href=#dom-workerlocation-href title=dom-WorkerLocation-href>href</a>;
+ readonly attribute DOMString <a href=#dom-workerlocation-protocol title=dom-WorkerLocation-protocol>protocol</a>;
+ readonly attribute DOMString <a href=#dom-workerlocation-host title=dom-WorkerLocation-host>host</a>;
+ readonly attribute DOMString <a href=#dom-workerlocation-hostname title=dom-WorkerLocation-hostname>hostname</a>;
+ readonly attribute DOMString <a href=#dom-workerlocation-port title=dom-WorkerLocation-port>port</a>;
+ readonly attribute DOMString <a href=#dom-workerlocation-pathname title=dom-WorkerLocation-pathname>pathname</a>;
+ readonly attribute DOMString <a href=#dom-workerlocation-search title=dom-WorkerLocation-search>search</a>;
+ readonly attribute DOMString <a href=#dom-workerlocation-hash title=dom-WorkerLocation-hash>hash</a>;
+};</pre>
+
+ <p>A <code><a href=#workerlocation>WorkerLocation</a></code> object represents an <a href=#absolute-url>absolute
+ URL</a> set at its creation.</p>
+
+ <p>The <dfn id=dom-workerlocation-href title=dom-WorkerLocation-href><code>href</code></dfn>
+ attribute must return the <a href=#absolute-url>absolute URL</a> that the object
+ represents.</p>
+
+ <p>The <code><a href=#workerlocation>WorkerLocation</a></code> interface also has the complement
+ of <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, <dfn id=dom-workerlocation-protocol title=dom-WorkerLocation-protocol><code>protocol</code></dfn>,
+ <dfn id=dom-workerlocation-host title=dom-WorkerLocation-host><code>host</code></dfn>, <dfn id=dom-workerlocation-port title=dom-WorkerLocation-port><code>port</code></dfn>, <dfn id=dom-workerlocation-hostname title=dom-WorkerLocation-hostname><code>hostname</code></dfn>,
+ <dfn id=dom-workerlocation-pathname title=dom-WorkerLocation-pathname><code>pathname</code></dfn>,
+ <dfn id=dom-workerlocation-search title=dom-WorkerLocation-search><code>search</code></dfn>,
+ and <dfn id=dom-workerlocation-hash title=dom-WorkerLocation-hash><code>hash</code></dfn>.
+ These must follow the rules given for <a href=#url-decomposition-idl-attributes>URL decomposition IDL
+ attributes</a>, with the <a href=#concept-uda-input title=concept-uda-input>input</a> being the <a href=#absolute-url>absolute
+ URL</a> that the object represents (same as the <code title=dom-WorkerLocation-href><a href=#dom-workerlocation-href>href</a></code> attribute), and the
+ <a href=#concept-uda-setter title=concept-uda-setter>common setter action</a> being a
+ no-op, since the attributes are defined to be readonly.
+ </p>
+
+ <p>The <code><a href=#workerlocation>WorkerLocation</a></code> interface must not exist if the
+ interface's <span>relevant namespace object</span> is a
+ <code><a href=#window>Window</a></code> object. <a href=#refsWEBIDL>[WEBIDL]</a></p>
+
+
+
+
+
+
+ </div><!--data-component-->
+
+
+
+<!--POSTMSG-->
+
+ <h2 id=comms><span class=secno>11 </span>Communication</h2>
+
+ <div data-component="Web Messaging (editor: Ian Hickson)">
+
+
+
+ <h3 id=event-definitions-2><span class=secno>11.1 </span>Event definitions</h3>
+
+ <p>Messages in <a href=#server-sent-events>server-sent events</a>, <a href=#network>Web
+ sockets</a>, <a href=#web-messaging>cross-document messaging</a>, and
+ <a href=#channel-messaging>channel messaging</a> use the <dfn id=event-message title=event-message><code>message</code></dfn> event.
+ </p>
+
+ <p>The following interface is defined for this event:</p>
+
+ <pre class=idl>[Constructor(DOMString type, optional <a href=#messageeventinit>MessageEventInit</a> eventInitDict)]
+interface <dfn id=messageevent>MessageEvent</dfn> : <a href=#event>Event</a> {
+ readonly attribute any <a href=#dom-messageevent-data title=dom-MessageEvent-data>data</a>;
+ readonly attribute DOMString <a href=#dom-messageevent-origin title=dom-MessageEvent-origin>origin</a>;
+ readonly attribute DOMString <a href=#dom-messageevent-lasteventid title=dom-MessageEvent-lastEventId>lastEventId</a>;
+ readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-messageevent-source title=dom-MessageEvent-source>source</a>;
+ readonly attribute <a href=#messageport>MessagePort</a>[]? <a href=#dom-messageevent-ports title=dom-MessageEvent-ports>ports</a>;
+};
+
+dictionary <dfn id=messageeventinit>MessageEventInit</dfn> : <a href=#eventinit>EventInit</a> {
+ any data;
+ DOMString origin;
+ DOMString lastEventId;
+ <a href=#windowproxy>WindowProxy</a>? source;
+ <a href=#messageport>MessagePort</a>[]? ports;
+};</pre>
+
+ <dl class=domintro><dt><var title="">event</var> . <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code></dt>
+
+ <dd>
+
+ <p>Returns the data of the message.</p>
+
+ </dd>
+
+ <dt><var title="">event</var> . <code title=dom-MessageEvent-origin><a href=#dom-messageevent-origin>origin</a></code></dt>
+
+ <dd>
+
+ <p>Returns the origin of the message, for <a href=#server-sent-events>server-sent
+ events</a> and <a href=#web-messaging>cross-document messaging</a>.</p>
+
+ </dd>
+
+ <dt><var title="">event</var> . <code title=dom-MessageEvent-lastEventId><a href=#dom-messageevent-lasteventid>lastEventId</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <a href=#concept-event-stream-last-event-id title=concept-event-stream-last-event-id>last event ID
+ string</a>, for <a href=#server-sent-events>server-sent events</a>.</p>
+
+ </dd>
+
+ <dt><var title="">event</var> . <code title=dom-MessageEvent-source><a href=#dom-messageevent-source>source</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#windowproxy>WindowProxy</a></code> of the source window, for
+ <a href=#web-messaging>cross-document messaging</a>.</p>
+
+ </dd>
+
+ <dt><var title="">event</var> . <code title=dom-MessageEvent-ports><a href=#dom-messageevent-ports>ports</a></code></dt>
+
+ <dd>
+
+ <p>Returns the <code><a href=#messageport>MessagePort</a></code> array sent with the
+ message, for <a href=#web-messaging>cross-document messaging</a> and
+ <a href=#channel-messaging>channel messaging</a>.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>The <dfn id=dom-messageevent-data title=dom-MessageEvent-data><code>data</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to null. It
+ represents the message being sent.</p>
+
+ <p>The <dfn id=dom-messageevent-origin title=dom-MessageEvent-origin><code>origin</code></dfn> attribute
+ must return the value it was initialized to. When the object is
+ created, this attribute must be initialized to the empty string. It
+ represents, in <a href=#server-sent-events>server-sent events</a> and
+ <a href=#web-messaging>cross-document messaging</a>, the <a href=#origin>origin</a> of
+ the document that sent the message (typically the scheme, hostname,
+ and port of the document, but not its path or fragment
+ identifier).</p>
+
+ <p>The <dfn id=dom-messageevent-lasteventid title=dom-MessageEvent-lastEventId><code>lastEventId</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to the empty
+ string. It represents, in <a href=#server-sent-events>server-sent events</a>, the <a href=#concept-event-stream-last-event-id title=concept-event-stream-last-event-id>last event ID
+ string</a> of the event source.</p>
+
+ <p>The <dfn id=dom-messageevent-source title=dom-MessageEvent-source><code>source</code></dfn> attribute
+ must return the value it was initialized to. When the object is
+ created, this attribute must be initialized to null. It represents,
+ in <a href=#web-messaging>cross-document messaging</a>, the
+ <code><a href=#windowproxy>WindowProxy</a></code> of the <a href=#browsing-context>browsing context</a> of the
+ <code><a href=#window>Window</a></code> object from which the message came.</p>
+
+ <p>The <dfn id=dom-messageevent-ports title=dom-MessageEvent-ports><code>ports</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to null<!-- a
+ <span title="dfn-read-only-array">read only</span> empty array-->.
+ It represents, in <a href=#web-messaging>cross-document messaging</a> and
+ <a href=#channel-messaging>channel messaging</a> the <code><a href=#messageport>MessagePort</a></code> array
+ being sent, if any.</p>
+
+ </div>
+
+
+
+ </div><!--data-component-->
+
+<!--POSTMSG-->
+
+
+
+ <h3 id=server-sent-events><span class=secno>11.2 </span><dfn>Server-sent events</dfn></h3>
+
+ <div data-component="Server-Sent Events (editor: Ian Hickson)">
+
+
+
+ <h4 id=server-sent-events-intro><span class=secno>11.2.1 </span>Introduction</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>To enable servers to push data to Web pages over HTTP or using
+ dedicated server-push protocols, this specification introduces the
+ <code><a href=#eventsource>EventSource</a></code> interface.</p>
+
+ <p>Using this API consists of creating an <code><a href=#eventsource>EventSource</a></code>
+ object and registering an event listener.</p>
+
+ <pre>var source = new EventSource('updates.cgi');
+source.onmessage = function (event) {
+ alert(event.data);
+};</pre>
+
+ <p>On the server-side, the script ("<code title="">updates.cgi</code>" in this case) sends messages in the
+ following form, with the <code><a href=#text/event-stream>text/event-stream</a></code> MIME
+ type:</p>
+
+ <pre>data: This is the first message.
+
+data: This is the second message, it
+data: has two lines.
+
+data: This is the third message.</pre>
+
+ <p>Using this API rather than emulating it using
+ <code>XMLHttpRequest</code> or an <code><a href=#the-iframe-element>iframe</a></code> allows the
+ user agent to make better use of network resources in cases where
+ the user agent implementor and the network operator are able to
+ coordinate in advance. Amongst other benefits, this can result in
+ significant savings in battery life on portable devices. This is
+ discussed further in the section below on <a href=#eventsource-push>connectionless push</a>.</p>
+
+
+ <h4 id=the-eventsource-interface><span class=secno>11.2.2 </span>The <code><a href=#eventsource>EventSource</a></code> interface</h4>
+
+ <pre class=idl>[<a href=#dom-eventsource title=dom-EventSource>Constructor</a>(DOMString url)]
+interface <dfn id=eventsource>EventSource</dfn> : <a href=#eventtarget>EventTarget</a> {
+ readonly attribute DOMString <a href=#dom-eventsource-url title=dom-EventSource-url>url</a>;
+
+ // ready state
+ const unsigned short <a href=#dom-eventsource-connecting title=dom-EventSource-CONNECTING>CONNECTING</a> = 0;
+ const unsigned short <a href=#dom-eventsource-open title=dom-EventSource-OPEN>OPEN</a> = 1;
+ const unsigned short <a href=#dom-eventsource-closed title=dom-EventSource-CLOSED>CLOSED</a> = 2;
+ readonly attribute unsigned short <a href=#dom-eventsource-readystate title=dom-EventSource-readyState>readyState</a>;
+
+ // networking
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onopen title=handler-EventSource-onopen>onopen</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onmessage title=handler-EventSource-onmessage>onmessage</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-eventsource-onerror title=handler-EventSource-onerror>onerror</a>;
+ void <a href=#dom-eventsource-close title=dom-EventSource-close>close</a>();
+};</pre>
+
+ <p>The <dfn id=dom-eventsource title=dom-EventSource><code>EventSource(<var title="">url</var>)</code></dfn> constructor takes one argument,
+ <var title="">url</var>, which specifies the <a href=#url>URL</a> to
+ which to connect. When the <code>EventSource()</code> constructor is
+ invoked, the UA must run these steps:</p>
+
+ <ol><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
+ <a href=#url>URL</a> specified in <var title="">url</var>, relative to
+ the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base
+ URL">base URL</a>.</li>
+
+ <li><p>If the previous step failed, then throw a
+ <code><a href=#syntaxerror>SyntaxError</a></code> exception.</li>
+
+ <li><p>Return a new <code><a href=#eventsource>EventSource</a></code> object, and continue
+ these steps in the background (without blocking scripts).</li>
+
+ <li>
+
+ <p>Do a <a href=#potentially-cors-enabled-fetch>potentially CORS-enabled fetch</a> of the
+ resulting <a href=#absolute-url>absolute URL</a>, with the <i>mode</i> being
+ <a href=#attr-crossorigin-use-credentials title=attr-crossorigin-use-credentials>Use
+ Credentials</a>, and the <i><a href=#origin>origin</a></i> being the <a href=#entry-script>entry
+ script</a>'s <a href=#origin>origin</a><!--, and the <i>default origin
+ behaviour</i> set to <i>fail</i> (though it has no effect in the
+ "Use Credentials" mode)-->, and process the resource obtained in
+ this fashion, if any, as described below.</p>
+
+ <p class=note>The definition of the <a href=#fetch title=fetch>fetching</a> algorithm (which is used by CORS) is
+ such that if the browser is already fetching the resource
+ identified by the given <a href=#absolute-url>absolute URL</a>, that connection
+ can be reused, instead of a new connection being established. All
+ messages received up to this point are dispatched immediately, in
+ this case.</p>
+
+ </li>
+
+ </ol><p>This constructor must be visible when the <a href="#script's-global-object">script's global
+ object</a> is either a <code><a href=#window>Window</a></code> object or an object
+ implementing the <code><a href=#workerutils>WorkerUtils</a></code> interface.</p>
+
+ <hr><p>The <dfn id=dom-eventsource-url title=dom-EventSource-url><code>url</code></dfn>
+ attribute must return the <a href=#absolute-url>absolute URL</a> that resulted
+ from <a href=#resolve-a-url title="resolve a url">resolving</a> the value that was
+ passed to the constructor.</p> <!-- not the result of redirects,
+ since that would introduce race conditions -->
+
+ <p>The <dfn id=dom-eventsource-readystate title=dom-EventSource-readyState><code>readyState</code></dfn>
+ attribute represents the state of the connection. It can have the
+ following values:</p>
+
+ <dl><dt><dfn id=dom-eventsource-connecting title=dom-EventSource-CONNECTING><code>CONNECTING</code></dfn> (numeric value 0)</dt>
+
+ <dd>The connection has not yet been established, or it was closed
+ and the user agent is reconnecting.</dd>
+
+ <dt><dfn id=dom-eventsource-open title=dom-EventSource-OPEN><code>OPEN</code></dfn> (numeric value 1)</dt>
+
+ <dd>The user agent has an open connection and is dispatching events
+ as it receives them.</dd>
+
+ <dt><dfn id=dom-eventsource-closed title=dom-EventSource-CLOSED><code>CLOSED</code></dfn> (numeric value 2)</dt>
+
+ <dd>The connection is not open, and the user agent is not trying to
+ reconnect. Either there was a fatal error or the <code title=dom-EventSource-close><a href=#dom-eventsource-close>close()</a></code> method was
+ invoked.</dd>
+
+ </dl><p>When the object is created its <code title=dom-EventSource-readyState><a href=#dom-eventsource-readystate>readyState</a></code> must be set to
+ <code title=dom-EventSource-CONNECTING><a href=#dom-eventsource-connecting>CONNECTING</a></code> (0). The
+ rules given below for handling the connection define when the value
+ changes.</p>
+
+ <p>The <dfn id=dom-eventsource-close title=dom-EventSource-close><code>close()</code></dfn>
+ method must abort any instances of the <a href=#fetch>fetch</a> algorithm
+ started for this <code><a href=#eventsource>EventSource</a></code> object, and must set the
+ <code title=dom-EventSource-readyState><a href=#dom-eventsource-readystate>readyState</a></code> attribute
+ to <code title=dom-EventSource-CLOSED><a href=#dom-eventsource-closed>CLOSED</a></code>.</p>
+
+ <p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ all objects implementing the <code><a href=#eventsource>EventSource</a></code> interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-eventsource-onopen title=handler-EventSource-onopen><code>onopen</code></dfn> <td> <code title=event-open>open</code>
+ <tr><td><dfn id=handler-eventsource-onmessage title=handler-EventSource-onmessage><code>onmessage</code></dfn> <td> <code title=event-message><a href=#event-message>message</a></code>
+ <tr><td><dfn id=handler-eventsource-onerror title=handler-EventSource-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
+ </table><hr><p>In addition to the above, each <code><a href=#eventsource>EventSource</a></code> object
+ has the following associated with it:</p>
+
+ <ul><li>A <dfn id=concept-event-stream-reconnection-time title=concept-event-stream-reconnection-time>reconnection
+ time</dfn>, in milliseconds. This must initially be a
+ user-agent-defined value, probably in the region of a few
+ seconds.</li>
+
+ <li>A <dfn id=concept-event-stream-last-event-id title=concept-event-stream-last-event-id>last event
+ ID string</dfn>. This must initially be the empty string.</li>
+
+ </ul><p>These values are not currently exposed on the interface.</p>
+
+
+ <h4 id=processing-model-5><span class=secno>11.2.3 </span>Processing model</h4>
+
+ <p>The resource indicated in the argument to the <code title=dom-EventSource><a href=#dom-eventsource>EventSource</a></code> constructor is <a href=#fetch title=fetch>fetched</a> when the constructor is run.</p>
+
+ <p>For HTTP connections, the <code title="">Accept</code> header may
+ be included; if included, it must contain only formats of event
+ framing that are supported by the user agent (one of which must be
+ <code><a href=#text/event-stream>text/event-stream</a></code>, as described below).</p>
+
+ <p>If the event source's <a href=#concept-event-stream-last-event-id title=concept-event-stream-last-event-id>last event ID
+ string</a> is not the empty string, then a <code title=http-last-event-id><a href=#last-event-id>Last-Event-ID</a></code> HTTP header must be
+ included with the request, whose value is the value of the event
+ source's <a href=#concept-event-stream-last-event-id title=concept-event-stream-last-event-id>last event
+ ID string</a>, encoded as UTF-8.</p>
+
+ <p>User agents should use the <code>Cache-Control: no-cache</code>
+ header in requests to bypass any caches for requests of event
+ sources. (This header is not a <a href=#custom-request-headers title="custom request
+ headers">custom request header</a>, so the user agent will still
+ use the CORS <a href=#simple-cross-origin-request>simple cross-origin request</a> mechanism.)
+ User agents should ignore HTTP cache headers in the response, never
+ caching event sources.</p>
+
+ <hr><p>As data is received, the <a href=#concept-task title=concept-task>tasks</a>
+ queued by the <a href=#networking-task-source>networking task source</a> to handle the data
+ must act as follows.</p>
+
+ <p>HTTP 200 OK responses with a <a href=#content-type>Content-Type</a> header
+ specifying the type <code><a href=#text/event-stream>text/event-stream</a></code>, either with no
+ parameters or with a single parameter with the name "<code title="">charset</code>" whose value is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">utf-8</code>", must be processed line by line <a href=#event-stream-interpretation>as described below</a>.</p>
+
+ <p>When a successful response with a supported <a href=#mime-type>MIME
+ type</a> is received, such that the user agent begins parsing the
+ contents of the stream, the user agent must <a href=#announce-the-connection>announce the
+ connection</a>.</p>
+
+ <p>The <a href=#concept-task title=concept-task>task</a> that the
+ <a href=#networking-task-source>networking task source</a> places on the <a href=#task-queue>task
+ queue</a> once the <a href=#fetch title=fetch>fetching algorithm</a>
+ for such a resource (with the correct <a href=#mime-type>MIME type</a>) has
+ completed must <a href=#reestablish-the-connection>reestablish the connection</a>. This applies
+ whether the connection is closed gracefully or unexpectedly. It
+ doesn't apply for the error conditions listed below.</p>
+
+ <p>HTTP 200 OK responses that have a <a href=#content-type>Content-Type</a>
+ specifying an unsupported type (including the
+ <code><a href=#text/event-stream>text/event-stream</a></code> type with unsupported parameters or
+ parameters with unsupported values), or that have no
+ <a href=#content-type>Content-Type</a> at all, must cause the user agent to
+ <a href=#fail-the-connection>fail the connection</a>.</p> <!-- about:blank is defined as
+ having no MIME type; javascript: as having the type text/html -->
+
+ <p>HTTP 305 Use Proxy, HTTP 401 Unauthorized, and 407 Proxy
+ Authentication Required should be treated transparently as for any
+ other subresource.</p>
+
+ <p>HTTP 301 Moved Permanently, HTTP 302 Found, 303 See Other, and
+ 307 Temporary Redirect responses are handled by the <a href=#fetch title=fetch>fetching</a> and CORS algorithms. In the case of
+ 301 redirects, the user agent must also remember the new URL so that
+ subsequent requests for this resource for this
+ <code><a href=#eventsource>EventSource</a></code> object start with the URL given for the
+ last 301 seen for requests for this object.</p>
+
+ <p>Any other HTTP response code not listed here, and any network
+ error that prevents the HTTP connection from being established in
+ the first place (e.g. DNS errors), must cause the user agent to
+ <a href=#fail-the-connection>fail the connection</a>.</p> <!-- including: HTTP 201
+ Created, HTTP 202 Accepted, HTTP 203 Non-Authoritative Information,
+ HTTP 204 No Content, HTTP 205 Reset Content, HTTP 206 Partial
+ Content, HTTP 300 Multiple Choices, HTTP 304 Not Modified, HTTP 400
+ Bad Request, 403 Forbidden, 404 Not Found, 405 Method Not Allowed,
+ 406 Not Acceptable, 408 Request Timeout, 409 Conflict, 410 Gone, 411
+ Length Required, 412 Precondition Failed, 413 Request Entity Too
+ Large, 414 Request-URI Too Long, 415 Unsupported Media Type, 416
+ Requested Range Not Satisfiable, 417 Expectation Failed, 500
+ Internal Server Error, 501 Not Implemented, 502 Bad Gateway, 503
+ Service Unavailable, 504 Gateway Timeout, and 505 HTTP Version Not
+ Supported responses --> <!-- mailto: is defined as equivalent to
+ HTTP 204 -->
+
+ <p>For non-HTTP protocols, UAs should act in equivalent ways.</p>
+
+ <hr><p>When a user agent is to <dfn id=announce-the-connection>announce the connection</dfn>, the
+ user agent must <a href=#queue-a-task>queue a task</a> to set the <code title=dom-EventSource-readyState><a href=#dom-eventsource-readystate>readyState</a></code> attribute to
+ <code title=dom-EventSource-OPEN><a href=#dom-eventsource-open>OPEN</a></code> and <a href=#fire-a-simple-event>fire a
+ simple event</a> named <code title=event-open>open</code> at
+ the <code><a href=#eventsource>EventSource</a></code> object.</p>
+
+ <p>When a user agent is to <dfn id=reestablish-the-connection>reestablish the connection</dfn>,
+ the user agent must <a href=#queue-a-task>queue a task</a> to set the <code title=dom-EventSource-readyState><a href=#dom-eventsource-readystate>readyState</a></code> attribute to
+ <code title=dom-EventSource-CONNECTING><a href=#dom-eventsource-connecting>CONNECTING</a></code> and
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the <code><a href=#eventsource>EventSource</a></code>
+ object, and then, after a delay equal to the reconnection time of
+ the event source, if the <code title=dom-EventSource-readyState><a href=#dom-eventsource-readystate>readyState</a></code> attribute is
+ still set to <code title=dom-EventSource-CONNECTING><a href=#dom-eventsource-connecting>CONNECTING</a></code>, once again do
+ a <a href=#potentially-cors-enabled-fetch>potentially CORS-enabled fetch</a> of the <a href=#absolute-url>absolute
+ URL</a> of the event source resource, with the <i>mode</i> being
+ <a href=#attr-crossorigin-use-credentials title=attr-crossorigin-use-credentials>Use
+ Credentials</a>, and the <i><a href=#origin>origin</a></i> being the same as the
+ <a href=#origin>origin</a> used in the original request triggered by the
+ <code title=dom-EventSource><a href=#dom-eventsource>EventSource()</a></code> constructor<!--,
+ and the <i>default origin behaviour</i> set to <i>fail</i> (though
+ it has no effect in the "Use Credentials" mode)-->, and process the
+ resource obtained in this fashion, if any, as described in this
+ section.</p>
+
+ <p>When a user agent is to <dfn id=fail-the-connection>fail the connection</dfn>, the user
+ agent must <a href=#queue-a-task>queue a task</a> to set the <code title=dom-EventSource-readyState><a href=#dom-eventsource-readystate>readyState</a></code> attribute to
+ <code title=dom-EventSource-CLOSED><a href=#dom-eventsource-closed>CLOSED</a></code> and <a href=#fire-a-simple-event>fire a
+ simple event</a> named <code title=event-error>error</code> at
+ the <code><a href=#eventsource>EventSource</a></code> object. <strong>Once the user agent has
+ <a href=#fail-the-connection title="fail the connection">failed the connection</a>, it
+ does <em>not</em> attempt to reconnect!</strong></p>
+
+ <hr><p>The <a href=#task-source>task source</a> for any <a href=#concept-task title=concept-task>tasks</a> that are <a href=#queue-a-task title="queue a
+ task">queued</a> by <code><a href=#eventsource>EventSource</a></code> objects is the
+ <dfn id=remote-event-task-source>remote event task source</dfn>.</p>
+
+
+ <h4 id=parsing-an-event-stream><span class=secno>11.2.4 </span>Parsing an event stream</h4>
+
+ <p>This event stream format's <a href=#mime-type>MIME type</a> is
+ <code><a href=#text/event-stream>text/event-stream</a></code>.</p>
+
+ <p>The event stream format is as described by the <code title="">stream</code> production of the following ABNF, the
+ character set for which is Unicode. <a href=#refsABNF>[ABNF]</a></p>
+
+ <pre>stream = [ bom ] *event
+event = *( comment / field ) end-of-line
+comment = colon *any-char end-of-line
+field = 1*name-char [ colon [ space ] *any-char ] end-of-line
+end-of-line = ( cr lf / cr / lf )
+
+; characters
+lf = %x000A ; U+000A LINE FEED (LF)
+cr = %x000D ; U+000D CARRIAGE RETURN (CR)
+space = %x0020 ; U+0020 SPACE
+colon = %x003A ; U+003A COLON (:)
+bom = %xFEFF ; U+FEFF BYTE ORDER MARK
+name-char = %x0000-0009 / %x000B-000C / %x000E-0039 / %x003B-10FFFF
+ ; a <a href=#unicode-character>Unicode character</a> other than U+000A LINE FEED (LF), U+000D CARRIAGE RETURN (CR), or U+003A COLON (:)
+any-char = %x0000-0009 / %x000B-000C / %x000E-10FFFF
+ ; a <a href=#unicode-character>Unicode character</a> other than U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR)</pre>
+
+ <p>Event streams in this format must always be encoded as
+ UTF-8. <a href=#refsRFC3629>[RFC3629]</a></p>
+
+ <p>Lines must be separated by either a U+000D CARRIAGE RETURN U+000A
+ LINE FEED (CRLF) character pair, a single U+000A LINE FEED (LF)
+ character, or a single U+000D CARRIAGE RETURN (CR) character.</p>
+
+ <p>Since connections established to remote servers for such
+ resources are expected to be long-lived, UAs should ensure that
+ appropriate buffering is used. In particular, while line buffering
+ with lines are defined to end with a single U+000A LINE FEED (LF)
+ character is safe, block buffering or line buffering with different
+ expected line endings can cause delays in event dispatch.</p>
+
+
+ <h4 id=event-stream-interpretation><span class=secno>11.2.5 </span>Interpreting an event stream</h4>
+
+ <p>Streams must be <a href=#decoded-as-utf-8,-with-error-handling>decoded as UTF-8, with error
+ handling</a>.
+ </p>
+
+ <p>One leading U+FEFF BYTE ORDER MARK character must be ignored if
+ any are present.</p>
+
+ <p>The stream must then be parsed by reading everything line by
+ line, with a U+000D CARRIAGE RETURN U+000A LINE FEED (CRLF)
+ character pair, a single U+000A LINE FEED (LF) character not
+ preceded by a U+000D CARRIAGE RETURN (CR) character, a single U+000D
+ CARRIAGE RETURN (CR) character not followed by a U+000A LINE FEED
+ (LF) character, and the end of the file being the four ways in which
+ a line can end.</p>
+
+ <p>When a stream is parsed, a <var title="">data</var> buffer and an
+ <var title="">event name</var> buffer must be associated with
+ it. They must be initialized to the empty string</p>
+
+ <p>Lines must be processed, in the order they are received, as
+ follows:</p>
+
+ <dl class=switch><dt>If the line is empty (a blank line)</dt>
+
+ <dd><p><a href=#dispatchMessage>Dispatch the event</a>, as
+ defined below.</dd>
+
+
+ <dt>If the line starts with a U+003A COLON character (:)</dt>
+
+ <dd><p>Ignore the line.</dd>
+
+
+ <dt>If the line contains a U+003A COLON character (:)</dt>
+
+ <dd>
+
+ <p>Collect the characters on the line before the first U+003A
+ COLON character (:), and let <var title="">field</var> be that
+ string.</p>
+
+ <p>Collect the characters on the line after the first U+003A COLON
+ character (:), and let <var title="">value</var> be that
+ string. If <var title="">value</var> starts with a U+0020
+ SPACE character, remove it from <var title="">value</var>.</p>
+
+ <p><a href=#processField>Process the field</a> using the steps
+ described below, using <var title="">field</var> as the field name
+ and <var title="">value</var> as the field value.</p>
+
+ </dd>
+
+
+ <dt>Otherwise, the string is not empty but does not contain a U+003A COLON character (:)</dt>
+
+ <dd>
+
+ <p><a href=#processField>Process the field</a> using the steps
+ described below, using the whole line as the field name, and
+ the empty string as the field value.</p>
+
+ </dd>
+
+ </dl><p>Once the end of the file is reached, any pending data must be
+ discarded. (If the file ends in the middle of an event, before the
+ final empty line, the incomplete event is not dispatched.)</p>
+
+ <hr><p id=processField>The steps to <dfn title="">process the
+ field</dfn> given a field name and a field value depend on the field
+ name, as given in the following list. Field names must be compared
+ literally, with no case folding performed.</p>
+
+ <dl class=switch><dt>If the field name is "event"</dt>
+
+ <dd><p>Set the <var title="">event name</var> buffer to field
+ value.</dd>
+
+
+ <dt>If the field name is "data"</dt>
+
+ <dd><p>Append the field value to the <var title="">data</var>
+ buffer, then append a single U+000A LINE FEED (LF) character to the
+ <var title="">data</var> buffer.</dd>
+
+
+ <dt>If the field name is "id"</dt>
+
+ <dd><p>Set the event stream's <a href=#concept-event-stream-last-event-id title=concept-event-stream-last-event-id>last event ID</a> to
+ the field value.</dd>
+
+
+ <dt>If the field name is "retry"</dt>
+
+ <dd><p>If the field value consists of only characters in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then interpret the
+ field value as an integer in base ten, and set the event stream's
+ <a href=#concept-event-stream-reconnection-time title=concept-event-stream-reconnection-time>reconnection
+ time</a> to that integer. Otherwise, ignore the field.</dd>
+
+ <!-- v2 feature request from Per-Erik Brodin:
+ > > > Finally, it could be useful to be able to reset the reconnection
+ > > > time to the user agent default value by sending the retry field only
+ > > > and leave out the value similar to how you reset the last event id.
+ > >
+ > > What's the use case?
+ >
+ > Take the stock ticker as an example. When the stock market closes the
+ > server logic knows that there won't be any new events for a number of
+ > hours and so it can send the corresponding reconnection time and close
+ > the connection. If the client is still running by the time the market
+ > opens, it will reconnect, and the server can now reset the reconnection
+ > time to a time that is convenient for the user agent (which is the user
+ > agent default value, unknown to the server).
+ -->
+
+<!-- v2 feature request from John Fallows - http://www.w3.org/mid/c5b3a7130810271238h11e40a4fybfcd5983ed5dc08d@mail.gmail.com
+
+ <dt>If the field name is "reconnect"</dt>
+
+ <dd><p>If the field value is the empty string, then: <a
+ href="#dispatchMessage">dispatch the event</a> as defined below,
+ and then drop the connection and immediately reconnect as if the
+ <span title="concept-event-stream-reconnection-time">reconnection
+ time</span> was zero for this one time.</p></dd>
+
+ -->
+
+ <dt>Otherwise</dt>
+
+ <dd><p>The field is ignored.</dd>
+
+ </dl><p id=dispatchMessage>When the user agent is required to <dfn title="">dispatch the event</dfn>, then the user agent must act as
+ follows:
+
+ <ol><li><p>If the <var title="">data</var> buffer is an empty string,
+ set the <var title="">data</var> buffer and the <var title="">event
+ name</var> buffer to the empty string and abort these
+ steps.</li>
+
+ <li><p>If the <var title="">data</var> buffer's last character is a
+ U+000A LINE FEED (LF) character, then remove the last character
+ from the <var title="">data</var> buffer.</li>
+
+ <li><p>Create an event that uses the <code><a href=#messageevent>MessageEvent</a></code>
+ interface, with the event name <code title=event-message><a href=#event-message>message</a></code>, which does not bubble, is not
+ cancelable, and has no default action. The <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code> attribute must be
+ initialized to the value of the <var title="">data</var> buffer,
+ the <code title=dom-MessageEvent-origin><a href=#dom-messageevent-origin>origin</a></code> attribute
+ must be initialized to the <a href=#unicode-serialization-of-an-origin title="Unicode serialization of an
+ origin">Unicode serialization</a> of the <a href=#origin>origin</a> of
+ the event stream's URL, and the <code title=dom-MessageEvent-lastEventId><a href=#dom-messageevent-lasteventid>lastEventId</a></code> attribute
+ must be initialized to the <a href=#concept-event-stream-last-event-id title=concept-event-stream-last-event-id>last event ID
+ string</a> of the event source.</li>
+
+ <li><p>If the <var title="">event name</var> buffer has a value
+ other than the empty string, change the <a href=#concept-event-type title=concept-event-type>type</a> of the newly created event
+ to equal the value of the <var title="">event name</var>
+ buffer.</li>
+
+ <li><p>Set the <var title="">data</var> buffer and the <var title="">event name</var> buffer to the empty string.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to dispatch the newly created
+ event at the <code><a href=#eventsource>EventSource</a></code> object.</li>
+
+ </ol><p class=note>If an event doesn't have an "id" field, but an
+ earlier event did set the event source's <a href=#concept-event-stream-last-event-id title=concept-event-stream-last-event-id>last event ID
+ string</a>, then the event's <code title=dom-MessageEvent-lastEventId><a href=#dom-messageevent-lasteventid>lastEventId</a></code> field will
+ be set to the value of whatever the last seen "id" field was.</p>
+
+
+ <div class=example>
+
+ <p>The following event stream, once followed by a blank line:</p>
+ <pre>data: YHOO
+data: +2
+data: 10</pre>
+
+ <p>...would cause an event <code title=event-message><a href=#event-message>message</a></code> with the interface
+ <code><a href=#messageevent>MessageEvent</a></code> to be dispatched on the
+ <code><a href=#eventsource>EventSource</a></code> object. The event's <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code> attribute would contain
+ the string <code>YHOO\n+2\n10</code> (where <code>\n</code>
+ represents a newline).</p>
+
+ <p>This could be used as follows:
+ <pre>var stocks = new EventSource("http://stocks.example.com/ticker.php");
+stocks.onmessage = function (event) {
+ var data = event.data.split('\n');
+ updateStocks(data[0], data[1], data[2]);
+};</pre>
+
+ <p>...where <code title="">updateStocks()</code> is a function defined as:</p>
+
+ <pre>function updateStocks(symbol, delta, value) { ... }</pre>
+
+ <p>...or some such.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following stream contains four blocks. The first block has
+ just a comment, and will fire nothing. The second block has two
+ fields with names "data" and "id" respectively; an event will be
+ fired for this block, with the data "first event", and will then
+ set the last event ID to "1" so that if the connection died between
+ this block and the next, the server would be sent a <code title=http-last-event-id><a href=#last-event-id>Last-Event-ID</a></code> header with the
+ value "1". The third block fires an event with data "second event",
+ and also has an "id" field, this time with no value, which resets
+ the last event ID to the empty string (meaning no <code title=http-last-event-id><a href=#last-event-id>Last-Event-ID</a></code> header will now be
+ sent in the event of a reconnection being attempted). Finally, the
+ last block just fires an event with the data
+ "&nbsp;third&nbsp;event" (with a single leading space character).
+ Note that the last still has to end with a blank line, the end of
+ the stream is not enough to trigger the dispatch of the last
+ event.</p>
+
+ <pre>: test stream
+
+data: first event
+id: 1
+
+data:second event
+id
+
+data:&nbsp;&nbsp;third event
+</pre>
+ </div>
+
+ <div class=example>
+
+ <p>The following stream fires two events:</p>
+
+ <pre>data
+
+data
+data
+
+data:</pre>
+
+ <p>The first block fires events with the data set to the empty
+ string, as would the last block if it was followed by a blank line.
+ The middle block fires an event with the data set to a single
+ newline character. The last block is discarded because it is not
+ followed by a blank line.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>The following stream fires two identical events:</p>
+
+ <pre>data:test
+
+data:&nbsp;test
+</pre>
+
+ <p>This is because the space after the colon is ignored if
+ present.</p>
+
+ </div>
+
+
+ <h4 id=notes><span class=secno>11.2.6 </span>Notes</h4>
+
+ <p>Legacy proxy servers are known to, in certain cases, drop HTTP
+ connections after a short timeout. To protect against such proxy
+ servers, authors can include a comment line (one starting with a ':'
+ character) every 15 seconds or so.</p>
+
+ <p>Authors wishing to relate event source connections to each other
+ or to specific documents previously served might find that relying
+ on IP addresses doesn't work, as individual clients can have
+ multiple IP addresses (due to having multiple proxy servers) and
+ individual IP addresses can have multiple clients (due to sharing a
+ proxy server). It is better to include a unique identifier in the
+ document when it is served and then pass that identifier as part of
+ the URL when the connection is established.</p>
+
+ <p>Authors are also cautioned that HTTP chunking can have unexpected
+ negative effects on the reliability of this protocol. Where
+ possible, chunking should be disabled for serving event streams
+ unless the rate of messages is high enough for this not to
+ matter.</p> <!-- v2 can we get a better solution? -->
+
+ <p>Clients that support HTTP's per-server connection limitation
+ might run into trouble when opening multiple pages from a site if
+ each page has an <code><a href=#eventsource>EventSource</a></code> to the same
+ domain. Authors can avoid this using the relatively complex
+ mechanism of using unique domain names per connection, or by
+ allowing the user to enable or disable the <code><a href=#eventsource>EventSource</a></code>
+ functionality on a per-page basis, or by sharing a single
+ <code><a href=#eventsource>EventSource</a></code> object using a <a href=#sharedworkerglobalscope title=SharedWorkerGlobalScope>shared worker</a>.
+ </p>
+
+
+ <h4 id=eventsource-push><span class=secno>11.2.7 </span>Connectionless push and other features</h4>
+
+ <p>User agents running in controlled environments, e.g. browsers on
+ mobile handsets tied to specific carriers, may offload the
+ management of the connection to a proxy on the network. In such a
+ situation, the user agent for the purposes of conformance is
+ considered to include both the handset software and the network
+ proxy.</p>
+
+ <div class=example>
+
+ <p>For example, a browser on a mobile device, after having
+ established a connection, might detect that it is on a supporting
+ network and request that a proxy server on the network take over
+ the management of the connection. The timeline for such a situation
+ might be as follows:</p>
+
+ <ol><li>Browser connects to a remote HTTP server and requests the
+ resource specified by the author in the <code title=dom-EventSource><a href=#dom-eventsource>EventSource</a></code> constructor.</li>
+
+ <li>The server sends occasional messages.</li>
+
+ <li>In between two messages, the browser detects that it is idle
+ except for the network activity involved in keeping the TCP
+ connection alive, and decides to switch to sleep mode to save power.</li>
+
+ <li>The browser disconnects from the server.</li>
+
+ <li>The browser contacts a service on the network, and requests
+ that that service, a "push proxy", maintain the connection instead.</li>
+
+ <li>The "push proxy" service contacts the remote HTTP server and
+ requests the resource specified by the author in the <code title=dom-EventSource><a href=#dom-eventsource>EventSource</a></code> constructor (possibly
+ including a <code title=http-last-event-id><a href=#last-event-id>Last-Event-ID</a></code>
+ HTTP header, etc).</li>
+
+ <li>The browser allows the mobile device to go to sleep.</li>
+
+ <li>The server sends another message.</li>
+
+ <li>The "push proxy" service uses a technology such as OMA push to
+ convey the event to the mobile device, which wakes only
+ enough to process the event and then returns to sleep.</li>
+
+ </ol></div>
+
+ <p>This can reduce the total data usage, and can therefore result in
+ considerable power savings.</p>
+
+ <p>As well as implementing the existing API and
+ <code><a href=#text/event-stream>text/event-stream</a></code> wire format as defined by this
+ specification and in more distributed ways as described above,
+ formats of event framing defined by <a href=#other-applicable-specifications>other applicable
+ specifications</a> may be supported. This specification does not
+ define how they are to be parsed or processed.</p>
+
+
+ <h4 id=garbage-collection-1><span class=secno>11.2.8 </span>Garbage collection</h4>
+
+ <p>While an <code><a href=#eventsource>EventSource</a></code> object's <code title=dom-EventSource-readyState><a href=#dom-eventsource-readystate>readyState</a></code> is <code title=dom-EventSource-CONNECTING><a href=#dom-eventsource-connecting>CONNECTING</a></code>, and the object
+ has one or more event listeners registered for <code title=event-open>open</code>, <code title=event-message><a href=#event-message>message</a></code> or <code title=event-error>error</code> events, there must be a strong
+ reference from the <code><a href=#window>Window</a></code> or <code><a href=#workerutils>WorkerUtils</a></code>
+ object that the <code><a href=#eventsource>EventSource</a></code> object's constructor was
+ invoked from to the <code><a href=#eventsource>EventSource</a></code> object itself.</p>
+
+ <p>While an <code><a href=#eventsource>EventSource</a></code> object's <code title=dom-EventSource-readyState><a href=#dom-eventsource-readystate>readyState</a></code> is <code title=dom-EventSource-OPEN><a href=#dom-eventsource-open>OPEN</a></code>, and the object has one or
+ more event listeners registered for <code title=event-message><a href=#event-message>message</a></code> or <code title=event-error>error</code> events, there must be a strong
+ reference from the <code><a href=#window>Window</a></code> or <code><a href=#workerutils>WorkerUtils</a></code>
+ object that the <code><a href=#eventsource>EventSource</a></code> object's constructor was
+ invoked from to the <code><a href=#eventsource>EventSource</a></code> object itself.</p>
+
+ <p>While there is a task queued by an <code><a href=#eventsource>EventSource</a></code>
+ object on the <a href=#remote-event-task-source>remote event task source</a>, there must be a
+ strong reference from the <code><a href=#window>Window</a></code> or
+ <code><a href=#workerutils>WorkerUtils</a></code> object that the <code><a href=#eventsource>EventSource</a></code>
+ object's constructor was invoked from to that
+ <code><a href=#eventsource>EventSource</a></code> object.</p>
+
+ <p>If a user agent is to <dfn id=concept-eventsource-forcibly-close title=concept-EventSource-forcibly-close>forcibly close</dfn> an
+ <code><a href=#eventsource>EventSource</a></code> object (this happens when a
+ <code><a href=#document>Document</a></code> object goes away permanently), the user agent
+ must abort any instances of the <a href=#fetch>fetch</a> algorithm started
+ for this <code><a href=#eventsource>EventSource</a></code> object, and must set the <code title=dom-EventSource-readyState><a href=#dom-eventsource-readystate>readyState</a></code> attribute to
+ <code title=dom-EventSource-CLOSED><a href=#dom-eventsource-closed>CLOSED</a></code>.</p> <!-- same as
+ calling close() -->
+
+ <p>If an <code><a href=#eventsource>EventSource</a></code> object is garbage collected while
+ its connection is still open, the user agent must abort any instance
+ of the <a href=#fetch title=fetch>fetch</a> algorithm opened by this
+ <code><a href=#eventsource>EventSource</a></code>.</p> <!-- no need to throw tasks away or
+ anything; for it to get garbage collected, there can't be anything
+ that would be able to receive those events -->
+
+ <p class=note>It's possible for one active network connection to
+ be shared by multiple <code><a href=#eventsource>EventSource</a></code> objects and their
+ <a href=#fetch>fetch</a> algorithms, which is why the above is phrased in
+ terms of aborting the <a href=#fetch>fetch</a> algorithm and not the
+ actual underlying download.</p>
+
+
+ <h4 id=iana-considerations><span class=secno>11.2.9 </span>IANA considerations</h4>
+
+ <h5 id=text/event-stream><span class=secno>11.2.9.1 </span><dfn><code>text/event-stream</code></dfn></h5>
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type text/event-stream
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>text</dd>
+ <dt>Subtype name:</dt>
+ <dd>event-stream</dd>
+ <dt>Required parameters:</dt>
+ <dd>No parameters</dd>
+ <dt>Optional parameters:</dt>
+ <dd>
+ <dl><dt><code title="">charset</code></dt>
+ <dd>
+
+ <p>The <code title="">charset</code> parameter may be provided.
+ The parameter's value must be "<code title="">utf-8</code>".
+ This parameter serves no purpose; it is only allowed for
+ compatibility with legacy servers.</p>
+
+ </dd>
+ </dl></dd>
+ <dt>Encoding considerations:</dt>
+ <dd>8bit (always UTF-8)</dd>
+ <dt>Security considerations:</dt>
+ <dd>
+
+ <p>An event stream from an origin distinct from the origin of the
+ content consuming the event stream can result in information
+ leakage. To avoid this, user agents are required to apply CORS
+ semantics. <a href=#refsCORS>[CORS]</a></p>
+
+ <p>Event streams can overwhelm a user agent; a user agent is
+ expected to apply suitable restrictions to avoid depleting local
+ resources because of an overabundance of information from an event
+ stream.</p>
+
+ <p>Servers can be overwhelmed if a situation develops in which the
+ server is causing clients to reconnect rapidly. Servers should use
+ a 5xx status code to indicate capacity problems, as this will
+ prevent conforming clients from reconnecting automatically.</p>
+
+ </dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>
+ Rules for processing both conforming and non-conforming content
+ are defined in this specification.
+ </dd>
+ <dt>Published specification:</dt>
+ <dd>
+ This document is the relevant specification.
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>
+ Web browsers and tools using Web services.
+ </dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd>No sequence of bytes can uniquely identify an event stream.</dd>
+ <dt>File extension(s):</dt>
+ <dd>No specific file extensions are recommended for this type.</dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd>No specific Macintosh file type codes are recommended for this type.</dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>This format is only expected to be used by dynamic open-ended
+ streams served using HTTP or a similar protocol. Finite resources
+ are not expected to be labeled with this type.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers have no meaning with
+ <code><a href=#text/event-stream>text/event-stream</a></code> resources.</p>
+
+
+ <h5 id=last-event-id><span class=secno>11.2.9.2 </span><dfn title=http-last-event-id><code>Last-Event-ID</code></dfn></h5>
+
+ <p>This section describes a header field for registration in the
+ Permanent Message Header Field Registry. <a href=#refsRFC3864>[RFC3864]</a></p>
+
+ <dl><dt>Header field name</dt>
+ <dd>Last-Event-ID</dd>
+ <dt>Applicable protocol</dt>
+ <dd>http</dd>
+ <dt>Status</dt>
+ <dd>standard</dd>
+ <dt>Author/Change controller</dt>
+ <dd>W3C</dd>
+ <dt>Specification document(s)</dt>
+ <dd>
+ This document is the relevant specification.
+ </dd>
+ <dt>Related information</dt>
+ <dd>None.</dd>
+ </dl></div><!--data-component-->
+
+
+ <h3 id=network><span class=secno>11.3 </span><dfn>Web sockets</dfn></h3>
+
+ <div data-component="WebSocket API (editor: Ian Hickson)">
+
+
+
+ <h4 id=network-intro><span class=secno>11.3.1 </span>Introduction</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>To enable Web applications to maintain bidirectional
+ communications with server-side processes, this specification
+ introduces the <code><a href=#websocket>WebSocket</a></code> interface.</p>
+
+ <p class=note>This interface does not allow for raw access to the
+ underlying network. For example, this interface could not be used to
+ implement an IRC client without proxying messages through a custom
+ server.</p>
+
+
+ <h4 id=the-websocket-interface><span class=secno>11.3.2 </span>The <code><a href=#websocket>WebSocket</a></code> interface</h4>
+
+ <pre class=idl>[<a href=#dom-websocket title=dom-WebSocket>Constructor</a>(DOMString url, optional DOMString protocols),
+ <a href=#dom-websocket title=dom-WebSocket>Constructor</a>(DOMString url, optional DOMString[] protocols)]
+interface <dfn id=websocket>WebSocket</dfn> : <a href=#eventtarget>EventTarget</a> {
+ readonly attribute DOMString <a href=#dom-websocket-url title=dom-WebSocket-url>url</a>;
+
+ // ready state
+ const unsigned short <a href=#dom-websocket-connecting title=dom-WebSocket-CONNECTING>CONNECTING</a> = 0;
+ const unsigned short <a href=#dom-websocket-open title=dom-WebSocket-OPEN>OPEN</a> = 1;
+ const unsigned short <a href=#dom-websocket-closing title=dom-WebSocket-CLOSING>CLOSING</a> = 2;
+ const unsigned short <a href=#dom-websocket-closed title=dom-WebSocket-CLOSED>CLOSED</a> = 3;
+ readonly attribute unsigned short <a href=#dom-websocket-readystate title=dom-WebSocket-readyState>readyState</a>;
+ readonly attribute unsigned long <a href=#dom-websocket-bufferedamount title=dom-WebSocket-bufferedAmount>bufferedAmount</a>;
+
+ // networking
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onopen title=handler-WebSocket-onopen>onopen</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onerror title=handler-WebSocket-onerror>onerror</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onclose title=handler-WebSocket-onclose>onclose</a>;
+ readonly attribute DOMString <a href=#dom-websocket-extensions title=dom-WebSocket-extensions>extensions</a>;
+ readonly attribute DOMString <a href=#dom-websocket-protocol title=dom-WebSocket-protocol>protocol</a>;
+ void <a href=#dom-websocket-close title=dom-WebSocket-close>close</a>([Clamp] optional unsigned short code, optional DOMString reason);
+
+ // messaging
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-websocket-onmessage title=handler-WebSocket-onmessage>onmessage</a>;
+ attribute DOMString <a href=#dom-websocket-binarytype title=dom-WebSocket-binaryType>binaryType</a>;
+ void <a href=#dom-websocket-send title=dom-WebSocket-send>send</a>(DOMString data);
+ void <a href=#dom-websocket-send title=dom-WebSocket-send>send</a>(<a href=#arraybuffer>ArrayBuffer</a> data);
+ void <a href=#dom-websocket-send title=dom-WebSocket-send>send</a>(<a href=#blob>Blob</a> data);
+};</pre>
+
+ <p>The <dfn id=dom-websocket title=dom-WebSocket><code>WebSocket(<var title="">url</var>, <var title="">protocols</var>)</code></dfn>
+ constructor takes one or two arguments. The first argument, <var title="">url</var>, specifies the <a href=#url>URL</a> to which to
+ connect. The second, <var title="">protocols</var>, if present, is
+ either a string or an array of strings. If it is a string, it is
+ equivalent to an array consisting of just that string; if it is
+ omitted, it is equivalent to the empty array. Each string in the
+ array is a subprotocol name. The connection will only be established
+ if the server reports that it has selected one of these
+ subprotocols. The subprotocol names must all be strings that match
+ the requirements for elements that comprise the value of <code title=http-sec-websocket-protocol>Sec-WebSocket-Protocol</code>
+ header fields as defined by the WebSocket protocol specification. <a href=#refsWSP>[WSP]</a></p>
+
+ <p>When the <code>WebSocket()</code> constructor is invoked, the UA
+ must run these steps:</p>
+
+ <ol><li><p><i><a href="#parse-a-websocket-url's-components">Parse a WebSocket URL's components</a></i> from the <var title="">url</var> argument, to obtain <var title="">host</var>,
+ <var title="">port</var>, <var title="">resource name</var>, and
+ <var title="">secure</var>. If this fails, throw a
+ <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort these steps. <a href=#refsWSP>[WSP]</a></li>
+
+ <li><p>If <var title="">secure</var> is false but the
+ <a href=#origin>origin</a> of the <a href=#entry-script>entry script</a> has a scheme
+ component that is itself a secure protocol, e.g. HTTPS, then throw
+ a <code><a href=#securityerror>SecurityError</a></code> exception.</li>
+
+ <li>
+
+ <p>If <var title="">port</var> is a port to which the user agent
+ is configured to block access, then throw a
+ <code><a href=#securityerror>SecurityError</a></code> exception. (User agents typically block
+ access to well-known ports like SMTP.)</p>
+
+ <!-- e.g. http://www.mozilla.org/projects/netlib/PortBanning.html -->
+
+ <p>Access to ports 80 and 443 should not be blocked, including the
+ unlikely cases when <var title="">secure</var> is false but <var title="">port</var> is 443 or <var title="">secure</var> is true
+ but <var title="">port</var> is 80.</p>
+ <!-- paragraph requested by zcorpan -->
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">protocols</var> is absent, let <var title="">protocols</var> be an empty array.</p>
+
+ <p>Otherwise, if <var title="">protocols</var> is present and a
+ string, let <var title="">protocols</var> instead be an array
+ consisting of just that string.</p>
+
+ </li>
+
+ <li><p>If any of the values in <var title="">protocols</var> occur
+ more than once or otherwise fail to match the requirements for
+ elements that comprise the value of <code title=http-sec-websocket-protocol>Sec-WebSocket-Protocol</code>
+ header fields as defined by the WebSocket protocol specification,
+ then throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort these
+ steps. <a href=#refsWSP>[WSP]</a></li>
+
+ <li><p>Let <var title="">origin</var> be the <a href=#ascii-serialization-of-an-origin title="ASCII
+ serialization of an origin">ASCII serialization</a> of the
+ <a href=#origin>origin</a> of the <a href=#entry-script>entry script</a>,
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
+
+ <li><p>Return a new <code><a href=#websocket>WebSocket</a></code> object, and continue
+ these steps in the background (without blocking scripts).</li>
+
+ <li>
+
+ <p><i><a href=#establish-a-websocket-connection>Establish a WebSocket connection</a></i> given the set (<var title="">host</var>, <var title="">port</var>, <var title="">resource name</var>, <var title="">secure</var>), along
+ with the <var title="">protocols</var> list, an empty list for the
+ extensions, and <var title="">origin</var>. The <i><a href=#headers-to-send-appropriate-cookies>headers to send
+ appropriate cookies</a></i> must be a <code title=http-Cookie>Cookie</code> header whose value is the
+ <i><a href=#cookie-string>cookie-string</a></i> computed from the user's cookie store and the
+ URL <var title="">url</var>; for these purposes this is
+ <em>not</em> a "non-HTTP" API. <a href=#refsWSP>[WSP]</a> <a href=#refsCOOKIES>[COOKIES]</a></p>
+
+ <p>When the user agent <i title="validate the server's
+ response"><a href="#validate-the-server's-response">validates the server's response</a></i> during the
+ "<i><a href=#establish-a-websocket-connection>establish a WebSocket connection</a></i>" algorithm, if the status
+ code received from the server is not 101 (e.g. it is a redirect),
+ the user agent must <i><a href=#fail-the-websocket-connection>fail the websocket connection</a></i>.</p>
+
+ <p class=warning>Following HTTP procedures here could introduce
+ serious security problems in a Web browser context. For example,
+ consider a host with a WebSocket server at one path and an open
+ HTTP redirector at another. Suddenly, any script that can be given
+ a particular WebSocket URL can be tricked into communicating to
+ (and potentially sharing secrets with) any host on the Internet,
+ even if the script checks that the URL has the right hostname.</p>
+ <!-- http://www.ietf.org/mail-archive/web/hybi/current/msg06951.html -->
+
+ <p class=note>If the <i><a href=#establish-a-websocket-connection>establish a WebSocket connection</a></i>
+ algorithm fails, it triggers the <i><a href=#fail-the-websocket-connection>fail the WebSocket
+ connection</a></i> algorithm, which then invokes the <i><a href=#close-the-websocket-connection>close the
+ WebSocket connection</a></i> algorithm, which then establishes that
+ <i><a href=#the-websocket-connection-is-closed>the WebSocket connection is closed</a></i>, which fires the <code title=event-close>close</code> event <a href=#closeWebSocket>as described below</a>.</p>
+
+ </li>
+
+ </ol><p>This constructor must be visible when the <a href="#script's-global-object">script's global
+ object</a> is either a <code><a href=#window>Window</a></code> object or an object
+ implementing the <code><a href=#workerutils>WorkerUtils</a></code> interface.</p>
+
+ <hr><p>The <dfn id=dom-websocket-url title=dom-WebSocket-url><code>url</code></dfn>
+ attribute must return the result of <a href=#resolve-a-url title="resolve a
+ url">resolving</a> the <a href=#url>URL</a> that was passed to the
+ constructor. (It doesn't matter what it is resolved relative to,
+ since we already know it is an <a href=#absolute-url>absolute URL</a>.)</p>
+
+ <p>The <dfn id=dom-websocket-readystate title=dom-WebSocket-readyState><code>readyState</code></dfn>
+ attribute represents the state of the connection. It can have the
+ following values:</p>
+
+ <dl><dt><dfn id=dom-websocket-connecting title=dom-WebSocket-CONNECTING><code>CONNECTING</code></dfn> (numeric value 0)</dt>
+
+ <dd>The connection has not yet been established.</dd>
+
+ <dt><dfn id=dom-websocket-open title=dom-WebSocket-OPEN><code>OPEN</code></dfn> (numeric value 1)</dt>
+
+ <dd><i><a href=#the-websocket-connection-is-established>The WebSocket connection is established</a></i> and communication is possible.</dd>
+
+ <dt><dfn id=dom-websocket-closing title=dom-WebSocket-CLOSING><code>CLOSING</code></dfn> (numeric value 2)</dt>
+
+ <dd>The connection is going through the closing handshake.</dd>
+
+ <dt><dfn id=dom-websocket-closed title=dom-WebSocket-CLOSED><code>CLOSED</code></dfn> (numeric value 3)</dt>
+
+ <dd>The connection has been closed or could not be opened.</dd>
+
+ </dl><p>When the object is created its <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code> must be set to
+ <code title=dom-WebSocket-CONNECTING><a href=#dom-websocket-connecting>CONNECTING</a></code> (0).</p>
+
+ <p>The <dfn id=dom-websocket-extensions title=dom-WebSocket-extensions><code>extensions</code></dfn>
+ attribute must initially return the empty string. After <i><a href=#the-websocket-connection-is-established>the
+ WebSocket connection is established</a></i>, its value might change, as
+ defined below.</p>
+
+ <p class=note>The <code title=dom-WebSocket-extensions><a href=#dom-websocket-extensions>extensions</a></code> attribute returns
+ the extensions selected by the server, if any. (Currently this will
+ only ever be the empty string.)</p>
+
+ <p>The <dfn id=dom-websocket-protocol title=dom-WebSocket-protocol><code>protocol</code></dfn> attribute
+ must initially return the empty string. After <i><a href=#the-websocket-connection-is-established>the WebSocket
+ connection is established</a></i>, its value might change, as defined
+ below.</p>
+
+ <p class=note>The <code title=dom-WebSocket-protocol><a href=#dom-websocket-protocol>protocol</a></code> attribute returns the
+ subprotocol selected by the server, if any. It can be used in
+ conjunction with the array form of the constructor's second argument
+ to perform subprotocol negotiation.</p>
+
+ <p>The <dfn id=dom-websocket-close title=dom-WebSocket-close><code>close()</code></dfn>
+ method must run the following steps:</p>
+
+ <ol><li><p>If the method's first argument is present but is not an
+ integer equal to 1000 or in the range 3000 to 4999, throw an
+ <code><a href=#invalidaccesserror>InvalidAccessError</a></code> exception and abort these
+ steps.</li>
+
+ <li><p>If the method's second argument has any unpaired surrogates,
+ then throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort these
+ steps.</li>
+
+ <li><p>If the method's second argument is present, then let <var title="">reason</var> be the result of encoding that argument as
+ UTF-8. If <var title="">reason</var> is longer than 123 bytes, then
+ throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort these steps.
+ <a href=#refsRFC3629>[RFC3629]</a></li>
+
+ <li><p>Run the first matching steps from the following list:</p>
+
+ <dl class=switch><dt>If the <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code>
+ attribute is in the <code title=dom-WebSocket-CLOSING><a href=#dom-websocket-closing>CLOSING</a></code> (2) or <code title=dom-WebSocket-CLOSED><a href=#dom-websocket-closed>CLOSED</a></code> (3) state</dt>
+
+ <dd>
+
+ <p>Do nothing.</p>
+
+ <p class=note>The connection is already closing or is already
+ closed. If it has not already, a <code title=event-close>close</code> event will eventually fire <a href=#closeWebSocket>as described below</a>.</p>
+
+ </dd>
+
+
+ <dt>If the WebSocket connection is not yet <i title="the
+ WebSocket connection is established"><a href=#the-websocket-connection-is-established>established</a></i> <a href=#refsWSP>[WSP]</a></dt>
+
+ <dd>
+
+ <p><i><a href=#fail-the-websocket-connection>Fail the WebSocket connection</a></i> and set the <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code> attribute's
+ value to <code title=dom-WebSocket-CLOSING><a href=#dom-websocket-closing>CLOSING</a></code> (2).
+ <a href=#refsWSP>[WSP]</a></p>
+
+ <p class=note>The <i><a href=#fail-the-websocket-connection>fail the WebSocket connection</a></i>
+ algorithm invokes the <i><a href=#close-the-websocket-connection>close the WebSocket
+ connection</a></i> algorithm, which then establishes that
+ <i><a href=#the-websocket-connection-is-closed>the WebSocket connection is closed</a></i>, which fires the
+ <code title=event-close>close</code> event <a href=#closeWebSocket>as described below</a>.</p>
+
+ </dd>
+
+
+ <dt>If the WebSocket closing handshake has not yet been <i title="the WebSocket closing handshake is
+ started"><a href=#the-websocket-closing-handshake-is-started>started</a></i> <a href=#refsWSP>[WSP]</a></dt>
+
+ <dd>
+
+ <p><i><a href=#start-the-websocket-closing-handshake>Start the WebSocket closing handshake</a></i> and set the
+ <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code>
+ attribute's value to <code title=dom-WebSocket-CLOSING><a href=#dom-websocket-closing>CLOSING</a></code> (2). <a href=#refsWSP>[WSP]</a></p>
+
+ <p>If the first argument is present, then the status
+ code<!--CLOSE CODE--> to use in the WebSocket Close message must
+ be the integer given by the first argument. <a href=#refsWSP>[WSP]</a></p>
+
+ <p>If the second argument is also present, then <var title="">reason</var> must be provided in the Close message
+ after the status code<!--CLOSE CODE-->. <a href=#refsRFC3629>[RFC3629]</a> <a href=#refsWSP>[WSP]</a></p>
+
+ <p class=note>The <i><a href=#start-the-websocket-closing-handshake>start the WebSocket closing handshake</a></i>
+ algorithm eventually invokes the <i><a href=#close-the-websocket-connection>close the WebSocket
+ connection</a></i> algorithm, which then establishes that <i><a href=#the-websocket-connection-is-closed>the
+ WebSocket connection is closed</a></i>, which fires the <code title=event-close>close</code> event <a href=#closeWebSocket>as described below</a>.</p>
+
+ </dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>Set the <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code> attribute's
+ value to <code title=dom-WebSocket-CLOSING><a href=#dom-websocket-closing>CLOSING</a></code>
+ (2).</p>
+
+ <p class=note><i><a href=#the-websocket-closing-handshake-is-started>The WebSocket closing handshake is
+ started</a></i>, and will eventually invoke the <i><a href=#close-the-websocket-connection>close the
+ WebSocket connection</a></i> algorithm, which will establish that
+ <i><a href=#the-websocket-connection-is-closed>the WebSocket connection is closed</a></i>, and thus the <code title=event-close>close</code> event will fire, <a href=#closeWebSocket>as described below</a>.</p>
+
+ </dd>
+
+ </dl></li>
+
+ </ol><hr><p>The <dfn id=dom-websocket-bufferedamount title=dom-WebSocket-bufferedAmount><code>bufferedAmount</code></dfn>
+ attribute must return the number of bytes of application data (UTF-8
+ text and binary data) that have been queued using <code title=dom-WebSocket-send><a href=#dom-websocket-send>send()</a></code> but that, as of the last
+ time the <a href=#event-loop>event loop</a> started executing a <a href=#concept-task title=concept-task>task</a>, had not yet been transmitted to
+ the network. (This thus includes any text sent during the execution
+ of the current task, regardless of whether the user agent is able to
+ transmit text asynchronously with script execution.) This does not
+ include framing overhead incurred by the protocol, or buffering done
+ by the operating system or network hardware. If the connection is
+ closed, this attribute's value will only increase with each call to
+ the <code title=dom-WebSocket-send><a href=#dom-websocket-send>send()</a></code> method (the
+ number does not reset to zero once the connection closes).</p>
+
+ <div class=example>
+
+ <p>In this simple example, the <code title=dom-WebSocket-bufferedAmount><a href=#dom-websocket-bufferedamount>bufferedAmount</a></code>
+ attribute is used to ensure that updates are sent either at the
+ rate of one update every 50ms, if the network can handle that rate,
+ or at whatever rate the network <em>can</em> handle, if that is too
+ fast.</p>
+
+ <pre>var socket = new WebSocket('ws://game.example.com:12010/updates');
+socket.onopen = function () {
+ setInterval(function() {
+ if (socket.bufferedAmount == 0)
+ socket.send(getUpdateData());
+ }, 50);
+};</pre>
+
+ <p>The <code title=dom-WebSocket-bufferedAmount><a href=#dom-websocket-bufferedamount>bufferedAmount</a></code>
+ attribute can also be used to saturate the network without sending
+ the data at a higher rate than the network can handle, though this
+ requires more careful monitoring of the value of the attribute over
+ time.</p>
+
+ </div>
+
+ <hr><p>When a <code><a href=#websocket>WebSocket</a></code> object is created, its <dfn id=dom-websocket-binarytype title=dom-WebSocket-binaryType><code>binaryType</code></dfn> IDL
+ attribute must be set to the string "<code title="">blob</code>". On
+ getting, it must return the last value it was set to. On setting, if
+ the new value is either the string "<code title="">blob</code>" or
+ the string "<code title="">arraybuffer</code>", then set the IDL
+ attribute to this new value. Otherwise, throw a
+ <code><a href=#syntaxerror>SyntaxError</a></code> exception.</p>
+
+ <p class=note>This attribute allows authors to control how binary
+ data is exposed to scripts. By setting the attribute to "<code title="">blob</code>", binary data is returned in <code><a href=#blob>Blob</a></code>
+ form; by setting it to "<code title="">arraybuffer</code>", it is
+ returned in <code><a href=#arraybuffer>ArrayBuffer</a></code> form. User agents can use this
+ as a hint for how to handle incoming binary data: if the attribute
+ is set to "<code title="">blob</code>", it is safe to spool it to
+ disk, and if it is set to "<code title="">arraybuffer</code>", it is
+ likely more efficient to keep the data in memory. Naturally, user
+ agents are encouraged to use more subtle heuristics to decide
+ whether to keep incoming data in memory or not, e.g. based on how
+ big the data is or how common it is for a script to change the
+ attribute at the last minute. This latter aspect is important in
+ particular because it is quite possible for the attribute to be
+ changed after the user agent has received the data but before the
+ user agent as fired the event for it.</p>
+
+ <p>The <dfn id=dom-websocket-send title=dom-WebSocket-send><code>send(<var title="">data</var>)</code></dfn> method transmits data using the
+ connection. If the <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code> attribute is
+ <code title=dom-WebSocket-CONNECTING><a href=#dom-websocket-connecting>CONNECTING</a></code>, it must
+ throw an <code><a href=#invalidstateerror>InvalidStateError</a></code> exception. Otherwise, the
+ user agent must run the appropriate set of steps from the following
+ list:</p>
+
+ <dl><dt>If the argument is a string</dt>
+
+ <dd>
+
+ <p>If the <var title="">data</var> argument has any unpaired
+ surrogates, then throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception. If
+ <i><a href=#the-websocket-connection-is-established>the WebSocket connection is established</a></i>, and the string has
+ no unpaired surrogates, and <i title="the WebSocket closing
+ handshake is started"><a href=#the-websocket-closing-handshake-is-started>the WebSocket closing handshake has not yet
+ started</a></i>, then the user agent must <i>send a WebSocket
+ Message</i> comprised of <var title="">data</var> using a text
+ frame opcode; if the data cannot be sent, e.g. because it would
+ need to be buffered but the buffer is full, the user agent must
+ <i><a href=#close-the-websocket-connection>close the WebSocket connection</a></i> <a href=#concept-websocket-close-fail title=concept-websocket-close-fail>with prejudice</a>. Any
+ invokation of this method with a string argument that does not
+ throw an exception must increase the <code title=dom-WebSocket-bufferedAmount><a href=#dom-websocket-bufferedamount>bufferedAmount</a></code>
+ attribute by the number of bytes needed to express the argument as
+ UTF-8. <a href=#refsRFC3629>[RFC3629]</a> <a href=#refsWSP>[WSP]</a></p>
+
+ </dd>
+
+
+ <dt>If the argument is a <code><a href=#blob>Blob</a></code> object</dt>
+
+ <dd>
+
+ <p>If <i><a href=#the-websocket-connection-is-established>the WebSocket connection is established</a></i>, and <i title="the WebSocket closing handshake is started"><a href=#the-websocket-closing-handshake-is-started>the WebSocket
+ closing handshake has not yet started</a></i>, then the user agent
+ must <i>send a WebSocket Message</i> comprised of <var title="">data</var> using a binary frame opcode; if the data
+ cannot be sent, e.g. because it would need to be buffered but the
+ buffer is full, the user agent must <i><a href=#close-the-websocket-connection>close the WebSocket
+ connection</a></i> <a href=#concept-websocket-close-fail title=concept-websocket-close-fail>with
+ prejudice</a>. The data to be sent is the raw data represented
+ by the <code><a href=#blob>Blob</a></code> object. <!-- that sentence is meant to
+ invoke "This interface represents immutable raw data." --> Any
+ invokation of this method with a <code><a href=#blob>Blob</a></code> argument that
+ does not throw an exception must increase the <code title=dom-WebSocket-bufferedAmount><a href=#dom-websocket-bufferedamount>bufferedAmount</a></code>
+ attribute by the size of the <code><a href=#blob>Blob</a></code> object's raw data,
+ in bytes. <!-- that sentence is meant to invoke the same as
+ Blob.size --> <a href=#refsWSP>[WSP]</a> <a href=#refsFILEAPI>[FILEAPI]</a></p>
+
+ </dd>
+
+
+ <dt>If the argument is an <code><a href=#arraybuffer>ArrayBuffer</a></code> object</dt>
+
+ <dd>
+
+ <p>If <i><a href=#the-websocket-connection-is-established>the WebSocket connection is established</a></i>, and <i title="the WebSocket closing handshake is started"><a href=#the-websocket-closing-handshake-is-started>the WebSocket
+ closing handshake has not yet started</a></i>, then the user agent
+ must <i>send a WebSocket Message</i> comprised of <var title="">data</var> using a binary frame opcode; if the data
+ cannot be sent, e.g. because it would need to be buffered but the
+ buffer is full, the user agent must <i><a href=#close-the-websocket-connection>close the WebSocket
+ connection</a></i> <a href=#concept-websocket-close-fail title=concept-websocket-close-fail>with
+ prejudice</a>. The data to be sent is the data stored in the
+ buffer described by the <code><a href=#arraybuffer>ArrayBuffer</a></code> object. <!-- that
+ sentence is meant to invoke "The ArrayBuffer type describes a
+ buffer used to store data for the array buffer views." at the top
+ of the Typed Array spec --> Any invokation of this method with an
+ <code><a href=#arraybuffer>ArrayBuffer</a></code> argument that does not throw an exception
+ must increase the <code title=dom-WebSocket-bufferedAmount><a href=#dom-websocket-bufferedamount>bufferedAmount</a></code>
+ attribute by the length of the <code><a href=#arraybuffer>ArrayBuffer</a></code> in bytes.
+ <!-- that sentence is meant to invoke the same as
+ ArrayBuffer.byteLength --> <a href=#refsWSP>[WSP]</a> <a href=#refsTYPEDARRAY>[TYPEDARRAY]</a></p>
+
+ </dd>
+
+ </dl><hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ all objects implementing the <code><a href=#websocket>WebSocket</a></code> interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-websocket-onopen title=handler-WebSocket-onopen><code>onopen</code></dfn> <td> <code title=event-open>open</code>
+ <tr><td><dfn id=handler-websocket-onmessage title=handler-WebSocket-onmessage><code>onmessage</code></dfn> <td> <code title=event-message><a href=#event-message>message</a></code>
+ <tr><td><dfn id=handler-websocket-onerror title=handler-WebSocket-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
+ <tr><td><dfn id=handler-websocket-onclose title=handler-WebSocket-onclose><code>onclose</code></dfn> <td> <code title=event-close>close</code>
+ </table><h4 id=feedback-from-the-protocol><span class=secno>11.3.3 </span>Feedback from the protocol</h4>
+
+ <p>When <i><a href=#the-websocket-connection-is-established>the WebSocket connection is established</a></i>, the user
+ agent must <a href=#queue-a-task>queue a task</a> to run these steps:</p>
+
+ <ol><li><p>Change the <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code> attribute's
+ value to <code title=dom-WebSocket-OPEN><a href=#dom-websocket-open>OPEN</a></code> (1).</li>
+
+ <li><p>Change the <code title=dom-WebSocket-extensions><a href=#dom-websocket-extensions>extensions</a></code> attribute's
+ value to the <i><a href=#extensions-in-use>extensions in use</a></i>, if is not the null value. <a href=#refsWSP>[WSP]</a></li>
+
+ <li><p>Change the <code title=dom-WebSocket-protocol><a href=#dom-websocket-protocol>protocol</a></code> attribute's value to
+ the <i><a href=#subprotocol-in-use>subprotocol in use</a></i>, if is not the null value. <a href=#refsWSP>[WSP]</a></li>
+
+ <li><p>Act as if the user agent had <a href=#receives-a-set-cookie-string title="receives a
+ set-cookie-string">received a set-cookie-string</a> consisting
+ of the <i><a href="#cookies-set-during-the-server's-opening-handshake">cookies set during the server's opening handshake</a></i>,
+ for the URL <var title="">url</var> given to the <code title=dom-WebSocket><a href=#dom-websocket>WebSocket()</a></code> constructor. <a href=#refsCOOKIES>[COOKIES]</a> <a href=#refsRFC3629>[RFC3629]</a> <a href=#refsWSP>[WSP]</a></li>
+
+ <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-open>open</code> at the <code><a href=#websocket>WebSocket</a></code>
+ object.</p>
+
+ </ol><hr><p>When <i><a href=#a-websocket-message-has-been-received>a WebSocket message has been received</a></i> with type <var title="">type</var> and data <var title="">data</var>, the user
+ agent must <a href=#queue-a-task>queue a task</a> to follow these steps: <a href=#refsWSP>[WSP]</a></p>
+
+ <ol><li>
+
+ <p>If the <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code>
+ attribute's value is not <code title=dom-WebSocket-OPEN><a href=#dom-websocket-open>OPEN</a></code> (1) or <code title=dom-WebSocket-CLOSING><a href=#dom-websocket-closing>CLOSING</a></code> (2), then abort these
+ steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">event</var> be an event that uses the
+ <code><a href=#messageevent>MessageEvent</a></code> interface, with the event name <code title=event-message><a href=#event-message>message</a></code>, which does not bubble, is
+ not cancelable, and has no default action.</p>
+
+ </li>
+
+ <li><p>Initialize <var title="">event</var>'s <code title=dom-MessageEvent-origin><a href=#dom-messageevent-origin>origin</a></code> attribute to the
+ <a href=#unicode-serialization-of-an-origin title="Unicode serialization of an origin">Unicode
+ serialization</a> of the <a href=#origin>origin</a> of the
+ <a href=#url>URL</a> that was passed to the <code><a href=#websocket>WebSocket</a></code>
+ object's constructor.</li>
+
+ <li>
+
+ <p>If <var title="">type</var> indicates that the data is Text,
+ then initialize <var title="">event</var>'s <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code> attribute to <var title="">data</var>.
+
+ <p>If <var title="">type</var> indicates that the data is Binary,
+ and <code title=dom-WebSocket-binaryType><a href=#dom-websocket-binarytype>binaryType</a></code> is
+ set to "<code title="">blob</code>", then initialize <var title="">event</var>'s <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code> attribute to a new
+ <code><a href=#blob>Blob</a></code> object that represents <var title="">data</var>
+ as its raw data. <a href=#refsFILEAPI>[FILEAPI]</a></p>
+
+ <p>If <var title="">type</var> indicates that the data is Binary,
+ and <code title=dom-WebSocket-binaryType><a href=#dom-websocket-binarytype>binaryType</a></code> is
+ set to "<code title="">arraybuffer</code>", then initialize <var title="">event</var>'s <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code> attribute to a new
+ read-only <code><a href=#arraybuffer>ArrayBuffer</a></code> object whose contents are <var title="">data</var>. <a href=#refsTYPEDARRAY>[TYPEDARRAY]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>Dispatch <var title="">event</var> at the
+ <code><a href=#websocket>WebSocket</a></code> object.</p>
+
+ </li>
+
+ </ol><p class=note>User agents are encouraged to check if they can
+ perform the above steps efficiently before they run the task,
+ picking tasks from other <a href=#task-queue title="task queue">task queues</a>
+ while they prepare the buffers if not. For example, if the <code title=dom-WebSocket-binaryType><a href=#dom-websocket-binarytype>binaryType</a></code> attribute was set
+ to "<code title="">blob</code>" when the data arrived, and the user
+ agent spooled all the data to disk, but just before running the
+ above <a href=#concept-task title=concept-task>task</a> for this particular
+ message the script switched <code title=dom-WebSocket-binaryType><a href=#dom-websocket-binarytype>binaryType</a></code> to "<code title="">arraybuffer</code>", the user agent would want to page the
+ data back to RAM before running this <a href=#concept-task title=concept-task>task</a> so as to avoid stalling the main
+ thread while it created the <code><a href=#arraybuffer>ArrayBuffer</a></code> object.</p>
+
+ <hr><p>When <i><a href=#the-websocket-closing-handshake-is-started>the WebSocket closing handshake is started</a></i>, the user
+ agent must <a href=#queue-a-task>queue a task</a> to change the <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code> attribute's value
+ to <code title=dom-WebSocket-CLOSING><a href=#dom-websocket-closing>CLOSING</a></code> (2). (If the
+ <code title=dom-WebSocket-close><a href=#dom-websocket-close>close()</a></code> method was called,
+ the <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code>
+ attribute's value will already be set to <code title=dom-WebSocket-CLOSING><a href=#dom-websocket-closing>CLOSING</a></code> (2) when this task
+ runs.) <a href=#refsWSP>[WSP]</a></p>
+
+ <hr><p id=closeWebSocket>When <i><a href=#the-websocket-connection-is-closed>the WebSocket connection is
+ closed</a></i>, possibly <i title="">cleanly</i>, the user agent must
+ <a href=#queue-a-task>queue a task</a> to run the following substeps:</p>
+
+ <ol><li><p>Change the <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code> attribute's
+ value to <code title=dom-WebSocket-CLOSED><a href=#dom-websocket-closed>CLOSED</a></code>
+ (3).</li>
+
+ <li><p>If the user agent was required to <i><a href=#fail-the-websocket-connection>fail the websocket
+ connection</a></i> or <i><a href=#the-websocket-connection-is-closed>the WebSocket connection is closed</a></i> <dfn id=concept-websocket-close-fail title=concept-websocket-close-fail>with prejudice</dfn>,
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title="">error</code>
+ at the <code><a href=#websocket>WebSocket</a></code> object. <a href=#refsWSP>[WSP]</a></li>
+
+ <li><p>Create an event that uses the <code><a href=#closeevent>CloseEvent</a></code>
+ interface, with the event name <code title=event-close>close</code>, which does not bubble, is not
+ cancelable, has no default action, whose <code title=dom-CloseEvent-wasClean><a href=#dom-closeevent-wasclean>wasClean</a></code> attribute is initialized to
+ true if the connection closed <i title="">cleanly</i> and false
+ otherwise, whose <code title=dom-CloseEvent-code><a href=#dom-closeevent-code>code</a></code>
+ attribute is initialized to <i><a href=#the-websocket-connection-close-code>the WebSocket connection close code</a></i>, and
+ whose <code title=dom-CloseEvent-reason><a href=#dom-closeevent-reason>reason</a></code> attribute
+ is initialized to <i><a href=#the-websocket-connection-close-reason>the WebSocket connection close reason</a></i>
+ <a href=#decoded-as-utf-8,-with-error-handling>decoded as UTF-8, with error handling</a>, and dispatch
+ the event at the <code><a href=#websocket>WebSocket</a></code> object. <a href=#refsWSP>[WSP]</a></li>
+
+ </ol><p>The <a href=#task-source>task source</a> for all <a href=#concept-task title=concept-task>tasks</a> <a href=#queue-a-task title="queue a
+ task">queued</a> in this section is the <dfn id=websocket-task-source>WebSocket task
+ source</dfn>.</p>
+
+
+ <h5 id=event-definitions-3><span class=secno>11.3.3.1 </span>Event definitions</h5>
+
+ <pre class=idl>[Constructor(DOMString type, optional <a href=#closeeventinit>CloseEventInit</a> eventInitDict)]
+interface <dfn id=closeevent>CloseEvent</dfn> : <a href=#event>Event</a> {
+ readonly attribute boolean <a href=#dom-closeevent-wasclean title=dom-CloseEvent-wasClean>wasClean</a>;
+ readonly attribute unsigned short <a href=#dom-closeevent-code title=dom-CloseEvent-code>code</a>;
+ readonly attribute DOMString <span title=dom-WebSocket-reason>reason</span>;
+};
+
+dictionary <dfn id=closeeventinit>CloseEventInit</dfn> : <a href=#eventinit>EventInit</a> {
+ boolean wasClean;
+ unsigned short code;
+ DOMString reason;
+};</pre>
+
+ <p>The <dfn id=dom-closeevent-wasclean title=dom-CloseEvent-wasClean><code>wasClean</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to false. It
+ represents whether the connection closed cleanly or not.</p>
+
+ <p>The <dfn id=dom-closeevent-code title=dom-CloseEvent-code><code>code</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to zero. It
+ represents the WebSocket connection close code provided by the
+ server.</p>
+
+ <p>The <dfn id=dom-closeevent-reason title=dom-CloseEvent-reason><code>reason</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to empty
+ string. It represents the WebSocket connection close reason provided
+ by the server.</p>
+
+
+
+ <h5 id=garbage-collection-2><span class=secno>11.3.3.2 </span>Garbage collection</h5>
+
+ <p>A <code><a href=#websocket>WebSocket</a></code> object whose <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code> attribute's value
+ was set to <code title=dom-WebSocket-CONNECTING><a href=#dom-websocket-connecting>CONNECTING</a></code>
+ (0) as of the last time the <a href=#event-loop>event loop</a> started
+ executing a <a href=#concept-task title=concept-task>task</a> must not be
+ garbage collected if there are any event listeners registered for
+ <code title=event-open>open</code> events, <code title=event-message><a href=#event-message>message</a></code> events, <code title=event-error>error</code> events, or <code title=event-close>close</code> events.</p>
+
+ <p>A <code><a href=#websocket>WebSocket</a></code> object whose <code title=dom-WebSocket-readyState><a href=#dom-websocket-readystate>readyState</a></code> attribute's value
+ was set to <code title=dom-WebSocket-OPEN><a href=#dom-websocket-open>OPEN</a></code> (1) or <code title=dom-WebSocket-CLOSING><a href=#dom-websocket-closing>CLOSING</a></code> (2) as of the last time
+ the <a href=#event-loop>event loop</a> started executing a <a href=#concept-task title=concept-task>task</a> must not be garbage collected if
+ there are any event listeners registered for <code title=event-message><a href=#event-message>message</a></code> events, <code title=event-error>error</code>, or <code title=event-close>close</code> events.</p>
+
+ <p>A <code><a href=#websocket>WebSocket</a></code> object with <i title="the WebSocket
+ connection is established"><a href=#the-websocket-connection-is-established>an established connection</a></i> that has
+ data queued to be transmitted to the network must not be garbage
+ collected. <a href=#refsWSP>[WSP]</a></p>
+
+ <p>If a <code><a href=#websocket>WebSocket</a></code> object is garbage collected while its
+ connection is still open, the user agent must <i><a href=#start-the-websocket-closing-handshake>start the
+ WebSocket closing handshake</a></i>, with no status code<!--CLOSE
+ CODE--> for the Close message. <a href=#refsWSP>[WSP]</a></p>
+
+ <hr><p>If a user agent is to <dfn id=make-disappear>make disappear</dfn> a
+ <code><a href=#websocket>WebSocket</a></code> object (this happens when a
+ <code><a href=#document>Document</a></code> object goes away), the user agent must follow
+ the first appropriate set of steps from the following list:</p>
+
+ <dl class=switch><dt>If the WebSocket connection is not yet <i title="the WebSocket
+ connection is established"><a href=#the-websocket-connection-is-established>established</a></i> <a href=#refsWSP>[WSP]</a></dt>
+
+ <dd>
+
+ <p><i><a href=#fail-the-websocket-connection>Fail the WebSocket connection</a></i>. <a href=#refsWSP>[WSP]</a></p>
+
+ </dd>
+
+
+ <dt>If the WebSocket closing handshake has not yet been <i title="the WebSocket closing handshake is started"><a href=#the-websocket-closing-handshake-is-started>started</a></i>
+ <a href=#refsWSP>[WSP]</a></dt>
+
+ <dd>
+
+ <p><i><a href=#start-the-websocket-closing-handshake>Start the WebSocket closing handshake</a></i>, with the
+ status code<!--CLOSE CODE--> to use in the WebSocket Close message
+ being 1001. <a href=#refsWSP>[WSP]</a></p>
+
+ </dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <p>Do nothing.</p>
+
+ </dd>
+
+ </dl></div><!--data-component-->
+
+
+<!--POSTMSG-->
+
+
+
+ <div data-component="Web Messaging (editor: Ian Hickson)">
+
+
+
+ <h3 id=web-messaging><span class=secno>11.4 </span><dfn id=crossDocumentMessages>Cross-document messaging</dfn></h3>
+
+ <p>Web browsers, for security and privacy reasons, prevent documents
+ in different domains from affecting each other; that is, cross-site
+ scripting is disallowed.</p>
+
+ <p>While this is an important security feature, it prevents pages
+ from different domains from communicating even when those pages are
+ not hostile. This section introduces a messaging system that allows
+ documents to communicate with each other regardless of their source
+ domain, in a way designed to not enable cross-site scripting
+ attacks.</p>
+
+ <div class=impl>
+
+ <p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> in <a href=#web-messaging>cross-document
+ messaging</a> is the <dfn id=posted-message-task-source>posted message task source</dfn>.</p>
+
+ </div>
+
+
+ <h4 id=introduction-14><span class=secno>11.4.1 </span>Introduction</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <div class=example>
+
+ <p>For example, if document A contains an <code><a href=#the-iframe-element>iframe</a></code>
+ element that contains document B, and script in document A calls
+ <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage()</a></code> on the
+ <code><a href=#window>Window</a></code> object of document B, then a message event will
+ be fired on that object, marked as originating from the
+ <code><a href=#window>Window</a></code> of document A. The script in document A might
+ look like:</p>
+
+ <pre>var o = document.getElementsByTagName('iframe')[0];
+o.contentWindow.postMessage('Hello world', 'http://b.example.org/');</pre>
+
+ <p>To register an event handler for incoming events, the script
+ would use <code title="">addEventListener()</code> (or similar
+ mechanisms). For example, the script in document B might look
+ like:</p>
+
+ <pre>window.addEventListener('message', receiver, false);
+function receiver(e) {
+ if (e.origin == 'http://example.com') {
+ if (e.data == 'Hello world') {
+ e.source.postMessage('Hello', e.origin);
+ } else {
+ alert(e.data);
+ }
+ }
+}</pre>
+
+ <p>This script first checks the domain is the expected domain, and
+ then looks at the message, which it either displays to the user, or
+ responds to by sending a message back to the document which sent
+ the message in the first place.</p>
+
+ </div>
+
+
+ <h4 id=security-postmsg><span class=secno>11.4.2 </span>Security</h4>
+
+ <div class=impl>
+
+ <h5 id=authors><span class=secno>11.4.2.1 </span>Authors</h5>
+
+ </div>
+
+ <p class=warning id=security-4>Use of this API requires extra
+ care to protect users from hostile entities abusing a site for their
+ own purposes.</p>
+
+ <p>Authors should check the <code title=dom-MessageEvent-origin><a href=#dom-messageevent-origin>origin</a></code> attribute to ensure
+ that messages are only accepted from domains that they expect to
+ receive messages from. Otherwise, bugs in the author's message
+ handling code could be exploited by hostile sites.</p>
+
+ <p>Furthermore, even after checking the <code title=dom-MessageEvent-origin><a href=#dom-messageevent-origin>origin</a></code> attribute, authors
+ should also check that the data in question is of the expected
+ format. Otherwise, if the source of the event has been attacked
+ using a cross-site scripting flaw, further unchecked processing of
+ information sent using the <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage()</a></code> method could
+ result in the attack being propagated into the receiver.</p>
+
+ <p>Authors should not use the wildcard keyword (*) in the <var title="">targetOrigin</var> argument in messages that contain any
+ confidential information, as otherwise there is no way to guarantee
+ that the message is only delivered to the recipient to which it was
+ intended.</p>
+
+
+ <div class=impl>
+
+ <h5 id=user-agents><span class=secno>11.4.2.2 </span>User agents</h5>
+
+ <p>The integrity of this API is based on the inability for scripts
+ of one <a href=#origin>origin</a> to post arbitrary events (using <code title="">dispatchEvent()</code> or otherwise) to objects in other
+ origins (those that are not the <a href=#same-origin title="same
+ origin">same</a>).</p>
+
+ <p class=note>Implementors are urged to take extra care in the
+ implementation of this feature. It allows authors to transmit
+ information from one domain to another domain, which is normally
+ disallowed for security reasons. It also requires that UAs be
+ careful to allow access to certain properties but not others.</p>
+
+ </div>
+
+
+ <h4 id=posting-messages><span class=secno>11.4.3 </span>Posting messages</h4>
+
+ <dl class=domintro><dt><var title="">window</var> . <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage</a></code>(<var title="">message</var>, <var title="">targetOrigin</var> [, <var title="">transfer</var> ])</dt>
+
+ <dd>
+
+ <p>Posts a message to the given window. Objects listed in <var title="">transfer</var> are transferred, not just cloned, meaning
+ that they are no longer usable on the sending side.</p>
+
+ <p>If the origin of the target window doesn't match the given
+ origin, the message is discarded, to avoid information leakage. To
+ send the message to the target regardless of origin, set the
+ target origin to "<code title="">*</code>". To restrict the
+ message to same-origin targets only, without needing to explicitly
+ state the origin, set the target origin to "<code title="">/</code>".</p>
+
+ <p>Throws a <code><a href=#datacloneerror>DataCloneError</a></code> if <var title="">transfer</var> array contains duplicate objects or if
+ <var title="">message</var> could not be cloned.</p>
+
+ </dd>
+
+ </dl><p class=note>When posting a message to a <code><a href=#window>Window</a></code> of a
+ <a href=#browsing-context>browsing context</a> that has just been navigated to a new
+ <code><a href=#document>Document</a></code> is likely to result in the message not
+ receiving its intended recipient: the scripts in the target
+ <a href=#browsing-context>browsing context</a> have to have had time to set up
+ listeners for the messages. Thus, for instance, in situations where
+ a message is to be sent to the <code><a href=#window>Window</a></code> of newly created
+ child <code><a href=#the-iframe-element>iframe</a></code>, authors are advised to have the child
+ <code><a href=#document>Document</a></code> post a message to their parent announcing
+ their readiness to receive messages, and for the parent to wait for
+ this message before beginning posting messages.</p>
+
+ <div class=impl>
+
+ <p>When a script invokes the <dfn id=dom-window-postmessage title=dom-window-postMessage><code>postMessage(<var title="">message</var>, <var title="">targetOrigin</var>, <var title="">transfer</var>)</code></dfn> method (with two or three
+ arguments) on a <code><a href=#window>Window</a></code> object, the user agent must
+ follow these steps:</p>
+
+ <ol><!-- a lot of this is similar or identical to port.postMessage --><li>
+
+ <p>If the value of the <var title="">targetOrigin</var> argument
+ is neither a single U+002A ASTERISK character (*), a single U+002F
+ SOLIDUS character (/), nor an <a href=#absolute-url>absolute URL</a>, then
+ throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort the overall
+ set of steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">new ports</var> be an empty array.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">transfer map</var> be an empty association
+ list of pairs of <code><a href=#transferable>Transferable</a></code> objects.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the method was invoked with a third argument <var title="">transfer</var>, run these substeps:</p>
+
+ <ol><li>
+
+ <p>If any object is listed in <var title="">transfer</var> more
+ than once, or any of the <code><a href=#transferable>Transferable</a></code> objects
+ listed in <var title="">transfer</var> have already been <a href=#transfer-a-transferable-object title="transfer a Transferable object">transfered</a> once
+ before, then throw a <code><a href=#datacloneerror>DataCloneError</a></code> exception and
+ abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <var title="">transfer</var> argument is present, then
+ for each object in <var title="">transfer</var> in turn, obtain
+ a new object by <a href=#transfer-a-transferable-object title="transfer a Transferable
+ object">transferring</a> the object to the
+ <code><a href=#window>Window</a></code> object on which the method was invoked, and
+ add a mapping from the old object to the new transferred object
+ to <var title="">transfer map</var>. If the objects are
+ <code><a href=#messageport>MessagePort</a></code> objects, also append the new
+ transferred object to the <var title="">new ports</var>
+ array.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li>
+
+ <p>Make <var title="">new ports</var> into a <a href=#dfn-read-only-array title=dfn-read-only-array>read only</a> array.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">message clone</var> be the result of
+ obtaining a <a href=#structured-clone>structured clone</a> of the <var title="">message</var> argument, with <var title="">transfer
+ map</var> as the <i>transfer map</i>. If this throws an exception,
+ then throw that exception and abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>Return from the <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage()</a></code> method, but
+ asynchronously continue running these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <var title="">targetOrigin</var> argument is a single
+ literal U+002F SOLIDUS character (/), and the
+ <code><a href=#document>Document</a></code> of the <code><a href=#window>Window</a></code> object on which
+ the method was invoked does not have the <a href=#same-origin>same origin</a>
+ as the <a href=#entry-script>entry script</a>'s <a href="#script's-document" title="script's
+ document">document</a>, then abort these steps silently.</p>
+
+ <p>Otherwise, if the <var title="">targetOrigin</var> argument is
+ an <a href=#absolute-url>absolute URL</a>, and the <code><a href=#document>Document</a></code> of the
+ <code><a href=#window>Window</a></code> object on which the method was invoked does
+ not have the <a href=#same-origin>same origin</a> as <var title="">targetOrigin</var>, then abort these steps silently.</p>
+
+ <p>Otherwise, the <var title="">targetOrigin</var> argument is a
+ single literal U+002A ASTERISK character (*), and no origin check
+ is made.</p>
+
+ </li>
+
+ <li>
+
+ <p>Create an event that uses the <code><a href=#messageevent>MessageEvent</a></code>
+ interface, with the event name <code title=event-message><a href=#event-message>message</a></code>, which does not bubble, is
+ not cancelable, and has no default action. The <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code> attribute must be
+ initialized to the value of <var title="">message clone</var>, the
+ <code title=dom-MessageEvent-origin><a href=#dom-messageevent-origin>origin</a></code> attribute must
+ be initialized to the <a href=#unicode-serialization-of-an-origin title="Unicode serialization of an
+ origin">Unicode serialization</a> of the <a href=#origin>origin</a> of
+ the script that invoked the method, the <code title=dom-MessageEvent-source><a href=#dom-messageevent-source>source</a></code> attribute must be
+ initialized to the <a href="#script's-global-object">script's global object</a>'s
+ <code><a href=#windowproxy>WindowProxy</a></code> object, and the <code title=dom-MessageEvent-ports><a href=#dom-messageevent-ports>ports</a></code> attribute must be
+ initialized to the <var title="">new ports</var> array.</p> <!--
+ invariant: the global object is always a Window if the script can
+ see this method -->
+
+ </li>
+
+ <li>
+
+ <p><a href=#queue-a-task>Queue a task</a> to dispatch the event created in the
+ previous step at the <code><a href=#window>Window</a></code> object on which the
+ method was invoked. The <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#posted-message-task-source>posted message task
+ source</a>.</p>
+
+ </li>
+
+ </ol></div>
+
+
+
+ <h3 id=channel-messaging><span class=secno>11.5 </span><dfn>Channel messaging</dfn></h3>
+
+ <h4 id=introduction-15><span class=secno>11.5.1 </span>Introduction</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>To enable independent pieces of code (e.g. running in different
+ <a href=#browsing-context title="browsing context">browsing contexts</a>) to
+ communicate directly, authors can use <a href=#channel-messaging>channel
+ messaging</a>.</p>
+
+ <p>Communication channels in this mechanisms are implemented as
+ two-ways pipes, with a port at each end. Messages sent in one port
+ are delivered at the other port, and vice-versa. Messages are
+ asynchronous, and delivered as DOM events.</p>
+
+ <p>To create a connection (two "entangled" ports), the <code title="">MessageChannel()</code> constructor is called:</p>
+
+ <pre>var channel = new MessageChannel();</pre>
+
+ <p>One of the ports is kept as the local port, and the other port is
+ sent to the remote code, e.g. using <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage()</a></code>:</p>
+
+ <pre>otherWindow.postMessage('hello', 'http://example.com', [channel.port2]);</pre>
+
+ <p>To send messages, the <code title=dom-MessagePort-postMessage><a href=#dom-messageport-postmessage>postMessage()</a></code> method on
+ the port is used:</p>
+
+ <pre>channel.port1.postMessage('hello');</pre>
+
+ <p>To receive messages, one listens to <code title=event-message><a href=#event-message>message</a></code> events:</p>
+
+ <pre>channel.port1.onmessage = handleMessage;
+function handleMessage(event) {
+ // message is in event.data
+ // ...
+}</pre>
+
+
+ <h4 id=message-channels><span class=secno>11.5.2 </span>Message channels</h4>
+
+ <pre class=idl>[<a href=#dom-messagechannel title=dom-MessageChannel>Constructor</a>]
+interface <dfn id=messagechannel>MessageChannel</dfn> {
+ readonly attribute <a href=#messageport>MessagePort</a> <a href=#dom-channel-port1 title=dom-channel-port1>port1</a>;
+ readonly attribute <a href=#messageport>MessagePort</a> <a href=#dom-channel-port2 title=dom-channel-port2>port2</a>;
+};</pre>
+
+ <dl class=domintro><dt><var title="">channel</var> = new <code title=dom-MessageChannel><a href=#dom-messagechannel>MessageChannel</a></code>()</dt>
+
+ <dd>
+
+ <p>Returns a new <code><a href=#messagechannel>MessageChannel</a></code> object with two new <code><a href=#messageport>MessagePort</a></code> objects.</p>
+
+ </dd>
+
+ <dt><var title="">channel</var> . <code title=dom-MessageChannel-port1>port1</code></dt>
+
+ <dd>
+
+ <p>Returns the first <code><a href=#messageport>MessagePort</a></code> object.</p>
+
+ </dd>
+
+ <dt><var title="">channel</var> . <code title=dom-MessageChannel-port2>port2</code></dt>
+
+ <dd>
+
+ <p>Returns the second <code><a href=#messageport>MessagePort</a></code> object.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>When the <dfn id=dom-messagechannel title=dom-MessageChannel><code>MessageChannel()</code></dfn>
+ constructor is called, it must run the following algorithm:</p>
+
+ <ol><li><p><a href=#create-a-new-messageport-object>Create a new <code>MessagePort</code> object</a>
+ owned by the <a href="#script's-global-object">script's global object</a>, and let <var title="">port1</var> be that object.</li>
+
+ <li><p><a href=#create-a-new-messageport-object>Create a new <code>MessagePort</code> object</a>
+ owned by the <a href="#script's-global-object">script's global object</a>, and let <var title="">port2</var> be that object.</li>
+
+ <li><p><a href=#entangle>Entangle</a> the <var title="">port1</var> and <var title="">port2</var> objects.</li>
+
+ <li><p>Instantiate a new <code><a href=#messagechannel>MessageChannel</a></code> object, and
+ let <var title="">channel</var> be that object.</li>
+
+ <li><p>Let the <code title=dom-channel-port1><a href=#dom-channel-port1>port1</a></code>
+ attribute of the <var title="">channel</var> object be <var title="">port1</var>.</p>
+
+ <li><p>Let the <code title=dom-channel-port2><a href=#dom-channel-port2>port2</a></code>
+ attribute of the <var title="">channel</var> object be <var title="">port2</var>.</p>
+
+ <li><p>Return <var title="">channel</var>.</li>
+
+ </ol><p>This constructor must be visible when the <a href="#script's-global-object">script's global
+ object</a> is either a <code><a href=#window>Window</a></code> object or an object
+ implementing the <code><a href=#workerutils>WorkerUtils</a></code> interface.</p>
+
+ <p>The <dfn id=dom-channel-port1 title=dom-channel-port1><code>port1</code></dfn> and
+ <dfn id=dom-channel-port2 title=dom-channel-port2><code>port2</code></dfn> attributes
+ must return the values they were assigned when the
+ <code><a href=#messagechannel>MessageChannel</a></code> object was created.</p>
+
+ </div>
+
+
+
+ <h4 id=message-ports><span class=secno>11.5.3 </span>Message ports</h4>
+
+ <p>Each channel has two message ports. Data sent through one port is
+ received by the other port, and vice versa.</p>
+
+ <pre class=idl>interface <dfn id=messageport>MessagePort</dfn> : <a href=#eventtarget>EventTarget</a> {
+<!-- v2-onclose readonly attribute boolean <span title="dom-MessagePort-active">active</span>;
+--> void <a href=#dom-messageport-postmessage title=dom-MessagePort-postMessage>postMessage</a>(any message, optional sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer);<!--
+ <span>MessagePort</span> <span title="dom-MessagePort-startConversation">startConversation</span>(any message);-->
+ void <a href=#dom-messageport-start title=dom-MessagePort-start>start</a>();
+ void <a href=#dom-messageport-close title=dom-MessagePort-close>close</a>();
+
+ // event handlers
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-messageport-onmessage title=handler-MessagePort-onmessage>onmessage</a>;
+};
+<a href=#messageport>MessagePort</a> implements <a href=#transferable>Transferable</a>;</pre>
+
+ <dl class=domintro><!-- v2-onclose
+ <dt><var title="">port</var> . <code title="dom-MessagePort-active">active</code></dt>
+
+ <dd>
+
+ <p>Returns true if the port is still active; otherwise, returns false.</p>
+
+ </dd>
+--><dt><var title="">port</var> . <code title=dom-MessagePort-postMessage><a href=#dom-messageport-postmessage>postMessage</a></code>(<var title="">message</var> [, <var title="">transfer</var>] )</dt>
+
+ <dd>
+
+ <p>Posts a message through the channel. Objects listed in <var title="">transfer</var> are transferred, not just cloned, meaning
+ that they are no longer usable on the sending side.</p>
+
+ <p>Throws a <code><a href=#datacloneerror>DataCloneError</a></code> if <var title="">transfer</var> array contains duplicate objects or the
+ source or target ports, or if <var title="">message</var> could
+ not be cloned.</p>
+
+ </dd>
+
+ <dt><var title="">port</var> . <code title=dom-MessagePort-start><a href=#dom-messageport-start>start</a></code>()</dt>
+
+ <dd>
+
+ <p>Begins dispatching messages received on the port.</p>
+
+ </dd>
+
+ <dt><var title="">port</var> . <code title=dom-MessagePort-close><a href=#dom-messageport-close>close</a></code>()</dt>
+
+ <dd>
+
+ <p>Disconnects the port, so that it is no longer active.</p>
+
+ </dd>
+
+ </dl><div class=impl>
+
+ <p>Each <code><a href=#messageport>MessagePort</a></code> object can be entangled with
+ another (a symmetric relationship). Each <code><a href=#messageport>MessagePort</a></code>
+ object also has a <a href=#task-source>task source</a> called the <dfn id=port-message-queue>port
+ message queue</dfn>, initial empty. A <a href=#port-message-queue>port message
+ queue</a> can be enabled or disabled, and is initially
+ disabled. Once enabled, a port can never be disabled again (though
+ messages in the queue can get moved to another queue or removed
+ altogether, which has much the same effect).</p>
+
+ <p>When the user agent is to <dfn id=create-a-new-messageport-object>create a new
+ <code>MessagePort</code> object</dfn> owned by a <a href="#script's-global-object">script's
+ global object</a> object <var title="">owner</var>, it must
+ instantiate a new <code><a href=#messageport>MessagePort</a></code> object, and let its owner
+ be <var title="">owner</var>.</p>
+
+ <p>When the user agent is to <dfn id=entangle>entangle</dfn> two
+ <code><a href=#messageport>MessagePort</a></code> objects, it must run the following
+ steps:</p>
+
+ <ol><li>
+
+ <p>If one of the ports is already entangled, then disentangle it
+ and the port that it was entangled with.</p>
+
+ <p class=note>If those two previously entangled ports were the
+ two ports of a <code><a href=#messagechannel>MessageChannel</a></code> object, then that
+ <code><a href=#messagechannel>MessageChannel</a></code> object no longer represents an actual
+ channel: the two ports in that object are no longer entangled.</p>
+
+ </li>
+
+ <li><p>Associate the two ports to be entangled, so that they form
+ the two parts of a new channel. (There is no
+ <code><a href=#messagechannel>MessageChannel</a></code> object that represents this
+ channel.)</li>
+
+ </ol><p>When the user agent is to <dfn id=clone-a-port>clone a port</dfn> <var title="">original port</var>, with the clone being owned by <var title="">owner</var>, it must run the following steps, which return
+ a new <code><a href=#messageport>MessagePort</a></code> object. These steps must be run
+ atomically.</p>
+
+ <ol><li><p><a href=#create-a-new-messageport-object>Create a new <code>MessagePort</code> object</a>
+ owned by <var title="">owner</var>, and let <var title="">new
+ port</var> be that object.</li>
+
+ <li><p>Move all the events in the <a href=#port-message-queue>port message queue</a>
+ of <var title="">original port</var> to the <a href=#port-message-queue>port message
+ queue</a> of <var title="">new port</var>, if any, leaving the
+ <var title="">new port</var>'s <a href=#port-message-queue>port message queue</a> in
+ its initial disabled state.</li>
+
+ <li>
+
+ <p>If the <var title="">original port</var> is entangled with
+ another port, then run these substeps:</p>
+
+ <ol><li><p>Let the <var title="">remote port</var> be the port with
+ which the <var title="">original port</var> is entangled.</li>
+
+ <li><p><a href=#entangle>Entangle</a> the <var title="">remote port</var>
+ and <var title="">new port</var> objects. The <var title="">original port</var> object will be disentangled by this
+ process.</li>
+
+ </ol></li>
+
+ <li><p>Return <var title="">new port</var>. It is the
+ clone.</li>
+
+ </ol><p id=transferMessagePort>To <a href=#transfer-a-transferable-object title="transfer a Transferable
+ object">transfer</a> a <code><a href=#messageport>MessagePort</a></code> object <var title="">old</var> to a new owner <var title="">owner</var>, a user
+ agent must <a href=#clone-a-port title="clone a port">clone</a> the <var title="">old</var> object with the cloned being owned by <var title="">owner</var>, and must return the resulting object.</p>
+
+ <hr><!-- v2-onclose
+ <p>The <dfn title="dom-MessagePort-active"><code>active</code></dfn>
+ attribute must return true if the port is entangled, and false
+ otherwise.</p>
+
+ <hr>
+--><p>The <dfn id=dom-messageport-postmessage title=dom-MessagePort-postMessage><code>postMessage()</code></dfn>
+ method, when called on a port <var title="">source port</var>, must
+ cause the user agent to run the following steps:</p>
+
+ <ol><!-- a lot of this is similar or identical to window.postMessage --><li><p>Let <var title="">target port</var> be the port with which
+ <var title="">source port</var> is entangled, if any.</li>
+
+ <li><p>Let <var title="">new owner</var> be the owner of <var title="">target port</var>, if there is a <var title="">target
+ port</var>, or else some arbitrary owner. (This <var title="">new
+ owner</var> is used when transfering objects below. If there is no
+ <var title="">target port</var>, the <code><a href=#transferable>Transferable</a></code>
+ objects given in the second argument, if any, are still <a href=#transfer-a-transferable-object title="transfer a Transferable object">transfered</a>, but since
+ they are then discarded, it doesn't matter where they are
+ transfered to.)</li>
+
+ <li>
+
+ <p>Let <var title="">new ports</var> be an empty array.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">transfer map</var> be an empty association
+ list of pairs of <code><a href=#transferable>Transferable</a></code> objects.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the method was invoked with a second argument <var title="">transfer</var>, run these substeps:</p>
+
+ <ol><li>
+
+ <p>If any object is listed in <var title="">transfer</var> more
+ than once, or any of the <code><a href=#transferable>Transferable</a></code> objects
+ listed in <var title="">transfer</var> have already been <a href=#transfer-a-transferable-object title="transfer a Transferable object">transfered</a> once
+ before, then throw a <code><a href=#datacloneerror>DataCloneError</a></code> exception and
+ abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>If any of the objects in <var title="">transfer</var> are
+ either the <var title="">source port</var> or the <var title="">target port</var> (if any), then throw a
+ <code><a href=#datacloneerror>DataCloneError</a></code> exception and abort these
+ steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>If the <var title="">transfer</var> argument is present, then
+ for each object in <var title="">transfer</var> in turn, obtain
+ a new object by <a href=#transfer-a-transferable-object title="transfer a Transferable
+ object">transferring</a> the object to <var title="">new
+ owner</var>, and add a mapping from the old object to the new
+ transferred object to <var title="">transfer map</var>. If the
+ objects are <code><a href=#messageport>MessagePort</a></code> objects, also append the
+ new transferred object to the <var title="">new ports</var>
+ array.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li>
+
+ <p>Make <var title="">new ports</var> into a <a href=#dfn-read-only-array title=dfn-read-only-array>read only</a> array.</p>
+
+ </li>
+
+ <li><p>Let <var title="">message</var> be the method's first
+ argument.</li>
+
+ <li>
+
+ <p>Let <var title="">message clone</var> be the result of
+ obtaining a <a href=#structured-clone>structured clone</a> of the <var title="">message</var> argument, with <var title="">transfer
+ map</var> as the <i>transfer map</i>. If this throws an exception,
+ then throw that exception and abort these steps.</p>
+
+ </li>
+
+ <li><p>If there is no <var title="">target port</var> (i.e. if <var title="">source port</var> is not entangled), then abort these
+ steps.</li> <!-- we don't throw an exception if there is no
+ target port because this can happen at a moment's notice. we don't
+ return false because if the port is _about_ to be closed, the
+ message might not be listened for anyway. we don't do this before
+ the steps above because otherwise you can tell the difference (in
+ whether the ports have become useless, or in when the structured
+ clone algorithm runs scripts -->
+
+ <li><p>Create an event that uses the <code><a href=#messageevent>MessageEvent</a></code>
+ interface, with the name <code title=event-message><a href=#event-message>message</a></code>, which does not bubble, is not
+ cancelable, and has no default action.</li>
+
+ <li><p>Let the <code title=dom-MessageEvent-data><a href=#dom-messageevent-data>data</a></code>
+ attribute of the event be initialized to the value of <var title="">message clone</var>.</li>
+
+ <li><p>Let the <code title=dom-MessageEvent-ports><a href=#dom-messageevent-ports>ports</a></code>
+ attribute of the event be initialized to the <var title="">new
+ ports</var> array.</li>
+
+ <li><p>Add the event to the <a href=#port-message-queue>port message queue</a> of <var title="">target port</var>.</li>
+
+ </ol><!--
+ <hr>
+
+ <p>The <dfn
+ title="dom-MessagePort-startConversation"><code>startConversation(<var
+ title="">message</var>)</code></dfn> method is a convenience method
+ that simplifies create a new <code>MessageChannel</code> and
+ invoking <code
+ title="dom-MessagePort-postMessage">postMessage()</code> with one of
+ the new ports. When invoked on a port <var title="">source
+ port</var>, it must run the following steps:</p>
+
+ <ol>
+
+ <li><p>Let <var title="">message</var> be the method's first
+ argument.</p></li>
+
+ <li><p><span>Create a new <code>MessagePort</code> object</span>
+ owned by the <span>script's global object</span>, and let <var
+ title="">port1</var> be that object.</p></li>
+
+ <li><p>If the <var title="">source port</var> is not entangled with
+ another port, then return <var title="">port1</var> and abort these
+ steps.</p></li>
+ <!- - we don't throw an exception because this can happen moment's
+ notice. we don't return null because then we'd end up with
+ null derefs. better to just let the likely next postMessage call
+ fall on the floor. - ->
+
+ <li><p>Let <var title="">target port</var> be the port with which
+ <var title="">source port</var> is entangled.</p></li>
+
+ <li><p><span>Create a new <code>MessagePort</code> object</span>
+ owned by the owner of the <var title="">target port</var>, and let
+ <var title="">port2</var> be that object.</p></li>
+
+ <li><p><span>Entangle</span> the <var title="">port1</var> and <var
+ title="">port2</var> objects.</p></li>
+
+ <li><p>Create an event that uses the <code>MessageEvent</code>
+ interface, with the name <code
+ title="event-message">message</code>, which does not bubble, is not
+ cancelable, and has no default action.</p></li>
+
+ <li><p>Let the <code title="dom-MessageEvent-data">data</code>
+ attribute of the event be initialized to the value of <var
+ title="">message</var>, the method's first argument.</p></li>
+
+ <li><p>Let the <code title="dom-MessageEvent-ports">ports</code>
+ attribute of the event be initialized to a <span
+ title="dfn-read-only-array">read only</span> array containing only
+ <var title="">port2</var>.</p></li>
+
+ <li><p>Return <var title="">port1</var> from the method, but
+ continue with these steps.</p></li>
+
+ <li><p>Add the event to the <span>port message queue</span> of <var
+ title="">target port</var>.</p></li>
+
+ </ol>
+--><hr><p>The <dfn id=dom-messageport-start title=dom-MessagePort-start><code>start()</code></dfn>
+ method must enable its port's <a href=#port-message-queue>port message queue</a>, if it
+ is not already enabled.</p>
+
+ <p>When a port's <a href=#port-message-queue>port message queue</a> is enabled, the
+ <a href=#event-loop>event loop</a> must use it as one of its <a href=#task-source title="task
+ source">task sources</a>.</p>
+
+ <p class=note>If the <code><a href=#document>Document</a></code> of the port's event
+ listeners' <a href="#script's-global-object" title="script's global object">global object</a>
+ is not <a href=#fully-active>fully active</a>, then the messages are lost.</p>
+ <!-- because of the jump-to-entry-point algorithm first step -->
+
+ <hr><p>The <dfn id=dom-messageport-close title=dom-MessagePort-close><code>close()</code></dfn>
+ method, when called on a port <var title="">local port</var> that is
+ entangled with another port, must cause the user agents to
+ disentangle the two ports. If the method is called on a port that is
+ not entangled, then the method must do nothing.</p>
+
+ <hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as IDL attributes, by
+ all objects implementing the <code><a href=#messageport>MessagePort</a></code> interface:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-messageport-onmessage title=handler-MessagePort-onmessage><code>onmessage</code></dfn> <td> <code title=event-message><a href=#event-message>message</a></code>
+ </table><p>The first time a <code><a href=#messageport>MessagePort</a></code> object's <code title=handler-MessagePort-onmessage><a href=#handler-messageport-onmessage>onmessage</a></code> IDL attribute
+ is set, the port's <a href=#port-message-queue>port message queue</a> must be enabled,
+ as if the <code title=dom-MessagePort-start><a href=#dom-messageport-start>start()</a></code> method
+ had been called.</p>
+
+ </div>
+
+
+ <h5 id=ports-and-garbage-collection><span class=secno>11.5.3.1 </span>Ports and garbage collection</h5>
+
+ <div class=impl>
+
+ <p>When a <code><a href=#messageport>MessagePort</a></code> object <var title="">o</var> is
+ entangled, user agents must either act as if <var title="">o</var>'s
+ entangled <code><a href=#messageport>MessagePort</a></code> object has a strong reference to
+ <var title="">o</var>, or as if <var title="">o</var>'s owner has a
+ strong reference to <var title="">o</var>.</p>
+
+ <div class=note>
+
+ <p>Thus, a message port can be received, given an event listener,
+ and then forgotten, and so long as that event listener could
+ receive a message, the channel will be maintained.</p>
+
+ <p>Of course, if this was to occur on both sides of the channel,
+ then both ports could be garbage collected, since they would not be
+ reachable from live code, despite having a strong reference to each
+ other.</p>
+
+ </div>
+
+ <p>Furthermore, a <code><a href=#messageport>MessagePort</a></code> object must not be
+ garbage collected while there exists a message in a <a href=#task-queue>task
+ queue</a> that is to be dispatched on that
+ <code><a href=#messageport>MessagePort</a></code> object, or while the
+ <code><a href=#messageport>MessagePort</a></code> object's <a href=#port-message-queue>port message queue</a> is
+ open and there exists a <code title=event-message><a href=#event-message>message</a></code>
+ event in that queue.</p>
+ <!-- we might not need to explicitly say the first part if DOM
+ Events is fixed to say that events on a task queue prevent GC -->
+
+ <!-- ports in the ports attribute of a MessageEvent that isn't
+ dispatched yet are safe because the MessageEvent is safe -->
+
+ </div>
+
+ <p class=note>Authors are strongly encouraged to explicitly close
+ <code><a href=#messageport>MessagePort</a></code> objects to disentangle them, so that their
+ resources can be recollected. Creating many <code><a href=#messageport>MessagePort</a></code>
+ objects and discarding them without closing them can lead to high
+ memory usage.</p>
+
+
+
+ </div><!--data-component-->
+
+<!--POSTMSG-->
+
+
+
+
+
+ <div data-component="Web Storage (editor: Ian Hickson)">
+
+ <h2 id=webstorage><span class=secno>12 </span>Web storage</h2>
+
+
+
+ <h3 id=introduction-16><span class=secno>12.1 </span>Introduction</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>This specification introduces two related mechanisms, similar to
+ HTTP session cookies, for storing structured data on the client
+ side. <a href=#refsCOOKIES>[COOKIES]</a></p>
+
+ <p>The first is designed for scenarios where the user is carrying
+ out a single transaction, but could be carrying out multiple
+ transactions in different windows at the same time.</p>
+
+ <p>Cookies don't really handle this case well. For example, a user
+ could be buying plane tickets in two different windows, using the
+ same site. If the site used cookies to keep track of which ticket
+ the user was buying, then as the user clicked from page to page in
+ both windows, the ticket currently being purchased would "leak" from
+ one window to the other, potentially causing the user to buy two
+ tickets for the same flight without really noticing.</p>
+
+ <p>To address this, this specification introduces the <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code> IDL attribute.
+ Sites can add data to the session storage, and it will be accessible
+ to any page from the same site opened in that window.</p> <!-- we're
+ not using xrefs here because this is just an intro -->
+
+ <div class=example>
+
+ <p>For example, a page could have a checkbox that the user ticks to
+ indicate that he wants insurance:</p>
+
+ <pre>&lt;label&gt;
+ &lt;input type="checkbox" onchange="sessionStorage.insurance = checked ? 'true' : ''"&gt;
+ I want insurance on this trip.
+&lt;/label&gt;</pre>
+
+ <p>A later page could then check, from script, whether the user had
+ checked the checkbox or not:</p>
+
+ <pre>if (sessionStorage.insurance) { ... }</pre>
+
+ <p>If the user had multiple windows opened on the site, each one
+ would have its own individual copy of the session storage object.</p>
+
+ </div>
+
+ <!--
+
+ sessionStorage.flightDeparture = 'OSL';
+ sessionStorage.flightArrival = 'NYC';
+
+ for (var i in forms[0].elements)
+ sessionStorage["data_" + i.name] = i.value;
+
+ // if we add storage of non-strings
+ if (!sessionStorage[documents])
+ sessionStorage[documents] = {};
+ sessionStorage[documents][filename] = <document/>;
+
+ -->
+
+ <p>The second storage mechanism is designed for storage that spans
+ multiple windows, and lasts beyond the current session. In
+ particular, Web applications may wish to store megabytes of user
+ data, such as entire user-authored documents or a user's mailbox, on
+ the client side for performance reasons.</p>
+
+ <p>Again, cookies do not handle this case well, because they are
+ transmitted with every request.</p>
+
+ <p>The <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> IDL
+ attribute is used to access a page's local storage area.</p>
+
+ <div class=example>
+
+ <p>The site at example.com can display a count of how many times
+ the user has loaded its page by putting the following at the bottom
+ of its page:</p>
+
+ <pre>&lt;p&gt;
+ You have viewed this page
+ &lt;span id="count"&gt;an untold number of&lt;/span&gt;
+ time(s).
+&lt;/p&gt;
+&lt;script&gt;
+ if (!localStorage.pageLoadCount)
+ localStorage.pageLoadCount = 0;
+ localStorage.pageLoadCount = parseInt(localStorage.pageLoadCount) + 1;
+ document.getElementById('count').textContent = localStorage.pageLoadCount;
+&lt;/script&gt;</pre>
+
+ </div>
+
+ <p>Each site has its own separate storage area.</p>
+
+
+
+
+ <h3 id=storage><span class=secno>12.2 </span>The API</h3>
+
+ <h4 id=the-storage-interface><span class=secno>12.2.1 </span>The <code><a href=#storage-0>Storage</a></code> interface</h4>
+
+ <pre class=idl>interface <dfn id=storage-0>Storage</dfn> {
+ readonly attribute unsigned long <a href=#dom-storage-length title=dom-Storage-length>length</a>;
+ DOMString? <a href=#dom-storage-key title=dom-Storage-key>key</a>(unsigned long index);
+ getter DOMString <a href=#dom-storage-getitem title=dom-Storage-getItem>getItem</a>(DOMString key);
+ setter creator void <a href=#dom-storage-setitem title=dom-Storage-setItem>setItem</a>(DOMString key, DOMString value);
+ deleter void <a href=#dom-storage-removeitem title=dom-Storage-removeItem>removeItem</a>(DOMString key);
+ void <a href=#dom-storage-clear title=dom-Storage-clear>clear</a>();
+};</pre>
+
+ <!-- v2 ideas:
+ a getInfo() method that returns an object that tells you:
+ - when the key was added
+ - when the key was last modified
+ - which page was the last to modify the key
+ [-Mihai Sucan]
+
+ support non-string values
+ -->
+
+ <p>Each <code><a href=#storage-0>Storage</a></code> object provides access to a list of
+ key/value pairs, which are sometimes called items. Keys are
+ strings. Any string (including the empty string) is a valid
+ key. Values are similarly strings.</p>
+
+ <p>Each <code><a href=#storage-0>Storage</a></code> object is associated with a list of
+ key/value pairs when it is created, as defined in the sections on
+ the <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code> and <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attributes. Multiple
+ separate objects implementing the <code><a href=#storage-0>Storage</a></code> interface can
+ all be associated with the same list of key/value pairs
+ simultaneously.</p>
+
+ <p>The <dfn id=dom-storage-length title=dom-Storage-length><code>length</code></dfn>
+ attribute must return the number of key/value pairs currently
+ present in the list associated with the object.</p>
+
+ <p>The <dfn id=dom-storage-key title=dom-Storage-key><code>key(<var title="">n</var>)</code></dfn> method must return the name of the
+ <var title="">n</var>th key in the list. The order of keys is
+ user-agent defined, but must be consistent within an object so long
+ as the number of keys doesn't change. (Thus, <a href=#dom-storage-setitem title=dom-Storage-setItem>adding</a> or <a href=#dom-storage-removeitem title=dom-Storage-removeItem>removing</a> a key may change the
+ order of the keys, but merely changing the value of an existing key
+ must not.) <!--The order of keys may differ between instances of the
+ <code>Storage</code> interface accessing the same list. [removed for
+ now for clarity, but if people ask, put it back. this is part of the
+ spec.]--> If <var title="">n</var> is <!--less than zero or [can't,
+ unsigned]--> greater than or equal to the number of key/value pairs
+ in the object, then this method must return null.</p>
+
+ <p>The <a href=#supported-property-names>supported property names</a> on a
+ <code><a href=#storage-0>Storage</a></code> object are the keys of each key/value pair
+ currently present in the list associated with the object.</p>
+
+ <p>The <dfn id=dom-storage-getitem title=dom-Storage-getItem><code>getItem(<var title="">key</var>)</code></dfn> method must return
+ the current value associated with
+ the given <var title="">key</var>. If the given <var title="">key</var> does not exist in the list associated with the
+ object then this method must return null.
+ </p>
+
+ <p>The <dfn id=dom-storage-setitem title=dom-Storage-setItem><code>setItem(<var title="">key</var>, <var title="">value</var>)</code></dfn> method
+ must first check if a key/value pair
+ with the given <var title="">key</var> already exists in the list
+ associated with the object.</p>
+
+ <p>If it does not, then a new key/value pair must be added to the
+ list, with the given <var title="">key</var> and with its value set
+ to <var title="">value</var>.</p>
+
+ <p>If the given <var title="">key</var> <em>does</em> exist in the
+ list, then it must have its value updated to <var title="">value</var>.</p>
+
+ <p>If it couldn't set the new value, the method must throw an
+ <code><a href=#quotaexceedederror>QuotaExceededError</a></code> exception. (Setting could fail if,
+ e.g., the user has disabled storage for the site, or if the quota
+ has been exceeded.)</p>
+
+ <p>The <dfn id=dom-storage-removeitem title=dom-Storage-removeItem><code>removeItem(<var title="">key</var>)</code></dfn> method must cause the key/value
+ pair with the given <var title="">key</var> to be removed from the
+ list associated with the object, if it exists. If no item with that
+ key exists, the method must do nothing.</p>
+
+ <p>The <code title=dom-Storage-setItem><a href=#dom-storage-setitem>setItem()</a></code> and <code title=dom-Storage-removeItem><a href=#dom-storage-removeitem>removeItem()</a></code> methods must be
+ atomic with respect to failure. In the case of failure, the method
+ does nothing. That is, changes to the data storage area must either
+ be successful, or the data storage area must not be changed at
+ all.</p>
+
+ <p>The <dfn id=dom-storage-clear title=dom-Storage-clear><code>clear()</code></dfn>
+ method must atomically cause the list associated with the object to
+ be emptied of all key/value pairs, if there are any. If there are
+ none, then the method must do nothing.</p>
+
+ <p class=note>When the <code title=dom-Storage-setItem><a href=#dom-storage-setitem>setItem()</a></code>, <code title=dom-Storage-removeItem><a href=#dom-storage-removeitem>removeItem()</a></code>, and <code title=dom-Storage-clear><a href=#dom-storage-clear>clear()</a></code> methods are invoked, events
+ are fired on other <code><a href=#document>Document</a></code> objects that can access the
+ newly stored or removed data, as defined in the sections on the
+ <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code> and <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attributes.</p> <!--
+ not normative, see the sections below for the normative statement
+ -->
+
+ <p class=note>This specification does not require that the above
+ methods wait until the data has been physically written to
+ disk. Only consistency in what different scripts accessing the same
+ underlying list of key/value pairs see is required.</p>
+
+
+ <h4 id=the-sessionstorage-attribute><span class=secno>12.2.2 </span>The <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code> attribute</h4>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=windowsessionstorage>WindowSessionStorage</dfn> {
+ readonly attribute <a href=#storage-0>Storage</a> <a href=#dom-sessionstorage title=dom-sessionStorage>sessionStorage</a>;
+};
+<a href=#window>Window</a> implements <a href=#windowsessionstorage>WindowSessionStorage</a>;</pre>
+
+ <p>The <dfn id=dom-sessionstorage title=dom-sessionStorage><code>sessionStorage</code></dfn>
+ attribute represents the set of storage areas specific to the
+ current <a href=#top-level-browsing-context>top-level browsing context</a>.</p>
+
+ <p>Each <a href=#top-level-browsing-context>top-level browsing context</a> has a unique set of
+ session storage areas, one for each <a href=#origin>origin</a>.</p>
+
+ <p>User agents should not expire data from a browsing context's
+ session storage areas, but may do so when the user requests that
+ such data be deleted, or when the UA detects that it has limited
+ storage space, or for security reasons. User agents should always
+ avoid deleting data while a script that could access that data is
+ running. When a top-level browsing context is destroyed (and
+ therefore permanently inaccessible to the user) the data stored in
+ its session storage areas can be discarded with it, as the API
+ described in this specification provides no way for that data to
+ ever be subsequently retrieved.</p>
+
+ <p class=note>The lifetime of a browsing context can be unrelated
+ to the lifetime of the actual user agent process itself, as the user
+ agent may support resuming sessions after a restart.</p>
+
+ <p>When a new <code><a href=#document>Document</a></code> is created in a <a href=#browsing-context>browsing
+ context</a> which has a <a href=#top-level-browsing-context>top-level browsing context</a>,
+ the user agent must check to see if that <a href=#top-level-browsing-context>top-level browsing
+ context</a> has a session storage area for that document's
+ <a href=#origin>origin</a>. If it does, then that is the
+ <code><a href=#document>Document</a></code>'s assigned session storage area. If it does
+ not, a new storage area for that document's <a href=#origin>origin</a> must
+ be created, and then <em>that</em> is the <code><a href=#document>Document</a></code>'s
+ assigned session storage area. A <code><a href=#document>Document</a></code>'s assigned
+ storage area does not change during the lifetime of a
+ <code><a href=#document>Document</a></code>, even in the case of a <a href=#nested-browsing-context>nested browsing
+ context</a> (e.g. in an <code><a href=#the-iframe-element>iframe</a></code>) being moved to
+ another <a href=#parent-browsing-context>parent browsing context</a>.</p>
+
+ <p>The <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code>
+ attribute must return a <code><a href=#storage-0>Storage</a></code> object associated with
+ the <code><a href=#document>Document</a></code>'s assigned session storage area, if any,
+ or null if there isn't one. Each <code><a href=#document>Document</a></code> object must
+ have a separate object for its <code><a href=#window>Window</a></code>'s <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code> attribute.</p>
+
+ <p>When a new <a href=#top-level-browsing-context>top-level browsing context</a> is created by
+ cloning an existing <a href=#browsing-context>browsing context</a>, the new browsing
+ context must start with the same session storage areas as the
+ original, but the two sets must from that point on be considered
+ separate, not affecting each other in any way.</p>
+
+ <p>When a new <a href=#top-level-browsing-context>top-level browsing context</a> is created by
+ a <a href=#concept-script title=concept-script>script</a> in an existing
+ <a href=#browsing-context>browsing context</a>, or by the user following a link in an
+ existing browsing context, or in some other way related to a
+ specific <code><a href=#document>Document</a></code>, then the session storage area of the
+ <a href=#origin>origin</a> of that <code><a href=#document>Document</a></code> must be copied
+ into the new browsing context when it is created. From that point
+ on, however, the two session storage areas must be considered
+ separate, not affecting each other in any way.</p>
+
+ <p id=sessionStorageEvent>When the <code title=dom-Storage-setItem><a href=#dom-storage-setitem>setItem()</a></code>, <code title=dom-Storage-removeItem><a href=#dom-storage-removeitem>removeItem()</a></code>, and <code title=dom-Storage-clear><a href=#dom-storage-clear>clear()</a></code> methods are called on a
+ <code><a href=#storage-0>Storage</a></code> object <var title="">x</var> that is associated
+ with a session storage area, if the methods did something, then in
+ every <code><a href=#document>Document</a></code> object whose <code><a href=#window>Window</a></code>
+ object's <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code>
+ attribute's <code><a href=#storage-0>Storage</a></code> object is associated with the same
+ storage area, other than <var title="">x</var>, a <code title=event-storage><a href=#event-storage>storage</a></code> event must be fired, as <a href=#event-storage title=event-storage>described below</a>.</p>
+
+
+ <h4 id=the-localstorage-attribute><span class=secno>12.2.3 </span>The <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute</h4>
+
+ <pre class=idl>[NoInterfaceObject]
+interface <dfn id=windowlocalstorage>WindowLocalStorage</dfn> {
+ readonly attribute <a href=#storage-0>Storage</a> <a href=#dom-localstorage title=dom-localStorage>localStorage</a>;
+};
+<a href=#window>Window</a> implements <a href=#windowlocalstorage>WindowLocalStorage</a>;</pre>
+
+ <p>The <dfn id=dom-localstorage title=dom-localStorage><code>localStorage</code></dfn>
+ object provides a <code><a href=#storage-0>Storage</a></code> object for an
+ <a href=#origin>origin</a>.</p>
+
+ <p>User agents must have a set of local storage areas, one for each
+ <a href=#origin>origin</a>.</p>
+
+ <p>User agents should expire data from the local storage areas only
+ for security reasons or when requested to do so by the user. User
+ agents should always avoid deleting data while a script that could
+ access that data is running.</p>
+
+ <p>When the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code>
+ attribute is accessed, the user agent must run the following steps,
+ which are known as the <dfn id=storage-object-initialization-steps><code>Storage</code> object
+ initialization steps</dfn>:</p> <!-- these steps are named because
+ marcos uses them from another spec -->
+
+ <ol><li><p>The user agent may throw a <code><a href=#securityerror>SecurityError</a></code>
+ exception instead of returning a <code><a href=#storage-0>Storage</a></code> object if the
+ request violates a policy decision (e.g. if the user agent is
+ configured to not allow the page to persist data).</li>
+
+ <li><p>If the <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a> is not a
+ scheme/host/port tuple, then throw a <code><a href=#securityerror>SecurityError</a></code>
+ exception and abort these steps.</li>
+
+ <li><p>Check to see if the user agent has allocated a local storage
+ area for the <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> of
+ the <code><a href=#window>Window</a></code> object on which the attribute was accessed.
+ If it has not, create a new storage area for that
+ <a href=#origin>origin</a>.</li>
+
+ <li><p>Return the <code><a href=#storage-0>Storage</a></code> object associated with that
+ origin's local storage area. Each <code><a href=#document>Document</a></code> object must
+ have a separate object for its <code><a href=#window>Window</a></code>'s <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute.</p>
+
+ </ol><p id=localStorageEvent>When the <code title=dom-Storage-setItem><a href=#dom-storage-setitem>setItem()</a></code>, <code title=dom-Storage-removeItem><a href=#dom-storage-removeitem>removeItem()</a></code>, and <code title=dom-Storage-clear><a href=#dom-storage-clear>clear()</a></code> methods are called on a
+ <code><a href=#storage-0>Storage</a></code> object <var title="">x</var> that is associated
+ with a local storage area, if the methods did something, then in
+ every <code><a href=#document>Document</a></code> object whose <code><a href=#window>Window</a></code>
+ object's <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code>
+ attribute's <code><a href=#storage-0>Storage</a></code> object is associated with the same
+ storage area, other than <var title="">x</var>, a <code title=event-storage><a href=#event-storage>storage</a></code> event must be fired, as <a href=#event-storage title=event-storage>described below</a>.</p>
+
+ <p id=localStorageMutex>Whenever the properties of a <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute's
+ <code><a href=#storage-0>Storage</a></code> object are to be examined, returned, set, or
+ deleted, whether as part of a direct property access, when checking
+ for the presence of a property, during property enumeration, when
+ determining the number of properties present, or as part of the
+ execution of any of the methods or attributes defined on the
+ <code><a href=#storage-0>Storage</a></code> interface, the user agent must first
+ <a href=#obtain-the-storage-mutex>obtain the storage mutex</a>.</p>
+
+
+ <h5 id=security-localStorage><span class=secno>12.2.3.1 </span>Security</h5>
+
+ <p>User agents must throw a <code><a href=#securityerror>SecurityError</a></code> exception
+ whenever any of the members of a <code><a href=#storage-0>Storage</a></code> object
+ originally returned by the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute are accessed
+ by scripts whose <a href=#effective-script-origin>effective script origin</a> is not the
+ <a href=#same-origin title="same origin">same</a> as the <a href=#origin>origin</a> of
+ the <code><a href=#document>Document</a></code> of the <code><a href=#window>Window</a></code> object on which
+ the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute was
+ accessed.</p>
+
+ <p class=note>This means <code><a href=#storage-0>Storage</a></code> objects are neutered
+ when the <code title=dom-document-domain><a href=#dom-document-domain>document.domain</a></code>
+ attribute is used.</p>
+
+
+
+ <h4 id=the-storage-event><span class=secno>12.2.4 </span>The <code title=event-storage><a href=#event-storage>storage</a></code> event</h4>
+
+ <p>The <dfn id=event-storage title=event-storage><code>storage</code></dfn> event
+ is fired when a storage area changes, as described in the previous
+ two sections (<a href=#sessionStorageEvent>for session
+ storage</a>, <a href=#localStorageEvent>for local
+ storage</a>).</p>
+
+ <p>When this happens, the user agent must <a href=#queue-a-task>queue a task</a>
+ to fire an event with the name <code><a href=#storage-0>storage</a></code>, which does not
+ bubble and is not cancelable, and which uses the
+ <code><a href=#storageevent>StorageEvent</a></code> interface, at each <code><a href=#window>Window</a></code>
+ object whose <code><a href=#document>Document</a></code> object has a <code><a href=#storage-0>Storage</a></code>
+ object that is affected.</p>
+
+ <p class=note>This includes <code><a href=#document>Document</a></code> objects that are
+ not <a href=#fully-active>fully active</a>, but events fired on those are ignored
+ by the <a href=#event-loop>event loop</a> until the <code><a href=#document>Document</a></code>
+ becomes <a href=#fully-active>fully active</a> again.</p>
+
+ <p>The <a href=#task-source>task source</a> for this task is the <a href=#dom-manipulation-task-source>DOM
+ manipulation task source</a>.</p>
+
+ <p>If the event is being fired due to an invocation of the <code title=dom-Storage-setItem><a href=#dom-storage-setitem>setItem()</a></code> or <code title=dom-Storage-removeItem><a href=#dom-storage-removeitem>removeItem()</a></code> methods, the
+ event must have its <code title=dom-StorageEvent-key><a href=#dom-storageevent-key>key</a></code>
+ attribute initialized to the name of the key in question, its <code title=dom-StorageEvent-oldValue><a href=#dom-storageevent-oldvalue>oldValue</a></code> attribute initialized to
+ the old value of the key in question, or null if the key is newly
+ added, and its <code title=dom-StorageEvent-newValue><a href=#dom-storageevent-newvalue>newValue</a></code> attribute initialized to
+ the new value of the key in question, or null if the key was
+ removed.</p>
+
+ <p>Otherwise, if the event is being fired due to an invocation of
+ the <code title=dom-Storage-clear><a href=#dom-storage-clear>clear()</a></code> method, the event
+ must have its <code title=dom-StorageEvent-key><a href=#dom-storageevent-key>key</a></code>, <code title=dom-StorageEvent-oldValue><a href=#dom-storageevent-oldvalue>oldValue</a></code>, and <code title=dom-StorageEvent-newValue><a href=#dom-storageevent-newvalue>newValue</a></code> attributes
+ initialized to null.</p>
+
+ <p>In addition, the event must have its <code title=dom-StorageEvent-url><a href=#dom-storageevent-url>url</a></code> attribute initialized to
+ <a href="#the-document's-address" title="the document's address">the address of the
+ document</a> whose <code><a href=#storage-0>Storage</a></code> object was affected; and
+ its <code title=dom-StorageEvent-storageArea><a href=#dom-storageevent-storagearea>storageArea</a></code>
+ attribute initialized to the <code><a href=#storage-0>Storage</a></code> object from the
+ <code><a href=#window>Window</a></code> object of the target <code><a href=#document>Document</a></code> that
+ represents the same kind of <code><a href=#storage-0>Storage</a></code> area as was
+ affected (i.e. session or local).</p>
+
+
+ <h5 id=event-definition-0><span class=secno>12.2.4.1 </span>Event definition</h5>
+
+ <pre class=idl>[Constructor(DOMString type, optional <a href=#storageeventinit>StorageEventInit</a> eventInitDict)]
+interface <dfn id=storageevent>StorageEvent</dfn> : <a href=#event>Event</a> {
+ readonly attribute DOMString <a href=#dom-storageevent-key title=dom-StorageEvent-key>key</a>;
+ readonly attribute DOMString? <a href=#dom-storageevent-oldvalue title=dom-StorageEvent-oldValue>oldValue</a>;
+ readonly attribute DOMString? <a href=#dom-storageevent-newvalue title=dom-StorageEvent-newValue>newValue</a>;
+ readonly attribute DOMString <a href=#dom-storageevent-url title=dom-StorageEvent-url>url</a>;
+ readonly attribute <a href=#storage-0>Storage</a>? <a href=#dom-storageevent-storagearea title=dom-StorageEvent-storageArea>storageArea</a>;
+};
+
+dictionary <dfn id=storageeventinit>StorageEventInit</dfn> : <a href=#eventinit>EventInit</a> {
+ DOMString key;
+ DOMString? oldValue;
+ DOMString? newValue;
+ DOMString url;
+ <a href=#storage-0>Storage</a>? storageArea;
+};</pre>
+
+ <p>The <dfn id=dom-storageevent-key title=dom-StorageEvent-key><code>key</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to the empty
+ string. It represents the key being changed.</p>
+
+ <p>The <dfn id=dom-storageevent-oldvalue title=dom-StorageEvent-oldValue><code>oldValue</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to null. It
+ represents the old value of the key being changed.</p>
+
+ <p>The <dfn id=dom-storageevent-newvalue title=dom-StorageEvent-newValue><code>newValue</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to null. It
+ represents the new value of the key being changed.</p>
+
+ <p>The <dfn id=dom-storageevent-url title=dom-StorageEvent-url><code>url</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to the empty
+ string. It represents the address of the document whose key
+ changed.</p>
+
+ <p>The <dfn id=dom-storageevent-storagearea title=dom-StorageEvent-storageArea><code>storageArea</code></dfn>
+ attribute must return the value it was initialized to. When the
+ object is created, this attribute must be initialized to null. It
+ represents the <code><a href=#storage-0>Storage</a></code> object that was affected.</p>
+
+
+
+ <h4 id=threads><span class=secno>12.2.5 </span>Threads</h4>
+
+ <p>Because of <a href=#localStorageMutex>the use</a> of the
+ <a href=#storage-mutex>storage mutex</a>, multiple browsing contexts will be able
+ to access the local storage areas simultaneously in such a manner
+ that scripts cannot detect any concurrent script execution.</p>
+
+ <p>Thus, the <code title=dom-Storage-length><a href=#dom-storage-length>length</a></code>
+ attribute of a <code><a href=#storage-0>Storage</a></code> object, and the value of the
+ various properties of that object, cannot change while a script is
+ executing, other than in a way that is predictable by the script
+ itself.</p>
+
+
+ <h3 id=disk-space-0><span class=secno>12.3 </span>Disk space</h3>
+
+ <p>User agents should limit the total amount of space allowed for
+ storage areas.</p>
+
+ <p>User agents should guard against sites storing data under the
+ origins other affiliated sites, e.g. storing up to the limit in
+ a1.example.com, a2.example.com, a3.example.com, etc, circumventing
+ the main example.com storage limit.</p>
+
+ <p>User agents may prompt the user when quotas are reached, allowing
+ the user to grant a site more space. This enables sites to store
+ many user-created documents on the user's computer, for
+ instance.</p>
+
+ <p>User agents should allow users to see how much space each domain
+ is using.</p>
+
+ <!--<p>If the storage area space limit is reached during a <code
+ title="dom-Storage-setItem">setItem()</code> call, the method will
+ throw an exception.</p>-->
+
+ <p>A mostly arbitrary limit of five megabytes per
+ <a href=#origin>origin</a> is recommended. Implementation feedback is
+ welcome and will be used to update this suggestion in the
+ future.</p>
+
+
+ <h3 id=privacy><span class=secno>12.4 </span>Privacy</h3>
+
+ <h4 id=user-tracking><span class=secno>12.4.1 </span>User tracking</h4>
+
+ <p>A third-party advertiser (or any entity capable of getting
+ content distributed to multiple sites) could use a unique identifier
+ stored in its local storage area to track a user across multiple
+ sessions, building a profile of the user's interests to allow for
+ highly targeted advertising. In conjunction with a site that is
+ aware of the user's real identity (for example an e-commerce site
+ that requires authenticated credentials), this could allow
+ oppressive groups to target individuals with greater accuracy than
+ in a world with purely anonymous Web usage.</p>
+
+ <p>There are a number of techniques that can be used to mitigate the
+ risk of user tracking:</p>
+
+ <dl><dt>Blocking third-party storage</dt>
+ <dd>
+
+ <p>User agents may restrict access to the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> objects to scripts
+ originating at the domain of the top-level document of the
+ <a href=#browsing-context>browsing context</a>, for instance denying access to the
+ API for pages from other domains running in
+ <code><a href=#the-iframe-element>iframe</a></code>s.</p>
+
+ </dd>
+
+ <dt>Expiring stored data</dt>
+ <dd>
+
+ <p>User agents may, if so configured by the user, automatically
+ delete stored data after a period of time.</p>
+
+ <p>For example, a user agent could be configured to treat
+ third-party local storage areas as session-only storage, deleting
+ the data once the user had closed all the <a href=#browsing-context title="browsing
+ context">browsing contexts</a> that could access it.</p>
+
+ <p>This can restrict the ability of a site to track a user, as the
+ site would then only be able to track the user across multiple
+ sessions when he authenticates with the site itself (e.g. by
+ making a purchase or logging in to a service).</p>
+
+ <p>However, this also reduces the usefulness of the API as a
+ long-term storage mechanism. It can also put the user's data at
+ risk, if the user does not fully understand the implications of
+ data expiration.</p>
+
+ <!--v2 consider adding an explicit way for sites to state when
+ data should expire, as in localStorage.expireData(365); -->
+
+ </dd>
+
+ <dt>Treating persistent storage as cookies</dt>
+ <dd>
+
+ <p>If users attempt to protect their privacy by clearing cookies
+ without also clearing data stored in the local storage area, sites
+ can defeat those attempts by using the two features as redundant
+ backup for each other. User agents should present the interfaces
+ for clearing these in a way that helps users to understand this
+ possibility and enables them to delete data in all persistent
+ storage features simultaneously. <a href=#refsCOOKIES>[COOKIES]</a></p>
+
+ </dd>
+
+ <dt>Site-specific white-listing of access to local storage
+ areas</dt>
+ <dd>
+
+ <p>User agents may allow sites to access session storage areas in
+ an unrestricted manner, but require the user to authorize access
+ to local storage areas.</p>
+
+ </dd>
+
+ <dt>Origin-tracking of stored data</dt>
+ <dd>
+
+ <p>User agents may record the <a href=#origin title=origin>origins</a>
+ of sites that contained content from third-party origins that
+ caused data to be stored.</p>
+
+ <p>If this information is then used to present the view of data
+ currently in persistent storage, it would allow the user to make
+ informed decisions about which parts of the persistent storage to
+ prune. Combined with a blacklist ("delete this data and prevent
+ this domain from ever storing data again"), the user can restrict
+ the use of persistent storage to sites that he trusts.</p>
+
+ </dd>
+
+ <dt>Shared blacklists</dt>
+ <dd>
+
+ <p>User agents may allow users to share their persistent storage
+ domain blacklists.</p>
+
+ <p>This would allow communities to act together to protect their
+ privacy.</p>
+
+ </dd>
+
+ </dl><p>While these suggestions prevent trivial use of this API for user
+ tracking, they do not block it altogether. Within a single domain, a
+ site can continue to track the user during a session, and can then
+ pass all this information to the third party along with any
+ identifying information (names, credit card numbers, addresses)
+ obtained by the site. If a third party cooperates with multiple
+ sites to obtain such information, a profile can still be
+ created.</p>
+
+ <p>However, user tracking is to some extent possible even with no
+ cooperation from the user agent whatsoever, for instance by using
+ session identifiers in URLs, a technique already commonly used for
+ innocuous purposes but easily repurposed for user tracking (even
+ retroactively). This information can then be shared with other
+ sites, using using visitors' IP addresses and other user-specific
+ data (e.g. user-agent headers and configuration settings) to combine
+ separate sessions into coherent user profiles.</p>
+
+
+ <h4 id=sensitivity-of-data><span class=secno>12.4.2 </span>Sensitivity of data</h4>
+
+ <p>User agents should treat persistently stored data as potentially
+ sensitive; it's quite possible for e-mails, calendar appointments,
+ health records, or other confidential documents to be stored in this
+ mechanism.</p>
+
+ <p>To this end, user agents should ensure that when deleting data,
+ it is promptly deleted from the underlying storage.</p>
+
+
+ <h3 id=security-storage><span class=secno>12.5 </span>Security</h3>
+
+ <h4 id=dns-spoofing-attacks><span class=secno>12.5.1 </span>DNS spoofing attacks</h4>
+
+ <p>Because of the potential for DNS spoofing attacks, one cannot
+ guarantee that a host claiming to be in a certain domain really is
+ from that domain. To mitigate this, pages can use TLS. Pages using
+ TLS can be sure that only the user, software working on behalf of
+ the user, and other pages using TLS that have certificates
+ identifying them as being from the same domain, can access their
+ storage areas.</p>
+
+
+ <h4 id=cross-directory-attacks><span class=secno>12.5.2 </span>Cross-directory attacks</h4>
+
+ <p>Different authors sharing one host name, for example users
+ hosting content on <code>geocities.com</code>, all share one local
+ storage object. There is no feature to restrict the access by
+ pathname. Authors on shared hosts are therefore recommended to avoid
+ using these features, as it would be trivial for other authors to
+ read the data and overwrite it.</p>
+
+ <p class=note>Even if a path-restriction feature was made
+ available, the usual DOM scripting security model would make it
+ trivial to bypass this protection and access the data from any
+ path.</p>
+
+
+ <h4 id=implementation-risks><span class=secno>12.5.3 </span>Implementation risks</h4>
+
+ <p>The two primary risks when implementing these persistent storage
+ features are letting hostile sites read information from other
+ domains, and letting hostile sites write information that is then
+ read from other domains.</p>
+
+ <p>Letting third-party sites read data that is not supposed to be
+ read from their domain causes <em>information leakage</em>, For
+ example, a user's shopping wishlist on one domain could be used by
+ another domain for targeted advertising; or a user's
+ work-in-progress confidential documents stored by a word-processing
+ site could be examined by the site of a competing company.</p>
+
+ <p>Letting third-party sites write data to the persistent storage of
+ other domains can result in <em>information spoofing</em>, which is
+ equally dangerous. For example, a hostile site could add items to a
+ user's wishlist; or a hostile site could set a user's session
+ identifier to a known ID that the hostile site can then use to track
+ the user's actions on the victim site.</p>
+
+ <p>Thus, strictly following the <a href=#origin>origin</a> model described
+ in this specification is important for user security.</p>
+
+
+
+ </div><!--data-component-->
+
+
+
+
+
+ <h2 id=syntax><span class=secno>13 </span><dfn>The HTML syntax</dfn></h2>
+
+ <p class=note>This section only describes the rules for resources
+ labeled with an <a href=#html-mime-type>HTML MIME type</a>. Rules for XML resources
+ are discussed in the section below entitled "<a href=#the-xhtml-syntax>The XHTML
+ syntax</a>".</p>
+
+
+ <h3 id=writing><span class=secno>13.1 </span>Writing HTML documents</h3>
+
+ <div class=impl>
+
+ <p><i>This section only applies to documents, authoring tools, and
+ markup generators. In particular, it does not apply to conformance
+ checkers; conformance checkers must use the requirements given in
+ the next section ("parsing HTML documents").</i></p>
+
+ </div>
+
+ <p>Documents must consist of the following parts, in the given
+ order:</p>
+
+ <ol><li>Optionally, a single U+FEFF BYTE ORDER MARK (BOM) character.</li>
+
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
+ <a href=#space-character title="space character">space characters</a>.</li>
+
+ <li>A <a href=#syntax-doctype title=syntax-doctype>DOCTYPE</a>.
+
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
+ <a href=#space-character title="space character">space characters</a>.</li>
+
+ <li>The root element, in the form of an <code><a href=#the-html-element>html</a></code> <a href=#syntax-elements title=syntax-elements>element</a>.</li>
+
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
+ <a href=#space-character title="space character">space characters</a>.</li>
+
+ </ol><p>The various types of content mentioned above are described in the
+ next few sections.</p>
+
+ <p>In addition, there are some restrictions on how <a href=#character-encoding-declaration title="character encoding declaration">character encoding
+ declarations</a> are to be serialized, as discussed in the
+ section on that topic.</p>
+
+ <div class=note>
+
+ <p>Space characters before the root <code><a href=#the-html-element>html</a></code> element, and
+ space characters at the start of the <code><a href=#the-html-element>html</a></code> element and
+ before the <code><a href=#the-head-element>head</a></code> element, will be dropped when the
+ document is parsed; space characters <em>after</em> the root
+ <code><a href=#the-html-element>html</a></code> element will be parsed as if they were at the end
+ of the <code><a href=#the-body-element>body</a></code> element. Thus, space characters around the
+ root element do not round-trip.</p>
+
+ <p>It is suggested that newlines be inserted after the DOCTYPE,
+ after any comments that are before the root element, after the
+ <code><a href=#the-html-element>html</a></code> element's start tag (if it is not <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a>), and after any comments
+ that are inside the <code><a href=#the-html-element>html</a></code> element but before the
+ <code><a href=#the-head-element>head</a></code> element.</p>
+
+ </div>
+
+ <p>Many strings in the HTML syntax (e.g. the names of elements and
+ their attributes) are case-insensitive, but only for characters in
+ the ranges U+0041 to U+005A (LATIN CAPITAL LETTER A to LATIN CAPITAL
+ LETTER Z) and U+0061 to U+007A (LATIN SMALL LETTER A to LATIN SMALL
+ LETTER Z). For convenience, in this section this is just referred to
+ as "case-insensitive".</p>
+
+
+ <h4 id=the-doctype><span class=secno>13.1.1 </span>The DOCTYPE</h4>
+
+ <p>A <dfn id=syntax-doctype title=syntax-doctype>DOCTYPE</dfn> is a <!-- mostly
+ useless but nonetheless --> required preamble.</p>
+
+ <p class=note>DOCTYPEs are required for legacy reasons. When
+ omitted, browsers tend to use a different rendering mode that is
+ incompatible with some specifications. Including the DOCTYPE in a
+ document ensures that the browser makes a best-effort attempt at
+ following the relevant specifications.</p>
+
+ <p>A DOCTYPE must consist of the following components, in this
+ order:</p>
+
+ <ol class=brief><li>A string that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">&lt;!DOCTYPE</code>".</li>
+ <li>One or more <a href=#space-character title="space character">space characters</a>.</li>
+ <li>A string that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">html</code>".</li>
+ <li>Optionally, a <a href=#doctype-legacy-string>DOCTYPE legacy string</a> or an <a href=#obsolete-permitted-doctype-string>obsolete permitted DOCTYPE string</a> (defined below).</li>
+ <li>Zero or more <a href=#space-character title="space character">space characters</a>.</li>
+ <li>A U+003E GREATER-THAN SIGN character (&gt;).</li>
+ </ol><p class=note>In other words, <code>&lt;!DOCTYPE html&gt;</code>,
+ case-insensitively.</p>
+
+ <hr><p>For the purposes of HTML generators that cannot output HTML
+ markup with the short DOCTYPE "<code title="">&lt;!DOCTYPE
+ html&gt;</code>", a <dfn id=doctype-legacy-string>DOCTYPE legacy string</dfn> may be inserted
+ into the DOCTYPE (in the position defined above). This string must
+ consist of:</p>
+
+ <ol class=brief><li>One or more <a href=#space-character title="space character">space characters</a>.</li>
+ <li>A string that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">SYSTEM</code>".</li>
+ <li>One or more <a href=#space-character title="space character">space characters</a>.</li>
+ <li>A U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (the <i>quote mark</i>).</li>
+ <li>The literal string "<code><a href=#about:legacy-compat>about:legacy-compat</a></code>".</li>
+ <li>A matching U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (i.e. the same character as in the earlier step labeled <i>quote mark</i>).</li>
+ </ol><p class=note>In other words, <code>&lt;!DOCTYPE html SYSTEM
+ "about:legacy-compat"&gt;</code> or <code>&lt;!DOCTYPE html SYSTEM
+ 'about:legacy-compat'&gt;</code>, case-insensitively except for the
+ part in single or double quotes.</p>
+
+ <p>The <a href=#doctype-legacy-string>DOCTYPE legacy string</a> should not be used unless
+ the document is generated from a system that cannot output the
+ shorter string.</p>
+
+ <hr><!-- see the parser section before changing this bit --><p>To help authors transition from HTML4 and XHTML1, an
+ <dfn id=obsolete-permitted-doctype-string>obsolete permitted DOCTYPE string</dfn> can be inserted into
+ the DOCTYPE (in the position defined above). This string must
+ consist of:</p>
+
+ <ol class=brief><li>One or more <a href=#space-character title="space character">space characters</a>.</li>
+ <li>A string that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">PUBLIC</code>".</li>
+ <li>One or more <a href=#space-character title="space character">space characters</a>.</li>
+ <li>A U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (the <i>first quote mark</i>).</li>
+ <li>The string from one of the cells in the first column of the table below. The row to which this cell belongs is the <i>selected row</i>.</li>
+ <li>A matching U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (i.e. the same character as in the earlier step labeled <i>first quote mark</i>).</li>
+ <li>If the cell in the second column of the <i>selected row</i> is not blank, one or more <a href=#space-character title="space character">space characters</a>.</li>
+ <li>If the cell in the second column of the <i>selected row</i> is not blank, a U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (the <i>third quote mark</i>).</li>
+ <li>If the cell in the second column of the <i>selected row</i> is not blank, the string from the cell in the second column of the <i>selected row</i>.</li>
+ <li>If the cell in the second column of the <i>selected row</i> is not blank, a matching U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (i.e. the same character as in the earlier step labeled <i>third quote mark</i>).</li>
+ </ol><table><caption>
+ Allowed values for public and system identifiers in an <a href=#obsolete-permitted-doctype-string>obsolete permitted DOCTYPE string</a>.
+ </caption>
+ <thead><tr><th> Public identifier
+ <th> System identifier
+ <tbody><tr><td> <code title="">-//W3C//DTD&nbsp;HTML&nbsp;4.0//EN</code>
+ <td>
+ <tr><td> <code title="">-//W3C//DTD&nbsp;HTML&nbsp;4.0//EN</code>
+ <td> <code title="">http://www.w3.org/TR/REC-html40/strict.dtd</code>
+ <tr><td> <code title="">-//W3C//DTD&nbsp;HTML&nbsp;4.01//EN</code>
+ <td>
+ <tr><td> <code title="">-//W3C//DTD&nbsp;HTML&nbsp;4.01//EN</code>
+ <td> <code title="">http://www.w3.org/TR/html4/strict.dtd</code>
+ <tr><td> <code title="">-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Strict//EN</code>
+ <td> <code title="">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</code>
+ <tr><td> <code title="">-//W3C//DTD&nbsp;XHTML&nbsp;1.1//EN</code>
+ <td> <code title="">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</code>
+ </table><p>A <a href=#syntax-doctype title=syntax-doctype>DOCTYPE</a> containing an
+ <a href=#obsolete-permitted-doctype-string>obsolete permitted DOCTYPE string</a> is an <dfn id=obsolete-permitted-doctype>obsolete
+ permitted DOCTYPE</dfn>. Authors should not use <a href=#obsolete-permitted-doctype title="obsolete permitted DOCTYPE">obsolete permitted
+ DOCTYPEs</a>, as they are unnecessarily long.</p>
+
+
+
+
+ <h4 id=elements-0><span class=secno>13.1.2 </span>Elements</h4>
+
+ <p>There are five different kinds of <dfn id=syntax-elements title=syntax-elements>elements</dfn>: <a href=#void-elements>void elements</a>,
+ <a href=#raw-text-elements>raw text elements</a>, <a href=#rcdata-elements>RCDATA elements</a>,
+ <a href=#foreign-elements>foreign elements</a>, and <a href=#normal-elements>normal elements</a>.</p>
+
+ <dl><dt><dfn id=void-elements>Void elements</dfn></dt>
+
+ <dd><code><a href=#the-area-element>area</a></code>, <code><a href=#the-base-element>base</a></code>, <code><a href=#the-br-element>br</a></code>,
+ <code><a href=#the-col-element>col</a></code>, <code><a href=#the-command-element>command</a></code>, <code><a href=#the-embed-element>embed</a></code>,
+ <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-img-element>img</a></code>, <code><a href=#the-input-element>input</a></code>,
+ <code><a href=#the-keygen-element>keygen</a></code>, <code><a href=#the-link-element>link</a></code>, <code><a href=#the-meta-element>meta</a></code>,
+ <code><a href=#the-param-element>param</a></code>, <code><a href=#the-source-element>source</a></code>, <code><a href=#the-track-element>track</a></code>,
+ <code><a href=#the-wbr-element>wbr</a></code></dd>
+ <!-- see also other places that say VOIDLIST -->
+
+ <dt><dfn id=raw-text-elements>Raw text elements</dfn></dt>
+
+ <dd><code><a href=#the-script-element>script</a></code>, <code><a href=#the-style-element>style</a></code></dd> <!-- iframe and
+ noscript don't count as raw text for syntax purposes -->
+
+ <dt><dfn id=rcdata-elements>RCDATA elements</dfn></dt>
+
+ <dd><code><a href=#the-textarea-element>textarea</a></code>, <code><a href=#the-title-element>title</a></code></dd>
+
+ <dt><dfn id=foreign-elements>Foreign elements</dfn></dt>
+
+ <dd>Elements from the <a href=#mathml-namespace>MathML namespace</a>
+ and the <a href=#svg-namespace>SVG namespace</a>.</dd>
+
+ <dt><dfn id=normal-elements>Normal elements</dfn></dt>
+
+ <dd>All other allowed <a href=#html-elements>HTML elements</a> are normal
+ elements.</dd>
+
+ </dl><p><dfn id=syntax-tags title=syntax-tags>Tags</dfn> are used to delimit the start
+ and end of elements in the markup. <a href=#raw-text-elements title="raw text
+ elements">Raw text</a>, <a href=#rcdata-elements title="RCDATA
+ elements">RCDATA</a>, and <a href=#normal-elements title="normal
+ elements">normal</a> elements have a <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> to indicate where they
+ begin, and an <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> to
+ indicate where they end. The start and end tags of certain
+ <a href=#normal-elements>normal elements</a> can be <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a>, as described
+ later. Those that cannot be omitted must not be omitted. <a href=#void-elements>Void
+ elements</a> only have a start tag; end tags must not be
+ specified for <a href=#void-elements>void elements</a>. <a href=#foreign-elements>Foreign
+ elements</a> must either have a start tag and an end tag, or a
+ start tag that is marked as self-closing, in which case they must
+ not have an end tag.</p>
+
+ <p>The contents of the element must be placed between just after the
+ start tag (which <a href=#syntax-tag-omission title=syntax-tag-omission>might be implied,
+ in certain cases</a>) and just before the end tag (which again,
+ <a href=#syntax-tag-omission title=syntax-tag-omission>might be implied in certain
+ cases</a>). The exact allowed contents of each individual element
+ depend on the content model of that element, as described earlier in
+ this specification. Elements must not contain content that their
+ content model disallows. In addition to the restrictions placed on
+ the contents by those content models, however, the five types of
+ elements have additional <em>syntactic</em> requirements.</p>
+
+ <p><a href=#void-elements>Void elements</a> can't have any contents (since there's
+ no end tag, no content can be put between the start tag and the end
+ tag).</p>
+
+ <p><a href=#raw-text-elements>Raw text elements</a> can have <a href=#syntax-text title=syntax-text>text</a>, though it has <a href=#cdata-rcdata-restrictions>restrictions</a> described
+ below.</p>
+
+ <p><a href=#rcdata-elements>RCDATA elements</a> can have <a href=#syntax-text title=syntax-text>text</a> and <a href=#syntax-charref title=syntax-charref>character references</a>, but the text
+ must not contain an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.
+ There are also <a href=#cdata-rcdata-restrictions>further
+ restrictions</a> described below.</p>
+
+ <p><a href=#foreign-elements>Foreign elements</a> whose start tag is marked as
+ self-closing can't have any contents (since, again, as there's no
+ end tag, no content can be put between the start tag and the end
+ tag). <a href=#foreign-elements>Foreign elements</a> whose start tag is <em>not</em>
+ marked as self-closing can have <a href=#syntax-text title=syntax-text>text</a>, <a href=#syntax-charref title=syntax-charref>character references</a>, <a href=#syntax-cdata title=syntax-cdata>CDATA sections</a>, other <a href=#syntax-elements title=syntax-elements>elements</a>, and <a href=#syntax-comments title=syntax-comments>comments</a>, but the text must not
+ contain the character U+003C LESS-THAN SIGN (&lt;) or an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.</p>
+
+ <div class=note>
+
+ <p>The HTML syntax does not support namespace
+ declarations, even in <a href=#foreign-elements>foreign elements</a>.</p>
+
+ <p>For instance, consider the following HTML fragment:</p>
+
+ <pre>&lt;p&gt;
+ &lt;svg&gt;
+ &lt;metadata&gt;
+ &lt;!-- this is invalid --&gt;
+ &lt;cdr:license xmlns:cdr="http://www.example.com/cdr/metadata" name="MIT"/&gt;
+ &lt;/metadata&gt;
+ &lt;/svg&gt;
+&lt;/p&gt;</pre>
+
+ <p>The innermost element, <code title="">cdr:license</code>, is
+ actually in the SVG namespace, as the "<code title="">xmlns:cdr</code>" attribute has no effect (unlike in
+ XML). In fact, as the comment in the fragment above says, the
+ fragment is actually non-conforming. This is because the SVG
+ specification does not define any elements called "<code title="">cdr:license</code>" in the SVG namespace.</p>
+
+ </div>
+
+ <p><a href=#normal-elements>Normal elements</a> can have <a href=#syntax-text title=syntax-text>text</a>, <a href=#syntax-charref title=syntax-charref>character references</a>, other <a href=#syntax-elements title=syntax-elements>elements</a>, and <a href=#syntax-comments title=syntax-comments>comments</a>, but the text must not
+ contain the character U+003C LESS-THAN SIGN (&lt;) or an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>. Some
+ <a href=#normal-elements>normal elements</a> also have <a href=#element-restrictions>yet more restrictions</a> on what
+ content they are allowed to hold, beyond the restrictions imposed by
+ the content model and those described in this paragraph. Those
+ restrictions are described below.</p>
+
+ <p>Tags contain a <dfn id=syntax-tag-name title=syntax-tag-name>tag name</dfn>,
+ giving the element's name. HTML elements all have names that only
+ use characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
+ NINE (9), U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
+ Z, and U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER
+ Z. In the HTML syntax, tag names, even those for <a href=#foreign-elements>foreign
+ elements</a>, may be written with any mix of lower- and uppercase
+ letters that, when converted to all-lowercase, matches the element's
+ tag name; tag names are case-insensitive.</p>
+
+
+ <h5 id=start-tags><span class=secno>13.1.2.1 </span>Start tags</h5>
+
+ <p><dfn id=syntax-start-tag title=syntax-start-tag>Start tags</dfn> must have the
+ following format:</p>
+
+ <ol><li>The first character of a start tag must be a U+003C LESS-THAN
+ SIGN character (&lt;).</li>
+
+ <li>The next few characters of a start tag must be the element's
+ <a href=#syntax-tag-name title=syntax-tag-name>tag name</a>.</li>
+
+ <li>If there are to be any attributes in the next step, there must
+ first be one or more <a href=#space-character title="space character">space
+ characters</a>.</li>
+
+ <li>Then, the start tag may have a number of attributes, the <a href=#syntax-attributes title=syntax-attributes>syntax for which</a> is described
+ below. Attributes must be separated from each other by one or more
+ <a href=#space-character title="space character">space characters</a>.</li>
+
+ <li>After the attributes, or after the <a href=#syntax-tag-name title=syntax-tag-name>tag name</a> if there are no attributes,
+ there may be one or more <a href=#space-character title="space character">space
+ characters</a>. (Some attributes are required to be followed by
+ a space. See the <a href=#syntax-attributes title=syntax-attributes>attributes
+ section</a> below.)</li>
+
+ <li>Then, if the element is one of the <a href=#void-elements>void elements</a>,
+ or if the element is a <a href=#foreign-elements title="foreign elements">foreign
+ element</a>, then there may be a single U+002F SOLIDUS character
+ (/). This character has no effect on <a href=#void-elements>void elements</a>,
+ but on <a href=#foreign-elements>foreign elements</a> it marks the start tag as
+ self-closing.</li>
+
+ <li>Finally, start tags must be closed by a U+003E GREATER-THAN
+ SIGN character (&gt;).</li>
+
+ </ol><h5 id=end-tags><span class=secno>13.1.2.2 </span>End tags</h5>
+
+ <p><dfn id=syntax-end-tag title=syntax-end-tag>End tags</dfn> must have the
+ following format:</p>
+
+ <ol><li>The first character of an end tag must be a U+003C LESS-THAN
+ SIGN character (&lt;).</li>
+
+ <li>The second character of an end tag must be a U+002F SOLIDUS
+ character (/).</li>
+
+ <li>The next few characters of an end tag must be the element's
+ <a href=#syntax-tag-name title=syntax-tag-name>tag name</a>.</li>
+
+ <li>After the tag name, there may be one or more <a href=#space-character title="space
+ character">space characters</a>.</li>
+
+ <li>Finally, end tags must be closed by a U+003E GREATER-THAN SIGN
+ character (&gt;).</li>
+
+ </ol><h5 id=attributes-0><span class=secno>13.1.2.3 </span>Attributes</h5>
+
+ <p><dfn id=syntax-attributes title=syntax-attributes>Attributes</dfn> for an element
+ are expressed inside the element's start tag.</p>
+
+ <p>Attributes have a name and a value. <dfn id=syntax-attribute-name title=syntax-attribute-name>Attribute names</dfn> must consist of
+ one or more characters other than the <a href=#space-character title="space
+ character">space characters</a>, U+0000 NULL, U+0022 QUOTATION
+ MARK ("), U+0027 APOSTROPHE ('), U+003E GREATER-THAN SIGN
+ (&gt;), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters,
+ the control characters, and any characters that are not defined by
+ Unicode. In the HTML syntax, attribute names, even those for
+ <a href=#foreign-elements>foreign elements</a>, may be written with any mix of lower-
+ and uppercase letters that are an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the attribute's name.</p>
+
+ <p><dfn id=syntax-attribute-value title=syntax-attribute-value>Attribute values</dfn> are a
+ mixture of <a href=#syntax-text title=syntax-text>text</a> and <a href=#syntax-charref title=syntax-charref>character references</a>, except with the
+ additional restriction that the text cannot contain an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.</p>
+
+ <p>Attributes can be specified in four different ways:</p>
+
+ <dl><dt>Empty attribute syntax</dt>
+
+ <dd>
+
+ <p>Just the <a href=#syntax-attribute-name title=syntax-attribute-name>attribute
+ name</a>. The value is implicitly the empty string.</p>
+
+ <div class=example>
+
+ <p>In the following example, the <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is given with
+ the empty attribute syntax:</p>
+
+ <pre>&lt;input <em>disabled</em>&gt;</pre>
+
+ </div>
+
+ <p>If an attribute using the empty attribute syntax is to be
+ followed by another attribute, then there must be a <a href=#space-character>space
+ character</a> separating the two.</p>
+
+ </dd>
+
+ <dt id=unquoted>Unquoted attribute value syntax</dt>
+
+ <dd>
+
+ <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>,
+ followed by zero or more <a href=#space-character title="space character">space
+ characters</a>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <a href=#space-character title="space
+ character">space characters</a>, followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in
+ addition to the requirements given above for attribute values,
+ must not contain any literal <a href=#space-character title="space character">space
+ characters</a>, any U+0022 QUOTATION MARK characters ("),
+ U+0027 APOSTROPHE characters ('), U+003D EQUALS SIGN
+ characters (=), U+003C LESS-THAN SIGN characters (&lt;), U+003E
+ GREATER-THAN SIGN characters (&gt;), or U+0060 GRAVE ACCENT
+ characters (`), and must not be the empty string.</p>
+
+ <!-- The ` character is in this list on a temporary basis, waiting
+ for IE to fix its parsing bug whereby it treats ` as an
+ attribute value delimiter. Otherwise, escaping software that
+ tries to be clever and not use quotes when it doesn't need to
+ could be tricked by an attacker.
+
+ Posit a site that allows the user to input text that is used
+ verbatim in two attributes, such that the user can set the
+ first attribute's value to:
+
+ `
+
+ ...and the second to:
+
+ ` onload='...payload...' end=x
+
+ ...with the assumption that the site is going to not quote
+ the first one, and quote the second one with double quotes:
+
+ <body title=` class="` onload='...payload...' end=x">
+
+ In IE, this is treated as:
+
+ <body title=' class="'
+ onload='...payload...'
+ end='x"'>
+
+ -->
+
+
+ <div class=example>
+
+ <p>In the following example, the <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute is given
+ with the unquoted attribute value syntax:</p>
+
+ <pre>&lt;input <em>value=yes</em>&gt;</pre>
+
+ </div>
+
+ <p>If an attribute using the unquoted attribute syntax is to be
+ followed by another attribute or by the optional U+002F SOLIDUS
+ character (/) allowed in step 6 of the <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> syntax above, then there
+ must be a <a href=#space-character>space character</a> separating the two.</p>
+
+ </dd>
+
+ <dt>Single-quoted attribute value syntax</dt>
+
+ <dd>
+
+ <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>,
+ followed by zero or more <a href=#space-character title="space character">space
+ characters</a>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <a href=#space-character title="space
+ character">space characters</a>, followed by a single U+0027
+ APOSTROPHE character ('), followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in
+ addition to the requirements given above for attribute values,
+ must not contain any literal U+0027 APOSTROPHE characters ('), and
+ finally followed by a second single U+0027 APOSTROPHE character
+ (').</p>
+
+ <div class=example>
+
+ <p>In the following example, the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is given with the
+ single-quoted attribute value syntax:</p>
+
+ <pre>&lt;input <em>type='checkbox'</em>&gt;</pre>
+
+ </div>
+
+ <p>If an attribute using the single-quoted attribute syntax is to
+ be followed by another attribute, then there must be a <a href=#space-character>space
+ character</a> separating the two.</p>
+
+ </dd>
+
+ <dt>Double-quoted attribute value syntax</dt>
+
+ <dd>
+
+ <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>,
+ followed by zero or more <a href=#space-character title="space character">space
+ characters</a>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <a href=#space-character title="space
+ character">space characters</a>, followed by a single U+0022
+ QUOTATION MARK character ("), followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in
+ addition to the requirements given above for attribute values,
+ must not contain any literal U+0022 QUOTATION MARK characters ("),
+ and finally followed by a second single U+0022 QUOTATION MARK
+ character (").</p>
+
+ <div class=example>
+
+ <p>In the following example, the <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute is given with the
+ double-quoted attribute value syntax:</p>
+
+ <pre>&lt;input <em>name="be evil"</em>&gt;</pre>
+
+ </div>
+
+ <p>If an attribute using the double-quoted attribute syntax is to
+ be followed by another attribute, then there must be a <a href=#space-character>space
+ character</a> separating the two.</p>
+
+ </dd>
+
+ </dl><p>There must never be two or more attributes on the same start tag
+ whose names are an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for
+ each other.</p>
+
+ <hr><p>When a <a href=#foreign-elements title="foreign elements">foreign element</a> has
+ one of the namespaced attributes given by the local name and
+ namespace of the first and second cells of a row from the following
+ table, it must be written using the name given by the third cell
+ from the same row.</p>
+
+ <table><thead><tr><th> Local name <th> Namespace <th> Attribute name
+ <tbody><tr><td> <code title="">actuate</code> <td> <a href=#xlink-namespace>XLink namespace</a> <td> <code title="">xlink:actuate</code>
+ <tr><td> <code title="">arcrole</code> <td> <a href=#xlink-namespace>XLink namespace</a> <td> <code title="">xlink:arcrole</code>
+ <tr><td> <code title="">href</code> <td> <a href=#xlink-namespace>XLink namespace</a> <td> <code title="">xlink:href</code>
+ <tr><td> <code title="">role</code> <td> <a href=#xlink-namespace>XLink namespace</a> <td> <code title="">xlink:role</code>
+ <tr><td> <code title="">show</code> <td> <a href=#xlink-namespace>XLink namespace</a> <td> <code title="">xlink:show</code>
+ <tr><td> <code title="">title</code> <td> <a href=#xlink-namespace>XLink namespace</a> <td> <code title="">xlink:title</code>
+ <tr><td> <code title="">type</code> <td> <a href=#xlink-namespace>XLink namespace</a> <td> <code title="">xlink:type</code>
+ <tr><td> <code title="">base</code> <td> <a href=#xml-namespace>XML namespace</a> <!-- attr-xml-base --> <td> <code title="">xml:base</code>
+ <tr><td> <code title="">lang</code> <td> <a href=#xml-namespace>XML namespace</a> <td> <code title="">xml:lang</code>
+ <tr><td> <code title="">space</code> <td> <a href=#xml-namespace>XML namespace</a> <td> <code title="">xml:space</code>
+ <tr><td> <code title="">xmlns</code> <td> <a href=#xmlns-namespace>XMLNS namespace</a> <td> <code title="">xmlns</code>
+ <tr><td> <code title="">xlink</code> <td> <a href=#xmlns-namespace>XMLNS namespace</a> <td> <code title="">xmlns:xlink</code>
+ </table><p>No other namespaced attribute can be expressed in <a href=#syntax>the
+ HTML syntax</a>.</p>
+
+
+ <h5 id=optional-tags><span class=secno>13.1.2.4 </span>Optional tags</h5>
+
+ <p>Certain tags can be <dfn id=syntax-tag-omission title=syntax-tag-omission>omitted</dfn>.</p>
+
+ <p class=note>Omitting an element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> in the situations
+ described below does not mean the element is not present; it is
+ implied, but it is still there. For example, an HTML document always
+ has a root <code><a href=#the-html-element>html</a></code> element, even if the string <code title="">&lt;html&gt;</code> doesn't appear anywhere in the markup.</p>
+
+ <!-- <html> -->
+ <p>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
+ first thing inside the <code><a href=#the-html-element>html</a></code> element is not a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+
+ <!-- </html> -->
+ <p>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-html-element>html</a></code> element is not
+ immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+
+ <!-- <head> -->
+ <p>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
+ element is empty, or if the first thing inside the
+ <code><a href=#the-head-element>head</a></code> element is an element.</p>
+
+ <!-- </head> -->
+ <p>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-head-element>head</a></code> element is not
+ immediately followed by a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+
+ <!-- <body> -->
+ <p>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
+ element is empty, or if the first thing inside the <code><a href=#the-body-element>body</a></code>
+ element is not a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>, except if the first thing
+ inside the <code><a href=#the-body-element>body</a></code> element is a <code><a href=#the-script-element>script</a></code> or
+ <code><a href=#the-style-element>style</a></code> element. <!-- Note that even if the </head> end
+ tag is present, the parser makes <style> and <script> elements
+ between </head> and <body> end up in the <head> instead of implying
+ the <body> --></p>
+
+ <!-- </body> -->
+ <p>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-body-element>body</a></code> element is not
+ immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+
+ <!-- </li> -->
+ <p>A <code><a href=#the-li-element>li</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-li-element>li</a></code> element is
+ immediately followed by another <code><a href=#the-li-element>li</a></code> element or if there
+ is no more content in the parent element.</p>
+
+ <!-- </dt> -->
+ <p>A <code><a href=#the-dt-element>dt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-dt-element>dt</a></code> element is
+ immediately followed by another <code><a href=#the-dt-element>dt</a></code> element or a
+ <code><a href=#the-dd-element>dd</a></code> element.</p>
+
+ <!-- </dd> -->
+ <p>A <code><a href=#the-dd-element>dd</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-dd-element>dd</a></code> element is
+ immediately followed by another <code><a href=#the-dd-element>dd</a></code> element or a
+ <code><a href=#the-dt-element>dt</a></code> element, or if there is no more content in the
+ parent element.</p>
+
+ <!-- </p> -->
+ <p>A <code><a href=#the-p-element>p</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-p-element>p</a></code> element is
+ immediately followed by an <code><a href=#the-address-element>address</a></code>,
+ <code><a href=#the-article-element>article</a></code>, <code><a href=#the-aside-element>aside</a></code>, <code><a href=#the-blockquote-element>blockquote</a></code>,
+ <code><a href=#dir>dir</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-dl-element>dl</a></code>,
+ <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#the-footer-element>footer</a></code>, <code><a href=#the-form-element>form</a></code>,
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>,
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>, <code><a href=#the-header-element>header</a></code>,
+ <code><a href=#the-hgroup-element>hgroup</a></code>, <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-menu-element>menu</a></code>,
+ <code><a href=#the-nav-element>nav</a></code>, <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-p-element>p</a></code>, <code><a href=#the-pre-element>pre</a></code>,
+ <code><a href=#the-section-element>section</a></code>, <code><a href=#the-table-element>table</a></code>, or <code><a href=#the-ul-element>ul</a></code>,
+ element, or if there is no more content in the parent element and
+ the parent element is not an <code><a href=#the-a-element>a</a></code> element.</p>
+
+ <!-- </rt> -->
+ <p>An <code><a href=#the-rt-element>rt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-rt-element>rt</a></code> element is
+ immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code>
+ element, or if there is no more content in the parent element.</p>
+
+ <!-- </rp> -->
+ <p>An <code><a href=#the-rp-element>rp</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-rp-element>rp</a></code> element is
+ immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code>
+ element, or if there is no more content in the parent element.</p>
+
+ <!-- </optgroup> (the text assumes <optgroup> can only be inside a
+ <select>; commented out text below can handle the non-<select> case
+ if we ever allow it) -->
+ <p>An <code><a href=#the-optgroup-element>optgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-optgroup-element>optgroup</a></code> element <!--has an ancestor
+ <code>select</code> element and--> is immediately followed by
+ another <code><a href=#the-optgroup-element>optgroup</a></code> element, or if <!--all of the elements
+ that are ancestors of the <code>optgroup</code> element, up to and
+ including the first ancestor element that is not an
+ <code>optgroup</code> element, have no more content--> there is no
+ more content in the parent element.</p>
+ <!-- so e.g. the max number of </optgroup>s are omitted here:
+ <select><optgroup></select>
+ <p id=x><optgroup></optgroup>x</p>
+ <p id=x><optgroup><optgroup></optgroup></optgroup>x</p>
+ <p><optgroup id=x><optgroup></optgroup>x</p>
+ <p><optgroup><optgroup id=x>x</p>
+ -->
+
+ <!-- </option> -->
+ <p>An <code><a href=#the-option-element>option</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-option-element>option</a></code> element is
+ immediately followed by another <code><a href=#the-option-element>option</a></code> element, or if
+ it is immediately followed by an <code><a href=#the-optgroup-element>optgroup</a></code> element, or
+ if there is no more content in the parent element.</p>
+
+ <!-- <colgroup> -->
+ <p>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
+ first thing inside the <code><a href=#the-colgroup-element>colgroup</a></code> element is a
+ <code><a href=#the-col-element>col</a></code> element, and if the element is not immediately
+ preceded by another <code><a href=#the-colgroup-element>colgroup</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It can't be
+ omitted if the element is empty.)</p>
+
+ <!-- </colgroup> -->
+ <p>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-colgroup-element>colgroup</a></code> element is not immediately followed by a
+ <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+
+ <!-- </thead> -->
+ <p>A <code><a href=#the-thead-element>thead</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-thead-element>thead</a></code> element is
+ immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or <code><a href=#the-tfoot-element>tfoot</a></code>
+ element.</p>
+
+ <!-- <tbody> -->
+ <p>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
+ first thing inside the <code><a href=#the-tbody-element>tbody</a></code> element is a
+ <code><a href=#the-tr-element>tr</a></code> element, and if the element is not immediately
+ preceded by a <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> has been omitted. (It can't be omitted if the element is
+ empty.)</p>
+
+ <!-- </tbody> -->
+ <p>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-tbody-element>tbody</a></code> element is
+ immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or <code><a href=#the-tfoot-element>tfoot</a></code>
+ element, or if there is no more content in the parent element.</p>
+
+ <!-- </tfoot> -->
+ <p>A <code><a href=#the-tfoot-element>tfoot</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-tfoot-element>tfoot</a></code> element is
+ immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> element, or if there is
+ no more content in the parent element.</p>
+
+ <!-- </tr> -->
+ <p>A <code><a href=#the-tr-element>tr</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-tr-element>tr</a></code> element is
+ immediately followed by another <code><a href=#the-tr-element>tr</a></code> element, or if there
+ is no more content in the parent element.</p>
+
+ <!-- </td> -->
+ <p>A <code><a href=#the-td-element>td</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-td-element>td</a></code> element is
+ immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code>
+ element, or if there is no more content in the parent element.</p>
+
+ <!-- </th> -->
+ <p>A <code><a href=#the-th-element>th</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
+ tag</a> may be omitted if the <code><a href=#the-th-element>th</a></code> element is
+ immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code>
+ element, or if there is no more content in the parent element.</p>
+
+ <p><strong>However</strong>, a <a href=#syntax-start-tag title=syntax-start-tag>start
+ tag</a> must never be omitted if it has any attributes.</p>
+
+
+ <h5 id=element-restrictions><span class=secno>13.1.2.5 </span>Restrictions on content models</h5>
+
+ <p>For historical reasons, certain elements have extra restrictions
+ beyond even the restrictions given by their content model.</p>
+
+ <p>A <code><a href=#the-table-element>table</a></code> element must not contain <code><a href=#the-tr-element>tr</a></code>
+ elements, even though these elements are technically allowed inside
+ <code><a href=#the-table-element>table</a></code> elements according to the content models
+ described in this specification. (If a <code><a href=#the-tr-element>tr</a></code> element is
+ put inside a <code><a href=#the-table-element>table</a></code> in the markup, it will in fact imply
+ a <code><a href=#the-tbody-element>tbody</a></code> start tag before it.)</p>
+
+ <p>A single <a href=#syntax-newlines title=syntax-newlines>newline</a> may be
+ placed immediately after the <a href=#syntax-start-tag title=syntax-start-tag>start
+ tag</a> of <code><a href=#the-pre-element>pre</a></code> and <code><a href=#the-textarea-element>textarea</a></code>
+ elements. This does not affect the processing of the element. The
+ otherwise optional <a href=#syntax-newlines title=syntax-newlines>newline</a>
+ <em>must</em> be included if the element's contents themselves start
+ with a <a href=#syntax-newlines title=syntax-newlines>newline</a> (because
+ otherwise the leading newline in the contents would be treated like
+ the optional newline, and ignored).</p>
+
+ <div class=example>
+ <p>The following two <code><a href=#the-pre-element>pre</a></code> blocks are equivalent:</p>
+ <pre>&lt;pre&gt;Hello&lt;/pre&gt;</pre>
+ <pre>&lt;pre&gt;<br>Hello&lt;/pre&gt;</pre>
+ </div>
+
+
+ <h5 id=cdata-rcdata-restrictions><span class=secno>13.1.2.6 </span>Restrictions on the contents of raw text and RCDATA elements</h5>
+
+ <p>The text in <a href=#raw-text-elements title="raw text elements">raw text</a> and
+ <a href=#rcdata-elements>RCDATA elements</a> must not contain any occurrences of the
+ string "<code title="">&lt;/</code>" (U+003C LESS-THAN SIGN, U+002F
+ SOLIDUS) followed by characters that case-insensitively match the
+ tag name of the element followed by one of U+0009 CHARACTER
+ TABULATION (tab), U+000A LINE FEED (LF), U+000C FORM FEED (FF), U+000D
+ CARRIAGE RETURN (CR), U+0020 SPACE, U+003E GREATER-THAN SIGN (&gt;), or
+ U+002F SOLIDUS (/).</p>
+
+
+ <h4 id=text-1><span class=secno>13.1.3 </span>Text</h4>
+
+ <p><dfn id=syntax-text title=syntax-text>Text</dfn> is allowed inside elements,
+ attribute values, and comments. Text must consist of <a href=#unicode-character title="Unicode character">Unicode characters</a>. Text must not
+ contain U+0000 characters. Text must not contain permanently
+ undefined Unicode characters (noncharacters). Text must not contain
+ control characters other than <a href=#space-character title="space character">space
+ characters</a>. Extra constraints are placed on what is and what
+ is not allowed in text based on where the text is to be put, as
+ described in the other sections.</p>
+
+
+ <h5 id=newlines><span class=secno>13.1.3.1 </span>Newlines</h5>
+
+ <p><dfn id=syntax-newlines title=syntax-newlines>Newlines</dfn> in HTML may be
+ represented either as U+000D CARRIAGE RETURN (CR) characters, U+000A
+ LINE FEED (LF) characters, or pairs of U+000D CARRIAGE RETURN (CR),
+ U+000A LINE FEED (LF) characters in that order.</p>
+
+ <p>Where <a href=#syntax-charref title=syntax-charref>character references</a>
+ are allowed, a character reference of a U+000A LINE FEED (LF)
+ character (but not a U+000D CARRIAGE RETURN (CR) character) also
+ represents a <a href=#syntax-newlines title=syntax-newlines>newline</a>.</p>
+
+
+ <h4 id=character-references><span class=secno>13.1.4 </span>Character references</h4>
+
+ <p>In certain cases described in other sections, <a href=#syntax-text title=syntax-text>text</a> may be mixed with <dfn id=syntax-charref title=syntax-charref>character references</dfn>. These can be used
+ to escape characters that couldn't otherwise legally be included in
+ <a href=#syntax-text title=syntax-text>text</a>.</p>
+
+ <p>Character references must start with a U+0026 AMPERSAND character
+ (&amp;). Following this, there are three possible kinds of character
+ references:</p>
+
+ <dl><dt>Named character references</dt>
+
+ <dd>The ampersand must be followed by one of the names given in the
+ <a href=#named-character-references>named character references</a> section, using the same
+ case. <span class=impl>The name must be one that is terminated by
+ a U+003B SEMICOLON character (;).</span></dd>
+
+
+ <dt>Decimal numeric character reference</dt>
+
+ <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
+ character (#), followed by one or more digits in the range U+0030
+ DIGIT ZERO (0) to U+0039 DIGIT NINE (9), representing a base-ten
+ integer that corresponds to a Unicode code point that is allowed
+ according to the definition below. The digits must then be followed
+ by a U+003B SEMICOLON character (;).</dd>
+
+
+ <dt>Hexadecimal numeric character reference</dt>
+
+ <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
+ character (#), which must be followed by either a U+0078 LATIN
+ SMALL LETTER X character (x) or a U+0058 LATIN CAPITAL LETTER X
+ character (X), which must then be followed by one or more digits in
+ the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0061
+ LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and U+0041
+ LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F,
+ representing a base-sixteen integer that corresponds to a Unicode
+ code point that is allowed according to the definition below. The
+ digits must then be followed by a U+003B SEMICOLON character
+ (;).</dd>
+
+ </dl><p>The numeric character reference forms described above are allowed
+ to reference any Unicode code point other than U+0000, U+000D,
+ permanently undefined Unicode characters (noncharacters), and
+ control characters other than <a href=#space-character title="space character">space
+ characters</a>.</p>
+
+ <p>An <dfn id=syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous
+ ampersand</dfn> is a U+0026 AMPERSAND character (&amp;) that is
+ followed by one or more characters in the range U+0030 DIGIT ZERO
+ (0) to U+0039 DIGIT NINE (9), U+0061 LATIN SMALL LETTER A to U+007A
+ LATIN SMALL LETTER Z, and U+0041 LATIN CAPITAL LETTER A to U+005A
+ LATIN CAPITAL LETTER Z, followed by a U+003B SEMICOLON character
+ (;), where these characters do not match any of the names given in
+ the <a href=#named-character-references>named character references</a> section.</p>
+
+
+ <h4 id=cdata-sections><span class=secno>13.1.5 </span>CDATA sections</h4>
+
+ <p><dfn id=syntax-cdata title=syntax-cdata>CDATA sections</dfn> must consist of
+ the following components, in this order:</p>
+
+ <ol><li>The string "<code title="">&lt;![CDATA[</code>".</li>
+
+ <li>Optionally, <a href=#syntax-text title=syntax-text>text</a>, with the
+ additional restriction that the text must not contain the string
+ "<code title="">]]&gt;</code>".</li>
+
+ <li>The string "<code title="">]]&gt;</code>".</li>
+
+ </ol><div class=example>
+
+ <p>CDATA sections can only be used in foreign content (MathML or
+ SVG). In this example, a CDATA section is used to escape the
+ contents of an <code>ms</code> element:</p>
+
+ <pre>&lt;p&gt;You can add a string to a number, but this stringifies the number:&lt;/p&gt;
+&lt;math&gt;
+ &lt;ms&gt;&lt;![CDATA[x&lt;y]]&gt;&lt;/ms&gt;
+ &lt;mo&gt;+&lt;/mo&gt;
+ &lt;mn&gt;3&lt;/mn&gt;
+ &lt;mo&gt;=&lt;/mo&gt;
+ &lt;ms&gt;&lt;![CDATA[x&lt;y3]]&gt;&lt;/ms&gt;
+&lt;/math&gt;</pre>
+
+ </div>
+
+
+ <h4 id=comments><span class=secno>13.1.6 </span>Comments</h4>
+
+ <p><dfn id=syntax-comments title=syntax-comments>Comments</dfn> must start with the
+ four character sequence U+003C LESS-THAN SIGN, U+0021 EXCLAMATION
+ MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS (<code title="">&lt;!--</code>). Following this sequence, the comment may
+ have <a href=#syntax-text title=syntax-text>text</a>, with the additional
+ restriction that the text must not start with a single U+003E
+ GREATER-THAN SIGN character (&gt;), nor start with a U+002D
+ HYPHEN-MINUS character (-) followed by a U+003E GREATER-THAN SIGN
+ (&gt;) character, nor contain two consecutive U+002D HYPHEN-MINUS
+ characters (<code title="">--</code>), nor end with a U+002D
+ HYPHEN-MINUS character (-). Finally, the comment must be ended by
+ the three character sequence U+002D HYPHEN-MINUS, U+002D
+ HYPHEN-MINUS, U+003E GREATER-THAN SIGN (<code title="">--&gt;</code>).</p>
+
+
+ <div class=impl>
+
+ <h3 id=parsing><span class=secno>13.2 </span>Parsing HTML documents</h3>
+
+ <p><i>This section only applies to user agents, data mining tools,
+ and conformance checkers.</i></p>
+
+ <p class=note>The rules for parsing XML documents into DOM trees
+ are covered by the next section, entitled "<a href=#the-xhtml-syntax>The XHTML
+ syntax</a>".</p>
+
+ <p>For <a href=#html-documents>HTML documents</a>, user agents must use the parsing
+ rules described in this section to generate the DOM trees. Together,
+ these rules define what is referred to as the <dfn id=html-parser>HTML
+ parser</dfn>.</p>
+
+ <div class=note>
+
+ <p>While the HTML syntax described in this specification bears a
+ close resemblance to SGML and XML, it is a separate language with
+ its own parsing rules.</p>
+
+ <p>Some earlier versions of HTML (in particular from HTML2 to
+ HTML4) were based on SGML and used SGML parsing rules. However, few
+ (if any) web browsers ever implemented true SGML parsing for HTML
+ documents; the only user agents to strictly handle HTML as an SGML
+ application have historically been validators. The resulting
+ confusion &mdash; with validators claiming documents to have one
+ representation while widely deployed Web browsers interoperably
+ implemented a different representation &mdash; has wasted decades
+ of productivity. This version of HTML thus returns to a non-SGML
+ basis.</p>
+
+ <p>Authors interested in using SGML tools in their authoring
+ pipeline are encouraged to use XML tools and the XML serialization
+ of HTML.</p>
+
+ </div>
+
+ <p>This specification defines the parsing rules for HTML documents,
+ whether they are syntactically correct or not. Certain points in the
+ parsing algorithm are said to be <dfn id=parse-error title="parse error">parse
+ errors</dfn>. The error handling for parse errors is well-defined:
+ user agents must either act as described below when encountering
+ such problems, or must abort processing at the first error that they
+ encounter for which they do not wish to apply the rules described
+ below.</p>
+
+ <p>Conformance checkers must report at least one parse error
+ condition to the user if one or more parse error conditions exist in
+ the document and must not report parse error conditions if none
+ exist in the document. Conformance checkers may report more than one
+ parse error condition if more than one parse error condition exists
+ in the document. Conformance checkers are not required to recover
+ from parse errors.</p>
+
+ <p class=note>Parse errors are only errors with the
+ <em>syntax</em> of HTML. In addition to checking for parse errors,
+ conformance checkers will also verify that the document obeys all
+ the other conformance requirements described in this
+ specification.</p>
+
+ <p>For the purposes of conformance checkers, if a resource is
+ determined to be in <a href=#syntax>the HTML syntax</a>, then it is an
+ <a href=#html-documents title="HTML documents">HTML document</a>.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=overview-of-the-parsing-model><span class=secno>13.2.1 </span>Overview of the parsing model</h4>
+
+ <p class=overview><object data=images/parsing-model-overview.svg height=450 width=345><img alt="" height=450 src=greenbox.png width=345></object></p>
+
+ <p>The input to the HTML parsing process consists of a stream of
+ Unicode code points, which is passed through a
+ <a href=#tokenization>tokenization</a> stage followed by a <a href=#tree-construction>tree
+ construction</a> stage. The output is a <code><a href=#document>Document</a></code>
+ object.</p>
+
+ <p class=note>Implementations that <a href=#non-scripted>do not
+ support scripting</a> do not have to actually create a DOM
+ <code><a href=#document>Document</a></code> object, but the DOM tree in such cases is
+ still used as the model for the rest of the specification.</p>
+
+ <p>In the common case, the data handled by the tokenization stage
+ comes from the network, but <a href=#dynamic-markup-insertion title="dynamic markup
+ insertion">it can also come from script</a> running in the user
+ agent, e.g. using the <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> API.</p>
+
+ <p id=nestedParsing>There is only one set of states for the
+ tokenizer stage and the tree construction stage, but the tree
+ construction stage is reentrant, meaning that while the tree
+ construction stage is handling one token, the tokenizer might be
+ resumed, causing further tokens to be emitted and processed before
+ the first token's processing is complete.</p>
+
+ <div class=example>
+
+ <p>In the following example, the tree construction stage will be
+ called upon to handle a "p" start tag token while handling the
+ "script" end tag token:</p>
+
+ <pre>...
+&lt;script&gt;
+ document.write('&lt;p&gt;');
+&lt;/script&gt;
+...</pre>
+
+ </div>
+
+ <p>To handle these cases, parsers have a <dfn id=script-nesting-level>script nesting
+ level</dfn>, which must be initially set to zero, and a <dfn id=parser-pause-flag>parser
+ pause flag</dfn>, which must be initially set to false.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-input-stream><span class=secno>13.2.2 </span>The <dfn>input stream</dfn></h4>
+
+ <p>The stream of Unicode code points that comprises the input to the
+ tokenization stage will be initially seen by the user agent as a
+ stream of bytes (typically coming over the network or from the local
+ file system). The bytes encode the actual characters according to a
+ particular <em>character encoding</em>, which the user agent must
+ use to decode the bytes into characters.</p>
+
+ <p class=note>For XML documents, the algorithm user agents must
+ use to determine the character encoding is given by the XML
+ specification. This section does not apply to XML documents. <a href=#refsXML>[XML]</a></p>
+
+
+ <h5 id=determining-the-character-encoding><span class=secno>13.2.2.1 </span>Determining the character encoding</h5>
+
+ <p>In some cases, it might be impractical to unambiguously determine
+ the encoding before parsing the document. Because of this, this
+ specification provides for a two-pass mechanism with an optional
+ pre-scan. Implementations are allowed, as described below, to apply
+ a simplified parsing algorithm to whatever bytes they have available
+ before beginning to parse the document. Then, the real parser is
+ started, using a tentative encoding derived from this pre-parse and
+ other out-of-band metadata. If, while the document is being loaded,
+ the user agent discovers an encoding declaration that conflicts with
+ this information, then the parser can get reinvoked to perform a
+ parse of the document with the real encoding.</p>
+
+ <p id=documentEncoding>User agents must use the following
+ algorithm (the <dfn id=encoding-sniffing-algorithm>encoding sniffing algorithm</dfn>) to determine
+ the character encoding to use when decoding a document in the first
+ pass. This algorithm takes as input any out-of-band metadata
+ available to the user agent (e.g. the <a href=#content-type title=Content-Type>Content-Type metadata</a> of the document)
+ and all the bytes available so far, and returns an encoding and a
+ <dfn id=concept-encoding-confidence title=concept-encoding-confidence>confidence</dfn>. The
+ confidence is either <i>tentative</i>, <i>certain</i>, or
+ <i>irrelevant</i>. The encoding used, and whether the confidence in
+ that encoding is <i>tentative</i> or <i>certain</i>, is <a href=#meta-charset-during-parse>used during the parsing</a> to
+ determine whether to <a href=#change-the-encoding>change the encoding</a>. If no
+ encoding is necessary, e.g. because the parser is operating on a
+ Unicode stream and doesn't have to use an encoding at all, then the
+ <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> is
+ <i>irrelevant</i>.</p>
+
+ <ol><li><p>If the user has explicitly instructed the user agent to
+ override the document's character encoding with a specific
+ encoding, optionally return that encoding with the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a>
+ <i>certain</i> and abort these steps.</li>
+
+ <li><p>If the transport layer specifies an encoding, and it is
+ supported, return that encoding with the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a>
+ <i>certain</i>, and abort these steps.</li>
+
+ <li>
+
+ <p>The user agent may wait for more bytes of the resource to be
+ available, either in this step or at any later step in this
+ algorithm. For instance, a user agent might wait 500ms or 1024
+ bytes, whichever came first. In general preparsing the source to
+ find the encoding improves performance, as it reduces the need to
+ throw away the data structures used when parsing upon finding the
+ encoding information. However, if the user agent delays too long
+ to obtain data to determine the encoding, then the cost of the
+ delay could outweigh any performance improvements from the
+ preparse.</p>
+
+ <p class=note>The authoring conformance requirements for
+ character encoding declarations limit them to only appearing <a href=#charset1024>in the first 1024 bytes</a>. User agents are
+ therefore encouraged to use the preparse algorithm below (part of
+ these steps) on the first 1024 bytes, but not to stall beyond
+ that.</p>
+
+ </li>
+
+ <li><p>For each of the rows in the following table, starting with
+ the first one and going down, if there are as many or more bytes
+ available than the number of bytes in the first column, and the
+ first bytes of the file match the bytes given in the first column,
+ then return the encoding given in the cell in the second column of
+ that row, with the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a>
+ <i>certain</i>, and abort these steps:</p>
+
+ <!-- this table is present in several forms in this file; keep them in sync -->
+ <table><thead><tr><th>Bytes in Hexadecimal
+ <th>Encoding
+ <tbody><!-- nobody uses this
+ <tr>
+ <td>00 00 FE FF
+ <td>UTF-32BE
+ <tr>
+ <td>FF FE 00 00
+ <td>UTF-32LE
+--><tr><td>FE FF
+ <td>Big-endian UTF-16
+ <tr><td>FF FE
+ <td>Little-endian UTF-16
+ <tr><td>EF BB BF
+ <td>UTF-8
+<!-- nobody uses this
+ <tr>
+ <td>DD 73 66 73
+ <td>UTF-EBCDIC
+-->
+ </table><p class=note>This step looks for Unicode Byte Order Marks
+ (BOMs).</li>
+
+ <li><p>Otherwise, the user agent will have to search for explicit
+ character encoding information in the file itself. This should
+ proceed as follows:
+
+ <p>Let <var title="">position</var> be a pointer to a byte in the
+ input stream, initially pointing at the first byte. If at any
+ point during these substeps the user agent either runs out of
+ bytes or decides that scanning further bytes would not be
+ efficient, then skip to the next step of the overall character
+ encoding detection algorithm. User agents may decide that scanning
+ <em>any</em> bytes is not efficient, in which case these substeps
+ are entirely skipped.</p>
+
+ <p>Now, repeat the following "two" steps until the algorithm
+ aborts (either because user agent aborts, as described above, or
+ because a character encoding is found):</p>
+
+ <ol><li><p>If <var title="">position</var> points to:</p>
+
+ <dl class=switch><dt>A sequence of bytes starting with: 0x3C 0x21 0x2D 0x2D (ASCII '&lt;!--')</dt>
+ <dd>
+
+ <p>Advance the <var title="">position</var> pointer so that it
+ points at the first 0x3E byte which is preceded by two 0x2D
+ bytes (i.e. at the end of an ASCII '--&gt;' sequence) and comes
+ after the 0x3C byte that was found. (The two 0x2D bytes can be
+ the same as the those in the '&lt;!--' sequence.)</p>
+
+ </dd>
+
+ <dt>A sequence of bytes starting with: 0x3C, 0x4D or 0x6D, 0x45 or 0x65, 0x54 or 0x74, 0x41 or 0x61, and one of 0x09, 0x0A, 0x0C, 0x0D, 0x20, 0x2F (case-insensitive ASCII '&lt;meta' followed by a space or slash)</dt>
+ <dd>
+
+ <ol><li><p>Advance the <var title="">position</var> pointer so
+ that it points at the next 0x09, 0x0A, 0x0C, 0x0D, 0x20, or
+ 0x2F byte (the one in sequence of characters matched
+ above).</li>
+
+ <li><p>Let <var title="">attribute list</var> be an empty
+ list of strings.</li> <!-- so long as we only care about
+ http-equiv, content, and charset, this can be a 3-bit
+ bitfield -->
+
+ <li><p>Let <var title="">got pragma</var> be false.</li>
+
+ <li><p>Let <var title="">need pragma</var> be null.</li>
+
+ <li><p>Let <var title="">charset</var> be the null value
+ (which, for the purposes of this algorithm, is distinct from
+ an unrecognised encoding or the empty string).</li>
+
+ <li><p><i>Attributes</i>: <a href=#concept-get-attributes-when-sniffing title=concept-get-attributes-when-sniffing>Get an
+ attribute</a> and its value. If no attribute was sniffed,
+ then jump to the <i>processing</i> step below.</li>
+
+ <li><p>If the attribute's name is already in <var title="">attribute list</var>, then return to the step
+ labeled <i>attributes</i>.</p>
+
+ <li><p>Add the attribute's name to <var title="">attribute
+ list</var>.</p>
+
+ <li>
+
+ <p>Run the appropriate step from the following list, if one
+ applies:</p>
+
+ <dl class=switch><dt>If the attribute's name is "<code title="">http-equiv</code>"</dt>
+
+ <dd><p>If the attribute's value is "<code title="">content-type</code>", then set <var title="">got
+ pragma</var> to true.</dd>
+
+ <dt>If the attribute's name is "<code title="">content</code>"</dt>
+
+ <dd><p>Apply the <a href=#algorithm-for-extracting-an-encoding-from-a-meta-element>algorithm for extracting an encoding
+ from a <code>meta</code> element</a>, giving the
+ attribute's value as the string to parse. If an encoding is
+ returned, and if <var title="">charset</var> is still set
+ to null, let <var title="">charset</var> be the encoding
+ returned, and set <var title="">need pragma</var> to
+ true.</dd>
+
+ <dt>If the attribute's name is "<code title="">charset</code>"</dt>
+
+ <dd><p>Let <var title="">charset</var> be the encoding
+ corresponding to the attribute's value, and set <var title="">need pragma</var> to false.</dd>
+
+ </dl></li>
+
+ <li><p>Return to the step labeled <i>attributes</i>.</li>
+
+ <li><p><i>Processing</i>: If <var title="">need pragma</var>
+ is null, then jump to the second step of the overall "two
+ step" algorithm.</li>
+
+ <li><p>If <var title="">need pragma</var> is true but <var title="">got pragma</var> is false, then jump to the second
+ step of the overall "two step" algorithm.</li>
+
+ <li><p>If <var title="">charset</var> is <a href=#a-utf-16-encoding>a UTF-16
+ encoding</a>, change the value of <var title="">charset</var> to UTF-8.</li>
+
+ <li><p>If <var title="">charset</var> is not a supported
+ character encoding, then jump to the second step of the
+ overall "two step" algorithm.</li>
+
+ <li><p>Return the encoding given by <var title="">charset</var>, with <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a>
+ <i>tentative</i>, and abort all these steps.</li>
+
+ </ol></dd>
+
+ <dt>A sequence of bytes starting with a 0x3C byte (ASCII &lt;), optionally a 0x2F byte (ASCII /), and finally a byte in the range 0x41-0x5A or 0x61-0x7A (an ASCII letter)</dt>
+ <dd>
+
+ <ol><li><p>Advance the <var title="">position</var> pointer so
+ that it points at the next 0x09 (ASCII TAB), 0x0A (ASCII LF),
+ 0x0C (ASCII FF), 0x0D (ASCII CR), 0x20 (ASCII space), or 0x3E
+ (ASCII &gt;) byte.</li>
+
+ <li><p>Repeatedly <a href=#concept-get-attributes-when-sniffing title=concept-get-attributes-when-sniffing>get an
+ attribute</a> until no further attributes can be found,
+ then jump to the second step in the overall "two step"
+ algorithm.</li>
+
+ </ol></dd>
+
+ <dt>A sequence of bytes starting with: 0x3C 0x21 (ASCII '&lt;!')</dt>
+ <dt>A sequence of bytes starting with: 0x3C 0x2F (ASCII '&lt;/')</dt>
+ <dt>A sequence of bytes starting with: 0x3C 0x3F (ASCII '&lt;?')</dt>
+ <dd>
+
+ <p>Advance the <var title="">position</var> pointer so that it
+ points at the first 0x3E byte (ASCII &gt;) that comes after the
+ 0x3C byte that was found.</p>
+
+ </dd>
+
+ <dt>Any other byte</dt>
+ <dd>
+
+ <p>Do nothing with that byte.</p>
+
+ </dd>
+
+ </dl></li>
+
+ <li>Move <var title="">position</var> so it points at the next
+ byte in the input stream, and return to the first step of this
+ "two step" algorithm.</li>
+
+ </ol><p>When the above "two step" algorithm says to <dfn id=concept-get-attributes-when-sniffing title=concept-get-attributes-when-sniffing>get an
+ attribute</dfn>, it means doing this:</p>
+
+ <ol><li><p>If the byte at <var title="">position</var> is one of 0x09
+ (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII FF), 0x0D (ASCII CR),
+ 0x20 (ASCII space), or 0x2F (ASCII /) then advance <var title="">position</var> to the next byte and redo this
+ substep.</li>
+
+ <li><p>If the byte at <var title="">position</var> is 0x3E (ASCII
+ &gt;), then abort the "get an attribute" algorithm. There isn't
+ one.</li>
+
+ <li><p>Otherwise, the byte at <var title="">position</var> is the
+ start of the attribute name. Let <var title="">attribute
+ name</var> and <var title="">attribute value</var> be the empty
+ string.</li>
+
+ <li><p><i>Attribute name</i>: Process the byte at <var title="">position</var> as follows:</p>
+
+ <dl class=switch><dt>If it is 0x3D (ASCII =), and the <var title="">attribute
+ name</var> is longer than the empty string</dt>
+
+ <dd>Advance <var title="">position</var> to the next byte and
+ jump to the step below labeled <i>value</i>.</dd>
+
+ <dt>If it is 0x09 (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII
+ FF), 0x0D (ASCII CR), or 0x20 (ASCII space)</dt>
+
+ <dd>Jump to the step below labeled <i>spaces</i>.</dd>
+
+ <dt>If it is 0x2F (ASCII /) or 0x3E (ASCII &gt;)</dt>
+
+ <dd>Abort the "get an attribute" algorithm. The attribute's
+ name is the value of <var title="">attribute name</var>, its
+ value is the empty string.</dd>
+
+ <dt>If it is in the range 0x41 (ASCII A) to 0x5A (ASCII
+ Z)</dt>
+
+ <dd>Append the Unicode character with code point <span title=""><var title="">b</var>+0x20</span> to <var title="">attribute name</var> (where <var title="">b</var> is
+ the value of the byte at <var title="">position</var>). (This
+ converts the input to lowercase.)</dd>
+
+ <dt>Anything else</dt>
+
+ <dd>Append the Unicode character with the same code point as the
+ value of the byte at <var title="">position</var>) to <var title="">attribute name</var>. (It doesn't actually matter how
+ bytes outside the ASCII range are handled here, since only
+ ASCII characters can contribute to the detection of a character
+ encoding.)</dd>
+
+ </dl></li>
+
+ <li><p>Advance <var title="">position</var> to the next byte and
+ return to the previous step.</li>
+
+ <li><p><i>Spaces</i>: If the byte at <var title="">position</var> is one of 0x09 (ASCII TAB), 0x0A (ASCII
+ LF), 0x0C (ASCII FF), 0x0D (ASCII CR), or 0x20 (ASCII space) then
+ advance <var title="">position</var> to the next byte, then,
+ repeat this step.</li>
+
+ <li><p>If the byte at <var title="">position</var> is
+ <em>not</em> 0x3D (ASCII =), abort the "get an attribute"
+ algorithm. The attribute's name is the value of <var title="">attribute name</var>, its value is the empty
+ string.</li>
+
+ <li><p>Advance <var title="">position</var> past the 0x3D (ASCII
+ =) byte.</li>
+
+ <li><p><i>Value</i>: If the byte at <var title="">position</var> is one of 0x09 (ASCII TAB), 0x0A (ASCII
+ LF), 0x0C (ASCII FF), 0x0D (ASCII CR), or 0x20 (ASCII space) then
+ advance <var title="">position</var> to the next byte, then,
+ repeat this step.</li>
+
+ <li><p>Process the byte at <var title="">position</var> as
+ follows:</p>
+
+ <dl class=switch><dt>If it is 0x22 (ASCII ") or 0x27 (ASCII ')</dt>
+
+ <dd>
+
+ <ol><li>Let <var title="">b</var> be the value of the byte at
+ <var title="">position</var>.</li>
+
+ <li>Advance <var title="">position</var> to the next
+ byte.</li>
+
+ <li>If the value of the byte at <var title="">position</var>
+ is the value of <var title="">b</var>, then advance <var title="">position</var> to the next byte and abort the "get
+ an attribute" algorithm. The attribute's name is the value of
+ <var title="">attribute name</var>, and its value is the
+ value of <var title="">attribute value</var>.</li>
+
+ <li>Otherwise, if the value of the byte at <var title="">position</var> is in the range 0x41 (ASCII A) to
+ 0x5A (ASCII Z), then append a Unicode character to <var title="">attribute value</var> whose code point is 0x20 more
+ than the value of the byte at <var title="">position</var>.</li>
+
+ <li>Otherwise, append a Unicode character to <var title="">attribute value</var> whose code point is the same as
+ the value of the byte at <var title="">position</var>.</li>
+
+ <li>Return to the second step in these substeps.</li>
+
+ </ol></dd>
+
+ <dt>If it is 0x3E (ASCII &gt;)</dt>
+
+ <dd>Abort the "get an attribute" algorithm. The attribute's
+ name is the value of <var title="">attribute name</var>, its
+ value is the empty string.</dd>
+
+
+ <dt>If it is in the range 0x41 (ASCII A) to 0x5A (ASCII
+ Z)</dt>
+
+ <dd>Append the Unicode character with code point <span title=""><var title="">b</var>+0x20</span> to <var title="">attribute
+ value</var> (where <var title="">b</var> is the value of the
+ byte at <var title="">position</var>). Advance <var title="">position</var> to the next byte.</dd>
+
+ <dt>Anything else</dt>
+
+ <dd>Append the Unicode character with the same code point as the
+ value of the byte at <var title="">position</var>) to <var title="">attribute value</var>. Advance <var title="">position</var> to the next byte.</dd>
+
+ </dl></li>
+
+ <li><p>Process the byte at <var title="">position</var> as
+ follows:</p>
+
+ <dl class=switch><dt>If it is 0x09 (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII
+ FF), 0x0D (ASCII CR), 0x20 (ASCII space), or 0x3E (ASCII
+ &gt;)</dt>
+
+ <dd>Abort the "get an attribute" algorithm. The attribute's
+ name is the value of <var title="">attribute name</var> and its
+ value is the value of <var title="">attribute value</var>.</dd>
+
+ <dt>If it is in the range 0x41 (ASCII A) to 0x5A (ASCII
+ Z)</dt>
+
+ <dd>Append the Unicode character with code point <span title=""><var title="">b</var>+0x20</span> to <var title="">attribute
+ value</var> (where <var title="">b</var> is the value of the
+ byte at <var title="">position</var>).</dd>
+
+ <dt>Anything else</dt>
+
+ <dd>Append the Unicode character with the same code point as the
+ value of the byte at <var title="">position</var>) to <var title="">attribute value</var>.</dd>
+
+ </dl></li>
+
+ <li><p>Advance <var title="">position</var> to the next byte and
+ return to the previous step.</li>
+
+ </ol><p>For the sake of interoperability, user agents should not use a
+ pre-scan algorithm that returns different results than the one
+ described above. (But, if you do, please at least let us know, so
+ that we can improve this algorithm and benefit everyone...)</p>
+
+ </li>
+
+ <li><p>If the user agent has information on the likely encoding for
+ this page, e.g. based on the encoding of the page when it was last
+ visited, then return that encoding, with the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a>
+ <i>tentative</i>, and abort these steps.</li>
+
+ <li>
+
+ <p>The user agent may attempt to autodetect the character encoding
+ from applying frequency analysis or other algorithms to the data
+ stream. Such algorithms may use information about the resource
+ other than the resource's contents, including the address of the
+ resource. If autodetection succeeds in determining a character
+ encoding, then return that encoding, with the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a>
+ <i>tentative</i>, and abort these steps. <a href=#refsUNIVCHARDET>[UNIVCHARDET]</a></p>
+
+ <p class=note>The UTF-8 encoding has a highly detectable bit
+ pattern. Documents that contain bytes with values greater than
+ 0x7F which match the UTF-8 pattern are very likely to be UTF-8,
+ while documents with byte sequences that do not match it are very
+ likely not. User-agents are therefore encouraged to search for
+ this common encoding. <a href=#refsPPUTF8>[PPUTF8]</a> <a href=#refsUTF8DET>[UTF8DET]</a></p>
+
+ </li>
+
+ <li>
+
+ <p>Otherwise, return an implementation-defined or user-specified
+ default character encoding, with the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a>
+ <i>tentative</i>.</p>
+
+ <p>In controlled environments or in environments where the
+ encoding of documents can be prescribed (for example, for user
+ agents intended for dedicated use in new networks), the
+ comprehensive <code title="">UTF-8</code> encoding is
+ suggested.</p>
+
+ <p>In other environments, the default encoding is typically
+ dependent on the user's locale (an approximation of the languages,
+ and thus often encodings, of the pages that the user is likely to
+ frequent). The following table gives suggested defaults based on
+ the user's locale, for compatibility with legacy content. Locales
+ are identified by BCP 47 language tags. <a href=#refsBCP47>[BCP47]</a></p>
+
+ <!-- based on mozilla 1.9.1 localizations:
+ http://mxr.mozilla.org/l10n-mozilla1.9.1/find?string=global%2Fintl.properties&tree=l10n-mozilla1.9.1&hint= -->
+
+ <table><thead><tr><th>Locale language
+ <th>Suggested default encoding
+ <tbody><tr><td>ar
+ <td>UTF-8
+
+ <tr><td>be
+ <td>ISO-8859-5
+
+ <tr><td>bg
+ <td>windows-1251
+
+ <tr><td>cs<!-- -CZ -->
+ <td>ISO-8859-2
+
+ <tr><td>cy
+ <td>UTF-8
+
+ <tr><td>fa<!-- -IR -->
+ <td>UTF-8
+
+ <tr><td>he<!-- -IL -->
+ <td>windows-1255
+
+ <tr><td>hr
+ <td>UTF-8
+
+ <tr><td>hu<!-- -HU -->
+ <td>ISO-8859-2
+
+ <tr><td>ja <!-- and ja-JP-mac -->
+ <td>Windows-31J <!-- Shift_JIS -->
+
+ <tr><td>kk
+ <td>UTF-8
+
+ <tr><td>ko<!-- -KR -->
+ <td>windows-949 <!-- EUC-KR -->
+
+ <tr><td>ku
+ <td>windows-1254 <!-- ISO-8859-9 -->
+
+ <tr><td>lt
+ <td>windows-1257
+
+ <tr><td>lv<!-- -LV -->
+ <td>ISO-8859-13
+
+ <tr><td>mk<!-- -MK -->
+ <td>UTF-8
+
+ <tr><td>or
+ <td>UTF-8
+
+ <tr><td>pl<!-- -PL -->
+ <td>ISO-8859-2
+
+ <tr><td>ro
+ <td>UTF-8
+
+ <tr><td>ru
+ <td>windows-1251
+
+ <tr><td>sk
+ <td>windows-1250
+
+ <tr><td>sl
+ <td>ISO-8859-2
+
+ <tr><td>sr
+ <td>UTF-8
+
+ <tr><td>th
+ <td>windows-874 <!-- TIS-620 -->
+
+ <tr><td>tr<!-- -TR -->
+ <td>windows-1254 <!-- ISO-8859-9 -->
+
+ <tr><td>uk
+ <td>windows-1251
+
+ <tr><td>vi
+ <td>UTF-8
+
+ <tr><td>zh-CN
+ <td>GB18030
+
+ <tr><td>zh-TW
+ <td>Big5
+
+ <tr><td>All other locales
+ <td>windows-1252
+
+ </table></li>
+
+ </ol><p>The <a href="#document's-character-encoding">document's character encoding</a> must immediately
+ be set to the value returned from this algorithm, at the same time
+ as the user agent uses the returned value to select the decoder to
+ use for the input stream.</p>
+
+<!--(removed this since the specs are being changed)
+ <p class="note">This algorithm is a <span>willful violation</span>
+ of the HTTP specification, which requires that the encoding be
+ assumed to be ISO-8859-1 in the absence of a <span>character
+ encoding declaration</span> to the contrary, and of RFC 2046,
+ which requires that the encoding be assumed to be US-ASCII in the
+ absence of a <span>character encoding declaration</span> to the
+ contrary. This specification's third approach is motivated by a
+ desire to be maximally compatible with legacy content. <a
+ href="#refsHTTP">[HTTP]</a> <a href="#refsRFC2046">[RFC2046]</a></p>
+-->
+
+ <h5 id=character-encodings-0><span class=secno>13.2.2.2 </span>Character encodings</h5>
+
+ <p>User agents must at a minimum support the UTF-8 and Windows-1252
+ encodings, but may support more. <a href=#refsRFC3629>[RFC3629]</a> <a href=#refsWIN1252>[WIN1252]</a></p>
+
+ <p class=note>It is not unusual for Web browsers to support dozens
+ if not upwards of a hundred distinct character encodings.</p>
+
+ <p>User agents must support the <a href=#preferred-mime-name>preferred MIME name</a> of
+ every character encoding they support, and should support all the
+ IANA-registered names and aliases of every character encoding they
+ support. <a href=#refsIANACHARSET>[IANACHARSET]</a></p>
+
+ <p>When comparing a string specifying a character encoding with the
+ name or alias of a character encoding to determine if they are
+ equal, user agents must remove any leading or trailing <a href=#space-character title="space character">space characters</a> in both names, and
+ then perform the comparison in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner.</p>
+
+ <hr><p>When a user agent would otherwise use an encoding given in the
+ first column of the following table to either convert content to
+ Unicode characters or convert Unicode characters to bytes, it must
+ instead use the encoding given in the cell in the second column of
+ the same row. When a byte or sequence of bytes is treated
+ differently due to this encoding aliasing, it is said to have been
+ <dfn id=misinterpreted-for-compatibility>misinterpreted for compatibility</dfn>.</p>
+
+ <table id=table-encoding-overrides><caption>Character encoding overrides</caption>
+ <thead><tr><th> Input encoding <th> Replacement encoding <th> References
+ <tbody><tr><td> EUC-KR <td> windows-949 <td>
+ <a href=#refsEUCKR>[EUCKR]</a>
+ <a href=#refsWIN949>[WIN949]</a>
+ <tr><td> EUC-JP <td> CP51932 <td>
+ <a href=#refsEUCJP>[EUCJP]</a>
+ <a href=#refsCP51932>[CP51932]</a>
+ <tr><td> GB2312 <td> GBK <td>
+ <a href=#refsRFC1345>[RFC1345]</a>
+ <a href=#refsGBK>[GBK]</a>
+ <tr><td> GB_2312-80 <td> GBK <td>
+ <a href=#refsRFC1345>[RFC1345]</a>
+ <a href=#refsGBK>[GBK]</a>
+ <tr><td> ISO-8859-1 <td> windows-1252 <td>
+ <a href=#refsRFC1345>[RFC1345]</a>
+ <a href=#refsWIN1252>[WIN1252]</a>
+ <tr><td> ISO-8859-9 <td> windows-1254 <td>
+ <a href=#refsRFC1345>[RFC1345]</a>
+ <a href=#refsWIN1254>[WIN1254]</a>
+ <tr><td> ISO-8859-11 <td> windows-874 <td>
+ <a href=#refsISO885911>[ISO885911]</a>
+ <a href=#refsWIN874>[WIN874]</a>
+ <tr><td> KS_C_5601-1987 <td> windows-949 <td>
+ <a href=#refsRFC1345>[RFC1345]</a>
+ <a href=#refsWIN949>[WIN949]</a>
+ <tr><td> Shift_JIS <td> Windows-31J <td>
+ <a href=#refsSHIFTJIS>[SHIFTJIS]</a>
+ <a href=#refsWIN31J>[WIN31J]</a>
+ <tr><td> TIS-620 <td> windows-874 <td>
+ <a href=#refsTIS620>[TIS620]</a>
+ <a href=#refsWIN874>[WIN874]</a>
+ <tr><td> US-ASCII <td> windows-1252 <td>
+ <a href=#refsRFC1345>[RFC1345]</a>
+ <a href=#refsWIN1252>[WIN1252]</a>
+ </table><p class=note>The requirement to treat certain encodings as other
+ encodings according to the table above is a <a href=#willful-violation>willful
+ violation</a> of the W3C Character Model specification, motivated
+ by a desire for compatibility with legacy content. <a href=#refsCHARMOD>[CHARMOD]</a></p>
+
+ <p>When a user agent is to use the self-describing UTF-16 encoding
+ but no BOM has been found, user agents must default to little-endian
+ UTF-16.</p>
+
+ <p class=note>The requirement to default UTF-16 to little-endian
+ rather than big-endian is a <a href=#willful-violation>willful violation</a> of RFC
+ 2781, motivated by a desire for compatibility with legacy content.
+ <a href=#refsRFC2781>[RFC2781]</a></p>
+
+ <hr><p>User agents must not support the CESU-8, UTF-7, BOCU-1 and SCSU
+ encodings. <a href=#refsCESU8>[CESU8]</a> <a href=#refsUTF7>[UTF7]</a> <a href=#refsBOCU1>[BOCU1]</a> <a href=#refsSCSU>[SCSU]</a></p>
+
+ <p>Support for encodings based on EBCDIC is not recommended. This
+ encoding is rarely used for publicly-facing Web content.</p>
+
+ <p>Support for UTF-32 is not recommended. This encoding is rarely
+ used, and frequently implemented incorrectly.</p>
+
+ <p class=note>This specification does not make any attempt to
+ support EBCDIC-based encodings and UTF-32 in its algorithms; support
+ and use of these encodings can thus lead to unexpected behavior in
+ implementations of this specification.</p>
+
+
+
+ <h5 id=preprocessing-the-input-stream><span class=secno>13.2.2.3 </span>Preprocessing the input stream</h5>
+
+ <p>Given an encoding, the bytes in the input stream must be
+ converted to Unicode code points for the tokenizer, as described by
+ the rules for that encoding, except that the leading U+FEFF BYTE
+ ORDER MARK character, if any, must not be stripped by the encoding
+ layer (it is stripped by the rule below).</p> <!-- this is to
+ prevent two leading BOMs from being both stripped, once by the
+ decoder, and once by the parser -->
+
+ <p>Bytes or sequences of bytes in the original byte stream that
+ could not be converted to Unicode code points must be converted to
+ U+FFFD REPLACEMENT CHARACTERs. Specifically, if the encoding is
+ UTF-8, the bytes must be <a href=#decoded-as-utf-8,-with-error-handling title="decoded as UTF-8, with error
+ handling">decoded with the error handling</a> defined in this
+ specification.</p>
+
+ <p class=note>Bytes or sequences of bytes in the original byte
+ stream that did not conform to the encoding specification
+ (e.g. invalid UTF-8 byte sequences in a UTF-8 input stream) are
+ errors that conformance checkers are expected to report.</p>
+
+ <p>Any byte or sequence of bytes in the original byte stream that is
+ <a href=#misinterpreted-for-compatibility>misinterpreted for compatibility</a> is a <a href=#parse-error>parse
+ error</a>.</p>
+
+ <p>One leading U+FEFF BYTE ORDER MARK character must be ignored if
+ any are present.</p>
+
+ <p class=note>The requirement to strip a U+FEFF BYTE ORDER MARK
+ character regardless of whether that character was used to determine
+ the byte order is a <a href=#willful-violation>willful violation</a> of Unicode,
+ motivated by a desire to increase the resilience of user agents in
+ the face of na&iuml;ve transcoders.</p>
+
+ <p>Any occurrences of any characters in the ranges U+0001 to U+0008,
+ <!-- HT, LF allowed --> <!-- U+000B is in the next list --> <!-- FF,
+ CR allowed --> U+000E to U+001F, <!-- ASCII allowed --> U+007F
+ <!--to U+0084, (U+0085 NEL not allowed), U+0086--> to U+009F, U+FDD0
+ to U+FDEF, and characters U+000B, U+FFFE, U+FFFF, U+1FFFE, U+1FFFF,
+ U+2FFFE, U+2FFFF, U+3FFFE, U+3FFFF, U+4FFFE, U+4FFFF, U+5FFFE,
+ U+5FFFF, U+6FFFE, U+6FFFF, U+7FFFE, U+7FFFF, U+8FFFE, U+8FFFF,
+ U+9FFFE, U+9FFFF, U+AFFFE, U+AFFFF, U+BFFFE, U+BFFFF, U+CFFFE,
+ U+CFFFF, U+DFFFE, U+DFFFF, U+EFFFE, U+EFFFF, U+FFFFE, U+FFFFF,
+ U+10FFFE, and U+10FFFF are <a href=#parse-error title="parse error">parse
+ errors</a>. These are all control characters or permanently
+ undefined Unicode characters (noncharacters).</p>
+
+ <p>U+000D CARRIAGE RETURN (CR) characters and U+000A LINE FEED (LF)
+ characters are treated specially. Any CR characters that are
+ followed by LF characters must be removed, and any CR characters not
+ followed by LF characters must be converted to LF characters. Thus,
+ newlines in HTML DOMs are represented by LF characters, and there
+ are never any CR characters in the input to the
+ <a href=#tokenization>tokenization</a> stage.</p>
+
+ <p>The <dfn id=next-input-character>next input character</dfn> is the first character in the
+ input stream that has not yet been <dfn id=consumed>consumed</dfn>. Initially,
+ the <i><a href=#next-input-character>next input character</a></i> is the first character in the
+ input. The <dfn id=current-input-character>current input character</dfn> is the last character
+ to have been <i><a href=#consumed>consumed</a></i>.</p>
+
+ <p>The <dfn id=insertion-point>insertion point</dfn> is the position (just before a
+ character or just before the end of the input stream) where content
+ inserted using <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> is actually
+ inserted. The insertion point is relative to the position of the
+ character immediately after it, it is not an absolute offset into
+ the input stream. Initially, the insertion point is
+ undefined.</p>
+
+ <p>The "EOF" character in the tables below is a conceptual character
+ representing the end of the <a href=#the-input-stream>input stream</a>. If the parser
+ is a <a href=#script-created-parser>script-created parser</a>, then the end of the
+ <a href=#the-input-stream>input stream</a> is reached when an <dfn id=explicit-eof-character>explicit "EOF"
+ character</dfn> (inserted by the <code title=dom-document-close><a href=#dom-document-close>document.close()</a></code> method) is
+ consumed. Otherwise, the "EOF" character is not a real character in
+ the stream, but rather the lack of any further characters.</p>
+
+
+ <h5 id=changing-the-encoding-while-parsing><span class=secno>13.2.2.4 </span>Changing the encoding while parsing</h5>
+
+ <p>When the parser requires the user agent to <dfn id=change-the-encoding>change the
+ encoding</dfn>, it must run the following steps. This might happen
+ if the <a href=#encoding-sniffing-algorithm>encoding sniffing algorithm</a> described above
+ failed to find an encoding, or if it found an encoding that was not
+ the actual encoding of the file.</p>
+
+ <ol><li>If the new encoding is identical or equivalent to the encoding
+ that is already being used to interpret the input stream, then set
+ the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> to
+ <i>certain</i> and abort these steps. This happens when the
+ encoding information found in the file matches what the
+ <a href=#encoding-sniffing-algorithm>encoding sniffing algorithm</a> determined to be the
+ encoding, and in the second pass through the parser if the first
+ pass found that the encoding sniffing algorithm described in the
+ earlier section failed to find the right encoding.</li>
+
+ <li>If the encoding that is already being used to interpret the
+ input stream is <a href=#a-utf-16-encoding>a UTF-16 encoding</a>, then set the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> to
+ <i>certain</i> and abort these steps. The new encoding is ignored;
+ if it was anything but the same encoding, then it would be clearly
+ incorrect.</li>
+
+ <li>If the new encoding is <a href=#a-utf-16-encoding>a UTF-16 encoding</a>, change
+ it to UTF-8.</li>
+
+ <li>If all the bytes up to the last byte converted by the current
+ decoder have the same Unicode interpretations in both the current
+ encoding and the new encoding, and if the user agent supports
+ changing the converter on the fly, then the user agent may change
+ to the new converter for the encoding on the fly. Set the
+ <a href="#document's-character-encoding">document's character encoding</a> and the encoding used to
+ convert the input stream to the new encoding, set the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> to
+ <i>certain</i>, and abort these steps.</li>
+
+ <li>Otherwise, <a href=#navigate>navigate</a><!--DONAV reparse--> to the
+ document again, with <a href=#replacement-enabled>replacement enabled</a>, and using
+ the same <a href=#source-browsing-context>source browsing context</a>, but this time skip
+ the <a href=#encoding-sniffing-algorithm>encoding sniffing algorithm</a> and instead just set
+ the encoding to the new encoding and the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> to
+ <i>certain</i>. Whenever possible, this should be done without
+ actually contacting the network layer (the bytes should be
+ re-parsed from memory), even if, e.g., the document is marked as
+ not being cacheable. If this is not possible and contacting the
+ network layer would involve repeating a request that uses a method
+ other than HTTP GET (<a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or
+ equivalent</a> for non-HTTP URLs), then instead set the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> to
+ <i>certain</i> and ignore the new encoding. The resource will be
+ misinterpreted. User agents may notify the user of the situation,
+ to aid in application development.</li>
+
+ </ol></div>
+
+
+ <div class=impl>
+
+ <h4 id=parse-state><span class=secno>13.2.3 </span>Parse state</h4>
+
+ <h5 id=the-insertion-mode><span class=secno>13.2.3.1 </span>The insertion mode</h5>
+
+ <p>The <dfn id=insertion-mode>insertion mode</dfn> is a state variable that controls
+ the primary operation of the tree construction stage.</p>
+
+ <p>Initially, the <a href=#insertion-mode>insertion mode</a> is "<a href=#the-initial-insertion-mode title="insertion mode: initial">initial</a>". It can change to
+ "<a href=#the-before-html-insertion-mode title="insertion mode: before html">before html</a>",
+ "<a href=#the-before-head-insertion-mode title="insertion mode: before head">before head</a>",
+ "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>", "<a href=#parsing-main-inheadnoscript title="insertion mode: in head noscript">in head noscript</a>",
+ "<a href=#the-after-head-insertion-mode title="insertion mode: after head">after head</a>", "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>", "<a href=#parsing-main-incdata title="insertion mode: text">text</a>", "<a href=#parsing-main-intable title="insertion
+ mode: in table">in table</a>", "<a href=#parsing-main-intabletext title="insertion mode: in
+ table text">in table text</a>", "<a href=#parsing-main-incaption title="insertion mode: in
+ caption">in caption</a>", "<a href=#parsing-main-incolgroup title="insertion mode: in column
+ group">in column group</a>", "<a href=#parsing-main-intbody title="insertion mode: in
+ table body">in table body</a>", "<a href=#parsing-main-intr title="insertion mode: in
+ row">in row</a>", "<a href=#parsing-main-intd title="insertion mode: in cell">in
+ cell</a>", "<a href=#parsing-main-inselect title="insertion mode: in select">in
+ select</a>", "<a href=#parsing-main-inselectintable title="insertion mode: in select in table">in
+ select in table</a>", "<a href=#parsing-main-afterbody title="insertion mode: after
+ body">after body</a>", "<a href=#parsing-main-inframeset title="insertion mode: in
+ frameset">in frameset</a>", "<a href=#parsing-main-afterframeset title="insertion mode: after
+ frameset">after frameset</a>", "<a href=#the-after-after-body-insertion-mode title="insertion mode:
+ after after body">after after body</a>", and "<a href=#the-after-after-frameset-insertion-mode title="insertion mode: after after frameset">after after
+ frameset</a>" during the course of the parsing, as described in
+ the <a href=#tree-construction>tree construction</a> stage. The insertion mode affects
+ how tokens are processed and whether CDATA sections are
+ supported.</p>
+
+ <p>Several of these modes, namely "<a href=#parsing-main-inhead title="insertion mode: in
+ head">in head</a>", "<a href=#parsing-main-inbody title="insertion mode: in body">in
+ body</a>", "<a href=#parsing-main-intable title="insertion mode: in table">in
+ table</a>", and "<a href=#parsing-main-inselect title="insertion mode: in select">in
+ select</a>", are special, in that the other modes defer to them
+ at various times. When the algorithm below says that the user agent
+ is to do something "<dfn id=using-the-rules-for>using the rules for</dfn> the <var title="">m</var> insertion mode", where <var title="">m</var> is one
+ of these modes, the user agent must use the rules described under
+ the <var title="">m</var> <a href=#insertion-mode>insertion mode</a>'s section, but
+ must leave the <a href=#insertion-mode>insertion mode</a> unchanged unless the
+ rules in <var title="">m</var> themselves switch the <a href=#insertion-mode>insertion
+ mode</a> to a new value.</p>
+
+ <p>When the insertion mode is switched to "<a href=#parsing-main-incdata title="insertion
+ mode: text">text</a>" or "<a href=#parsing-main-intabletext title="insertion mode: in table
+ text">in table text</a>", the <dfn id=original-insertion-mode>original insertion mode</dfn>
+ is also set. This is the insertion mode to which the tree
+ construction stage will return.</p>
+
+ <hr><p>When the steps below require the UA to <dfn id=reset-the-insertion-mode-appropriately>reset the insertion
+ mode appropriately</dfn>, it means the UA must follow these
+ steps:</p>
+
+ <ol><li>Let <var title="">last</var> be false.</li>
+
+ <li>Let <var title="">node</var> be the last node in the
+ <a href=#stack-of-open-elements>stack of open elements</a>.</li>
+
+ <li><i>Loop</i>: If <var title="">node</var> is the first node in
+ the stack of open elements, then set <var title="">last</var> to
+ true and set <var title="">node</var> to the <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element.
+ (<a href=#fragment-case>fragment case</a>)</li>
+
+ <li>If <var title="">node</var> is a <code><a href=#the-select-element>select</a></code> element,
+ then switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inselect title="insertion mode: in select">in select</a>" and abort these
+ steps. (<a href=#fragment-case>fragment case</a>)</li>
+
+ <li>If <var title="">node</var> is a <code><a href=#the-td-element>td</a></code> or
+ <code><a href=#the-th-element>th</a></code> element and <var title="">last</var> is false, then
+ switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intd title="insertion
+ mode: in cell">in cell</a>" and abort these steps.</li>
+
+ <li>If <var title="">node</var> is a <code><a href=#the-tr-element>tr</a></code> element, then
+ switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intr title="insertion
+ mode: in row">in row</a>" and abort these steps.</li>
+
+ <li>If <var title="">node</var> is a <code><a href=#the-tbody-element>tbody</a></code>,
+ <code><a href=#the-thead-element>thead</a></code>, or <code><a href=#the-tfoot-element>tfoot</a></code> element, then switch the
+ <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intbody title="insertion mode: in
+ table body">in table body</a>" and abort these steps.</li>
+
+ <li>If <var title="">node</var> is a <code><a href=#the-caption-element>caption</a></code> element,
+ then switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-incaption title="insertion mode: in caption">in caption</a>" and abort
+ these steps.</li>
+
+ <li>If <var title="">node</var> is a <code><a href=#the-colgroup-element>colgroup</a></code> element,
+ then switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-incolgroup title="insertion mode: in column group">in column group</a>" and
+ abort these steps. (<a href=#fragment-case>fragment case</a>)</li>
+
+ <li>If <var title="">node</var> is a <code><a href=#the-table-element>table</a></code> element,
+ then switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>" and abort these
+ steps.</li>
+
+ <li>If <var title="">node</var> is a <code><a href=#the-head-element>head</a></code> element,
+ then switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" ("<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>"! <em> not "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>"</em>!) and abort
+ these steps. (<a href=#fragment-case>fragment case</a>)</li> <!-- This is only
+ here for now in case people think that the spec accidentally
+ omitted it and try to "fix" it. Note that noscript-in-head is also
+ handled this way. This is all intentional. The only thing it
+ doesn't handle is the scripting-disabled fragment parsing case for
+ a <head> element containing a <noscript> which itself contains
+ something other than a <link> or a <style> element; you'd expect
+ that to break out of the <noscript> but it doesn't. This is an edge
+ case that doesn't affect the spec, since the algorithm for fragment
+ parsing is only used for innerHTML/outerHTML/insertAdjacentHTML(),
+ where we know scripting is enabled. -->
+
+ <li>If <var title="">node</var> is a <code><a href=#the-body-element>body</a></code> element,
+ then switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" and abort these
+ steps.</li>
+
+ <li>If <var title="">node</var> is a <code><a href=#frameset>frameset</a></code> element,
+ then switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inframeset title="insertion mode: in frameset">in frameset</a>" and abort
+ these steps. (<a href=#fragment-case>fragment case</a>)</li>
+
+ <li>If <var title="">node</var> is an <code><a href=#the-html-element>html</a></code> element,
+ then <!--: if the <span><code title="">head</code> element
+ pointer</span> is null,--> switch the <a href=#insertion-mode>insertion mode</a>
+ to "<a href=#the-before-head-insertion-mode title="insertion mode: before head">before
+ head</a>"<!--, otherwise, switch the <span>insertion mode</span>
+ to "<span title="insertion mode: after head">after head</span>".-->
+ Then, <!-- in either case, --> abort these steps. (<a href=#fragment-case>fragment
+ case</a>)</li> <!-- if the head element pointer can ever be
+ non-null when we're going through these steps, we'll need to
+ uncomment out the commented-out bits -->
+
+ <li>If <var title="">last</var> is true, then switch the
+ <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inbody title="insertion mode: in
+ body">in body</a>" and abort these steps. (<a href=#fragment-case>fragment
+ case</a>)</li>
+
+ <li>Let <var title="">node</var> now be the node before <var title="">node</var> in the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</li>
+
+ <li>Return to the step labeled <i>loop</i>.</li>
+
+ </ol><h5 id=the-stack-of-open-elements><span class=secno>13.2.3.2 </span>The stack of open elements</h5>
+
+ <p>Initially, the <dfn id=stack-of-open-elements>stack of open elements</dfn> is empty. The
+ stack grows downwards; the topmost node on the stack is the first
+ one added to the stack, and the bottommost node of the stack is the
+ most recently added node in the stack (notwithstanding when the
+ stack is manipulated in a random access fashion as part of <a href=#adoptionAgency>the handling for misnested tags</a>).</p>
+
+ <p>The "<a href=#the-before-html-insertion-mode title="insertion mode: before html">before
+ html</a>" <a href=#insertion-mode>insertion mode</a> creates the
+ <code><a href=#the-html-element>html</a></code> root element node, which is then added to the
+ stack.</p>
+
+ <p>In the <a href=#fragment-case>fragment case</a>, the <a href=#stack-of-open-elements>stack of open
+ elements</a> is initialized to contain an <code><a href=#the-html-element>html</a></code>
+ element that is created as part of <a href=#html-fragment-parsing-algorithm title="html fragment
+ parsing algorithm">that algorithm</a>. (The <a href=#fragment-case>fragment
+ case</a> skips the "<a href=#the-before-html-insertion-mode title="insertion mode: before
+ html">before html</a>" <a href=#insertion-mode>insertion mode</a>.)</p>
+
+ <p>The <code><a href=#the-html-element>html</a></code> node, however it is created, is the topmost
+ node of the stack. It only gets popped off the stack when the parser
+ <a href=#stop-parsing title="stop parsing">finishes</a>.</p>
+
+ <p>The <dfn id=current-node>current node</dfn> is the bottommost node in this
+ stack.</p>
+
+ <p>The <dfn id=current-table>current table</dfn> is the last <code><a href=#the-table-element>table</a></code>
+ element in the <a href=#stack-of-open-elements>stack of open elements</a>, if there is
+ one. If there is no <code><a href=#the-table-element>table</a></code> element in the <a href=#stack-of-open-elements>stack of
+ open elements</a> (<a href=#fragment-case>fragment case</a>), then the
+ <a href=#current-table>current table</a> is the first element in the <a href=#stack-of-open-elements>stack
+ of open elements</a> (the <code><a href=#the-html-element>html</a></code> element).</p>
+
+ <p>Elements in the stack fall into the following categories:</p>
+
+ <dl><dt><dfn id=special>Special</dfn></dt>
+ <dd><p>The following elements have varying levels of special
+ parsing rules: HTML's <code><a href=#the-address-element>address</a></code>, <code><a href=#the-applet-element>applet</a></code>,
+ <code><a href=#the-area-element>area</a></code>, <code><a href=#the-article-element>article</a></code>, <code><a href=#the-aside-element>aside</a></code>,
+ <code><a href=#the-base-element>base</a></code>, <code><a href=#basefont>basefont</a></code>, <code><a href=#bgsound>bgsound</a></code>,
+ <code><a href=#the-blockquote-element>blockquote</a></code>, <code><a href=#the-body-element>body</a></code>, <code><a href=#the-br-element>br</a></code>,
+ <code><a href=#the-button-element>button</a></code>, <code><a href=#the-caption-element>caption</a></code>, <code><a href=#center>center</a></code>,
+ <code><a href=#the-col-element>col</a></code>, <code><a href=#the-colgroup-element>colgroup</a></code>, <code><a href=#the-command-element>command</a></code>,
+ <code><a href=#the-dd-element>dd</a></code>, <code><a href=#the-details-element>details</a></code>, <code><a href=#dir>dir</a></code>,
+ <code><a href=#the-div-element>div</a></code>, <code><a href=#the-dl-element>dl</a></code>, <code><a href=#the-dt-element>dt</a></code>,
+ <code><a href=#the-embed-element>embed</a></code>, <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#the-figcaption-element>figcaption</a></code>,
+ <code><a href=#the-figure-element>figure</a></code>, <code><a href=#the-footer-element>footer</a></code>, <code><a href=#the-form-element>form</a></code>,
+ <code><a href=#frame>frame</a></code>, <code><a href=#frameset>frameset</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>,
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>,
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>, <code><a href=#the-head-element>head</a></code>, <code><a href=#the-header-element>header</a></code>,
+ <code><a href=#the-hgroup-element>hgroup</a></code>, <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-html-element>html</a></code>,
+ <code><a href=#the-iframe-element>iframe</a></code>, <!-- <code>image</code>, (commented out
+ because this isn't an element that can end up on the stack, so it
+ doesn't matter) --> <code><a href=#the-img-element>img</a></code>, <code><a href=#the-input-element>input</a></code>,
+ <code><a href=#isindex-0>isindex</a></code>, <code><a href=#the-li-element>li</a></code>, <code><a href=#the-link-element>link</a></code>,
+ <code><a href=#listing>listing</a></code>, <code><a href=#the-marquee-element>marquee</a></code>, <code><a href=#the-menu-element>menu</a></code>,
+ <code><a href=#the-meta-element>meta</a></code>, <code><a href=#the-nav-element>nav</a></code>, <code><a href=#noembed>noembed</a></code>,
+ <code><a href=#noframes>noframes</a></code>, <code><a href=#the-noscript-element>noscript</a></code>, <code><a href=#the-object-element>object</a></code>,
+ <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-p-element>p</a></code>, <code><a href=#the-param-element>param</a></code>,
+ <code><a href=#plaintext>plaintext</a></code>, <code><a href=#the-pre-element>pre</a></code>, <code><a href=#the-script-element>script</a></code>,
+ <code><a href=#the-section-element>section</a></code>, <code><a href=#the-select-element>select</a></code>, <code><a href=#the-style-element>style</a></code>,
+ <code><a href=#the-summary-element>summary</a></code>, <code><a href=#the-table-element>table</a></code>, <code><a href=#the-tbody-element>tbody</a></code>,
+ <code><a href=#the-td-element>td</a></code>, <code><a href=#the-textarea-element>textarea</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>,
+ <code><a href=#the-th-element>th</a></code>, <code><a href=#the-thead-element>thead</a></code>, <code><a href=#the-title-element>title</a></code>,
+ <code><a href=#the-tr-element>tr</a></code>, <code><a href=#the-ul-element>ul</a></code>, <code><a href=#the-wbr-element>wbr</a></code>, and
+ <code><a href=#xmp>xmp</a></code>; MathML's <code title="">mi</code>, <code title="">mo</code>, <code title="">mn</code>, <code title="">ms</code>, <code title="">mtext</code>, and <code title="">annotation-xml</code>; and SVG's <code title="">foreignObject</code>, <code title="">desc</code>, and
+ <code title="">title</code>.</dd> <!-- we could actually put
+ all non-HTML elements in this list, I think -->
+
+ <dt><dfn id=formatting>Formatting</dfn></dt>
+ <dd><p>The following HTML elements are those that end up in the
+ <a href=#list-of-active-formatting-elements>list of active formatting elements</a>: <code><a href=#the-a-element>a</a></code>,
+ <code><a href=#the-b-element>b</a></code>, <code><a href=#big>big</a></code>, <code><a href=#the-code-element>code</a></code>,
+ <code><a href=#the-em-element>em</a></code>, <code><a href=#font>font</a></code>, <code><a href=#the-i-element>i</a></code>,
+ <code><a href=#nobr>nobr</a></code>, <code><a href=#the-s-element>s</a></code>, <code><a href=#the-small-element>small</a></code>,
+ <code><a href=#strike>strike</a></code>, <code><a href=#the-strong-element>strong</a></code>, <code><a href=#tt>tt</a></code>, and
+ <code><a href=#the-u-element>u</a></code>.</dd>
+
+ <dt><dfn id=ordinary>Ordinary</dfn></dt>
+ <dd><p>All other elements found while parsing an HTML
+ document.</dd>
+
+ </dl><p>The <a href=#stack-of-open-elements>stack of open elements</a> is said to <dfn id=has-an-element-in-the-specific-scope title="has an element in the specific scope">have an element in a
+ specific scope</dfn> consisting of a list of element types <var title="">list</var> when the following algorithm terminates in a
+ match state:</p>
+
+ <ol><li><p>Initialize <var title="">node</var> to be the <a href=#current-node>current
+ node</a> (the bottommost node of the stack).</li>
+
+ <li><p>If <var title="">node</var> is the target node, terminate in
+ a match state.</li>
+
+ <li><p>Otherwise, if <var title="">node</var> is one of the element
+ types in <var title="">list</var>, terminate in a failure
+ state.</li>
+
+ <li><p>Otherwise, set <var title="">node</var> to the previous
+ entry in the <a href=#stack-of-open-elements>stack of open elements</a> and return to step
+ 2. (This will never fail, since the loop will always terminate in
+ the previous step if the top of the stack &mdash; an
+ <code><a href=#the-html-element>html</a></code> element &mdash; is reached.)</li>
+
+ </ol><p>The <a href=#stack-of-open-elements>stack of open elements</a> is said to <dfn id=has-an-element-in-scope title="has an element in scope">have an element in scope</dfn> when
+ it <a href=#has-an-element-in-the-specific-scope>has an element in the specific scope</a> consisting
+ of the following element types:</p>
+
+ <ul class=brief><li><code><a href=#the-applet-element>applet</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ <li><code><a href=#the-caption-element>caption</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ <li><code><a href=#the-html-element>html</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li> <!-- (This can only happen if the <var title="">node</var> is the topmost node of the <span>stack of open elements</span>, and prevents the next step from being invoked if there are no more elements in the stack.) -->
+ <li><code><a href=#the-table-element>table</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ <li><code><a href=#the-td-element>td</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ <li><code><a href=#the-th-element>th</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ <li><code><a href=#the-marquee-element>marquee</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ <li><code><a href=#the-object-element>object</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ <li><code title="">mi</code> in the <a href=#mathml-namespace>MathML namespace</a></li>
+ <li><code title="">mo</code> in the <a href=#mathml-namespace>MathML namespace</a></li>
+ <li><code title="">mn</code> in the <a href=#mathml-namespace>MathML namespace</a></li>
+ <li><code title="">ms</code> in the <a href=#mathml-namespace>MathML namespace</a></li>
+ <li><code title="">mtext</code> in the <a href=#mathml-namespace>MathML namespace</a></li>
+ <li><code title="">annotation-xml</code> in the <a href=#mathml-namespace>MathML namespace</a></li>
+ <li><code title="">foreignObject</code> in the <a href=#svg-namespace>SVG namespace</a></li>
+ <li><code title="">desc</code> in the <a href=#svg-namespace>SVG namespace</a></li>
+ <li><code title="">title</code> in the <a href=#svg-namespace>SVG namespace</a></li>
+ </ul><p>The <a href=#stack-of-open-elements>stack of open elements</a> is said to <dfn id=has-an-element-in-list-item-scope title="has an element in list item scope">have an element in list
+ item scope</dfn> when it <a href=#has-an-element-in-the-specific-scope>has an element in the specific
+ scope</a> consisting of the following element types:</p>
+
+ <ul class=brief><li>All the element types listed above for the <i><a href=#has-an-element-in-scope>has an element
+ in scope</a></i> algorithm.</li>
+ <li><code><a href=#the-ol-element>ol</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ <li><code><a href=#the-ul-element>ul</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ </ul><p>The <a href=#stack-of-open-elements>stack of open elements</a> is said to <dfn id=has-an-element-in-button-scope title="has an element in button scope">have an element in button
+ scope</dfn> when it <a href=#has-an-element-in-the-specific-scope>has an element in the specific
+ scope</a> consisting of the following element types:</p>
+
+ <ul class=brief><li>All the element types listed above for the <i><a href=#has-an-element-in-scope>has an element
+ in scope</a></i> algorithm.</li>
+ <li><code><a href=#the-button-element>button</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ </ul><p>The <a href=#stack-of-open-elements>stack of open elements</a> is said to <dfn id=has-an-element-in-table-scope title="has an element in table scope">have an element in table
+ scope</dfn> when it <a href=#has-an-element-in-the-specific-scope>has an element in the specific
+ scope</a> consisting of the following element types:</p>
+
+ <ul class=brief><li><code><a href=#the-html-element>html</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li> <!-- (This can only happen if the <var title="">node</var> is the topmost node of the <span>stack of open elements</span>, and prevents the next step from being invoked if there are no more elements in the stack.) -->
+ <li><code><a href=#the-table-element>table</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ </ul><p>The <a href=#stack-of-open-elements>stack of open elements</a> is said to <dfn id=has-an-element-in-select-scope title="has an element in select scope">have an element in select
+ scope</dfn> when it <a href=#has-an-element-in-the-specific-scope>has an element in the specific
+ scope</a> consisting of all element types <em>except</em> the
+ following:</p>
+
+ <ul class=brief><!--<li><code>select</code> in the <span>HTML namespace</span></li>--><li><code><a href=#the-optgroup-element>optgroup</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ <li><code><a href=#the-option-element>option</a></code> in the <a href=#html-namespace-0>HTML namespace</a></li>
+ </ul><p>Nothing happens if at any time any of the elements in the
+ <a href=#stack-of-open-elements>stack of open elements</a> are moved to a new location in,
+ or removed from, the <code><a href=#document>Document</a></code> tree. In particular, the
+ stack is not changed in this situation. This can cause, amongst
+ other strange effects, content to be appended to nodes that are no
+ longer in the DOM.</p>
+
+ <p class=note>In some cases (namely, when <a href=#adoptionAgency>closing misnested formatting elements</a>),
+ the stack is manipulated in a random-access fashion.</p>
+
+
+ <h5 id=the-list-of-active-formatting-elements><span class=secno>13.2.3.3 </span>The list of active formatting elements</h5>
+
+ <p>Initially, the <dfn id=list-of-active-formatting-elements>list of active formatting elements</dfn> is
+ empty. It is used to handle mis-nested <a href=#formatting title=formatting>formatting element tags</a>.</p>
+
+ <p>The list contains elements in the <a href=#formatting>formatting</a>
+ category, and scope markers. The scope markers are inserted when
+ entering <code><a href=#the-applet-element>applet</a></code> elements, buttons, <code><a href=#the-object-element>object</a></code>
+ elements, marquees, table cells, and table captions, and are used to
+ prevent formatting from "leaking" <em>into</em> <code><a href=#the-applet-element>applet</a></code>
+ elements, buttons, <code><a href=#the-object-element>object</a></code> elements, marquees, and
+ tables.</p>
+
+ <p class=note>The scope markers are unrelated to the concept of an
+ element being <a href=#has-an-element-in-scope title="has an element in scope">in
+ scope</a>.</p>
+
+ <p>In addition, each element in the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a> is associated with the token for which it was
+ created, so that further elements can be created for that token if
+ necessary.</p>
+
+ <p>When the steps below require the UA to <dfn id=push-onto-the-list-of-active-formatting-elements>push onto the list of
+ active formatting elements</dfn> an element <var title="">element</var>, the UA must perform the following steps:</p>
+
+ <ol><li><p>If there are already three elements in the <a href=#list-of-active-formatting-elements>list of
+ active formatting elements</a> after the last list marker, if
+ any, or anywhere in the list if there are no list markers, that
+ have the same tag name, namespace, and attributes as <var title="">element</var>, then remove the earliest such element from
+ the <a href=#list-of-active-formatting-elements>list of active formatting elements</a>. For these
+ purposes, the attributes must be compared as they were when the
+ elements were created by the parser; two elements have the same
+ attributes if all their parsed attributes can be paired such that
+ the two attributes in each pair have identical names, namespaces,
+ and values (the order of the attributes does not matter).</p>
+
+ <p class=note>This is the Noah's Ark clause. But with three per
+ family instead of two.</li> <!-- A sort of polyamorous Noah's
+ Ark, if you will. -->
+
+ <li><p>Add <var title="">element</var> to the <a href=#list-of-active-formatting-elements>list of active
+ formatting elements</a>.</li>
+
+ </ol><p>When the steps below require the UA to <dfn id=reconstruct-the-active-formatting-elements>reconstruct the
+ active formatting elements</dfn>, the UA must perform the following
+ steps:</p>
+
+ <ol><li>If there are no entries in the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a>, then there is nothing to reconstruct; stop this
+ algorithm.</li>
+
+ <li>If the last (most recently added) entry in the <a href=#list-of-active-formatting-elements>list of
+ active formatting elements</a> is a marker, or if it is an
+ element that is in the <a href=#stack-of-open-elements>stack of open elements</a>, then
+ there is nothing to reconstruct; stop this algorithm.</li>
+
+ <li>Let <var title="">entry</var> be the last (most recently added)
+ element in the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a>.</li>
+
+ <li>If there are no entries before <var title="">entry</var> in the
+ <a href=#list-of-active-formatting-elements>list of active formatting elements</a>, then jump to step
+ 8.</li>
+
+ <li>Let <var title="">entry</var> be the entry one earlier than
+ <var title="">entry</var> in the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a>.</li>
+
+ <li>If <var title="">entry</var> is neither a marker nor an element
+ that is also in the <a href=#stack-of-open-elements>stack of open elements</a>, go to step
+ 4.</li>
+
+ <li>Let <var title="">entry</var> be the element one later than
+ <var title="">entry</var> in the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a>.</li>
+
+ <li><a href=#create-an-element-for-the-token>Create an element for the token</a> for which the
+ element <var title="">entry</var> was created, to obtain <var title="">new element</var>.</li>
+
+ <li>Append <var title="">new element</var> to the <a href=#current-node>current
+ node</a> and push it onto the <a href=#stack-of-open-elements>stack of open
+ elements</a> so that it is the new <a href=#current-node>current
+ node</a>.</li>
+
+ <li>Replace the entry for <var title="">entry</var> in the list
+ with an entry for <var title="">new element</var>.</li>
+
+ <li>If the entry for <var title="">new element</var> in the
+ <a href=#list-of-active-formatting-elements>list of active formatting elements</a> is not the last
+ entry in the list, return to step 7.</li>
+
+ </ol><p>This has the effect of reopening all the formatting elements that
+ were opened in the current body, cell, or caption (whichever is
+ youngest) that haven't been explicitly closed.</p>
+
+ <p class=note>The way this specification is written, the
+ <a href=#list-of-active-formatting-elements>list of active formatting elements</a> always consists of
+ elements in chronological order with the least recently added
+ element first and the most recently added element last (except for
+ while steps 8 to 11 of the above algorithm are being executed, of
+ course).</p>
+
+ <p>When the steps below require the UA to <dfn id=clear-the-list-of-active-formatting-elements-up-to-the-last-marker>clear the list of
+ active formatting elements up to the last marker</dfn>, the UA must
+ perform the following steps:</p>
+
+ <ol><li>Let <var title="">entry</var> be the last (most recently added)
+ entry in the <a href=#list-of-active-formatting-elements>list of active formatting elements</a>.</li>
+
+ <li>Remove <var title="">entry</var> from the <a href=#list-of-active-formatting-elements>list of active
+ formatting elements</a>.</li>
+
+ <li>If <var title="">entry</var> was a marker, then stop the
+ algorithm at this point. The list has been cleared up to the last
+ marker.</li>
+
+ <li>Go to step 1.</li>
+
+ </ol><h5 id=the-element-pointers><span class=secno>13.2.3.4 </span>The element pointers</h5>
+
+ <p>Initially, the <dfn id=head-element-pointer><code title="">head</code> element
+ pointer</dfn> and the <dfn id=form-element-pointer><code title="">form</code> element
+ pointer</dfn> are both null.</p>
+
+ <p>Once a <code><a href=#the-head-element>head</a></code> element has been parsed (whether
+ implicitly or explicitly) the <a href=#head-element-pointer><code title="">head</code>
+ element pointer</a> gets set to point to this node.</p>
+
+ <p>The <a href=#form-element-pointer><code title="">form</code> element pointer</a>
+ points to the last <code><a href=#the-form-element>form</a></code> element that was opened and
+ whose end tag has not yet been seen. It is used to make form
+ controls associate with forms in the face of dramatically bad
+ markup, for historical reasons.</p>
+
+
+ <h5 id=other-parsing-state-flags><span class=secno>13.2.3.5 </span>Other parsing state flags</h5>
+
+ <p>The <dfn id=scripting-flag>scripting flag</dfn> is set to "enabled" if <a href=#concept-n-script title=concept-n-script>scripting was enabled</a> for the
+ <code><a href=#document>Document</a></code> with which the parser is associated when the
+ parser was created, and "disabled" otherwise.</p>
+
+ <p class=note>The <a href=#scripting-flag>scripting flag</a> can be enabled even
+ when the parser was originally created for the <a href=#html-fragment-parsing-algorithm>HTML fragment
+ parsing algorithm</a>, even though <code><a href=#the-script-element>script</a></code> elements
+ don't execute in that case.</p>
+
+ <p>The <dfn id=frameset-ok-flag>frameset-ok flag</dfn> is set to "ok" when the parser is
+ created. It is set to "not ok" after certain tokens are seen.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=tokenization><span class=secno>13.2.4 </span><dfn>Tokenization</dfn></h4>
+
+ <p>Implementations must act as if they used the following state
+ machine to tokenize HTML. The state machine must start in the
+ <a href=#data-state>data state</a>. Most states consume a single character,
+ which may have various side-effects, and either switches the state
+ machine to a new state to <em>reconsume</em> the same character, or
+ switches it to a new state (to consume the next character), or
+ repeats the same state (to consume the next character). Some states
+ have more complicated behavior and can consume several characters
+ before switching to another state. In some cases, the tokenizer
+ state is also changed by the tree construction stage.</p>
+
+ <p>The exact behavior of certain states depends on the
+ <a href=#insertion-mode>insertion mode</a> and the <a href=#stack-of-open-elements>stack of open
+ elements</a>. Certain states also use a <dfn id=temporary-buffer><var>temporary
+ buffer</var></dfn> to track progress.</p>
+
+ <p>The output of the tokenization step is a series of zero or more
+ of the following tokens: DOCTYPE, start tag, end tag, comment,
+ character, end-of-file. DOCTYPE tokens have a name, a public
+ identifier, a system identifier, and a <i>force-quirks
+ flag</i>. When a DOCTYPE token is created, its name, public
+ identifier, and system identifier must be marked as missing (which
+ is a distinct state from the empty string), and the <i>force-quirks
+ flag</i> must be set to <i>off</i> (its other state is
+ <i>on</i>). Start and end tag tokens have a tag name, a
+ <i>self-closing flag</i>, and a list of attributes, each of which
+ has a name and a value. When a start or end tag token is created,
+ its <i>self-closing flag</i> must be unset (its other state is that
+ it be set), and its attributes list must be empty. Comment and
+ character tokens have data.</p>
+
+ <p>When a token is emitted, it must immediately be handled by the
+ <a href=#tree-construction>tree construction</a> stage. The tree construction stage
+ can affect the state of the tokenization stage, and can insert
+ additional characters into the stream. (For example, the
+ <code><a href=#the-script-element>script</a></code> element can result in scripts executing and
+ using the <a href=#dynamic-markup-insertion>dynamic markup insertion</a> APIs to insert
+ characters into the stream being tokenized.)</p>
+
+ <p>When a start tag token is emitted with its <i>self-closing
+ flag</i> set, if the flag is not <dfn id=acknowledge-self-closing-flag title="acknowledge
+ self-closing flag">acknowledged</dfn> when it is processed by the
+ tree construction stage, that is a <a href=#parse-error>parse error</a>.</p>
+
+ <p>When an end tag token is emitted with attributes, that is a
+ <a href=#parse-error>parse error</a>.</p>
+
+ <p>When an end tag token is emitted with its <i>self-closing
+ flag</i> set, that is a <a href=#parse-error>parse error</a>.</p>
+
+ <p>An <dfn id=appropriate-end-tag-token>appropriate end tag token</dfn> is an end tag token whose
+ tag name matches the tag name of the last start tag to have been
+ emitted from this tokenizer, if any. If no start tag has been
+ emitted from this tokenizer, then no end tag token is
+ appropriate.</p>
+
+ <p>Before each step of the tokenizer, the user agent must first
+ check the <a href=#parser-pause-flag>parser pause flag</a>. If it is true, then the
+ tokenizer must abort the processing of any nested invocations of the
+ tokenizer, yielding control back to the caller.</p>
+
+ <p>The tokenizer state machine consists of the states defined in the
+ following subsections.</p>
+
+
+ <!-- Order of the lists below is supposed to be non-error then
+ error, by unicode, then EOF, ending with "anything else" -->
+
+
+ <h5 id=data-state><span class=secno>13.2.4.1 </span><dfn>Data state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0026 AMPERSAND (&amp;)</dt>
+ <dd>Switch to the <a href=#character-reference-in-data-state>character reference in data
+ state</a>.</dd>
+
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>Switch to the <a href=#tag-open-state>tag open state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit the <a href=#current-input-character>current input
+ character</a> as a character token.</dd>
+
+ <dt>EOF</dt>
+ <dd>Emit an end-of-file token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit the <a href=#current-input-character>current input character</a> as a character
+ token.</dd>
+
+ </dl><h5 id=character-reference-in-data-state><span class=secno>13.2.4.2 </span><dfn>Character reference in data state</dfn></h5>
+
+ <p>Attempt to <a href=#consume-a-character-reference>consume a character reference</a>, with no
+ <a href=#additional-allowed-character>additional allowed character</a>.</p>
+
+ <p>If nothing is returned, emit a U+0026 AMPERSAND character (&amp;)
+ token.</p>
+
+ <p>Otherwise, emit the character token that was returned.</p>
+
+ <p>Finally, switch to the <a href=#data-state>data state</a>.</p>
+
+
+ <h5 id=rcdata-state><span class=secno>13.2.4.3 </span><dfn>RCDATA state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0026 AMPERSAND (&amp;)</dt>
+ <dd>Switch to the <a href=#character-reference-in-rcdata-state>character reference in RCDATA
+ state</a>.</dd>
+
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>Switch to the <a href=#rcdata-less-than-sign-state>RCDATA less-than sign state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
+ character token.</dd>
+
+ <dt>EOF</dt>
+ <dd>Emit an end-of-file token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit the <a href=#current-input-character>current input character</a> as a character
+ token.</dd>
+
+ </dl><h5 id=character-reference-in-rcdata-state><span class=secno>13.2.4.4 </span><dfn>Character reference in RCDATA state</dfn></h5>
+
+ <p>Attempt to <a href=#consume-a-character-reference>consume a character reference</a>, with no
+ <a href=#additional-allowed-character>additional allowed character</a>.</p>
+
+ <p>If nothing is returned, emit a U+0026 AMPERSAND character (&amp;)
+ token.</p>
+
+ <p>Otherwise, emit the character token that was returned.</p>
+
+ <p>Finally, switch to the <a href=#rcdata-state>RCDATA state</a>.</p>
+
+
+ <h5 id=rawtext-state><span class=secno>13.2.4.5 </span><dfn>RAWTEXT state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>Switch to the <a href=#rawtext-less-than-sign-state>RAWTEXT less-than sign state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
+ character token.</dd>
+
+ <dt>EOF</dt>
+ <dd>Emit an end-of-file token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit the <a href=#current-input-character>current input character</a> as a character
+ token.</dd>
+
+ </dl><h5 id=script-data-state><span class=secno>13.2.4.6 </span><dfn>Script data state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>Switch to the <a href=#script-data-less-than-sign-state>script data less-than sign state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
+ character token.</dd>
+
+ <dt>EOF</dt>
+ <dd>Emit an end-of-file token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit the <a href=#current-input-character>current input character</a> as a character
+ token.</dd>
+
+ </dl><h5 id=plaintext-state><span class=secno>13.2.4.7 </span><dfn>PLAINTEXT state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
+ character token.</dd>
+
+ <dt>EOF</dt>
+ <dd>Emit an end-of-file token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit the <a href=#current-input-character>current input character</a> as a character
+ token.</dd>
+
+ </dl><h5 id=tag-open-state><span class=secno>13.2.4.8 </span><dfn>Tag open state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0021 EXCLAMATION MARK (!)</dt>
+ <dd>Switch to the <a href=#markup-declaration-open-state>markup declaration open state</a>.</dd>
+
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dd>Switch to the <a href=#end-tag-open-state>end tag open state</a>.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Create a new start tag token, set its tag name to the
+ lowercase version of the <a href=#current-input-character>current input character</a> (add 0x0020 to the
+ character's code point), then switch to the <a href=#tag-name-state>tag name
+ state</a>. (Don't emit the token yet; further details will
+ be filled in before it is emitted.)</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Create a new start tag token, set its tag name to the
+ <a href=#current-input-character>current input character</a>, then switch to the <a href=#tag-name-state>tag
+ name state</a>. (Don't emit the token yet; further details will
+ be filled in before it is emitted.)</dd>
+
+ <dt>U+003F QUESTION MARK (?)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#bogus-comment-state>bogus
+ comment state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit a U+003C LESS-THAN SIGN
+ character token and reconsume the <a href=#current-input-character>current input
+ character</a> in the <a href=#data-state>data state</a>.</dd>
+
+ </dl><h5 id=end-tag-open-state><span class=secno>13.2.4.9 </span><dfn>End tag open state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Create a new end tag token, set its tag name to the lowercase
+ version of the <a href=#current-input-character>current input character</a> (add 0x0020 to
+ the character's code point), then switch to the <a href=#tag-name-state>tag name
+ state</a>. (Don't emit the token yet; further details will be
+ filled in before it is emitted.)</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Create a new end tag token, set its tag name to the
+ <a href=#current-input-character>current input character</a>, then switch to the <a href=#tag-name-state>tag
+ name state</a>. (Don't emit the token yet; further details will
+ be filled in before it is emitted.)</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#data-state>data
+ state</a>.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit a U+003C LESS-THAN SIGN
+ character token and a U+002F SOLIDUS character token. Reconsume
+ the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#bogus-comment-state>bogus
+ comment state</a>.</dd>
+
+ </dl><h5 id=tag-name-state><span class=secno>13.2.4.10 </span><dfn>Tag name state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Switch to the <a href=#before-attribute-name-state>before attribute name state</a>.</dd>
+
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dd>Switch to the <a href=#self-closing-start-tag-state>self-closing start tag state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
+ token.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Append the lowercase version of the <a href=#current-input-character>current input
+ character</a> (add 0x0020 to the character's code point) to the
+ current tag token's tag name.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current tag token's tag name.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ tag token's tag name.</dd>
+
+ </dl><h5 id=rcdata-less-than-sign-state><span class=secno>13.2.4.11 </span><dfn>RCDATA less-than sign state</dfn></h5>
+ <!-- identical to the RAWTEXT less-than sign state, except s/RAWTEXT/RCDATA/g -->
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002F SOLIDUS (/)</dt>
+ <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Switch
+ to the <a href=#rcdata-end-tag-open-state>RCDATA end tag open state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token and reconsume the
+ <a href=#current-input-character>current input character</a> in the <a href=#rcdata-state>RCDATA
+ state</a>.</dd>
+
+ </dl><h5 id=rcdata-end-tag-open-state><span class=secno>13.2.4.12 </span><dfn>RCDATA end tag open state</dfn></h5>
+ <!-- identical to the RAWTEXT (and Script data) end tag open state, except s/RAWTEXT/RCDATA/g -->
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Create a new end tag token, and set its tag name to the
+ lowercase version of the <a href=#current-input-character>current input character</a> (add
+ 0x0020 to the character's code point). Append the <a href=#current-input-character>current
+ input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
+ switch to the <a href=#rcdata-end-tag-name-state>RCDATA end tag name state</a>. (Don't emit
+ the token yet; further details will be filled in before it is
+ emitted.)</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Create a new end tag token, and set its tag name to the
+ <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
+ input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
+ switch to the <a href=#rcdata-end-tag-name-state>RCDATA end tag name state</a>. (Don't emit
+ the token yet; further details will be filled in before it is
+ emitted.)</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
+ character token, and reconsume the <a href=#current-input-character>current input
+ character</a> in the <a href=#rcdata-state>RCDATA state</a>.</dd>
+
+ </dl><h5 id=rcdata-end-tag-name-state><span class=secno>13.2.4.13 </span><dfn>RCDATA end tag name state</dfn></h5>
+ <!-- identical to the RAWTEXT (and Script data) end tag name state, except s/RAWTEXT/RCDATA/g -->
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then switch to the <a href=#before-attribute-name-state>before attribute name
+ state</a>. Otherwise, treat it as per the "anything else" entry
+ below.</dd>
+
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then switch to the <a href=#self-closing-start-tag-state>self-closing start tag
+ state</a>. Otherwise, treat it as per the "anything else" entry
+ below.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then emit the current tag token and switch to the
+ <a href=#data-state>data state</a>. Otherwise, treat it as per the "anything
+ else" entry below.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Append the lowercase version of the <a href=#current-input-character>current input
+ character</a> (add 0x0020 to the character's code point) to the
+ current tag token's tag name. Append the <a href=#current-input-character>current input
+ character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ tag token's tag name. Append the <a href=#current-input-character>current input
+ character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
+ character token, a character token for each of the characters in
+ the <var><a href=#temporary-buffer>temporary buffer</a></var> (in the order they were added to
+ the buffer), and reconsume the <a href=#current-input-character>current input character</a>
+ in the <a href=#rcdata-state>RCDATA state</a>.</dd>
+
+ </dl><h5 id=rawtext-less-than-sign-state><span class=secno>13.2.4.14 </span><dfn>RAWTEXT less-than sign state</dfn></h5>
+ <!-- identical to the RCDATA less-than sign state, except s/RCDATA/RAWTEXT/g -->
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002F SOLIDUS (/)</dt>
+ <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Switch
+ to the <a href=#rawtext-end-tag-open-state>RAWTEXT end tag open state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token and reconsume the
+ <a href=#current-input-character>current input character</a> in the <a href=#rawtext-state>RAWTEXT
+ state</a>.</dd>
+
+ </dl><h5 id=rawtext-end-tag-open-state><span class=secno>13.2.4.15 </span><dfn>RAWTEXT end tag open state</dfn></h5>
+ <!-- identical to the RCDATA (and Script data) end tag open state, except s/RCDATA/RAWTEXT/g -->
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Create a new end tag token, and set its tag name to the
+ lowercase version of the <a href=#current-input-character>current input character</a> (add
+ 0x0020 to the character's code point). Append the <a href=#current-input-character>current
+ input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
+ switch to the <a href=#rawtext-end-tag-name-state>RAWTEXT end tag name state</a>. (Don't emit
+ the token yet; further details will be filled in before it is
+ emitted.)</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Create a new end tag token, and set its tag name to the
+ <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
+ input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
+ switch to the <a href=#rawtext-end-tag-name-state>RAWTEXT end tag name state</a>. (Don't emit
+ the token yet; further details will be filled in before it is
+ emitted.)</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
+ character token, and reconsume the <a href=#current-input-character>current input
+ character</a> in the <a href=#rawtext-state>RAWTEXT state</a>.</dd>
+
+ </dl><h5 id=rawtext-end-tag-name-state><span class=secno>13.2.4.16 </span><dfn>RAWTEXT end tag name state</dfn></h5>
+ <!-- identical to the RCDATA (and Script data) end tag name state, except s/RCDATA/RAWTEXT/g -->
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then switch to the <a href=#before-attribute-name-state>before attribute name
+ state</a>. Otherwise, treat it as per the "anything else" entry
+ below.</dd>
+
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then switch to the <a href=#self-closing-start-tag-state>self-closing start tag
+ state</a>. Otherwise, treat it as per the "anything else" entry
+ below.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then emit the current tag token and switch to the
+ <a href=#data-state>data state</a>. Otherwise, treat it as per the "anything
+ else" entry below.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Append the lowercase version of the <a href=#current-input-character>current input
+ character</a> (add 0x0020 to the character's code point) to the
+ current tag token's tag name. Append the <a href=#current-input-character>current input
+ character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ tag token's tag name. Append the <a href=#current-input-character>current input
+ character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
+ character token, a character token for each of the characters in
+ the <var><a href=#temporary-buffer>temporary buffer</a></var> (in the order they were added to
+ the buffer), and reconsume the <a href=#current-input-character>current input character</a>
+ in the <a href=#rawtext-state>RAWTEXT state</a>.</dd>
+
+ </dl><h5 id=script-data-less-than-sign-state><span class=secno>13.2.4.17 </span><dfn>Script data less-than sign state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002F SOLIDUS (/)</dt>
+ <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Switch
+ to the <a href=#script-data-end-tag-open-state>script data end tag open state</a>.</dd>
+
+ <dt>U+0021 EXCLAMATION MARK (!)</dt>
+ <dd>Switch to the <a href=#script-data-escape-start-state>script data escape start state</a>. Emit
+ a U+003C LESS-THAN SIGN character token and a U+0021 EXCLAMATION
+ MARK character token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token and reconsume the
+ <a href=#current-input-character>current input character</a> in the <a href=#script-data-state>script data
+ state</a>.</dd>
+
+ </dl><h5 id=script-data-end-tag-open-state><span class=secno>13.2.4.18 </span><dfn>Script data end tag open state</dfn></h5>
+ <!-- identical to the RCDATA (and RAWTEXT) end tag open state, except s/RCDATA/Script data/g -->
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Create a new end tag token, and set its tag name to the
+ lowercase version of the <a href=#current-input-character>current input character</a> (add
+ 0x0020 to the character's code point). Append the <a href=#current-input-character>current
+ input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
+ switch to the <a href=#script-data-end-tag-name-state>script data end tag name state</a>. (Don't emit
+ the token yet; further details will be filled in before it is
+ emitted.)</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Create a new end tag token, and set its tag name to the
+ <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
+ input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
+ switch to the <a href=#script-data-end-tag-name-state>script data end tag name state</a>. (Don't emit
+ the token yet; further details will be filled in before it is
+ emitted.)</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
+ character token, and reconsume the <a href=#current-input-character>current input
+ character</a> in the <a href=#script-data-state>script data state</a>.</dd>
+
+ </dl><h5 id=script-data-end-tag-name-state><span class=secno>13.2.4.19 </span><dfn>Script data end tag name state</dfn></h5>
+ <!-- identical to the RCDATA (and RAWTEXT) end tag name state, except s/RCDATA/Script data/g -->
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then switch to the <a href=#before-attribute-name-state>before attribute name
+ state</a>. Otherwise, treat it as per the "anything else" entry
+ below.</dd>
+
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then switch to the <a href=#self-closing-start-tag-state>self-closing start tag
+ state</a>. Otherwise, treat it as per the "anything else" entry
+ below.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then emit the current tag token and switch to the
+ <a href=#data-state>data state</a>. Otherwise, treat it as per the "anything
+ else" entry below.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Append the lowercase version of the <a href=#current-input-character>current input
+ character</a> (add 0x0020 to the character's code point) to the
+ current tag token's tag name. Append the <a href=#current-input-character>current input
+ character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ tag token's tag name. Append the <a href=#current-input-character>current input
+ character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
+ character token, a character token for each of the characters in
+ the <var><a href=#temporary-buffer>temporary buffer</a></var> (in the order they were added to
+ the buffer), and reconsume the <a href=#current-input-character>current input character</a>
+ in the <a href=#script-data-state>script data state</a>.</dd>
+
+ </dl><h5 id=script-data-escape-start-state><span class=secno>13.2.4.20 </span><dfn>Script data escape start state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Switch to the <a href=#script-data-escape-start-dash-state>script data escape start dash
+ state</a>. Emit a U+002D HYPHEN-MINUS character token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Reconsume the <a href=#current-input-character>current input character</a> in the
+ <a href=#script-data-state>script data state</a>.</dd>
+
+ </dl><h5 id=script-data-escape-start-dash-state><span class=secno>13.2.4.21 </span><dfn>Script data escape start dash state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Switch to the <a href=#script-data-escaped-dash-dash-state>script data escaped dash dash
+ state</a>. Emit a U+002D HYPHEN-MINUS character token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Reconsume the <a href=#current-input-character>current input character</a> in the
+ <a href=#script-data-state>script data state</a>.</dd>
+
+ </dl><h5 id=script-data-escaped-state><span class=secno>13.2.4.22 </span><dfn>Script data escaped state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Switch to the <a href=#script-data-escaped-dash-state>script data escaped dash state</a>. Emit
+ a U+002D HYPHEN-MINUS character token.</dd>
+
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>Switch to the <a href=#script-data-escaped-less-than-sign-state>script data escaped less-than sign
+ state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
+ character token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit the <a href=#current-input-character>current input character</a> as a character
+ token.</dd>
+
+ </dl><h5 id=script-data-escaped-dash-state><span class=secno>13.2.4.23 </span><dfn>Script data escaped dash state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Switch to the <a href=#script-data-escaped-dash-dash-state>script data escaped dash dash
+ state</a>. Emit a U+002D HYPHEN-MINUS character token.</dd>
+
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>Switch to the <a href=#script-data-escaped-less-than-sign-state>script data escaped less-than sign
+ state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#script-data-escaped-state>script data
+ escaped state</a>. Emit a U+FFFD REPLACEMENT CHARACTER character
+ token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Switch to the <a href=#script-data-escaped-state>script data escaped state</a>. Emit the
+ <a href=#current-input-character>current input character</a> as a character token.</dd>
+
+ </dl><h5 id=script-data-escaped-dash-dash-state><span class=secno>13.2.4.24 </span><dfn>Script data escaped dash dash state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Emit a U+002D HYPHEN-MINUS character token.</dd>
+
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>Switch to the <a href=#script-data-escaped-less-than-sign-state>script data escaped less-than sign
+ state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#script-data-state>script data state</a>. Emit a U+003E
+ GREATER-THAN SIGN character token.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#script-data-escaped-state>script data
+ escaped state</a>. Emit a U+FFFD REPLACEMENT CHARACTER character
+ token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Switch to the <a href=#script-data-escaped-state>script data escaped state</a>. Emit the
+ <a href=#current-input-character>current input character</a> as a character token.</dd>
+
+ </dl><h5 id=script-data-escaped-less-than-sign-state><span class=secno>13.2.4.25 </span><dfn>Script data escaped less-than sign state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002F SOLIDUS (/)</dt>
+ <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Switch
+ to the <a href=#script-data-escaped-end-tag-open-state>script data escaped end tag open state</a>.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Append
+ the lowercase version of the <a href=#current-input-character>current input character</a>
+ (add 0x0020 to the character's code point) to the <var><a href=#temporary-buffer>temporary
+ buffer</a></var>. Switch to the <a href=#script-data-double-escape-start-state>script data double escape start
+ state</a>. Emit a U+003C LESS-THAN SIGN character token and the
+ <a href=#current-input-character>current input character</a> as a character token.</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Append
+ the <a href=#current-input-character>current input character</a> to the <var><a href=#temporary-buffer>temporary
+ buffer</a></var>. Switch to the <a href=#script-data-double-escape-start-state>script data double escape start
+ state</a>. Emit a U+003C LESS-THAN SIGN character token and the
+ <a href=#current-input-character>current input character</a> as a character token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token and reconsume the
+ <a href=#current-input-character>current input character</a> in the <a href=#script-data-escaped-state>script data
+ escaped state</a>.</dd>
+
+ </dl><h5 id=script-data-escaped-end-tag-open-state><span class=secno>13.2.4.26 </span><dfn>Script data escaped end tag open state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Create a new end tag token, and set its tag name to the
+ lowercase version of the <a href=#current-input-character>current input character</a> (add
+ 0x0020 to the character's code point). Append the <a href=#current-input-character>current
+ input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
+ switch to the <a href=#script-data-escaped-end-tag-name-state>script data escaped end tag name
+ state</a>. (Don't emit the token yet; further details will be
+ filled in before it is emitted.)</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Create a new end tag token, and set its tag name to the
+ <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
+ input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
+ switch to the <a href=#script-data-escaped-end-tag-name-state>script data escaped end tag name
+ state</a>. (Don't emit the token yet; further details will be
+ filled in before it is emitted.)</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
+ character token, and reconsume the <a href=#current-input-character>current input
+ character</a> in the <a href=#script-data-escaped-state>script data escaped state</a>.</dd>
+
+ </dl><h5 id=script-data-escaped-end-tag-name-state><span class=secno>13.2.4.27 </span><dfn>Script data escaped end tag name state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then switch to the <a href=#before-attribute-name-state>before attribute name
+ state</a>. Otherwise, treat it as per the "anything else" entry
+ below.</dd>
+
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then switch to the <a href=#self-closing-start-tag-state>self-closing start tag
+ state</a>. Otherwise, treat it as per the "anything else" entry
+ below.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>If the current end tag token is an <a href=#appropriate-end-tag-token>appropriate end tag
+ token</a>, then emit the current tag token and switch to the
+ <a href=#data-state>data state</a>. Otherwise, treat it as per the "anything
+ else" entry below.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Append the lowercase version of the <a href=#current-input-character>current input
+ character</a> (add 0x0020 to the character's code point) to the
+ current tag token's tag name. Append the <a href=#current-input-character>current input
+ character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ tag token's tag name. Append the <a href=#current-input-character>current input
+ character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS
+ character token, a character token for each of the characters in
+ the <var><a href=#temporary-buffer>temporary buffer</a></var> (in the order they were added to
+ the buffer), and reconsume the <a href=#current-input-character>current input character</a>
+ in the <a href=#script-data-escaped-state>script data escaped state</a>.</dd>
+
+ </dl><h5 id=script-data-double-escape-start-state><span class=secno>13.2.4.28 </span><dfn>Script data double escape start state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>If the <var><a href=#temporary-buffer>temporary buffer</a></var> is the string "<code title="">script</code>", then switch to the <a href=#script-data-double-escaped-state>script data
+ double escaped state</a>. Otherwise, switch to the <a href=#script-data-escaped-state>script
+ data escaped state</a>. Emit the <a href=#current-input-character>current input
+ character</a> as a character token.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Append the lowercase version of the <a href=#current-input-character>current input
+ character</a> (add 0x0020 to the character's code point) to the
+ <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
+ character</a> as a character token.</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the
+ <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
+ character</a> as a character token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Reconsume the <a href=#current-input-character>current input character</a> in the
+ <a href=#script-data-escaped-state>script data escaped state</a>.</dd>
+
+ </dl><h5 id=script-data-double-escaped-state><span class=secno>13.2.4.29 </span><dfn>Script data double escaped state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Switch to the <a href=#script-data-double-escaped-dash-state>script data double escaped dash
+ state</a>. Emit a U+002D HYPHEN-MINUS character token.</dd>
+
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>Switch to the <a href=#script-data-double-escaped-less-than-sign-state>script data double escaped less-than
+ sign state</a>. Emit a U+003C LESS-THAN SIGN character
+ token.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
+ character token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Emit the <a href=#current-input-character>current input character</a> as a character
+ token.</dd>
+
+ </dl><h5 id=script-data-double-escaped-dash-state><span class=secno>13.2.4.30 </span><dfn>Script data double escaped dash state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Switch to the <a href=#script-data-double-escaped-dash-dash-state>script data double escaped dash dash
+ state</a>. Emit a U+002D HYPHEN-MINUS character token.</dd>
+
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>Switch to the <a href=#script-data-double-escaped-less-than-sign-state>script data double escaped less-than
+ sign state</a>. Emit a U+003C LESS-THAN SIGN character
+ token.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#script-data-double-escaped-state>script data
+ double escaped state</a>. Emit a U+FFFD REPLACEMENT CHARACTER
+ character token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Switch to the <a href=#script-data-double-escaped-state>script data double escaped
+ state</a>. Emit the <a href=#current-input-character>current input character</a> as a
+ character token.</dd>
+
+ </dl><h5 id=script-data-double-escaped-dash-dash-state><span class=secno>13.2.4.31 </span><dfn>Script data double escaped dash dash state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Emit a U+002D HYPHEN-MINUS character token.</dd>
+
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd>Switch to the <a href=#script-data-double-escaped-less-than-sign-state>script data double escaped less-than
+ sign state</a>. Emit a U+003C LESS-THAN SIGN character
+ token.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#script-data-state>script data state</a>. Emit a U+003E
+ GREATER-THAN SIGN character token.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#script-data-double-escaped-state>script data
+ double escaped state</a>. Emit a U+FFFD REPLACEMENT CHARACTER
+ character token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Switch to the <a href=#script-data-double-escaped-state>script data double escaped
+ state</a>. Emit the <a href=#current-input-character>current input character</a> as a
+ character token.</dd>
+
+ </dl><h5 id=script-data-double-escaped-less-than-sign-state><span class=secno>13.2.4.32 </span><dfn>Script data double escaped less-than sign state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002F SOLIDUS (/)</dt>
+ <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Switch
+ to the <a href=#script-data-double-escape-end-state>script data double escape end state</a>. Emit a
+ U+002F SOLIDUS character token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Reconsume the <a href=#current-input-character>current input character</a> in the
+ <a href=#script-data-double-escaped-state>script data double escaped state</a>.</dd>
+
+ </dl><h5 id=script-data-double-escape-end-state><span class=secno>13.2.4.33 </span><dfn>Script data double escape end state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>If the <var><a href=#temporary-buffer>temporary buffer</a></var> is the string "<code title="">script</code>", then switch to the <a href=#script-data-escaped-state>script data
+ escaped state</a>. Otherwise, switch to the <a href=#script-data-double-escaped-state>script data
+ double escaped state</a>. Emit the <a href=#current-input-character>current input
+ character</a> as a character token.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Append the lowercase version of the <a href=#current-input-character>current input
+ character</a> (add 0x0020 to the character's code point) to the
+ <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
+ character</a> as a character token.</dd>
+
+ <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the
+ <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
+ character</a> as a character token.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Reconsume the <a href=#current-input-character>current input character</a> in the
+ <a href=#script-data-double-escaped-state>script data double escaped state</a>.</dd>
+
+ </dl><h5 id=before-attribute-name-state><span class=secno>13.2.4.34 </span><dfn>Before attribute name state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Ignore the character.</dd>
+
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dd>Switch to the <a href=#self-closing-start-tag-state>self-closing start tag state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
+ token.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Start a new attribute in the current tag token. Set that
+ attribute's name to the lowercase version of the <a href=#current-input-character>current input
+ character</a> (add 0x0020 to the character's code point), and its
+ value to the empty string. Switch to the <a href=#attribute-name-state>attribute name
+ state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Start a new attribute in the current
+ tag token. Set that attribute's name to a U+FFFD REPLACEMENT
+ CHARACTER character, and its value to the empty string. Switch to
+ the <a href=#attribute-name-state>attribute name state</a>.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dt>U+003D EQUALS SIGN (=)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Treat it as per the "anything else"
+ entry below.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Start a new attribute in the current tag token. Set that
+ attribute's name to the <a href=#current-input-character>current input character</a>, and
+ its value to the empty string. Switch to the <a href=#attribute-name-state>attribute name
+ state</a>.</dd>
+
+ </dl><h5 id=attribute-name-state><span class=secno>13.2.4.35 </span><dfn>Attribute name state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Switch to the <a href=#after-attribute-name-state>after attribute name state</a>.</dd>
+
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dd>Switch to the <a href=#self-closing-start-tag-state>self-closing start tag state</a>.</dd>
+
+ <dt>U+003D EQUALS SIGN (=)</dt>
+ <dd>Switch to the <a href=#before-attribute-value-state>before attribute value state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
+ token.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Append the lowercase version of the <a href=#current-input-character>current input
+ character</a> (add 0x0020 to the character's code point) to the
+ current attribute's name.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current attribute's name.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Treat it as per the "anything else"
+ entry below.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ attribute's name.</dd>
+
+ </dl><p>When the user agent leaves the attribute name state (and before
+ emitting the tag token, if appropriate), the complete attribute's
+ name must be compared to the other attributes on the same token;
+ if there is already an attribute on the token with the exact same
+ name, then this is a <a href=#parse-error>parse error</a> and the new
+ attribute must be dropped, along with the value that gets
+ associated with it (if any).</p>
+
+
+ <h5 id=after-attribute-name-state><span class=secno>13.2.4.36 </span><dfn>After attribute name state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Ignore the character.</dd>
+
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dd>Switch to the <a href=#self-closing-start-tag-state>self-closing start tag state</a>.</dd>
+
+ <dt>U+003D EQUALS SIGN (=)</dt>
+ <dd>Switch to the <a href=#before-attribute-value-state>before attribute value state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
+ token.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Start a new attribute in the current tag token. Set that
+ attribute's name to the lowercase version of the <a href=#current-input-character>current
+ input character</a> (add 0x0020 to the character's code point),
+ and its value to the empty string. Switch to the <a href=#attribute-name-state>attribute
+ name state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Start a new attribute in the current
+ tag token. Set that attribute's name to a U+FFFD REPLACEMENT
+ CHARACTER character, and its value to the empty string. Switch to
+ the <a href=#attribute-name-state>attribute name state</a>.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Treat it as per the "anything else"
+ entry below.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Start a new attribute in the current tag token. Set that
+ attribute's name to the <a href=#current-input-character>current input character</a>, and
+ its value to the empty string. Switch to the <a href=#attribute-name-state>attribute name
+ state</a>.</dd>
+
+ </dl><h5 id=before-attribute-value-state><span class=secno>13.2.4.37 </span><dfn>Before attribute value state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Ignore the character.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dd>Switch to the <a href=#attribute-value-(double-quoted)-state>attribute value (double-quoted) state</a>.</dd>
+
+ <dt>U+0026 AMPERSAND (&amp;)</dt>
+ <dd>Switch to the <a href=#attribute-value-(unquoted)-state>attribute value (unquoted) state</a>
+ and reconsume this <a href=#current-input-character>current input character</a>.</dd>
+
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dd>Switch to the <a href=#attribute-value-(single-quoted)-state>attribute value (single-quoted) state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current attribute's value. Switch to the
+ <a href=#attribute-value-(unquoted)-state>attribute value (unquoted) state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#data-state>data
+ state</a>. Emit the current tag token.</dd>
+
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dt>U+003D EQUALS SIGN (=)</dt>
+ <dt>U+0060 GRAVE ACCENT (`)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Treat it as per the "anything else"
+ entry below.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ attribute's value. Switch to the <a href=#attribute-value-(unquoted)-state>attribute value (unquoted)
+ state</a>.</dd>
+
+ </dl><h5 id=attribute-value-(double-quoted)-state><span class=secno>13.2.4.38 </span><dfn>Attribute value (double-quoted) state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0022 QUOTATION MARK (")</dt>
+ <dd>Switch to the <a href=#after-attribute-value-(quoted)-state>after attribute value (quoted)
+ state</a>.</dd>
+
+ <dt>U+0026 AMPERSAND (&amp;)</dt>
+ <dd>Switch to the <a href=#character-reference-in-attribute-value-state>character reference in attribute value
+ state</a>, with the <a href=#additional-allowed-character>additional allowed character</a>
+ being U+0022 QUOTATION MARK (").</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current attribute's value.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ attribute's value.</dd>
+
+ </dl><h5 id=attribute-value-(single-quoted)-state><span class=secno>13.2.4.39 </span><dfn>Attribute value (single-quoted) state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0027 APOSTROPHE (')</dt>
+ <dd>Switch to the <a href=#after-attribute-value-(quoted)-state>after attribute value (quoted)
+ state</a>.</dd>
+
+ <dt>U+0026 AMPERSAND (&amp;)</dt>
+ <dd>Switch to the <a href=#character-reference-in-attribute-value-state>character reference in attribute value
+ state</a>, with the <a href=#additional-allowed-character>additional allowed character</a>
+ being U+0027 APOSTROPHE (').</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current attribute's value.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ attribute's value.</dd>
+
+ </dl><h5 id=attribute-value-(unquoted)-state><span class=secno>13.2.4.40 </span><dfn>Attribute value (unquoted) state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Switch to the <a href=#before-attribute-name-state>before attribute name state</a>.</dd>
+
+ <dt>U+0026 AMPERSAND (&amp;)</dt>
+ <dd>Switch to the <a href=#character-reference-in-attribute-value-state>character reference in attribute value
+ state</a>, with the <a href=#additional-allowed-character>additional allowed character</a>
+ being U+003E GREATER-THAN SIGN (&gt;).</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
+ token.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current attribute's value.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
+ <dt>U+003D EQUALS SIGN (=)</dt>
+ <dt>U+0060 GRAVE ACCENT (`)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Treat it as per the "anything else"
+ entry below.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ attribute's value.</dd>
+
+ </dl><h5 id=character-reference-in-attribute-value-state><span class=secno>13.2.4.41 </span><dfn>Character reference in attribute value state</dfn></h5>
+
+ <p>Attempt to <a href=#consume-a-character-reference>consume a character reference</a>.</p>
+
+ <p>If nothing is returned, append a U+0026 AMPERSAND character
+ (&amp;) to the current attribute's value.</p>
+
+ <p>Otherwise, append the returned character token to the current
+ attribute's value.</p>
+
+ <p>Finally, switch back to the attribute value state that switched
+ into this state.</p>
+
+
+ <h5 id=after-attribute-value-(quoted)-state><span class=secno>13.2.4.42 </span><dfn>After attribute value (quoted) state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Switch to the <a href=#before-attribute-name-state>before attribute name state</a>.</dd>
+
+ <dt>U+002F SOLIDUS (/)</dt>
+ <dd>Switch to the <a href=#self-closing-start-tag-state>self-closing start tag state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
+ token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the character in
+ the <a href=#before-attribute-name-state>before attribute name state</a>.</dd>
+
+ </dl><h5 id=self-closing-start-tag-state><span class=secno>13.2.4.43 </span><dfn>Self-closing start tag state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Set the <i>self-closing flag</i> of the current tag
+ token. Switch to the <a href=#data-state>data state</a>. Emit the current tag
+ token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the character in
+ the <a href=#before-attribute-name-state>before attribute name state</a>.</dd>
+
+ </dl><h5 id=bogus-comment-state><span class=secno>13.2.4.44 </span><dfn>Bogus comment state</dfn></h5>
+
+ <p>Consume every character up to and including the first U+003E
+ GREATER-THAN SIGN character (&gt;) or the end of the file (EOF),
+ whichever comes first. Emit a comment token whose data is the
+ concatenation of all the characters starting from and including the
+ character that caused the state machine to switch into the bogus
+ comment state, up to and including the character immediately before
+ the last consumed character (i.e. up to the character just before
+ the U+003E or EOF character), but with any U+0000 NULL characters
+ replaced by U+FFFD REPLACEMENT CHARACTER characters. (If the comment
+ was started by the end of the file (EOF), the token is empty.)</p>
+
+ <p>Switch to the <a href=#data-state>data state</a>.</p>
+
+ <p>If the end of the file was reached, reconsume the EOF
+ character.</p>
+
+
+ <h5 id=markup-declaration-open-state><span class=secno>13.2.4.45 </span><dfn>Markup declaration open state</dfn></h5>
+
+ <p>If the next two characters are both U+002D HYPHEN-MINUS
+ characters (-), consume those two characters, create a comment token
+ whose data is the empty string, and switch to the <a href=#comment-start-state>comment
+ start state</a>.</p>
+
+ <p>Otherwise, if the next seven characters are an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the word "DOCTYPE", then consume
+ those characters and switch to the <a href=#doctype-state>DOCTYPE state</a>.</p>
+
+ <p>Otherwise, if the <a href=#current-node>current node</a> is not an element in
+ the <a href=#html-namespace-0>HTML namespace</a> and the next seven characters are an
+ <a href=#case-sensitive>case-sensitive</a> match for the string "[CDATA[" (the five
+ uppercase letters "CDATA" with a U+005B LEFT SQUARE BRACKET
+ character before and after), then consume those characters and
+ switch to the <a href=#cdata-section-state>CDATA section state</a>.</p>
+
+ <p>Otherwise, this is a <a href=#parse-error>parse error</a>. Switch to the
+ <a href=#bogus-comment-state>bogus comment state</a>. The next character that is
+ consumed, if any, is the first character that will be in the
+ comment.</p>
+
+
+ <h5 id=comment-start-state><span class=secno>13.2.4.46 </span><dfn>Comment start state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Switch to the <a href=#comment-start-dash-state>comment start dash state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the comment token's data. Switch to the <a href=#comment-state>comment
+ state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#data-state>data
+ state</a>. Emit the comment token.</dd> <!-- see comment in
+ comment end state -->
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume
+ the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the comment
+ token's data. Switch to the <a href=#comment-state>comment state</a>.</dd>
+
+ </dl><h5 id=comment-start-dash-state><span class=secno>13.2.4.47 </span><dfn>Comment start dash state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Switch to the <a href=#comment-end-state>comment end state</a></dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+002D HYPHEN-MINUS
+ character (-) and a U+FFFD REPLACEMENT CHARACTER character to the
+ comment token's data. Switch to the <a href=#comment-state>comment
+ state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#data-state>data
+ state</a>. Emit the comment token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume the
+ EOF character in the <a href=#data-state>data state</a>.</dd> <!-- see comment
+ in comment end state -->
+
+ <dt>Anything else</dt>
+ <dd>Append a U+002D HYPHEN-MINUS character (-) and the
+ <a href=#current-input-character>current input character</a> to the comment token's
+ data. Switch to the <a href=#comment-state>comment state</a>.</dd>
+
+ </dl><h5 id=comment-state><span class=secno>13.2.4.48 </span><dfn id=comment>Comment state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Switch to the <a href=#comment-end-dash-state>comment end dash state</a></dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the comment token's data.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume the
+ EOF character in the <a href=#data-state>data state</a>.</dd> <!-- see comment
+ in comment end state -->
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the comment
+ token's data.</dd>
+
+ </dl><h5 id=comment-end-dash-state><span class=secno>13.2.4.49 </span><dfn>Comment end dash state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Switch to the <a href=#comment-end-state>comment end state</a></dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+002D HYPHEN-MINUS
+ character (-) and a U+FFFD REPLACEMENT CHARACTER character to the
+ comment token's data. Switch to the <a href=#comment-state>comment
+ state</a>.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume the
+ EOF character in the <a href=#data-state>data state</a>.</dd> <!-- see comment
+ in comment end state -->
+
+ <dt>Anything else</dt>
+ <dd>Append a U+002D HYPHEN-MINUS character (-) and the
+ <a href=#current-input-character>current input character</a> to the comment token's
+ data. Switch to the <a href=#comment-state>comment state</a>.</dd>
+
+ </dl><h5 id=comment-end-state><span class=secno>13.2.4.50 </span><dfn>Comment end state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the comment
+ token.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append two U+002D HYPHEN-MINUS
+ characters (-) and a U+FFFD REPLACEMENT CHARACTER character to the
+ comment token's data. Switch to the <a href=#comment-state>comment
+ state</a>.</dd>
+
+ <dt>U+0021 EXCLAMATION MARK (!)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#comment-end-bang-state>comment end bang
+ state</a>.</dd>
+
+ <dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+002D HYPHEN-MINUS
+ character (-) to the comment token's data.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume
+ the EOF character in the <a href=#data-state>data state</a>.</dd> <!-- For
+ security reasons: otherwise, hostile user could put a <script> in
+ a comment e.g. in a blog comment and then DOS the server so that
+ the end tag isn't read, and then the commented <script> tag would
+ be treated as live code -->
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append two U+002D HYPHEN-MINUS
+ characters (-) and the <a href=#current-input-character>current input character</a> to the
+ comment token's data. Switch to the <a href=#comment-state>comment
+ state</a>.</dd>
+
+ </dl><h5 id=comment-end-bang-state><span class=secno>13.2.4.51 </span><dfn>Comment end bang state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+002D HYPHEN-MINUS (-)</dt>
+ <dd>Append two U+002D HYPHEN-MINUS characters (-) and a U+0021
+ EXCLAMATION MARK character (!) to the comment token's data. Switch
+ to the <a href=#comment-end-dash-state>comment end dash state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the comment
+ token.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append two U+002D HYPHEN-MINUS
+ characters (-), a U+0021 EXCLAMATION MARK character (!), and a
+ U+FFFD REPLACEMENT CHARACTER character to the comment token's data.
+ Switch to the <a href=#comment-state>comment state</a>.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Emit the comment token. Reconsume
+ the EOF character in the <a href=#data-state>data state</a>.</dd> <!-- see
+ comment in comment end state -->
+
+ <dt>Anything else</dt>
+ <dd>Append two U+002D HYPHEN-MINUS characters (-), a U+0021
+ EXCLAMATION MARK character (!), and the <a href=#current-input-character>current input
+ character</a> to the comment token's data. Switch to the
+ <a href=#comment-state>comment state</a>.</dd>
+
+ </dl><h5 id=doctype-state><span class=secno>13.2.4.52 </span><dfn>DOCTYPE state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Switch to the <a href=#before-doctype-name-state>before DOCTYPE name state</a>.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Create a new DOCTYPE token. Set its
+ <i>force-quirks flag</i> to <i>on</i>. Emit the token. Reconsume
+ the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Reconsume the character in the
+ <a href=#before-doctype-name-state>before DOCTYPE name state</a>.</dd>
+
+ </dl><h5 id=before-doctype-name-state><span class=secno>13.2.4.53 </span><dfn>Before DOCTYPE name state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Ignore the character.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Create a new DOCTYPE token. Set the token's name to the
+ lowercase version of the <a href=#current-input-character>current input character</a> (add 0x0020 to the
+ character's code point). Switch to the <a href=#doctype-name-state>DOCTYPE name
+ state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Create a new DOCTYPE token. Set the
+ token's name to a U+FFFD REPLACEMENT CHARACTER character. Switch to
+ the <a href=#doctype-name-state>DOCTYPE name state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Create a new DOCTYPE token. Set its
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#data-state>data
+ state</a>. Emit the token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Create a new DOCTYPE token. Set its
+ <i>force-quirks flag</i> to <i>on</i>. Emit the token. Reconsume
+ the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Create a new DOCTYPE token. Set the token's name to the
+ <a href=#current-input-character>current input character</a>. Switch to the <a href=#doctype-name-state>DOCTYPE name
+ state</a>.</dd>
+
+ </dl><h5 id=doctype-name-state><span class=secno>13.2.4.54 </span><dfn>DOCTYPE name state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Switch to the <a href=#after-doctype-name-state>after DOCTYPE name state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current DOCTYPE
+ token.</dd>
+
+ <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+ <dd>Append the lowercase version of the <a href=#current-input-character>current input
+ character</a> (add 0x0020 to the character's code point) to the
+ current DOCTYPE token's name.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current DOCTYPE token's name.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ DOCTYPE token's name.</dd>
+
+ </dl><h5 id=after-doctype-name-state><span class=secno>13.2.4.55 </span><dfn>After DOCTYPE name state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Ignore the character.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current DOCTYPE
+ token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>
+
+ <p>If the six characters starting from the <a href=#current-input-character>current input
+ character</a> are an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match
+ for the word "PUBLIC", then consume those characters and switch to
+ the <a href=#after-doctype-public-keyword-state>after DOCTYPE public keyword state</a>.</p>
+
+ <p>Otherwise, if the six characters starting from the
+ <a href=#current-input-character>current input character</a> are an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the word "SYSTEM", then consume
+ those characters and switch to the <a href=#after-doctype-system-keyword-state>after DOCTYPE system
+ keyword state</a>.</p>
+
+ <p>Otherwise, this is the <a href=#parse-error>parse error</a>. Set the
+ DOCTYPE token's <i>force-quirks flag</i> to <i>on</i>. Switch to
+ the <a href=#bogus-doctype-state>bogus DOCTYPE state</a>.</p>
+
+ </dd>
+
+ </dl><h5 id=after-doctype-public-keyword-state><span class=secno>13.2.4.56 </span><dfn>After DOCTYPE public keyword state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Switch to the <a href=#before-doctype-public-identifier-state>before DOCTYPE public identifier
+ state</a>.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's public
+ identifier to the empty string (not missing), then switch to the
+ <a href=#doctype-public-identifier-(double-quoted)-state>DOCTYPE public identifier (double-quoted) state</a>.</dd>
+
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's public
+ identifier to the empty string (not missing), then switch to the
+ <a href=#doctype-public-identifier-(single-quoted)-state>DOCTYPE public identifier (single-quoted) state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#data-state>data
+ state</a>. Emit that DOCTYPE token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#bogus-doctype-state>bogus
+ DOCTYPE state</a>.</dd>
+
+ </dl><h5 id=before-doctype-public-identifier-state><span class=secno>13.2.4.57 </span><dfn>Before DOCTYPE public identifier state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Ignore the character.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dd>Set the DOCTYPE token's public identifier to the empty string
+ (not missing), then switch to the <a href=#doctype-public-identifier-(double-quoted)-state>DOCTYPE public identifier
+ (double-quoted) state</a>.</dd>
+
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dd>Set the DOCTYPE token's public identifier to the empty string
+ (not missing), then switch to the <a href=#doctype-public-identifier-(single-quoted)-state>DOCTYPE public identifier
+ (single-quoted) state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#data-state>data
+ state</a>. Emit that DOCTYPE token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#bogus-doctype-state>bogus
+ DOCTYPE state</a>.</dd>
+
+ </dl><h5 id=doctype-public-identifier-(double-quoted)-state><span class=secno>13.2.4.58 </span><dfn>DOCTYPE public identifier (double-quoted) state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0022 QUOTATION MARK (")</dt>
+ <dd>Switch to the <a href=#after-doctype-public-identifier-state>after DOCTYPE public identifier state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current DOCTYPE token's public identifier.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#data-state>data
+ state</a>. Emit that DOCTYPE token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ DOCTYPE token's public identifier.</dd>
+
+ </dl><h5 id=doctype-public-identifier-(single-quoted)-state><span class=secno>13.2.4.59 </span><dfn>DOCTYPE public identifier (single-quoted) state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0027 APOSTROPHE (')</dt>
+ <dd>Switch to the <a href=#after-doctype-public-identifier-state>after DOCTYPE public identifier state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current DOCTYPE token's public identifier.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#data-state>data
+ state</a>. Emit that DOCTYPE token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ DOCTYPE token's public identifier.</dd>
+
+ </dl><h5 id=after-doctype-public-identifier-state><span class=secno>13.2.4.60 </span><dfn>After DOCTYPE public identifier state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Switch to the <a href=#between-doctype-public-and-system-identifiers-state>between DOCTYPE public and system
+ identifiers state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current DOCTYPE
+ token.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's system
+ identifier to the empty string (not missing), then switch to the
+ <a href=#doctype-system-identifier-(double-quoted)-state>DOCTYPE system identifier (double-quoted) state</a>.</dd>
+
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's system
+ identifier to the empty string (not missing), then switch to the
+ <a href=#doctype-system-identifier-(single-quoted)-state>DOCTYPE system identifier (single-quoted) state</a>.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#bogus-doctype-state>bogus
+ DOCTYPE state</a>.</dd>
+
+ </dl><h5 id=between-doctype-public-and-system-identifiers-state><span class=secno>13.2.4.61 </span><dfn>Between DOCTYPE public and system identifiers state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Ignore the character.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current DOCTYPE
+ token.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dd>Set the DOCTYPE token's system identifier to the empty string
+ (not missing), then switch to the <a href=#doctype-system-identifier-(double-quoted)-state>DOCTYPE system identifier
+ (double-quoted) state</a>.</dd>
+
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dd>Set the DOCTYPE token's system identifier to the empty string
+ (not missing), then switch to the <a href=#doctype-system-identifier-(single-quoted)-state>DOCTYPE system identifier
+ (single-quoted) state</a>.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#bogus-doctype-state>bogus
+ DOCTYPE state</a>.</dd>
+
+ </dl><h5 id=after-doctype-system-keyword-state><span class=secno>13.2.4.62 </span><dfn>After DOCTYPE system keyword state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Switch to the <a href=#before-doctype-system-identifier-state>before DOCTYPE system identifier
+ state</a>.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's system
+ identifier to the empty string (not missing), then switch to the
+ <a href=#doctype-system-identifier-(double-quoted)-state>DOCTYPE system identifier (double-quoted) state</a>.</dd>
+
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's system
+ identifier to the empty string (not missing), then switch to the
+ <a href=#doctype-system-identifier-(single-quoted)-state>DOCTYPE system identifier (single-quoted) state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#data-state>data
+ state</a>. Emit that DOCTYPE token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#bogus-doctype-state>bogus
+ DOCTYPE state</a>.</dd>
+
+ </dl><h5 id=before-doctype-system-identifier-state><span class=secno>13.2.4.63 </span><dfn>Before DOCTYPE system identifier state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Ignore the character.</dd>
+
+ <dt>U+0022 QUOTATION MARK (")</dt>
+ <dd>Set the DOCTYPE token's system identifier to the empty string
+ (not missing), then switch to the <a href=#doctype-system-identifier-(double-quoted)-state>DOCTYPE system identifier
+ (double-quoted) state</a>.</dd>
+
+ <dt>U+0027 APOSTROPHE (')</dt>
+ <dd>Set the DOCTYPE token's system identifier to the empty string
+ (not missing), then switch to the <a href=#doctype-system-identifier-(single-quoted)-state>DOCTYPE system identifier
+ (single-quoted) state</a>.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#data-state>data
+ state</a>. Emit that DOCTYPE token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#bogus-doctype-state>bogus
+ DOCTYPE state</a>.</dd>
+
+ </dl><h5 id=doctype-system-identifier-(double-quoted)-state><span class=secno>13.2.4.64 </span><dfn>DOCTYPE system identifier (double-quoted) state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0022 QUOTATION MARK (")</dt>
+ <dd>Switch to the <a href=#after-doctype-system-identifier-state>after DOCTYPE system identifier
+ state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current DOCTYPE token's system identifier.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#data-state>data
+ state</a>. Emit that DOCTYPE token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ DOCTYPE token's system identifier.</dd>
+
+ </dl><h5 id=doctype-system-identifier-(single-quoted)-state><span class=secno>13.2.4.65 </span><dfn>DOCTYPE system identifier (single-quoted) state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0027 APOSTROPHE (')</dt>
+ <dd>Switch to the <a href=#after-doctype-system-identifier-state>after DOCTYPE system identifier
+ state</a>.</dd>
+
+ <dt>U+0000 NULL</dt>
+ <dd><a href=#parse-error>Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
+ character to the current DOCTYPE token's system identifier.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href=#data-state>data
+ state</a>. Emit that DOCTYPE token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Append the <a href=#current-input-character>current input character</a> to the current
+ DOCTYPE token's system identifier.</dd>
+
+ </dl><h5 id=after-doctype-system-identifier-state><span class=secno>13.2.4.66 </span><dfn>After DOCTYPE system identifier state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dd>Ignore the character.</dd>
+
+ <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the current DOCTYPE
+ token.</dd>
+
+ <dt>EOF</dt>
+ <dd><a href=#parse-error>Parse error</a>. Set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token.
+ Reconsume the EOF character in the <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd><a href=#parse-error>Parse error</a>. Switch to the <a href=#bogus-doctype-state>bogus DOCTYPE
+ state</a>. (This does <em>not</em> set the DOCTYPE token's
+ <i>force-quirks flag</i> to <i>on</i>.)</dd>
+
+ </dl><h5 id=bogus-doctype-state><span class=secno>13.2.4.67 </span><dfn>Bogus DOCTYPE state</dfn></h5>
+
+ <p>Consume the <a href=#next-input-character>next input character</a>:</p>
+
+ <dl class=switch><dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
+ <dd>Switch to the <a href=#data-state>data state</a>. Emit the DOCTYPE
+ token.</dd>
+
+ <dt>EOF</dt>
+ <dd>Emit the DOCTYPE token. Reconsume the EOF character in the
+ <a href=#data-state>data state</a>.</dd>
+
+ <dt>Anything else</dt>
+ <dd>Ignore the character.</dd>
+
+ </dl><h5 id=cdata-section-state><span class=secno>13.2.4.68 </span><dfn>CDATA section state</dfn></h5>
+
+ <p>Consume every character up to the next occurrence of the three
+ character sequence U+005D RIGHT SQUARE BRACKET U+005D RIGHT SQUARE
+ BRACKET U+003E GREATER-THAN SIGN (<code title="">]]&gt;</code>), or the
+ end of the file (EOF), whichever comes first. Emit a series of
+ character tokens consisting of all the characters consumed except
+ the matching three character sequence at the end (if one was found
+ before the end of the file)<!--(not needed; taken care of by the
+ tree constructor), but with any U+0000 NULL characters replaced by
+ U+FFFD REPLACEMENT CHARACTER characters-->.</p>
+
+ <p>Switch to the <a href=#data-state>data state</a>.</p>
+
+ <p>If the end of the file was reached, reconsume the EOF
+ character.</p>
+
+
+
+ <h5 id=tokenizing-character-references><span class=secno>13.2.4.69 </span>Tokenizing character references</h5>
+
+ <p>This section defines how to <dfn id=consume-a-character-reference>consume a character
+ reference</dfn>. This definition is used when parsing character
+ references <a href=#character-reference-in-data-state title="character reference in data state">in
+ text</a> and <a href=#character-reference-in-attribute-value-state title="character reference in attribute value
+ state">in attributes</a>.</p>
+
+ <p>The behavior depends on the identity of the next character (the
+ one immediately after the U+0026 AMPERSAND character):</p>
+
+ <dl class=switch><dt>U+0009 CHARACTER TABULATION (tab)</dt>
+ <dt>U+000A LINE FEED (LF)</dt>
+ <dt>U+000C FORM FEED (FF)</dt>
+ <!--<dt>U+000D CARRIAGE RETURN (CR)</dt>-->
+ <dt>U+0020 SPACE</dt>
+ <dt>U+003C LESS-THAN SIGN</dt>
+ <dt>U+0026 AMPERSAND</dt>
+ <dt>EOF</dt>
+ <dt>The <dfn id=additional-allowed-character>additional allowed character</dfn>, if there is one</dt>
+
+ <dd>Not a character reference. No characters are consumed, and
+ nothing is returned. (This is not an error, either.)</dd>
+
+
+ <dt>U+0023 NUMBER SIGN (#)</dt>
+
+ <dd>
+
+ <p>Consume the U+0023 NUMBER SIGN.</p>
+
+ <p>The behavior further depends on the character after the U+0023
+ NUMBER SIGN:</p>
+
+ <dl class=switch><dt>U+0078 LATIN SMALL LETTER X</dt>
+ <dt>U+0058 LATIN CAPITAL LETTER X</dt>
+
+ <dd>
+
+ <p>Consume the X.</p>
+
+ <p>Follow the steps below, but using the range of characters
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0061 LATIN
+ SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and U+0041 LATIN
+ CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F (in other
+ words, 0-9, A-F, a-f).</p>
+
+ <p>When it comes to interpreting the number, interpret it as a
+ hexadecimal number.</p>
+
+ </dd>
+
+
+ <dt>Anything else</dt>
+
+ <dd>
+
+ <p>Follow the steps below, but using the range of characters
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</p>
+
+ <p>When it comes to interpreting the number, interpret it as a
+ decimal number.</p>
+
+ </dd>
+
+ </dl><p>Consume as many characters as match the range of characters
+ given above.</p>
+
+ <p>If no characters match the range, then don't consume any
+ characters (and unconsume the U+0023 NUMBER SIGN character and, if
+ appropriate, the X character). This is a <a href=#parse-error>parse
+ error</a>; nothing is returned.</p>
+
+ <p>Otherwise, if the next character is a U+003B SEMICOLON, consume
+ that too. If it isn't, there is a <a href=#parse-error>parse
+ error</a>.</p>
+
+ <p>If one or more characters match the range, then take them all
+ and interpret the string of characters as a number (either
+ hexadecimal or decimal as appropriate).</p>
+
+ <p>If that number is one of the numbers in the first column of the
+ following table, then this is a <a href=#parse-error>parse error</a>. Find the
+ row with that number in the first column, and return a character
+ token for the Unicode character given in the second column of that
+ row.</p>
+
+ <table id=table-charref-overrides><thead><tr><th>Number <th colspan=2>Unicode character
+ <tbody><tr><td>0x00 <td>U+FFFD <td>REPLACEMENT CHARACTER
+ <tr><td>0x0D <td>U+000D <td>CARRIAGE RETURN (CR)
+ <tr><td>0x80 <td>U+20AC <td>EURO SIGN (&euro;)
+ <tr><td>0x81 <td>U+0081 <td>&lt;control&gt;
+ <tr><td>0x82 <td>U+201A <td>SINGLE LOW-9 QUOTATION MARK (&sbquo;)
+ <tr><td>0x83 <td>U+0192 <td>LATIN SMALL LETTER F WITH HOOK (&fnof;)
+ <tr><td>0x84 <td>U+201E <td>DOUBLE LOW-9 QUOTATION MARK (&bdquo;)
+ <tr><td>0x85 <td>U+2026 <td>HORIZONTAL ELLIPSIS (&hellip;)
+ <tr><td>0x86 <td>U+2020 <td>DAGGER (&dagger;)
+ <tr><td>0x87 <td>U+2021 <td>DOUBLE DAGGER (&Dagger;)
+ <tr><td>0x88 <td>U+02C6 <td>MODIFIER LETTER CIRCUMFLEX ACCENT (&circ;)
+ <tr><td>0x89 <td>U+2030 <td>PER MILLE SIGN (&permil;)
+ <tr><td>0x8A <td>U+0160 <td>LATIN CAPITAL LETTER S WITH CARON (&Scaron;)
+ <tr><td>0x8B <td>U+2039 <td>SINGLE LEFT-POINTING ANGLE QUOTATION MARK (&lsaquo;)
+ <tr><td>0x8C <td>U+0152 <td>LATIN CAPITAL LIGATURE OE (&OElig;)
+ <tr><td>0x8D <td>U+008D <td>&lt;control&gt;
+ <tr><td>0x8E <td>U+017D <td>LATIN CAPITAL LETTER Z WITH CARON (&#381;)
+ <tr><td>0x8F <td>U+008F <td>&lt;control&gt;
+ <tr><td>0x90 <td>U+0090 <td>&lt;control&gt;
+ <tr><td>0x91 <td>U+2018 <td>LEFT SINGLE QUOTATION MARK (&lsquo;)
+ <tr><td>0x92 <td>U+2019 <td>RIGHT SINGLE QUOTATION MARK (&rsquo;)
+ <tr><td>0x93 <td>U+201C <td>LEFT DOUBLE QUOTATION MARK (&ldquo;)
+ <tr><td>0x94 <td>U+201D <td>RIGHT DOUBLE QUOTATION MARK (&rdquo;)
+ <tr><td>0x95 <td>U+2022 <td>BULLET (&bull;)
+ <tr><td>0x96 <td>U+2013 <td>EN DASH (&ndash;)
+ <tr><td>0x97 <td>U+2014 <td>EM DASH (&mdash;)
+ <tr><td>0x98 <td>U+02DC <td>SMALL TILDE (&tilde;)
+ <tr><td>0x99 <td>U+2122 <td>TRADE MARK SIGN (&trade;)
+ <tr><td>0x9A <td>U+0161 <td>LATIN SMALL LETTER S WITH CARON (&scaron;)
+ <tr><td>0x9B <td>U+203A <td>SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (&rsaquo;)
+ <tr><td>0x9C <td>U+0153 <td>LATIN SMALL LIGATURE OE (&oelig;)
+ <tr><td>0x9D <td>U+009D <td>&lt;control&gt;
+ <tr><td>0x9E <td>U+017E <td>LATIN SMALL LETTER Z WITH CARON (&#382;)
+ <tr><td>0x9F <td>U+0178 <td>LATIN CAPITAL LETTER Y WITH DIAERESIS (&Yuml;)
+ </table><p>Otherwise, if the number is in the range 0xD800 to 0xDFFF<!--
+ surrogates --> or is greater than 0x10FFFF, then this is a
+ <a href=#parse-error>parse error</a>. Return a U+FFFD REPLACEMENT
+ CHARACTER.</p>
+
+ <p>Otherwise, return a character token for the Unicode character
+ whose code point is that number.
+
+ <!-- this is the same as the equivalent list in the input stream
+ section -->
+ If the number is in the range 0x0001 to 0x0008, <!-- HT, LF
+ allowed --> <!-- U+000B is in the next list --> <!-- FF, CR
+ allowed --> 0x000E to 0x001F, <!-- ASCII allowed --> 0x007F <!--to
+ 0x0084, (0x0085 NEL not allowed), 0x0086--> to 0x009F, 0xFDD0 to
+ 0xFDEF, or is one of 0x000B, 0xFFFE, 0xFFFF, 0x1FFFE, 0x1FFFF,
+ 0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE,
+ 0x5FFFF, 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF,
+ 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF, 0xCFFFE,
+ 0xCFFFF, 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF,
+ 0x10FFFE, or 0x10FFFF, then this is a <a href=#parse-error>parse
+ error</a>.</p>
+
+ </dd>
+
+
+ <dt>Anything else</dt>
+
+ <dd>
+
+ <p>Consume the maximum number of characters possible, with the
+ consumed characters matching one of the identifiers in the first
+ column of the <a href=#named-character-references>named character references</a> table (in a
+ <a href=#case-sensitive>case-sensitive</a> manner).</p>
+
+ <p>If no match can be made, then no characters are consumed, and
+ nothing is returned. In this case, if the characters after the
+ U+0026 AMPERSAND character (&amp;) consist of a sequence of one or
+ more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
+ NINE (9), U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
+ Z, and U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL
+ LETTER Z, followed by a U+003B SEMICOLON character (;), then this
+ is a <a href=#parse-error>parse error</a>.</p>
+
+ <p>If the character reference is being consumed <a href=#character-reference-in-attribute-value-state title="character reference in attribute value state">as part of an
+ attribute</a>, and the last character matched is not a U+003B
+ SEMICOLON character (;), and the next character is either a U+003D
+ EQUALS SIGN character (=) or in the range U+0030 DIGIT ZERO (0) to
+ U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+005A
+ LATIN CAPITAL LETTER Z, or U+0061 LATIN SMALL LETTER A to U+007A
+ LATIN SMALL LETTER Z, then, for historical reasons, all the
+ characters that were matched after the U+0026 AMPERSAND character
+ (&amp;) must be unconsumed, and nothing is returned.</p>
+ <!-- "=" added because of http://www.w3.org/Bugs/Public/show_bug.cgi?id=9207#c5 -->
+
+ <p>Otherwise, a character reference is parsed. If the last
+ character matched is not a U+003B SEMICOLON character (;), there
+ is a <a href=#parse-error>parse error</a>.</p>
+
+ <p>Return one or two character tokens for the character(s)
+ corresponding to the character reference name (as given by the
+ second column of the <a href=#named-character-references>named character references</a>
+ table).</p>
+
+ <div class=example>
+
+ <p>If the markup contains (not in an attribute) the string <code title="">I'm &amp;notit; I tell you</code>, the character
+ reference is parsed as "not", as in, <code title="">I'm &not;it;
+ I tell you</code> (and this is a parse error). But if the markup
+ was <code title="">I'm &amp;notin; I tell you</code>, the
+ character reference would be parsed as "notin;", resulting in
+ <code title="">I'm &notin; I tell you</code> (and no parse
+ error).</p>
+
+ </div>
+
+ </dd>
+
+ </dl></div>
+
+
+ <div class=impl>
+
+ <!-- v2: One thing that this doesn't define is handling deeply
+ nested documents. There are compatibility requirements around that:
+ you can't throw away the elements altogether, consider Tux made only
+ with opening <font> elements, one per character. Seems that the best
+ thing to do is to close some formatting elements from the middle of
+ the stack when you hit a limit, or something. -->
+
+ <h4 id=tree-construction><span class=secno>13.2.5 </span><dfn>Tree construction</dfn></h4>
+
+ <p>The input to the tree construction stage is a sequence of tokens
+ from the <a href=#tokenization>tokenization</a> stage. The tree construction
+ stage is associated with a DOM <code><a href=#document>Document</a></code> object when a
+ parser is created. The "output" of this stage consists of
+ dynamically modifying or extending that document's DOM tree.</p>
+
+ <p>This specification does not define when an interactive user agent
+ has to render the <code><a href=#document>Document</a></code> so that it is available to
+ the user, or when it has to begin accepting user input.</p>
+
+ <hr><p>As each token is emitted from the tokenizer, the user agent must
+ follow the appropriate steps from the following list:</p>
+
+ <dl class=switch><dt>If there is no <a href=#current-node>current node</a></dt>
+ <dt>If the <a href=#current-node>current node</a> is an element in the <a href=#html-namespace-0>HTML namespace</a></dt>
+ <dt>If the <a href=#current-node>current node</a> is a <a href=#mathml-text-integration-point>MathML text integration point</a> and the token is a start tag whose tag name is neither "mglyph" nor "malignmark"</dt>
+ <dt>If the <a href=#current-node>current node</a> is a <a href=#mathml-text-integration-point>MathML text integration point</a> and the token is a character token</dt>
+ <dt>If the <a href=#current-node>current node</a> is an <code title="">annotation-xml</code> element in the <a href=#mathml-namespace>MathML namespace</a> and the token is a start tag whose tag name is "svg"</dt>
+ <dt>If the <a href=#current-node>current node</a> is an <a href=#html-integration-point>HTML integration point</a> and the token is a start tag</dt>
+ <dt>If the <a href=#current-node>current node</a> is an <a href=#html-integration-point>HTML integration point</a> and the token is a character token</dt>
+ <dt>If the token is an end-of-file token</dt>
+
+ <dd>Process the token according to the rules given in the section
+ corresponding to the current <a href=#insertion-mode>insertion mode</a> in HTML
+ content.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>Process the token according to the rules given in the section
+ for parsing tokens <a href=#parsing-main-inforeign title="insertion mode: in foreign
+ content">in foreign content</a>.</dd>
+
+ </dl><p>The <a href=#current-node>current node</a> is a <dfn id=mathml-text-integration-point>MathML text
+ integration point</dfn> if it is one of the following elements:</p>
+
+ <ul class=brief><li>An <code title="">mi</code> element in the <a href=#mathml-namespace>MathML namespace</a></li>
+ <li>An <code title="">mo</code> element in the <a href=#mathml-namespace>MathML namespace</a></li>
+ <li>An <code title="">mn</code> element in the <a href=#mathml-namespace>MathML namespace</a></li>
+ <li>An <code title="">ms</code> element in the <a href=#mathml-namespace>MathML namespace</a></li>
+ <li>An <code title="">mtext</code> element in the <a href=#mathml-namespace>MathML namespace</a></li>
+ </ul><p>The <a href=#current-node>current node</a> is an <dfn id=html-integration-point>HTML
+ integration point</dfn> if it is one of the following elements:</p>
+
+ <ul class=brief><li>An <code title="">annotation-xml</code> element in the <a href=#mathml-namespace>MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">text/html</code>"</li>
+ <li>An <code title="">annotation-xml</code> element in the <a href=#mathml-namespace>MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">application/xhtml+xml</code>"</li>
+ <li>A <code title="">foreignObject</code> element in the <a href=#svg-namespace>SVG namespace</a></li>
+ <li>A <code title="">desc</code> element in the <a href=#svg-namespace>SVG namespace</a></li>
+ <li>A <code title="">title</code> element in the <a href=#svg-namespace>SVG namespace</a></li>
+ </ul><hr><p>When the steps below require the UA to <dfn id=insert-a-character>insert a
+ character</dfn> into a node, if that node has a child immediately
+ before where the character is to be inserted, and that child is a
+ <code><a href=#text>Text</a></code> node, then the character must be appended to that
+ <code><a href=#text>Text</a></code> node; otherwise, a new <code><a href=#text>Text</a></code> node
+ whose data is just that character must be inserted in the
+ appropriate place.</p>
+
+ <div class=example>
+
+ <p>Here are some sample inputs to the parser and the corresponding
+ number of text nodes that they result in, assuming a user agent
+ that executes scripts.</p>
+
+ <table><thead><tr><th>Input <th>Number of text nodes
+ <tbody><tr><td><pre>A&lt;script&gt;
+var&nbsp;script&nbsp;=&nbsp;document.getElementsByTagName('script')[0];
+document.body.removeChild(script);
+&lt;/script&gt;B</pre>
+ <td>One text node in the document, containing "AB".
+ <tr><td><pre>A&lt;script&gt;
+var&nbsp;text&nbsp;=&nbsp;document.createTextNode('B');
+document.body.appendChild(text);
+&lt;/script&gt;C</pre>
+ <td>Three text nodes; "A" before the script, the script's contents, and "BC" after the script (the parser appends to the text node created by the script).
+ <tr><td><pre>A&lt;script&gt;
+var&nbsp;text&nbsp;=&nbsp;document.getElementsByTagName('script')[0].firstChild;
+text.data&nbsp;=&nbsp;'B';
+document.body.appendChild(text);
+&lt;/script&gt;C</pre>
+ <td>Two adjacent text nodes in the document, containing "A" and "BC".
+ <tr><td><pre>A&lt;table&gt;B&lt;tr&gt;C&lt;/tr&gt;D&lt;/table&gt;</pre>
+ <td>One text node before the table, containing "ABCD". (This is caused by <a href=#foster-parent title="foster parent">foster parenting</a>.)
+ <tr><td><pre>A&lt;table&gt;&lt;tr&gt;&nbsp;B&lt;/tr&gt;&nbsp;C&lt;/table&gt;</pre>
+ <td>One text node before the table, containing "A&nbsp;B&nbsp;C" (A-space-B-space-C). (This is caused by <a href=#foster-parent title="foster parent">foster parenting</a>.)
+ <tr><td><pre>A&lt;table&gt;&lt;tr&gt;&nbsp;B&lt;/tr&gt;&nbsp;&lt;/em&gt;C&lt;/table&gt;</pre>
+ <td>One text node before the table, containing "A&nbsp;BC" (A-space-B-C), and one text node inside the table (as a child of a <code><a href=#the-tbody-element>tbody</a></code>) with a single space character. (Space characters separated from non-space characters by non-character tokens are not affected by <a href=#foster-parent title="foster parent">foster parenting</a>, even if those other tokens then get ignored.)
+ </table></div>
+
+ <p id=mutation-during-parsing>DOM mutation events must not fire
+ for changes caused by the UA parsing the document. (Conceptually,
+ the parser is not mutating the DOM, it is constructing it.) This
+ includes the parsing of any content inserted using <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> and <code title=dom-document-writeln><a href=#dom-document-writeln>document.writeln()</a></code> calls. <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
+
+ <p class=note>Not all of the tag names mentioned below are
+ conformant tag names in this specification; many are included to
+ handle legacy content. They still form part of the algorithm that
+ implementations are required to implement to claim conformance.</p>
+
+ <p class=note>The algorithm described below places no limit on the
+ depth of the DOM tree generated, or on the length of tag names,
+ attribute names, attribute values, text nodes, etc. While
+ implementors are encouraged to avoid arbitrary limits, it is
+ recognized that <a href=#hardwareLimitations>practical
+ concerns</a> will likely force user agents to impose nesting depth
+ constraints.</p>
+
+
+ <h5 id=creating-and-inserting-elements><span class=secno>13.2.5.1 </span>Creating and inserting elements</h5>
+
+ <p>When the steps below require the UA to <dfn id=create-an-element-for-the-token title="create an
+ element for the token">create an element for a token</dfn> in a
+ particular namespace, the UA must create a node implementing the
+ interface appropriate for the element type corresponding to the tag
+ name of the token in the given namespace (as given in the
+ specification that defines that element, e.g. for an <code><a href=#the-a-element>a</a></code>
+ element in the <a href=#html-namespace-0>HTML namespace</a>, this specification
+ defines it to be the <code><a href=#htmlanchorelement>HTMLAnchorElement</a></code> interface), with
+ the tag name being the name of that element, with the node being in
+ the given namespace, and with the attributes on the node being those
+ given in the given token.</p>
+
+ <p>The interface appropriate for an element in the <a href=#html-namespace-0>HTML
+ namespace</a> that is not defined in this specification (or
+ <a href=#other-applicable-specifications>other applicable specifications</a>) is
+ <code><a href=#htmlunknownelement>HTMLUnknownElement</a></code>. Element in other namespaces whose
+ interface is not defined by that namespace's specification must use
+ the interface <code><a href=#element>Element</a></code>.</p>
+
+ <p>When a <a href=#category-reset title=category-reset>resettable element</a> is
+ created in this manner, its <a href=#concept-form-reset-control title=concept-form-reset-control>reset algorithm</a> must be
+ invoked once the attributes are set. (This initializes the element's
+ <a href=#concept-fe-value title=concept-fe-value>value</a> and <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> based on the element's
+ attributes.)</p>
+
+ <hr><p>When the steps below require the UA to <dfn id=insert-an-html-element>insert an HTML
+ element</dfn> for a token, the UA must first <a href=#create-an-element-for-the-token>create an element
+ for the token</a> in the <a href=#html-namespace-0>HTML namespace</a>, and then
+ append this node to the <a href=#current-node>current node</a>, and push it onto
+ the <a href=#stack-of-open-elements>stack of open elements</a> so that it is the new
+ <a href=#current-node>current node</a>.</p>
+
+ <p>The steps below may also require that the UA insert an HTML
+ element in a particular place, in which case the UA must follow the
+ same steps except that it must insert or append the new node in the
+ location specified instead of appending it to the <a href=#current-node>current
+ node</a>. (This happens in particular during the parsing of
+ tables with invalid content.)</p>
+
+ <p>If an element created by the <a href=#insert-an-html-element>insert an HTML element</a>
+ algorithm is a <a href=#form-associated-element>form-associated element</a>, and the
+ <a href=#form-element-pointer><code title="">form</code> element pointer</a> is not null,
+ and the newly created element doesn't have a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute, the user agent must
+ <a href=#concept-form-association title=concept-form-association>associate</a> the newly
+ created element with the <code><a href=#the-form-element>form</a></code> element pointed to by the
+ <a href=#form-element-pointer><code title="">form</code> element pointer</a> when the
+ element is inserted, instead of running the <a href=#reset-the-form-owner>reset the form
+ owner</a> algorithm.</p>
+
+ <hr><p>When the steps below require the UA to <dfn id=insert-a-foreign-element>insert a foreign
+ element</dfn> for a token, the UA must first <a href=#create-an-element-for-the-token>create an element
+ for the token</a> in the given namespace, and then append this
+ node to the <a href=#current-node>current node</a>, and push it onto the
+ <a href=#stack-of-open-elements>stack of open elements</a> so that it is the new
+ <a href=#current-node>current node</a>. If the newly created element has an <code title="">xmlns</code> attribute in the <a href=#xmlns-namespace>XMLNS namespace</a>
+ whose value is not exactly the same as the element's namespace, that
+ is a <a href=#parse-error>parse error</a>. Similarly, if the newly created
+ element has an <code title="">xmlns:xlink</code> attribute in the
+ <a href=#xmlns-namespace>XMLNS namespace</a> whose value is not the <a href=#xlink-namespace>XLink
+ Namespace</a>, that is a <a href=#parse-error>parse error</a>.</p>
+
+ <p>When the steps below require the user agent to <dfn id=adjust-mathml-attributes>adjust MathML
+ attributes</dfn> for a token, then, if the token has an attribute
+ named <code title="">definitionurl</code>, change its name to <code title="">definitionURL</code> (note the case difference).</p>
+
+ <p>When the steps below require the user agent to <dfn id=adjust-svg-attributes>adjust SVG
+ attributes</dfn> for a token, then, for each attribute on the token
+ whose attribute name is one of the ones in the first column of the
+ following table, change the attribute's name to the name given in
+ the corresponding cell in the second column. (This fixes the case of
+ SVG attributes that are not all lowercase.)</p>
+
+ <table><thead><tr><th> Attribute name on token <th> Attribute name on element
+ <tbody><tr><td> <code title="">attributename</code> <td> <code title="">attributeName</code>
+ <tr><td> <code title="">attributetype</code> <td> <code title="">attributeType</code>
+ <tr><td> <code title="">basefrequency</code> <td> <code title="">baseFrequency</code>
+ <tr><td> <code title="">baseprofile</code> <td> <code title="">baseProfile</code>
+ <tr><td> <code title="">calcmode</code> <td> <code title="">calcMode</code>
+ <tr><td> <code title="">clippathunits</code> <td> <code title="">clipPathUnits</code>
+ <tr><td> <code title="">contentscripttype</code> <td> <code title="">contentScriptType</code>
+ <tr><td> <code title="">contentstyletype</code> <td> <code title="">contentStyleType</code>
+ <tr><td> <code title="">diffuseconstant</code> <td> <code title="">diffuseConstant</code>
+ <tr><td> <code title="">edgemode</code> <td> <code title="">edgeMode</code>
+ <tr><td> <code title="">externalresourcesrequired</code> <td> <code title="">externalResourcesRequired</code>
+ <tr><td> <code title="">filterres</code> <td> <code title="">filterRes</code>
+ <tr><td> <code title="">filterunits</code> <td> <code title="">filterUnits</code>
+ <tr><td> <code title="">glyphref</code> <td> <code title="">glyphRef</code>
+ <tr><td> <code title="">gradienttransform</code> <td> <code title="">gradientTransform</code>
+ <tr><td> <code title="">gradientunits</code> <td> <code title="">gradientUnits</code>
+ <tr><td> <code title="">kernelmatrix</code> <td> <code title="">kernelMatrix</code>
+ <tr><td> <code title="">kernelunitlength</code> <td> <code title="">kernelUnitLength</code>
+ <tr><td> <code title="">keypoints</code> <td> <code title="">keyPoints</code>
+ <tr><td> <code title="">keysplines</code> <td> <code title="">keySplines</code>
+ <tr><td> <code title="">keytimes</code> <td> <code title="">keyTimes</code>
+ <tr><td> <code title="">lengthadjust</code> <td> <code title="">lengthAdjust</code>
+ <tr><td> <code title="">limitingconeangle</code> <td> <code title="">limitingConeAngle</code>
+ <tr><td> <code title="">markerheight</code> <td> <code title="">markerHeight</code>
+ <tr><td> <code title="">markerunits</code> <td> <code title="">markerUnits</code>
+ <tr><td> <code title="">markerwidth</code> <td> <code title="">markerWidth</code>
+ <tr><td> <code title="">maskcontentunits</code> <td> <code title="">maskContentUnits</code>
+ <tr><td> <code title="">maskunits</code> <td> <code title="">maskUnits</code>
+ <tr><td> <code title="">numoctaves</code> <td> <code title="">numOctaves</code>
+ <tr><td> <code title="">pathlength</code> <td> <code title="">pathLength</code>
+ <tr><td> <code title="">patterncontentunits</code> <td> <code title="">patternContentUnits</code>
+ <tr><td> <code title="">patterntransform</code> <td> <code title="">patternTransform</code>
+ <tr><td> <code title="">patternunits</code> <td> <code title="">patternUnits</code>
+ <tr><td> <code title="">pointsatx</code> <td> <code title="">pointsAtX</code>
+ <tr><td> <code title="">pointsaty</code> <td> <code title="">pointsAtY</code>
+ <tr><td> <code title="">pointsatz</code> <td> <code title="">pointsAtZ</code>
+ <tr><td> <code title="">preservealpha</code> <td> <code title="">preserveAlpha</code>
+ <tr><td> <code title="">preserveaspectratio</code> <td> <code title="">preserveAspectRatio</code>
+ <tr><td> <code title="">primitiveunits</code> <td> <code title="">primitiveUnits</code>
+ <tr><td> <code title="">refx</code> <td> <code title="">refX</code>
+ <tr><td> <code title="">refy</code> <td> <code title="">refY</code>
+ <tr><td> <code title="">repeatcount</code> <td> <code title="">repeatCount</code>
+ <tr><td> <code title="">repeatdur</code> <td> <code title="">repeatDur</code>
+ <tr><td> <code title="">requiredextensions</code> <td> <code title="">requiredExtensions</code>
+ <tr><td> <code title="">requiredfeatures</code> <td> <code title="">requiredFeatures</code>
+ <tr><td> <code title="">specularconstant</code> <td> <code title="">specularConstant</code>
+ <tr><td> <code title="">specularexponent</code> <td> <code title="">specularExponent</code>
+ <tr><td> <code title="">spreadmethod</code> <td> <code title="">spreadMethod</code>
+ <tr><td> <code title="">startoffset</code> <td> <code title="">startOffset</code>
+ <tr><td> <code title="">stddeviation</code> <td> <code title="">stdDeviation</code>
+ <tr><td> <code title="">stitchtiles</code> <td> <code title="">stitchTiles</code>
+ <tr><td> <code title="">surfacescale</code> <td> <code title="">surfaceScale</code>
+ <tr><td> <code title="">systemlanguage</code> <td> <code title="">systemLanguage</code>
+ <tr><td> <code title="">tablevalues</code> <td> <code title="">tableValues</code>
+ <tr><td> <code title="">targetx</code> <td> <code title="">targetX</code>
+ <tr><td> <code title="">targety</code> <td> <code title="">targetY</code>
+ <tr><td> <code title="">textlength</code> <td> <code title="">textLength</code>
+ <tr><td> <code title="">viewbox</code> <td> <code title="">viewBox</code>
+ <tr><td> <code title="">viewtarget</code> <td> <code title="">viewTarget</code>
+ <tr><td> <code title="">xchannelselector</code> <td> <code title="">xChannelSelector</code>
+ <tr><td> <code title="">ychannelselector</code> <td> <code title="">yChannelSelector</code>
+ <tr><td> <code title="">zoomandpan</code> <td> <code title="">zoomAndPan</code>
+ </table><p>When the steps below require the user agent to <dfn id=adjust-foreign-attributes>adjust
+ foreign attributes</dfn> for a token, then, if any of the attributes
+ on the token match the strings given in the first column of the
+ following table, let the attribute be a namespaced attribute, with
+ the prefix being the string given in the corresponding cell in the
+ second column, the local name being the string given in the
+ corresponding cell in the third column, and the namespace being the
+ namespace given in the corresponding cell in the fourth
+ column. (This fixes the use of namespaced attributes, in particular
+ <a href=#attr-xml-lang title=attr-xml-lang><code title="">lang</code> attributes in
+ the <span>XML namespace</span></a>.)</p>
+
+ <table><thead><tr><th> Attribute name <th> Prefix <th> Local name <th> Namespace
+ <tbody><tr><td> <code title="">xlink:actuate</code> <td> <code title="">xlink</code> <td> <code title="">actuate</code> <td> <a href=#xlink-namespace>XLink namespace</a>
+ <tr><td> <code title="">xlink:arcrole</code> <td> <code title="">xlink</code> <td> <code title="">arcrole</code> <td> <a href=#xlink-namespace>XLink namespace</a>
+ <tr><td> <code title="">xlink:href</code> <td> <code title="">xlink</code> <td> <code title="">href</code> <td> <a href=#xlink-namespace>XLink namespace</a>
+ <tr><td> <code title="">xlink:role</code> <td> <code title="">xlink</code> <td> <code title="">role</code> <td> <a href=#xlink-namespace>XLink namespace</a>
+ <tr><td> <code title="">xlink:show</code> <td> <code title="">xlink</code> <td> <code title="">show</code> <td> <a href=#xlink-namespace>XLink namespace</a>
+ <tr><td> <code title="">xlink:title</code> <td> <code title="">xlink</code> <td> <code title="">title</code> <td> <a href=#xlink-namespace>XLink namespace</a>
+ <tr><td> <code title="">xlink:type</code> <td> <code title="">xlink</code> <td> <code title="">type</code> <td> <a href=#xlink-namespace>XLink namespace</a>
+ <tr><td> <code title="">xml:base</code> <td> <code title="">xml</code> <td> <code title="">base</code> <td> <a href=#xml-namespace>XML namespace</a> <!-- attr-xml-base -->
+ <tr><td> <code title="">xml:lang</code> <td> <code title="">xml</code> <td> <code title="">lang</code> <td> <a href=#xml-namespace>XML namespace</a>
+ <tr><td> <code title="">xml:space</code> <td> <code title="">xml</code> <td> <code title="">space</code> <td> <a href=#xml-namespace>XML namespace</a>
+ <tr><td> <code title="">xmlns</code> <td> (none) <td> <code title="">xmlns</code> <td> <a href=#xmlns-namespace>XMLNS namespace</a>
+ <tr><td> <code title="">xmlns:xlink</code> <td> <code title="">xmlns</code> <td> <code title="">xlink</code> <td> <a href=#xmlns-namespace>XMLNS namespace</a>
+ </table><hr><p>The <dfn id=generic-raw-text-element-parsing-algorithm>generic raw text element parsing algorithm</dfn> and the
+ <dfn id=generic-rcdata-element-parsing-algorithm>generic RCDATA element parsing algorithm</dfn> consist of the
+ following steps. These algorithms are always invoked in response to
+ a start tag token.</p>
+
+ <ol><li><p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</li>
+
+ <li><p>If the algorithm that was invoked is the <a href=#generic-raw-text-element-parsing-algorithm>generic raw
+ text element parsing algorithm</a>, switch the tokenizer to the
+ <a href=#rawtext-state>RAWTEXT state</a>; otherwise the algorithm invoked
+ was the <a href=#generic-rcdata-element-parsing-algorithm>generic RCDATA element parsing algorithm</a>,
+ switch the tokenizer to the <a href=#rcdata-state>RCDATA state</a>.</li>
+
+ <li><p>Let the <a href=#original-insertion-mode>original insertion mode</a> be the current
+ <a href=#insertion-mode>insertion mode</a>.</p>
+
+ <li><p>Then, switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-incdata title="insertion mode: text">text</a>".</li>
+
+ </ol><h5 id=closing-elements-that-have-implied-end-tags><span class=secno>13.2.5.2 </span>Closing elements that have implied end tags</h5>
+
+ <p>When the steps below require the UA to <dfn id=generate-implied-end-tags>generate implied end
+ tags</dfn>, then, while the <a href=#current-node>current node</a> is a
+ <code><a href=#the-dd-element>dd</a></code> element, a <code><a href=#the-dt-element>dt</a></code> element, an
+ <code><a href=#the-li-element>li</a></code> element, an <code><a href=#the-option-element>option</a></code> element, an
+ <code><a href=#the-optgroup-element>optgroup</a></code> element, a <code><a href=#the-p-element>p</a></code> element, an
+ <code><a href=#the-rp-element>rp</a></code> element, or an <code><a href=#the-rt-element>rt</a></code> element, the UA must
+ pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p>If a step requires the UA to generate implied end tags but lists
+ an element to exclude from the process, then the UA must perform the
+ above steps as if that element was not in the above list.</p>
+
+
+ <h5 id=foster-parenting><span class=secno>13.2.5.3 </span>Foster parenting</h5>
+
+ <p>Foster parenting happens when content is misnested in tables.</p>
+
+ <p>When a node <var title="">node</var> is to be <dfn id=foster-parent title="foster
+ parent">foster parented</dfn>, the node <var title="">node</var>
+ must be inserted into the <i><a href=#foster-parent-element>foster parent element</a></i>.</p>
+
+ <p>The <dfn id=foster-parent-element>foster parent element</dfn> is the parent element of the
+ last <code><a href=#the-table-element>table</a></code> element in the <a href=#stack-of-open-elements>stack of open
+ elements</a>, if there is a <code><a href=#the-table-element>table</a></code> element and it has
+ such a parent element.</p>
+
+ <p class=note>It might have no parent or some other kind parent if
+ a script manipulated the DOM after the element was inserted by the
+ parser.</p>
+
+ <p>If there is no <code><a href=#the-table-element>table</a></code> element in the <a href=#stack-of-open-elements>stack of
+ open elements</a> (<a href=#fragment-case>fragment case</a>), then the
+ <i><a href=#foster-parent-element>foster parent element</a></i> is the first element in the <a href=#stack-of-open-elements>stack
+ of open elements</a> (the <code><a href=#the-html-element>html</a></code> element). Otherwise,
+ if there is a <code><a href=#the-table-element>table</a></code> element in the <a href=#stack-of-open-elements>stack of open
+ elements</a>, but the last <code><a href=#the-table-element>table</a></code> element in the
+ <a href=#stack-of-open-elements>stack of open elements</a> has no parent, or its parent
+ node is not an element, then the <i><a href=#foster-parent-element>foster parent element</a></i> is the
+ element before the last <code><a href=#the-table-element>table</a></code> element in the
+ <a href=#stack-of-open-elements>stack of open elements</a>.</p>
+
+ <p>If the <i><a href=#foster-parent-element>foster parent element</a></i> is the parent element of the
+ last <code><a href=#the-table-element>table</a></code> element in the <a href=#stack-of-open-elements>stack of open
+ elements</a>, then <var title="">node</var> must be inserted into
+ the <i><a href=#foster-parent-element>foster parent element</a></i>, immediately <em>before</em> the
+ last <code><a href=#the-table-element>table</a></code> element in the <a href=#stack-of-open-elements>stack of open
+ elements</a>; otherwise, <var title="">node</var> must be
+ <em>appended</em> to the <i><a href=#foster-parent-element>foster parent element</a></i>.</p>
+
+
+
+ <h5 id=parsing-main-inhtml><span class=secno>13.2.5.4 </span>The rules for parsing tokens in HTML content</h5>
+
+
+ <h6 id=the-initial-insertion-mode><span class=secno>13.2.5.4.1 </span>The "<dfn title="insertion mode: initial">initial</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#the-initial-insertion-mode title="insertion mode: initial">initial</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+ <p>Ignore the token.</p>
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <code><a href=#document>Document</a></code>
+ object with the <code title="">data</code> attribute set to the
+ data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+
+ <p>If the DOCTYPE token's name is not a
+ <a href=#case-sensitive>case-sensitive</a> match for the string "<code title="">html</code>", or the token's public identifier is not
+ missing, or the token's system identifier is neither missing nor a
+ <a href=#case-sensitive>case-sensitive</a> match for the string
+ "<code><a href=#about:legacy-compat>about:legacy-compat</a></code>", and none of the sets of
+ conditions in the following list are matched, then there is a
+ <a href=#parse-error>parse error</a>.</p>
+
+ <ul><!-- only things that trigger no-quirks mode and were valid in
+ some other spec are allowed in this list --><li>The DOCTYPE token's name is a <a href=#case-sensitive>case-sensitive</a>
+ match for the string "<code title="">html</code>", the token's
+ public identifier is the <a href=#case-sensitive>case-sensitive</a> string
+ "<code title="">-//W3C//DTD&nbsp;HTML&nbsp;4.0//EN</code>", and
+ the token's system identifier is either missing or the
+ <a href=#case-sensitive>case-sensitive</a> string "<code title="">http://www.w3.org/TR/REC-html40/strict.dtd</code>".</li>
+
+ <li>The DOCTYPE token's name is a <a href=#case-sensitive>case-sensitive</a>
+ match for the string "<code title="">html</code>", the token's
+ public identifier is the <a href=#case-sensitive>case-sensitive</a> string
+ "<code title="">-//W3C//DTD&nbsp;HTML&nbsp;4.01//EN</code>", and
+ the token's system identifier is either missing or the
+ <a href=#case-sensitive>case-sensitive</a> string "<code title="">http://www.w3.org/TR/html4/strict.dtd</code>".</li>
+
+ <li>The DOCTYPE token's name is a <a href=#case-sensitive>case-sensitive</a>
+ match for the string "<code title="">html</code>", the token's
+ public identifier is the <a href=#case-sensitive>case-sensitive</a> string
+ "<code title="">-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Strict//EN</code>",
+ and the token's system identifier is the
+ <a href=#case-sensitive>case-sensitive</a> string "<code title="">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</code>".</li>
+
+ <li>The DOCTYPE token's name is a <a href=#case-sensitive>case-sensitive</a>
+ match for the string "<code title="">html</code>", the token's
+ public identifier is the <a href=#case-sensitive>case-sensitive</a> string
+ "<code title="">-//W3C//DTD&nbsp;XHTML&nbsp;1.1//EN</code>", and
+ the token's system identifier is the <a href=#case-sensitive>case-sensitive</a>
+ string "<code title="">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</code>".</li>
+
+ </ul><p>Conformance checkers may, based on the values (including
+ presence or lack thereof) of the DOCTYPE token's name, public
+ identifier, or system identifier, switch to a conformance checking
+ mode for another language (e.g. based on the DOCTYPE token a
+ conformance checker could recognize that the document is an
+ HTML4-era document, and defer to an HTML4 conformance
+ checker.)</p>
+
+ <p>Append a <code><a href=#documenttype>DocumentType</a></code> node to the
+ <code><a href=#document>Document</a></code> node, with the <code title="">name</code>
+ attribute set to the name given in the DOCTYPE token, or the empty
+ string if the name was missing; the <code title="">publicId</code>
+ attribute set to the public identifier given in the DOCTYPE token,
+ or the empty string if the public identifier was missing; the
+ <code title="">systemId</code> attribute set to the system
+ identifier given in the DOCTYPE token, or the empty string if the
+ system identifier was missing; and the other attributes specific
+ to <code><a href=#documenttype>DocumentType</a></code> objects set to null and empty lists
+ as appropriate. Associate the <code><a href=#documenttype>DocumentType</a></code> node with
+ the <code><a href=#document>Document</a></code> object so that it is returned as the
+ value of the <code title="">doctype</code> attribute of the
+ <code><a href=#document>Document</a></code> object.</p>
+
+ <p id=quirks-mode-doctypes>Then, if the DOCTYPE token matches
+ one of the conditions in the following list, then set the
+ <code><a href=#document>Document</a></code> to <a href=#quirks-mode>quirks mode</a>:</p>
+
+ <ul class=brief><li> The <i>force-quirks flag</i> is set to <i>on</i>. </li>
+ <li> The name is set to anything other than "<code title="">html</code>" (compared <a href=#case-sensitive title=case-sensitive>case-sensitively</a>). </li>
+ <li> The public identifier starts with: "<code title="">+//Silmaril//dtd html Pro v0r11 19970101//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//AdvaSoft Ltd//DTD HTML 3.0 asWedit + extensions//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//AS//DTD HTML 3.0 asWedit + extensions//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0 Level 1//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0 Level 2//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0 Strict Level 1//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0 Strict Level 2//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0 Strict//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.1E//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 3.0//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML 3.0//EN//</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 3.2 Final//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 3.2//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 3//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Level 0//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Level 0//EN//2.0</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Level 1//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Level 1//EN//2.0</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Level 2//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Level 2//EN//2.0</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Level 3//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Level 3//EN//3.0</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Strict Level 0//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict Level 0//EN//2.0</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Strict Level 1//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict Level 1//EN//2.0</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Strict Level 2//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict Level 2//EN//2.0</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Strict Level 3//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict Level 3//EN//3.0</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Strict//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict//EN//2.0</code>" </li>-->
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict//EN//3.0</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML//EN//2.0</code>" </li>-->
+ <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML//EN//3.0</code>" </li>-->
+ <li> The public identifier starts with: "<code title="">-//Metrius//DTD Metrius Presentational//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 2.0 HTML//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 2.0 Tables//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 3.0 HTML//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 3.0 Tables//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Netscape Comm. Corp.//DTD HTML//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Netscape Comm. Corp.//DTD Strict HTML//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//O'Reilly and Associates//DTD HTML 2.0//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//O'Reilly and Associates//DTD HTML Extended 1.0//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//O'Reilly and Associates//DTD HTML Extended Relaxed 1.0//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//SoftQuad Software//DTD HoTMetaL PRO 6.0::19990601::extensions to HTML 4.0//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//SoftQuad//DTD HoTMetaL PRO 4.0::19971010::extensions to HTML 4.0//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Spyglass//DTD HTML 2.0 Extended//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//SQ//DTD HTML 2.0 HoTMetaL + extensions//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Sun Microsystems Corp.//DTD HotJava HTML//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//Sun Microsystems Corp.//DTD HotJava Strict HTML//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 3 1995-03-24//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 3.2 Draft//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 3.2 Final//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 3.2//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 3.2S Draft//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 4.0 Frameset//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 4.0 Transitional//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML Experimental 19960712//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML Experimental 970421//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD W3 HTML//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3O//DTD W3 HTML 3.0//<!--EN--></code>" </li>
+ <!--<li> The public identifier is set to: "<code title="">-//W3O//DTD W3 HTML 3.0//EN//</code>" </li>-->
+ <li> The public identifier is set to: "<code title="">-//W3O//DTD W3 HTML Strict 3.0//EN//</code>" </li>
+ <li> The public identifier starts with: "<code title="">-//WebTechs//DTD Mozilla HTML 2.0//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//WebTechs//DTD Mozilla HTML//<!--EN--></code>" </li>
+ <li> The public identifier is set to: "<code title="">-/W3C/DTD HTML 4.0 Transitional/EN</code>" </li>
+ <li> The public identifier is set to: "<code title="">HTML</code>" </li>
+ <li> The system identifier is set to: "<code title="">http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd</code>" </li>
+ <li> The system identifier is missing and the public identifier starts with: "<code title="">-//W3C//DTD HTML 4.01 Frameset//<!--EN--></code>" </li>
+ <li> The system identifier is missing and the public identifier starts with: "<code title="">-//W3C//DTD HTML 4.01 Transitional//<!--EN--></code>" </li>
+ </ul><p>Otherwise, if the DOCTYPE token matches one of the conditions
+ in the following list, then set the <code><a href=#document>Document</a></code> to
+ <a href=#limited-quirks-mode>limited-quirks mode</a>:</p>
+
+ <ul class=brief><li> The public identifier starts with: "<code title="">-//W3C//DTD XHTML 1.0 Frameset//<!--EN--></code>" </li>
+ <li> The public identifier starts with: "<code title="">-//W3C//DTD XHTML 1.0 Transitional//<!--EN--></code>" </li>
+ <li> The system identifier is not missing and the public identifier starts with: "<code title="">-//W3C//DTD HTML 4.01 Frameset//<!--EN--></code>" </li>
+ <li> The system identifier is not missing and the public identifier starts with: "<code title="">-//W3C//DTD HTML 4.01 Transitional//<!--EN--></code>" </li>
+ </ul><p>The system identifier and public identifier strings must be
+ compared to the values given in the lists above in an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> manner. A system identifier whose value is
+ the empty string is not considered missing for the purposes of the
+ conditions above.</p>
+
+ <p>Then, switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#the-before-html-insertion-mode title="insertion mode: before html">before html</a>".</p>
+
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+
+ <p>If the document is <em>not</em> <a href=#an-iframe-srcdoc-document>an <code>iframe</code>
+ <code title=attr-iframe-srcdoc>srcdoc</code> document</a>,
+ then this is a <a href=#parse-error>parse error</a>; set the
+ <code><a href=#document>Document</a></code> to <a href=#quirks-mode>quirks mode</a>.</p>
+
+ <p>In any case, switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#the-before-html-insertion-mode title="insertion mode: before html">before html</a>", then
+ reprocess the current token.</p>
+
+ </dd>
+
+ </dl><h6 id=the-before-html-insertion-mode><span class=secno>13.2.5.4.2 </span>The "<dfn title="insertion mode: before html">before html</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#the-before-html-insertion-mode title="insertion mode: before html">before html</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <code><a href=#document>Document</a></code>
+ object with the <code title="">data</code> attribute set to the
+ data given in the comment token.</p>
+ </dd>
+
+ <dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+ <p>Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+
+ <p><a href=#create-an-element-for-the-token>Create an element for the token</a> in the <a href=#html-namespace-0>HTML
+ namespace</a>. Append it to the <code><a href=#document>Document</a></code>
+ object. Put this element in the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p id=parser-appcache>If the <code><a href=#document>Document</a></code> is being
+ loaded as part of <a href=#navigate title=navigate>navigation</a> of a
+ <a href=#browsing-context>browsing context</a>, then: if the newly created element
+ has a <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> attribute
+ whose value is not the empty string, then <a href=#resolve-a-url title="resolve a
+ url">resolve</a> the value of that attribute to an
+ <a href=#absolute-url>absolute URL</a>, relative to the newly created element,
+ and if that is successful, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ algorithm</a> with the resulting <a href=#absolute-url>absolute URL</a> with
+ any <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a> component
+ removed; otherwise, if there is no such attribute, or its value is
+ the empty string, or resolving its value fails, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ algorithm</a> with no manifest. The algorithm must be passed
+ the <code><a href=#document>Document</a></code> object.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#the-before-head-insertion-mode title="insertion mode: before head">before head</a>".</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "head", "body", "html", "br"</dt>
+ <dd>
+ <p>Act as described in the "anything else" entry below.</p>
+ </dd>
+
+ <dt>Any other end tag</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+
+ <p>Create an <code><a href=#the-html-element>html</a></code> element. Append it to the
+ <code><a href=#document>Document</a></code> object. Put this element in the <a href=#stack-of-open-elements>stack
+ of open elements</a>.</p>
+
+ <p>If the <code><a href=#document>Document</a></code> is being loaded as part of <a href=#navigate title=navigate>navigation</a> of a <a href=#browsing-context>browsing
+ context</a>, then: run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
+ algorithm</a> with no manifest, passing it the
+ <code><a href=#document>Document</a></code> object.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#the-before-head-insertion-mode title="insertion mode: before head">before head</a>", then
+ reprocess the current token.</p>
+
+ </dd>
+
+ </dl><p>The root element can end up being removed from the
+ <code><a href=#document>Document</a></code> object, e.g. by scripts; nothing in particular
+ happens in such cases, content continues being appended to the nodes
+ as described in the next section.</p>
+
+
+ <h6 id=the-before-head-insertion-mode><span class=secno>13.2.5.4.3 </span>The "<dfn title="insertion mode: before head">before head</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#the-before-head-insertion-mode title="insertion mode: before head">before head</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+ <p>Ignore the token.</p> <!-- :-( -->
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <a href=#current-node>current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "head"</dt>
+ <dd>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>Set the <a href=#head-element-pointer><code title="">head</code> element pointer</a>
+ to the newly created <code><a href=#the-head-element>head</a></code> element.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>".</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "head", "body", "html", "br"</dt>
+ <dd>
+
+ <p>Act as if a start tag token with the tag name "head" and no
+ attributes had been seen, then reprocess the current token.</p>
+
+ </dd>
+
+ <dt>Any other end tag</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+
+ <p>Act as if a start tag token with the tag name "head" and no
+ attributes had been seen, then reprocess the current
+ token.</p>
+
+ </dd>
+
+ </dl><h6 id=parsing-main-inhead><span class=secno>13.2.5.4.4 </span>The "<dfn title="insertion mode: in head">in head</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+ <p><a href=#insert-a-character title="insert a character">Insert the character</a> into
+ the <a href=#current-node>current node</a>.</p>
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <a href=#current-node>current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "base", "basefont",
+ "bgsound", "command", "link"</dt>
+ <dd>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token. Immediately
+ pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
+ token's <i>self-closing flag</i></a>, if it is set.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "meta"</dt>
+ <dd>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token. Immediately
+ pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
+ token's <i>self-closing flag</i></a>, if it is set.</p>
+
+ <p id=meta-charset-during-parse>If the element has a <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code> attribute, and its value
+ is either a supported <a href=#ascii-compatible-character-encoding>ASCII-compatible character
+ encoding</a> or <a href=#a-utf-16-encoding>a UTF-16 encoding</a>, and the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> is currently
+ <i>tentative</i>, then <a href=#change-the-encoding>change the encoding</a> to the
+ encoding given by the value of the <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code> attribute.</p>
+
+ <p>Otherwise, if the element has an <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute whose
+ value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the
+ string "<code title="">Content-Type</code>", and the element has a
+ <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute, and
+ applying the <a href=#algorithm-for-extracting-an-encoding-from-a-meta-element>algorithm for extracting an encoding from a
+ <code>meta</code> element</a> to that attribute's value returns
+ a supported <a href=#ascii-compatible-character-encoding>ASCII-compatible character encoding</a> or
+ <a href=#a-utf-16-encoding>a UTF-16 encoding</a>, and the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> is currently
+ <i>tentative</i>, then <a href=#change-the-encoding>change the encoding</a> to the
+ extracted encoding.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "title"</dt>
+ <dd>
+ <p>Follow the <a href=#generic-rcdata-element-parsing-algorithm>generic RCDATA element parsing algorithm</a>.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "noscript", if the <a href=#scripting-flag>scripting flag</a> is enabled</dt>
+ <dt>A start tag whose tag name is one of: "noframes", "style"</dt>
+ <dd>
+ <p>Follow the <a href=#generic-raw-text-element-parsing-algorithm>generic raw text element parsing algorithm</a>.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "noscript", if the <a href=#scripting-flag>scripting flag</a> is disabled</dt>
+ <dd>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inheadnoscript title="insertion mode: in head noscript">in head
+ noscript</a>".</p>
+
+ </dd>
+
+ <dt id=scriptTag>A start tag whose tag name is "script"</dt>
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p><a href=#create-an-element-for-the-token>Create an element for the token</a> in the
+ <a href=#html-namespace-0>HTML namespace</a>.</li>
+
+ <li>
+
+ <p>Mark the element as being <a href=#parser-inserted>"parser-inserted"</a> and
+ unset the element's <a href=#force-async>"force-async"</a> flag.</p>
+
+ <p class=note>This ensures that, if the script is external,
+ any <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code>
+ calls in the script will execute in-line, instead of blowing the
+ document away, as would happen in most other cases. It also
+ prevents the script from executing until the end tag is
+ seen.</p>
+
+ </li>
+
+ <li><p>If the parser was originally created for the <a href=#html-fragment-parsing-algorithm>HTML
+ fragment parsing algorithm</a>, then mark the
+ <code><a href=#the-script-element>script</a></code> element as <a href=#already-started>"already
+ started"</a>. (<a href=#fragment-case>fragment case</a>)</li>
+
+ <li><p>Append the new element to the <a href=#current-node>current node</a>
+ and push it onto the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</li>
+
+ <li><p>Switch the tokenizer to the <a href=#script-data-state>script data
+ state</a>.</li>
+
+ <li><p>Let the <a href=#original-insertion-mode>original insertion mode</a> be the current
+ <a href=#insertion-mode>insertion mode</a>.</p>
+
+ <li><p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-incdata title="insertion mode: text">text</a>".</li>
+
+ </ol></dd>
+
+ <dt>An end tag whose tag name is "head"</dt>
+ <dd>
+
+ <p>Pop the <a href=#current-node>current node</a> (which will be the
+ <code><a href=#the-head-element>head</a></code> element) off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#the-after-head-insertion-mode title="insertion mode: after head">after head</a>".</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "body", "html", "br"</dt>
+ <dd>
+ <p>Act as described in the "anything else" entry below.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "head"</dt>
+ <dt>Any other end tag</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+
+ <!-- can't get here with an EOF and a fragment case -->
+
+ <p>Act as if an end tag token with the tag name "head" had
+ been seen, and reprocess the current token.</p>
+
+ </dd>
+
+ </dl><h6 id=parsing-main-inheadnoscript><span class=secno>13.2.5.4.5 </span>The "<dfn title="insertion mode: in head noscript">in head noscript</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-inheadnoscript title="insertion mode: in head noscript">in head noscript</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>An end tag whose tag name is "noscript"</dt>
+ <dd>
+
+ <p>Pop the <a href=#current-node>current node</a> (which will be a
+ <code><a href=#the-noscript-element>noscript</a></code> element) from the <a href=#stack-of-open-elements>stack of open
+ elements</a>; the new <a href=#current-node>current node</a> will be a
+ <code><a href=#the-head-element>head</a></code> element.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>".</p>
+
+ </dd>
+
+ <dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dt>A comment token</dt>
+ <dt>A start tag whose tag name is one of: "basefont", "bgsound",
+ "link", "meta", "noframes", "style"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>An end tag whose tag name is "br"</dt>
+ <dd>
+ <p>Act as described in the "anything else" entry below.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "head", "noscript"</dt>
+ <dt>Any other end tag</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+
+ <!-- can't get here with an EOF and a fragment case -->
+
+ <p><a href=#parse-error>Parse error</a>. Act as if an end tag with the tag
+ name "noscript" had been seen and reprocess the current
+ token.</p>
+
+ </dd>
+
+ </dl><h6 id=the-after-head-insertion-mode><span class=secno>13.2.5.4.6 </span>The "<dfn title="insertion mode: after head">after head</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#the-after-head-insertion-mode title="insertion mode: after head">after head</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+ <p><a href=#insert-a-character title="insert a character">Insert the character</a> into
+ the <a href=#current-node>current node</a>.</p>
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <a href=#current-node>current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "body"</dt>
+ <dd>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "frameset"</dt>
+ <dd>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inframeset title="insertion mode: in frameset">in frameset</a>".</p>
+
+ </dd>
+
+ <dt>A start tag token whose tag name is one of: "base", "basefont",
+ "bgsound", "link", "meta", "noframes", "script", "style",
+ "title"</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>.</p>
+
+ <p>Push the node pointed to by the <a href=#head-element-pointer><code title="">head</code> element pointer</a> onto the
+ <a href=#stack-of-open-elements>stack of open elements</a>.</p>
+
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+
+ <p>Remove the node pointed to by the <a href=#head-element-pointer><code title="">head</code> element pointer</a> from the <a href=#stack-of-open-elements>stack
+ of open elements</a>.</p>
+
+ <p class=note>The <a href=#head-element-pointer><code title="">head</code> element
+ pointer</a> cannot be null at this point.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "body", "html", "br"</dt>
+ <dd>
+ <p>Act as described in the "anything else" entry below.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "head"</dt>
+ <dt>Any other end tag</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Act as if a start tag token with the tag name "body" and no
+ attributes had been seen, then set the <a href=#frameset-ok-flag>frameset-ok
+ flag</a> back to "ok", and then reprocess the current
+ token.</p>
+ </dd>
+
+ </dl><h6 id=parsing-main-inbody><span class=secno>13.2.5.4.7 </span>The "<dfn title="insertion mode: in body">in body</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is U+0000 NULL</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+
+ <!-- The D-Link DSL-G604T ADSL router has a zero byte in its
+ configuration UI before a <frameset>, which is why U+0000 is
+ special-cased here.
+ refs: https://bugzilla.mozilla.org/show_bug.cgi?id=563526
+ http://www.w3.org/Bugs/Public/show_bug.cgi?id=9659
+ -->
+
+ </dd>
+
+ <dt>A character token that is one of U+0009 CHARACTER TABULATION,
+ U+000A LINE FEED (LF), U+000C FORM FEED (FF), U+000D CARRIAGE
+ RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-a-character title="insert a character">Insert the token's
+ character</a> into the <a href=#current-node>current node</a>.</p>
+
+ </dd>
+
+ <dt>Any other character token</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-a-character title="insert a character">Insert the token's
+ character</a> into the <a href=#current-node>current node</a>.</p>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <a href=#current-node>current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. For each attribute on the token,
+ check to see if the attribute is already present on the top
+ element of the <a href=#stack-of-open-elements>stack of open elements</a>. If it is not,
+ add the attribute and its corresponding value to that element.</p>
+ </dd>
+
+ <dt>A start tag token whose tag name is one of: "base", "basefont",
+ "bgsound", "command", "link", "meta", "noframes", "script",
+ "style", "title"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "body"</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>.</p>
+
+ <p>If the second element on the <a href=#stack-of-open-elements>stack of open
+ elements</a> is not a <code><a href=#the-body-element>body</a></code> element, or, if the
+ <a href=#stack-of-open-elements>stack of open elements</a> has only one node on it,
+ then ignore the token. (<a href=#fragment-case>fragment case</a>)</p>
+
+ <p>Otherwise, set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok";
+ then, for each attribute on the token, check to see if the
+ attribute is already present on the <code><a href=#the-body-element>body</a></code> element (the
+ second element) on the <a href=#stack-of-open-elements>stack of open elements</a>, and if
+ it is not, add the attribute and its corresponding value to that
+ element.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "frameset"</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>.</p>
+
+ <p>If the second element on the <a href=#stack-of-open-elements>stack of open
+ elements</a> is not a <code><a href=#the-body-element>body</a></code> element, or, if the
+ <a href=#stack-of-open-elements>stack of open elements</a> has only one node on it,
+ then ignore the token. (<a href=#fragment-case>fragment case</a>)</p>
+
+ <p>If the <a href=#frameset-ok-flag>frameset-ok flag</a> is set to "not ok", ignore
+ the token.</p>
+
+ <p>Otherwise, run the following steps:</p>
+
+ <ol><li><p>Remove the second element on the <a href=#stack-of-open-elements>stack of open
+ elements</a> from its parent node, if it has one.</li>
+
+ <li><p>Pop all the nodes from the bottom of the <a href=#stack-of-open-elements>stack of
+ open elements</a>, from the <a href=#current-node>current node</a> up to,
+ but not including, the root <code><a href=#the-html-element>html</a></code> element.</p>
+
+ <li><p><a href=#insert-an-html-element>Insert an HTML element</a> for the
+ token.</li>
+
+ <li><p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inframeset title="insertion mode: in frameset">in frameset</a>".</p>
+
+ </ol></dd>
+
+ <dt>An end-of-file token</dt>
+ <dd>
+
+ <p>If there is a node in the <a href=#stack-of-open-elements>stack of open elements</a>
+ that is not either a <code><a href=#the-dd-element>dd</a></code> element, a <code><a href=#the-dt-element>dt</a></code>
+ element, an <code><a href=#the-li-element>li</a></code> element, a <code><a href=#the-p-element>p</a></code> element, a
+ <code><a href=#the-tbody-element>tbody</a></code> element, a <code><a href=#the-td-element>td</a></code> element, a
+ <code><a href=#the-tfoot-element>tfoot</a></code> element, a <code><a href=#the-th-element>th</a></code> element, a
+ <code><a href=#the-thead-element>thead</a></code> element, a <code><a href=#the-tr-element>tr</a></code> element, the
+ <code><a href=#the-body-element>body</a></code> element, or the <code><a href=#the-html-element>html</a></code> element, then
+ this is a <a href=#parse-error>parse error</a>.</p> <!-- (some of those are
+ fragment cases) -->
+
+ <p><a href=#stop-parsing>Stop parsing</a>.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is "body"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-scope title="has an element in scope">have a <code>body</code> element
+ in scope</a>, this is a <a href=#parse-error>parse error</a>; ignore the
+ token.</p>
+
+ <!-- if we get here, the insertion mode here is forcibly "in
+ body". -->
+
+ <p>Otherwise, if there is a node in the <a href=#stack-of-open-elements>stack of open
+ elements</a> that is not either a <code><a href=#the-dd-element>dd</a></code> element, a
+ <code><a href=#the-dt-element>dt</a></code> element, an <code><a href=#the-li-element>li</a></code> element, an
+ <code><a href=#the-optgroup-element>optgroup</a></code> element, an <code><a href=#the-option-element>option</a></code> element, a
+ <code><a href=#the-p-element>p</a></code> element, an <code><a href=#the-rp-element>rp</a></code> element, an
+ <code><a href=#the-rt-element>rt</a></code> element, a <code><a href=#the-tbody-element>tbody</a></code> element, a
+ <code><a href=#the-td-element>td</a></code> element, a <code><a href=#the-tfoot-element>tfoot</a></code> element, a
+ <code><a href=#the-th-element>th</a></code> element, a <code><a href=#the-thead-element>thead</a></code> element, a
+ <code><a href=#the-tr-element>tr</a></code> element, the <code><a href=#the-body-element>body</a></code> element, or the
+ <code><a href=#the-html-element>html</a></code> element, then this is a <a href=#parse-error>parse
+ error</a>.</p> <!-- (some of those are fragment cases, e.g. for
+ <tbody> you'd have hit the first paragraph since the <body>
+ wouldn't be in scope, unless it was a fragment case) -->
+
+ <!-- If we ever change the frameset-ok flag to an insertion mode,
+ then we'd have to somehow keep track of its state when we switch
+ to after-body. -->
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-afterbody title="insertion mode: after body">after body</a>".</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is "html"</dt>
+ <dd>
+
+ <p>Act as if an end tag with tag name "body" had been seen,
+ then, if that token wasn't ignored, reprocess the current
+ token.</p>
+
+ </dd>
+
+ <!-- start tags for non-phrasing flow content elements -->
+
+ <!-- the normal ones -->
+ <dt>A start tag whose tag name is one of: "address", "article",
+ "aside", "blockquote", "center", "details", "dir", "div", "dl",
+ "fieldset", "figcaption", "figure", "footer", "header", "hgroup",
+ "menu", "nav", "ol", "p", "section", "summary", "ul"</dt>
+ <dd>
+
+ <!-- As of May 2008 this doesn't match any browser exactly, but is
+ as close to what IE does as I can get without doing the non-tree
+ DOM nonsense, and thus should actually afford better compatibility
+ when implemented by the other browsers. -->
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-button-scope title="has an
+ element in button scope">has a <code>p</code> element in button
+ scope</a>, then act as if an end tag with the tag name "p" had
+ been seen.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ </dd>
+
+ <!-- as normal, but close h1-h6 if it's the current node -->
+ <dt>A start tag whose tag name is one of: "h1", "h2", "h3", "h4",
+ "h5", "h6"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-button-scope title="has
+ an element in button scope">has a <code>p</code> element in button
+ scope</a>, then act as if an end tag with the tag name
+ "p" had been seen.</p>
+
+ <p>If the <a href=#current-node>current node</a> is an element whose tag name
+ is one of "h1", "h2", "h3", "h4", "h5", or "h6", then this is a
+ <a href=#parse-error>parse error</a>; pop the <a href=#current-node>current node</a> off
+ the <a href=#stack-of-open-elements>stack of open elements</a>.</p>
+ <!-- See https://bugs.webkit.org/show_bug.cgi?id=12646 -->
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ </dd>
+
+ <!-- as normal, but drops leading newline -->
+ <dt>A start tag whose tag name is one of: "pre", "listing"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-button-scope title="has
+ an element in button scope">has a <code>p</code> element in button
+ scope</a>, then act as if an end tag with the tag name
+ "p" had been seen.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>If the next token is a U+000A LINE FEED (LF) character
+ token, then ignore that token and move on to the next
+ one. (Newlines at the start of <code><a href=#the-pre-element>pre</a></code> blocks are
+ ignored as an authoring convenience.)</p>
+
+ <!-- <pre>[CR]X will eat the [CR], <pre>&#x10;X will eat the
+ &#x10;, but <pre>&#x13;X will not eat the &#x13;. -->
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ </dd>
+
+ <!-- as normal, but interacts with the form element pointer -->
+ <dt>A start tag whose tag name is "form"</dt>
+ <dd>
+
+ <p>If the <a href=#form-element-pointer><code title=form>form</code> element
+ pointer</a> is not null, then this is a <a href=#parse-error>parse
+ error</a>; ignore the token.</p>
+
+ <p>Otherwise:</p>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-button-scope title="has
+ an element in button scope">has a <code>p</code> element in button
+ scope</a>, then act as if an end tag with the tag name
+ "p" had been seen.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token, and set the
+ <a href=#form-element-pointer><code title=form>form</code> element pointer</a> to
+ point to the element created.</p>
+
+ </dd>
+
+ <!-- as normal, but imply </li> when there's another <li> open in weird cases -->
+ <dt>A start tag whose tag name is "li"</dt>
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</li>
+
+ <li><p>Initialize <var title="">node</var> to be the <a href=#current-node>current
+ node</a> (the bottommost node of the stack).</li>
+
+ <li><p><i>Loop</i>: If <var title="">node</var> is an
+ <code><a href=#the-li-element>li</a></code> element, then act as if an end tag with the tag
+ name "li" had been seen, then jump to the last step.</li>
+
+ <li><p>If <var title="">node</var> is in the <a href=#special>special</a>
+ category, but is not an <code><a href=#the-address-element>address</a></code>, <code><a href=#the-div-element>div</a></code>,
+ or <code><a href=#the-p-element>p</a></code> element, then jump to the last step.</li>
+ <!-- an element <foo> is in this list if the following markup:
+
+ <!DOCTYPE html><body><ol><li><foo><li>
+
+ ...results in the second <li> not being (in any way) a descendant
+ of the first <li>, or if <foo> is a formatting element that gets
+ reopened later. -->
+
+ <li><p>Otherwise, set <var title="">node</var> to the previous
+ entry in the <a href=#stack-of-open-elements>stack of open elements</a> and return to
+ the step labeled <i>loop</i>.</li>
+
+ <li>
+
+ <p>This is the last step.</p>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-button-scope title="has
+ an element in button scope">has a <code>p</code> element in button
+ scope</a>, then act as if an end tag with the tag name
+ "p" had been seen.</p>
+
+ <p>Finally, <a href=#insert-an-html-element>insert an HTML element</a> for the
+ token.</p>
+
+ </li>
+
+ </ol></dd>
+
+ <!-- as normal, but imply </dt> or </dd> when there's another <dt> or <dd> open in weird cases -->
+ <dt>A start tag whose tag name is one of: "dd", "dt"</dt>
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</li>
+
+ <li><p>Initialize <var title="">node</var> to be the <a href=#current-node>current
+ node</a> (the bottommost node of the stack).</li>
+
+ <li><p><i>Loop</i>: If <var title="">node</var> is a
+ <code><a href=#the-dd-element>dd</a></code> or <code><a href=#the-dt-element>dt</a></code> element, then act as if an end
+ tag with the same tag name as <var title="">node</var> had been
+ seen, then jump to the last step.</li>
+
+ <li><p>If <var title="">node</var> is in the <a href=#special>special</a>
+ category, but is not an <code><a href=#the-address-element>address</a></code>, <code><a href=#the-div-element>div</a></code>,
+ or <code><a href=#the-p-element>p</a></code> element, then jump to the last step.</li>
+ <!-- an element <foo> is in this list if the following markup:
+
+ <!DOCTYPE html><body><dl><dt><foo><dt>
+
+ ...results in the second <dt> not being (in any way) a descendant
+ of the first <dt>, or if <foo> is a formatting element that gets
+ reopened later. -->
+
+ <li><p>Otherwise, set <var title="">node</var> to the previous
+ entry in the <a href=#stack-of-open-elements>stack of open elements</a> and return to
+ the step labeled <i>loop</i>.</li>
+
+ <li>
+
+ <p>This is the last step.</p>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-button-scope title="has
+ an element in button scope">has a <code>p</code> element in button
+ scope</a>, then act as if an end tag with the tag name
+ "p" had been seen.</p>
+
+ <p>Finally, <a href=#insert-an-html-element>insert an HTML element</a> for the
+ token.</p>
+
+ </li>
+
+ </ol></dd>
+
+ <!-- same as normal, but effectively ends parsing -->
+ <dt>A start tag whose tag name is "plaintext"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-button-scope title="has
+ an element in button scope">has a <code>p</code> element in button
+ scope</a>, then act as if an end tag with the tag name
+ "p" had been seen.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>Switch the tokenizer to the <a href=#plaintext-state>PLAINTEXT state</a>.</p>
+
+ <p class=note>Once a start tag with the tag name "plaintext" has
+ been seen, that will be the last token ever seen other than
+ character tokens (and the end-of-file token), because there is no
+ way to switch out of the <a href=#plaintext-state>PLAINTEXT state</a>.</p>
+
+ </dd>
+
+ <!-- button is a hybrid -->
+ <dt>A start tag whose tag name is "button"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-scope title="has
+ an element in scope">has a <code>button</code> element in
+ scope</a>, then this is a <a href=#parse-error>parse error</a>;
+ act as if an end tag with the tag name "button" had been seen,
+ then reprocess the token.</p>
+
+ <p>Otherwise:</p>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ </dd>
+
+ <!-- end tags for non-phrasing flow content elements (and button) -->
+
+ <!-- the normal ones -->
+ <dt>An end tag whose tag name is one of: "address", "article",
+ "aside", "blockquote", "button", "center", "details", "dir", "div",
+ "dl", "fieldset", "figcaption", "figure", "footer", "header",
+ "hgroup", "listing", "menu", "nav", "ol", "pre", "section",
+ "summary", "ul"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-scope title="has an element in scope">have an element in scope</a>
+ with the same tag name as that of the token, then this is a
+ <a href=#parse-error>parse error</a>; ignore the token.</p>
+
+ <p>Otherwise, run these steps:</p>
+
+ <ol><li><p><a href=#generate-implied-end-tags>Generate implied end tags</a>.</li>
+
+ <li><p>If the <a href=#current-node>current node</a> is not an element with
+ the same tag name as that of the token, then this is a
+ <a href=#parse-error>parse error</a>.</li>
+
+ <li><p>Pop elements from the <a href=#stack-of-open-elements>stack of open elements</a>
+ until an element with the same tag name as the token has been
+ popped from the stack.</li>
+
+ </ol></dd>
+
+ <!-- removes the form element pointer instead of the matching node -->
+ <dt>An end tag whose tag name is "form"</dt>
+ <dd>
+
+ <p>Let <var title="">node</var> be the element that the
+ <a href=#form-element-pointer><code title="">form</code> element pointer</a> is set
+ to.</p>
+
+ <p>Set the <a href=#form-element-pointer><code title="">form</code> element pointer</a>
+ to null.</p>
+
+ <p>If <var title="">node</var> is null or the <a href=#stack-of-open-elements>stack of open
+ elements</a> does not <a href=#has-an-element-in-scope title="has an element in
+ scope">have <var title="">node</var> in scope</a>, then this is
+ a <a href=#parse-error>parse error</a>; ignore the token.</p>
+
+ <p>Otherwise, run these steps:</p>
+
+ <ol><li><p><a href=#generate-implied-end-tags>Generate implied end tags</a>.</li>
+
+ <li><p>If the <a href=#current-node>current node</a> is not <var title="">node</var>, then this is a <a href=#parse-error>parse
+ error</a>.</li>
+
+ <li><p>Remove <var title="">node</var> from the <a href=#stack-of-open-elements>stack of
+ open elements</a>.</li>
+
+ </ol></dd>
+
+ <!-- as normal, except </p> implies <p> if there's no <p> in scope, and needs care as the elements have optional tags -->
+ <dt>An end tag whose tag name is "p"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-button-scope title="has an element in button scope">have an element in button
+ scope</a> with the same tag name as that of the token, then this
+ is a <a href=#parse-error>parse error</a>; act as if a start tag with the tag
+ name "p" had been seen, then reprocess the current token.</p>
+
+ <p>Otherwise, run these steps:</p>
+
+ <ol><li><p><a href=#generate-implied-end-tags>Generate implied end tags</a>, except
+ for elements with the same tag name as the token.</li>
+
+ <li><p>If the <a href=#current-node>current node</a> is not an element with
+ the same tag name as that of the token, then this is a
+ <a href=#parse-error>parse error</a>.</li>
+
+ <li><p>Pop elements from the <a href=#stack-of-open-elements>stack of open elements</a>
+ until an element with the same tag name as the token has been
+ popped from the stack.</li>
+
+ </ol></dd>
+
+ <!-- as normal, but needs care as the elements have optional tags, and are further scoped by <ol>/<ul> -->
+ <dt>An end tag whose tag name is "li"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-list-item-scope title="has an element in list item scope">have an element in list
+ item scope</a> with the same tag name as that of the token,
+ then this is a <a href=#parse-error>parse error</a>; ignore the token.</p>
+
+ <p>Otherwise, run these steps:</p>
+
+ <ol><li><p><a href=#generate-implied-end-tags>Generate implied end tags</a>, except
+ for elements with the same tag name as the token.</li>
+
+ <li><p>If the <a href=#current-node>current node</a> is not an element with
+ the same tag name as that of the token, then this is a
+ <a href=#parse-error>parse error</a>.</li>
+
+ <li><p>Pop elements from the <a href=#stack-of-open-elements>stack of open elements</a>
+ until an element with the same tag name as the token has been
+ popped from the stack.</li>
+
+ </ol></dd>
+
+ <!-- as normal, but needs care as the elements have optional tags -->
+ <dt>An end tag whose tag name is one of: "dd", "dt"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-scope title="has an element in scope">have an element in scope</a>
+ with the same tag name as that of the token, then this is a
+ <a href=#parse-error>parse error</a>; ignore the token.</p>
+
+ <p>Otherwise, run these steps:</p>
+
+ <ol><li><p><a href=#generate-implied-end-tags>Generate implied end tags</a>, except
+ for elements with the same tag name as the token.</li>
+
+ <li><p>If the <a href=#current-node>current node</a> is not an element with
+ the same tag name as that of the token, then this is a
+ <a href=#parse-error>parse error</a>.</li>
+
+ <li><p>Pop elements from the <a href=#stack-of-open-elements>stack of open elements</a>
+ until an element with the same tag name as the token has been
+ popped from the stack.</li>
+
+ </ol></dd>
+
+ <!-- as normal, except acts as a closer for any of the h1-h6 elements -->
+ <dt>An end tag whose tag name is one of: "h1", "h2", "h3", "h4", "h5", "h6"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-scope title="has an element in scope">have an element in scope</a>
+ whose tag name is one of "h1", "h2", "h3", "h4", "h5", or "h6",
+ then this is a <a href=#parse-error>parse error</a>; ignore the token.</p>
+
+ <p>Otherwise, run these steps:</p>
+
+ <ol><li><p><a href=#generate-implied-end-tags>Generate implied end tags</a>.</li>
+
+ <li><p>If the <a href=#current-node>current node</a> is not an element with
+ the same tag name as that of the token, then this is a
+ <a href=#parse-error>parse error</a>.</li>
+
+ <li><p>Pop elements from the <a href=#stack-of-open-elements>stack of open elements</a>
+ until an element whose tag name is one of "h1", "h2", "h3", "h4",
+ "h5", or "h6" has been popped from the stack.</li>
+
+ </ol></dd>
+
+ <!-- see also applet/marquee/object lower down -->
+
+ <dt>An end tag whose tag name is "sarcasm"</dt>
+ <dd>
+ <p>Take a deep breath, then act as described in the "any other end
+ tag" entry below.</p>
+ </dd>
+
+ <!-- ADOPTION AGENCY ELEMENTS
+ Mozilla-only: bdo blink del ins sub sup q
+ Safari-only: code dfn kbd nobr samp var wbr
+ Both: a b big em font i s small strike strong tt u -->
+
+ <dt>A start tag whose tag name is "a"</dt>
+ <dd>
+
+ <p>If the <a href=#list-of-active-formatting-elements>list of active formatting elements</a>
+ contains an element whose tag name is "a" between the end of
+ the list and the last marker on the list (or the start of the
+ list if there is no marker on the list), then this is a
+ <a href=#parse-error>parse error</a>; act as if an end tag with the tag
+ name "a" had been seen, then remove that element from the
+ <a href=#list-of-active-formatting-elements>list of active formatting elements</a> and the
+ <a href=#stack-of-open-elements>stack of open elements</a> if the end tag didn't
+ already remove it (it might not have if the element is not
+ <a href=#has-an-element-in-table-scope title="has an element in table scope">in table
+ scope</a>).</p>
+
+ <p class=example>In the non-conforming stream
+ <code>&lt;a&nbsp;href="a"&gt;a&lt;table&gt;&lt;a&nbsp;href="b"&gt;b&lt;/table&gt;x</code>,
+ the first <code><a href=#the-a-element>a</a></code> element would be closed upon seeing the
+ second one, and the "x" character would be inside a link to "b",
+ not to "a". This is despite the fact that the outer <code><a href=#the-a-element>a</a></code>
+ element is not in table scope (meaning that a regular
+ <code>&lt;/a&gt;</code> end tag at the start of the table wouldn't
+ close the outer <code><a href=#the-a-element>a</a></code> element). The result is that the
+ two <code><a href=#the-a-element>a</a></code> elements are indirectly nested inside each
+ other &mdash; non-conforming markup will often result in
+ non-conforming DOMs when parsed.</p>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token. <a href=#push-onto-the-list-of-active-formatting-elements>Push
+ onto the list of active formatting elements</a> that
+ element.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "b", "big", "code", "em",
+ "font", "i", "s", "small", "strike", "strong", "tt", "u"</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token. <a href=#push-onto-the-list-of-active-formatting-elements>Push
+ onto the list of active formatting elements</a> that
+ element.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "nobr"</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-scope title="has an
+ element in scope">has a <code>nobr</code> element in scope</a>,
+ then this is a <a href=#parse-error>parse error</a>; act as if an end tag with
+ the tag name "nobr" had been seen, then once again
+ <a href=#reconstruct-the-active-formatting-elements>reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token. <a href=#push-onto-the-list-of-active-formatting-elements>Push
+ onto the list of active formatting elements</a> that
+ element.</p>
+
+ </dd>
+
+ <dt id=adoptionAgency>An end tag whose tag name is one of: "a",
+ "b", "big", "code", "em", "font", "i", "nobr", "s", "small",
+ "strike", "strong", "tt", "u"</dt>
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p>Let <var title="">outer loop counter</var> be
+ zero.</li>
+
+ <li><p><i>Outer loop</i>: If <var title="">outer loop
+ counter</var> is greater than or equal to eight, then abort these
+ steps.</li>
+
+ <li><p>Increment <var title="">outer loop counter</var> by
+ one.</li>
+
+ <li>
+
+ <p>Let the <var title="">formatting element</var> be the last
+ element in the <a href=#list-of-active-formatting-elements>list of active formatting elements</a>
+ that:</p>
+
+ <ul><li>is between the end of the list and the last scope
+ marker in the list, if any, or the start of the list
+ otherwise, and</li>
+
+ <li>has the same tag name as the token.</li>
+
+ </ul><p>If there is no such node, then abort these steps and instead
+ act as described in the "any other end tag" entry below.</p>
+
+ <p>Otherwise, if there is such a node, but that node is not
+ in the <a href=#stack-of-open-elements>stack of open elements</a>, then this is a
+ <a href=#parse-error>parse error</a>; remove the element from the list,
+ and abort these steps.</p>
+
+ <p>Otherwise, if there is such a node, and that node is also in
+ the <a href=#stack-of-open-elements>stack of open elements</a>, but the element is not
+ <a href=#has-an-element-in-scope title="has an element in scope">in scope</a>, then this
+ is a <a href=#parse-error>parse error</a>; ignore the token, and abort these
+ steps.</p>
+
+ <p>Otherwise, there is a <var title="">formatting
+ element</var> and that element is in <a href=#stack-of-open-elements title="stack of
+ open elements">the stack</a> and is <a href=#has-an-element-in-scope title="has an
+ element in scope">in scope</a>. If the element is not the
+ <a href=#current-node>current node</a>, this is a <a href=#parse-error>parse
+ error</a>. In any case, proceed with the algorithm as
+ written in the following steps.</p>
+
+ </li>
+
+ <li><p>Let the <var title="">furthest block</var> be the topmost
+ node in the <a href=#stack-of-open-elements>stack of open elements</a> that is lower in
+ the stack than the <var title="">formatting element</var>, and is
+ an element in the <a href=#special>special</a> category. There might not
+ be one.</li>
+
+ <li><p>If there is no <var title="">furthest block</var>,
+ then the UA must skip the subsequent steps and instead just
+ pop all the nodes from the bottom of the <a href=#stack-of-open-elements>stack of open
+ elements</a>, from the <a href=#current-node>current node</a> up to and
+ including the <var title="">formatting element</var>, and
+ remove the <var title="">formatting element</var> from the
+ <a href=#list-of-active-formatting-elements>list of active formatting elements</a>.</li>
+
+ <li><p>Let the <var title="">common ancestor</var> be the element
+ immediately above the <var title="">formatting element</var> in the
+ <a href=#stack-of-open-elements>stack of open elements</a>.</li>
+
+ <li><p>Let a bookmark note the position of the <var title="">formatting element</var> in the <a href=#list-of-active-formatting-elements>list of active
+ formatting elements</a> relative to the elements on either
+ side of it in the list.</li>
+
+ <li>
+
+ <p>Let <var title="">node</var> and <var title="">last node</var> be the
+ <var title="">furthest block</var>. Follow these steps:</p>
+
+ <ol><li><p>Let <var title="">inner loop counter</var> be
+ zero.</li>
+
+ <li><p><i>Inner loop</i>: If <var title="">inner loop
+ counter</var> is greater than or equal to three, then abort these
+ steps.</li>
+
+ <li><p>Increment <var title="">inner loop counter</var> by
+ one.</li>
+
+ <li>Let <var title="">node</var> be the element immediately
+ above <var title="">node</var> in the <a href=#stack-of-open-elements>stack of open
+ elements</a>, or if <var title="">node</var> is no longer in
+ the <a href=#stack-of-open-elements>stack of open elements</a> (e.g. because it got
+ removed by the next step), the element that was immediately
+ above <var title="">node</var> in the <a href=#stack-of-open-elements>stack of open
+ elements</a> before <var title="">node</var> was
+ removed.</li>
+
+ <li>If <var title="">node</var> is not in the <a href=#list-of-active-formatting-elements>list of
+ active formatting elements</a>, then remove <var title="">node</var> from the <a href=#stack-of-open-elements>stack of open
+ elements</a> and then go back to the step labeled <i>inner
+ loop</i>.</li>
+
+ <li>Otherwise, if <var title="">node</var> is the <var title="">formatting element</var>, then go to the next step
+ in the overall algorithm.</li>
+
+ <li><a href=#create-an-element-for-the-token>Create an element for the token</a> for which the
+ element <var title="">node</var> was created, replace the entry
+ for <var title="">node</var> in the <a href=#list-of-active-formatting-elements>list of active
+ formatting elements</a> with an entry for the new element,
+ replace the entry for <var title="">node</var> in the
+ <a href=#stack-of-open-elements>stack of open elements</a> with an entry for the new
+ element, and let <var title="">node</var> be the new
+ element.</li>
+
+ <li>If <var title="">last node</var> is the <var title="">furthest block</var>, then move the aforementioned
+ bookmark to be immediately after the new <var title="">node</var> in the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a>.</li>
+
+ <li>Insert <var title="">last node</var> into <var title="">node</var>, first removing it from its previous
+ parent node if any.</li>
+
+ <li>Let <var title="">last node</var> be <var title="">node</var>.</li>
+
+ <li>Return to the step labeled <i>inner loop</i>.</li>
+
+ </ol></li>
+
+ <li>
+
+ <p>If the <var title="">common ancestor</var> node is a
+ <code><a href=#the-table-element>table</a></code>, <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>,
+ <code><a href=#the-thead-element>thead</a></code>, or <code><a href=#the-tr-element>tr</a></code> element, then,
+ <a href=#foster-parent>foster parent</a> whatever <var title="">last
+ node</var> ended up being in the previous step, first removing
+ it from its previous parent node if any.</p>
+
+ <p>Otherwise, append whatever <var title="">last node</var>
+ ended up being in the previous step to the <var title="">common
+ ancestor</var> node, first removing it from its previous parent
+ node if any.</p>
+
+ </li>
+
+ <li><p><a href=#create-an-element-for-the-token>Create an element for the token</a> for which the
+ <var title="">formatting element</var> was created.</li>
+
+ <li><p>Take all of the child nodes of the <var title="">furthest
+ block</var> and append them to the element created in the last
+ step.</li>
+
+ <li><p>Append that new element to the <var title="">furthest
+ block</var>.</li>
+
+ <li><p>Remove the <var title="">formatting element</var> from the
+ <a href=#list-of-active-formatting-elements>list of active formatting elements</a>, and insert the
+ new element into the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a> at the position of the aforementioned
+ bookmark.</li>
+
+ <li><p>Remove the <var title="">formatting element</var> from the
+ <a href=#stack-of-open-elements>stack of open elements</a>, and insert the new element
+ into the <a href=#stack-of-open-elements>stack of open elements</a> immediately below
+ the position of the <var title="">furthest block</var> in that
+ stack.</li>
+
+ <li><p>Jump back to the step labeled <i>outer loop</i>.</li>
+
+ </ol><p class=note>Because of the way this algorithm causes elements
+ to change parents, it has been dubbed the "adoption agency
+ algorithm" (in contrast with other possible algorithms for dealing
+ with misnested content, which included the "incest algorithm", the
+ "secret affair algorithm", and the "Heisenberg algorithm").</p>
+
+ </dd>
+
+ <dt>A start tag token whose tag name is one of: "applet",
+ "marquee", "object"</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>Insert a marker at the end of the <a href=#list-of-active-formatting-elements>list of active
+ formatting elements</a>.</p>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ </dd>
+
+ <dt>An end tag token whose tag name is one of: "applet",
+ "marquee", "object"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-scope title="has an element in scope">have an element in scope</a>
+ with the same tag name as that of the token, then this is a
+ <a href=#parse-error>parse error</a>; ignore the token.</p>
+
+ <p>Otherwise, run these steps:</p>
+
+ <ol><li><p><a href=#generate-implied-end-tags>Generate implied end tags</a>.</li>
+
+ <li><p>If the <a href=#current-node>current node</a> is not an element with
+ the same tag name as that of the token, then this is a
+ <a href=#parse-error>parse error</a>.</li>
+
+ <li><p>Pop elements from the <a href=#stack-of-open-elements>stack of open elements</a>
+ until an element with the same tag name as the token has been
+ popped from the stack.</li>
+
+ <li><a href=#clear-the-list-of-active-formatting-elements-up-to-the-last-marker>Clear the list of active formatting elements up to the
+ last marker</a>.</li>
+
+ </ol></dd>
+
+ <dt>A start tag whose tag name is "table"</dt>
+ <dd>
+
+ <p>If the <code><a href=#document>Document</a></code> is <em>not</em> set to
+ <a href=#quirks-mode>quirks mode</a>, and the <a href=#stack-of-open-elements>stack of open
+ elements</a> <a href=#has-an-element-in-button-scope title="has an element in button scope">has a
+ <code>p</code> element in button scope</a>, then act as if an
+ end tag with the tag name "p" had been seen.</p> <!-- i hate
+ myself (this quirk was basically caused by acid2; if i'd realised
+ we could change the specs when i wrote acid2, we could have
+ avoided having any parsing-mode quirks) -Hixie -->
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "area", "br", "embed",
+ "img", "keygen", "wbr"</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token. Immediately
+ pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
+ token's <i>self-closing flag</i></a>, if it is set.</p>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+ <!-- shouldn't really do this for <area> -->
+
+ </dd>
+
+ <dt>A start tag whose tag name is "input"</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token. Immediately
+ pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
+ token's <i>self-closing flag</i></a>, if it is set.</p>
+
+ <p>If the token does not have an attribute with the name "type",
+ or if it does, but that attribute's value is not an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">hidden</code>", then: set the <a href=#frameset-ok-flag>frameset-ok
+ flag</a> to "not ok".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "param", "source", "track"</dt>
+ <dd>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token. Immediately
+ pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
+ token's <i>self-closing flag</i></a>, if it is set.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "hr"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-button-scope title="has
+ an element in button scope">has a <code>p</code> element in button
+ scope</a>, then act as if an end tag with the tag name
+ "p" had been seen.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token. Immediately
+ pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
+ token's <i>self-closing flag</i></a>, if it is set.</p>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "image"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Change the token's tag name
+ to "img" and reprocess it. (Don't ask.)</p> <!-- As of
+ 2005-12, studies showed that around 0.2% of pages used the
+ <image> element. -->
+ </dd>
+
+ <dt id=isindex>A start tag whose tag name is "isindex"</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>.</p>
+
+ <p>If the <a href=#form-element-pointer><code title="">form</code> element
+ pointer</a> is not null, then ignore the token.</p>
+
+ <p>Otherwise:</p>
+
+ <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
+ token's <i>self-closing flag</i></a>, if it is set.</p> <!--
+ purely to reduce the number of errors (we don't care if they
+ included the /, they're not supposed to be including the tag at
+ all! -->
+
+ <p>Act as if a start tag token with the tag name "form" had been seen.</p>
+
+ <p>If the token has an attribute called "action", set the
+ <code title=attr-fs-action><a href=#attr-fs-action>action</a></code> attribute on the
+ resulting <code><a href=#the-form-element>form</a></code> element to the value of the
+ "action" attribute of the token.</p>
+
+ <p>Act as if a start tag token with the tag name "hr" had been
+ seen.</p>
+
+ <p>Act as if a start tag token with the tag name "label" had been
+ seen.</p>
+
+ <p>Act as if a stream of character tokens had been seen (see below
+ for what they should say).</p>
+
+ <p>Act as if a start tag token with the tag name "input" had been
+ seen, with all the attributes from the "isindex" token except
+ "name", "action", and "prompt". Set the <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute of the resulting
+ <code><a href=#the-input-element>input</a></code> element to the value "<code title=attr-fe-name-isindex><a href=#attr-fe-name-isindex>isindex</a></code>".</p>
+
+ <p>Act as if a stream of character tokens had been seen (see
+ below for what they should say).</p>
+
+ <p>Act as if an end tag token with the tag name "label" had been
+ seen.</p>
+
+ <p>Act as if a start tag token with the tag name "hr" had been
+ seen.</p>
+
+ <p>Act as if an end tag token with the tag name "form" had been
+ seen.</p>
+
+ <p>If the token has an attribute with the name "prompt", then the
+ first stream of characters must be the same string as given in
+ that attribute, and the second stream of characters must be
+ empty. Otherwise, the two streams of character tokens together
+ should, together with the <code><a href=#the-input-element>input</a></code> element, express the
+ equivalent of "This is a searchable index. Enter search keywords:
+ (input field)" in the user's preferred language.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "textarea"</dt>
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p><a href=#insert-an-html-element>Insert an HTML element</a> for the
+ token.</li>
+
+ <li><p>If the next token is a U+000A LINE FEED (LF) character
+ token, then ignore that token and move on to the next
+ one. (Newlines at the start of <code><a href=#the-textarea-element>textarea</a></code> elements are
+ ignored as an authoring convenience.)</li>
+
+ <!-- see comment in <pre> start tag bit -->
+
+ <li><p>Switch the tokenizer to the <a href=#rcdata-state>RCDATA
+ state</a>.</li>
+
+ <li><p>Let the <a href=#original-insertion-mode>original insertion mode</a> be the
+ current <a href=#insertion-mode>insertion mode</a>.</p>
+
+ <li><p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not
+ ok".</li>
+
+ <li><p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-incdata title="insertion mode: text">text</a>".</li>
+
+ </ol></dd>
+
+ <dt>A start tag whose tag name is "xmp"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-button-scope title="has
+ an element in button scope">has a <code>p</code> element in button
+ scope</a>, then act as if an end tag with the tag name
+ "p" had been seen.</p>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ <p>Follow the <a href=#generic-raw-text-element-parsing-algorithm>generic raw text element parsing algorithm</a>.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "iframe"</dt>
+ <dd>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ <p>Follow the <a href=#generic-raw-text-element-parsing-algorithm>generic raw text element parsing algorithm</a>.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "noembed"</dt>
+ <dt>A start tag whose tag name is "noscript", if the <a href=#scripting-flag>scripting flag</a> is enabled</dt>
+ <dd>
+
+ <p>Follow the <a href=#generic-raw-text-element-parsing-algorithm>generic raw text element parsing algorithm</a>.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "select"</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ <p>If the <a href=#insertion-mode>insertion mode</a> is one of "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>", "<a href=#parsing-main-incaption title="insertion mode: in caption">in caption</a>", "<a href=#parsing-main-intbody title="insertion mode: in table body">in table body</a>",
+ "<a href=#parsing-main-intr title="insertion mode: in row">in row</a>", or "<a href=#parsing-main-intd title="insertion mode: in cell">in cell</a>", then switch the
+ <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inselectintable title="insertion mode: in
+ select in table">in select in table</a>". Otherwise, switch the
+ <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inselect title="insertion mode: in
+ select">in select</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "optgroup", "option"</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is an <code><a href=#the-option-element>option</a></code>
+ element, then act as if an end tag with the tag name "option" had
+ been seen.</p>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "rp", "rt"</dt>
+ <dd>
+
+ <!-- the parsing rules for ruby really don't match IE much at all,
+ but in practice the markup used is very simple and so strict
+ compatibility with IE isn't required. For example, as defined
+ here we get very, very different behaviour than IE for
+ pathological cases like:
+
+ <ruby><ol><li><p>a<rt>b
+ <ruby>a<rt>b<p>c
+
+ But in practice most ruby markup falls into these cases:
+
+ <ruby>a<rt>b</ruby>
+ <ruby>a<rp>b<rt>c<rp>d</ruby>
+ <ruby>a<rt>b</rt></ruby>
+ <ruby>a<rp>b</rp><rt>c</rt><rp>d</rp></ruby>
+
+ (Note: the comment above was written when this section did
+ something slightly more radical for handling <rp> and <rt>
+ elements, so it might be out of date now.)
+
+ -->
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-scope title="has an
+ element in scope">has a <code>ruby</code> element in scope</a>,
+ then <a href=#generate-implied-end-tags>generate implied end tags</a>. If the <a href=#current-node>current
+ node</a> is not then a <code><a href=#the-ruby-element>ruby</a></code> element, this is a
+ <a href=#parse-error>parse error</a>.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is "br"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Act as if a start tag token with
+ the tag name "br" had been seen. Ignore the end tag token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "math"</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#adjust-mathml-attributes>Adjust MathML attributes</a> for the token. (This
+ fixes the case of MathML attributes that are not all
+ lowercase.)</p>
+
+ <p><a href=#adjust-foreign-attributes>Adjust foreign attributes</a> for the token. (This
+ fixes the use of namespaced attributes, in particular XLink.)</p>
+
+ <p><a href=#insert-a-foreign-element>Insert a foreign element</a> for the token, in the
+ <a href=#mathml-namespace>MathML namespace</a>.</p>
+
+ <!-- If we ever change the frameset-ok flag to an insertion mode,
+ the following change would be implied, except we'd have to do it
+ even in the face of a self-closed tag:
+ <p>Set the <span>frameset-ok flag</span> to "not ok".</p>
+ -->
+
+ <p>If the token has its <i>self-closing flag</i> set, pop the
+ <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a> and <a href=#acknowledge-self-closing-flag title="acknowledge self-closing
+ flag">acknowledge the token's <i>self-closing flag</i></a>.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "svg"</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#adjust-svg-attributes>Adjust SVG attributes</a> for the token. (This fixes
+ the case of SVG attributes that are not all lowercase.)</p>
+
+ <p><a href=#adjust-foreign-attributes>Adjust foreign attributes</a> for the token. (This
+ fixes the use of namespaced attributes, in particular XLink in
+ SVG.)</p>
+
+ <p><a href=#insert-a-foreign-element>Insert a foreign element</a> for the token, in the
+ <a href=#svg-namespace>SVG namespace</a>.</p>
+
+ <!-- If we ever change the frameset-ok flag to an insertion mode,
+ the following change would be implied, except we'd have to do it
+ even in the face of a self-closed tag:
+ <p>Set the <span>frameset-ok flag</span> to "not ok".</p>
+ -->
+
+ <p>If the token has its <i>self-closing flag</i> set, pop the
+ <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a> and <a href=#acknowledge-self-closing-flag title="acknowledge self-closing
+ flag">acknowledge the token's <i>self-closing flag</i></a>.</p>
+
+ </dd>
+
+ <dt>A start <!--or end--> tag whose tag name is one of: "caption",
+ "col", "colgroup", "frame", "head", "tbody", "td", "tfoot", "th",
+ "thead", "tr"</dt>
+ <!--<dt>An end tag whose tag name is one of: "area", "base",
+ "basefont", "bgsound", "command", "embed", "hr", "iframe", "image",
+ "img", "input", "isindex", "keygen", "link", "meta", "noembed",
+ "noframes", "param", "script", "select", "source", "style",
+ "table", "textarea", "title", "track", "wbr"</dt>-->
+ <!--<dt>An end tag whose tag name is "noscript", if the
+ <span>scripting flag</span> is enabled</dt>-->
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ <!-- end tags are commented out because since they can never end
+ up on the stack anyway, the default end tag clause will
+ automatically handle them. we don't want to have text in the spec
+ that is just an optimisation, as that detracts from the spec
+ itself -->
+ </dd>
+
+ <dt>Any other start tag</dt>
+ <dd>
+
+ <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+ any.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p class=note>This element will be an <a href=#ordinary>ordinary</a>
+ element.</p>
+
+ </dd>
+
+ <dt>Any other end tag</dt>
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p>Initialize <var title="">node</var> to be the <a href=#current-node>current
+ node</a> (the bottommost node of the stack).</li>
+
+ <li><p><i>Loop</i>: If <var title="">node</var> has the same tag
+ name as the token, then:</p>
+
+ <ol><li><p><a href=#generate-implied-end-tags>Generate implied end tags</a>, except
+ for elements with the same tag name as the token.</li>
+
+ <li><p>If the tag name of the end tag token does not match
+ the tag name of the <a href=#current-node>current node</a>, this is a
+ <a href=#parse-error>parse error</a>.</li>
+
+ <li><p>Pop all the nodes from the <a href=#current-node>current node</a> up
+ to <var title="">node</var>, including <var title="">node</var>, then stop these steps.</li>
+
+ </ol></li>
+
+ <li><p>Otherwise, if <var title="">node</var> is in the
+ <a href=#special>special</a> category, then this is a <a href=#parse-error>parse
+ error</a>; ignore the token, and abort these steps.</li>
+
+ <li><p>Set <var title="">node</var> to the previous entry in the
+ <a href=#stack-of-open-elements>stack of open elements</a>.</li>
+
+ <li><p>Return to the step labeled <i>loop</i>.</li>
+
+ </ol></dd>
+
+ </dl><h6 id=parsing-main-incdata><span class=secno>13.2.5.4.8 </span>The "<dfn title="insertion mode: text">text</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-incdata title="insertion mode: text">text</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token</dt>
+ <dd>
+
+ <p><a href=#insert-a-character title="insert a character">Insert the token's
+ character</a> into the <a href=#current-node>current node</a>.</p>
+
+ <p class=note>This can never be a U+0000 NULL character; the
+ tokenizer converts those to U+FFFD REPLACEMENT CHARACTER
+ characters.</p>
+
+ </dd>
+
+ <dt>An end-of-file token</dt>
+ <dd>
+
+ <!-- can't be the fragment case -->
+ <p><a href=#parse-error>Parse error</a>.</p>
+
+ <p>If the <a href=#current-node>current node</a> is a <code><a href=#the-script-element>script</a></code>
+ element, mark the <code><a href=#the-script-element>script</a></code> element as <a href=#already-started>"already
+ started"</a>.</p>
+
+ <p>Pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to the <a href=#original-insertion-mode>original
+ insertion mode</a> and reprocess the current token.</p>
+
+ </dd>
+
+ <dt id=scriptEndTag>An end tag whose tag name is "script"</dt>
+ <dd>
+
+ <p><a href=#provide-a-stable-state>Provide a stable state</a>.</p>
+
+ <p>Let <var title="">script</var> be the <a href=#current-node>current node</a>
+ (which will be a <code><a href=#the-script-element>script</a></code> element).</p>
+
+ <p>Pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to the <a href=#original-insertion-mode>original
+ insertion mode</a>.</p>
+
+ <p>Let the <var title="">old insertion point</var> have the
+ same value as the current <a href=#insertion-point>insertion point</a>. Let
+ the <a href=#insertion-point>insertion point</a> be just before the <a href=#next-input-character>next
+ input character</a>.</p>
+
+ <p>Increment the parser's <a href=#script-nesting-level>script nesting level</a> by
+ one.</p>
+
+ <p><a href=#prepare-a-script title="prepare a script">Prepare</a> the <var title="">script</var>. This might cause some script to execute,
+ which might cause <a href=#dom-document-write title=dom-document-write>new characters
+ to be inserted into the tokenizer</a>, and might cause the
+ tokenizer to output more tokens, resulting in a <a href=#nestedParsing>reentrant invocation of the parser</a>.</p>
+
+ <p>Decrement the parser's <a href=#script-nesting-level>script nesting level</a> by
+ one. If the parser's <a href=#script-nesting-level>script nesting level</a> is zero,
+ then set the <a href=#parser-pause-flag>parser pause flag</a> to false.</p>
+
+ <p>Let the <a href=#insertion-point>insertion point</a> have the value of the <var title="">old insertion point</var>. (In other words, restore the
+ <a href=#insertion-point>insertion point</a> to its previous value. This value
+ might be the "undefined" value.)</p>
+
+ <p id=scriptTagParserResumes>At this stage, if there is a
+ <a href=#pending-parsing-blocking-script>pending parsing-blocking script</a>, then:</p>
+
+ <dl class=switch><dt>If the <a href=#script-nesting-level>script nesting level</a> is not zero:</dt>
+
+ <dd>
+
+ <p>Set the <a href=#parser-pause-flag>parser pause flag</a> to true, and abort the
+ processing of any nested invocations of the tokenizer, yielding
+ control back to the caller. (Tokenization will resume when the
+ caller returns to the "outer" tree construction stage.)</p>
+
+ <p class=note>The tree construction stage of this particular
+ parser is <a href=#nestedParsing>being called reentrantly</a>,
+ say from a call to <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code>.</p>
+
+ </dd>
+
+
+ <dt>Otherwise:</dt>
+
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p>Let <var title="">the script</var> be the <a href=#pending-parsing-blocking-script>pending
+ parsing-blocking script</a>. There is no longer a <a href=#pending-parsing-blocking-script>pending
+ parsing-blocking script</a>.</li>
+
+ <li><p>Block the <a href=#tokenization title=tokenization>tokenizer</a>
+ for this instance of the <a href=#html-parser>HTML parser</a>, such that
+ the <a href=#event-loop>event loop</a> will not run <a href=#concept-task title=concept-task>tasks</a> that invoke the <a href=#tokenization title=tokenization>tokenizer</a>.</li>
+
+ <li><p>If the parser's <code><a href=#document>Document</a></code> <a href=#has-a-style-sheet-that-is-blocking-scripts>has a style
+ sheet that is blocking scripts</a> or <var title="">the
+ script</var>'s <a href=#ready-to-be-parser-executed>"ready to be parser-executed"</a> flag
+ is not set: <a href=#spin-the-event-loop>spin the event loop</a> until the parser's
+ <code><a href=#document>Document</a></code> <a href=#has-no-style-sheet-that-is-blocking-scripts>has no style sheet that is blocking
+ scripts</a> and <var title="">the script</var>'s
+ <a href=#ready-to-be-parser-executed>"ready to be parser-executed"</a> flag is
+ set.</li>
+
+ <li><p>Unblock the <a href=#tokenization title=tokenization>tokenizer</a>
+ for this instance of the <a href=#html-parser>HTML parser</a>, such that
+ <a href=#concept-task title=concept-task>tasks</a> that invoke the <a href=#tokenization title=tokenization>tokenizer</a> can again be
+ run.</li>
+
+ <li><p>Let the <a href=#insertion-point>insertion point</a> be just before the
+ <a href=#next-input-character>next input character</a>.</li>
+
+ <li><p>Increment the parser's <a href=#script-nesting-level>script nesting level</a>
+ by one (it should be zero before this step, so this sets it to
+ one).</li>
+
+ <li><p><a href=#execute-the-script-block title="execute the script block">Execute</a>
+ <var title="">the script</var>.</li>
+
+ <li><p>Decrement the parser's <a href=#script-nesting-level>script nesting level</a>
+ by one. If the parser's <a href=#script-nesting-level>script nesting level</a> is
+ zero (which it always should be at this point), then set the
+ <a href=#parser-pause-flag>parser pause flag</a> to false.</p>
+
+ <li><p>Let the <a href=#insertion-point>insertion point</a> be undefined
+ again.</li>
+
+ <li><p>If there is once again a <a href=#pending-parsing-blocking-script>pending parsing-blocking
+ script</a>, then repeat these steps from step 1.</li>
+
+ </ol></dd>
+
+ </dl></dd>
+
+ <dt>Any other end tag</dt>
+ <dd>
+
+ <p>Pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to the <a href=#original-insertion-mode>original
+ insertion mode</a>.</p>
+
+ </dd>
+
+ </dl><h6 id=parsing-main-intable><span class=secno>13.2.5.4.9 </span>The "<dfn title="insertion mode: in table">in table</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token</dt>
+ <dd>
+
+ <p>Let the <dfn id=pending-table-character-tokens><var>pending table character tokens</var></dfn>
+ be an empty list of tokens.</p>
+
+ <p>Let the <a href=#original-insertion-mode>original insertion mode</a> be the current
+ <a href=#insertion-mode>insertion mode</a>.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intabletext title="insertion mode: in table text">in table text</a>" and
+ reprocess the token.</p>
+
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <a href=#current-node>current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "caption"</dt>
+ <dd>
+
+ <p><a href=#clear-the-stack-back-to-a-table-context>Clear the stack back to a table context</a>. (See
+ below.)</p>
+
+ <p>Insert a marker at the end of the <a href=#list-of-active-formatting-elements>list of active
+ formatting elements</a>.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token, then
+ switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-incaption title="insertion mode: in caption">in caption</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "colgroup"</dt>
+ <dd>
+
+ <p><a href=#clear-the-stack-back-to-a-table-context>Clear the stack back to a table context</a>. (See
+ below.)</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token, then
+ switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-incolgroup title="insertion mode: in column group">in column
+ group</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "col"</dt>
+ <dd>
+ <p>Act as if a start tag token with the tag name "colgroup"
+ had been seen, then reprocess the current token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "tbody", "tfoot", "thead"</dt>
+ <dd>
+
+ <p><a href=#clear-the-stack-back-to-a-table-context>Clear the stack back to a table context</a>. (See
+ below.)</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token, then
+ switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intbody title="insertion mode: in table body">in table
+ body</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "td", "th", "tr"</dt>
+ <dd>
+ <p>Act as if a start tag token with the tag name "tbody" had
+ been seen, then reprocess the current token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "table"</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>. Act as if an end tag token with
+ the tag name "table" had been seen, then, if that token wasn't
+ ignored, reprocess the current token.</p>
+
+ <p class=note>The fake end tag token here can only be
+ ignored in the <a href=#fragment-case>fragment case</a>.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is "table"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-table-scope title="has an element in table scope">have an element in table
+ scope</a> with the same tag name as the token, this is a
+ <a href=#parse-error>parse error</a>. Ignore the token. (<a href=#fragment-case>fragment
+ case</a>)</p>
+
+ <p>Otherwise:</p>
+
+ <p>Pop elements from this stack until a <code><a href=#the-table-element>table</a></code>
+ element has been popped from the stack.</p>
+
+ <p><a href=#reset-the-insertion-mode-appropriately>Reset the insertion mode appropriately</a>.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "body", "caption",
+ "col", "colgroup", "html", "tbody", "td", "tfoot", "th",
+ "thead", "tr"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "style", "script"</dt>
+ <dd>
+
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "input"</dt>
+ <dd>
+
+ <p>If the token does not have an attribute with the name "type",
+ or if it does, but that attribute's value is not an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">hidden</code>", then: act as described in the "anything
+ else" entry below.</p>
+
+ <p>Otherwise:</p>
+
+ <p><a href=#parse-error>Parse error</a>.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ <p>Pop that <code><a href=#the-input-element>input</a></code> element off the <a href=#stack-of-open-elements>stack of
+ open elements</a>.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "form"</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>.</p>
+
+ <p>If the <a href=#form-element-pointer><code title=form>form</code> element
+ pointer</a> is not null, ignore the token.</p>
+
+ <p>Otherwise:</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token, and set the
+ <a href=#form-element-pointer><code title=form>form</code> element pointer</a> to
+ point to the element created.</p>
+
+ <p>Pop that <code><a href=#the-form-element>form</a></code> element off the <a href=#stack-of-open-elements>stack of
+ open elements</a>.</p>
+
+ </dd>
+
+ <!-- "form" end tag falls through to in-body, which does the right thing -->
+
+ <dt>An end-of-file token</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is not the root
+ <code><a href=#the-html-element>html</a></code> element, then this is a <a href=#parse-error>parse
+ error</a>.</p>
+
+ <p class=note>It can only be the <a href=#current-node>current node</a> in
+ the <a href=#fragment-case>fragment case</a>.</p>
+
+ <p><a href=#stop-parsing>Stop parsing</a>.</p>
+
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>. Process the token <a href=#using-the-rules-for>using the
+ rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in
+ body</a>" <a href=#insertion-mode>insertion mode</a>, except that if the
+ <a href=#current-node>current node</a> is a <code><a href=#the-table-element>table</a></code>,
+ <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
+ <code><a href=#the-tr-element>tr</a></code> element, then, whenever a node would be inserted
+ into the <a href=#current-node>current node</a>, it must instead be <a href=#foster-parent title="foster parent">foster parented</a>.</p>
+
+ </dd>
+
+ </dl><p>When the steps above require the UA to <dfn id=clear-the-stack-back-to-a-table-context>clear the stack
+ back to a table context</dfn>, it means that the UA must, while
+ the <a href=#current-node>current node</a> is not a <code><a href=#the-table-element>table</a></code>
+ element or an <code><a href=#the-html-element>html</a></code> element, pop elements from the
+ <a href=#stack-of-open-elements>stack of open elements</a>.</p>
+
+ <p class=note>The <a href=#current-node>current node</a> being an
+ <code><a href=#the-html-element>html</a></code> element after this process is a <a href=#fragment-case>fragment
+ case</a>.</p>
+
+
+
+ <h6 id=parsing-main-intabletext><span class=secno>13.2.5.4.10 </span>The "<dfn title="insertion mode: in table text">in table text</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-intabletext title="insertion mode: in table text">in table text</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is U+0000 NULL</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+
+ </dd>
+
+
+ <dt>Any other character token</dt>
+ <dd>
+
+ <p>Append the character token to the <var><a href=#pending-table-character-tokens>pending table character
+ tokens</a></var> list.</p>
+
+ </dd>
+
+
+ <dt>Anything else</dt>
+ <dd>
+
+ <p>If any of the tokens in the <var><a href=#pending-table-character-tokens>pending table character
+ tokens</a></var> list are character tokens that are not <a href=#space-character title="space character">space characters</a>, then reprocess
+ those character tokens using the rules given in the "anything
+ else" entry in the "<a href=#parsing-main-intable title="insertion mode: in table">in
+ table</a>" insertion mode.</p>
+
+ <p>Otherwise, <a href=#insert-a-character title="insert a character">insert the
+ characters</a> given by the <var><a href=#pending-table-character-tokens>pending table character
+ tokens</a></var> list into the <a href=#current-node>current node</a>.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to the <a href=#original-insertion-mode>original
+ insertion mode</a> and reprocess the token.</p>
+
+ </dd>
+
+ </dl><h6 id=parsing-main-incaption><span class=secno>13.2.5.4.11 </span>The "<dfn title="insertion mode: in caption">in caption</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-incaption title="insertion mode: in caption">in caption</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>An end tag whose tag name is "caption"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-table-scope title="has an element in table scope">have an element in table
+ scope</a> with the same tag name as the token, this is a
+ <a href=#parse-error>parse error</a>. Ignore the token. (<a href=#fragment-case>fragment
+ case</a>)</p>
+
+ <p>Otherwise:</p>
+
+ <p><a href=#generate-implied-end-tags>Generate implied end tags</a>.</p>
+
+ <p>Now, if the <a href=#current-node>current node</a> is not a
+ <code><a href=#the-caption-element>caption</a></code> element, then this is a <a href=#parse-error>parse
+ error</a>.</p>
+
+ <p>Pop elements from this stack until a <code><a href=#the-caption-element>caption</a></code>
+ element has been popped from the stack.</p>
+
+ <p><a href=#clear-the-list-of-active-formatting-elements-up-to-the-last-marker>Clear the list of active formatting elements up to
+ the last marker</a>.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "caption", "col",
+ "colgroup", "tbody", "td", "tfoot", "th", "thead", "tr"</dt>
+ <dt>An end tag whose tag name is "table"</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>. Act as if an end tag with the tag
+ name "caption" had been seen, then, if that token wasn't
+ ignored, reprocess the current token.</p>
+
+ <p class=note>The fake end tag token here can only be
+ ignored in the <a href=#fragment-case>fragment case</a>.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "body", "col",
+ "colgroup", "html", "tbody", "td", "tfoot", "th", "thead",
+ "tr"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ </dl><h6 id=parsing-main-incolgroup><span class=secno>13.2.5.4.12 </span>The "<dfn title="insertion mode: in column group">in column group</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-incolgroup title="insertion mode: in column group">in column group</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+ <p><a href=#insert-a-character title="insert a character">Insert the character</a> into
+ the <a href=#current-node>current node</a>.</p>
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <a href=#current-node>current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "col"</dt>
+ <dd>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token. Immediately
+ pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
+ token's <i>self-closing flag</i></a>, if it is set.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is "colgroup"</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is the root
+ <code><a href=#the-html-element>html</a></code> element, then this is a <a href=#parse-error>parse
+ error</a>; ignore the token. (<a href=#fragment-case>fragment
+ case</a>)</p>
+
+ <p>Otherwise, pop the <a href=#current-node>current node</a> (which will be
+ a <code><a href=#the-colgroup-element>colgroup</a></code> element) from the <a href=#stack-of-open-elements>stack of open
+ elements</a>. Switch the <a href=#insertion-mode>insertion mode</a> to
+ "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>".</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is "col"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>An end-of-file token</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is the root <code><a href=#the-html-element>html</a></code>
+ element, then <a href=#stop-parsing>stop parsing</a>. (<a href=#fragment-case>fragment
+ case</a>)</p>
+
+ <p>Otherwise, act as described in the "anything else" entry
+ below.</p>
+
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+
+ <p>Act as if an end tag with the tag name "colgroup" had been
+ seen, and then, if that token wasn't ignored, reprocess the
+ current token.</p>
+
+ <p class=note>The fake end tag token here can only be
+ ignored in the <a href=#fragment-case>fragment case</a>.</p>
+
+ </dd>
+
+ </dl><h6 id=parsing-main-intbody><span class=secno>13.2.5.4.13 </span>The "<dfn title="insertion mode: in table body">in table body</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-intbody title="insertion mode: in table body">in table body</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A start tag whose tag name is "tr"</dt>
+ <dd>
+
+ <p><a href=#clear-the-stack-back-to-a-table-body-context>Clear the stack back to a table body
+ context</a>. (See below.)</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token, then switch
+ the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intr title="insertion mode:
+ in row">in row</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "th", "td"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Act as if a start tag with
+ the tag name "tr" had been seen, then reprocess the current
+ token.</p>
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "tbody", "tfoot",
+ "thead"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-table-scope title="has an element in table scope">have an element in table
+ scope</a> with the same tag name as the token, this is a
+ <a href=#parse-error>parse error</a>. Ignore the token.</p>
+
+ <p>Otherwise:</p>
+
+ <p><a href=#clear-the-stack-back-to-a-table-body-context>Clear the stack back to a table body
+ context</a>. (See below.)</p>
+
+ <p>Pop the <a href=#current-node>current node</a> from the <a href=#stack-of-open-elements>stack of
+ open elements</a>. Switch the <a href=#insertion-mode>insertion mode</a>
+ to "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "caption", "col",
+ "colgroup", "tbody", "tfoot", "thead"</dt>
+ <dt>An end tag whose tag name is "table"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-table-scope title="has an element in table scope">have a
+ <code>tbody</code>, <code>thead</code>, or <code>tfoot</code>
+ element in table scope</a>, this is a <a href=#parse-error>parse
+ error</a>. Ignore the token. (<a href=#fragment-case>fragment
+ case</a>)</p>
+
+ <p>Otherwise:</p>
+
+ <p><a href=#clear-the-stack-back-to-a-table-body-context>Clear the stack back to a table body
+ context</a>. (See below.)</p>
+
+ <p>Act as if an end tag with the same tag name as the
+ <a href=#current-node>current node</a> ("tbody", "tfoot", or "thead") had
+ been seen, then reprocess the current token.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "body", "caption",
+ "col", "colgroup", "html", "td", "th", "tr"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ </dl><p>When the steps above require the UA to <dfn id=clear-the-stack-back-to-a-table-body-context>clear the stack
+ back to a table body context</dfn>, it means that the UA must,
+ while the <a href=#current-node>current node</a> is not a <code><a href=#the-tbody-element>tbody</a></code>,
+ <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-thead-element>thead</a></code>, or <code><a href=#the-html-element>html</a></code>
+ element, pop elements from the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p class=note>The <a href=#current-node>current node</a> being an
+ <code><a href=#the-html-element>html</a></code> element after this process is a <a href=#fragment-case>fragment
+ case</a>.</p>
+
+
+ <h6 id=parsing-main-intr><span class=secno>13.2.5.4.14 </span>The "<dfn title="insertion mode: in row">in row</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-intr title="insertion mode: in row">in row</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A start tag whose tag name is one of: "th", "td"</dt>
+ <dd>
+
+ <p><a href=#clear-the-stack-back-to-a-table-row-context>Clear the stack back to a table row
+ context</a>. (See below.)</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token, then switch
+ the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intd title="insertion mode:
+ in cell">in cell</a>".</p>
+
+ <p>Insert a marker at the end of the <a href=#list-of-active-formatting-elements>list of active
+ formatting elements</a>.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is "tr"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-table-scope title="has an element in table scope">have an element in table
+ scope</a> with the same tag name as the token, this is a
+ <a href=#parse-error>parse error</a>. Ignore the token. (<a href=#fragment-case>fragment
+ case</a>)</p>
+
+ <p>Otherwise:</p>
+
+ <p><a href=#clear-the-stack-back-to-a-table-row-context>Clear the stack back to a table row
+ context</a>. (See below.)</p>
+
+ <p>Pop the <a href=#current-node>current node</a> (which will be a
+ <code><a href=#the-tr-element>tr</a></code> element) from the <a href=#stack-of-open-elements>stack of open
+ elements</a>. Switch the <a href=#insertion-mode>insertion mode</a> to
+ "<a href=#parsing-main-intbody title="insertion mode: in table body">in table
+ body</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "caption", "col",
+ "colgroup", "tbody", "tfoot", "thead", "tr"</dt>
+ <dt>An end tag whose tag name is "table"</dt>
+ <dd>
+
+ <p>Act as if an end tag with the tag name "tr" had been seen,
+ then, if that token wasn't ignored, reprocess the current
+ token.</p>
+
+ <p class=note>The fake end tag token here can only be
+ ignored in the <a href=#fragment-case>fragment case</a>.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "tbody", "tfoot",
+ "thead"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-table-scope title="has an element in table scope">have an element in table
+ scope</a> with the same tag name as the token, this is a
+ <a href=#parse-error>parse error</a>. Ignore the token.</p>
+
+ <p>Otherwise, act as if an end tag with the tag name "tr" had
+ been seen, then reprocess the current token.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "body", "caption",
+ "col", "colgroup", "html", "td", "th"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ </dl><p>When the steps above require the UA to <dfn id=clear-the-stack-back-to-a-table-row-context>clear the stack
+ back to a table row context</dfn>, it means that the UA must,
+ while the <a href=#current-node>current node</a> is not a <code><a href=#the-tr-element>tr</a></code>
+ element or an <code><a href=#the-html-element>html</a></code> element, pop elements from the
+ <a href=#stack-of-open-elements>stack of open elements</a>.</p>
+
+ <p class=note>The <a href=#current-node>current node</a> being an
+ <code><a href=#the-html-element>html</a></code> element after this process is a <a href=#fragment-case>fragment
+ case</a>.</p>
+
+
+ <h6 id=parsing-main-intd><span class=secno>13.2.5.4.15 </span>The "<dfn title="insertion mode: in cell">in cell</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-intd title="insertion mode: in cell">in cell</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>An end tag whose tag name is one of: "td", "th"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-table-scope title="has an element in table scope">have an element in table
+ scope</a> with the same tag name as that of the token, then
+ this is a <a href=#parse-error>parse error</a> and the token must be
+ ignored.</p>
+
+ <p>Otherwise:</p>
+
+ <p><a href=#generate-implied-end-tags>Generate implied end tags</a>.</p>
+
+ <p>Now, if the <a href=#current-node>current node</a> is not an element
+ with the same tag name as the token, then this is a
+ <a href=#parse-error>parse error</a>.</p>
+
+ <p>Pop elements from the <a href=#stack-of-open-elements>stack of open elements</a> stack
+ until an element with the same tag name as the token has been
+ popped from the stack.</p>
+
+ <p><a href=#clear-the-list-of-active-formatting-elements-up-to-the-last-marker>Clear the list of active formatting elements up to
+ the last marker</a>.</p>
+
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intr title="insertion mode: in row">in row</a>".</p> <!-- current
+ node here will be a <tr> normally; but could be <html> in the
+ fragment case -->
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "caption", "col",
+ "colgroup", "tbody", "td", "tfoot", "th", "thead", "tr"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does
+ <em>not</em> <a href=#has-an-element-in-table-scope title="has an element in table scope">have
+ a <code>td</code> or <code>th</code> element in table
+ scope</a>, then this is a <a href=#parse-error>parse error</a>; ignore
+ the token. (<a href=#fragment-case>fragment case</a>)</p>
+
+ <p>Otherwise, <a href=#close-the-cell>close the cell</a> (see below) and
+ reprocess the current token.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "body", "caption",
+ "col", "colgroup", "html"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "table", "tbody",
+ "tfoot", "thead", "tr"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-table-scope title="has an element in table scope">have an element in table
+ scope</a> with the same tag name as that of the token (which
+ can only happen for "tbody", "tfoot" and "thead", or in the
+ <a href=#fragment-case>fragment case</a>), then this is a <a href=#parse-error>parse
+ error</a> and the token must be ignored.</p>
+
+ <p>Otherwise, <a href=#close-the-cell>close the cell</a> (see below) and
+ reprocess the current token.</p>
+
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ </dl><p>Where the steps above say to <dfn id=close-the-cell>close the cell</dfn>, they
+ mean to run the following algorithm:</p>
+
+ <ol><li><p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-table-scope title="has an element in table scope">has a <code>td</code>
+ element in table scope</a>, then act as if an end tag token
+ with the tag name "td" had been seen.</li>
+
+ <li><p>Otherwise, the <a href=#stack-of-open-elements>stack of open elements</a> will
+ <a href=#has-an-element-in-table-scope title="has an element in table scope">have a
+ <code>th</code> element in table scope</a>; act as if an end
+ tag token with the tag name "th" had been seen.</li>
+
+ </ol><p class=note>The <a href=#stack-of-open-elements>stack of open elements</a> cannot have
+ both a <code><a href=#the-td-element>td</a></code> and a <code><a href=#the-th-element>th</a></code> element <a href=#has-an-element-in-table-scope title="has an element in table scope">in table scope</a> at the
+ same time, nor can it have neither when the <a href=#close-the-cell>close the
+ cell</a> algorithm is invoked.</p>
+
+
+ <h6 id=parsing-main-inselect><span class=secno>13.2.5.4.16 </span>The "<dfn title="insertion mode: in select">in select</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-inselect title="insertion mode: in select">in select</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is U+0000 NULL</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>Any other character token</dt>
+ <dd>
+ <p><a href=#insert-a-character title="insert a character">Insert the token's
+ character</a> into the <a href=#current-node>current node</a>.</p>
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <a href=#current-node>current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "option"</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is an <code><a href=#the-option-element>option</a></code>
+ element, act as if an end tag with the tag name "option" had
+ been seen.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "optgroup"</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is an <code><a href=#the-option-element>option</a></code>
+ element, act as if an end tag with the tag name "option" had
+ been seen.</p>
+
+ <p>If the <a href=#current-node>current node</a> is an
+ <code><a href=#the-optgroup-element>optgroup</a></code> element, act as if an end tag with the
+ tag name "optgroup" had been seen.</p>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is "optgroup"</dt>
+ <dd>
+
+ <p>First, if the <a href=#current-node>current node</a> is an
+ <code><a href=#the-option-element>option</a></code> element, and the node immediately before
+ it in the <a href=#stack-of-open-elements>stack of open elements</a> is an
+ <code><a href=#the-optgroup-element>optgroup</a></code> element, then act as if an end tag with
+ the tag name "option" had been seen.</p>
+
+ <p>If the <a href=#current-node>current node</a> is an
+ <code><a href=#the-optgroup-element>optgroup</a></code> element, then pop that node from the
+ <a href=#stack-of-open-elements>stack of open elements</a>. Otherwise, this is a
+ <a href=#parse-error>parse error</a>; ignore the token.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is "option"</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is an <code><a href=#the-option-element>option</a></code>
+ element, then pop that node from the <a href=#stack-of-open-elements>stack of open
+ elements</a>. Otherwise, this is a <a href=#parse-error>parse
+ error</a>; ignore the token.</p>
+
+ </dd>
+
+ <dt>An end tag whose tag name is "select"</dt>
+ <dd>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-select-scope title="has an element in select scope">have an element in select
+ scope</a> with the same tag name as the token, this is a
+ <a href=#parse-error>parse error</a>. Ignore the token. (<a href=#fragment-case>fragment
+ case</a>)</p>
+
+ <p>Otherwise:</p>
+
+ <p>Pop elements from the <a href=#stack-of-open-elements>stack of open elements</a>
+ until a <code><a href=#the-select-element>select</a></code> element has been popped from the
+ stack.</p>
+
+ <p><a href=#reset-the-insertion-mode-appropriately>Reset the insertion mode appropriately</a>.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "select"</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>. Act as if the token had been
+ an end tag with the tag name "select" instead.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is one of: "input", "keygen", "textarea"</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>.</p>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> does not <a href=#has-an-element-in-select-scope title="has an element in select scope">have a <code>select</code>
+ element in select scope</a>, ignore the token. (<a href=#fragment-case>fragment
+ case</a>)</p>
+
+ <p>Otherwise, act as if an end tag with the tag name "select" had
+ been seen, and reprocess the token.</p>
+
+ </dd>
+
+ <dt>A start tag token whose tag name is "script"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>An end-of-file token</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is not the root
+ <code><a href=#the-html-element>html</a></code> element, then this is a <a href=#parse-error>parse
+ error</a>.</p>
+
+ <p class=note>It can only be the <a href=#current-node>current node</a> in
+ the <a href=#fragment-case>fragment case</a>.</p>
+
+ <p><a href=#stop-parsing>Stop parsing</a>.</p>
+
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ </dl><h6 id=parsing-main-inselectintable><span class=secno>13.2.5.4.17 </span>The "<dfn title="insertion mode: in select in table">in select in table</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-inselectintable title="insertion mode: in select in table">in select in table</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A start tag whose tag name is one of: "caption", "table",
+ "tbody", "tfoot", "thead", "tr", "td", "th"</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Act as if an end tag with the tag
+ name "select" had been seen, and reprocess the token.</p>
+ </dd>
+
+ <dt>An end tag whose tag name is one of: "caption", "table",
+ "tbody", "tfoot", "thead", "tr", "td", "th"</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>.</p>
+
+ <p>If the <a href=#stack-of-open-elements>stack of open elements</a> <a href=#has-an-element-in-table-scope>has an
+ element in table scope</a> with the same tag name as that
+ of the token, then act as if an end tag with the tag name
+ "select" had been seen, and reprocess the token. Otherwise,
+ ignore the token.</p>
+
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inselect title="insertion mode: in select">in select</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ </dl><h6 id=parsing-main-afterbody><span class=secno>13.2.5.4.18 </span>The "<dfn title="insertion mode: after body">after body</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-afterbody title="insertion mode: after body">after body</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the first element in
+ the <a href=#stack-of-open-elements>stack of open elements</a> (the <code><a href=#the-html-element>html</a></code>
+ element), with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>An end tag whose tag name is "html"</dt>
+ <dd>
+
+ <p>If the parser was originally created as part of the <a href=#html-fragment-parsing-algorithm>HTML
+ fragment parsing algorithm</a>, this is a <a href=#parse-error>parse
+ error</a>; ignore the token. (<a href=#fragment-case>fragment case</a>)</p>
+
+ <p>Otherwise, switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#the-after-after-body-insertion-mode title="insertion mode: after after body">after after
+ body</a>".</p>
+
+ </dd>
+
+ <dt>An end-of-file token</dt>
+ <dd>
+ <p><a href=#stop-parsing>Stop parsing</a>.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>. Switch the <a href=#insertion-mode>insertion
+ mode</a> to "<a href=#parsing-main-inbody title="insertion mode: in body">in
+ body</a>" and reprocess the token.</p>
+
+ </dd>
+
+ </dl><h6 id=parsing-main-inframeset><span class=secno>13.2.5.4.19 </span>The "<dfn title="insertion mode: in frameset">in frameset</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-inframeset title="insertion mode: in frameset">in frameset</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+ <p><a href=#insert-a-character title="insert a character">Insert the character</a> into
+ the <a href=#current-node>current node</a>.</p>
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <a href=#current-node>current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "frameset"</dt>
+ <dd>
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
+ </dd>
+
+ <dt>An end tag whose tag name is "frameset"</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is the root
+ <code><a href=#the-html-element>html</a></code> element, then this is a <a href=#parse-error>parse
+ error</a>; ignore the token. (<a href=#fragment-case>fragment
+ case</a>)</p>
+
+ <p>Otherwise, pop the <a href=#current-node>current node</a> from the
+ <a href=#stack-of-open-elements>stack of open elements</a>.</p>
+
+ <p>If the parser was <em>not</em> originally created as part
+ of the <a href=#html-fragment-parsing-algorithm>HTML fragment parsing algorithm</a>
+ (<a href=#fragment-case>fragment case</a>), and the <a href=#current-node>current
+ node</a> is no longer a <code><a href=#frameset>frameset</a></code> element, then
+ switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-afterframeset title="insertion mode: after frameset">after
+ frameset</a>".</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "frame"</dt>
+ <dd>
+
+ <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.
+ Immediately pop the <a href=#current-node>current node</a> off the
+ <a href=#stack-of-open-elements>stack of open elements</a>.</p>
+
+ <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
+ token's <i>self-closing flag</i></a>, if it is set.</p>
+
+ </dd>
+
+ <dt>A start tag whose tag name is "noframes"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>An end-of-file token</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is not the root
+ <code><a href=#the-html-element>html</a></code> element, then this is a <a href=#parse-error>parse
+ error</a>.</p>
+
+ <p class=note>It can only be the <a href=#current-node>current node</a> in
+ the <a href=#fragment-case>fragment case</a>.</p>
+
+ <p><a href=#stop-parsing>Stop parsing</a>.</p>
+
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ </dl><h6 id=parsing-main-afterframeset><span class=secno>13.2.5.4.20 </span>The "<dfn title="insertion mode: after frameset">after frameset</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#parsing-main-afterframeset title="insertion mode: after frameset">after frameset</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <!-- due to rules in the "in frameset" mode, this can't be entered in the fragment case -->
+ <dl class=switch><dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+ <p><a href=#insert-a-character title="insert a character">Insert the character</a> into
+ the <a href=#current-node>current node</a>.</p>
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <a href=#current-node>current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>An end tag whose tag name is "html"</dt>
+ <dd>
+ <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#the-after-after-frameset-insertion-mode title="insertion mode: after after frameset">after after
+ frameset</a>".</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "noframes"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>An end-of-file token</dt>
+ <dd>
+ <p><a href=#stop-parsing>Stop parsing</a>.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ </dl><h6 id=the-after-after-body-insertion-mode><span class=secno>13.2.5.4.21 </span>The "<dfn title="insertion mode: after after body">after after body</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#the-after-after-body-insertion-mode title="insertion mode: after after body">after after body</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <code><a href=#document>Document</a></code>
+ object with the <code title="">data</code> attribute set to the
+ data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>An end-of-file token</dt>
+ <dd>
+ <p><a href=#stop-parsing>Stop parsing</a>.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Switch the <a href=#insertion-mode>insertion mode</a>
+ to "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" and
+ reprocess the token.</p>
+ </dd>
+
+ </dl><h6 id=the-after-after-frameset-insertion-mode><span class=secno>13.2.5.4.22 </span>The "<dfn title="insertion mode: after after frameset">after after frameset</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href=#the-after-after-frameset-insertion-mode title="insertion mode: after after frameset">after after frameset</a>" <a href=#insertion-mode>insertion mode</a>, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <code><a href=#document>Document</a></code>
+ object with the <code title="">data</code> attribute set to the
+ data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dt>A character token that is one of U+0009 CHARACTER
+ TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
+ U+000D CARRIAGE RETURN (CR), or U+0020 SPACE</dt>
+ <dt>A start tag whose tag name is "html"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>An end-of-file token</dt>
+ <dd>
+ <p><a href=#stop-parsing>Stop parsing</a>.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is "noframes"</dt>
+ <dd>
+ <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the "<a href=#parsing-main-inhead title="insertion mode: in head">in head</a>" <a href=#insertion-mode>insertion
+ mode</a>.</p>
+ </dd>
+
+ <dt>Anything else</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ </dl><h5 id=parsing-main-inforeign><span class=secno>13.2.5.5 </span>The rules for parsing tokens <dfn title="insertion mode: in foreign content">in foreign content</dfn></h5>
+
+ <p>When the user agent is to apply the rules for parsing tokens in foreign content, the user agent must handle the token as follows:</p>
+
+ <dl class=switch><dt>A character token that is U+0000 NULL</dt>
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>. <a href=#insert-a-character title="insert a
+ character">Insert a U+FFFD REPLACEMENT CHARACTER character</a>
+ into the <a href=#current-node>current node</a>.</p>
+
+ </dd>
+
+ <dt>A character token that is one of U+0009 CHARACTER TABULATION,
+ U+000A LINE FEED (LF), U+000C FORM FEED (FF), U+000D CARRIAGE
+ RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+
+ <p><a href=#insert-a-character title="insert a character">Insert the token's
+ character</a> into the <a href=#current-node>current node</a>.</p>
+
+ </dd>
+
+ <dt>Any other character token</dt>
+ <dd>
+
+ <p><a href=#insert-a-character title="insert a character">Insert the token's
+ character</a> into the <a href=#current-node>current node</a>.</p>
+
+ <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href=#comment-0>Comment</a></code> node to the <a href=#current-node>current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href=#parse-error>Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is one of: <!--"a",--> "b", "big",
+ "blockquote", "body"<!--by inspection-->, "br", "center", "code",
+ "dd", "div", "dl", "dt"<!-- so that dd and dt can be handled
+ uniformly throughout the parser -->, "em", "embed", "h1", "h2",
+ "h3", "h4"<!--for completeness-->, "h5", "h6"<!--for
+ completeness-->, "head"<!--by inspection-->, "hr", "i", "img",
+ "li", "listing"<!-- so that pre and listing can be handled
+ uniformly throughout the parser -->, "menu", "meta", "nobr",
+ "ol"<!-- so that dl, ul, and ol can be handled uniformly throughout
+ the parser -->, "p", "pre", "ruby", "s", <!--"script",--> "small",
+ "span", "strong", "strike"<!-- so that s and strike can be handled
+ uniformly throughout the parser -->, <!--"style",--> "sub", "sup",
+ "table"<!--by inspection-->, "tt", "u", "ul", "var"</dt> <!-- this
+ list was determined empirically by studying over 6,000,000,000
+ pages that were specifically not XML pages -->
+ <dt>A start tag whose tag name is "font", if the token has any
+ attributes named "color", "face", or "size"</dt> <!-- the
+ attributes here are required so that SVG <font> will go through as
+ SVG but legacy <font>s won't -->
+
+ <dd>
+
+ <p><a href=#parse-error>Parse error</a>.</p>
+
+ <p>Pop an element from the <a href=#stack-of-open-elements>stack of open elements</a>,
+ and then keep popping more elements from the <a href=#stack-of-open-elements>stack of open
+ elements</a> until the <a href=#current-node>current node</a> is a
+ <a href=#mathml-text-integration-point>MathML text integration point</a>, an <a href=#html-integration-point>HTML
+ integration point</a>, or an element in the <a href=#html-namespace-0>HTML
+ namespace</a>.</p>
+
+ <p>Then, reprocess the token.</p>
+
+ </dd>
+
+ <dt>Any other start tag</dt>
+ <dd>
+
+ <p>If the <a href=#current-node>current node</a> is an element in the
+ <a href=#mathml-namespace>MathML namespace</a>, <a href=#adjust-mathml-attributes>adjust MathML
+ attributes</a> for the token. (This fixes the case of MathML
+ attributes that are not all lowercase.)</p>
+
+ <p>If the <a href=#current-node>current node</a> is an element in the <a href=#svg-namespace>SVG
+ namespace</a>, and the token's tag name is one of the ones in
+ the first column of the following table, change the tag name to
+ the name given in the corresponding cell in the second
+ column. (This fixes the case of SVG elements that are not all
+ lowercase.)</p>
+
+ <table><thead><tr><th> Tag name <th> Element name
+ <tbody><tr><td> <code title="">altglyph</code> <td> <code title="">altGlyph</code>
+ <tr><td> <code title="">altglyphdef</code> <td> <code title="">altGlyphDef</code>
+ <tr><td> <code title="">altglyphitem</code> <td> <code title="">altGlyphItem</code>
+ <tr><td> <code title="">animatecolor</code> <td> <code title="">animateColor</code>
+ <tr><td> <code title="">animatemotion</code> <td> <code title="">animateMotion</code>
+ <tr><td> <code title="">animatetransform</code> <td> <code title="">animateTransform</code>
+ <tr><td> <code title="">clippath</code> <td> <code title="">clipPath</code>
+ <tr><td> <code title="">feblend</code> <td> <code title="">feBlend</code>
+ <tr><td> <code title="">fecolormatrix</code> <td> <code title="">feColorMatrix</code>
+ <tr><td> <code title="">fecomponenttransfer</code> <td> <code title="">feComponentTransfer</code>
+ <tr><td> <code title="">fecomposite</code> <td> <code title="">feComposite</code>
+ <tr><td> <code title="">feconvolvematrix</code> <td> <code title="">feConvolveMatrix</code>
+ <tr><td> <code title="">fediffuselighting</code> <td> <code title="">feDiffuseLighting</code>
+ <tr><td> <code title="">fedisplacementmap</code> <td> <code title="">feDisplacementMap</code>
+ <tr><td> <code title="">fedistantlight</code> <td> <code title="">feDistantLight</code>
+ <tr><td> <code title="">feflood</code> <td> <code title="">feFlood</code>
+ <tr><td> <code title="">fefunca</code> <td> <code title="">feFuncA</code>
+ <tr><td> <code title="">fefuncb</code> <td> <code title="">feFuncB</code>
+ <tr><td> <code title="">fefuncg</code> <td> <code title="">feFuncG</code>
+ <tr><td> <code title="">fefuncr</code> <td> <code title="">feFuncR</code>
+ <tr><td> <code title="">fegaussianblur</code> <td> <code title="">feGaussianBlur</code>
+ <tr><td> <code title="">feimage</code> <td> <code title="">feImage</code>
+ <tr><td> <code title="">femerge</code> <td> <code title="">feMerge</code>
+ <tr><td> <code title="">femergenode</code> <td> <code title="">feMergeNode</code>
+ <tr><td> <code title="">femorphology</code> <td> <code title="">feMorphology</code>
+ <tr><td> <code title="">feoffset</code> <td> <code title="">feOffset</code>
+ <tr><td> <code title="">fepointlight</code> <td> <code title="">fePointLight</code>
+ <tr><td> <code title="">fespecularlighting</code> <td> <code title="">feSpecularLighting</code>
+ <tr><td> <code title="">fespotlight</code> <td> <code title="">feSpotLight</code>
+ <tr><td> <code title="">fetile</code> <td> <code title="">feTile</code>
+ <tr><td> <code title="">feturbulence</code> <td> <code title="">feTurbulence</code>
+ <tr><td> <code title="">foreignobject</code> <td> <code title="">foreignObject</code>
+ <tr><td> <code title="">glyphref</code> <td> <code title="">glyphRef</code>
+ <tr><td> <code title="">lineargradient</code> <td> <code title="">linearGradient</code>
+ <tr><td> <code title="">radialgradient</code> <td> <code title="">radialGradient</code>
+ <!--<tr> <td> <code title="">solidcolor</code> <td> <code title="">solidColor</code> (SVG 1.2)-->
+ <tr><td> <code title="">textpath</code> <td> <code title="">textPath</code>
+ </table><p>If the <a href=#current-node>current node</a> is an element in the <a href=#svg-namespace>SVG
+ namespace</a>, <a href=#adjust-svg-attributes>adjust SVG attributes</a> for the
+ token. (This fixes the case of SVG attributes that are not all
+ lowercase.)</p>
+
+ <p><a href=#adjust-foreign-attributes>Adjust foreign attributes</a> for the token. (This
+ fixes the use of namespaced attributes, in particular XLink in
+ SVG.)</p>
+
+ <p><a href=#insert-a-foreign-element>Insert a foreign element</a> for the token, in the
+ same namespace as the <a href=#current-node>current node</a>.</p>
+
+ <p>If the token has its <i>self-closing flag</i> set, pop the
+ <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a> and <a href=#acknowledge-self-closing-flag title="acknowledge self-closing
+ flag">acknowledge the token's <i>self-closing flag</i></a>.</p>
+
+ </dd>
+
+ <dt id=scriptForeignEndTag>An end tag whose tag name is "script", if the <a href=#current-node>current node</a> is a <code title="">script</code> element in the <a href=#svg-namespace>SVG namespace</a></dt>
+ <dd>
+
+ <p>Pop the <a href=#current-node>current node</a> off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</p>
+
+ <p>Let the <var title="">old insertion point</var> have the
+ same value as the current <a href=#insertion-point>insertion point</a>. Let
+ the <a href=#insertion-point>insertion point</a> be just before the <a href=#next-input-character>next
+ input character</a>.</p>
+
+ <p>Increment the parser's <a href=#script-nesting-level>script nesting level</a> by
+ one. Set the <a href=#parser-pause-flag>parser pause flag</a> to true.</p>
+
+ <p><a href=http://www.w3.org/TR/SVGMobile12/script.html#ScriptContentProcessing>Process
+ the <code title="">script</code> element</a> according to the SVG
+ rules, if the user agent supports SVG. <a href=#refsSVG>[SVG]</a></p>
+
+ <p class=note>Even if this causes <a href=#dom-document-write title=dom-document-write>new characters to be inserted into the
+ tokenizer</a>, the parser will not be executed reentrantly,
+ since the <a href=#parser-pause-flag>parser pause flag</a> is true.</p>
+
+ <p>Decrement the parser's <a href=#script-nesting-level>script nesting level</a> by
+ one. If the parser's <a href=#script-nesting-level>script nesting level</a> is zero,
+ then set the <a href=#parser-pause-flag>parser pause flag</a> to false.</p>
+
+ <p>Let the <a href=#insertion-point>insertion point</a> have the value of the <var title="">old insertion point</var>. (In other words, restore the
+ <a href=#insertion-point>insertion point</a> to its previous value. This value
+ might be the "undefined" value.)</p>
+
+ </dd>
+
+ <dt>Any other end tag</dt>
+
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p>Initialize <var title="">node</var> to be the <a href=#current-node>current
+ node</a> (the bottommost node of the stack).</li>
+
+ <li><p>If <var title="">node</var> is not an element with the
+ same tag name as the token, then this is a <a href=#parse-error>parse
+ error</a>.</li>
+
+ <li><p><i>Loop</i>: If <var title="">node</var>'s tag name,
+ <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>, is the same as the tag
+ name of the token, pop elements from the <a href=#stack-of-open-elements>stack of open
+ elements</a> until <var title="">node</var> has been popped
+ from the stack, and then jump to the last step of this list of
+ steps.</li>
+
+ <li><p>Set <var title="">node</var> to the previous entry in the
+ <a href=#stack-of-open-elements>stack of open elements</a>.</li>
+
+ <li><p>If <var title="">node</var> is not an element in the
+ <a href=#html-namespace-0>HTML namespace</a>, return to the step labeled
+ <i>loop</i>.</li>
+
+ <li><p>Otherwise, process the token according to the rules given
+ in the section corresponding to the current <a href=#insertion-mode>insertion
+ mode</a> in HTML content.</li>
+
+ </ol></dd>
+
+ </dl></div>
+
+
+ <div class=impl>
+
+ <h4 id=the-end><span class=secno>13.2.6 </span>The end</h4>
+
+ <p>Once the user agent <dfn id=stop-parsing title="stop parsing">stops parsing</dfn>
+ the document, the user agent must run the following steps:</p>
+
+ <ol><!-- this happens as part of one of the tasks that runs the parser --><li><p>Set the <a href=#current-document-readiness>current document readiness</a> to
+ "interactive" <!-- this also synchronously fires an event --> and
+ the <a href=#insertion-point>insertion point</a> to undefined.</li>
+
+ <li><p>Pop <em>all</em> the nodes off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</li>
+
+ <li><p>If the <a href=#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing>list of scripts that will execute when the
+ document has finished parsing</a> is not empty, run these
+ substeps:</p>
+
+ <ol><li><p><a href=#spin-the-event-loop>Spin the event loop</a> until the first
+ <code><a href=#the-script-element>script</a></code> in the <a href=#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing>list of scripts that will
+ execute when the document has finished parsing</a> has its
+ <a href=#ready-to-be-parser-executed>"ready to be parser-executed"</a> flag set <em>and</em>
+ the parser's <code><a href=#document>Document</a></code> <a href=#has-no-style-sheet-that-is-blocking-scripts>has no style sheet that
+ is blocking scripts</a>.</li>
+
+ <li><p><a href=#execute-the-script-block title="execute the script block">Execute</a> the
+ first <code><a href=#the-script-element>script</a></code> in the <a href=#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing>list of scripts that will
+ execute when the document has finished parsing</a>.</li>
+
+ <li><p>Remove the first <code><a href=#the-script-element>script</a></code> element from the
+ <a href=#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing>list of scripts that will execute when the document has
+ finished parsing</a> (i.e. shift out the first entry in the
+ list).</li>
+
+ <li><p>If the <a href=#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing>list of scripts that will execute when the
+ document has finished parsing</a> is still not empty, repeat
+ these substeps again from substep 1.</p>
+
+ </ol></li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> that bubbles named <code title=event-DOMContentLoaded>DOMContentLoaded</code> at the
+ <code><a href=#document>Document</a></code>.</li>
+
+ <li><p><a href=#spin-the-event-loop>Spin the event loop</a> until the <a href=#set-of-scripts-that-will-execute-as-soon-as-possible>set of
+ scripts that will execute as soon as possible</a> and the
+ <a href=#list-of-scripts-that-will-execute-in-order-as-soon-as-possible>list of scripts that will execute in order as soon as
+ possible</a> are empty.</li> <!-- this step is not redundant
+ with the next one, since <script> nodes delay the load event of the
+ document they are in, but they might change document between being
+ added to one document's set/list and executing those scripts, so
+ they might be delaying another document but still be in this
+ document's set/list. -->
+
+ <li><p><a href=#spin-the-event-loop>Spin the event loop</a> until there is nothing that
+ <dfn id=delay-the-load-event title="delay the load event">delays the load event</dfn> in
+ the <code><a href=#document>Document</a></code>.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to set the <a href=#current-document-readiness>current document
+ readiness</a> to "complete". <!-- this also fires an event
+ synchronously during the task --></li>
+
+ <li><p>If the <code><a href=#document>Document</a></code> is in a <a href=#browsing-context>browsing
+ context</a>, then <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a
+ simple event</a> named <code title=event-load>load</code> at
+ the <code><a href=#document>Document</a></code>'s <code><a href=#window>Window</a></code> object, but with
+ its <code title=dom-event-target><a href=#dom-event-target>target</a></code> set to the
+ <code><a href=#document>Document</a></code> object (and the <code title=dom-event-currentTarget>currentTarget</code> set to the
+ <code><a href=#window>Window</a></code> object).</li>
+
+ <li><p>If the <code><a href=#document>Document</a></code> is in a <a href=#browsing-context>browsing
+ context</a>, then <a href=#queue-a-task>queue a task</a> to fire a <code title=event-pageshow><a href=#event-pageshow>pageshow</a></code> event at the
+ <code><a href=#window>Window</a></code> object of the <code><a href=#document>Document</a></code>, but with
+ its <code title=dom-event-target><a href=#dom-event-target>target</a></code> set to the
+ <code><a href=#document>Document</a></code> object (and the <code title=dom-event-currentTarget>currentTarget</code> set to the
+ <code><a href=#window>Window</a></code> object), using the
+ <code><a href=#pagetransitionevent>PageTransitionEvent</a></code> interface, with the <code title=dom-PageTransitionEvent-persisted><a href=#dom-pagetransitionevent-persisted>persisted</a></code>
+ attribute initialized to false. This event must not bubble, must
+ not be cancelable, and has no default action.</li>
+
+ <li><p>If the <code><a href=#document>Document</a></code> has any <a href=#pending-application-cache-download-process-tasks>pending
+ application cache download process tasks</a>, then <a href=#queue-a-task title="queue a task">queue</a> each such <a href=#concept-task title=concept-task>task</a> in the order they were added to
+ the list of <a href=#pending-application-cache-download-process-tasks>pending application cache download process
+ tasks</a>, and then empty the list of <a href=#pending-application-cache-download-process-tasks>pending application
+ cache download process tasks</a>. The <a href=#task-source>task source</a>
+ for these <a href=#concept-task title=concept-task>tasks</a> is the
+ <a href=#networking-task-source>networking task source</a>.</li>
+
+ <li><p>If the <code><a href=#document>Document</a></code>'s <a href=#print-when-loaded>print when
+ loaded</a> flag is set, then run the <a href=#printing-steps>printing
+ steps</a>.</li>
+
+ <li><p>The <code><a href=#document>Document</a></code> is now <dfn id=ready-for-post-load-tasks>ready for post-load
+ tasks</dfn>.</li>
+
+ <li><p><a href=#queue-a-task>Queue a task</a> to mark the <code><a href=#document>Document</a></code>
+ as <dfn id=completely-loaded>completely loaded</dfn>.</li>
+
+ </ol><p>When the user agent is to <dfn id=abort-a-parser>abort a parser</dfn>, it must run
+ the following steps:</p>
+
+ <ol><li><p>Throw away any pending content in the <a href=#the-input-stream>input
+ stream</a>, and discard any future content that would have been
+ added to it.</li>
+
+ <li><p>Pop <em>all</em> the nodes off the <a href=#stack-of-open-elements>stack of open
+ elements</a>.</li>
+
+ <!-- anything else? this is things that happen when you call
+ document.open() on a document that's still being parsed, or when
+ you navigate a document that's still parsing, or navigate the
+ parent of a frame with a document that's still parsing, or the user
+ hits "stop". Should the pending scripts be blown away or anything?
+ -->
+
+ </ol><p>Except where otherwise specified, the <a href=#task-source>task source</a>
+ for the <a href=#concept-task title=concept-task>tasks</a> mentioned in this
+ section is the <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=coercing-an-html-dom-into-an-infoset><span class=secno>13.2.7 </span>Coercing an HTML DOM into an infoset</h4>
+
+ <p>When an application uses an <a href=#html-parser>HTML parser</a> in
+ conjunction with an XML pipeline, it is possible that the
+ constructed DOM is not compatible with the XML tool chain in certain
+ subtle ways. For example, an XML toolchain might not be able to
+ represent attributes with the name <code title="">xmlns</code>,
+ since they conflict with the Namespaces in XML syntax. There is also
+ some data that the <a href=#html-parser>HTML parser</a> generates that isn't
+ included in the DOM itself. This section specifies some rules for
+ handling these issues.</p>
+
+ <p>If the XML API being used doesn't support DOCTYPEs, the tool may
+ drop DOCTYPEs altogether.</p>
+
+ <p>If the XML API doesn't support attributes in no namespace that
+ are named "<code title="">xmlns</code>", attributes whose names
+ start with "<code title="">xmlns:</code>", or attributes in the
+ <a href=#xmlns-namespace>XMLNS namespace</a>, then the tool may drop such
+ attributes.</p>
+
+ <p>The tool may annotate the output with any namespace declarations
+ required for proper operation.</p>
+
+ <p>If the XML API being used restricts the allowable characters in
+ the local names of elements and attributes, then the tool may map
+ all element and attribute local names that the API wouldn't support
+ to a set of names that <em>are</em> allowed, by replacing any
+ character that isn't supported with the uppercase letter U and the
+ six digits of the character's Unicode code point when expressed in
+ hexadecimal, using digits 0-9 and capital letters A-F as the
+ symbols, in increasing numeric order.</p>
+
+ <p class=example>For example, the element name <code title="">foo&lt;bar</code>, which can be output by the <a href=#html-parser>HTML
+ parser</a>, though it is neither a legal HTML element name nor a
+ well-formed XML element name, would be converted into <code title="">fooU00003Cbar</code>, which <em>is</em> a well-formed XML
+ element name (though it's still not legal in HTML by any means).</p>
+
+ <p class=example>As another example, consider the attribute
+ <code>xlink:href</code>. Used on a MathML element, it becomes, after
+ being <a href=#adjust-foreign-attributes title="adjust foreign attributes">adjusted</a>, an
+ attribute with a prefix "<code title="">xlink</code>" and a local
+ name "<code title="">href</code>". However, used on an HTML element,
+ it becomes an attribute with no prefix and the local name "<code title="">xlink:href</code>", which is not a valid NCName, and thus
+ might not be accepted by an XML API. It could thus get converted,
+ becoming "<code title="">xlinkU00003Ahref</code>".</p>
+
+ <p class=note>The resulting names from this conversion
+ conveniently can't clash with any attribute generated by the
+ <a href=#html-parser>HTML parser</a>, since those are all either lowercase or
+ those listed in the <a href=#adjust-foreign-attributes>adjust foreign attributes</a>
+ algorithm's table.</p>
+
+ <p>If the XML API restricts comments from having two consecutive
+ U+002D HYPHEN-MINUS characters (--), the tool may insert a single
+ U+0020 SPACE character between any such offending characters.</p>
+
+ <p>If the XML API restricts comments from ending in a
+ U+002D HYPHEN-MINUS character (-), the tool may insert a single
+ U+0020 SPACE character at the end of such comments.</p>
+
+ <p>If the XML API restricts allowed characters in character data,
+ attribute values, or comments, the tool may replace any U+000C FORM
+ FEED (FF) character with a U+0020 SPACE character, and any other
+ literal non-XML character with a U+FFFD REPLACEMENT CHARACTER.</p>
+
+ <p>If the tool has no way to convey out-of-band information, then
+ the tool may drop the following information:</p>
+
+ <ul><li>Whether the document is set to <i><a href=#no-quirks-mode>no-quirks mode</a></i>,
+ <i><a href=#limited-quirks-mode>limited-quirks mode</a></i>, or <i><a href=#quirks-mode>quirks mode</a></i></li>
+
+ <li>The association between form controls and forms that aren't
+ their nearest <code><a href=#the-form-element>form</a></code> element ancestor (use of the
+ <a href=#form-element-pointer><code>form</code> element pointer</a> in the parser)</li>
+
+ </ul><p class=note>The mutations allowed by this section apply
+ <em>after</em> the <a href=#html-parser>HTML parser</a>'s rules have been
+ applied. For example, a <code title="">&lt;a::&gt;</code> start tag
+ will be closed by a <code title="">&lt;/a::&gt;</code> end tag, and
+ never by a <code title="">&lt;/aU00003AU00003A&gt;</code> end tag, even
+ if the user agent is using the rules above to then generate an
+ actual element in the DOM with the name <code title="">aU00003AU00003A</code> for that start tag.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=an-introduction-to-error-handling-and-strange-cases-in-the-parser><span class=secno>13.2.8 </span>An introduction to error handling and strange cases in the parser</h4>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>This section examines some erroneous markup and discusses how
+ the <a href=#html-parser>HTML parser</a> handles these cases.</p>
+
+
+ <h5 id=misnested-tags:-b-i-/b-/i><span class=secno>13.2.8.1 </span>Misnested tags: &lt;b&gt;&lt;i&gt;&lt;/b&gt;&lt;/i&gt;</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The most-often discussed example of erroneous markup is as
+ follows:</p>
+
+ <pre>&lt;p&gt;1&lt;b&gt;2&lt;i&gt;3&lt;/b&gt;4&lt;/i&gt;5&lt;/p&gt;</pre>
+
+ <p>The parsing of this markup is straightforward up to the "3". At
+ this point, the DOM looks like this:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t3><code>#text</code>: <span title="">1</span><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">2</span><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t3><code>#text</code>: <span title="">3</span></ul></ul></ul></ul></ul></ul><p>Here, the <a href=#stack-of-open-elements>stack of open elements</a> has five elements
+ on it: <code><a href=#the-html-element>html</a></code>, <code><a href=#the-body-element>body</a></code>, <code><a href=#the-p-element>p</a></code>,
+ <code><a href=#the-b-element>b</a></code>, and <code><a href=#the-i-element>i</a></code>. The <a href=#list-of-active-formatting-elements>list of active
+ formatting elements</a> just has two: <code><a href=#the-b-element>b</a></code> and
+ <code><a href=#the-i-element>i</a></code>. The <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>".</p>
+
+ <p>Upon receiving the end tag token with the tag name "b", the "<a href=#adoptionAgency>adoption agency algorithm</a>" is
+ invoked. This is a simple case, in that the <var title="">formatting
+ element</var> is the <code><a href=#the-b-element>b</a></code> element, and there is no
+ <var title="">furthest block</var>. Thus, the <a href=#stack-of-open-elements>stack of open
+ elements</a> ends up with just three elements: <code><a href=#the-html-element>html</a></code>,
+ <code><a href=#the-body-element>body</a></code>, and <code><a href=#the-p-element>p</a></code>, while the <a href=#list-of-active-formatting-elements>list of
+ active formatting elements</a> has just one: <code><a href=#the-i-element>i</a></code>. The
+ DOM tree is unmodified at this point.</p>
+
+ <p>The next token is a character ("4"), triggers the <a href=#reconstruct-the-active-formatting-elements title="reconstruct the active formatting elements">reconstruction of
+ the active formatting elements</a>, in this case just the
+ <code><a href=#the-i-element>i</a></code> element. A new <code><a href=#the-i-element>i</a></code> element is thus created
+ for the "4" text node. After the end tag token for the "i" is also
+ received, and the "5" text node is inserted, the DOM looks as
+ follows:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t3><code>#text</code>: <span title="">1</span><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">2</span><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t3><code>#text</code>: <span title="">3</span></ul></ul><li class=t1><code><a href=#the-i-element>i</a></code><ul><li class=t3><code>#text</code>: <span title="">4</span></ul><li class=t3><code>#text</code>: <span title="">5</span></ul></ul></ul></ul><h5 id=misnested-tags:-b-p-/b-/p><span class=secno>13.2.8.2 </span>Misnested tags: &lt;b&gt;&lt;p&gt;&lt;/b&gt;&lt;/p&gt;</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>A case similar to the previous one is the following:</p>
+
+ <pre>&lt;b&gt;1&lt;p&gt;2&lt;/b&gt;3&lt;/p&gt;</pre>
+
+ <p>Up to the "2" the parsing here is straightforward:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">1</span><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t3><code>#text</code>: <span title="">2</span></ul></ul></ul></ul></ul><p>The interesting part is when the end tag token with the tag name
+ "b" is parsed.</p>
+
+ <p>Before that token is seen, the <a href=#stack-of-open-elements>stack of open
+ elements</a> has four elements on it: <code><a href=#the-html-element>html</a></code>,
+ <code><a href=#the-body-element>body</a></code>, <code><a href=#the-b-element>b</a></code>, and <code><a href=#the-p-element>p</a></code>. The
+ <a href=#list-of-active-formatting-elements>list of active formatting elements</a> just has the one:
+ <code><a href=#the-b-element>b</a></code>. The <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-inbody title="insertion mode: in body">in body</a>".</p>
+
+ <p>Upon receiving the end tag token with the tag name "b", the "<a href=#adoptionAgency>adoption agency algorithm</a>" is invoked, as
+ in the previous example. However, in this case, there <em>is</em> a
+ <var title="">furthest block</var>, namely the <code><a href=#the-p-element>p</a></code> element. Thus,
+ this time the adoption agency algorithm isn't skipped over.</p>
+
+ <p>The <var title="">common ancestor</var> is the <code><a href=#the-body-element>body</a></code>
+ element. A conceptual "bookmark" marks the position of the
+ <code><a href=#the-b-element>b</a></code> in the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a>, but since that list has only one element in it,
+ the bookmark won't have much effect.</p>
+
+ <p>As the algorithm progresses, <var title="">node</var> ends up set
+ to the formatting element (<code><a href=#the-b-element>b</a></code>), and <var title="">last
+ node</var> ends up set to the <var title="">furthest block</var>
+ (<code><a href=#the-p-element>p</a></code>).</p>
+
+ <p>The <var title="">last node</var> gets appended (moved) to the
+ <var title="">common ancestor</var>, so that the DOM looks like:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">1</span></ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t3><code>#text</code>: <span title="">2</span></ul></ul></ul></ul><p>A new <code><a href=#the-b-element>b</a></code> element is created, and the children of the
+ <code><a href=#the-p-element>p</a></code> element are moved to it:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">1</span></ul><li class=t1><code><a href=#the-p-element>p</a></code></ul></ul></ul><ul class=domTree><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">2</span></ul></ul><p>Finally, the new <code><a href=#the-b-element>b</a></code> element is appended to the
+ <code><a href=#the-p-element>p</a></code> element, so that the DOM looks like:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">1</span></ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">2</span></ul></ul></ul></ul></ul><p>The <code><a href=#the-b-element>b</a></code> element is removed from the <a href=#list-of-active-formatting-elements>list of
+ active formatting elements</a> and the <a href=#stack-of-open-elements>stack of open
+ elements</a>, so that when the "3" is parsed, it is appended to
+ the <code><a href=#the-p-element>p</a></code> element:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">1</span></ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">2</span></ul><li class=t3><code>#text</code>: <span title="">3</span></ul></ul></ul></ul><h5 id=unexpected-markup-in-tables><span class=secno>13.2.8.3 </span>Unexpected markup in tables</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Error handling in tables is, for historical reasons, especially
+ strange. For example, consider the following markup:</p>
+
+ <pre>&lt;table&gt;<strong>&lt;b&gt;</strong>&lt;tr&gt;&lt;td&gt;aaa&lt;/td&gt;&lt;/tr&gt;<strong>bbb</strong>&lt;/table&gt;ccc</pre>
+
+ <p>The highlighted <code><a href=#the-b-element>b</a></code> element start tag is not allowed
+ directly inside a table like that, and the parser handles this case
+ by placing the element <em>before</em> the table. (This is called <i title="foster parent"><a href=#foster-parent>foster parenting</a></i>.) This can be seen by
+ examining the DOM tree as it stands just after the
+ <code><a href=#the-table-element>table</a></code> element's start tag has been seen:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-table-element>table</a></code></ul></ul></ul><p>...and then immediately after the <code><a href=#the-b-element>b</a></code> element start
+ tag has been seen:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><li class=t1><code><a href=#the-table-element>table</a></code></ul></ul></ul><p>At this point, the <a href=#stack-of-open-elements>stack of open elements</a> has on it
+ the elements <code><a href=#the-html-element>html</a></code>, <code><a href=#the-body-element>body</a></code>,
+ <code><a href=#the-table-element>table</a></code>, and <code><a href=#the-b-element>b</a></code> (in that order, despite the
+ resulting DOM tree); the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a> just has the <code><a href=#the-b-element>b</a></code> element in it; and the
+ <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-intable title="insertion mode: in
+ table">in table</a>".</p>
+
+ <p>The <code><a href=#the-tr-element>tr</a></code> start tag causes the <code><a href=#the-b-element>b</a></code> element
+ to be popped off the stack and a <code><a href=#the-tbody-element>tbody</a></code> start tag to be
+ implied; the <code><a href=#the-tbody-element>tbody</a></code> and <code><a href=#the-tr-element>tr</a></code> elements are
+ then handled in a rather straight-forward manner, taking the parser
+ through the "<a href=#parsing-main-intbody title="insertion mode: in table body">in table
+ body</a>" and "<a href=#parsing-main-intr title="insertion mode: in row">in
+ row</a>" insertion modes, after which the DOM looks as
+ follows:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><li class=t1><code><a href=#the-table-element>table</a></code><ul><li class=t1><code><a href=#the-tbody-element>tbody</a></code><ul><li class=t1><code><a href=#the-tr-element>tr</a></code></ul></ul></ul></ul></ul><p>Here, the <a href=#stack-of-open-elements>stack of open elements</a> has on it the
+ elements <code><a href=#the-html-element>html</a></code>, <code><a href=#the-body-element>body</a></code>, <code><a href=#the-table-element>table</a></code>,
+ <code><a href=#the-tbody-element>tbody</a></code>, and <code><a href=#the-tr-element>tr</a></code>; the <a href=#list-of-active-formatting-elements>list of active
+ formatting elements</a> still has the <code><a href=#the-b-element>b</a></code> element in
+ it; and the <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-intr title="insertion
+ mode: in row">in row</a>".</p>
+
+ <p>The <code><a href=#the-td-element>td</a></code> element start tag token, after putting a
+ <code><a href=#the-td-element>td</a></code> element on the tree, puts a marker on the <a href=#list-of-active-formatting-elements>list
+ of active formatting elements</a> (it also switches to the "<a href=#parsing-main-intd title="insertion mode: in cell">in cell</a>" <a href=#insertion-mode>insertion
+ mode</a>).</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><li class=t1><code><a href=#the-table-element>table</a></code><ul><li class=t1><code><a href=#the-tbody-element>tbody</a></code><ul><li class=t1><code><a href=#the-tr-element>tr</a></code><ul><li class=t1><code><a href=#the-td-element>td</a></code></ul></ul></ul></ul></ul></ul><p>The marker means that when the "aaa" character tokens are seen,
+ no <code><a href=#the-b-element>b</a></code> element is created to hold the resulting text
+ node:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><li class=t1><code><a href=#the-table-element>table</a></code><ul><li class=t1><code><a href=#the-tbody-element>tbody</a></code><ul><li class=t1><code><a href=#the-tr-element>tr</a></code><ul><li class=t1><code><a href=#the-td-element>td</a></code><ul><li class=t3><code>#text</code>: <span title="">aaa</span></ul></ul></ul></ul></ul></ul></ul><p>The end tags are handled in a straight-forward manner; after
+ handling them, the <a href=#stack-of-open-elements>stack of open elements</a> has on it the
+ elements <code><a href=#the-html-element>html</a></code>, <code><a href=#the-body-element>body</a></code>, <code><a href=#the-table-element>table</a></code>,
+ and <code><a href=#the-tbody-element>tbody</a></code>; the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a> still has the <code><a href=#the-b-element>b</a></code> element in it (the
+ marker having been removed by the "td" end tag token); and the
+ <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-intbody title="insertion mode: in
+ table body">in table body</a>".</p>
+
+ <p>Thus it is that the "bbb" character tokens are found. These
+ trigger the "<a href=#parsing-main-intabletext title="insertion mode: in table text">in table
+ text</a>" insertion mode to be used (with the <a href=#original-insertion-mode>original
+ insertion mode</a> set to "<a href=#parsing-main-intbody title="insertion mode: in table
+ body">in table body</a>"). The character tokens are collected,
+ and when the next token (the <code><a href=#the-table-element>table</a></code> element end tag) is
+ seen, they are processed as a group. Since they are not all spaces,
+ they are handled as per the "anything else" rules in the "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>" insertion mode,
+ which defer to the "<a href=#parsing-main-inbody title="insertion mode: in body">in
+ body</a>" insertion mode but with <a href=#foster-parent title="foster
+ parent">foster parenting</a>.</p>
+
+ <p>When <a href=#reconstruct-the-active-formatting-elements title="reconstruct the active formatting elements">the
+ active formatting elements are reconstructed</a>, a
+ <code><a href=#the-b-element>b</a></code> element is created and <a href=#foster-parent title="foster
+ parent">foster parented</a>, and then the "bbb" text node is
+ appended to it:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">bbb</span></ul><li class=t1><code><a href=#the-table-element>table</a></code><ul><li class=t1><code><a href=#the-tbody-element>tbody</a></code><ul><li class=t1><code><a href=#the-tr-element>tr</a></code><ul><li class=t1><code><a href=#the-td-element>td</a></code><ul><li class=t3><code>#text</code>: <span title="">aaa</span></ul></ul></ul></ul></ul></ul></ul><p>The <a href=#stack-of-open-elements>stack of open elements</a> has on it the elements
+ <code><a href=#the-html-element>html</a></code>, <code><a href=#the-body-element>body</a></code>, <code><a href=#the-table-element>table</a></code>,
+ <code><a href=#the-tbody-element>tbody</a></code>, and the new <code><a href=#the-b-element>b</a></code> (again, note that
+ this doesn't match the resulting tree!); the <a href=#list-of-active-formatting-elements>list of active
+ formatting elements</a> has the new <code><a href=#the-b-element>b</a></code> element in it;
+ and the <a href=#insertion-mode>insertion mode</a> is still "<a href=#parsing-main-intbody title="insertion
+ mode: in table body">in table body</a>".</p>
+
+ <p>Had the character tokens been only <a href=#space-character title="space
+ character">space characters</a> instead of "bbb", then those
+ <a href=#space-character title="space character">space characters</a> would just be
+ appended to the <code><a href=#the-tbody-element>tbody</a></code> element.</p>
+
+ <p>Finally, the <code><a href=#the-table-element>table</a></code> is closed by a "table" end
+ tag. This pops all the nodes from the <a href=#stack-of-open-elements>stack of open
+ elements</a> up to and including the <code><a href=#the-table-element>table</a></code> element,
+ but it doesn't affect the <a href=#list-of-active-formatting-elements>list of active formatting
+ elements</a>, so the "ccc" character tokens after the table
+ result in yet another <code><a href=#the-b-element>b</a></code> element being created, this
+ time after the table:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">bbb</span></ul><li class=t1><code><a href=#the-table-element>table</a></code><ul><li class=t1><code><a href=#the-tbody-element>tbody</a></code><ul><li class=t1><code><a href=#the-tr-element>tr</a></code><ul><li class=t1><code><a href=#the-td-element>td</a></code><ul><li class=t3><code>#text</code>: <span title="">aaa</span></ul></ul></ul></ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">ccc</span></ul></ul></ul></ul><h5 id=scripts-that-modify-the-page-as-it-is-being-parsed><span class=secno>13.2.8.4 </span>Scripts that modify the page as it is being parsed</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Consider the following markup, which for this example we will
+ assume is the document with <a href=#url>URL</a> <code title="">http://example.com/inner</code>, being rendered as the
+ content of an <code><a href=#the-iframe-element>iframe</a></code> in another document with the
+ <a href=#url>URL</a> <code title="">http://example.com/outer</code>:</p>
+
+ <pre>&lt;div id=a&gt;
+ &lt;script&gt;
+ var div = document.getElementById('a');
+ parent.document.body.appendChild(div);
+ &lt;/script&gt;
+ &lt;script&gt;
+ alert(document.URL);
+ &lt;/script&gt;
+&lt;/div&gt;
+&lt;script&gt;
+ alert(document.URL);
+&lt;/script&gt;</pre>
+
+ <p>Up to the first "script" end tag, before the script is parsed,
+ the result is relatively straightforward:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-div-element>div</a></code> <span class=t2 title=""><code class="attribute name">id</code>="<code class="attribute value"><a href=#the-a-element>a</a></code>"</span><ul><li class=t3><code>#text</code>: <span title="">
+ </span><li class=t1><code><a href=#the-script-element>script</a></code><ul><li class=t3><code>#text</code>: <span title="">var div = document.getElementById('a'); &#9166; parent.document.body.appendChild(div);</span></ul></ul></ul></ul></ul><p>After the script is parsed, though, the <code><a href=#the-div-element>div</a></code> element
+ and its child <code><a href=#the-script-element>script</a></code> element are gone:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code></ul></ul><p>They are, at this point, in the <code><a href=#document>Document</a></code> of the
+ aforementioned outer <a href=#browsing-context>browsing context</a>. However, the
+ <a href=#stack-of-open-elements>stack of open elements</a> <em>still contains the
+ <code><a href=#the-div-element>div</a></code> element</em>.</p>
+
+ <p>Thus, when the second <code><a href=#the-script-element>script</a></code> element is parsed, it
+ is inserted <em>into the outer <code><a href=#document>Document</a></code>
+ object</em>.</p>
+
+ <p>This parsed into different <code><a href=#document>Document</a></code>s than the one
+ the parser was created for do not execute, so the first alert does
+ not show.</p>
+
+ <p>Once the <code><a href=#the-div-element>div</a></code> element's end tag is parsed, the
+ <code><a href=#the-div-element>div</a></code> element is popped off the stack, and so the next
+ <code><a href=#the-script-element>script</a></code> element is in the inner <code><a href=#document>Document</a></code>:</p>
+
+ <ul class=domTree><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-script-element>script</a></code><ul><li class=t3><code>#text</code>: <span title="">alert(document.URL);</span></ul></ul></ul></ul><p>This script does execute, resulting in an alert that says "http://example.com/inner".</p>
+
+
+ <h5 id=the-execution-of-scripts-that-are-moving-across-multiple-documents><span class=secno>13.2.8.5 </span>The execution of scripts that are moving across multiple documents</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>Elaborating on the example in the previous section, consider the
+ case where the second <code><a href=#the-script-element>script</a></code> element is an external
+ script (i.e. one with a <code title=attr-script-src><a href=#attr-script-src>src</a></code>
+ attribute). Since the element was not in the parser's
+ <code><a href=#document>Document</a></code> when it was created, that external script is
+ not even downloaded.</p>
+
+ <p>In a case where a <code><a href=#the-script-element>script</a></code> element with a <code title=attr-script-src><a href=#attr-script-src>src</a></code> attribute is parsed normally into
+ its parser's <code><a href=#document>Document</a></code>, but while the external script is
+ being downloaded, the element is moved to another document, the
+ script continues to download, but does not execute.</p>
+
+ <p class=note>In general, moving <code><a href=#the-script-element>script</a></code> elements
+ between <code><a href=#document>Document</a></code>s is considered a bad practice.</p>
+
+
+
+ <h5 id=unclosed-formatting-elements><span class=secno>13.2.8.6 </span>Unclosed formatting elements</h5>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <p>The following markup shows how nested formatting elements (such
+ as <code><a href=#the-b-element>b</a></code>) get collected and continue to be applied even as
+ the elements they are contained in are closed, but that excessive
+ duplicates are thrown away.</p>
+
+ <pre>&lt;!DOCTYPE html&gt;
+&lt;p&gt;&lt;b class=x&gt;&lt;b class=x&gt;&lt;b&gt;&lt;b class=x&gt;&lt;b class=x&gt;&lt;b&gt;X
+&lt;p&gt;X
+&lt;p&gt;&lt;b&gt;&lt;b class=x&gt;&lt;b&gt;X
+&lt;p&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;X</pre>
+
+ <p>The resulting DOM tree is as follows:</p>
+
+ <ul class=domTree><li class=t10>DOCTYPE: <code><a href=#the-html-element>html</a></code><li class=t1><code><a href=#the-html-element>html</a></code><ul><li class=t1><code><a href=#the-head-element>head</a></code><li class=t1><code><a href=#the-body-element>body</a></code><ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">X&#9166;</span></ul></ul></ul></ul></ul></ul></ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">X&#9166;</span></ul></ul></ul></ul></ul></ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t1><code><a href=#the-b-element>b</a></code> <span class=t2 title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class=t1><code><a href=#the-b-element>b</a></code><ul><li class=t3><code>#text</code>: <span title="">X&#9166;</span></ul></ul></ul></ul></ul></ul></ul></ul></ul><li class=t1><code><a href=#the-p-element>p</a></code><ul><li class=t3><code>#text</code>: <span title="">X&#9166;</span></ul></ul></ul></ul><p>Note how the second <code><a href=#the-p-element>p</a></code> element in the markup has no
+ explicit <code><a href=#the-b-element>b</a></code> elements, but in the resulting DOM, up to
+ three of each kind of formatting element (in this case three
+ <code><a href=#the-b-element>b</a></code> elements with the class attribute, and two unadorned
+ <code><a href=#the-b-element>b</a></code> elements) get reconstructed before the element's
+ "X".</p>
+
+ <p>Also note how this means that in the final paragraph only six
+ <code><a href=#the-b-element>b</a></code> end tags are needed to completely clear the list of
+ formatting elements, even though nine <code><a href=#the-b-element>b</a></code> start tags have
+ been seen up to this point.</p>
+
+
+
+
+ <h3 id=serializing-html-fragments><span class=secno>13.3 </span>Serializing HTML fragments</h3>
+
+ <p>The following steps form the <dfn id=html-fragment-serialization-algorithm>HTML fragment serialization
+ algorithm</dfn>. The algorithm takes as input a DOM
+ <code><a href=#element>Element</a></code>, <code><a href=#document>Document</a></code>, or
+ <code><a href=#documentfragment>DocumentFragment</a></code> referred to as <var title="">the
+ node</var>, and either returns a string or throws an exception.</p>
+
+ <p class=note>This algorithm serializes the <em>children</em> of
+ the node being serialized, not the node itself.</p>
+
+ <ol><li><p>Let <var title="">s</var> be a string, and initialize it to
+ the empty string.</li>
+
+ <li>
+
+ <p>For each child node of <var title="">the node</var>, in
+ <a href=#tree-order>tree order</a>, run the following steps:
+
+ <ol><li><p>Let <var title="">current node</var> be the child node
+ being processed.</li>
+
+ <li>
+
+ <p>Append the appropriate string from the following list to
+ <var title="">s</var>:</p>
+
+ <dl class=switch><dt>If <var title="">current node</var> is an <code title="">Element</code></dt>
+
+ <dd>
+
+ <p>If <var title="">current node</var> is an element in the
+ <a href=#html-namespace-0>HTML namespace</a>, the <a href=#mathml-namespace>MathML
+ namespace</a>, or the <a href=#svg-namespace>SVG namespace</a>, then let
+ <var title="">tagname</var> be <var title="">current
+ node</var>'s local name. Otherwise, let <var title="">tagname</var> be <var title="">current node</var>'s
+ qualified name.</p>
+
+ <p>Append a U+003C LESS-THAN SIGN character (&lt;), followed
+ by <var title="">tagname</var>.</p>
+
+ <p class=note>For <a href=#html-elements>HTML elements</a> created by the
+ <a href=#html-parser>HTML parser</a> or <code title="">Document.createElement()</code>, <var title="">tagname</var> will be lowercase.</p>
+
+ <p>For each attribute that the element has, append a U+0020
+ SPACE character, the <a href="#attribute's-serialized-name" title="attribute's serialized
+ name">attribute's serialized name as described below</a>, a
+ U+003D EQUALS SIGN character (=), a U+0022 QUOTATION MARK
+ character ("), the attribute's value, <a href=#escapingString title="escaping a string">escaped as described below</a> in
+ <i>attribute mode</i>, and a second U+0022 QUOTATION MARK
+ character (").</p>
+
+ <p>An <dfn id="attribute's-serialized-name">attribute's serialized name</dfn> for the purposes
+ of the previous paragraph must be determined as follows:</p>
+
+ <dl class=switch><dt>If the attribute has no namespace</dt>
+
+ <dd>
+
+ <p>The attribute's serialized name is the attribute's local
+ name.</p>
+
+ <p class=note>For attributes on <a href=#html-elements>HTML elements</a>
+ set by the <a href=#html-parser>HTML parser</a> or by <code title="">Element.setAttributeNode()</code> or <code title="">Element.setAttribute()</code>, the local name will
+ be lowercase.</p>
+
+ </dd>
+
+
+ <dt>If the attribute is in the <a href=#xml-namespace>XML namespace</a></dt>
+
+ <dd><p>The attribute's serialized name is the string "<code title="">xml:</code>" followed by the attribute's local
+ name.</dd>
+
+
+ <dt>If the attribute is in the <a href=#xmlns-namespace>XMLNS namespace</a> and the attribute's local name is <code title="">xmlns</code></dt>
+
+ <dd><p>The attribute's serialized name is the string "<code title="">xmlns</code>".</dd>
+
+
+ <dt>If the attribute is in the <a href=#xmlns-namespace>XMLNS namespace</a> and the attribute's local name is not <code title="">xmlns</code></dt>
+
+ <dd><p>The attribute's serialized name is the string "<code title="">xmlns:</code>" followed by the attribute's local
+ name.</dd>
+
+
+ <dt>If the attribute is in the <a href=#xlink-namespace>XLink namespace</a></dt>
+
+ <dd><p>The attribute's serialized name is the string "<code title="">xlink:</code>" followed by the attribute's local
+ name.</dd>
+
+
+ <dt>If the attribute is in some other namespace</dt>
+
+ <dd><p>The attribute's serialized name is the attribute's
+ qualified name.</dd>
+
+ </dl><p>While the exact order of attributes is UA-defined, and may
+ depend on factors such as the order that the attributes were
+ given in the original markup, the sort order must be stable,
+ such that consecutive invocations of this algorithm serialize an
+ element's attributes in the same order.</p>
+
+ <p>Append a U+003E GREATER-THAN SIGN character (&gt;).</p>
+
+ <p>If <var title="">current node</var> is an
+ <code><a href=#the-area-element>area</a></code>, <code><a href=#the-base-element>base</a></code>, <code><a href=#basefont>basefont</a></code>,
+ <code><a href=#bgsound>bgsound</a></code>, <code><a href=#the-br-element>br</a></code>, <code><a href=#the-col-element>col</a></code>,
+ <code><a href=#the-command-element>command</a></code>, <code><a href=#the-embed-element>embed</a></code>, <code><a href=#frame>frame</a></code>,
+ <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-img-element>img</a></code>, <code><a href=#the-input-element>input</a></code>,
+ <code><a href=#the-keygen-element>keygen</a></code>, <code><a href=#the-link-element>link</a></code>, <code><a href=#the-meta-element>meta</a></code>,
+ <code><a href=#the-param-element>param</a></code>, <code><a href=#the-source-element>source</a></code>, <code><a href=#the-track-element>track</a></code> or
+ <code><a href=#the-wbr-element>wbr</a></code> element, then continue on to the next child
+ node at this point.</p> <!-- VOIDLIST superset -->
+ <!-- also, i guess: image and isindex, but we don't list those
+ because we don't consider those "elements", more "macros", and
+ thus we should never serialize them -->
+
+ <p>If <var title="">current node</var> is a <code><a href=#the-pre-element>pre</a></code>,
+ <code><a href=#the-textarea-element>textarea</a></code>, or <code><a href=#listing>listing</a></code> element, append
+ a U+000A LINE FEED (LF) character.</p>
+
+ <p>Append the value of running the <a href=#html-fragment-serialization-algorithm>HTML fragment
+ serialization algorithm</a> on the <var title="">current
+ node</var> element (thus recursing into this algorithm for
+ that element), followed by a U+003C LESS-THAN SIGN character
+ (&lt;), a U+002F SOLIDUS character (/), <var title="">tagname</var> again, and finally a U+003E
+ GREATER-THAN SIGN character (&gt;).</p>
+
+ </dd>
+
+
+ <dt>If <var title="">current node</var> is a <code title="">Text</code> or <code title="">CDATASection</code>
+ node</dt>
+
+ <dd>
+
+ <p>If the parent of <var title="">current node</var> is a
+ <code><a href=#the-style-element>style</a></code>, <code><a href=#the-script-element>script</a></code>, <code><a href=#xmp>xmp</a></code>,
+ <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#noembed>noembed</a></code>,
+ <code><a href=#noframes>noframes</a></code>, or <code><a href=#plaintext>plaintext</a></code> element, or
+ if the parent of <var title="">current node</var> is
+ <code><a href=#the-noscript-element>noscript</a></code> element and <a href=#concept-n-script title=concept-n-script>scripting is enabled</a> for the
+ node, then append the value of <var title="">current
+ node</var>'s <code title="">data</code> IDL attribute
+ literally.</p>
+
+ <p>Otherwise, append the value of <var title="">current
+ node</var>'s <code title="">data</code> IDL attribute, <a href=#escapingString title="escaping a string">escaped as described
+ below</a>.</p>
+
+ </dd>
+
+
+ <dt>If <var title="">current node</var> is a <code title="">Comment</code></dt>
+
+ <dd>
+
+ <p>Append the literal string <code>&lt;!--</code> (U+003C
+ LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS,
+ U+002D HYPHEN-MINUS), followed by the value of <var title="">current node</var>'s <code title="">data</code> IDL
+ attribute, followed by the literal string <code>--&gt;</code>
+ (U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS, U+003E GREATER-THAN
+ SIGN).</p>
+
+ </dd>
+
+
+ <dt>If <var title="">current node</var> is a <code title="">ProcessingInstruction</code></dt>
+
+ <dd>
+
+ <p>Append the literal string <code>&lt;?</code> (U+003C
+ LESS-THAN SIGN, U+003F QUESTION MARK), followed by the value
+ of <var title="">current node</var>'s <code title="">target</code> IDL attribute, followed by a single
+ U+0020 SPACE character, followed by the value of <var title="">current node</var>'s <code title="">data</code> IDL
+ attribute, followed by a single U+003E GREATER-THAN SIGN
+ character (&gt;).</p>
+
+ </dd>
+
+
+ <dt>If <var title="">current node</var> is a <code title="">DocumentType</code></dt>
+
+ <dd>
+
+ <p>Append the literal string <code>&lt;!DOCTYPE</code> (U+003C
+ LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+0044 LATIN CAPITAL
+ LETTER D, U+004F LATIN CAPITAL LETTER O, U+0043 LATIN CAPITAL
+ LETTER C, U+0054 LATIN CAPITAL LETTER T, U+0059 LATIN CAPITAL
+ LETTER Y, U+0050 LATIN CAPITAL LETTER P, U+0045 LATIN CAPITAL
+ LETTER E), followed by a space (U+0020 SPACE), followed by the
+ value of <var title="">current node</var>'s <code title="">name</code> IDL attribute, followed by the literal
+ string <code>&gt;</code> (U+003E GREATER-THAN SIGN).</p>
+
+ </dd>
+
+
+ </dl><p>Other node types (e.g. <code title="">Attr</code>) cannot
+ occur as children of elements. If, despite this, they somehow do
+ occur, this algorithm must throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li><p>The result of the algorithm is the string <var title="">s</var>.</li>
+
+ </ol><p class=note>Entity reference nodes are <a href=#entity-references>assumed to be expanded</a> by the user
+ agent, and are therefore not covered in the algorithm above.</p>
+
+ <p class=warning>It is possible that the output of this algorithm, if
+ parsed with an <a href=#html-parser>HTML parser</a>, will not return the
+ original tree structure.</p>
+
+ <div class=example>
+
+ <p>For instance, if a <code><a href=#the-textarea-element>textarea</a></code> element to which a
+ <code title="">Comment</code> node has been appended is serialized
+ and the output is then reparsed, the comment will end up being
+ displayed in the text field. Similarly, if, as a result of DOM
+ manipulation, an element contains a comment that contains the
+ literal string "<code title="">--&gt;</code>", then when the result
+ of serializing the element is parsed, the comment will be truncated
+ at that point and the rest of the comment will be interpreted as
+ markup. More examples would be making a <code><a href=#the-script-element>script</a></code> element
+ contain a text node with the text string
+ "<code>&lt;/script&gt;</code>", or having a <code><a href=#the-p-element>p</a></code> element
+ that contains a <code><a href=#the-ul-element>ul</a></code> element (as the <code><a href=#the-ul-element>ul</a></code>
+ element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> would
+ imply the end tag for the <code><a href=#the-p-element>p</a></code>).</p>
+
+ <p>This can enable cross-site scripting attacks. An example of this
+ would be a page that lets the user enter some font names that are
+ then inserted into a CSS <code><a href=#the-style-element>style</a></code> block via the DOM and
+ which then uses the <code title=dom-innerHTML>innerHTML</code>
+ IDL attribute to get the HTML serialization of that
+ <code><a href=#the-style-element>style</a></code> element: if the user enters
+ "<code>&lt;/style&gt;&lt;script&gt;attack&lt;/script&gt;</code>" as a font
+ name, <code title=dom-innerHTML>innerHTML</code> will return
+ markup that, if parsed in a different context, would contain a
+ <code><a href=#the-script-element>script</a></code> node, even though no <code><a href=#the-script-element>script</a></code> node
+ existed in the original DOM.</p>
+
+ </div>
+
+ <p><dfn id=escapingString>Escaping a string</dfn> (for the
+ purposes of the algorithm above) consists of running the following
+ steps:</p>
+
+ <ol><li><p>Replace any occurrence of the "<code title="">&amp;</code>"
+ character by the string "<code title="">&amp;amp;</code>".</li>
+
+ <li><p>Replace any occurrences of the U+00A0 NO-BREAK SPACE
+ character by the string "<code title="">&amp;nbsp;</code>".</li>
+
+ <li><p>If the algorithm was invoked in the <i>attribute mode</i>,
+ replace any occurrences of the "<code title="">"</code>"
+ character by the string "<code title="">&amp;quot;</code>".</li>
+
+ <li><p>If the algorithm was <em>not</em> invoked in the
+ <i>attribute mode</i>, replace any occurrences of the "<code title="">&lt;</code>" character by the string "<code title="">&amp;lt;</code>", and any occurrences of the "<code title="">&gt;</code>" character by the string "<code title="">&amp;gt;</code>".</li>
+
+ </ol><h3 id=parsing-html-fragments><span class=secno>13.4 </span>Parsing HTML fragments</h3>
+
+ <p>The following steps form the <dfn id=html-fragment-parsing-algorithm>HTML fragment parsing
+ algorithm</dfn>. The algorithm optionally takes as input an
+ <code><a href=#element>Element</a></code> node, referred to as the <dfn id=concept-frag-parse-context title=concept-frag-parse-context><var>context</var></dfn> element,
+ which gives the context for the parser, as well as <var title="">input</var>, a string to parse, and returns a list of zero
+ or more nodes.</p>
+
+ <p class=note>Parts marked <dfn id=fragment-case>fragment case</dfn> in algorithms
+ in the parser section are parts that only occur if the parser was
+ created for the purposes of this algorithm (and with a <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element). The
+ algorithms have been annotated with such markings for informational
+ purposes only; such markings have no normative weight. If it is
+ possible for a condition described as a <a href=#fragment-case>fragment case</a>
+ to occur even when the parser wasn't created for the purposes of
+ handling this algorithm, then that is an error in the
+ specification.</p>
+
+ <ol><li>
+
+ <p>Create a new <code><a href=#document>Document</a></code> node, and mark it as being
+ an <a href=#html-documents title="HTML documents">HTML document</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there is a <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element, and the
+ <code><a href=#document>Document</a></code> of the <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element is in
+ <a href=#quirks-mode>quirks mode</a>, then let the <code><a href=#document>Document</a></code> be in
+ <a href=#quirks-mode>quirks mode</a>. Otherwise, if there is a <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element, and the
+ <code><a href=#document>Document</a></code> of the <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element is in
+ <a href=#limited-quirks-mode>limited-quirks mode</a>, then let the
+ <code><a href=#document>Document</a></code> be in <a href=#limited-quirks-mode>limited-quirks mode</a>.
+ Otherwise, leave the <code><a href=#document>Document</a></code> in <a href=#no-quirks-mode>no-quirks
+ mode</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Create a new <a href=#html-parser>HTML parser</a>, and associate it with
+ the just created <code><a href=#document>Document</a></code> node.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there is a <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element, run
+ these substeps:</p>
+
+ <ol><li>
+
+ <p>Set the state of the <a href=#html-parser>HTML parser</a>'s
+ <a href=#tokenization>tokenization</a> stage as follows:</p>
+
+ <dl class=switch><dt>If it is a <code><a href=#the-title-element>title</a></code> or <code><a href=#the-textarea-element>textarea</a></code>
+ element</dt>
+
+ <dd>Switch the tokenizer to the <a href=#rcdata-state>RCDATA state</a>.</dd>
+
+
+ <dt>If it is a <code><a href=#the-style-element>style</a></code>, <code><a href=#xmp>xmp</a></code>,
+ <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#noembed>noembed</a></code>, or
+ <code><a href=#noframes>noframes</a></code> element</dt>
+
+ <dd>Switch the tokenizer to the <a href=#rawtext-state>RAWTEXT state</a>.</dd>
+
+
+ <dt>If it is a <code><a href=#the-script-element>script</a></code> element</dt>
+
+ <dd>Switch the tokenizer to the <a href=#script-data-state>script data state</a>.</dd>
+
+
+ <dt>If it is a <code><a href=#the-noscript-element>noscript</a></code> element</dt>
+
+ <dd>If the <a href=#scripting-flag>scripting flag</a> is enabled, switch the
+ tokenizer to the <a href=#rawtext-state>RAWTEXT state</a>. Otherwise,
+ leave the tokenizer in the <a href=#data-state>data state</a>.</dd>
+
+
+ <dt>If it is a <code><a href=#plaintext>plaintext</a></code> element</dt>
+
+ <dd>Switch the tokenizer to the <a href=#plaintext-state>PLAINTEXT
+ state</a>.</dd>
+
+
+ <dt>Otherwise</dt>
+
+ <dd>Leave the tokenizer in the <a href=#data-state>data state</a>.</dd>
+
+ </dl><p class=note>For performance reasons, an implementation that
+ does not report errors and that uses the actual state machine
+ described in this specification directly could use the PLAINTEXT
+ state instead of the RAWTEXT and script data states where those
+ are mentioned in the list above. Except for rules regarding
+ parse errors, they are equivalent, since there is no
+ <a href=#appropriate-end-tag-token>appropriate end tag token</a> in the fragment case, yet
+ they involve far fewer state transitions.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">root</var> be a new <code><a href=#the-html-element>html</a></code> element
+ with no attributes.</p>
+
+ </li>
+
+ <li>
+
+ <p>Append the element <var title="">root</var> to the
+ <code><a href=#document>Document</a></code> node created above.</p>
+
+ </li>
+
+ <li>
+
+ <p>Set up the parser's <a href=#stack-of-open-elements>stack of open elements</a> so that
+ it contains just the single element <var title="">root</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#reset-the-insertion-mode-appropriately title="reset the insertion mode appropriately">Reset the
+ parser's insertion mode appropriately</a>.</p>
+
+ <p class=note>The parser will reference the <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element as part
+ of that algorithm.</p>
+
+ </li>
+
+ <li>
+
+ <p>Set the parser's <a href=#form-element-pointer><code>form</code> element
+ pointer</a> to the nearest node to the <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element that is
+ a <code><a href=#the-form-element>form</a></code> element (going straight up the ancestor
+ chain, and including the element itself, if it is a
+ <code><a href=#the-form-element>form</a></code> element), or, if there is no such
+ <code><a href=#the-form-element>form</a></code> element, to null.</p>
+
+ </li>
+
+ </ol></li>
+
+ <li>
+
+ <p>Place into the <a href=#the-input-stream>input stream</a> for the <a href=#html-parser>HTML
+ parser</a> just created the <var title="">input</var>. The
+ encoding <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> is
+ <i>irrelevant</i>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Start the parser and let it run until it has consumed all the
+ characters just inserted into the input stream.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there is a <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element, return
+ the child nodes of <var title="">root</var>, in <a href=#tree-order>tree
+ order</a>.</p>
+
+ <p>Otherwise, return the children of the <code><a href=#document>Document</a></code>
+ object, in <a href=#tree-order>tree order</a>.</p>
+
+ </li>
+
+ </ol><p class=note>This algorithm is invoked without a <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element in the case
+ of <code title=dom-Document-innerHTML>Document.innerHTML</code>.</p>
+
+ </div>
+
+
+
+ <h3 id=named-character-references><span class=secno>13.5 </span><dfn>Named character references</dfn></h3>
+
+ <p>This table lists the character reference names that are supported
+ by HTML, and the code points to which they refer. It is referenced
+ by the previous sections.</p>
+
+ <div id=named-character-references-table>
+ <table><thead><tr><th> Name </th> <th> Character(s) </th> <th> Glyph </th> <tbody><tr id=entity-AElig><td> <code title="">AElig;</code> </td> <td> U+000C6 </td> <td> <span class=glyph title="">&AElig;</span> </td> <tr id=entity-AMP><td> <code title="">AMP;</code> </td> <td> U+00026 </td> <td> <span class=glyph title="">&amp;</span> </td> <tr id=entity-Aacute><td> <code title="">Aacute;</code> </td> <td> U+000C1 </td> <td> <span class=glyph title="">&Aacute;</span> </td> <tr id=entity-Abreve><td> <code title="">Abreve;</code> </td> <td> U+00102 </td> <td> <span class=glyph title="">&#258;</span> </td> <tr id=entity-Acirc><td> <code title="">Acirc;</code> </td> <td> U+000C2 </td> <td> <span class=glyph title="">&Acirc;</span> </td> <tr id=entity-Acy><td> <code title="">Acy;</code> </td> <td> U+00410 </td> <td> <span class=glyph title="">&#1040;</span> </td> <tr id=entity-Afr><td> <code title="">Afr;</code> </td> <td> U+1D504 </td> <td> <span class=glyph title="">&#120068;</span> </td> <tr id=entity-Agrave><td> <code title="">Agrave;</code> </td> <td> U+000C0 </td> <td> <span class=glyph title="">&Agrave;</span> </td> <tr id=entity-Alpha><td> <code title="">Alpha;</code> </td> <td> U+00391 </td> <td> <span class=glyph title="">&Alpha;</span> </td> <tr id=entity-Amacr><td> <code title="">Amacr;</code> </td> <td> U+00100 </td> <td> <span class=glyph title="">&#256;</span> </td> <tr id=entity-And><td> <code title="">And;</code> </td> <td> U+02A53 </td> <td> <span class=glyph title="">&#10835;</span> </td> <tr id=entity-Aogon><td> <code title="">Aogon;</code> </td> <td> U+00104 </td> <td> <span class=glyph title="">&#260;</span> </td> <tr id=entity-Aopf><td> <code title="">Aopf;</code> </td> <td> U+1D538 </td> <td> <span class=glyph title="">&#120120;</span> </td> <tr id=entity-ApplyFunction><td> <code title="">ApplyFunction;</code> </td> <td> U+02061 </td> <td> <span class=glyph title="">&#8289;</span> </td> <tr id=entity-Aring><td> <code title="">Aring;</code> </td> <td> U+000C5 </td> <td> <span class=glyph title="">&Aring;</span> </td> <tr id=entity-Ascr><td> <code title="">Ascr;</code> </td> <td> U+1D49C </td> <td> <span class=glyph title="">&#119964;</span> </td> <tr id=entity-Assign><td> <code title="">Assign;</code> </td> <td> U+02254 </td> <td> <span class=glyph title="">&#8788;</span> </td> <tr id=entity-Atilde><td> <code title="">Atilde;</code> </td> <td> U+000C3 </td> <td> <span class=glyph title="">&Atilde;</span> </td> <tr id=entity-Auml><td> <code title="">Auml;</code> </td> <td> U+000C4 </td> <td> <span class=glyph title="">&Auml;</span> </td> <tr id=entity-Backslash><td> <code title="">Backslash;</code> </td> <td> U+02216 </td> <td> <span class=glyph title="">&#8726;</span> </td> <tr id=entity-Barv><td> <code title="">Barv;</code> </td> <td> U+02AE7 </td> <td> <span class=glyph title="">&#10983;</span> </td> <tr id=entity-Barwed><td> <code title="">Barwed;</code> </td> <td> U+02306 </td> <td> <span class=glyph title="">&#8966;</span> </td> <tr id=entity-Bcy><td> <code title="">Bcy;</code> </td> <td> U+00411 </td> <td> <span class=glyph title="">&#1041;</span> </td> <tr id=entity-Because><td> <code title="">Because;</code> </td> <td> U+02235 </td> <td> <span class=glyph title="">&#8757;</span> </td> <tr id=entity-Bernoullis><td> <code title="">Bernoullis;</code> </td> <td> U+0212C </td> <td> <span class=glyph title="">&#8492;</span> </td> <tr id=entity-Beta><td> <code title="">Beta;</code> </td> <td> U+00392 </td> <td> <span class=glyph title="">&Beta;</span> </td> <tr id=entity-Bfr><td> <code title="">Bfr;</code> </td> <td> U+1D505 </td> <td> <span class=glyph title="">&#120069;</span> </td> <tr id=entity-Bopf><td> <code title="">Bopf;</code> </td> <td> U+1D539 </td> <td> <span class=glyph title="">&#120121;</span> </td> <tr id=entity-Breve><td> <code title="">Breve;</code> </td> <td> U+002D8 </td> <td> <span class=glyph title="">&#728;</span> </td> <tr id=entity-Bscr><td> <code title="">Bscr;</code> </td> <td> U+0212C </td> <td> <span class=glyph title="">&#8492;</span> </td> <tr id=entity-Bumpeq><td> <code title="">Bumpeq;</code> </td> <td> U+0224E </td> <td> <span class=glyph title="">&#8782;</span> </td> <tr id=entity-CHcy><td> <code title="">CHcy;</code> </td> <td> U+00427 </td> <td> <span class=glyph title="">&#1063;</span> </td> <tr id=entity-COPY><td> <code title="">COPY;</code> </td> <td> U+000A9 </td> <td> <span class=glyph title="">&copy;</span> </td> <tr id=entity-Cacute><td> <code title="">Cacute;</code> </td> <td> U+00106 </td> <td> <span class=glyph title="">&#262;</span> </td> <tr id=entity-Cap><td> <code title="">Cap;</code> </td> <td> U+022D2 </td> <td> <span class=glyph title="">&#8914;</span> </td> <tr id=entity-CapitalDifferentialD><td> <code title="">CapitalDifferentialD;</code> </td> <td> U+02145 </td> <td> <span class=glyph title="">&#8517;</span> </td> <tr id=entity-Cayleys><td> <code title="">Cayleys;</code> </td> <td> U+0212D </td> <td> <span class=glyph title="">&#8493;</span> </td> <tr id=entity-Ccaron><td> <code title="">Ccaron;</code> </td> <td> U+0010C </td> <td> <span class=glyph title="">&#268;</span> </td> <tr id=entity-Ccedil><td> <code title="">Ccedil;</code> </td> <td> U+000C7 </td> <td> <span class=glyph title="">&Ccedil;</span> </td> <tr id=entity-Ccirc><td> <code title="">Ccirc;</code> </td> <td> U+00108 </td> <td> <span class=glyph title="">&#264;</span> </td> <tr id=entity-Cconint><td> <code title="">Cconint;</code> </td> <td> U+02230 </td> <td> <span class=glyph title="">&#8752;</span> </td> <tr id=entity-Cdot><td> <code title="">Cdot;</code> </td> <td> U+0010A </td> <td> <span class=glyph title="">&#266;</span> </td> <tr id=entity-Cedilla><td> <code title="">Cedilla;</code> </td> <td> U+000B8 </td> <td> <span class=glyph title="">&cedil;</span> </td> <tr id=entity-CenterDot><td> <code title="">CenterDot;</code> </td> <td> U+000B7 </td> <td> <span class=glyph title="">&middot;</span> </td> <tr id=entity-Cfr><td> <code title="">Cfr;</code> </td> <td> U+0212D </td> <td> <span class=glyph title="">&#8493;</span> </td> <tr id=entity-Chi><td> <code title="">Chi;</code> </td> <td> U+003A7 </td> <td> <span class=glyph title="">&Chi;</span> </td> <tr id=entity-CircleDot><td> <code title="">CircleDot;</code> </td> <td> U+02299 </td> <td> <span class=glyph title="">&#8857;</span> </td> <tr id=entity-CircleMinus><td> <code title="">CircleMinus;</code> </td> <td> U+02296 </td> <td> <span class=glyph title="">&#8854;</span> </td> <tr id=entity-CirclePlus><td> <code title="">CirclePlus;</code> </td> <td> U+02295 </td> <td> <span class=glyph title="">&oplus;</span> </td> <tr id=entity-CircleTimes><td> <code title="">CircleTimes;</code> </td> <td> U+02297 </td> <td> <span class=glyph title="">&otimes;</span> </td> <tr id=entity-ClockwiseContourIntegral><td> <code title="">ClockwiseContourIntegral;</code> </td> <td> U+02232 </td> <td> <span class=glyph title="">&#8754;</span> </td> <tr id=entity-CloseCurlyDoubleQuote><td> <code title="">CloseCurlyDoubleQuote;</code> </td> <td> U+0201D </td> <td> <span class=glyph title="">&rdquo;</span> </td> <tr id=entity-CloseCurlyQuote><td> <code title="">CloseCurlyQuote;</code> </td> <td> U+02019 </td> <td> <span class=glyph title="">&rsquo;</span> </td> <tr id=entity-Colon><td> <code title="">Colon;</code> </td> <td> U+02237 </td> <td> <span class=glyph title="">&#8759;</span> </td> <tr id=entity-Colone><td> <code title="">Colone;</code> </td> <td> U+02A74 </td> <td> <span class=glyph title="">&#10868;</span> </td> <tr id=entity-Congruent><td> <code title="">Congruent;</code> </td> <td> U+02261 </td> <td> <span class=glyph title="">&equiv;</span> </td> <tr id=entity-Conint><td> <code title="">Conint;</code> </td> <td> U+0222F </td> <td> <span class=glyph title="">&#8751;</span> </td> <tr id=entity-ContourIntegral><td> <code title="">ContourIntegral;</code> </td> <td> U+0222E </td> <td> <span class=glyph title="">&#8750;</span> </td> <tr id=entity-Copf><td> <code title="">Copf;</code> </td> <td> U+02102 </td> <td> <span class=glyph title="">&#8450;</span> </td> <tr id=entity-Coproduct><td> <code title="">Coproduct;</code> </td> <td> U+02210 </td> <td> <span class=glyph title="">&#8720;</span> </td> <tr id=entity-CounterClockwiseContourIntegral><td> <code title="">CounterClockwiseContourIntegral;</code> </td> <td> U+02233 </td> <td> <span class=glyph title="">&#8755;</span> </td> <tr id=entity-Cross><td> <code title="">Cross;</code> </td> <td> U+02A2F </td> <td> <span class=glyph title="">&#10799;</span> </td> <tr id=entity-Cscr><td> <code title="">Cscr;</code> </td> <td> U+1D49E </td> <td> <span class=glyph title="">&#119966;</span> </td> <tr id=entity-Cup><td> <code title="">Cup;</code> </td> <td> U+022D3 </td> <td> <span class=glyph title="">&#8915;</span> </td> <tr id=entity-CupCap><td> <code title="">CupCap;</code> </td> <td> U+0224D </td> <td> <span class=glyph title="">&#8781;</span> </td> <tr id=entity-DD><td> <code title="">DD;</code> </td> <td> U+02145 </td> <td> <span class=glyph title="">&#8517;</span> </td> <tr id=entity-DDotrahd><td> <code title="">DDotrahd;</code> </td> <td> U+02911 </td> <td> <span class=glyph title="">&#10513;</span> </td> <tr id=entity-DJcy><td> <code title="">DJcy;</code> </td> <td> U+00402 </td> <td> <span class=glyph title="">&#1026;</span> </td> <tr id=entity-DScy><td> <code title="">DScy;</code> </td> <td> U+00405 </td> <td> <span class=glyph title="">&#1029;</span> </td> <tr id=entity-DZcy><td> <code title="">DZcy;</code> </td> <td> U+0040F </td> <td> <span class=glyph title="">&#1039;</span> </td> <tr id=entity-Dagger><td> <code title="">Dagger;</code> </td> <td> U+02021 </td> <td> <span class=glyph title="">&Dagger;</span> </td> <tr id=entity-Darr><td> <code title="">Darr;</code> </td> <td> U+021A1 </td> <td> <span class=glyph title="">&#8609;</span> </td> <tr id=entity-Dashv><td> <code title="">Dashv;</code> </td> <td> U+02AE4 </td> <td> <span class=glyph title="">&#10980;</span> </td> <tr id=entity-Dcaron><td> <code title="">Dcaron;</code> </td> <td> U+0010E </td> <td> <span class=glyph title="">&#270;</span> </td> <tr id=entity-Dcy><td> <code title="">Dcy;</code> </td> <td> U+00414 </td> <td> <span class=glyph title="">&#1044;</span> </td> <tr id=entity-Del><td> <code title="">Del;</code> </td> <td> U+02207 </td> <td> <span class=glyph title="">&nabla;</span> </td> <tr id=entity-Delta><td> <code title="">Delta;</code> </td> <td> U+00394 </td> <td> <span class=glyph title="">&Delta;</span> </td> <tr id=entity-Dfr><td> <code title="">Dfr;</code> </td> <td> U+1D507 </td> <td> <span class=glyph title="">&#120071;</span> </td> <tr id=entity-DiacriticalAcute><td> <code title="">DiacriticalAcute;</code> </td> <td> U+000B4 </td> <td> <span class=glyph title="">&acute;</span> </td> <tr id=entity-DiacriticalDot><td> <code title="">DiacriticalDot;</code> </td> <td> U+002D9 </td> <td> <span class=glyph title="">&#729;</span> </td> <tr id=entity-DiacriticalDoubleAcute><td> <code title="">DiacriticalDoubleAcute;</code> </td> <td> U+002DD </td> <td> <span class=glyph title="">&#733;</span> </td> <tr id=entity-DiacriticalGrave><td> <code title="">DiacriticalGrave;</code> </td> <td> U+00060 </td> <td> <span class=glyph title="">`</span> </td> <tr id=entity-DiacriticalTilde><td> <code title="">DiacriticalTilde;</code> </td> <td> U+002DC </td> <td> <span class=glyph title="">&tilde;</span> </td> <tr id=entity-Diamond><td> <code title="">Diamond;</code> </td> <td> U+022C4 </td> <td> <span class=glyph title="">&#8900;</span> </td> <tr id=entity-DifferentialD><td> <code title="">DifferentialD;</code> </td> <td> U+02146 </td> <td> <span class=glyph title="">&#8518;</span> </td> <tr id=entity-Dopf><td> <code title="">Dopf;</code> </td> <td> U+1D53B </td> <td> <span class=glyph title="">&#120123;</span> </td> <tr id=entity-Dot><td> <code title="">Dot;</code> </td> <td> U+000A8 </td> <td> <span class=glyph title="">&uml;</span> </td> <tr id=entity-DotDot><td> <code title="">DotDot;</code> </td> <td> U+020DC </td> <td> <span class="glyph composition" title="">&#9676;&#8412;</span> </td> <tr id=entity-DotEqual><td> <code title="">DotEqual;</code> </td> <td> U+02250 </td> <td> <span class=glyph title="">&#8784;</span> </td> <tr id=entity-DoubleContourIntegral><td> <code title="">DoubleContourIntegral;</code> </td> <td> U+0222F </td> <td> <span class=glyph title="">&#8751;</span> </td> <tr id=entity-DoubleDot><td> <code title="">DoubleDot;</code> </td> <td> U+000A8 </td> <td> <span class=glyph title="">&uml;</span> </td> <tr id=entity-DoubleDownArrow><td> <code title="">DoubleDownArrow;</code> </td> <td> U+021D3 </td> <td> <span class=glyph title="">&dArr;</span> </td> <tr id=entity-DoubleLeftArrow><td> <code title="">DoubleLeftArrow;</code> </td> <td> U+021D0 </td> <td> <span class=glyph title="">&lArr;</span> </td> <tr id=entity-DoubleLeftRightArrow><td> <code title="">DoubleLeftRightArrow;</code> </td> <td> U+021D4 </td> <td> <span class=glyph title="">&hArr;</span> </td> <tr id=entity-DoubleLeftTee><td> <code title="">DoubleLeftTee;</code> </td> <td> U+02AE4 </td> <td> <span class=glyph title="">&#10980;</span> </td> <tr id=entity-DoubleLongLeftArrow><td> <code title="">DoubleLongLeftArrow;</code> </td> <td> U+027F8 </td> <td> <span class=glyph title="">&#10232;</span> </td> <tr id=entity-DoubleLongLeftRightArrow><td> <code title="">DoubleLongLeftRightArrow;</code> </td> <td> U+027FA </td> <td> <span class=glyph title="">&#10234;</span> </td> <tr id=entity-DoubleLongRightArrow><td> <code title="">DoubleLongRightArrow;</code> </td> <td> U+027F9 </td> <td> <span class=glyph title="">&#10233;</span> </td> <tr id=entity-DoubleRightArrow><td> <code title="">DoubleRightArrow;</code> </td> <td> U+021D2 </td> <td> <span class=glyph title="">&rArr;</span> </td> <tr id=entity-DoubleRightTee><td> <code title="">DoubleRightTee;</code> </td> <td> U+022A8 </td> <td> <span class=glyph title="">&#8872;</span> </td> <tr id=entity-DoubleUpArrow><td> <code title="">DoubleUpArrow;</code> </td> <td> U+021D1 </td> <td> <span class=glyph title="">&uArr;</span> </td> <tr id=entity-DoubleUpDownArrow><td> <code title="">DoubleUpDownArrow;</code> </td> <td> U+021D5 </td> <td> <span class=glyph title="">&#8661;</span> </td> <tr id=entity-DoubleVerticalBar><td> <code title="">DoubleVerticalBar;</code> </td> <td> U+02225 </td> <td> <span class=glyph title="">&#8741;</span> </td> <tr id=entity-DownArrow><td> <code title="">DownArrow;</code> </td> <td> U+02193 </td> <td> <span class=glyph title="">&darr;</span> </td> <tr id=entity-DownArrowBar><td> <code title="">DownArrowBar;</code> </td> <td> U+02913 </td> <td> <span class=glyph title="">&#10515;</span> </td> <tr id=entity-DownArrowUpArrow><td> <code title="">DownArrowUpArrow;</code> </td> <td> U+021F5 </td> <td> <span class=glyph title="">&#8693;</span> </td> <tr id=entity-DownBreve><td> <code title="">DownBreve;</code> </td> <td> U+00311 </td> <td> <span class="glyph composition" title="">&#9676;&#785;</span> </td> <tr id=entity-DownLeftRightVector><td> <code title="">DownLeftRightVector;</code> </td> <td> U+02950 </td> <td> <span class=glyph title="">&#10576;</span> </td> <tr id=entity-DownLeftTeeVector><td> <code title="">DownLeftTeeVector;</code> </td> <td> U+0295E </td> <td> <span class=glyph title="">&#10590;</span> </td> <tr id=entity-DownLeftVector><td> <code title="">DownLeftVector;</code> </td> <td> U+021BD </td> <td> <span class=glyph title="">&#8637;</span> </td> <tr id=entity-DownLeftVectorBar><td> <code title="">DownLeftVectorBar;</code> </td> <td> U+02956 </td> <td> <span class=glyph title="">&#10582;</span> </td> <tr id=entity-DownRightTeeVector><td> <code title="">DownRightTeeVector;</code> </td> <td> U+0295F </td> <td> <span class=glyph title="">&#10591;</span> </td> <tr id=entity-DownRightVector><td> <code title="">DownRightVector;</code> </td> <td> U+021C1 </td> <td> <span class=glyph title="">&#8641;</span> </td> <tr id=entity-DownRightVectorBar><td> <code title="">DownRightVectorBar;</code> </td> <td> U+02957 </td> <td> <span class=glyph title="">&#10583;</span> </td> <tr id=entity-DownTee><td> <code title="">DownTee;</code> </td> <td> U+022A4 </td> <td> <span class=glyph title="">&#8868;</span> </td> <tr id=entity-DownTeeArrow><td> <code title="">DownTeeArrow;</code> </td> <td> U+021A7 </td> <td> <span class=glyph title="">&#8615;</span> </td> <tr id=entity-Downarrow><td> <code title="">Downarrow;</code> </td> <td> U+021D3 </td> <td> <span class=glyph title="">&dArr;</span> </td> <tr id=entity-Dscr><td> <code title="">Dscr;</code> </td> <td> U+1D49F </td> <td> <span class=glyph title="">&#119967;</span> </td> <tr id=entity-Dstrok><td> <code title="">Dstrok;</code> </td> <td> U+00110 </td> <td> <span class=glyph title="">&#272;</span> </td> <tr id=entity-ENG><td> <code title="">ENG;</code> </td> <td> U+0014A </td> <td> <span class=glyph title="">&#330;</span> </td> <tr id=entity-ETH><td> <code title="">ETH;</code> </td> <td> U+000D0 </td> <td> <span class=glyph title="">&ETH;</span> </td> <tr id=entity-Eacute><td> <code title="">Eacute;</code> </td> <td> U+000C9 </td> <td> <span class=glyph title="">&Eacute;</span> </td> <tr id=entity-Ecaron><td> <code title="">Ecaron;</code> </td> <td> U+0011A </td> <td> <span class=glyph title="">&#282;</span> </td> <tr id=entity-Ecirc><td> <code title="">Ecirc;</code> </td> <td> U+000CA </td> <td> <span class=glyph title="">&Ecirc;</span> </td> <tr id=entity-Ecy><td> <code title="">Ecy;</code> </td> <td> U+0042D </td> <td> <span class=glyph title="">&#1069;</span> </td> <tr id=entity-Edot><td> <code title="">Edot;</code> </td> <td> U+00116 </td> <td> <span class=glyph title="">&#278;</span> </td> <tr id=entity-Efr><td> <code title="">Efr;</code> </td> <td> U+1D508 </td> <td> <span class=glyph title="">&#120072;</span> </td> <tr id=entity-Egrave><td> <code title="">Egrave;</code> </td> <td> U+000C8 </td> <td> <span class=glyph title="">&Egrave;</span> </td> <tr id=entity-Element><td> <code title="">Element;</code> </td> <td> U+02208 </td> <td> <span class=glyph title="">&isin;</span> </td> <tr id=entity-Emacr><td> <code title="">Emacr;</code> </td> <td> U+00112 </td> <td> <span class=glyph title="">&#274;</span> </td> <tr id=entity-EmptySmallSquare><td> <code title="">EmptySmallSquare;</code> </td> <td> U+025FB </td> <td> <span class=glyph title="">&#9723;</span> </td> <tr id=entity-EmptyVerySmallSquare><td> <code title="">EmptyVerySmallSquare;</code> </td> <td> U+025AB </td> <td> <span class=glyph title="">&#9643;</span> </td> <tr id=entity-Eogon><td> <code title="">Eogon;</code> </td> <td> U+00118 </td> <td> <span class=glyph title="">&#280;</span> </td> <tr id=entity-Eopf><td> <code title="">Eopf;</code> </td> <td> U+1D53C </td> <td> <span class=glyph title="">&#120124;</span> </td> <tr id=entity-Epsilon><td> <code title="">Epsilon;</code> </td> <td> U+00395 </td> <td> <span class=glyph title="">&Epsilon;</span> </td> <tr id=entity-Equal><td> <code title="">Equal;</code> </td> <td> U+02A75 </td> <td> <span class=glyph title="">&#10869;</span> </td> <tr id=entity-EqualTilde><td> <code title="">EqualTilde;</code> </td> <td> U+02242 </td> <td> <span class=glyph title="">&#8770;</span> </td> <tr id=entity-Equilibrium><td> <code title="">Equilibrium;</code> </td> <td> U+021CC </td> <td> <span class=glyph title="">&#8652;</span> </td> <tr id=entity-Escr><td> <code title="">Escr;</code> </td> <td> U+02130 </td> <td> <span class=glyph title="">&#8496;</span> </td> <tr id=entity-Esim><td> <code title="">Esim;</code> </td> <td> U+02A73 </td> <td> <span class=glyph title="">&#10867;</span> </td> <tr id=entity-Eta><td> <code title="">Eta;</code> </td> <td> U+00397 </td> <td> <span class=glyph title="">&Eta;</span> </td> <tr id=entity-Euml><td> <code title="">Euml;</code> </td> <td> U+000CB </td> <td> <span class=glyph title="">&Euml;</span> </td> <tr id=entity-Exists><td> <code title="">Exists;</code> </td> <td> U+02203 </td> <td> <span class=glyph title="">&exist;</span> </td> <tr id=entity-ExponentialE><td> <code title="">ExponentialE;</code> </td> <td> U+02147 </td> <td> <span class=glyph title="">&#8519;</span> </td> <tr id=entity-Fcy><td> <code title="">Fcy;</code> </td> <td> U+00424 </td> <td> <span class=glyph title="">&#1060;</span> </td> <tr id=entity-Ffr><td> <code title="">Ffr;</code> </td> <td> U+1D509 </td> <td> <span class=glyph title="">&#120073;</span> </td> <tr id=entity-FilledSmallSquare><td> <code title="">FilledSmallSquare;</code> </td> <td> U+025FC </td> <td> <span class=glyph title="">&#9724;</span> </td> <tr id=entity-FilledVerySmallSquare><td> <code title="">FilledVerySmallSquare;</code> </td> <td> U+025AA </td> <td> <span class=glyph title="">&#9642;</span> </td> <tr id=entity-Fopf><td> <code title="">Fopf;</code> </td> <td> U+1D53D </td> <td> <span class=glyph title="">&#120125;</span> </td> <tr id=entity-ForAll><td> <code title="">ForAll;</code> </td> <td> U+02200 </td> <td> <span class=glyph title="">&forall;</span> </td> <tr id=entity-Fouriertrf><td> <code title="">Fouriertrf;</code> </td> <td> U+02131 </td> <td> <span class=glyph title="">&#8497;</span> </td> <tr id=entity-Fscr><td> <code title="">Fscr;</code> </td> <td> U+02131 </td> <td> <span class=glyph title="">&#8497;</span> </td> <tr id=entity-GJcy><td> <code title="">GJcy;</code> </td> <td> U+00403 </td> <td> <span class=glyph title="">&#1027;</span> </td> <tr id=entity-GT><td> <code title="">GT;</code> </td> <td> U+0003E </td> <td> <span class=glyph title="">&gt;</span> </td> <tr id=entity-Gamma><td> <code title="">Gamma;</code> </td> <td> U+00393 </td> <td> <span class=glyph title="">&Gamma;</span> </td> <tr id=entity-Gammad><td> <code title="">Gammad;</code> </td> <td> U+003DC </td> <td> <span class=glyph title="">&#988;</span> </td> <tr id=entity-Gbreve><td> <code title="">Gbreve;</code> </td> <td> U+0011E </td> <td> <span class=glyph title="">&#286;</span> </td> <tr id=entity-Gcedil><td> <code title="">Gcedil;</code> </td> <td> U+00122 </td> <td> <span class=glyph title="">&#290;</span> </td> <tr id=entity-Gcirc><td> <code title="">Gcirc;</code> </td> <td> U+0011C </td> <td> <span class=glyph title="">&#284;</span> </td> <tr id=entity-Gcy><td> <code title="">Gcy;</code> </td> <td> U+00413 </td> <td> <span class=glyph title="">&#1043;</span> </td> <tr id=entity-Gdot><td> <code title="">Gdot;</code> </td> <td> U+00120 </td> <td> <span class=glyph title="">&#288;</span> </td> <tr id=entity-Gfr><td> <code title="">Gfr;</code> </td> <td> U+1D50A </td> <td> <span class=glyph title="">&#120074;</span> </td> <tr id=entity-Gg><td> <code title="">Gg;</code> </td> <td> U+022D9 </td> <td> <span class=glyph title="">&#8921;</span> </td> <tr id=entity-Gopf><td> <code title="">Gopf;</code> </td> <td> U+1D53E </td> <td> <span class=glyph title="">&#120126;</span> </td> <tr id=entity-GreaterEqual><td> <code title="">GreaterEqual;</code> </td> <td> U+02265 </td> <td> <span class=glyph title="">&ge;</span> </td> <tr id=entity-GreaterEqualLess><td> <code title="">GreaterEqualLess;</code> </td> <td> U+022DB </td> <td> <span class=glyph title="">&#8923;</span> </td> <tr id=entity-GreaterFullEqual><td> <code title="">GreaterFullEqual;</code> </td> <td> U+02267 </td> <td> <span class=glyph title="">&#8807;</span> </td> <tr id=entity-GreaterGreater><td> <code title="">GreaterGreater;</code> </td> <td> U+02AA2 </td> <td> <span class=glyph title="">&#10914;</span> </td> <tr id=entity-GreaterLess><td> <code title="">GreaterLess;</code> </td> <td> U+02277 </td> <td> <span class=glyph title="">&#8823;</span> </td> <tr id=entity-GreaterSlantEqual><td> <code title="">GreaterSlantEqual;</code> </td> <td> U+02A7E </td> <td> <span class=glyph title="">&#10878;</span> </td> <tr id=entity-GreaterTilde><td> <code title="">GreaterTilde;</code> </td> <td> U+02273 </td> <td> <span class=glyph title="">&#8819;</span> </td> <tr id=entity-Gscr><td> <code title="">Gscr;</code> </td> <td> U+1D4A2 </td> <td> <span class=glyph title="">&#119970;</span> </td> <tr id=entity-Gt><td> <code title="">Gt;</code> </td> <td> U+0226B </td> <td> <span class=glyph title="">&#8811;</span> </td> <tr id=entity-HARDcy><td> <code title="">HARDcy;</code> </td> <td> U+0042A </td> <td> <span class=glyph title="">&#1066;</span> </td> <tr id=entity-Hacek><td> <code title="">Hacek;</code> </td> <td> U+002C7 </td> <td> <span class=glyph title="">&#711;</span> </td> <tr id=entity-Hat><td> <code title="">Hat;</code> </td> <td> U+0005E </td> <td> <span class=glyph title="">^</span> </td> <tr id=entity-Hcirc><td> <code title="">Hcirc;</code> </td> <td> U+00124 </td> <td> <span class=glyph title="">&#292;</span> </td> <tr id=entity-Hfr><td> <code title="">Hfr;</code> </td> <td> U+0210C </td> <td> <span class=glyph title="">&#8460;</span> </td> <tr id=entity-HilbertSpace><td> <code title="">HilbertSpace;</code> </td> <td> U+0210B </td> <td> <span class=glyph title="">&#8459;</span> </td> <tr id=entity-Hopf><td> <code title="">Hopf;</code> </td> <td> U+0210D </td> <td> <span class=glyph title="">&#8461;</span> </td> <tr id=entity-HorizontalLine><td> <code title="">HorizontalLine;</code> </td> <td> U+02500 </td> <td> <span class=glyph title="">&#9472;</span> </td> <tr id=entity-Hscr><td> <code title="">Hscr;</code> </td> <td> U+0210B </td> <td> <span class=glyph title="">&#8459;</span> </td> <tr id=entity-Hstrok><td> <code title="">Hstrok;</code> </td> <td> U+00126 </td> <td> <span class=glyph title="">&#294;</span> </td> <tr id=entity-HumpDownHump><td> <code title="">HumpDownHump;</code> </td> <td> U+0224E </td> <td> <span class=glyph title="">&#8782;</span> </td> <tr id=entity-HumpEqual><td> <code title="">HumpEqual;</code> </td> <td> U+0224F </td> <td> <span class=glyph title="">&#8783;</span> </td> <tr id=entity-IEcy><td> <code title="">IEcy;</code> </td> <td> U+00415 </td> <td> <span class=glyph title="">&#1045;</span> </td> <tr id=entity-IJlig><td> <code title="">IJlig;</code> </td> <td> U+00132 </td> <td> <span class=glyph title="">&#306;</span> </td> <tr id=entity-IOcy><td> <code title="">IOcy;</code> </td> <td> U+00401 </td> <td> <span class=glyph title="">&#1025;</span> </td> <tr id=entity-Iacute><td> <code title="">Iacute;</code> </td> <td> U+000CD </td> <td> <span class=glyph title="">&Iacute;</span> </td> <tr id=entity-Icirc><td> <code title="">Icirc;</code> </td> <td> U+000CE </td> <td> <span class=glyph title="">&Icirc;</span> </td> <tr id=entity-Icy><td> <code title="">Icy;</code> </td> <td> U+00418 </td> <td> <span class=glyph title="">&#1048;</span> </td> <tr id=entity-Idot><td> <code title="">Idot;</code> </td> <td> U+00130 </td> <td> <span class=glyph title="">&#304;</span> </td> <tr id=entity-Ifr><td> <code title="">Ifr;</code> </td> <td> U+02111 </td> <td> <span class=glyph title="">&image;</span> </td> <tr id=entity-Igrave><td> <code title="">Igrave;</code> </td> <td> U+000CC </td> <td> <span class=glyph title="">&Igrave;</span> </td> <tr id=entity-Im><td> <code title="">Im;</code> </td> <td> U+02111 </td> <td> <span class=glyph title="">&image;</span> </td> <tr id=entity-Imacr><td> <code title="">Imacr;</code> </td> <td> U+0012A </td> <td> <span class=glyph title="">&#298;</span> </td> <tr id=entity-ImaginaryI><td> <code title="">ImaginaryI;</code> </td> <td> U+02148 </td> <td> <span class=glyph title="">&#8520;</span> </td> <tr id=entity-Implies><td> <code title="">Implies;</code> </td> <td> U+021D2 </td> <td> <span class=glyph title="">&rArr;</span> </td> <tr id=entity-Int><td> <code title="">Int;</code> </td> <td> U+0222C </td> <td> <span class=glyph title="">&#8748;</span> </td> <tr id=entity-Integral><td> <code title="">Integral;</code> </td> <td> U+0222B </td> <td> <span class=glyph title="">&int;</span> </td> <tr id=entity-Intersection><td> <code title="">Intersection;</code> </td> <td> U+022C2 </td> <td> <span class=glyph title="">&#8898;</span> </td> <tr id=entity-InvisibleComma><td> <code title="">InvisibleComma;</code> </td> <td> U+02063 </td> <td> <span class=glyph title="">&#8291;</span> </td> <tr id=entity-InvisibleTimes><td> <code title="">InvisibleTimes;</code> </td> <td> U+02062 </td> <td> <span class=glyph title="">&#8290;</span> </td> <tr id=entity-Iogon><td> <code title="">Iogon;</code> </td> <td> U+0012E </td> <td> <span class=glyph title="">&#302;</span> </td> <tr id=entity-Iopf><td> <code title="">Iopf;</code> </td> <td> U+1D540 </td> <td> <span class=glyph title="">&#120128;</span> </td> <tr id=entity-Iota><td> <code title="">Iota;</code> </td> <td> U+00399 </td> <td> <span class=glyph title="">&Iota;</span> </td> <tr id=entity-Iscr><td> <code title="">Iscr;</code> </td> <td> U+02110 </td> <td> <span class=glyph title="">&#8464;</span> </td> <tr id=entity-Itilde><td> <code title="">Itilde;</code> </td> <td> U+00128 </td> <td> <span class=glyph title="">&#296;</span> </td> <tr id=entity-Iukcy><td> <code title="">Iukcy;</code> </td> <td> U+00406 </td> <td> <span class=glyph title="">&#1030;</span> </td> <tr id=entity-Iuml><td> <code title="">Iuml;</code> </td> <td> U+000CF </td> <td> <span class=glyph title="">&Iuml;</span> </td> <tr id=entity-Jcirc><td> <code title="">Jcirc;</code> </td> <td> U+00134 </td> <td> <span class=glyph title="">&#308;</span> </td> <tr id=entity-Jcy><td> <code title="">Jcy;</code> </td> <td> U+00419 </td> <td> <span class=glyph title="">&#1049;</span> </td> <tr id=entity-Jfr><td> <code title="">Jfr;</code> </td> <td> U+1D50D </td> <td> <span class=glyph title="">&#120077;</span> </td> <tr id=entity-Jopf><td> <code title="">Jopf;</code> </td> <td> U+1D541 </td> <td> <span class=glyph title="">&#120129;</span> </td> <tr id=entity-Jscr><td> <code title="">Jscr;</code> </td> <td> U+1D4A5 </td> <td> <span class=glyph title="">&#119973;</span> </td> <tr id=entity-Jsercy><td> <code title="">Jsercy;</code> </td> <td> U+00408 </td> <td> <span class=glyph title="">&#1032;</span> </td> <tr id=entity-Jukcy><td> <code title="">Jukcy;</code> </td> <td> U+00404 </td> <td> <span class=glyph title="">&#1028;</span> </td> <tr id=entity-KHcy><td> <code title="">KHcy;</code> </td> <td> U+00425 </td> <td> <span class=glyph title="">&#1061;</span> </td> <tr id=entity-KJcy><td> <code title="">KJcy;</code> </td> <td> U+0040C </td> <td> <span class=glyph title="">&#1036;</span> </td> <tr id=entity-Kappa><td> <code title="">Kappa;</code> </td> <td> U+0039A </td> <td> <span class=glyph title="">&Kappa;</span> </td> <tr id=entity-Kcedil><td> <code title="">Kcedil;</code> </td> <td> U+00136 </td> <td> <span class=glyph title="">&#310;</span> </td> <tr id=entity-Kcy><td> <code title="">Kcy;</code> </td> <td> U+0041A </td> <td> <span class=glyph title="">&#1050;</span> </td> <tr id=entity-Kfr><td> <code title="">Kfr;</code> </td> <td> U+1D50E </td> <td> <span class=glyph title="">&#120078;</span> </td> <tr id=entity-Kopf><td> <code title="">Kopf;</code> </td> <td> U+1D542 </td> <td> <span class=glyph title="">&#120130;</span> </td> <tr id=entity-Kscr><td> <code title="">Kscr;</code> </td> <td> U+1D4A6 </td> <td> <span class=glyph title="">&#119974;</span> </td> <tr id=entity-LJcy><td> <code title="">LJcy;</code> </td> <td> U+00409 </td> <td> <span class=glyph title="">&#1033;</span> </td> <tr id=entity-LT><td> <code title="">LT;</code> </td> <td> U+0003C </td> <td> <span class=glyph title="">&lt;</span> </td> <tr id=entity-Lacute><td> <code title="">Lacute;</code> </td> <td> U+00139 </td> <td> <span class=glyph title="">&#313;</span> </td> <tr id=entity-Lambda><td> <code title="">Lambda;</code> </td> <td> U+0039B </td> <td> <span class=glyph title="">&Lambda;</span> </td> <tr id=entity-Lang><td> <code title="">Lang;</code> </td> <td> U+027EA </td> <td> <span class=glyph title="">&#10218;</span> </td> <tr id=entity-Laplacetrf><td> <code title="">Laplacetrf;</code> </td> <td> U+02112 </td> <td> <span class=glyph title="">&#8466;</span> </td> <tr id=entity-Larr><td> <code title="">Larr;</code> </td> <td> U+0219E </td> <td> <span class=glyph title="">&#8606;</span> </td> <tr id=entity-Lcaron><td> <code title="">Lcaron;</code> </td> <td> U+0013D </td> <td> <span class=glyph title="">&#317;</span> </td> <tr id=entity-Lcedil><td> <code title="">Lcedil;</code> </td> <td> U+0013B </td> <td> <span class=glyph title="">&#315;</span> </td> <tr id=entity-Lcy><td> <code title="">Lcy;</code> </td> <td> U+0041B </td> <td> <span class=glyph title="">&#1051;</span> </td> <tr id=entity-LeftAngleBracket><td> <code title="">LeftAngleBracket;</code> </td> <td> U+027E8 </td> <td> <span class=glyph title="">&lang;</span> </td> <tr id=entity-LeftArrow><td> <code title="">LeftArrow;</code> </td> <td> U+02190 </td> <td> <span class=glyph title="">&larr;</span> </td> <tr id=entity-LeftArrowBar><td> <code title="">LeftArrowBar;</code> </td> <td> U+021E4 </td> <td> <span class=glyph title="">&#8676;</span> </td> <tr id=entity-LeftArrowRightArrow><td> <code title="">LeftArrowRightArrow;</code> </td> <td> U+021C6 </td> <td> <span class=glyph title="">&#8646;</span> </td> <tr id=entity-LeftCeiling><td> <code title="">LeftCeiling;</code> </td> <td> U+02308 </td> <td> <span class=glyph title="">&lceil;</span> </td> <tr id=entity-LeftDoubleBracket><td> <code title="">LeftDoubleBracket;</code> </td> <td> U+027E6 </td> <td> <span class=glyph title="">&#10214;</span> </td> <tr id=entity-LeftDownTeeVector><td> <code title="">LeftDownTeeVector;</code> </td> <td> U+02961 </td> <td> <span class=glyph title="">&#10593;</span> </td> <tr id=entity-LeftDownVector><td> <code title="">LeftDownVector;</code> </td> <td> U+021C3 </td> <td> <span class=glyph title="">&#8643;</span> </td> <tr id=entity-LeftDownVectorBar><td> <code title="">LeftDownVectorBar;</code> </td> <td> U+02959 </td> <td> <span class=glyph title="">&#10585;</span> </td> <tr id=entity-LeftFloor><td> <code title="">LeftFloor;</code> </td> <td> U+0230A </td> <td> <span class=glyph title="">&lfloor;</span> </td> <tr id=entity-LeftRightArrow><td> <code title="">LeftRightArrow;</code> </td> <td> U+02194 </td> <td> <span class=glyph title="">&harr;</span> </td> <tr id=entity-LeftRightVector><td> <code title="">LeftRightVector;</code> </td> <td> U+0294E </td> <td> <span class=glyph title="">&#10574;</span> </td> <tr id=entity-LeftTee><td> <code title="">LeftTee;</code> </td> <td> U+022A3 </td> <td> <span class=glyph title="">&#8867;</span> </td> <tr id=entity-LeftTeeArrow><td> <code title="">LeftTeeArrow;</code> </td> <td> U+021A4 </td> <td> <span class=glyph title="">&#8612;</span> </td> <tr id=entity-LeftTeeVector><td> <code title="">LeftTeeVector;</code> </td> <td> U+0295A </td> <td> <span class=glyph title="">&#10586;</span> </td> <tr id=entity-LeftTriangle><td> <code title="">LeftTriangle;</code> </td> <td> U+022B2 </td> <td> <span class=glyph title="">&#8882;</span> </td> <tr id=entity-LeftTriangleBar><td> <code title="">LeftTriangleBar;</code> </td> <td> U+029CF </td> <td> <span class=glyph title="">&#10703;</span> </td> <tr id=entity-LeftTriangleEqual><td> <code title="">LeftTriangleEqual;</code> </td> <td> U+022B4 </td> <td> <span class=glyph title="">&#8884;</span> </td> <tr id=entity-LeftUpDownVector><td> <code title="">LeftUpDownVector;</code> </td> <td> U+02951 </td> <td> <span class=glyph title="">&#10577;</span> </td> <tr id=entity-LeftUpTeeVector><td> <code title="">LeftUpTeeVector;</code> </td> <td> U+02960 </td> <td> <span class=glyph title="">&#10592;</span> </td> <tr id=entity-LeftUpVector><td> <code title="">LeftUpVector;</code> </td> <td> U+021BF </td> <td> <span class=glyph title="">&#8639;</span> </td> <tr id=entity-LeftUpVectorBar><td> <code title="">LeftUpVectorBar;</code> </td> <td> U+02958 </td> <td> <span class=glyph title="">&#10584;</span> </td> <tr id=entity-LeftVector><td> <code title="">LeftVector;</code> </td> <td> U+021BC </td> <td> <span class=glyph title="">&#8636;</span> </td> <tr id=entity-LeftVectorBar><td> <code title="">LeftVectorBar;</code> </td> <td> U+02952 </td> <td> <span class=glyph title="">&#10578;</span> </td> <tr id=entity-Leftarrow><td> <code title="">Leftarrow;</code> </td> <td> U+021D0 </td> <td> <span class=glyph title="">&lArr;</span> </td> <tr id=entity-Leftrightarrow><td> <code title="">Leftrightarrow;</code> </td> <td> U+021D4 </td> <td> <span class=glyph title="">&hArr;</span> </td> <tr id=entity-LessEqualGreater><td> <code title="">LessEqualGreater;</code> </td> <td> U+022DA </td> <td> <span class=glyph title="">&#8922;</span> </td> <tr id=entity-LessFullEqual><td> <code title="">LessFullEqual;</code> </td> <td> U+02266 </td> <td> <span class=glyph title="">&#8806;</span> </td> <tr id=entity-LessGreater><td> <code title="">LessGreater;</code> </td> <td> U+02276 </td> <td> <span class=glyph title="">&#8822;</span> </td> <tr id=entity-LessLess><td> <code title="">LessLess;</code> </td> <td> U+02AA1 </td> <td> <span class=glyph title="">&#10913;</span> </td> <tr id=entity-LessSlantEqual><td> <code title="">LessSlantEqual;</code> </td> <td> U+02A7D </td> <td> <span class=glyph title="">&#10877;</span> </td> <tr id=entity-LessTilde><td> <code title="">LessTilde;</code> </td> <td> U+02272 </td> <td> <span class=glyph title="">&#8818;</span> </td> <tr id=entity-Lfr><td> <code title="">Lfr;</code> </td> <td> U+1D50F </td> <td> <span class=glyph title="">&#120079;</span> </td> <tr id=entity-Ll><td> <code title="">Ll;</code> </td> <td> U+022D8 </td> <td> <span class=glyph title="">&#8920;</span> </td> <tr id=entity-Lleftarrow><td> <code title="">Lleftarrow;</code> </td> <td> U+021DA </td> <td> <span class=glyph title="">&#8666;</span> </td> <tr id=entity-Lmidot><td> <code title="">Lmidot;</code> </td> <td> U+0013F </td> <td> <span class=glyph title="">&#319;</span> </td> <tr id=entity-LongLeftArrow><td> <code title="">LongLeftArrow;</code> </td> <td> U+027F5 </td> <td> <span class=glyph title="">&#10229;</span> </td> <tr id=entity-LongLeftRightArrow><td> <code title="">LongLeftRightArrow;</code> </td> <td> U+027F7 </td> <td> <span class=glyph title="">&#10231;</span> </td> <tr id=entity-LongRightArrow><td> <code title="">LongRightArrow;</code> </td> <td> U+027F6 </td> <td> <span class=glyph title="">&#10230;</span> </td> <tr id=entity-Longleftarrow><td> <code title="">Longleftarrow;</code> </td> <td> U+027F8 </td> <td> <span class=glyph title="">&#10232;</span> </td> <tr id=entity-Longleftrightarrow><td> <code title="">Longleftrightarrow;</code> </td> <td> U+027FA </td> <td> <span class=glyph title="">&#10234;</span> </td> <tr id=entity-Longrightarrow><td> <code title="">Longrightarrow;</code> </td> <td> U+027F9 </td> <td> <span class=glyph title="">&#10233;</span> </td> <tr id=entity-Lopf><td> <code title="">Lopf;</code> </td> <td> U+1D543 </td> <td> <span class=glyph title="">&#120131;</span> </td> <tr id=entity-LowerLeftArrow><td> <code title="">LowerLeftArrow;</code> </td> <td> U+02199 </td> <td> <span class=glyph title="">&#8601;</span> </td> <tr id=entity-LowerRightArrow><td> <code title="">LowerRightArrow;</code> </td> <td> U+02198 </td> <td> <span class=glyph title="">&#8600;</span> </td> <tr id=entity-Lscr><td> <code title="">Lscr;</code> </td> <td> U+02112 </td> <td> <span class=glyph title="">&#8466;</span> </td> <tr id=entity-Lsh><td> <code title="">Lsh;</code> </td> <td> U+021B0 </td> <td> <span class=glyph title="">&#8624;</span> </td> <tr id=entity-Lstrok><td> <code title="">Lstrok;</code> </td> <td> U+00141 </td> <td> <span class=glyph title="">&#321;</span> </td> <tr id=entity-Lt><td> <code title="">Lt;</code> </td> <td> U+0226A </td> <td> <span class=glyph title="">&#8810;</span> </td> <tr id=entity-Map><td> <code title="">Map;</code> </td> <td> U+02905 </td> <td> <span class=glyph title="">&#10501;</span> </td> <tr id=entity-Mcy><td> <code title="">Mcy;</code> </td> <td> U+0041C </td> <td> <span class=glyph title="">&#1052;</span> </td> <tr id=entity-MediumSpace><td> <code title="">MediumSpace;</code> </td> <td> U+0205F </td> <td> <span class=glyph title="">&#8287;</span> </td> <tr id=entity-Mellintrf><td> <code title="">Mellintrf;</code> </td> <td> U+02133 </td> <td> <span class=glyph title="">&#8499;</span> </td> <tr id=entity-Mfr><td> <code title="">Mfr;</code> </td> <td> U+1D510 </td> <td> <span class=glyph title="">&#120080;</span> </td> <tr id=entity-MinusPlus><td> <code title="">MinusPlus;</code> </td> <td> U+02213 </td> <td> <span class=glyph title="">&#8723;</span> </td> <tr id=entity-Mopf><td> <code title="">Mopf;</code> </td> <td> U+1D544 </td> <td> <span class=glyph title="">&#120132;</span> </td> <tr id=entity-Mscr><td> <code title="">Mscr;</code> </td> <td> U+02133 </td> <td> <span class=glyph title="">&#8499;</span> </td> <tr id=entity-Mu><td> <code title="">Mu;</code> </td> <td> U+0039C </td> <td> <span class=glyph title="">&Mu;</span> </td> <tr id=entity-NJcy><td> <code title="">NJcy;</code> </td> <td> U+0040A </td> <td> <span class=glyph title="">&#1034;</span> </td> <tr id=entity-Nacute><td> <code title="">Nacute;</code> </td> <td> U+00143 </td> <td> <span class=glyph title="">&#323;</span> </td> <tr id=entity-Ncaron><td> <code title="">Ncaron;</code> </td> <td> U+00147 </td> <td> <span class=glyph title="">&#327;</span> </td> <tr id=entity-Ncedil><td> <code title="">Ncedil;</code> </td> <td> U+00145 </td> <td> <span class=glyph title="">&#325;</span> </td> <tr id=entity-Ncy><td> <code title="">Ncy;</code> </td> <td> U+0041D </td> <td> <span class=glyph title="">&#1053;</span> </td> <tr id=entity-NegativeMediumSpace><td> <code title="">NegativeMediumSpace;</code> </td> <td> U+0200B </td> <td> <span class=glyph title="">&#8203;</span> </td> <tr id=entity-NegativeThickSpace><td> <code title="">NegativeThickSpace;</code> </td> <td> U+0200B </td> <td> <span class=glyph title="">&#8203;</span> </td> <tr id=entity-NegativeThinSpace><td> <code title="">NegativeThinSpace;</code> </td> <td> U+0200B </td> <td> <span class=glyph title="">&#8203;</span> </td> <tr id=entity-NegativeVeryThinSpace><td> <code title="">NegativeVeryThinSpace;</code> </td> <td> U+0200B </td> <td> <span class=glyph title="">&#8203;</span> </td> <tr id=entity-NestedGreaterGreater><td> <code title="">NestedGreaterGreater;</code> </td> <td> U+0226B </td> <td> <span class=glyph title="">&#8811;</span> </td> <tr id=entity-NestedLessLess><td> <code title="">NestedLessLess;</code> </td> <td> U+0226A </td> <td> <span class=glyph title="">&#8810;</span> </td> <tr id=entity-NewLine><td> <code title="">NewLine;</code> </td> <td> U+0000A </td> <td> <span class="glyph control" title="">&#9226;</span> </td> <tr id=entity-Nfr><td> <code title="">Nfr;</code> </td> <td> U+1D511 </td> <td> <span class=glyph title="">&#120081;</span> </td> <tr id=entity-NoBreak><td> <code title="">NoBreak;</code> </td> <td> U+02060 </td> <td> <span class=glyph title="">&#8288;</span> </td> <tr id=entity-NonBreakingSpace><td> <code title="">NonBreakingSpace;</code> </td> <td> U+000A0 </td> <td> <span class=glyph title="">&nbsp;</span> </td> <tr id=entity-Nopf><td> <code title="">Nopf;</code> </td> <td> U+02115 </td> <td> <span class=glyph title="">&#8469;</span> </td> <tr id=entity-Not><td> <code title="">Not;</code> </td> <td> U+02AEC </td> <td> <span class=glyph title="">&#10988;</span> </td> <tr id=entity-NotCongruent><td> <code title="">NotCongruent;</code> </td> <td> U+02262 </td> <td> <span class=glyph title="">&#8802;</span> </td> <tr id=entity-NotCupCap><td> <code title="">NotCupCap;</code> </td> <td> U+0226D </td> <td> <span class=glyph title="">&#8813;</span> </td> <tr id=entity-NotDoubleVerticalBar><td> <code title="">NotDoubleVerticalBar;</code> </td> <td> U+02226 </td> <td> <span class=glyph title="">&#8742;</span> </td> <tr id=entity-NotElement><td> <code title="">NotElement;</code> </td> <td> U+02209 </td> <td> <span class=glyph title="">&notin;</span> </td> <tr id=entity-NotEqual><td> <code title="">NotEqual;</code> </td> <td> U+02260 </td> <td> <span class=glyph title="">&ne;</span> </td> <tr id=entity-NotEqualTilde><td> <code title="">NotEqualTilde;</code> </td> <td> U+02242 U+00338 </td> <td> <span class="glyph compound" title="">&#8770;&#824;</span> </td> <tr id=entity-NotExists><td> <code title="">NotExists;</code> </td> <td> U+02204 </td> <td> <span class=glyph title="">&#8708;</span> </td> <tr id=entity-NotGreater><td> <code title="">NotGreater;</code> </td> <td> U+0226F </td> <td> <span class=glyph title="">&#8815;</span> </td> <tr id=entity-NotGreaterEqual><td> <code title="">NotGreaterEqual;</code> </td> <td> U+02271 </td> <td> <span class=glyph title="">&#8817;</span> </td> <tr id=entity-NotGreaterFullEqual><td> <code title="">NotGreaterFullEqual;</code> </td> <td> U+02267 U+00338 </td> <td> <span class="glyph compound" title="">&#8807;&#824;</span> </td> <tr id=entity-NotGreaterGreater><td> <code title="">NotGreaterGreater;</code> </td> <td> U+0226B U+00338 </td> <td> <span class="glyph compound" title="">&#8811;&#824;</span> </td> <tr id=entity-NotGreaterLess><td> <code title="">NotGreaterLess;</code> </td> <td> U+02279 </td> <td> <span class=glyph title="">&#8825;</span> </td> <tr id=entity-NotGreaterSlantEqual><td> <code title="">NotGreaterSlantEqual;</code> </td> <td> U+02A7E U+00338 </td> <td> <span class="glyph compound" title="">&#10878;&#824;</span> </td> <tr id=entity-NotGreaterTilde><td> <code title="">NotGreaterTilde;</code> </td> <td> U+02275 </td> <td> <span class=glyph title="">&#8821;</span> </td> <tr id=entity-NotHumpDownHump><td> <code title="">NotHumpDownHump;</code> </td> <td> U+0224E U+00338 </td> <td> <span class="glyph compound" title="">&#8782;&#824;</span> </td> <tr id=entity-NotHumpEqual><td> <code title="">NotHumpEqual;</code> </td> <td> U+0224F U+00338 </td> <td> <span class="glyph compound" title="">&#8783;&#824;</span> </td> <tr id=entity-NotLeftTriangle><td> <code title="">NotLeftTriangle;</code> </td> <td> U+022EA </td> <td> <span class=glyph title="">&#8938;</span> </td> <tr id=entity-NotLeftTriangleBar><td> <code title="">NotLeftTriangleBar;</code> </td> <td> U+029CF U+00338 </td> <td> <span class="glyph compound" title="">&#10703;&#824;</span> </td> <tr id=entity-NotLeftTriangleEqual><td> <code title="">NotLeftTriangleEqual;</code> </td> <td> U+022EC </td> <td> <span class=glyph title="">&#8940;</span> </td> <tr id=entity-NotLess><td> <code title="">NotLess;</code> </td> <td> U+0226E </td> <td> <span class=glyph title="">&#8814;</span> </td> <tr id=entity-NotLessEqual><td> <code title="">NotLessEqual;</code> </td> <td> U+02270 </td> <td> <span class=glyph title="">&#8816;</span> </td> <tr id=entity-NotLessGreater><td> <code title="">NotLessGreater;</code> </td> <td> U+02278 </td> <td> <span class=glyph title="">&#8824;</span> </td> <tr id=entity-NotLessLess><td> <code title="">NotLessLess;</code> </td> <td> U+0226A U+00338 </td> <td> <span class="glyph compound" title="">&#8810;&#824;</span> </td> <tr id=entity-NotLessSlantEqual><td> <code title="">NotLessSlantEqual;</code> </td> <td> U+02A7D U+00338 </td> <td> <span class="glyph compound" title="">&#10877;&#824;</span> </td> <tr id=entity-NotLessTilde><td> <code title="">NotLessTilde;</code> </td> <td> U+02274 </td> <td> <span class=glyph title="">&#8820;</span> </td> <tr id=entity-NotNestedGreaterGreater><td> <code title="">NotNestedGreaterGreater;</code> </td> <td> U+02AA2 U+00338 </td> <td> <span class="glyph compound" title="">&#10914;&#824;</span> </td> <tr id=entity-NotNestedLessLess><td> <code title="">NotNestedLessLess;</code> </td> <td> U+02AA1 U+00338 </td> <td> <span class="glyph compound" title="">&#10913;&#824;</span> </td> <tr id=entity-NotPrecedes><td> <code title="">NotPrecedes;</code> </td> <td> U+02280 </td> <td> <span class=glyph title="">&#8832;</span> </td> <tr id=entity-NotPrecedesEqual><td> <code title="">NotPrecedesEqual;</code> </td> <td> U+02AAF U+00338 </td> <td> <span class="glyph compound" title="">&#10927;&#824;</span> </td> <tr id=entity-NotPrecedesSlantEqual><td> <code title="">NotPrecedesSlantEqual;</code> </td> <td> U+022E0 </td> <td> <span class=glyph title="">&#8928;</span> </td> <tr id=entity-NotReverseElement><td> <code title="">NotReverseElement;</code> </td> <td> U+0220C </td> <td> <span class=glyph title="">&#8716;</span> </td> <tr id=entity-NotRightTriangle><td> <code title="">NotRightTriangle;</code> </td> <td> U+022EB </td> <td> <span class=glyph title="">&#8939;</span> </td> <tr id=entity-NotRightTriangleBar><td> <code title="">NotRightTriangleBar;</code> </td> <td> U+029D0 U+00338 </td> <td> <span class="glyph compound" title="">&#10704;&#824;</span> </td> <tr id=entity-NotRightTriangleEqual><td> <code title="">NotRightTriangleEqual;</code> </td> <td> U+022ED </td> <td> <span class=glyph title="">&#8941;</span> </td> <tr id=entity-NotSquareSubset><td> <code title="">NotSquareSubset;</code> </td> <td> U+0228F U+00338 </td> <td> <span class="glyph compound" title="">&#8847;&#824;</span> </td> <tr id=entity-NotSquareSubsetEqual><td> <code title="">NotSquareSubsetEqual;</code> </td> <td> U+022E2 </td> <td> <span class=glyph title="">&#8930;</span> </td> <tr id=entity-NotSquareSuperset><td> <code title="">NotSquareSuperset;</code> </td> <td> U+02290 U+00338 </td> <td> <span class="glyph compound" title="">&#8848;&#824;</span> </td> <tr id=entity-NotSquareSupersetEqual><td> <code title="">NotSquareSupersetEqual;</code> </td> <td> U+022E3 </td> <td> <span class=glyph title="">&#8931;</span> </td> <tr id=entity-NotSubset><td> <code title="">NotSubset;</code> </td> <td> U+02282 U+020D2 </td> <td> <span class="glyph compound" title="">&sub;&#8402;</span> </td> <tr id=entity-NotSubsetEqual><td> <code title="">NotSubsetEqual;</code> </td> <td> U+02288 </td> <td> <span class=glyph title="">&#8840;</span> </td> <tr id=entity-NotSucceeds><td> <code title="">NotSucceeds;</code> </td> <td> U+02281 </td> <td> <span class=glyph title="">&#8833;</span> </td> <tr id=entity-NotSucceedsEqual><td> <code title="">NotSucceedsEqual;</code> </td> <td> U+02AB0 U+00338 </td> <td> <span class="glyph compound" title="">&#10928;&#824;</span> </td> <tr id=entity-NotSucceedsSlantEqual><td> <code title="">NotSucceedsSlantEqual;</code> </td> <td> U+022E1 </td> <td> <span class=glyph title="">&#8929;</span> </td> <tr id=entity-NotSucceedsTilde><td> <code title="">NotSucceedsTilde;</code> </td> <td> U+0227F U+00338 </td> <td> <span class="glyph compound" title="">&#8831;&#824;</span> </td> <tr id=entity-NotSuperset><td> <code title="">NotSuperset;</code> </td> <td> U+02283 U+020D2 </td> <td> <span class="glyph compound" title="">&sup;&#8402;</span> </td> <tr id=entity-NotSupersetEqual><td> <code title="">NotSupersetEqual;</code> </td> <td> U+02289 </td> <td> <span class=glyph title="">&#8841;</span> </td> <tr id=entity-NotTilde><td> <code title="">NotTilde;</code> </td> <td> U+02241 </td> <td> <span class=glyph title="">&#8769;</span> </td> <tr id=entity-NotTildeEqual><td> <code title="">NotTildeEqual;</code> </td> <td> U+02244 </td> <td> <span class=glyph title="">&#8772;</span> </td> <tr id=entity-NotTildeFullEqual><td> <code title="">NotTildeFullEqual;</code> </td> <td> U+02247 </td> <td> <span class=glyph title="">&#8775;</span> </td> <tr id=entity-NotTildeTilde><td> <code title="">NotTildeTilde;</code> </td> <td> U+02249 </td> <td> <span class=glyph title="">&#8777;</span> </td> <tr id=entity-NotVerticalBar><td> <code title="">NotVerticalBar;</code> </td> <td> U+02224 </td> <td> <span class=glyph title="">&#8740;</span> </td> <tr id=entity-Nscr><td> <code title="">Nscr;</code> </td> <td> U+1D4A9 </td> <td> <span class=glyph title="">&#119977;</span> </td> <tr id=entity-Ntilde><td> <code title="">Ntilde;</code> </td> <td> U+000D1 </td> <td> <span class=glyph title="">&Ntilde;</span> </td> <tr id=entity-Nu><td> <code title="">Nu;</code> </td> <td> U+0039D </td> <td> <span class=glyph title="">&Nu;</span> </td> <tr id=entity-OElig><td> <code title="">OElig;</code> </td> <td> U+00152 </td> <td> <span class=glyph title="">&OElig;</span> </td> <tr id=entity-Oacute><td> <code title="">Oacute;</code> </td> <td> U+000D3 </td> <td> <span class=glyph title="">&Oacute;</span> </td> <tr id=entity-Ocirc><td> <code title="">Ocirc;</code> </td> <td> U+000D4 </td> <td> <span class=glyph title="">&Ocirc;</span> </td> <tr id=entity-Ocy><td> <code title="">Ocy;</code> </td> <td> U+0041E </td> <td> <span class=glyph title="">&#1054;</span> </td> <tr id=entity-Odblac><td> <code title="">Odblac;</code> </td> <td> U+00150 </td> <td> <span class=glyph title="">&#336;</span> </td> <tr id=entity-Ofr><td> <code title="">Ofr;</code> </td> <td> U+1D512 </td> <td> <span class=glyph title="">&#120082;</span> </td> <tr id=entity-Ograve><td> <code title="">Ograve;</code> </td> <td> U+000D2 </td> <td> <span class=glyph title="">&Ograve;</span> </td> <tr id=entity-Omacr><td> <code title="">Omacr;</code> </td> <td> U+0014C </td> <td> <span class=glyph title="">&#332;</span> </td> <tr id=entity-Omega><td> <code title="">Omega;</code> </td> <td> U+003A9 </td> <td> <span class=glyph title="">&Omega;</span> </td> <tr id=entity-Omicron><td> <code title="">Omicron;</code> </td> <td> U+0039F </td> <td> <span class=glyph title="">&Omicron;</span> </td> <tr id=entity-Oopf><td> <code title="">Oopf;</code> </td> <td> U+1D546 </td> <td> <span class=glyph title="">&#120134;</span> </td> <tr id=entity-OpenCurlyDoubleQuote><td> <code title="">OpenCurlyDoubleQuote;</code> </td> <td> U+0201C </td> <td> <span class=glyph title="">&ldquo;</span> </td> <tr id=entity-OpenCurlyQuote><td> <code title="">OpenCurlyQuote;</code> </td> <td> U+02018 </td> <td> <span class=glyph title="">&lsquo;</span> </td> <tr id=entity-Or><td> <code title="">Or;</code> </td> <td> U+02A54 </td> <td> <span class=glyph title="">&#10836;</span> </td> <tr id=entity-Oscr><td> <code title="">Oscr;</code> </td> <td> U+1D4AA </td> <td> <span class=glyph title="">&#119978;</span> </td> <tr id=entity-Oslash><td> <code title="">Oslash;</code> </td> <td> U+000D8 </td> <td> <span class=glyph title="">&Oslash;</span> </td> <tr id=entity-Otilde><td> <code title="">Otilde;</code> </td> <td> U+000D5 </td> <td> <span class=glyph title="">&Otilde;</span> </td> <tr id=entity-Otimes><td> <code title="">Otimes;</code> </td> <td> U+02A37 </td> <td> <span class=glyph title="">&#10807;</span> </td> <tr id=entity-Ouml><td> <code title="">Ouml;</code> </td> <td> U+000D6 </td> <td> <span class=glyph title="">&Ouml;</span> </td> <tr id=entity-OverBar><td> <code title="">OverBar;</code> </td> <td> U+0203E </td> <td> <span class=glyph title="">&oline;</span> </td> <tr id=entity-OverBrace><td> <code title="">OverBrace;</code> </td> <td> U+023DE </td> <td> <span class=glyph title="">&#9182;</span> </td> <tr id=entity-OverBracket><td> <code title="">OverBracket;</code> </td> <td> U+023B4 </td> <td> <span class=glyph title="">&#9140;</span> </td> <tr id=entity-OverParenthesis><td> <code title="">OverParenthesis;</code> </td> <td> U+023DC </td> <td> <span class=glyph title="">&#9180;</span> </td> <tr id=entity-PartialD><td> <code title="">PartialD;</code> </td> <td> U+02202 </td> <td> <span class=glyph title="">&part;</span> </td> <tr id=entity-Pcy><td> <code title="">Pcy;</code> </td> <td> U+0041F </td> <td> <span class=glyph title="">&#1055;</span> </td> <tr id=entity-Pfr><td> <code title="">Pfr;</code> </td> <td> U+1D513 </td> <td> <span class=glyph title="">&#120083;</span> </td> <tr id=entity-Phi><td> <code title="">Phi;</code> </td> <td> U+003A6 </td> <td> <span class=glyph title="">&Phi;</span> </td> <tr id=entity-Pi><td> <code title="">Pi;</code> </td> <td> U+003A0 </td> <td> <span class=glyph title="">&Pi;</span> </td> <tr id=entity-PlusMinus><td> <code title="">PlusMinus;</code> </td> <td> U+000B1 </td> <td> <span class=glyph title="">&plusmn;</span> </td> <tr id=entity-Poincareplane><td> <code title="">Poincareplane;</code> </td> <td> U+0210C </td> <td> <span class=glyph title="">&#8460;</span> </td> <tr id=entity-Popf><td> <code title="">Popf;</code> </td> <td> U+02119 </td> <td> <span class=glyph title="">&#8473;</span> </td> <tr id=entity-Pr><td> <code title="">Pr;</code> </td> <td> U+02ABB </td> <td> <span class=glyph title="">&#10939;</span> </td> <tr id=entity-Precedes><td> <code title="">Precedes;</code> </td> <td> U+0227A </td> <td> <span class=glyph title="">&#8826;</span> </td> <tr id=entity-PrecedesEqual><td> <code title="">PrecedesEqual;</code> </td> <td> U+02AAF </td> <td> <span class=glyph title="">&#10927;</span> </td> <tr id=entity-PrecedesSlantEqual><td> <code title="">PrecedesSlantEqual;</code> </td> <td> U+0227C </td> <td> <span class=glyph title="">&#8828;</span> </td> <tr id=entity-PrecedesTilde><td> <code title="">PrecedesTilde;</code> </td> <td> U+0227E </td> <td> <span class=glyph title="">&#8830;</span> </td> <tr id=entity-Prime><td> <code title="">Prime;</code> </td> <td> U+02033 </td> <td> <span class=glyph title="">&Prime;</span> </td> <tr id=entity-Product><td> <code title="">Product;</code> </td> <td> U+0220F </td> <td> <span class=glyph title="">&prod;</span> </td> <tr id=entity-Proportion><td> <code title="">Proportion;</code> </td> <td> U+02237 </td> <td> <span class=glyph title="">&#8759;</span> </td> <tr id=entity-Proportional><td> <code title="">Proportional;</code> </td> <td> U+0221D </td> <td> <span class=glyph title="">&prop;</span> </td> <tr id=entity-Pscr><td> <code title="">Pscr;</code> </td> <td> U+1D4AB </td> <td> <span class=glyph title="">&#119979;</span> </td> <tr id=entity-Psi><td> <code title="">Psi;</code> </td> <td> U+003A8 </td> <td> <span class=glyph title="">&Psi;</span> </td> <tr id=entity-QUOT><td> <code title="">QUOT;</code> </td> <td> U+00022 </td> <td> <span class=glyph title="">"</span> </td> <tr id=entity-Qfr><td> <code title="">Qfr;</code> </td> <td> U+1D514 </td> <td> <span class=glyph title="">&#120084;</span> </td> <tr id=entity-Qopf><td> <code title="">Qopf;</code> </td> <td> U+0211A </td> <td> <span class=glyph title="">&#8474;</span> </td> <tr id=entity-Qscr><td> <code title="">Qscr;</code> </td> <td> U+1D4AC </td> <td> <span class=glyph title="">&#119980;</span> </td> <tr id=entity-RBarr><td> <code title="">RBarr;</code> </td> <td> U+02910 </td> <td> <span class=glyph title="">&#10512;</span> </td> <tr id=entity-REG><td> <code title="">REG;</code> </td> <td> U+000AE </td> <td> <span class=glyph title="">&reg;</span> </td> <tr id=entity-Racute><td> <code title="">Racute;</code> </td> <td> U+00154 </td> <td> <span class=glyph title="">&#340;</span> </td> <tr id=entity-Rang><td> <code title="">Rang;</code> </td> <td> U+027EB </td> <td> <span class=glyph title="">&#10219;</span> </td> <tr id=entity-Rarr><td> <code title="">Rarr;</code> </td> <td> U+021A0 </td> <td> <span class=glyph title="">&#8608;</span> </td> <tr id=entity-Rarrtl><td> <code title="">Rarrtl;</code> </td> <td> U+02916 </td> <td> <span class=glyph title="">&#10518;</span> </td> <tr id=entity-Rcaron><td> <code title="">Rcaron;</code> </td> <td> U+00158 </td> <td> <span class=glyph title="">&#344;</span> </td> <tr id=entity-Rcedil><td> <code title="">Rcedil;</code> </td> <td> U+00156 </td> <td> <span class=glyph title="">&#342;</span> </td> <tr id=entity-Rcy><td> <code title="">Rcy;</code> </td> <td> U+00420 </td> <td> <span class=glyph title="">&#1056;</span> </td> <tr id=entity-Re><td> <code title="">Re;</code> </td> <td> U+0211C </td> <td> <span class=glyph title="">&real;</span> </td> <tr id=entity-ReverseElement><td> <code title="">ReverseElement;</code> </td> <td> U+0220B </td> <td> <span class=glyph title="">&ni;</span> </td> <tr id=entity-ReverseEquilibrium><td> <code title="">ReverseEquilibrium;</code> </td> <td> U+021CB </td> <td> <span class=glyph title="">&#8651;</span> </td> <tr id=entity-ReverseUpEquilibrium><td> <code title="">ReverseUpEquilibrium;</code> </td> <td> U+0296F </td> <td> <span class=glyph title="">&#10607;</span> </td> <tr id=entity-Rfr><td> <code title="">Rfr;</code> </td> <td> U+0211C </td> <td> <span class=glyph title="">&real;</span> </td> <tr id=entity-Rho><td> <code title="">Rho;</code> </td> <td> U+003A1 </td> <td> <span class=glyph title="">&Rho;</span> </td> <tr id=entity-RightAngleBracket><td> <code title="">RightAngleBracket;</code> </td> <td> U+027E9 </td> <td> <span class=glyph title="">&rang;</span> </td> <tr id=entity-RightArrow><td> <code title="">RightArrow;</code> </td> <td> U+02192 </td> <td> <span class=glyph title="">&rarr;</span> </td> <tr id=entity-RightArrowBar><td> <code title="">RightArrowBar;</code> </td> <td> U+021E5 </td> <td> <span class=glyph title="">&#8677;</span> </td> <tr id=entity-RightArrowLeftArrow><td> <code title="">RightArrowLeftArrow;</code> </td> <td> U+021C4 </td> <td> <span class=glyph title="">&#8644;</span> </td> <tr id=entity-RightCeiling><td> <code title="">RightCeiling;</code> </td> <td> U+02309 </td> <td> <span class=glyph title="">&rceil;</span> </td> <tr id=entity-RightDoubleBracket><td> <code title="">RightDoubleBracket;</code> </td> <td> U+027E7 </td> <td> <span class=glyph title="">&#10215;</span> </td> <tr id=entity-RightDownTeeVector><td> <code title="">RightDownTeeVector;</code> </td> <td> U+0295D </td> <td> <span class=glyph title="">&#10589;</span> </td> <tr id=entity-RightDownVector><td> <code title="">RightDownVector;</code> </td> <td> U+021C2 </td> <td> <span class=glyph title="">&#8642;</span> </td> <tr id=entity-RightDownVectorBar><td> <code title="">RightDownVectorBar;</code> </td> <td> U+02955 </td> <td> <span class=glyph title="">&#10581;</span> </td> <tr id=entity-RightFloor><td> <code title="">RightFloor;</code> </td> <td> U+0230B </td> <td> <span class=glyph title="">&rfloor;</span> </td> <tr id=entity-RightTee><td> <code title="">RightTee;</code> </td> <td> U+022A2 </td> <td> <span class=glyph title="">&#8866;</span> </td> <tr id=entity-RightTeeArrow><td> <code title="">RightTeeArrow;</code> </td> <td> U+021A6 </td> <td> <span class=glyph title="">&#8614;</span> </td> <tr id=entity-RightTeeVector><td> <code title="">RightTeeVector;</code> </td> <td> U+0295B </td> <td> <span class=glyph title="">&#10587;</span> </td> <tr id=entity-RightTriangle><td> <code title="">RightTriangle;</code> </td> <td> U+022B3 </td> <td> <span class=glyph title="">&#8883;</span> </td> <tr id=entity-RightTriangleBar><td> <code title="">RightTriangleBar;</code> </td> <td> U+029D0 </td> <td> <span class=glyph title="">&#10704;</span> </td> <tr id=entity-RightTriangleEqual><td> <code title="">RightTriangleEqual;</code> </td> <td> U+022B5 </td> <td> <span class=glyph title="">&#8885;</span> </td> <tr id=entity-RightUpDownVector><td> <code title="">RightUpDownVector;</code> </td> <td> U+0294F </td> <td> <span class=glyph title="">&#10575;</span> </td> <tr id=entity-RightUpTeeVector><td> <code title="">RightUpTeeVector;</code> </td> <td> U+0295C </td> <td> <span class=glyph title="">&#10588;</span> </td> <tr id=entity-RightUpVector><td> <code title="">RightUpVector;</code> </td> <td> U+021BE </td> <td> <span class=glyph title="">&#8638;</span> </td> <tr id=entity-RightUpVectorBar><td> <code title="">RightUpVectorBar;</code> </td> <td> U+02954 </td> <td> <span class=glyph title="">&#10580;</span> </td> <tr id=entity-RightVector><td> <code title="">RightVector;</code> </td> <td> U+021C0 </td> <td> <span class=glyph title="">&#8640;</span> </td> <tr id=entity-RightVectorBar><td> <code title="">RightVectorBar;</code> </td> <td> U+02953 </td> <td> <span class=glyph title="">&#10579;</span> </td> <tr id=entity-Rightarrow><td> <code title="">Rightarrow;</code> </td> <td> U+021D2 </td> <td> <span class=glyph title="">&rArr;</span> </td> <tr id=entity-Ropf><td> <code title="">Ropf;</code> </td> <td> U+0211D </td> <td> <span class=glyph title="">&#8477;</span> </td> <tr id=entity-RoundImplies><td> <code title="">RoundImplies;</code> </td> <td> U+02970 </td> <td> <span class=glyph title="">&#10608;</span> </td> <tr id=entity-Rrightarrow><td> <code title="">Rrightarrow;</code> </td> <td> U+021DB </td> <td> <span class=glyph title="">&#8667;</span> </td> <tr id=entity-Rscr><td> <code title="">Rscr;</code> </td> <td> U+0211B </td> <td> <span class=glyph title="">&#8475;</span> </td> <tr id=entity-Rsh><td> <code title="">Rsh;</code> </td> <td> U+021B1 </td> <td> <span class=glyph title="">&#8625;</span> </td> <tr id=entity-RuleDelayed><td> <code title="">RuleDelayed;</code> </td> <td> U+029F4 </td> <td> <span class=glyph title="">&#10740;</span> </td> <tr id=entity-SHCHcy><td> <code title="">SHCHcy;</code> </td> <td> U+00429 </td> <td> <span class=glyph title="">&#1065;</span> </td> <tr id=entity-SHcy><td> <code title="">SHcy;</code> </td> <td> U+00428 </td> <td> <span class=glyph title="">&#1064;</span> </td> <tr id=entity-SOFTcy><td> <code title="">SOFTcy;</code> </td> <td> U+0042C </td> <td> <span class=glyph title="">&#1068;</span> </td> <tr id=entity-Sacute><td> <code title="">Sacute;</code> </td> <td> U+0015A </td> <td> <span class=glyph title="">&#346;</span> </td> <tr id=entity-Sc><td> <code title="">Sc;</code> </td> <td> U+02ABC </td> <td> <span class=glyph title="">&#10940;</span> </td> <tr id=entity-Scaron><td> <code title="">Scaron;</code> </td> <td> U+00160 </td> <td> <span class=glyph title="">&Scaron;</span> </td> <tr id=entity-Scedil><td> <code title="">Scedil;</code> </td> <td> U+0015E </td> <td> <span class=glyph title="">&#350;</span> </td> <tr id=entity-Scirc><td> <code title="">Scirc;</code> </td> <td> U+0015C </td> <td> <span class=glyph title="">&#348;</span> </td> <tr id=entity-Scy><td> <code title="">Scy;</code> </td> <td> U+00421 </td> <td> <span class=glyph title="">&#1057;</span> </td> <tr id=entity-Sfr><td> <code title="">Sfr;</code> </td> <td> U+1D516 </td> <td> <span class=glyph title="">&#120086;</span> </td> <tr id=entity-ShortDownArrow><td> <code title="">ShortDownArrow;</code> </td> <td> U+02193 </td> <td> <span class=glyph title="">&darr;</span> </td> <tr id=entity-ShortLeftArrow><td> <code title="">ShortLeftArrow;</code> </td> <td> U+02190 </td> <td> <span class=glyph title="">&larr;</span> </td> <tr id=entity-ShortRightArrow><td> <code title="">ShortRightArrow;</code> </td> <td> U+02192 </td> <td> <span class=glyph title="">&rarr;</span> </td> <tr id=entity-ShortUpArrow><td> <code title="">ShortUpArrow;</code> </td> <td> U+02191 </td> <td> <span class=glyph title="">&uarr;</span> </td> <tr id=entity-Sigma><td> <code title="">Sigma;</code> </td> <td> U+003A3 </td> <td> <span class=glyph title="">&Sigma;</span> </td> <tr id=entity-SmallCircle><td> <code title="">SmallCircle;</code> </td> <td> U+02218 </td> <td> <span class=glyph title="">&#8728;</span> </td> <tr id=entity-Sopf><td> <code title="">Sopf;</code> </td> <td> U+1D54A </td> <td> <span class=glyph title="">&#120138;</span> </td> <tr id=entity-Sqrt><td> <code title="">Sqrt;</code> </td> <td> U+0221A </td> <td> <span class=glyph title="">&radic;</span> </td> <tr id=entity-Square><td> <code title="">Square;</code> </td> <td> U+025A1 </td> <td> <span class=glyph title="">&#9633;</span> </td> <tr id=entity-SquareIntersection><td> <code title="">SquareIntersection;</code> </td> <td> U+02293 </td> <td> <span class=glyph title="">&#8851;</span> </td> <tr id=entity-SquareSubset><td> <code title="">SquareSubset;</code> </td> <td> U+0228F </td> <td> <span class=glyph title="">&#8847;</span> </td> <tr id=entity-SquareSubsetEqual><td> <code title="">SquareSubsetEqual;</code> </td> <td> U+02291 </td> <td> <span class=glyph title="">&#8849;</span> </td> <tr id=entity-SquareSuperset><td> <code title="">SquareSuperset;</code> </td> <td> U+02290 </td> <td> <span class=glyph title="">&#8848;</span> </td> <tr id=entity-SquareSupersetEqual><td> <code title="">SquareSupersetEqual;</code> </td> <td> U+02292 </td> <td> <span class=glyph title="">&#8850;</span> </td> <tr id=entity-SquareUnion><td> <code title="">SquareUnion;</code> </td> <td> U+02294 </td> <td> <span class=glyph title="">&#8852;</span> </td> <tr id=entity-Sscr><td> <code title="">Sscr;</code> </td> <td> U+1D4AE </td> <td> <span class=glyph title="">&#119982;</span> </td> <tr id=entity-Star><td> <code title="">Star;</code> </td> <td> U+022C6 </td> <td> <span class=glyph title="">&#8902;</span> </td> <tr id=entity-Sub><td> <code title="">Sub;</code> </td> <td> U+022D0 </td> <td> <span class=glyph title="">&#8912;</span> </td> <tr id=entity-Subset><td> <code title="">Subset;</code> </td> <td> U+022D0 </td> <td> <span class=glyph title="">&#8912;</span> </td> <tr id=entity-SubsetEqual><td> <code title="">SubsetEqual;</code> </td> <td> U+02286 </td> <td> <span class=glyph title="">&sube;</span> </td> <tr id=entity-Succeeds><td> <code title="">Succeeds;</code> </td> <td> U+0227B </td> <td> <span class=glyph title="">&#8827;</span> </td> <tr id=entity-SucceedsEqual><td> <code title="">SucceedsEqual;</code> </td> <td> U+02AB0 </td> <td> <span class=glyph title="">&#10928;</span> </td> <tr id=entity-SucceedsSlantEqual><td> <code title="">SucceedsSlantEqual;</code> </td> <td> U+0227D </td> <td> <span class=glyph title="">&#8829;</span> </td> <tr id=entity-SucceedsTilde><td> <code title="">SucceedsTilde;</code> </td> <td> U+0227F </td> <td> <span class=glyph title="">&#8831;</span> </td> <tr id=entity-SuchThat><td> <code title="">SuchThat;</code> </td> <td> U+0220B </td> <td> <span class=glyph title="">&ni;</span> </td> <tr id=entity-Sum><td> <code title="">Sum;</code> </td> <td> U+02211 </td> <td> <span class=glyph title="">&sum;</span> </td> <tr id=entity-Sup><td> <code title="">Sup;</code> </td> <td> U+022D1 </td> <td> <span class=glyph title="">&#8913;</span> </td> <tr id=entity-Superset><td> <code title="">Superset;</code> </td> <td> U+02283 </td> <td> <span class=glyph title="">&sup;</span> </td> <tr id=entity-SupersetEqual><td> <code title="">SupersetEqual;</code> </td> <td> U+02287 </td> <td> <span class=glyph title="">&supe;</span> </td> <tr id=entity-Supset><td> <code title="">Supset;</code> </td> <td> U+022D1 </td> <td> <span class=glyph title="">&#8913;</span> </td> <tr id=entity-THORN><td> <code title="">THORN;</code> </td> <td> U+000DE </td> <td> <span class=glyph title="">&THORN;</span> </td> <tr id=entity-TRADE><td> <code title="">TRADE;</code> </td> <td> U+02122 </td> <td> <span class=glyph title="">&trade;</span> </td> <tr id=entity-TSHcy><td> <code title="">TSHcy;</code> </td> <td> U+0040B </td> <td> <span class=glyph title="">&#1035;</span> </td> <tr id=entity-TScy><td> <code title="">TScy;</code> </td> <td> U+00426 </td> <td> <span class=glyph title="">&#1062;</span> </td> <tr id=entity-Tab><td> <code title="">Tab;</code> </td> <td> U+00009 </td> <td> <span class="glyph control" title="">&#9225;</span> </td> <tr id=entity-Tau><td> <code title="">Tau;</code> </td> <td> U+003A4 </td> <td> <span class=glyph title="">&Tau;</span> </td> <tr id=entity-Tcaron><td> <code title="">Tcaron;</code> </td> <td> U+00164 </td> <td> <span class=glyph title="">&#356;</span> </td> <tr id=entity-Tcedil><td> <code title="">Tcedil;</code> </td> <td> U+00162 </td> <td> <span class=glyph title="">&#354;</span> </td> <tr id=entity-Tcy><td> <code title="">Tcy;</code> </td> <td> U+00422 </td> <td> <span class=glyph title="">&#1058;</span> </td> <tr id=entity-Tfr><td> <code title="">Tfr;</code> </td> <td> U+1D517 </td> <td> <span class=glyph title="">&#120087;</span> </td> <tr id=entity-Therefore><td> <code title="">Therefore;</code> </td> <td> U+02234 </td> <td> <span class=glyph title="">&there4;</span> </td> <tr id=entity-Theta><td> <code title="">Theta;</code> </td> <td> U+00398 </td> <td> <span class=glyph title="">&Theta;</span> </td> <tr id=entity-ThickSpace><td> <code title="">ThickSpace;</code> </td> <td> U+0205F U+0200A </td> <td> <span class="glyph compound" title="">&#8287;&#8202;</span> </td> <tr id=entity-ThinSpace><td> <code title="">ThinSpace;</code> </td> <td> U+02009 </td> <td> <span class=glyph title="">&thinsp;</span> </td> <tr id=entity-Tilde><td> <code title="">Tilde;</code> </td> <td> U+0223C </td> <td> <span class=glyph title="">&sim;</span> </td> <tr id=entity-TildeEqual><td> <code title="">TildeEqual;</code> </td> <td> U+02243 </td> <td> <span class=glyph title="">&#8771;</span> </td> <tr id=entity-TildeFullEqual><td> <code title="">TildeFullEqual;</code> </td> <td> U+02245 </td> <td> <span class=glyph title="">&cong;</span> </td> <tr id=entity-TildeTilde><td> <code title="">TildeTilde;</code> </td> <td> U+02248 </td> <td> <span class=glyph title="">&asymp;</span> </td> <tr id=entity-Topf><td> <code title="">Topf;</code> </td> <td> U+1D54B </td> <td> <span class=glyph title="">&#120139;</span> </td> <tr id=entity-TripleDot><td> <code title="">TripleDot;</code> </td> <td> U+020DB </td> <td> <span class="glyph composition" title="">&#9676;&#8411;</span> </td> <tr id=entity-Tscr><td> <code title="">Tscr;</code> </td> <td> U+1D4AF </td> <td> <span class=glyph title="">&#119983;</span> </td> <tr id=entity-Tstrok><td> <code title="">Tstrok;</code> </td> <td> U+00166 </td> <td> <span class=glyph title="">&#358;</span> </td> <tr id=entity-Uacute><td> <code title="">Uacute;</code> </td> <td> U+000DA </td> <td> <span class=glyph title="">&Uacute;</span> </td> <tr id=entity-Uarr><td> <code title="">Uarr;</code> </td> <td> U+0219F </td> <td> <span class=glyph title="">&#8607;</span> </td> <tr id=entity-Uarrocir><td> <code title="">Uarrocir;</code> </td> <td> U+02949 </td> <td> <span class=glyph title="">&#10569;</span> </td> <tr id=entity-Ubrcy><td> <code title="">Ubrcy;</code> </td> <td> U+0040E </td> <td> <span class=glyph title="">&#1038;</span> </td> <tr id=entity-Ubreve><td> <code title="">Ubreve;</code> </td> <td> U+0016C </td> <td> <span class=glyph title="">&#364;</span> </td> <tr id=entity-Ucirc><td> <code title="">Ucirc;</code> </td> <td> U+000DB </td> <td> <span class=glyph title="">&Ucirc;</span> </td> <tr id=entity-Ucy><td> <code title="">Ucy;</code> </td> <td> U+00423 </td> <td> <span class=glyph title="">&#1059;</span> </td> <tr id=entity-Udblac><td> <code title="">Udblac;</code> </td> <td> U+00170 </td> <td> <span class=glyph title="">&#368;</span> </td> <tr id=entity-Ufr><td> <code title="">Ufr;</code> </td> <td> U+1D518 </td> <td> <span class=glyph title="">&#120088;</span> </td> <tr id=entity-Ugrave><td> <code title="">Ugrave;</code> </td> <td> U+000D9 </td> <td> <span class=glyph title="">&Ugrave;</span> </td> <tr id=entity-Umacr><td> <code title="">Umacr;</code> </td> <td> U+0016A </td> <td> <span class=glyph title="">&#362;</span> </td> <tr id=entity-UnderBar><td> <code title="">UnderBar;</code> </td> <td> U+0005F </td> <td> <span class=glyph title="">_</span> </td> <tr id=entity-UnderBrace><td> <code title="">UnderBrace;</code> </td> <td> U+023DF </td> <td> <span class=glyph title="">&#9183;</span> </td> <tr id=entity-UnderBracket><td> <code title="">UnderBracket;</code> </td> <td> U+023B5 </td> <td> <span class=glyph title="">&#9141;</span> </td> <tr id=entity-UnderParenthesis><td> <code title="">UnderParenthesis;</code> </td> <td> U+023DD </td> <td> <span class=glyph title="">&#9181;</span> </td> <tr id=entity-Union><td> <code title="">Union;</code> </td> <td> U+022C3 </td> <td> <span class=glyph title="">&#8899;</span> </td> <tr id=entity-UnionPlus><td> <code title="">UnionPlus;</code> </td> <td> U+0228E </td> <td> <span class=glyph title="">&#8846;</span> </td> <tr id=entity-Uogon><td> <code title="">Uogon;</code> </td> <td> U+00172 </td> <td> <span class=glyph title="">&#370;</span> </td> <tr id=entity-Uopf><td> <code title="">Uopf;</code> </td> <td> U+1D54C </td> <td> <span class=glyph title="">&#120140;</span> </td> <tr id=entity-UpArrow><td> <code title="">UpArrow;</code> </td> <td> U+02191 </td> <td> <span class=glyph title="">&uarr;</span> </td> <tr id=entity-UpArrowBar><td> <code title="">UpArrowBar;</code> </td> <td> U+02912 </td> <td> <span class=glyph title="">&#10514;</span> </td> <tr id=entity-UpArrowDownArrow><td> <code title="">UpArrowDownArrow;</code> </td> <td> U+021C5 </td> <td> <span class=glyph title="">&#8645;</span> </td> <tr id=entity-UpDownArrow><td> <code title="">UpDownArrow;</code> </td> <td> U+02195 </td> <td> <span class=glyph title="">&#8597;</span> </td> <tr id=entity-UpEquilibrium><td> <code title="">UpEquilibrium;</code> </td> <td> U+0296E </td> <td> <span class=glyph title="">&#10606;</span> </td> <tr id=entity-UpTee><td> <code title="">UpTee;</code> </td> <td> U+022A5 </td> <td> <span class=glyph title="">&perp;</span> </td> <tr id=entity-UpTeeArrow><td> <code title="">UpTeeArrow;</code> </td> <td> U+021A5 </td> <td> <span class=glyph title="">&#8613;</span> </td> <tr id=entity-Uparrow><td> <code title="">Uparrow;</code> </td> <td> U+021D1 </td> <td> <span class=glyph title="">&uArr;</span> </td> <tr id=entity-Updownarrow><td> <code title="">Updownarrow;</code> </td> <td> U+021D5 </td> <td> <span class=glyph title="">&#8661;</span> </td> <tr id=entity-UpperLeftArrow><td> <code title="">UpperLeftArrow;</code> </td> <td> U+02196 </td> <td> <span class=glyph title="">&#8598;</span> </td> <tr id=entity-UpperRightArrow><td> <code title="">UpperRightArrow;</code> </td> <td> U+02197 </td> <td> <span class=glyph title="">&#8599;</span> </td> <tr id=entity-Upsi><td> <code title="">Upsi;</code> </td> <td> U+003D2 </td> <td> <span class=glyph title="">&upsih;</span> </td> <tr id=entity-Upsilon><td> <code title="">Upsilon;</code> </td> <td> U+003A5 </td> <td> <span class=glyph title="">&Upsilon;</span> </td> <tr id=entity-Uring><td> <code title="">Uring;</code> </td> <td> U+0016E </td> <td> <span class=glyph title="">&#366;</span> </td> <tr id=entity-Uscr><td> <code title="">Uscr;</code> </td> <td> U+1D4B0 </td> <td> <span class=glyph title="">&#119984;</span> </td> <tr id=entity-Utilde><td> <code title="">Utilde;</code> </td> <td> U+00168 </td> <td> <span class=glyph title="">&#360;</span> </td> <tr id=entity-Uuml><td> <code title="">Uuml;</code> </td> <td> U+000DC </td> <td> <span class=glyph title="">&Uuml;</span> </td> <tr id=entity-VDash><td> <code title="">VDash;</code> </td> <td> U+022AB </td> <td> <span class=glyph title="">&#8875;</span> </td> <tr id=entity-Vbar><td> <code title="">Vbar;</code> </td> <td> U+02AEB </td> <td> <span class=glyph title="">&#10987;</span> </td> <tr id=entity-Vcy><td> <code title="">Vcy;</code> </td> <td> U+00412 </td> <td> <span class=glyph title="">&#1042;</span> </td> <tr id=entity-Vdash><td> <code title="">Vdash;</code> </td> <td> U+022A9 </td> <td> <span class=glyph title="">&#8873;</span> </td> <tr id=entity-Vdashl><td> <code title="">Vdashl;</code> </td> <td> U+02AE6 </td> <td> <span class=glyph title="">&#10982;</span> </td> <tr id=entity-Vee><td> <code title="">Vee;</code> </td> <td> U+022C1 </td> <td> <span class=glyph title="">&#8897;</span> </td> <tr id=entity-Verbar><td> <code title="">Verbar;</code> </td> <td> U+02016 </td> <td> <span class=glyph title="">&#8214;</span> </td> <tr id=entity-Vert><td> <code title="">Vert;</code> </td> <td> U+02016 </td> <td> <span class=glyph title="">&#8214;</span> </td> <tr id=entity-VerticalBar><td> <code title="">VerticalBar;</code> </td> <td> U+02223 </td> <td> <span class=glyph title="">&#8739;</span> </td> <tr id=entity-VerticalLine><td> <code title="">VerticalLine;</code> </td> <td> U+0007C </td> <td> <span class=glyph title="">|</span> </td> <tr id=entity-VerticalSeparator><td> <code title="">VerticalSeparator;</code> </td> <td> U+02758 </td> <td> <span class=glyph title="">&#10072;</span> </td> <tr id=entity-VerticalTilde><td> <code title="">VerticalTilde;</code> </td> <td> U+02240 </td> <td> <span class=glyph title="">&#8768;</span> </td> <tr id=entity-VeryThinSpace><td> <code title="">VeryThinSpace;</code> </td> <td> U+0200A </td> <td> <span class=glyph title="">&#8202;</span> </td> <tr id=entity-Vfr><td> <code title="">Vfr;</code> </td> <td> U+1D519 </td> <td> <span class=glyph title="">&#120089;</span> </td> <tr id=entity-Vopf><td> <code title="">Vopf;</code> </td> <td> U+1D54D </td> <td> <span class=glyph title="">&#120141;</span> </td> <tr id=entity-Vscr><td> <code title="">Vscr;</code> </td> <td> U+1D4B1 </td> <td> <span class=glyph title="">&#119985;</span> </td> <tr id=entity-Vvdash><td> <code title="">Vvdash;</code> </td> <td> U+022AA </td> <td> <span class=glyph title="">&#8874;</span> </td> <tr id=entity-Wcirc><td> <code title="">Wcirc;</code> </td> <td> U+00174 </td> <td> <span class=glyph title="">&#372;</span> </td> <tr id=entity-Wedge><td> <code title="">Wedge;</code> </td> <td> U+022C0 </td> <td> <span class=glyph title="">&#8896;</span> </td> <tr id=entity-Wfr><td> <code title="">Wfr;</code> </td> <td> U+1D51A </td> <td> <span class=glyph title="">&#120090;</span> </td> <tr id=entity-Wopf><td> <code title="">Wopf;</code> </td> <td> U+1D54E </td> <td> <span class=glyph title="">&#120142;</span> </td> <tr id=entity-Wscr><td> <code title="">Wscr;</code> </td> <td> U+1D4B2 </td> <td> <span class=glyph title="">&#119986;</span> </td> <tr id=entity-Xfr><td> <code title="">Xfr;</code> </td> <td> U+1D51B </td> <td> <span class=glyph title="">&#120091;</span> </td> <tr id=entity-Xi><td> <code title="">Xi;</code> </td> <td> U+0039E </td> <td> <span class=glyph title="">&Xi;</span> </td> <tr id=entity-Xopf><td> <code title="">Xopf;</code> </td> <td> U+1D54F </td> <td> <span class=glyph title="">&#120143;</span> </td> <tr id=entity-Xscr><td> <code title="">Xscr;</code> </td> <td> U+1D4B3 </td> <td> <span class=glyph title="">&#119987;</span> </td> <tr id=entity-YAcy><td> <code title="">YAcy;</code> </td> <td> U+0042F </td> <td> <span class=glyph title="">&#1071;</span> </td> <tr id=entity-YIcy><td> <code title="">YIcy;</code> </td> <td> U+00407 </td> <td> <span class=glyph title="">&#1031;</span> </td> <tr id=entity-YUcy><td> <code title="">YUcy;</code> </td> <td> U+0042E </td> <td> <span class=glyph title="">&#1070;</span> </td> <tr id=entity-Yacute><td> <code title="">Yacute;</code> </td> <td> U+000DD </td> <td> <span class=glyph title="">&Yacute;</span> </td> <tr id=entity-Ycirc><td> <code title="">Ycirc;</code> </td> <td> U+00176 </td> <td> <span class=glyph title="">&#374;</span> </td> <tr id=entity-Ycy><td> <code title="">Ycy;</code> </td> <td> U+0042B </td> <td> <span class=glyph title="">&#1067;</span> </td> <tr id=entity-Yfr><td> <code title="">Yfr;</code> </td> <td> U+1D51C </td> <td> <span class=glyph title="">&#120092;</span> </td> <tr id=entity-Yopf><td> <code title="">Yopf;</code> </td> <td> U+1D550 </td> <td> <span class=glyph title="">&#120144;</span> </td> <tr id=entity-Yscr><td> <code title="">Yscr;</code> </td> <td> U+1D4B4 </td> <td> <span class=glyph title="">&#119988;</span> </td> <tr id=entity-Yuml><td> <code title="">Yuml;</code> </td> <td> U+00178 </td> <td> <span class=glyph title="">&Yuml;</span> </td> <tr id=entity-ZHcy><td> <code title="">ZHcy;</code> </td> <td> U+00416 </td> <td> <span class=glyph title="">&#1046;</span> </td> <tr id=entity-Zacute><td> <code title="">Zacute;</code> </td> <td> U+00179 </td> <td> <span class=glyph title="">&#377;</span> </td> <tr id=entity-Zcaron><td> <code title="">Zcaron;</code> </td> <td> U+0017D </td> <td> <span class=glyph title="">&#381;</span> </td> <tr id=entity-Zcy><td> <code title="">Zcy;</code> </td> <td> U+00417 </td> <td> <span class=glyph title="">&#1047;</span> </td> <tr id=entity-Zdot><td> <code title="">Zdot;</code> </td> <td> U+0017B </td> <td> <span class=glyph title="">&#379;</span> </td> <tr id=entity-ZeroWidthSpace><td> <code title="">ZeroWidthSpace;</code> </td> <td> U+0200B </td> <td> <span class=glyph title="">&#8203;</span> </td> <tr id=entity-Zeta><td> <code title="">Zeta;</code> </td> <td> U+00396 </td> <td> <span class=glyph title="">&Zeta;</span> </td> <tr id=entity-Zfr><td> <code title="">Zfr;</code> </td> <td> U+02128 </td> <td> <span class=glyph title="">&#8488;</span> </td> <tr id=entity-Zopf><td> <code title="">Zopf;</code> </td> <td> U+02124 </td> <td> <span class=glyph title="">&#8484;</span> </td> <tr id=entity-Zscr><td> <code title="">Zscr;</code> </td> <td> U+1D4B5 </td> <td> <span class=glyph title="">&#119989;</span> </td> <tr id=entity-aacute><td> <code title="">aacute;</code> </td> <td> U+000E1 </td> <td> <span class=glyph title="">&aacute;</span> </td> <tr id=entity-abreve><td> <code title="">abreve;</code> </td> <td> U+00103 </td> <td> <span class=glyph title="">&#259;</span> </td> <tr id=entity-ac><td> <code title="">ac;</code> </td> <td> U+0223E </td> <td> <span class=glyph title="">&#8766;</span> </td> <tr id=entity-acE><td> <code title="">acE;</code> </td> <td> U+0223E U+00333 </td> <td> <span class="glyph compound" title="">&#8766;&#819;</span> </td> <tr id=entity-acd><td> <code title="">acd;</code> </td> <td> U+0223F </td> <td> <span class=glyph title="">&#8767;</span> </td> <tr id=entity-acirc><td> <code title="">acirc;</code> </td> <td> U+000E2 </td> <td> <span class=glyph title="">&acirc;</span> </td> <tr id=entity-acute><td> <code title="">acute;</code> </td> <td> U+000B4 </td> <td> <span class=glyph title="">&acute;</span> </td> <tr id=entity-acy><td> <code title="">acy;</code> </td> <td> U+00430 </td> <td> <span class=glyph title="">&#1072;</span> </td> <tr id=entity-aelig><td> <code title="">aelig;</code> </td> <td> U+000E6 </td> <td> <span class=glyph title="">&aelig;</span> </td> <tr id=entity-af><td> <code title="">af;</code> </td> <td> U+02061 </td> <td> <span class=glyph title="">&#8289;</span> </td> <tr id=entity-afr><td> <code title="">afr;</code> </td> <td> U+1D51E </td> <td> <span class=glyph title="">&#120094;</span> </td> <tr id=entity-agrave><td> <code title="">agrave;</code> </td> <td> U+000E0 </td> <td> <span class=glyph title="">&agrave;</span> </td> <tr id=entity-alefsym><td> <code title="">alefsym;</code> </td> <td> U+02135 </td> <td> <span class=glyph title="">&alefsym;</span> </td> <tr id=entity-aleph><td> <code title="">aleph;</code> </td> <td> U+02135 </td> <td> <span class=glyph title="">&alefsym;</span> </td> <tr id=entity-alpha><td> <code title="">alpha;</code> </td> <td> U+003B1 </td> <td> <span class=glyph title="">&alpha;</span> </td> <tr id=entity-amacr><td> <code title="">amacr;</code> </td> <td> U+00101 </td> <td> <span class=glyph title="">&#257;</span> </td> <tr id=entity-amalg><td> <code title="">amalg;</code> </td> <td> U+02A3F </td> <td> <span class=glyph title="">&#10815;</span> </td> <tr id=entity-amp><td> <code title="">amp;</code> </td> <td> U+00026 </td> <td> <span class=glyph title="">&amp;</span> </td> <tr id=entity-and><td> <code title="">and;</code> </td> <td> U+02227 </td> <td> <span class=glyph title="">&and;</span> </td> <tr id=entity-andand><td> <code title="">andand;</code> </td> <td> U+02A55 </td> <td> <span class=glyph title="">&#10837;</span> </td> <tr id=entity-andd><td> <code title="">andd;</code> </td> <td> U+02A5C </td> <td> <span class=glyph title="">&#10844;</span> </td> <tr id=entity-andslope><td> <code title="">andslope;</code> </td> <td> U+02A58 </td> <td> <span class=glyph title="">&#10840;</span> </td> <tr id=entity-andv><td> <code title="">andv;</code> </td> <td> U+02A5A </td> <td> <span class=glyph title="">&#10842;</span> </td> <tr id=entity-ang><td> <code title="">ang;</code> </td> <td> U+02220 </td> <td> <span class=glyph title="">&ang;</span> </td> <tr id=entity-ange><td> <code title="">ange;</code> </td> <td> U+029A4 </td> <td> <span class=glyph title="">&#10660;</span> </td> <tr id=entity-angle><td> <code title="">angle;</code> </td> <td> U+02220 </td> <td> <span class=glyph title="">&ang;</span> </td> <tr id=entity-angmsd><td> <code title="">angmsd;</code> </td> <td> U+02221 </td> <td> <span class=glyph title="">&#8737;</span> </td> <tr id=entity-angmsdaa><td> <code title="">angmsdaa;</code> </td> <td> U+029A8 </td> <td> <span class=glyph title="">&#10664;</span> </td> <tr id=entity-angmsdab><td> <code title="">angmsdab;</code> </td> <td> U+029A9 </td> <td> <span class=glyph title="">&#10665;</span> </td> <tr id=entity-angmsdac><td> <code title="">angmsdac;</code> </td> <td> U+029AA </td> <td> <span class=glyph title="">&#10666;</span> </td> <tr id=entity-angmsdad><td> <code title="">angmsdad;</code> </td> <td> U+029AB </td> <td> <span class=glyph title="">&#10667;</span> </td> <tr id=entity-angmsdae><td> <code title="">angmsdae;</code> </td> <td> U+029AC </td> <td> <span class=glyph title="">&#10668;</span> </td> <tr id=entity-angmsdaf><td> <code title="">angmsdaf;</code> </td> <td> U+029AD </td> <td> <span class=glyph title="">&#10669;</span> </td> <tr id=entity-angmsdag><td> <code title="">angmsdag;</code> </td> <td> U+029AE </td> <td> <span class=glyph title="">&#10670;</span> </td> <tr id=entity-angmsdah><td> <code title="">angmsdah;</code> </td> <td> U+029AF </td> <td> <span class=glyph title="">&#10671;</span> </td> <tr id=entity-angrt><td> <code title="">angrt;</code> </td> <td> U+0221F </td> <td> <span class=glyph title="">&#8735;</span> </td> <tr id=entity-angrtvb><td> <code title="">angrtvb;</code> </td> <td> U+022BE </td> <td> <span class=glyph title="">&#8894;</span> </td> <tr id=entity-angrtvbd><td> <code title="">angrtvbd;</code> </td> <td> U+0299D </td> <td> <span class=glyph title="">&#10653;</span> </td> <tr id=entity-angsph><td> <code title="">angsph;</code> </td> <td> U+02222 </td> <td> <span class=glyph title="">&#8738;</span> </td> <tr id=entity-angst><td> <code title="">angst;</code> </td> <td> U+000C5 </td> <td> <span class=glyph title="">&Aring;</span> </td> <tr id=entity-angzarr><td> <code title="">angzarr;</code> </td> <td> U+0237C </td> <td> <span class=glyph title="">&#9084;</span> </td> <tr id=entity-aogon><td> <code title="">aogon;</code> </td> <td> U+00105 </td> <td> <span class=glyph title="">&#261;</span> </td> <tr id=entity-aopf><td> <code title="">aopf;</code> </td> <td> U+1D552 </td> <td> <span class=glyph title="">&#120146;</span> </td> <tr id=entity-ap><td> <code title="">ap;</code> </td> <td> U+02248 </td> <td> <span class=glyph title="">&asymp;</span> </td> <tr id=entity-apE><td> <code title="">apE;</code> </td> <td> U+02A70 </td> <td> <span class=glyph title="">&#10864;</span> </td> <tr id=entity-apacir><td> <code title="">apacir;</code> </td> <td> U+02A6F </td> <td> <span class=glyph title="">&#10863;</span> </td> <tr id=entity-ape><td> <code title="">ape;</code> </td> <td> U+0224A </td> <td> <span class=glyph title="">&#8778;</span> </td> <tr id=entity-apid><td> <code title="">apid;</code> </td> <td> U+0224B </td> <td> <span class=glyph title="">&#8779;</span> </td> <tr id=entity-apos><td> <code title="">apos;</code> </td> <td> U+00027 </td> <td> <span class=glyph title="">'</span> </td> <tr id=entity-approx><td> <code title="">approx;</code> </td> <td> U+02248 </td> <td> <span class=glyph title="">&asymp;</span> </td> <tr id=entity-approxeq><td> <code title="">approxeq;</code> </td> <td> U+0224A </td> <td> <span class=glyph title="">&#8778;</span> </td> <tr id=entity-aring><td> <code title="">aring;</code> </td> <td> U+000E5 </td> <td> <span class=glyph title="">&aring;</span> </td> <tr id=entity-ascr><td> <code title="">ascr;</code> </td> <td> U+1D4B6 </td> <td> <span class=glyph title="">&#119990;</span> </td> <tr id=entity-ast><td> <code title="">ast;</code> </td> <td> U+0002A </td> <td> <span class=glyph title="">*</span> </td> <tr id=entity-asymp><td> <code title="">asymp;</code> </td> <td> U+02248 </td> <td> <span class=glyph title="">&asymp;</span> </td> <tr id=entity-asympeq><td> <code title="">asympeq;</code> </td> <td> U+0224D </td> <td> <span class=glyph title="">&#8781;</span> </td> <tr id=entity-atilde><td> <code title="">atilde;</code> </td> <td> U+000E3 </td> <td> <span class=glyph title="">&atilde;</span> </td> <tr id=entity-auml><td> <code title="">auml;</code> </td> <td> U+000E4 </td> <td> <span class=glyph title="">&auml;</span> </td> <tr id=entity-awconint><td> <code title="">awconint;</code> </td> <td> U+02233 </td> <td> <span class=glyph title="">&#8755;</span> </td> <tr id=entity-awint><td> <code title="">awint;</code> </td> <td> U+02A11 </td> <td> <span class=glyph title="">&#10769;</span> </td> <tr id=entity-bNot><td> <code title="">bNot;</code> </td> <td> U+02AED </td> <td> <span class=glyph title="">&#10989;</span> </td> <tr id=entity-backcong><td> <code title="">backcong;</code> </td> <td> U+0224C </td> <td> <span class=glyph title="">&#8780;</span> </td> <tr id=entity-backepsilon><td> <code title="">backepsilon;</code> </td> <td> U+003F6 </td> <td> <span class=glyph title="">&#1014;</span> </td> <tr id=entity-backprime><td> <code title="">backprime;</code> </td> <td> U+02035 </td> <td> <span class=glyph title="">&#8245;</span> </td> <tr id=entity-backsim><td> <code title="">backsim;</code> </td> <td> U+0223D </td> <td> <span class=glyph title="">&#8765;</span> </td> <tr id=entity-backsimeq><td> <code title="">backsimeq;</code> </td> <td> U+022CD </td> <td> <span class=glyph title="">&#8909;</span> </td> <tr id=entity-barvee><td> <code title="">barvee;</code> </td> <td> U+022BD </td> <td> <span class=glyph title="">&#8893;</span> </td> <tr id=entity-barwed><td> <code title="">barwed;</code> </td> <td> U+02305 </td> <td> <span class=glyph title="">&#8965;</span> </td> <tr id=entity-barwedge><td> <code title="">barwedge;</code> </td> <td> U+02305 </td> <td> <span class=glyph title="">&#8965;</span> </td> <tr id=entity-bbrk><td> <code title="">bbrk;</code> </td> <td> U+023B5 </td> <td> <span class=glyph title="">&#9141;</span> </td> <tr id=entity-bbrktbrk><td> <code title="">bbrktbrk;</code> </td> <td> U+023B6 </td> <td> <span class=glyph title="">&#9142;</span> </td> <tr id=entity-bcong><td> <code title="">bcong;</code> </td> <td> U+0224C </td> <td> <span class=glyph title="">&#8780;</span> </td> <tr id=entity-bcy><td> <code title="">bcy;</code> </td> <td> U+00431 </td> <td> <span class=glyph title="">&#1073;</span> </td> <tr id=entity-bdquo><td> <code title="">bdquo;</code> </td> <td> U+0201E </td> <td> <span class=glyph title="">&bdquo;</span> </td> <tr id=entity-becaus><td> <code title="">becaus;</code> </td> <td> U+02235 </td> <td> <span class=glyph title="">&#8757;</span> </td> <tr id=entity-because><td> <code title="">because;</code> </td> <td> U+02235 </td> <td> <span class=glyph title="">&#8757;</span> </td> <tr id=entity-bemptyv><td> <code title="">bemptyv;</code> </td> <td> U+029B0 </td> <td> <span class=glyph title="">&#10672;</span> </td> <tr id=entity-bepsi><td> <code title="">bepsi;</code> </td> <td> U+003F6 </td> <td> <span class=glyph title="">&#1014;</span> </td> <tr id=entity-bernou><td> <code title="">bernou;</code> </td> <td> U+0212C </td> <td> <span class=glyph title="">&#8492;</span> </td> <tr id=entity-beta><td> <code title="">beta;</code> </td> <td> U+003B2 </td> <td> <span class=glyph title="">&beta;</span> </td> <tr id=entity-beth><td> <code title="">beth;</code> </td> <td> U+02136 </td> <td> <span class=glyph title="">&#8502;</span> </td> <tr id=entity-between><td> <code title="">between;</code> </td> <td> U+0226C </td> <td> <span class=glyph title="">&#8812;</span> </td> <tr id=entity-bfr><td> <code title="">bfr;</code> </td> <td> U+1D51F </td> <td> <span class=glyph title="">&#120095;</span> </td> <tr id=entity-bigcap><td> <code title="">bigcap;</code> </td> <td> U+022C2 </td> <td> <span class=glyph title="">&#8898;</span> </td> <tr id=entity-bigcirc><td> <code title="">bigcirc;</code> </td> <td> U+025EF </td> <td> <span class=glyph title="">&#9711;</span> </td> <tr id=entity-bigcup><td> <code title="">bigcup;</code> </td> <td> U+022C3 </td> <td> <span class=glyph title="">&#8899;</span> </td> <tr id=entity-bigodot><td> <code title="">bigodot;</code> </td> <td> U+02A00 </td> <td> <span class=glyph title="">&#10752;</span> </td> <tr id=entity-bigoplus><td> <code title="">bigoplus;</code> </td> <td> U+02A01 </td> <td> <span class=glyph title="">&#10753;</span> </td> <tr id=entity-bigotimes><td> <code title="">bigotimes;</code> </td> <td> U+02A02 </td> <td> <span class=glyph title="">&#10754;</span> </td> <tr id=entity-bigsqcup><td> <code title="">bigsqcup;</code> </td> <td> U+02A06 </td> <td> <span class=glyph title="">&#10758;</span> </td> <tr id=entity-bigstar><td> <code title="">bigstar;</code> </td> <td> U+02605 </td> <td> <span class=glyph title="">&#9733;</span> </td> <tr id=entity-bigtriangledown><td> <code title="">bigtriangledown;</code> </td> <td> U+025BD </td> <td> <span class=glyph title="">&#9661;</span> </td> <tr id=entity-bigtriangleup><td> <code title="">bigtriangleup;</code> </td> <td> U+025B3 </td> <td> <span class=glyph title="">&#9651;</span> </td> <tr id=entity-biguplus><td> <code title="">biguplus;</code> </td> <td> U+02A04 </td> <td> <span class=glyph title="">&#10756;</span> </td> <tr id=entity-bigvee><td> <code title="">bigvee;</code> </td> <td> U+022C1 </td> <td> <span class=glyph title="">&#8897;</span> </td> <tr id=entity-bigwedge><td> <code title="">bigwedge;</code> </td> <td> U+022C0 </td> <td> <span class=glyph title="">&#8896;</span> </td> <tr id=entity-bkarow><td> <code title="">bkarow;</code> </td> <td> U+0290D </td> <td> <span class=glyph title="">&#10509;</span> </td> <tr id=entity-blacklozenge><td> <code title="">blacklozenge;</code> </td> <td> U+029EB </td> <td> <span class=glyph title="">&#10731;</span> </td> <tr id=entity-blacksquare><td> <code title="">blacksquare;</code> </td> <td> U+025AA </td> <td> <span class=glyph title="">&#9642;</span> </td> <tr id=entity-blacktriangle><td> <code title="">blacktriangle;</code> </td> <td> U+025B4 </td> <td> <span class=glyph title="">&#9652;</span> </td> <tr id=entity-blacktriangledown><td> <code title="">blacktriangledown;</code> </td> <td> U+025BE </td> <td> <span class=glyph title="">&#9662;</span> </td> <tr id=entity-blacktriangleleft><td> <code title="">blacktriangleleft;</code> </td> <td> U+025C2 </td> <td> <span class=glyph title="">&#9666;</span> </td> <tr id=entity-blacktriangleright><td> <code title="">blacktriangleright;</code> </td> <td> U+025B8 </td> <td> <span class=glyph title="">&#9656;</span> </td> <tr id=entity-blank><td> <code title="">blank;</code> </td> <td> U+02423 </td> <td> <span class=glyph title="">&#9251;</span> </td> <tr id=entity-blk12><td> <code title="">blk12;</code> </td> <td> U+02592 </td> <td> <span class=glyph title="">&#9618;</span> </td> <tr id=entity-blk14><td> <code title="">blk14;</code> </td> <td> U+02591 </td> <td> <span class=glyph title="">&#9617;</span> </td> <tr id=entity-blk34><td> <code title="">blk34;</code> </td> <td> U+02593 </td> <td> <span class=glyph title="">&#9619;</span> </td> <tr id=entity-block><td> <code title="">block;</code> </td> <td> U+02588 </td> <td> <span class=glyph title="">&#9608;</span> </td> <tr id=entity-bne><td> <code title="">bne;</code> </td> <td> U+0003D U+020E5 </td> <td> <span class="glyph compound" title="">=&#8421;</span> </td> <tr id=entity-bnequiv><td> <code title="">bnequiv;</code> </td> <td> U+02261 U+020E5 </td> <td> <span class="glyph compound" title="">&equiv;&#8421;</span> </td> <tr id=entity-bnot><td> <code title="">bnot;</code> </td> <td> U+02310 </td> <td> <span class=glyph title="">&#8976;</span> </td> <tr id=entity-bopf><td> <code title="">bopf;</code> </td> <td> U+1D553 </td> <td> <span class=glyph title="">&#120147;</span> </td> <tr id=entity-bot><td> <code title="">bot;</code> </td> <td> U+022A5 </td> <td> <span class=glyph title="">&perp;</span> </td> <tr id=entity-bottom><td> <code title="">bottom;</code> </td> <td> U+022A5 </td> <td> <span class=glyph title="">&perp;</span> </td> <tr id=entity-bowtie><td> <code title="">bowtie;</code> </td> <td> U+022C8 </td> <td> <span class=glyph title="">&#8904;</span> </td> <tr id=entity-boxDL><td> <code title="">boxDL;</code> </td> <td> U+02557 </td> <td> <span class=glyph title="">&#9559;</span> </td> <tr id=entity-boxDR><td> <code title="">boxDR;</code> </td> <td> U+02554 </td> <td> <span class=glyph title="">&#9556;</span> </td> <tr id=entity-boxDl><td> <code title="">boxDl;</code> </td> <td> U+02556 </td> <td> <span class=glyph title="">&#9558;</span> </td> <tr id=entity-boxDr><td> <code title="">boxDr;</code> </td> <td> U+02553 </td> <td> <span class=glyph title="">&#9555;</span> </td> <tr id=entity-boxH><td> <code title="">boxH;</code> </td> <td> U+02550 </td> <td> <span class=glyph title="">&#9552;</span> </td> <tr id=entity-boxHD><td> <code title="">boxHD;</code> </td> <td> U+02566 </td> <td> <span class=glyph title="">&#9574;</span> </td> <tr id=entity-boxHU><td> <code title="">boxHU;</code> </td> <td> U+02569 </td> <td> <span class=glyph title="">&#9577;</span> </td> <tr id=entity-boxHd><td> <code title="">boxHd;</code> </td> <td> U+02564 </td> <td> <span class=glyph title="">&#9572;</span> </td> <tr id=entity-boxHu><td> <code title="">boxHu;</code> </td> <td> U+02567 </td> <td> <span class=glyph title="">&#9575;</span> </td> <tr id=entity-boxUL><td> <code title="">boxUL;</code> </td> <td> U+0255D </td> <td> <span class=glyph title="">&#9565;</span> </td> <tr id=entity-boxUR><td> <code title="">boxUR;</code> </td> <td> U+0255A </td> <td> <span class=glyph title="">&#9562;</span> </td> <tr id=entity-boxUl><td> <code title="">boxUl;</code> </td> <td> U+0255C </td> <td> <span class=glyph title="">&#9564;</span> </td> <tr id=entity-boxUr><td> <code title="">boxUr;</code> </td> <td> U+02559 </td> <td> <span class=glyph title="">&#9561;</span> </td> <tr id=entity-boxV><td> <code title="">boxV;</code> </td> <td> U+02551 </td> <td> <span class=glyph title="">&#9553;</span> </td> <tr id=entity-boxVH><td> <code title="">boxVH;</code> </td> <td> U+0256C </td> <td> <span class=glyph title="">&#9580;</span> </td> <tr id=entity-boxVL><td> <code title="">boxVL;</code> </td> <td> U+02563 </td> <td> <span class=glyph title="">&#9571;</span> </td> <tr id=entity-boxVR><td> <code title="">boxVR;</code> </td> <td> U+02560 </td> <td> <span class=glyph title="">&#9568;</span> </td> <tr id=entity-boxVh><td> <code title="">boxVh;</code> </td> <td> U+0256B </td> <td> <span class=glyph title="">&#9579;</span> </td> <tr id=entity-boxVl><td> <code title="">boxVl;</code> </td> <td> U+02562 </td> <td> <span class=glyph title="">&#9570;</span> </td> <tr id=entity-boxVr><td> <code title="">boxVr;</code> </td> <td> U+0255F </td> <td> <span class=glyph title="">&#9567;</span> </td> <tr id=entity-boxbox><td> <code title="">boxbox;</code> </td> <td> U+029C9 </td> <td> <span class=glyph title="">&#10697;</span> </td> <tr id=entity-boxdL><td> <code title="">boxdL;</code> </td> <td> U+02555 </td> <td> <span class=glyph title="">&#9557;</span> </td> <tr id=entity-boxdR><td> <code title="">boxdR;</code> </td> <td> U+02552 </td> <td> <span class=glyph title="">&#9554;</span> </td> <tr id=entity-boxdl><td> <code title="">boxdl;</code> </td> <td> U+02510 </td> <td> <span class=glyph title="">&#9488;</span> </td> <tr id=entity-boxdr><td> <code title="">boxdr;</code> </td> <td> U+0250C </td> <td> <span class=glyph title="">&#9484;</span> </td> <tr id=entity-boxh><td> <code title="">boxh;</code> </td> <td> U+02500 </td> <td> <span class=glyph title="">&#9472;</span> </td> <tr id=entity-boxhD><td> <code title="">boxhD;</code> </td> <td> U+02565 </td> <td> <span class=glyph title="">&#9573;</span> </td> <tr id=entity-boxhU><td> <code title="">boxhU;</code> </td> <td> U+02568 </td> <td> <span class=glyph title="">&#9576;</span> </td> <tr id=entity-boxhd><td> <code title="">boxhd;</code> </td> <td> U+0252C </td> <td> <span class=glyph title="">&#9516;</span> </td> <tr id=entity-boxhu><td> <code title="">boxhu;</code> </td> <td> U+02534 </td> <td> <span class=glyph title="">&#9524;</span> </td> <tr id=entity-boxminus><td> <code title="">boxminus;</code> </td> <td> U+0229F </td> <td> <span class=glyph title="">&#8863;</span> </td> <tr id=entity-boxplus><td> <code title="">boxplus;</code> </td> <td> U+0229E </td> <td> <span class=glyph title="">&#8862;</span> </td> <tr id=entity-boxtimes><td> <code title="">boxtimes;</code> </td> <td> U+022A0 </td> <td> <span class=glyph title="">&#8864;</span> </td> <tr id=entity-boxuL><td> <code title="">boxuL;</code> </td> <td> U+0255B </td> <td> <span class=glyph title="">&#9563;</span> </td> <tr id=entity-boxuR><td> <code title="">boxuR;</code> </td> <td> U+02558 </td> <td> <span class=glyph title="">&#9560;</span> </td> <tr id=entity-boxul><td> <code title="">boxul;</code> </td> <td> U+02518 </td> <td> <span class=glyph title="">&#9496;</span> </td> <tr id=entity-boxur><td> <code title="">boxur;</code> </td> <td> U+02514 </td> <td> <span class=glyph title="">&#9492;</span> </td> <tr id=entity-boxv><td> <code title="">boxv;</code> </td> <td> U+02502 </td> <td> <span class=glyph title="">&#9474;</span> </td> <tr id=entity-boxvH><td> <code title="">boxvH;</code> </td> <td> U+0256A </td> <td> <span class=glyph title="">&#9578;</span> </td> <tr id=entity-boxvL><td> <code title="">boxvL;</code> </td> <td> U+02561 </td> <td> <span class=glyph title="">&#9569;</span> </td> <tr id=entity-boxvR><td> <code title="">boxvR;</code> </td> <td> U+0255E </td> <td> <span class=glyph title="">&#9566;</span> </td> <tr id=entity-boxvh><td> <code title="">boxvh;</code> </td> <td> U+0253C </td> <td> <span class=glyph title="">&#9532;</span> </td> <tr id=entity-boxvl><td> <code title="">boxvl;</code> </td> <td> U+02524 </td> <td> <span class=glyph title="">&#9508;</span> </td> <tr id=entity-boxvr><td> <code title="">boxvr;</code> </td> <td> U+0251C </td> <td> <span class=glyph title="">&#9500;</span> </td> <tr id=entity-bprime><td> <code title="">bprime;</code> </td> <td> U+02035 </td> <td> <span class=glyph title="">&#8245;</span> </td> <tr id=entity-breve><td> <code title="">breve;</code> </td> <td> U+002D8 </td> <td> <span class=glyph title="">&#728;</span> </td> <tr id=entity-brvbar><td> <code title="">brvbar;</code> </td> <td> U+000A6 </td> <td> <span class=glyph title="">&brvbar;</span> </td> <tr id=entity-bscr><td> <code title="">bscr;</code> </td> <td> U+1D4B7 </td> <td> <span class=glyph title="">&#119991;</span> </td> <tr id=entity-bsemi><td> <code title="">bsemi;</code> </td> <td> U+0204F </td> <td> <span class=glyph title="">&#8271;</span> </td> <tr id=entity-bsim><td> <code title="">bsim;</code> </td> <td> U+0223D </td> <td> <span class=glyph title="">&#8765;</span> </td> <tr id=entity-bsime><td> <code title="">bsime;</code> </td> <td> U+022CD </td> <td> <span class=glyph title="">&#8909;</span> </td> <tr id=entity-bsol><td> <code title="">bsol;</code> </td> <td> U+0005C </td> <td> <span class=glyph title="">\</span> </td> <tr id=entity-bsolb><td> <code title="">bsolb;</code> </td> <td> U+029C5 </td> <td> <span class=glyph title="">&#10693;</span> </td> <tr id=entity-bsolhsub><td> <code title="">bsolhsub;</code> </td> <td> U+027C8 </td> <td> <span class=glyph title="">&#10184;</span> </td> <tr id=entity-bull><td> <code title="">bull;</code> </td> <td> U+02022 </td> <td> <span class=glyph title="">&bull;</span> </td> <tr id=entity-bullet><td> <code title="">bullet;</code> </td> <td> U+02022 </td> <td> <span class=glyph title="">&bull;</span> </td> <tr id=entity-bump><td> <code title="">bump;</code> </td> <td> U+0224E </td> <td> <span class=glyph title="">&#8782;</span> </td> <tr id=entity-bumpE><td> <code title="">bumpE;</code> </td> <td> U+02AAE </td> <td> <span class=glyph title="">&#10926;</span> </td> <tr id=entity-bumpe><td> <code title="">bumpe;</code> </td> <td> U+0224F </td> <td> <span class=glyph title="">&#8783;</span> </td> <tr id=entity-bumpeq><td> <code title="">bumpeq;</code> </td> <td> U+0224F </td> <td> <span class=glyph title="">&#8783;</span> </td> <tr id=entity-cacute><td> <code title="">cacute;</code> </td> <td> U+00107 </td> <td> <span class=glyph title="">&#263;</span> </td> <tr id=entity-cap><td> <code title="">cap;</code> </td> <td> U+02229 </td> <td> <span class=glyph title="">&cap;</span> </td> <tr id=entity-capand><td> <code title="">capand;</code> </td> <td> U+02A44 </td> <td> <span class=glyph title="">&#10820;</span> </td> <tr id=entity-capbrcup><td> <code title="">capbrcup;</code> </td> <td> U+02A49 </td> <td> <span class=glyph title="">&#10825;</span> </td> <tr id=entity-capcap><td> <code title="">capcap;</code> </td> <td> U+02A4B </td> <td> <span class=glyph title="">&#10827;</span> </td> <tr id=entity-capcup><td> <code title="">capcup;</code> </td> <td> U+02A47 </td> <td> <span class=glyph title="">&#10823;</span> </td> <tr id=entity-capdot><td> <code title="">capdot;</code> </td> <td> U+02A40 </td> <td> <span class=glyph title="">&#10816;</span> </td> <tr id=entity-caps><td> <code title="">caps;</code> </td> <td> U+02229 U+0FE00 </td> <td> <span class="glyph compound" title="">&cap;&#65024;</span> </td> <tr id=entity-caret><td> <code title="">caret;</code> </td> <td> U+02041 </td> <td> <span class=glyph title="">&#8257;</span> </td> <tr id=entity-caron><td> <code title="">caron;</code> </td> <td> U+002C7 </td> <td> <span class=glyph title="">&#711;</span> </td> <tr id=entity-ccaps><td> <code title="">ccaps;</code> </td> <td> U+02A4D </td> <td> <span class=glyph title="">&#10829;</span> </td> <tr id=entity-ccaron><td> <code title="">ccaron;</code> </td> <td> U+0010D </td> <td> <span class=glyph title="">&#269;</span> </td> <tr id=entity-ccedil><td> <code title="">ccedil;</code> </td> <td> U+000E7 </td> <td> <span class=glyph title="">&ccedil;</span> </td> <tr id=entity-ccirc><td> <code title="">ccirc;</code> </td> <td> U+00109 </td> <td> <span class=glyph title="">&#265;</span> </td> <tr id=entity-ccups><td> <code title="">ccups;</code> </td> <td> U+02A4C </td> <td> <span class=glyph title="">&#10828;</span> </td> <tr id=entity-ccupssm><td> <code title="">ccupssm;</code> </td> <td> U+02A50 </td> <td> <span class=glyph title="">&#10832;</span> </td> <tr id=entity-cdot><td> <code title="">cdot;</code> </td> <td> U+0010B </td> <td> <span class=glyph title="">&#267;</span> </td> <tr id=entity-cedil><td> <code title="">cedil;</code> </td> <td> U+000B8 </td> <td> <span class=glyph title="">&cedil;</span> </td> <tr id=entity-cemptyv><td> <code title="">cemptyv;</code> </td> <td> U+029B2 </td> <td> <span class=glyph title="">&#10674;</span> </td> <tr id=entity-cent><td> <code title="">cent;</code> </td> <td> U+000A2 </td> <td> <span class=glyph title="">&cent;</span> </td> <tr id=entity-centerdot><td> <code title="">centerdot;</code> </td> <td> U+000B7 </td> <td> <span class=glyph title="">&middot;</span> </td> <tr id=entity-cfr><td> <code title="">cfr;</code> </td> <td> U+1D520 </td> <td> <span class=glyph title="">&#120096;</span> </td> <tr id=entity-chcy><td> <code title="">chcy;</code> </td> <td> U+00447 </td> <td> <span class=glyph title="">&#1095;</span> </td> <tr id=entity-check><td> <code title="">check;</code> </td> <td> U+02713 </td> <td> <span class=glyph title="">&#10003;</span> </td> <tr id=entity-checkmark><td> <code title="">checkmark;</code> </td> <td> U+02713 </td> <td> <span class=glyph title="">&#10003;</span> </td> <tr id=entity-chi><td> <code title="">chi;</code> </td> <td> U+003C7 </td> <td> <span class=glyph title="">&chi;</span> </td> <tr id=entity-cir><td> <code title="">cir;</code> </td> <td> U+025CB </td> <td> <span class=glyph title="">&#9675;</span> </td> <tr id=entity-cirE><td> <code title="">cirE;</code> </td> <td> U+029C3 </td> <td> <span class=glyph title="">&#10691;</span> </td> <tr id=entity-circ><td> <code title="">circ;</code> </td> <td> U+002C6 </td> <td> <span class=glyph title="">&circ;</span> </td> <tr id=entity-circeq><td> <code title="">circeq;</code> </td> <td> U+02257 </td> <td> <span class=glyph title="">&#8791;</span> </td> <tr id=entity-circlearrowleft><td> <code title="">circlearrowleft;</code> </td> <td> U+021BA </td> <td> <span class=glyph title="">&#8634;</span> </td> <tr id=entity-circlearrowright><td> <code title="">circlearrowright;</code> </td> <td> U+021BB </td> <td> <span class=glyph title="">&#8635;</span> </td> <tr id=entity-circledR><td> <code title="">circledR;</code> </td> <td> U+000AE </td> <td> <span class=glyph title="">&reg;</span> </td> <tr id=entity-circledS><td> <code title="">circledS;</code> </td> <td> U+024C8 </td> <td> <span class=glyph title="">&#9416;</span> </td> <tr id=entity-circledast><td> <code title="">circledast;</code> </td> <td> U+0229B </td> <td> <span class=glyph title="">&#8859;</span> </td> <tr id=entity-circledcirc><td> <code title="">circledcirc;</code> </td> <td> U+0229A </td> <td> <span class=glyph title="">&#8858;</span> </td> <tr id=entity-circleddash><td> <code title="">circleddash;</code> </td> <td> U+0229D </td> <td> <span class=glyph title="">&#8861;</span> </td> <tr id=entity-cire><td> <code title="">cire;</code> </td> <td> U+02257 </td> <td> <span class=glyph title="">&#8791;</span> </td> <tr id=entity-cirfnint><td> <code title="">cirfnint;</code> </td> <td> U+02A10 </td> <td> <span class=glyph title="">&#10768;</span> </td> <tr id=entity-cirmid><td> <code title="">cirmid;</code> </td> <td> U+02AEF </td> <td> <span class=glyph title="">&#10991;</span> </td> <tr id=entity-cirscir><td> <code title="">cirscir;</code> </td> <td> U+029C2 </td> <td> <span class=glyph title="">&#10690;</span> </td> <tr id=entity-clubs><td> <code title="">clubs;</code> </td> <td> U+02663 </td> <td> <span class=glyph title="">&clubs;</span> </td> <tr id=entity-clubsuit><td> <code title="">clubsuit;</code> </td> <td> U+02663 </td> <td> <span class=glyph title="">&clubs;</span> </td> <tr id=entity-colon><td> <code title="">colon;</code> </td> <td> U+0003A </td> <td> <span class=glyph title="">:</span> </td> <tr id=entity-colone><td> <code title="">colone;</code> </td> <td> U+02254 </td> <td> <span class=glyph title="">&#8788;</span> </td> <tr id=entity-coloneq><td> <code title="">coloneq;</code> </td> <td> U+02254 </td> <td> <span class=glyph title="">&#8788;</span> </td> <tr id=entity-comma><td> <code title="">comma;</code> </td> <td> U+0002C </td> <td> <span class=glyph title="">,</span> </td> <tr id=entity-commat><td> <code title="">commat;</code> </td> <td> U+00040 </td> <td> <span class=glyph title="">@</span> </td> <tr id=entity-comp><td> <code title="">comp;</code> </td> <td> U+02201 </td> <td> <span class=glyph title="">&#8705;</span> </td> <tr id=entity-compfn><td> <code title="">compfn;</code> </td> <td> U+02218 </td> <td> <span class=glyph title="">&#8728;</span> </td> <tr id=entity-complement><td> <code title="">complement;</code> </td> <td> U+02201 </td> <td> <span class=glyph title="">&#8705;</span> </td> <tr id=entity-complexes><td> <code title="">complexes;</code> </td> <td> U+02102 </td> <td> <span class=glyph title="">&#8450;</span> </td> <tr id=entity-cong><td> <code title="">cong;</code> </td> <td> U+02245 </td> <td> <span class=glyph title="">&cong;</span> </td> <tr id=entity-congdot><td> <code title="">congdot;</code> </td> <td> U+02A6D </td> <td> <span class=glyph title="">&#10861;</span> </td> <tr id=entity-conint><td> <code title="">conint;</code> </td> <td> U+0222E </td> <td> <span class=glyph title="">&#8750;</span> </td> <tr id=entity-copf><td> <code title="">copf;</code> </td> <td> U+1D554 </td> <td> <span class=glyph title="">&#120148;</span> </td> <tr id=entity-coprod><td> <code title="">coprod;</code> </td> <td> U+02210 </td> <td> <span class=glyph title="">&#8720;</span> </td> <tr id=entity-copy><td> <code title="">copy;</code> </td> <td> U+000A9 </td> <td> <span class=glyph title="">&copy;</span> </td> <tr id=entity-copysr><td> <code title="">copysr;</code> </td> <td> U+02117 </td> <td> <span class=glyph title="">&#8471;</span> </td> <tr id=entity-crarr><td> <code title="">crarr;</code> </td> <td> U+021B5 </td> <td> <span class=glyph title="">&crarr;</span> </td> <tr id=entity-cross><td> <code title="">cross;</code> </td> <td> U+02717 </td> <td> <span class=glyph title="">&#10007;</span> </td> <tr id=entity-cscr><td> <code title="">cscr;</code> </td> <td> U+1D4B8 </td> <td> <span class=glyph title="">&#119992;</span> </td> <tr id=entity-csub><td> <code title="">csub;</code> </td> <td> U+02ACF </td> <td> <span class=glyph title="">&#10959;</span> </td> <tr id=entity-csube><td> <code title="">csube;</code> </td> <td> U+02AD1 </td> <td> <span class=glyph title="">&#10961;</span> </td> <tr id=entity-csup><td> <code title="">csup;</code> </td> <td> U+02AD0 </td> <td> <span class=glyph title="">&#10960;</span> </td> <tr id=entity-csupe><td> <code title="">csupe;</code> </td> <td> U+02AD2 </td> <td> <span class=glyph title="">&#10962;</span> </td> <tr id=entity-ctdot><td> <code title="">ctdot;</code> </td> <td> U+022EF </td> <td> <span class=glyph title="">&#8943;</span> </td> <tr id=entity-cudarrl><td> <code title="">cudarrl;</code> </td> <td> U+02938 </td> <td> <span class=glyph title="">&#10552;</span> </td> <tr id=entity-cudarrr><td> <code title="">cudarrr;</code> </td> <td> U+02935 </td> <td> <span class=glyph title="">&#10549;</span> </td> <tr id=entity-cuepr><td> <code title="">cuepr;</code> </td> <td> U+022DE </td> <td> <span class=glyph title="">&#8926;</span> </td> <tr id=entity-cuesc><td> <code title="">cuesc;</code> </td> <td> U+022DF </td> <td> <span class=glyph title="">&#8927;</span> </td> <tr id=entity-cularr><td> <code title="">cularr;</code> </td> <td> U+021B6 </td> <td> <span class=glyph title="">&#8630;</span> </td> <tr id=entity-cularrp><td> <code title="">cularrp;</code> </td> <td> U+0293D </td> <td> <span class=glyph title="">&#10557;</span> </td> <tr id=entity-cup><td> <code title="">cup;</code> </td> <td> U+0222A </td> <td> <span class=glyph title="">&cup;</span> </td> <tr id=entity-cupbrcap><td> <code title="">cupbrcap;</code> </td> <td> U+02A48 </td> <td> <span class=glyph title="">&#10824;</span> </td> <tr id=entity-cupcap><td> <code title="">cupcap;</code> </td> <td> U+02A46 </td> <td> <span class=glyph title="">&#10822;</span> </td> <tr id=entity-cupcup><td> <code title="">cupcup;</code> </td> <td> U+02A4A </td> <td> <span class=glyph title="">&#10826;</span> </td> <tr id=entity-cupdot><td> <code title="">cupdot;</code> </td> <td> U+0228D </td> <td> <span class=glyph title="">&#8845;</span> </td> <tr id=entity-cupor><td> <code title="">cupor;</code> </td> <td> U+02A45 </td> <td> <span class=glyph title="">&#10821;</span> </td> <tr id=entity-cups><td> <code title="">cups;</code> </td> <td> U+0222A U+0FE00 </td> <td> <span class="glyph compound" title="">&cup;&#65024;</span> </td> <tr id=entity-curarr><td> <code title="">curarr;</code> </td> <td> U+021B7 </td> <td> <span class=glyph title="">&#8631;</span> </td> <tr id=entity-curarrm><td> <code title="">curarrm;</code> </td> <td> U+0293C </td> <td> <span class=glyph title="">&#10556;</span> </td> <tr id=entity-curlyeqprec><td> <code title="">curlyeqprec;</code> </td> <td> U+022DE </td> <td> <span class=glyph title="">&#8926;</span> </td> <tr id=entity-curlyeqsucc><td> <code title="">curlyeqsucc;</code> </td> <td> U+022DF </td> <td> <span class=glyph title="">&#8927;</span> </td> <tr id=entity-curlyvee><td> <code title="">curlyvee;</code> </td> <td> U+022CE </td> <td> <span class=glyph title="">&#8910;</span> </td> <tr id=entity-curlywedge><td> <code title="">curlywedge;</code> </td> <td> U+022CF </td> <td> <span class=glyph title="">&#8911;</span> </td> <tr id=entity-curren><td> <code title="">curren;</code> </td> <td> U+000A4 </td> <td> <span class=glyph title="">&curren;</span> </td> <tr id=entity-curvearrowleft><td> <code title="">curvearrowleft;</code> </td> <td> U+021B6 </td> <td> <span class=glyph title="">&#8630;</span> </td> <tr id=entity-curvearrowright><td> <code title="">curvearrowright;</code> </td> <td> U+021B7 </td> <td> <span class=glyph title="">&#8631;</span> </td> <tr id=entity-cuvee><td> <code title="">cuvee;</code> </td> <td> U+022CE </td> <td> <span class=glyph title="">&#8910;</span> </td> <tr id=entity-cuwed><td> <code title="">cuwed;</code> </td> <td> U+022CF </td> <td> <span class=glyph title="">&#8911;</span> </td> <tr id=entity-cwconint><td> <code title="">cwconint;</code> </td> <td> U+02232 </td> <td> <span class=glyph title="">&#8754;</span> </td> <tr id=entity-cwint><td> <code title="">cwint;</code> </td> <td> U+02231 </td> <td> <span class=glyph title="">&#8753;</span> </td> <tr id=entity-cylcty><td> <code title="">cylcty;</code> </td> <td> U+0232D </td> <td> <span class=glyph title="">&#9005;</span> </td> <tr id=entity-dArr><td> <code title="">dArr;</code> </td> <td> U+021D3 </td> <td> <span class=glyph title="">&dArr;</span> </td> <tr id=entity-dHar><td> <code title="">dHar;</code> </td> <td> U+02965 </td> <td> <span class=glyph title="">&#10597;</span> </td> <tr id=entity-dagger><td> <code title="">dagger;</code> </td> <td> U+02020 </td> <td> <span class=glyph title="">&dagger;</span> </td> <tr id=entity-daleth><td> <code title="">daleth;</code> </td> <td> U+02138 </td> <td> <span class=glyph title="">&#8504;</span> </td> <tr id=entity-darr><td> <code title="">darr;</code> </td> <td> U+02193 </td> <td> <span class=glyph title="">&darr;</span> </td> <tr id=entity-dash><td> <code title="">dash;</code> </td> <td> U+02010 </td> <td> <span class=glyph title="">&#8208;</span> </td> <tr id=entity-dashv><td> <code title="">dashv;</code> </td> <td> U+022A3 </td> <td> <span class=glyph title="">&#8867;</span> </td> <tr id=entity-dbkarow><td> <code title="">dbkarow;</code> </td> <td> U+0290F </td> <td> <span class=glyph title="">&#10511;</span> </td> <tr id=entity-dblac><td> <code title="">dblac;</code> </td> <td> U+002DD </td> <td> <span class=glyph title="">&#733;</span> </td> <tr id=entity-dcaron><td> <code title="">dcaron;</code> </td> <td> U+0010F </td> <td> <span class=glyph title="">&#271;</span> </td> <tr id=entity-dcy><td> <code title="">dcy;</code> </td> <td> U+00434 </td> <td> <span class=glyph title="">&#1076;</span> </td> <tr id=entity-dd><td> <code title="">dd;</code> </td> <td> U+02146 </td> <td> <span class=glyph title="">&#8518;</span> </td> <tr id=entity-ddagger><td> <code title="">ddagger;</code> </td> <td> U+02021 </td> <td> <span class=glyph title="">&Dagger;</span> </td> <tr id=entity-ddarr><td> <code title="">ddarr;</code> </td> <td> U+021CA </td> <td> <span class=glyph title="">&#8650;</span> </td> <tr id=entity-ddotseq><td> <code title="">ddotseq;</code> </td> <td> U+02A77 </td> <td> <span class=glyph title="">&#10871;</span> </td> <tr id=entity-deg><td> <code title="">deg;</code> </td> <td> U+000B0 </td> <td> <span class=glyph title="">&deg;</span> </td> <tr id=entity-delta><td> <code title="">delta;</code> </td> <td> U+003B4 </td> <td> <span class=glyph title="">&delta;</span> </td> <tr id=entity-demptyv><td> <code title="">demptyv;</code> </td> <td> U+029B1 </td> <td> <span class=glyph title="">&#10673;</span> </td> <tr id=entity-dfisht><td> <code title="">dfisht;</code> </td> <td> U+0297F </td> <td> <span class=glyph title="">&#10623;</span> </td> <tr id=entity-dfr><td> <code title="">dfr;</code> </td> <td> U+1D521 </td> <td> <span class=glyph title="">&#120097;</span> </td> <tr id=entity-dharl><td> <code title="">dharl;</code> </td> <td> U+021C3 </td> <td> <span class=glyph title="">&#8643;</span> </td> <tr id=entity-dharr><td> <code title="">dharr;</code> </td> <td> U+021C2 </td> <td> <span class=glyph title="">&#8642;</span> </td> <tr id=entity-diam><td> <code title="">diam;</code> </td> <td> U+022C4 </td> <td> <span class=glyph title="">&#8900;</span> </td> <tr id=entity-diamond><td> <code title="">diamond;</code> </td> <td> U+022C4 </td> <td> <span class=glyph title="">&#8900;</span> </td> <tr id=entity-diamondsuit><td> <code title="">diamondsuit;</code> </td> <td> U+02666 </td> <td> <span class=glyph title="">&diams;</span> </td> <tr id=entity-diams><td> <code title="">diams;</code> </td> <td> U+02666 </td> <td> <span class=glyph title="">&diams;</span> </td> <tr id=entity-die><td> <code title="">die;</code> </td> <td> U+000A8 </td> <td> <span class=glyph title="">&uml;</span> </td> <tr id=entity-digamma><td> <code title="">digamma;</code> </td> <td> U+003DD </td> <td> <span class=glyph title="">&#989;</span> </td> <tr id=entity-disin><td> <code title="">disin;</code> </td> <td> U+022F2 </td> <td> <span class=glyph title="">&#8946;</span> </td> <tr id=entity-div><td> <code title="">div;</code> </td> <td> U+000F7 </td> <td> <span class=glyph title="">&divide;</span> </td> <tr id=entity-divide><td> <code title="">divide;</code> </td> <td> U+000F7 </td> <td> <span class=glyph title="">&divide;</span> </td> <tr id=entity-divideontimes><td> <code title="">divideontimes;</code> </td> <td> U+022C7 </td> <td> <span class=glyph title="">&#8903;</span> </td> <tr id=entity-divonx><td> <code title="">divonx;</code> </td> <td> U+022C7 </td> <td> <span class=glyph title="">&#8903;</span> </td> <tr id=entity-djcy><td> <code title="">djcy;</code> </td> <td> U+00452 </td> <td> <span class=glyph title="">&#1106;</span> </td> <tr id=entity-dlcorn><td> <code title="">dlcorn;</code> </td> <td> U+0231E </td> <td> <span class=glyph title="">&#8990;</span> </td> <tr id=entity-dlcrop><td> <code title="">dlcrop;</code> </td> <td> U+0230D </td> <td> <span class=glyph title="">&#8973;</span> </td> <tr id=entity-dollar><td> <code title="">dollar;</code> </td> <td> U+00024 </td> <td> <span class=glyph title="">$</span> </td> <tr id=entity-dopf><td> <code title="">dopf;</code> </td> <td> U+1D555 </td> <td> <span class=glyph title="">&#120149;</span> </td> <tr id=entity-dot><td> <code title="">dot;</code> </td> <td> U+002D9 </td> <td> <span class=glyph title="">&#729;</span> </td> <tr id=entity-doteq><td> <code title="">doteq;</code> </td> <td> U+02250 </td> <td> <span class=glyph title="">&#8784;</span> </td> <tr id=entity-doteqdot><td> <code title="">doteqdot;</code> </td> <td> U+02251 </td> <td> <span class=glyph title="">&#8785;</span> </td> <tr id=entity-dotminus><td> <code title="">dotminus;</code> </td> <td> U+02238 </td> <td> <span class=glyph title="">&#8760;</span> </td> <tr id=entity-dotplus><td> <code title="">dotplus;</code> </td> <td> U+02214 </td> <td> <span class=glyph title="">&#8724;</span> </td> <tr id=entity-dotsquare><td> <code title="">dotsquare;</code> </td> <td> U+022A1 </td> <td> <span class=glyph title="">&#8865;</span> </td> <tr id=entity-doublebarwedge><td> <code title="">doublebarwedge;</code> </td> <td> U+02306 </td> <td> <span class=glyph title="">&#8966;</span> </td> <tr id=entity-downarrow><td> <code title="">downarrow;</code> </td> <td> U+02193 </td> <td> <span class=glyph title="">&darr;</span> </td> <tr id=entity-downdownarrows><td> <code title="">downdownarrows;</code> </td> <td> U+021CA </td> <td> <span class=glyph title="">&#8650;</span> </td> <tr id=entity-downharpoonleft><td> <code title="">downharpoonleft;</code> </td> <td> U+021C3 </td> <td> <span class=glyph title="">&#8643;</span> </td> <tr id=entity-downharpoonright><td> <code title="">downharpoonright;</code> </td> <td> U+021C2 </td> <td> <span class=glyph title="">&#8642;</span> </td> <tr id=entity-drbkarow><td> <code title="">drbkarow;</code> </td> <td> U+02910 </td> <td> <span class=glyph title="">&#10512;</span> </td> <tr id=entity-drcorn><td> <code title="">drcorn;</code> </td> <td> U+0231F </td> <td> <span class=glyph title="">&#8991;</span> </td> <tr id=entity-drcrop><td> <code title="">drcrop;</code> </td> <td> U+0230C </td> <td> <span class=glyph title="">&#8972;</span> </td> <tr id=entity-dscr><td> <code title="">dscr;</code> </td> <td> U+1D4B9 </td> <td> <span class=glyph title="">&#119993;</span> </td> <tr id=entity-dscy><td> <code title="">dscy;</code> </td> <td> U+00455 </td> <td> <span class=glyph title="">&#1109;</span> </td> <tr id=entity-dsol><td> <code title="">dsol;</code> </td> <td> U+029F6 </td> <td> <span class=glyph title="">&#10742;</span> </td> <tr id=entity-dstrok><td> <code title="">dstrok;</code> </td> <td> U+00111 </td> <td> <span class=glyph title="">&#273;</span> </td> <tr id=entity-dtdot><td> <code title="">dtdot;</code> </td> <td> U+022F1 </td> <td> <span class=glyph title="">&#8945;</span> </td> <tr id=entity-dtri><td> <code title="">dtri;</code> </td> <td> U+025BF </td> <td> <span class=glyph title="">&#9663;</span> </td> <tr id=entity-dtrif><td> <code title="">dtrif;</code> </td> <td> U+025BE </td> <td> <span class=glyph title="">&#9662;</span> </td> <tr id=entity-duarr><td> <code title="">duarr;</code> </td> <td> U+021F5 </td> <td> <span class=glyph title="">&#8693;</span> </td> <tr id=entity-duhar><td> <code title="">duhar;</code> </td> <td> U+0296F </td> <td> <span class=glyph title="">&#10607;</span> </td> <tr id=entity-dwangle><td> <code title="">dwangle;</code> </td> <td> U+029A6 </td> <td> <span class=glyph title="">&#10662;</span> </td> <tr id=entity-dzcy><td> <code title="">dzcy;</code> </td> <td> U+0045F </td> <td> <span class=glyph title="">&#1119;</span> </td> <tr id=entity-dzigrarr><td> <code title="">dzigrarr;</code> </td> <td> U+027FF </td> <td> <span class=glyph title="">&#10239;</span> </td> <tr id=entity-eDDot><td> <code title="">eDDot;</code> </td> <td> U+02A77 </td> <td> <span class=glyph title="">&#10871;</span> </td> <tr id=entity-eDot><td> <code title="">eDot;</code> </td> <td> U+02251 </td> <td> <span class=glyph title="">&#8785;</span> </td> <tr id=entity-eacute><td> <code title="">eacute;</code> </td> <td> U+000E9 </td> <td> <span class=glyph title="">&eacute;</span> </td> <tr id=entity-easter><td> <code title="">easter;</code> </td> <td> U+02A6E </td> <td> <span class=glyph title="">&#10862;</span> </td> <tr id=entity-ecaron><td> <code title="">ecaron;</code> </td> <td> U+0011B </td> <td> <span class=glyph title="">&#283;</span> </td> <tr id=entity-ecir><td> <code title="">ecir;</code> </td> <td> U+02256 </td> <td> <span class=glyph title="">&#8790;</span> </td> <tr id=entity-ecirc><td> <code title="">ecirc;</code> </td> <td> U+000EA </td> <td> <span class=glyph title="">&ecirc;</span> </td> <tr id=entity-ecolon><td> <code title="">ecolon;</code> </td> <td> U+02255 </td> <td> <span class=glyph title="">&#8789;</span> </td> <tr id=entity-ecy><td> <code title="">ecy;</code> </td> <td> U+0044D </td> <td> <span class=glyph title="">&#1101;</span> </td> <tr id=entity-edot><td> <code title="">edot;</code> </td> <td> U+00117 </td> <td> <span class=glyph title="">&#279;</span> </td> <tr id=entity-ee><td> <code title="">ee;</code> </td> <td> U+02147 </td> <td> <span class=glyph title="">&#8519;</span> </td> <tr id=entity-efDot><td> <code title="">efDot;</code> </td> <td> U+02252 </td> <td> <span class=glyph title="">&#8786;</span> </td> <tr id=entity-efr><td> <code title="">efr;</code> </td> <td> U+1D522 </td> <td> <span class=glyph title="">&#120098;</span> </td> <tr id=entity-eg><td> <code title="">eg;</code> </td> <td> U+02A9A </td> <td> <span class=glyph title="">&#10906;</span> </td> <tr id=entity-egrave><td> <code title="">egrave;</code> </td> <td> U+000E8 </td> <td> <span class=glyph title="">&egrave;</span> </td> <tr id=entity-egs><td> <code title="">egs;</code> </td> <td> U+02A96 </td> <td> <span class=glyph title="">&#10902;</span> </td> <tr id=entity-egsdot><td> <code title="">egsdot;</code> </td> <td> U+02A98 </td> <td> <span class=glyph title="">&#10904;</span> </td> <tr id=entity-el><td> <code title="">el;</code> </td> <td> U+02A99 </td> <td> <span class=glyph title="">&#10905;</span> </td> <tr id=entity-elinters><td> <code title="">elinters;</code> </td> <td> U+023E7 </td> <td> <span class=glyph title="">&#9191;</span> </td> <tr id=entity-ell><td> <code title="">ell;</code> </td> <td> U+02113 </td> <td> <span class=glyph title="">&#8467;</span> </td> <tr id=entity-els><td> <code title="">els;</code> </td> <td> U+02A95 </td> <td> <span class=glyph title="">&#10901;</span> </td> <tr id=entity-elsdot><td> <code title="">elsdot;</code> </td> <td> U+02A97 </td> <td> <span class=glyph title="">&#10903;</span> </td> <tr id=entity-emacr><td> <code title="">emacr;</code> </td> <td> U+00113 </td> <td> <span class=glyph title="">&#275;</span> </td> <tr id=entity-empty><td> <code title="">empty;</code> </td> <td> U+02205 </td> <td> <span class=glyph title="">&empty;</span> </td> <tr id=entity-emptyset><td> <code title="">emptyset;</code> </td> <td> U+02205 </td> <td> <span class=glyph title="">&empty;</span> </td> <tr id=entity-emptyv><td> <code title="">emptyv;</code> </td> <td> U+02205 </td> <td> <span class=glyph title="">&empty;</span> </td> <tr id=entity-emsp><td> <code title="">emsp;</code> </td> <td> U+02003 </td> <td> <span class=glyph title="">&emsp;</span> </td> <tr id=entity-emsp13><td> <code title="">emsp13;</code> </td> <td> U+02004 </td> <td> <span class=glyph title="">&#8196;</span> </td> <tr id=entity-emsp14><td> <code title="">emsp14;</code> </td> <td> U+02005 </td> <td> <span class=glyph title="">&#8197;</span> </td> <tr id=entity-eng><td> <code title="">eng;</code> </td> <td> U+0014B </td> <td> <span class=glyph title="">&#331;</span> </td> <tr id=entity-ensp><td> <code title="">ensp;</code> </td> <td> U+02002 </td> <td> <span class=glyph title="">&ensp;</span> </td> <tr id=entity-eogon><td> <code title="">eogon;</code> </td> <td> U+00119 </td> <td> <span class=glyph title="">&#281;</span> </td> <tr id=entity-eopf><td> <code title="">eopf;</code> </td> <td> U+1D556 </td> <td> <span class=glyph title="">&#120150;</span> </td> <tr id=entity-epar><td> <code title="">epar;</code> </td> <td> U+022D5 </td> <td> <span class=glyph title="">&#8917;</span> </td> <tr id=entity-eparsl><td> <code title="">eparsl;</code> </td> <td> U+029E3 </td> <td> <span class=glyph title="">&#10723;</span> </td> <tr id=entity-eplus><td> <code title="">eplus;</code> </td> <td> U+02A71 </td> <td> <span class=glyph title="">&#10865;</span> </td> <tr id=entity-epsi><td> <code title="">epsi;</code> </td> <td> U+003B5 </td> <td> <span class=glyph title="">&epsilon;</span> </td> <tr id=entity-epsilon><td> <code title="">epsilon;</code> </td> <td> U+003B5 </td> <td> <span class=glyph title="">&epsilon;</span> </td> <tr id=entity-epsiv><td> <code title="">epsiv;</code> </td> <td> U+003F5 </td> <td> <span class=glyph title="">&#1013;</span> </td> <tr id=entity-eqcirc><td> <code title="">eqcirc;</code> </td> <td> U+02256 </td> <td> <span class=glyph title="">&#8790;</span> </td> <tr id=entity-eqcolon><td> <code title="">eqcolon;</code> </td> <td> U+02255 </td> <td> <span class=glyph title="">&#8789;</span> </td> <tr id=entity-eqsim><td> <code title="">eqsim;</code> </td> <td> U+02242 </td> <td> <span class=glyph title="">&#8770;</span> </td> <tr id=entity-eqslantgtr><td> <code title="">eqslantgtr;</code> </td> <td> U+02A96 </td> <td> <span class=glyph title="">&#10902;</span> </td> <tr id=entity-eqslantless><td> <code title="">eqslantless;</code> </td> <td> U+02A95 </td> <td> <span class=glyph title="">&#10901;</span> </td> <tr id=entity-equals><td> <code title="">equals;</code> </td> <td> U+0003D </td> <td> <span class=glyph title="">=</span> </td> <tr id=entity-equest><td> <code title="">equest;</code> </td> <td> U+0225F </td> <td> <span class=glyph title="">&#8799;</span> </td> <tr id=entity-equiv><td> <code title="">equiv;</code> </td> <td> U+02261 </td> <td> <span class=glyph title="">&equiv;</span> </td> <tr id=entity-equivDD><td> <code title="">equivDD;</code> </td> <td> U+02A78 </td> <td> <span class=glyph title="">&#10872;</span> </td> <tr id=entity-eqvparsl><td> <code title="">eqvparsl;</code> </td> <td> U+029E5 </td> <td> <span class=glyph title="">&#10725;</span> </td> <tr id=entity-erDot><td> <code title="">erDot;</code> </td> <td> U+02253 </td> <td> <span class=glyph title="">&#8787;</span> </td> <tr id=entity-erarr><td> <code title="">erarr;</code> </td> <td> U+02971 </td> <td> <span class=glyph title="">&#10609;</span> </td> <tr id=entity-escr><td> <code title="">escr;</code> </td> <td> U+0212F </td> <td> <span class=glyph title="">&#8495;</span> </td> <tr id=entity-esdot><td> <code title="">esdot;</code> </td> <td> U+02250 </td> <td> <span class=glyph title="">&#8784;</span> </td> <tr id=entity-esim><td> <code title="">esim;</code> </td> <td> U+02242 </td> <td> <span class=glyph title="">&#8770;</span> </td> <tr id=entity-eta><td> <code title="">eta;</code> </td> <td> U+003B7 </td> <td> <span class=glyph title="">&eta;</span> </td> <tr id=entity-eth><td> <code title="">eth;</code> </td> <td> U+000F0 </td> <td> <span class=glyph title="">&eth;</span> </td> <tr id=entity-euml><td> <code title="">euml;</code> </td> <td> U+000EB </td> <td> <span class=glyph title="">&euml;</span> </td> <tr id=entity-euro><td> <code title="">euro;</code> </td> <td> U+020AC </td> <td> <span class=glyph title="">&euro;</span> </td> <tr id=entity-excl><td> <code title="">excl;</code> </td> <td> U+00021 </td> <td> <span class=glyph title="">!</span> </td> <tr id=entity-exist><td> <code title="">exist;</code> </td> <td> U+02203 </td> <td> <span class=glyph title="">&exist;</span> </td> <tr id=entity-expectation><td> <code title="">expectation;</code> </td> <td> U+02130 </td> <td> <span class=glyph title="">&#8496;</span> </td> <tr id=entity-exponentiale><td> <code title="">exponentiale;</code> </td> <td> U+02147 </td> <td> <span class=glyph title="">&#8519;</span> </td> <tr id=entity-fallingdotseq><td> <code title="">fallingdotseq;</code> </td> <td> U+02252 </td> <td> <span class=glyph title="">&#8786;</span> </td> <tr id=entity-fcy><td> <code title="">fcy;</code> </td> <td> U+00444 </td> <td> <span class=glyph title="">&#1092;</span> </td> <tr id=entity-female><td> <code title="">female;</code> </td> <td> U+02640 </td> <td> <span class=glyph title="">&#9792;</span> </td> <tr id=entity-ffilig><td> <code title="">ffilig;</code> </td> <td> U+0FB03 </td> <td> <span class=glyph title="">&#64259;</span> </td> <tr id=entity-fflig><td> <code title="">fflig;</code> </td> <td> U+0FB00 </td> <td> <span class=glyph title="">&#64256;</span> </td> <tr id=entity-ffllig><td> <code title="">ffllig;</code> </td> <td> U+0FB04 </td> <td> <span class=glyph title="">&#64260;</span> </td> <tr id=entity-ffr><td> <code title="">ffr;</code> </td> <td> U+1D523 </td> <td> <span class=glyph title="">&#120099;</span> </td> <tr id=entity-filig><td> <code title="">filig;</code> </td> <td> U+0FB01 </td> <td> <span class=glyph title="">&#64257;</span> </td> <tr id=entity-fjlig><td> <code title="">fjlig;</code> </td> <td> U+00066 U+0006A </td> <td> <span class="glyph compound" title="">fj</span> </td> <tr id=entity-flat><td> <code title="">flat;</code> </td> <td> U+0266D </td> <td> <span class=glyph title="">&#9837;</span> </td> <tr id=entity-fllig><td> <code title="">fllig;</code> </td> <td> U+0FB02 </td> <td> <span class=glyph title="">&#64258;</span> </td> <tr id=entity-fltns><td> <code title="">fltns;</code> </td> <td> U+025B1 </td> <td> <span class=glyph title="">&#9649;</span> </td> <tr id=entity-fnof><td> <code title="">fnof;</code> </td> <td> U+00192 </td> <td> <span class=glyph title="">&fnof;</span> </td> <tr id=entity-fopf><td> <code title="">fopf;</code> </td> <td> U+1D557 </td> <td> <span class=glyph title="">&#120151;</span> </td> <tr id=entity-forall><td> <code title="">forall;</code> </td> <td> U+02200 </td> <td> <span class=glyph title="">&forall;</span> </td> <tr id=entity-fork><td> <code title="">fork;</code> </td> <td> U+022D4 </td> <td> <span class=glyph title="">&#8916;</span> </td> <tr id=entity-forkv><td> <code title="">forkv;</code> </td> <td> U+02AD9 </td> <td> <span class=glyph title="">&#10969;</span> </td> <tr id=entity-fpartint><td> <code title="">fpartint;</code> </td> <td> U+02A0D </td> <td> <span class=glyph title="">&#10765;</span> </td> <tr id=entity-frac12><td> <code title="">frac12;</code> </td> <td> U+000BD </td> <td> <span class=glyph title="">&frac12;</span> </td> <tr id=entity-frac13><td> <code title="">frac13;</code> </td> <td> U+02153 </td> <td> <span class=glyph title="">&#8531;</span> </td> <tr id=entity-frac14><td> <code title="">frac14;</code> </td> <td> U+000BC </td> <td> <span class=glyph title="">&frac14;</span> </td> <tr id=entity-frac15><td> <code title="">frac15;</code> </td> <td> U+02155 </td> <td> <span class=glyph title="">&#8533;</span> </td> <tr id=entity-frac16><td> <code title="">frac16;</code> </td> <td> U+02159 </td> <td> <span class=glyph title="">&#8537;</span> </td> <tr id=entity-frac18><td> <code title="">frac18;</code> </td> <td> U+0215B </td> <td> <span class=glyph title="">&#8539;</span> </td> <tr id=entity-frac23><td> <code title="">frac23;</code> </td> <td> U+02154 </td> <td> <span class=glyph title="">&#8532;</span> </td> <tr id=entity-frac25><td> <code title="">frac25;</code> </td> <td> U+02156 </td> <td> <span class=glyph title="">&#8534;</span> </td> <tr id=entity-frac34><td> <code title="">frac34;</code> </td> <td> U+000BE </td> <td> <span class=glyph title="">&frac34;</span> </td> <tr id=entity-frac35><td> <code title="">frac35;</code> </td> <td> U+02157 </td> <td> <span class=glyph title="">&#8535;</span> </td> <tr id=entity-frac38><td> <code title="">frac38;</code> </td> <td> U+0215C </td> <td> <span class=glyph title="">&#8540;</span> </td> <tr id=entity-frac45><td> <code title="">frac45;</code> </td> <td> U+02158 </td> <td> <span class=glyph title="">&#8536;</span> </td> <tr id=entity-frac56><td> <code title="">frac56;</code> </td> <td> U+0215A </td> <td> <span class=glyph title="">&#8538;</span> </td> <tr id=entity-frac58><td> <code title="">frac58;</code> </td> <td> U+0215D </td> <td> <span class=glyph title="">&#8541;</span> </td> <tr id=entity-frac78><td> <code title="">frac78;</code> </td> <td> U+0215E </td> <td> <span class=glyph title="">&#8542;</span> </td> <tr id=entity-frasl><td> <code title="">frasl;</code> </td> <td> U+02044 </td> <td> <span class=glyph title="">&frasl;</span> </td> <tr id=entity-frown><td> <code title="">frown;</code> </td> <td> U+02322 </td> <td> <span class=glyph title="">&#8994;</span> </td> <tr id=entity-fscr><td> <code title="">fscr;</code> </td> <td> U+1D4BB </td> <td> <span class=glyph title="">&#119995;</span> </td> <tr id=entity-gE><td> <code title="">gE;</code> </td> <td> U+02267 </td> <td> <span class=glyph title="">&#8807;</span> </td> <tr id=entity-gEl><td> <code title="">gEl;</code> </td> <td> U+02A8C </td> <td> <span class=glyph title="">&#10892;</span> </td> <tr id=entity-gacute><td> <code title="">gacute;</code> </td> <td> U+001F5 </td> <td> <span class=glyph title="">&#501;</span> </td> <tr id=entity-gamma><td> <code title="">gamma;</code> </td> <td> U+003B3 </td> <td> <span class=glyph title="">&gamma;</span> </td> <tr id=entity-gammad><td> <code title="">gammad;</code> </td> <td> U+003DD </td> <td> <span class=glyph title="">&#989;</span> </td> <tr id=entity-gap><td> <code title="">gap;</code> </td> <td> U+02A86 </td> <td> <span class=glyph title="">&#10886;</span> </td> <tr id=entity-gbreve><td> <code title="">gbreve;</code> </td> <td> U+0011F </td> <td> <span class=glyph title="">&#287;</span> </td> <tr id=entity-gcirc><td> <code title="">gcirc;</code> </td> <td> U+0011D </td> <td> <span class=glyph title="">&#285;</span> </td> <tr id=entity-gcy><td> <code title="">gcy;</code> </td> <td> U+00433 </td> <td> <span class=glyph title="">&#1075;</span> </td> <tr id=entity-gdot><td> <code title="">gdot;</code> </td> <td> U+00121 </td> <td> <span class=glyph title="">&#289;</span> </td> <tr id=entity-ge><td> <code title="">ge;</code> </td> <td> U+02265 </td> <td> <span class=glyph title="">&ge;</span> </td> <tr id=entity-gel><td> <code title="">gel;</code> </td> <td> U+022DB </td> <td> <span class=glyph title="">&#8923;</span> </td> <tr id=entity-geq><td> <code title="">geq;</code> </td> <td> U+02265 </td> <td> <span class=glyph title="">&ge;</span> </td> <tr id=entity-geqq><td> <code title="">geqq;</code> </td> <td> U+02267 </td> <td> <span class=glyph title="">&#8807;</span> </td> <tr id=entity-geqslant><td> <code title="">geqslant;</code> </td> <td> U+02A7E </td> <td> <span class=glyph title="">&#10878;</span> </td> <tr id=entity-ges><td> <code title="">ges;</code> </td> <td> U+02A7E </td> <td> <span class=glyph title="">&#10878;</span> </td> <tr id=entity-gescc><td> <code title="">gescc;</code> </td> <td> U+02AA9 </td> <td> <span class=glyph title="">&#10921;</span> </td> <tr id=entity-gesdot><td> <code title="">gesdot;</code> </td> <td> U+02A80 </td> <td> <span class=glyph title="">&#10880;</span> </td> <tr id=entity-gesdoto><td> <code title="">gesdoto;</code> </td> <td> U+02A82 </td> <td> <span class=glyph title="">&#10882;</span> </td> <tr id=entity-gesdotol><td> <code title="">gesdotol;</code> </td> <td> U+02A84 </td> <td> <span class=glyph title="">&#10884;</span> </td> <tr id=entity-gesl><td> <code title="">gesl;</code> </td> <td> U+022DB U+0FE00 </td> <td> <span class="glyph compound" title="">&#8923;&#65024;</span> </td> <tr id=entity-gesles><td> <code title="">gesles;</code> </td> <td> U+02A94 </td> <td> <span class=glyph title="">&#10900;</span> </td> <tr id=entity-gfr><td> <code title="">gfr;</code> </td> <td> U+1D524 </td> <td> <span class=glyph title="">&#120100;</span> </td> <tr id=entity-gg><td> <code title="">gg;</code> </td> <td> U+0226B </td> <td> <span class=glyph title="">&#8811;</span> </td> <tr id=entity-ggg><td> <code title="">ggg;</code> </td> <td> U+022D9 </td> <td> <span class=glyph title="">&#8921;</span> </td> <tr id=entity-gimel><td> <code title="">gimel;</code> </td> <td> U+02137 </td> <td> <span class=glyph title="">&#8503;</span> </td> <tr id=entity-gjcy><td> <code title="">gjcy;</code> </td> <td> U+00453 </td> <td> <span class=glyph title="">&#1107;</span> </td> <tr id=entity-gl><td> <code title="">gl;</code> </td> <td> U+02277 </td> <td> <span class=glyph title="">&#8823;</span> </td> <tr id=entity-glE><td> <code title="">glE;</code> </td> <td> U+02A92 </td> <td> <span class=glyph title="">&#10898;</span> </td> <tr id=entity-gla><td> <code title="">gla;</code> </td> <td> U+02AA5 </td> <td> <span class=glyph title="">&#10917;</span> </td> <tr id=entity-glj><td> <code title="">glj;</code> </td> <td> U+02AA4 </td> <td> <span class=glyph title="">&#10916;</span> </td> <tr id=entity-gnE><td> <code title="">gnE;</code> </td> <td> U+02269 </td> <td> <span class=glyph title="">&#8809;</span> </td> <tr id=entity-gnap><td> <code title="">gnap;</code> </td> <td> U+02A8A </td> <td> <span class=glyph title="">&#10890;</span> </td> <tr id=entity-gnapprox><td> <code title="">gnapprox;</code> </td> <td> U+02A8A </td> <td> <span class=glyph title="">&#10890;</span> </td> <tr id=entity-gne><td> <code title="">gne;</code> </td> <td> U+02A88 </td> <td> <span class=glyph title="">&#10888;</span> </td> <tr id=entity-gneq><td> <code title="">gneq;</code> </td> <td> U+02A88 </td> <td> <span class=glyph title="">&#10888;</span> </td> <tr id=entity-gneqq><td> <code title="">gneqq;</code> </td> <td> U+02269 </td> <td> <span class=glyph title="">&#8809;</span> </td> <tr id=entity-gnsim><td> <code title="">gnsim;</code> </td> <td> U+022E7 </td> <td> <span class=glyph title="">&#8935;</span> </td> <tr id=entity-gopf><td> <code title="">gopf;</code> </td> <td> U+1D558 </td> <td> <span class=glyph title="">&#120152;</span> </td> <tr id=entity-grave><td> <code title="">grave;</code> </td> <td> U+00060 </td> <td> <span class=glyph title="">`</span> </td> <tr id=entity-gscr><td> <code title="">gscr;</code> </td> <td> U+0210A </td> <td> <span class=glyph title="">&#8458;</span> </td> <tr id=entity-gsim><td> <code title="">gsim;</code> </td> <td> U+02273 </td> <td> <span class=glyph title="">&#8819;</span> </td> <tr id=entity-gsime><td> <code title="">gsime;</code> </td> <td> U+02A8E </td> <td> <span class=glyph title="">&#10894;</span> </td> <tr id=entity-gsiml><td> <code title="">gsiml;</code> </td> <td> U+02A90 </td> <td> <span class=glyph title="">&#10896;</span> </td> <tr id=entity-gt><td> <code title="">gt;</code> </td> <td> U+0003E </td> <td> <span class=glyph title="">&gt;</span> </td> <tr id=entity-gtcc><td> <code title="">gtcc;</code> </td> <td> U+02AA7 </td> <td> <span class=glyph title="">&#10919;</span> </td> <tr id=entity-gtcir><td> <code title="">gtcir;</code> </td> <td> U+02A7A </td> <td> <span class=glyph title="">&#10874;</span> </td> <tr id=entity-gtdot><td> <code title="">gtdot;</code> </td> <td> U+022D7 </td> <td> <span class=glyph title="">&#8919;</span> </td> <tr id=entity-gtlPar><td> <code title="">gtlPar;</code> </td> <td> U+02995 </td> <td> <span class=glyph title="">&#10645;</span> </td> <tr id=entity-gtquest><td> <code title="">gtquest;</code> </td> <td> U+02A7C </td> <td> <span class=glyph title="">&#10876;</span> </td> <tr id=entity-gtrapprox><td> <code title="">gtrapprox;</code> </td> <td> U+02A86 </td> <td> <span class=glyph title="">&#10886;</span> </td> <tr id=entity-gtrarr><td> <code title="">gtrarr;</code> </td> <td> U+02978 </td> <td> <span class=glyph title="">&#10616;</span> </td> <tr id=entity-gtrdot><td> <code title="">gtrdot;</code> </td> <td> U+022D7 </td> <td> <span class=glyph title="">&#8919;</span> </td> <tr id=entity-gtreqless><td> <code title="">gtreqless;</code> </td> <td> U+022DB </td> <td> <span class=glyph title="">&#8923;</span> </td> <tr id=entity-gtreqqless><td> <code title="">gtreqqless;</code> </td> <td> U+02A8C </td> <td> <span class=glyph title="">&#10892;</span> </td> <tr id=entity-gtrless><td> <code title="">gtrless;</code> </td> <td> U+02277 </td> <td> <span class=glyph title="">&#8823;</span> </td> <tr id=entity-gtrsim><td> <code title="">gtrsim;</code> </td> <td> U+02273 </td> <td> <span class=glyph title="">&#8819;</span> </td> <tr id=entity-gvertneqq><td> <code title="">gvertneqq;</code> </td> <td> U+02269 U+0FE00 </td> <td> <span class="glyph compound" title="">&#8809;&#65024;</span> </td> <tr id=entity-gvnE><td> <code title="">gvnE;</code> </td> <td> U+02269 U+0FE00 </td> <td> <span class="glyph compound" title="">&#8809;&#65024;</span> </td> <tr id=entity-hArr><td> <code title="">hArr;</code> </td> <td> U+021D4 </td> <td> <span class=glyph title="">&hArr;</span> </td> <tr id=entity-hairsp><td> <code title="">hairsp;</code> </td> <td> U+0200A </td> <td> <span class=glyph title="">&#8202;</span> </td> <tr id=entity-half><td> <code title="">half;</code> </td> <td> U+000BD </td> <td> <span class=glyph title="">&frac12;</span> </td> <tr id=entity-hamilt><td> <code title="">hamilt;</code> </td> <td> U+0210B </td> <td> <span class=glyph title="">&#8459;</span> </td> <tr id=entity-hardcy><td> <code title="">hardcy;</code> </td> <td> U+0044A </td> <td> <span class=glyph title="">&#1098;</span> </td> <tr id=entity-harr><td> <code title="">harr;</code> </td> <td> U+02194 </td> <td> <span class=glyph title="">&harr;</span> </td> <tr id=entity-harrcir><td> <code title="">harrcir;</code> </td> <td> U+02948 </td> <td> <span class=glyph title="">&#10568;</span> </td> <tr id=entity-harrw><td> <code title="">harrw;</code> </td> <td> U+021AD </td> <td> <span class=glyph title="">&#8621;</span> </td> <tr id=entity-hbar><td> <code title="">hbar;</code> </td> <td> U+0210F </td> <td> <span class=glyph title="">&#8463;</span> </td> <tr id=entity-hcirc><td> <code title="">hcirc;</code> </td> <td> U+00125 </td> <td> <span class=glyph title="">&#293;</span> </td> <tr id=entity-hearts><td> <code title="">hearts;</code> </td> <td> U+02665 </td> <td> <span class=glyph title="">&hearts;</span> </td> <tr id=entity-heartsuit><td> <code title="">heartsuit;</code> </td> <td> U+02665 </td> <td> <span class=glyph title="">&hearts;</span> </td> <tr id=entity-hellip><td> <code title="">hellip;</code> </td> <td> U+02026 </td> <td> <span class=glyph title="">&hellip;</span> </td> <tr id=entity-hercon><td> <code title="">hercon;</code> </td> <td> U+022B9 </td> <td> <span class=glyph title="">&#8889;</span> </td> <tr id=entity-hfr><td> <code title="">hfr;</code> </td> <td> U+1D525 </td> <td> <span class=glyph title="">&#120101;</span> </td> <tr id=entity-hksearow><td> <code title="">hksearow;</code> </td> <td> U+02925 </td> <td> <span class=glyph title="">&#10533;</span> </td> <tr id=entity-hkswarow><td> <code title="">hkswarow;</code> </td> <td> U+02926 </td> <td> <span class=glyph title="">&#10534;</span> </td> <tr id=entity-hoarr><td> <code title="">hoarr;</code> </td> <td> U+021FF </td> <td> <span class=glyph title="">&#8703;</span> </td> <tr id=entity-homtht><td> <code title="">homtht;</code> </td> <td> U+0223B </td> <td> <span class=glyph title="">&#8763;</span> </td> <tr id=entity-hookleftarrow><td> <code title="">hookleftarrow;</code> </td> <td> U+021A9 </td> <td> <span class=glyph title="">&#8617;</span> </td> <tr id=entity-hookrightarrow><td> <code title="">hookrightarrow;</code> </td> <td> U+021AA </td> <td> <span class=glyph title="">&#8618;</span> </td> <tr id=entity-hopf><td> <code title="">hopf;</code> </td> <td> U+1D559 </td> <td> <span class=glyph title="">&#120153;</span> </td> <tr id=entity-horbar><td> <code title="">horbar;</code> </td> <td> U+02015 </td> <td> <span class=glyph title="">&#8213;</span> </td> <tr id=entity-hscr><td> <code title="">hscr;</code> </td> <td> U+1D4BD </td> <td> <span class=glyph title="">&#119997;</span> </td> <tr id=entity-hslash><td> <code title="">hslash;</code> </td> <td> U+0210F </td> <td> <span class=glyph title="">&#8463;</span> </td> <tr id=entity-hstrok><td> <code title="">hstrok;</code> </td> <td> U+00127 </td> <td> <span class=glyph title="">&#295;</span> </td> <tr id=entity-hybull><td> <code title="">hybull;</code> </td> <td> U+02043 </td> <td> <span class=glyph title="">&#8259;</span> </td> <tr id=entity-hyphen><td> <code title="">hyphen;</code> </td> <td> U+02010 </td> <td> <span class=glyph title="">&#8208;</span> </td> <tr id=entity-iacute><td> <code title="">iacute;</code> </td> <td> U+000ED </td> <td> <span class=glyph title="">&iacute;</span> </td> <tr id=entity-ic><td> <code title="">ic;</code> </td> <td> U+02063 </td> <td> <span class=glyph title="">&#8291;</span> </td> <tr id=entity-icirc><td> <code title="">icirc;</code> </td> <td> U+000EE </td> <td> <span class=glyph title="">&icirc;</span> </td> <tr id=entity-icy><td> <code title="">icy;</code> </td> <td> U+00438 </td> <td> <span class=glyph title="">&#1080;</span> </td> <tr id=entity-iecy><td> <code title="">iecy;</code> </td> <td> U+00435 </td> <td> <span class=glyph title="">&#1077;</span> </td> <tr id=entity-iexcl><td> <code title="">iexcl;</code> </td> <td> U+000A1 </td> <td> <span class=glyph title="">&iexcl;</span> </td> <tr id=entity-iff><td> <code title="">iff;</code> </td> <td> U+021D4 </td> <td> <span class=glyph title="">&hArr;</span> </td> <tr id=entity-ifr><td> <code title="">ifr;</code> </td> <td> U+1D526 </td> <td> <span class=glyph title="">&#120102;</span> </td> <tr id=entity-igrave><td> <code title="">igrave;</code> </td> <td> U+000EC </td> <td> <span class=glyph title="">&igrave;</span> </td> <tr id=entity-ii><td> <code title="">ii;</code> </td> <td> U+02148 </td> <td> <span class=glyph title="">&#8520;</span> </td> <tr id=entity-iiiint><td> <code title="">iiiint;</code> </td> <td> U+02A0C </td> <td> <span class=glyph title="">&#10764;</span> </td> <tr id=entity-iiint><td> <code title="">iiint;</code> </td> <td> U+0222D </td> <td> <span class=glyph title="">&#8749;</span> </td> <tr id=entity-iinfin><td> <code title="">iinfin;</code> </td> <td> U+029DC </td> <td> <span class=glyph title="">&#10716;</span> </td> <tr id=entity-iiota><td> <code title="">iiota;</code> </td> <td> U+02129 </td> <td> <span class=glyph title="">&#8489;</span> </td> <tr id=entity-ijlig><td> <code title="">ijlig;</code> </td> <td> U+00133 </td> <td> <span class=glyph title="">&#307;</span> </td> <tr id=entity-imacr><td> <code title="">imacr;</code> </td> <td> U+0012B </td> <td> <span class=glyph title="">&#299;</span> </td> <tr id=entity-image><td> <code title="">image;</code> </td> <td> U+02111 </td> <td> <span class=glyph title="">&image;</span> </td> <tr id=entity-imagline><td> <code title="">imagline;</code> </td> <td> U+02110 </td> <td> <span class=glyph title="">&#8464;</span> </td> <tr id=entity-imagpart><td> <code title="">imagpart;</code> </td> <td> U+02111 </td> <td> <span class=glyph title="">&image;</span> </td> <tr id=entity-imath><td> <code title="">imath;</code> </td> <td> U+00131 </td> <td> <span class=glyph title="">&#305;</span> </td> <tr id=entity-imof><td> <code title="">imof;</code> </td> <td> U+022B7 </td> <td> <span class=glyph title="">&#8887;</span> </td> <tr id=entity-imped><td> <code title="">imped;</code> </td> <td> U+001B5 </td> <td> <span class=glyph title="">&#437;</span> </td> <tr id=entity-in><td> <code title="">in;</code> </td> <td> U+02208 </td> <td> <span class=glyph title="">&isin;</span> </td> <tr id=entity-incare><td> <code title="">incare;</code> </td> <td> U+02105 </td> <td> <span class=glyph title="">&#8453;</span> </td> <tr id=entity-infin><td> <code title="">infin;</code> </td> <td> U+0221E </td> <td> <span class=glyph title="">&infin;</span> </td> <tr id=entity-infintie><td> <code title="">infintie;</code> </td> <td> U+029DD </td> <td> <span class=glyph title="">&#10717;</span> </td> <tr id=entity-inodot><td> <code title="">inodot;</code> </td> <td> U+00131 </td> <td> <span class=glyph title="">&#305;</span> </td> <tr id=entity-int><td> <code title="">int;</code> </td> <td> U+0222B </td> <td> <span class=glyph title="">&int;</span> </td> <tr id=entity-intcal><td> <code title="">intcal;</code> </td> <td> U+022BA </td> <td> <span class=glyph title="">&#8890;</span> </td> <tr id=entity-integers><td> <code title="">integers;</code> </td> <td> U+02124 </td> <td> <span class=glyph title="">&#8484;</span> </td> <tr id=entity-intercal><td> <code title="">intercal;</code> </td> <td> U+022BA </td> <td> <span class=glyph title="">&#8890;</span> </td> <tr id=entity-intlarhk><td> <code title="">intlarhk;</code> </td> <td> U+02A17 </td> <td> <span class=glyph title="">&#10775;</span> </td> <tr id=entity-intprod><td> <code title="">intprod;</code> </td> <td> U+02A3C </td> <td> <span class=glyph title="">&#10812;</span> </td> <tr id=entity-iocy><td> <code title="">iocy;</code> </td> <td> U+00451 </td> <td> <span class=glyph title="">&#1105;</span> </td> <tr id=entity-iogon><td> <code title="">iogon;</code> </td> <td> U+0012F </td> <td> <span class=glyph title="">&#303;</span> </td> <tr id=entity-iopf><td> <code title="">iopf;</code> </td> <td> U+1D55A </td> <td> <span class=glyph title="">&#120154;</span> </td> <tr id=entity-iota><td> <code title="">iota;</code> </td> <td> U+003B9 </td> <td> <span class=glyph title="">&iota;</span> </td> <tr id=entity-iprod><td> <code title="">iprod;</code> </td> <td> U+02A3C </td> <td> <span class=glyph title="">&#10812;</span> </td> <tr id=entity-iquest><td> <code title="">iquest;</code> </td> <td> U+000BF </td> <td> <span class=glyph title="">&iquest;</span> </td> <tr id=entity-iscr><td> <code title="">iscr;</code> </td> <td> U+1D4BE </td> <td> <span class=glyph title="">&#119998;</span> </td> <tr id=entity-isin><td> <code title="">isin;</code> </td> <td> U+02208 </td> <td> <span class=glyph title="">&isin;</span> </td> <tr id=entity-isinE><td> <code title="">isinE;</code> </td> <td> U+022F9 </td> <td> <span class=glyph title="">&#8953;</span> </td> <tr id=entity-isindot><td> <code title="">isindot;</code> </td> <td> U+022F5 </td> <td> <span class=glyph title="">&#8949;</span> </td> <tr id=entity-isins><td> <code title="">isins;</code> </td> <td> U+022F4 </td> <td> <span class=glyph title="">&#8948;</span> </td> <tr id=entity-isinsv><td> <code title="">isinsv;</code> </td> <td> U+022F3 </td> <td> <span class=glyph title="">&#8947;</span> </td> <tr id=entity-isinv><td> <code title="">isinv;</code> </td> <td> U+02208 </td> <td> <span class=glyph title="">&isin;</span> </td> <tr id=entity-it><td> <code title="">it;</code> </td> <td> U+02062 </td> <td> <span class=glyph title="">&#8290;</span> </td> <tr id=entity-itilde><td> <code title="">itilde;</code> </td> <td> U+00129 </td> <td> <span class=glyph title="">&#297;</span> </td> <tr id=entity-iukcy><td> <code title="">iukcy;</code> </td> <td> U+00456 </td> <td> <span class=glyph title="">&#1110;</span> </td> <tr id=entity-iuml><td> <code title="">iuml;</code> </td> <td> U+000EF </td> <td> <span class=glyph title="">&iuml;</span> </td> <tr id=entity-jcirc><td> <code title="">jcirc;</code> </td> <td> U+00135 </td> <td> <span class=glyph title="">&#309;</span> </td> <tr id=entity-jcy><td> <code title="">jcy;</code> </td> <td> U+00439 </td> <td> <span class=glyph title="">&#1081;</span> </td> <tr id=entity-jfr><td> <code title="">jfr;</code> </td> <td> U+1D527 </td> <td> <span class=glyph title="">&#120103;</span> </td> <tr id=entity-jmath><td> <code title="">jmath;</code> </td> <td> U+00237 </td> <td> <span class=glyph title="">&#567;</span> </td> <tr id=entity-jopf><td> <code title="">jopf;</code> </td> <td> U+1D55B </td> <td> <span class=glyph title="">&#120155;</span> </td> <tr id=entity-jscr><td> <code title="">jscr;</code> </td> <td> U+1D4BF </td> <td> <span class=glyph title="">&#119999;</span> </td> <tr id=entity-jsercy><td> <code title="">jsercy;</code> </td> <td> U+00458 </td> <td> <span class=glyph title="">&#1112;</span> </td> <tr id=entity-jukcy><td> <code title="">jukcy;</code> </td> <td> U+00454 </td> <td> <span class=glyph title="">&#1108;</span> </td> <tr id=entity-kappa><td> <code title="">kappa;</code> </td> <td> U+003BA </td> <td> <span class=glyph title="">&kappa;</span> </td> <tr id=entity-kappav><td> <code title="">kappav;</code> </td> <td> U+003F0 </td> <td> <span class=glyph title="">&#1008;</span> </td> <tr id=entity-kcedil><td> <code title="">kcedil;</code> </td> <td> U+00137 </td> <td> <span class=glyph title="">&#311;</span> </td> <tr id=entity-kcy><td> <code title="">kcy;</code> </td> <td> U+0043A </td> <td> <span class=glyph title="">&#1082;</span> </td> <tr id=entity-kfr><td> <code title="">kfr;</code> </td> <td> U+1D528 </td> <td> <span class=glyph title="">&#120104;</span> </td> <tr id=entity-kgreen><td> <code title="">kgreen;</code> </td> <td> U+00138 </td> <td> <span class=glyph title="">&#312;</span> </td> <tr id=entity-khcy><td> <code title="">khcy;</code> </td> <td> U+00445 </td> <td> <span class=glyph title="">&#1093;</span> </td> <tr id=entity-kjcy><td> <code title="">kjcy;</code> </td> <td> U+0045C </td> <td> <span class=glyph title="">&#1116;</span> </td> <tr id=entity-kopf><td> <code title="">kopf;</code> </td> <td> U+1D55C </td> <td> <span class=glyph title="">&#120156;</span> </td> <tr id=entity-kscr><td> <code title="">kscr;</code> </td> <td> U+1D4C0 </td> <td> <span class=glyph title="">&#120000;</span> </td> <tr id=entity-lAarr><td> <code title="">lAarr;</code> </td> <td> U+021DA </td> <td> <span class=glyph title="">&#8666;</span> </td> <tr id=entity-lArr><td> <code title="">lArr;</code> </td> <td> U+021D0 </td> <td> <span class=glyph title="">&lArr;</span> </td> <tr id=entity-lAtail><td> <code title="">lAtail;</code> </td> <td> U+0291B </td> <td> <span class=glyph title="">&#10523;</span> </td> <tr id=entity-lBarr><td> <code title="">lBarr;</code> </td> <td> U+0290E </td> <td> <span class=glyph title="">&#10510;</span> </td> <tr id=entity-lE><td> <code title="">lE;</code> </td> <td> U+02266 </td> <td> <span class=glyph title="">&#8806;</span> </td> <tr id=entity-lEg><td> <code title="">lEg;</code> </td> <td> U+02A8B </td> <td> <span class=glyph title="">&#10891;</span> </td> <tr id=entity-lHar><td> <code title="">lHar;</code> </td> <td> U+02962 </td> <td> <span class=glyph title="">&#10594;</span> </td> <tr id=entity-lacute><td> <code title="">lacute;</code> </td> <td> U+0013A </td> <td> <span class=glyph title="">&#314;</span> </td> <tr id=entity-laemptyv><td> <code title="">laemptyv;</code> </td> <td> U+029B4 </td> <td> <span class=glyph title="">&#10676;</span> </td> <tr id=entity-lagran><td> <code title="">lagran;</code> </td> <td> U+02112 </td> <td> <span class=glyph title="">&#8466;</span> </td> <tr id=entity-lambda><td> <code title="">lambda;</code> </td> <td> U+003BB </td> <td> <span class=glyph title="">&lambda;</span> </td> <tr id=entity-lang><td> <code title="">lang;</code> </td> <td> U+027E8 </td> <td> <span class=glyph title="">&lang;</span> </td> <tr id=entity-langd><td> <code title="">langd;</code> </td> <td> U+02991 </td> <td> <span class=glyph title="">&#10641;</span> </td> <tr id=entity-langle><td> <code title="">langle;</code> </td> <td> U+027E8 </td> <td> <span class=glyph title="">&lang;</span> </td> <tr id=entity-lap><td> <code title="">lap;</code> </td> <td> U+02A85 </td> <td> <span class=glyph title="">&#10885;</span> </td> <tr id=entity-laquo><td> <code title="">laquo;</code> </td> <td> U+000AB </td> <td> <span class=glyph title="">&laquo;</span> </td> <tr id=entity-larr><td> <code title="">larr;</code> </td> <td> U+02190 </td> <td> <span class=glyph title="">&larr;</span> </td> <tr id=entity-larrb><td> <code title="">larrb;</code> </td> <td> U+021E4 </td> <td> <span class=glyph title="">&#8676;</span> </td> <tr id=entity-larrbfs><td> <code title="">larrbfs;</code> </td> <td> U+0291F </td> <td> <span class=glyph title="">&#10527;</span> </td> <tr id=entity-larrfs><td> <code title="">larrfs;</code> </td> <td> U+0291D </td> <td> <span class=glyph title="">&#10525;</span> </td> <tr id=entity-larrhk><td> <code title="">larrhk;</code> </td> <td> U+021A9 </td> <td> <span class=glyph title="">&#8617;</span> </td> <tr id=entity-larrlp><td> <code title="">larrlp;</code> </td> <td> U+021AB </td> <td> <span class=glyph title="">&#8619;</span> </td> <tr id=entity-larrpl><td> <code title="">larrpl;</code> </td> <td> U+02939 </td> <td> <span class=glyph title="">&#10553;</span> </td> <tr id=entity-larrsim><td> <code title="">larrsim;</code> </td> <td> U+02973 </td> <td> <span class=glyph title="">&#10611;</span> </td> <tr id=entity-larrtl><td> <code title="">larrtl;</code> </td> <td> U+021A2 </td> <td> <span class=glyph title="">&#8610;</span> </td> <tr id=entity-lat><td> <code title="">lat;</code> </td> <td> U+02AAB </td> <td> <span class=glyph title="">&#10923;</span> </td> <tr id=entity-latail><td> <code title="">latail;</code> </td> <td> U+02919 </td> <td> <span class=glyph title="">&#10521;</span> </td> <tr id=entity-late><td> <code title="">late;</code> </td> <td> U+02AAD </td> <td> <span class=glyph title="">&#10925;</span> </td> <tr id=entity-lates><td> <code title="">lates;</code> </td> <td> U+02AAD U+0FE00 </td> <td> <span class="glyph compound" title="">&#10925;&#65024;</span> </td> <tr id=entity-lbarr><td> <code title="">lbarr;</code> </td> <td> U+0290C </td> <td> <span class=glyph title="">&#10508;</span> </td> <tr id=entity-lbbrk><td> <code title="">lbbrk;</code> </td> <td> U+02772 </td> <td> <span class=glyph title="">&#10098;</span> </td> <tr id=entity-lbrace><td> <code title="">lbrace;</code> </td> <td> U+0007B </td> <td> <span class=glyph title="">{</span> </td> <tr id=entity-lbrack><td> <code title="">lbrack;</code> </td> <td> U+0005B </td> <td> <span class=glyph title="">[</span> </td> <tr id=entity-lbrke><td> <code title="">lbrke;</code> </td> <td> U+0298B </td> <td> <span class=glyph title="">&#10635;</span> </td> <tr id=entity-lbrksld><td> <code title="">lbrksld;</code> </td> <td> U+0298F </td> <td> <span class=glyph title="">&#10639;</span> </td> <tr id=entity-lbrkslu><td> <code title="">lbrkslu;</code> </td> <td> U+0298D </td> <td> <span class=glyph title="">&#10637;</span> </td> <tr id=entity-lcaron><td> <code title="">lcaron;</code> </td> <td> U+0013E </td> <td> <span class=glyph title="">&#318;</span> </td> <tr id=entity-lcedil><td> <code title="">lcedil;</code> </td> <td> U+0013C </td> <td> <span class=glyph title="">&#316;</span> </td> <tr id=entity-lceil><td> <code title="">lceil;</code> </td> <td> U+02308 </td> <td> <span class=glyph title="">&lceil;</span> </td> <tr id=entity-lcub><td> <code title="">lcub;</code> </td> <td> U+0007B </td> <td> <span class=glyph title="">{</span> </td> <tr id=entity-lcy><td> <code title="">lcy;</code> </td> <td> U+0043B </td> <td> <span class=glyph title="">&#1083;</span> </td> <tr id=entity-ldca><td> <code title="">ldca;</code> </td> <td> U+02936 </td> <td> <span class=glyph title="">&#10550;</span> </td> <tr id=entity-ldquo><td> <code title="">ldquo;</code> </td> <td> U+0201C </td> <td> <span class=glyph title="">&ldquo;</span> </td> <tr id=entity-ldquor><td> <code title="">ldquor;</code> </td> <td> U+0201E </td> <td> <span class=glyph title="">&bdquo;</span> </td> <tr id=entity-ldrdhar><td> <code title="">ldrdhar;</code> </td> <td> U+02967 </td> <td> <span class=glyph title="">&#10599;</span> </td> <tr id=entity-ldrushar><td> <code title="">ldrushar;</code> </td> <td> U+0294B </td> <td> <span class=glyph title="">&#10571;</span> </td> <tr id=entity-ldsh><td> <code title="">ldsh;</code> </td> <td> U+021B2 </td> <td> <span class=glyph title="">&#8626;</span> </td> <tr id=entity-le><td> <code title="">le;</code> </td> <td> U+02264 </td> <td> <span class=glyph title="">&le;</span> </td> <tr id=entity-leftarrow><td> <code title="">leftarrow;</code> </td> <td> U+02190 </td> <td> <span class=glyph title="">&larr;</span> </td> <tr id=entity-leftarrowtail><td> <code title="">leftarrowtail;</code> </td> <td> U+021A2 </td> <td> <span class=glyph title="">&#8610;</span> </td> <tr id=entity-leftharpoondown><td> <code title="">leftharpoondown;</code> </td> <td> U+021BD </td> <td> <span class=glyph title="">&#8637;</span> </td> <tr id=entity-leftharpoonup><td> <code title="">leftharpoonup;</code> </td> <td> U+021BC </td> <td> <span class=glyph title="">&#8636;</span> </td> <tr id=entity-leftleftarrows><td> <code title="">leftleftarrows;</code> </td> <td> U+021C7 </td> <td> <span class=glyph title="">&#8647;</span> </td> <tr id=entity-leftrightarrow><td> <code title="">leftrightarrow;</code> </td> <td> U+02194 </td> <td> <span class=glyph title="">&harr;</span> </td> <tr id=entity-leftrightarrows><td> <code title="">leftrightarrows;</code> </td> <td> U+021C6 </td> <td> <span class=glyph title="">&#8646;</span> </td> <tr id=entity-leftrightharpoons><td> <code title="">leftrightharpoons;</code> </td> <td> U+021CB </td> <td> <span class=glyph title="">&#8651;</span> </td> <tr id=entity-leftrightsquigarrow><td> <code title="">leftrightsquigarrow;</code> </td> <td> U+021AD </td> <td> <span class=glyph title="">&#8621;</span> </td> <tr id=entity-leftthreetimes><td> <code title="">leftthreetimes;</code> </td> <td> U+022CB </td> <td> <span class=glyph title="">&#8907;</span> </td> <tr id=entity-leg><td> <code title="">leg;</code> </td> <td> U+022DA </td> <td> <span class=glyph title="">&#8922;</span> </td> <tr id=entity-leq><td> <code title="">leq;</code> </td> <td> U+02264 </td> <td> <span class=glyph title="">&le;</span> </td> <tr id=entity-leqq><td> <code title="">leqq;</code> </td> <td> U+02266 </td> <td> <span class=glyph title="">&#8806;</span> </td> <tr id=entity-leqslant><td> <code title="">leqslant;</code> </td> <td> U+02A7D </td> <td> <span class=glyph title="">&#10877;</span> </td> <tr id=entity-les><td> <code title="">les;</code> </td> <td> U+02A7D </td> <td> <span class=glyph title="">&#10877;</span> </td> <tr id=entity-lescc><td> <code title="">lescc;</code> </td> <td> U+02AA8 </td> <td> <span class=glyph title="">&#10920;</span> </td> <tr id=entity-lesdot><td> <code title="">lesdot;</code> </td> <td> U+02A7F </td> <td> <span class=glyph title="">&#10879;</span> </td> <tr id=entity-lesdoto><td> <code title="">lesdoto;</code> </td> <td> U+02A81 </td> <td> <span class=glyph title="">&#10881;</span> </td> <tr id=entity-lesdotor><td> <code title="">lesdotor;</code> </td> <td> U+02A83 </td> <td> <span class=glyph title="">&#10883;</span> </td> <tr id=entity-lesg><td> <code title="">lesg;</code> </td> <td> U+022DA U+0FE00 </td> <td> <span class="glyph compound" title="">&#8922;&#65024;</span> </td> <tr id=entity-lesges><td> <code title="">lesges;</code> </td> <td> U+02A93 </td> <td> <span class=glyph title="">&#10899;</span> </td> <tr id=entity-lessapprox><td> <code title="">lessapprox;</code> </td> <td> U+02A85 </td> <td> <span class=glyph title="">&#10885;</span> </td> <tr id=entity-lessdot><td> <code title="">lessdot;</code> </td> <td> U+022D6 </td> <td> <span class=glyph title="">&#8918;</span> </td> <tr id=entity-lesseqgtr><td> <code title="">lesseqgtr;</code> </td> <td> U+022DA </td> <td> <span class=glyph title="">&#8922;</span> </td> <tr id=entity-lesseqqgtr><td> <code title="">lesseqqgtr;</code> </td> <td> U+02A8B </td> <td> <span class=glyph title="">&#10891;</span> </td> <tr id=entity-lessgtr><td> <code title="">lessgtr;</code> </td> <td> U+02276 </td> <td> <span class=glyph title="">&#8822;</span> </td> <tr id=entity-lesssim><td> <code title="">lesssim;</code> </td> <td> U+02272 </td> <td> <span class=glyph title="">&#8818;</span> </td> <tr id=entity-lfisht><td> <code title="">lfisht;</code> </td> <td> U+0297C </td> <td> <span class=glyph title="">&#10620;</span> </td> <tr id=entity-lfloor><td> <code title="">lfloor;</code> </td> <td> U+0230A </td> <td> <span class=glyph title="">&lfloor;</span> </td> <tr id=entity-lfr><td> <code title="">lfr;</code> </td> <td> U+1D529 </td> <td> <span class=glyph title="">&#120105;</span> </td> <tr id=entity-lg><td> <code title="">lg;</code> </td> <td> U+02276 </td> <td> <span class=glyph title="">&#8822;</span> </td> <tr id=entity-lgE><td> <code title="">lgE;</code> </td> <td> U+02A91 </td> <td> <span class=glyph title="">&#10897;</span> </td> <tr id=entity-lhard><td> <code title="">lhard;</code> </td> <td> U+021BD </td> <td> <span class=glyph title="">&#8637;</span> </td> <tr id=entity-lharu><td> <code title="">lharu;</code> </td> <td> U+021BC </td> <td> <span class=glyph title="">&#8636;</span> </td> <tr id=entity-lharul><td> <code title="">lharul;</code> </td> <td> U+0296A </td> <td> <span class=glyph title="">&#10602;</span> </td> <tr id=entity-lhblk><td> <code title="">lhblk;</code> </td> <td> U+02584 </td> <td> <span class=glyph title="">&#9604;</span> </td> <tr id=entity-ljcy><td> <code title="">ljcy;</code> </td> <td> U+00459 </td> <td> <span class=glyph title="">&#1113;</span> </td> <tr id=entity-ll><td> <code title="">ll;</code> </td> <td> U+0226A </td> <td> <span class=glyph title="">&#8810;</span> </td> <tr id=entity-llarr><td> <code title="">llarr;</code> </td> <td> U+021C7 </td> <td> <span class=glyph title="">&#8647;</span> </td> <tr id=entity-llcorner><td> <code title="">llcorner;</code> </td> <td> U+0231E </td> <td> <span class=glyph title="">&#8990;</span> </td> <tr id=entity-llhard><td> <code title="">llhard;</code> </td> <td> U+0296B </td> <td> <span class=glyph title="">&#10603;</span> </td> <tr id=entity-lltri><td> <code title="">lltri;</code> </td> <td> U+025FA </td> <td> <span class=glyph title="">&#9722;</span> </td> <tr id=entity-lmidot><td> <code title="">lmidot;</code> </td> <td> U+00140 </td> <td> <span class=glyph title="">&#320;</span> </td> <tr id=entity-lmoust><td> <code title="">lmoust;</code> </td> <td> U+023B0 </td> <td> <span class=glyph title="">&#9136;</span> </td> <tr id=entity-lmoustache><td> <code title="">lmoustache;</code> </td> <td> U+023B0 </td> <td> <span class=glyph title="">&#9136;</span> </td> <tr id=entity-lnE><td> <code title="">lnE;</code> </td> <td> U+02268 </td> <td> <span class=glyph title="">&#8808;</span> </td> <tr id=entity-lnap><td> <code title="">lnap;</code> </td> <td> U+02A89 </td> <td> <span class=glyph title="">&#10889;</span> </td> <tr id=entity-lnapprox><td> <code title="">lnapprox;</code> </td> <td> U+02A89 </td> <td> <span class=glyph title="">&#10889;</span> </td> <tr id=entity-lne><td> <code title="">lne;</code> </td> <td> U+02A87 </td> <td> <span class=glyph title="">&#10887;</span> </td> <tr id=entity-lneq><td> <code title="">lneq;</code> </td> <td> U+02A87 </td> <td> <span class=glyph title="">&#10887;</span> </td> <tr id=entity-lneqq><td> <code title="">lneqq;</code> </td> <td> U+02268 </td> <td> <span class=glyph title="">&#8808;</span> </td> <tr id=entity-lnsim><td> <code title="">lnsim;</code> </td> <td> U+022E6 </td> <td> <span class=glyph title="">&#8934;</span> </td> <tr id=entity-loang><td> <code title="">loang;</code> </td> <td> U+027EC </td> <td> <span class=glyph title="">&#10220;</span> </td> <tr id=entity-loarr><td> <code title="">loarr;</code> </td> <td> U+021FD </td> <td> <span class=glyph title="">&#8701;</span> </td> <tr id=entity-lobrk><td> <code title="">lobrk;</code> </td> <td> U+027E6 </td> <td> <span class=glyph title="">&#10214;</span> </td> <tr id=entity-longleftarrow><td> <code title="">longleftarrow;</code> </td> <td> U+027F5 </td> <td> <span class=glyph title="">&#10229;</span> </td> <tr id=entity-longleftrightarrow><td> <code title="">longleftrightarrow;</code> </td> <td> U+027F7 </td> <td> <span class=glyph title="">&#10231;</span> </td> <tr id=entity-longmapsto><td> <code title="">longmapsto;</code> </td> <td> U+027FC </td> <td> <span class=glyph title="">&#10236;</span> </td> <tr id=entity-longrightarrow><td> <code title="">longrightarrow;</code> </td> <td> U+027F6 </td> <td> <span class=glyph title="">&#10230;</span> </td> <tr id=entity-looparrowleft><td> <code title="">looparrowleft;</code> </td> <td> U+021AB </td> <td> <span class=glyph title="">&#8619;</span> </td> <tr id=entity-looparrowright><td> <code title="">looparrowright;</code> </td> <td> U+021AC </td> <td> <span class=glyph title="">&#8620;</span> </td> <tr id=entity-lopar><td> <code title="">lopar;</code> </td> <td> U+02985 </td> <td> <span class=glyph title="">&#10629;</span> </td> <tr id=entity-lopf><td> <code title="">lopf;</code> </td> <td> U+1D55D </td> <td> <span class=glyph title="">&#120157;</span> </td> <tr id=entity-loplus><td> <code title="">loplus;</code> </td> <td> U+02A2D </td> <td> <span class=glyph title="">&#10797;</span> </td> <tr id=entity-lotimes><td> <code title="">lotimes;</code> </td> <td> U+02A34 </td> <td> <span class=glyph title="">&#10804;</span> </td> <tr id=entity-lowast><td> <code title="">lowast;</code> </td> <td> U+02217 </td> <td> <span class=glyph title="">&lowast;</span> </td> <tr id=entity-lowbar><td> <code title="">lowbar;</code> </td> <td> U+0005F </td> <td> <span class=glyph title="">_</span> </td> <tr id=entity-loz><td> <code title="">loz;</code> </td> <td> U+025CA </td> <td> <span class=glyph title="">&loz;</span> </td> <tr id=entity-lozenge><td> <code title="">lozenge;</code> </td> <td> U+025CA </td> <td> <span class=glyph title="">&loz;</span> </td> <tr id=entity-lozf><td> <code title="">lozf;</code> </td> <td> U+029EB </td> <td> <span class=glyph title="">&#10731;</span> </td> <tr id=entity-lpar><td> <code title="">lpar;</code> </td> <td> U+00028 </td> <td> <span class=glyph title="">(</span> </td> <tr id=entity-lparlt><td> <code title="">lparlt;</code> </td> <td> U+02993 </td> <td> <span class=glyph title="">&#10643;</span> </td> <tr id=entity-lrarr><td> <code title="">lrarr;</code> </td> <td> U+021C6 </td> <td> <span class=glyph title="">&#8646;</span> </td> <tr id=entity-lrcorner><td> <code title="">lrcorner;</code> </td> <td> U+0231F </td> <td> <span class=glyph title="">&#8991;</span> </td> <tr id=entity-lrhar><td> <code title="">lrhar;</code> </td> <td> U+021CB </td> <td> <span class=glyph title="">&#8651;</span> </td> <tr id=entity-lrhard><td> <code title="">lrhard;</code> </td> <td> U+0296D </td> <td> <span class=glyph title="">&#10605;</span> </td> <tr id=entity-lrm><td> <code title="">lrm;</code> </td> <td> U+0200E </td> <td> <span class=glyph title="">&lrm;</span> </td> <tr id=entity-lrtri><td> <code title="">lrtri;</code> </td> <td> U+022BF </td> <td> <span class=glyph title="">&#8895;</span> </td> <tr id=entity-lsaquo><td> <code title="">lsaquo;</code> </td> <td> U+02039 </td> <td> <span class=glyph title="">&lsaquo;</span> </td> <tr id=entity-lscr><td> <code title="">lscr;</code> </td> <td> U+1D4C1 </td> <td> <span class=glyph title="">&#120001;</span> </td> <tr id=entity-lsh><td> <code title="">lsh;</code> </td> <td> U+021B0 </td> <td> <span class=glyph title="">&#8624;</span> </td> <tr id=entity-lsim><td> <code title="">lsim;</code> </td> <td> U+02272 </td> <td> <span class=glyph title="">&#8818;</span> </td> <tr id=entity-lsime><td> <code title="">lsime;</code> </td> <td> U+02A8D </td> <td> <span class=glyph title="">&#10893;</span> </td> <tr id=entity-lsimg><td> <code title="">lsimg;</code> </td> <td> U+02A8F </td> <td> <span class=glyph title="">&#10895;</span> </td> <tr id=entity-lsqb><td> <code title="">lsqb;</code> </td> <td> U+0005B </td> <td> <span class=glyph title="">[</span> </td> <tr id=entity-lsquo><td> <code title="">lsquo;</code> </td> <td> U+02018 </td> <td> <span class=glyph title="">&lsquo;</span> </td> <tr id=entity-lsquor><td> <code title="">lsquor;</code> </td> <td> U+0201A </td> <td> <span class=glyph title="">&sbquo;</span> </td> <tr id=entity-lstrok><td> <code title="">lstrok;</code> </td> <td> U+00142 </td> <td> <span class=glyph title="">&#322;</span> </td> <tr id=entity-lt><td> <code title="">lt;</code> </td> <td> U+0003C </td> <td> <span class=glyph title="">&lt;</span> </td> <tr id=entity-ltcc><td> <code title="">ltcc;</code> </td> <td> U+02AA6 </td> <td> <span class=glyph title="">&#10918;</span> </td> <tr id=entity-ltcir><td> <code title="">ltcir;</code> </td> <td> U+02A79 </td> <td> <span class=glyph title="">&#10873;</span> </td> <tr id=entity-ltdot><td> <code title="">ltdot;</code> </td> <td> U+022D6 </td> <td> <span class=glyph title="">&#8918;</span> </td> <tr id=entity-lthree><td> <code title="">lthree;</code> </td> <td> U+022CB </td> <td> <span class=glyph title="">&#8907;</span> </td> <tr id=entity-ltimes><td> <code title="">ltimes;</code> </td> <td> U+022C9 </td> <td> <span class=glyph title="">&#8905;</span> </td> <tr id=entity-ltlarr><td> <code title="">ltlarr;</code> </td> <td> U+02976 </td> <td> <span class=glyph title="">&#10614;</span> </td> <tr id=entity-ltquest><td> <code title="">ltquest;</code> </td> <td> U+02A7B </td> <td> <span class=glyph title="">&#10875;</span> </td> <tr id=entity-ltrPar><td> <code title="">ltrPar;</code> </td> <td> U+02996 </td> <td> <span class=glyph title="">&#10646;</span> </td> <tr id=entity-ltri><td> <code title="">ltri;</code> </td> <td> U+025C3 </td> <td> <span class=glyph title="">&#9667;</span> </td> <tr id=entity-ltrie><td> <code title="">ltrie;</code> </td> <td> U+022B4 </td> <td> <span class=glyph title="">&#8884;</span> </td> <tr id=entity-ltrif><td> <code title="">ltrif;</code> </td> <td> U+025C2 </td> <td> <span class=glyph title="">&#9666;</span> </td> <tr id=entity-lurdshar><td> <code title="">lurdshar;</code> </td> <td> U+0294A </td> <td> <span class=glyph title="">&#10570;</span> </td> <tr id=entity-luruhar><td> <code title="">luruhar;</code> </td> <td> U+02966 </td> <td> <span class=glyph title="">&#10598;</span> </td> <tr id=entity-lvertneqq><td> <code title="">lvertneqq;</code> </td> <td> U+02268 U+0FE00 </td> <td> <span class="glyph compound" title="">&#8808;&#65024;</span> </td> <tr id=entity-lvnE><td> <code title="">lvnE;</code> </td> <td> U+02268 U+0FE00 </td> <td> <span class="glyph compound" title="">&#8808;&#65024;</span> </td> <tr id=entity-mDDot><td> <code title="">mDDot;</code> </td> <td> U+0223A </td> <td> <span class=glyph title="">&#8762;</span> </td> <tr id=entity-macr><td> <code title="">macr;</code> </td> <td> U+000AF </td> <td> <span class=glyph title="">&macr;</span> </td> <tr id=entity-male><td> <code title="">male;</code> </td> <td> U+02642 </td> <td> <span class=glyph title="">&#9794;</span> </td> <tr id=entity-malt><td> <code title="">malt;</code> </td> <td> U+02720 </td> <td> <span class=glyph title="">&#10016;</span> </td> <tr id=entity-maltese><td> <code title="">maltese;</code> </td> <td> U+02720 </td> <td> <span class=glyph title="">&#10016;</span> </td> <tr id=entity-map><td> <code title="">map;</code> </td> <td> U+021A6 </td> <td> <span class=glyph title="">&#8614;</span> </td> <tr id=entity-mapsto><td> <code title="">mapsto;</code> </td> <td> U+021A6 </td> <td> <span class=glyph title="">&#8614;</span> </td> <tr id=entity-mapstodown><td> <code title="">mapstodown;</code> </td> <td> U+021A7 </td> <td> <span class=glyph title="">&#8615;</span> </td> <tr id=entity-mapstoleft><td> <code title="">mapstoleft;</code> </td> <td> U+021A4 </td> <td> <span class=glyph title="">&#8612;</span> </td> <tr id=entity-mapstoup><td> <code title="">mapstoup;</code> </td> <td> U+021A5 </td> <td> <span class=glyph title="">&#8613;</span> </td> <tr id=entity-marker><td> <code title="">marker;</code> </td> <td> U+025AE </td> <td> <span class=glyph title="">&#9646;</span> </td> <tr id=entity-mcomma><td> <code title="">mcomma;</code> </td> <td> U+02A29 </td> <td> <span class=glyph title="">&#10793;</span> </td> <tr id=entity-mcy><td> <code title="">mcy;</code> </td> <td> U+0043C </td> <td> <span class=glyph title="">&#1084;</span> </td> <tr id=entity-mdash><td> <code title="">mdash;</code> </td> <td> U+02014 </td> <td> <span class=glyph title="">&mdash;</span> </td> <tr id=entity-measuredangle><td> <code title="">measuredangle;</code> </td> <td> U+02221 </td> <td> <span class=glyph title="">&#8737;</span> </td> <tr id=entity-mfr><td> <code title="">mfr;</code> </td> <td> U+1D52A </td> <td> <span class=glyph title="">&#120106;</span> </td> <tr id=entity-mho><td> <code title="">mho;</code> </td> <td> U+02127 </td> <td> <span class=glyph title="">&#8487;</span> </td> <tr id=entity-micro><td> <code title="">micro;</code> </td> <td> U+000B5 </td> <td> <span class=glyph title="">&micro;</span> </td> <tr id=entity-mid><td> <code title="">mid;</code> </td> <td> U+02223 </td> <td> <span class=glyph title="">&#8739;</span> </td> <tr id=entity-midast><td> <code title="">midast;</code> </td> <td> U+0002A </td> <td> <span class=glyph title="">*</span> </td> <tr id=entity-midcir><td> <code title="">midcir;</code> </td> <td> U+02AF0 </td> <td> <span class=glyph title="">&#10992;</span> </td> <tr id=entity-middot><td> <code title="">middot;</code> </td> <td> U+000B7 </td> <td> <span class=glyph title="">&middot;</span> </td> <tr id=entity-minus><td> <code title="">minus;</code> </td> <td> U+02212 </td> <td> <span class=glyph title="">&minus;</span> </td> <tr id=entity-minusb><td> <code title="">minusb;</code> </td> <td> U+0229F </td> <td> <span class=glyph title="">&#8863;</span> </td> <tr id=entity-minusd><td> <code title="">minusd;</code> </td> <td> U+02238 </td> <td> <span class=glyph title="">&#8760;</span> </td> <tr id=entity-minusdu><td> <code title="">minusdu;</code> </td> <td> U+02A2A </td> <td> <span class=glyph title="">&#10794;</span> </td> <tr id=entity-mlcp><td> <code title="">mlcp;</code> </td> <td> U+02ADB </td> <td> <span class=glyph title="">&#10971;</span> </td> <tr id=entity-mldr><td> <code title="">mldr;</code> </td> <td> U+02026 </td> <td> <span class=glyph title="">&hellip;</span> </td> <tr id=entity-mnplus><td> <code title="">mnplus;</code> </td> <td> U+02213 </td> <td> <span class=glyph title="">&#8723;</span> </td> <tr id=entity-models><td> <code title="">models;</code> </td> <td> U+022A7 </td> <td> <span class=glyph title="">&#8871;</span> </td> <tr id=entity-mopf><td> <code title="">mopf;</code> </td> <td> U+1D55E </td> <td> <span class=glyph title="">&#120158;</span> </td> <tr id=entity-mp><td> <code title="">mp;</code> </td> <td> U+02213 </td> <td> <span class=glyph title="">&#8723;</span> </td> <tr id=entity-mscr><td> <code title="">mscr;</code> </td> <td> U+1D4C2 </td> <td> <span class=glyph title="">&#120002;</span> </td> <tr id=entity-mstpos><td> <code title="">mstpos;</code> </td> <td> U+0223E </td> <td> <span class=glyph title="">&#8766;</span> </td> <tr id=entity-mu><td> <code title="">mu;</code> </td> <td> U+003BC </td> <td> <span class=glyph title="">&mu;</span> </td> <tr id=entity-multimap><td> <code title="">multimap;</code> </td> <td> U+022B8 </td> <td> <span class=glyph title="">&#8888;</span> </td> <tr id=entity-mumap><td> <code title="">mumap;</code> </td> <td> U+022B8 </td> <td> <span class=glyph title="">&#8888;</span> </td> <tr id=entity-nGg><td> <code title="">nGg;</code> </td> <td> U+022D9 U+00338 </td> <td> <span class="glyph compound" title="">&#8921;&#824;</span> </td> <tr id=entity-nGt><td> <code title="">nGt;</code> </td> <td> U+0226B U+020D2 </td> <td> <span class="glyph compound" title="">&#8811;&#8402;</span> </td> <tr id=entity-nGtv><td> <code title="">nGtv;</code> </td> <td> U+0226B U+00338 </td> <td> <span class="glyph compound" title="">&#8811;&#824;</span> </td> <tr id=entity-nLeftarrow><td> <code title="">nLeftarrow;</code> </td> <td> U+021CD </td> <td> <span class=glyph title="">&#8653;</span> </td> <tr id=entity-nLeftrightarrow><td> <code title="">nLeftrightarrow;</code> </td> <td> U+021CE </td> <td> <span class=glyph title="">&#8654;</span> </td> <tr id=entity-nLl><td> <code title="">nLl;</code> </td> <td> U+022D8 U+00338 </td> <td> <span class="glyph compound" title="">&#8920;&#824;</span> </td> <tr id=entity-nLt><td> <code title="">nLt;</code> </td> <td> U+0226A U+020D2 </td> <td> <span class="glyph compound" title="">&#8810;&#8402;</span> </td> <tr id=entity-nLtv><td> <code title="">nLtv;</code> </td> <td> U+0226A U+00338 </td> <td> <span class="glyph compound" title="">&#8810;&#824;</span> </td> <tr id=entity-nRightarrow><td> <code title="">nRightarrow;</code> </td> <td> U+021CF </td> <td> <span class=glyph title="">&#8655;</span> </td> <tr id=entity-nVDash><td> <code title="">nVDash;</code> </td> <td> U+022AF </td> <td> <span class=glyph title="">&#8879;</span> </td> <tr id=entity-nVdash><td> <code title="">nVdash;</code> </td> <td> U+022AE </td> <td> <span class=glyph title="">&#8878;</span> </td> <tr id=entity-nabla><td> <code title="">nabla;</code> </td> <td> U+02207 </td> <td> <span class=glyph title="">&nabla;</span> </td> <tr id=entity-nacute><td> <code title="">nacute;</code> </td> <td> U+00144 </td> <td> <span class=glyph title="">&#324;</span> </td> <tr id=entity-nang><td> <code title="">nang;</code> </td> <td> U+02220 U+020D2 </td> <td> <span class="glyph compound" title="">&ang;&#8402;</span> </td> <tr id=entity-nap><td> <code title="">nap;</code> </td> <td> U+02249 </td> <td> <span class=glyph title="">&#8777;</span> </td> <tr id=entity-napE><td> <code title="">napE;</code> </td> <td> U+02A70 U+00338 </td> <td> <span class="glyph compound" title="">&#10864;&#824;</span> </td> <tr id=entity-napid><td> <code title="">napid;</code> </td> <td> U+0224B U+00338 </td> <td> <span class="glyph compound" title="">&#8779;&#824;</span> </td> <tr id=entity-napos><td> <code title="">napos;</code> </td> <td> U+00149 </td> <td> <span class=glyph title="">&#329;</span> </td> <tr id=entity-napprox><td> <code title="">napprox;</code> </td> <td> U+02249 </td> <td> <span class=glyph title="">&#8777;</span> </td> <tr id=entity-natur><td> <code title="">natur;</code> </td> <td> U+0266E </td> <td> <span class=glyph title="">&#9838;</span> </td> <tr id=entity-natural><td> <code title="">natural;</code> </td> <td> U+0266E </td> <td> <span class=glyph title="">&#9838;</span> </td> <tr id=entity-naturals><td> <code title="">naturals;</code> </td> <td> U+02115 </td> <td> <span class=glyph title="">&#8469;</span> </td> <tr id=entity-nbsp><td> <code title="">nbsp;</code> </td> <td> U+000A0 </td> <td> <span class=glyph title="">&nbsp;</span> </td> <tr id=entity-nbump><td> <code title="">nbump;</code> </td> <td> U+0224E U+00338 </td> <td> <span class="glyph compound" title="">&#8782;&#824;</span> </td> <tr id=entity-nbumpe><td> <code title="">nbumpe;</code> </td> <td> U+0224F U+00338 </td> <td> <span class="glyph compound" title="">&#8783;&#824;</span> </td> <tr id=entity-ncap><td> <code title="">ncap;</code> </td> <td> U+02A43 </td> <td> <span class=glyph title="">&#10819;</span> </td> <tr id=entity-ncaron><td> <code title="">ncaron;</code> </td> <td> U+00148 </td> <td> <span class=glyph title="">&#328;</span> </td> <tr id=entity-ncedil><td> <code title="">ncedil;</code> </td> <td> U+00146 </td> <td> <span class=glyph title="">&#326;</span> </td> <tr id=entity-ncong><td> <code title="">ncong;</code> </td> <td> U+02247 </td> <td> <span class=glyph title="">&#8775;</span> </td> <tr id=entity-ncongdot><td> <code title="">ncongdot;</code> </td> <td> U+02A6D U+00338 </td> <td> <span class="glyph compound" title="">&#10861;&#824;</span> </td> <tr id=entity-ncup><td> <code title="">ncup;</code> </td> <td> U+02A42 </td> <td> <span class=glyph title="">&#10818;</span> </td> <tr id=entity-ncy><td> <code title="">ncy;</code> </td> <td> U+0043D </td> <td> <span class=glyph title="">&#1085;</span> </td> <tr id=entity-ndash><td> <code title="">ndash;</code> </td> <td> U+02013 </td> <td> <span class=glyph title="">&ndash;</span> </td> <tr id=entity-ne><td> <code title="">ne;</code> </td> <td> U+02260 </td> <td> <span class=glyph title="">&ne;</span> </td> <tr id=entity-neArr><td> <code title="">neArr;</code> </td> <td> U+021D7 </td> <td> <span class=glyph title="">&#8663;</span> </td> <tr id=entity-nearhk><td> <code title="">nearhk;</code> </td> <td> U+02924 </td> <td> <span class=glyph title="">&#10532;</span> </td> <tr id=entity-nearr><td> <code title="">nearr;</code> </td> <td> U+02197 </td> <td> <span class=glyph title="">&#8599;</span> </td> <tr id=entity-nearrow><td> <code title="">nearrow;</code> </td> <td> U+02197 </td> <td> <span class=glyph title="">&#8599;</span> </td> <tr id=entity-nedot><td> <code title="">nedot;</code> </td> <td> U+02250 U+00338 </td> <td> <span class="glyph compound" title="">&#8784;&#824;</span> </td> <tr id=entity-nequiv><td> <code title="">nequiv;</code> </td> <td> U+02262 </td> <td> <span class=glyph title="">&#8802;</span> </td> <tr id=entity-nesear><td> <code title="">nesear;</code> </td> <td> U+02928 </td> <td> <span class=glyph title="">&#10536;</span> </td> <tr id=entity-nesim><td> <code title="">nesim;</code> </td> <td> U+02242 U+00338 </td> <td> <span class="glyph compound" title="">&#8770;&#824;</span> </td> <tr id=entity-nexist><td> <code title="">nexist;</code> </td> <td> U+02204 </td> <td> <span class=glyph title="">&#8708;</span> </td> <tr id=entity-nexists><td> <code title="">nexists;</code> </td> <td> U+02204 </td> <td> <span class=glyph title="">&#8708;</span> </td> <tr id=entity-nfr><td> <code title="">nfr;</code> </td> <td> U+1D52B </td> <td> <span class=glyph title="">&#120107;</span> </td> <tr id=entity-ngE><td> <code title="">ngE;</code> </td> <td> U+02267 U+00338 </td> <td> <span class="glyph compound" title="">&#8807;&#824;</span> </td> <tr id=entity-nge><td> <code title="">nge;</code> </td> <td> U+02271 </td> <td> <span class=glyph title="">&#8817;</span> </td> <tr id=entity-ngeq><td> <code title="">ngeq;</code> </td> <td> U+02271 </td> <td> <span class=glyph title="">&#8817;</span> </td> <tr id=entity-ngeqq><td> <code title="">ngeqq;</code> </td> <td> U+02267 U+00338 </td> <td> <span class="glyph compound" title="">&#8807;&#824;</span> </td> <tr id=entity-ngeqslant><td> <code title="">ngeqslant;</code> </td> <td> U+02A7E U+00338 </td> <td> <span class="glyph compound" title="">&#10878;&#824;</span> </td> <tr id=entity-nges><td> <code title="">nges;</code> </td> <td> U+02A7E U+00338 </td> <td> <span class="glyph compound" title="">&#10878;&#824;</span> </td> <tr id=entity-ngsim><td> <code title="">ngsim;</code> </td> <td> U+02275 </td> <td> <span class=glyph title="">&#8821;</span> </td> <tr id=entity-ngt><td> <code title="">ngt;</code> </td> <td> U+0226F </td> <td> <span class=glyph title="">&#8815;</span> </td> <tr id=entity-ngtr><td> <code title="">ngtr;</code> </td> <td> U+0226F </td> <td> <span class=glyph title="">&#8815;</span> </td> <tr id=entity-nhArr><td> <code title="">nhArr;</code> </td> <td> U+021CE </td> <td> <span class=glyph title="">&#8654;</span> </td> <tr id=entity-nharr><td> <code title="">nharr;</code> </td> <td> U+021AE </td> <td> <span class=glyph title="">&#8622;</span> </td> <tr id=entity-nhpar><td> <code title="">nhpar;</code> </td> <td> U+02AF2 </td> <td> <span class=glyph title="">&#10994;</span> </td> <tr id=entity-ni><td> <code title="">ni;</code> </td> <td> U+0220B </td> <td> <span class=glyph title="">&ni;</span> </td> <tr id=entity-nis><td> <code title="">nis;</code> </td> <td> U+022FC </td> <td> <span class=glyph title="">&#8956;</span> </td> <tr id=entity-nisd><td> <code title="">nisd;</code> </td> <td> U+022FA </td> <td> <span class=glyph title="">&#8954;</span> </td> <tr id=entity-niv><td> <code title="">niv;</code> </td> <td> U+0220B </td> <td> <span class=glyph title="">&ni;</span> </td> <tr id=entity-njcy><td> <code title="">njcy;</code> </td> <td> U+0045A </td> <td> <span class=glyph title="">&#1114;</span> </td> <tr id=entity-nlArr><td> <code title="">nlArr;</code> </td> <td> U+021CD </td> <td> <span class=glyph title="">&#8653;</span> </td> <tr id=entity-nlE><td> <code title="">nlE;</code> </td> <td> U+02266 U+00338 </td> <td> <span class="glyph compound" title="">&#8806;&#824;</span> </td> <tr id=entity-nlarr><td> <code title="">nlarr;</code> </td> <td> U+0219A </td> <td> <span class=glyph title="">&#8602;</span> </td> <tr id=entity-nldr><td> <code title="">nldr;</code> </td> <td> U+02025 </td> <td> <span class=glyph title="">&#8229;</span> </td> <tr id=entity-nle><td> <code title="">nle;</code> </td> <td> U+02270 </td> <td> <span class=glyph title="">&#8816;</span> </td> <tr id=entity-nleftarrow><td> <code title="">nleftarrow;</code> </td> <td> U+0219A </td> <td> <span class=glyph title="">&#8602;</span> </td> <tr id=entity-nleftrightarrow><td> <code title="">nleftrightarrow;</code> </td> <td> U+021AE </td> <td> <span class=glyph title="">&#8622;</span> </td> <tr id=entity-nleq><td> <code title="">nleq;</code> </td> <td> U+02270 </td> <td> <span class=glyph title="">&#8816;</span> </td> <tr id=entity-nleqq><td> <code title="">nleqq;</code> </td> <td> U+02266 U+00338 </td> <td> <span class="glyph compound" title="">&#8806;&#824;</span> </td> <tr id=entity-nleqslant><td> <code title="">nleqslant;</code> </td> <td> U+02A7D U+00338 </td> <td> <span class="glyph compound" title="">&#10877;&#824;</span> </td> <tr id=entity-nles><td> <code title="">nles;</code> </td> <td> U+02A7D U+00338 </td> <td> <span class="glyph compound" title="">&#10877;&#824;</span> </td> <tr id=entity-nless><td> <code title="">nless;</code> </td> <td> U+0226E </td> <td> <span class=glyph title="">&#8814;</span> </td> <tr id=entity-nlsim><td> <code title="">nlsim;</code> </td> <td> U+02274 </td> <td> <span class=glyph title="">&#8820;</span> </td> <tr id=entity-nlt><td> <code title="">nlt;</code> </td> <td> U+0226E </td> <td> <span class=glyph title="">&#8814;</span> </td> <tr id=entity-nltri><td> <code title="">nltri;</code> </td> <td> U+022EA </td> <td> <span class=glyph title="">&#8938;</span> </td> <tr id=entity-nltrie><td> <code title="">nltrie;</code> </td> <td> U+022EC </td> <td> <span class=glyph title="">&#8940;</span> </td> <tr id=entity-nmid><td> <code title="">nmid;</code> </td> <td> U+02224 </td> <td> <span class=glyph title="">&#8740;</span> </td> <tr id=entity-nopf><td> <code title="">nopf;</code> </td> <td> U+1D55F </td> <td> <span class=glyph title="">&#120159;</span> </td> <tr id=entity-not><td> <code title="">not;</code> </td> <td> U+000AC </td> <td> <span class=glyph title="">&not;</span> </td> <tr id=entity-notin><td> <code title="">notin;</code> </td> <td> U+02209 </td> <td> <span class=glyph title="">&notin;</span> </td> <tr id=entity-notinE><td> <code title="">notinE;</code> </td> <td> U+022F9 U+00338 </td> <td> <span class="glyph compound" title="">&#8953;&#824;</span> </td> <tr id=entity-notindot><td> <code title="">notindot;</code> </td> <td> U+022F5 U+00338 </td> <td> <span class="glyph compound" title="">&#8949;&#824;</span> </td> <tr id=entity-notinva><td> <code title="">notinva;</code> </td> <td> U+02209 </td> <td> <span class=glyph title="">&notin;</span> </td> <tr id=entity-notinvb><td> <code title="">notinvb;</code> </td> <td> U+022F7 </td> <td> <span class=glyph title="">&#8951;</span> </td> <tr id=entity-notinvc><td> <code title="">notinvc;</code> </td> <td> U+022F6 </td> <td> <span class=glyph title="">&#8950;</span> </td> <tr id=entity-notni><td> <code title="">notni;</code> </td> <td> U+0220C </td> <td> <span class=glyph title="">&#8716;</span> </td> <tr id=entity-notniva><td> <code title="">notniva;</code> </td> <td> U+0220C </td> <td> <span class=glyph title="">&#8716;</span> </td> <tr id=entity-notnivb><td> <code title="">notnivb;</code> </td> <td> U+022FE </td> <td> <span class=glyph title="">&#8958;</span> </td> <tr id=entity-notnivc><td> <code title="">notnivc;</code> </td> <td> U+022FD </td> <td> <span class=glyph title="">&#8957;</span> </td> <tr id=entity-npar><td> <code title="">npar;</code> </td> <td> U+02226 </td> <td> <span class=glyph title="">&#8742;</span> </td> <tr id=entity-nparallel><td> <code title="">nparallel;</code> </td> <td> U+02226 </td> <td> <span class=glyph title="">&#8742;</span> </td> <tr id=entity-nparsl><td> <code title="">nparsl;</code> </td> <td> U+02AFD U+020E5 </td> <td> <span class="glyph compound" title="">&#11005;&#8421;</span> </td> <tr id=entity-npart><td> <code title="">npart;</code> </td> <td> U+02202 U+00338 </td> <td> <span class="glyph compound" title="">&part;&#824;</span> </td> <tr id=entity-npolint><td> <code title="">npolint;</code> </td> <td> U+02A14 </td> <td> <span class=glyph title="">&#10772;</span> </td> <tr id=entity-npr><td> <code title="">npr;</code> </td> <td> U+02280 </td> <td> <span class=glyph title="">&#8832;</span> </td> <tr id=entity-nprcue><td> <code title="">nprcue;</code> </td> <td> U+022E0 </td> <td> <span class=glyph title="">&#8928;</span> </td> <tr id=entity-npre><td> <code title="">npre;</code> </td> <td> U+02AAF U+00338 </td> <td> <span class="glyph compound" title="">&#10927;&#824;</span> </td> <tr id=entity-nprec><td> <code title="">nprec;</code> </td> <td> U+02280 </td> <td> <span class=glyph title="">&#8832;</span> </td> <tr id=entity-npreceq><td> <code title="">npreceq;</code> </td> <td> U+02AAF U+00338 </td> <td> <span class="glyph compound" title="">&#10927;&#824;</span> </td> <tr id=entity-nrArr><td> <code title="">nrArr;</code> </td> <td> U+021CF </td> <td> <span class=glyph title="">&#8655;</span> </td> <tr id=entity-nrarr><td> <code title="">nrarr;</code> </td> <td> U+0219B </td> <td> <span class=glyph title="">&#8603;</span> </td> <tr id=entity-nrarrc><td> <code title="">nrarrc;</code> </td> <td> U+02933 U+00338 </td> <td> <span class="glyph compound" title="">&#10547;&#824;</span> </td> <tr id=entity-nrarrw><td> <code title="">nrarrw;</code> </td> <td> U+0219D U+00338 </td> <td> <span class="glyph compound" title="">&#8605;&#824;</span> </td> <tr id=entity-nrightarrow><td> <code title="">nrightarrow;</code> </td> <td> U+0219B </td> <td> <span class=glyph title="">&#8603;</span> </td> <tr id=entity-nrtri><td> <code title="">nrtri;</code> </td> <td> U+022EB </td> <td> <span class=glyph title="">&#8939;</span> </td> <tr id=entity-nrtrie><td> <code title="">nrtrie;</code> </td> <td> U+022ED </td> <td> <span class=glyph title="">&#8941;</span> </td> <tr id=entity-nsc><td> <code title="">nsc;</code> </td> <td> U+02281 </td> <td> <span class=glyph title="">&#8833;</span> </td> <tr id=entity-nsccue><td> <code title="">nsccue;</code> </td> <td> U+022E1 </td> <td> <span class=glyph title="">&#8929;</span> </td> <tr id=entity-nsce><td> <code title="">nsce;</code> </td> <td> U+02AB0 U+00338 </td> <td> <span class="glyph compound" title="">&#10928;&#824;</span> </td> <tr id=entity-nscr><td> <code title="">nscr;</code> </td> <td> U+1D4C3 </td> <td> <span class=glyph title="">&#120003;</span> </td> <tr id=entity-nshortmid><td> <code title="">nshortmid;</code> </td> <td> U+02224 </td> <td> <span class=glyph title="">&#8740;</span> </td> <tr id=entity-nshortparallel><td> <code title="">nshortparallel;</code> </td> <td> U+02226 </td> <td> <span class=glyph title="">&#8742;</span> </td> <tr id=entity-nsim><td> <code title="">nsim;</code> </td> <td> U+02241 </td> <td> <span class=glyph title="">&#8769;</span> </td> <tr id=entity-nsime><td> <code title="">nsime;</code> </td> <td> U+02244 </td> <td> <span class=glyph title="">&#8772;</span> </td> <tr id=entity-nsimeq><td> <code title="">nsimeq;</code> </td> <td> U+02244 </td> <td> <span class=glyph title="">&#8772;</span> </td> <tr id=entity-nsmid><td> <code title="">nsmid;</code> </td> <td> U+02224 </td> <td> <span class=glyph title="">&#8740;</span> </td> <tr id=entity-nspar><td> <code title="">nspar;</code> </td> <td> U+02226 </td> <td> <span class=glyph title="">&#8742;</span> </td> <tr id=entity-nsqsube><td> <code title="">nsqsube;</code> </td> <td> U+022E2 </td> <td> <span class=glyph title="">&#8930;</span> </td> <tr id=entity-nsqsupe><td> <code title="">nsqsupe;</code> </td> <td> U+022E3 </td> <td> <span class=glyph title="">&#8931;</span> </td> <tr id=entity-nsub><td> <code title="">nsub;</code> </td> <td> U+02284 </td> <td> <span class=glyph title="">&nsub;</span> </td> <tr id=entity-nsubE><td> <code title="">nsubE;</code> </td> <td> U+02AC5 U+00338 </td> <td> <span class="glyph compound" title="">&#10949;&#824;</span> </td> <tr id=entity-nsube><td> <code title="">nsube;</code> </td> <td> U+02288 </td> <td> <span class=glyph title="">&#8840;</span> </td> <tr id=entity-nsubset><td> <code title="">nsubset;</code> </td> <td> U+02282 U+020D2 </td> <td> <span class="glyph compound" title="">&sub;&#8402;</span> </td> <tr id=entity-nsubseteq><td> <code title="">nsubseteq;</code> </td> <td> U+02288 </td> <td> <span class=glyph title="">&#8840;</span> </td> <tr id=entity-nsubseteqq><td> <code title="">nsubseteqq;</code> </td> <td> U+02AC5 U+00338 </td> <td> <span class="glyph compound" title="">&#10949;&#824;</span> </td> <tr id=entity-nsucc><td> <code title="">nsucc;</code> </td> <td> U+02281 </td> <td> <span class=glyph title="">&#8833;</span> </td> <tr id=entity-nsucceq><td> <code title="">nsucceq;</code> </td> <td> U+02AB0 U+00338 </td> <td> <span class="glyph compound" title="">&#10928;&#824;</span> </td> <tr id=entity-nsup><td> <code title="">nsup;</code> </td> <td> U+02285 </td> <td> <span class=glyph title="">&#8837;</span> </td> <tr id=entity-nsupE><td> <code title="">nsupE;</code> </td> <td> U+02AC6 U+00338 </td> <td> <span class="glyph compound" title="">&#10950;&#824;</span> </td> <tr id=entity-nsupe><td> <code title="">nsupe;</code> </td> <td> U+02289 </td> <td> <span class=glyph title="">&#8841;</span> </td> <tr id=entity-nsupset><td> <code title="">nsupset;</code> </td> <td> U+02283 U+020D2 </td> <td> <span class="glyph compound" title="">&sup;&#8402;</span> </td> <tr id=entity-nsupseteq><td> <code title="">nsupseteq;</code> </td> <td> U+02289 </td> <td> <span class=glyph title="">&#8841;</span> </td> <tr id=entity-nsupseteqq><td> <code title="">nsupseteqq;</code> </td> <td> U+02AC6 U+00338 </td> <td> <span class="glyph compound" title="">&#10950;&#824;</span> </td> <tr id=entity-ntgl><td> <code title="">ntgl;</code> </td> <td> U+02279 </td> <td> <span class=glyph title="">&#8825;</span> </td> <tr id=entity-ntilde><td> <code title="">ntilde;</code> </td> <td> U+000F1 </td> <td> <span class=glyph title="">&ntilde;</span> </td> <tr id=entity-ntlg><td> <code title="">ntlg;</code> </td> <td> U+02278 </td> <td> <span class=glyph title="">&#8824;</span> </td> <tr id=entity-ntriangleleft><td> <code title="">ntriangleleft;</code> </td> <td> U+022EA </td> <td> <span class=glyph title="">&#8938;</span> </td> <tr id=entity-ntrianglelefteq><td> <code title="">ntrianglelefteq;</code> </td> <td> U+022EC </td> <td> <span class=glyph title="">&#8940;</span> </td> <tr id=entity-ntriangleright><td> <code title="">ntriangleright;</code> </td> <td> U+022EB </td> <td> <span class=glyph title="">&#8939;</span> </td> <tr id=entity-ntrianglerighteq><td> <code title="">ntrianglerighteq;</code> </td> <td> U+022ED </td> <td> <span class=glyph title="">&#8941;</span> </td> <tr id=entity-nu><td> <code title="">nu;</code> </td> <td> U+003BD </td> <td> <span class=glyph title="">&nu;</span> </td> <tr id=entity-num><td> <code title="">num;</code> </td> <td> U+00023 </td> <td> <span class=glyph title="">#</span> </td> <tr id=entity-numero><td> <code title="">numero;</code> </td> <td> U+02116 </td> <td> <span class=glyph title="">&#8470;</span> </td> <tr id=entity-numsp><td> <code title="">numsp;</code> </td> <td> U+02007 </td> <td> <span class=glyph title="">&#8199;</span> </td> <tr id=entity-nvDash><td> <code title="">nvDash;</code> </td> <td> U+022AD </td> <td> <span class=glyph title="">&#8877;</span> </td> <tr id=entity-nvHarr><td> <code title="">nvHarr;</code> </td> <td> U+02904 </td> <td> <span class=glyph title="">&#10500;</span> </td> <tr id=entity-nvap><td> <code title="">nvap;</code> </td> <td> U+0224D U+020D2 </td> <td> <span class="glyph compound" title="">&#8781;&#8402;</span> </td> <tr id=entity-nvdash><td> <code title="">nvdash;</code> </td> <td> U+022AC </td> <td> <span class=glyph title="">&#8876;</span> </td> <tr id=entity-nvge><td> <code title="">nvge;</code> </td> <td> U+02265 U+020D2 </td> <td> <span class="glyph compound" title="">&ge;&#8402;</span> </td> <tr id=entity-nvgt><td> <code title="">nvgt;</code> </td> <td> U+0003E U+020D2 </td> <td> <span class="glyph compound" title="">&gt;&#8402;</span> </td> <tr id=entity-nvinfin><td> <code title="">nvinfin;</code> </td> <td> U+029DE </td> <td> <span class=glyph title="">&#10718;</span> </td> <tr id=entity-nvlArr><td> <code title="">nvlArr;</code> </td> <td> U+02902 </td> <td> <span class=glyph title="">&#10498;</span> </td> <tr id=entity-nvle><td> <code title="">nvle;</code> </td> <td> U+02264 U+020D2 </td> <td> <span class="glyph compound" title="">&le;&#8402;</span> </td> <tr id=entity-nvlt><td> <code title="">nvlt;</code> </td> <td> U+0003C U+020D2 </td> <td> <span class="glyph compound" title="">&lt;&#8402;</span> </td> <tr id=entity-nvltrie><td> <code title="">nvltrie;</code> </td> <td> U+022B4 U+020D2 </td> <td> <span class="glyph compound" title="">&#8884;&#8402;</span> </td> <tr id=entity-nvrArr><td> <code title="">nvrArr;</code> </td> <td> U+02903 </td> <td> <span class=glyph title="">&#10499;</span> </td> <tr id=entity-nvrtrie><td> <code title="">nvrtrie;</code> </td> <td> U+022B5 U+020D2 </td> <td> <span class="glyph compound" title="">&#8885;&#8402;</span> </td> <tr id=entity-nvsim><td> <code title="">nvsim;</code> </td> <td> U+0223C U+020D2 </td> <td> <span class="glyph compound" title="">&sim;&#8402;</span> </td> <tr id=entity-nwArr><td> <code title="">nwArr;</code> </td> <td> U+021D6 </td> <td> <span class=glyph title="">&#8662;</span> </td> <tr id=entity-nwarhk><td> <code title="">nwarhk;</code> </td> <td> U+02923 </td> <td> <span class=glyph title="">&#10531;</span> </td> <tr id=entity-nwarr><td> <code title="">nwarr;</code> </td> <td> U+02196 </td> <td> <span class=glyph title="">&#8598;</span> </td> <tr id=entity-nwarrow><td> <code title="">nwarrow;</code> </td> <td> U+02196 </td> <td> <span class=glyph title="">&#8598;</span> </td> <tr id=entity-nwnear><td> <code title="">nwnear;</code> </td> <td> U+02927 </td> <td> <span class=glyph title="">&#10535;</span> </td> <tr id=entity-oS><td> <code title="">oS;</code> </td> <td> U+024C8 </td> <td> <span class=glyph title="">&#9416;</span> </td> <tr id=entity-oacute><td> <code title="">oacute;</code> </td> <td> U+000F3 </td> <td> <span class=glyph title="">&oacute;</span> </td> <tr id=entity-oast><td> <code title="">oast;</code> </td> <td> U+0229B </td> <td> <span class=glyph title="">&#8859;</span> </td> <tr id=entity-ocir><td> <code title="">ocir;</code> </td> <td> U+0229A </td> <td> <span class=glyph title="">&#8858;</span> </td> <tr id=entity-ocirc><td> <code title="">ocirc;</code> </td> <td> U+000F4 </td> <td> <span class=glyph title="">&ocirc;</span> </td> <tr id=entity-ocy><td> <code title="">ocy;</code> </td> <td> U+0043E </td> <td> <span class=glyph title="">&#1086;</span> </td> <tr id=entity-odash><td> <code title="">odash;</code> </td> <td> U+0229D </td> <td> <span class=glyph title="">&#8861;</span> </td> <tr id=entity-odblac><td> <code title="">odblac;</code> </td> <td> U+00151 </td> <td> <span class=glyph title="">&#337;</span> </td> <tr id=entity-odiv><td> <code title="">odiv;</code> </td> <td> U+02A38 </td> <td> <span class=glyph title="">&#10808;</span> </td> <tr id=entity-odot><td> <code title="">odot;</code> </td> <td> U+02299 </td> <td> <span class=glyph title="">&#8857;</span> </td> <tr id=entity-odsold><td> <code title="">odsold;</code> </td> <td> U+029BC </td> <td> <span class=glyph title="">&#10684;</span> </td> <tr id=entity-oelig><td> <code title="">oelig;</code> </td> <td> U+00153 </td> <td> <span class=glyph title="">&oelig;</span> </td> <tr id=entity-ofcir><td> <code title="">ofcir;</code> </td> <td> U+029BF </td> <td> <span class=glyph title="">&#10687;</span> </td> <tr id=entity-ofr><td> <code title="">ofr;</code> </td> <td> U+1D52C </td> <td> <span class=glyph title="">&#120108;</span> </td> <tr id=entity-ogon><td> <code title="">ogon;</code> </td> <td> U+002DB </td> <td> <span class=glyph title="">&#731;</span> </td> <tr id=entity-ograve><td> <code title="">ograve;</code> </td> <td> U+000F2 </td> <td> <span class=glyph title="">&ograve;</span> </td> <tr id=entity-ogt><td> <code title="">ogt;</code> </td> <td> U+029C1 </td> <td> <span class=glyph title="">&#10689;</span> </td> <tr id=entity-ohbar><td> <code title="">ohbar;</code> </td> <td> U+029B5 </td> <td> <span class=glyph title="">&#10677;</span> </td> <tr id=entity-ohm><td> <code title="">ohm;</code> </td> <td> U+003A9 </td> <td> <span class=glyph title="">&Omega;</span> </td> <tr id=entity-oint><td> <code title="">oint;</code> </td> <td> U+0222E </td> <td> <span class=glyph title="">&#8750;</span> </td> <tr id=entity-olarr><td> <code title="">olarr;</code> </td> <td> U+021BA </td> <td> <span class=glyph title="">&#8634;</span> </td> <tr id=entity-olcir><td> <code title="">olcir;</code> </td> <td> U+029BE </td> <td> <span class=glyph title="">&#10686;</span> </td> <tr id=entity-olcross><td> <code title="">olcross;</code> </td> <td> U+029BB </td> <td> <span class=glyph title="">&#10683;</span> </td> <tr id=entity-oline><td> <code title="">oline;</code> </td> <td> U+0203E </td> <td> <span class=glyph title="">&oline;</span> </td> <tr id=entity-olt><td> <code title="">olt;</code> </td> <td> U+029C0 </td> <td> <span class=glyph title="">&#10688;</span> </td> <tr id=entity-omacr><td> <code title="">omacr;</code> </td> <td> U+0014D </td> <td> <span class=glyph title="">&#333;</span> </td> <tr id=entity-omega><td> <code title="">omega;</code> </td> <td> U+003C9 </td> <td> <span class=glyph title="">&omega;</span> </td> <tr id=entity-omicron><td> <code title="">omicron;</code> </td> <td> U+003BF </td> <td> <span class=glyph title="">&omicron;</span> </td> <tr id=entity-omid><td> <code title="">omid;</code> </td> <td> U+029B6 </td> <td> <span class=glyph title="">&#10678;</span> </td> <tr id=entity-ominus><td> <code title="">ominus;</code> </td> <td> U+02296 </td> <td> <span class=glyph title="">&#8854;</span> </td> <tr id=entity-oopf><td> <code title="">oopf;</code> </td> <td> U+1D560 </td> <td> <span class=glyph title="">&#120160;</span> </td> <tr id=entity-opar><td> <code title="">opar;</code> </td> <td> U+029B7 </td> <td> <span class=glyph title="">&#10679;</span> </td> <tr id=entity-operp><td> <code title="">operp;</code> </td> <td> U+029B9 </td> <td> <span class=glyph title="">&#10681;</span> </td> <tr id=entity-oplus><td> <code title="">oplus;</code> </td> <td> U+02295 </td> <td> <span class=glyph title="">&oplus;</span> </td> <tr id=entity-or><td> <code title="">or;</code> </td> <td> U+02228 </td> <td> <span class=glyph title="">&or;</span> </td> <tr id=entity-orarr><td> <code title="">orarr;</code> </td> <td> U+021BB </td> <td> <span class=glyph title="">&#8635;</span> </td> <tr id=entity-ord><td> <code title="">ord;</code> </td> <td> U+02A5D </td> <td> <span class=glyph title="">&#10845;</span> </td> <tr id=entity-order><td> <code title="">order;</code> </td> <td> U+02134 </td> <td> <span class=glyph title="">&#8500;</span> </td> <tr id=entity-orderof><td> <code title="">orderof;</code> </td> <td> U+02134 </td> <td> <span class=glyph title="">&#8500;</span> </td> <tr id=entity-ordf><td> <code title="">ordf;</code> </td> <td> U+000AA </td> <td> <span class=glyph title="">&ordf;</span> </td> <tr id=entity-ordm><td> <code title="">ordm;</code> </td> <td> U+000BA </td> <td> <span class=glyph title="">&ordm;</span> </td> <tr id=entity-origof><td> <code title="">origof;</code> </td> <td> U+022B6 </td> <td> <span class=glyph title="">&#8886;</span> </td> <tr id=entity-oror><td> <code title="">oror;</code> </td> <td> U+02A56 </td> <td> <span class=glyph title="">&#10838;</span> </td> <tr id=entity-orslope><td> <code title="">orslope;</code> </td> <td> U+02A57 </td> <td> <span class=glyph title="">&#10839;</span> </td> <tr id=entity-orv><td> <code title="">orv;</code> </td> <td> U+02A5B </td> <td> <span class=glyph title="">&#10843;</span> </td> <tr id=entity-oscr><td> <code title="">oscr;</code> </td> <td> U+02134 </td> <td> <span class=glyph title="">&#8500;</span> </td> <tr id=entity-oslash><td> <code title="">oslash;</code> </td> <td> U+000F8 </td> <td> <span class=glyph title="">&oslash;</span> </td> <tr id=entity-osol><td> <code title="">osol;</code> </td> <td> U+02298 </td> <td> <span class=glyph title="">&#8856;</span> </td> <tr id=entity-otilde><td> <code title="">otilde;</code> </td> <td> U+000F5 </td> <td> <span class=glyph title="">&otilde;</span> </td> <tr id=entity-otimes><td> <code title="">otimes;</code> </td> <td> U+02297 </td> <td> <span class=glyph title="">&otimes;</span> </td> <tr id=entity-otimesas><td> <code title="">otimesas;</code> </td> <td> U+02A36 </td> <td> <span class=glyph title="">&#10806;</span> </td> <tr id=entity-ouml><td> <code title="">ouml;</code> </td> <td> U+000F6 </td> <td> <span class=glyph title="">&ouml;</span> </td> <tr id=entity-ovbar><td> <code title="">ovbar;</code> </td> <td> U+0233D </td> <td> <span class=glyph title="">&#9021;</span> </td> <tr id=entity-par><td> <code title="">par;</code> </td> <td> U+02225 </td> <td> <span class=glyph title="">&#8741;</span> </td> <tr id=entity-para><td> <code title="">para;</code> </td> <td> U+000B6 </td> <td> <span class=glyph title="">&para;</span> </td> <tr id=entity-parallel><td> <code title="">parallel;</code> </td> <td> U+02225 </td> <td> <span class=glyph title="">&#8741;</span> </td> <tr id=entity-parsim><td> <code title="">parsim;</code> </td> <td> U+02AF3 </td> <td> <span class=glyph title="">&#10995;</span> </td> <tr id=entity-parsl><td> <code title="">parsl;</code> </td> <td> U+02AFD </td> <td> <span class=glyph title="">&#11005;</span> </td> <tr id=entity-part><td> <code title="">part;</code> </td> <td> U+02202 </td> <td> <span class=glyph title="">&part;</span> </td> <tr id=entity-pcy><td> <code title="">pcy;</code> </td> <td> U+0043F </td> <td> <span class=glyph title="">&#1087;</span> </td> <tr id=entity-percnt><td> <code title="">percnt;</code> </td> <td> U+00025 </td> <td> <span class=glyph title="">%</span> </td> <tr id=entity-period><td> <code title="">period;</code> </td> <td> U+0002E </td> <td> <span class=glyph title="">.</span> </td> <tr id=entity-permil><td> <code title="">permil;</code> </td> <td> U+02030 </td> <td> <span class=glyph title="">&permil;</span> </td> <tr id=entity-perp><td> <code title="">perp;</code> </td> <td> U+022A5 </td> <td> <span class=glyph title="">&perp;</span> </td> <tr id=entity-pertenk><td> <code title="">pertenk;</code> </td> <td> U+02031 </td> <td> <span class=glyph title="">&#8241;</span> </td> <tr id=entity-pfr><td> <code title="">pfr;</code> </td> <td> U+1D52D </td> <td> <span class=glyph title="">&#120109;</span> </td> <tr id=entity-phi><td> <code title="">phi;</code> </td> <td> U+003C6 </td> <td> <span class=glyph title="">&phi;</span> </td> <tr id=entity-phiv><td> <code title="">phiv;</code> </td> <td> U+003D5 </td> <td> <span class=glyph title="">&#981;</span> </td> <tr id=entity-phmmat><td> <code title="">phmmat;</code> </td> <td> U+02133 </td> <td> <span class=glyph title="">&#8499;</span> </td> <tr id=entity-phone><td> <code title="">phone;</code> </td> <td> U+0260E </td> <td> <span class=glyph title="">&#9742;</span> </td> <tr id=entity-pi><td> <code title="">pi;</code> </td> <td> U+003C0 </td> <td> <span class=glyph title="">&pi;</span> </td> <tr id=entity-pitchfork><td> <code title="">pitchfork;</code> </td> <td> U+022D4 </td> <td> <span class=glyph title="">&#8916;</span> </td> <tr id=entity-piv><td> <code title="">piv;</code> </td> <td> U+003D6 </td> <td> <span class=glyph title="">&piv;</span> </td> <tr id=entity-planck><td> <code title="">planck;</code> </td> <td> U+0210F </td> <td> <span class=glyph title="">&#8463;</span> </td> <tr id=entity-planckh><td> <code title="">planckh;</code> </td> <td> U+0210E </td> <td> <span class=glyph title="">&#8462;</span> </td> <tr id=entity-plankv><td> <code title="">plankv;</code> </td> <td> U+0210F </td> <td> <span class=glyph title="">&#8463;</span> </td> <tr id=entity-plus><td> <code title="">plus;</code> </td> <td> U+0002B </td> <td> <span class=glyph title="">+</span> </td> <tr id=entity-plusacir><td> <code title="">plusacir;</code> </td> <td> U+02A23 </td> <td> <span class=glyph title="">&#10787;</span> </td> <tr id=entity-plusb><td> <code title="">plusb;</code> </td> <td> U+0229E </td> <td> <span class=glyph title="">&#8862;</span> </td> <tr id=entity-pluscir><td> <code title="">pluscir;</code> </td> <td> U+02A22 </td> <td> <span class=glyph title="">&#10786;</span> </td> <tr id=entity-plusdo><td> <code title="">plusdo;</code> </td> <td> U+02214 </td> <td> <span class=glyph title="">&#8724;</span> </td> <tr id=entity-plusdu><td> <code title="">plusdu;</code> </td> <td> U+02A25 </td> <td> <span class=glyph title="">&#10789;</span> </td> <tr id=entity-pluse><td> <code title="">pluse;</code> </td> <td> U+02A72 </td> <td> <span class=glyph title="">&#10866;</span> </td> <tr id=entity-plusmn><td> <code title="">plusmn;</code> </td> <td> U+000B1 </td> <td> <span class=glyph title="">&plusmn;</span> </td> <tr id=entity-plussim><td> <code title="">plussim;</code> </td> <td> U+02A26 </td> <td> <span class=glyph title="">&#10790;</span> </td> <tr id=entity-plustwo><td> <code title="">plustwo;</code> </td> <td> U+02A27 </td> <td> <span class=glyph title="">&#10791;</span> </td> <tr id=entity-pm><td> <code title="">pm;</code> </td> <td> U+000B1 </td> <td> <span class=glyph title="">&plusmn;</span> </td> <tr id=entity-pointint><td> <code title="">pointint;</code> </td> <td> U+02A15 </td> <td> <span class=glyph title="">&#10773;</span> </td> <tr id=entity-popf><td> <code title="">popf;</code> </td> <td> U+1D561 </td> <td> <span class=glyph title="">&#120161;</span> </td> <tr id=entity-pound><td> <code title="">pound;</code> </td> <td> U+000A3 </td> <td> <span class=glyph title="">&pound;</span> </td> <tr id=entity-pr><td> <code title="">pr;</code> </td> <td> U+0227A </td> <td> <span class=glyph title="">&#8826;</span> </td> <tr id=entity-prE><td> <code title="">prE;</code> </td> <td> U+02AB3 </td> <td> <span class=glyph title="">&#10931;</span> </td> <tr id=entity-prap><td> <code title="">prap;</code> </td> <td> U+02AB7 </td> <td> <span class=glyph title="">&#10935;</span> </td> <tr id=entity-prcue><td> <code title="">prcue;</code> </td> <td> U+0227C </td> <td> <span class=glyph title="">&#8828;</span> </td> <tr id=entity-pre><td> <code title="">pre;</code> </td> <td> U+02AAF </td> <td> <span class=glyph title="">&#10927;</span> </td> <tr id=entity-prec><td> <code title="">prec;</code> </td> <td> U+0227A </td> <td> <span class=glyph title="">&#8826;</span> </td> <tr id=entity-precapprox><td> <code title="">precapprox;</code> </td> <td> U+02AB7 </td> <td> <span class=glyph title="">&#10935;</span> </td> <tr id=entity-preccurlyeq><td> <code title="">preccurlyeq;</code> </td> <td> U+0227C </td> <td> <span class=glyph title="">&#8828;</span> </td> <tr id=entity-preceq><td> <code title="">preceq;</code> </td> <td> U+02AAF </td> <td> <span class=glyph title="">&#10927;</span> </td> <tr id=entity-precnapprox><td> <code title="">precnapprox;</code> </td> <td> U+02AB9 </td> <td> <span class=glyph title="">&#10937;</span> </td> <tr id=entity-precneqq><td> <code title="">precneqq;</code> </td> <td> U+02AB5 </td> <td> <span class=glyph title="">&#10933;</span> </td> <tr id=entity-precnsim><td> <code title="">precnsim;</code> </td> <td> U+022E8 </td> <td> <span class=glyph title="">&#8936;</span> </td> <tr id=entity-precsim><td> <code title="">precsim;</code> </td> <td> U+0227E </td> <td> <span class=glyph title="">&#8830;</span> </td> <tr id=entity-prime><td> <code title="">prime;</code> </td> <td> U+02032 </td> <td> <span class=glyph title="">&prime;</span> </td> <tr id=entity-primes><td> <code title="">primes;</code> </td> <td> U+02119 </td> <td> <span class=glyph title="">&#8473;</span> </td> <tr id=entity-prnE><td> <code title="">prnE;</code> </td> <td> U+02AB5 </td> <td> <span class=glyph title="">&#10933;</span> </td> <tr id=entity-prnap><td> <code title="">prnap;</code> </td> <td> U+02AB9 </td> <td> <span class=glyph title="">&#10937;</span> </td> <tr id=entity-prnsim><td> <code title="">prnsim;</code> </td> <td> U+022E8 </td> <td> <span class=glyph title="">&#8936;</span> </td> <tr id=entity-prod><td> <code title="">prod;</code> </td> <td> U+0220F </td> <td> <span class=glyph title="">&prod;</span> </td> <tr id=entity-profalar><td> <code title="">profalar;</code> </td> <td> U+0232E </td> <td> <span class=glyph title="">&#9006;</span> </td> <tr id=entity-profline><td> <code title="">profline;</code> </td> <td> U+02312 </td> <td> <span class=glyph title="">&#8978;</span> </td> <tr id=entity-profsurf><td> <code title="">profsurf;</code> </td> <td> U+02313 </td> <td> <span class=glyph title="">&#8979;</span> </td> <tr id=entity-prop><td> <code title="">prop;</code> </td> <td> U+0221D </td> <td> <span class=glyph title="">&prop;</span> </td> <tr id=entity-propto><td> <code title="">propto;</code> </td> <td> U+0221D </td> <td> <span class=glyph title="">&prop;</span> </td> <tr id=entity-prsim><td> <code title="">prsim;</code> </td> <td> U+0227E </td> <td> <span class=glyph title="">&#8830;</span> </td> <tr id=entity-prurel><td> <code title="">prurel;</code> </td> <td> U+022B0 </td> <td> <span class=glyph title="">&#8880;</span> </td> <tr id=entity-pscr><td> <code title="">pscr;</code> </td> <td> U+1D4C5 </td> <td> <span class=glyph title="">&#120005;</span> </td> <tr id=entity-psi><td> <code title="">psi;</code> </td> <td> U+003C8 </td> <td> <span class=glyph title="">&psi;</span> </td> <tr id=entity-puncsp><td> <code title="">puncsp;</code> </td> <td> U+02008 </td> <td> <span class=glyph title="">&#8200;</span> </td> <tr id=entity-qfr><td> <code title="">qfr;</code> </td> <td> U+1D52E </td> <td> <span class=glyph title="">&#120110;</span> </td> <tr id=entity-qint><td> <code title="">qint;</code> </td> <td> U+02A0C </td> <td> <span class=glyph title="">&#10764;</span> </td> <tr id=entity-qopf><td> <code title="">qopf;</code> </td> <td> U+1D562 </td> <td> <span class=glyph title="">&#120162;</span> </td> <tr id=entity-qprime><td> <code title="">qprime;</code> </td> <td> U+02057 </td> <td> <span class=glyph title="">&#8279;</span> </td> <tr id=entity-qscr><td> <code title="">qscr;</code> </td> <td> U+1D4C6 </td> <td> <span class=glyph title="">&#120006;</span> </td> <tr id=entity-quaternions><td> <code title="">quaternions;</code> </td> <td> U+0210D </td> <td> <span class=glyph title="">&#8461;</span> </td> <tr id=entity-quatint><td> <code title="">quatint;</code> </td> <td> U+02A16 </td> <td> <span class=glyph title="">&#10774;</span> </td> <tr id=entity-quest><td> <code title="">quest;</code> </td> <td> U+0003F </td> <td> <span class=glyph title="">?</span> </td> <tr id=entity-questeq><td> <code title="">questeq;</code> </td> <td> U+0225F </td> <td> <span class=glyph title="">&#8799;</span> </td> <tr id=entity-quot><td> <code title="">quot;</code> </td> <td> U+00022 </td> <td> <span class=glyph title="">"</span> </td> <tr id=entity-rAarr><td> <code title="">rAarr;</code> </td> <td> U+021DB </td> <td> <span class=glyph title="">&#8667;</span> </td> <tr id=entity-rArr><td> <code title="">rArr;</code> </td> <td> U+021D2 </td> <td> <span class=glyph title="">&rArr;</span> </td> <tr id=entity-rAtail><td> <code title="">rAtail;</code> </td> <td> U+0291C </td> <td> <span class=glyph title="">&#10524;</span> </td> <tr id=entity-rBarr><td> <code title="">rBarr;</code> </td> <td> U+0290F </td> <td> <span class=glyph title="">&#10511;</span> </td> <tr id=entity-rHar><td> <code title="">rHar;</code> </td> <td> U+02964 </td> <td> <span class=glyph title="">&#10596;</span> </td> <tr id=entity-race><td> <code title="">race;</code> </td> <td> U+0223D U+00331 </td> <td> <span class="glyph compound" title="">&#8765;&#817;</span> </td> <tr id=entity-racute><td> <code title="">racute;</code> </td> <td> U+00155 </td> <td> <span class=glyph title="">&#341;</span> </td> <tr id=entity-radic><td> <code title="">radic;</code> </td> <td> U+0221A </td> <td> <span class=glyph title="">&radic;</span> </td> <tr id=entity-raemptyv><td> <code title="">raemptyv;</code> </td> <td> U+029B3 </td> <td> <span class=glyph title="">&#10675;</span> </td> <tr id=entity-rang><td> <code title="">rang;</code> </td> <td> U+027E9 </td> <td> <span class=glyph title="">&rang;</span> </td> <tr id=entity-rangd><td> <code title="">rangd;</code> </td> <td> U+02992 </td> <td> <span class=glyph title="">&#10642;</span> </td> <tr id=entity-range><td> <code title="">range;</code> </td> <td> U+029A5 </td> <td> <span class=glyph title="">&#10661;</span> </td> <tr id=entity-rangle><td> <code title="">rangle;</code> </td> <td> U+027E9 </td> <td> <span class=glyph title="">&rang;</span> </td> <tr id=entity-raquo><td> <code title="">raquo;</code> </td> <td> U+000BB </td> <td> <span class=glyph title="">&raquo;</span> </td> <tr id=entity-rarr><td> <code title="">rarr;</code> </td> <td> U+02192 </td> <td> <span class=glyph title="">&rarr;</span> </td> <tr id=entity-rarrap><td> <code title="">rarrap;</code> </td> <td> U+02975 </td> <td> <span class=glyph title="">&#10613;</span> </td> <tr id=entity-rarrb><td> <code title="">rarrb;</code> </td> <td> U+021E5 </td> <td> <span class=glyph title="">&#8677;</span> </td> <tr id=entity-rarrbfs><td> <code title="">rarrbfs;</code> </td> <td> U+02920 </td> <td> <span class=glyph title="">&#10528;</span> </td> <tr id=entity-rarrc><td> <code title="">rarrc;</code> </td> <td> U+02933 </td> <td> <span class=glyph title="">&#10547;</span> </td> <tr id=entity-rarrfs><td> <code title="">rarrfs;</code> </td> <td> U+0291E </td> <td> <span class=glyph title="">&#10526;</span> </td> <tr id=entity-rarrhk><td> <code title="">rarrhk;</code> </td> <td> U+021AA </td> <td> <span class=glyph title="">&#8618;</span> </td> <tr id=entity-rarrlp><td> <code title="">rarrlp;</code> </td> <td> U+021AC </td> <td> <span class=glyph title="">&#8620;</span> </td> <tr id=entity-rarrpl><td> <code title="">rarrpl;</code> </td> <td> U+02945 </td> <td> <span class=glyph title="">&#10565;</span> </td> <tr id=entity-rarrsim><td> <code title="">rarrsim;</code> </td> <td> U+02974 </td> <td> <span class=glyph title="">&#10612;</span> </td> <tr id=entity-rarrtl><td> <code title="">rarrtl;</code> </td> <td> U+021A3 </td> <td> <span class=glyph title="">&#8611;</span> </td> <tr id=entity-rarrw><td> <code title="">rarrw;</code> </td> <td> U+0219D </td> <td> <span class=glyph title="">&#8605;</span> </td> <tr id=entity-ratail><td> <code title="">ratail;</code> </td> <td> U+0291A </td> <td> <span class=glyph title="">&#10522;</span> </td> <tr id=entity-ratio><td> <code title="">ratio;</code> </td> <td> U+02236 </td> <td> <span class=glyph title="">&#8758;</span> </td> <tr id=entity-rationals><td> <code title="">rationals;</code> </td> <td> U+0211A </td> <td> <span class=glyph title="">&#8474;</span> </td> <tr id=entity-rbarr><td> <code title="">rbarr;</code> </td> <td> U+0290D </td> <td> <span class=glyph title="">&#10509;</span> </td> <tr id=entity-rbbrk><td> <code title="">rbbrk;</code> </td> <td> U+02773 </td> <td> <span class=glyph title="">&#10099;</span> </td> <tr id=entity-rbrace><td> <code title="">rbrace;</code> </td> <td> U+0007D </td> <td> <span class=glyph title="">}</span> </td> <tr id=entity-rbrack><td> <code title="">rbrack;</code> </td> <td> U+0005D </td> <td> <span class=glyph title="">]</span> </td> <tr id=entity-rbrke><td> <code title="">rbrke;</code> </td> <td> U+0298C </td> <td> <span class=glyph title="">&#10636;</span> </td> <tr id=entity-rbrksld><td> <code title="">rbrksld;</code> </td> <td> U+0298E </td> <td> <span class=glyph title="">&#10638;</span> </td> <tr id=entity-rbrkslu><td> <code title="">rbrkslu;</code> </td> <td> U+02990 </td> <td> <span class=glyph title="">&#10640;</span> </td> <tr id=entity-rcaron><td> <code title="">rcaron;</code> </td> <td> U+00159 </td> <td> <span class=glyph title="">&#345;</span> </td> <tr id=entity-rcedil><td> <code title="">rcedil;</code> </td> <td> U+00157 </td> <td> <span class=glyph title="">&#343;</span> </td> <tr id=entity-rceil><td> <code title="">rceil;</code> </td> <td> U+02309 </td> <td> <span class=glyph title="">&rceil;</span> </td> <tr id=entity-rcub><td> <code title="">rcub;</code> </td> <td> U+0007D </td> <td> <span class=glyph title="">}</span> </td> <tr id=entity-rcy><td> <code title="">rcy;</code> </td> <td> U+00440 </td> <td> <span class=glyph title="">&#1088;</span> </td> <tr id=entity-rdca><td> <code title="">rdca;</code> </td> <td> U+02937 </td> <td> <span class=glyph title="">&#10551;</span> </td> <tr id=entity-rdldhar><td> <code title="">rdldhar;</code> </td> <td> U+02969 </td> <td> <span class=glyph title="">&#10601;</span> </td> <tr id=entity-rdquo><td> <code title="">rdquo;</code> </td> <td> U+0201D </td> <td> <span class=glyph title="">&rdquo;</span> </td> <tr id=entity-rdquor><td> <code title="">rdquor;</code> </td> <td> U+0201D </td> <td> <span class=glyph title="">&rdquo;</span> </td> <tr id=entity-rdsh><td> <code title="">rdsh;</code> </td> <td> U+021B3 </td> <td> <span class=glyph title="">&#8627;</span> </td> <tr id=entity-real><td> <code title="">real;</code> </td> <td> U+0211C </td> <td> <span class=glyph title="">&real;</span> </td> <tr id=entity-realine><td> <code title="">realine;</code> </td> <td> U+0211B </td> <td> <span class=glyph title="">&#8475;</span> </td> <tr id=entity-realpart><td> <code title="">realpart;</code> </td> <td> U+0211C </td> <td> <span class=glyph title="">&real;</span> </td> <tr id=entity-reals><td> <code title="">reals;</code> </td> <td> U+0211D </td> <td> <span class=glyph title="">&#8477;</span> </td> <tr id=entity-rect><td> <code title="">rect;</code> </td> <td> U+025AD </td> <td> <span class=glyph title="">&#9645;</span> </td> <tr id=entity-reg><td> <code title="">reg;</code> </td> <td> U+000AE </td> <td> <span class=glyph title="">&reg;</span> </td> <tr id=entity-rfisht><td> <code title="">rfisht;</code> </td> <td> U+0297D </td> <td> <span class=glyph title="">&#10621;</span> </td> <tr id=entity-rfloor><td> <code title="">rfloor;</code> </td> <td> U+0230B </td> <td> <span class=glyph title="">&rfloor;</span> </td> <tr id=entity-rfr><td> <code title="">rfr;</code> </td> <td> U+1D52F </td> <td> <span class=glyph title="">&#120111;</span> </td> <tr id=entity-rhard><td> <code title="">rhard;</code> </td> <td> U+021C1 </td> <td> <span class=glyph title="">&#8641;</span> </td> <tr id=entity-rharu><td> <code title="">rharu;</code> </td> <td> U+021C0 </td> <td> <span class=glyph title="">&#8640;</span> </td> <tr id=entity-rharul><td> <code title="">rharul;</code> </td> <td> U+0296C </td> <td> <span class=glyph title="">&#10604;</span> </td> <tr id=entity-rho><td> <code title="">rho;</code> </td> <td> U+003C1 </td> <td> <span class=glyph title="">&rho;</span> </td> <tr id=entity-rhov><td> <code title="">rhov;</code> </td> <td> U+003F1 </td> <td> <span class=glyph title="">&#1009;</span> </td> <tr id=entity-rightarrow><td> <code title="">rightarrow;</code> </td> <td> U+02192 </td> <td> <span class=glyph title="">&rarr;</span> </td> <tr id=entity-rightarrowtail><td> <code title="">rightarrowtail;</code> </td> <td> U+021A3 </td> <td> <span class=glyph title="">&#8611;</span> </td> <tr id=entity-rightharpoondown><td> <code title="">rightharpoondown;</code> </td> <td> U+021C1 </td> <td> <span class=glyph title="">&#8641;</span> </td> <tr id=entity-rightharpoonup><td> <code title="">rightharpoonup;</code> </td> <td> U+021C0 </td> <td> <span class=glyph title="">&#8640;</span> </td> <tr id=entity-rightleftarrows><td> <code title="">rightleftarrows;</code> </td> <td> U+021C4 </td> <td> <span class=glyph title="">&#8644;</span> </td> <tr id=entity-rightleftharpoons><td> <code title="">rightleftharpoons;</code> </td> <td> U+021CC </td> <td> <span class=glyph title="">&#8652;</span> </td> <tr id=entity-rightrightarrows><td> <code title="">rightrightarrows;</code> </td> <td> U+021C9 </td> <td> <span class=glyph title="">&#8649;</span> </td> <tr id=entity-rightsquigarrow><td> <code title="">rightsquigarrow;</code> </td> <td> U+0219D </td> <td> <span class=glyph title="">&#8605;</span> </td> <tr id=entity-rightthreetimes><td> <code title="">rightthreetimes;</code> </td> <td> U+022CC </td> <td> <span class=glyph title="">&#8908;</span> </td> <tr id=entity-ring><td> <code title="">ring;</code> </td> <td> U+002DA </td> <td> <span class=glyph title="">&#730;</span> </td> <tr id=entity-risingdotseq><td> <code title="">risingdotseq;</code> </td> <td> U+02253 </td> <td> <span class=glyph title="">&#8787;</span> </td> <tr id=entity-rlarr><td> <code title="">rlarr;</code> </td> <td> U+021C4 </td> <td> <span class=glyph title="">&#8644;</span> </td> <tr id=entity-rlhar><td> <code title="">rlhar;</code> </td> <td> U+021CC </td> <td> <span class=glyph title="">&#8652;</span> </td> <tr id=entity-rlm><td> <code title="">rlm;</code> </td> <td> U+0200F </td> <td> <span class=glyph title="">&rlm;</span> </td> <tr id=entity-rmoust><td> <code title="">rmoust;</code> </td> <td> U+023B1 </td> <td> <span class=glyph title="">&#9137;</span> </td> <tr id=entity-rmoustache><td> <code title="">rmoustache;</code> </td> <td> U+023B1 </td> <td> <span class=glyph title="">&#9137;</span> </td> <tr id=entity-rnmid><td> <code title="">rnmid;</code> </td> <td> U+02AEE </td> <td> <span class=glyph title="">&#10990;</span> </td> <tr id=entity-roang><td> <code title="">roang;</code> </td> <td> U+027ED </td> <td> <span class=glyph title="">&#10221;</span> </td> <tr id=entity-roarr><td> <code title="">roarr;</code> </td> <td> U+021FE </td> <td> <span class=glyph title="">&#8702;</span> </td> <tr id=entity-robrk><td> <code title="">robrk;</code> </td> <td> U+027E7 </td> <td> <span class=glyph title="">&#10215;</span> </td> <tr id=entity-ropar><td> <code title="">ropar;</code> </td> <td> U+02986 </td> <td> <span class=glyph title="">&#10630;</span> </td> <tr id=entity-ropf><td> <code title="">ropf;</code> </td> <td> U+1D563 </td> <td> <span class=glyph title="">&#120163;</span> </td> <tr id=entity-roplus><td> <code title="">roplus;</code> </td> <td> U+02A2E </td> <td> <span class=glyph title="">&#10798;</span> </td> <tr id=entity-rotimes><td> <code title="">rotimes;</code> </td> <td> U+02A35 </td> <td> <span class=glyph title="">&#10805;</span> </td> <tr id=entity-rpar><td> <code title="">rpar;</code> </td> <td> U+00029 </td> <td> <span class=glyph title="">)</span> </td> <tr id=entity-rpargt><td> <code title="">rpargt;</code> </td> <td> U+02994 </td> <td> <span class=glyph title="">&#10644;</span> </td> <tr id=entity-rppolint><td> <code title="">rppolint;</code> </td> <td> U+02A12 </td> <td> <span class=glyph title="">&#10770;</span> </td> <tr id=entity-rrarr><td> <code title="">rrarr;</code> </td> <td> U+021C9 </td> <td> <span class=glyph title="">&#8649;</span> </td> <tr id=entity-rsaquo><td> <code title="">rsaquo;</code> </td> <td> U+0203A </td> <td> <span class=glyph title="">&rsaquo;</span> </td> <tr id=entity-rscr><td> <code title="">rscr;</code> </td> <td> U+1D4C7 </td> <td> <span class=glyph title="">&#120007;</span> </td> <tr id=entity-rsh><td> <code title="">rsh;</code> </td> <td> U+021B1 </td> <td> <span class=glyph title="">&#8625;</span> </td> <tr id=entity-rsqb><td> <code title="">rsqb;</code> </td> <td> U+0005D </td> <td> <span class=glyph title="">]</span> </td> <tr id=entity-rsquo><td> <code title="">rsquo;</code> </td> <td> U+02019 </td> <td> <span class=glyph title="">&rsquo;</span> </td> <tr id=entity-rsquor><td> <code title="">rsquor;</code> </td> <td> U+02019 </td> <td> <span class=glyph title="">&rsquo;</span> </td> <tr id=entity-rthree><td> <code title="">rthree;</code> </td> <td> U+022CC </td> <td> <span class=glyph title="">&#8908;</span> </td> <tr id=entity-rtimes><td> <code title="">rtimes;</code> </td> <td> U+022CA </td> <td> <span class=glyph title="">&#8906;</span> </td> <tr id=entity-rtri><td> <code title="">rtri;</code> </td> <td> U+025B9 </td> <td> <span class=glyph title="">&#9657;</span> </td> <tr id=entity-rtrie><td> <code title="">rtrie;</code> </td> <td> U+022B5 </td> <td> <span class=glyph title="">&#8885;</span> </td> <tr id=entity-rtrif><td> <code title="">rtrif;</code> </td> <td> U+025B8 </td> <td> <span class=glyph title="">&#9656;</span> </td> <tr id=entity-rtriltri><td> <code title="">rtriltri;</code> </td> <td> U+029CE </td> <td> <span class=glyph title="">&#10702;</span> </td> <tr id=entity-ruluhar><td> <code title="">ruluhar;</code> </td> <td> U+02968 </td> <td> <span class=glyph title="">&#10600;</span> </td> <tr id=entity-rx><td> <code title="">rx;</code> </td> <td> U+0211E </td> <td> <span class=glyph title="">&#8478;</span> </td> <tr id=entity-sacute><td> <code title="">sacute;</code> </td> <td> U+0015B </td> <td> <span class=glyph title="">&#347;</span> </td> <tr id=entity-sbquo><td> <code title="">sbquo;</code> </td> <td> U+0201A </td> <td> <span class=glyph title="">&sbquo;</span> </td> <tr id=entity-sc><td> <code title="">sc;</code> </td> <td> U+0227B </td> <td> <span class=glyph title="">&#8827;</span> </td> <tr id=entity-scE><td> <code title="">scE;</code> </td> <td> U+02AB4 </td> <td> <span class=glyph title="">&#10932;</span> </td> <tr id=entity-scap><td> <code title="">scap;</code> </td> <td> U+02AB8 </td> <td> <span class=glyph title="">&#10936;</span> </td> <tr id=entity-scaron><td> <code title="">scaron;</code> </td> <td> U+00161 </td> <td> <span class=glyph title="">&scaron;</span> </td> <tr id=entity-sccue><td> <code title="">sccue;</code> </td> <td> U+0227D </td> <td> <span class=glyph title="">&#8829;</span> </td> <tr id=entity-sce><td> <code title="">sce;</code> </td> <td> U+02AB0 </td> <td> <span class=glyph title="">&#10928;</span> </td> <tr id=entity-scedil><td> <code title="">scedil;</code> </td> <td> U+0015F </td> <td> <span class=glyph title="">&#351;</span> </td> <tr id=entity-scirc><td> <code title="">scirc;</code> </td> <td> U+0015D </td> <td> <span class=glyph title="">&#349;</span> </td> <tr id=entity-scnE><td> <code title="">scnE;</code> </td> <td> U+02AB6 </td> <td> <span class=glyph title="">&#10934;</span> </td> <tr id=entity-scnap><td> <code title="">scnap;</code> </td> <td> U+02ABA </td> <td> <span class=glyph title="">&#10938;</span> </td> <tr id=entity-scnsim><td> <code title="">scnsim;</code> </td> <td> U+022E9 </td> <td> <span class=glyph title="">&#8937;</span> </td> <tr id=entity-scpolint><td> <code title="">scpolint;</code> </td> <td> U+02A13 </td> <td> <span class=glyph title="">&#10771;</span> </td> <tr id=entity-scsim><td> <code title="">scsim;</code> </td> <td> U+0227F </td> <td> <span class=glyph title="">&#8831;</span> </td> <tr id=entity-scy><td> <code title="">scy;</code> </td> <td> U+00441 </td> <td> <span class=glyph title="">&#1089;</span> </td> <tr id=entity-sdot><td> <code title="">sdot;</code> </td> <td> U+022C5 </td> <td> <span class=glyph title="">&sdot;</span> </td> <tr id=entity-sdotb><td> <code title="">sdotb;</code> </td> <td> U+022A1 </td> <td> <span class=glyph title="">&#8865;</span> </td> <tr id=entity-sdote><td> <code title="">sdote;</code> </td> <td> U+02A66 </td> <td> <span class=glyph title="">&#10854;</span> </td> <tr id=entity-seArr><td> <code title="">seArr;</code> </td> <td> U+021D8 </td> <td> <span class=glyph title="">&#8664;</span> </td> <tr id=entity-searhk><td> <code title="">searhk;</code> </td> <td> U+02925 </td> <td> <span class=glyph title="">&#10533;</span> </td> <tr id=entity-searr><td> <code title="">searr;</code> </td> <td> U+02198 </td> <td> <span class=glyph title="">&#8600;</span> </td> <tr id=entity-searrow><td> <code title="">searrow;</code> </td> <td> U+02198 </td> <td> <span class=glyph title="">&#8600;</span> </td> <tr id=entity-sect><td> <code title="">sect;</code> </td> <td> U+000A7 </td> <td> <span class=glyph title="">&sect;</span> </td> <tr id=entity-semi><td> <code title="">semi;</code> </td> <td> U+0003B </td> <td> <span class=glyph title="">;</span> </td> <tr id=entity-seswar><td> <code title="">seswar;</code> </td> <td> U+02929 </td> <td> <span class=glyph title="">&#10537;</span> </td> <tr id=entity-setminus><td> <code title="">setminus;</code> </td> <td> U+02216 </td> <td> <span class=glyph title="">&#8726;</span> </td> <tr id=entity-setmn><td> <code title="">setmn;</code> </td> <td> U+02216 </td> <td> <span class=glyph title="">&#8726;</span> </td> <tr id=entity-sext><td> <code title="">sext;</code> </td> <td> U+02736 </td> <td> <span class=glyph title="">&#10038;</span> </td> <tr id=entity-sfr><td> <code title="">sfr;</code> </td> <td> U+1D530 </td> <td> <span class=glyph title="">&#120112;</span> </td> <tr id=entity-sfrown><td> <code title="">sfrown;</code> </td> <td> U+02322 </td> <td> <span class=glyph title="">&#8994;</span> </td> <tr id=entity-sharp><td> <code title="">sharp;</code> </td> <td> U+0266F </td> <td> <span class=glyph title="">&#9839;</span> </td> <tr id=entity-shchcy><td> <code title="">shchcy;</code> </td> <td> U+00449 </td> <td> <span class=glyph title="">&#1097;</span> </td> <tr id=entity-shcy><td> <code title="">shcy;</code> </td> <td> U+00448 </td> <td> <span class=glyph title="">&#1096;</span> </td> <tr id=entity-shortmid><td> <code title="">shortmid;</code> </td> <td> U+02223 </td> <td> <span class=glyph title="">&#8739;</span> </td> <tr id=entity-shortparallel><td> <code title="">shortparallel;</code> </td> <td> U+02225 </td> <td> <span class=glyph title="">&#8741;</span> </td> <tr id=entity-shy><td> <code title="">shy;</code> </td> <td> U+000AD </td> <td> <span class=glyph title="">&shy;</span> </td> <tr id=entity-sigma><td> <code title="">sigma;</code> </td> <td> U+003C3 </td> <td> <span class=glyph title="">&sigma;</span> </td> <tr id=entity-sigmaf><td> <code title="">sigmaf;</code> </td> <td> U+003C2 </td> <td> <span class=glyph title="">&sigmaf;</span> </td> <tr id=entity-sigmav><td> <code title="">sigmav;</code> </td> <td> U+003C2 </td> <td> <span class=glyph title="">&sigmaf;</span> </td> <tr id=entity-sim><td> <code title="">sim;</code> </td> <td> U+0223C </td> <td> <span class=glyph title="">&sim;</span> </td> <tr id=entity-simdot><td> <code title="">simdot;</code> </td> <td> U+02A6A </td> <td> <span class=glyph title="">&#10858;</span> </td> <tr id=entity-sime><td> <code title="">sime;</code> </td> <td> U+02243 </td> <td> <span class=glyph title="">&#8771;</span> </td> <tr id=entity-simeq><td> <code title="">simeq;</code> </td> <td> U+02243 </td> <td> <span class=glyph title="">&#8771;</span> </td> <tr id=entity-simg><td> <code title="">simg;</code> </td> <td> U+02A9E </td> <td> <span class=glyph title="">&#10910;</span> </td> <tr id=entity-simgE><td> <code title="">simgE;</code> </td> <td> U+02AA0 </td> <td> <span class=glyph title="">&#10912;</span> </td> <tr id=entity-siml><td> <code title="">siml;</code> </td> <td> U+02A9D </td> <td> <span class=glyph title="">&#10909;</span> </td> <tr id=entity-simlE><td> <code title="">simlE;</code> </td> <td> U+02A9F </td> <td> <span class=glyph title="">&#10911;</span> </td> <tr id=entity-simne><td> <code title="">simne;</code> </td> <td> U+02246 </td> <td> <span class=glyph title="">&#8774;</span> </td> <tr id=entity-simplus><td> <code title="">simplus;</code> </td> <td> U+02A24 </td> <td> <span class=glyph title="">&#10788;</span> </td> <tr id=entity-simrarr><td> <code title="">simrarr;</code> </td> <td> U+02972 </td> <td> <span class=glyph title="">&#10610;</span> </td> <tr id=entity-slarr><td> <code title="">slarr;</code> </td> <td> U+02190 </td> <td> <span class=glyph title="">&larr;</span> </td> <tr id=entity-smallsetminus><td> <code title="">smallsetminus;</code> </td> <td> U+02216 </td> <td> <span class=glyph title="">&#8726;</span> </td> <tr id=entity-smashp><td> <code title="">smashp;</code> </td> <td> U+02A33 </td> <td> <span class=glyph title="">&#10803;</span> </td> <tr id=entity-smeparsl><td> <code title="">smeparsl;</code> </td> <td> U+029E4 </td> <td> <span class=glyph title="">&#10724;</span> </td> <tr id=entity-smid><td> <code title="">smid;</code> </td> <td> U+02223 </td> <td> <span class=glyph title="">&#8739;</span> </td> <tr id=entity-smile><td> <code title="">smile;</code> </td> <td> U+02323 </td> <td> <span class=glyph title="">&#8995;</span> </td> <tr id=entity-smt><td> <code title="">smt;</code> </td> <td> U+02AAA </td> <td> <span class=glyph title="">&#10922;</span> </td> <tr id=entity-smte><td> <code title="">smte;</code> </td> <td> U+02AAC </td> <td> <span class=glyph title="">&#10924;</span> </td> <tr id=entity-smtes><td> <code title="">smtes;</code> </td> <td> U+02AAC U+0FE00 </td> <td> <span class="glyph compound" title="">&#10924;&#65024;</span> </td> <tr id=entity-softcy><td> <code title="">softcy;</code> </td> <td> U+0044C </td> <td> <span class=glyph title="">&#1100;</span> </td> <tr id=entity-sol><td> <code title="">sol;</code> </td> <td> U+0002F </td> <td> <span class=glyph title="">/</span> </td> <tr id=entity-solb><td> <code title="">solb;</code> </td> <td> U+029C4 </td> <td> <span class=glyph title="">&#10692;</span> </td> <tr id=entity-solbar><td> <code title="">solbar;</code> </td> <td> U+0233F </td> <td> <span class=glyph title="">&#9023;</span> </td> <tr id=entity-sopf><td> <code title="">sopf;</code> </td> <td> U+1D564 </td> <td> <span class=glyph title="">&#120164;</span> </td> <tr id=entity-spades><td> <code title="">spades;</code> </td> <td> U+02660 </td> <td> <span class=glyph title="">&spades;</span> </td> <tr id=entity-spadesuit><td> <code title="">spadesuit;</code> </td> <td> U+02660 </td> <td> <span class=glyph title="">&spades;</span> </td> <tr id=entity-spar><td> <code title="">spar;</code> </td> <td> U+02225 </td> <td> <span class=glyph title="">&#8741;</span> </td> <tr id=entity-sqcap><td> <code title="">sqcap;</code> </td> <td> U+02293 </td> <td> <span class=glyph title="">&#8851;</span> </td> <tr id=entity-sqcaps><td> <code title="">sqcaps;</code> </td> <td> U+02293 U+0FE00 </td> <td> <span class="glyph compound" title="">&#8851;&#65024;</span> </td> <tr id=entity-sqcup><td> <code title="">sqcup;</code> </td> <td> U+02294 </td> <td> <span class=glyph title="">&#8852;</span> </td> <tr id=entity-sqcups><td> <code title="">sqcups;</code> </td> <td> U+02294 U+0FE00 </td> <td> <span class="glyph compound" title="">&#8852;&#65024;</span> </td> <tr id=entity-sqsub><td> <code title="">sqsub;</code> </td> <td> U+0228F </td> <td> <span class=glyph title="">&#8847;</span> </td> <tr id=entity-sqsube><td> <code title="">sqsube;</code> </td> <td> U+02291 </td> <td> <span class=glyph title="">&#8849;</span> </td> <tr id=entity-sqsubset><td> <code title="">sqsubset;</code> </td> <td> U+0228F </td> <td> <span class=glyph title="">&#8847;</span> </td> <tr id=entity-sqsubseteq><td> <code title="">sqsubseteq;</code> </td> <td> U+02291 </td> <td> <span class=glyph title="">&#8849;</span> </td> <tr id=entity-sqsup><td> <code title="">sqsup;</code> </td> <td> U+02290 </td> <td> <span class=glyph title="">&#8848;</span> </td> <tr id=entity-sqsupe><td> <code title="">sqsupe;</code> </td> <td> U+02292 </td> <td> <span class=glyph title="">&#8850;</span> </td> <tr id=entity-sqsupset><td> <code title="">sqsupset;</code> </td> <td> U+02290 </td> <td> <span class=glyph title="">&#8848;</span> </td> <tr id=entity-sqsupseteq><td> <code title="">sqsupseteq;</code> </td> <td> U+02292 </td> <td> <span class=glyph title="">&#8850;</span> </td> <tr id=entity-squ><td> <code title="">squ;</code> </td> <td> U+025A1 </td> <td> <span class=glyph title="">&#9633;</span> </td> <tr id=entity-square><td> <code title="">square;</code> </td> <td> U+025A1 </td> <td> <span class=glyph title="">&#9633;</span> </td> <tr id=entity-squarf><td> <code title="">squarf;</code> </td> <td> U+025AA </td> <td> <span class=glyph title="">&#9642;</span> </td> <tr id=entity-squf><td> <code title="">squf;</code> </td> <td> U+025AA </td> <td> <span class=glyph title="">&#9642;</span> </td> <tr id=entity-srarr><td> <code title="">srarr;</code> </td> <td> U+02192 </td> <td> <span class=glyph title="">&rarr;</span> </td> <tr id=entity-sscr><td> <code title="">sscr;</code> </td> <td> U+1D4C8 </td> <td> <span class=glyph title="">&#120008;</span> </td> <tr id=entity-ssetmn><td> <code title="">ssetmn;</code> </td> <td> U+02216 </td> <td> <span class=glyph title="">&#8726;</span> </td> <tr id=entity-ssmile><td> <code title="">ssmile;</code> </td> <td> U+02323 </td> <td> <span class=glyph title="">&#8995;</span> </td> <tr id=entity-sstarf><td> <code title="">sstarf;</code> </td> <td> U+022C6 </td> <td> <span class=glyph title="">&#8902;</span> </td> <tr id=entity-star><td> <code title="">star;</code> </td> <td> U+02606 </td> <td> <span class=glyph title="">&#9734;</span> </td> <tr id=entity-starf><td> <code title="">starf;</code> </td> <td> U+02605 </td> <td> <span class=glyph title="">&#9733;</span> </td> <tr id=entity-straightepsilon><td> <code title="">straightepsilon;</code> </td> <td> U+003F5 </td> <td> <span class=glyph title="">&#1013;</span> </td> <tr id=entity-straightphi><td> <code title="">straightphi;</code> </td> <td> U+003D5 </td> <td> <span class=glyph title="">&#981;</span> </td> <tr id=entity-strns><td> <code title="">strns;</code> </td> <td> U+000AF </td> <td> <span class=glyph title="">&macr;</span> </td> <tr id=entity-sub><td> <code title="">sub;</code> </td> <td> U+02282 </td> <td> <span class=glyph title="">&sub;</span> </td> <tr id=entity-subE><td> <code title="">subE;</code> </td> <td> U+02AC5 </td> <td> <span class=glyph title="">&#10949;</span> </td> <tr id=entity-subdot><td> <code title="">subdot;</code> </td> <td> U+02ABD </td> <td> <span class=glyph title="">&#10941;</span> </td> <tr id=entity-sube><td> <code title="">sube;</code> </td> <td> U+02286 </td> <td> <span class=glyph title="">&sube;</span> </td> <tr id=entity-subedot><td> <code title="">subedot;</code> </td> <td> U+02AC3 </td> <td> <span class=glyph title="">&#10947;</span> </td> <tr id=entity-submult><td> <code title="">submult;</code> </td> <td> U+02AC1 </td> <td> <span class=glyph title="">&#10945;</span> </td> <tr id=entity-subnE><td> <code title="">subnE;</code> </td> <td> U+02ACB </td> <td> <span class=glyph title="">&#10955;</span> </td> <tr id=entity-subne><td> <code title="">subne;</code> </td> <td> U+0228A </td> <td> <span class=glyph title="">&#8842;</span> </td> <tr id=entity-subplus><td> <code title="">subplus;</code> </td> <td> U+02ABF </td> <td> <span class=glyph title="">&#10943;</span> </td> <tr id=entity-subrarr><td> <code title="">subrarr;</code> </td> <td> U+02979 </td> <td> <span class=glyph title="">&#10617;</span> </td> <tr id=entity-subset><td> <code title="">subset;</code> </td> <td> U+02282 </td> <td> <span class=glyph title="">&sub;</span> </td> <tr id=entity-subseteq><td> <code title="">subseteq;</code> </td> <td> U+02286 </td> <td> <span class=glyph title="">&sube;</span> </td> <tr id=entity-subseteqq><td> <code title="">subseteqq;</code> </td> <td> U+02AC5 </td> <td> <span class=glyph title="">&#10949;</span> </td> <tr id=entity-subsetneq><td> <code title="">subsetneq;</code> </td> <td> U+0228A </td> <td> <span class=glyph title="">&#8842;</span> </td> <tr id=entity-subsetneqq><td> <code title="">subsetneqq;</code> </td> <td> U+02ACB </td> <td> <span class=glyph title="">&#10955;</span> </td> <tr id=entity-subsim><td> <code title="">subsim;</code> </td> <td> U+02AC7 </td> <td> <span class=glyph title="">&#10951;</span> </td> <tr id=entity-subsub><td> <code title="">subsub;</code> </td> <td> U+02AD5 </td> <td> <span class=glyph title="">&#10965;</span> </td> <tr id=entity-subsup><td> <code title="">subsup;</code> </td> <td> U+02AD3 </td> <td> <span class=glyph title="">&#10963;</span> </td> <tr id=entity-succ><td> <code title="">succ;</code> </td> <td> U+0227B </td> <td> <span class=glyph title="">&#8827;</span> </td> <tr id=entity-succapprox><td> <code title="">succapprox;</code> </td> <td> U+02AB8 </td> <td> <span class=glyph title="">&#10936;</span> </td> <tr id=entity-succcurlyeq><td> <code title="">succcurlyeq;</code> </td> <td> U+0227D </td> <td> <span class=glyph title="">&#8829;</span> </td> <tr id=entity-succeq><td> <code title="">succeq;</code> </td> <td> U+02AB0 </td> <td> <span class=glyph title="">&#10928;</span> </td> <tr id=entity-succnapprox><td> <code title="">succnapprox;</code> </td> <td> U+02ABA </td> <td> <span class=glyph title="">&#10938;</span> </td> <tr id=entity-succneqq><td> <code title="">succneqq;</code> </td> <td> U+02AB6 </td> <td> <span class=glyph title="">&#10934;</span> </td> <tr id=entity-succnsim><td> <code title="">succnsim;</code> </td> <td> U+022E9 </td> <td> <span class=glyph title="">&#8937;</span> </td> <tr id=entity-succsim><td> <code title="">succsim;</code> </td> <td> U+0227F </td> <td> <span class=glyph title="">&#8831;</span> </td> <tr id=entity-sum><td> <code title="">sum;</code> </td> <td> U+02211 </td> <td> <span class=glyph title="">&sum;</span> </td> <tr id=entity-sung><td> <code title="">sung;</code> </td> <td> U+0266A </td> <td> <span class=glyph title="">&#9834;</span> </td> <tr id=entity-sup><td> <code title="">sup;</code> </td> <td> U+02283 </td> <td> <span class=glyph title="">&sup;</span> </td> <tr id=entity-sup1><td> <code title="">sup1;</code> </td> <td> U+000B9 </td> <td> <span class=glyph title="">&sup1;</span> </td> <tr id=entity-sup2><td> <code title="">sup2;</code> </td> <td> U+000B2 </td> <td> <span class=glyph title="">&sup2;</span> </td> <tr id=entity-sup3><td> <code title="">sup3;</code> </td> <td> U+000B3 </td> <td> <span class=glyph title="">&sup3;</span> </td> <tr id=entity-supE><td> <code title="">supE;</code> </td> <td> U+02AC6 </td> <td> <span class=glyph title="">&#10950;</span> </td> <tr id=entity-supdot><td> <code title="">supdot;</code> </td> <td> U+02ABE </td> <td> <span class=glyph title="">&#10942;</span> </td> <tr id=entity-supdsub><td> <code title="">supdsub;</code> </td> <td> U+02AD8 </td> <td> <span class=glyph title="">&#10968;</span> </td> <tr id=entity-supe><td> <code title="">supe;</code> </td> <td> U+02287 </td> <td> <span class=glyph title="">&supe;</span> </td> <tr id=entity-supedot><td> <code title="">supedot;</code> </td> <td> U+02AC4 </td> <td> <span class=glyph title="">&#10948;</span> </td> <tr id=entity-suphsol><td> <code title="">suphsol;</code> </td> <td> U+027C9 </td> <td> <span class=glyph title="">&#10185;</span> </td> <tr id=entity-suphsub><td> <code title="">suphsub;</code> </td> <td> U+02AD7 </td> <td> <span class=glyph title="">&#10967;</span> </td> <tr id=entity-suplarr><td> <code title="">suplarr;</code> </td> <td> U+0297B </td> <td> <span class=glyph title="">&#10619;</span> </td> <tr id=entity-supmult><td> <code title="">supmult;</code> </td> <td> U+02AC2 </td> <td> <span class=glyph title="">&#10946;</span> </td> <tr id=entity-supnE><td> <code title="">supnE;</code> </td> <td> U+02ACC </td> <td> <span class=glyph title="">&#10956;</span> </td> <tr id=entity-supne><td> <code title="">supne;</code> </td> <td> U+0228B </td> <td> <span class=glyph title="">&#8843;</span> </td> <tr id=entity-supplus><td> <code title="">supplus;</code> </td> <td> U+02AC0 </td> <td> <span class=glyph title="">&#10944;</span> </td> <tr id=entity-supset><td> <code title="">supset;</code> </td> <td> U+02283 </td> <td> <span class=glyph title="">&sup;</span> </td> <tr id=entity-supseteq><td> <code title="">supseteq;</code> </td> <td> U+02287 </td> <td> <span class=glyph title="">&supe;</span> </td> <tr id=entity-supseteqq><td> <code title="">supseteqq;</code> </td> <td> U+02AC6 </td> <td> <span class=glyph title="">&#10950;</span> </td> <tr id=entity-supsetneq><td> <code title="">supsetneq;</code> </td> <td> U+0228B </td> <td> <span class=glyph title="">&#8843;</span> </td> <tr id=entity-supsetneqq><td> <code title="">supsetneqq;</code> </td> <td> U+02ACC </td> <td> <span class=glyph title="">&#10956;</span> </td> <tr id=entity-supsim><td> <code title="">supsim;</code> </td> <td> U+02AC8 </td> <td> <span class=glyph title="">&#10952;</span> </td> <tr id=entity-supsub><td> <code title="">supsub;</code> </td> <td> U+02AD4 </td> <td> <span class=glyph title="">&#10964;</span> </td> <tr id=entity-supsup><td> <code title="">supsup;</code> </td> <td> U+02AD6 </td> <td> <span class=glyph title="">&#10966;</span> </td> <tr id=entity-swArr><td> <code title="">swArr;</code> </td> <td> U+021D9 </td> <td> <span class=glyph title="">&#8665;</span> </td> <tr id=entity-swarhk><td> <code title="">swarhk;</code> </td> <td> U+02926 </td> <td> <span class=glyph title="">&#10534;</span> </td> <tr id=entity-swarr><td> <code title="">swarr;</code> </td> <td> U+02199 </td> <td> <span class=glyph title="">&#8601;</span> </td> <tr id=entity-swarrow><td> <code title="">swarrow;</code> </td> <td> U+02199 </td> <td> <span class=glyph title="">&#8601;</span> </td> <tr id=entity-swnwar><td> <code title="">swnwar;</code> </td> <td> U+0292A </td> <td> <span class=glyph title="">&#10538;</span> </td> <tr id=entity-szlig><td> <code title="">szlig;</code> </td> <td> U+000DF </td> <td> <span class=glyph title="">&szlig;</span> </td> <tr id=entity-target><td> <code title="">target;</code> </td> <td> U+02316 </td> <td> <span class=glyph title="">&#8982;</span> </td> <tr id=entity-tau><td> <code title="">tau;</code> </td> <td> U+003C4 </td> <td> <span class=glyph title="">&tau;</span> </td> <tr id=entity-tbrk><td> <code title="">tbrk;</code> </td> <td> U+023B4 </td> <td> <span class=glyph title="">&#9140;</span> </td> <tr id=entity-tcaron><td> <code title="">tcaron;</code> </td> <td> U+00165 </td> <td> <span class=glyph title="">&#357;</span> </td> <tr id=entity-tcedil><td> <code title="">tcedil;</code> </td> <td> U+00163 </td> <td> <span class=glyph title="">&#355;</span> </td> <tr id=entity-tcy><td> <code title="">tcy;</code> </td> <td> U+00442 </td> <td> <span class=glyph title="">&#1090;</span> </td> <tr id=entity-tdot><td> <code title="">tdot;</code> </td> <td> U+020DB </td> <td> <span class="glyph composition" title="">&#9676;&#8411;</span> </td> <tr id=entity-telrec><td> <code title="">telrec;</code> </td> <td> U+02315 </td> <td> <span class=glyph title="">&#8981;</span> </td> <tr id=entity-tfr><td> <code title="">tfr;</code> </td> <td> U+1D531 </td> <td> <span class=glyph title="">&#120113;</span> </td> <tr id=entity-there4><td> <code title="">there4;</code> </td> <td> U+02234 </td> <td> <span class=glyph title="">&there4;</span> </td> <tr id=entity-therefore><td> <code title="">therefore;</code> </td> <td> U+02234 </td> <td> <span class=glyph title="">&there4;</span> </td> <tr id=entity-theta><td> <code title="">theta;</code> </td> <td> U+003B8 </td> <td> <span class=glyph title="">&theta;</span> </td> <tr id=entity-thetasym><td> <code title="">thetasym;</code> </td> <td> U+003D1 </td> <td> <span class=glyph title="">&thetasym;</span> </td> <tr id=entity-thetav><td> <code title="">thetav;</code> </td> <td> U+003D1 </td> <td> <span class=glyph title="">&thetasym;</span> </td> <tr id=entity-thickapprox><td> <code title="">thickapprox;</code> </td> <td> U+02248 </td> <td> <span class=glyph title="">&asymp;</span> </td> <tr id=entity-thicksim><td> <code title="">thicksim;</code> </td> <td> U+0223C </td> <td> <span class=glyph title="">&sim;</span> </td> <tr id=entity-thinsp><td> <code title="">thinsp;</code> </td> <td> U+02009 </td> <td> <span class=glyph title="">&thinsp;</span> </td> <tr id=entity-thkap><td> <code title="">thkap;</code> </td> <td> U+02248 </td> <td> <span class=glyph title="">&asymp;</span> </td> <tr id=entity-thksim><td> <code title="">thksim;</code> </td> <td> U+0223C </td> <td> <span class=glyph title="">&sim;</span> </td> <tr id=entity-thorn><td> <code title="">thorn;</code> </td> <td> U+000FE </td> <td> <span class=glyph title="">&thorn;</span> </td> <tr id=entity-tilde><td> <code title="">tilde;</code> </td> <td> U+002DC </td> <td> <span class=glyph title="">&tilde;</span> </td> <tr id=entity-times><td> <code title="">times;</code> </td> <td> U+000D7 </td> <td> <span class=glyph title="">&times;</span> </td> <tr id=entity-timesb><td> <code title="">timesb;</code> </td> <td> U+022A0 </td> <td> <span class=glyph title="">&#8864;</span> </td> <tr id=entity-timesbar><td> <code title="">timesbar;</code> </td> <td> U+02A31 </td> <td> <span class=glyph title="">&#10801;</span> </td> <tr id=entity-timesd><td> <code title="">timesd;</code> </td> <td> U+02A30 </td> <td> <span class=glyph title="">&#10800;</span> </td> <tr id=entity-tint><td> <code title="">tint;</code> </td> <td> U+0222D </td> <td> <span class=glyph title="">&#8749;</span> </td> <tr id=entity-toea><td> <code title="">toea;</code> </td> <td> U+02928 </td> <td> <span class=glyph title="">&#10536;</span> </td> <tr id=entity-top><td> <code title="">top;</code> </td> <td> U+022A4 </td> <td> <span class=glyph title="">&#8868;</span> </td> <tr id=entity-topbot><td> <code title="">topbot;</code> </td> <td> U+02336 </td> <td> <span class=glyph title="">&#9014;</span> </td> <tr id=entity-topcir><td> <code title="">topcir;</code> </td> <td> U+02AF1 </td> <td> <span class=glyph title="">&#10993;</span> </td> <tr id=entity-topf><td> <code title="">topf;</code> </td> <td> U+1D565 </td> <td> <span class=glyph title="">&#120165;</span> </td> <tr id=entity-topfork><td> <code title="">topfork;</code> </td> <td> U+02ADA </td> <td> <span class=glyph title="">&#10970;</span> </td> <tr id=entity-tosa><td> <code title="">tosa;</code> </td> <td> U+02929 </td> <td> <span class=glyph title="">&#10537;</span> </td> <tr id=entity-tprime><td> <code title="">tprime;</code> </td> <td> U+02034 </td> <td> <span class=glyph title="">&#8244;</span> </td> <tr id=entity-trade><td> <code title="">trade;</code> </td> <td> U+02122 </td> <td> <span class=glyph title="">&trade;</span> </td> <tr id=entity-triangle><td> <code title="">triangle;</code> </td> <td> U+025B5 </td> <td> <span class=glyph title="">&#9653;</span> </td> <tr id=entity-triangledown><td> <code title="">triangledown;</code> </td> <td> U+025BF </td> <td> <span class=glyph title="">&#9663;</span> </td> <tr id=entity-triangleleft><td> <code title="">triangleleft;</code> </td> <td> U+025C3 </td> <td> <span class=glyph title="">&#9667;</span> </td> <tr id=entity-trianglelefteq><td> <code title="">trianglelefteq;</code> </td> <td> U+022B4 </td> <td> <span class=glyph title="">&#8884;</span> </td> <tr id=entity-triangleq><td> <code title="">triangleq;</code> </td> <td> U+0225C </td> <td> <span class=glyph title="">&#8796;</span> </td> <tr id=entity-triangleright><td> <code title="">triangleright;</code> </td> <td> U+025B9 </td> <td> <span class=glyph title="">&#9657;</span> </td> <tr id=entity-trianglerighteq><td> <code title="">trianglerighteq;</code> </td> <td> U+022B5 </td> <td> <span class=glyph title="">&#8885;</span> </td> <tr id=entity-tridot><td> <code title="">tridot;</code> </td> <td> U+025EC </td> <td> <span class=glyph title="">&#9708;</span> </td> <tr id=entity-trie><td> <code title="">trie;</code> </td> <td> U+0225C </td> <td> <span class=glyph title="">&#8796;</span> </td> <tr id=entity-triminus><td> <code title="">triminus;</code> </td> <td> U+02A3A </td> <td> <span class=glyph title="">&#10810;</span> </td> <tr id=entity-triplus><td> <code title="">triplus;</code> </td> <td> U+02A39 </td> <td> <span class=glyph title="">&#10809;</span> </td> <tr id=entity-trisb><td> <code title="">trisb;</code> </td> <td> U+029CD </td> <td> <span class=glyph title="">&#10701;</span> </td> <tr id=entity-tritime><td> <code title="">tritime;</code> </td> <td> U+02A3B </td> <td> <span class=glyph title="">&#10811;</span> </td> <tr id=entity-trpezium><td> <code title="">trpezium;</code> </td> <td> U+023E2 </td> <td> <span class=glyph title="">&#9186;</span> </td> <tr id=entity-tscr><td> <code title="">tscr;</code> </td> <td> U+1D4C9 </td> <td> <span class=glyph title="">&#120009;</span> </td> <tr id=entity-tscy><td> <code title="">tscy;</code> </td> <td> U+00446 </td> <td> <span class=glyph title="">&#1094;</span> </td> <tr id=entity-tshcy><td> <code title="">tshcy;</code> </td> <td> U+0045B </td> <td> <span class=glyph title="">&#1115;</span> </td> <tr id=entity-tstrok><td> <code title="">tstrok;</code> </td> <td> U+00167 </td> <td> <span class=glyph title="">&#359;</span> </td> <tr id=entity-twixt><td> <code title="">twixt;</code> </td> <td> U+0226C </td> <td> <span class=glyph title="">&#8812;</span> </td> <tr id=entity-twoheadleftarrow><td> <code title="">twoheadleftarrow;</code> </td> <td> U+0219E </td> <td> <span class=glyph title="">&#8606;</span> </td> <tr id=entity-twoheadrightarrow><td> <code title="">twoheadrightarrow;</code> </td> <td> U+021A0 </td> <td> <span class=glyph title="">&#8608;</span> </td> <tr id=entity-uArr><td> <code title="">uArr;</code> </td> <td> U+021D1 </td> <td> <span class=glyph title="">&uArr;</span> </td> <tr id=entity-uHar><td> <code title="">uHar;</code> </td> <td> U+02963 </td> <td> <span class=glyph title="">&#10595;</span> </td> <tr id=entity-uacute><td> <code title="">uacute;</code> </td> <td> U+000FA </td> <td> <span class=glyph title="">&uacute;</span> </td> <tr id=entity-uarr><td> <code title="">uarr;</code> </td> <td> U+02191 </td> <td> <span class=glyph title="">&uarr;</span> </td> <tr id=entity-ubrcy><td> <code title="">ubrcy;</code> </td> <td> U+0045E </td> <td> <span class=glyph title="">&#1118;</span> </td> <tr id=entity-ubreve><td> <code title="">ubreve;</code> </td> <td> U+0016D </td> <td> <span class=glyph title="">&#365;</span> </td> <tr id=entity-ucirc><td> <code title="">ucirc;</code> </td> <td> U+000FB </td> <td> <span class=glyph title="">&ucirc;</span> </td> <tr id=entity-ucy><td> <code title="">ucy;</code> </td> <td> U+00443 </td> <td> <span class=glyph title="">&#1091;</span> </td> <tr id=entity-udarr><td> <code title="">udarr;</code> </td> <td> U+021C5 </td> <td> <span class=glyph title="">&#8645;</span> </td> <tr id=entity-udblac><td> <code title="">udblac;</code> </td> <td> U+00171 </td> <td> <span class=glyph title="">&#369;</span> </td> <tr id=entity-udhar><td> <code title="">udhar;</code> </td> <td> U+0296E </td> <td> <span class=glyph title="">&#10606;</span> </td> <tr id=entity-ufisht><td> <code title="">ufisht;</code> </td> <td> U+0297E </td> <td> <span class=glyph title="">&#10622;</span> </td> <tr id=entity-ufr><td> <code title="">ufr;</code> </td> <td> U+1D532 </td> <td> <span class=glyph title="">&#120114;</span> </td> <tr id=entity-ugrave><td> <code title="">ugrave;</code> </td> <td> U+000F9 </td> <td> <span class=glyph title="">&ugrave;</span> </td> <tr id=entity-uharl><td> <code title="">uharl;</code> </td> <td> U+021BF </td> <td> <span class=glyph title="">&#8639;</span> </td> <tr id=entity-uharr><td> <code title="">uharr;</code> </td> <td> U+021BE </td> <td> <span class=glyph title="">&#8638;</span> </td> <tr id=entity-uhblk><td> <code title="">uhblk;</code> </td> <td> U+02580 </td> <td> <span class=glyph title="">&#9600;</span> </td> <tr id=entity-ulcorn><td> <code title="">ulcorn;</code> </td> <td> U+0231C </td> <td> <span class=glyph title="">&#8988;</span> </td> <tr id=entity-ulcorner><td> <code title="">ulcorner;</code> </td> <td> U+0231C </td> <td> <span class=glyph title="">&#8988;</span> </td> <tr id=entity-ulcrop><td> <code title="">ulcrop;</code> </td> <td> U+0230F </td> <td> <span class=glyph title="">&#8975;</span> </td> <tr id=entity-ultri><td> <code title="">ultri;</code> </td> <td> U+025F8 </td> <td> <span class=glyph title="">&#9720;</span> </td> <tr id=entity-umacr><td> <code title="">umacr;</code> </td> <td> U+0016B </td> <td> <span class=glyph title="">&#363;</span> </td> <tr id=entity-uml><td> <code title="">uml;</code> </td> <td> U+000A8 </td> <td> <span class=glyph title="">&uml;</span> </td> <tr id=entity-uogon><td> <code title="">uogon;</code> </td> <td> U+00173 </td> <td> <span class=glyph title="">&#371;</span> </td> <tr id=entity-uopf><td> <code title="">uopf;</code> </td> <td> U+1D566 </td> <td> <span class=glyph title="">&#120166;</span> </td> <tr id=entity-uparrow><td> <code title="">uparrow;</code> </td> <td> U+02191 </td> <td> <span class=glyph title="">&uarr;</span> </td> <tr id=entity-updownarrow><td> <code title="">updownarrow;</code> </td> <td> U+02195 </td> <td> <span class=glyph title="">&#8597;</span> </td> <tr id=entity-upharpoonleft><td> <code title="">upharpoonleft;</code> </td> <td> U+021BF </td> <td> <span class=glyph title="">&#8639;</span> </td> <tr id=entity-upharpoonright><td> <code title="">upharpoonright;</code> </td> <td> U+021BE </td> <td> <span class=glyph title="">&#8638;</span> </td> <tr id=entity-uplus><td> <code title="">uplus;</code> </td> <td> U+0228E </td> <td> <span class=glyph title="">&#8846;</span> </td> <tr id=entity-upsi><td> <code title="">upsi;</code> </td> <td> U+003C5 </td> <td> <span class=glyph title="">&upsilon;</span> </td> <tr id=entity-upsih><td> <code title="">upsih;</code> </td> <td> U+003D2 </td> <td> <span class=glyph title="">&upsih;</span> </td> <tr id=entity-upsilon><td> <code title="">upsilon;</code> </td> <td> U+003C5 </td> <td> <span class=glyph title="">&upsilon;</span> </td> <tr id=entity-upuparrows><td> <code title="">upuparrows;</code> </td> <td> U+021C8 </td> <td> <span class=glyph title="">&#8648;</span> </td> <tr id=entity-urcorn><td> <code title="">urcorn;</code> </td> <td> U+0231D </td> <td> <span class=glyph title="">&#8989;</span> </td> <tr id=entity-urcorner><td> <code title="">urcorner;</code> </td> <td> U+0231D </td> <td> <span class=glyph title="">&#8989;</span> </td> <tr id=entity-urcrop><td> <code title="">urcrop;</code> </td> <td> U+0230E </td> <td> <span class=glyph title="">&#8974;</span> </td> <tr id=entity-uring><td> <code title="">uring;</code> </td> <td> U+0016F </td> <td> <span class=glyph title="">&#367;</span> </td> <tr id=entity-urtri><td> <code title="">urtri;</code> </td> <td> U+025F9 </td> <td> <span class=glyph title="">&#9721;</span> </td> <tr id=entity-uscr><td> <code title="">uscr;</code> </td> <td> U+1D4CA </td> <td> <span class=glyph title="">&#120010;</span> </td> <tr id=entity-utdot><td> <code title="">utdot;</code> </td> <td> U+022F0 </td> <td> <span class=glyph title="">&#8944;</span> </td> <tr id=entity-utilde><td> <code title="">utilde;</code> </td> <td> U+00169 </td> <td> <span class=glyph title="">&#361;</span> </td> <tr id=entity-utri><td> <code title="">utri;</code> </td> <td> U+025B5 </td> <td> <span class=glyph title="">&#9653;</span> </td> <tr id=entity-utrif><td> <code title="">utrif;</code> </td> <td> U+025B4 </td> <td> <span class=glyph title="">&#9652;</span> </td> <tr id=entity-uuarr><td> <code title="">uuarr;</code> </td> <td> U+021C8 </td> <td> <span class=glyph title="">&#8648;</span> </td> <tr id=entity-uuml><td> <code title="">uuml;</code> </td> <td> U+000FC </td> <td> <span class=glyph title="">&uuml;</span> </td> <tr id=entity-uwangle><td> <code title="">uwangle;</code> </td> <td> U+029A7 </td> <td> <span class=glyph title="">&#10663;</span> </td> <tr id=entity-vArr><td> <code title="">vArr;</code> </td> <td> U+021D5 </td> <td> <span class=glyph title="">&#8661;</span> </td> <tr id=entity-vBar><td> <code title="">vBar;</code> </td> <td> U+02AE8 </td> <td> <span class=glyph title="">&#10984;</span> </td> <tr id=entity-vBarv><td> <code title="">vBarv;</code> </td> <td> U+02AE9 </td> <td> <span class=glyph title="">&#10985;</span> </td> <tr id=entity-vDash><td> <code title="">vDash;</code> </td> <td> U+022A8 </td> <td> <span class=glyph title="">&#8872;</span> </td> <tr id=entity-vangrt><td> <code title="">vangrt;</code> </td> <td> U+0299C </td> <td> <span class=glyph title="">&#10652;</span> </td> <tr id=entity-varepsilon><td> <code title="">varepsilon;</code> </td> <td> U+003F5 </td> <td> <span class=glyph title="">&#1013;</span> </td> <tr id=entity-varkappa><td> <code title="">varkappa;</code> </td> <td> U+003F0 </td> <td> <span class=glyph title="">&#1008;</span> </td> <tr id=entity-varnothing><td> <code title="">varnothing;</code> </td> <td> U+02205 </td> <td> <span class=glyph title="">&empty;</span> </td> <tr id=entity-varphi><td> <code title="">varphi;</code> </td> <td> U+003D5 </td> <td> <span class=glyph title="">&#981;</span> </td> <tr id=entity-varpi><td> <code title="">varpi;</code> </td> <td> U+003D6 </td> <td> <span class=glyph title="">&piv;</span> </td> <tr id=entity-varpropto><td> <code title="">varpropto;</code> </td> <td> U+0221D </td> <td> <span class=glyph title="">&prop;</span> </td> <tr id=entity-varr><td> <code title="">varr;</code> </td> <td> U+02195 </td> <td> <span class=glyph title="">&#8597;</span> </td> <tr id=entity-varrho><td> <code title="">varrho;</code> </td> <td> U+003F1 </td> <td> <span class=glyph title="">&#1009;</span> </td> <tr id=entity-varsigma><td> <code title="">varsigma;</code> </td> <td> U+003C2 </td> <td> <span class=glyph title="">&sigmaf;</span> </td> <tr id=entity-varsubsetneq><td> <code title="">varsubsetneq;</code> </td> <td> U+0228A U+0FE00 </td> <td> <span class="glyph compound" title="">&#8842;&#65024;</span> </td> <tr id=entity-varsubsetneqq><td> <code title="">varsubsetneqq;</code> </td> <td> U+02ACB U+0FE00 </td> <td> <span class="glyph compound" title="">&#10955;&#65024;</span> </td> <tr id=entity-varsupsetneq><td> <code title="">varsupsetneq;</code> </td> <td> U+0228B U+0FE00 </td> <td> <span class="glyph compound" title="">&#8843;&#65024;</span> </td> <tr id=entity-varsupsetneqq><td> <code title="">varsupsetneqq;</code> </td> <td> U+02ACC U+0FE00 </td> <td> <span class="glyph compound" title="">&#10956;&#65024;</span> </td> <tr id=entity-vartheta><td> <code title="">vartheta;</code> </td> <td> U+003D1 </td> <td> <span class=glyph title="">&thetasym;</span> </td> <tr id=entity-vartriangleleft><td> <code title="">vartriangleleft;</code> </td> <td> U+022B2 </td> <td> <span class=glyph title="">&#8882;</span> </td> <tr id=entity-vartriangleright><td> <code title="">vartriangleright;</code> </td> <td> U+022B3 </td> <td> <span class=glyph title="">&#8883;</span> </td> <tr id=entity-vcy><td> <code title="">vcy;</code> </td> <td> U+00432 </td> <td> <span class=glyph title="">&#1074;</span> </td> <tr id=entity-vdash><td> <code title="">vdash;</code> </td> <td> U+022A2 </td> <td> <span class=glyph title="">&#8866;</span> </td> <tr id=entity-vee><td> <code title="">vee;</code> </td> <td> U+02228 </td> <td> <span class=glyph title="">&or;</span> </td> <tr id=entity-veebar><td> <code title="">veebar;</code> </td> <td> U+022BB </td> <td> <span class=glyph title="">&#8891;</span> </td> <tr id=entity-veeeq><td> <code title="">veeeq;</code> </td> <td> U+0225A </td> <td> <span class=glyph title="">&#8794;</span> </td> <tr id=entity-vellip><td> <code title="">vellip;</code> </td> <td> U+022EE </td> <td> <span class=glyph title="">&#8942;</span> </td> <tr id=entity-verbar><td> <code title="">verbar;</code> </td> <td> U+0007C </td> <td> <span class=glyph title="">|</span> </td> <tr id=entity-vert><td> <code title="">vert;</code> </td> <td> U+0007C </td> <td> <span class=glyph title="">|</span> </td> <tr id=entity-vfr><td> <code title="">vfr;</code> </td> <td> U+1D533 </td> <td> <span class=glyph title="">&#120115;</span> </td> <tr id=entity-vltri><td> <code title="">vltri;</code> </td> <td> U+022B2 </td> <td> <span class=glyph title="">&#8882;</span> </td> <tr id=entity-vnsub><td> <code title="">vnsub;</code> </td> <td> U+02282 U+020D2 </td> <td> <span class="glyph compound" title="">&sub;&#8402;</span> </td> <tr id=entity-vnsup><td> <code title="">vnsup;</code> </td> <td> U+02283 U+020D2 </td> <td> <span class="glyph compound" title="">&sup;&#8402;</span> </td> <tr id=entity-vopf><td> <code title="">vopf;</code> </td> <td> U+1D567 </td> <td> <span class=glyph title="">&#120167;</span> </td> <tr id=entity-vprop><td> <code title="">vprop;</code> </td> <td> U+0221D </td> <td> <span class=glyph title="">&prop;</span> </td> <tr id=entity-vrtri><td> <code title="">vrtri;</code> </td> <td> U+022B3 </td> <td> <span class=glyph title="">&#8883;</span> </td> <tr id=entity-vscr><td> <code title="">vscr;</code> </td> <td> U+1D4CB </td> <td> <span class=glyph title="">&#120011;</span> </td> <tr id=entity-vsubnE><td> <code title="">vsubnE;</code> </td> <td> U+02ACB U+0FE00 </td> <td> <span class="glyph compound" title="">&#10955;&#65024;</span> </td> <tr id=entity-vsubne><td> <code title="">vsubne;</code> </td> <td> U+0228A U+0FE00 </td> <td> <span class="glyph compound" title="">&#8842;&#65024;</span> </td> <tr id=entity-vsupnE><td> <code title="">vsupnE;</code> </td> <td> U+02ACC U+0FE00 </td> <td> <span class="glyph compound" title="">&#10956;&#65024;</span> </td> <tr id=entity-vsupne><td> <code title="">vsupne;</code> </td> <td> U+0228B U+0FE00 </td> <td> <span class="glyph compound" title="">&#8843;&#65024;</span> </td> <tr id=entity-vzigzag><td> <code title="">vzigzag;</code> </td> <td> U+0299A </td> <td> <span class=glyph title="">&#10650;</span> </td> <tr id=entity-wcirc><td> <code title="">wcirc;</code> </td> <td> U+00175 </td> <td> <span class=glyph title="">&#373;</span> </td> <tr id=entity-wedbar><td> <code title="">wedbar;</code> </td> <td> U+02A5F </td> <td> <span class=glyph title="">&#10847;</span> </td> <tr id=entity-wedge><td> <code title="">wedge;</code> </td> <td> U+02227 </td> <td> <span class=glyph title="">&and;</span> </td> <tr id=entity-wedgeq><td> <code title="">wedgeq;</code> </td> <td> U+02259 </td> <td> <span class=glyph title="">&#8793;</span> </td> <tr id=entity-weierp><td> <code title="">weierp;</code> </td> <td> U+02118 </td> <td> <span class=glyph title="">&weierp;</span> </td> <tr id=entity-wfr><td> <code title="">wfr;</code> </td> <td> U+1D534 </td> <td> <span class=glyph title="">&#120116;</span> </td> <tr id=entity-wopf><td> <code title="">wopf;</code> </td> <td> U+1D568 </td> <td> <span class=glyph title="">&#120168;</span> </td> <tr id=entity-wp><td> <code title="">wp;</code> </td> <td> U+02118 </td> <td> <span class=glyph title="">&weierp;</span> </td> <tr id=entity-wr><td> <code title="">wr;</code> </td> <td> U+02240 </td> <td> <span class=glyph title="">&#8768;</span> </td> <tr id=entity-wreath><td> <code title="">wreath;</code> </td> <td> U+02240 </td> <td> <span class=glyph title="">&#8768;</span> </td> <tr id=entity-wscr><td> <code title="">wscr;</code> </td> <td> U+1D4CC </td> <td> <span class=glyph title="">&#120012;</span> </td> <tr id=entity-xcap><td> <code title="">xcap;</code> </td> <td> U+022C2 </td> <td> <span class=glyph title="">&#8898;</span> </td> <tr id=entity-xcirc><td> <code title="">xcirc;</code> </td> <td> U+025EF </td> <td> <span class=glyph title="">&#9711;</span> </td> <tr id=entity-xcup><td> <code title="">xcup;</code> </td> <td> U+022C3 </td> <td> <span class=glyph title="">&#8899;</span> </td> <tr id=entity-xdtri><td> <code title="">xdtri;</code> </td> <td> U+025BD </td> <td> <span class=glyph title="">&#9661;</span> </td> <tr id=entity-xfr><td> <code title="">xfr;</code> </td> <td> U+1D535 </td> <td> <span class=glyph title="">&#120117;</span> </td> <tr id=entity-xhArr><td> <code title="">xhArr;</code> </td> <td> U+027FA </td> <td> <span class=glyph title="">&#10234;</span> </td> <tr id=entity-xharr><td> <code title="">xharr;</code> </td> <td> U+027F7 </td> <td> <span class=glyph title="">&#10231;</span> </td> <tr id=entity-xi><td> <code title="">xi;</code> </td> <td> U+003BE </td> <td> <span class=glyph title="">&xi;</span> </td> <tr id=entity-xlArr><td> <code title="">xlArr;</code> </td> <td> U+027F8 </td> <td> <span class=glyph title="">&#10232;</span> </td> <tr id=entity-xlarr><td> <code title="">xlarr;</code> </td> <td> U+027F5 </td> <td> <span class=glyph title="">&#10229;</span> </td> <tr id=entity-xmap><td> <code title="">xmap;</code> </td> <td> U+027FC </td> <td> <span class=glyph title="">&#10236;</span> </td> <tr id=entity-xnis><td> <code title="">xnis;</code> </td> <td> U+022FB </td> <td> <span class=glyph title="">&#8955;</span> </td> <tr id=entity-xodot><td> <code title="">xodot;</code> </td> <td> U+02A00 </td> <td> <span class=glyph title="">&#10752;</span> </td> <tr id=entity-xopf><td> <code title="">xopf;</code> </td> <td> U+1D569 </td> <td> <span class=glyph title="">&#120169;</span> </td> <tr id=entity-xoplus><td> <code title="">xoplus;</code> </td> <td> U+02A01 </td> <td> <span class=glyph title="">&#10753;</span> </td> <tr id=entity-xotime><td> <code title="">xotime;</code> </td> <td> U+02A02 </td> <td> <span class=glyph title="">&#10754;</span> </td> <tr id=entity-xrArr><td> <code title="">xrArr;</code> </td> <td> U+027F9 </td> <td> <span class=glyph title="">&#10233;</span> </td> <tr id=entity-xrarr><td> <code title="">xrarr;</code> </td> <td> U+027F6 </td> <td> <span class=glyph title="">&#10230;</span> </td> <tr id=entity-xscr><td> <code title="">xscr;</code> </td> <td> U+1D4CD </td> <td> <span class=glyph title="">&#120013;</span> </td> <tr id=entity-xsqcup><td> <code title="">xsqcup;</code> </td> <td> U+02A06 </td> <td> <span class=glyph title="">&#10758;</span> </td> <tr id=entity-xuplus><td> <code title="">xuplus;</code> </td> <td> U+02A04 </td> <td> <span class=glyph title="">&#10756;</span> </td> <tr id=entity-xutri><td> <code title="">xutri;</code> </td> <td> U+025B3 </td> <td> <span class=glyph title="">&#9651;</span> </td> <tr id=entity-xvee><td> <code title="">xvee;</code> </td> <td> U+022C1 </td> <td> <span class=glyph title="">&#8897;</span> </td> <tr id=entity-xwedge><td> <code title="">xwedge;</code> </td> <td> U+022C0 </td> <td> <span class=glyph title="">&#8896;</span> </td> <tr id=entity-yacute><td> <code title="">yacute;</code> </td> <td> U+000FD </td> <td> <span class=glyph title="">&yacute;</span> </td> <tr id=entity-yacy><td> <code title="">yacy;</code> </td> <td> U+0044F </td> <td> <span class=glyph title="">&#1103;</span> </td> <tr id=entity-ycirc><td> <code title="">ycirc;</code> </td> <td> U+00177 </td> <td> <span class=glyph title="">&#375;</span> </td> <tr id=entity-ycy><td> <code title="">ycy;</code> </td> <td> U+0044B </td> <td> <span class=glyph title="">&#1099;</span> </td> <tr id=entity-yen><td> <code title="">yen;</code> </td> <td> U+000A5 </td> <td> <span class=glyph title="">&yen;</span> </td> <tr id=entity-yfr><td> <code title="">yfr;</code> </td> <td> U+1D536 </td> <td> <span class=glyph title="">&#120118;</span> </td> <tr id=entity-yicy><td> <code title="">yicy;</code> </td> <td> U+00457 </td> <td> <span class=glyph title="">&#1111;</span> </td> <tr id=entity-yopf><td> <code title="">yopf;</code> </td> <td> U+1D56A </td> <td> <span class=glyph title="">&#120170;</span> </td> <tr id=entity-yscr><td> <code title="">yscr;</code> </td> <td> U+1D4CE </td> <td> <span class=glyph title="">&#120014;</span> </td> <tr id=entity-yucy><td> <code title="">yucy;</code> </td> <td> U+0044E </td> <td> <span class=glyph title="">&#1102;</span> </td> <tr id=entity-yuml><td> <code title="">yuml;</code> </td> <td> U+000FF </td> <td> <span class=glyph title="">&yuml;</span> </td> <tr id=entity-zacute><td> <code title="">zacute;</code> </td> <td> U+0017A </td> <td> <span class=glyph title="">&#378;</span> </td> <tr id=entity-zcaron><td> <code title="">zcaron;</code> </td> <td> U+0017E </td> <td> <span class=glyph title="">&#382;</span> </td> <tr id=entity-zcy><td> <code title="">zcy;</code> </td> <td> U+00437 </td> <td> <span class=glyph title="">&#1079;</span> </td> <tr id=entity-zdot><td> <code title="">zdot;</code> </td> <td> U+0017C </td> <td> <span class=glyph title="">&#380;</span> </td> <tr id=entity-zeetrf><td> <code title="">zeetrf;</code> </td> <td> U+02128 </td> <td> <span class=glyph title="">&#8488;</span> </td> <tr id=entity-zeta><td> <code title="">zeta;</code> </td> <td> U+003B6 </td> <td> <span class=glyph title="">&zeta;</span> </td> <tr id=entity-zfr><td> <code title="">zfr;</code> </td> <td> U+1D537 </td> <td> <span class=glyph title="">&#120119;</span> </td> <tr id=entity-zhcy><td> <code title="">zhcy;</code> </td> <td> U+00436 </td> <td> <span class=glyph title="">&#1078;</span> </td> <tr id=entity-zigrarr><td> <code title="">zigrarr;</code> </td> <td> U+021DD </td> <td> <span class=glyph title="">&#8669;</span> </td> <tr id=entity-zopf><td> <code title="">zopf;</code> </td> <td> U+1D56B </td> <td> <span class=glyph title="">&#120171;</span> </td> <tr id=entity-zscr><td> <code title="">zscr;</code> </td> <td> U+1D4CF </td> <td> <span class=glyph title="">&#120015;</span> </td> <tr id=entity-zwj><td> <code title="">zwj;</code> </td> <td> U+0200D </td> <td> <span class=glyph title="">&zwj;</span> </td> <tr id=entity-zwnj><td> <code title="">zwnj;</code> </td> <td> U+0200C </td> <td> <span class=glyph title="">&zwnj;</span> </td> <tr class=impl><td> <code title="">AElig</code> </td> <td> U+000C6 </td> <td> <span title="">&AElig;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">AMP</code> </td> <td> U+00026 </td> <td> <span title="">&amp;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Aacute</code> </td> <td> U+000C1 </td> <td> <span title="">&Aacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Acirc</code> </td> <td> U+000C2 </td> <td> <span title="">&Acirc;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Agrave</code> </td> <td> U+000C0 </td> <td> <span title="">&Agrave;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Aring</code> </td> <td> U+000C5 </td> <td> <span title="">&Aring;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Atilde</code> </td> <td> U+000C3 </td> <td> <span title="">&Atilde;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Auml</code> </td> <td> U+000C4 </td> <td> <span title="">&Auml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">COPY</code> </td> <td> U+000A9 </td> <td> <span title="">&copy;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Ccedil</code> </td> <td> U+000C7 </td> <td> <span title="">&Ccedil;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ETH</code> </td> <td> U+000D0 </td> <td> <span title="">&ETH;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Eacute</code> </td> <td> U+000C9 </td> <td> <span title="">&Eacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Ecirc</code> </td> <td> U+000CA </td> <td> <span title="">&Ecirc;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Egrave</code> </td> <td> U+000C8 </td> <td> <span title="">&Egrave;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Euml</code> </td> <td> U+000CB </td> <td> <span title="">&Euml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">GT</code> </td> <td> U+0003E </td> <td> <span title="">&gt;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Iacute</code> </td> <td> U+000CD </td> <td> <span title="">&Iacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Icirc</code> </td> <td> U+000CE </td> <td> <span title="">&Icirc;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Igrave</code> </td> <td> U+000CC </td> <td> <span title="">&Igrave;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Iuml</code> </td> <td> U+000CF </td> <td> <span title="">&Iuml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">LT</code> </td> <td> U+0003C </td> <td> <span title="">&lt;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Ntilde</code> </td> <td> U+000D1 </td> <td> <span title="">&Ntilde;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Oacute</code> </td> <td> U+000D3 </td> <td> <span title="">&Oacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Ocirc</code> </td> <td> U+000D4 </td> <td> <span title="">&Ocirc;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Ograve</code> </td> <td> U+000D2 </td> <td> <span title="">&Ograve;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Oslash</code> </td> <td> U+000D8 </td> <td> <span title="">&Oslash;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Otilde</code> </td> <td> U+000D5 </td> <td> <span title="">&Otilde;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Ouml</code> </td> <td> U+000D6 </td> <td> <span title="">&Ouml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">QUOT</code> </td> <td> U+00022 </td> <td> <span title="">"</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">REG</code> </td> <td> U+000AE </td> <td> <span title="">&reg;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">THORN</code> </td> <td> U+000DE </td> <td> <span title="">&THORN;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Uacute</code> </td> <td> U+000DA </td> <td> <span title="">&Uacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Ucirc</code> </td> <td> U+000DB </td> <td> <span title="">&Ucirc;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Ugrave</code> </td> <td> U+000D9 </td> <td> <span title="">&Ugrave;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Uuml</code> </td> <td> U+000DC </td> <td> <span title="">&Uuml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">Yacute</code> </td> <td> U+000DD </td> <td> <span title="">&Yacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">aacute</code> </td> <td> U+000E1 </td> <td> <span title="">&aacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">acirc</code> </td> <td> U+000E2 </td> <td> <span title="">&acirc;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">acute</code> </td> <td> U+000B4 </td> <td> <span title="">&acute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">aelig</code> </td> <td> U+000E6 </td> <td> <span title="">&aelig;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">agrave</code> </td> <td> U+000E0 </td> <td> <span title="">&agrave;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">amp</code> </td> <td> U+00026 </td> <td> <span title="">&amp;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">aring</code> </td> <td> U+000E5 </td> <td> <span title="">&aring;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">atilde</code> </td> <td> U+000E3 </td> <td> <span title="">&atilde;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">auml</code> </td> <td> U+000E4 </td> <td> <span title="">&auml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">brvbar</code> </td> <td> U+000A6 </td> <td> <span title="">&brvbar;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ccedil</code> </td> <td> U+000E7 </td> <td> <span title="">&ccedil;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">cedil</code> </td> <td> U+000B8 </td> <td> <span title="">&cedil;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">cent</code> </td> <td> U+000A2 </td> <td> <span title="">&cent;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">copy</code> </td> <td> U+000A9 </td> <td> <span title="">&copy;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">curren</code> </td> <td> U+000A4 </td> <td> <span title="">&curren;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">deg</code> </td> <td> U+000B0 </td> <td> <span title="">&deg;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">divide</code> </td> <td> U+000F7 </td> <td> <span title="">&divide;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">eacute</code> </td> <td> U+000E9 </td> <td> <span title="">&eacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ecirc</code> </td> <td> U+000EA </td> <td> <span title="">&ecirc;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">egrave</code> </td> <td> U+000E8 </td> <td> <span title="">&egrave;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">eth</code> </td> <td> U+000F0 </td> <td> <span title="">&eth;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">euml</code> </td> <td> U+000EB </td> <td> <span title="">&euml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">frac12</code> </td> <td> U+000BD </td> <td> <span title="">&frac12;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">frac14</code> </td> <td> U+000BC </td> <td> <span title="">&frac14;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">frac34</code> </td> <td> U+000BE </td> <td> <span title="">&frac34;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">gt</code> </td> <td> U+0003E </td> <td> <span title="">&gt;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">iacute</code> </td> <td> U+000ED </td> <td> <span title="">&iacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">icirc</code> </td> <td> U+000EE </td> <td> <span title="">&icirc;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">iexcl</code> </td> <td> U+000A1 </td> <td> <span title="">&iexcl;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">igrave</code> </td> <td> U+000EC </td> <td> <span title="">&igrave;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">iquest</code> </td> <td> U+000BF </td> <td> <span title="">&iquest;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">iuml</code> </td> <td> U+000EF </td> <td> <span title="">&iuml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">laquo</code> </td> <td> U+000AB </td> <td> <span title="">&laquo;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">lt</code> </td> <td> U+0003C </td> <td> <span title="">&lt;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">macr</code> </td> <td> U+000AF </td> <td> <span title="">&macr;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">micro</code> </td> <td> U+000B5 </td> <td> <span title="">&micro;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">middot</code> </td> <td> U+000B7 </td> <td> <span title="">&middot;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">nbsp</code> </td> <td> U+000A0 </td> <td> <span title="">&nbsp;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">not</code> </td> <td> U+000AC </td> <td> <span title="">&not;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ntilde</code> </td> <td> U+000F1 </td> <td> <span title="">&ntilde;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">oacute</code> </td> <td> U+000F3 </td> <td> <span title="">&oacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ocirc</code> </td> <td> U+000F4 </td> <td> <span title="">&ocirc;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ograve</code> </td> <td> U+000F2 </td> <td> <span title="">&ograve;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ordf</code> </td> <td> U+000AA </td> <td> <span title="">&ordf;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ordm</code> </td> <td> U+000BA </td> <td> <span title="">&ordm;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">oslash</code> </td> <td> U+000F8 </td> <td> <span title="">&oslash;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">otilde</code> </td> <td> U+000F5 </td> <td> <span title="">&otilde;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ouml</code> </td> <td> U+000F6 </td> <td> <span title="">&ouml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">para</code> </td> <td> U+000B6 </td> <td> <span title="">&para;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">plusmn</code> </td> <td> U+000B1 </td> <td> <span title="">&plusmn;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">pound</code> </td> <td> U+000A3 </td> <td> <span title="">&pound;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">quot</code> </td> <td> U+00022 </td> <td> <span title="">"</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">raquo</code> </td> <td> U+000BB </td> <td> <span title="">&raquo;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">reg</code> </td> <td> U+000AE </td> <td> <span title="">&reg;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">sect</code> </td> <td> U+000A7 </td> <td> <span title="">&sect;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">shy</code> </td> <td> U+000AD </td> <td> <span title="">&shy;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">sup1</code> </td> <td> U+000B9 </td> <td> <span title="">&sup1;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">sup2</code> </td> <td> U+000B2 </td> <td> <span title="">&sup2;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">sup3</code> </td> <td> U+000B3 </td> <td> <span title="">&sup3;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">szlig</code> </td> <td> U+000DF </td> <td> <span title="">&szlig;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">thorn</code> </td> <td> U+000FE </td> <td> <span title="">&thorn;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">times</code> </td> <td> U+000D7 </td> <td> <span title="">&times;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">uacute</code> </td> <td> U+000FA </td> <td> <span title="">&uacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ucirc</code> </td> <td> U+000FB </td> <td> <span title="">&ucirc;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">ugrave</code> </td> <td> U+000F9 </td> <td> <span title="">&ugrave;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">uml</code> </td> <td> U+000A8 </td> <td> <span title="">&uml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">uuml</code> </td> <td> U+000FC </td> <td> <span title="">&uuml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">yacute</code> </td> <td> U+000FD </td> <td> <span title="">&yacute;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">yen</code> </td> <td> U+000A5 </td> <td> <span title="">&yen;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --><tr class=impl><td> <code title="">yuml</code> </td> <td> U+000FF </td> <td> <span title="">&yuml;</span> </td> </tr><!-- (invalid entity with missing semicolon for legacy support only) --></table><!--
+ If we want to add character references, Almorca suggests:
+ > I would add &sub1; (character U+2081), &sub2;
+ > (character U+2082) and &sub3; (character U+2083). They
+ > would are the equivalent to &sup1;, &sup2;, and &sup3;.
+ See also: http://www.w3.org/2003/entities/
+ --></div>
+
+ <p><i>The glyphs displayed above are non-normative. Refer to the
+ Unicode specifications for formal definitions of the characters
+ listed above.</i></p>
+
+
+
+ <h2 id=the-xhtml-syntax><span class=secno>14 </span><dfn id=xhtml>The XHTML syntax</dfn></h2>
+
+ <p class=note>This section only describes the rules for XML
+ resources. Rules for <code><a href=#text/html>text/html</a></code> resources are discussed
+ in the section above entitled "<a href=#syntax>The HTML syntax</a>".</p>
+
+
+ <div class=impl>
+
+ <h3 id=writing-xhtml-documents><span class=secno>14.1 </span>Writing XHTML documents</h3>
+
+ </div>
+
+ <p>The syntax for using HTML with XML, whether in XHTML documents or
+ embedded in other XML documents, is defined in the XML and
+ Namespaces in XML specifications. <a href=#refsXML>[XML]</a> <a href=#refsXMLNS>[XMLNS]</a></p>
+
+ <p>This specification does not define any syntax-level requirements
+ beyond those defined for XML proper.</p>
+
+ <p>XML documents may contain a <code>DOCTYPE</code> if desired, but
+ this is not required to conform to this specification. This
+ specification does not define a public or system identifier, nor
+ provide a format DTD.</p>
+
+ <p class=note>According to the XML specification, XML processors
+ are not guaranteed to process the external DTD subset referenced in
+ the DOCTYPE. This means, for example, that using entity references
+ for characters in XHTML documents is unsafe if they are defined in
+ an external file (except for <code title="">&amp;lt;</code>, <code title="">&amp;gt;</code>, <code title="">&amp;amp;</code>, <code title="">&amp;quot;</code> and <code title="">&amp;apos;</code>).</p>
+
+
+ <div class=impl>
+
+ <h3 id=parsing-xhtml-documents><span class=secno>14.2 </span>Parsing XHTML documents</h3>
+
+ <p>This section describes the relationship between XML and the DOM,
+ with a particular emphasis on how this interacts with HTML.</p>
+
+ <p>An <dfn id=xml-parser>XML parser</dfn>, for the purposes of this specification,
+ is a construct that follows the rules given in the XML specification
+ to map a string of bytes or characters into a <code><a href=#document>Document</a></code>
+ object.</p>
+
+ <p>An <a href=#xml-parser>XML parser</a> is either associated with a
+ <code><a href=#document>Document</a></code> object when it is created, or creates one
+ implicitly.</p>
+
+ <p>This <code><a href=#document>Document</a></code> must then be populated with DOM nodes
+ that represent the tree structure of the input passed to the parser,
+ as defined by the XML specification, the Namespaces in XML
+ specification, and the DOM Core specification. DOM mutation events
+ must not fire for the operations that the <a href=#xml-parser>XML parser</a>
+ performs on the <code><a href=#document>Document</a></code>'s tree, but the user agent
+ must act as if elements and attributes were individually appended
+ and set respectively so as to trigger rules in this specification
+ regarding what happens when an element is inserted into a document
+ or has its attributes set. <a href=#refsXML>[XML]</a> <a href=#refsXMLNS>[XMLNS]</a> <a href=#refsDOMCORE>[DOMCORE]</a>
+ <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
+
+ <p>Between the time an element's start tag is parsed and the time
+ either the element's end tag is parsed or the parser detects a
+ well-formedness error, the user agent must act as if the element was
+ in a <a href=#stack-of-open-elements>stack of open elements</a>.</p>
+
+ <p class=note>This is used by the <code><a href=#the-object-element>object</a></code> element to
+ avoid instantiating plugins before the <code><a href=#the-param-element>param</a></code> element
+ children have been parsed.</p>
+
+ <p>This specification provides the following additional information
+ that user agents should use when retrieving an external entity: the
+ public identifiers given in the following list all correspond to <a href=data:application/xml-dtd;base64,PCFFTlRJVFkgVGFiICImI3g5OyI%2BPCFFTlRJVFkgTmV3TGluZSAiJiN4QTsiPjwhRU5USVRZIGV4Y2wgIiYjeDIxOyI%2BPCFFTlRJVFkgcXVvdCAiJiN4MjI7Ij48IUVOVElUWSBRVU9UICImI3gyMjsiPjwhRU5USVRZIG51bSAiJiN4MjM7Ij48IUVOVElUWSBkb2xsYXIgIiYjeDI0OyI%2BPCFFTlRJVFkgcGVyY250ICImI3gyNTsiPjwhRU5USVRZIGFtcCAiJiN4MjY7Ij48IUVOVElUWSBBTVAgIiYjeDI2OyI%2BPCFFTlRJVFkgYXBvcyAiJiN4Mjc7Ij48IUVOVElUWSBscGFyICImI3gyODsiPjwhRU5USVRZIHJwYXIgIiYjeDI5OyI%2BPCFFTlRJVFkgYXN0ICImI3gyQTsiPjwhRU5USVRZIG1pZGFzdCAiJiN4MkE7Ij48IUVOVElUWSBwbHVzICImI3gyQjsiPjwhRU5USVRZIGNvbW1hICImI3gyQzsiPjwhRU5USVRZIHBlcmlvZCAiJiN4MkU7Ij48IUVOVElUWSBzb2wgIiYjeDJGOyI%2BPCFFTlRJVFkgY29sb24gIiYjeDNBOyI%2BPCFFTlRJVFkgc2VtaSAiJiN4M0I7Ij48IUVOVElUWSBsdCAiJiN4M0M7Ij48IUVOVElUWSBMVCAiJiN4M0M7Ij48IUVOVElUWSBudmx0ICImI3gzQzsmI3gyMEQyOyI%2BPCFFTlRJVFkgZXF1YWxzICImI3gzRDsiPjwhRU5USVRZIGJuZSAiJiN4M0Q7JiN4MjBFNTsiPjwhRU5USVRZIGd0ICImI3gzRTsiPjwhRU5USVRZIEdUICImI3gzRTsiPjwhRU5USVRZIG52Z3QgIiYjeDNFOyYjeDIwRDI7Ij48IUVOVElUWSBxdWVzdCAiJiN4M0Y7Ij48IUVOVElUWSBjb21tYXQgIiYjeDQwOyI%2BPCFFTlRJVFkgbHNxYiAiJiN4NUI7Ij48IUVOVElUWSBsYnJhY2sgIiYjeDVCOyI%2BPCFFTlRJVFkgYnNvbCAiJiN4NUM7Ij48IUVOVElUWSByc3FiICImI3g1RDsiPjwhRU5USVRZIHJicmFjayAiJiN4NUQ7Ij48IUVOVElUWSBIYXQgIiYjeDVFOyI%2BPCFFTlRJVFkgbG93YmFyICImI3g1RjsiPjwhRU5USVRZIFVuZGVyQmFyICImI3g1RjsiPjwhRU5USVRZIGdyYXZlICImI3g2MDsiPjwhRU5USVRZIERpYWNyaXRpY2FsR3JhdmUgIiYjeDYwOyI%2BPCFFTlRJVFkgZmpsaWcgIiYjeDY2OyYjeDZBOyI%2BPCFFTlRJVFkgbGN1YiAiJiN4N0I7Ij48IUVOVElUWSBsYnJhY2UgIiYjeDdCOyI%2BPCFFTlRJVFkgdmVyYmFyICImI3g3QzsiPjwhRU5USVRZIHZlcnQgIiYjeDdDOyI%2BPCFFTlRJVFkgVmVydGljYWxMaW5lICImI3g3QzsiPjwhRU5USVRZIHJjdWIgIiYjeDdEOyI%2BPCFFTlRJVFkgcmJyYWNlICImI3g3RDsiPjwhRU5USVRZIG5ic3AgIiYjeEEwOyI%2BPCFFTlRJVFkgTm9uQnJlYWtpbmdTcGFjZSAiJiN4QTA7Ij48IUVOVElUWSBpZXhjbCAiJiN4QTE7Ij48IUVOVElUWSBjZW50ICImI3hBMjsiPjwhRU5USVRZIHBvdW5kICImI3hBMzsiPjwhRU5USVRZIGN1cnJlbiAiJiN4QTQ7Ij48IUVOVElUWSB5ZW4gIiYjeEE1OyI%2BPCFFTlRJVFkgYnJ2YmFyICImI3hBNjsiPjwhRU5USVRZIHNlY3QgIiYjeEE3OyI%2BPCFFTlRJVFkgRG90ICImI3hBODsiPjwhRU5USVRZIGRpZSAiJiN4QTg7Ij48IUVOVElUWSBEb3VibGVEb3QgIiYjeEE4OyI%2BPCFFTlRJVFkgdW1sICImI3hBODsiPjwhRU5USVRZIGNvcHkgIiYjeEE5OyI%2BPCFFTlRJVFkgQ09QWSAiJiN4QTk7Ij48IUVOVElUWSBvcmRmICImI3hBQTsiPjwhRU5USVRZIGxhcXVvICImI3hBQjsiPjwhRU5USVRZIG5vdCAiJiN4QUM7Ij48IUVOVElUWSBzaHkgIiYjeEFEOyI%2BPCFFTlRJVFkgcmVnICImI3hBRTsiPjwhRU5USVRZIGNpcmNsZWRSICImI3hBRTsiPjwhRU5USVRZIFJFRyAiJiN4QUU7Ij48IUVOVElUWSBtYWNyICImI3hBRjsiPjwhRU5USVRZIHN0cm5zICImI3hBRjsiPjwhRU5USVRZIGRlZyAiJiN4QjA7Ij48IUVOVElUWSBwbHVzbW4gIiYjeEIxOyI%2BPCFFTlRJVFkgcG0gIiYjeEIxOyI%2BPCFFTlRJVFkgUGx1c01pbnVzICImI3hCMTsiPjwhRU5USVRZIHN1cDIgIiYjeEIyOyI%2BPCFFTlRJVFkgc3VwMyAiJiN4QjM7Ij48IUVOVElUWSBhY3V0ZSAiJiN4QjQ7Ij48IUVOVElUWSBEaWFjcml0aWNhbEFjdXRlICImI3hCNDsiPjwhRU5USVRZIG1pY3JvICImI3hCNTsiPjwhRU5USVRZIHBhcmEgIiYjeEI2OyI%2BPCFFTlRJVFkgbWlkZG90ICImI3hCNzsiPjwhRU5USVRZIGNlbnRlcmRvdCAiJiN4Qjc7Ij48IUVOVElUWSBDZW50ZXJEb3QgIiYjeEI3OyI%2BPCFFTlRJVFkgY2VkaWwgIiYjeEI4OyI%2BPCFFTlRJVFkgQ2VkaWxsYSAiJiN4Qjg7Ij48IUVOVElUWSBzdXAxICImI3hCOTsiPjwhRU5USVRZIG9yZG0gIiYjeEJBOyI%2BPCFFTlRJVFkgcmFxdW8gIiYjeEJCOyI%2BPCFFTlRJVFkgZnJhYzE0ICImI3hCQzsiPjwhRU5USVRZIGZyYWMxMiAiJiN4QkQ7Ij48IUVOVElUWSBoYWxmICImI3hCRDsiPjwhRU5USVRZIGZyYWMzNCAiJiN4QkU7Ij48IUVOVElUWSBpcXVlc3QgIiYjeEJGOyI%2BPCFFTlRJVFkgQWdyYXZlICImI3hDMDsiPjwhRU5USVRZIEFhY3V0ZSAiJiN4QzE7Ij48IUVOVElUWSBBY2lyYyAiJiN4QzI7Ij48IUVOVElUWSBBdGlsZGUgIiYjeEMzOyI%2BPCFFTlRJVFkgQXVtbCAiJiN4QzQ7Ij48IUVOVElUWSBBcmluZyAiJiN4QzU7Ij48IUVOVElUWSBhbmdzdCAiJiN4QzU7Ij48IUVOVElUWSBBRWxpZyAiJiN4QzY7Ij48IUVOVElUWSBDY2VkaWwgIiYjeEM3OyI%2BPCFFTlRJVFkgRWdyYXZlICImI3hDODsiPjwhRU5USVRZIEVhY3V0ZSAiJiN4Qzk7Ij48IUVOVElUWSBFY2lyYyAiJiN4Q0E7Ij48IUVOVElUWSBFdW1sICImI3hDQjsiPjwhRU5USVRZIElncmF2ZSAiJiN4Q0M7Ij48IUVOVElUWSBJYWN1dGUgIiYjeENEOyI%2BPCFFTlRJVFkgSWNpcmMgIiYjeENFOyI%2BPCFFTlRJVFkgSXVtbCAiJiN4Q0Y7Ij48IUVOVElUWSBFVEggIiYjeEQwOyI%2BPCFFTlRJVFkgTnRpbGRlICImI3hEMTsiPjwhRU5USVRZIE9ncmF2ZSAiJiN4RDI7Ij48IUVOVElUWSBPYWN1dGUgIiYjeEQzOyI%2BPCFFTlRJVFkgT2NpcmMgIiYjeEQ0OyI%2BPCFFTlRJVFkgT3RpbGRlICImI3hENTsiPjwhRU5USVRZIE91bWwgIiYjeEQ2OyI%2BPCFFTlRJVFkgdGltZXMgIiYjeEQ3OyI%2BPCFFTlRJVFkgT3NsYXNoICImI3hEODsiPjwhRU5USVRZIFVncmF2ZSAiJiN4RDk7Ij48IUVOVElUWSBVYWN1dGUgIiYjeERBOyI%2BPCFFTlRJVFkgVWNpcmMgIiYjeERCOyI%2BPCFFTlRJVFkgVXVtbCAiJiN4REM7Ij48IUVOVElUWSBZYWN1dGUgIiYjeEREOyI%2BPCFFTlRJVFkgVEhPUk4gIiYjeERFOyI%2BPCFFTlRJVFkgc3psaWcgIiYjeERGOyI%2BPCFFTlRJVFkgYWdyYXZlICImI3hFMDsiPjwhRU5USVRZIGFhY3V0ZSAiJiN4RTE7Ij48IUVOVElUWSBhY2lyYyAiJiN4RTI7Ij48IUVOVElUWSBhdGlsZGUgIiYjeEUzOyI%2BPCFFTlRJVFkgYXVtbCAiJiN4RTQ7Ij48IUVOVElUWSBhcmluZyAiJiN4RTU7Ij48IUVOVElUWSBhZWxpZyAiJiN4RTY7Ij48IUVOVElUWSBjY2VkaWwgIiYjeEU3OyI%2BPCFFTlRJVFkgZWdyYXZlICImI3hFODsiPjwhRU5USVRZIGVhY3V0ZSAiJiN4RTk7Ij48IUVOVElUWSBlY2lyYyAiJiN4RUE7Ij48IUVOVElUWSBldW1sICImI3hFQjsiPjwhRU5USVRZIGlncmF2ZSAiJiN4RUM7Ij48IUVOVElUWSBpYWN1dGUgIiYjeEVEOyI%2BPCFFTlRJVFkgaWNpcmMgIiYjeEVFOyI%2BPCFFTlRJVFkgaXVtbCAiJiN4RUY7Ij48IUVOVElUWSBldGggIiYjeEYwOyI%2BPCFFTlRJVFkgbnRpbGRlICImI3hGMTsiPjwhRU5USVRZIG9ncmF2ZSAiJiN4RjI7Ij48IUVOVElUWSBvYWN1dGUgIiYjeEYzOyI%2BPCFFTlRJVFkgb2NpcmMgIiYjeEY0OyI%2BPCFFTlRJVFkgb3RpbGRlICImI3hGNTsiPjwhRU5USVRZIG91bWwgIiYjeEY2OyI%2BPCFFTlRJVFkgZGl2aWRlICImI3hGNzsiPjwhRU5USVRZIGRpdiAiJiN4Rjc7Ij48IUVOVElUWSBvc2xhc2ggIiYjeEY4OyI%2BPCFFTlRJVFkgdWdyYXZlICImI3hGOTsiPjwhRU5USVRZIHVhY3V0ZSAiJiN4RkE7Ij48IUVOVElUWSB1Y2lyYyAiJiN4RkI7Ij48IUVOVElUWSB1dW1sICImI3hGQzsiPjwhRU5USVRZIHlhY3V0ZSAiJiN4RkQ7Ij48IUVOVElUWSB0aG9ybiAiJiN4RkU7Ij48IUVOVElUWSB5dW1sICImI3hGRjsiPjwhRU5USVRZIEFtYWNyICImI3gxMDA7Ij48IUVOVElUWSBhbWFjciAiJiN4MTAxOyI%2BPCFFTlRJVFkgQWJyZXZlICImI3gxMDI7Ij48IUVOVElUWSBhYnJldmUgIiYjeDEwMzsiPjwhRU5USVRZIEFvZ29uICImI3gxMDQ7Ij48IUVOVElUWSBhb2dvbiAiJiN4MTA1OyI%2BPCFFTlRJVFkgQ2FjdXRlICImI3gxMDY7Ij48IUVOVElUWSBjYWN1dGUgIiYjeDEwNzsiPjwhRU5USVRZIENjaXJjICImI3gxMDg7Ij48IUVOVElUWSBjY2lyYyAiJiN4MTA5OyI%2BPCFFTlRJVFkgQ2RvdCAiJiN4MTBBOyI%2BPCFFTlRJVFkgY2RvdCAiJiN4MTBCOyI%2BPCFFTlRJVFkgQ2Nhcm9uICImI3gxMEM7Ij48IUVOVElUWSBjY2Fyb24gIiYjeDEwRDsiPjwhRU5USVRZIERjYXJvbiAiJiN4MTBFOyI%2BPCFFTlRJVFkgZGNhcm9uICImI3gxMEY7Ij48IUVOVElUWSBEc3Ryb2sgIiYjeDExMDsiPjwhRU5USVRZIGRzdHJvayAiJiN4MTExOyI%2BPCFFTlRJVFkgRW1hY3IgIiYjeDExMjsiPjwhRU5USVRZIGVtYWNyICImI3gxMTM7Ij48IUVOVElUWSBFZG90ICImI3gxMTY7Ij48IUVOVElUWSBlZG90ICImI3gxMTc7Ij48IUVOVElUWSBFb2dvbiAiJiN4MTE4OyI%2BPCFFTlRJVFkgZW9nb24gIiYjeDExOTsiPjwhRU5USVRZIEVjYXJvbiAiJiN4MTFBOyI%2BPCFFTlRJVFkgZWNhcm9uICImI3gxMUI7Ij48IUVOVElUWSBHY2lyYyAiJiN4MTFDOyI%2BPCFFTlRJVFkgZ2NpcmMgIiYjeDExRDsiPjwhRU5USVRZIEdicmV2ZSAiJiN4MTFFOyI%2BPCFFTlRJVFkgZ2JyZXZlICImI3gxMUY7Ij48IUVOVElUWSBHZG90ICImI3gxMjA7Ij48IUVOVElUWSBnZG90ICImI3gxMjE7Ij48IUVOVElUWSBHY2VkaWwgIiYjeDEyMjsiPjwhRU5USVRZIEhjaXJjICImI3gxMjQ7Ij48IUVOVElUWSBoY2lyYyAiJiN4MTI1OyI%2BPCFFTlRJVFkgSHN0cm9rICImI3gxMjY7Ij48IUVOVElUWSBoc3Ryb2sgIiYjeDEyNzsiPjwhRU5USVRZIEl0aWxkZSAiJiN4MTI4OyI%2BPCFFTlRJVFkgaXRpbGRlICImI3gxMjk7Ij48IUVOVElUWSBJbWFjciAiJiN4MTJBOyI%2BPCFFTlRJVFkgaW1hY3IgIiYjeDEyQjsiPjwhRU5USVRZIElvZ29uICImI3gxMkU7Ij48IUVOVElUWSBpb2dvbiAiJiN4MTJGOyI%2BPCFFTlRJVFkgSWRvdCAiJiN4MTMwOyI%2BPCFFTlRJVFkgaW1hdGggIiYjeDEzMTsiPjwhRU5USVRZIGlub2RvdCAiJiN4MTMxOyI%2BPCFFTlRJVFkgSUpsaWcgIiYjeDEzMjsiPjwhRU5USVRZIGlqbGlnICImI3gxMzM7Ij48IUVOVElUWSBKY2lyYyAiJiN4MTM0OyI%2BPCFFTlRJVFkgamNpcmMgIiYjeDEzNTsiPjwhRU5USVRZIEtjZWRpbCAiJiN4MTM2OyI%2BPCFFTlRJVFkga2NlZGlsICImI3gxMzc7Ij48IUVOVElUWSBrZ3JlZW4gIiYjeDEzODsiPjwhRU5USVRZIExhY3V0ZSAiJiN4MTM5OyI%2BPCFFTlRJVFkgbGFjdXRlICImI3gxM0E7Ij48IUVOVElUWSBMY2VkaWwgIiYjeDEzQjsiPjwhRU5USVRZIGxjZWRpbCAiJiN4MTNDOyI%2BPCFFTlRJVFkgTGNhcm9uICImI3gxM0Q7Ij48IUVOVElUWSBsY2Fyb24gIiYjeDEzRTsiPjwhRU5USVRZIExtaWRvdCAiJiN4MTNGOyI%2BPCFFTlRJVFkgbG1pZG90ICImI3gxNDA7Ij48IUVOVElUWSBMc3Ryb2sgIiYjeDE0MTsiPjwhRU5USVRZIGxzdHJvayAiJiN4MTQyOyI%2BPCFFTlRJVFkgTmFjdXRlICImI3gxNDM7Ij48IUVOVElUWSBuYWN1dGUgIiYjeDE0NDsiPjwhRU5USVRZIE5jZWRpbCAiJiN4MTQ1OyI%2BPCFFTlRJVFkgbmNlZGlsICImI3gxNDY7Ij48IUVOVElUWSBOY2Fyb24gIiYjeDE0NzsiPjwhRU5USVRZIG5jYXJvbiAiJiN4MTQ4OyI%2BPCFFTlRJVFkgbmFwb3MgIiYjeDE0OTsiPjwhRU5USVRZIEVORyAiJiN4MTRBOyI%2BPCFFTlRJVFkgZW5nICImI3gxNEI7Ij48IUVOVElUWSBPbWFjciAiJiN4MTRDOyI%2BPCFFTlRJVFkgb21hY3IgIiYjeDE0RDsiPjwhRU5USVRZIE9kYmxhYyAiJiN4MTUwOyI%2BPCFFTlRJVFkgb2RibGFjICImI3gxNTE7Ij48IUVOVElUWSBPRWxpZyAiJiN4MTUyOyI%2BPCFFTlRJVFkgb2VsaWcgIiYjeDE1MzsiPjwhRU5USVRZIFJhY3V0ZSAiJiN4MTU0OyI%2BPCFFTlRJVFkgcmFjdXRlICImI3gxNTU7Ij48IUVOVElUWSBSY2VkaWwgIiYjeDE1NjsiPjwhRU5USVRZIHJjZWRpbCAiJiN4MTU3OyI%2BPCFFTlRJVFkgUmNhcm9uICImI3gxNTg7Ij48IUVOVElUWSByY2Fyb24gIiYjeDE1OTsiPjwhRU5USVRZIFNhY3V0ZSAiJiN4MTVBOyI%2BPCFFTlRJVFkgc2FjdXRlICImI3gxNUI7Ij48IUVOVElUWSBTY2lyYyAiJiN4MTVDOyI%2BPCFFTlRJVFkgc2NpcmMgIiYjeDE1RDsiPjwhRU5USVRZIFNjZWRpbCAiJiN4MTVFOyI%2BPCFFTlRJVFkgc2NlZGlsICImI3gxNUY7Ij48IUVOVElUWSBTY2Fyb24gIiYjeDE2MDsiPjwhRU5USVRZIHNjYXJvbiAiJiN4MTYxOyI%2BPCFFTlRJVFkgVGNlZGlsICImI3gxNjI7Ij48IUVOVElUWSB0Y2VkaWwgIiYjeDE2MzsiPjwhRU5USVRZIFRjYXJvbiAiJiN4MTY0OyI%2BPCFFTlRJVFkgdGNhcm9uICImI3gxNjU7Ij48IUVOVElUWSBUc3Ryb2sgIiYjeDE2NjsiPjwhRU5USVRZIHRzdHJvayAiJiN4MTY3OyI%2BPCFFTlRJVFkgVXRpbGRlICImI3gxNjg7Ij48IUVOVElUWSB1dGlsZGUgIiYjeDE2OTsiPjwhRU5USVRZIFVtYWNyICImI3gxNkE7Ij48IUVOVElUWSB1bWFjciAiJiN4MTZCOyI%2BPCFFTlRJVFkgVWJyZXZlICImI3gxNkM7Ij48IUVOVElUWSB1YnJldmUgIiYjeDE2RDsiPjwhRU5USVRZIFVyaW5nICImI3gxNkU7Ij48IUVOVElUWSB1cmluZyAiJiN4MTZGOyI%2BPCFFTlRJVFkgVWRibGFjICImI3gxNzA7Ij48IUVOVElUWSB1ZGJsYWMgIiYjeDE3MTsiPjwhRU5USVRZIFVvZ29uICImI3gxNzI7Ij48IUVOVElUWSB1b2dvbiAiJiN4MTczOyI%2BPCFFTlRJVFkgV2NpcmMgIiYjeDE3NDsiPjwhRU5USVRZIHdjaXJjICImI3gxNzU7Ij48IUVOVElUWSBZY2lyYyAiJiN4MTc2OyI%2BPCFFTlRJVFkgeWNpcmMgIiYjeDE3NzsiPjwhRU5USVRZIFl1bWwgIiYjeDE3ODsiPjwhRU5USVRZIFphY3V0ZSAiJiN4MTc5OyI%2BPCFFTlRJVFkgemFjdXRlICImI3gxN0E7Ij48IUVOVElUWSBaZG90ICImI3gxN0I7Ij48IUVOVElUWSB6ZG90ICImI3gxN0M7Ij48IUVOVElUWSBaY2Fyb24gIiYjeDE3RDsiPjwhRU5USVRZIHpjYXJvbiAiJiN4MTdFOyI%2BPCFFTlRJVFkgZm5vZiAiJiN4MTkyOyI%2BPCFFTlRJVFkgaW1wZWQgIiYjeDFCNTsiPjwhRU5USVRZIGdhY3V0ZSAiJiN4MUY1OyI%2BPCFFTlRJVFkgam1hdGggIiYjeDIzNzsiPjwhRU5USVRZIGNpcmMgIiYjeDJDNjsiPjwhRU5USVRZIGNhcm9uICImI3gyQzc7Ij48IUVOVElUWSBIYWNlayAiJiN4MkM3OyI%2BPCFFTlRJVFkgYnJldmUgIiYjeDJEODsiPjwhRU5USVRZIEJyZXZlICImI3gyRDg7Ij48IUVOVElUWSBkb3QgIiYjeDJEOTsiPjwhRU5USVRZIERpYWNyaXRpY2FsRG90ICImI3gyRDk7Ij48IUVOVElUWSByaW5nICImI3gyREE7Ij48IUVOVElUWSBvZ29uICImI3gyREI7Ij48IUVOVElUWSB0aWxkZSAiJiN4MkRDOyI%2BPCFFTlRJVFkgRGlhY3JpdGljYWxUaWxkZSAiJiN4MkRDOyI%2BPCFFTlRJVFkgZGJsYWMgIiYjeDJERDsiPjwhRU5USVRZIERpYWNyaXRpY2FsRG91YmxlQWN1dGUgIiYjeDJERDsiPjwhRU5USVRZIERvd25CcmV2ZSAiJiN4MzExOyI%2BPCFFTlRJVFkgQWxwaGEgIiYjeDM5MTsiPjwhRU5USVRZIEJldGEgIiYjeDM5MjsiPjwhRU5USVRZIEdhbW1hICImI3gzOTM7Ij48IUVOVElUWSBEZWx0YSAiJiN4Mzk0OyI%2BPCFFTlRJVFkgRXBzaWxvbiAiJiN4Mzk1OyI%2BPCFFTlRJVFkgWmV0YSAiJiN4Mzk2OyI%2BPCFFTlRJVFkgRXRhICImI3gzOTc7Ij48IUVOVElUWSBUaGV0YSAiJiN4Mzk4OyI%2BPCFFTlRJVFkgSW90YSAiJiN4Mzk5OyI%2BPCFFTlRJVFkgS2FwcGEgIiYjeDM5QTsiPjwhRU5USVRZIExhbWJkYSAiJiN4MzlCOyI%2BPCFFTlRJVFkgTXUgIiYjeDM5QzsiPjwhRU5USVRZIE51ICImI3gzOUQ7Ij48IUVOVElUWSBYaSAiJiN4MzlFOyI%2BPCFFTlRJVFkgT21pY3JvbiAiJiN4MzlGOyI%2BPCFFTlRJVFkgUGkgIiYjeDNBMDsiPjwhRU5USVRZIFJobyAiJiN4M0ExOyI%2BPCFFTlRJVFkgU2lnbWEgIiYjeDNBMzsiPjwhRU5USVRZIFRhdSAiJiN4M0E0OyI%2BPCFFTlRJVFkgVXBzaWxvbiAiJiN4M0E1OyI%2BPCFFTlRJVFkgUGhpICImI3gzQTY7Ij48IUVOVElUWSBDaGkgIiYjeDNBNzsiPjwhRU5USVRZIFBzaSAiJiN4M0E4OyI%2BPCFFTlRJVFkgT21lZ2EgIiYjeDNBOTsiPjwhRU5USVRZIG9obSAiJiN4M0E5OyI%2BPCFFTlRJVFkgYWxwaGEgIiYjeDNCMTsiPjwhRU5USVRZIGJldGEgIiYjeDNCMjsiPjwhRU5USVRZIGdhbW1hICImI3gzQjM7Ij48IUVOVElUWSBkZWx0YSAiJiN4M0I0OyI%2BPCFFTlRJVFkgZXBzaSAiJiN4M0I1OyI%2BPCFFTlRJVFkgZXBzaWxvbiAiJiN4M0I1OyI%2BPCFFTlRJVFkgemV0YSAiJiN4M0I2OyI%2BPCFFTlRJVFkgZXRhICImI3gzQjc7Ij48IUVOVElUWSB0aGV0YSAiJiN4M0I4OyI%2BPCFFTlRJVFkgaW90YSAiJiN4M0I5OyI%2BPCFFTlRJVFkga2FwcGEgIiYjeDNCQTsiPjwhRU5USVRZIGxhbWJkYSAiJiN4M0JCOyI%2BPCFFTlRJVFkgbXUgIiYjeDNCQzsiPjwhRU5USVRZIG51ICImI3gzQkQ7Ij48IUVOVElUWSB4aSAiJiN4M0JFOyI%2BPCFFTlRJVFkgb21pY3JvbiAiJiN4M0JGOyI%2BPCFFTlRJVFkgcGkgIiYjeDNDMDsiPjwhRU5USVRZIHJobyAiJiN4M0MxOyI%2BPCFFTlRJVFkgc2lnbWF2ICImI3gzQzI7Ij48IUVOVElUWSB2YXJzaWdtYSAiJiN4M0MyOyI%2BPCFFTlRJVFkgc2lnbWFmICImI3gzQzI7Ij48IUVOVElUWSBzaWdtYSAiJiN4M0MzOyI%2BPCFFTlRJVFkgdGF1ICImI3gzQzQ7Ij48IUVOVElUWSB1cHNpICImI3gzQzU7Ij48IUVOVElUWSB1cHNpbG9uICImI3gzQzU7Ij48IUVOVElUWSBwaGkgIiYjeDNDNjsiPjwhRU5USVRZIGNoaSAiJiN4M0M3OyI%2BPCFFTlRJVFkgcHNpICImI3gzQzg7Ij48IUVOVElUWSBvbWVnYSAiJiN4M0M5OyI%2BPCFFTlRJVFkgdGhldGF2ICImI3gzRDE7Ij48IUVOVElUWSB2YXJ0aGV0YSAiJiN4M0QxOyI%2BPCFFTlRJVFkgdGhldGFzeW0gIiYjeDNEMTsiPjwhRU5USVRZIFVwc2kgIiYjeDNEMjsiPjwhRU5USVRZIHVwc2loICImI3gzRDI7Ij48IUVOVElUWSBzdHJhaWdodHBoaSAiJiN4M0Q1OyI%2BPCFFTlRJVFkgcGhpdiAiJiN4M0Q1OyI%2BPCFFTlRJVFkgdmFycGhpICImI3gzRDU7Ij48IUVOVElUWSBwaXYgIiYjeDNENjsiPjwhRU5USVRZIHZhcnBpICImI3gzRDY7Ij48IUVOVElUWSBHYW1tYWQgIiYjeDNEQzsiPjwhRU5USVRZIGdhbW1hZCAiJiN4M0REOyI%2BPCFFTlRJVFkgZGlnYW1tYSAiJiN4M0REOyI%2BPCFFTlRJVFkga2FwcGF2ICImI3gzRjA7Ij48IUVOVElUWSB2YXJrYXBwYSAiJiN4M0YwOyI%2BPCFFTlRJVFkgcmhvdiAiJiN4M0YxOyI%2BPCFFTlRJVFkgdmFycmhvICImI3gzRjE7Ij48IUVOVElUWSBlcHNpdiAiJiN4M0Y1OyI%2BPCFFTlRJVFkgc3RyYWlnaHRlcHNpbG9uICImI3gzRjU7Ij48IUVOVElUWSB2YXJlcHNpbG9uICImI3gzRjU7Ij48IUVOVElUWSBiZXBzaSAiJiN4M0Y2OyI%2BPCFFTlRJVFkgYmFja2Vwc2lsb24gIiYjeDNGNjsiPjwhRU5USVRZIElPY3kgIiYjeDQwMTsiPjwhRU5USVRZIERKY3kgIiYjeDQwMjsiPjwhRU5USVRZIEdKY3kgIiYjeDQwMzsiPjwhRU5USVRZIEp1a2N5ICImI3g0MDQ7Ij48IUVOVElUWSBEU2N5ICImI3g0MDU7Ij48IUVOVElUWSBJdWtjeSAiJiN4NDA2OyI%2BPCFFTlRJVFkgWUljeSAiJiN4NDA3OyI%2BPCFFTlRJVFkgSnNlcmN5ICImI3g0MDg7Ij48IUVOVElUWSBMSmN5ICImI3g0MDk7Ij48IUVOVElUWSBOSmN5ICImI3g0MEE7Ij48IUVOVElUWSBUU0hjeSAiJiN4NDBCOyI%2BPCFFTlRJVFkgS0pjeSAiJiN4NDBDOyI%2BPCFFTlRJVFkgVWJyY3kgIiYjeDQwRTsiPjwhRU5USVRZIERaY3kgIiYjeDQwRjsiPjwhRU5USVRZIEFjeSAiJiN4NDEwOyI%2BPCFFTlRJVFkgQmN5ICImI3g0MTE7Ij48IUVOVElUWSBWY3kgIiYjeDQxMjsiPjwhRU5USVRZIEdjeSAiJiN4NDEzOyI%2BPCFFTlRJVFkgRGN5ICImI3g0MTQ7Ij48IUVOVElUWSBJRWN5ICImI3g0MTU7Ij48IUVOVElUWSBaSGN5ICImI3g0MTY7Ij48IUVOVElUWSBaY3kgIiYjeDQxNzsiPjwhRU5USVRZIEljeSAiJiN4NDE4OyI%2BPCFFTlRJVFkgSmN5ICImI3g0MTk7Ij48IUVOVElUWSBLY3kgIiYjeDQxQTsiPjwhRU5USVRZIExjeSAiJiN4NDFCOyI%2BPCFFTlRJVFkgTWN5ICImI3g0MUM7Ij48IUVOVElUWSBOY3kgIiYjeDQxRDsiPjwhRU5USVRZIE9jeSAiJiN4NDFFOyI%2BPCFFTlRJVFkgUGN5ICImI3g0MUY7Ij48IUVOVElUWSBSY3kgIiYjeDQyMDsiPjwhRU5USVRZIFNjeSAiJiN4NDIxOyI%2BPCFFTlRJVFkgVGN5ICImI3g0MjI7Ij48IUVOVElUWSBVY3kgIiYjeDQyMzsiPjwhRU5USVRZIEZjeSAiJiN4NDI0OyI%2BPCFFTlRJVFkgS0hjeSAiJiN4NDI1OyI%2BPCFFTlRJVFkgVFNjeSAiJiN4NDI2OyI%2BPCFFTlRJVFkgQ0hjeSAiJiN4NDI3OyI%2BPCFFTlRJVFkgU0hjeSAiJiN4NDI4OyI%2BPCFFTlRJVFkgU0hDSGN5ICImI3g0Mjk7Ij48IUVOVElUWSBIQVJEY3kgIiYjeDQyQTsiPjwhRU5USVRZIFljeSAiJiN4NDJCOyI%2BPCFFTlRJVFkgU09GVGN5ICImI3g0MkM7Ij48IUVOVElUWSBFY3kgIiYjeDQyRDsiPjwhRU5USVRZIFlVY3kgIiYjeDQyRTsiPjwhRU5USVRZIFlBY3kgIiYjeDQyRjsiPjwhRU5USVRZIGFjeSAiJiN4NDMwOyI%2BPCFFTlRJVFkgYmN5ICImI3g0MzE7Ij48IUVOVElUWSB2Y3kgIiYjeDQzMjsiPjwhRU5USVRZIGdjeSAiJiN4NDMzOyI%2BPCFFTlRJVFkgZGN5ICImI3g0MzQ7Ij48IUVOVElUWSBpZWN5ICImI3g0MzU7Ij48IUVOVElUWSB6aGN5ICImI3g0MzY7Ij48IUVOVElUWSB6Y3kgIiYjeDQzNzsiPjwhRU5USVRZIGljeSAiJiN4NDM4OyI%2BPCFFTlRJVFkgamN5ICImI3g0Mzk7Ij48IUVOVElUWSBrY3kgIiYjeDQzQTsiPjwhRU5USVRZIGxjeSAiJiN4NDNCOyI%2BPCFFTlRJVFkgbWN5ICImI3g0M0M7Ij48IUVOVElUWSBuY3kgIiYjeDQzRDsiPjwhRU5USVRZIG9jeSAiJiN4NDNFOyI%2BPCFFTlRJVFkgcGN5ICImI3g0M0Y7Ij48IUVOVElUWSByY3kgIiYjeDQ0MDsiPjwhRU5USVRZIHNjeSAiJiN4NDQxOyI%2BPCFFTlRJVFkgdGN5ICImI3g0NDI7Ij48IUVOVElUWSB1Y3kgIiYjeDQ0MzsiPjwhRU5USVRZIGZjeSAiJiN4NDQ0OyI%2BPCFFTlRJVFkga2hjeSAiJiN4NDQ1OyI%2BPCFFTlRJVFkgdHNjeSAiJiN4NDQ2OyI%2BPCFFTlRJVFkgY2hjeSAiJiN4NDQ3OyI%2BPCFFTlRJVFkgc2hjeSAiJiN4NDQ4OyI%2BPCFFTlRJVFkgc2hjaGN5ICImI3g0NDk7Ij48IUVOVElUWSBoYXJkY3kgIiYjeDQ0QTsiPjwhRU5USVRZIHljeSAiJiN4NDRCOyI%2BPCFFTlRJVFkgc29mdGN5ICImI3g0NEM7Ij48IUVOVElUWSBlY3kgIiYjeDQ0RDsiPjwhRU5USVRZIHl1Y3kgIiYjeDQ0RTsiPjwhRU5USVRZIHlhY3kgIiYjeDQ0RjsiPjwhRU5USVRZIGlvY3kgIiYjeDQ1MTsiPjwhRU5USVRZIGRqY3kgIiYjeDQ1MjsiPjwhRU5USVRZIGdqY3kgIiYjeDQ1MzsiPjwhRU5USVRZIGp1a2N5ICImI3g0NTQ7Ij48IUVOVElUWSBkc2N5ICImI3g0NTU7Ij48IUVOVElUWSBpdWtjeSAiJiN4NDU2OyI%2BPCFFTlRJVFkgeWljeSAiJiN4NDU3OyI%2BPCFFTlRJVFkganNlcmN5ICImI3g0NTg7Ij48IUVOVElUWSBsamN5ICImI3g0NTk7Ij48IUVOVElUWSBuamN5ICImI3g0NUE7Ij48IUVOVElUWSB0c2hjeSAiJiN4NDVCOyI%2BPCFFTlRJVFkga2pjeSAiJiN4NDVDOyI%2BPCFFTlRJVFkgdWJyY3kgIiYjeDQ1RTsiPjwhRU5USVRZIGR6Y3kgIiYjeDQ1RjsiPjwhRU5USVRZIGVuc3AgIiYjeDIwMDI7Ij48IUVOVElUWSBlbXNwICImI3gyMDAzOyI%2BPCFFTlRJVFkgZW1zcDEzICImI3gyMDA0OyI%2BPCFFTlRJVFkgZW1zcDE0ICImI3gyMDA1OyI%2BPCFFTlRJVFkgbnVtc3AgIiYjeDIwMDc7Ij48IUVOVElUWSBwdW5jc3AgIiYjeDIwMDg7Ij48IUVOVElUWSB0aGluc3AgIiYjeDIwMDk7Ij48IUVOVElUWSBUaGluU3BhY2UgIiYjeDIwMDk7Ij48IUVOVElUWSBoYWlyc3AgIiYjeDIwMEE7Ij48IUVOVElUWSBWZXJ5VGhpblNwYWNlICImI3gyMDBBOyI%2BPCFFTlRJVFkgWmVyb1dpZHRoU3BhY2UgIiYjeDIwMEI7Ij48IUVOVElUWSBOZWdhdGl2ZVZlcnlUaGluU3BhY2UgIiYjeDIwMEI7Ij48IUVOVElUWSBOZWdhdGl2ZVRoaW5TcGFjZSAiJiN4MjAwQjsiPjwhRU5USVRZIE5lZ2F0aXZlTWVkaXVtU3BhY2UgIiYjeDIwMEI7Ij48IUVOVElUWSBOZWdhdGl2ZVRoaWNrU3BhY2UgIiYjeDIwMEI7Ij48IUVOVElUWSB6d25qICImI3gyMDBDOyI%2BPCFFTlRJVFkgendqICImI3gyMDBEOyI%2BPCFFTlRJVFkgbHJtICImI3gyMDBFOyI%2BPCFFTlRJVFkgcmxtICImI3gyMDBGOyI%2BPCFFTlRJVFkgaHlwaGVuICImI3gyMDEwOyI%2BPCFFTlRJVFkgZGFzaCAiJiN4MjAxMDsiPjwhRU5USVRZIG5kYXNoICImI3gyMDEzOyI%2BPCFFTlRJVFkgbWRhc2ggIiYjeDIwMTQ7Ij48IUVOVElUWSBob3JiYXIgIiYjeDIwMTU7Ij48IUVOVElUWSBWZXJiYXIgIiYjeDIwMTY7Ij48IUVOVElUWSBWZXJ0ICImI3gyMDE2OyI%2BPCFFTlRJVFkgbHNxdW8gIiYjeDIwMTg7Ij48IUVOVElUWSBPcGVuQ3VybHlRdW90ZSAiJiN4MjAxODsiPjwhRU5USVRZIHJzcXVvICImI3gyMDE5OyI%2BPCFFTlRJVFkgcnNxdW9yICImI3gyMDE5OyI%2BPCFFTlRJVFkgQ2xvc2VDdXJseVF1b3RlICImI3gyMDE5OyI%2BPCFFTlRJVFkgbHNxdW9yICImI3gyMDFBOyI%2BPCFFTlRJVFkgc2JxdW8gIiYjeDIwMUE7Ij48IUVOVElUWSBsZHF1byAiJiN4MjAxQzsiPjwhRU5USVRZIE9wZW5DdXJseURvdWJsZVF1b3RlICImI3gyMDFDOyI%2BPCFFTlRJVFkgcmRxdW8gIiYjeDIwMUQ7Ij48IUVOVElUWSByZHF1b3IgIiYjeDIwMUQ7Ij48IUVOVElUWSBDbG9zZUN1cmx5RG91YmxlUXVvdGUgIiYjeDIwMUQ7Ij48IUVOVElUWSBsZHF1b3IgIiYjeDIwMUU7Ij48IUVOVElUWSBiZHF1byAiJiN4MjAxRTsiPjwhRU5USVRZIGRhZ2dlciAiJiN4MjAyMDsiPjwhRU5USVRZIERhZ2dlciAiJiN4MjAyMTsiPjwhRU5USVRZIGRkYWdnZXIgIiYjeDIwMjE7Ij48IUVOVElUWSBidWxsICImI3gyMDIyOyI%2BPCFFTlRJVFkgYnVsbGV0ICImI3gyMDIyOyI%2BPCFFTlRJVFkgbmxkciAiJiN4MjAyNTsiPjwhRU5USVRZIGhlbGxpcCAiJiN4MjAyNjsiPjwhRU5USVRZIG1sZHIgIiYjeDIwMjY7Ij48IUVOVElUWSBwZXJtaWwgIiYjeDIwMzA7Ij48IUVOVElUWSBwZXJ0ZW5rICImI3gyMDMxOyI%2BPCFFTlRJVFkgcHJpbWUgIiYjeDIwMzI7Ij48IUVOVElUWSBQcmltZSAiJiN4MjAzMzsiPjwhRU5USVRZIHRwcmltZSAiJiN4MjAzNDsiPjwhRU5USVRZIGJwcmltZSAiJiN4MjAzNTsiPjwhRU5USVRZIGJhY2twcmltZSAiJiN4MjAzNTsiPjwhRU5USVRZIGxzYXF1byAiJiN4MjAzOTsiPjwhRU5USVRZIHJzYXF1byAiJiN4MjAzQTsiPjwhRU5USVRZIG9saW5lICImI3gyMDNFOyI%2BPCFFTlRJVFkgT3ZlckJhciAiJiN4MjAzRTsiPjwhRU5USVRZIGNhcmV0ICImI3gyMDQxOyI%2BPCFFTlRJVFkgaHlidWxsICImI3gyMDQzOyI%2BPCFFTlRJVFkgZnJhc2wgIiYjeDIwNDQ7Ij48IUVOVElUWSBic2VtaSAiJiN4MjA0RjsiPjwhRU5USVRZIHFwcmltZSAiJiN4MjA1NzsiPjwhRU5USVRZIE1lZGl1bVNwYWNlICImI3gyMDVGOyI%2BPCFFTlRJVFkgVGhpY2tTcGFjZSAiJiN4MjA1RjsmI3gyMDBBOyI%2BPCFFTlRJVFkgTm9CcmVhayAiJiN4MjA2MDsiPjwhRU5USVRZIEFwcGx5RnVuY3Rpb24gIiYjeDIwNjE7Ij48IUVOVElUWSBhZiAiJiN4MjA2MTsiPjwhRU5USVRZIEludmlzaWJsZVRpbWVzICImI3gyMDYyOyI%2BPCFFTlRJVFkgaXQgIiYjeDIwNjI7Ij48IUVOVElUWSBJbnZpc2libGVDb21tYSAiJiN4MjA2MzsiPjwhRU5USVRZIGljICImI3gyMDYzOyI%2BPCFFTlRJVFkgZXVybyAiJiN4MjBBQzsiPjwhRU5USVRZIHRkb3QgIiYjeDIwREI7Ij48IUVOVElUWSBUcmlwbGVEb3QgIiYjeDIwREI7Ij48IUVOVElUWSBEb3REb3QgIiYjeDIwREM7Ij48IUVOVElUWSBDb3BmICImI3gyMTAyOyI%2BPCFFTlRJVFkgY29tcGxleGVzICImI3gyMTAyOyI%2BPCFFTlRJVFkgaW5jYXJlICImI3gyMTA1OyI%2BPCFFTlRJVFkgZ3NjciAiJiN4MjEwQTsiPjwhRU5USVRZIGhhbWlsdCAiJiN4MjEwQjsiPjwhRU5USVRZIEhpbGJlcnRTcGFjZSAiJiN4MjEwQjsiPjwhRU5USVRZIEhzY3IgIiYjeDIxMEI7Ij48IUVOVElUWSBIZnIgIiYjeDIxMEM7Ij48IUVOVElUWSBQb2luY2FyZXBsYW5lICImI3gyMTBDOyI%2BPCFFTlRJVFkgcXVhdGVybmlvbnMgIiYjeDIxMEQ7Ij48IUVOVElUWSBIb3BmICImI3gyMTBEOyI%2BPCFFTlRJVFkgcGxhbmNraCAiJiN4MjEwRTsiPjwhRU5USVRZIHBsYW5jayAiJiN4MjEwRjsiPjwhRU5USVRZIGhiYXIgIiYjeDIxMEY7Ij48IUVOVElUWSBwbGFua3YgIiYjeDIxMEY7Ij48IUVOVElUWSBoc2xhc2ggIiYjeDIxMEY7Ij48IUVOVElUWSBJc2NyICImI3gyMTEwOyI%2BPCFFTlRJVFkgaW1hZ2xpbmUgIiYjeDIxMTA7Ij48IUVOVElUWSBpbWFnZSAiJiN4MjExMTsiPjwhRU5USVRZIEltICImI3gyMTExOyI%2BPCFFTlRJVFkgaW1hZ3BhcnQgIiYjeDIxMTE7Ij48IUVOVElUWSBJZnIgIiYjeDIxMTE7Ij48IUVOVElUWSBMc2NyICImI3gyMTEyOyI%2BPCFFTlRJVFkgbGFncmFuICImI3gyMTEyOyI%2BPCFFTlRJVFkgTGFwbGFjZXRyZiAiJiN4MjExMjsiPjwhRU5USVRZIGVsbCAiJiN4MjExMzsiPjwhRU5USVRZIE5vcGYgIiYjeDIxMTU7Ij48IUVOVElUWSBuYXR1cmFscyAiJiN4MjExNTsiPjwhRU5USVRZIG51bWVybyAiJiN4MjExNjsiPjwhRU5USVRZIGNvcHlzciAiJiN4MjExNzsiPjwhRU5USVRZIHdlaWVycCAiJiN4MjExODsiPjwhRU5USVRZIHdwICImI3gyMTE4OyI%2BPCFFTlRJVFkgUG9wZiAiJiN4MjExOTsiPjwhRU5USVRZIHByaW1lcyAiJiN4MjExOTsiPjwhRU5USVRZIHJhdGlvbmFscyAiJiN4MjExQTsiPjwhRU5USVRZIFFvcGYgIiYjeDIxMUE7Ij48IUVOVElUWSBSc2NyICImI3gyMTFCOyI%2BPCFFTlRJVFkgcmVhbGluZSAiJiN4MjExQjsiPjwhRU5USVRZIHJlYWwgIiYjeDIxMUM7Ij48IUVOVElUWSBSZSAiJiN4MjExQzsiPjwhRU5USVRZIHJlYWxwYXJ0ICImI3gyMTFDOyI%2BPCFFTlRJVFkgUmZyICImI3gyMTFDOyI%2BPCFFTlRJVFkgcmVhbHMgIiYjeDIxMUQ7Ij48IUVOVElUWSBSb3BmICImI3gyMTFEOyI%2BPCFFTlRJVFkgcnggIiYjeDIxMUU7Ij48IUVOVElUWSB0cmFkZSAiJiN4MjEyMjsiPjwhRU5USVRZIFRSQURFICImI3gyMTIyOyI%2BPCFFTlRJVFkgaW50ZWdlcnMgIiYjeDIxMjQ7Ij48IUVOVElUWSBab3BmICImI3gyMTI0OyI%2BPCFFTlRJVFkgbWhvICImI3gyMTI3OyI%2BPCFFTlRJVFkgWmZyICImI3gyMTI4OyI%2BPCFFTlRJVFkgemVldHJmICImI3gyMTI4OyI%2BPCFFTlRJVFkgaWlvdGEgIiYjeDIxMjk7Ij48IUVOVElUWSBiZXJub3UgIiYjeDIxMkM7Ij48IUVOVElUWSBCZXJub3VsbGlzICImI3gyMTJDOyI%2BPCFFTlRJVFkgQnNjciAiJiN4MjEyQzsiPjwhRU5USVRZIENmciAiJiN4MjEyRDsiPjwhRU5USVRZIENheWxleXMgIiYjeDIxMkQ7Ij48IUVOVElUWSBlc2NyICImI3gyMTJGOyI%2BPCFFTlRJVFkgRXNjciAiJiN4MjEzMDsiPjwhRU5USVRZIGV4cGVjdGF0aW9uICImI3gyMTMwOyI%2BPCFFTlRJVFkgRnNjciAiJiN4MjEzMTsiPjwhRU5USVRZIEZvdXJpZXJ0cmYgIiYjeDIxMzE7Ij48IUVOVElUWSBwaG1tYXQgIiYjeDIxMzM7Ij48IUVOVElUWSBNZWxsaW50cmYgIiYjeDIxMzM7Ij48IUVOVElUWSBNc2NyICImI3gyMTMzOyI%2BPCFFTlRJVFkgb3JkZXIgIiYjeDIxMzQ7Ij48IUVOVElUWSBvcmRlcm9mICImI3gyMTM0OyI%2BPCFFTlRJVFkgb3NjciAiJiN4MjEzNDsiPjwhRU5USVRZIGFsZWZzeW0gIiYjeDIxMzU7Ij48IUVOVElUWSBhbGVwaCAiJiN4MjEzNTsiPjwhRU5USVRZIGJldGggIiYjeDIxMzY7Ij48IUVOVElUWSBnaW1lbCAiJiN4MjEzNzsiPjwhRU5USVRZIGRhbGV0aCAiJiN4MjEzODsiPjwhRU5USVRZIENhcGl0YWxEaWZmZXJlbnRpYWxEICImI3gyMTQ1OyI%2BPCFFTlRJVFkgREQgIiYjeDIxNDU7Ij48IUVOVElUWSBEaWZmZXJlbnRpYWxEICImI3gyMTQ2OyI%2BPCFFTlRJVFkgZGQgIiYjeDIxNDY7Ij48IUVOVElUWSBFeHBvbmVudGlhbEUgIiYjeDIxNDc7Ij48IUVOVElUWSBleHBvbmVudGlhbGUgIiYjeDIxNDc7Ij48IUVOVElUWSBlZSAiJiN4MjE0NzsiPjwhRU5USVRZIEltYWdpbmFyeUkgIiYjeDIxNDg7Ij48IUVOVElUWSBpaSAiJiN4MjE0ODsiPjwhRU5USVRZIGZyYWMxMyAiJiN4MjE1MzsiPjwhRU5USVRZIGZyYWMyMyAiJiN4MjE1NDsiPjwhRU5USVRZIGZyYWMxNSAiJiN4MjE1NTsiPjwhRU5USVRZIGZyYWMyNSAiJiN4MjE1NjsiPjwhRU5USVRZIGZyYWMzNSAiJiN4MjE1NzsiPjwhRU5USVRZIGZyYWM0NSAiJiN4MjE1ODsiPjwhRU5USVRZIGZyYWMxNiAiJiN4MjE1OTsiPjwhRU5USVRZIGZyYWM1NiAiJiN4MjE1QTsiPjwhRU5USVRZIGZyYWMxOCAiJiN4MjE1QjsiPjwhRU5USVRZIGZyYWMzOCAiJiN4MjE1QzsiPjwhRU5USVRZIGZyYWM1OCAiJiN4MjE1RDsiPjwhRU5USVRZIGZyYWM3OCAiJiN4MjE1RTsiPjwhRU5USVRZIGxhcnIgIiYjeDIxOTA7Ij48IUVOVElUWSBsZWZ0YXJyb3cgIiYjeDIxOTA7Ij48IUVOVElUWSBMZWZ0QXJyb3cgIiYjeDIxOTA7Ij48IUVOVElUWSBzbGFyciAiJiN4MjE5MDsiPjwhRU5USVRZIFNob3J0TGVmdEFycm93ICImI3gyMTkwOyI%2BPCFFTlRJVFkgdWFyciAiJiN4MjE5MTsiPjwhRU5USVRZIHVwYXJyb3cgIiYjeDIxOTE7Ij48IUVOVElUWSBVcEFycm93ICImI3gyMTkxOyI%2BPCFFTlRJVFkgU2hvcnRVcEFycm93ICImI3gyMTkxOyI%2BPCFFTlRJVFkgcmFyciAiJiN4MjE5MjsiPjwhRU5USVRZIHJpZ2h0YXJyb3cgIiYjeDIxOTI7Ij48IUVOVElUWSBSaWdodEFycm93ICImI3gyMTkyOyI%2BPCFFTlRJVFkgc3JhcnIgIiYjeDIxOTI7Ij48IUVOVElUWSBTaG9ydFJpZ2h0QXJyb3cgIiYjeDIxOTI7Ij48IUVOVElUWSBkYXJyICImI3gyMTkzOyI%2BPCFFTlRJVFkgZG93bmFycm93ICImI3gyMTkzOyI%2BPCFFTlRJVFkgRG93bkFycm93ICImI3gyMTkzOyI%2BPCFFTlRJVFkgU2hvcnREb3duQXJyb3cgIiYjeDIxOTM7Ij48IUVOVElUWSBoYXJyICImI3gyMTk0OyI%2BPCFFTlRJVFkgbGVmdHJpZ2h0YXJyb3cgIiYjeDIxOTQ7Ij48IUVOVElUWSBMZWZ0UmlnaHRBcnJvdyAiJiN4MjE5NDsiPjwhRU5USVRZIHZhcnIgIiYjeDIxOTU7Ij48IUVOVElUWSB1cGRvd25hcnJvdyAiJiN4MjE5NTsiPjwhRU5USVRZIFVwRG93bkFycm93ICImI3gyMTk1OyI%2BPCFFTlRJVFkgbndhcnIgIiYjeDIxOTY7Ij48IUVOVElUWSBVcHBlckxlZnRBcnJvdyAiJiN4MjE5NjsiPjwhRU5USVRZIG53YXJyb3cgIiYjeDIxOTY7Ij48IUVOVElUWSBuZWFyciAiJiN4MjE5NzsiPjwhRU5USVRZIFVwcGVyUmlnaHRBcnJvdyAiJiN4MjE5NzsiPjwhRU5USVRZIG5lYXJyb3cgIiYjeDIxOTc7Ij48IUVOVElUWSBzZWFyciAiJiN4MjE5ODsiPjwhRU5USVRZIHNlYXJyb3cgIiYjeDIxOTg7Ij48IUVOVElUWSBMb3dlclJpZ2h0QXJyb3cgIiYjeDIxOTg7Ij48IUVOVElUWSBzd2FyciAiJiN4MjE5OTsiPjwhRU5USVRZIHN3YXJyb3cgIiYjeDIxOTk7Ij48IUVOVElUWSBMb3dlckxlZnRBcnJvdyAiJiN4MjE5OTsiPjwhRU5USVRZIG5sYXJyICImI3gyMTlBOyI%2BPCFFTlRJVFkgbmxlZnRhcnJvdyAiJiN4MjE5QTsiPjwhRU5USVRZIG5yYXJyICImI3gyMTlCOyI%2BPCFFTlRJVFkgbnJpZ2h0YXJyb3cgIiYjeDIxOUI7Ij48IUVOVElUWSByYXJydyAiJiN4MjE5RDsiPjwhRU5USVRZIHJpZ2h0c3F1aWdhcnJvdyAiJiN4MjE5RDsiPjwhRU5USVRZIG5yYXJydyAiJiN4MjE5RDsmI3gzMzg7Ij48IUVOVElUWSBMYXJyICImI3gyMTlFOyI%2BPCFFTlRJVFkgdHdvaGVhZGxlZnRhcnJvdyAiJiN4MjE5RTsiPjwhRU5USVRZIFVhcnIgIiYjeDIxOUY7Ij48IUVOVElUWSBSYXJyICImI3gyMUEwOyI%2BPCFFTlRJVFkgdHdvaGVhZHJpZ2h0YXJyb3cgIiYjeDIxQTA7Ij48IUVOVElUWSBEYXJyICImI3gyMUExOyI%2BPCFFTlRJVFkgbGFycnRsICImI3gyMUEyOyI%2BPCFFTlRJVFkgbGVmdGFycm93dGFpbCAiJiN4MjFBMjsiPjwhRU5USVRZIHJhcnJ0bCAiJiN4MjFBMzsiPjwhRU5USVRZIHJpZ2h0YXJyb3d0YWlsICImI3gyMUEzOyI%2BPCFFTlRJVFkgTGVmdFRlZUFycm93ICImI3gyMUE0OyI%2BPCFFTlRJVFkgbWFwc3RvbGVmdCAiJiN4MjFBNDsiPjwhRU5USVRZIFVwVGVlQXJyb3cgIiYjeDIxQTU7Ij48IUVOVElUWSBtYXBzdG91cCAiJiN4MjFBNTsiPjwhRU5USVRZIG1hcCAiJiN4MjFBNjsiPjwhRU5USVRZIFJpZ2h0VGVlQXJyb3cgIiYjeDIxQTY7Ij48IUVOVElUWSBtYXBzdG8gIiYjeDIxQTY7Ij48IUVOVElUWSBEb3duVGVlQXJyb3cgIiYjeDIxQTc7Ij48IUVOVElUWSBtYXBzdG9kb3duICImI3gyMUE3OyI%2BPCFFTlRJVFkgbGFycmhrICImI3gyMUE5OyI%2BPCFFTlRJVFkgaG9va2xlZnRhcnJvdyAiJiN4MjFBOTsiPjwhRU5USVRZIHJhcnJoayAiJiN4MjFBQTsiPjwhRU5USVRZIGhvb2tyaWdodGFycm93ICImI3gyMUFBOyI%2BPCFFTlRJVFkgbGFycmxwICImI3gyMUFCOyI%2BPCFFTlRJVFkgbG9vcGFycm93bGVmdCAiJiN4MjFBQjsiPjwhRU5USVRZIHJhcnJscCAiJiN4MjFBQzsiPjwhRU5USVRZIGxvb3BhcnJvd3JpZ2h0ICImI3gyMUFDOyI%2BPCFFTlRJVFkgaGFycncgIiYjeDIxQUQ7Ij48IUVOVElUWSBsZWZ0cmlnaHRzcXVpZ2Fycm93ICImI3gyMUFEOyI%2BPCFFTlRJVFkgbmhhcnIgIiYjeDIxQUU7Ij48IUVOVElUWSBubGVmdHJpZ2h0YXJyb3cgIiYjeDIxQUU7Ij48IUVOVElUWSBsc2ggIiYjeDIxQjA7Ij48IUVOVElUWSBMc2ggIiYjeDIxQjA7Ij48IUVOVElUWSByc2ggIiYjeDIxQjE7Ij48IUVOVElUWSBSc2ggIiYjeDIxQjE7Ij48IUVOVElUWSBsZHNoICImI3gyMUIyOyI%2BPCFFTlRJVFkgcmRzaCAiJiN4MjFCMzsiPjwhRU5USVRZIGNyYXJyICImI3gyMUI1OyI%2BPCFFTlRJVFkgY3VsYXJyICImI3gyMUI2OyI%2BPCFFTlRJVFkgY3VydmVhcnJvd2xlZnQgIiYjeDIxQjY7Ij48IUVOVElUWSBjdXJhcnIgIiYjeDIxQjc7Ij48IUVOVElUWSBjdXJ2ZWFycm93cmlnaHQgIiYjeDIxQjc7Ij48IUVOVElUWSBvbGFyciAiJiN4MjFCQTsiPjwhRU5USVRZIGNpcmNsZWFycm93bGVmdCAiJiN4MjFCQTsiPjwhRU5USVRZIG9yYXJyICImI3gyMUJCOyI%2BPCFFTlRJVFkgY2lyY2xlYXJyb3dyaWdodCAiJiN4MjFCQjsiPjwhRU5USVRZIGxoYXJ1ICImI3gyMUJDOyI%2BPCFFTlRJVFkgTGVmdFZlY3RvciAiJiN4MjFCQzsiPjwhRU5USVRZIGxlZnRoYXJwb29udXAgIiYjeDIxQkM7Ij48IUVOVElUWSBsaGFyZCAiJiN4MjFCRDsiPjwhRU5USVRZIGxlZnRoYXJwb29uZG93biAiJiN4MjFCRDsiPjwhRU5USVRZIERvd25MZWZ0VmVjdG9yICImI3gyMUJEOyI%2BPCFFTlRJVFkgdWhhcnIgIiYjeDIxQkU7Ij48IUVOVElUWSB1cGhhcnBvb25yaWdodCAiJiN4MjFCRTsiPjwhRU5USVRZIFJpZ2h0VXBWZWN0b3IgIiYjeDIxQkU7Ij48IUVOVElUWSB1aGFybCAiJiN4MjFCRjsiPjwhRU5USVRZIHVwaGFycG9vbmxlZnQgIiYjeDIxQkY7Ij48IUVOVElUWSBMZWZ0VXBWZWN0b3IgIiYjeDIxQkY7Ij48IUVOVElUWSByaGFydSAiJiN4MjFDMDsiPjwhRU5USVRZIFJpZ2h0VmVjdG9yICImI3gyMUMwOyI%2BPCFFTlRJVFkgcmlnaHRoYXJwb29udXAgIiYjeDIxQzA7Ij48IUVOVElUWSByaGFyZCAiJiN4MjFDMTsiPjwhRU5USVRZIHJpZ2h0aGFycG9vbmRvd24gIiYjeDIxQzE7Ij48IUVOVElUWSBEb3duUmlnaHRWZWN0b3IgIiYjeDIxQzE7Ij48IUVOVElUWSBkaGFyciAiJiN4MjFDMjsiPjwhRU5USVRZIFJpZ2h0RG93blZlY3RvciAiJiN4MjFDMjsiPjwhRU5USVRZIGRvd25oYXJwb29ucmlnaHQgIiYjeDIxQzI7Ij48IUVOVElUWSBkaGFybCAiJiN4MjFDMzsiPjwhRU5USVRZIExlZnREb3duVmVjdG9yICImI3gyMUMzOyI%2BPCFFTlRJVFkgZG93bmhhcnBvb25sZWZ0ICImI3gyMUMzOyI%2BPCFFTlRJVFkgcmxhcnIgIiYjeDIxQzQ7Ij48IUVOVElUWSByaWdodGxlZnRhcnJvd3MgIiYjeDIxQzQ7Ij48IUVOVElUWSBSaWdodEFycm93TGVmdEFycm93ICImI3gyMUM0OyI%2BPCFFTlRJVFkgdWRhcnIgIiYjeDIxQzU7Ij48IUVOVElUWSBVcEFycm93RG93bkFycm93ICImI3gyMUM1OyI%2BPCFFTlRJVFkgbHJhcnIgIiYjeDIxQzY7Ij48IUVOVElUWSBsZWZ0cmlnaHRhcnJvd3MgIiYjeDIxQzY7Ij48IUVOVElUWSBMZWZ0QXJyb3dSaWdodEFycm93ICImI3gyMUM2OyI%2BPCFFTlRJVFkgbGxhcnIgIiYjeDIxQzc7Ij48IUVOVElUWSBsZWZ0bGVmdGFycm93cyAiJiN4MjFDNzsiPjwhRU5USVRZIHV1YXJyICImI3gyMUM4OyI%2BPCFFTlRJVFkgdXB1cGFycm93cyAiJiN4MjFDODsiPjwhRU5USVRZIHJyYXJyICImI3gyMUM5OyI%2BPCFFTlRJVFkgcmlnaHRyaWdodGFycm93cyAiJiN4MjFDOTsiPjwhRU5USVRZIGRkYXJyICImI3gyMUNBOyI%2BPCFFTlRJVFkgZG93bmRvd25hcnJvd3MgIiYjeDIxQ0E7Ij48IUVOVElUWSBscmhhciAiJiN4MjFDQjsiPjwhRU5USVRZIFJldmVyc2VFcXVpbGlicml1bSAiJiN4MjFDQjsiPjwhRU5USVRZIGxlZnRyaWdodGhhcnBvb25zICImI3gyMUNCOyI%2BPCFFTlRJVFkgcmxoYXIgIiYjeDIxQ0M7Ij48IUVOVElUWSByaWdodGxlZnRoYXJwb29ucyAiJiN4MjFDQzsiPjwhRU5USVRZIEVxdWlsaWJyaXVtICImI3gyMUNDOyI%2BPCFFTlRJVFkgbmxBcnIgIiYjeDIxQ0Q7Ij48IUVOVElUWSBuTGVmdGFycm93ICImI3gyMUNEOyI%2BPCFFTlRJVFkgbmhBcnIgIiYjeDIxQ0U7Ij48IUVOVElUWSBuTGVmdHJpZ2h0YXJyb3cgIiYjeDIxQ0U7Ij48IUVOVElUWSBuckFyciAiJiN4MjFDRjsiPjwhRU5USVRZIG5SaWdodGFycm93ICImI3gyMUNGOyI%2BPCFFTlRJVFkgbEFyciAiJiN4MjFEMDsiPjwhRU5USVRZIExlZnRhcnJvdyAiJiN4MjFEMDsiPjwhRU5USVRZIERvdWJsZUxlZnRBcnJvdyAiJiN4MjFEMDsiPjwhRU5USVRZIHVBcnIgIiYjeDIxRDE7Ij48IUVOVElUWSBVcGFycm93ICImI3gyMUQxOyI%2BPCFFTlRJVFkgRG91YmxlVXBBcnJvdyAiJiN4MjFEMTsiPjwhRU5USVRZIHJBcnIgIiYjeDIxRDI7Ij48IUVOVElUWSBSaWdodGFycm93ICImI3gyMUQyOyI%2BPCFFTlRJVFkgSW1wbGllcyAiJiN4MjFEMjsiPjwhRU5USVRZIERvdWJsZVJpZ2h0QXJyb3cgIiYjeDIxRDI7Ij48IUVOVElUWSBkQXJyICImI3gyMUQzOyI%2BPCFFTlRJVFkgRG93bmFycm93ICImI3gyMUQzOyI%2BPCFFTlRJVFkgRG91YmxlRG93bkFycm93ICImI3gyMUQzOyI%2BPCFFTlRJVFkgaEFyciAiJiN4MjFENDsiPjwhRU5USVRZIExlZnRyaWdodGFycm93ICImI3gyMUQ0OyI%2BPCFFTlRJVFkgRG91YmxlTGVmdFJpZ2h0QXJyb3cgIiYjeDIxRDQ7Ij48IUVOVElUWSBpZmYgIiYjeDIxRDQ7Ij48IUVOVElUWSB2QXJyICImI3gyMUQ1OyI%2BPCFFTlRJVFkgVXBkb3duYXJyb3cgIiYjeDIxRDU7Ij48IUVOVElUWSBEb3VibGVVcERvd25BcnJvdyAiJiN4MjFENTsiPjwhRU5USVRZIG53QXJyICImI3gyMUQ2OyI%2BPCFFTlRJVFkgbmVBcnIgIiYjeDIxRDc7Ij48IUVOVElUWSBzZUFyciAiJiN4MjFEODsiPjwhRU5USVRZIHN3QXJyICImI3gyMUQ5OyI%2BPCFFTlRJVFkgbEFhcnIgIiYjeDIxREE7Ij48IUVOVElUWSBMbGVmdGFycm93ICImI3gyMURBOyI%2BPCFFTlRJVFkgckFhcnIgIiYjeDIxREI7Ij48IUVOVElUWSBScmlnaHRhcnJvdyAiJiN4MjFEQjsiPjwhRU5USVRZIHppZ3JhcnIgIiYjeDIxREQ7Ij48IUVOVElUWSBsYXJyYiAiJiN4MjFFNDsiPjwhRU5USVRZIExlZnRBcnJvd0JhciAiJiN4MjFFNDsiPjwhRU5USVRZIHJhcnJiICImI3gyMUU1OyI%2BPCFFTlRJVFkgUmlnaHRBcnJvd0JhciAiJiN4MjFFNTsiPjwhRU5USVRZIGR1YXJyICImI3gyMUY1OyI%2BPCFFTlRJVFkgRG93bkFycm93VXBBcnJvdyAiJiN4MjFGNTsiPjwhRU5USVRZIGxvYXJyICImI3gyMUZEOyI%2BPCFFTlRJVFkgcm9hcnIgIiYjeDIxRkU7Ij48IUVOVElUWSBob2FyciAiJiN4MjFGRjsiPjwhRU5USVRZIGZvcmFsbCAiJiN4MjIwMDsiPjwhRU5USVRZIEZvckFsbCAiJiN4MjIwMDsiPjwhRU5USVRZIGNvbXAgIiYjeDIyMDE7Ij48IUVOVElUWSBjb21wbGVtZW50ICImI3gyMjAxOyI%2BPCFFTlRJVFkgcGFydCAiJiN4MjIwMjsiPjwhRU5USVRZIFBhcnRpYWxEICImI3gyMjAyOyI%2BPCFFTlRJVFkgbnBhcnQgIiYjeDIyMDI7JiN4MzM4OyI%2BPCFFTlRJVFkgZXhpc3QgIiYjeDIyMDM7Ij48IUVOVElUWSBFeGlzdHMgIiYjeDIyMDM7Ij48IUVOVElUWSBuZXhpc3QgIiYjeDIyMDQ7Ij48IUVOVElUWSBOb3RFeGlzdHMgIiYjeDIyMDQ7Ij48IUVOVElUWSBuZXhpc3RzICImI3gyMjA0OyI%2BPCFFTlRJVFkgZW1wdHkgIiYjeDIyMDU7Ij48IUVOVElUWSBlbXB0eXNldCAiJiN4MjIwNTsiPjwhRU5USVRZIGVtcHR5diAiJiN4MjIwNTsiPjwhRU5USVRZIHZhcm5vdGhpbmcgIiYjeDIyMDU7Ij48IUVOVElUWSBuYWJsYSAiJiN4MjIwNzsiPjwhRU5USVRZIERlbCAiJiN4MjIwNzsiPjwhRU5USVRZIGlzaW4gIiYjeDIyMDg7Ij48IUVOVElUWSBpc2ludiAiJiN4MjIwODsiPjwhRU5USVRZIEVsZW1lbnQgIiYjeDIyMDg7Ij48IUVOVElUWSBpbiAiJiN4MjIwODsiPjwhRU5USVRZIG5vdGluICImI3gyMjA5OyI%2BPCFFTlRJVFkgTm90RWxlbWVudCAiJiN4MjIwOTsiPjwhRU5USVRZIG5vdGludmEgIiYjeDIyMDk7Ij48IUVOVElUWSBuaXYgIiYjeDIyMEI7Ij48IUVOVElUWSBSZXZlcnNlRWxlbWVudCAiJiN4MjIwQjsiPjwhRU5USVRZIG5pICImI3gyMjBCOyI%2BPCFFTlRJVFkgU3VjaFRoYXQgIiYjeDIyMEI7Ij48IUVOVElUWSBub3RuaSAiJiN4MjIwQzsiPjwhRU5USVRZIG5vdG5pdmEgIiYjeDIyMEM7Ij48IUVOVElUWSBOb3RSZXZlcnNlRWxlbWVudCAiJiN4MjIwQzsiPjwhRU5USVRZIHByb2QgIiYjeDIyMEY7Ij48IUVOVElUWSBQcm9kdWN0ICImI3gyMjBGOyI%2BPCFFTlRJVFkgY29wcm9kICImI3gyMjEwOyI%2BPCFFTlRJVFkgQ29wcm9kdWN0ICImI3gyMjEwOyI%2BPCFFTlRJVFkgc3VtICImI3gyMjExOyI%2BPCFFTlRJVFkgU3VtICImI3gyMjExOyI%2BPCFFTlRJVFkgbWludXMgIiYjeDIyMTI7Ij48IUVOVElUWSBtbnBsdXMgIiYjeDIyMTM7Ij48IUVOVElUWSBtcCAiJiN4MjIxMzsiPjwhRU5USVRZIE1pbnVzUGx1cyAiJiN4MjIxMzsiPjwhRU5USVRZIHBsdXNkbyAiJiN4MjIxNDsiPjwhRU5USVRZIGRvdHBsdXMgIiYjeDIyMTQ7Ij48IUVOVElUWSBzZXRtbiAiJiN4MjIxNjsiPjwhRU5USVRZIHNldG1pbnVzICImI3gyMjE2OyI%2BPCFFTlRJVFkgQmFja3NsYXNoICImI3gyMjE2OyI%2BPCFFTlRJVFkgc3NldG1uICImI3gyMjE2OyI%2BPCFFTlRJVFkgc21hbGxzZXRtaW51cyAiJiN4MjIxNjsiPjwhRU5USVRZIGxvd2FzdCAiJiN4MjIxNzsiPjwhRU5USVRZIGNvbXBmbiAiJiN4MjIxODsiPjwhRU5USVRZIFNtYWxsQ2lyY2xlICImI3gyMjE4OyI%2BPCFFTlRJVFkgcmFkaWMgIiYjeDIyMUE7Ij48IUVOVElUWSBTcXJ0ICImI3gyMjFBOyI%2BPCFFTlRJVFkgcHJvcCAiJiN4MjIxRDsiPjwhRU5USVRZIHByb3B0byAiJiN4MjIxRDsiPjwhRU5USVRZIFByb3BvcnRpb25hbCAiJiN4MjIxRDsiPjwhRU5USVRZIHZwcm9wICImI3gyMjFEOyI%2BPCFFTlRJVFkgdmFycHJvcHRvICImI3gyMjFEOyI%2BPCFFTlRJVFkgaW5maW4gIiYjeDIyMUU7Ij48IUVOVElUWSBhbmdydCAiJiN4MjIxRjsiPjwhRU5USVRZIGFuZyAiJiN4MjIyMDsiPjwhRU5USVRZIGFuZ2xlICImI3gyMjIwOyI%2BPCFFTlRJVFkgbmFuZyAiJiN4MjIyMDsmI3gyMEQyOyI%2BPCFFTlRJVFkgYW5nbXNkICImI3gyMjIxOyI%2BPCFFTlRJVFkgbWVhc3VyZWRhbmdsZSAiJiN4MjIyMTsiPjwhRU5USVRZIGFuZ3NwaCAiJiN4MjIyMjsiPjwhRU5USVRZIG1pZCAiJiN4MjIyMzsiPjwhRU5USVRZIFZlcnRpY2FsQmFyICImI3gyMjIzOyI%2BPCFFTlRJVFkgc21pZCAiJiN4MjIyMzsiPjwhRU5USVRZIHNob3J0bWlkICImI3gyMjIzOyI%2BPCFFTlRJVFkgbm1pZCAiJiN4MjIyNDsiPjwhRU5USVRZIE5vdFZlcnRpY2FsQmFyICImI3gyMjI0OyI%2BPCFFTlRJVFkgbnNtaWQgIiYjeDIyMjQ7Ij48IUVOVElUWSBuc2hvcnRtaWQgIiYjeDIyMjQ7Ij48IUVOVElUWSBwYXIgIiYjeDIyMjU7Ij48IUVOVElUWSBwYXJhbGxlbCAiJiN4MjIyNTsiPjwhRU5USVRZIERvdWJsZVZlcnRpY2FsQmFyICImI3gyMjI1OyI%2BPCFFTlRJVFkgc3BhciAiJiN4MjIyNTsiPjwhRU5USVRZIHNob3J0cGFyYWxsZWwgIiYjeDIyMjU7Ij48IUVOVElUWSBucGFyICImI3gyMjI2OyI%2BPCFFTlRJVFkgbnBhcmFsbGVsICImI3gyMjI2OyI%2BPCFFTlRJVFkgTm90RG91YmxlVmVydGljYWxCYXIgIiYjeDIyMjY7Ij48IUVOVElUWSBuc3BhciAiJiN4MjIyNjsiPjwhRU5USVRZIG5zaG9ydHBhcmFsbGVsICImI3gyMjI2OyI%2BPCFFTlRJVFkgYW5kICImI3gyMjI3OyI%2BPCFFTlRJVFkgd2VkZ2UgIiYjeDIyMjc7Ij48IUVOVElUWSBvciAiJiN4MjIyODsiPjwhRU5USVRZIHZlZSAiJiN4MjIyODsiPjwhRU5USVRZIGNhcCAiJiN4MjIyOTsiPjwhRU5USVRZIGNhcHMgIiYjeDIyMjk7JiN4RkUwMDsiPjwhRU5USVRZIGN1cCAiJiN4MjIyQTsiPjwhRU5USVRZIGN1cHMgIiYjeDIyMkE7JiN4RkUwMDsiPjwhRU5USVRZIGludCAiJiN4MjIyQjsiPjwhRU5USVRZIEludGVncmFsICImI3gyMjJCOyI%2BPCFFTlRJVFkgSW50ICImI3gyMjJDOyI%2BPCFFTlRJVFkgdGludCAiJiN4MjIyRDsiPjwhRU5USVRZIGlpaW50ICImI3gyMjJEOyI%2BPCFFTlRJVFkgY29uaW50ICImI3gyMjJFOyI%2BPCFFTlRJVFkgb2ludCAiJiN4MjIyRTsiPjwhRU5USVRZIENvbnRvdXJJbnRlZ3JhbCAiJiN4MjIyRTsiPjwhRU5USVRZIENvbmludCAiJiN4MjIyRjsiPjwhRU5USVRZIERvdWJsZUNvbnRvdXJJbnRlZ3JhbCAiJiN4MjIyRjsiPjwhRU5USVRZIENjb25pbnQgIiYjeDIyMzA7Ij48IUVOVElUWSBjd2ludCAiJiN4MjIzMTsiPjwhRU5USVRZIGN3Y29uaW50ICImI3gyMjMyOyI%2BPCFFTlRJVFkgQ2xvY2t3aXNlQ29udG91ckludGVncmFsICImI3gyMjMyOyI%2BPCFFTlRJVFkgYXdjb25pbnQgIiYjeDIyMzM7Ij48IUVOVElUWSBDb3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsICImI3gyMjMzOyI%2BPCFFTlRJVFkgdGhlcmU0ICImI3gyMjM0OyI%2BPCFFTlRJVFkgdGhlcmVmb3JlICImI3gyMjM0OyI%2BPCFFTlRJVFkgVGhlcmVmb3JlICImI3gyMjM0OyI%2BPCFFTlRJVFkgYmVjYXVzICImI3gyMjM1OyI%2BPCFFTlRJVFkgYmVjYXVzZSAiJiN4MjIzNTsiPjwhRU5USVRZIEJlY2F1c2UgIiYjeDIyMzU7Ij48IUVOVElUWSByYXRpbyAiJiN4MjIzNjsiPjwhRU5USVRZIENvbG9uICImI3gyMjM3OyI%2BPCFFTlRJVFkgUHJvcG9ydGlvbiAiJiN4MjIzNzsiPjwhRU5USVRZIG1pbnVzZCAiJiN4MjIzODsiPjwhRU5USVRZIGRvdG1pbnVzICImI3gyMjM4OyI%2BPCFFTlRJVFkgbUREb3QgIiYjeDIyM0E7Ij48IUVOVElUWSBob210aHQgIiYjeDIyM0I7Ij48IUVOVElUWSBzaW0gIiYjeDIyM0M7Ij48IUVOVElUWSBUaWxkZSAiJiN4MjIzQzsiPjwhRU5USVRZIHRoa3NpbSAiJiN4MjIzQzsiPjwhRU5USVRZIHRoaWNrc2ltICImI3gyMjNDOyI%2BPCFFTlRJVFkgbnZzaW0gIiYjeDIyM0M7JiN4MjBEMjsiPjwhRU5USVRZIGJzaW0gIiYjeDIyM0Q7Ij48IUVOVElUWSBiYWNrc2ltICImI3gyMjNEOyI%2BPCFFTlRJVFkgcmFjZSAiJiN4MjIzRDsmI3gzMzE7Ij48IUVOVElUWSBhYyAiJiN4MjIzRTsiPjwhRU5USVRZIG1zdHBvcyAiJiN4MjIzRTsiPjwhRU5USVRZIGFjRSAiJiN4MjIzRTsmI3gzMzM7Ij48IUVOVElUWSBhY2QgIiYjeDIyM0Y7Ij48IUVOVElUWSB3cmVhdGggIiYjeDIyNDA7Ij48IUVOVElUWSBWZXJ0aWNhbFRpbGRlICImI3gyMjQwOyI%2BPCFFTlRJVFkgd3IgIiYjeDIyNDA7Ij48IUVOVElUWSBuc2ltICImI3gyMjQxOyI%2BPCFFTlRJVFkgTm90VGlsZGUgIiYjeDIyNDE7Ij48IUVOVElUWSBlc2ltICImI3gyMjQyOyI%2BPCFFTlRJVFkgRXF1YWxUaWxkZSAiJiN4MjI0MjsiPjwhRU5USVRZIGVxc2ltICImI3gyMjQyOyI%2BPCFFTlRJVFkgTm90RXF1YWxUaWxkZSAiJiN4MjI0MjsmI3gzMzg7Ij48IUVOVElUWSBuZXNpbSAiJiN4MjI0MjsmI3gzMzg7Ij48IUVOVElUWSBzaW1lICImI3gyMjQzOyI%2BPCFFTlRJVFkgVGlsZGVFcXVhbCAiJiN4MjI0MzsiPjwhRU5USVRZIHNpbWVxICImI3gyMjQzOyI%2BPCFFTlRJVFkgbnNpbWUgIiYjeDIyNDQ7Ij48IUVOVElUWSBuc2ltZXEgIiYjeDIyNDQ7Ij48IUVOVElUWSBOb3RUaWxkZUVxdWFsICImI3gyMjQ0OyI%2BPCFFTlRJVFkgY29uZyAiJiN4MjI0NTsiPjwhRU5USVRZIFRpbGRlRnVsbEVxdWFsICImI3gyMjQ1OyI%2BPCFFTlRJVFkgc2ltbmUgIiYjeDIyNDY7Ij48IUVOVElUWSBuY29uZyAiJiN4MjI0NzsiPjwhRU5USVRZIE5vdFRpbGRlRnVsbEVxdWFsICImI3gyMjQ3OyI%2BPCFFTlRJVFkgYXN5bXAgIiYjeDIyNDg7Ij48IUVOVElUWSBhcCAiJiN4MjI0ODsiPjwhRU5USVRZIFRpbGRlVGlsZGUgIiYjeDIyNDg7Ij48IUVOVElUWSBhcHByb3ggIiYjeDIyNDg7Ij48IUVOVElUWSB0aGthcCAiJiN4MjI0ODsiPjwhRU5USVRZIHRoaWNrYXBwcm94ICImI3gyMjQ4OyI%2BPCFFTlRJVFkgbmFwICImI3gyMjQ5OyI%2BPCFFTlRJVFkgTm90VGlsZGVUaWxkZSAiJiN4MjI0OTsiPjwhRU5USVRZIG5hcHByb3ggIiYjeDIyNDk7Ij48IUVOVElUWSBhcGUgIiYjeDIyNEE7Ij48IUVOVElUWSBhcHByb3hlcSAiJiN4MjI0QTsiPjwhRU5USVRZIGFwaWQgIiYjeDIyNEI7Ij48IUVOVElUWSBuYXBpZCAiJiN4MjI0QjsmI3gzMzg7Ij48IUVOVElUWSBiY29uZyAiJiN4MjI0QzsiPjwhRU5USVRZIGJhY2tjb25nICImI3gyMjRDOyI%2BPCFFTlRJVFkgYXN5bXBlcSAiJiN4MjI0RDsiPjwhRU5USVRZIEN1cENhcCAiJiN4MjI0RDsiPjwhRU5USVRZIG52YXAgIiYjeDIyNEQ7JiN4MjBEMjsiPjwhRU5USVRZIGJ1bXAgIiYjeDIyNEU7Ij48IUVOVElUWSBIdW1wRG93bkh1bXAgIiYjeDIyNEU7Ij48IUVOVElUWSBCdW1wZXEgIiYjeDIyNEU7Ij48IUVOVElUWSBOb3RIdW1wRG93bkh1bXAgIiYjeDIyNEU7JiN4MzM4OyI%2BPCFFTlRJVFkgbmJ1bXAgIiYjeDIyNEU7JiN4MzM4OyI%2BPCFFTlRJVFkgYnVtcGUgIiYjeDIyNEY7Ij48IUVOVElUWSBIdW1wRXF1YWwgIiYjeDIyNEY7Ij48IUVOVElUWSBidW1wZXEgIiYjeDIyNEY7Ij48IUVOVElUWSBuYnVtcGUgIiYjeDIyNEY7JiN4MzM4OyI%2BPCFFTlRJVFkgTm90SHVtcEVxdWFsICImI3gyMjRGOyYjeDMzODsiPjwhRU5USVRZIGVzZG90ICImI3gyMjUwOyI%2BPCFFTlRJVFkgRG90RXF1YWwgIiYjeDIyNTA7Ij48IUVOVElUWSBkb3RlcSAiJiN4MjI1MDsiPjwhRU5USVRZIG5lZG90ICImI3gyMjUwOyYjeDMzODsiPjwhRU5USVRZIGVEb3QgIiYjeDIyNTE7Ij48IUVOVElUWSBkb3RlcWRvdCAiJiN4MjI1MTsiPjwhRU5USVRZIGVmRG90ICImI3gyMjUyOyI%2BPCFFTlRJVFkgZmFsbGluZ2RvdHNlcSAiJiN4MjI1MjsiPjwhRU5USVRZIGVyRG90ICImI3gyMjUzOyI%2BPCFFTlRJVFkgcmlzaW5nZG90c2VxICImI3gyMjUzOyI%2BPCFFTlRJVFkgY29sb25lICImI3gyMjU0OyI%2BPCFFTlRJVFkgY29sb25lcSAiJiN4MjI1NDsiPjwhRU5USVRZIEFzc2lnbiAiJiN4MjI1NDsiPjwhRU5USVRZIGVjb2xvbiAiJiN4MjI1NTsiPjwhRU5USVRZIGVxY29sb24gIiYjeDIyNTU7Ij48IUVOVElUWSBlY2lyICImI3gyMjU2OyI%2BPCFFTlRJVFkgZXFjaXJjICImI3gyMjU2OyI%2BPCFFTlRJVFkgY2lyZSAiJiN4MjI1NzsiPjwhRU5USVRZIGNpcmNlcSAiJiN4MjI1NzsiPjwhRU5USVRZIHdlZGdlcSAiJiN4MjI1OTsiPjwhRU5USVRZIHZlZWVxICImI3gyMjVBOyI%2BPCFFTlRJVFkgdHJpZSAiJiN4MjI1QzsiPjwhRU5USVRZIHRyaWFuZ2xlcSAiJiN4MjI1QzsiPjwhRU5USVRZIGVxdWVzdCAiJiN4MjI1RjsiPjwhRU5USVRZIHF1ZXN0ZXEgIiYjeDIyNUY7Ij48IUVOVElUWSBuZSAiJiN4MjI2MDsiPjwhRU5USVRZIE5vdEVxdWFsICImI3gyMjYwOyI%2BPCFFTlRJVFkgZXF1aXYgIiYjeDIyNjE7Ij48IUVOVElUWSBDb25ncnVlbnQgIiYjeDIyNjE7Ij48IUVOVElUWSBibmVxdWl2ICImI3gyMjYxOyYjeDIwRTU7Ij48IUVOVElUWSBuZXF1aXYgIiYjeDIyNjI7Ij48IUVOVElUWSBOb3RDb25ncnVlbnQgIiYjeDIyNjI7Ij48IUVOVElUWSBsZSAiJiN4MjI2NDsiPjwhRU5USVRZIGxlcSAiJiN4MjI2NDsiPjwhRU5USVRZIG52bGUgIiYjeDIyNjQ7JiN4MjBEMjsiPjwhRU5USVRZIGdlICImI3gyMjY1OyI%2BPCFFTlRJVFkgR3JlYXRlckVxdWFsICImI3gyMjY1OyI%2BPCFFTlRJVFkgZ2VxICImI3gyMjY1OyI%2BPCFFTlRJVFkgbnZnZSAiJiN4MjI2NTsmI3gyMEQyOyI%2BPCFFTlRJVFkgbEUgIiYjeDIyNjY7Ij48IUVOVElUWSBMZXNzRnVsbEVxdWFsICImI3gyMjY2OyI%2BPCFFTlRJVFkgbGVxcSAiJiN4MjI2NjsiPjwhRU5USVRZIG5sRSAiJiN4MjI2NjsmI3gzMzg7Ij48IUVOVElUWSBubGVxcSAiJiN4MjI2NjsmI3gzMzg7Ij48IUVOVElUWSBnRSAiJiN4MjI2NzsiPjwhRU5USVRZIEdyZWF0ZXJGdWxsRXF1YWwgIiYjeDIyNjc7Ij48IUVOVElUWSBnZXFxICImI3gyMjY3OyI%2BPCFFTlRJVFkgbmdFICImI3gyMjY3OyYjeDMzODsiPjwhRU5USVRZIG5nZXFxICImI3gyMjY3OyYjeDMzODsiPjwhRU5USVRZIE5vdEdyZWF0ZXJGdWxsRXF1YWwgIiYjeDIyNjc7JiN4MzM4OyI%2BPCFFTlRJVFkgbG5FICImI3gyMjY4OyI%2BPCFFTlRJVFkgbG5lcXEgIiYjeDIyNjg7Ij48IUVOVElUWSBsdm5FICImI3gyMjY4OyYjeEZFMDA7Ij48IUVOVElUWSBsdmVydG5lcXEgIiYjeDIyNjg7JiN4RkUwMDsiPjwhRU5USVRZIGduRSAiJiN4MjI2OTsiPjwhRU5USVRZIGduZXFxICImI3gyMjY5OyI%2BPCFFTlRJVFkgZ3ZuRSAiJiN4MjI2OTsmI3hGRTAwOyI%2BPCFFTlRJVFkgZ3ZlcnRuZXFxICImI3gyMjY5OyYjeEZFMDA7Ij48IUVOVElUWSBMdCAiJiN4MjI2QTsiPjwhRU5USVRZIE5lc3RlZExlc3NMZXNzICImI3gyMjZBOyI%2BPCFFTlRJVFkgbGwgIiYjeDIyNkE7Ij48IUVOVElUWSBuTHR2ICImI3gyMjZBOyYjeDMzODsiPjwhRU5USVRZIE5vdExlc3NMZXNzICImI3gyMjZBOyYjeDMzODsiPjwhRU5USVRZIG5MdCAiJiN4MjI2QTsmI3gyMEQyOyI%2BPCFFTlRJVFkgR3QgIiYjeDIyNkI7Ij48IUVOVElUWSBOZXN0ZWRHcmVhdGVyR3JlYXRlciAiJiN4MjI2QjsiPjwhRU5USVRZIGdnICImI3gyMjZCOyI%2BPCFFTlRJVFkgbkd0diAiJiN4MjI2QjsmI3gzMzg7Ij48IUVOVElUWSBOb3RHcmVhdGVyR3JlYXRlciAiJiN4MjI2QjsmI3gzMzg7Ij48IUVOVElUWSBuR3QgIiYjeDIyNkI7JiN4MjBEMjsiPjwhRU5USVRZIHR3aXh0ICImI3gyMjZDOyI%2BPCFFTlRJVFkgYmV0d2VlbiAiJiN4MjI2QzsiPjwhRU5USVRZIE5vdEN1cENhcCAiJiN4MjI2RDsiPjwhRU5USVRZIG5sdCAiJiN4MjI2RTsiPjwhRU5USVRZIE5vdExlc3MgIiYjeDIyNkU7Ij48IUVOVElUWSBubGVzcyAiJiN4MjI2RTsiPjwhRU5USVRZIG5ndCAiJiN4MjI2RjsiPjwhRU5USVRZIE5vdEdyZWF0ZXIgIiYjeDIyNkY7Ij48IUVOVElUWSBuZ3RyICImI3gyMjZGOyI%2BPCFFTlRJVFkgbmxlICImI3gyMjcwOyI%2BPCFFTlRJVFkgTm90TGVzc0VxdWFsICImI3gyMjcwOyI%2BPCFFTlRJVFkgbmxlcSAiJiN4MjI3MDsiPjwhRU5USVRZIG5nZSAiJiN4MjI3MTsiPjwhRU5USVRZIE5vdEdyZWF0ZXJFcXVhbCAiJiN4MjI3MTsiPjwhRU5USVRZIG5nZXEgIiYjeDIyNzE7Ij48IUVOVElUWSBsc2ltICImI3gyMjcyOyI%2BPCFFTlRJVFkgTGVzc1RpbGRlICImI3gyMjcyOyI%2BPCFFTlRJVFkgbGVzc3NpbSAiJiN4MjI3MjsiPjwhRU5USVRZIGdzaW0gIiYjeDIyNzM7Ij48IUVOVElUWSBndHJzaW0gIiYjeDIyNzM7Ij48IUVOVElUWSBHcmVhdGVyVGlsZGUgIiYjeDIyNzM7Ij48IUVOVElUWSBubHNpbSAiJiN4MjI3NDsiPjwhRU5USVRZIE5vdExlc3NUaWxkZSAiJiN4MjI3NDsiPjwhRU5USVRZIG5nc2ltICImI3gyMjc1OyI%2BPCFFTlRJVFkgTm90R3JlYXRlclRpbGRlICImI3gyMjc1OyI%2BPCFFTlRJVFkgbGcgIiYjeDIyNzY7Ij48IUVOVElUWSBsZXNzZ3RyICImI3gyMjc2OyI%2BPCFFTlRJVFkgTGVzc0dyZWF0ZXIgIiYjeDIyNzY7Ij48IUVOVElUWSBnbCAiJiN4MjI3NzsiPjwhRU5USVRZIGd0cmxlc3MgIiYjeDIyNzc7Ij48IUVOVElUWSBHcmVhdGVyTGVzcyAiJiN4MjI3NzsiPjwhRU5USVRZIG50bGcgIiYjeDIyNzg7Ij48IUVOVElUWSBOb3RMZXNzR3JlYXRlciAiJiN4MjI3ODsiPjwhRU5USVRZIG50Z2wgIiYjeDIyNzk7Ij48IUVOVElUWSBOb3RHcmVhdGVyTGVzcyAiJiN4MjI3OTsiPjwhRU5USVRZIHByICImI3gyMjdBOyI%2BPCFFTlRJVFkgUHJlY2VkZXMgIiYjeDIyN0E7Ij48IUVOVElUWSBwcmVjICImI3gyMjdBOyI%2BPCFFTlRJVFkgc2MgIiYjeDIyN0I7Ij48IUVOVElUWSBTdWNjZWVkcyAiJiN4MjI3QjsiPjwhRU5USVRZIHN1Y2MgIiYjeDIyN0I7Ij48IUVOVElUWSBwcmN1ZSAiJiN4MjI3QzsiPjwhRU5USVRZIFByZWNlZGVzU2xhbnRFcXVhbCAiJiN4MjI3QzsiPjwhRU5USVRZIHByZWNjdXJseWVxICImI3gyMjdDOyI%2BPCFFTlRJVFkgc2NjdWUgIiYjeDIyN0Q7Ij48IUVOVElUWSBTdWNjZWVkc1NsYW50RXF1YWwgIiYjeDIyN0Q7Ij48IUVOVElUWSBzdWNjY3VybHllcSAiJiN4MjI3RDsiPjwhRU5USVRZIHByc2ltICImI3gyMjdFOyI%2BPCFFTlRJVFkgcHJlY3NpbSAiJiN4MjI3RTsiPjwhRU5USVRZIFByZWNlZGVzVGlsZGUgIiYjeDIyN0U7Ij48IUVOVElUWSBzY3NpbSAiJiN4MjI3RjsiPjwhRU5USVRZIHN1Y2NzaW0gIiYjeDIyN0Y7Ij48IUVOVElUWSBTdWNjZWVkc1RpbGRlICImI3gyMjdGOyI%2BPCFFTlRJVFkgTm90U3VjY2VlZHNUaWxkZSAiJiN4MjI3RjsmI3gzMzg7Ij48IUVOVElUWSBucHIgIiYjeDIyODA7Ij48IUVOVElUWSBucHJlYyAiJiN4MjI4MDsiPjwhRU5USVRZIE5vdFByZWNlZGVzICImI3gyMjgwOyI%2BPCFFTlRJVFkgbnNjICImI3gyMjgxOyI%2BPCFFTlRJVFkgbnN1Y2MgIiYjeDIyODE7Ij48IUVOVElUWSBOb3RTdWNjZWVkcyAiJiN4MjI4MTsiPjwhRU5USVRZIHN1YiAiJiN4MjI4MjsiPjwhRU5USVRZIHN1YnNldCAiJiN4MjI4MjsiPjwhRU5USVRZIHZuc3ViICImI3gyMjgyOyYjeDIwRDI7Ij48IUVOVElUWSBuc3Vic2V0ICImI3gyMjgyOyYjeDIwRDI7Ij48IUVOVElUWSBOb3RTdWJzZXQgIiYjeDIyODI7JiN4MjBEMjsiPjwhRU5USVRZIHN1cCAiJiN4MjI4MzsiPjwhRU5USVRZIHN1cHNldCAiJiN4MjI4MzsiPjwhRU5USVRZIFN1cGVyc2V0ICImI3gyMjgzOyI%2BPCFFTlRJVFkgdm5zdXAgIiYjeDIyODM7JiN4MjBEMjsiPjwhRU5USVRZIG5zdXBzZXQgIiYjeDIyODM7JiN4MjBEMjsiPjwhRU5USVRZIE5vdFN1cGVyc2V0ICImI3gyMjgzOyYjeDIwRDI7Ij48IUVOVElUWSBuc3ViICImI3gyMjg0OyI%2BPCFFTlRJVFkgbnN1cCAiJiN4MjI4NTsiPjwhRU5USVRZIHN1YmUgIiYjeDIyODY7Ij48IUVOVElUWSBTdWJzZXRFcXVhbCAiJiN4MjI4NjsiPjwhRU5USVRZIHN1YnNldGVxICImI3gyMjg2OyI%2BPCFFTlRJVFkgc3VwZSAiJiN4MjI4NzsiPjwhRU5USVRZIHN1cHNldGVxICImI3gyMjg3OyI%2BPCFFTlRJVFkgU3VwZXJzZXRFcXVhbCAiJiN4MjI4NzsiPjwhRU5USVRZIG5zdWJlICImI3gyMjg4OyI%2BPCFFTlRJVFkgbnN1YnNldGVxICImI3gyMjg4OyI%2BPCFFTlRJVFkgTm90U3Vic2V0RXF1YWwgIiYjeDIyODg7Ij48IUVOVElUWSBuc3VwZSAiJiN4MjI4OTsiPjwhRU5USVRZIG5zdXBzZXRlcSAiJiN4MjI4OTsiPjwhRU5USVRZIE5vdFN1cGVyc2V0RXF1YWwgIiYjeDIyODk7Ij48IUVOVElUWSBzdWJuZSAiJiN4MjI4QTsiPjwhRU5USVRZIHN1YnNldG5lcSAiJiN4MjI4QTsiPjwhRU5USVRZIHZzdWJuZSAiJiN4MjI4QTsmI3hGRTAwOyI%2BPCFFTlRJVFkgdmFyc3Vic2V0bmVxICImI3gyMjhBOyYjeEZFMDA7Ij48IUVOVElUWSBzdXBuZSAiJiN4MjI4QjsiPjwhRU5USVRZIHN1cHNldG5lcSAiJiN4MjI4QjsiPjwhRU5USVRZIHZzdXBuZSAiJiN4MjI4QjsmI3hGRTAwOyI%2BPCFFTlRJVFkgdmFyc3Vwc2V0bmVxICImI3gyMjhCOyYjeEZFMDA7Ij48IUVOVElUWSBjdXBkb3QgIiYjeDIyOEQ7Ij48IUVOVElUWSB1cGx1cyAiJiN4MjI4RTsiPjwhRU5USVRZIFVuaW9uUGx1cyAiJiN4MjI4RTsiPjwhRU5USVRZIHNxc3ViICImI3gyMjhGOyI%2BPCFFTlRJVFkgU3F1YXJlU3Vic2V0ICImI3gyMjhGOyI%2BPCFFTlRJVFkgc3FzdWJzZXQgIiYjeDIyOEY7Ij48IUVOVElUWSBOb3RTcXVhcmVTdWJzZXQgIiYjeDIyOEY7JiN4MzM4OyI%2BPCFFTlRJVFkgc3FzdXAgIiYjeDIyOTA7Ij48IUVOVElUWSBTcXVhcmVTdXBlcnNldCAiJiN4MjI5MDsiPjwhRU5USVRZIHNxc3Vwc2V0ICImI3gyMjkwOyI%2BPCFFTlRJVFkgTm90U3F1YXJlU3VwZXJzZXQgIiYjeDIyOTA7JiN4MzM4OyI%2BPCFFTlRJVFkgc3FzdWJlICImI3gyMjkxOyI%2BPCFFTlRJVFkgU3F1YXJlU3Vic2V0RXF1YWwgIiYjeDIyOTE7Ij48IUVOVElUWSBzcXN1YnNldGVxICImI3gyMjkxOyI%2BPCFFTlRJVFkgc3FzdXBlICImI3gyMjkyOyI%2BPCFFTlRJVFkgU3F1YXJlU3VwZXJzZXRFcXVhbCAiJiN4MjI5MjsiPjwhRU5USVRZIHNxc3Vwc2V0ZXEgIiYjeDIyOTI7Ij48IUVOVElUWSBzcWNhcCAiJiN4MjI5MzsiPjwhRU5USVRZIFNxdWFyZUludGVyc2VjdGlvbiAiJiN4MjI5MzsiPjwhRU5USVRZIHNxY2FwcyAiJiN4MjI5MzsmI3hGRTAwOyI%2BPCFFTlRJVFkgc3FjdXAgIiYjeDIyOTQ7Ij48IUVOVElUWSBTcXVhcmVVbmlvbiAiJiN4MjI5NDsiPjwhRU5USVRZIHNxY3VwcyAiJiN4MjI5NDsmI3hGRTAwOyI%2BPCFFTlRJVFkgb3BsdXMgIiYjeDIyOTU7Ij48IUVOVElUWSBDaXJjbGVQbHVzICImI3gyMjk1OyI%2BPCFFTlRJVFkgb21pbnVzICImI3gyMjk2OyI%2BPCFFTlRJVFkgQ2lyY2xlTWludXMgIiYjeDIyOTY7Ij48IUVOVElUWSBvdGltZXMgIiYjeDIyOTc7Ij48IUVOVElUWSBDaXJjbGVUaW1lcyAiJiN4MjI5NzsiPjwhRU5USVRZIG9zb2wgIiYjeDIyOTg7Ij48IUVOVElUWSBvZG90ICImI3gyMjk5OyI%2BPCFFTlRJVFkgQ2lyY2xlRG90ICImI3gyMjk5OyI%2BPCFFTlRJVFkgb2NpciAiJiN4MjI5QTsiPjwhRU5USVRZIGNpcmNsZWRjaXJjICImI3gyMjlBOyI%2BPCFFTlRJVFkgb2FzdCAiJiN4MjI5QjsiPjwhRU5USVRZIGNpcmNsZWRhc3QgIiYjeDIyOUI7Ij48IUVOVElUWSBvZGFzaCAiJiN4MjI5RDsiPjwhRU5USVRZIGNpcmNsZWRkYXNoICImI3gyMjlEOyI%2BPCFFTlRJVFkgcGx1c2IgIiYjeDIyOUU7Ij48IUVOVElUWSBib3hwbHVzICImI3gyMjlFOyI%2BPCFFTlRJVFkgbWludXNiICImI3gyMjlGOyI%2BPCFFTlRJVFkgYm94bWludXMgIiYjeDIyOUY7Ij48IUVOVElUWSB0aW1lc2IgIiYjeDIyQTA7Ij48IUVOVElUWSBib3h0aW1lcyAiJiN4MjJBMDsiPjwhRU5USVRZIHNkb3RiICImI3gyMkExOyI%2BPCFFTlRJVFkgZG90c3F1YXJlICImI3gyMkExOyI%2BPCFFTlRJVFkgdmRhc2ggIiYjeDIyQTI7Ij48IUVOVElUWSBSaWdodFRlZSAiJiN4MjJBMjsiPjwhRU5USVRZIGRhc2h2ICImI3gyMkEzOyI%2BPCFFTlRJVFkgTGVmdFRlZSAiJiN4MjJBMzsiPjwhRU5USVRZIHRvcCAiJiN4MjJBNDsiPjwhRU5USVRZIERvd25UZWUgIiYjeDIyQTQ7Ij48IUVOVElUWSBib3R0b20gIiYjeDIyQTU7Ij48IUVOVElUWSBib3QgIiYjeDIyQTU7Ij48IUVOVElUWSBwZXJwICImI3gyMkE1OyI%2BPCFFTlRJVFkgVXBUZWUgIiYjeDIyQTU7Ij48IUVOVElUWSBtb2RlbHMgIiYjeDIyQTc7Ij48IUVOVElUWSB2RGFzaCAiJiN4MjJBODsiPjwhRU5USVRZIERvdWJsZVJpZ2h0VGVlICImI3gyMkE4OyI%2BPCFFTlRJVFkgVmRhc2ggIiYjeDIyQTk7Ij48IUVOVElUWSBWdmRhc2ggIiYjeDIyQUE7Ij48IUVOVElUWSBWRGFzaCAiJiN4MjJBQjsiPjwhRU5USVRZIG52ZGFzaCAiJiN4MjJBQzsiPjwhRU5USVRZIG52RGFzaCAiJiN4MjJBRDsiPjwhRU5USVRZIG5WZGFzaCAiJiN4MjJBRTsiPjwhRU5USVRZIG5WRGFzaCAiJiN4MjJBRjsiPjwhRU5USVRZIHBydXJlbCAiJiN4MjJCMDsiPjwhRU5USVRZIHZsdHJpICImI3gyMkIyOyI%2BPCFFTlRJVFkgdmFydHJpYW5nbGVsZWZ0ICImI3gyMkIyOyI%2BPCFFTlRJVFkgTGVmdFRyaWFuZ2xlICImI3gyMkIyOyI%2BPCFFTlRJVFkgdnJ0cmkgIiYjeDIyQjM7Ij48IUVOVElUWSB2YXJ0cmlhbmdsZXJpZ2h0ICImI3gyMkIzOyI%2BPCFFTlRJVFkgUmlnaHRUcmlhbmdsZSAiJiN4MjJCMzsiPjwhRU5USVRZIGx0cmllICImI3gyMkI0OyI%2BPCFFTlRJVFkgdHJpYW5nbGVsZWZ0ZXEgIiYjeDIyQjQ7Ij48IUVOVElUWSBMZWZ0VHJpYW5nbGVFcXVhbCAiJiN4MjJCNDsiPjwhRU5USVRZIG52bHRyaWUgIiYjeDIyQjQ7JiN4MjBEMjsiPjwhRU5USVRZIHJ0cmllICImI3gyMkI1OyI%2BPCFFTlRJVFkgdHJpYW5nbGVyaWdodGVxICImI3gyMkI1OyI%2BPCFFTlRJVFkgUmlnaHRUcmlhbmdsZUVxdWFsICImI3gyMkI1OyI%2BPCFFTlRJVFkgbnZydHJpZSAiJiN4MjJCNTsmI3gyMEQyOyI%2BPCFFTlRJVFkgb3JpZ29mICImI3gyMkI2OyI%2BPCFFTlRJVFkgaW1vZiAiJiN4MjJCNzsiPjwhRU5USVRZIG11bWFwICImI3gyMkI4OyI%2BPCFFTlRJVFkgbXVsdGltYXAgIiYjeDIyQjg7Ij48IUVOVElUWSBoZXJjb24gIiYjeDIyQjk7Ij48IUVOVElUWSBpbnRjYWwgIiYjeDIyQkE7Ij48IUVOVElUWSBpbnRlcmNhbCAiJiN4MjJCQTsiPjwhRU5USVRZIHZlZWJhciAiJiN4MjJCQjsiPjwhRU5USVRZIGJhcnZlZSAiJiN4MjJCRDsiPjwhRU5USVRZIGFuZ3J0dmIgIiYjeDIyQkU7Ij48IUVOVElUWSBscnRyaSAiJiN4MjJCRjsiPjwhRU5USVRZIHh3ZWRnZSAiJiN4MjJDMDsiPjwhRU5USVRZIFdlZGdlICImI3gyMkMwOyI%2BPCFFTlRJVFkgYmlnd2VkZ2UgIiYjeDIyQzA7Ij48IUVOVElUWSB4dmVlICImI3gyMkMxOyI%2BPCFFTlRJVFkgVmVlICImI3gyMkMxOyI%2BPCFFTlRJVFkgYmlndmVlICImI3gyMkMxOyI%2BPCFFTlRJVFkgeGNhcCAiJiN4MjJDMjsiPjwhRU5USVRZIEludGVyc2VjdGlvbiAiJiN4MjJDMjsiPjwhRU5USVRZIGJpZ2NhcCAiJiN4MjJDMjsiPjwhRU5USVRZIHhjdXAgIiYjeDIyQzM7Ij48IUVOVElUWSBVbmlvbiAiJiN4MjJDMzsiPjwhRU5USVRZIGJpZ2N1cCAiJiN4MjJDMzsiPjwhRU5USVRZIGRpYW0gIiYjeDIyQzQ7Ij48IUVOVElUWSBkaWFtb25kICImI3gyMkM0OyI%2BPCFFTlRJVFkgRGlhbW9uZCAiJiN4MjJDNDsiPjwhRU5USVRZIHNkb3QgIiYjeDIyQzU7Ij48IUVOVElUWSBzc3RhcmYgIiYjeDIyQzY7Ij48IUVOVElUWSBTdGFyICImI3gyMkM2OyI%2BPCFFTlRJVFkgZGl2b254ICImI3gyMkM3OyI%2BPCFFTlRJVFkgZGl2aWRlb250aW1lcyAiJiN4MjJDNzsiPjwhRU5USVRZIGJvd3RpZSAiJiN4MjJDODsiPjwhRU5USVRZIGx0aW1lcyAiJiN4MjJDOTsiPjwhRU5USVRZIHJ0aW1lcyAiJiN4MjJDQTsiPjwhRU5USVRZIGx0aHJlZSAiJiN4MjJDQjsiPjwhRU5USVRZIGxlZnR0aHJlZXRpbWVzICImI3gyMkNCOyI%2BPCFFTlRJVFkgcnRocmVlICImI3gyMkNDOyI%2BPCFFTlRJVFkgcmlnaHR0aHJlZXRpbWVzICImI3gyMkNDOyI%2BPCFFTlRJVFkgYnNpbWUgIiYjeDIyQ0Q7Ij48IUVOVElUWSBiYWNrc2ltZXEgIiYjeDIyQ0Q7Ij48IUVOVElUWSBjdXZlZSAiJiN4MjJDRTsiPjwhRU5USVRZIGN1cmx5dmVlICImI3gyMkNFOyI%2BPCFFTlRJVFkgY3V3ZWQgIiYjeDIyQ0Y7Ij48IUVOVElUWSBjdXJseXdlZGdlICImI3gyMkNGOyI%2BPCFFTlRJVFkgU3ViICImI3gyMkQwOyI%2BPCFFTlRJVFkgU3Vic2V0ICImI3gyMkQwOyI%2BPCFFTlRJVFkgU3VwICImI3gyMkQxOyI%2BPCFFTlRJVFkgU3Vwc2V0ICImI3gyMkQxOyI%2BPCFFTlRJVFkgQ2FwICImI3gyMkQyOyI%2BPCFFTlRJVFkgQ3VwICImI3gyMkQzOyI%2BPCFFTlRJVFkgZm9yayAiJiN4MjJENDsiPjwhRU5USVRZIHBpdGNoZm9yayAiJiN4MjJENDsiPjwhRU5USVRZIGVwYXIgIiYjeDIyRDU7Ij48IUVOVElUWSBsdGRvdCAiJiN4MjJENjsiPjwhRU5USVRZIGxlc3Nkb3QgIiYjeDIyRDY7Ij48IUVOVElUWSBndGRvdCAiJiN4MjJENzsiPjwhRU5USVRZIGd0cmRvdCAiJiN4MjJENzsiPjwhRU5USVRZIExsICImI3gyMkQ4OyI%2BPCFFTlRJVFkgbkxsICImI3gyMkQ4OyYjeDMzODsiPjwhRU5USVRZIEdnICImI3gyMkQ5OyI%2BPCFFTlRJVFkgZ2dnICImI3gyMkQ5OyI%2BPCFFTlRJVFkgbkdnICImI3gyMkQ5OyYjeDMzODsiPjwhRU5USVRZIGxlZyAiJiN4MjJEQTsiPjwhRU5USVRZIExlc3NFcXVhbEdyZWF0ZXIgIiYjeDIyREE7Ij48IUVOVElUWSBsZXNzZXFndHIgIiYjeDIyREE7Ij48IUVOVElUWSBsZXNnICImI3gyMkRBOyYjeEZFMDA7Ij48IUVOVElUWSBnZWwgIiYjeDIyREI7Ij48IUVOVElUWSBndHJlcWxlc3MgIiYjeDIyREI7Ij48IUVOVElUWSBHcmVhdGVyRXF1YWxMZXNzICImI3gyMkRCOyI%2BPCFFTlRJVFkgZ2VzbCAiJiN4MjJEQjsmI3hGRTAwOyI%2BPCFFTlRJVFkgY3VlcHIgIiYjeDIyREU7Ij48IUVOVElUWSBjdXJseWVxcHJlYyAiJiN4MjJERTsiPjwhRU5USVRZIGN1ZXNjICImI3gyMkRGOyI%2BPCFFTlRJVFkgY3VybHllcXN1Y2MgIiYjeDIyREY7Ij48IUVOVElUWSBucHJjdWUgIiYjeDIyRTA7Ij48IUVOVElUWSBOb3RQcmVjZWRlc1NsYW50RXF1YWwgIiYjeDIyRTA7Ij48IUVOVElUWSBuc2NjdWUgIiYjeDIyRTE7Ij48IUVOVElUWSBOb3RTdWNjZWVkc1NsYW50RXF1YWwgIiYjeDIyRTE7Ij48IUVOVElUWSBuc3FzdWJlICImI3gyMkUyOyI%2BPCFFTlRJVFkgTm90U3F1YXJlU3Vic2V0RXF1YWwgIiYjeDIyRTI7Ij48IUVOVElUWSBuc3FzdXBlICImI3gyMkUzOyI%2BPCFFTlRJVFkgTm90U3F1YXJlU3VwZXJzZXRFcXVhbCAiJiN4MjJFMzsiPjwhRU5USVRZIGxuc2ltICImI3gyMkU2OyI%2BPCFFTlRJVFkgZ25zaW0gIiYjeDIyRTc7Ij48IUVOVElUWSBwcm5zaW0gIiYjeDIyRTg7Ij48IUVOVElUWSBwcmVjbnNpbSAiJiN4MjJFODsiPjwhRU5USVRZIHNjbnNpbSAiJiN4MjJFOTsiPjwhRU5USVRZIHN1Y2Nuc2ltICImI3gyMkU5OyI%2BPCFFTlRJVFkgbmx0cmkgIiYjeDIyRUE7Ij48IUVOVElUWSBudHJpYW5nbGVsZWZ0ICImI3gyMkVBOyI%2BPCFFTlRJVFkgTm90TGVmdFRyaWFuZ2xlICImI3gyMkVBOyI%2BPCFFTlRJVFkgbnJ0cmkgIiYjeDIyRUI7Ij48IUVOVElUWSBudHJpYW5nbGVyaWdodCAiJiN4MjJFQjsiPjwhRU5USVRZIE5vdFJpZ2h0VHJpYW5nbGUgIiYjeDIyRUI7Ij48IUVOVElUWSBubHRyaWUgIiYjeDIyRUM7Ij48IUVOVElUWSBudHJpYW5nbGVsZWZ0ZXEgIiYjeDIyRUM7Ij48IUVOVElUWSBOb3RMZWZ0VHJpYW5nbGVFcXVhbCAiJiN4MjJFQzsiPjwhRU5USVRZIG5ydHJpZSAiJiN4MjJFRDsiPjwhRU5USVRZIG50cmlhbmdsZXJpZ2h0ZXEgIiYjeDIyRUQ7Ij48IUVOVElUWSBOb3RSaWdodFRyaWFuZ2xlRXF1YWwgIiYjeDIyRUQ7Ij48IUVOVElUWSB2ZWxsaXAgIiYjeDIyRUU7Ij48IUVOVElUWSBjdGRvdCAiJiN4MjJFRjsiPjwhRU5USVRZIHV0ZG90ICImI3gyMkYwOyI%2BPCFFTlRJVFkgZHRkb3QgIiYjeDIyRjE7Ij48IUVOVElUWSBkaXNpbiAiJiN4MjJGMjsiPjwhRU5USVRZIGlzaW5zdiAiJiN4MjJGMzsiPjwhRU5USVRZIGlzaW5zICImI3gyMkY0OyI%2BPCFFTlRJVFkgaXNpbmRvdCAiJiN4MjJGNTsiPjwhRU5USVRZIG5vdGluZG90ICImI3gyMkY1OyYjeDMzODsiPjwhRU5USVRZIG5vdGludmMgIiYjeDIyRjY7Ij48IUVOVElUWSBub3RpbnZiICImI3gyMkY3OyI%2BPCFFTlRJVFkgaXNpbkUgIiYjeDIyRjk7Ij48IUVOVElUWSBub3RpbkUgIiYjeDIyRjk7JiN4MzM4OyI%2BPCFFTlRJVFkgbmlzZCAiJiN4MjJGQTsiPjwhRU5USVRZIHhuaXMgIiYjeDIyRkI7Ij48IUVOVElUWSBuaXMgIiYjeDIyRkM7Ij48IUVOVElUWSBub3RuaXZjICImI3gyMkZEOyI%2BPCFFTlRJVFkgbm90bml2YiAiJiN4MjJGRTsiPjwhRU5USVRZIGJhcndlZCAiJiN4MjMwNTsiPjwhRU5USVRZIGJhcndlZGdlICImI3gyMzA1OyI%2BPCFFTlRJVFkgQmFyd2VkICImI3gyMzA2OyI%2BPCFFTlRJVFkgZG91YmxlYmFyd2VkZ2UgIiYjeDIzMDY7Ij48IUVOVElUWSBsY2VpbCAiJiN4MjMwODsiPjwhRU5USVRZIExlZnRDZWlsaW5nICImI3gyMzA4OyI%2BPCFFTlRJVFkgcmNlaWwgIiYjeDIzMDk7Ij48IUVOVElUWSBSaWdodENlaWxpbmcgIiYjeDIzMDk7Ij48IUVOVElUWSBsZmxvb3IgIiYjeDIzMEE7Ij48IUVOVElUWSBMZWZ0Rmxvb3IgIiYjeDIzMEE7Ij48IUVOVElUWSByZmxvb3IgIiYjeDIzMEI7Ij48IUVOVElUWSBSaWdodEZsb29yICImI3gyMzBCOyI%2BPCFFTlRJVFkgZHJjcm9wICImI3gyMzBDOyI%2BPCFFTlRJVFkgZGxjcm9wICImI3gyMzBEOyI%2BPCFFTlRJVFkgdXJjcm9wICImI3gyMzBFOyI%2BPCFFTlRJVFkgdWxjcm9wICImI3gyMzBGOyI%2BPCFFTlRJVFkgYm5vdCAiJiN4MjMxMDsiPjwhRU5USVRZIHByb2ZsaW5lICImI3gyMzEyOyI%2BPCFFTlRJVFkgcHJvZnN1cmYgIiYjeDIzMTM7Ij48IUVOVElUWSB0ZWxyZWMgIiYjeDIzMTU7Ij48IUVOVElUWSB0YXJnZXQgIiYjeDIzMTY7Ij48IUVOVElUWSB1bGNvcm4gIiYjeDIzMUM7Ij48IUVOVElUWSB1bGNvcm5lciAiJiN4MjMxQzsiPjwhRU5USVRZIHVyY29ybiAiJiN4MjMxRDsiPjwhRU5USVRZIHVyY29ybmVyICImI3gyMzFEOyI%2BPCFFTlRJVFkgZGxjb3JuICImI3gyMzFFOyI%2BPCFFTlRJVFkgbGxjb3JuZXIgIiYjeDIzMUU7Ij48IUVOVElUWSBkcmNvcm4gIiYjeDIzMUY7Ij48IUVOVElUWSBscmNvcm5lciAiJiN4MjMxRjsiPjwhRU5USVRZIGZyb3duICImI3gyMzIyOyI%2BPCFFTlRJVFkgc2Zyb3duICImI3gyMzIyOyI%2BPCFFTlRJVFkgc21pbGUgIiYjeDIzMjM7Ij48IUVOVElUWSBzc21pbGUgIiYjeDIzMjM7Ij48IUVOVElUWSBjeWxjdHkgIiYjeDIzMkQ7Ij48IUVOVElUWSBwcm9mYWxhciAiJiN4MjMyRTsiPjwhRU5USVRZIHRvcGJvdCAiJiN4MjMzNjsiPjwhRU5USVRZIG92YmFyICImI3gyMzNEOyI%2BPCFFTlRJVFkgc29sYmFyICImI3gyMzNGOyI%2BPCFFTlRJVFkgYW5nemFyciAiJiN4MjM3QzsiPjwhRU5USVRZIGxtb3VzdCAiJiN4MjNCMDsiPjwhRU5USVRZIGxtb3VzdGFjaGUgIiYjeDIzQjA7Ij48IUVOVElUWSBybW91c3QgIiYjeDIzQjE7Ij48IUVOVElUWSBybW91c3RhY2hlICImI3gyM0IxOyI%2BPCFFTlRJVFkgdGJyayAiJiN4MjNCNDsiPjwhRU5USVRZIE92ZXJCcmFja2V0ICImI3gyM0I0OyI%2BPCFFTlRJVFkgYmJyayAiJiN4MjNCNTsiPjwhRU5USVRZIFVuZGVyQnJhY2tldCAiJiN4MjNCNTsiPjwhRU5USVRZIGJicmt0YnJrICImI3gyM0I2OyI%2BPCFFTlRJVFkgT3ZlclBhcmVudGhlc2lzICImI3gyM0RDOyI%2BPCFFTlRJVFkgVW5kZXJQYXJlbnRoZXNpcyAiJiN4MjNERDsiPjwhRU5USVRZIE92ZXJCcmFjZSAiJiN4MjNERTsiPjwhRU5USVRZIFVuZGVyQnJhY2UgIiYjeDIzREY7Ij48IUVOVElUWSB0cnBleml1bSAiJiN4MjNFMjsiPjwhRU5USVRZIGVsaW50ZXJzICImI3gyM0U3OyI%2BPCFFTlRJVFkgYmxhbmsgIiYjeDI0MjM7Ij48IUVOVElUWSBvUyAiJiN4MjRDODsiPjwhRU5USVRZIGNpcmNsZWRTICImI3gyNEM4OyI%2BPCFFTlRJVFkgYm94aCAiJiN4MjUwMDsiPjwhRU5USVRZIEhvcml6b250YWxMaW5lICImI3gyNTAwOyI%2BPCFFTlRJVFkgYm94diAiJiN4MjUwMjsiPjwhRU5USVRZIGJveGRyICImI3gyNTBDOyI%2BPCFFTlRJVFkgYm94ZGwgIiYjeDI1MTA7Ij48IUVOVElUWSBib3h1ciAiJiN4MjUxNDsiPjwhRU5USVRZIGJveHVsICImI3gyNTE4OyI%2BPCFFTlRJVFkgYm94dnIgIiYjeDI1MUM7Ij48IUVOVElUWSBib3h2bCAiJiN4MjUyNDsiPjwhRU5USVRZIGJveGhkICImI3gyNTJDOyI%2BPCFFTlRJVFkgYm94aHUgIiYjeDI1MzQ7Ij48IUVOVElUWSBib3h2aCAiJiN4MjUzQzsiPjwhRU5USVRZIGJveEggIiYjeDI1NTA7Ij48IUVOVElUWSBib3hWICImI3gyNTUxOyI%2BPCFFTlRJVFkgYm94ZFIgIiYjeDI1NTI7Ij48IUVOVElUWSBib3hEciAiJiN4MjU1MzsiPjwhRU5USVRZIGJveERSICImI3gyNTU0OyI%2BPCFFTlRJVFkgYm94ZEwgIiYjeDI1NTU7Ij48IUVOVElUWSBib3hEbCAiJiN4MjU1NjsiPjwhRU5USVRZIGJveERMICImI3gyNTU3OyI%2BPCFFTlRJVFkgYm94dVIgIiYjeDI1NTg7Ij48IUVOVElUWSBib3hVciAiJiN4MjU1OTsiPjwhRU5USVRZIGJveFVSICImI3gyNTVBOyI%2BPCFFTlRJVFkgYm94dUwgIiYjeDI1NUI7Ij48IUVOVElUWSBib3hVbCAiJiN4MjU1QzsiPjwhRU5USVRZIGJveFVMICImI3gyNTVEOyI%2BPCFFTlRJVFkgYm94dlIgIiYjeDI1NUU7Ij48IUVOVElUWSBib3hWciAiJiN4MjU1RjsiPjwhRU5USVRZIGJveFZSICImI3gyNTYwOyI%2BPCFFTlRJVFkgYm94dkwgIiYjeDI1NjE7Ij48IUVOVElUWSBib3hWbCAiJiN4MjU2MjsiPjwhRU5USVRZIGJveFZMICImI3gyNTYzOyI%2BPCFFTlRJVFkgYm94SGQgIiYjeDI1NjQ7Ij48IUVOVElUWSBib3hoRCAiJiN4MjU2NTsiPjwhRU5USVRZIGJveEhEICImI3gyNTY2OyI%2BPCFFTlRJVFkgYm94SHUgIiYjeDI1Njc7Ij48IUVOVElUWSBib3hoVSAiJiN4MjU2ODsiPjwhRU5USVRZIGJveEhVICImI3gyNTY5OyI%2BPCFFTlRJVFkgYm94dkggIiYjeDI1NkE7Ij48IUVOVElUWSBib3hWaCAiJiN4MjU2QjsiPjwhRU5USVRZIGJveFZIICImI3gyNTZDOyI%2BPCFFTlRJVFkgdWhibGsgIiYjeDI1ODA7Ij48IUVOVElUWSBsaGJsayAiJiN4MjU4NDsiPjwhRU5USVRZIGJsb2NrICImI3gyNTg4OyI%2BPCFFTlRJVFkgYmxrMTQgIiYjeDI1OTE7Ij48IUVOVElUWSBibGsxMiAiJiN4MjU5MjsiPjwhRU5USVRZIGJsazM0ICImI3gyNTkzOyI%2BPCFFTlRJVFkgc3F1ICImI3gyNUExOyI%2BPCFFTlRJVFkgc3F1YXJlICImI3gyNUExOyI%2BPCFFTlRJVFkgU3F1YXJlICImI3gyNUExOyI%2BPCFFTlRJVFkgc3F1ZiAiJiN4MjVBQTsiPjwhRU5USVRZIHNxdWFyZiAiJiN4MjVBQTsiPjwhRU5USVRZIGJsYWNrc3F1YXJlICImI3gyNUFBOyI%2BPCFFTlRJVFkgRmlsbGVkVmVyeVNtYWxsU3F1YXJlICImI3gyNUFBOyI%2BPCFFTlRJVFkgRW1wdHlWZXJ5U21hbGxTcXVhcmUgIiYjeDI1QUI7Ij48IUVOVElUWSByZWN0ICImI3gyNUFEOyI%2BPCFFTlRJVFkgbWFya2VyICImI3gyNUFFOyI%2BPCFFTlRJVFkgZmx0bnMgIiYjeDI1QjE7Ij48IUVOVElUWSB4dXRyaSAiJiN4MjVCMzsiPjwhRU5USVRZIGJpZ3RyaWFuZ2xldXAgIiYjeDI1QjM7Ij48IUVOVElUWSB1dHJpZiAiJiN4MjVCNDsiPjwhRU5USVRZIGJsYWNrdHJpYW5nbGUgIiYjeDI1QjQ7Ij48IUVOVElUWSB1dHJpICImI3gyNUI1OyI%2BPCFFTlRJVFkgdHJpYW5nbGUgIiYjeDI1QjU7Ij48IUVOVElUWSBydHJpZiAiJiN4MjVCODsiPjwhRU5USVRZIGJsYWNrdHJpYW5nbGVyaWdodCAiJiN4MjVCODsiPjwhRU5USVRZIHJ0cmkgIiYjeDI1Qjk7Ij48IUVOVElUWSB0cmlhbmdsZXJpZ2h0ICImI3gyNUI5OyI%2BPCFFTlRJVFkgeGR0cmkgIiYjeDI1QkQ7Ij48IUVOVElUWSBiaWd0cmlhbmdsZWRvd24gIiYjeDI1QkQ7Ij48IUVOVElUWSBkdHJpZiAiJiN4MjVCRTsiPjwhRU5USVRZIGJsYWNrdHJpYW5nbGVkb3duICImI3gyNUJFOyI%2BPCFFTlRJVFkgZHRyaSAiJiN4MjVCRjsiPjwhRU5USVRZIHRyaWFuZ2xlZG93biAiJiN4MjVCRjsiPjwhRU5USVRZIGx0cmlmICImI3gyNUMyOyI%2BPCFFTlRJVFkgYmxhY2t0cmlhbmdsZWxlZnQgIiYjeDI1QzI7Ij48IUVOVElUWSBsdHJpICImI3gyNUMzOyI%2BPCFFTlRJVFkgdHJpYW5nbGVsZWZ0ICImI3gyNUMzOyI%2BPCFFTlRJVFkgbG96ICImI3gyNUNBOyI%2BPCFFTlRJVFkgbG96ZW5nZSAiJiN4MjVDQTsiPjwhRU5USVRZIGNpciAiJiN4MjVDQjsiPjwhRU5USVRZIHRyaWRvdCAiJiN4MjVFQzsiPjwhRU5USVRZIHhjaXJjICImI3gyNUVGOyI%2BPCFFTlRJVFkgYmlnY2lyYyAiJiN4MjVFRjsiPjwhRU5USVRZIHVsdHJpICImI3gyNUY4OyI%2BPCFFTlRJVFkgdXJ0cmkgIiYjeDI1Rjk7Ij48IUVOVElUWSBsbHRyaSAiJiN4MjVGQTsiPjwhRU5USVRZIEVtcHR5U21hbGxTcXVhcmUgIiYjeDI1RkI7Ij48IUVOVElUWSBGaWxsZWRTbWFsbFNxdWFyZSAiJiN4MjVGQzsiPjwhRU5USVRZIHN0YXJmICImI3gyNjA1OyI%2BPCFFTlRJVFkgYmlnc3RhciAiJiN4MjYwNTsiPjwhRU5USVRZIHN0YXIgIiYjeDI2MDY7Ij48IUVOVElUWSBwaG9uZSAiJiN4MjYwRTsiPjwhRU5USVRZIGZlbWFsZSAiJiN4MjY0MDsiPjwhRU5USVRZIG1hbGUgIiYjeDI2NDI7Ij48IUVOVElUWSBzcGFkZXMgIiYjeDI2NjA7Ij48IUVOVElUWSBzcGFkZXN1aXQgIiYjeDI2NjA7Ij48IUVOVElUWSBjbHVicyAiJiN4MjY2MzsiPjwhRU5USVRZIGNsdWJzdWl0ICImI3gyNjYzOyI%2BPCFFTlRJVFkgaGVhcnRzICImI3gyNjY1OyI%2BPCFFTlRJVFkgaGVhcnRzdWl0ICImI3gyNjY1OyI%2BPCFFTlRJVFkgZGlhbXMgIiYjeDI2NjY7Ij48IUVOVElUWSBkaWFtb25kc3VpdCAiJiN4MjY2NjsiPjwhRU5USVRZIHN1bmcgIiYjeDI2NkE7Ij48IUVOVElUWSBmbGF0ICImI3gyNjZEOyI%2BPCFFTlRJVFkgbmF0dXIgIiYjeDI2NkU7Ij48IUVOVElUWSBuYXR1cmFsICImI3gyNjZFOyI%2BPCFFTlRJVFkgc2hhcnAgIiYjeDI2NkY7Ij48IUVOVElUWSBjaGVjayAiJiN4MjcxMzsiPjwhRU5USVRZIGNoZWNrbWFyayAiJiN4MjcxMzsiPjwhRU5USVRZIGNyb3NzICImI3gyNzE3OyI%2BPCFFTlRJVFkgbWFsdCAiJiN4MjcyMDsiPjwhRU5USVRZIG1hbHRlc2UgIiYjeDI3MjA7Ij48IUVOVElUWSBzZXh0ICImI3gyNzM2OyI%2BPCFFTlRJVFkgVmVydGljYWxTZXBhcmF0b3IgIiYjeDI3NTg7Ij48IUVOVElUWSBsYmJyayAiJiN4Mjc3MjsiPjwhRU5USVRZIHJiYnJrICImI3gyNzczOyI%2BPCFFTlRJVFkgYnNvbGhzdWIgIiYjeDI3Qzg7Ij48IUVOVElUWSBzdXBoc29sICImI3gyN0M5OyI%2BPCFFTlRJVFkgbG9icmsgIiYjeDI3RTY7Ij48IUVOVElUWSBMZWZ0RG91YmxlQnJhY2tldCAiJiN4MjdFNjsiPjwhRU5USVRZIHJvYnJrICImI3gyN0U3OyI%2BPCFFTlRJVFkgUmlnaHREb3VibGVCcmFja2V0ICImI3gyN0U3OyI%2BPCFFTlRJVFkgbGFuZyAiJiN4MjdFODsiPjwhRU5USVRZIExlZnRBbmdsZUJyYWNrZXQgIiYjeDI3RTg7Ij48IUVOVElUWSBsYW5nbGUgIiYjeDI3RTg7Ij48IUVOVElUWSByYW5nICImI3gyN0U5OyI%2BPCFFTlRJVFkgUmlnaHRBbmdsZUJyYWNrZXQgIiYjeDI3RTk7Ij48IUVOVElUWSByYW5nbGUgIiYjeDI3RTk7Ij48IUVOVElUWSBMYW5nICImI3gyN0VBOyI%2BPCFFTlRJVFkgUmFuZyAiJiN4MjdFQjsiPjwhRU5USVRZIGxvYW5nICImI3gyN0VDOyI%2BPCFFTlRJVFkgcm9hbmcgIiYjeDI3RUQ7Ij48IUVOVElUWSB4bGFyciAiJiN4MjdGNTsiPjwhRU5USVRZIGxvbmdsZWZ0YXJyb3cgIiYjeDI3RjU7Ij48IUVOVElUWSBMb25nTGVmdEFycm93ICImI3gyN0Y1OyI%2BPCFFTlRJVFkgeHJhcnIgIiYjeDI3RjY7Ij48IUVOVElUWSBsb25ncmlnaHRhcnJvdyAiJiN4MjdGNjsiPjwhRU5USVRZIExvbmdSaWdodEFycm93ICImI3gyN0Y2OyI%2BPCFFTlRJVFkgeGhhcnIgIiYjeDI3Rjc7Ij48IUVOVElUWSBsb25nbGVmdHJpZ2h0YXJyb3cgIiYjeDI3Rjc7Ij48IUVOVElUWSBMb25nTGVmdFJpZ2h0QXJyb3cgIiYjeDI3Rjc7Ij48IUVOVElUWSB4bEFyciAiJiN4MjdGODsiPjwhRU5USVRZIExvbmdsZWZ0YXJyb3cgIiYjeDI3Rjg7Ij48IUVOVElUWSBEb3VibGVMb25nTGVmdEFycm93ICImI3gyN0Y4OyI%2BPCFFTlRJVFkgeHJBcnIgIiYjeDI3Rjk7Ij48IUVOVElUWSBMb25ncmlnaHRhcnJvdyAiJiN4MjdGOTsiPjwhRU5USVRZIERvdWJsZUxvbmdSaWdodEFycm93ICImI3gyN0Y5OyI%2BPCFFTlRJVFkgeGhBcnIgIiYjeDI3RkE7Ij48IUVOVElUWSBMb25nbGVmdHJpZ2h0YXJyb3cgIiYjeDI3RkE7Ij48IUVOVElUWSBEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3cgIiYjeDI3RkE7Ij48IUVOVElUWSB4bWFwICImI3gyN0ZDOyI%2BPCFFTlRJVFkgbG9uZ21hcHN0byAiJiN4MjdGQzsiPjwhRU5USVRZIGR6aWdyYXJyICImI3gyN0ZGOyI%2BPCFFTlRJVFkgbnZsQXJyICImI3gyOTAyOyI%2BPCFFTlRJVFkgbnZyQXJyICImI3gyOTAzOyI%2BPCFFTlRJVFkgbnZIYXJyICImI3gyOTA0OyI%2BPCFFTlRJVFkgTWFwICImI3gyOTA1OyI%2BPCFFTlRJVFkgbGJhcnIgIiYjeDI5MEM7Ij48IUVOVElUWSByYmFyciAiJiN4MjkwRDsiPjwhRU5USVRZIGJrYXJvdyAiJiN4MjkwRDsiPjwhRU5USVRZIGxCYXJyICImI3gyOTBFOyI%2BPCFFTlRJVFkgckJhcnIgIiYjeDI5MEY7Ij48IUVOVElUWSBkYmthcm93ICImI3gyOTBGOyI%2BPCFFTlRJVFkgUkJhcnIgIiYjeDI5MTA7Ij48IUVOVElUWSBkcmJrYXJvdyAiJiN4MjkxMDsiPjwhRU5USVRZIEREb3RyYWhkICImI3gyOTExOyI%2BPCFFTlRJVFkgVXBBcnJvd0JhciAiJiN4MjkxMjsiPjwhRU5USVRZIERvd25BcnJvd0JhciAiJiN4MjkxMzsiPjwhRU5USVRZIFJhcnJ0bCAiJiN4MjkxNjsiPjwhRU5USVRZIGxhdGFpbCAiJiN4MjkxOTsiPjwhRU5USVRZIHJhdGFpbCAiJiN4MjkxQTsiPjwhRU5USVRZIGxBdGFpbCAiJiN4MjkxQjsiPjwhRU5USVRZIHJBdGFpbCAiJiN4MjkxQzsiPjwhRU5USVRZIGxhcnJmcyAiJiN4MjkxRDsiPjwhRU5USVRZIHJhcnJmcyAiJiN4MjkxRTsiPjwhRU5USVRZIGxhcnJiZnMgIiYjeDI5MUY7Ij48IUVOVElUWSByYXJyYmZzICImI3gyOTIwOyI%2BPCFFTlRJVFkgbndhcmhrICImI3gyOTIzOyI%2BPCFFTlRJVFkgbmVhcmhrICImI3gyOTI0OyI%2BPCFFTlRJVFkgc2VhcmhrICImI3gyOTI1OyI%2BPCFFTlRJVFkgaGtzZWFyb3cgIiYjeDI5MjU7Ij48IUVOVElUWSBzd2FyaGsgIiYjeDI5MjY7Ij48IUVOVElUWSBoa3N3YXJvdyAiJiN4MjkyNjsiPjwhRU5USVRZIG53bmVhciAiJiN4MjkyNzsiPjwhRU5USVRZIG5lc2VhciAiJiN4MjkyODsiPjwhRU5USVRZIHRvZWEgIiYjeDI5Mjg7Ij48IUVOVElUWSBzZXN3YXIgIiYjeDI5Mjk7Ij48IUVOVElUWSB0b3NhICImI3gyOTI5OyI%2BPCFFTlRJVFkgc3dud2FyICImI3gyOTJBOyI%2BPCFFTlRJVFkgcmFycmMgIiYjeDI5MzM7Ij48IUVOVElUWSBucmFycmMgIiYjeDI5MzM7JiN4MzM4OyI%2BPCFFTlRJVFkgY3VkYXJyciAiJiN4MjkzNTsiPjwhRU5USVRZIGxkY2EgIiYjeDI5MzY7Ij48IUVOVElUWSByZGNhICImI3gyOTM3OyI%2BPCFFTlRJVFkgY3VkYXJybCAiJiN4MjkzODsiPjwhRU5USVRZIGxhcnJwbCAiJiN4MjkzOTsiPjwhRU5USVRZIGN1cmFycm0gIiYjeDI5M0M7Ij48IUVOVElUWSBjdWxhcnJwICImI3gyOTNEOyI%2BPCFFTlRJVFkgcmFycnBsICImI3gyOTQ1OyI%2BPCFFTlRJVFkgaGFycmNpciAiJiN4Mjk0ODsiPjwhRU5USVRZIFVhcnJvY2lyICImI3gyOTQ5OyI%2BPCFFTlRJVFkgbHVyZHNoYXIgIiYjeDI5NEE7Ij48IUVOVElUWSBsZHJ1c2hhciAiJiN4Mjk0QjsiPjwhRU5USVRZIExlZnRSaWdodFZlY3RvciAiJiN4Mjk0RTsiPjwhRU5USVRZIFJpZ2h0VXBEb3duVmVjdG9yICImI3gyOTRGOyI%2BPCFFTlRJVFkgRG93bkxlZnRSaWdodFZlY3RvciAiJiN4Mjk1MDsiPjwhRU5USVRZIExlZnRVcERvd25WZWN0b3IgIiYjeDI5NTE7Ij48IUVOVElUWSBMZWZ0VmVjdG9yQmFyICImI3gyOTUyOyI%2BPCFFTlRJVFkgUmlnaHRWZWN0b3JCYXIgIiYjeDI5NTM7Ij48IUVOVElUWSBSaWdodFVwVmVjdG9yQmFyICImI3gyOTU0OyI%2BPCFFTlRJVFkgUmlnaHREb3duVmVjdG9yQmFyICImI3gyOTU1OyI%2BPCFFTlRJVFkgRG93bkxlZnRWZWN0b3JCYXIgIiYjeDI5NTY7Ij48IUVOVElUWSBEb3duUmlnaHRWZWN0b3JCYXIgIiYjeDI5NTc7Ij48IUVOVElUWSBMZWZ0VXBWZWN0b3JCYXIgIiYjeDI5NTg7Ij48IUVOVElUWSBMZWZ0RG93blZlY3RvckJhciAiJiN4Mjk1OTsiPjwhRU5USVRZIExlZnRUZWVWZWN0b3IgIiYjeDI5NUE7Ij48IUVOVElUWSBSaWdodFRlZVZlY3RvciAiJiN4Mjk1QjsiPjwhRU5USVRZIFJpZ2h0VXBUZWVWZWN0b3IgIiYjeDI5NUM7Ij48IUVOVElUWSBSaWdodERvd25UZWVWZWN0b3IgIiYjeDI5NUQ7Ij48IUVOVElUWSBEb3duTGVmdFRlZVZlY3RvciAiJiN4Mjk1RTsiPjwhRU5USVRZIERvd25SaWdodFRlZVZlY3RvciAiJiN4Mjk1RjsiPjwhRU5USVRZIExlZnRVcFRlZVZlY3RvciAiJiN4Mjk2MDsiPjwhRU5USVRZIExlZnREb3duVGVlVmVjdG9yICImI3gyOTYxOyI%2BPCFFTlRJVFkgbEhhciAiJiN4Mjk2MjsiPjwhRU5USVRZIHVIYXIgIiYjeDI5NjM7Ij48IUVOVElUWSBySGFyICImI3gyOTY0OyI%2BPCFFTlRJVFkgZEhhciAiJiN4Mjk2NTsiPjwhRU5USVRZIGx1cnVoYXIgIiYjeDI5NjY7Ij48IUVOVElUWSBsZHJkaGFyICImI3gyOTY3OyI%2BPCFFTlRJVFkgcnVsdWhhciAiJiN4Mjk2ODsiPjwhRU5USVRZIHJkbGRoYXIgIiYjeDI5Njk7Ij48IUVOVElUWSBsaGFydWwgIiYjeDI5NkE7Ij48IUVOVElUWSBsbGhhcmQgIiYjeDI5NkI7Ij48IUVOVElUWSByaGFydWwgIiYjeDI5NkM7Ij48IUVOVElUWSBscmhhcmQgIiYjeDI5NkQ7Ij48IUVOVElUWSB1ZGhhciAiJiN4Mjk2RTsiPjwhRU5USVRZIFVwRXF1aWxpYnJpdW0gIiYjeDI5NkU7Ij48IUVOVElUWSBkdWhhciAiJiN4Mjk2RjsiPjwhRU5USVRZIFJldmVyc2VVcEVxdWlsaWJyaXVtICImI3gyOTZGOyI%2BPCFFTlRJVFkgUm91bmRJbXBsaWVzICImI3gyOTcwOyI%2BPCFFTlRJVFkgZXJhcnIgIiYjeDI5NzE7Ij48IUVOVElUWSBzaW1yYXJyICImI3gyOTcyOyI%2BPCFFTlRJVFkgbGFycnNpbSAiJiN4Mjk3MzsiPjwhRU5USVRZIHJhcnJzaW0gIiYjeDI5NzQ7Ij48IUVOVElUWSByYXJyYXAgIiYjeDI5NzU7Ij48IUVOVElUWSBsdGxhcnIgIiYjeDI5NzY7Ij48IUVOVElUWSBndHJhcnIgIiYjeDI5Nzg7Ij48IUVOVElUWSBzdWJyYXJyICImI3gyOTc5OyI%2BPCFFTlRJVFkgc3VwbGFyciAiJiN4Mjk3QjsiPjwhRU5USVRZIGxmaXNodCAiJiN4Mjk3QzsiPjwhRU5USVRZIHJmaXNodCAiJiN4Mjk3RDsiPjwhRU5USVRZIHVmaXNodCAiJiN4Mjk3RTsiPjwhRU5USVRZIGRmaXNodCAiJiN4Mjk3RjsiPjwhRU5USVRZIGxvcGFyICImI3gyOTg1OyI%2BPCFFTlRJVFkgcm9wYXIgIiYjeDI5ODY7Ij48IUVOVElUWSBsYnJrZSAiJiN4Mjk4QjsiPjwhRU5USVRZIHJicmtlICImI3gyOThDOyI%2BPCFFTlRJVFkgbGJya3NsdSAiJiN4Mjk4RDsiPjwhRU5USVRZIHJicmtzbGQgIiYjeDI5OEU7Ij48IUVOVElUWSBsYnJrc2xkICImI3gyOThGOyI%2BPCFFTlRJVFkgcmJya3NsdSAiJiN4Mjk5MDsiPjwhRU5USVRZIGxhbmdkICImI3gyOTkxOyI%2BPCFFTlRJVFkgcmFuZ2QgIiYjeDI5OTI7Ij48IUVOVElUWSBscGFybHQgIiYjeDI5OTM7Ij48IUVOVElUWSBycGFyZ3QgIiYjeDI5OTQ7Ij48IUVOVElUWSBndGxQYXIgIiYjeDI5OTU7Ij48IUVOVElUWSBsdHJQYXIgIiYjeDI5OTY7Ij48IUVOVElUWSB2emlnemFnICImI3gyOTlBOyI%2BPCFFTlRJVFkgdmFuZ3J0ICImI3gyOTlDOyI%2BPCFFTlRJVFkgYW5ncnR2YmQgIiYjeDI5OUQ7Ij48IUVOVElUWSBhbmdlICImI3gyOUE0OyI%2BPCFFTlRJVFkgcmFuZ2UgIiYjeDI5QTU7Ij48IUVOVElUWSBkd2FuZ2xlICImI3gyOUE2OyI%2BPCFFTlRJVFkgdXdhbmdsZSAiJiN4MjlBNzsiPjwhRU5USVRZIGFuZ21zZGFhICImI3gyOUE4OyI%2BPCFFTlRJVFkgYW5nbXNkYWIgIiYjeDI5QTk7Ij48IUVOVElUWSBhbmdtc2RhYyAiJiN4MjlBQTsiPjwhRU5USVRZIGFuZ21zZGFkICImI3gyOUFCOyI%2BPCFFTlRJVFkgYW5nbXNkYWUgIiYjeDI5QUM7Ij48IUVOVElUWSBhbmdtc2RhZiAiJiN4MjlBRDsiPjwhRU5USVRZIGFuZ21zZGFnICImI3gyOUFFOyI%2BPCFFTlRJVFkgYW5nbXNkYWggIiYjeDI5QUY7Ij48IUVOVElUWSBiZW1wdHl2ICImI3gyOUIwOyI%2BPCFFTlRJVFkgZGVtcHR5diAiJiN4MjlCMTsiPjwhRU5USVRZIGNlbXB0eXYgIiYjeDI5QjI7Ij48IUVOVElUWSByYWVtcHR5diAiJiN4MjlCMzsiPjwhRU5USVRZIGxhZW1wdHl2ICImI3gyOUI0OyI%2BPCFFTlRJVFkgb2hiYXIgIiYjeDI5QjU7Ij48IUVOVElUWSBvbWlkICImI3gyOUI2OyI%2BPCFFTlRJVFkgb3BhciAiJiN4MjlCNzsiPjwhRU5USVRZIG9wZXJwICImI3gyOUI5OyI%2BPCFFTlRJVFkgb2xjcm9zcyAiJiN4MjlCQjsiPjwhRU5USVRZIG9kc29sZCAiJiN4MjlCQzsiPjwhRU5USVRZIG9sY2lyICImI3gyOUJFOyI%2BPCFFTlRJVFkgb2ZjaXIgIiYjeDI5QkY7Ij48IUVOVElUWSBvbHQgIiYjeDI5QzA7Ij48IUVOVElUWSBvZ3QgIiYjeDI5QzE7Ij48IUVOVElUWSBjaXJzY2lyICImI3gyOUMyOyI%2BPCFFTlRJVFkgY2lyRSAiJiN4MjlDMzsiPjwhRU5USVRZIHNvbGIgIiYjeDI5QzQ7Ij48IUVOVElUWSBic29sYiAiJiN4MjlDNTsiPjwhRU5USVRZIGJveGJveCAiJiN4MjlDOTsiPjwhRU5USVRZIHRyaXNiICImI3gyOUNEOyI%2BPCFFTlRJVFkgcnRyaWx0cmkgIiYjeDI5Q0U7Ij48IUVOVElUWSBMZWZ0VHJpYW5nbGVCYXIgIiYjeDI5Q0Y7Ij48IUVOVElUWSBOb3RMZWZ0VHJpYW5nbGVCYXIgIiYjeDI5Q0Y7JiN4MzM4OyI%2BPCFFTlRJVFkgUmlnaHRUcmlhbmdsZUJhciAiJiN4MjlEMDsiPjwhRU5USVRZIE5vdFJpZ2h0VHJpYW5nbGVCYXIgIiYjeDI5RDA7JiN4MzM4OyI%2BPCFFTlRJVFkgaWluZmluICImI3gyOURDOyI%2BPCFFTlRJVFkgaW5maW50aWUgIiYjeDI5REQ7Ij48IUVOVElUWSBudmluZmluICImI3gyOURFOyI%2BPCFFTlRJVFkgZXBhcnNsICImI3gyOUUzOyI%2BPCFFTlRJVFkgc21lcGFyc2wgIiYjeDI5RTQ7Ij48IUVOVElUWSBlcXZwYXJzbCAiJiN4MjlFNTsiPjwhRU5USVRZIGxvemYgIiYjeDI5RUI7Ij48IUVOVElUWSBibGFja2xvemVuZ2UgIiYjeDI5RUI7Ij48IUVOVElUWSBSdWxlRGVsYXllZCAiJiN4MjlGNDsiPjwhRU5USVRZIGRzb2wgIiYjeDI5RjY7Ij48IUVOVElUWSB4b2RvdCAiJiN4MkEwMDsiPjwhRU5USVRZIGJpZ29kb3QgIiYjeDJBMDA7Ij48IUVOVElUWSB4b3BsdXMgIiYjeDJBMDE7Ij48IUVOVElUWSBiaWdvcGx1cyAiJiN4MkEwMTsiPjwhRU5USVRZIHhvdGltZSAiJiN4MkEwMjsiPjwhRU5USVRZIGJpZ290aW1lcyAiJiN4MkEwMjsiPjwhRU5USVRZIHh1cGx1cyAiJiN4MkEwNDsiPjwhRU5USVRZIGJpZ3VwbHVzICImI3gyQTA0OyI%2BPCFFTlRJVFkgeHNxY3VwICImI3gyQTA2OyI%2BPCFFTlRJVFkgYmlnc3FjdXAgIiYjeDJBMDY7Ij48IUVOVElUWSBxaW50ICImI3gyQTBDOyI%2BPCFFTlRJVFkgaWlpaW50ICImI3gyQTBDOyI%2BPCFFTlRJVFkgZnBhcnRpbnQgIiYjeDJBMEQ7Ij48IUVOVElUWSBjaXJmbmludCAiJiN4MkExMDsiPjwhRU5USVRZIGF3aW50ICImI3gyQTExOyI%2BPCFFTlRJVFkgcnBwb2xpbnQgIiYjeDJBMTI7Ij48IUVOVElUWSBzY3BvbGludCAiJiN4MkExMzsiPjwhRU5USVRZIG5wb2xpbnQgIiYjeDJBMTQ7Ij48IUVOVElUWSBwb2ludGludCAiJiN4MkExNTsiPjwhRU5USVRZIHF1YXRpbnQgIiYjeDJBMTY7Ij48IUVOVElUWSBpbnRsYXJoayAiJiN4MkExNzsiPjwhRU5USVRZIHBsdXNjaXIgIiYjeDJBMjI7Ij48IUVOVElUWSBwbHVzYWNpciAiJiN4MkEyMzsiPjwhRU5USVRZIHNpbXBsdXMgIiYjeDJBMjQ7Ij48IUVOVElUWSBwbHVzZHUgIiYjeDJBMjU7Ij48IUVOVElUWSBwbHVzc2ltICImI3gyQTI2OyI%2BPCFFTlRJVFkgcGx1c3R3byAiJiN4MkEyNzsiPjwhRU5USVRZIG1jb21tYSAiJiN4MkEyOTsiPjwhRU5USVRZIG1pbnVzZHUgIiYjeDJBMkE7Ij48IUVOVElUWSBsb3BsdXMgIiYjeDJBMkQ7Ij48IUVOVElUWSByb3BsdXMgIiYjeDJBMkU7Ij48IUVOVElUWSBDcm9zcyAiJiN4MkEyRjsiPjwhRU5USVRZIHRpbWVzZCAiJiN4MkEzMDsiPjwhRU5USVRZIHRpbWVzYmFyICImI3gyQTMxOyI%2BPCFFTlRJVFkgc21hc2hwICImI3gyQTMzOyI%2BPCFFTlRJVFkgbG90aW1lcyAiJiN4MkEzNDsiPjwhRU5USVRZIHJvdGltZXMgIiYjeDJBMzU7Ij48IUVOVElUWSBvdGltZXNhcyAiJiN4MkEzNjsiPjwhRU5USVRZIE90aW1lcyAiJiN4MkEzNzsiPjwhRU5USVRZIG9kaXYgIiYjeDJBMzg7Ij48IUVOVElUWSB0cmlwbHVzICImI3gyQTM5OyI%2BPCFFTlRJVFkgdHJpbWludXMgIiYjeDJBM0E7Ij48IUVOVElUWSB0cml0aW1lICImI3gyQTNCOyI%2BPCFFTlRJVFkgaXByb2QgIiYjeDJBM0M7Ij48IUVOVElUWSBpbnRwcm9kICImI3gyQTNDOyI%2BPCFFTlRJVFkgYW1hbGcgIiYjeDJBM0Y7Ij48IUVOVElUWSBjYXBkb3QgIiYjeDJBNDA7Ij48IUVOVElUWSBuY3VwICImI3gyQTQyOyI%2BPCFFTlRJVFkgbmNhcCAiJiN4MkE0MzsiPjwhRU5USVRZIGNhcGFuZCAiJiN4MkE0NDsiPjwhRU5USVRZIGN1cG9yICImI3gyQTQ1OyI%2BPCFFTlRJVFkgY3VwY2FwICImI3gyQTQ2OyI%2BPCFFTlRJVFkgY2FwY3VwICImI3gyQTQ3OyI%2BPCFFTlRJVFkgY3VwYnJjYXAgIiYjeDJBNDg7Ij48IUVOVElUWSBjYXBicmN1cCAiJiN4MkE0OTsiPjwhRU5USVRZIGN1cGN1cCAiJiN4MkE0QTsiPjwhRU5USVRZIGNhcGNhcCAiJiN4MkE0QjsiPjwhRU5USVRZIGNjdXBzICImI3gyQTRDOyI%2BPCFFTlRJVFkgY2NhcHMgIiYjeDJBNEQ7Ij48IUVOVElUWSBjY3Vwc3NtICImI3gyQTUwOyI%2BPCFFTlRJVFkgQW5kICImI3gyQTUzOyI%2BPCFFTlRJVFkgT3IgIiYjeDJBNTQ7Ij48IUVOVElUWSBhbmRhbmQgIiYjeDJBNTU7Ij48IUVOVElUWSBvcm9yICImI3gyQTU2OyI%2BPCFFTlRJVFkgb3JzbG9wZSAiJiN4MkE1NzsiPjwhRU5USVRZIGFuZHNsb3BlICImI3gyQTU4OyI%2BPCFFTlRJVFkgYW5kdiAiJiN4MkE1QTsiPjwhRU5USVRZIG9ydiAiJiN4MkE1QjsiPjwhRU5USVRZIGFuZGQgIiYjeDJBNUM7Ij48IUVOVElUWSBvcmQgIiYjeDJBNUQ7Ij48IUVOVElUWSB3ZWRiYXIgIiYjeDJBNUY7Ij48IUVOVElUWSBzZG90ZSAiJiN4MkE2NjsiPjwhRU5USVRZIHNpbWRvdCAiJiN4MkE2QTsiPjwhRU5USVRZIGNvbmdkb3QgIiYjeDJBNkQ7Ij48IUVOVElUWSBuY29uZ2RvdCAiJiN4MkE2RDsmI3gzMzg7Ij48IUVOVElUWSBlYXN0ZXIgIiYjeDJBNkU7Ij48IUVOVElUWSBhcGFjaXIgIiYjeDJBNkY7Ij48IUVOVElUWSBhcEUgIiYjeDJBNzA7Ij48IUVOVElUWSBuYXBFICImI3gyQTcwOyYjeDMzODsiPjwhRU5USVRZIGVwbHVzICImI3gyQTcxOyI%2BPCFFTlRJVFkgcGx1c2UgIiYjeDJBNzI7Ij48IUVOVElUWSBFc2ltICImI3gyQTczOyI%2BPCFFTlRJVFkgQ29sb25lICImI3gyQTc0OyI%2BPCFFTlRJVFkgRXF1YWwgIiYjeDJBNzU7Ij48IUVOVElUWSBlRERvdCAiJiN4MkE3NzsiPjwhRU5USVRZIGRkb3RzZXEgIiYjeDJBNzc7Ij48IUVOVElUWSBlcXVpdkREICImI3gyQTc4OyI%2BPCFFTlRJVFkgbHRjaXIgIiYjeDJBNzk7Ij48IUVOVElUWSBndGNpciAiJiN4MkE3QTsiPjwhRU5USVRZIGx0cXVlc3QgIiYjeDJBN0I7Ij48IUVOVElUWSBndHF1ZXN0ICImI3gyQTdDOyI%2BPCFFTlRJVFkgbGVzICImI3gyQTdEOyI%2BPCFFTlRJVFkgTGVzc1NsYW50RXF1YWwgIiYjeDJBN0Q7Ij48IUVOVElUWSBsZXFzbGFudCAiJiN4MkE3RDsiPjwhRU5USVRZIG5sZXMgIiYjeDJBN0Q7JiN4MzM4OyI%2BPCFFTlRJVFkgTm90TGVzc1NsYW50RXF1YWwgIiYjeDJBN0Q7JiN4MzM4OyI%2BPCFFTlRJVFkgbmxlcXNsYW50ICImI3gyQTdEOyYjeDMzODsiPjwhRU5USVRZIGdlcyAiJiN4MkE3RTsiPjwhRU5USVRZIEdyZWF0ZXJTbGFudEVxdWFsICImI3gyQTdFOyI%2BPCFFTlRJVFkgZ2Vxc2xhbnQgIiYjeDJBN0U7Ij48IUVOVElUWSBuZ2VzICImI3gyQTdFOyYjeDMzODsiPjwhRU5USVRZIE5vdEdyZWF0ZXJTbGFudEVxdWFsICImI3gyQTdFOyYjeDMzODsiPjwhRU5USVRZIG5nZXFzbGFudCAiJiN4MkE3RTsmI3gzMzg7Ij48IUVOVElUWSBsZXNkb3QgIiYjeDJBN0Y7Ij48IUVOVElUWSBnZXNkb3QgIiYjeDJBODA7Ij48IUVOVElUWSBsZXNkb3RvICImI3gyQTgxOyI%2BPCFFTlRJVFkgZ2VzZG90byAiJiN4MkE4MjsiPjwhRU5USVRZIGxlc2RvdG9yICImI3gyQTgzOyI%2BPCFFTlRJVFkgZ2VzZG90b2wgIiYjeDJBODQ7Ij48IUVOVElUWSBsYXAgIiYjeDJBODU7Ij48IUVOVElUWSBsZXNzYXBwcm94ICImI3gyQTg1OyI%2BPCFFTlRJVFkgZ2FwICImI3gyQTg2OyI%2BPCFFTlRJVFkgZ3RyYXBwcm94ICImI3gyQTg2OyI%2BPCFFTlRJVFkgbG5lICImI3gyQTg3OyI%2BPCFFTlRJVFkgbG5lcSAiJiN4MkE4NzsiPjwhRU5USVRZIGduZSAiJiN4MkE4ODsiPjwhRU5USVRZIGduZXEgIiYjeDJBODg7Ij48IUVOVElUWSBsbmFwICImI3gyQTg5OyI%2BPCFFTlRJVFkgbG5hcHByb3ggIiYjeDJBODk7Ij48IUVOVElUWSBnbmFwICImI3gyQThBOyI%2BPCFFTlRJVFkgZ25hcHByb3ggIiYjeDJBOEE7Ij48IUVOVElUWSBsRWcgIiYjeDJBOEI7Ij48IUVOVElUWSBsZXNzZXFxZ3RyICImI3gyQThCOyI%2BPCFFTlRJVFkgZ0VsICImI3gyQThDOyI%2BPCFFTlRJVFkgZ3RyZXFxbGVzcyAiJiN4MkE4QzsiPjwhRU5USVRZIGxzaW1lICImI3gyQThEOyI%2BPCFFTlRJVFkgZ3NpbWUgIiYjeDJBOEU7Ij48IUVOVElUWSBsc2ltZyAiJiN4MkE4RjsiPjwhRU5USVRZIGdzaW1sICImI3gyQTkwOyI%2BPCFFTlRJVFkgbGdFICImI3gyQTkxOyI%2BPCFFTlRJVFkgZ2xFICImI3gyQTkyOyI%2BPCFFTlRJVFkgbGVzZ2VzICImI3gyQTkzOyI%2BPCFFTlRJVFkgZ2VzbGVzICImI3gyQTk0OyI%2BPCFFTlRJVFkgZWxzICImI3gyQTk1OyI%2BPCFFTlRJVFkgZXFzbGFudGxlc3MgIiYjeDJBOTU7Ij48IUVOVElUWSBlZ3MgIiYjeDJBOTY7Ij48IUVOVElUWSBlcXNsYW50Z3RyICImI3gyQTk2OyI%2BPCFFTlRJVFkgZWxzZG90ICImI3gyQTk3OyI%2BPCFFTlRJVFkgZWdzZG90ICImI3gyQTk4OyI%2BPCFFTlRJVFkgZWwgIiYjeDJBOTk7Ij48IUVOVElUWSBlZyAiJiN4MkE5QTsiPjwhRU5USVRZIHNpbWwgIiYjeDJBOUQ7Ij48IUVOVElUWSBzaW1nICImI3gyQTlFOyI%2BPCFFTlRJVFkgc2ltbEUgIiYjeDJBOUY7Ij48IUVOVElUWSBzaW1nRSAiJiN4MkFBMDsiPjwhRU5USVRZIExlc3NMZXNzICImI3gyQUExOyI%2BPCFFTlRJVFkgTm90TmVzdGVkTGVzc0xlc3MgIiYjeDJBQTE7JiN4MzM4OyI%2BPCFFTlRJVFkgR3JlYXRlckdyZWF0ZXIgIiYjeDJBQTI7Ij48IUVOVElUWSBOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlciAiJiN4MkFBMjsmI3gzMzg7Ij48IUVOVElUWSBnbGogIiYjeDJBQTQ7Ij48IUVOVElUWSBnbGEgIiYjeDJBQTU7Ij48IUVOVElUWSBsdGNjICImI3gyQUE2OyI%2BPCFFTlRJVFkgZ3RjYyAiJiN4MkFBNzsiPjwhRU5USVRZIGxlc2NjICImI3gyQUE4OyI%2BPCFFTlRJVFkgZ2VzY2MgIiYjeDJBQTk7Ij48IUVOVElUWSBzbXQgIiYjeDJBQUE7Ij48IUVOVElUWSBsYXQgIiYjeDJBQUI7Ij48IUVOVElUWSBzbXRlICImI3gyQUFDOyI%2BPCFFTlRJVFkgc210ZXMgIiYjeDJBQUM7JiN4RkUwMDsiPjwhRU5USVRZIGxhdGUgIiYjeDJBQUQ7Ij48IUVOVElUWSBsYXRlcyAiJiN4MkFBRDsmI3hGRTAwOyI%2BPCFFTlRJVFkgYnVtcEUgIiYjeDJBQUU7Ij48IUVOVElUWSBwcmUgIiYjeDJBQUY7Ij48IUVOVElUWSBwcmVjZXEgIiYjeDJBQUY7Ij48IUVOVElUWSBQcmVjZWRlc0VxdWFsICImI3gyQUFGOyI%2BPCFFTlRJVFkgbnByZSAiJiN4MkFBRjsmI3gzMzg7Ij48IUVOVElUWSBucHJlY2VxICImI3gyQUFGOyYjeDMzODsiPjwhRU5USVRZIE5vdFByZWNlZGVzRXF1YWwgIiYjeDJBQUY7JiN4MzM4OyI%2BPCFFTlRJVFkgc2NlICImI3gyQUIwOyI%2BPCFFTlRJVFkgc3VjY2VxICImI3gyQUIwOyI%2BPCFFTlRJVFkgU3VjY2VlZHNFcXVhbCAiJiN4MkFCMDsiPjwhRU5USVRZIG5zY2UgIiYjeDJBQjA7JiN4MzM4OyI%2BPCFFTlRJVFkgbnN1Y2NlcSAiJiN4MkFCMDsmI3gzMzg7Ij48IUVOVElUWSBOb3RTdWNjZWVkc0VxdWFsICImI3gyQUIwOyYjeDMzODsiPjwhRU5USVRZIHByRSAiJiN4MkFCMzsiPjwhRU5USVRZIHNjRSAiJiN4MkFCNDsiPjwhRU5USVRZIHBybkUgIiYjeDJBQjU7Ij48IUVOVElUWSBwcmVjbmVxcSAiJiN4MkFCNTsiPjwhRU5USVRZIHNjbkUgIiYjeDJBQjY7Ij48IUVOVElUWSBzdWNjbmVxcSAiJiN4MkFCNjsiPjwhRU5USVRZIHByYXAgIiYjeDJBQjc7Ij48IUVOVElUWSBwcmVjYXBwcm94ICImI3gyQUI3OyI%2BPCFFTlRJVFkgc2NhcCAiJiN4MkFCODsiPjwhRU5USVRZIHN1Y2NhcHByb3ggIiYjeDJBQjg7Ij48IUVOVElUWSBwcm5hcCAiJiN4MkFCOTsiPjwhRU5USVRZIHByZWNuYXBwcm94ICImI3gyQUI5OyI%2BPCFFTlRJVFkgc2NuYXAgIiYjeDJBQkE7Ij48IUVOVElUWSBzdWNjbmFwcHJveCAiJiN4MkFCQTsiPjwhRU5USVRZIFByICImI3gyQUJCOyI%2BPCFFTlRJVFkgU2MgIiYjeDJBQkM7Ij48IUVOVElUWSBzdWJkb3QgIiYjeDJBQkQ7Ij48IUVOVElUWSBzdXBkb3QgIiYjeDJBQkU7Ij48IUVOVElUWSBzdWJwbHVzICImI3gyQUJGOyI%2BPCFFTlRJVFkgc3VwcGx1cyAiJiN4MkFDMDsiPjwhRU5USVRZIHN1Ym11bHQgIiYjeDJBQzE7Ij48IUVOVElUWSBzdXBtdWx0ICImI3gyQUMyOyI%2BPCFFTlRJVFkgc3ViZWRvdCAiJiN4MkFDMzsiPjwhRU5USVRZIHN1cGVkb3QgIiYjeDJBQzQ7Ij48IUVOVElUWSBzdWJFICImI3gyQUM1OyI%2BPCFFTlRJVFkgc3Vic2V0ZXFxICImI3gyQUM1OyI%2BPCFFTlRJVFkgbnN1YkUgIiYjeDJBQzU7JiN4MzM4OyI%2BPCFFTlRJVFkgbnN1YnNldGVxcSAiJiN4MkFDNTsmI3gzMzg7Ij48IUVOVElUWSBzdXBFICImI3gyQUM2OyI%2BPCFFTlRJVFkgc3Vwc2V0ZXFxICImI3gyQUM2OyI%2BPCFFTlRJVFkgbnN1cEUgIiYjeDJBQzY7JiN4MzM4OyI%2BPCFFTlRJVFkgbnN1cHNldGVxcSAiJiN4MkFDNjsmI3gzMzg7Ij48IUVOVElUWSBzdWJzaW0gIiYjeDJBQzc7Ij48IUVOVElUWSBzdXBzaW0gIiYjeDJBQzg7Ij48IUVOVElUWSBzdWJuRSAiJiN4MkFDQjsiPjwhRU5USVRZIHN1YnNldG5lcXEgIiYjeDJBQ0I7Ij48IUVOVElUWSB2c3VibkUgIiYjeDJBQ0I7JiN4RkUwMDsiPjwhRU5USVRZIHZhcnN1YnNldG5lcXEgIiYjeDJBQ0I7JiN4RkUwMDsiPjwhRU5USVRZIHN1cG5FICImI3gyQUNDOyI%2BPCFFTlRJVFkgc3Vwc2V0bmVxcSAiJiN4MkFDQzsiPjwhRU5USVRZIHZzdXBuRSAiJiN4MkFDQzsmI3hGRTAwOyI%2BPCFFTlRJVFkgdmFyc3Vwc2V0bmVxcSAiJiN4MkFDQzsmI3hGRTAwOyI%2BPCFFTlRJVFkgY3N1YiAiJiN4MkFDRjsiPjwhRU5USVRZIGNzdXAgIiYjeDJBRDA7Ij48IUVOVElUWSBjc3ViZSAiJiN4MkFEMTsiPjwhRU5USVRZIGNzdXBlICImI3gyQUQyOyI%2BPCFFTlRJVFkgc3Vic3VwICImI3gyQUQzOyI%2BPCFFTlRJVFkgc3Vwc3ViICImI3gyQUQ0OyI%2BPCFFTlRJVFkgc3Vic3ViICImI3gyQUQ1OyI%2BPCFFTlRJVFkgc3Vwc3VwICImI3gyQUQ2OyI%2BPCFFTlRJVFkgc3VwaHN1YiAiJiN4MkFENzsiPjwhRU5USVRZIHN1cGRzdWIgIiYjeDJBRDg7Ij48IUVOVElUWSBmb3JrdiAiJiN4MkFEOTsiPjwhRU5USVRZIHRvcGZvcmsgIiYjeDJBREE7Ij48IUVOVElUWSBtbGNwICImI3gyQURCOyI%2BPCFFTlRJVFkgRGFzaHYgIiYjeDJBRTQ7Ij48IUVOVElUWSBEb3VibGVMZWZ0VGVlICImI3gyQUU0OyI%2BPCFFTlRJVFkgVmRhc2hsICImI3gyQUU2OyI%2BPCFFTlRJVFkgQmFydiAiJiN4MkFFNzsiPjwhRU5USVRZIHZCYXIgIiYjeDJBRTg7Ij48IUVOVElUWSB2QmFydiAiJiN4MkFFOTsiPjwhRU5USVRZIFZiYXIgIiYjeDJBRUI7Ij48IUVOVElUWSBOb3QgIiYjeDJBRUM7Ij48IUVOVElUWSBiTm90ICImI3gyQUVEOyI%2BPCFFTlRJVFkgcm5taWQgIiYjeDJBRUU7Ij48IUVOVElUWSBjaXJtaWQgIiYjeDJBRUY7Ij48IUVOVElUWSBtaWRjaXIgIiYjeDJBRjA7Ij48IUVOVElUWSB0b3BjaXIgIiYjeDJBRjE7Ij48IUVOVElUWSBuaHBhciAiJiN4MkFGMjsiPjwhRU5USVRZIHBhcnNpbSAiJiN4MkFGMzsiPjwhRU5USVRZIHBhcnNsICImI3gyQUZEOyI%2BPCFFTlRJVFkgbnBhcnNsICImI3gyQUZEOyYjeDIwRTU7Ij48IUVOVElUWSBmZmxpZyAiJiN4RkIwMDsiPjwhRU5USVRZIGZpbGlnICImI3hGQjAxOyI%2BPCFFTlRJVFkgZmxsaWcgIiYjeEZCMDI7Ij48IUVOVElUWSBmZmlsaWcgIiYjeEZCMDM7Ij48IUVOVElUWSBmZmxsaWcgIiYjeEZCMDQ7Ij48IUVOVElUWSBBc2NyICImI3gxRDQ5QzsiPjwhRU5USVRZIENzY3IgIiYjeDFENDlFOyI%2BPCFFTlRJVFkgRHNjciAiJiN4MUQ0OUY7Ij48IUVOVElUWSBHc2NyICImI3gxRDRBMjsiPjwhRU5USVRZIEpzY3IgIiYjeDFENEE1OyI%2BPCFFTlRJVFkgS3NjciAiJiN4MUQ0QTY7Ij48IUVOVElUWSBOc2NyICImI3gxRDRBOTsiPjwhRU5USVRZIE9zY3IgIiYjeDFENEFBOyI%2BPCFFTlRJVFkgUHNjciAiJiN4MUQ0QUI7Ij48IUVOVElUWSBRc2NyICImI3gxRDRBQzsiPjwhRU5USVRZIFNzY3IgIiYjeDFENEFFOyI%2BPCFFTlRJVFkgVHNjciAiJiN4MUQ0QUY7Ij48IUVOVElUWSBVc2NyICImI3gxRDRCMDsiPjwhRU5USVRZIFZzY3IgIiYjeDFENEIxOyI%2BPCFFTlRJVFkgV3NjciAiJiN4MUQ0QjI7Ij48IUVOVElUWSBYc2NyICImI3gxRDRCMzsiPjwhRU5USVRZIFlzY3IgIiYjeDFENEI0OyI%2BPCFFTlRJVFkgWnNjciAiJiN4MUQ0QjU7Ij48IUVOVElUWSBhc2NyICImI3gxRDRCNjsiPjwhRU5USVRZIGJzY3IgIiYjeDFENEI3OyI%2BPCFFTlRJVFkgY3NjciAiJiN4MUQ0Qjg7Ij48IUVOVElUWSBkc2NyICImI3gxRDRCOTsiPjwhRU5USVRZIGZzY3IgIiYjeDFENEJCOyI%2BPCFFTlRJVFkgaHNjciAiJiN4MUQ0QkQ7Ij48IUVOVElUWSBpc2NyICImI3gxRDRCRTsiPjwhRU5USVRZIGpzY3IgIiYjeDFENEJGOyI%2BPCFFTlRJVFkga3NjciAiJiN4MUQ0QzA7Ij48IUVOVElUWSBsc2NyICImI3gxRDRDMTsiPjwhRU5USVRZIG1zY3IgIiYjeDFENEMyOyI%2BPCFFTlRJVFkgbnNjciAiJiN4MUQ0QzM7Ij48IUVOVElUWSBwc2NyICImI3gxRDRDNTsiPjwhRU5USVRZIHFzY3IgIiYjeDFENEM2OyI%2BPCFFTlRJVFkgcnNjciAiJiN4MUQ0Qzc7Ij48IUVOVElUWSBzc2NyICImI3gxRDRDODsiPjwhRU5USVRZIHRzY3IgIiYjeDFENEM5OyI%2BPCFFTlRJVFkgdXNjciAiJiN4MUQ0Q0E7Ij48IUVOVElUWSB2c2NyICImI3gxRDRDQjsiPjwhRU5USVRZIHdzY3IgIiYjeDFENENDOyI%2BPCFFTlRJVFkgeHNjciAiJiN4MUQ0Q0Q7Ij48IUVOVElUWSB5c2NyICImI3gxRDRDRTsiPjwhRU5USVRZIHpzY3IgIiYjeDFENENGOyI%2BPCFFTlRJVFkgQWZyICImI3gxRDUwNDsiPjwhRU5USVRZIEJmciAiJiN4MUQ1MDU7Ij48IUVOVElUWSBEZnIgIiYjeDFENTA3OyI%2BPCFFTlRJVFkgRWZyICImI3gxRDUwODsiPjwhRU5USVRZIEZmciAiJiN4MUQ1MDk7Ij48IUVOVElUWSBHZnIgIiYjeDFENTBBOyI%2BPCFFTlRJVFkgSmZyICImI3gxRDUwRDsiPjwhRU5USVRZIEtmciAiJiN4MUQ1MEU7Ij48IUVOVElUWSBMZnIgIiYjeDFENTBGOyI%2BPCFFTlRJVFkgTWZyICImI3gxRDUxMDsiPjwhRU5USVRZIE5mciAiJiN4MUQ1MTE7Ij48IUVOVElUWSBPZnIgIiYjeDFENTEyOyI%2BPCFFTlRJVFkgUGZyICImI3gxRDUxMzsiPjwhRU5USVRZIFFmciAiJiN4MUQ1MTQ7Ij48IUVOVElUWSBTZnIgIiYjeDFENTE2OyI%2BPCFFTlRJVFkgVGZyICImI3gxRDUxNzsiPjwhRU5USVRZIFVmciAiJiN4MUQ1MTg7Ij48IUVOVElUWSBWZnIgIiYjeDFENTE5OyI%2BPCFFTlRJVFkgV2ZyICImI3gxRDUxQTsiPjwhRU5USVRZIFhmciAiJiN4MUQ1MUI7Ij48IUVOVElUWSBZZnIgIiYjeDFENTFDOyI%2BPCFFTlRJVFkgYWZyICImI3gxRDUxRTsiPjwhRU5USVRZIGJmciAiJiN4MUQ1MUY7Ij48IUVOVElUWSBjZnIgIiYjeDFENTIwOyI%2BPCFFTlRJVFkgZGZyICImI3gxRDUyMTsiPjwhRU5USVRZIGVmciAiJiN4MUQ1MjI7Ij48IUVOVElUWSBmZnIgIiYjeDFENTIzOyI%2BPCFFTlRJVFkgZ2ZyICImI3gxRDUyNDsiPjwhRU5USVRZIGhmciAiJiN4MUQ1MjU7Ij48IUVOVElUWSBpZnIgIiYjeDFENTI2OyI%2BPCFFTlRJVFkgamZyICImI3gxRDUyNzsiPjwhRU5USVRZIGtmciAiJiN4MUQ1Mjg7Ij48IUVOVElUWSBsZnIgIiYjeDFENTI5OyI%2BPCFFTlRJVFkgbWZyICImI3gxRDUyQTsiPjwhRU5USVRZIG5mciAiJiN4MUQ1MkI7Ij48IUVOVElUWSBvZnIgIiYjeDFENTJDOyI%2BPCFFTlRJVFkgcGZyICImI3gxRDUyRDsiPjwhRU5USVRZIHFmciAiJiN4MUQ1MkU7Ij48IUVOVElUWSByZnIgIiYjeDFENTJGOyI%2BPCFFTlRJVFkgc2ZyICImI3gxRDUzMDsiPjwhRU5USVRZIHRmciAiJiN4MUQ1MzE7Ij48IUVOVElUWSB1ZnIgIiYjeDFENTMyOyI%2BPCFFTlRJVFkgdmZyICImI3gxRDUzMzsiPjwhRU5USVRZIHdmciAiJiN4MUQ1MzQ7Ij48IUVOVElUWSB4ZnIgIiYjeDFENTM1OyI%2BPCFFTlRJVFkgeWZyICImI3gxRDUzNjsiPjwhRU5USVRZIHpmciAiJiN4MUQ1Mzc7Ij48IUVOVElUWSBBb3BmICImI3gxRDUzODsiPjwhRU5USVRZIEJvcGYgIiYjeDFENTM5OyI%2BPCFFTlRJVFkgRG9wZiAiJiN4MUQ1M0I7Ij48IUVOVElUWSBFb3BmICImI3gxRDUzQzsiPjwhRU5USVRZIEZvcGYgIiYjeDFENTNEOyI%2BPCFFTlRJVFkgR29wZiAiJiN4MUQ1M0U7Ij48IUVOVElUWSBJb3BmICImI3gxRDU0MDsiPjwhRU5USVRZIEpvcGYgIiYjeDFENTQxOyI%2BPCFFTlRJVFkgS29wZiAiJiN4MUQ1NDI7Ij48IUVOVElUWSBMb3BmICImI3gxRDU0MzsiPjwhRU5USVRZIE1vcGYgIiYjeDFENTQ0OyI%2BPCFFTlRJVFkgT29wZiAiJiN4MUQ1NDY7Ij48IUVOVElUWSBTb3BmICImI3gxRDU0QTsiPjwhRU5USVRZIFRvcGYgIiYjeDFENTRCOyI%2BPCFFTlRJVFkgVW9wZiAiJiN4MUQ1NEM7Ij48IUVOVElUWSBWb3BmICImI3gxRDU0RDsiPjwhRU5USVRZIFdvcGYgIiYjeDFENTRFOyI%2BPCFFTlRJVFkgWG9wZiAiJiN4MUQ1NEY7Ij48IUVOVElUWSBZb3BmICImI3gxRDU1MDsiPjwhRU5USVRZIGFvcGYgIiYjeDFENTUyOyI%2BPCFFTlRJVFkgYm9wZiAiJiN4MUQ1NTM7Ij48IUVOVElUWSBjb3BmICImI3gxRDU1NDsiPjwhRU5USVRZIGRvcGYgIiYjeDFENTU1OyI%2BPCFFTlRJVFkgZW9wZiAiJiN4MUQ1NTY7Ij48IUVOVElUWSBmb3BmICImI3gxRDU1NzsiPjwhRU5USVRZIGdvcGYgIiYjeDFENTU4OyI%2BPCFFTlRJVFkgaG9wZiAiJiN4MUQ1NTk7Ij48IUVOVElUWSBpb3BmICImI3gxRDU1QTsiPjwhRU5USVRZIGpvcGYgIiYjeDFENTVCOyI%2BPCFFTlRJVFkga29wZiAiJiN4MUQ1NUM7Ij48IUVOVElUWSBsb3BmICImI3gxRDU1RDsiPjwhRU5USVRZIG1vcGYgIiYjeDFENTVFOyI%2BPCFFTlRJVFkgbm9wZiAiJiN4MUQ1NUY7Ij48IUVOVElUWSBvb3BmICImI3gxRDU2MDsiPjwhRU5USVRZIHBvcGYgIiYjeDFENTYxOyI%2BPCFFTlRJVFkgcW9wZiAiJiN4MUQ1NjI7Ij48IUVOVElUWSByb3BmICImI3gxRDU2MzsiPjwhRU5USVRZIHNvcGYgIiYjeDFENTY0OyI%2BPCFFTlRJVFkgdG9wZiAiJiN4MUQ1NjU7Ij48IUVOVElUWSB1b3BmICImI3gxRDU2NjsiPjwhRU5USVRZIHZvcGYgIiYjeDFENTY3OyI%2BPCFFTlRJVFkgd29wZiAiJiN4MUQ1Njg7Ij48IUVOVElUWSB4b3BmICImI3gxRDU2OTsiPjwhRU5USVRZIHlvcGYgIiYjeDFENTZBOyI%2BPCFFTlRJVFkgem9wZiAiJiN4MUQ1NkI7Ij4%3D>the URL given by this
+ link</a>. (This URL is a DTD containing the entity reference
+ declarations for the names listed in the <a href=#named-character-references>named character
+ references</a> section.)</p>
+
+ <ul class=brief><li><code title="">-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN</code></li>
+ <li><code title="">-//W3C//DTD&nbsp;XHTML&nbsp;1.1//EN</code></li>
+ <li><code title="">-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Strict//EN</code></li>
+ <li><code title="">-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Frameset//EN</code></li>
+ <li><code title="">-//W3C//DTD&nbsp;XHTML&nbsp;Basic&nbsp;1.0//EN</code></li>
+ <li><code title="">-//W3C//DTD&nbsp;XHTML&nbsp;1.1&nbsp;plus&nbsp;MathML&nbsp;2.0//EN</code></li>
+ <li><code title="">-//W3C//DTD&nbsp;XHTML&nbsp;1.1&nbsp;plus&nbsp;MathML&nbsp;2.0&nbsp;plus&nbsp;SVG&nbsp;1.1//EN</code></li>
+ <li><code title="">-//W3C//DTD&nbsp;MathML&nbsp;2.0//EN</code></li>
+ <li><code title="">-//WAPFORUM//DTD&nbsp;XHTML&nbsp;Mobile&nbsp;1.0//EN</code></li>
+ </ul><p>Furthermore, user agents should attempt to retrieve the above
+ external entity's content when one of the above public identifiers
+ is used, and should not attempt to retrieve any other external
+ entity's content.</p>
+
+ <p class=note>This is not strictly a <a href=#willful-violation title="willful
+ violation">violation</a> of the XML specification, but it does
+ contradict the spirit of the XML specification's requirements. This
+ is motivated by a desire for user agents to all handle entities in
+ an interoperable fashion without requiring any network access for
+ handling external subsets. <a href=#refsXML>[XML]</a></p>
+
+ <p id=scriptTagXML>When an <a href=#xml-parser>XML parser</a> creates a
+ <code><a href=#the-script-element>script</a></code> element, it must be marked as being
+ <a href=#parser-inserted>"parser-inserted"</a> and its <a href=#force-async>"force-async"</a>
+ flag must be unset. If the parser was originally created for the
+ <a href=#xml-fragment-parsing-algorithm>XML fragment parsing algorithm</a>, then the element must
+ be marked as <a href=#already-started>"already started"</a> also. When the element's
+ end tag is parsed, the user agent must <a href=#provide-a-stable-state>provide a stable
+ state</a>, and then <a href=#prepare-a-script title="prepare a script">prepare</a>
+ the <code><a href=#the-script-element>script</a></code> element. If this causes there to be a
+ <a href=#pending-parsing-blocking-script>pending parsing-blocking script</a>, then the user agent
+ must run the following steps:</p>
+
+ <ol><li><p>Block this instance of the <a href=#xml-parser>XML parser</a>, such
+ that the <a href=#event-loop>event loop</a> will not run <a href=#concept-task title=concept-task>tasks</a> that invoke it.</li>
+
+ <li><p><a href=#spin-the-event-loop>Spin the event loop</a> until the parser's
+ <code><a href=#document>Document</a></code> <a href=#has-no-style-sheet-that-is-blocking-scripts>has no style sheet that is blocking
+ scripts</a> and the <a href=#pending-parsing-blocking-script>pending parsing-blocking
+ script</a>'s <a href=#ready-to-be-parser-executed>"ready to be parser-executed"</a> flag is
+ set.</li>
+
+ <li><p>Unblock this instance of the <a href=#xml-parser>XML parser</a>, such
+ that <a href=#concept-task title=concept-task>tasks</a> that invoke it can
+ again be run.</li>
+
+ <li><p><a href=#execute-the-script-block title="execute the script block">Execute</a> the
+ <a href=#pending-parsing-blocking-script>pending parsing-blocking script</a>.</li>
+
+ <li><p>There is no longer a <a href=#pending-parsing-blocking-script>pending parsing-blocking
+ script</a>.</li>
+
+ </ol><p class=note>Since the <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> API is not
+ available for <a href=#xml-documents>XML documents</a>, much of the complexity in
+ the <a href=#html-parser>HTML parser</a> is not needed in the <a href=#xml-parser>XML
+ parser</a>.</p>
+
+ <p>Certain algorithms in this specification <dfn id=feed-the-parser title="feed the
+ parser">spoon-feed the parser</dfn> characters one string at a
+ time. In such cases, the <a href=#xml-parser>XML parser</a> must act as it
+ would have if faced with a single string consisting of the
+ concatenation of all those characters.</p>
+
+ <p>When an <a href=#xml-parser>XML parser</a> reaches the end of its input, it
+ must <a href=#stop-parsing>stop parsing</a>, following the same rules as the
+ <a href=#html-parser>HTML parser</a>. An <a href=#xml-parser>XML parser</a> can also be
+ <a href=#abort-a-parser title="abort a parser">aborted</a>, which must again by
+ done in the same way as for an <a href=#html-parser>HTML parser</a>.</p>
+
+ <p>For the purposes of conformance checkers, if a resource is
+ determined to be in <a href=#the-xhtml-syntax>the XHTML syntax</a>, then it is an
+ <a href=#xml-documents title="XML documents">XML document</a>.</p>
+
+
+
+ <h3 id=serializing-xhtml-fragments><span class=secno>14.3 </span>Serializing XHTML fragments</h3>
+
+ <p>The <dfn id=xml-fragment-serialization-algorithm>XML fragment serialization algorithm</dfn> for a
+ <code><a href=#document>Document</a></code> or <code><a href=#element>Element</a></code> node either returns a
+ fragment of XML that represents that node or throws an
+ exception.</p>
+
+ <p>For <code><a href=#document>Document</a></code>s, the algorithm must return a string in
+ the form of a <a href=http://www.w3.org/TR/xml/#sec-well-formed>document
+ entity</a>, if none of the error cases below apply.</p>
+
+ <p>For <code><a href=#element>Element</a></code>s, the algorithm must return a string in
+ the form of an <a href=http://www.w3.org/TR/xml/#wf-entities>internal general parsed
+ entity</a>, if none of the error cases below apply.</p>
+
+ <p>In both cases, the string returned must be XML
+ namespace-well-formed and must be an isomorphic serialization of all
+ of that node's child nodes, in <a href=#tree-order>tree order</a>. User agents
+ may adjust prefixes and namespace declarations in the serialization
+ (and indeed might be forced to do so in some cases to obtain
+ namespace-well-formed XML). User agents may use a combination of
+ regular text, character references, and CDATA sections to represent
+ <a href=#text-node title="text node">text nodes</a> in the DOM (and indeed
+ might be forced to use representations that don't match the DOM's,
+ e.g. if a <code><a href=#cdatasection>CDATASection</a></code> node contains the string "<code title="">]]&gt;</code>").</p>
+
+ <p>For <code><a href=#element>Element</a></code>s, if any of the elements in the
+ serialization are in no namespace, the default namespace in scope
+ for those elements must be explicitly declared as the empty
+ string.<!-- because otherwise round-tripping might break since it'll
+ pick up the surrounding default ns when setting --> (This doesn't
+ apply in the <code><a href=#document>Document</a></code> case.) <a href=#refsXML>[XML]</a> <a href=#refsXMLNS>[XMLNS]</a></p>
+
+ <p>For the purposes of this section, an internal general parsed
+ entity is considered XML namespace-well-formed if a document
+ consisting of an element with no namespace declarations whose
+ contents are the internal general parsed entity would itself be XML
+ namespace-well-formed.</p>
+
+ <p>If any of the following error cases are found in the DOM subtree
+ being serialized, then the algorithm must throw an
+ <code><a href=#invalidstateerror>InvalidStateError</a></code> exception instead of returning a
+ string:</p>
+
+ <ul><li>A <code><a href=#document>Document</a></code> node with no child element nodes.</li>
+
+ <li>A <code><a href=#documenttype>DocumentType</a></code> node that has an external subset
+ public identifier that contains characters that are not matched by
+ the XML <code title="">PubidChar</code> production. <a href=#refsXML>[XML]</a></li>
+
+ <li>A <code><a href=#documenttype>DocumentType</a></code> node that has an external subset
+ system identifier that contains both a U+0022 QUOTATION MARK (")
+ and a U+0027 APOSTROPHE (') or that contains characters that are
+ not matched by the XML <code title="">Char</code> production. <a href=#refsXML>[XML]</a></li>
+
+ <li>A node with a <!--prefix or--> local name containing a U+003A
+ COLON (:).</li> <!--(prefixes can get adjusted, so this isn't an
+ excuse) -->
+
+ <li>A node with a <!--prefix or--> local name that does not match
+ the XML <code title="">Name</code> production. <a href=#refsXML>[XML]</a></li> <!--(again, prefixes can get
+ adjusted, so this isn't an excuse) -->
+
+ <li>An <code><a href=#attr>Attr</a></code> node with no namespace whose local name is
+ the lowercase string "<code title="">xmlns</code>". <a href=#refsXMLNS>[XMLNS]</a></li>
+
+ <li>An <code><a href=#element>Element</a></code> node with two or more attributes with
+ the same local name and namespace.</li>
+
+ <li>An <code><a href=#attr>Attr</a></code> node, <code><a href=#text>Text</a></code> node,
+ <code><a href=#cdatasection>CDATASection</a></code> node, <code><a href=#comment-0>Comment</a></code> node, or
+ <code><a href=#processinginstruction>ProcessingInstruction</a></code> node whose data contains
+ characters that are not matched by the XML <code title="">Char</code> production. <a href=#refsXML>[XML]</a></li>
+
+ <!--<li>A <code>CDATASection</code> node whose data contains the
+ string "<code title="">]]&gt;</code>".</li> (these can be split)-->
+
+ <li>A <code><a href=#comment-0>Comment</a></code> node whose data contains two adjacent
+ U+002D HYPHEN-MINUS characters (-) or ends with such a
+ character.</li>
+
+ <li>A <code><a href=#processinginstruction>ProcessingInstruction</a></code> node whose target name is
+ an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">xml</code>".</li>
+
+ <li>A <code><a href=#processinginstruction>ProcessingInstruction</a></code> node whose target name
+ contains a U+003A COLON (:).</li>
+
+ <li>A <code><a href=#processinginstruction>ProcessingInstruction</a></code> node whose data contains
+ the string "<code title="">?&gt;</code>".</li>
+
+ </ul><p class=note>These are the only ways to make a DOM
+ unserializable. The DOM enforces all the other XML constraints; for
+ example, trying to append two elements to a <code><a href=#document>Document</a></code>
+ node will throw a <code><a href=#hierarchyrequesterror>HierarchyRequestError</a></code> exception.</p>
+
+
+
+ <h3 id=parsing-xhtml-fragments><span class=secno>14.4 </span>Parsing XHTML fragments</h3>
+
+ <p>The <dfn id=xml-fragment-parsing-algorithm>XML fragment parsing algorithm</dfn> either returns a
+ <code><a href=#document>Document</a></code> or throws a <code><a href=#syntaxerror>SyntaxError</a></code> exception.
+ Given a string <var title="">input</var> and an optional context
+ element <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var>, the
+ algorithm is as follows:</p>
+
+ <ol><li>
+
+ <p>Create a new <a href=#xml-parser>XML parser</a>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there is a <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element,
+ <a href=#feed-the-parser>feed the parser</a> just created the string corresponding
+ to the start tag of that element, declaring all the namespace
+ prefixes that are in scope on that element in the DOM, as well as
+ declaring the default namespace (if any) that is in scope on that
+ element in the DOM.</p>
+
+ <p>A namespace prefix is in scope if the DOM Core <code title="">lookupNamespaceURI()</code> method on the element would
+ return a non-null value for that prefix.</p>
+
+ <p>The default namespace is the namespace for which the DOM Core
+ <code title="">isDefaultNamespace()</code> method on the element
+ would return true.</p>
+
+ <p class=note>If there is a <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element, no <code title="">DOCTYPE</code> is passed to the parser, and therefore no
+ external subset is referenced, and therefore no entities will be
+ recognized.</p>
+
+ </li>
+
+ <li>
+
+ <p><a href=#feed-the-parser>Feed the parser</a> just created the string <var title="">input</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there is a <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element,
+ <a href=#feed-the-parser>feed the parser</a> just created the string corresponding
+ to the end tag of that element.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there is an XML well-formedness or XML namespace
+ well-formedness error, then throw a <code><a href=#syntaxerror>SyntaxError</a></code>
+ exception and abort these steps.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there is a <var title=concept-frag-parse-context><a href=#concept-frag-parse-context>context</a></var> element, then
+ return the child nodes of the root element of the resulting
+ <code><a href=#document>Document</a></code>, in <a href=#tree-order>tree order</a>.</p>
+
+ <p>Otherwise, return the children of the <code><a href=#document>Document</a></code>
+ object, in <a href=#tree-order>tree order</a>.</p>
+
+ </li>
+
+ </ol></div>
+
+
+ <div class=impl>
+
+ <h2 id=rendering><span class=secno>15 </span>Rendering</h2>
+
+ <p><i>User agents are not required to present HTML documents in any
+ particular way. However, this section provides a set of suggestions
+ for rendering HTML documents that, if followed, are likely to lead
+ to a user experience that closely resembles the experience intended
+ by the documents' authors. So as to avoid confusion regarding the
+ normativity of this section, RFC2119 terms have not been used.
+ Instead, the term "expected" is used to indicate behavior that will
+ lead to this experience. For the purposes of conformance for user
+ agents designated as <a href=#renderingUA>supporting the suggested
+ default rendering</a>, the term "expected" in this section has the
+ same conformance implications as the RFC2119-defined term
+ "must".</i></p>
+
+
+ <h3 id=introduction-17><span class=secno>15.1 </span>Introduction</h3>
+
+ <p>In general, user agents are expected to support CSS, and many of
+ the suggestions in this section are expressed in CSS terms. User
+ agents that use other presentation mechanisms can derive their
+ expected behavior by translating from the CSS rules given in this
+ section.</p>
+
+ <p>In the absence of style-layer rules to the contrary (e.g. author
+ style sheets), user agents are expected to render an element so that
+ it conveys to the user the meaning that the element
+ <dfn id=represents>represents</dfn>, as described by this specification.</p>
+
+ <p>The suggestions in this section generally assume a visual output
+ medium with a resolution of 96dpi or greater, but HTML is intended
+ to apply to multiple media (it is a <i>media-independent</i>
+ language). User agent implementors are encouraged to adapt the
+ suggestions in this section to their target media.</p>
+
+ <hr><p>An element is <dfn id=being-rendered>being rendered</dfn> if it is <a href=#in-a-document>in a
+ <code>Document</code></a>, either its parent node is itself
+ <a href=#being-rendered>being rendered</a> or it is the <code><a href=#document>Document</a></code> node,
+ and it is not explicitly excluded from the rendering using either:</p>
+ <ul class=brief><li>the CSS 'display' property's 'none' value, or</li>
+ <li>the 'visibility' property's 'collapse' value unless it is being treated as equivalent to the 'hidden' value, or</li>
+ <li>some equivalent in other styling languages.</li>
+ </ul><p class=note>Just being off-screen does not mean the element is
+ not <a href=#being-rendered>being rendered</a>. The presence of the <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute normally means the
+ element is not <a href=#being-rendered>being rendered</a>, though this might be
+ overridden by the style sheets.</p>
+
+ <hr><p>User agents that do not honor author-level CSS style sheets are
+ nonetheless expected to act as if they applied the CSS rules given
+ in these sections in a manner consistent with this specification and
+ the relevant CSS and Unicode specifications. <a href=#refsCSS>[CSS]</a> <a href=#refsUNICODE>[UNICODE]</a> <a href=#refsBIDI>[BIDI]</a></p>
+
+ <p class=note>This is especially important for issues relating to
+ the 'display', 'unicode-bidi', and 'direction' properties.</p>
+
+
+
+ <h3 id=the-css-user-agent-style-sheet-and-presentational-hints><span class=secno>15.2 </span>The CSS user agent style sheet and presentational hints</h3>
+
+ <p>The CSS rules given in these subsections are, except where
+ otherwise specified, expected to be used as part of the user-agent
+ level style sheet defaults for all documents that contain <a href=#html-elements>HTML
+ elements</a>.</p>
+
+ <p>Some rules are intended for the author-level zero-specificity
+ presentational hints part of the CSS cascade; these are explicitly
+ called out as <dfn id=presentational-hints>presentational hints</dfn>.</p>
+
+ <p>Some of the rules regarding left and right margins are given here
+ as appropriate for elements whose 'direction' property is 'ltr', and
+ are expected to be flipped around on elements whose 'direction'
+ property is 'rtl'. These are marked "<dfn id=ltr-specific>LTR-specific</dfn>".</p>
+<!--
+ <p id="case-sensitive-selector-exception">For the purpose of the
+ rules marked "case-sensitive", user agents are expected to use
+ case-sensitive matching of attribute values rather than
+ case-insensitive matching, regardless of whether a case-insensitive
+ matching is normally required for the given attribute.</p>
+-->
+ <p id=case-insensitive-selector-exception>Similarly, for the
+ purpose of the rules marked "case-insensitive", user agents are
+ expected to use <a href=#ascii-case-insensitive>ASCII case-insensitive</a> matching of
+ attribute values rather than case-sensitive matching, even for
+ attributes in XHTML documents.</p>
+
+ <p class=note>These markings only affect the handling of attribute
+ <em>values</em>, not attribute names or element names.</p>
+
+ <hr><p>When the text below says that an attribute <var title="">attribute</var> on an element <var title="">element</var>
+ <dfn id=maps-to-the-pixel-length-property>maps to the pixel length property</dfn> (or properties) <var title="">properties</var>, it means that if <var title="">element</var> has an attribute <var title="">attribute</var> set, and parsing that attribute's value
+ using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a>
+ doesn't generate an error, then the user agent is expected to use
+ the parsed value as a pixel length for a <a href=#presentational-hints title="presentational
+ hints">presentational hint</a> for <var title="">properties</var>.</p>
+
+ <p>When the text below says that an attribute <var title="">attribute</var> on an element <var title="">element</var>
+ <dfn id=maps-to-the-dimension-property>maps to the dimension property</dfn> (or properties) <var title="">properties</var>, it means that if <var title="">element</var> has an attribute <var title="">attribute</var> set, and parsing that attribute's value
+ using the <a href=#rules-for-parsing-dimension-values>rules for parsing dimension values</a> doesn't
+ generate an error, then the user agent is expected to use the parsed
+ dimension as the value for a <a href=#presentational-hints title="presentational
+ hints">presentational hint</a> for <var title="">properties</var>, with the value given as a pixel length if
+ the dimension was an integer, and with the value given as a
+ percentage if the dimension was a percentage.</p>
+
+ <p>When a user agent is to <dfn id=align-descendants>align descendants</dfn> of a node,
+ the user agent is expected to align only those descendants that have
+ both their 'margin-left' and 'margin-right' properties computing to
+ a value other than 'auto', that are over-constrained and that have
+ one of those two margins with a used value forced to a greater
+ value, and that do not themselves have an applicable <code title=attr-align>align</code> attribute. When multiple elements
+ are to <a href=#align-descendants title="align descendants">align</a> a particular
+ descendant, the most deeply nested such element is expected to
+ override the others. Aligned elements are expected to be aligned by
+ having the used values of their left and right margins be set
+ accordingly.</p>
+
+
+
+ <h3 id=non-replaced-elements><span class=secno>15.3 </span>Non-replaced elements</h3>
+
+
+ <h4 id=hidden-elements><span class=secno>15.3.1 </span>Hidden elements</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+[hidden], area, base, basefont, command, datalist, head,
+input[type=hidden], link, menu[type=context], meta, noembed, noframes,
+param, rp, script, source, style, track, title { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ display: none;
+}</pre>
+
+ <p>The user agent is expected to force the 'display' property of
+ <code><a href=#the-noscript-element>noscript</a></code> elements for whom <a href=#concept-n-script title=concept-n-script>scripting is enabled</a> to compute to
+ 'none', irrespective of CSS rules.</p>
+
+
+ <h4 id=the-page><span class=secno>15.3.2 </span>The page</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+html, body { display: block; }</pre>
+
+ <p>For each property in the table below, given a <code><a href=#the-body-element>body</a></code>
+ element, the first attribute that exists <a href=#maps-to-the-pixel-length-property>maps to the pixel
+ length property</a> on the <code><a href=#the-body-element>body</a></code> element. If none of
+ the attributes for a property are found, or if the value of the
+ attribute that was found cannot be parsed successfully, then a
+ default value of 8px is expected to be used for that property
+ instead.</p>
+
+ <table><thead><tr><th>Property
+ <th>Source
+ <tbody><tr><td rowspan=3>'margin-top'
+ <td><code><a href=#the-body-element>body</a></code> element's <code title=attr-body-marginheight><a href=#attr-body-marginheight>marginheight</a></code> attribute
+ <tr><td>The <code><a href=#the-body-element>body</a></code> element's <a href=#container-frame-element>container frame element</a>'s <code title=attr-iframe-marginheight><a href=#attr-iframe-marginheight>marginheight</a></code> attribute
+ <tr><td><code><a href=#the-body-element>body</a></code> element's <code title=attr-body-topmargin>topmargin</code> attribute
+ <tbody><tr><td rowspan=3>'margin-right'
+ <td><code><a href=#the-body-element>body</a></code> element's <code title=attr-body-marginwidth><a href=#attr-body-marginwidth>marginwidth</a></code> attribute
+ <tr><td>The <code><a href=#the-body-element>body</a></code> element's <a href=#container-frame-element>container frame element</a>'s <code title=attr-iframe-marginwidth><a href=#attr-iframe-marginwidth>marginwidth</a></code> attribute
+ <tr><td><code><a href=#the-body-element>body</a></code> element's <code title=attr-body-rightmargin>rightmargin</code> attribute
+ <tbody><tr><td rowspan=3>'margin-bottom'
+ <td><code><a href=#the-body-element>body</a></code> element's <code title=attr-body-marginheight><a href=#attr-body-marginheight>marginheight</a></code> attribute
+ <tr><td>The <code><a href=#the-body-element>body</a></code> element's <a href=#container-frame-element>container frame element</a>'s <code title=attr-iframe-marginheight><a href=#attr-iframe-marginheight>marginheight</a></code> attribute
+ <tr><td><code><a href=#the-body-element>body</a></code> element's <code title=attr-body-bottommargin>bottommargin</code> attribute
+ <tbody><tr><td rowspan=3>'margin-left'
+ <td><code><a href=#the-body-element>body</a></code> element's <code title=attr-body-marginwidth><a href=#attr-body-marginwidth>marginwidth</a></code> attribute
+ <tr><td>The <code><a href=#the-body-element>body</a></code> element's <a href=#container-frame-element>container frame element</a>'s <code title=attr-iframe-marginwidth><a href=#attr-iframe-marginwidth>marginwidth</a></code> attribute
+ <tr><td><code><a href=#the-body-element>body</a></code> element's <code title=attr-body-leftmargin>leftmargin</code> attribute
+ </table><p>If the <code><a href=#the-body-element>body</a></code> element's <code><a href=#document>Document</a></code>'s
+ <a href=#browsing-context>browsing context</a> is a <a href=#nested-browsing-context>nested browsing
+ context</a>, and the <a href=#browsing-context-container>browsing context container</a> of
+ that <a href=#nested-browsing-context>nested browsing context</a> is a <code><a href=#frame>frame</a></code> or
+ <code><a href=#the-iframe-element>iframe</a></code> element, then the <dfn id=container-frame-element>container frame
+ element</dfn> of the <code><a href=#the-body-element>body</a></code> element is that
+ <code><a href=#frame>frame</a></code> or <code><a href=#the-iframe-element>iframe</a></code> element. Otherwise, there
+ is no <a href=#container-frame-element>container frame element</a>.</p>
+
+ <p class=warning>The above requirements imply that a page can
+ change the margins of another page (including one from another
+ <a href=#origin>origin</a>) using, for example, an
+ <code><a href=#the-iframe-element>iframe</a></code>. This is potentially a security risk, as it
+ might in some cases allow an attack to contrive a situation in which
+ a page is rendered not as the author intended, possibly for the
+ purposes of phishing or otherwise misleading the user.</p>
+
+ <hr><p>If the <code><a href=#document>Document</a></code> has a <a href=#root-element>root element</a>, and
+ the <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> is a
+ <a href=#nested-browsing-context>nested browsing context</a>, and the <a href=#browsing-context-container>browsing context
+ container</a> of that <a href=#nested-browsing-context>nested browsing context</a> is a
+ <code><a href=#frame>frame</a></code> or <code><a href=#the-iframe-element>iframe</a></code> element, and that element
+ has a <code title=attr-frames-scrolling>scrolling</code>
+ attribute, then the user agent is expected to compare the value of
+ the attribute in an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> manner to
+ the values in the first column of the following table, and if one of
+ them matches, then the user agent is expected to treat that
+ attribute as a <a href=#presentational-hints title="presentational hints">presentational
+ hint</a> for the aforementioned root element's 'overflow'
+ property, setting it to the value given in the corresponding cell on
+ the same row in the second column:</p>
+
+ <table><thead><tr><th> Attribute value
+ <th> 'overflow' value
+ <tbody><tr><td><code title="">on</code>
+ <td>'scroll'
+ <tr><td><code title="">scroll</code>
+ <td>'scroll'
+ <tr><td><code title="">yes</code>
+ <td>'scroll'
+ <tr><td><code title="">off</code>
+ <td>'hidden'
+ <tr><td><code title="">noscroll</code>
+ <td>'hidden'
+ <tr><td><code title="">no</code>
+ <td>'hidden'
+ <tr><td><code title="">auto</code>
+ <td>'auto'
+ </table><hr><p>When a <code><a href=#document>Document</a></code> is in <a href=#quirks-mode>quirks mode</a>,
+ vertical margins on <a href=#html-elements>HTML elements</a> at the top or bottom
+ of <code><a href=#the-body-element>body</a></code> elements are expected to be collapsed to
+ zero.</p>
+
+ <hr><p>When a <code><a href=#the-body-element>body</a></code> element has a <code title=attr-background><a href=#attr-background>background</a></code> attribute set to a
+ non-empty value, the new value is expected to be <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element, and
+ if this is successful, the user agent is expected to treat the
+ attribute as a <a href=#presentational-hints title="presentational hints">presentational
+ hint</a> setting the element's 'background-image' property to the
+ resulting <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>When a <code><a href=#the-body-element>body</a></code> element has a <code title="">bgcolor</code> attribute set, the new value is expected to
+ be parsed using the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a legacy color
+ value</a>, and if that does not return an error, the user agent
+ is expected to treat the attribute as a <a href=#presentational-hints title="presentational
+ hints">presentational hint</a> setting the element's
+ 'background-color' property to the resulting color.</p>
+
+ <p>When a <code><a href=#the-body-element>body</a></code> element has a <code title=attr-body-text><a href=#attr-body-text>text</a></code> attribute, its value is expected
+ to be parsed using the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a legacy color
+ value</a>, and if that does not return an error, the user
+ agent is expected to treat the attribute as a <a href=#presentational-hints title="presentational hints">presentational hint</a> setting the
+ element's 'color' property to the resulting color.</p>
+
+ <p>When a <code><a href=#the-body-element>body</a></code> element has a <code title=attr-body-link><a href=#attr-body-link>link</a></code> attribute, its value is expected
+ to be parsed using the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a legacy color
+ value</a>, and if that does not return an error, the user agent
+ is expected to treat the attribute as a <a href=#presentational-hints title="presentational
+ hints">presentational hint</a> setting the 'color' property of
+ any element in the <code><a href=#document>Document</a></code> matching the ':link'
+ pseudo-class to the resulting color.</p>
+
+ <p>When a <code><a href=#the-body-element>body</a></code> element has a <code title=attr-body-vlink><a href=#attr-body-vlink>vlink</a></code> attribute, its value is
+ expected to be parsed using the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a legacy
+ color value</a>, and if that does not return an error, the user
+ agent is expected to treat the attribute as a <a href=#presentational-hints title="presentational hints">presentational hint</a> setting the
+ 'color' property of any element in the <code><a href=#document>Document</a></code>
+ matching the ':visited' pseudo-class to the resulting color.</p>
+
+ <p>When a <code><a href=#the-body-element>body</a></code> element has a <code title=attr-body-alink><a href=#attr-body-alink>alink</a></code> attribute, its value is
+ expected to be parsed using the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a legacy
+ color value</a>, and if that does not return an error, the user
+ agent is expected to treat the attribute as a <a href=#presentational-hints title="presentational hints">presentational hint</a> setting the
+ 'color' property of any element in the <code><a href=#document>Document</a></code>
+ matching the ':active' pseudo-class and either the ':link'
+ pseudo-class or the ':visited' pseudo-class to the resulting
+ color.</p>
+
+
+
+ <h4 id=flow-content-1><span class=secno>15.3.3 </span>Flow content</h4>
+
+ <!-- del, ins, and map are inline. -->
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+address, blockquote, center, div, figure, figcaption, footer, form,
+header, hr, legend, listing, p, plaintext, pre, summary, xmp {
+ display: block; unicode-bidi: isolate;
+}
+
+blockquote, figure, listing, p, plaintext, pre, xmp {
+ margin-top: 1em; margin-bottom: 1em;
+}
+
+blockquote, figure { margin-left: 40px; margin-right: 40px; }
+
+address { font-style: italic; }
+listing, plaintext, pre, xmp {
+ font-family: monospace; white-space: pre;
+}</pre>
+
+ <p>The following rules are also expected to apply, as
+ <a href=#presentational-hints>presentational hints</a>:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+pre[wrap] { white-space: pre-wrap; }</pre>
+
+ <p>In <a href=#quirks-mode>quirks mode</a>, the following rules are also
+ expected to apply:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+form { margin-bottom: 1em; }</pre>
+
+ <hr><p>The <code><a href=#center>center</a></code> element, and the <code><a href=#the-div-element>div</a></code> element
+ when it has an <code title=attr-div-align><a href=#attr-div-align>align</a></code> attribute
+ whose value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for
+ either the string "<code title="">center</code>" or the string
+ "<code title="">middle</code>", are expected to center text within
+ themselves, as if they had their 'text-align' property set to
+ 'center' in a <a href=#presentational-hints title="presentational hints">presentational
+ hint</a>, and to <a href=#align-descendants>align descendants</a> to the
+ center.</p>
+
+ <p>The <code><a href=#the-div-element>div</a></code> element, when it has an <code title=attr-align>align</code> attribute whose value is an
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">left</code>", is expected to left-align text within itself,
+ as if it had its 'text-align' property set to 'left' in a <a href=#presentational-hints title="presentational hints">presentational hint</a>, and to
+ <a href=#align-descendants>align descendants</a> to the left.</p>
+
+ <p>The <code><a href=#the-div-element>div</a></code> element, when it has an <code title=attr-align>align</code> attribute whose value is an
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">right</code>", is expected to right-align text within
+ itself, as if it had its 'text-align' property set to 'right' in a
+ <a href=#presentational-hints title="presentational hints">presentational hint</a>, and
+ to <a href=#align-descendants>align descendants</a> to the right.</p>
+
+ <p>The <code><a href=#the-div-element>div</a></code> element, when it has an <code title=attr-align>align</code> attribute whose value is an
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">justify</code>", is expected to full-justify text within
+ itself, as if it had its 'text-align' property set to 'justify' in a
+ <a href=#presentational-hints title="presentational hints">presentational hint</a>, and
+ to <a href=#align-descendants>align descendants</a> to the left.</p>
+
+
+
+ <h4 id=phrasing-content-1><span class=secno>15.3.4 </span>Phrasing content</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+cite, dfn, em, i, var { font-style: italic; }
+b, strong { font-weight: bold; }
+code, kbd, samp, tt { font-family: monospace; }
+big { font-size: larger; }
+small { font-size: smaller; }
+
+sub { vertical-align: sub; }
+sup { vertical-align: super; }
+sub, sup { line-height: normal; font-size: smaller; }
+
+ruby { display: ruby; }
+rt { display: ruby-text; }
+
+:link { color: #0000EE; }
+:visited { color: #551A8B; }
+:link, :visited { text-decoration: underline; }
+a:link[rel~=help], a:visited[rel~=help],
+area:link[rel~=help], area:visited[rel~=help] { cursor: help; }
+
+:focus { outline: auto; }
+
+mark { background: yellow; color: black; } /* this color is just a suggestion and can be changed based on implementation feedback */
+
+abbr[title], acronym[title] { text-decoration: dotted underline; }<!-- CSS3 http://dev.w3.org/csswg/css3-text/#text-decoration-style -->
+ins, u { text-decoration: underline; }
+del, s, strike { text-decoration: line-through; }
+blink { text-decoration: blink; }
+
+q::before { content: open-quote; }
+q::after { content: close-quote; }
+
+br { content: '\A'; white-space: pre; }
+nobr { white-space: nowrap; }</pre>
+
+ <p>The following rules are also expected to apply, as
+ <a href=#presentational-hints>presentational hints</a>:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+br[clear=left] { clear: left; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+br[clear=right] { clear: right; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+br[clear=all], br[clear=both] { clear: both; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */</pre>
+
+ <p>For the purposes of the CSS ruby model, runs of children of
+ <code><a href=#the-ruby-element>ruby</a></code> elements that are not <code><a href=#the-rt-element>rt</a></code> or
+ <code><a href=#the-rp-element>rp</a></code> elements are expected to be wrapped in anonymous
+ boxes whose 'display' property has the value 'ruby-base'. <a href=#refsCSSRUBY>[CSSRUBY]</a></p>
+
+ <p>User agents that do not support correct ruby rendering are
+ expected to render parentheses around the text of <code><a href=#the-rt-element>rt</a></code>
+ elements in the absence of <code><a href=#the-rp-element>rp</a></code> elements.</p>
+
+ <p>Rules setting the 'quotes' property appropriately for the locales
+ and languages understood by the user are expected to be present.</p>
+
+ <p class=note>CSS can also be used by authors to change the
+ quotation marks used using the 'quotes' property. <a href=#refsCSS>[CSS]</a></p>
+
+ <hr><p>User agents are expected to
+ support the 'clear' property on inline elements (in order to render
+ <code><a href=#the-br-element>br</a></code> elements with <code title=attr-br-clear><a href=#attr-br-clear>clear</a></code> attributes) in the manner
+ described in the non-normative note to this effect in CSS2.1.</p>
+ <!-- section 9.5.2 of CSS2.1 -->
+
+ <p>The <code><a href=#the-wbr-element>wbr</a></code> element is expected to override the
+ 'white-space' property and always provide a line-breaking
+ opportunity.</p>
+
+ <p>The initial value for the 'color' property is expected to be
+ black. The initial value for the 'background-color' property is
+ expected to be 'transparent'. The canvas' background is expected to
+ be white.</p>
+
+ <hr><p>When a <code><a href=#font>font</a></code> element has a <code title=attr-font-color>color</code> attribute, its value is
+ expected to be parsed using the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a legacy
+ color value</a>, and if that does not return an error, the user
+ agent is expected to treat the attribute as a <a href=#presentational-hints title="presentational hints">presentational hint</a> setting the
+ element's 'color' property to the resulting color.</p>
+
+ <p>When a <code><a href=#font>font</a></code> element has a <code title=attr-font-face>face</code> attribute, the user agent is
+ expected to treat the attribute as a <a href=#presentational-hints title="presentational
+ hints">presentational hint</a> setting the element's
+ 'font-family' property to the attribute's value.</p>
+
+ <!-- (Apparently only IE supports this?) (Note: if you add this
+ back, make sure to define which of 'size' vs 'pointsize' wins.)
+
+ <p>When a <code>font</code> element has a <code
+ title="attr-font-pointsize">pointsize</code> attribute, the user
+ agent is expected to parse that attribute's value using the
+ <span>rules for parsing non-negative integers</span>, and if this
+ doesn't generate an error, then the user agent is expected to use
+ the parsed value as a <em>point</em> length for a <span
+ title="presentational hints">presentational hint</span> for the
+ 'font-size' property on the element.</p>
+ -->
+
+ <p>When a <code><a href=#font>font</a></code> element has a <code title=attr-font-size>size</code> attribute, the user agent is
+ expected to use the following steps to treat the attribute as a
+ <a href=#presentational-hints title="presentational hints">presentational hint</a>
+ setting the element's 'font-size' property:</p>
+
+ <ol><li><p>Let <var title="">input</var> be the attribute's
+ value.</li>
+
+ <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
+ string.</li>
+
+ <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
+
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, there is no <a href=#presentational-hints title="presentational
+ hints">presentational hint</a>. Abort these steps.</li>
+
+ <li><p>If the character at <var title="">position</var> is a U+002B
+ PLUS SIGN character (+), then let <var title="">mode</var> be
+ <i>relative-plus</i>, and advance <var title="">position</var> to
+ the next character. Otherwise, if the character at <var title="">position</var> is a U+002D HYPHEN-MINUS character (-),
+ then let <var title="">mode</var> be <i>relative-minus</i>, and
+ advance <var title="">position</var> to the next
+ character. Otherwise, let <var title="">mode</var> be
+ <i>absolute</i>.</li>
+
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
+ U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let the
+ resulting sequence be <var title="">digits</var>.</li>
+
+ <li><p>If <var title="">digits</var> is the empty string, there is
+ no <a href=#presentational-hints title="presentational hints">presentational
+ hint</a>. Abort these steps.</li>
+
+ <li><p>Interpret <var title="">digits</var> as a base-ten
+ integer. Let <var title="">value</var> be the resulting
+ number.</li>
+
+ <li>
+
+ <!-- basefont support would go here, but we removed it -->
+
+ <p>If <var title="">mode</var> is <i>relative-plus</i>, then
+ increment <var title="">value</var> by 3. If <var title="">mode</var> is <i>relative-minus</i>, then let <var title="">value</var> be the result of subtracting <var title="">value</var> from 3.</p>
+
+ </li>
+
+ <li><p>If <var title="">value</var> is greater than 7, let it be
+ 7.</li>
+
+ <li><p>If <var title="">value</var> is less than 1, let it be
+ 1.</li>
+
+ <li>
+
+ <p>Set 'font-size' to the keyword corresponding to the value of
+ <var title="">value</var> according to the following table:</p>
+
+ <table><thead><tr><th><var title="">value</var>
+ <th>'font-size' keyword
+ <th>Notes
+ <tbody><tr><td>1
+ <td>xx-small
+ <td>
+ <tr><td>2
+ <td>small
+ <td>
+ <tr><td>3
+ <td>medium
+ <td>
+ <tr><td>4
+ <td>large
+ <td>
+ <tr><td>5
+ <td>x-large
+ <td>
+ <tr><td>6
+ <td>xx-large
+ <td>
+ <tr><td>7
+ <td>x<!---->xx-large
+ <td><i>see below</i>
+ </table><p>The 'x<!---->xx-large' value is a non-CSS value used here to
+ indicate a font size 50% larger than 'xx-large'.</p>
+
+ </li>
+
+ </ol><h4 id=bidirectional-text><span class=secno>15.3.5 </span>Bidirectional text</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+:dir(ltr) { direction: ltr; }
+:dir(rtl) { direction: rtl; }
+[dir] { unicode-bidi: embed; }
+bdi, bdi[dir], output, output[dir], [dir=auto] { unicode-bidi: isolate; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+bdo, bdo[dir] { unicode-bidi: bidi-override; }
+bdo[dir=auto] { unicode-bidi: bidi-override isolate; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+textarea[dir=auto], pre[dir=auto] { unicode-bidi: plaintext; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */</pre>
+
+
+ <h4 id=sections-and-headings><span class=secno>15.3.6 </span>Sections and headings</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+article, aside, h1, h2, h3, h4, h5, h6, hgroup, nav, section {
+ display: block; unicode-bidi: isolate;
+}
+
+h1 { margin-top: 0.67em; margin-bottom: 0.67em; font-size: 2.00em; font-weight: bold; }
+h2 { margin-top: 0.83em; margin-bottom: 0.83em; font-size: 1.50em; font-weight: bold; }
+h3 { margin-top: 1.00em; margin-bottom: 1.00em; font-size: 1.17em; font-weight: bold; }
+h4 { margin-top: 1.33em; margin-bottom: 1.33em; font-size: 1.00em; font-weight: bold; }
+h5 { margin-top: 1.67em; margin-bottom: 1.67em; font-size: 0.83em; font-weight: bold; }
+h6 { margin-top: 2.33em; margin-bottom: 2.33em; font-size: 0.67em; font-weight: bold; }</pre>
+
+ <p>The <code><a href=#the-article-element>article</a></code>, <code><a href=#the-aside-element>aside</a></code>, <code><a href=#the-nav-element>nav</a></code>,
+ and <code><a href=#the-section-element>section</a></code> elements are expected to affect the margins
+ and font size of <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> elements, based on the nesting
+ depth. If <var title="">x</var> is a selector that matches elements
+ that are either <code><a href=#the-article-element>article</a></code>, <code><a href=#the-aside-element>aside</a></code>,
+ <code><a href=#the-nav-element>nav</a></code>, or <code><a href=#the-section-element>section</a></code> elements, then the
+ following rules capture what is expected:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+<var title="">x</var> h1 { margin-top: 0.83em; margin-bottom: 0.83em; font-size: 1.50em; }
+<var title="">x</var> <var title="">x</var> h1 { margin-top: 1.00em; margin-bottom: 1.00em; font-size: 1.17em; }
+<var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 1.33em; margin-bottom: 1.33em; font-size: 1.00em; }
+<var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 1.67em; margin-bottom: 1.67em; font-size: 0.83em; }
+<var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 2.33em; margin-bottom: 2.33em; font-size: 0.67em; }</pre>
+
+
+
+ <h4 id=lists><span class=secno>15.3.7 </span>Lists</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+dir, dd, dl, dt, menu, ol, ul { display: block; unicode-bidi: isolate; }
+li { display: list-item; unicode-bidi: isolate; }
+
+dir, dl, menu, ol, ul { margin-top: 1em; margin-bottom: 1em; }
+
+dir dir, dir dl, dir menu, dir ol, dir ul,
+dl dir, dl dl, dl menu, dl ol, dl ul,
+menu dir, menu dl, menu menu, menu ol, menu ul,
+ol dir, ol dl, ol menu, ol ol, ol ul,
+ul dir, ul dl, ul menu, ul ol, ul ul {
+ margin-top: 0; margin-bottom: 0;
+}
+
+dd { margin-left: 40px; } /* <a href=#ltr-specific>LTR-specific</a>: use 'margin-right' for rtl elements */
+dir, menu, ol, ul { padding-left: 40px; } /* <a href=#ltr-specific>LTR-specific</a>: use 'padding-right' for rtl elements */
+
+ol { list-style-type: decimal; }
+
+dir, menu, ul { list-style-type: disc; }
+
+dir dl, dir menu, dir ul,
+menu dl, menu menu, menu ul,
+ol dl, ol menu, ol ul,
+ul dl, ul menu, ul ul {
+ list-style-type: circle;
+}
+
+dir dir dl, dir dir menu, dir dir ul,
+dir menu dl, dir menu menu, dir menu ul,
+dir ol dl, dir ol menu, dir ol ul,
+dir ul dl, dir ul menu, dir ul ul,
+menu dir dl, menu dir menu, menu dir ul,
+menu menu dl, menu menu menu, menu menu ul,
+menu ol dl, menu ol menu, menu ol ul,
+menu ul dl, menu ul menu, menu ul ul,
+ol dir dl, ol dir menu, ol dir ul,
+ol menu dl, ol menu menu, ol menu ul,
+ol ol dl, ol ol menu, ol ol ul,
+ol ul dl, ol ul menu, ol ul ul,
+ul dir dl, ul dir menu, ul dir ul,
+ul menu dl, ul menu menu, ul menu ul,
+ul ol dl, ul ol menu, ul ol ul,
+ul ul dl, ul ul menu, ul ul ul {
+ list-style-type: square;
+}</pre>
+
+ <p id=decohints>The following rules are also expected to apply, as
+ <a href=#presentational-hints>presentational hints</a>:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+ol[type=1], li[type=1] { list-style-type: decimal; }
+ol[type=a], li[type=a] { list-style-type: lower-alpha; }<!-- /* <a href="#case-sensitive-selector-exception">case-sensitive</a> */ -->
+ol[type=A], li[type=A] { list-style-type: upper-alpha; }<!-- /* <a href="#case-sensitive-selector-exception">case-sensitive</a> */ -->
+ol[type=i], li[type=i] { list-style-type: lower-roman; }<!-- /* <a href="#case-sensitive-selector-exception">case-sensitive</a> */ -->
+ol[type=I], li[type=I] { list-style-type: upper-roman; }<!-- /* <a href="#case-sensitive-selector-exception">case-sensitive</a> */ -->
+ul[type=disc], li[type=disc] { list-style-type: disc; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ul[type=circle], li[type=circle] { list-style-type: circle; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ul[type=square], li[type=square] { list-style-type: square; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */</pre>
+
+ <p>When rendering <code><a href=#the-li-element>li</a></code> elements, user agents are expected
+ to use the <a href=#ordinal-value>ordinal value</a> of the <code><a href=#the-li-element>li</a></code> element
+ to render the counter in the list item marker.</p>
+
+
+ <h4 id=tables><span class=secno>15.3.8 </span>Tables</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+table { display: table; unicode-bidi: isolate; }
+caption { display: table-caption; unicode-bidi: isolate; }
+colgroup, colgroup[hidden] { display: table-column-group; unicode-bidi: isolate; }
+col, col[hidden] { display: table-column; unicode-bidi: isolate; }
+thead, thead[hidden] { display: table-header-group; unicode-bidi: isolate; }
+tbody, tbody[hidden] { display: table-row-group; unicode-bidi: isolate; }
+tfoot, tfoot[hidden] { display: table-footer-group; unicode-bidi: isolate; }
+tr, tr[hidden] { display: table-row; unicode-bidi: isolate; }
+td, th, td[hidden], th[hidden] { display: table-cell; unicode-bidi: isolate; }
+
+colgroup[hidden], col[hidden], thead[hidden], tbody[hidden],
+tfoot[hidden], tr[hidden], td[hidden], th[hidden] {
+ visibility: collapse;
+}
+
+table {
+ border-spacing: 2px;
+ border-collapse: separate;
+ border-style: outset;
+ text-indent: initial;
+}
+
+td, th { padding: 1px; border-style: inset; }
+th { font-weight: bold; }
+
+thead, tbody, tfoot, table &gt; tr { vertical-align: middle; }
+tr, td, th { vertical-align: inherit; }
+
+table, td, th { border-color: gray; }
+thead, tbody, tfoot, tr { border-color: inherit; }
+table[rules=none], table[rules=groups], table[rules=rows],
+table[rules=cols], table[rules=all], table[frame=void],
+table[frame=above], table[frame=below], table[frame=hsides],
+table[frame=lhs], table[frame=rhs], table[frame=vsides],
+table[frame=box], table[frame=border],
+table[rules=none] &gt; tr &gt; td, table[rules=none] &gt; tr &gt; th,
+table[rules=groups] &gt; tr &gt; td, table[rules=groups] &gt; tr &gt; th,
+table[rules=rows] &gt; tr &gt; td, table[rules=rows] &gt; tr &gt; th,
+table[rules=cols] &gt; tr &gt; td, table[rules=cols] &gt; tr &gt; th,
+table[rules=all] &gt; tr &gt; td, table[rules=all] &gt; tr &gt; th,
+table[rules=none] &gt; thead &gt; tr &gt; td, table[rules=none] &gt; thead &gt; tr &gt; th,
+table[rules=groups] &gt; thead &gt; tr &gt; td, table[rules=groups] &gt; thead &gt; tr &gt; th,
+table[rules=rows] &gt; thead &gt; tr &gt; td, table[rules=rows] &gt; thead &gt; tr &gt; th,
+table[rules=cols] &gt; thead &gt; tr &gt; td, table[rules=cols] &gt; thead &gt; tr &gt; th,
+table[rules=all] &gt; thead &gt; tr &gt; td, table[rules=all] &gt; thead &gt; tr &gt; th,
+table[rules=none] &gt; tbody &gt; tr &gt; td, table[rules=none] &gt; tbody &gt; tr &gt; th,
+table[rules=groups] &gt; tbody &gt; tr &gt; td, table[rules=groups] &gt; tbody &gt; tr &gt; th,
+table[rules=rows] &gt; tbody &gt; tr &gt; td, table[rules=rows] &gt; tbody &gt; tr &gt; th,
+table[rules=cols] &gt; tbody &gt; tr &gt; td, table[rules=cols] &gt; tbody &gt; tr &gt; th,
+table[rules=all] &gt; tbody &gt; tr &gt; td, table[rules=all] &gt; tbody &gt; tr &gt; th,
+table[rules=none] &gt; tfoot &gt; tr &gt; td, table[rules=none] &gt; tfoot &gt; tr &gt; th,
+table[rules=groups] &gt; tfoot &gt; tr &gt; td, table[rules=groups] &gt; tfoot &gt; tr &gt; th,
+table[rules=rows] &gt; tfoot &gt; tr &gt; td, table[rules=rows] &gt; tfoot &gt; tr &gt; th,
+table[rules=cols] &gt; tfoot &gt; tr &gt; td, table[rules=cols] &gt; tfoot &gt; tr &gt; th,
+table[rules=all] &gt; tfoot &gt; tr &gt; td, table[rules=all] &gt; tfoot &gt; tr &gt; th { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ border-color: black;
+}</pre>
+
+ <p>The following rules are also expected to apply, as
+ <a href=#presentational-hints>presentational hints</a>:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+table[align=left] { float: left; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+table[align=right] { float: right; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+table[align=center], table[align=abscenter],
+table[align=absmiddle], table[align=middle] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ margin-left: auto; margin-right: auto;
+}
+thead[align=absmiddle], tbody[align=absmiddle], tfoot[align=absmiddle],
+tr[align=absmiddle], td[align=absmiddle], th[align=absmiddle] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ text-align: center;
+}
+
+caption[align=bottom] { caption-side: bottom; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+p[align=left], h1[align=left], h2[align=left], h3[align=left],
+h4[align=left], h5[align=left], h6[align=left] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ text-align: left;
+}
+p[align=right], h1[align=right], h2[align=right], h3[align=right],
+h4[align=right], h5[align=right], h6[align=right] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ text-align: right;
+}
+p[align=center], h1[align=center], h2[align=center], h3[align=center],
+h4[align=center], h5[align=center], h6[align=center] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ text-align: center;
+}
+p[align=justify], h1[align=justify], h2[align=justify], h3[align=justify],
+h4[align=justify], h5[align=justify], h6[align=justify] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ text-align: justify;
+}
+thead[valign=top], tbody[valign=top], tfoot[valign=top],
+tr[valign=top], td[valign=top], th[valign=top] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ vertical-align: top;
+}
+thead[valign=middle], tbody[valign=middle], tfoot[valign=middle],
+tr[valign=middle], td[valign=middle], th[valign=middle] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ vertical-align: middle;
+}
+thead[valign=bottom], tbody[valign=bottom], tfoot[valign=bottom],
+tr[valign=bottom], td[valign=bottom], th[valign=bottom] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ vertical-align: bottom;
+}
+thead[valign=baseline], tbody[valign=baseline], tfoot[valign=baseline],
+tr[valign=baseline], td[valign=baseline], th[valign=baseline] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ vertical-align: baseline;
+}
+
+td[nowrap], th[nowrap] { white-space: nowrap; }
+
+table[rules=none], table[rules=groups], table[rules=rows],
+table[rules=cols], table[rules=all] {
+ border-style: none;
+ border-collapse: collapse;
+}
+
+table[frame=void] { border-style: hidden hidden hidden hidden; }
+table[frame=above] { border-style: solid hidden hidden hidden; }
+table[frame=below] { border-style: hidden hidden solid hidden; }
+table[frame=hsides] { border-style: solid hidden solid hidden; }
+table[frame=lhs] { border-style: hidden hidden hidden solid; }
+table[frame=rhs] { border-style: hidden solid hidden hidden; }
+table[frame=vsides] { border-style: hidden solid hidden solid; }
+table[frame=box],
+table[frame=border] { border-style: solid solid solid solid; }
+
+table[rules=none] &gt; tr &gt; td, table[rules=none] &gt; tr &gt; th,
+table[rules=none] &gt; thead &gt; tr &gt; td, table[rules=none] &gt; thead &gt; tr &gt; th,
+table[rules=none] &gt; tbody &gt; tr &gt; td, table[rules=none] &gt; tbody &gt; tr &gt; th,
+table[rules=none] &gt; tfoot &gt; tr &gt; td, table[rules=none] &gt; tfoot &gt; tr &gt; th,
+table[rules=groups] &gt; tr &gt; td, table[rules=groups] &gt; tr &gt; th,
+table[rules=groups] &gt; thead &gt; tr &gt; td, table[rules=groups] &gt; thead &gt; tr &gt; th,
+table[rules=groups] &gt; tbody &gt; tr &gt; td, table[rules=groups] &gt; tbody &gt; tr &gt; th,
+table[rules=groups] &gt; tfoot &gt; tr &gt; td, table[rules=groups] &gt; tfoot &gt; tr &gt; th,
+table[rules=rows] &gt; tr &gt; td, table[rules=rows] &gt; tr &gt; th,
+table[rules=rows] &gt; thead &gt; tr &gt; td, table[rules=rows] &gt; thead &gt; tr &gt; th,
+table[rules=rows] &gt; tbody &gt; tr &gt; td, table[rules=rows] &gt; tbody &gt; tr &gt; th,
+table[rules=rows] &gt; tfoot &gt; tr &gt; td, table[rules=rows] &gt; tfoot &gt; tr &gt; th {
+ border-style: none;
+}
+
+table[rules=groups] &gt; colgroup, table[rules=groups] &gt; thead,
+table[rules=groups] &gt; tbody, table[rules=groups] &gt; tfoot {
+ border-style: solid;
+}
+
+table[rules=rows] &gt; tr, table[rules=rows] &gt; thead &gt; tr,
+table[rules=rows] &gt; tbody &gt; tr, table[rules=rows] &gt; tfoot &gt; tr {
+ border-style: solid;
+}
+
+table[rules=cols] &gt; tr &gt; td, table[rules=cols] &gt; tr &gt; th,
+table[rules=cols] &gt; thead &gt; tr &gt; td, table[rules=cols] &gt; thead &gt; tr &gt; th,
+table[rules=cols] &gt; tbody &gt; tr &gt; td, table[rules=cols] &gt; tbody &gt; tr &gt; th,
+table[rules=cols] &gt; tfoot &gt; tr &gt; td, table[rules=cols] &gt; tfoot &gt; tr &gt; th {
+ border-style: none solid none solid;
+}
+
+table[rules=all] &gt; tr &gt; td, table[rules=all] &gt; tr &gt; th,
+table[rules=all] &gt; thead &gt; tr &gt; td, table[rules=all] &gt; thead &gt; tr &gt; th,
+table[rules=all] &gt; tbody &gt; tr &gt; td, table[rules=all] &gt; tbody &gt; tr &gt; th,
+table[rules=all] &gt; tfoot &gt; tr &gt; td, table[rules=all] &gt; tfoot &gt; tr &gt; th {
+ border-style: solid;
+}
+
+table[border] &gt; tr &gt; td, table[border] &gt; tr &gt; th,
+table[border] &gt; thead &gt; tr &gt; td, table[border] &gt; thead &gt; tr &gt; th,
+table[border] &gt; tbody &gt; tr &gt; td, table[border] &gt; tbody &gt; tr &gt; th,
+table[border] &gt; tfoot &gt; tr &gt; td, table[border] &gt; tfoot &gt; tr &gt; th {
+ border-width: 1px;
+}</pre>
+
+ <p>In <a href=#quirks-mode>quirks mode</a>, the following rules are also
+ expected to apply:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+table {
+ font-weight: initial;
+ font-style: initial;
+ font-variant: initial;
+ font-size: initial;
+ line-height: initial;
+ white-space: initial;
+ text-align: initial;
+}</pre>
+
+ <hr><p>For the purposes of the CSS table model, the <code><a href=#the-col-element>col</a></code>
+ element is expected to be treated as if it was present as many times
+ as its <code title=attr-col-span><a href=#attr-col-span>span</a></code> attribute <a href=#rules-for-parsing-non-negative-integers title="rules for parsing non-negative
+ integers">specifies</a>.</p>
+
+ <p>For the purposes of the CSS table model, the
+ <code><a href=#the-colgroup-element>colgroup</a></code> element, if it contains no <code><a href=#the-col-element>col</a></code>
+ element, is expected to be treated as if it had as many such
+ children as its <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code>
+ attribute <a href=#rules-for-parsing-non-negative-integers title="rules for parsing non-negative
+ integers">specifies</a>.</p>
+
+ <p>For the purposes of the CSS table model, the <code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code> and <code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>rowspan</a></code> attributes on
+ <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements are expected to <a href=#rules-for-parsing-non-negative-integers title="rules for parsing non-negative integers">provide</a> the
+ <i>special knowledge</i> regarding cells spanning rows and
+ columns.</p>
+
+ <p>In <a href=#html-documents>HTML documents</a>, the user agent is expected to
+ force the 'display' property of <code><a href=#the-form-element>form</a></code> elements that are
+ children of <code><a href=#the-table-element>table</a></code>, <code><a href=#the-thead-element>thead</a></code>,
+ <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>, or <code><a href=#the-tr-element>tr</a></code> elements
+ to compute to 'none', irrespective of CSS rules.</p>
+
+ <hr><p>The <code><a href=#the-table-element>table</a></code> element's <code title=attr-table-cellspacing><a href=#attr-table-cellspacing>cellspacing</a></code> attribute
+ <a href=#maps-to-the-pixel-length-property>maps to the pixel length property</a> 'border-spacing' on the
+ element.</p>
+
+ <p>The <code><a href=#the-table-element>table</a></code> element's <code title=attr-table-cellpadding><a href=#attr-table-cellpadding>cellpadding</a></code> attribute <a href=#maps-to-the-pixel-length-property title="maps to the pixel length property">maps to the pixel length
+ properties</a> 'padding-top', 'padding-right', 'padding-bottom',
+ and 'padding-left' of any <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code>
+ elements that have corresponding <a href=#concept-cell title=concept-cell>cells</a> in the <a href=#concept-table title=concept-table>table</a> corresponding to the
+ <code><a href=#the-table-element>table</a></code> element.</p>
+
+ <p>The <code><a href=#the-table-element>table</a></code> element's <code title=attr-table-hspace>hspace</code> attribute <a href=#maps-to-the-dimension-property title="maps
+ to the dimension property">maps to the dimension properties</a>
+ 'margin-left' and 'margin-right' on the <code><a href=#the-table-element>table</a></code>
+ element.</p>
+
+ <p>The <code><a href=#the-table-element>table</a></code> element's <code title=attr-table-vspace>vspace</code> attribute <a href=#maps-to-the-dimension-property title="maps
+ to the dimension property">maps to the dimension properties</a>
+ 'margin-top' and 'margin-bottom' on the <code><a href=#the-table-element>table</a></code>
+ element.</p>
+
+ <p>The <code><a href=#the-table-element>table</a></code> element's <code title=attr-table-height>height</code> attribute <a href=#maps-to-the-dimension-property>maps to the
+ dimension property</a> 'height' on the <code><a href=#the-table-element>table</a></code>
+ element.</p>
+
+ <p>The <code><a href=#the-table-element>table</a></code> element's <code title=attr-table-width><a href=#attr-table-width>width</a></code> attribute <a href=#maps-to-the-dimension-property>maps to the
+ dimension property</a> 'width' on the <code><a href=#the-table-element>table</a></code>
+ element.</p>
+
+ <p>The <code><a href=#the-col-element>col</a></code> element's <code title=attr-col-width><a href=#attr-col-width>width</a></code> attribute <a href=#maps-to-the-dimension-property>maps to the
+ dimension property</a> 'width' on the <code><a href=#the-col-element>col</a></code>
+ element.</p>
+
+ <p>The <code><a href=#the-tr-element>tr</a></code> element's <code title=attr-tr-height>height</code> attribute <a href=#maps-to-the-dimension-property>maps to the
+ dimension property</a> 'height' on the <code><a href=#the-tr-element>tr</a></code>
+ element.</p>
+
+ <p>The <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements' <code title=attr-tdth-height><a href=#attr-tdth-height>height</a></code> attributes <a href=#maps-to-the-dimension-property title="maps
+ to the dimension property">map to the dimension property</a> 'height'
+ on the element.</p>
+
+ <p>The <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements' <code title=attr-tdth-width><a href=#attr-tdth-width>width</a></code> attributes <a href=#maps-to-the-dimension-property title="maps
+ to the dimension property">map to the dimension property</a> 'width'
+ on the element.</p>
+
+ <p>When a <code><a href=#document>Document</a></code> is in <a href=#quirks-mode>quirks mode</a>,
+ vertical margins on <a href=#html-elements>HTML elements</a> at the top or bottom
+ of <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> elements are expected to be
+ collapsed to zero.</p>
+
+ <hr><p>The <code><a href=#the-caption-element>caption</a></code> element unless specified otherwise
+ below, and the <code><a href=#the-thead-element>thead</a></code>, <code><a href=#the-tbody-element>tbody</a></code>,
+ <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-tr-element>tr</a></code>, <code><a href=#the-td-element>td</a></code>, and
+ <code><a href=#the-th-element>th</a></code> elements when they have an <code title=attr-div-align><a href=#attr-div-align>align</a></code> attribute whose value is an
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for either the string
+ "<code title="">center</code>" or the string "<code title="">middle</code>", are expected to center text within
+ themselves, as if they had their 'text-align' property set to
+ 'center' in a <a href=#presentational-hints title="presentational hints">presentational
+ hint</a>, and to <a href=#align-descendants>align descendants</a> to the
+ center.</p>
+
+ <p>The <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-thead-element>thead</a></code>, <code><a href=#the-tbody-element>tbody</a></code>,
+ <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-tr-element>tr</a></code>, <code><a href=#the-td-element>td</a></code>, and
+ <code><a href=#the-th-element>th</a></code> elements, when they have an <code title=attr-align>align</code> attribute whose value is an
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">left</code>", are expected to left-align text within
+ themselves, as if they had their 'text-align' property set to 'left'
+ in a <a href=#presentational-hints title="presentational hints">presentational hint</a>,
+ and to <a href=#align-descendants>align descendants</a> to the left.</p>
+
+ <p>The <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-thead-element>thead</a></code>, <code><a href=#the-tbody-element>tbody</a></code>,
+ <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-tr-element>tr</a></code>, <code><a href=#the-td-element>td</a></code>, and
+ <code><a href=#the-th-element>th</a></code> elements, when they have an <code title=attr-align>align</code> attribute whose value is an
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">right</code>", are expected to right-align text within
+ themselves, as if they had their 'text-align' property set to
+ 'right' in a <a href=#presentational-hints title="presentational hints">presentational
+ hint</a>, and to <a href=#align-descendants>align descendants</a> to the right.</p>
+
+ <p>The <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-thead-element>thead</a></code>, <code><a href=#the-tbody-element>tbody</a></code>,
+ <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-tr-element>tr</a></code>, <code><a href=#the-td-element>td</a></code>, and
+ <code><a href=#the-th-element>th</a></code> elements, when they have an <code title=attr-align>align</code> attribute whose value is an
+ <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">justify</code>", are expected to full-justify text within
+ themselves, as if they had their 'text-align' property set to
+ 'justify' in a <a href=#presentational-hints title="presentational hints">presentational
+ hint</a>, and to <a href=#align-descendants>align descendants</a> to the left.</p>
+
+ <p>User agents are expected to have a rule in their user agent
+ stylesheet that matches <code><a href=#the-th-element>th</a></code> elements that have a parent
+ node whose computed value for the 'text-align' property is its
+ initial value, whose declaration block consists of just a single
+ declaration that sets the 'text-align' property to the value
+ 'center'.</p> <!-- q.v. '-moz-center-or-inherit' -->
+
+ <hr><p>When a <code><a href=#the-table-element>table</a></code>, <code><a href=#the-thead-element>thead</a></code>,
+ <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-tr-element>tr</a></code>,
+ <code><a href=#the-td-element>td</a></code>, or <code><a href=#the-th-element>th</a></code> element has a <code title=attr-background><a href=#attr-background>background</a></code> attribute set to a
+ non-empty value, the new value is expected to be <a href=#resolve-a-url title="resolve a url">resolved</a> relative to the element, and
+ if this is successful, the user agent is expected to treat the
+ attribute as a <a href=#presentational-hints title="presentational hints">presentational
+ hint</a> setting the element's 'background-image' property to the
+ resulting <a href=#absolute-url>absolute URL</a>.</p>
+
+ <p>When a <code><a href=#the-table-element>table</a></code>, <code><a href=#the-thead-element>thead</a></code>,
+ <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-tr-element>tr</a></code>,
+ <code><a href=#the-td-element>td</a></code>, or <code><a href=#the-th-element>th</a></code> element has a <code title="">bgcolor</code> attribute set, the new value is expected to
+ be parsed using the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a legacy color
+ value</a>, and if that does not return an error, the user agent
+ is expected to treat the attribute as a <a href=#presentational-hints title="presentational
+ hints">presentational hint</a> setting the element's
+ 'background-color' property to the resulting color.</p>
+
+ <p>When a <code><a href=#the-table-element>table</a></code> element has a <code title=attr-table-bordercolor>bordercolor</code> attribute, its
+ value is expected to be parsed using the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a
+ legacy color value</a>, and if that does not return an error, the
+ user agent is expected to treat the attribute as a <a href=#presentational-hints title="presentational hints">presentational hint</a> setting the
+ element's 'border-top-color', 'border-right-color',
+ 'border-bottom-color', and 'border-right-color' properties to the
+ resulting color.</p>
+
+ <hr><p>The <code><a href=#the-table-element>table</a></code> element's <code title=attr-table-border><a href=#attr-table-border>border</a></code> attribute <a href=#maps-to-the-pixel-length-property title="maps
+ to the pixel length property">maps to the pixel length
+ properties</a> 'border-top-width', 'border-right-width',
+ 'border-bottom-width', 'border-left-width' on the element. If the
+ attribute is present but parsing the attribute's value using the
+ <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a> generates an
+ error, a default value of 1px is expected to be used for that
+ property instead.</p>
+
+ <p>When a <code><a href=#the-table-element>table</a></code> element's <code title=attr-table-border><a href=#attr-table-border>border</a></code> attribute is present and,
+ when parsed using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a>, is found to have the value zero, the user agent is
+ expected to use the attribute as a <a href=#presentational-hints title="presentational
+ hints">presentational hint</a> setting the 'border-top-width',
+ 'border-right-width', 'border-bottom-width', and 'border-left-width'
+ properties of any <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements that
+ are are <a href=#concept-cell title=concept-cell>cells</a> in the same
+ <a href=#table-model>table model</a> as the <code><a href=#the-table-element>table</a></code> element to
+ zero.</p>
+
+
+
+ <h4 id=form-controls><span class=secno>15.3.9 </span>Form controls</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+input, select, option, optgroup, button, textarea, keygen {
+ text-indent: initial;
+}
+
+textarea { white-space: pre-wrap; }
+</pre>
+
+ <p>In <a href=#quirks-mode>quirks mode</a>, the following rules are also
+ expected to apply:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+input { box-sizing: border-box; }</pre>
+
+ <p>Each kind of form control is also given a specific default
+ binding, as described in subsequent sections, which implements the
+ look and feel of the control.</p>
+
+
+
+ <h4 id=the-hr-element-0><span class=secno>15.3.10 </span>The <code><a href=#the-hr-element>hr</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+hr { color: gray; border-style: inset; border-width: 1px; margin: 0.5em auto; }</pre>
+
+ <p>The following rules are also expected to apply, as
+ <a href=#presentational-hints>presentational hints</a>:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+hr[align=left] { margin-left: 0; margin-right: auto; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+hr[align=right] { margin-left: auto; margin-right: 0; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+hr[align=center] { margin-left: auto; margin-right: auto; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+hr[color], hr[noshade] { border-style: solid; }</pre>
+
+ <p>If an <code><a href=#the-hr-element>hr</a></code> element has either a <code title=attr-hr-color><a href=#attr-hr-color>color</a></code> attribute or a <code title=attr-hr-noshade><a href=#attr-hr-noshade>noshade</a></code> attribute, and furthermore
+ also has a <code title=attr-hr-size><a href=#attr-hr-size>size</a></code> attribute, and
+ parsing that attribute's value using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing
+ non-negative integers</a> doesn't generate an error, then the
+ user agent is expected to use the parsed value divided by two as a
+ pixel length for <a href=#presentational-hints>presentational hints</a> for the properties
+ 'border-top-width', 'border-right-width', 'border-bottom-width', and
+ 'border-left-width' on the element.</p>
+
+ <p>Otherwise, if an <code><a href=#the-hr-element>hr</a></code> element has neither a <code title=attr-hr-color><a href=#attr-hr-color>color</a></code> attribute nor a <code title=attr-hr-noshade><a href=#attr-hr-noshade>noshade</a></code> attribute, but does have a
+ <code title=attr-hr-size><a href=#attr-hr-size>size</a></code> attribute, and parsing that
+ attribute's value using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a> doesn't generate an error, then: if the parsed value
+ is one, then the user agent is expected to use the attribute as a
+ <a href=#presentational-hints title="presentational hints">presentational hint</a>
+ setting the element's 'border-bottom-width' to 0; otherwise, if the
+ parsed value is greater than one, then the user agent is expected to
+ use the parsed value minus two as a pixel length for
+ <a href=#presentational-hints>presentational hints</a> for the 'height' property on the
+ element.</p>
+
+ <p>The <code title=attr-hr-width><a href=#attr-hr-width>width</a></code> attribute on an
+ <code><a href=#the-hr-element>hr</a></code> element <a href=#maps-to-the-dimension-property>maps to the dimension property</a>
+ 'width' on the element.</p>
+
+ <p>When an <code><a href=#the-hr-element>hr</a></code> element has a <code title=attr-hr-color><a href=#attr-hr-color>color</a></code> attribute, its value is expected
+ to be parsed using the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a legacy color
+ value</a>, and if that does not return an error, the user agent
+ is expected to treat the attribute as a <a href=#presentational-hints title="presentational
+ hints">presentational hint</a> setting the element's 'color'
+ property to the resulting color.</p>
+
+
+
+ <h4 id=the-fieldset-element-0><span class=secno>15.3.11 </span>The <code><a href=#the-fieldset-element>fieldset</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+fieldset {
+ margin-left: 2px; margin-right: 2px;
+ border: groove 2px ThreeDFace;
+ padding: 0.35em 0.625em 0.75em;
+}</pre>
+
+ <p>The <code><a href=#the-fieldset-element>fieldset</a></code> element is expected to establish a new
+ block formatting context.</p>
+
+ <p>If the <code><a href=#the-fieldset-element>fieldset</a></code> element has a child that matches the
+ conditions in the list below, then the first such child is the
+ <code><a href=#the-fieldset-element>fieldset</a></code> element's <dfn id=rendered-legend>rendered legend</dfn>:</p>
+
+ <ul class=brief><li>The child is a <code><a href=#the-legend-element>legend</a></code> element.</li>
+
+ <li>The child is not out-of-flow (e.g. not absolutely positioned or floated).</li>
+
+ <li>The child is generating a box (e.g. it is not 'display:none').</li>
+
+ </ul><p>A <code><a href=#the-fieldset-element>fieldset</a></code> element's <a href=#rendered-legend>rendered legend</a>,
+ if any, is expected to be rendered over the top border edge of the
+ <code><a href=#the-fieldset-element>fieldset</a></code> element as a 'block' box (overriding any
+ explicit 'display' value). In the absence of an explicit width, the
+ box should shrink-wrap. If the <code><a href=#the-legend-element>legend</a></code> element in
+ question has an <code title=attr-legend-align><a href=#attr-legend-align>align</a></code>
+ attribute, and its value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a>
+ match for one of the strings in the first column of the following
+ table, then the <code><a href=#the-legend-element>legend</a></code> is expected to be rendered
+ horizontally aligned over the border edge in the position given in
+ the corresponding cell on the same row in the second column. If the
+ attribute is absent or has a value that doesn't match any of the
+ cases in the table, then the position is expected to be on the right
+ if the 'direction' property on this element has a computed value of
+ 'rtl', and on the left otherwise.</p>
+
+ <table><thead><tr><th>Attribute value
+ <th>Alignment position
+ <tbody><tr><td><code title="">left</code>
+ <td>On the left
+ <tr><td><code title="">right</code>
+ <td>On the right
+ <tr><td><code title="">center</code>
+ <td>In the middle
+ </table><h3 id=replaced-elements><span class=secno>15.4 </span>Replaced elements</h3>
+
+ <h4 id=embedded-content-2><span class=secno>15.4.1 </span>Embedded content</h4>
+
+ <p>The <code><a href=#the-embed-element>embed</a></code>, <code><a href=#the-iframe-element>iframe</a></code>, and
+ <code><a href=#the-video-element>video</a></code> elements are expected to be treated as replaced
+ elements.</p>
+
+ <p>A <code><a href=#the-canvas-element>canvas</a></code> element that <a href=#represents>represents</a>
+ <a href=#embedded-content>embedded content</a> is expected to be treated as a
+ replaced element. Other <code><a href=#the-canvas-element>canvas</a></code> elements are expected to
+ be treated as ordinary elements in the rendering model.</p>
+
+ <p>An <code><a href=#the-object-element>object</a></code> element that <a href=#represents>represents</a> an
+ image, plugin, or <a href=#nested-browsing-context>nested browsing context</a> is expected
+ to be treated as a replaced element. Other <code><a href=#the-object-element>object</a></code>
+ elements are expected to be treated as ordinary elements in the
+ rendering model.</p>
+
+ <p>An <code><a href=#the-applet-element>applet</a></code> element that <a href=#represents>represents</a> a
+ <a href=#plugin>plugin</a> is expected to be treated as a replaced
+ element. Other <code><a href=#the-applet-element>applet</a></code> elements are expected to be
+ treated as ordinary elements in the rendering model.</p>
+
+ <p>The <code><a href=#the-audio-element>audio</a></code> element, when it is <a href=#expose-a-user-interface-to-the-user title="expose a
+ user interface to the user">exposing a user interface</a>, is
+ expected to be treated as a replaced element about one line high, as
+ wide as is necessary to expose the user agent's user interface
+ features. When an <code><a href=#the-audio-element>audio</a></code> element is not <a href=#expose-a-user-interface-to-the-user title="expose a user interface to the user">exposing a user
+ interface</a>, the user agent is expected to force its 'display'
+ property to compute to 'none', irrespective of CSS rules.</p>
+
+ <p>Whether a <code><a href=#the-video-element>video</a></code> element is <a href=#expose-a-user-interface-to-the-user title="expose a
+ user interface to the user">exposing a user interface</a> is not
+ expected to affect the size of the rendering; controls are expected
+ to be overlaid above the page content without causing any layout
+ changes, and are expected to disappear when the user does not need
+ them.</p>
+
+ <p>When a <code><a href=#the-video-element>video</a></code> element represents a poster frame or
+ frame of video, the poster frame or frame of video is expected to be
+ rendered at the largest size that maintains the aspect ratio of that
+ poster frame or frame of video without being taller or wider than
+ the <code><a href=#the-video-element>video</a></code> element itself, and is expected to be
+ centered in the <code><a href=#the-video-element>video</a></code> element.</p>
+
+ <p>Any subtitles or captions are expected to be overlayed directly
+ on top of their <code><a href=#the-video-element>video</a></code> element, as defined by the
+ relevant rendering rules; for <a href=#webvtt>WebVTT</a>, those are the
+ <a href=#webvtt-cue-text-rendering-rules>WebVTT cue text rendering rules</a> defined below.</p>
+
+ <p>When the user agent starts <a href=#expose-a-user-interface-to-the-user title="expose a user interface
+ to the user">exposing a user interface</a> for a
+ <code><a href=#the-video-element>video</a></code> element, the user agent should run the <a href=#rules-for-updating-the-text-track-rendering>rules
+ for updating the text track rendering</a> of each of the <a href=#text-track title="text track">text tracks</a> in the <code><a href=#the-video-element>video</a></code>
+ element's <a href=#list-of-text-tracks>list of text tracks</a> that are <a href=#text-track-showing title="text track showing">showing</a> or <a href=#text-track-showing-by-default title="text
+ track showing by default">showing by default</a> (e.g., for <a href=#text-track title="text track">text tracks</a> based on
+ <a href=#webvtt>WebVTT</a>, the <a href=#rules-for-updating-the-display-of-webvtt-text-tracks>rules for updating the display of
+ WebVTT text tracks</a>).</p>
+
+ <p class=note>Resizing <code><a href=#the-video-element>video</a></code> and <code><a href=#the-canvas-element>canvas</a></code>
+ elements does not interrupt video playback or clear the canvas.</p>
+
+ <hr><p>The following CSS rules are expected to apply:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+iframe:not([seamless]) { border: 2px inset; }
+<span id=video-object-fit>video { object-fit: contain; }</span></pre>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=timed-text-tracks-0><span class=secno>15.4.2 </span>Timed text tracks</h4>
+
+ <p class=note>This section is intended to be moved to its own CSS
+ module once an editor is found to run with it.</p>
+
+
+
+ <h5 id=webvtt-cue-text-rendering-rules><span class=secno>15.4.2.1 </span><dfn>WebVTT cue text rendering rules</dfn></h5>
+
+ <p>The <dfn id=rules-for-updating-the-display-of-webvtt-text-tracks>rules for updating the display of WebVTT text
+ tracks</dfn> render the <a href=#text-track title="text track">text
+ tracks</a> of a <a href=#media-element>media element</a> (specifically, a
+ <code><a href=#the-video-element>video</a></code> element), or of another playback mechanism, by
+ applying the steps below. All the <a href=#text-track title="text track">text
+ tracks</a> that use these rules for a given <a href=#media-element>media
+ element</a>, or other playback mechanism, are rendered together,
+ to avoid overlapping subtitles from multiple tracks.</p>
+
+ <p>The output of the steps below is a set of CSS boxes that covers
+ the rendering area of the <a href=#media-element>media element</a> or other
+ playback mechanism, which user agents are expected to render in a
+ manner suiting the user.</p>
+
+ <p>The rules are as follows:</p>
+
+ <ol><li><p>If the <a href=#media-element>media element</a> is an <code><a href=#the-audio-element>audio</a></code>
+ element, or is another playback mechanism with no rendering area,
+ abort these steps. There is nothing to render.</li>
+
+ <li><p>Let <var title="">video</var> be the <a href=#media-element>media
+ element</a> or other playback mechanism.</li>
+
+ <li><p>Let <var title="">output</var> be an empty list of
+ absolutely positioned CSS block boxes.</li>
+
+ <li><p>If the user agent is <a href=#expose-a-user-interface-to-the-user title="expose a user interface to
+ the user">exposing a user interface</a> for <var title="">video</var>, add to <var title="">output</var> one or more
+ completely transparent positioned CSS block boxes that cover the
+ same region as the user interface.</p>
+
+ <li><p>If the last time these rules were run, the user agent was
+ not <a href=#expose-a-user-interface-to-the-user title="expose a user interface to the user">exposing a
+ user interface</a> for <var title="">video</var>, but now it is,
+ let <var title="">reset</var> be true. Otherwise, let <var title="">reset</var> be false.</p>
+
+ <li><p>Let <var title="">tracks</var> be the subset of <var title="">video</var>'s <a href=#list-of-text-tracks>list of text tracks</a> that have
+ as their <a href=#rules-for-updating-the-text-track-rendering>rules for updating the text track rendering</a>
+ these <a href=#rules-for-updating-the-display-of-webvtt-text-tracks>rules for updating the display of WebVTT text
+ tracks</a>, and whose <a href=#text-track-mode>text track mode</a> is <a href=#text-track-showing title="text track showing">showing</a> or <a href=#text-track-showing-by-default title="text
+ track showing by default">showing by default</a>.</li>
+
+ <li><p>Let <var title="">cues</var> be an empty list of <a href=#text-track-cue title="text track cue">text track cues</a>.</li>
+
+ <li><p>For each track <var title="">track</var> in <var title="">tracks</var>, append to <var title="">cues</var> all the
+ <a href=#text-track-cue title="text track cue">cues</a> from <var title="">track</var>'s <a href=#text-track-list-of-cues title="text track list of cues">list
+ of cues</a> that have their <a href=#text-track-cue-active-flag>text track cue active
+ flag</a> set.</li>
+
+ <li><p>If <var title="">reset</var> is false, then, for each
+ <a href=#text-track-cue>text track cue</a> <var title="">cue</var> in <var title="">cues</var>: if <var title="">cue</var>'s <a href=#text-track-cue-display-state>text track
+ cue display state</a> has a set of CSS boxes, then add those
+ boxes to <var title="">output</var>, and remove <var title="">cue</var> from <var title="">cues</var>.</li>
+
+ <li>
+
+ <p>For each <a href=#text-track-cue>text track cue</a> <var title="">cue</var>
+ in <var title="">cues</var> that has not yet had corresponding CSS
+ boxes added to <var title="">output</var>, in <a href=#text-track-cue-order>text track
+ cue order</a>, run the following substeps:</p>
+
+ <ol><li><p>Let <var title="">nodes</var> be the <a href=#list-of-webvtt-node-objects>list of WebVTT
+ Node Objects</a> obtained by applying the <a href=#webvtt-cue-text-parsing-rules>WebVTT cue
+ text parsing rules</a> to the <var title="">cue</var>'s
+ <a href=#text-track-cue-text>text track cue text</a>.</p>
+
+ <li>
+
+ <p>Apply the Unicode Bidirectional Algorithm's Paragraph Level
+ steps to <var title="">nodes</var> using the following
+ constraints, to determine the <i>paragraph embedding level</i>
+ of the cue: <a href=#refsBIDI>[BIDI]</a></p>
+
+ <ul><li><var title="">nodes</var> represents a single paragraph.</li>
+
+ <li>The paragraph's text consists of the concatenation of the
+ values of each <a href=#webvtt-text-object>WebVTT Text Object</a> in <var title="">nodes</var>, in a pre-order, depth-first traversal,
+ excluding <a href=#webvtt-ruby-text-object title="WebVTT Ruby Text Object">WebVTT Ruby
+ Text Objects</a> and their descendants.</li>
+
+ </ul></li>
+
+ <li>
+
+ <p>If the <i>paragraph embedding level</i> determined in the
+ previous step is even (the <i>paragraph direction</i> is
+ left-to-right), let <var title="">direction</var> be 'ltr',
+ otherwise, let it be 'rtl'.</p>
+
+ </li>
+
+ <li><p>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is
+ <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing
+ direction">horizontal</a>, then let <var title="">block-flow</var> be 'tb'. Otherwise, if the <a href=#text-track-cue-writing-direction>text
+ track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track
+ cue vertical growing left writing direction">vertical growing
+ left</a>, then let <var title="">block-flow</var> be
+ 'lr'. Otherwise, the <a href=#text-track-cue-writing-direction>text track cue writing
+ direction</a> is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing
+ right writing direction">vertical growing right</a>; let <var title="">block-flow</var> be 'rl'.</li>
+
+ <li>
+
+ <p>Determine the value of <var title="">maximum size</var> for
+ <var title="">cue</var> as per the appropriate rules from the
+ following list:</p>
+
+ <dl class=switch><dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-start-alignment title="text track cue start alignment">start</a>,
+ and <var title="">direction</var> is 'ltr'</dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-end-alignment title="text track cue end alignment">end</a>,
+ and <var title="">direction</var> is 'rtl'</dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing direction">vertical growing left</a>,
+ and the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-start-alignment title="text track cue start alignment">start</a></dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing right writing direction">vertical growing right</a>,
+ and the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-start-alignment title="text track cue start alignment">start</a></dt>
+ <dd>
+ <p>Let <var title="">maximum size</var> be the <a href=#text-track-cue-text-position>text track cue text position</a> subtracted from 100.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-end-alignment title="text track cue end alignment">end</a>,
+ and <var title="">direction</var> is 'ltr'</dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-start-alignment title="text track cue start alignment">start</a>,
+ and <var title="">direction</var> is 'rtl'</dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing direction">vertical growing left</a>,
+ and the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-end-alignment title="text track cue end alignment">end</a></dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing right writing direction">vertical growing right</a>,
+ and the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-end-alignment title="text track cue end alignment">end</a></dt>
+ <dd>
+ <p>Let <var title="">maximum size</var> be the <a href=#text-track-cue-text-position>text track cue text position</a>.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-middle-alignment title="text track cue middle alignment">middle</a>,
+ the <a href=#text-track-cue-text-position>text track cue text position</a> is less than or equal to 50</dt>
+ <dd>
+ <p>Let <var title="">maximum size</var> be the <a href=#text-track-cue-text-position>text track cue text position</a> multiplied by two.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-middle-alignment title="text track cue middle alignment">middle</a>,
+ the <a href=#text-track-cue-text-position>text track cue text position</a> is greater than <!-- or equal to --> 50</dt>
+ <dd>
+ <p>Let <var title="">maximum size</var> be the result of subtracting <a href=#text-track-cue-text-position>text track cue text position</a> from 100 and then multiplying the result by two.</p>
+ </dd>
+
+ </dl></li>
+
+ <li><p>If the <a href=#text-track-cue-size>text track cue size</a> is less than <var title="">maximum size</var>, then let <var title="">size</var> be
+ <a href=#text-track-cue-size>text track cue size</a>. Otherwise, let <var title="">size</var> be <var title="">maximum size</var>.</li>
+
+ <li><p>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is
+ <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing
+ direction">horizontal</a>, then let <var title="">width</var>
+ be '<var title="">size</var>&thinsp;vw' and <var title="">height</var> be 'auto'. Otherwise, let <var title="">width</var> be 'auto' and <var title="">height</var> be
+ '<var title="">size</var>&thinsp;vh'. (These are CSS values used
+ by the next section to set CSS properties for the rendering; 'vw'
+ and 'vh' are CSS units.) <a href=#refsCSSVALUES>[CSSVALUES]</a></li>
+
+ <li>
+
+ <p>Determine the value of <var title="">x-position</var> or <var title="">y-position</var> for <var title="">cue</var> as per the
+ appropriate rules from the following list:</p>
+
+ <dl class=switch><dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-start-alignment title="text track cue start alignment">start</a>,
+ and <var title="">direction</var> is 'ltr'</dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-end-alignment title="text track cue end alignment">end</a>,
+ and <var title="">direction</var> is 'rtl'</dt>
+ <dd>
+ <p>Let <var title="">x-position</var> be the <a href=#text-track-cue-text-position>text track cue text position</a>.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-end-alignment title="text track cue end alignment">end</a>,
+ and <var title="">direction</var> is 'ltr'</dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-start-alignment title="text track cue start alignment">start</a>,
+ and <var title="">direction</var> is 'rtl'</dt>
+ <dd>
+ <p>Let <var title="">x-position</var> be the <a href=#text-track-cue-text-position>text track cue text position</a> subtracted from 100.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing direction">vertical growing left</a>,
+ and the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-start-alignment title="text track cue start alignment">start</a></dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing right writing direction">vertical growing right</a>,
+ and the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-start-alignment title="text track cue start alignment">start</a></dt>
+ <dd>
+ <p>Let <var title="">y-position</var> be the <a href=#text-track-cue-text-position>text track cue text position</a>.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing direction">vertical growing left</a>,
+ and the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-end-alignment title="text track cue end alignment">end</a></dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing right writing direction">vertical growing right</a>,
+ and the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-end-alignment title="text track cue end alignment">end</a></dt>
+ <dd>
+ <p>Let <var title="">y-position</var> be the <a href=#text-track-cue-text-position>text track cue text position</a> subtracted from 100.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-middle-alignment title="text track cue middle alignment">middle</a>,
+ and <var title="">direction</var> is 'ltr'</dt>
+ <dd>
+ <p>Let <var title="">x-position</var> be the <a href=#text-track-cue-text-position>text track cue text position</a> minus half of <var title="">size</var>.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-middle-alignment title="text track cue middle alignment">middle</a>,
+ and <var title="">direction</var> is 'rtl'</dt>
+ <dd>
+ <p>Let <var title="">x-position-reverse</var> be the <a href=#text-track-cue-text-position>text track cue text position</a> minus half of <var title="">size</var>.</p>
+ <p>Let <var title="">x-position</var> be <var title="">x-position-reverse</var> subtracted from 100.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing direction">vertical growing left</a>,
+ and the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-middle-alignment title="text track cue middle alignment">middle</a></dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing right writing direction">vertical growing right</a>,
+ and the <a href=#text-track-cue-alignment>text track cue alignment</a> is <a href=#text-track-cue-middle-alignment title="text track cue middle alignment">middle</a></dt>
+ <dd>
+ <p>Let <var title="">y-position</var> be the <a href=#text-track-cue-text-position>text track cue text position</a> minus half of <var title="">size</var>.</p>
+ </dd>
+
+ </dl></li>
+
+ <li>
+
+ <p>Determine the value of whichever of <var title="">x-position</var> or <var title="">y-position</var> is
+ not yet calculated for <var title="">cue</var> as per the
+ appropriate rules from the following list:</p>
+
+ <dl class=switch><dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ and the <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a> is set</dt>
+ <dd>
+ <p>Let <var title="">y-position</var> be zero.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ and the <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a> is not set</dt>
+ <dd>
+ <p>Let <var title="">y-position</var> be the <a href=#text-track-cue-line-position>text track cue line position</a>.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing direction">vertical growing left</a>,
+ and the <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a> is set</dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing right writing direction">vertical growing right</a>,
+ and the <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a> is set</dt>
+ <dd>
+ <p>Let <var title="">x-position</var> be zero.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing direction">vertical growing left</a>,
+ and the <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a> is not set</dt>
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing right writing direction">vertical growing right</a>,
+ and the <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a> is not set</dt>
+ <dd>
+ <p>Let <var title="">x-position</var> be the <a href=#text-track-cue-line-position>text track cue line position</a>.</p>
+ </dd>
+
+ </dl></li>
+
+ <li><p>Let <var title="">left</var> be '<var title="">x-position</var>&thinsp;vw' and <var title="">top</var>
+ be '<var title="">y-position</var>&thinsp;vh'. (These again are
+ CSS values used by the next section to set CSS properties for the
+ rendering; 'vw' and 'vh' are CSS units.) <a href=#refsCSSVALUES>[CSSVALUES]</a></li>
+
+ <li>
+
+ <p>Apply the terms of the CSS specifications to <var title="">nodes</var> within the following constraints, thus
+ obtaining a set of CSS boxes positioned relative to an initial
+ containing block: <a href=#refsCSS>[CSS]</a></p>
+
+ <ul><li><p>The <i>document tree</i> is the tree of <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT Node Objects</a> rooted at
+ <var title="">nodes</var>.</li>
+
+ <li><p>For the purposes of processing by the CSS specification,
+ <a href=#webvtt-internal-node-object title="WebVTT Internal Node Object">WebVTT Internal Node
+ Objects</a> are equivalent to elements with the same
+ contents.</li>
+
+ <li>For the purposes of processing by the CSS
+ specification, <a href=#webvtt-text-object title="WebVTT Text Object">WebVTT Text
+ Objects</a> are equivalent to text nodes.</li>
+
+ <li>No style sheets are associated with <var title="">nodes</var>. (The nodes are subsequently restyled
+ using style sheets after their boxes are generated, as
+ described below.)</li>
+
+ <li>The children of the <var title="">nodes</var> must be
+ wrapped in an anonymous box whose 'display' property has the
+ value 'inline'. This is the <dfn id=webvtt-cue-background-box>WebVTT cue background
+ box</dfn>.</li>
+
+ <li>Runs of children of <a href=#webvtt-ruby-object title="WebVTT Ruby Object">WebVTT
+ Ruby Objects</a> that are not <a href=#webvtt-ruby-text-object title="WebVTT Ruby Text
+ Object">WebVTT Ruby Text Objects</a> must be wrapped in
+ anonymous boxes whose 'display' property has the value
+ 'ruby-base'. <a href=#refsCSSRUBY>[CSSRUBY]</a></li>
+
+ <li>Properties on <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT Node
+ Objects</a> have their values set as defined in the next
+ section. (That section uses some of the variables whose values
+ were calculated earlier in this algorithm.)</li>
+
+ <li>Text runs must be wrapped according to the CSS
+ line-wrapping rules, except that additionally, regardless of
+ the value of the 'white-space' property, lines must be wrapped
+ at the edge of their containing blocks, even if doing so
+ requires splitting a word where there is no line breaking
+ opportunity. (Thus, normally text wraps as needed, but if there
+ is a particularly long word, it does not overflow as it
+ normally would in CSS, it is instead forcibly wrapped at the
+ box's edge.)</li>
+
+ <li>The viewport (and initial containing block) is
+ <var title="">video</var>'s rendering area.</li>
+
+ </ul><p>Let <var title="">boxes</var> be the boxes generated as
+ descendants of the initial containing block, along with their
+ positions.</p>
+
+ </li>
+
+ <li><p>If there are no line boxes in <var title="">boxes</var>,
+ skip the remainder of these substeps for <var title="">cue</var>. The cue is ignored.</li>
+
+ <li>
+
+ <p>Adjust the positions of <var title="">boxes</var> according
+ to the appropriate steps from the following list:</p>
+
+ <dl class=switch><dt>If <var title="">cue</var>'s <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a> is set</dt>
+
+ <dd>
+
+ <p>Many of the steps in this algorithm vary according to the
+ <a href=#text-track-cue-writing-direction>text track cue writing direction</a>. Steps labeled
+ "<strong>Horizontal</strong>" must be followed only when the
+ <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing
+ direction">horizontal</a>, steps labeled
+ "<strong>Vertical</strong>" must be followed when the
+ <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is either <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing
+ direction">vertical growing left</a> or <a href=#text-track-cue-vertical-growing-right-writing-direction title="text
+ track cue vertical growing right writing direction">vertical
+ growing right</a>, steps labeled "<strong>Vertical Growing
+ Left</strong>" must be followed only when the <a href=#text-track-cue-writing-direction>text
+ track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track
+ cue vertical growing left writing direction">vertical growing
+ left</a>, and steps labeled "<strong>Vertical Growing
+ Right</strong>" must be followed only when the <a href=#text-track-cue-writing-direction>text
+ track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track
+ cue vertical growing right writing direction">vertical growing
+ right</a>.</p>
+
+ <ol><li>
+
+ <p><strong>Horizontal</strong>: Let <var title="">step</var>
+ be the height of the first line box in <var title="">boxes</var>.</p>
+
+ <p><strong>Vertical</strong>: Let <var title="">step</var>
+ be the width of the first line box in <var title="">boxes</var>.</p>
+
+ </li>
+
+ <li><p>If <var title="">step</var> is zero, then jump to the
+ step labeled <i>done positioning</i> below.</li>
+
+ <li><p>Let <var title="">line position</var> be the
+ <a href=#text-track-cue-line-position>text track cue line position</a>.</li>
+
+ <li><p><strong>Vertical Growing Left</strong>: Add one to
+ <var title="">line position</var> then negate it.</li>
+
+ <li><p>Let <var title="">position</var> be the result of
+ multiplying <var title="">step</var> and <var title="">line
+ position</var>.</li>
+
+ <li><p><strong>Vertical Growing Left</strong>: Decrease <var title="">position</var> by the width of the bounding box of
+ the boxes in <var title="">boxes</var>, then increase <var title="">position</var> by <var title="">step</var>.</li>
+
+ <li>
+
+ <p><strong>Horizontal</strong>: If <var title="">line
+ position</var> is less than zero then increase <var title="">position</var> by the height of the <var title="">video</var>'s rendering area, and negate <var title="">step</var> (so its value is now minus the height of
+ the first line box in <var title="">boxes</var>).</p>
+
+ <p><strong>Vertical</strong>: If <var title="">line
+ position</var> is less than zero then increase <var title="">position</var> by the width of the <var title="">video</var>'s rendering area, and negate <var title="">step</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p><strong>Horizontal</strong>: Move all the boxes in <var title="">boxes</var> down by the distance given by <var title="">position</var>.</p>
+
+ <p><strong>Vertical</strong>: Move all the boxes in <var title="">boxes</var> right by the distance given by <var title="">position</var>.</p>
+
+ </li>
+
+ <li><p><i>Default</i>: Remember the position of all the boxes in
+ <var title="">boxes</var> as their <var title="">default
+ position</var>.</li>
+
+ <li><p>Let <var title="">switched</var> be false.</li>
+
+ <li><p><i>Step loop</i>: If none of the boxes in <var title="">boxes</var> would overlap any of the boxes in <var title="">output</var>, and all the boxes in <var title="">output</var> are within the <var title="">video</var>'s rendering area, then jump to the step
+ labeled <i>done positioning</i> below.</li>
+
+ <li>
+
+ <p><strong>Horizontal</strong>: If <var title="">step</var>
+ is negative and the top of the first line box in <var title="">boxes</var> is now above the top of the <var title="">video</var>'s rendering area, or if <var title="">step</var> is positive and the bottom of the first
+ line box in <var title="">boxes</var> is now below the
+ bottom of the <var title="">video</var>'s rendering area,
+ jump to the step labeled <i>switch direction</i>.</p>
+
+ <p><strong>Vertical</strong>: If <var title="">step</var> is
+ negative and the left edge of the first line box in <var title="">boxes</var> is now to the left of the left edge of
+ the <var title="">video</var>'s rendering area, or if <var title="">step</var> is positive and the right edge of the
+ first line box in <var title="">boxes</var> is now to the
+ right of the right edge of the <var title="">video</var>'s
+ rendering area, jump to the step labeled <i>switch
+ direction</i>.</p>
+
+ </li>
+
+ <li>
+
+ <p><strong>Horizontal</strong>: Move all the boxes in <var title="">boxes</var> down by the distance given by <var title="">step</var>. (If <var title="">step</var> is
+ negative, then this will actually result in an upwards
+ movement of the boxes in absolute terms.)</p>
+
+ <p><strong>Vertical</strong>: Move all the boxes in <var title="">boxes</var> right by the distance given by <var title="">step</var>. (If <var title="">step</var> is
+ negative, then this will actually result in a leftwards
+ movement of the boxes in absolute terms.)</p>
+
+ </li>
+
+ <li><p>Jump back to the step labeled <i>step
+ loop</i>.</li>
+
+ <li><p><i>Switch direction</i>: Move all the boxes in <var title="">boxes</var> back to their <var title="">default
+ position</var> as determined in the step above labeled
+ <i>default</i>.</li>
+
+ <li><p>If <var title="">switched</var> is true, jump to the step
+ labeled <i>done positioning</i> below.</li>
+
+ <li><p>Negate <var title="">step</var>.</li>
+
+ <li><p>Set <var title="">switched</var> to true.</li>
+
+ <li><p>Jump back to the step labeled <i>step
+ loop</i>.</li>
+
+ </ol></dd>
+
+ <dt>If <var title="">cue</var>'s <a href=#text-track-cue-snap-to-lines-flag>text track cue snap-to-lines flag</a> is not set</dt>
+ <dd>
+
+ <ol><li>
+
+ <p>Set up <var title="">x</var> and <var title="">y</var> as
+ follows:</p>
+
+ <dl class=switch><dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ and <var title="">direction</var> is 'ltr'</dt>
+ <dd>
+ <p>Let <var title="">x</var> be a percentage given by the
+ <a href=#text-track-cue-text-position>text track cue text position</a>, and let <var title="">y</var> be a percentage given by the <a href=#text-track-cue-line-position>text
+ track cue line position</a>.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-horizontal-writing-direction title="text track cue horizontal writing direction">horizontal</a>,
+ and <var title="">direction</var> is 'rtl'</dt>
+ <dd>
+ <p>Let <var title="">x</var> be a percentage given by the
+ <a href=#text-track-cue-text-position>text track cue text position</a> subtracted from
+ 100, and let <var title="">y</var> be a percentage given
+ by the <a href=#text-track-cue-line-position>text track cue line position</a>.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-left-writing-direction title="text track cue vertical growing left writing direction">vertical growing left</a></dt>
+ <dd>
+ <p>Let <var title="">x</var> be a percentage given by the
+ <a href=#text-track-cue-line-position>text track cue line position</a> subtracted from
+ 100, and let <var title="">y</var> be a percentage given
+ by the <a href=#text-track-cue-text-position>text track cue text position</a>.</p>
+ </dd>
+
+ <dt>If the <a href=#text-track-cue-writing-direction>text track cue writing direction</a> is <a href=#text-track-cue-vertical-growing-right-writing-direction title="text track cue vertical growing right writing direction">vertical growing right</a></dt>
+ <dd>
+ <p>Let <var title="">x</var> be a percentage given by the
+ <a href=#text-track-cue-line-position>text track cue line position</a>, and let <var title="">y</var> be a percentage given by the <a href=#text-track-cue-text-position>text
+ track cue text position</a>.</p>
+ </dd>
+
+ </dl></li>
+
+ <li><p>Position the boxes in <var title="">boxes</var> such
+ that the point <var title="">x</var>% along the width of the
+ bounding box of the boxes in <var title="">boxes</var> is
+ <var title="">x</var>% of the way across the width of the
+ <var title="">video</var>'s rendering area, and the point
+ <var title="">y</var>% along the height of the bounding box
+ of the boxes in <var title="">boxes</var> is <var title="">y</var>% of the way across the height of the <var title="">video</var>'s rendering area, while maintaining the
+ relative positions of the boxes in <var title="">boxes</var>
+ to each other.</li>
+
+ <li><p>If none of the boxes in <var title="">boxes</var>
+ would overlap any of the boxes in <var title="">output</var>,
+ and all the boxes in <var title="">output</var> are within
+ the <var title="">video</var>'s rendering area, then jump to
+ the step labeled <i>done positioning</i> below.</li>
+
+ <li><p>If there is a position to which the boxes in <var title="">boxes</var> can be moved while maintaining the
+ relative positions of the boxes in <var title="">boxes</var>
+ to each other such that none of the boxes in <var title="">boxes</var> would overlap any of the boxes in <var title="">output</var>, and all the boxes in <var title="">output</var> would be within the <var title="">video</var>'s rendering area, then move the boxes in
+ <var title="">boxes</var> to the closest such position to
+ their current position, and then jump to the step labeled
+ <i>done positioning</i> below. If there are multiple such
+ positions that are equidistant from their current position,
+ use the highest one amongst them; if there are several at
+ that height, then use the leftmost one amongst them.</li>
+
+ <li><p>Otherwise, jump to the step labeled <i>done
+ positioning</i> below. (The boxes will unfortunately
+ overlap.)</li>
+
+ </ol></dd>
+
+ </dl></li>
+
+ <li><p><i>Done positioning</i>: If there are any line boxes in
+ the (possibly now repositioned) <var title="">boxes</var> that do
+ not completely fit inside <var title="">video</var>'s rendering
+ area, remove those offending line boxes from <var title="">boxes</var>.</li>
+
+ <li><p>Let <var title="">cue</var>'s <a href=#text-track-cue-display-state>text track cue
+ display state</a> have the CSS boxes in <var title="">boxes</var>.</li>
+
+ <li><p>Add the CSS boxes in <var title="">boxes</var> to <var title="">output</var>.</li>
+
+ </ol></li>
+
+ <li><p>Return <var title="">output</var>.</li>
+
+ </ol><p>User agents may allow the user to override the above algorithm's
+ positioning of cues, e.g. by dragging them to another location on
+ the <code><a href=#the-video-element>video</a></code>, or even off the <code><a href=#the-video-element>video</a></code>
+ entirely.</p>
+
+
+ <h5 id=applying-css-properties-to-webvtt-node-objects><span class=secno>15.4.2.2 </span>Applying CSS properties to <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT Node Objects</a></h5>
+
+ <p>When following the <a href=#rules-for-updating-the-display-of-webvtt-text-tracks>rules for updating the display of WebVTT
+ text tracks</a>, user agents must set properties of <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT Node Objects</a> as defined in
+ this section. <a href=#refsCSS>[CSS]</a></p>
+
+ <p>On the (root) <a href=#list-of-webvtt-node-objects>List of WebVTT Node Objects</a>, the
+ 'position' property must be set to 'absolute', the 'direction'
+ property must be set to <var title="">direction</var>, the
+ 'block-flow' property must be set to <var title="">block-flow</var>,
+ the 'top' property must be set to <var title="">top</var>, the
+ 'left' property must be set to <var title="">left</var>, the 'width'
+ property must be set to <var title="">width</var>, and the 'height'
+ property must be set to <var title="">height</var>, where <var title="">direction</var>, <var title="">block-flow</var>, <var title="">top</var>, <var title="">left</var>, <var title="">width</var>, and <var title="">height</var> are the values
+ with those names determined by the <a href=#rules-for-updating-the-display-of-webvtt-text-tracks>rules for updating the
+ display of WebVTT text tracks</a> for the <a href=#text-track-cue>text track
+ cue</a> from whose <a href=#text-track-cue-text title="text track cue text">text</a>
+ the <a href=#list-of-webvtt-node-objects>List of WebVTT Node Objects</a> was constructed.</p>
+
+ <p>The 'font' shorthand property on the (root) <a href=#list-of-webvtt-node-objects>List of WebVTT
+ Node Objects</a> must be set to '5vh sans-serif'. <a href=#refsCSSRUBY>[CSSRUBY]</a> <a href=#refsCSSVALUES>[CSSVALUES]</a></p>
+
+ <p>The 'color' property on the (root) <a href=#list-of-webvtt-node-objects>List of WebVTT Node
+ Objects</a> must be set to 'rgba(255,255,255,0)'. <a href=#refsCSSCOLOR>[CSSCOLOR]</a></p>
+
+ <p>The 'background' shorthand property on the <a href=#webvtt-cue-background-box>WebVTT cue
+ background box</a> must be set to 'rgba(0,0,0,0.8)'. <a href=#refsCSSCOLOR>[CSSCOLOR]</a></p>
+
+ <p>A text outline or stroke may also be set on the (root) <a href=#list-of-webvtt-node-objects>List
+ of WebVTT Node Objects</a>, if supported.</p> <!-- 'text-outline'
+ is in CSS3 Text, but Tab says that's awaiting medical attention. -->
+
+ <p>The 'font-style' property on <a href=#webvtt-italic-object title="WebVTT Italic
+ Object">WebVTT Italic Objects</a> must be set to 'italic'.</p>
+
+ <p>The 'font-weight' property on <a href=#webvtt-bold-object title="WebVTT Bold
+ Object">WebVTT Bold Objects</a> must be set to 'bold'.</p>
+
+ <p>The 'text-decoration' property on <a href=#webvtt-underline-object title="WebVTT Underline
+ Object">WebVTT Underline Objects</a> must be set to 'underline'.</p>
+
+ <p>The 'display' property on <a href=#webvtt-ruby-object title="WebVTT Ruby Object">WebVTT
+ Ruby Objects</a> must be set to 'ruby'. <a href=#refsCSSRUBY>[CSSRUBY]</a></p>
+
+ <p>The 'display' property on <a href=#webvtt-ruby-text-object title="WebVTT Ruby Text
+ Object">WebVTT Ruby Text Objects</a> must be set to
+ 'ruby-text'. <a href=#refsCSSRUBY>[CSSRUBY]</a></p>
+
+ <p>If there are style sheets that apply to the <a href=#media-element>media
+ element</a> or other playback mechanism, then they must be
+ interpreted as defined in the next section.</p>
+
+ <p>All other non-inherited properties must be set to their initial
+ values; inherited properties on the root <a href=#list-of-webvtt-node-objects>List of WebVTT Node
+ Objects</a> must inherit their values from the <a href=#media-element>media
+ element</a> for which the <a href=#text-track-cue>text track cue</a> is being
+ rendered, if any. If there is no <a href=#media-element>media element</a> (i.e. if
+ the <a href=#text-track>text track</a> is being rendered for another media
+ playback mechanism), then inherited properties on the root
+ <a href=#list-of-webvtt-node-objects>List of WebVTT Node Objects</a> must take their initial
+ values.</p>
+
+
+ <h5 id=css-extensions><span class=secno>15.4.2.3 </span>CSS extensions</h5>
+
+ <p>When a user agent is rendering one or more <a href=#text-track-cue title="text
+ track cue">text track cues</a> according to the <a href=#webvtt-cue-text-rendering-rules>WebVTT cue
+ text rendering rules</a>, <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT
+ Node Objects</a> in the <a href=#list-of-webvtt-node-objects>list of WebVTT Node Objects</a>
+ used in the rendering can be matched by certain pseudo-selectors as
+ defined below. These selectors can begin or stop matching individual
+ <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT Node Objects</a> while a
+ <a href=#text-track-cue title="text track cue">cue</a> is being rendered, even in
+ between applications of the <a href=#webvtt-cue-text-rendering-rules>WebVTT cue text rendering
+ rules</a> (which are only run when the set of active cues
+ changes). User agents that support the pseudo-element described
+ below must dynamically update renderings accordingly.</p>
+
+ <p>Pseudo-elements apply to elements that are matched by
+ selectors. For the purpose of this section, that element is the
+ <i>matched element</i>. The pseudo-elements defined in the following
+ sections affect the styling of parts of <a href=#text-track-cue title="text track
+ cue">text track cues</a> that are being rendered for the
+ <i>matched element</i>.</p>
+
+ <p class=note>If the <i>matched element</i> is not a
+ <code><a href=#the-video-element>video</a></code> element, the pseudo-elements defined below won't
+ have any effect according to this specification.</p>
+
+ <p>A CSS user agent that implements the <a href=#text-track title="text
+ track">text tracks</a> model must implement the '::cue' and
+ '::cue(<var title="">selector</var>)' pseudo-elements, and the
+ ':past' and ':future' pseudo-classes.</p>
+
+
+ <h6 id="the-'::cue'-pseudo-element"><span class=secno>15.4.2.3.1 </span>The '::cue' pseudo-element</h6>
+
+ <p>The '<dfn id=pseudo-cue title=pseudo-cue>::cue</dfn>' pseudo-element (with no
+ argument) matches any <a href=#list-of-webvtt-node-objects>List of WebVTT Node Objects</a>
+ constructed for the <i>matched element</i>, with the exception that
+ the properties corresponding to the 'background' shorthand must be
+ applied to the <a href=#webvtt-cue-background-box>WebVTT cue background box</a> rather than
+ the <a href=#list-of-webvtt-node-objects>List of WebVTT Node Objects</a>.</p>
+
+ <p>The following properties apply to the '::cue' pseudo-element with
+ no argument; other properties set on the pseudo-element must be
+ ignored:</p>
+
+ <ul class=brief><li>'color'</li>
+ <li>'text-decoration'</li>
+ <li>'text-outline'</li>
+ <li>'text-shadow'</li>
+ <li>the properties corresponding to the 'background' shorthand</li>
+ <li>the properties corresponding to the 'outline' shorthand</li>
+ <li>the properties corresponding to the 'font' shorthand, including 'line-height'</li>
+ <!-- add more... -->
+ <!-- definitely not:
+ display, float, position, top, left, right, bottom, width,
+ height, margin-top, margin-bottom, margin-left, margin-right,
+ clip, clear, content, cursor, direction, max-height,
+ min-height, max-width, min-width, orphans, overflow,
+ page-break-*, text-align, unicode-bidi, widows, z-index
+ -->
+ </ul><p>The '<dfn id=pseudo-cue-selector title=pseudo-cue-selector>::cue(<var title="">selector</var>)</dfn>' pseudo-element with an argument must
+ have an argument that consists of a group of selectors. It matches
+ any <a href=#webvtt-internal-node-object>WebVTT Internal Node Object</a> constructed for the
+ <i>matched element</i> that also matches the given group of
+ selectors, with the nodes being treated as follows:</p>
+
+ <ul><li><p>The <i>document tree</i> against which the selectors are
+ matched is the tree of <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT Node
+ Objects</a> rooted at the <a href=#list-of-webvtt-node-objects>list of WebVTT Node
+ Objects</a> for the cue.</li>
+
+ <li><p><a href=#webvtt-internal-node-object title="WebVTT Internal Node Object">WebVTT Internal
+ Node Objects</a> are elements in the tree.</li>
+
+ <li><a href=#webvtt-leaf-node-object title="WebVTT Leaf Node Object">WebVTT Leaf Node
+ Objects</a> cannot be matched.</li>
+
+ <li>
+
+ <p>For the purposes of element type selectors, the names of <a href=#webvtt-internal-node-object title="WebVTT Internal Node Object">WebVTT Internal Node
+ Objects</a> are as given by the following table, where objects
+ having the concrete class given in a cell in the first column have
+ the name given by the second column of the same row:</p>
+
+ <table><thead><tr><th>Concrete class
+ <th>Name
+
+ <tbody><tr><td><a href=#webvtt-class-object title="WebVTT Class Object">WebVTT Class Objects</a>
+ <td><code title="">c</code>
+
+ <tr><td><a href=#webvtt-italic-object title="WebVTT Italic Object">WebVTT Italic Objects</a>
+ <td><code title="">i</code>
+
+ <tr><td><a href=#webvtt-bold-object title="WebVTT Bold Object">WebVTT Bold Objects</a>
+ <td><code title="">b</code>
+
+ <tr><td><a href=#webvtt-underline-object title="WebVTT Underline Object">WebVTT Underline Objects</a>
+ <td><code title="">u</code>
+
+ <tr><td><a href=#webvtt-ruby-object title="WebVTT Ruby Object">WebVTT Ruby Objects</a>
+ <td><code title="">ruby</code>
+
+ <tr><td><a href=#webvtt-ruby-text-object title="WebVTT Ruby Text Object">WebVTT Ruby Text Objects</a>
+ <td><code title="">rt</code>
+
+ <tr><td><a href=#webvtt-voice-object title="WebVTT Voice Object">WebVTT Voice Objects</a>
+ <td><code title="">v</code>
+
+ <tr><td>Other elements (specifically, <a href=#list-of-webvtt-node-objects title="List of WebVTT Node Objects">Lists of WebVTT Node Objects</a>)
+ <td>No explicit name.
+
+ </table></li>
+
+ <li><p>For the purposes of element type and universal selectors,
+ <a href=#webvtt-internal-node-object title="WebVTT Internal Node Object">WebVTT Internal Node
+ Objects</a> are considered as being in the namespace expressed
+ as the empty string.</li>
+
+ <li><p>For the purposes of attribute selector matching, <a href=#webvtt-internal-node-object title="WebVTT Internal Node Object">WebVTT Internal Node
+ Objects</a> have no attributes, except for <a href=#webvtt-voice-object title="WebVTT Voice Object">WebVTT Voice Objects</a>, which
+ have a single attribute named "<code title="">voice</code>"
+ whose value is the value of the <a href=#webvtt-voice-object>WebVTT Voice
+ Object</a>.</li>
+
+ <li><p>For the purposes of class selector matching, <a href=#webvtt-internal-node-object title="WebVTT Internal Node Object">WebVTT Internal Node
+ Objects</a> have the classes described as the <a href="#webvtt-node-object's-applicable-classes">WebVTT
+ Node Object's applicable classes</a>.</li> <!-- ok, this
+ isn't especially well-defined, but the Selectors spec doesn't
+ really give one much to go on here. -->
+
+ <li><p>For the purposes of ID selector matching, <a href=#list-of-webvtt-node-objects title="List
+ of WebVTT Node Objects">Lists of WebVTT Node Objects</a> have
+ the ID given by the cue's <a href=#text-track-cue-identifier>text track cue identifier</a>,
+ if any.</li>
+
+ </ul><p>The following properties apply to the '::cue()' pseudo-element
+ with an argument:</p>
+
+ <ul class=brief><li>'color'</li>
+ <li>'text-decoration'</li>
+ <li>'text-outline'</li>
+ <li>'text-shadow'</li>
+ <li>the properties corresponding to the 'background' shorthand</li>
+ <li>the properties corresponding to the 'outline' shorthand</li>
+ <li>properties relating to the transition and animation features</li>
+ <!-- add more... -->
+ <!-- but definitely not anything that affects dimensions of boxes, e.g. the 'font' shorthand's properties -->
+ </ul><!--v2
+ Would be nice to support transitions that are directional,
+ e.g. changing text fill colour or shadow size of the start of a
+ segment when the segment becomes "past", and having the change
+ propagate towards the end of the segment so that it reaches the end
+ of the segment when the next segment becomes "past".
+ --><p>In addition, the following properties apply to the '::cue()'
+ pseudo-element with an argument when the selector does not contain
+ the ':past' and ':future' pseudo-classes:</p>
+
+ <ul class=brief><li>the properties corresponding to the 'font' shorthand, including 'line-height'</li>
+ <!-- add more... -->
+ <!-- definitely not:
+ display, float, position, top, left, right, bottom, width,
+ height, margin-top, margin-bottom, margin-left, margin-right,
+ clip, clear, content, cursor, direction, max-height,
+ min-height, max-width, min-width, orphans, overflow,
+ page-break-*, text-align, unicode-bidi, widows, z-index
+ -->
+ </ul><p>Properties that do not apply must be ignored.</p>
+
+ <p>As a special exception, the properties corresponding to the
+ 'background' shorthand, when they would have been applied to the
+ <a href=#list-of-webvtt-node-objects>List of WebVTT Node Objects</a>, must instead be applied to
+ the <a href=#webvtt-cue-background-box>WebVTT cue background box</a>.</p>
+
+
+ <h6 id="the-':past'-and-':future'-pseudo-classes"><span class=secno>15.4.2.3.2 </span>The ':past' and ':future' pseudo-classes</h6>
+
+ <p>The <dfn id=past-pseudo-class title=past-pseudo-class>':past'</dfn> and <dfn id=future-pseudo-class title=future-pseudo-class>':future'</dfn> pseudo-classes only
+ match <a href=#webvtt-node-object title="WebVTT Node Object">WebVTT Node Objects</a>.</p>
+
+ <p>The ':past' pseudo-class only matches <a href=#webvtt-node-object title="WebVTT Node
+ Object">WebVTT Node Objects</a> that are <i><a href=#in-the-past>in the past</a></i>.</p>
+
+ <p>A <a href=#webvtt-node-object>WebVTT Node Object</a> <var title="">c</var> is
+ <dfn id=in-the-past>in the past</dfn> if, in a pre-order, depth-first traversal of
+ the <a href=#text-track-cue>text track cue</a>'s <a href=#list-of-webvtt-node-objects>List of WebVTT Node
+ Objects</a>, there exists a <a href=#webvtt-timestamp-object>WebVTT Timestamp Object</a>
+ whose value is less than the <a href=#current-playback-position>current playback position</a>
+ of the <a href=#media-element>media element</a> that is the <i>matched
+ element</i>, entirely after the <a href=#webvtt-node-object>WebVTT Node Object</a> <var title="">c</var>.</p>
+
+ <p>The ':future' pseudo-class only matches <a href=#webvtt-node-object title="WebVTT Node
+ Object">WebVTT Node Objects</a> that are <i><a href=#in-the-future>in the future</a></i>.</p>
+
+ <p>A <a href=#webvtt-node-object>WebVTT Node Object</a> <var title="">c</var> is
+ <dfn id=in-the-future>in the future</dfn> if, in a pre-order, depth-first traversal
+ of the <a href=#text-track-cue>text track cue</a>'s <a href=#list-of-webvtt-node-objects>List of WebVTT Node
+ Objects</a>, there exists a <a href=#webvtt-timestamp-object>WebVTT Timestamp Object</a>
+ whose value is greater than the <a href=#current-playback-position>current playback
+ position</a> of the <a href=#media-element>media element</a> that is the
+ <i>matched element</i>, entirely before the <a href=#webvtt-node-object>WebVTT Node
+ Object</a> <var title="">c</var>.</p>
+
+ </div>
+
+<!--TTVTT-->
+
+
+
+
+
+ <div class=impl>
+
+ <h4 id=images-0><span class=secno>15.4.3 </span>Images</h4>
+
+ <p>When an <code><a href=#the-img-element>img</a></code> element or an <code><a href=#the-input-element>input</a></code> element
+ when its <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in
+ the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state
+ <a href=#represents>represents</a> an image, it is expected to be treated as a
+ replaced element.</p>
+
+ <p>When an <code><a href=#the-img-element>img</a></code> element or an <code><a href=#the-input-element>input</a></code> element
+ when its <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in
+ the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state
+ does not <a href=#represents title=represents>represent</a> an image, but the
+ element already has intrinsic dimensions (e.g. from the
+ <a href=#dimension-attributes>dimension attributes</a> or CSS rules), and either the user
+ agent has reason to believe that the image will become <i title=img-available>available</i><!--input-img-available also-->
+ and be rendered in due course or the <code><a href=#document>Document</a></code> is in
+ <a href=#quirks-mode>quirks mode</a>, the element is expected to be treated as a
+ replaced element whose content is the text that the element
+ represents, if any, optionally alongside an icon indicating that the
+ image is being obtained. For <code><a href=#the-input-element>input</a></code> elements, the text
+ is expected to appear button-like to indicate that the element is a
+ <a href=#concept-button title=concept-button>button</a>.</p>
+
+ <p>When an <code><a href=#the-img-element>img</a></code> element <a href=#represents>represents</a> some
+ text and the user agent does not expect this to change, the element
+ is expected to be treated as an inline element whose content is the
+ text, optionally with an icon indicating that an image is
+ missing.</p>
+
+ <p>When an <code><a href=#the-img-element>img</a></code> element <a href=#represents>represents</a> nothing
+ and the user agent does not expect this to change, the element is
+ expected to not be rendered at all.</p>
+
+ <p>When an <code><a href=#the-img-element>img</a></code> element might be a key part of the
+ content, but neither the image nor any kind of alternative text is
+ available, and the user agent does not expect this to change, the
+ element is expected to be treated as an inline element whose content
+ is an icon indicating that an image is missing.</p> <!-- there's
+ also a should requirement for this case in the <img> section itself
+ -->
+
+ <p>When an <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state does not
+ <a href=#represents title=represents>represent</a> an image and the user
+ agent does not expect this to change, the element is expected to be
+ treated as a replaced element consisting of a button whose content
+ is the element's alternative text. The intrinsic dimensions of the
+ button are expected to be about one line in height and whatever
+ width is necessary to render the text on one line.</p>
+
+ <p>The icons mentioned above are expected to be relatively small so
+ as not to disrupt most text but be easily clickable. In a visual
+ environment, for instance, icons could be 16 pixels by 16 pixels
+ square, or 1em by 1em if the images are scalable. In an audio
+ environment, the icon could be a short bleep. The icons are intended
+ to indicate to the user that they can be used to get to whatever
+ options the UA provides for images, and, where appropriate, are
+ expected to provide access to the context menu that would have come
+ up if the user interacted with the actual image.</p>
+
+ <hr><p>All animated images with the same <a href=#absolute-url>absolute URL</a> and
+ the same image data are expected to be rendered synchronized to the
+ same timeline as a group, with the timeline starting at the time of
+ the most recent addition to the group.</p>
+
+ <p class=note>In other words, the animation loop of an animated
+ image is restarted each time another image with the same
+ <a href=#absolute-url>absolute URL</a> and image data begins to animate, e.g.
+ after being inserted into the document.</p>
+
+ <hr><p>The following CSS rules are expected to apply when the
+ <code><a href=#document>Document</a></code> is in <a href=#quirks-mode>quirks mode</a>:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+img[align=left] { margin-right: 3px; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+img[align=right] { margin-left: 3px; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */</pre>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=attributes-for-embedded-content-and-images><span class=secno>15.4.4 </span>Attributes for embedded content and images</h4>
+
+ <p>The following CSS rules are expected to apply as
+ <a href=#presentational-hints>presentational hints</a>:</p>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+iframe[frameborder=0], iframe[frameborder=no] { border: none; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+
+applet[align=left], embed[align=left], iframe[align=left],
+img[align=left], input[type=image][align=left], object[align=left] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ float: left;
+}
+
+applet[align=right], embed[align=right], iframe[align=right],
+img[align=right], input[type=image][align=right], object[align=right] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ float: right;
+}
+
+applet[align=top], embed[align=top], iframe[align=top],
+img[align=top], input[type=image][align=top], object[align=top] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ vertical-align: top;
+}
+
+applet[align=baseline], embed[align=baseline], iframe[align=baseline],
+img[align=baseline], input[type=image][align=baseline], object[align=baseline] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ vertical-align: baseline;
+}
+
+applet[align=texttop], embed[align=texttop], iframe[align=texttop],
+img[align=texttop], input[type=image][align=texttop], object[align=texttop] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ vertical-align: text-top;
+}
+
+applet[align=absmiddle], embed[align=absmiddle], iframe[align=absmiddle],
+img[align=absmiddle], input[type=image][align=absmiddle], object[align=absmiddle],
+applet[align=abscenter], embed[align=abscenter], iframe[align=abscenter],
+img[align=abscenter], input[type=image][align=abscenter], object[align=abscenter] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ vertical-align: middle;
+}
+
+applet[align=bottom], embed[align=bottom], iframe[align=bottom],
+img[align=bottom], input[type=image][align=bottom],
+object[align=bottom] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ vertical-align: bottom;
+}</pre>
+
+ <p>When an <code><a href=#the-applet-element>applet</a></code>, <code><a href=#the-embed-element>embed</a></code>,
+ <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, or <code><a href=#the-object-element>object</a></code>
+ element, or an <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state, has an
+ <code title=attr-dim-align>align</code> attribute whose value is
+ an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">center</code>" or the string "<code title="">middle</code>", the user agent is expected to act as if the
+ element's 'vertical-align' property was set to a value that aligns
+ the vertical middle of the element with the parent element's
+ baseline.</p>
+
+ <p>The <code title=attr-dim-hspace>hspace</code> attribute of
+ <code><a href=#the-applet-element>applet</a></code>, <code><a href=#the-embed-element>embed</a></code>, <code><a href=#the-iframe-element>iframe</a></code>,
+ <code><a href=#the-img-element>img</a></code>, or <code><a href=#the-object-element>object</a></code> elements, and
+ <code><a href=#the-input-element>input</a></code> elements with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state, <a href=#maps-to-the-dimension-property title="maps to the dimension property">maps to the dimension
+ properties</a> 'margin-left' and 'margin-right' on the
+ element.</p>
+
+ <p>The <code title=attr-dim-vspace>vspace</code> attribute of
+ <code><a href=#the-applet-element>applet</a></code>, <code><a href=#the-embed-element>embed</a></code>, <code><a href=#the-iframe-element>iframe</a></code>,
+ <code><a href=#the-img-element>img</a></code>, or <code><a href=#the-object-element>object</a></code> elements, and
+ <code><a href=#the-input-element>input</a></code> elements with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state, <a href=#maps-to-the-dimension-property title="maps to the dimension property">maps to the dimension
+ properties</a> 'margin-top' and 'margin-bottom' on the
+ element.</p>
+
+ <p>When an <code><a href=#the-img-element>img</a></code> element, <code><a href=#the-object-element>object</a></code> element, or
+ <code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state is contained
+ within a <a href=#hyperlink>hyperlink</a> and has a <code title=attr-dim-border>border</code> attribute whose value, when
+ parsed using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a>, is found to be a number greater than zero, the user
+ agent is expected to use the parsed value for eight
+ <a href=#presentational-hints>presentational hints</a>: four setting the parsed value as
+ a pixel length for the element's 'border-top-width',
+ 'border-right-width', 'border-bottom-width', and 'border-left-width'
+ properties, and four setting the element's 'border-top-style',
+ 'border-right-style', 'border-bottom-style', and 'border-left-style'
+ properties to the value 'solid'.</p>
+
+ <p id=dimRendering>The <code title=attr-dim-width><a href=#attr-dim-width>width</a></code>
+ and <code title=attr-dim-height><a href=#attr-dim-height>height</a></code> attributes on
+ <code><a href=#the-applet-element>applet</a></code>, <code><a href=#the-embed-element>embed</a></code>, <code><a href=#the-iframe-element>iframe</a></code>,
+ <code><a href=#the-img-element>img</a></code>, <code><a href=#the-object-element>object</a></code> or <code><a href=#the-video-element>video</a></code>
+ elements, and <code><a href=#the-input-element>input</a></code> elements with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state, <a href=#maps-to-the-dimension-property title="maps to the dimension property">map to the dimension
+ properties</a> 'width' and 'height' on the element
+ respectively.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=image-maps-0><span class=secno>15.4.5 </span>Image maps</h4>
+
+ <p>Shapes on an <a href=#image-map>image map</a> are expected to act, for the
+ purpose of the CSS cascade, as elements independent of the original
+ <code><a href=#the-area-element>area</a></code> element that happen to match the same style rules
+ but inherit from the <code><a href=#the-img-element>img</a></code> or <code><a href=#the-object-element>object</a></code>
+ element.</p>
+
+ <p>For the purposes of the rendering, only the 'cursor' property is
+ expected to have any effect on the shape.</p>
+
+ <p class=example>Thus, for example, if an <code><a href=#the-area-element>area</a></code>
+ element has a <code title=attr-style><a href=#the-style-attribute>style</a></code> attribute that
+ sets the 'cursor' property to 'help', then when the user designates
+ that shape, the cursor would change to a Help cursor.</p>
+
+ <p class=example>Similarly, if an <code><a href=#the-area-element>area</a></code> element had a
+ CSS rule that set its 'cursor' property to 'inherit' (or if no rule
+ setting the 'cursor' property matched the element at all), the
+ shape's cursor would be inherited from the <code><a href=#the-img-element>img</a></code> or
+ <code><a href=#the-object-element>object</a></code> element of the <a href=#image-map>image map</a>, not from
+ the parent of the <code><a href=#the-area-element>area</a></code> element.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=toolbars-0><span class=secno>15.4.6 </span>Toolbars</h4>
+
+ <p>When a <code><a href=#the-menu-element>menu</a></code> element's <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute is in the <a href=#toolbar-state title="toolbar state">toolbar</a> state, the element is
+ expected to be treated as a replaced element with a height about two
+ lines high and a width derived from the contents of the element.</p>
+
+ <p>The element is expected to have, by default, the appearance of a
+ toolbar on the user agent's platform. It is expected to contain the
+ menu that is <a href=#building-menus-and-toolbars title="building menus and toolbars">built</a>
+ from the element.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h3 id=bindings><span class=secno>15.5 </span>Bindings</h3>
+
+ <h4 id=introduction-18><span class=secno>15.5.1 </span>Introduction</h4>
+
+ <p>A number of elements have their rendering defined in terms of the
+ 'binding' property. <a href=#refsBECSS>[BECSS]</a></p>
+
+ <p>The CSS snippets below set the 'binding' property to a
+ user-agent-defined value, represented below by keywords like <code title=""><i title="">button</i></code>. The rules then described for
+ these bindings are only expected to apply if the element's 'binding'
+ property has not been overridden (e.g. by the author) to have
+ another value.</p>
+
+ <p>Exactly how the bindings are implemented is not specified by this
+ specification. User agents are encouraged to make their bindings set
+ the 'appearance' CSS property appropriately to achieve
+ platform-native appearances for widgets, and are expected to
+ implement any relevant animations, etc, that are appropriate for the
+ platform. <a href=#refsCSSUI>[CSSUI]</a></p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-button-element-0><span class=secno>15.5.2 </span>The <code><a href=#the-button-element>button</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+button { binding: <i title="">button</i>; }</pre>
+
+ <p>When the <i title="">button</i> binding applies to a
+ <code><a href=#the-button-element>button</a></code> element, the element is expected to render as an
+ 'inline-block' box rendered as a button whose contents are the
+ contents of the element.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-details-element-0><span class=secno>15.5.3 </span>The <code><a href=#the-details-element>details</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+details { binding: <i title="">details</i>; }</pre>
+
+ <p>When the <i title="">details</i> binding applies to a
+ <code><a href=#the-details-element>details</a></code> element, the element is expected to render as a
+ 'block' box with its 'padding-left' property set to '40px' for
+ left-to-right elements (<a href=#ltr-specific>LTR-specific</a>) and with its
+ 'padding-right' property set to '40px' for right-to-left
+ elements. The element's shadow tree is expected to take the
+ element's first child <code><a href=#the-summary-element>summary</a></code> element, if any, and
+ place it in a first 'block' box container, and then take the
+ element's remaining descendants, if any, and place them in a second
+ 'block' box container.</p>
+
+ <p>The first container is expected to contain at least one line box,
+ and that line box is expected to contain a disclosure widget
+ (typically a triangle), horizontally positioned within the left
+ padding of the <code><a href=#the-details-element>details</a></code> element. That widget is expected
+ to allow the user to request that the details be shown or
+ hidden.</p>
+
+ <p>The second container is expected to have its 'overflow' property
+ set to 'hidden'. When the <code><a href=#the-details-element>details</a></code> element does not have
+ an <code title=attr-details-open><a href=#attr-details-open>open</a></code> attribute, this
+ second container is expected to be removed from the rendering.</p>
+
+ <!-- http://mail.gnome.org/archives/usability/2006-June/msg00015.html -->
+
+ </div>
+
+ <div class=impl>
+
+ <h4 id=the-input-element-as-a-text-entry-widget><span class=secno>15.5.4 </span>The <code><a href=#the-input-element>input</a></code> element as a text entry widget</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+input { binding: <i title="">input-textfield</i>; }
+input[type=password] { binding: <i title="">input-password</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+/* later rules override this for other values of type="" */</pre>
+
+ <p>When the <i title="">input-textfield</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a>, <a href=#text-state-and-search-state title=attr-input-type-search>Search</a>, <a href=#telephone-state title=attr-input-type-tel>Telephone</a>, <a href=#url-state title=attr-input-type-url>URL</a>, or <a href=#e-mail-state title=attr-input-type-email>E-mail</a> state, the element is
+ expected to render as an 'inline-block' box rendered as a text
+ field.</p>
+
+ <p>When the <i title="">input-password</i> binding applies, to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#password-state title=attr-input-type-password>Password</a> state, the element
+ is expected to render as an 'inline-block' box rendered as a text
+ field whose contents are obscured.</p>
+
+ <p>If an <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in one of the above
+ states has a <code title=attr-input-size><a href=#attr-input-size>size</a></code> attribute,
+ and parsing that attribute's value using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing
+ non-negative integers</a> doesn't generate an error, then the
+ user agent is expected to use the attribute as a <a href=#presentational-hints title="presentational hints">presentational hint</a> for the
+ 'width' property on the element, with the value obtained from
+ applying the <a href=#converting-a-character-width-to-pixels>converting a character width to pixels</a>
+ algorithm to the value of the attribute.</p>
+
+ <p>If an <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in one of the above
+ states does <em>not</em> have a <code title=attr-input-size><a href=#attr-input-size>size</a></code> attribute, then the user agent
+ is expected to act as if it had a user-agent-level style sheet rule
+ setting the 'width' property on the element to the value obtained
+ from applying the <a href=#converting-a-character-width-to-pixels>converting a character width to
+ pixels</a> algorithm to the number 20.</p>
+
+ <p>The <dfn id=converting-a-character-width-to-pixels>converting a character width to pixels</dfn> algorithm
+ returns <span title="">(<var title="">size</var>-1)&times;<var title="">avg</var>&nbsp;+&nbsp;<var title="">max</var></span>, where
+ <var title="">size</var> is the character width to convert, <var title="">avg</var> is the average character width of the primary
+ font for the element for which the algorithm is being run, in
+ pixels, and <var title="">max</var> is the maximum character width
+ of that same font, also in pixels. (The element's 'letter-spacing'
+ property does not affect the result.)</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-input-element-as-domain-specific-widgets><span class=secno>15.5.5 </span>The <code><a href=#the-input-element>input</a></code> element as domain-specific widgets</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+input[type=datetime] { binding: <i title="">input-datetime</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+input[type=date] { binding: <i title="">input-date</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+input[type=month] { binding: <i title="">input-month</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+input[type=week] { binding: <i title="">input-week</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+input[type=time] { binding: <i title="">input-time</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+input[type=datetime-local] { binding: <i title="">input-datetime-local</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+input[type=number] { binding: <i title="">input-number</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */</pre>
+
+ <p>When the <i title="">input-datetime</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#date-and-time-state title=attr-input-type-datetime>Date and Time</a> state, the
+ element is expected to render as an 'inline-block' box depicting a
+ Date and Time control.</p>
+
+ <p>When the <i title="">input-date</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#date-state title=attr-input-type-date>Date</a> state, the element is
+ expected to render as an 'inline-block' box depicting a Date
+ control.</p>
+
+ <p>When the <i title="">input-month</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#month-state title=attr-input-type-month>Month</a> state, the element is
+ expected to render as an 'inline-block' box depicting a Month
+ control.</p>
+
+ <p>When the <i title="">input-week</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#week-state title=attr-input-type-week>Week</a> state, the element is
+ expected to render as an 'inline-block' box depicting a Week
+ control.</p>
+
+ <p>When the <i title="">input-time</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#time-state title=attr-input-type-time>Time</a> state, the element is
+ expected to render as an 'inline-block' box depicting a Time
+ control.</p>
+
+ <p>When the <i title="">input-datetime-local</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#local-date-and-time-state title=attr-input-type-datetime-local>Local Date and Time</a>
+ state, the element is expected to render as an 'inline-block' box
+ depicting a Local Date and Time control.</p>
+
+ <p>When the <i title="">input-number</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#number-state title=attr-input-type-number>Number</a> state, the element is
+ expected to render as an 'inline-block' box depicting a Number
+ control.</p>
+
+ <p>These controls are all expected to be about one line high, and
+ about as wide as necessary to show the widest possible value.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-input-element-as-a-range-control><span class=secno>15.5.6 </span>The <code><a href=#the-input-element>input</a></code> element as a range control</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+input[type=range] { binding: <i title="">input-range</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */</pre>
+
+ <p>When the <i title="">input-range</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#range-state title=attr-input-type-range>Range</a> state, the element is
+ expected to render as an 'inline-block' box depicting a slider
+ control.</p>
+
+ <p>When the control is wider than it is tall (or square), the
+ control is expected to be a horizontal slider, with the lowest value
+ on the right if the 'direction' property on this element has a
+ computed value of 'rtl', and on the left otherwise. When the control
+ is taller than it is wide, it is expected to be a vertical slider,
+ with the lowest value on the bottom.</p>
+
+ <p>Predefined suggested values (provided by the <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute) are expected to be
+ shown as tick marks on the slider, which the slider can snap to.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-input-element-as-a-color-well><span class=secno>15.5.7 </span>The <code><a href=#the-input-element>input</a></code> element as a color well</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+input[type=color] { binding: <i title="">input-color</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */</pre>
+
+ <p>When the <i title="">input-color</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#color-state title=attr-input-type-color>Color</a> state, the element is
+ expected to render as an 'inline-block' box depicting a color well,
+ which, when activated, provides the user with a color picker (e.g. a
+ color wheel or color palette) from which the color can be
+ changed.</p>
+
+ <p>Predefined suggested values (provided by the <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute) are expected to be
+ shown in the color picker interface, not on the color well
+ itself.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-input-element-as-a-checkbox-and-radio-button-widgets><span class=secno>15.5.8 </span>The <code><a href=#the-input-element>input</a></code> element as a checkbox and radio button widgets</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+input[type=checkbox] { binding: <i title="">input-checkbox</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+input[type=radio] { binding: <i title="">input-radio</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */</pre>
+
+ <p>When the <i title="">input-checkbox</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state, the element
+ is expected to render as an 'inline-block' box containing a single
+ checkbox control, with no label.</p>
+
+ <p>When the <i title="">input-radio</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> state, the element
+ is expected to render as an 'inline-block' box containing a single
+ radio button control, with no label.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-input-element-as-a-file-upload-control><span class=secno>15.5.9 </span>The <code><a href=#the-input-element>input</a></code> element as a file upload control</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+input[type=file] { binding: <i title="">input-file</i>; } /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */</pre>
+
+ <p>When the <i title="">input-file</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#file-upload-state title=attr-input-type-file>File Upload</a> state, the element
+ is expected to render as an 'inline-block' box containing a span of
+ text giving the filename(s) of the <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>, if
+ any, followed by a button that, when activated, provides the user
+ with a file picker from which the selection can be changed.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-input-element-as-a-button><span class=secno>15.5.10 </span>The <code><a href=#the-input-element>input</a></code> element as a button</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+input[type=submit], input[type=reset], input[type=button] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
+ binding: <i title="">input-button</i>;
+}</pre>
+
+ <p>When the <i title="">input-button</i> binding applies to an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#submit-button-state title=attr-input-type-submit>Submit Button</a>, <a href=#reset-button-state title=attr-input-type-reset>Reset Button</a>, or <a href=#button-state title=attr-input-type-button>Button</a> state, the element is
+ expected to render as an 'inline-block' box rendered as a button,
+ about one line high, containing the contents of the element's <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if any, or text
+ derived from the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code>
+ attribute in a user-agent-defined (and probably locale-specific)
+ fashion, if not.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-marquee-element-0><span class=secno>15.5.11 </span>The <code><a href=#the-marquee-element>marquee</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+marquee { binding: <i title="">marquee</i>; }</pre>
+
+ <p>When the <i title="">marquee</i> binding applies to a
+ <code><a href=#the-marquee-element>marquee</a></code> element, while the element is <a href=#concept-marquee-on title=concept-marquee-on>turned on</a>, the element is expected
+ to render in an animated fashion according to its attributes as
+ follows:</p>
+
+ <dl><dt>If the element's <code title=attr-marquee-behavior><a href=#attr-marquee-behavior>behavior</a></code> attribute is in the
+ <a href=#attr-marquee-behavior-scroll title=attr-marquee-behavior-scroll>scroll</a> state</dt>
+
+ <dd>
+
+ <p>Slide the contents of the element in the direction described by
+ the <code title=attr-marquee-direction><a href=#attr-marquee-direction>direction</a></code>
+ attribute as defined below, such that it begins off the start side
+ of the <code><a href=#the-marquee-element>marquee</a></code>, and ends flush with the inner end
+ side.</p>
+
+ <p class=example>For example, if the <code title=attr-marquee-direction><a href=#attr-marquee-direction>direction</a></code> attribute is <a href=#attr-marquee-direction-left title=attr-marquee-direction-left>left</a> (the default),
+ then the contents would start such that their left edge are off
+ the side of the right edge of the <code><a href=#the-marquee-element>marquee</a></code>'s content
+ area, and the contents would then slide up to the point where the
+ left edge of the contents are flush with the left inner edge of
+ the <code><a href=#the-marquee-element>marquee</a></code>'s content area.</p>
+
+ <p>Once the animation has ended, the user agent is expected to
+ <a href=#increment-the-marquee-current-loop-index>increment the marquee current loop index</a>. If the
+ element is still <a href=#concept-marquee-on title=concept-marquee-on>turned on</a>
+ after this, then the user agent is expected to restart the
+ animation.</p>
+
+ </dd>
+
+ <dt>If the element's <code title=attr-marquee-behavior><a href=#attr-marquee-behavior>behavior</a></code> attribute is in the
+ <a href=#attr-marquee-behavior-slide title=attr-marquee-behavior-slide>slide</a> state</dt>
+
+ <dd>
+
+ <p>Slide the contents of the element in the direction described by
+ the <code title=attr-marquee-direction><a href=#attr-marquee-direction>direction</a></code>
+ attribute as defined below, such that it begins off the start side
+ of the <code><a href=#the-marquee-element>marquee</a></code>, and ends off the end side of the
+ <code><a href=#the-marquee-element>marquee</a></code>.</p>
+
+ <p class=example>For example, if the <code title=attr-marquee-direction><a href=#attr-marquee-direction>direction</a></code> attribute is <a href=#attr-marquee-direction-left title=attr-marquee-direction-left>left</a> (the default),
+ then the contents would start such that their left edge are off
+ the side of the right edge of the <code><a href=#the-marquee-element>marquee</a></code>'s content
+ area, and the contents would then slide up to the point where the
+ <em>right</em> edge of the contents are flush with the left inner
+ edge of the <code><a href=#the-marquee-element>marquee</a></code>'s content area.</p>
+
+ <p>Once the animation has ended, the user agent is expected to
+ <a href=#increment-the-marquee-current-loop-index>increment the marquee current loop index</a>. If the
+ element is still <a href=#concept-marquee-on title=concept-marquee-on>turned on</a>
+ after this, then the user agent is expected to restart the
+ animation.</p>
+
+ </dd>
+
+ <dt>If the element's <code title=attr-marquee-behavior><a href=#attr-marquee-behavior>behavior</a></code> attribute is in the
+ <a href=#attr-marquee-behavior-alternate title=attr-marquee-behavior-alternate>alternate</a>
+ state</dt>
+
+ <dd>
+
+ <p>When the <a href=#marquee-current-loop-index>marquee current loop index</a> is even (or
+ zero), slide the contents of the element in the direction
+ described by the <code title=attr-marquee-direction><a href=#attr-marquee-direction>direction</a></code> attribute as
+ defined below, such that it begins flush with the start side of
+ the <code><a href=#the-marquee-element>marquee</a></code>, and ends flush with the end side of the
+ <code><a href=#the-marquee-element>marquee</a></code>.</p>
+
+ <p>When the <a href=#marquee-current-loop-index>marquee current loop index</a> is odd, slide
+ the contents of the element in the opposite direction than that
+ described by the <code title=attr-marquee-direction><a href=#attr-marquee-direction>direction</a></code> attribute as
+ defined below, such that it begins flush with the end side of the
+ <code><a href=#the-marquee-element>marquee</a></code>, and ends flush with the start side of the
+ <code><a href=#the-marquee-element>marquee</a></code>.</p>
+
+ <p class=example>For example, if the <code title=attr-marquee-direction><a href=#attr-marquee-direction>direction</a></code> attribute is <a href=#attr-marquee-direction-left title=attr-marquee-direction-left>left</a> (the default),
+ then the contents would with their right edge flush with the right
+ inner edge of the <code><a href=#the-marquee-element>marquee</a></code>'s content area, and the
+ contents would then slide up to the point where the <em>left</em>
+ edge of the contents are flush with the left inner edge of the
+ <code><a href=#the-marquee-element>marquee</a></code>'s content area.</p>
+
+ <p>Once the animation has ended, the user agent is expected to
+ <a href=#increment-the-marquee-current-loop-index>increment the marquee current loop index</a>. If the
+ element is still <a href=#concept-marquee-on title=concept-marquee-on>turned on</a>
+ after this, then the user agent is expected to continue the
+ animation.</p>
+
+ </dd>
+
+ </dl><p>The <code title=attr-marquee-direction><a href=#attr-marquee-direction>direction</a></code>
+ attribute has the meanings described in the following table:</p>
+
+ <table><thead><tr><th><code title=attr-marquee-direction><a href=#attr-marquee-direction>direction</a></code> attribute state
+ <th>Direction of animation
+ <th>Start edge
+ <th>End edge
+ <th>Opposite direction
+ <tbody><tr><td><a href=#attr-marquee-direction-left title=attr-marquee-direction-left>left</a>
+ <td>&larr; Right to left
+ <td>Right
+ <td>Left
+ <td>&rarr; Left to Right
+ <tr><td><a href=#attr-marquee-direction-right title=attr-marquee-direction-right>right</a>
+ <td>&rarr; Left to Right
+ <td>Left
+ <td>Right
+ <td>&larr; Right to left
+ <tr><td><a href=#attr-marquee-direction-up title=attr-marquee-direction-up>up</a>
+ <td>&uarr; Up (Bottom to Top)
+ <td>Bottom
+ <td>Top
+ <td>&darr; Down (Top to Bottom)
+ <tr><td><a href=#attr-marquee-direction-down title=attr-marquee-direction-down>down</a>
+ <td>&darr; Down (Top to Bottom)
+ <td>Top
+ <td>Bottom
+ <td>&uarr; Up (Bottom to Top)
+ </table><p>In any case, the animation should proceed such that there is a
+ delay given by the <a href=#marquee-scroll-interval>marquee scroll interval</a> between each
+ frame, and such that the content moves at most the distance given by
+ the <a href=#marquee-scroll-distance>marquee scroll distance</a> with each frame.</p>
+
+ <p>When a <code><a href=#the-marquee-element>marquee</a></code> element has a <code title=attr-marquee-bgcolor>bgcolor</code> attribute set, the value
+ is expected to be parsed using the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a legacy
+ color value</a>, and if that does not return an error, the user
+ agent is expected to treat the attribute as a <a href=#presentational-hints title="presentational hints">presentational hint</a> setting the
+ element's 'background-color' property to the resulting color.</p>
+
+ <p>The <code title=attr-marquee-width>width</code> and <code title=attr-marquee-height>height</code> attributes on a
+ <code><a href=#the-marquee-element>marquee</a></code> element <a href=#maps-to-the-dimension-property title="maps to the dimension
+ property">map to the dimension properties</a> 'width' and
+ 'height' on the element respectively.</p>
+
+ <p>The intrinsic height of a <code><a href=#the-marquee-element>marquee</a></code> element with its
+ <code title=attr-marquee-direction><a href=#attr-marquee-direction>direction</a></code> attribute in
+ the <a href=#attr-marquee-direction-up title=attr-marquee-direction-up>up</a> or <a href=#attr-marquee-direction-down title=attr-marquee-direction-down>down</a> states is 200 CSS
+ pixels.</p>
+
+ <p>The <code title=attr-marquee-vspace>vspace</code> attribute of
+ a <code><a href=#the-marquee-element>marquee</a></code> element <a href=#maps-to-the-dimension-property title="maps to the dimension
+ property">maps to the dimension properties</a> 'margin-top' and
+ 'margin-bottom' on the element. The <code title=attr-marquee-hspace>hspace</code> attribute of a
+ <code><a href=#the-marquee-element>marquee</a></code> element <a href=#maps-to-the-dimension-property title="maps to the dimension
+ property">maps to the dimension properties</a> 'margin-left' and
+ 'margin-right' on the element.</p>
+
+ <p>The 'overflow' property on the <code><a href=#the-marquee-element>marquee</a></code> element is
+ expected to be ignored; overflow is expected to always be
+ hidden.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-meter-element-0><span class=secno>15.5.12 </span>The <code><a href=#the-meter-element>meter</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+meter { binding: <i title="">meter</i>; }</pre>
+
+ <p>When the <i title="">meter</i> binding applies to a
+ <code><a href=#the-meter-element>meter</a></code> element, the element is expected to render as an
+ 'inline-block' box with a 'height' of '1em' and a 'width' of '5em',
+ a 'vertical-align' of '-0.2em', and with its contents depicting a
+ gauge.</p>
+
+ <p>When the element is wider than it is tall (or square), the
+ depiction is expected to be of a horizontal gauge, with the minimum
+ value on the right if the 'direction' property on this element has a
+ computed value of 'rtl', and on the left otherwise. When the element
+ is taller than it is wide, it is expected to depict a vertical
+ gauge, with the minimum value on the bottom.</p>
+
+ <p>User agents are expected to use a presentation consistent with
+ platform conventions for gauges, if any.</p>
+
+ <p class=note>Requirements for what must be depicted in the gauge
+ are included in the definition of the <code><a href=#the-meter-element>meter</a></code>
+ element.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-progress-element-0><span class=secno>15.5.13 </span>The <code><a href=#the-progress-element>progress</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+progress { binding: <i title="">progress</i>; }</pre>
+
+ <p>When the <i title="">progress</i> binding applies to a
+ <code><a href=#the-progress-element>progress</a></code> element, the element is expected to render as
+ an 'inline-block' box with a 'height' of '1em' and a 'width' of
+ '10em', and a 'vertical-align' of '-0.2em'.</p>
+
+ <!-- http://software.hixie.ch/utilities/js/canvas/?c.clearRect(0%2C%200%2C%20640%2C%20480)%3B%0Ac.save()%3B%0Atry%20{%0A%20%20c.fillStyle%20%3D%20'black'%3B%0A%20%20c.font%20%3D%20'8px%20sans-serif'%3B%0A%20%20c.fillText('Wide'%2C%2043%2C105)%3B%0A%20%20c.fillText('Tall'%2C%20100%2C105)%3B%0A%20%20c.fillText('Square'%2C%20128%2C105)%3B%0A%20%20c.font%20%3D%20'700%2010px%20sans-serif'%3B%0A%20%20c.fillText('Progress%20Bars'%2C%2013%2C30)%3B%0A%20%20c.font%20%3D%20'100%2010px%20sans-serif'%3B%0A%20%20c.fillText('(80%25)'%2C%2037%2C45)%3B%0A%20%20c.beginPath()%3B%0A%20%20var%20g%20%3D%20c.createLinearGradient(10%2C0%2C80%2C0)%3B%0A%20%20g.addColorStop(0%2C%20'%2300FF00')%3B%0A%20%20g.addColorStop(0.8%2C%20'%2300FF00')%3B%0A%20%20g.addColorStop(0.9%2C%20'%23FFFF00')%3B%0A%20%20c.fillStyle%20%3D%20g%3B%0A%20%20c.rect(10%2C80%2C80%2C15)%3B%0A%20%20c.fill()%3B%0A%20%20c.strokeStyle%20%3D%20'black'%3B%0A%20%20c.stroke()%3B%0A%20%20c.beginPath()%3B%0A%20%20var%20g%20%3D%20c.createLinearGradient(0%2C80%2C0%2C20)%3B%0A%20%20g.addColorStop(0%2C%20'%2300FF00')%3B%0A%20%20g.addColorStop(0.75%2C%20'%2300FF00')%3B%0A%20%20g.addColorStop(0.85%2C%20'%23FFFF00')%3B%0A%20%20c.fillStyle%20%3D%20g%3B%0A%20%20c.rect(100%2C15%2C15%2C80)%3B%0A%20%20c.fill()%3B%0A%20%20c.strokeStyle%20%3D%20'black'%3B%0A%20%20c.stroke()%3B%0A%0A%20%20c.beginPath()%3B%0A%20%20c.fillStyle%20%3D%20'yellow'%3B%0A%20%20c.arc(140%2C80%2C15%2C0%2C2*Math.PI%2C%20true)%3B%0A%20%20c.fill()%3B%0A%20%20c.beginPath()%3B%0A%20%20c.fillStyle%20%3D%20'lime'%3B%0A%20%20c.moveTo(140%2C80)%3B%0A%20%20c.arc(140%2C80%2C15%2C-Math.PI%2F2%2C1.2*Math.PI%2C%20false)%3B%0A%20%20c.fill()%3B%0A%20%20c.beginPath()%3B%0A%20%20c.arc(140%2C80%2C15%2C0%2C2*Math.PI%2C%20true)%3B%0A%20%20c.strokeStyle%20%3D%20'black'%3B%0A%20%20c.stroke()%3B%0A}%20finally%20{%0A%20%20c.restore()%3B%0A}%0A -->
+
+ <p> <img alt="" class=extra src=greenbox.png>
+ When the element is wider than it is tall, the element is
+ expected to be depicted as a horizontal progress bar, with the start
+ on the right and the end on the left if the 'direction' property on
+ this element has a computed value of 'rtl', and with the start on
+ the left and the end on the right otherwise. When the element is
+ taller than it is wide, it is expected to depicted as a vertical
+ progress bar, with the lowest value on the bottom. When the element
+ is square, it is expected to be depicted as a direction-independent
+ progress widget (e.g. a circular progress ring).</p>
+
+ <p>User agents are expected to use a presentation consistent with
+ platform conventions for progress bars. In particular, user agents
+ are expected to use different presentations for determinate and
+ indeterminate progress bars. User agents are also expected to vary
+ the presentation based on the dimensions of the element.</p>
+
+ <p class=example>For example, on some platforms for showing
+ indeterminate progress there is an asynchronous progress indicator
+ with square dimensions, which could be used when the element is
+ square, and an indeterminate progress bar, which could be used when
+ the element is wide.</p>
+
+ <p class=note>Requirements for how to determine if the progress
+ bar is determinate or indeterminate, and what progress a determinate
+ progress bar is to show, are included in the definition of the
+ <code><a href=#the-progress-element>progress</a></code> element.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-select-element-0><span class=secno>15.5.14 </span>The <code><a href=#the-select-element>select</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+select { binding: <i title="">select</i>; }</pre>
+
+ <p>When the <i title="">select</i> binding applies to a
+ <code><a href=#the-select-element>select</a></code> element whose <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute is present,
+ the element is expected to render as a multi-select list box.</p>
+
+ <p>When the <i title="">select</i> binding applies to a
+ <code><a href=#the-select-element>select</a></code> element whose <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute is absent,
+ and the element's <a href=#concept-select-size title=concept-select-size>display
+ size</a> is greater than 1, the element is expected to render as
+ a single-select list box.</p>
+
+ <p>When the element renders as a list box, it is expected to render
+ as an 'inline-block' box whose 'height' is the height necessary to
+ contain as many rows for items as given by the element's <a href=#concept-select-size title=concept-select-size>display size</a>, or four rows if the
+ attribute is absent, and whose 'width' is the <a href="#width-of-the-select's-labels">width of the
+ <code>select</code>'s labels</a> plus the width of a
+ scrollbar.</p>
+
+ <p>When the <i title="">select</i> binding applies to a
+ <code><a href=#the-select-element>select</a></code> element whose <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute is absent,
+ and the element's <a href=#concept-select-size title=concept-select-size>display
+ size</a> is 1, the element is expected to render as a one-line
+ drop down box whose width is the <a href="#width-of-the-select's-labels">width of the
+ <code>select</code>'s labels</a>.</p>
+
+ <p>In either case (list box or drop-down box), the element's items
+ are expected to be the element's <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>, with the
+ element's <code><a href=#the-optgroup-element>optgroup</a></code> element children providing headers
+ for groups of options where applicable.</p>
+
+ <p>An <code><a href=#the-optgroup-element>optgroup</a></code> element is expected to be rendered by
+ displaying the element's <code title=attr-optgroup-label><a href=#attr-optgroup-label>label</a></code> attribute.</p>
+
+ <p>An <code><a href=#the-option-element>option</a></code> element is expected to be rendered by
+ displaying the element's <a href=#concept-option-label title=concept-option-label>label</a>, indented under its
+ <code><a href=#the-optgroup-element>optgroup</a></code> element if it has one.</p>
+
+ <p>The <dfn id="width-of-the-select's-labels">width of the <code>select</code>'s labels</dfn> is the
+ wider of the width necessary to render the widest
+ <code><a href=#the-optgroup-element>optgroup</a></code>, and the width necessary to render the widest
+ <code><a href=#the-option-element>option</a></code> element in the element's <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> (including
+ its indent, if any).</p>
+
+ <p>If a <code><a href=#the-select-element>select</a></code> element contains a <a href=#placeholder-label-option>placeholder
+ label option</a>, the user agent is expected to render that
+ <code><a href=#the-option-element>option</a></code> in a manner that conveys that it is a label,
+ rather than a valid option of the control. This can include
+ preventing the <a href=#placeholder-label-option>placeholder label option</a> from being
+ explicitly selected by the user. When the <a href=#placeholder-label-option>placeholder label
+ option</a>'s <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true, the
+ control is expected to be displayed in a fashion that indicates that
+ no valid option is currently selected.</p>
+
+ <p>User agents are expected to render the labels in a
+ <code><a href=#the-select-element>select</a></code> in such a manner that any alignment remains
+ consistent whether the label is being displayed as part of the page
+ or in a menu control.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-textarea-element-0><span class=secno>15.5.15 </span>The <code><a href=#the-textarea-element>textarea</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+textarea { binding: <i title="">textarea</i>; white-space: pre-wrap; }</pre>
+
+ <p>When the <i title="">textarea</i> binding applies to a
+ <code><a href=#the-textarea-element>textarea</a></code> element, the element is expected to render as
+ an 'inline-block' box rendered as a multiline text field.</p>
+
+ <p>If the element has a <code title=attr-textarea-cols><a href=#attr-textarea-cols>cols</a></code>
+ attribute, and parsing that attribute's value using the <a href=#rules-for-parsing-non-negative-integers>rules
+ for parsing non-negative integers</a> doesn't generate an error,
+ then the user agent is expected to use the attribute as a <a href=#presentational-hints title="presentational hints">presentational hint</a> for the
+ 'width' property on the element, with the value being the
+ <a href=#textarea-effective-width>textarea effective width</a> (as defined below). Otherwise,
+ the user agent is expected to act as if it had a user-agent-level
+ style sheet rule setting the 'width' property on the element to the
+ <a href=#textarea-effective-width>textarea effective width</a>.</p>
+
+ <p>The <dfn id=textarea-effective-width>textarea effective width</dfn> of a
+ <code><a href=#the-textarea-element>textarea</a></code> element is <span><var title="">size</var>&times;<var title="">avg</var>&nbsp;+&nbsp;<var title="">sbw</var></span>, where <var title="">size</var> is the
+ element's <a href=#attr-textarea-cols-value title=attr-textarea-cols-value>character
+ width</a>, <var title="">avg</var> is the average character width
+ of the primary font of the element, in CSS pixels, and <var title="">sbw</var> is the width of a scroll bar, in CSS pixels. (The
+ element's 'letter-spacing' property does not affect the result.)</p>
+
+ <p>If the element has a <code title=attr-textarea-rows><a href=#attr-textarea-rows>rows</a></code>
+ attribute, and parsing that attribute's value using the <a href=#rules-for-parsing-non-negative-integers>rules
+ for parsing non-negative integers</a> doesn't generate an error,
+ then the user agent is expected to use the attribute as a <a href=#presentational-hints title="presentational hints">presentational hint</a> for the
+ 'height' property on the element, with the value being the
+ <a href=#textarea-effective-height>textarea effective height</a> (as defined
+ below). Otherwise, the user agent is expected to act as if it had a
+ user-agent-level style sheet rule setting the 'height' property on
+ the element to the <a href=#textarea-effective-height>textarea effective height</a>.</p>
+
+ <p>The <dfn id=textarea-effective-height>textarea effective height</dfn> of a
+ <code><a href=#the-textarea-element>textarea</a></code> element is the height in CSS pixels of the
+ number of lines specified the element's <a href=#attr-textarea-rows-value title=attr-textarea-rows-value>character height</a>, plus the
+ height of a scrollbar in CSS pixels.</p>
+
+ <p>User agents are expected to apply the 'white-space' CSS property
+ to <code><a href=#the-textarea-element>textarea</a></code> elements. For historical reasons, if the
+ element has a <code title=attr-textarea-wrap><a href=#attr-textarea-wrap>wrap</a></code> attribute
+ whose value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the
+ string "<code title=attr-textarea-wrap-off>off</code>", then the
+ user agent is expected to treat the attribute as a <a href=#presentational-hints title="presentational hints">presentational hint</a> setting the
+ element's 'white-space' property to 'pre'.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-keygen-element-0><span class=secno>15.5.16 </span>The <code><a href=#the-keygen-element>keygen</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+keygen { binding: <i title="">keygen</i>; }</pre>
+
+ <p>When the <i title="">keygen</i> binding applies to a
+ <code><a href=#the-keygen-element>keygen</a></code> element, the element is expected to render as an
+ 'inline-block' box containing a user interface to configure the key
+ pair to be generated.</p>
+
+ </div>
+
+
+ <div class=impl>
+
+ <h4 id=the-time-element-0><span class=secno>15.5.17 </span>The <code><a href=#the-time-element>time</a></code> element</h4>
+
+ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml);
+
+time[datetime] { binding: <i title="">time</i>; }</pre>
+
+ <p>When the <i title="">time</i> binding applies to a
+ <code><a href=#the-time-element>time</a></code> element, the element is expected to render as if
+ it contained text conveying the <a href=#concept-time-date title=concept-time-date>date</a> (if known), <a href=#concept-time-time title=concept-time-time>time</a> (if known), and <a href=#concept-time-timezone title=concept-time-timezone>time-zone offset</a> (if known)
+ represented by the element, in the fashion most convenient for the
+ user.</p>
+
+ <!-- If none are known then the element would appear empty. -->
+
+ </div>
+
+
+
+ <div class=impl>
+
+ <h3 id=frames-and-framesets><span class=secno>15.6 </span>Frames and framesets</h3>
+
+ <p>When an <code><a href=#the-html-element>html</a></code> element's second child element is a
+ <code><a href=#frameset>frameset</a></code> element, the user agent is expected to render
+ the <code><a href=#frameset>frameset</a></code> element as described below across the
+ surface of the viewport, instead of applying the usual CSS rendering
+ rules.</p>
+
+ <p>When rendering a <code><a href=#frameset>frameset</a></code> on a surface, the user
+ agent is expected to use the following layout algorithm:</p>
+
+ <ol><li>
+
+ <p>The <var title="">cols</var> and <var title="">rows</var>
+ variables are lists of zero or more pairs consisting of a number
+ and a unit, the unit being one of <i>percentage</i>,
+ <i>relative</i>, and <i>absolute</i>.</p>
+
+ <p>Use the <a href=#rules-for-parsing-a-list-of-dimensions>rules for parsing a list of dimensions</a> to
+ parse the value of the element's <code title=attr-frameset-cols>cols</code> attribute, if there is
+ one. Let <var title="">cols</var> be the result, or an empty list
+ if there is no such attribute.</p>
+
+ <p>Use the <a href=#rules-for-parsing-a-list-of-dimensions>rules for parsing a list of dimensions</a> to
+ parse the value of the element's <code title=attr-frameset-rows>rows</code> attribute, if there is
+ one. Let <var title="">rows</var> be the result, or an empty list
+ if there is no such attribute.</p>
+
+ </li>
+
+ <li>
+
+ <p>For any of the entries in <var title="">cols</var> or <var title="">rows</var> that have the number zero and the unit
+ <i>relative</i>, change the entry's number to one.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">cols</var> has no entries, then add a single
+ entry consisting of the value 1 and the unit <i>relative</i> to
+ <var title="">cols</var>.</p>
+
+ <p>If <var title="">rows</var> has no entries, then add a single
+ entry consisting of the value 1 and the unit <i>relative</i> to
+ <var title="">rows</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>Invoke the algorithm defined below to <a href=#convert-a-list-of-dimensions-to-a-list-of-pixel-values>convert a list of
+ dimensions to a list of pixel values</a> using <var title="">cols</var> as the input list, and the width of the
+ surface that the <code><a href=#frameset>frameset</a></code> is being rendered into, in
+ CSS pixels, as the input dimension. Let <var title="">sized
+ cols</var> be the resulting list.</p>
+
+ <p>Invoke the algorithm defined below to <a href=#convert-a-list-of-dimensions-to-a-list-of-pixel-values>convert a list of
+ dimensions to a list of pixel values</a> using <var title="">rows</var> as the input list, and the height of the
+ surface that the <code><a href=#frameset>frameset</a></code> is being rendered into, in
+ CSS pixels, as the input dimension. Let <var title="">sized
+ rows</var> be the resulting list.</p>
+
+ </li>
+
+ <li>
+
+ <p>Split the surface into a grid of <span title=""><var title="">w</var>&times;<var title="">h</var></span> rectangles,
+ where <var title="">w</var> is the number of entries in <var title="">sized cols</var> and <var title="">h</var> is the number
+ of entries in <var title="">sized rows</var>.</p>
+
+ <p>Size the columns so that each column in the grid is as many CSS
+ pixels wide as the corresponding entry in the <var title="">sized
+ cols</var> list.</p>
+
+ <p>Size the rows so that each row in the grid is as many CSS
+ pixels high as the corresponding entry in the <var title="">sized
+ rows</var> list.</p>
+
+ </li>
+
+ <li>
+
+ <p>Let <var title="">children</var> be the list of
+ <code><a href=#frame>frame</a></code> and <code><a href=#frameset>frameset</a></code> elements that are
+ children of the <code><a href=#frameset>frameset</a></code> element for which the
+ algorithm was invoked.</p>
+
+ </li>
+
+ <li>
+
+ <p>For each row of the grid of rectangles created in the previous
+ step, from top to bottom, run these substeps:</p>
+
+ <ol><li>
+
+ <p>For each rectangle in the row, from left to right, run these
+ substeps:</p>
+
+ <ol><li>
+
+ <p>If there are any elements left in <var title="">children</var>, take the first element in the list,
+ and assign it to the rectangle.</p>
+
+ <p>If this is a <code><a href=#frameset>frameset</a></code> element, then recurse
+ the entire <code><a href=#frameset>frameset</a></code> layout algorithm for that
+ <code><a href=#frameset>frameset</a></code> element, with the rectangle as the
+ surface.</p>
+
+ <p>Otherwise, it is a <code><a href=#frame>frame</a></code> element; create a
+ <a href=#nested-browsing-context>nested browsing context</a> sized to fit the
+ rectangle.</p>
+
+ </li>
+
+ <li>
+
+ <p>If there are any elements left in <var title="">children</var>, remove the first element from <var title="">children</var>.</p>
+
+ </ol></li>
+
+ </ol></li>
+
+ <li>
+
+ <p>If the <code><a href=#frameset>frameset</a></code> element <a href=#has-a-border>has a border</a>,
+ draw an outer set of borders around the rectangles, using the
+ element's <a href=#frame-border-color>frame border color</a>.</p>
+
+ <p>For each rectangle, if there is an element assigned to that
+ rectangle, and that element <a href=#has-a-border>has a border</a>, draw an
+ inner set of borders around that rectangle, using the
+ element's <a href=#frame-border-color>frame border color</a>.</p>
+
+ <p>For each (visible) border that does not abut a rectangle that
+ is assigned a <code><a href=#frame>frame</a></code> element with a <code title=attr-frame-noresize>noresize</code> attribute (including
+ rectangles in further nested <code><a href=#frameset>frameset</a></code> elements), the
+ user agent is expected to allow the user to move the border,
+ resizing the rectangles within, keeping the proportions of any
+ nested <code><a href=#frameset>frameset</a></code> grids.</p>
+
+ <p>A <code><a href=#frameset>frameset</a></code> or <code><a href=#frame>frame</a></code> element <dfn id=has-a-border>has
+ a border</dfn> if the following algorithm returns true:</p>
+
+ <ol><li><p>If the element has a <code title=attr-frames-frameborder>frameborder</code> attribute
+ whose value is not the empty string and whose first character is
+ either a U+0031 DIGIT ONE (1) character, a U+0079 LATIN SMALL
+ LETTER Y character (y), or a U+0059 LATIN CAPITAL LETTER Y
+ character (Y), then return true.</li>
+
+ <li><p>Otherwise, if the element has a <code title=attr-frames-frameborder>frameborder</code> attribute,
+ return false.</li>
+
+ <li><p>Otherwise, if the element has a parent element that is a
+ <code><a href=#frameset>frameset</a></code> element, then return true if <em>that</em>
+ element <a href=#has-a-border>has a border</a>, and false if it does
+ not.</li>
+
+ <li><p>Otherwise, return true.</li>
+
+ </ol><p>The <dfn id=frame-border-color>frame border color</dfn> of a <code><a href=#frameset>frameset</a></code> or
+ <code><a href=#frame>frame</a></code> element is the color obtained from the
+ following algorithm:</p>
+
+ <ol><li><p>If the element has a <code title=attr-frames-bordercolor>bordercolor</code> attribute, and
+ applying the <a href=#rules-for-parsing-a-legacy-color-value>rules for parsing a legacy color value</a>
+ to that attribute's value does not result in an error, then
+ return the color so obtained.</li>
+
+ <li><p>Otherwise, if the element has a parent element that is a
+ <code><a href=#frameset>frameset</a></code> element, then the <a href=#frame-border-color>frame border
+ color</a> of that element.</p>
+
+ <li><p>Otherwise, return gray.</li>
+
+ </ol></li>
+
+ </ol><p>The algorithm to <dfn id=convert-a-list-of-dimensions-to-a-list-of-pixel-values>convert a list of dimensions to a list of
+ pixel values</dfn> consists of the following steps:</p>
+
+ <ol><li>
+
+ <p>Let <var title="">input list</var> be the list of numbers and
+ units passed to the algorithm.</p>
+
+ <p>Let <var title="">output list</var> be a list of numbers the
+ same length as <var title="">input list</var>, all zero.</p>
+
+ <p>Entries in <var title="">output list</var> correspond to the
+ entries in <var title="">input list</var> that have the same
+ position.</p>
+
+ </li>
+
+ <li><p>Let <var title="">input dimension</var> be the size passed
+ to the algorithm.</p>
+
+ <li>
+
+ <p>Let <var title="">count percentage</var> be the number of
+ entries in <var title="">input list</var> whose unit is
+ <i>percentage</i>.</p>
+
+ <p>Let <var title="">total percentage</var> be the sum of all the
+ numbers in <var title="">input list</var> whose unit is
+ <i>percentage</i>.</p>
+
+ <p>Let <var title="">count relative</var> be the number of
+ entries in <var title="">input list</var> whose unit is
+ <i>relative</i>.</p>
+
+ <p>Let <var title="">total relative</var> be the sum of all the
+ numbers in <var title="">input list</var> whose unit is
+ <i>relative</i>.</p>
+
+ <p>Let <var title="">count absolute</var> be the number of
+ entries in <var title="">input list</var> whose unit is
+ <i>absolute</i>.</p>
+
+ <p>Let <var title="">total absolute</var> be the sum of all the
+ numbers in <var title="">input list</var> whose unit is
+ <i>absolute</i>.</p>
+
+ <p>Let <var title="">remaining space</var> be the value of <var title="">input dimension</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">total absolute</var> is greater than <var title="">remaining space</var>, then for each entry in <var title="">input list</var> whose unit is <i>absolute</i>, set the
+ corresponding value in <var title="">output list</var> to the
+ number of the entry in <var title="">input list</var> multiplied
+ by <var title="">remaining space</var> and divided by <var title="">total absolute</var>. Then, set <var title="">remaining
+ space</var> to zero.</p>
+
+ <p>Otherwise, for each entry in <var title="">input list</var>
+ whose unit is <i>absolute</i>, set the corresponding value in <var title="">output list</var> to the number of the entry in <var title="">input list</var>. Then, decrement <var title="">remaining
+ space</var> by <var title="">total absolute</var>.</p>
+
+ </li>
+
+ <li>
+
+ <p>If <var title="">total percentage</var> multiplied by the <var title="">input dimension</var> and divided by 100 is greater than
+ <var title="">remaining space</var>, then for each entry in <var title="">input list</var> whose unit is <i>percentage</i>, set the
+ corresponding value in <var title="">output list</var> to the
+ number of the entry in <var title="">input list</var> multiplied
+ by <var title="">remaining space</var> and divided by <var title="">total percentage</var>. Then, set <var title="">remaining
+ space</var> to zero.</p>
+
+ <p>Otherwise, for each entry in <var title="">input list</var>
+ whose unit is <i>percentage</i>, set the corresponding value in
+ <var title="">output list</var> to the number of the entry in <var title="">input list</var> multiplied by the <var title="">input
+ dimension</var> and divided by 100. Then, decrement <var title="">remaining space</var> by <var title="">total
+ percentage</var> multiplied by the <var title="">input
+ dimension</var> and divided by 100.</p>
+
+ </li>
+
+ <li>
+
+ <p>For each entry in <var title="">input list</var> whose unit is
+ <i>relative</i>, set the corresponding value in <var title="">output list</var> to the number of the entry in <var title="">input list</var> multiplied by <var title="">remaining
+ space</var> and divided by <var title="">total relative</var>.</p>
+
+ </li>
+
+ <li><p>Return <var title="">output list</var>.</li>
+
+ </ol><p>User agents working with integer values for frame widths (as
+ opposed to user agents that can lay frames out with subpixel
+ accuracy) are expected to distribute the remainder first to the last
+ entry whose unit is <i>relative</i>, then equally (not
+ proportionally) to each entry whose unit is <i>percentage</i>, then
+ equally (not proportionally) to each entry whose unit is
+ <i>absolute</i>, and finally, failing all else, to the last
+ entry.</p>
+
+
+ </div>
+
+
+ <div class=impl>
+
+ <h3 id=interactive-media><span class=secno>15.7 </span>Interactive media</h3>
+
+ <h4 id=links,-forms,-and-navigation><span class=secno>15.7.1 </span>Links, forms, and navigation</h4>
+
+ <p>User agents are expected to allow the user to control aspects of
+ <a href=#hyperlink>hyperlink</a> activation and <a href=#form-submission>form submission</a>,
+ such as which <a href=#browsing-context>browsing context</a> is to be used for the
+ subsequent <a href=#navigate title=navigate>navigation</a>.</p>
+
+ <p>User agents are expected to allow users to discover the
+ destination of <a href=#hyperlink title=hyperlink>hyperlinks</a> and of
+ <a href=#the-form-element title=form>forms</a> before triggering their <a href=#navigate title=navigate>navigation</a>.</p>
+
+<!--PING-->
+ <p>User agents are expected to inform the user of whether a
+ <a href=#hyperlink>hyperlink</a> includes <a href=#hyperlink-auditing>hyperlink auditing</a>, and
+ to let them know at a minimum which domains will be contacted as
+ part of such auditing.</p>
+<!--PING-->
+
+ <p>User agents are expected to allow users to
+ <a href=#navigate>navigate</a><!--DONAV cite=""--> <a href=#browsing-context title="browsing
+ context">browsing contexts</a> to the resources <a href=#resolve-a-url title="resolve a url">indicated</a> by the <code title="">cite</code> attributes on <code><a href=#the-q-element>q</a></code>,
+ <code><a href=#the-blockquote-element>blockquote</a></code>,
+ <code><a href=#the-ins-element>ins</a></code>, and <code><a href=#the-del-element>del</a></code> elements.</p>
+
+ <p>User agents are expected to surface <a href=#hyperlink title=hyperlink>hyperlinks</a> created by <code><a href=#the-link-element>link</a></code>
+ elements in their user interface.</p>
+
+ <p class=note>While <code><a href=#the-link-element>link</a></code> elements that create <a href=#hyperlink title=hyperlink>hyperlinks</a> will match the ':link' or
+ ':visited' pseudo-classes, will react to clicks if visible, and so
+ forth, this does not extend to any browser interface constructs that
+ expose those same links. Activating a link through the browser's
+ interface, rather than in the page itself, does not trigger <code title=event-click><a href=#event-click>click</a></code> events and the like.</p>
+
+
+
+
+ <h4 id=the-title-attribute-0><span class=secno>15.7.2 </span>The <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute</h4>
+
+ <p>Given an element (e.g. the element designated by the mouse
+ cursor), if the element, or one of its ancestors, has a <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute, and the nearest such
+ attribute has a value that is not the empty string, it is expected
+ that the user agent will expose the contents of that attribute as a
+ tooltip.</p>
+
+ <p>U+000A LINE FEED (LF) characters are expected to cause line
+ breaks in the tooltip, U+0009 CHARACTER TABULATION (tab) characters
+ are expected to render as a non-zero horizontal shift that lines up
+ the next glyph with the next tab stop, with tab stops occurring at
+ points that are multiples of 8 times the width of a U+0020 SPACE
+ character.</p>
+
+ <p>User agents are encouraged to make it possible to view tooltips
+ without the use of a pointing device, since not all users are able
+ to use pointing devices.</p>
+
+ <div class=example>
+
+ <p>For example, a visual user agent could make elements with a
+ <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute focusable, and
+ could make any focused element with a <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute show its tooltip under
+ the element while the element has focus. This would allow a user to
+ tab around the document to find all the advisory text.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>As another example, a screen reader could provide an audio cue
+ when reading an element with a tooltip, with an associated key to
+ read the last tooltip for which a cue was played.</p>
+
+ </div>
+
+
+ <h4 id=editing-hosts><span class=secno>15.7.3 </span>Editing hosts</h4>
+
+ <p>The current text editing caret (i.e. the <a href=#active-range>active
+ range</a>, if it is empty and in an <a href=#editing-host>editing host</a>),
+ if any, is expected to act like an inline replaced element with the
+ vertical dimensions of the caret and with zero width for the
+ purposes of the CSS rendering model.</p>
+
+ <p class=note>This means that even an empty block can have the
+ caret inside it, and that when the caret is in such an element, it
+ prevents margins from collapsing through the element.</p>
+
+
+
+ <h4 id=text-rendered-in-native-user-interfaces><span class=secno>15.7.4 </span>Text rendered in native user interfaces</h4>
+
+ <p>User agents are expected to honor the Unicode semantics of text
+ that is exposed in user interfaces, for example supporting the
+ bidirectional algorithm in text shown in dialogs, title bars, pop-up
+ menus, and tooltips. Text from elements (either attribute values or
+ the contents of elements) is expected to be rendered in a manner
+ that honors <a href=#the-directionality>the directionality</a> of the element from
+ which the text was obtained.</p>
+
+ <div class=example>
+
+ <p>Consider the following markup, which has Hebrew text asking for
+ a programming language, the languages being text for which a
+ left-to-right direction is important given the punctuation in some
+ of their names:</p>
+
+ <pre>&lt;p dir="rtl" lang="he"&gt;
+ &lt;label&gt;
+ <span dir=rtl lang=he title="">&#1489;&#1495;&#1512; &#1513;&#1508;&#1514; &#1514;&#1499;&#1504;&#1493;&#1514;:</span>
+ &lt;select&gt;
+ &lt;option dir="ltr"&gt;C++&lt;/option&gt;
+ &lt;option dir="ltr"&gt;C#&lt;/option&gt;
+ &lt;option dir="ltr"&gt;FreePascal&lt;/option&gt;
+ &lt;option dir="ltr"&gt;F#&lt;/option&gt;
+ &lt;/select&gt;
+ &lt;/label&gt;
+&lt;/p&gt;</pre>
+
+ <p>If the <code><a href=#the-select-element>select</a></code> element was rendered as a drop down
+ box, a correct rendering would ensure that the punctuation was the
+ same both in the drop down, and in the box showing the current
+ selection.</p>
+
+ <p><img alt="" height=105 src=greenbox.png width=206></p> <!-- no need for alt text, the previous paragraph
+ describes it completely -->
+
+ </div>
+
+ <p>A string provided by a script (e.g. the argument to <code title=dom-alert><a href=#dom-alert>window.alert()</a></code>) is expected to be treated
+ as an independent set of one or more bidirectional algorithm
+ paragraphs when displayed, as defined by the bidirectional
+ algorithm, including, for instance, supporting the
+ paragraph-breaking behaviour of U+000A LINE FEED (LF) characters.
+ For the purposes of determining the paragraph level of such text in
+ the bidirectional algorithm, this specification does <em>not</em>
+ provide a higher-level override of rules P2 and P3. <a href=#refsBIDI>[BIDI]</a></p>
+
+ <p>When necessary, authors can enforce a particular direction for a
+ given paragraph by starting it with the Unicode U+200E LEFT-TO-RIGHT
+ MARK or U+200F RIGHT-TO-LEFT MARK characters.</p>
+
+ <div class=example>
+
+ <p>Thus, the following script:</p>
+
+ <pre>alert('\u05DC\u05DE\u05D3 HTML \u05D4\u05D9\u05D5\u05DD!')</pre>
+
+ <p>...would always result in a message reading
+ "<bdo dir=rtl lang="" title="">&#1500;&#1502;&#1491;&nbsp;LMTH&nbsp;&#1492;&#1497;&#1493;&#1501;!</bdo>"
+ (not "<bdo dir=ltr lang="" title="">&#1491;&#1502;&#1500;&nbsp;HTML&nbsp;&#1501;&#1493;&#1497;&#1492;!</bdo>"),
+ regardless of the language of the user agent interface or the
+ direction of the page or any of its elements.</p>
+
+ </div>
+
+ <div class=example>
+
+ <p>For a more complex example, consider the following script:</p>
+
+ <pre class=bad>/* Warning: this script does not handle right-to-left scripts correctly */
+var s;
+if (s = prompt('What is your name?')) {
+ alert(s + '! Ok, Fred, ' + s + ', and Wilma will get the car.');
+}</pre>
+
+ <p>When the user enters "<kbd>Kitty</kbd>", the user agent would
+ alert "<samp>Kitty! Ok, Fred, Kitty, and Wilma will get the
+ car.</samp>". However, if the user enters "<kbd dir=rtl lang=ar>&#1604;&#1575;&nbsp;&#1571;&#1601;&#1607;&#1605;</kbd>",
+ then the bidirectional algorithm will determine that the direction
+ of the paragraph is right-to-left, and so the output will be the
+ following unintended mess: "<samp lang=""><bdo dir=rtl>&#1604;&#1575;&nbsp;&#1571;&#1601;&#1607;&#1605;!&nbsp;derF&nbsp;,kO,&nbsp;&#1604;&#1575;&nbsp;&#1571;&#1601;&#1607;&#1605;,&nbsp;rac&nbsp;eht&nbsp;teg&nbsp;lliw&nbsp;amliW&nbsp;dna.</bdo></samp>"</p>
+
+ <p>To force an alert that starts with user-provided text (or other
+ text of unknown directionality) to render left-to-right, the string
+ can be prefixed with a U+200E LEFT-TO-RIGHT MARK character:</p>
+
+ <pre>var s;
+if (s = prompt('What is your name?')) {
+ alert('<strong>\u200E</strong>' + s + '! Ok, Fred, ' + s + ', and Wilma will get the car.');
+}</pre>
+
+ </div>
+
+
+
+ <h3 id=print-media><span class=secno>15.8 </span>Print media</h3>
+
+ <p>User agents are expected to allow the user to request the
+ opportunity to <dfn id=obtain-a-physical-form>obtain a physical form</dfn> (or a
+ representation of a physical form) of a <code><a href=#document>Document</a></code>. For
+ example, selecting the option to print a page or convert it to PDF
+ format. <a href=#refsPDF>[PDF]</a></p>
+
+ <p>When the user actually <a href=#obtain-a-physical-form title="obtain a physical
+ form">obtains a physical form</a> (or a representation of a
+ physical form) of a <code><a href=#document>Document</a></code>, the user agent is
+ expected to create a new rendering of the <code><a href=#document>Document</a></code> for
+ the print media.</p>
+
+
+
+ </div>
+
+
+
+ <h2 id=obsolete><span class=secno>16 </span>Obsolete features</h2>
+
+ <h3 id=obsolete-but-conforming-features><span class=secno>16.1 </span>Obsolete but conforming features</h3>
+
+ <p>Features listed in this section will trigger warnings in
+ conformance checkers.</p>
+
+ <p>Authors should not specify a <code title=attr-img-border><a href=#attr-img-border>border</a></code> attribute on an
+ <code><a href=#the-img-element>img</a></code> element. If the attribute is present, its value
+ must be the string "<code title="">0</code>". CSS should be used
+ instead.</p>
+
+ <p>Authors should not specify a <code title=attr-script-language><a href=#attr-script-language>language</a></code> attribute on a
+ <code><a href=#the-script-element>script</a></code> element. If the attribute is present, its value
+ must be an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string
+ "<code title="">JavaScript</code>" and either the <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute must be omitted or
+ its value must be an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for
+ the string "<code title="">text/javascript</code>". The attribute
+ should be entirely omitted instead (with the value "<code title="">JavaScript</code>", it has no effect), or replaced with use
+ of the <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute.</p>
+
+ <p>Authors should not specify the <code title=attr-a-name><a href=#attr-a-name>name</a></code> attribute on <code><a href=#the-a-element>a</a></code>
+ elements. If the attribute is present, its value must not be the
+ empty string and must neither be equal to the value of any of the
+ <a href=#concept-id title=concept-id>IDs</a> in the element's <a href=#home-subtree>home
+ subtree</a> other than the element's own <a href=#concept-id title=concept-id>ID</a>, if any, nor be equal to the value of
+ any of the other <code title=attr-a-name><a href=#attr-a-name>name</a></code> attributes on
+ <code><a href=#the-a-element>a</a></code> elements in the element's <a href=#home-subtree>home
+ subtree</a>. If this attribute is present and the element has an
+ <a href=#concept-id title=concept-id>ID</a>, then the attribute's value must
+ be equal to the element's <a href=#concept-id title=concept-id>ID</a>. In
+ earlier versions of the language, this attribute was intended as a
+ way to specify possible targets for fragment identifiers in <a href=#url title=URL>URLs</a>. The <code title=attr-id><a href=#the-id-attribute>id</a></code>
+ attribute should be used instead.</p>
+
+ <!-- remove this once type=number is widely supported -->
+ <p>Authors should not, but may despite requirements to the contrary
+ elsewhere in this specification, specify the <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code> and <code title=attr-input-size><a href=#attr-input-size>size</a></code> attributes on <code><a href=#the-input-element>input</a></code>
+ elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attributes
+ are in the <a href=#number-state title=attr-input-type-number>Number</a> state.
+ One valid reason for using these attributes regardless is to help
+ legacy user agents that do not support <code><a href=#the-input-element>input</a></code> elements
+ with <code title="">type="number"</code> to still render the text
+ field with a useful width.</p>
+
+ <p class=note>In <a href=#syntax>the HTML syntax</a>, specifying a <a href=#syntax-doctype title=syntax-DOCTYPE>DOCTYPE</a> that is an <a href=#obsolete-permitted-doctype>obsolete
+ permitted DOCTYPE</a> will also trigger a warning.</p>
+
+
+ <div class=impl>
+
+ <h4 id=warnings-for-obsolete-but-conforming-features><span class=secno>16.1.1 </span>Warnings for obsolete but conforming features</h4>
+
+ <p>To ease the transition from HTML4 Transitional documents to the
+ language defined in <em>this</em> specification, and to discourage
+ certain features that are only allowed in very few circumstances,
+ conformance checkers are required to warn the user when the
+ following features are used in a document. These are generally old
+ obsolete features that have no effect, and are allowed only to
+ distinguish between likely mistakes (regular conformance errors) and
+ mere vestigial markup or unusual and discouraged practices (these
+ warnings).</p>
+
+ <p>The following features must be categorized as described
+ above:</p>
+
+ <ul><!-- downplayed list --><li><p>The presence of an <a href=#obsolete-permitted-doctype>obsolete permitted DOCTYPE</a>
+ in an <a href=#html-documents title="HTML documents">HTML document</a>.</li>
+
+ <li><p>The presence of a <code title=attr-img-border><a href=#attr-img-border>border</a></code> attribute on an
+ <code><a href=#the-img-element>img</a></code> element if its value is the string "<code title="">0</code>".</li>
+
+ <li><p>The presence of a <code title=attr-script-language><a href=#attr-script-language>language</a></code> attribute on a
+ <code><a href=#the-script-element>script</a></code> element if its value is an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the string "<code title="">JavaScript</code>" and if there is no <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute or there is and its
+ value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the
+ string "<code title="">text/javascript</code>".</li>
+
+ <li><p>The presence of a <code title=attr-a-name><a href=#attr-a-name>name</a></code>
+ attribute on an <code><a href=#the-a-element>a</a></code> element, if its value is not the
+ empty string.</li>
+
+ <li><p>The presence of a <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code> attribute on an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#number-state title=attr-input-type-number>Number</a> state.</li>
+
+ <li><p>The presence of a <code title=attr-input-size><a href=#attr-input-size>size</a></code> attribute on an
+ <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#number-state title=attr-input-type-number>Number</a> state.</li>
+
+ </ul><p>Conformance checkers must distinguish between pages that have no
+ conformance errors and have none of these obsolete features, and
+ pages that have no conformance errors but do have some of these
+ obsolete features.</p>
+
+ <p class=example>For example, a validator could report some pages
+ as "Valid HTML" and others as "Valid HTML with warnings".</p>
+
+ </div>
+
+
+ <h3 id=non-conforming-features><span class=secno>16.2 </span>Non-conforming features</h3>
+
+ <p>Elements in the following list are entirely obsolete, and must
+ not be used by authors:</p>
+
+ <dl><!-- alphabetical by first element in the group, except CSS goes last --><dt><code><a href=#the-applet-element>applet</a></code></dt>
+ <dd><p>Use <code><a href=#the-embed-element>embed</a></code> or <code><a href=#the-object-element>object</a></code> instead.</dd>
+
+ <dt><dfn id=acronym><code>acronym</code></dfn></dt>
+ <dd><p>Use <code><a href=#the-abbr-element>abbr</a></code> instead.</dd>
+
+ <dt><dfn id=bgsound><code>bgsound</code></dfn></dt>
+ <dd><p>Use <code><a href=#the-audio-element>audio</a></code> instead.</dd>
+
+ <dt><dfn id=dir><code>dir</code></dfn></dt>
+ <dd><p>Use <code><a href=#the-ul-element>ul</a></code> instead.</dd>
+
+ <dt><code><a href=#frame>frame</a></code></dt>
+ <dt><code><a href=#frameset>frameset</a></code></dt>
+ <dt><dfn id=noframes><code>noframes</code></dfn></dt>
+ <dd><p>Either use <code><a href=#the-iframe-element>iframe</a></code> and CSS instead, or use server-side includes to generate complete pages with the various invariant parts merged in.</dd>
+
+ <dt><dfn id=isindex-0><code>isindex</code></dfn></dt>
+ <dd><p>Use an explicit <code><a href=#the-form-element>form</a></code> and <a href=#text-state-and-search-state title=attr-input-type-text>text field</a> combination instead.</dd>
+
+ <dt><dfn id=listing><code>listing</code></dfn></dt>
+ <dd><p>Use <code><a href=#the-pre-element>pre</a></code> and <code><a href=#the-code-element>code</a></code> instead.</dd>
+
+ <dt><dfn id=nextid><code>nextid</code></dfn></dt>
+ <dd><p>Use GUIDs instead.</dd>
+
+ <dt><dfn id=noembed><code>noembed</code></dfn></dt>
+ <dd><p>Use <code><a href=#the-object-element>object</a></code> instead of <code><a href=#the-embed-element>embed</a></code> when fallback is necessary.</dd>
+
+ <dt><dfn id=plaintext><code>plaintext</code></dfn></dt>
+ <dd><p>Use the "<code>text/plain</code>" <a href=#mime-type>MIME type</a> instead.</dd>
+
+ <dt><dfn id=rb><code>rb</code></dfn></dt>
+ <dd><p>Providing the ruby base directly inside the <code><a href=#the-ruby-element>ruby</a></code> element is sufficient; the <code><a href=#rb>rb</a></code> element is unnecessary. Omit it altogether.</dd>
+
+ <dt><dfn id=strike><code>strike</code></dfn></dt>
+ <dd><p>Use <code><a href=#the-del-element>del</a></code> instead if the element is marking an edit, otherwise use <code><a href=#the-s-element>s</a></code> instead.</dd>
+
+ <dt><dfn id=xmp><code>xmp</code></dfn></dt>
+ <dd><p>Use <code><a href=#the-pre-element>pre</a></code> and <code><a href=#the-code-element>code</a></code> instead, and escape "<code title="">&lt;</code>" and "<code title="">&amp;</code>" characters as "<code title="">&amp;lt;</code>" and "<code title="">&amp;amp;</code>" respectively.</dd>
+
+ <dt><dfn id=basefont><code>basefont</code></dfn></dt>
+ <dt><dfn id=big><code>big</code></dfn></dt>
+ <dt><dfn id=blink><code>blink</code></dfn></dt>
+ <dt><dfn id=center><code>center</code></dfn></dt>
+ <dt><dfn id=font><code>font</code></dfn></dt>
+ <dt><code><a href=#the-marquee-element>marquee</a></code></dt>
+ <dt><dfn id=multicol><code>multicol</code></dfn></dt>
+ <dt><dfn id=nobr><code>nobr</code></dfn></dt>
+ <dt><dfn id=spacer><code>spacer</code></dfn></dt>
+ <dt><dfn id=tt><code>tt</code></dfn></dt>
+
+ <dd>
+
+ <p>Use appropriate elements and/or CSS instead.</p>
+
+ <p>Where the <code><a href=#tt>tt</a></code> element would have been used for
+ marking up keyboard input, consider the <code><a href=#the-kbd-element>kbd</a></code> element;
+ for variables, consider the <code><a href=#the-var-element>var</a></code> element; for computer
+ code, consider the <code><a href=#the-code-element>code</a></code> element; and for computer
+ output, consider the <code><a href=#the-samp-element>samp</a></code> element.</p>
+
+ <p>Similarly, if the <code><a href=#big>big</a></code> element is being used to
+ denote a heading, consider using the <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> element; if
+ it is being used for marking up important passages, consider the
+ <code><a href=#the-strong-element>strong</a></code> element; and if it is being used for
+ highlighting text for reference purposes, consider the
+ <code><a href=#the-mark-element>mark</a></code> element.</p>
+
+ <p>See also the <a href=#usage-summary>text-level semantics
+ usage summary</a> for more suggestions with examples.</p>
+
+ </dd>
+
+ </dl><hr><p>The following attributes are obsolete (though the elements are
+ still part of the language), and must not be used by authors:</p>
+
+ <dl><!-- alphabetical by element then attribute of first item in group, except CSS goes last --><dt><dfn id=attr-a-charset title=attr-a-charset><code>charset</code></dfn> on <code><a href=#the-a-element>a</a></code> elements</dt>
+ <dt><dfn id=attr-link-charset title=attr-link-charset><code>charset</code></dfn> on <code><a href=#the-link-element>link</a></code> elements</dt>
+ <dd><p>Use an HTTP Content-Type header on the linked resource instead.</dd>
+
+ <dt><dfn id=attr-a-coords title=attr-a-coords><code>coords</code></dfn> on <code><a href=#the-a-element>a</a></code> elements</dt>
+ <dt><dfn id=attr-a-shape title=attr-a-shape><code>shape</code></dfn> on <code><a href=#the-a-element>a</a></code> elements</dt>
+ <dd><p>Use <code><a href=#the-area-element>area</a></code> instead of <code><a href=#the-a-element>a</a></code> for image maps.</dd>
+
+ <dt><dfn id=attr-a-methods title=attr-a-methods><code>methods</code></dfn> on <code><a href=#the-a-element>a</a></code> elements</dt>
+ <dt><dfn id=attr-link-methods title=attr-link-methods><code>methods</code></dfn> on <code><a href=#the-link-element>link</a></code> elements</dt>
+ <dd><p>Use the HTTP OPTIONS feature instead.</dd>
+
+ <dt><dfn id=attr-a-name title=attr-a-name><code>name</code></dfn> on <code><a href=#the-a-element>a</a></code> elements (except as noted in the previous section)</dt>
+ <dt><dfn id=attr-embed-name title=attr-embed-name><code>name</code></dfn> on <code><a href=#the-embed-element>embed</a></code> elements</dt>
+ <dt><dfn id=attr-img-name title=attr-img-name><code>name</code></dfn> on <code><a href=#the-img-element>img</a></code> elements</dt>
+ <dt><dfn id=attr-option-name title=attr-option-name><code>name</code></dfn> on <code><a href=#the-option-element>option</a></code> elements</dt>
+ <dd><p>Use the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute instead.</dd>
+
+ <dt><dfn id=attr-a-rev title=attr-a-rev><code>rev</code></dfn> on <code><a href=#the-a-element>a</a></code> elements</dt>
+ <dt><dfn id=attr-link-rev title=attr-link-rev><code>rev</code></dfn> on <code><a href=#the-link-element>link</a></code> elements</dt>
+ <dd><p>Use the <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>
+ attribute instead, with an opposite term. (For example, instead of
+ <code title="">rev="made"</code>, use <code title="">rel="author"</code>.)</dd>
+
+ <dt><dfn id=attr-a-urn title=attr-a-urn><code>urn</code></dfn> on <code><a href=#the-a-element>a</a></code> elements</dt>
+ <dt><dfn id=attr-link-urn title=attr-link-urn><code>urn</code></dfn> on <code><a href=#the-link-element>link</a></code> elements</dt>
+ <dd><p>Specify the preferred persistent identifier using the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute instead.</dd>
+
+ <dt><dfn id=attr-form-accept title=attr-form-accept><code>accept</code></dfn> on <code><a href=#the-form-element>form</a></code> elements</dt>
+ <dd><p>Use the <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code> attribute directly on the <code><a href=#the-input-element>input</a></code> elements instead.</dd>
+
+ <dt><dfn id=attr-area-nohref title=attr-area-nohref><code>nohref</code></dfn> on <code><a href=#the-area-element>area</a></code> elements</dt>
+ <dd><p>Omitting the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>
+ attribute is sufficient; the <code title=attr-area-nohref><a href=#attr-area-nohref>nohref</a></code> attribute is
+ unnecessary. Omit it altogether.</dd>
+
+ <dt><dfn id=attr-head-profile title=attr-head-profile><code>profile</code></dfn> on <code><a href=#the-head-element>head</a></code> elements</dt>
+ <dd><p>When used for declaring which <code><a href=#the-meta-element>meta</a></code> terms are
+ used in the document, unnecessary; omit it altogether, and <a href=#concept-meta-extensions title=concept-meta-extensions>register the names</a>.</dd>
+ <dd><p>When used for triggering specific user agent behaviors: use
+ a <code><a href=#the-link-element>link</a></code> element instead.</dd>
+
+ <dt><dfn id=attr-html-version title=attr-html-version><code>version</code></dfn> on <code><a href=#the-html-element>html</a></code> elements</dt>
+ <dd><p>Unnecessary. Omit it altogether.</dd>
+
+ <dt><dfn id=attr-input-usemap title=attr-input-usemap><code>usemap</code></dfn> on <code><a href=#the-input-element>input</a></code> elements</dt>
+ <dd><p>Use <code><a href=#the-img-element>img</a></code> instead of <code><a href=#the-input-element>input</a></code> for image maps.</dd>
+
+ <dt><dfn id=attr-iframe-longdesc title=attr-iframe-longdesc><code>longdesc</code></dfn> on <code><a href=#the-iframe-element>iframe</a></code> elements</dt>
+ <dt><dfn id=attr-img-longdesc title=attr-img-longdesc><code>longdesc</code></dfn> on <code><a href=#the-img-element>img</a></code> elements</dt>
+ <dd><p>Use a regular <code><a href=#the-a-element>a</a></code> element to link to the
+ description, or (in the case of images) use an <a href=#image-map>image
+ map</a> to provide a link from the image to the image's
+ description.</dd>
+
+ <dt><dfn id=attr-img-lowsrc title=attr-img-lowsrc><code>lowsrc</code></dfn> on <code><a href=#the-img-element>img</a></code> elements</dt>
+ <dd><p>Use a progressive JPEG image (given in the <code title=attr-img-src><a href=#attr-img-src>src</a></code> attribute),
+ instead of using two separate images.</dd>
+
+ <dt><dfn id=attr-link-target title=attr-link-target><code>target</code></dfn> on <code><a href=#the-link-element>link</a></code> elements</dt>
+ <dd><p>Unnecessary. Omit it altogether.</dd>
+
+ <dt><dfn id=attr-meta-scheme title=attr-meta-scheme><code>scheme</code></dfn> on <code><a href=#the-meta-element>meta</a></code> elements</dt>
+ <dd><p>Use only one scheme per field, or make the scheme declaration part of the value.</dd>
+
+ <dt><dfn id=attr-object-archive title=attr-object-archive><code>archive</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dt><dfn id=attr-object-classid title=attr-object-classid><code>classid</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dt><dfn id=attr-object-code title=attr-object-code><code>code</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dt><dfn id=attr-object-codebase title=attr-object-codebase><code>codebase</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dt><dfn id=attr-object-codetype title=attr-object-codetype><code>codetype</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dd><p>Use the <code title=attr-object-data><a href=#attr-object-data>data</a></code> and <code title=attr-object-type><a href=#attr-object-type>type</a></code> attributes to invoke <a href=#plugin title=plugin>plugins</a>. To set parameters with these names
+ in particular, the <code><a href=#the-param-element>param</a></code> element can be used.</dd>
+
+ <dt><dfn id=attr-object-declare title=attr-object-declare><code>declare</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dd><p>Repeat the <code><a href=#the-object-element>object</a></code> element completely each time the resource is to be reused.</dd>
+
+ <dt><dfn id=attr-object-standby title=attr-object-standby><code>standby</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dd><p>Optimize the linked resource so that it loads quickly or, at least, incrementally.</dd>
+
+ <dt><dfn id=attr-param-type title=attr-param-type><code>type</code></dfn> on <code><a href=#the-param-element>param</a></code> elements</dt>
+ <dt><dfn id=attr-param-valuetype title=attr-param-valuetype><code>valuetype</code></dfn> on <code><a href=#the-param-element>param</a></code> elements</dt>
+ <dd><p>Use the <code title=attr-param-name><a href=#attr-param-name>name</a></code> and <code title=attr-param-value><a href=#attr-param-value>value</a></code> attributes without declaring
+ value types.</dd>
+
+ <dt><dfn id=attr-script-language title=attr-script-language><code>language</code></dfn> on <code><a href=#the-script-element>script</a></code> elements (except as noted in the previous section)</dt>
+ <dd><p>Use the <code title=attr-script-type><a href=#attr-script-type>type</a></code> attribute
+ instead.</dd>
+
+ <dt><dfn id=attr-script-event title=attr-script-event><code>event</code></dfn> on <code><a href=#the-script-element>script</a></code> elements</dt>
+ <dt><dfn id=attr-script-for title=attr-script-for><code>for</code></dfn> on <code><a href=#the-script-element>script</a></code> elements</dt>
+ <dd><p>Use DOM Events mechanisms to register event listeners. <a href=#refsDOMCORE>[DOMCORE]</a></dd>
+
+ <dt><dfn id=attr-table-datapagesize title=attr-table-datapagesize><code>datapagesize</code></dfn> on <code><a href=#the-table-element>table</a></code> elements</dt>
+ <dd><p>Unnecessary. Omit it altogether.</dd>
+
+ <dt><dfn id=attr-table-summary title=attr-table-summary><code>summary</code></dfn> on <code><a href=#the-table-element>table</a></code> elements</dt><!-- 2.65% pages -->
+ <dd><p>Use one of the <a href=#table-descriptions-techniques>techniques for describing
+ tables</a> given in the <code><a href=#the-table-element>table</a></code> section
+ instead.</dd>
+
+ <dt><dfn id=attr-tdth-abbr title=attr-tdth-abbr><code>abbr</code></dfn> on <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dd><p>Use text that begins in an unambiguous and terse manner, and include any more elaborate text after that. The <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute can also be useful in including more detailed text, so that the cell's contents can be made terse.</p>
+
+ <dt><dfn id=attr-tdth-axis title=attr-tdth-axis><code>axis</code></dfn> on <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dd><p>Use the <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code> attribute on the relevant <code><a href=#the-th-element>th</a></code>.</p>
+
+ <dt><dfn id=attr-td-scope title=attr-td-scope><code>scope</code></dfn> on <code><a href=#the-td-element>td</a></code> elements</dt>
+ <dd><p>Use <code><a href=#the-th-element>th</a></code> elements for heading cells.</p>
+
+ <dt><dfn id=attr-datasrc title=attr-datasrc><code>datasrc</code></dfn> on <code><a href=#the-a-element>a</a></code>, <code><a href=#the-applet-element>applet</a></code>, <code><a href=#the-button-element>button</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#frame>frame</a></code>, <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, <code><a href=#the-input-element>input</a></code>, <code><a href=#the-label-element>label</a></code>, <code><a href=#the-legend-element>legend</a></code>, <code><a href=#the-marquee-element>marquee</a></code>, <code><a href=#the-object-element>object</a></code>, <code><a href=#the-option-element>option</a></code>, <code><a href=#the-select-element>select</a></code>, <code><a href=#the-span-element>span</a></code>, <code><a href=#the-table-element>table</a></code>, and <code><a href=#the-textarea-element>textarea</a></code> elements</dt>
+ <dt><dfn id=attr-datafld title=attr-datafld><code>datafld</code></dfn> on <code><a href=#the-a-element>a</a></code>, <code><a href=#the-applet-element>applet</a></code>, <code><a href=#the-button-element>button</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#frame>frame</a></code>, <code><a href=#the-iframe-element>iframe</a></code>, <code><a href=#the-img-element>img</a></code>, <code><a href=#the-input-element>input</a></code>, <code><a href=#the-label-element>label</a></code>, <code><a href=#the-legend-element>legend</a></code>, <code><a href=#the-marquee-element>marquee</a></code>, <code><a href=#the-object-element>object</a></code>, <code><a href=#the-param-element>param</a></code>, <code><a href=#the-select-element>select</a></code>, <code><a href=#the-span-element>span</a></code>, and <code><a href=#the-textarea-element>textarea</a></code> elements</dt>
+ <dt><dfn id=attr-dataformatas title=attr-dataformatas><code>dataformatas</code></dfn> on <code><a href=#the-button-element>button</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-input-element>input</a></code>, <code><a href=#the-label-element>label</a></code>, <code><a href=#the-legend-element>legend</a></code>, <code><a href=#the-marquee-element>marquee</a></code>, <code><a href=#the-object-element>object</a></code>, <code><a href=#the-option-element>option</a></code>, <code><a href=#the-select-element>select</a></code>, <code><a href=#the-span-element>span</a></code>, and <code><a href=#the-table-element>table</a></code> elements</dt>
+ <dd><p>Use script and a mechanism such as <code>XMLHttpRequest</code> to populate the page dynamically. <a href=#refsXHR>[XHR]</a></dd>
+
+ <dt><dfn id=attr-body-alink title=attr-body-alink><code>alink</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-body-bgcolor title=attr-body-bgcolor><code>bgcolor</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-body-link title=attr-body-link><code>link</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-body-marginbottom title=attr-body-marginbottom><code>marginbottom</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-body-marginheight title=attr-body-marginheight><code>marginheight</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-body-marginleft title=attr-body-marginleft><code>marginleft</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-body-marginright title=attr-body-marginright><code>marginright</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-body-margintop title=attr-body-margintop><code>margintop</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-body-marginwidth title=attr-body-marginwidth><code>marginwidth</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-body-text title=attr-body-text><code>text</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-body-vlink title=attr-body-vlink><code>vlink</code></dfn> on <code><a href=#the-body-element>body</a></code> elements</dt>
+ <dt><dfn id=attr-br-clear title=attr-br-clear><code>clear</code></dfn> on <code><a href=#the-br-element>br</a></code> elements</dt>
+ <dt><dfn id=attr-caption-align title=attr-caption-align><code>align</code></dfn> on <code><a href=#the-caption-element>caption</a></code> elements</dt>
+ <dt><dfn id=attr-col-align title=attr-col-align><code>align</code></dfn> on <code><a href=#the-col-element>col</a></code> elements</dt>
+ <dt><dfn id=attr-col-char title=attr-col-char><code>char</code></dfn> on <code><a href=#the-col-element>col</a></code> elements</dt>
+ <dt><dfn id=attr-col-charoff title=attr-col-charoff><code>charoff</code></dfn> on <code><a href=#the-col-element>col</a></code> elements</dt>
+ <dt><dfn id=attr-col-valign title=attr-col-valign><code>valign</code></dfn> on <code><a href=#the-col-element>col</a></code> elements</dt>
+ <dt><dfn id=attr-col-width title=attr-col-width><code>width</code></dfn> on <code><a href=#the-col-element>col</a></code> elements</dt>
+ <dt><dfn id=attr-div-align title=attr-div-align><code>align</code></dfn> on <code><a href=#the-div-element>div</a></code> elements</dt>
+ <dt><dfn id=attr-dl-compact title=attr-dl-compact><code>compact</code></dfn> on <code><a href=#the-dl-element>dl</a></code> elements</dt>
+ <dt><dfn id=attr-embed-align title=attr-embed-align><code>align</code></dfn> on <code><a href=#the-embed-element>embed</a></code> elements</dt>
+ <dt><dfn id=attr-embed-hspace title=attr-embed-hspace><code>hspace</code></dfn> on <code><a href=#the-embed-element>embed</a></code> elements</dt>
+ <dt><dfn id=attr-embed-vspace title=attr-embed-vspace><code>vspace</code></dfn> on <code><a href=#the-embed-element>embed</a></code> elements</dt>
+ <dt><dfn id=attr-hr-align title=attr-hr-align><code>align</code></dfn> on <code><a href=#the-hr-element>hr</a></code> elements</dt>
+ <dt><dfn id=attr-hr-color title=attr-hr-color><code>color</code></dfn> on <code><a href=#the-hr-element>hr</a></code> elements</dt>
+ <dt><dfn id=attr-hr-noshade title=attr-hr-noshade><code>noshade</code></dfn> on <code><a href=#the-hr-element>hr</a></code> elements</dt>
+ <dt><dfn id=attr-hr-size title=attr-hr-size><code>size</code></dfn> on <code><a href=#the-hr-element>hr</a></code> elements</dt>
+ <dt><dfn id=attr-hr-width title=attr-hr-width><code>width</code></dfn> on <code><a href=#the-hr-element>hr</a></code> elements</dt>
+ <dt><dfn id=attr-hx-align title=attr-hx-align><code>align</code></dfn> on <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&mdash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> elements</dt>
+ <dt><dfn id=attr-iframe-align title=attr-iframe-align><code>align</code></dfn> on <code><a href=#the-iframe-element>iframe</a></code> elements</dt>
+ <dt><dfn id=attr-iframe-allowtransparency title=attr-iframe-allowtransparency><code>allowtransparency</code></dfn> on <code><a href=#the-iframe-element>iframe</a></code> elements</dt>
+ <dt><dfn id=attr-iframe-frameborder title=attr-iframe-frameborder><code>frameborder</code></dfn> on <code><a href=#the-iframe-element>iframe</a></code> elements</dt>
+ <dt><dfn id=attr-iframe-hspace title=attr-iframe-hspace><code>hspace</code></dfn> on <code><a href=#the-iframe-element>iframe</a></code> elements</dt>
+ <dt><dfn id=attr-iframe-marginheight title=attr-iframe-marginheight><code>marginheight</code></dfn> on <code><a href=#the-iframe-element>iframe</a></code> elements</dt>
+ <dt><dfn id=attr-iframe-marginwidth title=attr-iframe-marginwidth><code>marginwidth</code></dfn> on <code><a href=#the-iframe-element>iframe</a></code> elements</dt>
+ <dt><dfn id=attr-iframe-scrolling title=attr-iframe-scrolling><code>scrolling</code></dfn> on <code><a href=#the-iframe-element>iframe</a></code> elements</dt>
+ <dt><dfn id=attr-iframe-vspace title=attr-iframe-vspace><code>vspace</code></dfn> on <code><a href=#the-iframe-element>iframe</a></code> elements</dt>
+ <dt><dfn id=attr-input-align title=attr-input-align><code>align</code></dfn> on <code><a href=#the-input-element>input</a></code> elements</dt>
+ <dt><dfn id=attr-input-hspace title=attr-input-hspace><code>hspace</code></dfn> on <code><a href=#the-input-element>input</a></code> elements</dt>
+ <dt><dfn id=attr-input-vspace title=attr-input-vspace><code>vspace</code></dfn> on <code><a href=#the-input-element>input</a></code> elements</dt>
+ <dt><dfn id=attr-img-align title=attr-img-align><code>align</code></dfn> on <code><a href=#the-img-element>img</a></code> elements</dt>
+ <dt><dfn id=attr-img-border title=attr-img-border><code>border</code></dfn> on <code><a href=#the-img-element>img</a></code> elements (except as noted in the previous section)</dt>
+ <dt><dfn id=attr-img-hspace title=attr-img-hspace><code>hspace</code></dfn> on <code><a href=#the-img-element>img</a></code> elements</dt>
+ <dt><dfn id=attr-img-vspace title=attr-img-vspace><code>vspace</code></dfn> on <code><a href=#the-img-element>img</a></code> elements</dt>
+ <dt><dfn id=attr-legend-align title=attr-legend-align><code>align</code></dfn> on <code><a href=#the-legend-element>legend</a></code> elements</dt>
+ <dt><dfn id=attr-li-type title=attr-li-type><code>type</code></dfn> on <code><a href=#the-li-element>li</a></code> elements</dt>
+ <dt><dfn id=attr-menu-compact title=attr-menu-compact><code>compact</code></dfn> on <code><a href=#the-menu-element>menu</a></code> elements</dt>
+ <dt><dfn id=attr-object-align title=attr-object-align><code>align</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dt><dfn id=attr-object-border title=attr-object-border><code>border</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dt><dfn id=attr-object-hspace title=attr-object-hspace><code>hspace</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dt><dfn id=attr-object-vspace title=attr-object-vspace><code>vspace</code></dfn> on <code><a href=#the-object-element>object</a></code> elements</dt>
+ <dt><dfn id=attr-ol-compact title=attr-ol-compact><code>compact</code></dfn> on <code><a href=#the-ol-element>ol</a></code> elements</dt>
+ <dt><dfn id=attr-p-align title=attr-p-align><code>align</code></dfn> on <code><a href=#the-p-element>p</a></code> elements</dt>
+ <dt><dfn id=attr-pre-width title=attr-pre-width><code>width</code></dfn> on <code><a href=#the-pre-element>pre</a></code> elements</dt>
+ <dt><dfn id=attr-table-align title=attr-table-align><code>align</code></dfn> on <code><a href=#the-table-element>table</a></code> elements</dt>
+ <dt><dfn id=attr-table-bgcolor title=attr-table-bgcolor><code>bgcolor</code></dfn> on <code><a href=#the-table-element>table</a></code> elements</dt>
+ <dt><dfn id=attr-table-cellpadding title=attr-table-cellpadding><code>cellpadding</code></dfn> on <code><a href=#the-table-element>table</a></code> elements</dt>
+ <dt><dfn id=attr-table-cellspacing title=attr-table-cellspacing><code>cellspacing</code></dfn> on <code><a href=#the-table-element>table</a></code> elements</dt>
+ <dt><dfn id=attr-table-frame title=attr-table-frame><code>frame</code></dfn> on <code><a href=#the-table-element>table</a></code> elements</dt>
+ <dt><dfn id=attr-table-rules title=attr-table-rules><code>rules</code></dfn> on <code><a href=#the-table-element>table</a></code> elements</dt>
+ <dt><dfn id=attr-table-width title=attr-table-width><code>width</code></dfn> on <code><a href=#the-table-element>table</a></code> elements</dt>
+ <dt><dfn id=attr-tbody-align title=attr-tbody-align><code>align</code></dfn> on <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, and <code><a href=#the-tfoot-element>tfoot</a></code> elements</dt>
+ <dt><dfn id=attr-tbody-char title=attr-tbody-char><code>char</code></dfn> on <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, and <code><a href=#the-tfoot-element>tfoot</a></code> elements</dt>
+ <dt><dfn id=attr-tbody-charoff title=attr-tbody-charoff><code>charoff</code></dfn> on <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, and <code><a href=#the-tfoot-element>tfoot</a></code> elements</dt>
+ <dt><dfn id=attr-tbody-valign title=attr-tbody-vAlign><code>valign</code></dfn> on <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, and <code><a href=#the-tfoot-element>tfoot</a></code> elements</dt>
+ <dt><dfn id=attr-tdth-align title=attr-tdth-align><code>align</code></dfn> on <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dt><dfn id=attr-tdth-bgcolor title=attr-tdth-bgcolor><code>bgcolor</code></dfn> on <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dt><dfn id=attr-tdth-char title=attr-tdth-char><code>char</code></dfn> on <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dt><dfn id=attr-tdth-charoff title=attr-tdth-charoff><code>charoff</code></dfn> on <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dt><dfn id=attr-tdth-height title=attr-tdth-height><code>height</code></dfn> on <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dt><dfn id=attr-tdth-nowrap title=attr-tdth-nowrap><code>nowrap</code></dfn> on <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dt><dfn id=attr-tdth-valign title=attr-tdth-valign><code>valign</code></dfn> on <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dt><dfn id=attr-tdth-width title=attr-tdth-width><code>width</code></dfn> on <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dt><dfn id=attr-tr-align title=attr-tr-align><code>align</code></dfn> on <code><a href=#the-tr-element>tr</a></code> elements</dt>
+ <dt><dfn id=attr-tr-bgcolor title=attr-tr-bgcolor><code>bgcolor</code></dfn> on <code><a href=#the-tr-element>tr</a></code> elements</dt>
+ <dt><dfn id=attr-tr-char title=attr-tr-char><code>char</code></dfn> on <code><a href=#the-tr-element>tr</a></code> elements</dt>
+ <dt><dfn id=attr-tr-charoff title=attr-tr-charoff><code>charoff</code></dfn> on <code><a href=#the-tr-element>tr</a></code> elements</dt>
+ <dt><dfn id=attr-tr-valign title=attr-tr-valign><code>valign</code></dfn> on <code><a href=#the-tr-element>tr</a></code> elements</dt>
+ <dt><dfn id=attr-ul-compact title=attr-ul-compact><code>compact</code></dfn> on <code><a href=#the-ul-element>ul</a></code> elements</dt>
+ <dt><dfn id=attr-ul-type title=attr-ul-type><code>type</code></dfn> on <code><a href=#the-ul-element>ul</a></code> elements</dt>
+ <dt><dfn id=attr-background title=attr-background><code>background</code></dfn> on <code><a href=#the-body-element>body</a></code>, <code><a href=#the-table-element>table</a></code>, <code><a href=#the-thead-element>thead</a></code>, <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-tr-element>tr</a></code>, <code><a href=#the-td-element>td</a></code>, and <code><a href=#the-th-element>th</a></code> elements</dt>
+ <dd><p>Use CSS instead.</dd>
+
+ </dl><hr><p>The <code title=attr-table-border><a href=#attr-table-border>border</a></code> attribute on
+ the <code><a href=#the-table-element>table</a></code> element can be used to provide basic fallback
+ styling for the purpose of making tables legible in browsing
+ environments where CSS support is limited or absent, such as
+ text-based browsers, WYSIWYG editors, and in situations where CSS
+ support is disabled or the style sheet is lost. Only the empty
+ string and the value "<code title="">1</code>" may be used as <code title=attr-table-border><a href=#attr-table-border>border</a></code> values for this purpose.
+ Other values are considered obsolete. To regulate the thickness of
+ such borders, authors should instead use CSS.</p>
+
+
+ <div class=impl>
+
+ <h3 id=requirements-for-implementations><span class=secno>16.3 </span>Requirements for implementations</h3>
+
+ <h4 id=the-applet-element><span class=secno>16.3.1 </span>The <dfn><code>applet</code></dfn> element</h4>
+
+ <p>The <code><a href=#the-applet-element>applet</a></code> element is a Java-specific variant of the
+ <code><a href=#the-embed-element>embed</a></code> element. The <code><a href=#the-applet-element>applet</a></code> element is now
+ obsoleted so that all extension frameworks (Java, .NET, Flash, etc)
+ are handled in a consistent manner.</p>
+
+ <p id=sandboxPluginApplet>When the element is still in the
+ <a href=#stack-of-open-elements>stack of open elements</a> of an <a href=#html-parser>HTML parser</a>
+ or <a href=#xml-parser>XML parser</a>, and when the element is not <a href=#in-a-document>in a
+ <code>Document</code></a>, and when the element's document is not
+ <a href=#fully-active>fully active</a>, and when the element's
+ <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> had its
+ <a href=#sandboxed-plugins-browsing-context-flag>sandboxed plugins browsing context flag</a> when that
+ <code><a href=#document>Document</a></code> was created, and when the element's
+ <code><a href=#document>Document</a></code> was parsed from a resource whose <a href=#content-type-sniffing-0 title="Content-Type sniffing">sniffed type</a> as determined
+ during <a href=#navigate title=navigate>navigation</a> is
+ <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>, and when the element has an
+ ancestor <a href=#media-element>media element</a>, and when the element has an
+ ancestor <code><a href=#the-object-element>object</a></code> element that is <em>not</em> showing
+ its <a href=#fallback-content>fallback content</a>, and when no Java Language runtime
+ <a href=#plugin>plugin</a> is available, and when one <em>is</em> available
+ but it is disabled, the element <a href=#represents>represents</a> its
+ contents.</p>
+
+ <!-- we assume here that the Java plugin can't be <span
+ title="concept-plugin-secure">secured</span>; if anyone does end up
+ securing one we can always change this -->
+
+ <p>Otherwise, the user agent should instantiate a Java Language
+ runtime <a href=#plugin>plugin</a>, and should pass the names and values of
+ all the attributes on the element, in the order they were added to
+ the element, with the attributes added by the parser being ordered
+ in source order, and then a parameter named "PARAM" whose value is
+ null, and then all the names and values of <a href=#concept-param-parameter title=concept-param-parameter>parameters</a> given by
+ <code><a href=#the-param-element>param</a></code> elements that are children of the
+ <code><a href=#the-applet-element>applet</a></code> element, in <a href=#tree-order>tree order</a>, to the
+ <a href=#plugin>plugin</a> used. If the <a href=#plugin>plugin</a> supports a
+ scriptable interface, the <code><a href=#htmlappletelement>HTMLAppletElement</a></code> object
+ representing the element should expose that interface. The
+ <code><a href=#the-applet-element>applet</a></code> element <a href=#represents>represents</a> the
+ <a href=#plugin>plugin</a>.</p>
+
+ <!-- If we ever make this fetch anything manually, remember to delay
+ the load event, and to include ", from the element's <span>browsing
+ context scope origin</span> if it has one" when fetching -->
+
+ <p class=note>The <code><a href=#the-applet-element>applet</a></code> element is unaffected by the
+ CSS 'display' property. The Java Language runtime is instantiated
+ even if the element is hidden with a 'display:none' CSS style.</p>
+
+ <p>The <code><a href=#the-applet-element>applet</a></code> element must implement the
+ <code><a href=#htmlappletelement>HTMLAppletElement</a></code> interface.</p>
+
+ <pre class=idl>interface <dfn id=htmlappletelement>HTMLAppletElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-applet-align title=dom-applet-align>align</a>;
+ attribute DOMString <a href=#dom-applet-alt title=dom-applet-alt>alt</a>;
+ attribute DOMString <a href=#dom-applet-archive title=dom-applet-archive>archive</a>;
+ attribute DOMString <a href=#dom-applet-code title=dom-applet-code>code</a>;
+ attribute DOMString <a href=#dom-applet-codebase title=dom-applet-codeBase>codeBase</a>;
+ attribute DOMString <a href=#dom-applet-height title=dom-applet-height>height</a>;
+ attribute unsigned long <a href=#dom-applet-hspace title=dom-applet-hspace>hspace</a>;
+ attribute DOMString <a href=#dom-applet-name title=dom-applet-name>name</a>;
+ attribute DOMString _<a href=#dom-applet-object title=dom-applet-object>object</a>; // the underscore is not part of the identifier <!-- it's a Web IDL escaping mechanism -->
+ attribute unsigned long <a href=#dom-applet-vspace title=dom-applet-vspace>vspace</a>;
+ attribute DOMString <a href=#dom-applet-width title=dom-applet-width>width</a>;
+};</pre>
+
+ <p>The <dfn id=dom-applet-align title=dom-applet-align><code>align</code></dfn>, <dfn id=dom-applet-alt title=dom-applet-alt><code>alt</code></dfn>, <dfn id=dom-applet-archive title=dom-applet-archive><code>archive</code></dfn>, <dfn id=dom-applet-code title=dom-applet-code><code>code</code></dfn>, <dfn id=dom-applet-height title=dom-applet-height><code>height</code></dfn>, <dfn id=dom-applet-hspace title=dom-applet-hspace><code>hspace</code></dfn>, <dfn id=dom-applet-name title=dom-applet-name><code>name</code></dfn>, <dfn id=dom-applet-object title=dom-applet-object><code>object</code></dfn>, <dfn id=dom-applet-vspace title=dom-applet-vspace><code>vspace</code></dfn>, and <dfn id=dom-applet-width title=dom-applet-width><code>width</code></dfn> IDL attributes
+ must <a href=#reflect>reflect</a> the respective content attributes of the
+ same name. For the purposes of reflection, the <code><a href=#the-applet-element>applet</a></code>
+ element's <code title=attr-applet-object>object</code> content
+ attribute is defined as containing a <a href=#url>URL</a>.</p>
+
+ <p>The <dfn id=dom-applet-codebase title=dom-applet-codeBase><code>codeBase</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the <code title=attr-applet-codebase>codebase</code> content attribute,
+ which for the purposes of reflection is defined as containing a
+ <a href=#url>URL</a>.</p>
+
+
+ <h4 id=the-marquee-element><span class=secno>16.3.2 </span>The <dfn><code>marquee</code></dfn> element</h4>
+
+ <p>The <code><a href=#the-marquee-element>marquee</a></code> element is a presentational element that
+ animates content. CSS transitions and animations are a more
+ appropriate mechanism.</p>
+
+ <p>The <a href=#task-source>task source</a> for tasks mentioned in this section
+ is the <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
+
+ <p>The <code><a href=#the-marquee-element>marquee</a></code> element must implement the
+ <code><a href=#htmlmarqueeelement>HTMLMarqueeElement</a></code> interface.</p>
+
+ <pre class=idl>interface <dfn id=htmlmarqueeelement>HTMLMarqueeElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-marquee-behavior title=dom-marquee-behavior>behavior</a>;
+ attribute DOMString <a href=#dom-marquee-bgcolor title=dom-marquee-bgColor>bgColor</a>;
+ attribute DOMString <a href=#dom-marquee-direction title=dom-marquee-direction>direction</a>;
+ attribute DOMString <a href=#dom-marquee-height title=dom-marquee-height>height</a>;
+ attribute unsigned long <a href=#dom-marquee-hspace title=dom-marquee-hspace>hspace</a>;
+ attribute long <a href=#dom-marquee-loop title=dom-marquee-loop>loop</a>;
+ attribute unsigned long <a href=#dom-marquee-scrollamount title=dom-marquee-scrollamount>scrollAmount</a>;
+ attribute unsigned long <a href=#dom-marquee-scrolldelay title=dom-marquee-scrollDelay>scrollDelay</a>;
+ attribute boolean <a href=#dom-marquee-truespeed title=dom-marquee-trueSpeed>trueSpeed</a>;
+ attribute unsigned long <a href=#dom-marquee-vspace title=dom-marquee-vspace>vspace</a>;
+ attribute DOMString <a href=#dom-marquee-width title=dom-marquee-width>width</a>;
+
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-marquee-onbounce title=handler-marquee-onbounce>onbounce</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-marquee-onfinish title=handler-marquee-onfinish>onfinish</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-marquee-onstart title=handler-marquee-onstart>onstart</a>;
+
+ void <a href=#dom-marquee-start title=dom-marquee-start>start</a>();
+ void <a href=#dom-marquee-stop title=dom-marquee-stop>stop</a>();
+};</pre>
+
+ <p>A <code><a href=#the-marquee-element>marquee</a></code> element can be <dfn id=concept-marquee-on title=concept-marquee-on>turned on</dfn> or <dfn id=concept-marquee-off title=concept-marquee-off>turned off</dfn>. When it is created, it
+ is <a href=#concept-marquee-on title=concept-marquee-on>turned on</a>.</p>
+
+ <p>When the <dfn id=dom-marquee-start title=dom-marquee-start><code>start()</code></dfn> method is
+ called, the <code><a href=#the-marquee-element>marquee</a></code> element must be <a href=#concept-marquee-on title=concept-marquee-on>turned on</a>.</p>
+
+ <p>When the <dfn id=dom-marquee-stop title=dom-marquee-stop><code>stop()</code></dfn>
+ method is called, the <code><a href=#the-marquee-element>marquee</a></code> element must be <a href=#concept-marquee-off title=concept-marquee-off>turned off</a>.</p>
+
+ <p>When a <code><a href=#the-marquee-element>marquee</a></code> element is created, the user agent
+ must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+ named <code title=event-start>start</code> at the element.</p>
+
+ <hr><p>The <dfn id=attr-marquee-behavior title=attr-marquee-behavior><code>behavior</code></dfn> content
+ attribute on <code><a href=#the-marquee-element>marquee</a></code> elements is an <a href=#enumerated-attribute>enumerated
+ attribute</a> with the following keywords (all
+ non-conforming):</p>
+
+ <table><thead><tr><th>Keyword
+ <th>State
+ <tbody><tr><td><code title="">scroll</code>
+ <td><dfn id=attr-marquee-behavior-scroll title=attr-marquee-behavior-scroll>scroll</dfn>
+ <tr><td><code title="">slide</code>
+ <td><dfn id=attr-marquee-behavior-slide title=attr-marquee-behavior-slide>slide</dfn>
+ <tr><td><code title="">alternate</code>
+ <td><dfn id=attr-marquee-behavior-alternate title=attr-marquee-behavior-alternate>alternate</dfn>
+ </table><p>The <i>missing value default</i> is the <a href=#attr-marquee-behavior-scroll title=attr-marquee-behavior-scroll>scroll</a> state.</p>
+
+ <hr><p>The <dfn id=attr-marquee-direction title=attr-marquee-direction><code>direction</code></dfn> content
+ attribute on <code><a href=#the-marquee-element>marquee</a></code> elements is an <a href=#enumerated-attribute>enumerated
+ attribute</a> with the following keywords (all
+ non-conforming):</p>
+
+ <table><thead><tr><th>Keyword
+ <th>State
+ <tbody><tr><td><code title="">left</code>
+ <td><dfn id=attr-marquee-direction-left title=attr-marquee-direction-left>left</dfn>
+ <tr><td><code title="">right</code>
+ <td><dfn id=attr-marquee-direction-right title=attr-marquee-direction-right>right</dfn>
+ <tr><td><code title="">up</code>
+ <td><dfn id=attr-marquee-direction-up title=attr-marquee-direction-up>up</dfn>
+ <tr><td><code title="">down</code>
+ <td><dfn id=attr-marquee-direction-down title=attr-marquee-direction-down>down</dfn>
+ </table><p>The <i>missing value default</i> is the <a href=#attr-marquee-direction-left title=attr-marquee-direction-left>left</a> state.</p>
+
+ <hr><p>The <dfn id=attr-marquee-truespeed title=attr-marquee-truespeed><code>truespeed</code></dfn> content
+ attribute on <code><a href=#the-marquee-element>marquee</a></code> elements is a <a href=#boolean-attribute>boolean
+ attribute</a>.</p>
+
+ <hr><p>A <code><a href=#the-marquee-element>marquee</a></code> element has a <dfn id=marquee-scroll-interval>marquee scroll
+ interval</dfn>, which is obtained as follows:</p>
+
+ <ol><li><p>If the element has a <code title=attr-marquee-scrolldelay>scrolldelay</code> attribute, and
+ parsing its value using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a> does not return an error, then let <var title="">delay</var> be the parsed value. Otherwise, let <var title="">delay</var> be 85.</li>
+
+ <li><p>If the element does not have a <code title=attr-marquee-truespeed><a href=#attr-marquee-truespeed>truespeed</a></code> attribute, and the
+ <var title="">delay</var> value is less than 60, then let <var title="">delay</var> be 60 instead.</li>
+
+ <li><p>The <a href=#marquee-scroll-interval>marquee scroll interval</a> is <var title="">delay</var>, interpreted in milliseconds.</li>
+
+ </ol><hr><p>A <code><a href=#the-marquee-element>marquee</a></code> element has a <dfn id=marquee-scroll-distance>marquee scroll
+ distance</dfn>, which, if the element has a <code title=attr-marquee-scrollamount>scrollamount</code> attribute, and
+ parsing its value using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
+ integers</a> does not return an error, is the parsed value
+ interpreted in CSS pixels, and otherwise is 6 CSS pixels.</p>
+
+ <hr><p>A <code><a href=#the-marquee-element>marquee</a></code> element has a <dfn id=marquee-loop-count>marquee loop
+ count</dfn>, which, if the element has a <code title=attr-marquee-loop>loop</code> attribute, and parsing its
+ value using the <a href=#rules-for-parsing-integers>rules for parsing integers</a> does not
+ return an error or a number less than 1, is the parsed value, and
+ otherwise is &minus;1.</p>
+
+ <p>The <dfn id=dom-marquee-loop title=dom-marquee-loop><code>loop</code></dfn> IDL
+ attribute, on getting, must return the element's <a href=#marquee-loop-count>marquee loop
+ count</a>; and on setting, if the new value is different than the
+ element's <a href=#marquee-loop-count>marquee loop count</a> and either greater than
+ zero or equal to &minus;1, must set the element's <code title=attr-marquee-loop>loop</code> content attribute (adding it
+ if necessary) to the <a href=#valid-integer>valid integer</a> that represents the
+ new value. (Other values are ignored.)</p>
+
+ <p>A <code><a href=#the-marquee-element>marquee</a></code> element also has a <dfn id=marquee-current-loop-index>marquee current
+ loop index</dfn>, which is zero when the element is created.</p>
+
+ <p>The rendering layer will occasionally <dfn id=increment-the-marquee-current-loop-index>increment the marquee
+ current loop index</dfn>, which must cause the following steps to be
+ run:</p>
+
+ <ol><li><p>If the <a href=#marquee-loop-count>marquee loop count</a> is &minus;1, then
+ abort these steps.</p>
+
+ <li><p>Increment the <a href=#marquee-current-loop-index>marquee current loop index</a> by
+ one.</li>
+
+ <li>
+
+ <p>If the <a href=#marquee-current-loop-index>marquee current loop index</a> is now equal to
+ or greater than the element's <a href=#marquee-loop-count>marquee loop count</a>,
+ <a href=#concept-marquee-off title=concept-marquee-off>turn off</a> the
+ <code><a href=#the-marquee-element>marquee</a></code> element and <a href=#queue-a-task>queue a task</a> to
+ <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-finish>finish</code> at the <code><a href=#the-marquee-element>marquee</a></code>
+ element.</p>
+
+ <p>Otherwise, if the <code title=attr-marquee-behavior><a href=#attr-marquee-behavior>behavior</a></code> attribute is in the
+ <a href=#attr-marquee-behavior-alternate title=attr-marquee-behavior-alternate>alternate</a>
+ state, then <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-bounce>bounce</code> at
+ the <code><a href=#the-marquee-element>marquee</a></code> element.</p>
+
+ <p>Otherwise, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
+ event</a> named <code title=event-start>start</code> at the
+ <code><a href=#the-marquee-element>marquee</a></code> element.</p>
+
+ </li>
+
+ </ol><hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+ corresponding <a href=#event-handler-event-type title="event handler event type">event handler
+ event types</a>) that must be supported, as content and IDL
+ attributes, by <code><a href=#the-marquee-element>marquee</a></code> elements:</p>
+
+ <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
+ <tbody><tr><td><dfn id=handler-marquee-onbounce title=handler-marquee-onbounce><code>onbounce</code></dfn> <td> <code title=event-bounce>bounce</code>
+ <tr><td><dfn id=handler-marquee-onfinish title=handler-marquee-onfinish><code>onfinish</code></dfn> <td> <code title=event-finish>finish</code>
+ <tr><td><dfn id=handler-marquee-onstart title=handler-marquee-onstart><code>onstart</code></dfn> <td> <code title=event-start>start</code>
+ </table><hr><p>The <dfn id=dom-marquee-behavior title=dom-marquee-behavior><code>behavior</code></dfn>, <dfn id=dom-marquee-direction title=dom-marquee-direction><code>direction</code></dfn>, <dfn id=dom-marquee-height title=dom-marquee-height><code>height</code></dfn>, <dfn id=dom-marquee-hspace title=dom-marquee-hspace><code>hspace</code></dfn>, <dfn id=dom-marquee-vspace title=dom-marquee-vspace><code>vspace</code></dfn>, and <dfn id=dom-marquee-width title=dom-marquee-width><code>width</code></dfn> IDL attributes
+ must <a href=#reflect>reflect</a> the respective content attributes of the
+ same name.</p>
+
+ <p>The <dfn id=dom-marquee-bgcolor title=dom-marquee-bgColor><code>bgColor</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the <code title=attr-marquee-bgcolor>bgcolor</code> content attribute.</p>
+
+ <p>The <dfn id=dom-marquee-scrollamount title=dom-marquee-scrollAmount><code>scrollAmount</code></dfn>
+ IDL attribute must <a href=#reflect>reflect</a> the <code title=attr-marquee-scrollamount>scrollamount</code> content
+ attribute. The default value is 6.</p>
+
+ <p>The <dfn id=dom-marquee-scrolldelay title=dom-marquee-scrollDelay><code>scrollDelay</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-marquee-scrolldelay>scrolldelay</code> content
+ attribute. The default value is 85.</p>
+
+ <p>The <dfn id=dom-marquee-truespeed title=dom-marquee-trueSpeed><code>trueSpeed</code></dfn> IDL
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-marquee-truespeed><a href=#attr-marquee-truespeed>truespeed</a></code> content
+ attribute.</p>
+
+
+ <h4 id=frames><span class=secno>16.3.3 </span>Frames</h4>
+
+ <p>The <dfn id=frameset><code>frameset</code></dfn> element acts as <a href=#the-body-element-0>the
+ body element</a> in documents that use frames.</p>
+
+ <p>The <code><a href=#frameset>frameset</a></code> element must implement the
+ <code><a href=#htmlframesetelement>HTMLFrameSetElement</a></code> interface.</p>
+
+ <pre class=idl>interface <dfn id=htmlframesetelement>HTMLFrameSetElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-frameset-cols title=dom-frameset-cols>cols</a>;
+ attribute DOMString <a href=#dom-frameset-rows title=dom-frameset-rows>rows</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onafterprint title=handler-window-onafterprint>onafterprint</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeprint title=handler-window-onbeforeprint>onbeforeprint</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onbeforeunload title=handler-window-onbeforeunload>onbeforeunload</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onblur title=handler-window-onblur>onblur</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onerror title=handler-window-onerror>onerror</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onfocus title=handler-window-onfocus>onfocus</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onhashchange title=handler-window-onhashchange>onhashchange</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onload title=handler-window-onload>onload</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onmessage title=handler-window-onmessage>onmessage</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onoffline title=handler-window-onoffline>onoffline</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-ononline title=handler-window-ononline>ononline</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpagehide title=handler-window-onpagehide>onpagehide</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpageshow title=handler-window-onpageshow>onpageshow</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onpopstate title=handler-window-onpopstate>onpopstate</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onresize title=handler-window-onresize>onresize</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onscroll title=handler-window-onscroll>onscroll</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onstorage title=handler-window-onstorage>onstorage</a>;
+ [TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-window-onunload title=handler-window-onunload>onunload</a>;
+};</pre>
+
+ <p>The <dfn id=dom-frameset-cols title=dom-frameset-cols><code>cols</code></dfn> and
+ <dfn id=dom-frameset-rows title=dom-frameset-rows><code>rows</code></dfn> IDL
+ attributes of the <code><a href=#frameset>frameset</a></code> element must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ <p>The <code><a href=#frameset>frameset</a></code> element must support the following
+ <a href=#event-handler-content-attributes>event handler content attributes</a> exposing the
+ <a href=#event-handlers>event handlers</a> of the <code><a href=#window>Window</a></code> object:</p>
+
+ <ul class=brief><li><code title=handler-window-onafterprint><a href=#handler-window-onafterprint>onafterprint</a></code></li>
+ <li><code title=handler-window-onbeforeprint><a href=#handler-window-onbeforeprint>onbeforeprint</a></code></li>
+ <li><code title=handler-window-onbeforeunload><a href=#handler-window-onbeforeunload>onbeforeunload</a></code></li>
+ <li><code title=handler-window-onblur><a href=#handler-window-onblur>onblur</a></code></li>
+ <li><code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code></li>
+ <li><code title=handler-window-onfocus><a href=#handler-window-onfocus>onfocus</a></code></li>
+ <li><code title=handler-window-onhashchange><a href=#handler-window-onhashchange>onhashchange</a></code></li>
+ <li><code title=handler-window-onload><a href=#handler-window-onload>onload</a></code></li>
+ <li><code title=handler-window-onmessage><a href=#handler-window-onmessage>onmessage</a></code></li>
+ <li><code title=handler-window-onoffline><a href=#handler-window-onoffline>onoffline</a></code></li>
+ <li><code title=handler-window-ononline><a href=#handler-window-ononline>ononline</a></code></li>
+ <li><code title=handler-window-onpagehide><a href=#handler-window-onpagehide>onpagehide</a></code></li>
+ <li><code title=handler-window-onpageshow><a href=#handler-window-onpageshow>onpageshow</a></code></li>
+ <li><code title=handler-window-onpopstate><a href=#handler-window-onpopstate>onpopstate</a></code></li>
+ <li><code title=handler-window-onresize><a href=#handler-window-onresize>onresize</a></code></li>
+ <li><code title=handler-window-onscroll><a href=#handler-window-onscroll>onscroll</a></code></li>
+ <li><code title=handler-window-onstorage><a href=#handler-window-onstorage>onstorage</a></code></li>
+ <li><code title=handler-window-onunload><a href=#handler-window-onunload>onunload</a></code></li>
+ </ul><p>The DOM interface also exposes <a href=#event-handler-idl-attributes>event handler IDL
+ attributes</a> that mirror those on the <code><a href=#window>Window</a></code>
+ element.</p>
+
+ <p>The <code title=handler-window-onblur><a href=#handler-window-onblur>onblur</a></code>, <code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code>, <code title=handler-window-onfocus><a href=#handler-window-onfocus>onfocus</a></code>, <code title=handler-window-onload><a href=#handler-window-onload>onload</a></code>, and <code title=handler-window-onscroll><a href=#handler-window-onscroll>onscroll</a></code> <a href=#event-handler-idl-attributes>event handler
+ IDL attributes</a> of the <code><a href=#window>Window</a></code> object, exposed on
+ the <code><a href=#frameset>frameset</a></code> element, shadow the generic <a href=#event-handler-idl-attributes>event
+ handler IDL attributes</a> with the same names normally supported
+ by <a href=#html-elements>HTML elements</a>.</p>
+
+ <hr><p>The <dfn id=frame><code>frame</code></dfn> element defines a <a href=#nested-browsing-context>nested
+ browsing context</a> similar to the <code><a href=#the-iframe-element>iframe</a></code> element,
+ but rendered within a <code><a href=#frameset>frameset</a></code> element.</p>
+
+ <p>When the browsing context is created, if a <code title=attr-frame-src>src</code> attribute is present, the user
+ agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of
+ that attribute, relative to the element, and if that is successful,
+ must then <a href=#navigate>navigate</a><!--DONAV frame--> the element's
+ browsing context to the resulting <a href=#absolute-url>absolute URL</a>, with
+ <a href=#replacement-enabled>replacement enabled</a>, and with the <code><a href=#frame>frame</a></code>
+ element's document's <a href=#browsing-context>browsing context</a> as the
+ <a href=#source-browsing-context>source browsing context</a>.</p>
+
+ <p>Whenever the <code title=attr-frame-src>src</code> attribute is
+ set, the user agent must <a href=#resolve-a-url title="resolve a url">resolve</a>
+ the value of that attribute, relative to the element, and if that is
+ successful, the nested <a href=#browsing-context>browsing context</a> must be <a href=#navigate title=navigate>navigated</a><!--DONAV frame--> to the resulting
+ <a href=#absolute-url>absolute URL</a>, with the <code><a href=#frame>frame</a></code> element's
+ document's <a href=#browsing-context>browsing context</a> as the <a href=#source-browsing-context>source
+ browsing context</a>.</p>
+
+ <p>When the browsing context is created, if a <code title=attr-frame-name>name</code> attribute is present, the
+ <a href=#browsing-context-name>browsing context name</a> must be set to the value of this
+ attribute; otherwise, the <a href=#browsing-context-name>browsing context name</a> must be
+ set to the empty string.</p>
+
+ <p>Whenever the <code title=attr-frame-name>name</code> attribute
+ is set, the nested <a href=#browsing-context>browsing context</a>'s <a href=#browsing-context-name title="browsing context name">name</a> must be changed to the new
+ value. If the attribute is removed, the <a href=#browsing-context-name>browsing context
+ name</a> must be set to the empty string.</p>
+
+ <p>When content loads in a <code><a href=#frame>frame</a></code>, after any <code title=event-load>load</code> events are fired within the content
+ itself, the user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire
+ a simple event</a> named <code title=event-load>load</code> at
+ the <code><a href=#frame>frame</a></code> element. When content fails to load (e.g. due
+ to a network error), then the user agent must <a href=#queue-a-task>queue a
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-error>error</code> at the element instead.</p>
+
+ <p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> above is the <a href=#dom-manipulation-task-source>DOM
+ manipulation task source</a>.</p>
+
+ <p>When there is an <a href=#active-parser>active parser</a> in the
+ <code><a href=#frame>frame</a></code>, and when anything in the <code><a href=#frame>frame</a></code> is
+ <a href=#delay-the-load-event title="delay the load event">delaying the load event</a> of
+ the <code><a href=#frame>frame</a></code>'s <a href=#browsing-context>browsing context</a>'s
+ <a href=#active-document>active document</a>, the <code><a href=#frame>frame</a></code> must
+ <a href=#delay-the-load-event>delay the load event</a> of its document.</p>
+
+ <p>The <code><a href=#frame>frame</a></code> element must implement the
+ <code><a href=#htmlframeelement>HTMLFrameElement</a></code> interface.</p>
+
+ <pre class=idl>interface <dfn id=htmlframeelement>HTMLFrameElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-frame-name title=dom-frame-name>name</a>;
+ attribute DOMString <a href=#dom-frame-scrolling title=dom-frame-scrolling>scrolling</a>;
+ attribute DOMString <a href=#dom-frame-src title=dom-frame-src>src</a>;
+ attribute DOMString <a href=#dom-frame-frameborder title=dom-frame-frameBorder>frameBorder</a>;
+ attribute DOMString <a href=#dom-frame-longdesc title=dom-frame-longDesc>longDesc</a>;
+ attribute boolean <a href=#dom-frame-noresize title=dom-frame-noResize>noResize</a>;
+ readonly attribute Document? <a href=#dom-frame-contentdocument title=dom-frame-contentDocument>contentDocument</a>;
+ readonly attribute <a href=#windowproxy>WindowProxy</a>? <a href=#dom-frame-contentwindow title=dom-frame-contentWindow>contentWindow</a>;
+
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-frame-marginheight title=dom-frame-marginHeight>marginHeight</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-frame-marginwidth title=dom-frame-marginWidth>marginWidth</a>;
+};</pre>
+
+ <p>The <dfn id=dom-frame-name title=dom-frame-name><code>name</code></dfn>, <dfn id=dom-frame-scrolling title=dom-frame-scrolling><code>scrolling</code></dfn>, and <dfn id=dom-frame-src title=dom-frame-src><code>src</code></dfn> IDL attributes of the
+ <code><a href=#frame>frame</a></code> element must <a href=#reflect>reflect</a> the respective
+ content attributes of the same name.</p>
+
+ <p>The <dfn id=dom-frame-frameborder title=dom-frame-frameBorder><code>frameBorder</code></dfn> IDL
+ attribute of the <code><a href=#frame>frame</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-frame-frameborder>frameborder</code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-frame-longdesc title=dom-frame-longDesc><code>longDesc</code></dfn>
+ IDL attribute of the <code><a href=#frame>frame</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-frame-longdesc>longdesc</code> content attribute, which
+ for the purposes of reflection is defined as containing a
+ <a href=#url>URL</a>.</p>
+
+ <p>The <dfn id=dom-frame-noresize title=dom-frame-noResize><code>noResize</code></dfn>
+ IDL attribute of the <code><a href=#frame>frame</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-frame-noresize>noresize</code> content attribute.</p>
+
+ <p>The <dfn id=dom-frame-contentdocument title=dom-frame-contentDocument><code>contentDocument</code></dfn>
+ IDL attribute of the <code><a href=#frame>frame</a></code> element must return the
+ <code><a href=#document>Document</a></code> object of the <a href=#active-document>active document</a> of
+ the <code><a href=#frame>frame</a></code> element's <a href=#nested-browsing-context>nested browsing
+ context</a>.</p>
+
+ <p>The <dfn id=dom-frame-contentwindow title=dom-frame-contentWindow><code>contentWindow</code></dfn>
+ IDL attribute must return the <code><a href=#windowproxy>WindowProxy</a></code> object of the
+ <code><a href=#frame>frame</a></code> element's <a href=#nested-browsing-context>nested browsing
+ context</a>.</p>
+
+ <p>The <dfn id=dom-frame-marginheight title=dom-frame-marginHeight><code>marginHeight</code></dfn> IDL
+ attribute of the <code><a href=#frame>frame</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-frame-marginheight>marginheight</code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-frame-marginwidth title=dom-frame-marginWidth><code>marginWidth</code></dfn> IDL
+ attribute of the <code><a href=#frame>frame</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-frame-marginwidth>marginwidth</code> content
+ attribute.</p>
+
+
+
+ <h4 id=other-elements,-attributes-and-apis><span class=secno>16.3.4 </span>Other elements, attributes and APIs</h4> <!-- alphabetical by name and attribute -->
+
+ <p>User agents must treat <code><a href=#acronym>acronym</a></code> elements in a manner
+ equivalent to <code><a href=#the-abbr-element>abbr</a></code> elements in terms of semantics and
+ for purposes of rendering.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlanchorelement>HTMLAnchorElement</a> {
+ attribute DOMString <a href=#dom-a-coords title=dom-a-coords>coords</a>;
+ attribute DOMString <a href=#dom-a-charset title=dom-a-charset>charset</a>;
+ attribute DOMString <a href=#dom-a-name title=dom-a-name>name</a>;
+ attribute DOMString <a href=#dom-a-rev title=dom-a-rev>rev</a>;
+ attribute DOMString <a href=#dom-a-shape title=dom-a-shape>shape</a>;
+};</pre>
+
+ <p>The <dfn id=dom-a-coords title=dom-a-coords><code>coords</code></dfn>, <dfn id=dom-a-charset title=dom-a-charset><code>charset</code></dfn>, <dfn id=dom-a-name title=dom-a-name><code>name</code></dfn>, <dfn id=dom-a-rev title=dom-a-rev><code>rev</code></dfn>, and <dfn id=dom-a-shape title=dom-a-shape><code>shape</code></dfn> IDL attributes of the
+ <code><a href=#the-a-element>a</a></code> element must <a href=#reflect>reflect</a> the respective
+ content attributes of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlareaelement>HTMLAreaElement</a> {
+ attribute boolean <a href=#dom-area-nohref title=dom-area-noHref>noHref</a>;
+};</pre>
+
+ <p>The <dfn id=dom-area-nohref title=dom-area-noHref><code>noHref</code></dfn> IDL
+ attribute of the <code><a href=#the-area-element>area</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-area-nohref><a href=#attr-area-nohref>nohref</a></code> content
+ attribute.</p>
+
+ <hr><p>The <code><a href=#basefont>basefont</a></code> element must implement the
+ <code><a href=#htmlbasefontelement>HTMLBaseFontElement</a></code> interface.</p>
+
+ <pre class=idl>interface <dfn id=htmlbasefontelement>HTMLBaseFontElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute DOMString <a href=#dom-basefont-color title=dom-basefont-color>color</a>;
+ attribute DOMString <a href=#dom-basefont-face title=dom-basefont-face>face</a>;
+ attribute long <a href=#dom-basefont-size title=dom-basefont-size>size</a>; <!-- yes, long, not DOMString (so says DOM2 HTML) -->
+};</pre>
+
+ <p>The <dfn id=dom-basefont-color title=dom-basefont-color><code>color</code></dfn>,
+ <dfn id=dom-basefont-face title=dom-basefont-face><code>face</code></dfn>, and <dfn id=dom-basefont-size title=dom-basefont-size><code>size</code></dfn> IDL attributes of
+ the <code><a href=#basefont>basefont</a></code> element must <a href=#reflect>reflect</a> the
+ respective content attributes of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlbodyelement>HTMLBodyElement</a> {
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-body-text title=dom-body-text>text</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-body-link title=dom-body-link>link</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-body-vlink title=dom-body-vLink>vLink</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-body-alink title=dom-body-aLink>aLink</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-body-bgcolor title=dom-body-bgColor>bgColor</a>;
+ attribute DOMString <a href=#dom-body-background title=dom-body-background>background</a>;
+};</pre>
+
+ <p>The <dfn id=dom-body-text title=dom-body-text><code>text</code></dfn> IDL
+ attribute of the <code><a href=#the-body-element>body</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-body-text><a href=#attr-body-text>text</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-body-link title=dom-body-link><code>link</code></dfn> IDL
+ attribute of the <code><a href=#the-body-element>body</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-body-link><a href=#attr-body-link>link</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-body-alink title=dom-body-aLink><code>aLink</code></dfn> IDL
+ attribute of the <code><a href=#the-body-element>body</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-body-alink><a href=#attr-body-alink>alink</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-body-vlink title=dom-body-vLink><code>vLink</code></dfn> IDL
+ attribute of the <code><a href=#the-body-element>body</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-body-vlink><a href=#attr-body-vlink>vlink</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-body-bgcolor title=dom-body-bgColor><code>bgColor</code></dfn> IDL
+ attribute of the <code><a href=#the-body-element>body</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-body-bgcolor><a href=#attr-body-bgcolor>bgcolor</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-body-background title=dom-body-background><code>background</code></dfn> IDL
+ attribute of the <code><a href=#the-body-element>body</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-background><a href=#attr-background>background</a></code>
+ content attribute. (The <code title=attr-background><a href=#attr-background>background</a></code> content is <em>not</em>
+ defined to contain a <a href=#url>URL</a>, despite rules regarding its
+ handling in the rendering section above.)</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlbrelement>HTMLBRElement</a> {
+ attribute DOMString <a href=#dom-br-clear title=dom-br-clear>clear</a>;
+};</pre>
+
+ <p>The <dfn id=dom-br-clear title=dom-br-clear><code>clear</code></dfn> IDL
+ attribute of the <code><a href=#the-br-element>br</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmltablecaptionelement>HTMLTableCaptionElement</a> {
+ attribute DOMString <a href=#dom-caption-align title=dom-caption-align>align</a>;
+};</pre>
+
+ <p>The <dfn id=dom-caption-align title=dom-caption-align><code>align</code></dfn> IDL
+ attribute of the <code><a href=#the-caption-element>caption</a></code> element must
+ <a href=#reflect>reflect</a> the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmltablecolelement>HTMLTableColElement</a> {
+ attribute DOMString <a href=#dom-col-align title=dom-col-align>align</a>;
+ attribute DOMString <a href=#dom-col-ch title=dom-col-ch>ch</a>;
+ attribute DOMString <a href=#dom-col-choff title=dom-col-chOff>chOff</a>;
+ attribute DOMString <a href=#dom-col-valign title=dom-col-vAlign>vAlign</a>;
+ attribute DOMString <a href=#dom-col-width title=dom-col-width>width</a>;
+};</pre>
+
+ <p>The <dfn id=dom-col-align title=dom-col-align><code>align</code></dfn> and <dfn id=dom-col-width title=dom-col-width><code>width</code></dfn> IDL attributes of
+ the <code><a href=#the-col-element>col</a></code> element must <a href=#reflect>reflect</a> the
+ respective content attributes of the same name.</p>
+
+ <p>The <dfn id=dom-col-ch title=dom-col-ch><code>ch</code></dfn> IDL attribute
+ of the <code><a href=#the-col-element>col</a></code> element must <a href=#reflect>reflect</a> the
+ element's <code title=attr-col-char><a href=#attr-col-char>char</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-col-choff title=dom-col-chOff><code>chOff</code></dfn> IDL
+ attribute of the <code><a href=#the-col-element>col</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-col-charoff><a href=#attr-col-charoff>charoff</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-col-valign title=dom-col-vAlign><code>vAlign</code></dfn> IDL
+ attribute of the <code><a href=#the-col-element>col</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-col-valign><a href=#attr-col-valign>valign</a></code> content
+ attribute.</p>
+
+ <hr><p>User agents must treat <code><a href=#dir>dir</a></code> elements in a manner
+ equivalent to <code><a href=#the-ul-element>ul</a></code> elements in terms of semantics and for
+ purposes of rendering.</p>
+
+ <p>The <code><a href=#dir>dir</a></code> element must implement the
+ <code><a href=#htmldirectoryelement>HTMLDirectoryElement</a></code> interface.</p>
+
+ <pre class=idl>interface <dfn id=htmldirectoryelement>HTMLDirectoryElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ attribute boolean <a href=#dom-dir-compact title=dom-dir-compact>compact</a>;
+};</pre>
+
+ <p>The <dfn id=dom-dir-compact title=dom-dir-compact><code>compact</code></dfn> IDL
+ attribute of the <code><a href=#dir>dir</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmldivelement>HTMLDivElement</a> {
+ attribute DOMString <a href=#dom-div-align title=dom-div-align>align</a>;
+};</pre>
+
+ <p>The <dfn id=dom-div-align title=dom-div-align><code>align</code></dfn> IDL
+ attribute of the <code><a href=#the-div-element>div</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmldlistelement>HTMLDListElement</a> {
+ attribute boolean <a href=#dom-dl-compact title=dom-dl-compact>compact</a>;
+};</pre>
+
+ <p>The <dfn id=dom-dl-compact title=dom-dl-compact><code>compact</code></dfn> IDL
+ attribute of the <code><a href=#the-dl-element>dl</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlembedelement>HTMLEmbedElement</a> {
+ attribute DOMString <a href=#dom-embed-align title=dom-embed-align>align</a>;
+ attribute DOMString <a href=#dom-embed-name title=dom-embed-name>name</a>;
+};</pre>
+
+ <p>The <dfn id=dom-embed-name title=dom-embed-name><code>name</code></dfn> and <dfn id=dom-embed-align title=dom-embed-align><code>align</code></dfn> IDL attributes of
+ the <code><a href=#the-embed-element>embed</a></code> element must <a href=#reflect>reflect</a> the
+ respective content attributes of the same name.</p>
+
+ <hr><p>The <code><a href=#font>font</a></code> element must implement the
+ <code><a href=#htmlfontelement>HTMLFontElement</a></code> interface.</p>
+
+ <pre class=idl>interface <dfn id=htmlfontelement>HTMLFontElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-font-color title=dom-font-color>color</a>;
+ attribute DOMString <a href=#dom-font-face title=dom-font-face>face</a>;
+ attribute DOMString <a href=#dom-font-size title=dom-font-size>size</a>; <!-- yes, DOMString, not long (so says DOM2 HTML) -->
+};</pre>
+
+ <p>The <dfn id=dom-font-color title=dom-font-color><code>color</code></dfn>,
+ <dfn id=dom-font-face title=dom-font-face><code>face</code></dfn>, and <dfn id=dom-font-size title=dom-font-size><code>size</code></dfn> IDL attributes of
+ the <code><a href=#font>font</a></code> element must <a href=#reflect>reflect</a> the
+ respective content attributes of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlheadingelement>HTMLHeadingElement</a> {
+ attribute DOMString <a href=#dom-hx-align title=dom-hx-align>align</a>;
+};</pre>
+
+ <p>The <dfn id=dom-hx-align title=dom-hx-align><code>align</code></dfn> IDL
+ attribute of the <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> elements must
+ <a href=#reflect>reflect</a> the content attribute of the same name.</p>
+
+ <hr><p class=note>The <dfn id=dom-head-profile title=dom-head-profile><code>profile</code></dfn> IDL attribute on
+ <code><a href=#the-head-element>head</a></code> elements (with the <code><a href=#htmlheadelement>HTMLHeadElement</a></code>
+ interface) is intentionally omitted. Unless so required by <a href=#other-applicable-specifications title="other applicable specifications">another applicable
+ specification</a>, implementations would therefore not support
+ this attribute. (It is mentioned here as it was defined in a
+ previous version of the DOM specifications.)</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlhrelement>HTMLHRElement</a> {
+ attribute DOMString <a href=#dom-hr-align title=dom-hr-align>align</a>;
+ attribute DOMString <a href=#dom-hr-color title=dom-hr-color>color</a>;
+ attribute boolean <a href=#dom-hr-noshade title=dom-hr-noShade>noShade</a>;
+ attribute DOMString <a href=#dom-hr-size title=dom-hr-size>size</a>;
+ attribute DOMString <a href=#dom-hr-width title=dom-hr-width>width</a>;
+};</pre>
+
+ <p>The <dfn id=dom-hr-align title=dom-hr-align><code>align</code></dfn>, <dfn id=dom-hr-color title=dom-hr-color><code>color</code></dfn>, <dfn id=dom-hr-size title=dom-hr-size><code>size</code></dfn>, and <dfn id=dom-hr-width title=dom-hr-width><code>width</code></dfn> IDL attributes of the
+ <code><a href=#the-hr-element>hr</a></code> element must <a href=#reflect>reflect</a> the respective
+ content attributes of the same name.</p>
+
+ <p>The <dfn id=dom-hr-noshade title=dom-hr-noShade><code>noShade</code></dfn> IDL
+ attribute of the <code><a href=#the-hr-element>hr</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-input-noshade>noshade</code>
+ content attribute.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlhtmlelement>HTMLHtmlElement</a> {
+ attribute DOMString <a href=#dom-html-version title=dom-html-version>version</a>;
+};</pre>
+
+ <p>The <dfn id=dom-html-version title=dom-html-version><code>version</code></dfn> IDL
+ attribute of the <code><a href=#the-html-element>html</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmliframeelement>HTMLIFrameElement</a> {
+ attribute DOMString <a href=#dom-iframe-align title=dom-iframe-align>align</a>;
+ attribute DOMString <a href=#dom-iframe-scrolling title=dom-iframe-scrolling>scrolling</a>;
+ attribute DOMString <a href=#dom-iframe-frameborder title=dom-iframe-frameBorder>frameBorder</a>;
+ attribute DOMString <a href=#dom-iframe-longdesc title=dom-iframe-longDesc>longDesc</a>;
+
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-iframe-marginheight title=dom-iframe-marginHeight>marginHeight</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-iframe-marginwidth title=dom-iframe-marginWidth>marginWidth</a>;
+};</pre>
+
+ <p>The <dfn id=dom-iframe-align title=dom-iframe-align><code>align</code></dfn> and
+ <dfn id=dom-iframe-scrolling title=dom-iframe-scrolling><code>scrolling</code></dfn> IDL
+ attributes of the <code><a href=#the-iframe-element>iframe</a></code> element must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ <p>The <dfn id=dom-iframe-frameborder title=dom-iframe-frameBorder><code>frameBorder</code></dfn> IDL
+ attribute of the <code><a href=#the-iframe-element>iframe</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-iframe-frameborder><a href=#attr-iframe-frameborder>frameborder</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-iframe-longdesc title=dom-iframe-longDesc><code>longDesc</code></dfn>
+ IDL attribute of the <code><a href=#the-iframe-element>iframe</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-iframe-longdesc><a href=#attr-iframe-longdesc>longdesc</a></code> content attribute,
+ which for the purposes of reflection is defined as containing a
+ <a href=#url>URL</a>.</p>
+
+ <p>The <dfn id=dom-iframe-marginheight title=dom-iframe-marginHeight><code>marginHeight</code></dfn> IDL
+ attribute of the <code><a href=#the-iframe-element>iframe</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-iframe-marginheight><a href=#attr-iframe-marginheight>marginheight</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-iframe-marginwidth title=dom-iframe-marginWidth><code>marginWidth</code></dfn> IDL
+ attribute of the <code><a href=#the-iframe-element>iframe</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-iframe-marginwidth><a href=#attr-iframe-marginwidth>marginwidth</a></code> content
+ attribute.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlimageelement>HTMLImageElement</a> {
+ attribute DOMString <a href=#dom-img-name title=dom-img-name>name</a>;
+ attribute DOMString <a href=#dom-img-align title=dom-img-align>align</a>;
+ attribute unsigned long <a href=#dom-img-hspace title=dom-img-hspace>hspace</a>;
+ attribute unsigned long <a href=#dom-img-vspace title=dom-img-vspace>vspace</a>;
+ attribute DOMString <a href=#dom-img-longdesc title=dom-img-longDesc>longDesc</a>;
+
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-img-border title=dom-img-border>border</a>;
+};</pre>
+
+ <p>The <dfn id=dom-img-name title=dom-img-name><code>name</code></dfn>, <dfn id=dom-img-align title=dom-img-align><code>align</code></dfn>, <dfn id=dom-img-border title=dom-img-border><code>border</code></dfn>, <dfn id=dom-img-hspace title=dom-img-hspace><code>hspace</code></dfn>, and <dfn id=dom-img-vspace title=dom-img-vspace><code>vspace</code></dfn> IDL attributes of
+ the <code><a href=#the-img-element>img</a></code> element must <a href=#reflect>reflect</a> the
+ respective content attributes of the same name.</p>
+
+ <p>The <dfn id=dom-img-longdesc title=dom-img-longDesc><code>longDesc</code></dfn> IDL
+ attribute of the <code><a href=#the-img-element>img</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-img-longdesc><a href=#attr-img-longdesc>longdesc</a></code>
+ content attribute, which for the purposes of reflection is defined
+ as containing a <a href=#url>URL</a>.</p>
+
+ <!-- lowsrc is explicitly not given here, see http://www.w3.org/Bugs/Public/show_bug.cgi?id=10341 -->
+
+ <hr><pre class=idl>partial interface <a href=#htmlinputelement>HTMLInputElement</a> {
+ attribute DOMString <a href=#dom-input-align title=dom-input-align>align</a>;
+ attribute DOMString <a href=#dom-input-usemap title=dom-input-useMap>useMap</a>;
+};</pre>
+
+ <p>The <dfn id=dom-input-align title=dom-input-align><code>align</code></dfn> IDL
+ attribute of the <code><a href=#the-input-element>input</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <p>The <dfn id=dom-input-usemap title=dom-input-useMap><code>useMap</code></dfn> IDL
+ attribute of the <code><a href=#the-input-element>input</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-input-usemap><a href=#attr-input-usemap>usemap</a></code> content attribute.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmllegendelement>HTMLLegendElement</a> {
+ attribute DOMString <a href=#dom-legend-align title=dom-legend-align>align</a>;
+};</pre>
+
+ <p>The <dfn id=dom-legend-align title=dom-legend-align><code>align</code></dfn> IDL
+ attribute of the <code><a href=#the-legend-element>legend</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmllielement>HTMLLIElement</a> {
+ attribute DOMString <a href=#dom-li-type title=dom-li-type>type</a>;
+};</pre>
+
+ <p>The <dfn id=dom-li-type title=dom-li-type><code>type</code></dfn> IDL
+ attribute of the <code><a href=#the-li-element>li</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmllinkelement>HTMLLinkElement</a> {
+ attribute DOMString <a href=#dom-link-charset title=dom-link-charset>charset</a>;
+ attribute DOMString <a href=#dom-link-rev title=dom-link-rev>rev</a>;
+ attribute DOMString <a href=#dom-link-target title=dom-link-target>target</a>;
+};</pre>
+
+ <p>The <dfn id=dom-link-charset title=dom-link-charset><code>charset</code></dfn>,
+ <dfn id=dom-link-rev title=dom-link-rev><code>rev</code></dfn>, and <dfn id=dom-link-target title=dom-link-target><code>target</code></dfn> IDL attributes of
+ the <code><a href=#the-link-element>link</a></code> element must <a href=#reflect>reflect</a> the
+ respective content attributes of the same name.</p>
+
+ <hr><p>User agents must treat <code><a href=#listing>listing</a></code> elements in a manner
+ equivalent to <code><a href=#the-pre-element>pre</a></code> elements in terms of semantics and
+ for purposes of rendering.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlmenuelement>HTMLMenuElement</a> {
+ attribute boolean <a href=#dom-menu-compact title=dom-menu-compact>compact</a>;
+};</pre>
+
+ <p>The <dfn id=dom-menu-compact title=dom-menu-compact><code>compact</code></dfn> IDL
+ attribute of the <code><a href=#the-menu-element>menu</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlmetaelement>HTMLMetaElement</a> {
+ attribute DOMString <a href=#dom-meta-scheme title=dom-meta-scheme>scheme</a>;
+};</pre>
+
+ <p>User agents may treat the <code title=attr-meta-scheme><a href=#attr-meta-scheme>scheme</a></code> content attribute on the
+ <code><a href=#the-meta-element>meta</a></code> element as an extension of the element's <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> content attribute when processing
+ a <code><a href=#the-meta-element>meta</a></code> element with a <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute whose value is one that
+ the user agent recognizes as supporting the <code title=attr-meta-scheme><a href=#attr-meta-scheme>scheme</a></code> attribute.</p>
+
+ <p>User agents are encouraged to ignore the <code title=attr-meta-scheme><a href=#attr-meta-scheme>scheme</a></code> attribute and instead process
+ the value given to the metadata name as if it had been specified for
+ each expected value of the <code title=attr-meta-scheme><a href=#attr-meta-scheme>scheme</a></code> attribute.</p>
+
+ <div class=example>
+
+ <p>For example, if the user agent acts on <code><a href=#the-meta-element>meta</a></code>
+ elements with <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attributes
+ having the value "eGMS.subject.keyword", and knows that the <code title=attr-meta-scheme><a href=#attr-meta-scheme>scheme</a></code> attribute is used with this
+ metadata name, then it could take the <code title=attr-meta-scheme><a href=#attr-meta-scheme>scheme</a></code> attribute into account,
+ acting as if it was an extension of the <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute. Thus the following
+ two <code><a href=#the-meta-element>meta</a></code> elements could be treated as two elements
+ giving values for two different metadata names, one consisting of a
+ combination of "eGMS.subject.keyword" and "LGCL", and the other
+ consisting of a combination of "eGMS.subject.keyword" and
+ "ORLY":</p>
+
+ <pre class=bad>&lt;!-- this markup is invalid --&gt;
+&lt;meta name="eGMS.subject.keyword" scheme="LGCL" content="Abandoned vehicles"&gt;
+&lt;meta name="eGMS.subject.keyword" scheme="ORLY" content="Mah car: kthxbye"&gt;</pre>
+
+ <p>The recommended processing of this markup, however, would be
+ equivalent to the following:</p>
+
+ <pre>&lt;meta name="eGMS.subject.keyword" content="Abandoned vehicles"&gt;
+&lt;meta name="eGMS.subject.keyword" content="Mah car: kthxbye"&gt;</pre>
+
+ </div>
+
+ <p>The <dfn id=dom-meta-scheme title=dom-meta-scheme><code>scheme</code></dfn> IDL
+ attribute of the <code><a href=#the-meta-element>meta</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlobjectelement>HTMLObjectElement</a> {
+ attribute DOMString <a href=#dom-object-align title=dom-object-align>align</a>;
+ attribute DOMString <a href=#dom-object-archive title=dom-object-archive>archive</a>;
+ attribute DOMString <a href=#dom-object-code title=dom-object-code>code</a>;
+ attribute boolean <a href=#dom-object-declare title=dom-object-declare>declare</a>;
+ attribute unsigned long <a href=#dom-object-hspace title=dom-object-hspace>hspace</a>;
+ attribute DOMString <a href=#dom-object-standby title=dom-object-standby>standby</a>;
+ attribute unsigned long <a href=#dom-object-vspace title=dom-object-vspace>vspace</a>;
+ attribute DOMString <a href=#dom-object-codebase title=dom-object-codeBase>codeBase</a>;
+ attribute DOMString <a href=#dom-object-codetype title=dom-object-codeType>codeType</a>;
+
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-object-border title=dom-object-border>border</a>;
+};</pre>
+
+ <p>The <dfn id=dom-object-align title=dom-object-align><code>align</code></dfn>, <dfn id=dom-object-archive title=dom-object-archive><code>archive</code></dfn>, <dfn id=dom-object-border title=dom-object-border><code>border</code></dfn>, <dfn id=dom-object-code title=dom-object-code><code>code</code></dfn>, <dfn id=dom-object-declare title=dom-object-declare><code>declare</code></dfn>, <dfn id=dom-object-hspace title=dom-object-hspace><code>hspace</code></dfn>, <dfn id=dom-object-standby title=dom-object-standby><code>standby</code></dfn>, and <dfn id=dom-object-vspace title=dom-object-vspace><code>vspace</code></dfn> IDL attributes
+ of the <code><a href=#the-object-element>object</a></code> element must <a href=#reflect>reflect</a> the
+ respective content attributes of the same name.</p>
+
+ <p>The <dfn id=dom-object-codebase title=dom-object-codeBase><code>codeBase</code></dfn>
+ IDL attribute of the <code><a href=#the-object-element>object</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-object-codebase><a href=#attr-object-codebase>codebase</a></code> content attribute,
+ which for the purposes of reflection is defined as containing a
+ <a href=#url>URL</a>.</p>
+
+ <p>The <dfn id=dom-object-codetype title=dom-object-codeType><code>codeType</code></dfn> IDL
+ attribute of the <code><a href=#the-object-element>object</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-object-codetype><a href=#attr-object-codetype>codetype</a></code> content
+ attribute.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlolistelement>HTMLOListElement</a> {
+ attribute boolean <a href=#dom-ol-compact title=dom-ol-compact>compact</a>;
+};</pre>
+
+ <p>The <dfn id=dom-ol-compact title=dom-ol-compact><code>compact</code></dfn> IDL
+ attribute of the <code><a href=#the-ol-element>ol</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlparagraphelement>HTMLParagraphElement</a> {
+ attribute DOMString <a href=#dom-p-align title=dom-p-align>align</a>;
+};</pre>
+
+ <p>The <dfn id=dom-p-align title=dom-p-align><code>align</code></dfn> IDL
+ attribute of the <code><a href=#the-p-element>p</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlparamelement>HTMLParamElement</a> {
+ attribute DOMString <a href=#dom-param-type title=dom-param-type>type</a>;
+ attribute DOMString <a href=#dom-param-valuetype title=dom-param-valueType>valueType</a>;
+};</pre>
+
+ <p>The <dfn id=dom-param-type title=dom-param-type><code>type</code></dfn> IDL
+ attribute of the <code><a href=#the-param-element>param</a></code> element must
+ <a href=#reflect>reflect</a> the content attribute of the same name.</p>
+
+ <p>The <dfn id=dom-param-valuetype title=dom-param-valueType><code>valueType</code></dfn>
+ IDL attribute of the <code><a href=#the-param-element>param</a></code> element must
+ <a href=#reflect>reflect</a> the element's <code title=attr-param-valuetype><a href=#attr-param-valuetype>valuetype</a></code> content attribute.</p>
+
+ <hr><p>User agents must treat <code><a href=#plaintext>plaintext</a></code> elements in a
+ manner equivalent to <code><a href=#the-pre-element>pre</a></code> elements in terms of semantics
+ and for purposes of rendering. (The parser has special behavior for
+ this element, though.)</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlpreelement>HTMLPreElement</a> {
+ attribute unsigned long <a href=#dom-pre-width title=dom-pre-width>width</a>;
+};</pre>
+
+ <p>The <dfn id=dom-pre-width title=dom-pre-width><code>width</code></dfn> IDL
+ attribute of the <code><a href=#the-pre-element>pre</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlscriptelement>HTMLScriptElement</a> {
+ attribute DOMString <a href=#dom-script-event title=dom-script-event>event</a>;
+ attribute DOMString <a href=#dom-script-htmlfor title=dom-script-htmlFor>htmlFor</a>;
+};</pre>
+
+ <p>The <dfn id=dom-script-event title=dom-script-event><code>event</code></dfn> and
+ <dfn id=dom-script-htmlfor title=dom-script-htmlFor><code>htmlFor</code></dfn> IDL
+ attributes of the <code><a href=#the-script-element>script</a></code> element must return the empty
+ string on getting, and do nothing on setting.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmltableelement>HTMLTableElement</a> {
+ attribute DOMString <a href=#dom-table-align title=dom-table-align>align</a>;
+ attribute DOMString <a href=#dom-table-frame title=dom-table-frame>frame</a>;
+ attribute DOMString <a href=#dom-table-rules title=dom-table-rules>rules</a>;
+ attribute DOMString <a href=#dom-table-summary title=dom-table-summary>summary</a>;
+ attribute DOMString <a href=#dom-table-width title=dom-table-width>width</a>;
+
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-table-bgcolor title=dom-table-bgColor>bgColor</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-table-cellpadding title=dom-table-cellPadding>cellPadding</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-table-cellspacing title=dom-table-cellSpacing>cellSpacing</a>;
+};</pre>
+
+ <p>The <dfn id=dom-table-align title=dom-table-align><code>align</code></dfn>, <dfn id=dom-table-frame title=dom-table-frame><code>frame</code></dfn>, <dfn id=dom-table-summary title=dom-table-summary><code>summary</code></dfn>, <dfn id=dom-table-rules title=dom-table-rules><code>rules</code></dfn>, and <dfn id=dom-table-width title=dom-table-width><code>width</code></dfn>, IDL attributes of
+ the <code><a href=#the-table-element>table</a></code> element must <a href=#reflect>reflect</a> the
+ respective content attributes of the same name.</p>
+
+ <p>The <dfn id=dom-table-bgcolor title=dom-table-bgColor><code>bgColor</code></dfn> IDL
+ attribute of the <code><a href=#the-table-element>table</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-table-bgcolor><a href=#attr-table-bgcolor>bgcolor</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-table-cellpadding title=dom-table-cellPadding><code>cellPadding</code></dfn> IDL
+ attribute of the <code><a href=#the-table-element>table</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-table-cellpadding><a href=#attr-table-cellpadding>cellpadding</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-table-cellspacing title=dom-table-cellSpacing><code>cellSpacing</code></dfn> IDL
+ attribute of the <code><a href=#the-table-element>table</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-table-cellspacing><a href=#attr-table-cellspacing>cellspacing</a></code> content
+ attribute.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmltablesectionelement>HTMLTableSectionElement</a> {
+ attribute DOMString <a href=#dom-tbody-align title=dom-tbody-align>align</a>;
+ attribute DOMString <a href=#dom-tbody-ch title=dom-tbody-ch>ch</a>;
+ attribute DOMString <a href=#dom-tbody-choff title=dom-tbody-chOff>chOff</a>;
+ attribute DOMString <a href=#dom-tbody-valign title=dom-tbody-vAlign>vAlign</a>;
+};</pre>
+
+ <p>The <dfn id=dom-tbody-align title=dom-tbody-align><code>align</code></dfn> IDL
+ attribute of the <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, and
+ <code><a href=#the-tfoot-element>tfoot</a></code> elements must <a href=#reflect>reflect</a> the content
+ attribute of the same name.</p>
+
+ <p>The <dfn id=dom-tbody-ch title=dom-tbody-ch><code>ch</code></dfn> IDL attribute
+ of the <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, and
+ <code><a href=#the-tfoot-element>tfoot</a></code> elements must <a href=#reflect>reflect</a> the elements'
+ <code title=attr-tbody-char><a href=#attr-tbody-char>char</a></code> content attributes.</p>
+
+ <p>The <dfn id=dom-tbody-choff title=dom-tbody-chOff><code>chOff</code></dfn> IDL
+ attribute of the <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, and
+ <code><a href=#the-tfoot-element>tfoot</a></code> elements must <a href=#reflect>reflect</a> the elements'
+ <code title=attr-tbody-charoff><a href=#attr-tbody-charoff>charoff</a></code> content attributes.</p>
+
+ <p>The <dfn id=dom-tbody-valign title=dom-tbody-vAlign><code>vAlign</code></dfn> IDL
+ attribute of the <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, and
+ <code><a href=#the-tfoot-element>tfoot</a></code> element must <a href=#reflect>reflect</a> the elements'
+ <code title=attr-tbody-valign><a href=#attr-tbody-valign>valign</a></code> content
+ attributes.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmltablecellelement>HTMLTableCellElement</a> {
+ attribute DOMString <a href=#dom-tdth-abbr title=dom-tdth-abbr>abbr</a>;
+ attribute DOMString <a href=#dom-tdth-align title=dom-tdth-align>align</a>;
+ attribute DOMString <a href=#dom-tdth-axis title=dom-tdth-axis>axis</a>;
+ attribute DOMString <a href=#dom-tdth-height title=dom-tdth-height>height</a>;
+ attribute DOMString <a href=#dom-tdth-width title=dom-tdth-width>width</a>;
+
+ attribute DOMString <a href=#dom-tdth-ch title=dom-tdth-ch>ch</a>;
+ attribute DOMString <a href=#dom-tdth-choff title=dom-tdth-chOff>chOff</a>;
+ attribute boolean <a href=#dom-tdth-nowrap title=dom-tdth-noWrap>noWrap</a>;
+ attribute DOMString <a href=#dom-tdth-valign title=dom-tdth-vAlign>vAlign</a>;
+
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-tdth-bgcolor title=dom-tdth-bgColor>bgColor</a>;
+};</pre>
+
+ <p>The <dfn id=dom-tdth-abbr title=dom-tdth-abbr><code>abbr</code></dfn>, <dfn id=dom-tdth-align title=dom-tdth-align><code>align</code></dfn>, <dfn id=dom-tdth-axis title=dom-tdth-axis><code>axis</code></dfn>, <dfn id=dom-tdth-height title=dom-tdth-height><code>height</code></dfn>, and <dfn id=dom-tdth-width title=dom-tdth-width><code>width</code></dfn> IDL attributes of
+ the <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements must
+ <a href=#reflect>reflect</a> the respective content attributes of the same
+ name.</p>
+
+ <p>The <dfn id=dom-tdth-ch title=dom-tdth-ch><code>ch</code></dfn> IDL
+ attribute of the <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements must
+ <a href=#reflect>reflect</a> the elements' <code title=attr-tdth-char><a href=#attr-tdth-char>char</a></code> content attributes.</p>
+
+ <p>The <dfn id=dom-tdth-choff title=dom-tdth-chOff><code>chOff</code></dfn> IDL
+ attribute of the <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements must
+ <a href=#reflect>reflect</a> the elements' <code title=attr-tdth-charoff><a href=#attr-tdth-charoff>charoff</a></code> content attributes.</p>
+
+ <p>The <dfn id=dom-tdth-nowrap title=dom-tdth-noWrap><code>noWrap</code></dfn> IDL
+ attribute of the <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements must
+ <a href=#reflect>reflect</a> the elements' <code title=attr-tdth-nowrap><a href=#attr-tdth-nowrap>nowrap</a></code> content attributes.</p>
+
+ <p>The <dfn id=dom-tdth-valign title=dom-tdth-vAlign><code>vAlign</code></dfn> IDL
+ attribute of the <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> element must
+ <a href=#reflect>reflect</a> the elements' <code title=attr-tdth-valign><a href=#attr-tdth-valign>valign</a></code> content attributes.</p>
+
+ <p>The <dfn id=dom-tdth-bgcolor title=dom-tdth-bgColor><code>bgColor</code></dfn> IDL
+ attribute of the <code><a href=#the-td-element>td</a></code> and <code><a href=#the-th-element>th</a></code> elements must
+ <a href=#reflect>reflect</a> the elements' <code title=attr-tdth-bgcolor><a href=#attr-tdth-bgcolor>bgcolor</a></code> content attributes.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmltablerowelement>HTMLTableRowElement</a> {
+ attribute DOMString <a href=#dom-tr-align title=dom-tr-align>align</a>;
+ attribute DOMString <a href=#dom-tr-ch title=dom-tr-ch>ch</a>;
+ attribute DOMString <a href=#dom-tr-choff title=dom-tr-chOff>chOff</a>;
+ attribute DOMString <a href=#dom-tr-valign title=dom-tr-vAlign>vAlign</a>;
+
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-tr-bgcolor title=dom-tr-bgColor>bgColor</a>;
+};</pre>
+
+ <p>The <dfn id=dom-tr-align title=dom-tr-align><code>align</code></dfn> IDL
+ attribute of the <code><a href=#the-tr-element>tr</a></code> element must <a href=#reflect>reflect</a>
+ the content attribute of the same name.</p>
+
+ <p>The <dfn id=dom-tr-ch title=dom-tr-ch><code>ch</code></dfn> IDL attribute of
+ the <code><a href=#the-tr-element>tr</a></code> element must <a href=#reflect>reflect</a> the element's
+ <code title=attr-tr-char><a href=#attr-tr-char>char</a></code> content attribute.</p>
+
+ <p>The <dfn id=dom-tr-choff title=dom-tr-chOff><code>chOff</code></dfn> IDL
+ attribute of the <code><a href=#the-tr-element>tr</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-tr-charoff><a href=#attr-tr-charoff>charoff</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-tr-valign title=dom-tr-vAlign><code>vAlign</code></dfn> IDL
+ attribute of the <code><a href=#the-tr-element>tr</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-tr-valign><a href=#attr-tr-valign>valign</a></code> content
+ attribute.</p>
+
+ <p>The <dfn id=dom-tr-bgcolor title=dom-tr-bgColor><code>bgColor</code></dfn> IDL
+ attribute of the <code><a href=#the-tr-element>tr</a></code> element must <a href=#reflect>reflect</a>
+ the element's <code title=attr-tr-bgcolor><a href=#attr-tr-bgcolor>bgcolor</a></code> content
+ attribute.</p>
+
+ <hr><pre class=idl>partial interface <a href=#htmlulistelement>HTMLUListElement</a> {
+ attribute boolean <a href=#dom-ul-compact title=dom-ul-compact>compact</a>;
+ attribute DOMString <a href=#dom-ul-type title=dom-ul-type>type</a>;
+};</pre>
+
+ <p>The <dfn id=dom-ul-compact title=dom-ul-compact><code>compact</code></dfn> and
+ <dfn id=dom-ul-type title=dom-ul-type><code>type</code></dfn> IDL attributes of
+ the <code><a href=#the-ul-element>ul</a></code> element must <a href=#reflect>reflect</a> the respective
+ content attributes of the same name.</p>
+
+ <hr><p>User agents must treat <code><a href=#xmp>xmp</a></code> elements in a manner
+ equivalent to <code><a href=#the-pre-element>pre</a></code> elements in terms of semantics and
+ for purposes of rendering. (The parser has special behavior for this
+ element though.)</p>
+
+ <hr><p>The <code><a href=#bgsound>bgsound</a></code>, <code><a href=#isindex-0>isindex</a></code>,
+ <code><a href=#multicol>multicol</a></code>, <code><a href=#nextid>nextid</a></code>, <code><a href=#rb>rb</a></code>, and
+ <code><a href=#spacer>spacer</a></code> elements must use the
+ <code><a href=#htmlunknownelement>HTMLUnknownElement</a></code> interface.</p> <!-- has to be
+ explicitly listed because technically we define the elements in the
+ spec, albeit as obsolete, and then we say that only elements not
+ defined in this spec use HTMLUnknownElement. -->
+
+ <hr><pre class=idl>partial interface <a href=#htmldocument>HTMLDocument</a> {
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-document-fgcolor title=dom-document-fgColor>fgColor</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-document-linkcolor title=dom-document-linkColor>linkColor</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-document-vlinkcolor title=dom-document-vlinkColor>vlinkColor</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-document-alinkcolor title=dom-document-alinkColor>alinkColor</a>;
+ [TreatNullAs=EmptyString] attribute DOMString <a href=#dom-document-bgcolor title=dom-document-bgColor>bgColor</a>;
+
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-anchors title=dom-document-anchors>anchors</a>;
+ readonly attribute <a href=#htmlcollection>HTMLCollection</a> <a href=#dom-document-applets title=dom-document-applets>applets</a>;
+
+ void <a href=#dom-document-clear title=dom-document-clear>clear</a>();
+
+ readonly attribute <a href=#htmlallcollection>HTMLAllCollection</a> <a href=#dom-document-all title=dom-document-all>all</a>;
+};</pre>
+
+ <p>The attributes of the <code><a href=#document>Document</a></code> object listed in the
+ first column of the following table must <a href=#reflect>reflect</a> the
+ content attribute on <a href=#the-body-element-0>the body element</a> with the name
+ given in the corresponding cell in the second column on the same
+ row, if <a href=#the-body-element-0>the body element</a> is a <code><a href=#the-body-element>body</a></code> element
+ (as opposed to a <code><a href=#frameset>frameset</a></code> element). When there is no
+ <a href=#the-body-element-0 title="the body element">body element</a> or if it is a
+ <code><a href=#frameset>frameset</a></code> element, the attributes must instead return
+ the empty string on getting and do nothing on setting.</p>
+
+ <table><thead><tr><th> IDL attribute
+ <th> Content attribute
+ <tbody><tr><td><dfn id=dom-document-fgcolor title=dom-document-fgColor><code>fgColor</code></dfn>
+ <td><code title=attr-body-text><a href=#attr-body-text>text</a></code>
+ <tr><td><dfn id=dom-document-linkcolor title=dom-document-linkColor><code>linkColor</code></dfn>
+ <td><code title=attr-body-link><a href=#attr-body-link>link</a></code>
+ <tr><td><dfn id=dom-document-vlinkcolor title=dom-document-vlinkColor><code>vlinkColor</code></dfn>
+ <td><code title=attr-body-vlink><a href=#attr-body-vlink>vlink</a></code>
+ <tr><td><dfn id=dom-document-alinkcolor title=dom-document-alinkColor><code>alinkColor</code></dfn>
+ <td><code title=attr-body-alink><a href=#attr-body-alink>alink</a></code>
+ <tr><td><dfn id=dom-document-bgcolor title=dom-document-bgColor><code>bgColor</code></dfn>
+ <td><code title=attr-body-bgcolor><a href=#attr-body-bgcolor>bgcolor</a></code>
+ </table><hr><p>The <dfn id=dom-document-anchors title=dom-document-anchors><code>anchors</code></dfn>
+ attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only <code><a href=#the-a-element>a</a></code>
+ elements with <code title=attr-a-name><a href=#attr-a-name>name</a></code>
+ attributes.</p>
+
+ <p>The <dfn id=dom-document-applets title=dom-document-applets><code>applets</code></dfn>
+ attribute must return an <code><a href=#htmlcollection>HTMLCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches only
+ <code><a href=#the-applet-element>applet</a></code> elements.</p>
+
+ <p>The <dfn id=dom-document-clear title=dom-document-clear><code>clear()</code></dfn>
+ method must do nothing.</p>
+
+ <hr><p>The <dfn id=dom-document-all title=dom-document-all><code>all</code></dfn>
+ attribute must return an <code><a href=#htmlallcollection>HTMLAllCollection</a></code> rooted at the
+ <code><a href=#document>Document</a></code> node, whose filter matches all elements.</p>
+
+ <p>The object returned for <code title=dom-document-all><a href=#dom-document-all>all</a></code>
+ has several unusual behaviors:</p>
+
+ <ul><li><p>The user agent must act as if the ToBoolean() operator in
+ JavaScript converts the object returned for <code title=dom-document-all><a href=#dom-document-all>all</a></code> to the false value.</li>
+
+ <li><p>The user agent must act as if, for the purposes of the <code title="">==</code> and <code title="">!=</code> operators in
+ JavaScript, the object returned for <code title=dom-document-all><a href=#dom-document-all>all</a></code> is equal to the <code title="">undefined</code> value.</li>
+
+ <li><p>The user agent must act such that the <code title="">typeof</code> operator in JavaScript returns the string
+ <code title="">undefined</code> when applied to the object returned
+ for <code title=dom-document-all><a href=#dom-document-all>all</a></code>.</li>
+
+ </ul><p class=note>These requirements are a <a href=#willful-violation>willful
+ violation</a> of the JavaScript specification current at the time
+ of writing (ECMAScript edition 5). The JavaScript specification
+ requires that the ToBoolean() operator convert all objects to the
+ true value, and does not have provisions for objects acting as if
+ they were <code title="">undefined</code> for the purposes of
+ certain operators. This violation is motivated by a desire for
+ compatibility with two classes of legacy content: one that uses the
+ presence of <code title=dom-document-all><a href=#dom-document-all>document.all</a></code> as a
+ way to detect legacy user agents, and one that only supports those
+ legacy user agents and uses the <code title=dom-document-all><a href=#dom-document-all>document.all</a></code> object without testing
+ for its presence first. <a href=#refsECMA262>[ECMA262]</a></p>
+
+ </div>
+
+
+
+
+ <h2 id=iana><span class=secno>17 </span>IANA considerations</h2>
+
+ <!-- http://www.w3.org/2002/06/registering-mediatype.html -->
+
+
+
+ <h3 id=text/html><span class=secno>17.1 </span><dfn><code>text/html</code></dfn></h3>
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type text/html
+ -->
+
+ <!--
+ Obsoletes:
+ http://tools.ietf.org/html/rfc2854
+
+ Include a request to retire RFC 2854 persuant to section 6.4 of RFC 2026.
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>text</dd>
+ <dt>Subtype name:</dt>
+ <dd>html</dd>
+ <dt>Required parameters:</dt>
+ <dd>No required parameters</dd>
+ <dt>Optional parameters:</dt>
+ <dd>
+ <dl><dt><code title="">charset</code></dt>
+ <dd>
+ <p>The <code title="">charset</code> parameter may be provided
+ to definitively specify the <a href="#document's-character-encoding">document's character
+ encoding</a>, overriding any <a href=#character-encoding-declaration title="character encoding
+ declaration">character encoding declarations</a> in the
+ document. The parameter's value must be the name of the
+ character encoding used to serialize the file, must be a valid
+ character encoding name, and must be an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for the <a href=#preferred-mime-name>preferred MIME
+ name</a> for that encoding. <a href=#refsIANACHARSET>[IANACHARSET]</a></p>
+ </dd>
+ </dl></dd>
+ <dt>Encoding considerations:</dt>
+ <dd>
+ 8bit (see the section on <a href=#character-encoding-declaration title="character encoding
+ declaration">character encoding declarations</a>)
+ </dd>
+ <dt>Security considerations:</dt>
+ <dd>
+
+ <p>Entire novels have been written about the security
+ considerations that apply to HTML documents. Many are listed in
+ this document, to which the reader is referred for more
+ details. Some general concerns bear mentioning here, however:</p>
+
+ <p>HTML is scripted language, and has a large number of APIs (some
+ of which are described in this document). Script can expose the
+ user to potential risks of information leakage, credential
+ leakage, cross-site scripting attacks, cross-site request
+ forgeries, and a host of other problems. While the designs in this
+ specification are intended to be safe if implemented correctly, a
+ full implementation is a massive undertaking and, as with any
+ software, user agents are likely to have security bugs.</p>
+
+ <p>Even without scripting, there are specific features in HTML
+ which, for historical reasons, are required for broad
+ compatibility with legacy content but that expose the user to
+ unfortunate security problems. In particular, the <code><a href=#the-img-element>img</a></code>
+ element can be used in conjunction with some other features as a
+ way to effect a port scan from the user's location on the
+ Internet. This can expose local network topologies that the
+ attacker would otherwise not be able to determine.</p>
+
+ <p>HTML relies on a compartmentalization scheme sometimes known as
+ the <i>same-origin policy</i>. An <a href=#origin>origin</a> in most
+ cases consists of all the pages served from the same host, on the
+ same port, using the same protocol.</p>
+
+ <p>It is critical, therefore, to ensure that any untrusted content
+ that forms part of a site be hosted on a different
+ <a href=#origin>origin</a> than any sensitive content on that site.
+ Untrusted content can easily spoof any other page on the same
+ origin, read data from that origin, cause scripts in that origin
+ to execute, submit forms to and from that origin even if they are
+ protected from cross-site request forgery attacks by unique
+ tokens, and make use of any third-party resources exposed to or
+ rights granted to that origin.</p>
+
+ </dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>
+ Rules for processing both conforming and non-conforming content
+ are defined in this specification.
+ </dd>
+ <dt>Published specification:</dt>
+ <dd id=authors-using-html>
+ This document is the relevant specification. Labeling a resource
+ with the <code><a href=#text/html>text/html</a></code> type asserts that the resource is
+ an <a href=#html-documents title="HTML documents">HTML document</a> using
+ <a href=#syntax>the HTML syntax</a>.
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>
+ Web browsers, tools for processing Web content, HTML authoring
+ tools, search engines, validators.
+ </dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd>No sequence of bytes can uniquely identify an HTML
+ document. More information on detecting HTML documents is
+ available in the Media Type Sniffing specification. <a href=#refsMIMESNIFF>[MIMESNIFF]</a></dd>
+ <dt>File extension(s):</dt>
+ <dd>"<code title="">html</code>" and "<code title="">htm</code>"
+ are commonly, but certainly not exclusively, used as the
+ extension for HTML documents.</dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd><code title="">TEXT</code></dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>No restrictions apply.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers used with <code><a href=#text/html>text/html</a></code> resources
+ either refer to <a href=#the-indicated-part-of-the-document>the indicated part of the document</a> or
+ provide state information for in-page scripts.</p>
+
+
+ <h3 id=text/html-sandboxed><span class=secno>17.2 </span><dfn><code>text/html-sandboxed</code></dfn></h3>
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type text/html-sandboxed
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>text</dd>
+ <dt>Subtype name:</dt>
+ <dd>html-sandboxed</dd>
+ <dt>Required parameters:</dt>
+ <dd>No required parameters</dd>
+ <dt>Optional parameters:</dt>
+ <dd>Same as for <code><a href=#text/html>text/html</a></code></dd>
+ <dt>Encoding considerations:</dt>
+ <dd>Same as for <code><a href=#text/html>text/html</a></code></dd>
+ <dt>Security considerations:</dt>
+ <dd>
+ <p>The purpose of the <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> MIME type
+ is to provide a way for content providers to indicate that they
+ want the file to be interpreted in a manner that does not give the
+ file's contents access to the rest of the site. This is achieved
+ by assigning the <code><a href=#document>Document</a></code> objects generated from
+ resources labeled as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> unique
+ origins.</p>
+ <p>To avoid having legacy user agents treating resources labeled
+ as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> as regular
+ <code><a href=#text/html>text/html</a></code> files, authors should avoid using the <code title="">.html</code> or <code title="">.htm</code> extensions for
+ resources labeled as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>.</p>
+ <p>Furthermore, since the <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> MIME
+ type impacts the origin security model, authors should be careful
+ to prevent tampering with the MIME type labeling mechanism itself
+ when documents are labeled as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>. If
+ an attacker can cause a file to be served as
+ <code><a href=#text/html>text/html</a></code> instead of
+ <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>, then the sandboxing will not
+ take effect and a cross-site scripting attack will become
+ possible.</p>
+ <p>Beyond this, the type is identical to <code><a href=#text/html>text/html</a></code>,
+ and the same considerations apply.</p>
+ </dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>Same as for <code><a href=#text/html>text/html</a></code></dd>
+ <dt>Published specification:</dt>
+ <dd>
+ This document is the relevant specification. Labeling a resource
+ with the <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> type asserts that the
+ resource is an <a href=#html-documents title="HTML documents">HTML document</a>
+ using <a href=#syntax>the HTML syntax</a>.
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>Same as for <code><a href=#text/html>text/html</a></code></dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd>Documents labeled as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> are
+ heuristically indistinguishable from those labeled as
+ <code><a href=#text/html>text/html</a></code>.</dd>
+ <dt>File extension(s):</dt>
+ <dd>"<code title="">sandboxed</code>"</dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd><code title="">TEXT</code></dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>No restrictions apply.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers used with <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>
+ resources either refer to <a href=#the-indicated-part-of-the-document>the indicated part of the
+ document</a> or provide state information for in-page
+ scripts.</p>
+
+
+ <h3 id=multipart/x-mixed-replace><span class=secno>17.3 </span><dfn><code>multipart/x-mixed-replace</code></dfn></h3>
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type multipart/x-mixed-replace
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>multipart</dd>
+ <dt>Subtype name:</dt>
+ <dd>x-mixed-replace</dd>
+ <dt>Required parameters:</dt>
+ <dd>
+ <ul class=brief><li><code title="">boundary</code> (defined in RFC2046) <a href=#refsRFC2046>[RFC2046]</a>
+ </ul></dd>
+ <dt>Optional parameters:</dt>
+ <dd>No optional parameters.</dd>
+ <dt>Encoding considerations:</dt>
+ <dd>binary</dd>
+ <dt>Security considerations:</dt>
+ <dd>
+ Subresources of a <code><a href=#multipart/x-mixed-replace>multipart/x-mixed-replace</a></code>
+ resource can be of any type, including types with non-trivial
+ security implications such as <code><a href=#text/html>text/html</a></code>.
+ </dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>
+ None.
+ </dd>
+ <dt>Published specification:</dt>
+ <dd>
+ This specification describes processing rules for Web browsers.
+ Conformance requirements for generating resources with this type are the same as for <code>multipart/mixed</code>. <a href=#refsRFC2046>[RFC2046]</a>
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>
+ This type is intended to be used in resources generated by Web servers, for consumption by Web browsers.
+ </dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd>No sequence of bytes can uniquely identify a <code><a href=#multipart/x-mixed-replace>multipart/x-mixed-replace</a></code> resource.</dd>
+ <dt>File extension(s):</dt>
+ <dd>No specific file extensions are recommended for this type.</dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd>No specific Macintosh file type codes are recommended for this type.</dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>No restrictions apply.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers used with
+ <code><a href=#multipart/x-mixed-replace>multipart/x-mixed-replace</a></code> resources apply to each body
+ part as defined by the type used by that body part.</p>
+
+
+ <h3 id=application/xhtml+xml><span class=secno>17.4 </span><dfn><code>application/xhtml+xml</code></dfn></h3>
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type application/xhtml+xml
+ -->
+
+ <!--
+ Obsoletes:
+ http://tools.ietf.org/html/rfc3236
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>application</dd>
+ <dt>Subtype name:</dt>
+ <dd>xhtml+xml</dd>
+ <dt>Required parameters:</dt>
+ <dd>Same as for <code>application/xml</code> <a href=#refsRFC3023>[RFC3023]</a></dd>
+ <dt>Optional parameters:</dt>
+ <dd>Same as for <code>application/xml</code> <a href=#refsRFC3023>[RFC3023]</a></dd>
+ <dt>Encoding considerations:</dt>
+ <dd>Same as for <code>application/xml</code> <a href=#refsRFC3023>[RFC3023]</a></dd>
+ <dt>Security considerations:</dt>
+ <dd>Same as for <code>application/xml</code> <a href=#refsRFC3023>[RFC3023]</a></dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>Same as for <code>application/xml</code> <a href=#refsRFC3023>[RFC3023]</a></dd>
+ <dt id=authors-using-xhtml>Published specification:</dt>
+ <dd>
+ Labeling a resource with the <code><a href=#application/xhtml+xml>application/xhtml+xml</a></code>
+ type asserts that the resource is an XML document that likely has
+ a root element from the <a href=#html-namespace-0>HTML namespace</a>. As such, the
+ relevant specifications are the XML specification, the Namespaces
+ in XML specification, and this specification. <a href=#refsXML>[XML]</a> <a href=#refsXMLNS>[XMLNS]</a>
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>Same as for <code>application/xml</code> <a href=#refsRFC3023>[RFC3023]</a></dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd>Same as for <code>application/xml</code> <a href=#refsRFC3023>[RFC3023]</a></dd>
+ <dt>File extension(s):</dt>
+ <dd>"<code title="">xhtml</code>" and "<code title="">xht</code>"
+ are sometimes used as extensions for XML resources that have a
+ root element from the <a href=#html-namespace-0>HTML namespace</a>.</dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd><code title="">TEXT</code></dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>No restrictions apply.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers used with <code><a href=#application/xhtml+xml>application/xhtml+xml</a></code>
+ resources have the same semantics as with any <a href=#xml-mime-type>XML MIME
+ type</a>. <a href=#refsRFC3023>[RFC3023]</a></p>
+
+
+ <h3 id=application/x-www-form-urlencoded><span class=secno>17.5 </span><dfn><code>application/x-www-form-urlencoded</code></dfn></h3>
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type application/x-www-form-urlencoded
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>application</dd>
+ <dt>Subtype name:</dt>
+ <dd>x-www-form-urlencoded</dd>
+ <dt>Required parameters:</dt>
+ <dd>No parameters</dd>
+ <dt>Optional parameters:</dt>
+ <dd>No parameters</dd>
+ <dt>Encoding considerations:</dt>
+ <dd>7bit (US-ASCII encoding of octets that themselves can be encoding text using any <a href=#ascii-compatible-character-encoding>ASCII-compatible character encoding</a>)</dd>
+ <dt>Security considerations:</dt>
+ <dd>
+ <p>In isolation, an <code><a href=#application/x-www-form-urlencoded>application/x-www-form-urlencoded</a></code>
+ payload poses no security risks. However, as this type is usually
+ used as part of a form submission, all the risks that apply to
+ HTML forms need to be considered in the context of this type.</p>
+ </dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>
+ Rules for generating and processing
+ <code><a href=#application/x-www-form-urlencoded>application/x-www-form-urlencoded</a></code> payloads are
+ defined in this specification.
+ </dd>
+ <dt>Published specification:</dt>
+ <dd>
+ This document is the relevant specification.
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>
+ Web browsers and servers.
+ </dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd>There is no reliable mechanism for recognising <code><a href=#application/x-www-form-urlencoded>application/x-www-form-urlencoded</a></code> payloads.</dd>
+ <dt>File extension(s):</dt>
+ <dd>Not applicable.</dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd>Not applicable.</dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>This type is only intended to be used to describe HTML form
+ submission payloads.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers have no meaning with the
+ <code><a href=#application/x-www-form-urlencoded>application/x-www-form-urlencoded</a></code> type as this type is
+ only used for uploaded payloads that do not have <a href=#url>URL</a>
+ identifiers.</p>
+
+
+ <h3 id=text/cache-manifest><span class=secno>17.6 </span><dfn><code>text/cache-manifest</code></dfn></h3>
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type text/cache-manifest
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>text</dd>
+ <dt>Subtype name:</dt>
+ <dd>cache-manifest</dd>
+ <dt>Required parameters:</dt>
+ <dd>No parameters</dd>
+ <dt>Optional parameters:</dt>
+ <dd>No parameters</dd>
+ <dt>Encoding considerations:</dt>
+ <dd>8bit (always UTF-8)</dd>
+ <dt>Security considerations:</dt>
+ <dd>
+ <p>Cache manifests themselves pose no immediate risk unless
+ sensitive information is included within the
+ manifest. Implementations, however, are required to follow
+ specific rules when populating a cache based on a cache manifest,
+ to ensure that certain origin-based restrictions are
+ honored. Failure to correctly implement these rules can result in
+ information leakage, cross-site scripting attacks, and the
+ like.</p>
+ </dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>
+ Rules for processing both conforming and non-conforming content
+ are defined in this specification.
+ </dd>
+ <dt>Published specification:</dt>
+ <dd>
+ This document is the relevant specification.
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>
+ Web browsers.
+ </dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd>Cache manifests begin with the string "<code title="">CACHE
+ MANIFEST</code>", followed by either a U+0020 SPACE character, a
+ U+0009 CHARACTER TABULATION (tab) character, a U+000A LINE FEED
+ (LF) character, or a U+000D CARRIAGE RETURN (CR) character.</dd>
+ <dt>File extension(s):</dt>
+ <dd>"<code title="">appcache</code>"</dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd>No specific Macintosh file type codes are recommended for this type.</dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>No restrictions apply.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers have no meaning with
+ <code><a href=#text/cache-manifest>text/cache-manifest</a></code> resources.</p>
+
+
+<!--PING-->
+ <h3 id=text/ping><span class=secno>17.7 </span><dfn><code>text/ping</code></dfn></h3>
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type text/ping
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>text</dd>
+ <dt>Subtype name:</dt>
+ <dd>ping</dd>
+ <dt>Required parameters:</dt>
+ <dd>No parameters</dd>
+ <dt>Optional parameters:</dt>
+ <dd>No parameters</dd>
+ <dt>Encoding considerations:</dt>
+ <dd>Not applicable.</dd>
+ <dt>Security considerations:</dt>
+ <dd>
+ <p>If used exclusively in the fashion described in the context of
+ <a href=#hyperlink-auditing>hyperlink auditing</a>, this type introduces no new
+ security concerns.</p>
+ </dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>
+ Rules applicable to this type are defined in this specification.
+ </dd>
+ <dt>Published specification:</dt>
+ <dd>
+ This document is the relevant specification.
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>
+ Web browsers.
+ </dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd><code><a href=#text/ping>text/ping</a></code> resources always consist of the four
+ bytes 0x50 0x49 0x4E 0x47 (ASCII 'PING').</dd>
+ <dt>File extension(s):</dt>
+ <dd>No specific file extension is recommended for this type.</dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd>No specific Macintosh file type codes are recommended for this type.</dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>Only intended for use with HTTP POST requests generated as part
+ of a Web browser's processing of the <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers have no meaning with
+ <code><a href=#text/ping>text/ping</a></code> resources.</p>
+<!--PING-->
+
+<!--TTVTT-->
+<div data-component="other Hixie drafts (editor: Ian Hickson)">
+ <h3 id=text/vtt><span class=secno>17.8 </span><dfn><code>text/vtt</code></dfn></h3>
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type text/cues
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>text</dd>
+ <dt>Subtype name:</dt>
+ <dd>vtt</dd>
+ <dt>Required parameters:</dt>
+ <dd>No parameters</dd>
+ <dt>Optional parameters:</dt>
+ <dd>No parameters</dd>
+ <dt>Encoding considerations:</dt>
+ <dd>8bit (always UTF-8)</dd>
+ <dt>Security considerations:</dt>
+ <dd>
+ <p>Text track files themselves pose no immediate risk unless
+ sensitive information is included within the
+ data. Implementations, however, are required to follow specific
+ rules when processing text tracks, to ensure that certain
+ origin-based restrictions are honored. Failure to correctly
+ implement these rules can result in information leakage,
+ cross-site scripting attacks, and the like.</p>
+ </dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>
+ <p>Rules for processing both conforming and non-conforming content
+ are defined in this specification.</p>
+ <p>Some legacy files violate the requirement to use UTF-8.</p>
+ </dd>
+ <dt>Published specification:</dt>
+ <dd>
+ This document is the relevant specification.
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>
+ Web browsers and other video players.
+ </dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd>
+ <p>WebVTT files all begin with one of the following byte sequences:</p>
+ <ul class=brief><li> EF BB BF 57 45 42 56 54 54 0A
+ <li> EF BB BF 57 45 42 56 54 54 0D
+ <li> EF BB BF 57 45 42 56 54 54 20
+ <li> EF BB BF 57 45 42 56 54 54 09
+ <li> 57 45 42 56 54 54 0A
+ <li> 57 45 42 56 54 54 0D
+ <li> 57 45 42 56 54 54 20
+ <li> 57 45 42 56 54 54 09
+ </ul><p class=note>(An optional UTF-8 BOM, the ASCII string "<code title="">WEBVTT</code>", and finally a space, tab, or line break.)
+ </dd>
+ <dt>File extension(s):</dt>
+ <dd>"<code title="">vtt</code>"</dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd>No specific Macintosh file type codes are recommended for this type.</dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>No restrictions apply.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers have no meaning with
+ <code><a href=#text/vtt>text/vtt</a></code> resources.</p>
+</div>
+<!--TTVTT-->
+
+<!--MD-->
+
+ <h3 id=application/microdata+json><span class=secno>17.9 </span><dfn><code>application/microdata+json</code></dfn></h3>
+
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type application/microdata+json
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>application</dd>
+ <dt>Subtype name:</dt>
+ <dd>microdata+json</dd>
+ <dt>Required parameters:</dt>
+ <dd>Same as for <code>application/json</code> <a href=#refsJSON>[JSON]</a></dd>
+ <dt>Optional parameters:</dt>
+ <dd>Same as for <code>application/json</code> <a href=#refsJSON>[JSON]</a></dd>
+ <dt>Encoding considerations:</dt>
+ <dd>8bit (always UTF-8)</dd>
+ <dt>Security considerations:</dt>
+ <dd>Same as for <code>application/json</code> <a href=#refsJSON>[JSON]</a></dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>Same as for <code>application/json</code> <a href=#refsJSON>[JSON]</a></dd>
+ <dt>Published specification:</dt>
+ <dd>
+
+ Labeling a resource with the
+ <code><a href=#application/microdata+json>application/microdata+json</a></code> type asserts that the
+ resource is a JSON text that consists of an object with a single
+ entry called "<code title="">items</code>" consisting of an array
+ of entries, each of which consists of an object with an entry
+ called "<code title="">id</code>" whose value is a string, an
+ entry called "<code title="">type</code>" whose value is another
+ string, and an entry called "<code title="">properties</code>"
+ whose value is an object whose entries each have a value
+ consisting of an array of either objects or strings, the objects
+ being of the same form as the objects in the aforementioned "<code title="">items</code>" entry. As such, the relevant specifications
+ are the JSON specification and this specification. <a href=#refsJSON>[JSON]</a>
+
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>Same as for <code>application/json</code> <a href=#refsJSON>[JSON]</a></dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd>Same as for <code>application/json</code> <a href=#refsJSON>[JSON]</a></dd>
+ <dt>File extension(s):</dt>
+ <dd>Same as for <code>application/json</code> <a href=#refsJSON>[JSON]</a></dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd>Same as for <code>application/json</code> <a href=#refsJSON>[JSON]</a></dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>No restrictions apply.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers used with
+ <code><a href=#application/microdata+json>application/microdata+json</a></code> resources have the same
+ semantics as when used with <code>application/json</code> (namely,
+ at the time of writing, no semantics at all). <a href=#refsJSON>[JSON]</a></p>
+
+<!--MD-->
+
+
+<!--PEERCONNECTION-->
+ <h3 id=application/html-peer-connection-data><span class=secno>17.10 </span><dfn><code>application/html-peer-connection-data</code></dfn></h3>
+
+ <p>This registration is for community review and will be submitted
+ to the IESG for review, approval, and registration with IANA.</p>
+
+ <!--
+ To: ietf-types@iana.org
+ Subject: Registration of media type application/html-peer-connection-data
+ -->
+
+ <dl><dt>Type name:</dt>
+ <dd>application</dd>
+ <dt>Subtype name:</dt>
+ <dd>html-peer-connection-data</dd>
+ <dt>Required parameters:</dt>
+ <dd>No required parameters</dd>
+ <dt>Optional parameters:</dt>
+ <dd>No optional parameters</dd>
+ <dt>Encoding considerations:</dt>
+ <dd>binary (this MIME type defines a binary protocol format which uses UTF-8 for text encoding)</dd>
+ <dt>Security considerations:</dt>
+ <dd>
+
+ <p>This format is used for encoding UDP packets transmitted by
+ potentially hostile Web page content via a trusted user agent to a
+ destination selected by a potentially hostile remote server. To
+ prevent this mechanism from being abused for cross-protocol
+ attacks, all the data in these packets is masked so as to appear
+ to be random noise. The intent of this masking is to reduce the
+ potential attack scenarios to those already possible
+ previously.</p>
+
+ <p>However, this feature still allows random data to be sent to
+ destinations that might not normally have been able to receive
+ them, such as to hosts within the victim's intranet. If a service
+ within such an intranet cannot handle receiving UDP packets
+ containing random noise, it might be vulnerable to attack from
+ this feature.</p>
+
+ </dd>
+ <dt>Interoperability considerations:</dt>
+ <dd>
+ Rules for processing both conforming and non-conforming content
+ are defined in this specification.
+ </dd>
+ <dt>Published specification:</dt>
+ <dd>
+ This document is the relevant specification.
+ </dd>
+ <dt>Applications that use this media type:</dt>
+ <dd>
+ This type is only intended for use with SDP. <a href=#refsSDP>[SDP]</a>
+ </dd>
+ <dt>Additional information:</dt>
+ <dd>
+ <dl><dt>Magic number(s):</dt>
+ <dd>No sequence of bytes can uniquely identify data in this
+ format, as all data in this format is intentionally masked to
+ avoid cross-protocol attacks.</dd>
+ <dt>File extension(s):</dt>
+ <dd>This format is not for use with files.</dd>
+ <dt>Macintosh file type code(s):</dt>
+ <dd>This format is not for use with files.</dd>
+ </dl></dd>
+ <dt>Person &amp; email address to contact for further information:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Intended usage:</dt>
+ <dd>Common</dd>
+ <dt>Restrictions on usage:</dt>
+ <dd>No restrictions apply.</dd>
+ <dt>Author:</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Change controller:</dt>
+ <dd>W3C</dd>
+ </dl><p>Fragment identifiers cannot be used with
+ <code><a href=#application/html-peer-connection-data>application/html-peer-connection-data</a></code> as URLs cannot be
+ used to identify streams that use this format.</p>
+<!--PEERCONNECTION-->
+
+
+<!--PING-->
+ <h3 id=ping-from><span class=secno>17.11 </span><dfn title=http-ping-from><code>Ping-From</code></dfn></h3>
+
+ <p>This section describes a header field for registration in the
+ Permanent Message Header Field Registry. <a href=#refsRFC3864>[RFC3864]</a></p>
+
+ <dl><dt>Header field name</dt>
+ <dd>Ping-From</dd>
+ <dt>Applicable protocol</dt>
+ <dd>http</dd>
+ <dt>Status</dt>
+ <dd>standard</dd>
+ <dt>Author/Change controller</dt>
+ <dd>W3C</dd>
+ <dt>Specification document(s)</dt>
+ <dd>
+ This document is the relevant specification.
+ </dd>
+ <dt>Related information</dt>
+ <dd>None.</dd>
+ </dl><h3 id=ping-to><span class=secno>17.12 </span><dfn title=http-ping-to><code>Ping-To</code></dfn></h3>
+
+ <p>This section describes a header field for registration in the
+ Permanent Message Header Field Registry. <a href=#refsRFC3864>[RFC3864]</a></p>
+
+ <dl><dt>Header field name</dt>
+ <dd>Ping-To</dd>
+ <dt>Applicable protocol</dt>
+ <dd>http</dd>
+ <dt>Status</dt>
+ <dd>standard</dd>
+ <dt>Author/Change controller</dt>
+ <dd>W3C</dd>
+ <dt>Specification document(s)</dt>
+ <dd>
+ This document is the relevant specification.
+ </dd>
+ <dt>Related information</dt>
+ <dd>None.</dd>
+ </dl><!--PING--><h3 id=web+-scheme-prefix><span class=secno>17.13 </span><dfn title=scheme-web><code>web+</code> scheme prefix</dfn></h3>
+
+ <p>This section describes a convention for use with the IANA URI
+ scheme registry. It does not itself register a specific scheme. <a href=#refsRFC4395>[RFC4395]</a></p>
+
+ <dl><dt>URI scheme name</dt>
+ <dd>
+ Schemes starting with the four characters "<code title="">web+</code>" followed by one or more letters in the range
+ <code title="">a</code>-<code title="">z</code>.
+ </dd>
+ <dt>Status</dt>
+ <dd>permanent</dd>
+ <dt>URI scheme syntax</dt>
+ <dd>Scheme-specific.</dd>
+ <dt>URI scheme semantics</dt>
+ <dd>Scheme-specific.</dd>
+ <dt>Encoding considerations</dt>
+ <dd>All "<code title="">web+</code>" schemes should use UTF-8 encodings were relevant.</dd>
+ <dt>Applications/protocols that use this URI scheme name</dt>
+ <dd>Scheme-specific.</dd>
+ <dt>Interoperability considerations</dt>
+ <dd>The scheme is expected to be used in the context of Web applications.</dd>
+ <dt>Security considerations</dt>
+ <dd>
+ Any Web page is able to register a handler for all "<code title="">web+</code>" schemes. As such, these schemes must not be
+ used for features intended to be core platform features (e.g.
+ network transfer protocols like HTTP or FTP). Similarly, such
+ schemes must not store confidential information in their URLs,
+ such as usernames, passwords, personal information, or
+ confidential project names.
+ </dd>
+ <dt>Contact</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>Author/Change controller</dt>
+ <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
+ <dt>References</dt>
+ <dd>W3C</dd>
+ </dl><h2 class=no-num id=index>Index</h2>
+
+ <div class=impl>
+
+ <p>The following sections only cover conforming elements and features.</p>
+
+ </div>
+
+ <h3 class=no-num id=elements-1>Elements</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <table><caption>List of elements</caption>
+ <thead><tr><th> Element
+ <th> Description
+ <th> Categories
+ <th> Parents&dagger;
+ <th> Children
+ <th> Attributes
+ <th> Interface
+ <tbody><tr><th><code><a href=#the-a-element>a</a></code></th>
+ <td>Hyperlink</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>*;
+ <a href=#interactive-content title="Interactive content">interactive</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#transparent>transparent</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>;
+ <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code>;
+<!--DOWNLOAD--><!--PING-->
+ <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code>;
+ <code title=attr-hyperlink-ping><a href=#ping>ping</a></code>;
+<!--DOWNLOAD--><!--PING-->
+ <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>;
+ <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>;
+ <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>;
+ <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code></td>
+ <td><code><a href=#htmlanchorelement>HTMLAnchorElement</a></code></td>
+ <tr><th><code><a href=#the-abbr-element>abbr</a></code></th>
+ <td>Abbreviation</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-address-element>address</a></code></th>
+ <td>Contact information for a page or <code><a href=#the-article-element>article</a></code> element</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-area-element>area</a></code></th>
+ <td>Hyperlink or dead area on an image map</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-area-alt><a href=#attr-area-alt>alt</a></code>;
+ <code title=attr-area-coords><a href=#attr-area-coords>coords</a></code>;
+ <code title=attr-area-shape><a href=#attr-area-shape>shape</a></code>;
+ <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>;
+ <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code>;
+<!--DOWNLOAD--><!--PING-->
+ <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code>;
+ <code title=attr-hyperlink-ping><a href=#ping>ping</a></code>;
+<!--DOWNLOAD--><!--PING-->
+ <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code>;
+ <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>media</a></code>;
+ <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>hreflang</a></code>;
+ <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>type</a></code></td>
+ <td><code><a href=#htmlareaelement>HTMLAreaElement</a></code></td>
+ <tr><th><code><a href=#the-article-element>article</a></code></th>
+ <td>Self-contained syndicatable or reusable composition</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#sectioning-content title="Sectioning content">sectioning</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-aside-element>aside</a></code></th>
+ <td>Sidebar for tangentially related content</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#sectioning-content title="Sectioning content">sectioning</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-audio-element>audio</a></code></th>
+ <td>Audio player</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#embedded-content title="Embedded content">embedded</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><code><a href=#the-source-element>source</a></code>*;
+ <a href=#transparent>transparent</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-media-src><a href=#attr-media-src>src</a></code>;
+ <code title=attr-media-crossorigin><a href=#attr-media-crossorigin>crossorigin</a></code>;
+ <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>;
+ <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>;
+ <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>;
+ <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>;
+ <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>;
+ <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code></td>
+ <td><code><a href=#htmlaudioelement>HTMLAudioElement</a></code></td>
+ <tr><th><code><a href=#the-b-element>b</a></code></th>
+ <td>Keywords</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-base-element>base</a></code></th>
+ <td>Base URL and default target <a href=#browsing-context>browsing context</a> for <a href=#attr-hyperlink-target title=attr-hyperlink-target>hyperlinks</a> and <a href=#attr-fs-target title=attr-fs-target>forms</a></td>
+ <td><a href=#metadata-content title="Metadata content">metadata</a></td>
+ <td><code><a href=#the-head-element>head</a></code></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-base-href><a href=#attr-base-href>href</a></code>;
+ <code title=attr-base-target><a href=#attr-base-target>target</a></code></td>
+ <td><code><a href=#htmlbaseelement>HTMLBaseElement</a></code></td>
+ <tr><th><code><a href=#the-bdi-element>bdi</a></code></th>
+ <td>Text directionality isolation</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-bdo-element>bdo</a></code></th>
+ <td>Text directionality formatting</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-blockquote-element>blockquote</a></code></th>
+ <td>A section quoted from another source</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#sectioning-root title="Sectioning root">sectioning root</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-blockquote-cite><a href=#attr-blockquote-cite>cite</a></code></td>
+ <td><code><a href=#htmlquoteelement>HTMLQuoteElement</a></code></td>
+ <tr><th><code><a href=#the-body-element>body</a></code></th>
+ <td>Document body</td>
+ <td><a href=#sectioning-root title="Sectioning root">sectioning root</a></td>
+ <td><code><a href=#the-html-element>html</a></code></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=handler-window-onafterprint><a href=#handler-window-onafterprint>onafterprint</a></code>;
+ <code title=handler-window-onbeforeprint><a href=#handler-window-onbeforeprint>onbeforeprint</a></code>;
+ <code title=handler-window-onbeforeunload><a href=#handler-window-onbeforeunload>onbeforeunload</a></code>;
+ <code title=handler-window-onblur><a href=#handler-window-onblur>onblur</a></code>;
+ <code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code>;
+ <code title=handler-window-onfocus><a href=#handler-window-onfocus>onfocus</a></code>;
+ <code title=handler-window-onhashchange><a href=#handler-window-onhashchange>onhashchange</a></code>;
+ <code title=handler-window-onload><a href=#handler-window-onload>onload</a></code>;
+ <code title=handler-window-onmessage><a href=#handler-window-onmessage>onmessage</a></code>;
+ <code title=handler-window-onoffline><a href=#handler-window-onoffline>onoffline</a></code>;
+ <code title=handler-window-ononline><a href=#handler-window-ononline>ononline</a></code>;
+ <code title=handler-window-onpagehide><a href=#handler-window-onpagehide>onpagehide</a></code>;
+ <code title=handler-window-onpageshow><a href=#handler-window-onpageshow>onpageshow</a></code>;
+ <code title=handler-window-onpopstate><a href=#handler-window-onpopstate>onpopstate</a></code>;
+ <code title=handler-window-onresize><a href=#handler-window-onresize>onresize</a></code>;
+ <code title=handler-window-onscroll><a href=#handler-window-onscroll>onscroll</a></code>;
+ <code title=handler-window-onstorage><a href=#handler-window-onstorage>onstorage</a></code>;
+ <code title=handler-window-onunload><a href=#handler-window-onunload>onunload</a></code></td>
+ <td><code><a href=#htmlbodyelement>HTMLBodyElement</a></code></td>
+ <tr><th><code><a href=#the-br-element>br</a></code></th>
+ <td>Line break, e.g. in poem or postal address</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlbrelement>HTMLBRElement</a></code></td>
+ <tr><th><code><a href=#the-button-element>button</a></code></th>
+ <td>Button control</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a>;
+ <a href=#category-listed title=category-listed>listed</a>;
+ <a href=#category-label title=category-label>labelable</a>;
+ <a href=#category-submit title=category-submit>submittable</a>;
+ <a href=#form-associated-element title="Form-associated element">form-associated</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>;
+ <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code>;
+ <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>;
+ <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>;
+ <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>;
+ <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>;
+ <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>;
+ <code title=attr-button-type><a href=#attr-button-type>type</a></code>;
+ <code title=attr-button-value><a href=#attr-button-value>value</a></code></td>
+ <td><code><a href=#htmlbuttonelement>HTMLButtonElement</a></code></td>
+ <tr><th><code><a href=#the-canvas-element>canvas</a></code></th>
+ <td>Scriptable bitmap canvas</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#embedded-content title="Embedded content">embedded</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#transparent>transparent</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-canvas-width><a href=#attr-canvas-width>width</a></code>;
+ <code title=attr-canvas-height><a href=#attr-canvas-height>height</a></code></td>
+ <td><code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code></td>
+ <tr><th><code><a href=#the-caption-element>caption</a></code></th>
+ <td>Table caption</td>
+ <td>none</td>
+ <td><code><a href=#the-table-element>table</a></code></td>
+ <td><a href=#flow-content title="Flow content">flow</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmltablecaptionelement>HTMLTableCaptionElement</a></code></td>
+ <tr><th><code><a href=#the-cite-element>cite</a></code></th>
+ <td>Title of a work</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-code-element>code</a></code></th>
+ <td>Computer code</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-col-element>col</a></code></th>
+ <td>Table column</td>
+ <td>none</td>
+ <td><code><a href=#the-colgroup-element>colgroup</a></code></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-col-span><a href=#attr-col-span>span</a></code></td>
+ <td><code><a href=#htmltablecolelement>HTMLTableColElement</a></code></td>
+ <tr><th><code><a href=#the-colgroup-element>colgroup</a></code></th>
+ <td>Group of columns in a table</td>
+ <td>none</td>
+ <td><code><a href=#the-table-element>table</a></code></td>
+ <td><code><a href=#the-col-element>col</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code></td>
+ <td><code><a href=#htmltablecolelement>HTMLTableColElement</a></code></td>
+ <tr><th><code><a href=#the-command-element>command</a></code></th>
+ <td>Menu command</td>
+ <td><a href=#metadata-content title="Metadata content">metadata</a>;
+ <a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><code><a href=#the-head-element>head</a></code>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-command-type><a href=#attr-command-type>type</a></code>;
+ <code title=attr-command-label><a href=#attr-command-label>label</a></code>;
+ <code title=attr-command-icon><a href=#attr-command-icon>icon</a></code>;
+ <code title=attr-command-disabled><a href=#attr-command-disabled>disabled</a></code>;
+ <code title=attr-command-checked><a href=#attr-command-checked>checked</a></code>;
+ <code title=attr-command-radiogroup><a href=#attr-command-radiogroup>radiogroup</a></code></td>
+ <td><code><a href=#htmlcommandelement>HTMLCommandElement</a></code></td>
+ <tr><th><code><a href=#the-datalist-element>datalist</a></code></th>
+ <td>Container for options for <a href=#attr-input-list title=attr-input-list>combo box control</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <code><a href=#the-option-element>option</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmldatalistelement>HTMLDataListElement</a></code></td>
+ <tr><th><code><a href=#the-dd-element>dd</a></code></th>
+ <td>Content for corresponding <code><a href=#the-dt-element>dt</a></code> element(s)</td>
+ <td>none</td>
+ <td><code><a href=#the-dl-element>dl</a></code></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-del-element>del</a></code></th>
+ <td>A removal from the document</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#transparent>transparent</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-mod-cite><a href=#attr-mod-cite>cite</a></code>;
+ <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code></td>
+ <td><code><a href=#htmlmodelement>HTMLModElement</a></code></td>
+ <tr><th><code><a href=#the-details-element>details</a></code></th>
+ <td>Disclosure control for hiding details</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#sectioning-root title="Sectioning root">sectioning root</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><code><a href=#the-summary-element>summary</a></code>*;
+ <a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-details-open><a href=#attr-details-open>open</a></code></td>
+ <td><code><a href=#htmldetailselement>HTMLDetailsElement</a></code></td>
+ <tr><th><code><a href=#the-dfn-element>dfn</a></code></th>
+ <td>Defining instance</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-div-element>div</a></code></th>
+ <td>Generic flow container</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmldivelement>HTMLDivElement</a></code></td>
+ <tr><th><code><a href=#the-dl-element>dl</a></code></th>
+ <td>Association list consisting of zero or more name-value groups</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><code><a href=#the-dt-element>dt</a></code>*;
+ <code><a href=#the-dd-element>dd</a></code>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmldlistelement>HTMLDListElement</a></code></td>
+ <tr><th><code><a href=#the-dt-element>dt</a></code></th>
+ <td>Legend for corresponding <code><a href=#the-dd-element>dd</a></code> element(s)</td>
+ <td>none</td>
+ <td><code><a href=#the-dl-element>dl</a></code></td>
+ <td><a href=#flow-content title="Flow content">flow</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-em-element>em</a></code></th>
+ <td>Stress emphasis</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-embed-element>embed</a></code></th>
+ <td><a href=#plugin>Plugin</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#embedded-content title="Embedded content">embedded</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-embed-src><a href=#attr-embed-src>src</a></code>;
+ <code title=attr-embed-type><a href=#attr-embed-type>type</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>width</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>height</a></code>;
+ any*</td>
+ <td><code><a href=#htmlembedelement>HTMLEmbedElement</a></code></td>
+ <tr><th><code><a href=#the-fieldset-element>fieldset</a></code></th>
+ <td>Group of form controls</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#sectioning-root title="Sectioning root">sectioning root</a>;
+ <a href=#category-listed title=category-listed>listed</a>;
+ <a href=#form-associated-element title="Form-associated element">form-associated</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><code><a href=#the-legend-element>legend</a></code>*;
+ <a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-fieldset-disabled><a href=#attr-fieldset-disabled>disabled</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>name</a></code></td>
+ <td><code><a href=#htmlfieldsetelement>HTMLFieldSetElement</a></code></td>
+ <tr><th><code><a href=#the-figcaption-element>figcaption</a></code></th>
+ <td>Caption for <code><a href=#the-figure-element>figure</a></code></td>
+ <td>none</td>
+ <td><code><a href=#the-figure-element>figure</a></code></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-figure-element>figure</a></code></th>
+ <td>Figure with optional caption</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#sectioning-root title="Sectioning root">sectioning root</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><code><a href=#the-figcaption-element>figcaption</a></code>*;
+ <a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-footer-element>footer</a></code></th>
+ <td>Footer for a page or section</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-form-element>form</a></code></th>
+ <td>User-submittable form</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-form-accept-charset><a href=#attr-form-accept-charset>accept-charset</a></code>;
+ <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>;
+ <code title=attr-form-autocomplete><a href=#attr-form-autocomplete>autocomplete</a></code>;
+ <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>;
+ <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>;
+ <code title=attr-form-name><a href=#attr-form-name>name</a></code>;
+ <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>;
+ <code title=attr-fs-target><a href=#attr-fs-target>target</a></code></td>
+ <td><code><a href=#htmlformelement>HTMLFormElement</a></code></td>
+ <tr><th><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code></th>
+ <td>Section heading</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#heading-content title="Heading content">heading</a></td>
+ <td><code><a href=#the-hgroup-element>hgroup</a></code>;
+ <a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlheadingelement>HTMLHeadingElement</a></code></td>
+ <tr><th><code><a href=#the-head-element>head</a></code></th>
+ <td>Container for document metadata</td>
+ <td>none</td>
+ <td><code><a href=#the-html-element>html</a></code></td>
+ <td><a href=#metadata-content title="Metadata content">metadata content</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlheadelement>HTMLHeadElement</a></code></td>
+ <tr><th><code><a href=#the-header-element>header</a></code></th>
+ <td>Introductory or navigational aids for a page or section</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-hgroup-element>hgroup</a></code></th>
+ <td>heading group</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#heading-content title="Heading content">heading</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td>One or more <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, and/or <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-hr-element>hr</a></code></th>
+ <td>Thematic break</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlhrelement>HTMLHRElement</a></code></td>
+ <tr><th><code><a href=#the-html-element>html</a></code></th>
+ <td>Root element</td>
+ <td>none</td>
+ <td>none*</td>
+ <td><code><a href=#the-head-element>head</a></code>*;
+ <code><a href=#the-body-element>body</a></code>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code></td>
+ <td><code><a href=#htmlhtmlelement>HTMLHtmlElement</a></code></td>
+ <tr><th><code><a href=#the-i-element>i</a></code></th>
+ <td>Alternate voice</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-iframe-element>iframe</a></code></th>
+ <td><a href=#nested-browsing-context>Nested browsing context</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#embedded-content title="Embedded content">embedded</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td>text*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code>;
+ <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code>;
+ <code title=attr-iframe-name><a href=#attr-iframe-name>name</a></code>;
+ <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code>;
+ <code title=attr-iframe-seamless><a href=#attr-iframe-seamless>seamless</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>width</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>height</a></code></td>
+ <td><code><a href=#htmliframeelement>HTMLIFrameElement</a></code></td>
+ <tr><th><code><a href=#the-img-element>img</a></code></th>
+ <td>Image</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#embedded-content title="Embedded content">embedded</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a>*</td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code>;
+ <code title=attr-img-src><a href=#attr-img-src>src</a></code>;
+ <code title=attr-img-crossorigin><a href=#attr-img-crossorigin>crossorigin</a></code>;
+ <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code>;
+ <code title=attr-img-ismap><a href=#attr-img-ismap>ismap</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>width</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>height</a></code></td>
+ <td><code><a href=#htmlimageelement>HTMLImageElement</a></code></td>
+ <tr><th><code><a href=#the-input-element>input</a></code></th>
+ <td>Form control</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a>*;
+ <a href=#category-listed title=category-listed>listed</a>;
+ <a href=#category-label title=category-label>labelable</a>;
+ <a href=#category-submit title=category-submit>submittable</a>;
+ <a href=#category-reset title=category-reset>resettable</a>;
+ <a href=#form-associated-element title="Form-associated element">form-associated</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code>;
+ <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code>;
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>;
+ <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>;
+ <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>;
+ <code title=attr-input-dirname><a href=#attr-input-dirname>dirname</a></code>;
+ <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code>;
+ <code title=attr-fs-formaction><a href=#attr-fs-formaction>formaction</a></code>;
+ <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>formenctype</a></code>;
+ <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>formmethod</a></code>;
+ <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>formnovalidate</a></code>;
+ <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>height</a></code>;
+ <code title=attr-input-list><a href=#attr-input-list>list</a></code>;
+ <code title=attr-input-max><a href=#attr-input-max>max</a></code>;
+ <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>;
+ <code title=attr-input-min><a href=#attr-input-min>min</a></code>;
+ <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>;
+ <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>;
+ <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>;
+ <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>;
+ <code title=attr-input-required><a href=#attr-input-required>required</a></code>;
+ <code title=attr-input-size><a href=#attr-input-size>size</a></code>;
+ <code title=attr-input-src><a href=#attr-input-src>src</a></code>;
+ <code title=attr-input-step><a href=#attr-input-step>step</a></code>;
+ <code title=attr-input-type><a href=#attr-input-type>type</a></code>;
+ <code title=attr-input-value><a href=#attr-input-value>value</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>width</a></code></td>
+ <td><code><a href=#htmlinputelement>HTMLInputElement</a></code></td>
+ <tr><th><code><a href=#the-ins-element>ins</a></code></th>
+ <td>An addition to the document</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#transparent>transparent</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-mod-cite><a href=#attr-mod-cite>cite</a></code>;
+ <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code></td>
+ <td><code><a href=#htmlmodelement>HTMLModElement</a></code></td>
+ <tr><th><code><a href=#the-kbd-element>kbd</a></code></th>
+ <td>User input</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-keygen-element>keygen</a></code></th>
+ <td>Cryptographic key-pair generator form control</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a>;
+ <a href=#category-listed title=category-listed>listed</a>;
+ <a href=#category-label title=category-label>labelable</a>;
+ <a href=#category-submit title=category-submit>submittable</a>;
+ <a href=#category-reset title=category-reset>resettable</a>;
+ <a href=#form-associated-element title="Form-associated element">form-associated</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>;
+ <code title=attr-keygen-challenge><a href=#attr-keygen-challenge>challenge</a></code>;
+ <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code>;
+ <code title=attr-keygen-keytype><a href=#attr-keygen-keytype>keytype</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>name</a></code></td>
+ <td><code><a href=#htmlkeygenelement>HTMLKeygenElement</a></code></td>
+ <tr><th><code><a href=#the-label-element>label</a></code></th>
+ <td>Caption for a form control</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a>;
+ <a href=#form-associated-element title="Form-associated element">form-associated</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code>;
+ <code title=attr-label-for><a href=#attr-label-for>for</a></code></td>
+ <td><code><a href=#htmllabelelement>HTMLLabelElement</a></code></td>
+ <tr><th><code><a href=#the-legend-element>legend</a></code></th>
+ <td>Caption for <code><a href=#the-fieldset-element>fieldset</a></code></td>
+ <td>none</td>
+ <td><code><a href=#the-fieldset-element>fieldset</a></code></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmllegendelement>HTMLLegendElement</a></code></td>
+ <tr><th><code><a href=#the-li-element>li</a></code></th>
+ <td>List item</td>
+ <td>none</td>
+ <td><code><a href=#the-ol-element>ol</a></code>; <code><a href=#the-ul-element>ul</a></code>; <code><a href=#the-menu-element>menu</a></code></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-li-value><a href=#attr-li-value>value</a></code>*</td>
+ <td><code><a href=#htmllielement>HTMLLIElement</a></code></td>
+ <tr><th><code><a href=#the-link-element>link</a></code></th>
+ <td>Link metadata</td>
+ <td><a href=#metadata-content title="Metadata content">metadata</a>;
+ <a href=#flow-content title="Flow content">flow</a>*;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><code><a href=#the-head-element>head</a></code>;
+ <code><a href=#the-noscript-element>noscript</a></code>*;
+ <a href=#phrasing-content title="phrasing content">phrasing</a>*</td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-link-href><a href=#attr-link-href>href</a></code>;
+ <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code>;
+ <code title=attr-link-media><a href=#attr-link-media>media</a></code>;
+ <code title=attr-link-hreflang><a href=#attr-link-hreflang>hreflang</a></code>;
+ <code title=attr-link-type><a href=#attr-link-type>type</a></code>;
+ <code title=attr-link-sizes><a href=#attr-link-sizes>sizes</a></code></td>
+ <td><code><a href=#htmllinkelement>HTMLLinkElement</a></code></td>
+ <tr><th><code><a href=#the-map-element>map</a></code></th>
+ <td><a href=#image-map>Image map</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#transparent>transparent</a>;
+ <code><a href=#the-area-element>area</a></code>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-map-name><a href=#attr-map-name>name</a></code></td>
+ <td><code><a href=#htmlmapelement>HTMLMapElement</a></code></td>
+ <tr><th><code><a href=#the-mark-element>mark</a></code></th>
+ <td>Highlight</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-menu-element>menu</a></code></th>
+ <td>Menu of commands</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a>*</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><code><a href=#the-li-element>li</a></code>*;
+ <a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-menu-type><a href=#attr-menu-type>type</a></code>;
+ <code title=attr-menu-label><a href=#attr-menu-label>label</a></code></td>
+ <td><code><a href=#htmlmenuelement>HTMLMenuElement</a></code></td>
+ <tr><th><code><a href=#the-meta-element>meta</a></code></th>
+ <td>Text metadata</td>
+ <td><a href=#metadata-content title="Metadata content">metadata</a>;
+ <a href=#flow-content title="Flow content">flow</a>*;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><code><a href=#the-head-element>head</a></code>;
+ <code><a href=#the-noscript-element>noscript</a></code>*;
+ <a href=#phrasing-content title="phrasing content">phrasing</a>*</td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-meta-name><a href=#attr-meta-name>name</a></code>;
+ <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code>;
+ <code title=attr-meta-content><a href=#attr-meta-content>content</a></code>;
+ <code title=attr-meta-charset><a href=#attr-meta-charset>charset</a></code></td>
+ <td><code><a href=#htmlmetaelement>HTMLMetaElement</a></code></td>
+ <tr><th><code><a href=#the-meter-element>meter</a></code></th>
+ <td>Gauge</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#category-label title=category-label>labelable</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-meter-value><a href=#attr-meter-value>value</a></code>;
+ <code title=attr-meter-min><a href=#attr-meter-min>min</a></code>;
+ <code title=attr-meter-max><a href=#attr-meter-max>max</a></code>;
+ <code title=attr-meter-low><a href=#attr-meter-low>low</a></code>;
+ <code title=attr-meter-high><a href=#attr-meter-high>high</a></code>;
+ <code title=attr-meter-optimum><a href=#attr-meter-optimum>optimum</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code></td>
+ <td><code><a href=#htmlmeterelement>HTMLMeterElement</a></code></td>
+ <tr><th><code><a href=#the-nav-element>nav</a></code></th>
+ <td>Section with navigational links</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#sectioning-content title="Sectioning content">sectioning</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-noscript-element>noscript</a></code></th>
+ <td>Fallback content for script</td>
+ <td><a href=#metadata-content title="Metadata content">metadata</a>;
+ <a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><code><a href=#the-head-element>head</a></code>*;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td>varies*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-object-element>object</a></code></th>
+ <td>Image, <a href=#nested-browsing-context>nested browsing context</a>, or <a href=#plugin>plugin</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#embedded-content title="Embedded content">embedded</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a>*;
+ <a href=#category-listed title=category-listed>listed</a>;
+ <a href=#category-submit title=category-submit>submittable</a>;
+ <a href=#form-associated-element title="Form-associated element">form-associated</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><code><a href=#the-param-element>param</a></code>*;
+ <a href=#transparent>transparent</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-object-data><a href=#attr-object-data>data</a></code>;
+ <code title=attr-object-type><a href=#attr-object-type>type</a></code>;
+ <code title=attr-object-typemustmatch><a href=#attr-object-typemustmatch>typemustmatch</a></code>;
+ <code title=attr-object-name><a href=#attr-object-name>name</a></code>;
+ <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>width</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>height</a></code></td>
+ <td><code><a href=#htmlobjectelement>HTMLObjectElement</a></code></td>
+ <tr><th><code><a href=#the-ol-element>ol</a></code></th>
+ <td>Ordered list</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><code><a href=#the-li-element>li</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-ol-reversed><a href=#attr-ol-reversed>reversed</a></code>;
+ <code title=attr-ol-start><a href=#attr-ol-start>start</a></code></td>
+ <td><code><a href=#htmlolistelement>HTMLOListElement</a></code></td>
+ <tr><th><code><a href=#the-optgroup-element>optgroup</a></code></th>
+ <td>Group of options in a list box</td>
+ <td>none</td>
+ <td><code><a href=#the-select-element>select</a></code></td>
+ <td><code><a href=#the-option-element>option</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-optgroup-disabled><a href=#attr-optgroup-disabled>disabled</a></code>;
+ <code title=attr-optgroup-label><a href=#attr-optgroup-label>label</a></code></td>
+ <td><code><a href=#htmloptgroupelement>HTMLOptGroupElement</a></code></td>
+ <tr><th><code><a href=#the-option-element>option</a></code></th>
+ <td>Option in a list box or combo box control</td>
+ <td>none</td>
+ <td><code><a href=#the-select-element>select</a></code>;
+ <code><a href=#the-datalist-element>datalist</a></code>;
+ <code><a href=#the-optgroup-element>optgroup</a></code></td>
+ <td><a href=#text-content title="text content">text</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-option-disabled><a href=#attr-option-disabled>disabled</a></code>;
+ <code title=attr-option-label><a href=#attr-option-label>label</a></code>;
+ <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code>;
+ <code title=attr-option-value><a href=#attr-option-value>value</a></code></td>
+ <td><code><a href=#htmloptionelement>HTMLOptionElement</a></code></td>
+ <tr><th><code><a href=#the-output-element>output</a></code></th>
+ <td>Calculated output value</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#category-listed title=category-listed>listed</a>;
+ <a href=#category-label title=category-label>labelable</a>;
+ <a href=#category-reset title=category-reset>resettable</a>;
+ <a href=#form-associated-element title="Form-associated element">form-associated</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-output-for><a href=#attr-output-for>for</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>name</a></code></td>
+ <td><code><a href=#htmloutputelement>HTMLOutputElement</a></code></td>
+ <tr><th><code><a href=#the-p-element>p</a></code></th>
+ <td>Paragraph</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlparagraphelement>HTMLParagraphElement</a></code></td>
+ <tr><th><code><a href=#the-param-element>param</a></code></th>
+ <td>Parameter for <code><a href=#the-object-element>object</a></code></td>
+ <td>none</td>
+ <td><code><a href=#the-object-element>object</a></code></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-param-name><a href=#attr-param-name>name</a></code>;
+ <code title=attr-param-value><a href=#attr-param-value>value</a></code></td>
+ <td><code><a href=#htmlparamelement>HTMLParamElement</a></code></td>
+ <tr><th><code><a href=#the-pre-element>pre</a></code></th>
+ <td>Block of preformatted text</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlpreelement>HTMLPreElement</a></code></td>
+ <tr><th><code><a href=#the-progress-element>progress</a></code></th>
+ <td>Progress bar</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#category-label title=category-label>labelable</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-progress-value><a href=#attr-progress-value>value</a></code>;
+ <code title=attr-progress-max><a href=#attr-progress-max>max</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code></td>
+ <td><code><a href=#htmlprogresselement>HTMLProgressElement</a></code></td>
+ <tr><th><code><a href=#the-q-element>q</a></code></th>
+ <td>Quotation</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-q-cite><a href=#attr-q-cite>cite</a></code></td>
+ <td><code><a href=#htmlquoteelement>HTMLQuoteElement</a></code></td>
+ <tr><th><code><a href=#the-rp-element>rp</a></code></th>
+ <td>Parenthesis for ruby annotation text</td>
+ <td>none</td>
+ <td><code><a href=#the-ruby-element>ruby</a></code></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-rt-element>rt</a></code></th>
+ <td>Ruby annotation text</td>
+ <td>none</td>
+ <td><code><a href=#the-ruby-element>ruby</a></code></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-ruby-element>ruby</a></code></th>
+ <td>Ruby annotation(s)</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <code><a href=#the-rt-element>rt</a></code>;
+ <code><a href=#the-rp-element>rp</a></code>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-s-element>s</a></code></th>
+ <td>Inaccurate text</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-samp-element>samp</a></code></th>
+ <td>Computer output</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-script-element>script</a></code></th>
+ <td>Embedded script</td>
+ <td><a href=#metadata-content title="Metadata content">metadata</a>;
+ <a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><code><a href=#the-head-element>head</a></code>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td>script, data, or script documentation*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-script-src><a href=#attr-script-src>src</a></code>;
+ <code title=attr-script-async><a href=#attr-script-async>async</a></code>;
+ <code title=attr-script-defer><a href=#attr-script-defer>defer</a></code>;
+ <code title=attr-script-type><a href=#attr-script-type>type</a></code>;
+ <code title=attr-script-charset><a href=#attr-script-charset>charset</a></code></td>
+ <td><code><a href=#htmlscriptelement>HTMLScriptElement</a></code></td>
+ <tr><th><code><a href=#the-section-element>section</a></code></th>
+ <td>Generic document or application section</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#sectioning-content title="Sectioning content">sectioning</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-select-element>select</a></code></th>
+ <td>List box control</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a>;
+ <a href=#category-listed title=category-listed>listed</a>;
+ <a href=#category-label title=category-label>labelable</a>;
+ <a href=#category-submit title=category-submit>submittable</a>;
+ <a href=#category-reset title=category-reset>resettable</a>;
+ <a href=#form-associated-element title="Form-associated element">form-associated</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><code><a href=#the-option-element>option</a></code>, <code><a href=#the-optgroup-element>optgroup</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>;
+ <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code>;
+ <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>;
+ <code title=attr-select-required><a href=#attr-select-required>required</a></code>;
+ <code title=attr-select-size><a href=#attr-select-size>size</a></code></td>
+ <td><code><a href=#htmlselectelement>HTMLSelectElement</a></code></td>
+ <tr><th><code><a href=#the-small-element>small</a></code></th>
+ <td>Side comment</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-source-element>source</a></code></th>
+ <td>Media source for <code><a href=#the-video-element>video</a></code> or <code><a href=#the-audio-element>audio</a></code></td>
+ <td>none</td>
+ <td><code><a href=#the-video-element>video</a></code>;
+ <code><a href=#the-audio-element>audio</a></code></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-source-src><a href=#attr-source-src>src</a></code>;
+ <code title=attr-source-type><a href=#attr-source-type>type</a></code>;
+ <code title=attr-source-media><a href=#attr-source-media>media</a></code></td>
+ <td><code><a href=#htmlsourceelement>HTMLSourceElement</a></code></td>
+ <tr><th><code><a href=#the-span-element>span</a></code></th>
+ <td>Generic phrasing container</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlspanelement>HTMLSpanElement</a></code></td>
+ <tr><th><code><a href=#the-strong-element>strong</a></code></th>
+ <td>Importance</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-style-element>style</a></code></th>
+ <td>Embedded styling information</td>
+ <td><a href=#metadata-content title="Metadata content">metadata</a>;
+ <a href=#flow-content title="Flow content">flow</a></td>
+ <td><code><a href=#the-head-element>head</a></code>;
+ <code><a href=#the-noscript-element>noscript</a></code>*;
+ <a href=#flow-content title="flow content">flow</a>*</td>
+ <td>varies*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-style-media><a href=#attr-style-media>media</a></code>;
+ <code title=attr-style-type><a href=#attr-style-type>type</a></code>;
+ <code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code></td>
+ <td><code><a href=#htmlstyleelement>HTMLStyleElement</a></code></td>
+ <tr><th><code><a href=#the-sub-and-sup-elements>sub</a></code></th>
+ <td>Subscript</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-summary-element>summary</a></code></th>
+ <td>Caption for <code><a href=#the-details-element>details</a></code></td>
+ <td>none</td>
+ <td><code><a href=#the-details-element>details</a></code></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-sub-and-sup-elements>sup</a></code></th>
+ <td>Superscript</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-table-element>table</a></code></th>
+ <td>Table</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><code><a href=#the-caption-element>caption</a></code>*;
+ <code><a href=#the-colgroup-element>colgroup</a></code>*;
+ <code><a href=#the-thead-element>thead</a></code>*;
+ <code><a href=#the-tbody-element>tbody</a></code>*;
+ <code><a href=#the-tfoot-element>tfoot</a></code>*;
+ <code><a href=#the-tr-element>tr</a></code>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-table-border><a href=#attr-table-border>border</a></code></td>
+ <td><code><a href=#htmltableelement>HTMLTableElement</a></code></td>
+ <tr><th><code><a href=#the-tbody-element>tbody</a></code></th>
+ <td>Group of rows in a table</td>
+ <td>none</td>
+ <td><code><a href=#the-table-element>table</a></code></td>
+ <td><code><a href=#the-tr-element>tr</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmltablesectionelement>HTMLTableSectionElement</a></code></td>
+ <tr><th><code><a href=#the-td-element>td</a></code></th>
+ <td>Table cell</td>
+ <td><a href=#sectioning-root title="Sectioning root">sectioning root</a></td>
+ <td><code><a href=#the-tr-element>tr</a></code></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code>;
+ <code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>rowspan</a></code>;
+ <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code></td>
+ <td><code><a href=#htmltabledatacellelement>HTMLTableDataCellElement</a></code></td>
+ <tr><th><code><a href=#the-textarea-element>textarea</a></code></th>
+ <td>Multiline text field</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a>;
+ <a href=#category-listed title=category-listed>listed</a>;
+ <a href=#category-label title=category-label>labelable</a>;
+ <a href=#category-submit title=category-submit>submittable</a>;
+ <a href=#category-reset title=category-reset>resettable</a>;
+ <a href=#form-associated-element title="Form-associated element">form-associated</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#text-content title="text content">text</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>;
+ <code title=attr-textarea-cols><a href=#attr-textarea-cols>cols</a></code>;
+ <code title=attr-textarea-dirname><a href=#attr-textarea-dirname>dirname</a></code>;
+ <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code>;
+ <code title=attr-textarea-maxlength><a href=#attr-textarea-maxlength>maxlength</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>;
+ <code title=attr-textarea-placeholder><a href=#attr-textarea-placeholder>placeholder</a></code>;
+ <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code>;
+ <code title=attr-textarea-required><a href=#attr-textarea-required>required</a></code>;
+ <code title=attr-textarea-rows><a href=#attr-textarea-rows>rows</a></code>;
+ <code title=attr-textarea-wrap><a href=#attr-textarea-wrap>wrap</a></code></td>
+ <td><code><a href=#htmltextareaelement>HTMLTextAreaElement</a></code></td>
+ <tr><th><code><a href=#the-tfoot-element>tfoot</a></code></th>
+ <td>Group of footer rows in a table</td>
+ <td>none</td>
+ <td><code><a href=#the-table-element>table</a></code></td>
+ <td><code><a href=#the-tr-element>tr</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmltablesectionelement>HTMLTableSectionElement</a></code></td>
+ <tr><th><code><a href=#the-th-element>th</a></code></th>
+ <td>Table header cell</td>
+ <td>none</td>
+ <td><code><a href=#the-tr-element>tr</a></code></td>
+ <td><a href=#flow-content title="Flow content">flow</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code>;
+ <code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>rowspan</a></code>;
+ <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code>;
+ <code title=attr-th-scope><a href=#attr-th-scope>scope</a></code></td>
+ <td><code><a href=#htmltableheadercellelement>HTMLTableHeaderCellElement</a></code></td>
+ <tr><th><code><a href=#the-thead-element>thead</a></code></th>
+ <td>Group of heading rows in a table</td>
+ <td>none</td>
+ <td><code><a href=#the-table-element>table</a></code></td>
+ <td><code><a href=#the-tr-element>tr</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmltablesectionelement>HTMLTableSectionElement</a></code></td>
+ <tr><th><code><a href=#the-time-element>time</a></code></th>
+ <td>Date and/or time</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-time-datetime><a href=#attr-time-datetime>datetime</a></code>;
+ <code title=attr-time-pubdate><a href=#attr-time-pubdate>pubdate</a></code></td>
+ <td><code><a href=#htmltimeelement>HTMLTimeElement</a></code></td>
+ <tr><th><code><a href=#the-title-element>title</a></code></th>
+ <td>Document title</td>
+ <td><a href=#metadata-content title="Metadata content">metadata</a></td>
+ <td><code><a href=#the-head-element>head</a></code></td>
+ <td><a href=#text-content title="text content">text</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmltitleelement>HTMLTitleElement</a></code></td>
+ <tr><th><code><a href=#the-tr-element>tr</a></code></th>
+ <td>Table row</td>
+ <td>none</td>
+ <td><code><a href=#the-table-element>table</a></code>;
+ <code><a href=#the-thead-element>thead</a></code>;
+ <code><a href=#the-tbody-element>tbody</a></code>;
+ <code><a href=#the-tfoot-element>tfoot</a></code></td>
+ <td><code><a href=#the-th-element>th</a></code>*;
+ <code><a href=#the-td-element>td</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmltablerowelement>HTMLTableRowElement</a></code></td>
+ <tr><th><code><a href=#the-track-element>track</a></code></th>
+ <td>Timed text track</td>
+ <td>none</td>
+ <td><code><a href=#the-audio-element>audio</a></code>;
+ <code><a href=#the-video-element>video</a></code></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-track-default><a href=#attr-track-default>default</a></code>;
+ <code title=attr-track-kind><a href=#attr-track-kind>kind</a></code>;
+ <code title=attr-track-label><a href=#attr-track-label>label</a></code>;
+ <code title=attr-track-src><a href=#attr-track-src>src</a></code>;
+ <code title=attr-track-srclang><a href=#attr-track-srclang>srclang</a></code></td>
+ <td><code><a href=#htmltrackelement>HTMLTrackElement</a></code></td>
+ <tr><th><code><a href=#the-u-element>u</a></code></th>
+ <td>Keywords</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-ul-element>ul</a></code></th>
+ <td>List</td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><a href=#flow-content title="Flow content">flow</a></td>
+ <td><code><a href=#the-li-element>li</a></code></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlulistelement>HTMLUListElement</a></code></td>
+ <tr><th><code><a href=#the-var-element>var</a></code></th>
+ <td>Variable</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ <tr><th><code><a href=#the-video-element>video</a></code></th>
+ <td>Video player</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a>;
+ <a href=#embedded-content title="Embedded content">embedded</a>;
+ <a href=#interactive-content title="Interactive content">interactive</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><code><a href=#the-source-element>source</a></code>*;
+ <a href=#transparent>transparent</a>*</td>
+ <td><a href=#global-attributes title="global attributes">globals</a>;
+ <code title=attr-media-src><a href=#attr-media-src>src</a></code>;
+ <code title=attr-media-crossorigin><a href=#attr-media-crossorigin>crossorigin</a></code>;
+ <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code>;
+ <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>;
+ <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>;
+ <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>;
+ <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>;
+ <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>;
+ <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>width</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>height</a></code></td>
+ <td><code><a href=#htmlvideoelement>HTMLVideoElement</a></code></td>
+ <tr><th><code><a href=#the-wbr-element>wbr</a></code></th>
+ <td>Line breaking opportunity</td>
+ <td><a href=#flow-content title="Flow content">flow</a>;
+ <a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td><a href=#phrasing-content title="Phrasing content">phrasing</a></td>
+ <td>empty</td>
+ <td><a href=#global-attributes title="global attributes">globals</a></td>
+ <td><code><a href=#htmlelement>HTMLElement</a></code></td>
+ </table><p>An asterisk (*) in a cell indicates that the actual rules are more complicated than indicated in the table above.</p>
+
+ <p>&dagger; Categories in the "Parents" column refer to parents that
+ list the given categories in their content model, not to elements
+ that themselves are in those categories. For example, the
+ <code><a href=#the-a-element>a</a></code> element's "Parents" column says "phrasing", so any
+ element whose content model contains the "phrasing" category could
+ be a parent of an <code><a href=#the-a-element>a</a></code> element. Since the "flow" category
+ includes all the "phrasing" elements, that means the
+ <code><a href=#the-address-element>address</a></code> element could be a parent to an <code><a href=#the-a-element>a</a></code>
+ element.</p>
+
+
+
+ <h3 class=no-num id=element-content-categories>Element content categories</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <!-- when updating this also check the category-list <ul>s -->
+
+ <table><caption>List of element content categories</caption>
+ <thead><tr><th> Category
+ <th> Elements
+ <th> Elements with exceptions
+ <tbody><tr><td> <a href=#metadata-content>Metadata content</a>
+ <td>
+ <code><a href=#the-base-element>base</a></code>;
+ <code><a href=#the-command-element>command</a></code>;
+ <code><a href=#the-link-element>link</a></code>;
+ <code><a href=#the-meta-element>meta</a></code>;
+ <code><a href=#the-noscript-element>noscript</a></code>;
+ <code><a href=#the-script-element>script</a></code>;
+ <code><a href=#the-style-element>style</a></code>;
+ <code><a href=#the-title-element>title</a></code>
+ <td>
+ &mdash;
+
+ <tr><td> <a href=#flow-content>Flow content</a>
+ <td>
+ <code><a href=#the-a-element>a</a></code>;
+ <code><a href=#the-abbr-element>abbr</a></code>;
+ <code><a href=#the-address-element>address</a></code>;
+ <code><a href=#the-article-element>article</a></code>;
+ <code><a href=#the-aside-element>aside</a></code>;
+ <code><a href=#the-audio-element>audio</a></code>;
+ <code><a href=#the-b-element>b</a></code>;
+ <code><a href=#the-bdi-element>bdi</a></code>;
+ <code><a href=#the-bdo-element>bdo</a></code>;
+ <code><a href=#the-blockquote-element>blockquote</a></code>;
+ <code><a href=#the-br-element>br</a></code>;
+ <code><a href=#the-button-element>button</a></code>;
+ <code><a href=#the-canvas-element>canvas</a></code>;
+ <code><a href=#the-cite-element>cite</a></code>;
+ <code><a href=#the-code-element>code</a></code>;
+ <code><a href=#the-command-element>command</a></code>;
+ <code><a href=#the-datalist-element>datalist</a></code>;
+ <code><a href=#the-del-element>del</a></code>;
+ <code><a href=#the-details-element>details</a></code>;
+ <code><a href=#the-dfn-element>dfn</a></code>;
+ <code><a href=#the-div-element>div</a></code>;
+ <code><a href=#the-dl-element>dl</a></code>;
+ <code><a href=#the-em-element>em</a></code>;
+ <code><a href=#the-embed-element>embed</a></code>;
+ <code><a href=#the-fieldset-element>fieldset</a></code>;
+ <code><a href=#the-figure-element>figure</a></code>;
+ <code><a href=#the-footer-element>footer</a></code>;
+ <code><a href=#the-form-element>form</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>;
+ <code><a href=#the-header-element>header</a></code>;
+ <code><a href=#the-hgroup-element>hgroup</a></code>;
+ <code><a href=#the-hr-element>hr</a></code>;
+ <code><a href=#the-i-element>i</a></code>;
+ <code><a href=#the-iframe-element>iframe</a></code>;
+ <code><a href=#the-img-element>img</a></code>;
+ <code><a href=#the-input-element>input</a></code>;
+ <code><a href=#the-ins-element>ins</a></code>;
+ <code><a href=#the-kbd-element>kbd</a></code>;
+ <code><a href=#the-keygen-element>keygen</a></code>;
+ <code><a href=#the-label-element>label</a></code>;
+ <code><a href=#the-map-element>map</a></code>;
+ <code><a href=#the-mark-element>mark</a></code>;
+ <code><a href=#math>math</a></code>;
+ <code><a href=#the-menu-element>menu</a></code>;
+ <code><a href=#the-meter-element>meter</a></code>;
+ <code><a href=#the-nav-element>nav</a></code>;
+ <code><a href=#the-noscript-element>noscript</a></code>;
+ <code><a href=#the-object-element>object</a></code>;
+ <code><a href=#the-ol-element>ol</a></code>;
+ <code><a href=#the-output-element>output</a></code>;
+ <code><a href=#the-p-element>p</a></code>;
+ <code><a href=#the-pre-element>pre</a></code>;
+ <code><a href=#the-progress-element>progress</a></code>;
+ <code><a href=#the-q-element>q</a></code>;
+ <code><a href=#the-ruby-element>ruby</a></code>;
+ <code><a href=#the-s-element>s</a></code>;
+ <code><a href=#the-samp-element>samp</a></code>;
+ <code><a href=#the-script-element>script</a></code>;
+ <code><a href=#the-section-element>section</a></code>;
+ <code><a href=#the-select-element>select</a></code>;
+ <code><a href=#the-small-element>small</a></code>;
+ <code><a href=#the-span-element>span</a></code>;
+ <code><a href=#the-strong-element>strong</a></code>;
+ <code><a href=#the-sub-and-sup-elements>sub</a></code>;
+ <code><a href=#the-sub-and-sup-elements>sup</a></code>;
+ <code><a href=#svg>svg</a></code>;
+ <code><a href=#the-table-element>table</a></code>;
+ <code><a href=#the-textarea-element>textarea</a></code>;
+ <code><a href=#the-time-element>time</a></code>;
+ <code><a href=#the-u-element>u</a></code>;
+ <code><a href=#the-ul-element>ul</a></code>;
+ <code><a href=#the-var-element>var</a></code>;
+ <code><a href=#the-video-element>video</a></code>;
+ <code><a href=#the-wbr-element>wbr</a></code>;
+ <a href=#text-content title="text content">Text</a>
+ <td>
+ <code><a href=#the-area-element>area</a></code> (if it is a descendant of a <code><a href=#the-map-element>map</a></code> element);
+ <!--MD-->
+ <code><a href=#the-link-element>link</a></code> (if the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present);
+ <code><a href=#the-meta-element>meta</a></code> (if the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present);
+ <!--MD-->
+ <code><a href=#the-style-element>style</a></code> (if the <code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code> attribute is present)
+
+ <tr><td> <a href=#sectioning-content>Sectioning content</a>
+ <td>
+ <code><a href=#the-article-element>article</a></code>;
+ <code><a href=#the-aside-element>aside</a></code>;
+ <code><a href=#the-nav-element>nav</a></code>;
+ <code><a href=#the-section-element>section</a></code>
+ <td>
+ &mdash;
+
+ <tr><td> <a href=#heading-content>Heading content</a>
+ <td>
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>;
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>;
+ <code><a href=#the-hgroup-element>hgroup</a></code>
+ <td>
+ &mdash;
+
+ <tr><td> <a href=#phrasing-content>Phrasing content</a>
+ <td>
+ <code><a href=#the-abbr-element>abbr</a></code>;
+ <code><a href=#the-audio-element>audio</a></code>;
+ <code><a href=#the-b-element>b</a></code>;
+ <code><a href=#the-bdi-element>bdi</a></code>;
+ <code><a href=#the-bdo-element>bdo</a></code>;
+ <code><a href=#the-br-element>br</a></code>;
+ <code><a href=#the-button-element>button</a></code>;
+ <code><a href=#the-canvas-element>canvas</a></code>;
+ <code><a href=#the-cite-element>cite</a></code>;
+ <code><a href=#the-code-element>code</a></code>;
+ <code><a href=#the-command-element>command</a></code>;
+ <code><a href=#the-datalist-element>datalist</a></code>;
+ <code><a href=#the-dfn-element>dfn</a></code>;
+ <code><a href=#the-em-element>em</a></code>;
+ <code><a href=#the-embed-element>embed</a></code>;
+ <code><a href=#the-i-element>i</a></code>;
+ <code><a href=#the-iframe-element>iframe</a></code>;
+ <code><a href=#the-img-element>img</a></code>;
+ <code><a href=#the-input-element>input</a></code>;
+ <code><a href=#the-kbd-element>kbd</a></code>;
+ <code><a href=#the-keygen-element>keygen</a></code>;
+ <code><a href=#the-label-element>label</a></code>;
+ <code><a href=#the-mark-element>mark</a></code>;
+ <code><a href=#math>math</a></code>;
+ <code><a href=#the-meter-element>meter</a></code>;
+ <code><a href=#the-noscript-element>noscript</a></code>;
+ <code><a href=#the-object-element>object</a></code>;
+ <code><a href=#the-output-element>output</a></code>;
+ <code><a href=#the-progress-element>progress</a></code>;
+ <code><a href=#the-q-element>q</a></code>;
+ <code><a href=#the-ruby-element>ruby</a></code>;
+ <code><a href=#the-s-element>s</a></code>;
+ <code><a href=#the-samp-element>samp</a></code>;
+ <code><a href=#the-script-element>script</a></code>;
+ <code><a href=#the-select-element>select</a></code>;
+ <code><a href=#the-small-element>small</a></code>;
+ <code><a href=#the-span-element>span</a></code>;
+ <code><a href=#the-strong-element>strong</a></code>;
+ <code><a href=#the-sub-and-sup-elements>sub</a></code>;
+ <code><a href=#the-sub-and-sup-elements>sup</a></code>;
+ <code><a href=#svg>svg</a></code>;
+ <code><a href=#the-textarea-element>textarea</a></code>;
+ <code><a href=#the-time-element>time</a></code>;
+ <code><a href=#the-u-element>u</a></code>;
+ <code><a href=#the-var-element>var</a></code>;
+ <code><a href=#the-video-element>video</a></code>;
+ <code><a href=#the-wbr-element>wbr</a></code>;
+ <a href=#text-content title="text content">Text</a>
+ <td>
+ <code><a href=#the-a-element>a</a></code> (if it contains only <a href=#phrasing-content>phrasing content</a>);
+ <code><a href=#the-area-element>area</a></code> (if it is a descendant of a <code><a href=#the-map-element>map</a></code> element);
+ <code><a href=#the-del-element>del</a></code> (if it contains only <a href=#phrasing-content>phrasing content</a>);
+ <code><a href=#the-ins-element>ins</a></code> (if it contains only <a href=#phrasing-content>phrasing content</a>);
+ <!--MD-->
+ <code><a href=#the-link-element>link</a></code> (if the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present);
+ <!--MD-->
+ <code><a href=#the-map-element>map</a></code> (if it contains only <a href=#phrasing-content>phrasing content</a>)<!--
+ --><!--MD--><!--
+ -->; <code><a href=#the-meta-element>meta</a></code> (if the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present)<!--
+ --><!--MD--><!--
+ -->
+
+ <tr><td> <a href=#embedded-content>Embedded content</a>
+ <td>
+ <code><a href=#the-audio-element>audio</a></code>
+ <code><a href=#the-canvas-element>canvas</a></code>
+ <code><a href=#the-embed-element>embed</a></code>
+ <code><a href=#the-iframe-element>iframe</a></code>
+ <code><a href=#the-img-element>img</a></code>
+ <code><a href=#math>math</a></code>
+ <code><a href=#the-object-element>object</a></code>
+ <code><a href=#svg>svg</a></code>
+ <code><a href=#the-video-element>video</a></code>
+ <td>
+ &mdash;
+
+ <tr><td> <a href=#interactive-content>Interactive content</a>
+ <td>
+ <code><a href=#the-a-element>a</a></code>;
+ <code><a href=#the-button-element>button</a></code>;
+ <code><a href=#the-details-element>details</a></code>;
+ <code><a href=#the-embed-element>embed</a></code>;
+ <code><a href=#the-iframe-element>iframe</a></code>;
+ <code><a href=#the-keygen-element>keygen</a></code>;
+ <code><a href=#the-label-element>label</a></code>;
+ <code><a href=#the-select-element>select</a></code>;
+ <code><a href=#the-textarea-element>textarea</a></code>;
+ <td>
+ <code><a href=#the-audio-element>audio</a></code> (if the <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute is present);
+ <code><a href=#the-img-element>img</a></code> (if the <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute is present);
+ <code><a href=#the-input-element>input</a></code> (if the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is <em>not</em> in the <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state);
+ <code><a href=#the-menu-element>menu</a></code> (if the <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute is in the <a href=#toolbar-state title="toolbar state">toolbar</a> state);
+ <code><a href=#the-object-element>object</a></code> (if the <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute is present)<!-- see also comment in <object> section -->;
+ <code><a href=#the-video-element>video</a></code> (if the <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute is present)
+
+ <tr><td> <a href=#sectioning-root title="sectioning root">Sectioning roots</a>
+ <td>
+ <code><a href=#the-blockquote-element>blockquote</a></code>;
+ <code><a href=#the-body-element>body</a></code>;
+ <code><a href=#the-details-element>details</a></code>;
+ <code><a href=#the-fieldset-element>fieldset</a></code>;
+ <code><a href=#the-figure-element>figure</a></code>;
+ <code><a href=#the-td-element>td</a></code>
+ <td>
+ &mdash;
+
+ <tr><td> <a href=#form-associated-element title="form-associated element">Form-associated elements</a>
+ <td>
+ <code><a href=#the-button-element>button</a></code>;
+ <code><a href=#the-fieldset-element>fieldset</a></code>;
+ <code><a href=#the-input-element>input</a></code>;
+ <code><a href=#the-keygen-element>keygen</a></code>;
+ <code><a href=#the-label-element>label</a></code>;
+ <code><a href=#the-object-element>object</a></code>;
+ <code><a href=#the-output-element>output</a></code>;
+ <code><a href=#the-select-element>select</a></code>;
+ <code><a href=#the-textarea-element>textarea</a></code>
+ <td>
+ &mdash;
+
+ <tr><td> <a href=#category-listed title=category-listed>Listed elements</a>
+ <td>
+ <code><a href=#the-button-element>button</a></code>;
+ <code><a href=#the-fieldset-element>fieldset</a></code>;
+ <code><a href=#the-input-element>input</a></code>;
+ <code><a href=#the-keygen-element>keygen</a></code>;
+ <code><a href=#the-object-element>object</a></code>;
+ <code><a href=#the-output-element>output</a></code>;
+ <code><a href=#the-select-element>select</a></code>;
+ <code><a href=#the-textarea-element>textarea</a></code>
+ <td>
+ &mdash;
+
+ <tr><td> <a href=#category-submit title=category-submit>Submittable elements</a>
+ <td>
+ <code><a href=#the-button-element>button</a></code>;
+ <code><a href=#the-input-element>input</a></code>;
+ <code><a href=#the-keygen-element>keygen</a></code>;
+ <code><a href=#the-object-element>object</a></code>;
+ <code><a href=#the-select-element>select</a></code>;
+ <code><a href=#the-textarea-element>textarea</a></code>
+ <td>
+ &mdash;
+
+ <tr><td> <a href=#category-reset title=category-reset>Resettable elements</a>
+ <td>
+ <code><a href=#the-input-element>input</a></code>;
+ <code><a href=#the-keygen-element>keygen</a></code>;
+ <code><a href=#the-output-element>output</a></code>;
+ <code><a href=#the-select-element>select</a></code>;
+ <code><a href=#the-textarea-element>textarea</a></code>
+ <td>
+ &mdash;
+
+ <tr><td> <a href=#category-label title=category-label>Labelable elements</a>
+ <td>
+ <code><a href=#the-button-element>button</a></code>;
+ <code><a href=#the-input-element>input</a></code>;
+ <code><a href=#the-keygen-element>keygen</a></code>;
+ <code><a href=#the-meter-element>meter</a></code>;
+ <code><a href=#the-output-element>output</a></code>;
+ <code><a href=#the-progress-element>progress</a></code>;
+ <code><a href=#the-select-element>select</a></code>;
+ <code><a href=#the-textarea-element>textarea</a></code>
+ <td>
+ &mdash;
+
+ </table><h3 class=no-num id=attributes-1>Attributes</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <table><caption>List of attributes (excluding event handler content attributes)</caption>
+ <thead><tr><th> Attribute
+ <th> Element(s)
+ <th> Description
+ <th> Value
+ <tbody><tr><th> <code title="">accept</code>
+ <td> <code title=attr-input-accept><a href=#attr-input-accept>input</a></code>
+ <td> Hint for expected file type in <a href=#file-upload-state title=attr-input-type-file>file upload controls</a>
+ <td> <a href=#set-of-comma-separated-tokens>Set of comma-separated tokens</a>* consisting of <a href=#valid-mime-type title="valid MIME type">valid MIME types with no parameters</a> or <code title="">audio/*</code>, <code title="">video/*</code>, or <code title="">image/*</code>
+ <tr><th> <code title="">accept-charset</code>
+ <td> <code title=attr-form-accept-charset><a href=#attr-form-accept-charset>form</a></code>
+ <td> Character encodings to use for <a href=#form-submission>form submission</a>
+ <td> <a href=#ordered-set-of-unique-space-separated-tokens>Ordered set of unique space-separated tokens</a>, <a href=#ascii-case-insensitive>ASCII case-insensitive</a>, consisting of <a href=#preferred-mime-name title="preferred MIME name">preferred MIME names</a> of <a href=#ascii-compatible-character-encoding title="ASCII-compatible character encoding">ASCII-compatible character encodings</a>*
+ <tr><th> <code title="">accesskey</code>
+ <td> <a href=#the-accesskey-attribute title=attr-accesskey>HTML elements</a>
+ <td> Keyboard shortcut to activate or focus element
+ <td> <a href=#ordered-set-of-unique-space-separated-tokens>Ordered set of unique space-separated tokens</a>, <a href=#case-sensitive>case-sensitive</a>, consisting of one Unicode code point in length
+ <tr><th> <code title="">action</code>
+ <td> <code title=attr-fs-action><a href=#attr-fs-action>form</a></code>
+ <td> <a href=#url>URL</a> to use for <a href=#form-submission>form submission</a>
+ <td> <a href=#valid-url-potentially-surrounded-by-spaces>Valid URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">alt</code>
+ <td> <code title=attr-area-alt><a href=#attr-area-alt>area</a></code>;
+ <code title=attr-img-alt><a href=#attr-img-alt>img</a></code>;
+ <code title=attr-input-alt><a href=#attr-input-alt>input</a></code>
+ <td> Replacement text for use when images are not available
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">async</code>
+ <td> <code title=attr-script-async><a href=#attr-script-async>script</a></code>
+ <td> Execute script asynchronously
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">autocomplete</code>
+ <td> <code title=attr-form-autocomplete><a href=#attr-form-autocomplete>form</a></code>;
+ <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>input</a></code>
+ <td> Prevent the user agent from providing autocompletions for the form control(s)
+ <td> "<code title="">on</code>"; "<code title="">off</code>"
+ <tr><th> <code title="">autofocus</code>
+ <td> <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>button</a></code>;
+ <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>input</a></code>;
+ <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>keygen</a></code>;
+ <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>select</a></code>;
+ <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>textarea</a></code>
+ <td> Automatically focus the form control when the page is loaded
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">autoplay</code>
+ <td> <code title=attr-media-autoplay><a href=#attr-media-autoplay>audio</a></code>;
+ <code title=attr-media-autoplay><a href=#attr-media-autoplay>video</a></code>
+ <td> Hint that the <a href=#media-resource>media resource</a> can be started automatically when the page is loaded
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">border</code>
+ <td> <code title=attr-table-border><a href=#attr-table-border>table</a></code>
+ <td> Explicit indication that the <code><a href=#the-table-element>table</a></code> element is not being used for layout purposes
+ <td> The empty string, or "<code title="">1</code>"
+ <tr><th> <code title="">challenge</code>
+ <td> <code title=attr-keygen-challenge><a href=#attr-keygen-challenge>keygen</a></code>
+ <td> String to package with the generated and signed public key
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">charset</code>
+ <td> <code title=attr-meta-charset><a href=#attr-meta-charset>meta</a></code>
+ <td> <a href=#character-encoding-declaration>Character encoding declaration</a>
+ <td> <a href=#preferred-mime-name>Preferred MIME name</a> of an encoding*
+ <tr><th> <code title="">charset</code>
+ <td> <code title=attr-script-charset><a href=#attr-script-charset>script</a></code>
+ <td> Character encoding of the external script resource
+ <td> <a href=#preferred-mime-name>Preferred MIME name</a> of an encoding*
+ <tr><th> <code title="">checked</code>
+ <td> <code title=attr-command-checked><a href=#attr-command-checked>command</a></code>;
+ <code title=attr-input-checked><a href=#attr-input-checked>input</a></code>
+ <td> Whether the command or control is checked
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">cite</code>
+ <td> <code title=attr-blockquote-cite><a href=#attr-blockquote-cite>blockquote</a></code>;
+ <code title=attr-mod-cite><a href=#attr-mod-cite>del</a></code>;
+ <code title=attr-mod-cite><a href=#attr-mod-cite>ins</a></code>;
+ <code title=attr-q-cite><a href=#attr-q-cite>q</a></code>
+ <td> Link to the source of the quotation or more information about the edit
+ <td> <a href=#valid-url-potentially-surrounded-by-spaces>Valid URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">class</code>
+ <td> <a href=#classes title=attr-class>HTML elements</a>
+ <td> Classes to which the element belongs
+ <td> <a href=#set-of-space-separated-tokens>Set of space-separated tokens</a>
+ <tr><th> <code title="">cols</code>
+ <td> <code title=attr-textarea-cols><a href=#attr-textarea-cols>textarea</a></code>
+ <td> Maximum number of characters per line
+ <td> <a href=#valid-non-negative-integer>Valid non-negative integer</a> greater than zero
+ <tr><th> <code title="">colspan</code>
+ <td> <code title=attr-tdth-colspan><a href=#attr-tdth-colspan>td</a></code>;
+ <code title=attr-tdth-colspan><a href=#attr-tdth-colspan>th</a></code>
+ <td> Number of columns that the cell is to span
+ <td> <a href=#valid-non-negative-integer>Valid non-negative integer</a> greater than zero
+ <tr><th> <code title="">content</code>
+ <td> <code title=attr-meta-content><a href=#attr-meta-content>meta</a></code>
+ <td> Value of the element
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">contenteditable</code>
+ <td> <a href=#attr-contenteditable title=attr-contenteditable>HTML elements</a>
+ <td> Whether the element is an editable
+ <td> "<code title="">true</code>"; "<code title="">false</code>"
+ <tr><th> <code title="">contextmenu</code>
+ <td> <a href=#attr-contextmenu title=attr-contextmenu>HTML elements</a>
+ <td> The element's context menu
+ <td> <a href=#concept-id title=concept-id>ID</a>*
+ <tr><th> <code title="">controls</code>
+ <td> <code title=attr-media-controls><a href=#attr-media-controls>audio</a></code>;
+ <code title=attr-media-controls><a href=#attr-media-controls>video</a></code>
+ <td> Show user agent controls
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">coords</code>
+ <td> <code title=attr-area-coords><a href=#attr-area-coords>area</a></code>
+ <td> Coordinates for the shape to be created in an <a href=#image-map>image map</a>
+ <td> <a href=#valid-list-of-integers>Valid list of integers</a>*
+ <tr><th> <code title="">crossorigin</code>
+ <td> <code title=attr-media-crossorigin><a href=#attr-media-crossorigin>audio</a></code>;
+ <code title=attr-img-crossorigin><a href=#attr-img-crossorigin>img</a></code>;
+ <code title=attr-media-crossorigin><a href=#attr-media-crossorigin>video</a></code>
+ <td> How the element handles crossorigin requests.
+ <td> "<code title=attr-crossorigin-anonymous-keyword><a href=#attr-crossorigin-anonymous-keyword>anonymous</a></code>"; "<code title=attr-crossorigin-use-credentials-keyword><a href=#attr-crossorigin-use-credentials-keyword>use-credentials</a></code>"
+ <tr><th> <code title="">data</code>
+ <td> <code title=attr-object-data><a href=#attr-object-data>object</a></code>
+ <td> Address of the resource
+ <td> <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>Valid non-empty URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">datetime</code>
+ <td> <code title=attr-mod-datetime><a href=#attr-mod-datetime>del</a></code>;
+ <code title=attr-mod-datetime><a href=#attr-mod-datetime>ins</a></code>
+ <td> Date and (optionally) time of the change
+ <td> <a href=#valid-date-string-with-optional-time>Valid date string with optional time</a>
+ <tr><th> <code title="">datetime</code>
+ <td> <code title=attr-time-datetime><a href=#attr-time-datetime>time</a></code>
+ <td> Value of the element
+ <td> <a href=#valid-date-or-time-string>Valid date or time string</a>*
+ <tr><th> <code title="">default</code>
+ <td> <code title=attr-track-default><a href=#attr-track-default>track</a></code>
+ <td> Enable the track if no other <a href=#text-track>text track</a> is more suitable.
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">defer</code>
+ <td> <code title=attr-script-defer><a href=#attr-script-defer>script</a></code>
+ <td> Defer script execution
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">dir</code>
+ <td> <a href=#the-dir-attribute title=attr-dir>HTML elements</a>
+ <td> <a href=#the-directionality title="the directionality">The text directionality</a> of the element
+ <td> "<code title=attr-dir-ltr><a href=#attr-dir-ltr>ltr</a></code>"; "<code title=attr-dir-rtl><a href=#attr-dir-rtl>rtl</a></code>"; "<code title=attr-dir-auto><a href=#attr-dir-auto>auto</a></code>"
+ <tr><th> <code title="">dirname</code>
+ <td> <code title=attr-input-dirname><a href=#attr-input-dirname>input</a></code>;
+ <code title=attr-textarea-dirname><a href=#attr-textarea-dirname>textarea</a></code>
+ <td> Name of form field to use for sending the element's <a href=#the-directionality title="the directionality">directionality</a> in <a href=#form-submission>form submission</a>
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">disabled</code>
+ <td> <code title=attr-fe-disabled><a href=#attr-fe-disabled>button</a></code>;
+ <code title=attr-command-disabled><a href=#attr-command-disabled>command</a></code>;
+ <code title=attr-fieldset-disabled><a href=#attr-fieldset-disabled>fieldset</a></code>;
+ <code title=attr-fe-disabled><a href=#attr-fe-disabled>input</a></code>;
+ <code title=attr-fe-disabled><a href=#attr-fe-disabled>keygen</a></code>;
+ <code title=attr-optgroup-disabled><a href=#attr-optgroup-disabled>optgroup</a></code>;
+ <code title=attr-option-disabled><a href=#attr-option-disabled>option</a></code>;
+ <code title=attr-fe-disabled><a href=#attr-fe-disabled>select</a></code>;
+ <code title=attr-fe-disabled><a href=#attr-fe-disabled>textarea</a></code>
+ <td> Whether the form control is disabled
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+<!--DOWNLOAD-->
+ <tr><th> <code title="">download</code>
+ <td> <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>a</a></code>;
+ <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>area</a></code>
+ <td> Whether to download the resource instead of navigating to it, and its filename if so
+ <td> Text
+<!--DOWNLOAD-->
+ <tr><th> <code title="">draggable</code>
+ <td> <a href=#the-draggable-attribute title=attr-draggable>HTML elements</a>
+ <td> Whether the element is draggable
+ <td> "<code title="">true</code>"; "<code title="">false</code>"
+ <tr><th> <code title="">dropzone</code>
+ <td> <a href=#the-dropzone-attribute title=attr-dropzone>HTML elements</a>
+ <td> Accepted item types for drag-and-drop
+ <td> <a href=#unordered-set-of-unique-space-separated-tokens>Unordered set of unique space-separated tokens</a>, <a href=#ascii-case-insensitive>ASCII case-insensitive</a>, consisting of accepted types and drag feedback*
+ <tr><th> <code title="">enctype</code>
+ <td> <code title=attr-fs-enctype><a href=#attr-fs-enctype>form</a></code>
+ <td> Form data set encoding type to use for <a href=#form-submission>form submission</a>
+ <td> "<code title=attr-fs-enctype-urlencoded><a href=#attr-fs-enctype-urlencoded>application/x-www-form-urlencoded</a></code>"; "<code title=attr-fs-enctype-formdata><a href=#attr-fs-enctype-formdata>multipart/form-data</a></code>"; "<code title=attr-fs-enctype-text><a href=#attr-fs-enctype-text>text/plain</a></code>"
+ <tr><th> <code title="">for</code>
+ <td> <code title=attr-label-for><a href=#attr-label-for>label</a></code>
+ <td> Associate the label with form control
+ <td> <a href=#concept-id title=concept-id>ID</a>*
+ <tr><th> <code title="">for</code>
+ <td> <code title=attr-output-for><a href=#attr-output-for>output</a></code>
+ <td> Specifies controls from which the output was calculated
+ <td> <a href=#unordered-set-of-unique-space-separated-tokens>Unordered set of unique space-separated tokens</a>, <a href=#case-sensitive>case-sensitive</a>, consisting of IDs*
+ <tr><th> <code title="">form</code>
+ <td> <code title=attr-fae-form><a href=#attr-fae-form>button</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>fieldset</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>input</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>keygen</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>label</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>object</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>output</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>select</a></code>;
+ <code title=attr-fae-form><a href=#attr-fae-form>textarea</a></code>
+ <td> Associates the control with a <code><a href=#the-form-element>form</a></code> element
+ <td> <a href=#concept-id title=concept-id>ID</a>*
+ <tr><th> <code title="">formaction</code>
+ <td> <code title=attr-fs-formaction><a href=#attr-fs-formaction>button</a></code>;
+ <code title=attr-fs-formaction><a href=#attr-fs-formaction>input</a></code>
+ <td> <a href=#url>URL</a> to use for <a href=#form-submission>form submission</a>
+ <td> <a href=#valid-url-potentially-surrounded-by-spaces>Valid URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">formenctype</code>
+ <td> <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>button</a></code>;
+ <code title=attr-fs-formenctype><a href=#attr-fs-formenctype>input</a></code>
+ <td> Form data set encoding type to use for <a href=#form-submission>form submission</a>
+ <td> "<code title=attr-fs-enctype-urlencoded><a href=#attr-fs-enctype-urlencoded>application/x-www-form-urlencoded</a></code>"; "<code title=attr-fs-enctype-formdata><a href=#attr-fs-enctype-formdata>multipart/form-data</a></code>"; "<code title=attr-fs-enctype-text><a href=#attr-fs-enctype-text>text/plain</a></code>"
+ <tr><th> <code title="">formmethod</code>
+ <td> <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>button</a></code>;
+ <code title=attr-fs-formmethod><a href=#attr-fs-formmethod>input</a></code>
+ <td> HTTP method to use for <a href=#form-submission>form submission</a>
+ <td> "<code title="">GET</code>"; "<code title="">POST</code>"
+ <tr><th> <code title="">formnovalidate</code>
+ <td> <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>button</a></code>;
+ <code title=attr-fs-formnovalidate><a href=#attr-fs-formnovalidate>input</a></code>
+ <td> Bypass form control validation for <a href=#form-submission>form submission</a>
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">formtarget</code>
+ <td> <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>button</a></code>;
+ <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>input</a></code>
+ <td> <a href=#browsing-context>Browsing context</a> for <a href=#form-submission>form submission</a>
+ <td> <a href=#valid-browsing-context-name-or-keyword>Valid browsing context name or keyword</a>
+ <tr><th> <code title="">headers</code>
+ <td> <code title=attr-tdth-headers><a href=#attr-tdth-headers>td</a></code>;
+ <code title=attr-tdth-headers><a href=#attr-tdth-headers>th</a></code>
+ <td> The header cells for this cell
+ <td> <a href=#unordered-set-of-unique-space-separated-tokens>Unordered set of unique space-separated tokens</a>, <a href=#case-sensitive>case-sensitive</a>, consisting of IDs*
+ <tr><th> <code title="">height</code>
+ <td> <code title=attr-canvas-height><a href=#attr-canvas-height>canvas</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>embed</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>iframe</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>img</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>input</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>object</a></code>;
+ <code title=attr-dim-height><a href=#attr-dim-height>video</a></code>
+ <td> Vertical dimension
+ <td> <a href=#valid-non-negative-integer>Valid non-negative integer</a>
+ <tr><th> <code title="">hidden</code>
+ <td> <a href=#the-hidden-attribute title=attr-hidden>HTML elements</a>
+ <td> Whether the element is relevant
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">high</code>
+ <td> <code title=attr-meter-high><a href=#attr-meter-high>meter</a></code>
+ <td> Low limit of high range
+ <td> <a href=#valid-floating-point-number>Valid floating point number</a>*
+ <tr><th> <code title="">href</code>
+ <td> <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>a</a></code>;
+ <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>area</a></code>
+ <td> Address of the <a href=#hyperlink>hyperlink</a>
+ <td> <a href=#valid-url-potentially-surrounded-by-spaces>Valid URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">href</code>
+ <td> <code title=attr-link-href><a href=#attr-link-href>link</a></code>
+ <td> Address of the <a href=#hyperlink>hyperlink</a>
+ <td> <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>Valid non-empty URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">href</code>
+ <td> <code title=attr-base-href><a href=#attr-base-href>base</a></code>
+ <td> <a href=#document-base-url>Document base URL</a>
+ <td> <a href=#valid-url-potentially-surrounded-by-spaces>Valid URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">hreflang</code>
+ <td> <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>a</a></code>;
+ <code title=attr-hyperlink-hreflang><a href=#attr-hyperlink-hreflang>area</a></code>;
+ <code title=attr-link-hreflang><a href=#attr-link-hreflang>link</a></code>
+ <td> Language of the linked resource
+ <td> Valid BCP 47 language tag
+ <tr><th> <code title="">http-equiv</code>
+ <td> <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>meta</a></code>
+ <td> Pragma directive
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">icon</code>
+ <td> <code title=attr-command-icon><a href=#attr-command-icon>command</a></code>
+ <td> Icon for the command
+ <td> <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>Valid non-empty URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">id</code>
+ <td> <a href=#the-id-attribute title=attr-id>HTML elements</a>
+ <td> The element's <a href=#concept-id title=concept-id>ID</a>
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">ismap</code>
+ <td> <code title=attr-img-ismap><a href=#attr-img-ismap>img</a></code>
+ <td> Whether the image is a server-side image map
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+<!--MD-->
+ <tr><th> <code title="">itemid</code>
+ <td> <a href=#attr-itemid title=attr-itemid>HTML elements</a>
+ <td> <a href=#global-identifier>Global identifier</a> for a microdata item
+ <td> <a href=#valid-url-potentially-surrounded-by-spaces>Valid URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">itemprop</code>
+ <td> <a href=#names:-the-itemprop-attribute title=attr-itemprop>HTML elements</a>
+ <td> <a href=#property-names>Property names</a> of a microdata item
+ <td> <a href=#unordered-set-of-unique-space-separated-tokens>Unordered set of unique space-separated tokens</a>, <a href=#case-sensitive>case-sensitive</a>, consisting of <a href=#absolute-url title="absolute URL">valid absolute URLs</a>, <a href=#defined-property-name title="defined property name">defined property names</a>, or text*
+ <tr><th> <code title="">itemref</code>
+ <td> <a href=#attr-itemref title=attr-itemref>HTML elements</a>
+ <td> Referenced elements
+ <td> <a href=#unordered-set-of-unique-space-separated-tokens>Unordered set of unique space-separated tokens</a>, <a href=#case-sensitive>case-sensitive</a>, consisting of IDs*
+ <tr><th> <code title="">itemscope</code>
+ <td> <a href=#attr-itemscope title=attr-itemscope>HTML elements</a>
+ <td> Introduces a microdata item
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">itemtype</code>
+ <td> <a href=#attr-itemtype title=attr-itemtype>HTML elements</a>
+ <td> <a href=#item-type>Item type</a> of a microdata item
+ <td> <a href=#absolute-url title="absolute URL">Valid absolute URL</a>*
+<!--MD-->
+ <tr><th> <code title="">keytype</code>
+ <td> <code title=attr-keygen-keytype><a href=#attr-keygen-keytype>keygen</a></code>
+ <td> The type of cryptographic key to generate
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">kind</code>
+ <td> <code title=attr-track-kind><a href=#attr-track-kind>track</a></code>
+ <td> The type of text track
+ <td> "<code title=attr-track-kind-subtitles><a href=#attr-track-kind-subtitles>subtitles</a></code>";
+ "<code title=attr-track-kind-captions><a href=#attr-track-kind-captions>captions</a></code>";
+ "<code title=attr-track-kind-descriptions><a href=#attr-track-kind-descriptions>descriptions</a></code>";
+ "<code title=attr-track-kind-chapters><a href=#attr-track-kind-chapters>chapters</a></code>";
+ "<code title=attr-track-kind-metadata><a href=#attr-track-kind-metadata>metadata</a></code>"
+ <tr><th> <code title="">label</code>
+ <td> <code title=attr-command-label><a href=#attr-command-label>command</a></code>;
+ <code title=attr-menu-label><a href=#attr-menu-label>menu</a></code>;
+ <code title=attr-optgroup-label><a href=#attr-optgroup-label>optgroup</a></code>;
+ <code title=attr-option-label><a href=#attr-option-label>option</a></code>;
+ <code title=attr-track-label><a href=#attr-track-label>track</a></code>
+ <td> User-visible label
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">lang</code>
+ <td> <a href=#attr-lang title=attr-lang>HTML elements</a>
+ <td> <a href=#language>Language</a> of the element
+ <td> Valid BCP 47 language tag or the empty string
+ <tr><th> <code title="">list</code>
+ <td> <code title=attr-input-list><a href=#attr-input-list>input</a></code>
+ <td> List of autocomplete options
+ <td> <a href=#concept-id title=concept-id>ID</a>*
+ <tr><th> <code title="">loop</code>
+ <td> <code title=attr-media-loop><a href=#attr-media-loop>audio</a></code>;
+ <code title=attr-media-loop><a href=#attr-media-loop>video</a></code>
+ <td> Whether to loop the <a href=#media-resource>media resource</a>
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">low</code>
+ <td> <code title=attr-meter-low><a href=#attr-meter-low>meter</a></code>
+ <td> High limit of low range
+ <td> <a href=#valid-floating-point-number>Valid floating point number</a>*
+ <tr><th> <code title="">manifest</code>
+ <td> <code title=attr-html-manifest><a href=#attr-html-manifest>html</a></code>
+ <td> <a href=#concept-appcache-manifest title=concept-appcache-manifest>Application cache manifest</a>
+ <td> <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>Valid non-empty URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">max</code>
+ <td> <code title=attr-input-max><a href=#attr-input-max>input</a></code>
+ <td> Maximum value
+ <td> varies*
+ <tr><th> <code title="">max</code>
+ <td> <code title=attr-meter-max><a href=#attr-meter-max>meter</a></code>;
+ <code title=attr-progress-max><a href=#attr-progress-max>progress</a></code>
+ <td> Upper bound of range
+ <td> <a href=#valid-floating-point-number>Valid floating point number</a>*
+ <tr><th> <code title="">maxlength</code>
+ <td> <code title=attr-input-maxlength><a href=#attr-input-maxlength>input</a></code>;
+ <code title=attr-textarea-maxlength><a href=#attr-textarea-maxlength>textarea</a></code>
+ <td> Maximum length of value
+ <td> <a href=#valid-non-negative-integer>Valid non-negative integer</a>
+ <tr><th> <code title="">media</code>
+ <td> <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>a</a></code>;
+ <code title=attr-hyperlink-media><a href=#attr-hyperlink-media>area</a></code>;
+ <code title=attr-link-media><a href=#attr-link-media>link</a></code>;
+ <code title=attr-source-media><a href=#attr-source-media>source</a></code>;
+ <code title=attr-style-media><a href=#attr-style-media>style</a></code>
+ <td> Applicable media
+ <td> <a href=#valid-media-query>Valid media query</a>
+ <tr><th> <code title="">mediagroup</code>
+ <td> <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>audio</a></code>;
+ <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>video</a></code>
+ <td> Groups <a href=#media-element title="media element">media elements</a> together with an implicit <code><a href=#mediacontroller>MediaController</a></code>
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">method</code>
+ <td> <code title=attr-fs-method><a href=#attr-fs-method>form</a></code>
+ <td> HTTP method to use for <a href=#form-submission>form submission</a>
+ <td> "<code title="">GET</code>"; "<code title="">POST</code>"
+ <tr><th> <code title="">min</code>
+ <td> <code title=attr-input-min><a href=#attr-input-min>input</a></code>
+ <td> Minimum value
+ <td> varies*
+ <tr><th> <code title="">min</code>
+ <td> <code title=attr-meter-min><a href=#attr-meter-min>meter</a></code>
+ <td> Lower bound of range
+ <td> <a href=#valid-floating-point-number>Valid floating point number</a>*
+ <tr><th> <code title="">multiple</code>
+ <td> <code title=attr-input-multiple><a href=#attr-input-multiple>input</a></code>;
+ <code title=attr-select-multiple><a href=#attr-select-multiple>select</a></code>
+ <td> Whether to allow multiple values
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">muted</code>
+ <td> <code title=attr-media-muted><a href=#attr-media-muted>audio</a></code>;
+ <code title=attr-media-muted><a href=#attr-media-muted>video</a></code>
+ <td> Whether to mute the <a href=#media-resource>media resource</a> by default
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">name</code>
+ <td> <code title=attr-fe-name><a href=#attr-fe-name>button</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>fieldset</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>input</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>keygen</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>output</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>select</a></code>;
+ <code title=attr-fe-name><a href=#attr-fe-name>textarea</a></code>
+ <td> Name of form control to use for <a href=#form-submission>form submission</a> and in the <code title=dom-form-elements><a href=#dom-form-elements>form.elements</a></code> API
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">name</code>
+ <td> <code title=attr-form-name><a href=#attr-form-name>form</a></code>
+ <td> Name of form to use in the <code title=dom-document-forms><a href=#dom-document-forms>document.forms</a></code> API
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">name</code>
+ <td> <code title=attr-iframe-name><a href=#attr-iframe-name>iframe</a></code>;
+ <code title=attr-object-name><a href=#attr-object-name>object</a></code>
+ <td> Name of <a href=#nested-browsing-context>nested browsing context</a>
+ <td> <a href=#valid-browsing-context-name-or-keyword>Valid browsing context name or keyword</a>
+ <tr><th> <code title="">name</code>
+ <td> <code title=attr-map-name><a href=#attr-map-name>map</a></code>
+ <td> Name of <a href=#image-map>image map</a> to reference from the <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>usemap</a></code> attribute
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">name</code>
+ <td> <code title=attr-meta-name><a href=#attr-meta-name>meta</a></code>
+ <td> Metadata name
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">name</code>
+ <td> <code title=attr-param-name><a href=#attr-param-name>param</a></code>
+ <td> Name of parameter
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">novalidate</code>
+ <td> <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>form</a></code>
+ <td> Bypass form control validation for <a href=#form-submission>form submission</a>
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">open</code>
+ <td> <code title=attr-details-open><a href=#attr-details-open>details</a></code>
+ <td> Whether the details are visible
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">optimum</code>
+ <td> <code title=attr-meter-optimum><a href=#attr-meter-optimum>meter</a></code>
+ <td> Optimum value in gauge
+ <td> <a href=#valid-floating-point-number>Valid floating point number</a>*
+ <tr><th> <code title="">pattern</code>
+ <td> <code title=attr-input-pattern><a href=#attr-input-pattern>input</a></code>
+ <td> Pattern to be matched by the form control's value
+ <td> Regular expression matching the JavaScript <i title="">Pattern</i> production
+<!--PING-->
+ <tr><th> <code title="">ping</code>
+ <td> <code title=attr-hyperlink-ping><a href=#ping>a</a></code>;
+ <code title=attr-hyperlink-ping><a href=#ping>area</a></code>
+ <td> <a href=#url title=URL>URLs</a> to ping
+ <td> <a href=#set-of-space-separated-tokens>Set of space-separated tokens</a> consisting of <a href=#valid-non-empty-url title="valid non-empty URL">valid non-empty URLs</a>
+<!--PING-->
+ <tr><th> <code title="">placeholder</code>
+ <td> <code title=attr-input-placeholder><a href=#attr-input-placeholder>input</a></code>;
+ <code title=attr-textarea-placeholder><a href=#attr-textarea-placeholder>textarea</a></code>
+ <td> User-visible label to be placed within the form control
+ <td> <a href=#attribute-text>Text</a>*
+ <tr><th> <code title="">poster</code>
+ <td> <code title=attr-video-poster><a href=#attr-video-poster>video</a></code>
+ <td> Poster frame to show prior to video playback
+ <td> <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>Valid non-empty URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">preload</code>
+ <td> <code title=attr-media-preload><a href=#attr-media-preload>audio</a></code>;
+ <code title=attr-media-preload><a href=#attr-media-preload>video</a></code>
+ <td> Hints how much buffering the <a href=#media-resource>media resource</a> will likely need
+ <td> "<code title=attr-media-preload-none><a href=#attr-media-preload-none>none</a></code>";
+ "<code title=attr-media-preload-metadata><a href=#attr-media-preload-metadata>metadata</a></code>";
+ "<code title=attr-media-preload-auto><a href=#attr-media-preload-auto>auto</a></code>"
+ <tr><th> <code title="">pubdate</code>
+ <td> <code title=attr-time-pubdate><a href=#attr-time-pubdate>time</a></code>
+ <td> Whether the element's value represents a publication time for the nearest <code><a href=#the-article-element>article</a></code> or <code><a href=#the-body-element>body</a></code>
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">radiogroup</code>
+ <td> <code title=attr-command-radiogroup><a href=#attr-command-radiogroup>command</a></code>
+ <td> Name of group of commands to treat as a radio button group
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">readonly</code>
+ <td> <code title=attr-input-readonly><a href=#attr-input-readonly>input</a></code>;
+ <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>textarea</a></code>
+ <td> Whether to allow the value to be edited by the user
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">rel</code>
+ <td> <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>a</a></code>;
+ <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>area</a></code>;
+ <code title=attr-link-rel><a href=#attr-link-rel>link</a></code>
+ <td> Relationship between the document containing the hyperlink and the destination resource
+ <td> <a href=#set-of-space-separated-tokens>Set of space-separated tokens</a>*
+ <tr><th> <code title="">required</code>
+ <td> <code title=attr-input-required><a href=#attr-input-required>input</a></code>;
+ <code title=attr-select-required><a href=#attr-select-required>select</a></code>;
+ <code title=attr-textarea-required><a href=#attr-textarea-required>textarea</a></code>
+ <td> Whether the control is required for <a href=#form-submission>form submission</a>
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">reversed</code>
+ <td> <code title=attr-ol-reversed><a href=#attr-ol-reversed>ol</a></code>
+ <td> Number the list backwards
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">rows</code>
+ <td> <code title=attr-textarea-rows><a href=#attr-textarea-rows>textarea</a></code>
+ <td> Number of lines to show
+ <td> <a href=#valid-non-negative-integer>Valid non-negative integer</a> greater than zero
+ <tr><th> <code title="">rowspan</code>
+ <td> <code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>td</a></code>;
+ <code title=attr-tdth-rowspan><a href=#attr-tdth-rowspan>th</a></code>
+ <td> Number of rows that the cell is to span
+ <td> <a href=#valid-non-negative-integer>Valid non-negative integer</a>
+ <tr><th> <code title="">sandbox</code>
+ <td> <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>iframe</a></code>
+ <td> Security rules for nested content
+ <td> <a href=#unordered-set-of-unique-space-separated-tokens>Unordered set of unique space-separated tokens</a>, <a href=#ascii-case-insensitive>ASCII case-insensitive</a>, consisting of
+ "<code title=attr-iframe-sandbox-allow-forms><a href=#attr-iframe-sandbox-allow-forms>allow-forms</a></code>",
+ "<code title=attr-iframe-sandbox-allow-same-origin><a href=#attr-iframe-sandbox-allow-same-origin>allow-same-origin</a></code>",
+ "<code title=attr-iframe-sandbox-allow-scripts><a href=#attr-iframe-sandbox-allow-scripts>allow-scripts</a></code> and
+ "<code title=attr-iframe-sandbox-allow-top-navigation><a href=#attr-iframe-sandbox-allow-top-navigation>allow-top-navigation</a></code>"
+ <tr><th> <code title="">spellcheck</code>
+ <td> <a href=#attr-spellcheck title=attr-spellcheck>HTML elements</a>
+ <td> Whether the element is to have its spelling and grammar checked
+ <td> "<code title="">true</code>"; "<code title="">false</code>"
+ <tr><th> <code title="">scope</code>
+ <td> <code title=attr-th-scope><a href=#attr-th-scope>th</a></code>
+ <td> Specifies which cells the header cell applies to
+ <td> "<code title=attr-th-scope-row><a href=#attr-th-scope-row>row</a></code>";
+ "<code title=attr-th-scope-col><a href=#attr-th-scope-col>col</a></code>";
+ "<code title=attr-th-scope-rowgroup><a href=#attr-th-scope-rowgroup>rowgroup</a></code>";
+ "<code title=attr-th-scope-colgroup><a href=#attr-th-scope-colgroup>colgroup</a></code>"
+ <tr><th> <code title="">scoped</code>
+ <td> <code title=attr-style-scoped><a href=#attr-style-scoped>style</a></code>
+ <td> Whether the styles apply to the entire document or just the parent subtree
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">seamless</code>
+ <td> <code title=attr-iframe-seamless><a href=#attr-iframe-seamless>iframe</a></code>
+ <td> Whether to apply the document's styles to the nested content
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">selected</code>
+ <td> <code title=attr-option-selected><a href=#attr-option-selected>option</a></code>
+ <td> Whether the option is selected by default
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">shape</code>
+ <td> <code title=attr-area-shape><a href=#attr-area-shape>area</a></code>
+ <td> The kind of shape to be created in an <a href=#image-map>image map</a>
+ <td> "<code title=attr-area-shape-keyword-circle><a href=#attr-area-shape-keyword-circle>circle</a></code>";
+ "<code title=attr-area-shape-keyword-default><a href=#attr-area-shape-keyword-default>default</a></code>";
+ "<code title=attr-area-shape-keyword-poly><a href=#attr-area-shape-keyword-poly>poly</a></code>";
+ "<code title=attr-area-shape-keyword-rect><a href=#attr-area-shape-keyword-rect>rect</a></code>"
+ <tr><th> <code title="">size</code>
+ <td> <code title=attr-input-size><a href=#attr-input-size>input</a></code>;
+ <code title=attr-select-size><a href=#attr-select-size>select</a></code>
+ <td> Size of the control
+ <td> <a href=#valid-non-negative-integer>Valid non-negative integer</a> greater than zero
+ <tr><th> <code title="">sizes</code>
+ <td> <code title=attr-link-sizes><a href=#attr-link-sizes>link</a></code>
+ <td> Sizes of the icons (for <code title=attr-link-rel><a href=#attr-link-rel>rel</a></code>="<code title=rel-icon><a href=#rel-icon>icon</a></code>")
+ <td> <a href=#unordered-set-of-unique-space-separated-tokens>Unordered set of unique space-separated tokens</a>, <a href=#ascii-case-insensitive>ASCII case-insensitive</a>, consisting of sizes*
+ <tr><th> <code title="">span</code>
+ <td> <code title=attr-col-span><a href=#attr-col-span>col</a></code>;
+ <code title=attr-colgroup-span><a href=#attr-colgroup-span>colgroup</a></code>
+ <td> Number of columns spanned by the element
+ <td> <a href=#valid-non-negative-integer>Valid non-negative integer</a> greater than zero
+ <tr><th> <code title="">src</code>
+ <td> <code title=attr-media-src><a href=#attr-media-src>audio</a></code>;
+ <code title=attr-embed-src><a href=#attr-embed-src>embed</a></code>;
+ <code title=attr-iframe-src><a href=#attr-iframe-src>iframe</a></code>;
+ <code title=attr-img-src><a href=#attr-img-src>img</a></code>;
+ <code title=attr-input-src><a href=#attr-input-src>input</a></code>;
+ <code title=attr-script-src><a href=#attr-script-src>script</a></code>;
+ <code title=attr-source-src><a href=#attr-source-src>source</a></code>;
+ <code title=attr-track-src><a href=#attr-track-src>track</a></code>;
+ <code title=attr-media-src><a href=#attr-media-src>video</a></code>
+ <td> Address of the resource
+ <td> <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>Valid non-empty URL potentially surrounded by spaces</a>
+ <tr><th> <code title="">srcdoc</code>
+ <td> <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>iframe</a></code>
+ <td> A document to render in the <code><a href=#the-iframe-element>iframe</a></code>
+ <td> The source of <a href=#an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a>*
+ <tr><th> <code title="">srclang</code>
+ <td> <code title=attr-track-srclang><a href=#attr-track-srclang>track</a></code>
+ <td> Language of the text track
+ <td> Valid BCP 47 language tag
+ <tr><th> <code title="">start</code>
+ <td> <code title=attr-ol-start><a href=#attr-ol-start>ol</a></code>
+ <td> <a href=#ordinal-value>Ordinal value</a> of the first item
+ <td> <a href=#valid-integer>Valid integer</a>
+ <tr><th> <code title="">step</code>
+ <td> <code title=attr-input-step><a href=#attr-input-step>input</a></code>
+ <td> Granularity to be matched by the form control's value
+ <td> <a href=#valid-floating-point-number>Valid floating point number</a> greater than zero, or "<code title="">any</code>"
+ <tr><th> <code title="">style</code>
+ <td> <a href=#the-style-attribute title=attr-style>HTML elements</a>
+ <td> Presentational and formatting instructions
+ <td> CSS declarations*
+ <tr><th> <code title="">tabindex</code>
+ <td> <a href=#attr-tabindex title=attr-tabindex>HTML elements</a>
+ <td> Whether the element is focusable, and the relative order of the element for the purposes of sequential focus navigation
+ <td> <a href=#valid-integer>Valid integer</a>
+ <tr><th> <code title="">target</code>
+ <td> <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>a</a></code>;
+ <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>area</a></code>
+ <td> <a href=#browsing-context>Browsing context</a> for <a href=#hyperlink>hyperlink</a> <a href=#navigate title=navigate>navigation</a>
+ <td> <a href=#valid-browsing-context-name-or-keyword>Valid browsing context name or keyword</a>
+ <tr><th> <code title="">target</code>
+ <td> <code title=attr-base-target><a href=#attr-base-target>base</a></code>
+ <td> Default <a href=#browsing-context>browsing context</a> for <a href=#hyperlink>hyperlink</a> <a href=#navigate title=navigate>navigation</a> and <a href=#form-submission>form submission</a>
+ <td> <a href=#valid-browsing-context-name-or-keyword>Valid browsing context name or keyword</a>
+ <tr><th> <code title="">target</code>
+ <td> <code title=attr-fs-target><a href=#attr-fs-target>form</a></code>
+ <td> <a href=#browsing-context>Browsing context</a> for <a href=#form-submission>form submission</a>
+ <td> <a href=#valid-browsing-context-name-or-keyword>Valid browsing context name or keyword</a>
+ <tr><th> <code title="">title</code>
+ <td> <a href=#the-title-attribute title=attr-title>HTML elements</a>
+ <td> Advisory information for the element
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">title</code>
+ <td> <code title=attr-abbr-title><a href=#attr-abbr-title>abbr</a></code>;
+ <code title=attr-dfn-title><a href=#attr-dfn-title>dfn</a></code>
+ <td> Full term or expansion of abbreviation
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">title</code>
+ <td> <code title=attr-command-title><a href=#attr-command-title>command</a></code>
+ <td> Hint describing the command
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">title</code>
+ <td> <code title=attr-link-title><a href=#attr-link-title>link</a></code>
+ <td> Title of the link
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">title</code>
+ <td> <code title=attr-link-title><a href=#attr-link-title>link</a></code>;
+ <code title=attr-style-title><a href=#attr-style-title>style</a></code>
+ <td> Alternative style sheet set name
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">type</code>
+ <td> <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>a</a></code>;
+ <code title=attr-hyperlink-type><a href=#attr-hyperlink-type>area</a></code>;
+ <code title=attr-link-type><a href=#attr-link-type>link</a></code>
+ <td> Hint for the type of the referenced resource
+ <td> <a href=#valid-mime-type>Valid MIME type</a>
+ <tr><th> <code title="">type</code>
+ <td> <code title=attr-button-type><a href=#attr-button-type>button</a></code>
+ <td> Type of button
+ <td> "<code title=attr-button-type-submit><a href=#attr-button-type-submit>submit</a></code>";
+ "<code title=attr-button-type-reset><a href=#attr-button-type-reset>reset</a></code>";
+ "<code title=attr-button-type-button><a href=#attr-button-type-button>button</a></code>"
+ <tr><th> <code title="">type</code>
+ <td> <code title=attr-button-type><a href=#attr-button-type>button</a></code>;
+ <code title=attr-input-type><a href=#attr-input-type>input</a></code>
+ <td> Type of form control
+ <td> <a href=#attr-input-type title=attr-input-type><code>input</code> type keyword</a>
+ <tr><th> <code title="">type</code>
+ <td> <code title=attr-command-type><a href=#attr-command-type>command</a></code>
+ <td> Type of command
+ <td> "<code title=attr-command-type-keyword-command><a href=#attr-command-type-keyword-command>command</a></code>";
+ "<code title=attr-command-type-keyword-checkbox><a href=#attr-command-type-keyword-checkbox>checkbox</a></code>";
+ "<code title=attr-command-type-keyword-radio><a href=#attr-command-type-keyword-radio>radio</a></code>"
+ <tr><th> <code title="">type</code>
+ <td> <code title=attr-embed-type><a href=#attr-embed-type>embed</a></code>;
+ <code title=attr-object-type><a href=#attr-object-type>object</a></code>;
+ <code title=attr-script-type><a href=#attr-script-type>script</a></code>;
+ <code title=attr-source-type><a href=#attr-source-type>source</a></code>;
+ <code title=attr-style-type><a href=#attr-style-type>style</a></code>
+ <td> Type of embedded resource
+ <td> <a href=#valid-mime-type>Valid MIME type</a>
+ <tr><th> <code title="">type</code>
+ <td> <code title=attr-menu-type><a href=#attr-menu-type>menu</a></code>
+ <td> Type of menu
+ <td> "<code title="context menu state"><a href=#context-menu-state>context</a></code>"; "<code title="toolbar state"><a href=#toolbar-state>toolbar</a></code>"
+ <tr><th> <code title="">typemustmatch</code>
+ <td> <code title=attr-object-typemustmatch><a href=#attr-object-typemustmatch>object</a></code>
+ <td> Whether the <code title=attr-object-type><a href=#attr-object-type>type</a></code> attribute and the <a href=#content-type>Content-Type</a> value need to match for the resource to be used
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
+ <tr><th> <code title="">usemap</code>
+ <td> <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>img</a></code>;
+ <code title=attr-hyperlink-usemap><a href=#attr-hyperlink-usemap>object</a></code>
+ <td> Name of <a href=#image-map>image map</a> to use
+ <td> <a href=#valid-hash-name-reference>Valid hash-name reference</a>*
+ <tr><th> <code title="">value</code>
+ <td> <code title=attr-button-value><a href=#attr-button-value>button</a></code>;
+ <code title=attr-option-value><a href=#attr-option-value>option</a></code>
+ <td> Value to be used for <a href=#form-submission>form submission</a>
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">value</code>
+ <td> <code title=attr-input-value><a href=#attr-input-value>input</a></code>
+ <td> Value of the form control
+ <td> varies*
+ <tr><th> <code title="">value</code>
+ <td> <code title=attr-li-value><a href=#attr-li-value>li</a></code>
+ <td> <a href=#ordinal-value>Ordinal value</a> of the list item
+ <td> <a href=#valid-integer>Valid integer</a>
+ <tr><th> <code title="">value</code>
+ <td> <code title=attr-meter-value><a href=#attr-meter-value>meter</a></code>;
+ <code title=attr-progress-value><a href=#attr-progress-value>progress</a></code>
+ <td> Current value of the element
+ <td> <a href=#valid-floating-point-number>Valid floating point number</a>
+ <tr><th> <code title="">value</code>
+ <td> <code title=attr-param-value><a href=#attr-param-value>param</a></code>
+ <td> Value of parameter
+ <td> <a href=#attribute-text>Text</a>
+ <tr><th> <code title="">width</code>
+ <td> <code title=attr-canvas-width><a href=#attr-canvas-width>canvas</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>embed</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>iframe</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>img</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>input</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>object</a></code>;
+ <code title=attr-dim-width><a href=#attr-dim-width>video</a></code>
+ <td> Horizontal dimension
+ <td> <a href=#valid-non-negative-integer>Valid non-negative integer</a>
+ <tr><th> <code title="">wrap</code>
+ <td> <code title=attr-textarea-wrap><a href=#attr-textarea-wrap>textarea</a></code>
+ <td> How the value of the form control is to be wrapped for <a href=#form-submission>form submission</a>
+ <td> "<code title=attr-textarea-wrap-soft><a href=#attr-textarea-wrap-soft>soft</a></code>";
+ "<code title=attr-textarea-wrap-hard><a href=#attr-textarea-wrap-hard>hard</a></code>"
+ </table><p>An asterisk (*) in a cell indicates that the actual rules are more complicated than indicated in the table above.</p>
+
+ <hr><table id=ix-event-handlers><caption>List of event handler content attributes</caption>
+ <thead><tr><th> Attribute
+ <th> Element(s)
+ <th> Description
+ <th> Value
+ <tbody><tr><th id=ix-handler-onabort> <code title="">onabort</code>
+ <td> <a href=#handler-onabort title=handler-onabort>HTML elements</a>
+ <td> <code title=event-abort>abort</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onafterprint> <code title="">onafterprint</code>
+ <td> <code title=handler-window-onafterprint><a href=#handler-window-onafterprint>body</a></code>
+ <td> <code title=event-afterprint>afterprint</code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onbeforeprint> <code title="">onbeforeprint</code>
+ <td> <code title=handler-window-onbeforeprint><a href=#handler-window-onbeforeprint>body</a></code>
+ <td> <code title=event-beforeprint>beforeprint</code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onbeforeunload> <code title="">onbeforeunload</code>
+ <td> <code title=handler-window-onbeforeunload><a href=#handler-window-onbeforeunload>body</a></code>
+ <td> <code title=event-beforeunload>beforeunload</code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onblur> <code title="">onblur</code>
+ <td> <code title=handler-window-onblur><a href=#handler-window-onblur>body</a></code>
+ <td> <code title=event-blur>blur</code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onblur> <code title="">onblur</code>
+ <td> <a href=#handler-onblur title=handler-onblur>HTML elements</a>
+ <td> <code title=event-blur>blur</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-oncanplay> <code title="">oncanplay</code>
+ <td> <a href=#handler-oncanplay title=handler-oncanplay>HTML elements</a>
+ <td> <code title=event-media-canplay><a href=#event-media-canplay>canplay</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-oncanplaythrough> <code title="">oncanplaythrough</code>
+ <td> <a href=#handler-oncanplaythrough title=handler-oncanplaythrough>HTML elements</a>
+ <td> <code title=event-media-canplaythrough><a href=#event-media-canplaythrough>canplaythrough</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onchange> <code title="">onchange</code>
+ <td> <a href=#handler-onchange title=handler-onchange>HTML elements</a>
+ <td> <code title=event-change>change</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onclick> <code title="">onclick</code>
+ <td> <a href=#handler-onclick title=handler-onclick>HTML elements</a>
+ <td> <code title=event-click><a href=#event-click>click</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-oncontextmenu> <code title="">oncontextmenu</code>
+ <td> <a href=#handler-oncontextmenu title=handler-oncontextmenu>HTML elements</a>
+ <td> <code title=event-contextmenu>contextmenu</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-oncuechange> <code title="">oncuechange</code>
+ <td> <a href=#handler-oncuechange title=handler-oncuechange>HTML elements</a>
+ <td> <code title=event-cuechange>cuechange</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-ondblclick> <code title="">ondblclick</code>
+ <td> <a href=#handler-ondblclick title=handler-ondblclick>HTML elements</a>
+ <td> <code title=event-dblclick>dblclick</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-ondrag> <code title="">ondrag</code>
+ <td> <a href=#handler-ondrag title=handler-ondrag>HTML elements</a>
+ <td> <code title=event-drag><a href=#event-drag>drag</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-ondragend> <code title="">ondragend</code>
+ <td> <a href=#handler-ondragend title=handler-ondragend>HTML elements</a>
+ <td> <code title=event-dragend><a href=#event-dragend>dragend</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-ondragenter> <code title="">ondragenter</code>
+ <td> <a href=#handler-ondragenter title=handler-ondragenter>HTML elements</a>
+ <td> <code title=event-dragenter><a href=#event-dragenter>dragenter</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-ondragleave> <code title="">ondragleave</code>
+ <td> <a href=#handler-ondragleave title=handler-ondragleave>HTML elements</a>
+ <td> <code title=event-dragleave><a href=#event-dragleave>dragleave</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-ondragover> <code title="">ondragover</code>
+ <td> <a href=#handler-ondragover title=handler-ondragover>HTML elements</a>
+ <td> <code title=event-dragover><a href=#event-dragover>dragover</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-ondragstart> <code title="">ondragstart</code>
+ <td> <a href=#handler-ondragstart title=handler-ondragstart>HTML elements</a>
+ <td> <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-ondrop> <code title="">ondrop</code>
+ <td> <a href=#handler-ondrop title=handler-ondrop>HTML elements</a>
+ <td> <code title=event-drop><a href=#event-drop>drop</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-ondurationchange> <code title="">ondurationchange</code>
+ <td> <a href=#handler-ondurationchange title=handler-ondurationchange>HTML elements</a>
+ <td> <code title=event-media-durationchange><a href=#event-media-durationchange>durationchange</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onemptied> <code title="">onemptied</code>
+ <td> <a href=#handler-onemptied title=handler-onemptied>HTML elements</a>
+ <td> <code title=event-media-emptied><a href=#event-media-emptied>emptied</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onended> <code title="">onended</code>
+ <td> <a href=#handler-onended title=handler-onended>HTML elements</a>
+ <td> <code title=event-media-ended><a href=#event-media-ended>ended</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onerror> <code title="">onerror</code>
+ <td> <code title=handler-window-onerror><a href=#handler-window-onerror>body</a></code>
+ <td> <code title=event-error>error</code> event handler for <code><a href=#window>Window</a></code> object, and handler for <a href=#runtime-script-errors>script error notifications</a>
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onerror> <code title="">onerror</code>
+ <td> <a href=#handler-onerror title=handler-onerror>HTML elements</a>
+ <td> <code title=event-error>error</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onfocus> <code title="">onfocus</code>
+ <td> <code title=handler-window-onfocus><a href=#handler-window-onfocus>body</a></code>
+ <td> <code title=event-focus>focus</code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onfocus> <code title="">onfocus</code>
+ <td> <a href=#handler-onfocus title=handler-onfocus>HTML elements</a>
+ <td> <code title=event-focus>focus</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onhashchange> <code title="">onhashchange</code>
+ <td> <code title=handler-window-onhashchange><a href=#handler-window-onhashchange>body</a></code>
+ <td> <code title=event-hashchange><a href=#event-hashchange>hashchange</a></code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-oninput> <code title="">oninput</code>
+ <td> <a href=#handler-oninput title=handler-oninput>HTML elements</a>
+ <td> <code title=event-input>input</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-oninvalid> <code title="">oninvalid</code>
+ <td> <a href=#handler-oninvalid title=handler-oninvalid>HTML elements</a>
+ <td> <code title=event-invalid>invalid</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onkeydown> <code title="">onkeydown</code>
+ <td> <a href=#handler-onkeydown title=handler-onkeydown>HTML elements</a>
+ <td> <code title=event-keydown>keydown</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onkeypress> <code title="">onkeypress</code>
+ <td> <a href=#handler-onkeypress title=handler-onkeypress>HTML elements</a>
+ <td> <code title=event-keypress>keypress</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onkeyup> <code title="">onkeyup</code>
+ <td> <a href=#handler-onkeyup title=handler-onkeyup>HTML elements</a>
+ <td> <code title=event-keyup>keyup</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onload> <code title="">onload</code>
+ <td> <code title=handler-window-onload><a href=#handler-window-onload>body</a></code>
+ <td> <code title=event-load>load</code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onload> <code title="">onload</code>
+ <td> <a href=#handler-onload title=handler-onload>HTML elements</a>
+ <td> <code title=event-load>load</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onloadeddata> <code title="">onloadeddata</code>
+ <td> <a href=#handler-onloadeddata title=handler-onloadeddata>HTML elements</a>
+ <td> <code title=event-media-loadeddata><a href=#event-media-loadeddata>loadeddata</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onloadedmetadata> <code title="">onloadedmetadata</code>
+ <td> <a href=#handler-onloadedmetadata title=handler-onloadedmetadata>HTML elements</a>
+ <td> <code title=event-media-loadedmetadata><a href=#event-media-loadedmetadata>loadedmetadata</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onloadstart> <code title="">onloadstart</code>
+ <td> <a href=#handler-onloadstart title=handler-onloadstart>HTML elements</a>
+ <td> <code title=event-media-loadstart><a href=#event-media-loadstart>loadstart</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onmessage> <code title="">onmessage</code>
+ <td> <code title=handler-window-onmessage><a href=#handler-window-onmessage>body</a></code>
+ <td> <code title=event-message><a href=#event-message>message</a></code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onmousedown> <code title="">onmousedown</code>
+ <td> <a href=#handler-onmousedown title=handler-onmousedown>HTML elements</a>
+ <td> <code title=event-mousedown>mousedown</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onmousemove> <code title="">onmousemove</code>
+ <td> <a href=#handler-onmousemove title=handler-onmousemove>HTML elements</a>
+ <td> <code title=event-mousemove>mousemove</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onmouseout> <code title="">onmouseout</code>
+ <td> <a href=#handler-onmouseout title=handler-onmouseout>HTML elements</a>
+ <td> <code title=event-mouseout>mouseout</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onmouseover> <code title="">onmouseover</code>
+ <td> <a href=#handler-onmouseover title=handler-onmouseover>HTML elements</a>
+ <td> <code title=event-mouseover>mouseover</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onmouseup> <code title="">onmouseup</code>
+ <td> <a href=#handler-onmouseup title=handler-onmouseup>HTML elements</a>
+ <td> <code title=event-mouseup>mouseup</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onmousewheel> <code title="">onmousewheel</code>
+ <td> <a href=#handler-onmousewheel title=handler-onmousewheel>HTML elements</a>
+ <td> <code title=event-mousewheel>mousewheel</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onoffline> <code title="">onoffline</code>
+ <td> <code title=handler-window-onoffline><a href=#handler-window-onoffline>body</a></code>
+ <td> <code title=event-offline><a href=#event-offline>offline</a></code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-ononline> <code title="">ononline</code>
+ <td> <code title=handler-window-ononline><a href=#handler-window-ononline>body</a></code>
+ <td> <code title=event-online><a href=#event-online>online</a></code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onpagehide> <code title="">onpagehide</code>
+ <td> <code title=handler-window-onpagehide><a href=#handler-window-onpagehide>body</a></code>
+ <td> <code title=event-pagehide><a href=#event-pagehide>pagehide</a></code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onpageshow> <code title="">onpageshow</code>
+ <td> <code title=handler-window-onpageshow><a href=#handler-window-onpageshow>body</a></code>
+ <td> <code title=event-pageshow><a href=#event-pageshow>pageshow</a></code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onpause> <code title="">onpause</code>
+ <td> <a href=#handler-onpause title=handler-onpause>HTML elements</a>
+ <td> <code title=event-media-pause><a href=#event-media-pause>pause</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onplay> <code title="">onplay</code>
+ <td> <a href=#handler-onplay title=handler-onplay>HTML elements</a>
+ <td> <code title=event-media-play><a href=#event-media-play>play</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onplaying> <code title="">onplaying</code>
+ <td> <a href=#handler-onplaying title=handler-onplaying>HTML elements</a>
+ <td> <code title=event-media-playing><a href=#event-media-playing>playing</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onpopstate> <code title="">onpopstate</code>
+ <td> <code title=handler-window-onpopstate><a href=#handler-window-onpopstate>body</a></code>
+ <td> <code title=event-popstate><a href=#event-popstate>popstate</a></code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onprogress> <code title="">onprogress</code>
+ <td> <a href=#handler-onprogress title=handler-onprogress>HTML elements</a>
+ <td> <code title=event-media-progress><a href=#event-media-progress>progress</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onratechange> <code title="">onratechange</code>
+ <td> <a href=#handler-onratechange title=handler-onratechange>HTML elements</a>
+ <td> <code title=event-media-ratechange><a href=#event-media-ratechange>ratechange</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onreset> <code title="">onreset</code>
+ <td> <a href=#handler-onreset title=handler-onreset>HTML elements</a>
+ <td> <code title=event-reset>reset</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onresize> <code title="">onresize</code>
+ <td> <code title=handler-window-onresize><a href=#handler-window-onresize>body</a></code>
+ <td> <code title=event-resize>resize</code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onscroll> <code title="">onscroll</code>
+ <td> <code title=handler-window-onscroll><a href=#handler-window-onscroll>body</a></code>
+ <td> <code title=event-scroll>scroll</code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onscroll> <code title="">onscroll</code>
+ <td> <a href=#handler-onscroll title=handler-onscroll>HTML elements</a>
+ <td> <code title=event-scroll>scroll</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onseeked> <code title="">onseeked</code>
+ <td> <a href=#handler-onseeked title=handler-onseeked>HTML elements</a>
+ <td> <code title=event-media-seeked><a href=#event-media-seeked>seeked</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onseeking> <code title="">onseeking</code>
+ <td> <a href=#handler-onseeking title=handler-onseeking>HTML elements</a>
+ <td> <code title=event-media-seeking><a href=#event-media-seeking>seeking</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onselect> <code title="">onselect</code>
+ <td> <a href=#handler-onselect title=handler-onselect>HTML elements</a>
+ <td> <code title=event-select>select</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onshow> <code title="">onshow</code>
+ <td> <a href=#handler-onshow title=handler-onshow>HTML elements</a>
+ <td> <code title=event-show>show</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onstalled> <code title="">onstalled</code>
+ <td> <a href=#handler-onstalled title=handler-onstalled>HTML elements</a>
+ <td> <code title=event-media-stalled><a href=#event-media-stalled>stalled</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onstorage> <code title="">onstorage</code>
+ <td> <code title=handler-window-onstorage><a href=#handler-window-onstorage>body</a></code>
+ <td> <code title=event-storage><a href=#event-storage>storage</a></code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onsubmit> <code title="">onsubmit</code>
+ <td> <a href=#handler-onsubmit title=handler-onsubmit>HTML elements</a>
+ <td> <code title=event-submit>submit</code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onsuspend> <code title="">onsuspend</code>
+ <td> <a href=#handler-onsuspend title=handler-onsuspend>HTML elements</a>
+ <td> <code title=event-media-suspend><a href=#event-media-suspend>suspend</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-ontimeupdate> <code title="">ontimeupdate</code>
+ <td> <a href=#handler-ontimeupdate title=handler-ontimeupdate>HTML elements</a>
+ <td> <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-window-onunload> <code title="">onunload</code>
+ <td> <code title=handler-window-onunload><a href=#handler-window-onunload>body</a></code>
+ <td> <code title=event-unload>unload</code> event handler for <code><a href=#window>Window</a></code> object
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onvolumechange> <code title="">onvolumechange</code>
+ <td> <a href=#handler-onvolumechange title=handler-onvolumechange>HTML elements</a>
+ <td> <code title=event-media-volumechange><a href=#event-media-volumechange>volumechange</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ <tr><th id=ix-handler-onwaiting> <code title="">onwaiting</code>
+ <td> <a href=#handler-onwaiting title=handler-onwaiting>HTML elements</a>
+ <td> <code title=event-media-waiting><a href=#event-media-waiting>waiting</a></code> event handler
+ <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
+
+ </table><!-- v2 for completeness: (also search for REFLECTIDL)
+ <h3 class="no-num">Reflecting IDL attributes</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <table>
+ <caption>List of <dfn>reflecting IDL attributes</dfn></caption>
+ <thead>
+ <tr>
+ <th> Interface
+ <th> Element(s)
+ <th> IDL attribute
+ <th> Reflects...
+ <tbody>
+ ...
+ <tr>
+ <td> <code>HTMLElement</code>
+ <td> <span>HTML elements</span>
+ <td> <code title="dom-contextMenu">contextMenu</code>
+ <td> <code title="attr-contextmenu">contextmenu</code>
+ <tr>
+ <td> <code>HTMLOptionElement</code>
+ <td> <code>option</code>
+ <td> <code title="dom-option-text">text</code>
+ <td> <code>textContent</code>
+ </table>
+ ( include option.text; textarea.defaultValue, and other attributes that "reflect" the element's textContent )
+--><h3 class=no-num id=interfaces>Interfaces</h3>
+
+ <p><i>This section is non-normative.</i></p>
+
+ <table><caption>List of interfaces for elements</caption>
+ <thead><tr><th> Element(s)
+ <th> Interface(s)
+ <tbody><tr><td> <code><a href=#the-a-element>a</a></code>
+ <td> <code><a href=#htmlanchorelement>HTMLAnchorElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-abbr-element>abbr</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-address-element>address</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-area-element>area</a></code>
+ <td> <code><a href=#htmlareaelement>HTMLAreaElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-article-element>article</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-aside-element>aside</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-audio-element>audio</a></code>
+ <td> <code><a href=#htmlaudioelement>HTMLAudioElement</a></code> : <code><a href=#htmlmediaelement>HTMLMediaElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-b-element>b</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-base-element>base</a></code>
+ <td> <code><a href=#htmlbaseelement>HTMLBaseElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-bdi-element>bdi</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-bdo-element>bdo</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-blockquote-element>blockquote</a></code>
+ <td> <code><a href=#htmlquoteelement>HTMLQuoteElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-body-element>body</a></code>
+ <td> <code><a href=#htmlbodyelement>HTMLBodyElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-br-element>br</a></code>
+ <td> <code><a href=#htmlbrelement>HTMLBRElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-button-element>button</a></code>
+ <td> <code><a href=#htmlbuttonelement>HTMLButtonElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-canvas-element>canvas</a></code>
+ <td> <code><a href=#htmlcanvaselement>HTMLCanvasElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-caption-element>caption</a></code>
+ <td> <code><a href=#htmltablecaptionelement>HTMLTableCaptionElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-cite-element>cite</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-code-element>code</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-col-element>col</a></code>
+ <td> <code><a href=#htmltablecolelement>HTMLTableColElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-colgroup-element>colgroup</a></code>
+ <td> <code><a href=#htmltablecolelement>HTMLTableColElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-command-element>command</a></code>
+ <td> <code><a href=#htmlcommandelement>HTMLCommandElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-datalist-element>datalist</a></code>
+ <td> <code><a href=#htmldatalistelement>HTMLDataListElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-dd-element>dd</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-del-element>del</a></code>
+ <td> <code><a href=#htmlmodelement>HTMLModElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-details-element>details</a></code>
+ <td> <code><a href=#htmldetailselement>HTMLDetailsElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-dfn-element>dfn</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-div-element>div</a></code>
+ <td> <code><a href=#htmldivelement>HTMLDivElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-dl-element>dl</a></code>
+ <td> <code><a href=#htmldlistelement>HTMLDListElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-dt-element>dt</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-em-element>em</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-embed-element>embed</a></code>
+ <td> <code><a href=#htmlembedelement>HTMLEmbedElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-fieldset-element>fieldset</a></code>
+ <td> <code><a href=#htmlfieldsetelement>HTMLFieldSetElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-figcaption-element>figcaption</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-figure-element>figure</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-footer-element>footer</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-form-element>form</a></code>
+ <td> <code><a href=#htmlformelement>HTMLFormElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-head-element>head</a></code>
+ <td> <code><a href=#htmlheadelement>HTMLHeadElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>
+ <td> <code><a href=#htmlheadingelement>HTMLHeadingElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>
+ <td> <code><a href=#htmlheadingelement>HTMLHeadingElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>
+ <td> <code><a href=#htmlheadingelement>HTMLHeadingElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>
+ <td> <code><a href=#htmlheadingelement>HTMLHeadingElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>
+ <td> <code><a href=#htmlheadingelement>HTMLHeadingElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>
+ <td> <code><a href=#htmlheadingelement>HTMLHeadingElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-header-element>header</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-hgroup-element>hgroup</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-hr-element>hr</a></code>
+ <td> <code><a href=#htmlhrelement>HTMLHRElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-html-element>html</a></code>
+ <td> <code><a href=#htmlhtmlelement>HTMLHtmlElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-i-element>i</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-iframe-element>iframe</a></code>
+ <td> <code><a href=#htmliframeelement>HTMLIFrameElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-img-element>img</a></code>
+ <td> <code><a href=#htmlimageelement>HTMLImageElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-input-element>input</a></code>
+ <td> <code><a href=#htmlinputelement>HTMLInputElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-ins-element>ins</a></code>
+ <td> <code><a href=#htmlmodelement>HTMLModElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-kbd-element>kbd</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-keygen-element>keygen</a></code>
+ <td> <code><a href=#htmlkeygenelement>HTMLKeygenElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-label-element>label</a></code>
+ <td> <code><a href=#htmllabelelement>HTMLLabelElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-legend-element>legend</a></code>
+ <td> <code><a href=#htmllegendelement>HTMLLegendElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-li-element>li</a></code>
+ <td> <code><a href=#htmllielement>HTMLLIElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-link-element>link</a></code>
+ <td> <code><a href=#htmllinkelement>HTMLLinkElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-map-element>map</a></code>
+ <td> <code><a href=#htmlmapelement>HTMLMapElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-mark-element>mark</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-menu-element>menu</a></code>
+ <td> <code><a href=#htmlmenuelement>HTMLMenuElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-meta-element>meta</a></code>
+ <td> <code><a href=#htmlmetaelement>HTMLMetaElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-meter-element>meter</a></code>
+ <td> <code><a href=#htmlmeterelement>HTMLMeterElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-nav-element>nav</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-noscript-element>noscript</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-object-element>object</a></code>
+ <td> <code><a href=#htmlobjectelement>HTMLObjectElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-ol-element>ol</a></code>
+ <td> <code><a href=#htmlolistelement>HTMLOListElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-optgroup-element>optgroup</a></code>
+ <td> <code><a href=#htmloptgroupelement>HTMLOptGroupElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-option-element>option</a></code>
+ <td> <code><a href=#htmloptionelement>HTMLOptionElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-output-element>output</a></code>
+ <td> <code><a href=#htmloutputelement>HTMLOutputElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-p-element>p</a></code>
+ <td> <code><a href=#htmlparagraphelement>HTMLParagraphElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-param-element>param</a></code>
+ <td> <code><a href=#htmlparamelement>HTMLParamElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-pre-element>pre</a></code>
+ <td> <code><a href=#htmlpreelement>HTMLPreElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-progress-element>progress</a></code>
+ <td> <code><a href=#htmlprogresselement>HTMLProgressElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-q-element>q</a></code>
+ <td> <code><a href=#htmlquoteelement>HTMLQuoteElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-rp-element>rp</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-rt-element>rt</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-ruby-element>ruby</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-s-element>s</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-samp-element>samp</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-script-element>script</a></code>
+ <td> <code><a href=#htmlscriptelement>HTMLScriptElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-section-element>section</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-select-element>select</a></code>
+ <td> <code><a href=#htmlselectelement>HTMLSelectElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-small-element>small</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-source-element>source</a></code>
+ <td> <code><a href=#htmlsourceelement>HTMLSourceElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-span-element>span</a></code>
+ <td> <code><a href=#htmlspanelement>HTMLSpanElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-strong-element>strong</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-style-element>style</a></code>
+ <td> <code><a href=#htmlstyleelement>HTMLStyleElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-sub-and-sup-elements>sub</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-summary-element>summary</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-sub-and-sup-elements>sup</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-table-element>table</a></code>
+ <td> <code><a href=#htmltableelement>HTMLTableElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-tbody-element>tbody</a></code>
+ <td> <code><a href=#htmltablesectionelement>HTMLTableSectionElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-td-element>td</a></code>
+ <td> <code><a href=#htmltabledatacellelement>HTMLTableDataCellElement</a></code> : <code><a href=#htmltablecellelement>HTMLTableCellElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-textarea-element>textarea</a></code>
+ <td> <code><a href=#htmltextareaelement>HTMLTextAreaElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-tfoot-element>tfoot</a></code>
+ <td> <code><a href=#htmltablesectionelement>HTMLTableSectionElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-th-element>th</a></code>
+ <td> <code><a href=#htmltableheadercellelement>HTMLTableHeaderCellElement</a></code> : <code><a href=#htmltablecellelement>HTMLTableCellElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-thead-element>thead</a></code>
+ <td> <code><a href=#htmltablesectionelement>HTMLTableSectionElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-time-element>time</a></code>
+ <td> <code><a href=#htmltimeelement>HTMLTimeElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-title-element>title</a></code>
+ <td> <code><a href=#htmltitleelement>HTMLTitleElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-tr-element>tr</a></code>
+ <td> <code><a href=#htmltablerowelement>HTMLTableRowElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-track-element>track</a></code>
+ <td> <code><a href=#htmltrackelement>HTMLTrackElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-u-element>u</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-ul-element>ul</a></code>
+ <td> <code><a href=#htmlulistelement>HTMLUListElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-var-element>var</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-video-element>video</a></code>
+ <td> <code><a href=#htmlvideoelement>HTMLVideoElement</a></code> : <code><a href=#htmlmediaelement>HTMLMediaElement</a></code> : <code><a href=#htmlelement>HTMLElement</a></code>
+
+ <tr><td> <code><a href=#the-wbr-element>wbr</a></code>
+ <td> <code><a href=#htmlelement>HTMLElement</a></code>
+
+ </table><h2 class=no-num id=references>References</h2><!--REFS-->
+
+ <p>All references are normative unless marked "Non-normative".</p>
+
+ <!-- Dates are only included for standards older than the Web, because the newer ones keep changing. -->
+
+ <dl><dt id=refsABNF>[ABNF]</dt>
+ <dd><cite><a href=http://www.ietf.org/rfc/std/std68.txt>Augmented
+ BNF for Syntax Specifications: ABNF</a></cite>, D. Crocker,
+ P. Overell. IETF.</dd>
+
+ <dt id=refsABOUT>[ABOUT]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/draft-holsten-about-uri-scheme>The
+ 'about' URI scheme</a></cite>, J. Holsten, L. Hunt. IETF.</dd>
+
+ <dt id=refsAES128CTR>[AES128CTR]</dt>
+ <dd><cite><a href=http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf>Advanced Encryption Standard (AES)</a></cite>. NIST.</dd>
+
+ <dt id=refsARIA>[ARIA]</dt>
+ <dd><cite><a href=http://www.w3.org/WAI/PF/aria/>Accessible Rich
+ Internet Applications (WAI-ARIA)</a></cite>, J. Craig, M. Cooper, L. Pappas,
+ R. Schwerdtfeger, L. Seeman. W3C.</dd>
+
+ <dt id=refsARIAIMPL>[ARIAIMPL]</dt>
+ <dd><cite><a href=http://www.w3.org/WAI/PF/aria-implementation/>WAI-ARIA 1.0
+ User Agent Implementation Guide</a></cite>, A. Snow-Weaver,
+ M. Cooper. W3C.</dd>
+
+ <dt id=refsATAG>[ATAG]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.w3.org/TR/ATAG20/>Authoring Tool Accessibility
+ Guidelines (ATAG) 2.0</a></cite>, J. Richards, J. Spellman,
+ J. Treviranus. W3C.</dd>
+
+ <dt id=refsATOM>[ATOM]</dt>
+ <dd>(Non-normative) <cite><a href=http://tools.ietf.org/html/rfc4287>The Atom Syndication
+ Format</a></cite>, M. Nottingham, R. Sayre. IETF.</dd>
+
+ <dt id=refsBCP47>[BCP47]</dt>
+ <dd><cite><a href=http://www.ietf.org/rfc/bcp/bcp47.txt>Tags for
+ Identifying Languages; Matching of Language Tags</a></cite>,
+ A. Phillips, M. Davis. IETF.</dd>
+
+ <dt id=refsBECSS>[BECSS]</dt>
+ <dd><cite><a href=http://www.w3.org/TR/becss/>Behavioral
+ Extensions to CSS</a></cite>, I. Hickson. W3C.</dd>
+
+ <dt id=refsBEZIER>[BEZIER]</dt>
+ <dd><cite>Courbes &agrave; poles</cite>, P. de Casteljau. INPI, 1959.</dd>
+
+ <dt id=refsBIDI>[BIDI]</dt>
+ <dd><cite><a href=http://www.unicode.org/reports/tr9/>UAX #9: Unicode
+ Bidirectional Algorithm</a></cite>, M. Davis. Unicode Consortium.</dd>
+
+ <dt id=refsBOCU1>[BOCU1]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.unicode.org/notes/tn6/>UTN #6: BOCU-1:
+ MIME-Compatible Unicode Compression</a></cite>, M. Scherer,
+ M. Davis. Unicode Consortium.</dd>
+
+ <dt id=refsCESU8>[CESU8]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.unicode.org/reports/tr26/>UTR #26: Compatibility
+ Encoding Scheme For UTF-16: 8-BIT (CESU-8)</a></cite>,
+ T. Phipps. Unicode Consortium.</dd>
+
+ <dt id=refsCHARMOD>[CHARMOD]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.w3.org/TR/charmod/>Character Model for the World
+ Wide Web 1.0: Fundamentals</a></cite>, M. D&uuml;rst, F. Yergeau,
+ R. Ishida, M. Wolf, T. Texin. W3C.</dd>
+
+ <dt id=refsCOMPUTABLE>[COMPUTABLE]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.turingarchive.org/browse.php/B/12>On computable
+ numbers, with an application to the
+ Entscheidungsproblem</a></cite>, A. Turing. In <cite>Proceedings of
+ the London Mathematical Society</cite>, series 2, volume 42, pages
+ 230-265. London Mathematical Society, 1937.</dd>
+
+ <dt id=refsCOOKIES>[COOKIES]</dt>
+ <!--
+ <dd><cite><a href="http://tools.ietf.org/html/rfc2109">HTTP State Management Mechanism</a></cite>, D. Kristol, L. Montulli. IETF.</dd>
+ <dd><cite><a href="http://tools.ietf.org/html/rfc2965">HTTP State Management Mechanism</a></cite>, D. Kristol, L. Montulli. IETF.</dd>
+ -->
+ <dd><cite><a href=http://tools.ietf.org/html/rfc6265>HTTP State Management Mechanism</a></cite>, A. Barth. IETF.</dd>
+
+ <dt id=refsCORS>[CORS]</dt>
+ <!--
+ <dd><cite><a href="http://www.w3.org/TR/cors/">Cross-Origin
+ Resource Sharing</a></cite>, A. van Kesteren. W3C.</dd>
+ -->
+ <dd><cite><a href=http://dev.w3.org/2006/waf/access-control/>Cross-Origin
+ Resource Sharing</a></cite>, A. van Kesteren. W3C.</dd>
+
+ <dt id=refsCP51932>[CP51932]</dt>
+ <dd><cite><a href=http://www.iana.org/assignments/charset-reg/CP51932>CP51932</a></cite>,
+ Y. Naruse. IANA.</dd> <!-- really should be "NARUSE, Y." or some
+ such, but there's a western bias to these references for
+ consistency. sorry. -->
+
+ <dt id=refsCSS>[CSS]</dt>
+ <dd><cite><a href=http://www.w3.org/TR/CSS/>Cascading Style Sheets Level 2
+ Revision 1</a></cite>, B. Bos, T. &Ccedil;elik, I.
+ Hickson, H. Lie. W3C.</dd>
+
+ <dt id=refsCSSATTR>[CSSATTR]</dt>
+ <dd><cite><a href=http://dev.w3.org/csswg/css-style-attr/>CSS Styling Attribute Syntax</a></cite>, T. &Ccedil;elik, E. Etemad. W3C.</dd>
+
+ <dt id=refsCSSCOLOR>[CSSCOLOR]</dt>
+ <!--
+ <dd><cite><a href="http://www.w3.org/TR/css3-color/">CSS Color
+ Module Level 3</a></cite>, T. &Ccedil;elik, C. Lilley, L.
+ Baron. W3C.</dd>
+ -->
+ <dd><cite><a href=http://dev.w3.org/csswg/css3-color/>CSS Color
+ Module Level 3</a></cite>, T. &Ccedil;elik, C. Lilley, L.
+ Baron. W3C.</dd>
+
+ <dt id=refsCSSFONTS>[CSSFONTS]</dt>
+ <dd><cite><a href=http://www.w3.org/TR/css3-fonts/>CSS Fonts
+ Module Level 3</a></cite>, J. Daggett. W3C.</dd>
+
+ <dt id=refsCSSIMAGES>[CSSIMAGES]</dt>
+ <dd><cite><a href=http://dev.w3.org/csswg/css3-images/>CSS Image
+ Values and Replaced Content Module Level 3</a></cite>, E. Etemad,
+ T. Atkins. W3C.</dd>
+
+ <dt id=refsCSSOM>[CSSOM]</dt>
+ <dd><cite><a href=http://dev.w3.org/csswg/cssom/>Cascading Style Sheets
+ Object Model (CSSOM)</a></cite>, A. van Kesteren. W3C.</dd>
+
+ <dt id=refsCSSOMVIEW>[CSSOMVIEW]</dt>
+ <dd><cite><a href=http://dev.w3.org/csswg/cssom-view/>CSSOM View
+ Module</a></cite>, A. van Kesteren. W3C.</dd>
+
+ <dt id=refsCSSRUBY>[CSSRUBY]</dt>
+ <dd><cite><a href=http://dev.w3.org/csswg/css3-ruby/>CSS3 Ruby
+ Module</a></cite>, R. Ishida. W3C.</dd>
+
+ <dt id=refsCSSUI>[CSSUI]</dt>
+ <dd><cite><a href=http://dev.w3.org/csswg/css3-ui/>CSS3 Basic User
+ Interface Module</a></cite>, T. &Ccedil;elik. W3C.</dd>
+
+ <dt id=refsCSSVALUES>[CSSVALUES]</dt>
+ <dd><cite><a href=http://dev.w3.org/csswg/css3-values/>CSS3
+ Values and Units</a></cite>, H. Lie, C. Lilley. W3C.</dd>
+
+ <dt id=refsDOMCORE>[DOMCORE]</dt>
+ <dd><cite><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html>Web DOM Core</a></cite>, A. van Kesteren. W3C.</dd>
+
+ <dt id=refsDOMEVENTS>[DOMEVENTS]</dt>
+ <!--
+ <dd><cite><a
+ href="http://www.w3.org/TR/DOM-Level-3-Events/">Document Object
+ Model (DOM) Level 3 Events Specification</a></cite>,
+ B. H&ouml;hrmann, P. Le Hegaret, T. Pixley. W3C.</dd>
+ -->
+ <dd><cite><a href=http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html>Document
+ Object Model (DOM) Level 3 Events Specification</a></cite>,
+ D. Schepers. W3C.</dd>
+
+ <dt id=refsDOMPARSING>[DOMPARSING]</dt>
+ <dd><cite><a href=http://html5.org/specs/dom-parsing.html>DOM Parsing and Serialization</a></cite>, Ms2ger. html5.org.</dd>
+
+ <dt id=refsDOMRANGE>[DOMRANGE]</dt>
+ <dd><cite><a href=http://html5.org/specs/dom-range.html>DOM Range</a></cite>, A. Gregor, Ms2ger. html5.org.</dd>
+
+ <dt id=refsE163>[E163]</dt>
+ <dd><cite>Recommendation E.163 &mdash; Numbering Plan for The International
+ Telephone Service</cite>, CCITT Blue Book, Fascicle II.2, pp. 128-134, November
+ 1988.</dd>
+
+ <dt id=refsECMA262>[ECMA262]</dt>
+ <dd><cite><a href=http://www.ecma-international.org/publications/standards/Ecma-262.htm>ECMAScript
+ Language Specification</a></cite>. ECMA.</dd>
+
+ <dt id=refsEDITING>[EDITING]</dt>
+ <dd><cite><a href=http://aryeh.name/spec/editing/editing.html>HTML Editing APIs</a></cite>, A. Gregor.</dd>
+
+ <dt id=refsECMA357>[ECMA357]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.ecma-international.org/publications/standards/Ecma-357.htm>ECMAScript
+ for XML (E4X) Specification</a></cite>. ECMA.</dd>
+
+ <dt id=refsEUCKR>[EUCKR]</dt>
+ <dd><cite>Hangul Unix Environment</cite>. Korea Industrial
+ Standards Association. Ref. No. KS C 5861-1992.</dd>
+
+ <dt id=refsEUCJP>[EUCJP]</dt>
+ <dd><cite>Definition and Notes of Japanese EUC</cite>. UI-OSF-USLP. In English in the abridged translation of the <a href=http://home.m05.itscom.net/numa/uocjleE.pdf>UI-OSF Application Platform Profile for Japanese Environment</a>, Appendix C.</dd>
+
+ <dt id=refsFILEAPI>[FILEAPI]</dt>
+ <dd><cite><a href=http://dev.w3.org/2006/webapi/FileUpload/publish/FileAPI.html>File
+ API</a></cite>, A. Ranganathan. W3C.</dd>
+
+ <dt id=refsFILESYSTEMAPI>[FILESYSTEMAPI]</dt>
+ <dd><cite><a href=http://dev.w3.org/2009/dap/file-system/file-dir-sys.html>File
+ API: Directories and System</a></cite>, E. Uhrhane. W3C.</dd>
+
+ <dt id=refsGBK>[GBK]</dt>
+ <dd><cite>Chinese Internal Code Specification</cite>. Chinese IT
+ Standardization Technical Committee.</dd>
+ <!-- http://www.iana.org/assignments/charset-reg/GBK -->
+
+ <dt id=refsGRAPHICS>[GRAPHICS]</dt>
+ <dd>(Non-normative) <cite>Computer Graphics: Principles and
+ Practice in C</cite>, Second Edition, J. Foley, A. van Dam,
+ S. Feiner, J. Hughes. Addison-Wesley. ISBN
+ 0-201-84840-6.</dd>
+ <!--
+ This book ("Computer Graphics: Principles and Practice in C")
+ apparently does not make any references to literature in the
+ bibliographic section to define the "even-odd" rule for polygon
+ filling and hit testing. In the absence of such a reference, I
+ guess that this book is the most authoritative reference.
+ -->
+
+ <dt id=refsGREGORIAN>[GREGORIAN]</dt>
+ <dd>(Non-normative) <cite>Inter Gravissimas</cite>, A. Lilius,
+ C. Clavius. Gregory XIII Papal Bulls, February 1582.</dd>
+
+ <dt id=refsHATOM>[HATOM]</dt>
+ <dd>(Non-normative) <cite><a href=http://microformats.org/wiki/hatom>hAtom</a></cite>, D
+ Janes. Microformats.</dd>
+
+ <dt id=refsHMAC>[HMAC]</dt>
+ <dd><cite><a href=http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf>The Keyed-Hash Message Authentication Code (HMAC)</a></cite>. NIST.</dd>
+
+ <dt id=refsHTMLDIFF>[HTMLDIFF]</dt>
+ <!--
+ <dd>(Non-normative) <cite><a
+ href="http://www.w3.org/TR/html5-diff/">HTML5 differences from
+ HTML4</a></cite>, A. van Kesteren. W3C.</dd>
+ -->
+ <dd>(Non-normative) <cite><a href=http://dev.w3.org/html5/html4-differences/>HTML5
+ differences from HTML4</a></cite>, A. van Kesteren. W3C.</dd>
+
+ <dt id=refsHTTP>[HTTP]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2616>Hypertext
+ Transfer Protocol &mdash; HTTP/1.1</a></cite>, R. Fielding, J. Gettys,
+ J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee. IETF.</dd>
+
+ <dt id=refsIANACHARSET>[IANACHARSET]</dt>
+ <dd><cite><a href=http://www.iana.org/assignments/character-sets>Character
+ Sets</a></cite>. IANA.</dd>
+
+ <dt id=refsIANAPERMHEADERS>[IANAPERMHEADERS]</dt>
+ <dd><cite><a href=http://www.iana.org/assignments/message-headers/perm-headers.html>Permanent
+ Message Header Field Names</a></cite>. IANA.</dd>
+
+ <dt id=refsICE>[ICE]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc5245>Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols</a></cite>, J. Rosenberg. IETF.</dd>
+
+ <dt id=refsISO8601>[ISO8601]</dt>
+ <dd><cite><a href="http://isotc.iso.org/livelink/livelink/4021199/ISO_8601_2004_E.zip?func=doc.Fetch&amp;nodeid=4021199">ISO8601: Data elements and interchange formats &mdash; Information interchange &mdash; Representation of dates and times</a></cite>. ISO.</dd>
+
+ <dt id=refsISO885911>[ISO885911]</dt>
+ <dd><cite><a href=http://std.dkuug.dk/jtc1/sc2/open/02n3333.pdf>ISO-8859-11:
+ Information technology &mdash; 8-bit single-byte coded graphic
+ character sets &mdash; Part 11: Latin/Thai
+ alphabet</a></cite>. ISO.</dd>
+
+ <dt id=refsJPEG>[JPEG]</dt>
+ <dd><cite><a href=http://www.w3.org/Graphics/JPEG/jfif3.pdf>JPEG File Interchange Format</a></cite>, E. Hamilton.</dd>
+
+ <dt id=refsJSON>[JSON]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc4627>The
+ application/json Media Type for JavaScript Object Notation
+ (JSON)</a></cite>, D. Crockford. IETF.</dd>
+
+ <dt id=refsJSURL>[JSURL]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/draft-hoehrmann-javascript-scheme>The
+ 'javascript' resource identifier scheme</a></cite>,
+ B. H&ouml;hrmann. IETF.</dd>
+
+ <dt id=refsMAILTO>[MAILTO]</dt>
+ <dd>(Non-normative) <cite><a href=http://tools.ietf.org/html/rfc6068>The 'mailto' URI scheme</a></cite>, M. Duerst, L. Masinter, J. Zawinski. IETF.</dd>
+
+ <dt id=refsMATHML>[MATHML]</dt>
+ <dd><cite><a href=http://www.w3.org/TR/MathML/>Mathematical
+ Markup Language (MathML)</a></cite>, D. Carlisle, P. Ion, R. Miner,
+ N. Poppelier. W3C.</dd>
+
+ <dt id=refsMEDIAFRAG>[MEDIAFRAG]</dt>
+ <dd><cite><a href=http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-spec/>Media
+ Fragments URI</a></cite>, R. Troncy, E. Mannens, S. Pfeiffer, D.
+ Van Deursen. W3C.</dd>
+
+ <dt id=refsMFREL>[MFREL]</dt>
+ <dd><cite><a href=http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions>Microformats Wiki: existing rel values</a></cite>. Microformats.</dd>
+
+ <dt id=refsMIMESNIFF>[MIMESNIFF]</dt>
+ <dd><cite><a href=http://mimesniff.spec.whatwg.org/>MIME Sniffing</a></cite>, A. Barth, I. Hickson. WHATWG.</dd>
+
+ <dt id=refsMQ>[MQ]</dt>
+ <!--
+ <dd><cite><a href="http://www.w3.org/TR/css3-mediaqueries/">Media
+ Queries</a></cite>, H. Lie, T. &Ccedil;elik, D. Glazman, A. van
+ Kesteren. W3C.</dd>
+ -->
+ <dd><cite><a href=http://dev.w3.org/csswg/css3-mediaqueries/>Media
+ Queries</a></cite>, H. Lie, T. &Ccedil;elik, D. Glazman, A. van
+ Kesteren. W3C.</dd>
+
+ <dt id=refsNPAPI>[NPAPI]</dt>
+ <dd>(Non-normative) <cite><a href=https://developer.mozilla.org/en/Gecko_Plugin_API_Reference>Gecko
+ Plugin API Reference</a></cite>. Mozilla.</dd>
+
+ <dt id=refsOPENSEARCH>[OPENSEARCH]</dt>
+ <dd><cite><a href=http://www.opensearch.org/Specifications/OpenSearch/1.1#Autodiscovery_in_HTML.2FXHTML>Autodiscovery
+ in HTML/XHTML</a></cite>. In <cite>OpenSearch 1.1 Draft 4</cite>,
+ Section 4.6.2. OpenSearch.org.</dd>
+
+ <dt id=refsORIGIN>[ORIGIN]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/draft-ietf-websec-origin>The Web Origin Concept</a></cite>, A. Barth. IETF.</dd>
+
+ <dt id=refsPDF>[PDF]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.adobe.com/devnet/acrobat/pdfs/PDF32000_2008.pdf>Document management &mdash; Portable document format &mdash; Part 1: PDF</a></cite>. ISO.</dd>
+
+ <dt id=refsPINGBACK>[PINGBACK]</dt>
+ <dd><cite><a href=http://www.hixie.ch/specs/pingback/pingback>Pingback
+ 1.0</a></cite>, S. Langridge, I. Hickson.</dd>
+
+ <dt id=refsPNG>[PNG]</dt>
+ <dd><cite><a href=http://www.w3.org/TR/PNG/>Portable Network
+ Graphics (PNG) Specification</a></cite>, D. Duce. W3C.</dd>
+
+ <dt id=refsPOLYGLOT>[POLYGLOT]</dt>
+ <dd>(Non-normative) <cite><a href=http://dev.w3.org/html5/html-xhtml-author-guide/html-xhtml-authoring-guide.html>Polyglot
+ Markup: HTML-Compatible XHTML Documents</a></cite>, E. Graff.
+ W3C.</dd>
+
+ <dt id=refsPORTERDUFF>[PORTERDUFF]</dt>
+ <dd><cite><a href=http://keithp.com/~keithp/porterduff/p253-porter.pdf>Compositing
+ Digital Images</a></cite>, T. Porter, T. Duff. In <cite>Computer
+ graphics</cite>, volume 18, number 3, pp. 253-259. ACM Press, July
+ 1984.</dd>
+
+ <dt id=refsPPUTF8>[PPUTF8]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.ifi.uzh.ch/mml/mduerst/papers/PDF/IUC11-UTF-8.pdf>The
+ Properties and Promises <!-- Promizes (sic) --> of
+ UTF-8</a></cite>, M. D&uuml;rst. University of Z&uuml;rich. In <cite>Proceedings of the 11th International
+ Unicode Conference</cite>.</dd>
+
+ <dt id=refsPROGRESS>[PROGRESS]</dt>
+ <dd><cite><a href=http://dev.w3.org/2006/webapi/progress/>Progress
+ Events</a></cite>, A. van Kesteren. W3C.</dd>
+
+ <dt id=refsPSL>[PSL]</dt>
+ <dd><cite><a href=http://publicsuffix.org/>Public Suffix List</a></cite>.
+ Mozilla Foundation.</dd>
+
+ <dt id=refsRFC1034>[RFC1034]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc1034>Domain
+ Names - Concepts and Facilities</a></cite>, P. Mockapetris. IETF,
+ November 1987.</dd>
+
+ <dt id=refsRFC1345>[RFC1345]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc1345>Character Mnemonics
+ and Character Sets</a></cite>, K. Simonsen. IETF.</dd>
+
+ <dt id=refsRFC1468>[RFC1468]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc1468>Japanese Character
+ Encoding for Internet Messages</a></cite>, J. Murai, M. Crispin, E. van der
+ Poel. IETF.</dd>
+
+ <dt id=refsRFC1554>[RFC1554]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc1554>ISO-2022-JP-2:
+ Multilingual Extension of ISO-2022-JP</a></cite>, M. Ohta, K. Handa. IETF.</dd>
+
+ <dt id=refsRFC1557>[RFC1557]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc1557>Korean Character
+ Encoding for Internet Messages</a></cite>, U. Choi, K. Chon, H. Park. IETF.</dd>
+
+ <dt id=refsRFC1842>[RFC1842]</dt>
+
+ <dd><cite><a href=http://tools.ietf.org/html/rfc1842>ASCII
+ Printable Characters-Based Chinese Character Encoding for Internet
+ Messages</a></cite>, Y. Wei, Y. Zhang, J. Li, J. Ding, Y. Jiang.
+ IETF.</dd>
+
+ <dt id=refsRFC1922>[RFC1922]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc1922>Chinese Character
+ Encoding for Internet Messages</a></cite>, HF. Zhu, DY. Hu, ZG. Wang, TC. Kao,
+ WCH. Chang, M. Crispin. IETF.</dd>
+
+ <dt id=refsRFC2046>[RFC2046]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2046>Multipurpose Internet
+ Mail Extensions (MIME) Part Two: Media Types</a></cite>, N. Freed,
+ N. Borenstein. IETF.</dd> <!-- for text/plain and
+ "Internet Media type"; not for definition of "valid MIME type". -->
+
+ <dt id=refsRFC2119>[RFC2119]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2119>Key words for use in
+ RFCs to Indicate Requirement Levels</a></cite>, S. Bradner. IETF.</dd>
+
+ <dt id=refsRFC2237>[RFC2237]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2237>Japanese Character
+ Encoding for Internet Messages</a></cite>, K. Tamaru. IETF.</dd>
+
+ <dt id=refsRFC2313>[RFC2313]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2313>PKCS #1:
+ RSA Encryption</a></cite>, B. Kaliski. IETF.</dd>
+
+ <dt id=refsRFC2318>[RFC2318]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2318>The
+ text/css Media Type</a></cite>, H. Lie, B. Bos, C. Lilley. IETF.</dd>
+
+ <dt id=refsRFC2388>[RFC2388]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2388>Returning Values from
+ Forms: multipart/form-data</a></cite>, L. Masinter. IETF.</dd>
+
+ <dt id=refsRFC2397>[RFC2397]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2397>The "data"
+ URL scheme</a></cite>, L. Masinter. IETF.</dd>
+
+ <dt id=refsRFC2425>[RFC2425]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2425>A MIME
+ Content-Type for Directory Information</a></cite>, T. Howes,
+ M. Smith, F. Dawson. IETF.</dd>
+
+ <dt id=refsRFC2426>[RFC2426]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2426>vCard MIME Directory
+ Profile</a></cite>, F. Dawson, T. Howes. IETF.</dd>
+
+ <dt id=refsRFC2445>[RFC2445]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2445>Internet Calendaring
+ and Scheduling Core Object Specification (iCalendar)</a></cite>, F. Dawson, D.
+ Stenerson. IETF.</dd>
+
+ <dt id=refsRFC2483>[RFC2483]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2483>URI Resolution
+ Services Necessary for URN Resolution</a></cite>, M. Mealling, R. Daniel.
+ IETF.</dd>
+
+ <dt id=refsRFC2781>[RFC2781]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2781>UTF-16, an
+ encoding of ISO 10646</a></cite>, P. Hoffman, F. Yergeau. IETF.</dd>
+
+ <dt id=refsRFC3676>[RFC3676]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc3676>The Text/Plain Format
+ and DelSp Parameters</a></cite>, R. Gellens. IETF.</dd>
+
+ <dt id=refsRFC3023>[RFC3023]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc3023>XML Media
+ Types</a></cite>, M. Murata, S. St. Laurent, D. Kohn. IETF.</dd>
+
+ <dt id=refsRFC3279>[RFC3279]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc3279>Algorithms
+ and Identifiers for the Internet X.509 Public Key Infrastructure
+ Certificate and Certificate Revocation List (CRL)
+ Profile</a></cite>, W. Polk, R. Housley, L. Bassham. IETF.</dd>
+
+ <dt id=refsRFC3490>[RFC3490]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc3490>Internationalizing
+ Domain Names in Applications (IDNA)</a></cite>, P. Faltstrom, P. Hoffman, A.
+ Costello. IETF.</dd>
+
+ <dt id=refsRFC3629>[RFC3629]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc3629>UTF-8, a
+ transformation format of ISO 10646</a></cite>, F. Yergeau. IETF.</dd>
+
+ <dt id=refsRFC3864>[RFC3864]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc3864>Registration Procedures
+ for Message Header Fields</a></cite>, G. Klyne, M. Nottingham,
+ J. Mogul. IETF.</dd>
+
+ <dt id=refsRFC3986>[RFC3986]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc3986>Uniform Resource
+ Identifier (URI): Generic Syntax</a></cite>, T. Berners-Lee, R. Fielding, L.
+ Masinter. IETF.</dd>
+
+ <dt id=refsRFC3987>[RFC3987]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc3987>Internationalized
+ Resource Identifiers (IRIs)</a></cite>, M. D&uuml;rst, M. Suignard. IETF.</dd>
+
+ <dt id=refsRFC4281>[RFC4281]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc4281>The Codecs Parameter
+ for "Bucket" Media Types</a></cite>, R. Gellens, D. Singer, P. Frojdh. IETF.</dd>
+
+ <dt id=refsRFC4329>[RFC4329]</dt>
+ <dd>(Non-normative) <cite><a href=http://tools.ietf.org/html/rfc4329>Scripting Media
+ Types</a></cite>, B. H&ouml;hrmann. IETF.</dd>
+
+ <dt id=refsRFC4395>[RFC4395]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc4395>Guidelines and Registration Procedures for New URI Schemes</a></cite>, T. Hansen, T. Hardie, L. Masinter. IETF.</dd>
+
+ <dt id=refsRFC4648>[RFC4648]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc4648>The Base16,
+ Base32, and Base64 Data Encodings</a></cite>, S. Josefsson.
+ IETF.</dd>
+
+ <dt id=refsRFC4770>[RFC4770]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc4770>vCard Extensions for
+ Instant Messaging (IM)</a></cite>, C. Jennings, J. Reschke. IETF.</dd>
+
+ <dt id=refsRFC5280>[RFC5280]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc5280>Internet
+ X.509 Public Key Infrastructure Certificate and Certificate
+ Revocation List (CRL) Profile</a></cite>, D. Cooper, S. Santesson,
+ S. Farrell, S. Boeyen, R. Housley, W. Polk. IETF.</dd>
+
+ <dt id=refsRFC5322>[RFC5322]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc5322>Internet Message
+ Format</a></cite>, P. Resnick. IETF.</dd>
+
+ <dt id=refsRFC5724>[RFC5724]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc5724>URI Scheme
+ for Global System for Mobile Communications (GSM) Short Message
+ Service (SMS)</a></cite>, E. Wilde, A. Vaha-Sipila. IETF.</dd>
+
+ <dt id=refsRFC6266>[RFC6266]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc6266>Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)</a></cite>, J. Reschke. IETF.</dd>
+
+ <dt id=refsSCSU>[SCSU]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.unicode.org/reports/tr6/>UTR #6: A Standard
+ Compression Scheme For Unicode</a></cite>, M. Wolf, K. Whistler,
+ C. Wicksteed, M. Davis, A. Freytag, M. Scherer. Unicode Consortium.</dd>
+
+ <dt id=refsSDP>[SDP]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc4566>SDP: Session Description Protocol</a></cite>, M. Handley, V. Jacobson, C. Perkins. IETF.</dd>
+
+ <dt id=refsSDPLABEL>[SDPLABEL]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc4574>The Session Description Protocol (SDP) Label Attribute</a></cite>, O. Levin, G. Camarillo. IETF.</dd>
+
+ <dt id=refsSDPOFFERANSWER>[SDPOFFERANSWER]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc3264>An Offer/Answer Model with the Session Description Protocol (SDP)</a></cite>, J. Rosenberg, H. Schulzrinne. IETF.</dd>
+
+ <dt id=refsSELECTORS>[SELECTORS]</dt>
+ <dd><cite><a href=http://dev.w3.org/csswg/selectors4/>Selectors</a></cite>, E. Etemad, T. &Ccedil;elik, D. Glazman, I. Hickson, P. Linss, J. Williams. W3C.</dd>
+
+ <dt id=refsSHA1>[SHA1]</dt>
+ <dd><cite><a href=http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf>Secure Hash Standard</a></cite>. NIST.</dd>
+
+ <dt id=refsSHIFTJIS>[SHIFTJIS]</dt>
+ <dd><cite>JIS X0208: 7-bit and 8-bit double byte coded KANJI sets
+ for information interchange</cite>. Japanese Industrial Standards Committee.</dd>
+
+ <dt id=refsSRGB>[SRGB]</dt>
+ <dd><cite lang=en-GB><a href="http://webstore.iec.ch/webstore/webstore.nsf/artnum/025408!OpenDocument&amp;Click=">IEC
+ 61966-2-1: Multimedia systems and equipment &mdash; Colour measurement
+ and management &mdash; Part 2-1: Colour management &mdash; Default RGB colour
+ space &mdash; sRGB</a></cite>. IEC.</dd>
+
+ <dt id=refsSTUN>[STUN]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc5389>Session Traversal Utilities for NAT (STUN)</a></cite>, J. Rosenberg, R. Mahy, P. Matthews, D. Wing. IETF.</dd>
+
+ <dt id=refsSVG>[SVG]</dt>
+ <dd><cite><a href=http://www.w3.org/TR/SVGTiny12/>Scalable Vector
+ Graphics (SVG) Tiny 1.2 Specification</a></cite>, O. Andersson,
+ R. Berjon, E. Dahlstr&ouml;m, A. Emmons, J. Ferraiolo, A. Grasso,
+ V. Hardy, S. Hayman, D. Jackson, C. Lilley, C. McCormack,
+ A. Neumann, C. Northway, A. Quint, N. Ramani, D. Schepers,
+ A. Shellshear. W3C.</dd>
+
+ <dt id=refsTIS620>[TIS620]</dt>
+ <dd><cite><a href=http://www.nectec.or.th/it-standards/std620/std620.htm>UDC
+ 681.3.04:003.62</a></cite>. Thai Industrial Standards Institute,
+ Ministry of Industry, Royal Thai Government. ISBN
+ 974-606-153-4.</dd>
+
+ <dt id=refsTURN>[TURN]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc5766>Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)</a></cite>, R. Mahy, P. Matthews, J. Rosenberg. IETF.</dd>
+
+ <dt id=refsTYPEDARRAY>[TYPEDARRAY]</dt>
+ <dd><cite><a href=http://www.khronos.org/registry/typedarray/specs/latest/>Typed Array Specification</a></cite>, D. Herman, K. Russell. Khronos.</dd>
+
+ <dt id=refsUAAG>[UAAG]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.w3.org/TR/UAAG20/>Web Content Accessibility
+ Guidelines (UAAG) 2.0</a></cite>, J. Allan, K. Ford, J. Richards,
+ J. Spellman. W3C.</dd>
+
+ <dt id=refsUNDO>[UNDO]</dt>
+ <dd><cite><a href=http://rniwa.com/editing/undomanager.html>UndoManager and DOM Transaction</a></cite>, R. Niwa.</dd>
+
+ <dt id=refsUNICODE>[UNICODE]</dt>
+ <dd><cite><a href=http://www.unicode.org/versions/>The Unicode Standard</a></cite>. Unicode Consortium.</dd>
+
+ <dt id=refsUNIVCHARDET>[UNIVCHARDET]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html>A
+ composite approach to language/encoding
+ detection</a></cite>, S. Li, K. Momoi. Netscape. In
+ <cite>Proceedings of the 19th International Unicode
+ Conference</cite>.</dd>
+
+ <dt id=refsUTF7>[UTF7]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2152>UTF-7: A
+ Mail-Safe Transformation Format of Unicode</a></cite>,
+ D. Goldsmith, M. Davis. IETF.</dd>
+
+ <dt id=refsUTF8DET>[UTF8DET]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.w3.org/International/questions/qa-forms-utf-8>Multilingual
+ form encoding</a></cite>, M. D&uuml;rst. W3C.</dd>
+
+ <dt id=refsUTR36>[UTR36]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.unicode.org/reports/tr36/>UTR #36: Unicode
+ Security Considerations</a></cite>, M. Davis, M. Suignard. Unicode
+ Consortium.</dd>
+
+ <dt id=refsWCAG>[WCAG]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.w3.org/TR/WCAG20/>Web Content Accessibility
+ Guidelines (WCAG) 2.0</a></cite>, B. Caldwell, M. Cooper, L. Reid,
+ G. Vanderheiden. W3C.</dd>
+
+ <dt id=refsWEBGL>[WEBGL]</dt>
+ <dd><cite><a href=https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html>WebGL
+ Specification</a></cite>, C. Marrin. Khronos Group.</dd>
+
+ <dt id=refsWEBIDL>[WEBIDL]</dt>
+ <!--
+ <dd><cite><a href="http://www.w3.org/TR/WebIDL/">Web
+ IDL</a></cite>, C. McCormack. W3C.</dd>
+ -->
+ <dd><cite><a href=http://dev.w3.org/2006/webapi/WebIDL/>Web
+ IDL</a></cite>, C. McCormack. W3C.</dd>
+
+ <dt id=refsWEBLINK>[WEBLINK]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/rfc5988>Web
+ Linking</a></cite>, M. Nottingham. IETF.</dd>
+
+ <dt id=refsWHATWGWIKI>[WHATWGWIKI]</dt>
+ <dd><cite><a href=http://wiki.whatwg.org/>The WHATWG Wiki</a></cite>. WHATWG.</dd>
+
+ <dt id=refsWIN1252>[WIN1252]</dt>
+ <dd><cite><a href=http://www.microsoft.com/globaldev/reference/sbcs/1252.htm>Windows 1252</a></cite>. Microsoft.</dd>
+
+ <dt id=refsWIN1254>[WIN1254]</dt>
+ <dd><cite><a href=http://www.microsoft.com/globaldev/reference/sbcs/1254.htm>Windows 1254</a></cite>. Microsoft.</dd>
+
+ <dt id=refsWIN31J>[WIN31J]</dt>
+ <dd><cite><a href=http://www.microsoft.com/globaldev/reference/dbcs/932.mspx>Windows Codepage 932</a></cite>. Microsoft.</dd>
+
+ <dt id=refsWIN874>[WIN874]</dt>
+ <dd><cite><a href=http://www.microsoft.com/globaldev/reference/sbcs/874.mspx>Windows 874</a></cite>. Microsoft.</dd>
+
+ <dt id=refsWIN949>[WIN949]</dt>
+ <dd><cite><a href=http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT>Windows Codepage 949</a></cite>. Microsoft.</dd>
+
+ <dt id=refsWSP>[WSP]</dt>
+ <dd><cite><a href=http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol>The
+ WebSocket protocol</a></cite>, I. Fette. IETF.</dd>
+
+ <dt id=refsX121>[X121]</dt>
+ <dd><cite>Recommendation X.121 &mdash; International Numbering Plan for
+ Public Data Networks</cite>, CCITT Blue Book, Fascicle VIII.3,
+ pp. 317-332.</dd>
+
+ <dt id=refsX690>[X690]</dt>
+ <dd><cite><a href=http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf>Recommendation
+ X.690 &mdash; Information Technology &mdash; ASN.1 Encoding Rules &mdash;
+ Specification of Basic Encoding Rules (BER), Canonical Encoding
+ Rules (CER), and Distinguished Encoding Rules
+ (DER)</a></cite>. International Telecommunication Union.</dd>
+
+ <dt id=refsXHR>[XHR]</dt>
+ <!--
+ <dd><cite><a href="http://www.w3.org/TR/XMLHttpRequest/">The XMLHttpRequest
+ Object</a></cite>, A. van Kesteren. W3C.</dd>
+ -->
+ <dd><cite><a href=http://dev.w3.org/2006/webapi/XMLHttpRequest-2/><code>XMLHttpRequest</code></a></cite>,
+ A. van Kesteren. W3C.</dd>
+
+ <dt id=refsXML>[XML]</dt>
+ <dd><cite><a href=http://www.w3.org/TR/xml/>Extensible Markup
+ Language</a></cite>, T. Bray, J. Paoli, C. Sperberg-McQueen,
+ E. Maler, F. Yergeau. W3C.</dd>
+
+ <dt id=refsXMLBASE>[XMLBASE]</dt>
+ <dd><cite><a href=http://www.w3.org/TR/xmlbase/>XML
+ Base</a></cite>, J. Marsh, R. Tobin. W3C.</dd>
+
+ <dt id=refsXMLNS>[XMLNS]</dt>
+ <dd><cite><a href=http://www.w3.org/TR/xml-names/>Namespaces in
+ XML</a></cite>, T. Bray, D. Hollander, A. Layman, R. Tobin. W3C.</dd>
+
+ <dt id=refsXPATH10>[XPATH10]</dt>
+ <dd><cite><a href=http://www.w3.org/TR/1999/REC-xpath-19991116>XML Path
+ Language (XPath) Version 1.0</a></cite>, J. Clark, S. DeRose. W3C.</dd>
+
+ <dt id=refsXSLT10>[XSLT10]</dt>
+ <dd>(Non-normative) <cite><a href=http://www.w3.org/TR/1999/REC-xslt-19991116>XSL
+ Transformations (XSLT) Version 1.0</a></cite>, J. Clark. W3C.</dd>
+
+<!--(once XSLTProcessor is defined somewhere, update this and the place that references this)
+ <dt id="refsXSLTP">[XSLTP]</dt>
+ <dd>(Non-normative) <cite><a href=""></a></cite>, . .</dd>
+-->
+
+ </dl><h2 class=no-num id=acknowledgements>Acknowledgements</h2> <!-- ACKS -->
+
+ <p>Thanks to Tim Berners-Lee for inventing HTML, without which none
+ of this would exist.</p>
+
+ <p>Thanks to
+
+ Aankhen,
+ Aaron Boodman,
+ Aaron Leventhal,
+ Adam Barth,
+ Adam de Boor,
+ Adam Hepton,
+ Adam Roben,
+ Addison Phillips,
+ Adele Peterson,
+ Adrian Bateman,
+ Adrian Sutton,
+ Agust&iacute;n Fern&aacute;ndez,
+ Ajai Tirumali,
+ Akatsuki Kitamura,
+ Alan Plum,
+ Alastair Campbell,
+ Alejandro G. Castro,
+ Alex Bishop,
+ Alex Nicolaou,
+ Alex Rousskov,
+ Alexander J. Vincent,
+ Alexandre Morgaut,
+ Alexey Feldgendler,
+ &#1040;&#1083;&#1077;&#1082;&#1089;&#1077;&#1081; &#1055;&#1088;&#1086;&#1089;&#1082;&#1091;&#1088;&#1103;&#1082;&#1086;&#1074; (Alexey Proskuryakov),
+ Alexis Deveria,
+ Allan Clements,
+ Amos Jeffries,
+ Anders Carlsson,
+ Andreas<!-- mqmq87 -->,
+ Andreas Kling,
+ Andrei Popescu,
+ Andr&eacute; E. Veltstra,
+ Andrew Barfield,
+ Andrew Clover,
+ Andrew Gove,
+ Andrew Grieve,
+ Andrew Oakley,
+ Andrew Sidwell,
+ Andrew Simons,
+ Andrew Smith,
+ Andrew W. Hagen,
+ Andrey V. Lukyanov,
+ Andy Heydon,
+ Andy Palay,
+ Anne van Kesteren,
+ Anthony Boyd,
+ Anthony Bryan,
+ Anthony Hickson,
+ Anthony Ricaud,
+ Antti Koivisto,
+ Arne Thomassen,
+ Aron Spohr,
+ Arphen Lin,
+ Arun Patole,
+ Aryeh Gregor,
+ Asbj&oslash;rn Ulsberg,
+ Ashley Sheridan,
+ Atsushi Takayama,
+ Aurelien Levy,
+ Ave Wrigley,
+ Ben Boyle,
+ Ben Godfrey,
+ Ben Lerner,
+ Ben Leslie,
+ Ben Meadowcroft,
+ Ben Millard,
+ Benjamin Carl Wiley Sittler,
+ Benjamin Hawkes-Lewis,
+ Bert Bos,
+ Bijan Parsia,
+ Bil Corry,
+ Bill Mason,
+ Bill McCoy,
+ Billy Wong,
+ Bjartur Thorlacius,
+ Bj&ouml;rn H&ouml;hrmann,
+ Blake Frantz,
+ Boris Zbarsky,
+ Brad Fults,
+ Brad Neuberg,
+ Brad Spencer,
+ Brady Eidson,
+ Brendan Eich,
+ Brenton Simpson,
+ Brett Wilson,
+ Brett Zamir,
+ Brian Campbell,
+ Brian Korver,
+ Brian Kuhn,
+ Brian Ryner,
+ Brian Smith,
+ Brian Wilson,
+ Bryan Sullivan,
+ Bruce D'Arcus,
+ Bruce Lawson,
+ Bruce Miller,
+ C. Williams,
+ Cameron McCormack,
+ Cao Yipeng,
+ Carlos Gabriel Cardona,
+ Carlos Perell&oacute; Mar&iacute;n,
+ Chao Cai,
+ &#50980;&#49437;&#52268; (Channy Yun),
+ Charl van Niekerk,
+ Charles Iliya Krempeaux,
+ Charles McCathieNevile,
+ Chris Apers,
+ Chris Cressman,
+ Chris Evans,
+ Chris Morris,
+ Chris Pearce,
+ Christian Biesinger,
+ Christian Johansen,
+ Christian Schmidt,
+ Christopher Aillon,
+ Chriswa,
+ Clark Buehler,
+ Cole Robison,
+ Colin Fine,
+ Collin Jackson,
+ Corprew Reed,
+ Craig Cockburn,
+ Csaba Gabor,
+ Csaba Marton,
+ Cynthia Shelly,
+ Dan Yoder,
+ Daniel Barclay,
+ Daniel Bratell,
+ Daniel Brooks,
+ Daniel Brumbaugh Keeney,
+ Daniel Cheng,
+ Daniel Davis,
+ Daniel Glazman,
+ Daniel Peng,
+ Daniel Schattenkirchner,
+ Daniel Sp&aring;ng,
+ Daniel Steinberg,
+ Danny Sullivan,
+ Darin Adler,
+ Darin Fisher,
+ Darxus,
+ Dave Camp,
+ Dave Hodder,
+ Dave Lampton,
+ Dave Singer,
+ Dave Townsend<!-- Mossop on moz irc -->,
+ David Baron,
+ David Bloom,
+ David Bruant,
+ David Carlisle,
+ David E. Cleary,
+ David Egan Evans,
+ David Flanagan,
+ David Gerard,
+ David H&aring;s&auml;ther,
+ David Hyatt,
+ David I. Lehn,
+ David John Burrowes,
+ David Matja,
+ David Remahl,
+ David Smith,
+ David Woolley,
+ DeWitt Clinton,
+ Dean Edridge,
+ Dean Edwards,
+ Debi Orton,
+ Derek Featherstone,
+ Devdatta,
+ Dimitri Glazkov,
+ Dimitry Golubovsky,
+ Dirk Pranke,
+ Divya Manian,
+ Dmitry Titov,
+ dolphinling,
+ Dominique Haza&euml;l-Massieux,
+ Don Brutzman,
+ Doron Rosenberg,
+ Doug Kramer,
+ Doug Simpkinson,
+ Drew Wilson,
+ Edmund Lai,
+ Eduard Pascual,
+ Eduardo Vela,
+ Edward O'Connor,
+ Edward Welbourne,
+ Edward Z. Yang,
+ Ehsan Akhgari,
+ Eira Monstad,
+ Eitan Adler,
+ Eliot Graff,
+ Elizabeth Castro,
+ Elliott Sprehn,
+ Elliotte Harold,
+ Eric Carlson,
+ Eric Law,
+ Eric Rescorla,
+ Eric Semling,
+ Erik Arvidsson,
+ Erik Rose,
+ Evan Martin,
+ Evan Prodromou,
+ Evert,
+ fantasai,
+ Felix Sasaki,
+ Francesco Schwarz,
+ Francis Brosnan Blazquez,
+ Franck 'Shift' Qu&eacute;lain,
+ Frank Barchard,
+ &#40284;&#39164;&#25991;&#25935; (Fumitoshi Ukai),
+ Futomi Hatano,
+ Gavin Carothers,
+ Gareth Rees,
+ Garrett Smith,
+ Geoffrey Garen,
+ Geoffrey Sneddon,
+ George Lund,
+ Gianmarco Armellin,
+ Giovanni Campagna,
+ Glenn Adams,
+ Glenn Maynard,
+ Graham Klyne,
+ Greg Botten,
+ Greg Houston,
+ Greg Wilkins,
+ Gregg Tavares,
+ Gregory J. Rosmaita,
+ Grey,
+ Guilherme Johansson Tramontina,
+ Gytis Jakutonis,
+ H&aring;kon Wium Lie,
+ Hallvord Reiar Michaelsen Steen,
+ Hans S. T&oslash;mmerhalt,
+ Hans Stimer,
+ Harald Alvestrand,
+ Henri Sivonen,
+ Henrik Lied,
+ Henry Mason,
+ Hugh Winkler,
+ Ian Bicking,
+ Ian Clelland,
+ Ian Davis,
+ Ian Fette,
+ Ignacio Javier,
+ Ivan Enderlin,
+ Ivo Emanuel Gon&ccedil;alves,
+ J. King,
+ Jacques Distler,
+ James Craig,
+ James Graham,
+ James Justin Harrell,
+ James Kozianski,
+ James M Snell,
+ James Perrett,
+ James Robinson,
+ Jamie Lokier,
+ Jan-Klaas Kollhof,
+ Jason Kersey,
+ Jason Lustig,
+ Jason White,
+ Jasper Bryant-Greene,
+ Jatinder Mann,
+ Jed Hartman,
+ Jeff Balogh,
+ Jeff Cutsinger,
+ Jeff Schiller,
+ Jeff Walden,
+ Jeffrey Zeldman,
+ &#32993;&#24935;&#37586; (Jennifer Braithwaite),
+ Jens Bannmann,
+ Jens Fendler,
+ Jens Lindstr&ouml;m,
+ Jens Meiert,
+ Jeremy Keith,
+ Jeremy Orlow,
+ Jeroen van der Meer,
+ Jian Li,
+ Jim Jewett,
+ Jim Ley,
+ Jim Meehan,
+ Jirka Kosek,
+ Jjgod Jiang,
+ Jo&atilde;o Eiras,
+ Joe Clark,
+ Joe Gregorio,
+ Joel Spolsky,
+ Johan Herland,
+ John Boyer,
+ John Bussjaeger,
+ John Carpenter,
+ John Fallows,
+ John Foliot,
+ John Harding,
+ John Keiser,
+ John Snyders,
+ John-Mark Bell,
+ Johnny Stenback,
+ Jon Ferraiolo,
+ Jon Gibbins,
+ Jon Perlow,
+ Jonas Sicking,
+ Jonathan Cook,
+ Jonathan Rees,
+ Jonathan Worent,
+ Jonny Axelsson,
+ Jorgen Horstink,
+ Jorunn Danielsen Newth,
+ Joseph Kesselman,
+ Joseph Pecoraro,
+ Josh Aas,
+ Josh Levenberg,
+ Joshua Bell,
+ Joshua Randall,
+ Jukka K. Korpela,
+ Jules Cl&eacute;ment-Ripoche,
+ Julian Reschke,
+ J&uuml;rgen Jeka,
+ Justin Lebar,
+ Justin Schuh,
+ Justin Sinclair,
+ Kai Hendry,
+ Kartikaya Gupta,
+ Kathy Walton,
+ Kelly Ford,
+ Kelly Norton,
+ Kevin Benson,
+ Kevin Cole,
+ Korn&eacute;l P&aacute;l,
+ Kornel Lesinski,
+ Kris Northfield,
+ Kristof Zelechovski,
+ Krzysztof Maczy&#324;ski,
+ &#40658;&#28580;&#21083;&#24535; (Kurosawa Takeshi),
+ Kyle Hofmann<!-- Ozob -->,
+ Kyle Huey,
+ L&eacute;onard Bouchet,
+ L&eacute;onie Watson,
+ Lachlan Hunt,
+ Larry Masinter,
+ Larry Page,
+ Lars Gunther<!-- Keryx Web -->,
+ Lars Solberg,
+ Laura Carlson,
+ Laura Granka,
+ Laura L. Carlson,
+ Laura Wisewell,
+ Laurens Holst,
+ Lee Kowalkowski,
+ Leif Halvard Silli,
+ Lenny Domnitser,
+ Leonard Rosenthol,
+ Leons Petrazickis,
+ Lobotom Dysmon,
+ Logan<!-- on moz irc -->,
+ Loune,
+ Luke Kenneth Casson Leighton,
+ Maciej Stachowiak,
+ Magnus Kristiansen<!-- Dashiva -->,
+ Maik Merten,
+ Malcolm Rowe,
+ Mark Birbeck,
+ Mark Davis,
+ Mark Miller,
+ Mark Nottingham,
+ Mark Pilgrim,
+ Mark Rowe<!--bdash-->,
+ Mark Schenk,
+ Mark Wilton-Jones,
+ Martijn Wargers,
+ Martin Atkins,
+ Martin D&uuml;rst,
+ Martin Honnen,
+ Martin Janecke,
+ Martin Kutschker,
+ Martin Nilsson,
+ Martin Thomson,
+ Masataka Yakura,
+ Mathieu Henri,
+ Matias Larsson,
+ Matt Schmidt,
+ Matt Wright,
+ Matthew Gregan,
+ Matthew Mastracci,
+ Matthew Raymond,
+ Matthew Thomas,
+ Mattias Waldau,
+ Max Romantschuk,
+ Menno van Slooten,
+ Micah Dubinko,
+ Michael 'Ratt' Iannarelli,
+ Michael A. Nachbaur,
+ Michael A. Puls II<!--Shadow2531-->,
+ Michael Carter,
+ Michael Daskalov,
+ Michael Enright,
+ Michael Gratton,
+ Michael Nordman,
+ Michael Powers,
+ Michael Rakowski,
+ Michael(tm) Smith,
+ Michal Zalewski,
+ Michel Fortin,
+ Michelangelo De Simone,
+ Michiel van der Blonk,
+ Mihai &#350;ucan<!-- from ROBO Design -->,
+ Mihai Parparita,
+ Mike Brown,
+ Mike Dierken<!-- S. Mike Dierken -->,
+ Mike Dixon,
+ Mike Schinkel,
+ Mike Shaver,
+ Mikko Rantalainen,
+ Mohamed Zergaoui<!-- Innovimax SARL -->,
+ Mounir Lamouri,
+ Ms2ger,
+ NARUSE Yui,
+ Neil Deakin,
+ Neil Rashbrook,
+ Neil Soiffer,
+ Nicholas Shanks,
+ Nicholas Stimpson,
+ Nicholas Zakas,
+ Nickolay Ponomarev,
+ Nicolas Gallagher,
+ Noah Mendelsohn,
+ Noah Slater,
+ NoozNooz42,
+ Ojan Vafai,
+ Olaf Hoffmann,
+ Olav Junker Kj&aelig;r,
+ Old&#345;ich Vete&scaron;n&iacute;k,
+ Oli Studholme,
+ Oliver Hunt,
+ Oliver Rigby,
+ Olivier Gendrin,
+ Olli Pettay,
+ oSand, <!-- from reddit -->
+ Patrick H. Lauke,
+ Patrik Persson,
+ Paul Norman,
+ Per-Erik Brodin,
+ Perry Smith,
+ Peter Beverloo,
+ Peter Karlsson,
+ Peter Kasting,
+ Peter Stark,
+ Peter-Paul Koch,
+ Phil Pickering,
+ Philip J&auml;genstedt,
+ Philip Taylor,
+ Philip TAYLOR<!-- a different one -->,
+ Philippe De Ryck,
+ Prateek Rungta,
+ Pravir Gupta,
+ Rachid Finge,
+ Rajas Moonka,
+ Ralf Stoltze,
+ Ralph Giles,
+ Raphael Champeimont,
+ Remci Mizkur,
+ Remco,
+ Remy Sharp,
+ Rene Saarsoo,
+ Rene Stach,
+ Ric Hardacre,
+ Rich Doughty,
+ Richard Ishida,
+ Rigo Wenning,
+ Rikkert Koppes,
+ Rimantas Liubertas,
+ Riona Macnamara,
+ Rob Ennals,
+ Rob Jellinghaus,
+ Rob S,
+ Robert Blaut,
+ Robert Collins,
+ Robert O'Callahan,
+ Robert Sayre,
+ Robin Berjon,
+ Rodger Combs,
+ Roland Steiner,
+ Roman Ivanov,
+ Roy Fielding,
+ Ruud Steltenpool,
+ Ryan King,
+ Ryosuke Niwa,
+ S. Mike Dierken,
+ Salvatore Loreto,
+ Sam Dutton,
+ Sam Kuper,
+ Sam Ruby,
+ Sam Weinig,
+ Sander van Lambalgen,
+ Sarven Capadisli,
+ Scott Gonz&aacute;lez,
+ Scott Hess,
+ Sean Fraser,
+ Sean Hayes,
+ Sean Hogan,
+ Sean Knapp,
+ Sebastian Markb&aring;ge,
+ Sebastian Schnitzenbaumer,
+ Seth Call,
+ Shanti Rao,
+ Shaun Inman,
+ Shiki Okasaka,
+ Sierk Bornemann,
+ Sigbj&oslash;rn Vik,
+ Silvia Pfeiffer,
+ Simon Montagu,
+ Simon Pieters,
+ Simon Spiegel,
+ skeww, <!-- on reddit -->
+ Stanton McCandlish,
+ Stefan H&aring;kansson,
+ Stefan Haustein,
+ Stefan Santesson,
+ Stefan Weiss,
+ Steffen Meschkat,
+ Stephen Ma,
+ Steve Faulkner,
+ Steve Runyon,
+ Steven Bennett,
+ Steven Garrity,
+ Steven Tate,
+ Stewart Brodie,
+ Stuart Ballard,
+ Stuart Parmenter,
+ Subramanian Peruvemba,
+ Sunava Dutta,
+ Susan Borgrink,
+ Susan <!--G.--> Lesch,
+ Sylvain Pasche,
+ T. J. Crowder,
+ Tab Atkins,
+ <span lang=tr title="">Tantek &Ccedil;elik</span>,
+ &#30000;&#26449;&#20581;&#20154; (TAMURA Kent),
+ Ted Mielczarek,
+ Terrence Wood,
+ Thomas Broyer,
+ Thomas Koetter,
+ Thomas O'Connor,
+ Tim Altman,
+ Tim Johansson,
+ Toby Inkster,
+ Todd Moody,
+ Tom Baker,
+ Tom Pike,
+ Tommy Thorsen,
+ Travis Leithead,
+ Tyler Close,
+ Vladimir Katardjiev,
+ Vladimir Vuki&#263;evi&#263;,
+ voracity,
+ Wakaba,
+ Wayne Carr,
+ Wayne Pollock,
+ Wellington Fernando de Macedo,
+ Weston Ruter,
+ Wilhelm Joys Andersen,
+ Will Levine,
+ William Swanson,
+ Wladimir Palant,
+ Wojciech Mach,
+ Wolfram Kriesing,
+ Yang Chen,
+ Ye-Kui Wang,
+ Yehuda Katz,
+ Yi-An Huang,
+ Yngve Nysaeter Pettersen,
+ Yuzo Fujishima,
+ Zhenbin Xu,
+ Zoltan Herczeg,
+ and
+ &Oslash;istein E. Andersen,
+
+ for their useful comments, both large and small, that have led to
+ changes to this specification over the years.</p>
+
+ <p>Thanks also to everyone who has ever posted about HTML to their
+ blogs, public mailing lists, or forums, including all the
+ contributors to the <a href=http://www.w3.org/html/wg/lists/>various W3C HTML WG
+ lists</a> and the <a href=http://www.whatwg.org/mailing-list>various WHATWG lists</a>.
+
+ <p>Special thanks to Richard Williamson for creating the first
+ implementation of <code><a href=#the-canvas-element>canvas</a></code> in Safari, from which the
+ canvas feature was designed.</p>
+
+ <p>Special thanks also to the Microsoft employees who first
+ implemented the event-based drag-and-drop mechanism, <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code>, and other
+ features first widely deployed by the Windows Internet Explorer
+ browser.</p>
+
+<!--MD-->
+ <p>Thanks to the participants of the microdata usability study for
+ allowing us to use their mistakes as a guide for designing the
+ microdata feature.</p>
+<!--MD-->
+
+ <p>Thanks to the SubRip community, including in particular Zuggy and
+ ai4spam, for their work on the SubRip software program whose SRT
+ file format was used as the basis for the WebVTT text track file
+ format.</p>
+
+ <div class=impl>
+
+ <p>Special thanks and $10,000 to David Hyatt who came up with a
+ broken implementation of the <a href=#adoptionAgency>adoption
+ agency algorithm</a> that the editor had to reverse engineer and fix
+ before using it in the parsing section.</p>
+
+ </div>
+
+ <p>Thanks to the many sources that provided inspiration for the
+ examples used in the specification.</p>
+
+
+
+ <div itemscope="" itemtype=http://n.whatwg.org/work>
+ <p>The image in the introduction is based on <a href=http://www.flickr.com/photos/wonderlane/2986252088/ itemprop=work>a photo</a>
+ by <a href=http://www.flickr.com/photos/wonderlane/ itemprop=http://creativecommons.org/ns#attributionURL>Wonderlane</a>.
+ (<a href=http://creativecommons.org/licenses/by/2.0/ itemprop=license>CC BY 2.0</a>)
+ </div>
+
+
+
+ <p>Thanks also to the Microsoft blogging community for some ideas,
+ to the attendees of the W3C Workshop on Web Applications and
+ Compound Documents for inspiration, to the #mrt crew, the #mrt.no
+ crew, and the #whatwg crew, and to Pillar and Hedral for their ideas
+ and support.</p>
+
+ <!-- Hopefully Kam won't notice he's covered by these
+ acknowledgements three times! -->
+
+<!--
+ v2 * library of resources:
+ var library = new ZipFile("data.zip");
+ library.onload = function() {
+ var sound1 = library.getAudio("sound1.wav"); // returns an Audio object
+ var image1 = library.getImage("image1.png"); // returns an HTMLImageElement
+ var doc1 = library.getXMLDocument("doc1.xml"); // returns a Document
+ var doc2 = library.getHTMLDocument("doc1.html"); // returns an HTMLDocument
+ }
+ or:
+ var library = new ResourceLoader("data.zip");
+ library.add("moredata.zip");
+ library.onload = function() { ... }
+ library.onloading = function() {
+ reportLoadProgress(library.progress); // 0.0 .. 1.0
+ }
+ or:
+ var library = new AudioZip("sounds.zip");
+ library.onload = function() {
+ var sound1 = library["sound1.wav"];
+ sound.play();
+ }
+ v2 * a fairly common situation for web authors is to have two lists, where
+ the contents of the second depends on the value of the first. Is there
+ any way we could extend the current model to include this functionality?
+ (e.g. bugzilla product/component ui)
+ v2 * quick-searchable select
+ v2 * include/exclude selectors (two multi-select columns with arrows to
+ move selected items) and that sort of thing.
+ http://slashdot.org/comments.pl?sid=110240&cid=9357022
+ v2 * Oh, and forms need a standardized Help widget/icon. I know I can
+ turn my cursor into a question mark, but I'm looking for something
+ simple and pervasive. Maybe you can wrap fields in a help tag, just
+ as you do for fieldsets. And in that help tag, attributes are
+ available that allow for a nice, formatted, clean, full help text
+ popup/area/thing.
+ http://slashdot.org/comments.pl?sid=110240&cid=9359006
+ v2 * Validating only part of a form. - Anja Lehmann
+ v2 * Reminder to add a way to expose access keys in buttons, i.e.
+ Sub&mit where & signifies the m is the access key to use. Possibly
+ automatic? <input accesskey="m" value="Submit"> browser would be
+ smart enough to underline the first instance of the access key if
+ it exists (case insensitive)? - kerz
+ [or deprecate the lot (->web apps)]
+ v2 * need an attribute that says "the children of this element are in
+ their own tabbing universe, tabindex should be relative to each
+ other, not to the document"
+ -> web apps?
+ v2 * make select widgets have multiple columns
+ or ->web apps with list view
+ v2 * required as a group (one of the following must be available):
+ + i propose something like the following:
+ <input type="text" group="contact" name="voicephone"> Voice phone
+ <input type="text" group="contact" name="fax"> Fax
+ <input type="text" group="contact" name="mobile"> Mobile phone
+ <input type="text" group="contact" name="email"> E-mail
+ if the user fills out none of the form fields in the "contact"
+ group, an error message is shown and the form is not submitted.
+ - Peter-Paul Koch
+ v2 * formatting of number fields, text fields, etc, so that when the
+ field is not focused, the value is displayed differently. Seems
+ like this would also be useful e.g. for <output> or something so
+ you can display localised dates, etc.
+ v2 * being able to select date range (from day x to day y)
+ v2 * ways of visualizing a linefeed in a <textarea> so it looks different
+ from wrapping text
+ v2 * all login systems have
+ 1. enter username and password
+ 2. create new account
+ 3. lost password
+ some way of integrating this into one system, since it's so common
+ v2 * way of identifying different sorts of mailadresses
+ a) mailing-list
+ b) person
+ c) department in a company ("support", "marketing" and such)
+ d) general mail (like "info", "mail", "contact" and such)
+ e) other sorts of groupings
+ (or ->web apps; this is talking about in mailto: links, I think)
+ v2 * hotswapping login identities like in windows xp
+ you are logged in on operamail.com, and you want to check the mail
+ of another user. somehow, combined with the wand or whatever,
+ the browser will remember the login page, and it can re-submit it
+ without having to load the initial page (saving time)
+ v2 * provide different measuring systems, like having the html indicate
+ fluid in both fluid ounces and liters, and the browser can display
+ one or the other based on regional settings in the browser or ui,
+ display conversions in a tooltip, or let the user decide which
+ format to display.
+ v2 * indicate "x days ago" or "y days into the future" rather than date
+ v2 * input control for anniversaries
+ v2 * only submit fields that have changed, or a way to include in the
+ submission a list of which form controls were changed from their
+ default value
+ v2 * type="time" value="now"
+ v2 * add something to type="number" to support basic currency and unit
+ formatting of input
+ v2 * <fieldset enabled-if-checked="myCheckboxOrRadioButton">
+ ...to allow sections to only be enabled if a radio button makes it
+ relevant, for instance.
+ v2 * Yan Morin proposed a multi-column dropdown <select> or <datalist>:
+ _________________
+ |_New_York______|V|_________________ <- input with a table link and a down arrow
+ |_City__________|_State_|_Country_|_| <- header of the table
+ | Montreal | QC | Canada |A| <- top arrow of the scroll
+ |>New York <| NY | US | | <- selected row
+ | Washington | DC | US |X| <- cursor scroll
+ | San Francisco | CA | US | |
+ |_Toronto_______|__ON___|_Canada__|V| <- bottom arrow of the scroll
+
+ v2 * add for="" attribute to <input type="password"> so that you can
+ link usernames and passwords. (Jonas Sicking)
+ v2 * value for unchecked checkbox?
+ v2 * A way to specify the default button - Michael Gratton
+ v2 * <fieldset readonly>?
+ v2 * dolphinling suggests having a way to mark certain parts of a
+ form as being dependent on another (mutually exclusive parts of
+ a form)
+ v2 * expose the form data set, either as an object (on which one can
+ invoke the JSON serialiser), or in the form of a method on
+ HTMLFormElement that returns the form data set serialised
+ according to a particular encoding (defaulting to the form's
+ enctype="" one, probably). This would allow forms to be used
+ with XHR-like systems without having to manually construct the
+ form data set the way that is done today.
+ v2 * expose the file upload progress when uploading files in a form
+ (ideally using the same mechanism as XHR2?); ack Rob Evans
+
+Consistency in editorial style:
+ v2 * need to become consistent about whether or not to quote keyword
+ ("<code title="">foo</code>" vs <code>foo</code>)
+ v2 * make the spec consistent about whether the word "algorithm" is part of
+ an algorithm's name or not ("</dfn> algorithm", "</span> algorithm")
+ v2 * make the spec more consistent about its use of "hexadecimal"
+ and "base-sixteen", the order that 0-9 A-Z a-z is mentioned,
+ and the detail to which the spec explains how to interpret a
+ string as a hexadecimal number.
+ v2 * become more consistent about what markup we use to mark up
+ productions (nothing? <i>? <code>?)
+ v2 * use <code>Document</code> consistently instead of 'document'.
+ v2 * be clearer about arrays/lists/collections being zero-based
+ despite using the term "/index/th".
+ v2 * use the sample widgets:
+ <li><img alt="A text field with editable sections for each
+ value, with a button to pop up a dialog showing a calendar or
+ clock." src="sample-datetime-ui-2"></li>
+ <li><img alt="A calendar grid with a clock in the upper right
+ hand corner." src="sample-datetime-ui-3"></li>
+-->
+
+
diff --git a/PerformanceTests/Parser/simple-url.html b/PerformanceTests/Parser/simple-url.html
new file mode 100644
index 000000000..51ecb502b
--- /dev/null
+++ b/PerformanceTests/Parser/simple-url.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var anchor = document.createElement("a");
+PerfTestRunner.runPerSecond({run:function() {
+ for (var x = 0; x < 200000; x++) {
+ anchor.href = "http://www.apple.com/"
+ }
+}});
+</script>
+</body>
diff --git a/PerformanceTests/Parser/textarea-parsing.html b/PerformanceTests/Parser/textarea-parsing.html
new file mode 100644
index 000000000..e76b5f57b
--- /dev/null
+++ b/PerformanceTests/Parser/textarea-parsing.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<body>
+<style>
+textarea:valid {
+ background-color: lime;
+}
+textarea:invalid {
+ background-color: red;
+}
+</style>
+<script src="../resources/runner.js"></script>
+<div id="container"></div>
+<script>
+var htmlText = "<textarea maxlength=2147483647>";
+for (var i = 0; i < 1000; ++i) {
+ htmlText += "A quick brown fox jumps over the lazy dog.\n" +
+ "A quick brown fox jumps over the lazy dog.\n" +
+ "<!-- comment -->\n";
+}
+htmlText += "</textarea>"
+
+var container = document.getElementById('container');
+PerfTestRunner.runPerSecond({run: function() {
+ container.innerHTML = htmlText;
+}});
+</script>
+</body>
diff --git a/PerformanceTests/Parser/tiny-innerHTML.html b/PerformanceTests/Parser/tiny-innerHTML.html
new file mode 100644
index 000000000..9094a34be
--- /dev/null
+++ b/PerformanceTests/Parser/tiny-innerHTML.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+PerfTestRunner.runPerSecond({run:function() {
+ var testDiv = document.createElement("div");
+ testDiv.style.display = "none";
+ document.body.appendChild(testDiv);
+ for (var x = 0; x < 100000; x++) {
+ testDiv.innerHTML = "This is a tiny HTML document";
+ }
+ document.body.removeChild(testDiv);
+}});
+</script>
+</body>
diff --git a/PerformanceTests/Parser/url-parser.html b/PerformanceTests/Parser/url-parser.html
new file mode 100644
index 000000000..ecdbc41f1
--- /dev/null
+++ b/PerformanceTests/Parser/url-parser.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var urls = PerfTestRunner.loadFile("resources/final-url-en").split("\n");
+var anchor = document.createElement("a");
+
+PerfTestRunner.runPerSecond({run:function() {
+ for (var x = 0; x < urls.length; x++) {
+ anchor.href = urls[x];
+ }
+}});
+</script>
+</body>
diff --git a/PerformanceTests/Parser/xml-parser.html b/PerformanceTests/Parser/xml-parser.html
new file mode 100644
index 000000000..122af335c
--- /dev/null
+++ b/PerformanceTests/Parser/xml-parser.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+var domParser = new DOMParser();
+var xmlArray = [];
+
+xmlArray.push('<root>');
+for (var i = 0; i < 0x7FFF; ++i)
+ xmlArray.push('<item attribute1="value1" attribute2="value2" attribute3="value3" attribute4="value4" attribute5="value5" />');
+xmlArray.push('</root>')
+var xmlData = xmlArray.join('');
+
+PerfTestRunner.runPerSecond({run:function() {
+ domParser.parseFromString(xmlData, "text/xml");
+}});
+</script>
+</body>
diff --git a/PerformanceTests/Replay/Chinese/chinaz.com.replay b/PerformanceTests/Replay/Chinese/chinaz.com.replay
new file mode 100644
index 000000000..cc35b850d
--- /dev/null
+++ b/PerformanceTests/Replay/Chinese/chinaz.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20100526005933/http://chinaz.com/
diff --git a/PerformanceTests/Replay/Chinese/www.163.com.replay b/PerformanceTests/Replay/Chinese/www.163.com.replay
new file mode 100644
index 000000000..50848adb1
--- /dev/null
+++ b/PerformanceTests/Replay/Chinese/www.163.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110720113906/http://www.163.com/
diff --git a/PerformanceTests/Replay/Chinese/www.alipay.com.replay b/PerformanceTests/Replay/Chinese/www.alipay.com.replay
new file mode 100644
index 000000000..297688022
--- /dev/null
+++ b/PerformanceTests/Replay/Chinese/www.alipay.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110115113257/https://www.alipay.com/
diff --git a/PerformanceTests/Replay/Chinese/www.baidu.com.replay b/PerformanceTests/Replay/Chinese/www.baidu.com.replay
new file mode 100644
index 000000000..842b92926
--- /dev/null
+++ b/PerformanceTests/Replay/Chinese/www.baidu.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110729055213/http://www.baidu.com/
diff --git a/PerformanceTests/Replay/Chinese/www.csdn.net.replay b/PerformanceTests/Replay/Chinese/www.csdn.net.replay
new file mode 100644
index 000000000..779b5821e
--- /dev/null
+++ b/PerformanceTests/Replay/Chinese/www.csdn.net.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110527061533/http://www.csdn.net/
diff --git a/PerformanceTests/Replay/Chinese/www.douban.com.replay b/PerformanceTests/Replay/Chinese/www.douban.com.replay
new file mode 100644
index 000000000..631c798f4
--- /dev/null
+++ b/PerformanceTests/Replay/Chinese/www.douban.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110729052703/http://www.douban.com/
diff --git a/PerformanceTests/Replay/Chinese/www.hao123.com.replay b/PerformanceTests/Replay/Chinese/www.hao123.com.replay
new file mode 100644
index 000000000..dd7fb0b0a
--- /dev/null
+++ b/PerformanceTests/Replay/Chinese/www.hao123.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110716175917/http://www.hao123.com/
diff --git a/PerformanceTests/Replay/Chinese/www.xinhuanet.com.replay b/PerformanceTests/Replay/Chinese/www.xinhuanet.com.replay
new file mode 100644
index 000000000..ea9e49091
--- /dev/null
+++ b/PerformanceTests/Replay/Chinese/www.xinhuanet.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20090629042141/http://www.xinhuanet.com/
diff --git a/PerformanceTests/Replay/Chinese/www.xunlei.com.replay b/PerformanceTests/Replay/Chinese/www.xunlei.com.replay
new file mode 100644
index 000000000..906c38cd9
--- /dev/null
+++ b/PerformanceTests/Replay/Chinese/www.xunlei.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110312182324/http://www.xunlei.com/
diff --git a/PerformanceTests/Replay/Chinese/www.youku.com.replay b/PerformanceTests/Replay/Chinese/www.youku.com.replay
new file mode 100644
index 000000000..dd71ec997
--- /dev/null
+++ b/PerformanceTests/Replay/Chinese/www.youku.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110513180312/http://www.youku.com/
diff --git a/PerformanceTests/Replay/English/beatonna.livejournal.com.replay b/PerformanceTests/Replay/English/beatonna.livejournal.com.replay
new file mode 100644
index 000000000..b0fe17b29
--- /dev/null
+++ b/PerformanceTests/Replay/English/beatonna.livejournal.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110219025226/http://beatonna.livejournal.com/
diff --git a/PerformanceTests/Replay/English/cakewrecks.blogspot.com.replay b/PerformanceTests/Replay/English/cakewrecks.blogspot.com.replay
new file mode 100644
index 000000000..e2e4a94d2
--- /dev/null
+++ b/PerformanceTests/Replay/English/cakewrecks.blogspot.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110228204333/http://cakewrecks.blogspot.com/
diff --git a/PerformanceTests/Replay/English/chemistry.about.com.replay b/PerformanceTests/Replay/English/chemistry.about.com.replay
new file mode 100644
index 000000000..84f5d48a3
--- /dev/null
+++ b/PerformanceTests/Replay/English/chemistry.about.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110708231250/http://chemistry.about.com/
diff --git a/PerformanceTests/Replay/English/digg.com.replay b/PerformanceTests/Replay/English/digg.com.replay
new file mode 100644
index 000000000..c9d4282d0
--- /dev/null
+++ b/PerformanceTests/Replay/English/digg.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20100730073647/http://digg.com/
diff --git a/PerformanceTests/Replay/English/en.wikipedia.org-rorschach_test.replay b/PerformanceTests/Replay/English/en.wikipedia.org-rorschach_test.replay
new file mode 100644
index 000000000..4a0d1a534
--- /dev/null
+++ b/PerformanceTests/Replay/English/en.wikipedia.org-rorschach_test.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20090221044130/http://en.wikipedia.org/wiki/Rorschach_test
diff --git a/PerformanceTests/Replay/English/icanhascheezburger.com.replay b/PerformanceTests/Replay/English/icanhascheezburger.com.replay
new file mode 100644
index 000000000..582f3de0c
--- /dev/null
+++ b/PerformanceTests/Replay/English/icanhascheezburger.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20101130130151/http://icanhascheezburger.com/
diff --git a/PerformanceTests/Replay/English/imgur.com-gallery.replay b/PerformanceTests/Replay/English/imgur.com-gallery.replay
new file mode 100644
index 000000000..de429ed15
--- /dev/null
+++ b/PerformanceTests/Replay/English/imgur.com-gallery.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110611094402/http://imgur.com/gallery/
diff --git a/PerformanceTests/Replay/English/online.wsj.com.replay b/PerformanceTests/Replay/English/online.wsj.com.replay
new file mode 100644
index 000000000..09c20f7ed
--- /dev/null
+++ b/PerformanceTests/Replay/English/online.wsj.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110729033948/http://online.wsj.com/homae-page
diff --git a/PerformanceTests/Replay/English/stockoverflow.com-best-comment.replay b/PerformanceTests/Replay/English/stockoverflow.com-best-comment.replay
new file mode 100644
index 000000000..9d3a4888f
--- /dev/null
+++ b/PerformanceTests/Replay/English/stockoverflow.com-best-comment.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20101128235717/http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered
diff --git a/PerformanceTests/Replay/English/www.alibaba.com.replay b/PerformanceTests/Replay/English/www.alibaba.com.replay
new file mode 100644
index 000000000..f4cee31fb
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.alibaba.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110717164710/http://www.alibaba.com/
diff --git a/PerformanceTests/Replay/English/www.amazon.com-kindle.replay b/PerformanceTests/Replay/English/www.amazon.com-kindle.replay
new file mode 100644
index 000000000..fc05342e4
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.amazon.com-kindle.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110506025727/http://www.amazon.com/Kindle-Special-Offers-Wireless-Reader/dp/B004HFS6Z0
diff --git a/PerformanceTests/Replay/English/www.apple.com.replay b/PerformanceTests/Replay/English/www.apple.com.replay
new file mode 100644
index 000000000..da21d914e
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.apple.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110728085810/http://store.apple.com/us
diff --git a/PerformanceTests/Replay/English/www.cnet.com.replay b/PerformanceTests/Replay/English/www.cnet.com.replay
new file mode 100644
index 000000000..b6f616dcb
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.cnet.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20090516182244/http://www.cnet.com/
diff --git a/PerformanceTests/Replay/English/www.dailymotion.com.replay b/PerformanceTests/Replay/English/www.dailymotion.com.replay
new file mode 100644
index 000000000..19e3c81d3
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.dailymotion.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20100219134326/http://www.dailymotion.com/us
diff --git a/PerformanceTests/Replay/English/www.ehow.com-prevent-fire.replay b/PerformanceTests/Replay/English/www.ehow.com-prevent-fire.replay
new file mode 100644
index 000000000..ac08a846b
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.ehow.com-prevent-fire.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20100119041159/http://www.ehow.com/how_4575878_prevent-fire-home.html
diff --git a/PerformanceTests/Replay/English/www.filestube.com-amy-adams.replay b/PerformanceTests/Replay/English/www.filestube.com-amy-adams.replay
new file mode 100644
index 000000000..b83bc025f
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.filestube.com-amy-adams.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20090604043615/http://www.filestube.com/a/amy+adams
diff --git a/PerformanceTests/Replay/English/www.foxnews.replay b/PerformanceTests/Replay/English/www.foxnews.replay
new file mode 100644
index 000000000..4f9e0420e
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.foxnews.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110728222800/http://www.foxnews.com/
diff --git a/PerformanceTests/Replay/English/www.huffingtonpost.com.replay b/PerformanceTests/Replay/English/www.huffingtonpost.com.replay
new file mode 100644
index 000000000..f377f6572
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.huffingtonpost.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110729043303/http://www.huffingtonpost.com/
diff --git a/PerformanceTests/Replay/English/www.imdb.com-twilight.replay b/PerformanceTests/Replay/English/www.imdb.com-twilight.replay
new file mode 100644
index 000000000..da14a2e9f
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.imdb.com-twilight.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110430151645/http://www.imdb.com/title/tt1099212/
diff --git a/PerformanceTests/Replay/English/www.mozilla.com-all-order.replay b/PerformanceTests/Replay/English/www.mozilla.com-all-order.replay
new file mode 100644
index 000000000..8dd5db1b8
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.mozilla.com-all-order.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110623032220/http://www.mozilla.com/en-US/firefox/all-older.html
diff --git a/PerformanceTests/Replay/English/www.php.net.replay b/PerformanceTests/Replay/English/www.php.net.replay
new file mode 100644
index 000000000..25d3848b7
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.php.net.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110724005457/http://www.php.net/
diff --git a/PerformanceTests/Replay/English/www.reddit.com.replay b/PerformanceTests/Replay/English/www.reddit.com.replay
new file mode 100644
index 000000000..d7ca12039
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.reddit.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20100328231532/http://www.reddit.com/
diff --git a/PerformanceTests/Replay/English/www.telegraph.co.uk.replay b/PerformanceTests/Replay/English/www.telegraph.co.uk.replay
new file mode 100644
index 000000000..feb651d68
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.telegraph.co.uk.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110729055239/http://www.telegraph.co.uk/
diff --git a/PerformanceTests/Replay/English/www.w3.org-htmlcss.replay b/PerformanceTests/Replay/English/www.w3.org-htmlcss.replay
new file mode 100644
index 000000000..a90c68d24
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.w3.org-htmlcss.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110719011024/http://www.w3.org/standards/webdesign/htmlcss
diff --git a/PerformanceTests/Replay/English/www.w3schools.com-html.replay b/PerformanceTests/Replay/English/www.w3schools.com-html.replay
new file mode 100644
index 000000000..9f92885d8
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.w3schools.com-html.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110717233535/http://www.w3schools.com/html/default.asp
diff --git a/PerformanceTests/Replay/English/www.youtube.com-music.replay b/PerformanceTests/Replay/English/www.youtube.com-music.replay
new file mode 100644
index 000000000..7cc8c97cf
--- /dev/null
+++ b/PerformanceTests/Replay/English/www.youtube.com-music.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110726193155/http://www.youtube.com/music
diff --git a/PerformanceTests/Replay/French/www.orange.fr.replay b/PerformanceTests/Replay/French/www.orange.fr.replay
new file mode 100644
index 000000000..4aec5ad2f
--- /dev/null
+++ b/PerformanceTests/Replay/French/www.orange.fr.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20100502002316/http://www.orange.fr/
diff --git a/PerformanceTests/Replay/Italian/www.repubblica.it.replay b/PerformanceTests/Replay/Italian/www.repubblica.it.replay
new file mode 100644
index 000000000..4dde5a0c4
--- /dev/null
+++ b/PerformanceTests/Replay/Italian/www.repubblica.it.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110729033650/http://www.repubblica.it/
diff --git a/PerformanceTests/Replay/Japanese/2ch.net-newsplus.replay b/PerformanceTests/Replay/Japanese/2ch.net-newsplus.replay
new file mode 100644
index 000000000..1b5ad0802
--- /dev/null
+++ b/PerformanceTests/Replay/Japanese/2ch.net-newsplus.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20101113070140/http://kamome.2ch.net/newsplus/
diff --git a/PerformanceTests/Replay/Japanese/entameblog.seesaa.net.replay b/PerformanceTests/Replay/Japanese/entameblog.seesaa.net.replay
new file mode 100644
index 000000000..c34f60eba
--- /dev/null
+++ b/PerformanceTests/Replay/Japanese/entameblog.seesaa.net.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20100427231535/http://entameblog.seesaa.net/
diff --git a/PerformanceTests/Replay/Japanese/ja.wikipedia.org.replay b/PerformanceTests/Replay/Japanese/ja.wikipedia.org.replay
new file mode 100644
index 000000000..720a3fe66
--- /dev/null
+++ b/PerformanceTests/Replay/Japanese/ja.wikipedia.org.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20090723063648/http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
diff --git a/PerformanceTests/Replay/Japanese/www.hatena.ne.jp.replay b/PerformanceTests/Replay/Japanese/www.hatena.ne.jp.replay
new file mode 100644
index 000000000..e9c24324a
--- /dev/null
+++ b/PerformanceTests/Replay/Japanese/www.hatena.ne.jp.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110729010510/http://www.hatena.ne.jp/
diff --git a/PerformanceTests/Replay/Japanese/www.livedoor.com.replay b/PerformanceTests/Replay/Japanese/www.livedoor.com.replay
new file mode 100644
index 000000000..97df6993d
--- /dev/null
+++ b/PerformanceTests/Replay/Japanese/www.livedoor.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110723020845/http://www.livedoor.com/
diff --git a/PerformanceTests/Replay/Japanese/www.nicovideo.jp.replay b/PerformanceTests/Replay/Japanese/www.nicovideo.jp.replay
new file mode 100644
index 000000000..c411d4ed2
--- /dev/null
+++ b/PerformanceTests/Replay/Japanese/www.nicovideo.jp.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110723043453/http://www.nicovideo.jp/
diff --git a/PerformanceTests/Replay/Japanese/www.rakuten.co.jp.replay b/PerformanceTests/Replay/Japanese/www.rakuten.co.jp.replay
new file mode 100644
index 000000000..a4f35a530
--- /dev/null
+++ b/PerformanceTests/Replay/Japanese/www.rakuten.co.jp.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110723060303/http://www.rakuten.co.jp/
diff --git a/PerformanceTests/Replay/Japanese/www.yahoo.co.jp.replay b/PerformanceTests/Replay/Japanese/www.yahoo.co.jp.replay
new file mode 100644
index 000000000..01c5a1196
--- /dev/null
+++ b/PerformanceTests/Replay/Japanese/www.yahoo.co.jp.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110728224518/http://www.yahoo.co.jp/
diff --git a/PerformanceTests/Replay/Korean/www.naver.com.replay b/PerformanceTests/Replay/Korean/www.naver.com.replay
new file mode 100644
index 000000000..a29ce76bb
--- /dev/null
+++ b/PerformanceTests/Replay/Korean/www.naver.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110717151039/http://www.naver.com/
diff --git a/PerformanceTests/Replay/Persian/blogfa.com.replay b/PerformanceTests/Replay/Persian/blogfa.com.replay
new file mode 100644
index 000000000..a63330b26
--- /dev/null
+++ b/PerformanceTests/Replay/Persian/blogfa.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110723062159/http://blogfa.com/
diff --git a/PerformanceTests/Replay/Polish/www.wp.pl.replay b/PerformanceTests/Replay/Polish/www.wp.pl.replay
new file mode 100644
index 000000000..29317a589
--- /dev/null
+++ b/PerformanceTests/Replay/Polish/www.wp.pl.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110718151009/http://www.wp.pl/
diff --git a/PerformanceTests/Replay/Portuguese/www.uol.com.br.replay b/PerformanceTests/Replay/Portuguese/www.uol.com.br.replay
new file mode 100644
index 000000000..041b69a22
--- /dev/null
+++ b/PerformanceTests/Replay/Portuguese/www.uol.com.br.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110722061518/http://www.uol.com.br/
diff --git a/PerformanceTests/Replay/Russian/lenta.ru.replay b/PerformanceTests/Replay/Russian/lenta.ru.replay
new file mode 100644
index 000000000..7419976a6
--- /dev/null
+++ b/PerformanceTests/Replay/Russian/lenta.ru.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110226174949/http://lenta.ru/
diff --git a/PerformanceTests/Replay/Russian/vkontakte.ru-help.replay b/PerformanceTests/Replay/Russian/vkontakte.ru-help.replay
new file mode 100644
index 000000000..1e62fa6e2
--- /dev/null
+++ b/PerformanceTests/Replay/Russian/vkontakte.ru-help.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110716125834/http://vkontakte.ru/help.php?page=about
diff --git a/PerformanceTests/Replay/Russian/www.ixbt.com.replay b/PerformanceTests/Replay/Russian/www.ixbt.com.replay
new file mode 100644
index 000000000..cea5921e2
--- /dev/null
+++ b/PerformanceTests/Replay/Russian/www.ixbt.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110202151706/http://www.ixbt.com/
diff --git a/PerformanceTests/Replay/Russian/www.kp.ru.replay b/PerformanceTests/Replay/Russian/www.kp.ru.replay
new file mode 100644
index 000000000..17ec33d06
--- /dev/null
+++ b/PerformanceTests/Replay/Russian/www.kp.ru.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110318023959/http://kp.ru/
diff --git a/PerformanceTests/Replay/Russian/www.liveinternet.ru.replay b/PerformanceTests/Replay/Russian/www.liveinternet.ru.replay
new file mode 100644
index 000000000..2b41834c1
--- /dev/null
+++ b/PerformanceTests/Replay/Russian/www.liveinternet.ru.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110729042903/http://www.liveinternet.ru/
diff --git a/PerformanceTests/Replay/Russian/www.pravda.ru.replay b/PerformanceTests/Replay/Russian/www.pravda.ru.replay
new file mode 100644
index 000000000..3fdaf4a62
--- /dev/null
+++ b/PerformanceTests/Replay/Russian/www.pravda.ru.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110119021922/http://www.pravda.ru/
diff --git a/PerformanceTests/Replay/Russian/www.rambler.ru.replay b/PerformanceTests/Replay/Russian/www.rambler.ru.replay
new file mode 100644
index 000000000..388fcddaf
--- /dev/null
+++ b/PerformanceTests/Replay/Russian/www.rambler.ru.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110721133155/http://www.yandex.ru/
diff --git a/PerformanceTests/Replay/Russian/www.ucoz.ru.replay b/PerformanceTests/Replay/Russian/www.ucoz.ru.replay
new file mode 100644
index 000000000..c41607b77
--- /dev/null
+++ b/PerformanceTests/Replay/Russian/www.ucoz.ru.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20081215201710/http://www.ucoz.ru/
diff --git a/PerformanceTests/Replay/Russian/www.yandex.ru.replay b/PerformanceTests/Replay/Russian/www.yandex.ru.replay
new file mode 100644
index 000000000..388fcddaf
--- /dev/null
+++ b/PerformanceTests/Replay/Russian/www.yandex.ru.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110721133155/http://www.yandex.ru/
diff --git a/PerformanceTests/Replay/Spanish/www.taringa.net.replay b/PerformanceTests/Replay/Spanish/www.taringa.net.replay
new file mode 100644
index 000000000..e01b2e321
--- /dev/null
+++ b/PerformanceTests/Replay/Spanish/www.taringa.net.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110716051137/http://www.taringa.net/
diff --git a/PerformanceTests/Replay/Swedish/www.flashback.se.replay b/PerformanceTests/Replay/Swedish/www.flashback.se.replay
new file mode 100644
index 000000000..b97c1f5b7
--- /dev/null
+++ b/PerformanceTests/Replay/Swedish/www.flashback.se.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20091021002014/http://www.flashback.se/
diff --git a/PerformanceTests/Replay/Swedish/www.tradera.com.replay b/PerformanceTests/Replay/Swedish/www.tradera.com.replay
new file mode 100644
index 000000000..8c8fefe71
--- /dev/null
+++ b/PerformanceTests/Replay/Swedish/www.tradera.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110719020615/http://www.tradera.com/
diff --git a/PerformanceTests/Replay/www.google.com.replay b/PerformanceTests/Replay/www.google.com.replay
new file mode 100644
index 000000000..a4f25b6bf
--- /dev/null
+++ b/PerformanceTests/Replay/www.google.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110729013436/http://www.google.com/
diff --git a/PerformanceTests/Replay/www.techcrunch.com.replay b/PerformanceTests/Replay/www.techcrunch.com.replay
new file mode 100644
index 000000000..e20293944
--- /dev/null
+++ b/PerformanceTests/Replay/www.techcrunch.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110728133521/http://techcrunch.com/
diff --git a/PerformanceTests/Replay/www.youtube.com.replay b/PerformanceTests/Replay/www.youtube.com.replay
new file mode 100644
index 000000000..988ac98fd
--- /dev/null
+++ b/PerformanceTests/Replay/www.youtube.com.replay
@@ -0,0 +1 @@
+http://web.archive.org/web/20110101045027/http://www.youtube.com/
diff --git a/PerformanceTests/SVG/SvgCubics.html b/PerformanceTests/SVG/SvgCubics.html
new file mode 100644
index 000000000..1d4f409e0
--- /dev/null
+++ b/PerformanceTests/SVG/SvgCubics.html
@@ -0,0 +1,921 @@
+<!DOCTYPE html>
+<!-- Benchmark of SVG Cubics -->
+<html>
+ <head>
+ <style>
+ body {
+ margin: 0px;
+ }
+ #container {
+ background-color: #eee;
+ width: 600px;
+ height: 400px;
+ }
+ #stats {
+ position: absolute;
+ top: 710px;
+ left: 10px;
+ line-height: 0px;
+ }
+ #title {
+ position: absolute;
+ top: 400px;
+ left: 0px;
+ font-family: sans-serif;
+ font-size: 30px;
+ text-align: right;
+ width: 600px;
+ }
+ </style>
+ </head>
+ <body>
+ <div id="wrapper">
+ <div id="title">SVG Tiger Cubics Benchmark</div>
+ <div id="container">
+ <svg id="svg" width="600" height="400" xmlns="http://www.w3.org/2000/svg" version="1.0">
+ <defs>
+ <!-- background gradient -->
+ <linearGradient id="background" x1="0" y1="95%" x2="0" y2="-50%">
+ <stop offset="5%" stop-color="#F60" />
+ <stop offset="95%" stop-color="#FF6" />
+ </linearGradient>
+ <!-- Canonical SVG tiger -->
+ <g transform="translate(0,0) scale(0.4)" id="tiger">
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-122.304 84.285C-122.304 84.285 -122.203 86.179 -123.027 86.16C-123.851 86.141 -140.305 38.066 -160.833 40.309C-160.833 40.309 -143.05 32.956 -122.304 84.285z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-118.774 81.262C-118.774 81.262 -119.323 83.078 -120.092 82.779C-120.86 82.481 -119.977 31.675 -140.043 26.801C-140.043 26.801 -120.82 25.937 -118.774 81.262z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-91.284 123.59C-91.284 123.59 -89.648 124.55 -90.118 125.227C-90.589 125.904 -139.763 113.102 -149.218 131.459C-149.218 131.459 -145.539 112.572 -91.284 123.59z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-94.093 133.801C-94.093 133.801 -92.237 134.197 -92.471 134.988C-92.704 135.779 -143.407 139.121 -146.597 159.522C-146.597 159.522 -149.055 140.437 -94.093 133.801z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-98.304 128.276C-98.304 128.276 -96.526 128.939 -96.872 129.687C-97.218 130.435 -147.866 126.346 -153.998 146.064C-153.998 146.064 -153.646 126.825 -98.304 128.276z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-109.009 110.072C-109.009 110.072 -107.701 111.446 -108.34 111.967C-108.979 112.488 -152.722 86.634 -166.869 101.676C-166.869 101.676 -158.128 84.533 -109.009 110.072z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-116.554 114.263C-116.554 114.263 -115.098 115.48 -115.674 116.071C-116.25 116.661 -162.638 95.922 -174.992 112.469C-174.992 112.469 -168.247 94.447 -116.554 114.263z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-119.154 118.335C-119.154 118.335 -117.546 119.343 -118.036 120.006C-118.526 120.669 -167.308 106.446 -177.291 124.522C-177.291 124.522 -173.066 105.749 -119.154 118.335z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-108.42 118.949C-108.42 118.949 -107.298 120.48 -107.999 120.915C-108.7 121.35 -148.769 90.102 -164.727 103.207C-164.727 103.207 -153.862 87.326 -108.42 118.949z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-128.2 90C-128.2 90 -127.6 91.8 -128.4 92C-129.2 92.2 -157.8 50.2 -177.001 57.8C-177.001 57.8 -161.8 46 -128.2 90z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-127.505 96.979C-127.505 96.979 -126.53 98.608 -127.269 98.975C-128.007 99.343 -164.992 64.499 -182.101 76.061C-182.101 76.061 -169.804 61.261 -127.505 96.979z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.172">
+ <path d="M-127.62 101.349C-127.62 101.349 -126.498 102.88 -127.199 103.315C-127.9 103.749 -167.969 72.502 -183.927 85.607C-183.927 85.607 -173.062 69.726 -127.62 101.349z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000">
+ <path d="M-129.83 103.065C-129.327 109.113 -128.339 115.682 -126.6 118.801C-126.6 118.801 -130.2 131.201 -121.4 144.401C-121.4 144.401 -121.8 151.601 -120.2 154.801C-120.2 154.801 -116.2 163.201 -111.4 164.001C-107.516 164.648 -98.793 167.717 -88.932 169.121C-88.932 169.121 -71.8 183.201 -75 196.001C-75 196.001 -75.4 212.401 -79 214.001C-79 214.001 -67.4 202.801 -77 219.601L-81.4 238.401C-81.4 238.401 -55.8 216.801 -71.4 235.201L-81.4 261.201C-81.4 261.201 -61.8 242.801 -69 251.201L-72.2 260.001C-72.2 260.001 -29 232.801 -59.8 262.401C-59.8 262.401 -51.8 258.801 -47.4 261.601C-47.4 261.601 -40.6 260.401 -41.4 262.001C-41.4 262.001 -62.2 272.401 -65.8 290.801C-65.8 290.801 -57.4 280.801 -60.6 291.601L-60.2 303.201C-60.2 303.201 -56.2 281.601 -56.6 319.201C-56.6 319.201 -37.4 301.201 -49 322.001L-49 338.801C-49 338.801 -33.8 322.401 -40.2 335.201C-40.2 335.201 -30.2 326.401 -34.2 341.601C-34.2 341.601 -35 352.001 -30.6 340.801C-30.6 340.801 -14.6 310.201 -20.6 336.401C-20.6 336.401 -21.4 355.601 -16.6 340.801C-16.6 340.801 -16.2 351.201 -7 358.401C-7 358.401 -8.2 307.601 4.6 343.601L8.6 360.001C8.6 360.001 11.4 350.801 11 345.601C11 345.601 25.8 329.201 19 353.601C19 353.601 34.2 330.801 31 344.001C31 344.001 23.4 360.001 25 364.801C25 364.801 41.8 330.001 43 328.401C43 328.401 41 370.802 51.8 334.801C51.8 334.801 57.4 346.801 54.6 351.201C54.6 351.201 62.6 343.201 61.8 340.001C61.8 340.001 66.4 331.801 69.2 345.401C69.2 345.401 71 354.801 72.6 351.601C72.6 351.601 76.6 375.602 77.8 352.801C77.8 352.801 79.4 339.201 72.2 327.601C72.2 327.601 73 324.401 70.2 320.401C70.2 320.401 83.8 342.001 76.6 313.201C76.6 313.201 87.801 321.201 89.001 321.201C89.001 321.201 75.4 298.001 84.2 302.801C84.2 302.801 79 292.401 97.001 304.401C97.001 304.401 81 288.401 98.601 298.001C98.601 298.001 106.601 304.401 99.001 294.401C99.001 294.401 84.6 278.401 106.601 296.401C106.601 296.401 118.201 312.801 119.001 315.601C119.001 315.601 109.001 286.401 104.601 283.601C104.601 283.601 113.001 247.201 154.201 262.801C154.201 262.801 161.001 280.001 165.401 261.601C165.401 261.601 178.201 255.201 189.401 282.801C189.401 282.801 193.401 269.201 192.601 266.401C192.601 266.401 199.401 267.601 198.601 266.401C198.601 266.401 211.801 270.801 213.001 270.001C213.001 270.001 219.801 276.801 220.201 273.201C220.201 273.201 229.401 276.001 227.401 272.401C227.401 272.401 236.201 288.001 236.601 291.601L239.001 277.601L241.001 280.401C241.001 280.401 242.601 272.801 241.801 271.601C241.001 270.401 261.801 278.401 266.601 299.201L268.601 307.601C268.601 307.601 274.601 292.801 273.001 288.801C273.001 288.801 278.201 289.601 278.601 294.001C278.601 294.001 282.601 270.801 277.801 264.801C277.801 264.801 282.201 264.001 283.401 267.601L283.401 260.401C283.401 260.401 290.601 261.201 290.601 258.801C290.601 258.801 295.001 254.801 297.001 259.601C297.001 259.601 284.601 224.401 303.001 243.601C303.001 243.601 310.201 254.401 306.601 235.601C303.001 216.801 299.001 215.201 303.801 214.801C303.801 214.801 304.601 211.201 302.601 209.601C300.601 208.001 303.801 209.601 303.801 209.601C303.801 209.601 308.601 213.601 303.401 191.601C303.401 191.601 309.801 193.201 297.801 164.001C297.801 164.001 300.601 161.601 296.601 153.201C296.601 153.201 304.601 157.601 307.401 156.001C307.401 156.001 307.001 154.401 303.801 150.401C303.801 150.401 282.201 95.6 302.601 117.601C302.601 117.601 314.451 131.151 308.051 108.351C308.051 108.351 298.94 84.341 299.717 80.045L-129.83 103.065z"/>
+ </g>
+ <g style="fill: #cc7226; stroke:#000000">
+ <path d="M299.717 80.245C300.345 80.426 302.551 81.55 303.801 83.2C303.801 83.2 310.601 94 305.401 75.6C305.401 75.6 296.201 46.8 305.001 58C305.001 58 311.001 65.2 307.801 51.6C303.936 35.173 301.401 28.8 301.401 28.8C301.401 28.8 313.001 33.6 286.201 -6L295.001 -2.4C295.001 -2.4 275.401 -42 253.801 -47.2L245.801 -53.2C245.801 -53.2 284.201 -91.2 271.401 -128C271.401 -128 264.601 -133.2 255.001 -124C255.001 -124 248.601 -119.2 242.601 -120.8C242.601 -120.8 211.801 -119.6 209.801 -119.6C207.801 -119.6 173.001 -156.8 107.401 -139.2C107.401 -139.2 102.201 -137.2 97.801 -138.4C97.801 -138.4 79.4 -154.4 30.6 -131.6C30.6 -131.6 20.6 -129.6 19 -129.6C17.4 -129.6 14.6 -129.6 6.6 -123.2C-1.4 -116.8 -1.8 -116 -3.8 -114.4C-3.8 -114.4 -20.2 -103.2 -25 -102.4C-25 -102.4 -36.6 -96 -41 -86L-44.6 -84.8C-44.6 -84.8 -46.2 -77.6 -46.6 -76.4C-46.6 -76.4 -51.4 -72.8 -52.2 -67.2C-52.2 -67.2 -61 -61.2 -60.6 -56.8C-60.6 -56.8 -62.2 -51.6 -63 -46.8C-63 -46.8 -70.2 -42 -69.4 -39.2C-69.4 -39.2 -77 -25.2 -75.8 -18.4C-75.8 -18.4 -82.2 -18.8 -85 -16.4C-85 -16.4 -85.8 -11.6 -87.4 -11.2C-87.4 -11.2 -90.2 -10 -87.8 -6C-87.8 -6 -89.4 -3.2 -89.8 -1.6C-89.8 -1.6 -89 1.2 -93.4 6.8C-93.4 6.8 -99.8 25.6 -97.8 30.8C-97.8 30.8 -97.4 35.6 -100.2 37.2C-100.2 37.2 -103.8 36.8 -95.4 48.8C-95.4 48.8 -94.6 50 -97.8 52.4C-97.8 52.4 -115 56 -117.4 72.4C-117.4 72.4 -131 87.2 -131 92.4C-131 94.705 -130.729 97.852 -130.03 102.465C-130.03 102.465 -130.6 110.801 -103 111.601C-75.4 112.401 299.717 80.245 299.717 80.245z"/>
+ </g>
+ <g style="fill: #cc7226">
+ <path d="M-115.6 102.6C-140.6 63.2 -126.2 119.601 -126.2 119.601C-117.4 154.001 12.2 116.401 12.2 116.401C12.2 116.401 181.001 86 192.201 82C203.401 78 298.601 84.4 298.601 84.4L293.001 67.6C228.201 21.2 209.001 44.4 195.401 40.4C181.801 36.4 184.201 46 181.001 46.8C177.801 47.6 138.601 22.8 132.201 23.6C125.801 24.4 100.459 0.649 115.401 32.4C131.401 66.4 57 71.6 40.2 60.4C23.4 49.2 47.4 78.8 47.4 78.8C65.8 98.8 31.4 82 31.4 82C-3 69.2 -27 94.8 -30.2 95.6C-33.4 96.4 -38.2 99.6 -39 93.2C-39.8 86.8 -47.31 70.099 -79 96.4C-99 113.001 -112.8 91 -112.8 91L-115.6 102.6z"/>
+ </g>
+ <g style="fill: #e87f3a">
+ <path d="M133.51 25.346C127.11 26.146 101.743 2.407 116.71 34.146C133.31 69.346 58.31 73.346 41.51 62.146C24.709 50.946 48.71 80.546 48.71 80.546C67.11 100.546 32.709 83.746 32.709 83.746C-1.691 70.946 -25.691 96.546 -28.891 97.346C-32.091 98.146 -36.891 101.346 -37.691 94.946C-38.491 88.546 -45.87 72.012 -77.691 98.146C-98.927 115.492 -112.418 94.037 -112.418 94.037L-115.618 104.146C-140.618 64.346 -125.546 122.655 -125.546 122.655C-116.745 157.056 13.509 118.146 13.509 118.146C13.509 118.146 182.31 87.746 193.51 83.746C204.71 79.746 299.038 86.073 299.038 86.073L293.51 68.764C228.71 22.364 210.31 46.146 196.71 42.146C183.11 38.146 185.51 47.746 182.31 48.546C179.11 49.346 139.91 24.546 133.51 25.346z"/>
+ </g>
+ <g style="fill: #ea8c4d">
+ <path d="M134.819 27.091C128.419 27.891 103.685 3.862 118.019 35.891C134.219 72.092 59.619 75.092 42.819 63.892C26.019 52.692 50.019 82.292 50.019 82.292C68.419 102.292 34.019 85.492 34.019 85.492C-0.381 72.692 -24.382 98.292 -27.582 99.092C-30.782 99.892 -35.582 103.092 -36.382 96.692C-37.182 90.292 -44.43 73.925 -76.382 99.892C-98.855 117.983 -112.036 97.074 -112.036 97.074L-115.636 105.692C-139.436 66.692 -124.891 125.71 -124.891 125.71C-116.091 160.11 14.819 119.892 14.819 119.892C14.819 119.892 183.619 89.492 194.819 85.492C206.019 81.492 299.474 87.746 299.474 87.746L294.02 69.928C229.219 23.528 211.619 47.891 198.019 43.891C184.419 39.891 186.819 49.491 183.619 50.292C180.419 51.092 141.219 26.291 134.819 27.091z"/>
+ </g>
+ <g style="fill: #ec9961">
+ <path d="M136.128 28.837C129.728 29.637 104.999 5.605 119.328 37.637C136.128 75.193 60.394 76.482 44.128 65.637C27.328 54.437 51.328 84.037 51.328 84.037C69.728 104.037 35.328 87.237 35.328 87.237C0.928 74.437 -23.072 100.037 -26.272 100.837C-29.472 101.637 -34.272 104.837 -35.072 98.437C-35.872 92.037 -42.989 75.839 -75.073 101.637C-98.782 120.474 -111.655 100.11 -111.655 100.11L-115.655 107.237C-137.455 70.437 -124.236 128.765 -124.236 128.765C-115.436 163.165 16.128 121.637 16.128 121.637C16.128 121.637 184.928 91.237 196.129 87.237C207.329 83.237 299.911 89.419 299.911 89.419L294.529 71.092C229.729 24.691 212.929 49.637 199.329 45.637C185.728 41.637 188.128 51.237 184.928 52.037C181.728 52.837 142.528 28.037 136.128 28.837z"/>
+ </g>
+ <g style="fill: #eea575">
+ <path d="M137.438 30.583C131.037 31.383 106.814 7.129 120.637 39.383C137.438 78.583 62.237 78.583 45.437 67.383C28.637 56.183 52.637 85.783 52.637 85.783C71.037 105.783 36.637 88.983 36.637 88.983C2.237 76.183 -21.763 101.783 -24.963 102.583C-28.163 103.383 -32.963 106.583 -33.763 100.183C-34.563 93.783 -41.548 77.752 -73.763 103.383C-98.709 122.965 -111.273 103.146 -111.273 103.146L-115.673 108.783C-135.473 73.982 -123.582 131.819 -123.582 131.819C-114.782 166.22 17.437 123.383 17.437 123.383C17.437 123.383 186.238 92.983 197.438 88.983C208.638 84.983 300.347 91.092 300.347 91.092L295.038 72.255C230.238 25.855 214.238 51.383 200.638 47.383C187.038 43.383 189.438 52.983 186.238 53.783C183.038 54.583 143.838 29.783 137.438 30.583z"/>
+ </g>
+ <g style="fill: #f1b288">
+ <path d="M138.747 32.328C132.347 33.128 106.383 9.677 121.947 41.128C141.147 79.928 63.546 80.328 46.746 69.128C29.946 57.928 53.946 87.528 53.946 87.528C72.346 107.528 37.946 90.728 37.946 90.728C3.546 77.928 -20.454 103.528 -23.654 104.328C-26.854 105.128 -31.654 108.328 -32.454 101.928C-33.254 95.528 -40.108 79.665 -72.454 105.128C-98.636 125.456 -110.891 106.183 -110.891 106.183L-115.691 110.328C-133.691 77.128 -122.927 134.874 -122.927 134.874C-114.127 169.274 18.746 125.128 18.746 125.128C18.746 125.128 187.547 94.728 198.747 90.728C209.947 86.728 300.783 92.764 300.783 92.764L295.547 73.419C230.747 27.019 215.547 53.128 201.947 49.128C188.347 45.128 190.747 54.728 187.547 55.528C184.347 56.328 145.147 31.528 138.747 32.328z"/>
+ </g>
+ <g style="fill: #f3bf9c">
+ <path d="M140.056 34.073C133.655 34.873 107.313 11.613 123.255 42.873C143.656 82.874 64.855 82.074 48.055 70.874C31.255 59.674 55.255 89.274 55.255 89.274C73.655 109.274 39.255 92.474 39.255 92.474C4.855 79.674 -19.145 105.274 -22.345 106.074C-25.545 106.874 -30.345 110.074 -31.145 103.674C-31.945 97.274 -38.668 81.578 -71.145 106.874C-98.564 127.947 -110.509 109.219 -110.509 109.219L-115.709 111.874C-131.709 81.674 -122.273 137.929 -122.273 137.929C-113.473 172.329 20.055 126.874 20.055 126.874C20.055 126.874 188.856 96.474 200.056 92.474C211.256 88.474 301.22 94.437 301.22 94.437L296.056 74.583C231.256 28.183 216.856 54.874 203.256 50.874C189.656 46.873 192.056 56.474 188.856 57.274C185.656 58.074 146.456 33.273 140.056 34.073z"/>
+ </g>
+ <g style="fill: #f5ccb0">
+ <path d="M141.365 35.819C134.965 36.619 107.523 13.944 124.565 44.619C146.565 84.219 66.164 83.819 49.364 72.619C32.564 61.419 56.564 91.019 56.564 91.019C74.964 111.019 40.564 94.219 40.564 94.219C6.164 81.419 -17.836 107.019 -21.036 107.819C-24.236 108.619 -29.036 111.819 -29.836 105.419C-30.636 99.019 -37.227 83.492 -69.836 108.619C-98.491 130.438 -110.127 112.256 -110.127 112.256L-115.727 113.419C-130.128 85.019 -121.618 140.983 -121.618 140.983C-112.818 175.384 21.364 128.619 21.364 128.619C21.364 128.619 190.165 98.219 201.365 94.219C212.565 90.219 301.656 96.11 301.656 96.11L296.565 75.746C231.765 29.346 218.165 56.619 204.565 52.619C190.965 48.619 193.365 58.219 190.165 59.019C186.965 59.819 147.765 35.019 141.365 35.819z"/>
+ </g>
+ <g style="fill: #f8d8c4">
+ <path d="M142.674 37.565C136.274 38.365 108.832 15.689 125.874 46.365C147.874 85.965 67.474 85.565 50.674 74.365C33.874 63.165 57.874 92.765 57.874 92.765C76.274 112.765 41.874 95.965 41.874 95.965C7.473 83.165 -16.527 108.765 -19.727 109.565C-22.927 110.365 -27.727 113.565 -28.527 107.165C-29.327 100.765 -35.786 85.405 -68.527 110.365C-98.418 132.929 -109.745 115.293 -109.745 115.293L-115.745 114.965C-129.346 88.564 -120.963 144.038 -120.963 144.038C-112.163 178.438 22.673 130.365 22.673 130.365C22.673 130.365 191.474 99.965 202.674 95.965C213.874 91.965 302.093 97.783 302.093 97.783L297.075 76.91C232.274 30.51 219.474 58.365 205.874 54.365C192.274 50.365 194.674 59.965 191.474 60.765C188.274 61.565 149.074 36.765 142.674 37.565z"/>
+ </g>
+ <g style="fill: #fae5d7">
+ <path d="M143.983 39.31C137.583 40.11 110.529 17.223 127.183 48.11C149.183 88.91 68.783 87.31 51.983 76.11C35.183 64.91 59.183 94.51 59.183 94.51C77.583 114.51 43.183 97.71 43.183 97.71C8.783 84.91 -15.217 110.51 -18.417 111.31C-21.618 112.11 -26.418 115.31 -27.218 108.91C-28.018 102.51 -34.346 87.318 -67.218 112.11C-98.345 135.42 -109.363 118.329 -109.363 118.329L-115.764 116.51C-128.764 92.51 -120.309 147.093 -120.309 147.093C-111.509 181.493 23.983 132.11 23.983 132.11C23.983 132.11 192.783 101.71 203.983 97.71C215.183 93.71 302.529 99.456 302.529 99.456L297.583 78.074C232.783 31.673 220.783 60.11 207.183 56.11C193.583 52.11 195.983 61.71 192.783 62.51C189.583 63.31 150.383 38.51 143.983 39.31z"/>
+ </g>
+ <g style="fill: #fcf2eb">
+ <path d="M145.292 41.055C138.892 41.855 112.917 18.411 128.492 49.855C149.692 92.656 70.092 89.056 53.292 77.856C36.492 66.656 60.492 96.256 60.492 96.256C78.892 116.256 44.492 99.456 44.492 99.456C10.092 86.656 -13.908 112.256 -17.108 113.056C-20.308 113.856 -25.108 117.056 -25.908 110.656C-26.708 104.256 -32.905 89.232 -65.908 113.856C-98.273 137.911 -108.982 121.365 -108.982 121.365L-115.782 118.056C-128.582 94.856 -119.654 150.147 -119.654 150.147C-110.854 184.547 25.292 133.856 25.292 133.856C25.292 133.856 194.093 103.456 205.293 99.456C216.493 95.456 302.965 101.128 302.965 101.128L298.093 79.237C233.292 32.837 222.093 61.856 208.493 57.856C194.893 53.855 197.293 63.456 194.093 64.256C190.892 65.056 151.692 40.255 145.292 41.055z"/>
+ </g>
+ <g style="fill: #ffffff">
+ <path d="M-115.8 119.601C-128.6 97.6 -119 153.201 -119 153.201C-110.2 187.601 26.6 135.601 26.6 135.601C26.6 135.601 195.401 105.2 206.601 101.2C217.801 97.2 303.401 102.8 303.401 102.8L298.601 80.4C233.801 34 223.401 63.6 209.801 59.6C196.201 55.6 198.601 65.2 195.401 66C192.201 66.8 153.001 42 146.601 42.8C140.201 43.6 114.981 19.793 129.801 51.6C152.028 99.307 69.041 89.227 54.6 79.6C37.8 68.4 61.8 98 61.8 98C80.2 118.001 45.8 101.2 45.8 101.2C11.4 88.4 -12.6 114.001 -15.8 114.801C-19 115.601 -23.8 118.801 -24.6 112.401C-25.4 106 -31.465 91.144 -64.6 115.601C-98.2 140.401 -108.6 124.401 -108.6 124.401L-115.8 119.601z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-74.2 149.601C-74.2 149.601 -81.4 161.201 -60.6 174.401C-60.6 174.401 -59.2 175.801 -77.2 171.601C-77.2 171.601 -83.4 169.601 -85 159.201C-85 159.201 -89.8 154.801 -94.6 149.201C-99.4 143.601 -74.2 149.601 -74.2 149.601z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M65.8 102C65.8 102 83.498 128.821 82.9 133.601C81.6 144.001 81.4 153.601 84.6 157.601C87.801 161.601 96.601 194.801 96.601 194.801C96.601 194.801 96.201 196.001 108.601 158.001C108.601 158.001 120.201 142.001 100.201 123.601C100.201 123.601 65 94.8 65.8 102z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-54.2 176.401C-54.2 176.401 -43 183.601 -57.4 214.801L-51 212.401C-51 212.401 -51.8 223.601 -55 226.001L-47.8 222.801C-47.8 222.801 -43 230.801 -47 235.601C-47 235.601 -30.2 243.601 -31 250.001C-31 250.001 -24.6 242.001 -28.6 235.601C-32.6 229.201 -39.8 233.201 -39 214.801L-47.8 218.001C-47.8 218.001 -42.2 209.201 -42.2 202.801L-50.2 205.201C-50.2 205.201 -34.731 178.623 -45.4 177.201C-51.4 176.401 -54.2 176.401 -54.2 176.401z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-21.8 193.201C-21.8 193.201 -19 188.801 -21.8 189.601C-24.6 190.401 -55.8 205.201 -61.8 214.801C-61.8 214.801 -27.4 190.401 -21.8 193.201z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-11.4 201.201C-11.4 201.201 -8.6 196.801 -11.4 197.601C-14.2 198.401 -45.4 213.201 -51.4 222.801C-51.4 222.801 -17 198.401 -11.4 201.201z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M1.8 186.001C1.8 186.001 4.6 181.601 1.8 182.401C-1 183.201 -32.2 198.001 -38.2 207.601C-38.2 207.601 -3.8 183.201 1.8 186.001z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-21.4 229.601C-21.4 229.601 -21.4 223.601 -24.2 224.401C-27 225.201 -63 242.801 -69 252.401C-69 252.401 -27 226.801 -21.4 229.601z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-20.2 218.801C-20.2 218.801 -19 214.001 -21.8 214.801C-23.8 214.801 -50.2 226.401 -56.2 236.001C-56.2 236.001 -26.6 214.401 -20.2 218.801z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-34.6 266.401L-44.6 274.001C-44.6 274.001 -34.2 266.401 -30.6 267.601C-30.6 267.601 -37.4 278.801 -38.2 284.001C-38.2 284.001 -27.8 271.201 -22.2 271.601C-22.2 271.601 -14.6 272.001 -14.6 282.801C-14.6 282.801 -9 272.401 -5.8 272.801C-5.8 272.801 -4.6 279.201 -5.8 286.001C-5.8 286.001 -1.8 278.401 2.2 280.001C2.2 280.001 8.6 278.001 7.8 289.601C7.8 289.601 7.8 300.001 7 302.801C7 302.801 12.6 276.401 15 276.001C15 276.001 23 274.801 27.8 283.601C27.8 283.601 23.8 276.001 28.6 278.001C28.6 278.001 39.4 279.601 42.6 286.401C42.6 286.401 35.8 274.401 41.4 277.601C41.4 277.601 48.2 277.601 49.4 284.001C49.4 284.001 57.8 305.201 59.8 306.801C59.8 306.801 52.2 285.201 53.8 285.201C53.8 285.201 51.8 273.201 57 288.001C57 288.001 53.8 274.001 59.4 274.801C65 275.601 69.4 285.601 77.8 283.201C77.8 283.201 87.401 288.801 89.401 219.601L-34.6 266.401z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-29.8 173.601C-29.8 173.601 -15 167.601 25 173.601C25 173.601 32.2 174.001 39 165.201C45.8 156.401 72.6 149.201 79 151.201L88.601 157.601L89.401 158.801C89.401 158.801 101.801 169.201 102.201 176.801C102.601 184.401 87.801 232.401 78.2 248.401C68.6 264.401 59 276.801 39.8 274.401C39.8 274.401 19 270.401 -6.6 274.401C-6.6 274.401 -35.8 272.801 -38.6 264.801C-41.4 256.801 -27.4 241.601 -27.4 241.601C-27.4 241.601 -23 233.201 -24.2 218.801C-25.4 204.401 -25 176.401 -29.8 173.601z"/>
+ </g>
+ <g style="fill: #e5668c">
+ <path d="M-7.8 175.601C0.6 194.001 -29 259.201 -29 259.201C-31 260.801 -16.34 266.846 -6.2 264.401C4.746 261.763 45 266.001 45 266.001C68.6 250.401 81.4 206.001 81.4 206.001C81.4 206.001 91.801 182.001 74.2 178.801C56.6 175.601 -7.8 175.601 -7.8 175.601z"/>
+ </g>
+ <g style="fill: #b23259">
+ <path d="M-9.831 206.497C-6.505 193.707 -4.921 181.906 -7.8 175.601C-7.8 175.601 54.6 182.001 65.8 161.201C70.041 153.326 84.801 184.001 84.4 193.601C84.4 193.601 21.4 208.001 6.6 196.801L-9.831 206.497z"/>
+ </g>
+ <g style="fill: #a5264c">
+ <path d="M-5.4 222.801C-5.4 222.801 -3.4 230.001 -5.8 234.001C-5.8 234.001 -7.4 234.801 -8.6 235.201C-8.6 235.201 -7.4 238.801 -1.4 240.401C-1.4 240.401 0.6 244.801 3 245.201C5.4 245.601 10.2 251.201 14.2 250.001C18.2 248.801 29.4 244.801 29.4 244.801C29.4 244.801 35 241.601 43.8 245.201C43.8 245.201 46.175 244.399 46.6 240.401C47.1 235.701 50.2 232.001 52.2 230.001C54.2 228.001 63.8 215.201 62.6 214.801C61.4 214.401 -5.4 222.801 -5.4 222.801z"/>
+ </g>
+ <g style="fill: #ff727f; stroke:#000000">
+ <path d="M-9.8 174.401C-9.8 174.401 -12.6 196.801 -9.4 205.201C-6.2 213.601 -7 215.601 -7.8 219.601C-8.6 223.601 -4.2 233.601 1.4 239.601L13.4 241.201C13.4 241.201 28.6 237.601 37.8 240.401C37.8 240.401 46.794 241.744 50.2 226.801C50.2 226.801 55 220.401 62.2 217.601C69.4 214.801 76.6 173.201 72.6 165.201C68.6 157.201 54.2 152.801 38.2 168.401C22.2 184.001 20.2 167.201 -9.8 174.401z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-8.2 249.201C-8.2 249.201 -9 247.201 -13.4 246.801C-13.4 246.801 -35.8 243.201 -44.2 230.801C-44.2 230.801 -51 225.201 -46.6 236.801C-46.6 236.801 -36.2 257.201 -29.4 260.001C-29.4 260.001 -13 264.001 -8.2 249.201z"/>
+ </g>
+ <g style="fill: #cc3f4c">
+ <path d="M71.742 185.229C72.401 177.323 74.354 168.709 72.6 165.201C66.154 152.307 49.181 157.695 38.2 168.401C22.2 184.001 20.2 167.201 -9.8 174.401C-9.8 174.401 -11.545 188.364 -10.705 198.376C-10.705 198.376 26.6 186.801 27.4 192.401C27.4 192.401 29 189.201 38.2 189.201C47.4 189.201 70.142 188.029 71.742 185.229z"/>
+ </g>
+ <g style="stroke:#a51926; stroke-width:2">
+ <path d="M28.6 175.201C28.6 175.201 33.4 180.001 29.8 189.601C29.8 189.601 15.4 205.601 17.4 219.601"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-19.4 260.001C-19.4 260.001 -23.8 247.201 -15 254.001C-15 254.001 -10.2 256.001 -11.4 257.601C-12.6 259.201 -18.2 263.201 -19.4 260.001z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-14.36 261.201C-14.36 261.201 -17.88 250.961 -10.84 256.401C-10.84 256.401 -6.419 258.849 -7.96 259.281C-12.52 260.561 -7.96 263.121 -14.36 261.201z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-9.56 261.201C-9.56 261.201 -13.08 250.961 -6.04 256.401C-6.04 256.401 -1.665 258.711 -3.16 259.281C-6.52 260.561 -3.16 263.121 -9.56 261.201z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-2.96 261.401C-2.96 261.401 -6.48 251.161 0.56 256.601C0.56 256.601 4.943 258.933 3.441 259.481C0.48 260.561 3.441 263.321 -2.96 261.401z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M3.52 261.321C3.52 261.321 0 251.081 7.041 256.521C7.041 256.521 10.881 258.121 9.921 259.401C8.961 260.681 9.921 263.241 3.52 261.321z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M10.2 262.001C10.2 262.001 5.4 249.601 14.6 256.001C14.6 256.001 19.4 258.001 18.2 259.601C17 261.201 18.2 264.401 10.2 262.001z"/>
+ </g>
+ <g style="stroke:#a5264c; stroke-width:2">
+ <path d="M-18.2 244.801C-18.2 244.801 -5 242.001 1 245.201C1 245.201 7 246.401 8.2 246.001C9.4 245.601 12.6 245.201 12.6 245.201"/>
+ </g>
+ <g style="stroke:#a5264c; stroke-width:2">
+ <path d="M15.8 253.601C15.8 253.601 27.8 240.001 39.8 244.401C46.816 246.974 45.8 243.601 46.6 240.801C47.4 238.001 47.6 233.801 52.6 230.801"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M33 237.601C33 237.601 29 226.801 26.2 239.601C23.4 252.401 20.2 256.001 18.6 258.801C18.6 258.801 18.6 264.001 27 263.601C27 263.601 37.8 263.201 38.2 260.401C38.6 257.601 37 246.001 33 237.601z"/>
+ </g>
+ <g style="stroke:#a5264c; stroke-width:2">
+ <path d="M47 244.801C47 244.801 50.6 242.401 53 243.601"/>
+ </g>
+ <g style="stroke:#a5264c; stroke-width:2">
+ <path d="M53.5 228.401C53.5 228.401 56.4 223.501 61.2 222.701"/>
+ </g>
+ <g style="fill: #b2b2b2">
+ <path d="M-25.8 265.201C-25.8 265.201 -7.8 268.401 -3.4 266.801C-3.4 266.801 5.4 266.801 -3 268.801C-3 268.801 -15.8 268.801 -23.8 267.601C-23.8 267.601 -35.4 262.001 -25.8 265.201z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-11.8 172.001C-11.8 172.001 5.8 172.001 7.8 172.801C7.8 172.801 15 203.601 11.4 211.201C11.4 211.201 10.2 214.001 7.4 208.401C7.4 208.401 -11 175.601 -14.2 173.601C-17.4 171.601 -13 172.001 -11.8 172.001z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-88.9 169.301C-88.9 169.301 -80 171.001 -67.4 173.601C-67.4 173.601 -62.6 196.001 -59.4 200.801C-56.2 205.601 -59.8 205.601 -63.4 202.801C-67 200.001 -81.8 186.001 -83.8 181.601C-85.8 177.201 -88.9 169.301 -88.9 169.301z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-67.039 173.818C-67.039 173.818 -61.239 175.366 -60.23 177.581C-59.222 179.795 -61.432 183.092 -61.432 183.092C-61.432 183.092 -62.432 186.397 -63.634 184.235C-64.836 182.072 -67.708 174.412 -67.039 173.818z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-67 173.601C-67 173.601 -63.4 178.801 -59.8 178.801C-56.2 178.801 -55.818 178.388 -53 179.001C-48.4 180.001 -48.8 178.001 -42.2 179.201C-39.56 179.681 -37 178.801 -34.2 180.001C-31.4 181.201 -28.2 180.401 -27 178.401C-25.8 176.401 -21 172.201 -21 172.201C-21 172.201 -33.8 174.001 -36.6 174.801C-36.6 174.801 -59 176.001 -67 173.601z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-22.4 173.801C-22.4 173.801 -28.85 177.301 -29.25 179.701C-29.65 182.101 -24 185.801 -24 185.801C-24 185.801 -21.25 190.401 -20.65 188.001C-20.05 185.601 -21.6 174.201 -22.4 173.801z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-59.885 179.265C-59.885 179.265 -52.878 190.453 -52.661 179.242C-52.661 179.242 -52.104 177.984 -53.864 177.962C-59.939 177.886 -58.418 173.784 -59.885 179.265z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-52.707 179.514C-52.707 179.514 -44.786 190.701 -45.422 179.421C-45.422 179.421 -45.415 179.089 -47.168 178.936C-51.915 178.522 -51.57 174.004 -52.707 179.514z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-45.494 179.522C-45.494 179.522 -37.534 190.15 -38.203 180.484C-38.203 180.484 -38.084 179.251 -39.738 178.95C-43.63 178.244 -43.841 174.995 -45.494 179.522z"/>
+ </g>
+ <g style="fill: #ffffcc; stroke:#000000; stroke-width:0.5">
+ <path d="M-38.618 179.602C-38.618 179.602 -30.718 191.163 -30.37 181.382C-30.37 181.382 -28.726 180.004 -30.472 179.782C-36.29 179.042 -35.492 174.588 -38.618 179.602z"/>
+ </g>
+ <g style="fill: #e5e5b2">
+ <path d="M-74.792 183.132L-82.45 181.601C-85.05 176.601 -87.15 170.451 -87.15 170.451C-87.15 170.451 -80.8 171.451 -68.3 174.251C-68.3 174.251 -67.424 177.569 -65.952 183.364L-74.792 183.132z"/>
+ </g>
+ <g style="fill: #e5e5b2">
+ <path d="M-9.724 178.47C-11.39 175.964 -12.707 174.206 -13.357 173.8C-16.37 171.917 -12.227 172.294 -11.098 172.294C-11.098 172.294 5.473 172.294 7.356 173.047C7.356 173.047 7.88 175.289 8.564 178.68C8.564 178.68 -1.524 176.67 -9.724 178.47z"/>
+ </g>
+ <g style="fill: #cc7226">
+ <path d="M43.88 40.321C71.601 44.281 97.121 8.641 98.881 -1.04C100.641 -10.72 90.521 -22.6 90.521 -22.6C91.841 -25.68 87.001 -39.76 81.721 -49C76.441 -58.24 60.54 -57.266 43 -58.24C27.16 -59.12 8.68 -35.8 7.36 -34.04C6.04 -32.28 12.2 6.001 13.52 11.721C14.84 17.441 12.2 43.841 12.2 43.841C46.44 34.741 16.16 36.361 43.88 40.321z"/>
+ </g>
+ <g style="fill: #ea8e51">
+ <path d="M8.088 -33.392C6.792 -31.664 12.84 5.921 14.136 11.537C15.432 17.153 12.84 43.073 12.84 43.073C45.512 34.193 16.728 35.729 43.944 39.617C71.161 43.505 96.217 8.513 97.945 -0.992C99.673 -10.496 89.737 -22.16 89.737 -22.16C91.033 -25.184 86.281 -39.008 81.097 -48.08C75.913 -57.152 60.302 -56.195 43.08 -57.152C27.528 -58.016 9.384 -35.12 8.088 -33.392z"/>
+ </g>
+ <g style="fill: #efaa7c">
+ <path d="M8.816 -32.744C7.544 -31.048 13.48 5.841 14.752 11.353C16.024 16.865 13.48 42.305 13.48 42.305C44.884 33.145 17.296 35.097 44.008 38.913C70.721 42.729 95.313 8.385 97.009 -0.944C98.705 -10.272 88.953 -21.72 88.953 -21.72C90.225 -24.688 85.561 -38.256 80.473 -47.16C75.385 -56.064 60.063 -55.125 43.16 -56.064C27.896 -56.912 10.088 -34.44 8.816 -32.744z"/>
+ </g>
+ <g style="fill: #f4c6a8">
+ <path d="M9.544 -32.096C8.296 -30.432 14.12 5.761 15.368 11.169C16.616 16.577 14.12 41.537 14.12 41.537C43.556 32.497 17.864 34.465 44.072 38.209C70.281 41.953 94.409 8.257 96.073 -0.895C97.737 -10.048 88.169 -21.28 88.169 -21.28C89.417 -24.192 84.841 -37.504 79.849 -46.24C74.857 -54.976 59.824 -54.055 43.24 -54.976C28.264 -55.808 10.792 -33.76 9.544 -32.096z"/>
+ </g>
+ <g style="fill: #f9e2d3">
+ <path d="M10.272 -31.448C9.048 -29.816 14.76 5.681 15.984 10.985C17.208 16.289 14.76 40.769 14.76 40.769C42.628 31.849 18.432 33.833 44.136 37.505C69.841 41.177 93.505 8.129 95.137 -0.848C96.769 -9.824 87.385 -20.84 87.385 -20.84C88.609 -23.696 84.121 -36.752 79.225 -45.32C74.329 -53.888 59.585 -52.985 43.32 -53.888C28.632 -54.704 11.496 -33.08 10.272 -31.448z"/>
+ </g>
+ <g style="fill: #ffffff">
+ <path d="M44.2 36.8C69.4 40.4 92.601 8 94.201 -0.8C95.801 -9.6 86.601 -20.4 86.601 -20.4C87.801 -23.2 83.4 -36 78.6 -44.4C73.8 -52.8 59.346 -51.914 43.4 -52.8C29 -53.6 12.2 -32.4 11 -30.8C9.8 -29.2 15.4 5.6 16.6 10.8C17.8 16 15.4 40 15.4 40C40.9 31.4 19 33.2 44.2 36.8z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M90.601 2.8C90.601 2.8 62.8 10.4 51.2 8.8C51.2 8.8 35.4 2.2 26.6 24C26.6 24 23 31.2 21 33.2C19 35.2 90.601 2.8 90.601 2.8z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M94.401 0.6C94.401 0.6 65.4 12.8 55.4 12.4C55.4 12.4 39 7.8 30.6 22.4C30.6 22.4 22.2 31.6 19 33.2C19 33.2 18.6 34.8 25 30.8L35.4 36C35.4 36 50.2 45.6 59.8 29.6C59.8 29.6 63.8 18.4 63.8 16.4C63.8 14.4 85 8.8 86.601 8.4C88.201 8 94.801 3.8 94.401 0.6z"/>
+ </g>
+ <g style="fill: #99cc32">
+ <path d="M47 36.514C40.128 36.514 31.755 32.649 31.755 26.4C31.755 20.152 40.128 13.887 47 13.887C53.874 13.887 59.446 18.952 59.446 25.2C59.446 31.449 53.874 36.514 47 36.514z"/>
+ </g>
+ <g style="fill: #659900">
+ <path d="M43.377 19.83C38.531 20.552 33.442 22.055 33.514 21.839C35.054 17.22 41.415 13.887 47 13.887C51.296 13.887 55.084 15.865 57.32 18.875C57.32 18.875 52.004 18.545 43.377 19.83z"/>
+ </g>
+ <g style="fill: #ffffff">
+ <path d="M55.4 19.6C55.4 19.6 51 16.4 51 18.6C51 18.6 54.6 23 55.4 19.6z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M45.4 27.726C42.901 27.726 40.875 25.7 40.875 23.2C40.875 20.701 42.901 18.675 45.4 18.675C47.9 18.675 49.926 20.701 49.926 23.2C49.926 25.7 47.9 27.726 45.4 27.726z"/>
+ </g>
+ <g style="fill: #cc7226">
+ <path d="M-58.6 14.4C-58.6 14.4 -61.8 -6.8 -59.4 -11.2C-59.4 -11.2 -48.6 -21.2 -49 -24.8C-49 -24.8 -49.4 -42.8 -50.6 -43.6C-51.8 -44.4 -59.4 -50.4 -65.4 -44C-65.4 -44 -75.8 -26 -75 -19.6L-75 -17.6C-75 -17.6 -82.6 -18 -84.2 -16C-84.2 -16 -85.4 -10.8 -86.6 -10.4C-86.6 -10.4 -89.4 -8 -87.4 -5.2C-87.4 -5.2 -89.4 -2.8 -89 1.2L-81.4 5.2C-81.4 5.2 -79.4 19.6 -68.6 24.8C-63.764 27.129 -60.6 20.4 -58.6 14.4z"/>
+ </g>
+ <g style="fill: #ffffff">
+ <path d="M-59.6 12.56C-59.6 12.56 -62.48 -6.52 -60.32 -10.48C-60.32 -10.48 -50.6 -19.48 -50.96 -22.72C-50.96 -22.72 -51.32 -38.92 -52.4 -39.64C-53.48 -40.36 -60.32 -45.76 -65.72 -40C-65.72 -40 -75.08 -23.8 -74.36 -18.04L-74.36 -16.24C-74.36 -16.24 -81.2 -16.6 -82.64 -14.8C-82.64 -14.8 -83.72 -10.12 -84.8 -9.76C-84.8 -9.76 -87.32 -7.6 -85.52 -5.08C-85.52 -5.08 -87.32 -2.92 -86.96 0.68L-80.12 4.28C-80.12 4.28 -78.32 17.24 -68.6 21.92C-64.248 24.015 -61.4 17.96 -59.6 12.56z"/>
+ </g>
+ <g style="fill: #eb955c">
+ <path d="M-51.05 -42.61C-52.14 -43.47 -59.63 -49.24 -65.48 -43C-65.48 -43 -75.62 -25.45 -74.84 -19.21L-74.84 -17.26C-74.84 -17.26 -82.25 -17.65 -83.81 -15.7C-83.81 -15.7 -84.98 -10.63 -86.15 -10.24C-86.15 -10.24 -88.88 -7.9 -86.93 -5.17C-86.93 -5.17 -88.88 -2.83 -88.49 1.07L-81.08 4.97C-81.08 4.97 -79.13 19.01 -68.6 24.08C-63.886 26.35 -60.8 19.79 -58.85 13.94C-58.85 13.94 -61.97 -6.73 -59.63 -11.02C-59.63 -11.02 -49.1 -20.77 -49.49 -24.28C-49.49 -24.28 -49.88 -41.83 -51.05 -42.61z"/>
+ </g>
+ <g style="fill: #f2b892">
+ <path d="M-51.5 -41.62C-52.48 -42.54 -59.86 -48.08 -65.56 -42C-65.56 -42 -75.44 -24.9 -74.68 -18.82L-74.68 -16.92C-74.68 -16.92 -81.9 -17.3 -83.42 -15.4C-83.42 -15.4 -84.56 -10.46 -85.7 -10.08C-85.7 -10.08 -88.36 -7.8 -86.46 -5.14C-86.46 -5.14 -88.36 -2.86 -87.98 0.94L-80.76 4.74C-80.76 4.74 -78.86 18.42 -68.6 23.36C-64.006 25.572 -61 19.18 -59.1 13.48C-59.1 13.48 -62.14 -6.66 -59.86 -10.84C-59.86 -10.84 -49.6 -20.34 -49.98 -23.76C-49.98 -23.76 -50.36 -40.86 -51.5 -41.62z"/>
+ </g>
+ <g style="fill: #f8dcc8">
+ <path d="M-51.95 -40.63C-52.82 -41.61 -60.09 -46.92 -65.64 -41C-65.64 -41 -75.26 -24.35 -74.52 -18.43L-74.52 -16.58C-74.52 -16.58 -81.55 -16.95 -83.03 -15.1C-83.03 -15.1 -84.14 -10.29 -85.25 -9.92C-85.25 -9.92 -87.84 -7.7 -85.99 -5.11C-85.99 -5.11 -87.84 -2.89 -87.47 0.81L-80.44 4.51C-80.44 4.51 -78.59 17.83 -68.6 22.64C-64.127 24.794 -61.2 18.57 -59.35 13.02C-59.35 13.02 -62.31 -6.59 -60.09 -10.66C-60.09 -10.66 -50.1 -19.91 -50.47 -23.24C-50.47 -23.24 -50.84 -39.89 -51.95 -40.63z"/>
+ </g>
+ <g style="fill: #ffffff">
+ <path d="M-59.6 12.46C-59.6 12.46 -62.48 -6.52 -60.32 -10.48C-60.32 -10.48 -50.6 -19.48 -50.96 -22.72C-50.96 -22.72 -51.32 -38.92 -52.4 -39.64C-53.16 -40.68 -60.32 -45.76 -65.72 -40C-65.72 -40 -75.08 -23.8 -74.36 -18.04L-74.36 -16.24C-74.36 -16.24 -81.2 -16.6 -82.64 -14.8C-82.64 -14.8 -83.72 -10.12 -84.8 -9.76C-84.8 -9.76 -87.32 -7.6 -85.52 -5.08C-85.52 -5.08 -87.32 -2.92 -86.96 0.68L-80.12 4.28C-80.12 4.28 -78.32 17.24 -68.6 21.92C-64.248 24.015 -61.4 17.86 -59.6 12.46z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-62.7 6.2C-62.7 6.2 -84.3 -4 -85.2 -4.8C-85.2 -4.8 -76.1 3.4 -75.3 3.4C-74.5 3.4 -62.7 6.2 -62.7 6.2z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-79.8 0C-79.8 0 -61.4 3.6 -61.4 8C-61.4 10.912 -61.643 24.331 -67 22.8C-75.4 20.4 -71.8 6 -79.8 0z"/>
+ </g>
+ <g style="fill: #99cc32">
+ <path d="M-71.4 3.8C-71.4 3.8 -62.422 5.274 -61.4 8C-60.8 9.6 -60.137 17.908 -65.6 19C-70.152 19.911 -72.382 9.69 -71.4 3.8z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M14.595 46.349C14.098 44.607 15.409 44.738 17.2 44.2C19.2 43.6 31.4 39.8 32.2 37.2C33 34.6 46.2 39 46.2 39C48 39.8 52.4 42.4 52.4 42.4C57.2 43.6 63.8 44 63.8 44C66.2 45 69.6 47.8 69.6 47.8C84.2 58 96.601 50.8 96.601 50.8C116.601 44.2 110.601 27 110.601 27C107.601 18 110.801 14.6 110.801 14.6C111.001 10.8 118.201 17.2 118.201 17.2C120.801 21.4 121.601 26.4 121.601 26.4C129.601 37.6 126.201 19.8 126.201 19.8C126.401 18.8 123.601 15.2 123.601 14C123.601 12.8 121.801 9.4 121.801 9.4C118.801 6 121.201 -1 121.201 -1C123.001 -14.8 120.801 -13 120.801 -13C119.601 -14.8 110.401 -4.8 110.401 -4.8C108.201 -1.4 102.201 0.2 102.201 0.2C99.401 2 96.001 0.6 96.001 0.6C93.401 0.2 87.801 7.2 87.801 7.2C90.601 7 93.001 11.4 95.401 11.6C97.801 11.8 99.601 9.2 101.201 8.6C102.801 8 105.601 13.8 105.601 13.8C106.001 16.4 100.401 21.2 100.401 21.2C100.001 25.8 98.401 24.2 98.401 24.2C95.401 23.6 94.201 27.4 93.201 32C92.201 36.6 88.001 37 88.001 37C86.401 44.4 85.2 41.4 85.2 41.4C85 35.8 79 41.6 79 41.6C77.8 43.6 73.2 41.4 73.2 41.4C66.4 39.4 68.8 37.4 68.8 37.4C70.6 35.2 81.8 37.4 81.8 37.4C84 35.8 76 31.8 76 31.8C75.4 30 76.4 25.6 76.4 25.6C77.6 22.4 84.4 16.8 84.4 16.8C93.801 15.6 91.001 14 91.001 14C84.801 8.8 79 16.4 79 16.4C76.8 22.6 59.4 37.6 59.4 37.6C54.6 41 57.2 34.2 53.2 37.6C49.2 41 28.6 32 28.6 32C17.038 30.807 14.306 46.549 10.777 43.429C10.777 43.429 16.195 51.949 14.595 46.349z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M209.401 -120C209.401 -120 183.801 -112 181.001 -93.2C181.001 -93.2 178.601 -70.4 199.001 -52.8C199.001 -52.8 199.401 -46.4 201.401 -43.2C201.401 -43.2 199.801 -38.4 218.601 -46L245.801 -54.4C245.801 -54.4 252.201 -56.8 257.401 -65.6C262.601 -74.4 277.801 -93.2 274.201 -118.4C274.201 -118.4 275.401 -129.6 269.401 -130C269.401 -130 261.001 -131.6 253.801 -124C253.801 -124 247.001 -120.8 244.601 -121.2L209.401 -120z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M264.022 -120.99C264.022 -120.99 266.122 -129.92 261.282 -125.08C261.282 -125.08 254.242 -119.36 246.761 -119.36C246.761 -119.36 232.241 -117.16 227.841 -103.96C227.841 -103.96 223.881 -77.12 231.801 -71.4C231.801 -71.4 236.641 -63.92 243.681 -70.52C250.722 -77.12 266.222 -107.35 264.022 -120.99z"/>
+ </g>
+ <g style="fill: #323232">
+ <path d="M263.648 -120.632C263.648 -120.632 265.738 -129.376 260.986 -124.624C260.986 -124.624 254.074 -119.008 246.729 -119.008C246.729 -119.008 232.473 -116.848 228.153 -103.888C228.153 -103.888 224.265 -77.536 232.041 -71.92C232.041 -71.92 236.793 -64.576 243.705 -71.056C250.618 -77.536 265.808 -107.24 263.648 -120.632z"/>
+ </g>
+ <g style="fill: #666666">
+ <path d="M263.274 -120.274C263.274 -120.274 265.354 -128.832 260.69 -124.168C260.69 -124.168 253.906 -118.656 246.697 -118.656C246.697 -118.656 232.705 -116.536 228.465 -103.816C228.465 -103.816 224.649 -77.952 232.281 -72.44C232.281 -72.44 236.945 -65.232 243.729 -71.592C250.514 -77.952 265.394 -107.13 263.274 -120.274z"/>
+ </g>
+ <g style="fill: #999999">
+ <path d="M262.9 -119.916C262.9 -119.916 264.97 -128.288 260.394 -123.712C260.394 -123.712 253.738 -118.304 246.665 -118.304C246.665 -118.304 232.937 -116.224 228.777 -103.744C228.777 -103.744 225.033 -78.368 232.521 -72.96C232.521 -72.96 237.097 -65.888 243.753 -72.128C250.41 -78.368 264.98 -107.02 262.9 -119.916z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M262.526 -119.558C262.526 -119.558 264.586 -127.744 260.098 -123.256C260.098 -123.256 253.569 -117.952 246.633 -117.952C246.633 -117.952 233.169 -115.912 229.089 -103.672C229.089 -103.672 225.417 -78.784 232.761 -73.48C232.761 -73.48 237.249 -66.544 243.777 -72.664C250.305 -78.784 264.566 -106.91 262.526 -119.558z"/>
+ </g>
+ <g style="fill: #ffffff">
+ <path d="M262.151 -119.2C262.151 -119.2 264.201 -127.2 259.801 -122.8C259.801 -122.8 253.401 -117.6 246.601 -117.6C246.601 -117.6 233.401 -115.6 229.401 -103.6C229.401 -103.6 225.801 -79.2 233.001 -74C233.001 -74 237.401 -67.2 243.801 -73.2C250.201 -79.2 264.151 -106.8 262.151 -119.2z"/>
+ </g>
+ <g style="fill: #992600">
+ <path d="M50.6 84C50.6 84 30.2 64.8 22.2 64C22.2 64 -12.2 60 -27 78C-27 78 -9.4 57.6 18.2 63.2C18.2 63.2 -3.4 58.8 -15.8 62C-15.8 62 -32.6 62 -42.2 76L-45 80.8C-45 80.8 -41 66 -22.6 60C-22.6 60 0.2 55.2 11 60C11 60 -10.6 53.2 -20.6 55.2C-20.6 55.2 -51 52.8 -63.8 79.2C-63.8 79.2 -59.8 64.8 -45 57.6C-45 57.6 -31.4 48.8 -11 51.6C-11 51.6 3.4 54.8 8.6 57.2C13.8 59.6 12.6 56.8 4.2 52C4.2 52 -1.4 42 -15.4 42.4C-15.4 42.4 -58.2 46 -68.6 58C-68.6 58 -55 46.8 -44.6 44C-44.6 44 -22.2 36 -13.8 36.8C-13.8 36.8 11 37.8 18.6 33.8C18.6 33.8 7.4 38.8 10.6 42C13.8 45.2 20.6 52.8 20.6 54C20.6 55.2 44.8 77.3 48.4 81.7L50.6 84z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M189 278C189 278 173.5 241.5 161 232C161 232 187 248 190.5 266C190.5 266 190.5 276 189 278z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M236 285.5C236 285.5 209.5 230.5 191 206.5C191 206.5 234.5 244 239.5 270.5L240 276L237 273.5C237 273.5 236.5 282.5 236 285.5z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M292.5 237C292.5 237 230 177.5 228.5 175C228.5 175 289 241 292 248.5C292 248.5 290 239.5 292.5 237z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M104 280.5C104 280.5 123.5 228.5 142.5 251C142.5 251 157.5 261 157 264C157 264 153 257.5 135 258C135 258 116 255 104 280.5z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M294.5 153C294.5 153 249.5 124.5 242 123C230.193 120.639 291.5 152 296.5 162.5C296.5 162.5 298.5 160 294.5 153z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M143.801 259.601C143.801 259.601 164.201 257.601 171.001 250.801L175.401 254.401L193.001 216.001L196.601 221.201C196.601 221.201 211.001 206.401 210.201 198.401C209.401 190.401 223.001 204.401 223.001 204.401C223.001 204.401 222.201 192.801 229.401 199.601C229.401 199.601 227.001 184.001 235.401 192.001C235.401 192.001 224.864 161.844 247.401 187.601C253.001 194.001 248.601 187.201 248.601 187.201C248.601 187.201 222.601 139.201 244.201 153.601C244.201 153.601 246.201 130.801 245.001 126.401C243.801 122.001 241.801 99.6 237.001 94.4C232.201 89.2 237.401 87.6 243.001 92.8C243.001 92.8 231.801 68.8 245.001 80.8C245.001 80.8 241.401 65.6 237.001 62.8C237.001 62.8 231.401 45.6 246.601 56.4C246.601 56.4 242.201 44 239.001 40.8C239.001 40.8 227.401 13.2 234.601 18L239.001 21.6C239.001 21.6 232.201 7.6 238.601 12C245.001 16.4 245.001 16 245.001 16C245.001 16 223.801 -17.2 244.201 0.4C244.201 0.4 236.042 -13.518 232.601 -20.4C232.601 -20.4 213.801 -40.8 228.201 -34.4L233.001 -32.8C233.001 -32.8 224.201 -42.8 216.201 -44.4C208.201 -46 218.601 -52.4 225.001 -50.4C231.401 -48.4 247.001 -40.8 247.001 -40.8C247.001 -40.8 259.801 -22 263.801 -21.6C263.801 -21.6 243.801 -29.2 249.801 -21.2C249.801 -21.2 264.201 -7.2 257.001 -7.6C257.001 -7.6 251.001 -0.4 255.801 8.4C255.801 8.4 237.342 -9.991 252.201 15.6L259.001 32C259.001 32 234.601 7.2 245.801 29.2C245.801 29.2 263.001 52.8 265.001 53.2C267.001 53.6 271.401 62.4 271.401 62.4L267.001 60.4L272.201 69.2C272.201 69.2 261.001 57.2 267.001 70.4L272.601 84.8C272.601 84.8 252.201 62.8 265.801 92.4C265.801 92.4 249.401 87.2 258.201 104.4C258.201 104.4 256.601 120.401 257.001 125.601C257.401 130.801 258.601 159.201 254.201 167.201C249.801 175.201 260.201 194.401 262.201 198.401C264.201 202.401 267.801 213.201 259.001 204.001C250.201 194.801 254.601 200.401 256.601 209.201C258.601 218.001 264.601 233.601 263.801 239.201C263.801 239.201 262.601 240.401 259.401 236.801C259.401 236.801 244.601 214.001 246.201 228.401C246.201 228.401 245.001 236.401 241.801 245.201C241.801 245.201 238.601 256.001 238.601 247.201C238.601 247.201 235.401 230.401 232.601 238.001C229.801 245.601 226.201 251.601 223.401 254.001C220.601 256.401 215.401 233.601 214.201 244.001C214.201 244.001 202.201 231.601 197.401 248.001L185.801 264.401C185.801 264.401 185.401 252.001 184.201 258.001C184.201 258.001 154.201 264.001 143.801 259.601z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M109.401 -97.2C109.401 -97.2 97.801 -105.2 93.801 -104.8C89.801 -104.4 121.401 -113.6 162.601 -86C162.601 -86 167.401 -83.2 171.001 -83.6C171.001 -83.6 174.201 -81.2 171.401 -77.6C171.401 -77.6 162.601 -68 173.801 -56.8C173.801 -56.8 192.201 -50 186.601 -58.8C186.601 -58.8 197.401 -54.8 199.801 -50.8C202.201 -46.8 201.001 -50.8 201.001 -50.8C201.001 -50.8 194.601 -58 188.601 -63.2C188.601 -63.2 183.401 -65.2 180.601 -73.6C177.801 -82 175.401 -92 179.801 -95.2C179.801 -95.2 175.801 -90.8 176.601 -94.8C177.401 -98.8 181.001 -102.4 182.601 -102.8C184.201 -103.2 200.601 -119 207.401 -119.4C207.401 -119.4 198.201 -118 195.201 -119C192.201 -120 165.601 -131.4 159.601 -132.6C159.601 -132.6 142.801 -139.2 154.801 -137.2C154.801 -137.2 190.601 -133.4 208.801 -120.2C208.801 -120.2 201.601 -128.6 183.201 -135.6C183.201 -135.6 161.001 -148.2 125.801 -143.2C125.801 -143.2 108.001 -140 100.201 -138.2C100.201 -138.2 97.601 -138.8 97.001 -139.2C96.401 -139.6 84.6 -148.6 57 -141.6C57 -141.6 40 -137 31.4 -132.2C31.4 -132.2 16.2 -131 12.6 -127.8C12.6 -127.8 -6 -113.2 -8 -112.4C-10 -111.6 -21.4 -104 -22.2 -103.6C-22.2 -103.6 2.4 -110.2 4.8 -112.6C7.2 -115 24.6 -117.6 27 -116.2C29.4 -114.8 37.8 -115.4 28.2 -114.8C28.2 -114.8 103.801 -100 104.601 -98C105.401 -96 109.401 -97.2 109.401 -97.2z"/>
+ </g>
+ <g style="fill: #cc7226">
+ <path d="M180.801 -106.4C180.801 -106.4 170.601 -113.8 168.601 -113.8C166.601 -113.8 154.201 -124 150.001 -123.6C145.801 -123.2 133.601 -133.2 106.201 -125C106.201 -125 105.601 -127 109.201 -127.8C109.201 -127.8 115.601 -130 116.001 -130.6C116.001 -130.6 136.201 -134.8 143.401 -131.2C143.401 -131.2 152.601 -128.6 158.801 -122.4C158.801 -122.4 170.001 -119.2 173.201 -120.2C173.201 -120.2 182.001 -118 182.401 -116.2C182.401 -116.2 188.201 -113.2 186.401 -110.6C186.401 -110.6 186.801 -109 180.801 -106.4z"/>
+ </g>
+ <g style="fill: #cc7226">
+ <path d="M168.33 -108.509C169.137 -107.877 170.156 -107.779 170.761 -106.97C170.995 -106.656 170.706 -106.33 170.391 -106.233C169.348 -105.916 168.292 -106.486 167.15 -105.898C166.748 -105.691 166.106 -105.873 165.553 -106.022C163.921 -106.463 162.092 -106.488 160.401 -105.8C158.416 -106.929 156.056 -106.345 153.975 -107.346C153.917 -107.373 153.695 -107.027 153.621 -107.054C150.575 -108.199 146.832 -107.916 144.401 -110.2C141.973 -110.612 139.616 -111.074 137.188 -111.754C135.37 -112.263 133.961 -113.252 132.341 -114.084C130.964 -114.792 129.507 -115.314 127.973 -115.686C126.11 -116.138 124.279 -116.026 122.386 -116.546C122.293 -116.571 122.101 -116.227 122.019 -116.254C121.695 -116.362 121.405 -116.945 121.234 -116.892C119.553 -116.37 118.065 -117.342 116.401 -117C115.223 -118.224 113.495 -117.979 111.949 -118.421C108.985 -119.269 105.831 -117.999 102.801 -119C106.914 -120.842 111.601 -119.61 115.663 -121.679C117.991 -122.865 120.653 -121.763 123.223 -122.523C123.71 -122.667 124.401 -122.869 124.801 -122.2C124.935 -122.335 125.117 -122.574 125.175 -122.546C127.625 -121.389 129.94 -120.115 132.422 -119.049C132.763 -118.903 133.295 -119.135 133.547 -118.933C135.067 -117.717 137.01 -117.82 138.401 -116.6C140.099 -117.102 141.892 -116.722 143.621 -117.346C143.698 -117.373 143.932 -117.032 143.965 -117.054C145.095 -117.802 146.25 -117.531 147.142 -117.227C147.48 -117.112 148.143 -116.865 148.448 -116.791C149.574 -116.515 150.43 -116.035 151.609 -115.852C151.723 -115.834 151.908 -116.174 151.98 -116.146C153.103 -115.708 154.145 -115.764 154.801 -114.6C154.936 -114.735 155.101 -114.973 155.183 -114.946C156.21 -114.608 156.859 -113.853 157.96 -113.612C158.445 -113.506 159.057 -112.88 159.633 -112.704C162.025 -111.973 163.868 -110.444 166.062 -109.549C166.821 -109.239 167.697 -109.005 168.33 -108.509z"/>
+ </g>
+ <g style="fill: #cc7226">
+ <path d="M91.696 -122.739C89.178 -124.464 86.81 -125.57 84.368 -127.356C84.187 -127.489 83.827 -127.319 83.625 -127.441C82.618 -128.05 81.73 -128.631 80.748 -129.327C80.209 -129.709 79.388 -129.698 78.88 -129.956C76.336 -131.248 73.707 -131.806 71.2 -133C71.882 -133.638 73.004 -133.394 73.6 -134.2C73.795 -133.92 74.033 -133.636 74.386 -133.827C76.064 -134.731 77.914 -134.884 79.59 -134.794C81.294 -134.702 83.014 -134.397 84.789 -134.125C85.096 -134.078 85.295 -133.555 85.618 -133.458C87.846 -132.795 90.235 -133.32 92.354 -132.482C93.945 -131.853 95.515 -131.03 96.754 -129.755C97.006 -129.495 96.681 -129.194 96.401 -129C96.789 -129.109 97.062 -128.903 97.173 -128.59C97.257 -128.351 97.257 -128.049 97.173 -127.81C97.061 -127.498 96.782 -127.397 96.408 -127.346C95.001 -127.156 96.773 -128.536 96.073 -128.088C94.8 -127.274 95.546 -125.868 94.801 -124.6C94.521 -124.794 94.291 -125.012 94.401 -125.4C94.635 -124.878 94.033 -124.588 93.865 -124.272C93.48 -123.547 92.581 -122.132 91.696 -122.739z"/>
+ </g>
+ <g style="fill: #cc7226">
+ <path d="M59.198 -115.391C56.044 -116.185 52.994 -116.07 49.978 -117.346C49.911 -117.374 49.688 -117.027 49.624 -117.054C48.258 -117.648 47.34 -118.614 46.264 -119.66C45.351 -120.548 43.693 -120.161 42.419 -120.648C42.095 -120.772 41.892 -121.284 41.591 -121.323C40.372 -121.48 39.445 -122.429 38.4 -123C40.736 -123.795 43.147 -123.764 45.609 -124.148C45.722 -124.166 45.867 -123.845 46 -123.845C46.136 -123.845 46.266 -124.066 46.4 -124.2C46.595 -123.92 46.897 -123.594 47.154 -123.848C47.702 -124.388 48.258 -124.198 48.798 -124.158C48.942 -124.148 49.067 -123.845 49.2 -123.845C49.336 -123.845 49.467 -124.156 49.6 -124.156C49.736 -124.155 49.867 -123.845 50 -123.845C50.136 -123.845 50.266 -124.066 50.4 -124.2C51.092 -123.418 51.977 -123.972 52.799 -123.793C53.837 -123.566 54.104 -122.418 55.178 -122.12C59.893 -120.816 64.03 -118.671 68.393 -116.584C68.7 -116.437 68.91 -116.189 68.8 -115.8C69.067 -115.8 69.38 -115.888 69.57 -115.756C70.628 -115.024 71.669 -114.476 72.366 -113.378C72.582 -113.039 72.253 -112.632 72.02 -112.684C67.591 -113.679 63.585 -114.287 59.198 -115.391z"/>
+ </g>
+ <g style="fill: #cc7226">
+ <path d="M45.338 -71.179C43.746 -72.398 43.162 -74.429 42.034 -76.221C41.82 -76.561 42.094 -76.875 42.411 -76.964C42.971 -77.123 43.514 -76.645 43.923 -76.443C45.668 -75.581 47.203 -74.339 49.2 -74.2C51.19 -71.966 55.45 -71.581 55.457 -68.2C55.458 -67.341 54.03 -68.259 53.6 -67.4C51.149 -68.403 48.76 -68.3 46.38 -69.767C45.763 -70.148 46.093 -70.601 45.338 -71.179z"/>
+ </g>
+ <g style="fill: #cc7226">
+ <path d="M17.8 -123.756C17.935 -123.755 24.966 -123.522 24.949 -123.408C24.904 -123.099 17.174 -122.05 16.81 -122.22C16.646 -122.296 9.134 -119.866 9 -120C9.268 -120.135 17.534 -123.756 17.8 -123.756z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M33.2 -114C33.2 -114 18.4 -112.2 14 -111C9.6 -109.8 -9 -102.2 -12 -100.2C-12 -100.2 -25.4 -94.8 -42.4 -74.8C-42.4 -74.8 -34.8 -78.2 -32.6 -81C-32.6 -81 -19 -93.6 -19.2 -91C-19.2 -91 -7 -99.6 -7.6 -97.4C-7.6 -97.4 16.8 -108.6 14.8 -105.4C14.8 -105.4 36.4 -110 35.4 -108C35.4 -108 54.2 -103.6 51.4 -103.4C51.4 -103.4 45.6 -102.2 52 -98.6C52 -98.6 48.6 -94.2 43.2 -98.2C37.8 -102.2 40.8 -100 35.8 -99C35.8 -99 33.2 -98.2 28.6 -102.2C28.6 -102.2 23 -106.8 14.2 -103.2C14.2 -103.2 -16.4 -90.6 -18.4 -90C-18.4 -90 -22 -87.2 -24.4 -83.6C-24.4 -83.6 -30.2 -79.2 -33.2 -77.8C-33.2 -77.8 -46 -66.2 -47.2 -64.8C-47.2 -64.8 -50.6 -59.6 -51.4 -59.2C-51.4 -59.2 -45 -63 -43 -65C-43 -65 -29 -75 -23.6 -75.8C-23.6 -75.8 -19.2 -78.8 -18.4 -80.2C-18.4 -80.2 -4 -89.4 0.2 -89.4C0.2 -89.4 9.4 -84.2 11.8 -91.2C11.8 -91.2 17.6 -93 23.2 -91.8C23.2 -91.8 26.4 -94.4 25.6 -96.6C25.6 -96.6 27.2 -98.4 28.2 -94.6C28.2 -94.6 31.6 -91 36.4 -93C36.4 -93 40.4 -93.2 38.4 -90.8C38.4 -90.8 34 -87 22.2 -86.8C22.2 -86.8 9.8 -86.2 -6.6 -78.6C-6.6 -78.6 -36.4 -68.2 -45.6 -57.8C-45.6 -57.8 -52 -49 -57.4 -47.8C-57.4 -47.8 -63.2 -47 -69.2 -39.6C-69.2 -39.6 -59.4 -45.4 -50.4 -45.4C-50.4 -45.4 -46.4 -47.8 -50.2 -44.2C-50.2 -44.2 -53.8 -36.6 -52.2 -31.2C-52.2 -31.2 -52.8 -26 -53.6 -24.4C-53.6 -24.4 -61.4 -11.6 -61.4 -9.2C-61.4 -6.8 -60.2 3 -59.8 3.6C-59.4 4.2 -60.8 2 -57 4.4C-53.2 6.8 -50.4 8.4 -49.6 11.2C-48.8 14 -51.6 5.8 -51.8 4C-52 2.2 -56.2 -5 -55.4 -7.4C-55.4 -7.4 -54.4 -6.4 -53.6 -5C-53.6 -5 -54.2 -5.6 -53.6 -9.2C-53.6 -9.2 -52.8 -14.4 -51.4 -17.6C-50 -20.8 -48 -24.6 -47.6 -25.4C-47.2 -26.2 -47.2 -32 -45.8 -29.4L-42.4 -26.8C-42.4 -26.8 -45.2 -29.4 -43 -31.6C-43 -31.6 -44 -37.2 -42.2 -39.8C-42.2 -39.8 -35.2 -48.2 -33.6 -49.2C-32 -50.2 -33.4 -49.8 -33.4 -49.8C-33.4 -49.8 -27.4 -54 -33.2 -52.4C-33.2 -52.4 -37.2 -50.8 -40.2 -50.8C-40.2 -50.8 -47.8 -48.8 -43.8 -53C-39.8 -57.2 -29.8 -62.6 -26 -62.4L-25.2 -60.8L-14 -63.2L-15.2 -62.4C-15.2 -62.4 -15.4 -62.6 -11.2 -63C-7 -63.4 -1.2 -62 0.2 -63.8C1.6 -65.6 5 -66.6 4.6 -65.2C4.2 -63.8 4 -61.8 4 -61.8C4 -61.8 9 -67.6 8.4 -65.4C7.8 -63.2 -0.4 -58 -1.8 -51.8L8.6 -60L12.2 -63C12.2 -63 15.8 -60.8 16 -62.4C16.2 -64 20.8 -69.8 22 -69.6C23.2 -69.4 25.2 -72.2 25 -69.6C24.8 -67 32.4 -61.6 32.4 -61.6C32.4 -61.6 35.6 -63.4 37 -62C38.4 -60.6 42.6 -81.8 42.6 -81.8L67.6 -92.4L111.201 -95.8L94.201 -102.6L33.2 -114z"/>
+ </g>
+ <g style="stroke:#4c0000; stroke-width:2">
+ <path d="M51.4 85C51.4 85 36.4 68.2 28 65.6C28 65.6 14.6 58.8 -10 66.6"/>
+ </g>
+ <g style="stroke:#4c0000; stroke-width:2">
+ <path d="M24.8 64.2C24.8 64.2 -0.4 56.2 -15.8 60.4C-15.8 60.4 -34.2 62.4 -42.6 76.2"/>
+ </g>
+ <g style="stroke:#4c0000; stroke-width:2">
+ <path d="M21.2 63C21.2 63 4.2 55.8 -10.6 53.6C-10.6 53.6 -27.2 51 -43.8 58.2C-43.8 58.2 -56 64.2 -61.4 74.4"/>
+ </g>
+ <g style="stroke:#4c0000; stroke-width:2">
+ <path d="M22.2 63.4C22.2 63.4 6.8 52.4 5.8 51C5.8 51 -1.2 40 -14.2 39.6C-14.2 39.6 -35.6 40.4 -52.8 48.4"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M20.895 54.407C22.437 55.87 49.4 84.8 49.4 84.8C84.6 121.401 56.6 87.2 56.6 87.2C49 82.4 39.8 63.6 39.8 63.6C38.6 60.8 53.8 70.8 53.8 70.8C57.8 71.6 71.4 90.8 71.4 90.8C64.6 88.4 69.4 95.6 69.4 95.6C72.2 97.6 92.601 113.201 92.601 113.201C96.201 117.201 100.201 118.801 100.201 118.801C114.201 113.601 107.801 126.801 107.801 126.801C110.201 133.601 115.801 122.001 115.801 122.001C127.001 105.2 110.601 107.601 110.601 107.601C80.6 110.401 73.8 94.4 73.8 94.4C71.4 92 80.2 94.4 80.2 94.4C88.601 96.4 73 82 73 82C75.4 82 84.6 88.8 84.6 88.8C95.001 98 97.001 96 97.001 96C115.001 87.2 125.401 94.8 125.401 94.8C127.401 96.4 121.801 103.2 123.401 108.401C125.001 113.601 129.801 126.001 129.801 126.001C127.401 127.601 127.801 138.401 127.801 138.401C144.601 161.601 135.001 159.601 135.001 159.601C119.401 159.201 134.201 166.801 134.201 166.801C137.401 168.801 146.201 176.001 146.201 176.001C143.401 174.801 141.801 180.001 141.801 180.001C146.601 184.001 143.801 188.801 143.801 188.801C137.801 190.001 136.601 194.001 136.601 194.001C143.401 202.001 133.401 202.401 133.401 202.401C137.001 206.801 132.201 218.801 132.201 218.801C127.401 218.801 121.001 224.401 121.001 224.401C123.401 229.201 113.001 234.801 113.001 234.801C104.601 236.401 107.401 243.201 107.401 243.201C99.401 249.201 97.001 265.201 97.001 265.201C96.201 275.601 93.801 278.801 99.001 276.801C104.201 274.801 103.401 262.401 103.401 262.401C98.601 246.801 141.401 230.801 141.401 230.801C145.401 229.201 146.201 224.001 146.201 224.001C148.201 224.401 157.001 232.001 157.001 232.001C164.601 243.201 165.001 234.001 165.001 234.001C166.201 230.401 164.601 224.401 164.601 224.401C170.601 202.801 156.601 196.401 156.601 196.401C146.601 162.801 160.601 171.201 160.601 171.201C163.401 176.801 174.201 182.001 174.201 182.001L177.801 179.601C176.201 174.801 184.601 168.801 184.601 168.801C187.401 175.201 193.401 167.201 193.401 167.201C197.001 142.801 209.401 157.201 209.401 157.201C213.401 158.401 214.601 151.601 214.601 151.601C218.201 141.201 214.601 127.601 214.601 127.601C218.201 127.201 227.801 133.201 227.801 133.201C230.601 129.601 221.401 112.801 225.401 115.201C229.401 117.601 233.801 119.201 233.801 119.201C234.601 117.201 224.601 104.801 224.601 104.801C220.201 102 215.001 81.6 215.001 81.6C222.201 85.2 212.201 70 212.201 70C212.201 66.8 218.201 55.6 218.201 55.6C217.401 48.8 218.201 49.2 218.201 49.2C221.001 50.4 229.001 52 222.201 45.6C215.401 39.2 223.001 34.4 223.001 34.4C227.401 31.6 213.801 32 213.801 32C208.601 27.6 209.001 23.6 209.001 23.6C217.001 25.6 202.601 11.2 200.201 7.6C197.801 4 207.401 -1.2 207.401 -1.2C220.601 -4.8 209.001 -8 209.001 -8C189.401 -7.6 200.201 -18.4 200.201 -18.4C206.201 -18 204.601 -20.4 204.601 -20.4C199.401 -21.6 189.801 -28 189.801 -28C185.801 -31.6 189.401 -30.8 189.401 -30.8C206.201 -29.6 177.401 -40.8 177.401 -40.8C185.401 -40.8 167.401 -51.2 167.401 -51.2C165.401 -52.8 162.201 -60.4 162.201 -60.4C156.201 -65.6 151.401 -72.4 151.401 -72.4C151.001 -76.8 146.201 -81.6 146.201 -81.6C134.601 -95.2 129.001 -94.8 129.001 -94.8C114.201 -98.4 109.001 -97.6 109.001 -97.6L56.2 -93.2C29.8 -80.4 37.6 -59.4 37.6 -59.4C44 -51 53.2 -54.8 53.2 -54.8C57.8 -61 69.4 -58.8 69.4 -58.8C89.801 -55.6 87.201 -59.2 87.201 -59.2C84.801 -63.8 68.6 -70 68.4 -70.6C68.2 -71.2 59.4 -74.6 59.4 -74.6C56.4 -75.8 52 -85 52 -85C48.8 -88.4 64.6 -82.6 64.6 -82.6C63.4 -81.6 70.8 -77.6 70.8 -77.6C88.201 -78.6 98.801 -67.8 98.801 -67.8C109.601 -51.2 109.801 -59.4 109.801 -59.4C112.601 -68.8 100.801 -90 100.801 -90C101.201 -92 109.401 -85.4 109.401 -85.4C110.801 -87.4 111.601 -81.6 111.601 -81.6C111.801 -79.2 115.601 -71.2 115.601 -71.2C118.401 -58.2 122.001 -65.6 122.001 -65.6L126.601 -56.2C128.001 -53.6 122.001 -46 122.001 -46C121.801 -43.2 122.601 -43.4 117.001 -35.8C111.401 -28.2 114.801 -23.8 114.801 -23.8C113.401 -17.2 122.201 -17.6 122.201 -17.6C124.801 -15.4 128.201 -15.4 128.201 -15.4C130.001 -13.4 132.401 -14 132.401 -14C134.001 -17.8 140.201 -15.8 140.201 -15.8C141.601 -18.2 149.801 -18.6 149.801 -18.6C150.801 -21.2 151.201 -22.8 154.601 -23.4C158.001 -24 133.401 -67 133.401 -67C139.801 -67.8 131.601 -80.2 131.601 -80.2C129.401 -86.8 140.801 -72.2 143.001 -70.8C145.201 -69.4 146.201 -67.2 144.601 -67.4C143.001 -67.6 141.201 -65.4 142.601 -65.2C144.001 -65 157.001 -50 160.401 -39.8C163.801 -29.6 169.801 -25.6 176.001 -19.6C182.201 -13.6 181.401 10.6 181.401 10.6C181.001 19.4 187.001 30 187.001 30C189.001 33.8 184.801 52 184.801 52C182.801 54.2 184.201 55 184.201 55C185.201 56.2 192.001 69.4 192.001 69.4C190.201 69.2 193.801 72.8 193.801 72.8C199.001 78.8 192.601 75.8 192.601 75.8C186.601 74.2 193.601 84 193.601 84C194.801 85.8 185.801 81.2 185.801 81.2C176.601 80.6 188.201 87.8 188.201 87.8C196.801 95 185.401 90.6 185.401 90.6C180.801 88.8 184.001 95.6 184.001 95.6C187.201 97.2 204.401 104.2 204.401 104.2C204.801 108.001 201.801 113.001 201.801 113.001C202.201 117.001 200.001 120.401 200.001 120.401C198.801 128.601 198.201 129.401 198.201 129.401C194.001 129.601 186.601 143.401 186.601 143.401C184.801 146.001 174.601 158.001 174.601 158.001C172.601 165.001 154.601 157.801 154.601 157.801C148.001 161.201 150.001 157.801 150.001 157.801C149.601 155.601 154.401 149.601 154.401 149.601C161.401 147.001 158.801 136.201 158.801 136.201C162.801 134.801 151.601 132.001 151.801 130.801C152.001 129.601 157.801 128.201 157.801 128.201C165.801 126.201 161.401 123.801 161.401 123.801C160.801 119.801 163.801 114.201 163.801 114.201C175.401 113.401 163.801 97.2 163.801 97.2C153.001 89.6 152.001 83.8 152.001 83.8C164.601 75.6 156.401 63.2 156.601 59.6C156.801 56 158.001 34.4 158.001 34.4C156.001 28.2 153.001 14.6 153.001 14.6C155.201 9.4 162.601 -3.2 162.601 -3.2C165.401 -7.4 174.201 -12.2 172.001 -15.2C169.801 -18.2 162.001 -16.4 162.001 -16.4C154.201 -17.8 154.801 -12.6 154.801 -12.6C153.201 -11.6 152.401 -6.6 152.401 -6.6C151.68 1.333 142.801 7.6 142.801 7.6C131.601 13.8 140.801 17.8 140.801 17.8C146.801 24.4 137.001 24.6 137.001 24.6C126.001 22.8 134.201 33 134.201 33C145.001 45.8 142.001 48.6 142.001 48.6C131.801 49.6 144.401 58.8 144.401 58.8C144.401 58.8 143.601 56.8 143.801 58.6C144.001 60.4 147.001 64.6 147.801 66.6C148.601 68.6 144.601 68.8 144.601 68.8C145.201 78.4 129.801 74.2 129.801 74.2C129.801 74.2 129.801 74.2 128.201 74.4C126.601 74.6 115.401 73.8 109.601 71.6C103.801 69.4 97.001 69.4 97.001 69.4C97.001 69.4 93.001 71.2 85.4 71C77.8 70.8 69.8 73.6 69.8 73.6C65.4 73.2 74 68.8 74.2 69C74.4 69.2 80 63.6 72 64.2C50.203 65.835 39.4 55.6 39.4 55.6C37.4 54.2 34.8 51.4 34.8 51.4C24.8 49.4 36.2 63.8 36.2 63.8C37.4 65.2 36 66.2 36 66.2C35.2 64.6 27.4 59.2 27.4 59.2C24.589 58.227 23.226 56.893 20.895 54.407z"/>
+ </g>
+ <g style="fill: #4c0000">
+ <path d="M-3 42.8C-3 42.8 8.6 48.4 11.2 51.2C13.8 54 27.8 65.4 27.8 65.4C27.8 65.4 22.4 63.4 19.8 61.6C17.2 59.8 6.4 51.6 6.4 51.6C6.4 51.6 2.6 45.6 -3 42.8z"/>
+ </g>
+ <g style="fill: #99cc32">
+ <path d="M-61.009 11.603C-60.672 11.455 -61.196 8.743 -61.4 8.2C-62.422 5.474 -71.4 4 -71.4 4C-71.627 5.365 -71.682 6.961 -71.576 8.599C-71.576 8.599 -66.708 14.118 -61.009 11.603z"/>
+ </g>
+ <g style="fill: #659900">
+ <path d="M-61.009 11.403C-61.458 11.561 -61.024 8.669 -61.2 8.2C-62.222 5.474 -71.4 3.9 -71.4 3.9C-71.627 5.265 -71.682 6.861 -71.576 8.499C-71.576 8.499 -67.308 13.618 -61.009 11.403z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-65.4 11.546C-66.025 11.546 -66.531 10.406 -66.531 9C-66.531 7.595 -66.025 6.455 -65.4 6.455C-64.775 6.455 -64.268 7.595 -64.268 9C-64.268 10.406 -64.775 11.546 -65.4 11.546z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-65.4 9z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-111 109.601C-111 109.601 -116.6 119.601 -91.8 113.601C-91.8 113.601 -77.8 112.401 -75.4 110.001C-74.2 110.801 -65.834 113.734 -63 114.401C-56.2 116.001 -47.8 106 -47.8 106C-47.8 106 -43.2 95.5 -40.4 95.5C-37.6 95.5 -40.8 97.1 -40.8 97.1C-40.8 97.1 -47.4 107.201 -47 108.801C-47 108.801 -52.2 128.801 -68.2 129.601C-68.2 129.601 -84.35 130.551 -83 136.401C-83 136.401 -74.2 134.001 -71.8 136.401C-71.8 136.401 -61 136.001 -69 142.401L-75.8 154.001C-75.8 154.001 -75.66 157.919 -85.8 154.401C-95.6 151.001 -105.9 138.101 -105.9 138.101C-105.9 138.101 -121.85 123.551 -111 109.601z"/>
+ </g>
+ <g style="fill: #e59999">
+ <path d="M-112.2 113.601C-112.2 113.601 -114.2 123.201 -77.4 112.801C-77.4 112.801 -73 112.801 -70.6 113.601C-68.2 114.401 -56.2 117.201 -54.2 116.001C-54.2 116.001 -61.4 129.601 -73 128.001C-73 128.001 -86.2 129.601 -85.8 134.401C-85.8 134.401 -81.8 141.601 -77 144.001C-77 144.001 -74.2 146.401 -74.6 149.601C-75 152.801 -77.8 154.401 -79.8 155.201C-81.8 156.001 -85 152.801 -86.6 152.801C-88.2 152.801 -96.6 146.401 -101 141.601C-105.4 136.801 -113.8 124.801 -113.4 122.001C-113 119.201 -112.2 113.601 -112.2 113.601z"/>
+ </g>
+ <g style="fill: #b26565">
+ <path d="M-109 131.051C-106.4 135.001 -103.2 139.201 -101 141.601C-96.6 146.401 -88.2 152.801 -86.6 152.801C-85 152.801 -81.8 156.001 -79.8 155.201C-77.8 154.401 -75 152.801 -74.6 149.601C-74.2 146.401 -77 144.001 -77 144.001C-80.066 142.468 -82.806 138.976 -84.385 136.653C-84.385 136.653 -84.2 139.201 -89.4 138.401C-94.6 137.601 -99.8 134.801 -101.4 131.601C-103 128.401 -105.4 126.001 -103.8 129.601C-102.2 133.201 -99.8 136.801 -98.2 137.201C-96.6 137.601 -97 138.801 -99.4 138.401C-101.8 138.001 -104.6 137.601 -109 132.401z"/>
+ </g>
+ <g style="fill: #992600">
+ <path d="M-111.6 110.001C-111.6 110.001 -109.8 96.4 -108.6 92.4C-108.6 92.4 -109.4 85.6 -107 81.4C-104.6 77.2 -102.6 71 -99.6 65.6C-96.6 60.2 -96.4 56.2 -92.4 54.6C-88.4 53 -82.4 44.4 -79.6 43.4C-76.8 42.4 -77 43.2 -77 43.2C-77 43.2 -70.2 28.4 -56.6 32.4C-56.6 32.4 -72.8 29.6 -57 20.2C-57 20.2 -61.8 21.3 -58.5 14.3C-56.299 9.632 -56.8 16.4 -67.8 28.2C-67.8 28.2 -72.8 36.8 -78 39.8C-83.2 42.8 -95.2 49.8 -96.4 53.6C-97.6 57.4 -100.8 63.2 -102.8 64.8C-104.8 66.4 -107.6 70.6 -108 74C-108 74 -109.2 78 -110.6 79.2C-112 80.4 -112.2 83.6 -112.2 85.6C-112.2 87.6 -114.2 90.4 -114 92.8C-114 92.8 -113.2 111.801 -113.6 113.801L-111.6 110.001z"/>
+ </g>
+ <g style="fill: #ffffff">
+ <path d="M-120.2 114.601C-120.2 114.601 -122.2 113.201 -126.6 119.201C-126.6 119.201 -119.3 152.201 -119.3 153.601C-119.3 153.601 -118.2 151.501 -119.5 144.301C-120.8 137.101 -121.7 124.401 -121.7 124.401L-120.2 114.601z"/>
+ </g>
+ <g style="fill: #992600">
+ <path d="M-98.6 54C-98.6 54 -116.2 57.2 -115.8 86.4L-116.6 111.201C-116.6 111.201 -117.8 85.6 -119 84C-120.2 82.4 -116.2 71.2 -119.4 77.2C-119.4 77.2 -133.4 91.2 -125.4 112.401C-125.4 112.401 -123.9 115.701 -126.9 111.101C-126.9 111.101 -131.5 98.5 -130.4 92.1C-130.4 92.1 -130.2 89.9 -128.3 87.1C-128.3 87.1 -119.7 75.4 -117 73.1C-117 73.1 -115.2 58.7 -99.8 53.5C-99.8 53.5 -94.1 51.2 -98.6 54z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M40.8 -12.2C41.46 -12.554 41.451 -13.524 42.031 -13.697C43.18 -14.041 43.344 -15.108 43.862 -15.892C44.735 -17.211 44.928 -18.744 45.51 -20.235C45.782 -20.935 45.809 -21.89 45.496 -22.55C44.322 -25.031 43.62 -27.48 42.178 -29.906C41.91 -30.356 41.648 -31.15 41.447 -31.748C40.984 -33.132 39.727 -34.123 38.867 -35.443C38.579 -35.884 39.104 -36.809 38.388 -36.893C37.491 -36.998 36.042 -37.578 35.809 -36.552C35.221 -33.965 36.232 -31.442 37.2 -29C36.418 -28.308 36.752 -27.387 36.904 -26.62C37.614 -23.014 36.416 -19.662 35.655 -16.188C35.632 -16.084 35.974 -15.886 35.946 -15.824C34.724 -13.138 33.272 -10.693 31.453 -8.312C30.695 -7.32 29.823 -6.404 29.326 -5.341C28.958 -4.554 28.55 -3.588 28.8 -2.6C25.365 0.18 23.115 4.025 20.504 7.871C20.042 8.551 20.333 9.76 20.884 10.029C21.697 10.427 22.653 9.403 23.123 8.557C23.512 7.859 23.865 7.209 24.356 6.566C24.489 6.391 24.31 5.972 24.445 5.851C27.078 3.504 28.747 0.568 31.2 -1.8C33.15 -2.129 34.687 -3.127 36.435 -4.14C36.743 -4.319 37.267 -4.07 37.557 -4.265C39.31 -5.442 39.308 -7.478 39.414 -9.388C39.464 -10.272 39.66 -11.589 40.8 -12.2z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M31.959 -16.666C32.083 -16.743 31.928 -17.166 32.037 -17.382C32.199 -17.706 32.602 -17.894 32.764 -18.218C32.873 -18.434 32.71 -18.814 32.846 -18.956C35.179 -21.403 35.436 -24.427 34.4 -27.4C35.424 -28.02 35.485 -29.282 35.06 -30.129C34.207 -31.829 34.014 -33.755 33.039 -35.298C32.237 -36.567 30.659 -37.811 29.288 -36.508C28.867 -36.108 28.546 -35.321 28.824 -34.609C28.888 -34.446 29.173 -34.3 29.146 -34.218C29.039 -33.894 28.493 -33.67 28.487 -33.398C28.457 -31.902 27.503 -30.391 28.133 -29.062C28.905 -27.433 29.724 -25.576 30.4 -23.8C29.166 -21.684 30.199 -19.235 28.446 -17.358C28.31 -17.212 28.319 -16.826 28.441 -16.624C28.733 -16.138 29.139 -15.732 29.625 -15.44C29.827 -15.319 30.175 -15.317 30.375 -15.441C30.953 -15.803 31.351 -16.29 31.959 -16.666z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M94.771 -26.977C96.16 -25.185 96.45 -22.39 94.401 -21C94.951 -17.691 98.302 -19.67 100.401 -20.2C100.292 -20.588 100.519 -20.932 100.802 -20.937C101.859 -20.952 102.539 -21.984 103.601 -21.8C104.035 -23.357 105.673 -24.059 106.317 -25.439C108.043 -29.134 107.452 -33.407 104.868 -36.653C104.666 -36.907 104.883 -37.424 104.759 -37.786C104.003 -39.997 101.935 -40.312 100.001 -41C98.824 -44.875 98.163 -48.906 96.401 -52.6C94.787 -52.85 94.089 -54.589 92.752 -55.309C91.419 -56.028 90.851 -54.449 90.892 -53.403C90.899 -53.198 91.351 -52.974 91.181 -52.609C91.105 -52.445 90.845 -52.334 90.845 -52.2C90.846 -52.065 91.067 -51.934 91.201 -51.8C90.283 -50.98 88.86 -50.503 88.565 -49.358C87.611 -45.648 90.184 -42.523 91.852 -39.322C92.443 -38.187 91.707 -36.916 90.947 -35.708C90.509 -35.013 90.617 -33.886 90.893 -33.03C91.645 -30.699 93.236 -28.96 94.771 -26.977z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M57.611 -8.591C56.124 -6.74 52.712 -4.171 55.629 -2.243C55.823 -2.114 56.193 -2.11 56.366 -2.244C58.387 -3.809 60.39 -4.712 62.826 -5.294C62.95 -5.323 63.224 -4.856 63.593 -5.017C65.206 -5.72 67.216 -5.662 68.4 -7C72.167 -6.776 75.732 -7.892 79.123 -9.2C80.284 -9.648 81.554 -10.207 82.755 -10.709C84.131 -11.285 85.335 -12.213 86.447 -13.354C86.58 -13.49 86.934 -13.4 87.201 -13.4C87.161 -14.263 88.123 -14.39 88.37 -15.012C88.462 -15.244 88.312 -15.64 88.445 -15.742C90.583 -17.372 91.503 -19.39 90.334 -21.767C90.049 -22.345 89.8 -22.963 89.234 -23.439C88.149 -24.35 87.047 -23.496 86 -23.8C85.841 -23.172 85.112 -23.344 84.726 -23.146C83.867 -22.707 82.534 -23.292 81.675 -22.854C80.313 -22.159 79.072 -21.99 77.65 -21.613C77.338 -21.531 76.56 -21.627 76.4 -21C76.266 -21.134 76.118 -21.368 76.012 -21.346C74.104 -20.95 72.844 -20.736 71.543 -19.044C71.44 -18.911 70.998 -19.09 70.839 -18.955C69.882 -18.147 69.477 -16.913 68.376 -16.241C68.175 -16.118 67.823 -16.286 67.629 -16.157C66.983 -15.726 66.616 -15.085 65.974 -14.638C65.645 -14.409 65.245 -14.734 65.277 -14.99C65.522 -16.937 66.175 -18.724 65.6 -20.6C67.677 -23.12 70.194 -25.069 72 -27.8C72.015 -29.966 72.707 -32.112 72.594 -34.189C72.584 -34.382 72.296 -35.115 72.17 -35.462C71.858 -36.316 72.764 -37.382 71.92 -38.106C70.516 -39.309 69.224 -38.433 68.4 -37C66.562 -36.61 64.496 -35.917 62.918 -37.151C61.911 -37.938 61.333 -38.844 60.534 -39.9C59.549 -41.202 59.884 -42.638 59.954 -44.202C59.96 -44.33 59.645 -44.466 59.645 -44.6C59.646 -44.735 59.866 -44.866 60 -45C59.294 -45.626 59.019 -46.684 58 -47C58.305 -48.092 57.629 -48.976 56.758 -49.278C54.763 -49.969 53.086 -48.057 51.194 -47.984C50.68 -47.965 50.213 -49.003 49.564 -49.328C49.132 -49.544 48.428 -49.577 48.066 -49.311C47.378 -48.807 46.789 -48.693 46.031 -48.488C44.414 -48.052 43.136 -46.958 41.656 -46.103C40.171 -45.246 39.216 -43.809 38.136 -42.489C37.195 -41.337 37.059 -38.923 38.479 -38.423C40.322 -37.773 41.626 -40.476 43.592 -40.15C43.904 -40.099 44.11 -39.788 44 -39.4C44.389 -39.291 44.607 -39.52 44.8 -39.8C45.658 -38.781 46.822 -38.444 47.76 -37.571C48.73 -36.667 50.476 -37.085 51.491 -36.088C53.02 -34.586 52.461 -31.905 54.4 -30.6C53.814 -29.287 53.207 -28.01 52.872 -26.583C52.59 -25.377 53.584 -24.18 54.795 -24.271C56.053 -24.365 56.315 -25.124 56.8 -26.2C57.067 -25.933 57.536 -25.636 57.495 -25.42C57.038 -23.033 56.011 -21.04 55.553 -18.609C55.494 -18.292 55.189 -18.09 54.8 -18.2C54.332 -14.051 50.28 -11.657 47.735 -8.492C47.332 -7.99 47.328 -6.741 47.737 -6.338C49.14 -4.951 51.1 -6.497 52.8 -7C53.013 -8.206 53.872 -9.148 55.204 -9.092C55.46 -9.082 55.695 -9.624 56.019 -9.754C56.367 -9.892 56.869 -9.668 57.155 -9.866C58.884 -11.061 60.292 -12.167 62.03 -13.356C62.222 -13.487 62.566 -13.328 62.782 -13.436C63.107 -13.598 63.294 -13.985 63.617 -14.17C63.965 -14.37 64.207 -14.08 64.4 -13.8C63.754 -13.451 63.75 -12.494 63.168 -12.292C62.393 -12.024 61.832 -11.511 61.158 -11.064C60.866 -10.871 60.207 -11.119 60.103 -10.94C59.505 -9.912 58.321 -9.474 57.611 -8.591z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M2.2 -58C2.2 -58 -7.038 -60.872 -18.2 -35.2C-18.2 -35.2 -20.6 -30 -23 -28C-25.4 -26 -36.6 -22.4 -38.6 -18.4L-49 -2.4C-49 -2.4 -34.2 -18.4 -31 -20.8C-31 -20.8 -23 -29.2 -26.2 -22.4C-26.2 -22.4 -40.2 -11.6 -39 -2.4C-39 -2.4 -44.6 12 -45.4 14C-45.4 14 -29.4 -18 -27 -19.2C-24.6 -20.4 -23.4 -20.4 -24.6 -16.8C-25.8 -13.2 -26.2 3.2 -29 5.2C-29 5.2 -21 -15.2 -21.8 -18.4C-21.8 -18.4 -18.6 -22 -16.2 -16.8L-17.4 -0.8L-13 11.2C-13 11.2 -15.4 0 -13.8 -15.6C-13.8 -15.6 -15.8 -26 -11.8 -20.4C-7.8 -14.8 1.8 -8.8 1.8 -4C1.8 -4 -3.4 -21.6 -12.6 -26.4L-16.6 -20.4L-17.8 -22.4C-17.8 -22.4 -21.4 -23.2 -17 -30C-12.6 -36.8 -13 -37.6 -13 -37.6C-13 -37.6 -6.6 -30.4 -5 -30.4C-5 -30.4 8.2 -38 9.4 -13.6C9.4 -13.6 16.2 -28 7 -34.8C7 -34.8 -7.8 -36.8 -6.6 -42L0.6 -54.4C4.2 -59.6 2.6 -56.8 2.6 -56.8z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-17.8 -41.6C-17.8 -41.6 -30.6 -41.6 -33.8 -36.4L-41 -26.8C-41 -26.8 -23.8 -36.8 -19.8 -38C-15.8 -39.2 -17.8 -41.6 -17.8 -41.6z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-57.8 -35.2C-57.8 -35.2 -59.8 -34 -60.2 -31.2C-60.6 -28.4 -63 -28 -62.2 -25.2C-61.4 -22.4 -59.4 -20 -59.4 -24C-59.4 -28 -57.8 -30 -57 -31.2C-56.2 -32.4 -54.6 -36.8 -57.8 -35.2z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-66.6 26C-66.6 26 -75 22 -78.2 18.4C-81.4 14.8 -80.948 19.966 -85.8 19.6C-91.647 19.159 -90.6 3.2 -90.6 3.2L-94.6 10.8C-94.6 10.8 -95.8 25.2 -87.8 22.8C-83.893 21.628 -82.6 23.2 -84.2 24C-85.8 24.8 -78.6 25.2 -81.4 26.8C-84.2 28.4 -69.8 23.2 -72.2 33.6L-66.6 26z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-79.2 40.4C-79.2 40.4 -94.6 44.8 -98.2 35.2C-98.2 35.2 -103 37.6 -100.8 40.6C-98.6 43.6 -97.4 44 -97.4 44C-97.4 44 -92 45.2 -92.6 46C-93.2 46.8 -95.6 50.2 -95.6 50.2C-95.6 50.2 -85.4 44.2 -79.2 40.4z"/>
+ </g>
+ <g style="fill: #ffffff">
+ <path d="M149.201 118.601C148.774 120.735 147.103 121.536 145.201 122.201C143.284 121.243 140.686 118.137 138.801 120.201C138.327 119.721 137.548 119.661 137.204 118.999C136.739 118.101 137.011 117.055 136.669 116.257C136.124 114.985 135.415 113.619 135.601 112.201C137.407 111.489 138.002 109.583 137.528 107.82C137.459 107.563 137.03 107.366 137.23 107.017C137.416 106.694 137.734 106.467 138.001 106.2C137.866 106.335 137.721 106.568 137.61 106.548C137 106.442 137.124 105.805 137.254 105.418C137.839 103.672 139.853 103.408 141.201 104.6C141.457 104.035 141.966 104.229 142.401 104.2C142.351 103.621 142.759 103.094 142.957 102.674C143.475 101.576 145.104 102.682 145.901 102.07C146.977 101.245 148.04 100.546 149.118 101.149C150.927 102.162 152.636 103.374 153.835 105.115C154.41 105.949 154.65 107.23 154.592 108.188C154.554 108.835 153.173 108.483 152.83 109.412C152.185 111.16 154.016 111.679 154.772 113.017C154.97 113.366 154.706 113.67 154.391 113.768C153.98 113.896 153.196 113.707 153.334 114.16C154.306 117.353 151.55 118.031 149.201 118.601z"/>
+ </g>
+ <g style="fill: #ffffff">
+ <path d="M139.6 138.201C139.593 136.463 137.992 134.707 139.201 133.001C139.336 133.135 139.467 133.356 139.601 133.356C139.736 133.356 139.867 133.135 140.001 133.001C141.496 135.217 145.148 136.145 145.006 138.991C144.984 139.438 143.897 140.356 144.801 141.001C142.988 142.349 142.933 144.719 142.001 146.601C140.763 146.315 139.551 145.952 138.401 145.401C138.753 143.915 138.636 142.231 139.456 140.911C139.89 140.213 139.603 139.134 139.6 138.201z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-26.6 129.201C-26.6 129.201 -43.458 139.337 -29.4 124.001C-20.6 114.401 -10.6 108.801 -10.6 108.801C-10.6 108.801 -0.2 104.4 3.4 103.2C7 102 22.2 96.8 25.4 96.4C28.6 96 38.2 92 45 96C51.8 100 59.8 104.4 59.8 104.4C59.8 104.4 43.4 96 39.8 98.4C36.2 100.8 29 100.4 23 103.6C23 103.6 8.2 108.001 5 110.001C1.8 112.001 -8.6 123.601 -10.2 122.801C-11.8 122.001 -9.8 121.601 -8.6 118.801C-7.4 116.001 -9.4 114.401 -17.4 120.801C-25.4 127.201 -26.6 129.201 -26.6 129.201z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-19.195 123.234C-19.195 123.234 -17.785 110.194 -9.307 111.859C-9.307 111.859 -1.081 107.689 1.641 105.721C1.641 105.721 9.78 104.019 11.09 103.402C29.569 94.702 44.288 99.221 44.835 98.101C45.381 96.982 65.006 104.099 68.615 108.185C69.006 108.628 58.384 102.588 48.686 100.697C40.413 99.083 18.811 100.944 7.905 106.48C4.932 107.989 -4.013 113.773 -6.544 113.662C-9.075 113.55 -19.195 123.234 -19.195 123.234z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-23 148.801C-23 148.801 -38.2 146.401 -21.4 144.801C-21.4 144.801 -3.4 142.801 0.6 137.601C0.6 137.601 14.2 128.401 17 128.001C19.8 127.601 49.8 120.401 50.2 118.001C50.6 115.601 56.2 115.601 57.8 116.401C59.4 117.201 58.6 118.401 55.8 119.201C53 120.001 21.8 136.401 15.4 137.601C9 138.801 -2.6 146.401 -7.4 147.601C-12.2 148.801 -23 148.801 -23 148.801z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-3.48 141.403C-3.48 141.403 -12.062 140.574 -3.461 139.755C-3.461 139.755 5.355 136.331 7.403 133.668C7.403 133.668 14.367 128.957 15.8 128.753C17.234 128.548 31.194 124.861 31.399 123.633C31.604 122.404 65.67 109.823 70.09 113.013C73.001 115.114 63.1 113.437 53.466 117.847C52.111 118.467 18.258 133.054 14.981 133.668C11.704 134.283 5.765 138.174 3.307 138.788C0.85 139.403 -3.48 141.403 -3.48 141.403z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-11.4 143.601C-11.4 143.601 -6.2 143.201 -7.4 144.801C-8.6 146.401 -11 145.601 -11 145.601L-11.4 143.601z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-18.6 145.201C-18.6 145.201 -13.4 144.801 -14.6 146.401C-15.8 148.001 -18.2 147.201 -18.2 147.201L-18.6 145.201z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-29 146.801C-29 146.801 -23.8 146.401 -25 148.001C-26.2 149.601 -28.6 148.801 -28.6 148.801L-29 146.801z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-36.6 147.601C-36.6 147.601 -31.4 147.201 -32.6 148.801C-33.8 150.401 -36.2 149.601 -36.2 149.601L-36.6 147.601z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M1.8 108.001C1.8 108.001 6.2 108.001 5 109.601C3.8 111.201 0.6 110.801 0.6 110.801L1.8 108.001z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-8.2 113.601C-8.2 113.601 -1.694 111.46 -4.2 114.801C-5.4 116.401 -7.8 115.601 -7.8 115.601L-8.2 113.601z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-19.4 118.401C-19.4 118.401 -14.2 118.001 -15.4 119.601C-16.6 121.201 -19 120.401 -19 120.401L-19.4 118.401z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-27 124.401C-27 124.401 -21.8 124.001 -23 125.601C-24.2 127.201 -26.6 126.401 -26.6 126.401L-27 124.401z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-33.8 129.201C-33.8 129.201 -28.6 128.801 -29.8 130.401C-31 132.001 -33.4 131.201 -33.4 131.201L-33.8 129.201z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M5.282 135.598C5.282 135.598 12.203 135.066 10.606 137.195C9.009 139.325 5.814 138.26 5.814 138.26L5.282 135.598z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M15.682 130.798C15.682 130.798 22.603 130.266 21.006 132.395C19.409 134.525 16.214 133.46 16.214 133.46L15.682 130.798z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M26.482 126.398C26.482 126.398 33.403 125.866 31.806 127.995C30.209 130.125 27.014 129.06 27.014 129.06L26.482 126.398z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M36.882 121.598C36.882 121.598 43.803 121.066 42.206 123.195C40.609 125.325 37.414 124.26 37.414 124.26L36.882 121.598z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M9.282 103.598C9.282 103.598 16.203 103.066 14.606 105.195C13.009 107.325 9.014 107.06 9.014 107.06L9.282 103.598z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M19.282 100.398C19.282 100.398 26.203 99.866 24.606 101.995C23.009 104.125 18.614 103.86 18.614 103.86L19.282 100.398z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-3.4 140.401C-3.4 140.401 1.8 140.001 0.6 141.601C-0.6 143.201 -3 142.401 -3 142.401L-3.4 140.401z"/>
+ </g>
+ <g style="fill: #992600">
+ <path d="M-76.6 41.2C-76.6 41.2 -81 50 -81.4 53.2C-81.4 53.2 -80.6 44.4 -79.4 42.4C-78.2 40.4 -76.6 41.2 -76.6 41.2z"/>
+ </g>
+ <g style="fill: #992600">
+ <path d="M-95 55.2C-95 55.2 -98.2 69.6 -97.8 72.4C-97.8 72.4 -99 60.8 -98.6 59.6C-98.2 58.4 -95 55.2 -95 55.2z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-74.2 -19.4L-74.4 -16.2L-76.6 -16C-76.6 -16 -62.4 -3.4 -61.8 4.2C-61.8 4.2 -61 -4 -74.2 -19.4z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-70.216 -18.135C-70.647 -18.551 -70.428 -19.296 -70.836 -19.556C-71.645 -20.072 -69.538 -20.129 -69.766 -20.845C-70.149 -22.051 -69.962 -22.072 -70.084 -23.348C-70.141 -23.946 -69.553 -25.486 -69.168 -25.926C-67.722 -27.578 -69.046 -30.51 -67.406 -32.061C-67.102 -32.35 -66.726 -32.902 -66.441 -33.32C-65.782 -34.283 -64.598 -34.771 -63.648 -35.599C-63.33 -35.875 -63.531 -36.702 -62.962 -36.61C-62.248 -36.495 -61.007 -36.625 -61.052 -35.784C-61.165 -33.664 -62.494 -31.944 -63.774 -30.276C-63.323 -29.572 -63.781 -28.937 -64.065 -28.38C-65.4 -25.76 -65.211 -22.919 -65.385 -20.079C-65.39 -19.994 -65.697 -19.916 -65.689 -19.863C-65.336 -17.528 -64.752 -15.329 -63.873 -13.1C-63.507 -12.17 -63.036 -11.275 -62.886 -10.348C-62.775 -9.662 -62.672 -8.829 -63.08 -8.124C-61.045 -5.234 -62.354 -2.583 -61.185 0.948C-60.978 1.573 -59.286 3.487 -59.749 3.326C-62.262 2.455 -62.374 2.057 -62.551 1.304C-62.697 0.681 -63.027 -0.696 -63.264 -1.298C-63.328 -1.462 -63.499 -3.346 -63.577 -3.468C-65.09 -5.85 -63.732 -5.674 -65.102 -8.032C-66.53 -8.712 -67.496 -9.816 -68.619 -10.978C-68.817 -11.182 -67.674 -11.906 -67.855 -12.119C-68.947 -13.408 -70.1 -14.175 -69.764 -15.668C-69.609 -16.358 -69.472 -17.415 -70.216 -18.135z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-73.8 -16.4C-73.8 -16.4 -73.4 -9.6 -71 -8C-68.6 -6.4 -69.8 -7.2 -73 -8.4C-76.2 -9.6 -75 -10.4 -75 -10.4C-75 -10.4 -77.8 -10 -75.4 -8C-73 -6 -69.4 -3.6 -71 -3.6C-72.6 -3.6 -80.2 -7.6 -80.2 -10.4C-80.2 -13.2 -81.2 -17.3 -81.2 -17.3C-81.2 -17.3 -80.1 -18.1 -75.3 -18C-75.3 -18 -73.9 -17.3 -73.8 -16.4z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-74.6 2.2C-74.6 2.2 -83.12 -0.591 -101.6 2.8C-101.6 2.8 -92.569 0.722 -73.8 3C-63.5 4.25 -74.6 2.2 -74.6 2.2z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-72.502 2.129C-72.502 2.129 -80.748 -1.389 -99.453 0.392C-99.453 0.392 -90.275 -0.897 -71.774 2.995C-61.62 5.131 -72.502 2.129 -72.502 2.129z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-70.714 2.222C-70.714 2.222 -78.676 -1.899 -97.461 -1.514C-97.461 -1.514 -88.213 -2.118 -70.052 3.14C-60.086 6.025 -70.714 2.222 -70.714 2.222z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-69.444 2.445C-69.444 2.445 -76.268 -1.862 -93.142 -2.96C-93.142 -2.96 -84.803 -2.79 -68.922 3.319C-60.206 6.672 -69.444 2.445 -69.444 2.445z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M45.84 12.961C45.84 12.961 44.91 13.605 45.124 12.424C45.339 11.243 73.547 -1.927 77.161 -1.677C77.161 -1.677 46.913 11.529 45.84 12.961z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M42.446 13.6C42.446 13.6 41.57 14.315 41.691 13.121C41.812 11.927 68.899 -3.418 72.521 -3.452C72.521 -3.452 43.404 12.089 42.446 13.6z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M39.16 14.975C39.16 14.975 38.332 15.747 38.374 14.547C38.416 13.348 58.233 -2.149 68.045 -4.023C68.045 -4.023 50.015 4.104 39.16 14.975z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M36.284 16.838C36.284 16.838 35.539 17.532 35.577 16.453C35.615 15.373 53.449 1.426 62.28 -0.26C62.28 -0.26 46.054 7.054 36.284 16.838z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M4.6 164.801C4.6 164.801 -10.6 162.401 6.2 160.801C6.2 160.801 24.2 158.801 28.2 153.601C28.2 153.601 41.8 144.401 44.6 144.001C47.4 143.601 63.8 140.001 64.2 137.601C64.6 135.201 70.6 132.801 72.2 133.601C73.8 134.401 73.8 143.601 71 144.401C68.2 145.201 49.4 152.401 43 153.601C36.6 154.801 25 162.401 20.2 163.601C15.4 164.801 4.6 164.801 4.6 164.801z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M77.6 127.401C77.6 127.401 74.6 129.001 73.4 131.601C73.4 131.601 67 142.201 52.8 145.401C52.8 145.401 29.8 154.401 22 156.401C22 156.401 8.6 161.401 1.2 160.601C1.2 160.601 -5.8 160.801 0.4 162.401C0.4 162.401 20.6 160.401 24 158.601C24 158.601 39.6 153.401 42.6 150.801C45.6 148.201 63.8 143.201 66 141.201C68.2 139.201 78 130.801 77.6 127.401z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M18.882 158.911C18.882 158.911 24.111 158.685 22.958 160.234C21.805 161.784 19.357 160.91 19.357 160.91L18.882 158.911z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M11.68 160.263C11.68 160.263 16.908 160.037 15.756 161.586C14.603 163.136 12.155 162.263 12.155 162.263L11.68 160.263z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M1.251 161.511C1.251 161.511 6.48 161.284 5.327 162.834C4.174 164.383 1.726 163.51 1.726 163.51L1.251 161.511z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-6.383 162.055C-6.383 162.055 -1.154 161.829 -2.307 163.378C-3.46 164.928 -5.908 164.054 -5.908 164.054L-6.383 162.055z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M35.415 151.513C35.415 151.513 42.375 151.212 40.84 153.274C39.306 155.336 36.047 154.174 36.047 154.174L35.415 151.513z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M45.73 147.088C45.73 147.088 51.689 143.787 51.155 148.849C50.885 151.405 46.362 149.749 46.362 149.749L45.73 147.088z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M54.862 144.274C54.862 144.274 62.021 140.573 60.287 146.035C59.509 148.485 55.493 146.935 55.493 146.935L54.862 144.274z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M64.376 139.449C64.376 139.449 68.735 134.548 69.801 141.21C70.207 143.748 65.008 142.11 65.008 142.11L64.376 139.449z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M26.834 155.997C26.834 155.997 32.062 155.77 30.91 157.32C29.757 158.869 27.308 157.996 27.308 157.996L26.834 155.997z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M62.434 34.603C62.434 34.603 61.708 35.268 61.707 34.197C61.707 33.127 79.191 19.863 88.034 18.479C88.034 18.479 71.935 25.208 62.434 34.603z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M65.4 98.4C65.4 98.4 87.401 120.801 96.601 124.401C96.601 124.401 105.801 135.601 101.801 161.601C101.801 161.601 98.601 169.201 95.401 148.401C95.401 148.401 98.601 123.201 87.401 139.201C87.401 139.201 79 129.301 85.4 129.601C85.4 129.601 88.601 131.601 89.001 130.001C89.401 128.401 81.4 114.801 64.2 100.4C47 86 65.4 98.4 65.4 98.4z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M7 137.201C7 137.201 6.8 135.401 8.6 136.201C10.4 137.001 104.601 143.201 136.201 167.201C136.201 167.201 91.001 144.001 7 137.201z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M17.4 132.801C17.4 132.801 17.2 131.001 19 131.801C20.8 132.601 157.401 131.601 181.001 164.001C181.001 164.001 159.001 138.801 17.4 132.801z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M29 128.801C29 128.801 28.8 127.001 30.6 127.801C32.4 128.601 205.801 115.601 229.401 148.001C229.401 148.001 219.801 122.401 29 128.801z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M39 124.001C39 124.001 38.8 122.201 40.6 123.001C42.4 123.801 164.601 85.2 188.201 117.601C188.201 117.601 174.801 93 39 124.001z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-19 146.801C-19 146.801 -19.2 145.001 -17.4 145.801C-15.6 146.601 2.2 148.801 4.2 187.601C4.2 187.601 -3 145.601 -19 146.801z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-27.8 148.401C-27.8 148.401 -28 146.601 -26.2 147.401C-24.4 148.201 -10.2 143.601 -13 182.401C-13 182.401 -11.8 147.201 -27.8 148.401z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-35.8 148.801C-35.8 148.801 -36 147.001 -34.2 147.801C-32.4 148.601 -17 149.201 -29.4 171.601C-29.4 171.601 -19.8 147.601 -35.8 148.801z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M11.526 104.465C11.526 104.465 11.082 106.464 12.631 105.247C28.699 92.622 61.141 33.72 116.826 28.086C116.826 28.086 78.518 15.976 11.526 104.465z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M22.726 102.665C22.726 102.665 21.363 101.472 23.231 100.847C25.099 100.222 137.541 27.72 176.826 35.686C176.826 35.686 149.719 28.176 22.726 102.665z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M1.885 108.767C1.885 108.767 1.376 110.366 3.087 109.39C12.062 104.27 15.677 47.059 59.254 45.804C59.254 45.804 26.843 31.09 1.885 108.767z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-18.038 119.793C-18.038 119.793 -19.115 121.079 -17.162 120.825C-6.916 119.493 14.489 78.222 58.928 83.301C58.928 83.301 26.962 68.955 -18.038 119.793z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-6.8 113.667C-6.8 113.667 -7.611 115.136 -5.742 114.511C4.057 111.237 17.141 66.625 61.729 63.078C61.729 63.078 27.603 55.135 -6.8 113.667z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-25.078 124.912C-25.078 124.912 -25.951 125.954 -24.369 125.748C-16.07 124.669 1.268 91.24 37.264 95.354C37.264 95.354 11.371 83.734 -25.078 124.912z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-32.677 130.821C-32.677 130.821 -33.682 131.866 -32.091 131.748C-27.923 131.439 2.715 98.36 21.183 113.862C21.183 113.862 9.168 95.139 -32.677 130.821z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M36.855 98.898C36.855 98.898 35.654 97.543 37.586 97.158C39.518 96.774 160.221 39.061 198.184 51.927C198.184 51.927 172.243 41.053 36.855 98.898z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M3.4 163.201C3.4 163.201 3.2 161.401 5 162.201C6.8 163.001 22.2 163.601 9.8 186.001C9.8 186.001 19.4 162.001 3.4 163.201z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M13.8 161.601C13.8 161.601 13.6 159.801 15.4 160.601C17.2 161.401 35 163.601 37 202.401C37 202.401 29.8 160.401 13.8 161.601z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M20.6 160.001C20.6 160.001 20.4 158.201 22.2 159.001C24 159.801 48.6 163.201 72.2 195.601C72.2 195.601 36.6 158.801 20.6 160.001z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M28.225 157.972C28.225 157.972 27.788 156.214 29.678 156.768C31.568 157.322 52.002 155.423 90.099 189.599C90.099 189.599 43.924 154.656 28.225 157.972z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M38.625 153.572C38.625 153.572 38.188 151.814 40.078 152.368C41.968 152.922 76.802 157.423 128.499 192.399C128.499 192.399 54.324 150.256 38.625 153.572z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-1.8 142.001C-1.8 142.001 -2 140.201 -0.2 141.001C1.6 141.801 55 144.401 85.4 171.201C85.4 171.201 50.499 146.426 -1.8 142.001z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M-11.8 146.001C-11.8 146.001 -12 144.201 -10.2 145.001C-8.4 145.801 16.2 149.201 39.8 181.601C39.8 181.601 4.2 144.801 -11.8 146.001z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M49.503 148.962C49.503 148.962 48.938 147.241 50.864 147.655C52.79 148.068 87.86 150.004 141.981 181.098C141.981 181.098 64.317 146.704 49.503 148.962z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M57.903 146.562C57.903 146.562 57.338 144.841 59.264 145.255C61.19 145.668 96.26 147.604 150.381 178.698C150.381 178.698 73.317 143.904 57.903 146.562z"/>
+ </g>
+ <g style="fill: #ffffff; stroke:#000000; stroke-width:0.1">
+ <path d="M67.503 141.562C67.503 141.562 66.938 139.841 68.864 140.255C70.79 140.668 113.86 145.004 203.582 179.298C203.582 179.298 82.917 138.904 67.503 141.562z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-43.8 148.401C-43.8 148.401 -38.6 148.001 -39.8 149.601C-41 151.201 -43.4 150.401 -43.4 150.401L-43.8 148.401z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-13 162.401C-13 162.401 -7.8 162.001 -9 163.601C-10.2 165.201 -12.6 164.401 -12.6 164.401L-13 162.401z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-21.8 162.001C-21.8 162.001 -16.6 161.601 -17.8 163.201C-19 164.801 -21.4 164.001 -21.4 164.001L-21.8 162.001z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-117.169 150.182C-117.169 150.182 -112.124 151.505 -113.782 152.624C-115.439 153.744 -117.446 152.202 -117.446 152.202L-117.169 150.182z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-115.169 140.582C-115.169 140.582 -110.124 141.905 -111.782 143.024C-113.439 144.144 -115.446 142.602 -115.446 142.602L-115.169 140.582z"/>
+ </g>
+ <g style="fill: #000000">
+ <path d="M-122.369 136.182C-122.369 136.182 -117.324 137.505 -118.982 138.624C-120.639 139.744 -122.646 138.202 -122.646 138.202L-122.369 136.182z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-42.6 211.201C-42.6 211.201 -44.2 211.201 -48.2 213.201C-50.2 213.201 -61.4 216.801 -67 226.801C-67 226.801 -54.6 217.201 -42.6 211.201z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M45.116 303.847C45.257 304.105 45.312 304.525 45.604 304.542C46.262 304.582 47.495 304.883 47.37 304.247C46.522 299.941 45.648 295.004 41.515 293.197C40.876 292.918 39.434 293.331 39.36 294.215C39.233 295.739 39.116 297.088 39.425 298.554C39.725 299.975 41.883 299.985 42.8 298.601C43.736 300.273 44.168 302.116 45.116 303.847z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M34.038 308.581C34.786 309.994 34.659 311.853 36.074 312.416C36.814 312.71 38.664 311.735 38.246 310.661C37.444 308.6 37.056 306.361 35.667 304.55C35.467 304.288 35.707 303.755 35.547 303.427C34.953 302.207 33.808 301.472 32.4 301.801C31.285 304.004 32.433 306.133 33.955 307.842C34.091 307.994 33.925 308.37 34.038 308.581z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-5.564 303.391C-5.672 303.014 -5.71 302.551 -5.545 302.23C-5.014 301.197 -4.221 300.075 -4.558 299.053C-4.906 297.997 -6.022 298.179 -6.672 298.748C-7.807 299.742 -7.856 301.568 -8.547 302.927C-8.743 303.313 -8.692 303.886 -9.133 304.277C-9.607 304.698 -10.047 306.222 -9.951 306.793C-9.898 307.106 -10.081 317.014 -9.859 316.751C-9.24 316.018 -6.19 306.284 -6.121 305.392C-6.064 304.661 -5.332 304.196 -5.564 303.391z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-31.202 296.599C-28.568 294.1 -25.778 291.139 -26.22 287.427C-26.336 286.451 -28.111 286.978 -28.298 287.824C-29.1 291.449 -31.139 294.11 -33.707 296.502C-35.903 298.549 -37.765 304.893 -38 305.401C-34.303 300.145 -32.046 297.399 -31.202 296.599z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-44.776 290.635C-44.253 290.265 -44.555 289.774 -44.338 289.442C-43.385 287.984 -42.084 286.738 -42.066 285C-42.063 284.723 -42.441 284.414 -42.776 284.638C-43.053 284.822 -43.395 284.952 -43.503 285.082C-45.533 287.531 -46.933 290.202 -48.376 293.014C-48.559 293.371 -49.703 297.862 -49.39 297.973C-49.151 298.058 -47.431 293.877 -47.221 293.763C-45.958 293.077 -45.946 291.462 -44.776 290.635z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-28.043 310.179C-27.599 309.31 -26.023 308.108 -26.136 307.219C-26.254 306.291 -25.786 304.848 -26.698 305.536C-27.955 306.484 -31.404 307.833 -31.674 313.641C-31.7 314.212 -28.726 311.519 -28.043 310.179z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-13.6 293.001C-13.2 292.333 -12.492 292.806 -12.033 292.543C-11.385 292.171 -10.774 291.613 -10.482 290.964C-9.512 288.815 -7.743 286.995 -7.6 284.601C-9.091 283.196 -9.77 285.236 -10.4 286.201C-11.723 284.554 -12.722 286.428 -14.022 286.947C-14.092 286.975 -14.305 286.628 -14.38 286.655C-15.557 287.095 -16.237 288.176 -17.235 288.957C-17.406 289.091 -17.811 288.911 -17.958 289.047C-18.61 289.65 -19.583 289.975 -19.863 290.657C-20.973 293.364 -24.113 295.459 -26 303.001C-25.619 303.91 -21.488 296.359 -21.001 295.661C-20.165 294.465 -20.047 297.322 -18.771 296.656C-18.72 296.629 -18.534 296.867 -18.4 297.001C-18.206 296.721 -17.988 296.492 -17.6 296.601C-17.6 296.201 -17.734 295.645 -17.533 295.486C-16.296 294.509 -16.38 293.441 -15.6 292.201C-15.142 292.99 -14.081 292.271 -13.6 293.001z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M46.2 347.401C46.2 347.401 53.6 327.001 49.2 315.801C49.2 315.801 60.6 337.401 56 348.601C56 348.601 55.6 338.201 51.6 333.201C51.6 333.201 47.6 346.001 46.2 347.401z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M31.4 344.801C31.4 344.801 36.8 336.001 28.8 317.601C28.8 317.601 28 338.001 21.2 349.001C21.2 349.001 35.4 328.801 31.4 344.801z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M21.4 342.801C21.4 342.801 21.2 322.801 21.6 319.801C21.6 319.801 17.8 336.401 7.6 346.001C7.6 346.001 22 334.001 21.4 342.801z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M11.8 310.801C11.8 310.801 17.8 324.401 7.8 342.801C7.8 342.801 14.2 330.601 9.4 323.601C9.4 323.601 12 320.201 11.8 310.801z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-7.4 342.401C-7.4 342.401 -8.4 326.801 -6.6 324.601C-6.6 324.601 -6.4 318.201 -6.8 317.201C-6.8 317.201 -2.8 311.001 -2.6 318.401C-2.6 318.401 -1.2 326.201 1.6 330.801C1.6 330.801 5.2 336.201 5 342.601C5 342.601 -5 312.401 -7.4 342.401z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-11 314.801C-11 314.801 -17.6 325.601 -19.4 344.601C-19.4 344.601 -20.8 338.401 -17 324.001C-17 324.001 -12.8 308.601 -11 314.801z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-32.8 334.601C-32.8 334.601 -27.8 329.201 -26.4 324.201C-26.4 324.201 -22.8 308.401 -29.2 317.001C-29.2 317.001 -29 325.001 -37.2 332.401C-37.2 332.401 -32.4 330.001 -32.8 334.601z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-38.6 329.601C-38.6 329.601 -35.2 312.201 -34.4 311.401C-34.4 311.401 -32.6 308.001 -35.4 311.201C-35.4 311.201 -44.2 330.401 -48.2 337.001C-48.2 337.001 -40.2 327.801 -38.6 329.601z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-44.4 313.001C-44.4 313.001 -32.8 290.601 -54.6 316.401C-54.6 316.401 -43.6 306.601 -44.4 313.001z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M-59.8 298.401C-59.8 298.401 -55 279.601 -52.4 279.801C-52.4 279.801 -44.2 270.801 -50.8 281.401C-50.8 281.401 -56.8 291.001 -56.2 300.801C-56.2 300.801 -56.8 291.201 -59.8 298.401z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M270.5 287C270.5 287 258.5 277 256 273.5C256 273.5 269.5 292 269.5 299C269.5 299 272 291.5 270.5 287z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M276 265C276 265 255 250 251.5 242.5C251.5 242.5 278 272 278 276.5C278 276.5 278.5 267.5 276 265z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M293 111C293 111 281 103 279.5 105C279.5 105 290 111.5 292.5 120C292.5 120 291 111 293 111z"/>
+ </g>
+ <g style="fill: #cccccc">
+ <path d="M301.5 191.5L284 179.5C284 179.5 303 196.5 303.5 200.5L301.5 191.5z"/>
+ </g>
+ <g style="stroke:#000000">
+ <path d="M-89.25 169L-67.25 173.75"/>
+ </g>
+ <g style="stroke:#000000">
+ <path d="M-39 331C-39 331 -39.5 327.5 -48.5 338"/>
+ </g>
+ <g style="stroke:#000000">
+ <path d="M-33.5 336C-33.5 336 -31.5 329.5 -38 334"/>
+ </g>
+ <g style="stroke:#000000">
+ <path d="M20.5 344.5C20.5 344.5 22 333.5 10.5 346.5"/>
+ </g>
+ </g>
+ <!-- gradient for the sand dunes -->
+ <linearGradient id="curveGradient" x1="0%" y1="0%" x2="100%" y2="0%" spreadMethod="pad" >
+ <stop offset="0%" stop-color="#000" stop-opacity="0.6"></stop>
+ <stop offset="95%" stop-color="#050" stop-opacity="0"></stop>
+ </linearGradient>
+ <!-- curve for sand dunes -->
+ <path id="dune" d="M160.21,694.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,694.707z" ></path>
+ </defs>
+ <rect x="0" y="0" width="100%" height="100%" fill="url(#background)" />
+ <g transform="scale(0.55)">
+ <clipPath id="clip">
+ <circle id="clip1" cx="0" cy="0" r="30" />
+ <circle id="clip2" cx="50" cy="50" r="15" />
+ <circle id="clip3" cx="20" cy="75" r="20" />
+ <circle id="clip4" cx="10" cy="0" r="25" />
+ <circle id="clip5" cx="60" cy="50" r="17" />
+ <circle id="clip6" cx="30" cy="75" r="14" />
+ </clipPath>
+ <use id='tiger1' xlink:href="#tiger"></use>
+ <use id='tiger2' xlink:href="#tiger" stroke-width="5" clip-path="url(#clip)"></use>
+ <use id='tiger3' xlink:href="#tiger"></use>
+ <use id='tiger4' xlink:href="#tiger"></use>
+ <use id='tiger5' xlink:href="#tiger"></use>
+ <use id='tiger6' xlink:href="#tiger"></use>
+ <use id='tiger7' xlink:href="#tiger"></use>
+ <use id='tiger8' xlink:href="#tiger"></use>
+ <use id='dune1' x="-110" y="250" xlink:href="#dune" style="fill: url(#curveGradient);" stroke="#922" stroke-linecap="butt" stroke-dasharray="10 10" stroke-width="10"></use>
+ <path id='dune2' d="M 0 0z" style="fill: url(#curveGradient);" stroke="#922" stroke-linecap="round" stroke-dasharray="10 10" stroke-width="10"></path>
+ <path id='dune3' d="M0 0z" style="fill: url(#curveGradient);" stroke="#922" stroke-linecap="square" stroke-dasharray="10 10" stroke-width="8"></path>
+ <path id='dune4' d="M0 0z" style="fill: url(#curveGradient);" stroke="#922" stroke-linecap="square" stroke-width="5" transform='scale(1.0 0.8)'></path>
+
+ <g transform="translate(600,-600) rotate(35)">
+ <text>
+ <textPath id="textPath" xlink:href="#dune">
+ </textPath>
+ </text>
+ </g>
+
+ <path id='dune5' x="-110" y="250" style="fill: url(#curveGradient);" stroke="#922" stroke-width="5">
+ <animate id='duneAnimate1' attributeName='d' from='M-560.21,894.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z' to='M560.21,894.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z' dur='20s' />
+ </path>
+
+ <path id='dune6' x="-110" y="250" style="fill: url(#curveGradient);" stroke="#922" stroke-width="7">
+ <animate id='duneAnimate1' attributeName='d' from='M-860.21,794.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z' to='M560.21,894.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z' dur='20s' calcMode='spline' keySplines='0 0.75 0.25 1' keyTimes='0; 1'/>
+ </path>
+
+ <path id='dune7' x="-110" y="250" style="fill: url(#curveGradient);" stroke="#922" stroke-width="7">
+ <animate id='duneAnimate1' attributeName='d' from='M560.21,894.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z' to='M-560.21,894.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z' dur='20s' calcMode='spline' keySplines='0 0.75 0.25 1' keyTimes='0; 1'/>
+ </path>
+
+ <path id='dune8' x="-110" y="250" style="fill: url(#curveGradient);" stroke="#922" stroke-width="7">
+ <animate id='duneAnimate1' attributeName='d' from='M360.21,894.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z' to='M-560.21,894.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z' dur='20s' calcMode='spline' keySplines='0 0.25.75 1' keyTimes='0; 1'/>
+ </path>
+
+ <path id='dune9' x="-110" y="250" style="fill:#000" fill-opacity="0.3" stroke-opacity="0.3" stroke="#922" stroke-width="7">
+ <animate id='duneAnimate1' attributeName='d' from='M160.21,894.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z' to='M-560.21,894.707c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z' dur='25s'/>
+ </path>
+ </g>
+ </svg>
+ </div>
+ </div>
+ <script src="../resources/runner.js"></script>
+ <script>
+ var t = 0;
+ PerfTestRunner.run(function() {
+ // transform a tiger so it spins in a circle
+ var rad = 0.05 * t;
+ var tiger1 = document.getElementById('tiger1');
+ tiger1.setAttribute('transform', 'translate(230,330) rotate(' + (-rad * 180 / 3.14159) + ') translate(-50,-50)');
+
+ // change gradients on a tiger background and move clip paths
+ document.getElementById('clip1').setAttribute('cy', (200 - 2.0*(t + 00) % 200) - 60);
+ document.getElementById('clip2').setAttribute('cy', (200 - 2.3*(t + 40) % 200) - 60);
+ document.getElementById('clip3').setAttribute('cy', (200 - 1.8*(t + 25) % 200) - 60);
+ document.getElementById('clip4').setAttribute('cy', (200 - 2.1*(t + 50) % 200) - 60);
+ document.getElementById('clip5').setAttribute('cy', (200 - 2.5*(t + 50) % 200) - 60);
+ document.getElementById('clip6').setAttribute('cy', (200 - 1.9*(t + 30) % 200) - 60);
+ var color = Math.round(Math.sin(0.05 * t) * 128) + 120;
+ var strokeWidth = '3';
+ var stroke = 'rgb(' + color + ',' + color + ',128)';
+ var tiger2 = document.getElementById('tiger2');
+ tiger2.setAttribute('stroke-width', strokeWidth);
+ tiger2.setAttribute('stroke', stroke);
+ tiger2.setAttribute('transform', 'translate(530,330) rotate(0) translate(-50,-50)');
+
+ // scale a tiger
+ var scale = Math.sin(0.05 * t) * 0.4 + 1;
+ var tiger3 = document.getElementById('tiger3');
+ tiger3.setAttribute('transform', 'translate(830,330) rotate(0) scale(' + scale + ') translate(-50,-50)');
+
+ // change a tiger's opacity
+ var opacity = 0.6 + 0.2 * Math.sin(0.05 * t);
+ var tiger4 = document.getElementById('tiger4');
+ tiger4.setAttribute('opacity', opacity);
+ tiger4.setAttribute('transform', 'translate(360,100)');
+
+ // change a tiger's stroke width
+ var strokeWidth = 10 + 9 * Math.sin(0.05 * t);
+ var tiger5 = document.getElementById('tiger5');
+ tiger5.setAttribute('stroke-width', strokeWidth);
+ tiger5.setAttribute('transform', 'translate(630,100)');
+
+ // spin three overlapping tigers.
+ var rad = 0.05 * t;
+ var tiger6 = document.getElementById('tiger6');
+ tiger6.setAttribute('transform', 'scale(0.5) translate(150,330) rotate(' + (rad * 180 / 3.14159) + ') translate(-50,-50)');
+ var tiger7 = document.getElementById('tiger7');
+ tiger7.setAttribute('transform', 'scale(0.5) translate(150,130) rotate(' + (rad * 180 / 3.14159) + ') translate(-50,-50)');
+ var tiger8 = document.getElementById('tiger8');
+ tiger8.setAttribute('transform', 'scale(0.5) translate(150,230) rotate(' + (-rad * 180 / 3.14159) + ') translate(-50,-50)');
+
+ // move dots on a dune
+ var dashOffset1 = 40 + 40 * Math.sin(0.05 * t);
+ var dune1 = document.getElementById('dune1');
+ dune1.setAttribute('stroke-dashoffset', dashOffset1);
+
+ // move dots on a dune
+ var dashOffset2 = 40 + 40 * Math.sin(0.05 * t);
+ var dune2_x = -240 + 40 * Math.sin(0.05 * t);
+ var dune2_y = 230 + 694;
+ var dune2 = document.getElementById('dune2');
+ dune2.setAttribute('stroke-dashoffset', dashOffset2);
+ dune2.setAttribute('d', 'M' + dune2_x + ',' + dune2_y + 'c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z');
+
+ // move dots on a dune and the change path data
+ var dashArray = 50 + 40 * Math.sin(0.05 * t);
+ var dune3_x = 110 + 160 + 40 * Math.sin(0.05 * t);
+ var dune3_y = 255 + 694;
+ var dune3 = document.getElementById('dune3');
+ dune3.setAttribute('d', 'M' + dune3_x + ',' + dune3_y + 'c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z');
+ dune3.setAttribute('stroke-dasharray', '10 ' + dashArray);
+
+ // change path data
+ var dune4_x = 160 + 40 * Math.sin(0.05 * t);
+ var dune4_y = 355 + 694;
+ var dune4 = document.getElementById('dune4');
+ dune4.setAttribute('d', 'M' + dune4_x + ',' + dune4_y + 'c4.276-12.428,10.028-24.275,16.284-35.842c6.272-11.565,13.298-22.736,20.865-33.545c15.155-21.605,32.608-41.675,51.831-59.947c19.257-18.238,40.265-34.711,62.645-49.098c11.173-7.221,22.691-13.913,34.478-20.101c11.771-6.214,23.837-11.87,36.1-17.049c12.258-5.192,24.736-9.854,37.362-14.052c6.317-2.1,12.653-4.078,19.058-5.951c6.617-1.895,12.926-3.477,19.283-5.1c12.667-3.209,25.2-6.377,37.599-9.833c12.39-3.452,24.647-7.153,36.559-11.384c11.871-4.238,23.533-8.986,33.835-14.816c5.109-2.904,9.878-6.137,13.504-9.562c0.896-0.854,1.725-1.711,2.442-2.558l0.519-0.632l0.625-0.793l1.328-1.741c1.802-2.399,3.604-4.945,5.395-7.539c7.167-10.429,14.227-21.48,21.543-32.412c7.318-10.957,14.867-21.911,23.031-32.626c8.189-10.701,16.912-21.225,27.213-30.998c5.174-4.867,10.752-9.557,17.162-13.726c6.403-4.124,13.713-7.863,22.431-9.718c2.17-0.455,4.417-0.783,6.719-0.936l1.644-0.086l1.558-0.044c1.034-0.016,2.078-0.005,3.128,0.03c4.197,0.145,8.524,0.731,12.771,1.883c4.246,1.139,8.386,2.839,12.18,4.957c3.804,2.115,7.254,4.629,10.345,7.316c6.182,5.403,10.967,11.396,15.116,17.352c4.141,5.977,7.662,11.988,10.957,17.953c6.548,11.936,12.25,23.703,18.131,35.201c5.854,11.498,11.811,22.734,18.205,33.615c12.743,21.768,27.322,42.091,44.201,60.312c16.842,18.237,35.88,34.357,56.524,48.275l32.612,21.428l32.652,21.747c43.432,29.09,86.438,58.607,129.789,87.124c43.354,28.466,87.107,56.016,132.243,79.718c22.565,11.82,45.5,22.605,68.854,31.617c23.346,9.004,47.127,16.217,71.129,20.68c23.99,4.476,48.186,6.139,72.035,4.381c23.852-1.721,47.316-6.885,69.896-15.077c22.598-8.157,44.301-19.306,64.951-32.534c20.658-13.234,40.277-28.52,58.966-45.104c18.692-16.592,36.46-34.486,53.484-53.204c8.514-9.36,16.834-18.937,25-28.675c4.085-4.867,8.13-9.776,12.134-14.727l1.5-1.857l1.343-1.686l3.129-3.941l6.3-7.82c16.901-20.762,34.572-40.877,53.051-60.312c18.482-19.428,37.774-38.17,58.002-56.025c20.221-17.861,41.422-34.791,63.715-50.486c22.297-15.681,45.719-30.111,70.437-42.636c24.704-12.521,50.763-23.079,78.057-30.674c27.267-7.593,55.821-12.145,84.756-12.526l0.525,59.963c-23.247,0.06-46.682,3.469-69.714,9.618c-23.045,6.139-45.669,15.003-67.632,25.745c-21.965,10.765-43.255,23.461-63.804,37.515c-20.557,14.054-40.363,29.487-59.504,45.845c-38.247,32.773-73.774,69.34-106.461,108.203l-6.084,7.319l-3.008,3.673l-1.738,2.112l-1.604,1.922c-4.279,5.122-8.607,10.21-12.986,15.263c-8.762,10.102-17.743,20.047-26.955,29.819c-18.428,19.534-37.8,38.372-58.447,56.042c-20.645,17.655-42.58,34.162-66.122,48.648c-23.524,14.472-48.714,26.904-75.372,35.982c-26.629,9.086-54.716,14.656-82.941,16.103c-28.233,1.5-56.458-1.095-83.617-6.747c-27.192-5.644-53.355-14.232-78.457-24.508c-25.113-10.291-49.21-22.262-72.588-35.123c-23.385-12.859-46.027-26.678-68.252-40.924c-22.221-14.258-44.014-28.973-65.59-43.87c-43.14-29.817-85.467-60.323-128.041-90.272l-31.969-22.365l-16.031-11.088l-16.266-11.169c-22.363-15.583-43.099-33.753-61.278-54.187c-18.229-20.389-33.798-43.008-46.976-66.484c-6.613-11.727-12.66-23.659-18.427-35.507c-5.779-11.829-11.26-23.634-17.067-34.671c-2.908-5.502-5.912-10.802-9.117-15.604c-3.199-4.799-6.619-9.077-10.217-12.327c-3.615-3.263-7.284-5.423-11.348-6.604c-2.037-0.598-4.205-0.95-6.52-1.078c-0.579-0.029-1.166-0.049-1.762-0.051c-0.299,0.004-0.398-0.007-0.886,0.008l-0.8,0.029c-0.951,0.045-1.941,0.173-2.965,0.373c-4.092,0.779-8.713,2.855-13.266,5.739c-4.57,2.881-9.092,6.528-13.455,10.542c-8.74,8.074-16.887,17.563-24.648,27.474c-7.768,9.938-15.162,20.376-22.458,31.017c-7.323,10.652-14.433,21.503-22.169,32.479c-1.949,2.746-3.945,5.502-6.093,8.291l-1.665,2.125l-0.908,1.113c-0.35,0.426-0.705,0.828-1.062,1.232c-1.429,1.607-2.906,3.062-4.402,4.422c-6.01,5.387-12.279,9.278-18.552,12.703c-12.572,6.744-25.304,11.527-38.062,15.805c-25.504,8.427-51.271,14.381-76.67,20.248c-6.311,1.47-12.683,2.936-18.639,4.509c-6.147,1.658-12.302,3.436-18.4,5.319c-12.207,3.771-24.265,8.006-36.158,12.656c-47.543,18.64-92.307,44.606-131.525,77.744c-19.625,16.531-37.863,34.815-54.357,54.676c-8.252,9.926-16.035,20.266-23.34,30.969c-3.648,5.355-7.133,10.826-10.465,16.397c-3.344,5.562-6.527,11.245-9.358,17.087L860.21,994.707z');
+
+ // Move text on a path
+ var textPath = document.getElementById('textPath');
+ var text = '';
+ for (var i = 0; i < 25; i++)
+ text += ('text on a path! ' + t + ' ');
+ textPath.textContent = text;
+
+ // force layout
+ document.getElementById('svg').offsetTop;
+
+ t++;
+ }, 1, 20, function() {
+ var wrapper = document.getElementById('wrapper');
+ if (wrapper)
+ wrapper.parentNode.removeChild(wrapper);
+ });
+ </script>
+ </body>
+</html>
diff --git a/PerformanceTests/SVG/SvgHitTesting.html b/PerformanceTests/SVG/SvgHitTesting.html
new file mode 100644
index 000000000..cc5885966
--- /dev/null
+++ b/PerformanceTests/SVG/SvgHitTesting.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <style>
+ body {
+ margin: 0px;
+ }
+ #container {
+ background-color: #eee;
+ width: 600px;
+ height: 400px;
+ }
+ #title {
+ position: absolute;
+ top: 400px;
+ left: 0px;
+ font-family: sans-serif;
+ font-size: 30px;
+ text-align: right;
+ width: 600px;
+ }
+ </style>
+ </head>
+ <body>
+ <div id="wrapper">
+ <div id="title">SVG Hit Testing</div>
+ <div id="container">
+ <svg id="svg" width="600" height="400" xmlns="http://www.w3.org/2000/svg" version="1.0">
+ <g id="shapes1" transform="translate(-60, -20)">
+ <circle cx="100" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="all"/>
+ <circle cx="300" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="visibleFill" />
+ <circle cx="500" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="visibleStroke" />
+ <ellipse cx="100" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="all" />
+ <ellipse cx="300" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="visibleFill" />
+ <ellipse cx="500" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="visibleStroke" />
+ <rect x="50" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="all" />
+ <rect x="250" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="visibleFill" />
+ <rect x="450" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="visibleStroke" />
+ <path d="M50,300 C75,200 75,200 100,300 S125,400 150,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="all" />
+ <path d="M250,300 C275,200 275,200 300,300 S325,400 350,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="visibleFill" />
+ <path d="M450,300 C475,200 475,200 500,300 S525,400 550,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="visibleStroke" />
+ </g>
+ <g id="shapes2" transform="translate(-30, -10)">
+ <circle cx="100" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="all"/>
+ <circle cx="300" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="visibleFill" />
+ <circle cx="500" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="visibleStroke" />
+ <ellipse cx="100" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="all" />
+ <ellipse cx="300" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="visibleFill" />
+ <ellipse cx="500" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="visibleStroke" />
+ <rect x="50" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="all" />
+ <rect x="250" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="visibleFill" />
+ <rect x="450" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="visibleStroke" />
+ <path d="M50,300 C75,200 75,200 100,300 S125,400 150,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="all" />
+ <path d="M250,300 C275,200 275,200 300,300 S325,400 350,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="visibleFill" />
+ <path d="M450,300 C475,200 475,200 500,300 S525,400 550,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="visibleStroke" />
+ </g>
+ <g id="shapes3" transform="translate(0, 0)">
+ <circle cx="100" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="all"/>
+ <circle cx="300" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="visibleFill" />
+ <circle cx="500" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="visibleStroke" />
+ <ellipse cx="100" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="all" />
+ <ellipse cx="300" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="visibleFill" />
+ <ellipse cx="500" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="visibleStroke" />
+ <rect x="50" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="all" />
+ <rect x="250" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="visibleFill" />
+ <rect x="450" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="visibleStroke" />
+ <path d="M50,300 C75,200 75,200 100,300 S125,400 150,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="all" />
+ <path d="M250,300 C275,200 275,200 300,300 S325,400 350,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="visibleFill" />
+ <path d="M450,300 C475,200 475,200 500,300 S525,400 550,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="visibleStroke" />
+ </g>
+ <g id="shapes4" transform="translate(30, 10)">
+ <circle cx="100" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="all"/>
+ <circle cx="300" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="visibleFill" />
+ <circle cx="500" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="visibleStroke" />
+ <ellipse cx="100" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="all" />
+ <ellipse cx="300" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="visibleFill" />
+ <ellipse cx="500" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="visibleStroke" />
+ <rect x="50" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="all" />
+ <rect x="250" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="visibleFill" />
+ <rect x="450" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="visibleStroke" />
+ <path d="M50,300 C75,200 75,200 100,300 S125,400 150,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="all" />
+ <path d="M250,300 C275,200 275,200 300,300 S325,400 350,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="visibleFill" />
+ <path d="M450,300 C475,200 475,200 500,300 S525,400 550,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="visibleStroke" />
+ </g>
+ <g id="shapes5" transform="translate(60, 20)">
+ <circle cx="100" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="all"/>
+ <circle cx="300" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="visibleFill" />
+ <circle cx="500" cy="75" r="40" fill="#feae00" stroke="#f31900" stroke-width="15" pointer-events="visibleStroke" />
+ <ellipse cx="100" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="all" />
+ <ellipse cx="300" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="visibleFill" />
+ <ellipse cx="500" cy="150" rx="50" ry="40" fill="#d4ecfb" stroke="#3364c2" stroke-width="15" pointer-events="visibleStroke" />
+ <rect x="50" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="all" />
+ <rect x="250" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="visibleFill" />
+ <rect x="450" y="175" width="100" height="100" fill="#f7d72b" stroke="#db8409" stroke-width="15" pointer-events="visibleStroke" />
+ <path d="M50,300 C75,200 75,200 100,300 S125,400 150,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="all" />
+ <path d="M250,300 C275,200 275,200 300,300 S325,400 350,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="visibleFill" />
+ <path d="M450,300 C475,200 475,200 500,300 S525,400 550,300" fill="#e0fb00" stroke="#44c400" stroke-width="15" pointer-events="visibleStroke" />
+ </g>
+ </svg>
+ </div>
+ </div>
+ <script src="../resources/runner.js"></script>
+ <script>
+ PerfTestRunner.run(function() {
+ for (var i = 0; i < 6000; i++) {
+ var x = 600 * Math.random();
+ var y = 400 * Math.random();
+ var el = document.elementFromPoint(x, y);
+ }
+ }, 1, 10, function() {
+ var wrapper = document.getElementById('wrapper');
+ if (wrapper)
+ wrapper.parentNode.removeChild(wrapper);
+ });
+ </script>
+ </body>
+</html>
diff --git a/PerformanceTests/Skipped b/PerformanceTests/Skipped
new file mode 100644
index 000000000..f5b5937e6
--- /dev/null
+++ b/PerformanceTests/Skipped
@@ -0,0 +1,54 @@
+# Not enabled by default on some ports
+Mutation
+
+# Unstable SVG page loading tests
+PageLoad/svg/files/33041-Samurai.svg
+
+# Takes too long to load
+PageLoad/svg/files/Sierpinski_carpet_6.svg
+
+PageLoad/svg/files/az-lizard_benji_park_01.svg
+PageLoad/svg/files/france.svg
+PageLoad/svg/files/francobollo_gnome_ezechi_02.svg
+PageLoad/svg/files/gearflowers.svg
+PageLoad/svg/files/hereGear4.svg
+
+# Takes 22s on MacBookPro
+PageLoad/svg/files/mtsthelens.svg
+
+# Do not conform to WebKit or Chromium perf test styles
+SunSpider
+XSSAuditor
+
+# We have pure JS tests separately outside Dromaeo.
+Dromaeo/sunspider-3d-morph.html
+Dromaeo/sunspider-3d-raytrace.html
+Dromaeo/sunspider-access-binary-trees.html
+Dromaeo/sunspider-access-fannkuch.html
+Dromaeo/sunspider-access-nbody.html
+Dromaeo/sunspider-access-nsieve.html
+Dromaeo/sunspider-bitops-3bit-bits-in-byte.html
+Dromaeo/sunspider-bitops-bits-in-byte.html
+Dromaeo/sunspider-bitops-bitwise-and.html
+Dromaeo/sunspider-bitops-nsieve-bits.html
+Dromaeo/sunspider-controlflow-recursive.html
+Dromaeo/sunspider-crypto-aes.html
+Dromaeo/sunspider-date-format-tofte.html
+Dromaeo/sunspider-date-format-xparb.html
+Dromaeo/sunspider-math-cordic.html
+Dromaeo/sunspider-math-partial-sums.html
+Dromaeo/sunspider-math-spectral-norm.html
+Dromaeo/sunspider-regexp-dna.html
+Dromaeo/sunspider-string-fasta.html
+Dromaeo/sunspider-string-tagcloud.html
+Dromaeo/sunspider-string-unpack-code.html
+Dromaeo/sunspider-string-validate-input.html
+Dromaeo/v8-crypto.html
+Dromaeo/v8-deltablue.html
+Dromaeo/v8-earley-boyer.html
+Dromaeo/v8-raytrace.html
+Dromaeo/v8-richards.html
+
+# Bug 77024 - Web Inspector: tests in PerformanceTests/inspector/ are timing out
+inspector
+
diff --git a/PerformanceTests/SunSpider/ChangeLog b/PerformanceTests/SunSpider/ChangeLog
new file mode 100644
index 000000000..5350e839a
--- /dev/null
+++ b/PerformanceTests/SunSpider/ChangeLog
@@ -0,0 +1,1208 @@
+2012-08-02 Filip Pizlo <fpizlo@apple.com>
+
+ Unreviewed, revert debugging stuff I landed in http://trac.webkit.org/changeset/124557
+ by accident.
+
+ * tests/v8-v6/v8-crypto.js:
+ (am1):
+ (am2):
+ (am3):
+ (am4):
+ (bnpCopyTo):
+ (bnpFromString):
+ (bnpClamp):
+
+2012-03-11 Maciej Stachowiak <mjs@apple.com>
+
+ Add --instruments option to sunspider to profile with Instruments
+ https://bugs.webkit.org/show_bug.cgi?id=80783
+
+ Reviewed by Filip Pizlo.
+
+ * resources/TimeProfile20us.tracetemplate: Added.
+ * sunspider:
+ (runTestsOnce):
+
+2011-11-15 Andy Wingo <wingo@igalia.com>
+
+ Extend sunspider driver to be able to run kraken
+ https://bugs.webkit.org/show_bug.cgi?id=71799
+
+ Reviewed by Filip Pizlo.
+
+ * resources/sunspider-standalone-driver.js: Try to load a -data
+ file. If that succeeds, we have a kraken-like test, so we time
+ the test using `load'. Otherwise fall back to using `run'.
+
+2011-08-11 Mark Rowe <mrowe@apple.com>
+
+ Fix sunspider-compare-results to default to the same suite version as the sunspider script.
+
+ Rubber-stamped by Maciej Stachowiak.
+
+ * sunspider-compare-results:
+
+2011-07-02 Maciej Stachowiak <mjs@apple.com>
+
+ Update SunSpider versioning to 1.0
+ https://bugs.webkit.org/show_bug.cgi?id=63870
+
+ Reviewed by Dan Bernstein.
+
+ * hosted/sunspider.html:
+ * hosted/versions.html:
+ * resources/driver-TEMPLATE.html:
+ * resources/results-TEMPLATE.html:
+ * sunspider:
+
+2011-07-02 Maciej Stachowiak <mjs@apple.com>
+
+ Sunspider 0.9.1 harness doesn't actually close() its test documents
+ https://bugs.webkit.org/show_bug.cgi?id=47045
+
+ Reviewed by Daniel Bates.
+
+ * hosted/versions.html:
+ * resources/driver-TEMPLATE.html:
+
+2011-07-02 Maciej Stachowiak <mjs@apple.com>
+
+ Not Reviewed.
+
+ Fix obviou typo in previous commit.
+
+ * tests/sunspider-1.0/bitops-bitwise-and.js:
+
+2011-07-02 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ SunSpider: all four bitops benchmarks can be replaced with NOP
+ https://bugs.webkit.org/show_bug.cgi?id=38446
+
+ * tests/sunspider-1.0/bitops-3bit-bits-in-byte.js:
+ (TimeFunc): Save the result.
+ * tests/sunspider-1.0/bitops-bits-in-byte.js:
+ (TimeFunc): Save the result.
+ * tests/sunspider-1.0/bitops-bitwise-and.js: More explicitly
+ save the results.
+ * tests/sunspider-1.0/bitops-nsieve-bits.js:
+ (sieve): Save the result.
+
+2011-07-02 Maciej Stachowiak <mjs@apple.com>
+
+ SunSpider: string-validate-input.js uses an undeclared variable named 'name', which is a DOM API
+ https://bugs.webkit.org/show_bug.cgi?id=60937
+
+ Reviewed by Dan Bernstein.
+
+ * tests/sunspider-1.0/string-validate-input.js:
+ (doTest): Rename the variable to username
+
+2011-07-02 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ SunSpider: The main function of math-cordic is dead code
+ https://bugs.webkit.org/show_bug.cgi?id=63863
+
+ Try to prevent math-cordic from being eliminated as dead code or
+ compiled down to a constant.
+
+ * tests/sunspider-1.0/math-cordic.js:
+ (cordicsincos):
+ (cordic):
+
+2011-06-30 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Adam Barth.
+
+ Create sunspider-1.0 directory in preparation for fixing a bunch of bugs
+ https://bugs.webkit.org/show_bug.cgi?id=63782
+
+ * make-hosted: Learn about the new directory.
+ * tests/sunspider-1.0: Copied from PerformanceTests/SunSpider/tests/sunspider-0.9.1.
+
+2010-11-29 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Improved accuracy of command-line SunSpider.
+
+ * resources/sunspider-standalone-driver.js: Use the returned number of
+ elapsed milliseconds from "run" and "checkSyntax" instead of measuring
+ ourselves, for slightly more accurate numbers.
+
+2010-09-16 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Mark Rowe.
+ https://bugs.webkit.org/show_bug.cgi?id=45924
+
+ Modify the SunSpider harness to allow a path to be passed to the --suite
+ argument, supress the normal prepend-"tests/" behaviour for suite names
+ containing a '/'.
+
+ Also wrap the code in an anonymous function to move variables out of global
+ scope (currently the harness cannot handle running tests the overwrite the
+ variable 'j').
+
+ * resources/sunspider-standalone-driver.js:
+ * sunspider:
+
+2010-08-27 Michael Saboff <msaboff@apple.com>
+
+ Reviewed by Stephanie Lewis.
+
+ Added version 5 and version 6 of V8 tests with modifications similar
+ to the version 4 tests so they'll work with the SunSpider test harness.
+ Note that these files are external source and therefore don't conform
+ to WebKit coding standards.
+ https://bugs.webkit.org/show_bug.cgi?id=44638
+
+ * tests/v8-v5: Added.
+ * tests/v8-v5/LIST: Added.
+ * tests/v8-v5/v8-crypto.js: Added.
+ * tests/v8-v5/v8-deltablue.js: Added.
+ * tests/v8-v5/v8-earley-boyer.js: Added.
+ * tests/v8-v5/v8-raytrace.js: Added.
+ * tests/v8-v5/v8-regexp.js: Added.
+ * tests/v8-v5/v8-richards.js: Added.
+ * tests/v8-v5/v8-splay.js: Added.
+ * tests/v8-v6: Added.
+ * tests/v8-v6/LIST: Added.
+ * tests/v8-v6/v8-crypto.js: Added.
+ * tests/v8-v6/v8-deltablue.js: Added.
+ * tests/v8-v6/v8-earley-boyer.js: Added.
+ * tests/v8-v6/v8-raytrace.js: Added.
+ * tests/v8-v6/v8-regexp.js: Added.
+ * tests/v8-v6/v8-richards.js: Added.
+ * tests/v8-v6/v8-splay.js: Added.
+
+2010-07-15 Stephanie Lewis <slewis@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ http://bugs.webkit.org/show_bug.cgi?id=42406
+ Output location of results file.
+
+ * sunspider:
+
+2010-05-17 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Browser-hosted version of SunSpider runs tests twice as many times as advertised
+ https://bugs.webkit.org/show_bug.cgi?id=39201
+
+ * make-hosted: Make sure to reset test list after every test suite.
+
+2010-05-07 Adam Roben <aroben@apple.com>
+
+ Fix typo in sunspider-compare-results.js that caused incorrect
+ two-sample t statistics to be computed
+
+ Fixes <http://webkit.org/b/38768> SunSpider computes incorrect
+ two-sample t statistics
+
+ Reviewed by Darin Adler.
+
+ * resources/sunspider-compare-results.js:
+ (sunspiderCompareResults.resultLine): Fixed the calculation of the t
+ variable to match the definition of a two-sample t statistic. Looks
+ like this was just a simple typo.
+
+2010-04-05 Darin Adler <darin@apple.com>
+
+ Updated the ignore property for changes to the contents here.
+
+ * .: Modified property svn:ignore.
+
+2010-02-20 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Adam Barth.
+
+ Add sunspider-0.9.1 to the site in preparation for announcing it.
+ https://bugs.webkit.org/show_bug.cgi?id=35206
+
+ * hosted/sunspider.css: Remove tabs, which I noticed where present while
+ copying to the WebKitSite directory.
+
+2010-01-11 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Sunspider parse-only tests don't run
+ https://bugs.webkit.org/show_bug.cgi?id=33489
+
+ Fix parse-only test list
+
+ * tests/parse-only/LIST:
+
+2009-12-15 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ Make SunSpider version more prominent in the title
+ https://bugs.webkit.org/show_bug.cgi?id=32574
+
+ * hosted/sunspider.html:
+ * hosted/versions.html:
+ * resources/driver-TEMPLATE.html:
+ * resources/results-TEMPLATE.html:
+
+2009-12-15 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Make SunSpider refuse to compare results across content versions
+ https://bugs.webkit.org/show_bug.cgi?id=32573
+
+ The results URL now includes a version indicator, and compare mode
+ will refuse to compare between versions.
+
+ * resources/driver-TEMPLATE.html:
+ * resources/results-TEMPLATE.html:
+
+2009-12-14 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Some Browser-hosted SunSpider files are not valid HTML5
+ https://bugs.webkit.org/show_bug.cgi?id=32536
+
+ Made various fixes to validate as HTML5 with no warnings (mainly removing bogus
+ close tags and adding a meta charset declaration).
+
+ * hosted/sunspider.html:
+ * hosted/versions.html:
+ * resources/TEMPLATE.html:
+ * resources/driver-TEMPLATE.html:
+ * resources/results-TEMPLATE.html:
+
+2009-12-14 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Eric Seidel.
+
+ Make sunspider-0.9.1 the default content set (both command-line and hosted)
+ https://bugs.webkit.org/show_bug.cgi?id=32537
+
+ * hosted/sunspider.html: Change default suite link.
+ * sunspider: Change default suite.
+ * sunspider-compare-results: Likewise.
+
+2009-12-14 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ in-browser SunSpider suffers excessive penalty under power management
+ https://bugs.webkit.org/show_bug.cgi?id=32505
+
+ I have made a few changes to address this:
+
+ 1) Change how browser-hosted SunSpider loads tests - preload the content and write it in with
+ document.write to reduce triggering of progress UI.
+ 2) Reduce time between tests to 10ms from 500ms, so that power management doesn't keep the CPU
+ stepped all the way down the whole time.
+ 3) Run the test cycle an extra time for warmup before the runs that count.
+
+ * hosted/sunspider-record-result.js: Removed.
+ * make-hosted:
+ * resources/TEMPLATE.html:
+ * resources/driver-TEMPLATE.html:
+
+2009-12-13 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ SunSpider/tests/string-base64.js does not compute a valid base64 encoded string
+ https://bugs.webkit.org/show_bug.cgi?id=16806
+
+ Based on a patch by Eric Seidel.
+
+ Fix the base64 computation to actually compute correct results. The impact on runtime of
+ the test is pretty small, but noticeable for some browsers. But at least it's not
+ doing a wrong and meaningless computation any more.
+
+ * tests/sunspider-0.9.1/string-base64.js:
+ ():
+ (base64ToString):
+
+2009-12-13 Maciej Stachowiak <mjs@apple.com>
+
+ Fixing commit error...
+
+ I accidentally committed my last patch in a form that broke Web-hosted SunSpider. Fixing.
+
+ * resources/driver-TEMPLATE.html:
+
+2009-12-13 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Use JSON.parse instead of eval for Web-hosted SunSpider results processing
+ https://bugs.webkit.org/show_bug.cgi?id=32490
+
+ * hosted/json2.js: Added. Incorporated from json.org
+ * resources/driver-TEMPLATE.html: Fix an HTML validation bug I noticed.
+ * resources/results-TEMPLATE.html: Use JSON.parse instead of eval to process
+ results.
+
+2009-12-12 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Enable Web-hosted version of SunSpider to handle multiple versions
+ https://bugs.webkit.org/show_bug.cgi?id=32478
+
+ * make-hosted: Now generate the hosted version to be able to run both the
+ 0.9 and the 0.9.1 test suites.
+ * hosted: Modified property svn:ignore.
+ * hosted/sunspider-driver.html: Removed.
+ * hosted/sunspider-results.html: Removed.
+ * hosted/sunspider.html:
+ * hosted/versions.html: Added.
+ * resources/TEMPLATE.html:
+ * resources/driver-TEMPLATE.html: Copied from hosted/sunspider-driver.html.
+ * resources/driver-TEMPLATE.html: Copied from hosted/sunspider-results.html.
+
+2009-12-12 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Give command-line sunspider the ability to handle multiple suites and versions
+ https://bugs.webkit.org/show_bug.cgi?id=32477
+
+ Each suite/version's set of tests are now in a separate subdirectory of tests/, with a file named LIST
+ enumerating the tests. Current suites are:
+
+ sunspider-0.9 - riginal SunSpider content
+ sunspider-0.9.1 - SunSpider suite with a few tests fixed (and a few more to come)
+ ubench - "ubench" microbenchmark suite
+ v8-v4 - version 4 of the v8 benchmark
+ parse-only - some parser tests
+
+ Sunspider can now be run with the --suite= parameter to select a
+ suite. The default is --suite=sunspider-0.9.
+
+ * .: Modified property svn:ignore to ignore new results directories.
+ * make-hosted: Generate based on sunspider-0.9 suite.
+ * resources/TEMPLATE.html: Fix an HTML compliance problem.
+ * resources/sunspider-standalone-driver.js: Become aware of suite names.
+ * sunspider: Modified to handle multiple suites as described above.
+ * sunspider-compare-results: ditto
+ * tests/LIST: Moved to tests/sunspider-0.9/ and tests/sunspider-0.9.1/
+ * tests/LIST-PARSE-ONLY: Moved to parse-only/LIST
+ * tests/LIST-UBENCH: Removed.
+ * tests/LIST-V8: Removed.
+ * tests/3d-cube.js: Moved to tests/sunspider-0.9 and tests/sunspider-0.9.1
+ * tests/3d-morph.js: ditto
+ * tests/3d-raytrace.js: ditto
+ * tests/access-binary-trees.js: ditto
+ * tests/access-fannkuch.js: ditto
+ * tests/access-nbody.js: ditto
+ * tests/access-nsieve.js: ditto
+ * tests/bitops-3bit-bits-in-byte.js: ditto
+ * tests/bitops-bits-in-byte.js: ditto
+ * tests/bitops-bitwise-and.js: ditto
+ * tests/bitops-nsieve-bits.js: ditto
+ * tests/controlflow-recursive.js: ditto
+ * tests/crypto-aes.js: ditto
+ * tests/crypto-md5.js: ditto
+ * tests/crypto-sha1.js: ditto
+ * tests/date-format-tofte.js: ditto
+ * tests/date-format-xparb.js: ditto
+ * tests/math-cordic.js: ditto
+ * tests/math-partial-sums.js: ditto
+ * tests/math-spectral-norm.js: ditto
+ * tests/regexp-dna.js: ditto
+ * tests/string-base64.js: ditto
+ * tests/string-fasta.js: ditto
+ * tests/string-tagcloud.js: ditto
+ * tests/string-unpack-code.js: ditto
+ * tests/string-validate-input.js: ditto
+ * tests/sunspider-0.9/: Added
+ * tests/sunspider-0.9/*.js: Moved from one level up
+ * tests/sunspider-0.9.1: Added.
+ * tests/sunspider-0.9.1/*.js: Moved from one level up.
+ * tests/v8-crypto.js: Moved to v8-v4/ directory.
+ * tests/v8-deltablue.js: ditto
+ * tests/v8-earley-boyer.js: ditto
+ * tests/v8-raytrace.js: ditto
+ * tests/v8-regexp.js: ditto
+ * tests/v8-richards.js: ditto
+ * tests/v8-splay.js: ditto
+ * tests/v8-v4: Added.
+
+2009-09-30 Csaba Osztrogonac <oszi@inf.u-szeged.hu>
+
+ Reviewed by Darin Adler.
+
+ Platform specific null device replaced with a platform independent.
+ https://bugs.webkit.org/show_bug.cgi?id=29544
+
+ * sunspider: Using File::Spec->devnull() instead of /dev/null and NUL.
+
+2009-09-21 Csaba Osztrogonac <oszi@inf.u-szeged.hu>
+
+ Reviewed by Maciej Stachowiak.
+
+ [Qt] Make sunspider script work on Windows platform.
+ https://bugs.webkit.org/show_bug.cgi?id=29544
+
+ * sunspider:
+ Using platform specific null device instead of /dev/null.
+
+2009-06-19 Adam Treat <adam.treat@torchmobile.com>
+
+ Reviewed by Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=26540
+ Currently the SunSpider test driver lacks an option to run a test suite that
+ will test JavaScriptCore parsing performance only. This patch adds just such
+ a test suite and option to SunSpider as well as the jsc test shell. I've included
+ three large javascript source files found in the wild: jquery, mootools and prototype.
+ Combined with the concatenation of all three, these form a new testsuite to measure
+ and test pure JavaScriptCore parsing performance.
+
+ * resources/sunspider-standalone-driver.js:
+ Load the js with parse-only flag if it is part of the parse-only suite.
+ * sunspider:
+ Add the parse-only suite to the list of options.
+ * sunspider-compare-results:
+ Add the parse-only suite to the list of options.
+ * tests/LIST-PARSE-ONLY: Added.
+ * tests/parse-only/concat-jquery-mootools-prototype.js: Added.
+ A very large concatenation of the scripts found below. This js takes ~30ms to parse on my machine.
+ * tests/parse-only/jquery-1.3.2.js: Added.
+ Latest version from jquery.com.
+ * tests/parse-only/mootools-1.2.2-core-nc.js: Added.
+ Latest version from mootools.net.
+ * tests/parse-only/prototype-1.6.0.3.js: Added.
+ Latest version from prototypejs.org.
+
+2009-06-13 Steve Falkenburg <sfalken@apple.com>
+
+ Update V8 benchmark to version 4.
+
+ Reviewed by Cameron Zwarich.
+
+ * tests/LIST-V8:
+ * tests/v8-crypto.js:
+ * tests/v8-deltablue.js:
+ * tests/v8-earley-boyer.js:
+ * tests/v8-raytrace.js:
+ * tests/v8-regexp.js: Added.
+ * tests/v8-richards.js:
+ * tests/v8-splay.js: Added.
+
+2009-05-26 Olivier DOLE <odole@pleyo.com>
+
+ Reviewed by Maciej.
+
+ Store sunspider test suite results in a specific directory for each
+ different type of benchmark (sunspider, V8 or ubench).
+
+ * sunspider:
+ * sunspider-compare-results:
+
+2009-05-12 Steve Falkenburg <sfalken@apple.com>
+
+ Build fix.
+
+ * SunSpider.make:
+
+2009-05-11 Steve Falkenburg <sfalken@apple.com>
+
+ Include SunSpider tests in production builds.
+
+ Reviewed by Adam Roben.
+
+ * SunSpider.make: Added.
+ * xcopy.excludes: Added.
+
+2009-03-04 Oliver Hunt <oliver@apple.com>
+
+ Added a few more tests to ubench
+
+ RS=Gavin Barraclough
+
+ Adding a couple of test to cover too few and too many arguments. This
+ is needed to prevent regressions in all call paths from my current refactoring.
+
+ * tests/LIST-UBENCH:
+ * tests/ubench/function-correct-args.js: Added.
+ (f):
+ * tests/ubench/function-excess-args.js: Added.
+ (f):
+
+2008-10-30 Zoltan Horvath <Horvath.Zoltan.6@stud.u-szeged.hu>
+
+ Fix a bug where when V8's or UBENCH's test suite list file is missing
+ the error message is suggesting that SunSpider's list file is missing.
+
+ Reviewed by Sam Weinig.
+
+ * sunspider:
+ (loadTestsList): Fix the error message to use the right list name.
+
+2008-10-07 David Hyatt <hyatt@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=18989
+
+ Remove global substitution from SunSpider regexp test, since only Firefox was honoring it and
+ we want all browsers to be doing the same thing on the test.
+
+ Reviewed by Maciej
+
+ * tests/regexp-dna.js:
+
+2008-09-09 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Rubber-stamped by Maciej Stachowiak.
+
+ The bleeding edge branch of V8 now supports passing fileanmes after
+ '-f', so the SunSpider script should be changed to do this again.
+ This allows all 3 major JavaScript engines to be used with the
+ unmodified SunSpider script.
+
+ * sunspider:
+
+2008-09-04 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Maciej Stachowiak.
+
+ Add a '--args' option to SunSpider, so that we can pass '-j' to TraceMonkey
+ and '--expose-gc' to V8. Also, rename the '--v8' option to '--v8-suite' and
+ correct the punctuation in its documentation.
+
+ * sunspider:
+
+2008-09-04 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 20616: Incorporate V8 benchmarks in testing
+ <https://bugs.webkit.org/show_bug.cgi?id=20616>
+
+ This is a first attempt at running the V8 benchmarks within SunSpider,
+ with the --v8 option. The number of iterations is fixed for each
+ benchmark, and was chosen to make each of the benchmarks run between
+ 500 ms and 600 ms in V8 on my machine, a 2.16 GHz MacBook Pro.
+
+ * sunspider:
+ * tests/LIST-V8: Added.
+ * tests/v8-crypto.js: Added.
+ * tests/v8-deltablue.js: Added.
+ * tests/v8-earley-boyer.js: Added.
+ * tests/v8-raytrace.js: Added.
+ * tests/v8-richards.js: Added.
+
+2008-09-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Not reviewed.
+
+ Remove a local change that was accidentally committed in r36034.
+
+ * resources/sunspider-standalone-driver.js:
+
+2008-09-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Rubber-stamped by Oliver Hunt.
+
+ Make SunSpider work with JavaScript shells that don't take filenames
+ after a '-f' argument.
+
+ * sunspider:
+
+2008-06-07 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Timothy.
+
+ Remove the --squirrelfish option from SunSpider, as it is no longer needed.
+
+ * sunspider:
+ * tests/LIST-SQUIRRELFISH: Removed.
+
+2008-06-03 Alexey Proskuryakov <ap@webkit.org>
+
+ Rubber-stamped by Mark Rowe.
+
+ Roll out r31215 - with Mac OS X 10.5.3, there is no need to pause update daemon any more.
+
+ * sunspider:
+
+2008-04-15 Maciej Stachowiak <mjs@apple.com>
+
+ Rubber stamped by Oliver.
+
+ - add newly working tests to squirrelfish list
+
+ * tests/LIST-SQUIRRELFISH: Add 3d-raytrace and string-unpack-code
+
+2008-04-14 Maciej Stachowiak <mjs@apple.com>
+
+ Rubber stamped by Oliver.
+
+ - move ubench tests properly.
+
+ * tests/ubench: Added.
+ * tests/ubench/function-closure.js: Added.
+ * tests/ubench/function-empty.js: Added.
+ * tests/ubench/function-missing-args.js: Added.
+ * tests/ubench/function-sum.js: Added.
+ * tests/ubench/loop-empty-resolve.js: Added.
+ * tests/ubench/loop-empty.js: Added.
+ * tests/ubench/loop-sum.js: Added.
+
+2008-04-14 Maciej Stachowiak <mjs@apple.com>
+
+ Rubber stamped by Oliver.
+
+ * sunspider: Don't force --runs=1 in squirrelfish mode any more.
+
+2008-04-14 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver.
+
+ - make --squirrelfish mode use the real harness, but a reduced set of tests
+
+ Also add a new ubench mode which runs the older squirrelfish microbenchmarks.
+
+ * sunspider:
+ * tests/LIST-SQUIRRELFISH:
+ * tests/LIST-UBENCH: Added.
+ * tests/squirrelfish: Moved to tests/ubench
+
+2008-04-14 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Removed an unused test.
+
+ * tests/squirrelfish/loop-resolve.js: Removed.
+
+2008-04-10 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver.
+
+ Add newly runnable tests to --squirrelfish mode.
+
+ * tests/LIST-SQUIRRELFISH:
+
+2008-04-06 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ A little more love for --squirrelfish mode:
+
+ Fixed a misplaced sort. Results properly sort now.
+
+ Added a test list just for squirrelfish, and updated it to include
+ all currently passing SunSpider tests.
+
+ Fixed the pruning regexp to match 3d-morph.js.
+
+ * sunspider:
+
+2008-03-26 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ --squirrelfish mode: pared down tests for squirrelfish to chew on.
+
+ * sunspider:
+ * tests/LIST:
+ * tests/squirrelfish: Added.
+ * tests/squirrelfish/function-closure.js: Added.
+ * tests/squirrelfish/function-empty.js: Added.
+ * tests/squirrelfish/function-missing-args.js: Added.
+ * tests/squirrelfish/function-sum.js: Added.
+ * tests/squirrelfish/loop-empty-resolve.js: Added.
+ * tests/squirrelfish/loop-empty.js: Added.
+ * tests/squirrelfish/loop-resolve.js: Added.
+ * tests/squirrelfish/loop-sum.js: Added.
+
+2008-03-21 Alexey Proskuryakov <ap@webkit.org>
+
+ Reviewed by Geoff.
+
+ * sunspider: Pause update daemon on Darwin to make results reliable
+ again (workaround for <rdar://problem/5811127>).
+
+2008-02-07 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Sam.
+
+ * sunspider: add an error message when ./tests/LIST is not found
+
+2007-12-29 Alp Toker <alp@atoker.com>
+
+ Fix typo.
+
+ * hosted/sunspider.html:
+
+2007-12-29 Alp Toker <alp@atoker.com>
+
+ Reviewed by Maciej.
+
+ Provide the current URL in the SunSpider results page. Useful for
+ copying benchmark results out of browsers without a location bar or
+ where the location bar can't handle long URLs.
+
+ * hosted/sunspider-results.html:
+
+2007-12-20 Eric Seidel <eric@webkit.org>
+
+ Reviewed by mjs.
+
+ * sunspider: increase default number of runs for more accurate numbers
+
+2007-12-18 Mark Rowe <mrowe@apple.com>
+
+ Fix typo.
+
+ * hosted/sunspider.html:
+
+2007-12-18 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Eric.
+
+ - give an extra digit of precision for small differences.
+
+ * resources/sunspider-compare-results.js:
+
+2007-12-17 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Eric.
+
+ - work around IE layout bugs
+
+ * hosted/sunspider.css:
+
+2007-12-17 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Mark.
+
+ - fix compare feature
+
+ * hosted/sunspider-results.html:
+
+2007-12-17 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Mark.
+
+ - Change the format of the output URL to be shorter, to meet IE constraints
+
+ * hosted/sunspider-driver.html:
+ * hosted/sunspider-results.html:
+
+2007-12-13 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver.
+
+ - Add some explanatory test and a dumb logo to SunSpider web hosted version
+
+ * hosted/sunspider-driver.html:
+ * hosted/sunspider-results.html:
+ * hosted/sunspider.css:
+ * hosted/sunspider.html:
+
+2007-12-13 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver.
+
+ - Make the web-hosted version of SunSpider look a little bit less drab.
+
+ * hosted/sunspider-driver.html:
+ * hosted/sunspider-results.html:
+ * hosted/sunspider.css: Added.
+ * hosted/sunspider.html:
+ * resources/TEMPLATE.html:
+
+2007-12-12 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Sam.
+
+ - Change sunspider-compare-results output from showing "% faster" values to "x as fast" values.
+
+ A sample of what new-style results would look like:
+
+ TEST COMPARISON FROM TO DETAILS
+ ...
+ ** TOTAL **: 1.41x as fast 6613.6ms +/- 0.1% 4703.0ms +/- 0.1% significant
+ ...
+ 3bit-bits-in-byte: *1.36x as slow* 88.8ms +/- 0.6% 121.1ms +/- 0.6% significant
+
+ * resources/sunspider-compare-results.js:
+
+2007-11-14 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Sam.
+
+ * sunspider: add --shark-cache for L2 Cache Miss profiling
+
+2007-11-09 Alexey Proskuryakov <ap@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ http://bugs.webkit.org/show_bug.cgi?id=15925
+ SunSpider should check for Shark being installed
+
+ * sunspider: Explicitly test that shark command line tool is installed.
+
+2007-11-04 Darin Adler <darin@apple.com>
+
+ * hosted/sunspider.html: Tweaked formatting a bit.
+
+2007-11-03 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ - Add compare mode and a description of the benchmark to the hosted version.
+
+ * hosted/sunspider-results.html: Add compare mode - you can just paste in another results URL.
+ * hosted/sunspider.html: Added intro text.
+ * make-hosted: Copy new file.
+ * resources/sunspider-compare-results.js: Made more reusable by putting the implementation in
+ a function.
+ * resources/sunspider-standalone-compare.js: Added. Calls the function in the way standalone mode
+ expects.
+ * sunspider-compare-results: Use sunspider-standalone-compare.js.
+
+2007-11-02 Darin Adler <darin@apple.com>
+
+ * sunspider: Changed "--base" to "--set-baseline".
+
+2007-11-02 Darin Adler <darin@apple.com>
+
+ Reviewed by Maciej.
+
+ * sunspider: Added a "--base" option that records the current test as a baseline.
+ Moved the code to find the newest .mshark file into a function (since I needed to use
+ it in the other script and I prefer to copy/paste a function).
+
+ * sunspider-compare-results: Added logic to compare the baseline with the last
+ run when you don't pass any parameters.
+
+2007-10-29 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Eric.
+
+ - Added list of ECMAScript3 features that SunSpider does not cover currently.
+
+ * UNCOVERED: Added.
+
+2007-10-29 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver.
+
+ - Give better error messages when sunspider-compare-results fails
+
+ * sunspider-compare-results:
+
+2007-10-29 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ - fix Date tests to work in command-line SpiderMonkey
+
+ * tests/date-format-tofte.js:
+ * tests/date-format-xparb.js:
+
+2007-10-29 Darin Adler <darin@apple.com>
+
+ Reviewed by Maciej.
+
+ * sunspider: Added --shark20 option, to run Shark at its highest sample
+ resolution instead of its default.
+
+2007-10-28 Adam Roben <aroben@apple.com>
+
+ Fix SunSpider on Windows
+
+ Reviewed by Eric.
+
+ * sunspider: Don't use colons in filenames.
+
+2007-10-28 Darin Adler <darin@apple.com>
+
+ Reviewed by Adam.
+
+ * resources/sunspider-analyze-results.js: Tweak the output format a little.
+ Change so that when there's only one run we don't write out confidence
+ intervals at all rather than writing "NaN" over and over again.
+
+ * sunspider: Use the time and date as a suffix on the results file, that way
+ all the results are left behind in the tmp directory. This will make it easy
+ for us to add features that compare past results in the future. Also rename
+ the .mshark files using the same scheme.
+
+ * sunspider-compare-results: Relax the parsing rules so we can parse the
+ results file exactly as it's emitted from sunspider.
+
+2007-10-25 Adam Roben <aroben@apple.com>
+
+ Strip carriage returns from results
+
+ Carriage returns were screwing up sunspider-compare-results on
+ Windows.
+
+ Rubberstamped by Oliver.
+
+ * sunspider:
+
+2007-10-24 Darin Adler <darin@apple.com>
+
+ Reviewed by Eric.
+
+ * sunspider: Open the profile in shark after completing a run.
+ * sunspider-compare-results: Tiny perl tweaks.
+
+2007-10-23 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ - Don't hardcode my path to testkjs
+
+ * sunspider-compare-results:
+
+2007-10-23 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ - Add a compare script to compare results, and improve formatting of standard results a bit.
+
+ * resources/sunspider-analyze-results.js:
+ * resources/sunspider-compare-results.js: Added.
+ * sunspider-compare-results: Added.
+
+2007-10-23 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ * resources/sunspider-analyze-results.js: Do the error range
+ properly, using the t-distribution instead of 1.96 (which was
+ based on the normal distribution).
+
+ * sunspider: Print results in a way that will be friendlier to the
+ soon-to-come compare mode.
+
+2007-10-22 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Review.
+
+ - add more tests (probably the final set for now)
+
+ Already balanced. Added date, regexp, control flow, and a few
+ more string and object/array access tests.
+
+ * tests/LIST:
+ * tests/access-fannkuch.js: Added.
+ * tests/access-nbody.js: Added.
+ * tests/controlflow-recursive.js: Added.
+ * tests/date-format-tofte.js: Added.
+ * tests/date-format-xparb.js: Added.
+ * tests/regexp-dna.js: Added.
+ * tests/string-validate-input.js: Added.
+
+2007-10-21 Eric Seidel <eric@webkit.org>
+
+ Reviewed by mjs.
+
+ * sunspider: make --shark only sample from testkjs
+
+2007-10-21 Maciej Stachowiak <mjs@apple.com>
+
+ Rubber stamped by Eric.
+
+ - added crypto tests (already balanced)
+
+ * tests/LIST:
+ * tests/crypto-aes.js: Added.
+ * tests/crypto-md5.js: Added.
+ * tests/crypto-sha1.js: Added.
+
+2007-10-21 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Adam.
+
+ - rebalance new tests
+
+ Scaled the new tests so they take 400-600ms on a reasonably normal user setup:
+
+ Internet Explorer 7, Window XP, Dell Latitude D810 with a 2.13GHz Pentium M
+
+ This balances them with the existing tests.
+
+ * tests/access-binary-trees.js:
+ * tests/access-nsieve.js:
+ * tests/bitops-nsieve-bits.js:
+ * tests/math-partial-sums.js:
+ * tests/math-spectral-norm.js:
+ * tests/string-fasta.js:
+
+2007-10-20 Eric Seidel <eric@webkit.org>
+
+ Reviewed by darin.
+
+ Add improved argument handling to sunspider, including
+ --runs=<number>, --tests=<pattern, --shark, and --help
+ Also re-factor code into subroutines
+
+ * sunspider: improved argument handling
+
+2007-10-20 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Mark.
+
+ - Add more new tests, mostly from the computer language shootout. Not normalized yet.
+
+ * TODO:
+ * tests/LIST:
+ * tests/access-binary-trees.js: Added.
+ * tests/access-nsieve.js: Added.
+ * tests/bitops-nsieve-bits.js: Added.
+ * tests/math-partial-sums.js: Added.
+ * tests/math-spectral-norm.js: Added.
+ * tests/string-fasta.js: Added.
+
+2007-10-20 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ * TODO: Updated to note areas that are now well-covered.
+
+ - Change the tests and the driver to avoid leaving large object
+ graphs hanging around, since that throws off the subsequent tests.
+
+ * resources/sunspider-standalone-driver.js:
+ * tests/3d-cube.js:
+ * tests/3d-morph.js:
+ * tests/3d-raytrace.js:
+ * tests/bitops-bitwise-and.js:
+ * tests/string-base64.js:
+ * tests/string-tagcloud.js:
+
+2007-10-20 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Nikolas.
+
+ - Rebalance test complexity.
+
+ Scaled all the tests so they take 400-600ms on a reasonably normal user setup:
+
+ Internet Explorer 7, Window XP, Dell Latitude D810 with a 2.13GHz Pentium M
+
+ However, for some tests, IE7 was a huge outlier compared to other
+ major browsers. For those tests, I used Firefox 2.0.0.8 on the
+ same OS and hardware as a normalization basis.
+
+ * tests/3d-morph.js:
+ * tests/3d-raytrace.js:
+ * tests/bitops-3bit-bits-in-byte.js:
+ * tests/bitops-bits-in-byte.js:
+ * tests/bitops-bitwise-and.js:
+ * tests/math-cordic.js:
+ * tests/string-base64.js:
+ * tests/string-tagcloud.js:
+ * tests/string-unpack-code.js:
+
+2007-10-20 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver.
+
+ - Fix the browser-hosted driver to be compatible with Safari 2
+
+ * hosted/sunspider-driver.html:
+
+2007-10-20 Maciej Stachowiak <mjs@apple.com>
+
+ Rubber stamped by Hyatt.
+
+ - Add BSD license notice to cordic test, the original author said to do so.
+
+ * tests/math-cordic.js:
+
+2007-10-18 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Eric.
+
+ - Support Windows and Windows browsers.
+
+ * hosted/sunspider-results.html: Display results correctly in IE.
+ * sunspider: tweaks to work on Windows, and with spaces in the path.
+
+2007-10-18 Maciej Stachowiak <mjs@apple.com>
+
+ Rubber stamped by Oliver.
+
+ * tests/string-tagcloud.js: Remove stray print()
+
+2007-10-17 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver.
+
+ Add some string test cases.
+
+ * tests/string-base64.js: Added. Does base64 encoding and decoding.
+ * tests/string-tagcloud.js: Added. Parses a JSON string and
+ generates tagcloud HTML markup based on the data.
+ * tests/string-unpack-code.js: Added. Unpack compressed versions of
+ four of the most popular JavaScript libraries.
+ * tests/LIST: Added the new tests.
+
+2007-10-16 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Anders.
+
+ * TODO: Updated with info on how to do the stats properly.
+
+ * hosted/sunspider-driver.html: Reduce timeout from 500 to 200 to
+ avoid overly slowing down the benchmark.
+
+ Added some 3D-related test cases.
+
+ * tests/3d-cube.js: Added.
+ * tests/3d-morph.js: Added.
+ * tests/3d-raytrace.js: Added.
+ * tests/LIST:
+
+2007-10-14 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ - New JavaScript benchmark
+ http://bugs.webkit.org/show_bug.cgi?id=15515
+
+ A start on a new JavaScript benchmark, with standalone and
+ browser-hosted drivers.
+
+ The test content is still incomplete and the drivers could use
+ some more features but there is enough here to make a good start.
+
+ The drivers compute a 95% confidence interval on the mean for the
+ whole test, each category, and each individual test to make it
+ easier to tell whether differences are statistically
+ significant. The confidence interval can be narrowed by running
+ the test more times.
+
+ * TODO: Added. Remaining things that need to be done.
+ * sunspider: Added. Perl script that acts as the standalone test driver.
+ * resources/sunspider-standalone-driver.js: Added. JavaScript part
+ of standalone test driver.
+ * resources/sunspider-analyze-results.js: Added. JavaScript statistical
+ analysis code.
+ * resources/TEMPLATE.html: Added. Template for browser-hosted tests.
+ * make-hosted: Added. Script to generate browser-hosted tests.
+ * hosted/sunspider.html: Added. Start page for browser-hosted test.
+ * hosted/sunspider-driver.html: Added. Driver for browser-hosted tests.
+ * hosted/sunspider-results.html: Added. Results page for browser-hosted
+ tests.
+ * hosted/sunspider-record-result.js: Added. Helper file for browser-hosted
+ tests.
+ * tests/LIST: Added. List of tests to use.
+ * tests/bitops-3bit-bits-in-byte.js: Added. Some initial test content.
+ * tests/bitops-bits-in-byte.js: Added. Ditto.
+ * tests/bitops-bitwise-and.js: Added. Ditto.
+ * tests/math-cordic.js: Added. Ditto.
+
diff --git a/PerformanceTests/SunSpider/SunSpider.make b/PerformanceTests/SunSpider/SunSpider.make
new file mode 100644
index 000000000..46b14689b
--- /dev/null
+++ b/PerformanceTests/SunSpider/SunSpider.make
@@ -0,0 +1,4 @@
+install:
+ xcopy /exclude:$(SRCROOT)\xcopy.excludes "$(SRCROOT)\tests" "$(DSTROOT)\AppleInternal\tests\SunSpider\tests" /e/v/i/h/y
+ xcopy /exclude:$(SRCROOT)\xcopy.excludes "$(SRCROOT)\resources" "$(DSTROOT)\AppleInternal\tests\SunSpider\resources" /e/v/i/h/y
+ xcopy /exclude:$(SRCROOT)\xcopy.excludes "$(SRCROOT)\sunspider" "$(DSTROOT)\AppleInternal\tests\SunSpider" /v/i/h/y
diff --git a/PerformanceTests/SunSpider/TODO b/PerformanceTests/SunSpider/TODO
new file mode 100644
index 000000000..fee4bc0fb
--- /dev/null
+++ b/PerformanceTests/SunSpider/TODO
@@ -0,0 +1,70 @@
+
+* Add more test cases. Categories we'd like to cover (with reasonably
+ real-world tests, preferably not microbenchmarks) include:
+
+ (X marks the ones that are fairly well covered now).
+
+ X math (general)
+ X bitops
+ X 3-d (the math bits)
+ - crypto / encoding
+ X string processing
+ - regexps
+ - date processing
+ - array processing
+ - control flow
+ - function calls / recursion
+ - object access (unclear if it is possible to make a realistic
+ benchmark that isolates this)
+
+ I'd specifically like to add all the computer language shootout
+ tests that Mozilla is using.
+
+* Normalize tests. Most of the test cases available have a repeat
+ count of some sort, so the time they take can be tuned. The tests
+ should be tuned so that each category contributes about the same
+ total, and so each test in each category contributes about the same
+ amount. The question is, what implementation should be the baseline?
+ My current thought is to either pick some specific browser on a
+ specific platform (IE 7 or Firefox 2 perhaps), or try to target the
+ average that some set of same-generation release browsers get on
+ each test. The latter is more work. IE7 is probably a reasonable
+ normalization target since it is the latest version of the most
+ popular browser, so results on this benchmark will tell you how much
+ you have to gain or lose by using a different browser.
+
+* Instead of using the standard error, the correct way to calculate
+ a 95% confidence interval for a small sample is the t-test.
+ <http://en.wikipedia.org/wiki/Student%27s_t-test>. Basically this involves
+ using values from a 2-tailed t-distribution table instead of 1.96 to
+ multiply by the error function, a table is available at
+ <http://www.medcalc.be/manual/t-distribution.php>
+
+* Add support to compare two different engines (or two builds of the
+ same engine) interleaved.
+
+* Add support to compare two existing sets of saved results.
+
+* Allow repeat count to be controlled from the browser-hosted version
+ and the WebKitTools wrapper script.
+
+* Add support to run only a subset of the tests (both command-line and
+ web versions).
+
+* Add a profile mode for the command-line version that runs the tests
+ repeatedly in the same command-line interpreter instance, for ease
+ of profiling.
+
+* Make the browser-hosted version prettier, both in general design and
+ maybe using bar graphs for the output.
+
+* Make it possible to track change over time and generate a graph per
+ result showing result and error bar for each version.
+
+* Hook up to automated testing / buildbot infrastructure.
+
+* Possibly... add the ability to download iBench from its original
+ server, pull out the JS test content, preprocess it, and add it as a
+ category to the benchmark.
+
+* Profit.
diff --git a/PerformanceTests/SunSpider/UNCOVERED b/PerformanceTests/SunSpider/UNCOVERED
new file mode 100644
index 000000000..2a3457201
--- /dev/null
+++ b/PerformanceTests/SunSpider/UNCOVERED
@@ -0,0 +1,99 @@
+
+The following language features are not covered:
+
+Operators:
+
+>>>=
+^=
+%=
+in
+prefix --
+>>=
+delete
+void
+instanceof
+
+
+statements:
+
+with
+switch
+
+
+core language feaures:
+
+getters / setters
+closure data access
+heavy use of first-class functions
+
+Builtins:
+
+String.search
+
+Number.toFixed
+Number.toExponential
+Number.toPrecision
+
+RegExp.exec
+RegExp custom properties
+
+Function.apply
+Function.call
+
+parseInt
+parseFloat
+escape
+unescape
+decodeURI
+encodeURI
+
+
+Date.toDateString
+Date.toTimeString
+Date.getUTCFullYear
+Date.getUTCMonth
+Date.getUTCDate
+Date.getUTCDay
+Date.getUTCSeconds
+Date.getMilliseconds
+Date.getUTCMilliseconds
+Date.set*
+
+
+Math.E
+Math.LN2
+Math.LN10
+Math.LOG2E
+Math.LOG10E
+Math.SQRT1_2
+Math.SQRT2
+Math.acos
+Math.asin
+Math.atan
+Math.atan2
+Math.exp
+Math.min
+Math.tan
+
+Object.hasOwnProperty
+Object.propertyIsEnumerable
+Object.isPrototypeOf
+
+
+Array.concat
+Array.join
+Array.pop
+Array.push
+Array.reverse
+Array.shift
+Array.slice
+Array.sort
+Array.splice
+Array.unshift
+Array.every
+Array.forEach
+Array.some
+Array.indexOf
+Array.lastIndexOf
+Array.filter
+Array.map
diff --git a/PerformanceTests/SunSpider/hosted/json2.js b/PerformanceTests/SunSpider/hosted/json2.js
new file mode 100644
index 000000000..39d8f3706
--- /dev/null
+++ b/PerformanceTests/SunSpider/hosted/json2.js
@@ -0,0 +1,481 @@
+/*
+ http://www.JSON.org/json2.js
+ 2009-09-29
+
+ Public Domain.
+
+ NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
+
+ See http://www.JSON.org/js.html
+
+
+ This code should be minified before deployment.
+ See http://javascript.crockford.com/jsmin.html
+
+ USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
+ NOT CONTROL.
+
+
+ This file creates a global JSON object containing two methods: stringify
+ and parse.
+
+ JSON.stringify(value, replacer, space)
+ value any JavaScript value, usually an object or array.
+
+ replacer an optional parameter that determines how object
+ values are stringified for objects. It can be a
+ function or an array of strings.
+
+ space an optional parameter that specifies the indentation
+ of nested structures. If it is omitted, the text will
+ be packed without extra whitespace. If it is a number,
+ it will specify the number of spaces to indent at each
+ level. If it is a string (such as '\t' or '&nbsp;'),
+ it contains the characters used to indent at each level.
+
+ This method produces a JSON text from a JavaScript value.
+
+ When an object value is found, if the object contains a toJSON
+ method, its toJSON method will be called and the result will be
+ stringified. A toJSON method does not serialize: it returns the
+ value represented by the name/value pair that should be serialized,
+ or undefined if nothing should be serialized. The toJSON method
+ will be passed the key associated with the value, and this will be
+ bound to the value
+
+ For example, this would serialize Dates as ISO strings.
+
+ Date.prototype.toJSON = function (key) {
+ function f(n) {
+ // Format integers to have at least two digits.
+ return n < 10 ? '0' + n : n;
+ }
+
+ return this.getUTCFullYear() + '-' +
+ f(this.getUTCMonth() + 1) + '-' +
+ f(this.getUTCDate()) + 'T' +
+ f(this.getUTCHours()) + ':' +
+ f(this.getUTCMinutes()) + ':' +
+ f(this.getUTCSeconds()) + 'Z';
+ };
+
+ You can provide an optional replacer method. It will be passed the
+ key and value of each member, with this bound to the containing
+ object. The value that is returned from your method will be
+ serialized. If your method returns undefined, then the member will
+ be excluded from the serialization.
+
+ If the replacer parameter is an array of strings, then it will be
+ used to select the members to be serialized. It filters the results
+ such that only members with keys listed in the replacer array are
+ stringified.
+
+ Values that do not have JSON representations, such as undefined or
+ functions, will not be serialized. Such values in objects will be
+ dropped; in arrays they will be replaced with null. You can use
+ a replacer function to replace those with JSON values.
+ JSON.stringify(undefined) returns undefined.
+
+ The optional space parameter produces a stringification of the
+ value that is filled with line breaks and indentation to make it
+ easier to read.
+
+ If the space parameter is a non-empty string, then that string will
+ be used for indentation. If the space parameter is a number, then
+ the indentation will be that many spaces.
+
+ Example:
+
+ text = JSON.stringify(['e', {pluribus: 'unum'}]);
+ // text is '["e",{"pluribus":"unum"}]'
+
+
+ text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
+ // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
+
+ text = JSON.stringify([new Date()], function (key, value) {
+ return this[key] instanceof Date ?
+ 'Date(' + this[key] + ')' : value;
+ });
+ // text is '["Date(---current time---)"]'
+
+
+ JSON.parse(text, reviver)
+ This method parses a JSON text to produce an object or array.
+ It can throw a SyntaxError exception.
+
+ The optional reviver parameter is a function that can filter and
+ transform the results. It receives each of the keys and values,
+ and its return value is used instead of the original value.
+ If it returns what it received, then the structure is not modified.
+ If it returns undefined then the member is deleted.
+
+ Example:
+
+ // Parse the text. Values that look like ISO date strings will
+ // be converted to Date objects.
+
+ myData = JSON.parse(text, function (key, value) {
+ var a;
+ if (typeof value === 'string') {
+ a =
+/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
+ if (a) {
+ return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
+ +a[5], +a[6]));
+ }
+ }
+ return value;
+ });
+
+ myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
+ var d;
+ if (typeof value === 'string' &&
+ value.slice(0, 5) === 'Date(' &&
+ value.slice(-1) === ')') {
+ d = new Date(value.slice(5, -1));
+ if (d) {
+ return d;
+ }
+ }
+ return value;
+ });
+
+
+ This is a reference implementation. You are free to copy, modify, or
+ redistribute.
+*/
+
+/*jslint evil: true, strict: false */
+
+/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
+ call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
+ getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
+ lastIndex, length, parse, prototype, push, replace, slice, stringify,
+ test, toJSON, toString, valueOf
+*/
+
+
+// Create a JSON object only if one does not already exist. We create the
+// methods in a closure to avoid creating global variables.
+
+if (!this.JSON) {
+ this.JSON = {};
+}
+
+(function () {
+
+ function f(n) {
+ // Format integers to have at least two digits.
+ return n < 10 ? '0' + n : n;
+ }
+
+ if (typeof Date.prototype.toJSON !== 'function') {
+
+ Date.prototype.toJSON = function (key) {
+
+ return isFinite(this.valueOf()) ?
+ this.getUTCFullYear() + '-' +
+ f(this.getUTCMonth() + 1) + '-' +
+ f(this.getUTCDate()) + 'T' +
+ f(this.getUTCHours()) + ':' +
+ f(this.getUTCMinutes()) + ':' +
+ f(this.getUTCSeconds()) + 'Z' : null;
+ };
+
+ String.prototype.toJSON =
+ Number.prototype.toJSON =
+ Boolean.prototype.toJSON = function (key) {
+ return this.valueOf();
+ };
+ }
+
+ var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+ escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+ gap,
+ indent,
+ meta = { // table of character substitutions
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '"' : '\\"',
+ '\\': '\\\\'
+ },
+ rep;
+
+
+ function quote(string) {
+
+// If the string contains no control characters, no quote characters, and no
+// backslash characters, then we can safely slap some quotes around it.
+// Otherwise we must also replace the offending characters with safe escape
+// sequences.
+
+ escapable.lastIndex = 0;
+ return escapable.test(string) ?
+ '"' + string.replace(escapable, function (a) {
+ var c = meta[a];
+ return typeof c === 'string' ? c :
+ '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+ }) + '"' :
+ '"' + string + '"';
+ }
+
+
+ function str(key, holder) {
+
+// Produce a string from holder[key].
+
+ var i, // The loop counter.
+ k, // The member key.
+ v, // The member value.
+ length,
+ mind = gap,
+ partial,
+ value = holder[key];
+
+// If the value has a toJSON method, call it to obtain a replacement value.
+
+ if (value && typeof value === 'object' &&
+ typeof value.toJSON === 'function') {
+ value = value.toJSON(key);
+ }
+
+// If we were called with a replacer function, then call the replacer to
+// obtain a replacement value.
+
+ if (typeof rep === 'function') {
+ value = rep.call(holder, key, value);
+ }
+
+// What happens next depends on the value's type.
+
+ switch (typeof value) {
+ case 'string':
+ return quote(value);
+
+ case 'number':
+
+// JSON numbers must be finite. Encode non-finite numbers as null.
+
+ return isFinite(value) ? String(value) : 'null';
+
+ case 'boolean':
+ case 'null':
+
+// If the value is a boolean or null, convert it to a string. Note:
+// typeof null does not produce 'null'. The case is included here in
+// the remote chance that this gets fixed someday.
+
+ return String(value);
+
+// If the type is 'object', we might be dealing with an object or an array or
+// null.
+
+ case 'object':
+
+// Due to a specification blunder in ECMAScript, typeof null is 'object',
+// so watch out for that case.
+
+ if (!value) {
+ return 'null';
+ }
+
+// Make an array to hold the partial results of stringifying this object value.
+
+ gap += indent;
+ partial = [];
+
+// Is the value an array?
+
+ if (Object.prototype.toString.apply(value) === '[object Array]') {
+
+// The value is an array. Stringify every element. Use null as a placeholder
+// for non-JSON values.
+
+ length = value.length;
+ for (i = 0; i < length; i += 1) {
+ partial[i] = str(i, value) || 'null';
+ }
+
+// Join all of the elements together, separated with commas, and wrap them in
+// brackets.
+
+ v = partial.length === 0 ? '[]' :
+ gap ? '[\n' + gap +
+ partial.join(',\n' + gap) + '\n' +
+ mind + ']' :
+ '[' + partial.join(',') + ']';
+ gap = mind;
+ return v;
+ }
+
+// If the replacer is an array, use it to select the members to be stringified.
+
+ if (rep && typeof rep === 'object') {
+ length = rep.length;
+ for (i = 0; i < length; i += 1) {
+ k = rep[i];
+ if (typeof k === 'string') {
+ v = str(k, value);
+ if (v) {
+ partial.push(quote(k) + (gap ? ': ' : ':') + v);
+ }
+ }
+ }
+ } else {
+
+// Otherwise, iterate through all of the keys in the object.
+
+ for (k in value) {
+ if (Object.hasOwnProperty.call(value, k)) {
+ v = str(k, value);
+ if (v) {
+ partial.push(quote(k) + (gap ? ': ' : ':') + v);
+ }
+ }
+ }
+ }
+
+// Join all of the member texts together, separated with commas,
+// and wrap them in braces.
+
+ v = partial.length === 0 ? '{}' :
+ gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' +
+ mind + '}' : '{' + partial.join(',') + '}';
+ gap = mind;
+ return v;
+ }
+ }
+
+// If the JSON object does not yet have a stringify method, give it one.
+
+ if (typeof JSON.stringify !== 'function') {
+ JSON.stringify = function (value, replacer, space) {
+
+// The stringify method takes a value and an optional replacer, and an optional
+// space parameter, and returns a JSON text. The replacer can be a function
+// that can replace values, or an array of strings that will select the keys.
+// A default replacer method can be provided. Use of the space parameter can
+// produce text that is more easily readable.
+
+ var i;
+ gap = '';
+ indent = '';
+
+// If the space parameter is a number, make an indent string containing that
+// many spaces.
+
+ if (typeof space === 'number') {
+ for (i = 0; i < space; i += 1) {
+ indent += ' ';
+ }
+
+// If the space parameter is a string, it will be used as the indent string.
+
+ } else if (typeof space === 'string') {
+ indent = space;
+ }
+
+// If there is a replacer, it must be a function or an array.
+// Otherwise, throw an error.
+
+ rep = replacer;
+ if (replacer && typeof replacer !== 'function' &&
+ (typeof replacer !== 'object' ||
+ typeof replacer.length !== 'number')) {
+ throw new Error('JSON.stringify');
+ }
+
+// Make a fake root object containing our value under the key of ''.
+// Return the result of stringifying the value.
+
+ return str('', {'': value});
+ };
+ }
+
+
+// If the JSON object does not yet have a parse method, give it one.
+
+ if (typeof JSON.parse !== 'function') {
+ JSON.parse = function (text, reviver) {
+
+// The parse method takes a text and an optional reviver function, and returns
+// a JavaScript value if the text is a valid JSON text.
+
+ var j;
+
+ function walk(holder, key) {
+
+// The walk method is used to recursively walk the resulting structure so
+// that modifications can be made.
+
+ var k, v, value = holder[key];
+ if (value && typeof value === 'object') {
+ for (k in value) {
+ if (Object.hasOwnProperty.call(value, k)) {
+ v = walk(value, k);
+ if (v !== undefined) {
+ value[k] = v;
+ } else {
+ delete value[k];
+ }
+ }
+ }
+ }
+ return reviver.call(holder, key, value);
+ }
+
+
+// Parsing happens in four stages. In the first stage, we replace certain
+// Unicode characters with escape sequences. JavaScript handles many characters
+// incorrectly, either silently deleting them, or treating them as line endings.
+
+ cx.lastIndex = 0;
+ if (cx.test(text)) {
+ text = text.replace(cx, function (a) {
+ return '\\u' +
+ ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+ });
+ }
+
+// In the second stage, we run the text against regular expressions that look
+// for non-JSON patterns. We are especially concerned with '()' and 'new'
+// because they can cause invocation, and '=' because it can cause mutation.
+// But just to be safe, we want to reject all unexpected forms.
+
+// We split the second stage into 4 regexp operations in order to work around
+// crippling inefficiencies in IE's and Safari's regexp engines. First we
+// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
+// replace all simple value tokens with ']' characters. Third, we delete all
+// open brackets that follow a colon or comma or that begin the text. Finally,
+// we look to see that the remaining characters are only whitespace or ']' or
+// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
+
+ if (/^[\],:{}\s]*$/.
+test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
+replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
+replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
+
+// In the third stage we use the eval function to compile the text into a
+// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
+// in JavaScript: it can begin a block or an object literal. We wrap the text
+// in parens to eliminate the ambiguity.
+
+ j = eval('(' + text + ')');
+
+// In the optional fourth stage, we recursively walk the new structure, passing
+// each name/value pair to a reviver function for possible transformation.
+
+ return typeof reviver === 'function' ?
+ walk({'': j}, '') : j;
+ }
+
+// If the text is not JSON parseable, then a SyntaxError is thrown.
+
+ throw new SyntaxError('JSON.parse');
+ };
+ }
+}());
diff --git a/PerformanceTests/SunSpider/hosted/sunspider.css b/PerformanceTests/SunSpider/hosted/sunspider.css
new file mode 100644
index 000000000..c91a1031b
--- /dev/null
+++ b/PerformanceTests/SunSpider/hosted/sunspider.css
@@ -0,0 +1,31 @@
+
+body { font-family: sans-serif;
+ margin: 20px;
+ background-color: #D9D5A1;
+ color: #1B0636 }
+
+h2 { background-color: #4E8AB9;
+ margin: -20px -20px 0px -20px;
+ padding: 30px 20px 30px 20px;
+ color: yellow;
+ border-bottom: 2px solid #360D6B;
+ zoom: 1.0 /* I CAN HAS LAYOUT? (ie hack) */ }
+
+dt { font-weight: bold }
+
+dd { margin-bottom: 1em; margin-top: 0.5em }
+
+:link { color: #1363A1 }
+:visited { color: #5113A1 }
+
+#testframe { margin-top: 20px;
+ width: 80%;
+ height: 500px;
+ border: 2px solid #360D6B }
+
+#logo { float: left;
+ position: relative;
+ bottom: 0.33em;
+ padding-right: 20px;
+ margin-bottom: -40px;
+ font-size: 3em }
diff --git a/PerformanceTests/SunSpider/hosted/sunspider.html b/PerformanceTests/SunSpider/hosted/sunspider.html
new file mode 100644
index 000000000..5c96740d2
--- /dev/null
+++ b/PerformanceTests/SunSpider/hosted/sunspider.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+<head>
+
+<meta charset=utf8>
+
+<!--
+ Copyright (C) 2007 Apple Inc. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<title>SunSpider 1.0 JavaScript Benchmark</title>
+<link rel="stylesheet" href="sunspider.css">
+</head>
+
+<body>
+
+<h2><span id="logo">&#x2600;</span>SunSpider 1.0 JavaScript Benchmark</h2>
+
+<p>This is SunSpider, a JavaScript benchmark. This benchmark tests the
+core JavaScript language only, not the DOM or other browser APIs. It
+is designed to compare different versions of the same browser, and
+different browsers to each other. Unlike many widely available
+JavaScript benchmarks, this test is:</p>
+
+<dl>
+<dt>Real World<dt>
+<dd>This test mostly avoids microbenchmarks, and tries to focus on
+the kinds of actual problems developers solve with JavaScript today,
+and the problems they may want to tackle in the future as the language
+gets faster. This includes tests to generate a tagcloud from JSON
+input, a 3D raytracer, cryptography tests, code decompression, and
+many more examples. There are a few microbenchmarkish things, but they
+mostly represent real performance problems that developers have
+encountered.</dd>
+
+<dt>Balanced<dt>
+<dd>This test is balanced between different areas of the language and
+different types of code. It's not all math, all string processing, or
+all timing simple loops. In addition to having tests in many
+categories, the individual tests were balanced to take similar amounts
+of time on currently shipping versions of popular browsers.</dd>
+
+<dt>Statistically Sound<dt>
+<dd>One of the challenges of benchmarking is knowing how much noise
+you have in your measurements. This benchmark runs each test multiple
+times and determines an error range (technically, a 95% confidence
+interval). In addition, in comparison mode it tells you if you have
+enough data to determine if the difference is statistically
+significant.</dd>
+
+</dl>
+
+<p><b>Current version - sunspider-1.0:</b> <a href="sunspider-1.0/driver.html">Start Now!</a><br>
+<small>(When you run the benchmark, be patient - it loops through all of the
+test cases five times and can take a minute or longer to complete.)</small></p>
+
+<a href="versions.html">All versions.</a>
+
+</body>
+
+</html>
diff --git a/PerformanceTests/SunSpider/hosted/versions.html b/PerformanceTests/SunSpider/hosted/versions.html
new file mode 100644
index 000000000..e1466849c
--- /dev/null
+++ b/PerformanceTests/SunSpider/hosted/versions.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+<head>
+
+<meta charset=utf8>
+
+<!--
+ Copyright (C) 2007 Apple Inc. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<title>SunSpider 1.0 JavaScript Benchmark</title>
+<link rel="stylesheet" href="sunspider.css">
+</head>
+
+<body>
+
+<h2><span id="logo">&#x2600;</span>SunSpider 1.0 JavaScript Benchmark</h2>
+
+<p>This is SunSpider, a JavaScript benchmark. This benchmark tests the
+core JavaScript language only, not the DOM or other browser APIs. It
+is designed to compare different versions of the same browser, and
+different browsers to each other.</p>
+
+<p>This version of the harness is 1.0. This page lists all versions
+of the test content:</p>
+
+<ul>
+<li><a href="sunspider-0.9/driver.html">Version 0.9</a></li>
+<li><a href="sunspider-0.9.1/driver.html">Version 0.9.1</a></li>
+<li><a href="sunspider-1.0/driver.html">Version 1.0</a></li>
+</ul>
+
+</body>
+<html>
diff --git a/PerformanceTests/SunSpider/make-hosted b/PerformanceTests/SunSpider/make-hosted
new file mode 100755
index 000000000..1dd58ffc9
--- /dev/null
+++ b/PerformanceTests/SunSpider/make-hosted
@@ -0,0 +1,112 @@
+#!/usr/bin/perl -w
+
+# Copyright (C) 2007 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+use strict;
+
+open TEMPLATE, "<resources/TEMPLATE.html";
+my $template = do { local $/; <TEMPLATE> };
+close TEMPLATE;
+
+open DRIVER_TEMPLATE, "<resources/driver-TEMPLATE.html";
+my $driverTemplate = do { local $/; <DRIVER_TEMPLATE> };
+close DRIVER_TEMPLATE;
+
+open RESULTS_TEMPLATE, "<resources/results-TEMPLATE.html";
+my $resultsTemplate = do { local $/; <RESULTS_TEMPLATE> };
+close RESULTS_TEMPLATE;
+
+my @suites = ("sunspider-0.9", "sunspider-0.9.1", "sunspider-1.0");
+
+foreach my $suite (@suites) {
+
+ my @tests = ();
+ my @categories = ();
+ my %uniqueCategories = ();
+
+ mkdir "hosted/${suite}";
+
+ open TESTLIST, "<./tests/${suite}/LIST";
+ while (<TESTLIST>) {
+ chomp;
+ next unless $_;
+ push @tests, $_;
+ my $category = $_;
+ $category =~ s/-.*//;
+ if (!$uniqueCategories{$category}) {
+ push @categories, $category;
+ $uniqueCategories{$category} = $category;
+ }
+ }
+ close TESTLIST;
+
+ my @testContents = ();
+ for my $test (@tests) {
+ my $name = "${test}";
+
+ open SCRIPT, "<tests/${suite}/${test}.js";
+ my $script = do { local $/; <SCRIPT> };
+ close SCRIPT;
+
+ my $output = $template;
+ $output =~ s/\@NAME\@/${name}/g;
+ $output =~ s/\@SCRIPT\@/${script}/g;
+ $output =~ s/\\/\\\\/g;
+ $output =~ s/"/\\"/g;
+ $output =~ s/\n/\\n\\\n/g;
+ $output = $output;
+ push @testContents, $output;
+ }
+
+ my $output = $driverTemplate;
+ $output =~ s/\@SUITE\@/${suite}/g;
+
+ open OUTPUT, ">hosted/${suite}/driver.html";
+ print OUTPUT $output;
+ close OUTPUT;
+
+ $output = $resultsTemplate;
+ $output =~ s/\@SUITE\@/${suite}/g;
+
+ open OUTPUT, ">hosted/${suite}/results.html";
+ print OUTPUT $output;
+ close OUTPUT;
+
+ my $prefix = "var tests = [ " . join(", ", map { '"' . $_ . '"' } @tests) . " ];\n";
+ $prefix .= "var categories = [ " . join(", ", map { '"' . $_ . '"' } @categories) . " ];\n";
+
+ open PREFIX, ">hosted/${suite}/sunspider-test-prefix.js";
+ print PREFIX $prefix;
+ close PREFIX;
+
+ my $contents = "var testContents = [ " . join(", ", map { '"' . $_ . '"' } @testContents) . " ];\n";
+
+ open CONTENTS, ">hosted/${suite}/sunspider-test-contents.js";
+ print CONTENTS $contents;
+ close CONTENTS;
+}
+
+system("cp resources/sunspider-analyze-results.js hosted");
+system("cp resources/sunspider-compare-results.js hosted");
+print "hosted/sunspider.html is ready to use.\n";
diff --git a/PerformanceTests/SunSpider/resources/TEMPLATE.html b/PerformanceTests/SunSpider/resources/TEMPLATE.html
new file mode 100644
index 000000000..3dc3f2f48
--- /dev/null
+++ b/PerformanceTests/SunSpider/resources/TEMPLATE.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<head>
+
+<meta charset=utf8>
+
+<!--
+ Copyright (C) 2007 Apple Inc. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<title>SunSpider @NAME@</title>
+<link rel="stylesheet" href="../sunspider.css">
+</head>
+
+<body>
+<h3>@NAME@</h3>
+<div id="console">
+</div>
+<script>
+function record(time) {
+ document.getElementById("console").innerHTML = time + "ms";
+ if (window.parent) {
+ parent.recordResult(time);
+ }
+}
+
+var _sunSpiderStartDate = new Date();
+
+@SCRIPT@
+
+var _sunSpiderInterval = new Date() - _sunSpiderStartDate;
+
+record(_sunSpiderInterval);
+</script>
+
+
+</body>
+</html>
diff --git a/PerformanceTests/SunSpider/resources/TimeProfile20us.tracetemplate b/PerformanceTests/SunSpider/resources/TimeProfile20us.tracetemplate
new file mode 100644
index 000000000..6d4ec65cf
--- /dev/null
+++ b/PerformanceTests/SunSpider/resources/TimeProfile20us.tracetemplate
Binary files differ
diff --git a/PerformanceTests/SunSpider/resources/driver-TEMPLATE.html b/PerformanceTests/SunSpider/resources/driver-TEMPLATE.html
new file mode 100644
index 000000000..cfdd3fd17
--- /dev/null
+++ b/PerformanceTests/SunSpider/resources/driver-TEMPLATE.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<html>
+<head>
+
+<meta charset=utf8>
+
+<!--
+ Copyright (C) 2007 Apple Inc. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<title>SunSpider 1.0 JavaScript Benchmark (@SUITE@ test suite - In Progress...)</title>
+<link rel="stylesheet" href="../sunspider.css">
+</head>
+
+<body onload="start()">
+
+<h2><span id="logo">&#x2600;</span>SunSpider JavaScript Benchmark <small>(In Progress...)</small></h2>
+<h3>Content Version: @SUITE@</h3>
+
+<script src="sunspider-test-prefix.js"></script>
+<script src="sunspider-test-contents.js"></script>
+<script>
+var testIndex = -1;
+var currentRepeat = -1;
+var repeatCount = 10;
+
+var output = [];
+output.length = repeatCount;
+for (var i = 0; i < output.length; i++) {
+ output[i] = {};
+}
+
+function start()
+{
+ window.setTimeout(reallyNext, 500);
+}
+
+function next()
+{
+ window.setTimeout(reallyNext, 10);
+}
+
+function reallyNext()
+{
+ document.getElementById("frameparent").innerHTML = "";
+ document.getElementById("frameparent").innerHTML = "<iframe id='testframe'>";
+ var testFrame = document.getElementById("testframe");
+ testIndex++;
+ if (testIndex < tests.length) {
+ testFrame.contentDocument.open();
+ testFrame.contentDocument.write(testContents[testIndex]);
+ testFrame.contentDocument.close();
+ } else if (++currentRepeat < repeatCount) {
+ testIndex = 0;
+ testFrame.contentDocument.open();
+ testFrame.contentDocument.write(testContents[testIndex]);
+ testFrame.contentDocument.close();
+ } else {
+ finish();
+ }
+}
+
+function recordResult(time)
+{
+ if (currentRepeat >= 0) // negative repeats are warmups
+ output[currentRepeat][tests[testIndex]] = time;
+ next();
+}
+
+function finish()
+{
+ var outputString = "{";
+ outputString += '"v": "@SUITE@", ';
+ for (var test in output[0]) {
+ outputString += '"' + test + '":[';
+ for (var i = 0; i < output.length; i++) {
+ outputString += output[i][test] + ",";
+ }
+ outputString = outputString.substring(0, outputString.length - 1);
+ outputString += "],";
+ }
+ outputString = outputString.substring(0, outputString.length - 1);
+ outputString += "}";
+
+ location = "results.html?" + encodeURI(outputString);
+}
+
+</script>
+
+<div id="frameparent">
+</div>
+
+</body>
+</html>
diff --git a/PerformanceTests/SunSpider/resources/results-TEMPLATE.html b/PerformanceTests/SunSpider/resources/results-TEMPLATE.html
new file mode 100644
index 000000000..36990299d
--- /dev/null
+++ b/PerformanceTests/SunSpider/resources/results-TEMPLATE.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html>
+<head>
+
+<meta charset=utf8>
+
+<!--
+ Copyright (C) 2007 Apple Inc. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<title>SunSpider 1.0 JavaScript Benchmark Results (@SUITE@ test suite)</title>
+<link rel="stylesheet" href="../sunspider.css">
+</head>
+
+<body>
+<h2><span id="logo">&#x2600;</span>SunSpider 1.0 JavaScript Benchmark Results</h2>
+
+<h3>Content Version: @SUITE@</h3>
+
+<p><a href="driver.html">Run Again</a></p>
+
+<p><input style="width: 90%;" id="selfUrl" type="text" readonly="readonly"><br>
+<small>(You can bookmark this results URL for later comparison.)</small></p>
+
+<form onsubmit="event.preventDefault(); compare(other.value);">To compare to another run, paste a saved result URL in the text field below and press enter:<br>
+<input style="width: 90%;" name="other" type="text"><br>
+</form>
+
+<pre id="console">
+</pre>
+
+<script src="../json2.js"></script>
+<script>
+var selfUrlInput = document.getElementById("selfUrl");
+selfUrlInput.value = location;
+
+var outputJSON = JSON.parse(decodeURI(location.search.substring(1)));
+var version = outputJSON["v"];
+delete outputJSON["v"];
+var output = pivot(outputJSON);
+
+function pivot(input) {
+ var output = [];
+ for (var test in input) {
+ for (var i = 0; i < input[test].length; i++) {
+ if (!output[i])
+ output[i] = {};
+ output[i][test] = input[test][i];
+ }
+ }
+ return output;
+}
+
+function print(str) {
+ var console = document.getElementById("console");
+ console.appendChild(document.createTextNode(str));
+ console.appendChild(document.createElement("br"));
+}
+</script>
+
+<script src="sunspider-test-prefix.js"></script>
+<script src="../sunspider-analyze-results.js"></script>
+<script src="../sunspider-compare-results.js"></script>
+
+<script>
+var output2 = output;
+var version2 = version;
+
+function compare(other)
+{
+ document.getElementById("console").innerHTML = "";
+
+ var output1JSON = JSON.parse(decodeURI(other.split("?")[1]));
+ var version1 = output1JSON["v"];
+ delete output1JSON["v"];
+ if (version1 != version2) {
+ print("ERROR: cannot compare version " + version1 + ' with version ' + version2);
+ } else {
+ var output1 = pivot(output1JSON);
+ sunspiderCompareResults(output1, output2);
+ }
+}
+</script>
+
+
+</body>
+</html>
diff --git a/PerformanceTests/SunSpider/resources/sunspider-analyze-results.js b/PerformanceTests/SunSpider/resources/sunspider-analyze-results.js
new file mode 100644
index 000000000..d849f5952
--- /dev/null
+++ b/PerformanceTests/SunSpider/resources/sunspider-analyze-results.js
@@ -0,0 +1,268 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var count = output.length;
+
+var itemTotals = {};
+itemTotals.length = count;
+
+var total = 0;
+var categoryTotals = {};
+var testTotalsByCategory = {};
+
+var mean = 0;
+var categoryMeans = {};
+var testMeansByCategory = {};
+
+var stdDev = 0;
+var categoryStdDevs = {};
+var testStdDevsByCategory = {};
+
+var stdErr = 0;
+var categoryStdErrs = {};
+var testStdErrsByCategory = {};
+
+function initialize()
+{
+ itemTotals = {total: []};
+
+ for (var i = 0; i < categories.length; i++) {
+ var category = categories[i];
+ itemTotals[category] = [];
+ categoryTotals[category] = 0;
+ testTotalsByCategory[category] = {};
+ categoryMeans[category] = 0;
+ testMeansByCategory[category] = {};
+ categoryStdDevs[category] = 0;
+ testStdDevsByCategory[category] = {};
+ categoryStdErrs[category] = 0;
+ testStdErrsByCategory[category] = {};
+ }
+
+ for (var i = 0; i < tests.length; i++) {
+ var test = tests[i];
+ itemTotals[test] = [];
+ var category = test.replace(/-.*/, "");
+ testTotalsByCategory[category][test] = 0;
+ testMeansByCategory[category][test] = 0;
+ testStdDevsByCategory[category][test] = 0;
+ testStdErrsByCategory[category][test] = 0;
+ }
+
+ for (var i = 0; i < count; i++) {
+ itemTotals["total"][i] = 0;
+ for (var category in categoryTotals) {
+ itemTotals[category][i] = 0;
+ for (var test in testTotalsByCategory[category]) {
+ itemTotals[test][i] = 0;
+ }
+ }
+ }
+}
+
+function computeItemTotals()
+{
+ for (var i = 0; i < output.length; i++) {
+ var result = output[i];
+ for (var test in result) {
+ var time = result[test];
+ var category = test.replace(/-.*/, "");
+ itemTotals["total"][i] += time;
+ itemTotals[category][i] += time;
+ itemTotals[test][i] += time;
+ }
+ }
+}
+
+function computeTotals()
+{
+ for (var i = 0; i < output.length; i++) {
+ var result = output[i];
+ for (var test in result) {
+ var time = result[test];
+ var category = test.replace(/-.*/, "");
+ total += time;
+ categoryTotals[category] += time;
+ testTotalsByCategory[category][test] += time;
+ }
+ }
+}
+
+function computeMeans()
+{
+ mean = total / count;
+ for (var category in categoryTotals) {
+ categoryMeans[category] = categoryTotals[category] / count;
+ for (var test in testTotalsByCategory[category]) {
+ testMeansByCategory[category][test] = testTotalsByCategory[category][test] / count;
+ }
+ }
+}
+
+function standardDeviation(mean, items)
+{
+ var deltaSquaredSum = 0;
+ for (var i = 0; i < items.length; i++) {
+ var delta = items[i] - mean;
+ deltaSquaredSum += delta * delta;
+ }
+ variance = deltaSquaredSum / (items.length - 1);
+ return Math.sqrt(variance);
+}
+
+function computeStdDevs()
+{
+ stdDev = standardDeviation(mean, itemTotals["total"]);
+ for (var category in categoryStdDevs) {
+ categoryStdDevs[category] = standardDeviation(categoryMeans[category], itemTotals[category]);
+ }
+ for (var category in categoryStdDevs) {
+ for (var test in testStdDevsByCategory[category]) {
+ testStdDevsByCategory[category][test] = standardDeviation(testMeansByCategory[category][test], itemTotals[test]);
+ }
+ }
+}
+
+function computeStdErrors()
+{
+ var sqrtCount = Math.sqrt(count);
+
+ stdErr = stdDev / sqrtCount;
+ for (var category in categoryStdErrs) {
+ categoryStdErrs[category] = categoryStdDevs[category] / sqrtCount;
+ }
+ for (var category in categoryStdDevs) {
+ for (var test in testStdErrsByCategory[category]) {
+ testStdErrsByCategory[category][test] = testStdDevsByCategory[category][test] / sqrtCount;
+ }
+ }
+
+}
+
+var tDistribution = [NaN, NaN, 12.71, 4.30, 3.18, 2.78, 2.57, 2.45, 2.36, 2.31, 2.26, 2.23, 2.20, 2.18, 2.16, 2.14, 2.13, 2.12, 2.11, 2.10, 2.09, 2.09, 2.08, 2.07, 2.07, 2.06, 2.06, 2.06, 2.05, 2.05, 2.05, 2.04, 2.04, 2.04, 2.03, 2.03, 2.03, 2.03, 2.03, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.96];
+var tMax = tDistribution.length;
+var tLimit = 1.96;
+
+function tDist(n)
+{
+ if (n > tMax)
+ return tLimit;
+ return tDistribution[n];
+}
+
+
+function formatResult(meanWidth, mean, stdErr, n)
+{
+ var meanString = mean.toFixed(1).toString();
+ while (meanString.length < meanWidth) {
+ meanString = " " + meanString;
+ }
+
+ if (n == 1)
+ return meanString + "ms";
+
+ return meanString + "ms +/- " + ((tDist(n) * stdErr / mean) * 100).toFixed(1) + "%";
+}
+
+function computeLabelWidth()
+{
+ var width = "Total".length;
+ for (var category in categoryMeans) {
+ if (category.length + 2 > width)
+ width = category.length + 2;
+ }
+ for (var i = 0; i < tests.length; i++) {
+ var shortName = tests[i].replace(/^[^-]*-/, "");
+ if (shortName.length + 4 > width)
+ width = shortName.length + 4;
+ }
+
+ return width;
+}
+
+function computeMeanWidth()
+{
+ var width = mean.toFixed(1).toString().length;
+ for (var category in categoryMeans) {
+ var candidate = categoryMeans[category].toFixed(2).toString().length;
+ if (candidate > width)
+ width = candidate;
+ for (var test in testMeansByCategory[category]) {
+ var candidate = testMeansByCategory[category][test].toFixed(2).toString().length;
+ if (candidate > width)
+ width = candidate;
+ }
+ }
+
+ return width;
+}
+
+function resultLine(labelWidth, indent, label, meanWidth, mean, stdErr)
+{
+ var result = "";
+ for (i = 0; i < indent; i++) {
+ result += " ";
+ }
+
+ result += label + ": ";
+
+ for (i = 0; i < (labelWidth - (label.length + indent)); i++) {
+ result += " ";
+ }
+
+ return result + formatResult(meanWidth, mean, stdErr, count);
+}
+
+function printOutput()
+{
+ var labelWidth = computeLabelWidth();
+ var meanWidth = computeMeanWidth();
+
+ print("\n");
+ print("============================================");
+ if (count == 1)
+ print("RESULTS");
+ else
+ print("RESULTS (means and 95% confidence intervals)");
+ print("--------------------------------------------");
+ print(resultLine(labelWidth, 0, "Total", meanWidth, mean, stdErr));
+ print("--------------------------------------------");
+ for (var category in categoryMeans) {
+ print("");
+ print(resultLine(labelWidth, 2, category, meanWidth, categoryMeans[category], categoryStdErrs[category]));
+ for (var test in testMeansByCategory[category]) {
+ var shortName = test.replace(/^[^-]*-/, "");
+ print(resultLine(labelWidth, 4, shortName, meanWidth, testMeansByCategory[category][test], testStdErrsByCategory[category][test]));
+ }
+ }
+}
+
+initialize();
+computeItemTotals();
+computeTotals();
+computeMeans();
+computeStdDevs();
+computeStdErrors();
+printOutput();
diff --git a/PerformanceTests/SunSpider/resources/sunspider-compare-results.js b/PerformanceTests/SunSpider/resources/sunspider-compare-results.js
new file mode 100644
index 000000000..24671ea71
--- /dev/null
+++ b/PerformanceTests/SunSpider/resources/sunspider-compare-results.js
@@ -0,0 +1,380 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function sunspiderCompareResults(output1, output2)
+{
+ var count1 = output1.length;
+ var count2 = output2.length;
+
+ var itemTotals1 = {};
+ itemTotals1.length = count1;
+
+ var total1 = 0;
+ var categoryTotals1 = {};
+ var testTotalsByCategory1 = {};
+
+ var mean1 = 0;
+ var categoryMeans1 = {};
+ var testMeansByCategory1 = {};
+
+ var stdDev1 = 0;
+ var categoryStdDevs1 = {};
+ var testStdDevsByCategory1 = {};
+
+ var stdErr1 = 0;
+ var categoryStdErrs1 = {};
+ var testStdErrsByCategory1 = {};
+
+ var itemTotals2 = {};
+ itemTotals2.length = count2;
+
+ var total2 = 0;
+ var categoryTotals2 = {};
+ var testTotalsByCategory2 = {};
+
+ var mean2 = 0;
+ var categoryMeans2 = {};
+ var testMeansByCategory2 = {};
+
+ var stdDev2 = 0;
+ var categoryStdDevs2 = {};
+ var testStdDevsByCategory2 = {};
+
+ var stdErr2 = 0;
+ var categoryStdErrs2 = {};
+ var testStdErrsByCategory2 = {};
+
+ function initialize()
+ {
+ itemTotals1 = {total: []};
+
+ for (var i = 0; i < categories.length; i++) {
+ var category = categories[i];
+ itemTotals1[category] = [];
+ categoryTotals1[category] = 0;
+ testTotalsByCategory1[category] = {};
+ categoryMeans1[category] = 0;
+ testMeansByCategory1[category] = {};
+ categoryStdDevs1[category] = 0;
+ testStdDevsByCategory1[category] = {};
+ categoryStdErrs1[category] = 0;
+ testStdErrsByCategory1[category] = {};
+ }
+
+ for (var i = 0; i < tests.length; i++) {
+ var test = tests[i];
+ itemTotals1[test] = [];
+ var category = test.replace(/-.*/, "");
+ testTotalsByCategory1[category][test] = 0;
+ testMeansByCategory1[category][test] = 0;
+ testStdDevsByCategory1[category][test] = 0;
+ testStdErrsByCategory1[category][test] = 0;
+ }
+
+ for (var i = 0; i < count1; i++) {
+ itemTotals1["total"][i] = 0;
+ for (var category in categoryTotals1) {
+ itemTotals1[category][i] = 0;
+ for (var test in testTotalsByCategory1[category]) {
+ itemTotals1[test][i] = 0;
+ }
+ }
+ }
+
+ itemTotals2 = {total: []};
+
+ for (var i = 0; i < categories.length; i++) {
+ var category = categories[i];
+ itemTotals2[category] = [];
+ categoryTotals2[category] = 0;
+ testTotalsByCategory2[category] = {};
+ categoryMeans2[category] = 0;
+ testMeansByCategory2[category] = {};
+ categoryStdDevs2[category] = 0;
+ testStdDevsByCategory2[category] = {};
+ categoryStdErrs2[category] = 0;
+ testStdErrsByCategory2[category] = {};
+ }
+
+ for (var i = 0; i < tests.length; i++) {
+ var test = tests[i];
+ itemTotals2[test] = [];
+ var category = test.replace(/-.*/, "");
+ testTotalsByCategory2[category][test] = 0;
+ testMeansByCategory2[category][test] = 0;
+ testStdDevsByCategory2[category][test] = 0;
+ testStdErrsByCategory2[category][test] = 0;
+ }
+
+ for (var i = 0; i < count2; i++) {
+ itemTotals2["total"][i] = 0;
+ for (var category in categoryTotals2) {
+ itemTotals2[category][i] = 0;
+ for (var test in testTotalsByCategory2[category]) {
+ itemTotals2[test][i] = 0;
+ }
+ }
+ }
+
+ }
+
+ function computeItemTotals(output, itemTotals)
+ {
+ for (var i = 0; i < output.length; i++) {
+ var result = output[i];
+ for (var test in result) {
+ var time = result[test];
+ var category = test.replace(/-.*/, "");
+ itemTotals["total"][i] += time;
+ itemTotals[category][i] += time;
+ itemTotals[test][i] += time;
+ }
+ }
+ }
+
+ function computeTotals(output, categoryTotals, testTotalsByCategory)
+ {
+ var total = 0;
+
+ for (var i = 0; i < output.length; i++) {
+ var result = output[i];
+ for (var test in result) {
+ var time = result[test];
+ var category = test.replace(/-.*/, "");
+ total += time;
+ categoryTotals[category] += time;
+ testTotalsByCategory[category][test] += time;
+ }
+ }
+
+ return total;
+ }
+
+ function computeMeans(count, total, categoryTotals, categoryMeans, testTotalsByCategory, testMeansByCategory)
+ {
+ var mean = total / count;
+ for (var category in categoryTotals) {
+ categoryMeans[category] = categoryTotals[category] / count;
+ for (var test in testTotalsByCategory[category]) {
+ testMeansByCategory[category][test] = testTotalsByCategory[category][test] / count;
+ }
+ }
+ return mean;
+ }
+
+ function standardDeviation(mean, items)
+ {
+ var deltaSquaredSum = 0;
+ for (var i = 0; i < items.length; i++) {
+ var delta = items[i] - mean;
+ deltaSquaredSum += delta * delta;
+ }
+ variance = deltaSquaredSum / (items.length - 1);
+ return Math.sqrt(variance);
+ }
+
+ function computeStdDevs(mean, itemTotals, categoryStdDevs, categoryMeans, testStdDevsByCategory, testMeansByCategory)
+ {
+ var stdDev = standardDeviation(mean, itemTotals["total"]);
+ for (var category in categoryStdDevs) {
+ categoryStdDevs[category] = standardDeviation(categoryMeans[category], itemTotals[category]);
+ }
+ for (var category in categoryStdDevs) {
+ for (var test in testStdDevsByCategory[category]) {
+ testStdDevsByCategory[category][test] = standardDeviation(testMeansByCategory[category][test], itemTotals[test]);
+ }
+ }
+ return stdDev;
+ }
+
+ function computeStdErrors(count, stdDev, categoryStdErrs, categoryStdDevs, testStdErrsByCategory, testStdDevsByCategory)
+ {
+ var sqrtCount = Math.sqrt(count);
+
+ var stdErr = stdDev / sqrtCount;
+ for (var category in categoryStdErrs) {
+ categoryStdErrs[category] = categoryStdDevs[category] / sqrtCount;
+ }
+ for (var category in categoryStdDevs) {
+ for (var test in testStdErrsByCategory[category]) {
+ testStdErrsByCategory[category][test] = testStdDevsByCategory[category][test] / sqrtCount;
+ }
+ }
+
+ return stdErr;
+ }
+
+ var tDistribution = [NaN, NaN, 12.71, 4.30, 3.18, 2.78, 2.57, 2.45, 2.36, 2.31, 2.26, 2.23, 2.20, 2.18, 2.16, 2.14, 2.13, 2.12, 2.11, 2.10, 2.09, 2.09, 2.08, 2.07, 2.07, 2.06, 2.06, 2.06, 2.05, 2.05, 2.05, 2.04, 2.04, 2.04, 2.03, 2.03, 2.03, 2.03, 2.03, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.96];
+ var tMax = tDistribution.length;
+ var tLimit = 1.96;
+
+ function tDist(n)
+ {
+ if (n > tMax)
+ return tLimit;
+ return tDistribution[n];
+ }
+
+
+ function formatMean(meanWidth, mean, stdErr, count)
+ {
+ var meanString = mean.toFixed(1).toString();
+ while (meanString.length < meanWidth) {
+ meanString = " " + meanString;
+ }
+
+ var error = "+/- " + ((tDist(count) * stdErr / mean) * 100).toFixed(1) + "% ";
+
+ return meanString + "ms " + error;
+ }
+
+ function computeLabelWidth()
+ {
+ var width = "Total".length;
+ for (var category in categoryMeans1) {
+ if (category.length + 2 > width)
+ width = category.length + 2;
+ }
+ for (var i = 0; i < tests.length; i++) {
+ var shortName = tests[i].replace(/^[^-]*-/, "");
+ if (shortName.length + 4 > width)
+ width = shortName.length + 4;
+ }
+
+ return width;
+ }
+
+ function computeMeanWidth(mean, categoryMeans, testMeansByCategory)
+ {
+ var width = mean.toFixed(1).toString().length;
+ for (var category in categoryMeans) {
+ var candidate = categoryMeans[category].toFixed(1).toString().length;
+ if (candidate > width)
+ width = candidate;
+ for (var test in testMeansByCategory[category]) {
+ var candidate = testMeansByCategory[category][test].toFixed(1).toString().length;
+ if (candidate > width)
+ width = candidate;
+ }
+ }
+
+ return width;
+ }
+
+ function pad(str, n)
+ {
+ while (str.length < n) {
+ str += " ";
+ }
+ return str;
+ }
+
+ function resultLine(labelWidth, indent, label, meanWidth1, mean1, stdErr1, meanWidth2, mean2, stdErr2)
+ {
+ result = pad("", indent);
+ result += label + ": ";
+ result = pad(result, labelWidth + 2);
+
+ var t = (mean1 - mean2) / (Math.sqrt((stdErr1 * stdErr1) + (stdErr2 * stdErr2)));
+ var df = count1 + count2 - 2;
+
+ var statisticallySignificant = (Math.abs(t) > tDist(df+1));
+ var diff = mean2 - mean1;
+ var percentage = 100 * diff / mean1;
+ var isFaster = diff < 0;
+ var probablySame = (percentage < 0.1) && !statisticallySignificant;
+ var ratio = isFaster ? (mean1 / mean2) : (mean2 / mean1);
+ var fixedRatio = (ratio < 1.2) ? ratio.toFixed(3).toString() : ((ratio < 10) ? ratio.toFixed(2).toString() : ratio.toFixed(1).toString());
+ var formattedRatio = isFaster ? fixedRatio + "x as fast" : "*" + fixedRatio + "x as slow*";
+
+ var diffSummary;
+ var diffDetail;
+
+ if (probablySame) {
+ diffSummary = "-";
+ diffDetail = "";
+ } else if (!statisticallySignificant) {
+ diffSummary = "??";
+ diffDetail = " not conclusive: might be " + formattedRatio;
+ } else {
+ diffSummary = formattedRatio;
+ diffDetail = " significant";
+ }
+
+ return result + pad(diffSummary, 18) + formatMean(meanWidth1, mean1, stdErr1, count1) + " " + formatMean(meanWidth2, mean2, stdErr2, count2) + diffDetail;
+ }
+
+ function printOutput()
+ {
+ var labelWidth = computeLabelWidth();
+ var meanWidth1 = computeMeanWidth(mean1, categoryMeans1, testMeansByCategory1);
+ var meanWidth2 = computeMeanWidth(mean2, categoryMeans2, testMeansByCategory2);
+
+ print("\n");
+ var header = "TEST";
+ while (header.length < labelWidth)
+ header += " ";
+ header += " COMPARISON FROM TO DETAILS";
+ print(header);
+ print("");
+ print("=============================================================================");
+ print("");
+ print(resultLine(labelWidth, 0, "** TOTAL **", meanWidth1, mean1, stdErr1, meanWidth2, mean2, stdErr2));
+ print("");
+ print("=============================================================================");
+
+ for (var category in categoryMeans1) {
+ print("");
+ print(resultLine(labelWidth, 2, category,
+ meanWidth1, categoryMeans1[category], categoryStdErrs1[category],
+ meanWidth2, categoryMeans2[category], categoryStdErrs2[category]));
+ for (var test in testMeansByCategory1[category]) {
+ var shortName = test.replace(/^[^-]*-/, "");
+ print(resultLine(labelWidth, 4, shortName,
+ meanWidth1, testMeansByCategory1[category][test], testStdErrsByCategory1[category][test],
+ meanWidth2, testMeansByCategory2[category][test], testStdErrsByCategory2[category][test]));
+ }
+ }
+ }
+
+ initialize();
+
+ computeItemTotals(output1, itemTotals1);
+ computeItemTotals(output2, itemTotals2);
+
+ total1 = computeTotals(output1, categoryTotals1, testTotalsByCategory1);
+ total2 = computeTotals(output2, categoryTotals2, testTotalsByCategory2);
+
+ mean1 = computeMeans(count1, total1, categoryTotals1, categoryMeans1, testTotalsByCategory1, testMeansByCategory1);
+ mean2 = computeMeans(count2, total2, categoryTotals2, categoryMeans2, testTotalsByCategory2, testMeansByCategory2);
+
+ stdDev1 = computeStdDevs(mean1, itemTotals1, categoryStdDevs1, categoryMeans1, testStdDevsByCategory1, testMeansByCategory1);
+ stdDev2 = computeStdDevs(mean2, itemTotals2, categoryStdDevs2, categoryMeans2, testStdDevsByCategory2, testMeansByCategory2);
+
+ stdErr1 = computeStdErrors(count1, stdDev1, categoryStdErrs1, categoryStdDevs1, testStdErrsByCategory1, testStdDevsByCategory1);
+ stdErr2 = computeStdErrors(count2, stdDev2, categoryStdErrs2, categoryStdDevs2, testStdErrsByCategory2, testStdDevsByCategory2);
+
+ printOutput();
+}
diff --git a/PerformanceTests/SunSpider/resources/sunspider-standalone-compare.js b/PerformanceTests/SunSpider/resources/sunspider-standalone-compare.js
new file mode 100644
index 000000000..e82c1556c
--- /dev/null
+++ b/PerformanceTests/SunSpider/resources/sunspider-standalone-compare.js
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+sunspiderCompareResults(output1, output2);
diff --git a/PerformanceTests/SunSpider/resources/sunspider-standalone-driver.js b/PerformanceTests/SunSpider/resources/sunspider-standalone-driver.js
new file mode 100644
index 000000000..e6686f1f6
--- /dev/null
+++ b/PerformanceTests/SunSpider/resources/sunspider-standalone-driver.js
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var results = new Array();
+
+(function(){
+
+var time = 0;
+var times = [];
+times.length = tests.length;
+
+for (var j = 0; j < tests.length; j++) {
+ var testBase = suitePath + "/" + tests[j];
+ var testName = testBase + ".js";
+ var testData = testBase + "-data.js";
+
+ if (testName.indexOf('parse-only') >= 0) {
+ times[j] = checkSyntax(testName);
+ } else {
+ // Tests may or may not have associated -data files whose loading
+ // should not be timed.
+ try {
+ load(testData);
+ // If a file does have test data, then we can't use the
+ // higher-precision `run' timer, because `run' uses a fresh
+ // global environment, so we fall back to `load'.
+ var startTime = new Date;
+ load(testName);
+ times[j] = new Date() - startTime;
+ } catch (e) {
+ // No test data, just use `run'.
+ times[j] = run(testName);
+ }
+ }
+ gc();
+}
+
+function recordResults(tests, times)
+{
+ var output = "{\n";
+
+ for (j = 0; j < tests.length; j++) {
+ output += ' "' + tests[j] + '": ' + times[j] + ',\n';
+ }
+ output = output.substring(0, output.length - 2) + "\n";
+
+ output += "}";
+ print(output);
+}
+
+recordResults(tests, times);
+
+})();
+
diff --git a/PerformanceTests/SunSpider/sunspider b/PerformanceTests/SunSpider/sunspider
new file mode 100755
index 000000000..0409cff06
--- /dev/null
+++ b/PerformanceTests/SunSpider/sunspider
@@ -0,0 +1,258 @@
+#!/usr/bin/perl -w
+
+# Copyright (C) 2007 Apple Inc. All rights reserved.
+# Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+use strict;
+use Getopt::Long;
+use File::Basename;
+use File::Spec;
+use Cwd;
+use POSIX qw(strftime);
+use Time::HiRes qw(gettimeofday tv_interval);
+
+my $showHelp = 0;
+my $runShark = 0;
+my $runShark20 = 0;
+my $runSharkCache = 0;
+my $runInstruments = 0;
+my $ubench = 0;
+my $v8suite = 0;
+my $suite = "";
+my $parseOnly = 0;
+my $jsShellPath;
+my $jsShellArgs = "";
+my $setBaseline = 0;
+my $testsPattern;
+my $testRuns = 10;
+
+my $programName = basename($0);
+my $usage = <<EOF;
+Usage: $programName --shell=[path] [options]
+ --help Show this help message
+ --set-baseline Set baseline for future comparisons
+ --shell Path to JavaScript shell
+ --args Arguments to pass to JavaScript shell
+ --runs Number of times to run tests (default: $testRuns)
+ --tests Only run tests matching provided pattern
+ --shark Sample execution time with the Mac OS X "Shark" performance testing tool (implies --runs=1)
+ --shark20 Like --shark, but with a 20 microsecond sampling interval
+ --shark-cache Like --shark, but performs a L2 cache-miss sample instead of time sample
+ --instruments Sample execution time with the Mac OS X "Instruments" tool (Time Profile) (implies --runs=1)
+ --suite Select a specific benchmark suite. The default is sunspider-1.0
+ --ubench Use microbenchmark suite instead of regular tests. Same as --suite=ubench
+ --v8-suite Use the V8 benchmark suite. Same as --suite=v8-v4
+ --parse-only Use the parse-only benchmark suite. Same as --suite=parse-only
+EOF
+
+GetOptions('runs=i' => \$testRuns,
+ 'set-baseline' => \$setBaseline,
+ 'shell=s' => \$jsShellPath,
+ 'args=s' => \$jsShellArgs,
+ 'shark' => \$runShark,
+ 'shark20' => \$runShark20,
+ 'shark-cache' => \$runSharkCache,
+ 'instruments' => \$runInstruments,
+ 'suite=s' => \$suite,
+ 'ubench' => \$ubench,
+ 'v8-suite' => \$v8suite,
+ 'parse-only' => \$parseOnly,
+ 'tests=s' => \$testsPattern,
+ 'help' => \$showHelp);
+
+
+$suite = "ubench" if ($ubench);
+$suite = "v8-v4" if ($v8suite);
+$suite = "parse-only" if ($parseOnly);
+$suite = "sunspider-1.0" if (!$suite);
+
+my $resultDirectory = "${suite}-results";
+
+my $suitePath = $suite;
+$suitePath = "tests/" . $suitePath unless ($suite =~ /\//);
+
+$runShark = 1 if $runSharkCache;
+$runShark = 20 if $runShark20;
+$testRuns = 1 if $runShark || $runInstruments;
+if ($runShark && ! -x "/usr/bin/shark") {
+ die "Please install CHUD tools from http://developer.apple.com/tools/download/\n";
+}
+
+my $sharkCacheProfileIndex = 0;
+if ($runSharkCache) {
+ my $sharkProfileList = `shark -l 2>&1`;
+ for my $profile (split(/\n/, $sharkProfileList)) {
+ $profile =~ /(\d+) - (.+)/;
+ next unless (defined $1);
+ my $profileIndex = $1;
+ my $profileName = $2;
+ if ($profileName =~ /L2 Cache/) {
+ $sharkCacheProfileIndex = $profileIndex;
+ print "Using Shark L2 Cache Miss Profile: " . $profile . "\n";
+ last;
+ }
+ }
+ die "Failed to find L2 Cache Miss Profile for --shark-cache\n" unless ($sharkCacheProfileIndex);
+}
+
+if (!$jsShellPath || $showHelp) {
+ print STDERR $usage;
+ exit 1;
+}
+
+sub dumpToFile($$)
+{
+ my ($contents, $path) = @_;
+ open FILE, ">", $path or die "Failed to open $path";
+ print FILE $contents;
+ close FILE;
+}
+
+my @tests = ();
+my @categories = ();
+my %uniqueCategories = ();
+
+sub loadTestsList()
+{
+ open TESTLIST, "<", "${suitePath}/LIST" or die "Can't find ${suitePath}/LIST";
+ while (<TESTLIST>) {
+ chomp;
+ next unless !$testsPattern || /$testsPattern/;
+
+ push @tests, $_;
+ my $category = $_;
+ $category =~ s/-.*//;
+ if (!$uniqueCategories{$category}) {
+ push @categories, $category;
+ $uniqueCategories{$category} = $category;
+ }
+ }
+ close TESTLIST;
+}
+
+my $timeString = strftime "%Y-%m-%d-%H.%M.%S", localtime $^T;
+my $prefixFile = "$resultDirectory/sunspider-test-prefix.js";
+my $resultsFile = "$resultDirectory/sunspider-results-$timeString.js";
+
+sub writePrefixFile()
+{
+ my $prefix = "var suitePath = " . '"' . $suitePath . '"' . ";\n";
+ $prefix .= "var tests = [ " . join(", ", map { '"' . $_ . '"' } @tests) . " ];\n";
+ $prefix .= "var categories = [ " . join(", ", map { '"' . $_ . '"' } @categories) . " ];\n";
+
+ mkdir "$resultDirectory";
+ dumpToFile($prefix, $prefixFile);
+}
+
+sub runTestsOnce($$)
+{
+ my ($useShark, $useInstruments) = @_;
+ my $shellArgs = $jsShellArgs . " -f $prefixFile -f resources/sunspider-standalone-driver.js 2> " . File::Spec->devnull();
+ my $output;
+ if ($useShark) {
+ my $intervalArg = $useShark == 20 ? "-I 20u" : "";
+ my $cacheArg = $runSharkCache ? "-c $sharkCacheProfileIndex" : "";
+ $output = `shark $intervalArg $cacheArg -i -1-q "$jsShellPath" $shellArgs`;
+ } elsif ($useInstruments) {
+ $output = `instruments -t "resources/TimeProfile20us.tracetemplate" "$jsShellPath" $shellArgs`;
+ } else {
+ $output = `"$jsShellPath" $shellArgs | grep -v break`;
+ }
+ return $output;
+}
+
+sub newestFile($$)
+{
+ my ($dir, $pattern) = @_;
+
+ my $newestAge;
+ my $newestFile = "";
+ opendir DIR, $dir or die;
+ for my $file (readdir DIR) {
+ if ($file =~ $pattern) {
+ my $age = -M "$dir/$file";
+ if (!defined $newestAge || $age < $newestAge) {
+ $newestFile = $file;
+ $newestAge = $age;
+ }
+ }
+ }
+ closedir DIR;
+
+ return "$dir/$newestFile";
+}
+
+loadTestsList();
+if ($testsPattern) {
+ print STDERR "Found " . scalar(@tests) . " tests matching '" . $testsPattern . "'\n";
+} else {
+ print STDERR "Found " . scalar(@tests) . " tests\n";
+}
+die "No tests to run" unless scalar(@tests);
+print STDERR "Running SunSpider once for warmup, then " . ($runShark ? "under Shark" : ($runInstruments ? "under Instruments" : "$testRuns time" . ($testRuns == 1 ? "" : "s"))) . "\n";
+writePrefixFile();
+
+runTestsOnce(0, 0);
+print "Discarded first run.\n";
+
+my $result;
+my $count = 0;
+my @results = ();
+my $total = 0;
+print "[";
+while ($count++ < $testRuns) {
+ $result = runTestsOnce($runShark, $runInstruments);
+ $result =~ s/\r\n/\n/g;
+ chomp $result;
+ push @results, $result;
+ print $result;
+ print ",\n" unless ($count == $testRuns);
+}
+print "]\n";
+
+my $output = "var output = [\n" . join(",\n", @results) . "\n];\n";
+dumpToFile($output, $resultsFile);
+dumpToFile(File::Spec->rel2abs($resultsFile), "$resultDirectory/baseline-filename.txt") if $setBaseline;
+
+system("$jsShellPath", "-f", $prefixFile, "-f", $resultsFile, "-f", "resources/sunspider-analyze-results.js");
+
+print("\nResults are located at $resultsFile\n");
+
+if ($runShark) {
+ my $newestMShark = newestFile(".", qr/\.mshark$/);
+ if ($newestMShark) {
+ my $profileFile = "$resultDirectory/sunspider-profile-$timeString.mshark";
+ rename $newestMShark, $profileFile or die;
+ exec "/usr/bin/open", $profileFile;
+ }
+}
+
+if ($runInstruments) {
+ my $newestTrace = newestFile(".", qr/\.trace$/);
+ if ($newestTrace) {
+ my $profileFile = "$resultDirectory/sunspider-profile-$timeString.trace";
+ rename $newestTrace, $profileFile or die;
+ exec "/usr/bin/open", $profileFile;
+ }
+}
diff --git a/PerformanceTests/SunSpider/sunspider-compare-results b/PerformanceTests/SunSpider/sunspider-compare-results
new file mode 100755
index 000000000..4c14ab59c
--- /dev/null
+++ b/PerformanceTests/SunSpider/sunspider-compare-results
@@ -0,0 +1,161 @@
+#!/usr/bin/perl -w
+
+# Copyright (C) 2007 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+use strict;
+use Getopt::Long;
+use File::Basename;
+
+my $showHelp = 0;
+my $jsShellPath;
+my $suite = "";
+my $ubench = 0;
+my $v8suite = 0;
+my $parseOnly = 0;
+
+my $programName = basename($0);
+my $usage = <<EOF;
+Usage: $programName --shell=[path] [options] FILE FILE
+ --help Show this help message
+ --shell Path to javascript shell
+ --suite Select a specific benchmark suite. The default is sunspider-1.0
+ --ubench Use microbenchmark suite instead of regular tests. Same as --suite=ubench
+ --v8-suite Use the V8 benchmark suite. Same as --suite=v8-v4
+ --parse-only Compare the parse-only benchmark results
+EOF
+
+GetOptions('shell=s' => \$jsShellPath,
+ 'suite=s' => \$suite,
+ 'ubench' => \$ubench,
+ 'v8-suite' => \$v8suite,
+ 'parse-only' => \$parseOnly,
+ 'help' => \$showHelp);
+
+$suite = "ubench" if ($ubench);
+$suite = "v8-v4" if ($v8suite);
+$suite = "parse-only" if ($parseOnly);
+$suite = "sunspider-1.0" if (!$suite);
+
+my $resultDirectory = "${suite}-results";
+
+if ((scalar @ARGV != 0 && scalar @ARGV != 2) || !$jsShellPath || $showHelp) {
+ print STDERR $usage;
+ exit 1;
+}
+
+sub readResultsFile($)
+{
+ my ($filename) = @_;
+ open FILE, "<", $filename or die;
+ my $foundStart = 0;
+ my $foundOutput = 0;
+ my $foundEnd = 0;
+ my $result = "";
+ while (<FILE>) {
+ if (!$foundStart) {
+ if (/^\[\{$/) {
+ $foundStart = 1;
+ $result .= $_;
+ } elsif (/^var \w+ = \[$/) {
+ $foundOutput = 1;
+ } elsif ($foundOutput && /^\{$/) {
+ $foundOutput = 0;
+ $foundStart = 1;
+ $result = "[{\n";
+ }
+ } else {
+ if (/\];?$/) {
+ $foundEnd = 1;
+ chomp;
+ s/;$//;
+ $result .= $_;
+ last;
+ } else {
+ $result .= $_;
+ }
+ }
+ }
+ close FILE;
+
+ die "Cound not find data in ${filename} - needs to start with [{" unless $foundStart;
+ die "Cound not find data in ${filename} - needs to end with }]" unless $foundEnd;
+
+ return $result;
+}
+
+sub dumpToFile($$)
+{
+ my ($contents, $path) = @_;
+ open FILE, ">", $path or die;
+ print FILE $contents;
+ close FILE;
+}
+
+sub readFile($)
+{
+ my ($path) = @_;
+ open FILE, "<", $path or die;
+ my $result = <FILE>;
+ close FILE;
+ return $result;
+}
+
+sub newestFile($$)
+{
+ my ($dir, $pattern) = @_;
+
+ my $newestAge;
+ my $newestFile = "";
+ opendir DIR, $dir or die;
+ for my $file (readdir DIR) {
+ if ($file =~ $pattern) {
+ my $age = -M "$dir/$file";
+ if (!defined $newestAge || $age < $newestAge) {
+ $newestFile = $file;
+ $newestAge = $age;
+ }
+ }
+ }
+ closedir DIR;
+
+ return "$dir/$newestFile";
+}
+
+my $file1;
+my $file2;
+
+if (scalar @ARGV == 2) {
+ $file1 = $ARGV[0];
+ $file2 = $ARGV[1];
+} else {
+ $file1 = readFile("$resultDirectory/baseline-filename.txt");
+ $file2 = newestFile("$resultDirectory", qr/sunspider-results-.+\.js$/);
+}
+
+my $output = "var output1 = " . readResultsFile($file1) . ";\n";
+$output .= "var output2 = " . readResultsFile($file2) . ";\n";
+
+dumpToFile($output, "$resultDirectory/sunspider-comparison-data.js");
+
+system($jsShellPath, "-f", "$resultDirectory/sunspider-test-prefix.js", "-f", "$resultDirectory/sunspider-comparison-data.js", "-f", "resources/sunspider-compare-results.js", "-f", "resources/sunspider-standalone-compare.js");
diff --git a/PerformanceTests/SunSpider/tests/parse-only/LIST b/PerformanceTests/SunSpider/tests/parse-only/LIST
new file mode 100644
index 000000000..7ad5006e7
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/parse-only/LIST
@@ -0,0 +1,4 @@
+jquery-1.3.2
+mootools-1.2.2-core-nc
+prototype-1.6.0.3
+concat-jquery-mootools-prototype
diff --git a/PerformanceTests/SunSpider/tests/parse-only/concat-jquery-mootools-prototype.js b/PerformanceTests/SunSpider/tests/parse-only/concat-jquery-mootools-prototype.js
new file mode 100644
index 000000000..af4a11b69
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/parse-only/concat-jquery-mootools-prototype.js
@@ -0,0 +1,12699 @@
+/*!
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){
+
+var
+ // Will speed up references to window, and allows munging its name.
+ window = this,
+ // Will speed up references to undefined, and allows munging its name.
+ undefined,
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+ // Map over the $ in case of overwrite
+ _$ = window.$,
+
+ jQuery = window.jQuery = window.$ = function( selector, context ) {
+ // The jQuery object is actually just the init constructor 'enhanced'
+ return new jQuery.fn.init( selector, context );
+ },
+
+ // A simple way to check for HTML strings or ID strings
+ // (both of which we optimize for)
+ quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
+ // Is it a simple selector
+ isSimple = /^.[^:#\[\.,]*$/;
+
+jQuery.fn = jQuery.prototype = {
+ init: function( selector, context ) {
+ // Make sure that a selection was provided
+ selector = selector || document;
+
+ // Handle $(DOMElement)
+ if ( selector.nodeType ) {
+ this[0] = selector;
+ this.length = 1;
+ this.context = selector;
+ return this;
+ }
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ // Are we dealing with HTML string or an ID?
+ var match = quickExpr.exec( selector );
+
+ // Verify a match, and that no context was specified for #id
+ if ( match && (match[1] || !context) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[1] )
+ selector = jQuery.clean( [ match[1] ], context );
+
+ // HANDLE: $("#id")
+ else {
+ var elem = document.getElementById( match[3] );
+
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem && elem.id != match[3] )
+ return jQuery().find( selector );
+
+ // Otherwise, we inject the element directly into the jQuery object
+ var ret = jQuery( elem || [] );
+ ret.context = document;
+ ret.selector = selector;
+ return ret;
+ }
+
+ // HANDLE: $(expr, [context])
+ // (which is just equivalent to: $(content).find(expr)
+ } else
+ return jQuery( context ).find( selector );
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) )
+ return jQuery( document ).ready( selector );
+
+ // Make sure that old selector state is passed along
+ if ( selector.selector && selector.context ) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return this.setArray(jQuery.isArray( selector ) ?
+ selector :
+ jQuery.makeArray(selector));
+ },
+
+ // Start with an empty selector
+ selector: "",
+
+ // The current version of jQuery being used
+ jquery: "1.3.2",
+
+ // The number of elements contained in the matched element set
+ size: function() {
+ return this.length;
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+ return num === undefined ?
+
+ // Return a 'clean' array
+ Array.prototype.slice.call( this ) :
+
+ // Return just the object
+ this[ num ];
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems, name, selector ) {
+ // Build a new jQuery matched element set
+ var ret = jQuery( elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ ret.context = this.context;
+
+ if ( name === "find" )
+ ret.selector = this.selector + (this.selector ? " " : "") + selector;
+ else if ( name )
+ ret.selector = this.selector + "." + name + "(" + selector + ")";
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Force the current matched set of elements to become
+ // the specified array of elements (destroying the stack in the process)
+ // You should use pushStack() in order to do this, but maintain the stack
+ setArray: function( elems ) {
+ // Resetting the length to 0, then using the native Array push
+ // is a super-fast way to populate an object with array-like properties
+ this.length = 0;
+ Array.prototype.push.apply( this, elems );
+
+ return this;
+ },
+
+ // Execute a callback for every element in the matched set.
+ // (You can seed the arguments with an array of args, but this is
+ // only used internally.)
+ each: function( callback, args ) {
+ return jQuery.each( this, callback, args );
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function( elem ) {
+ // Locate the position of the desired element
+ return jQuery.inArray(
+ // If it receives a jQuery object, the first element is used
+ elem && elem.jquery ? elem[0] : elem
+ , this );
+ },
+
+ attr: function( name, value, type ) {
+ var options = name;
+
+ // Look for the case where we're accessing a style value
+ if ( typeof name === "string" )
+ if ( value === undefined )
+ return this[0] && jQuery[ type || "attr" ]( this[0], name );
+
+ else {
+ options = {};
+ options[ name ] = value;
+ }
+
+ // Check to see if we're setting style values
+ return this.each(function(i){
+ // Set all the styles
+ for ( name in options )
+ jQuery.attr(
+ type ?
+ this.style :
+ this,
+ name, jQuery.prop( this, options[ name ], type, i, name )
+ );
+ });
+ },
+
+ css: function( key, value ) {
+ // ignore negative width and height values
+ if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
+ value = undefined;
+ return this.attr( key, value, "curCSS" );
+ },
+
+ text: function( text ) {
+ if ( typeof text !== "object" && text != null )
+ return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
+
+ var ret = "";
+
+ jQuery.each( text || this, function(){
+ jQuery.each( this.childNodes, function(){
+ if ( this.nodeType != 8 )
+ ret += this.nodeType != 1 ?
+ this.nodeValue :
+ jQuery.fn.text( [ this ] );
+ });
+ });
+
+ return ret;
+ },
+
+ wrapAll: function( html ) {
+ if ( this[0] ) {
+ // The elements to wrap the target around
+ var wrap = jQuery( html, this[0].ownerDocument ).clone();
+
+ if ( this[0].parentNode )
+ wrap.insertBefore( this[0] );
+
+ wrap.map(function(){
+ var elem = this;
+
+ while ( elem.firstChild )
+ elem = elem.firstChild;
+
+ return elem;
+ }).append(this);
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ return this.each(function(){
+ jQuery( this ).contents().wrapAll( html );
+ });
+ },
+
+ wrap: function( html ) {
+ return this.each(function(){
+ jQuery( this ).wrapAll( html );
+ });
+ },
+
+ append: function() {
+ return this.domManip(arguments, true, function(elem){
+ if (this.nodeType == 1)
+ this.appendChild( elem );
+ });
+ },
+
+ prepend: function() {
+ return this.domManip(arguments, true, function(elem){
+ if (this.nodeType == 1)
+ this.insertBefore( elem, this.firstChild );
+ });
+ },
+
+ before: function() {
+ return this.domManip(arguments, false, function(elem){
+ this.parentNode.insertBefore( elem, this );
+ });
+ },
+
+ after: function() {
+ return this.domManip(arguments, false, function(elem){
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ });
+ },
+
+ end: function() {
+ return this.prevObject || jQuery( [] );
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: [].push,
+ sort: [].sort,
+ splice: [].splice,
+
+ find: function( selector ) {
+ if ( this.length === 1 ) {
+ var ret = this.pushStack( [], "find", selector );
+ ret.length = 0;
+ jQuery.find( selector, this[0], ret );
+ return ret;
+ } else {
+ return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){
+ return jQuery.find( selector, elem );
+ })), "find", selector );
+ }
+ },
+
+ clone: function( events ) {
+ // Do the clone
+ var ret = this.map(function(){
+ if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) {
+ // IE copies events bound via attachEvent when
+ // using cloneNode. Calling detachEvent on the
+ // clone will also remove the events from the orignal
+ // In order to get around this, we use innerHTML.
+ // Unfortunately, this means some modifications to
+ // attributes in IE that are actually only stored
+ // as properties will not be copied (such as the
+ // the name attribute on an input).
+ var html = this.outerHTML;
+ if ( !html ) {
+ var div = this.ownerDocument.createElement("div");
+ div.appendChild( this.cloneNode(true) );
+ html = div.innerHTML;
+ }
+
+ return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0];
+ } else
+ return this.cloneNode(true);
+ });
+
+ // Copy the events from the original to the clone
+ if ( events === true ) {
+ var orig = this.find("*").andSelf(), i = 0;
+
+ ret.find("*").andSelf().each(function(){
+ if ( this.nodeName !== orig[i].nodeName )
+ return;
+
+ var events = jQuery.data( orig[i], "events" );
+
+ for ( var type in events ) {
+ for ( var handler in events[ type ] ) {
+ jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data );
+ }
+ }
+
+ i++;
+ });
+ }
+
+ // Return the cloned set
+ return ret;
+ },
+
+ filter: function( selector ) {
+ return this.pushStack(
+ jQuery.isFunction( selector ) &&
+ jQuery.grep(this, function(elem, i){
+ return selector.call( elem, i );
+ }) ||
+
+ jQuery.multiFilter( selector, jQuery.grep(this, function(elem){
+ return elem.nodeType === 1;
+ }) ), "filter", selector );
+ },
+
+ closest: function( selector ) {
+ var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null,
+ closer = 0;
+
+ return this.map(function(){
+ var cur = this;
+ while ( cur && cur.ownerDocument ) {
+ if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) {
+ jQuery.data(cur, "closest", closer);
+ return cur;
+ }
+ cur = cur.parentNode;
+ closer++;
+ }
+ });
+ },
+
+ not: function( selector ) {
+ if ( typeof selector === "string" )
+ // test special case where just one selector is passed in
+ if ( isSimple.test( selector ) )
+ return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector );
+ else
+ selector = jQuery.multiFilter( selector, this );
+
+ var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
+ return this.filter(function() {
+ return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
+ });
+ },
+
+ add: function( selector ) {
+ return this.pushStack( jQuery.unique( jQuery.merge(
+ this.get(),
+ typeof selector === "string" ?
+ jQuery( selector ) :
+ jQuery.makeArray( selector )
+ )));
+ },
+
+ is: function( selector ) {
+ return !!selector && jQuery.multiFilter( selector, this ).length > 0;
+ },
+
+ hasClass: function( selector ) {
+ return !!selector && this.is( "." + selector );
+ },
+
+ val: function( value ) {
+ if ( value === undefined ) {
+ var elem = this[0];
+
+ if ( elem ) {
+ if( jQuery.nodeName( elem, 'option' ) )
+ return (elem.attributes.value || {}).specified ? elem.value : elem.text;
+
+ // We need to handle select boxes special
+ if ( jQuery.nodeName( elem, "select" ) ) {
+ var index = elem.selectedIndex,
+ values = [],
+ options = elem.options,
+ one = elem.type == "select-one";
+
+ // Nothing was selected
+ if ( index < 0 )
+ return null;
+
+ // Loop through all the selected options
+ for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
+ var option = options[ i ];
+
+ if ( option.selected ) {
+ // Get the specifc value for the option
+ value = jQuery(option).val();
+
+ // We don't need an array for one selects
+ if ( one )
+ return value;
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ return values;
+ }
+
+ // Everything else, we just grab the value
+ return (elem.value || "").replace(/\r/g, "");
+
+ }
+
+ return undefined;
+ }
+
+ if ( typeof value === "number" )
+ value += '';
+
+ return this.each(function(){
+ if ( this.nodeType != 1 )
+ return;
+
+ if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) )
+ this.checked = (jQuery.inArray(this.value, value) >= 0 ||
+ jQuery.inArray(this.name, value) >= 0);
+
+ else if ( jQuery.nodeName( this, "select" ) ) {
+ var values = jQuery.makeArray(value);
+
+ jQuery( "option", this ).each(function(){
+ this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
+ jQuery.inArray( this.text, values ) >= 0);
+ });
+
+ if ( !values.length )
+ this.selectedIndex = -1;
+
+ } else
+ this.value = value;
+ });
+ },
+
+ html: function( value ) {
+ return value === undefined ?
+ (this[0] ?
+ this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") :
+ null) :
+ this.empty().append( value );
+ },
+
+ replaceWith: function( value ) {
+ return this.after( value ).remove();
+ },
+
+ eq: function( i ) {
+ return this.slice( i, +i + 1 );
+ },
+
+ slice: function() {
+ return this.pushStack( Array.prototype.slice.apply( this, arguments ),
+ "slice", Array.prototype.slice.call(arguments).join(",") );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map(this, function(elem, i){
+ return callback.call( elem, i, elem );
+ }));
+ },
+
+ andSelf: function() {
+ return this.add( this.prevObject );
+ },
+
+ domManip: function( args, table, callback ) {
+ if ( this[0] ) {
+ var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(),
+ scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ),
+ first = fragment.firstChild;
+
+ if ( first )
+ for ( var i = 0, l = this.length; i < l; i++ )
+ callback.call( root(this[i], first), this.length > 1 || i > 0 ?
+ fragment.cloneNode(true) : fragment );
+
+ if ( scripts )
+ jQuery.each( scripts, evalScript );
+ }
+
+ return this;
+
+ function root( elem, cur ) {
+ return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ?
+ (elem.getElementsByTagName("tbody")[0] ||
+ elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
+ elem;
+ }
+ }
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.fn.init.prototype = jQuery.fn;
+
+function evalScript( i, elem ) {
+ if ( elem.src )
+ jQuery.ajax({
+ url: elem.src,
+ async: false,
+ dataType: "script"
+ });
+
+ else
+ jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
+
+ if ( elem.parentNode )
+ elem.parentNode.removeChild( elem );
+}
+
+function now(){
+ return +new Date;
+}
+
+jQuery.extend = jQuery.fn.extend = function() {
+ // copy reference to target object
+ var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+ target = arguments[1] || {};
+ // skip the boolean and the target
+ i = 2;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction(target) )
+ target = {};
+
+ // extend jQuery itself if only one argument is passed
+ if ( length == i ) {
+ target = this;
+ --i;
+ }
+
+ for ( ; i < length; i++ )
+ // Only deal with non-null/undefined values
+ if ( (options = arguments[ i ]) != null )
+ // Extend the base object
+ for ( var name in options ) {
+ var src = target[ name ], copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy )
+ continue;
+
+ // Recurse if we're merging object values
+ if ( deep && copy && typeof copy === "object" && !copy.nodeType )
+ target[ name ] = jQuery.extend( deep,
+ // Never move original objects, clone them
+ src || ( copy.length != null ? [ ] : { } )
+ , copy );
+
+ // Don't bring in undefined values
+ else if ( copy !== undefined )
+ target[ name ] = copy;
+
+ }
+
+ // Return the modified object
+ return target;
+};
+
+// exclude the following css properties to add px
+var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
+ // cache defaultView
+ defaultView = document.defaultView || {},
+ toString = Object.prototype.toString;
+
+jQuery.extend({
+ noConflict: function( deep ) {
+ window.$ = _$;
+
+ if ( deep )
+ window.jQuery = _jQuery;
+
+ return jQuery;
+ },
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function( obj ) {
+ return toString.call(obj) === "[object Function]";
+ },
+
+ isArray: function( obj ) {
+ return toString.call(obj) === "[object Array]";
+ },
+
+ // check if an element is in a (or is an) XML document
+ isXMLDoc: function( elem ) {
+ return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
+ !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument );
+ },
+
+ // Evalulates a script in a global context
+ globalEval: function( data ) {
+ if ( data && /\S/.test(data) ) {
+ // Inspired by code by Andrea Giammarchi
+ // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
+ var head = document.getElementsByTagName("head")[0] || document.documentElement,
+ script = document.createElement("script");
+
+ script.type = "text/javascript";
+ if ( jQuery.support.scriptEval )
+ script.appendChild( document.createTextNode( data ) );
+ else
+ script.text = data;
+
+ // Use insertBefore instead of appendChild to circumvent an IE6 bug.
+ // This arises when a base node is used (#2709).
+ head.insertBefore( script, head.firstChild );
+ head.removeChild( script );
+ }
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
+ },
+
+ // args is for internal usage only
+ each: function( object, callback, args ) {
+ var name, i = 0, length = object.length;
+
+ if ( args ) {
+ if ( length === undefined ) {
+ for ( name in object )
+ if ( callback.apply( object[ name ], args ) === false )
+ break;
+ } else
+ for ( ; i < length; )
+ if ( callback.apply( object[ i++ ], args ) === false )
+ break;
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if ( length === undefined ) {
+ for ( name in object )
+ if ( callback.call( object[ name ], name, object[ name ] ) === false )
+ break;
+ } else
+ for ( var value = object[0];
+ i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
+ }
+
+ return object;
+ },
+
+ prop: function( elem, value, type, i, name ) {
+ // Handle executable functions
+ if ( jQuery.isFunction( value ) )
+ value = value.call( elem, i );
+
+ // Handle passing in a number to a CSS property
+ return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ?
+ value + "px" :
+ value;
+ },
+
+ className: {
+ // internal only, use addClass("class")
+ add: function( elem, classNames ) {
+ jQuery.each((classNames || "").split(/\s+/), function(i, className){
+ if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
+ elem.className += (elem.className ? " " : "") + className;
+ });
+ },
+
+ // internal only, use removeClass("class")
+ remove: function( elem, classNames ) {
+ if (elem.nodeType == 1)
+ elem.className = classNames !== undefined ?
+ jQuery.grep(elem.className.split(/\s+/), function(className){
+ return !jQuery.className.has( classNames, className );
+ }).join(" ") :
+ "";
+ },
+
+ // internal only, use hasClass("class")
+ has: function( elem, className ) {
+ return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
+ }
+ },
+
+ // A method for quickly swapping in/out CSS properties to get correct calculations
+ swap: function( elem, options, callback ) {
+ var old = {};
+ // Remember the old values, and insert the new ones
+ for ( var name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ callback.call( elem );
+
+ // Revert the old values
+ for ( var name in options )
+ elem.style[ name ] = old[ name ];
+ },
+
+ css: function( elem, name, force, extra ) {
+ if ( name == "width" || name == "height" ) {
+ var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ];
+
+ function getWH() {
+ val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
+
+ if ( extra === "border" )
+ return;
+
+ jQuery.each( which, function() {
+ if ( !extra )
+ val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
+ if ( extra === "margin" )
+ val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0;
+ else
+ val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
+ });
+ }
+
+ if ( elem.offsetWidth !== 0 )
+ getWH();
+ else
+ jQuery.swap( elem, props, getWH );
+
+ return Math.max(0, Math.round(val));
+ }
+
+ return jQuery.curCSS( elem, name, force );
+ },
+
+ curCSS: function( elem, name, force ) {
+ var ret, style = elem.style;
+
+ // We need to handle opacity special in IE
+ if ( name == "opacity" && !jQuery.support.opacity ) {
+ ret = jQuery.attr( style, "opacity" );
+
+ return ret == "" ?
+ "1" :
+ ret;
+ }
+
+ // Make sure we're using the right name for getting the float value
+ if ( name.match( /float/i ) )
+ name = styleFloat;
+
+ if ( !force && style && style[ name ] )
+ ret = style[ name ];
+
+ else if ( defaultView.getComputedStyle ) {
+
+ // Only "float" is needed here
+ if ( name.match( /float/i ) )
+ name = "float";
+
+ name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
+
+ var computedStyle = defaultView.getComputedStyle( elem, null );
+
+ if ( computedStyle )
+ ret = computedStyle.getPropertyValue( name );
+
+ // We should always get a number back from opacity
+ if ( name == "opacity" && ret == "" )
+ ret = "1";
+
+ } else if ( elem.currentStyle ) {
+ var camelCase = name.replace(/\-(\w)/g, function(all, letter){
+ return letter.toUpperCase();
+ });
+
+ ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
+
+ // From the awesome hack by Dean Edwards
+ // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+ // If we're not dealing with a regular pixel number
+ // but a number that has a weird ending, we need to convert it to pixels
+ if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
+ // Remember the original values
+ var left = style.left, rsLeft = elem.runtimeStyle.left;
+
+ // Put in the new values to get a computed value out
+ elem.runtimeStyle.left = elem.currentStyle.left;
+ style.left = ret || 0;
+ ret = style.pixelLeft + "px";
+
+ // Revert the changed values
+ style.left = left;
+ elem.runtimeStyle.left = rsLeft;
+ }
+ }
+
+ return ret;
+ },
+
+ clean: function( elems, context, fragment ) {
+ context = context || document;
+
+ // !context.createElement fails in IE with an error but returns typeof 'object'
+ if ( typeof context.createElement === "undefined" )
+ context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
+
+ // If a single string is passed in and it's a single tag
+ // just do a createElement and skip the rest
+ if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) {
+ var match = /^<(\w+)\s*\/?>$/.exec(elems[0]);
+ if ( match )
+ return [ context.createElement( match[1] ) ];
+ }
+
+ var ret = [], scripts = [], div = context.createElement("div");
+
+ jQuery.each(elems, function(i, elem){
+ if ( typeof elem === "number" )
+ elem += '';
+
+ if ( !elem )
+ return;
+
+ // Convert html string into DOM nodes
+ if ( typeof elem === "string" ) {
+ // Fix "XHTML"-style tags in all browsers
+ elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
+ return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
+ all :
+ front + "></" + tag + ">";
+ });
+
+ // Trim whitespace, otherwise indexOf won't work as expected
+ var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase();
+
+ var wrap =
+ // option or optgroup
+ !tags.indexOf("<opt") &&
+ [ 1, "<select multiple='multiple'>", "</select>" ] ||
+
+ !tags.indexOf("<leg") &&
+ [ 1, "<fieldset>", "</fieldset>" ] ||
+
+ tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
+ [ 1, "<table>", "</table>" ] ||
+
+ !tags.indexOf("<tr") &&
+ [ 2, "<table><tbody>", "</tbody></table>" ] ||
+
+ // <thead> matched above
+ (!tags.indexOf("<td") || !tags.indexOf("<th")) &&
+ [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] ||
+
+ !tags.indexOf("<col") &&
+ [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] ||
+
+ // IE can't serialize <link> and <script> tags normally
+ !jQuery.support.htmlSerialize &&
+ [ 1, "div<div>", "</div>" ] ||
+
+ [ 0, "", "" ];
+
+ // Go to html and back, then peel off extra wrappers
+ div.innerHTML = wrap[1] + elem + wrap[2];
+
+ // Move to the right depth
+ while ( wrap[0]-- )
+ div = div.lastChild;
+
+ // Remove IE's autoinserted <tbody> from table fragments
+ if ( !jQuery.support.tbody ) {
+
+ // String was a <table>, *may* have spurious <tbody>
+ var hasBody = /<tbody/i.test(elem),
+ tbody = !tags.indexOf("<table") && !hasBody ?
+ div.firstChild && div.firstChild.childNodes :
+
+ // String was a bare <thead> or <tfoot>
+ wrap[1] == "<table>" && !hasBody ?
+ div.childNodes :
+ [];
+
+ for ( var j = tbody.length - 1; j >= 0 ; --j )
+ if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length )
+ tbody[ j ].parentNode.removeChild( tbody[ j ] );
+
+ }
+
+ // IE completely kills leading whitespace when innerHTML is used
+ if ( !jQuery.support.leadingWhitespace && /^\s/.test( elem ) )
+ div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
+
+ elem = jQuery.makeArray( div.childNodes );
+ }
+
+ if ( elem.nodeType )
+ ret.push( elem );
+ else
+ ret = jQuery.merge( ret, elem );
+
+ });
+
+ if ( fragment ) {
+ for ( var i = 0; ret[i]; i++ ) {
+ if ( jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
+ scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
+ } else {
+ if ( ret[i].nodeType === 1 )
+ ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
+ fragment.appendChild( ret[i] );
+ }
+ }
+
+ return scripts;
+ }
+
+ return ret;
+ },
+
+ attr: function( elem, name, value ) {
+ // don't set attributes on text and comment nodes
+ if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
+ return undefined;
+
+ var notxml = !jQuery.isXMLDoc( elem ),
+ // Whether we are setting (or getting)
+ set = value !== undefined;
+
+ // Try to normalize/fix the name
+ name = notxml && jQuery.props[ name ] || name;
+
+ // Only do all the following if this is a node (faster for style)
+ // IE elem.getAttribute passes even for style
+ if ( elem.tagName ) {
+
+ // These attributes require special treatment
+ var special = /href|src|style/.test( name );
+
+ // Safari mis-reports the default selected property of a hidden option
+ // Accessing the parent's selectedIndex property fixes it
+ if ( name == "selected" && elem.parentNode )
+ elem.parentNode.selectedIndex;
+
+ // If applicable, access the attribute via the DOM 0 way
+ if ( name in elem && notxml && !special ) {
+ if ( set ){
+ // We can't allow the type property to be changed (since it causes problems in IE)
+ if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
+ throw "type property can't be changed";
+
+ elem[ name ] = value;
+ }
+
+ // browsers index elements by id/name on forms, give priority to attributes.
+ if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )
+ return elem.getAttributeNode( name ).nodeValue;
+
+ // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ if ( name == "tabIndex" ) {
+ var attributeNode = elem.getAttributeNode( "tabIndex" );
+ return attributeNode && attributeNode.specified
+ ? attributeNode.value
+ : elem.nodeName.match(/(button|input|object|select|textarea)/i)
+ ? 0
+ : elem.nodeName.match(/^(a|area)$/i) && elem.href
+ ? 0
+ : undefined;
+ }
+
+ return elem[ name ];
+ }
+
+ if ( !jQuery.support.style && notxml && name == "style" )
+ return jQuery.attr( elem.style, "cssText", value );
+
+ if ( set )
+ // convert the value to a string (all browsers do this but IE) see #1070
+ elem.setAttribute( name, "" + value );
+
+ var attr = !jQuery.support.hrefNormalized && notxml && special
+ // Some attributes require a special call on IE
+ ? elem.getAttribute( name, 2 )
+ : elem.getAttribute( name );
+
+ // Non-existent attributes return null, we normalize to undefined
+ return attr === null ? undefined : attr;
+ }
+
+ // elem is actually elem.style ... set the style
+
+ // IE uses filters for opacity
+ if ( !jQuery.support.opacity && name == "opacity" ) {
+ if ( set ) {
+ // IE has trouble with opacity if it does not have layout
+ // Force it by setting the zoom level
+ elem.zoom = 1;
+
+ // Set the alpha filter to set the opacity
+ elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
+ (parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
+ }
+
+ return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
+ (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
+ "";
+ }
+
+ name = name.replace(/-([a-z])/ig, function(all, letter){
+ return letter.toUpperCase();
+ });
+
+ if ( set )
+ elem[ name ] = value;
+
+ return elem[ name ];
+ },
+
+ trim: function( text ) {
+ return (text || "").replace( /^\s+|\s+$/g, "" );
+ },
+
+ makeArray: function( array ) {
+ var ret = [];
+
+ if( array != null ){
+ var i = array.length;
+ // The window, strings (and functions) also have 'length'
+ if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval )
+ ret[0] = array;
+ else
+ while( i )
+ ret[--i] = array[i];
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, array ) {
+ for ( var i = 0, length = array.length; i < length; i++ )
+ // Use === because on IE, window == document
+ if ( array[ i ] === elem )
+ return i;
+
+ return -1;
+ },
+
+ merge: function( first, second ) {
+ // We have to loop this way because IE & Opera overwrite the length
+ // expando of getElementsByTagName
+ var i = 0, elem, pos = first.length;
+ // Also, we need to make sure that the correct elements are being returned
+ // (IE returns comment nodes in a '*' query)
+ if ( !jQuery.support.getAll ) {
+ while ( (elem = second[ i++ ]) != null )
+ if ( elem.nodeType != 8 )
+ first[ pos++ ] = elem;
+
+ } else
+ while ( (elem = second[ i++ ]) != null )
+ first[ pos++ ] = elem;
+
+ return first;
+ },
+
+ unique: function( array ) {
+ var ret = [], done = {};
+
+ try {
+
+ for ( var i = 0, length = array.length; i < length; i++ ) {
+ var id = jQuery.data( array[ i ] );
+
+ if ( !done[ id ] ) {
+ done[ id ] = true;
+ ret.push( array[ i ] );
+ }
+ }
+
+ } catch( e ) {
+ ret = array;
+ }
+
+ return ret;
+ },
+
+ grep: function( elems, callback, inv ) {
+ var ret = [];
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( var i = 0, length = elems.length; i < length; i++ )
+ if ( !inv != !callback( elems[ i ], i ) )
+ ret.push( elems[ i ] );
+
+ return ret;
+ },
+
+ map: function( elems, callback ) {
+ var ret = [];
+
+ // Go through the array, translating each of the items to their
+ // new value (or values).
+ for ( var i = 0, length = elems.length; i < length; i++ ) {
+ var value = callback( elems[ i ], i );
+
+ if ( value != null )
+ ret[ ret.length ] = value;
+ }
+
+ return ret.concat.apply( [], ret );
+ }
+});
+
+// Use of jQuery.browser is deprecated.
+// It's included for backwards compatibility and plugins,
+// although they should work to migrate away.
+
+var userAgent = navigator.userAgent.toLowerCase();
+
+// Figure out what browser is being used
+jQuery.browser = {
+ version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
+ safari: /webkit/.test( userAgent ),
+ opera: /opera/.test( userAgent ),
+ msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
+ mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
+};
+
+jQuery.each({
+ parent: function(elem){return elem.parentNode;},
+ parents: function(elem){return jQuery.dir(elem,"parentNode");},
+ next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
+ prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},
+ nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},
+ prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},
+ siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},
+ children: function(elem){return jQuery.sibling(elem.firstChild);},
+ contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}
+}, function(name, fn){
+ jQuery.fn[ name ] = function( selector ) {
+ var ret = jQuery.map( this, fn );
+
+ if ( selector && typeof selector == "string" )
+ ret = jQuery.multiFilter( selector, ret );
+
+ return this.pushStack( jQuery.unique( ret ), name, selector );
+ };
+});
+
+jQuery.each({
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function(name, original){
+ jQuery.fn[ name ] = function( selector ) {
+ var ret = [], insert = jQuery( selector );
+
+ for ( var i = 0, l = insert.length; i < l; i++ ) {
+ var elems = (i > 0 ? this.clone(true) : this).get();
+ jQuery.fn[ original ].apply( jQuery(insert[i]), elems );
+ ret = ret.concat( elems );
+ }
+
+ return this.pushStack( ret, name, selector );
+ };
+});
+
+jQuery.each({
+ removeAttr: function( name ) {
+ jQuery.attr( this, name, "" );
+ if (this.nodeType == 1)
+ this.removeAttribute( name );
+ },
+
+ addClass: function( classNames ) {
+ jQuery.className.add( this, classNames );
+ },
+
+ removeClass: function( classNames ) {
+ jQuery.className.remove( this, classNames );
+ },
+
+ toggleClass: function( classNames, state ) {
+ if( typeof state !== "boolean" )
+ state = !jQuery.className.has( this, classNames );
+ jQuery.className[ state ? "add" : "remove" ]( this, classNames );
+ },
+
+ remove: function( selector ) {
+ if ( !selector || jQuery.filter( selector, [ this ] ).length ) {
+ // Prevent memory leaks
+ jQuery( "*", this ).add([this]).each(function(){
+ jQuery.event.remove(this);
+ jQuery.removeData(this);
+ });
+ if (this.parentNode)
+ this.parentNode.removeChild( this );
+ }
+ },
+
+ empty: function() {
+ // Remove element nodes and prevent memory leaks
+ jQuery(this).children().remove();
+
+ // Remove any remaining nodes
+ while ( this.firstChild )
+ this.removeChild( this.firstChild );
+ }
+}, function(name, fn){
+ jQuery.fn[ name ] = function(){
+ return this.each( fn, arguments );
+ };
+});
+
+// Helper function used by the dimensions and offset modules
+function num(elem, prop) {
+ return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
+}
+var expando = "jQuery" + now(), uuid = 0, windowData = {};
+
+jQuery.extend({
+ cache: {},
+
+ data: function( elem, name, data ) {
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var id = elem[ expando ];
+
+ // Compute a unique ID for the element
+ if ( !id )
+ id = elem[ expando ] = ++uuid;
+
+ // Only generate the data cache if we're
+ // trying to access or manipulate it
+ if ( name && !jQuery.cache[ id ] )
+ jQuery.cache[ id ] = {};
+
+ // Prevent overriding the named cache with undefined values
+ if ( data !== undefined )
+ jQuery.cache[ id ][ name ] = data;
+
+ // Return the named cache data, or the ID for the element
+ return name ?
+ jQuery.cache[ id ][ name ] :
+ id;
+ },
+
+ removeData: function( elem, name ) {
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var id = elem[ expando ];
+
+ // If we want to remove a specific section of the element's data
+ if ( name ) {
+ if ( jQuery.cache[ id ] ) {
+ // Remove the section of cache data
+ delete jQuery.cache[ id ][ name ];
+
+ // If we've removed all the data, remove the element's cache
+ name = "";
+
+ for ( name in jQuery.cache[ id ] )
+ break;
+
+ if ( !name )
+ jQuery.removeData( elem );
+ }
+
+ // Otherwise, we want to remove all of the element's data
+ } else {
+ // Clean up the element expando
+ try {
+ delete elem[ expando ];
+ } catch(e){
+ // IE has trouble directly removing the expando
+ // but it's ok with using removeAttribute
+ if ( elem.removeAttribute )
+ elem.removeAttribute( expando );
+ }
+
+ // Completely remove the data cache
+ delete jQuery.cache[ id ];
+ }
+ },
+ queue: function( elem, type, data ) {
+ if ( elem ){
+
+ type = (type || "fx") + "queue";
+
+ var q = jQuery.data( elem, type );
+
+ if ( !q || jQuery.isArray(data) )
+ q = jQuery.data( elem, type, jQuery.makeArray(data) );
+ else if( data )
+ q.push( data );
+
+ }
+ return q;
+ },
+
+ dequeue: function( elem, type ){
+ var queue = jQuery.queue( elem, type ),
+ fn = queue.shift();
+
+ if( !type || type === "fx" )
+ fn = queue[0];
+
+ if( fn !== undefined )
+ fn.call(elem);
+ }
+});
+
+jQuery.fn.extend({
+ data: function( key, value ){
+ var parts = key.split(".");
+ parts[1] = parts[1] ? "." + parts[1] : "";
+
+ if ( value === undefined ) {
+ var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+ if ( data === undefined && this.length )
+ data = jQuery.data( this[0], key );
+
+ return data === undefined && parts[1] ?
+ this.data( parts[0] ) :
+ data;
+ } else
+ return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
+ jQuery.data( this, key, value );
+ });
+ },
+
+ removeData: function( key ){
+ return this.each(function(){
+ jQuery.removeData( this, key );
+ });
+ },
+ queue: function(type, data){
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ }
+
+ if ( data === undefined )
+ return jQuery.queue( this[0], type );
+
+ return this.each(function(){
+ var queue = jQuery.queue( this, type, data );
+
+ if( type == "fx" && queue.length == 1 )
+ queue[0].call(this);
+ });
+ },
+ dequeue: function(type){
+ return this.each(function(){
+ jQuery.dequeue( this, type );
+ });
+ }
+});/*!
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,
+ done = 0,
+ toString = Object.prototype.toString;
+
+var Sizzle = function(selector, context, results, seed) {
+ results = results || [];
+ context = context || document;
+
+ if ( context.nodeType !== 1 && context.nodeType !== 9 )
+ return [];
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ var parts = [], m, set, checkSet, check, mode, extra, prune = true;
+
+ // Reset the position of the chunker regexp (start from head)
+ chunker.lastIndex = 0;
+
+ while ( (m = chunker.exec(selector)) !== null ) {
+ parts.push( m[1] );
+
+ if ( m[2] ) {
+ extra = RegExp.rightContext;
+ break;
+ }
+ }
+
+ if ( parts.length > 1 && origPOS.exec( selector ) ) {
+ if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+ set = posProcess( parts[0] + parts[1], context );
+ } else {
+ set = Expr.relative[ parts[0] ] ?
+ [ context ] :
+ Sizzle( parts.shift(), context );
+
+ while ( parts.length ) {
+ selector = parts.shift();
+
+ if ( Expr.relative[ selector ] )
+ selector += parts.shift();
+
+ set = posProcess( selector, set );
+ }
+ }
+ } else {
+ var ret = seed ?
+ { expr: parts.pop(), set: makeArray(seed) } :
+ Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) );
+ set = Sizzle.filter( ret.expr, ret.set );
+
+ if ( parts.length > 0 ) {
+ checkSet = makeArray(set);
+ } else {
+ prune = false;
+ }
+
+ while ( parts.length ) {
+ var cur = parts.pop(), pop = cur;
+
+ if ( !Expr.relative[ cur ] ) {
+ cur = "";
+ } else {
+ pop = parts.pop();
+ }
+
+ if ( pop == null ) {
+ pop = context;
+ }
+
+ Expr.relative[ cur ]( checkSet, pop, isXML(context) );
+ }
+ }
+
+ if ( !checkSet ) {
+ checkSet = set;
+ }
+
+ if ( !checkSet ) {
+ throw "Syntax error, unrecognized expression: " + (cur || selector);
+ }
+
+ if ( toString.call(checkSet) === "[object Array]" ) {
+ if ( !prune ) {
+ results.push.apply( results, checkSet );
+ } else if ( context.nodeType === 1 ) {
+ for ( var i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) {
+ results.push( set[i] );
+ }
+ }
+ } else {
+ for ( var i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+ results.push( set[i] );
+ }
+ }
+ }
+ } else {
+ makeArray( checkSet, results );
+ }
+
+ if ( extra ) {
+ Sizzle( extra, context, results, seed );
+
+ if ( sortOrder ) {
+ hasDuplicate = false;
+ results.sort(sortOrder);
+
+ if ( hasDuplicate ) {
+ for ( var i = 1; i < results.length; i++ ) {
+ if ( results[i] === results[i-1] ) {
+ results.splice(i--, 1);
+ }
+ }
+ }
+ }
+ }
+
+ return results;
+};
+
+Sizzle.matches = function(expr, set){
+ return Sizzle(expr, null, null, set);
+};
+
+Sizzle.find = function(expr, context, isXML){
+ var set, match;
+
+ if ( !expr ) {
+ return [];
+ }
+
+ for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
+ var type = Expr.order[i], match;
+
+ if ( (match = Expr.match[ type ].exec( expr )) ) {
+ var left = RegExp.leftContext;
+
+ if ( left.substr( left.length - 1 ) !== "\\" ) {
+ match[1] = (match[1] || "").replace(/\\/g, "");
+ set = Expr.find[ type ]( match, context, isXML );
+ if ( set != null ) {
+ expr = expr.replace( Expr.match[ type ], "" );
+ break;
+ }
+ }
+ }
+ }
+
+ if ( !set ) {
+ set = context.getElementsByTagName("*");
+ }
+
+ return {set: set, expr: expr};
+};
+
+Sizzle.filter = function(expr, set, inplace, not){
+ var old = expr, result = [], curLoop = set, match, anyFound,
+ isXMLFilter = set && set[0] && isXML(set[0]);
+
+ while ( expr && set.length ) {
+ for ( var type in Expr.filter ) {
+ if ( (match = Expr.match[ type ].exec( expr )) != null ) {
+ var filter = Expr.filter[ type ], found, item;
+ anyFound = false;
+
+ if ( curLoop == result ) {
+ result = [];
+ }
+
+ if ( Expr.preFilter[ type ] ) {
+ match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+ if ( !match ) {
+ anyFound = found = true;
+ } else if ( match === true ) {
+ continue;
+ }
+ }
+
+ if ( match ) {
+ for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
+ if ( item ) {
+ found = filter( item, match, i, curLoop );
+ var pass = not ^ !!found;
+
+ if ( inplace && found != null ) {
+ if ( pass ) {
+ anyFound = true;
+ } else {
+ curLoop[i] = false;
+ }
+ } else if ( pass ) {
+ result.push( item );
+ anyFound = true;
+ }
+ }
+ }
+ }
+
+ if ( found !== undefined ) {
+ if ( !inplace ) {
+ curLoop = result;
+ }
+
+ expr = expr.replace( Expr.match[ type ], "" );
+
+ if ( !anyFound ) {
+ return [];
+ }
+
+ break;
+ }
+ }
+ }
+
+ // Improper expression
+ if ( expr == old ) {
+ if ( anyFound == null ) {
+ throw "Syntax error, unrecognized expression: " + expr;
+ } else {
+ break;
+ }
+ }
+
+ old = expr;
+ }
+
+ return curLoop;
+};
+
+var Expr = Sizzle.selectors = {
+ order: [ "ID", "NAME", "TAG" ],
+ match: {
+ ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
+ CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
+ NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
+ ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
+ TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
+ CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
+ POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
+ PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
+ },
+ attrMap: {
+ "class": "className",
+ "for": "htmlFor"
+ },
+ attrHandle: {
+ href: function(elem){
+ return elem.getAttribute("href");
+ }
+ },
+ relative: {
+ "+": function(checkSet, part, isXML){
+ var isPartStr = typeof part === "string",
+ isTag = isPartStr && !/\W/.test(part),
+ isPartStrNotTag = isPartStr && !isTag;
+
+ if ( isTag && !isXML ) {
+ part = part.toUpperCase();
+ }
+
+ for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+ if ( (elem = checkSet[i]) ) {
+ while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+ checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ?
+ elem || false :
+ elem === part;
+ }
+ }
+
+ if ( isPartStrNotTag ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ },
+ ">": function(checkSet, part, isXML){
+ var isPartStr = typeof part === "string";
+
+ if ( isPartStr && !/\W/.test(part) ) {
+ part = isXML ? part : part.toUpperCase();
+
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ var parent = elem.parentNode;
+ checkSet[i] = parent.nodeName === part ? parent : false;
+ }
+ }
+ } else {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ checkSet[i] = isPartStr ?
+ elem.parentNode :
+ elem.parentNode === part;
+ }
+ }
+
+ if ( isPartStr ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ }
+ },
+ "": function(checkSet, part, isXML){
+ var doneName = done++, checkFn = dirCheck;
+
+ if ( !part.match(/\W/) ) {
+ var nodeCheck = part = isXML ? part : part.toUpperCase();
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
+ },
+ "~": function(checkSet, part, isXML){
+ var doneName = done++, checkFn = dirCheck;
+
+ if ( typeof part === "string" && !part.match(/\W/) ) {
+ var nodeCheck = part = isXML ? part : part.toUpperCase();
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
+ }
+ },
+ find: {
+ ID: function(match, context, isXML){
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ return m ? [m] : [];
+ }
+ },
+ NAME: function(match, context, isXML){
+ if ( typeof context.getElementsByName !== "undefined" ) {
+ var ret = [], results = context.getElementsByName(match[1]);
+
+ for ( var i = 0, l = results.length; i < l; i++ ) {
+ if ( results[i].getAttribute("name") === match[1] ) {
+ ret.push( results[i] );
+ }
+ }
+
+ return ret.length === 0 ? null : ret;
+ }
+ },
+ TAG: function(match, context){
+ return context.getElementsByTagName(match[1]);
+ }
+ },
+ preFilter: {
+ CLASS: function(match, curLoop, inplace, result, not, isXML){
+ match = " " + match[1].replace(/\\/g, "") + " ";
+
+ if ( isXML ) {
+ return match;
+ }
+
+ for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+ if ( elem ) {
+ if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) {
+ if ( !inplace )
+ result.push( elem );
+ } else if ( inplace ) {
+ curLoop[i] = false;
+ }
+ }
+ }
+
+ return false;
+ },
+ ID: function(match){
+ return match[1].replace(/\\/g, "");
+ },
+ TAG: function(match, curLoop){
+ for ( var i = 0; curLoop[i] === false; i++ ){}
+ return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
+ },
+ CHILD: function(match){
+ if ( match[1] == "nth" ) {
+ // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+ var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
+ match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" ||
+ !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+ // calculate the numbers (first)n+(last) including if they are negative
+ match[2] = (test[1] + (test[2] || 1)) - 0;
+ match[3] = test[3] - 0;
+ }
+
+ // TODO: Move to normal caching system
+ match[0] = done++;
+
+ return match;
+ },
+ ATTR: function(match, curLoop, inplace, result, not, isXML){
+ var name = match[1].replace(/\\/g, "");
+
+ if ( !isXML && Expr.attrMap[name] ) {
+ match[1] = Expr.attrMap[name];
+ }
+
+ if ( match[2] === "~=" ) {
+ match[4] = " " + match[4] + " ";
+ }
+
+ return match;
+ },
+ PSEUDO: function(match, curLoop, inplace, result, not){
+ if ( match[1] === "not" ) {
+ // If we're dealing with a complex expression, or a simple one
+ if ( match[3].match(chunker).length > 1 || /^\w/.test(match[3]) ) {
+ match[3] = Sizzle(match[3], null, null, curLoop);
+ } else {
+ var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+ if ( !inplace ) {
+ result.push.apply( result, ret );
+ }
+ return false;
+ }
+ } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+ return true;
+ }
+
+ return match;
+ },
+ POS: function(match){
+ match.unshift( true );
+ return match;
+ }
+ },
+ filters: {
+ enabled: function(elem){
+ return elem.disabled === false && elem.type !== "hidden";
+ },
+ disabled: function(elem){
+ return elem.disabled === true;
+ },
+ checked: function(elem){
+ return elem.checked === true;
+ },
+ selected: function(elem){
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ elem.parentNode.selectedIndex;
+ return elem.selected === true;
+ },
+ parent: function(elem){
+ return !!elem.firstChild;
+ },
+ empty: function(elem){
+ return !elem.firstChild;
+ },
+ has: function(elem, i, match){
+ return !!Sizzle( match[3], elem ).length;
+ },
+ header: function(elem){
+ return /h\d/i.test( elem.nodeName );
+ },
+ text: function(elem){
+ return "text" === elem.type;
+ },
+ radio: function(elem){
+ return "radio" === elem.type;
+ },
+ checkbox: function(elem){
+ return "checkbox" === elem.type;
+ },
+ file: function(elem){
+ return "file" === elem.type;
+ },
+ password: function(elem){
+ return "password" === elem.type;
+ },
+ submit: function(elem){
+ return "submit" === elem.type;
+ },
+ image: function(elem){
+ return "image" === elem.type;
+ },
+ reset: function(elem){
+ return "reset" === elem.type;
+ },
+ button: function(elem){
+ return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON";
+ },
+ input: function(elem){
+ return /input|select|textarea|button/i.test(elem.nodeName);
+ }
+ },
+ setFilters: {
+ first: function(elem, i){
+ return i === 0;
+ },
+ last: function(elem, i, match, array){
+ return i === array.length - 1;
+ },
+ even: function(elem, i){
+ return i % 2 === 0;
+ },
+ odd: function(elem, i){
+ return i % 2 === 1;
+ },
+ lt: function(elem, i, match){
+ return i < match[3] - 0;
+ },
+ gt: function(elem, i, match){
+ return i > match[3] - 0;
+ },
+ nth: function(elem, i, match){
+ return match[3] - 0 == i;
+ },
+ eq: function(elem, i, match){
+ return match[3] - 0 == i;
+ }
+ },
+ filter: {
+ PSEUDO: function(elem, match, i, array){
+ var name = match[1], filter = Expr.filters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ } else if ( name === "contains" ) {
+ return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0;
+ } else if ( name === "not" ) {
+ var not = match[3];
+
+ for ( var i = 0, l = not.length; i < l; i++ ) {
+ if ( not[i] === elem ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+ },
+ CHILD: function(elem, match){
+ var type = match[1], node = elem;
+ switch (type) {
+ case 'only':
+ case 'first':
+ while (node = node.previousSibling) {
+ if ( node.nodeType === 1 ) return false;
+ }
+ if ( type == 'first') return true;
+ node = elem;
+ case 'last':
+ while (node = node.nextSibling) {
+ if ( node.nodeType === 1 ) return false;
+ }
+ return true;
+ case 'nth':
+ var first = match[2], last = match[3];
+
+ if ( first == 1 && last == 0 ) {
+ return true;
+ }
+
+ var doneName = match[0],
+ parent = elem.parentNode;
+
+ if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
+ var count = 0;
+ for ( node = parent.firstChild; node; node = node.nextSibling ) {
+ if ( node.nodeType === 1 ) {
+ node.nodeIndex = ++count;
+ }
+ }
+ parent.sizcache = doneName;
+ }
+
+ var diff = elem.nodeIndex - last;
+ if ( first == 0 ) {
+ return diff == 0;
+ } else {
+ return ( diff % first == 0 && diff / first >= 0 );
+ }
+ }
+ },
+ ID: function(elem, match){
+ return elem.nodeType === 1 && elem.getAttribute("id") === match;
+ },
+ TAG: function(elem, match){
+ return (match === "*" && elem.nodeType === 1) || elem.nodeName === match;
+ },
+ CLASS: function(elem, match){
+ return (" " + (elem.className || elem.getAttribute("class")) + " ")
+ .indexOf( match ) > -1;
+ },
+ ATTR: function(elem, match){
+ var name = match[1],
+ result = Expr.attrHandle[ name ] ?
+ Expr.attrHandle[ name ]( elem ) :
+ elem[ name ] != null ?
+ elem[ name ] :
+ elem.getAttribute( name ),
+ value = result + "",
+ type = match[2],
+ check = match[4];
+
+ return result == null ?
+ type === "!=" :
+ type === "=" ?
+ value === check :
+ type === "*=" ?
+ value.indexOf(check) >= 0 :
+ type === "~=" ?
+ (" " + value + " ").indexOf(check) >= 0 :
+ !check ?
+ value && result !== false :
+ type === "!=" ?
+ value != check :
+ type === "^=" ?
+ value.indexOf(check) === 0 :
+ type === "$=" ?
+ value.substr(value.length - check.length) === check :
+ type === "|=" ?
+ value === check || value.substr(0, check.length + 1) === check + "-" :
+ false;
+ },
+ POS: function(elem, match, i, array){
+ var name = match[2], filter = Expr.setFilters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ }
+ }
+ }
+};
+
+var origPOS = Expr.match.POS;
+
+for ( var type in Expr.match ) {
+ Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
+}
+
+var makeArray = function(array, results) {
+ array = Array.prototype.slice.call( array );
+
+ if ( results ) {
+ results.push.apply( results, array );
+ return results;
+ }
+
+ return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+try {
+ Array.prototype.slice.call( document.documentElement.childNodes );
+
+// Provide a fallback method if it does not work
+} catch(e){
+ makeArray = function(array, results) {
+ var ret = results || [];
+
+ if ( toString.call(array) === "[object Array]" ) {
+ Array.prototype.push.apply( ret, array );
+ } else {
+ if ( typeof array.length === "number" ) {
+ for ( var i = 0, l = array.length; i < l; i++ ) {
+ ret.push( array[i] );
+ }
+ } else {
+ for ( var i = 0; array[i]; i++ ) {
+ ret.push( array[i] );
+ }
+ }
+ }
+
+ return ret;
+ };
+}
+
+var sortOrder;
+
+if ( document.documentElement.compareDocumentPosition ) {
+ sortOrder = function( a, b ) {
+ var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+} else if ( "sourceIndex" in document.documentElement ) {
+ sortOrder = function( a, b ) {
+ var ret = a.sourceIndex - b.sourceIndex;
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+} else if ( document.createRange ) {
+ sortOrder = function( a, b ) {
+ var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
+ aRange.selectNode(a);
+ aRange.collapse(true);
+ bRange.selectNode(b);
+ bRange.collapse(true);
+ var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+}
+
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+ // We're going to inject a fake input element with a specified name
+ var form = document.createElement("form"),
+ id = "script" + (new Date).getTime();
+ form.innerHTML = "<input name='" + id + "'/>";
+
+ // Inject it into the root element, check its status, and remove it quickly
+ var root = document.documentElement;
+ root.insertBefore( form, root.firstChild );
+
+ // The workaround has to do additional checks after a getElementById
+ // Which slows things down for other browsers (hence the branching)
+ if ( !!document.getElementById( id ) ) {
+ Expr.find.ID = function(match, context, isXML){
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
+ }
+ };
+
+ Expr.filter.ID = function(elem, match){
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+ return elem.nodeType === 1 && node && node.nodeValue === match;
+ };
+ }
+
+ root.removeChild( form );
+})();
+
+(function(){
+ // Check to see if the browser returns only elements
+ // when doing getElementsByTagName("*")
+
+ // Create a fake element
+ var div = document.createElement("div");
+ div.appendChild( document.createComment("") );
+
+ // Make sure no comments are found
+ if ( div.getElementsByTagName("*").length > 0 ) {
+ Expr.find.TAG = function(match, context){
+ var results = context.getElementsByTagName(match[1]);
+
+ // Filter out possible comments
+ if ( match[1] === "*" ) {
+ var tmp = [];
+
+ for ( var i = 0; results[i]; i++ ) {
+ if ( results[i].nodeType === 1 ) {
+ tmp.push( results[i] );
+ }
+ }
+
+ results = tmp;
+ }
+
+ return results;
+ };
+ }
+
+ // Check to see if an attribute returns normalized href attributes
+ div.innerHTML = "<a href='#'></a>";
+ if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+ div.firstChild.getAttribute("href") !== "#" ) {
+ Expr.attrHandle.href = function(elem){
+ return elem.getAttribute("href", 2);
+ };
+ }
+})();
+
+if ( document.querySelectorAll ) (function(){
+ var oldSizzle = Sizzle, div = document.createElement("div");
+ div.innerHTML = "<p class='TEST'></p>";
+
+ // Safari can't handle uppercase or unicode characters when
+ // in quirks mode.
+ if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+ return;
+ }
+
+ Sizzle = function(query, context, extra, seed){
+ context = context || document;
+
+ // Only use querySelectorAll on non-XML documents
+ // (ID selectors don't work in non-HTML documents)
+ if ( !seed && context.nodeType === 9 && !isXML(context) ) {
+ try {
+ return makeArray( context.querySelectorAll(query), extra );
+ } catch(e){}
+ }
+
+ return oldSizzle(query, context, extra, seed);
+ };
+
+ Sizzle.find = oldSizzle.find;
+ Sizzle.filter = oldSizzle.filter;
+ Sizzle.selectors = oldSizzle.selectors;
+ Sizzle.matches = oldSizzle.matches;
+})();
+
+if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){
+ var div = document.createElement("div");
+ div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+ // Opera can't find a second classname (in 9.6)
+ if ( div.getElementsByClassName("e").length === 0 )
+ return;
+
+ // Safari caches class attributes, doesn't catch changes (in 3.2)
+ div.lastChild.className = "e";
+
+ if ( div.getElementsByClassName("e").length === 1 )
+ return;
+
+ Expr.order.splice(1, 0, "CLASS");
+ Expr.find.CLASS = function(match, context, isXML) {
+ if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+ return context.getElementsByClassName(match[1]);
+ }
+ };
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ var sibDir = dir == "previousSibling" && !isXML;
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ if ( sibDir && elem.nodeType === 1 ){
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ elem = elem[dir];
+ var match = false;
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 && !isXML ){
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if ( elem.nodeName === cur ) {
+ match = elem;
+ break;
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ var sibDir = dir == "previousSibling" && !isXML;
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ if ( sibDir && elem.nodeType === 1 ) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ elem = elem[dir];
+ var match = false;
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 ) {
+ if ( !isXML ) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ if ( typeof cur !== "string" ) {
+ if ( elem === cur ) {
+ match = true;
+ break;
+ }
+
+ } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+ match = elem;
+ break;
+ }
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+var contains = document.compareDocumentPosition ? function(a, b){
+ return a.compareDocumentPosition(b) & 16;
+} : function(a, b){
+ return a !== b && (a.contains ? a.contains(b) : true);
+};
+
+var isXML = function(elem){
+ return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
+ !!elem.ownerDocument && isXML( elem.ownerDocument );
+};
+
+var posProcess = function(selector, context){
+ var tmpSet = [], later = "", match,
+ root = context.nodeType ? [context] : context;
+
+ // Position selectors must be done after the filter
+ // And so must :not(positional) so we move all PSEUDOs to the end
+ while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+ later += match[0];
+ selector = selector.replace( Expr.match.PSEUDO, "" );
+ }
+
+ selector = Expr.relative[selector] ? selector + "*" : selector;
+
+ for ( var i = 0, l = root.length; i < l; i++ ) {
+ Sizzle( selector, root[i], tmpSet );
+ }
+
+ return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+jQuery.find = Sizzle;
+jQuery.filter = Sizzle.filter;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.filters;
+
+Sizzle.selectors.filters.hidden = function(elem){
+ return elem.offsetWidth === 0 || elem.offsetHeight === 0;
+};
+
+Sizzle.selectors.filters.visible = function(elem){
+ return elem.offsetWidth > 0 || elem.offsetHeight > 0;
+};
+
+Sizzle.selectors.filters.animated = function(elem){
+ return jQuery.grep(jQuery.timers, function(fn){
+ return elem === fn.elem;
+ }).length;
+};
+
+jQuery.multiFilter = function( expr, elems, not ) {
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return Sizzle.matches(expr, elems);
+};
+
+jQuery.dir = function( elem, dir ){
+ var matched = [], cur = elem[dir];
+ while ( cur && cur != document ) {
+ if ( cur.nodeType == 1 )
+ matched.push( cur );
+ cur = cur[dir];
+ }
+ return matched;
+};
+
+jQuery.nth = function(cur, result, dir, elem){
+ result = result || 1;
+ var num = 0;
+
+ for ( ; cur; cur = cur[dir] )
+ if ( cur.nodeType == 1 && ++num == result )
+ break;
+
+ return cur;
+};
+
+jQuery.sibling = function(n, elem){
+ var r = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType == 1 && n != elem )
+ r.push( n );
+ }
+
+ return r;
+};
+
+return;
+
+window.Sizzle = Sizzle;
+
+})();
+/*
+ * A number of helper functions used for managing events.
+ * Many of the ideas behind this code originated from
+ * Dean Edwards' addEvent library.
+ */
+jQuery.event = {
+
+ // Bind an event to an element
+ // Original by Dean Edwards
+ add: function(elem, types, handler, data) {
+ if ( elem.nodeType == 3 || elem.nodeType == 8 )
+ return;
+
+ // For whatever reason, IE has trouble passing the window object
+ // around, causing it to be cloned in the process
+ if ( elem.setInterval && elem != window )
+ elem = window;
+
+ // Make sure that the function being executed has a unique ID
+ if ( !handler.guid )
+ handler.guid = this.guid++;
+
+ // if data is passed, bind to handler
+ if ( data !== undefined ) {
+ // Create temporary function pointer to original handler
+ var fn = handler;
+
+ // Create unique handler function, wrapped around original handler
+ handler = this.proxy( fn );
+
+ // Store data in unique handler
+ handler.data = data;
+ }
+
+ // Init the element's event structure
+ var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
+ handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){
+ // Handle the second event of a trigger and when
+ // an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
+ jQuery.event.handle.apply(arguments.callee.elem, arguments) :
+ undefined;
+ });
+ // Add elem as a property of the handle function
+ // This is to prevent a memory leak with non-native
+ // event in IE.
+ handle.elem = elem;
+
+ // Handle multiple events separated by a space
+ // jQuery(...).bind("mouseover mouseout", fn);
+ jQuery.each(types.split(/\s+/), function(index, type) {
+ // Namespaced event handlers
+ var namespaces = type.split(".");
+ type = namespaces.shift();
+ handler.type = namespaces.slice().sort().join(".");
+
+ // Get the current list of functions bound to this event
+ var handlers = events[type];
+
+ if ( jQuery.event.specialAll[type] )
+ jQuery.event.specialAll[type].setup.call(elem, data, namespaces);
+
+ // Init the event handler queue
+ if (!handlers) {
+ handlers = events[type] = {};
+
+ // Check for a special event handler
+ // Only use addEventListener/attachEvent if the special
+ // events handler returns false
+ if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem, data, namespaces) === false ) {
+ // Bind the global event handler to the element
+ if (elem.addEventListener)
+ elem.addEventListener(type, handle, false);
+ else if (elem.attachEvent)
+ elem.attachEvent("on" + type, handle);
+ }
+ }
+
+ // Add the function to the element's handler list
+ handlers[handler.guid] = handler;
+
+ // Keep track of which events have been used, for global triggering
+ jQuery.event.global[type] = true;
+ });
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ guid: 1,
+ global: {},
+
+ // Detach an event or set of events from an element
+ remove: function(elem, types, handler) {
+ // don't do events on text and comment nodes
+ if ( elem.nodeType == 3 || elem.nodeType == 8 )
+ return;
+
+ var events = jQuery.data(elem, "events"), ret, index;
+
+ if ( events ) {
+ // Unbind all events for the element
+ if ( types === undefined || (typeof types === "string" && types.charAt(0) == ".") )
+ for ( var type in events )
+ this.remove( elem, type + (types || "") );
+ else {
+ // types is actually an event object here
+ if ( types.type ) {
+ handler = types.handler;
+ types = types.type;
+ }
+
+ // Handle multiple events seperated by a space
+ // jQuery(...).unbind("mouseover mouseout", fn);
+ jQuery.each(types.split(/\s+/), function(index, type){
+ // Namespaced event handlers
+ var namespaces = type.split(".");
+ type = namespaces.shift();
+ var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
+
+ if ( events[type] ) {
+ // remove the given handler for the given type
+ if ( handler )
+ delete events[type][handler.guid];
+
+ // remove all handlers for the given type
+ else
+ for ( var handle in events[type] )
+ // Handle the removal of namespaced events
+ if ( namespace.test(events[type][handle].type) )
+ delete events[type][handle];
+
+ if ( jQuery.event.specialAll[type] )
+ jQuery.event.specialAll[type].teardown.call(elem, namespaces);
+
+ // remove generic event handler if no more handlers exist
+ for ( ret in events[type] ) break;
+ if ( !ret ) {
+ if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem, namespaces) === false ) {
+ if (elem.removeEventListener)
+ elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
+ else if (elem.detachEvent)
+ elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
+ }
+ ret = null;
+ delete events[type];
+ }
+ }
+ });
+ }
+
+ // Remove the expando if it's no longer used
+ for ( ret in events ) break;
+ if ( !ret ) {
+ var handle = jQuery.data( elem, "handle" );
+ if ( handle ) handle.elem = null;
+ jQuery.removeData( elem, "events" );
+ jQuery.removeData( elem, "handle" );
+ }
+ }
+ },
+
+ // bubbling is internal
+ trigger: function( event, data, elem, bubbling ) {
+ // Event object or event type
+ var type = event.type || event;
+
+ if( !bubbling ){
+ event = typeof event === "object" ?
+ // jQuery.Event object
+ event[expando] ? event :
+ // Object literal
+ jQuery.extend( jQuery.Event(type), event ) :
+ // Just the event type (string)
+ jQuery.Event(type);
+
+ if ( type.indexOf("!") >= 0 ) {
+ event.type = type = type.slice(0, -1);
+ event.exclusive = true;
+ }
+
+ // Handle a global trigger
+ if ( !elem ) {
+ // Don't bubble custom events when global (to avoid too much overhead)
+ event.stopPropagation();
+ // Only trigger if we've ever bound an event for it
+ if ( this.global[type] )
+ jQuery.each( jQuery.cache, function(){
+ if ( this.events && this.events[type] )
+ jQuery.event.trigger( event, data, this.handle.elem );
+ });
+ }
+
+ // Handle triggering a single element
+
+ // don't do events on text and comment nodes
+ if ( !elem || elem.nodeType == 3 || elem.nodeType == 8 )
+ return undefined;
+
+ // Clean up in case it is reused
+ event.result = undefined;
+ event.target = elem;
+
+ // Clone the incoming data, if any
+ data = jQuery.makeArray(data);
+ data.unshift( event );
+ }
+
+ event.currentTarget = elem;
+
+ // Trigger the event, it is assumed that "handle" is a function
+ var handle = jQuery.data(elem, "handle");
+ if ( handle )
+ handle.apply( elem, data );
+
+ // Handle triggering native .onfoo handlers (and on links since we don't call .click() for links)
+ if ( (!elem[type] || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
+ event.result = false;
+
+ // Trigger the native events (except for clicks on links)
+ if ( !bubbling && elem[type] && !event.isDefaultPrevented() && !(jQuery.nodeName(elem, 'a') && type == "click") ) {
+ this.triggered = true;
+ try {
+ elem[ type ]();
+ // prevent IE from throwing an error for some hidden elements
+ } catch (e) {}
+ }
+
+ this.triggered = false;
+
+ if ( !event.isPropagationStopped() ) {
+ var parent = elem.parentNode || elem.ownerDocument;
+ if ( parent )
+ jQuery.event.trigger(event, data, parent, true);
+ }
+ },
+
+ handle: function(event) {
+ // returned undefined or false
+ var all, handlers;
+
+ event = arguments[0] = jQuery.event.fix( event || window.event );
+ event.currentTarget = this;
+
+ // Namespaced event handlers
+ var namespaces = event.type.split(".");
+ event.type = namespaces.shift();
+
+ // Cache this now, all = true means, any handler
+ all = !namespaces.length && !event.exclusive;
+
+ var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
+
+ handlers = ( jQuery.data(this, "events") || {} )[event.type];
+
+ for ( var j in handlers ) {
+ var handler = handlers[j];
+
+ // Filter the functions by class
+ if ( all || namespace.test(handler.type) ) {
+ // Pass in a reference to the handler function itself
+ // So that we can later remove it
+ event.handler = handler;
+ event.data = handler.data;
+
+ var ret = handler.apply(this, arguments);
+
+ if( ret !== undefined ){
+ event.result = ret;
+ if ( ret === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+
+ if( event.isImmediatePropagationStopped() )
+ break;
+
+ }
+ }
+ },
+
+ props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+
+ fix: function(event) {
+ if ( event[expando] )
+ return event;
+
+ // store a copy of the original event object
+ // and "clone" to set read-only properties
+ var originalEvent = event;
+ event = jQuery.Event( originalEvent );
+
+ for ( var i = this.props.length, prop; i; ){
+ prop = this.props[ --i ];
+ event[ prop ] = originalEvent[ prop ];
+ }
+
+ // Fix target property, if necessary
+ if ( !event.target )
+ event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either
+
+ // check if target is a textnode (safari)
+ if ( event.target.nodeType == 3 )
+ event.target = event.target.parentNode;
+
+ // Add relatedTarget, if necessary
+ if ( !event.relatedTarget && event.fromElement )
+ event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if ( event.pageX == null && event.clientX != null ) {
+ var doc = document.documentElement, body = document.body;
+ event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
+ event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
+ }
+
+ // Add which for key events
+ if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
+ event.which = event.charCode || event.keyCode;
+
+ // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
+ if ( !event.metaKey && event.ctrlKey )
+ event.metaKey = event.ctrlKey;
+
+ // Add which for click: 1 == left; 2 == middle; 3 == right
+ // Note: button is not normalized, so don't use it
+ if ( !event.which && event.button )
+ event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
+
+ return event;
+ },
+
+ proxy: function( fn, proxy ){
+ proxy = proxy || function(){ return fn.apply(this, arguments); };
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++;
+ // So proxy can be declared as an argument
+ return proxy;
+ },
+
+ special: {
+ ready: {
+ // Make sure the ready event is setup
+ setup: bindReady,
+ teardown: function() {}
+ }
+ },
+
+ specialAll: {
+ live: {
+ setup: function( selector, namespaces ){
+ jQuery.event.add( this, namespaces[0], liveHandler );
+ },
+ teardown: function( namespaces ){
+ if ( namespaces.length ) {
+ var remove = 0, name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)");
+
+ jQuery.each( (jQuery.data(this, "events").live || {}), function(){
+ if ( name.test(this.type) )
+ remove++;
+ });
+
+ if ( remove < 1 )
+ jQuery.event.remove( this, namespaces[0], liveHandler );
+ }
+ }
+ }
+ }
+};
+
+jQuery.Event = function( src ){
+ // Allow instantiation without the 'new' keyword
+ if( !this.preventDefault )
+ return new jQuery.Event(src);
+
+ // Event object
+ if( src && src.type ){
+ this.originalEvent = src;
+ this.type = src.type;
+ // Event type
+ }else
+ this.type = src;
+
+ // timeStamp is buggy for some events on Firefox(#3843)
+ // So we won't rely on the native value
+ this.timeStamp = now();
+
+ // Mark it as fixed
+ this[expando] = true;
+};
+
+function returnFalse(){
+ return false;
+}
+function returnTrue(){
+ return true;
+}
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ preventDefault: function() {
+ this.isDefaultPrevented = returnTrue;
+
+ var e = this.originalEvent;
+ if( !e )
+ return;
+ // if preventDefault exists run it on the original event
+ if (e.preventDefault)
+ e.preventDefault();
+ // otherwise set the returnValue property of the original event to false (IE)
+ e.returnValue = false;
+ },
+ stopPropagation: function() {
+ this.isPropagationStopped = returnTrue;
+
+ var e = this.originalEvent;
+ if( !e )
+ return;
+ // if stopPropagation exists run it on the original event
+ if (e.stopPropagation)
+ e.stopPropagation();
+ // otherwise set the cancelBubble property of the original event to true (IE)
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation:function(){
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ },
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse
+};
+// Checks if an event happened on an element within another element
+// Used in jQuery.event.special.mouseenter and mouseleave handlers
+var withinElement = function(event) {
+ // Check if mouse(over|out) are still within the same parent element
+ var parent = event.relatedTarget;
+ // Traverse up the tree
+ while ( parent && parent != this )
+ try { parent = parent.parentNode; }
+ catch(e) { parent = this; }
+
+ if( parent != this ){
+ // set the correct event type
+ event.type = event.data;
+ // handle event if we actually just moused on to a non sub-element
+ jQuery.event.handle.apply( this, arguments );
+ }
+};
+
+jQuery.each({
+ mouseover: 'mouseenter',
+ mouseout: 'mouseleave'
+}, function( orig, fix ){
+ jQuery.event.special[ fix ] = {
+ setup: function(){
+ jQuery.event.add( this, orig, withinElement, fix );
+ },
+ teardown: function(){
+ jQuery.event.remove( this, orig, withinElement );
+ }
+ };
+});
+
+jQuery.fn.extend({
+ bind: function( type, data, fn ) {
+ return type == "unload" ? this.one(type, data, fn) : this.each(function(){
+ jQuery.event.add( this, type, fn || data, fn && data );
+ });
+ },
+
+ one: function( type, data, fn ) {
+ var one = jQuery.event.proxy( fn || data, function(event) {
+ jQuery(this).unbind(event, one);
+ return (fn || data).apply( this, arguments );
+ });
+ return this.each(function(){
+ jQuery.event.add( this, type, one, fn && data);
+ });
+ },
+
+ unbind: function( type, fn ) {
+ return this.each(function(){
+ jQuery.event.remove( this, type, fn );
+ });
+ },
+
+ trigger: function( type, data ) {
+ return this.each(function(){
+ jQuery.event.trigger( type, data, this );
+ });
+ },
+
+ triggerHandler: function( type, data ) {
+ if( this[0] ){
+ var event = jQuery.Event(type);
+ event.preventDefault();
+ event.stopPropagation();
+ jQuery.event.trigger( event, data, this[0] );
+ return event.result;
+ }
+ },
+
+ toggle: function( fn ) {
+ // Save reference to arguments for access in closure
+ var args = arguments, i = 1;
+
+ // link all the functions, so any of them can unbind this click handler
+ while( i < args.length )
+ jQuery.event.proxy( fn, args[i++] );
+
+ return this.click( jQuery.event.proxy( fn, function(event) {
+ // Figure out which function to execute
+ this.lastToggle = ( this.lastToggle || 0 ) % i;
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[ this.lastToggle++ ].apply( this, arguments ) || false;
+ }));
+ },
+
+ hover: function(fnOver, fnOut) {
+ return this.mouseenter(fnOver).mouseleave(fnOut);
+ },
+
+ ready: function(fn) {
+ // Attach the listeners
+ bindReady();
+
+ // If the DOM is already ready
+ if ( jQuery.isReady )
+ // Execute the function immediately
+ fn.call( document, jQuery );
+
+ // Otherwise, remember the function for later
+ else
+ // Add the function to the wait list
+ jQuery.readyList.push( fn );
+
+ return this;
+ },
+
+ live: function( type, fn ){
+ var proxy = jQuery.event.proxy( fn );
+ proxy.guid += this.selector + type;
+
+ jQuery(document).bind( liveConvert(type, this.selector), this.selector, proxy );
+
+ return this;
+ },
+
+ die: function( type, fn ){
+ jQuery(document).unbind( liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type } : null );
+ return this;
+ }
+});
+
+function liveHandler( event ){
+ var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"),
+ stop = true,
+ elems = [];
+
+ jQuery.each(jQuery.data(this, "events").live || [], function(i, fn){
+ if ( check.test(fn.type) ) {
+ var elem = jQuery(event.target).closest(fn.data)[0];
+ if ( elem )
+ elems.push({ elem: elem, fn: fn });
+ }
+ });
+
+ elems.sort(function(a,b) {
+ return jQuery.data(a.elem, "closest") - jQuery.data(b.elem, "closest");
+ });
+
+ jQuery.each(elems, function(){
+ if ( this.fn.call(this.elem, event, this.fn.data) === false )
+ return (stop = false);
+ });
+
+ return stop;
+}
+
+function liveConvert(type, selector){
+ return ["live", type, selector.replace(/\./g, "`").replace(/ /g, "|")].join(".");
+}
+
+jQuery.extend({
+ isReady: false,
+ readyList: [],
+ // Handle when the DOM is ready
+ ready: function() {
+ // Make sure that the DOM is not already loaded
+ if ( !jQuery.isReady ) {
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If there are functions bound, to execute
+ if ( jQuery.readyList ) {
+ // Execute all of them
+ jQuery.each( jQuery.readyList, function(){
+ this.call( document, jQuery );
+ });
+
+ // Reset the list of functions
+ jQuery.readyList = null;
+ }
+
+ // Trigger any bound ready events
+ jQuery(document).triggerHandler("ready");
+ }
+ }
+});
+
+var readyBound = false;
+
+function bindReady(){
+ if ( readyBound ) return;
+ readyBound = true;
+
+ // Mozilla, Opera and webkit nightlies currently support this event
+ if ( document.addEventListener ) {
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", function(){
+ document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
+ jQuery.ready();
+ }, false );
+
+ // If IE event model is used
+ } else if ( document.attachEvent ) {
+ // ensure firing before onload,
+ // maybe late but safe also for iframes
+ document.attachEvent("onreadystatechange", function(){
+ if ( document.readyState === "complete" ) {
+ document.detachEvent( "onreadystatechange", arguments.callee );
+ jQuery.ready();
+ }
+ });
+
+ // If IE and not an iframe
+ // continually check to see if the document is ready
+ if ( document.documentElement.doScroll && window == window.top ) (function(){
+ if ( jQuery.isReady ) return;
+
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch( error ) {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+
+ // and execute any waiting functions
+ jQuery.ready();
+ })();
+ }
+
+ // A fallback to window.onload, that will always work
+ jQuery.event.add( window, "load", jQuery.ready );
+}
+
+jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
+ "mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
+ "change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){
+
+ // Handle event binding
+ jQuery.fn[name] = function(fn){
+ return fn ? this.bind(name, fn) : this.trigger(name);
+ };
+});
+
+// Prevent memory leaks in IE
+// And prevent errors on refresh with events like mouseover in other browsers
+// Window isn't included so as not to unbind existing unload events
+jQuery( window ).bind( 'unload', function(){
+ for ( var id in jQuery.cache )
+ // Skip the window
+ if ( id != 1 && jQuery.cache[ id ].handle )
+ jQuery.event.remove( jQuery.cache[ id ].handle.elem );
+});
+(function(){
+
+ jQuery.support = {};
+
+ var root = document.documentElement,
+ script = document.createElement("script"),
+ div = document.createElement("div"),
+ id = "script" + (new Date).getTime();
+
+ div.style.display = "none";
+ div.innerHTML = ' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';
+
+ var all = div.getElementsByTagName("*"),
+ a = div.getElementsByTagName("a")[0];
+
+ // Can't get basic test support
+ if ( !all || !all.length || !a ) {
+ return;
+ }
+
+ jQuery.support = {
+ // IE strips leading whitespace when .innerHTML is used
+ leadingWhitespace: div.firstChild.nodeType == 3,
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ tbody: !div.getElementsByTagName("tbody").length,
+
+ // Make sure that you can get all elements in an <object> element
+ // IE 7 always returns no results
+ objectAll: !!div.getElementsByTagName("object")[0]
+ .getElementsByTagName("*").length,
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ htmlSerialize: !!div.getElementsByTagName("link").length,
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText insted)
+ style: /red/.test( a.getAttribute("style") ),
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ hrefNormalized: a.getAttribute("href") === "/a",
+
+ // Make sure that element opacity exists
+ // (IE uses filter instead)
+ opacity: a.style.opacity === "0.5",
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ cssFloat: !!a.style.cssFloat,
+
+ // Will be defined later
+ scriptEval: false,
+ noCloneEvent: true,
+ boxModel: null
+ };
+
+ script.type = "text/javascript";
+ try {
+ script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
+ } catch(e){}
+
+ root.insertBefore( script, root.firstChild );
+
+ // Make sure that the execution of code works by injecting a script
+ // tag with appendChild/createTextNode
+ // (IE doesn't support this, fails, and uses .text instead)
+ if ( window[ id ] ) {
+ jQuery.support.scriptEval = true;
+ delete window[ id ];
+ }
+
+ root.removeChild( script );
+
+ if ( div.attachEvent && div.fireEvent ) {
+ div.attachEvent("onclick", function(){
+ // Cloning a node shouldn't copy over any
+ // bound event handlers (IE does this)
+ jQuery.support.noCloneEvent = false;
+ div.detachEvent("onclick", arguments.callee);
+ });
+ div.cloneNode(true).fireEvent("onclick");
+ }
+
+ // Figure out if the W3C box model works as expected
+ // document.body must exist before we can do this
+ jQuery(function(){
+ var div = document.createElement("div");
+ div.style.width = div.style.paddingLeft = "1px";
+
+ document.body.appendChild( div );
+ jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
+ document.body.removeChild( div ).style.display = 'none';
+ });
+})();
+
+var styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat";
+
+jQuery.props = {
+ "for": "htmlFor",
+ "class": "className",
+ "float": styleFloat,
+ cssFloat: styleFloat,
+ styleFloat: styleFloat,
+ readonly: "readOnly",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ rowspan: "rowSpan",
+ tabindex: "tabIndex"
+};
+jQuery.fn.extend({
+ // Keep a copy of the old load
+ _load: jQuery.fn.load,
+
+ load: function( url, params, callback ) {
+ if ( typeof url !== "string" )
+ return this._load( url );
+
+ var off = url.indexOf(" ");
+ if ( off >= 0 ) {
+ var selector = url.slice(off, url.length);
+ url = url.slice(0, off);
+ }
+
+ // Default to a GET request
+ var type = "GET";
+
+ // If the second parameter was provided
+ if ( params )
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+ // We assume that it's the callback
+ callback = params;
+ params = null;
+
+ // Otherwise, build a param string
+ } else if( typeof params === "object" ) {
+ params = jQuery.param( params );
+ type = "POST";
+ }
+
+ var self = this;
+
+ // Request the remote document
+ jQuery.ajax({
+ url: url,
+ type: type,
+ dataType: "html",
+ data: params,
+ complete: function(res, status){
+ // If successful, inject the HTML into all the matched elements
+ if ( status == "success" || status == "notmodified" )
+ // See if a selector was specified
+ self.html( selector ?
+ // Create a dummy div to hold the results
+ jQuery("<div/>")
+ // inject the contents of the document in, removing the scripts
+ // to avoid any 'Permission Denied' errors in IE
+ .append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
+
+ // Locate the specified elements
+ .find(selector) :
+
+ // If not, just inject the full result
+ res.responseText );
+
+ if( callback )
+ self.each( callback, [res.responseText, status, res] );
+ }
+ });
+ return this;
+ },
+
+ serialize: function() {
+ return jQuery.param(this.serializeArray());
+ },
+ serializeArray: function() {
+ return this.map(function(){
+ return this.elements ? jQuery.makeArray(this.elements) : this;
+ })
+ .filter(function(){
+ return this.name && !this.disabled &&
+ (this.checked || /select|textarea/i.test(this.nodeName) ||
+ /text|hidden|password|search/i.test(this.type));
+ })
+ .map(function(i, elem){
+ var val = jQuery(this).val();
+ return val == null ? null :
+ jQuery.isArray(val) ?
+ jQuery.map( val, function(val, i){
+ return {name: elem.name, value: val};
+ }) :
+ {name: elem.name, value: val};
+ }).get();
+ }
+});
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){
+ jQuery.fn[o] = function(f){
+ return this.bind(o, f);
+ };
+});
+
+var jsc = now();
+
+jQuery.extend({
+
+ get: function( url, data, callback, type ) {
+ // shift arguments if data argument was ommited
+ if ( jQuery.isFunction( data ) ) {
+ callback = data;
+ data = null;
+ }
+
+ return jQuery.ajax({
+ type: "GET",
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type
+ });
+ },
+
+ getScript: function( url, callback ) {
+ return jQuery.get(url, null, callback, "script");
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get(url, data, callback, "json");
+ },
+
+ post: function( url, data, callback, type ) {
+ if ( jQuery.isFunction( data ) ) {
+ callback = data;
+ data = {};
+ }
+
+ return jQuery.ajax({
+ type: "POST",
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type
+ });
+ },
+
+ ajaxSetup: function( settings ) {
+ jQuery.extend( jQuery.ajaxSettings, settings );
+ },
+
+ ajaxSettings: {
+ url: location.href,
+ global: true,
+ type: "GET",
+ contentType: "application/x-www-form-urlencoded",
+ processData: true,
+ async: true,
+ /*
+ timeout: 0,
+ data: null,
+ username: null,
+ password: null,
+ */
+ // Create the request object; Microsoft failed to properly
+ // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
+ // This function can be overriden by calling jQuery.ajaxSetup
+ xhr:function(){
+ return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
+ },
+ accepts: {
+ xml: "application/xml, text/xml",
+ html: "text/html",
+ script: "text/javascript, application/javascript",
+ json: "application/json, text/javascript",
+ text: "text/plain",
+ _default: "*/*"
+ }
+ },
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+
+ ajax: function( s ) {
+ // Extend the settings, but re-extend 's' so that it can be
+ // checked again later (in the test suite, specifically)
+ s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
+
+ var jsonp, jsre = /=\?(&|$)/g, status, data,
+ type = s.type.toUpperCase();
+
+ // convert data if not already a string
+ if ( s.data && s.processData && typeof s.data !== "string" )
+ s.data = jQuery.param(s.data);
+
+ // Handle JSONP Parameter Callbacks
+ if ( s.dataType == "jsonp" ) {
+ if ( type == "GET" ) {
+ if ( !s.url.match(jsre) )
+ s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?";
+ } else if ( !s.data || !s.data.match(jsre) )
+ s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
+ s.dataType = "json";
+ }
+
+ // Build temporary JSONP function
+ if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) {
+ jsonp = "jsonp" + jsc++;
+
+ // Replace the =? sequence both in the query string and the data
+ if ( s.data )
+ s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
+ s.url = s.url.replace(jsre, "=" + jsonp + "$1");
+
+ // We need to make sure
+ // that a JSONP style response is executed properly
+ s.dataType = "script";
+
+ // Handle JSONP-style loading
+ window[ jsonp ] = function(tmp){
+ data = tmp;
+ success();
+ complete();
+ // Garbage collect
+ window[ jsonp ] = undefined;
+ try{ delete window[ jsonp ]; } catch(e){}
+ if ( head )
+ head.removeChild( script );
+ };
+ }
+
+ if ( s.dataType == "script" && s.cache == null )
+ s.cache = false;
+
+ if ( s.cache === false && type == "GET" ) {
+ var ts = now();
+ // try replacing _= if it is there
+ var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
+ // if nothing was replaced, add timestamp to the end
+ s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
+ }
+
+ // If data is available, append data to url for get requests
+ if ( s.data && type == "GET" ) {
+ s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
+
+ // IE likes to send both get and post data, prevent this
+ s.data = null;
+ }
+
+ // Watch for a new set of requests
+ if ( s.global && ! jQuery.active++ )
+ jQuery.event.trigger( "ajaxStart" );
+
+ // Matches an absolute URL, and saves the domain
+ var parts = /^(\w+:)?\/\/([^\/?#]+)/.exec( s.url );
+
+ // If we're requesting a remote document
+ // and trying to load JSON or Script with a GET
+ if ( s.dataType == "script" && type == "GET" && parts
+ && ( parts[1] && parts[1] != location.protocol || parts[2] != location.host )){
+
+ var head = document.getElementsByTagName("head")[0];
+ var script = document.createElement("script");
+ script.src = s.url;
+ if (s.scriptCharset)
+ script.charset = s.scriptCharset;
+
+ // Handle Script loading
+ if ( !jsonp ) {
+ var done = false;
+
+ // Attach handlers for all browsers
+ script.onload = script.onreadystatechange = function(){
+ if ( !done && (!this.readyState ||
+ this.readyState == "loaded" || this.readyState == "complete") ) {
+ done = true;
+ success();
+ complete();
+
+ // Handle memory leak in IE
+ script.onload = script.onreadystatechange = null;
+ head.removeChild( script );
+ }
+ };
+ }
+
+ head.appendChild(script);
+
+ // We handle everything using the script element injection
+ return undefined;
+ }
+
+ var requestDone = false;
+
+ // Create the request object
+ var xhr = s.xhr();
+
+ // Open the socket
+ // Passing null username, generates a login popup on Opera (#2865)
+ if( s.username )
+ xhr.open(type, s.url, s.async, s.username, s.password);
+ else
+ xhr.open(type, s.url, s.async);
+
+ // Need an extra try/catch for cross domain requests in Firefox 3
+ try {
+ // Set the correct header, if data is being sent
+ if ( s.data )
+ xhr.setRequestHeader("Content-Type", s.contentType);
+
+ // Set the If-Modified-Since header, if ifModified mode.
+ if ( s.ifModified )
+ xhr.setRequestHeader("If-Modified-Since",
+ jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
+
+ // Set header so the called script knows that it's an XMLHttpRequest
+ xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
+
+ // Set the Accepts header for the server, depending on the dataType
+ xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
+ s.accepts[ s.dataType ] + ", */*" :
+ s.accepts._default );
+ } catch(e){}
+
+ // Allow custom headers/mimetypes and early abort
+ if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
+ // Handle the global AJAX counter
+ if ( s.global && ! --jQuery.active )
+ jQuery.event.trigger( "ajaxStop" );
+ // close opended socket
+ xhr.abort();
+ return false;
+ }
+
+ if ( s.global )
+ jQuery.event.trigger("ajaxSend", [xhr, s]);
+
+ // Wait for a response to come back
+ var onreadystatechange = function(isTimeout){
+ // The request was aborted, clear the interval and decrement jQuery.active
+ if (xhr.readyState == 0) {
+ if (ival) {
+ // clear poll interval
+ clearInterval(ival);
+ ival = null;
+ // Handle the global AJAX counter
+ if ( s.global && ! --jQuery.active )
+ jQuery.event.trigger( "ajaxStop" );
+ }
+ // The transfer is complete and the data is available, or the request timed out
+ } else if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) {
+ requestDone = true;
+
+ // clear poll interval
+ if (ival) {
+ clearInterval(ival);
+ ival = null;
+ }
+
+ status = isTimeout == "timeout" ? "timeout" :
+ !jQuery.httpSuccess( xhr ) ? "error" :
+ s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? "notmodified" :
+ "success";
+
+ if ( status == "success" ) {
+ // Watch for, and catch, XML document parse errors
+ try {
+ // process the data (runs the xml through httpData regardless of callback)
+ data = jQuery.httpData( xhr, s.dataType, s );
+ } catch(e) {
+ status = "parsererror";
+ }
+ }
+
+ // Make sure that the request was successful or notmodified
+ if ( status == "success" ) {
+ // Cache Last-Modified header, if ifModified mode.
+ var modRes;
+ try {
+ modRes = xhr.getResponseHeader("Last-Modified");
+ } catch(e) {} // swallow exception thrown by FF if header is not available
+
+ if ( s.ifModified && modRes )
+ jQuery.lastModified[s.url] = modRes;
+
+ // JSONP handles its own success callback
+ if ( !jsonp )
+ success();
+ } else
+ jQuery.handleError(s, xhr, status);
+
+ // Fire the complete handlers
+ complete();
+
+ if ( isTimeout )
+ xhr.abort();
+
+ // Stop memory leaks
+ if ( s.async )
+ xhr = null;
+ }
+ };
+
+ if ( s.async ) {
+ // don't attach the handler to the request, just poll it instead
+ var ival = setInterval(onreadystatechange, 13);
+
+ // Timeout checker
+ if ( s.timeout > 0 )
+ setTimeout(function(){
+ // Check to see if the request is still happening
+ if ( xhr && !requestDone )
+ onreadystatechange( "timeout" );
+ }, s.timeout);
+ }
+
+ // Send the data
+ try {
+ xhr.send(s.data);
+ } catch(e) {
+ jQuery.handleError(s, xhr, null, e);
+ }
+
+ // firefox 1.5 doesn't fire statechange for sync requests
+ if ( !s.async )
+ onreadystatechange();
+
+ function success(){
+ // If a local callback was specified, fire it and pass it the data
+ if ( s.success )
+ s.success( data, status );
+
+ // Fire the global callback
+ if ( s.global )
+ jQuery.event.trigger( "ajaxSuccess", [xhr, s] );
+ }
+
+ function complete(){
+ // Process result
+ if ( s.complete )
+ s.complete(xhr, status);
+
+ // The request was completed
+ if ( s.global )
+ jQuery.event.trigger( "ajaxComplete", [xhr, s] );
+
+ // Handle the global AJAX counter
+ if ( s.global && ! --jQuery.active )
+ jQuery.event.trigger( "ajaxStop" );
+ }
+
+ // return XMLHttpRequest to allow aborting the request etc.
+ return xhr;
+ },
+
+ handleError: function( s, xhr, status, e ) {
+ // If a local callback was specified, fire it
+ if ( s.error ) s.error( xhr, status, e );
+
+ // Fire the global callback
+ if ( s.global )
+ jQuery.event.trigger( "ajaxError", [xhr, s, e] );
+ },
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Determines if an XMLHttpRequest was successful or not
+ httpSuccess: function( xhr ) {
+ try {
+ // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
+ return !xhr.status && location.protocol == "file:" ||
+ ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223;
+ } catch(e){}
+ return false;
+ },
+
+ // Determines if an XMLHttpRequest returns NotModified
+ httpNotModified: function( xhr, url ) {
+ try {
+ var xhrRes = xhr.getResponseHeader("Last-Modified");
+
+ // Firefox always returns 200. check Last-Modified date
+ return xhr.status == 304 || xhrRes == jQuery.lastModified[url];
+ } catch(e){}
+ return false;
+ },
+
+ httpData: function( xhr, type, s ) {
+ var ct = xhr.getResponseHeader("content-type"),
+ xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
+ data = xml ? xhr.responseXML : xhr.responseText;
+
+ if ( xml && data.documentElement.tagName == "parsererror" )
+ throw "parsererror";
+
+ // Allow a pre-filtering function to sanitize the response
+ // s != null is checked to keep backwards compatibility
+ if( s && s.dataFilter )
+ data = s.dataFilter( data, type );
+
+ // The filter can actually parse the response
+ if( typeof data === "string" ){
+
+ // If the type is "script", eval it in global context
+ if ( type == "script" )
+ jQuery.globalEval( data );
+
+ // Get the JavaScript object, if JSON is used.
+ if ( type == "json" )
+ data = window["eval"]("(" + data + ")");
+ }
+
+ return data;
+ },
+
+ // Serialize an array of form elements or a set of
+ // key/values into a query string
+ param: function( a ) {
+ var s = [ ];
+
+ function add( key, value ){
+ s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
+ };
+
+ // If an array was passed in, assume that it is an array
+ // of form elements
+ if ( jQuery.isArray(a) || a.jquery )
+ // Serialize the form elements
+ jQuery.each( a, function(){
+ add( this.name, this.value );
+ });
+
+ // Otherwise, assume that it's an object of key/value pairs
+ else
+ // Serialize the key/values
+ for ( var j in a )
+ // If the value is an array then the key names need to be repeated
+ if ( jQuery.isArray(a[j]) )
+ jQuery.each( a[j], function(){
+ add( j, this );
+ });
+ else
+ add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
+
+ // Return the resulting serialization
+ return s.join("&").replace(/%20/g, "+");
+ }
+
+});
+var elemdisplay = {},
+ timerId,
+ fxAttrs = [
+ // height animations
+ [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
+ // width animations
+ [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
+ // opacity animations
+ [ "opacity" ]
+ ];
+
+function genFx( type, num ){
+ var obj = {};
+ jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function(){
+ obj[ this ] = type;
+ });
+ return obj;
+}
+
+jQuery.fn.extend({
+ show: function(speed,callback){
+ if ( speed ) {
+ return this.animate( genFx("show", 3), speed, callback);
+ } else {
+ for ( var i = 0, l = this.length; i < l; i++ ){
+ var old = jQuery.data(this[i], "olddisplay");
+
+ this[i].style.display = old || "";
+
+ if ( jQuery.css(this[i], "display") === "none" ) {
+ var tagName = this[i].tagName, display;
+
+ if ( elemdisplay[ tagName ] ) {
+ display = elemdisplay[ tagName ];
+ } else {
+ var elem = jQuery("<" + tagName + " />").appendTo("body");
+
+ display = elem.css("display");
+ if ( display === "none" )
+ display = "block";
+
+ elem.remove();
+
+ elemdisplay[ tagName ] = display;
+ }
+
+ jQuery.data(this[i], "olddisplay", display);
+ }
+ }
+
+ // Set the display of the elements in a second loop
+ // to avoid the constant reflow
+ for ( var i = 0, l = this.length; i < l; i++ ){
+ this[i].style.display = jQuery.data(this[i], "olddisplay") || "";
+ }
+
+ return this;
+ }
+ },
+
+ hide: function(speed,callback){
+ if ( speed ) {
+ return this.animate( genFx("hide", 3), speed, callback);
+ } else {
+ for ( var i = 0, l = this.length; i < l; i++ ){
+ var old = jQuery.data(this[i], "olddisplay");
+ if ( !old && old !== "none" )
+ jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display"));
+ }
+
+ // Set the display of the elements in a second loop
+ // to avoid the constant reflow
+ for ( var i = 0, l = this.length; i < l; i++ ){
+ this[i].style.display = "none";
+ }
+
+ return this;
+ }
+ },
+
+ // Save the old toggle function
+ _toggle: jQuery.fn.toggle,
+
+ toggle: function( fn, fn2 ){
+ var bool = typeof fn === "boolean";
+
+ return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
+ this._toggle.apply( this, arguments ) :
+ fn == null || bool ?
+ this.each(function(){
+ var state = bool ? fn : jQuery(this).is(":hidden");
+ jQuery(this)[ state ? "show" : "hide" ]();
+ }) :
+ this.animate(genFx("toggle", 3), fn, fn2);
+ },
+
+ fadeTo: function(speed,to,callback){
+ return this.animate({opacity: to}, speed, callback);
+ },
+
+ animate: function( prop, speed, easing, callback ) {
+ var optall = jQuery.speed(speed, easing, callback);
+
+ return this[ optall.queue === false ? "each" : "queue" ](function(){
+
+ var opt = jQuery.extend({}, optall), p,
+ hidden = this.nodeType == 1 && jQuery(this).is(":hidden"),
+ self = this;
+
+ for ( p in prop ) {
+ if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
+ return opt.complete.call(this);
+
+ if ( ( p == "height" || p == "width" ) && this.style ) {
+ // Store display property
+ opt.display = jQuery.css(this, "display");
+
+ // Make sure that nothing sneaks out
+ opt.overflow = this.style.overflow;
+ }
+ }
+
+ if ( opt.overflow != null )
+ this.style.overflow = "hidden";
+
+ opt.curAnim = jQuery.extend({}, prop);
+
+ jQuery.each( prop, function(name, val){
+ var e = new jQuery.fx( self, opt, name );
+
+ if ( /toggle|show|hide/.test(val) )
+ e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
+ else {
+ var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
+ start = e.cur(true) || 0;
+
+ if ( parts ) {
+ var end = parseFloat(parts[2]),
+ unit = parts[3] || "px";
+
+ // We need to compute starting value
+ if ( unit != "px" ) {
+ self.style[ name ] = (end || 1) + unit;
+ start = ((end || 1) / e.cur(true)) * start;
+ self.style[ name ] = start + unit;
+ }
+
+ // If a +=/-= token was provided, we're doing a relative animation
+ if ( parts[1] )
+ end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
+
+ e.custom( start, end, unit );
+ } else
+ e.custom( start, val, "" );
+ }
+ });
+
+ // For JS strict compliance
+ return true;
+ });
+ },
+
+ stop: function(clearQueue, gotoEnd){
+ var timers = jQuery.timers;
+
+ if (clearQueue)
+ this.queue([]);
+
+ this.each(function(){
+ // go in reverse order so anything added to the queue during the loop is ignored
+ for ( var i = timers.length - 1; i >= 0; i-- )
+ if ( timers[i].elem == this ) {
+ if (gotoEnd)
+ // force the next step to be the last
+ timers[i](true);
+ timers.splice(i, 1);
+ }
+ });
+
+ // start the next in the queue if the last step wasn't forced
+ if (!gotoEnd)
+ this.dequeue();
+
+ return this;
+ }
+
+});
+
+// Generate shortcuts for custom animations
+jQuery.each({
+ slideDown: genFx("show", 1),
+ slideUp: genFx("hide", 1),
+ slideToggle: genFx("toggle", 1),
+ fadeIn: { opacity: "show" },
+ fadeOut: { opacity: "hide" }
+}, function( name, props ){
+ jQuery.fn[ name ] = function( speed, callback ){
+ return this.animate( props, speed, callback );
+ };
+});
+
+jQuery.extend({
+
+ speed: function(speed, easing, fn) {
+ var opt = typeof speed === "object" ? speed : {
+ complete: fn || !fn && easing ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
+ };
+
+ opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+ jQuery.fx.speeds[opt.duration] || jQuery.fx.speeds._default;
+
+ // Queueing
+ opt.old = opt.complete;
+ opt.complete = function(){
+ if ( opt.queue !== false )
+ jQuery(this).dequeue();
+ if ( jQuery.isFunction( opt.old ) )
+ opt.old.call( this );
+ };
+
+ return opt;
+ },
+
+ easing: {
+ linear: function( p, n, firstNum, diff ) {
+ return firstNum + diff * p;
+ },
+ swing: function( p, n, firstNum, diff ) {
+ return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
+ }
+ },
+
+ timers: [],
+
+ fx: function( elem, options, prop ){
+ this.options = options;
+ this.elem = elem;
+ this.prop = prop;
+
+ if ( !options.orig )
+ options.orig = {};
+ }
+
+});
+
+jQuery.fx.prototype = {
+
+ // Simple function for setting a style value
+ update: function(){
+ if ( this.options.step )
+ this.options.step.call( this.elem, this.now, this );
+
+ (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
+
+ // Set display property to block for height/width animations
+ if ( ( this.prop == "height" || this.prop == "width" ) && this.elem.style )
+ this.elem.style.display = "block";
+ },
+
+ // Get the current size
+ cur: function(force){
+ if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) )
+ return this.elem[ this.prop ];
+
+ var r = parseFloat(jQuery.css(this.elem, this.prop, force));
+ return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0;
+ },
+
+ // Start an animation from one number to another
+ custom: function(from, to, unit){
+ this.startTime = now();
+ this.start = from;
+ this.end = to;
+ this.unit = unit || this.unit || "px";
+ this.now = this.start;
+ this.pos = this.state = 0;
+
+ var self = this;
+ function t(gotoEnd){
+ return self.step(gotoEnd);
+ }
+
+ t.elem = this.elem;
+
+ if ( t() && jQuery.timers.push(t) && !timerId ) {
+ timerId = setInterval(function(){
+ var timers = jQuery.timers;
+
+ for ( var i = 0; i < timers.length; i++ )
+ if ( !timers[i]() )
+ timers.splice(i--, 1);
+
+ if ( !timers.length ) {
+ clearInterval( timerId );
+ timerId = undefined;
+ }
+ }, 13);
+ }
+ },
+
+ // Simple 'show' function
+ show: function(){
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
+ this.options.show = true;
+
+ // Begin the animation
+ // Make sure that we start at a small width/height to avoid any
+ // flash of content
+ this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur());
+
+ // Start by showing the element
+ jQuery(this.elem).show();
+ },
+
+ // Simple 'hide' function
+ hide: function(){
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
+ this.options.hide = true;
+
+ // Begin the animation
+ this.custom(this.cur(), 0);
+ },
+
+ // Each step of an animation
+ step: function(gotoEnd){
+ var t = now();
+
+ if ( gotoEnd || t >= this.options.duration + this.startTime ) {
+ this.now = this.end;
+ this.pos = this.state = 1;
+ this.update();
+
+ this.options.curAnim[ this.prop ] = true;
+
+ var done = true;
+ for ( var i in this.options.curAnim )
+ if ( this.options.curAnim[i] !== true )
+ done = false;
+
+ if ( done ) {
+ if ( this.options.display != null ) {
+ // Reset the overflow
+ this.elem.style.overflow = this.options.overflow;
+
+ // Reset the display
+ this.elem.style.display = this.options.display;
+ if ( jQuery.css(this.elem, "display") == "none" )
+ this.elem.style.display = "block";
+ }
+
+ // Hide the element if the "hide" operation was done
+ if ( this.options.hide )
+ jQuery(this.elem).hide();
+
+ // Reset the properties, if the item has been hidden or shown
+ if ( this.options.hide || this.options.show )
+ for ( var p in this.options.curAnim )
+ jQuery.attr(this.elem.style, p, this.options.orig[p]);
+
+ // Execute the complete function
+ this.options.complete.call( this.elem );
+ }
+
+ return false;
+ } else {
+ var n = t - this.startTime;
+ this.state = n / this.options.duration;
+
+ // Perform the easing function, defaults to swing
+ this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration);
+ this.now = this.start + ((this.end - this.start) * this.pos);
+
+ // Perform the next step of the animation
+ this.update();
+ }
+
+ return true;
+ }
+
+};
+
+jQuery.extend( jQuery.fx, {
+ speeds:{
+ slow: 600,
+ fast: 200,
+ // Default speed
+ _default: 400
+ },
+ step: {
+
+ opacity: function(fx){
+ jQuery.attr(fx.elem.style, "opacity", fx.now);
+ },
+
+ _default: function(fx){
+ if ( fx.elem.style && fx.elem.style[ fx.prop ] != null )
+ fx.elem.style[ fx.prop ] = fx.now + fx.unit;
+ else
+ fx.elem[ fx.prop ] = fx.now;
+ }
+ }
+});
+if ( document.documentElement["getBoundingClientRect"] )
+ jQuery.fn.offset = function() {
+ if ( !this[0] ) return { top: 0, left: 0 };
+ if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] );
+ var box = this[0].getBoundingClientRect(), doc = this[0].ownerDocument, body = doc.body, docElem = doc.documentElement,
+ clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,
+ top = box.top + (self.pageYOffset || jQuery.boxModel && docElem.scrollTop || body.scrollTop ) - clientTop,
+ left = box.left + (self.pageXOffset || jQuery.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft;
+ return { top: top, left: left };
+ };
+else
+ jQuery.fn.offset = function() {
+ if ( !this[0] ) return { top: 0, left: 0 };
+ if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] );
+ jQuery.offset.initialized || jQuery.offset.initialize();
+
+ var elem = this[0], offsetParent = elem.offsetParent, prevOffsetParent = elem,
+ doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement,
+ body = doc.body, defaultView = doc.defaultView,
+ prevComputedStyle = defaultView.getComputedStyle(elem, null),
+ top = elem.offsetTop, left = elem.offsetLeft;
+
+ while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
+ computedStyle = defaultView.getComputedStyle(elem, null);
+ top -= elem.scrollTop, left -= elem.scrollLeft;
+ if ( elem === offsetParent ) {
+ top += elem.offsetTop, left += elem.offsetLeft;
+ if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.tagName)) )
+ top += parseInt( computedStyle.borderTopWidth, 10) || 0,
+ left += parseInt( computedStyle.borderLeftWidth, 10) || 0;
+ prevOffsetParent = offsetParent, offsetParent = elem.offsetParent;
+ }
+ if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" )
+ top += parseInt( computedStyle.borderTopWidth, 10) || 0,
+ left += parseInt( computedStyle.borderLeftWidth, 10) || 0;
+ prevComputedStyle = computedStyle;
+ }
+
+ if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" )
+ top += body.offsetTop,
+ left += body.offsetLeft;
+
+ if ( prevComputedStyle.position === "fixed" )
+ top += Math.max(docElem.scrollTop, body.scrollTop),
+ left += Math.max(docElem.scrollLeft, body.scrollLeft);
+
+ return { top: top, left: left };
+ };
+
+jQuery.offset = {
+ initialize: function() {
+ if ( this.initialized ) return;
+ var body = document.body, container = document.createElement('div'), innerDiv, checkDiv, table, td, rules, prop, bodyMarginTop = body.style.marginTop,
+ html = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
+
+ rules = { position: 'absolute', top: 0, left: 0, margin: 0, border: 0, width: '1px', height: '1px', visibility: 'hidden' };
+ for ( prop in rules ) container.style[prop] = rules[prop];
+
+ container.innerHTML = html;
+ body.insertBefore(container, body.firstChild);
+ innerDiv = container.firstChild, checkDiv = innerDiv.firstChild, td = innerDiv.nextSibling.firstChild.firstChild;
+
+ this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
+ this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
+
+ innerDiv.style.overflow = 'hidden', innerDiv.style.position = 'relative';
+ this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
+
+ body.style.marginTop = '1px';
+ this.doesNotIncludeMarginInBodyOffset = (body.offsetTop === 0);
+ body.style.marginTop = bodyMarginTop;
+
+ body.removeChild(container);
+ this.initialized = true;
+ },
+
+ bodyOffset: function(body) {
+ jQuery.offset.initialized || jQuery.offset.initialize();
+ var top = body.offsetTop, left = body.offsetLeft;
+ if ( jQuery.offset.doesNotIncludeMarginInBodyOffset )
+ top += parseInt( jQuery.curCSS(body, 'marginTop', true), 10 ) || 0,
+ left += parseInt( jQuery.curCSS(body, 'marginLeft', true), 10 ) || 0;
+ return { top: top, left: left };
+ }
+};
+
+
+jQuery.fn.extend({
+ position: function() {
+ var left = 0, top = 0, results;
+
+ if ( this[0] ) {
+ // Get *real* offsetParent
+ var offsetParent = this.offsetParent(),
+
+ // Get correct offsets
+ offset = this.offset(),
+ parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { top: 0, left: 0 } : offsetParent.offset();
+
+ // Subtract element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ offset.top -= num( this, 'marginTop' );
+ offset.left -= num( this, 'marginLeft' );
+
+ // Add offsetParent borders
+ parentOffset.top += num( offsetParent, 'borderTopWidth' );
+ parentOffset.left += num( offsetParent, 'borderLeftWidth' );
+
+ // Subtract the two offsets
+ results = {
+ top: offset.top - parentOffset.top,
+ left: offset.left - parentOffset.left
+ };
+ }
+
+ return results;
+ },
+
+ offsetParent: function() {
+ var offsetParent = this[0].offsetParent || document.body;
+ while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static') )
+ offsetParent = offsetParent.offsetParent;
+ return jQuery(offsetParent);
+ }
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( ['Left', 'Top'], function(i, name) {
+ var method = 'scroll' + name;
+
+ jQuery.fn[ method ] = function(val) {
+ if (!this[0]) return null;
+
+ return val !== undefined ?
+
+ // Set the scroll offset
+ this.each(function() {
+ this == window || this == document ?
+ window.scrollTo(
+ !i ? val : jQuery(window).scrollLeft(),
+ i ? val : jQuery(window).scrollTop()
+ ) :
+ this[ method ] = val;
+ }) :
+
+ // Return the scroll offset
+ this[0] == window || this[0] == document ?
+ self[ i ? 'pageYOffset' : 'pageXOffset' ] ||
+ jQuery.boxModel && document.documentElement[ method ] ||
+ document.body[ method ] :
+ this[0][ method ];
+ };
+});
+// Create innerHeight, innerWidth, outerHeight and outerWidth methods
+jQuery.each([ "Height", "Width" ], function(i, name){
+
+ var tl = i ? "Left" : "Top", // top or left
+ br = i ? "Right" : "Bottom", // bottom or right
+ lower = name.toLowerCase();
+
+ // innerHeight and innerWidth
+ jQuery.fn["inner" + name] = function(){
+ return this[0] ?
+ jQuery.css( this[0], lower, false, "padding" ) :
+ null;
+ };
+
+ // outerHeight and outerWidth
+ jQuery.fn["outer" + name] = function(margin) {
+ return this[0] ?
+ jQuery.css( this[0], lower, false, margin ? "margin" : "border" ) :
+ null;
+ };
+
+ var type = name.toLowerCase();
+
+ jQuery.fn[ type ] = function( size ) {
+ // Get window width or height
+ return this[0] == window ?
+ // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
+ document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] ||
+ document.body[ "client" + name ] :
+
+ // Get document width or height
+ this[0] == document ?
+ // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
+ Math.max(
+ document.documentElement["client" + name],
+ document.body["scroll" + name], document.documentElement["scroll" + name],
+ document.body["offset" + name], document.documentElement["offset" + name]
+ ) :
+
+ // Get or set width or height on the element
+ size === undefined ?
+ // Get width or height on the element
+ (this.length ? jQuery.css( this[0], type ) : null) :
+
+ // Set the width or height on the element (default to pixels if value is unitless)
+ this.css( type, typeof size === "string" ? size : size + "px" );
+ };
+
+});
+})();
+/*
+Script: Core.js
+ MooTools - My Object Oriented JavaScript Tools.
+
+License:
+ MIT-style license.
+
+Copyright:
+ Copyright (c) 2006-2008 [Valerio Proietti](http://mad4milk.net/).
+
+Code & Documentation:
+ [The MooTools production team](http://mootools.net/developers/).
+
+Inspiration:
+ - Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)
+ - Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php)
+*/
+
+var MooTools = {
+ 'version': '1.2.2',
+ 'build': 'f0491d62fbb7e906789aa3733d6a67d43e5af7c9'
+};
+
+var Native = function(options){
+ options = options || {};
+ var name = options.name;
+ var legacy = options.legacy;
+ var protect = options.protect;
+ var methods = options.implement;
+ var generics = options.generics;
+ var initialize = options.initialize;
+ var afterImplement = options.afterImplement || function(){};
+ var object = initialize || legacy;
+ generics = generics !== false;
+
+ object.constructor = Native;
+ object.$family = {name: 'native'};
+ if (legacy && initialize) object.prototype = legacy.prototype;
+ object.prototype.constructor = object;
+
+ if (name){
+ var family = name.toLowerCase();
+ object.prototype.$family = {name: family};
+ Native.typize(object, family);
+ }
+
+ var add = function(obj, name, method, force){
+ if (!protect || force || !obj.prototype[name]) obj.prototype[name] = method;
+ if (generics) Native.genericize(obj, name, protect);
+ afterImplement.call(obj, name, method);
+ return obj;
+ };
+
+ object.alias = function(a1, a2, a3){
+ if (typeof a1 == 'string'){
+ if ((a1 = this.prototype[a1])) return add(this, a2, a1, a3);
+ }
+ for (var a in a1) this.alias(a, a1[a], a2);
+ return this;
+ };
+
+ object.implement = function(a1, a2, a3){
+ if (typeof a1 == 'string') return add(this, a1, a2, a3);
+ for (var p in a1) add(this, p, a1[p], a2);
+ return this;
+ };
+
+ if (methods) object.implement(methods);
+
+ return object;
+};
+
+Native.genericize = function(object, property, check){
+ if ((!check || !object[property]) && typeof object.prototype[property] == 'function') object[property] = function(){
+ var args = Array.prototype.slice.call(arguments);
+ return object.prototype[property].apply(args.shift(), args);
+ };
+};
+
+Native.implement = function(objects, properties){
+ for (var i = 0, l = objects.length; i < l; i++) objects[i].implement(properties);
+};
+
+Native.typize = function(object, family){
+ if (!object.type) object.type = function(item){
+ return ($type(item) === family);
+ };
+};
+
+(function(){
+ var natives = {'Array': Array, 'Date': Date, 'Function': Function, 'Number': Number, 'RegExp': RegExp, 'String': String};
+ for (var n in natives) new Native({name: n, initialize: natives[n], protect: true});
+
+ var types = {'boolean': Boolean, 'native': Native, 'object': Object};
+ for (var t in types) Native.typize(types[t], t);
+
+ var generics = {
+ 'Array': ["concat", "indexOf", "join", "lastIndexOf", "pop", "push", "reverse", "shift", "slice", "sort", "splice", "toString", "unshift", "valueOf"],
+ 'String': ["charAt", "charCodeAt", "concat", "indexOf", "lastIndexOf", "match", "replace", "search", "slice", "split", "substr", "substring", "toLowerCase", "toUpperCase", "valueOf"]
+ };
+ for (var g in generics){
+ for (var i = generics[g].length; i--;) Native.genericize(window[g], generics[g][i], true);
+ }
+})();
+
+var Hash = new Native({
+
+ name: 'Hash',
+
+ initialize: function(object){
+ if ($type(object) == 'hash') object = $unlink(object.getClean());
+ for (var key in object) this[key] = object[key];
+ return this;
+ }
+
+});
+
+Hash.implement({
+
+ forEach: function(fn, bind){
+ for (var key in this){
+ if (this.hasOwnProperty(key)) fn.call(bind, this[key], key, this);
+ }
+ },
+
+ getClean: function(){
+ var clean = {};
+ for (var key in this){
+ if (this.hasOwnProperty(key)) clean[key] = this[key];
+ }
+ return clean;
+ },
+
+ getLength: function(){
+ var length = 0;
+ for (var key in this){
+ if (this.hasOwnProperty(key)) length++;
+ }
+ return length;
+ }
+
+});
+
+Hash.alias('forEach', 'each');
+
+Array.implement({
+
+ forEach: function(fn, bind){
+ for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i, this);
+ }
+
+});
+
+Array.alias('forEach', 'each');
+
+function $A(iterable){
+ if (iterable.item){
+ var l = iterable.length, array = new Array(l);
+ while (l--) array[l] = iterable[l];
+ return array;
+ }
+ return Array.prototype.slice.call(iterable);
+};
+
+function $arguments(i){
+ return function(){
+ return arguments[i];
+ };
+};
+
+function $chk(obj){
+ return !!(obj || obj === 0);
+};
+
+function $clear(timer){
+ clearTimeout(timer);
+ clearInterval(timer);
+ return null;
+};
+
+function $defined(obj){
+ return (obj != undefined);
+};
+
+function $each(iterable, fn, bind){
+ var type = $type(iterable);
+ ((type == 'arguments' || type == 'collection' || type == 'array') ? Array : Hash).each(iterable, fn, bind);
+};
+
+function $empty(){};
+
+function $extend(original, extended){
+ for (var key in (extended || {})) original[key] = extended[key];
+ return original;
+};
+
+function $H(object){
+ return new Hash(object);
+};
+
+function $lambda(value){
+ return (typeof value == 'function') ? value : function(){
+ return value;
+ };
+};
+
+function $merge(){
+ var args = Array.slice(arguments);
+ args.unshift({});
+ return $mixin.apply(null, args);
+};
+
+function $mixin(mix){
+ for (var i = 1, l = arguments.length; i < l; i++){
+ var object = arguments[i];
+ if ($type(object) != 'object') continue;
+ for (var key in object){
+ var op = object[key], mp = mix[key];
+ mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $mixin(mp, op) : $unlink(op);
+ }
+ }
+ return mix;
+};
+
+function $pick(){
+ for (var i = 0, l = arguments.length; i < l; i++){
+ if (arguments[i] != undefined) return arguments[i];
+ }
+ return null;
+};
+
+function $random(min, max){
+ return Math.floor(Math.random() * (max - min + 1) + min);
+};
+
+function $splat(obj){
+ var type = $type(obj);
+ return (type) ? ((type != 'array' && type != 'arguments') ? [obj] : obj) : [];
+};
+
+var $time = Date.now || function(){
+ return +new Date;
+};
+
+function $try(){
+ for (var i = 0, l = arguments.length; i < l; i++){
+ try {
+ return arguments[i]();
+ } catch(e){}
+ }
+ return null;
+};
+
+function $type(obj){
+ if (obj == undefined) return false;
+ if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name;
+ if (obj.nodeName){
+ switch (obj.nodeType){
+ case 1: return 'element';
+ case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';
+ }
+ } else if (typeof obj.length == 'number'){
+ if (obj.callee) return 'arguments';
+ else if (obj.item) return 'collection';
+ }
+ return typeof obj;
+};
+
+function $unlink(object){
+ var unlinked;
+ switch ($type(object)){
+ case 'object':
+ unlinked = {};
+ for (var p in object) unlinked[p] = $unlink(object[p]);
+ break;
+ case 'hash':
+ unlinked = new Hash(object);
+ break;
+ case 'array':
+ unlinked = [];
+ for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]);
+ break;
+ default: return object;
+ }
+ return unlinked;
+};
+
+
+/*
+Script: Browser.js
+ The Browser Core. Contains Browser initialization, Window and Document, and the Browser Hash.
+
+License:
+ MIT-style license.
+*/
+
+var Browser = $merge({
+
+ Engine: {name: 'unknown', version: 0},
+
+ Platform: {name: (window.orientation != undefined) ? 'ipod' : (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase()},
+
+ Features: {xpath: !!(document.evaluate), air: !!(window.runtime), query: !!(document.querySelector)},
+
+ Plugins: {},
+
+ Engines: {
+
+ presto: function(){
+ return (!window.opera) ? false : ((arguments.callee.caller) ? 960 : ((document.getElementsByClassName) ? 950 : 925));
+ },
+
+ trident: function(){
+ return (!window.ActiveXObject) ? false : ((window.XMLHttpRequest) ? 5 : 4);
+ },
+
+ webkit: function(){
+ return (navigator.taintEnabled) ? false : ((Browser.Features.xpath) ? ((Browser.Features.query) ? 525 : 420) : 419);
+ },
+
+ gecko: function(){
+ return (document.getBoxObjectFor == undefined) ? false : ((document.getElementsByClassName) ? 19 : 18);
+ }
+
+ }
+
+}, Browser || {});
+
+Browser.Platform[Browser.Platform.name] = true;
+
+Browser.detect = function(){
+
+ for (var engine in this.Engines){
+ var version = this.Engines[engine]();
+ if (version){
+ this.Engine = {name: engine, version: version};
+ this.Engine[engine] = this.Engine[engine + version] = true;
+ break;
+ }
+ }
+
+ return {name: engine, version: version};
+
+};
+
+Browser.detect();
+
+Browser.Request = function(){
+ return $try(function(){
+ return new XMLHttpRequest();
+ }, function(){
+ return new ActiveXObject('MSXML2.XMLHTTP');
+ });
+};
+
+Browser.Features.xhr = !!(Browser.Request());
+
+Browser.Plugins.Flash = (function(){
+ var version = ($try(function(){
+ return navigator.plugins['Shockwave Flash'].description;
+ }, function(){
+ return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');
+ }) || '0 r0').match(/\d+/g);
+ return {version: parseInt(version[0] || 0 + '.' + version[1], 10) || 0, build: parseInt(version[2], 10) || 0};
+})();
+
+function $exec(text){
+ if (!text) return text;
+ if (window.execScript){
+ window.execScript(text);
+ } else {
+ var script = document.createElement('script');
+ script.setAttribute('type', 'text/javascript');
+ script[(Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerText' : 'text'] = text;
+ document.head.appendChild(script);
+ document.head.removeChild(script);
+ }
+ return text;
+};
+
+Native.UID = 1;
+
+var $uid = (Browser.Engine.trident) ? function(item){
+ return (item.uid || (item.uid = [Native.UID++]))[0];
+} : function(item){
+ return item.uid || (item.uid = Native.UID++);
+};
+
+var Window = new Native({
+
+ name: 'Window',
+
+ legacy: (Browser.Engine.trident) ? null: window.Window,
+
+ initialize: function(win){
+ $uid(win);
+ if (!win.Element){
+ win.Element = $empty;
+ if (Browser.Engine.webkit) win.document.createElement("iframe"); //fixes safari 2
+ win.Element.prototype = (Browser.Engine.webkit) ? window["[[DOMElement.prototype]]"] : {};
+ }
+ win.document.window = win;
+ return $extend(win, Window.Prototype);
+ },
+
+ afterImplement: function(property, value){
+ window[property] = Window.Prototype[property] = value;
+ }
+
+});
+
+Window.Prototype = {$family: {name: 'window'}};
+
+new Window(window);
+
+var Document = new Native({
+
+ name: 'Document',
+
+ legacy: (Browser.Engine.trident) ? null: window.Document,
+
+ initialize: function(doc){
+ $uid(doc);
+ doc.head = doc.getElementsByTagName('head')[0];
+ doc.html = doc.getElementsByTagName('html')[0];
+ if (Browser.Engine.trident && Browser.Engine.version <= 4) $try(function(){
+ doc.execCommand("BackgroundImageCache", false, true);
+ });
+ if (Browser.Engine.trident) doc.window.attachEvent('onunload', function() {
+ doc.window.detachEvent('onunload', arguments.callee);
+ doc.head = doc.html = doc.window = null;
+ });
+ return $extend(doc, Document.Prototype);
+ },
+
+ afterImplement: function(property, value){
+ document[property] = Document.Prototype[property] = value;
+ }
+
+});
+
+Document.Prototype = {$family: {name: 'document'}};
+
+new Document(document);
+
+
+/*
+Script: Array.js
+ Contains Array Prototypes like each, contains, and erase.
+
+License:
+ MIT-style license.
+*/
+
+Array.implement({
+
+ every: function(fn, bind){
+ for (var i = 0, l = this.length; i < l; i++){
+ if (!fn.call(bind, this[i], i, this)) return false;
+ }
+ return true;
+ },
+
+ filter: function(fn, bind){
+ var results = [];
+ for (var i = 0, l = this.length; i < l; i++){
+ if (fn.call(bind, this[i], i, this)) results.push(this[i]);
+ }
+ return results;
+ },
+
+ clean: function() {
+ return this.filter($defined);
+ },
+
+ indexOf: function(item, from){
+ var len = this.length;
+ for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){
+ if (this[i] === item) return i;
+ }
+ return -1;
+ },
+
+ map: function(fn, bind){
+ var results = [];
+ for (var i = 0, l = this.length; i < l; i++) results[i] = fn.call(bind, this[i], i, this);
+ return results;
+ },
+
+ some: function(fn, bind){
+ for (var i = 0, l = this.length; i < l; i++){
+ if (fn.call(bind, this[i], i, this)) return true;
+ }
+ return false;
+ },
+
+ associate: function(keys){
+ var obj = {}, length = Math.min(this.length, keys.length);
+ for (var i = 0; i < length; i++) obj[keys[i]] = this[i];
+ return obj;
+ },
+
+ link: function(object){
+ var result = {};
+ for (var i = 0, l = this.length; i < l; i++){
+ for (var key in object){
+ if (object[key](this[i])){
+ result[key] = this[i];
+ delete object[key];
+ break;
+ }
+ }
+ }
+ return result;
+ },
+
+ contains: function(item, from){
+ return this.indexOf(item, from) != -1;
+ },
+
+ extend: function(array){
+ for (var i = 0, j = array.length; i < j; i++) this.push(array[i]);
+ return this;
+ },
+
+ getLast: function(){
+ return (this.length) ? this[this.length - 1] : null;
+ },
+
+ getRandom: function(){
+ return (this.length) ? this[$random(0, this.length - 1)] : null;
+ },
+
+ include: function(item){
+ if (!this.contains(item)) this.push(item);
+ return this;
+ },
+
+ combine: function(array){
+ for (var i = 0, l = array.length; i < l; i++) this.include(array[i]);
+ return this;
+ },
+
+ erase: function(item){
+ for (var i = this.length; i--; i){
+ if (this[i] === item) this.splice(i, 1);
+ }
+ return this;
+ },
+
+ empty: function(){
+ this.length = 0;
+ return this;
+ },
+
+ flatten: function(){
+ var array = [];
+ for (var i = 0, l = this.length; i < l; i++){
+ var type = $type(this[i]);
+ if (!type) continue;
+ array = array.concat((type == 'array' || type == 'collection' || type == 'arguments') ? Array.flatten(this[i]) : this[i]);
+ }
+ return array;
+ },
+
+ hexToRgb: function(array){
+ if (this.length != 3) return null;
+ var rgb = this.map(function(value){
+ if (value.length == 1) value += value;
+ return value.toInt(16);
+ });
+ return (array) ? rgb : 'rgb(' + rgb + ')';
+ },
+
+ rgbToHex: function(array){
+ if (this.length < 3) return null;
+ if (this.length == 4 && this[3] == 0 && !array) return 'transparent';
+ var hex = [];
+ for (var i = 0; i < 3; i++){
+ var bit = (this[i] - 0).toString(16);
+ hex.push((bit.length == 1) ? '0' + bit : bit);
+ }
+ return (array) ? hex : '#' + hex.join('');
+ }
+
+});
+
+
+/*
+Script: Function.js
+ Contains Function Prototypes like create, bind, pass, and delay.
+
+License:
+ MIT-style license.
+*/
+
+Function.implement({
+
+ extend: function(properties){
+ for (var property in properties) this[property] = properties[property];
+ return this;
+ },
+
+ create: function(options){
+ var self = this;
+ options = options || {};
+ return function(event){
+ var args = options.arguments;
+ args = (args != undefined) ? $splat(args) : Array.slice(arguments, (options.event) ? 1 : 0);
+ if (options.event) args = [event || window.event].extend(args);
+ var returns = function(){
+ return self.apply(options.bind || null, args);
+ };
+ if (options.delay) return setTimeout(returns, options.delay);
+ if (options.periodical) return setInterval(returns, options.periodical);
+ if (options.attempt) return $try(returns);
+ return returns();
+ };
+ },
+
+ run: function(args, bind){
+ return this.apply(bind, $splat(args));
+ },
+
+ pass: function(args, bind){
+ return this.create({bind: bind, arguments: args});
+ },
+
+ bind: function(bind, args){
+ return this.create({bind: bind, arguments: args});
+ },
+
+ bindWithEvent: function(bind, args){
+ return this.create({bind: bind, arguments: args, event: true});
+ },
+
+ attempt: function(args, bind){
+ return this.create({bind: bind, arguments: args, attempt: true})();
+ },
+
+ delay: function(delay, bind, args){
+ return this.create({bind: bind, arguments: args, delay: delay})();
+ },
+
+ periodical: function(periodical, bind, args){
+ return this.create({bind: bind, arguments: args, periodical: periodical})();
+ }
+
+});
+
+
+/*
+Script: Number.js
+ Contains Number Prototypes like limit, round, times, and ceil.
+
+License:
+ MIT-style license.
+*/
+
+Number.implement({
+
+ limit: function(min, max){
+ return Math.min(max, Math.max(min, this));
+ },
+
+ round: function(precision){
+ precision = Math.pow(10, precision || 0);
+ return Math.round(this * precision) / precision;
+ },
+
+ times: function(fn, bind){
+ for (var i = 0; i < this; i++) fn.call(bind, i, this);
+ },
+
+ toFloat: function(){
+ return parseFloat(this);
+ },
+
+ toInt: function(base){
+ return parseInt(this, base || 10);
+ }
+
+});
+
+Number.alias('times', 'each');
+
+(function(math){
+ var methods = {};
+ math.each(function(name){
+ if (!Number[name]) methods[name] = function(){
+ return Math[name].apply(null, [this].concat($A(arguments)));
+ };
+ });
+ Number.implement(methods);
+})(['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor', 'log', 'max', 'min', 'pow', 'sin', 'sqrt', 'tan']);
+
+
+/*
+Script: String.js
+ Contains String Prototypes like camelCase, capitalize, test, and toInt.
+
+License:
+ MIT-style license.
+*/
+
+String.implement({
+
+ test: function(regex, params){
+ return ((typeof regex == 'string') ? new RegExp(regex, params) : regex).test(this);
+ },
+
+ contains: function(string, separator){
+ return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : this.indexOf(string) > -1;
+ },
+
+ trim: function(){
+ return this.replace(/^\s+|\s+$/g, '');
+ },
+
+ clean: function(){
+ return this.replace(/\s+/g, ' ').trim();
+ },
+
+ camelCase: function(){
+ return this.replace(/-\D/g, function(match){
+ return match.charAt(1).toUpperCase();
+ });
+ },
+
+ hyphenate: function(){
+ return this.replace(/[A-Z]/g, function(match){
+ return ('-' + match.charAt(0).toLowerCase());
+ });
+ },
+
+ capitalize: function(){
+ return this.replace(/\b[a-z]/g, function(match){
+ return match.toUpperCase();
+ });
+ },
+
+ escapeRegExp: function(){
+ return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
+ },
+
+ toInt: function(base){
+ return parseInt(this, base || 10);
+ },
+
+ toFloat: function(){
+ return parseFloat(this);
+ },
+
+ hexToRgb: function(array){
+ var hex = this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
+ return (hex) ? hex.slice(1).hexToRgb(array) : null;
+ },
+
+ rgbToHex: function(array){
+ var rgb = this.match(/\d{1,3}/g);
+ return (rgb) ? rgb.rgbToHex(array) : null;
+ },
+
+ stripScripts: function(option){
+ var scripts = '';
+ var text = this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
+ scripts += arguments[1] + '\n';
+ return '';
+ });
+ if (option === true) $exec(scripts);
+ else if ($type(option) == 'function') option(scripts, text);
+ return text;
+ },
+
+ substitute: function(object, regexp){
+ return this.replace(regexp || (/\\?\{([^{}]+)\}/g), function(match, name){
+ if (match.charAt(0) == '\\') return match.slice(1);
+ return (object[name] != undefined) ? object[name] : '';
+ });
+ }
+
+});
+
+
+/*
+Script: Hash.js
+ Contains Hash Prototypes. Provides a means for overcoming the JavaScript practical impossibility of extending native Objects.
+
+License:
+ MIT-style license.
+*/
+
+Hash.implement({
+
+ has: Object.prototype.hasOwnProperty,
+
+ keyOf: function(value){
+ for (var key in this){
+ if (this.hasOwnProperty(key) && this[key] === value) return key;
+ }
+ return null;
+ },
+
+ hasValue: function(value){
+ return (Hash.keyOf(this, value) !== null);
+ },
+
+ extend: function(properties){
+ Hash.each(properties, function(value, key){
+ Hash.set(this, key, value);
+ }, this);
+ return this;
+ },
+
+ combine: function(properties){
+ Hash.each(properties, function(value, key){
+ Hash.include(this, key, value);
+ }, this);
+ return this;
+ },
+
+ erase: function(key){
+ if (this.hasOwnProperty(key)) delete this[key];
+ return this;
+ },
+
+ get: function(key){
+ return (this.hasOwnProperty(key)) ? this[key] : null;
+ },
+
+ set: function(key, value){
+ if (!this[key] || this.hasOwnProperty(key)) this[key] = value;
+ return this;
+ },
+
+ empty: function(){
+ Hash.each(this, function(value, key){
+ delete this[key];
+ }, this);
+ return this;
+ },
+
+ include: function(key, value){
+ if (this[key] == undefined) this[key] = value;
+ return this;
+ },
+
+ map: function(fn, bind){
+ var results = new Hash;
+ Hash.each(this, function(value, key){
+ results.set(key, fn.call(bind, value, key, this));
+ }, this);
+ return results;
+ },
+
+ filter: function(fn, bind){
+ var results = new Hash;
+ Hash.each(this, function(value, key){
+ if (fn.call(bind, value, key, this)) results.set(key, value);
+ }, this);
+ return results;
+ },
+
+ every: function(fn, bind){
+ for (var key in this){
+ if (this.hasOwnProperty(key) && !fn.call(bind, this[key], key)) return false;
+ }
+ return true;
+ },
+
+ some: function(fn, bind){
+ for (var key in this){
+ if (this.hasOwnProperty(key) && fn.call(bind, this[key], key)) return true;
+ }
+ return false;
+ },
+
+ getKeys: function(){
+ var keys = [];
+ Hash.each(this, function(value, key){
+ keys.push(key);
+ });
+ return keys;
+ },
+
+ getValues: function(){
+ var values = [];
+ Hash.each(this, function(value){
+ values.push(value);
+ });
+ return values;
+ },
+
+ toQueryString: function(base){
+ var queryString = [];
+ Hash.each(this, function(value, key){
+ if (base) key = base + '[' + key + ']';
+ var result;
+ switch ($type(value)){
+ case 'object': result = Hash.toQueryString(value, key); break;
+ case 'array':
+ var qs = {};
+ value.each(function(val, i){
+ qs[i] = val;
+ });
+ result = Hash.toQueryString(qs, key);
+ break;
+ default: result = key + '=' + encodeURIComponent(value);
+ }
+ if (value != undefined) queryString.push(result);
+ });
+
+ return queryString.join('&');
+ }
+
+});
+
+Hash.alias({keyOf: 'indexOf', hasValue: 'contains'});
+
+
+/*
+Script: Event.js
+ Contains the Event Native, to make the event object completely crossbrowser.
+
+License:
+ MIT-style license.
+*/
+
+var Event = new Native({
+
+ name: 'Event',
+
+ initialize: function(event, win){
+ win = win || window;
+ var doc = win.document;
+ event = event || win.event;
+ if (event.$extended) return event;
+ this.$extended = true;
+ var type = event.type;
+ var target = event.target || event.srcElement;
+ while (target && target.nodeType == 3) target = target.parentNode;
+
+ if (type.test(/key/)){
+ var code = event.which || event.keyCode;
+ var key = Event.Keys.keyOf(code);
+ if (type == 'keydown'){
+ var fKey = code - 111;
+ if (fKey > 0 && fKey < 13) key = 'f' + fKey;
+ }
+ key = key || String.fromCharCode(code).toLowerCase();
+ } else if (type.match(/(click|mouse|menu)/i)){
+ doc = (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
+ var page = {
+ x: event.pageX || event.clientX + doc.scrollLeft,
+ y: event.pageY || event.clientY + doc.scrollTop
+ };
+ var client = {
+ x: (event.pageX) ? event.pageX - win.pageXOffset : event.clientX,
+ y: (event.pageY) ? event.pageY - win.pageYOffset : event.clientY
+ };
+ if (type.match(/DOMMouseScroll|mousewheel/)){
+ var wheel = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;
+ }
+ var rightClick = (event.which == 3) || (event.button == 2);
+ var related = null;
+ if (type.match(/over|out/)){
+ switch (type){
+ case 'mouseover': related = event.relatedTarget || event.fromElement; break;
+ case 'mouseout': related = event.relatedTarget || event.toElement;
+ }
+ if (!(function(){
+ while (related && related.nodeType == 3) related = related.parentNode;
+ return true;
+ }).create({attempt: Browser.Engine.gecko})()) related = false;
+ }
+ }
+
+ return $extend(this, {
+ event: event,
+ type: type,
+
+ page: page,
+ client: client,
+ rightClick: rightClick,
+
+ wheel: wheel,
+
+ relatedTarget: related,
+ target: target,
+
+ code: code,
+ key: key,
+
+ shift: event.shiftKey,
+ control: event.ctrlKey,
+ alt: event.altKey,
+ meta: event.metaKey
+ });
+ }
+
+});
+
+Event.Keys = new Hash({
+ 'enter': 13,
+ 'up': 38,
+ 'down': 40,
+ 'left': 37,
+ 'right': 39,
+ 'esc': 27,
+ 'space': 32,
+ 'backspace': 8,
+ 'tab': 9,
+ 'delete': 46
+});
+
+Event.implement({
+
+ stop: function(){
+ return this.stopPropagation().preventDefault();
+ },
+
+ stopPropagation: function(){
+ if (this.event.stopPropagation) this.event.stopPropagation();
+ else this.event.cancelBubble = true;
+ return this;
+ },
+
+ preventDefault: function(){
+ if (this.event.preventDefault) this.event.preventDefault();
+ else this.event.returnValue = false;
+ return this;
+ }
+
+});
+
+
+/*
+Script: Class.js
+ Contains the Class Function for easily creating, extending, and implementing reusable Classes.
+
+License:
+ MIT-style license.
+*/
+
+function Class(params){
+
+ if (params instanceof Function) params = {initialize: params};
+
+ var newClass = function(){
+ Object.reset(this);
+ if (newClass._prototyping) return this;
+ this._current = $empty;
+ var value = (this.initialize) ? this.initialize.apply(this, arguments) : this;
+ delete this._current; delete this.caller;
+ return value;
+ }.extend(this);
+
+ newClass.implement(params);
+
+ newClass.constructor = Class;
+ newClass.prototype.constructor = newClass;
+
+ return newClass;
+
+};
+
+Function.prototype.protect = function(){
+ this._protected = true;
+ return this;
+};
+
+Object.reset = function(object, key){
+
+ if (key == null){
+ for (var p in object) Object.reset(object, p);
+ return object;
+ }
+
+ delete object[key];
+
+ switch ($type(object[key])){
+ case 'object':
+ var F = function(){};
+ F.prototype = object[key];
+ var i = new F;
+ object[key] = Object.reset(i);
+ break;
+ case 'array': object[key] = $unlink(object[key]); break;
+ }
+
+ return object;
+
+};
+
+new Native({name: 'Class', initialize: Class}).extend({
+
+ instantiate: function(F){
+ F._prototyping = true;
+ var proto = new F;
+ delete F._prototyping;
+ return proto;
+ },
+
+ wrap: function(self, key, method){
+ if (method._origin) method = method._origin;
+
+ return function(){
+ if (method._protected && this._current == null) throw new Error('The method "' + key + '" cannot be called.');
+ var caller = this.caller, current = this._current;
+ this.caller = current; this._current = arguments.callee;
+ var result = method.apply(this, arguments);
+ this._current = current; this.caller = caller;
+ return result;
+ }.extend({_owner: self, _origin: method, _name: key});
+
+ }
+
+});
+
+Class.implement({
+
+ implement: function(key, value){
+
+ if ($type(key) == 'object'){
+ for (var p in key) this.implement(p, key[p]);
+ return this;
+ }
+
+ var mutator = Class.Mutators[key];
+
+ if (mutator){
+ value = mutator.call(this, value);
+ if (value == null) return this;
+ }
+
+ var proto = this.prototype;
+
+ switch ($type(value)){
+
+ case 'function':
+ if (value._hidden) return this;
+ proto[key] = Class.wrap(this, key, value);
+ break;
+
+ case 'object':
+ var previous = proto[key];
+ if ($type(previous) == 'object') $mixin(previous, value);
+ else proto[key] = $unlink(value);
+ break;
+
+ case 'array':
+ proto[key] = $unlink(value);
+ break;
+
+ default: proto[key] = value;
+
+ }
+
+ return this;
+
+ }
+
+});
+
+Class.Mutators = {
+
+ Extends: function(parent){
+
+ this.parent = parent;
+ this.prototype = Class.instantiate(parent);
+
+ this.implement('parent', function(){
+ var name = this.caller._name, previous = this.caller._owner.parent.prototype[name];
+ if (!previous) throw new Error('The method "' + name + '" has no parent.');
+ return previous.apply(this, arguments);
+ }.protect());
+
+ },
+
+ Implements: function(items){
+ $splat(items).each(function(item){
+ if (item instanceof Function) item = Class.instantiate(item);
+ this.implement(item);
+ }, this);
+
+ }
+
+};
+
+
+/*
+Script: Class.Extras.js
+ Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks.
+
+License:
+ MIT-style license.
+*/
+
+var Chain = new Class({
+
+ $chain: [],
+
+ chain: function(){
+ this.$chain.extend(Array.flatten(arguments));
+ return this;
+ },
+
+ callChain: function(){
+ return (this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false;
+ },
+
+ clearChain: function(){
+ this.$chain.empty();
+ return this;
+ }
+
+});
+
+var Events = new Class({
+
+ $events: {},
+
+ addEvent: function(type, fn, internal){
+ type = Events.removeOn(type);
+ if (fn != $empty){
+ this.$events[type] = this.$events[type] || [];
+ this.$events[type].include(fn);
+ if (internal) fn.internal = true;
+ }
+ return this;
+ },
+
+ addEvents: function(events){
+ for (var type in events) this.addEvent(type, events[type]);
+ return this;
+ },
+
+ fireEvent: function(type, args, delay){
+ type = Events.removeOn(type);
+ if (!this.$events || !this.$events[type]) return this;
+ this.$events[type].each(function(fn){
+ fn.create({'bind': this, 'delay': delay, 'arguments': args})();
+ }, this);
+ return this;
+ },
+
+ removeEvent: function(type, fn){
+ type = Events.removeOn(type);
+ if (!this.$events[type]) return this;
+ if (!fn.internal) this.$events[type].erase(fn);
+ return this;
+ },
+
+ removeEvents: function(events){
+ var type;
+ if ($type(events) == 'object'){
+ for (type in events) this.removeEvent(type, events[type]);
+ return this;
+ }
+ if (events) events = Events.removeOn(events);
+ for (type in this.$events){
+ if (events && events != type) continue;
+ var fns = this.$events[type];
+ for (var i = fns.length; i--; i) this.removeEvent(type, fns[i]);
+ }
+ return this;
+ }
+
+});
+
+Events.removeOn = function(string){
+ return string.replace(/^on([A-Z])/, function(full, first) {
+ return first.toLowerCase();
+ });
+};
+
+var Options = new Class({
+
+ setOptions: function(){
+ this.options = $merge.run([this.options].extend(arguments));
+ if (!this.addEvent) return this;
+ for (var option in this.options){
+ if ($type(this.options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue;
+ this.addEvent(option, this.options[option]);
+ delete this.options[option];
+ }
+ return this;
+ }
+
+});
+
+
+/*
+Script: Element.js
+ One of the most important items in MooTools. Contains the dollar function, the dollars function, and an handful of cross-browser,
+ time-saver methods to let you easily work with HTML Elements.
+
+License:
+ MIT-style license.
+*/
+
+var Element = new Native({
+
+ name: 'Element',
+
+ legacy: window.Element,
+
+ initialize: function(tag, props){
+ var konstructor = Element.Constructors.get(tag);
+ if (konstructor) return konstructor(props);
+ if (typeof tag == 'string') return document.newElement(tag, props);
+ return $(tag).set(props);
+ },
+
+ afterImplement: function(key, value){
+ Element.Prototype[key] = value;
+ if (Array[key]) return;
+ Elements.implement(key, function(){
+ var items = [], elements = true;
+ for (var i = 0, j = this.length; i < j; i++){
+ var returns = this[i][key].apply(this[i], arguments);
+ items.push(returns);
+ if (elements) elements = ($type(returns) == 'element');
+ }
+ return (elements) ? new Elements(items) : items;
+ });
+ }
+
+});
+
+Element.Prototype = {$family: {name: 'element'}};
+
+Element.Constructors = new Hash;
+
+var IFrame = new Native({
+
+ name: 'IFrame',
+
+ generics: false,
+
+ initialize: function(){
+ var params = Array.link(arguments, {properties: Object.type, iframe: $defined});
+ var props = params.properties || {};
+ var iframe = $(params.iframe) || false;
+ var onload = props.onload || $empty;
+ delete props.onload;
+ props.id = props.name = $pick(props.id, props.name, iframe.id, iframe.name, 'IFrame_' + $time());
+ iframe = new Element(iframe || 'iframe', props);
+ var onFrameLoad = function(){
+ var host = $try(function(){
+ return iframe.contentWindow.location.host;
+ });
+ if (host && host == window.location.host){
+ var win = new Window(iframe.contentWindow);
+ new Document(iframe.contentWindow.document);
+ $extend(win.Element.prototype, Element.Prototype);
+ }
+ onload.call(iframe.contentWindow, iframe.contentWindow.document);
+ };
+ (window.frames[props.id]) ? onFrameLoad() : iframe.addListener('load', onFrameLoad);
+ return iframe;
+ }
+
+});
+
+var Elements = new Native({
+
+ initialize: function(elements, options){
+ options = $extend({ddup: true, cash: true}, options);
+ elements = elements || [];
+ if (options.ddup || options.cash){
+ var uniques = {}, returned = [];
+ for (var i = 0, l = elements.length; i < l; i++){
+ var el = $.element(elements[i], !options.cash);
+ if (options.ddup){
+ if (uniques[el.uid]) continue;
+ uniques[el.uid] = true;
+ }
+ returned.push(el);
+ }
+ elements = returned;
+ }
+ return (options.cash) ? $extend(elements, this) : elements;
+ }
+
+});
+
+Elements.implement({
+
+ filter: function(filter, bind){
+ if (!filter) return this;
+ return new Elements(Array.filter(this, (typeof filter == 'string') ? function(item){
+ return item.match(filter);
+ } : filter, bind));
+ }
+
+});
+
+Document.implement({
+
+ newElement: function(tag, props){
+ if (Browser.Engine.trident && props){
+ ['name', 'type', 'checked'].each(function(attribute){
+ if (!props[attribute]) return;
+ tag += ' ' + attribute + '="' + props[attribute] + '"';
+ if (attribute != 'checked') delete props[attribute];
+ });
+ tag = '<' + tag + '>';
+ }
+ return $.element(this.createElement(tag)).set(props);
+ },
+
+ newTextNode: function(text){
+ return this.createTextNode(text);
+ },
+
+ getDocument: function(){
+ return this;
+ },
+
+ getWindow: function(){
+ return this.window;
+ }
+
+});
+
+Window.implement({
+
+ $: function(el, nocash){
+ if (el && el.$family && el.uid) return el;
+ var type = $type(el);
+ return ($[type]) ? $[type](el, nocash, this.document) : null;
+ },
+
+ $$: function(selector){
+ if (arguments.length == 1 && typeof selector == 'string') return this.document.getElements(selector);
+ var elements = [];
+ var args = Array.flatten(arguments);
+ for (var i = 0, l = args.length; i < l; i++){
+ var item = args[i];
+ switch ($type(item)){
+ case 'element': elements.push(item); break;
+ case 'string': elements.extend(this.document.getElements(item, true));
+ }
+ }
+ return new Elements(elements);
+ },
+
+ getDocument: function(){
+ return this.document;
+ },
+
+ getWindow: function(){
+ return this;
+ }
+
+});
+
+$.string = function(id, nocash, doc){
+ id = doc.getElementById(id);
+ return (id) ? $.element(id, nocash) : null;
+};
+
+$.element = function(el, nocash){
+ $uid(el);
+ if (!nocash && !el.$family && !(/^object|embed$/i).test(el.tagName)){
+ var proto = Element.Prototype;
+ for (var p in proto) el[p] = proto[p];
+ };
+ return el;
+};
+
+$.object = function(obj, nocash, doc){
+ if (obj.toElement) return $.element(obj.toElement(doc), nocash);
+ return null;
+};
+
+$.textnode = $.whitespace = $.window = $.document = $arguments(0);
+
+Native.implement([Element, Document], {
+
+ getElement: function(selector, nocash){
+ return $(this.getElements(selector, true)[0] || null, nocash);
+ },
+
+ getElements: function(tags, nocash){
+ tags = tags.split(',');
+ var elements = [];
+ var ddup = (tags.length > 1);
+ tags.each(function(tag){
+ var partial = this.getElementsByTagName(tag.trim());
+ (ddup) ? elements.extend(partial) : elements = partial;
+ }, this);
+ return new Elements(elements, {ddup: ddup, cash: !nocash});
+ }
+
+});
+
+(function(){
+
+var collected = {}, storage = {};
+var props = {input: 'checked', option: 'selected', textarea: (Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerHTML' : 'value'};
+
+var get = function(uid){
+ return (storage[uid] || (storage[uid] = {}));
+};
+
+var clean = function(item, retain){
+ if (!item) return;
+ var uid = item.uid;
+ if (Browser.Engine.trident){
+ if (item.clearAttributes){
+ var clone = retain && item.cloneNode(false);
+ item.clearAttributes();
+ if (clone) item.mergeAttributes(clone);
+ } else if (item.removeEvents){
+ item.removeEvents();
+ }
+ if ((/object/i).test(item.tagName)){
+ for (var p in item){
+ if (typeof item[p] == 'function') item[p] = $empty;
+ }
+ Element.dispose(item);
+ }
+ }
+ if (!uid) return;
+ collected[uid] = storage[uid] = null;
+};
+
+var purge = function(){
+ Hash.each(collected, clean);
+ if (Browser.Engine.trident) $A(document.getElementsByTagName('object')).each(clean);
+ if (window.CollectGarbage) CollectGarbage();
+ collected = storage = null;
+};
+
+var walk = function(element, walk, start, match, all, nocash){
+ var el = element[start || walk];
+ var elements = [];
+ while (el){
+ if (el.nodeType == 1 && (!match || Element.match(el, match))){
+ if (!all) return $(el, nocash);
+ elements.push(el);
+ }
+ el = el[walk];
+ }
+ return (all) ? new Elements(elements, {ddup: false, cash: !nocash}) : null;
+};
+
+var attributes = {
+ 'html': 'innerHTML',
+ 'class': 'className',
+ 'for': 'htmlFor',
+ 'text': (Browser.Engine.trident || (Browser.Engine.webkit && Browser.Engine.version < 420)) ? 'innerText' : 'textContent'
+};
+var bools = ['compact', 'nowrap', 'ismap', 'declare', 'noshade', 'checked', 'disabled', 'readonly', 'multiple', 'selected', 'noresize', 'defer'];
+var camels = ['value', 'accessKey', 'cellPadding', 'cellSpacing', 'colSpan', 'frameBorder', 'maxLength', 'readOnly', 'rowSpan', 'tabIndex', 'useMap'];
+
+bools = bools.associate(bools);
+
+Hash.extend(attributes, bools);
+Hash.extend(attributes, camels.associate(camels.map(String.toLowerCase)));
+
+var inserters = {
+
+ before: function(context, element){
+ if (element.parentNode) element.parentNode.insertBefore(context, element);
+ },
+
+ after: function(context, element){
+ if (!element.parentNode) return;
+ var next = element.nextSibling;
+ (next) ? element.parentNode.insertBefore(context, next) : element.parentNode.appendChild(context);
+ },
+
+ bottom: function(context, element){
+ element.appendChild(context);
+ },
+
+ top: function(context, element){
+ var first = element.firstChild;
+ (first) ? element.insertBefore(context, first) : element.appendChild(context);
+ }
+
+};
+
+inserters.inside = inserters.bottom;
+
+Hash.each(inserters, function(inserter, where){
+
+ where = where.capitalize();
+
+ Element.implement('inject' + where, function(el){
+ inserter(this, $(el, true));
+ return this;
+ });
+
+ Element.implement('grab' + where, function(el){
+ inserter($(el, true), this);
+ return this;
+ });
+
+});
+
+Element.implement({
+
+ set: function(prop, value){
+ switch ($type(prop)){
+ case 'object':
+ for (var p in prop) this.set(p, prop[p]);
+ break;
+ case 'string':
+ var property = Element.Properties.get(prop);
+ (property && property.set) ? property.set.apply(this, Array.slice(arguments, 1)) : this.setProperty(prop, value);
+ }
+ return this;
+ },
+
+ get: function(prop){
+ var property = Element.Properties.get(prop);
+ return (property && property.get) ? property.get.apply(this, Array.slice(arguments, 1)) : this.getProperty(prop);
+ },
+
+ erase: function(prop){
+ var property = Element.Properties.get(prop);
+ (property && property.erase) ? property.erase.apply(this) : this.removeProperty(prop);
+ return this;
+ },
+
+ setProperty: function(attribute, value){
+ var key = attributes[attribute];
+ if (value == undefined) return this.removeProperty(attribute);
+ if (key && bools[attribute]) value = !!value;
+ (key) ? this[key] = value : this.setAttribute(attribute, '' + value);
+ return this;
+ },
+
+ setProperties: function(attributes){
+ for (var attribute in attributes) this.setProperty(attribute, attributes[attribute]);
+ return this;
+ },
+
+ getProperty: function(attribute){
+ var key = attributes[attribute];
+ var value = (key) ? this[key] : this.getAttribute(attribute, 2);
+ return (bools[attribute]) ? !!value : (key) ? value : value || null;
+ },
+
+ getProperties: function(){
+ var args = $A(arguments);
+ return args.map(this.getProperty, this).associate(args);
+ },
+
+ removeProperty: function(attribute){
+ var key = attributes[attribute];
+ (key) ? this[key] = (key && bools[attribute]) ? false : '' : this.removeAttribute(attribute);
+ return this;
+ },
+
+ removeProperties: function(){
+ Array.each(arguments, this.removeProperty, this);
+ return this;
+ },
+
+ hasClass: function(className){
+ return this.className.contains(className, ' ');
+ },
+
+ addClass: function(className){
+ if (!this.hasClass(className)) this.className = (this.className + ' ' + className).clean();
+ return this;
+ },
+
+ removeClass: function(className){
+ this.className = this.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1');
+ return this;
+ },
+
+ toggleClass: function(className){
+ return this.hasClass(className) ? this.removeClass(className) : this.addClass(className);
+ },
+
+ adopt: function(){
+ Array.flatten(arguments).each(function(element){
+ element = $(element, true);
+ if (element) this.appendChild(element);
+ }, this);
+ return this;
+ },
+
+ appendText: function(text, where){
+ return this.grab(this.getDocument().newTextNode(text), where);
+ },
+
+ grab: function(el, where){
+ inserters[where || 'bottom']($(el, true), this);
+ return this;
+ },
+
+ inject: function(el, where){
+ inserters[where || 'bottom'](this, $(el, true));
+ return this;
+ },
+
+ replaces: function(el){
+ el = $(el, true);
+ el.parentNode.replaceChild(this, el);
+ return this;
+ },
+
+ wraps: function(el, where){
+ el = $(el, true);
+ return this.replaces(el).grab(el, where);
+ },
+
+ getPrevious: function(match, nocash){
+ return walk(this, 'previousSibling', null, match, false, nocash);
+ },
+
+ getAllPrevious: function(match, nocash){
+ return walk(this, 'previousSibling', null, match, true, nocash);
+ },
+
+ getNext: function(match, nocash){
+ return walk(this, 'nextSibling', null, match, false, nocash);
+ },
+
+ getAllNext: function(match, nocash){
+ return walk(this, 'nextSibling', null, match, true, nocash);
+ },
+
+ getFirst: function(match, nocash){
+ return walk(this, 'nextSibling', 'firstChild', match, false, nocash);
+ },
+
+ getLast: function(match, nocash){
+ return walk(this, 'previousSibling', 'lastChild', match, false, nocash);
+ },
+
+ getParent: function(match, nocash){
+ return walk(this, 'parentNode', null, match, false, nocash);
+ },
+
+ getParents: function(match, nocash){
+ return walk(this, 'parentNode', null, match, true, nocash);
+ },
+
+ getSiblings: function(match, nocash) {
+ return this.getParent().getChildren(match, nocash).erase(this);
+ },
+
+ getChildren: function(match, nocash){
+ return walk(this, 'nextSibling', 'firstChild', match, true, nocash);
+ },
+
+ getWindow: function(){
+ return this.ownerDocument.window;
+ },
+
+ getDocument: function(){
+ return this.ownerDocument;
+ },
+
+ getElementById: function(id, nocash){
+ var el = this.ownerDocument.getElementById(id);
+ if (!el) return null;
+ for (var parent = el.parentNode; parent != this; parent = parent.parentNode){
+ if (!parent) return null;
+ }
+ return $.element(el, nocash);
+ },
+
+ getSelected: function(){
+ return new Elements($A(this.options).filter(function(option){
+ return option.selected;
+ }));
+ },
+
+ getComputedStyle: function(property){
+ if (this.currentStyle) return this.currentStyle[property.camelCase()];
+ var computed = this.getDocument().defaultView.getComputedStyle(this, null);
+ return (computed) ? computed.getPropertyValue([property.hyphenate()]) : null;
+ },
+
+ toQueryString: function(){
+ var queryString = [];
+ this.getElements('input, select, textarea', true).each(function(el){
+ if (!el.name || el.disabled) return;
+ var value = (el.tagName.toLowerCase() == 'select') ? Element.getSelected(el).map(function(opt){
+ return opt.value;
+ }) : ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) ? null : el.value;
+ $splat(value).each(function(val){
+ if (typeof val != 'undefined') queryString.push(el.name + '=' + encodeURIComponent(val));
+ });
+ });
+ return queryString.join('&');
+ },
+
+ clone: function(contents, keepid){
+ contents = contents !== false;
+ var clone = this.cloneNode(contents);
+ var clean = function(node, element){
+ if (!keepid) node.removeAttribute('id');
+ if (Browser.Engine.trident){
+ node.clearAttributes();
+ node.mergeAttributes(element);
+ node.removeAttribute('uid');
+ if (node.options){
+ var no = node.options, eo = element.options;
+ for (var j = no.length; j--;) no[j].selected = eo[j].selected;
+ }
+ }
+ var prop = props[element.tagName.toLowerCase()];
+ if (prop && element[prop]) node[prop] = element[prop];
+ };
+
+ if (contents){
+ var ce = clone.getElementsByTagName('*'), te = this.getElementsByTagName('*');
+ for (var i = ce.length; i--;) clean(ce[i], te[i]);
+ }
+
+ clean(clone, this);
+ return $(clone);
+ },
+
+ destroy: function(){
+ Element.empty(this);
+ Element.dispose(this);
+ clean(this, true);
+ return null;
+ },
+
+ empty: function(){
+ $A(this.childNodes).each(function(node){
+ Element.destroy(node);
+ });
+ return this;
+ },
+
+ dispose: function(){
+ return (this.parentNode) ? this.parentNode.removeChild(this) : this;
+ },
+
+ hasChild: function(el){
+ el = $(el, true);
+ if (!el) return false;
+ if (Browser.Engine.webkit && Browser.Engine.version < 420) return $A(this.getElementsByTagName(el.tagName)).contains(el);
+ return (this.contains) ? (this != el && this.contains(el)) : !!(this.compareDocumentPosition(el) & 16);
+ },
+
+ match: function(tag){
+ return (!tag || (tag == this) || (Element.get(this, 'tag') == tag));
+ }
+
+});
+
+Native.implement([Element, Window, Document], {
+
+ addListener: function(type, fn){
+ if (type == 'unload'){
+ var old = fn, self = this;
+ fn = function(){
+ self.removeListener('unload', fn);
+ old();
+ };
+ } else {
+ collected[this.uid] = this;
+ }
+ if (this.addEventListener) this.addEventListener(type, fn, false);
+ else this.attachEvent('on' + type, fn);
+ return this;
+ },
+
+ removeListener: function(type, fn){
+ if (this.removeEventListener) this.removeEventListener(type, fn, false);
+ else this.detachEvent('on' + type, fn);
+ return this;
+ },
+
+ retrieve: function(property, dflt){
+ var storage = get(this.uid), prop = storage[property];
+ if (dflt != undefined && prop == undefined) prop = storage[property] = dflt;
+ return $pick(prop);
+ },
+
+ store: function(property, value){
+ var storage = get(this.uid);
+ storage[property] = value;
+ return this;
+ },
+
+ eliminate: function(property){
+ var storage = get(this.uid);
+ delete storage[property];
+ return this;
+ }
+
+});
+
+window.addListener('unload', purge);
+
+})();
+
+Element.Properties = new Hash;
+
+Element.Properties.style = {
+
+ set: function(style){
+ this.style.cssText = style;
+ },
+
+ get: function(){
+ return this.style.cssText;
+ },
+
+ erase: function(){
+ this.style.cssText = '';
+ }
+
+};
+
+Element.Properties.tag = {
+
+ get: function(){
+ return this.tagName.toLowerCase();
+ }
+
+};
+
+Element.Properties.html = (function(){
+ var wrapper = document.createElement('div');
+
+ var translations = {
+ table: [1, '<table>', '</table>'],
+ select: [1, '<select>', '</select>'],
+ tbody: [2, '<table><tbody>', '</tbody></table>'],
+ tr: [3, '<table><tbody><tr>', '</tr></tbody></table>']
+ };
+ translations.thead = translations.tfoot = translations.tbody;
+
+ var html = {
+ set: function(){
+ var html = Array.flatten(arguments).join('');
+ var wrap = Browser.Engine.trident && translations[this.get('tag')];
+ if (wrap){
+ var first = wrapper;
+ first.innerHTML = wrap[1] + html + wrap[2];
+ for (var i = wrap[0]; i--;) first = first.firstChild;
+ this.empty().adopt(first.childNodes);
+ } else {
+ this.innerHTML = html;
+ }
+ }
+ };
+
+ html.erase = html.set;
+
+ return html;
+})();
+
+if (Browser.Engine.webkit && Browser.Engine.version < 420) Element.Properties.text = {
+ get: function(){
+ if (this.innerText) return this.innerText;
+ var temp = this.ownerDocument.newElement('div', {html: this.innerHTML}).inject(this.ownerDocument.body);
+ var text = temp.innerText;
+ temp.destroy();
+ return text;
+ }
+};
+
+
+/*
+Script: Element.Event.js
+ Contains Element methods for dealing with events, and custom Events.
+
+License:
+ MIT-style license.
+*/
+
+Element.Properties.events = {set: function(events){
+ this.addEvents(events);
+}};
+
+Native.implement([Element, Window, Document], {
+
+ addEvent: function(type, fn){
+ var events = this.retrieve('events', {});
+ events[type] = events[type] || {'keys': [], 'values': []};
+ if (events[type].keys.contains(fn)) return this;
+ events[type].keys.push(fn);
+ var realType = type, custom = Element.Events.get(type), condition = fn, self = this;
+ if (custom){
+ if (custom.onAdd) custom.onAdd.call(this, fn);
+ if (custom.condition){
+ condition = function(event){
+ if (custom.condition.call(this, event)) return fn.call(this, event);
+ return true;
+ };
+ }
+ realType = custom.base || realType;
+ }
+ var defn = function(){
+ return fn.call(self);
+ };
+ var nativeEvent = Element.NativeEvents[realType];
+ if (nativeEvent){
+ if (nativeEvent == 2){
+ defn = function(event){
+ event = new Event(event, self.getWindow());
+ if (condition.call(self, event) === false) event.stop();
+ };
+ }
+ this.addListener(realType, defn);
+ }
+ events[type].values.push(defn);
+ return this;
+ },
+
+ removeEvent: function(type, fn){
+ var events = this.retrieve('events');
+ if (!events || !events[type]) return this;
+ var pos = events[type].keys.indexOf(fn);
+ if (pos == -1) return this;
+ events[type].keys.splice(pos, 1);
+ var value = events[type].values.splice(pos, 1)[0];
+ var custom = Element.Events.get(type);
+ if (custom){
+ if (custom.onRemove) custom.onRemove.call(this, fn);
+ type = custom.base || type;
+ }
+ return (Element.NativeEvents[type]) ? this.removeListener(type, value) : this;
+ },
+
+ addEvents: function(events){
+ for (var event in events) this.addEvent(event, events[event]);
+ return this;
+ },
+
+ removeEvents: function(events){
+ var type;
+ if ($type(events) == 'object'){
+ for (type in events) this.removeEvent(type, events[type]);
+ return this;
+ }
+ var attached = this.retrieve('events');
+ if (!attached) return this;
+ if (!events){
+ for (type in attached) this.removeEvents(type);
+ this.eliminate('events');
+ } else if (attached[events]){
+ while (attached[events].keys[0]) this.removeEvent(events, attached[events].keys[0]);
+ attached[events] = null;
+ }
+ return this;
+ },
+
+ fireEvent: function(type, args, delay){
+ var events = this.retrieve('events');
+ if (!events || !events[type]) return this;
+ events[type].keys.each(function(fn){
+ fn.create({'bind': this, 'delay': delay, 'arguments': args})();
+ }, this);
+ return this;
+ },
+
+ cloneEvents: function(from, type){
+ from = $(from);
+ var fevents = from.retrieve('events');
+ if (!fevents) return this;
+ if (!type){
+ for (var evType in fevents) this.cloneEvents(from, evType);
+ } else if (fevents[type]){
+ fevents[type].keys.each(function(fn){
+ this.addEvent(type, fn);
+ }, this);
+ }
+ return this;
+ }
+
+});
+
+Element.NativeEvents = {
+ click: 2, dblclick: 2, mouseup: 2, mousedown: 2, contextmenu: 2, //mouse buttons
+ mousewheel: 2, DOMMouseScroll: 2, //mouse wheel
+ mouseover: 2, mouseout: 2, mousemove: 2, selectstart: 2, selectend: 2, //mouse movement
+ keydown: 2, keypress: 2, keyup: 2, //keyboard
+ focus: 2, blur: 2, change: 2, reset: 2, select: 2, submit: 2, //form elements
+ load: 1, unload: 1, beforeunload: 2, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window
+ error: 1, abort: 1, scroll: 1 //misc
+};
+
+(function(){
+
+var $check = function(event){
+ var related = event.relatedTarget;
+ if (related == undefined) return true;
+ if (related === false) return false;
+ return ($type(this) != 'document' && related != this && related.prefix != 'xul' && !this.hasChild(related));
+};
+
+Element.Events = new Hash({
+
+ mouseenter: {
+ base: 'mouseover',
+ condition: $check
+ },
+
+ mouseleave: {
+ base: 'mouseout',
+ condition: $check
+ },
+
+ mousewheel: {
+ base: (Browser.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel'
+ }
+
+});
+
+})();
+
+
+/*
+Script: Element.Style.js
+ Contains methods for interacting with the styles of Elements in a fashionable way.
+
+License:
+ MIT-style license.
+*/
+
+Element.Properties.styles = {set: function(styles){
+ this.setStyles(styles);
+}};
+
+Element.Properties.opacity = {
+
+ set: function(opacity, novisibility){
+ if (!novisibility){
+ if (opacity == 0){
+ if (this.style.visibility != 'hidden') this.style.visibility = 'hidden';
+ } else {
+ if (this.style.visibility != 'visible') this.style.visibility = 'visible';
+ }
+ }
+ if (!this.currentStyle || !this.currentStyle.hasLayout) this.style.zoom = 1;
+ if (Browser.Engine.trident) this.style.filter = (opacity == 1) ? '' : 'alpha(opacity=' + opacity * 100 + ')';
+ this.style.opacity = opacity;
+ this.store('opacity', opacity);
+ },
+
+ get: function(){
+ return this.retrieve('opacity', 1);
+ }
+
+};
+
+Element.implement({
+
+ setOpacity: function(value){
+ return this.set('opacity', value, true);
+ },
+
+ getOpacity: function(){
+ return this.get('opacity');
+ },
+
+ setStyle: function(property, value){
+ switch (property){
+ case 'opacity': return this.set('opacity', parseFloat(value));
+ case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';
+ }
+ property = property.camelCase();
+ if ($type(value) != 'string'){
+ var map = (Element.Styles.get(property) || '@').split(' ');
+ value = $splat(value).map(function(val, i){
+ if (!map[i]) return '';
+ return ($type(val) == 'number') ? map[i].replace('@', Math.round(val)) : val;
+ }).join(' ');
+ } else if (value == String(Number(value))){
+ value = Math.round(value);
+ }
+ this.style[property] = value;
+ return this;
+ },
+
+ getStyle: function(property){
+ switch (property){
+ case 'opacity': return this.get('opacity');
+ case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';
+ }
+ property = property.camelCase();
+ var result = this.style[property];
+ if (!$chk(result)){
+ result = [];
+ for (var style in Element.ShortStyles){
+ if (property != style) continue;
+ for (var s in Element.ShortStyles[style]) result.push(this.getStyle(s));
+ return result.join(' ');
+ }
+ result = this.getComputedStyle(property);
+ }
+ if (result){
+ result = String(result);
+ var color = result.match(/rgba?\([\d\s,]+\)/);
+ if (color) result = result.replace(color[0], color[0].rgbToHex());
+ }
+ if (Browser.Engine.presto || (Browser.Engine.trident && !$chk(parseInt(result, 10)))){
+ if (property.test(/^(height|width)$/)){
+ var values = (property == 'width') ? ['left', 'right'] : ['top', 'bottom'], size = 0;
+ values.each(function(value){
+ size += this.getStyle('border-' + value + '-width').toInt() + this.getStyle('padding-' + value).toInt();
+ }, this);
+ return this['offset' + property.capitalize()] - size + 'px';
+ }
+ if ((Browser.Engine.presto) && String(result).test('px')) return result;
+ if (property.test(/(border(.+)Width|margin|padding)/)) return '0px';
+ }
+ return result;
+ },
+
+ setStyles: function(styles){
+ for (var style in styles) this.setStyle(style, styles[style]);
+ return this;
+ },
+
+ getStyles: function(){
+ var result = {};
+ Array.each(arguments, function(key){
+ result[key] = this.getStyle(key);
+ }, this);
+ return result;
+ }
+
+});
+
+Element.Styles = new Hash({
+ left: '@px', top: '@px', bottom: '@px', right: '@px',
+ width: '@px', height: '@px', maxWidth: '@px', maxHeight: '@px', minWidth: '@px', minHeight: '@px',
+ backgroundColor: 'rgb(@, @, @)', backgroundPosition: '@px @px', color: 'rgb(@, @, @)',
+ fontSize: '@px', letterSpacing: '@px', lineHeight: '@px', clip: 'rect(@px @px @px @px)',
+ margin: '@px @px @px @px', padding: '@px @px @px @px', border: '@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',
+ borderWidth: '@px @px @px @px', borderStyle: '@ @ @ @', borderColor: 'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',
+ zIndex: '@', 'zoom': '@', fontWeight: '@', textIndent: '@px', opacity: '@'
+});
+
+Element.ShortStyles = {margin: {}, padding: {}, border: {}, borderWidth: {}, borderStyle: {}, borderColor: {}};
+
+['Top', 'Right', 'Bottom', 'Left'].each(function(direction){
+ var Short = Element.ShortStyles;
+ var All = Element.Styles;
+ ['margin', 'padding'].each(function(style){
+ var sd = style + direction;
+ Short[style][sd] = All[sd] = '@px';
+ });
+ var bd = 'border' + direction;
+ Short.border[bd] = All[bd] = '@px @ rgb(@, @, @)';
+ var bdw = bd + 'Width', bds = bd + 'Style', bdc = bd + 'Color';
+ Short[bd] = {};
+ Short.borderWidth[bdw] = Short[bd][bdw] = All[bdw] = '@px';
+ Short.borderStyle[bds] = Short[bd][bds] = All[bds] = '@';
+ Short.borderColor[bdc] = Short[bd][bdc] = All[bdc] = 'rgb(@, @, @)';
+});
+
+
+/*
+Script: Element.Dimensions.js
+ Contains methods to work with size, scroll, or positioning of Elements and the window object.
+
+License:
+ MIT-style license.
+
+Credits:
+ - Element positioning based on the [qooxdoo](http://qooxdoo.org/) code and smart browser fixes, [LGPL License](http://www.gnu.org/licenses/lgpl.html).
+ - Viewport dimensions based on [YUI](http://developer.yahoo.com/yui/) code, [BSD License](http://developer.yahoo.com/yui/license.html).
+*/
+
+(function(){
+
+Element.implement({
+
+ scrollTo: function(x, y){
+ if (isBody(this)){
+ this.getWindow().scrollTo(x, y);
+ } else {
+ this.scrollLeft = x;
+ this.scrollTop = y;
+ }
+ return this;
+ },
+
+ getSize: function(){
+ if (isBody(this)) return this.getWindow().getSize();
+ return {x: this.offsetWidth, y: this.offsetHeight};
+ },
+
+ getScrollSize: function(){
+ if (isBody(this)) return this.getWindow().getScrollSize();
+ return {x: this.scrollWidth, y: this.scrollHeight};
+ },
+
+ getScroll: function(){
+ if (isBody(this)) return this.getWindow().getScroll();
+ return {x: this.scrollLeft, y: this.scrollTop};
+ },
+
+ getScrolls: function(){
+ var element = this, position = {x: 0, y: 0};
+ while (element && !isBody(element)){
+ position.x += element.scrollLeft;
+ position.y += element.scrollTop;
+ element = element.parentNode;
+ }
+ return position;
+ },
+
+ getOffsetParent: function(){
+ var element = this;
+ if (isBody(element)) return null;
+ if (!Browser.Engine.trident) return element.offsetParent;
+ while ((element = element.parentNode) && !isBody(element)){
+ if (styleString(element, 'position') != 'static') return element;
+ }
+ return null;
+ },
+
+ getOffsets: function(){
+ if (Browser.Engine.trident){
+ var bound = this.getBoundingClientRect(), html = this.getDocument().documentElement;
+ var isFixed = styleString(this, 'position') == 'fixed';
+ return {
+ x: bound.left + ((isFixed) ? 0 : html.scrollLeft) - html.clientLeft,
+ y: bound.top + ((isFixed) ? 0 : html.scrollTop) - html.clientTop
+ };
+ }
+
+ var element = this, position = {x: 0, y: 0};
+ if (isBody(this)) return position;
+
+ while (element && !isBody(element)){
+ position.x += element.offsetLeft;
+ position.y += element.offsetTop;
+
+ if (Browser.Engine.gecko){
+ if (!borderBox(element)){
+ position.x += leftBorder(element);
+ position.y += topBorder(element);
+ }
+ var parent = element.parentNode;
+ if (parent && styleString(parent, 'overflow') != 'visible'){
+ position.x += leftBorder(parent);
+ position.y += topBorder(parent);
+ }
+ } else if (element != this && Browser.Engine.webkit){
+ position.x += leftBorder(element);
+ position.y += topBorder(element);
+ }
+
+ element = element.offsetParent;
+ }
+ if (Browser.Engine.gecko && !borderBox(this)){
+ position.x -= leftBorder(this);
+ position.y -= topBorder(this);
+ }
+ return position;
+ },
+
+ getPosition: function(relative){
+ if (isBody(this)) return {x: 0, y: 0};
+ var offset = this.getOffsets(), scroll = this.getScrolls();
+ var position = {x: offset.x - scroll.x, y: offset.y - scroll.y};
+ var relativePosition = (relative && (relative = $(relative))) ? relative.getPosition() : {x: 0, y: 0};
+ return {x: position.x - relativePosition.x, y: position.y - relativePosition.y};
+ },
+
+ getCoordinates: function(element){
+ if (isBody(this)) return this.getWindow().getCoordinates();
+ var position = this.getPosition(element), size = this.getSize();
+ var obj = {left: position.x, top: position.y, width: size.x, height: size.y};
+ obj.right = obj.left + obj.width;
+ obj.bottom = obj.top + obj.height;
+ return obj;
+ },
+
+ computePosition: function(obj){
+ return {left: obj.x - styleNumber(this, 'margin-left'), top: obj.y - styleNumber(this, 'margin-top')};
+ },
+
+ position: function(obj){
+ return this.setStyles(this.computePosition(obj));
+ }
+
+});
+
+Native.implement([Document, Window], {
+
+ getSize: function(){
+ if (Browser.Engine.presto || Browser.Engine.webkit) {
+ var win = this.getWindow();
+ return {x: win.innerWidth, y: win.innerHeight};
+ }
+ var doc = getCompatElement(this);
+ return {x: doc.clientWidth, y: doc.clientHeight};
+ },
+
+ getScroll: function(){
+ var win = this.getWindow(), doc = getCompatElement(this);
+ return {x: win.pageXOffset || doc.scrollLeft, y: win.pageYOffset || doc.scrollTop};
+ },
+
+ getScrollSize: function(){
+ var doc = getCompatElement(this), min = this.getSize();
+ return {x: Math.max(doc.scrollWidth, min.x), y: Math.max(doc.scrollHeight, min.y)};
+ },
+
+ getPosition: function(){
+ return {x: 0, y: 0};
+ },
+
+ getCoordinates: function(){
+ var size = this.getSize();
+ return {top: 0, left: 0, bottom: size.y, right: size.x, height: size.y, width: size.x};
+ }
+
+});
+
+// private methods
+
+var styleString = Element.getComputedStyle;
+
+function styleNumber(element, style){
+ return styleString(element, style).toInt() || 0;
+};
+
+function borderBox(element){
+ return styleString(element, '-moz-box-sizing') == 'border-box';
+};
+
+function topBorder(element){
+ return styleNumber(element, 'border-top-width');
+};
+
+function leftBorder(element){
+ return styleNumber(element, 'border-left-width');
+};
+
+function isBody(element){
+ return (/^(?:body|html)$/i).test(element.tagName);
+};
+
+function getCompatElement(element){
+ var doc = element.getDocument();
+ return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
+};
+
+})();
+
+//aliases
+
+Native.implement([Window, Document, Element], {
+
+ getHeight: function(){
+ return this.getSize().y;
+ },
+
+ getWidth: function(){
+ return this.getSize().x;
+ },
+
+ getScrollTop: function(){
+ return this.getScroll().y;
+ },
+
+ getScrollLeft: function(){
+ return this.getScroll().x;
+ },
+
+ getScrollHeight: function(){
+ return this.getScrollSize().y;
+ },
+
+ getScrollWidth: function(){
+ return this.getScrollSize().x;
+ },
+
+ getTop: function(){
+ return this.getPosition().y;
+ },
+
+ getLeft: function(){
+ return this.getPosition().x;
+ }
+
+});
+
+
+/*
+Script: Selectors.js
+ Adds advanced CSS Querying capabilities for targeting elements. Also includes pseudoselectors support.
+
+License:
+ MIT-style license.
+*/
+
+Native.implement([Document, Element], {
+
+ getElements: function(expression, nocash){
+ expression = expression.split(',');
+ var items, local = {};
+ for (var i = 0, l = expression.length; i < l; i++){
+ var selector = expression[i], elements = Selectors.Utils.search(this, selector, local);
+ if (i != 0 && elements.item) elements = $A(elements);
+ items = (i == 0) ? elements : (items.item) ? $A(items).concat(elements) : items.concat(elements);
+ }
+ return new Elements(items, {ddup: (expression.length > 1), cash: !nocash});
+ }
+
+});
+
+Element.implement({
+
+ match: function(selector){
+ if (!selector || (selector == this)) return true;
+ var tagid = Selectors.Utils.parseTagAndID(selector);
+ var tag = tagid[0], id = tagid[1];
+ if (!Selectors.Filters.byID(this, id) || !Selectors.Filters.byTag(this, tag)) return false;
+ var parsed = Selectors.Utils.parseSelector(selector);
+ return (parsed) ? Selectors.Utils.filter(this, parsed, {}) : true;
+ }
+
+});
+
+var Selectors = {Cache: {nth: {}, parsed: {}}};
+
+Selectors.RegExps = {
+ id: (/#([\w-]+)/),
+ tag: (/^(\w+|\*)/),
+ quick: (/^(\w+|\*)$/),
+ splitter: (/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),
+ combined: (/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)
+};
+
+Selectors.Utils = {
+
+ chk: function(item, uniques){
+ if (!uniques) return true;
+ var uid = $uid(item);
+ if (!uniques[uid]) return uniques[uid] = true;
+ return false;
+ },
+
+ parseNthArgument: function(argument){
+ if (Selectors.Cache.nth[argument]) return Selectors.Cache.nth[argument];
+ var parsed = argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);
+ if (!parsed) return false;
+ var inta = parseInt(parsed[1], 10);
+ var a = (inta || inta === 0) ? inta : 1;
+ var special = parsed[2] || false;
+ var b = parseInt(parsed[3], 10) || 0;
+ if (a != 0){
+ b--;
+ while (b < 1) b += a;
+ while (b >= a) b -= a;
+ } else {
+ a = b;
+ special = 'index';
+ }
+ switch (special){
+ case 'n': parsed = {a: a, b: b, special: 'n'}; break;
+ case 'odd': parsed = {a: 2, b: 0, special: 'n'}; break;
+ case 'even': parsed = {a: 2, b: 1, special: 'n'}; break;
+ case 'first': parsed = {a: 0, special: 'index'}; break;
+ case 'last': parsed = {special: 'last-child'}; break;
+ case 'only': parsed = {special: 'only-child'}; break;
+ default: parsed = {a: (a - 1), special: 'index'};
+ }
+
+ return Selectors.Cache.nth[argument] = parsed;
+ },
+
+ parseSelector: function(selector){
+ if (Selectors.Cache.parsed[selector]) return Selectors.Cache.parsed[selector];
+ var m, parsed = {classes: [], pseudos: [], attributes: []};
+ while ((m = Selectors.RegExps.combined.exec(selector))){
+ var cn = m[1], an = m[2], ao = m[3], av = m[5], pn = m[6], pa = m[7];
+ if (cn){
+ parsed.classes.push(cn);
+ } else if (pn){
+ var parser = Selectors.Pseudo.get(pn);
+ if (parser) parsed.pseudos.push({parser: parser, argument: pa});
+ else parsed.attributes.push({name: pn, operator: '=', value: pa});
+ } else if (an){
+ parsed.attributes.push({name: an, operator: ao, value: av});
+ }
+ }
+ if (!parsed.classes.length) delete parsed.classes;
+ if (!parsed.attributes.length) delete parsed.attributes;
+ if (!parsed.pseudos.length) delete parsed.pseudos;
+ if (!parsed.classes && !parsed.attributes && !parsed.pseudos) parsed = null;
+ return Selectors.Cache.parsed[selector] = parsed;
+ },
+
+ parseTagAndID: function(selector){
+ var tag = selector.match(Selectors.RegExps.tag);
+ var id = selector.match(Selectors.RegExps.id);
+ return [(tag) ? tag[1] : '*', (id) ? id[1] : false];
+ },
+
+ filter: function(item, parsed, local){
+ var i;
+ if (parsed.classes){
+ for (i = parsed.classes.length; i--; i){
+ var cn = parsed.classes[i];
+ if (!Selectors.Filters.byClass(item, cn)) return false;
+ }
+ }
+ if (parsed.attributes){
+ for (i = parsed.attributes.length; i--; i){
+ var att = parsed.attributes[i];
+ if (!Selectors.Filters.byAttribute(item, att.name, att.operator, att.value)) return false;
+ }
+ }
+ if (parsed.pseudos){
+ for (i = parsed.pseudos.length; i--; i){
+ var psd = parsed.pseudos[i];
+ if (!Selectors.Filters.byPseudo(item, psd.parser, psd.argument, local)) return false;
+ }
+ }
+ return true;
+ },
+
+ getByTagAndID: function(ctx, tag, id){
+ if (id){
+ var item = (ctx.getElementById) ? ctx.getElementById(id, true) : Element.getElementById(ctx, id, true);
+ return (item && Selectors.Filters.byTag(item, tag)) ? [item] : [];
+ } else {
+ return ctx.getElementsByTagName(tag);
+ }
+ },
+
+ search: function(self, expression, local){
+ var splitters = [];
+
+ var selectors = expression.trim().replace(Selectors.RegExps.splitter, function(m0, m1, m2){
+ splitters.push(m1);
+ return ':)' + m2;
+ }).split(':)');
+
+ var items, filtered, item;
+
+ for (var i = 0, l = selectors.length; i < l; i++){
+
+ var selector = selectors[i];
+
+ if (i == 0 && Selectors.RegExps.quick.test(selector)){
+ items = self.getElementsByTagName(selector);
+ continue;
+ }
+
+ var splitter = splitters[i - 1];
+
+ var tagid = Selectors.Utils.parseTagAndID(selector);
+ var tag = tagid[0], id = tagid[1];
+
+ if (i == 0){
+ items = Selectors.Utils.getByTagAndID(self, tag, id);
+ } else {
+ var uniques = {}, found = [];
+ for (var j = 0, k = items.length; j < k; j++) found = Selectors.Getters[splitter](found, items[j], tag, id, uniques);
+ items = found;
+ }
+
+ var parsed = Selectors.Utils.parseSelector(selector);
+
+ if (parsed){
+ filtered = [];
+ for (var m = 0, n = items.length; m < n; m++){
+ item = items[m];
+ if (Selectors.Utils.filter(item, parsed, local)) filtered.push(item);
+ }
+ items = filtered;
+ }
+
+ }
+
+ return items;
+
+ }
+
+};
+
+Selectors.Getters = {
+
+ ' ': function(found, self, tag, id, uniques){
+ var items = Selectors.Utils.getByTagAndID(self, tag, id);
+ for (var i = 0, l = items.length; i < l; i++){
+ var item = items[i];
+ if (Selectors.Utils.chk(item, uniques)) found.push(item);
+ }
+ return found;
+ },
+
+ '>': function(found, self, tag, id, uniques){
+ var children = Selectors.Utils.getByTagAndID(self, tag, id);
+ for (var i = 0, l = children.length; i < l; i++){
+ var child = children[i];
+ if (child.parentNode == self && Selectors.Utils.chk(child, uniques)) found.push(child);
+ }
+ return found;
+ },
+
+ '+': function(found, self, tag, id, uniques){
+ while ((self = self.nextSibling)){
+ if (self.nodeType == 1){
+ if (Selectors.Utils.chk(self, uniques) && Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);
+ break;
+ }
+ }
+ return found;
+ },
+
+ '~': function(found, self, tag, id, uniques){
+ while ((self = self.nextSibling)){
+ if (self.nodeType == 1){
+ if (!Selectors.Utils.chk(self, uniques)) break;
+ if (Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);
+ }
+ }
+ return found;
+ }
+
+};
+
+Selectors.Filters = {
+
+ byTag: function(self, tag){
+ return (tag == '*' || (self.tagName && self.tagName.toLowerCase() == tag));
+ },
+
+ byID: function(self, id){
+ return (!id || (self.id && self.id == id));
+ },
+
+ byClass: function(self, klass){
+ return (self.className && self.className.contains(klass, ' '));
+ },
+
+ byPseudo: function(self, parser, argument, local){
+ return parser.call(self, argument, local);
+ },
+
+ byAttribute: function(self, name, operator, value){
+ var result = Element.prototype.getProperty.call(self, name);
+ if (!result) return (operator == '!=');
+ if (!operator || value == undefined) return true;
+ switch (operator){
+ case '=': return (result == value);
+ case '*=': return (result.contains(value));
+ case '^=': return (result.substr(0, value.length) == value);
+ case '$=': return (result.substr(result.length - value.length) == value);
+ case '!=': return (result != value);
+ case '~=': return result.contains(value, ' ');
+ case '|=': return result.contains(value, '-');
+ }
+ return false;
+ }
+
+};
+
+Selectors.Pseudo = new Hash({
+
+ // w3c pseudo selectors
+
+ checked: function(){
+ return this.checked;
+ },
+
+ empty: function(){
+ return !(this.innerText || this.textContent || '').length;
+ },
+
+ not: function(selector){
+ return !Element.match(this, selector);
+ },
+
+ contains: function(text){
+ return (this.innerText || this.textContent || '').contains(text);
+ },
+
+ 'first-child': function(){
+ return Selectors.Pseudo.index.call(this, 0);
+ },
+
+ 'last-child': function(){
+ var element = this;
+ while ((element = element.nextSibling)){
+ if (element.nodeType == 1) return false;
+ }
+ return true;
+ },
+
+ 'only-child': function(){
+ var prev = this;
+ while ((prev = prev.previousSibling)){
+ if (prev.nodeType == 1) return false;
+ }
+ var next = this;
+ while ((next = next.nextSibling)){
+ if (next.nodeType == 1) return false;
+ }
+ return true;
+ },
+
+ 'nth-child': function(argument, local){
+ argument = (argument == undefined) ? 'n' : argument;
+ var parsed = Selectors.Utils.parseNthArgument(argument);
+ if (parsed.special != 'n') return Selectors.Pseudo[parsed.special].call(this, parsed.a, local);
+ var count = 0;
+ local.positions = local.positions || {};
+ var uid = $uid(this);
+ if (!local.positions[uid]){
+ var self = this;
+ while ((self = self.previousSibling)){
+ if (self.nodeType != 1) continue;
+ count ++;
+ var position = local.positions[$uid(self)];
+ if (position != undefined){
+ count = position + count;
+ break;
+ }
+ }
+ local.positions[uid] = count;
+ }
+ return (local.positions[uid] % parsed.a == parsed.b);
+ },
+
+ // custom pseudo selectors
+
+ index: function(index){
+ var element = this, count = 0;
+ while ((element = element.previousSibling)){
+ if (element.nodeType == 1 && ++count > index) return false;
+ }
+ return (count == index);
+ },
+
+ even: function(argument, local){
+ return Selectors.Pseudo['nth-child'].call(this, '2n+1', local);
+ },
+
+ odd: function(argument, local){
+ return Selectors.Pseudo['nth-child'].call(this, '2n', local);
+ },
+
+ selected: function() {
+ return this.selected;
+ }
+
+});
+
+
+/*
+Script: Domready.js
+ Contains the domready custom event.
+
+License:
+ MIT-style license.
+*/
+
+Element.Events.domready = {
+
+ onAdd: function(fn){
+ if (Browser.loaded) fn.call(this);
+ }
+
+};
+
+(function(){
+
+ var domready = function(){
+ if (Browser.loaded) return;
+ Browser.loaded = true;
+ window.fireEvent('domready');
+ document.fireEvent('domready');
+ };
+
+ if (Browser.Engine.trident){
+ var temp = document.createElement('div');
+ (function(){
+ ($try(function(){
+ temp.doScroll('left');
+ return $(temp).inject(document.body).set('html', 'temp').dispose();
+ })) ? domready() : arguments.callee.delay(50);
+ })();
+ } else if (Browser.Engine.webkit && Browser.Engine.version < 525){
+ (function(){
+ (['loaded', 'complete'].contains(document.readyState)) ? domready() : arguments.callee.delay(50);
+ })();
+ } else {
+ window.addEvent('load', domready);
+ document.addEvent('DOMContentLoaded', domready);
+ }
+
+})();
+
+
+/*
+Script: JSON.js
+ JSON encoder and decoder.
+
+License:
+ MIT-style license.
+
+See Also:
+ <http://www.json.org/>
+*/
+
+var JSON = new Hash({
+
+ $specialChars: {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'},
+
+ $replaceChars: function(chr){
+ return JSON.$specialChars[chr] || '\\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16);
+ },
+
+ encode: function(obj){
+ switch ($type(obj)){
+ case 'string':
+ return '"' + obj.replace(/[\x00-\x1f\\"]/g, JSON.$replaceChars) + '"';
+ case 'array':
+ return '[' + String(obj.map(JSON.encode).filter($defined)) + ']';
+ case 'object': case 'hash':
+ var string = [];
+ Hash.each(obj, function(value, key){
+ var json = JSON.encode(value);
+ if (json) string.push(JSON.encode(key) + ':' + json);
+ });
+ return '{' + string + '}';
+ case 'number': case 'boolean': return String(obj);
+ case false: return 'null';
+ }
+ return null;
+ },
+
+ decode: function(string, secure){
+ if ($type(string) != 'string' || !string.length) return null;
+ if (secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) return null;
+ return eval('(' + string + ')');
+ }
+
+});
+
+Native.implement([Hash, Array, String, Number], {
+
+ toJSON: function(){
+ return JSON.encode(this);
+ }
+
+});
+
+
+/*
+Script: Cookie.js
+ Class for creating, loading, and saving browser Cookies.
+
+License:
+ MIT-style license.
+
+Credits:
+ Based on the functions by Peter-Paul Koch (http://quirksmode.org).
+*/
+
+var Cookie = new Class({
+
+ Implements: Options,
+
+ options: {
+ path: false,
+ domain: false,
+ duration: false,
+ secure: false,
+ document: document
+ },
+
+ initialize: function(key, options){
+ this.key = key;
+ this.setOptions(options);
+ },
+
+ write: function(value){
+ value = encodeURIComponent(value);
+ if (this.options.domain) value += '; domain=' + this.options.domain;
+ if (this.options.path) value += '; path=' + this.options.path;
+ if (this.options.duration){
+ var date = new Date();
+ date.setTime(date.getTime() + this.options.duration * 24 * 60 * 60 * 1000);
+ value += '; expires=' + date.toGMTString();
+ }
+ if (this.options.secure) value += '; secure';
+ this.options.document.cookie = this.key + '=' + value;
+ return this;
+ },
+
+ read: function(){
+ var value = this.options.document.cookie.match('(?:^|;)\\s*' + this.key.escapeRegExp() + '=([^;]*)');
+ return (value) ? decodeURIComponent(value[1]) : null;
+ },
+
+ dispose: function(){
+ new Cookie(this.key, $merge(this.options, {duration: -1})).write('');
+ return this;
+ }
+
+});
+
+Cookie.write = function(key, value, options){
+ return new Cookie(key, options).write(value);
+};
+
+Cookie.read = function(key){
+ return new Cookie(key).read();
+};
+
+Cookie.dispose = function(key, options){
+ return new Cookie(key, options).dispose();
+};
+
+
+/*
+Script: Swiff.js
+ Wrapper for embedding SWF movies. Supports (and fixes) External Interface Communication.
+
+License:
+ MIT-style license.
+
+Credits:
+ Flash detection & Internet Explorer + Flash Player 9 fix inspired by SWFObject.
+*/
+
+var Swiff = new Class({
+
+ Implements: [Options],
+
+ options: {
+ id: null,
+ height: 1,
+ width: 1,
+ container: null,
+ properties: {},
+ params: {
+ quality: 'high',
+ allowScriptAccess: 'always',
+ wMode: 'transparent',
+ swLiveConnect: true
+ },
+ callBacks: {},
+ vars: {}
+ },
+
+ toElement: function(){
+ return this.object;
+ },
+
+ initialize: function(path, options){
+ this.instance = 'Swiff_' + $time();
+
+ this.setOptions(options);
+ options = this.options;
+ var id = this.id = options.id || this.instance;
+ var container = $(options.container);
+
+ Swiff.CallBacks[this.instance] = {};
+
+ var params = options.params, vars = options.vars, callBacks = options.callBacks;
+ var properties = $extend({height: options.height, width: options.width}, options.properties);
+
+ var self = this;
+
+ for (var callBack in callBacks){
+ Swiff.CallBacks[this.instance][callBack] = (function(option){
+ return function(){
+ return option.apply(self.object, arguments);
+ };
+ })(callBacks[callBack]);
+ vars[callBack] = 'Swiff.CallBacks.' + this.instance + '.' + callBack;
+ }
+
+ params.flashVars = Hash.toQueryString(vars);
+ if (Browser.Engine.trident){
+ properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
+ params.movie = path;
+ } else {
+ properties.type = 'application/x-shockwave-flash';
+ properties.data = path;
+ }
+ var build = '<object id="' + id + '"';
+ for (var property in properties) build += ' ' + property + '="' + properties[property] + '"';
+ build += '>';
+ for (var param in params){
+ if (params[param]) build += '<param name="' + param + '" value="' + params[param] + '" />';
+ }
+ build += '</object>';
+ this.object = ((container) ? container.empty() : new Element('div')).set('html', build).firstChild;
+ },
+
+ replaces: function(element){
+ element = $(element, true);
+ element.parentNode.replaceChild(this.toElement(), element);
+ return this;
+ },
+
+ inject: function(element){
+ $(element, true).appendChild(this.toElement());
+ return this;
+ },
+
+ remote: function(){
+ return Swiff.remote.apply(Swiff, [this.toElement()].extend(arguments));
+ }
+
+});
+
+Swiff.CallBacks = {};
+
+Swiff.remote = function(obj, fn){
+ var rs = obj.CallFunction('<invoke name="' + fn + '" returntype="javascript">' + __flash__argumentsToXML(arguments, 2) + '</invoke>');
+ return eval(rs);
+};
+
+
+/*
+Script: Fx.js
+ Contains the basic animation logic to be extended by all other Fx Classes.
+
+License:
+ MIT-style license.
+*/
+
+var Fx = new Class({
+
+ Implements: [Chain, Events, Options],
+
+ options: {
+ /*
+ onStart: $empty,
+ onCancel: $empty,
+ onComplete: $empty,
+ */
+ fps: 50,
+ unit: false,
+ duration: 500,
+ link: 'ignore'
+ },
+
+ initialize: function(options){
+ this.subject = this.subject || this;
+ this.setOptions(options);
+ this.options.duration = Fx.Durations[this.options.duration] || this.options.duration.toInt();
+ var wait = this.options.wait;
+ if (wait === false) this.options.link = 'cancel';
+ },
+
+ getTransition: function(){
+ return function(p){
+ return -(Math.cos(Math.PI * p) - 1) / 2;
+ };
+ },
+
+ step: function(){
+ var time = $time();
+ if (time < this.time + this.options.duration){
+ var delta = this.transition((time - this.time) / this.options.duration);
+ this.set(this.compute(this.from, this.to, delta));
+ } else {
+ this.set(this.compute(this.from, this.to, 1));
+ this.complete();
+ }
+ },
+
+ set: function(now){
+ return now;
+ },
+
+ compute: function(from, to, delta){
+ return Fx.compute(from, to, delta);
+ },
+
+ check: function(){
+ if (!this.timer) return true;
+ switch (this.options.link){
+ case 'cancel': this.cancel(); return true;
+ case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
+ }
+ return false;
+ },
+
+ start: function(from, to){
+ if (!this.check(from, to)) return this;
+ this.from = from;
+ this.to = to;
+ this.time = 0;
+ this.transition = this.getTransition();
+ this.startTimer();
+ this.onStart();
+ return this;
+ },
+
+ complete: function(){
+ if (this.stopTimer()) this.onComplete();
+ return this;
+ },
+
+ cancel: function(){
+ if (this.stopTimer()) this.onCancel();
+ return this;
+ },
+
+ onStart: function(){
+ this.fireEvent('start', this.subject);
+ },
+
+ onComplete: function(){
+ this.fireEvent('complete', this.subject);
+ if (!this.callChain()) this.fireEvent('chainComplete', this.subject);
+ },
+
+ onCancel: function(){
+ this.fireEvent('cancel', this.subject).clearChain();
+ },
+
+ pause: function(){
+ this.stopTimer();
+ return this;
+ },
+
+ resume: function(){
+ this.startTimer();
+ return this;
+ },
+
+ stopTimer: function(){
+ if (!this.timer) return false;
+ this.time = $time() - this.time;
+ this.timer = $clear(this.timer);
+ return true;
+ },
+
+ startTimer: function(){
+ if (this.timer) return false;
+ this.time = $time() - this.time;
+ this.timer = this.step.periodical(Math.round(1000 / this.options.fps), this);
+ return true;
+ }
+
+});
+
+Fx.compute = function(from, to, delta){
+ return (to - from) * delta + from;
+};
+
+Fx.Durations = {'short': 250, 'normal': 500, 'long': 1000};
+
+
+/*
+Script: Fx.CSS.js
+ Contains the CSS animation logic. Used by Fx.Tween, Fx.Morph, Fx.Elements.
+
+License:
+ MIT-style license.
+*/
+
+Fx.CSS = new Class({
+
+ Extends: Fx,
+
+ //prepares the base from/to object
+
+ prepare: function(element, property, values){
+ values = $splat(values);
+ var values1 = values[1];
+ if (!$chk(values1)){
+ values[1] = values[0];
+ values[0] = element.getStyle(property);
+ }
+ var parsed = values.map(this.parse);
+ return {from: parsed[0], to: parsed[1]};
+ },
+
+ //parses a value into an array
+
+ parse: function(value){
+ value = $lambda(value)();
+ value = (typeof value == 'string') ? value.split(' ') : $splat(value);
+ return value.map(function(val){
+ val = String(val);
+ var found = false;
+ Fx.CSS.Parsers.each(function(parser, key){
+ if (found) return;
+ var parsed = parser.parse(val);
+ if ($chk(parsed)) found = {value: parsed, parser: parser};
+ });
+ found = found || {value: val, parser: Fx.CSS.Parsers.String};
+ return found;
+ });
+ },
+
+ //computes by a from and to prepared objects, using their parsers.
+
+ compute: function(from, to, delta){
+ var computed = [];
+ (Math.min(from.length, to.length)).times(function(i){
+ computed.push({value: from[i].parser.compute(from[i].value, to[i].value, delta), parser: from[i].parser});
+ });
+ computed.$family = {name: 'fx:css:value'};
+ return computed;
+ },
+
+ //serves the value as settable
+
+ serve: function(value, unit){
+ if ($type(value) != 'fx:css:value') value = this.parse(value);
+ var returned = [];
+ value.each(function(bit){
+ returned = returned.concat(bit.parser.serve(bit.value, unit));
+ });
+ return returned;
+ },
+
+ //renders the change to an element
+
+ render: function(element, property, value, unit){
+ element.setStyle(property, this.serve(value, unit));
+ },
+
+ //searches inside the page css to find the values for a selector
+
+ search: function(selector){
+ if (Fx.CSS.Cache[selector]) return Fx.CSS.Cache[selector];
+ var to = {};
+ Array.each(document.styleSheets, function(sheet, j){
+ var href = sheet.href;
+ if (href && href.contains('://') && !href.contains(document.domain)) return;
+ var rules = sheet.rules || sheet.cssRules;
+ Array.each(rules, function(rule, i){
+ if (!rule.style) return;
+ var selectorText = (rule.selectorText) ? rule.selectorText.replace(/^\w+/, function(m){
+ return m.toLowerCase();
+ }) : null;
+ if (!selectorText || !selectorText.test('^' + selector + '$')) return;
+ Element.Styles.each(function(value, style){
+ if (!rule.style[style] || Element.ShortStyles[style]) return;
+ value = String(rule.style[style]);
+ to[style] = (value.test(/^rgb/)) ? value.rgbToHex() : value;
+ });
+ });
+ });
+ return Fx.CSS.Cache[selector] = to;
+ }
+
+});
+
+Fx.CSS.Cache = {};
+
+Fx.CSS.Parsers = new Hash({
+
+ Color: {
+ parse: function(value){
+ if (value.match(/^#[0-9a-f]{3,6}$/i)) return value.hexToRgb(true);
+ return ((value = value.match(/(\d+),\s*(\d+),\s*(\d+)/))) ? [value[1], value[2], value[3]] : false;
+ },
+ compute: function(from, to, delta){
+ return from.map(function(value, i){
+ return Math.round(Fx.compute(from[i], to[i], delta));
+ });
+ },
+ serve: function(value){
+ return value.map(Number);
+ }
+ },
+
+ Number: {
+ parse: parseFloat,
+ compute: Fx.compute,
+ serve: function(value, unit){
+ return (unit) ? value + unit : value;
+ }
+ },
+
+ String: {
+ parse: $lambda(false),
+ compute: $arguments(1),
+ serve: $arguments(0)
+ }
+
+});
+
+
+/*
+Script: Fx.Tween.js
+ Formerly Fx.Style, effect to transition any CSS property for an element.
+
+License:
+ MIT-style license.
+*/
+
+Fx.Tween = new Class({
+
+ Extends: Fx.CSS,
+
+ initialize: function(element, options){
+ this.element = this.subject = $(element);
+ this.parent(options);
+ },
+
+ set: function(property, now){
+ if (arguments.length == 1){
+ now = property;
+ property = this.property || this.options.property;
+ }
+ this.render(this.element, property, now, this.options.unit);
+ return this;
+ },
+
+ start: function(property, from, to){
+ if (!this.check(property, from, to)) return this;
+ var args = Array.flatten(arguments);
+ this.property = this.options.property || args.shift();
+ var parsed = this.prepare(this.element, this.property, args);
+ return this.parent(parsed.from, parsed.to);
+ }
+
+});
+
+Element.Properties.tween = {
+
+ set: function(options){
+ var tween = this.retrieve('tween');
+ if (tween) tween.cancel();
+ return this.eliminate('tween').store('tween:options', $extend({link: 'cancel'}, options));
+ },
+
+ get: function(options){
+ if (options || !this.retrieve('tween')){
+ if (options || !this.retrieve('tween:options')) this.set('tween', options);
+ this.store('tween', new Fx.Tween(this, this.retrieve('tween:options')));
+ }
+ return this.retrieve('tween');
+ }
+
+};
+
+Element.implement({
+
+ tween: function(property, from, to){
+ this.get('tween').start(arguments);
+ return this;
+ },
+
+ fade: function(how){
+ var fade = this.get('tween'), o = 'opacity', toggle;
+ how = $pick(how, 'toggle');
+ switch (how){
+ case 'in': fade.start(o, 1); break;
+ case 'out': fade.start(o, 0); break;
+ case 'show': fade.set(o, 1); break;
+ case 'hide': fade.set(o, 0); break;
+ case 'toggle':
+ var flag = this.retrieve('fade:flag', this.get('opacity') == 1);
+ fade.start(o, (flag) ? 0 : 1);
+ this.store('fade:flag', !flag);
+ toggle = true;
+ break;
+ default: fade.start(o, arguments);
+ }
+ if (!toggle) this.eliminate('fade:flag');
+ return this;
+ },
+
+ highlight: function(start, end){
+ if (!end){
+ end = this.retrieve('highlight:original', this.getStyle('background-color'));
+ end = (end == 'transparent') ? '#fff' : end;
+ }
+ var tween = this.get('tween');
+ tween.start('background-color', start || '#ffff88', end).chain(function(){
+ this.setStyle('background-color', this.retrieve('highlight:original'));
+ tween.callChain();
+ }.bind(this));
+ return this;
+ }
+
+});
+
+
+/*
+Script: Fx.Morph.js
+ Formerly Fx.Styles, effect to transition any number of CSS properties for an element using an object of rules, or CSS based selector rules.
+
+License:
+ MIT-style license.
+*/
+
+Fx.Morph = new Class({
+
+ Extends: Fx.CSS,
+
+ initialize: function(element, options){
+ this.element = this.subject = $(element);
+ this.parent(options);
+ },
+
+ set: function(now){
+ if (typeof now == 'string') now = this.search(now);
+ for (var p in now) this.render(this.element, p, now[p], this.options.unit);
+ return this;
+ },
+
+ compute: function(from, to, delta){
+ var now = {};
+ for (var p in from) now[p] = this.parent(from[p], to[p], delta);
+ return now;
+ },
+
+ start: function(properties){
+ if (!this.check(properties)) return this;
+ if (typeof properties == 'string') properties = this.search(properties);
+ var from = {}, to = {};
+ for (var p in properties){
+ var parsed = this.prepare(this.element, p, properties[p]);
+ from[p] = parsed.from;
+ to[p] = parsed.to;
+ }
+ return this.parent(from, to);
+ }
+
+});
+
+Element.Properties.morph = {
+
+ set: function(options){
+ var morph = this.retrieve('morph');
+ if (morph) morph.cancel();
+ return this.eliminate('morph').store('morph:options', $extend({link: 'cancel'}, options));
+ },
+
+ get: function(options){
+ if (options || !this.retrieve('morph')){
+ if (options || !this.retrieve('morph:options')) this.set('morph', options);
+ this.store('morph', new Fx.Morph(this, this.retrieve('morph:options')));
+ }
+ return this.retrieve('morph');
+ }
+
+};
+
+Element.implement({
+
+ morph: function(props){
+ this.get('morph').start(props);
+ return this;
+ }
+
+});
+
+
+/*
+Script: Fx.Transitions.js
+ Contains a set of advanced transitions to be used with any of the Fx Classes.
+
+License:
+ MIT-style license.
+
+Credits:
+ Easing Equations by Robert Penner, <http://www.robertpenner.com/easing/>, modified and optimized to be used with MooTools.
+*/
+
+Fx.implement({
+
+ getTransition: function(){
+ var trans = this.options.transition || Fx.Transitions.Sine.easeInOut;
+ if (typeof trans == 'string'){
+ var data = trans.split(':');
+ trans = Fx.Transitions;
+ trans = trans[data[0]] || trans[data[0].capitalize()];
+ if (data[1]) trans = trans['ease' + data[1].capitalize() + (data[2] ? data[2].capitalize() : '')];
+ }
+ return trans;
+ }
+
+});
+
+Fx.Transition = function(transition, params){
+ params = $splat(params);
+ return $extend(transition, {
+ easeIn: function(pos){
+ return transition(pos, params);
+ },
+ easeOut: function(pos){
+ return 1 - transition(1 - pos, params);
+ },
+ easeInOut: function(pos){
+ return (pos <= 0.5) ? transition(2 * pos, params) / 2 : (2 - transition(2 * (1 - pos), params)) / 2;
+ }
+ });
+};
+
+Fx.Transitions = new Hash({
+
+ linear: $arguments(0)
+
+});
+
+Fx.Transitions.extend = function(transitions){
+ for (var transition in transitions) Fx.Transitions[transition] = new Fx.Transition(transitions[transition]);
+};
+
+Fx.Transitions.extend({
+
+ Pow: function(p, x){
+ return Math.pow(p, x[0] || 6);
+ },
+
+ Expo: function(p){
+ return Math.pow(2, 8 * (p - 1));
+ },
+
+ Circ: function(p){
+ return 1 - Math.sin(Math.acos(p));
+ },
+
+ Sine: function(p){
+ return 1 - Math.sin((1 - p) * Math.PI / 2);
+ },
+
+ Back: function(p, x){
+ x = x[0] || 1.618;
+ return Math.pow(p, 2) * ((x + 1) * p - x);
+ },
+
+ Bounce: function(p){
+ var value;
+ for (var a = 0, b = 1; 1; a += b, b /= 2){
+ if (p >= (7 - 4 * a) / 11){
+ value = b * b - Math.pow((11 - 6 * a - 11 * p) / 4, 2);
+ break;
+ }
+ }
+ return value;
+ },
+
+ Elastic: function(p, x){
+ return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) / 3);
+ }
+
+});
+
+['Quad', 'Cubic', 'Quart', 'Quint'].each(function(transition, i){
+ Fx.Transitions[transition] = new Fx.Transition(function(p){
+ return Math.pow(p, [i + 2]);
+ });
+});
+
+
+/*
+Script: Request.js
+ Powerful all purpose Request Class. Uses XMLHTTPRequest.
+
+License:
+ MIT-style license.
+*/
+
+var Request = new Class({
+
+ Implements: [Chain, Events, Options],
+
+ options: {/*
+ onRequest: $empty,
+ onComplete: $empty,
+ onCancel: $empty,
+ onSuccess: $empty,
+ onFailure: $empty,
+ onException: $empty,*/
+ url: '',
+ data: '',
+ headers: {
+ 'X-Requested-With': 'XMLHttpRequest',
+ 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+ },
+ async: true,
+ format: false,
+ method: 'post',
+ link: 'ignore',
+ isSuccess: null,
+ emulation: true,
+ urlEncoded: true,
+ encoding: 'utf-8',
+ evalScripts: false,
+ evalResponse: false,
+ noCache: false
+ },
+
+ initialize: function(options){
+ this.xhr = new Browser.Request();
+ this.setOptions(options);
+ this.options.isSuccess = this.options.isSuccess || this.isSuccess;
+ this.headers = new Hash(this.options.headers);
+ },
+
+ onStateChange: function(){
+ if (this.xhr.readyState != 4 || !this.running) return;
+ this.running = false;
+ this.status = 0;
+ $try(function(){
+ this.status = this.xhr.status;
+ }.bind(this));
+ if (this.options.isSuccess.call(this, this.status)){
+ this.response = {text: this.xhr.responseText, xml: this.xhr.responseXML};
+ this.success(this.response.text, this.response.xml);
+ } else {
+ this.response = {text: null, xml: null};
+ this.failure();
+ }
+ this.xhr.onreadystatechange = $empty;
+ },
+
+ isSuccess: function(){
+ return ((this.status >= 200) && (this.status < 300));
+ },
+
+ processScripts: function(text){
+ if (this.options.evalResponse || (/(ecma|java)script/).test(this.getHeader('Content-type'))) return $exec(text);
+ return text.stripScripts(this.options.evalScripts);
+ },
+
+ success: function(text, xml){
+ this.onSuccess(this.processScripts(text), xml);
+ },
+
+ onSuccess: function(){
+ this.fireEvent('complete', arguments).fireEvent('success', arguments).callChain();
+ },
+
+ failure: function(){
+ this.onFailure();
+ },
+
+ onFailure: function(){
+ this.fireEvent('complete').fireEvent('failure', this.xhr);
+ },
+
+ setHeader: function(name, value){
+ this.headers.set(name, value);
+ return this;
+ },
+
+ getHeader: function(name){
+ return $try(function(){
+ return this.xhr.getResponseHeader(name);
+ }.bind(this));
+ },
+
+ check: function(){
+ if (!this.running) return true;
+ switch (this.options.link){
+ case 'cancel': this.cancel(); return true;
+ case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
+ }
+ return false;
+ },
+
+ send: function(options){
+ if (!this.check(options)) return this;
+ this.running = true;
+
+ var type = $type(options);
+ if (type == 'string' || type == 'element') options = {data: options};
+
+ var old = this.options;
+ options = $extend({data: old.data, url: old.url, method: old.method}, options);
+ var data = options.data, url = options.url, method = options.method;
+
+ switch ($type(data)){
+ case 'element': data = $(data).toQueryString(); break;
+ case 'object': case 'hash': data = Hash.toQueryString(data);
+ }
+
+ if (this.options.format){
+ var format = 'format=' + this.options.format;
+ data = (data) ? format + '&' + data : format;
+ }
+
+ if (this.options.emulation && ['put', 'delete'].contains(method)){
+ var _method = '_method=' + method;
+ data = (data) ? _method + '&' + data : _method;
+ method = 'post';
+ }
+
+ if (this.options.urlEncoded && method == 'post'){
+ var encoding = (this.options.encoding) ? '; charset=' + this.options.encoding : '';
+ this.headers.set('Content-type', 'application/x-www-form-urlencoded' + encoding);
+ }
+
+ if(this.options.noCache) {
+ var noCache = "noCache=" + new Date().getTime();
+ data = (data) ? noCache + '&' + data : noCache;
+ }
+
+
+ if (data && method == 'get'){
+ url = url + (url.contains('?') ? '&' : '?') + data;
+ data = null;
+ }
+
+
+ this.xhr.open(method.toUpperCase(), url, this.options.async);
+
+ this.xhr.onreadystatechange = this.onStateChange.bind(this);
+
+ this.headers.each(function(value, key){
+ try {
+ this.xhr.setRequestHeader(key, value);
+ } catch (e){
+ this.fireEvent('exception', [key, value]);
+ }
+ }, this);
+
+ this.fireEvent('request');
+ this.xhr.send(data);
+ if (!this.options.async) this.onStateChange();
+ return this;
+ },
+
+ cancel: function(){
+ if (!this.running) return this;
+ this.running = false;
+ this.xhr.abort();
+ this.xhr.onreadystatechange = $empty;
+ this.xhr = new Browser.Request();
+ this.fireEvent('cancel');
+ return this;
+ }
+
+});
+
+(function(){
+
+var methods = {};
+['get', 'post', 'put', 'delete', 'GET', 'POST', 'PUT', 'DELETE'].each(function(method){
+ methods[method] = function(){
+ var params = Array.link(arguments, {url: String.type, data: $defined});
+ return this.send($extend(params, {method: method.toLowerCase()}));
+ };
+});
+
+Request.implement(methods);
+
+})();
+
+/*
+Script: Request.HTML.js
+ Extends the basic Request Class with additional methods for interacting with HTML responses.
+
+License:
+ MIT-style license.
+*/
+
+Request.HTML = new Class({
+
+ Extends: Request,
+
+ options: {
+ update: false,
+ append: false,
+ evalScripts: true,
+ filter: false
+ },
+
+ processHTML: function(text){
+ var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
+ text = (match) ? match[1] : text;
+
+ var container = new Element('div');
+
+ return $try(function(){
+ var root = '<root>' + text + '</root>', doc;
+ if (Browser.Engine.trident){
+ doc = new ActiveXObject('Microsoft.XMLDOM');
+ doc.async = false;
+ doc.loadXML(root);
+ } else {
+ doc = new DOMParser().parseFromString(root, 'text/xml');
+ }
+ root = doc.getElementsByTagName('root')[0];
+ if (!root) return null;
+ for (var i = 0, k = root.childNodes.length; i < k; i++){
+ var child = Element.clone(root.childNodes[i], true, true);
+ if (child) container.grab(child);
+ }
+ return container;
+ }) || container.set('html', text);
+ },
+
+ success: function(text){
+ var options = this.options, response = this.response;
+
+ response.html = text.stripScripts(function(script){
+ response.javascript = script;
+ });
+
+ var temp = this.processHTML(response.html);
+
+ response.tree = temp.childNodes;
+ response.elements = temp.getElements('*');
+
+ if (options.filter) response.tree = response.elements.filter(options.filter);
+ if (options.update) $(options.update).empty().set('html', response.html);
+ else if (options.append) $(options.append).adopt(temp.getChildren());
+ if (options.evalScripts) $exec(response.javascript);
+
+ this.onSuccess(response.tree, response.elements, response.html, response.javascript);
+ }
+
+});
+
+Element.Properties.send = {
+
+ set: function(options){
+ var send = this.retrieve('send');
+ if (send) send.cancel();
+ return this.eliminate('send').store('send:options', $extend({
+ data: this, link: 'cancel', method: this.get('method') || 'post', url: this.get('action')
+ }, options));
+ },
+
+ get: function(options){
+ if (options || !this.retrieve('send')){
+ if (options || !this.retrieve('send:options')) this.set('send', options);
+ this.store('send', new Request(this.retrieve('send:options')));
+ }
+ return this.retrieve('send');
+ }
+
+};
+
+Element.Properties.load = {
+
+ set: function(options){
+ var load = this.retrieve('load');
+ if (load) load.cancel();
+ return this.eliminate('load').store('load:options', $extend({data: this, link: 'cancel', update: this, method: 'get'}, options));
+ },
+
+ get: function(options){
+ if (options || ! this.retrieve('load')){
+ if (options || !this.retrieve('load:options')) this.set('load', options);
+ this.store('load', new Request.HTML(this.retrieve('load:options')));
+ }
+ return this.retrieve('load');
+ }
+
+};
+
+Element.implement({
+
+ send: function(url){
+ var sender = this.get('send');
+ sender.send({data: this, url: url || sender.options.url});
+ return this;
+ },
+
+ load: function(){
+ this.get('load').send(Array.link(arguments, {data: Object.type, url: String.type}));
+ return this;
+ }
+
+});
+
+
+/*
+Script: Request.JSON.js
+ Extends the basic Request Class with additional methods for sending and receiving JSON data.
+
+License:
+ MIT-style license.
+*/
+
+Request.JSON = new Class({
+
+ Extends: Request,
+
+ options: {
+ secure: true
+ },
+
+ initialize: function(options){
+ this.parent(options);
+ this.headers.extend({'Accept': 'application/json', 'X-Request': 'JSON'});
+ },
+
+ success: function(text){
+ this.response.json = JSON.decode(text, this.options.secure);
+ this.onSuccess(this.response.json, text);
+ }
+
+});
+/* Prototype JavaScript framework, version 1.6.0.3
+ * (c) 2005-2008 Sam Stephenson
+ *
+ * Prototype is freely distributable under the terms of an MIT-style license.
+ * For details, see the Prototype web site: http://www.prototypejs.org/
+ *
+ *--------------------------------------------------------------------------*/
+
+var Prototype = {
+ Version: '1.6.0.3',
+
+ Browser: {
+ IE: !!(window.attachEvent &&
+ navigator.userAgent.indexOf('Opera') === -1),
+ Opera: navigator.userAgent.indexOf('Opera') > -1,
+ WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
+ Gecko: navigator.userAgent.indexOf('Gecko') > -1 &&
+ navigator.userAgent.indexOf('KHTML') === -1,
+ MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
+ },
+
+ BrowserFeatures: {
+ XPath: !!document.evaluate,
+ SelectorsAPI: !!document.querySelector,
+ ElementExtensions: !!window.HTMLElement,
+ SpecificElementExtensions:
+ document.createElement('div')['__proto__'] &&
+ document.createElement('div')['__proto__'] !==
+ document.createElement('form')['__proto__']
+ },
+
+ ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
+ JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
+
+ emptyFunction: function() { },
+ K: function(x) { return x }
+};
+
+if (Prototype.Browser.MobileSafari)
+ Prototype.BrowserFeatures.SpecificElementExtensions = false;
+
+
+/* Based on Alex Arnell's inheritance implementation. */
+var Class = {
+ create: function() {
+ var parent = null, properties = $A(arguments);
+ if (Object.isFunction(properties[0]))
+ parent = properties.shift();
+
+ function klass() {
+ this.initialize.apply(this, arguments);
+ }
+
+ Object.extend(klass, Class.Methods);
+ klass.superclass = parent;
+ klass.subclasses = [];
+
+ if (parent) {
+ var subclass = function() { };
+ subclass.prototype = parent.prototype;
+ klass.prototype = new subclass;
+ parent.subclasses.push(klass);
+ }
+
+ for (var i = 0; i < properties.length; i++)
+ klass.addMethods(properties[i]);
+
+ if (!klass.prototype.initialize)
+ klass.prototype.initialize = Prototype.emptyFunction;
+
+ klass.prototype.constructor = klass;
+
+ return klass;
+ }
+};
+
+Class.Methods = {
+ addMethods: function(source) {
+ var ancestor = this.superclass && this.superclass.prototype;
+ var properties = Object.keys(source);
+
+ if (!Object.keys({ toString: true }).length)
+ properties.push("toString", "valueOf");
+
+ for (var i = 0, length = properties.length; i < length; i++) {
+ var property = properties[i], value = source[property];
+ if (ancestor && Object.isFunction(value) &&
+ value.argumentNames().first() == "$super") {
+ var method = value;
+ value = (function(m) {
+ return function() { return ancestor[m].apply(this, arguments) };
+ })(property).wrap(method);
+
+ value.valueOf = method.valueOf.bind(method);
+ value.toString = method.toString.bind(method);
+ }
+ this.prototype[property] = value;
+ }
+
+ return this;
+ }
+};
+
+var Abstract = { };
+
+Object.extend = function(destination, source) {
+ for (var property in source)
+ destination[property] = source[property];
+ return destination;
+};
+
+Object.extend(Object, {
+ inspect: function(object) {
+ try {
+ if (Object.isUndefined(object)) return 'undefined';
+ if (object === null) return 'null';
+ return object.inspect ? object.inspect() : String(object);
+ } catch (e) {
+ if (e instanceof RangeError) return '...';
+ throw e;
+ }
+ },
+
+ toJSON: function(object) {
+ var type = typeof object;
+ switch (type) {
+ case 'undefined':
+ case 'function':
+ case 'unknown': return;
+ case 'boolean': return object.toString();
+ }
+
+ if (object === null) return 'null';
+ if (object.toJSON) return object.toJSON();
+ if (Object.isElement(object)) return;
+
+ var results = [];
+ for (var property in object) {
+ var value = Object.toJSON(object[property]);
+ if (!Object.isUndefined(value))
+ results.push(property.toJSON() + ': ' + value);
+ }
+
+ return '{' + results.join(', ') + '}';
+ },
+
+ toQueryString: function(object) {
+ return $H(object).toQueryString();
+ },
+
+ toHTML: function(object) {
+ return object && object.toHTML ? object.toHTML() : String.interpret(object);
+ },
+
+ keys: function(object) {
+ var keys = [];
+ for (var property in object)
+ keys.push(property);
+ return keys;
+ },
+
+ values: function(object) {
+ var values = [];
+ for (var property in object)
+ values.push(object[property]);
+ return values;
+ },
+
+ clone: function(object) {
+ return Object.extend({ }, object);
+ },
+
+ isElement: function(object) {
+ return !!(object && object.nodeType == 1);
+ },
+
+ isArray: function(object) {
+ return object != null && typeof object == "object" &&
+ 'splice' in object && 'join' in object;
+ },
+
+ isHash: function(object) {
+ return object instanceof Hash;
+ },
+
+ isFunction: function(object) {
+ return typeof object == "function";
+ },
+
+ isString: function(object) {
+ return typeof object == "string";
+ },
+
+ isNumber: function(object) {
+ return typeof object == "number";
+ },
+
+ isUndefined: function(object) {
+ return typeof object == "undefined";
+ }
+});
+
+Object.extend(Function.prototype, {
+ argumentNames: function() {
+ var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1]
+ .replace(/\s+/g, '').split(',');
+ return names.length == 1 && !names[0] ? [] : names;
+ },
+
+ bind: function() {
+ if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function() {
+ return __method.apply(object, args.concat($A(arguments)));
+ }
+ },
+
+ bindAsEventListener: function() {
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function(event) {
+ return __method.apply(object, [event || window.event].concat(args));
+ }
+ },
+
+ curry: function() {
+ if (!arguments.length) return this;
+ var __method = this, args = $A(arguments);
+ return function() {
+ return __method.apply(this, args.concat($A(arguments)));
+ }
+ },
+
+ delay: function() {
+ var __method = this, args = $A(arguments), timeout = args.shift() * 1000;
+ return window.setTimeout(function() {
+ return __method.apply(__method, args);
+ }, timeout);
+ },
+
+ defer: function() {
+ var args = [0.01].concat($A(arguments));
+ return this.delay.apply(this, args);
+ },
+
+ wrap: function(wrapper) {
+ var __method = this;
+ return function() {
+ return wrapper.apply(this, [__method.bind(this)].concat($A(arguments)));
+ }
+ },
+
+ methodize: function() {
+ if (this._methodized) return this._methodized;
+ var __method = this;
+ return this._methodized = function() {
+ return __method.apply(null, [this].concat($A(arguments)));
+ };
+ }
+});
+
+Date.prototype.toJSON = function() {
+ return '"' + this.getUTCFullYear() + '-' +
+ (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
+ this.getUTCDate().toPaddedString(2) + 'T' +
+ this.getUTCHours().toPaddedString(2) + ':' +
+ this.getUTCMinutes().toPaddedString(2) + ':' +
+ this.getUTCSeconds().toPaddedString(2) + 'Z"';
+};
+
+var Try = {
+ these: function() {
+ var returnValue;
+
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ var lambda = arguments[i];
+ try {
+ returnValue = lambda();
+ break;
+ } catch (e) { }
+ }
+
+ return returnValue;
+ }
+};
+
+RegExp.prototype.match = RegExp.prototype.test;
+
+RegExp.escape = function(str) {
+ return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
+};
+
+/*--------------------------------------------------------------------------*/
+
+var PeriodicalExecuter = Class.create({
+ initialize: function(callback, frequency) {
+ this.callback = callback;
+ this.frequency = frequency;
+ this.currentlyExecuting = false;
+
+ this.registerCallback();
+ },
+
+ registerCallback: function() {
+ this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+ },
+
+ execute: function() {
+ this.callback(this);
+ },
+
+ stop: function() {
+ if (!this.timer) return;
+ clearInterval(this.timer);
+ this.timer = null;
+ },
+
+ onTimerEvent: function() {
+ if (!this.currentlyExecuting) {
+ try {
+ this.currentlyExecuting = true;
+ this.execute();
+ } finally {
+ this.currentlyExecuting = false;
+ }
+ }
+ }
+});
+Object.extend(String, {
+ interpret: function(value) {
+ return value == null ? '' : String(value);
+ },
+ specialChar: {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '\\': '\\\\'
+ }
+});
+
+Object.extend(String.prototype, {
+ gsub: function(pattern, replacement) {
+ var result = '', source = this, match;
+ replacement = arguments.callee.prepareReplacement(replacement);
+
+ while (source.length > 0) {
+ if (match = source.match(pattern)) {
+ result += source.slice(0, match.index);
+ result += String.interpret(replacement(match));
+ source = source.slice(match.index + match[0].length);
+ } else {
+ result += source, source = '';
+ }
+ }
+ return result;
+ },
+
+ sub: function(pattern, replacement, count) {
+ replacement = this.gsub.prepareReplacement(replacement);
+ count = Object.isUndefined(count) ? 1 : count;
+
+ return this.gsub(pattern, function(match) {
+ if (--count < 0) return match[0];
+ return replacement(match);
+ });
+ },
+
+ scan: function(pattern, iterator) {
+ this.gsub(pattern, iterator);
+ return String(this);
+ },
+
+ truncate: function(length, truncation) {
+ length = length || 30;
+ truncation = Object.isUndefined(truncation) ? '...' : truncation;
+ return this.length > length ?
+ this.slice(0, length - truncation.length) + truncation : String(this);
+ },
+
+ strip: function() {
+ return this.replace(/^\s+/, '').replace(/\s+$/, '');
+ },
+
+ stripTags: function() {
+ return this.replace(/<\/?[^>]+>/gi, '');
+ },
+
+ stripScripts: function() {
+ return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
+ },
+
+ extractScripts: function() {
+ var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
+ var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+ return (this.match(matchAll) || []).map(function(scriptTag) {
+ return (scriptTag.match(matchOne) || ['', ''])[1];
+ });
+ },
+
+ evalScripts: function() {
+ return this.extractScripts().map(function(script) { return eval(script) });
+ },
+
+ escapeHTML: function() {
+ var self = arguments.callee;
+ self.text.data = this;
+ return self.div.innerHTML;
+ },
+
+ unescapeHTML: function() {
+ var div = new Element('div');
+ div.innerHTML = this.stripTags();
+ return div.childNodes[0] ? (div.childNodes.length > 1 ?
+ $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
+ div.childNodes[0].nodeValue) : '';
+ },
+
+ toQueryParams: function(separator) {
+ var match = this.strip().match(/([^?#]*)(#.*)?$/);
+ if (!match) return { };
+
+ return match[1].split(separator || '&').inject({ }, function(hash, pair) {
+ if ((pair = pair.split('='))[0]) {
+ var key = decodeURIComponent(pair.shift());
+ var value = pair.length > 1 ? pair.join('=') : pair[0];
+ if (value != undefined) value = decodeURIComponent(value);
+
+ if (key in hash) {
+ if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
+ hash[key].push(value);
+ }
+ else hash[key] = value;
+ }
+ return hash;
+ });
+ },
+
+ toArray: function() {
+ return this.split('');
+ },
+
+ succ: function() {
+ return this.slice(0, this.length - 1) +
+ String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+ },
+
+ times: function(count) {
+ return count < 1 ? '' : new Array(count + 1).join(this);
+ },
+
+ camelize: function() {
+ var parts = this.split('-'), len = parts.length;
+ if (len == 1) return parts[0];
+
+ var camelized = this.charAt(0) == '-'
+ ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
+ : parts[0];
+
+ for (var i = 1; i < len; i++)
+ camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
+
+ return camelized;
+ },
+
+ capitalize: function() {
+ return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+ },
+
+ underscore: function() {
+ return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
+ },
+
+ dasherize: function() {
+ return this.gsub(/_/,'-');
+ },
+
+ inspect: function(useDoubleQuotes) {
+ var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
+ var character = String.specialChar[match[0]];
+ return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
+ });
+ if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
+ return "'" + escapedString.replace(/'/g, '\\\'') + "'";
+ },
+
+ toJSON: function() {
+ return this.inspect(true);
+ },
+
+ unfilterJSON: function(filter) {
+ return this.sub(filter || Prototype.JSONFilter, '#{1}');
+ },
+
+ isJSON: function() {
+ var str = this;
+ if (str.blank()) return false;
+ str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
+ return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
+ },
+
+ evalJSON: function(sanitize) {
+ var json = this.unfilterJSON();
+ try {
+ if (!sanitize || json.isJSON()) return eval('(' + json + ')');
+ } catch (e) { }
+ throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
+ },
+
+ include: function(pattern) {
+ return this.indexOf(pattern) > -1;
+ },
+
+ startsWith: function(pattern) {
+ return this.indexOf(pattern) === 0;
+ },
+
+ endsWith: function(pattern) {
+ var d = this.length - pattern.length;
+ return d >= 0 && this.lastIndexOf(pattern) === d;
+ },
+
+ empty: function() {
+ return this == '';
+ },
+
+ blank: function() {
+ return /^\s*$/.test(this);
+ },
+
+ interpolate: function(object, pattern) {
+ return new Template(this, pattern).evaluate(object);
+ }
+});
+
+if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
+ escapeHTML: function() {
+ return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
+ },
+ unescapeHTML: function() {
+ return this.stripTags().replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
+ }
+});
+
+String.prototype.gsub.prepareReplacement = function(replacement) {
+ if (Object.isFunction(replacement)) return replacement;
+ var template = new Template(replacement);
+ return function(match) { return template.evaluate(match) };
+};
+
+String.prototype.parseQuery = String.prototype.toQueryParams;
+
+Object.extend(String.prototype.escapeHTML, {
+ div: document.createElement('div'),
+ text: document.createTextNode('')
+});
+
+String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text);
+
+var Template = Class.create({
+ initialize: function(template, pattern) {
+ this.template = template.toString();
+ this.pattern = pattern || Template.Pattern;
+ },
+
+ evaluate: function(object) {
+ if (Object.isFunction(object.toTemplateReplacements))
+ object = object.toTemplateReplacements();
+
+ return this.template.gsub(this.pattern, function(match) {
+ if (object == null) return '';
+
+ var before = match[1] || '';
+ if (before == '\\') return match[2];
+
+ var ctx = object, expr = match[3];
+ var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
+ match = pattern.exec(expr);
+ if (match == null) return before;
+
+ while (match != null) {
+ var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1];
+ ctx = ctx[comp];
+ if (null == ctx || '' == match[3]) break;
+ expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
+ match = pattern.exec(expr);
+ }
+
+ return before + String.interpret(ctx);
+ });
+ }
+});
+Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
+
+var $break = { };
+
+var Enumerable = {
+ each: function(iterator, context) {
+ var index = 0;
+ try {
+ this._each(function(value) {
+ iterator.call(context, value, index++);
+ });
+ } catch (e) {
+ if (e != $break) throw e;
+ }
+ return this;
+ },
+
+ eachSlice: function(number, iterator, context) {
+ var index = -number, slices = [], array = this.toArray();
+ if (number < 1) return array;
+ while ((index += number) < array.length)
+ slices.push(array.slice(index, index+number));
+ return slices.collect(iterator, context);
+ },
+
+ all: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result = true;
+ this.each(function(value, index) {
+ result = result && !!iterator.call(context, value, index);
+ if (!result) throw $break;
+ });
+ return result;
+ },
+
+ any: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result = false;
+ this.each(function(value, index) {
+ if (result = !!iterator.call(context, value, index))
+ throw $break;
+ });
+ return result;
+ },
+
+ collect: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var results = [];
+ this.each(function(value, index) {
+ results.push(iterator.call(context, value, index));
+ });
+ return results;
+ },
+
+ detect: function(iterator, context) {
+ var result;
+ this.each(function(value, index) {
+ if (iterator.call(context, value, index)) {
+ result = value;
+ throw $break;
+ }
+ });
+ return result;
+ },
+
+ findAll: function(iterator, context) {
+ var results = [];
+ this.each(function(value, index) {
+ if (iterator.call(context, value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ grep: function(filter, iterator, context) {
+ iterator = iterator || Prototype.K;
+ var results = [];
+
+ if (Object.isString(filter))
+ filter = new RegExp(filter);
+
+ this.each(function(value, index) {
+ if (filter.match(value))
+ results.push(iterator.call(context, value, index));
+ });
+ return results;
+ },
+
+ include: function(object) {
+ if (Object.isFunction(this.indexOf))
+ if (this.indexOf(object) != -1) return true;
+
+ var found = false;
+ this.each(function(value) {
+ if (value == object) {
+ found = true;
+ throw $break;
+ }
+ });
+ return found;
+ },
+
+ inGroupsOf: function(number, fillWith) {
+ fillWith = Object.isUndefined(fillWith) ? null : fillWith;
+ return this.eachSlice(number, function(slice) {
+ while(slice.length < number) slice.push(fillWith);
+ return slice;
+ });
+ },
+
+ inject: function(memo, iterator, context) {
+ this.each(function(value, index) {
+ memo = iterator.call(context, memo, value, index);
+ });
+ return memo;
+ },
+
+ invoke: function(method) {
+ var args = $A(arguments).slice(1);
+ return this.map(function(value) {
+ return value[method].apply(value, args);
+ });
+ },
+
+ max: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result;
+ this.each(function(value, index) {
+ value = iterator.call(context, value, index);
+ if (result == null || value >= result)
+ result = value;
+ });
+ return result;
+ },
+
+ min: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result;
+ this.each(function(value, index) {
+ value = iterator.call(context, value, index);
+ if (result == null || value < result)
+ result = value;
+ });
+ return result;
+ },
+
+ partition: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var trues = [], falses = [];
+ this.each(function(value, index) {
+ (iterator.call(context, value, index) ?
+ trues : falses).push(value);
+ });
+ return [trues, falses];
+ },
+
+ pluck: function(property) {
+ var results = [];
+ this.each(function(value) {
+ results.push(value[property]);
+ });
+ return results;
+ },
+
+ reject: function(iterator, context) {
+ var results = [];
+ this.each(function(value, index) {
+ if (!iterator.call(context, value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ sortBy: function(iterator, context) {
+ return this.map(function(value, index) {
+ return {
+ value: value,
+ criteria: iterator.call(context, value, index)
+ };
+ }).sort(function(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a < b ? -1 : a > b ? 1 : 0;
+ }).pluck('value');
+ },
+
+ toArray: function() {
+ return this.map();
+ },
+
+ zip: function() {
+ var iterator = Prototype.K, args = $A(arguments);
+ if (Object.isFunction(args.last()))
+ iterator = args.pop();
+
+ var collections = [this].concat(args).map($A);
+ return this.map(function(value, index) {
+ return iterator(collections.pluck(index));
+ });
+ },
+
+ size: function() {
+ return this.toArray().length;
+ },
+
+ inspect: function() {
+ return '#<Enumerable:' + this.toArray().inspect() + '>';
+ }
+};
+
+Object.extend(Enumerable, {
+ map: Enumerable.collect,
+ find: Enumerable.detect,
+ select: Enumerable.findAll,
+ filter: Enumerable.findAll,
+ member: Enumerable.include,
+ entries: Enumerable.toArray,
+ every: Enumerable.all,
+ some: Enumerable.any
+});
+function $A(iterable) {
+ if (!iterable) return [];
+ if (iterable.toArray) return iterable.toArray();
+ var length = iterable.length || 0, results = new Array(length);
+ while (length--) results[length] = iterable[length];
+ return results;
+}
+
+if (Prototype.Browser.WebKit) {
+ $A = function(iterable) {
+ if (!iterable) return [];
+ // In Safari, only use the `toArray` method if it's not a NodeList.
+ // A NodeList is a function, has an function `item` property, and a numeric
+ // `length` property. Adapted from Google Doctype.
+ if (!(typeof iterable === 'function' && typeof iterable.length ===
+ 'number' && typeof iterable.item === 'function') && iterable.toArray)
+ return iterable.toArray();
+ var length = iterable.length || 0, results = new Array(length);
+ while (length--) results[length] = iterable[length];
+ return results;
+ };
+}
+
+Array.from = $A;
+
+Object.extend(Array.prototype, Enumerable);
+
+if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse;
+
+Object.extend(Array.prototype, {
+ _each: function(iterator) {
+ for (var i = 0, length = this.length; i < length; i++)
+ iterator(this[i]);
+ },
+
+ clear: function() {
+ this.length = 0;
+ return this;
+ },
+
+ first: function() {
+ return this[0];
+ },
+
+ last: function() {
+ return this[this.length - 1];
+ },
+
+ compact: function() {
+ return this.select(function(value) {
+ return value != null;
+ });
+ },
+
+ flatten: function() {
+ return this.inject([], function(array, value) {
+ return array.concat(Object.isArray(value) ?
+ value.flatten() : [value]);
+ });
+ },
+
+ without: function() {
+ var values = $A(arguments);
+ return this.select(function(value) {
+ return !values.include(value);
+ });
+ },
+
+ reverse: function(inline) {
+ return (inline !== false ? this : this.toArray())._reverse();
+ },
+
+ reduce: function() {
+ return this.length > 1 ? this : this[0];
+ },
+
+ uniq: function(sorted) {
+ return this.inject([], function(array, value, index) {
+ if (0 == index || (sorted ? array.last() != value : !array.include(value)))
+ array.push(value);
+ return array;
+ });
+ },
+
+ intersect: function(array) {
+ return this.uniq().findAll(function(item) {
+ return array.detect(function(value) { return item === value });
+ });
+ },
+
+ clone: function() {
+ return [].concat(this);
+ },
+
+ size: function() {
+ return this.length;
+ },
+
+ inspect: function() {
+ return '[' + this.map(Object.inspect).join(', ') + ']';
+ },
+
+ toJSON: function() {
+ var results = [];
+ this.each(function(object) {
+ var value = Object.toJSON(object);
+ if (!Object.isUndefined(value)) results.push(value);
+ });
+ return '[' + results.join(', ') + ']';
+ }
+});
+
+// use native browser JS 1.6 implementation if available
+if (Object.isFunction(Array.prototype.forEach))
+ Array.prototype._each = Array.prototype.forEach;
+
+if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
+ i || (i = 0);
+ var length = this.length;
+ if (i < 0) i = length + i;
+ for (; i < length; i++)
+ if (this[i] === item) return i;
+ return -1;
+};
+
+if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) {
+ i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
+ var n = this.slice(0, i).reverse().indexOf(item);
+ return (n < 0) ? n : i - n - 1;
+};
+
+Array.prototype.toArray = Array.prototype.clone;
+
+function $w(string) {
+ if (!Object.isString(string)) return [];
+ string = string.strip();
+ return string ? string.split(/\s+/) : [];
+}
+
+if (Prototype.Browser.Opera){
+ Array.prototype.concat = function() {
+ var array = [];
+ for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ if (Object.isArray(arguments[i])) {
+ for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
+ array.push(arguments[i][j]);
+ } else {
+ array.push(arguments[i]);
+ }
+ }
+ return array;
+ };
+}
+Object.extend(Number.prototype, {
+ toColorPart: function() {
+ return this.toPaddedString(2, 16);
+ },
+
+ succ: function() {
+ return this + 1;
+ },
+
+ times: function(iterator, context) {
+ $R(0, this, true).each(iterator, context);
+ return this;
+ },
+
+ toPaddedString: function(length, radix) {
+ var string = this.toString(radix || 10);
+ return '0'.times(length - string.length) + string;
+ },
+
+ toJSON: function() {
+ return isFinite(this) ? this.toString() : 'null';
+ }
+});
+
+$w('abs round ceil floor').each(function(method){
+ Number.prototype[method] = Math[method].methodize();
+});
+function $H(object) {
+ return new Hash(object);
+};
+
+var Hash = Class.create(Enumerable, (function() {
+
+ function toQueryPair(key, value) {
+ if (Object.isUndefined(value)) return key;
+ return key + '=' + encodeURIComponent(String.interpret(value));
+ }
+
+ return {
+ initialize: function(object) {
+ this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
+ },
+
+ _each: function(iterator) {
+ for (var key in this._object) {
+ var value = this._object[key], pair = [key, value];
+ pair.key = key;
+ pair.value = value;
+ iterator(pair);
+ }
+ },
+
+ set: function(key, value) {
+ return this._object[key] = value;
+ },
+
+ get: function(key) {
+ // simulating poorly supported hasOwnProperty
+ if (this._object[key] !== Object.prototype[key])
+ return this._object[key];
+ },
+
+ unset: function(key) {
+ var value = this._object[key];
+ delete this._object[key];
+ return value;
+ },
+
+ toObject: function() {
+ return Object.clone(this._object);
+ },
+
+ keys: function() {
+ return this.pluck('key');
+ },
+
+ values: function() {
+ return this.pluck('value');
+ },
+
+ index: function(value) {
+ var match = this.detect(function(pair) {
+ return pair.value === value;
+ });
+ return match && match.key;
+ },
+
+ merge: function(object) {
+ return this.clone().update(object);
+ },
+
+ update: function(object) {
+ return new Hash(object).inject(this, function(result, pair) {
+ result.set(pair.key, pair.value);
+ return result;
+ });
+ },
+
+ toQueryString: function() {
+ return this.inject([], function(results, pair) {
+ var key = encodeURIComponent(pair.key), values = pair.value;
+
+ if (values && typeof values == 'object') {
+ if (Object.isArray(values))
+ return results.concat(values.map(toQueryPair.curry(key)));
+ } else results.push(toQueryPair(key, values));
+ return results;
+ }).join('&');
+ },
+
+ inspect: function() {
+ return '#<Hash:{' + this.map(function(pair) {
+ return pair.map(Object.inspect).join(': ');
+ }).join(', ') + '}>';
+ },
+
+ toJSON: function() {
+ return Object.toJSON(this.toObject());
+ },
+
+ clone: function() {
+ return new Hash(this);
+ }
+ }
+})());
+
+Hash.prototype.toTemplateReplacements = Hash.prototype.toObject;
+Hash.from = $H;
+var ObjectRange = Class.create(Enumerable, {
+ initialize: function(start, end, exclusive) {
+ this.start = start;
+ this.end = end;
+ this.exclusive = exclusive;
+ },
+
+ _each: function(iterator) {
+ var value = this.start;
+ while (this.include(value)) {
+ iterator(value);
+ value = value.succ();
+ }
+ },
+
+ include: function(value) {
+ if (value < this.start)
+ return false;
+ if (this.exclusive)
+ return value < this.end;
+ return value <= this.end;
+ }
+});
+
+var $R = function(start, end, exclusive) {
+ return new ObjectRange(start, end, exclusive);
+};
+
+var Ajax = {
+ getTransport: function() {
+ return Try.these(
+ function() {return new XMLHttpRequest()},
+ function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+ function() {return new ActiveXObject('Microsoft.XMLHTTP')}
+ ) || false;
+ },
+
+ activeRequestCount: 0
+};
+
+Ajax.Responders = {
+ responders: [],
+
+ _each: function(iterator) {
+ this.responders._each(iterator);
+ },
+
+ register: function(responder) {
+ if (!this.include(responder))
+ this.responders.push(responder);
+ },
+
+ unregister: function(responder) {
+ this.responders = this.responders.without(responder);
+ },
+
+ dispatch: function(callback, request, transport, json) {
+ this.each(function(responder) {
+ if (Object.isFunction(responder[callback])) {
+ try {
+ responder[callback].apply(responder, [request, transport, json]);
+ } catch (e) { }
+ }
+ });
+ }
+};
+
+Object.extend(Ajax.Responders, Enumerable);
+
+Ajax.Responders.register({
+ onCreate: function() { Ajax.activeRequestCount++ },
+ onComplete: function() { Ajax.activeRequestCount-- }
+});
+
+Ajax.Base = Class.create({
+ initialize: function(options) {
+ this.options = {
+ method: 'post',
+ asynchronous: true,
+ contentType: 'application/x-www-form-urlencoded',
+ encoding: 'UTF-8',
+ parameters: '',
+ evalJSON: true,
+ evalJS: true
+ };
+ Object.extend(this.options, options || { });
+
+ this.options.method = this.options.method.toLowerCase();
+
+ if (Object.isString(this.options.parameters))
+ this.options.parameters = this.options.parameters.toQueryParams();
+ else if (Object.isHash(this.options.parameters))
+ this.options.parameters = this.options.parameters.toObject();
+ }
+});
+
+Ajax.Request = Class.create(Ajax.Base, {
+ _complete: false,
+
+ initialize: function($super, url, options) {
+ $super(options);
+ this.transport = Ajax.getTransport();
+ this.request(url);
+ },
+
+ request: function(url) {
+ this.url = url;
+ this.method = this.options.method;
+ var params = Object.clone(this.options.parameters);
+
+ if (!['get', 'post'].include(this.method)) {
+ // simulate other verbs over post
+ params['_method'] = this.method;
+ this.method = 'post';
+ }
+
+ this.parameters = params;
+
+ if (params = Object.toQueryString(params)) {
+ // when GET, append parameters to URL
+ if (this.method == 'get')
+ this.url += (this.url.include('?') ? '&' : '?') + params;
+ else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
+ params += '&_=';
+ }
+
+ try {
+ var response = new Ajax.Response(this);
+ if (this.options.onCreate) this.options.onCreate(response);
+ Ajax.Responders.dispatch('onCreate', this, response);
+
+ this.transport.open(this.method.toUpperCase(), this.url,
+ this.options.asynchronous);
+
+ if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);
+
+ this.transport.onreadystatechange = this.onStateChange.bind(this);
+ this.setRequestHeaders();
+
+ this.body = this.method == 'post' ? (this.options.postBody || params) : null;
+ this.transport.send(this.body);
+
+ /* Force Firefox to handle ready state 4 for synchronous requests */
+ if (!this.options.asynchronous && this.transport.overrideMimeType)
+ this.onStateChange();
+
+ }
+ catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ onStateChange: function() {
+ var readyState = this.transport.readyState;
+ if (readyState > 1 && !((readyState == 4) && this._complete))
+ this.respondToReadyState(this.transport.readyState);
+ },
+
+ setRequestHeaders: function() {
+ var headers = {
+ 'X-Requested-With': 'XMLHttpRequest',
+ 'X-Prototype-Version': Prototype.Version,
+ 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+ };
+
+ if (this.method == 'post') {
+ headers['Content-type'] = this.options.contentType +
+ (this.options.encoding ? '; charset=' + this.options.encoding : '');
+
+ /* Force "Connection: close" for older Mozilla browsers to work
+ * around a bug where XMLHttpRequest sends an incorrect
+ * Content-length header. See Mozilla Bugzilla #246651.
+ */
+ if (this.transport.overrideMimeType &&
+ (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+ headers['Connection'] = 'close';
+ }
+
+ // user-defined headers
+ if (typeof this.options.requestHeaders == 'object') {
+ var extras = this.options.requestHeaders;
+
+ if (Object.isFunction(extras.push))
+ for (var i = 0, length = extras.length; i < length; i += 2)
+ headers[extras[i]] = extras[i+1];
+ else
+ $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+ }
+
+ for (var name in headers)
+ this.transport.setRequestHeader(name, headers[name]);
+ },
+
+ success: function() {
+ var status = this.getStatus();
+ return !status || (status >= 200 && status < 300);
+ },
+
+ getStatus: function() {
+ try {
+ return this.transport.status || 0;
+ } catch (e) { return 0 }
+ },
+
+ respondToReadyState: function(readyState) {
+ var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);
+
+ if (state == 'Complete') {
+ try {
+ this._complete = true;
+ (this.options['on' + response.status]
+ || this.options['on' + (this.success() ? 'Success' : 'Failure')]
+ || Prototype.emptyFunction)(response, response.headerJSON);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ var contentType = response.getHeader('Content-type');
+ if (this.options.evalJS == 'force'
+ || (this.options.evalJS && this.isSameOrigin() && contentType
+ && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
+ this.evalResponse();
+ }
+
+ try {
+ (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
+ Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ if (state == 'Complete') {
+ // avoid memory leak in MSIE: clean up
+ this.transport.onreadystatechange = Prototype.emptyFunction;
+ }
+ },
+
+ isSameOrigin: function() {
+ var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
+ return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
+ protocol: location.protocol,
+ domain: document.domain,
+ port: location.port ? ':' + location.port : ''
+ }));
+ },
+
+ getHeader: function(name) {
+ try {
+ return this.transport.getResponseHeader(name) || null;
+ } catch (e) { return null }
+ },
+
+ evalResponse: function() {
+ try {
+ return eval((this.transport.responseText || '').unfilterJSON());
+ } catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ dispatchException: function(exception) {
+ (this.options.onException || Prototype.emptyFunction)(this, exception);
+ Ajax.Responders.dispatch('onException', this, exception);
+ }
+});
+
+Ajax.Request.Events =
+ ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+Ajax.Response = Class.create({
+ initialize: function(request){
+ this.request = request;
+ var transport = this.transport = request.transport,
+ readyState = this.readyState = transport.readyState;
+
+ if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
+ this.status = this.getStatus();
+ this.statusText = this.getStatusText();
+ this.responseText = String.interpret(transport.responseText);
+ this.headerJSON = this._getHeaderJSON();
+ }
+
+ if(readyState == 4) {
+ var xml = transport.responseXML;
+ this.responseXML = Object.isUndefined(xml) ? null : xml;
+ this.responseJSON = this._getResponseJSON();
+ }
+ },
+
+ status: 0,
+ statusText: '',
+
+ getStatus: Ajax.Request.prototype.getStatus,
+
+ getStatusText: function() {
+ try {
+ return this.transport.statusText || '';
+ } catch (e) { return '' }
+ },
+
+ getHeader: Ajax.Request.prototype.getHeader,
+
+ getAllHeaders: function() {
+ try {
+ return this.getAllResponseHeaders();
+ } catch (e) { return null }
+ },
+
+ getResponseHeader: function(name) {
+ return this.transport.getResponseHeader(name);
+ },
+
+ getAllResponseHeaders: function() {
+ return this.transport.getAllResponseHeaders();
+ },
+
+ _getHeaderJSON: function() {
+ var json = this.getHeader('X-JSON');
+ if (!json) return null;
+ json = decodeURIComponent(escape(json));
+ try {
+ return json.evalJSON(this.request.options.sanitizeJSON ||
+ !this.request.isSameOrigin());
+ } catch (e) {
+ this.request.dispatchException(e);
+ }
+ },
+
+ _getResponseJSON: function() {
+ var options = this.request.options;
+ if (!options.evalJSON || (options.evalJSON != 'force' &&
+ !(this.getHeader('Content-type') || '').include('application/json')) ||
+ this.responseText.blank())
+ return null;
+ try {
+ return this.responseText.evalJSON(options.sanitizeJSON ||
+ !this.request.isSameOrigin());
+ } catch (e) {
+ this.request.dispatchException(e);
+ }
+ }
+});
+
+Ajax.Updater = Class.create(Ajax.Request, {
+ initialize: function($super, container, url, options) {
+ this.container = {
+ success: (container.success || container),
+ failure: (container.failure || (container.success ? null : container))
+ };
+
+ options = Object.clone(options);
+ var onComplete = options.onComplete;
+ options.onComplete = (function(response, json) {
+ this.updateContent(response.responseText);
+ if (Object.isFunction(onComplete)) onComplete(response, json);
+ }).bind(this);
+
+ $super(url, options);
+ },
+
+ updateContent: function(responseText) {
+ var receiver = this.container[this.success() ? 'success' : 'failure'],
+ options = this.options;
+
+ if (!options.evalScripts) responseText = responseText.stripScripts();
+
+ if (receiver = $(receiver)) {
+ if (options.insertion) {
+ if (Object.isString(options.insertion)) {
+ var insertion = { }; insertion[options.insertion] = responseText;
+ receiver.insert(insertion);
+ }
+ else options.insertion(receiver, responseText);
+ }
+ else receiver.update(responseText);
+ }
+ }
+});
+
+Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
+ initialize: function($super, container, url, options) {
+ $super(options);
+ this.onComplete = this.options.onComplete;
+
+ this.frequency = (this.options.frequency || 2);
+ this.decay = (this.options.decay || 1);
+
+ this.updater = { };
+ this.container = container;
+ this.url = url;
+
+ this.start();
+ },
+
+ start: function() {
+ this.options.onComplete = this.updateComplete.bind(this);
+ this.onTimerEvent();
+ },
+
+ stop: function() {
+ this.updater.options.onComplete = undefined;
+ clearTimeout(this.timer);
+ (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
+ },
+
+ updateComplete: function(response) {
+ if (this.options.decay) {
+ this.decay = (response.responseText == this.lastText ?
+ this.decay * this.options.decay : 1);
+
+ this.lastText = response.responseText;
+ }
+ this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
+ },
+
+ onTimerEvent: function() {
+ this.updater = new Ajax.Updater(this.container, this.url, this.options);
+ }
+});
+function $(element) {
+ if (arguments.length > 1) {
+ for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+ elements.push($(arguments[i]));
+ return elements;
+ }
+ if (Object.isString(element))
+ element = document.getElementById(element);
+ return Element.extend(element);
+}
+
+if (Prototype.BrowserFeatures.XPath) {
+ document._getElementsByXPath = function(expression, parentElement) {
+ var results = [];
+ var query = document.evaluate(expression, $(parentElement) || document,
+ null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ for (var i = 0, length = query.snapshotLength; i < length; i++)
+ results.push(Element.extend(query.snapshotItem(i)));
+ return results;
+ };
+}
+
+/*--------------------------------------------------------------------------*/
+
+if (!window.Node) var Node = { };
+
+if (!Node.ELEMENT_NODE) {
+ // DOM level 2 ECMAScript Language Binding
+ Object.extend(Node, {
+ ELEMENT_NODE: 1,
+ ATTRIBUTE_NODE: 2,
+ TEXT_NODE: 3,
+ CDATA_SECTION_NODE: 4,
+ ENTITY_REFERENCE_NODE: 5,
+ ENTITY_NODE: 6,
+ PROCESSING_INSTRUCTION_NODE: 7,
+ COMMENT_NODE: 8,
+ DOCUMENT_NODE: 9,
+ DOCUMENT_TYPE_NODE: 10,
+ DOCUMENT_FRAGMENT_NODE: 11,
+ NOTATION_NODE: 12
+ });
+}
+
+(function() {
+ var element = this.Element;
+ this.Element = function(tagName, attributes) {
+ attributes = attributes || { };
+ tagName = tagName.toLowerCase();
+ var cache = Element.cache;
+ if (Prototype.Browser.IE && attributes.name) {
+ tagName = '<' + tagName + ' name="' + attributes.name + '">';
+ delete attributes.name;
+ return Element.writeAttribute(document.createElement(tagName), attributes);
+ }
+ if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
+ return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
+ };
+ Object.extend(this.Element, element || { });
+ if (element) this.Element.prototype = element.prototype;
+}).call(window);
+
+Element.cache = { };
+
+Element.Methods = {
+ visible: function(element) {
+ return $(element).style.display != 'none';
+ },
+
+ toggle: function(element) {
+ element = $(element);
+ Element[Element.visible(element) ? 'hide' : 'show'](element);
+ return element;
+ },
+
+ hide: function(element) {
+ element = $(element);
+ element.style.display = 'none';
+ return element;
+ },
+
+ show: function(element) {
+ element = $(element);
+ element.style.display = '';
+ return element;
+ },
+
+ remove: function(element) {
+ element = $(element);
+ element.parentNode.removeChild(element);
+ return element;
+ },
+
+ update: function(element, content) {
+ element = $(element);
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) return element.update().insert(content);
+ content = Object.toHTML(content);
+ element.innerHTML = content.stripScripts();
+ content.evalScripts.bind(content).defer();
+ return element;
+ },
+
+ replace: function(element, content) {
+ element = $(element);
+ if (content && content.toElement) content = content.toElement();
+ else if (!Object.isElement(content)) {
+ content = Object.toHTML(content);
+ var range = element.ownerDocument.createRange();
+ range.selectNode(element);
+ content.evalScripts.bind(content).defer();
+ content = range.createContextualFragment(content.stripScripts());
+ }
+ element.parentNode.replaceChild(content, element);
+ return element;
+ },
+
+ insert: function(element, insertions) {
+ element = $(element);
+
+ if (Object.isString(insertions) || Object.isNumber(insertions) ||
+ Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
+ insertions = {bottom:insertions};
+
+ var content, insert, tagName, childNodes;
+
+ for (var position in insertions) {
+ content = insertions[position];
+ position = position.toLowerCase();
+ insert = Element._insertionTranslations[position];
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ insert(element, content);
+ continue;
+ }
+
+ content = Object.toHTML(content);
+
+ tagName = ((position == 'before' || position == 'after')
+ ? element.parentNode : element).tagName.toUpperCase();
+
+ childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+
+ if (position == 'top' || position == 'after') childNodes.reverse();
+ childNodes.each(insert.curry(element));
+
+ content.evalScripts.bind(content).defer();
+ }
+
+ return element;
+ },
+
+ wrap: function(element, wrapper, attributes) {
+ element = $(element);
+ if (Object.isElement(wrapper))
+ $(wrapper).writeAttribute(attributes || { });
+ else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
+ else wrapper = new Element('div', wrapper);
+ if (element.parentNode)
+ element.parentNode.replaceChild(wrapper, element);
+ wrapper.appendChild(element);
+ return wrapper;
+ },
+
+ inspect: function(element) {
+ element = $(element);
+ var result = '<' + element.tagName.toLowerCase();
+ $H({'id': 'id', 'className': 'class'}).each(function(pair) {
+ var property = pair.first(), attribute = pair.last();
+ var value = (element[property] || '').toString();
+ if (value) result += ' ' + attribute + '=' + value.inspect(true);
+ });
+ return result + '>';
+ },
+
+ recursivelyCollect: function(element, property) {
+ element = $(element);
+ var elements = [];
+ while (element = element[property])
+ if (element.nodeType == 1)
+ elements.push(Element.extend(element));
+ return elements;
+ },
+
+ ancestors: function(element) {
+ return $(element).recursivelyCollect('parentNode');
+ },
+
+ descendants: function(element) {
+ return $(element).select("*");
+ },
+
+ firstDescendant: function(element) {
+ element = $(element).firstChild;
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ return $(element);
+ },
+
+ immediateDescendants: function(element) {
+ if (!(element = $(element).firstChild)) return [];
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ if (element) return [element].concat($(element).nextSiblings());
+ return [];
+ },
+
+ previousSiblings: function(element) {
+ return $(element).recursivelyCollect('previousSibling');
+ },
+
+ nextSiblings: function(element) {
+ return $(element).recursivelyCollect('nextSibling');
+ },
+
+ siblings: function(element) {
+ element = $(element);
+ return element.previousSiblings().reverse().concat(element.nextSiblings());
+ },
+
+ match: function(element, selector) {
+ if (Object.isString(selector))
+ selector = new Selector(selector);
+ return selector.match($(element));
+ },
+
+ up: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(element.parentNode);
+ var ancestors = element.ancestors();
+ return Object.isNumber(expression) ? ancestors[expression] :
+ Selector.findElement(ancestors, expression, index);
+ },
+
+ down: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return element.firstDescendant();
+ return Object.isNumber(expression) ? element.descendants()[expression] :
+ Element.select(element, expression)[index || 0];
+ },
+
+ previous: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
+ var previousSiblings = element.previousSiblings();
+ return Object.isNumber(expression) ? previousSiblings[expression] :
+ Selector.findElement(previousSiblings, expression, index);
+ },
+
+ next: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
+ var nextSiblings = element.nextSiblings();
+ return Object.isNumber(expression) ? nextSiblings[expression] :
+ Selector.findElement(nextSiblings, expression, index);
+ },
+
+ select: function() {
+ var args = $A(arguments), element = $(args.shift());
+ return Selector.findChildElements(element, args);
+ },
+
+ adjacent: function() {
+ var args = $A(arguments), element = $(args.shift());
+ return Selector.findChildElements(element.parentNode, args).without(element);
+ },
+
+ identify: function(element) {
+ element = $(element);
+ var id = element.readAttribute('id'), self = arguments.callee;
+ if (id) return id;
+ do { id = 'anonymous_element_' + self.counter++ } while ($(id));
+ element.writeAttribute('id', id);
+ return id;
+ },
+
+ readAttribute: function(element, name) {
+ element = $(element);
+ if (Prototype.Browser.IE) {
+ var t = Element._attributeTranslations.read;
+ if (t.values[name]) return t.values[name](element, name);
+ if (t.names[name]) name = t.names[name];
+ if (name.include(':')) {
+ return (!element.attributes || !element.attributes[name]) ? null :
+ element.attributes[name].value;
+ }
+ }
+ return element.getAttribute(name);
+ },
+
+ writeAttribute: function(element, name, value) {
+ element = $(element);
+ var attributes = { }, t = Element._attributeTranslations.write;
+
+ if (typeof name == 'object') attributes = name;
+ else attributes[name] = Object.isUndefined(value) ? true : value;
+
+ for (var attr in attributes) {
+ name = t.names[attr] || attr;
+ value = attributes[attr];
+ if (t.values[attr]) name = t.values[attr](element, value);
+ if (value === false || value === null)
+ element.removeAttribute(name);
+ else if (value === true)
+ element.setAttribute(name, name);
+ else element.setAttribute(name, value);
+ }
+ return element;
+ },
+
+ getHeight: function(element) {
+ return $(element).getDimensions().height;
+ },
+
+ getWidth: function(element) {
+ return $(element).getDimensions().width;
+ },
+
+ classNames: function(element) {
+ return new Element.ClassNames(element);
+ },
+
+ hasClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ var elementClassName = element.className;
+ return (elementClassName.length > 0 && (elementClassName == className ||
+ new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
+ },
+
+ addClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ if (!element.hasClassName(className))
+ element.className += (element.className ? ' ' : '') + className;
+ return element;
+ },
+
+ removeClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ element.className = element.className.replace(
+ new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
+ return element;
+ },
+
+ toggleClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ return element[element.hasClassName(className) ?
+ 'removeClassName' : 'addClassName'](className);
+ },
+
+ // removes whitespace-only text node children
+ cleanWhitespace: function(element) {
+ element = $(element);
+ var node = element.firstChild;
+ while (node) {
+ var nextNode = node.nextSibling;
+ if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+ element.removeChild(node);
+ node = nextNode;
+ }
+ return element;
+ },
+
+ empty: function(element) {
+ return $(element).innerHTML.blank();
+ },
+
+ descendantOf: function(element, ancestor) {
+ element = $(element), ancestor = $(ancestor);
+
+ if (element.compareDocumentPosition)
+ return (element.compareDocumentPosition(ancestor) & 8) === 8;
+
+ if (ancestor.contains)
+ return ancestor.contains(element) && ancestor !== element;
+
+ while (element = element.parentNode)
+ if (element == ancestor) return true;
+
+ return false;
+ },
+
+ scrollTo: function(element) {
+ element = $(element);
+ var pos = element.cumulativeOffset();
+ window.scrollTo(pos[0], pos[1]);
+ return element;
+ },
+
+ getStyle: function(element, style) {
+ element = $(element);
+ style = style == 'float' ? 'cssFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value || value == 'auto') {
+ var css = document.defaultView.getComputedStyle(element, null);
+ value = css ? css[style] : null;
+ }
+ if (style == 'opacity') return value ? parseFloat(value) : 1.0;
+ return value == 'auto' ? null : value;
+ },
+
+ getOpacity: function(element) {
+ return $(element).getStyle('opacity');
+ },
+
+ setStyle: function(element, styles) {
+ element = $(element);
+ var elementStyle = element.style, match;
+ if (Object.isString(styles)) {
+ element.style.cssText += ';' + styles;
+ return styles.include('opacity') ?
+ element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
+ }
+ for (var property in styles)
+ if (property == 'opacity') element.setOpacity(styles[property]);
+ else
+ elementStyle[(property == 'float' || property == 'cssFloat') ?
+ (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
+ property] = styles[property];
+
+ return element;
+ },
+
+ setOpacity: function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+ return element;
+ },
+
+ getDimensions: function(element) {
+ element = $(element);
+ var display = element.getStyle('display');
+ if (display != 'none' && display != null) // Safari bug
+ return {width: element.offsetWidth, height: element.offsetHeight};
+
+ // All *Width and *Height properties give 0 on elements with display none,
+ // so enable the element temporarily
+ var els = element.style;
+ var originalVisibility = els.visibility;
+ var originalPosition = els.position;
+ var originalDisplay = els.display;
+ els.visibility = 'hidden';
+ els.position = 'absolute';
+ els.display = 'block';
+ var originalWidth = element.clientWidth;
+ var originalHeight = element.clientHeight;
+ els.display = originalDisplay;
+ els.position = originalPosition;
+ els.visibility = originalVisibility;
+ return {width: originalWidth, height: originalHeight};
+ },
+
+ makePositioned: function(element) {
+ element = $(element);
+ var pos = Element.getStyle(element, 'position');
+ if (pos == 'static' || !pos) {
+ element._madePositioned = true;
+ element.style.position = 'relative';
+ // Opera returns the offset relative to the positioning context, when an
+ // element is position relative but top and left have not been defined
+ if (Prototype.Browser.Opera) {
+ element.style.top = 0;
+ element.style.left = 0;
+ }
+ }
+ return element;
+ },
+
+ undoPositioned: function(element) {
+ element = $(element);
+ if (element._madePositioned) {
+ element._madePositioned = undefined;
+ element.style.position =
+ element.style.top =
+ element.style.left =
+ element.style.bottom =
+ element.style.right = '';
+ }
+ return element;
+ },
+
+ makeClipping: function(element) {
+ element = $(element);
+ if (element._overflow) return element;
+ element._overflow = Element.getStyle(element, 'overflow') || 'auto';
+ if (element._overflow !== 'hidden')
+ element.style.overflow = 'hidden';
+ return element;
+ },
+
+ undoClipping: function(element) {
+ element = $(element);
+ if (!element._overflow) return element;
+ element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
+ element._overflow = null;
+ return element;
+ },
+
+ cumulativeOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ positionedOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ if (element) {
+ if (element.tagName.toUpperCase() == 'BODY') break;
+ var p = Element.getStyle(element, 'position');
+ if (p !== 'static') break;
+ }
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ absolutize: function(element) {
+ element = $(element);
+ if (element.getStyle('position') == 'absolute') return element;
+ // Position.prepare(); // To be done manually by Scripty when it needs it.
+
+ var offsets = element.positionedOffset();
+ var top = offsets[1];
+ var left = offsets[0];
+ var width = element.clientWidth;
+ var height = element.clientHeight;
+
+ element._originalLeft = left - parseFloat(element.style.left || 0);
+ element._originalTop = top - parseFloat(element.style.top || 0);
+ element._originalWidth = element.style.width;
+ element._originalHeight = element.style.height;
+
+ element.style.position = 'absolute';
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.width = width + 'px';
+ element.style.height = height + 'px';
+ return element;
+ },
+
+ relativize: function(element) {
+ element = $(element);
+ if (element.getStyle('position') == 'relative') return element;
+ // Position.prepare(); // To be done manually by Scripty when it needs it.
+
+ element.style.position = 'relative';
+ var top = parseFloat(element.style.top || 0) - (element._originalTop || 0);
+ var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
+
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.height = element._originalHeight;
+ element.style.width = element._originalWidth;
+ return element;
+ },
+
+ cumulativeScrollOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.scrollTop || 0;
+ valueL += element.scrollLeft || 0;
+ element = element.parentNode;
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ getOffsetParent: function(element) {
+ if (element.offsetParent) return $(element.offsetParent);
+ if (element == document.body) return $(element);
+
+ while ((element = element.parentNode) && element != document.body)
+ if (Element.getStyle(element, 'position') != 'static')
+ return $(element);
+
+ return $(document.body);
+ },
+
+ viewportOffset: function(forElement) {
+ var valueT = 0, valueL = 0;
+
+ var element = forElement;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+
+ // Safari fix
+ if (element.offsetParent == document.body &&
+ Element.getStyle(element, 'position') == 'absolute') break;
+
+ } while (element = element.offsetParent);
+
+ element = forElement;
+ do {
+ if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) {
+ valueT -= element.scrollTop || 0;
+ valueL -= element.scrollLeft || 0;
+ }
+ } while (element = element.parentNode);
+
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ clonePosition: function(element, source) {
+ var options = Object.extend({
+ setLeft: true,
+ setTop: true,
+ setWidth: true,
+ setHeight: true,
+ offsetTop: 0,
+ offsetLeft: 0
+ }, arguments[2] || { });
+
+ // find page position of source
+ source = $(source);
+ var p = source.viewportOffset();
+
+ // find coordinate system to use
+ element = $(element);
+ var delta = [0, 0];
+ var parent = null;
+ // delta [0,0] will do fine with position: fixed elements,
+ // position:absolute needs offsetParent deltas
+ if (Element.getStyle(element, 'position') == 'absolute') {
+ parent = element.getOffsetParent();
+ delta = parent.viewportOffset();
+ }
+
+ // correct by body offsets (fixes Safari)
+ if (parent == document.body) {
+ delta[0] -= document.body.offsetLeft;
+ delta[1] -= document.body.offsetTop;
+ }
+
+ // set position
+ if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px';
+ if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px';
+ if (options.setWidth) element.style.width = source.offsetWidth + 'px';
+ if (options.setHeight) element.style.height = source.offsetHeight + 'px';
+ return element;
+ }
+};
+
+Element.Methods.identify.counter = 1;
+
+Object.extend(Element.Methods, {
+ getElementsBySelector: Element.Methods.select,
+ childElements: Element.Methods.immediateDescendants
+});
+
+Element._attributeTranslations = {
+ write: {
+ names: {
+ className: 'class',
+ htmlFor: 'for'
+ },
+ values: { }
+ }
+};
+
+if (Prototype.Browser.Opera) {
+ Element.Methods.getStyle = Element.Methods.getStyle.wrap(
+ function(proceed, element, style) {
+ switch (style) {
+ case 'left': case 'top': case 'right': case 'bottom':
+ if (proceed(element, 'position') === 'static') return null;
+ case 'height': case 'width':
+ // returns '0px' for hidden elements; we want it to return null
+ if (!Element.visible(element)) return null;
+
+ // returns the border-box dimensions rather than the content-box
+ // dimensions, so we subtract padding and borders from the value
+ var dim = parseInt(proceed(element, style), 10);
+
+ if (dim !== element['offset' + style.capitalize()])
+ return dim + 'px';
+
+ var properties;
+ if (style === 'height') {
+ properties = ['border-top-width', 'padding-top',
+ 'padding-bottom', 'border-bottom-width'];
+ }
+ else {
+ properties = ['border-left-width', 'padding-left',
+ 'padding-right', 'border-right-width'];
+ }
+ return properties.inject(dim, function(memo, property) {
+ var val = proceed(element, property);
+ return val === null ? memo : memo - parseInt(val, 10);
+ }) + 'px';
+ default: return proceed(element, style);
+ }
+ }
+ );
+
+ Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(
+ function(proceed, element, attribute) {
+ if (attribute === 'title') return element.title;
+ return proceed(element, attribute);
+ }
+ );
+}
+
+else if (Prototype.Browser.IE) {
+ // IE doesn't report offsets correctly for static elements, so we change them
+ // to "relative" to get the values, then change them back.
+ Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
+ function(proceed, element) {
+ element = $(element);
+ // IE throws an error if element is not in document
+ try { element.offsetParent }
+ catch(e) { return $(document.body) }
+ var position = element.getStyle('position');
+ if (position !== 'static') return proceed(element);
+ element.setStyle({ position: 'relative' });
+ var value = proceed(element);
+ element.setStyle({ position: position });
+ return value;
+ }
+ );
+
+ $w('positionedOffset viewportOffset').each(function(method) {
+ Element.Methods[method] = Element.Methods[method].wrap(
+ function(proceed, element) {
+ element = $(element);
+ try { element.offsetParent }
+ catch(e) { return Element._returnOffset(0,0) }
+ var position = element.getStyle('position');
+ if (position !== 'static') return proceed(element);
+ // Trigger hasLayout on the offset parent so that IE6 reports
+ // accurate offsetTop and offsetLeft values for position: fixed.
+ var offsetParent = element.getOffsetParent();
+ if (offsetParent && offsetParent.getStyle('position') === 'fixed')
+ offsetParent.setStyle({ zoom: 1 });
+ element.setStyle({ position: 'relative' });
+ var value = proceed(element);
+ element.setStyle({ position: position });
+ return value;
+ }
+ );
+ });
+
+ Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
+ function(proceed, element) {
+ try { element.offsetParent }
+ catch(e) { return Element._returnOffset(0,0) }
+ return proceed(element);
+ }
+ );
+
+ Element.Methods.getStyle = function(element, style) {
+ element = $(element);
+ style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value && element.currentStyle) value = element.currentStyle[style];
+
+ if (style == 'opacity') {
+ if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+ if (value[1]) return parseFloat(value[1]) / 100;
+ return 1.0;
+ }
+
+ if (value == 'auto') {
+ if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
+ return element['offset' + style.capitalize()] + 'px';
+ return null;
+ }
+ return value;
+ };
+
+ Element.Methods.setOpacity = function(element, value) {
+ function stripAlpha(filter){
+ return filter.replace(/alpha\([^\)]*\)/gi,'');
+ }
+ element = $(element);
+ var currentStyle = element.currentStyle;
+ if ((currentStyle && !currentStyle.hasLayout) ||
+ (!currentStyle && element.style.zoom == 'normal'))
+ element.style.zoom = 1;
+
+ var filter = element.getStyle('filter'), style = element.style;
+ if (value == 1 || value === '') {
+ (filter = stripAlpha(filter)) ?
+ style.filter = filter : style.removeAttribute('filter');
+ return element;
+ } else if (value < 0.00001) value = 0;
+ style.filter = stripAlpha(filter) +
+ 'alpha(opacity=' + (value * 100) + ')';
+ return element;
+ };
+
+ Element._attributeTranslations = {
+ read: {
+ names: {
+ 'class': 'className',
+ 'for': 'htmlFor'
+ },
+ values: {
+ _getAttr: function(element, attribute) {
+ return element.getAttribute(attribute, 2);
+ },
+ _getAttrNode: function(element, attribute) {
+ var node = element.getAttributeNode(attribute);
+ return node ? node.value : "";
+ },
+ _getEv: function(element, attribute) {
+ attribute = element.getAttribute(attribute);
+ return attribute ? attribute.toString().slice(23, -2) : null;
+ },
+ _flag: function(element, attribute) {
+ return $(element).hasAttribute(attribute) ? attribute : null;
+ },
+ style: function(element) {
+ return element.style.cssText.toLowerCase();
+ },
+ title: function(element) {
+ return element.title;
+ }
+ }
+ }
+ };
+
+ Element._attributeTranslations.write = {
+ names: Object.extend({
+ cellpadding: 'cellPadding',
+ cellspacing: 'cellSpacing'
+ }, Element._attributeTranslations.read.names),
+ values: {
+ checked: function(element, value) {
+ element.checked = !!value;
+ },
+
+ style: function(element, value) {
+ element.style.cssText = value ? value : '';
+ }
+ }
+ };
+
+ Element._attributeTranslations.has = {};
+
+ $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
+ 'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
+ Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
+ Element._attributeTranslations.has[attr.toLowerCase()] = attr;
+ });
+
+ (function(v) {
+ Object.extend(v, {
+ href: v._getAttr,
+ src: v._getAttr,
+ type: v._getAttr,
+ action: v._getAttrNode,
+ disabled: v._flag,
+ checked: v._flag,
+ readonly: v._flag,
+ multiple: v._flag,
+ onload: v._getEv,
+ onunload: v._getEv,
+ onclick: v._getEv,
+ ondblclick: v._getEv,
+ onmousedown: v._getEv,
+ onmouseup: v._getEv,
+ onmouseover: v._getEv,
+ onmousemove: v._getEv,
+ onmouseout: v._getEv,
+ onfocus: v._getEv,
+ onblur: v._getEv,
+ onkeypress: v._getEv,
+ onkeydown: v._getEv,
+ onkeyup: v._getEv,
+ onsubmit: v._getEv,
+ onreset: v._getEv,
+ onselect: v._getEv,
+ onchange: v._getEv
+ });
+ })(Element._attributeTranslations.read.values);
+}
+
+else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1) ? 0.999999 :
+ (value === '') ? '' : (value < 0.00001) ? 0 : value;
+ return element;
+ };
+}
+
+else if (Prototype.Browser.WebKit) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+
+ if (value == 1)
+ if(element.tagName.toUpperCase() == 'IMG' && element.width) {
+ element.width++; element.width--;
+ } else try {
+ var n = document.createTextNode(' ');
+ element.appendChild(n);
+ element.removeChild(n);
+ } catch (e) { }
+
+ return element;
+ };
+
+ // Safari returns margins on body which is incorrect if the child is absolutely
+ // positioned. For performance reasons, redefine Element#cumulativeOffset for
+ // KHTML/WebKit only.
+ Element.Methods.cumulativeOffset = function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ if (element.offsetParent == document.body)
+ if (Element.getStyle(element, 'position') == 'absolute') break;
+
+ element = element.offsetParent;
+ } while (element);
+
+ return Element._returnOffset(valueL, valueT);
+ };
+}
+
+if (Prototype.Browser.IE || Prototype.Browser.Opera) {
+ // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements
+ Element.Methods.update = function(element, content) {
+ element = $(element);
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) return element.update().insert(content);
+
+ content = Object.toHTML(content);
+ var tagName = element.tagName.toUpperCase();
+
+ if (tagName in Element._insertionTranslations.tags) {
+ $A(element.childNodes).each(function(node) { element.removeChild(node) });
+ Element._getContentFromAnonymousElement(tagName, content.stripScripts())
+ .each(function(node) { element.appendChild(node) });
+ }
+ else element.innerHTML = content.stripScripts();
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ };
+}
+
+if ('outerHTML' in document.createElement('div')) {
+ Element.Methods.replace = function(element, content) {
+ element = $(element);
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ element.parentNode.replaceChild(content, element);
+ return element;
+ }
+
+ content = Object.toHTML(content);
+ var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
+
+ if (Element._insertionTranslations.tags[tagName]) {
+ var nextSibling = element.next();
+ var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+ parent.removeChild(element);
+ if (nextSibling)
+ fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
+ else
+ fragments.each(function(node) { parent.appendChild(node) });
+ }
+ else element.outerHTML = content.stripScripts();
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ };
+}
+
+Element._returnOffset = function(l, t) {
+ var result = [l, t];
+ result.left = l;
+ result.top = t;
+ return result;
+};
+
+Element._getContentFromAnonymousElement = function(tagName, html) {
+ var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
+ if (t) {
+ div.innerHTML = t[0] + html + t[1];
+ t[2].times(function() { div = div.firstChild });
+ } else div.innerHTML = html;
+ return $A(div.childNodes);
+};
+
+Element._insertionTranslations = {
+ before: function(element, node) {
+ element.parentNode.insertBefore(node, element);
+ },
+ top: function(element, node) {
+ element.insertBefore(node, element.firstChild);
+ },
+ bottom: function(element, node) {
+ element.appendChild(node);
+ },
+ after: function(element, node) {
+ element.parentNode.insertBefore(node, element.nextSibling);
+ },
+ tags: {
+ TABLE: ['<table>', '</table>', 1],
+ TBODY: ['<table><tbody>', '</tbody></table>', 2],
+ TR: ['<table><tbody><tr>', '</tr></tbody></table>', 3],
+ TD: ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
+ SELECT: ['<select>', '</select>', 1]
+ }
+};
+
+(function() {
+ Object.extend(this.tags, {
+ THEAD: this.tags.TBODY,
+ TFOOT: this.tags.TBODY,
+ TH: this.tags.TD
+ });
+}).call(Element._insertionTranslations);
+
+Element.Methods.Simulated = {
+ hasAttribute: function(element, attribute) {
+ attribute = Element._attributeTranslations.has[attribute] || attribute;
+ var node = $(element).getAttributeNode(attribute);
+ return !!(node && node.specified);
+ }
+};
+
+Element.Methods.ByTag = { };
+
+Object.extend(Element, Element.Methods);
+
+if (!Prototype.BrowserFeatures.ElementExtensions &&
+ document.createElement('div')['__proto__']) {
+ window.HTMLElement = { };
+ window.HTMLElement.prototype = document.createElement('div')['__proto__'];
+ Prototype.BrowserFeatures.ElementExtensions = true;
+}
+
+Element.extend = (function() {
+ if (Prototype.BrowserFeatures.SpecificElementExtensions)
+ return Prototype.K;
+
+ var Methods = { }, ByTag = Element.Methods.ByTag;
+
+ var extend = Object.extend(function(element) {
+ if (!element || element._extendedByPrototype ||
+ element.nodeType != 1 || element == window) return element;
+
+ var methods = Object.clone(Methods),
+ tagName = element.tagName.toUpperCase(), property, value;
+
+ // extend methods for specific tags
+ if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
+
+ for (property in methods) {
+ value = methods[property];
+ if (Object.isFunction(value) && !(property in element))
+ element[property] = value.methodize();
+ }
+
+ element._extendedByPrototype = Prototype.emptyFunction;
+ return element;
+
+ }, {
+ refresh: function() {
+ // extend methods for all tags (Safari doesn't need this)
+ if (!Prototype.BrowserFeatures.ElementExtensions) {
+ Object.extend(Methods, Element.Methods);
+ Object.extend(Methods, Element.Methods.Simulated);
+ }
+ }
+ });
+
+ extend.refresh();
+ return extend;
+})();
+
+Element.hasAttribute = function(element, attribute) {
+ if (element.hasAttribute) return element.hasAttribute(attribute);
+ return Element.Methods.Simulated.hasAttribute(element, attribute);
+};
+
+Element.addMethods = function(methods) {
+ var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
+
+ if (!methods) {
+ Object.extend(Form, Form.Methods);
+ Object.extend(Form.Element, Form.Element.Methods);
+ Object.extend(Element.Methods.ByTag, {
+ "FORM": Object.clone(Form.Methods),
+ "INPUT": Object.clone(Form.Element.Methods),
+ "SELECT": Object.clone(Form.Element.Methods),
+ "TEXTAREA": Object.clone(Form.Element.Methods)
+ });
+ }
+
+ if (arguments.length == 2) {
+ var tagName = methods;
+ methods = arguments[1];
+ }
+
+ if (!tagName) Object.extend(Element.Methods, methods || { });
+ else {
+ if (Object.isArray(tagName)) tagName.each(extend);
+ else extend(tagName);
+ }
+
+ function extend(tagName) {
+ tagName = tagName.toUpperCase();
+ if (!Element.Methods.ByTag[tagName])
+ Element.Methods.ByTag[tagName] = { };
+ Object.extend(Element.Methods.ByTag[tagName], methods);
+ }
+
+ function copy(methods, destination, onlyIfAbsent) {
+ onlyIfAbsent = onlyIfAbsent || false;
+ for (var property in methods) {
+ var value = methods[property];
+ if (!Object.isFunction(value)) continue;
+ if (!onlyIfAbsent || !(property in destination))
+ destination[property] = value.methodize();
+ }
+ }
+
+ function findDOMClass(tagName) {
+ var klass;
+ var trans = {
+ "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
+ "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
+ "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
+ "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
+ "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
+ "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
+ "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
+ "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
+ "FrameSet", "IFRAME": "IFrame"
+ };
+ if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName.capitalize() + 'Element';
+ if (window[klass]) return window[klass];
+
+ window[klass] = { };
+ window[klass].prototype = document.createElement(tagName)['__proto__'];
+ return window[klass];
+ }
+
+ if (F.ElementExtensions) {
+ copy(Element.Methods, HTMLElement.prototype);
+ copy(Element.Methods.Simulated, HTMLElement.prototype, true);
+ }
+
+ if (F.SpecificElementExtensions) {
+ for (var tag in Element.Methods.ByTag) {
+ var klass = findDOMClass(tag);
+ if (Object.isUndefined(klass)) continue;
+ copy(T[tag], klass.prototype);
+ }
+ }
+
+ Object.extend(Element, Element.Methods);
+ delete Element.ByTag;
+
+ if (Element.extend.refresh) Element.extend.refresh();
+ Element.cache = { };
+};
+
+document.viewport = {
+ getDimensions: function() {
+ var dimensions = { }, B = Prototype.Browser;
+ $w('width height').each(function(d) {
+ var D = d.capitalize();
+ if (B.WebKit && !document.evaluate) {
+ // Safari <3.0 needs self.innerWidth/Height
+ dimensions[d] = self['inner' + D];
+ } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) {
+ // Opera <9.5 needs document.body.clientWidth/Height
+ dimensions[d] = document.body['client' + D]
+ } else {
+ dimensions[d] = document.documentElement['client' + D];
+ }
+ });
+ return dimensions;
+ },
+
+ getWidth: function() {
+ return this.getDimensions().width;
+ },
+
+ getHeight: function() {
+ return this.getDimensions().height;
+ },
+
+ getScrollOffsets: function() {
+ return Element._returnOffset(
+ window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
+ window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
+ }
+};
+/* Portions of the Selector class are derived from Jack Slocum's DomQuery,
+ * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
+ * license. Please see http://www.yui-ext.com/ for more information. */
+
+var Selector = Class.create({
+ initialize: function(expression) {
+ this.expression = expression.strip();
+
+ if (this.shouldUseSelectorsAPI()) {
+ this.mode = 'selectorsAPI';
+ } else if (this.shouldUseXPath()) {
+ this.mode = 'xpath';
+ this.compileXPathMatcher();
+ } else {
+ this.mode = "normal";
+ this.compileMatcher();
+ }
+
+ },
+
+ shouldUseXPath: function() {
+ if (!Prototype.BrowserFeatures.XPath) return false;
+
+ var e = this.expression;
+
+ // Safari 3 chokes on :*-of-type and :empty
+ if (Prototype.Browser.WebKit &&
+ (e.include("-of-type") || e.include(":empty")))
+ return false;
+
+ // XPath can't do namespaced attributes, nor can it read
+ // the "checked" property from DOM nodes
+ if ((/(\[[\w-]*?:|:checked)/).test(e))
+ return false;
+
+ return true;
+ },
+
+ shouldUseSelectorsAPI: function() {
+ if (!Prototype.BrowserFeatures.SelectorsAPI) return false;
+
+ if (!Selector._div) Selector._div = new Element('div');
+
+ // Make sure the browser treats the selector as valid. Test on an
+ // isolated element to minimize cost of this check.
+ try {
+ Selector._div.querySelector(this.expression);
+ } catch(e) {
+ return false;
+ }
+
+ return true;
+ },
+
+ compileMatcher: function() {
+ var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
+ c = Selector.criteria, le, p, m;
+
+ if (Selector._cache[e]) {
+ this.matcher = Selector._cache[e];
+ return;
+ }
+
+ this.matcher = ["this.matcher = function(root) {",
+ "var r = root, h = Selector.handlers, c = false, n;"];
+
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ p = ps[i];
+ if (m = e.match(p)) {
+ this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
+ new Template(c[i]).evaluate(m));
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+
+ this.matcher.push("return h.unique(n);\n}");
+ eval(this.matcher.join('\n'));
+ Selector._cache[this.expression] = this.matcher;
+ },
+
+ compileXPathMatcher: function() {
+ var e = this.expression, ps = Selector.patterns,
+ x = Selector.xpath, le, m;
+
+ if (Selector._cache[e]) {
+ this.xpath = Selector._cache[e]; return;
+ }
+
+ this.matcher = ['.//*'];
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ if (m = e.match(ps[i])) {
+ this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :
+ new Template(x[i]).evaluate(m));
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+
+ this.xpath = this.matcher.join('');
+ Selector._cache[this.expression] = this.xpath;
+ },
+
+ findElements: function(root) {
+ root = root || document;
+ var e = this.expression, results;
+
+ switch (this.mode) {
+ case 'selectorsAPI':
+ // querySelectorAll queries document-wide, then filters to descendants
+ // of the context element. That's not what we want.
+ // Add an explicit context to the selector if necessary.
+ if (root !== document) {
+ var oldId = root.id, id = $(root).identify();
+ e = "#" + id + " " + e;
+ }
+
+ results = $A(root.querySelectorAll(e)).map(Element.extend);
+ root.id = oldId;
+
+ return results;
+ case 'xpath':
+ return document._getElementsByXPath(this.xpath, root);
+ default:
+ return this.matcher(root);
+ }
+ },
+
+ match: function(element) {
+ this.tokens = [];
+
+ var e = this.expression, ps = Selector.patterns, as = Selector.assertions;
+ var le, p, m;
+
+ while (e && le !== e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ p = ps[i];
+ if (m = e.match(p)) {
+ // use the Selector.assertions methods unless the selector
+ // is too complex.
+ if (as[i]) {
+ this.tokens.push([i, Object.clone(m)]);
+ e = e.replace(m[0], '');
+ } else {
+ // reluctantly do a document-wide search
+ // and look for a match in the array
+ return this.findElements(document).include(element);
+ }
+ }
+ }
+ }
+
+ var match = true, name, matches;
+ for (var i = 0, token; token = this.tokens[i]; i++) {
+ name = token[0], matches = token[1];
+ if (!Selector.assertions[name](element, matches)) {
+ match = false; break;
+ }
+ }
+
+ return match;
+ },
+
+ toString: function() {
+ return this.expression;
+ },
+
+ inspect: function() {
+ return "#<Selector:" + this.expression.inspect() + ">";
+ }
+});
+
+Object.extend(Selector, {
+ _cache: { },
+
+ xpath: {
+ descendant: "//*",
+ child: "/*",
+ adjacent: "/following-sibling::*[1]",
+ laterSibling: '/following-sibling::*',
+ tagName: function(m) {
+ if (m[1] == '*') return '';
+ return "[local-name()='" + m[1].toLowerCase() +
+ "' or local-name()='" + m[1].toUpperCase() + "']";
+ },
+ className: "[contains(concat(' ', @class, ' '), ' #{1} ')]",
+ id: "[@id='#{1}']",
+ attrPresence: function(m) {
+ m[1] = m[1].toLowerCase();
+ return new Template("[@#{1}]").evaluate(m);
+ },
+ attr: function(m) {
+ m[1] = m[1].toLowerCase();
+ m[3] = m[5] || m[6];
+ return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
+ },
+ pseudo: function(m) {
+ var h = Selector.xpath.pseudos[m[1]];
+ if (!h) return '';
+ if (Object.isFunction(h)) return h(m);
+ return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
+ },
+ operators: {
+ '=': "[@#{1}='#{3}']",
+ '!=': "[@#{1}!='#{3}']",
+ '^=': "[starts-with(@#{1}, '#{3}')]",
+ '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
+ '*=': "[contains(@#{1}, '#{3}')]",
+ '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
+ '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
+ },
+ pseudos: {
+ 'first-child': '[not(preceding-sibling::*)]',
+ 'last-child': '[not(following-sibling::*)]',
+ 'only-child': '[not(preceding-sibling::* or following-sibling::*)]',
+ 'empty': "[count(*) = 0 and (count(text()) = 0)]",
+ 'checked': "[@checked]",
+ 'disabled': "[(@disabled) and (@type!='hidden')]",
+ 'enabled': "[not(@disabled) and (@type!='hidden')]",
+ 'not': function(m) {
+ var e = m[6], p = Selector.patterns,
+ x = Selector.xpath, le, v;
+
+ var exclusion = [];
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in p) {
+ if (m = e.match(p[i])) {
+ v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m);
+ exclusion.push("(" + v.substring(1, v.length - 1) + ")");
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+ return "[not(" + exclusion.join(" and ") + ")]";
+ },
+ 'nth-child': function(m) {
+ return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
+ },
+ 'nth-last-child': function(m) {
+ return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
+ },
+ 'nth-of-type': function(m) {
+ return Selector.xpath.pseudos.nth("position() ", m);
+ },
+ 'nth-last-of-type': function(m) {
+ return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
+ },
+ 'first-of-type': function(m) {
+ m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
+ },
+ 'last-of-type': function(m) {
+ m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
+ },
+ 'only-of-type': function(m) {
+ var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
+ },
+ nth: function(fragment, m) {
+ var mm, formula = m[6], predicate;
+ if (formula == 'even') formula = '2n+0';
+ if (formula == 'odd') formula = '2n+1';
+ if (mm = formula.match(/^(\d+)$/)) // digit only
+ return '[' + fragment + "= " + mm[1] + ']';
+ if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+ if (mm[1] == "-") mm[1] = -1;
+ var a = mm[1] ? Number(mm[1]) : 1;
+ var b = mm[2] ? Number(mm[2]) : 0;
+ predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
+ "((#{fragment} - #{b}) div #{a} >= 0)]";
+ return new Template(predicate).evaluate({
+ fragment: fragment, a: a, b: b });
+ }
+ }
+ }
+ },
+
+ criteria: {
+ tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
+ className: 'n = h.className(n, r, "#{1}", c); c = false;',
+ id: 'n = h.id(n, r, "#{1}", c); c = false;',
+ attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
+ attr: function(m) {
+ m[3] = (m[5] || m[6]);
+ return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
+ },
+ pseudo: function(m) {
+ if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
+ return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
+ },
+ descendant: 'c = "descendant";',
+ child: 'c = "child";',
+ adjacent: 'c = "adjacent";',
+ laterSibling: 'c = "laterSibling";'
+ },
+
+ patterns: {
+ // combinators must be listed first
+ // (and descendant needs to be last combinator)
+ laterSibling: /^\s*~\s*/,
+ child: /^\s*>\s*/,
+ adjacent: /^\s*\+\s*/,
+ descendant: /^\s/,
+
+ // selectors follow
+ tagName: /^\s*(\*|[\w\-]+)(\b|$)?/,
+ id: /^#([\w\-\*]+)(\b|$)/,
+ className: /^\.([\w\-\*]+)(\b|$)/,
+ pseudo:
+/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,
+ attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/,
+ attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
+ },
+
+ // for Selector.match and Element#match
+ assertions: {
+ tagName: function(element, matches) {
+ return matches[1].toUpperCase() == element.tagName.toUpperCase();
+ },
+
+ className: function(element, matches) {
+ return Element.hasClassName(element, matches[1]);
+ },
+
+ id: function(element, matches) {
+ return element.id === matches[1];
+ },
+
+ attrPresence: function(element, matches) {
+ return Element.hasAttribute(element, matches[1]);
+ },
+
+ attr: function(element, matches) {
+ var nodeValue = Element.readAttribute(element, matches[1]);
+ return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
+ }
+ },
+
+ handlers: {
+ // UTILITY FUNCTIONS
+ // joins two collections
+ concat: function(a, b) {
+ for (var i = 0, node; node = b[i]; i++)
+ a.push(node);
+ return a;
+ },
+
+ // marks an array of nodes for counting
+ mark: function(nodes) {
+ var _true = Prototype.emptyFunction;
+ for (var i = 0, node; node = nodes[i]; i++)
+ node._countedByPrototype = _true;
+ return nodes;
+ },
+
+ unmark: function(nodes) {
+ for (var i = 0, node; node = nodes[i]; i++)
+ node._countedByPrototype = undefined;
+ return nodes;
+ },
+
+ // mark each child node with its position (for nth calls)
+ // "ofType" flag indicates whether we're indexing for nth-of-type
+ // rather than nth-child
+ index: function(parentNode, reverse, ofType) {
+ parentNode._countedByPrototype = Prototype.emptyFunction;
+ if (reverse) {
+ for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
+ var node = nodes[i];
+ if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
+ }
+ } else {
+ for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
+ if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
+ }
+ },
+
+ // filters out duplicates and extends all nodes
+ unique: function(nodes) {
+ if (nodes.length == 0) return nodes;
+ var results = [], n;
+ for (var i = 0, l = nodes.length; i < l; i++)
+ if (!(n = nodes[i])._countedByPrototype) {
+ n._countedByPrototype = Prototype.emptyFunction;
+ results.push(Element.extend(n));
+ }
+ return Selector.handlers.unmark(results);
+ },
+
+ // COMBINATOR FUNCTIONS
+ descendant: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ h.concat(results, node.getElementsByTagName('*'));
+ return results;
+ },
+
+ child: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ for (var j = 0, child; child = node.childNodes[j]; j++)
+ if (child.nodeType == 1 && child.tagName != '!') results.push(child);
+ }
+ return results;
+ },
+
+ adjacent: function(nodes) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ var next = this.nextElementSibling(node);
+ if (next) results.push(next);
+ }
+ return results;
+ },
+
+ laterSibling: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ h.concat(results, Element.nextSiblings(node));
+ return results;
+ },
+
+ nextElementSibling: function(node) {
+ while (node = node.nextSibling)
+ if (node.nodeType == 1) return node;
+ return null;
+ },
+
+ previousElementSibling: function(node) {
+ while (node = node.previousSibling)
+ if (node.nodeType == 1) return node;
+ return null;
+ },
+
+ // TOKEN FUNCTIONS
+ tagName: function(nodes, root, tagName, combinator) {
+ var uTagName = tagName.toUpperCase();
+ var results = [], h = Selector.handlers;
+ if (nodes) {
+ if (combinator) {
+ // fastlane for ordinary descendant combinators
+ if (combinator == "descendant") {
+ for (var i = 0, node; node = nodes[i]; i++)
+ h.concat(results, node.getElementsByTagName(tagName));
+ return results;
+ } else nodes = this[combinator](nodes);
+ if (tagName == "*") return nodes;
+ }
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.tagName.toUpperCase() === uTagName) results.push(node);
+ return results;
+ } else return root.getElementsByTagName(tagName);
+ },
+
+ id: function(nodes, root, id, combinator) {
+ var targetNode = $(id), h = Selector.handlers;
+ if (!targetNode) return [];
+ if (!nodes && root == document) return [targetNode];
+ if (nodes) {
+ if (combinator) {
+ if (combinator == 'child') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (targetNode.parentNode == node) return [targetNode];
+ } else if (combinator == 'descendant') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Element.descendantOf(targetNode, node)) return [targetNode];
+ } else if (combinator == 'adjacent') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Selector.handlers.previousElementSibling(targetNode) == node)
+ return [targetNode];
+ } else nodes = h[combinator](nodes);
+ }
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node == targetNode) return [targetNode];
+ return [];
+ }
+ return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
+ },
+
+ className: function(nodes, root, className, combinator) {
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ return Selector.handlers.byClassName(nodes, root, className);
+ },
+
+ byClassName: function(nodes, root, className) {
+ if (!nodes) nodes = Selector.handlers.descendant([root]);
+ var needle = ' ' + className + ' ';
+ for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
+ nodeClassName = node.className;
+ if (nodeClassName.length == 0) continue;
+ if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
+ results.push(node);
+ }
+ return results;
+ },
+
+ attrPresence: function(nodes, root, attr, combinator) {
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ var results = [];
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Element.hasAttribute(node, attr)) results.push(node);
+ return results;
+ },
+
+ attr: function(nodes, root, attr, value, operator, combinator) {
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ var handler = Selector.operators[operator], results = [];
+ for (var i = 0, node; node = nodes[i]; i++) {
+ var nodeValue = Element.readAttribute(node, attr);
+ if (nodeValue === null) continue;
+ if (handler(nodeValue, value)) results.push(node);
+ }
+ return results;
+ },
+
+ pseudo: function(nodes, name, value, root, combinator) {
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ return Selector.pseudos[name](nodes, value, root);
+ }
+ },
+
+ pseudos: {
+ 'first-child': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ if (Selector.handlers.previousElementSibling(node)) continue;
+ results.push(node);
+ }
+ return results;
+ },
+ 'last-child': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ if (Selector.handlers.nextElementSibling(node)) continue;
+ results.push(node);
+ }
+ return results;
+ },
+ 'only-child': function(nodes, value, root) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
+ results.push(node);
+ return results;
+ },
+ 'nth-child': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root);
+ },
+ 'nth-last-child': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, true);
+ },
+ 'nth-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, false, true);
+ },
+ 'nth-last-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, true, true);
+ },
+ 'first-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, "1", root, false, true);
+ },
+ 'last-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, "1", root, true, true);
+ },
+ 'only-of-type': function(nodes, formula, root) {
+ var p = Selector.pseudos;
+ return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
+ },
+
+ // handles the an+b logic
+ getIndices: function(a, b, total) {
+ if (a == 0) return b > 0 ? [b] : [];
+ return $R(1, total).inject([], function(memo, i) {
+ if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
+ return memo;
+ });
+ },
+
+ // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type
+ nth: function(nodes, formula, root, reverse, ofType) {
+ if (nodes.length == 0) return [];
+ if (formula == 'even') formula = '2n+0';
+ if (formula == 'odd') formula = '2n+1';
+ var h = Selector.handlers, results = [], indexed = [], m;
+ h.mark(nodes);
+ for (var i = 0, node; node = nodes[i]; i++) {
+ if (!node.parentNode._countedByPrototype) {
+ h.index(node.parentNode, reverse, ofType);
+ indexed.push(node.parentNode);
+ }
+ }
+ if (formula.match(/^\d+$/)) { // just a number
+ formula = Number(formula);
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.nodeIndex == formula) results.push(node);
+ } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+ if (m[1] == "-") m[1] = -1;
+ var a = m[1] ? Number(m[1]) : 1;
+ var b = m[2] ? Number(m[2]) : 0;
+ var indices = Selector.pseudos.getIndices(a, b, nodes.length);
+ for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
+ for (var j = 0; j < l; j++)
+ if (node.nodeIndex == indices[j]) results.push(node);
+ }
+ }
+ h.unmark(nodes);
+ h.unmark(indexed);
+ return results;
+ },
+
+ 'empty': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ // IE treats comments as element nodes
+ if (node.tagName == '!' || node.firstChild) continue;
+ results.push(node);
+ }
+ return results;
+ },
+
+ 'not': function(nodes, selector, root) {
+ var h = Selector.handlers, selectorType, m;
+ var exclusions = new Selector(selector).findElements(root);
+ h.mark(exclusions);
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!node._countedByPrototype) results.push(node);
+ h.unmark(exclusions);
+ return results;
+ },
+
+ 'enabled': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!node.disabled && (!node.type || node.type !== 'hidden'))
+ results.push(node);
+ return results;
+ },
+
+ 'disabled': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (node.disabled) results.push(node);
+ return results;
+ },
+
+ 'checked': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (node.checked) results.push(node);
+ return results;
+ }
+ },
+
+ operators: {
+ '=': function(nv, v) { return nv == v; },
+ '!=': function(nv, v) { return nv != v; },
+ '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); },
+ '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); },
+ '*=': function(nv, v) { return nv == v || nv && nv.include(v); },
+ '$=': function(nv, v) { return nv.endsWith(v); },
+ '*=': function(nv, v) { return nv.include(v); },
+ '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
+ '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() +
+ '-').include('-' + (v || "").toUpperCase() + '-'); }
+ },
+
+ split: function(expression) {
+ var expressions = [];
+ expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
+ expressions.push(m[1].strip());
+ });
+ return expressions;
+ },
+
+ matchElements: function(elements, expression) {
+ var matches = $$(expression), h = Selector.handlers;
+ h.mark(matches);
+ for (var i = 0, results = [], element; element = elements[i]; i++)
+ if (element._countedByPrototype) results.push(element);
+ h.unmark(matches);
+ return results;
+ },
+
+ findElement: function(elements, expression, index) {
+ if (Object.isNumber(expression)) {
+ index = expression; expression = false;
+ }
+ return Selector.matchElements(elements, expression || '*')[index || 0];
+ },
+
+ findChildElements: function(element, expressions) {
+ expressions = Selector.split(expressions.join(','));
+ var results = [], h = Selector.handlers;
+ for (var i = 0, l = expressions.length, selector; i < l; i++) {
+ selector = new Selector(expressions[i].strip());
+ h.concat(results, selector.findElements(element));
+ }
+ return (l > 1) ? h.unique(results) : results;
+ }
+});
+
+if (Prototype.Browser.IE) {
+ Object.extend(Selector.handlers, {
+ // IE returns comment nodes on getElementsByTagName("*").
+ // Filter them out.
+ concat: function(a, b) {
+ for (var i = 0, node; node = b[i]; i++)
+ if (node.tagName !== "!") a.push(node);
+ return a;
+ },
+
+ // IE improperly serializes _countedByPrototype in (inner|outer)HTML.
+ unmark: function(nodes) {
+ for (var i = 0, node; node = nodes[i]; i++)
+ node.removeAttribute('_countedByPrototype');
+ return nodes;
+ }
+ });
+}
+
+function $$() {
+ return Selector.findChildElements(document, $A(arguments));
+}
+var Form = {
+ reset: function(form) {
+ $(form).reset();
+ return form;
+ },
+
+ serializeElements: function(elements, options) {
+ if (typeof options != 'object') options = { hash: !!options };
+ else if (Object.isUndefined(options.hash)) options.hash = true;
+ var key, value, submitted = false, submit = options.submit;
+
+ var data = elements.inject({ }, function(result, element) {
+ if (!element.disabled && element.name) {
+ key = element.name; value = $(element).getValue();
+ if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
+ submit !== false && (!submit || key == submit) && (submitted = true)))) {
+ if (key in result) {
+ // a key is already present; construct an array of values
+ if (!Object.isArray(result[key])) result[key] = [result[key]];
+ result[key].push(value);
+ }
+ else result[key] = value;
+ }
+ }
+ return result;
+ });
+
+ return options.hash ? data : Object.toQueryString(data);
+ }
+};
+
+Form.Methods = {
+ serialize: function(form, options) {
+ return Form.serializeElements(Form.getElements(form), options);
+ },
+
+ getElements: function(form) {
+ return $A($(form).getElementsByTagName('*')).inject([],
+ function(elements, child) {
+ if (Form.Element.Serializers[child.tagName.toLowerCase()])
+ elements.push(Element.extend(child));
+ return elements;
+ }
+ );
+ },
+
+ getInputs: function(form, typeName, name) {
+ form = $(form);
+ var inputs = form.getElementsByTagName('input');
+
+ if (!typeName && !name) return $A(inputs).map(Element.extend);
+
+ for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
+ var input = inputs[i];
+ if ((typeName && input.type != typeName) || (name && input.name != name))
+ continue;
+ matchingInputs.push(Element.extend(input));
+ }
+
+ return matchingInputs;
+ },
+
+ disable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('disable');
+ return form;
+ },
+
+ enable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('enable');
+ return form;
+ },
+
+ findFirstElement: function(form) {
+ var elements = $(form).getElements().findAll(function(element) {
+ return 'hidden' != element.type && !element.disabled;
+ });
+ var firstByIndex = elements.findAll(function(element) {
+ return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
+ }).sortBy(function(element) { return element.tabIndex }).first();
+
+ return firstByIndex ? firstByIndex : elements.find(function(element) {
+ return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
+ });
+ },
+
+ focusFirstElement: function(form) {
+ form = $(form);
+ form.findFirstElement().activate();
+ return form;
+ },
+
+ request: function(form, options) {
+ form = $(form), options = Object.clone(options || { });
+
+ var params = options.parameters, action = form.readAttribute('action') || '';
+ if (action.blank()) action = window.location.href;
+ options.parameters = form.serialize(true);
+
+ if (params) {
+ if (Object.isString(params)) params = params.toQueryParams();
+ Object.extend(options.parameters, params);
+ }
+
+ if (form.hasAttribute('method') && !options.method)
+ options.method = form.method;
+
+ return new Ajax.Request(action, options);
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element = {
+ focus: function(element) {
+ $(element).focus();
+ return element;
+ },
+
+ select: function(element) {
+ $(element).select();
+ return element;
+ }
+};
+
+Form.Element.Methods = {
+ serialize: function(element) {
+ element = $(element);
+ if (!element.disabled && element.name) {
+ var value = element.getValue();
+ if (value != undefined) {
+ var pair = { };
+ pair[element.name] = value;
+ return Object.toQueryString(pair);
+ }
+ }
+ return '';
+ },
+
+ getValue: function(element) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ return Form.Element.Serializers[method](element);
+ },
+
+ setValue: function(element, value) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ Form.Element.Serializers[method](element, value);
+ return element;
+ },
+
+ clear: function(element) {
+ $(element).value = '';
+ return element;
+ },
+
+ present: function(element) {
+ return $(element).value != '';
+ },
+
+ activate: function(element) {
+ element = $(element);
+ try {
+ element.focus();
+ if (element.select && (element.tagName.toLowerCase() != 'input' ||
+ !['button', 'reset', 'submit'].include(element.type)))
+ element.select();
+ } catch (e) { }
+ return element;
+ },
+
+ disable: function(element) {
+ element = $(element);
+ element.disabled = true;
+ return element;
+ },
+
+ enable: function(element) {
+ element = $(element);
+ element.disabled = false;
+ return element;
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+var Field = Form.Element;
+var $F = Form.Element.Methods.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element.Serializers = {
+ input: function(element, value) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ return Form.Element.Serializers.inputSelector(element, value);
+ default:
+ return Form.Element.Serializers.textarea(element, value);
+ }
+ },
+
+ inputSelector: function(element, value) {
+ if (Object.isUndefined(value)) return element.checked ? element.value : null;
+ else element.checked = !!value;
+ },
+
+ textarea: function(element, value) {
+ if (Object.isUndefined(value)) return element.value;
+ else element.value = value;
+ },
+
+ select: function(element, value) {
+ if (Object.isUndefined(value))
+ return this[element.type == 'select-one' ?
+ 'selectOne' : 'selectMany'](element);
+ else {
+ var opt, currentValue, single = !Object.isArray(value);
+ for (var i = 0, length = element.length; i < length; i++) {
+ opt = element.options[i];
+ currentValue = this.optionValue(opt);
+ if (single) {
+ if (currentValue == value) {
+ opt.selected = true;
+ return;
+ }
+ }
+ else opt.selected = value.include(currentValue);
+ }
+ }
+ },
+
+ selectOne: function(element) {
+ var index = element.selectedIndex;
+ return index >= 0 ? this.optionValue(element.options[index]) : null;
+ },
+
+ selectMany: function(element) {
+ var values, length = element.length;
+ if (!length) return null;
+
+ for (var i = 0, values = []; i < length; i++) {
+ var opt = element.options[i];
+ if (opt.selected) values.push(this.optionValue(opt));
+ }
+ return values;
+ },
+
+ optionValue: function(opt) {
+ // extend element because hasAttribute may not be native
+ return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
+ initialize: function($super, element, frequency, callback) {
+ $super(callback, frequency);
+ this.element = $(element);
+ this.lastValue = this.getValue();
+ },
+
+ execute: function() {
+ var value = this.getValue();
+ if (Object.isString(this.lastValue) && Object.isString(value) ?
+ this.lastValue != value : String(this.lastValue) != String(value)) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ }
+});
+
+Form.Element.Observer = Class.create(Abstract.TimedObserver, {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.Observer = Class.create(Abstract.TimedObserver, {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = Class.create({
+ initialize: function(element, callback) {
+ this.element = $(element);
+ this.callback = callback;
+
+ this.lastValue = this.getValue();
+ if (this.element.tagName.toLowerCase() == 'form')
+ this.registerFormCallbacks();
+ else
+ this.registerCallback(this.element);
+ },
+
+ onElementEvent: function() {
+ var value = this.getValue();
+ if (this.lastValue != value) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ },
+
+ registerFormCallbacks: function() {
+ Form.getElements(this.element).each(this.registerCallback, this);
+ },
+
+ registerCallback: function(element) {
+ if (element.type) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ Event.observe(element, 'click', this.onElementEvent.bind(this));
+ break;
+ default:
+ Event.observe(element, 'change', this.onElementEvent.bind(this));
+ break;
+ }
+ }
+ }
+});
+
+Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.EventObserver = Class.create(Abstract.EventObserver, {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+if (!window.Event) var Event = { };
+
+Object.extend(Event, {
+ KEY_BACKSPACE: 8,
+ KEY_TAB: 9,
+ KEY_RETURN: 13,
+ KEY_ESC: 27,
+ KEY_LEFT: 37,
+ KEY_UP: 38,
+ KEY_RIGHT: 39,
+ KEY_DOWN: 40,
+ KEY_DELETE: 46,
+ KEY_HOME: 36,
+ KEY_END: 35,
+ KEY_PAGEUP: 33,
+ KEY_PAGEDOWN: 34,
+ KEY_INSERT: 45,
+
+ cache: { },
+
+ relatedTarget: function(event) {
+ var element;
+ switch(event.type) {
+ case 'mouseover': element = event.fromElement; break;
+ case 'mouseout': element = event.toElement; break;
+ default: return null;
+ }
+ return Element.extend(element);
+ }
+});
+
+Event.Methods = (function() {
+ var isButton;
+
+ if (Prototype.Browser.IE) {
+ var buttonMap = { 0: 1, 1: 4, 2: 2 };
+ isButton = function(event, code) {
+ return event.button == buttonMap[code];
+ };
+
+ } else if (Prototype.Browser.WebKit) {
+ isButton = function(event, code) {
+ switch (code) {
+ case 0: return event.which == 1 && !event.metaKey;
+ case 1: return event.which == 1 && event.metaKey;
+ default: return false;
+ }
+ };
+
+ } else {
+ isButton = function(event, code) {
+ return event.which ? (event.which === code + 1) : (event.button === code);
+ };
+ }
+
+ return {
+ isLeftClick: function(event) { return isButton(event, 0) },
+ isMiddleClick: function(event) { return isButton(event, 1) },
+ isRightClick: function(event) { return isButton(event, 2) },
+
+ element: function(event) {
+ event = Event.extend(event);
+
+ var node = event.target,
+ type = event.type,
+ currentTarget = event.currentTarget;
+
+ if (currentTarget && currentTarget.tagName) {
+ // Firefox screws up the "click" event when moving between radio buttons
+ // via arrow keys. It also screws up the "load" and "error" events on images,
+ // reporting the document as the target instead of the original image.
+ if (type === 'load' || type === 'error' ||
+ (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
+ && currentTarget.type === 'radio'))
+ node = currentTarget;
+ }
+ if (node.nodeType == Node.TEXT_NODE) node = node.parentNode;
+ return Element.extend(node);
+ },
+
+ findElement: function(event, expression) {
+ var element = Event.element(event);
+ if (!expression) return element;
+ var elements = [element].concat(element.ancestors());
+ return Selector.findElement(elements, expression, 0);
+ },
+
+ pointer: function(event) {
+ var docElement = document.documentElement,
+ body = document.body || { scrollLeft: 0, scrollTop: 0 };
+ return {
+ x: event.pageX || (event.clientX +
+ (docElement.scrollLeft || body.scrollLeft) -
+ (docElement.clientLeft || 0)),
+ y: event.pageY || (event.clientY +
+ (docElement.scrollTop || body.scrollTop) -
+ (docElement.clientTop || 0))
+ };
+ },
+
+ pointerX: function(event) { return Event.pointer(event).x },
+ pointerY: function(event) { return Event.pointer(event).y },
+
+ stop: function(event) {
+ Event.extend(event);
+ event.preventDefault();
+ event.stopPropagation();
+ event.stopped = true;
+ }
+ };
+})();
+
+Event.extend = (function() {
+ var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
+ m[name] = Event.Methods[name].methodize();
+ return m;
+ });
+
+ if (Prototype.Browser.IE) {
+ Object.extend(methods, {
+ stopPropagation: function() { this.cancelBubble = true },
+ preventDefault: function() { this.returnValue = false },
+ inspect: function() { return "[object Event]" }
+ });
+
+ return function(event) {
+ if (!event) return false;
+ if (event._extendedByPrototype) return event;
+
+ event._extendedByPrototype = Prototype.emptyFunction;
+ var pointer = Event.pointer(event);
+ Object.extend(event, {
+ target: event.srcElement,
+ relatedTarget: Event.relatedTarget(event),
+ pageX: pointer.x,
+ pageY: pointer.y
+ });
+ return Object.extend(event, methods);
+ };
+
+ } else {
+ Event.prototype = Event.prototype || document.createEvent("HTMLEvents")['__proto__'];
+ Object.extend(Event.prototype, methods);
+ return Prototype.K;
+ }
+})();
+
+Object.extend(Event, (function() {
+ var cache = Event.cache;
+
+ function getEventID(element) {
+ if (element._prototypeEventID) return element._prototypeEventID[0];
+ arguments.callee.id = arguments.callee.id || 1;
+ return element._prototypeEventID = [++arguments.callee.id];
+ }
+
+ function getDOMEventName(eventName) {
+ if (eventName && eventName.include(':')) return "dataavailable";
+ return eventName;
+ }
+
+ function getCacheForID(id) {
+ return cache[id] = cache[id] || { };
+ }
+
+ function getWrappersForEventName(id, eventName) {
+ var c = getCacheForID(id);
+ return c[eventName] = c[eventName] || [];
+ }
+
+ function createWrapper(element, eventName, handler) {
+ var id = getEventID(element);
+ var c = getWrappersForEventName(id, eventName);
+ if (c.pluck("handler").include(handler)) return false;
+
+ var wrapper = function(event) {
+ if (!Event || !Event.extend ||
+ (event.eventName && event.eventName != eventName))
+ return false;
+
+ Event.extend(event);
+ handler.call(element, event);
+ };
+
+ wrapper.handler = handler;
+ c.push(wrapper);
+ return wrapper;
+ }
+
+ function findWrapper(id, eventName, handler) {
+ var c = getWrappersForEventName(id, eventName);
+ return c.find(function(wrapper) { return wrapper.handler == handler });
+ }
+
+ function destroyWrapper(id, eventName, handler) {
+ var c = getCacheForID(id);
+ if (!c[eventName]) return false;
+ c[eventName] = c[eventName].without(findWrapper(id, eventName, handler));
+ }
+
+ function destroyCache() {
+ for (var id in cache)
+ for (var eventName in cache[id])
+ cache[id][eventName] = null;
+ }
+
+
+ // Internet Explorer needs to remove event handlers on page unload
+ // in order to avoid memory leaks.
+ if (window.attachEvent) {
+ window.attachEvent("onunload", destroyCache);
+ }
+
+ // Safari has a dummy event handler on page unload so that it won't
+ // use its bfcache. Safari <= 3.1 has an issue with restoring the "document"
+ // object when page is returned to via the back button using its bfcache.
+ if (Prototype.Browser.WebKit) {
+ window.addEventListener('unload', Prototype.emptyFunction, false);
+ }
+
+ return {
+ observe: function(element, eventName, handler) {
+ element = $(element);
+ var name = getDOMEventName(eventName);
+
+ var wrapper = createWrapper(element, eventName, handler);
+ if (!wrapper) return element;
+
+ if (element.addEventListener) {
+ element.addEventListener(name, wrapper, false);
+ } else {
+ element.attachEvent("on" + name, wrapper);
+ }
+
+ return element;
+ },
+
+ stopObserving: function(element, eventName, handler) {
+ element = $(element);
+ var id = getEventID(element), name = getDOMEventName(eventName);
+
+ if (!handler && eventName) {
+ getWrappersForEventName(id, eventName).each(function(wrapper) {
+ element.stopObserving(eventName, wrapper.handler);
+ });
+ return element;
+
+ } else if (!eventName) {
+ Object.keys(getCacheForID(id)).each(function(eventName) {
+ element.stopObserving(eventName);
+ });
+ return element;
+ }
+
+ var wrapper = findWrapper(id, eventName, handler);
+ if (!wrapper) return element;
+
+ if (element.removeEventListener) {
+ element.removeEventListener(name, wrapper, false);
+ } else {
+ element.detachEvent("on" + name, wrapper);
+ }
+
+ destroyWrapper(id, eventName, handler);
+
+ return element;
+ },
+
+ fire: function(element, eventName, memo) {
+ element = $(element);
+ if (element == document && document.createEvent && !element.dispatchEvent)
+ element = document.documentElement;
+
+ var event;
+ if (document.createEvent) {
+ event = document.createEvent("HTMLEvents");
+ event.initEvent("dataavailable", true, true);
+ } else {
+ event = document.createEventObject();
+ event.eventType = "ondataavailable";
+ }
+
+ event.eventName = eventName;
+ event.memo = memo || { };
+
+ if (document.createEvent) {
+ element.dispatchEvent(event);
+ } else {
+ element.fireEvent(event.eventType, event);
+ }
+
+ return Event.extend(event);
+ }
+ };
+})());
+
+Object.extend(Event, Event.Methods);
+
+Element.addMethods({
+ fire: Event.fire,
+ observe: Event.observe,
+ stopObserving: Event.stopObserving
+});
+
+Object.extend(document, {
+ fire: Element.Methods.fire.methodize(),
+ observe: Element.Methods.observe.methodize(),
+ stopObserving: Element.Methods.stopObserving.methodize(),
+ loaded: false
+});
+
+(function() {
+ /* Support for the DOMContentLoaded event is based on work by Dan Webb,
+ Matthias Miller, Dean Edwards and John Resig. */
+
+ var timer;
+
+ function fireContentLoadedEvent() {
+ if (document.loaded) return;
+ if (timer) window.clearInterval(timer);
+ document.fire("dom:loaded");
+ document.loaded = true;
+ }
+
+ if (document.addEventListener) {
+ if (Prototype.Browser.WebKit) {
+ timer = window.setInterval(function() {
+ if (/loaded|complete/.test(document.readyState))
+ fireContentLoadedEvent();
+ }, 0);
+
+ Event.observe(window, "load", fireContentLoadedEvent);
+
+ } else {
+ document.addEventListener("DOMContentLoaded",
+ fireContentLoadedEvent, false);
+ }
+
+ } else {
+ document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
+ $("__onDOMContentLoaded").onreadystatechange = function() {
+ if (this.readyState == "complete") {
+ this.onreadystatechange = null;
+ fireContentLoadedEvent();
+ }
+ };
+ }
+})();
+/*------------------------------- DEPRECATED -------------------------------*/
+
+Hash.toQueryString = Object.toQueryString;
+
+var Toggle = { display: Element.toggle };
+
+Element.Methods.childOf = Element.Methods.descendantOf;
+
+var Insertion = {
+ Before: function(element, content) {
+ return Element.insert(element, {before:content});
+ },
+
+ Top: function(element, content) {
+ return Element.insert(element, {top:content});
+ },
+
+ Bottom: function(element, content) {
+ return Element.insert(element, {bottom:content});
+ },
+
+ After: function(element, content) {
+ return Element.insert(element, {after:content});
+ }
+};
+
+var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
+
+// This should be moved to script.aculo.us; notice the deprecated methods
+// further below, that map to the newer Element methods.
+var Position = {
+ // set to true if needed, warning: firefox performance problems
+ // NOT neeeded for page scrolling, only if draggable contained in
+ // scrollable elements
+ includeScrollOffsets: false,
+
+ // must be called before calling withinIncludingScrolloffset, every time the
+ // page is scrolled
+ prepare: function() {
+ this.deltaX = window.pageXOffset
+ || document.documentElement.scrollLeft
+ || document.body.scrollLeft
+ || 0;
+ this.deltaY = window.pageYOffset
+ || document.documentElement.scrollTop
+ || document.body.scrollTop
+ || 0;
+ },
+
+ // caches x/y coordinate pair to use with overlap
+ within: function(element, x, y) {
+ if (this.includeScrollOffsets)
+ return this.withinIncludingScrolloffsets(element, x, y);
+ this.xcomp = x;
+ this.ycomp = y;
+ this.offset = Element.cumulativeOffset(element);
+
+ return (y >= this.offset[1] &&
+ y < this.offset[1] + element.offsetHeight &&
+ x >= this.offset[0] &&
+ x < this.offset[0] + element.offsetWidth);
+ },
+
+ withinIncludingScrolloffsets: function(element, x, y) {
+ var offsetcache = Element.cumulativeScrollOffset(element);
+
+ this.xcomp = x + offsetcache[0] - this.deltaX;
+ this.ycomp = y + offsetcache[1] - this.deltaY;
+ this.offset = Element.cumulativeOffset(element);
+
+ return (this.ycomp >= this.offset[1] &&
+ this.ycomp < this.offset[1] + element.offsetHeight &&
+ this.xcomp >= this.offset[0] &&
+ this.xcomp < this.offset[0] + element.offsetWidth);
+ },
+
+ // within must be called directly before
+ overlap: function(mode, element) {
+ if (!mode) return 0;
+ if (mode == 'vertical')
+ return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+ element.offsetHeight;
+ if (mode == 'horizontal')
+ return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+ element.offsetWidth;
+ },
+
+ // Deprecation layer -- use newer Element methods now (1.5.2).
+
+ cumulativeOffset: Element.Methods.cumulativeOffset,
+
+ positionedOffset: Element.Methods.positionedOffset,
+
+ absolutize: function(element) {
+ Position.prepare();
+ return Element.absolutize(element);
+ },
+
+ relativize: function(element) {
+ Position.prepare();
+ return Element.relativize(element);
+ },
+
+ realOffset: Element.Methods.cumulativeScrollOffset,
+
+ offsetParent: Element.Methods.getOffsetParent,
+
+ page: Element.Methods.viewportOffset,
+
+ clone: function(source, target, options) {
+ options = options || { };
+ return Element.clonePosition(target, source, options);
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
+ function iter(name) {
+ return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
+ }
+
+ instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
+ function(element, className) {
+ className = className.toString().strip();
+ var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
+ return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
+ } : function(element, className) {
+ className = className.toString().strip();
+ var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
+ if (!classNames && !className) return elements;
+
+ var nodes = $(element).getElementsByTagName('*');
+ className = ' ' + className + ' ';
+
+ for (var i = 0, child, cn; child = nodes[i]; i++) {
+ if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
+ (classNames && classNames.all(function(name) {
+ return !name.toString().blank() && cn.include(' ' + name + ' ');
+ }))))
+ elements.push(Element.extend(child));
+ }
+ return elements;
+ };
+
+ return function(className, parentElement) {
+ return $(parentElement || document.body).getElementsByClassName(className);
+ };
+}(Element.Methods);
+
+/*--------------------------------------------------------------------------*/
+
+Element.ClassNames = Class.create();
+Element.ClassNames.prototype = {
+ initialize: function(element) {
+ this.element = $(element);
+ },
+
+ _each: function(iterator) {
+ this.element.className.split(/\s+/).select(function(name) {
+ return name.length > 0;
+ })._each(iterator);
+ },
+
+ set: function(className) {
+ this.element.className = className;
+ },
+
+ add: function(classNameToAdd) {
+ if (this.include(classNameToAdd)) return;
+ this.set($A(this).concat(classNameToAdd).join(' '));
+ },
+
+ remove: function(classNameToRemove) {
+ if (!this.include(classNameToRemove)) return;
+ this.set($A(this).without(classNameToRemove).join(' '));
+ },
+
+ toString: function() {
+ return $A(this).join(' ');
+ }
+};
+
+Object.extend(Element.ClassNames.prototype, Enumerable);
+
+/*--------------------------------------------------------------------------*/
+
+Element.addMethods();
diff --git a/PerformanceTests/SunSpider/tests/parse-only/jquery-1.3.2.js b/PerformanceTests/SunSpider/tests/parse-only/jquery-1.3.2.js
new file mode 100644
index 000000000..926357433
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/parse-only/jquery-1.3.2.js
@@ -0,0 +1,4376 @@
+/*!
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){
+
+var
+ // Will speed up references to window, and allows munging its name.
+ window = this,
+ // Will speed up references to undefined, and allows munging its name.
+ undefined,
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+ // Map over the $ in case of overwrite
+ _$ = window.$,
+
+ jQuery = window.jQuery = window.$ = function( selector, context ) {
+ // The jQuery object is actually just the init constructor 'enhanced'
+ return new jQuery.fn.init( selector, context );
+ },
+
+ // A simple way to check for HTML strings or ID strings
+ // (both of which we optimize for)
+ quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
+ // Is it a simple selector
+ isSimple = /^.[^:#\[\.,]*$/;
+
+jQuery.fn = jQuery.prototype = {
+ init: function( selector, context ) {
+ // Make sure that a selection was provided
+ selector = selector || document;
+
+ // Handle $(DOMElement)
+ if ( selector.nodeType ) {
+ this[0] = selector;
+ this.length = 1;
+ this.context = selector;
+ return this;
+ }
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ // Are we dealing with HTML string or an ID?
+ var match = quickExpr.exec( selector );
+
+ // Verify a match, and that no context was specified for #id
+ if ( match && (match[1] || !context) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[1] )
+ selector = jQuery.clean( [ match[1] ], context );
+
+ // HANDLE: $("#id")
+ else {
+ var elem = document.getElementById( match[3] );
+
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem && elem.id != match[3] )
+ return jQuery().find( selector );
+
+ // Otherwise, we inject the element directly into the jQuery object
+ var ret = jQuery( elem || [] );
+ ret.context = document;
+ ret.selector = selector;
+ return ret;
+ }
+
+ // HANDLE: $(expr, [context])
+ // (which is just equivalent to: $(content).find(expr)
+ } else
+ return jQuery( context ).find( selector );
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) )
+ return jQuery( document ).ready( selector );
+
+ // Make sure that old selector state is passed along
+ if ( selector.selector && selector.context ) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return this.setArray(jQuery.isArray( selector ) ?
+ selector :
+ jQuery.makeArray(selector));
+ },
+
+ // Start with an empty selector
+ selector: "",
+
+ // The current version of jQuery being used
+ jquery: "1.3.2",
+
+ // The number of elements contained in the matched element set
+ size: function() {
+ return this.length;
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+ return num === undefined ?
+
+ // Return a 'clean' array
+ Array.prototype.slice.call( this ) :
+
+ // Return just the object
+ this[ num ];
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems, name, selector ) {
+ // Build a new jQuery matched element set
+ var ret = jQuery( elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ ret.context = this.context;
+
+ if ( name === "find" )
+ ret.selector = this.selector + (this.selector ? " " : "") + selector;
+ else if ( name )
+ ret.selector = this.selector + "." + name + "(" + selector + ")";
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Force the current matched set of elements to become
+ // the specified array of elements (destroying the stack in the process)
+ // You should use pushStack() in order to do this, but maintain the stack
+ setArray: function( elems ) {
+ // Resetting the length to 0, then using the native Array push
+ // is a super-fast way to populate an object with array-like properties
+ this.length = 0;
+ Array.prototype.push.apply( this, elems );
+
+ return this;
+ },
+
+ // Execute a callback for every element in the matched set.
+ // (You can seed the arguments with an array of args, but this is
+ // only used internally.)
+ each: function( callback, args ) {
+ return jQuery.each( this, callback, args );
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function( elem ) {
+ // Locate the position of the desired element
+ return jQuery.inArray(
+ // If it receives a jQuery object, the first element is used
+ elem && elem.jquery ? elem[0] : elem
+ , this );
+ },
+
+ attr: function( name, value, type ) {
+ var options = name;
+
+ // Look for the case where we're accessing a style value
+ if ( typeof name === "string" )
+ if ( value === undefined )
+ return this[0] && jQuery[ type || "attr" ]( this[0], name );
+
+ else {
+ options = {};
+ options[ name ] = value;
+ }
+
+ // Check to see if we're setting style values
+ return this.each(function(i){
+ // Set all the styles
+ for ( name in options )
+ jQuery.attr(
+ type ?
+ this.style :
+ this,
+ name, jQuery.prop( this, options[ name ], type, i, name )
+ );
+ });
+ },
+
+ css: function( key, value ) {
+ // ignore negative width and height values
+ if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
+ value = undefined;
+ return this.attr( key, value, "curCSS" );
+ },
+
+ text: function( text ) {
+ if ( typeof text !== "object" && text != null )
+ return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
+
+ var ret = "";
+
+ jQuery.each( text || this, function(){
+ jQuery.each( this.childNodes, function(){
+ if ( this.nodeType != 8 )
+ ret += this.nodeType != 1 ?
+ this.nodeValue :
+ jQuery.fn.text( [ this ] );
+ });
+ });
+
+ return ret;
+ },
+
+ wrapAll: function( html ) {
+ if ( this[0] ) {
+ // The elements to wrap the target around
+ var wrap = jQuery( html, this[0].ownerDocument ).clone();
+
+ if ( this[0].parentNode )
+ wrap.insertBefore( this[0] );
+
+ wrap.map(function(){
+ var elem = this;
+
+ while ( elem.firstChild )
+ elem = elem.firstChild;
+
+ return elem;
+ }).append(this);
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ return this.each(function(){
+ jQuery( this ).contents().wrapAll( html );
+ });
+ },
+
+ wrap: function( html ) {
+ return this.each(function(){
+ jQuery( this ).wrapAll( html );
+ });
+ },
+
+ append: function() {
+ return this.domManip(arguments, true, function(elem){
+ if (this.nodeType == 1)
+ this.appendChild( elem );
+ });
+ },
+
+ prepend: function() {
+ return this.domManip(arguments, true, function(elem){
+ if (this.nodeType == 1)
+ this.insertBefore( elem, this.firstChild );
+ });
+ },
+
+ before: function() {
+ return this.domManip(arguments, false, function(elem){
+ this.parentNode.insertBefore( elem, this );
+ });
+ },
+
+ after: function() {
+ return this.domManip(arguments, false, function(elem){
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ });
+ },
+
+ end: function() {
+ return this.prevObject || jQuery( [] );
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: [].push,
+ sort: [].sort,
+ splice: [].splice,
+
+ find: function( selector ) {
+ if ( this.length === 1 ) {
+ var ret = this.pushStack( [], "find", selector );
+ ret.length = 0;
+ jQuery.find( selector, this[0], ret );
+ return ret;
+ } else {
+ return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){
+ return jQuery.find( selector, elem );
+ })), "find", selector );
+ }
+ },
+
+ clone: function( events ) {
+ // Do the clone
+ var ret = this.map(function(){
+ if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) {
+ // IE copies events bound via attachEvent when
+ // using cloneNode. Calling detachEvent on the
+ // clone will also remove the events from the orignal
+ // In order to get around this, we use innerHTML.
+ // Unfortunately, this means some modifications to
+ // attributes in IE that are actually only stored
+ // as properties will not be copied (such as the
+ // the name attribute on an input).
+ var html = this.outerHTML;
+ if ( !html ) {
+ var div = this.ownerDocument.createElement("div");
+ div.appendChild( this.cloneNode(true) );
+ html = div.innerHTML;
+ }
+
+ return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0];
+ } else
+ return this.cloneNode(true);
+ });
+
+ // Copy the events from the original to the clone
+ if ( events === true ) {
+ var orig = this.find("*").andSelf(), i = 0;
+
+ ret.find("*").andSelf().each(function(){
+ if ( this.nodeName !== orig[i].nodeName )
+ return;
+
+ var events = jQuery.data( orig[i], "events" );
+
+ for ( var type in events ) {
+ for ( var handler in events[ type ] ) {
+ jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data );
+ }
+ }
+
+ i++;
+ });
+ }
+
+ // Return the cloned set
+ return ret;
+ },
+
+ filter: function( selector ) {
+ return this.pushStack(
+ jQuery.isFunction( selector ) &&
+ jQuery.grep(this, function(elem, i){
+ return selector.call( elem, i );
+ }) ||
+
+ jQuery.multiFilter( selector, jQuery.grep(this, function(elem){
+ return elem.nodeType === 1;
+ }) ), "filter", selector );
+ },
+
+ closest: function( selector ) {
+ var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null,
+ closer = 0;
+
+ return this.map(function(){
+ var cur = this;
+ while ( cur && cur.ownerDocument ) {
+ if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) {
+ jQuery.data(cur, "closest", closer);
+ return cur;
+ }
+ cur = cur.parentNode;
+ closer++;
+ }
+ });
+ },
+
+ not: function( selector ) {
+ if ( typeof selector === "string" )
+ // test special case where just one selector is passed in
+ if ( isSimple.test( selector ) )
+ return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector );
+ else
+ selector = jQuery.multiFilter( selector, this );
+
+ var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
+ return this.filter(function() {
+ return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
+ });
+ },
+
+ add: function( selector ) {
+ return this.pushStack( jQuery.unique( jQuery.merge(
+ this.get(),
+ typeof selector === "string" ?
+ jQuery( selector ) :
+ jQuery.makeArray( selector )
+ )));
+ },
+
+ is: function( selector ) {
+ return !!selector && jQuery.multiFilter( selector, this ).length > 0;
+ },
+
+ hasClass: function( selector ) {
+ return !!selector && this.is( "." + selector );
+ },
+
+ val: function( value ) {
+ if ( value === undefined ) {
+ var elem = this[0];
+
+ if ( elem ) {
+ if( jQuery.nodeName( elem, 'option' ) )
+ return (elem.attributes.value || {}).specified ? elem.value : elem.text;
+
+ // We need to handle select boxes special
+ if ( jQuery.nodeName( elem, "select" ) ) {
+ var index = elem.selectedIndex,
+ values = [],
+ options = elem.options,
+ one = elem.type == "select-one";
+
+ // Nothing was selected
+ if ( index < 0 )
+ return null;
+
+ // Loop through all the selected options
+ for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
+ var option = options[ i ];
+
+ if ( option.selected ) {
+ // Get the specifc value for the option
+ value = jQuery(option).val();
+
+ // We don't need an array for one selects
+ if ( one )
+ return value;
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ return values;
+ }
+
+ // Everything else, we just grab the value
+ return (elem.value || "").replace(/\r/g, "");
+
+ }
+
+ return undefined;
+ }
+
+ if ( typeof value === "number" )
+ value += '';
+
+ return this.each(function(){
+ if ( this.nodeType != 1 )
+ return;
+
+ if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) )
+ this.checked = (jQuery.inArray(this.value, value) >= 0 ||
+ jQuery.inArray(this.name, value) >= 0);
+
+ else if ( jQuery.nodeName( this, "select" ) ) {
+ var values = jQuery.makeArray(value);
+
+ jQuery( "option", this ).each(function(){
+ this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
+ jQuery.inArray( this.text, values ) >= 0);
+ });
+
+ if ( !values.length )
+ this.selectedIndex = -1;
+
+ } else
+ this.value = value;
+ });
+ },
+
+ html: function( value ) {
+ return value === undefined ?
+ (this[0] ?
+ this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") :
+ null) :
+ this.empty().append( value );
+ },
+
+ replaceWith: function( value ) {
+ return this.after( value ).remove();
+ },
+
+ eq: function( i ) {
+ return this.slice( i, +i + 1 );
+ },
+
+ slice: function() {
+ return this.pushStack( Array.prototype.slice.apply( this, arguments ),
+ "slice", Array.prototype.slice.call(arguments).join(",") );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map(this, function(elem, i){
+ return callback.call( elem, i, elem );
+ }));
+ },
+
+ andSelf: function() {
+ return this.add( this.prevObject );
+ },
+
+ domManip: function( args, table, callback ) {
+ if ( this[0] ) {
+ var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(),
+ scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ),
+ first = fragment.firstChild;
+
+ if ( first )
+ for ( var i = 0, l = this.length; i < l; i++ )
+ callback.call( root(this[i], first), this.length > 1 || i > 0 ?
+ fragment.cloneNode(true) : fragment );
+
+ if ( scripts )
+ jQuery.each( scripts, evalScript );
+ }
+
+ return this;
+
+ function root( elem, cur ) {
+ return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ?
+ (elem.getElementsByTagName("tbody")[0] ||
+ elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
+ elem;
+ }
+ }
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.fn.init.prototype = jQuery.fn;
+
+function evalScript( i, elem ) {
+ if ( elem.src )
+ jQuery.ajax({
+ url: elem.src,
+ async: false,
+ dataType: "script"
+ });
+
+ else
+ jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
+
+ if ( elem.parentNode )
+ elem.parentNode.removeChild( elem );
+}
+
+function now(){
+ return +new Date;
+}
+
+jQuery.extend = jQuery.fn.extend = function() {
+ // copy reference to target object
+ var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+ target = arguments[1] || {};
+ // skip the boolean and the target
+ i = 2;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction(target) )
+ target = {};
+
+ // extend jQuery itself if only one argument is passed
+ if ( length == i ) {
+ target = this;
+ --i;
+ }
+
+ for ( ; i < length; i++ )
+ // Only deal with non-null/undefined values
+ if ( (options = arguments[ i ]) != null )
+ // Extend the base object
+ for ( var name in options ) {
+ var src = target[ name ], copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy )
+ continue;
+
+ // Recurse if we're merging object values
+ if ( deep && copy && typeof copy === "object" && !copy.nodeType )
+ target[ name ] = jQuery.extend( deep,
+ // Never move original objects, clone them
+ src || ( copy.length != null ? [ ] : { } )
+ , copy );
+
+ // Don't bring in undefined values
+ else if ( copy !== undefined )
+ target[ name ] = copy;
+
+ }
+
+ // Return the modified object
+ return target;
+};
+
+// exclude the following css properties to add px
+var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
+ // cache defaultView
+ defaultView = document.defaultView || {},
+ toString = Object.prototype.toString;
+
+jQuery.extend({
+ noConflict: function( deep ) {
+ window.$ = _$;
+
+ if ( deep )
+ window.jQuery = _jQuery;
+
+ return jQuery;
+ },
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function( obj ) {
+ return toString.call(obj) === "[object Function]";
+ },
+
+ isArray: function( obj ) {
+ return toString.call(obj) === "[object Array]";
+ },
+
+ // check if an element is in a (or is an) XML document
+ isXMLDoc: function( elem ) {
+ return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
+ !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument );
+ },
+
+ // Evalulates a script in a global context
+ globalEval: function( data ) {
+ if ( data && /\S/.test(data) ) {
+ // Inspired by code by Andrea Giammarchi
+ // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
+ var head = document.getElementsByTagName("head")[0] || document.documentElement,
+ script = document.createElement("script");
+
+ script.type = "text/javascript";
+ if ( jQuery.support.scriptEval )
+ script.appendChild( document.createTextNode( data ) );
+ else
+ script.text = data;
+
+ // Use insertBefore instead of appendChild to circumvent an IE6 bug.
+ // This arises when a base node is used (#2709).
+ head.insertBefore( script, head.firstChild );
+ head.removeChild( script );
+ }
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
+ },
+
+ // args is for internal usage only
+ each: function( object, callback, args ) {
+ var name, i = 0, length = object.length;
+
+ if ( args ) {
+ if ( length === undefined ) {
+ for ( name in object )
+ if ( callback.apply( object[ name ], args ) === false )
+ break;
+ } else
+ for ( ; i < length; )
+ if ( callback.apply( object[ i++ ], args ) === false )
+ break;
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if ( length === undefined ) {
+ for ( name in object )
+ if ( callback.call( object[ name ], name, object[ name ] ) === false )
+ break;
+ } else
+ for ( var value = object[0];
+ i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
+ }
+
+ return object;
+ },
+
+ prop: function( elem, value, type, i, name ) {
+ // Handle executable functions
+ if ( jQuery.isFunction( value ) )
+ value = value.call( elem, i );
+
+ // Handle passing in a number to a CSS property
+ return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ?
+ value + "px" :
+ value;
+ },
+
+ className: {
+ // internal only, use addClass("class")
+ add: function( elem, classNames ) {
+ jQuery.each((classNames || "").split(/\s+/), function(i, className){
+ if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
+ elem.className += (elem.className ? " " : "") + className;
+ });
+ },
+
+ // internal only, use removeClass("class")
+ remove: function( elem, classNames ) {
+ if (elem.nodeType == 1)
+ elem.className = classNames !== undefined ?
+ jQuery.grep(elem.className.split(/\s+/), function(className){
+ return !jQuery.className.has( classNames, className );
+ }).join(" ") :
+ "";
+ },
+
+ // internal only, use hasClass("class")
+ has: function( elem, className ) {
+ return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
+ }
+ },
+
+ // A method for quickly swapping in/out CSS properties to get correct calculations
+ swap: function( elem, options, callback ) {
+ var old = {};
+ // Remember the old values, and insert the new ones
+ for ( var name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ callback.call( elem );
+
+ // Revert the old values
+ for ( var name in options )
+ elem.style[ name ] = old[ name ];
+ },
+
+ css: function( elem, name, force, extra ) {
+ if ( name == "width" || name == "height" ) {
+ var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ];
+
+ function getWH() {
+ val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
+
+ if ( extra === "border" )
+ return;
+
+ jQuery.each( which, function() {
+ if ( !extra )
+ val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
+ if ( extra === "margin" )
+ val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0;
+ else
+ val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
+ });
+ }
+
+ if ( elem.offsetWidth !== 0 )
+ getWH();
+ else
+ jQuery.swap( elem, props, getWH );
+
+ return Math.max(0, Math.round(val));
+ }
+
+ return jQuery.curCSS( elem, name, force );
+ },
+
+ curCSS: function( elem, name, force ) {
+ var ret, style = elem.style;
+
+ // We need to handle opacity special in IE
+ if ( name == "opacity" && !jQuery.support.opacity ) {
+ ret = jQuery.attr( style, "opacity" );
+
+ return ret == "" ?
+ "1" :
+ ret;
+ }
+
+ // Make sure we're using the right name for getting the float value
+ if ( name.match( /float/i ) )
+ name = styleFloat;
+
+ if ( !force && style && style[ name ] )
+ ret = style[ name ];
+
+ else if ( defaultView.getComputedStyle ) {
+
+ // Only "float" is needed here
+ if ( name.match( /float/i ) )
+ name = "float";
+
+ name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
+
+ var computedStyle = defaultView.getComputedStyle( elem, null );
+
+ if ( computedStyle )
+ ret = computedStyle.getPropertyValue( name );
+
+ // We should always get a number back from opacity
+ if ( name == "opacity" && ret == "" )
+ ret = "1";
+
+ } else if ( elem.currentStyle ) {
+ var camelCase = name.replace(/\-(\w)/g, function(all, letter){
+ return letter.toUpperCase();
+ });
+
+ ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
+
+ // From the awesome hack by Dean Edwards
+ // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+ // If we're not dealing with a regular pixel number
+ // but a number that has a weird ending, we need to convert it to pixels
+ if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
+ // Remember the original values
+ var left = style.left, rsLeft = elem.runtimeStyle.left;
+
+ // Put in the new values to get a computed value out
+ elem.runtimeStyle.left = elem.currentStyle.left;
+ style.left = ret || 0;
+ ret = style.pixelLeft + "px";
+
+ // Revert the changed values
+ style.left = left;
+ elem.runtimeStyle.left = rsLeft;
+ }
+ }
+
+ return ret;
+ },
+
+ clean: function( elems, context, fragment ) {
+ context = context || document;
+
+ // !context.createElement fails in IE with an error but returns typeof 'object'
+ if ( typeof context.createElement === "undefined" )
+ context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
+
+ // If a single string is passed in and it's a single tag
+ // just do a createElement and skip the rest
+ if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) {
+ var match = /^<(\w+)\s*\/?>$/.exec(elems[0]);
+ if ( match )
+ return [ context.createElement( match[1] ) ];
+ }
+
+ var ret = [], scripts = [], div = context.createElement("div");
+
+ jQuery.each(elems, function(i, elem){
+ if ( typeof elem === "number" )
+ elem += '';
+
+ if ( !elem )
+ return;
+
+ // Convert html string into DOM nodes
+ if ( typeof elem === "string" ) {
+ // Fix "XHTML"-style tags in all browsers
+ elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
+ return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
+ all :
+ front + "></" + tag + ">";
+ });
+
+ // Trim whitespace, otherwise indexOf won't work as expected
+ var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase();
+
+ var wrap =
+ // option or optgroup
+ !tags.indexOf("<opt") &&
+ [ 1, "<select multiple='multiple'>", "</select>" ] ||
+
+ !tags.indexOf("<leg") &&
+ [ 1, "<fieldset>", "</fieldset>" ] ||
+
+ tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
+ [ 1, "<table>", "</table>" ] ||
+
+ !tags.indexOf("<tr") &&
+ [ 2, "<table><tbody>", "</tbody></table>" ] ||
+
+ // <thead> matched above
+ (!tags.indexOf("<td") || !tags.indexOf("<th")) &&
+ [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] ||
+
+ !tags.indexOf("<col") &&
+ [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] ||
+
+ // IE can't serialize <link> and <script> tags normally
+ !jQuery.support.htmlSerialize &&
+ [ 1, "div<div>", "</div>" ] ||
+
+ [ 0, "", "" ];
+
+ // Go to html and back, then peel off extra wrappers
+ div.innerHTML = wrap[1] + elem + wrap[2];
+
+ // Move to the right depth
+ while ( wrap[0]-- )
+ div = div.lastChild;
+
+ // Remove IE's autoinserted <tbody> from table fragments
+ if ( !jQuery.support.tbody ) {
+
+ // String was a <table>, *may* have spurious <tbody>
+ var hasBody = /<tbody/i.test(elem),
+ tbody = !tags.indexOf("<table") && !hasBody ?
+ div.firstChild && div.firstChild.childNodes :
+
+ // String was a bare <thead> or <tfoot>
+ wrap[1] == "<table>" && !hasBody ?
+ div.childNodes :
+ [];
+
+ for ( var j = tbody.length - 1; j >= 0 ; --j )
+ if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length )
+ tbody[ j ].parentNode.removeChild( tbody[ j ] );
+
+ }
+
+ // IE completely kills leading whitespace when innerHTML is used
+ if ( !jQuery.support.leadingWhitespace && /^\s/.test( elem ) )
+ div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
+
+ elem = jQuery.makeArray( div.childNodes );
+ }
+
+ if ( elem.nodeType )
+ ret.push( elem );
+ else
+ ret = jQuery.merge( ret, elem );
+
+ });
+
+ if ( fragment ) {
+ for ( var i = 0; ret[i]; i++ ) {
+ if ( jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
+ scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
+ } else {
+ if ( ret[i].nodeType === 1 )
+ ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
+ fragment.appendChild( ret[i] );
+ }
+ }
+
+ return scripts;
+ }
+
+ return ret;
+ },
+
+ attr: function( elem, name, value ) {
+ // don't set attributes on text and comment nodes
+ if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
+ return undefined;
+
+ var notxml = !jQuery.isXMLDoc( elem ),
+ // Whether we are setting (or getting)
+ set = value !== undefined;
+
+ // Try to normalize/fix the name
+ name = notxml && jQuery.props[ name ] || name;
+
+ // Only do all the following if this is a node (faster for style)
+ // IE elem.getAttribute passes even for style
+ if ( elem.tagName ) {
+
+ // These attributes require special treatment
+ var special = /href|src|style/.test( name );
+
+ // Safari mis-reports the default selected property of a hidden option
+ // Accessing the parent's selectedIndex property fixes it
+ if ( name == "selected" && elem.parentNode )
+ elem.parentNode.selectedIndex;
+
+ // If applicable, access the attribute via the DOM 0 way
+ if ( name in elem && notxml && !special ) {
+ if ( set ){
+ // We can't allow the type property to be changed (since it causes problems in IE)
+ if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
+ throw "type property can't be changed";
+
+ elem[ name ] = value;
+ }
+
+ // browsers index elements by id/name on forms, give priority to attributes.
+ if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )
+ return elem.getAttributeNode( name ).nodeValue;
+
+ // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ if ( name == "tabIndex" ) {
+ var attributeNode = elem.getAttributeNode( "tabIndex" );
+ return attributeNode && attributeNode.specified
+ ? attributeNode.value
+ : elem.nodeName.match(/(button|input|object|select|textarea)/i)
+ ? 0
+ : elem.nodeName.match(/^(a|area)$/i) && elem.href
+ ? 0
+ : undefined;
+ }
+
+ return elem[ name ];
+ }
+
+ if ( !jQuery.support.style && notxml && name == "style" )
+ return jQuery.attr( elem.style, "cssText", value );
+
+ if ( set )
+ // convert the value to a string (all browsers do this but IE) see #1070
+ elem.setAttribute( name, "" + value );
+
+ var attr = !jQuery.support.hrefNormalized && notxml && special
+ // Some attributes require a special call on IE
+ ? elem.getAttribute( name, 2 )
+ : elem.getAttribute( name );
+
+ // Non-existent attributes return null, we normalize to undefined
+ return attr === null ? undefined : attr;
+ }
+
+ // elem is actually elem.style ... set the style
+
+ // IE uses filters for opacity
+ if ( !jQuery.support.opacity && name == "opacity" ) {
+ if ( set ) {
+ // IE has trouble with opacity if it does not have layout
+ // Force it by setting the zoom level
+ elem.zoom = 1;
+
+ // Set the alpha filter to set the opacity
+ elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
+ (parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
+ }
+
+ return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
+ (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
+ "";
+ }
+
+ name = name.replace(/-([a-z])/ig, function(all, letter){
+ return letter.toUpperCase();
+ });
+
+ if ( set )
+ elem[ name ] = value;
+
+ return elem[ name ];
+ },
+
+ trim: function( text ) {
+ return (text || "").replace( /^\s+|\s+$/g, "" );
+ },
+
+ makeArray: function( array ) {
+ var ret = [];
+
+ if( array != null ){
+ var i = array.length;
+ // The window, strings (and functions) also have 'length'
+ if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval )
+ ret[0] = array;
+ else
+ while( i )
+ ret[--i] = array[i];
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, array ) {
+ for ( var i = 0, length = array.length; i < length; i++ )
+ // Use === because on IE, window == document
+ if ( array[ i ] === elem )
+ return i;
+
+ return -1;
+ },
+
+ merge: function( first, second ) {
+ // We have to loop this way because IE & Opera overwrite the length
+ // expando of getElementsByTagName
+ var i = 0, elem, pos = first.length;
+ // Also, we need to make sure that the correct elements are being returned
+ // (IE returns comment nodes in a '*' query)
+ if ( !jQuery.support.getAll ) {
+ while ( (elem = second[ i++ ]) != null )
+ if ( elem.nodeType != 8 )
+ first[ pos++ ] = elem;
+
+ } else
+ while ( (elem = second[ i++ ]) != null )
+ first[ pos++ ] = elem;
+
+ return first;
+ },
+
+ unique: function( array ) {
+ var ret = [], done = {};
+
+ try {
+
+ for ( var i = 0, length = array.length; i < length; i++ ) {
+ var id = jQuery.data( array[ i ] );
+
+ if ( !done[ id ] ) {
+ done[ id ] = true;
+ ret.push( array[ i ] );
+ }
+ }
+
+ } catch( e ) {
+ ret = array;
+ }
+
+ return ret;
+ },
+
+ grep: function( elems, callback, inv ) {
+ var ret = [];
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( var i = 0, length = elems.length; i < length; i++ )
+ if ( !inv != !callback( elems[ i ], i ) )
+ ret.push( elems[ i ] );
+
+ return ret;
+ },
+
+ map: function( elems, callback ) {
+ var ret = [];
+
+ // Go through the array, translating each of the items to their
+ // new value (or values).
+ for ( var i = 0, length = elems.length; i < length; i++ ) {
+ var value = callback( elems[ i ], i );
+
+ if ( value != null )
+ ret[ ret.length ] = value;
+ }
+
+ return ret.concat.apply( [], ret );
+ }
+});
+
+// Use of jQuery.browser is deprecated.
+// It's included for backwards compatibility and plugins,
+// although they should work to migrate away.
+
+var userAgent = navigator.userAgent.toLowerCase();
+
+// Figure out what browser is being used
+jQuery.browser = {
+ version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
+ safari: /webkit/.test( userAgent ),
+ opera: /opera/.test( userAgent ),
+ msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
+ mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
+};
+
+jQuery.each({
+ parent: function(elem){return elem.parentNode;},
+ parents: function(elem){return jQuery.dir(elem,"parentNode");},
+ next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
+ prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},
+ nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},
+ prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},
+ siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},
+ children: function(elem){return jQuery.sibling(elem.firstChild);},
+ contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}
+}, function(name, fn){
+ jQuery.fn[ name ] = function( selector ) {
+ var ret = jQuery.map( this, fn );
+
+ if ( selector && typeof selector == "string" )
+ ret = jQuery.multiFilter( selector, ret );
+
+ return this.pushStack( jQuery.unique( ret ), name, selector );
+ };
+});
+
+jQuery.each({
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function(name, original){
+ jQuery.fn[ name ] = function( selector ) {
+ var ret = [], insert = jQuery( selector );
+
+ for ( var i = 0, l = insert.length; i < l; i++ ) {
+ var elems = (i > 0 ? this.clone(true) : this).get();
+ jQuery.fn[ original ].apply( jQuery(insert[i]), elems );
+ ret = ret.concat( elems );
+ }
+
+ return this.pushStack( ret, name, selector );
+ };
+});
+
+jQuery.each({
+ removeAttr: function( name ) {
+ jQuery.attr( this, name, "" );
+ if (this.nodeType == 1)
+ this.removeAttribute( name );
+ },
+
+ addClass: function( classNames ) {
+ jQuery.className.add( this, classNames );
+ },
+
+ removeClass: function( classNames ) {
+ jQuery.className.remove( this, classNames );
+ },
+
+ toggleClass: function( classNames, state ) {
+ if( typeof state !== "boolean" )
+ state = !jQuery.className.has( this, classNames );
+ jQuery.className[ state ? "add" : "remove" ]( this, classNames );
+ },
+
+ remove: function( selector ) {
+ if ( !selector || jQuery.filter( selector, [ this ] ).length ) {
+ // Prevent memory leaks
+ jQuery( "*", this ).add([this]).each(function(){
+ jQuery.event.remove(this);
+ jQuery.removeData(this);
+ });
+ if (this.parentNode)
+ this.parentNode.removeChild( this );
+ }
+ },
+
+ empty: function() {
+ // Remove element nodes and prevent memory leaks
+ jQuery(this).children().remove();
+
+ // Remove any remaining nodes
+ while ( this.firstChild )
+ this.removeChild( this.firstChild );
+ }
+}, function(name, fn){
+ jQuery.fn[ name ] = function(){
+ return this.each( fn, arguments );
+ };
+});
+
+// Helper function used by the dimensions and offset modules
+function num(elem, prop) {
+ return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
+}
+var expando = "jQuery" + now(), uuid = 0, windowData = {};
+
+jQuery.extend({
+ cache: {},
+
+ data: function( elem, name, data ) {
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var id = elem[ expando ];
+
+ // Compute a unique ID for the element
+ if ( !id )
+ id = elem[ expando ] = ++uuid;
+
+ // Only generate the data cache if we're
+ // trying to access or manipulate it
+ if ( name && !jQuery.cache[ id ] )
+ jQuery.cache[ id ] = {};
+
+ // Prevent overriding the named cache with undefined values
+ if ( data !== undefined )
+ jQuery.cache[ id ][ name ] = data;
+
+ // Return the named cache data, or the ID for the element
+ return name ?
+ jQuery.cache[ id ][ name ] :
+ id;
+ },
+
+ removeData: function( elem, name ) {
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var id = elem[ expando ];
+
+ // If we want to remove a specific section of the element's data
+ if ( name ) {
+ if ( jQuery.cache[ id ] ) {
+ // Remove the section of cache data
+ delete jQuery.cache[ id ][ name ];
+
+ // If we've removed all the data, remove the element's cache
+ name = "";
+
+ for ( name in jQuery.cache[ id ] )
+ break;
+
+ if ( !name )
+ jQuery.removeData( elem );
+ }
+
+ // Otherwise, we want to remove all of the element's data
+ } else {
+ // Clean up the element expando
+ try {
+ delete elem[ expando ];
+ } catch(e){
+ // IE has trouble directly removing the expando
+ // but it's ok with using removeAttribute
+ if ( elem.removeAttribute )
+ elem.removeAttribute( expando );
+ }
+
+ // Completely remove the data cache
+ delete jQuery.cache[ id ];
+ }
+ },
+ queue: function( elem, type, data ) {
+ if ( elem ){
+
+ type = (type || "fx") + "queue";
+
+ var q = jQuery.data( elem, type );
+
+ if ( !q || jQuery.isArray(data) )
+ q = jQuery.data( elem, type, jQuery.makeArray(data) );
+ else if( data )
+ q.push( data );
+
+ }
+ return q;
+ },
+
+ dequeue: function( elem, type ){
+ var queue = jQuery.queue( elem, type ),
+ fn = queue.shift();
+
+ if( !type || type === "fx" )
+ fn = queue[0];
+
+ if( fn !== undefined )
+ fn.call(elem);
+ }
+});
+
+jQuery.fn.extend({
+ data: function( key, value ){
+ var parts = key.split(".");
+ parts[1] = parts[1] ? "." + parts[1] : "";
+
+ if ( value === undefined ) {
+ var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+ if ( data === undefined && this.length )
+ data = jQuery.data( this[0], key );
+
+ return data === undefined && parts[1] ?
+ this.data( parts[0] ) :
+ data;
+ } else
+ return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
+ jQuery.data( this, key, value );
+ });
+ },
+
+ removeData: function( key ){
+ return this.each(function(){
+ jQuery.removeData( this, key );
+ });
+ },
+ queue: function(type, data){
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ }
+
+ if ( data === undefined )
+ return jQuery.queue( this[0], type );
+
+ return this.each(function(){
+ var queue = jQuery.queue( this, type, data );
+
+ if( type == "fx" && queue.length == 1 )
+ queue[0].call(this);
+ });
+ },
+ dequeue: function(type){
+ return this.each(function(){
+ jQuery.dequeue( this, type );
+ });
+ }
+});/*!
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,
+ done = 0,
+ toString = Object.prototype.toString;
+
+var Sizzle = function(selector, context, results, seed) {
+ results = results || [];
+ context = context || document;
+
+ if ( context.nodeType !== 1 && context.nodeType !== 9 )
+ return [];
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ var parts = [], m, set, checkSet, check, mode, extra, prune = true;
+
+ // Reset the position of the chunker regexp (start from head)
+ chunker.lastIndex = 0;
+
+ while ( (m = chunker.exec(selector)) !== null ) {
+ parts.push( m[1] );
+
+ if ( m[2] ) {
+ extra = RegExp.rightContext;
+ break;
+ }
+ }
+
+ if ( parts.length > 1 && origPOS.exec( selector ) ) {
+ if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+ set = posProcess( parts[0] + parts[1], context );
+ } else {
+ set = Expr.relative[ parts[0] ] ?
+ [ context ] :
+ Sizzle( parts.shift(), context );
+
+ while ( parts.length ) {
+ selector = parts.shift();
+
+ if ( Expr.relative[ selector ] )
+ selector += parts.shift();
+
+ set = posProcess( selector, set );
+ }
+ }
+ } else {
+ var ret = seed ?
+ { expr: parts.pop(), set: makeArray(seed) } :
+ Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) );
+ set = Sizzle.filter( ret.expr, ret.set );
+
+ if ( parts.length > 0 ) {
+ checkSet = makeArray(set);
+ } else {
+ prune = false;
+ }
+
+ while ( parts.length ) {
+ var cur = parts.pop(), pop = cur;
+
+ if ( !Expr.relative[ cur ] ) {
+ cur = "";
+ } else {
+ pop = parts.pop();
+ }
+
+ if ( pop == null ) {
+ pop = context;
+ }
+
+ Expr.relative[ cur ]( checkSet, pop, isXML(context) );
+ }
+ }
+
+ if ( !checkSet ) {
+ checkSet = set;
+ }
+
+ if ( !checkSet ) {
+ throw "Syntax error, unrecognized expression: " + (cur || selector);
+ }
+
+ if ( toString.call(checkSet) === "[object Array]" ) {
+ if ( !prune ) {
+ results.push.apply( results, checkSet );
+ } else if ( context.nodeType === 1 ) {
+ for ( var i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) {
+ results.push( set[i] );
+ }
+ }
+ } else {
+ for ( var i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+ results.push( set[i] );
+ }
+ }
+ }
+ } else {
+ makeArray( checkSet, results );
+ }
+
+ if ( extra ) {
+ Sizzle( extra, context, results, seed );
+
+ if ( sortOrder ) {
+ hasDuplicate = false;
+ results.sort(sortOrder);
+
+ if ( hasDuplicate ) {
+ for ( var i = 1; i < results.length; i++ ) {
+ if ( results[i] === results[i-1] ) {
+ results.splice(i--, 1);
+ }
+ }
+ }
+ }
+ }
+
+ return results;
+};
+
+Sizzle.matches = function(expr, set){
+ return Sizzle(expr, null, null, set);
+};
+
+Sizzle.find = function(expr, context, isXML){
+ var set, match;
+
+ if ( !expr ) {
+ return [];
+ }
+
+ for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
+ var type = Expr.order[i], match;
+
+ if ( (match = Expr.match[ type ].exec( expr )) ) {
+ var left = RegExp.leftContext;
+
+ if ( left.substr( left.length - 1 ) !== "\\" ) {
+ match[1] = (match[1] || "").replace(/\\/g, "");
+ set = Expr.find[ type ]( match, context, isXML );
+ if ( set != null ) {
+ expr = expr.replace( Expr.match[ type ], "" );
+ break;
+ }
+ }
+ }
+ }
+
+ if ( !set ) {
+ set = context.getElementsByTagName("*");
+ }
+
+ return {set: set, expr: expr};
+};
+
+Sizzle.filter = function(expr, set, inplace, not){
+ var old = expr, result = [], curLoop = set, match, anyFound,
+ isXMLFilter = set && set[0] && isXML(set[0]);
+
+ while ( expr && set.length ) {
+ for ( var type in Expr.filter ) {
+ if ( (match = Expr.match[ type ].exec( expr )) != null ) {
+ var filter = Expr.filter[ type ], found, item;
+ anyFound = false;
+
+ if ( curLoop == result ) {
+ result = [];
+ }
+
+ if ( Expr.preFilter[ type ] ) {
+ match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+ if ( !match ) {
+ anyFound = found = true;
+ } else if ( match === true ) {
+ continue;
+ }
+ }
+
+ if ( match ) {
+ for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
+ if ( item ) {
+ found = filter( item, match, i, curLoop );
+ var pass = not ^ !!found;
+
+ if ( inplace && found != null ) {
+ if ( pass ) {
+ anyFound = true;
+ } else {
+ curLoop[i] = false;
+ }
+ } else if ( pass ) {
+ result.push( item );
+ anyFound = true;
+ }
+ }
+ }
+ }
+
+ if ( found !== undefined ) {
+ if ( !inplace ) {
+ curLoop = result;
+ }
+
+ expr = expr.replace( Expr.match[ type ], "" );
+
+ if ( !anyFound ) {
+ return [];
+ }
+
+ break;
+ }
+ }
+ }
+
+ // Improper expression
+ if ( expr == old ) {
+ if ( anyFound == null ) {
+ throw "Syntax error, unrecognized expression: " + expr;
+ } else {
+ break;
+ }
+ }
+
+ old = expr;
+ }
+
+ return curLoop;
+};
+
+var Expr = Sizzle.selectors = {
+ order: [ "ID", "NAME", "TAG" ],
+ match: {
+ ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
+ CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
+ NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
+ ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
+ TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
+ CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
+ POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
+ PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
+ },
+ attrMap: {
+ "class": "className",
+ "for": "htmlFor"
+ },
+ attrHandle: {
+ href: function(elem){
+ return elem.getAttribute("href");
+ }
+ },
+ relative: {
+ "+": function(checkSet, part, isXML){
+ var isPartStr = typeof part === "string",
+ isTag = isPartStr && !/\W/.test(part),
+ isPartStrNotTag = isPartStr && !isTag;
+
+ if ( isTag && !isXML ) {
+ part = part.toUpperCase();
+ }
+
+ for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+ if ( (elem = checkSet[i]) ) {
+ while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+ checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ?
+ elem || false :
+ elem === part;
+ }
+ }
+
+ if ( isPartStrNotTag ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ },
+ ">": function(checkSet, part, isXML){
+ var isPartStr = typeof part === "string";
+
+ if ( isPartStr && !/\W/.test(part) ) {
+ part = isXML ? part : part.toUpperCase();
+
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ var parent = elem.parentNode;
+ checkSet[i] = parent.nodeName === part ? parent : false;
+ }
+ }
+ } else {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ checkSet[i] = isPartStr ?
+ elem.parentNode :
+ elem.parentNode === part;
+ }
+ }
+
+ if ( isPartStr ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ }
+ },
+ "": function(checkSet, part, isXML){
+ var doneName = done++, checkFn = dirCheck;
+
+ if ( !part.match(/\W/) ) {
+ var nodeCheck = part = isXML ? part : part.toUpperCase();
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
+ },
+ "~": function(checkSet, part, isXML){
+ var doneName = done++, checkFn = dirCheck;
+
+ if ( typeof part === "string" && !part.match(/\W/) ) {
+ var nodeCheck = part = isXML ? part : part.toUpperCase();
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
+ }
+ },
+ find: {
+ ID: function(match, context, isXML){
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ return m ? [m] : [];
+ }
+ },
+ NAME: function(match, context, isXML){
+ if ( typeof context.getElementsByName !== "undefined" ) {
+ var ret = [], results = context.getElementsByName(match[1]);
+
+ for ( var i = 0, l = results.length; i < l; i++ ) {
+ if ( results[i].getAttribute("name") === match[1] ) {
+ ret.push( results[i] );
+ }
+ }
+
+ return ret.length === 0 ? null : ret;
+ }
+ },
+ TAG: function(match, context){
+ return context.getElementsByTagName(match[1]);
+ }
+ },
+ preFilter: {
+ CLASS: function(match, curLoop, inplace, result, not, isXML){
+ match = " " + match[1].replace(/\\/g, "") + " ";
+
+ if ( isXML ) {
+ return match;
+ }
+
+ for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+ if ( elem ) {
+ if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) {
+ if ( !inplace )
+ result.push( elem );
+ } else if ( inplace ) {
+ curLoop[i] = false;
+ }
+ }
+ }
+
+ return false;
+ },
+ ID: function(match){
+ return match[1].replace(/\\/g, "");
+ },
+ TAG: function(match, curLoop){
+ for ( var i = 0; curLoop[i] === false; i++ ){}
+ return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
+ },
+ CHILD: function(match){
+ if ( match[1] == "nth" ) {
+ // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+ var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
+ match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" ||
+ !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+ // calculate the numbers (first)n+(last) including if they are negative
+ match[2] = (test[1] + (test[2] || 1)) - 0;
+ match[3] = test[3] - 0;
+ }
+
+ // TODO: Move to normal caching system
+ match[0] = done++;
+
+ return match;
+ },
+ ATTR: function(match, curLoop, inplace, result, not, isXML){
+ var name = match[1].replace(/\\/g, "");
+
+ if ( !isXML && Expr.attrMap[name] ) {
+ match[1] = Expr.attrMap[name];
+ }
+
+ if ( match[2] === "~=" ) {
+ match[4] = " " + match[4] + " ";
+ }
+
+ return match;
+ },
+ PSEUDO: function(match, curLoop, inplace, result, not){
+ if ( match[1] === "not" ) {
+ // If we're dealing with a complex expression, or a simple one
+ if ( match[3].match(chunker).length > 1 || /^\w/.test(match[3]) ) {
+ match[3] = Sizzle(match[3], null, null, curLoop);
+ } else {
+ var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+ if ( !inplace ) {
+ result.push.apply( result, ret );
+ }
+ return false;
+ }
+ } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+ return true;
+ }
+
+ return match;
+ },
+ POS: function(match){
+ match.unshift( true );
+ return match;
+ }
+ },
+ filters: {
+ enabled: function(elem){
+ return elem.disabled === false && elem.type !== "hidden";
+ },
+ disabled: function(elem){
+ return elem.disabled === true;
+ },
+ checked: function(elem){
+ return elem.checked === true;
+ },
+ selected: function(elem){
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ elem.parentNode.selectedIndex;
+ return elem.selected === true;
+ },
+ parent: function(elem){
+ return !!elem.firstChild;
+ },
+ empty: function(elem){
+ return !elem.firstChild;
+ },
+ has: function(elem, i, match){
+ return !!Sizzle( match[3], elem ).length;
+ },
+ header: function(elem){
+ return /h\d/i.test( elem.nodeName );
+ },
+ text: function(elem){
+ return "text" === elem.type;
+ },
+ radio: function(elem){
+ return "radio" === elem.type;
+ },
+ checkbox: function(elem){
+ return "checkbox" === elem.type;
+ },
+ file: function(elem){
+ return "file" === elem.type;
+ },
+ password: function(elem){
+ return "password" === elem.type;
+ },
+ submit: function(elem){
+ return "submit" === elem.type;
+ },
+ image: function(elem){
+ return "image" === elem.type;
+ },
+ reset: function(elem){
+ return "reset" === elem.type;
+ },
+ button: function(elem){
+ return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON";
+ },
+ input: function(elem){
+ return /input|select|textarea|button/i.test(elem.nodeName);
+ }
+ },
+ setFilters: {
+ first: function(elem, i){
+ return i === 0;
+ },
+ last: function(elem, i, match, array){
+ return i === array.length - 1;
+ },
+ even: function(elem, i){
+ return i % 2 === 0;
+ },
+ odd: function(elem, i){
+ return i % 2 === 1;
+ },
+ lt: function(elem, i, match){
+ return i < match[3] - 0;
+ },
+ gt: function(elem, i, match){
+ return i > match[3] - 0;
+ },
+ nth: function(elem, i, match){
+ return match[3] - 0 == i;
+ },
+ eq: function(elem, i, match){
+ return match[3] - 0 == i;
+ }
+ },
+ filter: {
+ PSEUDO: function(elem, match, i, array){
+ var name = match[1], filter = Expr.filters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ } else if ( name === "contains" ) {
+ return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0;
+ } else if ( name === "not" ) {
+ var not = match[3];
+
+ for ( var i = 0, l = not.length; i < l; i++ ) {
+ if ( not[i] === elem ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+ },
+ CHILD: function(elem, match){
+ var type = match[1], node = elem;
+ switch (type) {
+ case 'only':
+ case 'first':
+ while (node = node.previousSibling) {
+ if ( node.nodeType === 1 ) return false;
+ }
+ if ( type == 'first') return true;
+ node = elem;
+ case 'last':
+ while (node = node.nextSibling) {
+ if ( node.nodeType === 1 ) return false;
+ }
+ return true;
+ case 'nth':
+ var first = match[2], last = match[3];
+
+ if ( first == 1 && last == 0 ) {
+ return true;
+ }
+
+ var doneName = match[0],
+ parent = elem.parentNode;
+
+ if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
+ var count = 0;
+ for ( node = parent.firstChild; node; node = node.nextSibling ) {
+ if ( node.nodeType === 1 ) {
+ node.nodeIndex = ++count;
+ }
+ }
+ parent.sizcache = doneName;
+ }
+
+ var diff = elem.nodeIndex - last;
+ if ( first == 0 ) {
+ return diff == 0;
+ } else {
+ return ( diff % first == 0 && diff / first >= 0 );
+ }
+ }
+ },
+ ID: function(elem, match){
+ return elem.nodeType === 1 && elem.getAttribute("id") === match;
+ },
+ TAG: function(elem, match){
+ return (match === "*" && elem.nodeType === 1) || elem.nodeName === match;
+ },
+ CLASS: function(elem, match){
+ return (" " + (elem.className || elem.getAttribute("class")) + " ")
+ .indexOf( match ) > -1;
+ },
+ ATTR: function(elem, match){
+ var name = match[1],
+ result = Expr.attrHandle[ name ] ?
+ Expr.attrHandle[ name ]( elem ) :
+ elem[ name ] != null ?
+ elem[ name ] :
+ elem.getAttribute( name ),
+ value = result + "",
+ type = match[2],
+ check = match[4];
+
+ return result == null ?
+ type === "!=" :
+ type === "=" ?
+ value === check :
+ type === "*=" ?
+ value.indexOf(check) >= 0 :
+ type === "~=" ?
+ (" " + value + " ").indexOf(check) >= 0 :
+ !check ?
+ value && result !== false :
+ type === "!=" ?
+ value != check :
+ type === "^=" ?
+ value.indexOf(check) === 0 :
+ type === "$=" ?
+ value.substr(value.length - check.length) === check :
+ type === "|=" ?
+ value === check || value.substr(0, check.length + 1) === check + "-" :
+ false;
+ },
+ POS: function(elem, match, i, array){
+ var name = match[2], filter = Expr.setFilters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ }
+ }
+ }
+};
+
+var origPOS = Expr.match.POS;
+
+for ( var type in Expr.match ) {
+ Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
+}
+
+var makeArray = function(array, results) {
+ array = Array.prototype.slice.call( array );
+
+ if ( results ) {
+ results.push.apply( results, array );
+ return results;
+ }
+
+ return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+try {
+ Array.prototype.slice.call( document.documentElement.childNodes );
+
+// Provide a fallback method if it does not work
+} catch(e){
+ makeArray = function(array, results) {
+ var ret = results || [];
+
+ if ( toString.call(array) === "[object Array]" ) {
+ Array.prototype.push.apply( ret, array );
+ } else {
+ if ( typeof array.length === "number" ) {
+ for ( var i = 0, l = array.length; i < l; i++ ) {
+ ret.push( array[i] );
+ }
+ } else {
+ for ( var i = 0; array[i]; i++ ) {
+ ret.push( array[i] );
+ }
+ }
+ }
+
+ return ret;
+ };
+}
+
+var sortOrder;
+
+if ( document.documentElement.compareDocumentPosition ) {
+ sortOrder = function( a, b ) {
+ var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+} else if ( "sourceIndex" in document.documentElement ) {
+ sortOrder = function( a, b ) {
+ var ret = a.sourceIndex - b.sourceIndex;
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+} else if ( document.createRange ) {
+ sortOrder = function( a, b ) {
+ var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
+ aRange.selectNode(a);
+ aRange.collapse(true);
+ bRange.selectNode(b);
+ bRange.collapse(true);
+ var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+}
+
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+ // We're going to inject a fake input element with a specified name
+ var form = document.createElement("form"),
+ id = "script" + (new Date).getTime();
+ form.innerHTML = "<input name='" + id + "'/>";
+
+ // Inject it into the root element, check its status, and remove it quickly
+ var root = document.documentElement;
+ root.insertBefore( form, root.firstChild );
+
+ // The workaround has to do additional checks after a getElementById
+ // Which slows things down for other browsers (hence the branching)
+ if ( !!document.getElementById( id ) ) {
+ Expr.find.ID = function(match, context, isXML){
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
+ }
+ };
+
+ Expr.filter.ID = function(elem, match){
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+ return elem.nodeType === 1 && node && node.nodeValue === match;
+ };
+ }
+
+ root.removeChild( form );
+})();
+
+(function(){
+ // Check to see if the browser returns only elements
+ // when doing getElementsByTagName("*")
+
+ // Create a fake element
+ var div = document.createElement("div");
+ div.appendChild( document.createComment("") );
+
+ // Make sure no comments are found
+ if ( div.getElementsByTagName("*").length > 0 ) {
+ Expr.find.TAG = function(match, context){
+ var results = context.getElementsByTagName(match[1]);
+
+ // Filter out possible comments
+ if ( match[1] === "*" ) {
+ var tmp = [];
+
+ for ( var i = 0; results[i]; i++ ) {
+ if ( results[i].nodeType === 1 ) {
+ tmp.push( results[i] );
+ }
+ }
+
+ results = tmp;
+ }
+
+ return results;
+ };
+ }
+
+ // Check to see if an attribute returns normalized href attributes
+ div.innerHTML = "<a href='#'></a>";
+ if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+ div.firstChild.getAttribute("href") !== "#" ) {
+ Expr.attrHandle.href = function(elem){
+ return elem.getAttribute("href", 2);
+ };
+ }
+})();
+
+if ( document.querySelectorAll ) (function(){
+ var oldSizzle = Sizzle, div = document.createElement("div");
+ div.innerHTML = "<p class='TEST'></p>";
+
+ // Safari can't handle uppercase or unicode characters when
+ // in quirks mode.
+ if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+ return;
+ }
+
+ Sizzle = function(query, context, extra, seed){
+ context = context || document;
+
+ // Only use querySelectorAll on non-XML documents
+ // (ID selectors don't work in non-HTML documents)
+ if ( !seed && context.nodeType === 9 && !isXML(context) ) {
+ try {
+ return makeArray( context.querySelectorAll(query), extra );
+ } catch(e){}
+ }
+
+ return oldSizzle(query, context, extra, seed);
+ };
+
+ Sizzle.find = oldSizzle.find;
+ Sizzle.filter = oldSizzle.filter;
+ Sizzle.selectors = oldSizzle.selectors;
+ Sizzle.matches = oldSizzle.matches;
+})();
+
+if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){
+ var div = document.createElement("div");
+ div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+ // Opera can't find a second classname (in 9.6)
+ if ( div.getElementsByClassName("e").length === 0 )
+ return;
+
+ // Safari caches class attributes, doesn't catch changes (in 3.2)
+ div.lastChild.className = "e";
+
+ if ( div.getElementsByClassName("e").length === 1 )
+ return;
+
+ Expr.order.splice(1, 0, "CLASS");
+ Expr.find.CLASS = function(match, context, isXML) {
+ if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+ return context.getElementsByClassName(match[1]);
+ }
+ };
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ var sibDir = dir == "previousSibling" && !isXML;
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ if ( sibDir && elem.nodeType === 1 ){
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ elem = elem[dir];
+ var match = false;
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 && !isXML ){
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if ( elem.nodeName === cur ) {
+ match = elem;
+ break;
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ var sibDir = dir == "previousSibling" && !isXML;
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ if ( sibDir && elem.nodeType === 1 ) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ elem = elem[dir];
+ var match = false;
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 ) {
+ if ( !isXML ) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ if ( typeof cur !== "string" ) {
+ if ( elem === cur ) {
+ match = true;
+ break;
+ }
+
+ } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+ match = elem;
+ break;
+ }
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+var contains = document.compareDocumentPosition ? function(a, b){
+ return a.compareDocumentPosition(b) & 16;
+} : function(a, b){
+ return a !== b && (a.contains ? a.contains(b) : true);
+};
+
+var isXML = function(elem){
+ return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
+ !!elem.ownerDocument && isXML( elem.ownerDocument );
+};
+
+var posProcess = function(selector, context){
+ var tmpSet = [], later = "", match,
+ root = context.nodeType ? [context] : context;
+
+ // Position selectors must be done after the filter
+ // And so must :not(positional) so we move all PSEUDOs to the end
+ while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+ later += match[0];
+ selector = selector.replace( Expr.match.PSEUDO, "" );
+ }
+
+ selector = Expr.relative[selector] ? selector + "*" : selector;
+
+ for ( var i = 0, l = root.length; i < l; i++ ) {
+ Sizzle( selector, root[i], tmpSet );
+ }
+
+ return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+jQuery.find = Sizzle;
+jQuery.filter = Sizzle.filter;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.filters;
+
+Sizzle.selectors.filters.hidden = function(elem){
+ return elem.offsetWidth === 0 || elem.offsetHeight === 0;
+};
+
+Sizzle.selectors.filters.visible = function(elem){
+ return elem.offsetWidth > 0 || elem.offsetHeight > 0;
+};
+
+Sizzle.selectors.filters.animated = function(elem){
+ return jQuery.grep(jQuery.timers, function(fn){
+ return elem === fn.elem;
+ }).length;
+};
+
+jQuery.multiFilter = function( expr, elems, not ) {
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return Sizzle.matches(expr, elems);
+};
+
+jQuery.dir = function( elem, dir ){
+ var matched = [], cur = elem[dir];
+ while ( cur && cur != document ) {
+ if ( cur.nodeType == 1 )
+ matched.push( cur );
+ cur = cur[dir];
+ }
+ return matched;
+};
+
+jQuery.nth = function(cur, result, dir, elem){
+ result = result || 1;
+ var num = 0;
+
+ for ( ; cur; cur = cur[dir] )
+ if ( cur.nodeType == 1 && ++num == result )
+ break;
+
+ return cur;
+};
+
+jQuery.sibling = function(n, elem){
+ var r = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType == 1 && n != elem )
+ r.push( n );
+ }
+
+ return r;
+};
+
+return;
+
+window.Sizzle = Sizzle;
+
+})();
+/*
+ * A number of helper functions used for managing events.
+ * Many of the ideas behind this code originated from
+ * Dean Edwards' addEvent library.
+ */
+jQuery.event = {
+
+ // Bind an event to an element
+ // Original by Dean Edwards
+ add: function(elem, types, handler, data) {
+ if ( elem.nodeType == 3 || elem.nodeType == 8 )
+ return;
+
+ // For whatever reason, IE has trouble passing the window object
+ // around, causing it to be cloned in the process
+ if ( elem.setInterval && elem != window )
+ elem = window;
+
+ // Make sure that the function being executed has a unique ID
+ if ( !handler.guid )
+ handler.guid = this.guid++;
+
+ // if data is passed, bind to handler
+ if ( data !== undefined ) {
+ // Create temporary function pointer to original handler
+ var fn = handler;
+
+ // Create unique handler function, wrapped around original handler
+ handler = this.proxy( fn );
+
+ // Store data in unique handler
+ handler.data = data;
+ }
+
+ // Init the element's event structure
+ var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
+ handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){
+ // Handle the second event of a trigger and when
+ // an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
+ jQuery.event.handle.apply(arguments.callee.elem, arguments) :
+ undefined;
+ });
+ // Add elem as a property of the handle function
+ // This is to prevent a memory leak with non-native
+ // event in IE.
+ handle.elem = elem;
+
+ // Handle multiple events separated by a space
+ // jQuery(...).bind("mouseover mouseout", fn);
+ jQuery.each(types.split(/\s+/), function(index, type) {
+ // Namespaced event handlers
+ var namespaces = type.split(".");
+ type = namespaces.shift();
+ handler.type = namespaces.slice().sort().join(".");
+
+ // Get the current list of functions bound to this event
+ var handlers = events[type];
+
+ if ( jQuery.event.specialAll[type] )
+ jQuery.event.specialAll[type].setup.call(elem, data, namespaces);
+
+ // Init the event handler queue
+ if (!handlers) {
+ handlers = events[type] = {};
+
+ // Check for a special event handler
+ // Only use addEventListener/attachEvent if the special
+ // events handler returns false
+ if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem, data, namespaces) === false ) {
+ // Bind the global event handler to the element
+ if (elem.addEventListener)
+ elem.addEventListener(type, handle, false);
+ else if (elem.attachEvent)
+ elem.attachEvent("on" + type, handle);
+ }
+ }
+
+ // Add the function to the element's handler list
+ handlers[handler.guid] = handler;
+
+ // Keep track of which events have been used, for global triggering
+ jQuery.event.global[type] = true;
+ });
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ guid: 1,
+ global: {},
+
+ // Detach an event or set of events from an element
+ remove: function(elem, types, handler) {
+ // don't do events on text and comment nodes
+ if ( elem.nodeType == 3 || elem.nodeType == 8 )
+ return;
+
+ var events = jQuery.data(elem, "events"), ret, index;
+
+ if ( events ) {
+ // Unbind all events for the element
+ if ( types === undefined || (typeof types === "string" && types.charAt(0) == ".") )
+ for ( var type in events )
+ this.remove( elem, type + (types || "") );
+ else {
+ // types is actually an event object here
+ if ( types.type ) {
+ handler = types.handler;
+ types = types.type;
+ }
+
+ // Handle multiple events seperated by a space
+ // jQuery(...).unbind("mouseover mouseout", fn);
+ jQuery.each(types.split(/\s+/), function(index, type){
+ // Namespaced event handlers
+ var namespaces = type.split(".");
+ type = namespaces.shift();
+ var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
+
+ if ( events[type] ) {
+ // remove the given handler for the given type
+ if ( handler )
+ delete events[type][handler.guid];
+
+ // remove all handlers for the given type
+ else
+ for ( var handle in events[type] )
+ // Handle the removal of namespaced events
+ if ( namespace.test(events[type][handle].type) )
+ delete events[type][handle];
+
+ if ( jQuery.event.specialAll[type] )
+ jQuery.event.specialAll[type].teardown.call(elem, namespaces);
+
+ // remove generic event handler if no more handlers exist
+ for ( ret in events[type] ) break;
+ if ( !ret ) {
+ if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem, namespaces) === false ) {
+ if (elem.removeEventListener)
+ elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
+ else if (elem.detachEvent)
+ elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
+ }
+ ret = null;
+ delete events[type];
+ }
+ }
+ });
+ }
+
+ // Remove the expando if it's no longer used
+ for ( ret in events ) break;
+ if ( !ret ) {
+ var handle = jQuery.data( elem, "handle" );
+ if ( handle ) handle.elem = null;
+ jQuery.removeData( elem, "events" );
+ jQuery.removeData( elem, "handle" );
+ }
+ }
+ },
+
+ // bubbling is internal
+ trigger: function( event, data, elem, bubbling ) {
+ // Event object or event type
+ var type = event.type || event;
+
+ if( !bubbling ){
+ event = typeof event === "object" ?
+ // jQuery.Event object
+ event[expando] ? event :
+ // Object literal
+ jQuery.extend( jQuery.Event(type), event ) :
+ // Just the event type (string)
+ jQuery.Event(type);
+
+ if ( type.indexOf("!") >= 0 ) {
+ event.type = type = type.slice(0, -1);
+ event.exclusive = true;
+ }
+
+ // Handle a global trigger
+ if ( !elem ) {
+ // Don't bubble custom events when global (to avoid too much overhead)
+ event.stopPropagation();
+ // Only trigger if we've ever bound an event for it
+ if ( this.global[type] )
+ jQuery.each( jQuery.cache, function(){
+ if ( this.events && this.events[type] )
+ jQuery.event.trigger( event, data, this.handle.elem );
+ });
+ }
+
+ // Handle triggering a single element
+
+ // don't do events on text and comment nodes
+ if ( !elem || elem.nodeType == 3 || elem.nodeType == 8 )
+ return undefined;
+
+ // Clean up in case it is reused
+ event.result = undefined;
+ event.target = elem;
+
+ // Clone the incoming data, if any
+ data = jQuery.makeArray(data);
+ data.unshift( event );
+ }
+
+ event.currentTarget = elem;
+
+ // Trigger the event, it is assumed that "handle" is a function
+ var handle = jQuery.data(elem, "handle");
+ if ( handle )
+ handle.apply( elem, data );
+
+ // Handle triggering native .onfoo handlers (and on links since we don't call .click() for links)
+ if ( (!elem[type] || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
+ event.result = false;
+
+ // Trigger the native events (except for clicks on links)
+ if ( !bubbling && elem[type] && !event.isDefaultPrevented() && !(jQuery.nodeName(elem, 'a') && type == "click") ) {
+ this.triggered = true;
+ try {
+ elem[ type ]();
+ // prevent IE from throwing an error for some hidden elements
+ } catch (e) {}
+ }
+
+ this.triggered = false;
+
+ if ( !event.isPropagationStopped() ) {
+ var parent = elem.parentNode || elem.ownerDocument;
+ if ( parent )
+ jQuery.event.trigger(event, data, parent, true);
+ }
+ },
+
+ handle: function(event) {
+ // returned undefined or false
+ var all, handlers;
+
+ event = arguments[0] = jQuery.event.fix( event || window.event );
+ event.currentTarget = this;
+
+ // Namespaced event handlers
+ var namespaces = event.type.split(".");
+ event.type = namespaces.shift();
+
+ // Cache this now, all = true means, any handler
+ all = !namespaces.length && !event.exclusive;
+
+ var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
+
+ handlers = ( jQuery.data(this, "events") || {} )[event.type];
+
+ for ( var j in handlers ) {
+ var handler = handlers[j];
+
+ // Filter the functions by class
+ if ( all || namespace.test(handler.type) ) {
+ // Pass in a reference to the handler function itself
+ // So that we can later remove it
+ event.handler = handler;
+ event.data = handler.data;
+
+ var ret = handler.apply(this, arguments);
+
+ if( ret !== undefined ){
+ event.result = ret;
+ if ( ret === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+
+ if( event.isImmediatePropagationStopped() )
+ break;
+
+ }
+ }
+ },
+
+ props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+
+ fix: function(event) {
+ if ( event[expando] )
+ return event;
+
+ // store a copy of the original event object
+ // and "clone" to set read-only properties
+ var originalEvent = event;
+ event = jQuery.Event( originalEvent );
+
+ for ( var i = this.props.length, prop; i; ){
+ prop = this.props[ --i ];
+ event[ prop ] = originalEvent[ prop ];
+ }
+
+ // Fix target property, if necessary
+ if ( !event.target )
+ event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either
+
+ // check if target is a textnode (safari)
+ if ( event.target.nodeType == 3 )
+ event.target = event.target.parentNode;
+
+ // Add relatedTarget, if necessary
+ if ( !event.relatedTarget && event.fromElement )
+ event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if ( event.pageX == null && event.clientX != null ) {
+ var doc = document.documentElement, body = document.body;
+ event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
+ event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
+ }
+
+ // Add which for key events
+ if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
+ event.which = event.charCode || event.keyCode;
+
+ // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
+ if ( !event.metaKey && event.ctrlKey )
+ event.metaKey = event.ctrlKey;
+
+ // Add which for click: 1 == left; 2 == middle; 3 == right
+ // Note: button is not normalized, so don't use it
+ if ( !event.which && event.button )
+ event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
+
+ return event;
+ },
+
+ proxy: function( fn, proxy ){
+ proxy = proxy || function(){ return fn.apply(this, arguments); };
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++;
+ // So proxy can be declared as an argument
+ return proxy;
+ },
+
+ special: {
+ ready: {
+ // Make sure the ready event is setup
+ setup: bindReady,
+ teardown: function() {}
+ }
+ },
+
+ specialAll: {
+ live: {
+ setup: function( selector, namespaces ){
+ jQuery.event.add( this, namespaces[0], liveHandler );
+ },
+ teardown: function( namespaces ){
+ if ( namespaces.length ) {
+ var remove = 0, name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)");
+
+ jQuery.each( (jQuery.data(this, "events").live || {}), function(){
+ if ( name.test(this.type) )
+ remove++;
+ });
+
+ if ( remove < 1 )
+ jQuery.event.remove( this, namespaces[0], liveHandler );
+ }
+ }
+ }
+ }
+};
+
+jQuery.Event = function( src ){
+ // Allow instantiation without the 'new' keyword
+ if( !this.preventDefault )
+ return new jQuery.Event(src);
+
+ // Event object
+ if( src && src.type ){
+ this.originalEvent = src;
+ this.type = src.type;
+ // Event type
+ }else
+ this.type = src;
+
+ // timeStamp is buggy for some events on Firefox(#3843)
+ // So we won't rely on the native value
+ this.timeStamp = now();
+
+ // Mark it as fixed
+ this[expando] = true;
+};
+
+function returnFalse(){
+ return false;
+}
+function returnTrue(){
+ return true;
+}
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ preventDefault: function() {
+ this.isDefaultPrevented = returnTrue;
+
+ var e = this.originalEvent;
+ if( !e )
+ return;
+ // if preventDefault exists run it on the original event
+ if (e.preventDefault)
+ e.preventDefault();
+ // otherwise set the returnValue property of the original event to false (IE)
+ e.returnValue = false;
+ },
+ stopPropagation: function() {
+ this.isPropagationStopped = returnTrue;
+
+ var e = this.originalEvent;
+ if( !e )
+ return;
+ // if stopPropagation exists run it on the original event
+ if (e.stopPropagation)
+ e.stopPropagation();
+ // otherwise set the cancelBubble property of the original event to true (IE)
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation:function(){
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ },
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse
+};
+// Checks if an event happened on an element within another element
+// Used in jQuery.event.special.mouseenter and mouseleave handlers
+var withinElement = function(event) {
+ // Check if mouse(over|out) are still within the same parent element
+ var parent = event.relatedTarget;
+ // Traverse up the tree
+ while ( parent && parent != this )
+ try { parent = parent.parentNode; }
+ catch(e) { parent = this; }
+
+ if( parent != this ){
+ // set the correct event type
+ event.type = event.data;
+ // handle event if we actually just moused on to a non sub-element
+ jQuery.event.handle.apply( this, arguments );
+ }
+};
+
+jQuery.each({
+ mouseover: 'mouseenter',
+ mouseout: 'mouseleave'
+}, function( orig, fix ){
+ jQuery.event.special[ fix ] = {
+ setup: function(){
+ jQuery.event.add( this, orig, withinElement, fix );
+ },
+ teardown: function(){
+ jQuery.event.remove( this, orig, withinElement );
+ }
+ };
+});
+
+jQuery.fn.extend({
+ bind: function( type, data, fn ) {
+ return type == "unload" ? this.one(type, data, fn) : this.each(function(){
+ jQuery.event.add( this, type, fn || data, fn && data );
+ });
+ },
+
+ one: function( type, data, fn ) {
+ var one = jQuery.event.proxy( fn || data, function(event) {
+ jQuery(this).unbind(event, one);
+ return (fn || data).apply( this, arguments );
+ });
+ return this.each(function(){
+ jQuery.event.add( this, type, one, fn && data);
+ });
+ },
+
+ unbind: function( type, fn ) {
+ return this.each(function(){
+ jQuery.event.remove( this, type, fn );
+ });
+ },
+
+ trigger: function( type, data ) {
+ return this.each(function(){
+ jQuery.event.trigger( type, data, this );
+ });
+ },
+
+ triggerHandler: function( type, data ) {
+ if( this[0] ){
+ var event = jQuery.Event(type);
+ event.preventDefault();
+ event.stopPropagation();
+ jQuery.event.trigger( event, data, this[0] );
+ return event.result;
+ }
+ },
+
+ toggle: function( fn ) {
+ // Save reference to arguments for access in closure
+ var args = arguments, i = 1;
+
+ // link all the functions, so any of them can unbind this click handler
+ while( i < args.length )
+ jQuery.event.proxy( fn, args[i++] );
+
+ return this.click( jQuery.event.proxy( fn, function(event) {
+ // Figure out which function to execute
+ this.lastToggle = ( this.lastToggle || 0 ) % i;
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[ this.lastToggle++ ].apply( this, arguments ) || false;
+ }));
+ },
+
+ hover: function(fnOver, fnOut) {
+ return this.mouseenter(fnOver).mouseleave(fnOut);
+ },
+
+ ready: function(fn) {
+ // Attach the listeners
+ bindReady();
+
+ // If the DOM is already ready
+ if ( jQuery.isReady )
+ // Execute the function immediately
+ fn.call( document, jQuery );
+
+ // Otherwise, remember the function for later
+ else
+ // Add the function to the wait list
+ jQuery.readyList.push( fn );
+
+ return this;
+ },
+
+ live: function( type, fn ){
+ var proxy = jQuery.event.proxy( fn );
+ proxy.guid += this.selector + type;
+
+ jQuery(document).bind( liveConvert(type, this.selector), this.selector, proxy );
+
+ return this;
+ },
+
+ die: function( type, fn ){
+ jQuery(document).unbind( liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type } : null );
+ return this;
+ }
+});
+
+function liveHandler( event ){
+ var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"),
+ stop = true,
+ elems = [];
+
+ jQuery.each(jQuery.data(this, "events").live || [], function(i, fn){
+ if ( check.test(fn.type) ) {
+ var elem = jQuery(event.target).closest(fn.data)[0];
+ if ( elem )
+ elems.push({ elem: elem, fn: fn });
+ }
+ });
+
+ elems.sort(function(a,b) {
+ return jQuery.data(a.elem, "closest") - jQuery.data(b.elem, "closest");
+ });
+
+ jQuery.each(elems, function(){
+ if ( this.fn.call(this.elem, event, this.fn.data) === false )
+ return (stop = false);
+ });
+
+ return stop;
+}
+
+function liveConvert(type, selector){
+ return ["live", type, selector.replace(/\./g, "`").replace(/ /g, "|")].join(".");
+}
+
+jQuery.extend({
+ isReady: false,
+ readyList: [],
+ // Handle when the DOM is ready
+ ready: function() {
+ // Make sure that the DOM is not already loaded
+ if ( !jQuery.isReady ) {
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If there are functions bound, to execute
+ if ( jQuery.readyList ) {
+ // Execute all of them
+ jQuery.each( jQuery.readyList, function(){
+ this.call( document, jQuery );
+ });
+
+ // Reset the list of functions
+ jQuery.readyList = null;
+ }
+
+ // Trigger any bound ready events
+ jQuery(document).triggerHandler("ready");
+ }
+ }
+});
+
+var readyBound = false;
+
+function bindReady(){
+ if ( readyBound ) return;
+ readyBound = true;
+
+ // Mozilla, Opera and webkit nightlies currently support this event
+ if ( document.addEventListener ) {
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", function(){
+ document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
+ jQuery.ready();
+ }, false );
+
+ // If IE event model is used
+ } else if ( document.attachEvent ) {
+ // ensure firing before onload,
+ // maybe late but safe also for iframes
+ document.attachEvent("onreadystatechange", function(){
+ if ( document.readyState === "complete" ) {
+ document.detachEvent( "onreadystatechange", arguments.callee );
+ jQuery.ready();
+ }
+ });
+
+ // If IE and not an iframe
+ // continually check to see if the document is ready
+ if ( document.documentElement.doScroll && window == window.top ) (function(){
+ if ( jQuery.isReady ) return;
+
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch( error ) {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+
+ // and execute any waiting functions
+ jQuery.ready();
+ })();
+ }
+
+ // A fallback to window.onload, that will always work
+ jQuery.event.add( window, "load", jQuery.ready );
+}
+
+jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
+ "mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
+ "change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){
+
+ // Handle event binding
+ jQuery.fn[name] = function(fn){
+ return fn ? this.bind(name, fn) : this.trigger(name);
+ };
+});
+
+// Prevent memory leaks in IE
+// And prevent errors on refresh with events like mouseover in other browsers
+// Window isn't included so as not to unbind existing unload events
+jQuery( window ).bind( 'unload', function(){
+ for ( var id in jQuery.cache )
+ // Skip the window
+ if ( id != 1 && jQuery.cache[ id ].handle )
+ jQuery.event.remove( jQuery.cache[ id ].handle.elem );
+});
+(function(){
+
+ jQuery.support = {};
+
+ var root = document.documentElement,
+ script = document.createElement("script"),
+ div = document.createElement("div"),
+ id = "script" + (new Date).getTime();
+
+ div.style.display = "none";
+ div.innerHTML = ' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';
+
+ var all = div.getElementsByTagName("*"),
+ a = div.getElementsByTagName("a")[0];
+
+ // Can't get basic test support
+ if ( !all || !all.length || !a ) {
+ return;
+ }
+
+ jQuery.support = {
+ // IE strips leading whitespace when .innerHTML is used
+ leadingWhitespace: div.firstChild.nodeType == 3,
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ tbody: !div.getElementsByTagName("tbody").length,
+
+ // Make sure that you can get all elements in an <object> element
+ // IE 7 always returns no results
+ objectAll: !!div.getElementsByTagName("object")[0]
+ .getElementsByTagName("*").length,
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ htmlSerialize: !!div.getElementsByTagName("link").length,
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText insted)
+ style: /red/.test( a.getAttribute("style") ),
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ hrefNormalized: a.getAttribute("href") === "/a",
+
+ // Make sure that element opacity exists
+ // (IE uses filter instead)
+ opacity: a.style.opacity === "0.5",
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ cssFloat: !!a.style.cssFloat,
+
+ // Will be defined later
+ scriptEval: false,
+ noCloneEvent: true,
+ boxModel: null
+ };
+
+ script.type = "text/javascript";
+ try {
+ script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
+ } catch(e){}
+
+ root.insertBefore( script, root.firstChild );
+
+ // Make sure that the execution of code works by injecting a script
+ // tag with appendChild/createTextNode
+ // (IE doesn't support this, fails, and uses .text instead)
+ if ( window[ id ] ) {
+ jQuery.support.scriptEval = true;
+ delete window[ id ];
+ }
+
+ root.removeChild( script );
+
+ if ( div.attachEvent && div.fireEvent ) {
+ div.attachEvent("onclick", function(){
+ // Cloning a node shouldn't copy over any
+ // bound event handlers (IE does this)
+ jQuery.support.noCloneEvent = false;
+ div.detachEvent("onclick", arguments.callee);
+ });
+ div.cloneNode(true).fireEvent("onclick");
+ }
+
+ // Figure out if the W3C box model works as expected
+ // document.body must exist before we can do this
+ jQuery(function(){
+ var div = document.createElement("div");
+ div.style.width = div.style.paddingLeft = "1px";
+
+ document.body.appendChild( div );
+ jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
+ document.body.removeChild( div ).style.display = 'none';
+ });
+})();
+
+var styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat";
+
+jQuery.props = {
+ "for": "htmlFor",
+ "class": "className",
+ "float": styleFloat,
+ cssFloat: styleFloat,
+ styleFloat: styleFloat,
+ readonly: "readOnly",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ rowspan: "rowSpan",
+ tabindex: "tabIndex"
+};
+jQuery.fn.extend({
+ // Keep a copy of the old load
+ _load: jQuery.fn.load,
+
+ load: function( url, params, callback ) {
+ if ( typeof url !== "string" )
+ return this._load( url );
+
+ var off = url.indexOf(" ");
+ if ( off >= 0 ) {
+ var selector = url.slice(off, url.length);
+ url = url.slice(0, off);
+ }
+
+ // Default to a GET request
+ var type = "GET";
+
+ // If the second parameter was provided
+ if ( params )
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+ // We assume that it's the callback
+ callback = params;
+ params = null;
+
+ // Otherwise, build a param string
+ } else if( typeof params === "object" ) {
+ params = jQuery.param( params );
+ type = "POST";
+ }
+
+ var self = this;
+
+ // Request the remote document
+ jQuery.ajax({
+ url: url,
+ type: type,
+ dataType: "html",
+ data: params,
+ complete: function(res, status){
+ // If successful, inject the HTML into all the matched elements
+ if ( status == "success" || status == "notmodified" )
+ // See if a selector was specified
+ self.html( selector ?
+ // Create a dummy div to hold the results
+ jQuery("<div/>")
+ // inject the contents of the document in, removing the scripts
+ // to avoid any 'Permission Denied' errors in IE
+ .append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
+
+ // Locate the specified elements
+ .find(selector) :
+
+ // If not, just inject the full result
+ res.responseText );
+
+ if( callback )
+ self.each( callback, [res.responseText, status, res] );
+ }
+ });
+ return this;
+ },
+
+ serialize: function() {
+ return jQuery.param(this.serializeArray());
+ },
+ serializeArray: function() {
+ return this.map(function(){
+ return this.elements ? jQuery.makeArray(this.elements) : this;
+ })
+ .filter(function(){
+ return this.name && !this.disabled &&
+ (this.checked || /select|textarea/i.test(this.nodeName) ||
+ /text|hidden|password|search/i.test(this.type));
+ })
+ .map(function(i, elem){
+ var val = jQuery(this).val();
+ return val == null ? null :
+ jQuery.isArray(val) ?
+ jQuery.map( val, function(val, i){
+ return {name: elem.name, value: val};
+ }) :
+ {name: elem.name, value: val};
+ }).get();
+ }
+});
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){
+ jQuery.fn[o] = function(f){
+ return this.bind(o, f);
+ };
+});
+
+var jsc = now();
+
+jQuery.extend({
+
+ get: function( url, data, callback, type ) {
+ // shift arguments if data argument was ommited
+ if ( jQuery.isFunction( data ) ) {
+ callback = data;
+ data = null;
+ }
+
+ return jQuery.ajax({
+ type: "GET",
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type
+ });
+ },
+
+ getScript: function( url, callback ) {
+ return jQuery.get(url, null, callback, "script");
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get(url, data, callback, "json");
+ },
+
+ post: function( url, data, callback, type ) {
+ if ( jQuery.isFunction( data ) ) {
+ callback = data;
+ data = {};
+ }
+
+ return jQuery.ajax({
+ type: "POST",
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type
+ });
+ },
+
+ ajaxSetup: function( settings ) {
+ jQuery.extend( jQuery.ajaxSettings, settings );
+ },
+
+ ajaxSettings: {
+ url: location.href,
+ global: true,
+ type: "GET",
+ contentType: "application/x-www-form-urlencoded",
+ processData: true,
+ async: true,
+ /*
+ timeout: 0,
+ data: null,
+ username: null,
+ password: null,
+ */
+ // Create the request object; Microsoft failed to properly
+ // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
+ // This function can be overriden by calling jQuery.ajaxSetup
+ xhr:function(){
+ return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
+ },
+ accepts: {
+ xml: "application/xml, text/xml",
+ html: "text/html",
+ script: "text/javascript, application/javascript",
+ json: "application/json, text/javascript",
+ text: "text/plain",
+ _default: "*/*"
+ }
+ },
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+
+ ajax: function( s ) {
+ // Extend the settings, but re-extend 's' so that it can be
+ // checked again later (in the test suite, specifically)
+ s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
+
+ var jsonp, jsre = /=\?(&|$)/g, status, data,
+ type = s.type.toUpperCase();
+
+ // convert data if not already a string
+ if ( s.data && s.processData && typeof s.data !== "string" )
+ s.data = jQuery.param(s.data);
+
+ // Handle JSONP Parameter Callbacks
+ if ( s.dataType == "jsonp" ) {
+ if ( type == "GET" ) {
+ if ( !s.url.match(jsre) )
+ s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?";
+ } else if ( !s.data || !s.data.match(jsre) )
+ s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
+ s.dataType = "json";
+ }
+
+ // Build temporary JSONP function
+ if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) {
+ jsonp = "jsonp" + jsc++;
+
+ // Replace the =? sequence both in the query string and the data
+ if ( s.data )
+ s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
+ s.url = s.url.replace(jsre, "=" + jsonp + "$1");
+
+ // We need to make sure
+ // that a JSONP style response is executed properly
+ s.dataType = "script";
+
+ // Handle JSONP-style loading
+ window[ jsonp ] = function(tmp){
+ data = tmp;
+ success();
+ complete();
+ // Garbage collect
+ window[ jsonp ] = undefined;
+ try{ delete window[ jsonp ]; } catch(e){}
+ if ( head )
+ head.removeChild( script );
+ };
+ }
+
+ if ( s.dataType == "script" && s.cache == null )
+ s.cache = false;
+
+ if ( s.cache === false && type == "GET" ) {
+ var ts = now();
+ // try replacing _= if it is there
+ var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
+ // if nothing was replaced, add timestamp to the end
+ s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
+ }
+
+ // If data is available, append data to url for get requests
+ if ( s.data && type == "GET" ) {
+ s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
+
+ // IE likes to send both get and post data, prevent this
+ s.data = null;
+ }
+
+ // Watch for a new set of requests
+ if ( s.global && ! jQuery.active++ )
+ jQuery.event.trigger( "ajaxStart" );
+
+ // Matches an absolute URL, and saves the domain
+ var parts = /^(\w+:)?\/\/([^\/?#]+)/.exec( s.url );
+
+ // If we're requesting a remote document
+ // and trying to load JSON or Script with a GET
+ if ( s.dataType == "script" && type == "GET" && parts
+ && ( parts[1] && parts[1] != location.protocol || parts[2] != location.host )){
+
+ var head = document.getElementsByTagName("head")[0];
+ var script = document.createElement("script");
+ script.src = s.url;
+ if (s.scriptCharset)
+ script.charset = s.scriptCharset;
+
+ // Handle Script loading
+ if ( !jsonp ) {
+ var done = false;
+
+ // Attach handlers for all browsers
+ script.onload = script.onreadystatechange = function(){
+ if ( !done && (!this.readyState ||
+ this.readyState == "loaded" || this.readyState == "complete") ) {
+ done = true;
+ success();
+ complete();
+
+ // Handle memory leak in IE
+ script.onload = script.onreadystatechange = null;
+ head.removeChild( script );
+ }
+ };
+ }
+
+ head.appendChild(script);
+
+ // We handle everything using the script element injection
+ return undefined;
+ }
+
+ var requestDone = false;
+
+ // Create the request object
+ var xhr = s.xhr();
+
+ // Open the socket
+ // Passing null username, generates a login popup on Opera (#2865)
+ if( s.username )
+ xhr.open(type, s.url, s.async, s.username, s.password);
+ else
+ xhr.open(type, s.url, s.async);
+
+ // Need an extra try/catch for cross domain requests in Firefox 3
+ try {
+ // Set the correct header, if data is being sent
+ if ( s.data )
+ xhr.setRequestHeader("Content-Type", s.contentType);
+
+ // Set the If-Modified-Since header, if ifModified mode.
+ if ( s.ifModified )
+ xhr.setRequestHeader("If-Modified-Since",
+ jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
+
+ // Set header so the called script knows that it's an XMLHttpRequest
+ xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
+
+ // Set the Accepts header for the server, depending on the dataType
+ xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
+ s.accepts[ s.dataType ] + ", */*" :
+ s.accepts._default );
+ } catch(e){}
+
+ // Allow custom headers/mimetypes and early abort
+ if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
+ // Handle the global AJAX counter
+ if ( s.global && ! --jQuery.active )
+ jQuery.event.trigger( "ajaxStop" );
+ // close opended socket
+ xhr.abort();
+ return false;
+ }
+
+ if ( s.global )
+ jQuery.event.trigger("ajaxSend", [xhr, s]);
+
+ // Wait for a response to come back
+ var onreadystatechange = function(isTimeout){
+ // The request was aborted, clear the interval and decrement jQuery.active
+ if (xhr.readyState == 0) {
+ if (ival) {
+ // clear poll interval
+ clearInterval(ival);
+ ival = null;
+ // Handle the global AJAX counter
+ if ( s.global && ! --jQuery.active )
+ jQuery.event.trigger( "ajaxStop" );
+ }
+ // The transfer is complete and the data is available, or the request timed out
+ } else if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) {
+ requestDone = true;
+
+ // clear poll interval
+ if (ival) {
+ clearInterval(ival);
+ ival = null;
+ }
+
+ status = isTimeout == "timeout" ? "timeout" :
+ !jQuery.httpSuccess( xhr ) ? "error" :
+ s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? "notmodified" :
+ "success";
+
+ if ( status == "success" ) {
+ // Watch for, and catch, XML document parse errors
+ try {
+ // process the data (runs the xml through httpData regardless of callback)
+ data = jQuery.httpData( xhr, s.dataType, s );
+ } catch(e) {
+ status = "parsererror";
+ }
+ }
+
+ // Make sure that the request was successful or notmodified
+ if ( status == "success" ) {
+ // Cache Last-Modified header, if ifModified mode.
+ var modRes;
+ try {
+ modRes = xhr.getResponseHeader("Last-Modified");
+ } catch(e) {} // swallow exception thrown by FF if header is not available
+
+ if ( s.ifModified && modRes )
+ jQuery.lastModified[s.url] = modRes;
+
+ // JSONP handles its own success callback
+ if ( !jsonp )
+ success();
+ } else
+ jQuery.handleError(s, xhr, status);
+
+ // Fire the complete handlers
+ complete();
+
+ if ( isTimeout )
+ xhr.abort();
+
+ // Stop memory leaks
+ if ( s.async )
+ xhr = null;
+ }
+ };
+
+ if ( s.async ) {
+ // don't attach the handler to the request, just poll it instead
+ var ival = setInterval(onreadystatechange, 13);
+
+ // Timeout checker
+ if ( s.timeout > 0 )
+ setTimeout(function(){
+ // Check to see if the request is still happening
+ if ( xhr && !requestDone )
+ onreadystatechange( "timeout" );
+ }, s.timeout);
+ }
+
+ // Send the data
+ try {
+ xhr.send(s.data);
+ } catch(e) {
+ jQuery.handleError(s, xhr, null, e);
+ }
+
+ // firefox 1.5 doesn't fire statechange for sync requests
+ if ( !s.async )
+ onreadystatechange();
+
+ function success(){
+ // If a local callback was specified, fire it and pass it the data
+ if ( s.success )
+ s.success( data, status );
+
+ // Fire the global callback
+ if ( s.global )
+ jQuery.event.trigger( "ajaxSuccess", [xhr, s] );
+ }
+
+ function complete(){
+ // Process result
+ if ( s.complete )
+ s.complete(xhr, status);
+
+ // The request was completed
+ if ( s.global )
+ jQuery.event.trigger( "ajaxComplete", [xhr, s] );
+
+ // Handle the global AJAX counter
+ if ( s.global && ! --jQuery.active )
+ jQuery.event.trigger( "ajaxStop" );
+ }
+
+ // return XMLHttpRequest to allow aborting the request etc.
+ return xhr;
+ },
+
+ handleError: function( s, xhr, status, e ) {
+ // If a local callback was specified, fire it
+ if ( s.error ) s.error( xhr, status, e );
+
+ // Fire the global callback
+ if ( s.global )
+ jQuery.event.trigger( "ajaxError", [xhr, s, e] );
+ },
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Determines if an XMLHttpRequest was successful or not
+ httpSuccess: function( xhr ) {
+ try {
+ // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
+ return !xhr.status && location.protocol == "file:" ||
+ ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223;
+ } catch(e){}
+ return false;
+ },
+
+ // Determines if an XMLHttpRequest returns NotModified
+ httpNotModified: function( xhr, url ) {
+ try {
+ var xhrRes = xhr.getResponseHeader("Last-Modified");
+
+ // Firefox always returns 200. check Last-Modified date
+ return xhr.status == 304 || xhrRes == jQuery.lastModified[url];
+ } catch(e){}
+ return false;
+ },
+
+ httpData: function( xhr, type, s ) {
+ var ct = xhr.getResponseHeader("content-type"),
+ xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
+ data = xml ? xhr.responseXML : xhr.responseText;
+
+ if ( xml && data.documentElement.tagName == "parsererror" )
+ throw "parsererror";
+
+ // Allow a pre-filtering function to sanitize the response
+ // s != null is checked to keep backwards compatibility
+ if( s && s.dataFilter )
+ data = s.dataFilter( data, type );
+
+ // The filter can actually parse the response
+ if( typeof data === "string" ){
+
+ // If the type is "script", eval it in global context
+ if ( type == "script" )
+ jQuery.globalEval( data );
+
+ // Get the JavaScript object, if JSON is used.
+ if ( type == "json" )
+ data = window["eval"]("(" + data + ")");
+ }
+
+ return data;
+ },
+
+ // Serialize an array of form elements or a set of
+ // key/values into a query string
+ param: function( a ) {
+ var s = [ ];
+
+ function add( key, value ){
+ s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
+ };
+
+ // If an array was passed in, assume that it is an array
+ // of form elements
+ if ( jQuery.isArray(a) || a.jquery )
+ // Serialize the form elements
+ jQuery.each( a, function(){
+ add( this.name, this.value );
+ });
+
+ // Otherwise, assume that it's an object of key/value pairs
+ else
+ // Serialize the key/values
+ for ( var j in a )
+ // If the value is an array then the key names need to be repeated
+ if ( jQuery.isArray(a[j]) )
+ jQuery.each( a[j], function(){
+ add( j, this );
+ });
+ else
+ add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
+
+ // Return the resulting serialization
+ return s.join("&").replace(/%20/g, "+");
+ }
+
+});
+var elemdisplay = {},
+ timerId,
+ fxAttrs = [
+ // height animations
+ [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
+ // width animations
+ [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
+ // opacity animations
+ [ "opacity" ]
+ ];
+
+function genFx( type, num ){
+ var obj = {};
+ jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function(){
+ obj[ this ] = type;
+ });
+ return obj;
+}
+
+jQuery.fn.extend({
+ show: function(speed,callback){
+ if ( speed ) {
+ return this.animate( genFx("show", 3), speed, callback);
+ } else {
+ for ( var i = 0, l = this.length; i < l; i++ ){
+ var old = jQuery.data(this[i], "olddisplay");
+
+ this[i].style.display = old || "";
+
+ if ( jQuery.css(this[i], "display") === "none" ) {
+ var tagName = this[i].tagName, display;
+
+ if ( elemdisplay[ tagName ] ) {
+ display = elemdisplay[ tagName ];
+ } else {
+ var elem = jQuery("<" + tagName + " />").appendTo("body");
+
+ display = elem.css("display");
+ if ( display === "none" )
+ display = "block";
+
+ elem.remove();
+
+ elemdisplay[ tagName ] = display;
+ }
+
+ jQuery.data(this[i], "olddisplay", display);
+ }
+ }
+
+ // Set the display of the elements in a second loop
+ // to avoid the constant reflow
+ for ( var i = 0, l = this.length; i < l; i++ ){
+ this[i].style.display = jQuery.data(this[i], "olddisplay") || "";
+ }
+
+ return this;
+ }
+ },
+
+ hide: function(speed,callback){
+ if ( speed ) {
+ return this.animate( genFx("hide", 3), speed, callback);
+ } else {
+ for ( var i = 0, l = this.length; i < l; i++ ){
+ var old = jQuery.data(this[i], "olddisplay");
+ if ( !old && old !== "none" )
+ jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display"));
+ }
+
+ // Set the display of the elements in a second loop
+ // to avoid the constant reflow
+ for ( var i = 0, l = this.length; i < l; i++ ){
+ this[i].style.display = "none";
+ }
+
+ return this;
+ }
+ },
+
+ // Save the old toggle function
+ _toggle: jQuery.fn.toggle,
+
+ toggle: function( fn, fn2 ){
+ var bool = typeof fn === "boolean";
+
+ return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
+ this._toggle.apply( this, arguments ) :
+ fn == null || bool ?
+ this.each(function(){
+ var state = bool ? fn : jQuery(this).is(":hidden");
+ jQuery(this)[ state ? "show" : "hide" ]();
+ }) :
+ this.animate(genFx("toggle", 3), fn, fn2);
+ },
+
+ fadeTo: function(speed,to,callback){
+ return this.animate({opacity: to}, speed, callback);
+ },
+
+ animate: function( prop, speed, easing, callback ) {
+ var optall = jQuery.speed(speed, easing, callback);
+
+ return this[ optall.queue === false ? "each" : "queue" ](function(){
+
+ var opt = jQuery.extend({}, optall), p,
+ hidden = this.nodeType == 1 && jQuery(this).is(":hidden"),
+ self = this;
+
+ for ( p in prop ) {
+ if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
+ return opt.complete.call(this);
+
+ if ( ( p == "height" || p == "width" ) && this.style ) {
+ // Store display property
+ opt.display = jQuery.css(this, "display");
+
+ // Make sure that nothing sneaks out
+ opt.overflow = this.style.overflow;
+ }
+ }
+
+ if ( opt.overflow != null )
+ this.style.overflow = "hidden";
+
+ opt.curAnim = jQuery.extend({}, prop);
+
+ jQuery.each( prop, function(name, val){
+ var e = new jQuery.fx( self, opt, name );
+
+ if ( /toggle|show|hide/.test(val) )
+ e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
+ else {
+ var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
+ start = e.cur(true) || 0;
+
+ if ( parts ) {
+ var end = parseFloat(parts[2]),
+ unit = parts[3] || "px";
+
+ // We need to compute starting value
+ if ( unit != "px" ) {
+ self.style[ name ] = (end || 1) + unit;
+ start = ((end || 1) / e.cur(true)) * start;
+ self.style[ name ] = start + unit;
+ }
+
+ // If a +=/-= token was provided, we're doing a relative animation
+ if ( parts[1] )
+ end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
+
+ e.custom( start, end, unit );
+ } else
+ e.custom( start, val, "" );
+ }
+ });
+
+ // For JS strict compliance
+ return true;
+ });
+ },
+
+ stop: function(clearQueue, gotoEnd){
+ var timers = jQuery.timers;
+
+ if (clearQueue)
+ this.queue([]);
+
+ this.each(function(){
+ // go in reverse order so anything added to the queue during the loop is ignored
+ for ( var i = timers.length - 1; i >= 0; i-- )
+ if ( timers[i].elem == this ) {
+ if (gotoEnd)
+ // force the next step to be the last
+ timers[i](true);
+ timers.splice(i, 1);
+ }
+ });
+
+ // start the next in the queue if the last step wasn't forced
+ if (!gotoEnd)
+ this.dequeue();
+
+ return this;
+ }
+
+});
+
+// Generate shortcuts for custom animations
+jQuery.each({
+ slideDown: genFx("show", 1),
+ slideUp: genFx("hide", 1),
+ slideToggle: genFx("toggle", 1),
+ fadeIn: { opacity: "show" },
+ fadeOut: { opacity: "hide" }
+}, function( name, props ){
+ jQuery.fn[ name ] = function( speed, callback ){
+ return this.animate( props, speed, callback );
+ };
+});
+
+jQuery.extend({
+
+ speed: function(speed, easing, fn) {
+ var opt = typeof speed === "object" ? speed : {
+ complete: fn || !fn && easing ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
+ };
+
+ opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+ jQuery.fx.speeds[opt.duration] || jQuery.fx.speeds._default;
+
+ // Queueing
+ opt.old = opt.complete;
+ opt.complete = function(){
+ if ( opt.queue !== false )
+ jQuery(this).dequeue();
+ if ( jQuery.isFunction( opt.old ) )
+ opt.old.call( this );
+ };
+
+ return opt;
+ },
+
+ easing: {
+ linear: function( p, n, firstNum, diff ) {
+ return firstNum + diff * p;
+ },
+ swing: function( p, n, firstNum, diff ) {
+ return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
+ }
+ },
+
+ timers: [],
+
+ fx: function( elem, options, prop ){
+ this.options = options;
+ this.elem = elem;
+ this.prop = prop;
+
+ if ( !options.orig )
+ options.orig = {};
+ }
+
+});
+
+jQuery.fx.prototype = {
+
+ // Simple function for setting a style value
+ update: function(){
+ if ( this.options.step )
+ this.options.step.call( this.elem, this.now, this );
+
+ (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
+
+ // Set display property to block for height/width animations
+ if ( ( this.prop == "height" || this.prop == "width" ) && this.elem.style )
+ this.elem.style.display = "block";
+ },
+
+ // Get the current size
+ cur: function(force){
+ if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) )
+ return this.elem[ this.prop ];
+
+ var r = parseFloat(jQuery.css(this.elem, this.prop, force));
+ return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0;
+ },
+
+ // Start an animation from one number to another
+ custom: function(from, to, unit){
+ this.startTime = now();
+ this.start = from;
+ this.end = to;
+ this.unit = unit || this.unit || "px";
+ this.now = this.start;
+ this.pos = this.state = 0;
+
+ var self = this;
+ function t(gotoEnd){
+ return self.step(gotoEnd);
+ }
+
+ t.elem = this.elem;
+
+ if ( t() && jQuery.timers.push(t) && !timerId ) {
+ timerId = setInterval(function(){
+ var timers = jQuery.timers;
+
+ for ( var i = 0; i < timers.length; i++ )
+ if ( !timers[i]() )
+ timers.splice(i--, 1);
+
+ if ( !timers.length ) {
+ clearInterval( timerId );
+ timerId = undefined;
+ }
+ }, 13);
+ }
+ },
+
+ // Simple 'show' function
+ show: function(){
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
+ this.options.show = true;
+
+ // Begin the animation
+ // Make sure that we start at a small width/height to avoid any
+ // flash of content
+ this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur());
+
+ // Start by showing the element
+ jQuery(this.elem).show();
+ },
+
+ // Simple 'hide' function
+ hide: function(){
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
+ this.options.hide = true;
+
+ // Begin the animation
+ this.custom(this.cur(), 0);
+ },
+
+ // Each step of an animation
+ step: function(gotoEnd){
+ var t = now();
+
+ if ( gotoEnd || t >= this.options.duration + this.startTime ) {
+ this.now = this.end;
+ this.pos = this.state = 1;
+ this.update();
+
+ this.options.curAnim[ this.prop ] = true;
+
+ var done = true;
+ for ( var i in this.options.curAnim )
+ if ( this.options.curAnim[i] !== true )
+ done = false;
+
+ if ( done ) {
+ if ( this.options.display != null ) {
+ // Reset the overflow
+ this.elem.style.overflow = this.options.overflow;
+
+ // Reset the display
+ this.elem.style.display = this.options.display;
+ if ( jQuery.css(this.elem, "display") == "none" )
+ this.elem.style.display = "block";
+ }
+
+ // Hide the element if the "hide" operation was done
+ if ( this.options.hide )
+ jQuery(this.elem).hide();
+
+ // Reset the properties, if the item has been hidden or shown
+ if ( this.options.hide || this.options.show )
+ for ( var p in this.options.curAnim )
+ jQuery.attr(this.elem.style, p, this.options.orig[p]);
+
+ // Execute the complete function
+ this.options.complete.call( this.elem );
+ }
+
+ return false;
+ } else {
+ var n = t - this.startTime;
+ this.state = n / this.options.duration;
+
+ // Perform the easing function, defaults to swing
+ this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration);
+ this.now = this.start + ((this.end - this.start) * this.pos);
+
+ // Perform the next step of the animation
+ this.update();
+ }
+
+ return true;
+ }
+
+};
+
+jQuery.extend( jQuery.fx, {
+ speeds:{
+ slow: 600,
+ fast: 200,
+ // Default speed
+ _default: 400
+ },
+ step: {
+
+ opacity: function(fx){
+ jQuery.attr(fx.elem.style, "opacity", fx.now);
+ },
+
+ _default: function(fx){
+ if ( fx.elem.style && fx.elem.style[ fx.prop ] != null )
+ fx.elem.style[ fx.prop ] = fx.now + fx.unit;
+ else
+ fx.elem[ fx.prop ] = fx.now;
+ }
+ }
+});
+if ( document.documentElement["getBoundingClientRect"] )
+ jQuery.fn.offset = function() {
+ if ( !this[0] ) return { top: 0, left: 0 };
+ if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] );
+ var box = this[0].getBoundingClientRect(), doc = this[0].ownerDocument, body = doc.body, docElem = doc.documentElement,
+ clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,
+ top = box.top + (self.pageYOffset || jQuery.boxModel && docElem.scrollTop || body.scrollTop ) - clientTop,
+ left = box.left + (self.pageXOffset || jQuery.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft;
+ return { top: top, left: left };
+ };
+else
+ jQuery.fn.offset = function() {
+ if ( !this[0] ) return { top: 0, left: 0 };
+ if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] );
+ jQuery.offset.initialized || jQuery.offset.initialize();
+
+ var elem = this[0], offsetParent = elem.offsetParent, prevOffsetParent = elem,
+ doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement,
+ body = doc.body, defaultView = doc.defaultView,
+ prevComputedStyle = defaultView.getComputedStyle(elem, null),
+ top = elem.offsetTop, left = elem.offsetLeft;
+
+ while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
+ computedStyle = defaultView.getComputedStyle(elem, null);
+ top -= elem.scrollTop, left -= elem.scrollLeft;
+ if ( elem === offsetParent ) {
+ top += elem.offsetTop, left += elem.offsetLeft;
+ if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.tagName)) )
+ top += parseInt( computedStyle.borderTopWidth, 10) || 0,
+ left += parseInt( computedStyle.borderLeftWidth, 10) || 0;
+ prevOffsetParent = offsetParent, offsetParent = elem.offsetParent;
+ }
+ if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" )
+ top += parseInt( computedStyle.borderTopWidth, 10) || 0,
+ left += parseInt( computedStyle.borderLeftWidth, 10) || 0;
+ prevComputedStyle = computedStyle;
+ }
+
+ if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" )
+ top += body.offsetTop,
+ left += body.offsetLeft;
+
+ if ( prevComputedStyle.position === "fixed" )
+ top += Math.max(docElem.scrollTop, body.scrollTop),
+ left += Math.max(docElem.scrollLeft, body.scrollLeft);
+
+ return { top: top, left: left };
+ };
+
+jQuery.offset = {
+ initialize: function() {
+ if ( this.initialized ) return;
+ var body = document.body, container = document.createElement('div'), innerDiv, checkDiv, table, td, rules, prop, bodyMarginTop = body.style.marginTop,
+ html = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
+
+ rules = { position: 'absolute', top: 0, left: 0, margin: 0, border: 0, width: '1px', height: '1px', visibility: 'hidden' };
+ for ( prop in rules ) container.style[prop] = rules[prop];
+
+ container.innerHTML = html;
+ body.insertBefore(container, body.firstChild);
+ innerDiv = container.firstChild, checkDiv = innerDiv.firstChild, td = innerDiv.nextSibling.firstChild.firstChild;
+
+ this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
+ this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
+
+ innerDiv.style.overflow = 'hidden', innerDiv.style.position = 'relative';
+ this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
+
+ body.style.marginTop = '1px';
+ this.doesNotIncludeMarginInBodyOffset = (body.offsetTop === 0);
+ body.style.marginTop = bodyMarginTop;
+
+ body.removeChild(container);
+ this.initialized = true;
+ },
+
+ bodyOffset: function(body) {
+ jQuery.offset.initialized || jQuery.offset.initialize();
+ var top = body.offsetTop, left = body.offsetLeft;
+ if ( jQuery.offset.doesNotIncludeMarginInBodyOffset )
+ top += parseInt( jQuery.curCSS(body, 'marginTop', true), 10 ) || 0,
+ left += parseInt( jQuery.curCSS(body, 'marginLeft', true), 10 ) || 0;
+ return { top: top, left: left };
+ }
+};
+
+
+jQuery.fn.extend({
+ position: function() {
+ var left = 0, top = 0, results;
+
+ if ( this[0] ) {
+ // Get *real* offsetParent
+ var offsetParent = this.offsetParent(),
+
+ // Get correct offsets
+ offset = this.offset(),
+ parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { top: 0, left: 0 } : offsetParent.offset();
+
+ // Subtract element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ offset.top -= num( this, 'marginTop' );
+ offset.left -= num( this, 'marginLeft' );
+
+ // Add offsetParent borders
+ parentOffset.top += num( offsetParent, 'borderTopWidth' );
+ parentOffset.left += num( offsetParent, 'borderLeftWidth' );
+
+ // Subtract the two offsets
+ results = {
+ top: offset.top - parentOffset.top,
+ left: offset.left - parentOffset.left
+ };
+ }
+
+ return results;
+ },
+
+ offsetParent: function() {
+ var offsetParent = this[0].offsetParent || document.body;
+ while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static') )
+ offsetParent = offsetParent.offsetParent;
+ return jQuery(offsetParent);
+ }
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( ['Left', 'Top'], function(i, name) {
+ var method = 'scroll' + name;
+
+ jQuery.fn[ method ] = function(val) {
+ if (!this[0]) return null;
+
+ return val !== undefined ?
+
+ // Set the scroll offset
+ this.each(function() {
+ this == window || this == document ?
+ window.scrollTo(
+ !i ? val : jQuery(window).scrollLeft(),
+ i ? val : jQuery(window).scrollTop()
+ ) :
+ this[ method ] = val;
+ }) :
+
+ // Return the scroll offset
+ this[0] == window || this[0] == document ?
+ self[ i ? 'pageYOffset' : 'pageXOffset' ] ||
+ jQuery.boxModel && document.documentElement[ method ] ||
+ document.body[ method ] :
+ this[0][ method ];
+ };
+});
+// Create innerHeight, innerWidth, outerHeight and outerWidth methods
+jQuery.each([ "Height", "Width" ], function(i, name){
+
+ var tl = i ? "Left" : "Top", // top or left
+ br = i ? "Right" : "Bottom", // bottom or right
+ lower = name.toLowerCase();
+
+ // innerHeight and innerWidth
+ jQuery.fn["inner" + name] = function(){
+ return this[0] ?
+ jQuery.css( this[0], lower, false, "padding" ) :
+ null;
+ };
+
+ // outerHeight and outerWidth
+ jQuery.fn["outer" + name] = function(margin) {
+ return this[0] ?
+ jQuery.css( this[0], lower, false, margin ? "margin" : "border" ) :
+ null;
+ };
+
+ var type = name.toLowerCase();
+
+ jQuery.fn[ type ] = function( size ) {
+ // Get window width or height
+ return this[0] == window ?
+ // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
+ document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] ||
+ document.body[ "client" + name ] :
+
+ // Get document width or height
+ this[0] == document ?
+ // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
+ Math.max(
+ document.documentElement["client" + name],
+ document.body["scroll" + name], document.documentElement["scroll" + name],
+ document.body["offset" + name], document.documentElement["offset" + name]
+ ) :
+
+ // Get or set width or height on the element
+ size === undefined ?
+ // Get width or height on the element
+ (this.length ? jQuery.css( this[0], type ) : null) :
+
+ // Set the width or height on the element (default to pixels if value is unitless)
+ this.css( type, typeof size === "string" ? size : size + "px" );
+ };
+
+});
+})();
diff --git a/PerformanceTests/SunSpider/tests/parse-only/mootools-1.2.2-core-nc.js b/PerformanceTests/SunSpider/tests/parse-only/mootools-1.2.2-core-nc.js
new file mode 100644
index 000000000..9f091b64d
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/parse-only/mootools-1.2.2-core-nc.js
@@ -0,0 +1,4003 @@
+/*
+Script: Core.js
+ MooTools - My Object Oriented JavaScript Tools.
+
+License:
+ MIT-style license.
+
+Copyright:
+ Copyright (c) 2006-2008 [Valerio Proietti](http://mad4milk.net/).
+
+Code & Documentation:
+ [The MooTools production team](http://mootools.net/developers/).
+
+Inspiration:
+ - Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)
+ - Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php)
+*/
+
+var MooTools = {
+ 'version': '1.2.2',
+ 'build': 'f0491d62fbb7e906789aa3733d6a67d43e5af7c9'
+};
+
+var Native = function(options){
+ options = options || {};
+ var name = options.name;
+ var legacy = options.legacy;
+ var protect = options.protect;
+ var methods = options.implement;
+ var generics = options.generics;
+ var initialize = options.initialize;
+ var afterImplement = options.afterImplement || function(){};
+ var object = initialize || legacy;
+ generics = generics !== false;
+
+ object.constructor = Native;
+ object.$family = {name: 'native'};
+ if (legacy && initialize) object.prototype = legacy.prototype;
+ object.prototype.constructor = object;
+
+ if (name){
+ var family = name.toLowerCase();
+ object.prototype.$family = {name: family};
+ Native.typize(object, family);
+ }
+
+ var add = function(obj, name, method, force){
+ if (!protect || force || !obj.prototype[name]) obj.prototype[name] = method;
+ if (generics) Native.genericize(obj, name, protect);
+ afterImplement.call(obj, name, method);
+ return obj;
+ };
+
+ object.alias = function(a1, a2, a3){
+ if (typeof a1 == 'string'){
+ if ((a1 = this.prototype[a1])) return add(this, a2, a1, a3);
+ }
+ for (var a in a1) this.alias(a, a1[a], a2);
+ return this;
+ };
+
+ object.implement = function(a1, a2, a3){
+ if (typeof a1 == 'string') return add(this, a1, a2, a3);
+ for (var p in a1) add(this, p, a1[p], a2);
+ return this;
+ };
+
+ if (methods) object.implement(methods);
+
+ return object;
+};
+
+Native.genericize = function(object, property, check){
+ if ((!check || !object[property]) && typeof object.prototype[property] == 'function') object[property] = function(){
+ var args = Array.prototype.slice.call(arguments);
+ return object.prototype[property].apply(args.shift(), args);
+ };
+};
+
+Native.implement = function(objects, properties){
+ for (var i = 0, l = objects.length; i < l; i++) objects[i].implement(properties);
+};
+
+Native.typize = function(object, family){
+ if (!object.type) object.type = function(item){
+ return ($type(item) === family);
+ };
+};
+
+(function(){
+ var natives = {'Array': Array, 'Date': Date, 'Function': Function, 'Number': Number, 'RegExp': RegExp, 'String': String};
+ for (var n in natives) new Native({name: n, initialize: natives[n], protect: true});
+
+ var types = {'boolean': Boolean, 'native': Native, 'object': Object};
+ for (var t in types) Native.typize(types[t], t);
+
+ var generics = {
+ 'Array': ["concat", "indexOf", "join", "lastIndexOf", "pop", "push", "reverse", "shift", "slice", "sort", "splice", "toString", "unshift", "valueOf"],
+ 'String': ["charAt", "charCodeAt", "concat", "indexOf", "lastIndexOf", "match", "replace", "search", "slice", "split", "substr", "substring", "toLowerCase", "toUpperCase", "valueOf"]
+ };
+ for (var g in generics){
+ for (var i = generics[g].length; i--;) Native.genericize(window[g], generics[g][i], true);
+ }
+})();
+
+var Hash = new Native({
+
+ name: 'Hash',
+
+ initialize: function(object){
+ if ($type(object) == 'hash') object = $unlink(object.getClean());
+ for (var key in object) this[key] = object[key];
+ return this;
+ }
+
+});
+
+Hash.implement({
+
+ forEach: function(fn, bind){
+ for (var key in this){
+ if (this.hasOwnProperty(key)) fn.call(bind, this[key], key, this);
+ }
+ },
+
+ getClean: function(){
+ var clean = {};
+ for (var key in this){
+ if (this.hasOwnProperty(key)) clean[key] = this[key];
+ }
+ return clean;
+ },
+
+ getLength: function(){
+ var length = 0;
+ for (var key in this){
+ if (this.hasOwnProperty(key)) length++;
+ }
+ return length;
+ }
+
+});
+
+Hash.alias('forEach', 'each');
+
+Array.implement({
+
+ forEach: function(fn, bind){
+ for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i, this);
+ }
+
+});
+
+Array.alias('forEach', 'each');
+
+function $A(iterable){
+ if (iterable.item){
+ var l = iterable.length, array = new Array(l);
+ while (l--) array[l] = iterable[l];
+ return array;
+ }
+ return Array.prototype.slice.call(iterable);
+};
+
+function $arguments(i){
+ return function(){
+ return arguments[i];
+ };
+};
+
+function $chk(obj){
+ return !!(obj || obj === 0);
+};
+
+function $clear(timer){
+ clearTimeout(timer);
+ clearInterval(timer);
+ return null;
+};
+
+function $defined(obj){
+ return (obj != undefined);
+};
+
+function $each(iterable, fn, bind){
+ var type = $type(iterable);
+ ((type == 'arguments' || type == 'collection' || type == 'array') ? Array : Hash).each(iterable, fn, bind);
+};
+
+function $empty(){};
+
+function $extend(original, extended){
+ for (var key in (extended || {})) original[key] = extended[key];
+ return original;
+};
+
+function $H(object){
+ return new Hash(object);
+};
+
+function $lambda(value){
+ return (typeof value == 'function') ? value : function(){
+ return value;
+ };
+};
+
+function $merge(){
+ var args = Array.slice(arguments);
+ args.unshift({});
+ return $mixin.apply(null, args);
+};
+
+function $mixin(mix){
+ for (var i = 1, l = arguments.length; i < l; i++){
+ var object = arguments[i];
+ if ($type(object) != 'object') continue;
+ for (var key in object){
+ var op = object[key], mp = mix[key];
+ mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $mixin(mp, op) : $unlink(op);
+ }
+ }
+ return mix;
+};
+
+function $pick(){
+ for (var i = 0, l = arguments.length; i < l; i++){
+ if (arguments[i] != undefined) return arguments[i];
+ }
+ return null;
+};
+
+function $random(min, max){
+ return Math.floor(Math.random() * (max - min + 1) + min);
+};
+
+function $splat(obj){
+ var type = $type(obj);
+ return (type) ? ((type != 'array' && type != 'arguments') ? [obj] : obj) : [];
+};
+
+var $time = Date.now || function(){
+ return +new Date;
+};
+
+function $try(){
+ for (var i = 0, l = arguments.length; i < l; i++){
+ try {
+ return arguments[i]();
+ } catch(e){}
+ }
+ return null;
+};
+
+function $type(obj){
+ if (obj == undefined) return false;
+ if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name;
+ if (obj.nodeName){
+ switch (obj.nodeType){
+ case 1: return 'element';
+ case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';
+ }
+ } else if (typeof obj.length == 'number'){
+ if (obj.callee) return 'arguments';
+ else if (obj.item) return 'collection';
+ }
+ return typeof obj;
+};
+
+function $unlink(object){
+ var unlinked;
+ switch ($type(object)){
+ case 'object':
+ unlinked = {};
+ for (var p in object) unlinked[p] = $unlink(object[p]);
+ break;
+ case 'hash':
+ unlinked = new Hash(object);
+ break;
+ case 'array':
+ unlinked = [];
+ for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]);
+ break;
+ default: return object;
+ }
+ return unlinked;
+};
+
+
+/*
+Script: Browser.js
+ The Browser Core. Contains Browser initialization, Window and Document, and the Browser Hash.
+
+License:
+ MIT-style license.
+*/
+
+var Browser = $merge({
+
+ Engine: {name: 'unknown', version: 0},
+
+ Platform: {name: (window.orientation != undefined) ? 'ipod' : (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase()},
+
+ Features: {xpath: !!(document.evaluate), air: !!(window.runtime), query: !!(document.querySelector)},
+
+ Plugins: {},
+
+ Engines: {
+
+ presto: function(){
+ return (!window.opera) ? false : ((arguments.callee.caller) ? 960 : ((document.getElementsByClassName) ? 950 : 925));
+ },
+
+ trident: function(){
+ return (!window.ActiveXObject) ? false : ((window.XMLHttpRequest) ? 5 : 4);
+ },
+
+ webkit: function(){
+ return (navigator.taintEnabled) ? false : ((Browser.Features.xpath) ? ((Browser.Features.query) ? 525 : 420) : 419);
+ },
+
+ gecko: function(){
+ return (document.getBoxObjectFor == undefined) ? false : ((document.getElementsByClassName) ? 19 : 18);
+ }
+
+ }
+
+}, Browser || {});
+
+Browser.Platform[Browser.Platform.name] = true;
+
+Browser.detect = function(){
+
+ for (var engine in this.Engines){
+ var version = this.Engines[engine]();
+ if (version){
+ this.Engine = {name: engine, version: version};
+ this.Engine[engine] = this.Engine[engine + version] = true;
+ break;
+ }
+ }
+
+ return {name: engine, version: version};
+
+};
+
+Browser.detect();
+
+Browser.Request = function(){
+ return $try(function(){
+ return new XMLHttpRequest();
+ }, function(){
+ return new ActiveXObject('MSXML2.XMLHTTP');
+ });
+};
+
+Browser.Features.xhr = !!(Browser.Request());
+
+Browser.Plugins.Flash = (function(){
+ var version = ($try(function(){
+ return navigator.plugins['Shockwave Flash'].description;
+ }, function(){
+ return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');
+ }) || '0 r0').match(/\d+/g);
+ return {version: parseInt(version[0] || 0 + '.' + version[1], 10) || 0, build: parseInt(version[2], 10) || 0};
+})();
+
+function $exec(text){
+ if (!text) return text;
+ if (window.execScript){
+ window.execScript(text);
+ } else {
+ var script = document.createElement('script');
+ script.setAttribute('type', 'text/javascript');
+ script[(Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerText' : 'text'] = text;
+ document.head.appendChild(script);
+ document.head.removeChild(script);
+ }
+ return text;
+};
+
+Native.UID = 1;
+
+var $uid = (Browser.Engine.trident) ? function(item){
+ return (item.uid || (item.uid = [Native.UID++]))[0];
+} : function(item){
+ return item.uid || (item.uid = Native.UID++);
+};
+
+var Window = new Native({
+
+ name: 'Window',
+
+ legacy: (Browser.Engine.trident) ? null: window.Window,
+
+ initialize: function(win){
+ $uid(win);
+ if (!win.Element){
+ win.Element = $empty;
+ if (Browser.Engine.webkit) win.document.createElement("iframe"); //fixes safari 2
+ win.Element.prototype = (Browser.Engine.webkit) ? window["[[DOMElement.prototype]]"] : {};
+ }
+ win.document.window = win;
+ return $extend(win, Window.Prototype);
+ },
+
+ afterImplement: function(property, value){
+ window[property] = Window.Prototype[property] = value;
+ }
+
+});
+
+Window.Prototype = {$family: {name: 'window'}};
+
+new Window(window);
+
+var Document = new Native({
+
+ name: 'Document',
+
+ legacy: (Browser.Engine.trident) ? null: window.Document,
+
+ initialize: function(doc){
+ $uid(doc);
+ doc.head = doc.getElementsByTagName('head')[0];
+ doc.html = doc.getElementsByTagName('html')[0];
+ if (Browser.Engine.trident && Browser.Engine.version <= 4) $try(function(){
+ doc.execCommand("BackgroundImageCache", false, true);
+ });
+ if (Browser.Engine.trident) doc.window.attachEvent('onunload', function() {
+ doc.window.detachEvent('onunload', arguments.callee);
+ doc.head = doc.html = doc.window = null;
+ });
+ return $extend(doc, Document.Prototype);
+ },
+
+ afterImplement: function(property, value){
+ document[property] = Document.Prototype[property] = value;
+ }
+
+});
+
+Document.Prototype = {$family: {name: 'document'}};
+
+new Document(document);
+
+
+/*
+Script: Array.js
+ Contains Array Prototypes like each, contains, and erase.
+
+License:
+ MIT-style license.
+*/
+
+Array.implement({
+
+ every: function(fn, bind){
+ for (var i = 0, l = this.length; i < l; i++){
+ if (!fn.call(bind, this[i], i, this)) return false;
+ }
+ return true;
+ },
+
+ filter: function(fn, bind){
+ var results = [];
+ for (var i = 0, l = this.length; i < l; i++){
+ if (fn.call(bind, this[i], i, this)) results.push(this[i]);
+ }
+ return results;
+ },
+
+ clean: function() {
+ return this.filter($defined);
+ },
+
+ indexOf: function(item, from){
+ var len = this.length;
+ for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){
+ if (this[i] === item) return i;
+ }
+ return -1;
+ },
+
+ map: function(fn, bind){
+ var results = [];
+ for (var i = 0, l = this.length; i < l; i++) results[i] = fn.call(bind, this[i], i, this);
+ return results;
+ },
+
+ some: function(fn, bind){
+ for (var i = 0, l = this.length; i < l; i++){
+ if (fn.call(bind, this[i], i, this)) return true;
+ }
+ return false;
+ },
+
+ associate: function(keys){
+ var obj = {}, length = Math.min(this.length, keys.length);
+ for (var i = 0; i < length; i++) obj[keys[i]] = this[i];
+ return obj;
+ },
+
+ link: function(object){
+ var result = {};
+ for (var i = 0, l = this.length; i < l; i++){
+ for (var key in object){
+ if (object[key](this[i])){
+ result[key] = this[i];
+ delete object[key];
+ break;
+ }
+ }
+ }
+ return result;
+ },
+
+ contains: function(item, from){
+ return this.indexOf(item, from) != -1;
+ },
+
+ extend: function(array){
+ for (var i = 0, j = array.length; i < j; i++) this.push(array[i]);
+ return this;
+ },
+
+ getLast: function(){
+ return (this.length) ? this[this.length - 1] : null;
+ },
+
+ getRandom: function(){
+ return (this.length) ? this[$random(0, this.length - 1)] : null;
+ },
+
+ include: function(item){
+ if (!this.contains(item)) this.push(item);
+ return this;
+ },
+
+ combine: function(array){
+ for (var i = 0, l = array.length; i < l; i++) this.include(array[i]);
+ return this;
+ },
+
+ erase: function(item){
+ for (var i = this.length; i--; i){
+ if (this[i] === item) this.splice(i, 1);
+ }
+ return this;
+ },
+
+ empty: function(){
+ this.length = 0;
+ return this;
+ },
+
+ flatten: function(){
+ var array = [];
+ for (var i = 0, l = this.length; i < l; i++){
+ var type = $type(this[i]);
+ if (!type) continue;
+ array = array.concat((type == 'array' || type == 'collection' || type == 'arguments') ? Array.flatten(this[i]) : this[i]);
+ }
+ return array;
+ },
+
+ hexToRgb: function(array){
+ if (this.length != 3) return null;
+ var rgb = this.map(function(value){
+ if (value.length == 1) value += value;
+ return value.toInt(16);
+ });
+ return (array) ? rgb : 'rgb(' + rgb + ')';
+ },
+
+ rgbToHex: function(array){
+ if (this.length < 3) return null;
+ if (this.length == 4 && this[3] == 0 && !array) return 'transparent';
+ var hex = [];
+ for (var i = 0; i < 3; i++){
+ var bit = (this[i] - 0).toString(16);
+ hex.push((bit.length == 1) ? '0' + bit : bit);
+ }
+ return (array) ? hex : '#' + hex.join('');
+ }
+
+});
+
+
+/*
+Script: Function.js
+ Contains Function Prototypes like create, bind, pass, and delay.
+
+License:
+ MIT-style license.
+*/
+
+Function.implement({
+
+ extend: function(properties){
+ for (var property in properties) this[property] = properties[property];
+ return this;
+ },
+
+ create: function(options){
+ var self = this;
+ options = options || {};
+ return function(event){
+ var args = options.arguments;
+ args = (args != undefined) ? $splat(args) : Array.slice(arguments, (options.event) ? 1 : 0);
+ if (options.event) args = [event || window.event].extend(args);
+ var returns = function(){
+ return self.apply(options.bind || null, args);
+ };
+ if (options.delay) return setTimeout(returns, options.delay);
+ if (options.periodical) return setInterval(returns, options.periodical);
+ if (options.attempt) return $try(returns);
+ return returns();
+ };
+ },
+
+ run: function(args, bind){
+ return this.apply(bind, $splat(args));
+ },
+
+ pass: function(args, bind){
+ return this.create({bind: bind, arguments: args});
+ },
+
+ bind: function(bind, args){
+ return this.create({bind: bind, arguments: args});
+ },
+
+ bindWithEvent: function(bind, args){
+ return this.create({bind: bind, arguments: args, event: true});
+ },
+
+ attempt: function(args, bind){
+ return this.create({bind: bind, arguments: args, attempt: true})();
+ },
+
+ delay: function(delay, bind, args){
+ return this.create({bind: bind, arguments: args, delay: delay})();
+ },
+
+ periodical: function(periodical, bind, args){
+ return this.create({bind: bind, arguments: args, periodical: periodical})();
+ }
+
+});
+
+
+/*
+Script: Number.js
+ Contains Number Prototypes like limit, round, times, and ceil.
+
+License:
+ MIT-style license.
+*/
+
+Number.implement({
+
+ limit: function(min, max){
+ return Math.min(max, Math.max(min, this));
+ },
+
+ round: function(precision){
+ precision = Math.pow(10, precision || 0);
+ return Math.round(this * precision) / precision;
+ },
+
+ times: function(fn, bind){
+ for (var i = 0; i < this; i++) fn.call(bind, i, this);
+ },
+
+ toFloat: function(){
+ return parseFloat(this);
+ },
+
+ toInt: function(base){
+ return parseInt(this, base || 10);
+ }
+
+});
+
+Number.alias('times', 'each');
+
+(function(math){
+ var methods = {};
+ math.each(function(name){
+ if (!Number[name]) methods[name] = function(){
+ return Math[name].apply(null, [this].concat($A(arguments)));
+ };
+ });
+ Number.implement(methods);
+})(['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor', 'log', 'max', 'min', 'pow', 'sin', 'sqrt', 'tan']);
+
+
+/*
+Script: String.js
+ Contains String Prototypes like camelCase, capitalize, test, and toInt.
+
+License:
+ MIT-style license.
+*/
+
+String.implement({
+
+ test: function(regex, params){
+ return ((typeof regex == 'string') ? new RegExp(regex, params) : regex).test(this);
+ },
+
+ contains: function(string, separator){
+ return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : this.indexOf(string) > -1;
+ },
+
+ trim: function(){
+ return this.replace(/^\s+|\s+$/g, '');
+ },
+
+ clean: function(){
+ return this.replace(/\s+/g, ' ').trim();
+ },
+
+ camelCase: function(){
+ return this.replace(/-\D/g, function(match){
+ return match.charAt(1).toUpperCase();
+ });
+ },
+
+ hyphenate: function(){
+ return this.replace(/[A-Z]/g, function(match){
+ return ('-' + match.charAt(0).toLowerCase());
+ });
+ },
+
+ capitalize: function(){
+ return this.replace(/\b[a-z]/g, function(match){
+ return match.toUpperCase();
+ });
+ },
+
+ escapeRegExp: function(){
+ return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
+ },
+
+ toInt: function(base){
+ return parseInt(this, base || 10);
+ },
+
+ toFloat: function(){
+ return parseFloat(this);
+ },
+
+ hexToRgb: function(array){
+ var hex = this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
+ return (hex) ? hex.slice(1).hexToRgb(array) : null;
+ },
+
+ rgbToHex: function(array){
+ var rgb = this.match(/\d{1,3}/g);
+ return (rgb) ? rgb.rgbToHex(array) : null;
+ },
+
+ stripScripts: function(option){
+ var scripts = '';
+ var text = this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
+ scripts += arguments[1] + '\n';
+ return '';
+ });
+ if (option === true) $exec(scripts);
+ else if ($type(option) == 'function') option(scripts, text);
+ return text;
+ },
+
+ substitute: function(object, regexp){
+ return this.replace(regexp || (/\\?\{([^{}]+)\}/g), function(match, name){
+ if (match.charAt(0) == '\\') return match.slice(1);
+ return (object[name] != undefined) ? object[name] : '';
+ });
+ }
+
+});
+
+
+/*
+Script: Hash.js
+ Contains Hash Prototypes. Provides a means for overcoming the JavaScript practical impossibility of extending native Objects.
+
+License:
+ MIT-style license.
+*/
+
+Hash.implement({
+
+ has: Object.prototype.hasOwnProperty,
+
+ keyOf: function(value){
+ for (var key in this){
+ if (this.hasOwnProperty(key) && this[key] === value) return key;
+ }
+ return null;
+ },
+
+ hasValue: function(value){
+ return (Hash.keyOf(this, value) !== null);
+ },
+
+ extend: function(properties){
+ Hash.each(properties, function(value, key){
+ Hash.set(this, key, value);
+ }, this);
+ return this;
+ },
+
+ combine: function(properties){
+ Hash.each(properties, function(value, key){
+ Hash.include(this, key, value);
+ }, this);
+ return this;
+ },
+
+ erase: function(key){
+ if (this.hasOwnProperty(key)) delete this[key];
+ return this;
+ },
+
+ get: function(key){
+ return (this.hasOwnProperty(key)) ? this[key] : null;
+ },
+
+ set: function(key, value){
+ if (!this[key] || this.hasOwnProperty(key)) this[key] = value;
+ return this;
+ },
+
+ empty: function(){
+ Hash.each(this, function(value, key){
+ delete this[key];
+ }, this);
+ return this;
+ },
+
+ include: function(key, value){
+ if (this[key] == undefined) this[key] = value;
+ return this;
+ },
+
+ map: function(fn, bind){
+ var results = new Hash;
+ Hash.each(this, function(value, key){
+ results.set(key, fn.call(bind, value, key, this));
+ }, this);
+ return results;
+ },
+
+ filter: function(fn, bind){
+ var results = new Hash;
+ Hash.each(this, function(value, key){
+ if (fn.call(bind, value, key, this)) results.set(key, value);
+ }, this);
+ return results;
+ },
+
+ every: function(fn, bind){
+ for (var key in this){
+ if (this.hasOwnProperty(key) && !fn.call(bind, this[key], key)) return false;
+ }
+ return true;
+ },
+
+ some: function(fn, bind){
+ for (var key in this){
+ if (this.hasOwnProperty(key) && fn.call(bind, this[key], key)) return true;
+ }
+ return false;
+ },
+
+ getKeys: function(){
+ var keys = [];
+ Hash.each(this, function(value, key){
+ keys.push(key);
+ });
+ return keys;
+ },
+
+ getValues: function(){
+ var values = [];
+ Hash.each(this, function(value){
+ values.push(value);
+ });
+ return values;
+ },
+
+ toQueryString: function(base){
+ var queryString = [];
+ Hash.each(this, function(value, key){
+ if (base) key = base + '[' + key + ']';
+ var result;
+ switch ($type(value)){
+ case 'object': result = Hash.toQueryString(value, key); break;
+ case 'array':
+ var qs = {};
+ value.each(function(val, i){
+ qs[i] = val;
+ });
+ result = Hash.toQueryString(qs, key);
+ break;
+ default: result = key + '=' + encodeURIComponent(value);
+ }
+ if (value != undefined) queryString.push(result);
+ });
+
+ return queryString.join('&');
+ }
+
+});
+
+Hash.alias({keyOf: 'indexOf', hasValue: 'contains'});
+
+
+/*
+Script: Event.js
+ Contains the Event Native, to make the event object completely crossbrowser.
+
+License:
+ MIT-style license.
+*/
+
+var Event = new Native({
+
+ name: 'Event',
+
+ initialize: function(event, win){
+ win = win || window;
+ var doc = win.document;
+ event = event || win.event;
+ if (event.$extended) return event;
+ this.$extended = true;
+ var type = event.type;
+ var target = event.target || event.srcElement;
+ while (target && target.nodeType == 3) target = target.parentNode;
+
+ if (type.test(/key/)){
+ var code = event.which || event.keyCode;
+ var key = Event.Keys.keyOf(code);
+ if (type == 'keydown'){
+ var fKey = code - 111;
+ if (fKey > 0 && fKey < 13) key = 'f' + fKey;
+ }
+ key = key || String.fromCharCode(code).toLowerCase();
+ } else if (type.match(/(click|mouse|menu)/i)){
+ doc = (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
+ var page = {
+ x: event.pageX || event.clientX + doc.scrollLeft,
+ y: event.pageY || event.clientY + doc.scrollTop
+ };
+ var client = {
+ x: (event.pageX) ? event.pageX - win.pageXOffset : event.clientX,
+ y: (event.pageY) ? event.pageY - win.pageYOffset : event.clientY
+ };
+ if (type.match(/DOMMouseScroll|mousewheel/)){
+ var wheel = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;
+ }
+ var rightClick = (event.which == 3) || (event.button == 2);
+ var related = null;
+ if (type.match(/over|out/)){
+ switch (type){
+ case 'mouseover': related = event.relatedTarget || event.fromElement; break;
+ case 'mouseout': related = event.relatedTarget || event.toElement;
+ }
+ if (!(function(){
+ while (related && related.nodeType == 3) related = related.parentNode;
+ return true;
+ }).create({attempt: Browser.Engine.gecko})()) related = false;
+ }
+ }
+
+ return $extend(this, {
+ event: event,
+ type: type,
+
+ page: page,
+ client: client,
+ rightClick: rightClick,
+
+ wheel: wheel,
+
+ relatedTarget: related,
+ target: target,
+
+ code: code,
+ key: key,
+
+ shift: event.shiftKey,
+ control: event.ctrlKey,
+ alt: event.altKey,
+ meta: event.metaKey
+ });
+ }
+
+});
+
+Event.Keys = new Hash({
+ 'enter': 13,
+ 'up': 38,
+ 'down': 40,
+ 'left': 37,
+ 'right': 39,
+ 'esc': 27,
+ 'space': 32,
+ 'backspace': 8,
+ 'tab': 9,
+ 'delete': 46
+});
+
+Event.implement({
+
+ stop: function(){
+ return this.stopPropagation().preventDefault();
+ },
+
+ stopPropagation: function(){
+ if (this.event.stopPropagation) this.event.stopPropagation();
+ else this.event.cancelBubble = true;
+ return this;
+ },
+
+ preventDefault: function(){
+ if (this.event.preventDefault) this.event.preventDefault();
+ else this.event.returnValue = false;
+ return this;
+ }
+
+});
+
+
+/*
+Script: Class.js
+ Contains the Class Function for easily creating, extending, and implementing reusable Classes.
+
+License:
+ MIT-style license.
+*/
+
+function Class(params){
+
+ if (params instanceof Function) params = {initialize: params};
+
+ var newClass = function(){
+ Object.reset(this);
+ if (newClass._prototyping) return this;
+ this._current = $empty;
+ var value = (this.initialize) ? this.initialize.apply(this, arguments) : this;
+ delete this._current; delete this.caller;
+ return value;
+ }.extend(this);
+
+ newClass.implement(params);
+
+ newClass.constructor = Class;
+ newClass.prototype.constructor = newClass;
+
+ return newClass;
+
+};
+
+Function.prototype.protect = function(){
+ this._protected = true;
+ return this;
+};
+
+Object.reset = function(object, key){
+
+ if (key == null){
+ for (var p in object) Object.reset(object, p);
+ return object;
+ }
+
+ delete object[key];
+
+ switch ($type(object[key])){
+ case 'object':
+ var F = function(){};
+ F.prototype = object[key];
+ var i = new F;
+ object[key] = Object.reset(i);
+ break;
+ case 'array': object[key] = $unlink(object[key]); break;
+ }
+
+ return object;
+
+};
+
+new Native({name: 'Class', initialize: Class}).extend({
+
+ instantiate: function(F){
+ F._prototyping = true;
+ var proto = new F;
+ delete F._prototyping;
+ return proto;
+ },
+
+ wrap: function(self, key, method){
+ if (method._origin) method = method._origin;
+
+ return function(){
+ if (method._protected && this._current == null) throw new Error('The method "' + key + '" cannot be called.');
+ var caller = this.caller, current = this._current;
+ this.caller = current; this._current = arguments.callee;
+ var result = method.apply(this, arguments);
+ this._current = current; this.caller = caller;
+ return result;
+ }.extend({_owner: self, _origin: method, _name: key});
+
+ }
+
+});
+
+Class.implement({
+
+ implement: function(key, value){
+
+ if ($type(key) == 'object'){
+ for (var p in key) this.implement(p, key[p]);
+ return this;
+ }
+
+ var mutator = Class.Mutators[key];
+
+ if (mutator){
+ value = mutator.call(this, value);
+ if (value == null) return this;
+ }
+
+ var proto = this.prototype;
+
+ switch ($type(value)){
+
+ case 'function':
+ if (value._hidden) return this;
+ proto[key] = Class.wrap(this, key, value);
+ break;
+
+ case 'object':
+ var previous = proto[key];
+ if ($type(previous) == 'object') $mixin(previous, value);
+ else proto[key] = $unlink(value);
+ break;
+
+ case 'array':
+ proto[key] = $unlink(value);
+ break;
+
+ default: proto[key] = value;
+
+ }
+
+ return this;
+
+ }
+
+});
+
+Class.Mutators = {
+
+ Extends: function(parent){
+
+ this.parent = parent;
+ this.prototype = Class.instantiate(parent);
+
+ this.implement('parent', function(){
+ var name = this.caller._name, previous = this.caller._owner.parent.prototype[name];
+ if (!previous) throw new Error('The method "' + name + '" has no parent.');
+ return previous.apply(this, arguments);
+ }.protect());
+
+ },
+
+ Implements: function(items){
+ $splat(items).each(function(item){
+ if (item instanceof Function) item = Class.instantiate(item);
+ this.implement(item);
+ }, this);
+
+ }
+
+};
+
+
+/*
+Script: Class.Extras.js
+ Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks.
+
+License:
+ MIT-style license.
+*/
+
+var Chain = new Class({
+
+ $chain: [],
+
+ chain: function(){
+ this.$chain.extend(Array.flatten(arguments));
+ return this;
+ },
+
+ callChain: function(){
+ return (this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false;
+ },
+
+ clearChain: function(){
+ this.$chain.empty();
+ return this;
+ }
+
+});
+
+var Events = new Class({
+
+ $events: {},
+
+ addEvent: function(type, fn, internal){
+ type = Events.removeOn(type);
+ if (fn != $empty){
+ this.$events[type] = this.$events[type] || [];
+ this.$events[type].include(fn);
+ if (internal) fn.internal = true;
+ }
+ return this;
+ },
+
+ addEvents: function(events){
+ for (var type in events) this.addEvent(type, events[type]);
+ return this;
+ },
+
+ fireEvent: function(type, args, delay){
+ type = Events.removeOn(type);
+ if (!this.$events || !this.$events[type]) return this;
+ this.$events[type].each(function(fn){
+ fn.create({'bind': this, 'delay': delay, 'arguments': args})();
+ }, this);
+ return this;
+ },
+
+ removeEvent: function(type, fn){
+ type = Events.removeOn(type);
+ if (!this.$events[type]) return this;
+ if (!fn.internal) this.$events[type].erase(fn);
+ return this;
+ },
+
+ removeEvents: function(events){
+ var type;
+ if ($type(events) == 'object'){
+ for (type in events) this.removeEvent(type, events[type]);
+ return this;
+ }
+ if (events) events = Events.removeOn(events);
+ for (type in this.$events){
+ if (events && events != type) continue;
+ var fns = this.$events[type];
+ for (var i = fns.length; i--; i) this.removeEvent(type, fns[i]);
+ }
+ return this;
+ }
+
+});
+
+Events.removeOn = function(string){
+ return string.replace(/^on([A-Z])/, function(full, first) {
+ return first.toLowerCase();
+ });
+};
+
+var Options = new Class({
+
+ setOptions: function(){
+ this.options = $merge.run([this.options].extend(arguments));
+ if (!this.addEvent) return this;
+ for (var option in this.options){
+ if ($type(this.options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue;
+ this.addEvent(option, this.options[option]);
+ delete this.options[option];
+ }
+ return this;
+ }
+
+});
+
+
+/*
+Script: Element.js
+ One of the most important items in MooTools. Contains the dollar function, the dollars function, and an handful of cross-browser,
+ time-saver methods to let you easily work with HTML Elements.
+
+License:
+ MIT-style license.
+*/
+
+var Element = new Native({
+
+ name: 'Element',
+
+ legacy: window.Element,
+
+ initialize: function(tag, props){
+ var konstructor = Element.Constructors.get(tag);
+ if (konstructor) return konstructor(props);
+ if (typeof tag == 'string') return document.newElement(tag, props);
+ return $(tag).set(props);
+ },
+
+ afterImplement: function(key, value){
+ Element.Prototype[key] = value;
+ if (Array[key]) return;
+ Elements.implement(key, function(){
+ var items = [], elements = true;
+ for (var i = 0, j = this.length; i < j; i++){
+ var returns = this[i][key].apply(this[i], arguments);
+ items.push(returns);
+ if (elements) elements = ($type(returns) == 'element');
+ }
+ return (elements) ? new Elements(items) : items;
+ });
+ }
+
+});
+
+Element.Prototype = {$family: {name: 'element'}};
+
+Element.Constructors = new Hash;
+
+var IFrame = new Native({
+
+ name: 'IFrame',
+
+ generics: false,
+
+ initialize: function(){
+ var params = Array.link(arguments, {properties: Object.type, iframe: $defined});
+ var props = params.properties || {};
+ var iframe = $(params.iframe) || false;
+ var onload = props.onload || $empty;
+ delete props.onload;
+ props.id = props.name = $pick(props.id, props.name, iframe.id, iframe.name, 'IFrame_' + $time());
+ iframe = new Element(iframe || 'iframe', props);
+ var onFrameLoad = function(){
+ var host = $try(function(){
+ return iframe.contentWindow.location.host;
+ });
+ if (host && host == window.location.host){
+ var win = new Window(iframe.contentWindow);
+ new Document(iframe.contentWindow.document);
+ $extend(win.Element.prototype, Element.Prototype);
+ }
+ onload.call(iframe.contentWindow, iframe.contentWindow.document);
+ };
+ (window.frames[props.id]) ? onFrameLoad() : iframe.addListener('load', onFrameLoad);
+ return iframe;
+ }
+
+});
+
+var Elements = new Native({
+
+ initialize: function(elements, options){
+ options = $extend({ddup: true, cash: true}, options);
+ elements = elements || [];
+ if (options.ddup || options.cash){
+ var uniques = {}, returned = [];
+ for (var i = 0, l = elements.length; i < l; i++){
+ var el = $.element(elements[i], !options.cash);
+ if (options.ddup){
+ if (uniques[el.uid]) continue;
+ uniques[el.uid] = true;
+ }
+ returned.push(el);
+ }
+ elements = returned;
+ }
+ return (options.cash) ? $extend(elements, this) : elements;
+ }
+
+});
+
+Elements.implement({
+
+ filter: function(filter, bind){
+ if (!filter) return this;
+ return new Elements(Array.filter(this, (typeof filter == 'string') ? function(item){
+ return item.match(filter);
+ } : filter, bind));
+ }
+
+});
+
+Document.implement({
+
+ newElement: function(tag, props){
+ if (Browser.Engine.trident && props){
+ ['name', 'type', 'checked'].each(function(attribute){
+ if (!props[attribute]) return;
+ tag += ' ' + attribute + '="' + props[attribute] + '"';
+ if (attribute != 'checked') delete props[attribute];
+ });
+ tag = '<' + tag + '>';
+ }
+ return $.element(this.createElement(tag)).set(props);
+ },
+
+ newTextNode: function(text){
+ return this.createTextNode(text);
+ },
+
+ getDocument: function(){
+ return this;
+ },
+
+ getWindow: function(){
+ return this.window;
+ }
+
+});
+
+Window.implement({
+
+ $: function(el, nocash){
+ if (el && el.$family && el.uid) return el;
+ var type = $type(el);
+ return ($[type]) ? $[type](el, nocash, this.document) : null;
+ },
+
+ $$: function(selector){
+ if (arguments.length == 1 && typeof selector == 'string') return this.document.getElements(selector);
+ var elements = [];
+ var args = Array.flatten(arguments);
+ for (var i = 0, l = args.length; i < l; i++){
+ var item = args[i];
+ switch ($type(item)){
+ case 'element': elements.push(item); break;
+ case 'string': elements.extend(this.document.getElements(item, true));
+ }
+ }
+ return new Elements(elements);
+ },
+
+ getDocument: function(){
+ return this.document;
+ },
+
+ getWindow: function(){
+ return this;
+ }
+
+});
+
+$.string = function(id, nocash, doc){
+ id = doc.getElementById(id);
+ return (id) ? $.element(id, nocash) : null;
+};
+
+$.element = function(el, nocash){
+ $uid(el);
+ if (!nocash && !el.$family && !(/^object|embed$/i).test(el.tagName)){
+ var proto = Element.Prototype;
+ for (var p in proto) el[p] = proto[p];
+ };
+ return el;
+};
+
+$.object = function(obj, nocash, doc){
+ if (obj.toElement) return $.element(obj.toElement(doc), nocash);
+ return null;
+};
+
+$.textnode = $.whitespace = $.window = $.document = $arguments(0);
+
+Native.implement([Element, Document], {
+
+ getElement: function(selector, nocash){
+ return $(this.getElements(selector, true)[0] || null, nocash);
+ },
+
+ getElements: function(tags, nocash){
+ tags = tags.split(',');
+ var elements = [];
+ var ddup = (tags.length > 1);
+ tags.each(function(tag){
+ var partial = this.getElementsByTagName(tag.trim());
+ (ddup) ? elements.extend(partial) : elements = partial;
+ }, this);
+ return new Elements(elements, {ddup: ddup, cash: !nocash});
+ }
+
+});
+
+(function(){
+
+var collected = {}, storage = {};
+var props = {input: 'checked', option: 'selected', textarea: (Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerHTML' : 'value'};
+
+var get = function(uid){
+ return (storage[uid] || (storage[uid] = {}));
+};
+
+var clean = function(item, retain){
+ if (!item) return;
+ var uid = item.uid;
+ if (Browser.Engine.trident){
+ if (item.clearAttributes){
+ var clone = retain && item.cloneNode(false);
+ item.clearAttributes();
+ if (clone) item.mergeAttributes(clone);
+ } else if (item.removeEvents){
+ item.removeEvents();
+ }
+ if ((/object/i).test(item.tagName)){
+ for (var p in item){
+ if (typeof item[p] == 'function') item[p] = $empty;
+ }
+ Element.dispose(item);
+ }
+ }
+ if (!uid) return;
+ collected[uid] = storage[uid] = null;
+};
+
+var purge = function(){
+ Hash.each(collected, clean);
+ if (Browser.Engine.trident) $A(document.getElementsByTagName('object')).each(clean);
+ if (window.CollectGarbage) CollectGarbage();
+ collected = storage = null;
+};
+
+var walk = function(element, walk, start, match, all, nocash){
+ var el = element[start || walk];
+ var elements = [];
+ while (el){
+ if (el.nodeType == 1 && (!match || Element.match(el, match))){
+ if (!all) return $(el, nocash);
+ elements.push(el);
+ }
+ el = el[walk];
+ }
+ return (all) ? new Elements(elements, {ddup: false, cash: !nocash}) : null;
+};
+
+var attributes = {
+ 'html': 'innerHTML',
+ 'class': 'className',
+ 'for': 'htmlFor',
+ 'text': (Browser.Engine.trident || (Browser.Engine.webkit && Browser.Engine.version < 420)) ? 'innerText' : 'textContent'
+};
+var bools = ['compact', 'nowrap', 'ismap', 'declare', 'noshade', 'checked', 'disabled', 'readonly', 'multiple', 'selected', 'noresize', 'defer'];
+var camels = ['value', 'accessKey', 'cellPadding', 'cellSpacing', 'colSpan', 'frameBorder', 'maxLength', 'readOnly', 'rowSpan', 'tabIndex', 'useMap'];
+
+bools = bools.associate(bools);
+
+Hash.extend(attributes, bools);
+Hash.extend(attributes, camels.associate(camels.map(String.toLowerCase)));
+
+var inserters = {
+
+ before: function(context, element){
+ if (element.parentNode) element.parentNode.insertBefore(context, element);
+ },
+
+ after: function(context, element){
+ if (!element.parentNode) return;
+ var next = element.nextSibling;
+ (next) ? element.parentNode.insertBefore(context, next) : element.parentNode.appendChild(context);
+ },
+
+ bottom: function(context, element){
+ element.appendChild(context);
+ },
+
+ top: function(context, element){
+ var first = element.firstChild;
+ (first) ? element.insertBefore(context, first) : element.appendChild(context);
+ }
+
+};
+
+inserters.inside = inserters.bottom;
+
+Hash.each(inserters, function(inserter, where){
+
+ where = where.capitalize();
+
+ Element.implement('inject' + where, function(el){
+ inserter(this, $(el, true));
+ return this;
+ });
+
+ Element.implement('grab' + where, function(el){
+ inserter($(el, true), this);
+ return this;
+ });
+
+});
+
+Element.implement({
+
+ set: function(prop, value){
+ switch ($type(prop)){
+ case 'object':
+ for (var p in prop) this.set(p, prop[p]);
+ break;
+ case 'string':
+ var property = Element.Properties.get(prop);
+ (property && property.set) ? property.set.apply(this, Array.slice(arguments, 1)) : this.setProperty(prop, value);
+ }
+ return this;
+ },
+
+ get: function(prop){
+ var property = Element.Properties.get(prop);
+ return (property && property.get) ? property.get.apply(this, Array.slice(arguments, 1)) : this.getProperty(prop);
+ },
+
+ erase: function(prop){
+ var property = Element.Properties.get(prop);
+ (property && property.erase) ? property.erase.apply(this) : this.removeProperty(prop);
+ return this;
+ },
+
+ setProperty: function(attribute, value){
+ var key = attributes[attribute];
+ if (value == undefined) return this.removeProperty(attribute);
+ if (key && bools[attribute]) value = !!value;
+ (key) ? this[key] = value : this.setAttribute(attribute, '' + value);
+ return this;
+ },
+
+ setProperties: function(attributes){
+ for (var attribute in attributes) this.setProperty(attribute, attributes[attribute]);
+ return this;
+ },
+
+ getProperty: function(attribute){
+ var key = attributes[attribute];
+ var value = (key) ? this[key] : this.getAttribute(attribute, 2);
+ return (bools[attribute]) ? !!value : (key) ? value : value || null;
+ },
+
+ getProperties: function(){
+ var args = $A(arguments);
+ return args.map(this.getProperty, this).associate(args);
+ },
+
+ removeProperty: function(attribute){
+ var key = attributes[attribute];
+ (key) ? this[key] = (key && bools[attribute]) ? false : '' : this.removeAttribute(attribute);
+ return this;
+ },
+
+ removeProperties: function(){
+ Array.each(arguments, this.removeProperty, this);
+ return this;
+ },
+
+ hasClass: function(className){
+ return this.className.contains(className, ' ');
+ },
+
+ addClass: function(className){
+ if (!this.hasClass(className)) this.className = (this.className + ' ' + className).clean();
+ return this;
+ },
+
+ removeClass: function(className){
+ this.className = this.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1');
+ return this;
+ },
+
+ toggleClass: function(className){
+ return this.hasClass(className) ? this.removeClass(className) : this.addClass(className);
+ },
+
+ adopt: function(){
+ Array.flatten(arguments).each(function(element){
+ element = $(element, true);
+ if (element) this.appendChild(element);
+ }, this);
+ return this;
+ },
+
+ appendText: function(text, where){
+ return this.grab(this.getDocument().newTextNode(text), where);
+ },
+
+ grab: function(el, where){
+ inserters[where || 'bottom']($(el, true), this);
+ return this;
+ },
+
+ inject: function(el, where){
+ inserters[where || 'bottom'](this, $(el, true));
+ return this;
+ },
+
+ replaces: function(el){
+ el = $(el, true);
+ el.parentNode.replaceChild(this, el);
+ return this;
+ },
+
+ wraps: function(el, where){
+ el = $(el, true);
+ return this.replaces(el).grab(el, where);
+ },
+
+ getPrevious: function(match, nocash){
+ return walk(this, 'previousSibling', null, match, false, nocash);
+ },
+
+ getAllPrevious: function(match, nocash){
+ return walk(this, 'previousSibling', null, match, true, nocash);
+ },
+
+ getNext: function(match, nocash){
+ return walk(this, 'nextSibling', null, match, false, nocash);
+ },
+
+ getAllNext: function(match, nocash){
+ return walk(this, 'nextSibling', null, match, true, nocash);
+ },
+
+ getFirst: function(match, nocash){
+ return walk(this, 'nextSibling', 'firstChild', match, false, nocash);
+ },
+
+ getLast: function(match, nocash){
+ return walk(this, 'previousSibling', 'lastChild', match, false, nocash);
+ },
+
+ getParent: function(match, nocash){
+ return walk(this, 'parentNode', null, match, false, nocash);
+ },
+
+ getParents: function(match, nocash){
+ return walk(this, 'parentNode', null, match, true, nocash);
+ },
+
+ getSiblings: function(match, nocash) {
+ return this.getParent().getChildren(match, nocash).erase(this);
+ },
+
+ getChildren: function(match, nocash){
+ return walk(this, 'nextSibling', 'firstChild', match, true, nocash);
+ },
+
+ getWindow: function(){
+ return this.ownerDocument.window;
+ },
+
+ getDocument: function(){
+ return this.ownerDocument;
+ },
+
+ getElementById: function(id, nocash){
+ var el = this.ownerDocument.getElementById(id);
+ if (!el) return null;
+ for (var parent = el.parentNode; parent != this; parent = parent.parentNode){
+ if (!parent) return null;
+ }
+ return $.element(el, nocash);
+ },
+
+ getSelected: function(){
+ return new Elements($A(this.options).filter(function(option){
+ return option.selected;
+ }));
+ },
+
+ getComputedStyle: function(property){
+ if (this.currentStyle) return this.currentStyle[property.camelCase()];
+ var computed = this.getDocument().defaultView.getComputedStyle(this, null);
+ return (computed) ? computed.getPropertyValue([property.hyphenate()]) : null;
+ },
+
+ toQueryString: function(){
+ var queryString = [];
+ this.getElements('input, select, textarea', true).each(function(el){
+ if (!el.name || el.disabled) return;
+ var value = (el.tagName.toLowerCase() == 'select') ? Element.getSelected(el).map(function(opt){
+ return opt.value;
+ }) : ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) ? null : el.value;
+ $splat(value).each(function(val){
+ if (typeof val != 'undefined') queryString.push(el.name + '=' + encodeURIComponent(val));
+ });
+ });
+ return queryString.join('&');
+ },
+
+ clone: function(contents, keepid){
+ contents = contents !== false;
+ var clone = this.cloneNode(contents);
+ var clean = function(node, element){
+ if (!keepid) node.removeAttribute('id');
+ if (Browser.Engine.trident){
+ node.clearAttributes();
+ node.mergeAttributes(element);
+ node.removeAttribute('uid');
+ if (node.options){
+ var no = node.options, eo = element.options;
+ for (var j = no.length; j--;) no[j].selected = eo[j].selected;
+ }
+ }
+ var prop = props[element.tagName.toLowerCase()];
+ if (prop && element[prop]) node[prop] = element[prop];
+ };
+
+ if (contents){
+ var ce = clone.getElementsByTagName('*'), te = this.getElementsByTagName('*');
+ for (var i = ce.length; i--;) clean(ce[i], te[i]);
+ }
+
+ clean(clone, this);
+ return $(clone);
+ },
+
+ destroy: function(){
+ Element.empty(this);
+ Element.dispose(this);
+ clean(this, true);
+ return null;
+ },
+
+ empty: function(){
+ $A(this.childNodes).each(function(node){
+ Element.destroy(node);
+ });
+ return this;
+ },
+
+ dispose: function(){
+ return (this.parentNode) ? this.parentNode.removeChild(this) : this;
+ },
+
+ hasChild: function(el){
+ el = $(el, true);
+ if (!el) return false;
+ if (Browser.Engine.webkit && Browser.Engine.version < 420) return $A(this.getElementsByTagName(el.tagName)).contains(el);
+ return (this.contains) ? (this != el && this.contains(el)) : !!(this.compareDocumentPosition(el) & 16);
+ },
+
+ match: function(tag){
+ return (!tag || (tag == this) || (Element.get(this, 'tag') == tag));
+ }
+
+});
+
+Native.implement([Element, Window, Document], {
+
+ addListener: function(type, fn){
+ if (type == 'unload'){
+ var old = fn, self = this;
+ fn = function(){
+ self.removeListener('unload', fn);
+ old();
+ };
+ } else {
+ collected[this.uid] = this;
+ }
+ if (this.addEventListener) this.addEventListener(type, fn, false);
+ else this.attachEvent('on' + type, fn);
+ return this;
+ },
+
+ removeListener: function(type, fn){
+ if (this.removeEventListener) this.removeEventListener(type, fn, false);
+ else this.detachEvent('on' + type, fn);
+ return this;
+ },
+
+ retrieve: function(property, dflt){
+ var storage = get(this.uid), prop = storage[property];
+ if (dflt != undefined && prop == undefined) prop = storage[property] = dflt;
+ return $pick(prop);
+ },
+
+ store: function(property, value){
+ var storage = get(this.uid);
+ storage[property] = value;
+ return this;
+ },
+
+ eliminate: function(property){
+ var storage = get(this.uid);
+ delete storage[property];
+ return this;
+ }
+
+});
+
+window.addListener('unload', purge);
+
+})();
+
+Element.Properties = new Hash;
+
+Element.Properties.style = {
+
+ set: function(style){
+ this.style.cssText = style;
+ },
+
+ get: function(){
+ return this.style.cssText;
+ },
+
+ erase: function(){
+ this.style.cssText = '';
+ }
+
+};
+
+Element.Properties.tag = {
+
+ get: function(){
+ return this.tagName.toLowerCase();
+ }
+
+};
+
+Element.Properties.html = (function(){
+ var wrapper = document.createElement('div');
+
+ var translations = {
+ table: [1, '<table>', '</table>'],
+ select: [1, '<select>', '</select>'],
+ tbody: [2, '<table><tbody>', '</tbody></table>'],
+ tr: [3, '<table><tbody><tr>', '</tr></tbody></table>']
+ };
+ translations.thead = translations.tfoot = translations.tbody;
+
+ var html = {
+ set: function(){
+ var html = Array.flatten(arguments).join('');
+ var wrap = Browser.Engine.trident && translations[this.get('tag')];
+ if (wrap){
+ var first = wrapper;
+ first.innerHTML = wrap[1] + html + wrap[2];
+ for (var i = wrap[0]; i--;) first = first.firstChild;
+ this.empty().adopt(first.childNodes);
+ } else {
+ this.innerHTML = html;
+ }
+ }
+ };
+
+ html.erase = html.set;
+
+ return html;
+})();
+
+if (Browser.Engine.webkit && Browser.Engine.version < 420) Element.Properties.text = {
+ get: function(){
+ if (this.innerText) return this.innerText;
+ var temp = this.ownerDocument.newElement('div', {html: this.innerHTML}).inject(this.ownerDocument.body);
+ var text = temp.innerText;
+ temp.destroy();
+ return text;
+ }
+};
+
+
+/*
+Script: Element.Event.js
+ Contains Element methods for dealing with events, and custom Events.
+
+License:
+ MIT-style license.
+*/
+
+Element.Properties.events = {set: function(events){
+ this.addEvents(events);
+}};
+
+Native.implement([Element, Window, Document], {
+
+ addEvent: function(type, fn){
+ var events = this.retrieve('events', {});
+ events[type] = events[type] || {'keys': [], 'values': []};
+ if (events[type].keys.contains(fn)) return this;
+ events[type].keys.push(fn);
+ var realType = type, custom = Element.Events.get(type), condition = fn, self = this;
+ if (custom){
+ if (custom.onAdd) custom.onAdd.call(this, fn);
+ if (custom.condition){
+ condition = function(event){
+ if (custom.condition.call(this, event)) return fn.call(this, event);
+ return true;
+ };
+ }
+ realType = custom.base || realType;
+ }
+ var defn = function(){
+ return fn.call(self);
+ };
+ var nativeEvent = Element.NativeEvents[realType];
+ if (nativeEvent){
+ if (nativeEvent == 2){
+ defn = function(event){
+ event = new Event(event, self.getWindow());
+ if (condition.call(self, event) === false) event.stop();
+ };
+ }
+ this.addListener(realType, defn);
+ }
+ events[type].values.push(defn);
+ return this;
+ },
+
+ removeEvent: function(type, fn){
+ var events = this.retrieve('events');
+ if (!events || !events[type]) return this;
+ var pos = events[type].keys.indexOf(fn);
+ if (pos == -1) return this;
+ events[type].keys.splice(pos, 1);
+ var value = events[type].values.splice(pos, 1)[0];
+ var custom = Element.Events.get(type);
+ if (custom){
+ if (custom.onRemove) custom.onRemove.call(this, fn);
+ type = custom.base || type;
+ }
+ return (Element.NativeEvents[type]) ? this.removeListener(type, value) : this;
+ },
+
+ addEvents: function(events){
+ for (var event in events) this.addEvent(event, events[event]);
+ return this;
+ },
+
+ removeEvents: function(events){
+ var type;
+ if ($type(events) == 'object'){
+ for (type in events) this.removeEvent(type, events[type]);
+ return this;
+ }
+ var attached = this.retrieve('events');
+ if (!attached) return this;
+ if (!events){
+ for (type in attached) this.removeEvents(type);
+ this.eliminate('events');
+ } else if (attached[events]){
+ while (attached[events].keys[0]) this.removeEvent(events, attached[events].keys[0]);
+ attached[events] = null;
+ }
+ return this;
+ },
+
+ fireEvent: function(type, args, delay){
+ var events = this.retrieve('events');
+ if (!events || !events[type]) return this;
+ events[type].keys.each(function(fn){
+ fn.create({'bind': this, 'delay': delay, 'arguments': args})();
+ }, this);
+ return this;
+ },
+
+ cloneEvents: function(from, type){
+ from = $(from);
+ var fevents = from.retrieve('events');
+ if (!fevents) return this;
+ if (!type){
+ for (var evType in fevents) this.cloneEvents(from, evType);
+ } else if (fevents[type]){
+ fevents[type].keys.each(function(fn){
+ this.addEvent(type, fn);
+ }, this);
+ }
+ return this;
+ }
+
+});
+
+Element.NativeEvents = {
+ click: 2, dblclick: 2, mouseup: 2, mousedown: 2, contextmenu: 2, //mouse buttons
+ mousewheel: 2, DOMMouseScroll: 2, //mouse wheel
+ mouseover: 2, mouseout: 2, mousemove: 2, selectstart: 2, selectend: 2, //mouse movement
+ keydown: 2, keypress: 2, keyup: 2, //keyboard
+ focus: 2, blur: 2, change: 2, reset: 2, select: 2, submit: 2, //form elements
+ load: 1, unload: 1, beforeunload: 2, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window
+ error: 1, abort: 1, scroll: 1 //misc
+};
+
+(function(){
+
+var $check = function(event){
+ var related = event.relatedTarget;
+ if (related == undefined) return true;
+ if (related === false) return false;
+ return ($type(this) != 'document' && related != this && related.prefix != 'xul' && !this.hasChild(related));
+};
+
+Element.Events = new Hash({
+
+ mouseenter: {
+ base: 'mouseover',
+ condition: $check
+ },
+
+ mouseleave: {
+ base: 'mouseout',
+ condition: $check
+ },
+
+ mousewheel: {
+ base: (Browser.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel'
+ }
+
+});
+
+})();
+
+
+/*
+Script: Element.Style.js
+ Contains methods for interacting with the styles of Elements in a fashionable way.
+
+License:
+ MIT-style license.
+*/
+
+Element.Properties.styles = {set: function(styles){
+ this.setStyles(styles);
+}};
+
+Element.Properties.opacity = {
+
+ set: function(opacity, novisibility){
+ if (!novisibility){
+ if (opacity == 0){
+ if (this.style.visibility != 'hidden') this.style.visibility = 'hidden';
+ } else {
+ if (this.style.visibility != 'visible') this.style.visibility = 'visible';
+ }
+ }
+ if (!this.currentStyle || !this.currentStyle.hasLayout) this.style.zoom = 1;
+ if (Browser.Engine.trident) this.style.filter = (opacity == 1) ? '' : 'alpha(opacity=' + opacity * 100 + ')';
+ this.style.opacity = opacity;
+ this.store('opacity', opacity);
+ },
+
+ get: function(){
+ return this.retrieve('opacity', 1);
+ }
+
+};
+
+Element.implement({
+
+ setOpacity: function(value){
+ return this.set('opacity', value, true);
+ },
+
+ getOpacity: function(){
+ return this.get('opacity');
+ },
+
+ setStyle: function(property, value){
+ switch (property){
+ case 'opacity': return this.set('opacity', parseFloat(value));
+ case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';
+ }
+ property = property.camelCase();
+ if ($type(value) != 'string'){
+ var map = (Element.Styles.get(property) || '@').split(' ');
+ value = $splat(value).map(function(val, i){
+ if (!map[i]) return '';
+ return ($type(val) == 'number') ? map[i].replace('@', Math.round(val)) : val;
+ }).join(' ');
+ } else if (value == String(Number(value))){
+ value = Math.round(value);
+ }
+ this.style[property] = value;
+ return this;
+ },
+
+ getStyle: function(property){
+ switch (property){
+ case 'opacity': return this.get('opacity');
+ case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';
+ }
+ property = property.camelCase();
+ var result = this.style[property];
+ if (!$chk(result)){
+ result = [];
+ for (var style in Element.ShortStyles){
+ if (property != style) continue;
+ for (var s in Element.ShortStyles[style]) result.push(this.getStyle(s));
+ return result.join(' ');
+ }
+ result = this.getComputedStyle(property);
+ }
+ if (result){
+ result = String(result);
+ var color = result.match(/rgba?\([\d\s,]+\)/);
+ if (color) result = result.replace(color[0], color[0].rgbToHex());
+ }
+ if (Browser.Engine.presto || (Browser.Engine.trident && !$chk(parseInt(result, 10)))){
+ if (property.test(/^(height|width)$/)){
+ var values = (property == 'width') ? ['left', 'right'] : ['top', 'bottom'], size = 0;
+ values.each(function(value){
+ size += this.getStyle('border-' + value + '-width').toInt() + this.getStyle('padding-' + value).toInt();
+ }, this);
+ return this['offset' + property.capitalize()] - size + 'px';
+ }
+ if ((Browser.Engine.presto) && String(result).test('px')) return result;
+ if (property.test(/(border(.+)Width|margin|padding)/)) return '0px';
+ }
+ return result;
+ },
+
+ setStyles: function(styles){
+ for (var style in styles) this.setStyle(style, styles[style]);
+ return this;
+ },
+
+ getStyles: function(){
+ var result = {};
+ Array.each(arguments, function(key){
+ result[key] = this.getStyle(key);
+ }, this);
+ return result;
+ }
+
+});
+
+Element.Styles = new Hash({
+ left: '@px', top: '@px', bottom: '@px', right: '@px',
+ width: '@px', height: '@px', maxWidth: '@px', maxHeight: '@px', minWidth: '@px', minHeight: '@px',
+ backgroundColor: 'rgb(@, @, @)', backgroundPosition: '@px @px', color: 'rgb(@, @, @)',
+ fontSize: '@px', letterSpacing: '@px', lineHeight: '@px', clip: 'rect(@px @px @px @px)',
+ margin: '@px @px @px @px', padding: '@px @px @px @px', border: '@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',
+ borderWidth: '@px @px @px @px', borderStyle: '@ @ @ @', borderColor: 'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',
+ zIndex: '@', 'zoom': '@', fontWeight: '@', textIndent: '@px', opacity: '@'
+});
+
+Element.ShortStyles = {margin: {}, padding: {}, border: {}, borderWidth: {}, borderStyle: {}, borderColor: {}};
+
+['Top', 'Right', 'Bottom', 'Left'].each(function(direction){
+ var Short = Element.ShortStyles;
+ var All = Element.Styles;
+ ['margin', 'padding'].each(function(style){
+ var sd = style + direction;
+ Short[style][sd] = All[sd] = '@px';
+ });
+ var bd = 'border' + direction;
+ Short.border[bd] = All[bd] = '@px @ rgb(@, @, @)';
+ var bdw = bd + 'Width', bds = bd + 'Style', bdc = bd + 'Color';
+ Short[bd] = {};
+ Short.borderWidth[bdw] = Short[bd][bdw] = All[bdw] = '@px';
+ Short.borderStyle[bds] = Short[bd][bds] = All[bds] = '@';
+ Short.borderColor[bdc] = Short[bd][bdc] = All[bdc] = 'rgb(@, @, @)';
+});
+
+
+/*
+Script: Element.Dimensions.js
+ Contains methods to work with size, scroll, or positioning of Elements and the window object.
+
+License:
+ MIT-style license.
+
+Credits:
+ - Element positioning based on the [qooxdoo](http://qooxdoo.org/) code and smart browser fixes, [LGPL License](http://www.gnu.org/licenses/lgpl.html).
+ - Viewport dimensions based on [YUI](http://developer.yahoo.com/yui/) code, [BSD License](http://developer.yahoo.com/yui/license.html).
+*/
+
+(function(){
+
+Element.implement({
+
+ scrollTo: function(x, y){
+ if (isBody(this)){
+ this.getWindow().scrollTo(x, y);
+ } else {
+ this.scrollLeft = x;
+ this.scrollTop = y;
+ }
+ return this;
+ },
+
+ getSize: function(){
+ if (isBody(this)) return this.getWindow().getSize();
+ return {x: this.offsetWidth, y: this.offsetHeight};
+ },
+
+ getScrollSize: function(){
+ if (isBody(this)) return this.getWindow().getScrollSize();
+ return {x: this.scrollWidth, y: this.scrollHeight};
+ },
+
+ getScroll: function(){
+ if (isBody(this)) return this.getWindow().getScroll();
+ return {x: this.scrollLeft, y: this.scrollTop};
+ },
+
+ getScrolls: function(){
+ var element = this, position = {x: 0, y: 0};
+ while (element && !isBody(element)){
+ position.x += element.scrollLeft;
+ position.y += element.scrollTop;
+ element = element.parentNode;
+ }
+ return position;
+ },
+
+ getOffsetParent: function(){
+ var element = this;
+ if (isBody(element)) return null;
+ if (!Browser.Engine.trident) return element.offsetParent;
+ while ((element = element.parentNode) && !isBody(element)){
+ if (styleString(element, 'position') != 'static') return element;
+ }
+ return null;
+ },
+
+ getOffsets: function(){
+ if (Browser.Engine.trident){
+ var bound = this.getBoundingClientRect(), html = this.getDocument().documentElement;
+ var isFixed = styleString(this, 'position') == 'fixed';
+ return {
+ x: bound.left + ((isFixed) ? 0 : html.scrollLeft) - html.clientLeft,
+ y: bound.top + ((isFixed) ? 0 : html.scrollTop) - html.clientTop
+ };
+ }
+
+ var element = this, position = {x: 0, y: 0};
+ if (isBody(this)) return position;
+
+ while (element && !isBody(element)){
+ position.x += element.offsetLeft;
+ position.y += element.offsetTop;
+
+ if (Browser.Engine.gecko){
+ if (!borderBox(element)){
+ position.x += leftBorder(element);
+ position.y += topBorder(element);
+ }
+ var parent = element.parentNode;
+ if (parent && styleString(parent, 'overflow') != 'visible'){
+ position.x += leftBorder(parent);
+ position.y += topBorder(parent);
+ }
+ } else if (element != this && Browser.Engine.webkit){
+ position.x += leftBorder(element);
+ position.y += topBorder(element);
+ }
+
+ element = element.offsetParent;
+ }
+ if (Browser.Engine.gecko && !borderBox(this)){
+ position.x -= leftBorder(this);
+ position.y -= topBorder(this);
+ }
+ return position;
+ },
+
+ getPosition: function(relative){
+ if (isBody(this)) return {x: 0, y: 0};
+ var offset = this.getOffsets(), scroll = this.getScrolls();
+ var position = {x: offset.x - scroll.x, y: offset.y - scroll.y};
+ var relativePosition = (relative && (relative = $(relative))) ? relative.getPosition() : {x: 0, y: 0};
+ return {x: position.x - relativePosition.x, y: position.y - relativePosition.y};
+ },
+
+ getCoordinates: function(element){
+ if (isBody(this)) return this.getWindow().getCoordinates();
+ var position = this.getPosition(element), size = this.getSize();
+ var obj = {left: position.x, top: position.y, width: size.x, height: size.y};
+ obj.right = obj.left + obj.width;
+ obj.bottom = obj.top + obj.height;
+ return obj;
+ },
+
+ computePosition: function(obj){
+ return {left: obj.x - styleNumber(this, 'margin-left'), top: obj.y - styleNumber(this, 'margin-top')};
+ },
+
+ position: function(obj){
+ return this.setStyles(this.computePosition(obj));
+ }
+
+});
+
+Native.implement([Document, Window], {
+
+ getSize: function(){
+ if (Browser.Engine.presto || Browser.Engine.webkit) {
+ var win = this.getWindow();
+ return {x: win.innerWidth, y: win.innerHeight};
+ }
+ var doc = getCompatElement(this);
+ return {x: doc.clientWidth, y: doc.clientHeight};
+ },
+
+ getScroll: function(){
+ var win = this.getWindow(), doc = getCompatElement(this);
+ return {x: win.pageXOffset || doc.scrollLeft, y: win.pageYOffset || doc.scrollTop};
+ },
+
+ getScrollSize: function(){
+ var doc = getCompatElement(this), min = this.getSize();
+ return {x: Math.max(doc.scrollWidth, min.x), y: Math.max(doc.scrollHeight, min.y)};
+ },
+
+ getPosition: function(){
+ return {x: 0, y: 0};
+ },
+
+ getCoordinates: function(){
+ var size = this.getSize();
+ return {top: 0, left: 0, bottom: size.y, right: size.x, height: size.y, width: size.x};
+ }
+
+});
+
+// private methods
+
+var styleString = Element.getComputedStyle;
+
+function styleNumber(element, style){
+ return styleString(element, style).toInt() || 0;
+};
+
+function borderBox(element){
+ return styleString(element, '-moz-box-sizing') == 'border-box';
+};
+
+function topBorder(element){
+ return styleNumber(element, 'border-top-width');
+};
+
+function leftBorder(element){
+ return styleNumber(element, 'border-left-width');
+};
+
+function isBody(element){
+ return (/^(?:body|html)$/i).test(element.tagName);
+};
+
+function getCompatElement(element){
+ var doc = element.getDocument();
+ return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
+};
+
+})();
+
+//aliases
+
+Native.implement([Window, Document, Element], {
+
+ getHeight: function(){
+ return this.getSize().y;
+ },
+
+ getWidth: function(){
+ return this.getSize().x;
+ },
+
+ getScrollTop: function(){
+ return this.getScroll().y;
+ },
+
+ getScrollLeft: function(){
+ return this.getScroll().x;
+ },
+
+ getScrollHeight: function(){
+ return this.getScrollSize().y;
+ },
+
+ getScrollWidth: function(){
+ return this.getScrollSize().x;
+ },
+
+ getTop: function(){
+ return this.getPosition().y;
+ },
+
+ getLeft: function(){
+ return this.getPosition().x;
+ }
+
+});
+
+
+/*
+Script: Selectors.js
+ Adds advanced CSS Querying capabilities for targeting elements. Also includes pseudoselectors support.
+
+License:
+ MIT-style license.
+*/
+
+Native.implement([Document, Element], {
+
+ getElements: function(expression, nocash){
+ expression = expression.split(',');
+ var items, local = {};
+ for (var i = 0, l = expression.length; i < l; i++){
+ var selector = expression[i], elements = Selectors.Utils.search(this, selector, local);
+ if (i != 0 && elements.item) elements = $A(elements);
+ items = (i == 0) ? elements : (items.item) ? $A(items).concat(elements) : items.concat(elements);
+ }
+ return new Elements(items, {ddup: (expression.length > 1), cash: !nocash});
+ }
+
+});
+
+Element.implement({
+
+ match: function(selector){
+ if (!selector || (selector == this)) return true;
+ var tagid = Selectors.Utils.parseTagAndID(selector);
+ var tag = tagid[0], id = tagid[1];
+ if (!Selectors.Filters.byID(this, id) || !Selectors.Filters.byTag(this, tag)) return false;
+ var parsed = Selectors.Utils.parseSelector(selector);
+ return (parsed) ? Selectors.Utils.filter(this, parsed, {}) : true;
+ }
+
+});
+
+var Selectors = {Cache: {nth: {}, parsed: {}}};
+
+Selectors.RegExps = {
+ id: (/#([\w-]+)/),
+ tag: (/^(\w+|\*)/),
+ quick: (/^(\w+|\*)$/),
+ splitter: (/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),
+ combined: (/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)
+};
+
+Selectors.Utils = {
+
+ chk: function(item, uniques){
+ if (!uniques) return true;
+ var uid = $uid(item);
+ if (!uniques[uid]) return uniques[uid] = true;
+ return false;
+ },
+
+ parseNthArgument: function(argument){
+ if (Selectors.Cache.nth[argument]) return Selectors.Cache.nth[argument];
+ var parsed = argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);
+ if (!parsed) return false;
+ var inta = parseInt(parsed[1], 10);
+ var a = (inta || inta === 0) ? inta : 1;
+ var special = parsed[2] || false;
+ var b = parseInt(parsed[3], 10) || 0;
+ if (a != 0){
+ b--;
+ while (b < 1) b += a;
+ while (b >= a) b -= a;
+ } else {
+ a = b;
+ special = 'index';
+ }
+ switch (special){
+ case 'n': parsed = {a: a, b: b, special: 'n'}; break;
+ case 'odd': parsed = {a: 2, b: 0, special: 'n'}; break;
+ case 'even': parsed = {a: 2, b: 1, special: 'n'}; break;
+ case 'first': parsed = {a: 0, special: 'index'}; break;
+ case 'last': parsed = {special: 'last-child'}; break;
+ case 'only': parsed = {special: 'only-child'}; break;
+ default: parsed = {a: (a - 1), special: 'index'};
+ }
+
+ return Selectors.Cache.nth[argument] = parsed;
+ },
+
+ parseSelector: function(selector){
+ if (Selectors.Cache.parsed[selector]) return Selectors.Cache.parsed[selector];
+ var m, parsed = {classes: [], pseudos: [], attributes: []};
+ while ((m = Selectors.RegExps.combined.exec(selector))){
+ var cn = m[1], an = m[2], ao = m[3], av = m[5], pn = m[6], pa = m[7];
+ if (cn){
+ parsed.classes.push(cn);
+ } else if (pn){
+ var parser = Selectors.Pseudo.get(pn);
+ if (parser) parsed.pseudos.push({parser: parser, argument: pa});
+ else parsed.attributes.push({name: pn, operator: '=', value: pa});
+ } else if (an){
+ parsed.attributes.push({name: an, operator: ao, value: av});
+ }
+ }
+ if (!parsed.classes.length) delete parsed.classes;
+ if (!parsed.attributes.length) delete parsed.attributes;
+ if (!parsed.pseudos.length) delete parsed.pseudos;
+ if (!parsed.classes && !parsed.attributes && !parsed.pseudos) parsed = null;
+ return Selectors.Cache.parsed[selector] = parsed;
+ },
+
+ parseTagAndID: function(selector){
+ var tag = selector.match(Selectors.RegExps.tag);
+ var id = selector.match(Selectors.RegExps.id);
+ return [(tag) ? tag[1] : '*', (id) ? id[1] : false];
+ },
+
+ filter: function(item, parsed, local){
+ var i;
+ if (parsed.classes){
+ for (i = parsed.classes.length; i--; i){
+ var cn = parsed.classes[i];
+ if (!Selectors.Filters.byClass(item, cn)) return false;
+ }
+ }
+ if (parsed.attributes){
+ for (i = parsed.attributes.length; i--; i){
+ var att = parsed.attributes[i];
+ if (!Selectors.Filters.byAttribute(item, att.name, att.operator, att.value)) return false;
+ }
+ }
+ if (parsed.pseudos){
+ for (i = parsed.pseudos.length; i--; i){
+ var psd = parsed.pseudos[i];
+ if (!Selectors.Filters.byPseudo(item, psd.parser, psd.argument, local)) return false;
+ }
+ }
+ return true;
+ },
+
+ getByTagAndID: function(ctx, tag, id){
+ if (id){
+ var item = (ctx.getElementById) ? ctx.getElementById(id, true) : Element.getElementById(ctx, id, true);
+ return (item && Selectors.Filters.byTag(item, tag)) ? [item] : [];
+ } else {
+ return ctx.getElementsByTagName(tag);
+ }
+ },
+
+ search: function(self, expression, local){
+ var splitters = [];
+
+ var selectors = expression.trim().replace(Selectors.RegExps.splitter, function(m0, m1, m2){
+ splitters.push(m1);
+ return ':)' + m2;
+ }).split(':)');
+
+ var items, filtered, item;
+
+ for (var i = 0, l = selectors.length; i < l; i++){
+
+ var selector = selectors[i];
+
+ if (i == 0 && Selectors.RegExps.quick.test(selector)){
+ items = self.getElementsByTagName(selector);
+ continue;
+ }
+
+ var splitter = splitters[i - 1];
+
+ var tagid = Selectors.Utils.parseTagAndID(selector);
+ var tag = tagid[0], id = tagid[1];
+
+ if (i == 0){
+ items = Selectors.Utils.getByTagAndID(self, tag, id);
+ } else {
+ var uniques = {}, found = [];
+ for (var j = 0, k = items.length; j < k; j++) found = Selectors.Getters[splitter](found, items[j], tag, id, uniques);
+ items = found;
+ }
+
+ var parsed = Selectors.Utils.parseSelector(selector);
+
+ if (parsed){
+ filtered = [];
+ for (var m = 0, n = items.length; m < n; m++){
+ item = items[m];
+ if (Selectors.Utils.filter(item, parsed, local)) filtered.push(item);
+ }
+ items = filtered;
+ }
+
+ }
+
+ return items;
+
+ }
+
+};
+
+Selectors.Getters = {
+
+ ' ': function(found, self, tag, id, uniques){
+ var items = Selectors.Utils.getByTagAndID(self, tag, id);
+ for (var i = 0, l = items.length; i < l; i++){
+ var item = items[i];
+ if (Selectors.Utils.chk(item, uniques)) found.push(item);
+ }
+ return found;
+ },
+
+ '>': function(found, self, tag, id, uniques){
+ var children = Selectors.Utils.getByTagAndID(self, tag, id);
+ for (var i = 0, l = children.length; i < l; i++){
+ var child = children[i];
+ if (child.parentNode == self && Selectors.Utils.chk(child, uniques)) found.push(child);
+ }
+ return found;
+ },
+
+ '+': function(found, self, tag, id, uniques){
+ while ((self = self.nextSibling)){
+ if (self.nodeType == 1){
+ if (Selectors.Utils.chk(self, uniques) && Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);
+ break;
+ }
+ }
+ return found;
+ },
+
+ '~': function(found, self, tag, id, uniques){
+ while ((self = self.nextSibling)){
+ if (self.nodeType == 1){
+ if (!Selectors.Utils.chk(self, uniques)) break;
+ if (Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);
+ }
+ }
+ return found;
+ }
+
+};
+
+Selectors.Filters = {
+
+ byTag: function(self, tag){
+ return (tag == '*' || (self.tagName && self.tagName.toLowerCase() == tag));
+ },
+
+ byID: function(self, id){
+ return (!id || (self.id && self.id == id));
+ },
+
+ byClass: function(self, klass){
+ return (self.className && self.className.contains(klass, ' '));
+ },
+
+ byPseudo: function(self, parser, argument, local){
+ return parser.call(self, argument, local);
+ },
+
+ byAttribute: function(self, name, operator, value){
+ var result = Element.prototype.getProperty.call(self, name);
+ if (!result) return (operator == '!=');
+ if (!operator || value == undefined) return true;
+ switch (operator){
+ case '=': return (result == value);
+ case '*=': return (result.contains(value));
+ case '^=': return (result.substr(0, value.length) == value);
+ case '$=': return (result.substr(result.length - value.length) == value);
+ case '!=': return (result != value);
+ case '~=': return result.contains(value, ' ');
+ case '|=': return result.contains(value, '-');
+ }
+ return false;
+ }
+
+};
+
+Selectors.Pseudo = new Hash({
+
+ // w3c pseudo selectors
+
+ checked: function(){
+ return this.checked;
+ },
+
+ empty: function(){
+ return !(this.innerText || this.textContent || '').length;
+ },
+
+ not: function(selector){
+ return !Element.match(this, selector);
+ },
+
+ contains: function(text){
+ return (this.innerText || this.textContent || '').contains(text);
+ },
+
+ 'first-child': function(){
+ return Selectors.Pseudo.index.call(this, 0);
+ },
+
+ 'last-child': function(){
+ var element = this;
+ while ((element = element.nextSibling)){
+ if (element.nodeType == 1) return false;
+ }
+ return true;
+ },
+
+ 'only-child': function(){
+ var prev = this;
+ while ((prev = prev.previousSibling)){
+ if (prev.nodeType == 1) return false;
+ }
+ var next = this;
+ while ((next = next.nextSibling)){
+ if (next.nodeType == 1) return false;
+ }
+ return true;
+ },
+
+ 'nth-child': function(argument, local){
+ argument = (argument == undefined) ? 'n' : argument;
+ var parsed = Selectors.Utils.parseNthArgument(argument);
+ if (parsed.special != 'n') return Selectors.Pseudo[parsed.special].call(this, parsed.a, local);
+ var count = 0;
+ local.positions = local.positions || {};
+ var uid = $uid(this);
+ if (!local.positions[uid]){
+ var self = this;
+ while ((self = self.previousSibling)){
+ if (self.nodeType != 1) continue;
+ count ++;
+ var position = local.positions[$uid(self)];
+ if (position != undefined){
+ count = position + count;
+ break;
+ }
+ }
+ local.positions[uid] = count;
+ }
+ return (local.positions[uid] % parsed.a == parsed.b);
+ },
+
+ // custom pseudo selectors
+
+ index: function(index){
+ var element = this, count = 0;
+ while ((element = element.previousSibling)){
+ if (element.nodeType == 1 && ++count > index) return false;
+ }
+ return (count == index);
+ },
+
+ even: function(argument, local){
+ return Selectors.Pseudo['nth-child'].call(this, '2n+1', local);
+ },
+
+ odd: function(argument, local){
+ return Selectors.Pseudo['nth-child'].call(this, '2n', local);
+ },
+
+ selected: function() {
+ return this.selected;
+ }
+
+});
+
+
+/*
+Script: Domready.js
+ Contains the domready custom event.
+
+License:
+ MIT-style license.
+*/
+
+Element.Events.domready = {
+
+ onAdd: function(fn){
+ if (Browser.loaded) fn.call(this);
+ }
+
+};
+
+(function(){
+
+ var domready = function(){
+ if (Browser.loaded) return;
+ Browser.loaded = true;
+ window.fireEvent('domready');
+ document.fireEvent('domready');
+ };
+
+ if (Browser.Engine.trident){
+ var temp = document.createElement('div');
+ (function(){
+ ($try(function(){
+ temp.doScroll('left');
+ return $(temp).inject(document.body).set('html', 'temp').dispose();
+ })) ? domready() : arguments.callee.delay(50);
+ })();
+ } else if (Browser.Engine.webkit && Browser.Engine.version < 525){
+ (function(){
+ (['loaded', 'complete'].contains(document.readyState)) ? domready() : arguments.callee.delay(50);
+ })();
+ } else {
+ window.addEvent('load', domready);
+ document.addEvent('DOMContentLoaded', domready);
+ }
+
+})();
+
+
+/*
+Script: JSON.js
+ JSON encoder and decoder.
+
+License:
+ MIT-style license.
+
+See Also:
+ <http://www.json.org/>
+*/
+
+var JSON = new Hash({
+
+ $specialChars: {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'},
+
+ $replaceChars: function(chr){
+ return JSON.$specialChars[chr] || '\\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16);
+ },
+
+ encode: function(obj){
+ switch ($type(obj)){
+ case 'string':
+ return '"' + obj.replace(/[\x00-\x1f\\"]/g, JSON.$replaceChars) + '"';
+ case 'array':
+ return '[' + String(obj.map(JSON.encode).filter($defined)) + ']';
+ case 'object': case 'hash':
+ var string = [];
+ Hash.each(obj, function(value, key){
+ var json = JSON.encode(value);
+ if (json) string.push(JSON.encode(key) + ':' + json);
+ });
+ return '{' + string + '}';
+ case 'number': case 'boolean': return String(obj);
+ case false: return 'null';
+ }
+ return null;
+ },
+
+ decode: function(string, secure){
+ if ($type(string) != 'string' || !string.length) return null;
+ if (secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) return null;
+ return eval('(' + string + ')');
+ }
+
+});
+
+Native.implement([Hash, Array, String, Number], {
+
+ toJSON: function(){
+ return JSON.encode(this);
+ }
+
+});
+
+
+/*
+Script: Cookie.js
+ Class for creating, loading, and saving browser Cookies.
+
+License:
+ MIT-style license.
+
+Credits:
+ Based on the functions by Peter-Paul Koch (http://quirksmode.org).
+*/
+
+var Cookie = new Class({
+
+ Implements: Options,
+
+ options: {
+ path: false,
+ domain: false,
+ duration: false,
+ secure: false,
+ document: document
+ },
+
+ initialize: function(key, options){
+ this.key = key;
+ this.setOptions(options);
+ },
+
+ write: function(value){
+ value = encodeURIComponent(value);
+ if (this.options.domain) value += '; domain=' + this.options.domain;
+ if (this.options.path) value += '; path=' + this.options.path;
+ if (this.options.duration){
+ var date = new Date();
+ date.setTime(date.getTime() + this.options.duration * 24 * 60 * 60 * 1000);
+ value += '; expires=' + date.toGMTString();
+ }
+ if (this.options.secure) value += '; secure';
+ this.options.document.cookie = this.key + '=' + value;
+ return this;
+ },
+
+ read: function(){
+ var value = this.options.document.cookie.match('(?:^|;)\\s*' + this.key.escapeRegExp() + '=([^;]*)');
+ return (value) ? decodeURIComponent(value[1]) : null;
+ },
+
+ dispose: function(){
+ new Cookie(this.key, $merge(this.options, {duration: -1})).write('');
+ return this;
+ }
+
+});
+
+Cookie.write = function(key, value, options){
+ return new Cookie(key, options).write(value);
+};
+
+Cookie.read = function(key){
+ return new Cookie(key).read();
+};
+
+Cookie.dispose = function(key, options){
+ return new Cookie(key, options).dispose();
+};
+
+
+/*
+Script: Swiff.js
+ Wrapper for embedding SWF movies. Supports (and fixes) External Interface Communication.
+
+License:
+ MIT-style license.
+
+Credits:
+ Flash detection & Internet Explorer + Flash Player 9 fix inspired by SWFObject.
+*/
+
+var Swiff = new Class({
+
+ Implements: [Options],
+
+ options: {
+ id: null,
+ height: 1,
+ width: 1,
+ container: null,
+ properties: {},
+ params: {
+ quality: 'high',
+ allowScriptAccess: 'always',
+ wMode: 'transparent',
+ swLiveConnect: true
+ },
+ callBacks: {},
+ vars: {}
+ },
+
+ toElement: function(){
+ return this.object;
+ },
+
+ initialize: function(path, options){
+ this.instance = 'Swiff_' + $time();
+
+ this.setOptions(options);
+ options = this.options;
+ var id = this.id = options.id || this.instance;
+ var container = $(options.container);
+
+ Swiff.CallBacks[this.instance] = {};
+
+ var params = options.params, vars = options.vars, callBacks = options.callBacks;
+ var properties = $extend({height: options.height, width: options.width}, options.properties);
+
+ var self = this;
+
+ for (var callBack in callBacks){
+ Swiff.CallBacks[this.instance][callBack] = (function(option){
+ return function(){
+ return option.apply(self.object, arguments);
+ };
+ })(callBacks[callBack]);
+ vars[callBack] = 'Swiff.CallBacks.' + this.instance + '.' + callBack;
+ }
+
+ params.flashVars = Hash.toQueryString(vars);
+ if (Browser.Engine.trident){
+ properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
+ params.movie = path;
+ } else {
+ properties.type = 'application/x-shockwave-flash';
+ properties.data = path;
+ }
+ var build = '<object id="' + id + '"';
+ for (var property in properties) build += ' ' + property + '="' + properties[property] + '"';
+ build += '>';
+ for (var param in params){
+ if (params[param]) build += '<param name="' + param + '" value="' + params[param] + '" />';
+ }
+ build += '</object>';
+ this.object = ((container) ? container.empty() : new Element('div')).set('html', build).firstChild;
+ },
+
+ replaces: function(element){
+ element = $(element, true);
+ element.parentNode.replaceChild(this.toElement(), element);
+ return this;
+ },
+
+ inject: function(element){
+ $(element, true).appendChild(this.toElement());
+ return this;
+ },
+
+ remote: function(){
+ return Swiff.remote.apply(Swiff, [this.toElement()].extend(arguments));
+ }
+
+});
+
+Swiff.CallBacks = {};
+
+Swiff.remote = function(obj, fn){
+ var rs = obj.CallFunction('<invoke name="' + fn + '" returntype="javascript">' + __flash__argumentsToXML(arguments, 2) + '</invoke>');
+ return eval(rs);
+};
+
+
+/*
+Script: Fx.js
+ Contains the basic animation logic to be extended by all other Fx Classes.
+
+License:
+ MIT-style license.
+*/
+
+var Fx = new Class({
+
+ Implements: [Chain, Events, Options],
+
+ options: {
+ /*
+ onStart: $empty,
+ onCancel: $empty,
+ onComplete: $empty,
+ */
+ fps: 50,
+ unit: false,
+ duration: 500,
+ link: 'ignore'
+ },
+
+ initialize: function(options){
+ this.subject = this.subject || this;
+ this.setOptions(options);
+ this.options.duration = Fx.Durations[this.options.duration] || this.options.duration.toInt();
+ var wait = this.options.wait;
+ if (wait === false) this.options.link = 'cancel';
+ },
+
+ getTransition: function(){
+ return function(p){
+ return -(Math.cos(Math.PI * p) - 1) / 2;
+ };
+ },
+
+ step: function(){
+ var time = $time();
+ if (time < this.time + this.options.duration){
+ var delta = this.transition((time - this.time) / this.options.duration);
+ this.set(this.compute(this.from, this.to, delta));
+ } else {
+ this.set(this.compute(this.from, this.to, 1));
+ this.complete();
+ }
+ },
+
+ set: function(now){
+ return now;
+ },
+
+ compute: function(from, to, delta){
+ return Fx.compute(from, to, delta);
+ },
+
+ check: function(){
+ if (!this.timer) return true;
+ switch (this.options.link){
+ case 'cancel': this.cancel(); return true;
+ case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
+ }
+ return false;
+ },
+
+ start: function(from, to){
+ if (!this.check(from, to)) return this;
+ this.from = from;
+ this.to = to;
+ this.time = 0;
+ this.transition = this.getTransition();
+ this.startTimer();
+ this.onStart();
+ return this;
+ },
+
+ complete: function(){
+ if (this.stopTimer()) this.onComplete();
+ return this;
+ },
+
+ cancel: function(){
+ if (this.stopTimer()) this.onCancel();
+ return this;
+ },
+
+ onStart: function(){
+ this.fireEvent('start', this.subject);
+ },
+
+ onComplete: function(){
+ this.fireEvent('complete', this.subject);
+ if (!this.callChain()) this.fireEvent('chainComplete', this.subject);
+ },
+
+ onCancel: function(){
+ this.fireEvent('cancel', this.subject).clearChain();
+ },
+
+ pause: function(){
+ this.stopTimer();
+ return this;
+ },
+
+ resume: function(){
+ this.startTimer();
+ return this;
+ },
+
+ stopTimer: function(){
+ if (!this.timer) return false;
+ this.time = $time() - this.time;
+ this.timer = $clear(this.timer);
+ return true;
+ },
+
+ startTimer: function(){
+ if (this.timer) return false;
+ this.time = $time() - this.time;
+ this.timer = this.step.periodical(Math.round(1000 / this.options.fps), this);
+ return true;
+ }
+
+});
+
+Fx.compute = function(from, to, delta){
+ return (to - from) * delta + from;
+};
+
+Fx.Durations = {'short': 250, 'normal': 500, 'long': 1000};
+
+
+/*
+Script: Fx.CSS.js
+ Contains the CSS animation logic. Used by Fx.Tween, Fx.Morph, Fx.Elements.
+
+License:
+ MIT-style license.
+*/
+
+Fx.CSS = new Class({
+
+ Extends: Fx,
+
+ //prepares the base from/to object
+
+ prepare: function(element, property, values){
+ values = $splat(values);
+ var values1 = values[1];
+ if (!$chk(values1)){
+ values[1] = values[0];
+ values[0] = element.getStyle(property);
+ }
+ var parsed = values.map(this.parse);
+ return {from: parsed[0], to: parsed[1]};
+ },
+
+ //parses a value into an array
+
+ parse: function(value){
+ value = $lambda(value)();
+ value = (typeof value == 'string') ? value.split(' ') : $splat(value);
+ return value.map(function(val){
+ val = String(val);
+ var found = false;
+ Fx.CSS.Parsers.each(function(parser, key){
+ if (found) return;
+ var parsed = parser.parse(val);
+ if ($chk(parsed)) found = {value: parsed, parser: parser};
+ });
+ found = found || {value: val, parser: Fx.CSS.Parsers.String};
+ return found;
+ });
+ },
+
+ //computes by a from and to prepared objects, using their parsers.
+
+ compute: function(from, to, delta){
+ var computed = [];
+ (Math.min(from.length, to.length)).times(function(i){
+ computed.push({value: from[i].parser.compute(from[i].value, to[i].value, delta), parser: from[i].parser});
+ });
+ computed.$family = {name: 'fx:css:value'};
+ return computed;
+ },
+
+ //serves the value as settable
+
+ serve: function(value, unit){
+ if ($type(value) != 'fx:css:value') value = this.parse(value);
+ var returned = [];
+ value.each(function(bit){
+ returned = returned.concat(bit.parser.serve(bit.value, unit));
+ });
+ return returned;
+ },
+
+ //renders the change to an element
+
+ render: function(element, property, value, unit){
+ element.setStyle(property, this.serve(value, unit));
+ },
+
+ //searches inside the page css to find the values for a selector
+
+ search: function(selector){
+ if (Fx.CSS.Cache[selector]) return Fx.CSS.Cache[selector];
+ var to = {};
+ Array.each(document.styleSheets, function(sheet, j){
+ var href = sheet.href;
+ if (href && href.contains('://') && !href.contains(document.domain)) return;
+ var rules = sheet.rules || sheet.cssRules;
+ Array.each(rules, function(rule, i){
+ if (!rule.style) return;
+ var selectorText = (rule.selectorText) ? rule.selectorText.replace(/^\w+/, function(m){
+ return m.toLowerCase();
+ }) : null;
+ if (!selectorText || !selectorText.test('^' + selector + '$')) return;
+ Element.Styles.each(function(value, style){
+ if (!rule.style[style] || Element.ShortStyles[style]) return;
+ value = String(rule.style[style]);
+ to[style] = (value.test(/^rgb/)) ? value.rgbToHex() : value;
+ });
+ });
+ });
+ return Fx.CSS.Cache[selector] = to;
+ }
+
+});
+
+Fx.CSS.Cache = {};
+
+Fx.CSS.Parsers = new Hash({
+
+ Color: {
+ parse: function(value){
+ if (value.match(/^#[0-9a-f]{3,6}$/i)) return value.hexToRgb(true);
+ return ((value = value.match(/(\d+),\s*(\d+),\s*(\d+)/))) ? [value[1], value[2], value[3]] : false;
+ },
+ compute: function(from, to, delta){
+ return from.map(function(value, i){
+ return Math.round(Fx.compute(from[i], to[i], delta));
+ });
+ },
+ serve: function(value){
+ return value.map(Number);
+ }
+ },
+
+ Number: {
+ parse: parseFloat,
+ compute: Fx.compute,
+ serve: function(value, unit){
+ return (unit) ? value + unit : value;
+ }
+ },
+
+ String: {
+ parse: $lambda(false),
+ compute: $arguments(1),
+ serve: $arguments(0)
+ }
+
+});
+
+
+/*
+Script: Fx.Tween.js
+ Formerly Fx.Style, effect to transition any CSS property for an element.
+
+License:
+ MIT-style license.
+*/
+
+Fx.Tween = new Class({
+
+ Extends: Fx.CSS,
+
+ initialize: function(element, options){
+ this.element = this.subject = $(element);
+ this.parent(options);
+ },
+
+ set: function(property, now){
+ if (arguments.length == 1){
+ now = property;
+ property = this.property || this.options.property;
+ }
+ this.render(this.element, property, now, this.options.unit);
+ return this;
+ },
+
+ start: function(property, from, to){
+ if (!this.check(property, from, to)) return this;
+ var args = Array.flatten(arguments);
+ this.property = this.options.property || args.shift();
+ var parsed = this.prepare(this.element, this.property, args);
+ return this.parent(parsed.from, parsed.to);
+ }
+
+});
+
+Element.Properties.tween = {
+
+ set: function(options){
+ var tween = this.retrieve('tween');
+ if (tween) tween.cancel();
+ return this.eliminate('tween').store('tween:options', $extend({link: 'cancel'}, options));
+ },
+
+ get: function(options){
+ if (options || !this.retrieve('tween')){
+ if (options || !this.retrieve('tween:options')) this.set('tween', options);
+ this.store('tween', new Fx.Tween(this, this.retrieve('tween:options')));
+ }
+ return this.retrieve('tween');
+ }
+
+};
+
+Element.implement({
+
+ tween: function(property, from, to){
+ this.get('tween').start(arguments);
+ return this;
+ },
+
+ fade: function(how){
+ var fade = this.get('tween'), o = 'opacity', toggle;
+ how = $pick(how, 'toggle');
+ switch (how){
+ case 'in': fade.start(o, 1); break;
+ case 'out': fade.start(o, 0); break;
+ case 'show': fade.set(o, 1); break;
+ case 'hide': fade.set(o, 0); break;
+ case 'toggle':
+ var flag = this.retrieve('fade:flag', this.get('opacity') == 1);
+ fade.start(o, (flag) ? 0 : 1);
+ this.store('fade:flag', !flag);
+ toggle = true;
+ break;
+ default: fade.start(o, arguments);
+ }
+ if (!toggle) this.eliminate('fade:flag');
+ return this;
+ },
+
+ highlight: function(start, end){
+ if (!end){
+ end = this.retrieve('highlight:original', this.getStyle('background-color'));
+ end = (end == 'transparent') ? '#fff' : end;
+ }
+ var tween = this.get('tween');
+ tween.start('background-color', start || '#ffff88', end).chain(function(){
+ this.setStyle('background-color', this.retrieve('highlight:original'));
+ tween.callChain();
+ }.bind(this));
+ return this;
+ }
+
+});
+
+
+/*
+Script: Fx.Morph.js
+ Formerly Fx.Styles, effect to transition any number of CSS properties for an element using an object of rules, or CSS based selector rules.
+
+License:
+ MIT-style license.
+*/
+
+Fx.Morph = new Class({
+
+ Extends: Fx.CSS,
+
+ initialize: function(element, options){
+ this.element = this.subject = $(element);
+ this.parent(options);
+ },
+
+ set: function(now){
+ if (typeof now == 'string') now = this.search(now);
+ for (var p in now) this.render(this.element, p, now[p], this.options.unit);
+ return this;
+ },
+
+ compute: function(from, to, delta){
+ var now = {};
+ for (var p in from) now[p] = this.parent(from[p], to[p], delta);
+ return now;
+ },
+
+ start: function(properties){
+ if (!this.check(properties)) return this;
+ if (typeof properties == 'string') properties = this.search(properties);
+ var from = {}, to = {};
+ for (var p in properties){
+ var parsed = this.prepare(this.element, p, properties[p]);
+ from[p] = parsed.from;
+ to[p] = parsed.to;
+ }
+ return this.parent(from, to);
+ }
+
+});
+
+Element.Properties.morph = {
+
+ set: function(options){
+ var morph = this.retrieve('morph');
+ if (morph) morph.cancel();
+ return this.eliminate('morph').store('morph:options', $extend({link: 'cancel'}, options));
+ },
+
+ get: function(options){
+ if (options || !this.retrieve('morph')){
+ if (options || !this.retrieve('morph:options')) this.set('morph', options);
+ this.store('morph', new Fx.Morph(this, this.retrieve('morph:options')));
+ }
+ return this.retrieve('morph');
+ }
+
+};
+
+Element.implement({
+
+ morph: function(props){
+ this.get('morph').start(props);
+ return this;
+ }
+
+});
+
+
+/*
+Script: Fx.Transitions.js
+ Contains a set of advanced transitions to be used with any of the Fx Classes.
+
+License:
+ MIT-style license.
+
+Credits:
+ Easing Equations by Robert Penner, <http://www.robertpenner.com/easing/>, modified and optimized to be used with MooTools.
+*/
+
+Fx.implement({
+
+ getTransition: function(){
+ var trans = this.options.transition || Fx.Transitions.Sine.easeInOut;
+ if (typeof trans == 'string'){
+ var data = trans.split(':');
+ trans = Fx.Transitions;
+ trans = trans[data[0]] || trans[data[0].capitalize()];
+ if (data[1]) trans = trans['ease' + data[1].capitalize() + (data[2] ? data[2].capitalize() : '')];
+ }
+ return trans;
+ }
+
+});
+
+Fx.Transition = function(transition, params){
+ params = $splat(params);
+ return $extend(transition, {
+ easeIn: function(pos){
+ return transition(pos, params);
+ },
+ easeOut: function(pos){
+ return 1 - transition(1 - pos, params);
+ },
+ easeInOut: function(pos){
+ return (pos <= 0.5) ? transition(2 * pos, params) / 2 : (2 - transition(2 * (1 - pos), params)) / 2;
+ }
+ });
+};
+
+Fx.Transitions = new Hash({
+
+ linear: $arguments(0)
+
+});
+
+Fx.Transitions.extend = function(transitions){
+ for (var transition in transitions) Fx.Transitions[transition] = new Fx.Transition(transitions[transition]);
+};
+
+Fx.Transitions.extend({
+
+ Pow: function(p, x){
+ return Math.pow(p, x[0] || 6);
+ },
+
+ Expo: function(p){
+ return Math.pow(2, 8 * (p - 1));
+ },
+
+ Circ: function(p){
+ return 1 - Math.sin(Math.acos(p));
+ },
+
+ Sine: function(p){
+ return 1 - Math.sin((1 - p) * Math.PI / 2);
+ },
+
+ Back: function(p, x){
+ x = x[0] || 1.618;
+ return Math.pow(p, 2) * ((x + 1) * p - x);
+ },
+
+ Bounce: function(p){
+ var value;
+ for (var a = 0, b = 1; 1; a += b, b /= 2){
+ if (p >= (7 - 4 * a) / 11){
+ value = b * b - Math.pow((11 - 6 * a - 11 * p) / 4, 2);
+ break;
+ }
+ }
+ return value;
+ },
+
+ Elastic: function(p, x){
+ return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) / 3);
+ }
+
+});
+
+['Quad', 'Cubic', 'Quart', 'Quint'].each(function(transition, i){
+ Fx.Transitions[transition] = new Fx.Transition(function(p){
+ return Math.pow(p, [i + 2]);
+ });
+});
+
+
+/*
+Script: Request.js
+ Powerful all purpose Request Class. Uses XMLHTTPRequest.
+
+License:
+ MIT-style license.
+*/
+
+var Request = new Class({
+
+ Implements: [Chain, Events, Options],
+
+ options: {/*
+ onRequest: $empty,
+ onComplete: $empty,
+ onCancel: $empty,
+ onSuccess: $empty,
+ onFailure: $empty,
+ onException: $empty,*/
+ url: '',
+ data: '',
+ headers: {
+ 'X-Requested-With': 'XMLHttpRequest',
+ 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+ },
+ async: true,
+ format: false,
+ method: 'post',
+ link: 'ignore',
+ isSuccess: null,
+ emulation: true,
+ urlEncoded: true,
+ encoding: 'utf-8',
+ evalScripts: false,
+ evalResponse: false,
+ noCache: false
+ },
+
+ initialize: function(options){
+ this.xhr = new Browser.Request();
+ this.setOptions(options);
+ this.options.isSuccess = this.options.isSuccess || this.isSuccess;
+ this.headers = new Hash(this.options.headers);
+ },
+
+ onStateChange: function(){
+ if (this.xhr.readyState != 4 || !this.running) return;
+ this.running = false;
+ this.status = 0;
+ $try(function(){
+ this.status = this.xhr.status;
+ }.bind(this));
+ if (this.options.isSuccess.call(this, this.status)){
+ this.response = {text: this.xhr.responseText, xml: this.xhr.responseXML};
+ this.success(this.response.text, this.response.xml);
+ } else {
+ this.response = {text: null, xml: null};
+ this.failure();
+ }
+ this.xhr.onreadystatechange = $empty;
+ },
+
+ isSuccess: function(){
+ return ((this.status >= 200) && (this.status < 300));
+ },
+
+ processScripts: function(text){
+ if (this.options.evalResponse || (/(ecma|java)script/).test(this.getHeader('Content-type'))) return $exec(text);
+ return text.stripScripts(this.options.evalScripts);
+ },
+
+ success: function(text, xml){
+ this.onSuccess(this.processScripts(text), xml);
+ },
+
+ onSuccess: function(){
+ this.fireEvent('complete', arguments).fireEvent('success', arguments).callChain();
+ },
+
+ failure: function(){
+ this.onFailure();
+ },
+
+ onFailure: function(){
+ this.fireEvent('complete').fireEvent('failure', this.xhr);
+ },
+
+ setHeader: function(name, value){
+ this.headers.set(name, value);
+ return this;
+ },
+
+ getHeader: function(name){
+ return $try(function(){
+ return this.xhr.getResponseHeader(name);
+ }.bind(this));
+ },
+
+ check: function(){
+ if (!this.running) return true;
+ switch (this.options.link){
+ case 'cancel': this.cancel(); return true;
+ case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
+ }
+ return false;
+ },
+
+ send: function(options){
+ if (!this.check(options)) return this;
+ this.running = true;
+
+ var type = $type(options);
+ if (type == 'string' || type == 'element') options = {data: options};
+
+ var old = this.options;
+ options = $extend({data: old.data, url: old.url, method: old.method}, options);
+ var data = options.data, url = options.url, method = options.method;
+
+ switch ($type(data)){
+ case 'element': data = $(data).toQueryString(); break;
+ case 'object': case 'hash': data = Hash.toQueryString(data);
+ }
+
+ if (this.options.format){
+ var format = 'format=' + this.options.format;
+ data = (data) ? format + '&' + data : format;
+ }
+
+ if (this.options.emulation && ['put', 'delete'].contains(method)){
+ var _method = '_method=' + method;
+ data = (data) ? _method + '&' + data : _method;
+ method = 'post';
+ }
+
+ if (this.options.urlEncoded && method == 'post'){
+ var encoding = (this.options.encoding) ? '; charset=' + this.options.encoding : '';
+ this.headers.set('Content-type', 'application/x-www-form-urlencoded' + encoding);
+ }
+
+ if(this.options.noCache) {
+ var noCache = "noCache=" + new Date().getTime();
+ data = (data) ? noCache + '&' + data : noCache;
+ }
+
+
+ if (data && method == 'get'){
+ url = url + (url.contains('?') ? '&' : '?') + data;
+ data = null;
+ }
+
+
+ this.xhr.open(method.toUpperCase(), url, this.options.async);
+
+ this.xhr.onreadystatechange = this.onStateChange.bind(this);
+
+ this.headers.each(function(value, key){
+ try {
+ this.xhr.setRequestHeader(key, value);
+ } catch (e){
+ this.fireEvent('exception', [key, value]);
+ }
+ }, this);
+
+ this.fireEvent('request');
+ this.xhr.send(data);
+ if (!this.options.async) this.onStateChange();
+ return this;
+ },
+
+ cancel: function(){
+ if (!this.running) return this;
+ this.running = false;
+ this.xhr.abort();
+ this.xhr.onreadystatechange = $empty;
+ this.xhr = new Browser.Request();
+ this.fireEvent('cancel');
+ return this;
+ }
+
+});
+
+(function(){
+
+var methods = {};
+['get', 'post', 'put', 'delete', 'GET', 'POST', 'PUT', 'DELETE'].each(function(method){
+ methods[method] = function(){
+ var params = Array.link(arguments, {url: String.type, data: $defined});
+ return this.send($extend(params, {method: method.toLowerCase()}));
+ };
+});
+
+Request.implement(methods);
+
+})();
+
+/*
+Script: Request.HTML.js
+ Extends the basic Request Class with additional methods for interacting with HTML responses.
+
+License:
+ MIT-style license.
+*/
+
+Request.HTML = new Class({
+
+ Extends: Request,
+
+ options: {
+ update: false,
+ append: false,
+ evalScripts: true,
+ filter: false
+ },
+
+ processHTML: function(text){
+ var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
+ text = (match) ? match[1] : text;
+
+ var container = new Element('div');
+
+ return $try(function(){
+ var root = '<root>' + text + '</root>', doc;
+ if (Browser.Engine.trident){
+ doc = new ActiveXObject('Microsoft.XMLDOM');
+ doc.async = false;
+ doc.loadXML(root);
+ } else {
+ doc = new DOMParser().parseFromString(root, 'text/xml');
+ }
+ root = doc.getElementsByTagName('root')[0];
+ if (!root) return null;
+ for (var i = 0, k = root.childNodes.length; i < k; i++){
+ var child = Element.clone(root.childNodes[i], true, true);
+ if (child) container.grab(child);
+ }
+ return container;
+ }) || container.set('html', text);
+ },
+
+ success: function(text){
+ var options = this.options, response = this.response;
+
+ response.html = text.stripScripts(function(script){
+ response.javascript = script;
+ });
+
+ var temp = this.processHTML(response.html);
+
+ response.tree = temp.childNodes;
+ response.elements = temp.getElements('*');
+
+ if (options.filter) response.tree = response.elements.filter(options.filter);
+ if (options.update) $(options.update).empty().set('html', response.html);
+ else if (options.append) $(options.append).adopt(temp.getChildren());
+ if (options.evalScripts) $exec(response.javascript);
+
+ this.onSuccess(response.tree, response.elements, response.html, response.javascript);
+ }
+
+});
+
+Element.Properties.send = {
+
+ set: function(options){
+ var send = this.retrieve('send');
+ if (send) send.cancel();
+ return this.eliminate('send').store('send:options', $extend({
+ data: this, link: 'cancel', method: this.get('method') || 'post', url: this.get('action')
+ }, options));
+ },
+
+ get: function(options){
+ if (options || !this.retrieve('send')){
+ if (options || !this.retrieve('send:options')) this.set('send', options);
+ this.store('send', new Request(this.retrieve('send:options')));
+ }
+ return this.retrieve('send');
+ }
+
+};
+
+Element.Properties.load = {
+
+ set: function(options){
+ var load = this.retrieve('load');
+ if (load) load.cancel();
+ return this.eliminate('load').store('load:options', $extend({data: this, link: 'cancel', update: this, method: 'get'}, options));
+ },
+
+ get: function(options){
+ if (options || ! this.retrieve('load')){
+ if (options || !this.retrieve('load:options')) this.set('load', options);
+ this.store('load', new Request.HTML(this.retrieve('load:options')));
+ }
+ return this.retrieve('load');
+ }
+
+};
+
+Element.implement({
+
+ send: function(url){
+ var sender = this.get('send');
+ sender.send({data: this, url: url || sender.options.url});
+ return this;
+ },
+
+ load: function(){
+ this.get('load').send(Array.link(arguments, {data: Object.type, url: String.type}));
+ return this;
+ }
+
+});
+
+
+/*
+Script: Request.JSON.js
+ Extends the basic Request Class with additional methods for sending and receiving JSON data.
+
+License:
+ MIT-style license.
+*/
+
+Request.JSON = new Class({
+
+ Extends: Request,
+
+ options: {
+ secure: true
+ },
+
+ initialize: function(options){
+ this.parent(options);
+ this.headers.extend({'Accept': 'application/json', 'X-Request': 'JSON'});
+ },
+
+ success: function(text){
+ this.response.json = JSON.decode(text, this.options.secure);
+ this.onSuccess(this.response.json, text);
+ }
+
+});
diff --git a/PerformanceTests/SunSpider/tests/parse-only/prototype-1.6.0.3.js b/PerformanceTests/SunSpider/tests/parse-only/prototype-1.6.0.3.js
new file mode 100644
index 000000000..b535908ba
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/parse-only/prototype-1.6.0.3.js
@@ -0,0 +1,4320 @@
+/* Prototype JavaScript framework, version 1.6.0.3
+ * (c) 2005-2008 Sam Stephenson
+ *
+ * Prototype is freely distributable under the terms of an MIT-style license.
+ * For details, see the Prototype web site: http://www.prototypejs.org/
+ *
+ *--------------------------------------------------------------------------*/
+
+var Prototype = {
+ Version: '1.6.0.3',
+
+ Browser: {
+ IE: !!(window.attachEvent &&
+ navigator.userAgent.indexOf('Opera') === -1),
+ Opera: navigator.userAgent.indexOf('Opera') > -1,
+ WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
+ Gecko: navigator.userAgent.indexOf('Gecko') > -1 &&
+ navigator.userAgent.indexOf('KHTML') === -1,
+ MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
+ },
+
+ BrowserFeatures: {
+ XPath: !!document.evaluate,
+ SelectorsAPI: !!document.querySelector,
+ ElementExtensions: !!window.HTMLElement,
+ SpecificElementExtensions:
+ document.createElement('div')['__proto__'] &&
+ document.createElement('div')['__proto__'] !==
+ document.createElement('form')['__proto__']
+ },
+
+ ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
+ JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
+
+ emptyFunction: function() { },
+ K: function(x) { return x }
+};
+
+if (Prototype.Browser.MobileSafari)
+ Prototype.BrowserFeatures.SpecificElementExtensions = false;
+
+
+/* Based on Alex Arnell's inheritance implementation. */
+var Class = {
+ create: function() {
+ var parent = null, properties = $A(arguments);
+ if (Object.isFunction(properties[0]))
+ parent = properties.shift();
+
+ function klass() {
+ this.initialize.apply(this, arguments);
+ }
+
+ Object.extend(klass, Class.Methods);
+ klass.superclass = parent;
+ klass.subclasses = [];
+
+ if (parent) {
+ var subclass = function() { };
+ subclass.prototype = parent.prototype;
+ klass.prototype = new subclass;
+ parent.subclasses.push(klass);
+ }
+
+ for (var i = 0; i < properties.length; i++)
+ klass.addMethods(properties[i]);
+
+ if (!klass.prototype.initialize)
+ klass.prototype.initialize = Prototype.emptyFunction;
+
+ klass.prototype.constructor = klass;
+
+ return klass;
+ }
+};
+
+Class.Methods = {
+ addMethods: function(source) {
+ var ancestor = this.superclass && this.superclass.prototype;
+ var properties = Object.keys(source);
+
+ if (!Object.keys({ toString: true }).length)
+ properties.push("toString", "valueOf");
+
+ for (var i = 0, length = properties.length; i < length; i++) {
+ var property = properties[i], value = source[property];
+ if (ancestor && Object.isFunction(value) &&
+ value.argumentNames().first() == "$super") {
+ var method = value;
+ value = (function(m) {
+ return function() { return ancestor[m].apply(this, arguments) };
+ })(property).wrap(method);
+
+ value.valueOf = method.valueOf.bind(method);
+ value.toString = method.toString.bind(method);
+ }
+ this.prototype[property] = value;
+ }
+
+ return this;
+ }
+};
+
+var Abstract = { };
+
+Object.extend = function(destination, source) {
+ for (var property in source)
+ destination[property] = source[property];
+ return destination;
+};
+
+Object.extend(Object, {
+ inspect: function(object) {
+ try {
+ if (Object.isUndefined(object)) return 'undefined';
+ if (object === null) return 'null';
+ return object.inspect ? object.inspect() : String(object);
+ } catch (e) {
+ if (e instanceof RangeError) return '...';
+ throw e;
+ }
+ },
+
+ toJSON: function(object) {
+ var type = typeof object;
+ switch (type) {
+ case 'undefined':
+ case 'function':
+ case 'unknown': return;
+ case 'boolean': return object.toString();
+ }
+
+ if (object === null) return 'null';
+ if (object.toJSON) return object.toJSON();
+ if (Object.isElement(object)) return;
+
+ var results = [];
+ for (var property in object) {
+ var value = Object.toJSON(object[property]);
+ if (!Object.isUndefined(value))
+ results.push(property.toJSON() + ': ' + value);
+ }
+
+ return '{' + results.join(', ') + '}';
+ },
+
+ toQueryString: function(object) {
+ return $H(object).toQueryString();
+ },
+
+ toHTML: function(object) {
+ return object && object.toHTML ? object.toHTML() : String.interpret(object);
+ },
+
+ keys: function(object) {
+ var keys = [];
+ for (var property in object)
+ keys.push(property);
+ return keys;
+ },
+
+ values: function(object) {
+ var values = [];
+ for (var property in object)
+ values.push(object[property]);
+ return values;
+ },
+
+ clone: function(object) {
+ return Object.extend({ }, object);
+ },
+
+ isElement: function(object) {
+ return !!(object && object.nodeType == 1);
+ },
+
+ isArray: function(object) {
+ return object != null && typeof object == "object" &&
+ 'splice' in object && 'join' in object;
+ },
+
+ isHash: function(object) {
+ return object instanceof Hash;
+ },
+
+ isFunction: function(object) {
+ return typeof object == "function";
+ },
+
+ isString: function(object) {
+ return typeof object == "string";
+ },
+
+ isNumber: function(object) {
+ return typeof object == "number";
+ },
+
+ isUndefined: function(object) {
+ return typeof object == "undefined";
+ }
+});
+
+Object.extend(Function.prototype, {
+ argumentNames: function() {
+ var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1]
+ .replace(/\s+/g, '').split(',');
+ return names.length == 1 && !names[0] ? [] : names;
+ },
+
+ bind: function() {
+ if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function() {
+ return __method.apply(object, args.concat($A(arguments)));
+ }
+ },
+
+ bindAsEventListener: function() {
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function(event) {
+ return __method.apply(object, [event || window.event].concat(args));
+ }
+ },
+
+ curry: function() {
+ if (!arguments.length) return this;
+ var __method = this, args = $A(arguments);
+ return function() {
+ return __method.apply(this, args.concat($A(arguments)));
+ }
+ },
+
+ delay: function() {
+ var __method = this, args = $A(arguments), timeout = args.shift() * 1000;
+ return window.setTimeout(function() {
+ return __method.apply(__method, args);
+ }, timeout);
+ },
+
+ defer: function() {
+ var args = [0.01].concat($A(arguments));
+ return this.delay.apply(this, args);
+ },
+
+ wrap: function(wrapper) {
+ var __method = this;
+ return function() {
+ return wrapper.apply(this, [__method.bind(this)].concat($A(arguments)));
+ }
+ },
+
+ methodize: function() {
+ if (this._methodized) return this._methodized;
+ var __method = this;
+ return this._methodized = function() {
+ return __method.apply(null, [this].concat($A(arguments)));
+ };
+ }
+});
+
+Date.prototype.toJSON = function() {
+ return '"' + this.getUTCFullYear() + '-' +
+ (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
+ this.getUTCDate().toPaddedString(2) + 'T' +
+ this.getUTCHours().toPaddedString(2) + ':' +
+ this.getUTCMinutes().toPaddedString(2) + ':' +
+ this.getUTCSeconds().toPaddedString(2) + 'Z"';
+};
+
+var Try = {
+ these: function() {
+ var returnValue;
+
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ var lambda = arguments[i];
+ try {
+ returnValue = lambda();
+ break;
+ } catch (e) { }
+ }
+
+ return returnValue;
+ }
+};
+
+RegExp.prototype.match = RegExp.prototype.test;
+
+RegExp.escape = function(str) {
+ return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
+};
+
+/*--------------------------------------------------------------------------*/
+
+var PeriodicalExecuter = Class.create({
+ initialize: function(callback, frequency) {
+ this.callback = callback;
+ this.frequency = frequency;
+ this.currentlyExecuting = false;
+
+ this.registerCallback();
+ },
+
+ registerCallback: function() {
+ this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+ },
+
+ execute: function() {
+ this.callback(this);
+ },
+
+ stop: function() {
+ if (!this.timer) return;
+ clearInterval(this.timer);
+ this.timer = null;
+ },
+
+ onTimerEvent: function() {
+ if (!this.currentlyExecuting) {
+ try {
+ this.currentlyExecuting = true;
+ this.execute();
+ } finally {
+ this.currentlyExecuting = false;
+ }
+ }
+ }
+});
+Object.extend(String, {
+ interpret: function(value) {
+ return value == null ? '' : String(value);
+ },
+ specialChar: {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '\\': '\\\\'
+ }
+});
+
+Object.extend(String.prototype, {
+ gsub: function(pattern, replacement) {
+ var result = '', source = this, match;
+ replacement = arguments.callee.prepareReplacement(replacement);
+
+ while (source.length > 0) {
+ if (match = source.match(pattern)) {
+ result += source.slice(0, match.index);
+ result += String.interpret(replacement(match));
+ source = source.slice(match.index + match[0].length);
+ } else {
+ result += source, source = '';
+ }
+ }
+ return result;
+ },
+
+ sub: function(pattern, replacement, count) {
+ replacement = this.gsub.prepareReplacement(replacement);
+ count = Object.isUndefined(count) ? 1 : count;
+
+ return this.gsub(pattern, function(match) {
+ if (--count < 0) return match[0];
+ return replacement(match);
+ });
+ },
+
+ scan: function(pattern, iterator) {
+ this.gsub(pattern, iterator);
+ return String(this);
+ },
+
+ truncate: function(length, truncation) {
+ length = length || 30;
+ truncation = Object.isUndefined(truncation) ? '...' : truncation;
+ return this.length > length ?
+ this.slice(0, length - truncation.length) + truncation : String(this);
+ },
+
+ strip: function() {
+ return this.replace(/^\s+/, '').replace(/\s+$/, '');
+ },
+
+ stripTags: function() {
+ return this.replace(/<\/?[^>]+>/gi, '');
+ },
+
+ stripScripts: function() {
+ return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
+ },
+
+ extractScripts: function() {
+ var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
+ var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+ return (this.match(matchAll) || []).map(function(scriptTag) {
+ return (scriptTag.match(matchOne) || ['', ''])[1];
+ });
+ },
+
+ evalScripts: function() {
+ return this.extractScripts().map(function(script) { return eval(script) });
+ },
+
+ escapeHTML: function() {
+ var self = arguments.callee;
+ self.text.data = this;
+ return self.div.innerHTML;
+ },
+
+ unescapeHTML: function() {
+ var div = new Element('div');
+ div.innerHTML = this.stripTags();
+ return div.childNodes[0] ? (div.childNodes.length > 1 ?
+ $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
+ div.childNodes[0].nodeValue) : '';
+ },
+
+ toQueryParams: function(separator) {
+ var match = this.strip().match(/([^?#]*)(#.*)?$/);
+ if (!match) return { };
+
+ return match[1].split(separator || '&').inject({ }, function(hash, pair) {
+ if ((pair = pair.split('='))[0]) {
+ var key = decodeURIComponent(pair.shift());
+ var value = pair.length > 1 ? pair.join('=') : pair[0];
+ if (value != undefined) value = decodeURIComponent(value);
+
+ if (key in hash) {
+ if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
+ hash[key].push(value);
+ }
+ else hash[key] = value;
+ }
+ return hash;
+ });
+ },
+
+ toArray: function() {
+ return this.split('');
+ },
+
+ succ: function() {
+ return this.slice(0, this.length - 1) +
+ String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+ },
+
+ times: function(count) {
+ return count < 1 ? '' : new Array(count + 1).join(this);
+ },
+
+ camelize: function() {
+ var parts = this.split('-'), len = parts.length;
+ if (len == 1) return parts[0];
+
+ var camelized = this.charAt(0) == '-'
+ ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
+ : parts[0];
+
+ for (var i = 1; i < len; i++)
+ camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
+
+ return camelized;
+ },
+
+ capitalize: function() {
+ return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+ },
+
+ underscore: function() {
+ return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
+ },
+
+ dasherize: function() {
+ return this.gsub(/_/,'-');
+ },
+
+ inspect: function(useDoubleQuotes) {
+ var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
+ var character = String.specialChar[match[0]];
+ return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
+ });
+ if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
+ return "'" + escapedString.replace(/'/g, '\\\'') + "'";
+ },
+
+ toJSON: function() {
+ return this.inspect(true);
+ },
+
+ unfilterJSON: function(filter) {
+ return this.sub(filter || Prototype.JSONFilter, '#{1}');
+ },
+
+ isJSON: function() {
+ var str = this;
+ if (str.blank()) return false;
+ str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
+ return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
+ },
+
+ evalJSON: function(sanitize) {
+ var json = this.unfilterJSON();
+ try {
+ if (!sanitize || json.isJSON()) return eval('(' + json + ')');
+ } catch (e) { }
+ throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
+ },
+
+ include: function(pattern) {
+ return this.indexOf(pattern) > -1;
+ },
+
+ startsWith: function(pattern) {
+ return this.indexOf(pattern) === 0;
+ },
+
+ endsWith: function(pattern) {
+ var d = this.length - pattern.length;
+ return d >= 0 && this.lastIndexOf(pattern) === d;
+ },
+
+ empty: function() {
+ return this == '';
+ },
+
+ blank: function() {
+ return /^\s*$/.test(this);
+ },
+
+ interpolate: function(object, pattern) {
+ return new Template(this, pattern).evaluate(object);
+ }
+});
+
+if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
+ escapeHTML: function() {
+ return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
+ },
+ unescapeHTML: function() {
+ return this.stripTags().replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
+ }
+});
+
+String.prototype.gsub.prepareReplacement = function(replacement) {
+ if (Object.isFunction(replacement)) return replacement;
+ var template = new Template(replacement);
+ return function(match) { return template.evaluate(match) };
+};
+
+String.prototype.parseQuery = String.prototype.toQueryParams;
+
+Object.extend(String.prototype.escapeHTML, {
+ div: document.createElement('div'),
+ text: document.createTextNode('')
+});
+
+String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text);
+
+var Template = Class.create({
+ initialize: function(template, pattern) {
+ this.template = template.toString();
+ this.pattern = pattern || Template.Pattern;
+ },
+
+ evaluate: function(object) {
+ if (Object.isFunction(object.toTemplateReplacements))
+ object = object.toTemplateReplacements();
+
+ return this.template.gsub(this.pattern, function(match) {
+ if (object == null) return '';
+
+ var before = match[1] || '';
+ if (before == '\\') return match[2];
+
+ var ctx = object, expr = match[3];
+ var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
+ match = pattern.exec(expr);
+ if (match == null) return before;
+
+ while (match != null) {
+ var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1];
+ ctx = ctx[comp];
+ if (null == ctx || '' == match[3]) break;
+ expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
+ match = pattern.exec(expr);
+ }
+
+ return before + String.interpret(ctx);
+ });
+ }
+});
+Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
+
+var $break = { };
+
+var Enumerable = {
+ each: function(iterator, context) {
+ var index = 0;
+ try {
+ this._each(function(value) {
+ iterator.call(context, value, index++);
+ });
+ } catch (e) {
+ if (e != $break) throw e;
+ }
+ return this;
+ },
+
+ eachSlice: function(number, iterator, context) {
+ var index = -number, slices = [], array = this.toArray();
+ if (number < 1) return array;
+ while ((index += number) < array.length)
+ slices.push(array.slice(index, index+number));
+ return slices.collect(iterator, context);
+ },
+
+ all: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result = true;
+ this.each(function(value, index) {
+ result = result && !!iterator.call(context, value, index);
+ if (!result) throw $break;
+ });
+ return result;
+ },
+
+ any: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result = false;
+ this.each(function(value, index) {
+ if (result = !!iterator.call(context, value, index))
+ throw $break;
+ });
+ return result;
+ },
+
+ collect: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var results = [];
+ this.each(function(value, index) {
+ results.push(iterator.call(context, value, index));
+ });
+ return results;
+ },
+
+ detect: function(iterator, context) {
+ var result;
+ this.each(function(value, index) {
+ if (iterator.call(context, value, index)) {
+ result = value;
+ throw $break;
+ }
+ });
+ return result;
+ },
+
+ findAll: function(iterator, context) {
+ var results = [];
+ this.each(function(value, index) {
+ if (iterator.call(context, value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ grep: function(filter, iterator, context) {
+ iterator = iterator || Prototype.K;
+ var results = [];
+
+ if (Object.isString(filter))
+ filter = new RegExp(filter);
+
+ this.each(function(value, index) {
+ if (filter.match(value))
+ results.push(iterator.call(context, value, index));
+ });
+ return results;
+ },
+
+ include: function(object) {
+ if (Object.isFunction(this.indexOf))
+ if (this.indexOf(object) != -1) return true;
+
+ var found = false;
+ this.each(function(value) {
+ if (value == object) {
+ found = true;
+ throw $break;
+ }
+ });
+ return found;
+ },
+
+ inGroupsOf: function(number, fillWith) {
+ fillWith = Object.isUndefined(fillWith) ? null : fillWith;
+ return this.eachSlice(number, function(slice) {
+ while(slice.length < number) slice.push(fillWith);
+ return slice;
+ });
+ },
+
+ inject: function(memo, iterator, context) {
+ this.each(function(value, index) {
+ memo = iterator.call(context, memo, value, index);
+ });
+ return memo;
+ },
+
+ invoke: function(method) {
+ var args = $A(arguments).slice(1);
+ return this.map(function(value) {
+ return value[method].apply(value, args);
+ });
+ },
+
+ max: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result;
+ this.each(function(value, index) {
+ value = iterator.call(context, value, index);
+ if (result == null || value >= result)
+ result = value;
+ });
+ return result;
+ },
+
+ min: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var result;
+ this.each(function(value, index) {
+ value = iterator.call(context, value, index);
+ if (result == null || value < result)
+ result = value;
+ });
+ return result;
+ },
+
+ partition: function(iterator, context) {
+ iterator = iterator || Prototype.K;
+ var trues = [], falses = [];
+ this.each(function(value, index) {
+ (iterator.call(context, value, index) ?
+ trues : falses).push(value);
+ });
+ return [trues, falses];
+ },
+
+ pluck: function(property) {
+ var results = [];
+ this.each(function(value) {
+ results.push(value[property]);
+ });
+ return results;
+ },
+
+ reject: function(iterator, context) {
+ var results = [];
+ this.each(function(value, index) {
+ if (!iterator.call(context, value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ sortBy: function(iterator, context) {
+ return this.map(function(value, index) {
+ return {
+ value: value,
+ criteria: iterator.call(context, value, index)
+ };
+ }).sort(function(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a < b ? -1 : a > b ? 1 : 0;
+ }).pluck('value');
+ },
+
+ toArray: function() {
+ return this.map();
+ },
+
+ zip: function() {
+ var iterator = Prototype.K, args = $A(arguments);
+ if (Object.isFunction(args.last()))
+ iterator = args.pop();
+
+ var collections = [this].concat(args).map($A);
+ return this.map(function(value, index) {
+ return iterator(collections.pluck(index));
+ });
+ },
+
+ size: function() {
+ return this.toArray().length;
+ },
+
+ inspect: function() {
+ return '#<Enumerable:' + this.toArray().inspect() + '>';
+ }
+};
+
+Object.extend(Enumerable, {
+ map: Enumerable.collect,
+ find: Enumerable.detect,
+ select: Enumerable.findAll,
+ filter: Enumerable.findAll,
+ member: Enumerable.include,
+ entries: Enumerable.toArray,
+ every: Enumerable.all,
+ some: Enumerable.any
+});
+function $A(iterable) {
+ if (!iterable) return [];
+ if (iterable.toArray) return iterable.toArray();
+ var length = iterable.length || 0, results = new Array(length);
+ while (length--) results[length] = iterable[length];
+ return results;
+}
+
+if (Prototype.Browser.WebKit) {
+ $A = function(iterable) {
+ if (!iterable) return [];
+ // In Safari, only use the `toArray` method if it's not a NodeList.
+ // A NodeList is a function, has an function `item` property, and a numeric
+ // `length` property. Adapted from Google Doctype.
+ if (!(typeof iterable === 'function' && typeof iterable.length ===
+ 'number' && typeof iterable.item === 'function') && iterable.toArray)
+ return iterable.toArray();
+ var length = iterable.length || 0, results = new Array(length);
+ while (length--) results[length] = iterable[length];
+ return results;
+ };
+}
+
+Array.from = $A;
+
+Object.extend(Array.prototype, Enumerable);
+
+if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse;
+
+Object.extend(Array.prototype, {
+ _each: function(iterator) {
+ for (var i = 0, length = this.length; i < length; i++)
+ iterator(this[i]);
+ },
+
+ clear: function() {
+ this.length = 0;
+ return this;
+ },
+
+ first: function() {
+ return this[0];
+ },
+
+ last: function() {
+ return this[this.length - 1];
+ },
+
+ compact: function() {
+ return this.select(function(value) {
+ return value != null;
+ });
+ },
+
+ flatten: function() {
+ return this.inject([], function(array, value) {
+ return array.concat(Object.isArray(value) ?
+ value.flatten() : [value]);
+ });
+ },
+
+ without: function() {
+ var values = $A(arguments);
+ return this.select(function(value) {
+ return !values.include(value);
+ });
+ },
+
+ reverse: function(inline) {
+ return (inline !== false ? this : this.toArray())._reverse();
+ },
+
+ reduce: function() {
+ return this.length > 1 ? this : this[0];
+ },
+
+ uniq: function(sorted) {
+ return this.inject([], function(array, value, index) {
+ if (0 == index || (sorted ? array.last() != value : !array.include(value)))
+ array.push(value);
+ return array;
+ });
+ },
+
+ intersect: function(array) {
+ return this.uniq().findAll(function(item) {
+ return array.detect(function(value) { return item === value });
+ });
+ },
+
+ clone: function() {
+ return [].concat(this);
+ },
+
+ size: function() {
+ return this.length;
+ },
+
+ inspect: function() {
+ return '[' + this.map(Object.inspect).join(', ') + ']';
+ },
+
+ toJSON: function() {
+ var results = [];
+ this.each(function(object) {
+ var value = Object.toJSON(object);
+ if (!Object.isUndefined(value)) results.push(value);
+ });
+ return '[' + results.join(', ') + ']';
+ }
+});
+
+// use native browser JS 1.6 implementation if available
+if (Object.isFunction(Array.prototype.forEach))
+ Array.prototype._each = Array.prototype.forEach;
+
+if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
+ i || (i = 0);
+ var length = this.length;
+ if (i < 0) i = length + i;
+ for (; i < length; i++)
+ if (this[i] === item) return i;
+ return -1;
+};
+
+if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) {
+ i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
+ var n = this.slice(0, i).reverse().indexOf(item);
+ return (n < 0) ? n : i - n - 1;
+};
+
+Array.prototype.toArray = Array.prototype.clone;
+
+function $w(string) {
+ if (!Object.isString(string)) return [];
+ string = string.strip();
+ return string ? string.split(/\s+/) : [];
+}
+
+if (Prototype.Browser.Opera){
+ Array.prototype.concat = function() {
+ var array = [];
+ for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ if (Object.isArray(arguments[i])) {
+ for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
+ array.push(arguments[i][j]);
+ } else {
+ array.push(arguments[i]);
+ }
+ }
+ return array;
+ };
+}
+Object.extend(Number.prototype, {
+ toColorPart: function() {
+ return this.toPaddedString(2, 16);
+ },
+
+ succ: function() {
+ return this + 1;
+ },
+
+ times: function(iterator, context) {
+ $R(0, this, true).each(iterator, context);
+ return this;
+ },
+
+ toPaddedString: function(length, radix) {
+ var string = this.toString(radix || 10);
+ return '0'.times(length - string.length) + string;
+ },
+
+ toJSON: function() {
+ return isFinite(this) ? this.toString() : 'null';
+ }
+});
+
+$w('abs round ceil floor').each(function(method){
+ Number.prototype[method] = Math[method].methodize();
+});
+function $H(object) {
+ return new Hash(object);
+};
+
+var Hash = Class.create(Enumerable, (function() {
+
+ function toQueryPair(key, value) {
+ if (Object.isUndefined(value)) return key;
+ return key + '=' + encodeURIComponent(String.interpret(value));
+ }
+
+ return {
+ initialize: function(object) {
+ this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
+ },
+
+ _each: function(iterator) {
+ for (var key in this._object) {
+ var value = this._object[key], pair = [key, value];
+ pair.key = key;
+ pair.value = value;
+ iterator(pair);
+ }
+ },
+
+ set: function(key, value) {
+ return this._object[key] = value;
+ },
+
+ get: function(key) {
+ // simulating poorly supported hasOwnProperty
+ if (this._object[key] !== Object.prototype[key])
+ return this._object[key];
+ },
+
+ unset: function(key) {
+ var value = this._object[key];
+ delete this._object[key];
+ return value;
+ },
+
+ toObject: function() {
+ return Object.clone(this._object);
+ },
+
+ keys: function() {
+ return this.pluck('key');
+ },
+
+ values: function() {
+ return this.pluck('value');
+ },
+
+ index: function(value) {
+ var match = this.detect(function(pair) {
+ return pair.value === value;
+ });
+ return match && match.key;
+ },
+
+ merge: function(object) {
+ return this.clone().update(object);
+ },
+
+ update: function(object) {
+ return new Hash(object).inject(this, function(result, pair) {
+ result.set(pair.key, pair.value);
+ return result;
+ });
+ },
+
+ toQueryString: function() {
+ return this.inject([], function(results, pair) {
+ var key = encodeURIComponent(pair.key), values = pair.value;
+
+ if (values && typeof values == 'object') {
+ if (Object.isArray(values))
+ return results.concat(values.map(toQueryPair.curry(key)));
+ } else results.push(toQueryPair(key, values));
+ return results;
+ }).join('&');
+ },
+
+ inspect: function() {
+ return '#<Hash:{' + this.map(function(pair) {
+ return pair.map(Object.inspect).join(': ');
+ }).join(', ') + '}>';
+ },
+
+ toJSON: function() {
+ return Object.toJSON(this.toObject());
+ },
+
+ clone: function() {
+ return new Hash(this);
+ }
+ }
+})());
+
+Hash.prototype.toTemplateReplacements = Hash.prototype.toObject;
+Hash.from = $H;
+var ObjectRange = Class.create(Enumerable, {
+ initialize: function(start, end, exclusive) {
+ this.start = start;
+ this.end = end;
+ this.exclusive = exclusive;
+ },
+
+ _each: function(iterator) {
+ var value = this.start;
+ while (this.include(value)) {
+ iterator(value);
+ value = value.succ();
+ }
+ },
+
+ include: function(value) {
+ if (value < this.start)
+ return false;
+ if (this.exclusive)
+ return value < this.end;
+ return value <= this.end;
+ }
+});
+
+var $R = function(start, end, exclusive) {
+ return new ObjectRange(start, end, exclusive);
+};
+
+var Ajax = {
+ getTransport: function() {
+ return Try.these(
+ function() {return new XMLHttpRequest()},
+ function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+ function() {return new ActiveXObject('Microsoft.XMLHTTP')}
+ ) || false;
+ },
+
+ activeRequestCount: 0
+};
+
+Ajax.Responders = {
+ responders: [],
+
+ _each: function(iterator) {
+ this.responders._each(iterator);
+ },
+
+ register: function(responder) {
+ if (!this.include(responder))
+ this.responders.push(responder);
+ },
+
+ unregister: function(responder) {
+ this.responders = this.responders.without(responder);
+ },
+
+ dispatch: function(callback, request, transport, json) {
+ this.each(function(responder) {
+ if (Object.isFunction(responder[callback])) {
+ try {
+ responder[callback].apply(responder, [request, transport, json]);
+ } catch (e) { }
+ }
+ });
+ }
+};
+
+Object.extend(Ajax.Responders, Enumerable);
+
+Ajax.Responders.register({
+ onCreate: function() { Ajax.activeRequestCount++ },
+ onComplete: function() { Ajax.activeRequestCount-- }
+});
+
+Ajax.Base = Class.create({
+ initialize: function(options) {
+ this.options = {
+ method: 'post',
+ asynchronous: true,
+ contentType: 'application/x-www-form-urlencoded',
+ encoding: 'UTF-8',
+ parameters: '',
+ evalJSON: true,
+ evalJS: true
+ };
+ Object.extend(this.options, options || { });
+
+ this.options.method = this.options.method.toLowerCase();
+
+ if (Object.isString(this.options.parameters))
+ this.options.parameters = this.options.parameters.toQueryParams();
+ else if (Object.isHash(this.options.parameters))
+ this.options.parameters = this.options.parameters.toObject();
+ }
+});
+
+Ajax.Request = Class.create(Ajax.Base, {
+ _complete: false,
+
+ initialize: function($super, url, options) {
+ $super(options);
+ this.transport = Ajax.getTransport();
+ this.request(url);
+ },
+
+ request: function(url) {
+ this.url = url;
+ this.method = this.options.method;
+ var params = Object.clone(this.options.parameters);
+
+ if (!['get', 'post'].include(this.method)) {
+ // simulate other verbs over post
+ params['_method'] = this.method;
+ this.method = 'post';
+ }
+
+ this.parameters = params;
+
+ if (params = Object.toQueryString(params)) {
+ // when GET, append parameters to URL
+ if (this.method == 'get')
+ this.url += (this.url.include('?') ? '&' : '?') + params;
+ else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
+ params += '&_=';
+ }
+
+ try {
+ var response = new Ajax.Response(this);
+ if (this.options.onCreate) this.options.onCreate(response);
+ Ajax.Responders.dispatch('onCreate', this, response);
+
+ this.transport.open(this.method.toUpperCase(), this.url,
+ this.options.asynchronous);
+
+ if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);
+
+ this.transport.onreadystatechange = this.onStateChange.bind(this);
+ this.setRequestHeaders();
+
+ this.body = this.method == 'post' ? (this.options.postBody || params) : null;
+ this.transport.send(this.body);
+
+ /* Force Firefox to handle ready state 4 for synchronous requests */
+ if (!this.options.asynchronous && this.transport.overrideMimeType)
+ this.onStateChange();
+
+ }
+ catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ onStateChange: function() {
+ var readyState = this.transport.readyState;
+ if (readyState > 1 && !((readyState == 4) && this._complete))
+ this.respondToReadyState(this.transport.readyState);
+ },
+
+ setRequestHeaders: function() {
+ var headers = {
+ 'X-Requested-With': 'XMLHttpRequest',
+ 'X-Prototype-Version': Prototype.Version,
+ 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+ };
+
+ if (this.method == 'post') {
+ headers['Content-type'] = this.options.contentType +
+ (this.options.encoding ? '; charset=' + this.options.encoding : '');
+
+ /* Force "Connection: close" for older Mozilla browsers to work
+ * around a bug where XMLHttpRequest sends an incorrect
+ * Content-length header. See Mozilla Bugzilla #246651.
+ */
+ if (this.transport.overrideMimeType &&
+ (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+ headers['Connection'] = 'close';
+ }
+
+ // user-defined headers
+ if (typeof this.options.requestHeaders == 'object') {
+ var extras = this.options.requestHeaders;
+
+ if (Object.isFunction(extras.push))
+ for (var i = 0, length = extras.length; i < length; i += 2)
+ headers[extras[i]] = extras[i+1];
+ else
+ $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+ }
+
+ for (var name in headers)
+ this.transport.setRequestHeader(name, headers[name]);
+ },
+
+ success: function() {
+ var status = this.getStatus();
+ return !status || (status >= 200 && status < 300);
+ },
+
+ getStatus: function() {
+ try {
+ return this.transport.status || 0;
+ } catch (e) { return 0 }
+ },
+
+ respondToReadyState: function(readyState) {
+ var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);
+
+ if (state == 'Complete') {
+ try {
+ this._complete = true;
+ (this.options['on' + response.status]
+ || this.options['on' + (this.success() ? 'Success' : 'Failure')]
+ || Prototype.emptyFunction)(response, response.headerJSON);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ var contentType = response.getHeader('Content-type');
+ if (this.options.evalJS == 'force'
+ || (this.options.evalJS && this.isSameOrigin() && contentType
+ && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
+ this.evalResponse();
+ }
+
+ try {
+ (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
+ Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ if (state == 'Complete') {
+ // avoid memory leak in MSIE: clean up
+ this.transport.onreadystatechange = Prototype.emptyFunction;
+ }
+ },
+
+ isSameOrigin: function() {
+ var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
+ return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
+ protocol: location.protocol,
+ domain: document.domain,
+ port: location.port ? ':' + location.port : ''
+ }));
+ },
+
+ getHeader: function(name) {
+ try {
+ return this.transport.getResponseHeader(name) || null;
+ } catch (e) { return null }
+ },
+
+ evalResponse: function() {
+ try {
+ return eval((this.transport.responseText || '').unfilterJSON());
+ } catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ dispatchException: function(exception) {
+ (this.options.onException || Prototype.emptyFunction)(this, exception);
+ Ajax.Responders.dispatch('onException', this, exception);
+ }
+});
+
+Ajax.Request.Events =
+ ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+Ajax.Response = Class.create({
+ initialize: function(request){
+ this.request = request;
+ var transport = this.transport = request.transport,
+ readyState = this.readyState = transport.readyState;
+
+ if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
+ this.status = this.getStatus();
+ this.statusText = this.getStatusText();
+ this.responseText = String.interpret(transport.responseText);
+ this.headerJSON = this._getHeaderJSON();
+ }
+
+ if(readyState == 4) {
+ var xml = transport.responseXML;
+ this.responseXML = Object.isUndefined(xml) ? null : xml;
+ this.responseJSON = this._getResponseJSON();
+ }
+ },
+
+ status: 0,
+ statusText: '',
+
+ getStatus: Ajax.Request.prototype.getStatus,
+
+ getStatusText: function() {
+ try {
+ return this.transport.statusText || '';
+ } catch (e) { return '' }
+ },
+
+ getHeader: Ajax.Request.prototype.getHeader,
+
+ getAllHeaders: function() {
+ try {
+ return this.getAllResponseHeaders();
+ } catch (e) { return null }
+ },
+
+ getResponseHeader: function(name) {
+ return this.transport.getResponseHeader(name);
+ },
+
+ getAllResponseHeaders: function() {
+ return this.transport.getAllResponseHeaders();
+ },
+
+ _getHeaderJSON: function() {
+ var json = this.getHeader('X-JSON');
+ if (!json) return null;
+ json = decodeURIComponent(escape(json));
+ try {
+ return json.evalJSON(this.request.options.sanitizeJSON ||
+ !this.request.isSameOrigin());
+ } catch (e) {
+ this.request.dispatchException(e);
+ }
+ },
+
+ _getResponseJSON: function() {
+ var options = this.request.options;
+ if (!options.evalJSON || (options.evalJSON != 'force' &&
+ !(this.getHeader('Content-type') || '').include('application/json')) ||
+ this.responseText.blank())
+ return null;
+ try {
+ return this.responseText.evalJSON(options.sanitizeJSON ||
+ !this.request.isSameOrigin());
+ } catch (e) {
+ this.request.dispatchException(e);
+ }
+ }
+});
+
+Ajax.Updater = Class.create(Ajax.Request, {
+ initialize: function($super, container, url, options) {
+ this.container = {
+ success: (container.success || container),
+ failure: (container.failure || (container.success ? null : container))
+ };
+
+ options = Object.clone(options);
+ var onComplete = options.onComplete;
+ options.onComplete = (function(response, json) {
+ this.updateContent(response.responseText);
+ if (Object.isFunction(onComplete)) onComplete(response, json);
+ }).bind(this);
+
+ $super(url, options);
+ },
+
+ updateContent: function(responseText) {
+ var receiver = this.container[this.success() ? 'success' : 'failure'],
+ options = this.options;
+
+ if (!options.evalScripts) responseText = responseText.stripScripts();
+
+ if (receiver = $(receiver)) {
+ if (options.insertion) {
+ if (Object.isString(options.insertion)) {
+ var insertion = { }; insertion[options.insertion] = responseText;
+ receiver.insert(insertion);
+ }
+ else options.insertion(receiver, responseText);
+ }
+ else receiver.update(responseText);
+ }
+ }
+});
+
+Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
+ initialize: function($super, container, url, options) {
+ $super(options);
+ this.onComplete = this.options.onComplete;
+
+ this.frequency = (this.options.frequency || 2);
+ this.decay = (this.options.decay || 1);
+
+ this.updater = { };
+ this.container = container;
+ this.url = url;
+
+ this.start();
+ },
+
+ start: function() {
+ this.options.onComplete = this.updateComplete.bind(this);
+ this.onTimerEvent();
+ },
+
+ stop: function() {
+ this.updater.options.onComplete = undefined;
+ clearTimeout(this.timer);
+ (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
+ },
+
+ updateComplete: function(response) {
+ if (this.options.decay) {
+ this.decay = (response.responseText == this.lastText ?
+ this.decay * this.options.decay : 1);
+
+ this.lastText = response.responseText;
+ }
+ this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
+ },
+
+ onTimerEvent: function() {
+ this.updater = new Ajax.Updater(this.container, this.url, this.options);
+ }
+});
+function $(element) {
+ if (arguments.length > 1) {
+ for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+ elements.push($(arguments[i]));
+ return elements;
+ }
+ if (Object.isString(element))
+ element = document.getElementById(element);
+ return Element.extend(element);
+}
+
+if (Prototype.BrowserFeatures.XPath) {
+ document._getElementsByXPath = function(expression, parentElement) {
+ var results = [];
+ var query = document.evaluate(expression, $(parentElement) || document,
+ null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ for (var i = 0, length = query.snapshotLength; i < length; i++)
+ results.push(Element.extend(query.snapshotItem(i)));
+ return results;
+ };
+}
+
+/*--------------------------------------------------------------------------*/
+
+if (!window.Node) var Node = { };
+
+if (!Node.ELEMENT_NODE) {
+ // DOM level 2 ECMAScript Language Binding
+ Object.extend(Node, {
+ ELEMENT_NODE: 1,
+ ATTRIBUTE_NODE: 2,
+ TEXT_NODE: 3,
+ CDATA_SECTION_NODE: 4,
+ ENTITY_REFERENCE_NODE: 5,
+ ENTITY_NODE: 6,
+ PROCESSING_INSTRUCTION_NODE: 7,
+ COMMENT_NODE: 8,
+ DOCUMENT_NODE: 9,
+ DOCUMENT_TYPE_NODE: 10,
+ DOCUMENT_FRAGMENT_NODE: 11,
+ NOTATION_NODE: 12
+ });
+}
+
+(function() {
+ var element = this.Element;
+ this.Element = function(tagName, attributes) {
+ attributes = attributes || { };
+ tagName = tagName.toLowerCase();
+ var cache = Element.cache;
+ if (Prototype.Browser.IE && attributes.name) {
+ tagName = '<' + tagName + ' name="' + attributes.name + '">';
+ delete attributes.name;
+ return Element.writeAttribute(document.createElement(tagName), attributes);
+ }
+ if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
+ return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
+ };
+ Object.extend(this.Element, element || { });
+ if (element) this.Element.prototype = element.prototype;
+}).call(window);
+
+Element.cache = { };
+
+Element.Methods = {
+ visible: function(element) {
+ return $(element).style.display != 'none';
+ },
+
+ toggle: function(element) {
+ element = $(element);
+ Element[Element.visible(element) ? 'hide' : 'show'](element);
+ return element;
+ },
+
+ hide: function(element) {
+ element = $(element);
+ element.style.display = 'none';
+ return element;
+ },
+
+ show: function(element) {
+ element = $(element);
+ element.style.display = '';
+ return element;
+ },
+
+ remove: function(element) {
+ element = $(element);
+ element.parentNode.removeChild(element);
+ return element;
+ },
+
+ update: function(element, content) {
+ element = $(element);
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) return element.update().insert(content);
+ content = Object.toHTML(content);
+ element.innerHTML = content.stripScripts();
+ content.evalScripts.bind(content).defer();
+ return element;
+ },
+
+ replace: function(element, content) {
+ element = $(element);
+ if (content && content.toElement) content = content.toElement();
+ else if (!Object.isElement(content)) {
+ content = Object.toHTML(content);
+ var range = element.ownerDocument.createRange();
+ range.selectNode(element);
+ content.evalScripts.bind(content).defer();
+ content = range.createContextualFragment(content.stripScripts());
+ }
+ element.parentNode.replaceChild(content, element);
+ return element;
+ },
+
+ insert: function(element, insertions) {
+ element = $(element);
+
+ if (Object.isString(insertions) || Object.isNumber(insertions) ||
+ Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
+ insertions = {bottom:insertions};
+
+ var content, insert, tagName, childNodes;
+
+ for (var position in insertions) {
+ content = insertions[position];
+ position = position.toLowerCase();
+ insert = Element._insertionTranslations[position];
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ insert(element, content);
+ continue;
+ }
+
+ content = Object.toHTML(content);
+
+ tagName = ((position == 'before' || position == 'after')
+ ? element.parentNode : element).tagName.toUpperCase();
+
+ childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+
+ if (position == 'top' || position == 'after') childNodes.reverse();
+ childNodes.each(insert.curry(element));
+
+ content.evalScripts.bind(content).defer();
+ }
+
+ return element;
+ },
+
+ wrap: function(element, wrapper, attributes) {
+ element = $(element);
+ if (Object.isElement(wrapper))
+ $(wrapper).writeAttribute(attributes || { });
+ else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
+ else wrapper = new Element('div', wrapper);
+ if (element.parentNode)
+ element.parentNode.replaceChild(wrapper, element);
+ wrapper.appendChild(element);
+ return wrapper;
+ },
+
+ inspect: function(element) {
+ element = $(element);
+ var result = '<' + element.tagName.toLowerCase();
+ $H({'id': 'id', 'className': 'class'}).each(function(pair) {
+ var property = pair.first(), attribute = pair.last();
+ var value = (element[property] || '').toString();
+ if (value) result += ' ' + attribute + '=' + value.inspect(true);
+ });
+ return result + '>';
+ },
+
+ recursivelyCollect: function(element, property) {
+ element = $(element);
+ var elements = [];
+ while (element = element[property])
+ if (element.nodeType == 1)
+ elements.push(Element.extend(element));
+ return elements;
+ },
+
+ ancestors: function(element) {
+ return $(element).recursivelyCollect('parentNode');
+ },
+
+ descendants: function(element) {
+ return $(element).select("*");
+ },
+
+ firstDescendant: function(element) {
+ element = $(element).firstChild;
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ return $(element);
+ },
+
+ immediateDescendants: function(element) {
+ if (!(element = $(element).firstChild)) return [];
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ if (element) return [element].concat($(element).nextSiblings());
+ return [];
+ },
+
+ previousSiblings: function(element) {
+ return $(element).recursivelyCollect('previousSibling');
+ },
+
+ nextSiblings: function(element) {
+ return $(element).recursivelyCollect('nextSibling');
+ },
+
+ siblings: function(element) {
+ element = $(element);
+ return element.previousSiblings().reverse().concat(element.nextSiblings());
+ },
+
+ match: function(element, selector) {
+ if (Object.isString(selector))
+ selector = new Selector(selector);
+ return selector.match($(element));
+ },
+
+ up: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(element.parentNode);
+ var ancestors = element.ancestors();
+ return Object.isNumber(expression) ? ancestors[expression] :
+ Selector.findElement(ancestors, expression, index);
+ },
+
+ down: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return element.firstDescendant();
+ return Object.isNumber(expression) ? element.descendants()[expression] :
+ Element.select(element, expression)[index || 0];
+ },
+
+ previous: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
+ var previousSiblings = element.previousSiblings();
+ return Object.isNumber(expression) ? previousSiblings[expression] :
+ Selector.findElement(previousSiblings, expression, index);
+ },
+
+ next: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
+ var nextSiblings = element.nextSiblings();
+ return Object.isNumber(expression) ? nextSiblings[expression] :
+ Selector.findElement(nextSiblings, expression, index);
+ },
+
+ select: function() {
+ var args = $A(arguments), element = $(args.shift());
+ return Selector.findChildElements(element, args);
+ },
+
+ adjacent: function() {
+ var args = $A(arguments), element = $(args.shift());
+ return Selector.findChildElements(element.parentNode, args).without(element);
+ },
+
+ identify: function(element) {
+ element = $(element);
+ var id = element.readAttribute('id'), self = arguments.callee;
+ if (id) return id;
+ do { id = 'anonymous_element_' + self.counter++ } while ($(id));
+ element.writeAttribute('id', id);
+ return id;
+ },
+
+ readAttribute: function(element, name) {
+ element = $(element);
+ if (Prototype.Browser.IE) {
+ var t = Element._attributeTranslations.read;
+ if (t.values[name]) return t.values[name](element, name);
+ if (t.names[name]) name = t.names[name];
+ if (name.include(':')) {
+ return (!element.attributes || !element.attributes[name]) ? null :
+ element.attributes[name].value;
+ }
+ }
+ return element.getAttribute(name);
+ },
+
+ writeAttribute: function(element, name, value) {
+ element = $(element);
+ var attributes = { }, t = Element._attributeTranslations.write;
+
+ if (typeof name == 'object') attributes = name;
+ else attributes[name] = Object.isUndefined(value) ? true : value;
+
+ for (var attr in attributes) {
+ name = t.names[attr] || attr;
+ value = attributes[attr];
+ if (t.values[attr]) name = t.values[attr](element, value);
+ if (value === false || value === null)
+ element.removeAttribute(name);
+ else if (value === true)
+ element.setAttribute(name, name);
+ else element.setAttribute(name, value);
+ }
+ return element;
+ },
+
+ getHeight: function(element) {
+ return $(element).getDimensions().height;
+ },
+
+ getWidth: function(element) {
+ return $(element).getDimensions().width;
+ },
+
+ classNames: function(element) {
+ return new Element.ClassNames(element);
+ },
+
+ hasClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ var elementClassName = element.className;
+ return (elementClassName.length > 0 && (elementClassName == className ||
+ new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
+ },
+
+ addClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ if (!element.hasClassName(className))
+ element.className += (element.className ? ' ' : '') + className;
+ return element;
+ },
+
+ removeClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ element.className = element.className.replace(
+ new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
+ return element;
+ },
+
+ toggleClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ return element[element.hasClassName(className) ?
+ 'removeClassName' : 'addClassName'](className);
+ },
+
+ // removes whitespace-only text node children
+ cleanWhitespace: function(element) {
+ element = $(element);
+ var node = element.firstChild;
+ while (node) {
+ var nextNode = node.nextSibling;
+ if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+ element.removeChild(node);
+ node = nextNode;
+ }
+ return element;
+ },
+
+ empty: function(element) {
+ return $(element).innerHTML.blank();
+ },
+
+ descendantOf: function(element, ancestor) {
+ element = $(element), ancestor = $(ancestor);
+
+ if (element.compareDocumentPosition)
+ return (element.compareDocumentPosition(ancestor) & 8) === 8;
+
+ if (ancestor.contains)
+ return ancestor.contains(element) && ancestor !== element;
+
+ while (element = element.parentNode)
+ if (element == ancestor) return true;
+
+ return false;
+ },
+
+ scrollTo: function(element) {
+ element = $(element);
+ var pos = element.cumulativeOffset();
+ window.scrollTo(pos[0], pos[1]);
+ return element;
+ },
+
+ getStyle: function(element, style) {
+ element = $(element);
+ style = style == 'float' ? 'cssFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value || value == 'auto') {
+ var css = document.defaultView.getComputedStyle(element, null);
+ value = css ? css[style] : null;
+ }
+ if (style == 'opacity') return value ? parseFloat(value) : 1.0;
+ return value == 'auto' ? null : value;
+ },
+
+ getOpacity: function(element) {
+ return $(element).getStyle('opacity');
+ },
+
+ setStyle: function(element, styles) {
+ element = $(element);
+ var elementStyle = element.style, match;
+ if (Object.isString(styles)) {
+ element.style.cssText += ';' + styles;
+ return styles.include('opacity') ?
+ element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
+ }
+ for (var property in styles)
+ if (property == 'opacity') element.setOpacity(styles[property]);
+ else
+ elementStyle[(property == 'float' || property == 'cssFloat') ?
+ (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
+ property] = styles[property];
+
+ return element;
+ },
+
+ setOpacity: function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+ return element;
+ },
+
+ getDimensions: function(element) {
+ element = $(element);
+ var display = element.getStyle('display');
+ if (display != 'none' && display != null) // Safari bug
+ return {width: element.offsetWidth, height: element.offsetHeight};
+
+ // All *Width and *Height properties give 0 on elements with display none,
+ // so enable the element temporarily
+ var els = element.style;
+ var originalVisibility = els.visibility;
+ var originalPosition = els.position;
+ var originalDisplay = els.display;
+ els.visibility = 'hidden';
+ els.position = 'absolute';
+ els.display = 'block';
+ var originalWidth = element.clientWidth;
+ var originalHeight = element.clientHeight;
+ els.display = originalDisplay;
+ els.position = originalPosition;
+ els.visibility = originalVisibility;
+ return {width: originalWidth, height: originalHeight};
+ },
+
+ makePositioned: function(element) {
+ element = $(element);
+ var pos = Element.getStyle(element, 'position');
+ if (pos == 'static' || !pos) {
+ element._madePositioned = true;
+ element.style.position = 'relative';
+ // Opera returns the offset relative to the positioning context, when an
+ // element is position relative but top and left have not been defined
+ if (Prototype.Browser.Opera) {
+ element.style.top = 0;
+ element.style.left = 0;
+ }
+ }
+ return element;
+ },
+
+ undoPositioned: function(element) {
+ element = $(element);
+ if (element._madePositioned) {
+ element._madePositioned = undefined;
+ element.style.position =
+ element.style.top =
+ element.style.left =
+ element.style.bottom =
+ element.style.right = '';
+ }
+ return element;
+ },
+
+ makeClipping: function(element) {
+ element = $(element);
+ if (element._overflow) return element;
+ element._overflow = Element.getStyle(element, 'overflow') || 'auto';
+ if (element._overflow !== 'hidden')
+ element.style.overflow = 'hidden';
+ return element;
+ },
+
+ undoClipping: function(element) {
+ element = $(element);
+ if (!element._overflow) return element;
+ element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
+ element._overflow = null;
+ return element;
+ },
+
+ cumulativeOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ positionedOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ if (element) {
+ if (element.tagName.toUpperCase() == 'BODY') break;
+ var p = Element.getStyle(element, 'position');
+ if (p !== 'static') break;
+ }
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ absolutize: function(element) {
+ element = $(element);
+ if (element.getStyle('position') == 'absolute') return element;
+ // Position.prepare(); // To be done manually by Scripty when it needs it.
+
+ var offsets = element.positionedOffset();
+ var top = offsets[1];
+ var left = offsets[0];
+ var width = element.clientWidth;
+ var height = element.clientHeight;
+
+ element._originalLeft = left - parseFloat(element.style.left || 0);
+ element._originalTop = top - parseFloat(element.style.top || 0);
+ element._originalWidth = element.style.width;
+ element._originalHeight = element.style.height;
+
+ element.style.position = 'absolute';
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.width = width + 'px';
+ element.style.height = height + 'px';
+ return element;
+ },
+
+ relativize: function(element) {
+ element = $(element);
+ if (element.getStyle('position') == 'relative') return element;
+ // Position.prepare(); // To be done manually by Scripty when it needs it.
+
+ element.style.position = 'relative';
+ var top = parseFloat(element.style.top || 0) - (element._originalTop || 0);
+ var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
+
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.height = element._originalHeight;
+ element.style.width = element._originalWidth;
+ return element;
+ },
+
+ cumulativeScrollOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.scrollTop || 0;
+ valueL += element.scrollLeft || 0;
+ element = element.parentNode;
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ getOffsetParent: function(element) {
+ if (element.offsetParent) return $(element.offsetParent);
+ if (element == document.body) return $(element);
+
+ while ((element = element.parentNode) && element != document.body)
+ if (Element.getStyle(element, 'position') != 'static')
+ return $(element);
+
+ return $(document.body);
+ },
+
+ viewportOffset: function(forElement) {
+ var valueT = 0, valueL = 0;
+
+ var element = forElement;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+
+ // Safari fix
+ if (element.offsetParent == document.body &&
+ Element.getStyle(element, 'position') == 'absolute') break;
+
+ } while (element = element.offsetParent);
+
+ element = forElement;
+ do {
+ if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) {
+ valueT -= element.scrollTop || 0;
+ valueL -= element.scrollLeft || 0;
+ }
+ } while (element = element.parentNode);
+
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ clonePosition: function(element, source) {
+ var options = Object.extend({
+ setLeft: true,
+ setTop: true,
+ setWidth: true,
+ setHeight: true,
+ offsetTop: 0,
+ offsetLeft: 0
+ }, arguments[2] || { });
+
+ // find page position of source
+ source = $(source);
+ var p = source.viewportOffset();
+
+ // find coordinate system to use
+ element = $(element);
+ var delta = [0, 0];
+ var parent = null;
+ // delta [0,0] will do fine with position: fixed elements,
+ // position:absolute needs offsetParent deltas
+ if (Element.getStyle(element, 'position') == 'absolute') {
+ parent = element.getOffsetParent();
+ delta = parent.viewportOffset();
+ }
+
+ // correct by body offsets (fixes Safari)
+ if (parent == document.body) {
+ delta[0] -= document.body.offsetLeft;
+ delta[1] -= document.body.offsetTop;
+ }
+
+ // set position
+ if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px';
+ if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px';
+ if (options.setWidth) element.style.width = source.offsetWidth + 'px';
+ if (options.setHeight) element.style.height = source.offsetHeight + 'px';
+ return element;
+ }
+};
+
+Element.Methods.identify.counter = 1;
+
+Object.extend(Element.Methods, {
+ getElementsBySelector: Element.Methods.select,
+ childElements: Element.Methods.immediateDescendants
+});
+
+Element._attributeTranslations = {
+ write: {
+ names: {
+ className: 'class',
+ htmlFor: 'for'
+ },
+ values: { }
+ }
+};
+
+if (Prototype.Browser.Opera) {
+ Element.Methods.getStyle = Element.Methods.getStyle.wrap(
+ function(proceed, element, style) {
+ switch (style) {
+ case 'left': case 'top': case 'right': case 'bottom':
+ if (proceed(element, 'position') === 'static') return null;
+ case 'height': case 'width':
+ // returns '0px' for hidden elements; we want it to return null
+ if (!Element.visible(element)) return null;
+
+ // returns the border-box dimensions rather than the content-box
+ // dimensions, so we subtract padding and borders from the value
+ var dim = parseInt(proceed(element, style), 10);
+
+ if (dim !== element['offset' + style.capitalize()])
+ return dim + 'px';
+
+ var properties;
+ if (style === 'height') {
+ properties = ['border-top-width', 'padding-top',
+ 'padding-bottom', 'border-bottom-width'];
+ }
+ else {
+ properties = ['border-left-width', 'padding-left',
+ 'padding-right', 'border-right-width'];
+ }
+ return properties.inject(dim, function(memo, property) {
+ var val = proceed(element, property);
+ return val === null ? memo : memo - parseInt(val, 10);
+ }) + 'px';
+ default: return proceed(element, style);
+ }
+ }
+ );
+
+ Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(
+ function(proceed, element, attribute) {
+ if (attribute === 'title') return element.title;
+ return proceed(element, attribute);
+ }
+ );
+}
+
+else if (Prototype.Browser.IE) {
+ // IE doesn't report offsets correctly for static elements, so we change them
+ // to "relative" to get the values, then change them back.
+ Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
+ function(proceed, element) {
+ element = $(element);
+ // IE throws an error if element is not in document
+ try { element.offsetParent }
+ catch(e) { return $(document.body) }
+ var position = element.getStyle('position');
+ if (position !== 'static') return proceed(element);
+ element.setStyle({ position: 'relative' });
+ var value = proceed(element);
+ element.setStyle({ position: position });
+ return value;
+ }
+ );
+
+ $w('positionedOffset viewportOffset').each(function(method) {
+ Element.Methods[method] = Element.Methods[method].wrap(
+ function(proceed, element) {
+ element = $(element);
+ try { element.offsetParent }
+ catch(e) { return Element._returnOffset(0,0) }
+ var position = element.getStyle('position');
+ if (position !== 'static') return proceed(element);
+ // Trigger hasLayout on the offset parent so that IE6 reports
+ // accurate offsetTop and offsetLeft values for position: fixed.
+ var offsetParent = element.getOffsetParent();
+ if (offsetParent && offsetParent.getStyle('position') === 'fixed')
+ offsetParent.setStyle({ zoom: 1 });
+ element.setStyle({ position: 'relative' });
+ var value = proceed(element);
+ element.setStyle({ position: position });
+ return value;
+ }
+ );
+ });
+
+ Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
+ function(proceed, element) {
+ try { element.offsetParent }
+ catch(e) { return Element._returnOffset(0,0) }
+ return proceed(element);
+ }
+ );
+
+ Element.Methods.getStyle = function(element, style) {
+ element = $(element);
+ style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value && element.currentStyle) value = element.currentStyle[style];
+
+ if (style == 'opacity') {
+ if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+ if (value[1]) return parseFloat(value[1]) / 100;
+ return 1.0;
+ }
+
+ if (value == 'auto') {
+ if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
+ return element['offset' + style.capitalize()] + 'px';
+ return null;
+ }
+ return value;
+ };
+
+ Element.Methods.setOpacity = function(element, value) {
+ function stripAlpha(filter){
+ return filter.replace(/alpha\([^\)]*\)/gi,'');
+ }
+ element = $(element);
+ var currentStyle = element.currentStyle;
+ if ((currentStyle && !currentStyle.hasLayout) ||
+ (!currentStyle && element.style.zoom == 'normal'))
+ element.style.zoom = 1;
+
+ var filter = element.getStyle('filter'), style = element.style;
+ if (value == 1 || value === '') {
+ (filter = stripAlpha(filter)) ?
+ style.filter = filter : style.removeAttribute('filter');
+ return element;
+ } else if (value < 0.00001) value = 0;
+ style.filter = stripAlpha(filter) +
+ 'alpha(opacity=' + (value * 100) + ')';
+ return element;
+ };
+
+ Element._attributeTranslations = {
+ read: {
+ names: {
+ 'class': 'className',
+ 'for': 'htmlFor'
+ },
+ values: {
+ _getAttr: function(element, attribute) {
+ return element.getAttribute(attribute, 2);
+ },
+ _getAttrNode: function(element, attribute) {
+ var node = element.getAttributeNode(attribute);
+ return node ? node.value : "";
+ },
+ _getEv: function(element, attribute) {
+ attribute = element.getAttribute(attribute);
+ return attribute ? attribute.toString().slice(23, -2) : null;
+ },
+ _flag: function(element, attribute) {
+ return $(element).hasAttribute(attribute) ? attribute : null;
+ },
+ style: function(element) {
+ return element.style.cssText.toLowerCase();
+ },
+ title: function(element) {
+ return element.title;
+ }
+ }
+ }
+ };
+
+ Element._attributeTranslations.write = {
+ names: Object.extend({
+ cellpadding: 'cellPadding',
+ cellspacing: 'cellSpacing'
+ }, Element._attributeTranslations.read.names),
+ values: {
+ checked: function(element, value) {
+ element.checked = !!value;
+ },
+
+ style: function(element, value) {
+ element.style.cssText = value ? value : '';
+ }
+ }
+ };
+
+ Element._attributeTranslations.has = {};
+
+ $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
+ 'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
+ Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
+ Element._attributeTranslations.has[attr.toLowerCase()] = attr;
+ });
+
+ (function(v) {
+ Object.extend(v, {
+ href: v._getAttr,
+ src: v._getAttr,
+ type: v._getAttr,
+ action: v._getAttrNode,
+ disabled: v._flag,
+ checked: v._flag,
+ readonly: v._flag,
+ multiple: v._flag,
+ onload: v._getEv,
+ onunload: v._getEv,
+ onclick: v._getEv,
+ ondblclick: v._getEv,
+ onmousedown: v._getEv,
+ onmouseup: v._getEv,
+ onmouseover: v._getEv,
+ onmousemove: v._getEv,
+ onmouseout: v._getEv,
+ onfocus: v._getEv,
+ onblur: v._getEv,
+ onkeypress: v._getEv,
+ onkeydown: v._getEv,
+ onkeyup: v._getEv,
+ onsubmit: v._getEv,
+ onreset: v._getEv,
+ onselect: v._getEv,
+ onchange: v._getEv
+ });
+ })(Element._attributeTranslations.read.values);
+}
+
+else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1) ? 0.999999 :
+ (value === '') ? '' : (value < 0.00001) ? 0 : value;
+ return element;
+ };
+}
+
+else if (Prototype.Browser.WebKit) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+
+ if (value == 1)
+ if(element.tagName.toUpperCase() == 'IMG' && element.width) {
+ element.width++; element.width--;
+ } else try {
+ var n = document.createTextNode(' ');
+ element.appendChild(n);
+ element.removeChild(n);
+ } catch (e) { }
+
+ return element;
+ };
+
+ // Safari returns margins on body which is incorrect if the child is absolutely
+ // positioned. For performance reasons, redefine Element#cumulativeOffset for
+ // KHTML/WebKit only.
+ Element.Methods.cumulativeOffset = function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ if (element.offsetParent == document.body)
+ if (Element.getStyle(element, 'position') == 'absolute') break;
+
+ element = element.offsetParent;
+ } while (element);
+
+ return Element._returnOffset(valueL, valueT);
+ };
+}
+
+if (Prototype.Browser.IE || Prototype.Browser.Opera) {
+ // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements
+ Element.Methods.update = function(element, content) {
+ element = $(element);
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) return element.update().insert(content);
+
+ content = Object.toHTML(content);
+ var tagName = element.tagName.toUpperCase();
+
+ if (tagName in Element._insertionTranslations.tags) {
+ $A(element.childNodes).each(function(node) { element.removeChild(node) });
+ Element._getContentFromAnonymousElement(tagName, content.stripScripts())
+ .each(function(node) { element.appendChild(node) });
+ }
+ else element.innerHTML = content.stripScripts();
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ };
+}
+
+if ('outerHTML' in document.createElement('div')) {
+ Element.Methods.replace = function(element, content) {
+ element = $(element);
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ element.parentNode.replaceChild(content, element);
+ return element;
+ }
+
+ content = Object.toHTML(content);
+ var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
+
+ if (Element._insertionTranslations.tags[tagName]) {
+ var nextSibling = element.next();
+ var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+ parent.removeChild(element);
+ if (nextSibling)
+ fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
+ else
+ fragments.each(function(node) { parent.appendChild(node) });
+ }
+ else element.outerHTML = content.stripScripts();
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ };
+}
+
+Element._returnOffset = function(l, t) {
+ var result = [l, t];
+ result.left = l;
+ result.top = t;
+ return result;
+};
+
+Element._getContentFromAnonymousElement = function(tagName, html) {
+ var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
+ if (t) {
+ div.innerHTML = t[0] + html + t[1];
+ t[2].times(function() { div = div.firstChild });
+ } else div.innerHTML = html;
+ return $A(div.childNodes);
+};
+
+Element._insertionTranslations = {
+ before: function(element, node) {
+ element.parentNode.insertBefore(node, element);
+ },
+ top: function(element, node) {
+ element.insertBefore(node, element.firstChild);
+ },
+ bottom: function(element, node) {
+ element.appendChild(node);
+ },
+ after: function(element, node) {
+ element.parentNode.insertBefore(node, element.nextSibling);
+ },
+ tags: {
+ TABLE: ['<table>', '</table>', 1],
+ TBODY: ['<table><tbody>', '</tbody></table>', 2],
+ TR: ['<table><tbody><tr>', '</tr></tbody></table>', 3],
+ TD: ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
+ SELECT: ['<select>', '</select>', 1]
+ }
+};
+
+(function() {
+ Object.extend(this.tags, {
+ THEAD: this.tags.TBODY,
+ TFOOT: this.tags.TBODY,
+ TH: this.tags.TD
+ });
+}).call(Element._insertionTranslations);
+
+Element.Methods.Simulated = {
+ hasAttribute: function(element, attribute) {
+ attribute = Element._attributeTranslations.has[attribute] || attribute;
+ var node = $(element).getAttributeNode(attribute);
+ return !!(node && node.specified);
+ }
+};
+
+Element.Methods.ByTag = { };
+
+Object.extend(Element, Element.Methods);
+
+if (!Prototype.BrowserFeatures.ElementExtensions &&
+ document.createElement('div')['__proto__']) {
+ window.HTMLElement = { };
+ window.HTMLElement.prototype = document.createElement('div')['__proto__'];
+ Prototype.BrowserFeatures.ElementExtensions = true;
+}
+
+Element.extend = (function() {
+ if (Prototype.BrowserFeatures.SpecificElementExtensions)
+ return Prototype.K;
+
+ var Methods = { }, ByTag = Element.Methods.ByTag;
+
+ var extend = Object.extend(function(element) {
+ if (!element || element._extendedByPrototype ||
+ element.nodeType != 1 || element == window) return element;
+
+ var methods = Object.clone(Methods),
+ tagName = element.tagName.toUpperCase(), property, value;
+
+ // extend methods for specific tags
+ if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
+
+ for (property in methods) {
+ value = methods[property];
+ if (Object.isFunction(value) && !(property in element))
+ element[property] = value.methodize();
+ }
+
+ element._extendedByPrototype = Prototype.emptyFunction;
+ return element;
+
+ }, {
+ refresh: function() {
+ // extend methods for all tags (Safari doesn't need this)
+ if (!Prototype.BrowserFeatures.ElementExtensions) {
+ Object.extend(Methods, Element.Methods);
+ Object.extend(Methods, Element.Methods.Simulated);
+ }
+ }
+ });
+
+ extend.refresh();
+ return extend;
+})();
+
+Element.hasAttribute = function(element, attribute) {
+ if (element.hasAttribute) return element.hasAttribute(attribute);
+ return Element.Methods.Simulated.hasAttribute(element, attribute);
+};
+
+Element.addMethods = function(methods) {
+ var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
+
+ if (!methods) {
+ Object.extend(Form, Form.Methods);
+ Object.extend(Form.Element, Form.Element.Methods);
+ Object.extend(Element.Methods.ByTag, {
+ "FORM": Object.clone(Form.Methods),
+ "INPUT": Object.clone(Form.Element.Methods),
+ "SELECT": Object.clone(Form.Element.Methods),
+ "TEXTAREA": Object.clone(Form.Element.Methods)
+ });
+ }
+
+ if (arguments.length == 2) {
+ var tagName = methods;
+ methods = arguments[1];
+ }
+
+ if (!tagName) Object.extend(Element.Methods, methods || { });
+ else {
+ if (Object.isArray(tagName)) tagName.each(extend);
+ else extend(tagName);
+ }
+
+ function extend(tagName) {
+ tagName = tagName.toUpperCase();
+ if (!Element.Methods.ByTag[tagName])
+ Element.Methods.ByTag[tagName] = { };
+ Object.extend(Element.Methods.ByTag[tagName], methods);
+ }
+
+ function copy(methods, destination, onlyIfAbsent) {
+ onlyIfAbsent = onlyIfAbsent || false;
+ for (var property in methods) {
+ var value = methods[property];
+ if (!Object.isFunction(value)) continue;
+ if (!onlyIfAbsent || !(property in destination))
+ destination[property] = value.methodize();
+ }
+ }
+
+ function findDOMClass(tagName) {
+ var klass;
+ var trans = {
+ "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
+ "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
+ "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
+ "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
+ "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
+ "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
+ "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
+ "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
+ "FrameSet", "IFRAME": "IFrame"
+ };
+ if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName.capitalize() + 'Element';
+ if (window[klass]) return window[klass];
+
+ window[klass] = { };
+ window[klass].prototype = document.createElement(tagName)['__proto__'];
+ return window[klass];
+ }
+
+ if (F.ElementExtensions) {
+ copy(Element.Methods, HTMLElement.prototype);
+ copy(Element.Methods.Simulated, HTMLElement.prototype, true);
+ }
+
+ if (F.SpecificElementExtensions) {
+ for (var tag in Element.Methods.ByTag) {
+ var klass = findDOMClass(tag);
+ if (Object.isUndefined(klass)) continue;
+ copy(T[tag], klass.prototype);
+ }
+ }
+
+ Object.extend(Element, Element.Methods);
+ delete Element.ByTag;
+
+ if (Element.extend.refresh) Element.extend.refresh();
+ Element.cache = { };
+};
+
+document.viewport = {
+ getDimensions: function() {
+ var dimensions = { }, B = Prototype.Browser;
+ $w('width height').each(function(d) {
+ var D = d.capitalize();
+ if (B.WebKit && !document.evaluate) {
+ // Safari <3.0 needs self.innerWidth/Height
+ dimensions[d] = self['inner' + D];
+ } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) {
+ // Opera <9.5 needs document.body.clientWidth/Height
+ dimensions[d] = document.body['client' + D]
+ } else {
+ dimensions[d] = document.documentElement['client' + D];
+ }
+ });
+ return dimensions;
+ },
+
+ getWidth: function() {
+ return this.getDimensions().width;
+ },
+
+ getHeight: function() {
+ return this.getDimensions().height;
+ },
+
+ getScrollOffsets: function() {
+ return Element._returnOffset(
+ window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
+ window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
+ }
+};
+/* Portions of the Selector class are derived from Jack Slocum's DomQuery,
+ * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
+ * license. Please see http://www.yui-ext.com/ for more information. */
+
+var Selector = Class.create({
+ initialize: function(expression) {
+ this.expression = expression.strip();
+
+ if (this.shouldUseSelectorsAPI()) {
+ this.mode = 'selectorsAPI';
+ } else if (this.shouldUseXPath()) {
+ this.mode = 'xpath';
+ this.compileXPathMatcher();
+ } else {
+ this.mode = "normal";
+ this.compileMatcher();
+ }
+
+ },
+
+ shouldUseXPath: function() {
+ if (!Prototype.BrowserFeatures.XPath) return false;
+
+ var e = this.expression;
+
+ // Safari 3 chokes on :*-of-type and :empty
+ if (Prototype.Browser.WebKit &&
+ (e.include("-of-type") || e.include(":empty")))
+ return false;
+
+ // XPath can't do namespaced attributes, nor can it read
+ // the "checked" property from DOM nodes
+ if ((/(\[[\w-]*?:|:checked)/).test(e))
+ return false;
+
+ return true;
+ },
+
+ shouldUseSelectorsAPI: function() {
+ if (!Prototype.BrowserFeatures.SelectorsAPI) return false;
+
+ if (!Selector._div) Selector._div = new Element('div');
+
+ // Make sure the browser treats the selector as valid. Test on an
+ // isolated element to minimize cost of this check.
+ try {
+ Selector._div.querySelector(this.expression);
+ } catch(e) {
+ return false;
+ }
+
+ return true;
+ },
+
+ compileMatcher: function() {
+ var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
+ c = Selector.criteria, le, p, m;
+
+ if (Selector._cache[e]) {
+ this.matcher = Selector._cache[e];
+ return;
+ }
+
+ this.matcher = ["this.matcher = function(root) {",
+ "var r = root, h = Selector.handlers, c = false, n;"];
+
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ p = ps[i];
+ if (m = e.match(p)) {
+ this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
+ new Template(c[i]).evaluate(m));
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+
+ this.matcher.push("return h.unique(n);\n}");
+ eval(this.matcher.join('\n'));
+ Selector._cache[this.expression] = this.matcher;
+ },
+
+ compileXPathMatcher: function() {
+ var e = this.expression, ps = Selector.patterns,
+ x = Selector.xpath, le, m;
+
+ if (Selector._cache[e]) {
+ this.xpath = Selector._cache[e]; return;
+ }
+
+ this.matcher = ['.//*'];
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ if (m = e.match(ps[i])) {
+ this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :
+ new Template(x[i]).evaluate(m));
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+
+ this.xpath = this.matcher.join('');
+ Selector._cache[this.expression] = this.xpath;
+ },
+
+ findElements: function(root) {
+ root = root || document;
+ var e = this.expression, results;
+
+ switch (this.mode) {
+ case 'selectorsAPI':
+ // querySelectorAll queries document-wide, then filters to descendants
+ // of the context element. That's not what we want.
+ // Add an explicit context to the selector if necessary.
+ if (root !== document) {
+ var oldId = root.id, id = $(root).identify();
+ e = "#" + id + " " + e;
+ }
+
+ results = $A(root.querySelectorAll(e)).map(Element.extend);
+ root.id = oldId;
+
+ return results;
+ case 'xpath':
+ return document._getElementsByXPath(this.xpath, root);
+ default:
+ return this.matcher(root);
+ }
+ },
+
+ match: function(element) {
+ this.tokens = [];
+
+ var e = this.expression, ps = Selector.patterns, as = Selector.assertions;
+ var le, p, m;
+
+ while (e && le !== e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ p = ps[i];
+ if (m = e.match(p)) {
+ // use the Selector.assertions methods unless the selector
+ // is too complex.
+ if (as[i]) {
+ this.tokens.push([i, Object.clone(m)]);
+ e = e.replace(m[0], '');
+ } else {
+ // reluctantly do a document-wide search
+ // and look for a match in the array
+ return this.findElements(document).include(element);
+ }
+ }
+ }
+ }
+
+ var match = true, name, matches;
+ for (var i = 0, token; token = this.tokens[i]; i++) {
+ name = token[0], matches = token[1];
+ if (!Selector.assertions[name](element, matches)) {
+ match = false; break;
+ }
+ }
+
+ return match;
+ },
+
+ toString: function() {
+ return this.expression;
+ },
+
+ inspect: function() {
+ return "#<Selector:" + this.expression.inspect() + ">";
+ }
+});
+
+Object.extend(Selector, {
+ _cache: { },
+
+ xpath: {
+ descendant: "//*",
+ child: "/*",
+ adjacent: "/following-sibling::*[1]",
+ laterSibling: '/following-sibling::*',
+ tagName: function(m) {
+ if (m[1] == '*') return '';
+ return "[local-name()='" + m[1].toLowerCase() +
+ "' or local-name()='" + m[1].toUpperCase() + "']";
+ },
+ className: "[contains(concat(' ', @class, ' '), ' #{1} ')]",
+ id: "[@id='#{1}']",
+ attrPresence: function(m) {
+ m[1] = m[1].toLowerCase();
+ return new Template("[@#{1}]").evaluate(m);
+ },
+ attr: function(m) {
+ m[1] = m[1].toLowerCase();
+ m[3] = m[5] || m[6];
+ return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
+ },
+ pseudo: function(m) {
+ var h = Selector.xpath.pseudos[m[1]];
+ if (!h) return '';
+ if (Object.isFunction(h)) return h(m);
+ return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
+ },
+ operators: {
+ '=': "[@#{1}='#{3}']",
+ '!=': "[@#{1}!='#{3}']",
+ '^=': "[starts-with(@#{1}, '#{3}')]",
+ '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
+ '*=': "[contains(@#{1}, '#{3}')]",
+ '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
+ '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
+ },
+ pseudos: {
+ 'first-child': '[not(preceding-sibling::*)]',
+ 'last-child': '[not(following-sibling::*)]',
+ 'only-child': '[not(preceding-sibling::* or following-sibling::*)]',
+ 'empty': "[count(*) = 0 and (count(text()) = 0)]",
+ 'checked': "[@checked]",
+ 'disabled': "[(@disabled) and (@type!='hidden')]",
+ 'enabled': "[not(@disabled) and (@type!='hidden')]",
+ 'not': function(m) {
+ var e = m[6], p = Selector.patterns,
+ x = Selector.xpath, le, v;
+
+ var exclusion = [];
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in p) {
+ if (m = e.match(p[i])) {
+ v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m);
+ exclusion.push("(" + v.substring(1, v.length - 1) + ")");
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+ return "[not(" + exclusion.join(" and ") + ")]";
+ },
+ 'nth-child': function(m) {
+ return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
+ },
+ 'nth-last-child': function(m) {
+ return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
+ },
+ 'nth-of-type': function(m) {
+ return Selector.xpath.pseudos.nth("position() ", m);
+ },
+ 'nth-last-of-type': function(m) {
+ return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
+ },
+ 'first-of-type': function(m) {
+ m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
+ },
+ 'last-of-type': function(m) {
+ m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
+ },
+ 'only-of-type': function(m) {
+ var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
+ },
+ nth: function(fragment, m) {
+ var mm, formula = m[6], predicate;
+ if (formula == 'even') formula = '2n+0';
+ if (formula == 'odd') formula = '2n+1';
+ if (mm = formula.match(/^(\d+)$/)) // digit only
+ return '[' + fragment + "= " + mm[1] + ']';
+ if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+ if (mm[1] == "-") mm[1] = -1;
+ var a = mm[1] ? Number(mm[1]) : 1;
+ var b = mm[2] ? Number(mm[2]) : 0;
+ predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
+ "((#{fragment} - #{b}) div #{a} >= 0)]";
+ return new Template(predicate).evaluate({
+ fragment: fragment, a: a, b: b });
+ }
+ }
+ }
+ },
+
+ criteria: {
+ tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
+ className: 'n = h.className(n, r, "#{1}", c); c = false;',
+ id: 'n = h.id(n, r, "#{1}", c); c = false;',
+ attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
+ attr: function(m) {
+ m[3] = (m[5] || m[6]);
+ return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
+ },
+ pseudo: function(m) {
+ if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
+ return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
+ },
+ descendant: 'c = "descendant";',
+ child: 'c = "child";',
+ adjacent: 'c = "adjacent";',
+ laterSibling: 'c = "laterSibling";'
+ },
+
+ patterns: {
+ // combinators must be listed first
+ // (and descendant needs to be last combinator)
+ laterSibling: /^\s*~\s*/,
+ child: /^\s*>\s*/,
+ adjacent: /^\s*\+\s*/,
+ descendant: /^\s/,
+
+ // selectors follow
+ tagName: /^\s*(\*|[\w\-]+)(\b|$)?/,
+ id: /^#([\w\-\*]+)(\b|$)/,
+ className: /^\.([\w\-\*]+)(\b|$)/,
+ pseudo:
+/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,
+ attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/,
+ attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
+ },
+
+ // for Selector.match and Element#match
+ assertions: {
+ tagName: function(element, matches) {
+ return matches[1].toUpperCase() == element.tagName.toUpperCase();
+ },
+
+ className: function(element, matches) {
+ return Element.hasClassName(element, matches[1]);
+ },
+
+ id: function(element, matches) {
+ return element.id === matches[1];
+ },
+
+ attrPresence: function(element, matches) {
+ return Element.hasAttribute(element, matches[1]);
+ },
+
+ attr: function(element, matches) {
+ var nodeValue = Element.readAttribute(element, matches[1]);
+ return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
+ }
+ },
+
+ handlers: {
+ // UTILITY FUNCTIONS
+ // joins two collections
+ concat: function(a, b) {
+ for (var i = 0, node; node = b[i]; i++)
+ a.push(node);
+ return a;
+ },
+
+ // marks an array of nodes for counting
+ mark: function(nodes) {
+ var _true = Prototype.emptyFunction;
+ for (var i = 0, node; node = nodes[i]; i++)
+ node._countedByPrototype = _true;
+ return nodes;
+ },
+
+ unmark: function(nodes) {
+ for (var i = 0, node; node = nodes[i]; i++)
+ node._countedByPrototype = undefined;
+ return nodes;
+ },
+
+ // mark each child node with its position (for nth calls)
+ // "ofType" flag indicates whether we're indexing for nth-of-type
+ // rather than nth-child
+ index: function(parentNode, reverse, ofType) {
+ parentNode._countedByPrototype = Prototype.emptyFunction;
+ if (reverse) {
+ for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
+ var node = nodes[i];
+ if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
+ }
+ } else {
+ for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
+ if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
+ }
+ },
+
+ // filters out duplicates and extends all nodes
+ unique: function(nodes) {
+ if (nodes.length == 0) return nodes;
+ var results = [], n;
+ for (var i = 0, l = nodes.length; i < l; i++)
+ if (!(n = nodes[i])._countedByPrototype) {
+ n._countedByPrototype = Prototype.emptyFunction;
+ results.push(Element.extend(n));
+ }
+ return Selector.handlers.unmark(results);
+ },
+
+ // COMBINATOR FUNCTIONS
+ descendant: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ h.concat(results, node.getElementsByTagName('*'));
+ return results;
+ },
+
+ child: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ for (var j = 0, child; child = node.childNodes[j]; j++)
+ if (child.nodeType == 1 && child.tagName != '!') results.push(child);
+ }
+ return results;
+ },
+
+ adjacent: function(nodes) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ var next = this.nextElementSibling(node);
+ if (next) results.push(next);
+ }
+ return results;
+ },
+
+ laterSibling: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ h.concat(results, Element.nextSiblings(node));
+ return results;
+ },
+
+ nextElementSibling: function(node) {
+ while (node = node.nextSibling)
+ if (node.nodeType == 1) return node;
+ return null;
+ },
+
+ previousElementSibling: function(node) {
+ while (node = node.previousSibling)
+ if (node.nodeType == 1) return node;
+ return null;
+ },
+
+ // TOKEN FUNCTIONS
+ tagName: function(nodes, root, tagName, combinator) {
+ var uTagName = tagName.toUpperCase();
+ var results = [], h = Selector.handlers;
+ if (nodes) {
+ if (combinator) {
+ // fastlane for ordinary descendant combinators
+ if (combinator == "descendant") {
+ for (var i = 0, node; node = nodes[i]; i++)
+ h.concat(results, node.getElementsByTagName(tagName));
+ return results;
+ } else nodes = this[combinator](nodes);
+ if (tagName == "*") return nodes;
+ }
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.tagName.toUpperCase() === uTagName) results.push(node);
+ return results;
+ } else return root.getElementsByTagName(tagName);
+ },
+
+ id: function(nodes, root, id, combinator) {
+ var targetNode = $(id), h = Selector.handlers;
+ if (!targetNode) return [];
+ if (!nodes && root == document) return [targetNode];
+ if (nodes) {
+ if (combinator) {
+ if (combinator == 'child') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (targetNode.parentNode == node) return [targetNode];
+ } else if (combinator == 'descendant') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Element.descendantOf(targetNode, node)) return [targetNode];
+ } else if (combinator == 'adjacent') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Selector.handlers.previousElementSibling(targetNode) == node)
+ return [targetNode];
+ } else nodes = h[combinator](nodes);
+ }
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node == targetNode) return [targetNode];
+ return [];
+ }
+ return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
+ },
+
+ className: function(nodes, root, className, combinator) {
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ return Selector.handlers.byClassName(nodes, root, className);
+ },
+
+ byClassName: function(nodes, root, className) {
+ if (!nodes) nodes = Selector.handlers.descendant([root]);
+ var needle = ' ' + className + ' ';
+ for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
+ nodeClassName = node.className;
+ if (nodeClassName.length == 0) continue;
+ if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
+ results.push(node);
+ }
+ return results;
+ },
+
+ attrPresence: function(nodes, root, attr, combinator) {
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ var results = [];
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Element.hasAttribute(node, attr)) results.push(node);
+ return results;
+ },
+
+ attr: function(nodes, root, attr, value, operator, combinator) {
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ var handler = Selector.operators[operator], results = [];
+ for (var i = 0, node; node = nodes[i]; i++) {
+ var nodeValue = Element.readAttribute(node, attr);
+ if (nodeValue === null) continue;
+ if (handler(nodeValue, value)) results.push(node);
+ }
+ return results;
+ },
+
+ pseudo: function(nodes, name, value, root, combinator) {
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ return Selector.pseudos[name](nodes, value, root);
+ }
+ },
+
+ pseudos: {
+ 'first-child': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ if (Selector.handlers.previousElementSibling(node)) continue;
+ results.push(node);
+ }
+ return results;
+ },
+ 'last-child': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ if (Selector.handlers.nextElementSibling(node)) continue;
+ results.push(node);
+ }
+ return results;
+ },
+ 'only-child': function(nodes, value, root) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
+ results.push(node);
+ return results;
+ },
+ 'nth-child': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root);
+ },
+ 'nth-last-child': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, true);
+ },
+ 'nth-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, false, true);
+ },
+ 'nth-last-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, true, true);
+ },
+ 'first-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, "1", root, false, true);
+ },
+ 'last-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, "1", root, true, true);
+ },
+ 'only-of-type': function(nodes, formula, root) {
+ var p = Selector.pseudos;
+ return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
+ },
+
+ // handles the an+b logic
+ getIndices: function(a, b, total) {
+ if (a == 0) return b > 0 ? [b] : [];
+ return $R(1, total).inject([], function(memo, i) {
+ if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
+ return memo;
+ });
+ },
+
+ // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type
+ nth: function(nodes, formula, root, reverse, ofType) {
+ if (nodes.length == 0) return [];
+ if (formula == 'even') formula = '2n+0';
+ if (formula == 'odd') formula = '2n+1';
+ var h = Selector.handlers, results = [], indexed = [], m;
+ h.mark(nodes);
+ for (var i = 0, node; node = nodes[i]; i++) {
+ if (!node.parentNode._countedByPrototype) {
+ h.index(node.parentNode, reverse, ofType);
+ indexed.push(node.parentNode);
+ }
+ }
+ if (formula.match(/^\d+$/)) { // just a number
+ formula = Number(formula);
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.nodeIndex == formula) results.push(node);
+ } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+ if (m[1] == "-") m[1] = -1;
+ var a = m[1] ? Number(m[1]) : 1;
+ var b = m[2] ? Number(m[2]) : 0;
+ var indices = Selector.pseudos.getIndices(a, b, nodes.length);
+ for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
+ for (var j = 0; j < l; j++)
+ if (node.nodeIndex == indices[j]) results.push(node);
+ }
+ }
+ h.unmark(nodes);
+ h.unmark(indexed);
+ return results;
+ },
+
+ 'empty': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ // IE treats comments as element nodes
+ if (node.tagName == '!' || node.firstChild) continue;
+ results.push(node);
+ }
+ return results;
+ },
+
+ 'not': function(nodes, selector, root) {
+ var h = Selector.handlers, selectorType, m;
+ var exclusions = new Selector(selector).findElements(root);
+ h.mark(exclusions);
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!node._countedByPrototype) results.push(node);
+ h.unmark(exclusions);
+ return results;
+ },
+
+ 'enabled': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!node.disabled && (!node.type || node.type !== 'hidden'))
+ results.push(node);
+ return results;
+ },
+
+ 'disabled': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (node.disabled) results.push(node);
+ return results;
+ },
+
+ 'checked': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (node.checked) results.push(node);
+ return results;
+ }
+ },
+
+ operators: {
+ '=': function(nv, v) { return nv == v; },
+ '!=': function(nv, v) { return nv != v; },
+ '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); },
+ '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); },
+ '*=': function(nv, v) { return nv == v || nv && nv.include(v); },
+ '$=': function(nv, v) { return nv.endsWith(v); },
+ '*=': function(nv, v) { return nv.include(v); },
+ '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
+ '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() +
+ '-').include('-' + (v || "").toUpperCase() + '-'); }
+ },
+
+ split: function(expression) {
+ var expressions = [];
+ expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
+ expressions.push(m[1].strip());
+ });
+ return expressions;
+ },
+
+ matchElements: function(elements, expression) {
+ var matches = $$(expression), h = Selector.handlers;
+ h.mark(matches);
+ for (var i = 0, results = [], element; element = elements[i]; i++)
+ if (element._countedByPrototype) results.push(element);
+ h.unmark(matches);
+ return results;
+ },
+
+ findElement: function(elements, expression, index) {
+ if (Object.isNumber(expression)) {
+ index = expression; expression = false;
+ }
+ return Selector.matchElements(elements, expression || '*')[index || 0];
+ },
+
+ findChildElements: function(element, expressions) {
+ expressions = Selector.split(expressions.join(','));
+ var results = [], h = Selector.handlers;
+ for (var i = 0, l = expressions.length, selector; i < l; i++) {
+ selector = new Selector(expressions[i].strip());
+ h.concat(results, selector.findElements(element));
+ }
+ return (l > 1) ? h.unique(results) : results;
+ }
+});
+
+if (Prototype.Browser.IE) {
+ Object.extend(Selector.handlers, {
+ // IE returns comment nodes on getElementsByTagName("*").
+ // Filter them out.
+ concat: function(a, b) {
+ for (var i = 0, node; node = b[i]; i++)
+ if (node.tagName !== "!") a.push(node);
+ return a;
+ },
+
+ // IE improperly serializes _countedByPrototype in (inner|outer)HTML.
+ unmark: function(nodes) {
+ for (var i = 0, node; node = nodes[i]; i++)
+ node.removeAttribute('_countedByPrototype');
+ return nodes;
+ }
+ });
+}
+
+function $$() {
+ return Selector.findChildElements(document, $A(arguments));
+}
+var Form = {
+ reset: function(form) {
+ $(form).reset();
+ return form;
+ },
+
+ serializeElements: function(elements, options) {
+ if (typeof options != 'object') options = { hash: !!options };
+ else if (Object.isUndefined(options.hash)) options.hash = true;
+ var key, value, submitted = false, submit = options.submit;
+
+ var data = elements.inject({ }, function(result, element) {
+ if (!element.disabled && element.name) {
+ key = element.name; value = $(element).getValue();
+ if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
+ submit !== false && (!submit || key == submit) && (submitted = true)))) {
+ if (key in result) {
+ // a key is already present; construct an array of values
+ if (!Object.isArray(result[key])) result[key] = [result[key]];
+ result[key].push(value);
+ }
+ else result[key] = value;
+ }
+ }
+ return result;
+ });
+
+ return options.hash ? data : Object.toQueryString(data);
+ }
+};
+
+Form.Methods = {
+ serialize: function(form, options) {
+ return Form.serializeElements(Form.getElements(form), options);
+ },
+
+ getElements: function(form) {
+ return $A($(form).getElementsByTagName('*')).inject([],
+ function(elements, child) {
+ if (Form.Element.Serializers[child.tagName.toLowerCase()])
+ elements.push(Element.extend(child));
+ return elements;
+ }
+ );
+ },
+
+ getInputs: function(form, typeName, name) {
+ form = $(form);
+ var inputs = form.getElementsByTagName('input');
+
+ if (!typeName && !name) return $A(inputs).map(Element.extend);
+
+ for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
+ var input = inputs[i];
+ if ((typeName && input.type != typeName) || (name && input.name != name))
+ continue;
+ matchingInputs.push(Element.extend(input));
+ }
+
+ return matchingInputs;
+ },
+
+ disable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('disable');
+ return form;
+ },
+
+ enable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('enable');
+ return form;
+ },
+
+ findFirstElement: function(form) {
+ var elements = $(form).getElements().findAll(function(element) {
+ return 'hidden' != element.type && !element.disabled;
+ });
+ var firstByIndex = elements.findAll(function(element) {
+ return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
+ }).sortBy(function(element) { return element.tabIndex }).first();
+
+ return firstByIndex ? firstByIndex : elements.find(function(element) {
+ return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
+ });
+ },
+
+ focusFirstElement: function(form) {
+ form = $(form);
+ form.findFirstElement().activate();
+ return form;
+ },
+
+ request: function(form, options) {
+ form = $(form), options = Object.clone(options || { });
+
+ var params = options.parameters, action = form.readAttribute('action') || '';
+ if (action.blank()) action = window.location.href;
+ options.parameters = form.serialize(true);
+
+ if (params) {
+ if (Object.isString(params)) params = params.toQueryParams();
+ Object.extend(options.parameters, params);
+ }
+
+ if (form.hasAttribute('method') && !options.method)
+ options.method = form.method;
+
+ return new Ajax.Request(action, options);
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element = {
+ focus: function(element) {
+ $(element).focus();
+ return element;
+ },
+
+ select: function(element) {
+ $(element).select();
+ return element;
+ }
+};
+
+Form.Element.Methods = {
+ serialize: function(element) {
+ element = $(element);
+ if (!element.disabled && element.name) {
+ var value = element.getValue();
+ if (value != undefined) {
+ var pair = { };
+ pair[element.name] = value;
+ return Object.toQueryString(pair);
+ }
+ }
+ return '';
+ },
+
+ getValue: function(element) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ return Form.Element.Serializers[method](element);
+ },
+
+ setValue: function(element, value) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ Form.Element.Serializers[method](element, value);
+ return element;
+ },
+
+ clear: function(element) {
+ $(element).value = '';
+ return element;
+ },
+
+ present: function(element) {
+ return $(element).value != '';
+ },
+
+ activate: function(element) {
+ element = $(element);
+ try {
+ element.focus();
+ if (element.select && (element.tagName.toLowerCase() != 'input' ||
+ !['button', 'reset', 'submit'].include(element.type)))
+ element.select();
+ } catch (e) { }
+ return element;
+ },
+
+ disable: function(element) {
+ element = $(element);
+ element.disabled = true;
+ return element;
+ },
+
+ enable: function(element) {
+ element = $(element);
+ element.disabled = false;
+ return element;
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+var Field = Form.Element;
+var $F = Form.Element.Methods.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element.Serializers = {
+ input: function(element, value) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ return Form.Element.Serializers.inputSelector(element, value);
+ default:
+ return Form.Element.Serializers.textarea(element, value);
+ }
+ },
+
+ inputSelector: function(element, value) {
+ if (Object.isUndefined(value)) return element.checked ? element.value : null;
+ else element.checked = !!value;
+ },
+
+ textarea: function(element, value) {
+ if (Object.isUndefined(value)) return element.value;
+ else element.value = value;
+ },
+
+ select: function(element, value) {
+ if (Object.isUndefined(value))
+ return this[element.type == 'select-one' ?
+ 'selectOne' : 'selectMany'](element);
+ else {
+ var opt, currentValue, single = !Object.isArray(value);
+ for (var i = 0, length = element.length; i < length; i++) {
+ opt = element.options[i];
+ currentValue = this.optionValue(opt);
+ if (single) {
+ if (currentValue == value) {
+ opt.selected = true;
+ return;
+ }
+ }
+ else opt.selected = value.include(currentValue);
+ }
+ }
+ },
+
+ selectOne: function(element) {
+ var index = element.selectedIndex;
+ return index >= 0 ? this.optionValue(element.options[index]) : null;
+ },
+
+ selectMany: function(element) {
+ var values, length = element.length;
+ if (!length) return null;
+
+ for (var i = 0, values = []; i < length; i++) {
+ var opt = element.options[i];
+ if (opt.selected) values.push(this.optionValue(opt));
+ }
+ return values;
+ },
+
+ optionValue: function(opt) {
+ // extend element because hasAttribute may not be native
+ return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
+ initialize: function($super, element, frequency, callback) {
+ $super(callback, frequency);
+ this.element = $(element);
+ this.lastValue = this.getValue();
+ },
+
+ execute: function() {
+ var value = this.getValue();
+ if (Object.isString(this.lastValue) && Object.isString(value) ?
+ this.lastValue != value : String(this.lastValue) != String(value)) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ }
+});
+
+Form.Element.Observer = Class.create(Abstract.TimedObserver, {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.Observer = Class.create(Abstract.TimedObserver, {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = Class.create({
+ initialize: function(element, callback) {
+ this.element = $(element);
+ this.callback = callback;
+
+ this.lastValue = this.getValue();
+ if (this.element.tagName.toLowerCase() == 'form')
+ this.registerFormCallbacks();
+ else
+ this.registerCallback(this.element);
+ },
+
+ onElementEvent: function() {
+ var value = this.getValue();
+ if (this.lastValue != value) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ },
+
+ registerFormCallbacks: function() {
+ Form.getElements(this.element).each(this.registerCallback, this);
+ },
+
+ registerCallback: function(element) {
+ if (element.type) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ Event.observe(element, 'click', this.onElementEvent.bind(this));
+ break;
+ default:
+ Event.observe(element, 'change', this.onElementEvent.bind(this));
+ break;
+ }
+ }
+ }
+});
+
+Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.EventObserver = Class.create(Abstract.EventObserver, {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+if (!window.Event) var Event = { };
+
+Object.extend(Event, {
+ KEY_BACKSPACE: 8,
+ KEY_TAB: 9,
+ KEY_RETURN: 13,
+ KEY_ESC: 27,
+ KEY_LEFT: 37,
+ KEY_UP: 38,
+ KEY_RIGHT: 39,
+ KEY_DOWN: 40,
+ KEY_DELETE: 46,
+ KEY_HOME: 36,
+ KEY_END: 35,
+ KEY_PAGEUP: 33,
+ KEY_PAGEDOWN: 34,
+ KEY_INSERT: 45,
+
+ cache: { },
+
+ relatedTarget: function(event) {
+ var element;
+ switch(event.type) {
+ case 'mouseover': element = event.fromElement; break;
+ case 'mouseout': element = event.toElement; break;
+ default: return null;
+ }
+ return Element.extend(element);
+ }
+});
+
+Event.Methods = (function() {
+ var isButton;
+
+ if (Prototype.Browser.IE) {
+ var buttonMap = { 0: 1, 1: 4, 2: 2 };
+ isButton = function(event, code) {
+ return event.button == buttonMap[code];
+ };
+
+ } else if (Prototype.Browser.WebKit) {
+ isButton = function(event, code) {
+ switch (code) {
+ case 0: return event.which == 1 && !event.metaKey;
+ case 1: return event.which == 1 && event.metaKey;
+ default: return false;
+ }
+ };
+
+ } else {
+ isButton = function(event, code) {
+ return event.which ? (event.which === code + 1) : (event.button === code);
+ };
+ }
+
+ return {
+ isLeftClick: function(event) { return isButton(event, 0) },
+ isMiddleClick: function(event) { return isButton(event, 1) },
+ isRightClick: function(event) { return isButton(event, 2) },
+
+ element: function(event) {
+ event = Event.extend(event);
+
+ var node = event.target,
+ type = event.type,
+ currentTarget = event.currentTarget;
+
+ if (currentTarget && currentTarget.tagName) {
+ // Firefox screws up the "click" event when moving between radio buttons
+ // via arrow keys. It also screws up the "load" and "error" events on images,
+ // reporting the document as the target instead of the original image.
+ if (type === 'load' || type === 'error' ||
+ (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
+ && currentTarget.type === 'radio'))
+ node = currentTarget;
+ }
+ if (node.nodeType == Node.TEXT_NODE) node = node.parentNode;
+ return Element.extend(node);
+ },
+
+ findElement: function(event, expression) {
+ var element = Event.element(event);
+ if (!expression) return element;
+ var elements = [element].concat(element.ancestors());
+ return Selector.findElement(elements, expression, 0);
+ },
+
+ pointer: function(event) {
+ var docElement = document.documentElement,
+ body = document.body || { scrollLeft: 0, scrollTop: 0 };
+ return {
+ x: event.pageX || (event.clientX +
+ (docElement.scrollLeft || body.scrollLeft) -
+ (docElement.clientLeft || 0)),
+ y: event.pageY || (event.clientY +
+ (docElement.scrollTop || body.scrollTop) -
+ (docElement.clientTop || 0))
+ };
+ },
+
+ pointerX: function(event) { return Event.pointer(event).x },
+ pointerY: function(event) { return Event.pointer(event).y },
+
+ stop: function(event) {
+ Event.extend(event);
+ event.preventDefault();
+ event.stopPropagation();
+ event.stopped = true;
+ }
+ };
+})();
+
+Event.extend = (function() {
+ var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
+ m[name] = Event.Methods[name].methodize();
+ return m;
+ });
+
+ if (Prototype.Browser.IE) {
+ Object.extend(methods, {
+ stopPropagation: function() { this.cancelBubble = true },
+ preventDefault: function() { this.returnValue = false },
+ inspect: function() { return "[object Event]" }
+ });
+
+ return function(event) {
+ if (!event) return false;
+ if (event._extendedByPrototype) return event;
+
+ event._extendedByPrototype = Prototype.emptyFunction;
+ var pointer = Event.pointer(event);
+ Object.extend(event, {
+ target: event.srcElement,
+ relatedTarget: Event.relatedTarget(event),
+ pageX: pointer.x,
+ pageY: pointer.y
+ });
+ return Object.extend(event, methods);
+ };
+
+ } else {
+ Event.prototype = Event.prototype || document.createEvent("HTMLEvents")['__proto__'];
+ Object.extend(Event.prototype, methods);
+ return Prototype.K;
+ }
+})();
+
+Object.extend(Event, (function() {
+ var cache = Event.cache;
+
+ function getEventID(element) {
+ if (element._prototypeEventID) return element._prototypeEventID[0];
+ arguments.callee.id = arguments.callee.id || 1;
+ return element._prototypeEventID = [++arguments.callee.id];
+ }
+
+ function getDOMEventName(eventName) {
+ if (eventName && eventName.include(':')) return "dataavailable";
+ return eventName;
+ }
+
+ function getCacheForID(id) {
+ return cache[id] = cache[id] || { };
+ }
+
+ function getWrappersForEventName(id, eventName) {
+ var c = getCacheForID(id);
+ return c[eventName] = c[eventName] || [];
+ }
+
+ function createWrapper(element, eventName, handler) {
+ var id = getEventID(element);
+ var c = getWrappersForEventName(id, eventName);
+ if (c.pluck("handler").include(handler)) return false;
+
+ var wrapper = function(event) {
+ if (!Event || !Event.extend ||
+ (event.eventName && event.eventName != eventName))
+ return false;
+
+ Event.extend(event);
+ handler.call(element, event);
+ };
+
+ wrapper.handler = handler;
+ c.push(wrapper);
+ return wrapper;
+ }
+
+ function findWrapper(id, eventName, handler) {
+ var c = getWrappersForEventName(id, eventName);
+ return c.find(function(wrapper) { return wrapper.handler == handler });
+ }
+
+ function destroyWrapper(id, eventName, handler) {
+ var c = getCacheForID(id);
+ if (!c[eventName]) return false;
+ c[eventName] = c[eventName].without(findWrapper(id, eventName, handler));
+ }
+
+ function destroyCache() {
+ for (var id in cache)
+ for (var eventName in cache[id])
+ cache[id][eventName] = null;
+ }
+
+
+ // Internet Explorer needs to remove event handlers on page unload
+ // in order to avoid memory leaks.
+ if (window.attachEvent) {
+ window.attachEvent("onunload", destroyCache);
+ }
+
+ // Safari has a dummy event handler on page unload so that it won't
+ // use its bfcache. Safari <= 3.1 has an issue with restoring the "document"
+ // object when page is returned to via the back button using its bfcache.
+ if (Prototype.Browser.WebKit) {
+ window.addEventListener('unload', Prototype.emptyFunction, false);
+ }
+
+ return {
+ observe: function(element, eventName, handler) {
+ element = $(element);
+ var name = getDOMEventName(eventName);
+
+ var wrapper = createWrapper(element, eventName, handler);
+ if (!wrapper) return element;
+
+ if (element.addEventListener) {
+ element.addEventListener(name, wrapper, false);
+ } else {
+ element.attachEvent("on" + name, wrapper);
+ }
+
+ return element;
+ },
+
+ stopObserving: function(element, eventName, handler) {
+ element = $(element);
+ var id = getEventID(element), name = getDOMEventName(eventName);
+
+ if (!handler && eventName) {
+ getWrappersForEventName(id, eventName).each(function(wrapper) {
+ element.stopObserving(eventName, wrapper.handler);
+ });
+ return element;
+
+ } else if (!eventName) {
+ Object.keys(getCacheForID(id)).each(function(eventName) {
+ element.stopObserving(eventName);
+ });
+ return element;
+ }
+
+ var wrapper = findWrapper(id, eventName, handler);
+ if (!wrapper) return element;
+
+ if (element.removeEventListener) {
+ element.removeEventListener(name, wrapper, false);
+ } else {
+ element.detachEvent("on" + name, wrapper);
+ }
+
+ destroyWrapper(id, eventName, handler);
+
+ return element;
+ },
+
+ fire: function(element, eventName, memo) {
+ element = $(element);
+ if (element == document && document.createEvent && !element.dispatchEvent)
+ element = document.documentElement;
+
+ var event;
+ if (document.createEvent) {
+ event = document.createEvent("HTMLEvents");
+ event.initEvent("dataavailable", true, true);
+ } else {
+ event = document.createEventObject();
+ event.eventType = "ondataavailable";
+ }
+
+ event.eventName = eventName;
+ event.memo = memo || { };
+
+ if (document.createEvent) {
+ element.dispatchEvent(event);
+ } else {
+ element.fireEvent(event.eventType, event);
+ }
+
+ return Event.extend(event);
+ }
+ };
+})());
+
+Object.extend(Event, Event.Methods);
+
+Element.addMethods({
+ fire: Event.fire,
+ observe: Event.observe,
+ stopObserving: Event.stopObserving
+});
+
+Object.extend(document, {
+ fire: Element.Methods.fire.methodize(),
+ observe: Element.Methods.observe.methodize(),
+ stopObserving: Element.Methods.stopObserving.methodize(),
+ loaded: false
+});
+
+(function() {
+ /* Support for the DOMContentLoaded event is based on work by Dan Webb,
+ Matthias Miller, Dean Edwards and John Resig. */
+
+ var timer;
+
+ function fireContentLoadedEvent() {
+ if (document.loaded) return;
+ if (timer) window.clearInterval(timer);
+ document.fire("dom:loaded");
+ document.loaded = true;
+ }
+
+ if (document.addEventListener) {
+ if (Prototype.Browser.WebKit) {
+ timer = window.setInterval(function() {
+ if (/loaded|complete/.test(document.readyState))
+ fireContentLoadedEvent();
+ }, 0);
+
+ Event.observe(window, "load", fireContentLoadedEvent);
+
+ } else {
+ document.addEventListener("DOMContentLoaded",
+ fireContentLoadedEvent, false);
+ }
+
+ } else {
+ document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
+ $("__onDOMContentLoaded").onreadystatechange = function() {
+ if (this.readyState == "complete") {
+ this.onreadystatechange = null;
+ fireContentLoadedEvent();
+ }
+ };
+ }
+})();
+/*------------------------------- DEPRECATED -------------------------------*/
+
+Hash.toQueryString = Object.toQueryString;
+
+var Toggle = { display: Element.toggle };
+
+Element.Methods.childOf = Element.Methods.descendantOf;
+
+var Insertion = {
+ Before: function(element, content) {
+ return Element.insert(element, {before:content});
+ },
+
+ Top: function(element, content) {
+ return Element.insert(element, {top:content});
+ },
+
+ Bottom: function(element, content) {
+ return Element.insert(element, {bottom:content});
+ },
+
+ After: function(element, content) {
+ return Element.insert(element, {after:content});
+ }
+};
+
+var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
+
+// This should be moved to script.aculo.us; notice the deprecated methods
+// further below, that map to the newer Element methods.
+var Position = {
+ // set to true if needed, warning: firefox performance problems
+ // NOT neeeded for page scrolling, only if draggable contained in
+ // scrollable elements
+ includeScrollOffsets: false,
+
+ // must be called before calling withinIncludingScrolloffset, every time the
+ // page is scrolled
+ prepare: function() {
+ this.deltaX = window.pageXOffset
+ || document.documentElement.scrollLeft
+ || document.body.scrollLeft
+ || 0;
+ this.deltaY = window.pageYOffset
+ || document.documentElement.scrollTop
+ || document.body.scrollTop
+ || 0;
+ },
+
+ // caches x/y coordinate pair to use with overlap
+ within: function(element, x, y) {
+ if (this.includeScrollOffsets)
+ return this.withinIncludingScrolloffsets(element, x, y);
+ this.xcomp = x;
+ this.ycomp = y;
+ this.offset = Element.cumulativeOffset(element);
+
+ return (y >= this.offset[1] &&
+ y < this.offset[1] + element.offsetHeight &&
+ x >= this.offset[0] &&
+ x < this.offset[0] + element.offsetWidth);
+ },
+
+ withinIncludingScrolloffsets: function(element, x, y) {
+ var offsetcache = Element.cumulativeScrollOffset(element);
+
+ this.xcomp = x + offsetcache[0] - this.deltaX;
+ this.ycomp = y + offsetcache[1] - this.deltaY;
+ this.offset = Element.cumulativeOffset(element);
+
+ return (this.ycomp >= this.offset[1] &&
+ this.ycomp < this.offset[1] + element.offsetHeight &&
+ this.xcomp >= this.offset[0] &&
+ this.xcomp < this.offset[0] + element.offsetWidth);
+ },
+
+ // within must be called directly before
+ overlap: function(mode, element) {
+ if (!mode) return 0;
+ if (mode == 'vertical')
+ return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+ element.offsetHeight;
+ if (mode == 'horizontal')
+ return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+ element.offsetWidth;
+ },
+
+ // Deprecation layer -- use newer Element methods now (1.5.2).
+
+ cumulativeOffset: Element.Methods.cumulativeOffset,
+
+ positionedOffset: Element.Methods.positionedOffset,
+
+ absolutize: function(element) {
+ Position.prepare();
+ return Element.absolutize(element);
+ },
+
+ relativize: function(element) {
+ Position.prepare();
+ return Element.relativize(element);
+ },
+
+ realOffset: Element.Methods.cumulativeScrollOffset,
+
+ offsetParent: Element.Methods.getOffsetParent,
+
+ page: Element.Methods.viewportOffset,
+
+ clone: function(source, target, options) {
+ options = options || { };
+ return Element.clonePosition(target, source, options);
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
+ function iter(name) {
+ return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
+ }
+
+ instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
+ function(element, className) {
+ className = className.toString().strip();
+ var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
+ return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
+ } : function(element, className) {
+ className = className.toString().strip();
+ var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
+ if (!classNames && !className) return elements;
+
+ var nodes = $(element).getElementsByTagName('*');
+ className = ' ' + className + ' ';
+
+ for (var i = 0, child, cn; child = nodes[i]; i++) {
+ if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
+ (classNames && classNames.all(function(name) {
+ return !name.toString().blank() && cn.include(' ' + name + ' ');
+ }))))
+ elements.push(Element.extend(child));
+ }
+ return elements;
+ };
+
+ return function(className, parentElement) {
+ return $(parentElement || document.body).getElementsByClassName(className);
+ };
+}(Element.Methods);
+
+/*--------------------------------------------------------------------------*/
+
+Element.ClassNames = Class.create();
+Element.ClassNames.prototype = {
+ initialize: function(element) {
+ this.element = $(element);
+ },
+
+ _each: function(iterator) {
+ this.element.className.split(/\s+/).select(function(name) {
+ return name.length > 0;
+ })._each(iterator);
+ },
+
+ set: function(className) {
+ this.element.className = className;
+ },
+
+ add: function(classNameToAdd) {
+ if (this.include(classNameToAdd)) return;
+ this.set($A(this).concat(classNameToAdd).join(' '));
+ },
+
+ remove: function(classNameToRemove) {
+ if (!this.include(classNameToRemove)) return;
+ this.set($A(this).without(classNameToRemove).join(' '));
+ },
+
+ toString: function() {
+ return $A(this).join(' ');
+ }
+};
+
+Object.extend(Element.ClassNames.prototype, Enumerable);
+
+/*--------------------------------------------------------------------------*/
+
+Element.addMethods();
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-cube.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-cube.js
new file mode 100644
index 000000000..e2cd6f9a5
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-cube.js
@@ -0,0 +1,337 @@
+// 3D Cube Rotation
+// http://www.speich.net/computer/moztesting/3d.htm
+// Created by Simon Speich
+
+var Q = new Array();
+var MTrans = new Array(); // transformation matrix
+var MQube = new Array(); // position information of qube
+var I = new Array(); // entity matrix
+var Origin = new Object();
+var Testing = new Object();
+var LoopTimer;
+
+var DisplArea = new Object();
+DisplArea.Width = 300;
+DisplArea.Height = 300;
+
+function DrawLine(From, To) {
+ var x1 = From.V[0];
+ var x2 = To.V[0];
+ var y1 = From.V[1];
+ var y2 = To.V[1];
+ var dx = Math.abs(x2 - x1);
+ var dy = Math.abs(y2 - y1);
+ var x = x1;
+ var y = y1;
+ var IncX1, IncY1;
+ var IncX2, IncY2;
+ var Den;
+ var Num;
+ var NumAdd;
+ var NumPix;
+
+ if (x2 >= x1) { IncX1 = 1; IncX2 = 1; }
+ else { IncX1 = -1; IncX2 = -1; }
+ if (y2 >= y1) { IncY1 = 1; IncY2 = 1; }
+ else { IncY1 = -1; IncY2 = -1; }
+ if (dx >= dy) {
+ IncX1 = 0;
+ IncY2 = 0;
+ Den = dx;
+ Num = dx / 2;
+ NumAdd = dy;
+ NumPix = dx;
+ }
+ else {
+ IncX2 = 0;
+ IncY1 = 0;
+ Den = dy;
+ Num = dy / 2;
+ NumAdd = dx;
+ NumPix = dy;
+ }
+
+ NumPix = Math.round(Q.LastPx + NumPix);
+
+ var i = Q.LastPx;
+ for (; i < NumPix; i++) {
+ Num += NumAdd;
+ if (Num >= Den) {
+ Num -= Den;
+ x += IncX1;
+ y += IncY1;
+ }
+ x += IncX2;
+ y += IncY2;
+ }
+ Q.LastPx = NumPix;
+}
+
+function CalcCross(V0, V1) {
+ var Cross = new Array();
+ Cross[0] = V0[1]*V1[2] - V0[2]*V1[1];
+ Cross[1] = V0[2]*V1[0] - V0[0]*V1[2];
+ Cross[2] = V0[0]*V1[1] - V0[1]*V1[0];
+ return Cross;
+}
+
+function CalcNormal(V0, V1, V2) {
+ var A = new Array(); var B = new Array();
+ for (var i = 0; i < 3; i++) {
+ A[i] = V0[i] - V1[i];
+ B[i] = V2[i] - V1[i];
+ }
+ A = CalcCross(A, B);
+ var Length = Math.sqrt(A[0]*A[0] + A[1]*A[1] + A[2]*A[2]);
+ for (var i = 0; i < 3; i++) A[i] = A[i] / Length;
+ A[3] = 1;
+ return A;
+}
+
+function CreateP(X,Y,Z) {
+ this.V = [X,Y,Z,1];
+}
+
+// multiplies two matrices
+function MMulti(M1, M2) {
+ var M = [[],[],[],[]];
+ var i = 0;
+ var j = 0;
+ for (; i < 4; i++) {
+ j = 0;
+ for (; j < 4; j++) M[i][j] = M1[i][0] * M2[0][j] + M1[i][1] * M2[1][j] + M1[i][2] * M2[2][j] + M1[i][3] * M2[3][j];
+ }
+ return M;
+}
+
+//multiplies matrix with vector
+function VMulti(M, V) {
+ var Vect = new Array();
+ var i = 0;
+ for (;i < 4; i++) Vect[i] = M[i][0] * V[0] + M[i][1] * V[1] + M[i][2] * V[2] + M[i][3] * V[3];
+ return Vect;
+}
+
+function VMulti2(M, V) {
+ var Vect = new Array();
+ var i = 0;
+ for (;i < 3; i++) Vect[i] = M[i][0] * V[0] + M[i][1] * V[1] + M[i][2] * V[2];
+ return Vect;
+}
+
+// add to matrices
+function MAdd(M1, M2) {
+ var M = [[],[],[],[]];
+ var i = 0;
+ var j = 0;
+ for (; i < 4; i++) {
+ j = 0;
+ for (; j < 4; j++) M[i][j] = M1[i][j] + M2[i][j];
+ }
+ return M;
+}
+
+function Translate(M, Dx, Dy, Dz) {
+ var T = [
+ [1,0,0,Dx],
+ [0,1,0,Dy],
+ [0,0,1,Dz],
+ [0,0,0,1]
+ ];
+ return MMulti(T, M);
+}
+
+function RotateX(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [1,0,0,0],
+ [0,Cos,-Sin,0],
+ [0,Sin,Cos,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function RotateY(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [Cos,0,Sin,0],
+ [0,1,0,0],
+ [-Sin,0,Cos,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function RotateZ(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [Cos,-Sin,0,0],
+ [Sin,Cos,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function DrawQube() {
+ // calc current normals
+ var CurN = new Array();
+ var i = 5;
+ Q.LastPx = 0;
+ for (; i > -1; i--) CurN[i] = VMulti2(MQube, Q.Normal[i]);
+ if (CurN[0][2] < 0) {
+ if (!Q.Line[0]) { DrawLine(Q[0], Q[1]); Q.Line[0] = true; };
+ if (!Q.Line[1]) { DrawLine(Q[1], Q[2]); Q.Line[1] = true; };
+ if (!Q.Line[2]) { DrawLine(Q[2], Q[3]); Q.Line[2] = true; };
+ if (!Q.Line[3]) { DrawLine(Q[3], Q[0]); Q.Line[3] = true; };
+ }
+ if (CurN[1][2] < 0) {
+ if (!Q.Line[2]) { DrawLine(Q[3], Q[2]); Q.Line[2] = true; };
+ if (!Q.Line[9]) { DrawLine(Q[2], Q[6]); Q.Line[9] = true; };
+ if (!Q.Line[6]) { DrawLine(Q[6], Q[7]); Q.Line[6] = true; };
+ if (!Q.Line[10]) { DrawLine(Q[7], Q[3]); Q.Line[10] = true; };
+ }
+ if (CurN[2][2] < 0) {
+ if (!Q.Line[4]) { DrawLine(Q[4], Q[5]); Q.Line[4] = true; };
+ if (!Q.Line[5]) { DrawLine(Q[5], Q[6]); Q.Line[5] = true; };
+ if (!Q.Line[6]) { DrawLine(Q[6], Q[7]); Q.Line[6] = true; };
+ if (!Q.Line[7]) { DrawLine(Q[7], Q[4]); Q.Line[7] = true; };
+ }
+ if (CurN[3][2] < 0) {
+ if (!Q.Line[4]) { DrawLine(Q[4], Q[5]); Q.Line[4] = true; };
+ if (!Q.Line[8]) { DrawLine(Q[5], Q[1]); Q.Line[8] = true; };
+ if (!Q.Line[0]) { DrawLine(Q[1], Q[0]); Q.Line[0] = true; };
+ if (!Q.Line[11]) { DrawLine(Q[0], Q[4]); Q.Line[11] = true; };
+ }
+ if (CurN[4][2] < 0) {
+ if (!Q.Line[11]) { DrawLine(Q[4], Q[0]); Q.Line[11] = true; };
+ if (!Q.Line[3]) { DrawLine(Q[0], Q[3]); Q.Line[3] = true; };
+ if (!Q.Line[10]) { DrawLine(Q[3], Q[7]); Q.Line[10] = true; };
+ if (!Q.Line[7]) { DrawLine(Q[7], Q[4]); Q.Line[7] = true; };
+ }
+ if (CurN[5][2] < 0) {
+ if (!Q.Line[8]) { DrawLine(Q[1], Q[5]); Q.Line[8] = true; };
+ if (!Q.Line[5]) { DrawLine(Q[5], Q[6]); Q.Line[5] = true; };
+ if (!Q.Line[9]) { DrawLine(Q[6], Q[2]); Q.Line[9] = true; };
+ if (!Q.Line[1]) { DrawLine(Q[2], Q[1]); Q.Line[1] = true; };
+ }
+ Q.Line = [false,false,false,false,false,false,false,false,false,false,false,false];
+ Q.LastPx = 0;
+}
+
+function Loop() {
+ if (Testing.LoopCount > Testing.LoopMax) return;
+ var TestingStr = String(Testing.LoopCount);
+ while (TestingStr.length < 3) TestingStr = "0" + TestingStr;
+ MTrans = Translate(I, -Q[8].V[0], -Q[8].V[1], -Q[8].V[2]);
+ MTrans = RotateX(MTrans, 1);
+ MTrans = RotateY(MTrans, 3);
+ MTrans = RotateZ(MTrans, 5);
+ MTrans = Translate(MTrans, Q[8].V[0], Q[8].V[1], Q[8].V[2]);
+ MQube = MMulti(MTrans, MQube);
+ var i = 8;
+ for (; i > -1; i--) {
+ Q[i].V = VMulti(MTrans, Q[i].V);
+ }
+ DrawQube();
+ Testing.LoopCount++;
+ Loop();
+}
+
+function Init(CubeSize) {
+ // init/reset vars
+ Origin.V = [150,150,20,1];
+ Testing.LoopCount = 0;
+ Testing.LoopMax = 50;
+ Testing.TimeMax = 0;
+ Testing.TimeAvg = 0;
+ Testing.TimeMin = 0;
+ Testing.TimeTemp = 0;
+ Testing.TimeTotal = 0;
+ Testing.Init = false;
+
+ // transformation matrix
+ MTrans = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // position information of qube
+ MQube = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // entity matrix
+ I = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // create qube
+ Q[0] = new CreateP(-CubeSize,-CubeSize, CubeSize);
+ Q[1] = new CreateP(-CubeSize, CubeSize, CubeSize);
+ Q[2] = new CreateP( CubeSize, CubeSize, CubeSize);
+ Q[3] = new CreateP( CubeSize,-CubeSize, CubeSize);
+ Q[4] = new CreateP(-CubeSize,-CubeSize,-CubeSize);
+ Q[5] = new CreateP(-CubeSize, CubeSize,-CubeSize);
+ Q[6] = new CreateP( CubeSize, CubeSize,-CubeSize);
+ Q[7] = new CreateP( CubeSize,-CubeSize,-CubeSize);
+
+ // center of gravity
+ Q[8] = new CreateP(0, 0, 0);
+
+ // anti-clockwise edge check
+ Q.Edge = [[0,1,2],[3,2,6],[7,6,5],[4,5,1],[4,0,3],[1,5,6]];
+
+ // calculate squad normals
+ Q.Normal = new Array();
+ for (var i = 0; i < Q.Edge.length; i++) Q.Normal[i] = CalcNormal(Q[Q.Edge[i][0]].V, Q[Q.Edge[i][1]].V, Q[Q.Edge[i][2]].V);
+
+ // line drawn ?
+ Q.Line = [false,false,false,false,false,false,false,false,false,false,false,false];
+
+ // create line pixels
+ Q.NumPx = 9 * 2 * CubeSize;
+ for (var i = 0; i < Q.NumPx; i++) CreateP(0,0,0);
+
+ MTrans = Translate(MTrans, Origin.V[0], Origin.V[1], Origin.V[2]);
+ MQube = MMulti(MTrans, MQube);
+
+ var i = 0;
+ for (; i < 9; i++) {
+ Q[i].V = VMulti(MTrans, Q[i].V);
+ }
+ DrawQube();
+ Testing.Init = true;
+ Loop();
+}
+
+for ( var i = 20; i <= 160; i *= 2 ) {
+ Init(i);
+}
+
+Q = null;
+MTrans = null;
+MQube = null;
+I = null;
+Origin = null;
+Testing = null;
+LoopTime = null;
+DisplArea = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-morph.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-morph.js
new file mode 100644
index 000000000..d4238c080
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-morph.js
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var loops = 15
+var nx = 120
+var nz = 120
+
+function morph(a, f) {
+ var PI2nx = Math.PI * 8/nx
+ var sin = Math.sin
+ var f30 = -(50 * sin(f*Math.PI*2))
+
+ for (var i = 0; i < nz; ++i) {
+ for (var j = 0; j < nx; ++j) {
+ a[3*(i*nx+j)+1] = sin((j-1) * PI2nx ) * -f30
+ }
+ }
+}
+
+
+var a = Array()
+for (var i=0; i < nx*nz*3; ++i)
+ a[i] = 0
+
+for (var i = 0; i < loops; ++i) {
+ morph(a, i/loops)
+}
+
+testOutput = 0;
+for (var i = 0; i < nx; i++)
+ testOutput += a[3*(i*nx+i)+1];
+a = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-raytrace.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-raytrace.js
new file mode 100644
index 000000000..e7b959e1c
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/3d-raytrace.js
@@ -0,0 +1,441 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function createVector(x,y,z) {
+ return new Array(x,y,z);
+}
+
+function sqrLengthVector(self) {
+ return self[0] * self[0] + self[1] * self[1] + self[2] * self[2];
+}
+
+function lengthVector(self) {
+ return Math.sqrt(self[0] * self[0] + self[1] * self[1] + self[2] * self[2]);
+}
+
+function addVector(self, v) {
+ self[0] += v[0];
+ self[1] += v[1];
+ self[2] += v[2];
+ return self;
+}
+
+function subVector(self, v) {
+ self[0] -= v[0];
+ self[1] -= v[1];
+ self[2] -= v[2];
+ return self;
+}
+
+function scaleVector(self, scale) {
+ self[0] *= scale;
+ self[1] *= scale;
+ self[2] *= scale;
+ return self;
+}
+
+function normaliseVector(self) {
+ var len = Math.sqrt(self[0] * self[0] + self[1] * self[1] + self[2] * self[2]);
+ self[0] /= len;
+ self[1] /= len;
+ self[2] /= len;
+ return self;
+}
+
+function add(v1, v2) {
+ return new Array(v1[0] + v2[0], v1[1] + v2[1], v1[2] + v2[2]);
+}
+
+function sub(v1, v2) {
+ return new Array(v1[0] - v2[0], v1[1] - v2[1], v1[2] - v2[2]);
+}
+
+function scalev(v1, v2) {
+ return new Array(v1[0] * v2[0], v1[1] * v2[1], v1[2] * v2[2]);
+}
+
+function dot(v1, v2) {
+ return v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
+}
+
+function scale(v, scale) {
+ return [v[0] * scale, v[1] * scale, v[2] * scale];
+}
+
+function cross(v1, v2) {
+ return [v1[1] * v2[2] - v1[2] * v2[1],
+ v1[2] * v2[0] - v1[0] * v2[2],
+ v1[0] * v2[1] - v1[1] * v2[0]];
+
+}
+
+function normalise(v) {
+ var len = lengthVector(v);
+ return [v[0] / len, v[1] / len, v[2] / len];
+}
+
+function transformMatrix(self, v) {
+ var vals = self;
+ var x = vals[0] * v[0] + vals[1] * v[1] + vals[2] * v[2] + vals[3];
+ var y = vals[4] * v[0] + vals[5] * v[1] + vals[6] * v[2] + vals[7];
+ var z = vals[8] * v[0] + vals[9] * v[1] + vals[10] * v[2] + vals[11];
+ return [x, y, z];
+}
+
+function invertMatrix(self) {
+ var temp = new Array(16);
+ var tx = -self[3];
+ var ty = -self[7];
+ var tz = -self[11];
+ for (h = 0; h < 3; h++)
+ for (v = 0; v < 3; v++)
+ temp[h + v * 4] = self[v + h * 4];
+ for (i = 0; i < 11; i++)
+ self[i] = temp[i];
+ self[3] = tx * self[0] + ty * self[1] + tz * self[2];
+ self[7] = tx * self[4] + ty * self[5] + tz * self[6];
+ self[11] = tx * self[8] + ty * self[9] + tz * self[10];
+ return self;
+}
+
+
+// Triangle intersection using barycentric coord method
+function Triangle(p1, p2, p3) {
+ var edge1 = sub(p3, p1);
+ var edge2 = sub(p2, p1);
+ var normal = cross(edge1, edge2);
+ if (Math.abs(normal[0]) > Math.abs(normal[1]))
+ if (Math.abs(normal[0]) > Math.abs(normal[2]))
+ this.axis = 0;
+ else
+ this.axis = 2;
+ else
+ if (Math.abs(normal[1]) > Math.abs(normal[2]))
+ this.axis = 1;
+ else
+ this.axis = 2;
+ var u = (this.axis + 1) % 3;
+ var v = (this.axis + 2) % 3;
+ var u1 = edge1[u];
+ var v1 = edge1[v];
+
+ var u2 = edge2[u];
+ var v2 = edge2[v];
+ this.normal = normalise(normal);
+ this.nu = normal[u] / normal[this.axis];
+ this.nv = normal[v] / normal[this.axis];
+ this.nd = dot(normal, p1) / normal[this.axis];
+ var det = u1 * v2 - v1 * u2;
+ this.eu = p1[u];
+ this.ev = p1[v];
+ this.nu1 = u1 / det;
+ this.nv1 = -v1 / det;
+ this.nu2 = v2 / det;
+ this.nv2 = -u2 / det;
+ this.material = [0.7, 0.7, 0.7];
+}
+
+Triangle.prototype.intersect = function(orig, dir, near, far) {
+ var u = (this.axis + 1) % 3;
+ var v = (this.axis + 2) % 3;
+ var d = dir[this.axis] + this.nu * dir[u] + this.nv * dir[v];
+ var t = (this.nd - orig[this.axis] - this.nu * orig[u] - this.nv * orig[v]) / d;
+ if (t < near || t > far)
+ return null;
+ var Pu = orig[u] + t * dir[u] - this.eu;
+ var Pv = orig[v] + t * dir[v] - this.ev;
+ var a2 = Pv * this.nu1 + Pu * this.nv1;
+ if (a2 < 0)
+ return null;
+ var a3 = Pu * this.nu2 + Pv * this.nv2;
+ if (a3 < 0)
+ return null;
+
+ if ((a2 + a3) > 1)
+ return null;
+ return t;
+}
+
+function Scene(a_triangles) {
+ this.triangles = a_triangles;
+ this.lights = [];
+ this.ambient = [0,0,0];
+ this.background = [0.8,0.8,1];
+}
+var zero = new Array(0,0,0);
+
+Scene.prototype.intersect = function(origin, dir, near, far) {
+ var closest = null;
+ for (i = 0; i < this.triangles.length; i++) {
+ var triangle = this.triangles[i];
+ var d = triangle.intersect(origin, dir, near, far);
+ if (d == null || d > far || d < near)
+ continue;
+ far = d;
+ closest = triangle;
+ }
+
+ if (!closest)
+ return [this.background[0],this.background[1],this.background[2]];
+
+ var normal = closest.normal;
+ var hit = add(origin, scale(dir, far));
+ if (dot(dir, normal) > 0)
+ normal = [-normal[0], -normal[1], -normal[2]];
+
+ var colour = null;
+ if (closest.shader) {
+ colour = closest.shader(closest, hit, dir);
+ } else {
+ colour = closest.material;
+ }
+
+ // do reflection
+ var reflected = null;
+ if (colour.reflection > 0.001) {
+ var reflection = addVector(scale(normal, -2*dot(dir, normal)), dir);
+ reflected = this.intersect(hit, reflection, 0.0001, 1000000);
+ if (colour.reflection >= 0.999999)
+ return reflected;
+ }
+
+ var l = [this.ambient[0], this.ambient[1], this.ambient[2]];
+ for (var i = 0; i < this.lights.length; i++) {
+ var light = this.lights[i];
+ var toLight = sub(light, hit);
+ var distance = lengthVector(toLight);
+ scaleVector(toLight, 1.0/distance);
+ distance -= 0.0001;
+ if (this.blocked(hit, toLight, distance))
+ continue;
+ var nl = dot(normal, toLight);
+ if (nl > 0)
+ addVector(l, scale(light.colour, nl));
+ }
+ l = scalev(l, colour);
+ if (reflected) {
+ l = addVector(scaleVector(l, 1 - colour.reflection), scaleVector(reflected, colour.reflection));
+ }
+ return l;
+}
+
+Scene.prototype.blocked = function(O, D, far) {
+ var near = 0.0001;
+ var closest = null;
+ for (i = 0; i < this.triangles.length; i++) {
+ var triangle = this.triangles[i];
+ var d = triangle.intersect(O, D, near, far);
+ if (d == null || d > far || d < near)
+ continue;
+ return true;
+ }
+
+ return false;
+}
+
+
+// this camera code is from notes i made ages ago, it is from *somewhere* -- i cannot remember where
+// that somewhere is
+function Camera(origin, lookat, up) {
+ var zaxis = normaliseVector(subVector(lookat, origin));
+ var xaxis = normaliseVector(cross(up, zaxis));
+ var yaxis = normaliseVector(cross(xaxis, subVector([0,0,0], zaxis)));
+ var m = new Array(16);
+ m[0] = xaxis[0]; m[1] = xaxis[1]; m[2] = xaxis[2];
+ m[4] = yaxis[0]; m[5] = yaxis[1]; m[6] = yaxis[2];
+ m[8] = zaxis[0]; m[9] = zaxis[1]; m[10] = zaxis[2];
+ invertMatrix(m);
+ m[3] = 0; m[7] = 0; m[11] = 0;
+ this.origin = origin;
+ this.directions = new Array(4);
+ this.directions[0] = normalise([-0.7, 0.7, 1]);
+ this.directions[1] = normalise([ 0.7, 0.7, 1]);
+ this.directions[2] = normalise([ 0.7, -0.7, 1]);
+ this.directions[3] = normalise([-0.7, -0.7, 1]);
+ this.directions[0] = transformMatrix(m, this.directions[0]);
+ this.directions[1] = transformMatrix(m, this.directions[1]);
+ this.directions[2] = transformMatrix(m, this.directions[2]);
+ this.directions[3] = transformMatrix(m, this.directions[3]);
+}
+
+Camera.prototype.generateRayPair = function(y) {
+ rays = new Array(new Object(), new Object());
+ rays[0].origin = this.origin;
+ rays[1].origin = this.origin;
+ rays[0].dir = addVector(scale(this.directions[0], y), scale(this.directions[3], 1 - y));
+ rays[1].dir = addVector(scale(this.directions[1], y), scale(this.directions[2], 1 - y));
+ return rays;
+}
+
+function renderRows(camera, scene, pixels, width, height, starty, stopy) {
+ for (var y = starty; y < stopy; y++) {
+ var rays = camera.generateRayPair(y / height);
+ for (var x = 0; x < width; x++) {
+ var xp = x / width;
+ var origin = addVector(scale(rays[0].origin, xp), scale(rays[1].origin, 1 - xp));
+ var dir = normaliseVector(addVector(scale(rays[0].dir, xp), scale(rays[1].dir, 1 - xp)));
+ var l = scene.intersect(origin, dir);
+ pixels[y][x] = l;
+ }
+ }
+}
+
+Camera.prototype.render = function(scene, pixels, width, height) {
+ var cam = this;
+ var row = 0;
+ renderRows(cam, scene, pixels, width, height, 0, height);
+}
+
+
+
+function raytraceScene()
+{
+ var startDate = new Date().getTime();
+ var numTriangles = 2 * 6;
+ var triangles = new Array();//numTriangles);
+ var tfl = createVector(-10, 10, -10);
+ var tfr = createVector( 10, 10, -10);
+ var tbl = createVector(-10, 10, 10);
+ var tbr = createVector( 10, 10, 10);
+ var bfl = createVector(-10, -10, -10);
+ var bfr = createVector( 10, -10, -10);
+ var bbl = createVector(-10, -10, 10);
+ var bbr = createVector( 10, -10, 10);
+
+ // cube!!!
+ // front
+ var i = 0;
+
+ triangles[i++] = new Triangle(tfl, tfr, bfr);
+ triangles[i++] = new Triangle(tfl, bfr, bfl);
+ // back
+ triangles[i++] = new Triangle(tbl, tbr, bbr);
+ triangles[i++] = new Triangle(tbl, bbr, bbl);
+ // triangles[i-1].material = [0.7,0.2,0.2];
+ // triangles[i-1].material.reflection = 0.8;
+ // left
+ triangles[i++] = new Triangle(tbl, tfl, bbl);
+ // triangles[i-1].reflection = 0.6;
+ triangles[i++] = new Triangle(tfl, bfl, bbl);
+ // triangles[i-1].reflection = 0.6;
+ // right
+ triangles[i++] = new Triangle(tbr, tfr, bbr);
+ triangles[i++] = new Triangle(tfr, bfr, bbr);
+ // top
+ triangles[i++] = new Triangle(tbl, tbr, tfr);
+ triangles[i++] = new Triangle(tbl, tfr, tfl);
+ // bottom
+ triangles[i++] = new Triangle(bbl, bbr, bfr);
+ triangles[i++] = new Triangle(bbl, bfr, bfl);
+
+ //Floor!!!!
+ var green = createVector(0.0, 0.4, 0.0);
+ var grey = createVector(0.4, 0.4, 0.4);
+ grey.reflection = 1.0;
+ var floorShader = function(tri, pos, view) {
+ var x = ((pos[0]/32) % 2 + 2) % 2;
+ var z = ((pos[2]/32 + 0.3) % 2 + 2) % 2;
+ if (x < 1 != z < 1) {
+ //in the real world we use the fresnel term...
+ // var angle = 1-dot(view, tri.normal);
+ // angle *= angle;
+ // angle *= angle;
+ // angle *= angle;
+ //grey.reflection = angle;
+ return grey;
+ } else
+ return green;
+ }
+ var ffl = createVector(-1000, -30, -1000);
+ var ffr = createVector( 1000, -30, -1000);
+ var fbl = createVector(-1000, -30, 1000);
+ var fbr = createVector( 1000, -30, 1000);
+ triangles[i++] = new Triangle(fbl, fbr, ffr);
+ triangles[i-1].shader = floorShader;
+ triangles[i++] = new Triangle(fbl, ffr, ffl);
+ triangles[i-1].shader = floorShader;
+
+ var _scene = new Scene(triangles);
+ _scene.lights[0] = createVector(20, 38, -22);
+ _scene.lights[0].colour = createVector(0.7, 0.3, 0.3);
+ _scene.lights[1] = createVector(-23, 40, 17);
+ _scene.lights[1].colour = createVector(0.7, 0.3, 0.3);
+ _scene.lights[2] = createVector(23, 20, 17);
+ _scene.lights[2].colour = createVector(0.7, 0.7, 0.7);
+ _scene.ambient = createVector(0.1, 0.1, 0.1);
+ // _scene.background = createVector(0.7, 0.7, 1.0);
+
+ var size = 30;
+ var pixels = new Array();
+ for (var y = 0; y < size; y++) {
+ pixels[y] = new Array();
+ for (var x = 0; x < size; x++) {
+ pixels[y][x] = 0;
+ }
+ }
+
+ var _camera = new Camera(createVector(-40, 40, 40), createVector(0, 0, 0), createVector(0, 1, 0));
+ _camera.render(_scene, pixels, size, size);
+
+ return pixels;
+}
+
+function arrayToCanvasCommands(pixels)
+{
+ var s = '<canvas id="renderCanvas" width="30px" height="30px"></canvas><scr' + 'ipt>\nvar pixels = [';
+ var size = 30;
+ for (var y = 0; y < size; y++) {
+ s += "[";
+ for (var x = 0; x < size; x++) {
+ s += "[" + pixels[y][x] + "],";
+ }
+ s+= "],";
+ }
+ s += '];\n var canvas = document.getElementById("renderCanvas").getContext("2d");\n\
+\n\
+\n\
+ var size = 30;\n\
+ canvas.fillStyle = "red";\n\
+ canvas.fillRect(0, 0, size, size);\n\
+ canvas.scale(1, -1);\n\
+ canvas.translate(0, -size);\n\
+\n\
+ if (!canvas.setFillColor)\n\
+ canvas.setFillColor = function(r, g, b, a) {\n\
+ this.fillStyle = "rgb("+[Math.floor(r * 255), Math.floor(g * 255), Math.floor(b * 255)]+")";\n\
+ }\n\
+\n\
+for (var y = 0; y < size; y++) {\n\
+ for (var x = 0; x < size; x++) {\n\
+ var l = pixels[y][x];\n\
+ canvas.setFillColor(l[0], l[1], l[2], 1);\n\
+ canvas.fillRect(x, y, 1, 1);\n\
+ }\n\
+}</scr' + 'ipt>';
+
+ return s;
+}
+
+testOutput = arrayToCanvasCommands(raytraceScene());
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/LIST b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/LIST
new file mode 100644
index 000000000..34cfac4f4
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/LIST
@@ -0,0 +1,26 @@
+3d-cube
+3d-morph
+3d-raytrace
+access-binary-trees
+access-fannkuch
+access-nbody
+access-nsieve
+bitops-3bit-bits-in-byte
+bitops-bits-in-byte
+bitops-bitwise-and
+bitops-nsieve-bits
+controlflow-recursive
+crypto-aes
+crypto-md5
+crypto-sha1
+date-format-tofte
+date-format-xparb
+math-cordic
+math-partial-sums
+math-spectral-norm
+regexp-dna
+string-base64
+string-fasta
+string-tagcloud
+string-unpack-code
+string-validate-input
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-binary-trees.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-binary-trees.js
new file mode 100644
index 000000000..2f24e7db1
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-binary-trees.js
@@ -0,0 +1,50 @@
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+function TreeNode(left,right,item){
+ this.left = left;
+ this.right = right;
+ this.item = item;
+}
+
+TreeNode.prototype.itemCheck = function(){
+ if (this.left==null) return this.item;
+ else return this.item + this.left.itemCheck() - this.right.itemCheck();
+}
+
+function bottomUpTree(item,depth){
+ if (depth>0){
+ return new TreeNode(
+ bottomUpTree(2*item-1, depth-1)
+ ,bottomUpTree(2*item, depth-1)
+ ,item
+ );
+ }
+ else {
+ return new TreeNode(null,null,item);
+ }
+}
+
+var ret;
+
+for ( var n = 4; n <= 7; n += 1 ) {
+ var minDepth = 4;
+ var maxDepth = Math.max(minDepth + 2, n);
+ var stretchDepth = maxDepth + 1;
+
+ var check = bottomUpTree(0,stretchDepth).itemCheck();
+
+ var longLivedTree = bottomUpTree(0,maxDepth);
+ for (var depth=minDepth; depth<=maxDepth; depth+=2){
+ var iterations = 1 << (maxDepth - depth + minDepth);
+
+ check = 0;
+ for (var i=1; i<=iterations; i++){
+ check += bottomUpTree(i,depth).itemCheck();
+ check += bottomUpTree(-i,depth).itemCheck();
+ }
+ }
+
+ ret = longLivedTree.itemCheck();
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-fannkuch.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-fannkuch.js
new file mode 100644
index 000000000..1ea87b494
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-fannkuch.js
@@ -0,0 +1,66 @@
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+function fannkuch(n) {
+ var check = 0;
+ var perm = Array(n);
+ var perm1 = Array(n);
+ var count = Array(n);
+ var maxPerm = Array(n);
+ var maxFlipsCount = 0;
+ var m = n - 1;
+
+ for (var i = 0; i < n; i++) perm1[i] = i;
+ var r = n;
+
+ while (true) {
+ // write-out the first 30 permutations
+ if (check < 30){
+ var s = "";
+ for(var i=0; i<n; i++) s += (perm1[i]+1).toString();
+ check++;
+ }
+
+ while (r != 1) { count[r - 1] = r; r--; }
+ if (!(perm1[0] == 0 || perm1[m] == m)) {
+ for (var i = 0; i < n; i++) perm[i] = perm1[i];
+
+ var flipsCount = 0;
+ var k;
+
+ while (!((k = perm[0]) == 0)) {
+ var k2 = (k + 1) >> 1;
+ for (var i = 0; i < k2; i++) {
+ var temp = perm[i]; perm[i] = perm[k - i]; perm[k - i] = temp;
+ }
+ flipsCount++;
+ }
+
+ if (flipsCount > maxFlipsCount) {
+ maxFlipsCount = flipsCount;
+ for (var i = 0; i < n; i++) maxPerm[i] = perm1[i];
+ }
+ }
+
+ while (true) {
+ if (r == n) return maxFlipsCount;
+ var perm0 = perm1[0];
+ var i = 0;
+ while (i < r) {
+ var j = i + 1;
+ perm1[i] = perm1[j];
+ i = j;
+ }
+ perm1[r] = perm0;
+
+ count[r] = count[r] - 1;
+ if (count[r] > 0) break;
+ r++;
+ }
+ }
+}
+
+var n = 8;
+var ret = fannkuch(n);
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-nbody.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-nbody.js
new file mode 100644
index 000000000..f0d080d12
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-nbody.js
@@ -0,0 +1,169 @@
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+var PI = 3.141592653589793;
+var SOLAR_MASS = 4 * PI * PI;
+var DAYS_PER_YEAR = 365.24;
+
+function Body(x,y,z,vx,vy,vz,mass){
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ this.vx = vx;
+ this.vy = vy;
+ this.vz = vz;
+ this.mass = mass;
+}
+
+Body.prototype.offsetMomentum = function(px,py,pz) {
+ this.vx = -px / SOLAR_MASS;
+ this.vy = -py / SOLAR_MASS;
+ this.vz = -pz / SOLAR_MASS;
+ return this;
+}
+
+function Jupiter(){
+ return new Body(
+ 4.84143144246472090e+00,
+ -1.16032004402742839e+00,
+ -1.03622044471123109e-01,
+ 1.66007664274403694e-03 * DAYS_PER_YEAR,
+ 7.69901118419740425e-03 * DAYS_PER_YEAR,
+ -6.90460016972063023e-05 * DAYS_PER_YEAR,
+ 9.54791938424326609e-04 * SOLAR_MASS
+ );
+}
+
+function Saturn(){
+ return new Body(
+ 8.34336671824457987e+00,
+ 4.12479856412430479e+00,
+ -4.03523417114321381e-01,
+ -2.76742510726862411e-03 * DAYS_PER_YEAR,
+ 4.99852801234917238e-03 * DAYS_PER_YEAR,
+ 2.30417297573763929e-05 * DAYS_PER_YEAR,
+ 2.85885980666130812e-04 * SOLAR_MASS
+ );
+}
+
+function Uranus(){
+ return new Body(
+ 1.28943695621391310e+01,
+ -1.51111514016986312e+01,
+ -2.23307578892655734e-01,
+ 2.96460137564761618e-03 * DAYS_PER_YEAR,
+ 2.37847173959480950e-03 * DAYS_PER_YEAR,
+ -2.96589568540237556e-05 * DAYS_PER_YEAR,
+ 4.36624404335156298e-05 * SOLAR_MASS
+ );
+}
+
+function Neptune(){
+ return new Body(
+ 1.53796971148509165e+01,
+ -2.59193146099879641e+01,
+ 1.79258772950371181e-01,
+ 2.68067772490389322e-03 * DAYS_PER_YEAR,
+ 1.62824170038242295e-03 * DAYS_PER_YEAR,
+ -9.51592254519715870e-05 * DAYS_PER_YEAR,
+ 5.15138902046611451e-05 * SOLAR_MASS
+ );
+}
+
+function Sun(){
+ return new Body(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SOLAR_MASS);
+}
+
+
+function NBodySystem(bodies){
+ this.bodies = bodies;
+ var px = 0.0;
+ var py = 0.0;
+ var pz = 0.0;
+ var size = this.bodies.length;
+ for (var i=0; i<size; i++){
+ var b = this.bodies[i];
+ var m = b.mass;
+ px += b.vx * m;
+ py += b.vy * m;
+ pz += b.vz * m;
+ }
+ this.bodies[0].offsetMomentum(px,py,pz);
+}
+
+NBodySystem.prototype.advance = function(dt){
+ var dx, dy, dz, distance, mag;
+ var size = this.bodies.length;
+
+ for (var i=0; i<size; i++) {
+ var bodyi = this.bodies[i];
+ for (var j=i+1; j<size; j++) {
+ var bodyj = this.bodies[j];
+ dx = bodyi.x - bodyj.x;
+ dy = bodyi.y - bodyj.y;
+ dz = bodyi.z - bodyj.z;
+
+ distance = Math.sqrt(dx*dx + dy*dy + dz*dz);
+ mag = dt / (distance * distance * distance);
+
+ bodyi.vx -= dx * bodyj.mass * mag;
+ bodyi.vy -= dy * bodyj.mass * mag;
+ bodyi.vz -= dz * bodyj.mass * mag;
+
+ bodyj.vx += dx * bodyi.mass * mag;
+ bodyj.vy += dy * bodyi.mass * mag;
+ bodyj.vz += dz * bodyi.mass * mag;
+ }
+ }
+
+ for (var i=0; i<size; i++) {
+ var body = this.bodies[i];
+ body.x += dt * body.vx;
+ body.y += dt * body.vy;
+ body.z += dt * body.vz;
+ }
+}
+
+NBodySystem.prototype.energy = function(){
+ var dx, dy, dz, distance;
+ var e = 0.0;
+ var size = this.bodies.length;
+
+ for (var i=0; i<size; i++) {
+ var bodyi = this.bodies[i];
+
+ e += 0.5 * bodyi.mass *
+ ( bodyi.vx * bodyi.vx
+ + bodyi.vy * bodyi.vy
+ + bodyi.vz * bodyi.vz );
+
+ for (var j=i+1; j<size; j++) {
+ var bodyj = this.bodies[j];
+ dx = bodyi.x - bodyj.x;
+ dy = bodyi.y - bodyj.y;
+ dz = bodyi.z - bodyj.z;
+
+ distance = Math.sqrt(dx*dx + dy*dy + dz*dz);
+ e -= (bodyi.mass * bodyj.mass) / distance;
+ }
+ }
+ return e;
+}
+
+var ret;
+
+for ( var n = 3; n <= 24; n *= 2 ) {
+ (function(){
+ var bodies = new NBodySystem( Array(
+ Sun(),Jupiter(),Saturn(),Uranus(),Neptune()
+ ));
+ var max = n * 100;
+
+ ret = bodies.energy();
+ for (var i=0; i<max; i++){
+ bodies.advance(0.01);
+ }
+ ret = bodies.energy();
+ })();
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-nsieve.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-nsieve.js
new file mode 100644
index 000000000..70fdf1aaf
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/access-nsieve.js
@@ -0,0 +1,38 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// modified by Isaac Gouy
+
+function pad(number,width){
+ var s = number.toString();
+ var prefixWidth = width - s.length;
+ if (prefixWidth>0){
+ for (var i=1; i<=prefixWidth; i++) s = " " + s;
+ }
+ return s;
+}
+
+function nsieve(m, isPrime){
+ var i, k, count;
+
+ for (i=2; i<=m; i++) { isPrime[i] = true; }
+ count = 0;
+
+ for (i=2; i<=m; i++){
+ if (isPrime[i]) {
+ for (k=i+i; k<=m; k+=i) isPrime[k] = false;
+ count++;
+ }
+ }
+ return count;
+}
+
+function sieve() {
+ for (var i = 1; i <= 3; i++ ) {
+ var m = (1<<i)*10000;
+ var flags = Array(m+1);
+ nsieve(m, flags);
+ }
+}
+
+sieve();
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-3bit-bits-in-byte.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-3bit-bits-in-byte.js
new file mode 100644
index 000000000..1d8540680
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-3bit-bits-in-byte.js
@@ -0,0 +1,32 @@
+// Copyright (c) 2004 by Arthur Langereis (arthur_ext at domain xfinitegames, tld com
+
+// 1 op = 6 ANDs, 3 SHRs, 3 SHLs, 4 assigns, 2 ADDs
+// O(1)
+function fast3bitlookup(b) {
+var c, bi3b = 0xE994; // 0b1110 1001 1001 0100; // 3 2 2 1 2 1 1 0
+c = 3 & (bi3b >> ((b << 1) & 14));
+c += 3 & (bi3b >> ((b >> 2) & 14));
+c += 3 & (bi3b >> ((b >> 5) & 6));
+return c;
+
+/*
+lir4,0xE994; 9 instructions, no memory access, minimal register dependence, 6 shifts, 2 adds, 1 inline assign
+rlwinmr5,r3,1,28,30
+rlwinmr6,r3,30,28,30
+rlwinmr7,r3,27,29,30
+rlwnmr8,r4,r5,30,31
+rlwnmr9,r4,r6,30,31
+rlwnmr10,r4,r7,30,31
+addr3,r8,r9
+addr3,r3,r10
+*/
+}
+
+
+function TimeFunc(func) {
+var x, y, t;
+for(var x=0; x<500; x++)
+for(var y=0; y<256; y++) func(y);
+}
+
+TimeFunc(fast3bitlookup);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-bits-in-byte.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-bits-in-byte.js
new file mode 100644
index 000000000..9a3acd4f7
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-bits-in-byte.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2004 by Arthur Langereis (arthur_ext at domain xfinitegames, tld com)
+
+
+// 1 op = 2 assigns, 16 compare/branches, 8 ANDs, (0-8) ADDs, 8 SHLs
+// O(n)
+function bitsinbyte(b) {
+var m = 1, c = 0;
+while(m<0x100) {
+if(b & m) c++;
+m <<= 1;
+}
+return c;
+}
+
+function TimeFunc(func) {
+var x, y, t;
+for(var x=0; x<350; x++)
+for(var y=0; y<256; y++) func(y);
+}
+
+TimeFunc(bitsinbyte);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-bitwise-and.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-bitwise-and.js
new file mode 100644
index 000000000..7c80e696d
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-bitwise-and.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+bitwiseAndValue = 4294967296;
+for (var i = 0; i < 600000; i++)
+ bitwiseAndValue = bitwiseAndValue & i;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-nsieve-bits.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-nsieve-bits.js
new file mode 100644
index 000000000..6ef0ddb11
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/bitops-nsieve-bits.js
@@ -0,0 +1,32 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org
+//
+// Contributed by Ian Osgood
+
+function pad(n,width) {
+ var s = n.toString();
+ while (s.length < width) s = ' ' + s;
+ return s;
+}
+
+function primes(isPrime, n) {
+ var i, count = 0, m = 10000<<n, size = m+31>>5;
+
+ for (i=0; i<size; i++) isPrime[i] = 0xffffffff;
+
+ for (i=2; i<m; i++)
+ if (isPrime[i>>5] & 1<<(i&31)) {
+ for (var j=i+i; j<m; j+=i)
+ isPrime[j>>5] &= ~(1<<(j&31));
+ count++;
+ }
+}
+
+function sieve() {
+ for (var i = 4; i <= 4; i++) {
+ var isPrime = new Array((10000<<i)+31>>5);
+ primes(isPrime, i);
+ }
+}
+
+sieve();
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/controlflow-recursive.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/controlflow-recursive.js
new file mode 100644
index 000000000..fcfe1c40e
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/controlflow-recursive.js
@@ -0,0 +1,25 @@
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+// contributed by Isaac Gouy
+
+function ack(m,n){
+ if (m==0) { return n+1; }
+ if (n==0) { return ack(m-1,1); }
+ return ack(m-1, ack(m,n-1) );
+}
+
+function fib(n) {
+ if (n < 2){ return 1; }
+ return fib(n-2) + fib(n-1);
+}
+
+function tak(x,y,z) {
+ if (y >= x) return z;
+ return tak(tak(x-1,y,z), tak(y-1,z,x), tak(z-1,x,y));
+}
+
+for ( var i = 3; i <= 5; i++ ) {
+ ack(3,i);
+ fib(17.0+i);
+ tak(3*i+3,2*i+2,i+1);
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-aes.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-aes.js
new file mode 100644
index 000000000..93a596935
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-aes.js
@@ -0,0 +1,422 @@
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * AES Cipher function: encrypt 'input' with Rijndael algorithm
+ *
+ * takes byte-array 'input' (16 bytes)
+ * 2D byte-array key schedule 'w' (Nr+1 x Nb bytes)
+ *
+ * applies Nr rounds (10/12/14) using key schedule w for 'add round key' stage
+ *
+ * returns byte-array encrypted value (16 bytes)
+ */
+function Cipher(input, w) { // main Cipher function [§5.1]
+ var Nb = 4; // block size (in words): no of columns in state (fixed at 4 for AES)
+ var Nr = w.length/Nb - 1; // no of rounds: 10/12/14 for 128/192/256-bit keys
+
+ var state = [[],[],[],[]]; // initialise 4xNb byte-array 'state' with input [§3.4]
+ for (var i=0; i<4*Nb; i++) state[i%4][Math.floor(i/4)] = input[i];
+
+ state = AddRoundKey(state, w, 0, Nb);
+
+ for (var round=1; round<Nr; round++) {
+ state = SubBytes(state, Nb);
+ state = ShiftRows(state, Nb);
+ state = MixColumns(state, Nb);
+ state = AddRoundKey(state, w, round, Nb);
+ }
+
+ state = SubBytes(state, Nb);
+ state = ShiftRows(state, Nb);
+ state = AddRoundKey(state, w, Nr, Nb);
+
+ var output = new Array(4*Nb); // convert state to 1-d array before returning [§3.4]
+ for (var i=0; i<4*Nb; i++) output[i] = state[i%4][Math.floor(i/4)];
+ return output;
+}
+
+
+function SubBytes(s, Nb) { // apply SBox to state S [§5.1.1]
+ for (var r=0; r<4; r++) {
+ for (var c=0; c<Nb; c++) s[r][c] = Sbox[s[r][c]];
+ }
+ return s;
+}
+
+
+function ShiftRows(s, Nb) { // shift row r of state S left by r bytes [§5.1.2]
+ var t = new Array(4);
+ for (var r=1; r<4; r++) {
+ for (var c=0; c<4; c++) t[c] = s[r][(c+r)%Nb]; // shift into temp copy
+ for (var c=0; c<4; c++) s[r][c] = t[c]; // and copy back
+ } // note that this will work for Nb=4,5,6, but not 7,8 (always 4 for AES):
+ return s; // see fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.311.pdf
+}
+
+
+function MixColumns(s, Nb) { // combine bytes of each col of state S [§5.1.3]
+ for (var c=0; c<4; c++) {
+ var a = new Array(4); // 'a' is a copy of the current column from 's'
+ var b = new Array(4); // 'b' is a•{02} in GF(2^8)
+ for (var i=0; i<4; i++) {
+ a[i] = s[i][c];
+ b[i] = s[i][c]&0x80 ? s[i][c]<<1 ^ 0x011b : s[i][c]<<1;
+ }
+ // a[n] ^ b[n] is a•{03} in GF(2^8)
+ s[0][c] = b[0] ^ a[1] ^ b[1] ^ a[2] ^ a[3]; // 2*a0 + 3*a1 + a2 + a3
+ s[1][c] = a[0] ^ b[1] ^ a[2] ^ b[2] ^ a[3]; // a0 * 2*a1 + 3*a2 + a3
+ s[2][c] = a[0] ^ a[1] ^ b[2] ^ a[3] ^ b[3]; // a0 + a1 + 2*a2 + 3*a3
+ s[3][c] = a[0] ^ b[0] ^ a[1] ^ a[2] ^ b[3]; // 3*a0 + a1 + a2 + 2*a3
+ }
+ return s;
+}
+
+
+function AddRoundKey(state, w, rnd, Nb) { // xor Round Key into state S [§5.1.4]
+ for (var r=0; r<4; r++) {
+ for (var c=0; c<Nb; c++) state[r][c] ^= w[rnd*4+c][r];
+ }
+ return state;
+}
+
+
+function KeyExpansion(key) { // generate Key Schedule (byte-array Nr+1 x Nb) from Key [§5.2]
+ var Nb = 4; // block size (in words): no of columns in state (fixed at 4 for AES)
+ var Nk = key.length/4 // key length (in words): 4/6/8 for 128/192/256-bit keys
+ var Nr = Nk + 6; // no of rounds: 10/12/14 for 128/192/256-bit keys
+
+ var w = new Array(Nb*(Nr+1));
+ var temp = new Array(4);
+
+ for (var i=0; i<Nk; i++) {
+ var r = [key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]];
+ w[i] = r;
+ }
+
+ for (var i=Nk; i<(Nb*(Nr+1)); i++) {
+ w[i] = new Array(4);
+ for (var t=0; t<4; t++) temp[t] = w[i-1][t];
+ if (i % Nk == 0) {
+ temp = SubWord(RotWord(temp));
+ for (var t=0; t<4; t++) temp[t] ^= Rcon[i/Nk][t];
+ } else if (Nk > 6 && i%Nk == 4) {
+ temp = SubWord(temp);
+ }
+ for (var t=0; t<4; t++) w[i][t] = w[i-Nk][t] ^ temp[t];
+ }
+
+ return w;
+}
+
+function SubWord(w) { // apply SBox to 4-byte word w
+ for (var i=0; i<4; i++) w[i] = Sbox[w[i]];
+ return w;
+}
+
+function RotWord(w) { // rotate 4-byte word w left by one byte
+ w[4] = w[0];
+ for (var i=0; i<4; i++) w[i] = w[i+1];
+ return w;
+}
+
+
+// Sbox is pre-computed multiplicative inverse in GF(2^8) used in SubBytes and KeyExpansion [§5.1.1]
+var Sbox = [0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,
+ 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,
+ 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,
+ 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,
+ 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,
+ 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,
+ 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,
+ 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,
+ 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,
+ 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,
+ 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,
+ 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,
+ 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,
+ 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,
+ 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,
+ 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16];
+
+// Rcon is Round Constant used for the Key Expansion [1st col is 2^(r-1) in GF(2^8)] [§5.2]
+var Rcon = [ [0x00, 0x00, 0x00, 0x00],
+ [0x01, 0x00, 0x00, 0x00],
+ [0x02, 0x00, 0x00, 0x00],
+ [0x04, 0x00, 0x00, 0x00],
+ [0x08, 0x00, 0x00, 0x00],
+ [0x10, 0x00, 0x00, 0x00],
+ [0x20, 0x00, 0x00, 0x00],
+ [0x40, 0x00, 0x00, 0x00],
+ [0x80, 0x00, 0x00, 0x00],
+ [0x1b, 0x00, 0x00, 0x00],
+ [0x36, 0x00, 0x00, 0x00] ];
+
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * Use AES to encrypt 'plaintext' with 'password' using 'nBits' key, in 'Counter' mode of operation
+ * - see http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
+ * for each block
+ * - outputblock = cipher(counter, key)
+ * - cipherblock = plaintext xor outputblock
+ */
+function AESEncryptCtr(plaintext, password, nBits) {
+ if (!(nBits==128 || nBits==192 || nBits==256)) return ''; // standard allows 128/192/256 bit keys
+
+ // for this example script, generate the key by applying Cipher to 1st 16/24/32 chars of password;
+ // for real-world applications, a more secure approach would be to hash the password e.g. with SHA-1
+ var nBytes = nBits/8; // no bytes in key
+ var pwBytes = new Array(nBytes);
+ for (var i=0; i<nBytes; i++) pwBytes[i] = password.charCodeAt(i) & 0xff;
+ var key = Cipher(pwBytes, KeyExpansion(pwBytes));
+ key = key.concat(key.slice(0, nBytes-16)); // key is now 16/24/32 bytes long
+
+ // initialise counter block (NIST SP800-38A §B.2): millisecond time-stamp for nonce in 1st 8 bytes,
+ // block counter in 2nd 8 bytes
+ var blockSize = 16; // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var counterBlock = new Array(blockSize); // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var nonce = (new Date()).getTime(); // milliseconds since 1-Jan-1970
+
+ // encode nonce in two stages to cater for JavaScript 32-bit limit on bitwise ops
+ for (var i=0; i<4; i++) counterBlock[i] = (nonce >>> i*8) & 0xff;
+ for (var i=0; i<4; i++) counterBlock[i+4] = (nonce/0x100000000 >>> i*8) & 0xff;
+
+ // generate key schedule - an expansion of the key into distinct Key Rounds for each round
+ var keySchedule = KeyExpansion(key);
+
+ var blockCount = Math.ceil(plaintext.length/blockSize);
+ var ciphertext = new Array(blockCount); // ciphertext as array of strings
+
+ for (var b=0; b<blockCount; b++) {
+ // set counter (block #) in last 8 bytes of counter block (leaving nonce in 1st 8 bytes)
+ // again done in two stages for 32-bit ops
+ for (var c=0; c<4; c++) counterBlock[15-c] = (b >>> c*8) & 0xff;
+ for (var c=0; c<4; c++) counterBlock[15-c-4] = (b/0x100000000 >>> c*8)
+
+ var cipherCntr = Cipher(counterBlock, keySchedule); // -- encrypt counter block --
+
+ // calculate length of final block:
+ var blockLength = b<blockCount-1 ? blockSize : (plaintext.length-1)%blockSize+1;
+
+ var ct = '';
+ for (var i=0; i<blockLength; i++) { // -- xor plaintext with ciphered counter byte-by-byte --
+ var plaintextByte = plaintext.charCodeAt(b*blockSize+i);
+ var cipherByte = plaintextByte ^ cipherCntr[i];
+ ct += String.fromCharCode(cipherByte);
+ }
+ // ct is now ciphertext for this block
+
+ ciphertext[b] = escCtrlChars(ct); // escape troublesome characters in ciphertext
+ }
+
+ // convert the nonce to a string to go on the front of the ciphertext
+ var ctrTxt = '';
+ for (var i=0; i<8; i++) ctrTxt += String.fromCharCode(counterBlock[i]);
+ ctrTxt = escCtrlChars(ctrTxt);
+
+ // use '-' to separate blocks, use Array.join to concatenate arrays of strings for efficiency
+ return ctrTxt + '-' + ciphertext.join('-');
+}
+
+
+/*
+ * Use AES to decrypt 'ciphertext' with 'password' using 'nBits' key, in Counter mode of operation
+ *
+ * for each block
+ * - outputblock = cipher(counter, key)
+ * - cipherblock = plaintext xor outputblock
+ */
+function AESDecryptCtr(ciphertext, password, nBits) {
+ if (!(nBits==128 || nBits==192 || nBits==256)) return ''; // standard allows 128/192/256 bit keys
+
+ var nBytes = nBits/8; // no bytes in key
+ var pwBytes = new Array(nBytes);
+ for (var i=0; i<nBytes; i++) pwBytes[i] = password.charCodeAt(i) & 0xff;
+ var pwKeySchedule = KeyExpansion(pwBytes);
+ var key = Cipher(pwBytes, pwKeySchedule);
+ key = key.concat(key.slice(0, nBytes-16)); // key is now 16/24/32 bytes long
+
+ var keySchedule = KeyExpansion(key);
+
+ ciphertext = ciphertext.split('-'); // split ciphertext into array of block-length strings
+
+ // recover nonce from 1st element of ciphertext
+ var blockSize = 16; // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var counterBlock = new Array(blockSize);
+ var ctrTxt = unescCtrlChars(ciphertext[0]);
+ for (var i=0; i<8; i++) counterBlock[i] = ctrTxt.charCodeAt(i);
+
+ var plaintext = new Array(ciphertext.length-1);
+
+ for (var b=1; b<ciphertext.length; b++) {
+ // set counter (block #) in last 8 bytes of counter block (leaving nonce in 1st 8 bytes)
+ for (var c=0; c<4; c++) counterBlock[15-c] = ((b-1) >>> c*8) & 0xff;
+ for (var c=0; c<4; c++) counterBlock[15-c-4] = ((b/0x100000000-1) >>> c*8) & 0xff;
+
+ var cipherCntr = Cipher(counterBlock, keySchedule); // encrypt counter block
+
+ ciphertext[b] = unescCtrlChars(ciphertext[b]);
+
+ var pt = '';
+ for (var i=0; i<ciphertext[b].length; i++) {
+ // -- xor plaintext with ciphered counter byte-by-byte --
+ var ciphertextByte = ciphertext[b].charCodeAt(i);
+ var plaintextByte = ciphertextByte ^ cipherCntr[i];
+ pt += String.fromCharCode(plaintextByte);
+ }
+ // pt is now plaintext for this block
+
+ plaintext[b-1] = pt; // b-1 'cos no initial nonce block in plaintext
+ }
+
+ return plaintext.join('');
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+function escCtrlChars(str) { // escape control chars which might cause problems handling ciphertext
+ return str.replace(/[\0\t\n\v\f\r\xa0'"!-]/g, function(c) { return '!' + c.charCodeAt(0) + '!'; });
+} // \xa0 to cater for bug in Firefox; include '-' to leave it free for use as a block marker
+
+function unescCtrlChars(str) { // unescape potentially problematic control characters
+ return str.replace(/!\d\d?\d?!/g, function(c) { return String.fromCharCode(c.slice(1,-1)); });
+}
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * if escCtrlChars()/unescCtrlChars() still gives problems, use encodeBase64()/decodeBase64() instead
+ */
+var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+
+function encodeBase64(str) { // http://tools.ietf.org/html/rfc4648
+ var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
+
+ str = encodeUTF8(str); // encode multi-byte chars into UTF-8 for byte-array
+
+ do { // pack three octets into four hexets
+ o1 = str.charCodeAt(i++);
+ o2 = str.charCodeAt(i++);
+ o3 = str.charCodeAt(i++);
+
+ bits = o1<<16 | o2<<8 | o3;
+
+ h1 = bits>>18 & 0x3f;
+ h2 = bits>>12 & 0x3f;
+ h3 = bits>>6 & 0x3f;
+ h4 = bits & 0x3f;
+
+ // end of string? index to '=' in b64
+ if (isNaN(o3)) h4 = 64;
+ if (isNaN(o2)) h3 = 64;
+
+ // use hexets to index into b64, and append result to encoded string
+ enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
+ } while (i < str.length);
+
+ return enc;
+}
+
+function decodeBase64(str) {
+ var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
+
+ do { // unpack four hexets into three octets using index points in b64
+ h1 = b64.indexOf(str.charAt(i++));
+ h2 = b64.indexOf(str.charAt(i++));
+ h3 = b64.indexOf(str.charAt(i++));
+ h4 = b64.indexOf(str.charAt(i++));
+
+ bits = h1<<18 | h2<<12 | h3<<6 | h4;
+
+ o1 = bits>>16 & 0xff;
+ o2 = bits>>8 & 0xff;
+ o3 = bits & 0xff;
+
+ if (h3 == 64) enc += String.fromCharCode(o1);
+ else if (h4 == 64) enc += String.fromCharCode(o1, o2);
+ else enc += String.fromCharCode(o1, o2, o3);
+ } while (i < str.length);
+
+ return decodeUTF8(enc); // decode UTF-8 byte-array back to Unicode
+}
+
+function encodeUTF8(str) { // encode multi-byte string into utf-8 multiple single-byte characters
+ str = str.replace(
+ /[\u0080-\u07ff]/g, // U+0080 - U+07FF = 2-byte chars
+ function(c) {
+ var cc = c.charCodeAt(0);
+ return String.fromCharCode(0xc0 | cc>>6, 0x80 | cc&0x3f); }
+ );
+ str = str.replace(
+ /[\u0800-\uffff]/g, // U+0800 - U+FFFF = 3-byte chars
+ function(c) {
+ var cc = c.charCodeAt(0);
+ return String.fromCharCode(0xe0 | cc>>12, 0x80 | cc>>6&0x3F, 0x80 | cc&0x3f); }
+ );
+ return str;
+}
+
+function decodeUTF8(str) { // decode utf-8 encoded string back into multi-byte characters
+ str = str.replace(
+ /[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars
+ function(c) {
+ var cc = (c.charCodeAt(0)&0x1f)<<6 | c.charCodeAt(1)&0x3f;
+ return String.fromCharCode(cc); }
+ );
+ str = str.replace(
+ /[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars
+ function(c) {
+ var cc = (c.charCodeAt(0)&0x0f)<<12 | (c.charCodeAt(1)&0x3f<<6) | c.charCodeAt(2)&0x3f;
+ return String.fromCharCode(cc); }
+ );
+ return str;
+}
+
+
+function byteArrayToHexStr(b) { // convert byte array to hex string for displaying test vectors
+ var s = '';
+ for (var i=0; i<b.length; i++) s += b[i].toString(16) + ' ';
+ return s;
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+
+var plainText = "ROMEO: But, soft! what light through yonder window breaks?\n\
+It is the east, and Juliet is the sun.\n\
+Arise, fair sun, and kill the envious moon,\n\
+Who is already sick and pale with grief,\n\
+That thou her maid art far more fair than she:\n\
+Be not her maid, since she is envious;\n\
+Her vestal livery is but sick and green\n\
+And none but fools do wear it; cast it off.\n\
+It is my lady, O, it is my love!\n\
+O, that she knew she were!\n\
+She speaks yet she says nothing: what of that?\n\
+Her eye discourses; I will answer it.\n\
+I am too bold, 'tis not to me she speaks:\n\
+Two of the fairest stars in all the heaven,\n\
+Having some business, do entreat her eyes\n\
+To twinkle in their spheres till they return.\n\
+What if her eyes were there, they in her head?\n\
+The brightness of her cheek would shame those stars,\n\
+As daylight doth a lamp; her eyes in heaven\n\
+Would through the airy region stream so bright\n\
+That birds would sing and think it were not night.\n\
+See, how she leans her cheek upon her hand!\n\
+O, that I were a glove upon that hand,\n\
+That I might touch that cheek!\n\
+JULIET: Ay me!\n\
+ROMEO: She speaks:\n\
+O, speak again, bright angel! for thou art\n\
+As glorious to this night, being o'er my head\n\
+As is a winged messenger of heaven\n\
+Unto the white-upturned wondering eyes\n\
+Of mortals that fall back to gaze on him\n\
+When he bestrides the lazy-pacing clouds\n\
+And sails upon the bosom of the air.";
+
+var password = "O Romeo, Romeo! wherefore art thou Romeo?";
+
+var cipherText = AESEncryptCtr(plainText, password, 256);
+var decryptedText = AESDecryptCtr(cipherText, password, 256);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-md5.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-md5.js
new file mode 100644
index 000000000..cc7a89653
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-md5.js
@@ -0,0 +1,286 @@
+/*
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+ * Digest Algorithm, as defined in RFC 1321.
+ * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for more info.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
+function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
+function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
+function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
+function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
+function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function md5_vm_test()
+{
+ return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
+}
+
+/*
+ * Calculate the MD5 of an array of little-endian words, and a bit length
+ */
+function core_md5(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << ((len) % 32);
+ x[(((len + 64) >>> 9) << 4) + 14] = len;
+
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+
+ a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
+ d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
+ c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
+ b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
+ a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
+ d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
+ c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
+ b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
+ a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
+ d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
+ c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
+ b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
+ a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
+ d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
+ c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
+ b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
+
+ a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
+ d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
+ c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
+ b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
+ a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
+ d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
+ c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
+ b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
+ a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
+ d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
+ c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
+ b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
+ a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
+ d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
+ c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
+ b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
+
+ a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
+ d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
+ c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
+ b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
+ a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
+ d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
+ c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
+ b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
+ a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
+ d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
+ c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
+ b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
+ a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
+ d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
+ c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
+ b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
+
+ a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
+ d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
+ c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
+ b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
+ a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
+ d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
+ c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
+ b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
+ a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
+ d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
+ c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
+ b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
+ a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
+ d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
+ c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
+ b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ }
+ return Array(a, b, c, d);
+
+}
+
+/*
+ * These functions implement the four basic operations the algorithm uses.
+ */
+function md5_cmn(q, a, b, x, s, t)
+{
+ return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
+}
+function md5_ff(a, b, c, d, x, s, t)
+{
+ return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
+}
+function md5_gg(a, b, c, d, x, s, t)
+{
+ return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
+}
+function md5_hh(a, b, c, d, x, s, t)
+{
+ return md5_cmn(b ^ c ^ d, a, b, x, s, t);
+}
+function md5_ii(a, b, c, d, x, s, t)
+{
+ return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
+}
+
+/*
+ * Calculate the HMAC-MD5, of a key and some data
+ */
+function core_hmac_md5(key, data)
+{
+ var bkey = str2binl(key);
+ if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
+ return core_md5(opad.concat(hash), 512 + 128);
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function bit_rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+ * Convert a string to an array of little-endian words
+ * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
+ */
+function str2binl(str)
+{
+ var bin = Array();
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < str.length * chrsz; i += chrsz)
+ bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
+ return bin;
+}
+
+/*
+ * Convert an array of little-endian words to a string
+ */
+function binl2str(bin)
+{
+ var str = "";
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < bin.length * 32; i += chrsz)
+ str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
+ return str;
+}
+
+/*
+ * Convert an array of little-endian words to a hex string.
+ */
+function binl2hex(binarray)
+{
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i++)
+ {
+ str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
+ hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
+ }
+ return str;
+}
+
+/*
+ * Convert an array of little-endian words to a base-64 string
+ */
+function binl2b64(binarray)
+{
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i += 3)
+ {
+ var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
+ | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
+ | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+ else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+ }
+ }
+ return str;
+}
+
+var plainText = "Rebellious subjects, enemies to peace,\n\
+Profaners of this neighbour-stained steel,--\n\
+Will they not hear? What, ho! you men, you beasts,\n\
+That quench the fire of your pernicious rage\n\
+With purple fountains issuing from your veins,\n\
+On pain of torture, from those bloody hands\n\
+Throw your mistemper'd weapons to the ground,\n\
+And hear the sentence of your moved prince.\n\
+Three civil brawls, bred of an airy word,\n\
+By thee, old Capulet, and Montague,\n\
+Have thrice disturb'd the quiet of our streets,\n\
+And made Verona's ancient citizens\n\
+Cast by their grave beseeming ornaments,\n\
+To wield old partisans, in hands as old,\n\
+Canker'd with peace, to part your canker'd hate:\n\
+If ever you disturb our streets again,\n\
+Your lives shall pay the forfeit of the peace.\n\
+For this time, all the rest depart away:\n\
+You Capulet; shall go along with me:\n\
+And, Montague, come you this afternoon,\n\
+To know our further pleasure in this case,\n\
+To old Free-town, our common judgment-place.\n\
+Once more, on pain of death, all men depart."
+
+for (var i = 0; i <4; i++) {
+ plainText += plainText;
+}
+
+var md5Output = hex_md5(plainText);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-sha1.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-sha1.js
new file mode 100644
index 000000000..ca8d901a1
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/crypto-sha1.js
@@ -0,0 +1,224 @@
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
+ * in FIPS PUB 180-1
+ * Version 2.1a Copyright Paul Johnston 2000 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length * chrsz));}
+function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length * chrsz));}
+function str_sha1(s){return binb2str(core_sha1(str2binb(s),s.length * chrsz));}
+function hex_hmac_sha1(key, data){ return binb2hex(core_hmac_sha1(key, data));}
+function b64_hmac_sha1(key, data){ return binb2b64(core_hmac_sha1(key, data));}
+function str_hmac_sha1(key, data){ return binb2str(core_hmac_sha1(key, data));}
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function sha1_vm_test()
+{
+ return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d";
+}
+
+/*
+ * Calculate the SHA-1 of an array of big-endian words, and a bit length
+ */
+function core_sha1(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << (24 - len % 32);
+ x[((len + 64 >> 9) << 4) + 15] = len;
+
+ var w = Array(80);
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+ var e = -1009589776;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+ var olde = e;
+
+ for(var j = 0; j < 80; j++)
+ {
+ if(j < 16) w[j] = x[i + j];
+ else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
+ var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)),
+ safe_add(safe_add(e, w[j]), sha1_kt(j)));
+ e = d;
+ d = c;
+ c = rol(b, 30);
+ b = a;
+ a = t;
+ }
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ e = safe_add(e, olde);
+ }
+ return Array(a, b, c, d, e);
+
+}
+
+/*
+ * Perform the appropriate triplet combination function for the current
+ * iteration
+ */
+function sha1_ft(t, b, c, d)
+{
+ if(t < 20) return (b & c) | ((~b) & d);
+ if(t < 40) return b ^ c ^ d;
+ if(t < 60) return (b & c) | (b & d) | (c & d);
+ return b ^ c ^ d;
+}
+
+/*
+ * Determine the appropriate additive constant for the current iteration
+ */
+function sha1_kt(t)
+{
+ return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
+ (t < 60) ? -1894007588 : -899497514;
+}
+
+/*
+ * Calculate the HMAC-SHA1 of a key and some data
+ */
+function core_hmac_sha1(key, data)
+{
+ var bkey = str2binb(key);
+ if(bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz);
+ return core_sha1(opad.concat(hash), 512 + 160);
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+ * Convert an 8-bit or 16-bit string to an array of big-endian words
+ * In 8-bit function, characters >255 have their hi-byte silently ignored.
+ */
+function str2binb(str)
+{
+ var bin = Array();
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < str.length * chrsz; i += chrsz)
+ bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i%32);
+ return bin;
+}
+
+/*
+ * Convert an array of big-endian words to a string
+ */
+function binb2str(bin)
+{
+ var str = "";
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < bin.length * 32; i += chrsz)
+ str += String.fromCharCode((bin[i>>5] >>> (32 - chrsz - i%32)) & mask);
+ return str;
+}
+
+/*
+ * Convert an array of big-endian words to a hex string.
+ */
+function binb2hex(binarray)
+{
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i++)
+ {
+ str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
+ hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF);
+ }
+ return str;
+}
+
+/*
+ * Convert an array of big-endian words to a base-64 string
+ */
+function binb2b64(binarray)
+{
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i += 3)
+ {
+ var triplet = (((binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16)
+ | (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 )
+ | ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+ else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+ }
+ }
+ return str;
+}
+
+
+var plainText = "Two households, both alike in dignity,\n\
+In fair Verona, where we lay our scene,\n\
+From ancient grudge break to new mutiny,\n\
+Where civil blood makes civil hands unclean.\n\
+From forth the fatal loins of these two foes\n\
+A pair of star-cross'd lovers take their life;\n\
+Whole misadventured piteous overthrows\n\
+Do with their death bury their parents' strife.\n\
+The fearful passage of their death-mark'd love,\n\
+And the continuance of their parents' rage,\n\
+Which, but their children's end, nought could remove,\n\
+Is now the two hours' traffic of our stage;\n\
+The which if you with patient ears attend,\n\
+What here shall miss, our toil shall strive to mend.";
+
+for (var i = 0; i <4; i++) {
+ plainText += plainText;
+}
+
+var sha1Output = hex_sha1(plainText);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/date-format-tofte.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/date-format-tofte.js
new file mode 100644
index 000000000..66e2cef87
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/date-format-tofte.js
@@ -0,0 +1,299 @@
+function arrayExists(array, x) {
+ for (var i = 0; i < array.length; i++) {
+ if (array[i] == x) return true;
+ }
+ return false;
+}
+
+Date.prototype.formatDate = function (input,time) {
+ // formatDate :
+ // a PHP date like function, for formatting date strings
+ // See: http://www.php.net/date
+ //
+ // input : format string
+ // time : epoch time (seconds, and optional)
+ //
+ // if time is not passed, formatting is based on
+ // the current "this" date object's set time.
+ //
+ // supported:
+ // a, A, B, d, D, F, g, G, h, H, i, j, l (lowercase L), L,
+ // m, M, n, O, r, s, S, t, U, w, W, y, Y, z
+ //
+ // unsupported:
+ // I (capital i), T, Z
+
+ var switches = ["a", "A", "B", "d", "D", "F", "g", "G", "h", "H",
+ "i", "j", "l", "L", "m", "M", "n", "O", "r", "s",
+ "S", "t", "U", "w", "W", "y", "Y", "z"];
+ var daysLong = ["Sunday", "Monday", "Tuesday", "Wednesday",
+ "Thursday", "Friday", "Saturday"];
+ var daysShort = ["Sun", "Mon", "Tue", "Wed",
+ "Thu", "Fri", "Sat"];
+ var monthsShort = ["Jan", "Feb", "Mar", "Apr",
+ "May", "Jun", "Jul", "Aug", "Sep",
+ "Oct", "Nov", "Dec"];
+ var monthsLong = ["January", "February", "March", "April",
+ "May", "June", "July", "August", "September",
+ "October", "November", "December"];
+ var daysSuffix = ["st", "nd", "rd", "th", "th", "th", "th", // 1st - 7th
+ "th", "th", "th", "th", "th", "th", "th", // 8th - 14th
+ "th", "th", "th", "th", "th", "th", "st", // 15th - 21st
+ "nd", "rd", "th", "th", "th", "th", "th", // 22nd - 28th
+ "th", "th", "st"]; // 29th - 31st
+
+ function a() {
+ // Lowercase Ante meridiem and Post meridiem
+ return self.getHours() > 11? "pm" : "am";
+ }
+ function A() {
+ // Uppercase Ante meridiem and Post meridiem
+ return self.getHours() > 11? "PM" : "AM";
+ }
+
+ function B(){
+ // Swatch internet time. code simply grabbed from ppk,
+ // since I was feeling lazy:
+ // http://www.xs4all.nl/~ppk/js/beat.html
+ var off = (self.getTimezoneOffset() + 60)*60;
+ var theSeconds = (self.getHours() * 3600) +
+ (self.getMinutes() * 60) +
+ self.getSeconds() + off;
+ var beat = Math.floor(theSeconds/86.4);
+ if (beat > 1000) beat -= 1000;
+ if (beat < 0) beat += 1000;
+ if ((""+beat).length == 1) beat = "00"+beat;
+ if ((""+beat).length == 2) beat = "0"+beat;
+ return beat;
+ }
+
+ function d() {
+ // Day of the month, 2 digits with leading zeros
+ return new String(self.getDate()).length == 1?
+ "0"+self.getDate() : self.getDate();
+ }
+ function D() {
+ // A textual representation of a day, three letters
+ return daysShort[self.getDay()];
+ }
+ function F() {
+ // A full textual representation of a month
+ return monthsLong[self.getMonth()];
+ }
+ function g() {
+ // 12-hour format of an hour without leading zeros
+ return self.getHours() > 12? self.getHours()-12 : self.getHours();
+ }
+ function G() {
+ // 24-hour format of an hour without leading zeros
+ return self.getHours();
+ }
+ function h() {
+ // 12-hour format of an hour with leading zeros
+ if (self.getHours() > 12) {
+ var s = new String(self.getHours()-12);
+ return s.length == 1?
+ "0"+ (self.getHours()-12) : self.getHours()-12;
+ } else {
+ var s = new String(self.getHours());
+ return s.length == 1?
+ "0"+self.getHours() : self.getHours();
+ }
+ }
+ function H() {
+ // 24-hour format of an hour with leading zeros
+ return new String(self.getHours()).length == 1?
+ "0"+self.getHours() : self.getHours();
+ }
+ function i() {
+ // Minutes with leading zeros
+ return new String(self.getMinutes()).length == 1?
+ "0"+self.getMinutes() : self.getMinutes();
+ }
+ function j() {
+ // Day of the month without leading zeros
+ return self.getDate();
+ }
+ function l() {
+ // A full textual representation of the day of the week
+ return daysLong[self.getDay()];
+ }
+ function L() {
+ // leap year or not. 1 if leap year, 0 if not.
+ // the logic should match iso's 8601 standard.
+ var y_ = Y();
+ if (
+ (y_ % 4 == 0 && y_ % 100 != 0) ||
+ (y_ % 4 == 0 && y_ % 100 == 0 && y_ % 400 == 0)
+ ) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ function m() {
+ // Numeric representation of a month, with leading zeros
+ return self.getMonth() < 9?
+ "0"+(self.getMonth()+1) :
+ self.getMonth()+1;
+ }
+ function M() {
+ // A short textual representation of a month, three letters
+ return monthsShort[self.getMonth()];
+ }
+ function n() {
+ // Numeric representation of a month, without leading zeros
+ return self.getMonth()+1;
+ }
+ function O() {
+ // Difference to Greenwich time (GMT) in hours
+ var os = Math.abs(self.getTimezoneOffset());
+ var h = ""+Math.floor(os/60);
+ var m = ""+(os%60);
+ h.length == 1? h = "0"+h:1;
+ m.length == 1? m = "0"+m:1;
+ return self.getTimezoneOffset() < 0 ? "+"+h+m : "-"+h+m;
+ }
+ function r() {
+ // RFC 822 formatted date
+ var r; // result
+ // Thu , 21 Dec 2000
+ r = D() + ", " + j() + " " + M() + " " + Y() +
+ // 16 : 01 : 07 +0200
+ " " + H() + ":" + i() + ":" + s() + " " + O();
+ return r;
+ }
+ function S() {
+ // English ordinal suffix for the day of the month, 2 characters
+ return daysSuffix[self.getDate()-1];
+ }
+ function s() {
+ // Seconds, with leading zeros
+ return new String(self.getSeconds()).length == 1?
+ "0"+self.getSeconds() : self.getSeconds();
+ }
+ function t() {
+
+ // thanks to Matt Bannon for some much needed code-fixes here!
+ var daysinmonths = [null,31,28,31,30,31,30,31,31,30,31,30,31];
+ if (L()==1 && n()==2) return 29; // leap day
+ return daysinmonths[n()];
+ }
+ function U() {
+ // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
+ return Math.round(self.getTime()/1000);
+ }
+ function W() {
+ // Weeknumber, as per ISO specification:
+ // http://www.cl.cam.ac.uk/~mgk25/iso-time.html
+
+ // if the day is three days before newyears eve,
+ // there's a chance it's "week 1" of next year.
+ // here we check for that.
+ var beforeNY = 364+L() - z();
+ var afterNY = z();
+ var weekday = w()!=0?w()-1:6; // makes sunday (0), into 6.
+ if (beforeNY <= 2 && weekday <= 2-beforeNY) {
+ return 1;
+ }
+ // similarly, if the day is within threedays of newyears
+ // there's a chance it belongs in the old year.
+ var ny = new Date("January 1 " + Y() + " 00:00:00");
+ var nyDay = ny.getDay()!=0?ny.getDay()-1:6;
+ if (
+ (afterNY <= 2) &&
+ (nyDay >=4) &&
+ (afterNY >= (6-nyDay))
+ ) {
+ // Since I'm not sure we can just always return 53,
+ // i call the function here again, using the last day
+ // of the previous year, as the date, and then just
+ // return that week.
+ var prevNY = new Date("December 31 " + (Y()-1) + " 00:00:00");
+ return prevNY.formatDate("W");
+ }
+
+ // week 1, is the week that has the first thursday in it.
+ // note that this value is not zero index.
+ if (nyDay <= 3) {
+ // first day of the year fell on a thursday, or earlier.
+ return 1 + Math.floor( ( z() + nyDay ) / 7 );
+ } else {
+ // first day of the year fell on a friday, or later.
+ return 1 + Math.floor( ( z() - ( 7 - nyDay ) ) / 7 );
+ }
+ }
+ function w() {
+ // Numeric representation of the day of the week
+ return self.getDay();
+ }
+
+ function Y() {
+ // A full numeric representation of a year, 4 digits
+
+ // we first check, if getFullYear is supported. if it
+ // is, we just use that. ppks code is nice, but wont
+ // work with dates outside 1900-2038, or something like that
+ if (self.getFullYear) {
+ var newDate = new Date("January 1 2001 00:00:00 +0000");
+ var x = newDate .getFullYear();
+ if (x == 2001) {
+ // i trust the method now
+ return self.getFullYear();
+ }
+ }
+ // else, do this:
+ // codes thanks to ppk:
+ // http://www.xs4all.nl/~ppk/js/introdate.html
+ var x = self.getYear();
+ var y = x % 100;
+ y += (y < 38) ? 2000 : 1900;
+ return y;
+ }
+ function y() {
+ // A two-digit representation of a year
+ var y = Y()+"";
+ return y.substring(y.length-2,y.length);
+ }
+ function z() {
+ // The day of the year, zero indexed! 0 through 366
+ var t = new Date("January 1 " + Y() + " 00:00:00");
+ var diff = self.getTime() - t.getTime();
+ return Math.floor(diff/1000/60/60/24);
+ }
+
+ var self = this;
+ if (time) {
+ // save time
+ var prevTime = self.getTime();
+ self.setTime(time);
+ }
+
+ var ia = input.split("");
+ var ij = 0;
+ while (ia[ij]) {
+ if (ia[ij] == "\\") {
+ // this is our way of allowing users to escape stuff
+ ia.splice(ij,1);
+ } else {
+ if (arrayExists(switches,ia[ij])) {
+ ia[ij] = eval(ia[ij] + "()");
+ }
+ }
+ ij++;
+ }
+ // reset time, back to what it was
+ if (prevTime) {
+ self.setTime(prevTime);
+ }
+ return ia.join("");
+}
+
+var date = new Date("1/1/2007 1:11:11");
+
+for (i = 0; i < 500; ++i) {
+ var shortFormat = date.formatDate("Y-m-d");
+ var longFormat = date.formatDate("l, F d, Y g:i:s A");
+ date.setTime(date.getTime() + 84266956);
+}
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/date-format-xparb.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/date-format-xparb.js
new file mode 100644
index 000000000..1f0955649
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/date-format-xparb.js
@@ -0,0 +1,417 @@
+/*
+ * Copyright (C) 2004 Baron Schwartz <baron at sequent dot org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation, version 2.1.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ */
+
+Date.parseFunctions = {count:0};
+Date.parseRegexes = [];
+Date.formatFunctions = {count:0};
+
+Date.prototype.dateFormat = function(format) {
+ if (Date.formatFunctions[format] == null) {
+ Date.createNewFormat(format);
+ }
+ var func = Date.formatFunctions[format];
+ return this[func]();
+}
+
+Date.createNewFormat = function(format) {
+ var funcName = "format" + Date.formatFunctions.count++;
+ Date.formatFunctions[format] = funcName;
+ var code = "Date.prototype." + funcName + " = function(){return ";
+ var special = false;
+ var ch = '';
+ for (var i = 0; i < format.length; ++i) {
+ ch = format.charAt(i);
+ if (!special && ch == "\\") {
+ special = true;
+ }
+ else if (special) {
+ special = false;
+ code += "'" + String.escape(ch) + "' + ";
+ }
+ else {
+ code += Date.getFormatCode(ch);
+ }
+ }
+ eval(code.substring(0, code.length - 3) + ";}");
+}
+
+Date.getFormatCode = function(character) {
+ switch (character) {
+ case "d":
+ return "String.leftPad(this.getDate(), 2, '0') + ";
+ case "D":
+ return "Date.dayNames[this.getDay()].substring(0, 3) + ";
+ case "j":
+ return "this.getDate() + ";
+ case "l":
+ return "Date.dayNames[this.getDay()] + ";
+ case "S":
+ return "this.getSuffix() + ";
+ case "w":
+ return "this.getDay() + ";
+ case "z":
+ return "this.getDayOfYear() + ";
+ case "W":
+ return "this.getWeekOfYear() + ";
+ case "F":
+ return "Date.monthNames[this.getMonth()] + ";
+ case "m":
+ return "String.leftPad(this.getMonth() + 1, 2, '0') + ";
+ case "M":
+ return "Date.monthNames[this.getMonth()].substring(0, 3) + ";
+ case "n":
+ return "(this.getMonth() + 1) + ";
+ case "t":
+ return "this.getDaysInMonth() + ";
+ case "L":
+ return "(this.isLeapYear() ? 1 : 0) + ";
+ case "Y":
+ return "this.getFullYear() + ";
+ case "y":
+ return "('' + this.getFullYear()).substring(2, 4) + ";
+ case "a":
+ return "(this.getHours() < 12 ? 'am' : 'pm') + ";
+ case "A":
+ return "(this.getHours() < 12 ? 'AM' : 'PM') + ";
+ case "g":
+ return "((this.getHours() %12) ? this.getHours() % 12 : 12) + ";
+ case "G":
+ return "this.getHours() + ";
+ case "h":
+ return "String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";
+ case "H":
+ return "String.leftPad(this.getHours(), 2, '0') + ";
+ case "i":
+ return "String.leftPad(this.getMinutes(), 2, '0') + ";
+ case "s":
+ return "String.leftPad(this.getSeconds(), 2, '0') + ";
+ case "O":
+ return "this.getGMTOffset() + ";
+ case "T":
+ return "this.getTimezone() + ";
+ case "Z":
+ return "(this.getTimezoneOffset() * -60) + ";
+ default:
+ return "'" + String.escape(character) + "' + ";
+ }
+}
+
+Date.parseDate = function(input, format) {
+ if (Date.parseFunctions[format] == null) {
+ Date.createParser(format);
+ }
+ var func = Date.parseFunctions[format];
+ return Date[func](input);
+}
+
+Date.createParser = function(format) {
+ var funcName = "parse" + Date.parseFunctions.count++;
+ var regexNum = Date.parseRegexes.length;
+ var currentGroup = 1;
+ Date.parseFunctions[format] = funcName;
+
+ var code = "Date." + funcName + " = function(input){\n"
+ + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1;\n"
+ + "var d = new Date();\n"
+ + "y = d.getFullYear();\n"
+ + "m = d.getMonth();\n"
+ + "d = d.getDate();\n"
+ + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n"
+ + "if (results && results.length > 0) {"
+ var regex = "";
+
+ var special = false;
+ var ch = '';
+ for (var i = 0; i < format.length; ++i) {
+ ch = format.charAt(i);
+ if (!special && ch == "\\") {
+ special = true;
+ }
+ else if (special) {
+ special = false;
+ regex += String.escape(ch);
+ }
+ else {
+ obj = Date.formatCodeToRegex(ch, currentGroup);
+ currentGroup += obj.g;
+ regex += obj.s;
+ if (obj.g && obj.c) {
+ code += obj.c;
+ }
+ }
+ }
+
+ code += "if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"
+ + "{return new Date(y, m, d, h, i, s);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"
+ + "{return new Date(y, m, d, h, i);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n"
+ + "{return new Date(y, m, d, h);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0)\n"
+ + "{return new Date(y, m, d);}\n"
+ + "else if (y > 0 && m >= 0)\n"
+ + "{return new Date(y, m);}\n"
+ + "else if (y > 0)\n"
+ + "{return new Date(y);}\n"
+ + "}return null;}";
+
+ Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$");
+ eval(code);
+}
+
+Date.formatCodeToRegex = function(character, currentGroup) {
+ switch (character) {
+ case "D":
+ return {g:0,
+ c:null,
+ s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};
+ case "j":
+ case "d":
+ return {g:1,
+ c:"d = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{1,2})"};
+ case "l":
+ return {g:0,
+ c:null,
+ s:"(?:" + Date.dayNames.join("|") + ")"};
+ case "S":
+ return {g:0,
+ c:null,
+ s:"(?:st|nd|rd|th)"};
+ case "w":
+ return {g:0,
+ c:null,
+ s:"\\d"};
+ case "z":
+ return {g:0,
+ c:null,
+ s:"(?:\\d{1,3})"};
+ case "W":
+ return {g:0,
+ c:null,
+ s:"(?:\\d{2})"};
+ case "F":
+ return {g:1,
+ c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "].substring(0, 3)], 10);\n",
+ s:"(" + Date.monthNames.join("|") + ")"};
+ case "M":
+ return {g:1,
+ c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "]], 10);\n",
+ s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};
+ case "n":
+ case "m":
+ return {g:1,
+ c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n",
+ s:"(\\d{1,2})"};
+ case "t":
+ return {g:0,
+ c:null,
+ s:"\\d{1,2}"};
+ case "L":
+ return {g:0,
+ c:null,
+ s:"(?:1|0)"};
+ case "Y":
+ return {g:1,
+ c:"y = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{4})"};
+ case "y":
+ return {g:1,
+ c:"var ty = parseInt(results[" + currentGroup + "], 10);\n"
+ + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",
+ s:"(\\d{1,2})"};
+ case "a":
+ return {g:1,
+ c:"if (results[" + currentGroup + "] == 'am') {\n"
+ + "if (h == 12) { h = 0; }\n"
+ + "} else { if (h < 12) { h += 12; }}",
+ s:"(am|pm)"};
+ case "A":
+ return {g:1,
+ c:"if (results[" + currentGroup + "] == 'AM') {\n"
+ + "if (h == 12) { h = 0; }\n"
+ + "} else { if (h < 12) { h += 12; }}",
+ s:"(AM|PM)"};
+ case "g":
+ case "G":
+ case "h":
+ case "H":
+ return {g:1,
+ c:"h = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{1,2})"};
+ case "i":
+ return {g:1,
+ c:"i = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{2})"};
+ case "s":
+ return {g:1,
+ c:"s = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{2})"};
+ case "O":
+ return {g:0,
+ c:null,
+ s:"[+-]\\d{4}"};
+ case "T":
+ return {g:0,
+ c:null,
+ s:"[A-Z]{3}"};
+ case "Z":
+ return {g:0,
+ c:null,
+ s:"[+-]\\d{1,5}"};
+ default:
+ return {g:0,
+ c:null,
+ s:String.escape(character)};
+ }
+}
+
+Date.prototype.getTimezone = function() {
+ return this.toString().replace(
+ /^.*? ([A-Z]{3}) [0-9]{4}.*$/, "$1").replace(
+ /^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, "$1$2$3");
+}
+
+Date.prototype.getGMTOffset = function() {
+ return (this.getTimezoneOffset() > 0 ? "-" : "+")
+ + String.leftPad(Math.floor(this.getTimezoneOffset() / 60), 2, "0")
+ + String.leftPad(this.getTimezoneOffset() % 60, 2, "0");
+}
+
+Date.prototype.getDayOfYear = function() {
+ var num = 0;
+ Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
+ for (var i = 0; i < this.getMonth(); ++i) {
+ num += Date.daysInMonth[i];
+ }
+ return num + this.getDate() - 1;
+}
+
+Date.prototype.getWeekOfYear = function() {
+ // Skip to Thursday of this week
+ var now = this.getDayOfYear() + (4 - this.getDay());
+ // Find the first Thursday of the year
+ var jan1 = new Date(this.getFullYear(), 0, 1);
+ var then = (7 - jan1.getDay() + 4);
+ document.write(then);
+ return String.leftPad(((now - then) / 7) + 1, 2, "0");
+}
+
+Date.prototype.isLeapYear = function() {
+ var year = this.getFullYear();
+ return ((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year)));
+}
+
+Date.prototype.getFirstDayOfMonth = function() {
+ var day = (this.getDay() - (this.getDate() - 1)) % 7;
+ return (day < 0) ? (day + 7) : day;
+}
+
+Date.prototype.getLastDayOfMonth = function() {
+ var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7;
+ return (day < 0) ? (day + 7) : day;
+}
+
+Date.prototype.getDaysInMonth = function() {
+ Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
+ return Date.daysInMonth[this.getMonth()];
+}
+
+Date.prototype.getSuffix = function() {
+ switch (this.getDate()) {
+ case 1:
+ case 21:
+ case 31:
+ return "st";
+ case 2:
+ case 22:
+ return "nd";
+ case 3:
+ case 23:
+ return "rd";
+ default:
+ return "th";
+ }
+}
+
+String.escape = function(string) {
+ return string.replace(/('|\\)/g, "\\$1");
+}
+
+String.leftPad = function (val, size, ch) {
+ var result = new String(val);
+ if (ch == null) {
+ ch = " ";
+ }
+ while (result.length < size) {
+ result = ch + result;
+ }
+ return result;
+}
+
+Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
+Date.monthNames =
+ ["January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December"];
+Date.dayNames =
+ ["Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"];
+Date.y2kYear = 50;
+Date.monthNumbers = {
+ Jan:0,
+ Feb:1,
+ Mar:2,
+ Apr:3,
+ May:4,
+ Jun:5,
+ Jul:6,
+ Aug:7,
+ Sep:8,
+ Oct:9,
+ Nov:10,
+ Dec:11};
+Date.patterns = {
+ ISO8601LongPattern:"Y-m-d H:i:s",
+ ISO8601ShortPattern:"Y-m-d",
+ ShortDatePattern: "n/j/Y",
+ LongDatePattern: "l, F d, Y",
+ FullDateTimePattern: "l, F d, Y g:i:s A",
+ MonthDayPattern: "F d",
+ ShortTimePattern: "g:i A",
+ LongTimePattern: "g:i:s A",
+ SortableDateTimePattern: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTimePattern: "Y-m-d H:i:sO",
+ YearMonthPattern: "F, Y"};
+
+var date = new Date("1/1/2007 1:11:11");
+
+for (i = 0; i < 4000; ++i) {
+ var shortFormat = date.dateFormat("Y-m-d");
+ var longFormat = date.dateFormat("l, F d, Y g:i:s A");
+ date.setTime(date.getTime() + 84266956);
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-cordic.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-cordic.js
new file mode 100644
index 000000000..4d3833b1e
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-cordic.js
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) Rich Moore. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/////. Start CORDIC
+
+var AG_CONST = 0.6072529350;
+
+function FIXED(X)
+{
+ return X * 65536.0;
+}
+
+function FLOAT(X)
+{
+ return X / 65536.0;
+}
+
+function DEG2RAD(X)
+{
+ return 0.017453 * (X);
+}
+
+var Angles = [
+ FIXED(45.0), FIXED(26.565), FIXED(14.0362), FIXED(7.12502),
+ FIXED(3.57633), FIXED(1.78991), FIXED(0.895174), FIXED(0.447614),
+ FIXED(0.223811), FIXED(0.111906), FIXED(0.055953),
+ FIXED(0.027977)
+ ];
+
+
+function cordicsincos() {
+ var X;
+ var Y;
+ var TargetAngle;
+ var CurrAngle;
+ var Step;
+
+ X = FIXED(AG_CONST); /* AG_CONST * cos(0) */
+ Y = 0; /* AG_CONST * sin(0) */
+
+ TargetAngle = FIXED(28.027);
+ CurrAngle = 0;
+ for (Step = 0; Step < 12; Step++) {
+ var NewX;
+ if (TargetAngle > CurrAngle) {
+ NewX = X - (Y >> Step);
+ Y = (X >> Step) + Y;
+ X = NewX;
+ CurrAngle += Angles[Step];
+ } else {
+ NewX = X + (Y >> Step);
+ Y = -(X >> Step) + Y;
+ X = NewX;
+ CurrAngle -= Angles[Step];
+ }
+ }
+}
+
+///// End CORDIC
+
+function cordic( runs ) {
+ var start = new Date();
+
+ for ( var i = 0 ; i < runs ; i++ ) {
+ cordicsincos();
+ }
+
+ var end = new Date();
+
+ return end.getTime() - start.getTime();
+}
+
+cordic(25000);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-partial-sums.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-partial-sums.js
new file mode 100644
index 000000000..d082d7994
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-partial-sums.js
@@ -0,0 +1,33 @@
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+// contributed by Isaac Gouy
+
+function partial(n){
+ var a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0.0;
+ var twothirds = 2.0/3.0;
+ var alt = -1.0;
+ var k2 = k3 = sk = ck = 0.0;
+
+ for (var k = 1; k <= n; k++){
+ k2 = k*k;
+ k3 = k2*k;
+ sk = Math.sin(k);
+ ck = Math.cos(k);
+ alt = -alt;
+
+ a1 += Math.pow(twothirds,k-1);
+ a2 += Math.pow(k,-0.5);
+ a3 += 1.0/(k*(k+1.0));
+ a4 += 1.0/(k3 * sk*sk);
+ a5 += 1.0/(k3 * ck*ck);
+ a6 += 1.0/k;
+ a7 += 1.0/k2;
+ a8 += alt/k;
+ a9 += alt/(2*k -1);
+ }
+}
+
+for (var i = 1024; i <= 16384; i *= 2) {
+ partial(i);
+}
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-spectral-norm.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-spectral-norm.js
new file mode 100644
index 000000000..8139ef370
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-spectral-norm.js
@@ -0,0 +1,51 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// contributed by Ian Osgood
+
+function A(i,j) {
+ return 1/((i+j)*(i+j+1)/2+i+1);
+}
+
+function Au(u,v) {
+ for (var i=0; i<u.length; ++i) {
+ var t = 0;
+ for (var j=0; j<u.length; ++j)
+ t += A(i,j) * u[j];
+ v[i] = t;
+ }
+}
+
+function Atu(u,v) {
+ for (var i=0; i<u.length; ++i) {
+ var t = 0;
+ for (var j=0; j<u.length; ++j)
+ t += A(j,i) * u[j];
+ v[i] = t;
+ }
+}
+
+function AtAu(u,v,w) {
+ Au(u,w);
+ Atu(w,v);
+}
+
+function spectralnorm(n) {
+ var i, u=[], v=[], w=[], vv=0, vBv=0;
+ for (i=0; i<n; ++i) {
+ u[i] = 1; v[i] = w[i] = 0;
+ }
+ for (i=0; i<10; ++i) {
+ AtAu(u,v,w);
+ AtAu(v,u,w);
+ }
+ for (i=0; i<n; ++i) {
+ vBv += u[i]*v[i];
+ vv += v[i]*v[i];
+ }
+ return Math.sqrt(vBv/vv);
+}
+
+for (var i = 6; i <= 48; i *= 2) {
+ spectralnorm(i);
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/regexp-dna.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/regexp-dna.js
new file mode 100644
index 000000000..b500e68ad
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/regexp-dna.js
@@ -0,0 +1,1712 @@
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// contributed by Jesse Millikan
+// Base on the Ruby version by jose fco. gonzalez
+
+var l;
+var dnaInput = ">ONE Homo sapiens alu\n\
+GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n\
+TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n\
+AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n\
+GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n\
+CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n\
+GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n\
+GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n\
+TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n\
+AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n\
+GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n\
+AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n\
+AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n\
+GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n\
+CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n\
+AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n\
+TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n\
+TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n\
+GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n\
+TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n\
+CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n\
+CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n\
+TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n\
+CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n\
+AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n\
+GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n\
+TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n\
+TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n\
+GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n\
+GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n\
+ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n\
+TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n\
+CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n\
+CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n\
+GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n\
+CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n\
+GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n\
+GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n\
+GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n\
+GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n\
+GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n\
+AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n\
+CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n\
+GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n\
+AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n\
+GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n\
+ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n\
+GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC\n\
+GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC\n\
+GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG\n\
+TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA\n\
+AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG\n\
+GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT\n\
+CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC\n\
+TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG\n\
+ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC\n\
+GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA\n\
+ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA\n\
+CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA\n\
+CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA\n\
+ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG\n\
+CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG\n\
+AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC\n\
+CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG\n\
+AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC\n\
+CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG\n\
+CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG\n\
+CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG\n\
+CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC\n\
+ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA\n\
+AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC\n\
+TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC\n\
+ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG\n\
+CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG\n\
+AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT\n\
+AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA\n\
+TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC\n\
+CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA\n\
+TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG\n\
+CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT\n\
+GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG\n\
+GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG\n\
+CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG\n\
+GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG\n\
+GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT\n\
+AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT\n\
+GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT\n\
+CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG\n\
+GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC\n\
+TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT\n\
+CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG\n\
+ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG\n\
+CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG\n\
+AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA\n\
+CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG\n\
+CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC\n\
+ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC\n\
+GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC\n\
+GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG\n\
+GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT\n\
+TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG\n\
+CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA\n\
+GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG\n\
+CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC\n\
+GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG\n\
+CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA\n\
+CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG\n\
+CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA\n\
+ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC\n\
+CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT\n\
+GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA\n\
+AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG\n\
+ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC\n\
+TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA\n\
+GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC\n\
+GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG\n\
+TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC\n\
+AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA\n\
+ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA\n\
+GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\n\
+AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG\n\
+TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC\n\
+CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT\n\
+GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC\n\
+CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA\n\
+GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT\n\
+TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC\n\
+ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC\n\
+TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG\n\
+GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG\n\
+TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG\n\
+GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC\n\
+GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT\n\
+ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC\n\
+GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC\n\
+GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC\n\
+CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA\n\
+ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG\n\
+AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC\n\
+TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT\n\
+CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG\n\
+TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG\n\
+CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC\n\
+GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT\n\
+GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC\n\
+CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC\n\
+TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG\n\
+CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\n\
+AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG\n\
+AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG\n\
+AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT\n\
+GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA\n\
+TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC\n\
+AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA\n\
+AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG\n\
+CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC\n\
+TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG\n\
+GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT\n\
+CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG\n\
+CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG\n\
+GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA\n\
+AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA\n\
+GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC\n\
+TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC\n\
+CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA\n\
+GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG\n\
+CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG\n\
+AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG\n\
+ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC\n\
+ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC\n\
+AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC\n\
+GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG\n\
+GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT\n\
+CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC\n\
+GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC\n\
+CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\n\
+GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA\n\
+GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG\n\
+GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT\n\
+CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA\n\
+AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG\n\
+CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC\n\
+CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG\n\
+GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG\n\
+GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT\n\
+TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA\n\
+ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG\n\
+CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA\n\
+ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA\n\
+GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG\n\
+TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC\n\
+GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA\n\
+GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT\n\
+GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT\n\
+GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG\n\
+TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT\n\
+TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC\n\
+TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC\n\
+GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT\n\
+CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC\n\
+TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA\n\
+GATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGG\n\
+GCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCT\n\
+GAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT\n\
+ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAG\n\
+GCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTG\n\
+CACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCA\n\
+CGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTT\n\
+CGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCC\n\
+GGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGC\n\
+TTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGG\n\
+GCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCC\n\
+AGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTG\n\
+GCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCG\n\
+CGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAG\n\
+GCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAG\n\
+ACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAG\n\
+GCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGA\n\
+AACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATC\n\
+CCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAG\n\
+TGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAA\n\
+AAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCG\n\
+GATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTA\n\
+CTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGG\n\
+AGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCG\n\
+CGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCG\n\
+GTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGT\n\
+CAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAA\n\
+AATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGG\n\
+AGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTC\n\
+CAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCT\n\
+GTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA\n\
+CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCG\n\
+TGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAA\n\
+CCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGAC\n\
+AGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCAC\n\
+TTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAA\n\
+CATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGC\n\
+CTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGA\n\
+GGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCC\n\
+GTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGA\n\
+GGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCC\n\
+CGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGC\n\
+TACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGC\n\
+CGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGC\n\
+CGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCA\n\
+CCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAA\n\
+AATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCT\n\
+GAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCA\n\
+CTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGC\n\
+TCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGA\n\
+GTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTA\n\
+GCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAAT\n\
+CGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCC\n\
+TGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAAT\n\
+CCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGC\n\
+CTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTG\n\
+GCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGG\n\
+GAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGC\n\
+GAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG\n\
+GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGG\n\
+TGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTA\n\
+ATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTG\n\
+CAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTC\n\
+AAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGG\n\
+GCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCT\n\
+CTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTC\n\
+GGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGA\n\
+TCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGC\n\
+GCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGA\n\
+GGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATAC\n\
+AAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGC\n\
+AGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCA\n\
+CTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACG\n\
+CCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCG\n\
+AGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGG\n\
+GCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTT\n\
+GAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGC\n\
+GACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAG\n\
+CACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGC\n\
+CAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCG\n\
+CGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGC\n\
+GGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGAC\n\
+TCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGC\n\
+CGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAA\n\
+CCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCC\n\
+AGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTG\n\
+AGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA\n\
+GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n\
+TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n\
+AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n\
+GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n\
+CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n\
+GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n\
+GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n\
+TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n\
+AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n\
+GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n\
+AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n\
+AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n\
+GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n\
+CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n\
+AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n\
+TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n\
+TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n\
+GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n\
+TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n\
+CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n\
+CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n\
+TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n\
+CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n\
+AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n\
+GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n\
+TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n\
+TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n\
+GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n\
+GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n\
+ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n\
+TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n\
+CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n\
+CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n\
+GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n\
+CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n\
+GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n\
+GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n\
+GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n\
+GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n\
+GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n\
+AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n\
+CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n\
+GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n\
+AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n\
+GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n\
+ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n\
+GAGGCTGAGGCAGGAGAATC\n\
+>TWO IUB ambiguity codes\n\
+cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg\n\
+tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa\n\
+NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt\n\
+cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga\n\
+gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa\n\
+HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca\n\
+tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt\n\
+tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt\n\
+acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct\n\
+tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt\n\
+gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa\n\
+accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt\n\
+RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt\n\
+tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag\n\
+cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg\n\
+ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat\n\
+actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg\n\
+YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa\n\
+KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata\n\
+aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa\n\
+aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg\n\
+gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc\n\
+tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK\n\
+tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt\n\
+ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg\n\
+ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa\n\
+BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt\n\
+aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc\n\
+tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc\n\
+cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac\n\
+aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga\n\
+tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga\n\
+aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD\n\
+gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg\n\
+ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV\n\
+taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa\n\
+ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat\n\
+gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg\n\
+gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa\n\
+tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt\n\
+tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt\n\
+taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca\n\
+cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag\n\
+aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt\n\
+cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt\n\
+ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW\n\
+attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag\n\
+ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa\n\
+attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc\n\
+tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta\n\
+aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata\n\
+cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc\n\
+gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg\n\
+attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca\n\
+BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga\n\
+DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat\n\
+tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM\n\
+tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR\n\
+tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg\n\
+taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc\n\
+aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc\n\
+DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa\n\
+VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt\n\
+agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat\n\
+gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt\n\
+tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt\n\
+catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt\n\
+tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR\n\
+aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat\n\
+aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac\n\
+acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS\n\
+tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga\n\
+aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM\n\
+acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt\n\
+RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt\n\
+RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta\n\
+tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac\n\
+gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt\n\
+YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc\n\
+ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt\n\
+ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat\n\
+gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta\n\
+KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD\n\
+aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg\n\
+gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH\n\
+taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact\n\
+VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV\n\
+NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa\n\
+MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag\n\
+cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata\n\
+ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg\n\
+tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN\n\
+aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc\n\
+actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg\n\
+tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga\n\
+gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa\n\
+BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca\n\
+aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata\n\
+aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat\n\
+YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt\n\
+aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW\n\
+cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata\n\
+tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata\n\
+tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt\n\
+MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac\n\
+taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta\n\
+tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS\n\
+RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc\n\
+agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata\n\
+NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa\n\
+gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata\n\
+aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt\n\
+ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW\n\
+cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt\n\
+tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa\n\
+RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt\n\
+tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD\n\
+gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc\n\
+tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta\n\
+ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM\n\
+tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc\n\
+ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc\n\
+BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt\n\
+gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga\n\
+acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag\n\
+gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc\n\
+taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat\n\
+acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta\n\
+tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt\n\
+catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa\n\
+tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB\n\
+atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR\n\
+ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta\n\
+ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta\n\
+cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK\n\
+SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW\n\
+VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc\n\
+BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct\n\
+NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt\n\
+tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa\n\
+ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa\n\
+cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa\n\
+VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR\n\
+atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac\n\
+aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc\n\
+tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac\n\
+RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag\n\
+gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc\n\
+tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact\n\
+attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc\n\
+atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga\n\
+cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt\n\
+NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR\n\
+ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat\n\
+cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg\n\
+aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac\n\
+agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR\n\
+tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga\n\
+ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg\n\
+ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa\n\
+tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag\n\
+taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg\n\
+tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN\n\
+YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt\n\
+ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa\n\
+tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat\n\
+ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg\n\
+attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt\n\
+atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW\n\
+YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta\n\
+gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV\n\
+MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta\n\
+tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt\n\
+ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa\n\
+aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa\n\
+BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM\n\
+tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK\n\
+StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV\n\
+cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN\n\
+atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg\n\
+atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg\n\
+ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct\n\
+gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM\n\
+tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD\n\
+BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc\n\
+agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga\n\
+HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR\n\
+tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt\n\
+aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa\n\
+catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB\n\
+aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat\n\
+tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt\n\
+cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag\n\
+DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat\n\
+gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta\n\
+tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM\n\
+atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc\n\
+KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt\n\
+tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata\n\
+tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK\n\
+taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt\n\
+NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa\n\
+HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa\n\
+ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg\n\
+tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK\n\
+cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga\n\
+ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca\n\
+HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg\n\
+gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS\n\
+BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg\n\
+gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat\n\
+KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact\n\
+cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat\n\
+tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD\n\
+taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM\n\
+gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt\n\
+aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat\n\
+acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta\n\
+RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc\n\
+attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac\n\
+KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS\n\
+KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD\n\
+gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB\n\
+aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct\n\
+aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga\n\
+ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY\n\
+tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga\n\
+aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta\n\
+tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY\n\
+MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc\n\
+cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta\n\
+caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt\n\
+ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc\n\
+acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat\n\
+tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc\n\
+gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa\n\
+atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga\n\
+aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat\n\
+NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt\n\
+taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa\n\
+aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat\n\
+ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca\n\
+DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata\n\
+tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat\n\
+aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa\n\
+ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM\n\
+ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca\n\
+RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa\n\
+aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac\n\
+aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt\n\
+aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK\n\
+tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat\n\
+atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR\n\
+BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc\n\
+gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct\n\
+cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN\n\
+RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat\n\
+taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt\n\
+aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt\n\
+gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct\n\
+gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa\n\
+aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta\n\
+gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg\n\
+ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat\n\
+MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct\n\
+SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY\n\
+aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt\n\
+VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat\n\
+HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc\n\
+agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt\n\
+gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg\n\
+agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg\n\
+tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag\n\
+gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga\n\
+VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg\n\
+tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV\n\
+MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt\n\
+actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa\n\
+WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa\n\
+tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD\n\
+KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct\n\
+BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac\n\
+attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB\n\
+VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD\n\
+aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca\n\
+tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat\n\
+tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK\n\
+tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt\n\
+VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta\n\
+tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat\n\
+ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa\n\
+tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg\n\
+WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta\n\
+tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc\n\
+tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct\n\
+MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat\n\
+tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac\n\
+atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg\n\
+aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt\n\
+aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa\n\
+aatYggtaRtatNtHcaatcaHtagVtgtattataNggaMtcttHtNagctaaaggtaga\n\
+YctMattNaMVNtcKtactBKcaHHcBttaSagaKacataYgctaKaYgttYcgacWVtt\n\
+WtSagcaacatcccHaccKtcttaacgaKttcacKtNtacHtatatRtaaatacactaBt\n\
+ttgaHaRttggttWtatYagcatYDatcggagagcWBataagRtacctataRKgtBgatg\n\
+aDatataSttagBaHtaatNtaDWcWtgtaattacagKttcNtMagtattaNgtctcgtc\n\
+ctcttBaHaKcKccgtRcaaYagSattaagtKataDatatatagtcDtaacaWHcaKttD\n\
+gaaRcgtgYttgtcatatNtatttttatggccHtgDtYHtWgttatYaacaattcaWtat\n\
+NgctcaaaSttRgctaatcaaatNatcgtttaBtNNVtgttataagcaaagattBacgtD\n\
+atttNatttaaaDcBgtaSKgacgtagataatttcHMVNttgttBtDtgtaWKaaRMcKM\n\
+tHtaVtagataWctccNNaSWtVaHatctcMgggDgtNHtDaDttatatVWttgttattt\n\
+aacctttcacaaggaSaDcggttttttatatVtctgVtaacaStDVaKactaMtttaSNa\n\
+gtgaaattaNacttSKctattcctctaSagKcaVttaagNaVcttaVaaRNaHaaHttat\n\
+gtHttgtgatMccaggtaDcgaccgtWgtWMtttaHcRtattgScctatttKtaaccaag\n\
+tYagaHgtWcHaatgccKNRtttagtMYSgaDatctgtgaWDtccMNcgHgcaaacNDaa\n\
+aRaStDWtcaaaaHKtaNBctagBtgtattaactaattttVctagaatggcWSatMaccc\n\
+ttHttaSgSgtgMRcatRVKtatctgaaaccDNatYgaaVHNgatMgHRtacttaaaRta\n\
+tStRtDtatDttYatattHggaBcttHgcgattgaKcKtttcRataMtcgaVttWacatN\n\
+catacctRataDDatVaWNcggttgaHtgtMacVtttaBHtgagVttMaataattatgtt\n\
+cttagtttgtgcDtSatttgBtcaacHattaaBagVWcgcaSYttMgcttacYKtVtatc\n\
+aYaKctgBatgcgggcYcaaaaacgNtctagKBtattatctttKtaVttatagtaYtRag\n\
+NtaYataaVtgaatatcHgcaaRataHtacacatgtaNtgtcgYatWMatttgaactacR\n\
+ctaWtWtatacaatctBatatgYtaagtatgtgtatSttactVatcttYtaBcKgRaSgg\n\
+RaaaaatgcagtaaaWgtaRgcgataatcBaataccgtatttttccatcNHtatWYgatH\n\
+SaaaDHttgctgtccHtggggcctaataatttttctatattYWtcattBtgBRcVttaVM\n\
+RSgctaatMagtYtttaaaaatBRtcBttcaaVtaacagctccSaaSttKNtHtKYcagc\n\
+agaaaccccRtttttaaDcDtaStatccaagcgctHtatcttaDRYgatDHtWcaaaBcW\n\
+gKWHttHataagHacgMNKttMKHccaYcatMVaacgttaKgYcaVaaBtacgcaacttt\n\
+MctaaHaatgtBatgagaSatgtatgSRgHgWaVWgataaatatttccKagVgataattW\n\
+aHNcYggaaatgctHtKtaDtctaaagtMaatVDVactWtSaaWaaMtaHtaSKtcBRaN\n\
+cttStggtBttacNagcatagRgtKtgcgaacaacBcgKaatgataagatgaaaattgta\n\
+ctgcgggtccHHWHaaNacaBttNKtKtcaaBatatgctaHNgtKcDWgtttatNgVDHg\n\
+accaacWctKaaggHttgaRgYaatHcaBacaatgagcaaattactgtaVaaYaDtagat\n\
+tgagNKggtggtgKtWKaatacagDRtatRaMRtgattDggtcaaYRtatttNtagaDtc\n\
+acaaSDctDtataatcgtactaHttatacaatYaacaaHttHatHtgcgatRRttNgcat\n\
+SVtacWWgaaggagtatVMaVaaattScDDKNcaYBYaDatHgtctatBagcaacaagaa\n\
+tgagaaRcataaKNaRtBDatcaaacgcattttttaaBtcSgtacaRggatgtMNaattg\n\
+gatatWtgagtattaaaVctgcaYMtatgatttttYgaHtgtcttaagWBttHttgtctt\n\
+attDtcgtatWtataataSgctaHagcDVcNtaatcaagtaBDaWaDgtttagYctaNcc\n\
+DtaKtaHcttaataacccaRKtacaVaatNgcWRaMgaattatgaBaaagattVYaHMDc\n\
+aDHtcRcgYtcttaaaWaaaVKgatacRtttRRKYgaatacaWVacVcRtatMacaBtac\n\
+tggMataaattttHggNagSctacHgtBagcgtcgtgattNtttgatSaaggMttctttc\n\
+ttNtYNagBtaaacaaatttMgaccttacataattgYtcgacBtVMctgStgMDtagtaR\n\
+ctHtatgttcatatVRNWataDKatWcgaaaaagttaaaagcacgHNacgtaatctttMR\n\
+tgacttttDacctataaacgaaatatgattagaactccSYtaBctttaataacWgaaaYa\n\
+tagatgWttcatKtNgatttttcaagHtaYgaaRaDaagtaggagcttatVtagtctttc\n\
+attaaaatcgKtattaRttacagVaDatgcatVgattgggtctttHVtagKaaRBtaHta\n\
+aggccccaaaaKatggtttaMWgtBtaaacttcactttKHtcgatctccctaYaBacMgt\n\
+cttBaBaNgcgaaacaatctagtHccHtKttcRtRVttccVctttcatacYagMVtMcag\n\
+aMaaacaataBctgYtaatRaaagattaaccatVRatHtaRagcgcaBcgDttStttttc\n\
+VtttaDtKgcaaWaaaaatSccMcVatgtKgtaKgcgatatgtagtSaaaDttatacaaa\n\
+catYaRRcVRHctKtcgacKttaaVctaDaatgttMggRcWaacttttHaDaKaDaBctg\n\
+taggcgtttaHBccatccattcNHtDaYtaataMttacggctNVaacDattgatatttta\n\
+cVttSaattacaaRtataNDgacVtgaacataVRttttaDtcaaacataYDBtttaatBa\n\
+DtttYDaDaMccMttNBttatatgagaaMgaNtattHccNataattcaHagtgaaggDga\n\
+tgtatatatgYatgaStcataaBStWacgtcccataRMaaDattggttaaattcMKtctM\n\
+acaBSactcggaatDDgatDgcWctaacaccgggaVcacWKVacggtaNatatacctMta\n\
+tgatagtgcaKagggVaDtgtaacttggagtcKatatcgMcttRaMagcattaBRaStct\n\
+YSggaHYtacaactMBaagDcaBDRaaacMYacaHaattagcattaaaHgcgctaaggSc\n\
+cKtgaaKtNaBtatDDcKBSaVtgatVYaagVtctSgMctacgttaacWaaattctSgtD\n\
+actaaStaaattgcagBBRVctaatatacctNttMcRggctttMttagacRaHcaBaacV\n\
+KgaataHttttMgYgattcYaNRgttMgcVaaacaVVcDHaatttgKtMYgtatBtVVct\n\
+WgVtatHtacaaHttcacgatagcagtaaNattBatatatttcVgaDagcggttMaagtc\n\
+ScHagaaatgcYNggcgtttttMtStggtRatctacttaaatVVtBacttHNttttaRca\n\
+aatcacagHgagagtMgatcSWaNRacagDtatactaaDKaSRtgattctccatSaaRtt\n\
+aaYctacacNtaRtaactggatgaccYtacactttaattaattgattYgttcagDtNKtt\n\
+agDttaaaaaaaBtttaaNaYWKMBaaaacVcBMtatWtgBatatgaacVtattMtYatM\n\
+NYDKNcKgDttDaVtaaaatgggatttctgtaaatWtctcWgtVVagtcgRgacttcccc\n\
+taDcacagcRcagagtgtWSatgtacatgttaaSttgtaaHcgatgggMagtgaacttat\n\
+RtttaVcaccaWaMgtactaatSSaHtcMgaaYtatcgaaggYgggcgtgaNDtgttMNg\n\
+aNDMtaattcgVttttaacatgVatgtWVMatatcaKgaaattcaBcctccWcttgaaWH\n\
+tWgHtcgNWgaRgctcBgSgaattgcaaHtgattgtgNagtDttHHgBttaaWcaaWagc\n\
+aSaHHtaaaVctRaaMagtaDaatHtDMtcVaWMtagSagcttHSattaacaaagtRacM\n\
+tRtctgttagcMtcaBatVKtKtKacgagaSNatSactgtatatcBctgagVtYactgta\n\
+aattaaaggcYgDHgtaacatSRDatMMccHatKgttaacgactKtgKagtcttcaaHRV\n\
+tccttKgtSataatttacaactggatDNgaacttcaRtVaagDcaWatcBctctHYatHa\n\
+DaaatttagYatSatccaWtttagaaatVaacBatHcatcgtacaatatcgcNYRcaata\n\
+YaRaYtgattVttgaatgaVaactcRcaNStgtgtattMtgaggtNttBaDRcgaaaagc\n\
+tNgBcWaWgtSaDcVtgVaatMKBtttcgtttctaaHctaaagYactgMtatBDtcStga\n\
+ccgtSDattYaataHctgggaYYttcggttaWaatctggtRagWMaDagtaacBccacta\n\
+cgHWMKaatgatWatcctgHcaBaSctVtcMtgtDttacctaVgatYcWaDRaaaaRtag\n\
+atcgaMagtggaRaWctctgMgcWttaagKBRtaaDaaWtctgtaagYMttactaHtaat\n\
+cttcataacggcacBtSgcgttNHtgtHccatgttttaaagtatcgaKtMttVcataYBB\n\
+aKtaMVaVgtattNDSataHcagtWMtaggtaSaaKgttgBtVtttgttatcatKcgHac\n\
+acRtctHatNVagSBgatgHtgaRaSgttRcctaacaaattDNttgacctaaYtBgaaaa\n\
+tagttattactcttttgatgtNNtVtgtatMgtcttRttcatttgatgacacttcHSaaa\n\
+ccaWWDtWagtaRDDVNacVaRatgttBccttaatHtgtaaacStcVNtcacaSRttcYa\n\
+gacagaMMttttgMcNttBcgWBtactgVtaRttctccaaYHBtaaagaBattaYacgat\n\
+ttacatctgtaaMKaRYtttttactaaVatWgctBtttDVttctggcDaHaggDaagtcg\n\
+aWcaagtagtWttHtgKtVataStccaMcWcaagataagatcactctHatgtcYgaKcat\n\
+cagatactaagNSStHcctRRNtattgtccttagttagMVgtatagactaactctVcaat\n\
+MctgtttgtgttgccttatWgtaBVtttctggMcaaKgDWtcgtaaYStgSactatttHg\n\
+atctgKagtagBtVacRaagRtMctatgggcaaaKaaaatacttcHctaRtgtDcttDat\n\
+taggaaatttcYHaRaaBttaatggcacKtgctHVcaDcaaaVDaaaVcgMttgtNagcg\n\
+taDWgtcgttaatDgKgagcSatatcSHtagtagttggtgtHaWtaHKtatagctgtVga\n\
+ttaBVaatgaataagtaatVatSttaHctttKtttgtagttaccttaatcgtagtcctgB\n\
+cgactatttVcMacHaaaggaatgDatggKtaHtgStatattaaSagctWcctccRtata\n\
+BaDYcgttgcNaagaggatRaaaYtaWgNtSMcaatttactaacatttaaWttHtatBat\n\
+tgtcgacaatNgattgcNgtMaaaKaBDattHacttggtRtttaYaacgVactBtaBaKt\n\
+gBttatgVttgtVttcaatcWcNctDBaaBgaDHacBttattNtgtDtatttVSaaacag\n\
+gatgcRatSgtaSaNtgBatagttcHBgcBBaaattaHgtDattatDaKaatBaaYaaMa\n\
+ataaataKtttYtagtBgMatNcatgtttgaNagtgttgtgKaNaSagtttgaSMaYBca\n\
+aaacDStagttVacaaaaactaaWttBaagtctgtgcgtMgtaattctcctacctcaNtt\n\
+taaccaaaaVtBcacataacaccccBcWMtatVtggaatgaWtcaaWaaaaaaaaWtDta\n\
+atatRcctDWtcctaccMtVVatKttaWaaKaaatataaagScHBagaggBaSMtaWaVt\n\
+atattactSaaaKNaactatNatccttgaYctattcaaaVgatttYHcRagattttaSat\n\
+aggttattcVtaaagaKgtattattKtRttNcggcRgtgtgtWYtaacHgKatKgatYta\n\
+cYagDtWcHBDctctgRaYKaYagcactKcacSaRtBttttBHKcMtNtcBatttatttt\n\
+tgSatVgaaagaWtcDtagDatatgMacaacRgatatatgtttgtKtNRaatatNatgYc\n\
+aHtgHataacKtgagtagtaacYttaNccaaatHcacaacaVDtagtaYtccagcattNt\n\
+acKtBtactaaagaBatVtKaaHBctgStgtBgtatgaSNtgDataaccctgtagcaBgt\n\
+gatcttaDataStgaMaccaSBBgWagtacKcgattgaDgNNaaaacacagtSatBacKD\n\
+gcgtataBKcatacactaSaatYtYcDaactHttcatRtttaatcaattataRtttgtaa\n\
+gMcgNttcatcBtYBagtNWNMtSHcattcRctttttRWgaKacKttgggagBcgttcgc\n\
+MaWHtaatactgtctctatttataVgtttaBScttttaBMaNaatMacactYtBMggtHa\n\
+cMagtaRtctgcatttaHtcaaaatttgagKtgNtactBacaHtcgtatttctMaSRagc\n\
+agttaatgtNtaaattgagagWcKtaNttagVtacgatttgaatttcgRtgtWcVatcgt\n\
+taaDVctgtttBWgaccagaaagtcSgtVtatagaBccttttcctaaattgHtatcggRa\n\
+ttttcaaggcYSKaagWaWtRactaaaacccBatMtttBaatYtaagaactSttcgaaSc\n\
+aatagtattgaccaagtgttttctaacatgtttNVaatcaaagagaaaNattaaRtttta\n\
+VaaaccgcaggNMtatattVctcaagaggaacgBgtttaacaagttcKcYaatatactaa\n\
+ccBaaaSggttcNtattctagttRtBacgScVctcaatttaatYtaaaaaaatgSaatga\n\
+tagaMBRatgRcMcgttgaWHtcaVYgaatYtaatctttYttatRaWtctgBtDcgatNa\n\
+tcKaBaDgatgtaNatWKctccgatattaacattNaaacDatgBgttctgtDtaaaMggt\n\
+gaBaSHataacgccSctaBtttaRBtcNHcDatcDcctagagtcRtaBgWttDRVHagat\n\
+tYatgtatcWtaHtttYcattWtaaagtctNgtStggRNcgcggagSSaaagaaaatYcH\n\
+DtcgctttaatgYcKBVSgtattRaYBaDaaatBgtatgaHtaaRaRgcaSWNtagatHa\n\
+acttNctBtcaccatctMcatattccaSatttgcgaDagDgtatYtaaaVDtaagtttWV\n\
+aagtagYatRttaagDcNgacKBcScagHtattatcDaDactaaaaaYgHttBcgaDttg\n\
+gataaaKSRcBMaBcgaBSttcWtgNBatRaccgattcatttataacggHVtaattcaca\n\
+agagVttaaRaatVVRKcgWtVgacctgDgYaaHaWtctttcacMagggatVgactagMa\n\
+aataKaaNWagKatagNaaWtaaaatttgaattttatttgctaaVgaHatBatcaaBWcB\n\
+gttcMatcgBaaNgttcgSNaggSaRtttgHtRtattaNttcDcatSaVttttcgaaaaa\n\
+ttgHatctaRaggSaNatMDaaatDcacgattttagaHgHaWtYgattaatHNSttatMS\n\
+gggNtcKtYatRggtttgtMWVtttaYtagcagBagHaYagttatatggtBacYcattaR\n\
+SataBatMtttaaatctHcaaaSaaaagttNSaaWcWRccRtKaagtBWtcaaattSttM\n\
+tattggaaaccttaacgttBtWatttatatWcDaatagattcctScacctaagggRaaYt\n\
+aNaatgVtBcttaaBaacaMVaaattatStYgRcctgtactatcMcVKatttcgSgatRH\n\
+MaaaHtagtaaHtVgcaaataatatcgKKtgccaatBNgaaWcVttgagttaKatagttc\n\
+aggKDatDtattgaKaVcaKtaataDataataHSaHcattagttaatRVYcNaHtaRcaa\n\
+ggtNHcgtcaaccaBaaagYtHWaaaRcKgaYaaDttgcWYtataRgaatatgtYtgcKt\n\
+aNttWacatYHctRaDtYtattcBttttatcSataYaYgttWaRagcacHMgtttHtYtt\n\
+YaatcggtatStttcgtRSattaaDaKMaatatactaNBaWgctacacYtgaYVgtgHta\n\
+aaRaaRgHtagtWattataaaSDaaWtgMattatcgaaaagtaYRSaWtSgNtBgagcRY\n\
+aMDtactaacttaWgtatctagacaagNtattHggataatYttYatcataDcgHgttBtt\n\
+ctttVttgccgaaWtaaaacgKgtatctaaaaaNtccDtaDatBMaMggaatNKtatBaa\n\
+atVtccRaHtaSacataHattgtttKVYattcataVaattWtcgtgMttcttKtgtctaa\n\
+cVtatctatatBRataactcgKatStatattcatHHRttKtccaacgtgggtgRgtgaMt\n\
+attattggctatcgtgacMtRcBDtcttgtactaatRHttttaagatcgVMDStattatY\n\
+BtttDttgtBtNttgRcMtYtgBacHaWaBaatDKctaagtgaaactaatgRaaKgatcc\n\
+aagNaaaatattaggWNtaagtatacttttKcgtcggSYtcttgRctataYcttatataa\n\
+agtatattaatttataVaacacaDHatctatttttKYVatHRactttaBHccaWagtact\n\
+BtcacgaVgcgttRtttttttSVgtSagtBaaattctgaHgactcttgMcattttagVta\n\
+agaattHctHtcaDaaNtaacRggWatagttcgtSttgaDatcNgNagctagDgatcNtt\n\
+KgttgtaDtctttRaaYStRatDtgMggactSttaDtagSaVtBDttgtDgccatcacaM\n\
+attaaaMtNacaVcgSWcVaaDatcaHaatgaattaMtatccVtctBtaattgtWattat\n\
+BRcWcaatgNNtactWYtDaKttaaatcactcagtRaaRgatggtKgcgccaaHgaggat\n\
+StattYcaNMtcaBttacttatgagDaNtaMgaaWtgtttcttctaHtMNgttatctaWW\n\
+atMtBtaaatagDVatgtBYtatcggcttaagacMRtaHScgatatYgRDtcattatSDa\n\
+HggaaataNgaWSRRaaaBaatagBattaDctttgHWNttacaataaaaaaatacggttt\n\
+gHgVtaHtWMttNtBtctagtMcgKMgHgYtataHaNagWtcaacYattaataYRgtaWK\n\
+gaBctataaccgatttaHaNBRaRaMtccggtNgacMtctcatttgcaattcWgMactta\n\
+caaDaaNtactWatVtttagccttMaatcagVaagtctVaaDaBtattaattaYtNaYtg\n\
+gattaKtaKctYaMtattYgatattataatKtVgDcttatatNBtcgttgtStttttMag\n\
+aggttaHYSttcKgtcKtDNtataagttataagSgttatDtRttattgttttSNggRtca\n\
+aKMNatgaatattgtBWtaMacctgggYgaSgaagYataagattacgagaatBtggtRcV\n\
+HtgYggaDgaYaKagWagctatagacgaaHgtWaNgacttHRatVaWacKYtgRVNgVcS\n\
+gRWctacatcKSactctgWYtBggtataagcttNRttVtgRcaWaaatDMatYattaact\n\
+ttcgaagRatSctgccttgcRKaccHtttSNVagtagHagBagttagaccaRtataBcca\n\
+taatSHatRtcHagacBWatagcaMtacaRtgtgaaBatctKRtScttccaNaatcNgta\n\
+atatWtcaMgactctBtWtaaNactHaaaaRctcgcatggctMcaaNtcagaaaaacaca\n\
+gtggggWttRttagtaagaVctVMtcgaatcttcMaaaHcaHBttcgattatgtcaDagc\n\
+YRtBtYcgacMgtDcagcgaNgttaataatagcagKYYtcgtaBtYctMaRtaRtDagaa\n\
+aacacatgYaBttgattattcgaaNttBctSataaMataWRgaHtttccgtDgaYtatgg\n\
+tDgHKgMtatttVtMtVagttaRatMattRagataaccctKctMtSttgaHagtcStcta\n\
+tttccSagatgttccacgaggYNttHRacgattcDatatDcataaaatBBttatcgaHtN\n\
+HaaatatDNaggctgaNcaaggagttBttMgRagVatBcRtaWgatgBtSgaKtcgHttt\n\
+gaatcaaDaHttcSBgHcagtVaaSttDcagccgttNBtgttHagYtattctttRWaaVt\n\
+SttcatatKaaRaaaNacaVtVctMtSDtDtRHRcgtaatgctcttaaatSacacaatcg\n\
+HattcaWcttaaaatHaaatcNctWttaNMcMtaKctVtcctaagYgatgatcYaaaRac\n\
+tctaRDaYagtaacgtDgaggaaatctcaaacatcaScttcKttNtaccatNtaNataca\n\
+tttHaaDHgcaDatMWaaBttcRggctMaagctVYcacgatcaDttatYtaatcKatWat\n\
+caatVYtNagatttgattgaYttttYgacttVtcKaRagaaaHVgDtaMatKYagagttN\n\
+atWttaccNtYtcDWgSatgaRgtMatgKtcgacaagWtacttaagtcgKtgatccttNc\n\
+ttatagMatHVggtagcgHctatagccctYttggtaattKNaacgaaYatatVctaataM\n\
+aaaYtgVtcKaYtaataacagaatHcacVagatYWHttagaaSMaatWtYtgtaaagNaa\n\
+acaVgaWtcacNWgataNttcaSagctMDaRttgNactaccgataMaaatgtttattDtc\n\
+aagacgctDHYYatggttcaagccNctccttcMctttagacBtaaWtaWVHggaaaaNat\n\
+ttaDtDtgctaaHHtMtatNtMtagtcatttgcaaaRatacagRHtatDNtgtDgaatVg\n\
+tVNtcaaatYBMaaaagcaKgtgatgatMgWWMaHttttMgMagatDtataaattaacca\n\
+actMtacataaattgRataatacgBtKtaataattRgtatDagDtcRDacctatRcagag\n\
+cSHatNtcaScNtttggacNtaaggaccgtgKNttgttNcttgaaRgYgRtNtcagttBc\n\
+ttttcHtKtgcttYaaNgYagtaaatgaatggWaMattBHtatctatSgtcYtgcHtaat\n\
+tHgaaMtHcagaaSatggtatgccaHBtYtcNattWtgtNgctttaggtttgtWatNtgH\n\
+tgcDttactttttttgcNtactKtWRaVcttcatagtgSNKaNccgaataaBttataata\n\
+YtSagctttaaatSttggctaaKSaatRccgWHgagDttaaatcatgagMtcgagtVtaD\n\
+ggaBtatttgDacataaacgtagYRagBWtgDStKDgatgaagttcattatttaKWcata\n\
+aatWRgatataRgttRacaaNKttNtKagaaYaStaactScattattaacgatttaaatg\n\
+DtaattagatHgaYataaactatggggatVHtgccgtNgatNYcaStRtagaccacWcaM\n\
+tatRagHgVactYtWHtcttcatgatWgagaKggagtatgaWtDtVtNaNtcgYYgtaaa\n\
+ctttaDtBactagtaDctatagtaatatttatatataacgHaaaRagKattSagttYtSt\n\
+>THREE Homo sapiens frequency\n\
+agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct\n\
+cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt\n\
+tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat\n\
+tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc\n\
+gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc\n\
+tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg\n\
+tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat\n\
+atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag\n\
+cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa\n\
+ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt\n\
+ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat\n\
+atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc\n\
+gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact\n\
+tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag\n\
+gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg\n\
+atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag\n\
+tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac\n\
+ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag\n\
+tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta\n\
+aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt\n\
+gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa\n\
+ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc\n\
+agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt\n\
+agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat\n\
+acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc\n\
+cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct\n\
+cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct\n\
+cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa\n\
+aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt\n\
+tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt\n\
+atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct\n\
+cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga\n\
+tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat\n\
+catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc\n\
+tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg\n\
+caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc\n\
+tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc\n\
+aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag\n\
+aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat\n\
+ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac\n\
+gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag\n\
+ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt\n\
+cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta\n\
+gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca\n\
+ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt\n\
+cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg\n\
+taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg\n\
+gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc\n\
+taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt\n\
+ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt\n\
+aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt\n\
+gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta\n\
+acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct\n\
+ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta\n\
+tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt\n\
+tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg\n\
+tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa\n\
+ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac\n\
+aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga\n\
+tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca\n\
+gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt\n\
+gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc\n\
+cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg\n\
+actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa\n\
+tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg\n\
+ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt\n\
+ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta\n\
+agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc\n\
+gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa\n\
+tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt\n\
+atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca\n\
+cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa\n\
+tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca\n\
+gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg\n\
+gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat\n\
+aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg\n\
+gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat\n\
+cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa\n\
+taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg\n\
+tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt\n\
+ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac\n\
+aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc\n\
+gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag\n\
+aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc\n\
+tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa\n\
+tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata\n\
+aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta\n\
+ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc\n\
+ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc\n\
+caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct\n\
+gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg\n\
+cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc\n\
+ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta\n\
+tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg\n\
+atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc\n\
+ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc\n\
+acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc\n\
+taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga\n\
+ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga\n\
+aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat\n\
+cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc\n\
+tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact\n\
+gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa\n\
+aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag\n\
+cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc\n\
+cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa\n\
+gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg\n\
+cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg\n\
+gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca\n\
+agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac\n\
+aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt\n\
+aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg\n\
+cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt\n\
+agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg\n\
+cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa\n\
+agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga\n\
+gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta\n\
+aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata\n\
+agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc\n\
+cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc\n\
+agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca\n\
+ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga\n\
+tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag\n\
+gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat\n\
+gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt\n\
+ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg\n\
+gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc\n\
+atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc\n\
+tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata\n\
+ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg\n\
+tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag\n\
+cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg\n\
+ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat\n\
+aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg\n\
+gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat\n\
+ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag\n\
+atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac\n\
+aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct\n\
+gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga\n\
+atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt\n\
+aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt\n\
+tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg\n\
+ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta\n\
+gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac\n\
+cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct\n\
+ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga\n\
+ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg\n\
+ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat\n\
+cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga\n\
+tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt\n\
+tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc\n\
+cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt\n\
+gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct\n\
+ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt\n\
+ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa\n\
+tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc\n\
+agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta\n\
+ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc\n\
+cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct\n\
+agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc\n\
+tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc\n\
+gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga\n\
+ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa\n\
+ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca\n\
+agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata\n\
+attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact\n\
+ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat\n\
+agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat\n\
+aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata\n\
+gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta\n\
+gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg\n\
+ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac\n\
+gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata\n\
+ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat\n\
+taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta\n\
+aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata\n\
+tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata\n\
+ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga\n\
+agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt\n\
+ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt\n\
+agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg\n\
+gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa\n\
+tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg\n\
+gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct\n\
+cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc\n\
+ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta\n\
+cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt\n\
+gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc\n\
+gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc\n\
+tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt\n\
+cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca\n\
+aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac\n\
+ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac\n\
+gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag\n\
+aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga\n\
+gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct\n\
+aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta\n\
+gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat\n\
+agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat\n\
+caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta\n\
+gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta\n\
+aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt\n\
+tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt\n\
+tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc\n\
+ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg\n\
+ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg\n\
+gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa\n\
+ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa\n\
+aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa\n\
+tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat\n\
+acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac\n\
+atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga\n\
+gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac\n\
+tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc\n\
+cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa\n\
+gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg\n\
+acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga\n\
+acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga\n\
+attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg\n\
+tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt\n\
+cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag\n\
+aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac\n\
+ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac\n\
+tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat\n\
+gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga\n\
+gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc\n\
+acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta\n\
+gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac\n\
+gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc\n\
+ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt\n\
+taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg\n\
+agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa\n\
+gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag\n\
+ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc\n\
+accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag\n\
+tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact\n\
+taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga\n\
+catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat\n\
+tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga\n\
+ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg\n\
+aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa\n\
+atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa\n\
+tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt\n\
+ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact\n\
+tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt\n\
+aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat\n\
+agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc\n\
+acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc\n\
+aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct\n\
+ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat\n\
+gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat\n\
+taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata\n\
+taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga\n\
+tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat\n\
+gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg\n\
+ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa\n\
+atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat\n\
+tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat\n\
+cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt\n\
+aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac\n\
+taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag\n\
+caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata\n\
+ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct\n\
+tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac\n\
+tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg\n\
+gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta\n\
+gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat\n\
+gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg\n\
+ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa\n\
+tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa\n\
+taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac\n\
+gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt\n\
+ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga\n\
+gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca\n\
+tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc\n\
+ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt\n\
+tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc\n\
+cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat\n\
+ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg\n\
+caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg\n\
+cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat\n\
+gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat\n\
+cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg\n\
+taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat\n\
+tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata\n\
+taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc\n\
+tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac\n\
+tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt\n\
+tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt\n\
+ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt\n\
+aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg\n\
+atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga\n\
+actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta\n\
+gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga\n\
+ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga\n\
+gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct\n\
+tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc\n\
+aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta\n\
+atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt\n\
+catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc\n\
+taaagataactctagtaaggccaactcccttcaatgctgttgccagttataatccaagag\n\
+ctgtccttttctgaaccatagcggcttctgaagcgaactagaagcaaagttggttctagc\n\
+cagacagccacataccctgtacgggtgtattactaaaactggtccggtattagttcacca\n\
+agggaggaattaggcaaaggatctaggtatgcaagtcggagtattacatccctaccctga\n\
+atccatcaataggttcctctgtactggccttcgcaatgagtattcaaggttgtacagccg\n\
+tataataataagatagtgactatgaacgggaagtaacccgctcaccttccccaaaacatt\n\
+gttatatctaagtattaaagtctgccgtagtgttaatactcgaaaataaacaactggcaa\n\
+attacaccgcacttaagccgcttttgatttatatttttccaatgcgcttttaaaaataat\n\
+tcagtcctacatactaattaagacccttaaacggagatatcacaagttaagttttaacca\n\
+tctcgactaggtggaactatagatacccaactcaatttatcattacctgtaatgttccta\n\
+gaaggattgcatttcatgtcaagacggtggagtttcacagcgaaacttcagtgtgaacag\n\
+attctgagaaatcacctaaacctattagtcagagcacccggttagaaccagttgtcaaaa\n\
+aatagagcggttgcatgagacagaagtaacgatgagatccgttgtaacgttgagacatct\n\
+ggcctatcgtcaatacagtcctcccttaaaaatatttttaaatactaggcaaacccaaca\n\
+taggttagtcctatgtgatacgccacatggtatatcattttgtaacgttacctagggata\n\
+atcaggaagtggaattacgcaaaagtagacagtgaaatgcttagggttatagtctagtcc\n\
+aaagataaaggataaagcacgtcagagaactatattagccgaatgggaatcattgttagg\n\
+agactgtggatcatgtctaaaaagcaacgcagaaacagtcatcgaaaaaatctcgttttt\n\
+gtttgaatctaaaagagctttgatgaccgatagtacctgtatactagttactgtattacg\n\
+tgtctaatgatttcggattggggtccccagaatcagacgtcattgtagacgattcaagtt\n\
+taccaatttaatttcccagctctccttggagaactatcgccaataattgcagtcactttc\n\
+cttttctgaaacgataaagccgtcagagttctctgcaacgttggacttacctgaggttct\n\
+aacccactttcggttctaatagtagttaacgacacaacgaataacctttactgtggggct\n\
+ttcacgatattttttcgcttattattaatggttacgtcataagctggtgtccaaattaag\n\
+gttaccggcttcgcagagtagttgtatccaagtataacttccctaatcataagatcgagg\n\
+tagaaaattaatgctgtctctaaccgaacagatatgtcccactatgtggtatggacgttg\n\
+ctaattacttctgaagggaaattggtcattatggatacgtgtctaccatcaggtcggacg\n\
+cagatatggttctgtcttcagttgatccaccgttctttataggataataactgacgatta\n\
+aagattatggtaaatagattaagccaattctcttcttgtcagtgaagcatccttaactga\n\
+cttgctctgcagcccctcatacatttagctattcaaagtaccggctcgtttcaaactctc\n\
+ccacctttggaagaggttgtcaacttgataagtatatcatttacagcattttttcggacg\n\
+tacctctaatgtttcattgcagaaaattagttttttctatcgcacattttgcaagtaacg\n\
+ttagagacacaattatctgcgaatgaactgctagatctgacgaccgggagcctcgcaaat\n\
+atcaaaaaagactgacatatatcaaggagtcgttgacaagtgctggtaagtcaattggtt\n\
+tatctgtcccggcgtttcgatcttaagctgaccatgcacggcagagtaatgtcactctcg\n\
+ttcttacaagtctgtctccaagggtcggcaaaaaagacccctccattctcgagcccactc\n\
+acgatatgtagggacgacaacttgtgcggcttatgaattgtctggactgcgggcgagggt\n\
+ccatatctccgaagttagaagggacatacctttagatgataagatcaattcttattgacg\n\
+aaattcatccacaacggggaacaacttcaccctagacttacgtctgaaaagacacctagc\n\
+gtcttataaaaggtcagtgccccgtttcgtaaggctggaattacctacgcaaacttaaac\n\
+ctcgcgcccttccttacgtatcgacaagatagaggctatcgcgaatgtactacggaggca\n\
+tgaatcatatactagaaccaagtgcctgtgatattaacaagatgatccgacgcgagcacc\n\
+gtaattctaggcataaaactccagcaatttgggggccgaaaacaaatgacgttagctaat\n\
+taattatatgacatgatcaaaggaggtcaatcacgcatcgagttcgacgtatattcattg\n\
+aacttcgtgcgtttgaaagaaacttttatgaaggcaaaattgatcctgtctcctatttca\n\
+tgcgtacctcctagttgataattccccgagcagtggttaggacacttttgtcggtatcaa\n\
+gttccggtctcaaaacgtaaaattctgtaatctgtatggatggtctgtgaattagttaat\n\
+ttttatgaagtcgtcgagacgcagttcctattgatttattctaaacggagatgtgcttcg\n\
+tgggactcggaagtagatctgtgtttatgattattgctactttagatgctgactgttaac\n\
+tccgtgttgtttttcaaccgtatatcacaaccgaattggatagaacctatagtttcaagt\n\
+tctgccacaaggtatcatatttacagttagtgctggttgcttctttcaaacgtggtgagt\n\
+ttgtgctatcacgtcaacggtagagctcagtggaccgagtgcgcgttcaaccctgttcca\n\
+gagagggtgtgatagcacatataccacgctcgtcgaggcgttcatgatagtttgcaagag\n\
+ccggtgttaaacacatattattattgttatccaactaatcggacctatgcataaagcatt\n\
+gtctaaacagaataattgcctatatacggtagttttagtgatttatatcttagtatcagt\n\
+tagagcttcgaactcttcaggttcctcatatttaacgttcttcgaaagcgaaaacttcta\n\
+caaacgaatgtaagcggttttccaagtagtacctataaatcacagaaagatctgtctcag\n\
+tatagttgaaatggtattcagctagtgacgtgtaccaattatcatagttcactcaagcaa\n\
+gacgctcattaacgaatatagacaagacactatatcatataataaaaaagaacatggtgc\n\
+tcgaacatagttgaattcaccatattgaaggggaatgctgacatgtaattcgctactaga\n\
+cgatcaattccctacttgtcaaagttgaactggtacgttcttggaattaaatatgattgc\n\
+gctggaccaaattgcgacttcttgagtttcagggcaaacgattgagccggaggatgtccg\n\
+tctcttacctttcttgcttatgataaacgacggtccctgtacatcactgggaattctcag\n\
+caaaaataattgggtaaatcgagactcgatgtattcggccacaaaggtgttagacgttaa\n\
+agattattcaacggggcgataataggatcataaccggtatgcaagcgcattgaaagagcc\n\
+atgagatccttatccgataaacgctgcacggtatgtgcagccttattgtcgatcacgaat\n\
+ttataaatgtagtctgggctgtaagttgaagacctaagttataatgaagtgcaataccaa\n\
+atcgattcatagtggattatcagactcaagatatctcctgataaattacagttgttaaga\n\
+tacggataaaatgagatttaagattagcagcctctaatctgtttcaatcccgttggaatg\n\
+tggtatgcgatcaaggttaagttaaaatcaagcctgtcttcagtcttgattcttgttctg\n\
+ccatcgcatgcggtctacgtgagttaatatgtagcttacgttctagcttgtgctaatctg\n\
+agtatagattcgtagaggaatattatcaagcttccacgcctcaacgtacgtgtattggtc\n\
+acacaagacactaaaagtggaagtagcgtaaactatagtctagttgttaaatgctcagtt\n\
+cttgttatattcgatatactcttggctaatttatgtctgagtatataaaattaatgatat\n\
+taacttgcatttcacggatcccttagaaaaagattttgaccgagcgcattataaacggtt\n\
+acaccgaatcaatagaagcatacccaatagctttctttgaatttattgcctgcgcaactt\n\
+ggctgactctctagatccgaataattctatatggtcgtgacgaaactagttcattactgt\n\
+ttaaaatgccaacatgtcttttgggccgataatggctctttgcaaaattactcaatgata\n\
+cgattgatcaaagcggtagttgctagtggtagcatgtaagtctatcaaatgtctgattat\n\
+ccgaaaatcttccaaaagagtccacgtaccatatctatctcatagcgacgcgaggggaac\n\
+cttatctaactatcattccatttaccgggtgactctcgatgcaggatccgattgggataa\n\
+attgcccagaaatggctcattcctgactaagggtaaggccgttctcagcaagggaacccc\n\
+gcgaatctaggcttataccatctagattgttaactacttgcctgtagttctacagccata\n\
+ctggacagttgtttctaaatgatcgggattcatgctagcactcctctgaatgcaccgcgt\n\
+aagtttaactattacgtccgtgggcagataaggatggaggctgtatgtatcttaactgtt\n\
+acctaatatggctggtaattatcaaagtaaggaccttaatgccatagcgctagcaatcgc\n\
+tttgtatactgaccatgtgccaacctctcttaatctgtaaaatataatgtcttagctaac\n\
+tgtggacgatcatgtctctgcctagagcttcgctgtatcaattcctatagccagcgtact\n\
+agtgacacaacaacaccgtgtgagaaaagatattagtccttacgtctgtctctctacagc\n\
+ttattgatgaggattgaacatggacatatagctccccctcaaaagcagatgctacctctt\n\
+tattccattctcgaacatttgccgaacttaatttcgacaaacctgaggtcacgtcttaat\n\
+ttatcggtaacgtcacgtccctttgagactggataaatatattaccaggggccaacgagc\n\
+aattgttggaggcgcttctataatacaaggtgtcttgtcaaagaaagacggcgtgcgtct\n\
+cgtgcaactcacttaaccaatattaatgtgaaacccccctctctcacatcttatgcggtg\n\
+tactgccctggtacatttcctgtacaggactccaacagtgtagattcctaagatagctgt\n\
+tggagttgcctcacgccagatcgaaaaactgaataaactagtgagctgagctgcagaaat\n\
+accgcttaattacttatgactagttcaaagggacctacgtgatgtcagacattgcaagga\n\
+agaaattaggtttgtgcgtcattttggctggactagcactccttacttcccctactattc\n\
+aaatgtcgtaaacagcatgagacaggatcgtgctgacatttaaggtctattgggaacgag\n\
+gctacctttggtcgcgcgctcgcgttctccgaatgaccgaaatgcatgagcacagtatgc\n\
+aattgcttatagatctaaggtctggtcgttgaaaccaagcacgtaggcctgggaaatcag\n\
+ttcttcctcagcaactacacaaaagcgtccaagcattagtacttgtagtaaatgtccgaa\n\
+cctatgcgctcatttgaaagtcaaaaaatatttttaagcagtaggcacctaacccgattc\n\
+ctctacttagtagctttctttgattctcagaattgactgcaatatcactgcacaattctg\n\
+tgccattactagacttctctgtattaacgtctcatcttactaacactcgcctaggacaca\n\
+tctgagagtgaagtatttcaatacatttactgaaatcttcagttctaaaatccccgaata\n\
+aggctcttatcggtttggccaacacaagaaaaaaacttcttgcaccactcaccttcatac\n\
+gcaggagcctggggaacttagtaataactatttcggcagacaaagcttataacaagttgc\n\
+cggcgcgtataatatttaaaagaccccttgagctgctcaattaaaacgctcacctggtat\n\
+aggctattagatagtgccgtcttagtaaggggcgggaattatcggataaactgatatttt\n\
+gataaaataaccgacttgttcacgacataagtcactaaggagattttatctttctccaaa\n\
+gtatatcttccttggataatttcaaagcgctgcaatttaagttctgttactagtttatgc\n\
+tgctgggaggtgaccggaaggcgtagtaatctagaggcaaattataagaagttcatcata\n\
+tcattttcgactacaaaaacaaggtgttgtatgccggcgcattgtgtaaactggacgagt\n\
+accctagatggaaaattatacgttaagccaagatttcgatgtaatgataattacctacac\n\
+atttttgctatccataggaacaagagctgttctataggctcgtggcatacgaacatttgc\n\
+tgccgctatgaatattggaagctcttcaactacagactctattcttaattgccgtcgaaa\n\
+atgggccgaatcggctattattaatactcggtttttccgaggggattgttgtcgacagtc\n\
+gtaattattattaatattgatgttggtgaggtcatttaaatacaaccttgcagacaatga\n\
+ataagggatccaatctctcatactccttttacaattgctcatgcccctatgcaaacctta\n\
+tgccgccacacctccgcaactctctcttctgaactgtaagtagcttcattactggtttga\n\
+gactatactgaagctgatgacattctaaaatggctattttcgaatgtgattcataatgtt\n\
+tatcgtttgggatggcagaatcacgttatttttgatatagcccgggtattctattgtata\n\
+gaacgtatgctacaagtcattccccgaagaagactagaagtaaacaacatgcgaccatcg\n\
+ttaagccacgcaaggctgtagctttatttcccgataacctatcttccataaatagcggac\n\
+agcaggatactgacgctcaacatcagtggttatggtctaatttttaacttttaataaggt\n\
+aacttcagcaggcatacacagtaactctttaatttataatcaaattagaagtctgacact\n\
+tcttatatttttctatcatccaacgcgatcgcccattagcttattgtgttactaataacg\n\
+tatctaaaccaatccttttcaagctactgcctatattgtcaatatatacaaacaacagga\n\
+tagtaggctgcttaaaaaatattgtcaaccgtgtacgctttacaatacccggaaatcaca\n\
+aactttgtagacaacgagtgaaatttatacactacgaagggccagcgtacaagacccatg\n\
+aattaggcgatatgtttattctgacatattggtttatccttaatctgtcgctgtaaaatg\n\
+aagccgcccccatccctgcgaattttttttcgaagattcacgactgaaatataaatacgt\n\
+ttggctatatttatgttggagggaggcaatagcctttactgttaaccgaagatttagcca\n\
+gtgagtgtgacactaaaacactggaataaatgcaggcgttcttctgggtaaaaggtttag\n\
+tcaatctcgcctataagttcatatagctctggatataattatctggcccatgcatttatc\n\
+atggcgcttggtgccctgtgtgaagccggcctctcatattgaaggtccgaagtattccat\n\
+gtacattaagatcactctctcattcatgcatcttggcttaacaaatctggttgtccaagc\n\
+tttccaggcacgtatggtacaaattcggatcgaatacttataaaaatgatatgttaaact\n\
+gtctaaaacgctcatctacaaagtaaagtgcactaaccaatagagtctcaagaccgtgta\n\
+atgctggtgcactgaatgtgtaatacggttagaagggattagttatgttacaaatccatt\n\
+gaaaacttaagaagcattgcgtgctcggagggtgcatcttttatcaagagactaacatta\n\
+ttttcaacgacgtacatgctttacaatagggtacttatcaaacgccgagaaacgcgccta\n\
+tagtgatgttatgattatgacccgatatccattggaccgaattttatgtaggttcccagc\n\
+gtactcgcgtaatatctcggtattgccataatgtaatacttgtcggtctctcccagatga\n\
+aaaagcgttacagagtatttcaatgaaaaacagcgcgcaacgtcaatacctttaggggta\n\
+acggccgctgatttcatatagatatacgataagttggtatagctctactaggtggcatcc\n\
+acaatcgttgcatttactatagctggttacaatcataatctataccgttccttacatact\n\
+accatagcgggatagcgtttttttgccgttgattgggtttaagaggatgtcagtctcatt\n\
+atatccgattcggtgggagagccgttgttttcaaatcgcacactttgtgacataatgtac\n\
+aagataacaaaactgatataagatataaactgtcaatatcaccttgacacttgaatcaaa\n\
+gtaaattaactcgcaaatataatttgactaattgggtgcagatttctcaattaataaaaa\n\
+aatggcaccggatgggcttacaagccccttatcattcacttgtatcatgatttccaagaa\n\
+caatagaatttgctagcaagtatgaacagagattcgaattgcatccacagtacgccggag\n\
+cgtttattttaatgtggatatgacgatgtactgttggcggcatttgctagtaaccggtcc\n\
+ttatttacgtagcgcacacgtaagcatgtctgggagaaatatggtggtacaatctcagag\n\
+aaagattacagtttggtttaaataggacttatcgggtcggaagtggaacttaataagcag\n\
+tacacaattgggcaacagacgtcttgcctattacaataggattacaatgcgttagatttc\n\
+agacacgttcgtgtttggctattcgtcaattccctaaatagttagacgatcaactattat\n\
+caaagtgattctttgttcatcctccattcatgtaacagatggcacactacgcataacgcc\n\
+gaggaattttaacgagatttaagagagcagttcgggcacaacccacttgactttataaca\n\
+gctcggcagcataaacggtaatatgtgacaaatttccaaacgttataagaacgtatgtgt\n\
+acttagaaaactaagtggttcatgttcaacagatgtgacgcagcaagcctaacttatcta\n\
+ttggttttgctataaaagaacaaagttacacagaatcctaagggcttgtttcacacttat\n\
+gcctagtgcttcaccatcttaaaatagcgaaaccggcacgaatcaaaccttaaaacaatg\n\
+cgcagatattggtgatggtgactccgggtatgataatggtaactgttgaccagcgcccac\n\
+ctcatcgaagtatagaaagtggttaggataaggatgagaccgaacttatttccggccata\n\
+actttagattttctacctagtacacaacatcagggcggacacgaaaccgccatcacatca\n\
+tataccaggtttaatttgcttaatgggggaagtgtcaacgaaccttcgaactttagcagg\n\
+catatggccattatatatggccccagagcagaatgctacagcagacaaaatttggattta\n\
+tgtagtttaatacctatcaaacttggtgtgaccatacttgtctaacgacagtgcacaaag\n\
+tgtaagttacaattattactactcagcagcttctgcaatgataaaatcttatcatacacg\n\
+tcacatatgataatatctacttagggggaacgggctccacaacctacatagtactcaata\n\
+cttacactattcgacaggcacaccaaacctgtacagtcccaaaagattgagtcaactttg\n\
+cagtactgcagatcacagtaatagcttagttagcgagtcaaaattagttttctacgagac\n\
+tgcacgaccgtgcaaatttccgatgtgttggctacaaatagcaacgtatgaatttgtttg\n\
+aagccacgtaaactgtacaaccttagagataagtctcaggctactaaaaacacgttgtgg\n\
+cactaacaggatcatggttgattcttacttattcggctgaccggcccaataagtaacctt\n\
+caactagaacagaataatcgggagtagtttaattcagtcaaggtgcaggtctcattgtaa\n\
+ctaacaagctctgtgtaaccaagttaaaatcgttttcttagcggattccctacttatgga\n\
+tttgagctcgtccacaatattcgatacaagaagtttgtggtccgtaacaacgaaatttta\n\
+attacgctgtgcagcctcatccaaggaattaatagaaggttgatggtaggctccgaacgc\n\
+tccatgattataatcaagtggactgtgcagtaaacgaggaaggtatcctgacgtcgtggt\n\
+gttcgtttttgttatttgtgccctatacgagtagataaaccatgaacagcacagtgtgaa\n\
+cccatggttgattttaggctaccttatttttaatttccgttacacagaaacgaattccac\n\
+aactaacatgccattaatttttcgatatcttataaaagatggtcgaaattcattcattta\n\
+ttttttttcggttctcgaaagtcaactaagctgtcgcgttttgtttctctttagaggtaa\n\
+aagtggctttgatctcctacgtttggatactagtcaaccattactccatttgatccgtga\n\
+gtatcacctgtctaacatccagcattatgactcctcggcgaagaaaagacacacttctta\n\
+gagtcgatgtgtattagctagggacacagttgtttaatacgatagtgagcccagggaggg\n\
+cagtgcgtcccccagtagatttattcagctagtgtaagtataagatatctcacccacgag\n\
+gttcaagtgatatgcagtcttagaataatacttatcctgaatttcgatattatgggtact\n\
+tcaataatccgctagcgctactttatgtctcgttggacagcaggacacatggcagtctta\n\
+aacactaaagacatcacctgaatgaatgtaatgggattacaagaatcaatgaggtattat\n\
+atacgacgtaggaaactctggatatatacagtaatctagttacgccatcgcacttcattc\n\
+ctctggaaacttagaagacatcagctgtacgtggaggaaccagacccccgtatgtagcca\n\
+aatagaaccaaagttgcttatacaaacacacccaatgacaatggaccgctggagttcgta\n\
+aactcggaacgtagtactgcacaaacccagcatttagcaataggagctacgtatgcaact\n\
+cccacgtggtaataccttcaagctatcaatatataggtgcctagctaatcgcattcgcaa\n\
+gcagtattcaagcttgtaaaccagtataataattacagaggctctatgaaacccaacttt\n\
+ccagctaaaagtcccaattaaatggttatttcgtacttttaaagtcgcccgttctgttat\n\
+tacgcgaattgattctactccaaaattaaacacaaattatcaaccgtttcatttatattt\n\
+gtcaatgcagctgtttaaaataaggctctactaaattataattaagacacttattaccag\n\
+atttctctagttaagtttgaaccagctcgactaccgcgaaagatacattcccttctctat\n\
+ttttcagttcatctatgggtcagagaagcattgaatttattctattcaccctcgtcgttc\n\
+acagcgaatcgtcagtgtgatcagtgtatgagaaatatcctaaaccgtttagtcagacca\n\
+cacgcttagaacaagtggtctaaaaagactgccctggaaggagtaagaagtatacagctg\n\
+atccggtgtatccttcagtcatctgccctatactaattacacgacgcaaggaaaaatagg\n\
+tttattttctaggcaaacccttcataggtgactccgatgtgttacgaatcatgcttgaga\n\
+atgtgctatcgttaccgacggataataacgatctccaatgaaccaaatgtagaatgtcta\n\
+ttgattacccttttactattcgacttagagataggagatagaacctcagtgtactttttt\n\
+agccgaatgggaatctttgggaggtgaatggccataaggtcgtaaatccaaccctcttaa\n\
+agtcttccatattatatcgttgttcgtggaatcgataacagatttgttgacccatagtaa\n\
+atgtatactagtttatgttgtaagtgtagattgttttccgattgccgtccaaactttatg\n\
+tcgtaattgtagaccagtaaagttgaccaaggtaagtgcccagcgatcctgcgagatcga\n\
+tcgccaatttttccagtcactgtaagtgtaggtttagataaagccgtatgagttatatca\n\
+taagggcctcggaaagcagcttcgaaccaaagttcccttataatagtagtttaactataa\n\
+aagtatatactggtctgtcgccctttcacgatttgttttaccggtttatgaagcgttacg\n\
+tcattagagcggctccaatttaaggttaacggcttccatgtgtagttgtatacaaggata\n\
+acttaaagtatctgttcagcgagctagttaagttatcctcgatagaacacaactcagagg\n\
+tcccaagatcgggtttgcaacttgctaatttattctcaaggcaaattgggaattatcgat\n\
+acctgtataccataaggtcgctcgatgtgatgcttatgtcttctggtgatcctaccttag\n\
+ttagtgctgattaacggaacattaatgtttatcgttttgagatttagccaattctctgat\n\
+tctaactcaagatgccttatctgacgtgctatgcagcccctaagtattttacattgtaat\n\
+aggacacgctcctttaaaactcgccaaaaggtcgttgtggttctctactggttaactata\n\
+taatttacagctttgttgagctagttcctctttggtttaagtcctcaatattagttggtt\n\
+cgagcgataagttggctagttaccttagtcactatattagatccgaatgttatgcttcat\n\
+ctgaagaccgccaccctccaaaatttcttttaagactcacttattgcaaggtgtaggtga\n\
+attcggctcgtttctcaagtggtgtatctgtacacgagtttccatattttcatcaacagc\n\
+caccgcacacttatgtcactctaggtattaaaagtcgctctacaaggggacgcaattaag\n\
+aaacagacatgctagtcaaaaataaacatagcgaggcaccactaattcggccgcttatca\n\
+atgggatgctctgcgcgagacgcgccagagctcagtagttagttcggacatacatttact\n\
+tcagatgatcaattagttttctacaaatgcttactctaccccgaaaaaagtcaccagact\n\
+cttacgtctctttagtatccttccgtcttatataaggtcagtcccccgtttcggtaccct\n\
+ggaatttactaagaataatgaaacagcccccaaggacgtacgtttacaaatgatagacca\n\
+gatcgcctagcttattccgacgcatgttgcatagaattgaaccaacggaatgtgagagta\n\
+actagatgagccgaccacagcacccgtttgcgtcgcagaatacgcctgatagttcggcca\n\
+cgaaatcatatgtcctttgagtattaagtatttgtaatgatcaatcgagctcaagcaagc\n\
+ttacacttcctcggatattcagggaacttagtgcctttgaaagatacgttgatcaacgaa\n\
+aaattgataatggctcatatggaatgcctacctcatagtgctgaattaacacagcactgc\n\
+ggacctaacttttcgaggtttcaagttcacgtctcaaaacctaataggctggaatatgta\n\
+gggatcctcggtgaatttgtgattgggtttgttgtagtactgaccaagtgaatattcttt\n\
+ttttctaaaagcagatctgctgccgggcactacgaaggagatctctgtgtatcattattg\n\
+cttcttgacatgatgactcttaaatcactgtgggtgtgcaaaacgatagcacaacccaat\n\
+tcgatagtacatattgttgatacttcgcactaaaccgttcatatttaaaggttgtgctcc\n\
+ttccttcgttaaatactggtgacttggtcctatctactattagctagacctctggggaac\n\
+cacgcccccgtaaaacctgtgcaagagagggggtcatacatcttagacatcgcgcctcca\n\
+ccagggaagcattgggtgattgaccaggtgtgtaacaaatatgattattcttatactaat\n\
+attagcaaagatgcataatgatttgtattaaatgtataattgaattgataagggtctttt\n\
+agtcagtgatagagtagtataaggtagacattagaactcttaaccggacgcagatttttc\n\
+ggtcttagtaagccaattagtcgacaaaacaaggtaagagcggttactagtagtacctat\n\
+aatgcactgaatcttcggtcgaagtatagttctaatgctatgcagattgtgacggcgaca\n\
+aatgttcagacttatatcatgaaacaagctcttgtaagtattgacaaatgaaaagattga\n\
+atatttttaaatacaaaatgcgcctacttattaggggaattaaccagattgaaggccaat\n\
+cctcacatgtaatgagataatagacgataaatgaaattcttgtaatagttgaactgctac\n\
+gtgatgggtattatatatgattgagatcctccaattgccgacgtcttgtcttgatgccca\n\
+aaagattgtcaacgaggagctccctcgcgtacctgtcgtccgtatcataaacgacgcgac\n\
+atgtacagcactccgaagtataagcaataataatgcgggtaatccagactagatcttttc\n\
+ggactcaatgcggtttcacggtaaacatgattaataccggagagtagtcgagcttatcag\n\
+cgatgcaagcgaattcattgtgccaggagatacgttgcagataaaaccggcaacgtatgt\n\
+caacaagttttggcgatctcgttgtttgtattcgacgaggcgcgggaacttcaagaacta\n\
+tcgtatattcaagtccattaccttttagtttcagactggtggagctgactaaagttatat\n\
+catcattttgtacactggtttagttaacgataatttcagatttaacatgaccagacgata\n\
+atcgctgtatatccagttggaatgtggtttgccagaaaggttaacttataatcaagcctc\n\
+tcttcagtcttgattcgtcgtatcccatccattgcgctatacctcagtgtatttggagct\n\
+gtagttataccgtgtgctaagatcagtagacatgacgagagcaatattatctaccttaca\n\
+agcatcaacggacgtctagtcggaacaaaagactctaaaactcgaacttcaggttaatat\n\
+actatagttctgtattcagcagttattcttatattcgatattatcttgcctattggatgt\n\
+ctgactttagtatattaatcatagtatctgccatgtaaaggtgccagtactaaatctgtt\n\
+tcacagtgcgaattataaacggttacaaccattaaagacaacaagaccctatagctttat\n\
+ttgaattttgtcaatgcgcaacttggagctcgcgatacatcccaattagtctatagggtc\n\
+gggacgattctacggcatttctggttataatgacaacatggattgtggcccgagaatcgc\n\
+tctttcattaattaagcaatcattacagtcttataagcgctacttccgagtggtagcagg\n\
+taactcgatataaggtcgcatgagccgaatagcttaaaaaacaggccaccgaacattgat\n\
+agagaataccgaccacagcgcaacctttgattactttcattaaattgtacggctcactcg\n\
+acatcaagcttaagattgcgataatgtgaactcaaatggatcagtactgaagaaccgtaa\n\
+cccacttcgcagaaagcgtacccagagaagatacgctgttacaatatacagggtgaaatt\n\
+attgcctgttcttcgtaaccatttcgccaaacttggttagaaatgatagccattcatgat\n\
+agaaataagctgaatgataccagtatctttaactatgtagtcagggggaagataacgatg\n\
+gtccatgtatgtttctgatatgtgacagtattggccgcgtaatttgctaacgaagctact\n\
+taatgcctttgagcttcatatagatttctttaatcaaaatcggcaaaaagatagtatgag\n\
+ctataatatatgctagtagagaactctggaccatcatctatatgaatactgattcgagcg\n\
+tgcaattactttagcctgcgtactactgactctacaaaacactctgagataagtttgtag\n\
+tcagtaagtcgctctctataaaccttttggatgaccattgtacagccacttatagatccc\n\
+aataaatagcacaggagacagagtttttcaatgctcgatcatttgccgatagtattttcg\n\
+tctaacctcagggcacctattatttgatacctaacctaacggccctttcacaatggagaa\n\
+atatatgacatcgggacaaacacaaatggtgggtggccaggagatatgacatggtggcgt\n\
+ctctaagaaacacggactccctctaggcaaactcacgtaaccaattttaatgtcaaacaa\n\
+aacgctcgaaaagattttgccgtgtaatgacctggtacattgactggtcaggaatacatc\n\
+actgtagttgccgtagtgtcctgttggtgttccatcaagacacatcgtataacgcaattt\n\
+acgacggacatcagatcaagttatacagattatttaagtatcacgtgtgcattgggacat\n\
+aagggatctcacacatgccttggaacatttttgctttgtgccgctttttcgctgcactac\n\
+caatccttacttaccagtatattcaaaggtcgttaacagaatgagaaaggttagggctct\n\
+aagttatcgtcgattgggatagacgagacatttgcgagcgccctccacggatacgaatct\n\
+cccatatcaatgtgaactggatgctatgcagtttagttcttacgtctcctagtggtaaaa\n\
+atcaaagtagcactcgcatagcagttattcagaacctaatacacaaaaccgtcaaacatt\n\
+ttctaattctaggtatgggccgatcataggagctaaggtgaaactcataaatgttttgtt\n\
+agatctagcatcctaaaaagatgcatatactgagtagctggcgtgcattctctcaattgt\n\
+atcctttttaactgaactagtcggtcccatttcgtgactgagatctattaaccgataaga\n\
+ttaataacactcgcattcgtatcagctcagagtgaagtttttcaataatttgactgatat\n\
+attaacttctaaaataaccctttaagcctcggatccgtttcccaatcacatcaaaaattc\n\
+ttattccaactatctacggattaacaacgtgcatggggatcgtagtaagaacttgttccg\n\
+atcactttgagtatatcaagttgacggcccggttattattgaatagaaacattcacctgc\n\
+taaattaaataccgcacatcggatacccgatttcagagggccgtcttactaagggcaggc\n\
+tttgttcggtttaactgagatgttcattattttacagtatgcttcaactaatatgtaacg\n\
+aaggacagtggatctgtctccatagtagatcttcagtcgtgaatttcataccgctcctat\n\
+ttaagttcgcgttcgagttgttgatcatggcacgtgaaagcaacccctagtattctagac\n\
+gaaaattttttctagttcatctgataatttgccaattcaaaaacaaccgctggtttcccg\n\
+gcgcattctctaaaatggaagtcgaacctagagccattatttgtcggtaacccatgagtt\n\
+ccttcttttcagaagttaatacactgtggtcctatacagaggaaaaacagcggttatata\n\
+cgatcgtggcataacaacattggatcaagatagcaatttggctacctattctaattctca\n\
+ctagattcggtattccactacaatatcggcagattaggattggatgaataatcggtgttt\n\
+aagtccggttgcgtctccaatctcctaatttttattaatattgatcttggtgacctattg\n\
+taaataaaaacttcaagactttgaataacggtgaaaagatagaagactcatttgaaaatg\n\
+gatcatccacagatccaaacattagcaagacactaatccccaactagctattctgatcgc\n\
+gatcgtgctgcagtactcctgtcacaatagtctgttcatgatctaattctttttgggctt\n\
+tgttcgatggtgattcagaatctttatccggtcgcttccctgtagctactttgtggggat\n\
+attgcccggggattatagggttgagatcgtttcctaaaagtatttaaaccaagtagactt\n\
+caactaaactacatcagaacatcgtgaagacaccatacgcggtacctttatttaccgata\n\
+acatttcttcaagaaataccggtaagcagcataatgaccctaaacagctcggggtatcgt\n\
+cgtagttttaaattttatttaggttactgctcaaggaataaaaactaactatttaattta\n\
+taataatattacaaggctcacactgattagatttgtctataagacttcgcgatcccccat\n\
+taccggattgtcttaagaataaactagataaaccatgcattttctagataaggcctttag\n\
+tctaattagatacaaaaaacacgatagttgcatccttaatttattgtgtcaaacctggaa\n\
+ccttttaattacccgcaaatcactttatgtcgagactacctctgaaatttattatctacc\n\
+taccgcatgaggacttgaaccatcttgtaggagttatgtttattagctaagattcgttta\n\
+tcctgtagcggtccatgtatattcaacaagcaaaaagcactcagaattgtttttagttga\n\
+gtcaagactgatatataaataagtttccctagttttttcgtggtgggacgatattgaatt\n\
+gaatcttaaccgaagagtttcccactctgtcgcacaataatacacgccaatatttccagc\n\
+cctgcttatgccttaatcggttactcaatctcccattgaagttcattttgatctgcatag\n\
+aagtttcgggcccagccttttttctgccaccttcctccaagctctgtagacgcactctaa\n\
+gattgatgctcacatgtattaattctacattaacataaatatataagtcatgcatcttcg\n\
+agtaaaatatctggttctccaacatgtcctggcacgtatcgttataatgcccatacatgt\n\
+agtattaaaatgattgggttaactggatattaagatcatcgaaattgtaaagtcaaatta\n\
+acaatactgtctcaagaccgtgtattcctcgtgctcggaagggctattacgcttacttcc\n\
+gttttggtatcttaatatgactttcaaaaattaagttgcagtgagtcctacctgcgtgca\n\
+tcggttagcaagagtataaaagttgtttaaacgaactacttgctttacaataccggtcgt\n\
+atatatcgccgtgaatccagaagattgtcttctttggattatcaaccgagatcctgtgga\n\
+ccgatgttttgggaccttcacagaggactccaggtagagctcgcttttgcattaatctaa\n\
+gaattgtacctctctaaaagatctaaaacagtgaatgtgtatttcatggaaaaacacaga\n\
+gaaacgtaaattactttaggccgaaaggcacatgagttattatacatatacgagatggtg\n\
+gtatacatcgaattcggggcatacactatagttgcattgtatttagctgctttaaataat\n\
+atgatattaccttccttacataagacattaccggcataccctggttttcaacttgtgggg\n\
+ctttttgacgatcgcactctcatttgatccgagtagggcggtgacccctgcttttcaaat\n\
+acaaaaatttcgctatgaaggtaatagattacttttcgctgttatgatagaaacggtaaa\n\
+tttaaaattgaaacttctagaaaagtaaagtaacgagaaatgattttgtgaataatgcgg\n\
+tcatgattgcgcaagtaagaaaaaaaggcaaaaggatgcgcggaatagaaacttatcagt\n\
+cacgggtatcttgatttcattcttcttgtcaattgccgacataggatgaaatcagattcc\n\
+aatgcaatacacagtaacccccacccttgattgtaatgtcgatttgaagttgtacgcgtc\n\
+gacgaagtggatagtatacgggccttttgtacggtgcgatcaactatgaatctcggcgag\n\
+ttagatggtcgtacaatctcacacatagaggtcacttgcctgtaatgacgaattttcggc\n\
+taggtactcgaactttattagaagtaaaaatgtgggcaaaagaaggattccattttacaa\n\
+gacgattacaatgagttacatgtctctcaacgtagtctttccctagtagtctttgaacta\n\
+tttaggtactccagaaaattttagcaaagggtttctgtgtgaatccgccattcatgttta\n\
+tgatggaacaataagaataacgccctcgtatgttatcgacagtgaagtcagcagttcggc\n\
+caaaaacatattcaatttagtacagatccccagaagttaagctaagtgctctaaaatggc\n\
+ctaaacggttatcaaagtaggtctaattactatactaacgggtgcatcgtaataactgct\n\
+gtcgatgcaacactatatgatagtgtcgttttgctatatatgtacaatgtgacaaagaag\n\
+ccttagcgattcttgcaaacttaggacttcggattctcaatcttaaatgtccgaaaacgc\n\
+aaagattcaaaaatttaatctatgagcagatatgcctgatggtgactacgcgtatgttaa\n\
+ggctaaatgttgacaaccgcacacataatcgaactattgatagtcgggagcataaccagg\n\
+tgaacgtactttgttcacgacatttattgacatgttctaaatacgtctcaaaatcacggc\n\
+gcactagaaaacgcaatcaaatcattgtcctggtttaagggccgtaatgccggtagtgtc\n\
+aaacttcatgagaactttagctggcttttggccagtatttagggaccaagagcactagcc\n\
+ttaagctgaatattttgccatttatctactgttataactttaaaacttggtggcaccaga\n\
+cttgtcgatacacacgcatcaatctgtaacgtaaaaggtttactaagaacaagcgtagga\n\
+attgagtttatattatatttaaactaaaagatgatattagcttctgagggcgatagggct\n\
+ccaaatcataaagaggaatatattattacacgattagaaacccacaacatacctcgaatc\n\
+gcccaaaagtttgacgaaacttggcagtactccacatctcagtaatacagttgggagagt\n\
+ctcaaatgttgttttattactcaatgaaccaccctcataatttcactgctgttccattaa\n\
+atttgcaaacgatcatttgctttgaagaaacgtaaaatcgacaaaattacagataagtag\n\
+atgcataataaaaaaaactgctcgctataacacgatcatcgtgcattcttacttaggagc\n\
+atcacccgcacaataacgtaccttaaactacaacactattagaccgagtactgtaattca\n\
+cgaaagctcaagctcgcattgtaaagaacttgctctctcgtaaaatgtgataatagtttg\n\
+cggagaggattcaattattttccattgcacctactccactagattcgataaaagaaggtg\n\
+gtcctcccttaaaaagaaatgttaagtaacatcggaaccataagcaaagcatgtaagtga\n\
+accgtcatccttccctaagaaacataaaggtttttaataatgtcgactgtgaactataac\n\
+tgcatcctttcctgacctactccggttccttgttgttatttctgaacgagaccagtagat\n\
+aaacaatgtaaaccacagtgggtaccaatggtgcatgtgacgctaccgttgttttaagtg\n\
+cccgtacaaacataagaagtcataatcttacttgaaattaattttgccttttattttttt\n\
+tcaggctcgaaattaatgatttgttttttttgaccttctagttacgctaatatgcggtcg\n\
+cctgtggtttctattgagtcctataacgggatgggatctaatacgtttggttactagtaa\n\
+acaaggtataaatttgataccggagtatcaactgtataacatcaagctttatgactcata\n\
+cgcgaagtaatgacacaaggctttcaggagatcgcgagtacagagccactaaggggtgta\n\
+ttacgatagtgacaccaccgagcgcactcactccccaagtagatttatgatcctacgcta\n\
+agtattagatatataaccaaagaggttctagtcagtgcaactcttagaataataattagc\n\
+cggttttgcctttttaggcctaatgcaatattcagctagcccttatgtatctcgcgttcc\n\
+acagcaccactcatggcacgcgtttaaactaatcaaatataatctatgaatgttatgcca\n\
+gtacttgaataaatcaggttttttataagtccttgcatactctcgttatatactgttaga\n\
+gtcttaccccatagaaattctttcatctgcaaacttagaagaattctcagctacggggag\n\
+cataaagtccccaggatgttgacaaatacaacaaatgtggcttatacaaacactccatat\n\
+gaaaatcgaaccctcgtggtagttttagccgaaccttgtacggataaatccctccatttt\n\
+ccaatagcagatacctatcctactacctcgtggtattaaattaaagcttgaaatatagag\n\
+ctgcatagcttatccaattcccaagcacgagtctaccgtcgtaaccacgatttgatttac\n\
+agacgctagagcaaacccatctttaaacatataagtaaaaattaaagggtgagtgcgtac\n\
+gtgtttactagcaacttcgcttattaagacaattgtttataagccataattaaaaacata\n\
+tgttcaacaggttcattgatatttgtaattgcacaggtttttaataaggatctacgtaag\n\
+tataatgaacaaactttttaccagagttatattctgtactttgaaaatgctcctctaccg\n\
+ccttagagactttcaattagattttttgcagttaatctatgcgtaagtgaaccatgcaag\n\
+ggatgcgattcaaccgcctcgtgctaaccctatcgtctgtctcataactgtaggtctaat\n\
+ataattttcagttttcgaacacataaccctttgaaaatctgctatttaatgtctcacctg\n\
+catgcactatcttctatactgctcagaacggctatacgtcactatgctccaagtgacgat\n\
+ttaaacgaagcaaggaataataggtttattttagtgcaaaacaattaagtgcggactacg\n\
+tgctctttacaataagccttgtgattgggctataggttaagtcccatattaacgatctcc\n\
+aatgtacaaaatcgacaatcgctttgcattacccggttactagtcgaattacagatagct\n\
+gttagatactcactctaattttggacaacaatcccaatcttggggtcgtctatcgcctga\n\
+agctcgtaaatccttccatcttaaacgattacatattatagacttgttcggggtagagat\n\
+atcacagttgtgcaaacattgtaaatcgatactagtttatgttggtagtctagttgcttt\n\
+taccattccccgaaaaacttgatctactatttcgacaacagtaaacttgaactaggtaag\n\
+tgaaaacagagaatgcctcatagtgccactatttgtccactatatgtaagtgtagcttta\n\
+cataatccactatgactgagatcattacggcctaggaaagcagcgtagaaaaaaagggcc\n\
+cggatattacgactgtaactataaaactagttactggtagcgcgccatgtatagatttgt\n\
+tttaccggttgtggttgcgttaacgaatttcagccgcgaaaattgatccgttaaccagtc\n\
+catctcgacttctataaaacgataaagtaaagttgatgttcagcctccttcttatggttg\n\
+catcgagagtacactactcagtgggaaatagatcggggttcctacttcagattgtattat\n\
+ctaggcaattgccgattgtgccatacctggataaaataagctacctacatgtgatgctta\n\
+tctattatcgtcatactaccttagggtgtcctgttgaacgctacattaatctttagccgt\n\
+ttgagatgttccaatggataggagtctaacgcatgatgaagtttaggaaggcagagcatc\n\
+ccactaagtatgtgacagtgtatttcgaaacgagacgttataaatagaaaaaaggtcctt\n\
+ctggttctattctgctgaactattgaatggaaagattggttgacctacgtactatttgct\n\
+tgaagtcatcaatttgacggggtgagagacatatggtgcatactttacggactctatatt\n\
+ttagatcagaagcttagcagtcttctctacaccccctcacgacataattgcttttaagaa\n\
+tctatgtttgattcctctacgggaattcggatccgttcgcatgtgcggtttatctaaacc\n\
+aggggacatatgttcagctaaagcatacgaacactttgctaactagacgtatgtatagta\n\
+gctataaatcccgacgatatttacaaaaagaaatgagactcaaatatatacatagcgacc\n\
+ctacacttattcgcaccctgatctaggcgatcctagcacccacacccgaaagtgagcact\n\
+agtgtcttccgtattaaatttactgcagttgagattttagttgtctactaaggattactc\n\
+taacccgtaataaggatcaagactcggtactagctttactatcattccctatgtgttttc\n\
+ctaactcacaagggtacgtaccagcctatgtaattacaataatgataaagacacaaagga\n\
+agtaactttacaaatgagtctccagttacactagcttagtccctcccatcttgctttgaa\n\
+gtctaaatacgcaatctctgaggatatacagcagaagaacactcataacgttggagtcca\n\
+agaattagactcatagggcccccaacatttaatatgtactgtgagtttgaaggtgttcta\n\
+ttgttaattcctgctcttgatacatgacacgtactccgtgtttaaggcttcggactgact\n\
+ttctttcataagttgagcaacgaaaatttcagaatcgataagttggattcactaactaat\n\
+acggctgattgaaaactccactccggacctatatggtcgacctttatacgtaaccgatat\n\
+aaaacttataggctggtatatcgagccttcctagcgcaatttcggatggggtttcttcta\n\
+ctactcaacaacggaatagtctttgtttagtaaaccagagctcaggacgcccaatacgta\n\
+ggagagcgctgtggagcatgtgtcattatggactggagcactcttaaatcactctgcgtg\n\
+tgctaaacgatagatcataacatgtcctgagtaaattttcttgatacgtcgcaatatacc\n\
+gttattagttaaacgttctcatccgtcatgcgtgaaatacggctgtcgtgctcagatata\n\
+ctattagcgactcatctcgcctaacacgcacacgtataaactcggaatgactgccgctct\n\
+tacatattagaaatacagactacaccacggaagcattgggtcattctcaaccgctgtata\n\
+aaagatgattagtcttataataagattaccaaagaggcagaatcatgggtagtaaatcta\n\
+ttattcaagtgattaccgtcgtgtaggcagggagtgaggacgagatggtactcaggacaa\n\
+atattaaccggacgaagtggtttacgtcgtactttcactattagtagtaaatacaaggta\n\
+acaccggggaatagtactaaatataatgatatctatcttcgggagaacgagtcgtctatt\n\
+gctttgaacattctcaaggcgtaaaatgtgctgacttatagcatgatacaaccgattgtt\n\
+acttttgtctattcaaaagattgaatagttttttatacaaaagccgcatacttatgacgg\n\
+ctagtatacagtttcatcccctagcatcaatgctatggacagtattgaacttataggaaa\n\
+ttcttctaatagggcaaatccgtcgtgatgcctattttttttcagtcacatcctcaaatg\n\
+gcactagtattgtcgggatcccattaacaggctcaaccacgagctcacgcgaggacatgt\n\
+agtccgtatctttaacgaagcgacagcgacagaactcccatggataaccaattataaggc\n\
+ccgtaatcctctagacatcgtttaccaataaatccgctttctccgtaatcatgttgaata\n\
+ccccagagtagtccagatgataaccgatgaaacacaagtctttctcaatgcacttacggt\n\
+gaacttattaccgccaacgtagctcatcaaggttgcgacatctagttgtgtgtttgcgac\n\
+gagcccagcgaacttcatcaactttcgtatattcaacgccttgtaattttactttaagac\n\
+gcctggtgatgtagattcttagataatcagtttgttatcggctgtactttaccataattt\n\
+cacaggtttcaggtcaagaagattatagctgtatatacagttccatgctcggtgcacaga\n\
+aacgtgatcggataataatcaatcgcttatgtcgtctttaggcgtatccaatacatgccc\n\
+cgataccgcagtgtatttcgacatgtaggtataccgtcgcatttgagctcgagtcaggac\n\
+gtcagctagattagattccttaatagaatataccgacctctagtccgaactaaactatag\n\
+ataacgccaacttcaggttaattgtctagtcgtctgtttgcagatgggattcttagatga\n\
+gtgagtatcggccatattggttcgagcactttagtttttgatgcataggatatgcaatgt\n\
+atagctgaaagtactttatctgtttcaaactcacattgattaaaccggtaaacctttaaa\n\
+gactacaagaaaatattcagtgagggcaattttgtcaatcacaatcttccagctagagat\n\
+acttcacaatttgtcttgaggctacgcaacattagacggattttcgcgttttattgaaat\n\
+aatcgaggggcccaagagtatccatagttcattttgtaagatttctttacaggcttatta\n\
+cagcttcttcagactcctacatgcttacgagttatatgctagcatgtgaacaatagatta\n\
+atatacaggaaaacgtacattgagagagatgaccctacacagcgcaaccgttgagtactt\n\
+tcattaaagggtaacgctctcgagacagcatccttaagatggccttattgtcaaatcatt\n\
+tgcagaagtacgcaagatccctaaccaacgtagaagaatccctacaaacacatgagacgc\n\
+ggtgaaaatagacagggtgttagtattcaatcttcggagtatcaatttcgccaatcttgg\n\
+tgagaaagcataccctttcttcagagaaagaagatcaatcataacactatctttaacgag\n\
+gtacgcacgcgcatcattacctgcctccatggatctttaggatagcggaaagtattggca\n\
+gcgtattgtgatttcgttcctactttatcaatttcacattcatatacatgtcttttatca\n\
+aaatcgccaataagataggatgagctatattagatgctagtagagttcgcgccaacatca\n\
+tcgataggaatactcaggacagcgtgataggacttttcaatccctaatactctctataat\n\
+tataactctctcttaagtttggaggcagtaacgcgctctatataatcagtttgctgcacc\n\
+attcttcagcctctgatacatacaaataaattccacagcagtaagagggtttaattgaga\n\
+catcttgggaacttaggattttactctaacatcaccgaaacgattattggataccgtacc\n\
+taaacgaactttctcaaggcagtaatataggacatccgcaataacacaaatgctgcctcc\n\
+ccaggagttatgtcttcctggaggctatatcttacacccactcactataggcaaactaaa\n\
+gtttaaatgttgattgtctaaaaaaaagatagataagagttggccggcgtagcacatgcg\n\
+aaagtgaatcgtaagctataattctctggacttgaagttctgtcctgttcctctgcaaga\n\
+aacaaacttcctttaaagctatttacgacgcacatctcagcaagttataaacatgttgga\n\
+agtttctagtcggaattcccaaagaacggatctatctaatgcattcctacatttttcctg\n\
+tctgccgatggtgccatcctattcaaagaatttcttaaaagtagattaaatgggactttt\n\
+aacaatgagtaaccttacgcctctaagggttcctcgagtgccatacaccagtcaggtccg\n\
+agccacatacacggagaacattctaacatagcattctcaactcgatcatttgcaggttac\n\
+ttctttcctatcctagtgctaaaaatcatacttgcaatcccatagcacggattaagaacc\n\
+taagaaacaattcagtaaaacatgttcgaattcttggtatgggaacatcattgcagctat\n\
+ggtctaacgcattaatgtttgggtacatcttccatcatataaacaggaagagtctgacga\n\
+cagggagtgcttgcgatcatgtctatcattgtgaaatcaaattgtagctcacatgtcgtc\n\
+tatgagagcgtgtatccgataagatttagaaaaatagaagtcgtataagatctcactgaa\n\
+cttttgaatgaatgtgaagcatatatgatctgctttaataaaactttatccataggatac\n\
+gtttccaaatcaattcaataattattagtcaaaatagataaggatgaacaacctgaaggc\n\
+cgatcggacgtagaaagtggtcccatcactttgagttgatattgttgaaccacacgttat\n\
+tatggttttcaaacagtctcaggatattgtatatacagataatccgataccagttgtctg\n\
+acgcccctcttacgtaccccaccctttgtgacgtttaaagcagttgttcagtattttaaa\n\
+ctaggcggcaactaatttggaaagaagcacagtggatatgtctaaattcttgttattcag\n\
+gcctgaatttaatacaccgcatagttaacttcgcggtagagttgttcatcatgcctcctc\n\
+taagctaccacttctatgatacaccaatagttgttctacggaatctgataattggccaag\n\
+tcataaacttccgctgcgttcaacccccttgctcgaatatccaactcgaaaagacagcct\n\
+tttggtgtccggaacaaatcagttacttcttttctgatgttaattctctgtggtcagata\n\
+cagaccaaaaactccgcggatttaccatcctccaagaacaaatttgcatcaacatagcat\n\
+tttggctacatattctaagtctcaatagtttaggttttcaactacattatcccaacatta\n\
+ggattggaggaataatagctgggtaagtccccttgcgtctacaatcgactattttttatg\n\
+aatatgcttctgccgcacctatggttattaaaaaagtcatgactttgaagaaccctgaaa\n\
+agatagatgaatcaggtgtaatggcagcagccaaagagcatataattagcaacactctaa\n\
+gaacattatagatatgatgatagcgatcgtcatgatgttatccggtcacaatagtagctt\n\
+catcagctaattcgttttgccagtggtgacttgcgctggaagaatcgttatacggtccct\n\
+tccctcttgatacggtgggggcttattcaaccgcgtggattgggttgtcatacttgcatt\n\
+aaacgatgtaaaccatctagtagtcaactatactaaatcacaaaatagtgatcaatacat\n\
+acccgcttcatggttttaaccatttaattgattaaagatattccgctaagaaccattatc\n\
+tacctaaactgatcgccgtatcctagtagtttgaaatttgatgtaccgtaatgatcaacg\n\
+aagtaaaacgttatattgtatgtagaataataggtcttggagctaaatgatgtgattggt\n\
+agtgaagacttacccttacaactttaccggtttctcggaagaatatactagagaatcaat\n\
+gcatgggctacataagcactttagtctaatgagataaaaaatacacgagtcttccatcat\n\
+gaattttttgtcgaaaaactcgaacctggtaatttaaaccatatatctttatgtcgtcaa\n\
+taactctcatatgttttatataacttcccaatcacgacttgtaactgcttgttcgactga\n\
+gctgtttgagctatgaggccgggatccggttgagctacatctatttgctacaagaaaaat\n\
+gaaagcacatttgttgggagttctggctacactcatagagaaataagtggcccgagtggg\n\
+tgcggcctgcctccatattcaagtgtatcttaaaccaagtggttccaacgctcgcgctaa\n\
+agaattaaagcctttatttcctccacggagtagcccgtaatccggttcgaaagagaccat\n\
+tgaagttaattttcatatccagtgaagtttaggcacaagcatgtgttctgccacatgcct\n\
+caaagcgctcttcaaccaagatatgattcatcctaacttcgatgaatgcgtctgtaacat\n\
+aaatatagaaggaatgattcggcgagttaattttcgccttctccaacatggcatccctac\n\
+gttcgttataaggaccatacatgtaggttttaaaggtttgcggttaatcgatatttacat\n\
+catagaaattctatagtcaaatttacaagactctagatactcactcgttgcagccggcta\n\
+ggaagcgctttgtaccttacttcccttttcgttgcgtaatatgaatttcatatagtaagt\n\
+tcaaggcactcatacctccgtgaagagggtagatagactattaaagttgtttaatagtac\n\
+gtattgatggaaatgacccgtaggagatttaccactcaatccacaagattcgctgctgtg\n\
+cattatcaaaacagtgcatgtcgaaacatgggttgggtccttcaaacacgaatccaggta\n\
+gagatacctttgcaattttt\n";
+
+dnaInput = dnaInput + dnaInput + dnaInput;
+
+var ilen, clen,
+ seqs = [
+ /agggtaaa|tttaccct/ig,
+ /[cgt]gggtaaa|tttaccc[acg]/ig,
+ /a[act]ggtaaa|tttacc[agt]t/ig,
+ /ag[act]gtaaa|tttac[agt]ct/ig,
+ /agg[act]taaa|ttta[agt]cct/ig,
+ /aggg[acg]aaa|ttt[cgt]ccct/ig,
+ /agggt[cgt]aa|tt[acg]accct/ig,
+ /agggta[cgt]a|t[acg]taccct/ig,
+ /agggtaa[cgt]|[acg]ttaccct/ig],
+ subs = {
+ B: '(c|g|t)', D: '(a|g|t)', H: '(a|c|t)', K: '(g|t)',
+ M: '(a|c)', N: '(a|c|g|t)', R: '(a|g)', S: '(c|t)',
+ V: '(a|c|g)', W: '(a|t)', Y: '(c|t)' }
+
+ilen = dnaInput.length;
+
+// There is no in-place substitution
+dnaInput = dnaInput.replace(/>.*\n|\n/g,"")
+clen = dnaInput.length
+
+var dnaOutputString;
+
+for(i in seqs)
+ dnaOutputString += seqs[i].source + " " + (dnaInput.match(seqs[i]) || []).length + "\n";
+ // match returns null if no matches, so replace with empty
+
+for(k in subs)
+ dnaInput = dnaInput.replace(k, subs[k]) // FIXME: Would like this to be a global substitution in a future version of SunSpider.
+ // search string, replacement string, flags
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-base64.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-base64.js
new file mode 100644
index 000000000..dfc949f70
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-base64.js
@@ -0,0 +1,135 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla XML-RPC Client component.
+ *
+ * The Initial Developer of the Original Code is
+ * Digital Creations 2, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 2000
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Martijn Pieters <mj@digicool.com> (original author)
+ * Samuel Sieb <samuel@sieb.net>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+// From: http://lxr.mozilla.org/mozilla/source/extensions/xml-rpc/src/nsXmlRpcClient.js#956
+
+/* Convert data (an array of integers) to a Base64 string. */
+var toBase64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+var base64Pad = '=';
+
+function toBase64(data) {
+ var result = '';
+ var length = data.length;
+ var i;
+ // Convert every three bytes to 4 ascii characters.
+ for (i = 0; i < (length - 2); i += 3) {
+ result += toBase64Table[data.charCodeAt(i) >> 2];
+ result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i+1) >> 4)];
+ result += toBase64Table[((data.charCodeAt(i+1) & 0x0f) << 2) + (data.charCodeAt(i+2) >> 6)];
+ result += toBase64Table[data.charCodeAt(i+2) & 0x3f];
+ }
+
+ // Convert the remaining 1 or 2 bytes, pad out to 4 characters.
+ if (length%3) {
+ i = length - (length%3);
+ result += toBase64Table[data.charCodeAt(i) >> 2];
+ if ((length%3) == 2) {
+ result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i+1) >> 4)];
+ result += toBase64Table[(data.charCodeAt(i+1) & 0x0f) << 2];
+ result += base64Pad;
+ } else {
+ result += toBase64Table[(data.charCodeAt(i) & 0x03) << 4];
+ result += base64Pad + base64Pad;
+ }
+ }
+
+ return result;
+}
+
+/* Convert Base64 data to a string */
+var toBinaryTable = [
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
+ 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1,
+ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,
+ 15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1,
+ -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
+ 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1
+];
+
+function base64ToString(data) {
+ var result = '';
+ var leftbits = 0; // number of bits decoded, but yet to be appended
+ var leftdata = 0; // bits decoded, but yet to be appended
+
+ // Convert one by one.
+ for (var i = 0; i < data.length; i++) {
+ var c = toBinaryTable[data.charCodeAt(i) & 0x7f];
+ var padding = (data.charCodeAt(i) == base64Pad.charCodeAt(0));
+ // Skip illegal characters and whitespace
+ if (c == -1) continue;
+
+ // Collect data into leftdata, update bitcount
+ leftdata = (leftdata << 6) | c;
+ leftbits += 6;
+
+ // If we have 8 or more bits, append 8 bits to the result
+ if (leftbits >= 8) {
+ leftbits -= 8;
+ // Append if not padding.
+ if (!padding)
+ result += String.fromCharCode((leftdata >> leftbits) & 0xff);
+ leftdata &= (1 << leftbits) - 1;
+ }
+ }
+
+ // If there are any bits left, the base64 string was corrupted
+ if (leftbits)
+ throw Components.Exception('Corrupted base64 string');
+
+ return result;
+}
+
+var str = "";
+
+for ( var i = 0; i < 8192; i++ )
+ str += String.fromCharCode( (25 * Math.random()) + 97 );
+
+for ( var i = 8192; i <= 16384; i *= 2 ) {
+
+ var base64;
+
+ base64 = toBase64(str);
+ base64ToString(base64);
+
+ // Double the string
+ str += str;
+}
+
+toBinaryTable = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-fasta.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-fasta.js
new file mode 100644
index 000000000..14a81f392
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-fasta.js
@@ -0,0 +1,85 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org
+//
+// Contributed by Ian Osgood
+
+var last = 42, A = 3877, C = 29573, M = 139968;
+
+function rand(max) {
+ last = (last * A + C) % M;
+ return max * last / M;
+}
+
+var ALU =
+ "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" +
+ "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" +
+ "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" +
+ "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" +
+ "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" +
+ "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" +
+ "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA";
+
+var IUB = {
+ a:0.27, c:0.12, g:0.12, t:0.27,
+ B:0.02, D:0.02, H:0.02, K:0.02,
+ M:0.02, N:0.02, R:0.02, S:0.02,
+ V:0.02, W:0.02, Y:0.02
+}
+
+var HomoSap = {
+ a: 0.3029549426680,
+ c: 0.1979883004921,
+ g: 0.1975473066391,
+ t: 0.3015094502008
+}
+
+function makeCumulative(table) {
+ var last = null;
+ for (var c in table) {
+ if (last) table[c] += table[last];
+ last = c;
+ }
+}
+
+function fastaRepeat(n, seq) {
+ var seqi = 0, lenOut = 60;
+ while (n>0) {
+ if (n<lenOut) lenOut = n;
+ if (seqi + lenOut < seq.length) {
+ ret = seq.substring(seqi, seqi+lenOut);
+ seqi += lenOut;
+ } else {
+ var s = seq.substring(seqi);
+ seqi = lenOut - s.length;
+ ret = s + seq.substring(0, seqi);
+ }
+ n -= lenOut;
+ }
+}
+
+function fastaRandom(n, table) {
+ var line = new Array(60);
+ makeCumulative(table);
+ while (n>0) {
+ if (n<line.length) line = new Array(n);
+ for (var i=0; i<line.length; i++) {
+ var r = rand(1);
+ for (var c in table) {
+ if (r < table[c]) {
+ line[i] = c;
+ break;
+ }
+ }
+ }
+ ret = line.join('');
+ n -= line.length;
+ }
+}
+
+var ret;
+
+var count = 7;
+ret = fastaRepeat(2*count*100000, ALU);
+ret = fastaRandom(3*count*1000, IUB);
+ret = fastaRandom(5*count*1000, HomoSap);
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-tagcloud.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-tagcloud.js
new file mode 100644
index 000000000..d3e5a1fb1
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-tagcloud.js
@@ -0,0 +1,265 @@
+
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ Portions from:
+ json.js
+ 2007-10-10
+
+ Public Domain
+*/
+
+// This test parses a JSON string giving tag names and popularity, and
+// generates html markup for a "tagcloud" view.
+
+if (!Object.prototype.toJSONString) {
+
+ Array.prototype.toJSONString = function (w) {
+ var a = [], // The array holding the partial texts.
+ i, // Loop counter.
+ l = this.length,
+ v; // The value to be stringified.
+
+ for (i = 0; i < l; i += 1) {
+ v = this[i];
+ switch (typeof v) {
+ case 'object':
+
+ if (v && typeof v.toJSONString === 'function') {
+ a.push(v.toJSONString(w));
+ } else {
+ a.push('null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(v.toJSONString());
+ break;
+ default:
+ a.push('null');
+ }
+ }
+
+ return '[' + a.join(',') + ']';
+ };
+
+
+ Boolean.prototype.toJSONString = function () {
+ return String(this);
+ };
+
+
+ Date.prototype.toJSONString = function () {
+
+ function f(n) {
+
+ return n < 10 ? '0' + n : n;
+ }
+
+ return '"' + this.getUTCFullYear() + '-' +
+ f(this.getUTCMonth() + 1) + '-' +
+ f(this.getUTCDate()) + 'T' +
+ f(this.getUTCHours()) + ':' +
+ f(this.getUTCMinutes()) + ':' +
+ f(this.getUTCSeconds()) + 'Z"';
+ };
+
+
+ Number.prototype.toJSONString = function () {
+
+ return isFinite(this) ? String(this) : 'null';
+ };
+
+
+ Object.prototype.toJSONString = function (w) {
+ var a = [], // The array holding the partial texts.
+ k, // The current key.
+ i, // The loop counter.
+ v; // The current value.
+
+ if (w) {
+ for (i = 0; i < w.length; i += 1) {
+ k = w[i];
+ if (typeof k === 'string') {
+ v = this[k];
+ switch (typeof v) {
+ case 'object':
+
+ if (v) {
+ if (typeof v.toJSONString === 'function') {
+ a.push(k.toJSONString() + ':' +
+ v.toJSONString(w));
+ }
+ } else {
+ a.push(k.toJSONString() + ':null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(k.toJSONString() + ':' + v.toJSONString());
+
+ }
+ }
+ }
+ } else {
+
+ for (k in this) {
+ if (typeof k === 'string' &&
+ Object.prototype.hasOwnProperty.apply(this, [k])) {
+ v = this[k];
+ switch (typeof v) {
+ case 'object':
+
+ if (v) {
+ if (typeof v.toJSONString === 'function') {
+ a.push(k.toJSONString() + ':' +
+ v.toJSONString());
+ }
+ } else {
+ a.push(k.toJSONString() + ':null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(k.toJSONString() + ':' + v.toJSONString());
+
+ }
+ }
+ }
+ }
+
+ return '{' + a.join(',') + '}';
+ };
+
+
+ (function (s) {
+
+ var m = {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '"' : '\\"',
+ '\\': '\\\\'
+ };
+
+
+ s.parseJSON = function (filter) {
+ var j;
+
+ function walk(k, v) {
+ var i, n;
+ if (v && typeof v === 'object') {
+ for (i in v) {
+ if (Object.prototype.hasOwnProperty.apply(v, [i])) {
+ n = walk(i, v[i]);
+ if (n !== undefined) {
+ v[i] = n;
+ }
+ }
+ }
+ }
+ return filter(k, v);
+ }
+
+ if (/^[\],:{}\s]*$/.test(this.replace(/\\./g, '@').
+ replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g, ']').
+ replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
+
+ j = eval('(' + this + ')');
+
+ return typeof filter === 'function' ? walk('', j) : j;
+ }
+
+ throw new SyntaxError('parseJSON');
+ };
+
+
+ s.toJSONString = function () {
+
+ if (/["\\\x00-\x1f]/.test(this)) {
+ return '"' + this.replace(/[\x00-\x1f\\"]/g, function (a) {
+ var c = m[a];
+ if (c) {
+ return c;
+ }
+ c = a.charCodeAt();
+ return '\\u00' + Math.floor(c / 16).toString(16) +
+ (c % 16).toString(16);
+ }) + '"';
+ }
+ return '"' + this + '"';
+ };
+ })(String.prototype);
+}
+
+var tagInfoJSON = '[\n {\n \"tag\": "titillation",\n \"popularity\": 4294967296\n },\n {\n \"tag\": "foamless",\n \"popularity\": 1257718401\n },\n {\n \"tag\": "snarler",\n \"popularity\": 613166183\n },\n {\n \"tag\": "multangularness",\n \"popularity\": 368304452\n },\n {\n \"tag\": "Fesapo unventurous",\n \"popularity\": 248026512\n },\n {\n \"tag\": "esthesioblast",\n \"popularity\": 179556755\n },\n {\n \"tag\": "echeneidoid",\n \"popularity\": 136641578\n },\n {\n \"tag\": "embryoctony",\n \"popularity\": 107852576\n },\n {\n \"tag\": "undilatory",\n \"popularity\": 87537981\n },\n {\n \"tag\": "predisregard",\n \"popularity\": 72630939\n },\n {\n \"tag\": "allergenic",\n \"popularity\": 61345190\n },\n {\n \"tag\": "uncloudy",\n \"popularity\": 52580571\n },\n {\n \"tag\": "unforeseeably",\n \"popularity\": 45628109\n },\n {\n \"tag\": "sturniform",\n \"popularity\": 40013489\n },\n {\n \"tag\": "anesthetize",\n \"popularity\": 35409226\n },\n {\n \"tag\": "ametabolia",\n \"popularity\": 31583050\n },\n {\n \"tag\": "angiopathy",\n \"popularity\": 28366350\n },\n {\n \"tag\": "sultanaship",\n \"popularity\": 25634218\n },\n {\n \"tag\": "Frenchwise",\n \"popularity\": 23292461\n },\n {\n \"tag\": "cerviconasal",\n \"popularity\": 21268909\n },\n {\n \"tag\": "mercurialness",\n \"popularity\": 19507481\n },\n {\n \"tag\": "glutelin venditate",\n \"popularity\": 17964042\n },\n {\n \"tag\": "acred overblack",\n \"popularity\": 16603454\n },\n {\n \"tag\": "Atik",\n \"popularity\": 15397451\n },\n {\n \"tag\": "puncturer",\n \"popularity\": 14323077\n },\n {\n \"tag\": "pukatea",\n \"popularity\": 13361525\n },\n {\n \"tag\": "suberize",\n \"popularity\": 12497261\n },\n {\n \"tag\": "Godfrey",\n \"popularity\": 11717365\n },\n {\n \"tag\": "tetraptote",\n \"popularity\": 11011011\n },\n {\n \"tag\": "lucidness",\n \"popularity\": 10369074\n },\n {\n \"tag\": "tartness",\n \"popularity\": 9783815\n },\n {\n \"tag\": "axfetch",\n \"popularity\": 9248634\n },\n {\n \"tag\": "preacquittal",\n \"popularity\": 8757877\n },\n {\n \"tag\": "matris",\n \"popularity\": 8306671\n },\n {\n \"tag\": "hyphenate",\n \"popularity\": 7890801\n },\n {\n \"tag\": "semifabulous",\n \"popularity\": 7506606\n },\n {\n \"tag\": "oppressiveness",\n \"popularity\": 7150890\n },\n {\n \"tag\": "Protococcales",\n \"popularity\": 6820856\n },\n {\n \"tag\": "unpreventive",\n \"popularity\": 6514045\n },\n {\n \"tag\": "Cordia",\n \"popularity\": 6228289\n },\n {\n \"tag\": "Wakamba leaflike",\n \"popularity\": 5961668\n },\n {\n \"tag\": "dacryoma",\n \"popularity\": 5712480\n },\n {\n \"tag\": "inguinal",\n \"popularity\": 5479211\n },\n {\n \"tag\": "responseless",\n \"popularity\": 5260507\n },\n {\n \"tag\": "supplementarily",\n \"popularity\": 5055158\n },\n {\n \"tag\": "emu",\n \"popularity\": 4862079\n },\n {\n \"tag\": "countermeet",\n \"popularity\": 4680292\n },\n {\n \"tag\": "purrer",\n \"popularity\": 4508918\n },\n {\n \"tag\": "Corallinaceae",\n \"popularity\": 4347162\n },\n {\n \"tag\": "speculum",\n \"popularity\": 4194304\n },\n {\n \"tag\": "crimpness",\n \"popularity\": 4049690\n },\n {\n \"tag\": "antidetonant",\n \"popularity\": 3912727\n },\n {\n \"tag\": "topeewallah",\n \"popularity\": 3782875\n },\n {\n \"tag\": "fidalgo ballant",\n \"popularity\": 3659640\n },\n {\n \"tag\": "utriculose",\n \"popularity\": 3542572\n },\n {\n \"tag\": "testata",\n \"popularity\": 3431259\n },\n {\n \"tag\": "beltmaking",\n \"popularity\": 3325322\n },\n {\n \"tag\": "necrotype",\n \"popularity\": 3224413\n },\n {\n \"tag\": "ovistic",\n \"popularity\": 3128215\n },\n {\n \"tag\": "swindlership",\n \"popularity\": 3036431\n },\n {\n \"tag\": "augustal",\n \"popularity\": 2948792\n },\n {\n \"tag\": "Titoist",\n \"popularity\": 2865047\n },\n {\n \"tag\": "trisoctahedral",\n \"popularity\": 2784963\n },\n {\n \"tag\": "sequestrator",\n \"popularity\": 2708327\n },\n {\n \"tag\": "sideburns",\n \"popularity\": 2634939\n },\n {\n \"tag\": "paraphrasia",\n \"popularity\": 2564616\n },\n {\n \"tag\": "graminology unbay",\n \"popularity\": 2497185\n },\n {\n \"tag\": "acaridomatium emargination",\n \"popularity\": 2432487\n },\n {\n \"tag\": "roofward",\n \"popularity\": 2370373\n },\n {\n \"tag\": "lauder",\n \"popularity\": 2310705\n },\n {\n \"tag\": "subjunctive",\n \"popularity\": 2253354\n },\n {\n \"tag\": "subelongate",\n \"popularity\": 2198199\n },\n {\n \"tag\": "guacimo",\n \"popularity\": 2145128\n },\n {\n \"tag\": "cockade",\n \"popularity\": 2094033\n },\n {\n \"tag\": "misgauge",\n \"popularity\": 2044818\n },\n {\n \"tag\": "unexpensive",\n \"popularity\": 1997388\n },\n {\n \"tag\": "chebel",\n \"popularity\": 1951657\n },\n {\n \"tag\": "unpursuing",\n \"popularity\": 1907543\n },\n {\n \"tag\": "kilobar",\n \"popularity\": 1864969\n },\n {\n \"tag\": "obsecration",\n \"popularity\": 1823863\n },\n {\n \"tag\": "nacarine",\n \"popularity\": 1784157\n },\n {\n \"tag\": "spirituosity",\n \"popularity\": 1745787\n },\n {\n \"tag\": "movableness deity",\n \"popularity\": 1708692\n },\n {\n \"tag\": "exostracism",\n \"popularity\": 1672816\n },\n {\n \"tag\": "archipterygium",\n \"popularity\": 1638104\n },\n {\n \"tag\": "monostrophic",\n \"popularity\": 1604506\n },\n {\n \"tag\": "gynecide",\n \"popularity\": 1571974\n },\n {\n \"tag\": "gladden",\n \"popularity\": 1540462\n },\n {\n \"tag\": "throughbred",\n \"popularity\": 1509927\n },\n {\n \"tag\": "groper",\n \"popularity\": 1480329\n },\n {\n \"tag\": "Xenosaurus",\n \"popularity\": 1451628\n },\n {\n \"tag\": "photoetcher",\n \"popularity\": 1423788\n },\n {\n \"tag\": "glucosid",\n \"popularity\": 1396775\n },\n {\n \"tag\": "Galtonian",\n \"popularity\": 1370555\n },\n {\n \"tag\": "mesosporic",\n \"popularity\": 1345097\n },\n {\n \"tag\": "theody",\n \"popularity\": 1320370\n },\n {\n \"tag\": "zaffer",\n \"popularity\": 1296348\n },\n {\n \"tag\": "probiology",\n \"popularity\": 1273003\n },\n {\n \"tag\": "rhizomic",\n \"popularity\": 1250308\n },\n {\n \"tag\": "superphosphate",\n \"popularity\": 1228240\n },\n {\n \"tag\": "Hippolytan",\n \"popularity\": 1206776\n },\n {\n \"tag\": "garget",\n \"popularity\": 1185892\n },\n {\n \"tag\": "diploplacula",\n \"popularity\": 1165568\n },\n {\n \"tag\": "orohydrographical",\n \"popularity\": 1145785\n },\n {\n \"tag\": "enhypostatize",\n \"popularity\": 1126521\n },\n {\n \"tag\": "polisman",\n \"popularity\": 1107759\n },\n {\n \"tag\": "acetometer",\n \"popularity\": 1089482\n },\n {\n \"tag\": "unsnatched",\n \"popularity\": 1071672\n },\n {\n \"tag\": "yabber",\n \"popularity\": 1054313\n },\n {\n \"tag\": "demiwolf",\n \"popularity\": 1037390\n },\n {\n \"tag\": "chromascope",\n \"popularity\": 1020888\n },\n {\n \"tag\": "seamanship",\n \"popularity\": 1004794\n },\n {\n \"tag\": "nonfenestrated",\n \"popularity\": 989092\n },\n {\n \"tag\": "hydrophytism",\n \"popularity\": 973771\n },\n {\n \"tag\": "dotter",\n \"popularity\": 958819\n },\n {\n \"tag\": "thermoperiodism",\n \"popularity\": 944222\n },\n {\n \"tag\": "unlawyerlike",\n \"popularity\": 929970\n },\n {\n \"tag\": "enantiomeride citywards",\n \"popularity\": 916052\n },\n {\n \"tag\": "unmetallurgical",\n \"popularity\": 902456\n },\n {\n \"tag\": "prickled",\n \"popularity\": 889174\n },\n {\n \"tag\": "strangerwise manioc",\n \"popularity\": 876195\n },\n {\n \"tag\": "incisorial",\n \"popularity\": 863510\n },\n {\n \"tag\": "irrationalize",\n \"popularity\": 851110\n },\n {\n \"tag\": "nasology",\n \"popularity\": 838987\n },\n {\n \"tag\": "fatuism",\n \"popularity\": 827131\n },\n {\n \"tag\": "Huk",\n \"popularity\": 815535\n },\n {\n \"tag\": "properispomenon",\n \"popularity\": 804192\n },\n {\n \"tag\": "unpummelled",\n \"popularity\": 793094\n },\n {\n \"tag\": "technographically",\n \"popularity\": 782233\n },\n {\n \"tag\": "underfurnish",\n \"popularity\": 771603\n },\n {\n \"tag\": "sinter",\n \"popularity\": 761198\n },\n {\n \"tag\": "lateroanterior",\n \"popularity\": 751010\n },\n {\n \"tag\": "nonpersonification",\n \"popularity\": 741034\n },\n {\n \"tag\": "Sitophilus",\n \"popularity\": 731264\n },\n {\n \"tag\": "unstudded overexerted",\n \"popularity\": 721694\n },\n {\n \"tag\": "tracheation",\n \"popularity\": 712318\n },\n {\n \"tag\": "thirteenth begloze",\n \"popularity\": 703131\n },\n {\n \"tag\": "bespice",\n \"popularity\": 694129\n },\n {\n \"tag\": "doppia",\n \"popularity\": 685305\n },\n {\n \"tag\": "unadorned",\n \"popularity\": 676656\n },\n {\n \"tag\": "dovelet engraff",\n \"popularity\": 668176\n },\n {\n \"tag\": "diphyozooid",\n \"popularity\": 659862\n },\n {\n \"tag\": "mure",\n \"popularity\": 651708\n },\n {\n \"tag\": "Tripitaka",\n \"popularity\": 643710\n },\n {\n \"tag\": "Billjim",\n \"popularity\": 635865\n },\n {\n \"tag\": "pyramidical",\n \"popularity\": 628169\n },\n {\n \"tag\": "circumlocutionist",\n \"popularity\": 620617\n },\n {\n \"tag\": "slapstick",\n \"popularity\": 613207\n },\n {\n \"tag\": "preobedience",\n \"popularity\": 605934\n },\n {\n \"tag\": "unfriarlike",\n \"popularity\": 598795\n },\n {\n \"tag\": "microchromosome",\n \"popularity\": 591786\n },\n {\n \"tag\": "Orphicism",\n \"popularity\": 584905\n },\n {\n \"tag\": "peel",\n \"popularity\": 578149\n },\n {\n \"tag\": "obediential",\n \"popularity\": 571514\n },\n {\n \"tag\": "Peripatidea",\n \"popularity\": 564997\n },\n {\n \"tag\": "undoubtful",\n \"popularity\": 558596\n },\n {\n \"tag\": "lodgeable",\n \"popularity\": 552307\n },\n {\n \"tag\": "pustulated woodchat",\n \"popularity\": 546129\n },\n {\n \"tag\": "antepast",\n \"popularity\": 540057\n },\n {\n \"tag\": "sagittoid matrimoniously",\n \"popularity\": 534091\n },\n {\n \"tag\": "Albizzia",\n \"popularity\": 528228\n },\n {\n \"tag\": "Elateridae unnewness",\n \"popularity\": 522464\n },\n {\n \"tag\": "convertingness",\n \"popularity\": 516798\n },\n {\n \"tag\": "Pelew",\n \"popularity\": 511228\n },\n {\n \"tag\": "recapitulation",\n \"popularity\": 505751\n },\n {\n \"tag\": "shack",\n \"popularity\": 500365\n },\n {\n \"tag\": "unmellowed",\n \"popularity\": 495069\n },\n {\n \"tag\": "pavis capering",\n \"popularity\": 489859\n },\n {\n \"tag\": "fanfare",\n \"popularity\": 484735\n },\n {\n \"tag\": "sole",\n \"popularity\": 479695\n },\n {\n \"tag\": "subarcuate",\n \"popularity\": 474735\n },\n {\n \"tag\": "multivious",\n \"popularity\": 469856\n },\n {\n \"tag\": "squandermania",\n \"popularity\": 465054\n },\n {\n \"tag\": "scintle",\n \"popularity\": 460329\n },\n {\n \"tag\": "hash chirognomic",\n \"popularity\": 455679\n },\n {\n \"tag\": "linseed",\n \"popularity\": 451101\n },\n {\n \"tag\": "redoubtable",\n \"popularity\": 446596\n },\n {\n \"tag\": "poachy reimpact",\n \"popularity\": 442160\n },\n {\n \"tag\": "limestone",\n \"popularity\": 437792\n },\n {\n \"tag\": "serranid",\n \"popularity\": 433492\n },\n {\n \"tag\": "pohna",\n \"popularity\": 429258\n },\n {\n \"tag\": "warwolf",\n \"popularity\": 425088\n },\n {\n \"tag\": "ruthenous",\n \"popularity\": 420981\n },\n {\n \"tag\": "dover",\n \"popularity\": 416935\n },\n {\n \"tag\": "deuteroalbumose",\n \"popularity\": 412950\n },\n {\n \"tag\": "pseudoprophetic",\n \"popularity\": 409025\n },\n {\n \"tag\": "dissoluteness",\n \"popularity\": 405157\n },\n {\n \"tag\": "preinvention",\n \"popularity\": 401347\n },\n {\n \"tag\": "swagbellied",\n \"popularity\": 397592\n },\n {\n \"tag\": "Ophidia",\n \"popularity\": 393892\n },\n {\n \"tag\": "equanimity",\n \"popularity\": 390245\n },\n {\n \"tag\": "troutful",\n \"popularity\": 386651\n },\n {\n \"tag\": "uke",\n \"popularity\": 383108\n },\n {\n \"tag\": "preacquaint",\n \"popularity\": 379616\n },\n {\n \"tag\": "shoq",\n \"popularity\": 376174\n },\n {\n \"tag\": "yox",\n \"popularity\": 372780\n },\n {\n \"tag\": "unelemental",\n \"popularity\": 369434\n },\n {\n \"tag\": "Yavapai",\n \"popularity\": 366134\n },\n {\n \"tag\": "joulean",\n \"popularity\": 362880\n },\n {\n \"tag\": "dracontine",\n \"popularity\": 359672\n },\n {\n \"tag\": "hardmouth",\n \"popularity\": 356507\n },\n {\n \"tag\": "sylvanize",\n \"popularity\": 353386\n },\n {\n \"tag\": "intraparenchymatous meadowbur",\n \"popularity\": 350308\n },\n {\n \"tag\": "uncharily",\n \"popularity\": 347271\n },\n {\n \"tag\": "redtab flexibly",\n \"popularity\": 344275\n },\n {\n \"tag\": "centervelic",\n \"popularity\": 341319\n },\n {\n \"tag\": "unravellable",\n \"popularity\": 338403\n },\n {\n \"tag\": "infortunately",\n \"popularity\": 335526\n },\n {\n \"tag\": "cannel",\n \"popularity\": 332687\n },\n {\n \"tag\": "oxyblepsia",\n \"popularity\": 329885\n },\n {\n \"tag\": "Damon",\n \"popularity\": 327120\n },\n {\n \"tag\": "etherin",\n \"popularity\": 324391\n },\n {\n \"tag\": "luminal",\n \"popularity\": 321697\n },\n {\n \"tag\": "interrogatorily presbyte",\n \"popularity\": 319038\n },\n {\n \"tag\": "hemiclastic",\n \"popularity\": 316414\n },\n {\n \"tag\": "poh flush",\n \"popularity\": 313823\n },\n {\n \"tag\": "Psoroptes",\n \"popularity\": 311265\n },\n {\n \"tag\": "dispirit",\n \"popularity\": 308740\n },\n {\n \"tag\": "nashgab",\n \"popularity\": 306246\n },\n {\n \"tag\": "Aphidiinae",\n \"popularity\": 303784\n },\n {\n \"tag\": "rhapsody nonconstruction",\n \"popularity\": 301353\n },\n {\n \"tag\": "Osmond",\n \"popularity\": 298952\n },\n {\n \"tag\": "Leonis",\n \"popularity\": 296581\n },\n {\n \"tag\": "Lemnian",\n \"popularity\": 294239\n },\n {\n \"tag\": "acetonic gnathonic",\n \"popularity\": 291926\n },\n {\n \"tag\": "surculus",\n \"popularity\": 289641\n },\n {\n \"tag\": "diagonally",\n \"popularity\": 287384\n },\n {\n \"tag\": "counterpenalty",\n \"popularity\": 285154\n },\n {\n \"tag\": "Eugenie",\n \"popularity\": 282952\n },\n {\n \"tag\": "hornbook",\n \"popularity\": 280776\n },\n {\n \"tag\": "miscoin",\n \"popularity\": 278626\n },\n {\n \"tag\": "admi",\n \"popularity\": 276501\n },\n {\n \"tag\": "Tarmac",\n \"popularity\": 274402\n },\n {\n \"tag\": "inexplicable",\n \"popularity\": 272328\n },\n {\n \"tag\": "rascallion",\n \"popularity\": 270278\n },\n {\n \"tag\": "dusterman",\n \"popularity\": 268252\n },\n {\n \"tag\": "osteostomous unhoroscopic",\n \"popularity\": 266250\n },\n {\n \"tag\": "spinibulbar",\n \"popularity\": 264271\n },\n {\n \"tag\": "phototelegraphically",\n \"popularity\": 262315\n },\n {\n \"tag\": "Manihot",\n \"popularity\": 260381\n },\n {\n \"tag\": "neighborhood",\n \"popularity\": 258470\n },\n {\n \"tag\": "Vincetoxicum",\n \"popularity\": 256581\n },\n {\n \"tag\": "khirka",\n \"popularity\": 254713\n },\n {\n \"tag\": "conscriptive",\n \"popularity\": 252866\n },\n {\n \"tag\": "synechthran",\n \"popularity\": 251040\n },\n {\n \"tag\": "Guttiferales",\n \"popularity\": 249235\n },\n {\n \"tag\": "roomful",\n \"popularity\": 247450\n },\n {\n \"tag\": "germinal",\n \"popularity\": 245685\n },\n {\n \"tag\": "untraitorous",\n \"popularity\": 243939\n },\n {\n \"tag\": "nondissenting",\n \"popularity\": 242213\n },\n {\n \"tag\": "amotion",\n \"popularity\": 240506\n },\n {\n \"tag\": "badious",\n \"popularity\": 238817\n },\n {\n \"tag\": "sumpit",\n \"popularity\": 237147\n },\n {\n \"tag\": "ectozoic",\n \"popularity\": 235496\n },\n {\n \"tag\": "elvet",\n \"popularity\": 233862\n },\n {\n \"tag\": "underclerk",\n \"popularity\": 232246\n },\n {\n \"tag\": "reticency",\n \"popularity\": 230647\n },\n {\n \"tag\": "neutroclusion",\n \"popularity\": 229065\n },\n {\n \"tag\": "unbelieving",\n \"popularity\": 227500\n },\n {\n \"tag\": "histogenetic",\n \"popularity\": 225952\n },\n {\n \"tag\": "dermamyiasis",\n \"popularity\": 224421\n },\n {\n \"tag\": "telenergy",\n \"popularity\": 222905\n },\n {\n \"tag\": "axiomatic",\n \"popularity\": 221406\n },\n {\n \"tag\": "undominoed",\n \"popularity\": 219922\n },\n {\n \"tag\": "periosteoma",\n \"popularity\": 218454\n },\n {\n \"tag\": "justiciaryship",\n \"popularity\": 217001\n },\n {\n \"tag\": "autoluminescence",\n \"popularity\": 215563\n },\n {\n \"tag\": "osmous",\n \"popularity\": 214140\n },\n {\n \"tag\": "borgh",\n \"popularity\": 212731\n },\n {\n \"tag\": "bedebt",\n \"popularity\": 211337\n },\n {\n \"tag\": "considerableness adenoidism",\n \"popularity\": 209957\n },\n {\n \"tag\": "sailorizing",\n \"popularity\": 208592\n },\n {\n \"tag\": "Montauk",\n \"popularity\": 207240\n },\n {\n \"tag\": "Bridget",\n \"popularity\": 205901\n },\n {\n \"tag\": "Gekkota",\n \"popularity\": 204577\n },\n {\n \"tag\": "subcorymbose",\n \"popularity\": 203265\n },\n {\n \"tag\": "undersap",\n \"popularity\": 201967\n },\n {\n \"tag\": "poikilothermic",\n \"popularity\": 200681\n },\n {\n \"tag\": "enneatical",\n \"popularity\": 199409\n },\n {\n \"tag\": "martinetism",\n \"popularity\": 198148\n },\n {\n \"tag\": "sustanedly",\n \"popularity\": 196901\n },\n {\n \"tag\": "declaration",\n \"popularity\": 195665\n },\n {\n \"tag\": "myringoplasty",\n \"popularity\": 194442\n },\n {\n \"tag\": "Ginkgo",\n \"popularity\": 193230\n },\n {\n \"tag\": "unrecurrent",\n \"popularity\": 192031\n },\n {\n \"tag\": "proprecedent",\n \"popularity\": 190843\n },\n {\n \"tag\": "roadman",\n \"popularity\": 189666\n },\n {\n \"tag\": "elemin",\n \"popularity\": 188501\n },\n {\n \"tag\": "maggot",\n \"popularity\": 187347\n },\n {\n \"tag\": "alitrunk",\n \"popularity\": 186204\n },\n {\n \"tag\": "introspection",\n \"popularity\": 185071\n },\n {\n \"tag\": "batiker",\n \"popularity\": 183950\n },\n {\n \"tag\": "backhatch oversettle",\n \"popularity\": 182839\n },\n {\n \"tag\": "thresherman",\n \"popularity\": 181738\n },\n {\n \"tag\": "protemperance",\n \"popularity\": 180648\n },\n {\n \"tag\": "undern",\n \"popularity\": 179568\n },\n {\n \"tag\": "tweeg",\n \"popularity\": 178498\n },\n {\n \"tag\": "crosspath",\n \"popularity\": 177438\n },\n {\n \"tag\": "Tangaridae",\n \"popularity\": 176388\n },\n {\n \"tag\": "scrutation",\n \"popularity\": 175348\n },\n {\n \"tag\": "piecemaker",\n \"popularity\": 174317\n },\n {\n \"tag\": "paster",\n \"popularity\": 173296\n },\n {\n \"tag\": "unpretendingness",\n \"popularity\": 172284\n },\n {\n \"tag\": "inframundane",\n \"popularity\": 171281\n },\n {\n \"tag\": "kiblah",\n \"popularity\": 170287\n },\n {\n \"tag\": "playwrighting",\n \"popularity\": 169302\n },\n {\n \"tag\": "gonepoiesis snowslip",\n \"popularity\": 168326\n },\n {\n \"tag\": "hoodwise",\n \"popularity\": 167359\n },\n {\n \"tag\": "postseason",\n \"popularity\": 166401\n },\n {\n \"tag\": "equivocality",\n \"popularity\": 165451\n },\n {\n \"tag\": "Opiliaceae nuclease",\n \"popularity\": 164509\n },\n {\n \"tag\": "sextipara",\n \"popularity\": 163576\n },\n {\n \"tag\": "weeper",\n \"popularity\": 162651\n },\n {\n \"tag\": "frambesia",\n \"popularity\": 161735\n },\n {\n \"tag\": "answerable",\n \"popularity\": 160826\n },\n {\n \"tag\": "Trichosporum",\n \"popularity\": 159925\n },\n {\n \"tag\": "cajuputol",\n \"popularity\": 159033\n },\n {\n \"tag\": "pleomorphous",\n \"popularity\": 158148\n },\n {\n \"tag\": "aculeolate",\n \"popularity\": 157270\n },\n {\n \"tag\": "wherever",\n \"popularity\": 156400\n },\n {\n \"tag\": "collapse",\n \"popularity\": 155538\n },\n {\n \"tag\": "porky",\n \"popularity\": 154683\n },\n {\n \"tag\": "perule",\n \"popularity\": 153836\n },\n {\n \"tag\": "Nevada",\n \"popularity\": 152996\n },\n {\n \"tag\": "conalbumin",\n \"popularity\": 152162\n },\n {\n \"tag\": "tsunami",\n \"popularity\": 151336\n },\n {\n \"tag\": "Gulf",\n \"popularity\": 150517\n },\n {\n \"tag\": "hertz",\n \"popularity\": 149705\n },\n {\n \"tag\": "limmock",\n \"popularity\": 148900\n },\n {\n \"tag\": "Tartarize",\n \"popularity\": 148101\n },\n {\n \"tag\": "entosphenoid",\n \"popularity\": 147310\n },\n {\n \"tag\": "ibis",\n \"popularity\": 146524\n },\n {\n \"tag\": "unyeaned",\n \"popularity\": 145746\n },\n {\n \"tag\": "tritural",\n \"popularity\": 144973\n },\n {\n \"tag\": "hundredary",\n \"popularity\": 144207\n },\n {\n \"tag\": "stolonlike",\n \"popularity\": 143448\n },\n {\n \"tag\": "chorister",\n \"popularity\": 142694\n },\n {\n \"tag\": "mismove",\n \"popularity\": 141947\n },\n {\n \"tag\": "Andine",\n \"popularity\": 141206\n },\n {\n \"tag\": "Annette proneur escribe",\n \"popularity\": 140471\n },\n {\n \"tag\": "exoperidium",\n \"popularity\": 139742\n },\n {\n \"tag\": "disedge",\n \"popularity\": 139019\n },\n {\n \"tag\": "hypochloruria",\n \"popularity\": 138302\n },\n {\n \"tag\": "prepupa",\n \"popularity\": 137590\n },\n {\n \"tag\": "assent",\n \"popularity\": 136884\n },\n {\n \"tag\": "hydrazobenzene",\n \"popularity\": 136184\n },\n {\n \"tag\": "emballonurid",\n \"popularity\": 135489\n },\n {\n \"tag\": "roselle",\n \"popularity\": 134800\n },\n {\n \"tag\": "unifiedly",\n \"popularity\": 134117\n },\n {\n \"tag\": "clang",\n \"popularity\": 133439\n },\n {\n \"tag\": "acetolytic",\n \"popularity\": 132766\n },\n {\n \"tag\": "cladodont",\n \"popularity\": 132098\n },\n {\n \"tag\": "recoast",\n \"popularity\": 131436\n },\n {\n \"tag\": "celebrated tydie Eocarboniferous",\n \"popularity\": 130779\n },\n {\n \"tag\": "superconsciousness",\n \"popularity\": 130127\n },\n {\n \"tag\": "soberness",\n \"popularity\": 129480\n },\n {\n \"tag\": "panoramist",\n \"popularity\": 128838\n },\n {\n \"tag\": "Orbitolina",\n \"popularity\": 128201\n },\n {\n \"tag\": "overlewd",\n \"popularity\": 127569\n },\n {\n \"tag\": "demiquaver",\n \"popularity\": 126942\n },\n {\n \"tag\": "kamelaukion",\n \"popularity\": 126319\n },\n {\n \"tag\": "flancard",\n \"popularity\": 125702\n },\n {\n \"tag\": "tricuspid",\n \"popularity\": 125089\n },\n {\n \"tag\": "bepelt",\n \"popularity\": 124480\n },\n {\n \"tag\": "decuplet",\n \"popularity\": 123877\n },\n {\n \"tag\": "Rockies",\n \"popularity\": 123278\n },\n {\n \"tag\": "unforgeability",\n \"popularity\": 122683\n },\n {\n \"tag\": "mocha",\n \"popularity\": 122093\n },\n {\n \"tag\": "scrunge",\n \"popularity\": 121507\n },\n {\n \"tag\": "delighter",\n \"popularity\": 120926\n },\n {\n \"tag\": "willey Microtinae",\n \"popularity\": 120349\n },\n {\n \"tag\": "unhuntable",\n \"popularity\": 119777\n },\n {\n \"tag\": "historically",\n \"popularity\": 119208\n },\n {\n \"tag\": "vicegerentship",\n \"popularity\": 118644\n },\n {\n \"tag\": "hemangiosarcoma",\n \"popularity\": 118084\n },\n {\n \"tag\": "harpago",\n \"popularity\": 117528\n },\n {\n \"tag\": "unionoid",\n \"popularity\": 116976\n },\n {\n \"tag\": "wiseman",\n \"popularity\": 116429\n },\n {\n \"tag\": "diclinism",\n \"popularity\": 115885\n },\n {\n \"tag\": "Maud",\n \"popularity\": 115345\n },\n {\n \"tag\": "scaphocephalism",\n \"popularity\": 114809\n },\n {\n \"tag\": "obtenebration",\n \"popularity\": 114277\n },\n {\n \"tag\": "cymar predreadnought",\n \"popularity\": 113749\n },\n {\n \"tag\": "discommend",\n \"popularity\": 113225\n },\n {\n \"tag\": "crude",\n \"popularity\": 112704\n },\n {\n \"tag\": "upflash",\n \"popularity\": 112187\n },\n {\n \"tag\": "saltimbank",\n \"popularity\": 111674\n },\n {\n \"tag\": "posthysterical",\n \"popularity\": 111165\n },\n {\n \"tag\": "trample",\n \"popularity\": 110659\n },\n {\n \"tag\": "ungirthed",\n \"popularity\": 110157\n },\n {\n \"tag\": "unshakable",\n \"popularity\": 109658\n },\n {\n \"tag\": "hepatocystic",\n \"popularity\": 109163\n },\n {\n \"tag\": "psammophyte",\n \"popularity\": 108671\n },\n {\n \"tag\": "millionfold",\n \"popularity\": 108183\n },\n {\n \"tag\": "outtaste",\n \"popularity\": 107698\n },\n {\n \"tag\": "poppycockish",\n \"popularity\": 107217\n },\n {\n \"tag\": "viduine",\n \"popularity\": 106739\n },\n {\n \"tag\": "pleasureman",\n \"popularity\": 106264\n },\n {\n \"tag\": "cholesterolemia",\n \"popularity\": 105792\n },\n {\n \"tag\": "hostlerwife",\n \"popularity\": 105324\n },\n {\n \"tag\": "figure undergrass",\n \"popularity\": 104859\n },\n {\n \"tag\": "bedrape",\n \"popularity\": 104398\n },\n {\n \"tag\": "nuttishness",\n \"popularity\": 103939\n },\n {\n \"tag\": "fow",\n \"popularity\": 103484\n },\n {\n \"tag\": "rachianesthesia",\n \"popularity\": 103031\n },\n {\n \"tag\": "recruitable",\n \"popularity\": 102582\n },\n {\n \"tag\": "semianatomical Oenotheraceae",\n \"popularity\": 102136\n },\n {\n \"tag\": "extracapsular",\n \"popularity\": 101693\n },\n {\n \"tag\": "unsigneted",\n \"popularity\": 101253\n },\n {\n \"tag\": "fissural",\n \"popularity\": 100816\n },\n {\n \"tag\": "ayous",\n \"popularity\": 100381\n },\n {\n \"tag\": "crestfallenness odontograph",\n \"popularity\": 99950\n },\n {\n \"tag\": "monopodium",\n \"popularity\": 99522\n },\n {\n \"tag\": "germfree",\n \"popularity\": 99096\n },\n {\n \"tag\": "dauphin",\n \"popularity\": 98673\n },\n {\n \"tag\": "nonagesimal",\n \"popularity\": 98254\n },\n {\n \"tag\": "waterchat",\n \"popularity\": 97836\n },\n {\n \"tag\": "Entelodon",\n \"popularity\": 97422\n },\n {\n \"tag\": "semischolastic",\n \"popularity\": 97010\n },\n {\n \"tag\": "somata",\n \"popularity\": 96602\n },\n {\n \"tag\": "expositorily",\n \"popularity\": 96195\n },\n {\n \"tag\": "bass",\n \"popularity\": 95792\n },\n {\n \"tag\": "calorimetry",\n \"popularity\": 95391\n },\n {\n \"tag\": "entireness",\n \"popularity\": 94993\n },\n {\n \"tag\": "ratline soppiness",\n \"popularity\": 94597\n },\n {\n \"tag\": "shor",\n \"popularity\": 94204\n },\n {\n \"tag\": "coprecipitation",\n \"popularity\": 93813\n },\n {\n \"tag\": "unblushingly",\n \"popularity\": 93425\n },\n {\n \"tag\": "macarize",\n \"popularity\": 93040\n },\n {\n \"tag\": "scruplesomeness",\n \"popularity\": 92657\n },\n {\n \"tag\": "offsaddle",\n \"popularity\": 92276\n },\n {\n \"tag\": "hypertragical",\n \"popularity\": 91898\n },\n {\n \"tag\": "uncassock loined",\n \"popularity\": 91522\n },\n {\n \"tag\": "interlobate",\n \"popularity\": 91149\n },\n {\n \"tag\": "releasor orrisroot stoloniferously",\n \"popularity\": 90778\n },\n {\n \"tag\": "elementoid",\n \"popularity\": 90410\n },\n {\n \"tag\": "Lentilla",\n \"popularity\": 90043\n },\n {\n \"tag\": "distressing",\n \"popularity\": 89679\n },\n {\n \"tag\": "hydrodrome",\n \"popularity\": 89318\n },\n {\n \"tag\": "Jeannette",\n \"popularity\": 88958\n },\n {\n \"tag\": "Kuli",\n \"popularity\": 88601\n },\n {\n \"tag\": "taxinomist",\n \"popularity\": 88246\n },\n {\n \"tag\": "southwestwardly",\n \"popularity\": 87894\n },\n {\n \"tag\": "polyparia",\n \"popularity\": 87543\n },\n {\n \"tag\": "exmeridian",\n \"popularity\": 87195\n },\n {\n \"tag\": "splenius regimentaled",\n \"popularity\": 86849\n },\n {\n \"tag\": "Sphaeropsidaceae",\n \"popularity\": 86505\n },\n {\n \"tag\": "unbegun",\n \"popularity\": 86163\n },\n {\n \"tag\": "something",\n \"popularity\": 85823\n },\n {\n \"tag\": "contaminable nonexpulsion",\n \"popularity\": 85486\n },\n {\n \"tag\": "douser",\n \"popularity\": 85150\n },\n {\n \"tag\": "prostrike",\n \"popularity\": 84817\n },\n {\n \"tag\": "worky",\n \"popularity\": 84485\n },\n {\n \"tag\": "folliful",\n \"popularity\": 84156\n },\n {\n \"tag\": "prioracy",\n \"popularity\": 83828\n },\n {\n \"tag\": "undermentioned",\n \"popularity\": 83503\n },\n {\n \"tag\": "Judaica",\n \"popularity\": 83179\n },\n {\n \"tag\": "multifarious",\n \"popularity\": 82858\n },\n {\n \"tag\": "poogye",\n \"popularity\": 82538\n },\n {\n \"tag\": "Sparganium",\n \"popularity\": 82221\n },\n {\n \"tag\": "thurrock",\n \"popularity\": 81905\n },\n {\n \"tag\": "outblush",\n \"popularity\": 81591\n },\n {\n \"tag\": "Strophanthus supraordination",\n \"popularity\": 81279\n },\n {\n \"tag\": "gingerroot",\n \"popularity\": 80969\n },\n {\n \"tag\": "unconscient",\n \"popularity\": 80661\n },\n {\n \"tag\": "unconstitutionally",\n \"popularity\": 80354\n },\n {\n \"tag\": "plaguily",\n \"popularity\": 80050\n },\n {\n \"tag\": "waterily equatorwards",\n \"popularity\": 79747\n },\n {\n \"tag\": "nondeposition",\n \"popularity\": 79446\n },\n {\n \"tag\": "dronishly",\n \"popularity\": 79147\n },\n {\n \"tag\": "gateado",\n \"popularity\": 78849\n },\n {\n \"tag\": "dislink",\n \"popularity\": 78553\n },\n {\n \"tag\": "Joceline",\n \"popularity\": 78259\n },\n {\n \"tag\": "amphiboliferous",\n \"popularity\": 77967\n },\n {\n \"tag\": "bushrope",\n \"popularity\": 77676\n },\n {\n \"tag\": "plumicorn sulphosalicylic",\n \"popularity\": 77387\n },\n {\n \"tag\": "nonefficiency",\n \"popularity\": 77100\n },\n {\n \"tag\": "hieroscopy",\n \"popularity\": 76815\n },\n {\n \"tag\": "causativeness",\n \"popularity\": 76531\n },\n {\n \"tag\": "swird paleoeremology",\n \"popularity\": 76249\n },\n {\n \"tag\": "camphoric",\n \"popularity\": 75968\n },\n {\n \"tag\": "retaining",\n \"popularity\": 75689\n },\n {\n \"tag\": "thyreoprotein",\n \"popularity\": 75411\n },\n {\n \"tag\": "carbona",\n \"popularity\": 75136\n },\n {\n \"tag\": "protectively",\n \"popularity\": 74861\n },\n {\n \"tag\": "mosasaur",\n \"popularity\": 74589\n },\n {\n \"tag\": "reciprocator",\n \"popularity\": 74317\n },\n {\n \"tag\": "detentive",\n \"popularity\": 74048\n },\n {\n \"tag\": "supravital",\n \"popularity\": 73780\n },\n {\n \"tag\": "Vespertilionidae",\n \"popularity\": 73513\n },\n {\n \"tag\": "parka",\n \"popularity\": 73248\n },\n {\n \"tag\": "pickaway",\n \"popularity\": 72984\n },\n {\n \"tag\": "oleaceous",\n \"popularity\": 72722\n },\n {\n \"tag\": "anticogitative",\n \"popularity\": 72462\n },\n {\n \"tag\": "woe",\n \"popularity\": 72203\n },\n {\n \"tag\": "skeuomorph",\n \"popularity\": 71945\n },\n {\n \"tag\": "helpmeet",\n \"popularity\": 71689\n },\n {\n \"tag\": "Hexactinellida brickmaking",\n \"popularity\": 71434\n },\n {\n \"tag\": "resink",\n \"popularity\": 71180\n },\n {\n \"tag\": "diluter",\n \"popularity\": 70928\n },\n {\n \"tag\": "micromicron",\n \"popularity\": 70677\n },\n {\n \"tag\": "parentage",\n \"popularity\": 70428\n },\n {\n \"tag\": "galactorrhoea",\n \"popularity\": 70180\n },\n {\n \"tag\": "gey",\n \"popularity\": 69934\n },\n {\n \"tag\": "gesticulatory",\n \"popularity\": 69689\n },\n {\n \"tag\": "wergil",\n \"popularity\": 69445\n },\n {\n \"tag\": "Lecanora",\n \"popularity\": 69202\n },\n {\n \"tag\": "malanders karst",\n \"popularity\": 68961\n },\n {\n \"tag\": "vibetoite",\n \"popularity\": 68721\n },\n {\n \"tag\": "unrequitedness",\n \"popularity\": 68483\n },\n {\n \"tag\": "outwash",\n \"popularity\": 68245\n },\n {\n \"tag\": "unsacred",\n \"popularity\": 68009\n },\n {\n \"tag\": "unabetted dividend",\n \"popularity\": 67775\n },\n {\n \"tag\": "untraveling",\n \"popularity\": 67541\n },\n {\n \"tag\": "thermobattery",\n \"popularity\": 67309\n },\n {\n \"tag\": "polypragmist",\n \"popularity\": 67078\n },\n {\n \"tag\": "irrefutableness",\n \"popularity\": 66848\n },\n {\n \"tag\": "remiges",\n \"popularity\": 66620\n },\n {\n \"tag\": "implode",\n \"popularity\": 66393\n },\n {\n \"tag\": "superfluousness",\n \"popularity\": 66166\n },\n {\n \"tag\": "croakily unalleviated",\n \"popularity\": 65942\n },\n {\n \"tag\": "edicule",\n \"popularity\": 65718\n },\n {\n \"tag\": "entophytous",\n \"popularity\": 65495\n },\n {\n \"tag\": "benefactorship Toryish",\n \"popularity\": 65274\n },\n {\n \"tag\": "pseudoamateurish",\n \"popularity\": 65054\n },\n {\n \"tag\": "flueless Iguanodontoidea snipnose",\n \"popularity\": 64835\n },\n {\n \"tag\": "zealotical Zamicrus interpole",\n \"popularity\": 64617\n },\n {\n \"tag\": "whereabout",\n \"popularity\": 64401\n },\n {\n \"tag\": "benzazide",\n \"popularity\": 64185\n },\n {\n \"tag\": "pokeweed",\n \"popularity\": 63971\n },\n {\n \"tag\": "calamitoid",\n \"popularity\": 63757\n },\n {\n \"tag\": "sporozoal",\n \"popularity\": 63545\n },\n {\n \"tag\": "physcioid Welshwoman",\n \"popularity\": 63334\n },\n {\n \"tag\": "wanting",\n \"popularity\": 63124\n },\n {\n \"tag\": "unencumbering",\n \"popularity\": 62915\n },\n {\n \"tag\": "Tupi",\n \"popularity\": 62707\n },\n {\n \"tag\": "potbank",\n \"popularity\": 62501\n },\n {\n \"tag\": "bulked",\n \"popularity\": 62295\n },\n {\n \"tag\": "uparise",\n \"popularity\": 62090\n },\n {\n \"tag\": "Sudra",\n \"popularity\": 61887\n },\n {\n \"tag\": "hyperscrupulosity",\n \"popularity\": 61684\n },\n {\n \"tag\": "subterraneously unmaid",\n \"popularity\": 61483\n },\n {\n \"tag\": "poisonousness",\n \"popularity\": 61282\n },\n {\n \"tag\": "phare",\n \"popularity\": 61083\n },\n {\n \"tag\": "dicynodont",\n \"popularity\": 60884\n },\n {\n \"tag\": "chewer",\n \"popularity\": 60687\n },\n {\n \"tag\": "uliginous",\n \"popularity\": 60490\n },\n {\n \"tag\": "tinman",\n \"popularity\": 60295\n },\n {\n \"tag\": "coconut",\n \"popularity\": 60100\n },\n {\n \"tag\": "phryganeoid",\n \"popularity\": 59907\n },\n {\n \"tag\": "bismillah",\n \"popularity\": 59714\n },\n {\n \"tag\": "tautomeric",\n \"popularity\": 59523\n },\n {\n \"tag\": "jerquer",\n \"popularity\": 59332\n },\n {\n \"tag\": "Dryopithecinae",\n \"popularity\": 59143\n },\n {\n \"tag\": "ghizite",\n \"popularity\": 58954\n },\n {\n \"tag\": "unliveable",\n \"popularity\": 58766\n },\n {\n \"tag\": "craftsmaster",\n \"popularity\": 58579\n },\n {\n \"tag\": "semiscenic",\n \"popularity\": 58394\n },\n {\n \"tag\": "danaid",\n \"popularity\": 58209\n },\n {\n \"tag\": "flawful",\n \"popularity\": 58025\n },\n {\n \"tag\": "risibleness",\n \"popularity\": 57841\n },\n {\n \"tag\": "Muscovite",\n \"popularity\": 57659\n },\n {\n \"tag\": "snaringly",\n \"popularity\": 57478\n },\n {\n \"tag\": "brilliantwise",\n \"popularity\": 57297\n },\n {\n \"tag\": "plebeity",\n \"popularity\": 57118\n },\n {\n \"tag\": "historicalness",\n \"popularity\": 56939\n },\n {\n \"tag\": "piecemeal",\n \"popularity\": 56761\n },\n {\n \"tag\": "maxillipedary",\n \"popularity\": 56584\n },\n {\n \"tag\": "Hypenantron",\n \"popularity\": 56408\n },\n {\n \"tag\": "quaintness avigate",\n \"popularity\": 56233\n },\n {\n \"tag\": "ave",\n \"popularity\": 56059\n },\n {\n \"tag\": "mediaevally",\n \"popularity\": 55885\n },\n {\n \"tag\": "brucite",\n \"popularity\": 55712\n },\n {\n \"tag\": "Schwendenerian",\n \"popularity\": 55541\n },\n {\n \"tag\": "julole",\n \"popularity\": 55370\n },\n {\n \"tag\": "palaeolith",\n \"popularity\": 55199\n },\n {\n \"tag\": "cotyledonary",\n \"popularity\": 55030\n },\n {\n \"tag\": "rond",\n \"popularity\": 54861\n },\n {\n \"tag\": "boomster tassoo",\n \"popularity\": 54694\n },\n {\n \"tag\": "cattishly",\n \"popularity\": 54527\n },\n {\n \"tag\": "tonguefence",\n \"popularity\": 54360\n },\n {\n \"tag\": "hexastylar triskele",\n \"popularity\": 54195\n },\n {\n \"tag\": "ariot",\n \"popularity\": 54030\n },\n {\n \"tag\": "intarsist",\n \"popularity\": 53867\n },\n {\n \"tag\": "Oscines",\n \"popularity\": 53704\n },\n {\n \"tag\": "Spaniolize",\n \"popularity\": 53541\n },\n {\n \"tag\": "smellfungus",\n \"popularity\": 53380\n },\n {\n \"tag\": "redisplay",\n \"popularity\": 53219\n },\n {\n \"tag\": "phosphene",\n \"popularity\": 53059\n },\n {\n \"tag\": "phycomycete",\n \"popularity\": 52900\n },\n {\n \"tag\": "prophetic",\n \"popularity\": 52741\n },\n {\n \"tag\": "overtrustful",\n \"popularity\": 52584\n },\n {\n \"tag\": "pinitol",\n \"popularity\": 52427\n },\n {\n \"tag\": "asthmatic",\n \"popularity\": 52270\n },\n {\n \"tag\": "convulsive",\n \"popularity\": 52115\n },\n {\n \"tag\": "draughtswoman",\n \"popularity\": 51960\n },\n {\n \"tag\": "unetymologizable",\n \"popularity\": 51806\n },\n {\n \"tag\": "centrarchoid",\n \"popularity\": 51652\n },\n {\n \"tag\": "mesioincisal",\n \"popularity\": 51500\n },\n {\n \"tag\": "transbaikal",\n \"popularity\": 51348\n },\n {\n \"tag\": "silveriness",\n \"popularity\": 51196\n },\n {\n \"tag\": "costotomy",\n \"popularity\": 51046\n },\n {\n \"tag\": "caracore",\n \"popularity\": 50896\n },\n {\n \"tag\": "depotentiation",\n \"popularity\": 50747\n },\n {\n \"tag\": "glossoepiglottidean",\n \"popularity\": 50598\n },\n {\n \"tag\": "upswell",\n \"popularity\": 50450\n },\n {\n \"tag\": "flecnodal",\n \"popularity\": 50303\n },\n {\n \"tag\": "coventrate",\n \"popularity\": 50157\n },\n {\n \"tag\": "duchesse",\n \"popularity\": 50011\n },\n {\n \"tag\": "excisemanship trophied",\n \"popularity\": 49866\n },\n {\n \"tag\": "cytinaceous",\n \"popularity\": 49721\n },\n {\n \"tag\": "assuringly",\n \"popularity\": 49577\n },\n {\n \"tag\": "unconducted upliftitis",\n \"popularity\": 49434\n },\n {\n \"tag\": "rachicentesis",\n \"popularity\": 49292\n },\n {\n \"tag\": "antiangular",\n \"popularity\": 49150\n },\n {\n \"tag\": "advisal",\n \"popularity\": 49008\n },\n {\n \"tag\": "birdcatcher",\n \"popularity\": 48868\n },\n {\n \"tag\": "secularistic",\n \"popularity\": 48728\n },\n {\n \"tag\": "grandeeism superinformal",\n \"popularity\": 48588\n },\n {\n \"tag\": "unapprehension",\n \"popularity\": 48449\n },\n {\n \"tag\": "excipulum",\n \"popularity\": 48311\n },\n {\n \"tag\": "decimole",\n \"popularity\": 48174\n },\n {\n \"tag\": "semidrachm",\n \"popularity\": 48037\n },\n {\n \"tag\": "uvulotome",\n \"popularity\": 47901\n },\n {\n \"tag\": "Lemaneaceae",\n \"popularity\": 47765\n },\n {\n \"tag\": "corrade",\n \"popularity\": 47630\n },\n {\n \"tag\": "Kuroshio",\n \"popularity\": 47495\n },\n {\n \"tag\": "Araliophyllum",\n \"popularity\": 47361\n },\n {\n \"tag\": "victoriousness cardiosphygmograph",\n \"popularity\": 47228\n },\n {\n \"tag\": "reinvent",\n \"popularity\": 47095\n },\n {\n \"tag\": "Macrotolagus",\n \"popularity\": 46963\n },\n {\n \"tag\": "strenuousness",\n \"popularity\": 46831\n },\n {\n \"tag\": "deviability",\n \"popularity\": 46700\n },\n {\n \"tag\": "phyllospondylous",\n \"popularity\": 46570\n },\n {\n \"tag\": "bisect rudderhole",\n \"popularity\": 46440\n },\n {\n \"tag\": "crownwork",\n \"popularity\": 46311\n },\n {\n \"tag\": "Ascalabota",\n \"popularity\": 46182\n },\n {\n \"tag\": "prostatomyomectomy",\n \"popularity\": 46054\n },\n {\n \"tag\": "neurosyphilis",\n \"popularity\": 45926\n },\n {\n \"tag\": "tabloid scraplet",\n \"popularity\": 45799\n },\n {\n \"tag\": "nonmedullated servility",\n \"popularity\": 45673\n },\n {\n \"tag\": "melopoeic practicalization",\n \"popularity\": 45547\n },\n {\n \"tag\": "nonrhythmic",\n \"popularity\": 45421\n },\n {\n \"tag\": "deplorer",\n \"popularity\": 45296\n },\n {\n \"tag\": "Ophion",\n \"popularity\": 45172\n },\n {\n \"tag\": "subprioress",\n \"popularity\": 45048\n },\n {\n \"tag\": "semiregular",\n \"popularity\": 44925\n },\n {\n \"tag\": "praelection",\n \"popularity\": 44802\n },\n {\n \"tag\": "discinct",\n \"popularity\": 44680\n },\n {\n \"tag\": "preplace",\n \"popularity\": 44558\n },\n {\n \"tag\": "paternoster",\n \"popularity\": 44437\n },\n {\n \"tag\": "suboccipital",\n \"popularity\": 44316\n },\n {\n \"tag\": "Teutophil",\n \"popularity\": 44196\n },\n {\n \"tag\": "tracheole",\n \"popularity\": 44076\n },\n {\n \"tag\": "subsmile",\n \"popularity\": 43957\n },\n {\n \"tag\": "nonapostatizing",\n \"popularity\": 43839\n },\n {\n \"tag\": "cleidotomy",\n \"popularity\": 43720\n },\n {\n \"tag\": "hingle",\n \"popularity\": 43603\n },\n {\n \"tag\": "jocoque",\n \"popularity\": 43486\n },\n {\n \"tag\": "trundler notidanian",\n \"popularity\": 43369\n },\n {\n \"tag\": "strangling misdaub",\n \"popularity\": 43253\n },\n {\n \"tag\": "noncancellable",\n \"popularity\": 43137\n },\n {\n \"tag\": "lavabo",\n \"popularity\": 43022\n },\n {\n \"tag\": "lanterloo",\n \"popularity\": 42907\n },\n {\n \"tag\": "uncitizenly",\n \"popularity\": 42793\n },\n {\n \"tag\": "autoturning",\n \"popularity\": 42679\n },\n {\n \"tag\": "Haganah",\n \"popularity\": 42566\n },\n {\n \"tag\": "Glecoma",\n \"popularity\": 42453\n },\n {\n \"tag\": "membered",\n \"popularity\": 42341\n },\n {\n \"tag\": "consuetudinal",\n \"popularity\": 42229\n },\n {\n \"tag\": "gatehouse",\n \"popularity\": 42117\n },\n {\n \"tag\": "tetherball",\n \"popularity\": 42006\n },\n {\n \"tag\": "counterrevolutionist numismatical",\n \"popularity\": 41896\n },\n {\n \"tag\": "pagehood plateiasmus",\n \"popularity\": 41786\n },\n {\n \"tag\": "pelterer",\n \"popularity\": 41676\n },\n {\n \"tag\": "splenemphraxis",\n \"popularity\": 41567\n },\n {\n \"tag\": "Crypturidae",\n \"popularity\": 41458\n },\n {\n \"tag\": "caboodle",\n \"popularity\": 41350\n },\n {\n \"tag\": "Filaria",\n \"popularity\": 41242\n },\n {\n \"tag\": "noninvincibility",\n \"popularity\": 41135\n },\n {\n \"tag\": "preadvertisement",\n \"popularity\": 41028\n },\n {\n \"tag\": "bathrobe",\n \"popularity\": 40921\n },\n {\n \"tag\": "nitrifier",\n \"popularity\": 40815\n },\n {\n \"tag\": "furthermore",\n \"popularity\": 40709\n },\n {\n \"tag\": "recrate",\n \"popularity\": 40604\n },\n {\n \"tag\": "inexist",\n \"popularity\": 40499\n },\n {\n \"tag\": "Mocoan",\n \"popularity\": 40395\n },\n {\n \"tag\": "forint",\n \"popularity\": 40291\n },\n {\n \"tag\": "cardiomyoliposis",\n \"popularity\": 40187\n },\n {\n \"tag\": "channeling",\n \"popularity\": 40084\n },\n {\n \"tag\": "quebrachine",\n \"popularity\": 39981\n },\n {\n \"tag\": "magistery",\n \"popularity\": 39879\n },\n {\n \"tag\": "koko",\n \"popularity\": 39777\n },\n {\n \"tag\": "nobilify",\n \"popularity\": 39676\n },\n {\n \"tag\": "articulate taprooted",\n \"popularity\": 39575\n },\n {\n \"tag\": "cardiotonic Nicaragua",\n \"popularity\": 39474\n },\n {\n \"tag\": "assertiveness",\n \"popularity\": 39374\n },\n {\n \"tag\": "springtail",\n \"popularity\": 39274\n },\n {\n \"tag\": "spontoon",\n \"popularity\": 39174\n },\n {\n \"tag\": "plesiobiosis",\n \"popularity\": 39075\n },\n {\n \"tag\": "rooinek",\n \"popularity\": 38976\n },\n {\n \"tag\": "hairif falsehood",\n \"popularity\": 38878\n },\n {\n \"tag\": "synodally",\n \"popularity\": 38780\n },\n {\n \"tag\": "biodynamics",\n \"popularity\": 38683\n },\n {\n \"tag\": "trickling",\n \"popularity\": 38585\n },\n {\n \"tag\": "oxfly daystar",\n \"popularity\": 38489\n },\n {\n \"tag\": "epicycloidal",\n \"popularity\": 38392\n },\n {\n \"tag\": "shorthand",\n \"popularity\": 38296\n },\n {\n \"tag\": "herpolhode",\n \"popularity\": 38201\n },\n {\n \"tag\": "polysynthesism",\n \"popularity\": 38105\n },\n {\n \"tag\": "cany",\n \"popularity\": 38010\n },\n {\n \"tag\": "sideage",\n \"popularity\": 37916\n },\n {\n \"tag\": "strainableness",\n \"popularity\": 37822\n },\n {\n \"tag\": "superformidable",\n \"popularity\": 37728\n },\n {\n \"tag\": "slendang",\n \"popularity\": 37634\n },\n {\n \"tag\": "impropriation",\n \"popularity\": 37541\n },\n {\n \"tag\": "ficklehearted",\n \"popularity\": 37449\n },\n {\n \"tag\": "wintrify",\n \"popularity\": 37356\n },\n {\n \"tag\": "geomorphogenist",\n \"popularity\": 37264\n },\n {\n \"tag\": "smuggleable",\n \"popularity\": 37173\n },\n {\n \"tag\": "delapsion",\n \"popularity\": 37081\n },\n {\n \"tag\": "projective",\n \"popularity\": 36990\n },\n {\n \"tag\": "unglue exfoliation",\n \"popularity\": 36900\n },\n {\n \"tag\": "Acerae",\n \"popularity\": 36810\n },\n {\n \"tag\": "unstaged",\n \"popularity\": 36720\n },\n {\n \"tag\": "ranal",\n \"popularity\": 36630\n },\n {\n \"tag\": "worrier",\n \"popularity\": 36541\n },\n {\n \"tag\": "unhid",\n \"popularity\": 36452\n },\n {\n \"tag\": "adequation",\n \"popularity\": 36363\n },\n {\n \"tag\": "strongylid Sokotri",\n \"popularity\": 36275\n },\n {\n \"tag\": "fumingly",\n \"popularity\": 36187\n },\n {\n \"tag\": "gynosporangium phaenogenetic",\n \"popularity\": 36100\n },\n {\n \"tag\": "uniunguiculate",\n \"popularity\": 36012\n },\n {\n \"tag\": "prudelike",\n \"popularity\": 35926\n },\n {\n \"tag\": "seminomata",\n \"popularity\": 35839\n },\n {\n \"tag\": "trinklet",\n \"popularity\": 35753\n },\n {\n \"tag\": "risorial",\n \"popularity\": 35667\n },\n {\n \"tag\": "pericardiocentesis",\n \"popularity\": 35581\n },\n {\n \"tag\": "filmist",\n \"popularity\": 35496\n },\n {\n \"tag\": "Nana",\n \"popularity\": 35411\n },\n {\n \"tag\": "cynipoid",\n \"popularity\": 35326\n },\n {\n \"tag\": "cteniform",\n \"popularity\": 35242\n },\n {\n \"tag\": "semiflex",\n \"popularity\": 35158\n },\n {\n \"tag\": "solstitially",\n \"popularity\": 35074\n },\n {\n \"tag\": "Algarsife",\n \"popularity\": 34991\n },\n {\n \"tag\": "noncriminal",\n \"popularity\": 34908\n },\n {\n \"tag\": "compassion",\n \"popularity\": 34825\n },\n {\n \"tag\": "Buddhic",\n \"popularity\": 34743\n },\n {\n \"tag\": "vellicative dactylically hotfoot",\n \"popularity\": 34661\n },\n {\n \"tag\": "chicory",\n \"popularity\": 34579\n },\n {\n \"tag\": "transperitoneally",\n \"popularity\": 34497\n },\n {\n \"tag\": "pennae",\n \"popularity\": 34416\n },\n {\n \"tag\": "Flamandize",\n \"popularity\": 34335\n },\n {\n \"tag\": "underviewer",\n \"popularity\": 34254\n },\n {\n \"tag\": "assoil",\n \"popularity\": 34174\n },\n {\n \"tag\": "saccharobacillus",\n \"popularity\": 34094\n },\n {\n \"tag\": "biacetylene",\n \"popularity\": 34014\n },\n {\n \"tag\": "mouchardism",\n \"popularity\": 33935\n },\n {\n \"tag\": "anisomeric",\n \"popularity\": 33856\n },\n {\n \"tag\": "digestive",\n \"popularity\": 33777\n },\n {\n \"tag\": "darlingly",\n \"popularity\": 33698\n },\n {\n \"tag\": "liman",\n \"popularity\": 33620\n },\n {\n \"tag\": "soldanrie",\n \"popularity\": 33542\n },\n {\n \"tag\": "sully",\n \"popularity\": 33464\n },\n {\n \"tag\": "brightsmith",\n \"popularity\": 33387\n },\n {\n \"tag\": "inwrap antiliturgist ureterocervical",\n \"popularity\": 33309\n },\n {\n \"tag\": "discommodity",\n \"popularity\": 33232\n },\n {\n \"tag\": "typical aggrandizer",\n \"popularity\": 33156\n },\n {\n \"tag\": "xenogeny",\n \"popularity\": 33079\n },\n {\n \"tag\": "uncountrified",\n \"popularity\": 33003\n },\n {\n \"tag\": "Podarge",\n \"popularity\": 32928\n },\n {\n \"tag\": "uninterviewed",\n \"popularity\": 32852\n },\n {\n \"tag\": "underprior",\n \"popularity\": 32777\n },\n {\n \"tag\": "leiomyomatous",\n \"popularity\": 32702\n },\n {\n \"tag\": "postdysenteric",\n \"popularity\": 32627\n },\n {\n \"tag\": "Fusicladium",\n \"popularity\": 32553\n },\n {\n \"tag\": "Dulcinea",\n \"popularity\": 32478\n },\n {\n \"tag\": "interspersion",\n \"popularity\": 32404\n },\n {\n \"tag\": "preobligate",\n \"popularity\": 32331\n },\n {\n \"tag\": "subaggregate",\n \"popularity\": 32257\n },\n {\n \"tag\": "grammarianism",\n \"popularity\": 32184\n },\n {\n \"tag\": "palikar",\n \"popularity\": 32111\n },\n {\n \"tag\": "facileness",\n \"popularity\": 32039\n },\n {\n \"tag\": "deuterofibrinose",\n \"popularity\": 31966\n },\n {\n \"tag\": "pseudesthesia",\n \"popularity\": 31894\n },\n {\n \"tag\": "sedimentary",\n \"popularity\": 31822\n },\n {\n \"tag\": "typewrite",\n \"popularity\": 31751\n },\n {\n \"tag\": "immemorable",\n \"popularity\": 31679\n },\n {\n \"tag\": "Myrtus",\n \"popularity\": 31608\n },\n {\n \"tag\": "hauchecornite",\n \"popularity\": 31537\n },\n {\n \"tag\": "galleylike",\n \"popularity\": 31467\n },\n {\n \"tag\": "thimber",\n \"popularity\": 31396\n },\n {\n \"tag\": "Hegelianism",\n \"popularity\": 31326\n },\n {\n \"tag\": "strig",\n \"popularity\": 31256\n },\n {\n \"tag\": "skyre",\n \"popularity\": 31187\n },\n {\n \"tag\": "eupepticism",\n \"popularity\": 31117\n },\n {\n \"tag\": "eponymism",\n \"popularity\": 31048\n },\n {\n \"tag\": "flunkeyhood",\n \"popularity\": 30979\n },\n {\n \"tag\": "Abama",\n \"popularity\": 30911\n },\n {\n \"tag\": "adiadochokinesis",\n \"popularity\": 30842\n },\n {\n \"tag\": "spendthrifty",\n \"popularity\": 30774\n },\n {\n \"tag\": "chalcedony",\n \"popularity\": 30706\n },\n {\n \"tag\": "authorism",\n \"popularity\": 30638\n },\n {\n \"tag\": "nasturtium",\n \"popularity\": 30571\n },\n {\n \"tag\": "Acanthocereus",\n \"popularity\": 30504\n },\n {\n \"tag\": "uncollapsible",\n \"popularity\": 30437\n },\n {\n \"tag\": "excursionist",\n \"popularity\": 30370\n },\n {\n \"tag\": "fogbow",\n \"popularity\": 30303\n },\n {\n \"tag\": "overlie",\n \"popularity\": 30237\n },\n {\n \"tag\": "velours",\n \"popularity\": 30171\n },\n {\n \"tag\": "zoodendria madrigal stagbush",\n \"popularity\": 30105\n },\n {\n \"tag\": "imi",\n \"popularity\": 30039\n },\n {\n \"tag\": "cojudge",\n \"popularity\": 29974\n },\n {\n \"tag\": "depurate argal",\n \"popularity\": 29909\n },\n {\n \"tag\": "unrecognition",\n \"popularity\": 29844\n },\n {\n \"tag\": "paunchful",\n \"popularity\": 29779\n },\n {\n \"tag\": "invalued",\n \"popularity\": 29714\n },\n {\n \"tag\": "probang",\n \"popularity\": 29650\n },\n {\n \"tag\": "chetvert",\n \"popularity\": 29586\n },\n {\n \"tag\": "enactable",\n \"popularity\": 29522\n },\n {\n \"tag\": "detoxicate adhibit",\n \"popularity\": 29458\n },\n {\n \"tag\": "kullaite",\n \"popularity\": 29395\n },\n {\n \"tag\": "undazzling",\n \"popularity\": 29332\n },\n {\n \"tag\": "excalation",\n \"popularity\": 29269\n },\n {\n \"tag\": "sievings",\n \"popularity\": 29206\n },\n {\n \"tag\": "disenthral",\n \"popularity\": 29143\n },\n {\n \"tag\": "disinterestedly",\n \"popularity\": 29081\n },\n {\n \"tag\": "stanner",\n \"popularity\": 29018\n },\n {\n \"tag\": "recapitulative",\n \"popularity\": 28956\n },\n {\n \"tag\": "objectivist",\n \"popularity\": 28895\n },\n {\n \"tag\": "hypermetropia",\n \"popularity\": 28833\n },\n {\n \"tag\": "incumbency",\n \"popularity\": 28772\n },\n {\n \"tag\": "protegee",\n \"popularity\": 28711\n },\n {\n \"tag\": "zealotic",\n \"popularity\": 28650\n },\n {\n \"tag\": "predebit",\n \"popularity\": 28589\n },\n {\n \"tag\": "cupolar",\n \"popularity\": 28528\n },\n {\n \"tag\": "unattributed",\n \"popularity\": 28468\n },\n {\n \"tag\": "louisine",\n \"popularity\": 28408\n },\n {\n \"tag\": "illustrate",\n \"popularity\": 28348\n },\n {\n \"tag\": "inofficiousness",\n \"popularity\": 28288\n },\n {\n \"tag\": "Americawards",\n \"popularity\": 28228\n },\n {\n \"tag\": "foreflap",\n \"popularity\": 28169\n },\n {\n \"tag\": "eruditeness",\n \"popularity\": 28110\n },\n {\n \"tag\": "copiopsia",\n \"popularity\": 28051\n },\n {\n \"tag\": "sporuliferous",\n \"popularity\": 27992\n },\n {\n \"tag\": "muttering",\n \"popularity\": 27934\n },\n {\n \"tag\": "prepsychology adrip",\n \"popularity\": 27875\n },\n {\n \"tag\": "unfriendly",\n \"popularity\": 27817\n },\n {\n \"tag\": "sulphanilic",\n \"popularity\": 27759\n },\n {\n \"tag\": "Coelococcus",\n \"popularity\": 27701\n },\n {\n \"tag\": "undoubtfulness",\n \"popularity\": 27643\n },\n {\n \"tag\": "flaringly",\n \"popularity\": 27586\n },\n {\n \"tag\": "unordain",\n \"popularity\": 27529\n },\n {\n \"tag\": "fratchety",\n \"popularity\": 27472\n },\n {\n \"tag\": "decadentism dolefully",\n \"popularity\": 27415\n },\n {\n \"tag\": "synthronus",\n \"popularity\": 27358\n },\n {\n \"tag\": "maiid",\n \"popularity\": 27301\n },\n {\n \"tag\": "rhinobyon",\n \"popularity\": 27245\n },\n {\n \"tag\": "Didynamia",\n \"popularity\": 27189\n },\n {\n \"tag\": "millionairedom",\n \"popularity\": 27133\n },\n {\n \"tag\": "mulierine",\n \"popularity\": 27077\n },\n {\n \"tag\": "Mayo",\n \"popularity\": 27021\n },\n {\n \"tag\": "perceivedness",\n \"popularity\": 26966\n },\n {\n \"tag\": "unadoration",\n \"popularity\": 26911\n },\n {\n \"tag\": "regraft",\n \"popularity\": 26856\n },\n {\n \"tag\": "witch",\n \"popularity\": 26801\n },\n {\n \"tag\": "ungrow",\n \"popularity\": 26746\n },\n {\n \"tag\": "glossopharyngeus",\n \"popularity\": 26691\n },\n {\n \"tag\": "unstirrable",\n \"popularity\": 26637\n },\n {\n \"tag\": "synodsman",\n \"popularity\": 26583\n },\n {\n \"tag\": "placentalian",\n \"popularity\": 26529\n },\n {\n \"tag\": "corpulently",\n \"popularity\": 26475\n },\n {\n \"tag\": "photochromoscope",\n \"popularity\": 26421\n },\n {\n \"tag\": "indusiate retinasphaltum chokestrap",\n \"popularity\": 26368\n },\n {\n \"tag\": "murdrum",\n \"popularity\": 26314\n },\n {\n \"tag\": "belatedness",\n \"popularity\": 26261\n },\n {\n \"tag\": "Cochin",\n \"popularity\": 26208\n },\n {\n \"tag\": "Leonist",\n \"popularity\": 26155\n },\n {\n \"tag\": "keeker confined",\n \"popularity\": 26102\n },\n {\n \"tag\": "unintellectual",\n \"popularity\": 26050\n },\n {\n \"tag\": "nymphaline bait",\n \"popularity\": 25997\n },\n {\n \"tag\": "sarcosporidiosis",\n \"popularity\": 25945\n },\n {\n \"tag\": "catawamptiously",\n \"popularity\": 25893\n },\n {\n \"tag\": "outshame",\n \"popularity\": 25841\n },\n {\n \"tag\": "animalism",\n \"popularity\": 25790\n },\n {\n \"tag\": "epithalamial",\n \"popularity\": 25738\n },\n {\n \"tag\": "ganner",\n \"popularity\": 25687\n },\n {\n \"tag\": "desilicify",\n \"popularity\": 25635\n },\n {\n \"tag\": "dandyism",\n \"popularity\": 25584\n },\n {\n \"tag\": "hyleg",\n \"popularity\": 25533\n },\n {\n \"tag\": "photophysical",\n \"popularity\": 25483\n },\n {\n \"tag\": "underload",\n \"popularity\": 25432\n },\n {\n \"tag\": "unintrusive",\n \"popularity\": 25382\n },\n {\n \"tag\": "succinamic",\n \"popularity\": 25331\n },\n {\n \"tag\": "matchy",\n \"popularity\": 25281\n },\n {\n \"tag\": "concordal",\n \"popularity\": 25231\n },\n {\n \"tag\": "exteriority",\n \"popularity\": 25181\n },\n {\n \"tag\": "sterculiad",\n \"popularity\": 25132\n },\n {\n \"tag\": "sulfoxylic",\n \"popularity\": 25082\n },\n {\n \"tag\": "oversubscription",\n \"popularity\": 25033\n },\n {\n \"tag\": "chiasmic",\n \"popularity\": 24984\n },\n {\n \"tag\": "pseudoparthenogenesis",\n \"popularity\": 24935\n },\n {\n \"tag\": "indorse",\n \"popularity\": 24886\n },\n {\n \"tag\": "Krishnaite",\n \"popularity\": 24837\n },\n {\n \"tag\": "calcinize",\n \"popularity\": 24788\n },\n {\n \"tag\": "rhodium",\n \"popularity\": 24740\n },\n {\n \"tag\": "tragopan",\n \"popularity\": 24692\n },\n {\n \"tag\": "overwhelmingly",\n \"popularity\": 24643\n },\n {\n \"tag\": "procidence accorporate",\n \"popularity\": 24595\n },\n {\n \"tag\": "polemize speelless",\n \"popularity\": 24548\n },\n {\n \"tag\": "radiocarpal goran",\n \"popularity\": 24500\n },\n {\n \"tag\": "counteroffer Pelodytes",\n \"popularity\": 24452\n },\n {\n \"tag\": "lionhearted",\n \"popularity\": 24405\n },\n {\n \"tag\": "paramastoid",\n \"popularity\": 24358\n },\n {\n \"tag\": "murine",\n \"popularity\": 24310\n },\n {\n \"tag\": "woodbined",\n \"popularity\": 24263\n },\n {\n \"tag\": "packthread",\n \"popularity\": 24217\n },\n {\n \"tag\": "citreous",\n \"popularity\": 24170\n },\n {\n \"tag\": "unfallaciously",\n \"popularity\": 24123\n },\n {\n \"tag\": "tentwork reincarnadine",\n \"popularity\": 24077\n },\n {\n \"tag\": "verminousness",\n \"popularity\": 24030\n },\n {\n \"tag\": "sillometer",\n \"popularity\": 23984\n },\n {\n \"tag\": "jointy",\n \"popularity\": 23938\n },\n {\n \"tag\": "streptolysin",\n \"popularity\": 23892\n },\n {\n \"tag\": "Florentinism",\n \"popularity\": 23847\n },\n {\n \"tag\": "monosomatous",\n \"popularity\": 23801\n },\n {\n \"tag\": "capsulociliary",\n \"popularity\": 23756\n },\n {\n \"tag\": "organum",\n \"popularity\": 23710\n },\n {\n \"tag\": "overtly",\n \"popularity\": 23665\n },\n {\n \"tag\": "ophthalmoscopical",\n \"popularity\": 23620\n },\n {\n \"tag\": "supposititiously",\n \"popularity\": 23575\n },\n {\n \"tag\": "radiochemistry",\n \"popularity\": 23530\n },\n {\n \"tag\": "flaxtail",\n \"popularity\": 23486\n },\n {\n \"tag\": "pretympanic",\n \"popularity\": 23441\n },\n {\n \"tag\": "auscultation",\n \"popularity\": 23397\n },\n {\n \"tag\": "hairdresser",\n \"popularity\": 23352\n },\n {\n \"tag\": "chaffless",\n \"popularity\": 23308\n },\n {\n \"tag\": "polioencephalitis",\n \"popularity\": 23264\n },\n {\n \"tag\": "axolotl",\n \"popularity\": 23220\n },\n {\n \"tag\": "smous",\n \"popularity\": 23177\n },\n {\n \"tag\": "morgen disenamour toothed",\n \"popularity\": 23133\n },\n {\n \"tag\": "chaiseless",\n \"popularity\": 23089\n },\n {\n \"tag\": "frugally",\n \"popularity\": 23046\n },\n {\n \"tag\": "combustive antievolutionist cinenegative",\n \"popularity\": 23003\n },\n {\n \"tag\": "malacolite",\n \"popularity\": 22960\n },\n {\n \"tag\": "borne",\n \"popularity\": 22917\n },\n {\n \"tag\": "mercaptole",\n \"popularity\": 22874\n },\n {\n \"tag\": "judicatory",\n \"popularity\": 22831\n },\n {\n \"tag\": "noctivagation",\n \"popularity\": 22789\n },\n {\n \"tag\": "synthete",\n \"popularity\": 22746\n },\n {\n \"tag\": "tomboyism",\n \"popularity\": 22704\n },\n {\n \"tag\": "serranoid",\n \"popularity\": 22661\n },\n {\n \"tag\": "impostorism",\n \"popularity\": 22619\n },\n {\n \"tag\": "flagellosis Talitha",\n \"popularity\": 22577\n },\n {\n \"tag\": "pseudoviscous",\n \"popularity\": 22535\n },\n {\n \"tag\": "Galleriidae",\n \"popularity\": 22494\n },\n {\n \"tag\": "undulation didelph Comintern",\n \"popularity\": 22452\n },\n {\n \"tag\": "triangulopyramidal",\n \"popularity\": 22411\n },\n {\n \"tag\": "middlings",\n \"popularity\": 22369\n },\n {\n \"tag\": "piperazin",\n \"popularity\": 22328\n },\n {\n \"tag\": "endostitis",\n \"popularity\": 22287\n },\n {\n \"tag\": "swordlike",\n \"popularity\": 22246\n },\n {\n \"tag\": "forthwith",\n \"popularity\": 22205\n },\n {\n \"tag\": "menaceful",\n \"popularity\": 22164\n },\n {\n \"tag\": "explantation defective",\n \"popularity\": 22123\n },\n {\n \"tag\": "arrear",\n \"popularity\": 22083\n },\n {\n \"tag\": "engraft",\n \"popularity\": 22042\n },\n {\n \"tag\": "revolunteer",\n \"popularity\": 22002\n },\n {\n \"tag\": "foliaceous",\n \"popularity\": 21962\n },\n {\n \"tag\": "pseudograph",\n \"popularity\": 21922\n },\n {\n \"tag\": "maenaite",\n \"popularity\": 21882\n },\n {\n \"tag\": "interfinger",\n \"popularity\": 21842\n },\n {\n \"tag\": "macroscopically",\n \"popularity\": 21802\n },\n {\n \"tag\": "bluewood",\n \"popularity\": 21762\n },\n {\n \"tag\": "chikara",\n \"popularity\": 21723\n },\n {\n \"tag\": "reprehension diazeuxis nickelous",\n \"popularity\": 21683\n },\n {\n \"tag\": "vacuation",\n \"popularity\": 21644\n },\n {\n \"tag\": "Sartish",\n \"popularity\": 21605\n },\n {\n \"tag\": "pseudogyny",\n \"popularity\": 21566\n },\n {\n \"tag\": "friedcake",\n \"popularity\": 21527\n },\n {\n \"tag\": "thraw",\n \"popularity\": 21488\n },\n {\n \"tag\": "bifid",\n \"popularity\": 21449\n },\n {\n \"tag\": "truthlessly",\n \"popularity\": 21411\n },\n {\n \"tag\": "lungy",\n \"popularity\": 21372\n },\n {\n \"tag\": "fluoborite",\n \"popularity\": 21334\n },\n {\n \"tag\": "anthropolithic",\n \"popularity\": 21295\n },\n {\n \"tag\": "coachee straw",\n \"popularity\": 21257\n },\n {\n \"tag\": "dehorner Grecize",\n \"popularity\": 21219\n },\n {\n \"tag\": "spondylopyosis",\n \"popularity\": 21181\n },\n {\n \"tag\": "institutionary",\n \"popularity\": 21143\n },\n {\n \"tag\": "agentry",\n \"popularity\": 21105\n },\n {\n \"tag\": "musing bietle",\n \"popularity\": 21068\n },\n {\n \"tag\": "cormophyte",\n \"popularity\": 21030\n },\n {\n \"tag\": "semielliptic",\n \"popularity\": 20993\n },\n {\n \"tag\": "ependytes",\n \"popularity\": 20955\n },\n {\n \"tag\": "coachmaster",\n \"popularity\": 20918\n },\n {\n \"tag\": "overexuberant",\n \"popularity\": 20881\n },\n {\n \"tag\": "selectable",\n \"popularity\": 20844\n },\n {\n \"tag\": "saclike",\n \"popularity\": 20807\n },\n {\n \"tag\": "mullion",\n \"popularity\": 20770\n },\n {\n \"tag\": "pantheonize prevalency",\n \"popularity\": 20733\n },\n {\n \"tag\": "trophosperm",\n \"popularity\": 20697\n },\n {\n \"tag\": "paraphrasist",\n \"popularity\": 20660\n },\n {\n \"tag\": "undercarry",\n \"popularity\": 20624\n },\n {\n \"tag\": "thallogenic",\n \"popularity\": 20587\n },\n {\n \"tag\": "bulgy forbid",\n \"popularity\": 20551\n },\n {\n \"tag\": "proliquor gratulatory",\n \"popularity\": 20515\n },\n {\n \"tag\": "booker",\n \"popularity\": 20479\n },\n {\n \"tag\": "wizen",\n \"popularity\": 20443\n },\n {\n \"tag\": "synchondrosially",\n \"popularity\": 20407\n },\n {\n \"tag\": "herbless",\n \"popularity\": 20371\n },\n {\n \"tag\": "arfvedsonite",\n \"popularity\": 20336\n },\n {\n \"tag\": "Neuroptera",\n \"popularity\": 20300\n },\n {\n \"tag\": "fingerstone",\n \"popularity\": 20265\n },\n {\n \"tag\": "Odontoglossae",\n \"popularity\": 20229\n },\n {\n \"tag\": "transmigrator",\n \"popularity\": 20194\n },\n {\n \"tag\": "Dehaites",\n \"popularity\": 20159\n },\n {\n \"tag\": "Molinist",\n \"popularity\": 20124\n },\n {\n \"tag\": "novelistic",\n \"popularity\": 20089\n },\n {\n \"tag\": "astelic",\n \"popularity\": 20054\n },\n {\n \"tag\": "pyelometry",\n \"popularity\": 20019\n },\n {\n \"tag\": "pigmentation",\n \"popularity\": 19984\n },\n {\n \"tag\": "epinaos",\n \"popularity\": 19950\n },\n {\n \"tag\": "outdare",\n \"popularity\": 19915\n },\n {\n \"tag\": "Funje philaristocracy",\n \"popularity\": 19881\n },\n {\n \"tag\": "keddah",\n \"popularity\": 19846\n },\n {\n \"tag\": "axoidean",\n \"popularity\": 19812\n },\n {\n \"tag\": "ovule",\n \"popularity\": 19778\n },\n {\n \"tag\": "solidify",\n \"popularity\": 19744\n },\n {\n \"tag\": "noncelestial",\n \"popularity\": 19710\n },\n {\n \"tag\": "overmultiplication",\n \"popularity\": 19676\n },\n {\n \"tag\": "hexatetrahedron",\n \"popularity\": 19642\n },\n {\n \"tag\": "pliciform",\n \"popularity\": 19609\n },\n {\n \"tag\": "zimbalon",\n \"popularity\": 19575\n },\n {\n \"tag\": "annexational",\n \"popularity\": 19542\n },\n {\n \"tag\": "eurhodol",\n \"popularity\": 19508\n },\n {\n \"tag\": "yark",\n \"popularity\": 19475\n },\n {\n \"tag\": "illegality nitroalizarin",\n \"popularity\": 19442\n },\n {\n \"tag\": "quadratum",\n \"popularity\": 19409\n },\n {\n \"tag\": "saccharine",\n \"popularity\": 19376\n },\n {\n \"tag\": "unemploy",\n \"popularity\": 19343\n },\n {\n \"tag\": "uniclinal unipotent",\n \"popularity\": 19310\n },\n {\n \"tag\": "turbo",\n \"popularity\": 19277\n },\n {\n \"tag\": "sybarism",\n \"popularity\": 19244\n },\n {\n \"tag\": "motacilline",\n \"popularity\": 19212\n },\n {\n \"tag\": "weaselly",\n \"popularity\": 19179\n },\n {\n \"tag\": "plastid",\n \"popularity\": 19147\n },\n {\n \"tag\": "wasting",\n \"popularity\": 19114\n },\n {\n \"tag\": "begrime fluting",\n \"popularity\": 19082\n },\n {\n \"tag\": "Nephilinae",\n \"popularity\": 19050\n },\n {\n \"tag\": "disregardance",\n \"popularity\": 19018\n },\n {\n \"tag\": "Shakerlike",\n \"popularity\": 18986\n },\n {\n \"tag\": "uniped",\n \"popularity\": 18954\n },\n {\n \"tag\": "knap",\n \"popularity\": 18922\n },\n {\n \"tag\": "electivism undergardener",\n \"popularity\": 18890\n },\n {\n \"tag\": "hulverheaded",\n \"popularity\": 18858\n },\n {\n \"tag\": "unruptured",\n \"popularity\": 18827\n },\n {\n \"tag\": "solemnize credently",\n \"popularity\": 18795\n },\n {\n \"tag\": "pentastomoid possessingly",\n \"popularity\": 18764\n },\n {\n \"tag\": "octose",\n \"popularity\": 18733\n },\n {\n \"tag\": "psithurism indefensibility",\n \"popularity\": 18701\n },\n {\n \"tag\": "torrentuous cyanometer subcrenate",\n \"popularity\": 18670\n },\n {\n \"tag\": "photoplaywright tapaculo",\n \"popularity\": 18639\n },\n {\n \"tag\": "univalence",\n \"popularity\": 18608\n },\n {\n \"tag\": "Porthetria",\n \"popularity\": 18577\n },\n {\n \"tag\": "funambulo",\n \"popularity\": 18546\n },\n {\n \"tag\": "pedion",\n \"popularity\": 18515\n },\n {\n \"tag\": "horticulturally",\n \"popularity\": 18485\n },\n {\n \"tag\": "marennin",\n \"popularity\": 18454\n },\n {\n \"tag\": "horselaugh",\n \"popularity\": 18423\n },\n {\n \"tag\": "semiexecutive",\n \"popularity\": 18393\n },\n {\n \"tag\": "Monopteridae",\n \"popularity\": 18363\n },\n {\n \"tag\": "commonable",\n \"popularity\": 18332\n },\n {\n \"tag\": "dreariment",\n \"popularity\": 18302\n },\n {\n \"tag\": "disbud",\n \"popularity\": 18272\n },\n {\n \"tag\": "monocled",\n \"popularity\": 18242\n },\n {\n \"tag\": "hurlbarrow",\n \"popularity\": 18212\n },\n {\n \"tag\": "opiateproof",\n \"popularity\": 18182\n },\n {\n \"tag\": "Fahrenheit",\n \"popularity\": 18152\n },\n {\n \"tag\": "writhed",\n \"popularity\": 18122\n },\n {\n \"tag\": "Volstead",\n \"popularity\": 18093\n },\n {\n \"tag\": "yesternight",\n \"popularity\": 18063\n },\n {\n \"tag\": "readmittance",\n \"popularity\": 18033\n },\n {\n \"tag\": "reiterable",\n \"popularity\": 18004\n },\n {\n \"tag\": "triquetral",\n \"popularity\": 17975\n },\n {\n \"tag\": "guillotinement",\n \"popularity\": 17945\n },\n {\n \"tag\": "repermission",\n \"popularity\": 17916\n },\n {\n \"tag\": "assishly",\n \"popularity\": 17887\n },\n {\n \"tag\": "daidle",\n \"popularity\": 17858\n },\n {\n \"tag\": "prismatoid",\n \"popularity\": 17829\n },\n {\n \"tag\": "irreptitious",\n \"popularity\": 17800\n },\n {\n \"tag\": "sourdeline",\n \"popularity\": 17771\n },\n {\n \"tag\": "Austrian",\n \"popularity\": 17742\n },\n {\n \"tag\": "psychorrhagic",\n \"popularity\": 17713\n },\n {\n \"tag\": "Monumbo",\n \"popularity\": 17685\n },\n {\n \"tag\": "cloiochoanitic",\n \"popularity\": 17656\n },\n {\n \"tag\": "hant",\n \"popularity\": 17628\n },\n {\n \"tag\": "roily pulldown",\n \"popularity\": 17599\n },\n {\n \"tag\": "recongratulation",\n \"popularity\": 17571\n },\n {\n \"tag\": "Peking",\n \"popularity\": 17543\n },\n {\n \"tag\": "erdvark",\n \"popularity\": 17514\n },\n {\n \"tag\": "antimnemonic",\n \"popularity\": 17486\n },\n {\n \"tag\": "noncapillarity",\n \"popularity\": 17458\n },\n {\n \"tag\": "irrepressive",\n \"popularity\": 17430\n },\n {\n \"tag\": "Petromyzontes",\n \"popularity\": 17402\n },\n {\n \"tag\": "piscatorially",\n \"popularity\": 17374\n },\n {\n \"tag\": "cholesterosis",\n \"popularity\": 17346\n },\n {\n \"tag\": "denunciate",\n \"popularity\": 17319\n },\n {\n \"tag\": "unmetalled",\n \"popularity\": 17291\n },\n {\n \"tag\": "Tigris enruin",\n \"popularity\": 17263\n },\n {\n \"tag\": "anaspalin",\n \"popularity\": 17236\n },\n {\n \"tag\": "monodromy",\n \"popularity\": 17208\n },\n {\n \"tag\": "Canichanan",\n \"popularity\": 17181\n },\n {\n \"tag\": "mesolabe",\n \"popularity\": 17154\n },\n {\n \"tag\": "trichothallic overcunningness",\n \"popularity\": 17127\n },\n {\n \"tag\": "spinsterishly",\n \"popularity\": 17099\n },\n {\n \"tag\": "sensilla",\n \"popularity\": 17072\n },\n {\n \"tag\": "wifelkin",\n \"popularity\": 17045\n },\n {\n \"tag\": "suppositionless",\n \"popularity\": 17018\n },\n {\n \"tag\": "irksomeness",\n \"popularity\": 16991\n },\n {\n \"tag\": "sanbenito",\n \"popularity\": 16964\n },\n {\n \"tag\": "nonstatement",\n \"popularity\": 16938\n },\n {\n \"tag\": "phenoloid",\n \"popularity\": 16911\n },\n {\n \"tag\": "Steinberger",\n \"popularity\": 16884\n },\n {\n \"tag\": "replicated boom",\n \"popularity\": 16858\n },\n {\n \"tag\": "sciomachiology",\n \"popularity\": 16831\n },\n {\n \"tag\": "starwise",\n \"popularity\": 16805\n },\n {\n \"tag\": "prerich",\n \"popularity\": 16778\n },\n {\n \"tag\": "unspawned",\n \"popularity\": 16752\n },\n {\n \"tag\": "unindentable",\n \"popularity\": 16726\n },\n {\n \"tag\": "stromatic",\n \"popularity\": 16700\n },\n {\n \"tag\": "fetishize",\n \"popularity\": 16673\n },\n {\n \"tag\": "dihydroxy",\n \"popularity\": 16647\n },\n {\n \"tag\": "precaudal",\n \"popularity\": 16621\n },\n {\n \"tag\": "Madagascar",\n \"popularity\": 16595\n },\n {\n \"tag\": "repinement",\n \"popularity\": 16570\n },\n {\n \"tag\": "noncathedral wenzel",\n \"popularity\": 16544\n },\n {\n \"tag\": "corollike",\n \"popularity\": 16518\n },\n {\n \"tag\": "pubes unamortization",\n \"popularity\": 16492\n },\n {\n \"tag\": "brickcroft",\n \"popularity\": 16467\n },\n {\n \"tag\": "intertrabecular",\n \"popularity\": 16441\n },\n {\n \"tag\": "formulaic",\n \"popularity\": 16416\n },\n {\n \"tag\": "arienzo",\n \"popularity\": 16390\n },\n {\n \"tag\": "Mazzinian",\n \"popularity\": 16365\n },\n {\n \"tag\": "wallowishly",\n \"popularity\": 16339\n },\n {\n \"tag\": "sysselman",\n \"popularity\": 16314\n },\n {\n \"tag\": "seligmannite",\n \"popularity\": 16289\n },\n {\n \"tag\": "harlequinery",\n \"popularity\": 16264\n },\n {\n \"tag\": "zucchetto",\n \"popularity\": 16239\n },\n {\n \"tag\": "malonyl",\n \"popularity\": 16214\n },\n {\n \"tag\": "patwari",\n \"popularity\": 16189\n },\n {\n \"tag\": "neoholmia venturesomeness",\n \"popularity\": 16164\n },\n {\n \"tag\": "Dehwar",\n \"popularity\": 16139\n },\n {\n \"tag\": "fetiferous",\n \"popularity\": 16114\n },\n {\n \"tag\": "chromatophore",\n \"popularity\": 16090\n },\n {\n \"tag\": "reregistration",\n \"popularity\": 16065\n },\n {\n \"tag\": "alienor",\n \"popularity\": 16040\n },\n {\n \"tag\": "Hexagynia",\n \"popularity\": 16016\n },\n {\n \"tag\": "cerebrotonia",\n \"popularity\": 15991\n },\n {\n \"tag\": "deedbox",\n \"popularity\": 15967\n },\n {\n \"tag\": "staab",\n \"popularity\": 15943\n },\n {\n \"tag\": "uratemia",\n \"popularity\": 15918\n },\n {\n \"tag\": "flaunt",\n \"popularity\": 15894\n },\n {\n \"tag\": "bogy",\n \"popularity\": 15870\n },\n {\n \"tag\": "subcartilaginous",\n \"popularity\": 15846\n },\n {\n \"tag\": "protonephridial",\n \"popularity\": 15822\n },\n {\n \"tag\": "Boswellia",\n \"popularity\": 15798\n },\n {\n \"tag\": "relaxant untiaraed protoepiphyte",\n \"popularity\": 15774\n },\n {\n \"tag\": "nesslerization",\n \"popularity\": 15750\n },\n {\n \"tag\": "precession",\n \"popularity\": 15726\n },\n {\n \"tag\": "peat",\n \"popularity\": 15702\n },\n {\n \"tag\": "unbit",\n \"popularity\": 15678\n },\n {\n \"tag\": "snailish",\n \"popularity\": 15655\n },\n {\n \"tag\": "porismatical",\n \"popularity\": 15631\n },\n {\n \"tag\": "hooflike",\n \"popularity\": 15608\n },\n {\n \"tag\": "resuppose phene cranic",\n \"popularity\": 15584\n },\n {\n \"tag\": "peptonization kipskin",\n \"popularity\": 15561\n },\n {\n \"tag\": "birdstone",\n \"popularity\": 15537\n },\n {\n \"tag\": "empty inferoanterior",\n \"popularity\": 15514\n },\n {\n \"tag\": "androtauric",\n \"popularity\": 15491\n },\n {\n \"tag\": "triamide",\n \"popularity\": 15467\n },\n {\n \"tag\": "showmanry",\n \"popularity\": 15444\n },\n {\n \"tag\": "doing",\n \"popularity\": 15421\n },\n {\n \"tag\": "bouchaleen",\n \"popularity\": 15398\n },\n {\n \"tag\": "precollude",\n \"popularity\": 15375\n },\n {\n \"tag\": "finger",\n \"popularity\": 15352\n },\n {\n \"tag\": "limnetic intermessenger",\n \"popularity\": 15329\n },\n {\n \"tag\": "uncharitable picrotoxic",\n \"popularity\": 15306\n },\n {\n \"tag\": "nationalizer Phasmidae",\n \"popularity\": 15283\n },\n {\n \"tag\": "laughingstock",\n \"popularity\": 15261\n },\n {\n \"tag\": "nondeferential",\n \"popularity\": 15238\n },\n {\n \"tag\": "uproariously",\n \"popularity\": 15215\n },\n {\n \"tag\": "manzanilla",\n \"popularity\": 15193\n },\n {\n \"tag\": "khahoon",\n \"popularity\": 15170\n },\n {\n \"tag\": "olericulturally longshanks",\n \"popularity\": 15148\n },\n {\n \"tag\": "enthusiastically methionic",\n \"popularity\": 15125\n },\n {\n \"tag\": "pobs",\n \"popularity\": 15103\n },\n {\n \"tag\": "tricarpellate",\n \"popularity\": 15081\n },\n {\n \"tag\": "souterrain",\n \"popularity\": 15058\n },\n {\n \"tag\": "tethelin",\n \"popularity\": 15036\n },\n {\n \"tag\": "tartle",\n \"popularity\": 15014\n },\n {\n \"tag\": "tidelike",\n \"popularity\": 14992\n },\n {\n \"tag\": "cosmoramic",\n \"popularity\": 14970\n },\n {\n \"tag\": "pretardiness",\n \"popularity\": 14948\n },\n {\n \"tag\": "insoul",\n \"popularity\": 14926\n },\n {\n \"tag\": "anthroxan",\n \"popularity\": 14904\n },\n {\n \"tag\": "jilter",\n \"popularity\": 14882\n },\n {\n \"tag\": "pectinibranchian trematode",\n \"popularity\": 14860\n },\n {\n \"tag\": "Renaissancist",\n \"popularity\": 14838\n },\n {\n \"tag\": "imaginant",\n \"popularity\": 14817\n },\n {\n \"tag\": "supercensure",\n \"popularity\": 14795\n },\n {\n \"tag\": "festilogy",\n \"popularity\": 14773\n },\n {\n \"tag\": "regression",\n \"popularity\": 14752\n },\n {\n \"tag\": "mesobregmate languorously",\n \"popularity\": 14730\n },\n {\n \"tag\": "unsupernaturalized",\n \"popularity\": 14709\n },\n {\n \"tag\": "boobyish",\n \"popularity\": 14687\n },\n {\n \"tag\": "scopolamine",\n \"popularity\": 14666\n },\n {\n \"tag\": "reamputation unchristianly",\n \"popularity\": 14645\n },\n {\n \"tag\": "cuneatic",\n \"popularity\": 14623\n },\n {\n \"tag\": "heathberry",\n \"popularity\": 14602\n },\n {\n \"tag\": "hate",\n \"popularity\": 14581\n },\n {\n \"tag\": "redeemableness",\n \"popularity\": 14560\n },\n {\n \"tag\": "damasse",\n \"popularity\": 14539\n },\n {\n \"tag\": "thrillsome",\n \"popularity\": 14518\n },\n {\n \"tag\": "disseverment",\n \"popularity\": 14497\n },\n {\n \"tag\": "underbishopric Ostyak",\n \"popularity\": 14476\n },\n {\n \"tag\": "Exoascales",\n \"popularity\": 14455\n },\n {\n \"tag\": "soiled",\n \"popularity\": 14434\n },\n {\n \"tag\": "Cain",\n \"popularity\": 14413\n },\n {\n \"tag\": "mismanageable arenae",\n \"popularity\": 14392\n },\n {\n \"tag\": "manducate unhinderably",\n \"popularity\": 14372\n },\n {\n \"tag\": "peregrin",\n \"popularity\": 14351\n },\n {\n \"tag\": "musicianly",\n \"popularity\": 14330\n },\n {\n \"tag\": "aln",\n \"popularity\": 14310\n },\n {\n \"tag\": "intercentrum",\n \"popularity\": 14289\n },\n {\n \"tag\": "roothold",\n \"popularity\": 14269\n },\n {\n \"tag\": "jane aneurism",\n \"popularity\": 14248\n },\n {\n \"tag\": "insinuatively forefeel phytolatrous",\n \"popularity\": 14228\n },\n {\n \"tag\": "kanchil",\n \"popularity\": 14208\n },\n {\n \"tag\": "Austrophile",\n \"popularity\": 14187\n },\n {\n \"tag\": "unterrorized",\n \"popularity\": 14167\n },\n {\n \"tag\": "admeasure",\n \"popularity\": 14147\n },\n {\n \"tag\": "electrodissolution",\n \"popularity\": 14127\n },\n {\n \"tag\": "unweddedly",\n \"popularity\": 14107\n },\n {\n \"tag\": "unannoying",\n \"popularity\": 14087\n },\n {\n \"tag\": "uningenuous",\n \"popularity\": 14067\n },\n {\n \"tag\": "omnibenevolent",\n \"popularity\": 14047\n },\n {\n \"tag\": "commissure",\n \"popularity\": 14027\n },\n {\n \"tag\": "tellureted",\n \"popularity\": 14007\n },\n {\n \"tag\": "suffragan",\n \"popularity\": 13987\n },\n {\n \"tag\": "sphaeriaceous",\n \"popularity\": 13967\n },\n {\n \"tag\": "unfearing",\n \"popularity\": 13947\n },\n {\n \"tag\": "stentoriousness precounsellor",\n \"popularity\": 13928\n },\n {\n \"tag\": "haemaspectroscope",\n \"popularity\": 13908\n },\n {\n \"tag\": "teras",\n \"popularity\": 13888\n },\n {\n \"tag\": "pulicine",\n \"popularity\": 13869\n },\n {\n \"tag\": "colicystopyelitis",\n \"popularity\": 13849\n },\n {\n \"tag\": "Physalia",\n \"popularity\": 13830\n },\n {\n \"tag\": "Saxicolidae",\n \"popularity\": 13810\n },\n {\n \"tag\": "peritonital",\n \"popularity\": 13791\n },\n {\n \"tag\": "dysphotic",\n \"popularity\": 13771\n },\n {\n \"tag\": "unabandoned",\n \"popularity\": 13752\n },\n {\n \"tag\": "rashful",\n \"popularity\": 13733\n },\n {\n \"tag\": "goodyness Manobo",\n \"popularity\": 13714\n },\n {\n \"tag\": "glaring",\n \"popularity\": 13694\n },\n {\n \"tag\": "horrorful",\n \"popularity\": 13675\n },\n {\n \"tag\": "intercepting",\n \"popularity\": 13656\n },\n {\n \"tag\": "semifine",\n \"popularity\": 13637\n },\n {\n \"tag\": "Gaypoo",\n \"popularity\": 13618\n },\n {\n \"tag\": "Metrosideros",\n \"popularity\": 13599\n },\n {\n \"tag\": "thoracicolumbar",\n \"popularity\": 13580\n },\n {\n \"tag\": "unserried",\n \"popularity\": 13561\n },\n {\n \"tag\": "keeperess cauterization",\n \"popularity\": 13542\n },\n {\n \"tag\": "administrant",\n \"popularity\": 13523\n },\n {\n \"tag\": "unpropitiatedness",\n \"popularity\": 13505\n },\n {\n \"tag\": "pensileness",\n \"popularity\": 13486\n },\n {\n \"tag\": "quinaldic unreceivable",\n \"popularity\": 13467\n },\n {\n \"tag\": "Carnaria",\n \"popularity\": 13448\n },\n {\n \"tag\": "azothionium wurrus",\n \"popularity\": 13430\n },\n {\n \"tag\": "mistresshood",\n \"popularity\": 13411\n },\n {\n \"tag\": "Savara",\n \"popularity\": 13393\n },\n {\n \"tag\": "dasyurine",\n \"popularity\": 13374\n },\n {\n \"tag\": "superideal",\n \"popularity\": 13356\n },\n {\n \"tag\": "Parisianize",\n \"popularity\": 13337\n },\n {\n \"tag\": "underearth",\n \"popularity\": 13319\n },\n {\n \"tag\": "athrogenic",\n \"popularity\": 13301\n },\n {\n \"tag\": "communicate",\n \"popularity\": 13282\n },\n {\n \"tag\": "denervation enworthed",\n \"popularity\": 13264\n },\n {\n \"tag\": "subbromide",\n \"popularity\": 13246\n },\n {\n \"tag\": "stenocoriasis",\n \"popularity\": 13228\n },\n {\n \"tag\": "facetiousness",\n \"popularity\": 13209\n },\n {\n \"tag\": "twaddling",\n \"popularity\": 13191\n },\n {\n \"tag\": "tetartoconid",\n \"popularity\": 13173\n },\n {\n \"tag\": "audiophile",\n \"popularity\": 13155\n },\n {\n \"tag\": "fustigate",\n \"popularity\": 13137\n },\n {\n \"tag\": "Sorbian cacophonia",\n \"popularity\": 13119\n },\n {\n \"tag\": "fondish",\n \"popularity\": 13101\n },\n {\n \"tag\": "endomastoiditis",\n \"popularity\": 13084\n },\n {\n \"tag\": "sniptious",\n \"popularity\": 13066\n },\n {\n \"tag\": "glochidiate",\n \"popularity\": 13048\n },\n {\n \"tag\": "polycarboxylic",\n \"popularity\": 13030\n },\n {\n \"tag\": "stamp",\n \"popularity\": 13012\n },\n {\n \"tag\": "tritonymph endotoxoid",\n \"popularity\": 12995\n },\n {\n \"tag\": "wolfskin",\n \"popularity\": 12977\n },\n {\n \"tag\": "oncosimeter",\n \"popularity\": 12959\n },\n {\n \"tag\": "outward",\n \"popularity\": 12942\n },\n {\n \"tag\": "circumscribed",\n \"popularity\": 12924\n },\n {\n \"tag\": "autohemolytic",\n \"popularity\": 12907\n },\n {\n \"tag\": "isorhamnose",\n \"popularity\": 12889\n },\n {\n \"tag\": "monarchomachic",\n \"popularity\": 12872\n },\n {\n \"tag\": "phaenomenon",\n \"popularity\": 12855\n },\n {\n \"tag\": "angiopressure",\n \"popularity\": 12837\n },\n {\n \"tag\": "similarize",\n \"popularity\": 12820\n },\n {\n \"tag\": "unseeable",\n \"popularity\": 12803\n },\n {\n \"tag\": "Toryize",\n \"popularity\": 12785\n },\n {\n \"tag\": "fruitling",\n \"popularity\": 12768\n },\n {\n \"tag\": "axle",\n \"popularity\": 12751\n },\n {\n \"tag\": "priestal cocked",\n \"popularity\": 12734\n },\n {\n \"tag\": "serotoxin",\n \"popularity\": 12717\n },\n {\n \"tag\": "unmovably",\n \"popularity\": 12700\n },\n {\n \"tag\": "darbha",\n \"popularity\": 12683\n },\n {\n \"tag\": "Mongolize",\n \"popularity\": 12666\n },\n {\n \"tag\": "clusteringly",\n \"popularity\": 12649\n },\n {\n \"tag\": "tendence",\n \"popularity\": 12632\n },\n {\n \"tag\": "foziness",\n \"popularity\": 12615\n },\n {\n \"tag\": "brickkiln lithify",\n \"popularity\": 12598\n },\n {\n \"tag\": "unpriest",\n \"popularity\": 12581\n },\n {\n \"tag\": "convincer",\n \"popularity\": 12564\n },\n {\n \"tag\": "mornlike",\n \"popularity\": 12548\n },\n {\n \"tag\": "overaddiction ostentatiousness",\n \"popularity\": 12531\n },\n {\n \"tag\": "diffusively moccasin pendom",\n \"popularity\": 12514\n },\n {\n \"tag\": "boose",\n \"popularity\": 12498\n },\n {\n \"tag\": "myonosus",\n \"popularity\": 12481\n },\n {\n \"tag\": "handsome",\n \"popularity\": 12464\n },\n {\n \"tag\": "paroxysmic",\n \"popularity\": 12448\n },\n {\n \"tag\": "Ulidian",\n \"popularity\": 12431\n },\n {\n \"tag\": "heartache",\n \"popularity\": 12415\n },\n {\n \"tag\": "torporize",\n \"popularity\": 12398\n },\n {\n \"tag\": "hippish",\n \"popularity\": 12382\n },\n {\n \"tag\": "stigmal militation",\n \"popularity\": 12366\n },\n {\n \"tag\": "matmaker",\n \"popularity\": 12349\n },\n {\n \"tag\": "marantaceous bivoluminous",\n \"popularity\": 12333\n },\n {\n \"tag\": "Uraniidae",\n \"popularity\": 12317\n },\n {\n \"tag\": "risper",\n \"popularity\": 12301\n },\n {\n \"tag\": "tintinnabulation",\n \"popularity\": 12284\n },\n {\n \"tag\": "tributorian",\n \"popularity\": 12268\n },\n {\n \"tag\": "ashamedly",\n \"popularity\": 12252\n },\n {\n \"tag\": "Macrourus",\n \"popularity\": 12236\n },\n {\n \"tag\": "Chora",\n \"popularity\": 12220\n },\n {\n \"tag\": "caul",\n \"popularity\": 12204\n },\n {\n \"tag\": "exsector",\n \"popularity\": 12188\n },\n {\n \"tag\": "acutish",\n \"popularity\": 12172\n },\n {\n \"tag\": "amphichrome",\n \"popularity\": 12156\n },\n {\n \"tag\": "guarder",\n \"popularity\": 12140\n },\n {\n \"tag\": "sculpturally",\n \"popularity\": 12124\n },\n {\n \"tag\": "benightmare",\n \"popularity\": 12108\n },\n {\n \"tag\": "chucky",\n \"popularity\": 12093\n },\n {\n \"tag\": "Venetian",\n \"popularity\": 12077\n },\n {\n \"tag\": "autotheater",\n \"popularity\": 12061\n },\n {\n \"tag\": "planarioid",\n \"popularity\": 12045\n },\n {\n \"tag\": "handkerchiefful",\n \"popularity\": 12030\n },\n {\n \"tag\": "fuliginousness potentize",\n \"popularity\": 12014\n },\n {\n \"tag\": "pantheum",\n \"popularity\": 11998\n },\n {\n \"tag\": "heavyweight",\n \"popularity\": 11983\n },\n {\n \"tag\": "unbrick",\n \"popularity\": 11967\n },\n {\n \"tag\": "duomachy",\n \"popularity\": 11952\n },\n {\n \"tag\": "polyphyodont",\n \"popularity\": 11936\n },\n {\n \"tag\": "hibernacle",\n \"popularity\": 11921\n },\n {\n \"tag\": "undistend",\n \"popularity\": 11905\n },\n {\n \"tag\": "hystericky",\n \"popularity\": 11890\n },\n {\n \"tag\": "paleolimnology",\n \"popularity\": 11875\n },\n {\n \"tag\": "cedarware",\n \"popularity\": 11859\n },\n {\n \"tag\": "overwrested",\n \"popularity\": 11844\n },\n {\n \"tag\": "Syriacism",\n \"popularity\": 11829\n },\n {\n \"tag\": "pretan",\n \"popularity\": 11813\n },\n {\n \"tag\": "formant",\n \"popularity\": 11798\n },\n {\n \"tag\": "pharmacopoeist Fedia",\n \"popularity\": 11783\n },\n {\n \"tag\": "exorcist eerisome",\n \"popularity\": 11768\n },\n {\n \"tag\": "separation",\n \"popularity\": 11753\n },\n {\n \"tag\": "infancy",\n \"popularity\": 11738\n },\n {\n \"tag\": "ecrasite",\n \"popularity\": 11723\n },\n {\n \"tag\": "propolize",\n \"popularity\": 11708\n },\n {\n \"tag\": "uncram phyllin",\n \"popularity\": 11693\n },\n {\n \"tag\": "thymopathy",\n \"popularity\": 11678\n },\n {\n \"tag\": "omniscient",\n \"popularity\": 11663\n },\n {\n \"tag\": "coussinet hazer",\n \"popularity\": 11648\n },\n {\n \"tag\": "contributiveness",\n \"popularity\": 11633\n },\n {\n \"tag\": "septifluous",\n \"popularity\": 11618\n },\n {\n \"tag\": "halfness",\n \"popularity\": 11603\n },\n {\n \"tag\": "tocher",\n \"popularity\": 11589\n },\n {\n \"tag\": "monotonist",\n \"popularity\": 11574\n },\n {\n \"tag\": "headchair",\n \"popularity\": 11559\n },\n {\n \"tag\": "everywhence",\n \"popularity\": 11544\n },\n {\n \"tag\": "gerate",\n \"popularity\": 11530\n },\n {\n \"tag\": "unrepellent",\n \"popularity\": 11515\n },\n {\n \"tag\": "inidoneous",\n \"popularity\": 11500\n },\n {\n \"tag\": "Rifi",\n \"popularity\": 11486\n },\n {\n \"tag\": "unstop",\n \"popularity\": 11471\n },\n {\n \"tag\": "conformer",\n \"popularity\": 11457\n },\n {\n \"tag\": "vivisectionally",\n \"popularity\": 11442\n },\n {\n \"tag\": "nonfinishing",\n \"popularity\": 11428\n },\n {\n \"tag\": "tyranness",\n \"popularity\": 11413\n },\n {\n \"tag\": "shepherdage havoc",\n \"popularity\": 11399\n },\n {\n \"tag\": "coronale",\n \"popularity\": 11385\n },\n {\n \"tag\": "airmarker",\n \"popularity\": 11370\n },\n {\n \"tag\": "subpanel",\n \"popularity\": 11356\n },\n {\n \"tag\": "conciliation",\n \"popularity\": 11342\n },\n {\n \"tag\": "supergun",\n \"popularity\": 11327\n },\n {\n \"tag\": "photoheliography",\n \"popularity\": 11313\n },\n {\n \"tag\": "cacosmia",\n \"popularity\": 11299\n },\n {\n \"tag\": "caressant",\n \"popularity\": 11285\n },\n {\n \"tag\": "swivet",\n \"popularity\": 11270\n },\n {\n \"tag\": "coddler",\n \"popularity\": 11256\n },\n {\n \"tag\": "rakehellish",\n \"popularity\": 11242\n },\n {\n \"tag\": "recohabitation",\n \"popularity\": 11228\n },\n {\n \"tag\": "postillator",\n \"popularity\": 11214\n },\n {\n \"tag\": "receipt",\n \"popularity\": 11200\n },\n {\n \"tag\": "nonconformistical",\n \"popularity\": 11186\n },\n {\n \"tag\": "unglorified",\n \"popularity\": 11172\n },\n {\n \"tag\": "unordinariness",\n \"popularity\": 11158\n },\n {\n \"tag\": "tetrahydroxy",\n \"popularity\": 11144\n },\n {\n \"tag\": "haploperistomic corporeity",\n \"popularity\": 11130\n },\n {\n \"tag\": "varical",\n \"popularity\": 11117\n },\n {\n \"tag\": "pilferment",\n \"popularity\": 11103\n },\n {\n \"tag\": "reverentially playcraft",\n \"popularity\": 11089\n },\n {\n \"tag\": "unretentive",\n \"popularity\": 11075\n },\n {\n \"tag\": "readiness",\n \"popularity\": 11061\n },\n {\n \"tag\": "thermomagnetism",\n \"popularity\": 11048\n },\n {\n \"tag\": "spotless",\n \"popularity\": 11034\n },\n {\n \"tag\": "semishrubby",\n \"popularity\": 11020\n },\n {\n \"tag\": "metrotomy",\n \"popularity\": 11007\n },\n {\n \"tag\": "hocker",\n \"popularity\": 10993\n },\n {\n \"tag\": "anecdotal",\n \"popularity\": 10979\n },\n {\n \"tag\": "tetrabelodont",\n \"popularity\": 10966\n },\n {\n \"tag\": "Ramillied",\n \"popularity\": 10952\n },\n {\n \"tag\": "sympatheticism",\n \"popularity\": 10939\n },\n {\n \"tag\": "kiskatom",\n \"popularity\": 10925\n },\n {\n \"tag\": "concyclically",\n \"popularity\": 10912\n },\n {\n \"tag\": "tunicless",\n \"popularity\": 10899\n },\n {\n \"tag\": "formalistic",\n \"popularity\": 10885\n },\n {\n \"tag\": "thermacogenesis",\n \"popularity\": 10872\n },\n {\n \"tag\": "multimotored",\n \"popularity\": 10858\n },\n {\n \"tag\": "inversive",\n \"popularity\": 10845\n },\n {\n \"tag\": "Jatki",\n \"popularity\": 10832\n },\n {\n \"tag\": "highest",\n \"popularity\": 10818\n },\n {\n \"tag\": "rubidic",\n \"popularity\": 10805\n },\n {\n \"tag\": "acranial",\n \"popularity\": 10792\n },\n {\n \"tag\": "pulvinulus",\n \"popularity\": 10779\n },\n {\n \"tag\": "nattiness",\n \"popularity\": 10766\n },\n {\n \"tag\": "antisimoniacal",\n \"popularity\": 10752\n },\n {\n \"tag\": "tetanize",\n \"popularity\": 10739\n },\n {\n \"tag\": "spectrophobia",\n \"popularity\": 10726\n },\n {\n \"tag\": "monopolitical",\n \"popularity\": 10713\n },\n {\n \"tag\": "teallite",\n \"popularity\": 10700\n },\n {\n \"tag\": "alicyclic interpellator",\n \"popularity\": 10687\n },\n {\n \"tag\": "nonsynthesized",\n \"popularity\": 10674\n },\n {\n \"tag\": "wheelwrighting",\n \"popularity\": 10661\n },\n {\n \"tag\": "pelliculate",\n \"popularity\": 10648\n },\n {\n \"tag\": "Euphyllopoda",\n \"popularity\": 10635\n },\n {\n \"tag\": "graver",\n \"popularity\": 10622\n },\n {\n \"tag\": "automorph",\n \"popularity\": 10609\n },\n {\n \"tag\": "underhanded",\n \"popularity\": 10597\n },\n {\n \"tag\": "causal",\n \"popularity\": 10584\n },\n {\n \"tag\": "odoom",\n \"popularity\": 10571\n },\n {\n \"tag\": "apodictical",\n \"popularity\": 10558\n },\n {\n \"tag\": "foundery",\n \"popularity\": 10545\n },\n {\n \"tag\": "unneighbored",\n \"popularity\": 10533\n },\n {\n \"tag\": "woolshearing",\n \"popularity\": 10520\n },\n {\n \"tag\": "boschveld",\n \"popularity\": 10507\n },\n {\n \"tag\": "unhardened lipopod",\n \"popularity\": 10495\n },\n {\n \"tag\": "unenriching",\n \"popularity\": 10482\n },\n {\n \"tag\": "spak",\n \"popularity\": 10469\n },\n {\n \"tag\": "yogasana",\n \"popularity\": 10457\n },\n {\n \"tag\": "depoetize",\n \"popularity\": 10444\n },\n {\n \"tag\": "parousiamania",\n \"popularity\": 10432\n },\n {\n \"tag\": "longlegs",\n \"popularity\": 10419\n },\n {\n \"tag\": "gelatinizability",\n \"popularity\": 10407\n },\n {\n \"tag\": "edeology",\n \"popularity\": 10394\n },\n {\n \"tag\": "sodwork",\n \"popularity\": 10382\n },\n {\n \"tag\": "somnambule",\n \"popularity\": 10369\n },\n {\n \"tag\": "antiquing",\n \"popularity\": 10357\n },\n {\n \"tag\": "intaker",\n \"popularity\": 10344\n },\n {\n \"tag\": "Gerberia",\n \"popularity\": 10332\n },\n {\n \"tag\": "preadmit",\n \"popularity\": 10320\n },\n {\n \"tag\": "bullhorn",\n \"popularity\": 10307\n },\n {\n \"tag\": "sororal",\n \"popularity\": 10295\n },\n {\n \"tag\": "phaeophyceous",\n \"popularity\": 10283\n },\n {\n \"tag\": "omphalopsychite",\n \"popularity\": 10271\n },\n {\n \"tag\": "substantious",\n \"popularity\": 10258\n },\n {\n \"tag\": "undemonstratively",\n \"popularity\": 10246\n },\n {\n \"tag\": "corallike blackit",\n \"popularity\": 10234\n },\n {\n \"tag\": "amoebous",\n \"popularity\": 10222\n },\n {\n \"tag\": "Polypodium",\n \"popularity\": 10210\n },\n {\n \"tag\": "blodite",\n \"popularity\": 10198\n },\n {\n \"tag\": "hordarian",\n \"popularity\": 10186\n },\n {\n \"tag\": "nonmoral",\n \"popularity\": 10174\n },\n {\n \"tag\": "dredgeful",\n \"popularity\": 10162\n },\n {\n \"tag\": "nourishingly",\n \"popularity\": 10150\n },\n {\n \"tag\": "seamy",\n \"popularity\": 10138\n },\n {\n \"tag\": "vara",\n \"popularity\": 10126\n },\n {\n \"tag\": "incorruptibleness",\n \"popularity\": 10114\n },\n {\n \"tag\": "manipulator",\n \"popularity\": 10102\n },\n {\n \"tag\": "chromodiascope uncountably",\n \"popularity\": 10090\n },\n {\n \"tag\": "typhemia",\n \"popularity\": 10078\n },\n {\n \"tag\": "Smalcaldic",\n \"popularity\": 10066\n },\n {\n \"tag\": "precontrive",\n \"popularity\": 10054\n },\n {\n \"tag\": "sowarry",\n \"popularity\": 10042\n },\n {\n \"tag\": "monopodic",\n \"popularity\": 10031\n },\n {\n \"tag\": "recodify",\n \"popularity\": 10019\n },\n {\n \"tag\": "phosphowolframic rimple",\n \"popularity\": 10007\n },\n {\n \"tag\": "triconch",\n \"popularity\": 9995\n },\n {\n \"tag\": "pycnodontoid",\n \"popularity\": 9984\n },\n {\n \"tag\": "bradyspermatism",\n \"popularity\": 9972\n },\n {\n \"tag\": "extensionist",\n \"popularity\": 9960\n },\n {\n \"tag\": "characterize",\n \"popularity\": 9949\n },\n {\n \"tag\": "anatreptic proteolytic",\n \"popularity\": 9937\n },\n {\n \"tag\": "waterboard",\n \"popularity\": 9925\n },\n {\n \"tag\": "allopathically",\n \"popularity\": 9914\n },\n {\n \"tag\": "arithmetician",\n \"popularity\": 9902\n },\n {\n \"tag\": "subsist",\n \"popularity\": 9891\n },\n {\n \"tag\": "Islamitish",\n \"popularity\": 9879\n },\n {\n \"tag\": "biddy",\n \"popularity\": 9868\n },\n {\n \"tag\": "reverberation",\n \"popularity\": 9856\n },\n {\n \"tag\": "Zaporogue",\n \"popularity\": 9845\n },\n {\n \"tag\": "soapberry",\n \"popularity\": 9833\n },\n {\n \"tag\": "physiognomics",\n \"popularity\": 9822\n },\n {\n \"tag\": "hospitalization",\n \"popularity\": 9810\n },\n {\n \"tag\": "dissembler",\n \"popularity\": 9799\n },\n {\n \"tag\": "festinate",\n \"popularity\": 9788\n },\n {\n \"tag\": "angiectopia",\n \"popularity\": 9776\n },\n {\n \"tag\": "Pulicidae",\n \"popularity\": 9765\n },\n {\n \"tag\": "beslimer",\n \"popularity\": 9754\n },\n {\n \"tag\": "nontreaty",\n \"popularity\": 9743\n },\n {\n \"tag\": "unhaggled",\n \"popularity\": 9731\n },\n {\n \"tag\": "catfall",\n \"popularity\": 9720\n },\n {\n \"tag\": "stola",\n \"popularity\": 9709\n },\n {\n \"tag\": "pataco",\n \"popularity\": 9698\n },\n {\n \"tag\": "ontologistic",\n \"popularity\": 9686\n },\n {\n \"tag\": "aerosphere",\n \"popularity\": 9675\n },\n {\n \"tag\": "deobstruent",\n \"popularity\": 9664\n },\n {\n \"tag\": "threepence",\n \"popularity\": 9653\n },\n {\n \"tag\": "cyprinoid",\n \"popularity\": 9642\n },\n {\n \"tag\": "overbank",\n \"popularity\": 9631\n },\n {\n \"tag\": "prostyle",\n \"popularity\": 9620\n },\n {\n \"tag\": "photoactivation",\n \"popularity\": 9609\n },\n {\n \"tag\": "homothetic",\n \"popularity\": 9598\n },\n {\n \"tag\": "roguedom",\n \"popularity\": 9587\n },\n {\n \"tag\": "underschool",\n \"popularity\": 9576\n },\n {\n \"tag\": "tractility",\n \"popularity\": 9565\n },\n {\n \"tag\": "gardenin",\n \"popularity\": 9554\n },\n {\n \"tag\": "Micromastictora",\n \"popularity\": 9543\n },\n {\n \"tag\": "gossypine",\n \"popularity\": 9532\n },\n {\n \"tag\": "amylodyspepsia",\n \"popularity\": 9521\n },\n {\n \"tag\": "Luciana",\n \"popularity\": 9510\n },\n {\n \"tag\": "meetly nonfisherman",\n \"popularity\": 9500\n },\n {\n \"tag\": "backhanded",\n \"popularity\": 9489\n },\n {\n \"tag\": "decrustation",\n \"popularity\": 9478\n },\n {\n \"tag\": "pinrail",\n \"popularity\": 9467\n },\n {\n \"tag\": "Mahori",\n \"popularity\": 9456\n },\n {\n \"tag\": "unsizable",\n \"popularity\": 9446\n },\n {\n \"tag\": "disawa",\n \"popularity\": 9435\n },\n {\n \"tag\": "launderability inconsidered",\n \"popularity\": 9424\n },\n {\n \"tag\": "unclassical",\n \"popularity\": 9414\n },\n {\n \"tag\": "inobtrusiveness",\n \"popularity\": 9403\n },\n {\n \"tag\": "sialogenous",\n \"popularity\": 9392\n },\n {\n \"tag\": "sulphonamide",\n \"popularity\": 9382\n },\n {\n \"tag\": "diluvion",\n \"popularity\": 9371\n },\n {\n \"tag\": "deuteranope",\n \"popularity\": 9361\n },\n {\n \"tag\": "addition",\n \"popularity\": 9350\n },\n {\n \"tag\": "bockeret",\n \"popularity\": 9339\n },\n {\n \"tag\": "unidentified",\n \"popularity\": 9329\n },\n {\n \"tag\": "caryatic",\n \"popularity\": 9318\n },\n {\n \"tag\": "misattribution",\n \"popularity\": 9308\n },\n {\n \"tag\": "outray",\n \"popularity\": 9297\n },\n {\n \"tag\": "areometrical",\n \"popularity\": 9287\n },\n {\n \"tag\": "antilogism",\n \"popularity\": 9277\n },\n {\n \"tag\": "inadjustable",\n \"popularity\": 9266\n },\n {\n \"tag\": "byssus",\n \"popularity\": 9256\n },\n {\n \"tag\": "trun",\n \"popularity\": 9245\n },\n {\n \"tag\": "thereology",\n \"popularity\": 9235\n },\n {\n \"tag\": "extort",\n \"popularity\": 9225\n },\n {\n \"tag\": "bumpkin",\n \"popularity\": 9214\n },\n {\n \"tag\": "sulphobenzide",\n \"popularity\": 9204\n },\n {\n \"tag\": "hydrogeology",\n \"popularity\": 9194\n },\n {\n \"tag\": "nidulariaceous",\n \"popularity\": 9183\n },\n {\n \"tag\": "propodiale",\n \"popularity\": 9173\n },\n {\n \"tag\": "fierily",\n \"popularity\": 9163\n },\n {\n \"tag\": "aerotonometry",\n \"popularity\": 9153\n },\n {\n \"tag\": "pelobatid oversuperstitious",\n \"popularity\": 9142\n },\n {\n \"tag\": "restringent",\n \"popularity\": 9132\n },\n {\n \"tag\": "tetrapodic",\n \"popularity\": 9122\n },\n {\n \"tag\": "heroicness Vendidad",\n \"popularity\": 9112\n },\n {\n \"tag\": "Sphingurus",\n \"popularity\": 9102\n },\n {\n \"tag\": "sclerote",\n \"popularity\": 9092\n },\n {\n \"tag\": "unkeyed",\n \"popularity\": 9082\n },\n {\n \"tag\": "superparliamentary",\n \"popularity\": 9072\n },\n {\n \"tag\": "hetericism",\n \"popularity\": 9061\n },\n {\n \"tag\": "hucklebone",\n \"popularity\": 9051\n },\n {\n \"tag\": "yojan",\n \"popularity\": 9041\n },\n {\n \"tag\": "bossed",\n \"popularity\": 9031\n },\n {\n \"tag\": "spiderwork",\n \"popularity\": 9021\n },\n {\n \"tag\": "millfeed dullery",\n \"popularity\": 9011\n },\n {\n \"tag\": "adnoun",\n \"popularity\": 9001\n },\n {\n \"tag\": "mesometric",\n \"popularity\": 8992\n },\n {\n \"tag\": "doublehandedness",\n \"popularity\": 8982\n },\n {\n \"tag\": "suppurant",\n \"popularity\": 8972\n },\n {\n \"tag\": "Berlinize",\n \"popularity\": 8962\n },\n {\n \"tag\": "sontag",\n \"popularity\": 8952\n },\n {\n \"tag\": "biplane",\n \"popularity\": 8942\n },\n {\n \"tag\": "insula",\n \"popularity\": 8932\n },\n {\n \"tag\": "unbrand",\n \"popularity\": 8922\n },\n {\n \"tag\": "Basilosaurus",\n \"popularity\": 8913\n },\n {\n \"tag\": "prenomination",\n \"popularity\": 8903\n },\n {\n \"tag\": "untextual",\n \"popularity\": 8893\n },\n {\n \"tag\": "coleslaw",\n \"popularity\": 8883\n },\n {\n \"tag\": "langsyne",\n \"popularity\": 8874\n },\n {\n \"tag\": "impede",\n \"popularity\": 8864\n },\n {\n \"tag\": "irrigator",\n \"popularity\": 8854\n },\n {\n \"tag\": "deflocculation",\n \"popularity\": 8844\n },\n {\n \"tag\": "narghile",\n \"popularity\": 8835\n },\n {\n \"tag\": "unguardedly ebenaceous",\n \"popularity\": 8825\n },\n {\n \"tag\": "conversantly subocular",\n \"popularity\": 8815\n },\n {\n \"tag\": "hydroponic",\n \"popularity\": 8806\n },\n {\n \"tag\": "anthropopsychism",\n \"popularity\": 8796\n },\n {\n \"tag\": "panoptic",\n \"popularity\": 8787\n },\n {\n \"tag\": "insufferable",\n \"popularity\": 8777\n },\n {\n \"tag\": "salema",\n \"popularity\": 8768\n },\n {\n \"tag\": "Myriapoda",\n \"popularity\": 8758\n },\n {\n \"tag\": "regarrison",\n \"popularity\": 8748\n },\n {\n \"tag\": "overlearned",\n \"popularity\": 8739\n },\n {\n \"tag\": "ultraroyalist conventical bureaucratical",\n \"popularity\": 8729\n },\n {\n \"tag\": "epicaridan",\n \"popularity\": 8720\n },\n {\n \"tag\": "poetastress",\n \"popularity\": 8711\n },\n {\n \"tag\": "monophthalmus",\n \"popularity\": 8701\n },\n {\n \"tag\": "simnel",\n \"popularity\": 8692\n },\n {\n \"tag\": "compotor",\n \"popularity\": 8682\n },\n {\n \"tag\": "hydrolase",\n \"popularity\": 8673\n },\n {\n \"tag\": "attemptless",\n \"popularity\": 8663\n },\n {\n \"tag\": "visceroptosis",\n \"popularity\": 8654\n },\n {\n \"tag\": "unpreparedly",\n \"popularity\": 8645\n },\n {\n \"tag\": "mastage",\n \"popularity\": 8635\n },\n {\n \"tag\": "preinfluence",\n \"popularity\": 8626\n },\n {\n \"tag\": "Siwan",\n \"popularity\": 8617\n },\n {\n \"tag\": "ceratotheca belvedere",\n \"popularity\": 8607\n },\n {\n \"tag\": "disenablement",\n \"popularity\": 8598\n },\n {\n \"tag\": "nine",\n \"popularity\": 8589\n },\n {\n \"tag\": "spellingdown abridgment",\n \"popularity\": 8580\n },\n {\n \"tag\": "twilightless",\n \"popularity\": 8571\n },\n {\n \"tag\": "overflow",\n \"popularity\": 8561\n },\n {\n \"tag\": "mismeasurement",\n \"popularity\": 8552\n },\n {\n \"tag\": "nawabship",\n \"popularity\": 8543\n },\n {\n \"tag\": "Phrynosoma",\n \"popularity\": 8534\n },\n {\n \"tag\": "unanticipatingly",\n \"popularity\": 8525\n },\n {\n \"tag\": "blankite",\n \"popularity\": 8516\n },\n {\n \"tag\": "role",\n \"popularity\": 8506\n },\n {\n \"tag\": "peperine edelweiss",\n \"popularity\": 8497\n },\n {\n \"tag\": "unhysterical",\n \"popularity\": 8488\n },\n {\n \"tag\": "attentiveness",\n \"popularity\": 8479\n },\n {\n \"tag\": "scintillant",\n \"popularity\": 8470\n },\n {\n \"tag\": "stenostomatous",\n \"popularity\": 8461\n },\n {\n \"tag\": "pectinite",\n \"popularity\": 8452\n },\n {\n \"tag\": "herring",\n \"popularity\": 8443\n },\n {\n \"tag\": "interroom",\n \"popularity\": 8434\n },\n {\n \"tag\": "laccol",\n \"popularity\": 8425\n },\n {\n \"tag\": "unpartably kylite",\n \"popularity\": 8416\n },\n {\n \"tag\": "spirivalve",\n \"popularity\": 8407\n },\n {\n \"tag\": "hoosegow",\n \"popularity\": 8398\n },\n {\n \"tag\": "doat",\n \"popularity\": 8389\n },\n {\n \"tag\": "amphibian",\n \"popularity\": 8380\n },\n {\n \"tag\": "exposit",\n \"popularity\": 8371\n },\n {\n \"tag\": "canopy",\n \"popularity\": 8363\n },\n {\n \"tag\": "houndlike",\n \"popularity\": 8354\n },\n {\n \"tag\": "spikebill",\n \"popularity\": 8345\n },\n {\n \"tag\": "wiseacre pyrotechnic",\n \"popularity\": 8336\n },\n {\n \"tag\": "confessingly woodman",\n \"popularity\": 8327\n },\n {\n \"tag\": "overside",\n \"popularity\": 8318\n },\n {\n \"tag\": "oftwhiles",\n \"popularity\": 8310\n },\n {\n \"tag\": "Musophagidae",\n \"popularity\": 8301\n },\n {\n \"tag\": "slumberer",\n \"popularity\": 8292\n },\n {\n \"tag\": "leiotrichy",\n \"popularity\": 8283\n },\n {\n \"tag\": "Mantispidae",\n \"popularity\": 8275\n },\n {\n \"tag\": "perceptually",\n \"popularity\": 8266\n },\n {\n \"tag\": "biller",\n \"popularity\": 8257\n },\n {\n \"tag\": "eudaemonical",\n \"popularity\": 8249\n },\n {\n \"tag\": "underfiend",\n \"popularity\": 8240\n },\n {\n \"tag\": "impartible",\n \"popularity\": 8231\n },\n {\n \"tag\": "saxicavous",\n \"popularity\": 8223\n },\n {\n \"tag\": "yapster",\n \"popularity\": 8214\n },\n {\n \"tag\": "aliseptal",\n \"popularity\": 8205\n },\n {\n \"tag\": "omniparient",\n \"popularity\": 8197\n },\n {\n \"tag\": "nishiki",\n \"popularity\": 8188\n },\n {\n \"tag\": "yuzluk",\n \"popularity\": 8180\n },\n {\n \"tag\": "solderer",\n \"popularity\": 8171\n },\n {\n \"tag\": "Pinna",\n \"popularity\": 8162\n },\n {\n \"tag\": "reinterfere",\n \"popularity\": 8154\n },\n {\n \"tag\": "superepic",\n \"popularity\": 8145\n },\n {\n \"tag\": "ronquil",\n \"popularity\": 8137\n },\n {\n \"tag\": "bratstvo",\n \"popularity\": 8128\n },\n {\n \"tag\": "Thea",\n \"popularity\": 8120\n },\n {\n \"tag\": "hermaphroditical",\n \"popularity\": 8111\n },\n {\n \"tag\": "enlief",\n \"popularity\": 8103\n },\n {\n \"tag\": "Jesuate",\n \"popularity\": 8095\n },\n {\n \"tag\": "gaysome",\n \"popularity\": 8086\n },\n {\n \"tag\": "iliohypogastric",\n \"popularity\": 8078\n },\n {\n \"tag\": "regardance",\n \"popularity\": 8069\n },\n {\n \"tag\": "cumulately",\n \"popularity\": 8061\n },\n {\n \"tag\": "haustorial nucleolocentrosome",\n \"popularity\": 8053\n },\n {\n \"tag\": "cosmocrat",\n \"popularity\": 8044\n },\n {\n \"tag\": "onyxitis",\n \"popularity\": 8036\n },\n {\n \"tag\": "Cabinda",\n \"popularity\": 8028\n },\n {\n \"tag\": "coresort",\n \"popularity\": 8019\n },\n {\n \"tag\": "drusy preformant",\n \"popularity\": 8011\n },\n {\n \"tag\": "piningly",\n \"popularity\": 8003\n },\n {\n \"tag\": "bootlessly",\n \"popularity\": 7994\n },\n {\n \"tag\": "talari",\n \"popularity\": 7986\n },\n {\n \"tag\": "amidoacetal",\n \"popularity\": 7978\n },\n {\n \"tag\": "pschent",\n \"popularity\": 7970\n },\n {\n \"tag\": "consumptional scarer titivate",\n \"popularity\": 7962\n },\n {\n \"tag\": "Anserinae",\n \"popularity\": 7953\n },\n {\n \"tag\": "flaunter",\n \"popularity\": 7945\n },\n {\n \"tag\": "reindeer",\n \"popularity\": 7937\n },\n {\n \"tag\": "disparage",\n \"popularity\": 7929\n },\n {\n \"tag\": "superheat",\n \"popularity\": 7921\n },\n {\n \"tag\": "Chromatium",\n \"popularity\": 7912\n },\n {\n \"tag\": "Tina",\n \"popularity\": 7904\n },\n {\n \"tag\": "rededicatory",\n \"popularity\": 7896\n },\n {\n \"tag\": "nontransient",\n \"popularity\": 7888\n },\n {\n \"tag\": "Phocaean brinkless",\n \"popularity\": 7880\n },\n {\n \"tag\": "ventriculose",\n \"popularity\": 7872\n },\n {\n \"tag\": "upplough",\n \"popularity\": 7864\n },\n {\n \"tag\": "succorless",\n \"popularity\": 7856\n },\n {\n \"tag\": "hayrake",\n \"popularity\": 7848\n },\n {\n \"tag\": "merriness amorphia",\n \"popularity\": 7840\n },\n {\n \"tag\": "merycism",\n \"popularity\": 7832\n },\n {\n \"tag\": "checkrow",\n \"popularity\": 7824\n },\n {\n \"tag\": "scry",\n \"popularity\": 7816\n },\n {\n \"tag\": "obvolve",\n \"popularity\": 7808\n },\n {\n \"tag\": "orchard",\n \"popularity\": 7800\n },\n {\n \"tag\": "isomerize",\n \"popularity\": 7792\n },\n {\n \"tag\": "competitrix",\n \"popularity\": 7784\n },\n {\n \"tag\": "unbannered",\n \"popularity\": 7776\n },\n {\n \"tag\": "undoctrined",\n \"popularity\": 7768\n },\n {\n \"tag\": "theologian",\n \"popularity\": 7760\n },\n {\n \"tag\": "nebby",\n \"popularity\": 7752\n },\n {\n \"tag\": "Cardiazol",\n \"popularity\": 7745\n },\n {\n \"tag\": "phagedenic",\n \"popularity\": 7737\n },\n {\n \"tag\": "nostalgic",\n \"popularity\": 7729\n },\n {\n \"tag\": "orthodoxy",\n \"popularity\": 7721\n },\n {\n \"tag\": "oversanguine",\n \"popularity\": 7713\n },\n {\n \"tag\": "lish",\n \"popularity\": 7705\n },\n {\n \"tag\": "ketogenic",\n \"popularity\": 7698\n },\n {\n \"tag\": "syndicalize",\n \"popularity\": 7690\n },\n {\n \"tag\": "leeftail",\n \"popularity\": 7682\n },\n {\n \"tag\": "bulbomedullary",\n \"popularity\": 7674\n },\n {\n \"tag\": "reletter",\n \"popularity\": 7667\n },\n {\n \"tag\": "bitterly",\n \"popularity\": 7659\n },\n {\n \"tag\": "participatory",\n \"popularity\": 7651\n },\n {\n \"tag\": "baldberry",\n \"popularity\": 7643\n },\n {\n \"tag\": "prowaterpower",\n \"popularity\": 7636\n },\n {\n \"tag\": "lexicographical",\n \"popularity\": 7628\n },\n {\n \"tag\": "Anisodactyli",\n \"popularity\": 7620\n },\n {\n \"tag\": "amphipodous",\n \"popularity\": 7613\n },\n {\n \"tag\": "triglandular",\n \"popularity\": 7605\n },\n {\n \"tag\": "xanthopsin",\n \"popularity\": 7597\n },\n {\n \"tag\": "indefinitude",\n \"popularity\": 7590\n },\n {\n \"tag\": "bookworm",\n \"popularity\": 7582\n },\n {\n \"tag\": "suffocative",\n \"popularity\": 7574\n },\n {\n \"tag\": "uncongested tyrant",\n \"popularity\": 7567\n },\n {\n \"tag\": "alow harmoniously Pamir",\n \"popularity\": 7559\n },\n {\n \"tag\": "monander",\n \"popularity\": 7552\n },\n {\n \"tag\": "bagatelle",\n \"popularity\": 7544\n },\n {\n \"tag\": "membranology",\n \"popularity\": 7537\n },\n {\n \"tag\": "parturifacient",\n \"popularity\": 7529\n },\n {\n \"tag\": "excitovascular",\n \"popularity\": 7522\n },\n {\n \"tag\": "homopolar",\n \"popularity\": 7514\n },\n {\n \"tag\": "phobiac",\n \"popularity\": 7507\n },\n {\n \"tag\": "clype",\n \"popularity\": 7499\n },\n {\n \"tag\": "unsubversive",\n \"popularity\": 7492\n },\n {\n \"tag\": "bostrychoidal scorpionwort",\n \"popularity\": 7484\n },\n {\n \"tag\": "biliteralism",\n \"popularity\": 7477\n },\n {\n \"tag\": "dentatocostate",\n \"popularity\": 7469\n },\n {\n \"tag\": "Pici",\n \"popularity\": 7462\n },\n {\n \"tag\": "sideritic",\n \"popularity\": 7454\n },\n {\n \"tag\": "syntaxis",\n \"popularity\": 7447\n },\n {\n \"tag\": "ingest",\n \"popularity\": 7440\n },\n {\n \"tag\": "rigmarolish",\n \"popularity\": 7432\n },\n {\n \"tag\": "ocreaceous",\n \"popularity\": 7425\n },\n {\n \"tag\": "hyperbrachyskelic",\n \"popularity\": 7418\n },\n {\n \"tag\": "basophobia",\n \"popularity\": 7410\n },\n {\n \"tag\": "substantialness",\n \"popularity\": 7403\n },\n {\n \"tag\": "agglutinoid",\n \"popularity\": 7396\n },\n {\n \"tag\": "longleaf",\n \"popularity\": 7388\n },\n {\n \"tag\": "electroengraving",\n \"popularity\": 7381\n },\n {\n \"tag\": "laparoenterotomy",\n \"popularity\": 7374\n },\n {\n \"tag\": "oxalylurea",\n \"popularity\": 7366\n },\n {\n \"tag\": "unattaintedly",\n \"popularity\": 7359\n },\n {\n \"tag\": "pennystone",\n \"popularity\": 7352\n },\n {\n \"tag\": "Plumbaginaceae",\n \"popularity\": 7345\n },\n {\n \"tag\": "horntip",\n \"popularity\": 7337\n },\n {\n \"tag\": "begrudge",\n \"popularity\": 7330\n },\n {\n \"tag\": "bechignoned",\n \"popularity\": 7323\n },\n {\n \"tag\": "hologonidium",\n \"popularity\": 7316\n },\n {\n \"tag\": "Pulian",\n \"popularity\": 7309\n },\n {\n \"tag\": "gratulation",\n \"popularity\": 7301\n },\n {\n \"tag\": "Sebright",\n \"popularity\": 7294\n },\n {\n \"tag\": "coinstantaneous emotionally",\n \"popularity\": 7287\n },\n {\n \"tag\": "thoracostracan",\n \"popularity\": 7280\n },\n {\n \"tag\": "saurodont",\n \"popularity\": 7273\n },\n {\n \"tag\": "coseat",\n \"popularity\": 7266\n },\n {\n \"tag\": "irascibility",\n \"popularity\": 7259\n },\n {\n \"tag\": "occlude",\n \"popularity\": 7251\n },\n {\n \"tag\": "metallurgist",\n \"popularity\": 7244\n },\n {\n \"tag\": "extraviolet",\n \"popularity\": 7237\n },\n {\n \"tag\": "clinic",\n \"popularity\": 7230\n },\n {\n \"tag\": "skater",\n \"popularity\": 7223\n },\n {\n \"tag\": "linguistic",\n \"popularity\": 7216\n },\n {\n \"tag\": "attacheship",\n \"popularity\": 7209\n },\n {\n \"tag\": "Rachianectes",\n \"popularity\": 7202\n },\n {\n \"tag\": "foliolose",\n \"popularity\": 7195\n },\n {\n \"tag\": "claudetite",\n \"popularity\": 7188\n },\n {\n \"tag\": "aphidian scratching",\n \"popularity\": 7181\n },\n {\n \"tag\": "Carida",\n \"popularity\": 7174\n },\n {\n \"tag\": "tiepin polymicroscope",\n \"popularity\": 7167\n },\n {\n \"tag\": "telpherage",\n \"popularity\": 7160\n },\n {\n \"tag\": "meek",\n \"popularity\": 7153\n },\n {\n \"tag\": "swiftness",\n \"popularity\": 7146\n },\n {\n \"tag\": "gentes",\n \"popularity\": 7139\n },\n {\n \"tag\": "uncommemorated",\n \"popularity\": 7132\n },\n {\n \"tag\": "Lazarus",\n \"popularity\": 7125\n },\n {\n \"tag\": "redivive",\n \"popularity\": 7119\n },\n {\n \"tag\": "nonfebrile",\n \"popularity\": 7112\n },\n {\n \"tag\": "nymphet",\n \"popularity\": 7105\n },\n {\n \"tag\": "areologically",\n \"popularity\": 7098\n },\n {\n \"tag\": "undonkey",\n \"popularity\": 7091\n },\n {\n \"tag\": "projecting",\n \"popularity\": 7084\n },\n {\n \"tag\": "pinnigrade",\n \"popularity\": 7077\n },\n {\n \"tag\": "butylation",\n \"popularity\": 7071\n },\n {\n \"tag\": "philologistic lenticle",\n \"popularity\": 7064\n },\n {\n \"tag\": "nooky",\n \"popularity\": 7057\n },\n {\n \"tag\": "incestuousness",\n \"popularity\": 7050\n },\n {\n \"tag\": "palingenetically",\n \"popularity\": 7043\n },\n {\n \"tag\": "mitochondria",\n \"popularity\": 7037\n },\n {\n \"tag\": "truthify",\n \"popularity\": 7030\n },\n {\n \"tag\": "titanyl",\n \"popularity\": 7023\n },\n {\n \"tag\": "bestride",\n \"popularity\": 7016\n },\n {\n \"tag\": "chende",\n \"popularity\": 7010\n },\n {\n \"tag\": "Chaucerian monophote",\n \"popularity\": 7003\n },\n {\n \"tag\": "cutback",\n \"popularity\": 6996\n },\n {\n \"tag\": "unpatiently",\n \"popularity\": 6989\n },\n {\n \"tag\": "subvitreous",\n \"popularity\": 6983\n },\n {\n \"tag\": "organizable",\n \"popularity\": 6976\n },\n {\n \"tag\": "anniverse uncomprehensible",\n \"popularity\": 6969\n },\n {\n \"tag\": "hyalescence",\n \"popularity\": 6963\n },\n {\n \"tag\": "amniochorial",\n \"popularity\": 6956\n },\n {\n \"tag\": "Corybantian",\n \"popularity\": 6949\n },\n {\n \"tag\": "genocide Scaphitidae",\n \"popularity\": 6943\n },\n {\n \"tag\": "accordionist",\n \"popularity\": 6936\n },\n {\n \"tag\": "becheck",\n \"popularity\": 6930\n },\n {\n \"tag\": "overproduce",\n \"popularity\": 6923\n },\n {\n \"tag\": "unmaniac frijolillo",\n \"popularity\": 6916\n },\n {\n \"tag\": "multisulcated",\n \"popularity\": 6910\n },\n {\n \"tag\": "wennebergite",\n \"popularity\": 6903\n },\n {\n \"tag\": "tautousious mowth",\n \"popularity\": 6897\n },\n {\n \"tag\": "marigold",\n \"popularity\": 6890\n },\n {\n \"tag\": "affray",\n \"popularity\": 6884\n },\n {\n \"tag\": "nonidolatrous",\n \"popularity\": 6877\n },\n {\n \"tag\": "aphrasia",\n \"popularity\": 6871\n },\n {\n \"tag\": "muddlingly",\n \"popularity\": 6864\n },\n {\n \"tag\": "clear",\n \"popularity\": 6858\n },\n {\n \"tag\": "Clitoria",\n \"popularity\": 6851\n },\n {\n \"tag\": "apportionment underwaist",\n \"popularity\": 6845\n },\n {\n \"tag\": "kodakist",\n \"popularity\": 6838\n },\n {\n \"tag\": "Momotidae",\n \"popularity\": 6832\n },\n {\n \"tag\": "cryptovalency",\n \"popularity\": 6825\n },\n {\n \"tag\": "floe",\n \"popularity\": 6819\n },\n {\n \"tag\": "aphagia",\n \"popularity\": 6812\n },\n {\n \"tag\": "brontograph",\n \"popularity\": 6806\n },\n {\n \"tag\": "tubulous",\n \"popularity\": 6799\n },\n {\n \"tag\": "unhorse",\n \"popularity\": 6793\n },\n {\n \"tag\": "chlordane",\n \"popularity\": 6787\n },\n {\n \"tag\": "colloquy brochan",\n \"popularity\": 6780\n },\n {\n \"tag\": "sloosh",\n \"popularity\": 6774\n },\n {\n \"tag\": "battered",\n \"popularity\": 6767\n },\n {\n \"tag\": "monocularity pluriguttulate",\n \"popularity\": 6761\n },\n {\n \"tag\": "chiastoneury",\n \"popularity\": 6755\n },\n {\n \"tag\": "Sanguinaria",\n \"popularity\": 6748\n },\n {\n \"tag\": "confessionary",\n \"popularity\": 6742\n },\n {\n \"tag\": "enzymic",\n \"popularity\": 6736\n },\n {\n \"tag\": "cord",\n \"popularity\": 6729\n },\n {\n \"tag\": "oviducal",\n \"popularity\": 6723\n },\n {\n \"tag\": "crozzle outsea",\n \"popularity\": 6717\n },\n {\n \"tag\": "balladical",\n \"popularity\": 6710\n },\n {\n \"tag\": "uncollectibleness",\n \"popularity\": 6704\n },\n {\n \"tag\": "predorsal",\n \"popularity\": 6698\n },\n {\n \"tag\": "reauthenticate",\n \"popularity\": 6692\n },\n {\n \"tag\": "ravissant",\n \"popularity\": 6685\n },\n {\n \"tag\": "advantageousness",\n \"popularity\": 6679\n },\n {\n \"tag\": "rung",\n \"popularity\": 6673\n },\n {\n \"tag\": "duncedom",\n \"popularity\": 6667\n },\n {\n \"tag\": "hematolite",\n \"popularity\": 6660\n },\n {\n \"tag\": "thisness",\n \"popularity\": 6654\n },\n {\n \"tag\": "mapau",\n \"popularity\": 6648\n },\n {\n \"tag\": "Hecatic",\n \"popularity\": 6642\n },\n {\n \"tag\": "meningoencephalocele",\n \"popularity\": 6636\n },\n {\n \"tag\": "confection sorra",\n \"popularity\": 6630\n },\n {\n \"tag\": "unsedate",\n \"popularity\": 6623\n },\n {\n \"tag\": "meningocerebritis",\n \"popularity\": 6617\n },\n {\n \"tag\": "biopsychological",\n \"popularity\": 6611\n },\n {\n \"tag\": "clavicithern",\n \"popularity\": 6605\n },\n {\n \"tag\": "resun",\n \"popularity\": 6599\n },\n {\n \"tag\": "bayamo",\n \"popularity\": 6593\n },\n {\n \"tag\": "seeableness",\n \"popularity\": 6587\n },\n {\n \"tag\": "hypsidolichocephalism",\n \"popularity\": 6581\n },\n {\n \"tag\": "salivous",\n \"popularity\": 6574\n },\n {\n \"tag\": "neumatize",\n \"popularity\": 6568\n },\n {\n \"tag\": "stree",\n \"popularity\": 6562\n },\n {\n \"tag\": "markshot",\n \"popularity\": 6556\n },\n {\n \"tag\": "phraseologically",\n \"popularity\": 6550\n },\n {\n \"tag\": "yealing",\n \"popularity\": 6544\n },\n {\n \"tag\": "puggy",\n \"popularity\": 6538\n },\n {\n \"tag\": "sexadecimal",\n \"popularity\": 6532\n },\n {\n \"tag\": "unofficerlike",\n \"popularity\": 6526\n },\n {\n \"tag\": "curiosa",\n \"popularity\": 6520\n },\n {\n \"tag\": "pedomotor",\n \"popularity\": 6514\n },\n {\n \"tag\": "astrally",\n \"popularity\": 6508\n },\n {\n \"tag\": "prosomatic",\n \"popularity\": 6502\n },\n {\n \"tag\": "bulletheaded",\n \"popularity\": 6496\n },\n {\n \"tag\": "fortuned",\n \"popularity\": 6490\n },\n {\n \"tag\": "pixy",\n \"popularity\": 6484\n },\n {\n \"tag\": "protectrix",\n \"popularity\": 6478\n },\n {\n \"tag\": "arthritical",\n \"popularity\": 6472\n },\n {\n \"tag\": "coction",\n \"popularity\": 6466\n },\n {\n \"tag\": "Anthropos",\n \"popularity\": 6460\n },\n {\n \"tag\": "runer",\n \"popularity\": 6454\n },\n {\n \"tag\": "prenotify",\n \"popularity\": 6449\n },\n {\n \"tag\": "microspheric gastroparalysis",\n \"popularity\": 6443\n },\n {\n \"tag\": "Jovicentrical",\n \"popularity\": 6437\n },\n {\n \"tag\": "ceratopsid",\n \"popularity\": 6431\n },\n {\n \"tag\": "Theodoric",\n \"popularity\": 6425\n },\n {\n \"tag\": "Pactolus",\n \"popularity\": 6419\n },\n {\n \"tag\": "spawning",\n \"popularity\": 6413\n },\n {\n \"tag\": "nonconfidential",\n \"popularity\": 6407\n },\n {\n \"tag\": "halotrichite infumate",\n \"popularity\": 6402\n },\n {\n \"tag\": "undiscriminatingly",\n \"popularity\": 6396\n },\n {\n \"tag\": "unexasperated",\n \"popularity\": 6390\n },\n {\n \"tag\": "isoeugenol",\n \"popularity\": 6384\n },\n {\n \"tag\": "pressboard",\n \"popularity\": 6378\n },\n {\n \"tag\": "unshrew",\n \"popularity\": 6372\n },\n {\n \"tag\": "huffingly",\n \"popularity\": 6367\n },\n {\n \"tag\": "wagaun",\n \"popularity\": 6361\n },\n {\n \"tag\": "squirt Philistine",\n \"popularity\": 6355\n },\n {\n \"tag\": "kryptic",\n \"popularity\": 6349\n },\n {\n \"tag\": "paraform",\n \"popularity\": 6344\n },\n {\n \"tag\": "preverify",\n \"popularity\": 6338\n },\n {\n \"tag\": "dalar",\n \"popularity\": 6332\n },\n {\n \"tag\": "interdictor appraisingly",\n \"popularity\": 6326\n },\n {\n \"tag\": "chipped",\n \"popularity\": 6321\n },\n {\n \"tag\": "Pteropoda",\n \"popularity\": 6315\n },\n {\n \"tag\": "Bohairic",\n \"popularity\": 6309\n },\n {\n \"tag\": "felting",\n \"popularity\": 6303\n },\n {\n \"tag\": "compurgatorial",\n \"popularity\": 6298\n },\n {\n \"tag\": "unclead",\n \"popularity\": 6292\n },\n {\n \"tag\": "stockish",\n \"popularity\": 6286\n },\n {\n \"tag\": "mulligatawny",\n \"popularity\": 6281\n },\n {\n \"tag\": "Monotheletism",\n \"popularity\": 6275\n },\n {\n \"tag\": "lutanist",\n \"popularity\": 6269\n },\n {\n \"tag\": "gluttonize",\n \"popularity\": 6264\n },\n {\n \"tag\": "hackneyed",\n \"popularity\": 6258\n },\n {\n \"tag\": "yield",\n \"popularity\": 6253\n },\n {\n \"tag\": "sulphonamido",\n \"popularity\": 6247\n },\n {\n \"tag\": "granulative",\n \"popularity\": 6241\n },\n {\n \"tag\": "swingy",\n \"popularity\": 6236\n },\n {\n \"tag\": "Desmidiales",\n \"popularity\": 6230\n },\n {\n \"tag\": "tootlish",\n \"popularity\": 6224\n },\n {\n \"tag\": "unsatisfiedly",\n \"popularity\": 6219\n },\n {\n \"tag\": "burucha",\n \"popularity\": 6213\n },\n {\n \"tag\": "premeditatingly",\n \"popularity\": 6208\n },\n {\n \"tag\": "cowrie",\n \"popularity\": 6202\n },\n {\n \"tag\": "pleurolysis",\n \"popularity\": 6197\n },\n {\n \"tag\": "nationalist",\n \"popularity\": 6191\n },\n {\n \"tag\": "Pholadacea",\n \"popularity\": 6186\n },\n {\n \"tag\": "anakrousis",\n \"popularity\": 6180\n },\n {\n \"tag\": "proctorial",\n \"popularity\": 6175\n },\n {\n \"tag\": "cavillation",\n \"popularity\": 6169\n },\n {\n \"tag\": "cervicobregmatic",\n \"popularity\": 6163\n },\n {\n \"tag\": "interspecific",\n \"popularity\": 6158\n },\n {\n \"tag\": "Teutonity",\n \"popularity\": 6152\n },\n {\n \"tag\": "snakeholing",\n \"popularity\": 6147\n },\n {\n \"tag\": "balcony",\n \"popularity\": 6142\n },\n {\n \"tag\": "latchless",\n \"popularity\": 6136\n },\n {\n \"tag\": "Mithraea",\n \"popularity\": 6131\n },\n {\n \"tag\": "pseudepigraph",\n \"popularity\": 6125\n },\n {\n \"tag\": "flosser",\n \"popularity\": 6120\n },\n {\n \"tag\": "kotyle",\n \"popularity\": 6114\n },\n {\n \"tag\": "outdo",\n \"popularity\": 6109\n },\n {\n \"tag\": "interclerical",\n \"popularity\": 6103\n },\n {\n \"tag\": "aurar",\n \"popularity\": 6098\n },\n {\n \"tag\": "apophyseal",\n \"popularity\": 6093\n },\n {\n \"tag\": "Miro",\n \"popularity\": 6087\n },\n {\n \"tag\": "Priscillian",\n \"popularity\": 6082\n },\n {\n \"tag\": "alluvia",\n \"popularity\": 6076\n },\n {\n \"tag\": "exordize",\n \"popularity\": 6071\n },\n {\n \"tag\": "breakage",\n \"popularity\": 6066\n },\n {\n \"tag\": "unclosable",\n \"popularity\": 6060\n },\n {\n \"tag\": "monocondylous",\n \"popularity\": 6055\n },\n {\n \"tag\": "dyarchy",\n \"popularity\": 6050\n },\n {\n \"tag\": "subchelate",\n \"popularity\": 6044\n },\n {\n \"tag\": "hearsay",\n \"popularity\": 6039\n },\n {\n \"tag\": "prestigiously",\n \"popularity\": 6034\n },\n {\n \"tag\": "unimuscular",\n \"popularity\": 6028\n },\n {\n \"tag\": "lingwort",\n \"popularity\": 6023\n },\n {\n \"tag\": "jealous",\n \"popularity\": 6018\n },\n {\n \"tag\": "artilleryman",\n \"popularity\": 6012\n },\n {\n \"tag\": "phantasmagorially",\n \"popularity\": 6007\n },\n {\n \"tag\": "stagnum",\n \"popularity\": 6002\n },\n {\n \"tag\": "organotropism shatteringly",\n \"popularity\": 5997\n },\n {\n \"tag\": "Mytilus Hebraist",\n \"popularity\": 5991\n },\n {\n \"tag\": "returf",\n \"popularity\": 5986\n },\n {\n \"tag\": "townfolk",\n \"popularity\": 5981\n },\n {\n \"tag\": "propitiative",\n \"popularity\": 5976\n },\n {\n \"tag\": "Anita unsullied",\n \"popularity\": 5970\n },\n {\n \"tag\": "bandoleered",\n \"popularity\": 5965\n },\n {\n \"tag\": "cubby",\n \"popularity\": 5960\n },\n {\n \"tag\": "Hexanchus",\n \"popularity\": 5955\n },\n {\n \"tag\": "circuminsular",\n \"popularity\": 5949\n },\n {\n \"tag\": "chamberletted eumycete",\n \"popularity\": 5944\n },\n {\n \"tag\": "secure",\n \"popularity\": 5939\n },\n {\n \"tag\": "Edwardean",\n \"popularity\": 5934\n },\n {\n \"tag\": "strenth",\n \"popularity\": 5929\n },\n {\n \"tag\": "exhaustless",\n \"popularity\": 5923\n },\n {\n \"tag\": "electioneerer",\n \"popularity\": 5918\n },\n {\n \"tag\": "estoile",\n \"popularity\": 5913\n },\n {\n \"tag\": "redden",\n \"popularity\": 5908\n },\n {\n \"tag\": "solicitee",\n \"popularity\": 5903\n },\n {\n \"tag\": "nonpatented",\n \"popularity\": 5898\n },\n {\n \"tag\": "lemming",\n \"popularity\": 5893\n },\n {\n \"tag\": "marled subalate",\n \"popularity\": 5887\n },\n {\n \"tag\": "premial horizonward",\n \"popularity\": 5882\n },\n {\n \"tag\": "nonrefueling",\n \"popularity\": 5877\n },\n {\n \"tag\": "rupturewort",\n \"popularity\": 5872\n },\n {\n \"tag\": "unfed",\n \"popularity\": 5867\n },\n {\n \"tag\": "empanelment",\n \"popularity\": 5862\n },\n {\n \"tag\": "isoosmosis",\n \"popularity\": 5857\n },\n {\n \"tag\": "jipijapa",\n \"popularity\": 5852\n },\n {\n \"tag\": "Fiji",\n \"popularity\": 5847\n },\n {\n \"tag\": "interferant",\n \"popularity\": 5842\n },\n {\n \"tag\": "reconstitution",\n \"popularity\": 5837\n },\n {\n \"tag\": "dockyardman",\n \"popularity\": 5832\n },\n {\n \"tag\": "dolichopodous",\n \"popularity\": 5826\n },\n {\n \"tag\": "whiteworm",\n \"popularity\": 5821\n },\n {\n \"tag\": "atheistically",\n \"popularity\": 5816\n },\n {\n \"tag\": "nonconcern",\n \"popularity\": 5811\n },\n {\n \"tag\": "scarabaeidoid",\n \"popularity\": 5806\n },\n {\n \"tag\": "triumviri",\n \"popularity\": 5801\n },\n {\n \"tag\": "rakit",\n \"popularity\": 5796\n },\n {\n \"tag\": "leecheater",\n \"popularity\": 5791\n },\n {\n \"tag\": "Arthrostraca",\n \"popularity\": 5786\n },\n {\n \"tag\": "upknit",\n \"popularity\": 5781\n },\n {\n \"tag\": "tymbalon",\n \"popularity\": 5776\n },\n {\n \"tag\": "inventurous",\n \"popularity\": 5771\n },\n {\n \"tag\": "perradiate",\n \"popularity\": 5766\n },\n {\n \"tag\": "seer",\n \"popularity\": 5762\n },\n {\n \"tag\": "Auricularia",\n \"popularity\": 5757\n },\n {\n \"tag\": "wettish exclusivity",\n \"popularity\": 5752\n },\n {\n \"tag\": "arteriosympathectomy",\n \"popularity\": 5747\n },\n {\n \"tag\": "tunlike",\n \"popularity\": 5742\n },\n {\n \"tag\": "cephalocercal",\n \"popularity\": 5737\n },\n {\n \"tag\": "meaninglessness",\n \"popularity\": 5732\n },\n {\n \"tag\": "fountful",\n \"popularity\": 5727\n },\n {\n \"tag\": "appraisement",\n \"popularity\": 5722\n },\n {\n \"tag\": "geniculated",\n \"popularity\": 5717\n },\n {\n \"tag\": "rotator",\n \"popularity\": 5712\n },\n {\n \"tag\": "foremarch biography",\n \"popularity\": 5707\n },\n {\n \"tag\": "arid",\n \"popularity\": 5703\n },\n {\n \"tag\": "inapprehensible",\n \"popularity\": 5698\n },\n {\n \"tag\": "chlorosulphonic",\n \"popularity\": 5693\n },\n {\n \"tag\": "braguette",\n \"popularity\": 5688\n },\n {\n \"tag\": "panophthalmitis",\n \"popularity\": 5683\n },\n {\n \"tag\": "pro objurgatorily",\n \"popularity\": 5678\n },\n {\n \"tag\": "zooplasty",\n \"popularity\": 5673\n },\n {\n \"tag\": "Terebratulidae",\n \"popularity\": 5669\n },\n {\n \"tag\": "Mahran",\n \"popularity\": 5664\n },\n {\n \"tag\": "anthologize merocele",\n \"popularity\": 5659\n },\n {\n \"tag\": "firecracker chiropractic",\n \"popularity\": 5654\n },\n {\n \"tag\": "tenorist",\n \"popularity\": 5649\n },\n {\n \"tag\": "amphitene",\n \"popularity\": 5645\n },\n {\n \"tag\": "silverbush toadstone",\n \"popularity\": 5640\n },\n {\n \"tag\": "entozoological",\n \"popularity\": 5635\n },\n {\n \"tag\": "trustlessness",\n \"popularity\": 5630\n },\n {\n \"tag\": "reassay",\n \"popularity\": 5625\n },\n {\n \"tag\": "chrysalides",\n \"popularity\": 5621\n },\n {\n \"tag\": "truncation",\n \"popularity\": 5616\n },\n {\n \"tag\": "unwavered mausoleal",\n \"popularity\": 5611\n },\n {\n \"tag\": "unserrated",\n \"popularity\": 5606\n },\n {\n \"tag\": "frampler",\n \"popularity\": 5602\n },\n {\n \"tag\": "celestial",\n \"popularity\": 5597\n },\n {\n \"tag\": "depreter",\n \"popularity\": 5592\n },\n {\n \"tag\": "retaliate",\n \"popularity\": 5588\n },\n {\n \"tag\": "decempunctate",\n \"popularity\": 5583\n },\n {\n \"tag\": "submitter",\n \"popularity\": 5578\n },\n {\n \"tag\": "phenothiazine",\n \"popularity\": 5573\n },\n {\n \"tag\": "hobbledehoyish",\n \"popularity\": 5569\n },\n {\n \"tag\": "erraticness",\n \"popularity\": 5564\n },\n {\n \"tag\": "ovariodysneuria",\n \"popularity\": 5559\n },\n {\n \"tag\": "puja",\n \"popularity\": 5555\n },\n {\n \"tag\": "cesspool",\n \"popularity\": 5550\n },\n {\n \"tag\": "sonation",\n \"popularity\": 5545\n },\n {\n \"tag\": "moggan",\n \"popularity\": 5541\n },\n {\n \"tag\": "overjutting",\n \"popularity\": 5536\n },\n {\n \"tag\": "cohobate",\n \"popularity\": 5531\n },\n {\n \"tag\": "Distoma",\n \"popularity\": 5527\n },\n {\n \"tag\": "Plectognathi",\n \"popularity\": 5522\n },\n {\n \"tag\": "dumple caliphate",\n \"popularity\": 5517\n },\n {\n \"tag\": "shiko",\n \"popularity\": 5513\n },\n {\n \"tag\": "downness",\n \"popularity\": 5508\n },\n {\n \"tag\": "whippletree",\n \"popularity\": 5504\n },\n {\n \"tag\": "nymphaeum",\n \"popularity\": 5499\n },\n {\n \"tag\": "there trest",\n \"popularity\": 5494\n },\n {\n \"tag\": "psychrometer",\n \"popularity\": 5490\n },\n {\n \"tag\": "pyelograph",\n \"popularity\": 5485\n },\n {\n \"tag\": "unsalvable",\n \"popularity\": 5481\n },\n {\n \"tag\": "bescreen",\n \"popularity\": 5476\n },\n {\n \"tag\": "cushy",\n \"popularity\": 5471\n },\n {\n \"tag\": "plicatolobate",\n \"popularity\": 5467\n },\n {\n \"tag\": "lakie",\n \"popularity\": 5462\n },\n {\n \"tag\": "anthropodeoxycholic",\n \"popularity\": 5458\n },\n {\n \"tag\": "resatisfaction",\n \"popularity\": 5453\n },\n {\n \"tag\": "unravelment unaccidental",\n \"popularity\": 5449\n },\n {\n \"tag\": "telewriter monogeneous",\n \"popularity\": 5444\n },\n {\n \"tag\": "unsabred",\n \"popularity\": 5440\n },\n {\n \"tag\": "startlingly",\n \"popularity\": 5435\n },\n {\n \"tag\": "Aralia",\n \"popularity\": 5431\n },\n {\n \"tag\": "alamonti",\n \"popularity\": 5426\n },\n {\n \"tag\": "Franklinization",\n \"popularity\": 5422\n },\n {\n \"tag\": "parliament",\n \"popularity\": 5417\n },\n {\n \"tag\": "schoolkeeper",\n \"popularity\": 5413\n },\n {\n \"tag\": "nonsociety",\n \"popularity\": 5408\n },\n {\n \"tag\": "parenthetic",\n \"popularity\": 5404\n },\n {\n \"tag\": "stog",\n \"popularity\": 5399\n },\n {\n \"tag\": "Pristipomidae",\n \"popularity\": 5395\n },\n {\n \"tag\": "exocarp",\n \"popularity\": 5390\n },\n {\n \"tag\": "monaxonial",\n \"popularity\": 5386\n },\n {\n \"tag\": "tramroad",\n \"popularity\": 5381\n },\n {\n \"tag\": "hookah",\n \"popularity\": 5377\n },\n {\n \"tag\": "saccharonic",\n \"popularity\": 5372\n },\n {\n \"tag\": "perimetrium",\n \"popularity\": 5368\n },\n {\n \"tag\": "libelluloid",\n \"popularity\": 5364\n },\n {\n \"tag\": "overrunningly",\n \"popularity\": 5359\n },\n {\n \"tag\": "untwister",\n \"popularity\": 5355\n },\n {\n \"tag\": "ninnyhammer",\n \"popularity\": 5350\n },\n {\n \"tag\": "metranate",\n \"popularity\": 5346\n },\n {\n \"tag\": "sarcoblast",\n \"popularity\": 5341\n },\n {\n \"tag\": "porkish",\n \"popularity\": 5337\n },\n {\n \"tag\": "chauvinistic",\n \"popularity\": 5333\n },\n {\n \"tag\": "sexagesimal",\n \"popularity\": 5328\n },\n {\n \"tag\": "hematogenic",\n \"popularity\": 5324\n },\n {\n \"tag\": "selfpreservatory",\n \"popularity\": 5320\n },\n {\n \"tag\": "myelauxe",\n \"popularity\": 5315\n },\n {\n \"tag\": "triply",\n \"popularity\": 5311\n },\n {\n \"tag\": "metaphysicous",\n \"popularity\": 5306\n },\n {\n \"tag\": "vitrinoid",\n \"popularity\": 5302\n },\n {\n \"tag\": "glabellae",\n \"popularity\": 5298\n },\n {\n \"tag\": "moonlighter",\n \"popularity\": 5293\n },\n {\n \"tag\": "monotheistically epexegetical",\n \"popularity\": 5289\n },\n {\n \"tag\": "pseudolateral",\n \"popularity\": 5285\n },\n {\n \"tag\": "heptamethylene",\n \"popularity\": 5280\n },\n {\n \"tag\": "salvadora",\n \"popularity\": 5276\n },\n {\n \"tag\": "unjovial diphenylthiourea",\n \"popularity\": 5272\n },\n {\n \"tag\": "thievishness",\n \"popularity\": 5268\n },\n {\n \"tag\": "unridable",\n \"popularity\": 5263\n },\n {\n \"tag\": "underhandedly",\n \"popularity\": 5259\n },\n {\n \"tag\": "fungiform",\n \"popularity\": 5255\n },\n {\n \"tag\": "scruffle",\n \"popularity\": 5250\n },\n {\n \"tag\": "preindisposition",\n \"popularity\": 5246\n },\n {\n \"tag\": "Amadis",\n \"popularity\": 5242\n },\n {\n \"tag\": "Culex",\n \"popularity\": 5238\n },\n {\n \"tag\": "churning",\n \"popularity\": 5233\n },\n {\n \"tag\": "imperite",\n \"popularity\": 5229\n },\n {\n \"tag\": "levorotation",\n \"popularity\": 5225\n },\n {\n \"tag\": "barbate",\n \"popularity\": 5221\n },\n {\n \"tag\": "knotwort",\n \"popularity\": 5216\n },\n {\n \"tag\": "gypsiferous",\n \"popularity\": 5212\n },\n {\n \"tag\": "tourmalinic",\n \"popularity\": 5208\n },\n {\n \"tag\": "helleboric",\n \"popularity\": 5204\n },\n {\n \"tag\": "pneumograph",\n \"popularity\": 5199\n },\n {\n \"tag\": "Peltigeraceae",\n \"popularity\": 5195\n },\n {\n \"tag\": "busine",\n \"popularity\": 5191\n },\n {\n \"tag\": "Ailuridae",\n \"popularity\": 5187\n },\n {\n \"tag\": "azotate",\n \"popularity\": 5183\n },\n {\n \"tag\": "unlikable",\n \"popularity\": 5178\n },\n {\n \"tag\": "sloyd",\n \"popularity\": 5174\n },\n {\n \"tag\": "biblioclasm",\n \"popularity\": 5170\n },\n {\n \"tag\": "Seres",\n \"popularity\": 5166\n },\n {\n \"tag\": "unaccurateness",\n \"popularity\": 5162\n },\n {\n \"tag\": "scrollwise",\n \"popularity\": 5157\n },\n {\n \"tag\": "flandowser",\n \"popularity\": 5153\n },\n {\n \"tag\": "unblackened",\n \"popularity\": 5149\n },\n {\n \"tag\": "schistosternia",\n \"popularity\": 5145\n },\n {\n \"tag\": "fuse",\n \"popularity\": 5141\n },\n {\n \"tag\": "narthecal",\n \"popularity\": 5137\n },\n {\n \"tag\": "Cueva",\n \"popularity\": 5133\n },\n {\n \"tag\": "appositeness",\n \"popularity\": 5128\n },\n {\n \"tag\": "proindustrial",\n \"popularity\": 5124\n },\n {\n \"tag\": "dermatorrhoea",\n \"popularity\": 5120\n },\n {\n \"tag\": "oxyurous tendential",\n \"popularity\": 5116\n },\n {\n \"tag\": "isopurpurin",\n \"popularity\": 5112\n },\n {\n \"tag\": "impose",\n \"popularity\": 5108\n },\n {\n \"tag\": "wordsmanship",\n \"popularity\": 5104\n },\n {\n \"tag\": "saturator",\n \"popularity\": 5100\n },\n {\n \"tag\": "Nordicity",\n \"popularity\": 5096\n },\n {\n \"tag\": "interaccuse",\n \"popularity\": 5092\n },\n {\n \"tag\": "acridinic",\n \"popularity\": 5087\n },\n {\n \"tag\": "scholion",\n \"popularity\": 5083\n },\n {\n \"tag\": "pseudoaconitine",\n \"popularity\": 5079\n },\n {\n \"tag\": "doctorial",\n \"popularity\": 5075\n },\n {\n \"tag\": "Etchimin",\n \"popularity\": 5071\n },\n {\n \"tag\": "oliviform",\n \"popularity\": 5067\n },\n {\n \"tag\": "Pele",\n \"popularity\": 5063\n },\n {\n \"tag\": "Chiromantis Progymnasium",\n \"popularity\": 5059\n },\n {\n \"tag\": "toxosis",\n \"popularity\": 5055\n },\n {\n \"tag\": "spadilla",\n \"popularity\": 5051\n },\n {\n \"tag\": "Actinopterygii",\n \"popularity\": 5047\n },\n {\n \"tag\": "untiring",\n \"popularity\": 5043\n },\n {\n \"tag\": "butyral",\n \"popularity\": 5039\n },\n {\n \"tag\": "Gymnoderinae",\n \"popularity\": 5035\n },\n {\n \"tag\": "testudo",\n \"popularity\": 5031\n },\n {\n \"tag\": "frigorify",\n \"popularity\": 5027\n },\n {\n \"tag\": "aliency",\n \"popularity\": 5023\n },\n {\n \"tag\": "jargon",\n \"popularity\": 5019\n },\n {\n \"tag\": "counterservice",\n \"popularity\": 5015\n },\n {\n \"tag\": "isostrychnine",\n \"popularity\": 5011\n },\n {\n \"tag\": "tellership",\n \"popularity\": 5007\n },\n {\n \"tag\": "miscegenetic",\n \"popularity\": 5003\n },\n {\n \"tag\": "sorcer",\n \"popularity\": 4999\n },\n {\n \"tag\": "tilewright",\n \"popularity\": 4995\n },\n {\n \"tag\": "cyanoplastid",\n \"popularity\": 4991\n },\n {\n \"tag\": "fluxionally",\n \"popularity\": 4987\n },\n {\n \"tag\": "proudhearted",\n \"popularity\": 4983\n },\n {\n \"tag\": "blithely",\n \"popularity\": 4979\n },\n {\n \"tag\": "jestproof",\n \"popularity\": 4975\n },\n {\n \"tag\": "jestwise",\n \"popularity\": 4971\n },\n {\n \"tag\": "nonassimilable",\n \"popularity\": 4967\n },\n {\n \"tag\": "compurgation",\n \"popularity\": 4964\n },\n {\n \"tag\": "unhate",\n \"popularity\": 4960\n },\n {\n \"tag\": "haplodonty",\n \"popularity\": 4956\n },\n {\n \"tag\": "cardholder",\n \"popularity\": 4952\n },\n {\n \"tag\": "rainlight megohmmeter overstout",\n \"popularity\": 4948\n },\n {\n \"tag\": "itchless",\n \"popularity\": 4944\n },\n {\n \"tag\": "begiggle",\n \"popularity\": 4940\n },\n {\n \"tag\": "chromatosphere",\n \"popularity\": 4936\n },\n {\n \"tag\": "typicality",\n \"popularity\": 4932\n },\n {\n \"tag\": "overgrown",\n \"popularity\": 4928\n },\n {\n \"tag\": "envolume",\n \"popularity\": 4925\n },\n {\n \"tag\": "pachycholia",\n \"popularity\": 4921\n },\n {\n \"tag\": "passageable",\n \"popularity\": 4917\n },\n {\n \"tag\": "pathopoiesis",\n \"popularity\": 4913\n },\n {\n \"tag\": "overbreak",\n \"popularity\": 4909\n },\n {\n \"tag\": "satyric",\n \"popularity\": 4905\n },\n {\n \"tag\": "unaudited",\n \"popularity\": 4901\n },\n {\n \"tag\": "whimble",\n \"popularity\": 4898\n },\n {\n \"tag\": "pressureless",\n \"popularity\": 4894\n },\n {\n \"tag\": "Selene",\n \"popularity\": 4890\n },\n {\n \"tag\": "slithery",\n \"popularity\": 4886\n },\n {\n \"tag\": "nondisfigurement",\n \"popularity\": 4882\n },\n {\n \"tag\": "overdelicious",\n \"popularity\": 4878\n },\n {\n \"tag\": "Perca",\n \"popularity\": 4875\n },\n {\n \"tag\": "Palladium",\n \"popularity\": 4871\n },\n {\n \"tag\": "insagacity",\n \"popularity\": 4867\n },\n {\n \"tag\": "peristoma",\n \"popularity\": 4863\n },\n {\n \"tag\": "uncreativeness",\n \"popularity\": 4859\n },\n {\n \"tag\": "incomparability surfboarding",\n \"popularity\": 4856\n },\n {\n \"tag\": "bacillar",\n \"popularity\": 4852\n },\n {\n \"tag\": "ulcerative",\n \"popularity\": 4848\n },\n {\n \"tag\": "stychomythia",\n \"popularity\": 4844\n },\n {\n \"tag\": "sesma somatics nonentry",\n \"popularity\": 4840\n },\n {\n \"tag\": "unsepulchred",\n \"popularity\": 4837\n },\n {\n \"tag\": "cephalanthium",\n \"popularity\": 4833\n },\n {\n \"tag\": "Asiaticization",\n \"popularity\": 4829\n },\n {\n \"tag\": "killeen",\n \"popularity\": 4825\n },\n {\n \"tag\": "Pseudococcus",\n \"popularity\": 4822\n },\n {\n \"tag\": "untractable",\n \"popularity\": 4818\n },\n {\n \"tag\": "apolegamic",\n \"popularity\": 4814\n },\n {\n \"tag\": "hyperpnea",\n \"popularity\": 4810\n },\n {\n \"tag\": "martyrolatry",\n \"popularity\": 4807\n },\n {\n \"tag\": "Sarmatic",\n \"popularity\": 4803\n },\n {\n \"tag\": "nonsurface",\n \"popularity\": 4799\n },\n {\n \"tag\": "adjoined",\n \"popularity\": 4796\n },\n {\n \"tag\": "vasiform",\n \"popularity\": 4792\n },\n {\n \"tag\": "tastelessness",\n \"popularity\": 4788\n },\n {\n \"tag\": "rumbo",\n \"popularity\": 4784\n },\n {\n \"tag\": "subdititious",\n \"popularity\": 4781\n },\n {\n \"tag\": "reparticipation",\n \"popularity\": 4777\n },\n {\n \"tag\": "Yorkshireism",\n \"popularity\": 4773\n },\n {\n \"tag\": "outcrow",\n \"popularity\": 4770\n },\n {\n \"tag\": "casserole",\n \"popularity\": 4766\n },\n {\n \"tag\": "semideltaic",\n \"popularity\": 4762\n },\n {\n \"tag\": "freemason",\n \"popularity\": 4759\n },\n {\n \"tag\": "catkin",\n \"popularity\": 4755\n },\n {\n \"tag\": "conscient",\n \"popularity\": 4751\n },\n {\n \"tag\": "reliably",\n \"popularity\": 4748\n },\n {\n \"tag\": "Telembi",\n \"popularity\": 4744\n },\n {\n \"tag\": "hide",\n \"popularity\": 4740\n },\n {\n \"tag\": "social",\n \"popularity\": 4737\n },\n {\n \"tag\": "ichneutic",\n \"popularity\": 4733\n },\n {\n \"tag\": "polypotome blouse pentagrammatic",\n \"popularity\": 4729\n },\n {\n \"tag\": "airdrome pesthole",\n \"popularity\": 4726\n },\n {\n \"tag\": "unportended",\n \"popularity\": 4722\n },\n {\n \"tag\": "sheerly",\n \"popularity\": 4719\n },\n {\n \"tag\": "acardiac",\n \"popularity\": 4715\n },\n {\n \"tag\": "fetor",\n \"popularity\": 4711\n },\n {\n \"tag\": "storax",\n \"popularity\": 4708\n },\n {\n \"tag\": "syndactylic",\n \"popularity\": 4704\n },\n {\n \"tag\": "otiatrics",\n \"popularity\": 4700\n },\n {\n \"tag\": "range",\n \"popularity\": 4697\n },\n {\n \"tag\": "branchway",\n \"popularity\": 4693\n },\n {\n \"tag\": "beatific",\n \"popularity\": 4690\n },\n {\n \"tag\": "Rugosa",\n \"popularity\": 4686\n },\n {\n \"tag\": "rafty",\n \"popularity\": 4682\n },\n {\n \"tag\": "gapy",\n \"popularity\": 4679\n },\n {\n \"tag\": "heterocercal",\n \"popularity\": 4675\n },\n {\n \"tag\": "actinopterygious",\n \"popularity\": 4672\n },\n {\n \"tag\": "glauconite",\n \"popularity\": 4668\n },\n {\n \"tag\": "limbless priest",\n \"popularity\": 4665\n },\n {\n \"tag\": "chrysene",\n \"popularity\": 4661\n },\n {\n \"tag\": "isentropic",\n \"popularity\": 4658\n },\n {\n \"tag\": "lairdess",\n \"popularity\": 4654\n },\n {\n \"tag\": "butterhead choliambic",\n \"popularity\": 4650\n },\n {\n \"tag\": "hexaseme",\n \"popularity\": 4647\n },\n {\n \"tag\": "treeify",\n \"popularity\": 4643\n },\n {\n \"tag\": "coronetted fructify",\n \"popularity\": 4640\n },\n {\n \"tag\": "admiralty",\n \"popularity\": 4636\n },\n {\n \"tag\": "Flosculariidae",\n \"popularity\": 4633\n },\n {\n \"tag\": "limaceous",\n \"popularity\": 4629\n },\n {\n \"tag\": "subterconscious",\n \"popularity\": 4626\n },\n {\n \"tag\": "stayless",\n \"popularity\": 4622\n },\n {\n \"tag\": "psha",\n \"popularity\": 4619\n },\n {\n \"tag\": "Mediterraneanize",\n \"popularity\": 4615\n },\n {\n \"tag\": "impenetrably",\n \"popularity\": 4612\n },\n {\n \"tag\": "Myrmeleonidae",\n \"popularity\": 4608\n },\n {\n \"tag\": "germander",\n \"popularity\": 4605\n },\n {\n \"tag\": "Buri",\n \"popularity\": 4601\n },\n {\n \"tag\": "papyrotamia",\n \"popularity\": 4598\n },\n {\n \"tag\": "Toxylon",\n \"popularity\": 4594\n },\n {\n \"tag\": "batatilla",\n \"popularity\": 4591\n },\n {\n \"tag\": "fabella assumer",\n \"popularity\": 4587\n },\n {\n \"tag\": "macromethod",\n \"popularity\": 4584\n },\n {\n \"tag\": "Blechnum",\n \"popularity\": 4580\n },\n {\n \"tag\": "pantography",\n \"popularity\": 4577\n },\n {\n \"tag\": "seminovel",\n \"popularity\": 4574\n },\n {\n \"tag\": "disembarrassment",\n \"popularity\": 4570\n },\n {\n \"tag\": "bushmaking",\n \"popularity\": 4567\n },\n {\n \"tag\": "neurosis",\n \"popularity\": 4563\n },\n {\n \"tag\": "Animalia",\n \"popularity\": 4560\n },\n {\n \"tag\": "Bernice",\n \"popularity\": 4556\n },\n {\n \"tag\": "wisen",\n \"popularity\": 4553\n },\n {\n \"tag\": "subhymenium",\n \"popularity\": 4549\n },\n {\n \"tag\": "esophagomycosis",\n \"popularity\": 4546\n },\n {\n \"tag\": "wireworks",\n \"popularity\": 4543\n },\n {\n \"tag\": "Sabellidae",\n \"popularity\": 4539\n },\n {\n \"tag\": "fustianish",\n \"popularity\": 4536\n },\n {\n \"tag\": "professively",\n \"popularity\": 4532\n },\n {\n \"tag\": "overcorruptly",\n \"popularity\": 4529\n },\n {\n \"tag\": "overcreep",\n \"popularity\": 4526\n },\n {\n \"tag\": "Castilloa",\n \"popularity\": 4522\n },\n {\n \"tag\": "forelady Georgie",\n \"popularity\": 4519\n },\n {\n \"tag\": "outsider",\n \"popularity\": 4515\n },\n {\n \"tag\": "Enukki",\n \"popularity\": 4512\n },\n {\n \"tag\": "gypsy",\n \"popularity\": 4509\n },\n {\n \"tag\": "Passamaquoddy",\n \"popularity\": 4505\n },\n {\n \"tag\": "reposit",\n \"popularity\": 4502\n },\n {\n \"tag\": "overtenderness",\n \"popularity\": 4499\n },\n {\n \"tag\": "keratome",\n \"popularity\": 4495\n },\n {\n \"tag\": "interclavicular hypermonosyllable Susanna",\n \"popularity\": 4492\n },\n {\n \"tag\": "mispropose",\n \"popularity\": 4489\n },\n {\n \"tag\": "Membranipora",\n \"popularity\": 4485\n },\n {\n \"tag\": "lampad",\n \"popularity\": 4482\n },\n {\n \"tag\": "header",\n \"popularity\": 4479\n },\n {\n \"tag\": "triseriate",\n \"popularity\": 4475\n },\n {\n \"tag\": "distrainment",\n \"popularity\": 4472\n },\n {\n \"tag\": "staphyloplastic",\n \"popularity\": 4469\n },\n {\n \"tag\": "outscour",\n \"popularity\": 4465\n },\n {\n \"tag\": "tallowmaking",\n \"popularity\": 4462\n },\n {\n \"tag\": "plugger",\n \"popularity\": 4459\n },\n {\n \"tag\": "fashionize",\n \"popularity\": 4455\n },\n {\n \"tag\": "puzzle",\n \"popularity\": 4452\n },\n {\n \"tag\": "imbrue",\n \"popularity\": 4449\n },\n {\n \"tag\": "osteoblast",\n \"popularity\": 4445\n },\n {\n \"tag\": "Hydrocores",\n \"popularity\": 4442\n },\n {\n \"tag\": "Lutra",\n \"popularity\": 4439\n },\n {\n \"tag\": "upridge scarfy",\n \"popularity\": 4435\n },\n {\n \"tag\": "ancon taffle",\n \"popularity\": 4432\n },\n {\n \"tag\": "impest",\n \"popularity\": 4429\n },\n {\n \"tag\": "uncollatedness",\n \"popularity\": 4426\n },\n {\n \"tag\": "hypersensitize",\n \"popularity\": 4422\n },\n {\n \"tag\": "autographically",\n \"popularity\": 4419\n },\n {\n \"tag\": "louther",\n \"popularity\": 4416\n },\n {\n \"tag\": "Ollie",\n \"popularity\": 4413\n },\n {\n \"tag\": "recompensate",\n \"popularity\": 4409\n },\n {\n \"tag\": "Shan",\n \"popularity\": 4406\n },\n {\n \"tag\": "brachycnemic",\n \"popularity\": 4403\n },\n {\n \"tag\": "Carinatae",\n \"popularity\": 4399\n },\n {\n \"tag\": "geotherm",\n \"popularity\": 4396\n },\n {\n \"tag\": "sawback",\n \"popularity\": 4393\n },\n {\n \"tag\": "Novatianist",\n \"popularity\": 4390\n },\n {\n \"tag\": "reapproach",\n \"popularity\": 4387\n },\n {\n \"tag\": "myelopoietic",\n \"popularity\": 4383\n },\n {\n \"tag\": "cyanin",\n \"popularity\": 4380\n },\n {\n \"tag\": "unsmutted",\n \"popularity\": 4377\n },\n {\n \"tag\": "nonpapist",\n \"popularity\": 4374\n },\n {\n \"tag\": "transbaikalian",\n \"popularity\": 4370\n },\n {\n \"tag\": "connately",\n \"popularity\": 4367\n },\n {\n \"tag\": "tenderize iterance",\n \"popularity\": 4364\n },\n {\n \"tag\": "hydrostatical",\n \"popularity\": 4361\n },\n {\n \"tag\": "unflag",\n \"popularity\": 4358\n },\n {\n \"tag\": "translate",\n \"popularity\": 4354\n },\n {\n \"tag\": "Scorzonera",\n \"popularity\": 4351\n },\n {\n \"tag\": "uncomforted",\n \"popularity\": 4348\n },\n {\n \"tag\": "risser varied",\n \"popularity\": 4345\n },\n {\n \"tag\": "plumbate",\n \"popularity\": 4342\n },\n {\n \"tag\": "Usneaceae",\n \"popularity\": 4338\n },\n {\n \"tag\": "fohat",\n \"popularity\": 4335\n },\n {\n \"tag\": "slagging",\n \"popularity\": 4332\n },\n {\n \"tag\": "superserious",\n \"popularity\": 4329\n },\n {\n \"tag\": "theocracy",\n \"popularity\": 4326\n },\n {\n \"tag\": "valonia",\n \"popularity\": 4323\n },\n {\n \"tag\": "Sapindales",\n \"popularity\": 4319\n },\n {\n \"tag\": "palaeozoologist",\n \"popularity\": 4316\n },\n {\n \"tag\": "yalb",\n \"popularity\": 4313\n },\n {\n \"tag\": "unviewed",\n \"popularity\": 4310\n },\n {\n \"tag\": "polyarteritis",\n \"popularity\": 4307\n },\n {\n \"tag\": "vectorial",\n \"popularity\": 4304\n },\n {\n \"tag\": "skimpingly",\n \"popularity\": 4301\n },\n {\n \"tag\": "athort",\n \"popularity\": 4297\n },\n {\n \"tag\": "tribofluorescence",\n \"popularity\": 4294\n },\n {\n \"tag\": "benzonitrol",\n \"popularity\": 4291\n },\n {\n \"tag\": "swiller subobtuse subjacency",\n \"popularity\": 4288\n },\n {\n \"tag\": "uncompassed",\n \"popularity\": 4285\n },\n {\n \"tag\": "cacochymia",\n \"popularity\": 4282\n },\n {\n \"tag\": "commensalist butadiene",\n \"popularity\": 4279\n },\n {\n \"tag\": "culpable",\n \"popularity\": 4276\n },\n {\n \"tag\": "contributive",\n \"popularity\": 4273\n },\n {\n \"tag\": "attemperately",\n \"popularity\": 4269\n },\n {\n \"tag\": "spelt",\n \"popularity\": 4266\n },\n {\n \"tag\": "exoneration",\n \"popularity\": 4263\n },\n {\n \"tag\": "antivivisectionist",\n \"popularity\": 4260\n },\n {\n \"tag\": "granitification",\n \"popularity\": 4257\n },\n {\n \"tag\": "palladize",\n \"popularity\": 4254\n },\n {\n \"tag\": "marksmanship",\n \"popularity\": 4251\n },\n {\n \"tag\": "bullydom",\n \"popularity\": 4248\n },\n {\n \"tag\": "spirality",\n \"popularity\": 4245\n },\n {\n \"tag\": "caliginous",\n \"popularity\": 4242\n },\n {\n \"tag\": "reportedly",\n \"popularity\": 4239\n },\n {\n \"tag\": "polyad",\n \"popularity\": 4236\n },\n {\n \"tag\": "arthroempyesis",\n \"popularity\": 4233\n },\n {\n \"tag\": "semibay facultatively",\n \"popularity\": 4229\n },\n {\n \"tag\": "metastatically",\n \"popularity\": 4226\n },\n {\n \"tag\": "prophetically",\n \"popularity\": 4223\n },\n {\n \"tag\": "Linguatula elapid",\n \"popularity\": 4220\n },\n {\n \"tag\": "pyknatom",\n \"popularity\": 4217\n },\n {\n \"tag\": "centimeter",\n \"popularity\": 4214\n },\n {\n \"tag\": "mensurate",\n \"popularity\": 4211\n },\n {\n \"tag\": "migraine",\n \"popularity\": 4208\n },\n {\n \"tag\": "pentagamist",\n \"popularity\": 4205\n },\n {\n \"tag\": "querken",\n \"popularity\": 4202\n },\n {\n \"tag\": "ambulance",\n \"popularity\": 4199\n },\n {\n \"tag\": "Stokavian",\n \"popularity\": 4196\n },\n {\n \"tag\": "malvasian",\n \"popularity\": 4193\n },\n {\n \"tag\": "uncouthsome",\n \"popularity\": 4190\n },\n {\n \"tag\": "readable",\n \"popularity\": 4187\n },\n {\n \"tag\": "enlodge",\n \"popularity\": 4184\n },\n {\n \"tag\": "plasterwise Appendiculariidae perspectograph",\n \"popularity\": 4181\n },\n {\n \"tag\": "inkweed",\n \"popularity\": 4178\n },\n {\n \"tag\": "streep",\n \"popularity\": 4175\n },\n {\n \"tag\": "diadelphian cultured",\n \"popularity\": 4172\n },\n {\n \"tag\": "hymenopterous",\n \"popularity\": 4169\n },\n {\n \"tag\": "unexorableness",\n \"popularity\": 4166\n },\n {\n \"tag\": "cascaron",\n \"popularity\": 4163\n },\n {\n \"tag\": "undaintiness",\n \"popularity\": 4160\n },\n {\n \"tag\": "Curtana",\n \"popularity\": 4157\n },\n {\n \"tag\": "scurvied",\n \"popularity\": 4154\n },\n {\n \"tag\": "molluscoidal",\n \"popularity\": 4151\n },\n {\n \"tag\": "yurt",\n \"popularity\": 4148\n },\n {\n \"tag\": "deciduitis",\n \"popularity\": 4145\n },\n {\n \"tag\": "creephole",\n \"popularity\": 4142\n },\n {\n \"tag\": "quatrefeuille",\n \"popularity\": 4139\n },\n {\n \"tag\": "bicapitate adenomatome",\n \"popularity\": 4136\n },\n {\n \"tag\": "damassin",\n \"popularity\": 4134\n },\n {\n \"tag\": "planching",\n \"popularity\": 4131\n },\n {\n \"tag\": "dashedly inferential",\n \"popularity\": 4128\n },\n {\n \"tag\": "lobe",\n \"popularity\": 4125\n },\n {\n \"tag\": "Hyrachyus",\n \"popularity\": 4122\n },\n {\n \"tag\": "knab",\n \"popularity\": 4119\n },\n {\n \"tag\": "discohexaster",\n \"popularity\": 4116\n },\n {\n \"tag\": "malign",\n \"popularity\": 4113\n },\n {\n \"tag\": "pedagoguism",\n \"popularity\": 4110\n },\n {\n \"tag\": "shrubbery",\n \"popularity\": 4107\n },\n {\n \"tag\": "undershrub",\n \"popularity\": 4104\n },\n {\n \"tag\": "bureaucrat",\n \"popularity\": 4101\n },\n {\n \"tag\": "pantaleon",\n \"popularity\": 4098\n },\n {\n \"tag\": "mesoventral",\n \"popularity\": 4096\n }]';
+
+var log2 = Math.log(2);
+var tagInfo = tagInfoJSON.parseJSON(function(a, b) { if (a == "popularity") { return Math.log(b) / log2; } else {return b; } });
+
+function makeTagCloud(tagInfo)
+{
+ var output = '<div class="tagCloud" style="width: 100%">';
+
+ tagInfo.sort(function(a, b) { if (a.tag < b.tag) { return -1; } else if (a.tag == b.tag) { return 0; } else return 1; });
+
+ for (var i = 0; i < tagInfo.length; i++) {
+ var tag = tagInfo[i].tag;
+
+ var validates = true;
+ for (var j = 0; j < tag.length; j++) {
+ var ch = tag.charCodeAt(j);
+ if (ch < 0x20 || ch >= 0x7f) {
+ validates = false;
+ break;
+ }
+ }
+
+ if (!validates)
+ continue;
+
+ var url = "http://example.com/tag/" + tag.replace(" ", "").toLowerCase();
+ var popularity = tagInfo[i].popularity;
+ var color = 'rgb(' + Math.floor(255 * (popularity - 12) / 20) + ', 0, 255)';
+ output += ' <a href="' + url + '" style="font-size: ' + popularity + 'px; color: ' + color + '">' + tag + '</a> \n';
+ }
+
+ output += '</div>';
+ output.replace(" ", "&nbsp;");
+
+ return output;
+}
+
+var tagcloud = makeTagCloud(tagInfo);
+tagInfo = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-unpack-code.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-unpack-code.js
new file mode 100644
index 000000000..e6330f15f
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-unpack-code.js
@@ -0,0 +1,68 @@
+// This test case unpacks the compressed code for the MochiKit,
+// jQuery, Dojo and Prototype JavaScript libraries.
+
+/***
+ MochiKit.MochiKit 1.3.1 : PACKED VERSION
+ THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please
+ diff against the source tree, not this file.
+
+ See <http://mochikit.com/> for documentation, downloads, license, etc.
+
+ (c) 2005 Bob Ippolito. All rights Reserved.
+***/
+
+for (var i = 0; i < 2; i++) {
+
+var decompressedMochiKit = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('if(H(1q)!="L"){1q.2X("B.J")}if(H(B)=="L"){B={}}if(H(B.J)=="L"){B.J={}}B.J.1Y="1.3.1";B.J.1r="B.J";B.J.2l=G(7V,vR){if(7V===O){7V={}}R(u i=1;i<M.K;i++){u o=M[i];if(H(o)!="L"&&o!==O){R(u k in o){7V[k]=o[k]}}}F 7V};B.J.2l(B.J,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},4f:G(n){if(M.K===0){n=1}F G(){F n++}},4L:G(mw){u me=M.2U;if(M.K==1){me.1U=mw;F Y me()}},bg:G(vQ){u X=[];u m=B.J;u aw=m.1R(O,M);1M(aw.K){u o=aw.2P();if(o&&H(o)=="3n"&&H(o.K)=="2y"){R(u i=o.K-1;i>=0;i--){aw.e9(o[i])}}N{X.1c(o)}}F X},1R:G(7U,1i,av){if(!av){av=0}if(1i){u l=1i.K;if(H(l)!="2y"){if(H(B.15)!="L"){1i=B.15.2G(1i);l=1i.K}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(!7U){7U=[]}R(u i=av;i<l;i++){7U.1c(1i[i])}}F 7U},8Z:G(5g,1i){if(5g===O){5g={}}R(u i=1;i<M.K;i++){u o=M[i];if(H(o)!="L"&&o!==O){R(u k in o){u v=o[k];if(H(5g[k])=="3n"&&H(v)=="3n"){M.2U(5g[k],v)}N{5g[k]=v}}}}F 5g},lO:G(6c,1i){if(6c===O){6c={}}R(u i=1;i<M.K;i++){u o=M[i];R(u k in o){if(!(k in 6c)){6c[k]=o[k]}}}F 6c},lN:G(1i){u fj=[];R(u mv in 1i){fj.1c(mv)}F fj},lM:G(1i){u fh=[];u e;R(u fi in 1i){u v;1f{v=1i[fi]}1e(e){2V}fh.1c([fi,v])}F fh},jq:G(fg,ff,fe){fe.1U=Y B.J.5a(fg.1r+"."+ff);fg[ff]=fe},4i:{7L:G(a){F!!a},vP:G(a){F!a},eE:G(a){F a},2E:G(a){F~a},vO:G(a){F-a},vN:G(a,b){F a+b},vM:G(a,b){F a-b},4u:G(a,b){F a/b},vL:G(a,b){F a%b},vK:G(a,b){F a*b},3W:G(a,b){F a&b},or:G(a,b){F a|b},vJ:G(a,b){F a^b},vI:G(a,b){F a<<b},vH:G(a,b){F a>>b},vG:G(a,b){F a>>>b},eq:G(a,b){F a==b},ne:G(a,b){F a!=b},gt:G(a,b){F a>b},ge:G(a,b){F a>=b},lt:G(a,b){F a<b},le:G(a,b){F a<=b},vF:G(a,b){F B.J.2f(a,b)===0},vE:G(a,b){F B.J.2f(a,b)!==0},vD:G(a,b){F B.J.2f(a,b)==1},vC:G(a,b){F B.J.2f(a,b)!=-1},vB:G(a,b){F B.J.2f(a,b)==-1},vA:G(a,b){F B.J.2f(a,b)!=1},vz:G(a,b){F a&&b},vy:G(a,b){F a||b},vx:G(a,b){F b in a}},24:G(mu){F G(){F D[mu].1w(D,M)}},lL:G(mt){F G(a9){F a9[mt]}},66:G(){u fd={};R(u i=0;i<M.K;i++){u 6b=M[i];fd[6b]=6b}F G(){R(u i=0;i<M.K;i++){if(!(H(M[i])in fd)){F 1m}}F 1h}},lJ:G(){R(u i=0;i<M.K;i++){if(M[i]!==O){F 1m}}F 1h},lK:G(){R(u i=0;i<M.K;i++){u o=M[i];if(!(H(o)=="L"||o===O)){F 1m}}F 1h},lI:G(1i){F!B.J.7e.1w(D,M)},7e:G(1i){R(u i=0;i<M.K;i++){u o=M[i];if(!(o&&o.K)){F 1m}}F 1h},3A:G(){R(u i=0;i<M.K;i++){u o=M[i];u 6b=H(o);if((6b!="3n"&&!(6b=="G"&&H(o.vw)=="G"))||o===O||H(o.K)!="2y"){F 1m}}F 1h},eN:G(){R(u i=0;i<M.K;i++){u o=M[i];if(H(o)!="3n"||o===O||H(o.9P)!="G"){F 1m}}F 1h},lH:G(fn){if(fn===O){F B.J.1R(O,M,1)}u fc=[];R(u i=1;i<M.K;i++){fc.1c(fn(M[i]))}F fc},2r:G(fn,1g){u m=B.J;u 6a=B.15;u fb=m.3A;if(M.K<=2){if(!fb(1g)){if(6a){1g=6a.2G(1g);if(fn===O){F 1g}}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(fn===O){F m.1R(O,1g)}u 69=[];R(u i=0;i<1g.K;i++){69.1c(fn(1g[i]))}F 69}N{if(fn===O){fn=7o}u 7T=O;R(i=1;i<M.K;i++){if(!fb(M[i])){if(6a){F 6a.2G(6a.4c.1w(O,M))}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}u l=M[i].K;if(7T===O||7T>l){7T=l}}69=[];R(i=0;i<7T;i++){u fa=[];R(u j=1;j<M.K;j++){fa.1c(M[j][i])}69.1c(fn.1w(D,fa))}F 69}},lG:G(fn){u f9=[];if(fn===O){fn=B.J.4i.7L}R(u i=1;i<M.K;i++){u o=M[i];if(fn(o)){f9.1c(o)}}F f9},47:G(fn,1g,7S){u aq=[];u m=B.J;if(!m.3A(1g)){if(B.15){1g=B.15.2G(1g)}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(fn===O){fn=m.4i.7L}if(H(7o.1U.47)=="G"){F 7o.1U.47.cz(1g,fn,7S)}N{if(H(7S)=="L"||7S===O){R(u i=0;i<1g.K;i++){u o=1g[i];if(fn(o)){aq.1c(o)}}}N{R(i=0;i<1g.K;i++){o=1g[i];if(fn.cz(7S,o)){aq.1c(o)}}}}F aq},mq:G(7R){F G(){hd(M.K){3j 0:F 7R();3j 1:F 7R(M[0]);3j 2:F 7R(M[0],M[1]);3j 3:F 7R(M[0],M[1],M[2])}u f8=[];R(u i=0;i<M.K;i++){f8.1c("M["+i+"]")}F dB("(1A("+f8.2b(",")+"))")}},lv:G(mr,ms){u m=B.J;F m.1O.1w(D,m.1R([ms,mr],M,2))},1O:G(3c,4o){if(H(3c)=="1n"){3c=4o[3c]}u ao=3c.f5;u 5f=3c.am;u f6=3c.f7;u m=B.J;if(H(3c)=="G"&&H(3c.1w)=="L"){3c=m.mq(3c)}if(H(ao)!="G"){ao=3c}if(H(4o)!="L"){f6=4o}if(H(5f)=="L"){5f=[]}N{5f=5f.9T()}m.1R(5f,M,2);u 7Q=G(){u ap=M;u me=M.2U;if(me.am.K>0){ap=m.2o(me.am,ap)}u 4o=me.f7;if(!4o){4o=D}F me.f5.1w(4o,ap)};7Q.f7=f6;7Q.f5=ao;7Q.am=5f;F 7Q},lF:G(7P){u mp=B.J.1O;R(u k in 7P){u f4=7P[k];if(H(f4)=="G"){7P[k]=mp(f4,7P)}}},5u:G(mo,mn,ml,mk){B.J.ae.5M(mo,mn,ml,mk)},mj:{"5L":1h,"1n":1h,"2y":1h},2f:G(a,b){if(a==b){F 0}u f3=(H(a)=="L"||a===O);u f2=(H(b)=="L"||b===O);if(f3&&f2){F 0}N{if(f3){F-1}N{if(f2){F 1}}}u m=B.J;u f1=m.mj;if(!(H(a)in f1&&H(b)in f1)){1f{F m.ae.3C(a,b)}1e(e){if(e!=m.4d){14 e}}}if(a<b){F-1}N{if(a>b){F 1}}u f0=m.U;14 Y 3p(f0(a)+" 3W "+f0(b)+" 9v 2E be vv")},eM:G(a,b){F B.J.2f(a.9P(),b.9P())},eL:G(a,b){u mi=B.J.2f;u 7O=a.K;u al=0;if(7O>b.K){al=1;7O=b.K}N{if(7O<b.K){al=-1}}R(u i=0;i<7O;i++){u 4j=mi(a[i],b[i]);if(4j){F 4j}}F al},7M:G(mh,mg,mf,md){B.J.ad.5M(mh,mg,mf,md)},U:G(o){if(H(o)=="L"){F"L"}N{if(o===O){F"O"}}1f{if(H(o.1K)=="G"){F o.1K()}N{if(H(o.U)=="G"&&o.U!=M.2U){F o.U()}}F B.J.ad.3C(o)}1e(e){if(H(o.1r)=="1n"&&(o.1l==cZ.1U.1l||o.1l==vu.1U.1l)){F o.1r}}1f{u eZ=(o+"")}1e(e){F"["+H(o)+"]"}if(H(o)=="G"){o=eZ.23(/^\\s+/,"");u 5n=o.2A("{");if(5n!=-1){o=o.3H(0,5n)+"{...}"}}F eZ},eK:G(o){u m=B.J;F"["+m.2r(m.U,o).2b(", ")+"]"},ac:G(o){F("\\""+o.23(/(["\\\\])/g,"\\\\$1")+"\\"").23(/[\\f]/g,"\\\\f").23(/[\\b]/g,"\\\\b").23(/[\\n]/g,"\\\\n").23(/[\\t]/g,"\\\\t").23(/[\\r]/g,"\\\\r")},eJ:G(o){F o+""},ly:G(mc,mb,ma,m9){B.J.ab.5M(mc,mb,ma,m9)},lx:G(){F dB("("+M[0]+")")},lz:G(o){u 5e=H(o);if(5e=="L"){F"L"}N{if(5e=="2y"||5e=="5L"){F o+""}N{if(o===O){F"O"}}}u m=B.J;u eY=m.ac;if(5e=="1n"){F eY(o)}u me=M.2U;u 3S;if(H(o.m8)=="G"){3S=o.m8();if(o!==3S){F me(3S)}}if(H(o.m7)=="G"){3S=o.m7();if(o!==3S){F me(3S)}}if(5e!="G"&&H(o.K)=="2y"){u X=[];R(u i=0;i<o.K;i++){u 2i=me(o[i]);if(H(2i)!="1n"){2i="L"}X.1c(2i)}F"["+X.2b(", ")+"]"}1f{3S=m.ab.3C(o);F me(3S)}1e(e){if(e!=m.4d){14 e}}if(5e=="G"){F O}X=[];R(u k in o){u ak;if(H(k)=="2y"){ak="\\""+k+"\\""}N{if(H(k)=="1n"){ak=eY(k)}N{2V}}2i=me(o[k]);if(H(2i)!="1n"){2V}X.1c(ak+":"+2i)}F"{"+X.2b(", ")+"}"},lE:G(a,b){F(B.J.2f(a,b)===0)},lD:G(eX,4n){if(eX.K!=4n.K){F 1m}F(B.J.2f(eX,4n)===0)},2o:G(){u eW=[];u m6=B.J.1R;R(u i=0;i<M.K;i++){m6(eW,M[i])}F eW},eR:G(2h){u m=B.J;u eU=m.2f;if(M.K==1){F G(a,b){F eU(a[2h],b[2h])}}u eV=m.1R(O,M);F G(a,b){u aj=0;R(u i=0;(aj===0)&&(i<eV.K);i++){u 2h=eV[i];aj=eU(a[2h],b[2h])}F aj}},lC:G(2h){u m5=B.J.eR.1w(D,M);F G(a,b){F m5(b,a)}},2z:G(m4){u m=B.J;F m.1O.1w(D,m.1R([m4,L],M,1))},67:G(m0,1g){if(1g.K===0){F O}u ai=1g[0];u m3=B.J.2f;R(u i=1;i<1g.K;i++){u o=1g[i];if(m3(o,ai)==m0){ai=o}}F ai},lB:G(){F B.J.67(1,M)},lA:G(){F B.J.67(-1,M)},bi:G(1g,lY,lZ,3B){if(H(3B)=="L"||3B===O){3B=1g.K}R(u i=(lZ||0);i<3B;i++){if(1g[i]===lY){F i}}F-1},eO:G(1g,lW,lX,3B){if(H(3B)=="L"||3B===O){3B=1g.K}u 4j=B.J.2f;R(u i=(lX||0);i<3B;i++){if(4j(1g[i],lW)===0){F i}}F-1},d4:G(1j,lV){u ah=[1j];u lU=B.J.1R;1M(ah.K){u X=lV(ah.2P());if(X){lU(ah,X)}}},3f:G(ag){u 2w=ag.1r;if(H(2w)=="L"){2w=""}N{2w=2w+"."}R(u 1b in ag){u o=ag[1b];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+1b}1e(e){}}}},dw:G(3s,68){if(H(B.S)!="L"&&M.K==1&&(H(3s)=="1n"||(H(3s.3T)!="L"&&3s.3T>0))){u kv=B.S.d5(3s);3s=kv[0];68=kv[1]}N{if(M.K==1){u o=3s;3s=[];68=[];R(u k in o){u v=o[k];if(H(v)!="G"){3s.1c(k);68.1c(v)}}}}u W=[];u lT=28.2a(3s.K,68.K);u eT=B.J.af;R(u i=0;i<lT;i++){v=68[i];if(H(v)!="L"&&v!==O){W.1c(eT(3s[i])+"="+eT(v))}}F W.2b("&")},lw:G(lS,lQ){u 7N=lS.23(/\\+/g,"%20").2R("&");u o={};u 5d;if(H(lR)!="L"){5d=lR}N{5d=vt}if(lQ){R(u i=0;i<7N.K;i++){u 2n=7N[i].2R("=");u 1b=5d(2n[0]);u 4n=o[1b];if(!(4n 2C 7o)){4n=[];o[1b]=4n}4n.1c(5d(2n[1]))}}N{R(i=0;i<7N.K;i++){2n=7N[i].2R("=");o[5d(2n[0])]=5d(2n[1])}}F o}});B.J.4a=G(){D.4m=[]};B.J.4a.1U={5M:G(1b,eS,3y,lP){if(lP){D.4m.e9([1b,eS,3y])}N{D.4m.1c([1b,eS,3y])}},3C:G(){R(u i=0;i<D.4m.K;i++){u 2n=D.4m[i];if(2n[1].1w(D,M)){F 2n[2].1w(D,M)}}14 B.J.4d},vs:G(1b){R(u i=0;i<D.4m.K;i++){u 2n=D.4m[i];if(2n[0]==1b){D.4m.4y(i,1);F 1h}}F 1m}};B.J.1z=["4f","4L","1R","2l","8Z","lO","lN","lM","5a","4i","24","lL","66","lo","ln","lK","lJ","lI","7e","3A","eN","lH","2r","lG","47","1O","lF","4d","4a","5u","2f","7M","U","lE","lD","2o","eR","lC","2z","lm","67","lp","eI","lB","lA","d4","ll","af","dw","lz","ly","lx","lw","eO","bi","bg","lv"];B.J.1W=["3f","ae","ad","ab","eM","eL","eK","ac","eJ"];B.J.2Y=G(lu,eP){if(H(B.eQ)=="L"){B.eQ=(B.3d||(H(1x)=="L"&&H(1q)=="L"))}if(!B.eQ){F}u 1p=eP.2k[":1p"];R(u i=0;i<1p.K;i++){lu[1p[i]]=eP[1p[i]]}};B.J.2d=G(){u m=D;m.vr=m.24;m.vq=m.eO;if(H(ls)!="L"){m.af=G(lr){F ls(lr).23(/\\\'/g,"%27")}}N{m.af=G(lq){F vp(lq).23(/\\+/g,"%2B").23(/\\"/g,"%22").W.23(/\\\'/g,"%27")}}m.5a=G(1b){D.43=1b;D.1b=1b};m.5a.1U=Y 2x();m.2l(m.5a.1U,{U:G(){if(D.43&&D.43!=D.1b){F D.1b+"("+m.U(D.43)+")"}N{F D.1b+"()"}},1l:m.24("U")});m.4d=Y m.5a("B.J.4d");m.lp=m.2z(m.67,1);m.eI=m.2z(m.67,-1);m.lo=m.66("G");m.ln=m.66("L");m.lm=m.2z(m.2l,O);m.ll=m.2z(m.2r,O);m.ae=Y m.4a();m.5u("vo",m.eN,m.eM);m.5u("ej",m.3A,m.eL);m.ad=Y m.4a();m.7M("ej",m.3A,m.eK);m.7M("1n",m.66("1n"),m.ac);m.7M("vn",m.66("2y","5L"),m.eJ);m.ab=Y m.4a();u 1p=m.2o(m.1z,m.1W);m.2k={":3e":m.2o(m.1W),":1p":1p};m.3f(D)};B.J.2d();if(!B.3d){2f=B.J.2f}B.J.2Y(D,B.J);if(H(1q)!="L"){1q.2X("B.15");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.15 3F on B.J!"}if(H(B.15)=="L"){B.15={}}B.15.1r="B.15";B.15.1Y="1.3.1";B.J.2l(B.15,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},9W:G(1b,lk,lj,lh){B.15.9Y.5M(1b,lk,lj,lh)},1Q:G(3R,lg){u I=B.15;if(M.K==2){F I.9Z(G(a){F a!=lg},3R)}if(H(3R.1a)=="G"){F 3R}N{if(H(3R.1Q)=="G"){F 3R.1Q()}}1f{F I.9Y.3C(3R)}1e(e){u m=B.J;if(e==m.4d){e=Y 3p(H(3R)+": "+m.U(3R)+" is 2E vm")}14 e}},eu:G(n){if(!n){n=0}u m=B.J;F{U:G(){F"eu("+n+")"},1l:m.24("U"),1a:m.4f(n)}},et:G(p){u I=B.15;u m=B.J;u 1g=[];u lf=I.1Q(p);F{U:G(){F"et(...)"},1l:m.24("U"),1a:G(){1f{u W=lf.1a();1g.1c(W);F W}1e(e){if(e!=I.25){14 e}if(1g.K===0){D.1a=G(){14 I.25}}N{u i=-1;D.1a=G(){i=(i+1)%1g.K;F 1g[i]}}F D.1a()}}}},7b:G(Q,n){u m=B.J;if(H(n)=="L"){F{U:G(){F"7b("+m.U(Q)+")"},1l:m.24("U"),1a:G(){F Q}}}F{U:G(){F"7b("+m.U(Q)+", "+n+")"},1l:m.24("U"),1a:G(){if(n<=0){14 B.15.25}n-=1;F Q}}},1a:G(ld){F ld.1a()},es:G(p,q){u m=B.J;u 1a=B.15.1a;u lc=m.2r(1Q,M);F{U:G(){F"es(...)"},1l:m.24("U"),1a:G(){F m.2r(1a,lc)}}},a1:G(3b,1V){u m=B.J;1V=B.15.1Q(1V);if(3b===O){3b=m.4i.7L}F{U:G(){F"a1(...)"},1l:m.24("U"),1a:G(){1M(1h){u W=1V.1a();if(3b(W)){F W}}F L}}},a0:G(3b,1V){u m=B.J;1V=B.15.1Q(1V);if(3b===O){3b=m.4i.7L}F{U:G(){F"a0(...)"},1l:m.24("U"),1a:G(){1M(1h){u W=1V.1a();if(!3b(W)){F W}}F L}}},er:G(1V){u I=B.15;u m=B.J;1V=I.1Q(1V);u 5c=0;u 2J=0;u 3a=1;u i=-1;if(M.K==2){2J=M[1]}N{if(M.K==3){5c=M[1];2J=M[2]}N{5c=M[1];2J=M[2];3a=M[3]}}F{U:G(){F"er("+["...",5c,2J,3a].2b(", ")+")"},1l:m.24("U"),1a:G(){u W;1M(i<5c){W=1V.1a();i++}if(5c>=2J){14 I.25}5c+=3a;F W}}},4c:G(aa,p,q){u m=B.J;u I=B.15;u lb=m.2r(I.1Q,m.1R(O,M,1));u 2r=m.2r;u 1a=I.1a;F{U:G(){F"4c(...)"},1l:m.24("U"),1a:G(){F aa.1w(D,2r(1a,lb))}}},ep:G(aa,1V,I){1V=B.15.1Q(1V);u m=B.J;F{U:G(){F"ep(...)"},1l:m.24("U"),1a:G(){F aa.1w(I,1V.1a())}}},55:G(p,q){u I=B.15;u m=B.J;if(M.K==1){F I.1Q(M[0])}u 64=m.2r(I.1Q,M);F{U:G(){F"55(...)"},1l:m.24("U"),1a:G(){1M(64.K>1){1f{F 64[0].1a()}1e(e){if(e!=I.25){14 e}64.2P()}}if(64.K==1){u a9=64.2P();D.1a=m.1O("1a",a9);F D.1a()}14 I.25}}},9Z:G(3b,1V){u I=B.15;1V=I.1Q(1V);F{U:G(){F"9Z(...)"},1l:B.J.24("U"),1a:G(){u W=1V.1a();if(!3b(W)){D.1a=G(){14 I.25};D.1a()}F W}}},eo:G(3b,1V){1V=B.15.1Q(1V);u m=B.J;u 1O=m.1O;F{"U":G(){F"eo(...)"},"1l":m.24("U"),"1a":G(){1M(1h){u W=1V.1a();if(!3b(W)){2K}}D.1a=1O("1a",1V);F W}}},a7:G(63,2u,la){2u.62[63]=-1;u m=B.J;u l9=m.eI;F{U:G(){F"en("+63+", ...)"},1l:m.24("U"),1a:G(){u W;u i=2u.62[63];if(i==2u.29){W=la.1a();2u.a8.1c(W);2u.29+=1;2u.62[63]+=1}N{W=2u.a8[i-2u.2a];2u.62[63]+=1;if(i==2u.2a&&l9(2u.62)!=2u.2a){2u.2a+=1;2u.a8.2P()}}F W}}},en:G(a6,n){u W=[];u 2u={"62":[],"a8":[],"29":-1,"2a":-1};if(M.K==1){n=2}u I=B.15;a6=I.1Q(a6);u a7=I.a7;R(u i=0;i<n;i++){W.1c(a7(i,2u,a6))}F W},2G:G(4l){u m=B.J;if(H(4l.9T)=="G"){F 4l.9T()}N{if(m.3A(4l)){F m.2o(4l)}}u I=B.15;4l=I.1Q(4l);u W=[];1f{1M(1h){W.1c(4l.1a())}}1e(e){if(e!=I.25){14 e}F W}F L},7H:G(fn,7K,l8){u i=0;u x=l8;u I=B.15;7K=I.1Q(7K);if(M.K<3){1f{x=7K.1a()}1e(e){if(e==I.25){e=Y 3p("7H() of vl vk vj no vi 3m")}14 e}i++}1f{1M(1h){x=fn(x,7K.1a())}}1e(e){if(e!=I.25){14 e}}F x},7I:G(){u 4k=0;u 2J=0;u 3a=1;if(M.K==1){2J=M[0]}N{if(M.K==2){4k=M[0];2J=M[1]}N{if(M.K==3){4k=M[0];2J=M[1];3a=M[2]}N{14 Y 3p("7I() vh 1, 2, or 3 M!")}}}if(3a===0){14 Y 3p("7I() 3a 5p 2E be 0")}F{1a:G(){if((3a>0&&4k>=2J)||(3a<0&&4k<=2J)){14 B.15.25}u W=4k;4k+=3a;F W},U:G(){F"7I("+[4k,2J,3a].2b(", ")+")"},1l:B.J.24("U")}},l0:G(a5,l7){u x=l7||0;u I=B.15;a5=I.1Q(a5);1f{1M(1h){x+=a5.1a()}}1e(e){if(e!=I.25){14 e}}F x},em:G(a4){u I=B.15;a4=I.1Q(a4);1f{1M(1h){a4.1a()}}1e(e){if(e!=I.25){14 e}}},9a:G(7J,1A,I){u m=B.J;if(M.K>2){1A=m.1O(1A,I)}if(m.3A(7J)){1f{R(u i=0;i<7J.K;i++){1A(7J[i])}}1e(e){if(e!=B.15.25){14 e}}}N{I=B.15;I.em(I.4c(1A,7J))}},kZ:G(l6,1A){u I=B.15;1f{I.a0(1A,l6).1a();F 1m}1e(e){if(e!=I.25){14 e}F 1h}},kY:G(l5,4j){u W=B.15.2G(l5);if(M.K==1){4j=B.J.2f}W.iz(4j);F W},kX:G(l4){u W=B.15.2G(l4);W.vg();F W},kW:G(l3,1A){u I=B.15;1f{I.a1(1A,l3).1a();F 1h}1e(e){if(e!=I.25){14 e}F 1m}},kV:G(1g,5b){if(B.J.3A(5b)){R(u i=0;i<5b.K;i++){1g.1c(5b[i])}}N{u I=B.15;5b=I.1Q(5b);1f{1M(1h){1g.1c(5b.1a())}}1e(e){if(e!=I.25){14 e}}}F 1g},ek:G(a3,eH){u m=B.J;u I=B.15;if(M.K<2){eH=m.4i.eE}a3=I.1Q(a3);u pk=L;u k=L;u v;G eF(){v=a3.1a();k=eH(v)}G l2(){u 7j=v;v=L;F 7j}u eG=1h;F{U:G(){F"ek(...)"},1a:G(){1M(k==pk){eF();if(eG){eG=1m;2K}}pk=k;F[k,{1a:G(){if(v==L){eF()}if(k!=pk){14 I.25}F l2()}}]}}},kU:G(a2,eD){u m=B.J;u I=B.15;if(M.K<2){eD=m.4i.eE}a2=I.1Q(a2);u ey=[];u eA=1h;u ez;1M(1h){1f{u eB=a2.1a();u 2h=eD(eB)}1e(e){if(e==I.25){2K}14 e}if(eA||2h!=ez){u eC=[];ey.1c([2h,eC])}eC.1c(eB);eA=1m;ez=2h}F ey},9X:G(ex){u i=0;F{U:G(){F"9X(...)"},1l:B.J.24("U"),1a:G(){if(i>=ex.K){14 B.15.25}F ex[i++]}}},eh:G(ew){F(ew&&H(ew.ei)=="G")},9V:G(l1){F{U:G(){F"9V(...)"},1l:B.J.24("U"),1a:G(){u W=l1.ei();if(W===O||W===L){14 B.15.25}F W}}}});B.15.1W=["9Y","9X","eh","9V",];B.15.1z=["25","9W","1Q","eu","et","7b","1a","es","a1","a0","er","4c","ep","55","9Z","eo","en","2G","7H","7I","l0","em","9a","kZ","kY","kX","kW","kV","ek","kU"];B.15.2d=G(){u m=B.J;D.25=Y m.5a("25");D.9Y=Y m.4a();D.9W("ej",m.3A,D.9X);D.9W("ei",D.eh,D.9V);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.15.2d();if(!B.3d){7H=B.15.7H}B.J.2Y(D,B.15);if(H(1q)!="L"){1q.2X("B.1H");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1H 3F on B.J!"}if(H(B.1H)=="L"){B.1H={}}B.1H.1r="B.1H";B.1H.1Y="1.3.1";B.1H.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1H.1l=G(){F D.1K()};B.1H.1z=["5C","49","7A","kR","2L","5Z","kG","ch","kE","kC"];B.1H.1W=["ef","e8","e7"];B.1H.49=G(1P,kT,3z){D.1P=1P;D.3N=kT;D.3z=3z;D.vf=Y 3Q()};B.1H.49.1U={U:G(){u m=B.J;F"49("+m.2r(m.U,[D.1P,D.3N,D.3z]).2b(", ")+")"},1l:B.J.24("U")};B.J.2l(B.1H,{ef:G(7F){u I=B.1H;if(H(7F)=="1n"){7F=I.5C[7F]}F G(1t){u 7G=1t.3N;if(H(7G)=="1n"){7G=I.5C[7G]}F 7G>=7F}},e8:G(){u kS=B.1H.49;R(u i=0;i<M.K;i++){if(!(M[i]2C kS)){F 1m}}F 1h},e7:G(a,b){F B.J.2f([a.3N,a.3z],[b.3N,b.3z])},kR:G(1t){cq("1P: "+1t.1P+"\\ve: "+1t.3N+"\\vd: "+1t.3z.2b(" "))}});B.1H.7A=G(7E){D.4f=0;if(H(7E)=="L"||7E===O){7E=-1}D.ec=7E;D.4h=[];D.7C={};D.e5=1m};B.1H.7A.1U={vc:G(){D.4h.4y(0,D.4h.K)},kK:G(1t){if(H(2O)!="L"&&2O.eg&&2O.eg.5Z){2O.eg.5Z(1t)}N{if(H(7h)!="L"&&7h.kQ){7h.kQ(1t)}N{if(H(5X)=="G"){5X(1t)}}}},kL:G(1t){R(u k in D.7C){u 2n=D.7C[k];if(2n.kO!=k||(2n[0]&&!2n[0](1t))){2V}2n[1](1t)}},hE:G(ee,7D,kP){if(H(7D)=="1n"){7D=B.1H.ef(7D)}u ed=[7D,kP];ed.kO=ee;D.7C[ee]=ed},c9:G(kN){gi D.7C[kN]},kH:G(kM,vb){u 1t=Y B.1H.49(D.4f,kM,B.J.1R(O,M,1));D.4h.1c(1t);D.kL(1t);if(D.e5){D.kK(1t.3N+": "+1t.3z.2b(" "))}D.4f+=1;1M(D.ec>=0&&D.4h.K>D.ec){D.4h.2P()}},c8:G(9U){u ea=0;if(!(H(9U)=="L"||9U===O)){ea=28.29(0,D.4h.K-9U)}F D.4h.9T(ea)},kJ:G(7B){if(H(7B)=="L"||7B===O){7B=30}u 9S=D.c8(7B);if(9S.K){u 1g=2r(G(m){F"\\n ["+m.1P+"] "+m.3N+": "+m.3z.2b(" ")},9S);1g.e9("va "+9S.K+" v9:");F 1g.2b("")}F""},v8:G(kI){if(H(B.1I)=="L"){cq(D.kJ())}N{B.1I.bY(kI||1m)}}};B.1H.2d=G(){D.5C={8M:40,8L:50,8K:30,8J:20,8I:10};u m=B.J;m.5u("49",D.e8,D.e7);u 61=m.2z;u e6=D.7A;u 60=e6.1U.kH;m.2l(D.7A.1U,{kF:61(60,"8I"),5Z:61(60,"8J"),dE:61(60,"8M"),kD:61(60,"8L"),kB:61(60,"8K")});u I=D;u 5Y=G(1b){F G(){I.2L[1b].1w(I.2L,M)}};D.5Z=5Y("5Z");D.kG=5Y("dE");D.ch=5Y("kF");D.kE=5Y("kD");D.kC=5Y("kB");D.2L=Y e6();D.2L.e5=1h;D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};if(H(5X)=="L"&&H(2v)!="L"&&2v.kA&&H(kz)!="L"){5X=G(){5X.3G=M;u ev=2v.kA("v7");ev.v6("5X",1m,1h);kz(ev)}}B.1H.2d();B.J.2Y(D,B.1H);if(H(1q)!="L"){1q.2X("B.1D")}if(H(B)=="L"){B={}}if(H(B.1D)=="L"){B.1D={}}B.1D.1r="B.1D";B.1D.1Y="1.3.1";B.1D.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1D.1l=G(){F D.1K()};B.1D.ks=G(1y){1y=1y+"";if(H(1y)!="1n"||1y.K===0){F O}u 7z=1y.2R("-");if(7z.K===0){F O}F Y 3Q(7z[0],7z[1]-1,7z[2])};B.1D.ky=/(\\d{4,})(?:-(\\d{1,2})(?:-(\\d{1,2})(?:[T ](\\d{1,2}):(\\d{1,2})(?::(\\d{1,2})(?:\\.(\\d+))?)?(?:(Z)|([+-])(\\d{1,2})(?::(\\d{1,2}))?)?)?)?)?/;B.1D.kr=G(1y){1y=1y+"";if(H(1y)!="1n"||1y.K===0){F O}u X=1y.3C(B.1D.ky);if(H(X)=="L"||X===O){F O}u 5W,7y,7x,9R,2a,9Q,7w;5W=3w(X[1],10);if(H(X[2])=="L"||X[2]===""){F Y 3Q(5W)}7y=3w(X[2],10)-1;7x=3w(X[3],10);if(H(X[4])=="L"||X[4]===""){F Y 3Q(5W,7y,7x)}9R=3w(X[4],10);2a=3w(X[5],10);9Q=(H(X[6])!="L"&&X[6]!=="")?3w(X[6],10):0;if(H(X[7])!="L"&&X[7]!==""){7w=28.ha(c5*4M("0."+X[7]))}N{7w=0}if((H(X[8])=="L"||X[8]==="")&&(H(X[9])=="L"||X[9]==="")){F Y 3Q(5W,7y,7x,9R,2a,9Q,7w)}u 58;if(H(X[9])!="L"&&X[9]!==""){58=3w(X[10],10)*v5;if(H(X[11])!="L"&&X[11]!==""){58+=3w(X[11],10)*kw}if(X[9]=="-"){58=-58}}N{58=0}F Y 3Q(3Q.v4(5W,7y,7x,9R,2a,9Q,7w)-58)};B.1D.dY=G(2g,kx){if(H(2g)=="L"||2g===O){F O}u hh=2g.v3();u mm=2g.v2();u ss=2g.v1();u 1g=[((kx&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)];F 1g.2b(":")};B.1D.kq=G(2g,7v){if(H(2g)=="L"||2g===O){F O}u ku=7v?"T":" ";u kt=7v?"Z":"";if(7v){2g=Y 3Q(2g.9P()+(2g.v0()*kw))}F B.1D.dX(2g)+ku+B.1D.dY(2g,7v)+kt};B.1D.dX=G(2g){if(H(2g)=="L"||2g===O){F O}u e4=B.1D.e3;F[2g.dZ(),e4(2g.e1()+1),e4(2g.e0())].2b("-")};B.1D.kp=G(d){d=d+"";if(H(d)!="1n"||d.K===0){F O}u a=d.2R("/");F Y 3Q(a[2],a[0]-1,a[1])};B.1D.e3=G(n){F(n>9)?n:"0"+n};B.1D.ko=G(d){if(H(d)=="L"||d===O){F O}u e2=B.1D.e3;F[e2(d.e1()+1),e2(d.e0()),d.dZ()].2b("/")};B.1D.kn=G(d){if(H(d)=="L"||d===O){F O}F[d.e1()+1,d.e0(),d.dZ()].2b("/")};B.1D.1z=["ks","kr","dY","kq","dX","kp","ko","kn"];B.1D.1W=[];B.1D.2k={":3e":B.1D.1z,":1p":B.1D.1z};B.1D.2d=G(){u 2w=D.1r+".";R(u k in D){u o=D[k];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+k}1e(e){}}}};B.1D.2d();if(H(B.J)!="L"){B.J.2Y(D,B.1D)}N{(G(km,dW){if((H(1x)=="L"&&H(1q)=="L")||(H(B.3d)=="5L"&&B.3d)){u 1p=dW.2k[":1p"];R(u i=0;i<1p.K;i++){km[1p[i]]=dW[1p[i]]}}})(D,B.1D)}if(H(1q)!="L"){1q.2X("B.1s")}if(H(B)=="L"){B={}}if(H(B.1s)=="L"){B.1s={}}B.1s.1r="B.1s";B.1s.1Y="1.3.1";B.1s.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1s.1l=G(){F D.1K()};B.1s.ke=G(kl,kk,kj,ki,kh,dV,kg,9N,kf){F G(1P){1P=4M(1P);if(H(1P)=="L"||1P===O||k8(1P)){F kl}u 9L=kk;u 9K=kj;if(1P<0){1P=-1P}N{9L=9L.23(/-/,"")}u me=M.2U;u 9M=B.1s.dJ(ki);if(kh){1P=1P*3k;9K=9M.9y+9K}1P=B.1s.dK(1P,dV);u 9O=1P.2R(/\\./);u 3r=9O[0];u 3P=(9O.K==1)?"":9O[1];u X="";1M(3r.K<kg){3r="0"+3r}if(9N){1M(3r.K>9N){u i=3r.K-9N;X=9M.9A+3r.2W(i,3r.K)+X;3r=3r.2W(0,i)}}X=3r+X;if(dV>0){1M(3P.K<kf){3P=3P+"0"}X=X+9M.9z+3P}F 9L+X+9K}};B.1s.k5=G(9J,9H,9G){if(H(9H)=="L"){9H=""}u 3q=9J.3C(/((?:[0#]+,)?[0#]+)(?:\\.([0#]+))?(%)?/);if(!3q){14 3p("uZ uY")}u 7u=9J.3H(0,3q.c6);u kd=9J.3H(3q.c6+3q[0].K);if(7u.uX(/-/)==-1){7u=7u+"-"}u 9I=3q[1];u 3P=(H(3q[2])=="1n"&&3q[2]!="")?3q[2]:"";u kc=(H(3q[3])=="1n"&&3q[3]!="");u dU=9I.2R(/,/);u 9F;if(H(9G)=="L"){9G="dG"}if(dU.K==1){9F=O}N{9F=dU[1].K}u ka=9I.K-9I.23(/0/g,"").K;u k9=3P.K-3P.23(/0/g,"").K;u kb=3P.K;u W=B.1s.ke(9H,7u,kd,9G,kc,kb,ka,9F,k9);u m=B.J;if(m){u fn=M.2U;u 3G=m.2o(M);W.U=G(){F[I.1r,"(",2r(m.U,3G).2b(", "),")"].2b("")}}F W};B.1s.dJ=G(4g){if(H(4g)=="L"||4g===O){4g="dG"}if(H(4g)=="1n"){u W=B.1s.5V[4g];if(H(W)=="1n"){W=M.2U(W);B.1s.5V[4g]=W}F W}N{F 4g}};B.1s.k4=G(dT,9E){if(9E){u X=dT/9E;if(!k8(X)){F B.1s.9B(dT/9E)}}F"0"};B.1s.9B=G(dS){u dR=(dS<0?"-":"");u s=28.8B(28.uW(dS)*3k).1l();if(s=="0"){F s}if(s.K<3){1M(s.3Z(s.K-1)=="0"){s=s.2W(0,s.K-1)}F dR+"0."+s}u 5E=dR+s.2W(0,s.K-2);u 7t=s.2W(s.K-2,s.K);if(7t=="uV"){F 5E}N{if(7t.3Z(1)=="0"){F 5E+"."+7t.3Z(0)}N{F 5E+"."+7t}}};B.1s.dI=G(1y,dQ){1y=1y+"";if(H(1y)!="1n"){F O}if(!dQ){F 1y.23(/^\\s+/,"")}N{F 1y.23(Y 8V("^["+dQ+"]+"),"")}};B.1s.dH=G(1y,dP){1y=1y+"";if(H(1y)!="1n"){F O}if(!dP){F 1y.23(/\\s+$/,"")}N{F 1y.23(Y 8V("["+dP+"]+$"),"")}};B.1s.k2=G(1y,dO){u I=B.1s;F I.dH(I.dI(1y,dO),dO)};B.1s.dL=G(9D,9C){9D=28.8B(9D*28.dN(10,9C));u X=(9D*28.dN(10,-9C)).6I(9C);if(X.3Z(0)=="."){X="0"+X}F X};B.1s.dK=G(k7,dM){F B.1s.dL(k7+0.5*28.dN(10,-dM),dM)};B.1s.k3=G(k6){F B.1s.9B(3k*k6)+"%"};B.1s.1z=["dL","dK","k5","dJ","k4","9B","k3","dI","dH","k2"];B.1s.5V={k1:{9A:",",9z:".",9y:"%"},uU:{9A:".",9z:",",9y:"%"},uT:{9A:" ",9z:",",9y:"%"},"dG":"k1"};B.1s.1W=[];B.1s.2k={":1p":B.1s.1z,":3e":B.1s.1z};B.1s.2d=G(){u 2w=D.1r+".";u k,v,o;R(k in D.5V){o=D.5V[k];if(H(o)=="3n"){o.U=G(){F D.1r};o.1r=2w+"5V."+k}}R(k in D){o=D[k];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+k}1e(e){}}}};B.1s.2d();if(H(B.J)!="L"){B.J.2Y(D,B.1s)}N{(G(k0,dF){if((H(1x)=="L"&&H(1q)=="L")||(H(B.3d)=="5L"&&B.3d)){u 1p=dF.2k[":1p"];R(u i=0;i<1p.K;i++){k0[1p[i]]=dF[1p[i]]}}})(D,B.1s)}if(H(1q)!="L"){1q.2X("B.1k");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1k 3F on B.J!"}if(H(B.1k)=="L"){B.1k={}}B.1k.1r="B.1k";B.1k.1Y="1.3.1";B.1k.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1k.1l=G(){F D.1K()};B.1k.2t=G(jZ){D.55=[];D.id=D.7n();D.2H=-1;D.54=0;D.53=[O,O];D.7m=jZ;D.7l=1m;D.7r=1m};B.1k.2t.1U={U:G(){u 7s;if(D.2H==-1){7s="uS"}N{if(D.2H===0){7s="uR"}N{7s="dE"}}F"2t("+D.id+", "+7s+")"},1l:B.J.24("U"),7n:B.J.4f(),jY:G(){u I=B.1k;if(D.2H==-1){if(D.7m){D.7m(D)}N{D.7l=1h}if(D.2H==-1){D.52(Y I.di(D))}}N{if((D.2H===0)&&(D.53[0]2C I.2t)){D.53[0].jY()}}},jQ:G(){D.54++},jX:G(){D.54--;if((D.54===0)&&(D.2H>=0)){D.9u()}},jR:G(X){D.9x(X);D.jX()},9x:G(X){D.2H=((X 2C 2x)?1:0);D.53[D.2H]=X;D.9u()},dD:G(){if(D.2H!=-1){if(!D.7l){14 Y B.1k.dj(D)}D.7l=1m;F}},3o:G(X){D.dD();if(X 2C B.1k.2t){14 Y 2x("2t jW 9v aB be 7r if jV jU jT jS of a 3o")}D.9x(X)},52:G(X){D.dD();u I=B.1k;if(X 2C I.2t){14 Y 2x("2t jW 9v aB be 7r if jV jU jT jS of a 3o")}if(!(X 2C 2x)){X=Y I.9p(X)}D.9x(X)},jP:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(fn,fn)},5Q:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(fn,O)},jA:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(O,fn)},9w:G(cb,eb){if(D.7r){14 Y 2x("uQ uP 9v 2E be re-uO")}D.55.1c([cb,eb]);if(D.2H>=0){D.9u()}F D},9u:G(){u dC=D.55;u 56=D.2H;u X=D.53[56];u I=D;u cb=O;1M(dC.K>0&&D.54===0){u 2n=dC.2P();u f=2n[56];if(f===O){2V}1f{X=f(X);56=((X 2C 2x)?1:0);if(X 2C B.1k.2t){cb=G(X){I.jR(X)};D.jQ()}}1e(3O){56=1;if(!(3O 2C 2x)){3O=Y B.1k.9p(3O)}X=3O}}D.2H=56;D.53[56]=X;if(cb&&D.54){X.jP(cb);X.7r=1h}}};B.J.2l(B.1k,{dk:G(){F dB("("+M[0].jN+")")},dp:G(uN){u d=Y B.1k.2t();d.3o.1w(d,M);F d},9q:G(uM){u d=Y B.1k.2t();d.52.1w(d,M);F d},do:G(){u I=M.2U;if(!I.7q){u dy=[G(){F Y 7q()},G(){F Y dA("jO.dz")},G(){F Y dA("uL.dz")},G(){F Y dA("jO.dz.4.0")},G(){14 Y B.1k.dh("uK uJ 2E uI 7q")}];R(u i=0;i<dy.K;i++){u 1A=dy[i];1f{I.7q=1A;F 1A()}1e(e){}}}F I.7q()},dx:G(){},jK:G(d){if(D.uH==4){1f{D.5T=O}1e(e){1f{D.5T=B.1k.dx}1e(e){}}u 5U=O;1f{5U=D.jm;if(!5U&&B.J.7e(D.jN)){5U=jM}}1e(e){}if(5U==hQ||5U==jM){d.3o(D)}N{u 3O=Y B.1k.dg(D,"uG uF");if(3O.2y){d.52(3O)}N{d.52(3O)}}}},jL:G(2s){1f{2s.5T=O}1e(e){1f{2s.5T=B.1k.dx}1e(e){}}2s.uE()},dl:G(2s,7p){if(H(7p)=="L"||7p===O){7p=""}u m=B.J;u I=B.1k;u d=Y I.2t(m.2z(I.jL,2s));1f{2s.5T=m.1O(I.jK,2s,d);2s.uD(7p)}1e(e){1f{2s.5T=O}1e(uC){}d.52(e)}F d},dn:G(5F){u I=B.1k;u 2s=I.do();if(M.K>1){u m=B.J;u qs=m.dw.1w(O,m.1R(O,M,1));if(qs){5F+="?"+qs}}2s.cp("uB",5F,1h);F I.dl(2s)},jv:G(5F){u I=B.1k;u d=I.dn.1w(I,M);d=d.5Q(I.dk);F d},dm:G(jJ,dv){u d=Y B.1k.2t();u m=B.J;if(H(dv)!="L"){d.5Q(G(){F dv})}u jI=uA(m.1O("3o",d),28.8B(jJ*c5));d.7m=G(){1f{uz(jI)}1e(e){}};F d},ju:G(jH,1A){u m=B.J;u jG=m.2z.1w(m,m.1R(O,M,1));F B.1k.dm(jH).5Q(G(X){F jG()})}});B.1k.5O=G(){D.5S=[];D.4e=1m;D.id=D.7n()};B.1k.5O.1U={bX:B.1k.5O,uy:G(){d=Y B.1k.2t();if(D.4e){D.5S.1c(d)}N{D.4e=1h;d.3o(D)}F d},jF:G(){if(!D.4e){14 3p("ux to jF an jE 5O")}D.4e=1m;if(D.5S.K>0){D.4e=1h;D.5S.2P().3o(D)}},7n:B.J.4f(),U:G(){u 9t;if(D.4e){9t="4e, "+D.5S.K+" 5S"}N{9t="jE"}F"5O("+D.id+", "+9t+")"},1l:B.J.24("U")};B.1k.7i=G(2G,du,jC,jB,jD){D.2G=2G;D.9r=Y 7o(D.2G.K);D.55=[];D.id=D.7n();D.2H=-1;D.54=0;D.53=[O,O];D.7m=jD;D.7l=1m;if(D.2G.K===0&&!du){D.3o(D.9r)}D.dr=0;D.jz=du;D.jy=jC;D.jx=jB;u 9s=0;B.J.2r(B.J.1O(G(d){d.5Q(B.J.1O(D.dt,D),9s,1h);d.jA(B.J.1O(D.dt,D),9s,1m);9s+=1},D),D.2G)};B.J.2l(B.1k.7i.1U,B.1k.2t.1U);B.J.2l(B.1k.7i.1U,{dt:G(ds,7k,5R){D.9r[ds]=[7k,5R];D.dr+=1;if(D.2H!==0){if(7k&&D.jz){D.3o([ds,5R])}N{if(!7k&&D.jy){D.52(5R)}N{if(D.dr==D.2G.K){D.3o(D.9r)}}}}if(!7k&&D.jx){5R=O}F 5R}});B.1k.jt=G(jw){u d=Y B.1k.7i(jw,1m,1h,1m);d.5Q(G(dq){u 7j=[];R(u i=0;i<dq.K;i++){7j.1c(dq[i][1])}F 7j});F d};B.1k.jr=G(1A){u I=B.1k;u 5P;1f{u r=1A.1w(O,B.J.1R([],M,1));if(r 2C I.2t){5P=r}N{if(r 2C 2x){5P=I.9q(r)}N{5P=I.dp(r)}}}1e(e){5P=I.9q(e)}F 5P};B.1k.1z=["dj","di","dh","9p","dg","2t","dp","9q","do","dn","jv","dm","ju","dl","5O","7i","jt","jr"];B.1k.1W=["dk"];B.1k.2d=G(){u m=B.J;u ne=m.2z(m.jq,D);ne("dj",G(jp){D.jo=jp});ne("di",G(jn){D.jo=jn});ne("dh",G(1t){D.43=1t});ne("9p",G(1t){D.43=1t});ne("dg",G(2s,1t){D.2s=2s;D.43=1t;1f{D.2y=2s.jm}1e(e){}});D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.1k.2d();B.J.2Y(D,B.1k);if(H(1q)!="L"){1q.2X("B.S");1q.2M("B.15")}if(H(1x)!="L"){1x.26("B.15",[])}1f{if(H(B.15)=="L"){14""}}1e(e){14"B.S 3F on B.15!"}if(H(B.S)=="L"){B.S={}}B.S.1r="B.S";B.S.1Y="1.3.1";B.S.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.S.1l=G(){F D.1K()};B.S.1z=["d5","cr","b9","95","94","j3","9k","cX","cw","iT","iV","4X","9j","iQ","hS","cs","ia","i9","i8","i7","i6","i5","i4","hV","i3","i2","i1","cu","hW","ct","i0","hZ","hY","hX","P","io","il","ik","ij","cm","ih","ii","ig","ie","ic","cv","8d","A","6m","ib","1E","$","4q","aH","cO","cN","iM","5G","iK","9d","9e","iH","iD","9c","iB","cG","97","hU","hT","iw","jh","jb","j6","j5","jk","jl"];B.S.1W=["9b"];B.S.5N=G(w,h){D.w=w;D.h=h};B.S.5N.1U.U=G(){u U=B.J.U;F"{w: "+U(D.w)+", h: "+U(D.h)+"}"};B.S.5t=G(x,y){D.x=x;D.y=y};B.S.5t.1U.U=G(){u U=B.J.U;F"{x: "+U(D.x)+", y: "+U(D.y)+"}"};B.S.5t.1U.1l=G(){F D.U()};B.J.2l(B.S,{jl:G(Q,o){Q=B.S.1E(Q);B.S.4X(Q,{"1T":{"9o":o,"-hL-9o":o,"-uw-9o":o,"47":" uv(9o="+(o*3k)+")"}})},jk:G(){u d=Y B.S.5N();u w=B.S.3X;u b=B.S.1Z.5s;if(w.jj){d.w=w.jj;d.h=w.uu}N{if(b.dd.9n){d.w=b.dd.9n;d.h=b.dd.ji}N{if(b&&b.9n){d.w=b.9n;d.h=b.ji}}}F d},jh:G(Q){u I=B.S;if(H(Q.w)=="2y"||H(Q.h)=="2y"){F Y I.5N(Q.w||0,Q.h||0)}Q=I.1E(Q);if(!Q){F L}if(I.4q(Q,"3u")!="98"){F Y I.5N(Q.jg||0,Q.ci||0)}u s=Q.1T;u je=s.dc;u jf=s.6P;s.dc="fR";s.6P="j8";s.3u="";u jd=Q.jg;u jc=Q.ci;s.3u="98";s.6P=jf;s.dc=je;F Y I.5N(jd,jc)},jb:G(Q,4Z){u I=B.S;Q=I.1E(Q);if(!Q){F L}u c=Y I.5t(0,0);if(Q.x&&Q.y){c.x+=Q.x||0;c.y+=Q.y||0;F c}N{if(Q.3t===O||I.4q(Q,"3u")=="98"){F L}}u 51=O;u 2j=O;u d=B.S.1Z;u de=d.7Z;u b=d.5s;if(Q.ja){51=Q.ja();c.x+=51.2I+(de.6y||b.6y)-(de.8q||b.8q);c.y+=51.3D+(de.4C||b.4C)-(de.8p||b.8p)}N{if(d.j9){51=d.j9(Q);c.x+=51.x;c.y+=51.y}N{if(Q.8g){c.x+=Q.db;c.y+=Q.da;2j=Q.8g;if(2j!=Q){1M(2j){c.x+=2j.db;c.y+=2j.da;2j=2j.8g}}u ua=ut.us.8G();if((H(7h)!="L"&&4M(7h.ur())<9)||(ua.2A("uq")!=-1&&I.4q(Q,"6P")=="j8")){c.x-=b.db;c.y-=b.da}}}}if(H(4Z)!="L"){4Z=M.2U(4Z);if(4Z){c.x-=(4Z.x||0);c.y-=(4Z.y||0)}}if(Q.3t){2j=Q.3t}N{2j=O}1M(2j&&2j.j7!="uo"&&2j.j7!="co"){c.x-=2j.6y;c.y-=2j.4C;if(2j.3t){2j=2j.3t}N{2j=O}}F c},j6:G(Q,d9,7g){Q=B.S.1E(Q);if(H(7g)=="L"){7g="px"}B.S.4X(Q,{"1T":{"5A":d9.w+7g,"3V":d9.h+7g}})},j5:G(Q,d8,7f){Q=B.S.1E(Q);if(H(7f)=="L"){7f="px"}B.S.4X(Q,{"1T":{"2I":d8.x+7f,"3D":d8.y+7f}})},cr:G(){F B.S.3X},b9:G(){F B.S.1Z},95:G(2m,1A){u I=B.S;u d6=I.1Z;u d7=I.un;u W;1f{I.3X=2m;I.1Z=2m.2v;W=1A()}1e(e){I.3X=d7;I.1Z=d6;14 e}I.3X=d7;I.1Z=d6;F W},d5:G(Q){u 7d=[];u 7c=[];u m=B.J;u I=B.S;if(H(Q)=="L"||Q===O){Q=I.1Z}N{Q=I.1E(Q)}m.d4(Q,G(Q){u 1b=Q.1b;if(m.7e(1b)){u 4Y=Q.cD;if(4Y=="cv"&&(Q.1J=="um"||Q.1J=="uk")&&!Q.ip){F O}if(4Y=="ct"){if(Q.j4>=0){u 9m=Q.1S[Q.j4];7d.1c(1b);7c.1c((9m.3m)?9m.3m:9m.7X);F O}7d.1c(1b);7c.1c("");F O}if(4Y=="cu"||4Y=="P"||4Y=="8d"||4Y=="6m"){F Q.5h}7d.1c(1b);7c.1c(Q.3m||"");F O}F Q.5h});F[7d,7c]},94:G(1N,1A){u I=B.S;u d3=I.1Z;u W;1f{I.1Z=1N;W=1A()}1e(e){I.1Z=d3;14 e}I.1Z=d3;F W},j3:G(1b,j2,3y,j1){B.S.9b.5M(1b,j2,3y,j1)},9k:G(1j,7a){u im=B.15;u I=B.S;u 1Q=im.1Q;u iY=im.7b;u 4c=im.4c;u iX=I.9b;u iZ=I.9k;u iW=B.J.4d;1M(1h){if(H(1j)=="L"||1j===O){F O}if(H(1j.3T)!="L"&&1j.3T>0){F 1j}if(H(1j)=="2y"||H(1j)=="5L"){1j=1j.1l()}if(H(1j)=="1n"){F I.1Z.4S(1j)}if(H(1j.j0)=="G"){1j=1j.j0(7a);2V}if(H(1j)=="G"){1j=1j(7a);2V}u 9l=O;1f{9l=1Q(1j)}1e(e){}if(9l){F 4c(iZ,9l,iY(7a))}1f{1j=iX.3C(1j,7a);2V}1e(e){if(e!=iW){14 e}}F I.1Z.4S(1j.1l())}F L},iV:G(1j,79,iU){u o={};o[79]=iU;1f{F B.S.4X(1j,o)}1e(e){}F O},iT:G(1j,79){u I=B.S;u d2=I.4U.99[79];1j=I.1E(1j);1f{if(d2){F 1j[d2]}F 1j.fm(79)}1e(e){}F O},4X:G(1j,5K){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j)}if(5K){u d0=B.J.8Z;if(I.4U.6X){R(u k in 5K){u v=5K[k];if(H(v)=="3n"&&H(Q[k])=="3n"){d0(Q[k],v)}N{if(k.2W(0,2)=="on"){if(H(v)=="1n"){v=Y cZ(v)}Q[k]=v}N{Q.4p(k,v)}}}}N{u iS=I.4U.99;R(k in 5K){v=5K[k];u d1=iS[k];if(k=="1T"&&H(v)=="1n"){Q.1T.3x=v}N{if(H(d1)=="1n"){Q[d1]=v}N{if(H(Q[k])=="3n"&&H(v)=="3n"){d0(Q[k],v)}N{if(k.2W(0,2)=="on"){if(H(v)=="1n"){v=Y cZ(v)}Q[k]=v}N{Q.4p(k,v)}}}}}}}F Q},9j:G(1j){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j)}u 78=[I.9k(B.J.1R(O,M,1),Q)];u iR=B.J.2o;1M(78.K){u n=78.2P();if(H(n)=="L"||n===O){}N{if(H(n.3T)=="2y"){Q.2c(n)}N{78=iR(n,78)}}}F Q},iQ:G(1j){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j);M[0]=Q}u cY;1M((cY=Q.6n)){Q.6S(cY)}if(M.K<2){F Q}N{F I.9j.1w(D,M)}},cX:G(1b,4b){u Q;u I=B.S;u m=B.J;if(H(4b)=="1n"||H(4b)=="2y"){u 3G=m.1R([1b,O],M,1);F M.2U.1w(D,3G)}if(H(1b)=="1n"){if(4b&&"1b"in 4b&&!I.4U.6X){1b=("<"+1b+" 1b=\\""+I.9c(4b.1b)+"\\">")}Q=I.1Z.2S(1b)}N{Q=1b}if(4b){I.4X(Q,4b)}if(M.K<=2){F Q}N{u 3G=m.1R([Q],M,2);F I.9j.1w(D,3G)}},cw:G(){u m=B.J;F m.2z.1w(D,m.1R([B.S.cX],M))},cs:G(5J,1d){u I=B.S;5J=I.1E(5J);u cW=5J.3t;if(1d){1d=I.1E(1d);cW.uj(1d,5J)}N{cW.6S(5J)}F 1d},1E:G(id){u I=B.S;if(M.K==1){F((H(id)=="1n")?I.1Z.hN(id):id)}N{F B.J.2r(I.1E,M)}},4q:G(iP,cV,cU){if(M.K==2){cU=cV}u I=B.S;u el=I.1E(iP);u 77=I.1Z;if(!el||el==77){F L}if(el.iO){F el.iO[cV]}if(H(77.5k)=="L"){F L}if(77.5k===O){F L}u 9i=77.5k.g4(el,O);if(H(9i)=="L"||9i===O){F L}F 9i.6q(cU)},aH:G(76,9g,4W){u I=B.S;if(H(76)=="L"||76===O){76="*"}if(H(4W)=="L"||4W===O){4W=I.1Z}4W=I.1E(4W);u 9h=(4W.fr(76)||I.1Z.1p);if(H(9g)=="L"||9g===O){F B.J.1R(O,9h)}u cR=[];R(u i=0;i<9h.K;i++){u cS=9h[i];u cT=cS.3M.2R(" ");R(u j=0;j<cT.K;j++){if(cT[j]==9g){cR.1c(cS);2K}}}F cR},iN:G(5I,9f){u W=G(){u cQ=M.2U.5H;R(u i=0;i<cQ.K;i++){if(cQ[i].1w(D,M)===1m){2K}}if(9f){1f{D[5I]=O}1e(e){}}};W.5H=[];F W},cO:G(cP,5I,1A,9f){u I=B.S;u 4V=cP[5I];u 75=4V;if(!(H(4V)=="G"&&H(4V.5H)=="3n"&&4V.5H!==O)){75=I.iN(5I,9f);if(H(4V)=="G"){75.5H.1c(4V)}cP[5I]=75}75.5H.1c(1A)},cN:G(1A){u I=B.S;I.cO(I.3X,"gh",1A,1h)},iM:G(74){u I=B.S;I.cN(G(){74=I.1E(74);if(74){74.ui()}})},5G:G(iL,cM){u I=B.S;u 1i=I.1E(iL);if(I.4U.6X){1i.4p("iq",cM)}N{1i.4p("3M",cM)}},iK:G(cL){u I=B.S;R(u i=1;i<M.K;i++){u 1i=I.1E(M[i]);if(!I.9d(1i,cL)){I.9e(1i,cL)}}},9d:G(iJ,73){u I=B.S;u 1i=I.1E(iJ);u 2F=1i.3M;if(2F.K===0){I.5G(1i,73);F 1h}if(2F==73){F 1m}u cK=1i.3M.2R(" ");R(u i=0;i<cK.K;i++){if(cK[i]==73){F 1m}}I.5G(1i,2F+" "+73);F 1h},9e:G(iI,cJ){u I=B.S;u 1i=I.1E(iI);u 2F=1i.3M;if(2F.K===0){F 1m}if(2F==cJ){I.5G(1i,"");F 1h}u 72=1i.3M.2R(" ");R(u i=0;i<72.K;i++){if(72[i]==cJ){72.4y(i,1);I.5G(1i,72.2b(" "));F 1h}}F 1m},iH:G(iG,iF,iE){u 1i=B.S.1E(iG);u X=B.S.9e(1i,iF);if(X){B.S.9d(1i,iE)}F X},iD:G(iC,uh){u 1i=B.S.1E(iC);u cI=1i.3M.2R(" ");R(u i=1;i<M.K;i++){u cH=1m;R(u j=0;j<cI.K;j++){if(cI[j]==M[i]){cH=1h;2K}}if(!cH){F 1m}}F 1h},9c:G(s){F s.23(/&/g,"&ug;").23(/"/g,"&uf;").23(/</g,"&lt;").23(/>/g,"&gt;")},iB:G(2q){F B.S.cG(2q).2b("")},cG:G(2q,1g){if(H(1g)=="L"||1g===O){1g=[]}u 70=[2q];u I=B.S;u cB=I.9c;u iA=I.4U;1M(70.K){2q=70.hP();if(H(2q)=="1n"){1g.1c(2q)}N{if(2q.3T==1){1g.1c("<"+2q.cD.8G());u 71=[];u cF=iA(2q);R(u i=0;i<cF.K;i++){u a=cF[i];71.1c([" ",a.1b,"=\\"",cB(a.3m),"\\""])}71.iz();R(i=0;i<71.K;i++){u cE=71[i];R(u j=0;j<cE.K;j++){1g.1c(cE[j])}}if(2q.ue()){1g.1c(">");70.1c("</"+2q.cD.8G()+">");u cC=2q.5h;R(i=cC.K-1;i>=0;i--){70.1c(cC[i])}}N{1g.1c("/>")}}N{if(2q.3T==3){1g.1c(cB(2q.iv))}}}}F 1g},97:G(ix,cA){u m=B.J;u iy=m.1R(O,M,1);B.15.9a(m.47(O,m.2r(B.S.1E,iy)),G(cA){cA.1T.3u=ix})},iw:G(1j,iu){u W=[];(G(1j){u cn=1j.5h;if(cn){R(u i=0;i<cn.K;i++){M.2U.cz(D,cn[i])}}u cy=1j.iv;if(H(cy)=="1n"){W.1c(cy)}})(B.S.1E(1j));if(iu){F W}N{F W.2b("")}},2d:G(2m){u m=B.J;D.1Z=2v;D.3X=2m;D.9b=Y m.4a();u 6Z=D.1Z.2S("cj");u 2T;if(6Z&&6Z.6Y&&6Z.6Y.K>0){u it=m.47;2T=G(1j){F it(2T.ir,1j.6Y)};2T.cx={};B.15.9a(6Z.6Y,G(a){2T.cx[a.1b]=a.3m});2T.ir=G(a){F(2T.cx[a.1b]!=a.3m)};2T.6X=1m;2T.99={"iq":"3M","ip":"ud","uc":"ub","R":"u9"}}N{2T=G(1j){F 1j.6Y};2T.6X=1h;2T.99={}}D.4U=2T;u 1C=D.cw;D.io=1C("ul");D.il=1C("ol");D.ik=1C("li");D.ij=1C("td");D.cm=1C("tr");D.ii=1C("u8");D.ih=1C("u7");D.ig=1C("u6");D.ie=1C("u5");D.ic=1C("th");D.cv=1C("ck");D.8d=1C("cj");D.A=1C("a");D.6m=1C("4u");D.ib=1C("u4");D.ia=1C("2e");D.i9=1C("tt");D.i8=1C("4O");D.i7=1C("h1");D.i6=1C("h2");D.i5=1C("h3");D.i4=1C("br");D.i3=1C("hr");D.i2=1C("u3");D.i1=1C("u2");D.cu=1C("u1");D.P=1C("p");D.ct=1C("u0");D.i0=1C("hJ");D.hZ=1C("tZ");D.hY=1C("tY");D.hX=1C("tX");D.hW=1C("tW");D.hV=1C("tV");D.hU=m.2z(D.97,"98");D.hT=m.2z(D.97,"8c");D.hS=D.cs;D.$=D.1E;D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)}});B.S.2d(((H(2O)=="L")?D:2O));if(!B.3d){95=B.S.95;94=B.S.94}B.J.2Y(D,B.S);if(H(1q)!="L"){1q.2X("B.1I");1q.2M("B.1H");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.1H",[]);1x.26("B.J",[])}1f{if(H(B.J)=="L"||H(B.1H)=="L"){14""}}1e(e){14"B.1I 3F on B.J 3W B.1H!"}if(H(B.1I)=="L"){B.1I={}}B.1I.1r="B.1I";B.1I.1Y="1.3.1";B.1I.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1I.1l=G(){F D.1K()};B.1I.bY=G(6W){u m=B.1I;6W=!(!6W);if(m.3l&&m.3l.8Q!=6W){m.3l.hA();m.3l=O}if(!m.3l||m.3l.8P){m.3l=Y m.1I(6W,B.1H.2L)}F m.3l};B.1I.1I=G(4R,6V){if(H(6V)=="L"||6V===O){6V=B.1H.2L}D.2L=6V;u tU=B.J.2l;u c3=B.J.8Z;u 1O=B.J.1O;u hM=B.J.4L;u 2m=2O;u 6U="tT";if(H(B.S)!="L"){2m=B.S.cr()}if(!4R){u 5F=2m.tS.tR.2R("?")[0].23(/[:\\/.><&]/g,"hR");u 1b=6U+"hR"+5F;u 5D=2m.cp("",1b,"tQ,tP,3V=hQ");if(!5D){cq("tO tN to cp tM 2O tL to hP-up tK.");F L}5D.2v.fl("<!tJ co tI \\"-//tH//tG co 4.0 tF//tE\\" "+"\\"fq://fp.tD.fo/cm/tC/tB.tA\\">"+"<hO><5E><8Y>[B.1I]</8Y></5E>"+"<5s></5s></hO>");5D.2v.hG();5D.2v.8Y+=" "+2m.2v.8Y;2m=5D}u 1N=2m.2v;D.1N=1N;u 21=1N.hN(6U);u c4=!!21;if(21&&H(21.5B)!="L"){21.5B.2L=D.2L;21.5B.6K();F 21.5B}if(c4){u cl;1M((cl=21.6n)){21.6S(cl)}}N{21=1N.2S("4u");21.id=6U}21.5B=D;u 8T=1N.2S("ck");u 8S=1N.2S("ck");u 6O=1N.2S("2e");u 6N=1N.2S("2e");u 6M=1N.2S("2e");u 6L=1N.2S("2e");u 3L=1N.2S("4u");u 42=1N.2S("4u");u 8U=6U+"tz";D.8N=hM(D.8N);u 4T=[];u 6R=O;u cf=G(1t){u 6T=1t.3N;if(H(6T)=="2y"){6T=B.1H.5C[6T]}F 6T};u cd=G(1t){F 1t.3z.2b(" ")};u ca=1O(G(1t){u 8W=cf(1t);u 7X=cd(1t);u c=D.8N[8W];u p=1N.2S("cj");p.3M="B-49 B-5C-"+8W;p.1T.3x="ty: 2N; 4F-8X: -hL-4O-3y; 4F-8X: -o-4O-3y; 4F-8X: 4O-3y; 4F-8X: 4O-tx; hK-3y: 2K-hK; 3y-hJ: tw; 3U: "+c;p.2c(1N.4S(8W+": "+7X));42.2c(p);42.2c(1N.2S("br"));if(3L.ci>3L.hI){3L.4C=0}N{3L.4C=3L.hI}},D);u hD=G(1t){4T[4T.K]=1t;ca(1t)};u hF=G(){u cg,ce;1f{cg=Y 8V(8T.3m);ce=Y 8V(8S.3m)}1e(e){ch("2x in 47 tv: "+e.43);F O}F G(1t){F(cg.hH(cf(1t))&&ce.hH(cd(1t)))}};u cc=G(){1M(42.6n){42.6S(42.6n)}};u hB=G(){4T=[];cc()};u bZ=1O(G(){if(D.8P){F}D.8P=1h;if(B.1I.3l==D){B.1I.3l=O}D.2L.c9(8U);21.5B=O;if(4R){21.3t.6S(21)}N{D.2m.hG()}},D);u c7=G(){cc();R(u i=0;i<4T.K;i++){u 1t=4T[i];if(6R===O||6R(1t)){ca(1t)}}};D.6K=G(){6R=hF();c7();D.2L.c9(8U);D.2L.hE(8U,6R,hD)};u c0=1O(G(){4T=D.2L.c8();c7()},D);u c2=1O(G(6Q){6Q=6Q||2O.6D;2h=6Q.6w||6Q.8t;if(2h==13){D.6K()}},D);u 31="3u: 8c; z-c6: c5; 2I: 2N; 6f: 2N; 6P: tu; 5A: 3k%; he-3U: 4F; c1: "+D.8O;if(4R){31+="; 3V: ts; 3E-3D: fO 8a 8y"}N{31+="; 3V: 3k%;"}21.1T.3x=31;if(!c4){1N.5s.2c(21)}31={"3x":"5A: 33%; 3u: 8Q; c1: "+D.8O};c3(8T,{"3m":"8L|8M|8K|8J|8I","hC":c2,"1T":31});21.2c(8T);c3(8S,{"3m":".*","hC":c2,"1T":31});21.2c(8S);31="5A: 8%; 3u:8Q; c1: "+D.8O;6O.2c(1N.4S("tq"));6O.8R=1O("6K",D);6O.1T.3x=31;21.2c(6O);6N.2c(1N.4S("tp"));6N.8R=c0;6N.1T.3x=31;21.2c(6N);6M.2c(1N.4S("tn"));6M.8R=hB;6M.1T.3x=31;21.2c(6M);6L.2c(1N.4S("tm"));6L.8R=bZ;6L.1T.3x=31;21.2c(6L);3L.1T.3x="fS: tk; 5A: 3k%";42.1T.3x="5A: 3k%; 3V: "+(4R?"tj":"3k%");3L.2c(42);21.2c(3L);D.6K();c0();if(4R){D.2m=L}N{D.2m=2m}D.8Q=4R;D.hA=bZ;D.8P=1m;F D};B.1I.1I.1U={"8O":"ti tg,tf-te","8N":{"8M":"1v","8L":"gU","8K":"1F","8J":"8y","8I":"bx"}};B.1I.1W=["1I"];B.1I.1z=["bY"];B.1I.2d=G(){D.2k={":3e":D.1z,":1p":B.J.2o(D.1z,D.1W)};B.J.3f(D);B.1I.3l=O};B.1I.2d();B.J.2Y(D,B.1I);if(H(1q)!="L"){1q.2X("B.V");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.V 3F on B.J"}if(H(B.V)=="L"){B.V={}}B.V.1r="B.V";B.V.1Y="1.3.1";B.V.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.V.1l=G(){F D.1K()};B.V.V=G(1v,hz,1F,6J){if(H(6J)=="L"||6J===O){6J=1}D.1B={r:1v,g:hz,b:1F,a:6J}};B.V.V.1U={bX:B.V.V,tc:G(hy){u 1B=D.1B;u m=B.V;F m.V.3Y(1B.r,1B.g,1B.b,hy)},tb:G(1o){u 1G=D.41();1G.h=1o;u m=B.V;F m.V.4H(1G)},ta:G(hx){u 1G=D.41();1G.s=hx;u m=B.V;F m.V.4H(1G)},t9:G(hw){u 1G=D.41();1G.l=hw;u m=B.V;F m.V.4H(1G)},t8:G(hv){u 1G=D.41();1G.l=28.29(1G.l-hv,0);u m=B.V;F m.V.4H(1G)},t7:G(hu){u 1G=D.41();1G.l=28.2a(1G.l+hu,1);u m=B.V;F m.V.4H(1G)},fJ:G(ht,5z){if(H(5z)=="L"||5z===O){5z=0.5}u sf=1-5z;u s=D.1B;u d=ht.1B;u df=5z;F B.V.V.3Y((s.r*sf)+(d.r*df),(s.g*sf)+(d.g*df),(s.b*sf)+(d.b*df),(s.a*sf)+(d.a*df))},h4:G(hs){u a=D.6r();u b=hs.6r();F B.J.2f([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a])},hq:G(){F D.41().b>0.5},t6:G(){F(!D.hq())},t5:G(){u c=D.41();u 2Z=B.V.6F;u W=D.ho;if(!W){u 5y=(2Z(c.h,bF).6I(0)+","+2Z(c.s,3k).hp(4)+"%"+","+2Z(c.l,3k).hp(4)+"%");u a=c.a;if(a>=1){a=1;W="1G("+5y+")"}N{if(a<=0){a=0}W="t4("+5y+","+a+")"}D.ho=W}F W},hl:G(){u c=D.1B;u 2Z=B.V.6F;u W=D.hn;if(!W){u 5y=(2Z(c.r,3h).6I(0)+","+2Z(c.g,3h).6I(0)+","+2Z(c.b,3h).6I(0));if(c.a!=1){W="t3("+5y+","+c.a+")"}N{W="1B("+5y+")"}D.hn=W}F W},6r:G(){F B.J.4L(D.1B)},t2:G(){u m=B.V;u c=D.1B;u 2Z=B.V.6F;u W=D.hm;if(!W){W=("#"+m.6E(2Z(c.r,3h))+m.6E(2Z(c.g,3h))+m.6E(2Z(c.b,3h)));D.hm=W}F W},t1:G(){u 2Q=D.2Q;u c=D.1B;if(H(2Q)=="L"||2Q===O){2Q=B.V.bA(D.1B);D.2Q=2Q}F B.J.4L(2Q)},41:G(){u 1G=D.1G;u c=D.1B;if(H(1G)=="L"||1G===O){1G=B.V.bC(D.1B);D.1G=1G}F B.J.4L(1G)},1l:G(){F D.hl()},U:G(){u c=D.1B;u hk=[c.r,c.g,c.b,c.a];F D.bX.1r+"("+hk.2b(", ")+")"}};B.J.2l(B.V.V,{3Y:G(1v,bW,1F,8H){u hj=B.V.V;if(M.K==1){u 1B=1v;1v=1B.r;bW=1B.g;1F=1B.b;if(H(1B.a)=="L"){8H=L}N{8H=1B.a}}F Y hj(1v,bW,1F,8H)},4H:G(1o,t0,sZ,sY){u m=B.V;F m.V.3Y(m.bB.1w(m,M))},sX:G(1o,sW,sV,sU){u m=B.V;F m.V.3Y(m.bz.1w(m,M))},hi:G(1b){u 8F=B.V.V;if(1b.3Z(0)=="\\""){1b=1b.3H(1,1b.K-2)}u bV=8F.by[1b.8G()];if(H(bV)=="1n"){F 8F.bT(bV)}N{if(1b=="aP"){F 8F.sT()}}F O},8f:G(4Q){u I=B.V.V;u bU=4Q.3H(0,3);if(bU=="1B"){F I.h9(4Q)}N{if(bU=="1G"){F I.h8(4Q)}N{if(4Q.3Z(0)=="#"){F I.bT(4Q)}}}F I.hi(4Q)},bT:G(4P){if(4P.3Z(0)=="#"){4P=4P.2W(1)}u 8E=[];u i,5x;if(4P.K==3){R(i=0;i<3;i++){5x=4P.3H(i,1);8E.1c(3w(5x+5x,16)/3h)}}N{R(i=0;i<6;i+=2){5x=4P.3H(i,2);8E.1c(3w(5x,16)/3h)}}u bS=B.V.V;F bS.3Y.1w(bS,8E)},bG:G(4O,hf,hg,4N){if(4N.2A(4O)===0){4N=4N.2W(4N.2A("(",3)+1,4N.K-1)}u bR=4N.2R(/\\s*,\\s*/);u bP=[];R(u i=0;i<bR.K;i++){u c=bR[i];u 2i;u bQ=c.2W(c.K-3);if(c.3Z(c.K-1)=="%"){2i=0.bE*4M(c.2W(0,c.K-1))}N{if(bQ=="sS"){2i=4M(c)/bF}N{if(bQ=="sR"){2i=4M(c)/(28.sQ*2)}N{2i=hg[i]*4M(c)}}}bP.1c(2i)}F D[hf].1w(D,bP)},bN:G(Q,sP,sO){u d=B.S;u 2F=B.V.V;R(Q=d.1E(Q);Q;Q=Q.3t){u bO=d.4q.1w(d,M);if(!bO){2V}u 8D=2F.8f(bO);if(!8D){2K}if(8D.6r().a>0){F 8D}}F O},ba:G(Q){u 2F=B.V.V;F 2F.bN(Q,"aZ","he-3U")||2F.sN()},sM:G(Q){u 2F=B.V.V;F 2F.bN(Q,"3U","3U")||2F.sL()},sK:G(){F B.J.4L(B.V.V.by)}});B.J.2l(B.V,{6F:G(v,8C){v*=8C;if(v<0){F 0}N{if(v>8C){F 8C}N{F v}}},hc:G(n1,n2,1o){if(1o>6){1o-=6}N{if(1o<0){1o+=6}}u 2i;if(1o<1){2i=n1+(n2-n1)*1o}N{if(1o<3){2i=n2}N{if(1o<4){2i=n1+(n2-n1)*(4-1o)}N{2i=n1}}}F 2i},bz:G(1o,5w,3i,bM){if(M.K==1){u 2Q=1o;1o=2Q.h;5w=2Q.s;3i=2Q.v;bM=2Q.a}u 1v;u 3K;u 1F;if(5w===0){1v=0;3K=0;1F=0}N{u i=28.8B(1o*6);u f=(1o*6)-i;u p=3i*(1-5w);u q=3i*(1-(5w*f));u t=3i*(1-(5w*(1-f)));hd(i){3j 1:1v=q;3K=3i;1F=p;2K;3j 2:1v=p;3K=3i;1F=t;2K;3j 3:1v=p;3K=q;1F=3i;2K;3j 4:1v=t;3K=p;1F=3i;2K;3j 5:1v=3i;3K=p;1F=q;2K;3j 6:3j 0:1v=3i;3K=t;1F=p;2K}}F{r:1v,g:3K,b:1F,a:bM}},bB:G(1o,5v,3v,bL){if(M.K==1){u 1G=1o;1o=1G.h;5v=1G.s;3v=1G.l;bL=1G.a}u 1v;u 8A;u 1F;if(5v===0){1v=3v;8A=3v;1F=3v}N{u m2;if(3v<=0.5){m2=3v*(1+5v)}N{m2=3v+5v-(3v*5v)}u m1=(2*3v)-m2;u f=B.V.hc;u h6=1o*6;1v=f(m1,m2,h6+2);8A=f(m1,m2,h6);1F=f(m1,m2,h6-2)}F{r:1v,g:8A,b:1F,a:bL}},bA:G(1v,4K,1F,bK){if(M.K==1){u 1B=1v;1v=1B.r;4K=1B.g;1F=1B.b;bK=1B.a}u 29=28.29(28.29(1v,4K),1F);u 2a=28.2a(28.2a(1v,4K),1F);u 1o;u 8z;u hb=29;if(2a==29){1o=0;8z=0}N{u 6H=(29-2a);8z=6H/29;if(1v==29){1o=(4K-1F)/6H}N{if(4K==29){1o=2+((1F-1v)/6H)}N{1o=4+((1v-4K)/6H)}}1o/=6;if(1o<0){1o+=1}if(1o>1){1o-=1}}F{h:1o,s:8z,v:hb,a:bK}},bC:G(1v,4J,1F,bI){if(M.K==1){u 1B=1v;1v=1B.r;4J=1B.g;1F=1B.b;bI=1B.a}u 29=28.29(1v,28.29(4J,1F));u 2a=28.2a(1v,28.2a(4J,1F));u 1o;u 6G;u bJ=(29+2a)/2;u 4I=29-2a;if(4I===0){1o=0;6G=0}N{if(bJ<=0.5){6G=4I/(29+2a)}N{6G=4I/(2-29-2a)}if(1v==29){1o=(4J-1F)/4I}N{if(4J==29){1o=2+((1F-1v)/4I)}N{1o=4+((1v-4J)/4I)}}1o/=6;if(1o<0){1o+=1}if(1o>1){1o-=1}}F{h:1o,s:6G,l:bJ,a:bI}},6E:G(1P){1P=28.ha(1P);u bH=1P.1l(16);if(1P<16){F"0"+bH}F bH},2d:G(){u m=B.J;D.V.h9=m.1O(D.V.bG,D.V,"1B","3Y",[1/3h,1/3h,1/3h,1]);D.V.h8=m.1O(D.V.bG,D.V,"1G","4H",[1/bF,0.bE,0.bE,1]);u 4G=1/3;u bD={8y:[0,0,0],1F:[0,0,1],gY:[0.6,0.4,0.2],gX:[0,1,1],sJ:[4G,4G,4G],gR:[0.5,0.5,0.5],bx:[0,1,0],sI:[2*4G,2*4G,2*4G],gN:[1,0,1],gL:[1,0.5,0],gK:[0.5,0,0.5],1v:[1,0,0],aP:[0,0,0,0],4F:[1,1,1],gI:[1,1,0]};u h7=G(1b,r,g,b,a){u W=D.3Y(r,g,b,a);D[1b]=G(){F W};F W};R(u k in bD){u 1b=k+"V";u h5=m.2o([h7,D.V,1b],bD[k]);D.V[1b]=m.1O.1w(O,h5)}u h0=G(){R(u i=0;i<M.K;i++){if(!(M[i]2C V)){F 1m}}F 1h};u gZ=G(a,b){F a.h4(b)};m.3f(D);m.5u(D.V.1r,h0,gZ);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)}}});B.V.1z=["V"];B.V.1W=["6F","bC","bB","bA","bz","6E"];B.V.2d();B.J.2Y(D,B.V);B.V.V.by={sH:"#sG",sF:"#sE",sD:"#gW",sC:"#sB",sA:"#sz",sy:"#sx",sw:"#sv",8y:"#su",st:"#sr",1F:"#sq",sp:"#so",gY:"#sn",sm:"#sl",sk:"#sj",si:"#sh",sg:"#se",sd:"#sc",sb:"#sa",s9:"#s8",s7:"#s6",gX:"#gW",s5:"#s4",s3:"#s2",s1:"#s0",rZ:"#gV",rY:"#rX",rW:"#gV",rV:"#rU",rT:"#rS",rR:"#rQ",rP:"#rO",rN:"#rM",gU:"#rL",rK:"#rJ",rI:"#rH",rG:"#rF",rE:"#gT",rD:"#gT",rC:"#rB",rA:"#rz",ry:"#rx",rw:"#rv",ru:"#gS",rt:"#gS",rs:"#rr",rq:"#rp",ro:"#rn",rm:"#rl",rk:"#gM",rj:"#ri",rh:"#rg",rf:"#rd",rc:"#rb",gR:"#gQ",bx:"#ra",r9:"#r8",r7:"#gQ",r6:"#r5",r4:"#r3",r2:"#r1",r0:"#qZ",qY:"#qX",qW:"#qV",qU:"#qT",qS:"#qR",qQ:"#qP",qO:"#qN",qM:"#qL",qK:"#qJ",qI:"#qH",qG:"#qF",qE:"#gP",qD:"#qC",qB:"#gP",qA:"#qz",qy:"#qx",qw:"#qv",qu:"#qt",qr:"#gO",qq:"#gO",qp:"#qo",qn:"#qm",ql:"#qk",qj:"#qi",qh:"#qg",gN:"#gM",qf:"#qe",qd:"#qc",qb:"#qa",q9:"#q8",q7:"#q6",q5:"#q4",q3:"#q2",q1:"#q0",pZ:"#pY",pX:"#pW",pV:"#pU",pT:"#pS",pR:"#pQ",pP:"#pO",pN:"#pM",pL:"#pK",pJ:"#pI",pH:"#pG",pF:"#pE",gL:"#pD",pC:"#pB",pA:"#pz",py:"#pw",pv:"#pu",pt:"#ps",pr:"#pq",pp:"#po",pn:"#pm",pl:"#pj",pi:"#ph",pg:"#pf",pe:"#pd",gK:"#pc",1v:"#pb",pa:"#p9",p8:"#p7",p6:"#p5",p4:"#p3",p2:"#p1",p0:"#oZ",oY:"#oX",oW:"#oV",oU:"#oT",oS:"#oR",oQ:"#oP",oO:"#gJ",oN:"#gJ",oM:"#oL",oK:"#oJ",oI:"#oH",oG:"#oF",oE:"#oD",oC:"#oB",oA:"#oz",oy:"#ox",ow:"#ov",ou:"#ot",4F:"#os",oq:"#op",gI:"#oo",om:"#ok"};if(H(1q)!="L"){1q.2X("B.1u");1q.2M("B.J");1q.2M("B.S")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.S",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1u 3F on B.J!"}1f{if(H(B.S)=="L"){14""}}1e(e){14"B.1u 3F on B.S!"}if(H(B.1u)=="L"){B.1u={}}B.1u.1r="B.1u";B.1u.1Y="1.3.1";B.1u.4x=[];B.1u.bq=G(1d,e){D.1L=e||2O.6D;D.gH=1d};B.J.2l(B.1u.bq.1U,{1K:G(){u U=B.J.U;u 1y="{6D(): "+U(D.6D())+", 1d(): "+U(D.1d())+", 1J(): "+U(D.1J())+", 8x(): "+U(D.8x())+", 4E(): "+"{8w: "+U(D.4E().8w)+", 8v: "+U(D.4E().8v)+", 8u: "+U(D.4E().8u)+", 2P: "+U(D.4E().2P)+", bw: "+U(D.4E().bw)+"}";if(D.1J()&&D.1J().2A("2h")===0){1y+=", 2h(): {3J: "+U(D.2h().3J)+", 1n: "+U(D.2h().1n)+"}"}if(D.1J()&&(D.1J().2A("3I")===0||D.1J().2A("gE")!=-1||D.1J()=="gD")){1y+=", 3I(): {4D: "+U(D.3I().4D)+", 6A: "+U(D.3I().6A);if(D.1J()!="gC"){1y+=", 2e: {2I: "+U(D.3I().2e.2I)+", 6v: "+U(D.3I().2e.6v)+", 3g: "+U(D.3I().2e.3g)+"}}"}N{1y+="}"}}if(D.1J()=="gG"||D.1J()=="gF"){1y+=", 6C(): "+U(D.6C())}1y+="}";F 1y},1l:G(){F D.1K()},1d:G(){F D.gH},6D:G(){F D.1L},1J:G(){F D.1L.1J||L},8x:G(){F D.1L.8x||D.1L.oj},6C:G(){if(D.1J()=="gG"){F(D.1L.6C||D.1L.aW)}N{if(D.1J()=="gF"){F(D.1L.6C||D.1L.oi)}}F L},4E:G(){u m={};m.8w=D.1L.oh;m.8v=D.1L.og;m.8u=D.1L.oe||1m;m.2P=D.1L.od;m.bw=m.8w||m.8v||m.2P||m.8u;F m},2h:G(){u k={};if(D.1J()&&D.1J().2A("2h")===0){if(D.1J()=="oc"||D.1J()=="ob"){k.3J=D.1L.8t;k.1n=(B.1u.5r[k.3J]||"oa");F k}N{if(D.1J()=="o9"){k.3J=0;k.1n="";if(H(D.1L.6B)!="L"&&D.1L.6B!==0&&!B.1u.bv[D.1L.6B]){k.3J=D.1L.6B;k.1n=bu.bt(k.3J)}N{if(D.1L.8t&&H(D.1L.6B)=="L"){k.3J=D.1L.8t;k.1n=bu.bt(k.3J)}}F k}}}F L},3I:G(){u m={};u e=D.1L;if(D.1J()&&(D.1J().2A("3I")===0||D.1J().2A("gE")!=-1||D.1J()=="gD")){m.6A=Y B.S.5t(0,0);if(e.6z||e.6x){m.6A.x=(!e.6z||e.6z<0)?0:e.6z;m.6A.y=(!e.6x||e.6x<0)?0:e.6x}m.4D=Y B.S.5t(0,0);if(e.8s||e.8r){m.4D.x=(!e.8s||e.8s<0)?0:e.8s;m.4D.y=(!e.8r||e.8r<0)?0:e.8r}N{u de=B.S.1Z.7Z;u b=B.S.1Z.5s;m.4D.x=e.6z+(de.6y||b.6y)-(de.8q||b.8q);m.4D.y=e.6x+(de.4C||b.4C)-(de.8p||b.8p)}if(D.1J()!="gC"){m.2e={};m.2e.2I=1m;m.2e.3g=1m;m.2e.6v=1m;if(e.6w){m.2e.2I=(e.6w==1);m.2e.6v=(e.6w==2);m.2e.3g=(e.6w==3)}N{m.2e.2I=!!(e.2e&1);m.2e.3g=!!(e.2e&2);m.2e.6v=!!(e.2e&4)}}F m}F L},2J:G(){D.8o();D.8n()},8o:G(){if(D.1L.8o){D.1L.8o()}N{D.1L.o8=1h}},8n:G(){if(D.1L.8n){D.1L.8n()}N{D.1L.o7=1m}}});B.1u.bv={3:"gz",o6:"gA",o5:"gy",o4:"gx",o3:"gw",o2:"gv",o1:"gu",o0:"gs",nZ:"gr",nY:"gq",nX:"gp",nW:"go"};R(i=gB;i<=nV;i++){B.1u.bv[i]="gk"+(i-gB+1)}B.1u.5r={8:"nU",9:"nT",12:"gA",13:"gz",16:"nS",17:"nR",18:"nQ",19:"nP",20:"nO",27:"nN",32:"nM",33:"gy",34:"gx",35:"gw",36:"gv",37:"gu",38:"gs",39:"gr",40:"gq",44:"nL",45:"gp",46:"go",59:"gn",91:"nK",92:"nJ",93:"nI",nH:"nG",nF:"nE",nD:"nC-gm",nB:"nA",nz:"ny",nx:"nw",nv:"nu",nt:"gn",ns:"nr",nq:"np",nn:"nm-gm",nl:"nk",nj:"ni",nh:"ng",nf:"nd",nc:"nb",na:"n9",n8:"n7"};R(u i=48;i<=57;i++){B.1u.5r[i]="gl"+(i-48)}R(i=65;i<=90;i++){B.1u.5r[i]="gl"+bu.bt(i)}R(i=96;i<=n6;i++){B.1u.5r[i]="n5"+(i-96)}R(i=gj;i<=n4;i++){B.1u.5r[i]="gk"+(i-gj+1)}B.J.2l(B.1u,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},g7:G(){u I=B.1u;u bs=I.4x;R(u i=0;i<bs.K;i++){I.6t(bs[i])}gi I.4x;1f{2O.gh=L}1e(e){}1f{2O.g8=L}1e(e){}},gb:G(1d,1A,1i,gg){u E=B.1u.bq;if(!gg){F B.J.1O(1A,1i)}1i=1i||1d;if(H(1A)=="1n"){F G(gf){1i[1A].1w(1i,[Y E(1d,gf)])}}N{F G(gd){1A.1w(1i,[Y E(1d,gd)])}}},6s:G(1d,2D,5q,4B){1d=B.S.1E(1d);u I=B.1u;if(H(2D)!="1n"){14 Y 2x("\'2D\' 5p be a 1n")}u 1i=O;u 1A=O;if(H(4B)!="L"){1i=5q;1A=4B;if(H(4B)=="1n"){if(H(5q[4B])!="G"){14 Y 2x("\'bp\' 5p be a G on \'gc\'")}}N{if(H(4B)!="G"){14 Y 2x("\'bp\' 5p be a G or 1n")}}}N{if(H(5q)!="G"){14 Y 2x("\'gc\' 5p be a G if \'bp\' is 2E n3")}N{1A=5q}}if(H(1i)=="L"||1i===O){1i=1d}u bm=!!(1d.bo||1d.bn);u 8m=I.gb(1d,1A,1i,bm);if(1d.bo){1d.bo(2D.3H(2),8m,1m)}N{if(1d.bn){1d.bn(2D,8m)}}u bk=[1d,2D,8m,bm,5q,4B];I.4x.1c(bk);F bk},6t:G(6u){if(!6u[3]){F}u 1d=6u[0];u 2D=6u[1];u bj=6u[2];if(1d.ga){1d.ga(2D.3H(2),bj,1m)}N{if(1d.g9){1d.g9(2D,bj)}N{14 Y 2x("\'1d\' 5p be a S n0")}}},8j:G(bh){u I=B.1u;u 5o=I.4x;u m=B.J;if(M.K>1){u 1d=B.S.1E(M[0]);u 2D=M[1];u 1i=M[2];u 1A=M[3];R(u i=5o.K-1;i>=0;i--){u o=5o[i];if(o[0]===1d&&o[1]===2D&&o[4]===1i&&o[5]===1A){I.6t(o);5o.4y(i,1);F 1h}}}N{u 5n=m.bi(5o,bh);if(5n>=0){I.6t(bh);5o.4y(5n,1);F 1h}}F 1m},8i:G(1d,2D){1d=B.S.1E(1d);u m=B.J;u 8l=m.bg(m.1R(O,M,1));u I=B.1u;u bd=I.6t;u 4z=I.4x;if(8l.K===0){R(u i=4z.K-1;i>=0;i--){u 4A=4z[i];if(4A[0]===1d){bd(4A);4z.4y(i,1)}}}N{u bf={};R(u i=0;i<8l.K;i++){bf[8l[i]]=1h}R(u i=4z.K-1;i>=0;i--){u 4A=4z[i];if(4A[0]===1d&&4A[1]in bf){bd(4A);4z.4y(i,1)}}}},8h:G(1d,2D){u bc=B.1u.4x;1d=B.S.1E(1d);u 3G=B.J.1R(O,M,2);u 5m=[];R(u i=0;i<bc.K;i++){u 8k=bc[i];if(8k[0]===1d&&8k[1]===2D){1f{8k[2].1w(1d,3G)}1e(e){5m.1c(e)}}}if(5m.K==1){14 5m[0]}N{if(5m.K>1){u e=Y 2x("mZ bb mY in mX \'2D\', mW bb mV");e.bb=5m;14 e}}}});B.1u.1W=[];B.1u.1z=["6s","8j","8h","8i"];B.1u.2d=G(2m){u m=B.J;D.1Z=2v;D.3X=2m;1f{D.6s(2O,"g8",D.g7)}1e(e){}D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.1u.2d(D);if(!B.3d){6s=B.1u.6s;8j=B.1u.8j;8i=B.1u.8i;8h=B.1u.8h}B.J.2Y(D,B.1u);if(H(1q)!="L"){1q.2X("B.1X");1q.2M("B.J");1q.2M("B.S");1q.2M("B.V")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.S",[]);1x.26("B.V",[])}1f{if(H(B.J)=="L"||H(B.S)=="L"||H(B.V)=="L"){14""}}1e(e){14"B.1X 3F on B.J, B.S 3W B.V!"}if(H(B.1X)=="L"){B.1X={}}B.1X.1r="B.1X";B.1X.1Y="1.3.1";B.1X.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1X.1l=G(){F D.1K()};B.1X.aI=G(e,g6){e=B.S.1E(e);D.fN(g6);if(D.1S.fL){e=D.g5(e)}u 4w=D.1S.3U;u C=B.V.V;if(D.1S.3U=="aW"){4w=C.ba(e)}N{if(!(4w 2C C)){4w=C.8f(4w)}}D.82=(4w.6r().a<=0);u 5l=D.1S.aV;if(D.1S.aV=="fM"){5l=C.ba(e.8g)}N{if(!(5l 2C C)){5l=C.8f(5l)}}D.g3(e,4w,5l)};B.1X.aI.1U={g5:G(e){u mU=e.3t;u 1N=B.S.b9();if(H(1N.5k)=="L"||1N.5k===O){F e}u 4v=1N.5k.g4(e,O);if(H(4v)=="L"||4v===O){F e}u b8=B.S.6m({"1T":{3u:"8c",mT:4v.6q("6p-3D"),85:4v.6q("6p-3g"),mS:4v.6q("6p-6f"),86:4v.6q("6p-2I"),6p:"2N"}});b8.6o=e.6o;e.6o="";e.2c(b8);F e},g3:G(e,b7,8e){if(D.1S.3E){D.g2(e,8e)}if(D.fy()){D.fX(e,b7,8e)}if(D.fx()){D.fV(e,b7,8e)}},g2:G(el,g1){u b6="6l 8a "+D.aQ(g1);u g0="3E-2I: "+b6;u fZ="3E-3g: "+b6;u fY="1T=\'"+g0+";"+fZ+"\'";el.6o="<4u "+fY+">"+el.6o+"</4u>"},fX:G(el,fW,b5){u b4=D.b1(b5);R(u i=0;i<D.1S.89;i++){b4.2c(D.b0(fW,b5,i,"3D"))}el.1T.mR=0;el.mQ(b4,el.6n)},fV:G(el,fU,b3){u b2=D.b1(b3);R(u i=(D.1S.89-1);i>=0;i--){b2.2c(D.b0(fU,b3,i,"6f"))}el.1T.mP=0;el.2c(b2)},b1:G(fT){u 2q=B.S;F 2q.6m({1T:{aZ:fT.1l()}})},b0:G(aY,fQ,n,aX){u 6k=B.S.8d();u 2p=6k.1T;2p.aZ=aY.1l();2p.3u="8c";2p.3V="6l";2p.fS="fR";2p.mO="6l";u 8b=D.aQ(aY,fQ);if(D.1S.3E&&n===0){2p.mN="8a";2p.mM="6l";2p.84="2N";2p.83="2N";2p.mL="2N";2p.3V="2N";2p.fP=8b.1l()}N{if(8b){2p.fP=8b.1l();2p.mK="8a";2p.mJ="2N 6l"}}if(!D.1S.4r&&(n==(D.1S.89-1))){2p.3V="fO"}D.fI(6k,n,aX);D.fG(6k,n,aX);F 6k},fN:G(fK){D.1S={6g:"1p",3U:"aW",aV:"fM",5j:1h,3E:1m,4r:1m,fL:1m};B.J.2l(D.1S,fK);D.1S.89=(D.1S.4r?2:4)},aL:G(){u 88=D.1S.6g;if(D.6h(88,"1p","3D")){F""}u aU=(88.2A("tl")!=-1);u aT=(88.2A("tr")!=-1);if(aU&&aT){F""}if(aU){F"2I"}if(aT){F"3g"}F""},aK:G(){u 87=D.1S.6g;if(D.6h(87,"1p","6f")){F""}u aS=(87.2A("bl")!=-1);u aR=(87.2A("br")!=-1);if(aS&&aR){F""}if(aS){F"2I"}if(aR){F"3g"}F""},aQ:G(aN,aO){if(aN=="aP"){F aO}N{if(D.1S.3E){F D.1S.3E}N{if(D.1S.5j){F aO.fJ(aN)}}}F""},fI:G(el,n,fH){u 6j=D.fE(n)+"px";u aM=(fH=="3D"?D.aL():D.aK());u 4t=el.1T;if(aM=="2I"){4t.86=6j;4t.85="2N"}N{if(aM=="3g"){4t.85=6j;4t.86="2N"}N{4t.86=6j;4t.85=6j}}},fG:G(el,n,fF){u 6i=D.fz(n)+"px";u aJ=(fF=="3D"?D.aL():D.aK());u 4s=el.1T;if(aJ=="2I"){4s.84=6i;4s.83="2N"}N{if(aJ=="3g"){4s.83=6i;4s.84="2N"}N{4s.84=6i;4s.83=6i}}},fE:G(n){if(D.82){F 0}u o=D.1S;if(o.4r&&o.5j){u fD=[1,0];F fD[n]}N{if(o.4r){u fC=[2,1];F fC[n]}N{if(o.5j){u fB=[3,2,1,0];F fB[n]}N{u fA=[5,3,2,1];F fA[n]}}}},fz:G(n){u o=D.1S;u 5i;if(o.4r&&(o.5j||D.82)){F 1}N{if(o.4r){5i=[1,0]}N{if(o.5j){5i=[2,1,1,1]}N{if(o.3E){5i=[0,2,0,0]}N{if(D.82){5i=[5,3,2,1]}N{F 0}}}}}F 5i[n]},6h:G(1y){R(u i=1;i<M.K;i++){if(1y.2A(M[i])!=-1){F 1h}}F 1m},fy:G(){F D.6h(D.1S.6g,"1p","3D","tl","tr")},fx:G(){F D.6h(D.1S.6g,"1p","6f","bl","br")},mI:G(el){F(el.5h.K==1&&el.5h[0].3T==3)}};B.1X.aF=G(e,fw){Y B.1X.aI(e,fw)};B.1X.fs=G(fv,fu,ft){u aG=B.S.aH(fv,fu);R(u i=0;i<aG.K;i++){B.1X.aF(aG[i],ft)}};B.1X.V=B.V.V;B.1X.mH=B.S.4q;B.1X.2d=G(){u m=B.J;m.3f(D);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)}};B.1X.1z=["aF","fs"];B.1X.1W=[];B.1X.2d();B.J.2Y(D,B.1X);if(H(B)=="L"){B={}}if(H(B.B)=="L"){B.B={}}B.B.1r="B.B";B.B.1Y="1.3.1";B.B.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.B.1l=G(){F D.1K()};B.B.aA=["J","15","1H","1D","1s","1k","S","1I","V","1u","1X"];if(H(1x)!="L"||H(1q)!="L"){if(H(1q)!="L"){1q.2X("B.B");1q.2M("B.*")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.15",[]);1x.26("B.1H",[]);1x.26("B.1D",[]);1x.26("B.1s",[]);1x.26("B.1k",[]);1x.26("B.S",[]);1x.26("B.1I",[]);1x.26("B.V",[]);1x.26("B.1u",[]);1x.26("B.1X",[])}(G(){u 6e=B.J.1R;u I=B.B;u aE=I.aA;u aD=[];u aC=[];u 81={};u i,k,m,1p;R(i=0;i<aE.K;i++){m=B[aE[i]];6e(aD,m.1z);6e(aC,m.1W);R(k in m.2k){81[k]=6e(81[k],m.2k[k])}1p=m.2k[":1p"];if(!1p){1p=6e(O,m.1z,m.1W)}u j;R(j=0;j<1p.K;j++){k=1p[j];I[k]=m[k]}}I.1z=aD;I.1W=aC;I.2k=81}())}N{if(H(B.3d)=="L"){B.3d=1h}(G(){u 80=2v.fr("7W");u ay="fq://fp.mG.fo/mF/mE/mD.is.aB.mC";u 2w=O;u ax=O;u az={};u i;R(i=0;i<80.K;i++){u 1d=80[i].fm("1d");if(!1d){2V}az[1d]=1h;if(1d.3C(/B.js$/)){2w=1d.2W(0,1d.mB("B.js"));ax=80[i]}}if(2w===O){F}u 6d=B.B.aA;R(u i=0;i<6d.K;i++){if(B[6d[i]]){2V}u 7Y=2w+6d[i]+".js";if(7Y in az){2V}if(2v.7Z&&2v.7Z.mA==ay){u s=2v.mz(ay,"7W");s.4p("id","my"+2w+6d[i]);s.4p("1d",7Y);s.4p("1J","mx/x-fk");ax.3t.2c(s)}N{2v.fl("<7W 1d=\\""+7Y+"\\" 1J=\\"7X/fk\\"></7W>")}}})()}',62,1976,'||||||||||||||||||||||||||||||var|||||||MochiKit||this||return|function|typeof|self|Base|length|undefined|arguments|else|null||elem|for|DOM||repr|Color|rval|res|new||||||throw|Iter|||||next|name|push|src|catch|try|lst|true|obj|node|Async|toString|false|string|hue|all|dojo|NAME|Format|msg|Signal|red|apply|JSAN|str|EXPORT|func|rgb|_425|DateTime|getElement|blue|hsl|Logging|LoggingPane|type|__repr__|_event|while|doc|bind|num|iter|extend|options|style|prototype|seq|EXPORT_OK|Visual|VERSION|_document||_434||replace|forwardCall|StopIteration|use||Math|max|min|join|appendChild|__new__|button|compare|date|key|val|_329|EXPORT_TAGS|update|win|pair|concat|_596|dom|map|req|Deferred|sync|document|base|Error|number|partial|indexOf||instanceof|sig|not|cls|list|fired|left|stop|break|logger|require|0px|window|shift|hsv|split|createElement|_423|callee|continue|substring|provide|_exportSymbols|ccc||_464|||||||||step|pred|_51|__compat__|common|nameFunctions|right|255|_517|case|100|_loggingPane|value|object|callback|TypeError|_251|_246|_113|parentNode|display|_522|parseInt|cssText|wrap|info|isArrayLike|end|match|top|border|depends|args|substr|mouse|code|_519|_443|className|level|err|frac|Date|_135|_85|nodeType|color|height|and|_window|fromRGB|charAt||asHSL|_444|message||||filter||LogMessage|AdapterRegistry|_366|imap|NotFound|locked|counter|_262|_messages|operator|cmp|_165|_161|pairs|arr|_52|setAttribute|computedStyle|compact|_614|_610|div|_576|_572|_observers|splice|_565|_566|_555|scrollTop|page|modifier|white|_541|fromHSL|_539|_535|_528|clone|parseFloat|_505|pre|_499|_497|_427|createTextNode|_446|attributeArray|_388|_379|updateNodeAttributes|_341|_326||box|errback|results|paused|chain|_285||ofs||NamedError|_175|_147|_122|_83|_54|_17|childNodes|_619|blend|defaultView|_574|_569|idx|_562|must|_554|_specialKeys|body|Coordinates|registerComparator|_521|_516|hex|mid|_478|width|loggingPane|LogLevel|nwin|head|url|setElementClass|callStack|path|dest|_359|boolean|register|Dimensions|DeferredLock|_313|addCallback|_310|waiting|onreadystatechange|_290|LOCALE|year|printfire|_214|log|_213|_211|pos|_155|_153||typeMatcher|listMinMax|_114|_40|itr|typ|_19|_634|_625|bottom|corners|_hasString|_612|_608|_595|1px|DIV|firstChild|innerHTML|padding|getPropertyValue|asRGB|connect|_disconnect|_559|middle|which|clientY|scrollLeft|clientX|client|charCode|relatedTarget|event|toColorPart|clampColorComponent|_537|_534|toFixed|_468|buildAndApplyFilter|_442|_441|_440|_439|position|_463|_447|removeChild|_449|uid|_428|_426|compliant|attributes|_422|_409|_412|_400|_395|_390|_389|_377|_375|_363|attr|ctx|repeat|_340|_339|isNotEmpty|_335|_333|opera|DeferredList|ret|_309|silentlyCancelled|canceller|_nextId|Array|_293|XMLHttpRequest|chained|_281|tail|_252|_225|msec|day|month|iso|Logger|_208|listeners|_200|_198|_194|_196|reduce|range|_169|_162|truth|registerRepr|_121|_70|_58|_56|_47|_45|_41|_13|_1|script|text|uri|documentElement|_630|_629|isTransparent|borderRightWidth|borderLeftWidth|marginRight|marginLeft|_602|_599|numSlices|solid|_597|block|SPAN|_579|fromString|offsetParent|signal|disconnectAll|disconnect|_570|_563|_557|preventDefault|stopPropagation|clientTop|clientLeft|pageY|pageX|keyCode|meta|ctrl|alt|target|black|_532|_524|floor|_513|_512|_500|_495|toLowerCase|_487|DEBUG|INFO|WARNING|FATAL|ERROR|colorTable|logFont|closed|inline|onclick|_438|_437|_445|RegExp|_452|space|title|updatetree|||||withDocument|withWindow||setDisplayForElement|none|renames|forEach|domConverters|escapeHTML|addElementClass|removeElementClass|once|_378|_380|_376|appendChildNodes|coerceToDOM|_355|opt|clientWidth|opacity|GenericError|fail|resultList|_307|_301|_fire|can|addCallbacks|_resback|percent|decimal|separator|twoDigitFloat|_274|_273|_264|_257|_250|_249|_254|_248|_243|_242|fmt|_240|_245|getTime|sec|hour|_209|slice|_206|iterateNextIter|registerIteratorFactory|arrayLikeIter|iteratorRegistry|takewhile|ifilterfalse|ifilter|_181|_176|_168|_166|_159|_tee|deque|arg|fun|jsonRegistry|reprString|reprRegistry|comparatorRegistry|urlEncode|_110|_108|cur|_95|_87|_71|im_preargs||_53|_57|_46|present|like|array|Argument|_15|_12|_632|_631|_633|SUBMODULES|only|_628|_627|_626|roundElement|_624|getElementsByTagAndClassName|_RoundCorners|_613|_whichSideBottom|_whichSideTop|_609|_605|_606|transparent|_borderColor|_604|_603|_601|_600|bgColor|fromElement|_594|_592|backgroundColor|_createCornerSlice|_createCorner|_590|_589|_587|_586|_581|_578|_577|currentDocument|fromBackground|errors|_568|_564||sigs|flattenArguments|_561|findIdentical|_560|_558||_556|attachEvent|addEventListener|funcOrStr|Event||_548|fromCharCode|String|_specialMacKeys|any|green|_namedColors|hsvToRGB|rgbToHSV|hslToRGB|rgbToHSL|_542|01|360|_fromColorString|_540|_536|_538|_529|_523|_518|fromComputedStyle|_511|_507|_508|_506|_501|fromHexString|_498|_496|_486|__class__|createLoggingPane|_459|_461|font|_462|_430|_435|1000|index|_460|getMessages|removeListener|_451||_457|_450|infore|_448|_456|logDebug|offsetHeight|span|input|_436|TR||HTML|open|alert|currentWindow|swapDOM|SELECT|FORM|INPUT|createDOMFunc|ignoreAttr|_421|call|_417|_410|_415|nodeName|_414|_413|emitHTML|good|_406|_399|_397|_393|_392|addLoadEvent|addToCallStack|_387|_386|_381|_382|_383|_373|_372|_369|createDOM|_365|Function|_360|_362|_358|_344|nodeWalk|formContents|_337|_338|_334|_332|offsetTop|offsetLeft|visibility|parentElement|||XMLHttpRequestError|BrowserComplianceError|CancelledError|AlreadyCalledError|evalJSONRequest|sendXMLHttpRequest|wait|doSimpleXMLHttpRequest|getXMLHttpRequest|succeed|_312|finishedCount|_308|_cbDeferred|_303|_297|queryString|_nothing|_289|XMLHTTP|ActiveXObject|eval|_284|_check|error|_279|default|rstrip|lstrip|formatLocale|roundToFixed|truncToFixed|_276|pow|_272|_271|_270|sign|_265|_263|tmp|_238|_232|toISODate|toISOTime|getFullYear|getDate|getMonth|_230|_padTwo|_228|useNativeConsole|_212|compareLogMessage|isLogMessage|unshift|_207||maxSize|_202|_199|logLevelAtLeast|console|hasIterateNext|iterateNext|arrayLike|groupby||exhaust|tee|dropwhile|applymap||islice|izip|cycle|count||_189|_188|_183|_185|_184|_186|_187|_182|identity|fetch|_180|_177|listMin|reprNumber|reprArrayLike|compareArrayLike|compareDateLike|isDateLike|findValue|_128|__export__|keyComparator|_124|_118|_93|_94|_90|_88|_84|_77|_68|_67|_66|_65|_60|im_func|_55|im_self|_48|_44|_42|_39|_36|_33|_27|_26|_25|_22|_24|_20|javascript|write|getAttribute||org|www|http|getElementsByTagName|roundClass|_623|_622|_621|_620|_isBottomRounded|_isTopRounded|_borderSize|_618|_617|_616|_615|_marginSize|_611|_setBorder|_607|_setMargin|blendedColor|_598|__unstable__wrapElement|fromParent|_setOptions|2px|borderColor|_593|hidden|overflow|_591|_588|_roundBottomCorners|_585|_roundTopCorners|_584|_583|_582|_580|_renderBorder|_roundCornersImpl|getComputedStyle|_doWrap|_571|_unloadCache|onunload|detachEvent|removeEventListener|_listener|objOrFunc|_552||_551|_549|onload|delete|112|KEY_F|KEY_|MINUS|KEY_SEMICOLON|KEY_DELETE|KEY_INSERT|KEY_ARROW_DOWN|KEY_ARROW_RIGHT|KEY_ARROW_UP||KEY_ARROW_LEFT|KEY_HOME|KEY_END|KEY_PAGE_DOWN|KEY_PAGE_UP|KEY_ENTER|KEY_NUM_PAD_CLEAR|63236|mousemove|contextmenu|click|mouseout|mouseover|_src|yellow|708090|purple|orange|ff00ff|magenta|778899|d3d3d3|808080|gray|696969|2f4f4f|darkred|a9a9a9|00ffff|cyan|brown|_547|_546||||compareRGB|_545||_543|fromHSLString|fromRGBString|round|_533|_hslValue|switch|background|_503|_504||fromName|_488|col|toRGBString|_hexString|_rgbString|_hslString|toPrecision|isLight||_481|_477|_476|_475|_474|_473|_469|_466|closePane|_458|onkeypress|_454|addListener|_455|close|test|scrollHeight|option|word|moz|_431|getElementById|html|pop|200|_|removeElement|showElement|hideElement|CANVAS|STRONG|FIELDSET|LEGEND|OPTGROUP|OPTION|TEXTAREA|LABEL|HR|BR|H3|H2|H1|PRE|TT|BUTTON|IMG|TH||TABLE||TFOOT|THEAD|TBODY|TD|LI|OL|||UL|checked|class|ignoreAttrFilter||_424|_419|nodeValue|scrapeText|_416|_418|sort|_411|toHTML|_404|hasElementClass|_403|_402|_401|swapElementClass|_398|_394|toggleElementClass|_391|focusOnLoad|_newCallStack|currentStyle|_371|replaceChildNodes|_364|_361|getNodeAttribute|_357|setNodeAttribute|_354|_352|_350|_353|toDOM|_346|_345|registerDOMConverter|selectedIndex|setElementPosition|setElementDimensions|tagName|absolute|getBoxObjectFor|getBoundingClientRect|elementPosition|_325|_324|_322|_323|offsetWidth|elementDimensions|clientHeight|innerWidth|getViewportDimensions|setOpacity|status|_317|deferred|_316|_newNamedError|maybeDeferred||gatherResults|callLater|loadJSONDoc|_311|consumeErrors|fireOnOneErrback|fireOnOneCallback|addErrback|_305|_304|_306|unlocked|release|_300|_299|_298|_296|_xhr_onreadystatechange|_xhr_canceller|304|responseText|Msxml2|addBoth|_pause|_continue|result|the|are|they|instances|_unpause|cancel|_280|_278|en_US|strip|percentFormat|twoDigitAverage|numberFormatter|_277|_275|isNaN|_259|_258|_260|_255|_253|_numberFormatter|_241|_239|_237|_236|_235|_234|_233|_231|toAmericanDate|toPaddedAmericanDate|americanDate|toISOTimestamp|isoTimestamp|isoDate|foot|sep||60000|_221|_isoRegexp|dispatchEvent|createEvent|warning|logWarning|fatal|logFatal|debug|logError|baseLog|_210|getMessageText|logToConsole|dispatchListeners|_204|_203|ident|_201|postError|alertListener|_197|_192|groupby_as_array|iextend|some|reversed|sorted|every|sum|_190|eat|_174|_173|_172|_171|_167|_163|_158|_157|_151|_144|_141||_139|_136|_134||_133|_132|zip|merge|isUndefined|isCallable|listMax|_131|_130|encodeURIComponent||_127|method|parseQueryString|evalJSON|registerJSON|serializeJSON|objMin|objMax|reverseKeyComparator|arrayEqual|objEqual|bindMethods|xfilter|xmap|isEmpty|isNull|isUndefinedOrNull|itemgetter|items|keys|setdefault|_126|_120|decodeURIComponent|_119|len|_109|_107|_104|_105|_101|_102|_98|||_100|_97|_96|_91|json|__json__|_82|_81|_80|_79|_76||_75|_74|_73|_69|_primitives|_64|_63||_62|_61|_59|_wrapDumbFunction|_49|_50|_31|_30|_21|_7|application|MochiKit_|createElementNS|namespaceURI|lastIndexOf|xul|there|gatekeeper|keymaster|mozilla|getElementsComputedStyle|_hasSingleTextChild|borderWidth|borderStyle|borderBottomWidth|borderTopWidth|borderTopStyle|fontSize|paddingBottom|insertBefore|paddingTop|marginBottom|marginTop|_575|property|see|handling|thrown|Multiple|element|||given|123|KEY_NUM_PAD_|105|KEY_APOSTROPHE|222|KEY_RIGHT_SQUARE_BRACKET|221|KEY_REVERSE_SOLIDUS|220|KEY_LEFT_SQUARE_BRACKET||219|KEY_GRAVE_ACCENT|192|KEY_SOLIDUS|191|KEY_FULL_STOP|190|KEY_HYPHEN|189||KEY_COMMA|188|KEY_EQUALS_SIGN|187|186|KEY_SCROLL_LOCK|145|KEY_NUM_LOCK|144|KEY_NUM_PAD_SOLIDUS|111|KEY_NUM_PAD_FULL_STOP|110|KEY_NUM_PAD_HYPHEN|109|KEY_NUM_PAD_PLUS_SIGN|107|KEY_NUM_PAD_ASTERISK|106|KEY_SELECT|KEY_WINDOWS_RIGHT|KEY_WINDOWS_LEFT|KEY_PRINT_SCREEN|KEY_SPACEBAR|KEY_ESCAPE|KEY_CAPS_LOCK|KEY_PAUSE|KEY_ALT|KEY_CTRL|KEY_SHIFT|KEY_TAB|KEY_BACKSPACE|63242|63272|63302|63233|63235|63232|63234|63273|63275|63277|63276|63289|returnValue|cancelBubble|keypress|KEY_UNKNOWN|keyup|keydown|shiftKey|metaKey||ctrlKey|altKey|toElement|srcElement|9acd32||yellowgreen||ffff00|f5f5f5|whitesmoke||ffffff|f5deb3|wheat|ee82ee|violet|40e0d0|turquoise|ff6347|tomato|d8bfd8|thistle|008080|teal|d2b48c|tan|4682b4|steelblue|00ff7f|springgreen|fffafa|snow|slategrey|slategray|6a5acd|slateblue|87ceeb|skyblue|c0c0c0|silver|a0522d|sienna|fff5ee|seashell|2e8b57|seagreen|f4a460|sandybrown|fa8072|salmon|8b4513|saddlebrown|4169e1|royalblue|bc8f8f|rosybrown|ff0000|800080|b0e0e6|powderblue|dda0dd|plum|ffc0cb|pink|cd853f||peru|ffdab9|peachpuff|ffefd5|papayawhip|db7093|palevioletred|afeeee|paleturquoise|98fb98|palegreen|eee8aa||palegoldenrod|da70d6|orchid|ff4500|orangered|ffa500|6b8e23|olivedrab|808000|olive|fdf5e6|oldlace|000080|navy|ffdead|navajowhite|ffe4b5|moccasin|ffe4e1|mistyrose|f5fffa|mintcream|191970|midnightblue|c71585|mediumvioletred|48d1cc|mediumturquoise|00fa9a|mediumspringgreen|7b68ee|mediumslateblue|3cb371|mediumseagreen|9370db|mediumpurple|ba55d3|mediumorchid|0000cd|mediumblue|66cdaa|mediumaquamarine|800000|maroon|faf0e6|linen|32cd32|limegreen|00ff00|lime|ffffe0|lightyellow|b0c4de|lightsteelblue|lightslategrey|lightslategray||87cefa|lightskyblue|20b2aa|lightseagreen|ffa07a|lightsalmon|ffb6c1|lightpink|lightgrey|90ee90|lightgreen|lightgray|fafad2|lightgoldenrodyellow|e0ffff|lightcyan|f08080|lightcoral|add8e6|lightblue|fffacd|lemonchiffon|7cfc00|lawngreen|fff0f5|lavenderblush|e6e6fa|lavender|f0e68c|khaki|fffff0|ivory|4b0082|indigo|cd5c5c|indianred|ff69b4|hotpink|f0fff0|honeydew|grey|adff2f|greenyellow|008000|daa520|goldenrod|ffd700||gold|f8f8ff|ghostwhite|dcdcdc|gainsboro|fuchsia|228b22|forestgreen|fffaf0|floralwhite|b22222|firebrick|1e90ff|dodgerblue|dimgrey|dimgray|00bfff|deepskyblue|ff1493|deeppink|9400d3|darkviolet|00ced1|darkturquoise|darkslategrey|darkslategray|483d8b|darkslateblue|8fbc8f|darkseagreen|e9967a|darksalmon|8b0000|9932cc|darkorchid|ff8c00|darkorange|556b2f|darkolivegreen|8b008b|darkmagenta|bdb76b|darkkhaki|darkgrey|006400|darkgreen|darkgray|b8860b|darkgoldenrod|008b8b|darkcyan|00008b|darkblue|dc143c|crimson|fff8dc|cornsilk|6495ed|cornflowerblue|ff7f50|coral|d2691e||chocolate|7fff00|chartreuse|5f9ea0|cadetblue|deb887|burlywood|a52a2a|8a2be2|blueviolet|0000ff|ffebcd||blanchedalmond|000000|ffe4c4|bisque|f5f5dc|beige|f0ffff|azure|7fffd4|aquamarine|aqua|faebd7|antiquewhite|f0f8ff|aliceblue|lightGray|darkGray|namedColors|blackColor|fromText|whiteColor|_510|_509|PI|rad|deg|transparentColor|_494|_493|_492|fromHSV|_491|_490|_489|asHSV|toHexString|rgba|hsla|toHSLString|isDark|lighterColorWithLevel|darkerColorWithLevel|colorWithLightness|colorWithSaturation|colorWithHue|colorWithAlpha||serif|sans|Verdana||8pt|8em|auto||Close|Clear||Load|Filter||10em||fixed|regex|emergency|line|margin|_Listener|dtd|loose|html4|w3|EN|Transitional|DTD|W3C|PUBLIC|DOCTYPE|blocking|due|debugging|able|Not|resizable|dependent|href|location|_MochiKit_LoggingPane|_429|canvas|strong|fieldset|legend|optgroup|select|form|textarea|label|img|table|tfoot|thead|tbody|htmlFor||useMap|usemap|defaultChecked|hasChildNodes|quot|amp|_405|focus|replaceChild|checkbox||radio|_win|BODY||safari|version|userAgent|navigator|innerHeight|alpha|khtml|Tried|acquire|clearTimeout|setTimeout|GET|ignore|send|abort|failed|Request|readyState|support|does|Browser|Microsoft|_288|_287|used|Deferreds|Chained|success|unfired|fr_FR|de_DE|00|abs|search|pattern|Invalid|getTimezoneOffset|getSeconds|getMinutes|getHours|UTC|3600000|initEvent|Events|debuggingBookmarklet|MESSAGES|LAST|_205|clear|ninfo|nlevel|timestamp|reverse|takes|initial|with|sequence|empty|iterable|numbers|dateLike|escape|find|forward|unregister|unescape|Object|compared|item|contains|logor|logand|cle|clt|cge|cgt|cne|ceq|zrshift|rshift|lshift|xor|mul|mod|sub|add|neg|lognot|_9|_2'.split('|'),0,{})
+
+
+/*
+ * jQuery 1.2.1 - New Wave Javascript
+ *
+ * Copyright (c) 2007 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2007-09-16 23:42:06 -0400 (Sun, 16 Sep 2007) $
+ * $Rev: 3353 $
+ */
+
+var decompressedJQuery = function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(G(){9(1m E!="W")H w=E;H E=18.15=G(a,b){I 6 7u E?6.5N(a,b):1u E(a,b)};9(1m $!="W")H D=$;18.$=E;H u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;E.1b=E.3A={5N:G(c,a){c=c||U;9(1m c=="1M"){H m=u.2S(c);9(m&&(m[1]||!a)){9(m[1])c=E.4D([m[1]],a);J{H b=U.3S(m[3]);9(b)9(b.22!=m[3])I E().1Y(c);J{6[0]=b;6.K=1;I 6}J c=[]}}J I 1u E(a).1Y(c)}J 9(E.1n(c))I 1u E(U)[E.1b.2d?"2d":"39"](c);I 6.6v(c.1c==1B&&c||(c.4c||c.K&&c!=18&&!c.1y&&c[0]!=W&&c[0].1y)&&E.2h(c)||[c])},4c:"1.2.1",7Y:G(){I 6.K},K:0,21:G(a){I a==W?E.2h(6):6[a]},2o:G(a){H b=E(a);b.4Y=6;I b},6v:G(a){6.K=0;1B.3A.1a.16(6,a);I 6},N:G(a,b){I E.N(6,a,b)},4I:G(a){H b=-1;6.N(G(i){9(6==a)b=i});I b},1x:G(f,d,e){H c=f;9(f.1c==3X)9(d==W)I 6.K&&E[e||"1x"](6[0],f)||W;J{c={};c[f]=d}I 6.N(G(a){L(H b 1i c)E.1x(e?6.R:6,b,E.1e(6,c[b],e,a,b))})},17:G(b,a){I 6.1x(b,a,"3C")},2g:G(e){9(1m e!="5i"&&e!=S)I 6.4n().3g(U.6F(e));H t="";E.N(e||6,G(){E.N(6.3j,G(){9(6.1y!=8)t+=6.1y!=1?6.6x:E.1b.2g([6])})});I t},5m:G(b){9(6[0])E(b,6[0].3H).6u().3d(6[0]).1X(G(){H a=6;1W(a.1w)a=a.1w;I a}).3g(6);I 6},8m:G(a){I 6.N(G(){E(6).6q().5m(a)})},8d:G(a){I 6.N(G(){E(6).5m(a)})},3g:G(){I 6.3z(1q,Q,1,G(a){6.58(a)})},6j:G(){I 6.3z(1q,Q,-1,G(a){6.3d(a,6.1w)})},6g:G(){I 6.3z(1q,P,1,G(a){6.12.3d(a,6)})},50:G(){I 6.3z(1q,P,-1,G(a){6.12.3d(a,6.2q)})},2D:G(){I 6.4Y||E([])},1Y:G(t){H b=E.1X(6,G(a){I E.1Y(t,a)});I 6.2o(/[^+>] [^+>]/.14(t)||t.1g("..")>-1?E.4V(b):b)},6u:G(e){H f=6.1X(G(){I 6.67?E(6.67)[0]:6.4R(Q)});H d=f.1Y("*").4O().N(G(){9(6[F]!=W)6[F]=S});9(e===Q)6.1Y("*").4O().N(G(i){H c=E.M(6,"2P");L(H a 1i c)L(H b 1i c[a])E.1j.1f(d[i],a,c[a][b],c[a][b].M)});I f},1E:G(t){I 6.2o(E.1n(t)&&E.2W(6,G(b,a){I t.16(b,[a])})||E.3m(t,6))},5V:G(t){I 6.2o(t.1c==3X&&E.3m(t,6,Q)||E.2W(6,G(a){I(t.1c==1B||t.4c)?E.2A(a,t)<0:a!=t}))},1f:G(t){I 6.2o(E.1R(6.21(),t.1c==3X?E(t).21():t.K!=W&&(!t.11||E.11(t,"2Y"))?t:[t]))},3t:G(a){I a?E.3m(a,6).K>0:P},7c:G(a){I 6.3t("."+a)},3i:G(b){9(b==W){9(6.K){H c=6[0];9(E.11(c,"24")){H e=c.4Z,a=[],Y=c.Y,2G=c.O=="24-2G";9(e<0)I S;L(H i=2G?e:0,33=2G?e+1:Y.K;i<33;i++){H d=Y[i];9(d.26){H b=E.V.1h&&!d.9V["1Q"].9L?d.2g:d.1Q;9(2G)I b;a.1a(b)}}I a}J I 6[0].1Q.1p(/\\r/g,"")}}J I 6.N(G(){9(b.1c==1B&&/4k|5j/.14(6.O))6.2Q=(E.2A(6.1Q,b)>=0||E.2A(6.2H,b)>=0);J 9(E.11(6,"24")){H a=b.1c==1B?b:[b];E("9h",6).N(G(){6.26=(E.2A(6.1Q,a)>=0||E.2A(6.2g,a)>=0)});9(!a.K)6.4Z=-1}J 6.1Q=b})},4o:G(a){I a==W?(6.K?6[0].3O:S):6.4n().3g(a)},6H:G(a){I 6.50(a).28()},6E:G(i){I 6.2J(i,i+1)},2J:G(){I 6.2o(1B.3A.2J.16(6,1q))},1X:G(b){I 6.2o(E.1X(6,G(a,i){I b.2O(a,i,a)}))},4O:G(){I 6.1f(6.4Y)},3z:G(f,d,g,e){H c=6.K>1,a;I 6.N(G(){9(!a){a=E.4D(f,6.3H);9(g<0)a.8U()}H b=6;9(d&&E.11(6,"1I")&&E.11(a[0],"4m"))b=6.4l("1K")[0]||6.58(U.5B("1K"));E.N(a,G(){H a=c?6.4R(Q):6;9(!5A(0,a))e.2O(b,a)})})}};G 5A(i,b){H a=E.11(b,"1J");9(a){9(b.3k)E.3G({1d:b.3k,3e:P,1V:"1J"});J E.5f(b.2g||b.6s||b.3O||"");9(b.12)b.12.3b(b)}J 9(b.1y==1)E("1J",b).N(5A);I a}E.1k=E.1b.1k=G(){H c=1q[0]||{},a=1,2c=1q.K,5e=P;9(c.1c==8o){5e=c;c=1q[1]||{}}9(2c==1){c=6;a=0}H b;L(;a<2c;a++)9((b=1q[a])!=S)L(H i 1i b){9(c==b[i])6r;9(5e&&1m b[i]==\'5i\'&&c[i])E.1k(c[i],b[i]);J 9(b[i]!=W)c[i]=b[i]}I c};H F="15"+(1u 3D()).3B(),6p=0,5c={};E.1k({8a:G(a){18.$=D;9(a)18.15=w;I E},1n:G(a){I!!a&&1m a!="1M"&&!a.11&&a.1c!=1B&&/G/i.14(a+"")},4a:G(a){I a.2V&&!a.1G||a.37&&a.3H&&!a.3H.1G},5f:G(a){a=E.36(a);9(a){9(18.6l)18.6l(a);J 9(E.V.1N)18.56(a,0);J 3w.2O(18,a)}},11:G(b,a){I b.11&&b.11.27()==a.27()},1L:{},M:G(c,d,b){c=c==18?5c:c;H a=c[F];9(!a)a=c[F]=++6p;9(d&&!E.1L[a])E.1L[a]={};9(b!=W)E.1L[a][d]=b;I d?E.1L[a][d]:a},30:G(c,b){c=c==18?5c:c;H a=c[F];9(b){9(E.1L[a]){2E E.1L[a][b];b="";L(b 1i E.1L[a])1T;9(!b)E.30(c)}}J{2a{2E c[F]}29(e){9(c.53)c.53(F)}2E E.1L[a]}},N:G(a,b,c){9(c){9(a.K==W)L(H i 1i a)b.16(a[i],c);J L(H i=0,48=a.K;i<48;i++)9(b.16(a[i],c)===P)1T}J{9(a.K==W)L(H i 1i a)b.2O(a[i],i,a[i]);J L(H i=0,48=a.K,3i=a[0];i<48&&b.2O(3i,i,3i)!==P;3i=a[++i]){}}I a},1e:G(c,b,d,e,a){9(E.1n(b))b=b.2O(c,[e]);H f=/z-?4I|7T-?7Q|1r|69|7P-?1H/i;I b&&b.1c==4W&&d=="3C"&&!f.14(a)?b+"2T":b},1o:{1f:G(b,c){E.N((c||"").2l(/\\s+/),G(i,a){9(!E.1o.3K(b.1o,a))b.1o+=(b.1o?" ":"")+a})},28:G(b,c){b.1o=c!=W?E.2W(b.1o.2l(/\\s+/),G(a){I!E.1o.3K(c,a)}).66(" "):""},3K:G(t,c){I E.2A(c,(t.1o||t).3s().2l(/\\s+/))>-1}},2k:G(e,o,f){L(H i 1i o){e.R["3r"+i]=e.R[i];e.R[i]=o[i]}f.16(e,[]);L(H i 1i o)e.R[i]=e.R["3r"+i]},17:G(e,p){9(p=="1H"||p=="2N"){H b={},42,41,d=["7J","7I","7G","7F"];E.N(d,G(){b["7C"+6]=0;b["7B"+6+"5Z"]=0});E.2k(e,b,G(){9(E(e).3t(\':3R\')){42=e.7A;41=e.7w}J{e=E(e.4R(Q)).1Y(":4k").5W("2Q").2D().17({4C:"1P",2X:"4F",19:"2Z",7o:"0",1S:"0"}).5R(e.12)[0];H a=E.17(e.12,"2X")||"3V";9(a=="3V")e.12.R.2X="7g";42=e.7e;41=e.7b;9(a=="3V")e.12.R.2X="3V";e.12.3b(e)}});I p=="1H"?42:41}I E.3C(e,p)},3C:G(h,j,i){H g,2w=[],2k=[];G 3n(a){9(!E.V.1N)I P;H b=U.3o.3Z(a,S);I!b||b.4y("3n")==""}9(j=="1r"&&E.V.1h){g=E.1x(h.R,"1r");I g==""?"1":g}9(j.1t(/4u/i))j=y;9(!i&&h.R[j])g=h.R[j];J 9(U.3o&&U.3o.3Z){9(j.1t(/4u/i))j="4u";j=j.1p(/([A-Z])/g,"-$1").2p();H d=U.3o.3Z(h,S);9(d&&!3n(h))g=d.4y(j);J{L(H a=h;a&&3n(a);a=a.12)2w.4w(a);L(a=0;a<2w.K;a++)9(3n(2w[a])){2k[a]=2w[a].R.19;2w[a].R.19="2Z"}g=j=="19"&&2k[2w.K-1]!=S?"2s":U.3o.3Z(h,S).4y(j)||"";L(a=0;a<2k.K;a++)9(2k[a]!=S)2w[a].R.19=2k[a]}9(j=="1r"&&g=="")g="1"}J 9(h.3Q){H f=j.1p(/\\-(\\w)/g,G(m,c){I c.27()});g=h.3Q[j]||h.3Q[f];9(!/^\\d+(2T)?$/i.14(g)&&/^\\d/.14(g)){H k=h.R.1S;H e=h.4v.1S;h.4v.1S=h.3Q.1S;h.R.1S=g||0;g=h.R.71+"2T";h.R.1S=k;h.4v.1S=e}}I g},4D:G(a,e){H r=[];e=e||U;E.N(a,G(i,d){9(!d)I;9(d.1c==4W)d=d.3s();9(1m d=="1M"){d=d.1p(/(<(\\w+)[^>]*?)\\/>/g,G(m,a,b){I b.1t(/^(70|6Z|6Y|9Q|4t|9N|9K|3a|9G|9E)$/i)?m:a+"></"+b+">"});H s=E.36(d).2p(),1s=e.5B("1s"),2x=[];H c=!s.1g("<9y")&&[1,"<24>","</24>"]||!s.1g("<9w")&&[1,"<6T>","</6T>"]||s.1t(/^<(9u|1K|9t|9r|9p)/)&&[1,"<1I>","</1I>"]||!s.1g("<4m")&&[2,"<1I><1K>","</1K></1I>"]||(!s.1g("<9m")||!s.1g("<9k"))&&[3,"<1I><1K><4m>","</4m></1K></1I>"]||!s.1g("<6Y")&&[2,"<1I><1K></1K><6L>","</6L></1I>"]||E.V.1h&&[1,"1s<1s>","</1s>"]||[0,"",""];1s.3O=c[1]+d+c[2];1W(c[0]--)1s=1s.5p;9(E.V.1h){9(!s.1g("<1I")&&s.1g("<1K")<0)2x=1s.1w&&1s.1w.3j;J 9(c[1]=="<1I>"&&s.1g("<1K")<0)2x=1s.3j;L(H n=2x.K-1;n>=0;--n)9(E.11(2x[n],"1K")&&!2x[n].3j.K)2x[n].12.3b(2x[n]);9(/^\\s/.14(d))1s.3d(e.6F(d.1t(/^\\s*/)[0]),1s.1w)}d=E.2h(1s.3j)}9(0===d.K&&(!E.11(d,"2Y")&&!E.11(d,"24")))I;9(d[0]==W||E.11(d,"2Y")||d.Y)r.1a(d);J r=E.1R(r,d)});I r},1x:G(c,d,a){H e=E.4a(c)?{}:E.5o;9(d=="26"&&E.V.1N)c.12.4Z;9(e[d]){9(a!=W)c[e[d]]=a;I c[e[d]]}J 9(E.V.1h&&d=="R")I E.1x(c.R,"9e",a);J 9(a==W&&E.V.1h&&E.11(c,"2Y")&&(d=="9d"||d=="9a"))I c.97(d).6x;J 9(c.37){9(a!=W){9(d=="O"&&E.11(c,"4t")&&c.12)6G"O 94 93\'t 92 91";c.90(d,a)}9(E.V.1h&&/6C|3k/.14(d)&&!E.4a(c))I c.4p(d,2);I c.4p(d)}J{9(d=="1r"&&E.V.1h){9(a!=W){c.69=1;c.1E=(c.1E||"").1p(/6O\\([^)]*\\)/,"")+(3I(a).3s()=="8S"?"":"6O(1r="+a*6A+")")}I c.1E?(3I(c.1E.1t(/1r=([^)]*)/)[1])/6A).3s():""}d=d.1p(/-([a-z])/8Q,G(z,b){I b.27()});9(a!=W)c[d]=a;I c[d]}},36:G(t){I(t||"").1p(/^\\s+|\\s+$/g,"")},2h:G(a){H r=[];9(1m a!="8P")L(H i=0,2c=a.K;i<2c;i++)r.1a(a[i]);J r=a.2J(0);I r},2A:G(b,a){L(H i=0,2c=a.K;i<2c;i++)9(a[i]==b)I i;I-1},1R:G(a,b){9(E.V.1h){L(H i=0;b[i];i++)9(b[i].1y!=8)a.1a(b[i])}J L(H i=0;b[i];i++)a.1a(b[i]);I a},4V:G(b){H r=[],2f={};2a{L(H i=0,6y=b.K;i<6y;i++){H a=E.M(b[i]);9(!2f[a]){2f[a]=Q;r.1a(b[i])}}}29(e){r=b}I r},2W:G(b,a,c){9(1m a=="1M")a=3w("P||G(a,i){I "+a+"}");H d=[];L(H i=0,4g=b.K;i<4g;i++)9(!c&&a(b[i],i)||c&&!a(b[i],i))d.1a(b[i]);I d},1X:G(c,b){9(1m b=="1M")b=3w("P||G(a){I "+b+"}");H d=[];L(H i=0,4g=c.K;i<4g;i++){H a=b(c[i],i);9(a!==S&&a!=W){9(a.1c!=1B)a=[a];d=d.8M(a)}}I d}});H v=8K.8I.2p();E.V={4s:(v.1t(/.+(?:8F|8E|8C|8B)[\\/: ]([\\d.]+)/)||[])[1],1N:/6w/.14(v),34:/34/.14(v),1h:/1h/.14(v)&&!/34/.14(v),35:/35/.14(v)&&!/(8z|6w)/.14(v)};H y=E.V.1h?"4h":"5h";E.1k({5g:!E.V.1h||U.8y=="8x",4h:E.V.1h?"4h":"5h",5o:{"L":"8w","8v":"1o","4u":y,5h:y,4h:y,3O:"3O",1o:"1o",1Q:"1Q",3c:"3c",2Q:"2Q",8u:"8t",26:"26",8s:"8r"}});E.N({1D:"a.12",8q:"15.4e(a,\'12\')",8p:"15.2I(a,2,\'2q\')",8n:"15.2I(a,2,\'4d\')",8l:"15.4e(a,\'2q\')",8k:"15.4e(a,\'4d\')",8j:"15.5d(a.12.1w,a)",8i:"15.5d(a.1w)",6q:"15.11(a,\'8h\')?a.8f||a.8e.U:15.2h(a.3j)"},G(i,n){E.1b[i]=G(a){H b=E.1X(6,n);9(a&&1m a=="1M")b=E.3m(a,b);I 6.2o(E.4V(b))}});E.N({5R:"3g",8c:"6j",3d:"6g",8b:"50",89:"6H"},G(i,n){E.1b[i]=G(){H a=1q;I 6.N(G(){L(H j=0,2c=a.K;j<2c;j++)E(a[j])[n](6)})}});E.N({5W:G(a){E.1x(6,a,"");6.53(a)},88:G(c){E.1o.1f(6,c)},87:G(c){E.1o.28(6,c)},86:G(c){E.1o[E.1o.3K(6,c)?"28":"1f"](6,c)},28:G(a){9(!a||E.1E(a,[6]).r.K){E.30(6);6.12.3b(6)}},4n:G(){E("*",6).N(G(){E.30(6)});1W(6.1w)6.3b(6.1w)}},G(i,n){E.1b[i]=G(){I 6.N(n,1q)}});E.N(["85","5Z"],G(i,a){H n=a.2p();E.1b[n]=G(h){I 6[0]==18?E.V.1N&&3y["84"+a]||E.5g&&38.33(U.2V["5a"+a],U.1G["5a"+a])||U.1G["5a"+a]:6[0]==U?38.33(U.1G["6n"+a],U.1G["6m"+a]):h==W?(6.K?E.17(6[0],n):S):6.17(n,h.1c==3X?h:h+"2T")}});H C=E.V.1N&&3x(E.V.4s)<83?"(?:[\\\\w*57-]|\\\\\\\\.)":"(?:[\\\\w\\82-\\81*57-]|\\\\\\\\.)",6k=1u 47("^>\\\\s*("+C+"+)"),6i=1u 47("^("+C+"+)(#)("+C+"+)"),6h=1u 47("^([#.]?)("+C+"*)");E.1k({55:{"":"m[2]==\'*\'||15.11(a,m[2])","#":"a.4p(\'22\')==m[2]",":":{80:"i<m[3]-0",7Z:"i>m[3]-0",2I:"m[3]-0==i",6E:"m[3]-0==i",3v:"i==0",3u:"i==r.K-1",6f:"i%2==0",6e:"i%2","3v-46":"a.12.4l(\'*\')[0]==a","3u-46":"15.2I(a.12.5p,1,\'4d\')==a","7X-46":"!15.2I(a.12.5p,2,\'4d\')",1D:"a.1w",4n:"!a.1w",7W:"(a.6s||a.7V||15(a).2g()||\'\').1g(m[3])>=0",3R:\'"1P"!=a.O&&15.17(a,"19")!="2s"&&15.17(a,"4C")!="1P"\',1P:\'"1P"==a.O||15.17(a,"19")=="2s"||15.17(a,"4C")=="1P"\',7U:"!a.3c",3c:"a.3c",2Q:"a.2Q",26:"a.26||15.1x(a,\'26\')",2g:"\'2g\'==a.O",4k:"\'4k\'==a.O",5j:"\'5j\'==a.O",54:"\'54\'==a.O",52:"\'52\'==a.O",51:"\'51\'==a.O",6d:"\'6d\'==a.O",6c:"\'6c\'==a.O",2r:\'"2r"==a.O||15.11(a,"2r")\',4t:"/4t|24|6b|2r/i.14(a.11)",3K:"15.1Y(m[3],a).K",7S:"/h\\\\d/i.14(a.11)",7R:"15.2W(15.32,G(1b){I a==1b.T;}).K"}},6a:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1u 47("^([:.#]*)("+C+"+)")],3m:G(a,c,b){H d,2b=[];1W(a&&a!=d){d=a;H f=E.1E(a,c,b);a=f.t.1p(/^\\s*,\\s*/,"");2b=b?c=f.r:E.1R(2b,f.r)}I 2b},1Y:G(t,o){9(1m t!="1M")I[t];9(o&&!o.1y)o=S;o=o||U;H d=[o],2f=[],3u;1W(t&&3u!=t){H r=[];3u=t;t=E.36(t);H l=P;H g=6k;H m=g.2S(t);9(m){H p=m[1].27();L(H i=0;d[i];i++)L(H c=d[i].1w;c;c=c.2q)9(c.1y==1&&(p=="*"||c.11.27()==p.27()))r.1a(c);d=r;t=t.1p(g,"");9(t.1g(" ")==0)6r;l=Q}J{g=/^([>+~])\\s*(\\w*)/i;9((m=g.2S(t))!=S){r=[];H p=m[2],1R={};m=m[1];L(H j=0,31=d.K;j<31;j++){H n=m=="~"||m=="+"?d[j].2q:d[j].1w;L(;n;n=n.2q)9(n.1y==1){H h=E.M(n);9(m=="~"&&1R[h])1T;9(!p||n.11.27()==p.27()){9(m=="~")1R[h]=Q;r.1a(n)}9(m=="+")1T}}d=r;t=E.36(t.1p(g,""));l=Q}}9(t&&!l){9(!t.1g(",")){9(o==d[0])d.44();2f=E.1R(2f,d);r=d=[o];t=" "+t.68(1,t.K)}J{H k=6i;H m=k.2S(t);9(m){m=[0,m[2],m[3],m[1]]}J{k=6h;m=k.2S(t)}m[2]=m[2].1p(/\\\\/g,"");H f=d[d.K-1];9(m[1]=="#"&&f&&f.3S&&!E.4a(f)){H q=f.3S(m[2]);9((E.V.1h||E.V.34)&&q&&1m q.22=="1M"&&q.22!=m[2])q=E(\'[@22="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.11(q,m[3]))?[q]:[]}J{L(H i=0;d[i];i++){H a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];9(a=="*"&&d[i].11.2p()=="5i")a="3a";r=E.1R(r,d[i].4l(a))}9(m[1]==".")r=E.4X(r,m[2]);9(m[1]=="#"){H e=[];L(H i=0;r[i];i++)9(r[i].4p("22")==m[2]){e=[r[i]];1T}r=e}d=r}t=t.1p(k,"")}}9(t){H b=E.1E(t,r);d=r=b.r;t=E.36(b.t)}}9(t)d=[];9(d&&o==d[0])d.44();2f=E.1R(2f,d);I 2f},4X:G(r,m,a){m=" "+m+" ";H c=[];L(H i=0;r[i];i++){H b=(" "+r[i].1o+" ").1g(m)>=0;9(!a&&b||a&&!b)c.1a(r[i])}I c},1E:G(t,r,h){H d;1W(t&&t!=d){d=t;H p=E.6a,m;L(H i=0;p[i];i++){m=p[i].2S(t);9(m){t=t.7O(m[0].K);m[2]=m[2].1p(/\\\\/g,"");1T}}9(!m)1T;9(m[1]==":"&&m[2]=="5V")r=E.1E(m[3],r,Q).r;J 9(m[1]==".")r=E.4X(r,m[2],h);J 9(m[1]=="["){H g=[],O=m[3];L(H i=0,31=r.K;i<31;i++){H a=r[i],z=a[E.5o[m[2]]||m[2]];9(z==S||/6C|3k|26/.14(m[2]))z=E.1x(a,m[2])||\'\';9((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1g(m[5])||O=="$="&&z.68(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1g(m[5])>=0)^h)g.1a(a)}r=g}J 9(m[1]==":"&&m[2]=="2I-46"){H e={},g=[],14=/(\\d*)n\\+?(\\d*)/.2S(m[3]=="6f"&&"2n"||m[3]=="6e"&&"2n+1"||!/\\D/.14(m[3])&&"n+"+m[3]||m[3]),3v=(14[1]||1)-0,d=14[2]-0;L(H i=0,31=r.K;i<31;i++){H j=r[i],12=j.12,22=E.M(12);9(!e[22]){H c=1;L(H n=12.1w;n;n=n.2q)9(n.1y==1)n.4U=c++;e[22]=Q}H b=P;9(3v==1){9(d==0||j.4U==d)b=Q}J 9((j.4U+d)%3v==0)b=Q;9(b^h)g.1a(j)}r=g}J{H f=E.55[m[1]];9(1m f!="1M")f=E.55[m[1]][m[2]];f=3w("P||G(a,i){I "+f+"}");r=E.2W(r,f,h)}}I{r:r,t:t}},4e:G(b,c){H d=[];H a=b[c];1W(a&&a!=U){9(a.1y==1)d.1a(a);a=a[c]}I d},2I:G(a,e,c,b){e=e||1;H d=0;L(;a;a=a[c])9(a.1y==1&&++d==e)1T;I a},5d:G(n,a){H r=[];L(;n;n=n.2q){9(n.1y==1&&(!a||n!=a))r.1a(n)}I r}});E.1j={1f:G(g,e,c,h){9(E.V.1h&&g.4j!=W)g=18;9(!c.2u)c.2u=6.2u++;9(h!=W){H d=c;c=G(){I d.16(6,1q)};c.M=h;c.2u=d.2u}H i=e.2l(".");e=i[0];c.O=i[1];H b=E.M(g,"2P")||E.M(g,"2P",{});H f=E.M(g,"2t",G(){H a;9(1m E=="W"||E.1j.4T)I a;a=E.1j.2t.16(g,1q);I a});H j=b[e];9(!j){j=b[e]={};9(g.4S)g.4S(e,f,P);J g.7N("43"+e,f)}j[c.2u]=c;6.1Z[e]=Q},2u:1,1Z:{},28:G(d,c,b){H e=E.M(d,"2P"),2L,4I;9(1m c=="1M"){H a=c.2l(".");c=a[0]}9(e){9(c&&c.O){b=c.4Q;c=c.O}9(!c){L(c 1i e)6.28(d,c)}J 9(e[c]){9(b)2E e[c][b.2u];J L(b 1i e[c])9(!a[1]||e[c][b].O==a[1])2E e[c][b];L(2L 1i e[c])1T;9(!2L){9(d.4P)d.4P(c,E.M(d,"2t"),P);J d.7M("43"+c,E.M(d,"2t"));2L=S;2E e[c]}}L(2L 1i e)1T;9(!2L){E.30(d,"2P");E.30(d,"2t")}}},1F:G(d,b,e,c,f){b=E.2h(b||[]);9(!e){9(6.1Z[d])E("*").1f([18,U]).1F(d,b)}J{H a,2L,1b=E.1n(e[d]||S),4N=!b[0]||!b[0].2M;9(4N)b.4w(6.4M({O:d,2m:e}));b[0].O=d;9(E.1n(E.M(e,"2t")))a=E.M(e,"2t").16(e,b);9(!1b&&e["43"+d]&&e["43"+d].16(e,b)===P)a=P;9(4N)b.44();9(f&&f.16(e,b)===P)a=P;9(1b&&c!==P&&a!==P&&!(E.11(e,\'a\')&&d=="4L")){6.4T=Q;e[d]()}6.4T=P}I a},2t:G(d){H a;d=E.1j.4M(d||18.1j||{});H b=d.O.2l(".");d.O=b[0];H c=E.M(6,"2P")&&E.M(6,"2P")[d.O],3q=1B.3A.2J.2O(1q,1);3q.4w(d);L(H j 1i c){3q[0].4Q=c[j];3q[0].M=c[j].M;9(!b[1]||c[j].O==b[1]){H e=c[j].16(6,3q);9(a!==P)a=e;9(e===P){d.2M();d.3p()}}}9(E.V.1h)d.2m=d.2M=d.3p=d.4Q=d.M=S;I a},4M:G(c){H a=c;c=E.1k({},a);c.2M=G(){9(a.2M)a.2M();a.7L=P};c.3p=G(){9(a.3p)a.3p();a.7K=Q};9(!c.2m&&c.65)c.2m=c.65;9(E.V.1N&&c.2m.1y==3)c.2m=a.2m.12;9(!c.4K&&c.4J)c.4K=c.4J==c.2m?c.7H:c.4J;9(c.64==S&&c.63!=S){H e=U.2V,b=U.1G;c.64=c.63+(e&&e.2R||b.2R||0);c.7E=c.7D+(e&&e.2B||b.2B||0)}9(!c.3Y&&(c.61||c.60))c.3Y=c.61||c.60;9(!c.5F&&c.5D)c.5F=c.5D;9(!c.3Y&&c.2r)c.3Y=(c.2r&1?1:(c.2r&2?3:(c.2r&4?2:0)));I c}};E.1b.1k({3W:G(c,a,b){I c=="5Y"?6.2G(c,a,b):6.N(G(){E.1j.1f(6,c,b||a,b&&a)})},2G:G(d,b,c){I 6.N(G(){E.1j.1f(6,d,G(a){E(6).5X(a);I(c||b).16(6,1q)},c&&b)})},5X:G(a,b){I 6.N(G(){E.1j.28(6,a,b)})},1F:G(c,a,b){I 6.N(G(){E.1j.1F(c,a,6,Q,b)})},7x:G(c,a,b){9(6[0])I E.1j.1F(c,a,6[0],P,b)},25:G(){H a=1q;I 6.4L(G(e){6.4H=0==6.4H?1:0;e.2M();I a[6.4H].16(6,[e])||P})},7v:G(f,g){G 4G(e){H p=e.4K;1W(p&&p!=6)2a{p=p.12}29(e){p=6};9(p==6)I P;I(e.O=="4x"?f:g).16(6,[e])}I 6.4x(4G).5U(4G)},2d:G(f){5T();9(E.3T)f.16(U,[E]);J E.3l.1a(G(){I f.16(6,[E])});I 6}});E.1k({3T:P,3l:[],2d:G(){9(!E.3T){E.3T=Q;9(E.3l){E.N(E.3l,G(){6.16(U)});E.3l=S}9(E.V.35||E.V.34)U.4P("5S",E.2d,P);9(!18.7t.K)E(18).39(G(){E("#4E").28()})}}});E.N(("7s,7r,39,7q,6n,5Y,4L,7p,"+"7n,7m,7l,4x,5U,7k,24,"+"51,7j,7i,7h,3U").2l(","),G(i,o){E.1b[o]=G(f){I f?6.3W(o,f):6.1F(o)}});H x=P;G 5T(){9(x)I;x=Q;9(E.V.35||E.V.34)U.4S("5S",E.2d,P);J 9(E.V.1h){U.7f("<7d"+"7y 22=4E 7z=Q "+"3k=//:><\\/1J>");H a=U.3S("4E");9(a)a.62=G(){9(6.2C!="1l")I;E.2d()};a=S}J 9(E.V.1N)E.4B=4j(G(){9(U.2C=="5Q"||U.2C=="1l"){4A(E.4B);E.4B=S;E.2d()}},10);E.1j.1f(18,"39",E.2d)}E.1b.1k({39:G(g,d,c){9(E.1n(g))I 6.3W("39",g);H e=g.1g(" ");9(e>=0){H i=g.2J(e,g.K);g=g.2J(0,e)}c=c||G(){};H f="4z";9(d)9(E.1n(d)){c=d;d=S}J{d=E.3a(d);f="5P"}H h=6;E.3G({1d:g,O:f,M:d,1l:G(a,b){9(b=="1C"||b=="5O")h.4o(i?E("<1s/>").3g(a.40.1p(/<1J(.|\\s)*?\\/1J>/g,"")).1Y(i):a.40);56(G(){h.N(c,[a.40,b,a])},13)}});I 6},7a:G(){I E.3a(6.5M())},5M:G(){I 6.1X(G(){I E.11(6,"2Y")?E.2h(6.79):6}).1E(G(){I 6.2H&&!6.3c&&(6.2Q||/24|6b/i.14(6.11)||/2g|1P|52/i.14(6.O))}).1X(G(i,c){H b=E(6).3i();I b==S?S:b.1c==1B?E.1X(b,G(a,i){I{2H:c.2H,1Q:a}}):{2H:c.2H,1Q:b}}).21()}});E.N("5L,5K,6t,5J,5I,5H".2l(","),G(i,o){E.1b[o]=G(f){I 6.3W(o,f)}});H B=(1u 3D).3B();E.1k({21:G(d,b,a,c){9(E.1n(b)){a=b;b=S}I E.3G({O:"4z",1d:d,M:b,1C:a,1V:c})},78:G(b,a){I E.21(b,S,a,"1J")},77:G(c,b,a){I E.21(c,b,a,"45")},76:G(d,b,a,c){9(E.1n(b)){a=b;b={}}I E.3G({O:"5P",1d:d,M:b,1C:a,1V:c})},75:G(a){E.1k(E.59,a)},59:{1Z:Q,O:"4z",2z:0,5G:"74/x-73-2Y-72",6o:Q,3e:Q,M:S},49:{},3G:G(s){H f,2y=/=(\\?|%3F)/g,1v,M;s=E.1k(Q,s,E.1k(Q,{},E.59,s));9(s.M&&s.6o&&1m s.M!="1M")s.M=E.3a(s.M);9(s.1V=="4b"){9(s.O.2p()=="21"){9(!s.1d.1t(2y))s.1d+=(s.1d.1t(/\\?/)?"&":"?")+(s.4b||"5E")+"=?"}J 9(!s.M||!s.M.1t(2y))s.M=(s.M?s.M+"&":"")+(s.4b||"5E")+"=?";s.1V="45"}9(s.1V=="45"&&(s.M&&s.M.1t(2y)||s.1d.1t(2y))){f="4b"+B++;9(s.M)s.M=s.M.1p(2y,"="+f);s.1d=s.1d.1p(2y,"="+f);s.1V="1J";18[f]=G(a){M=a;1C();1l();18[f]=W;2a{2E 18[f]}29(e){}}}9(s.1V=="1J"&&s.1L==S)s.1L=P;9(s.1L===P&&s.O.2p()=="21")s.1d+=(s.1d.1t(/\\?/)?"&":"?")+"57="+(1u 3D()).3B();9(s.M&&s.O.2p()=="21"){s.1d+=(s.1d.1t(/\\?/)?"&":"?")+s.M;s.M=S}9(s.1Z&&!E.5b++)E.1j.1F("5L");9(!s.1d.1g("8g")&&s.1V=="1J"){H h=U.4l("9U")[0];H g=U.5B("1J");g.3k=s.1d;9(!f&&(s.1C||s.1l)){H j=P;g.9R=g.62=G(){9(!j&&(!6.2C||6.2C=="5Q"||6.2C=="1l")){j=Q;1C();1l();h.3b(g)}}}h.58(g);I}H k=P;H i=18.6X?1u 6X("9P.9O"):1u 6W();i.9M(s.O,s.1d,s.3e);9(s.M)i.5C("9J-9I",s.5G);9(s.5y)i.5C("9H-5x-9F",E.49[s.1d]||"9D, 9C 9B 9A 5v:5v:5v 9z");i.5C("X-9x-9v","6W");9(s.6U)s.6U(i);9(s.1Z)E.1j.1F("5H",[i,s]);H c=G(a){9(!k&&i&&(i.2C==4||a=="2z")){k=Q;9(d){4A(d);d=S}1v=a=="2z"&&"2z"||!E.6S(i)&&"3U"||s.5y&&E.6R(i,s.1d)&&"5O"||"1C";9(1v=="1C"){2a{M=E.6Q(i,s.1V)}29(e){1v="5k"}}9(1v=="1C"){H b;2a{b=i.5s("6P-5x")}29(e){}9(s.5y&&b)E.49[s.1d]=b;9(!f)1C()}J E.5r(s,i,1v);1l();9(s.3e)i=S}};9(s.3e){H d=4j(c,13);9(s.2z>0)56(G(){9(i){i.9q();9(!k)c("2z")}},s.2z)}2a{i.9o(s.M)}29(e){E.5r(s,i,S,e)}9(!s.3e)c();I i;G 1C(){9(s.1C)s.1C(M,1v);9(s.1Z)E.1j.1F("5I",[i,s])}G 1l(){9(s.1l)s.1l(i,1v);9(s.1Z)E.1j.1F("6t",[i,s]);9(s.1Z&&!--E.5b)E.1j.1F("5K")}},5r:G(s,a,b,e){9(s.3U)s.3U(a,b,e);9(s.1Z)E.1j.1F("5J",[a,s,e])},5b:0,6S:G(r){2a{I!r.1v&&9n.9l=="54:"||(r.1v>=6N&&r.1v<9j)||r.1v==6M||E.V.1N&&r.1v==W}29(e){}I P},6R:G(a,c){2a{H b=a.5s("6P-5x");I a.1v==6M||b==E.49[c]||E.V.1N&&a.1v==W}29(e){}I P},6Q:G(r,b){H c=r.5s("9i-O");H d=b=="6K"||!b&&c&&c.1g("6K")>=0;H a=d?r.9g:r.40;9(d&&a.2V.37=="5k")6G"5k";9(b=="1J")E.5f(a);9(b=="45")a=3w("("+a+")");I a},3a:G(a){H s=[];9(a.1c==1B||a.4c)E.N(a,G(){s.1a(3f(6.2H)+"="+3f(6.1Q))});J L(H j 1i a)9(a[j]&&a[j].1c==1B)E.N(a[j],G(){s.1a(3f(j)+"="+3f(6))});J s.1a(3f(j)+"="+3f(a[j]));I s.66("&").1p(/%20/g,"+")}});E.1b.1k({1A:G(b,a){I b?6.1U({1H:"1A",2N:"1A",1r:"1A"},b,a):6.1E(":1P").N(G(){6.R.19=6.3h?6.3h:"";9(E.17(6,"19")=="2s")6.R.19="2Z"}).2D()},1z:G(b,a){I b?6.1U({1H:"1z",2N:"1z",1r:"1z"},b,a):6.1E(":3R").N(G(){6.3h=6.3h||E.17(6,"19");9(6.3h=="2s")6.3h="2Z";6.R.19="2s"}).2D()},6J:E.1b.25,25:G(a,b){I E.1n(a)&&E.1n(b)?6.6J(a,b):a?6.1U({1H:"25",2N:"25",1r:"25"},a,b):6.N(G(){E(6)[E(6).3t(":1P")?"1A":"1z"]()})},9c:G(b,a){I 6.1U({1H:"1A"},b,a)},9b:G(b,a){I 6.1U({1H:"1z"},b,a)},99:G(b,a){I 6.1U({1H:"25"},b,a)},98:G(b,a){I 6.1U({1r:"1A"},b,a)},96:G(b,a){I 6.1U({1r:"1z"},b,a)},95:G(c,a,b){I 6.1U({1r:a},c,b)},1U:G(k,i,h,g){H j=E.6D(i,h,g);I 6[j.3L===P?"N":"3L"](G(){j=E.1k({},j);H f=E(6).3t(":1P"),3y=6;L(H p 1i k){9(k[p]=="1z"&&f||k[p]=="1A"&&!f)I E.1n(j.1l)&&j.1l.16(6);9(p=="1H"||p=="2N"){j.19=E.17(6,"19");j.2U=6.R.2U}}9(j.2U!=S)6.R.2U="1P";j.3M=E.1k({},k);E.N(k,G(c,a){H e=1u E.2j(3y,j,c);9(/25|1A|1z/.14(a))e[a=="25"?f?"1A":"1z":a](k);J{H b=a.3s().1t(/^([+-]=)?([\\d+-.]+)(.*)$/),1O=e.2b(Q)||0;9(b){H d=3I(b[2]),2i=b[3]||"2T";9(2i!="2T"){3y.R[c]=(d||1)+2i;1O=((d||1)/e.2b(Q))*1O;3y.R[c]=1O+2i}9(b[1])d=((b[1]=="-="?-1:1)*d)+1O;e.3N(1O,d,2i)}J e.3N(1O,a,"")}});I Q})},3L:G(a,b){9(E.1n(a)){b=a;a="2j"}9(!a||(1m a=="1M"&&!b))I A(6[0],a);I 6.N(G(){9(b.1c==1B)A(6,a,b);J{A(6,a).1a(b);9(A(6,a).K==1)b.16(6)}})},9f:G(){H a=E.32;I 6.N(G(){L(H i=0;i<a.K;i++)9(a[i].T==6)a.6I(i--,1)}).5n()}});H A=G(b,c,a){9(!b)I;H q=E.M(b,c+"3L");9(!q||a)q=E.M(b,c+"3L",a?E.2h(a):[]);I q};E.1b.5n=G(a){a=a||"2j";I 6.N(G(){H q=A(6,a);q.44();9(q.K)q[0].16(6)})};E.1k({6D:G(b,a,c){H d=b&&b.1c==8Z?b:{1l:c||!c&&a||E.1n(b)&&b,2e:b,3J:c&&a||a&&a.1c!=8Y&&a};d.2e=(d.2e&&d.2e.1c==4W?d.2e:{8X:8W,8V:6N}[d.2e])||8T;d.3r=d.1l;d.1l=G(){E(6).5n();9(E.1n(d.3r))d.3r.16(6)};I d},3J:{6B:G(p,n,b,a){I b+a*p},5q:G(p,n,b,a){I((-38.9s(p*38.8R)/2)+0.5)*a+b}},32:[],2j:G(b,c,a){6.Y=c;6.T=b;6.1e=a;9(!c.3P)c.3P={}}});E.2j.3A={4r:G(){9(6.Y.2F)6.Y.2F.16(6.T,[6.2v,6]);(E.2j.2F[6.1e]||E.2j.2F.6z)(6);9(6.1e=="1H"||6.1e=="2N")6.T.R.19="2Z"},2b:G(a){9(6.T[6.1e]!=S&&6.T.R[6.1e]==S)I 6.T[6.1e];H r=3I(E.3C(6.T,6.1e,a));I r&&r>-8O?r:3I(E.17(6.T,6.1e))||0},3N:G(c,b,e){6.5u=(1u 3D()).3B();6.1O=c;6.2D=b;6.2i=e||6.2i||"2T";6.2v=6.1O;6.4q=6.4i=0;6.4r();H f=6;G t(){I f.2F()}t.T=6.T;E.32.1a(t);9(E.32.K==1){H d=4j(G(){H a=E.32;L(H i=0;i<a.K;i++)9(!a[i]())a.6I(i--,1);9(!a.K)4A(d)},13)}},1A:G(){6.Y.3P[6.1e]=E.1x(6.T.R,6.1e);6.Y.1A=Q;6.3N(0,6.2b());9(6.1e=="2N"||6.1e=="1H")6.T.R[6.1e]="8N";E(6.T).1A()},1z:G(){6.Y.3P[6.1e]=E.1x(6.T.R,6.1e);6.Y.1z=Q;6.3N(6.2b(),0)},2F:G(){H t=(1u 3D()).3B();9(t>6.Y.2e+6.5u){6.2v=6.2D;6.4q=6.4i=1;6.4r();6.Y.3M[6.1e]=Q;H a=Q;L(H i 1i 6.Y.3M)9(6.Y.3M[i]!==Q)a=P;9(a){9(6.Y.19!=S){6.T.R.2U=6.Y.2U;6.T.R.19=6.Y.19;9(E.17(6.T,"19")=="2s")6.T.R.19="2Z"}9(6.Y.1z)6.T.R.19="2s";9(6.Y.1z||6.Y.1A)L(H p 1i 6.Y.3M)E.1x(6.T.R,p,6.Y.3P[p])}9(a&&E.1n(6.Y.1l))6.Y.1l.16(6.T);I P}J{H n=t-6.5u;6.4i=n/6.Y.2e;6.4q=E.3J[6.Y.3J||(E.3J.5q?"5q":"6B")](6.4i,n,0,1,6.Y.2e);6.2v=6.1O+((6.2D-6.1O)*6.4q);6.4r()}I Q}};E.2j.2F={2R:G(a){a.T.2R=a.2v},2B:G(a){a.T.2B=a.2v},1r:G(a){E.1x(a.T.R,"1r",a.2v)},6z:G(a){a.T.R[a.1e]=a.2v+a.2i}};E.1b.6m=G(){H c=0,3E=0,T=6[0],5t;9(T)8L(E.V){H b=E.17(T,"2X")=="4F",1D=T.12,23=T.23,2K=T.3H,4f=1N&&3x(4s)<8J;9(T.6V){5w=T.6V();1f(5w.1S+38.33(2K.2V.2R,2K.1G.2R),5w.3E+38.33(2K.2V.2B,2K.1G.2B));9(1h){H d=E("4o").17("8H");d=(d=="8G"||E.5g&&3x(4s)>=7)&&2||d;1f(-d,-d)}}J{1f(T.5l,T.5z);1W(23){1f(23.5l,23.5z);9(35&&/^t[d|h]$/i.14(1D.37)||!4f)d(23);9(4f&&!b&&E.17(23,"2X")=="4F")b=Q;23=23.23}1W(1D.37&&!/^1G|4o$/i.14(1D.37)){9(!/^8D|1I-9S.*$/i.14(E.17(1D,"19")))1f(-1D.2R,-1D.2B);9(35&&E.17(1D,"2U")!="3R")d(1D);1D=1D.12}9(4f&&b)1f(-2K.1G.5l,-2K.1G.5z)}5t={3E:3E,1S:c}}I 5t;G d(a){1f(E.17(a,"9T"),E.17(a,"8A"))}G 1f(l,t){c+=3x(l)||0;3E+=3x(t)||0}}})();',62,616,'||||||this|||if|||||||||||||||||||||||||||||||||function|var|return|else|length|for|data|each|type|false|true|style|null|elem|document|browser|undefined||options|||nodeName|parentNode||test|jQuery|apply|css|window|display|push|fn|constructor|url|prop|add|indexOf|msie|in|event|extend|complete|typeof|isFunction|className|replace|arguments|opacity|div|match|new|status|firstChild|attr|nodeType|hide|show|Array|success|parent|filter|trigger|body|height|table|script|tbody|cache|string|safari|start|hidden|value|merge|left|break|animate|dataType|while|map|find|global||get|id|offsetParent|select|toggle|selected|toUpperCase|remove|catch|try|cur|al|ready|duration|done|text|makeArray|unit|fx|swap|split|target||pushStack|toLowerCase|nextSibling|button|none|handle|guid|now|stack|tb|jsre|timeout|inArray|scrollTop|readyState|end|delete|step|one|name|nth|slice|doc|ret|preventDefault|width|call|events|checked|scrollLeft|exec|px|overflow|documentElement|grep|position|form|block|removeData|rl|timers|max|opera|mozilla|trim|tagName|Math|load|param|removeChild|disabled|insertBefore|async|encodeURIComponent|append|oldblock|val|childNodes|src|readyList|multiFilter|color|defaultView|stopPropagation|args|old|toString|is|last|first|eval|parseInt|self|domManip|prototype|getTime|curCSS|Date|top||ajax|ownerDocument|parseFloat|easing|has|queue|curAnim|custom|innerHTML|orig|currentStyle|visible|getElementById|isReady|error|static|bind|String|which|getComputedStyle|responseText|oWidth|oHeight|on|shift|json|child|RegExp|ol|lastModified|isXMLDoc|jsonp|jquery|previousSibling|dir|safari2|el|styleFloat|state|setInterval|radio|getElementsByTagName|tr|empty|html|getAttribute|pos|update|version|input|float|runtimeStyle|unshift|mouseover|getPropertyValue|GET|clearInterval|safariTimer|visibility|clean|__ie_init|absolute|handleHover|lastToggle|index|fromElement|relatedTarget|click|fix|evt|andSelf|removeEventListener|handler|cloneNode|addEventListener|triggered|nodeIndex|unique|Number|classFilter|prevObject|selectedIndex|after|submit|password|removeAttribute|file|expr|setTimeout|_|appendChild|ajaxSettings|client|active|win|sibling|deep|globalEval|boxModel|cssFloat|object|checkbox|parsererror|offsetLeft|wrapAll|dequeue|props|lastChild|swing|handleError|getResponseHeader|results|startTime|00|box|Modified|ifModified|offsetTop|evalScript|createElement|setRequestHeader|ctrlKey|callback|metaKey|contentType|ajaxSend|ajaxSuccess|ajaxError|ajaxStop|ajaxStart|serializeArray|init|notmodified|POST|loaded|appendTo|DOMContentLoaded|bindReady|mouseout|not|removeAttr|unbind|unload|Width|keyCode|charCode|onreadystatechange|clientX|pageX|srcElement|join|outerHTML|substr|zoom|parse|textarea|reset|image|odd|even|before|quickClass|quickID|prepend|quickChild|execScript|offset|scroll|processData|uuid|contents|continue|textContent|ajaxComplete|clone|setArray|webkit|nodeValue|fl|_default|100|linear|href|speed|eq|createTextNode|throw|replaceWith|splice|_toggle|xml|colgroup|304|200|alpha|Last|httpData|httpNotModified|httpSuccess|fieldset|beforeSend|getBoundingClientRect|XMLHttpRequest|ActiveXObject|col|br|abbr|pixelLeft|urlencoded|www|application|ajaxSetup|post|getJSON|getScript|elements|serialize|clientWidth|hasClass|scr|clientHeight|write|relative|keyup|keypress|keydown|change|mousemove|mouseup|mousedown|right|dblclick|resize|focus|blur|frames|instanceof|hover|offsetWidth|triggerHandler|ipt|defer|offsetHeight|border|padding|clientY|pageY|Left|Right|toElement|Bottom|Top|cancelBubble|returnValue|detachEvent|attachEvent|substring|line|weight|animated|header|font|enabled|innerText|contains|only|size|gt|lt|uFFFF|u0128|417|inner|Height|toggleClass|removeClass|addClass|replaceAll|noConflict|insertAfter|prependTo|wrap|contentWindow|contentDocument|http|iframe|children|siblings|prevAll|nextAll|wrapInner|prev|Boolean|next|parents|maxLength|maxlength|readOnly|readonly|class|htmlFor|CSS1Compat|compatMode|compatible|borderTopWidth|ie|ra|inline|it|rv|medium|borderWidth|userAgent|522|navigator|with|concat|1px|10000|array|ig|PI|NaN|400|reverse|fast|600|slow|Function|Object|setAttribute|changed|be|can|property|fadeTo|fadeOut|getAttributeNode|fadeIn|slideToggle|method|slideUp|slideDown|action|cssText|stop|responseXML|option|content|300|th|protocol|td|location|send|cap|abort|colg|cos|tfoot|thead|With|leg|Requested|opt|GMT|1970|Jan|01|Thu|area|Since|hr|If|Type|Content|meta|specified|open|link|XMLHTTP|Microsoft|img|onload|row|borderLeftWidth|head|attributes'.split('|'),0,{});
+
+/*
+ Copyright (c) 2004-2007, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+/*
+ This is a compiled version of Dojo, built for deployment and not for
+ development. To get an editable version, please visit:
+
+ http://dojotoolkit.org
+
+ for documentation and information on getting the source.
+*/
+
+var decompressedDojo = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('if(V z=="1k"){(B(){if(V D["1o"]=="1k"){D.1o={}}if((!D["1z"])||(!1z["ca"])){D.1z={}}A cn=["rA","rz","1K","ry","rx","9f","rw","rv","ru","rt","rs","rr","rq","ro","rn","rm"];A i=0,24;1s(24=cn[i++]){if(!1z[24]){1z[24]=B(){}}}if(V D["z"]=="1k"){D.z={}}z.1W=D;A d3={im:U,rl:U,rk:"",rj:"",ri:"",rh:K,rg:U};R(A 8z in d3){if(V 1o[8z]=="1k"){1o[8z]=d3[8z]}}A jK=["rf","rd","rc","rb"];A t;1s(t=jK.3a()){z["is"+t]=U}})();z.8h=1o.8h;z.cY={jJ:0,jI:9,jH:0,jG:"",jF:2V("$ra: r9 $".1f(/[0-9]+/)[0]),2i:B(){4G(z.cY){C jJ+"."+jI+"."+jH+jG+" ("+jF+")"}}};z.d1=B(jE,jD,1V){A 2h=1V||z.1W;R(A i=0,p;2h&&(p=jE[i]);i++){2h=(p in 2h?2h[p]:(jD?2h[p]={}:1k))}C 2h};z.88=B(jC,jA,jB){A d2=jC.1A("."),p=d2.8q(),M=z.d1(d2,K,jB);C(M&&p?(M[p]=jA):1k)};z.6q=B(jz,jy,jx){C z.d1(jz.1A("."),jy,jx)};z.r8=B(jw,M){C!!z.6q(jw,U,M)};z["3u"]=B(d0){C z.1W.3u?z.1W.3u(d0):3u(d0)};z.ia=B(jv,cZ,cX){A 8y="r7: "+jv;if(cZ){8y+=" "+cZ}if(cX){8y+=" -- r6 be r5 in cY: "+cX}1z.1K(8y)};z.r4=B(ju,cW){A cV="r3: "+ju+" -- r2 r1 4F r0 qZ qY.";if(cW){cV+=" "+cW}1z.1K(cV)};(B(){A cR={53:{},6p:0,1h:{},8k:{z:{1p:"z",1Z:"."},cU:{1p:"cU",1Z:"../qX/cU"},cT:{1p:"cT",1Z:"cT"}},cN:B(cS){A mp=D.8k;C jp(mp[cS]&&mp[cS].1Z)},jk:B(8x){A mp=D.8k;if(D.cN(8x)){C mp[8x].1Z}C 8x},8v:[],6t:U,56:[],8t:[],8u:U};R(A cQ in cR){z[cQ]=cR[cQ]}})();z.jg=B(8w,cP,cb){A 1g=(((8w.2s(0)=="/"||8w.1f(/^\\w+:/)))?"":D.51)+8w;if(1o.jt&&z.c8){1g+="?"+67(1o.jt).2f(/\\W+/g,"")}1u{C!cP?D.cO(1g,cb):D.jq(1g,cP,cb)}1y(e){1z.1K(e);C U}};z.cO=B(1g,cb){if(D.8v[1g]){C K}A 6u=D.iR(1g,K);if(!6u){C U}D.8v[1g]=K;D.8v.Y(1g);if(cb){6u="("+6u+")"}A jr=z["3u"](6u+"\\r\\n//@ qW="+1g);if(cb){cb(jr)}C K};z.jq=B(1g,jo,cb){A ok=U;1u{ok=D.cO(1g,cb)}1y(e){1z.1K("qV je ",1g," 4G 9f: ",e)}C jp(ok&&D.53[jo])};z.6m=B(){D.8u=K;D.6t=K;A 57=D.56;D.56=[];R(A x=0;x<57.G;x++){57[x]()}D.8u=U;if(z.6t&&z.6p==0&&D.56.G>0){z.8s()}};z.ck=B(){A 57=D.8t;1s(57.G){(57.8q())()}};z.qU=B(M,jn){A d=z;if(P.G==1){d.56.Y(M)}I{if(P.G>1){d.56.Y(B(){M[jn]()})}}if(d.6t&&d.6p==0&&!d.8u){d.8s()}};z.dW=B(M,jm){A d=z;if(P.G==1){d.8t.Y(M)}I{if(P.G>1){d.8t.Y(B(){M[jm]()})}}};z.iM=B(){if(D.6t){C}if(D.6p>0){1z.1K("qT qS in qR!");C}z.8s()};z.8s=B(){if(V 5c=="8b"||(1o["qQ"]&&z.2M)){5c("z.6m();",0)}I{z.6m()}};z.cF=B(jl){A 4v=jl.1A(".");R(A i=4v.G;i>0;i--){A 8r=4v.2w(0,i).22(".");if((i==1)&&!D.cN(8r)){4v[0]="../"+4v[0]}I{A cM=D.jk(8r);if(cM!=8r){4v.3S(0,i,cM);3f}}}C 4v};z.jj=U;z.8m=B(2T,qP,55){55=D.jj||55;A 54=D.53[2T];if(54){C 54}A cL=2T.1A(".");A 3L=D.cF(2T);A jh=((3L[0].2s(0)!="/")&&!3L[0].1f(/^\\w+:/));A ji=3L[3L.G-1];A 3m;if(ji=="*"){2T=cL.2w(0,-1).22(".");3L.8q();3m=3L.22("/")+"/"+(1o["qO"]||"qN")+".js";if(jh&&3m.2s(0)=="/"){3m=3m.2w(1)}}I{3m=3L.22("/")+".js";2T=cL.22(".")}A jf=(!55)?2T:L;A ok=D.jg(3m,jf);if((!ok)&&(!55)){2m S 1O("qM 3O 4E \'"+2T+"\'; 72 qL \'"+3m+"\'")}if((!55)&&(!D["qK"])){54=D.53[2T];if(!54){2m S 1O("qJ \'"+2T+"\' is 3O qI a8 je \'"+3m+"\'")}}C 54};z.8c=z.8m;z.1Q=B(cK){A cJ=cK+"";A 8p=cJ;A 6s=cK.1A(/\\./);if(6s[6s.G-1]=="*"){6s.8q();8p=6s.22(".")}A 8o=z.6q(8p,K);D.53[cJ]=8o;D.53[8p]=8o;C 8o};z.qH=B(8n){A jd=8n["qG"]||[];A cI=jd.3U(8n[z.j4]||8n["aY"]||[]);R(A x=0;x<cI.G;x++){A 8l=cI[x];if(8l.1P==4e){z.8m.14(z,8l)}I{z.8m(8l)}}};z.jb=B(jc,qF){if(jc===K){A cH=[];R(A i=1;i<P.G;i++){cH.Y(P[i])}z.8c.14(z,cH)}};z.qE=z.jb;z.io=B(cG,ja){D.8k[cG]={1p:cG,1Z:ja}};z.qD=B(qC,qB,qA,qz){z.8c("z.j9");z.j9.qy.14(z.qx,P)};(B(){A j7=S 9G("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?$");A j6=S 9G("^((([^:]+:)?([^@]+))@)?([^:]*)(:([0-9]+))?$");z.4r=B(){A n=L;A 1V=P;A 1g=1V[0];R(A i=1;i<1V.G;i++){if(!1V[i]){6c}A 1t=S z.4r(1V[i]+"");A 4u=S z.4r(1g+"");if((1t.28=="")&&(!1t.4t)&&(!1t.3l)&&(!1t.1r)){if(1t.52!=n){4u.52=1t.52}1t=4u}I{if(!1t.4t){1t.4t=4u.4t;if(!1t.3l){1t.3l=4u.3l;if(1t.28.2s(0)!="/"){A j8=4u.28.21(0,4u.28.31("/")+1)+1t.28;A 1X=j8.1A("/");R(A j=0;j<1X.G;j++){if(1X[j]=="."){if(j==1X.G-1){1X[j]=""}I{1X.3S(j,1);j--}}I{if(j>0&&!(j==1&&1X[0]=="")&&1X[j]==".."&&1X[j-1]!=".."){if(j==(1X.G-1)){1X.3S(j,1);1X[j-1]=""}I{1X.3S(j-1,2);j-=2}}}}1t.28=1X.22("/")}}}}1g="";if(1t.4t){1g+=1t.4t+":"}if(1t.3l){1g+="//"+1t.3l}1g+=1t.28;if(1t.1r){1g+="?"+1t.1r}if(1t.52){1g+="#"+1t.52}}D.1g=1g.2i();A r=D.1g.1f(j7);D.4t=r[2]||(r[1]?"":n);D.3l=r[4]||(r[3]?"":n);D.28=r[5];D.1r=r[7]||(r[6]?"":n);D.52=r[9]||(r[8]?"":n);if(D.3l!=n){r=D.3l.1f(j6);D.8X=r[3]||n;D.8W=r[4]||n;D.qw=r[5];D.qv=r[7]||n}};z.4r.1C.2i=B(){C D.1g}})();z.qu=B(j5,2E){A 2B=z.cF(j5).22("/");if(!2B){C L}if(2B.31("/")!=2B.G-1){2B+="/"}A cE=2B.T(":");if(2B.2s(0)!="/"&&(cE==-1||cE>2B.T("/"))){2B=z.51+2B}C S z.4r(2B,2E)};if(V 26!="1k"){z.c8=K;z.j4="qt";(B(){A d=z;if(1q&&1q.4I){A 8j=1q.4I("ak");A j3=/z(\\.qs)?\\.js([\\?\\.]|$)/i;R(A i=0;i<8j.G;i++){A 4X=8j[i].5t("4X");if(!4X){6c}A m=4X.1f(j3);if(m){if(!1o["51"]){1o["51"]=4X.21(0,m.hK)}A cD=8j[i].5t("1o");if(cD){A cC=3u("({ "+cD+" })");R(A x in cC){1o[x]=cC[x]}}3f}}}d.51=1o["51"];A n=cq;A 8i=n.iL;A 4Z=n.qr;A 6r=2k(4Z);d.2M=(8i.T("qq")>=0)?6r:0;d.6B=(4Z.T("qo")>=0)||(4Z.T("j2")>=0)?6r:0;d.3o=(4Z.T("j2")>=0)?6r:0;A j1=8i.T("qn");d.gu=d.7B=((j1>=0)&&(!d.6B))?6r:0;d.j0=0;d.1l=0;d.iV=0;1u{if(d.7B){d.j0=2k(8i.1A("qm/")[1].1A(" ")[0])}if((1q.gx)&&(!d.2M)){d.1l=2k(4Z.1A("qk ")[1].1A(";")[0])}}1y(e){}if(z.1l&&(26.8f.cu==="9q:")){1o.iT=K}d.iX=B(){A 2A;A qj;A cB=d.6q("cz.cy");if(cB){C cB}if(V iZ!="1k"){2A=S iZ()}I{if(d.1l){1u{2A=S 9j("qi.qh")}1y(e){}}I{if(cq.qg["8Z/x-iY"]){2A=1q.a9("8b");2A.cA("Z","8Z/x-iY");2A.cA("3n",0);2A.cA("58",0);2A.1c.gq="7C";1q.5K.4c(2A)}}}if(!2A){C L}z.88("cz.cy.qf",2A);C z.6q("cz.cy")};A iW=d.iX();if(iW){d.iV=K}A cm=1q["aX"];d.qe=(cm=="aW")||(cm=="gr")||(d.1l<6);d.8h=1o.8h||(d.1l?n.qd:n.qc).1M();d.qb=1z.1K;d.cx=["iU.8g","em.8g","iU.8g.4.0"];d.9b=B(){A 4s=L;A cv=L;if(!z.1l||!1o.iT){1u{4s=S qa()}1y(e){}}if(!4s){R(A i=0;i<3;++i){A cw=z.cx[i];1u{4s=S 9j(cw)}1y(e){cv=e}if(4s){z.cx=[cw];3f}}}if(!4s){2m S 1O("8g 3O q9: "+cv)}C 4s};d.8Y=B(iS){A 4Y=iS.3N||0;C((4Y>=q8)&&(4Y<q7))||(4Y==q6)||(4Y==q5)||(!4Y&&(8f.cu=="9q:"||8f.cu=="q4:"))};A cs=1q.4I("q3");A iQ=(cs&&cs.G>0);d.iR=B(1g,iP){A 3K=D.9b();if(!iQ&&z.4r){1g=(S z.4r(26.8f,1g)).2i()}3K.dL("dD",1g,U);1u{3K.dI(L);if(!d.8Y(3K)){A 1G=1O("q2 4F 4E "+1g+" 3N:"+3K.3N);1G.3N=3K.3N;1G.2G=3K.2G;2m 1G}}1y(e){if(iP){C L}2m e}C 3K.2G}})();z.iO=U;z.6o=B(e){z.iO=K;A cr=(e&&e.Z)?e.Z.1M():"4E";if(P.2O.iN||(cr!="q1"&&cr!="4E")){C}P.2O.iN=K;if(V z["8e"]!="1k"){dX(z.8e);63 z.8e}if(z.6p==0){z.iM()}};if(1q.66){if(z.2M||(z.7B&&(1o["q0"]===K))){1q.66("pZ",z.6o,L)}26.66("4E",z.6o,L)}if(/(pY|pX)/i.6Z(cq.iL)){z.8e=dN(B(){if(/6m|iJ/.6Z(1q.6F)){z.6o()}},10)}(B(){A 3g=26;A 8d=B(cp,fp){A iK=3g[cp]||B(){};3g[cp]=B(){fp.14(3g,P);iK.14(3g,P)}};if(z.1l){1q.fJ("<iI"+"iH pW 4X=\\"//:\\" "+"pV=\\"if(D.6F==\'iJ\'){z.6o();}\\">"+"</iI"+"iH>");A co=K;8d("iG",B(){3g.5c(B(){co=U},0)});8d("pU",B(){if(co){z.ck()}});1u{1q.pT.2P("v","pS:pR-pQ-pP:pO");1q.pN().pM("v\\\\:*","pL:2E(#aY#pK)")}1y(e){}}I{8d("iG",B(){z.ck()})}})();z.pJ=B(){};z.1e=26["1q"]||L;z.3E=B(){C z.1e.3E||z.1e.4I("3E")[0]};z.ch=B(iF,iE){z.1W=iF;z.1e=iE};z.cf=B(4q,6n,iD){if((6n)&&((V 4q=="3c")||(4q 1N 67))){4q=6n[4q]}C(6n?4q.14(6n,iD||[]):4q())};z.pI=B(cj,iC,iB,iA){A cg;A iz=z.1W;A iy=z.1e;1u{z.ch(cj,cj.1q);cg=z.cf(iC,iB,iA)}ir{z.ch(iz,iy)}C cg};z.pH=B(ix,iw,iv,iu){A ce;A ip=z.1e;1u{z.1e=ix;ce=z.cf(iw,iv,iu)}ir{z.1e=ip}C ce};if(1o["cd"]){R(A cc in 1o["cd"]){z.io(cc,1o["cd"][cc])}}}if(1o.im){if(!1z.ca){z.8c("z.pG.ca")}}}if(!z.1h["z.X.c9"]){z.1h["z.X.c9"]=K;z.1Q("z.X.c9");z.1R=B(it){C(V it=="3c"||it 1N 67)};z.2l=B(it){C(it&&it 1N 4e||V it=="6a"||((V z["1H"]!="1k")&&(it 1N z.1H)))};if(z.c8&&z.3o){z.1Y=B(it){if((V(it)=="B")&&(it=="[8b 1H]")){C U}C(V it=="B"||it 1N bI)}}I{z.1Y=B(it){C(V it=="B"||it 1N bI)}}z.ib=B(it){if(V it=="1k"){C U}C(it===L||V it=="8b"||z.2l(it)||z.1Y(it))};z.pF=B(it){A d=z;if((!it)||(V it=="1k")){C U}if(d.1R(it)){C U}if(d.1Y(it)){C U}if(d.2l(it)){C K}if((it.5w)&&(it.5w.1M()=="3R")){C U}if(pE(it.G)){C K}C U};z.pD=B(it){if(!it){C U}C!z.1Y(it)&&/\\{\\s*\\[il 5h\\]\\s*\\}/.6Z(67(it))};z.c7=B(M,4W){A 8a={};R(A x in 4W){if((V 8a[x]=="1k")||(8a[x]!=4W[x])){M[x]=4W[x]}}if(z.1l){A p=4W.2i;if((V(p)=="B")&&(p!=M.2i)&&(p!=8a.2i)&&(p!="\\pC 2i() {\\n [il 5h]\\n}\\n")){M.2i=4W.2i}}C M};z.1x=B(M,pB){R(A i=1,l=P.G;i<l;i++){z.c7(M,P[i])}C M};z.4M=B(c6,pA){R(A i=1,l=P.G;i<l;i++){z.c7(c6.1C,P[i])}C c6};z.ig=B(c5,89){A ij=z.4d(P,2);A ik=z.1R(89);C B(){A ih=z.4d(P);A f=(ik?(c5||z.1W)[89]:89);C(f)&&(f.14(c5||D,ij.3U(ih)))}};z.2p=B(2z,3k){if(P.G>2){C z.ig.14(z,P)}if(!3k){3k=2z;2z=L}if(z.1R(3k)){2z=2z||z.1W;if(!2z[3k]){2m(["z.2p: ie[\\"",3k,"\\"] is L (ie=\\"",2z,"\\")"].22(""))}C B(){C 2z[3k].14(2z,P||[])}}I{C(!2z?3k:B(){C 3k.14(2z,P||[])})}};z.6j=B(M,c3){B c4(){};c4.1C=M;A c2=S c4();if(c3){z.1x(c2,c3)}C c2};z.7X=B(pz){A Q=[L];C z.2p.14(z,Q.3U(z.4d(P)))};z.4d=B(M,ic){A Q=[];R(A x=ic||0;x<M.G;x++){Q.Y(M[x])}C Q};z.c1=B(o){if(!o){C o}if(z.2l(o)){A r=[];R(A i=0;i<o.G;++i){r.Y(z.c1(o[i]))}C r}I{if(z.ib(o)){if(o.2t&&o.a7){C o.a7(K)}I{A r=S o.1P();R(A i in o){if(!(i in r)||r[i]!=o[i]){r[i]=z.c1(o[i])}}C r}}}C o};z.7g=B(2H){C 2H.2f(/^\\s\\s*/,"").2f(/\\s\\s*$/,"")}}if(!z.1h["z.X.2r"]){z.1h["z.X.2r"]=K;z.1Q("z.X.2r");z.2r=B(6l,4p,3j){if(z.1Y(3j)||(P.G>3)){z.ia("z.2r: R 9P \'"+6l+"\' py pw B as \'1P\' pv pu of as a pt i3.","","1.0");A c=3j;3j=P[3]||{};3j.1P=c}A dd=P.2O,4V=L;if(z.2l(4p)){4V=4p;4p=4V.3a()}if(4V){R(A i=0,m;i<4V.G;i++){m=4V[i];if(!m){2m("ps #"+i+" 4F pr of "+6l+" is L. pq\'s pp a po pl is 3O 6m.")}4p=dd.6j(4p,m)}}A i9=(3j||0).1P,6k=dd.6j(4p),fn;R(A i in 3j){if(z.1Y(fn=3j[i])&&(!0[i])){fn.i4=i}}z.4M(6k,{4o:6l,bY:i9,bZ:L},3j||0);6k.1C.1P=6k;C z.88(6l,6k)};z.1x(z.2r,{6j:B(c0,i8){A bp=(c0||0).1C,mp=(i8||0).1C;A 2S=z.2r.i7();z.1x(2S,{84:bp,1x:mp});if(c0){2S.1C=z.6j(bp)}z.4M(2S,z.2r.i6,mp||0,{bY:L});2S.1C.1P=2S;2S.1C.4o=(bp||0).4o+"pk"+(mp||0).4o;z.88(2S.1C.4o,2S);C 2S},i7:B(){C B(){D.i5(P)}},i6:{i5:B(86){A c=86.2O,s=c.84,ct=s&&s.1P,m=c.1x,87=m&&m.1P,a=86,ii,fn;if(a[0]){if((fn=a[0]["bZ"])){a=fn.14(D,a)||a}}if(fn=c.1C.bZ){a=fn.14(D,a)||a}if(ct&&ct.14){ct.14(D,a)}if(87&&87.14){87.14(D,a)}if(ii=c.1C.bY){ii.14(D,86)}},bX:B(85){A c=D.1P,p,m;1s(c){p=c.84;m=c.1x;if(m==85||(m 1N 85.1P)){C p}if(m&&(m=m.bX(85))){C m}c=p&&p.1P}},6h:B(83,82,bW,6i){A p=bW,c,m,f;do{c=p.1P;m=c.1x;if(m&&(m=D.6h(83,82,m,6i))){C m}if((f=p[83])&&(6i==(f==82))){C p}p=c.84}1s(p);C!6i&&(p=D.bX(bW))&&D.6h(83,82,p,6i)},bU:B(2R,4U,bV){A a=P;if(!z.1R(a[0])){bV=4U;4U=2R;2R=4U.2O.i4}A c=4U.2O,p=D.1P.1C,a=bV||4U,fn,mp;if(D[2R]!=c||p[2R]==c){mp=D.6h(2R,c,p,K);if(!mp){2m(D.4o+": 1p i3 (\\""+2R+"\\") 4F bU pj 1f 2O (2r.js)")}p=D.6h(2R,c,mp,U)}fn=p&&p[2R];if(!fn){1z.1K(mp.4o+": no bU \\""+2R+"\\" ph pg (2r.js)");C}C fn.14(D,a)}}})}if(!z.1h["z.X.2c"]){z.1h["z.X.2c"]=K;z.1Q("z.X.2c");z.3i={i2:B(){C B(){A ap=4e.1C,c=P.2O,ls=c.2b,t=c.5V;A r=t&&t.14(D,P);R(A i in ls){if(!(i in ap)){ls[i].14(D,P)}}C r}},2P:B(6g,bT,i1){6g=6g||z.1W;A f=6g[bT];if(!f||!f.2b){A d=z.3i.i2();d.5V=f;d.2b=[];f=6g[bT]=d}C f.2b.Y(i1)},3J:B(i0,hZ,bS){A f=(i0||z.1W)[hZ];if(f&&f.2b&&bS--){63 f.2b[bS]}}};z.2c=B(M,pd,pc,pa,p9){A a=P,F=[],i=0;F.Y(z.1R(a[0])?L:a[i++],a[i++]);A a1=a[i+1];F.Y(z.1R(a1)||z.1Y(a1)?a[i++]:L,a[i++]);R(A l=a.G;i<l;i++){F.Y(a[i])}C z.by.14(D,F)};z.by=B(M,bR,hY,hX){A l=z.3i,h=l.2P(M,bR,z.2p(hY,hX));C[M,bR,h,l]};z.p8=B(6f){if(6f&&6f[0]!==1k){z.bv.14(D,6f);63 6f[0]}};z.bv=B(M,hV,hU,hW){hW.3J(M,hV,hU)};z.80={};z.p7=B(bQ,hT,hS){C[bQ,z.3i.2P(z.80,bQ,z.2p(hT,hS))]};z.p6=B(81){if(81){z.3i.3J(z.80,81[0],81[1])}};z.hQ=B(hR,F){A f=z.80[hR];(f)&&(f.14(D,F||[]))};z.p5=B(hP,M,bP){A pf=B(){z.hQ(hP,P)};C(bP)?z.2c(M,bP,pf):z.2c(M,pf)}}if(!z.1h["z.X.30"]){z.1h["z.X.30"]=K;z.1Q("z.X.30");z.30=B(hO){D.bM=[];D.id=D.hN();D.2y=-1;D.3M=0;D.4R=[L,L];D.bO=hO;D.7Z=U};z.4M(z.30,{hN:(B(){A n=1;C B(){C n++}})(),4C:B(){if(D.2y==-1){if(D.bO){D.bO(D)}I{D.7Z=K}if(D.2y==-1){A 1G=S 1O("30 p4");1G.dY="4C";D.5i(1G)}}I{if((D.2y==0)&&(D.4R[0]1N z.30)){D.4R[0].4C()}}},7V:B(1v){D.2y=((1v 1N 1O)?1:0);D.4R[D.2y]=1v;D.7U()},bN:B(){if(D.2y!=-1){if(!D.7Z){2m S 1O("p3 p2!")}D.7Z=U;C}},dM:B(1v){D.bN();D.7V(1v)},5i:B(1v){D.bN();if(!(1v 1N 1O)){1v=S 1O(1v)}D.7V(1v)},9e:B(cb,4T){A 6e=z.2p(cb,4T);if(P.G>2){6e=z.7X(6e,P,2)}C D.5k(6e,6e)},ef:B(cb,4T){A 7Y=z.2p(cb,4T);if(P.G>2){7Y=z.7X(7Y,P,2)}C D.5k(7Y,L)},ed:B(cb,4T){A 7W=z.2p(cb,4T);if(P.G>2){7W=z.7X(7W,P,2)}C D.5k(L,7W)},5k:B(cb,eb){D.bM.Y([cb,eb]);if(D.2y>=0){D.7U()}C D},7U:B(){A bL=D.bM;A 4n=D.2y;A 1v=D.4R[4n];A 4S=D;A cb=L;1s((bL.G>0)&&(D.3M==0)){A f=bL.3a()[4n];if(!f){6c}1u{1v=f(1v);4n=((1v 1N 1O)?1:0);if(1v 1N z.30){cb=B(1v){4S.7V(1v);4S.3M--;if((4S.3M==0)&&(4S.2y>=0)){4S.7U()}};D.3M++}}1y(1G){1z.1K(1G);4n=1;1v=1G}}D.2y=4n;D.4R[4n]=1v;if((cb)&&(D.3M)){1v.9e(cb)}}})}if(!z.1h["z.X.2e"]){z.1h["z.X.2e"]=K;z.1Q("z.X.2e");z.5m=B(2e){1u{C 3u("("+2e+")")}1y(e){1z.1K(e);C 2e}};z.bK=B(2H){C("\\""+2H.2f(/(["\\\\])/g,"\\\\$1")+"\\"").2f(/[\\f]/g,"\\\\f").2f(/[\\b]/g,"\\\\b").2f(/[\\n]/g,"\\\\n").2f(/[\\t]/g,"\\\\t").2f(/[\\r]/g,"\\\\r")};z.hM="\\t";z.eq=B(it,4l,4P){4P=4P||"";A 4k=(4l?4P+z.hM:"");A 6b=(4l?"\\n":"");A 4Q=V(it);if(4Q=="1k"){C"1k"}I{if((4Q=="4J")||(4Q=="p1")){C it+""}I{if(it===L){C"L"}}}if(4Q=="3c"){C z.bK(it)}A 6d=P.2O;A 4m;if(V it.hL=="B"){4m=it.hL();if(it!==4m){C 6d(4m,4l,4k)}}if(V it.2e=="B"){4m=it.2e();if(it!==4m){C 6d(4m,4l,4k)}}if(z.2l(it)){A 1v=[];R(A i=0;i<it.G;i++){A 1U=6d(it[i],4l,4k);if(V(1U)!="3c"){1U="1k"}1v.Y(6b+4k+1U)}C"["+1v.22(", ")+6b+4P+"]"}if(4Q=="B"){C L}A bJ=[];R(A 1i in it){A 7T;if(V(1i)=="4J"){7T="\\""+1i+"\\""}I{if(V(1i)=="3c"){7T=z.bK(1i)}I{6c}}1U=6d(it[1i],4l,4k);if(V(1U)!="3c"){6c}bJ.Y(6b+4k+7T+": "+1U)}C"{"+bJ.22(", ")+6b+4P+"}"}}if(!z.1h["z.X.6a"]){z.1h["z.X.6a"]=K;z.1Q("z.X.6a");(B(){A 69=B(Q,M,cb){C[(z.1R(Q)?Q.1A(""):Q),(M||z.1W),(z.1R(cb)?(S bI("1m","hK","6a",cb)):cb)]};z.1x(z,{T:B(bH,hH,hI,hJ){A i=0,2q=1,1d=bH.G;if(hJ){i=1d-1;2q=1d=-1}R(i=hI||i;i!=1d;i+=2q){if(bH[i]==hH){C i}}C-1},31:B(hG,hF,hE){C z.T(hG,hF,hE,K)},1n:B(Q,hD,M){if(!Q||!Q.G){C}A 1I=69(Q,M,hD);Q=1I[0];R(A i=0,l=1I[0].G;i<l;i++){1I[2].2d(1I[1],Q[i],i,Q)}},bE:B(bF,Q,hC,M){A 1I=69(Q,M,hC);Q=1I[0];R(A i=0,l=Q.G;i<l;i++){A bG=!!1I[2].2d(1I[1],Q[i],i,Q);if(bF^bG){C bG}}C bF},ah:B(Q,hB,hA){C D.bE(K,Q,hB,hA)},ag:B(Q,hz,hy){C D.bE(U,Q,hz,hy)},23:B(Q,7t,M){A 1I=69(Q,M,7t);Q=1I[0];A bD=((P[3])?(S P[3]()):[]);R(A i=0;i<Q.G;++i){bD.Y(1I[2].2d(1I[1],Q[i],i,Q))}C bD},3T:B(Q,hx,M){A 1I=69(Q,M,hx);Q=1I[0];A bC=[];R(A i=0;i<Q.G;i++){if(1I[2].2d(1I[1],Q[i],i,Q)){bC.Y(Q[i])}}C bC}})})()}if(!z.1h["z.X.1J"]){z.1h["z.X.1J"]=K;z.1Q("z.X.1J");z.1J=B(bB){if(bB){D.hw(bB)}};z.1J.hp={p0:[0,0,0],oZ:[60,60,60],oY:[2j,2j,2j],oX:[1T,1T,1T],oW:[2j,0,0],oV:[1T,0,0],oU:[2j,0,2j],oT:[1T,0,1T],oS:[0,2j,0],oR:[0,1T,0],oQ:[2j,2j,0],oP:[1T,1T,0],oO:[0,0,2j],oN:[0,0,1T],oM:[0,2j,2j],oL:[0,1T,1T]};z.4M(z.1J,{r:1T,g:1T,b:1T,a:1,bz:B(r,g,b,a){A t=D;t.r=r;t.g=g;t.b=b;t.a=a},hw:B(2Q){A d=z;if(d.1R(2Q)){d.hq(2Q,D)}I{if(d.2l(2Q)){d.7P(2Q,D)}I{D.bz(2Q.r,2Q.g,2Q.b,2Q.a);if(!(2Q 1N d.1J)){D.7Q()}}}C D},7Q:B(){C D},oK:B(){A t=D;C[t.r,t.g,t.b]},oJ:B(){A t=D;C[t.r,t.g,t.b,t.a]},oI:B(){A Q=z.23(["r","g","b"],B(x){A s=D[x].2i(16);C s.G<2?"0"+s:s},D);C"#"+Q.22("")},8F:B(hv){A t=D,7S=t.r+", "+t.g+", "+t.b;C(hv?"hs("+7S+", "+t.a:"7S("+7S)+")"},2i:B(){C D.8F(K)}});z.d8=B(bA,1d,hu,M){A d=z,t=M||S z.1J();d.1n(["r","g","b","a"],B(x){t[x]=bA[x]+(1d[x]-bA[x])*hu;if(x!="a"){t[x]=2Y.oH(t[x])}});C t.7Q()};z.ho=B(ht,M){A m=ht.1M().1f(/^hs?\\(([\\s\\.,0-9]+)\\)/);C m&&z.7P(m[1].1A(/\\s*,\\s*/),M)};z.hn=B(4j,M){A d=z,t=M||S d.1J(),7R=(4j.G==4)?4:8,hr=(1<<7R)-1;4j=2V("oG"+4j.3b(1));if(2L(4j)){C L}d.1n(["b","g","r"],B(x){A c=4j&hr;4j>>=7R;t[x]=7R==4?17*c:c});t.a=1;C t};z.7P=B(a,M){A t=M||S z.1J();t.bz(2V(a[0]),2V(a[1]),2V(a[2]),2V(a[3]));if(2L(t.a)){t.a=1}C t.7Q()};z.hq=B(2H,M){A a=z.1J.hp[2H];C a&&z.7P(a,M)||z.ho(2H,M)||z.hn(2H,M)}}if(!z.1h["z.X"]){z.1h["z.X"]=K;z.1Q("z.X")}if(!z.1h["z.X.5Z"]){z.1h["z.X.5Z"]=K;z.1Q("z.X.5Z");(B(){A 1j=z.b2={2P:B(E,68,fp){if(!E){C}68=1j.4O(68);fp=1j.7G(68,fp);E.66(68,fp,U);C fp},3J:B(E,hm,hl){(E)&&(E.oF(1j.4O(hm),hl,U))},4O:B(1p){C(1p.2w(0,2)=="on"?1p.2w(2):1p)},7G:B(1p,fp){C(1p!="4b"?fp:B(e){C fp.2d(D,1j.4i(e,D))})},4i:B(H,oE){4w(H.Z){2X"4b":1j.7K(H);3f}C H},7K:B(H){H.oD=(H.3h?67.oC(H.3h):"")}};z.oB=B(H,hk){C 1j.4i(H,hk)};z.gY=B(H){H.7J();H.7I()};A 7O=z.3i;z.by=B(M,bx,hh,hg,hi){A hj=M&&(M.2t||M.oA||M.66);A bw=!hj?0:(!hi?1:2),l=[z.3i,1j,7O][bw];A h=l.2P(M,bx,z.2p(hh,hg));C[M,bx,h,bw]};z.bv=B(M,he,hd,hf){([z.3i,1j,7O][hf]).3J(M,he,hd)};z.5W={oz:8,gV:9,oy:12,ox:13,ow:16,ov:17,ou:18,gG:19,ot:20,os:27,or:32,b5:33,b4:34,gE:35,gF:36,b7:37,b9:38,b6:39,b8:40,gD:45,8S:46,oq:47,oo:91,om:92,ol:93,oj:96,oi:97,oh:98,og:99,oe:6D,od:oc,ob:oa,o9:o8,o7:o6,o5:o4,o3:bi,o2:o1,o0:nZ,nY:nX,nW:nV,nU:bk,gS:nT,gR:nS,gQ:nR,gP:nQ,gO:nP,gN:nO,gM:nN,gL:nM,gK:nL,gJ:nK,gI:nJ,gH:nI,nH:nG,nF:nE,nD:nC,gB:nB,gC:nA};if(z.1l){bf=B(e,5h){1u{C(e.3I=5h)}1y(e){C 0}};A 61=z.3i;if(!1o.nz){7O=61=z.gy={b3:[],2P:B(64,bu,hc){64=64||z.1W;A f=64[bu];if(!f||!f.2b){A d=z.gz();d.5V=f&&(7M.Y(f)-1);d.2b=[];f=64[bu]=d}C f.2b.Y(7M.Y(hc)-1)},3J:B(hb,ha,7N){A f=(hb||z.1W)[ha],l=f&&f.2b;if(f&&l&&7N--){63 7M[l[7N]];63 l[7N]}}};A 7M=61.b3}z.1x(1j,{2P:B(E,62,fp){if(!E){C}62=1j.4O(62);if(62=="h3"){A kd=E.bs;if(!kd||!kd.2b||!kd.h9){1j.2P(E,"bs",1j.h4);E.bs.h9=K}}C 61.2P(E,62,1j.7G(fp))},3J:B(E,h8,h7){61.3J(E,1j.4O(h8),h7)},4O:B(7L){C(7L.2w(0,2)!="on"?"on"+7L:7L)},ny:B(){},4i:B(H,4N){if(!H){A w=(4N)&&((4N.aD||4N.1q||4N).nx)||26;H=w.5Z}if(!H){C(H)}H.5V=H.br;H.bh=(4N||H.br);H.nw=H.nv;H.nu=H.nr;A bq=H.br,1e=(bq&&bq.aD)||1q;A bn=((z.1l<6)||(1e["aX"]=="aW"))?1e.3E:1e.5K;A bm=z.aB();H.nq=H.np+z.aH(bn.5I||0)-bm.x;H.nn=H.nm+(bn.5G||0)-bm.y;if(H.Z=="fk"){H.h6=H.nl}if(H.Z=="fj"){H.h6=H.nk}H.7I=1j.bc;H.7J=1j.ba;C 1j.h5(H)},h5:B(H){4w(H.Z){2X"4b":A c=("3h"in H?H.3h:H.3I);if(c==10){c=0;H.3I=13}I{if(c==13||c==27){c=0}I{if(c==3){c=99}}}H.3h=c;1j.7K(H);3f}C H},gZ:{bi:42,bk:47,h2:59,nj:43,ni:44,nh:45,ng:46,nf:47,60:96,h1:91,nb:92,na:93,h0:39},h4:B(H){A kp=H.bh.h3;if(!kp||!kp.2b){C}A k=H.3I;A bj=(k!=13)&&(k!=32)&&(k!=27)&&(k<48||k>90)&&(k<96||k>bk)&&(k<h2||k>60)&&(k<h1||k>h0);if(bj||H.5Y){A c=(bj?0:k);if(H.5Y){if(k==3||k==13){C}I{if(c>95&&c<bi){c-=48}I{if((!H.5X)&&(c>=65&&c<=90)){c+=32}I{c=1j.gZ[c]||c}}}}A 2x=1j.7H(H,{Z:"4b",2x:K,3h:c});kp.2d(H.bh,2x);H.bg=2x.bg;H.bd=2x.bd;bf(H,2x.3I)}},bc:B(){D.bg=K},ba:B(){D.n9=D.3I;if(D.5Y){bf(D,0)}D.bd=U}});z.gY=B(H){H=H||26.5Z;1j.bc.2d(H);1j.ba.2d(H)}}1j.7H=B(H,gX){A 2x=z.1x({},H,gX);1j.7K(2x);2x.7J=B(){H.7J()};2x.7I=B(){H.7I()};C 2x};if(z.2M){z.1x(1j,{4i:B(H,n8){4w(H.Z){2X"4b":A c=H.n7;if(c==3){c=99}c=((c<41)&&(!H.5X)?0:c);if((H.5Y)&&(!H.5X)&&(c>=65)&&(c<=90)){c+=32}C 1j.7H(H,{3h:c})}C H}})}if(z.3o){z.1x(1j,{4i:B(H,n6){4w(H.Z){2X"4b":A c=H.3h,s=H.5X,k=H.3I;k=k||gA[H.gW]||0;if(H.gW=="n5"){c=0}I{if((H.5Y)&&(c>0)&&(c<27)){c+=96}I{if(c==z.5W.gU){c=z.5W.gV;s=K}I{c=(c>=32&&c<gT?c:0)}}}C 1j.7H(H,{3h:c,5X:s,3I:k})}C H}});z.1x(z.5W,{gU:25,b9:gT,b8:n4,b7:n3,b6:n2,gS:n1,gR:n0,gQ:mZ,gP:mY,gO:mX,gN:mW,gM:mV,gL:mU,gK:mT,gJ:mS,gI:mR,gH:mQ,gG:mP,8S:mO,gF:mN,gE:mM,b5:mL,b4:mK,gD:mJ,mI:mH,gC:mG,gB:mF});A dk=z.5W,gA={"mE":dk.b9,"mD":dk.b8,"mC":dk.b7,"mB":dk.b6,"mA":dk.b5,"mz":dk.b4}}})();if(z.1l){z.gz=B(){C B(){A ap=4e.1C,h=z.gy.b3,c=P.2O,ls=c.2b,t=h[c.5V];A r=t&&t.14(D,P);R(A i in ls){if(!(i in ap)){h[ls[i]].14(D,P)}}C r}};z.b2.7G=B(fp){A f=z.b2.4i;C B(e){C fp.2d(D,f(e,D))}}}}if(!z.1h["z.X.b1"]){z.1h["z.X.b1"]=K;z.1Q("z.X.b1");1u{1q.my("mx",U,K)}1y(e){}if(z.1l||z.2M){z.1D=B(id,1e){if(z.1R(id)){A b0=(1e||z.1e);A 11=b0.gv(id);if((11)&&(11.gw.id.1Z==id)){C 11}I{A 5U=b0.gx[id];if(!5U){C}if(!5U.G){C 5U}A i=0;1s(11=5U[i++]){if(11.gw.id.1Z==id){C 11}}}}I{C id}}}I{z.1D=B(id,1e){if(z.1R(id)){C(1e||z.1e).gv(id)}I{C id}}}(B(){A 5T=L;z.mw=B(E){E=z.1D(E);1u{if(!5T){5T=1q.a9("mv")}5T.4c(E.1L?E.1L.fs(E):E);5T.9L=""}1y(e){}};z.mu=B(E,7F){1u{E=z.1D(E);7F=z.1D(7F);1s(E){if(E===7F){C K}E=E.1L}}1y(e){}C U};z.mt=B(E,5S){E=z.1D(E);if(z.gu){E.1c.ms=(5S)?"dg":"7C"}I{if(z.6B){E.1c.mr=(5S)?"8K":"7C"}I{if(z.1l){E.gs=(5S)?"":"on";z.1r("*",E).1n(B(gt){gt.gs=(5S)?"":"on"})}}}};A 5R=B(E,4h){4h.1L.mq(E,4h);C K};A aZ=B(E,4h){A pn=4h.1L;if(4h==pn.fm){pn.4c(E)}I{C 5R(E,4h.71)}C K};z.5E=B(E,2a,3H){if((!E)||(!2a)||(V 3H=="1k")){C U}E=z.1D(E);2a=z.1D(2a);if(V 3H=="4J"){A cn=2a.3W;if(((3H==0)&&(cn.G==0))||(cn.G==3H)){2a.4c(E);C K}if(3H==0){C 5R(E,2a.5A)}C aZ(E,cn[3H-1])}4w(3H.1M()){2X"mo":C 5R(E,2a);2X"a8":C aZ(E,2a);2X"9M":if(2a.5A){C 5R(E,2a.5A)}I{2a.4c(E);C K}3f;aY:2a.4c(E);C K}};z.aP="5g-3G";if(z.1l){A aV=1q.aX;z.aP=(aV=="aW")||(aV=="gr")||(z.1l<6)?"g5-3G":"5g-3G"}A 1E,dv=1q.mn;if(z.3o){1E=B(E){A s=dv.3F(E,L);if(!s&&E.1c){E.1c.gq="";s=dv.3F(E,L)}C s||{}}}I{if(z.1l){1E=B(E){C E.gn}}I{1E=B(E){C dv.3F(E,L)}}}z.3F=1E;if(!z.1l){z.4g=B(mm,gp){C 2k(gp)||0}}I{z.4g=B(go,2N){if(!2N){C 0}if(2N=="ml"){C 4}if(2N.2w&&(2N.2w(-2)=="px")){C 2k(2N)}4G(go){A gm=1c.2g;A gl=aU.2g;aU.2g=gn.2g;1u{1c.2g=2N;2N=1c.mk}1y(e){2N=0}1c.2g=gm;aU.2g=gl}C 2N}}z.ge=(z.1l?B(E){1u{C(E.mj.mi.2W/6D)}1y(e){C 1}}:B(E){C z.3F(E).2W});z.gf=(z.1l?B(E,7D){if(7D==1){E.1c.7E=E.1c.7E.2f(/gk:[^;]*;/i,"");if(E.gj.1M()=="gi"){z.1r("> gh",E).1n(B(i){i.1c.7E=i.1c.7E.2f(/gk:[^;]*;/i,"")})}}I{A o="mh(mg="+(7D*6D)+")";E.1c.3T=o}if(E.gj.1M()=="gi"){z.1r("> gh",E).1n(B(i){i.1c.3T=o})}C 7D}:B(E,gg){C E.1c.2W=gg});A 5Q={3n:K,58:K,2g:K,5J:K};A gd=B(E,Z,5P){Z=Z.1M();if(5Q[Z]===K){C z.4g(E,5P)}I{if(5Q[Z]===U){C 5P}I{if((Z.T("mf")>=0)||(Z.T("md")>=0)||(Z.T("3n")>=0)||(Z.T("58")>=0)||(Z.T("5q")>=0)||(Z.T("mc")>=0)||(Z.T("ma")>=0)){5Q[Z]=K;C z.4g(E,5P)}I{5Q[Z]=U;C 5P}}}};z.1c=B(E,5O,aT){A n=z.1D(E),F=P.G,op=(5O=="2W");if(F==3){C op?z.gf(n,aT):n.1c[5O]=aT}if(F==2&&op){C z.ge(n)}A s=z.3F(n);C(F==1)?s:gd(n,5O,s[5O])};z.7A=B(n,gc){A s=gc||1E(n),px=z.4g,l=px(n,s.m9),t=px(n,s.m8);C{l:l,t:t,w:l+px(n,s.m7),h:t+px(n,s.m6)}};z.5N=B(n,gb){A ne="7C",px=z.4g,s=gb||1E(n),bl=(s.m5!=ne?px(n,s.m4):0),bt=(s.m3!=ne?px(n,s.m2):0);C{l:bl,t:bt,w:bl+(s.m1!=ne?px(n,s.m0):0),h:bt+(s.lZ!=ne?px(n,s.lY):0)}};z.aN=B(n,ga){A s=ga||1E(n),p=z.7A(n,s),b=z.5N(n,s);C{l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h}};z.aM=B(n,g9){A s=g9||1E(n),px=z.4g,l=px(n,s.lX),t=px(n,s.lW),r=px(n,s.lV),b=px(n,s.lU);if(z.3o&&(s.ax!="fU")){r=l}C{l:l,t:t,w:l+r,h:t+b}};z.au=B(E,g8){A s=g8||1E(E),me=z.aM(E,s);A l=E.fT-me.l,t=E.fS-me.t;if(z.7B){A aS=2k(s.2g),aR=2k(s.5J);if(!2L(aS)&&!2L(aR)){l=aS,t=aR}I{A p=E.1L;if(p&&p.1c){A aQ=1E(p);if(aQ.lT!="lS"){A be=z.5N(p,aQ);l+=be.l,t+=be.t}}}}I{if(z.2M){A p=E.1L;if(p){A be=z.5N(p);l-=be.l,t-=be.t}}}C{l:l,t:t,w:E.6v+me.w,h:E.8D+me.h}};z.aK=B(E,g7){A s=g7||1E(E),pe=z.7A(E,s),be=z.5N(E,s),w=E.aF,h;if(!w){w=E.6v,h=E.8D}I{h=E.lR,be.w=be.h=0}if(z.2M){pe.l+=be.l;pe.t+=be.t}C{l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h}};z.lQ=B(E,g6){A s=g6||1E(E),pe=z.7A(E,s),cb=z.aK(E,s);C{l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h}};z.aL=B(E,l,t,w,h,u){u=u||"px";4G(E.1c){if(!2L(l)){2g=l+u}if(!2L(t)){5J=t+u}if(w>=0){3n=w+u}if(h>=0){58=h+u}}};z.aO=B(E){A n=E.5w;C(z.aP=="g5-3G")||(n=="lP")||(n=="lO")};z.fX=B(E,7z,7y,g4){A bb=z.aO(E);if(bb){A pb=z.aN(E,g4);if(7z>=0){7z+=pb.w}if(7y>=0){7y+=pb.h}}z.aL(E,g3,g3,7z,7y)};z.fY=B(E,g1,g0,5M,5L,g2){A s=g2||z.3F(E);A bb=z.aO(E),pb=bb?fZ:z.aN(E,s),mb=z.aM(E,s);if(5M>=0){5M=2Y.5q(5M-pb.w-mb.w,0)}if(5L>=0){5L=2Y.5q(5L-pb.h-mb.h,0)}z.aL(E,g1,g0,5M,5L)};A fZ={l:0,t:0,w:0,h:0};z.lN=B(E,3G){A n=z.1D(E),s=1E(n),b=3G;C!b?z.au(n,s):z.fY(n,b.l,b.t,b.w,b.h,s)};z.lM=B(E,3G){A n=z.1D(E),s=1E(n),b=3G;C!b?z.aK(n,s):z.fX(n,b.w,b.h,s)};A 5H=B(E,1a){if(!(E=(E||0).1L)){C 0}A 1U,aJ=0,2h=z.3E();1s(E&&E.1c){if(1E(E).ax=="lL"){C 0}1U=E[1a];if(1U){aJ+=1U-0;if(E==2h){3f}}E=E.1L}C aJ};z.fQ=B(){A 2h=z.3E();A 3g=z.1W;A de=z.1e.5K;C{y:(3g.lK||de.5G||2h.5G||0),x:(3g.lJ||z.aH(de.5I)||2h.5I||0)}};z.aG=B(){C V z.aI=="1k"?(z.aI=z.3F(z.3E()).lI=="lH"):z.aI};z.aB=B(){A de=z.1e.5K;if(z.1l>=7){C{x:de.aC().2g,y:de.aC().5J}}I{C{x:z.aG()||26.am==26?de.fW:de.6v-de.aF-de.fW,y:de.lG}}};z.aH=B(aE){if(z.1l&&!z.aG()){A de=z.1e.5K;C aE+de.aF-de.lF}C aE};z.fP=B(E,aw){A ay=E.aD;A J={x:0,y:0};A 7w=U;A db=z.3E();if(z.1l){A aA=E.aC();A az=z.aB();J.x=aA.2g-az.x;J.y=aA.5J-az.y}I{if(ay["fV"]){A bo=ay.fV(E);J.x=bo.x-5H(E,"5I");J.y=bo.y-5H(E,"5G")}I{if(E["fR"]){7w=K;A 7x;if(z.3o&&(1E(E).ax=="fU")&&(E.1L==db)){7x=db}I{7x=db.1L}if(E.1L!=db){A nd=E;if(z.2M){nd=db}J.x-=5H(nd,"5I");J.y-=5H(nd,"5G")}A 4f=E;do{A n=4f["fT"];if(!z.2M||n>0){J.x+=2L(n)?0:n}A m=4f["fS"];J.y+=2L(m)?0:m;4f=4f.fR}1s((4f!=7x)&&4f)}I{if(E["x"]&&E["y"]){J.x+=2L(E.x)?0:E.x;J.y+=2L(E.y)?0:E.y}}}}if(7w||aw){A av=z.fQ();A m=7w?(!aw?-1:0):1;J.y+=m*av.y;J.x+=m*av.x}C J};z.af=B(E,fO){A n=z.1D(E),s=1E(n),mb=z.au(n,s);A at=z.fP(n,fO);mb.x=at.x;mb.y=at.y;C mb}})();z.fL=B(E,fN){C((" "+E.3A+" ").T(" "+fN+" ")>=0)};z.7s=B(E,ar){A 7v=E.3A;if((" "+7v+" ").T(" "+ar+" ")<0){E.3A=7v+(7v?" ":"")+ar}};z.7r=B(E,fM){A t=z.7g((" "+E.3A+" ").2f(" "+fM+" "," "));if(E.3A!=t){E.3A=t}};z.lE=B(E,aq,7u){if(V 7u=="1k"){7u=!z.fL(E,aq)}z[7u?"7s":"7r"](E,aq)}}if(!z.1h["z.X.1H"]){z.1h["z.X.1H"]=K;z.1Q("z.X.1H");(B(){A d=z;z.1H=B(){A F=P;if((F.G==1)&&(V F[0]=="4J")){D.G=eK(F[0])}I{if(F.G){d.1n(F,B(i){D.Y(i)},D)}}};z.1H.1C=S 4e;if(d.1l){A fK=B(al){C("A a2 = am."+al+"; "+"A ap = 4e.1C; "+"A ao = a2.1C; "+"R(A x in ao){ ap[x] = ao[x]; } "+"am."+al+" = 4e; ")};A fI=fK("z.1H");A aj=26.lD();aj.1q.fJ("<ak>"+fI+"</ak>");aj.lC(1,1,1,1)}z.4M(z.1H,{T:B(fH,fG){C d.T(D,fH,fG)},31:B(lB,lA){A aa=d.4d(P);aa.ae(D);C d.31.14(d,aa)},ah:B(fF,fE){C d.ah(D,fF,fE)},ag:B(fD,fC){C d.ag(D,fD,fC)},1n:B(fB,fA){d.1n(D,fB,fA);C D},23:B(7t,M){C d.23(D,7t,M,d.1H)},af:B(){C d.23(D,d.af)},1c:B(lz,ly){A aa=d.4d(P);aa.ae(D[0]);A s=d.1c.14(d,aa);C(P.G>1)?D:s},lx:B(lw,lv){A aa=d.4d(P);aa.ae(L);A s=D.23(B(i){aa[0]=i;C d.1c.14(d,aa)});C(P.G>1)?D:s},7s:B(fz){C D.1n(B(i){z.7s(i,fz)})},7r:B(fy){C D.1n(B(i){z.7r(i,fy)})},5E:B(fw,7q){A 1m=d.1r(fw)[0];7q=7q||"72";R(A x=0;x<D.G;x++){d.5E(D[x],1m,7q)}C D},2c:B(fv,fu,ft){D.1n(B(1m){d.2c(1m,fv,fu,ft)});C D},lu:B(ad){A ac=(ad)?d.9t(D,ad):D;ac.1n(B(1m){if(1m["1L"]){1m.1L.fs(1m)}});C ac},lt:B(fr,fq){A 1m=D[0];C d.1r(fr).1n(B(ai){d.5E(ai,1m,(fq||"72"))})},1r:B(7p){7p=7p||"";A J=S d.1H();D.1n(B(1m){d.1r(7p,1m).1n(B(ab){if(V ab!="1k"){J.Y(ab)}})});C J},3T:B(fo){A 5F=D;A 1V=P;A r=S d.1H();A rp=B(t){if(V t!="1k"){r.Y(t)}};if(d.1R(fo)){5F=d.9t(D,1V[0]);if(1V.G==1){C 5F}d.1n(d.3T(5F,1V[1],1V[2]),rp);C r}d.1n(d.3T(5F,1V[0],1V[1]),rp);C r},lr:B(7o,7n){A 1S=d.1e.a9("lq");if(d.1R(7o)){1S.9L=7o}I{1S.4c(7o)}A ct=((7n=="9M")||(7n=="a8"))?"fm":"5A";D.1n(B(1m){A 24=1S.a7(K);1s(24[ct]){d.5E(24[ct],1m,7n)}});C D},7m:B(fl,F){A a5=[];F=F||{};D.1n(B(1m){A a6={E:1m};d.1x(a6,F);a5.Y(d[fl](a6))});C d.fx.lp(a5)},8I:B(F){C D.7m("8I",F)},8H:B(F){C D.7m("8H",F)},6y:B(F){C D.7m("6y",F)}});z.1n(["fk","lo","fj","fi","ln","lm","ll","fi","lk","lj","4b"],B(H){A a4="on"+H;z.1H.1C[a4]=B(a,b){C D.2c(a4,a,b)}})})()}if(!z.1h["z.X.1r"]){z.1h["z.X.1r"]=K;z.1Q("z.X.1r");(B(){A d=z;A 2I=B(q){C[q.T("#"),q.T("."),q.T("["),q.T(":")]};A a0=B(a3,fh){A ql=a3.G;A i=2I(a3);A 1d=ql;R(A x=fh;x<i.G;x++){if(i[x]>=0){if(i[x]<1d){1d=i[x]}}}C(1d<0)?ql:1d};A 6X=B(7l){A i=2I(7l);if(i[0]!=-1){C 7l.21(i[0]+1,a0(7l,1))}I{C""}};A 5r=B(7k){A 5D;A i=2I(7k);if((i[0]==0)||(i[1]==0)){5D=0}I{5D=a0(7k,0)}C((5D>0)?7k.3b(0,5D).1M():"*")};A fg=B(Q){A J=-1;R(A x=0;x<Q.G;x++){A 1S=Q[x];if(1S>=0){if((1S>J)||(J==-1)){J=1S}}}C J};A 9H=B(7i){A i=2I(7i);if(-1==i[1]){C""}A di=i[1]+1;A 7j=fg(i.2w(2));if(di<7j){C 7i.21(di,7j)}I{if(-1==7j){C 7i.3b(di)}I{C""}}};A f3=[{1i:"|=",1f:B(15,fe){C"[5z(3U(\' \',@"+15+",\' \'), \' "+fe+"-\')]"}},{1i:"~=",1f:B(15,fd){C"[5z(3U(\' \',@"+15+",\' \'), \' "+fd+" \')]"}},{1i:"^=",1f:B(15,fb){C"[li-4G(@"+15+", \'"+fb+"\')]"}},{1i:"*=",1f:B(15,fa){C"[5z(@"+15+", \'"+fa+"\')]"}},{1i:"$=",1f:B(15,9Z){C"[21(@"+15+", 3c-G(@"+15+")-"+(9Z.G-1)+")=\'"+9Z+"\']"}},{1i:"!=",1f:B(15,f9){C"[3O(@"+15+"=\'"+f9+"\')]"}},{1i:"=",1f:B(15,f8){C"[@"+15+"=\'"+f8+"\']"}}];A 9C=B(9Y,3Z,f7,f6){A 49;A i=2I(3Z);if(i[2]>=0){A 4L=3Z.T("]",i[2]);A 29=3Z.21(i[2]+1,4L);1s(29&&29.G){if(29.2s(0)=="@"){29=29.2w(1)}49=L;R(A x=0;x<9Y.G;x++){A 1S=9Y[x];A 7h=29.T(1S.1i);if(7h>=0){A 15=29.21(0,7h);A 4a=29.21(7h+1S.1i.G);if((4a.2s(0)=="\\"")||(4a.2s(0)=="\'")){4a=4a.21(1,4a.G-1)}49=1S.1f(d.7g(15),d.7g(4a));3f}}if((!49)&&(29.G)){49=f7(29)}if(49){f6(49)}29=L;A 7f=3Z.T("[",4L);if(0<=7f){4L=3Z.T("]",7f);if(0<=4L){29=3Z.21(7f+1,4L)}}}}};A f0=B(f5){A 4K=".";A 7e=f5.1A(" ");1s(7e.G){A 2K=7e.3a();A 7d;if(2K==">"){7d="/";2K=7e.3a()}I{7d="//"}A f4=5r(2K);4K+=7d+f4;A id=6X(2K);if(id.G){4K+="[@id=\'"+id+"\'][1]"}A cn=9H(2K);if(cn.G){A 9X=" ";if(cn.2s(cn.G-1)=="*"){9X="";cn=cn.3b(0,cn.G-1)}4K+="[5z(3U(\' \',@9P,\' \'), \' "+cn+9X+"\')]"}9C(f3,2K,B(f2){C"[@"+f2+"]"},B(f1){4K+=f1})}C 4K};A 7a={};A eC=B(28){if(7a[28]){C 7a[28]}A 1e=d.1e;A 9W=f0(28);A 4H=B(9V){A J=[];A 7b;1u{7b=1e.9x(9W,9V,L,lh.lg,L)}1y(e){1z.1K("lf in le:",9W,"lc:",9V);1z.1K(e)}A 7c=7b.eZ();1s(7c){J.Y(7c);7c=7b.eZ()}C J};C 7a[28]=4H};A 5x={};A 9B={};A 3y=B(79,78){if(!79){C 78}if(!78){C 79}C B(){C 79.14(26,P)&&78.14(26,P)}};A 75=B(9U,3Y,5B,2J){A 2v=2J+1;A 76=(3Y.G==2v);A 2K=3Y[2J];if(2K==">"){A 77=9U.3W;if(!77.G){C}2v++;76=(3Y.G==2v);A 4H=6O(3Y[2J+1]);R(A x=0,11;x<77.G,11=77[x];x++){if(4H(11)){if(76){5B.Y(11)}I{75(11,3Y,5B,2v)}}}}A 5C=6U(2K)(9U);if(76){1s(5C.G){5B.Y(5C.3a())}}I{1s(5C.G){75(5C.3a(),3Y,5B,2v)}}};A eE=B(9T,eY){A J=[];A x=9T.G-1,11;1s(11=9T[x--]){75(11,eY,J,0)}C J};A 6O=B(3D){if(5x[3D]){C 5x[3D]}A ff=L;A 9S=5r(3D);if(9S!="*"){ff=3y(ff,B(N){C((N.2t==1)&&(9S==N.5w.1M()))})}A 9R=6X(3D);if(9R.G){ff=3y(ff,B(N){C((N.2t==1)&&(N.id==9R))})}if(2Y.5q.14(D,2I(3D).2w(1))>=0){ff=3y(ff,9z(3D))}C 5x[3D]=ff};A 5y=B(E){A pn=E.1L;A 9Q=pn.3W;A 2v=-1;A 3C=pn.5A;if(!3C){C 2v}A ci=E["eW"];A cl=pn["eX"];if(((V cl=="4J")&&(cl!=9Q.G))||(V ci!="4J")){pn["eX"]=9Q.G;A 2J=1;do{if(3C===E){2v=2J}if(3C.2t==1){3C["eW"]=2J;2J++}3C=3C.71}1s(3C)}I{2v=ci}C 2v};A lb=0;A 3X=B(N,15){A 74="";if(15=="9P"){C N.3A||74}if(15=="R"){C N.la||74}C N.5t(15,2)||74};A eH=[{1i:"|=",1f:B(15,9O){A eV=" "+9O+"-";C B(N){A ea=" "+(N.5t(15,2)||"");C((ea==9O)||(ea.T(eV)==0))}}},{1i:"^=",1f:B(15,eU){C B(N){C(3X(N,15).T(eU)==0)}}},{1i:"*=",1f:B(15,eT){C B(N){C(3X(N,15).T(eT)>=0)}}},{1i:"~=",1f:B(15,eS){A 9N=" "+eS+" ";C B(N){A ea=" "+3X(N,15)+" ";C(ea.T(9N)>=0)}}},{1i:"$=",1f:B(15,73){A 9N=" "+73;C B(N){A ea=" "+3X(N,15);C(ea.31(73)==(ea.G-73.G))}}},{1i:"!=",1f:B(15,eR){C B(N){C(3X(N,15)!=eR)}}},{1i:"=",1f:B(15,eQ){C B(N){C(3X(N,15)==eQ)}}}];A 9E=[{1i:"9M-9K",1f:B(1p,l9){C B(N){if(N.2t!=1){C U}A fc=N.eP;1s(fc&&(fc.2t!=1)){fc=fc.eP}C(!fc)}}},{1i:"72-9K",1f:B(1p,l8){C B(N){if(N.2t!=1){C U}A nc=N.71;1s(nc&&(nc.2t!=1)){nc=nc.71}C(!nc)}}},{1i:"l7",1f:B(1p,l6){C B(N){A cn=N.3W;A eO=N.3W.G;R(A x=eO-1;x>=0;x--){A nt=cn[x].2t;if((nt==1)||(nt==3)){C U}}C K}}},{1i:"5z",1f:B(1p,eN){C B(N){C(N.9L.T(eN)>=0)}}},{1i:"3O",1f:B(1p,eM){A eL=6O(eM);C B(N){C(!eL(N))}}},{1i:"l5-9K",1f:B(1p,2u){A pi=eK;if(2u=="l4"){C B(N){C(((5y(N))%2)==1)}}I{if((2u=="2n")||(2u=="l3")){C B(N){C((5y(N)%2)==0)}}I{if(2u.T("l2+")==0){A 70=pi(2u.3b(3));C B(N){C(N.1L.3W[70-1]===N)}}I{if((2u.T("n+")>0)&&(2u.G>3)){A 9J=2u.1A("n+",2);A eJ=pi(9J[0]);A 2J=pi(9J[1]);C B(N){C((5y(N)%eJ)==2J)}}I{if(2u.T("n")==-1){A 70=pi(2u);C B(N){C(5y(N)==70)}}}}}}}}];A 9z=B(3e){A 9I=(9B[3e]||5x[3e]);if(9I){C 9I}A ff=L;A i=2I(3e);if(i[0]>=0){A 24=5r(3e);if(24!="*"){ff=3y(ff,B(N){C(N.5w.1M()==24)})}}A 5u;A 3B=9H(3e);if(3B.G){A 9F=3B.2s(3B.G-1)=="*";if(9F){3B=3B.3b(0,3B.G-1)}A re=S 9G("(?:^|\\\\s)"+3B+(9F?".*":"")+"(?:\\\\s|$)");ff=3y(ff,B(N){C re.6Z(N.3A)})}if(i[3]>=0){A 3z=3e.3b(i[3]+1);A 9D="";A 5v=3z.T("(");A 6Y=3z.31(")");if((0<=5v)&&(0<=6Y)&&(6Y>5v)){9D=3z.21(5v+1,6Y);3z=3z.3b(0,5v)}5u=L;R(A x=0;x<9E.G;x++){A 1S=9E[x];if(1S.1i==3z){5u=1S.1f(3z,9D);3f}}if(5u){ff=3y(ff,5u)}}A eG=(d.1l)?B(5s){A eI=5s.1M();C B(N){C N[5s]||N[eI]}}:B(5s){C B(N){C(N&&N.5t&&N.l1(5s))}};9C(eH,3e,eG,B(eF){ff=3y(ff,eF)});if(!ff){ff=B(){C K}}C 9B[3e]=ff};A 6W={};A 6U=B(3d,1B){A 9A=6W[3d];if(9A){C 9A}A i=2I(3d);A id=6X(3d);if(i[0]==0){C 6W[3d]=B(1B){C[d.1D(id)]}}A 9y=9z(3d);A 5p;if(i[0]>=0){5p=B(1B){A 11=d.1D(id);if(9y(11)){C[11]}}}I{A 3V;A 24=5r(3d);if(2Y.5q.14(D,2I(3d))==-1){5p=B(1B){A J=[];A 11,x=0,3V=1B.4I(24);1s(11=3V[x++]){J.Y(11)}C J}}I{5p=B(1B){A J=[];A 11,x=0,3V=1B.4I(24);1s(11=3V[x++]){if(9y(11)){J.Y(11)}}C J}}}C 6W[3d]=5p};A l0={};A 5o={">":B(1B){A J=[];A 11,x=0,3V=1B.3W;1s(11=3V[x++]){if(11.2t==1){J.Y(11)}}C J}};A 9w=B(6V){if(0>6V.T(" ")){C 6U(6V)}A eD=B(1B){A 6S=6V.1A(" ");A 6T;if(6S[0]==">"){6T=[1B]}I{6T=6U(6S.3a())(1B)}C eE(6T,6S)};C eD};A 9v=((1q["9x"]&&!d.3o)?B(3x){A 6R=3x.1A(" ");if((1q["9x"])&&(3x.T(":")==-1)&&((K))){if(((6R.G>2)&&(3x.T(">")==-1))||(6R.G>3)||(3x.T("[")>=0)||((1==6R.G)&&(0<=3x.T(".")))){C eC(3x)}}C 9w(3x)}:9w);A ey=B(3w){if(5o[3w]){C 5o[3w]}if(0>3w.T(",")){C 5o[3w]=9v(3w)}I{A eB=3w.1A(/\\s*,\\s*/);A 4H=B(1B){A eA=0;A J=[];A 6Q;1s(6Q=eB[eA++]){J=J.3U(9v(6Q,6Q.T(" "))(1B))}C J};C 5o[3w]=4H}};A 5n=0;A ez=B(Q){A J=S d.1H();if(!Q){C J}if(Q[0]){J.Y(Q[0])}if(Q.G<2){C J}5n++;Q[0]["9u"]=5n;R(A x=1,11;11=Q[x];x++){if(Q[x]["9u"]!=5n){J.Y(11)}11["9u"]=5n}C J};d.1r=B(6P,1B){if(V 6P!="3c"){C S d.1H(6P)}if(V 1B=="3c"){1B=d.1D(1B)}C ez(ey(6P)(1B||d.1e))};d.9t=B(ex,9s){A 9r=S d.1H();A ff=(9s)?6O(9s):B(){C K};R(A x=0,11;11=ex[x];x++){if(ff(11)){9r.Y(11)}}C 9r}})()}if(!z.1h["z.X.1b"]){z.1h["z.X.1b"]=K;z.1Q("z.X.1b");z.6K=B(ew){A J={};A iq="kZ[Z!=9q][Z!=kY][Z!=et][Z!=kX][Z!=kW], kV, kU";z.1r(iq,ew).3T(B(E){C(!E.kT)}).1n(B(1m){A 3v=1m.1p;A Z=(1m.Z||"").1M();if((Z=="kS")||(Z=="kR")){if(1m.kQ){J[3v]=1m.1Z}}I{if(1m.kP){A ev=J[3v]=[];z.1r("kO[kN]",1m).1n(B(eu){ev.Y(eu.1Z)})}I{J[3v]=1m.1Z;if(Z=="et"){J[3v+".x"]=J[3v+".y"]=J[3v].x=J[3v].y=0}}}});C J};z.9h=B(23){A ec=kM;A J="";A es={};R(A x in 23){if(23[x]!=es[x]){if(z.2l(23[x])){R(A y=0;y<23[x].G;y++){J+=ec(x)+"="+ec(23[x][y])+"&"}}I{J+=ec(x)+"="+ec(23[x])+"&"}}}if((J.G)&&(J.2s(J.G-1)=="&")){J=J.3b(0,J.G-1)}C J};z.kL=B(er){C z.9h(z.6K(er))};z.kK=B(ep){C z.eq(z.6K(ep))};z.kJ=B(2H){A J={};A qp=2H.1A("&");A dc=kI;z.1n(qp,B(1m){if(1m.G){A 9p=1m.1A("=");A 1p=dc(9p.3a());A 1U=dc(9p.22("="));if(z.1R(J[1p])){J[1p]=[J[1p]]}if(z.2l(J[1p])){J[1p].Y(1U)}I{J[1p]=1U}}});C J};z.e1=U;z.e6={"9g":B(1b){C 1b.2G},"2e":B(1b){if(!1o.eo){1z.1K("kH kG kF a kE of 9g/2e-6M-9m"+" 4F kD kC kB kA 4G en kz"+" (ky 1o.eo=K 4F kx kw D kv)")}C z.5m(1b.2G)},"2e-6M-ku":B(1b){A 6N=1b.2G;A 9o=6N.T("/*");A 9n=6N.31("*/");if((9o==-1)||(9n==-1)){C z.5m(1b.2G)}C z.5m(6N.21(9o+2,9n))},"2e-6M-9m":B(1b){A 6L=1b.2G;A 9l=6L.T("/*");A 9k=6L.31("*/");if((9l==-1)||(9k==-1)){1z.1K("kt en ks\'t 6M 9m!");C""}C z.5m(6L.21(9l+2,9k))},"kr":B(1b){C z.3u(1b.2G)},"kq":B(1b){if(z.1l&&!1b.el){z.1n(["ko","em","kn","km"],B(i){1u{A 1e=S 9j(kl[i]+".kk");1e.kj=U;1e.ki(1b.2G);C 1e}1y(e){}})}I{C 1b.el}}};(B(){z.e5=B(F,ej,ei,eh){A 2F={};2F.F=F;A 6J=L;if(F.3R){A 3R=z.1D(F.3R);A 9i=3R.kh("kg");2F.2E=F.2E||(9i?9i.1Z:L);6J=z.6K(3R)}I{2F.2E=F.2E}A 5l=[{}];if(6J){5l.Y(6J)}if(F.5g){5l.Y(F.5g)}if(F.ek){5l.Y({"z.ek":S 5d().8O()})}2F.1r=z.9h(z.1x.14(L,5l));2F.9d=F.9d||"9g";A d=S z.30(ej);d.5k(ei,B(eg){C eh(eg,d)});A ld=F.4E;if(ld&&z.1Y(ld)){d.ef(B(ee){C ld.2d(F,ee,2F)})}A 1G=F.9f;if(1G&&z.1Y(1G)){d.ed(B(e9){C 1G.2d(F,e9,2F)})}A 6I=F.kf;if(6I&&z.1Y(6I)){d.9e(B(e8){C 6I.2d(F,e8,2F)})}d.1F=2F;C d};A e4=B(O){O.e0=K;A 1b=O.1F.1b;if(V 1b.e7=="B"){1b.e7()}};A e3=B(O){C z.e6[O.1F.9d](O.1F.1b)};A e2=B(9c,O){1z.1K(9c);C 9c};A 3Q=B(F){A O=z.e5(F,e4,e3,e2);O.1F.1b=z.9b(O.1F.F);C O};A 5j=L;A 3t=[];A 94=B(){A dZ=(S 5d()).dU();if(!z.e1){z.1n(3t,B(4D,6H){if(!4D){C}A O=4D.O;1u{if(!O||O.e0||!4D.dT(O)){3t.3S(6H,1);C}if(4D.dR(O)){3t.3S(6H,1);4D.dP(O)}I{if(O.9a){if(O.9a+(O.1F.F.6G||0)<dZ){3t.3S(6H,1);A 1G=S 1O("6G ke");1G.dY="6G";O.5i(1G);O.4C()}}}}1y(e){1z.1K(e);O.5i(S 1O("kc!"))}})}if(!3t.G){dX(5j);5j=L;C}};z.dV=B(){1u{z.1n(3t,B(i){i.O.4C()})}1y(e){}};if(z.1l){z.dW(z.dV)}z.dH=B(O,dS,dQ,dO){if(O.1F.F.6G){O.9a=(S 5d()).dU()}3t.Y({O:O,dT:dS,dR:dQ,dP:dO});if(!5j){5j=dN(94,50)}94()};A dJ="8Z/x-kb-3R-ka";A dG=B(O){C O.1F.1b.6F};A dF=B(O){C 4==O.1F.1b.6F};A dE=B(O){if(z.8Y(O.1F.1b)){O.dM(O)}I{O.5i(S 1O("k9 k8 k7 5h:"+O.1F.1b.3N))}};A 3P=B(Z,O){A 3s=O.1F;A F=3s.F;3s.1b.dL(Z,3s.2E,(F.k6!==K),(F.8X?F.8X:1k),(F.8W?F.8W:1k));if(F.6E){R(A 5f in F.6E){if(5f.1M()==="5g-Z"&&!F.8V){F.8V=F.6E[5f]}I{3s.1b.dK(5f,F.6E[5f])}}}3s.1b.dK("k5-k4",(F.8V||dJ));1u{3s.1b.dI(3s.1r)}1y(e){O.4C()}z.dH(O,dG,dF,dE);C O};z.8T=B(4B){if(4B.1r.G){4B.2E+=(4B.2E.T("?")==-1?"?":"&")+4B.1r;4B.1r=L}};z.k3=B(F){A O=3Q(F);z.8T(O.1F);C 3P("dD",O)};z.k2=B(F){C 3P("dC",3Q(F))};z.k1=B(F){A O=3Q(F);O.1F.1r=F.k0;C 3P("dC",O)};z.jZ=B(F){C 3P("dA",3Q(F))};z.jY=B(F){A O=3Q(F);A dB=O.1F;if(F["8U"]){dB.1r=F.8U;F.8U=L}C 3P("dA",O)};z.jX=B(F){A O=3Q(F);z.8T(O.1F);C 3P("8S",O)};z.dz=B(jW){2m S 1O("z.dz 3O jV jU")}})()}if(!z.1h["z.X.fx"]){z.1h["z.X.fx"]=K;z.1Q("z.X.fx");z.dx=B(dy,1d){D.1w=dy;D.1d=1d;D.4x=B(n){C((D.1d-D.1w)*n)+D.1w}};z.2r("z.d6",L,{1P:B(F){z.1x(D,F);if(z.2l(D.2C)){D.2C=S z.dx(D.2C[0],D.2C[1])}},2C:L,8Q:jT,5a:L,4z:0,dj:10,du:L,6x:L,dt:L,8B:L,dh:L,ds:L,dr:L,dm:L,2D:U,2Z:U,4A:L,8N:L,3r:L,2o:0,4y:0,3q:B(H,F){if(D[H]){D[H].14(D,F||[])}C D},5b:B(dw,8R){if(8R){5e(D.3r);D.2D=D.2Z=U;D.2o=0}I{if(D.2D&&!D.2Z){C D}}D.3q("6x");A d=dw||D.du;if(d>0){5c(z.2p(D,B(){D.5b(L,8R)}),d);C D}D.4A=S 5d().8O();if(D.2Z){D.4A-=D.8Q*D.2o}D.8N=D.4A+D.8Q;D.2D=K;D.2Z=U;A 8P=D.2C.4x(D.2o);if(!D.2o){if(!D.4y){D.4y=D.4z}D.3q("dt",[8P])}D.3q("ds",[8P]);D.8M();C D},jS:B(){5e(D.3r);if(!D.2D){C D}D.2Z=K;D.3q("dr",[D.2C.4x(D.2o)]);C D},jR:B(dq,dp){5e(D.3r);D.2D=D.2Z=K;D.2o=dq*6D;if(dp){D.5b()}C D},jQ:B(dn){if(!D.3r){C}5e(D.3r);if(dn){D.2o=1}D.3q("dm",[D.2C.4x(D.2o)]);D.2D=D.2Z=U;C D},3N:B(){if(D.2D){C D.2Z?"3M":"jP"}C"jO"},8M:B(){5e(D.3r);if(D.2D){A dl=S 5d().8O();A 2q=(dl-D.4A)/(D.8N-D.4A);if(2q>=1){2q=1}D.2o=2q;if(D.5a){2q=D.5a(2q)}D.3q("8B",[D.2C.4x(2q)]);if(2q<1){D.3r=5c(z.2p(D,"8M"),D.dj)}I{D.2D=U;if(D.4z>0){D.4z--;D.5b(L,K)}I{if(D.4z==-1){D.5b(L,K)}I{if(D.4y){D.4z=D.4y;D.4y=0}}}D.2o=0;D.3q("dh")}}C D}});(B(){A df=B(E){if(z.1l){A ns=E.1c;if(!ns.8L.G&&z.1c(E,"8L")=="dg"){ns.8L="1"}if(!ns.3n.G&&z.1c(E,"3n")=="8K"){ns.3n="8K"}}};z.6C=B(F){if(V F.1d=="1k"){2m S 1O("z.6C jN an 1d 1Z")}F.E=z.1D(F.E);A 3p=z.1x({6w:{}},F);A 8J=(3p.6w.2W={});8J.1w=(V 3p.1w=="1k")?B(){C 2V(z.1c(3p.E,"2W"))}:3p.1w;8J.1d=3p.1d;A 2U=z.6y(3p);z.2c(2U,"6x",L,B(){df(3p.E)});C 2U};z.8I=B(F){C z.6C(z.1x({1d:1},F))};z.8H=B(F){C z.6C(z.1x({1d:0},F))};if(z.6B&&!z.3o){z.8E=B(n){C 2k("0.5")+((2Y.da((n+2k("1.5"))*2Y.d9))/2)}}I{z.8E=B(n){C 0.5+((2Y.da((n+1.5)*2Y.d9))/2)}}A d4=B(6A){D.8G=6A;R(A p in 6A){A 1a=6A[p];if(1a.1w 1N z.1J){1a.d7=S z.1J()}}D.4x=B(r){A J={};R(A p in D.8G){A 1a=D.8G[p];A 6z=L;if(1a.1w 1N z.1J){6z=z.d8(1a.1w,1a.1d,r,1a.d7).8F()}I{if(!z.2l(1a.1w)){6z=((1a.1d-1a.1w)*r)+1a.1w+(p!="2W"?1a.jM||"px":"")}}J[p]=6z}C J}};z.6y=B(F){F.E=z.1D(F.E);if(!F.5a){F.5a=z.8E}A 2U=S z.d6(F);z.2c(2U,"6x",2U,B(){A pm={};R(A p in D.6w){A 1a=pm[p]=z.1x({},D.6w[p]);if(z.1Y(1a.1w)){1a.1w=1a.1w()}if(z.1Y(1a.1d)){1a.1d=1a.1d()}A d5=(p.1M().T("jL")>=0);B 8C(E,p){4w(p){2X"58":C E.8D;2X"3n":C E.6v}A v=z.1c(E,p);C(p=="2W")?2V(v):2k(v)};if(V 1a.1d=="1k"){1a.1d=8C(D.E,p)}I{if(V 1a.1w=="1k"){1a.1w=8C(D.E,p)}}if(d5){1a.1w=S z.1J(1a.1w);1a.1d=S z.1J(1a.1d)}I{1a.1w=(p=="2W")?2V(1a.1w):2k(1a.1w)}}D.2C=S d4(pm)});z.2c(2U,"8B",2U,B(8A){R(A s in 8A){z.1c(D.E,s,8A[s])}});C 2U}})()}',62,1711,'|||||||||||||||||||||||||||||||||||dojo|var|function|return|this|node|args|length|evt|else|ret|true|null|obj|elem|dfd|arguments|arr|for|new|indexOf|false|typeof||_base|push|type||te|||apply|attr|||||prop|xhr|style|end|doc|match|uri|_hasResource|key|del|undefined|isIE|item|forEach|djConfig|name|document|query|while|_66|try|res|start|mixin|catch|console|split|root|prototype|byId|gcs|ioArgs|err|NodeList|_p|Color|debug|parentNode|toLowerCase|instanceof|Error|constructor|provide|isString|ta|255|val|_a|global|_69|isFunction|value||substring|join|map|tn||window||path|_343|_220|_listeners|connect|call|json|replace|left|_b|toString|128|parseFloat|isArray|throw||_percent|hitch|step|declare|charAt|nodeType|_3c3|nidx|slice|faux|fired|_c4|_7e|loc|curve|_active|url|_44c|responseText|str|_312|idx|tqp|isNaN|isOpera|_22d|callee|add|_18b|_f8|_e2|_41|anim|Number|opacity|case|Math|_paused|Deferred|lastIndexOf|||||||||shift|substr|string|_3e7|_3ce|break|_w|charCode|_listener|_d5|_c5|authority|_49|width|isSafari|_49e|fire|_timer|_47b|_465|eval|_in|_40c|_409|_362|_3d9|className|_3d5|_386|_37a|body|getComputedStyle|box|_221|keyCode|remove|_8d|_46|paused|status|not|_478|_461|form|splice|filter|concat|tret|childNodes|_38b|_367|_33d||||||||||_340|_348|keypress|appendChild|_toArray|Array|_2b0|_toPixelValue|ref|_fixEvent|_19f|_14c|_14a|_150|_141|declaredClass|_d4|_99|_Url|_83|scheme|_67|_3d|switch|getValue|_startRepeatCount|repeat|_startTime|_47e|cancel|tif|load|to|with|tf|getElementsByTagName|number|_34c|_342|extend|_1e3|_normalizeEventName|_14b|_14e|results|self|cbfn|_f9|_d8|_b2|src|_88|dav||baseUrl|fragment|_loadedModules|_44|_43|_loaders|mll|height||easing|play|setTimeout|Date|clearTimeout|hdr|content|code|errback|_464|addCallbacks|_450|fromJson|_413|_3fc|_3ee|max|_31e|cond|getAttribute|_3d4|obi|tagName|_360|_381|contains|firstChild|_368|_372|_320|place|_2fa|scrollTop|_299|scrollLeft|top|documentElement|_288|_287|_getBorderExtents|_23f|_23d|_239|_218|_216|_211|eles|target|keys|shiftKey|ctrlKey|event|192|iel|_1db|delete|_1cf||addEventListener|String|_1af|_157|array|_14d|continue|_14f|_137|_11f|_106|_findMethod|has|_delegate|_dc|_d3|loaded|_9a|_loadInit|_inFlightCount|getObject|tv|_4f|_postLoad|_2d|offsetWidth|properties|beforeBegin|animateProperty|_4ad|_4a6|isKhtml|_fade|100|headers|readyState|timeout|_469|_457|_44d|formToObject|_441|comment|_43d|_36f|_419|tp|_40a|_406|_407|_373|_403|_3e6|_31b|cbi|test|_3c7|nextSibling|last|_3a1|_38e|_365|_36b|ecn|_364|_363|_356|_35e|_35f|_34f|_34d|_349|trim|tci|_328|_32b|_31f|_31c|_anim|_300|_2ff|_2f5|_2e7|removeClass|addClass|func|_2c4|cls|_2a9|_2ae|_280|_27f|_getPadExtents|isMoz|none|_233|cssText|_214|_fixCallback|_synthesizeEvent|stopPropagation|preventDefault|_setKeyChar|_1e1|ieh|_1d7|_1be|colorFromArray|sanitize|bits|rgb|_156|_fire|_resback|_13d|partial|_13a|silentlyCancelled|_topics|_127|_f1|_f0|superclass|_ec|_e3|mct|setObject|_bf|_b3|object|require|_92|_khtmlTimer|location|XMLHTTP|locale|dua|_71|_modulePrefixes|_55|_loadModule|_51|_50|_4e|pop|_3f|_callLoaded|_unloaders|_loadNotifying|_loadedUrls|_27|_24|_1d|_5|_4b7|onAnimate|getStyle|offsetHeight|_defaultEasing|toCss|_properties|fadeOut|fadeIn|_49f|auto|zoom|_cycle|_endTime|valueOf|_494|duration|_492|DELETE|_ioAddQueryToUrl|putData|contentType|password|user|_isDocumentOk|application|||||_466||||||startTime|_xhrObj|_45f|handleAs|addBoth|error|text|objectToQuery|_44f|ActiveXObject|_443|_442|filtered|_43f|_43e|_437|file|tnl|_41c|_filterQueryResult|_zipIdx|_408|_402|evaluate|_3ed|_380|fHit|_361|_33b|_3da|_3ab|_3d6|RegExp|_327|_3cf|_3c9|child|innerHTML|first|tval|_391|class|pnc|_37e|_37c|_375|_366|_35c|_35a|_353|_33c|_336|_314|||_315|_oe|_307|_309|cloneNode|after|createElement||_2f8|_2ef|_2ee|unshift|coords|some|every||_2cb|script|_2c9|parent||a2p||_2c3|_2bd||abs|_getMarginBox|_2b3|_2a6|position|_2a7|_2ac|_2ab|_getIeDocumentElementOffset|getBoundingClientRect|ownerDocument|_2a3|clientWidth|_isBodyLtr|_fixIeBiDiScrollLeft|_bodyLtr|_29d|_getContentBox|_setBox|_getMarginExtents|_getPadBorderExtents|_usesBorderBox|boxModel|pcs|st|sl|_240|runtimeStyle|_dcm|BackCompat|compatMode|default|_21b|_d|html|_event_listener|handlers|PAGE_DOWN|PAGE_UP|RIGHT_ARROW|LEFT_ARROW|DOWN_ARROW|UP_ARROW|_preventDefault||_stopPropagation|returnValue||_trySetKeyCode|cancelBubble|currentTarget|106|_1ee|111||_1e8|_1e7|||se|srcElement|onkeydown||_1d0|_disconnect|lid|_1c0|_connect|_set|_195|_185|_183|_17d|_everyOrSome|_16b|_172|_15b|Function|_154|_escapeString|_140|chain|_check|canceller|_12d|_124|_11a|_10d|_107|inherited|_fa|_f2|_findMixin|_constructor|preamble|_de|clone|tmp|_c7|TMP|_be|_ba|_mixin|isBrowser|lang|firebug||param|modulePaths|_a7|_fireCallback|_a0|setContext||_9c|unloaded||||_96|_93|navigator|_90|_89||protocol|_84|_86|_XMLHTTP_PROGIDS|gears|google|setAttribute|_80|_77|cfg|_6f|_getModuleSymbols|_5a|_58|_53|_4d|_4c|_45|_40|_moduleHasPrefix|_loadUri|_28|_26|_21|_22|tests|doh|_20|_1f|_1c|version|_1b|_19|_getProp|_11|_4|_4a5|_4b3|_Animation|tempColor|blendColors|PI|sin|||||_49a|normal|onEnd||rate||curr|onStop|_497||_496|pct|onPause|onPlay|onBegin|delay||_491|_Line|_48b|wrapForm|PUT|_487|POST|GET|_476|_474|_472|_ioWatch|send|_471|setRequestHeader|open|callback|setInterval|_470|resHandle|_46f|ioCheck|_46e|validCheck|getTime|_ioCancelAll|addOnUnload|clearInterval|dojoType|now|canceled|_blockAsync|_45e|_45c|_459|_ioSetArgs|_contentHandlers|abort|_458|_456||||addErrback|_454|addCallback|_452|_44b|_44a|_449|preventCache|responseXML|Microsoft|JSON|usePlainJson|_431|toJson|_430|_42d|image|opt|ria|_421|_41b|_40b|_zip|_410|_40d|_357|sqf|_374|_3e5|_3df|_38f|clc|pred|parseInt|ntf|_3bf|_3bc|cnl|previousSibling|_3a9|_3a6|_39c|_399|_396|_392|__cachedIndex|__cachedLength|_376|iterateNext|_34a|_355|_354|_32c|_350|_34b|_33f|_33e|_33a|_338|_334|_332||_330|_32e||_322|_316|mousemove|mouseout|mouseover|_305|lastChild||_2f9||_2f2|_2f1|removeChild|_2ec|_2eb|_2ea|_2e6||_2e4|_2e2|_2d6|_2d5|_2d4|_2d3|_2d2|_2d1|_2cd|_2cc|scs|write|_2c8|hasClass|_2c0|_2bb|_2b5|_abs|_docScroll|offsetParent|offsetTop|offsetLeft|absolute|getBoxObjectFor|clientLeft|_setContentSize|_setMarginBox|_28d|_286|_285|_289|NaN|_281|border|_272|_26b|_260|_258|_253|_24c|_246|_23a|_getOpacity|_setOpacity|_238|td|tr|nodeName|FILTER|_22f|_22e|currentStyle|_22c|_22b|display|QuirksMode|unselectable|_217|isMozilla|getElementById|attributes|all|_ie_listener|_getIeDispatcher|_1fd|NUM_LOCK|SCROLL_LOCK|INSERT|END|HOME|PAUSE|F12|F11|F10|F9|F8|F7|F6|F5|F4|F3|F2|F1|63232|SHIFT_TAB|TAB|keyIdentifier|_1f3|stopEvent|_punctMap|222|219|186|onkeypress|_stealthKeyDown|_fixKeys|relatedTarget|_1e0|_1df|_stealthKeydown|_1d6|_1d5|_1d1|_1ca|_1c9|_1cb|_1c2|_1c1|_1c3|_1c4|_1bc|_1b3|_1b2|colorFromHex|colorFromRgb|named|colorFromString|mask|rgba|_19c|_197|_192|setColor|_180|_178|_177|_175|_174|_16d|_166|_164|_163|_162|_15c|_15d|_15e|index|__json__|toJsonIndentStr|_nextId|_12f|_12b|publish|_128|_126|_125|_122|_121|_123|_11c|_11b|_10c|_10b|_108|getDispatcher|argument|nom|_construct|_core|_makeCtor|_df|_db|deprecated|isObject|_cc||scope||_hitchArgs|_c2||pre|_c1|native|isDebug||registerModulePath|_a8||finally|||_a6|_a5|_a4|_a3|_a2|_a1|_9f|_9e|_9d|_9b|_98|_97|onbeforeunload|ipt|scr|complete|_95|userAgent|_modulesLoaded|initialized|_initFired|_8c|_8a|_getText|_87|ieForceActiveXXhr|Msxml2|isGears|_81|_gearsObject|googlegears|GearsFactory|isFF|_7d|Safari|_72|_name|_6c|ire|ore|_68|i18n|_5b|requireIf|_56|_52|loading|_4a|_loadPath|_47|_48|_global_omit_module_check|_getModulePrefix|_3c|_3a|_37|_30|Boolean|_loadUriAndCheck|_2e||cacheBust|_1e|_1a|_17|_16|_15|_14|_f|_10|_e|_9|_8|revision|flag|patch|minor|major|_6|color|units|needs|stopped|playing|stop|gotoPercent|pause|1000|implemented|yet|_48a|xhrDelete|rawXhrPut|xhrPut|postData|rawXhrPost|xhrPost|xhrGet|Type|Content|sync|response|http|bad|urlencoded|www|_watchInFlightError||exceeded|handle|action|getAttributeNode|loadXML|async|XMLDOM|prefixes|MSXML3|MSXML|MSXML2||xml|javascript|wasn|your|optional|message|off|turn|use|endpoints|issues|security|potential|avoid|mimetype|using|consider|please|decodeURIComponent|queryToObject|formToJson|formToQuery|encodeURIComponent|selected|option|multiple|checked|checkbox|radio|disabled|textarea|select|button|reset|submit|input|_3fb|hasAttribute|0n|even|odd|nth|_3b5|empty|_3b1|_3ad|htmlFor|_38a|under||exprssion|failure|ANY_TYPE|XPathResult|starts|keyup|keydown|mouseup|mousedown|blur|click|combine|span|addContent||adopt|orphan|_2de|_2dd|styles|_2da|_2d9|_2cf|_2ce|show|createPopup|toggleClass|scrollWidth|clientTop|ltr|direction|pageXOffset|pageYOffset|fixed|contentBox|marginBox|BUTTON|TABLE|_getBorderBox|clientHeight|visible|overflow|marginBottom|marginRight|marginTop|marginLeft|borderBottomWidth|borderBottomStyle|borderRightWidth|borderRightStyle|borderTopWidth|borderTopStyle|borderLeftWidth|borderLeftStyle|paddingBottom|paddingRight|paddingTop|paddingLeft|offset||min|padding||margin|Opacity|Alpha|alpha|filters|pixelLeft|medium|_22a|defaultView|before||insertBefore|KhtmlUserSelect|MozUserSelect|setSelectable|isDescendant|div|_destroyElement|BackgroundImageCache|execCommand|PageDown|PageUp|Right|Left|Down|Up|63289|63249|63248|PRINT_SCREEN|63302|63277|63276|63275|63273|63272|63250|63247|63246|63245|63244|63243|63242|63241|63240|63239|63238|63237|63236|63235|63234|63233|Enter|_1f9|which|_1f6|bubbledKeyCode|221|220||||191|190|189|188|187|toElement|fromElement|clientY|pageY||clientX|pageX|offsetY|||layerY|offsetX|layerX|parentWindow|_nop|_allow_leaks|145|144|126|F15|125|F14|124|F13|123|122|121|120|119|118|117|116|115|114|113|112|NUMPAD_DIVIDE|110|NUMPAD_PERIOD|109|NUMPAD_MINUS|108|NUMPAD_ENTER|107|NUMPAD_PLUS|NUMPAD_MULTIPLY|105|NUMPAD_9|104|NUMPAD_8|103|NUMPAD_7|102|NUMPAD_6|101|NUMPAD_5|NUMPAD_4||NUMPAD_3|NUMPAD_2|NUMPAD_1|NUMPAD_0||SELECT|RIGHT_WINDOW||LEFT_WINDOW||HELP|SPACE|ESCAPE|CAPS_LOCK|ALT|CTRL|SHIFT|ENTER|CLEAR|BACKSPACE|attachEvent|fixEvent|fromCharCode|keyChar|_1b9|removeEventListener|0x|round|toHex|toRgba|toRgb|aqua|teal|blue|navy|yellow|olive|lime|green|fuchsia|purple|red|maroon|white|gray|silver|black|boolean|called|already|Cancelled|connectPublisher|unsubscribe|subscribe|disconnect|_113|_112||_111|_110|||found|was||must|_|module|||required|likely|It|declaration|Mixin|separate|instead|property|initializer||pass|_c9|_bb|_b7|nfunction|isAlien|isFinite|isArrayLike|_firebug|withDoc|withGlobal|_writeIncludes|VML|behavior|addRule|createStyleSheet|vml|com|microsoft|schemas|urn|namespaces|onunload|onreadystatechange|defer|khtml|WebKit|DOMContentLoaded|enableMozDomContentLoaded|domcontentloaded|Unable|base|chrome|1223|304|300|200|available|XMLHttpRequest|_println|language|userLanguage|isQuirks|factory|mimeTypes|Factory|Gears|_7f|MSIE||Firefox|Gecko|Konqueror||Opera|appVersion|xd|browser|moduleUrl|port|host|hostenv|_requireLocalization|_5f|_5e|_5d|_5c|requireLocalization|requireAfterIf|_57|common|platformRequire|defined|symbol|_isXDomain|tried|Could|__package__|packageFileName|_42|useXDomain|flight|still|files|addOnLoad|failed|sourceURL|util|notice|without|change|subject|APIs|EXPERIMENTAL|experimental|removed|will|DEPRECATED|exists|10315|Rev|Mobile|Spidermonkey|Rhino||Browser|delayMozLoadingFix|preventBackButtonFix|libraryScriptUri|baseRelativePath|baseScriptUri|allowQueryConfig|warn|trace|timeEnd||time|profileEnd|profile|log|info|groupEnd|group|dirxml|dir|count|assert'.split('|'),0,{});
+
+
+/*
+
+Prototype 1.5 rc0
+ - Adapted from Ruby on Rails - http://dev.rubyonrails.org/browser/spinoffs/prototype/src
+ - By Lunarmedia, 06 August, 2006
+ - Available at (and packed with) JavascriptCompressor.com
+
+Please note this version is missing the selector.js component of the full Prototype library.
+You can get the compressed version of selector at JavascriptCompressor.com
+
+*/
+
+var decompressedPrototype = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[(function(e){return d[e]})];e=(function(){return'\\w+'});c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('d T={4l:\'1.5.8P\',3E:\'(?:<3G.*?>)((\\n|\\r|.)*?)(?:<\\/3G>)\',2v:7(){},K:7(x){c x}};d 1b={17:7(){c 7(){6.1I.2n(6,N)}}};d 1e=z q();q.u=7(5d,O){G(d 1G 2M O){5d[1G]=O[1G]}c 5d};q.1U=7(U){1j{f(U==1v)c\'1v\';f(U==1L)c\'1L\';c U.1U?U.1U():U.2C()}1s(e){f(e 8R 9l)c\'...\';25 e}};7j.v.1d=7(){d 43=6,23=$A(N),U=23.8S();c 7(){c 43.2n(U,23.3s($A(N)))}};7j.v.8U=7(U){d 43=6;c 7(C){c 43.8V(U,C||1W.C)}};q.u(8Q.v,{8W:7(){d 4Z=6.2C(16);f(6<16)c\'0\'+4Z;c 4Z},5j:7(){c 6+1},8Y:7(o){$R(0,6,11).V(o);c 6}});d 6s={6j:7(){d 48;G(d i=0;i<N.t;i++){d 6L=N[i];1j{48=6L();1y}1s(e){}}c 48}};d 6Q=1b.17();6Q.v={1I:7(1a,1J){6.1a=1a;6.1J=1J;6.41=Y;6.2A()},2A:7(){5Z(6.2D.1d(6),6.1J*4z)},2D:7(){f(!6.41){1j{6.41=11;6.1a()}8Z{6.41=Y}}}};q.u(4b.v,{2T:7(1A,1z){d L=\'\',O=6,I;1z=N.90.52(1z);1H(O.t>0){f(I=O.I(1A)){L+=O.47(0,I.w);L+=(1z(I)||\'\').2C();O=O.47(I.w+I[0].t)}1D{L+=O,O=\'\'}}c L},92:7(1A,1z,3i){1z=6.2T.52(1z);3i=3i===1v?1:3i;c 6.2T(1A,7(I){f(--3i<0)c I[0];c 1z(I)})},93:7(1A,o){6.2T(1A,o);c 6},94:7(t,2S){t=t||30;2S=2S===1v?\'...\':2S;c 6.t>t?6.47(0,t-2S.t)+2S:6},9F:7(){c 6.2y(/^\\s+/,\'\').2y(/\\s+$/,\'\')},71:7(){c 6.2y(/<\\/?[^>]+>/7Y,\'\')},2Q:7(){c 6.2y(z 3O(T.3E,\'5P\'),\'\')},70:7(){d 6Y=z 3O(T.3E,\'5P\');d 5p=z 3O(T.3E,\'98\');c(6.I(6Y)||[]).1C(7(5o){c(5o.I(5p)||[\'\',\'\'])[1]})},3q:7(){c 6.70().1C(7(3G){c 4q(3G)})},9E:7(){d 1q=J.4Y(\'1q\');d 1Y=J.9D(6);1q.75(1Y);c 1q.3h},9c:7(){d 1q=J.4Y(\'1q\');1q.3h=6.71();c 1q.2z[0]?1q.2z[0].6q:\'\'},78:7(){d 7i=6.I(/^\\??(.*)$/)[1].3j(\'&\');c 7i.36({},7(5b,72){d 1i=72.3j(\'=\');5b[1i[0]]=1i[1];c 5b})},1Z:7(){c 6.3j(\'\')},3P:7(){d 2l=6.3j(\'-\');f(2l.t==1)c 2l[0];d 54=6.5g(\'-\')==0?2l[0].7e(0).3Y()+2l[0].7g(1):2l[0];G(d i=1,73=2l.t;i<73;i++){d s=2l[i];54+=s.7e(0).3Y()+s.7g(1)}c 54},1U:7(){c"\'"+6.2y(/\\\\/g,\'\\\\\\\\\').2y(/\'/g,\'\\\\\\\'\')+"\'"}});4b.v.2T.52=7(1z){f(2i 1z==\'7\')c 1z;d 2U=z 3n(1z);c 7(I){c 2U.7a(I)}};4b.v.9h=4b.v.78;d 3n=1b.17();3n.79=/(^|.|\\r|\\n)(#\\{(.*?)\\})/;3n.v={1I:7(2U,1A){6.2U=2U.2C();6.1A=1A||3n.79},7a:7(U){c 6.2U.2T(6.1A,7(I){d 53=I[1];f(53==\'\\\\\')c I[2];c 53+(U[I[3]]||\'\').2C()})}};d $1y=z q();d $49=z q();d 1p={V:7(o){d w=0;1j{6.2m(7(h){1j{o(h,w++)}1s(e){f(e!=$49)25 e}})}1s(e){f(e!=$1y)25 e}},9n:7(o){d L=11;6.V(7(h,w){L=L&&!!(o||T.K)(h,w);f(!L)25 $1y});c L},9o:7(o){d L=11;6.V(7(h,w){f(L=!!(o||T.K)(h,w))25 $1y});c L},3e:7(o){d P=[];6.V(7(h,w){P.W(o(h,w))});c P},7n:7(o){d L;6.V(7(h,w){f(o(h,w)){L=h;25 $1y}});c L},7o:7(o){d P=[];6.V(7(h,w){f(o(h,w))P.W(h)});c P},9p:7(1A,o){d P=[];6.V(7(h,w){d 7c=h.2C();f(7c.I(1A))P.W((o||T.K)(h,w))});c P},1M:7(U){d 51=Y;6.V(7(h){f(h==U){51=11;25 $1y}});c 51},36:7(45,o){6.V(7(h,w){45=o(45,h,w)});c 45},9q:7(1F){d 23=$A(N).47(1);c 6.3e(7(h){c h[1F].2n(h,23)})},9s:7(o){d L;6.V(7(h,w){h=(o||T.K)(h,w);f(L==1v||h>=L)L=h});c L},9u:7(o){d L;6.V(7(h,w){h=(o||T.K)(h,w);f(L==1v||h<L)L=h});c L},9v:7(o){d 50=[],58=[];6.V(7(h,w){((o||T.K)(h,w)?50:58).W(h)});c[50,58]},3r:7(1G){d P=[];6.V(7(h,w){P.W(h[1G])});c P},9x:7(o){d P=[];6.V(7(h,w){f(!o(h,w))P.W(h)});c P},9y:7(o){c 6.3e(7(h,w){c{h:h,59:o(h,w)}}).9z(7(18,3U){d a=18.59,b=3U.59;c a<b?-1:a>b?1:0}).3r(\'h\')},1Z:7(){c 6.3e(T.K)},9B:7(){d o=T.K,23=$A(N);f(2i 23.5e()==\'7\')o=23.9C();d 7l=[6].3s(23).1C($A);c 6.1C(7(h,w){c o(7l.3r(w))})},1U:7(){c\'#<1p:\'+6.1Z().1U()+\'>\'}};q.u(1p,{1C:1p.3e,5v:1p.7n,1k:1p.7o,8M:1p.1M,7p:1p.1Z});d $A=1E.7q=7(2R){f(!2R)c[];f(2R.1Z){c 2R.1Z()}1D{d P=[];G(d i=0;i<2R.t;i++)P.W(2R[i]);c P}};q.u(1E.v,1p);f(!1E.v.4d)1E.v.4d=1E.v.4m;q.u(1E.v,{2m:7(o){G(d i=0;i<6.t;i++)o(6[i])},5i:7(){6.t=0;c 6},7r:7(){c 6[0]},5e:7(){c 6[6.t-1]},7s:7(){c 6.1k(7(h){c h!=1v||h!=1L})},6J:7(){c 6.36([],7(6H,h){c 6H.3s(h&&h.5D==1E?h.6J():[h])})},5s:7(){d 4N=$A(N);c 6.1k(7(h){c!4N.1M(h)})},5g:7(U){G(d i=0;i<6.t;i++)f(6[i]==U)c i;c-1},4m:7(5h){c(5h!==Y?6:6.1Z()).4d()},1U:7(){c\'[\'+6.1C(q.1U).1N(\', \')+\']\'}});d 4h={2m:7(o){G(d 1O 2M 6){d h=6[1O];f(2i h==\'7\')49;d 1i=[1O,h];1i.1O=1O;1i.h=h;o(1i)}},7t:7(){c 6.3r(\'1O\')},4N:7(){c 6.3r(\'h\')},7u:7(2N){c $H(2N).36($H(6),7(4Q,1i){4Q[1i.1O]=1i.h;c 4Q})},7w:7(){c 6.1C(7(1i){c 1i.1C(4n).1N(\'=\')}).1N(\'&\')},1U:7(){c\'#<4h:{\'+6.1C(7(1i){c 1i.1C(q.1U).1N(\': \')}).1N(\', \')+\'}>\'}};7 $H(U){d 2N=q.u({},U||{});q.u(2N,1p);q.u(2N,4h);c 2N};3L=1b.17();q.u(3L.v,1p);q.u(3L.v,{1I:7(22,2x,2H){6.22=22;6.2x=2x;6.2H=2H},2m:7(o){d h=6.22;2q{o(h);h=h.5j()}1H(6.1M(h))},1M:7(h){f(h<6.22)c Y;f(6.2H)c h<6.2x;c h<=6.2x}});d $R=7(22,2x,2H){c z 3L(22,2x,2H)};d M={4w:7(){c 6s.6j(7(){c z 5C()},7(){c z 5n(\'7y.6d\')},7(){c z 5n(\'7z.6d\')})||Y},4s:0};M.2W={3b:[],2m:7(o){6.3b.2m(o)},69:7(4F){f(!6.1M(4F))6.3b.W(4F)},7A:7(5t){6.3b=6.3b.5s(5t)},3y:7(1a,26,E,2Z){6.V(7(3o){f(3o[1a]&&2i 3o[1a]==\'7\'){1j{3o[1a].2n(3o,[26,E,2Z])}1s(e){}}})}};q.u(M.2W,1p);M.2W.69({5G:7(){M.4s++},1B:7(){M.4s--}});M.44=7(){};M.44.v={4a:7(m){6.m={1F:\'4j\',4p:11,5H:\'5E/x-86-Q-7C\',28:\'\'};q.u(6.m,m||{})},3l:7(){c 6.E.32==1v||6.E.32==0||(6.E.32>=84&&6.E.32<7E)},7G:7(){c!6.3l()}};M.3t=1b.17();M.3t.5L=[\'7H\',\'80\',\'7I\',\'7J\',\'4t\'];M.3t.v=q.u(z M.44(),{1I:7(1l,m){6.E=M.4w();6.4a(m);6.26(1l)},26:7(1l){d 28=6.m.28||\'\';f(28.t>0)28+=\'&7K=\';1j{6.1l=1l;f(6.m.1F==\'7L\'&&28.t>0)6.1l+=(6.1l.I(/\\?/)?\'&\':\'?\')+28;M.2W.3y(\'5G\',6,6.E);6.E.7N(6.m.1F,6.1l,6.m.4p);f(6.m.4p){6.E.5T=6.5J.1d(6);2Y((7(){6.4r(1)}).1d(6),10)}6.5A();d 1c=6.m.5V?6.m.5V:28;6.E.7O(6.m.1F==\'4j\'?1c:1L)}1s(e){6.3p(e)}},5A:7(){d 1P=[\'X-7P-7Q\',\'5C\',\'X-T-4l\',T.4l,\'7R\',\'1Y/7m, 1Y/2e, 5E/5F, 1Y/5F, */*\'];f(6.m.1F==\'4j\'){1P.W(\'5Q-2g\',6.m.5H);f(6.E.7S)1P.W(\'7T\',\'7U\')}f(6.m.1P)1P.W.2n(1P,6.m.1P);G(d i=0;i<1P.t;i+=2)6.E.7V(1P[i],1P[i+1])},5J:7(){d 2F=6.E.2F;f(2F!=1)6.4r(6.E.2F)},4A:7(B){1j{c 6.E.7W(B)}1s(e){}},5M:7(){1j{c 4q(\'(\'+6.4A(\'X-7X\')+\')\')}1s(e){}},5R:7(){1j{c 4q(6.E.3F)}1s(e){6.3p(e)}},4r:7(2F){d C=M.3t.5L[2F];d E=6.E,2Z=6.5M();f(C==\'4t\'){1j{(6.m[\'2I\'+6.E.32]||6.m[\'2I\'+(6.3l()?\'81\':\'82\')]||T.2v)(E,2Z)}1s(e){6.3p(e)}f((6.4A(\'5Q-2g\')||\'\').I(/^1Y\\/7m/i))6.5R()}1j{(6.m[\'2I\'+C]||T.2v)(E,2Z);M.2W.3y(\'2I\'+C,6,E,2Z)}1s(e){6.3p(e)}f(C==\'4t\')6.E.5T=T.2v},3p:7(57){(6.m.5W||T.2v)(6,57);M.2W.3y(\'5W\',6,57)}});M.4C=1b.17();q.u(q.u(M.4C.v,M.3t.v),{1I:7(1w,1l,m){6.4x={3m:1w.3m?$(1w.3m):$(1w),3z:1w.3z?$(1w.3z):(1w.3m?1L:$(1w))};6.E=M.4w();6.4a(m);d 1B=6.m.1B||T.2v;6.m.1B=(7(E,U){6.5Y();1B(E,U)}).1d(6);6.26(1l)},5Y:7(){d 3A=6.3l()?6.4x.3m:6.4x.3z;d 3k=6.E.3F;f(!6.m.3q)3k=3k.2Q();f(3A){f(6.m.60){z 6.m.60(3A,3k)}1D{k.6h(3A,3k)}}f(6.3l()){f(6.1B)2Y(6.1B.1d(6),10)}}});M.61=1b.17();M.61.v=q.u(z M.44(),{1I:7(1w,1l,m){6.4a(m);6.1B=6.m.1B;6.1J=(6.m.1J||2);6.2s=(6.m.2s||1);6.4B={};6.1w=1w;6.1l=1l;6.22()},22:7(){6.m.1B=6.63.1d(6);6.2D()},7b:7(){6.4B.1B=1v;89(6.65);(6.1B||T.2v).2n(6,N)},63:7(26){f(6.m.2s){6.2s=(26.3F==6.64?6.2s*6.m.2s:1);6.64=26.3F}6.65=2Y(6.2D.1d(6),6.2s*6.1J*4z)},2D:7(){6.4B=z M.4C(6.1w,6.1l,6.m)}});7 $(){d P=[],4;G(d i=0;i<N.t;i++){4=N[i];f(2i 4==\'8c\')4=J.8d(4);P.W(k.u(4))}c P.t<2?P[0]:P};J.8f=7(1f,6a){d 6b=($(6a)||J.1c).4D(\'*\');c $A(6b).36([],7(12,4E){f(4E.1f.I(z 3O("(^|\\\\s)"+1f+"(\\\\s|$)")))12.W(k.u(4E));c 12})};f(!1W.k)d k=z q();k.u=7(4){f(!4)c;f(4X)c 4;f(!4.6e&&4.1h&&4!=1W){d 2a=k.3d,2r=k.u.2r;G(d 1G 2M 2a){d h=2a[1G];f(2i h==\'7\')4[1G]=2r.4W(h)}}4.6e=11;c 4};k.u.2r={4W:7(h){c 6[h]=6[h]||7(){c h.2n(1L,[6].3s($A(N)))}}};k.3d={4U:7(4){c $(4).l.2B!=\'3Q\'},6N:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);k[k.4U(4)?\'6f\':\'6w\'](4)}},6f:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);4.l.2B=\'3Q\'}},6w:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);4.l.2B=\'\'}},42:7(4){4=$(4);4.1X.8h(4)},6h:7(4,2e){$(4).3h=2e.2Q();2Y(7(){2e.3q()},10)},2y:7(4,2e){4=$(4);f(4.6k){4.6k=2e.2Q()}1D{d 1K=4.6R.6S();1K.56(4);4.1X.8i(1K.6T(2e.2Q()),4)}2Y(7(){2e.3q()},10)},8k:7(4){4=$(4);c 4.2k},3K:7(4){c z k.3S(4)},8l:7(4,1f){f(!(4=$(4)))c;c k.3K(4).1M(1f)},8m:7(4,1f){f(!(4=$(4)))c;c k.3K(4).7k(1f)},8n:7(4,1f){f(!(4=$(4)))c;c k.3K(4).42(1f)},8p:7(4){4=$(4);G(d i=0;i<4.2z.t;i++){d 3M=4.2z[i];f(3M.8q==3&&!/\\S/.4v(3M.6q))k.42(3M)}},8r:7(4){c $(4).3h.I(/^\\s*$/)},8s:7(4,3I){4=$(4),3I=$(3I);1H(4=4.1X)f(4==3I)c 11;c Y},6t:7(4){4=$(4);d x=4.x?4.x:4.2f,y=4.y?4.y:4.29;1W.6t(x,y)},1R:7(4,l){4=$(4);d h=4.l[l.3P()];f(!h){f(J.4J&&J.4J.6v){d 4L=J.4J.6v(4,1L);h=4L?4L.8v(l):1L}1D f(4.6x){h=4.6x[l.3P()]}}f(1W.6E&&[\'18\',\'1n\',\'3U\',\'6G\'].1M(l))f(k.1R(4,\'14\')==\'4G\')h=\'6y\';c h==\'6y\'?1L:h},8x:7(4,l){4=$(4);G(d B 2M l)4.l[B.3P()]=l[B]},8y:7(4){4=$(4);f(k.1R(4,\'2B\')!=\'3Q\')c{21:4.2p,24:4.2k};d 20=4.l;d 6B=20.4O;d 6A=20.14;20.4O=\'31\';20.14=\'2o\';20.2B=\'\';d 6C=4.6m;d 6D=4.6p;20.2B=\'3Q\';20.14=6A;20.4O=6B;c{21:6C,24:6D}},8z:7(4){4=$(4);d 4R=k.1R(4,\'14\');f(4R==\'4G\'||!4R){4.4T=11;4.l.14=\'3T\';f(1W.6E){4.l.1n=0;4.l.18=0}}},8A:7(4){4=$(4);f(4.4T){4.4T=1v;4.l.14=4.l.1n=4.l.18=4.l.6G=4.l.3U=\'\'}},8B:7(4){4=$(4);f(4.3c)c;4.3c=4.l.3V;f((k.1R(4,\'3V\')||\'4U\')!=\'31\')4.l.3V=\'31\'},8D:7(4){4=$(4);f(4.3c)c;4.l.3V=4.3c;4.3c=1v}};q.u(k,k.3d);d 4X=Y;f(!3W&&/3x|3w|3u/.4v(33.62)){d 3W={}};k.6K=7(2a){q.u(k.3d,2a||{});f(2i 3W!=\'1v\'){d 2a=k.3d,2r=k.u.2r;G(d 1G 2M 2a){d h=2a[1G];f(2i h==\'7\')3W.v[1G]=2r.4W(h)}4X=11}};k.6K();d 6M=z q();6M.2B=k.6N;1e.1g=7(3f){6.3f=3f};1e.1g.v={1I:7(4,2t){6.4=$(4);6.2t=2t.2Q();f(6.3f&&6.4.6O){1j{6.4.6O(6.3f,6.2t)}1s(e){d 1h=6.4.1h.2w();f(1h==\'4V\'||1h==\'8N\'){6.2X(6.6U())}1D{25 e}}}1D{6.1K=6.4.6R.6S();f(6.2V)6.2V();6.2X([6.1K.6T(6.2t)])}2Y(7(){2t.3q()},10)},6U:7(){d 1q=J.4Y(\'1q\');1q.3h=\'<6V><4V>\'+6.2t+\'</4V></6V>\';c $A(1q.2z[0].2z[0].2z)}};d 1g=z q();1g.6W=1b.17();1g.6W.v=q.u(z 1e.1g(\'96\'),{2V:7(){6.1K.97(6.4)},2X:7(2h){2h.V((7(2j){6.4.1X.55(2j,6.4)}).1d(6))}});1g.5m=1b.17();1g.5m.v=q.u(z 1e.1g(\'99\'),{2V:7(){6.1K.56(6.4);6.1K.74(11)},2X:7(2h){2h.4m(Y).V((7(2j){6.4.55(2j,6.4.9a)}).1d(6))}});1g.7h=1b.17();1g.7h.v=q.u(z 1e.1g(\'9d\'),{2V:7(){6.1K.56(6.4);6.1K.74(6.4)},2X:7(2h){2h.V((7(2j){6.4.75(2j)}).1d(6))}});1g.76=1b.17();1g.76.v=q.u(z 1e.1g(\'9i\'),{2V:7(){6.1K.9m(6.4)},2X:7(2h){2h.V((7(2j){6.4.1X.55(2j,6.4.9t)}).1d(6))}});k.3S=1b.17();k.3S.v={1I:7(4){6.4=$(4)},2m:7(o){6.4.1f.3j(/\\s+/).1k(7(B){c B.t>0}).2m(o)},5c:7(1f){6.4.1f=1f},7k:7(5a){f(6.1M(5a))c;6.5c(6.1Z().3s(5a).1N(\' \'))},42:7(4c){f(!6.1M(4c))c;6.5c(6.1k(7(1f){c 1f!=4c}).1N(\' \'))},2C:7(){c 6.1Z().1N(\' \')}};q.u(k.3S.v,1p);d 5I={5i:7(){G(d i=0;i<N.t;i++)$(N[i]).h=\'\'},4f:7(4){$(4).4f()},7v:7(){G(d i=0;i<N.t;i++)f($(N[i]).h==\'\')c Y;c 11},1k:7(4){$(4).1k()},5y:7(4){4=$(4);4.4f();f(4.1k)4.1k()}};d D={3a:7(Q){d 12=D.2L($(Q));d 4I=z 1E();G(d i=0;i<12.t;i++){d 4g=D.k.3a(12[i]);f(4g)4I.W(4g)}c 4I.1N(\'&\')},2L:7(Q){Q=$(Q);d 12=z 1E();G(d 1h 2M D.k.2E){d 4H=Q.4D(1h);G(d j=0;j<4H.t;j++)12.W(4H[j])}c 12},7x:7(Q,3N,B){Q=$(Q);d 3H=Q.4D(\'2u\');f(!3N&&!B)c 3H;d 4y=z 1E();G(d i=0;i<3H.t;i++){d 2u=3H[i];f((3N&&2u.2g!=3N)||(B&&2u.B!=B))49;4y.W(2u)}c 4y},7B:7(Q){d 12=D.2L(Q);G(d i=0;i<12.t;i++){d 4=12[i];4.7D();4.4o=\'11\'}},7F:7(Q){d 12=D.2L(Q);G(d i=0;i<12.t;i++){d 4=12[i];4.4o=\'\'}},5z:7(Q){c D.2L(Q).5v(7(4){c 4.2g!=\'31\'&&!4.4o&&[\'2u\',\'1k\',\'3J\'].1M(4.1h.2w())})},7M:7(Q){5I.5y(D.5z(Q))},5w:7(Q){$(Q).5w()}};D.k={3a:7(4){4=$(4);d 1F=4.1h.2w();d 1S=D.k.2E[1F](4);f(1S){d 1O=4n(1S[0]);f(1O.t==0)c;f(1S[1].5D!=1E)1S[1]=[1S[1]];c 1S[1].1C(7(h){c 1O+\'=\'+4n(h)}).1N(\'&\')}},1x:7(4){4=$(4);d 1F=4.1h.2w();d 1S=D.k.2E[1F](4);f(1S)c 1S[1]}};D.k.2E={2u:7(4){6c(4.2g.2w()){1r\'7Z\':1r\'31\':1r\'6l\':1r\'1Y\':c D.k.2E.3J(4);1r\'6g\':1r\'6i\':c D.k.2E.5O(4)}c Y},5O:7(4){f(4.83)c[4.B,4.h]},3J:7(4){c[4.B,4.h]},1k:7(4){c D.k.2E[4.2g==\'1k-6n\'?\'5S\':\'5X\'](4)},5S:7(4){d h=\'\',2b,w=4.85;f(w>=0){2b=4.m[w];h=2b.h||2b.1Y}c[4.B,h]},5X:7(4){d h=[];G(d i=0;i<4.t;i++){d 2b=4.m[i];f(2b.87)h.W(2b.h||2b.1Y)}c[4.B,h]}};d $F=D.k.1x;1e.3D=7(){};1e.3D.v={1I:7(4,1J,1a){6.1J=1J;6.4=$(4);6.1a=1a;6.2K=6.1x();6.2A()},2A:7(){5Z(6.2D.1d(6),6.1J*4z)},2D:7(){d h=6.1x();f(6.2K!=h){6.1a(6.4,h);6.2K=h}}};D.k.3C=1b.17();D.k.3C.v=q.u(z 1e.3D(),{1x:7(){c D.k.1x(6.4)}});D.3C=1b.17();D.3C.v=q.u(z 1e.3D(),{1x:7(){c D.3a(6.4)}});1e.2c=7(){};1e.2c.v={1I:7(4,1a){6.4=$(4);6.1a=1a;6.2K=6.1x();f(6.4.1h.2w()==\'Q\')6.67();1D 6.2A(6.4)},4K:7(){d h=6.1x();f(6.2K!=h){6.1a(6.4,h);6.2K=h}},67:7(){d 12=D.2L(6.4);G(d i=0;i<12.t;i++)6.2A(12[i])},2A:7(4){f(4.2g){6c(4.2g.2w()){1r\'6g\':1r\'6i\':1o.3B(4,\'8j\',6.4K.1d(6));1y;1r\'6l\':1r\'1Y\':1r\'3J\':1r\'1k-6n\':1r\'1k-8t\':1o.3B(4,\'8u\',6.4K.1d(6));1y}}}};D.k.2c=1b.17();D.k.2c.v=q.u(z 1e.2c(),{1x:7(){c D.k.1x(6.4)}});D.2c=1b.17();D.2c.v=q.u(z 1e.2c(),{1x:7(){c D.3a(6.4)}});f(!1W.1o){d 1o=z q()}q.u(1o,{8C:8,8F:9,8H:13,8I:27,8J:37,8L:38,8O:39,8T:40,8X:46,4:7(C){c C.Z||C.91},95:7(C){c(((C.6X)&&(C.6X==1))||((C.6Z)&&(C.6Z==1)))},9b:7(C){c C.9e||(C.9f+(J.3R.2G||J.1c.2G))},9g:7(C){c C.9j||(C.9k+(J.3R.2O||J.1c.2O))},7b:7(C){f(C.7d){C.7d();C.9r()}1D{C.48=Y;C.9w=11}},9A:7(C,1h){d 4=1o.4(C);1H(4.1X&&(!4.1h||(4.1h.3Y()!=1h.3Y())))4=4.1X;c 4},1T:Y,5u:7(4,B,1V,1u){f(!6.1T)6.1T=[];f(4.5f){6.1T.W([4,B,1V,1u]);4.5f(B,1V,1u)}1D f(4.4i){6.1T.W([4,B,1V,1u]);4.4i(\'2I\'+B,1V)}},66:7(){f(!1o.1T)c;G(d i=0;i<1o.1T.t;i++){1o.5N.2n(6,1o.1T[i]);1o.1T[i][0]=1L}1o.1T=Y},3B:7(4,B,1V,1u){d 4=$(4);1u=1u||Y;f(B==\'5U\'&&(33.4u.I(/3x|3w|3u/)||4.4i))B=\'5K\';6.5u(4,B,1V,1u)},5N:7(4,B,1V,1u){d 4=$(4);1u=1u||Y;f(B==\'5U\'&&(33.4u.I(/3x|3w|3u/)||4.4k))B=\'5K\';f(4.5x){4.5x(B,1V,1u)}1D f(4.4k){1j{4.4k(\'2I\'+B,1V)}1s(e){}}}});f(33.4u.I(/\\88\\b/))1o.3B(1W,\'8a\',1o.66,Y);d 2d={6o:Y,4P:7(){6.6z=1W.8e||J.3R.2G||J.1c.2G||0;6.6F=1W.8g||J.3R.2O||J.1c.2O||0},6u:7(4){d 19=0,15=0;2q{19+=4.2O||0;15+=4.2G||0;4=4.1X}1H(4);c[15,19]},35:7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;4=4.1Q}1H(4);c[15,19]},68:7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;4=4.1Q;f(4){p=k.1R(4,\'14\');f(p==\'3T\'||p==\'2o\')1y}}1H(4);c[15,19]},1Q:7(4){f(4.1Q)c 4.1Q;f(4==J.1c)c 4;1H((4=4.1X)&&4!=J.1c)f(k.1R(4,\'14\')!=\'4G\')c 4;c J.1c},8o:7(4,x,y){f(6.6o)c 6.6r(4,x,y);6.3g=x;6.34=y;6.1t=6.35(4);c(y>=6.1t[1]&&y<6.1t[1]+4.2k&&x>=6.1t[0]&&x<6.1t[0]+4.2p)},6r:7(4,x,y){d 4S=6.6u(4);6.3g=x+4S[0]-6.6z;6.34=y+4S[1]-6.6F;6.1t=6.35(4);c(6.34>=6.1t[1]&&6.34<6.1t[1]+4.2k&&6.3g>=6.1t[0]&&6.3g<6.1t[0]+4.2p)},8E:7(3Z,4){f(!3Z)c 0;f(3Z==\'8G\')c((6.1t[1]+4.2k)-6.34)/4.2k;f(3Z==\'8K\')c((6.1t[0]+4.2p)-6.3g)/4.2p},77:7(O,Z){O=$(O);Z=$(Z);Z.l.14=\'2o\';d 2P=6.35(O);Z.l.1n=2P[1]+\'1m\';Z.l.18=2P[0]+\'1m\';Z.l.21=O.2p+\'1m\';Z.l.24=O.2k+\'1m\'},4e:7(4M){d 19=0,15=0;d 4=4M;2q{19+=4.29||0;15+=4.2f||0;f(4.1Q==J.1c)f(k.1R(4,\'14\')==\'2o\')1y}1H(4=4.1Q);4=4M;2q{19-=4.2O||0;15-=4.2G||0}1H(4=4.1X);c[15,19]},77:7(O,Z){d m=q.u({5l:11,5r:11,5B:11,5q:11,29:0,2f:0},N[2]||{});O=$(O);d p=2d.4e(O);Z=$(Z);d 2J=[0,0];d 3v=1L;f(k.1R(Z,\'14\')==\'2o\'){3v=2d.1Q(Z);2J=2d.4e(3v)}f(3v==J.1c){2J[0]-=J.1c.2f;2J[1]-=J.1c.29}f(m.5l)Z.l.18=(p[0]-2J[0]+m.2f)+\'1m\';f(m.5r)Z.l.1n=(p[1]-2J[1]+m.29)+\'1m\';f(m.5B)Z.l.21=O.2p+\'1m\';f(m.5q)Z.l.24=O.2k+\'1m\'},8b:7(4){4=$(4);f(4.l.14==\'2o\')c;2d.4P();d 2P=2d.68(4);d 1n=2P[1];d 18=2P[0];d 21=4.6m;d 24=4.6p;4.6P=18-3X(4.l.18||0);4.6I=1n-3X(4.l.1n||0);4.5k=4.l.21;4.7f=4.l.24;4.l.14=\'2o\';4.l.1n=1n+\'1m\';4.l.18=18+\'1m\';4.l.21=21+\'1m\';4.l.24=24+\'1m\'},8w:7(4){4=$(4);f(4.l.14==\'3T\')c;2d.4P();4.l.14=\'3T\';d 1n=3X(4.l.1n||0)-(4.6I||0);d 18=3X(4.l.18||0)-(4.6P||0);4.l.1n=1n+\'1m\';4.l.18=18+\'1m\';4.l.24=4.7f;4.l.21=4.5k}};f(/3x|3w|3u/.4v(33.62)){2d.35=7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;f(4.1Q==J.1c)f(k.1R(4,\'14\')==\'2o\')1y;4=4.1Q}1H(4);c[15,19]}};',62,600,'||||element||this|function|||||return|var||if||value|||Element|style|options||iterator||Object|||length|extend|prototype|index|||new||name|event|Form|transport||for||match|document||result|Ajax|arguments|source|results|form|||Prototype|object|each|push||false|target||true|elements||position|valueL||create|left|valueT|callback|Class|body|bind|Abstract|className|Insertion|tagName|pair|try|select|url|px|top|Event|Enumerable|div|case|catch|offset|useCapture|undefined|container|getValue|break|replacement|pattern|onComplete|map|else|Array|method|property|while|initialize|frequency|range|null|include|join|key|requestHeaders|offsetParent|getStyle|parameter|observers|inspect|observer|window|parentNode|text|toArray|els|width|start|args|height|throw|request||parameters|offsetTop|methods|opt|EventObserver|Position|html|offsetLeft|type|fragments|typeof|fragment|offsetHeight|oStringList|_each|apply|absolute|offsetWidth|do|cache|decay|content|input|emptyFunction|toLowerCase|end|replace|childNodes|registerCallback|display|toString|onTimerEvent|Serializers|readyState|scrollLeft|exclusive|on|delta|lastValue|getElements|in|hash|scrollTop|offsets|stripScripts|iterable|truncation|gsub|template|initializeRange|Responders|insertContent|setTimeout|json||hidden|status|navigator|ycomp|cumulativeOffset|inject||||serialize|responders|_overflow|Methods|collect|adjacency|xcomp|innerHTML|count|split|response|responseIsSuccess|success|Template|responder|dispatchException|evalScripts|pluck|concat|Request|KHTML|parent|Safari|Konqueror|dispatch|failure|receiver|observe|Observer|TimedObserver|ScriptFragment|responseText|script|inputs|ancestor|textarea|classNames|ObjectRange|node|typeName|RegExp|camelize|none|documentElement|ClassNames|relative|right|overflow|HTMLElement|parseFloat|toUpperCase|mode||currentlyExecuting|remove|__method|Base|memo||slice|returnValue|continue|setOptions|String|classNameToRemove|_reverse|page|focus|queryComponent|Hash|attachEvent|post|detachEvent|Version|reverse|encodeURIComponent|disabled|asynchronous|eval|respondToReadyState|activeRequestCount|Complete|appVersion|test|getTransport|containers|matchingInputs|1000|header|updater|Updater|getElementsByTagName|child|responderToAdd|static|tagElements|queryComponents|defaultView|onElementEvent|css|forElement|values|visibility|prepare|mergedHash|pos|offsetcache|_madePositioned|visible|tbody|findOrStore|_nativeExtensions|createElement|digits|trues|found|prepareReplacement|before|camelizedString|insertBefore|selectNodeContents|exception|falses|criteria|classNameToAdd|params|set|destination|last|addEventListener|indexOf|inline|clear|succ|_originalWidth|setLeft|Top|ActiveXObject|scriptTag|matchOne|setHeight|setTop|without|responderToRemove|_observeAndCache|find|reset|removeEventListener|activate|findFirstElement|setRequestHeaders|setWidth|XMLHttpRequest|constructor|application|xml|onCreate|contentType|Field|onStateChange|keydown|Events|evalJSON|stopObserving|inputSelector|img|Content|evalResponse|selectOne|onreadystatechange|keypress|postBody|onException|selectMany|updateContent|setInterval|insertion|PeriodicalUpdater|userAgent|updateComplete|lastText|timer|unloadCache|registerFormCallbacks|positionedOffset|register|parentElement|children|switch|XMLHTTP|_extended|hide|checkbox|update|radio|these|outerHTML|password|clientWidth|one|includeScrollOffsets|clientHeight|nodeValue|withinIncludingScrolloffsets|Try|scrollTo|realOffset|getComputedStyle|show|currentStyle|auto|deltaX|originalPosition|originalVisibility|originalWidth|originalHeight|opera|deltaY|bottom|array|_originalTop|flatten|addMethods|lambda|Toggle|toggle|insertAdjacentHTML|_originalLeft|PeriodicalExecuter|ownerDocument|createRange|createContextualFragment|contentFromAnonymousTable|table|Before|which|matchAll|button|extractScripts|stripTags|pairString|len|collapse|appendChild|After|clone|toQueryParams|Pattern|evaluate|stop|stringValue|preventDefault|charAt|_originalHeight|substring|Bottom|pairs|Function|add|collections|javascript|detect|findAll|entries|from|first|compact|keys|merge|present|toQueryString|getInputs|Msxml2|Microsoft|unregister|disable|urlencoded|blur|300|enable|responseIsFailure|Uninitialized|Loaded|Interactive|_|get|focusFirstElement|open|send|Requested|With|Accept|overrideMimeType|Connection|close|setRequestHeader|getResponseHeader|JSON|gi|submit|Loading|Success|Failure|checked|200|selectedIndex|www|selected|bMSIE|clearTimeout|unload|absolutize|string|getElementById|pageXOffset|getElementsByClassName|pageYOffset|removeChild|replaceChild|click|getHeight|hasClassName|addClassName|removeClassName|within|cleanWhitespace|nodeType|empty|childOf|multiple|change|getPropertyValue|relativize|setStyle|getDimensions|makePositioned|undoPositioned|makeClipping|KEY_BACKSPACE|undoClipping|overlap|KEY_TAB|vertical|KEY_RETURN|KEY_ESC|KEY_LEFT|horizontal|KEY_UP|member|tr|KEY_RIGHT|0_RC_0|Number|instanceof|shift|KEY_DOWN|bindAsEventListener|call|toColorPart|KEY_DELETE|times|finally|callee|srcElement|sub|scan|truncate|isLeftClick|beforeBegin|setStartBefore|im|afterBegin|firstChild|pointerX|unescapeHTML|beforeEnd|pageX|clientX|pointerY|parseQuery|afterEnd|pageY|clientY|RangeError|setStartAfter|all|any|grep|invoke|stopPropagation|max|nextSibling|min|partition|cancelBubble|reject|sortBy|sort|findElement|zip|pop|createTextNode|escapeHTML|strip'.split('|'),0,{})
+
+} \ No newline at end of file
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-validate-input.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-validate-input.js
new file mode 100644
index 000000000..3455b3208
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/string-validate-input.js
@@ -0,0 +1,89 @@
+letters = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
+numbers = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26);
+colors = new Array("FF","CC","99","66","33","00");
+
+var endResult;
+
+function doTest()
+{
+ endResult = "";
+
+ // make up email address
+ for (var k=0;k<4000;k++)
+ {
+ name = makeName(6);
+ (k%2)?email=name+"@mac.com":email=name+"(at)mac.com";
+
+ // validate the email address
+ var pattern = /^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-_]+(\.?[a-zA-Z0-9\-_]*)\.[a-zA-Z]{2,3}$/;
+
+ if(pattern.test(email))
+ {
+ var r = email + " appears to be a valid email address.";
+ addResult(r);
+ }
+ else
+ {
+ r = email + " does NOT appear to be a valid email address.";
+ addResult(r);
+ }
+ }
+
+ // make up ZIP codes
+ for (var s=0;s<4000;s++)
+ {
+ var zipGood = true;
+ var zip = makeNumber(4);
+ (s%2)?zip=zip+"xyz":zip=zip.concat("7");
+
+ // validate the zip code
+ for (var i = 0; i < zip.length; i++) {
+ var ch = zip.charAt(i);
+ if (ch < "0" || ch > "9") {
+ zipGood = false;
+ r = zip + " contains letters.";
+ addResult(r);
+ }
+ }
+ if (zipGood && zip.length>5)
+ {
+ zipGood = false;
+ r = zip + " is longer than five characters.";
+ addResult(r);
+ }
+ if (zipGood)
+ {
+ r = zip + " appears to be a valid ZIP code.";
+ addResult(r);
+ }
+ }
+}
+
+function makeName(n)
+{
+ var tmp = "";
+ for (var i=0;i<n;i++)
+ {
+ var l = Math.floor(26*Math.random());
+ tmp += letters[l];
+ }
+ return tmp;
+}
+
+function makeNumber(n)
+{
+ var tmp = "";
+ for (var i=0;i<n;i++)
+ {
+ var l = Math.floor(9*Math.random());
+ tmp = tmp.concat(l);
+ }
+ return tmp;
+}
+
+function addResult(r)
+{
+ endResult += "\n" + r;
+}
+
+doTest();
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/3d-cube.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/3d-cube.js
new file mode 100644
index 000000000..e2cd6f9a5
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/3d-cube.js
@@ -0,0 +1,337 @@
+// 3D Cube Rotation
+// http://www.speich.net/computer/moztesting/3d.htm
+// Created by Simon Speich
+
+var Q = new Array();
+var MTrans = new Array(); // transformation matrix
+var MQube = new Array(); // position information of qube
+var I = new Array(); // entity matrix
+var Origin = new Object();
+var Testing = new Object();
+var LoopTimer;
+
+var DisplArea = new Object();
+DisplArea.Width = 300;
+DisplArea.Height = 300;
+
+function DrawLine(From, To) {
+ var x1 = From.V[0];
+ var x2 = To.V[0];
+ var y1 = From.V[1];
+ var y2 = To.V[1];
+ var dx = Math.abs(x2 - x1);
+ var dy = Math.abs(y2 - y1);
+ var x = x1;
+ var y = y1;
+ var IncX1, IncY1;
+ var IncX2, IncY2;
+ var Den;
+ var Num;
+ var NumAdd;
+ var NumPix;
+
+ if (x2 >= x1) { IncX1 = 1; IncX2 = 1; }
+ else { IncX1 = -1; IncX2 = -1; }
+ if (y2 >= y1) { IncY1 = 1; IncY2 = 1; }
+ else { IncY1 = -1; IncY2 = -1; }
+ if (dx >= dy) {
+ IncX1 = 0;
+ IncY2 = 0;
+ Den = dx;
+ Num = dx / 2;
+ NumAdd = dy;
+ NumPix = dx;
+ }
+ else {
+ IncX2 = 0;
+ IncY1 = 0;
+ Den = dy;
+ Num = dy / 2;
+ NumAdd = dx;
+ NumPix = dy;
+ }
+
+ NumPix = Math.round(Q.LastPx + NumPix);
+
+ var i = Q.LastPx;
+ for (; i < NumPix; i++) {
+ Num += NumAdd;
+ if (Num >= Den) {
+ Num -= Den;
+ x += IncX1;
+ y += IncY1;
+ }
+ x += IncX2;
+ y += IncY2;
+ }
+ Q.LastPx = NumPix;
+}
+
+function CalcCross(V0, V1) {
+ var Cross = new Array();
+ Cross[0] = V0[1]*V1[2] - V0[2]*V1[1];
+ Cross[1] = V0[2]*V1[0] - V0[0]*V1[2];
+ Cross[2] = V0[0]*V1[1] - V0[1]*V1[0];
+ return Cross;
+}
+
+function CalcNormal(V0, V1, V2) {
+ var A = new Array(); var B = new Array();
+ for (var i = 0; i < 3; i++) {
+ A[i] = V0[i] - V1[i];
+ B[i] = V2[i] - V1[i];
+ }
+ A = CalcCross(A, B);
+ var Length = Math.sqrt(A[0]*A[0] + A[1]*A[1] + A[2]*A[2]);
+ for (var i = 0; i < 3; i++) A[i] = A[i] / Length;
+ A[3] = 1;
+ return A;
+}
+
+function CreateP(X,Y,Z) {
+ this.V = [X,Y,Z,1];
+}
+
+// multiplies two matrices
+function MMulti(M1, M2) {
+ var M = [[],[],[],[]];
+ var i = 0;
+ var j = 0;
+ for (; i < 4; i++) {
+ j = 0;
+ for (; j < 4; j++) M[i][j] = M1[i][0] * M2[0][j] + M1[i][1] * M2[1][j] + M1[i][2] * M2[2][j] + M1[i][3] * M2[3][j];
+ }
+ return M;
+}
+
+//multiplies matrix with vector
+function VMulti(M, V) {
+ var Vect = new Array();
+ var i = 0;
+ for (;i < 4; i++) Vect[i] = M[i][0] * V[0] + M[i][1] * V[1] + M[i][2] * V[2] + M[i][3] * V[3];
+ return Vect;
+}
+
+function VMulti2(M, V) {
+ var Vect = new Array();
+ var i = 0;
+ for (;i < 3; i++) Vect[i] = M[i][0] * V[0] + M[i][1] * V[1] + M[i][2] * V[2];
+ return Vect;
+}
+
+// add to matrices
+function MAdd(M1, M2) {
+ var M = [[],[],[],[]];
+ var i = 0;
+ var j = 0;
+ for (; i < 4; i++) {
+ j = 0;
+ for (; j < 4; j++) M[i][j] = M1[i][j] + M2[i][j];
+ }
+ return M;
+}
+
+function Translate(M, Dx, Dy, Dz) {
+ var T = [
+ [1,0,0,Dx],
+ [0,1,0,Dy],
+ [0,0,1,Dz],
+ [0,0,0,1]
+ ];
+ return MMulti(T, M);
+}
+
+function RotateX(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [1,0,0,0],
+ [0,Cos,-Sin,0],
+ [0,Sin,Cos,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function RotateY(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [Cos,0,Sin,0],
+ [0,1,0,0],
+ [-Sin,0,Cos,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function RotateZ(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [Cos,-Sin,0,0],
+ [Sin,Cos,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function DrawQube() {
+ // calc current normals
+ var CurN = new Array();
+ var i = 5;
+ Q.LastPx = 0;
+ for (; i > -1; i--) CurN[i] = VMulti2(MQube, Q.Normal[i]);
+ if (CurN[0][2] < 0) {
+ if (!Q.Line[0]) { DrawLine(Q[0], Q[1]); Q.Line[0] = true; };
+ if (!Q.Line[1]) { DrawLine(Q[1], Q[2]); Q.Line[1] = true; };
+ if (!Q.Line[2]) { DrawLine(Q[2], Q[3]); Q.Line[2] = true; };
+ if (!Q.Line[3]) { DrawLine(Q[3], Q[0]); Q.Line[3] = true; };
+ }
+ if (CurN[1][2] < 0) {
+ if (!Q.Line[2]) { DrawLine(Q[3], Q[2]); Q.Line[2] = true; };
+ if (!Q.Line[9]) { DrawLine(Q[2], Q[6]); Q.Line[9] = true; };
+ if (!Q.Line[6]) { DrawLine(Q[6], Q[7]); Q.Line[6] = true; };
+ if (!Q.Line[10]) { DrawLine(Q[7], Q[3]); Q.Line[10] = true; };
+ }
+ if (CurN[2][2] < 0) {
+ if (!Q.Line[4]) { DrawLine(Q[4], Q[5]); Q.Line[4] = true; };
+ if (!Q.Line[5]) { DrawLine(Q[5], Q[6]); Q.Line[5] = true; };
+ if (!Q.Line[6]) { DrawLine(Q[6], Q[7]); Q.Line[6] = true; };
+ if (!Q.Line[7]) { DrawLine(Q[7], Q[4]); Q.Line[7] = true; };
+ }
+ if (CurN[3][2] < 0) {
+ if (!Q.Line[4]) { DrawLine(Q[4], Q[5]); Q.Line[4] = true; };
+ if (!Q.Line[8]) { DrawLine(Q[5], Q[1]); Q.Line[8] = true; };
+ if (!Q.Line[0]) { DrawLine(Q[1], Q[0]); Q.Line[0] = true; };
+ if (!Q.Line[11]) { DrawLine(Q[0], Q[4]); Q.Line[11] = true; };
+ }
+ if (CurN[4][2] < 0) {
+ if (!Q.Line[11]) { DrawLine(Q[4], Q[0]); Q.Line[11] = true; };
+ if (!Q.Line[3]) { DrawLine(Q[0], Q[3]); Q.Line[3] = true; };
+ if (!Q.Line[10]) { DrawLine(Q[3], Q[7]); Q.Line[10] = true; };
+ if (!Q.Line[7]) { DrawLine(Q[7], Q[4]); Q.Line[7] = true; };
+ }
+ if (CurN[5][2] < 0) {
+ if (!Q.Line[8]) { DrawLine(Q[1], Q[5]); Q.Line[8] = true; };
+ if (!Q.Line[5]) { DrawLine(Q[5], Q[6]); Q.Line[5] = true; };
+ if (!Q.Line[9]) { DrawLine(Q[6], Q[2]); Q.Line[9] = true; };
+ if (!Q.Line[1]) { DrawLine(Q[2], Q[1]); Q.Line[1] = true; };
+ }
+ Q.Line = [false,false,false,false,false,false,false,false,false,false,false,false];
+ Q.LastPx = 0;
+}
+
+function Loop() {
+ if (Testing.LoopCount > Testing.LoopMax) return;
+ var TestingStr = String(Testing.LoopCount);
+ while (TestingStr.length < 3) TestingStr = "0" + TestingStr;
+ MTrans = Translate(I, -Q[8].V[0], -Q[8].V[1], -Q[8].V[2]);
+ MTrans = RotateX(MTrans, 1);
+ MTrans = RotateY(MTrans, 3);
+ MTrans = RotateZ(MTrans, 5);
+ MTrans = Translate(MTrans, Q[8].V[0], Q[8].V[1], Q[8].V[2]);
+ MQube = MMulti(MTrans, MQube);
+ var i = 8;
+ for (; i > -1; i--) {
+ Q[i].V = VMulti(MTrans, Q[i].V);
+ }
+ DrawQube();
+ Testing.LoopCount++;
+ Loop();
+}
+
+function Init(CubeSize) {
+ // init/reset vars
+ Origin.V = [150,150,20,1];
+ Testing.LoopCount = 0;
+ Testing.LoopMax = 50;
+ Testing.TimeMax = 0;
+ Testing.TimeAvg = 0;
+ Testing.TimeMin = 0;
+ Testing.TimeTemp = 0;
+ Testing.TimeTotal = 0;
+ Testing.Init = false;
+
+ // transformation matrix
+ MTrans = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // position information of qube
+ MQube = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // entity matrix
+ I = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // create qube
+ Q[0] = new CreateP(-CubeSize,-CubeSize, CubeSize);
+ Q[1] = new CreateP(-CubeSize, CubeSize, CubeSize);
+ Q[2] = new CreateP( CubeSize, CubeSize, CubeSize);
+ Q[3] = new CreateP( CubeSize,-CubeSize, CubeSize);
+ Q[4] = new CreateP(-CubeSize,-CubeSize,-CubeSize);
+ Q[5] = new CreateP(-CubeSize, CubeSize,-CubeSize);
+ Q[6] = new CreateP( CubeSize, CubeSize,-CubeSize);
+ Q[7] = new CreateP( CubeSize,-CubeSize,-CubeSize);
+
+ // center of gravity
+ Q[8] = new CreateP(0, 0, 0);
+
+ // anti-clockwise edge check
+ Q.Edge = [[0,1,2],[3,2,6],[7,6,5],[4,5,1],[4,0,3],[1,5,6]];
+
+ // calculate squad normals
+ Q.Normal = new Array();
+ for (var i = 0; i < Q.Edge.length; i++) Q.Normal[i] = CalcNormal(Q[Q.Edge[i][0]].V, Q[Q.Edge[i][1]].V, Q[Q.Edge[i][2]].V);
+
+ // line drawn ?
+ Q.Line = [false,false,false,false,false,false,false,false,false,false,false,false];
+
+ // create line pixels
+ Q.NumPx = 9 * 2 * CubeSize;
+ for (var i = 0; i < Q.NumPx; i++) CreateP(0,0,0);
+
+ MTrans = Translate(MTrans, Origin.V[0], Origin.V[1], Origin.V[2]);
+ MQube = MMulti(MTrans, MQube);
+
+ var i = 0;
+ for (; i < 9; i++) {
+ Q[i].V = VMulti(MTrans, Q[i].V);
+ }
+ DrawQube();
+ Testing.Init = true;
+ Loop();
+}
+
+for ( var i = 20; i <= 160; i *= 2 ) {
+ Init(i);
+}
+
+Q = null;
+MTrans = null;
+MQube = null;
+I = null;
+Origin = null;
+Testing = null;
+LoopTime = null;
+DisplArea = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/3d-morph.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/3d-morph.js
new file mode 100644
index 000000000..d4238c080
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/3d-morph.js
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var loops = 15
+var nx = 120
+var nz = 120
+
+function morph(a, f) {
+ var PI2nx = Math.PI * 8/nx
+ var sin = Math.sin
+ var f30 = -(50 * sin(f*Math.PI*2))
+
+ for (var i = 0; i < nz; ++i) {
+ for (var j = 0; j < nx; ++j) {
+ a[3*(i*nx+j)+1] = sin((j-1) * PI2nx ) * -f30
+ }
+ }
+}
+
+
+var a = Array()
+for (var i=0; i < nx*nz*3; ++i)
+ a[i] = 0
+
+for (var i = 0; i < loops; ++i) {
+ morph(a, i/loops)
+}
+
+testOutput = 0;
+for (var i = 0; i < nx; i++)
+ testOutput += a[3*(i*nx+i)+1];
+a = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/3d-raytrace.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/3d-raytrace.js
new file mode 100644
index 000000000..e7b959e1c
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/3d-raytrace.js
@@ -0,0 +1,441 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function createVector(x,y,z) {
+ return new Array(x,y,z);
+}
+
+function sqrLengthVector(self) {
+ return self[0] * self[0] + self[1] * self[1] + self[2] * self[2];
+}
+
+function lengthVector(self) {
+ return Math.sqrt(self[0] * self[0] + self[1] * self[1] + self[2] * self[2]);
+}
+
+function addVector(self, v) {
+ self[0] += v[0];
+ self[1] += v[1];
+ self[2] += v[2];
+ return self;
+}
+
+function subVector(self, v) {
+ self[0] -= v[0];
+ self[1] -= v[1];
+ self[2] -= v[2];
+ return self;
+}
+
+function scaleVector(self, scale) {
+ self[0] *= scale;
+ self[1] *= scale;
+ self[2] *= scale;
+ return self;
+}
+
+function normaliseVector(self) {
+ var len = Math.sqrt(self[0] * self[0] + self[1] * self[1] + self[2] * self[2]);
+ self[0] /= len;
+ self[1] /= len;
+ self[2] /= len;
+ return self;
+}
+
+function add(v1, v2) {
+ return new Array(v1[0] + v2[0], v1[1] + v2[1], v1[2] + v2[2]);
+}
+
+function sub(v1, v2) {
+ return new Array(v1[0] - v2[0], v1[1] - v2[1], v1[2] - v2[2]);
+}
+
+function scalev(v1, v2) {
+ return new Array(v1[0] * v2[0], v1[1] * v2[1], v1[2] * v2[2]);
+}
+
+function dot(v1, v2) {
+ return v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
+}
+
+function scale(v, scale) {
+ return [v[0] * scale, v[1] * scale, v[2] * scale];
+}
+
+function cross(v1, v2) {
+ return [v1[1] * v2[2] - v1[2] * v2[1],
+ v1[2] * v2[0] - v1[0] * v2[2],
+ v1[0] * v2[1] - v1[1] * v2[0]];
+
+}
+
+function normalise(v) {
+ var len = lengthVector(v);
+ return [v[0] / len, v[1] / len, v[2] / len];
+}
+
+function transformMatrix(self, v) {
+ var vals = self;
+ var x = vals[0] * v[0] + vals[1] * v[1] + vals[2] * v[2] + vals[3];
+ var y = vals[4] * v[0] + vals[5] * v[1] + vals[6] * v[2] + vals[7];
+ var z = vals[8] * v[0] + vals[9] * v[1] + vals[10] * v[2] + vals[11];
+ return [x, y, z];
+}
+
+function invertMatrix(self) {
+ var temp = new Array(16);
+ var tx = -self[3];
+ var ty = -self[7];
+ var tz = -self[11];
+ for (h = 0; h < 3; h++)
+ for (v = 0; v < 3; v++)
+ temp[h + v * 4] = self[v + h * 4];
+ for (i = 0; i < 11; i++)
+ self[i] = temp[i];
+ self[3] = tx * self[0] + ty * self[1] + tz * self[2];
+ self[7] = tx * self[4] + ty * self[5] + tz * self[6];
+ self[11] = tx * self[8] + ty * self[9] + tz * self[10];
+ return self;
+}
+
+
+// Triangle intersection using barycentric coord method
+function Triangle(p1, p2, p3) {
+ var edge1 = sub(p3, p1);
+ var edge2 = sub(p2, p1);
+ var normal = cross(edge1, edge2);
+ if (Math.abs(normal[0]) > Math.abs(normal[1]))
+ if (Math.abs(normal[0]) > Math.abs(normal[2]))
+ this.axis = 0;
+ else
+ this.axis = 2;
+ else
+ if (Math.abs(normal[1]) > Math.abs(normal[2]))
+ this.axis = 1;
+ else
+ this.axis = 2;
+ var u = (this.axis + 1) % 3;
+ var v = (this.axis + 2) % 3;
+ var u1 = edge1[u];
+ var v1 = edge1[v];
+
+ var u2 = edge2[u];
+ var v2 = edge2[v];
+ this.normal = normalise(normal);
+ this.nu = normal[u] / normal[this.axis];
+ this.nv = normal[v] / normal[this.axis];
+ this.nd = dot(normal, p1) / normal[this.axis];
+ var det = u1 * v2 - v1 * u2;
+ this.eu = p1[u];
+ this.ev = p1[v];
+ this.nu1 = u1 / det;
+ this.nv1 = -v1 / det;
+ this.nu2 = v2 / det;
+ this.nv2 = -u2 / det;
+ this.material = [0.7, 0.7, 0.7];
+}
+
+Triangle.prototype.intersect = function(orig, dir, near, far) {
+ var u = (this.axis + 1) % 3;
+ var v = (this.axis + 2) % 3;
+ var d = dir[this.axis] + this.nu * dir[u] + this.nv * dir[v];
+ var t = (this.nd - orig[this.axis] - this.nu * orig[u] - this.nv * orig[v]) / d;
+ if (t < near || t > far)
+ return null;
+ var Pu = orig[u] + t * dir[u] - this.eu;
+ var Pv = orig[v] + t * dir[v] - this.ev;
+ var a2 = Pv * this.nu1 + Pu * this.nv1;
+ if (a2 < 0)
+ return null;
+ var a3 = Pu * this.nu2 + Pv * this.nv2;
+ if (a3 < 0)
+ return null;
+
+ if ((a2 + a3) > 1)
+ return null;
+ return t;
+}
+
+function Scene(a_triangles) {
+ this.triangles = a_triangles;
+ this.lights = [];
+ this.ambient = [0,0,0];
+ this.background = [0.8,0.8,1];
+}
+var zero = new Array(0,0,0);
+
+Scene.prototype.intersect = function(origin, dir, near, far) {
+ var closest = null;
+ for (i = 0; i < this.triangles.length; i++) {
+ var triangle = this.triangles[i];
+ var d = triangle.intersect(origin, dir, near, far);
+ if (d == null || d > far || d < near)
+ continue;
+ far = d;
+ closest = triangle;
+ }
+
+ if (!closest)
+ return [this.background[0],this.background[1],this.background[2]];
+
+ var normal = closest.normal;
+ var hit = add(origin, scale(dir, far));
+ if (dot(dir, normal) > 0)
+ normal = [-normal[0], -normal[1], -normal[2]];
+
+ var colour = null;
+ if (closest.shader) {
+ colour = closest.shader(closest, hit, dir);
+ } else {
+ colour = closest.material;
+ }
+
+ // do reflection
+ var reflected = null;
+ if (colour.reflection > 0.001) {
+ var reflection = addVector(scale(normal, -2*dot(dir, normal)), dir);
+ reflected = this.intersect(hit, reflection, 0.0001, 1000000);
+ if (colour.reflection >= 0.999999)
+ return reflected;
+ }
+
+ var l = [this.ambient[0], this.ambient[1], this.ambient[2]];
+ for (var i = 0; i < this.lights.length; i++) {
+ var light = this.lights[i];
+ var toLight = sub(light, hit);
+ var distance = lengthVector(toLight);
+ scaleVector(toLight, 1.0/distance);
+ distance -= 0.0001;
+ if (this.blocked(hit, toLight, distance))
+ continue;
+ var nl = dot(normal, toLight);
+ if (nl > 0)
+ addVector(l, scale(light.colour, nl));
+ }
+ l = scalev(l, colour);
+ if (reflected) {
+ l = addVector(scaleVector(l, 1 - colour.reflection), scaleVector(reflected, colour.reflection));
+ }
+ return l;
+}
+
+Scene.prototype.blocked = function(O, D, far) {
+ var near = 0.0001;
+ var closest = null;
+ for (i = 0; i < this.triangles.length; i++) {
+ var triangle = this.triangles[i];
+ var d = triangle.intersect(O, D, near, far);
+ if (d == null || d > far || d < near)
+ continue;
+ return true;
+ }
+
+ return false;
+}
+
+
+// this camera code is from notes i made ages ago, it is from *somewhere* -- i cannot remember where
+// that somewhere is
+function Camera(origin, lookat, up) {
+ var zaxis = normaliseVector(subVector(lookat, origin));
+ var xaxis = normaliseVector(cross(up, zaxis));
+ var yaxis = normaliseVector(cross(xaxis, subVector([0,0,0], zaxis)));
+ var m = new Array(16);
+ m[0] = xaxis[0]; m[1] = xaxis[1]; m[2] = xaxis[2];
+ m[4] = yaxis[0]; m[5] = yaxis[1]; m[6] = yaxis[2];
+ m[8] = zaxis[0]; m[9] = zaxis[1]; m[10] = zaxis[2];
+ invertMatrix(m);
+ m[3] = 0; m[7] = 0; m[11] = 0;
+ this.origin = origin;
+ this.directions = new Array(4);
+ this.directions[0] = normalise([-0.7, 0.7, 1]);
+ this.directions[1] = normalise([ 0.7, 0.7, 1]);
+ this.directions[2] = normalise([ 0.7, -0.7, 1]);
+ this.directions[3] = normalise([-0.7, -0.7, 1]);
+ this.directions[0] = transformMatrix(m, this.directions[0]);
+ this.directions[1] = transformMatrix(m, this.directions[1]);
+ this.directions[2] = transformMatrix(m, this.directions[2]);
+ this.directions[3] = transformMatrix(m, this.directions[3]);
+}
+
+Camera.prototype.generateRayPair = function(y) {
+ rays = new Array(new Object(), new Object());
+ rays[0].origin = this.origin;
+ rays[1].origin = this.origin;
+ rays[0].dir = addVector(scale(this.directions[0], y), scale(this.directions[3], 1 - y));
+ rays[1].dir = addVector(scale(this.directions[1], y), scale(this.directions[2], 1 - y));
+ return rays;
+}
+
+function renderRows(camera, scene, pixels, width, height, starty, stopy) {
+ for (var y = starty; y < stopy; y++) {
+ var rays = camera.generateRayPair(y / height);
+ for (var x = 0; x < width; x++) {
+ var xp = x / width;
+ var origin = addVector(scale(rays[0].origin, xp), scale(rays[1].origin, 1 - xp));
+ var dir = normaliseVector(addVector(scale(rays[0].dir, xp), scale(rays[1].dir, 1 - xp)));
+ var l = scene.intersect(origin, dir);
+ pixels[y][x] = l;
+ }
+ }
+}
+
+Camera.prototype.render = function(scene, pixels, width, height) {
+ var cam = this;
+ var row = 0;
+ renderRows(cam, scene, pixels, width, height, 0, height);
+}
+
+
+
+function raytraceScene()
+{
+ var startDate = new Date().getTime();
+ var numTriangles = 2 * 6;
+ var triangles = new Array();//numTriangles);
+ var tfl = createVector(-10, 10, -10);
+ var tfr = createVector( 10, 10, -10);
+ var tbl = createVector(-10, 10, 10);
+ var tbr = createVector( 10, 10, 10);
+ var bfl = createVector(-10, -10, -10);
+ var bfr = createVector( 10, -10, -10);
+ var bbl = createVector(-10, -10, 10);
+ var bbr = createVector( 10, -10, 10);
+
+ // cube!!!
+ // front
+ var i = 0;
+
+ triangles[i++] = new Triangle(tfl, tfr, bfr);
+ triangles[i++] = new Triangle(tfl, bfr, bfl);
+ // back
+ triangles[i++] = new Triangle(tbl, tbr, bbr);
+ triangles[i++] = new Triangle(tbl, bbr, bbl);
+ // triangles[i-1].material = [0.7,0.2,0.2];
+ // triangles[i-1].material.reflection = 0.8;
+ // left
+ triangles[i++] = new Triangle(tbl, tfl, bbl);
+ // triangles[i-1].reflection = 0.6;
+ triangles[i++] = new Triangle(tfl, bfl, bbl);
+ // triangles[i-1].reflection = 0.6;
+ // right
+ triangles[i++] = new Triangle(tbr, tfr, bbr);
+ triangles[i++] = new Triangle(tfr, bfr, bbr);
+ // top
+ triangles[i++] = new Triangle(tbl, tbr, tfr);
+ triangles[i++] = new Triangle(tbl, tfr, tfl);
+ // bottom
+ triangles[i++] = new Triangle(bbl, bbr, bfr);
+ triangles[i++] = new Triangle(bbl, bfr, bfl);
+
+ //Floor!!!!
+ var green = createVector(0.0, 0.4, 0.0);
+ var grey = createVector(0.4, 0.4, 0.4);
+ grey.reflection = 1.0;
+ var floorShader = function(tri, pos, view) {
+ var x = ((pos[0]/32) % 2 + 2) % 2;
+ var z = ((pos[2]/32 + 0.3) % 2 + 2) % 2;
+ if (x < 1 != z < 1) {
+ //in the real world we use the fresnel term...
+ // var angle = 1-dot(view, tri.normal);
+ // angle *= angle;
+ // angle *= angle;
+ // angle *= angle;
+ //grey.reflection = angle;
+ return grey;
+ } else
+ return green;
+ }
+ var ffl = createVector(-1000, -30, -1000);
+ var ffr = createVector( 1000, -30, -1000);
+ var fbl = createVector(-1000, -30, 1000);
+ var fbr = createVector( 1000, -30, 1000);
+ triangles[i++] = new Triangle(fbl, fbr, ffr);
+ triangles[i-1].shader = floorShader;
+ triangles[i++] = new Triangle(fbl, ffr, ffl);
+ triangles[i-1].shader = floorShader;
+
+ var _scene = new Scene(triangles);
+ _scene.lights[0] = createVector(20, 38, -22);
+ _scene.lights[0].colour = createVector(0.7, 0.3, 0.3);
+ _scene.lights[1] = createVector(-23, 40, 17);
+ _scene.lights[1].colour = createVector(0.7, 0.3, 0.3);
+ _scene.lights[2] = createVector(23, 20, 17);
+ _scene.lights[2].colour = createVector(0.7, 0.7, 0.7);
+ _scene.ambient = createVector(0.1, 0.1, 0.1);
+ // _scene.background = createVector(0.7, 0.7, 1.0);
+
+ var size = 30;
+ var pixels = new Array();
+ for (var y = 0; y < size; y++) {
+ pixels[y] = new Array();
+ for (var x = 0; x < size; x++) {
+ pixels[y][x] = 0;
+ }
+ }
+
+ var _camera = new Camera(createVector(-40, 40, 40), createVector(0, 0, 0), createVector(0, 1, 0));
+ _camera.render(_scene, pixels, size, size);
+
+ return pixels;
+}
+
+function arrayToCanvasCommands(pixels)
+{
+ var s = '<canvas id="renderCanvas" width="30px" height="30px"></canvas><scr' + 'ipt>\nvar pixels = [';
+ var size = 30;
+ for (var y = 0; y < size; y++) {
+ s += "[";
+ for (var x = 0; x < size; x++) {
+ s += "[" + pixels[y][x] + "],";
+ }
+ s+= "],";
+ }
+ s += '];\n var canvas = document.getElementById("renderCanvas").getContext("2d");\n\
+\n\
+\n\
+ var size = 30;\n\
+ canvas.fillStyle = "red";\n\
+ canvas.fillRect(0, 0, size, size);\n\
+ canvas.scale(1, -1);\n\
+ canvas.translate(0, -size);\n\
+\n\
+ if (!canvas.setFillColor)\n\
+ canvas.setFillColor = function(r, g, b, a) {\n\
+ this.fillStyle = "rgb("+[Math.floor(r * 255), Math.floor(g * 255), Math.floor(b * 255)]+")";\n\
+ }\n\
+\n\
+for (var y = 0; y < size; y++) {\n\
+ for (var x = 0; x < size; x++) {\n\
+ var l = pixels[y][x];\n\
+ canvas.setFillColor(l[0], l[1], l[2], 1);\n\
+ canvas.fillRect(x, y, 1, 1);\n\
+ }\n\
+}</scr' + 'ipt>';
+
+ return s;
+}
+
+testOutput = arrayToCanvasCommands(raytraceScene());
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/LIST b/PerformanceTests/SunSpider/tests/sunspider-0.9/LIST
new file mode 100644
index 000000000..34cfac4f4
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/LIST
@@ -0,0 +1,26 @@
+3d-cube
+3d-morph
+3d-raytrace
+access-binary-trees
+access-fannkuch
+access-nbody
+access-nsieve
+bitops-3bit-bits-in-byte
+bitops-bits-in-byte
+bitops-bitwise-and
+bitops-nsieve-bits
+controlflow-recursive
+crypto-aes
+crypto-md5
+crypto-sha1
+date-format-tofte
+date-format-xparb
+math-cordic
+math-partial-sums
+math-spectral-norm
+regexp-dna
+string-base64
+string-fasta
+string-tagcloud
+string-unpack-code
+string-validate-input
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/access-binary-trees.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/access-binary-trees.js
new file mode 100644
index 000000000..2f24e7db1
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/access-binary-trees.js
@@ -0,0 +1,50 @@
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+function TreeNode(left,right,item){
+ this.left = left;
+ this.right = right;
+ this.item = item;
+}
+
+TreeNode.prototype.itemCheck = function(){
+ if (this.left==null) return this.item;
+ else return this.item + this.left.itemCheck() - this.right.itemCheck();
+}
+
+function bottomUpTree(item,depth){
+ if (depth>0){
+ return new TreeNode(
+ bottomUpTree(2*item-1, depth-1)
+ ,bottomUpTree(2*item, depth-1)
+ ,item
+ );
+ }
+ else {
+ return new TreeNode(null,null,item);
+ }
+}
+
+var ret;
+
+for ( var n = 4; n <= 7; n += 1 ) {
+ var minDepth = 4;
+ var maxDepth = Math.max(minDepth + 2, n);
+ var stretchDepth = maxDepth + 1;
+
+ var check = bottomUpTree(0,stretchDepth).itemCheck();
+
+ var longLivedTree = bottomUpTree(0,maxDepth);
+ for (var depth=minDepth; depth<=maxDepth; depth+=2){
+ var iterations = 1 << (maxDepth - depth + minDepth);
+
+ check = 0;
+ for (var i=1; i<=iterations; i++){
+ check += bottomUpTree(i,depth).itemCheck();
+ check += bottomUpTree(-i,depth).itemCheck();
+ }
+ }
+
+ ret = longLivedTree.itemCheck();
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/access-fannkuch.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/access-fannkuch.js
new file mode 100644
index 000000000..1ea87b494
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/access-fannkuch.js
@@ -0,0 +1,66 @@
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+function fannkuch(n) {
+ var check = 0;
+ var perm = Array(n);
+ var perm1 = Array(n);
+ var count = Array(n);
+ var maxPerm = Array(n);
+ var maxFlipsCount = 0;
+ var m = n - 1;
+
+ for (var i = 0; i < n; i++) perm1[i] = i;
+ var r = n;
+
+ while (true) {
+ // write-out the first 30 permutations
+ if (check < 30){
+ var s = "";
+ for(var i=0; i<n; i++) s += (perm1[i]+1).toString();
+ check++;
+ }
+
+ while (r != 1) { count[r - 1] = r; r--; }
+ if (!(perm1[0] == 0 || perm1[m] == m)) {
+ for (var i = 0; i < n; i++) perm[i] = perm1[i];
+
+ var flipsCount = 0;
+ var k;
+
+ while (!((k = perm[0]) == 0)) {
+ var k2 = (k + 1) >> 1;
+ for (var i = 0; i < k2; i++) {
+ var temp = perm[i]; perm[i] = perm[k - i]; perm[k - i] = temp;
+ }
+ flipsCount++;
+ }
+
+ if (flipsCount > maxFlipsCount) {
+ maxFlipsCount = flipsCount;
+ for (var i = 0; i < n; i++) maxPerm[i] = perm1[i];
+ }
+ }
+
+ while (true) {
+ if (r == n) return maxFlipsCount;
+ var perm0 = perm1[0];
+ var i = 0;
+ while (i < r) {
+ var j = i + 1;
+ perm1[i] = perm1[j];
+ i = j;
+ }
+ perm1[r] = perm0;
+
+ count[r] = count[r] - 1;
+ if (count[r] > 0) break;
+ r++;
+ }
+ }
+}
+
+var n = 8;
+var ret = fannkuch(n);
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/access-nbody.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/access-nbody.js
new file mode 100644
index 000000000..f0d080d12
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/access-nbody.js
@@ -0,0 +1,169 @@
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+var PI = 3.141592653589793;
+var SOLAR_MASS = 4 * PI * PI;
+var DAYS_PER_YEAR = 365.24;
+
+function Body(x,y,z,vx,vy,vz,mass){
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ this.vx = vx;
+ this.vy = vy;
+ this.vz = vz;
+ this.mass = mass;
+}
+
+Body.prototype.offsetMomentum = function(px,py,pz) {
+ this.vx = -px / SOLAR_MASS;
+ this.vy = -py / SOLAR_MASS;
+ this.vz = -pz / SOLAR_MASS;
+ return this;
+}
+
+function Jupiter(){
+ return new Body(
+ 4.84143144246472090e+00,
+ -1.16032004402742839e+00,
+ -1.03622044471123109e-01,
+ 1.66007664274403694e-03 * DAYS_PER_YEAR,
+ 7.69901118419740425e-03 * DAYS_PER_YEAR,
+ -6.90460016972063023e-05 * DAYS_PER_YEAR,
+ 9.54791938424326609e-04 * SOLAR_MASS
+ );
+}
+
+function Saturn(){
+ return new Body(
+ 8.34336671824457987e+00,
+ 4.12479856412430479e+00,
+ -4.03523417114321381e-01,
+ -2.76742510726862411e-03 * DAYS_PER_YEAR,
+ 4.99852801234917238e-03 * DAYS_PER_YEAR,
+ 2.30417297573763929e-05 * DAYS_PER_YEAR,
+ 2.85885980666130812e-04 * SOLAR_MASS
+ );
+}
+
+function Uranus(){
+ return new Body(
+ 1.28943695621391310e+01,
+ -1.51111514016986312e+01,
+ -2.23307578892655734e-01,
+ 2.96460137564761618e-03 * DAYS_PER_YEAR,
+ 2.37847173959480950e-03 * DAYS_PER_YEAR,
+ -2.96589568540237556e-05 * DAYS_PER_YEAR,
+ 4.36624404335156298e-05 * SOLAR_MASS
+ );
+}
+
+function Neptune(){
+ return new Body(
+ 1.53796971148509165e+01,
+ -2.59193146099879641e+01,
+ 1.79258772950371181e-01,
+ 2.68067772490389322e-03 * DAYS_PER_YEAR,
+ 1.62824170038242295e-03 * DAYS_PER_YEAR,
+ -9.51592254519715870e-05 * DAYS_PER_YEAR,
+ 5.15138902046611451e-05 * SOLAR_MASS
+ );
+}
+
+function Sun(){
+ return new Body(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SOLAR_MASS);
+}
+
+
+function NBodySystem(bodies){
+ this.bodies = bodies;
+ var px = 0.0;
+ var py = 0.0;
+ var pz = 0.0;
+ var size = this.bodies.length;
+ for (var i=0; i<size; i++){
+ var b = this.bodies[i];
+ var m = b.mass;
+ px += b.vx * m;
+ py += b.vy * m;
+ pz += b.vz * m;
+ }
+ this.bodies[0].offsetMomentum(px,py,pz);
+}
+
+NBodySystem.prototype.advance = function(dt){
+ var dx, dy, dz, distance, mag;
+ var size = this.bodies.length;
+
+ for (var i=0; i<size; i++) {
+ var bodyi = this.bodies[i];
+ for (var j=i+1; j<size; j++) {
+ var bodyj = this.bodies[j];
+ dx = bodyi.x - bodyj.x;
+ dy = bodyi.y - bodyj.y;
+ dz = bodyi.z - bodyj.z;
+
+ distance = Math.sqrt(dx*dx + dy*dy + dz*dz);
+ mag = dt / (distance * distance * distance);
+
+ bodyi.vx -= dx * bodyj.mass * mag;
+ bodyi.vy -= dy * bodyj.mass * mag;
+ bodyi.vz -= dz * bodyj.mass * mag;
+
+ bodyj.vx += dx * bodyi.mass * mag;
+ bodyj.vy += dy * bodyi.mass * mag;
+ bodyj.vz += dz * bodyi.mass * mag;
+ }
+ }
+
+ for (var i=0; i<size; i++) {
+ var body = this.bodies[i];
+ body.x += dt * body.vx;
+ body.y += dt * body.vy;
+ body.z += dt * body.vz;
+ }
+}
+
+NBodySystem.prototype.energy = function(){
+ var dx, dy, dz, distance;
+ var e = 0.0;
+ var size = this.bodies.length;
+
+ for (var i=0; i<size; i++) {
+ var bodyi = this.bodies[i];
+
+ e += 0.5 * bodyi.mass *
+ ( bodyi.vx * bodyi.vx
+ + bodyi.vy * bodyi.vy
+ + bodyi.vz * bodyi.vz );
+
+ for (var j=i+1; j<size; j++) {
+ var bodyj = this.bodies[j];
+ dx = bodyi.x - bodyj.x;
+ dy = bodyi.y - bodyj.y;
+ dz = bodyi.z - bodyj.z;
+
+ distance = Math.sqrt(dx*dx + dy*dy + dz*dz);
+ e -= (bodyi.mass * bodyj.mass) / distance;
+ }
+ }
+ return e;
+}
+
+var ret;
+
+for ( var n = 3; n <= 24; n *= 2 ) {
+ (function(){
+ var bodies = new NBodySystem( Array(
+ Sun(),Jupiter(),Saturn(),Uranus(),Neptune()
+ ));
+ var max = n * 100;
+
+ ret = bodies.energy();
+ for (var i=0; i<max; i++){
+ bodies.advance(0.01);
+ }
+ ret = bodies.energy();
+ })();
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/access-nsieve.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/access-nsieve.js
new file mode 100644
index 000000000..70fdf1aaf
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/access-nsieve.js
@@ -0,0 +1,38 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// modified by Isaac Gouy
+
+function pad(number,width){
+ var s = number.toString();
+ var prefixWidth = width - s.length;
+ if (prefixWidth>0){
+ for (var i=1; i<=prefixWidth; i++) s = " " + s;
+ }
+ return s;
+}
+
+function nsieve(m, isPrime){
+ var i, k, count;
+
+ for (i=2; i<=m; i++) { isPrime[i] = true; }
+ count = 0;
+
+ for (i=2; i<=m; i++){
+ if (isPrime[i]) {
+ for (k=i+i; k<=m; k+=i) isPrime[k] = false;
+ count++;
+ }
+ }
+ return count;
+}
+
+function sieve() {
+ for (var i = 1; i <= 3; i++ ) {
+ var m = (1<<i)*10000;
+ var flags = Array(m+1);
+ nsieve(m, flags);
+ }
+}
+
+sieve();
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-3bit-bits-in-byte.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-3bit-bits-in-byte.js
new file mode 100644
index 000000000..1d8540680
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-3bit-bits-in-byte.js
@@ -0,0 +1,32 @@
+// Copyright (c) 2004 by Arthur Langereis (arthur_ext at domain xfinitegames, tld com
+
+// 1 op = 6 ANDs, 3 SHRs, 3 SHLs, 4 assigns, 2 ADDs
+// O(1)
+function fast3bitlookup(b) {
+var c, bi3b = 0xE994; // 0b1110 1001 1001 0100; // 3 2 2 1 2 1 1 0
+c = 3 & (bi3b >> ((b << 1) & 14));
+c += 3 & (bi3b >> ((b >> 2) & 14));
+c += 3 & (bi3b >> ((b >> 5) & 6));
+return c;
+
+/*
+lir4,0xE994; 9 instructions, no memory access, minimal register dependence, 6 shifts, 2 adds, 1 inline assign
+rlwinmr5,r3,1,28,30
+rlwinmr6,r3,30,28,30
+rlwinmr7,r3,27,29,30
+rlwnmr8,r4,r5,30,31
+rlwnmr9,r4,r6,30,31
+rlwnmr10,r4,r7,30,31
+addr3,r8,r9
+addr3,r3,r10
+*/
+}
+
+
+function TimeFunc(func) {
+var x, y, t;
+for(var x=0; x<500; x++)
+for(var y=0; y<256; y++) func(y);
+}
+
+TimeFunc(fast3bitlookup);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-bits-in-byte.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-bits-in-byte.js
new file mode 100644
index 000000000..9a3acd4f7
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-bits-in-byte.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2004 by Arthur Langereis (arthur_ext at domain xfinitegames, tld com)
+
+
+// 1 op = 2 assigns, 16 compare/branches, 8 ANDs, (0-8) ADDs, 8 SHLs
+// O(n)
+function bitsinbyte(b) {
+var m = 1, c = 0;
+while(m<0x100) {
+if(b & m) c++;
+m <<= 1;
+}
+return c;
+}
+
+function TimeFunc(func) {
+var x, y, t;
+for(var x=0; x<350; x++)
+for(var y=0; y<256; y++) func(y);
+}
+
+TimeFunc(bitsinbyte);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-bitwise-and.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-bitwise-and.js
new file mode 100644
index 000000000..7c80e696d
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-bitwise-and.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+bitwiseAndValue = 4294967296;
+for (var i = 0; i < 600000; i++)
+ bitwiseAndValue = bitwiseAndValue & i;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-nsieve-bits.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-nsieve-bits.js
new file mode 100644
index 000000000..6ef0ddb11
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/bitops-nsieve-bits.js
@@ -0,0 +1,32 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org
+//
+// Contributed by Ian Osgood
+
+function pad(n,width) {
+ var s = n.toString();
+ while (s.length < width) s = ' ' + s;
+ return s;
+}
+
+function primes(isPrime, n) {
+ var i, count = 0, m = 10000<<n, size = m+31>>5;
+
+ for (i=0; i<size; i++) isPrime[i] = 0xffffffff;
+
+ for (i=2; i<m; i++)
+ if (isPrime[i>>5] & 1<<(i&31)) {
+ for (var j=i+i; j<m; j+=i)
+ isPrime[j>>5] &= ~(1<<(j&31));
+ count++;
+ }
+}
+
+function sieve() {
+ for (var i = 4; i <= 4; i++) {
+ var isPrime = new Array((10000<<i)+31>>5);
+ primes(isPrime, i);
+ }
+}
+
+sieve();
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/controlflow-recursive.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/controlflow-recursive.js
new file mode 100644
index 000000000..fcfe1c40e
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/controlflow-recursive.js
@@ -0,0 +1,25 @@
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+// contributed by Isaac Gouy
+
+function ack(m,n){
+ if (m==0) { return n+1; }
+ if (n==0) { return ack(m-1,1); }
+ return ack(m-1, ack(m,n-1) );
+}
+
+function fib(n) {
+ if (n < 2){ return 1; }
+ return fib(n-2) + fib(n-1);
+}
+
+function tak(x,y,z) {
+ if (y >= x) return z;
+ return tak(tak(x-1,y,z), tak(y-1,z,x), tak(z-1,x,y));
+}
+
+for ( var i = 3; i <= 5; i++ ) {
+ ack(3,i);
+ fib(17.0+i);
+ tak(3*i+3,2*i+2,i+1);
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-aes.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-aes.js
new file mode 100644
index 000000000..93a596935
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-aes.js
@@ -0,0 +1,422 @@
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * AES Cipher function: encrypt 'input' with Rijndael algorithm
+ *
+ * takes byte-array 'input' (16 bytes)
+ * 2D byte-array key schedule 'w' (Nr+1 x Nb bytes)
+ *
+ * applies Nr rounds (10/12/14) using key schedule w for 'add round key' stage
+ *
+ * returns byte-array encrypted value (16 bytes)
+ */
+function Cipher(input, w) { // main Cipher function [§5.1]
+ var Nb = 4; // block size (in words): no of columns in state (fixed at 4 for AES)
+ var Nr = w.length/Nb - 1; // no of rounds: 10/12/14 for 128/192/256-bit keys
+
+ var state = [[],[],[],[]]; // initialise 4xNb byte-array 'state' with input [§3.4]
+ for (var i=0; i<4*Nb; i++) state[i%4][Math.floor(i/4)] = input[i];
+
+ state = AddRoundKey(state, w, 0, Nb);
+
+ for (var round=1; round<Nr; round++) {
+ state = SubBytes(state, Nb);
+ state = ShiftRows(state, Nb);
+ state = MixColumns(state, Nb);
+ state = AddRoundKey(state, w, round, Nb);
+ }
+
+ state = SubBytes(state, Nb);
+ state = ShiftRows(state, Nb);
+ state = AddRoundKey(state, w, Nr, Nb);
+
+ var output = new Array(4*Nb); // convert state to 1-d array before returning [§3.4]
+ for (var i=0; i<4*Nb; i++) output[i] = state[i%4][Math.floor(i/4)];
+ return output;
+}
+
+
+function SubBytes(s, Nb) { // apply SBox to state S [§5.1.1]
+ for (var r=0; r<4; r++) {
+ for (var c=0; c<Nb; c++) s[r][c] = Sbox[s[r][c]];
+ }
+ return s;
+}
+
+
+function ShiftRows(s, Nb) { // shift row r of state S left by r bytes [§5.1.2]
+ var t = new Array(4);
+ for (var r=1; r<4; r++) {
+ for (var c=0; c<4; c++) t[c] = s[r][(c+r)%Nb]; // shift into temp copy
+ for (var c=0; c<4; c++) s[r][c] = t[c]; // and copy back
+ } // note that this will work for Nb=4,5,6, but not 7,8 (always 4 for AES):
+ return s; // see fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.311.pdf
+}
+
+
+function MixColumns(s, Nb) { // combine bytes of each col of state S [§5.1.3]
+ for (var c=0; c<4; c++) {
+ var a = new Array(4); // 'a' is a copy of the current column from 's'
+ var b = new Array(4); // 'b' is a•{02} in GF(2^8)
+ for (var i=0; i<4; i++) {
+ a[i] = s[i][c];
+ b[i] = s[i][c]&0x80 ? s[i][c]<<1 ^ 0x011b : s[i][c]<<1;
+ }
+ // a[n] ^ b[n] is a•{03} in GF(2^8)
+ s[0][c] = b[0] ^ a[1] ^ b[1] ^ a[2] ^ a[3]; // 2*a0 + 3*a1 + a2 + a3
+ s[1][c] = a[0] ^ b[1] ^ a[2] ^ b[2] ^ a[3]; // a0 * 2*a1 + 3*a2 + a3
+ s[2][c] = a[0] ^ a[1] ^ b[2] ^ a[3] ^ b[3]; // a0 + a1 + 2*a2 + 3*a3
+ s[3][c] = a[0] ^ b[0] ^ a[1] ^ a[2] ^ b[3]; // 3*a0 + a1 + a2 + 2*a3
+ }
+ return s;
+}
+
+
+function AddRoundKey(state, w, rnd, Nb) { // xor Round Key into state S [§5.1.4]
+ for (var r=0; r<4; r++) {
+ for (var c=0; c<Nb; c++) state[r][c] ^= w[rnd*4+c][r];
+ }
+ return state;
+}
+
+
+function KeyExpansion(key) { // generate Key Schedule (byte-array Nr+1 x Nb) from Key [§5.2]
+ var Nb = 4; // block size (in words): no of columns in state (fixed at 4 for AES)
+ var Nk = key.length/4 // key length (in words): 4/6/8 for 128/192/256-bit keys
+ var Nr = Nk + 6; // no of rounds: 10/12/14 for 128/192/256-bit keys
+
+ var w = new Array(Nb*(Nr+1));
+ var temp = new Array(4);
+
+ for (var i=0; i<Nk; i++) {
+ var r = [key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]];
+ w[i] = r;
+ }
+
+ for (var i=Nk; i<(Nb*(Nr+1)); i++) {
+ w[i] = new Array(4);
+ for (var t=0; t<4; t++) temp[t] = w[i-1][t];
+ if (i % Nk == 0) {
+ temp = SubWord(RotWord(temp));
+ for (var t=0; t<4; t++) temp[t] ^= Rcon[i/Nk][t];
+ } else if (Nk > 6 && i%Nk == 4) {
+ temp = SubWord(temp);
+ }
+ for (var t=0; t<4; t++) w[i][t] = w[i-Nk][t] ^ temp[t];
+ }
+
+ return w;
+}
+
+function SubWord(w) { // apply SBox to 4-byte word w
+ for (var i=0; i<4; i++) w[i] = Sbox[w[i]];
+ return w;
+}
+
+function RotWord(w) { // rotate 4-byte word w left by one byte
+ w[4] = w[0];
+ for (var i=0; i<4; i++) w[i] = w[i+1];
+ return w;
+}
+
+
+// Sbox is pre-computed multiplicative inverse in GF(2^8) used in SubBytes and KeyExpansion [§5.1.1]
+var Sbox = [0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,
+ 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,
+ 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,
+ 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,
+ 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,
+ 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,
+ 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,
+ 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,
+ 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,
+ 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,
+ 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,
+ 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,
+ 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,
+ 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,
+ 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,
+ 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16];
+
+// Rcon is Round Constant used for the Key Expansion [1st col is 2^(r-1) in GF(2^8)] [§5.2]
+var Rcon = [ [0x00, 0x00, 0x00, 0x00],
+ [0x01, 0x00, 0x00, 0x00],
+ [0x02, 0x00, 0x00, 0x00],
+ [0x04, 0x00, 0x00, 0x00],
+ [0x08, 0x00, 0x00, 0x00],
+ [0x10, 0x00, 0x00, 0x00],
+ [0x20, 0x00, 0x00, 0x00],
+ [0x40, 0x00, 0x00, 0x00],
+ [0x80, 0x00, 0x00, 0x00],
+ [0x1b, 0x00, 0x00, 0x00],
+ [0x36, 0x00, 0x00, 0x00] ];
+
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * Use AES to encrypt 'plaintext' with 'password' using 'nBits' key, in 'Counter' mode of operation
+ * - see http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
+ * for each block
+ * - outputblock = cipher(counter, key)
+ * - cipherblock = plaintext xor outputblock
+ */
+function AESEncryptCtr(plaintext, password, nBits) {
+ if (!(nBits==128 || nBits==192 || nBits==256)) return ''; // standard allows 128/192/256 bit keys
+
+ // for this example script, generate the key by applying Cipher to 1st 16/24/32 chars of password;
+ // for real-world applications, a more secure approach would be to hash the password e.g. with SHA-1
+ var nBytes = nBits/8; // no bytes in key
+ var pwBytes = new Array(nBytes);
+ for (var i=0; i<nBytes; i++) pwBytes[i] = password.charCodeAt(i) & 0xff;
+ var key = Cipher(pwBytes, KeyExpansion(pwBytes));
+ key = key.concat(key.slice(0, nBytes-16)); // key is now 16/24/32 bytes long
+
+ // initialise counter block (NIST SP800-38A §B.2): millisecond time-stamp for nonce in 1st 8 bytes,
+ // block counter in 2nd 8 bytes
+ var blockSize = 16; // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var counterBlock = new Array(blockSize); // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var nonce = (new Date()).getTime(); // milliseconds since 1-Jan-1970
+
+ // encode nonce in two stages to cater for JavaScript 32-bit limit on bitwise ops
+ for (var i=0; i<4; i++) counterBlock[i] = (nonce >>> i*8) & 0xff;
+ for (var i=0; i<4; i++) counterBlock[i+4] = (nonce/0x100000000 >>> i*8) & 0xff;
+
+ // generate key schedule - an expansion of the key into distinct Key Rounds for each round
+ var keySchedule = KeyExpansion(key);
+
+ var blockCount = Math.ceil(plaintext.length/blockSize);
+ var ciphertext = new Array(blockCount); // ciphertext as array of strings
+
+ for (var b=0; b<blockCount; b++) {
+ // set counter (block #) in last 8 bytes of counter block (leaving nonce in 1st 8 bytes)
+ // again done in two stages for 32-bit ops
+ for (var c=0; c<4; c++) counterBlock[15-c] = (b >>> c*8) & 0xff;
+ for (var c=0; c<4; c++) counterBlock[15-c-4] = (b/0x100000000 >>> c*8)
+
+ var cipherCntr = Cipher(counterBlock, keySchedule); // -- encrypt counter block --
+
+ // calculate length of final block:
+ var blockLength = b<blockCount-1 ? blockSize : (plaintext.length-1)%blockSize+1;
+
+ var ct = '';
+ for (var i=0; i<blockLength; i++) { // -- xor plaintext with ciphered counter byte-by-byte --
+ var plaintextByte = plaintext.charCodeAt(b*blockSize+i);
+ var cipherByte = plaintextByte ^ cipherCntr[i];
+ ct += String.fromCharCode(cipherByte);
+ }
+ // ct is now ciphertext for this block
+
+ ciphertext[b] = escCtrlChars(ct); // escape troublesome characters in ciphertext
+ }
+
+ // convert the nonce to a string to go on the front of the ciphertext
+ var ctrTxt = '';
+ for (var i=0; i<8; i++) ctrTxt += String.fromCharCode(counterBlock[i]);
+ ctrTxt = escCtrlChars(ctrTxt);
+
+ // use '-' to separate blocks, use Array.join to concatenate arrays of strings for efficiency
+ return ctrTxt + '-' + ciphertext.join('-');
+}
+
+
+/*
+ * Use AES to decrypt 'ciphertext' with 'password' using 'nBits' key, in Counter mode of operation
+ *
+ * for each block
+ * - outputblock = cipher(counter, key)
+ * - cipherblock = plaintext xor outputblock
+ */
+function AESDecryptCtr(ciphertext, password, nBits) {
+ if (!(nBits==128 || nBits==192 || nBits==256)) return ''; // standard allows 128/192/256 bit keys
+
+ var nBytes = nBits/8; // no bytes in key
+ var pwBytes = new Array(nBytes);
+ for (var i=0; i<nBytes; i++) pwBytes[i] = password.charCodeAt(i) & 0xff;
+ var pwKeySchedule = KeyExpansion(pwBytes);
+ var key = Cipher(pwBytes, pwKeySchedule);
+ key = key.concat(key.slice(0, nBytes-16)); // key is now 16/24/32 bytes long
+
+ var keySchedule = KeyExpansion(key);
+
+ ciphertext = ciphertext.split('-'); // split ciphertext into array of block-length strings
+
+ // recover nonce from 1st element of ciphertext
+ var blockSize = 16; // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var counterBlock = new Array(blockSize);
+ var ctrTxt = unescCtrlChars(ciphertext[0]);
+ for (var i=0; i<8; i++) counterBlock[i] = ctrTxt.charCodeAt(i);
+
+ var plaintext = new Array(ciphertext.length-1);
+
+ for (var b=1; b<ciphertext.length; b++) {
+ // set counter (block #) in last 8 bytes of counter block (leaving nonce in 1st 8 bytes)
+ for (var c=0; c<4; c++) counterBlock[15-c] = ((b-1) >>> c*8) & 0xff;
+ for (var c=0; c<4; c++) counterBlock[15-c-4] = ((b/0x100000000-1) >>> c*8) & 0xff;
+
+ var cipherCntr = Cipher(counterBlock, keySchedule); // encrypt counter block
+
+ ciphertext[b] = unescCtrlChars(ciphertext[b]);
+
+ var pt = '';
+ for (var i=0; i<ciphertext[b].length; i++) {
+ // -- xor plaintext with ciphered counter byte-by-byte --
+ var ciphertextByte = ciphertext[b].charCodeAt(i);
+ var plaintextByte = ciphertextByte ^ cipherCntr[i];
+ pt += String.fromCharCode(plaintextByte);
+ }
+ // pt is now plaintext for this block
+
+ plaintext[b-1] = pt; // b-1 'cos no initial nonce block in plaintext
+ }
+
+ return plaintext.join('');
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+function escCtrlChars(str) { // escape control chars which might cause problems handling ciphertext
+ return str.replace(/[\0\t\n\v\f\r\xa0'"!-]/g, function(c) { return '!' + c.charCodeAt(0) + '!'; });
+} // \xa0 to cater for bug in Firefox; include '-' to leave it free for use as a block marker
+
+function unescCtrlChars(str) { // unescape potentially problematic control characters
+ return str.replace(/!\d\d?\d?!/g, function(c) { return String.fromCharCode(c.slice(1,-1)); });
+}
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * if escCtrlChars()/unescCtrlChars() still gives problems, use encodeBase64()/decodeBase64() instead
+ */
+var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+
+function encodeBase64(str) { // http://tools.ietf.org/html/rfc4648
+ var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
+
+ str = encodeUTF8(str); // encode multi-byte chars into UTF-8 for byte-array
+
+ do { // pack three octets into four hexets
+ o1 = str.charCodeAt(i++);
+ o2 = str.charCodeAt(i++);
+ o3 = str.charCodeAt(i++);
+
+ bits = o1<<16 | o2<<8 | o3;
+
+ h1 = bits>>18 & 0x3f;
+ h2 = bits>>12 & 0x3f;
+ h3 = bits>>6 & 0x3f;
+ h4 = bits & 0x3f;
+
+ // end of string? index to '=' in b64
+ if (isNaN(o3)) h4 = 64;
+ if (isNaN(o2)) h3 = 64;
+
+ // use hexets to index into b64, and append result to encoded string
+ enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
+ } while (i < str.length);
+
+ return enc;
+}
+
+function decodeBase64(str) {
+ var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
+
+ do { // unpack four hexets into three octets using index points in b64
+ h1 = b64.indexOf(str.charAt(i++));
+ h2 = b64.indexOf(str.charAt(i++));
+ h3 = b64.indexOf(str.charAt(i++));
+ h4 = b64.indexOf(str.charAt(i++));
+
+ bits = h1<<18 | h2<<12 | h3<<6 | h4;
+
+ o1 = bits>>16 & 0xff;
+ o2 = bits>>8 & 0xff;
+ o3 = bits & 0xff;
+
+ if (h3 == 64) enc += String.fromCharCode(o1);
+ else if (h4 == 64) enc += String.fromCharCode(o1, o2);
+ else enc += String.fromCharCode(o1, o2, o3);
+ } while (i < str.length);
+
+ return decodeUTF8(enc); // decode UTF-8 byte-array back to Unicode
+}
+
+function encodeUTF8(str) { // encode multi-byte string into utf-8 multiple single-byte characters
+ str = str.replace(
+ /[\u0080-\u07ff]/g, // U+0080 - U+07FF = 2-byte chars
+ function(c) {
+ var cc = c.charCodeAt(0);
+ return String.fromCharCode(0xc0 | cc>>6, 0x80 | cc&0x3f); }
+ );
+ str = str.replace(
+ /[\u0800-\uffff]/g, // U+0800 - U+FFFF = 3-byte chars
+ function(c) {
+ var cc = c.charCodeAt(0);
+ return String.fromCharCode(0xe0 | cc>>12, 0x80 | cc>>6&0x3F, 0x80 | cc&0x3f); }
+ );
+ return str;
+}
+
+function decodeUTF8(str) { // decode utf-8 encoded string back into multi-byte characters
+ str = str.replace(
+ /[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars
+ function(c) {
+ var cc = (c.charCodeAt(0)&0x1f)<<6 | c.charCodeAt(1)&0x3f;
+ return String.fromCharCode(cc); }
+ );
+ str = str.replace(
+ /[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars
+ function(c) {
+ var cc = (c.charCodeAt(0)&0x0f)<<12 | (c.charCodeAt(1)&0x3f<<6) | c.charCodeAt(2)&0x3f;
+ return String.fromCharCode(cc); }
+ );
+ return str;
+}
+
+
+function byteArrayToHexStr(b) { // convert byte array to hex string for displaying test vectors
+ var s = '';
+ for (var i=0; i<b.length; i++) s += b[i].toString(16) + ' ';
+ return s;
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+
+var plainText = "ROMEO: But, soft! what light through yonder window breaks?\n\
+It is the east, and Juliet is the sun.\n\
+Arise, fair sun, and kill the envious moon,\n\
+Who is already sick and pale with grief,\n\
+That thou her maid art far more fair than she:\n\
+Be not her maid, since she is envious;\n\
+Her vestal livery is but sick and green\n\
+And none but fools do wear it; cast it off.\n\
+It is my lady, O, it is my love!\n\
+O, that she knew she were!\n\
+She speaks yet she says nothing: what of that?\n\
+Her eye discourses; I will answer it.\n\
+I am too bold, 'tis not to me she speaks:\n\
+Two of the fairest stars in all the heaven,\n\
+Having some business, do entreat her eyes\n\
+To twinkle in their spheres till they return.\n\
+What if her eyes were there, they in her head?\n\
+The brightness of her cheek would shame those stars,\n\
+As daylight doth a lamp; her eyes in heaven\n\
+Would through the airy region stream so bright\n\
+That birds would sing and think it were not night.\n\
+See, how she leans her cheek upon her hand!\n\
+O, that I were a glove upon that hand,\n\
+That I might touch that cheek!\n\
+JULIET: Ay me!\n\
+ROMEO: She speaks:\n\
+O, speak again, bright angel! for thou art\n\
+As glorious to this night, being o'er my head\n\
+As is a winged messenger of heaven\n\
+Unto the white-upturned wondering eyes\n\
+Of mortals that fall back to gaze on him\n\
+When he bestrides the lazy-pacing clouds\n\
+And sails upon the bosom of the air.";
+
+var password = "O Romeo, Romeo! wherefore art thou Romeo?";
+
+var cipherText = AESEncryptCtr(plainText, password, 256);
+var decryptedText = AESDecryptCtr(cipherText, password, 256);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-md5.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-md5.js
new file mode 100644
index 000000000..cc7a89653
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-md5.js
@@ -0,0 +1,286 @@
+/*
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+ * Digest Algorithm, as defined in RFC 1321.
+ * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for more info.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
+function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
+function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
+function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
+function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
+function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function md5_vm_test()
+{
+ return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
+}
+
+/*
+ * Calculate the MD5 of an array of little-endian words, and a bit length
+ */
+function core_md5(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << ((len) % 32);
+ x[(((len + 64) >>> 9) << 4) + 14] = len;
+
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+
+ a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
+ d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
+ c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
+ b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
+ a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
+ d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
+ c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
+ b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
+ a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
+ d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
+ c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
+ b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
+ a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
+ d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
+ c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
+ b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
+
+ a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
+ d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
+ c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
+ b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
+ a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
+ d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
+ c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
+ b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
+ a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
+ d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
+ c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
+ b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
+ a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
+ d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
+ c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
+ b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
+
+ a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
+ d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
+ c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
+ b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
+ a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
+ d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
+ c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
+ b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
+ a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
+ d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
+ c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
+ b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
+ a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
+ d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
+ c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
+ b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
+
+ a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
+ d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
+ c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
+ b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
+ a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
+ d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
+ c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
+ b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
+ a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
+ d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
+ c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
+ b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
+ a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
+ d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
+ c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
+ b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ }
+ return Array(a, b, c, d);
+
+}
+
+/*
+ * These functions implement the four basic operations the algorithm uses.
+ */
+function md5_cmn(q, a, b, x, s, t)
+{
+ return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
+}
+function md5_ff(a, b, c, d, x, s, t)
+{
+ return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
+}
+function md5_gg(a, b, c, d, x, s, t)
+{
+ return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
+}
+function md5_hh(a, b, c, d, x, s, t)
+{
+ return md5_cmn(b ^ c ^ d, a, b, x, s, t);
+}
+function md5_ii(a, b, c, d, x, s, t)
+{
+ return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
+}
+
+/*
+ * Calculate the HMAC-MD5, of a key and some data
+ */
+function core_hmac_md5(key, data)
+{
+ var bkey = str2binl(key);
+ if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
+ return core_md5(opad.concat(hash), 512 + 128);
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function bit_rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+ * Convert a string to an array of little-endian words
+ * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
+ */
+function str2binl(str)
+{
+ var bin = Array();
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < str.length * chrsz; i += chrsz)
+ bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
+ return bin;
+}
+
+/*
+ * Convert an array of little-endian words to a string
+ */
+function binl2str(bin)
+{
+ var str = "";
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < bin.length * 32; i += chrsz)
+ str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
+ return str;
+}
+
+/*
+ * Convert an array of little-endian words to a hex string.
+ */
+function binl2hex(binarray)
+{
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i++)
+ {
+ str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
+ hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
+ }
+ return str;
+}
+
+/*
+ * Convert an array of little-endian words to a base-64 string
+ */
+function binl2b64(binarray)
+{
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i += 3)
+ {
+ var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
+ | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
+ | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+ else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+ }
+ }
+ return str;
+}
+
+var plainText = "Rebellious subjects, enemies to peace,\n\
+Profaners of this neighbour-stained steel,--\n\
+Will they not hear? What, ho! you men, you beasts,\n\
+That quench the fire of your pernicious rage\n\
+With purple fountains issuing from your veins,\n\
+On pain of torture, from those bloody hands\n\
+Throw your mistemper'd weapons to the ground,\n\
+And hear the sentence of your moved prince.\n\
+Three civil brawls, bred of an airy word,\n\
+By thee, old Capulet, and Montague,\n\
+Have thrice disturb'd the quiet of our streets,\n\
+And made Verona's ancient citizens\n\
+Cast by their grave beseeming ornaments,\n\
+To wield old partisans, in hands as old,\n\
+Canker'd with peace, to part your canker'd hate:\n\
+If ever you disturb our streets again,\n\
+Your lives shall pay the forfeit of the peace.\n\
+For this time, all the rest depart away:\n\
+You Capulet; shall go along with me:\n\
+And, Montague, come you this afternoon,\n\
+To know our further pleasure in this case,\n\
+To old Free-town, our common judgment-place.\n\
+Once more, on pain of death, all men depart."
+
+for (var i = 0; i <4; i++) {
+ plainText += plainText;
+}
+
+var md5Output = hex_md5(plainText);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-sha1.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-sha1.js
new file mode 100644
index 000000000..ca8d901a1
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/crypto-sha1.js
@@ -0,0 +1,224 @@
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
+ * in FIPS PUB 180-1
+ * Version 2.1a Copyright Paul Johnston 2000 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length * chrsz));}
+function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length * chrsz));}
+function str_sha1(s){return binb2str(core_sha1(str2binb(s),s.length * chrsz));}
+function hex_hmac_sha1(key, data){ return binb2hex(core_hmac_sha1(key, data));}
+function b64_hmac_sha1(key, data){ return binb2b64(core_hmac_sha1(key, data));}
+function str_hmac_sha1(key, data){ return binb2str(core_hmac_sha1(key, data));}
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function sha1_vm_test()
+{
+ return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d";
+}
+
+/*
+ * Calculate the SHA-1 of an array of big-endian words, and a bit length
+ */
+function core_sha1(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << (24 - len % 32);
+ x[((len + 64 >> 9) << 4) + 15] = len;
+
+ var w = Array(80);
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+ var e = -1009589776;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+ var olde = e;
+
+ for(var j = 0; j < 80; j++)
+ {
+ if(j < 16) w[j] = x[i + j];
+ else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
+ var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)),
+ safe_add(safe_add(e, w[j]), sha1_kt(j)));
+ e = d;
+ d = c;
+ c = rol(b, 30);
+ b = a;
+ a = t;
+ }
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ e = safe_add(e, olde);
+ }
+ return Array(a, b, c, d, e);
+
+}
+
+/*
+ * Perform the appropriate triplet combination function for the current
+ * iteration
+ */
+function sha1_ft(t, b, c, d)
+{
+ if(t < 20) return (b & c) | ((~b) & d);
+ if(t < 40) return b ^ c ^ d;
+ if(t < 60) return (b & c) | (b & d) | (c & d);
+ return b ^ c ^ d;
+}
+
+/*
+ * Determine the appropriate additive constant for the current iteration
+ */
+function sha1_kt(t)
+{
+ return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
+ (t < 60) ? -1894007588 : -899497514;
+}
+
+/*
+ * Calculate the HMAC-SHA1 of a key and some data
+ */
+function core_hmac_sha1(key, data)
+{
+ var bkey = str2binb(key);
+ if(bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz);
+ return core_sha1(opad.concat(hash), 512 + 160);
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+ * Convert an 8-bit or 16-bit string to an array of big-endian words
+ * In 8-bit function, characters >255 have their hi-byte silently ignored.
+ */
+function str2binb(str)
+{
+ var bin = Array();
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < str.length * chrsz; i += chrsz)
+ bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i%32);
+ return bin;
+}
+
+/*
+ * Convert an array of big-endian words to a string
+ */
+function binb2str(bin)
+{
+ var str = "";
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < bin.length * 32; i += chrsz)
+ str += String.fromCharCode((bin[i>>5] >>> (32 - chrsz - i%32)) & mask);
+ return str;
+}
+
+/*
+ * Convert an array of big-endian words to a hex string.
+ */
+function binb2hex(binarray)
+{
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i++)
+ {
+ str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
+ hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF);
+ }
+ return str;
+}
+
+/*
+ * Convert an array of big-endian words to a base-64 string
+ */
+function binb2b64(binarray)
+{
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i += 3)
+ {
+ var triplet = (((binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16)
+ | (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 )
+ | ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+ else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+ }
+ }
+ return str;
+}
+
+
+var plainText = "Two households, both alike in dignity,\n\
+In fair Verona, where we lay our scene,\n\
+From ancient grudge break to new mutiny,\n\
+Where civil blood makes civil hands unclean.\n\
+From forth the fatal loins of these two foes\n\
+A pair of star-cross'd lovers take their life;\n\
+Whole misadventured piteous overthrows\n\
+Do with their death bury their parents' strife.\n\
+The fearful passage of their death-mark'd love,\n\
+And the continuance of their parents' rage,\n\
+Which, but their children's end, nought could remove,\n\
+Is now the two hours' traffic of our stage;\n\
+The which if you with patient ears attend,\n\
+What here shall miss, our toil shall strive to mend.";
+
+for (var i = 0; i <4; i++) {
+ plainText += plainText;
+}
+
+var sha1Output = hex_sha1(plainText);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/date-format-tofte.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/date-format-tofte.js
new file mode 100644
index 000000000..66e2cef87
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/date-format-tofte.js
@@ -0,0 +1,299 @@
+function arrayExists(array, x) {
+ for (var i = 0; i < array.length; i++) {
+ if (array[i] == x) return true;
+ }
+ return false;
+}
+
+Date.prototype.formatDate = function (input,time) {
+ // formatDate :
+ // a PHP date like function, for formatting date strings
+ // See: http://www.php.net/date
+ //
+ // input : format string
+ // time : epoch time (seconds, and optional)
+ //
+ // if time is not passed, formatting is based on
+ // the current "this" date object's set time.
+ //
+ // supported:
+ // a, A, B, d, D, F, g, G, h, H, i, j, l (lowercase L), L,
+ // m, M, n, O, r, s, S, t, U, w, W, y, Y, z
+ //
+ // unsupported:
+ // I (capital i), T, Z
+
+ var switches = ["a", "A", "B", "d", "D", "F", "g", "G", "h", "H",
+ "i", "j", "l", "L", "m", "M", "n", "O", "r", "s",
+ "S", "t", "U", "w", "W", "y", "Y", "z"];
+ var daysLong = ["Sunday", "Monday", "Tuesday", "Wednesday",
+ "Thursday", "Friday", "Saturday"];
+ var daysShort = ["Sun", "Mon", "Tue", "Wed",
+ "Thu", "Fri", "Sat"];
+ var monthsShort = ["Jan", "Feb", "Mar", "Apr",
+ "May", "Jun", "Jul", "Aug", "Sep",
+ "Oct", "Nov", "Dec"];
+ var monthsLong = ["January", "February", "March", "April",
+ "May", "June", "July", "August", "September",
+ "October", "November", "December"];
+ var daysSuffix = ["st", "nd", "rd", "th", "th", "th", "th", // 1st - 7th
+ "th", "th", "th", "th", "th", "th", "th", // 8th - 14th
+ "th", "th", "th", "th", "th", "th", "st", // 15th - 21st
+ "nd", "rd", "th", "th", "th", "th", "th", // 22nd - 28th
+ "th", "th", "st"]; // 29th - 31st
+
+ function a() {
+ // Lowercase Ante meridiem and Post meridiem
+ return self.getHours() > 11? "pm" : "am";
+ }
+ function A() {
+ // Uppercase Ante meridiem and Post meridiem
+ return self.getHours() > 11? "PM" : "AM";
+ }
+
+ function B(){
+ // Swatch internet time. code simply grabbed from ppk,
+ // since I was feeling lazy:
+ // http://www.xs4all.nl/~ppk/js/beat.html
+ var off = (self.getTimezoneOffset() + 60)*60;
+ var theSeconds = (self.getHours() * 3600) +
+ (self.getMinutes() * 60) +
+ self.getSeconds() + off;
+ var beat = Math.floor(theSeconds/86.4);
+ if (beat > 1000) beat -= 1000;
+ if (beat < 0) beat += 1000;
+ if ((""+beat).length == 1) beat = "00"+beat;
+ if ((""+beat).length == 2) beat = "0"+beat;
+ return beat;
+ }
+
+ function d() {
+ // Day of the month, 2 digits with leading zeros
+ return new String(self.getDate()).length == 1?
+ "0"+self.getDate() : self.getDate();
+ }
+ function D() {
+ // A textual representation of a day, three letters
+ return daysShort[self.getDay()];
+ }
+ function F() {
+ // A full textual representation of a month
+ return monthsLong[self.getMonth()];
+ }
+ function g() {
+ // 12-hour format of an hour without leading zeros
+ return self.getHours() > 12? self.getHours()-12 : self.getHours();
+ }
+ function G() {
+ // 24-hour format of an hour without leading zeros
+ return self.getHours();
+ }
+ function h() {
+ // 12-hour format of an hour with leading zeros
+ if (self.getHours() > 12) {
+ var s = new String(self.getHours()-12);
+ return s.length == 1?
+ "0"+ (self.getHours()-12) : self.getHours()-12;
+ } else {
+ var s = new String(self.getHours());
+ return s.length == 1?
+ "0"+self.getHours() : self.getHours();
+ }
+ }
+ function H() {
+ // 24-hour format of an hour with leading zeros
+ return new String(self.getHours()).length == 1?
+ "0"+self.getHours() : self.getHours();
+ }
+ function i() {
+ // Minutes with leading zeros
+ return new String(self.getMinutes()).length == 1?
+ "0"+self.getMinutes() : self.getMinutes();
+ }
+ function j() {
+ // Day of the month without leading zeros
+ return self.getDate();
+ }
+ function l() {
+ // A full textual representation of the day of the week
+ return daysLong[self.getDay()];
+ }
+ function L() {
+ // leap year or not. 1 if leap year, 0 if not.
+ // the logic should match iso's 8601 standard.
+ var y_ = Y();
+ if (
+ (y_ % 4 == 0 && y_ % 100 != 0) ||
+ (y_ % 4 == 0 && y_ % 100 == 0 && y_ % 400 == 0)
+ ) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ function m() {
+ // Numeric representation of a month, with leading zeros
+ return self.getMonth() < 9?
+ "0"+(self.getMonth()+1) :
+ self.getMonth()+1;
+ }
+ function M() {
+ // A short textual representation of a month, three letters
+ return monthsShort[self.getMonth()];
+ }
+ function n() {
+ // Numeric representation of a month, without leading zeros
+ return self.getMonth()+1;
+ }
+ function O() {
+ // Difference to Greenwich time (GMT) in hours
+ var os = Math.abs(self.getTimezoneOffset());
+ var h = ""+Math.floor(os/60);
+ var m = ""+(os%60);
+ h.length == 1? h = "0"+h:1;
+ m.length == 1? m = "0"+m:1;
+ return self.getTimezoneOffset() < 0 ? "+"+h+m : "-"+h+m;
+ }
+ function r() {
+ // RFC 822 formatted date
+ var r; // result
+ // Thu , 21 Dec 2000
+ r = D() + ", " + j() + " " + M() + " " + Y() +
+ // 16 : 01 : 07 +0200
+ " " + H() + ":" + i() + ":" + s() + " " + O();
+ return r;
+ }
+ function S() {
+ // English ordinal suffix for the day of the month, 2 characters
+ return daysSuffix[self.getDate()-1];
+ }
+ function s() {
+ // Seconds, with leading zeros
+ return new String(self.getSeconds()).length == 1?
+ "0"+self.getSeconds() : self.getSeconds();
+ }
+ function t() {
+
+ // thanks to Matt Bannon for some much needed code-fixes here!
+ var daysinmonths = [null,31,28,31,30,31,30,31,31,30,31,30,31];
+ if (L()==1 && n()==2) return 29; // leap day
+ return daysinmonths[n()];
+ }
+ function U() {
+ // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
+ return Math.round(self.getTime()/1000);
+ }
+ function W() {
+ // Weeknumber, as per ISO specification:
+ // http://www.cl.cam.ac.uk/~mgk25/iso-time.html
+
+ // if the day is three days before newyears eve,
+ // there's a chance it's "week 1" of next year.
+ // here we check for that.
+ var beforeNY = 364+L() - z();
+ var afterNY = z();
+ var weekday = w()!=0?w()-1:6; // makes sunday (0), into 6.
+ if (beforeNY <= 2 && weekday <= 2-beforeNY) {
+ return 1;
+ }
+ // similarly, if the day is within threedays of newyears
+ // there's a chance it belongs in the old year.
+ var ny = new Date("January 1 " + Y() + " 00:00:00");
+ var nyDay = ny.getDay()!=0?ny.getDay()-1:6;
+ if (
+ (afterNY <= 2) &&
+ (nyDay >=4) &&
+ (afterNY >= (6-nyDay))
+ ) {
+ // Since I'm not sure we can just always return 53,
+ // i call the function here again, using the last day
+ // of the previous year, as the date, and then just
+ // return that week.
+ var prevNY = new Date("December 31 " + (Y()-1) + " 00:00:00");
+ return prevNY.formatDate("W");
+ }
+
+ // week 1, is the week that has the first thursday in it.
+ // note that this value is not zero index.
+ if (nyDay <= 3) {
+ // first day of the year fell on a thursday, or earlier.
+ return 1 + Math.floor( ( z() + nyDay ) / 7 );
+ } else {
+ // first day of the year fell on a friday, or later.
+ return 1 + Math.floor( ( z() - ( 7 - nyDay ) ) / 7 );
+ }
+ }
+ function w() {
+ // Numeric representation of the day of the week
+ return self.getDay();
+ }
+
+ function Y() {
+ // A full numeric representation of a year, 4 digits
+
+ // we first check, if getFullYear is supported. if it
+ // is, we just use that. ppks code is nice, but wont
+ // work with dates outside 1900-2038, or something like that
+ if (self.getFullYear) {
+ var newDate = new Date("January 1 2001 00:00:00 +0000");
+ var x = newDate .getFullYear();
+ if (x == 2001) {
+ // i trust the method now
+ return self.getFullYear();
+ }
+ }
+ // else, do this:
+ // codes thanks to ppk:
+ // http://www.xs4all.nl/~ppk/js/introdate.html
+ var x = self.getYear();
+ var y = x % 100;
+ y += (y < 38) ? 2000 : 1900;
+ return y;
+ }
+ function y() {
+ // A two-digit representation of a year
+ var y = Y()+"";
+ return y.substring(y.length-2,y.length);
+ }
+ function z() {
+ // The day of the year, zero indexed! 0 through 366
+ var t = new Date("January 1 " + Y() + " 00:00:00");
+ var diff = self.getTime() - t.getTime();
+ return Math.floor(diff/1000/60/60/24);
+ }
+
+ var self = this;
+ if (time) {
+ // save time
+ var prevTime = self.getTime();
+ self.setTime(time);
+ }
+
+ var ia = input.split("");
+ var ij = 0;
+ while (ia[ij]) {
+ if (ia[ij] == "\\") {
+ // this is our way of allowing users to escape stuff
+ ia.splice(ij,1);
+ } else {
+ if (arrayExists(switches,ia[ij])) {
+ ia[ij] = eval(ia[ij] + "()");
+ }
+ }
+ ij++;
+ }
+ // reset time, back to what it was
+ if (prevTime) {
+ self.setTime(prevTime);
+ }
+ return ia.join("");
+}
+
+var date = new Date("1/1/2007 1:11:11");
+
+for (i = 0; i < 500; ++i) {
+ var shortFormat = date.formatDate("Y-m-d");
+ var longFormat = date.formatDate("l, F d, Y g:i:s A");
+ date.setTime(date.getTime() + 84266956);
+}
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/date-format-xparb.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/date-format-xparb.js
new file mode 100644
index 000000000..1f0955649
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/date-format-xparb.js
@@ -0,0 +1,417 @@
+/*
+ * Copyright (C) 2004 Baron Schwartz <baron at sequent dot org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation, version 2.1.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ */
+
+Date.parseFunctions = {count:0};
+Date.parseRegexes = [];
+Date.formatFunctions = {count:0};
+
+Date.prototype.dateFormat = function(format) {
+ if (Date.formatFunctions[format] == null) {
+ Date.createNewFormat(format);
+ }
+ var func = Date.formatFunctions[format];
+ return this[func]();
+}
+
+Date.createNewFormat = function(format) {
+ var funcName = "format" + Date.formatFunctions.count++;
+ Date.formatFunctions[format] = funcName;
+ var code = "Date.prototype." + funcName + " = function(){return ";
+ var special = false;
+ var ch = '';
+ for (var i = 0; i < format.length; ++i) {
+ ch = format.charAt(i);
+ if (!special && ch == "\\") {
+ special = true;
+ }
+ else if (special) {
+ special = false;
+ code += "'" + String.escape(ch) + "' + ";
+ }
+ else {
+ code += Date.getFormatCode(ch);
+ }
+ }
+ eval(code.substring(0, code.length - 3) + ";}");
+}
+
+Date.getFormatCode = function(character) {
+ switch (character) {
+ case "d":
+ return "String.leftPad(this.getDate(), 2, '0') + ";
+ case "D":
+ return "Date.dayNames[this.getDay()].substring(0, 3) + ";
+ case "j":
+ return "this.getDate() + ";
+ case "l":
+ return "Date.dayNames[this.getDay()] + ";
+ case "S":
+ return "this.getSuffix() + ";
+ case "w":
+ return "this.getDay() + ";
+ case "z":
+ return "this.getDayOfYear() + ";
+ case "W":
+ return "this.getWeekOfYear() + ";
+ case "F":
+ return "Date.monthNames[this.getMonth()] + ";
+ case "m":
+ return "String.leftPad(this.getMonth() + 1, 2, '0') + ";
+ case "M":
+ return "Date.monthNames[this.getMonth()].substring(0, 3) + ";
+ case "n":
+ return "(this.getMonth() + 1) + ";
+ case "t":
+ return "this.getDaysInMonth() + ";
+ case "L":
+ return "(this.isLeapYear() ? 1 : 0) + ";
+ case "Y":
+ return "this.getFullYear() + ";
+ case "y":
+ return "('' + this.getFullYear()).substring(2, 4) + ";
+ case "a":
+ return "(this.getHours() < 12 ? 'am' : 'pm') + ";
+ case "A":
+ return "(this.getHours() < 12 ? 'AM' : 'PM') + ";
+ case "g":
+ return "((this.getHours() %12) ? this.getHours() % 12 : 12) + ";
+ case "G":
+ return "this.getHours() + ";
+ case "h":
+ return "String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";
+ case "H":
+ return "String.leftPad(this.getHours(), 2, '0') + ";
+ case "i":
+ return "String.leftPad(this.getMinutes(), 2, '0') + ";
+ case "s":
+ return "String.leftPad(this.getSeconds(), 2, '0') + ";
+ case "O":
+ return "this.getGMTOffset() + ";
+ case "T":
+ return "this.getTimezone() + ";
+ case "Z":
+ return "(this.getTimezoneOffset() * -60) + ";
+ default:
+ return "'" + String.escape(character) + "' + ";
+ }
+}
+
+Date.parseDate = function(input, format) {
+ if (Date.parseFunctions[format] == null) {
+ Date.createParser(format);
+ }
+ var func = Date.parseFunctions[format];
+ return Date[func](input);
+}
+
+Date.createParser = function(format) {
+ var funcName = "parse" + Date.parseFunctions.count++;
+ var regexNum = Date.parseRegexes.length;
+ var currentGroup = 1;
+ Date.parseFunctions[format] = funcName;
+
+ var code = "Date." + funcName + " = function(input){\n"
+ + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1;\n"
+ + "var d = new Date();\n"
+ + "y = d.getFullYear();\n"
+ + "m = d.getMonth();\n"
+ + "d = d.getDate();\n"
+ + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n"
+ + "if (results && results.length > 0) {"
+ var regex = "";
+
+ var special = false;
+ var ch = '';
+ for (var i = 0; i < format.length; ++i) {
+ ch = format.charAt(i);
+ if (!special && ch == "\\") {
+ special = true;
+ }
+ else if (special) {
+ special = false;
+ regex += String.escape(ch);
+ }
+ else {
+ obj = Date.formatCodeToRegex(ch, currentGroup);
+ currentGroup += obj.g;
+ regex += obj.s;
+ if (obj.g && obj.c) {
+ code += obj.c;
+ }
+ }
+ }
+
+ code += "if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"
+ + "{return new Date(y, m, d, h, i, s);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"
+ + "{return new Date(y, m, d, h, i);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n"
+ + "{return new Date(y, m, d, h);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0)\n"
+ + "{return new Date(y, m, d);}\n"
+ + "else if (y > 0 && m >= 0)\n"
+ + "{return new Date(y, m);}\n"
+ + "else if (y > 0)\n"
+ + "{return new Date(y);}\n"
+ + "}return null;}";
+
+ Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$");
+ eval(code);
+}
+
+Date.formatCodeToRegex = function(character, currentGroup) {
+ switch (character) {
+ case "D":
+ return {g:0,
+ c:null,
+ s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};
+ case "j":
+ case "d":
+ return {g:1,
+ c:"d = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{1,2})"};
+ case "l":
+ return {g:0,
+ c:null,
+ s:"(?:" + Date.dayNames.join("|") + ")"};
+ case "S":
+ return {g:0,
+ c:null,
+ s:"(?:st|nd|rd|th)"};
+ case "w":
+ return {g:0,
+ c:null,
+ s:"\\d"};
+ case "z":
+ return {g:0,
+ c:null,
+ s:"(?:\\d{1,3})"};
+ case "W":
+ return {g:0,
+ c:null,
+ s:"(?:\\d{2})"};
+ case "F":
+ return {g:1,
+ c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "].substring(0, 3)], 10);\n",
+ s:"(" + Date.monthNames.join("|") + ")"};
+ case "M":
+ return {g:1,
+ c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "]], 10);\n",
+ s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};
+ case "n":
+ case "m":
+ return {g:1,
+ c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n",
+ s:"(\\d{1,2})"};
+ case "t":
+ return {g:0,
+ c:null,
+ s:"\\d{1,2}"};
+ case "L":
+ return {g:0,
+ c:null,
+ s:"(?:1|0)"};
+ case "Y":
+ return {g:1,
+ c:"y = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{4})"};
+ case "y":
+ return {g:1,
+ c:"var ty = parseInt(results[" + currentGroup + "], 10);\n"
+ + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",
+ s:"(\\d{1,2})"};
+ case "a":
+ return {g:1,
+ c:"if (results[" + currentGroup + "] == 'am') {\n"
+ + "if (h == 12) { h = 0; }\n"
+ + "} else { if (h < 12) { h += 12; }}",
+ s:"(am|pm)"};
+ case "A":
+ return {g:1,
+ c:"if (results[" + currentGroup + "] == 'AM') {\n"
+ + "if (h == 12) { h = 0; }\n"
+ + "} else { if (h < 12) { h += 12; }}",
+ s:"(AM|PM)"};
+ case "g":
+ case "G":
+ case "h":
+ case "H":
+ return {g:1,
+ c:"h = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{1,2})"};
+ case "i":
+ return {g:1,
+ c:"i = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{2})"};
+ case "s":
+ return {g:1,
+ c:"s = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{2})"};
+ case "O":
+ return {g:0,
+ c:null,
+ s:"[+-]\\d{4}"};
+ case "T":
+ return {g:0,
+ c:null,
+ s:"[A-Z]{3}"};
+ case "Z":
+ return {g:0,
+ c:null,
+ s:"[+-]\\d{1,5}"};
+ default:
+ return {g:0,
+ c:null,
+ s:String.escape(character)};
+ }
+}
+
+Date.prototype.getTimezone = function() {
+ return this.toString().replace(
+ /^.*? ([A-Z]{3}) [0-9]{4}.*$/, "$1").replace(
+ /^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, "$1$2$3");
+}
+
+Date.prototype.getGMTOffset = function() {
+ return (this.getTimezoneOffset() > 0 ? "-" : "+")
+ + String.leftPad(Math.floor(this.getTimezoneOffset() / 60), 2, "0")
+ + String.leftPad(this.getTimezoneOffset() % 60, 2, "0");
+}
+
+Date.prototype.getDayOfYear = function() {
+ var num = 0;
+ Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
+ for (var i = 0; i < this.getMonth(); ++i) {
+ num += Date.daysInMonth[i];
+ }
+ return num + this.getDate() - 1;
+}
+
+Date.prototype.getWeekOfYear = function() {
+ // Skip to Thursday of this week
+ var now = this.getDayOfYear() + (4 - this.getDay());
+ // Find the first Thursday of the year
+ var jan1 = new Date(this.getFullYear(), 0, 1);
+ var then = (7 - jan1.getDay() + 4);
+ document.write(then);
+ return String.leftPad(((now - then) / 7) + 1, 2, "0");
+}
+
+Date.prototype.isLeapYear = function() {
+ var year = this.getFullYear();
+ return ((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year)));
+}
+
+Date.prototype.getFirstDayOfMonth = function() {
+ var day = (this.getDay() - (this.getDate() - 1)) % 7;
+ return (day < 0) ? (day + 7) : day;
+}
+
+Date.prototype.getLastDayOfMonth = function() {
+ var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7;
+ return (day < 0) ? (day + 7) : day;
+}
+
+Date.prototype.getDaysInMonth = function() {
+ Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
+ return Date.daysInMonth[this.getMonth()];
+}
+
+Date.prototype.getSuffix = function() {
+ switch (this.getDate()) {
+ case 1:
+ case 21:
+ case 31:
+ return "st";
+ case 2:
+ case 22:
+ return "nd";
+ case 3:
+ case 23:
+ return "rd";
+ default:
+ return "th";
+ }
+}
+
+String.escape = function(string) {
+ return string.replace(/('|\\)/g, "\\$1");
+}
+
+String.leftPad = function (val, size, ch) {
+ var result = new String(val);
+ if (ch == null) {
+ ch = " ";
+ }
+ while (result.length < size) {
+ result = ch + result;
+ }
+ return result;
+}
+
+Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
+Date.monthNames =
+ ["January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December"];
+Date.dayNames =
+ ["Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"];
+Date.y2kYear = 50;
+Date.monthNumbers = {
+ Jan:0,
+ Feb:1,
+ Mar:2,
+ Apr:3,
+ May:4,
+ Jun:5,
+ Jul:6,
+ Aug:7,
+ Sep:8,
+ Oct:9,
+ Nov:10,
+ Dec:11};
+Date.patterns = {
+ ISO8601LongPattern:"Y-m-d H:i:s",
+ ISO8601ShortPattern:"Y-m-d",
+ ShortDatePattern: "n/j/Y",
+ LongDatePattern: "l, F d, Y",
+ FullDateTimePattern: "l, F d, Y g:i:s A",
+ MonthDayPattern: "F d",
+ ShortTimePattern: "g:i A",
+ LongTimePattern: "g:i:s A",
+ SortableDateTimePattern: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTimePattern: "Y-m-d H:i:sO",
+ YearMonthPattern: "F, Y"};
+
+var date = new Date("1/1/2007 1:11:11");
+
+for (i = 0; i < 4000; ++i) {
+ var shortFormat = date.dateFormat("Y-m-d");
+ var longFormat = date.dateFormat("l, F d, Y g:i:s A");
+ date.setTime(date.getTime() + 84266956);
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/math-cordic.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/math-cordic.js
new file mode 100644
index 000000000..4d3833b1e
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/math-cordic.js
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) Rich Moore. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/////. Start CORDIC
+
+var AG_CONST = 0.6072529350;
+
+function FIXED(X)
+{
+ return X * 65536.0;
+}
+
+function FLOAT(X)
+{
+ return X / 65536.0;
+}
+
+function DEG2RAD(X)
+{
+ return 0.017453 * (X);
+}
+
+var Angles = [
+ FIXED(45.0), FIXED(26.565), FIXED(14.0362), FIXED(7.12502),
+ FIXED(3.57633), FIXED(1.78991), FIXED(0.895174), FIXED(0.447614),
+ FIXED(0.223811), FIXED(0.111906), FIXED(0.055953),
+ FIXED(0.027977)
+ ];
+
+
+function cordicsincos() {
+ var X;
+ var Y;
+ var TargetAngle;
+ var CurrAngle;
+ var Step;
+
+ X = FIXED(AG_CONST); /* AG_CONST * cos(0) */
+ Y = 0; /* AG_CONST * sin(0) */
+
+ TargetAngle = FIXED(28.027);
+ CurrAngle = 0;
+ for (Step = 0; Step < 12; Step++) {
+ var NewX;
+ if (TargetAngle > CurrAngle) {
+ NewX = X - (Y >> Step);
+ Y = (X >> Step) + Y;
+ X = NewX;
+ CurrAngle += Angles[Step];
+ } else {
+ NewX = X + (Y >> Step);
+ Y = -(X >> Step) + Y;
+ X = NewX;
+ CurrAngle -= Angles[Step];
+ }
+ }
+}
+
+///// End CORDIC
+
+function cordic( runs ) {
+ var start = new Date();
+
+ for ( var i = 0 ; i < runs ; i++ ) {
+ cordicsincos();
+ }
+
+ var end = new Date();
+
+ return end.getTime() - start.getTime();
+}
+
+cordic(25000);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/math-partial-sums.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/math-partial-sums.js
new file mode 100644
index 000000000..d082d7994
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/math-partial-sums.js
@@ -0,0 +1,33 @@
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+// contributed by Isaac Gouy
+
+function partial(n){
+ var a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0.0;
+ var twothirds = 2.0/3.0;
+ var alt = -1.0;
+ var k2 = k3 = sk = ck = 0.0;
+
+ for (var k = 1; k <= n; k++){
+ k2 = k*k;
+ k3 = k2*k;
+ sk = Math.sin(k);
+ ck = Math.cos(k);
+ alt = -alt;
+
+ a1 += Math.pow(twothirds,k-1);
+ a2 += Math.pow(k,-0.5);
+ a3 += 1.0/(k*(k+1.0));
+ a4 += 1.0/(k3 * sk*sk);
+ a5 += 1.0/(k3 * ck*ck);
+ a6 += 1.0/k;
+ a7 += 1.0/k2;
+ a8 += alt/k;
+ a9 += alt/(2*k -1);
+ }
+}
+
+for (var i = 1024; i <= 16384; i *= 2) {
+ partial(i);
+}
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/math-spectral-norm.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/math-spectral-norm.js
new file mode 100644
index 000000000..8139ef370
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/math-spectral-norm.js
@@ -0,0 +1,51 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// contributed by Ian Osgood
+
+function A(i,j) {
+ return 1/((i+j)*(i+j+1)/2+i+1);
+}
+
+function Au(u,v) {
+ for (var i=0; i<u.length; ++i) {
+ var t = 0;
+ for (var j=0; j<u.length; ++j)
+ t += A(i,j) * u[j];
+ v[i] = t;
+ }
+}
+
+function Atu(u,v) {
+ for (var i=0; i<u.length; ++i) {
+ var t = 0;
+ for (var j=0; j<u.length; ++j)
+ t += A(j,i) * u[j];
+ v[i] = t;
+ }
+}
+
+function AtAu(u,v,w) {
+ Au(u,w);
+ Atu(w,v);
+}
+
+function spectralnorm(n) {
+ var i, u=[], v=[], w=[], vv=0, vBv=0;
+ for (i=0; i<n; ++i) {
+ u[i] = 1; v[i] = w[i] = 0;
+ }
+ for (i=0; i<10; ++i) {
+ AtAu(u,v,w);
+ AtAu(v,u,w);
+ }
+ for (i=0; i<n; ++i) {
+ vBv += u[i]*v[i];
+ vv += v[i]*v[i];
+ }
+ return Math.sqrt(vBv/vv);
+}
+
+for (var i = 6; i <= 48; i *= 2) {
+ spectralnorm(i);
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/regexp-dna.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/regexp-dna.js
new file mode 100644
index 000000000..af8ebe638
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/regexp-dna.js
@@ -0,0 +1,1712 @@
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// contributed by Jesse Millikan
+// Base on the Ruby version by jose fco. gonzalez
+
+var l;
+var dnaInput = ">ONE Homo sapiens alu\n\
+GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n\
+TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n\
+AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n\
+GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n\
+CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n\
+GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n\
+GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n\
+TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n\
+AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n\
+GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n\
+AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n\
+AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n\
+GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n\
+CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n\
+AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n\
+TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n\
+TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n\
+GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n\
+TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n\
+CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n\
+CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n\
+TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n\
+CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n\
+AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n\
+GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n\
+TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n\
+TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n\
+GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n\
+GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n\
+ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n\
+TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n\
+CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n\
+CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n\
+GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n\
+CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n\
+GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n\
+GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n\
+GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n\
+GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n\
+GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n\
+AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n\
+CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n\
+GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n\
+AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n\
+GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n\
+ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n\
+GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC\n\
+GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC\n\
+GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG\n\
+TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA\n\
+AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG\n\
+GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT\n\
+CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC\n\
+TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG\n\
+ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC\n\
+GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA\n\
+ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA\n\
+CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA\n\
+CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA\n\
+ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG\n\
+CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG\n\
+AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC\n\
+CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG\n\
+AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC\n\
+CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG\n\
+CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG\n\
+CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG\n\
+CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC\n\
+ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA\n\
+AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC\n\
+TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC\n\
+ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG\n\
+CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG\n\
+AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT\n\
+AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA\n\
+TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC\n\
+CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA\n\
+TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG\n\
+CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT\n\
+GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG\n\
+GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG\n\
+CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG\n\
+GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG\n\
+GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT\n\
+AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT\n\
+GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT\n\
+CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG\n\
+GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC\n\
+TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT\n\
+CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG\n\
+ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG\n\
+CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG\n\
+AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA\n\
+CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG\n\
+CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC\n\
+ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC\n\
+GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC\n\
+GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG\n\
+GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT\n\
+TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG\n\
+CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA\n\
+GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG\n\
+CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC\n\
+GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG\n\
+CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA\n\
+CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG\n\
+CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA\n\
+ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC\n\
+CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT\n\
+GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA\n\
+AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG\n\
+ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC\n\
+TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA\n\
+GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC\n\
+GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG\n\
+TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC\n\
+AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA\n\
+ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA\n\
+GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\n\
+AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG\n\
+TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC\n\
+CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT\n\
+GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC\n\
+CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA\n\
+GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT\n\
+TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC\n\
+ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC\n\
+TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG\n\
+GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG\n\
+TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG\n\
+GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC\n\
+GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT\n\
+ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC\n\
+GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC\n\
+GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC\n\
+CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA\n\
+ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG\n\
+AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC\n\
+TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT\n\
+CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG\n\
+TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG\n\
+CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC\n\
+GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT\n\
+GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC\n\
+CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC\n\
+TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG\n\
+CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\n\
+AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG\n\
+AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG\n\
+AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT\n\
+GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA\n\
+TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC\n\
+AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA\n\
+AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG\n\
+CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC\n\
+TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG\n\
+GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT\n\
+CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG\n\
+CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG\n\
+GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA\n\
+AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA\n\
+GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC\n\
+TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC\n\
+CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA\n\
+GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG\n\
+CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG\n\
+AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG\n\
+ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC\n\
+ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC\n\
+AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC\n\
+GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG\n\
+GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT\n\
+CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC\n\
+GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC\n\
+CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\n\
+GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA\n\
+GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG\n\
+GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT\n\
+CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA\n\
+AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG\n\
+CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC\n\
+CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG\n\
+GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG\n\
+GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT\n\
+TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA\n\
+ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG\n\
+CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA\n\
+ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA\n\
+GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG\n\
+TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC\n\
+GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA\n\
+GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT\n\
+GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT\n\
+GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG\n\
+TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT\n\
+TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC\n\
+TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC\n\
+GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT\n\
+CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC\n\
+TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA\n\
+GATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGG\n\
+GCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCT\n\
+GAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT\n\
+ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAG\n\
+GCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTG\n\
+CACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCA\n\
+CGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTT\n\
+CGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCC\n\
+GGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGC\n\
+TTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGG\n\
+GCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCC\n\
+AGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTG\n\
+GCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCG\n\
+CGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAG\n\
+GCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAG\n\
+ACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAG\n\
+GCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGA\n\
+AACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATC\n\
+CCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAG\n\
+TGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAA\n\
+AAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCG\n\
+GATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTA\n\
+CTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGG\n\
+AGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCG\n\
+CGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCG\n\
+GTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGT\n\
+CAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAA\n\
+AATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGG\n\
+AGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTC\n\
+CAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCT\n\
+GTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA\n\
+CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCG\n\
+TGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAA\n\
+CCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGAC\n\
+AGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCAC\n\
+TTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAA\n\
+CATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGC\n\
+CTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGA\n\
+GGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCC\n\
+GTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGA\n\
+GGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCC\n\
+CGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGC\n\
+TACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGC\n\
+CGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGC\n\
+CGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCA\n\
+CCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAA\n\
+AATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCT\n\
+GAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCA\n\
+CTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGC\n\
+TCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGA\n\
+GTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTA\n\
+GCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAAT\n\
+CGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCC\n\
+TGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAAT\n\
+CCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGC\n\
+CTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTG\n\
+GCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGG\n\
+GAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGC\n\
+GAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG\n\
+GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGG\n\
+TGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTA\n\
+ATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTG\n\
+CAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTC\n\
+AAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGG\n\
+GCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCT\n\
+CTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTC\n\
+GGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGA\n\
+TCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGC\n\
+GCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGA\n\
+GGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATAC\n\
+AAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGC\n\
+AGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCA\n\
+CTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACG\n\
+CCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCG\n\
+AGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGG\n\
+GCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTT\n\
+GAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGC\n\
+GACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAG\n\
+CACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGC\n\
+CAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCG\n\
+CGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGC\n\
+GGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGAC\n\
+TCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGC\n\
+CGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAA\n\
+CCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCC\n\
+AGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTG\n\
+AGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA\n\
+GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n\
+TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n\
+AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n\
+GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n\
+CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n\
+GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n\
+GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n\
+TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n\
+AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n\
+GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n\
+AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n\
+AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n\
+GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n\
+CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n\
+AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n\
+TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n\
+TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n\
+GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n\
+TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n\
+CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n\
+CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n\
+TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n\
+CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n\
+AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n\
+GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n\
+TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n\
+TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n\
+GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n\
+GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n\
+ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n\
+TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n\
+CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n\
+CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n\
+GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n\
+CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n\
+GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n\
+GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n\
+GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n\
+GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n\
+GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n\
+AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n\
+CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n\
+GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n\
+AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n\
+GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n\
+ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n\
+GAGGCTGAGGCAGGAGAATC\n\
+>TWO IUB ambiguity codes\n\
+cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg\n\
+tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa\n\
+NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt\n\
+cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga\n\
+gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa\n\
+HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca\n\
+tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt\n\
+tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt\n\
+acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct\n\
+tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt\n\
+gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa\n\
+accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt\n\
+RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt\n\
+tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag\n\
+cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg\n\
+ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat\n\
+actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg\n\
+YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa\n\
+KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata\n\
+aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa\n\
+aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg\n\
+gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc\n\
+tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK\n\
+tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt\n\
+ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg\n\
+ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa\n\
+BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt\n\
+aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc\n\
+tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc\n\
+cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac\n\
+aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga\n\
+tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga\n\
+aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD\n\
+gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg\n\
+ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV\n\
+taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa\n\
+ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat\n\
+gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg\n\
+gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa\n\
+tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt\n\
+tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt\n\
+taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca\n\
+cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag\n\
+aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt\n\
+cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt\n\
+ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW\n\
+attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag\n\
+ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa\n\
+attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc\n\
+tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta\n\
+aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata\n\
+cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc\n\
+gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg\n\
+attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca\n\
+BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga\n\
+DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat\n\
+tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM\n\
+tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR\n\
+tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg\n\
+taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc\n\
+aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc\n\
+DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa\n\
+VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt\n\
+agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat\n\
+gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt\n\
+tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt\n\
+catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt\n\
+tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR\n\
+aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat\n\
+aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac\n\
+acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS\n\
+tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga\n\
+aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM\n\
+acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt\n\
+RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt\n\
+RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta\n\
+tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac\n\
+gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt\n\
+YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc\n\
+ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt\n\
+ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat\n\
+gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta\n\
+KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD\n\
+aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg\n\
+gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH\n\
+taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact\n\
+VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV\n\
+NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa\n\
+MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag\n\
+cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata\n\
+ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg\n\
+tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN\n\
+aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc\n\
+actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg\n\
+tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga\n\
+gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa\n\
+BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca\n\
+aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata\n\
+aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat\n\
+YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt\n\
+aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW\n\
+cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata\n\
+tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata\n\
+tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt\n\
+MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac\n\
+taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta\n\
+tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS\n\
+RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc\n\
+agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata\n\
+NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa\n\
+gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata\n\
+aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt\n\
+ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW\n\
+cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt\n\
+tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa\n\
+RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt\n\
+tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD\n\
+gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc\n\
+tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta\n\
+ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM\n\
+tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc\n\
+ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc\n\
+BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt\n\
+gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga\n\
+acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag\n\
+gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc\n\
+taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat\n\
+acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta\n\
+tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt\n\
+catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa\n\
+tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB\n\
+atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR\n\
+ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta\n\
+ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta\n\
+cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK\n\
+SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW\n\
+VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc\n\
+BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct\n\
+NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt\n\
+tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa\n\
+ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa\n\
+cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa\n\
+VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR\n\
+atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac\n\
+aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc\n\
+tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac\n\
+RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag\n\
+gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc\n\
+tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact\n\
+attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc\n\
+atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga\n\
+cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt\n\
+NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR\n\
+ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat\n\
+cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg\n\
+aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac\n\
+agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR\n\
+tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga\n\
+ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg\n\
+ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa\n\
+tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag\n\
+taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg\n\
+tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN\n\
+YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt\n\
+ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa\n\
+tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat\n\
+ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg\n\
+attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt\n\
+atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW\n\
+YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta\n\
+gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV\n\
+MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta\n\
+tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt\n\
+ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa\n\
+aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa\n\
+BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM\n\
+tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK\n\
+StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV\n\
+cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN\n\
+atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg\n\
+atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg\n\
+ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct\n\
+gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM\n\
+tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD\n\
+BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc\n\
+agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga\n\
+HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR\n\
+tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt\n\
+aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa\n\
+catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB\n\
+aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat\n\
+tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt\n\
+cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag\n\
+DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat\n\
+gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta\n\
+tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM\n\
+atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc\n\
+KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt\n\
+tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata\n\
+tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK\n\
+taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt\n\
+NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa\n\
+HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa\n\
+ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg\n\
+tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK\n\
+cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga\n\
+ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca\n\
+HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg\n\
+gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS\n\
+BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg\n\
+gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat\n\
+KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact\n\
+cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat\n\
+tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD\n\
+taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM\n\
+gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt\n\
+aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat\n\
+acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta\n\
+RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc\n\
+attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac\n\
+KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS\n\
+KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD\n\
+gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB\n\
+aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct\n\
+aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga\n\
+ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY\n\
+tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga\n\
+aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta\n\
+tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY\n\
+MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc\n\
+cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta\n\
+caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt\n\
+ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc\n\
+acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat\n\
+tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc\n\
+gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa\n\
+atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga\n\
+aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat\n\
+NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt\n\
+taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa\n\
+aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat\n\
+ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca\n\
+DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata\n\
+tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat\n\
+aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa\n\
+ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM\n\
+ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca\n\
+RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa\n\
+aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac\n\
+aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt\n\
+aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK\n\
+tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat\n\
+atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR\n\
+BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc\n\
+gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct\n\
+cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN\n\
+RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat\n\
+taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt\n\
+aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt\n\
+gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct\n\
+gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa\n\
+aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta\n\
+gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg\n\
+ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat\n\
+MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct\n\
+SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY\n\
+aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt\n\
+VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat\n\
+HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc\n\
+agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt\n\
+gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg\n\
+agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg\n\
+tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag\n\
+gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga\n\
+VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg\n\
+tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV\n\
+MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt\n\
+actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa\n\
+WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa\n\
+tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD\n\
+KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct\n\
+BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac\n\
+attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB\n\
+VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD\n\
+aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca\n\
+tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat\n\
+tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK\n\
+tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt\n\
+VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta\n\
+tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat\n\
+ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa\n\
+tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg\n\
+WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta\n\
+tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc\n\
+tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct\n\
+MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat\n\
+tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac\n\
+atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg\n\
+aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt\n\
+aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa\n\
+aatYggtaRtatNtHcaatcaHtagVtgtattataNggaMtcttHtNagctaaaggtaga\n\
+YctMattNaMVNtcKtactBKcaHHcBttaSagaKacataYgctaKaYgttYcgacWVtt\n\
+WtSagcaacatcccHaccKtcttaacgaKttcacKtNtacHtatatRtaaatacactaBt\n\
+ttgaHaRttggttWtatYagcatYDatcggagagcWBataagRtacctataRKgtBgatg\n\
+aDatataSttagBaHtaatNtaDWcWtgtaattacagKttcNtMagtattaNgtctcgtc\n\
+ctcttBaHaKcKccgtRcaaYagSattaagtKataDatatatagtcDtaacaWHcaKttD\n\
+gaaRcgtgYttgtcatatNtatttttatggccHtgDtYHtWgttatYaacaattcaWtat\n\
+NgctcaaaSttRgctaatcaaatNatcgtttaBtNNVtgttataagcaaagattBacgtD\n\
+atttNatttaaaDcBgtaSKgacgtagataatttcHMVNttgttBtDtgtaWKaaRMcKM\n\
+tHtaVtagataWctccNNaSWtVaHatctcMgggDgtNHtDaDttatatVWttgttattt\n\
+aacctttcacaaggaSaDcggttttttatatVtctgVtaacaStDVaKactaMtttaSNa\n\
+gtgaaattaNacttSKctattcctctaSagKcaVttaagNaVcttaVaaRNaHaaHttat\n\
+gtHttgtgatMccaggtaDcgaccgtWgtWMtttaHcRtattgScctatttKtaaccaag\n\
+tYagaHgtWcHaatgccKNRtttagtMYSgaDatctgtgaWDtccMNcgHgcaaacNDaa\n\
+aRaStDWtcaaaaHKtaNBctagBtgtattaactaattttVctagaatggcWSatMaccc\n\
+ttHttaSgSgtgMRcatRVKtatctgaaaccDNatYgaaVHNgatMgHRtacttaaaRta\n\
+tStRtDtatDttYatattHggaBcttHgcgattgaKcKtttcRataMtcgaVttWacatN\n\
+catacctRataDDatVaWNcggttgaHtgtMacVtttaBHtgagVttMaataattatgtt\n\
+cttagtttgtgcDtSatttgBtcaacHattaaBagVWcgcaSYttMgcttacYKtVtatc\n\
+aYaKctgBatgcgggcYcaaaaacgNtctagKBtattatctttKtaVttatagtaYtRag\n\
+NtaYataaVtgaatatcHgcaaRataHtacacatgtaNtgtcgYatWMatttgaactacR\n\
+ctaWtWtatacaatctBatatgYtaagtatgtgtatSttactVatcttYtaBcKgRaSgg\n\
+RaaaaatgcagtaaaWgtaRgcgataatcBaataccgtatttttccatcNHtatWYgatH\n\
+SaaaDHttgctgtccHtggggcctaataatttttctatattYWtcattBtgBRcVttaVM\n\
+RSgctaatMagtYtttaaaaatBRtcBttcaaVtaacagctccSaaSttKNtHtKYcagc\n\
+agaaaccccRtttttaaDcDtaStatccaagcgctHtatcttaDRYgatDHtWcaaaBcW\n\
+gKWHttHataagHacgMNKttMKHccaYcatMVaacgttaKgYcaVaaBtacgcaacttt\n\
+MctaaHaatgtBatgagaSatgtatgSRgHgWaVWgataaatatttccKagVgataattW\n\
+aHNcYggaaatgctHtKtaDtctaaagtMaatVDVactWtSaaWaaMtaHtaSKtcBRaN\n\
+cttStggtBttacNagcatagRgtKtgcgaacaacBcgKaatgataagatgaaaattgta\n\
+ctgcgggtccHHWHaaNacaBttNKtKtcaaBatatgctaHNgtKcDWgtttatNgVDHg\n\
+accaacWctKaaggHttgaRgYaatHcaBacaatgagcaaattactgtaVaaYaDtagat\n\
+tgagNKggtggtgKtWKaatacagDRtatRaMRtgattDggtcaaYRtatttNtagaDtc\n\
+acaaSDctDtataatcgtactaHttatacaatYaacaaHttHatHtgcgatRRttNgcat\n\
+SVtacWWgaaggagtatVMaVaaattScDDKNcaYBYaDatHgtctatBagcaacaagaa\n\
+tgagaaRcataaKNaRtBDatcaaacgcattttttaaBtcSgtacaRggatgtMNaattg\n\
+gatatWtgagtattaaaVctgcaYMtatgatttttYgaHtgtcttaagWBttHttgtctt\n\
+attDtcgtatWtataataSgctaHagcDVcNtaatcaagtaBDaWaDgtttagYctaNcc\n\
+DtaKtaHcttaataacccaRKtacaVaatNgcWRaMgaattatgaBaaagattVYaHMDc\n\
+aDHtcRcgYtcttaaaWaaaVKgatacRtttRRKYgaatacaWVacVcRtatMacaBtac\n\
+tggMataaattttHggNagSctacHgtBagcgtcgtgattNtttgatSaaggMttctttc\n\
+ttNtYNagBtaaacaaatttMgaccttacataattgYtcgacBtVMctgStgMDtagtaR\n\
+ctHtatgttcatatVRNWataDKatWcgaaaaagttaaaagcacgHNacgtaatctttMR\n\
+tgacttttDacctataaacgaaatatgattagaactccSYtaBctttaataacWgaaaYa\n\
+tagatgWttcatKtNgatttttcaagHtaYgaaRaDaagtaggagcttatVtagtctttc\n\
+attaaaatcgKtattaRttacagVaDatgcatVgattgggtctttHVtagKaaRBtaHta\n\
+aggccccaaaaKatggtttaMWgtBtaaacttcactttKHtcgatctccctaYaBacMgt\n\
+cttBaBaNgcgaaacaatctagtHccHtKttcRtRVttccVctttcatacYagMVtMcag\n\
+aMaaacaataBctgYtaatRaaagattaaccatVRatHtaRagcgcaBcgDttStttttc\n\
+VtttaDtKgcaaWaaaaatSccMcVatgtKgtaKgcgatatgtagtSaaaDttatacaaa\n\
+catYaRRcVRHctKtcgacKttaaVctaDaatgttMggRcWaacttttHaDaKaDaBctg\n\
+taggcgtttaHBccatccattcNHtDaYtaataMttacggctNVaacDattgatatttta\n\
+cVttSaattacaaRtataNDgacVtgaacataVRttttaDtcaaacataYDBtttaatBa\n\
+DtttYDaDaMccMttNBttatatgagaaMgaNtattHccNataattcaHagtgaaggDga\n\
+tgtatatatgYatgaStcataaBStWacgtcccataRMaaDattggttaaattcMKtctM\n\
+acaBSactcggaatDDgatDgcWctaacaccgggaVcacWKVacggtaNatatacctMta\n\
+tgatagtgcaKagggVaDtgtaacttggagtcKatatcgMcttRaMagcattaBRaStct\n\
+YSggaHYtacaactMBaagDcaBDRaaacMYacaHaattagcattaaaHgcgctaaggSc\n\
+cKtgaaKtNaBtatDDcKBSaVtgatVYaagVtctSgMctacgttaacWaaattctSgtD\n\
+actaaStaaattgcagBBRVctaatatacctNttMcRggctttMttagacRaHcaBaacV\n\
+KgaataHttttMgYgattcYaNRgttMgcVaaacaVVcDHaatttgKtMYgtatBtVVct\n\
+WgVtatHtacaaHttcacgatagcagtaaNattBatatatttcVgaDagcggttMaagtc\n\
+ScHagaaatgcYNggcgtttttMtStggtRatctacttaaatVVtBacttHNttttaRca\n\
+aatcacagHgagagtMgatcSWaNRacagDtatactaaDKaSRtgattctccatSaaRtt\n\
+aaYctacacNtaRtaactggatgaccYtacactttaattaattgattYgttcagDtNKtt\n\
+agDttaaaaaaaBtttaaNaYWKMBaaaacVcBMtatWtgBatatgaacVtattMtYatM\n\
+NYDKNcKgDttDaVtaaaatgggatttctgtaaatWtctcWgtVVagtcgRgacttcccc\n\
+taDcacagcRcagagtgtWSatgtacatgttaaSttgtaaHcgatgggMagtgaacttat\n\
+RtttaVcaccaWaMgtactaatSSaHtcMgaaYtatcgaaggYgggcgtgaNDtgttMNg\n\
+aNDMtaattcgVttttaacatgVatgtWVMatatcaKgaaattcaBcctccWcttgaaWH\n\
+tWgHtcgNWgaRgctcBgSgaattgcaaHtgattgtgNagtDttHHgBttaaWcaaWagc\n\
+aSaHHtaaaVctRaaMagtaDaatHtDMtcVaWMtagSagcttHSattaacaaagtRacM\n\
+tRtctgttagcMtcaBatVKtKtKacgagaSNatSactgtatatcBctgagVtYactgta\n\
+aattaaaggcYgDHgtaacatSRDatMMccHatKgttaacgactKtgKagtcttcaaHRV\n\
+tccttKgtSataatttacaactggatDNgaacttcaRtVaagDcaWatcBctctHYatHa\n\
+DaaatttagYatSatccaWtttagaaatVaacBatHcatcgtacaatatcgcNYRcaata\n\
+YaRaYtgattVttgaatgaVaactcRcaNStgtgtattMtgaggtNttBaDRcgaaaagc\n\
+tNgBcWaWgtSaDcVtgVaatMKBtttcgtttctaaHctaaagYactgMtatBDtcStga\n\
+ccgtSDattYaataHctgggaYYttcggttaWaatctggtRagWMaDagtaacBccacta\n\
+cgHWMKaatgatWatcctgHcaBaSctVtcMtgtDttacctaVgatYcWaDRaaaaRtag\n\
+atcgaMagtggaRaWctctgMgcWttaagKBRtaaDaaWtctgtaagYMttactaHtaat\n\
+cttcataacggcacBtSgcgttNHtgtHccatgttttaaagtatcgaKtMttVcataYBB\n\
+aKtaMVaVgtattNDSataHcagtWMtaggtaSaaKgttgBtVtttgttatcatKcgHac\n\
+acRtctHatNVagSBgatgHtgaRaSgttRcctaacaaattDNttgacctaaYtBgaaaa\n\
+tagttattactcttttgatgtNNtVtgtatMgtcttRttcatttgatgacacttcHSaaa\n\
+ccaWWDtWagtaRDDVNacVaRatgttBccttaatHtgtaaacStcVNtcacaSRttcYa\n\
+gacagaMMttttgMcNttBcgWBtactgVtaRttctccaaYHBtaaagaBattaYacgat\n\
+ttacatctgtaaMKaRYtttttactaaVatWgctBtttDVttctggcDaHaggDaagtcg\n\
+aWcaagtagtWttHtgKtVataStccaMcWcaagataagatcactctHatgtcYgaKcat\n\
+cagatactaagNSStHcctRRNtattgtccttagttagMVgtatagactaactctVcaat\n\
+MctgtttgtgttgccttatWgtaBVtttctggMcaaKgDWtcgtaaYStgSactatttHg\n\
+atctgKagtagBtVacRaagRtMctatgggcaaaKaaaatacttcHctaRtgtDcttDat\n\
+taggaaatttcYHaRaaBttaatggcacKtgctHVcaDcaaaVDaaaVcgMttgtNagcg\n\
+taDWgtcgttaatDgKgagcSatatcSHtagtagttggtgtHaWtaHKtatagctgtVga\n\
+ttaBVaatgaataagtaatVatSttaHctttKtttgtagttaccttaatcgtagtcctgB\n\
+cgactatttVcMacHaaaggaatgDatggKtaHtgStatattaaSagctWcctccRtata\n\
+BaDYcgttgcNaagaggatRaaaYtaWgNtSMcaatttactaacatttaaWttHtatBat\n\
+tgtcgacaatNgattgcNgtMaaaKaBDattHacttggtRtttaYaacgVactBtaBaKt\n\
+gBttatgVttgtVttcaatcWcNctDBaaBgaDHacBttattNtgtDtatttVSaaacag\n\
+gatgcRatSgtaSaNtgBatagttcHBgcBBaaattaHgtDattatDaKaatBaaYaaMa\n\
+ataaataKtttYtagtBgMatNcatgtttgaNagtgttgtgKaNaSagtttgaSMaYBca\n\
+aaacDStagttVacaaaaactaaWttBaagtctgtgcgtMgtaattctcctacctcaNtt\n\
+taaccaaaaVtBcacataacaccccBcWMtatVtggaatgaWtcaaWaaaaaaaaWtDta\n\
+atatRcctDWtcctaccMtVVatKttaWaaKaaatataaagScHBagaggBaSMtaWaVt\n\
+atattactSaaaKNaactatNatccttgaYctattcaaaVgatttYHcRagattttaSat\n\
+aggttattcVtaaagaKgtattattKtRttNcggcRgtgtgtWYtaacHgKatKgatYta\n\
+cYagDtWcHBDctctgRaYKaYagcactKcacSaRtBttttBHKcMtNtcBatttatttt\n\
+tgSatVgaaagaWtcDtagDatatgMacaacRgatatatgtttgtKtNRaatatNatgYc\n\
+aHtgHataacKtgagtagtaacYttaNccaaatHcacaacaVDtagtaYtccagcattNt\n\
+acKtBtactaaagaBatVtKaaHBctgStgtBgtatgaSNtgDataaccctgtagcaBgt\n\
+gatcttaDataStgaMaccaSBBgWagtacKcgattgaDgNNaaaacacagtSatBacKD\n\
+gcgtataBKcatacactaSaatYtYcDaactHttcatRtttaatcaattataRtttgtaa\n\
+gMcgNttcatcBtYBagtNWNMtSHcattcRctttttRWgaKacKttgggagBcgttcgc\n\
+MaWHtaatactgtctctatttataVgtttaBScttttaBMaNaatMacactYtBMggtHa\n\
+cMagtaRtctgcatttaHtcaaaatttgagKtgNtactBacaHtcgtatttctMaSRagc\n\
+agttaatgtNtaaattgagagWcKtaNttagVtacgatttgaatttcgRtgtWcVatcgt\n\
+taaDVctgtttBWgaccagaaagtcSgtVtatagaBccttttcctaaattgHtatcggRa\n\
+ttttcaaggcYSKaagWaWtRactaaaacccBatMtttBaatYtaagaactSttcgaaSc\n\
+aatagtattgaccaagtgttttctaacatgtttNVaatcaaagagaaaNattaaRtttta\n\
+VaaaccgcaggNMtatattVctcaagaggaacgBgtttaacaagttcKcYaatatactaa\n\
+ccBaaaSggttcNtattctagttRtBacgScVctcaatttaatYtaaaaaaatgSaatga\n\
+tagaMBRatgRcMcgttgaWHtcaVYgaatYtaatctttYttatRaWtctgBtDcgatNa\n\
+tcKaBaDgatgtaNatWKctccgatattaacattNaaacDatgBgttctgtDtaaaMggt\n\
+gaBaSHataacgccSctaBtttaRBtcNHcDatcDcctagagtcRtaBgWttDRVHagat\n\
+tYatgtatcWtaHtttYcattWtaaagtctNgtStggRNcgcggagSSaaagaaaatYcH\n\
+DtcgctttaatgYcKBVSgtattRaYBaDaaatBgtatgaHtaaRaRgcaSWNtagatHa\n\
+acttNctBtcaccatctMcatattccaSatttgcgaDagDgtatYtaaaVDtaagtttWV\n\
+aagtagYatRttaagDcNgacKBcScagHtattatcDaDactaaaaaYgHttBcgaDttg\n\
+gataaaKSRcBMaBcgaBSttcWtgNBatRaccgattcatttataacggHVtaattcaca\n\
+agagVttaaRaatVVRKcgWtVgacctgDgYaaHaWtctttcacMagggatVgactagMa\n\
+aataKaaNWagKatagNaaWtaaaatttgaattttatttgctaaVgaHatBatcaaBWcB\n\
+gttcMatcgBaaNgttcgSNaggSaRtttgHtRtattaNttcDcatSaVttttcgaaaaa\n\
+ttgHatctaRaggSaNatMDaaatDcacgattttagaHgHaWtYgattaatHNSttatMS\n\
+gggNtcKtYatRggtttgtMWVtttaYtagcagBagHaYagttatatggtBacYcattaR\n\
+SataBatMtttaaatctHcaaaSaaaagttNSaaWcWRccRtKaagtBWtcaaattSttM\n\
+tattggaaaccttaacgttBtWatttatatWcDaatagattcctScacctaagggRaaYt\n\
+aNaatgVtBcttaaBaacaMVaaattatStYgRcctgtactatcMcVKatttcgSgatRH\n\
+MaaaHtagtaaHtVgcaaataatatcgKKtgccaatBNgaaWcVttgagttaKatagttc\n\
+aggKDatDtattgaKaVcaKtaataDataataHSaHcattagttaatRVYcNaHtaRcaa\n\
+ggtNHcgtcaaccaBaaagYtHWaaaRcKgaYaaDttgcWYtataRgaatatgtYtgcKt\n\
+aNttWacatYHctRaDtYtattcBttttatcSataYaYgttWaRagcacHMgtttHtYtt\n\
+YaatcggtatStttcgtRSattaaDaKMaatatactaNBaWgctacacYtgaYVgtgHta\n\
+aaRaaRgHtagtWattataaaSDaaWtgMattatcgaaaagtaYRSaWtSgNtBgagcRY\n\
+aMDtactaacttaWgtatctagacaagNtattHggataatYttYatcataDcgHgttBtt\n\
+ctttVttgccgaaWtaaaacgKgtatctaaaaaNtccDtaDatBMaMggaatNKtatBaa\n\
+atVtccRaHtaSacataHattgtttKVYattcataVaattWtcgtgMttcttKtgtctaa\n\
+cVtatctatatBRataactcgKatStatattcatHHRttKtccaacgtgggtgRgtgaMt\n\
+attattggctatcgtgacMtRcBDtcttgtactaatRHttttaagatcgVMDStattatY\n\
+BtttDttgtBtNttgRcMtYtgBacHaWaBaatDKctaagtgaaactaatgRaaKgatcc\n\
+aagNaaaatattaggWNtaagtatacttttKcgtcggSYtcttgRctataYcttatataa\n\
+agtatattaatttataVaacacaDHatctatttttKYVatHRactttaBHccaWagtact\n\
+BtcacgaVgcgttRtttttttSVgtSagtBaaattctgaHgactcttgMcattttagVta\n\
+agaattHctHtcaDaaNtaacRggWatagttcgtSttgaDatcNgNagctagDgatcNtt\n\
+KgttgtaDtctttRaaYStRatDtgMggactSttaDtagSaVtBDttgtDgccatcacaM\n\
+attaaaMtNacaVcgSWcVaaDatcaHaatgaattaMtatccVtctBtaattgtWattat\n\
+BRcWcaatgNNtactWYtDaKttaaatcactcagtRaaRgatggtKgcgccaaHgaggat\n\
+StattYcaNMtcaBttacttatgagDaNtaMgaaWtgtttcttctaHtMNgttatctaWW\n\
+atMtBtaaatagDVatgtBYtatcggcttaagacMRtaHScgatatYgRDtcattatSDa\n\
+HggaaataNgaWSRRaaaBaatagBattaDctttgHWNttacaataaaaaaatacggttt\n\
+gHgVtaHtWMttNtBtctagtMcgKMgHgYtataHaNagWtcaacYattaataYRgtaWK\n\
+gaBctataaccgatttaHaNBRaRaMtccggtNgacMtctcatttgcaattcWgMactta\n\
+caaDaaNtactWatVtttagccttMaatcagVaagtctVaaDaBtattaattaYtNaYtg\n\
+gattaKtaKctYaMtattYgatattataatKtVgDcttatatNBtcgttgtStttttMag\n\
+aggttaHYSttcKgtcKtDNtataagttataagSgttatDtRttattgttttSNggRtca\n\
+aKMNatgaatattgtBWtaMacctgggYgaSgaagYataagattacgagaatBtggtRcV\n\
+HtgYggaDgaYaKagWagctatagacgaaHgtWaNgacttHRatVaWacKYtgRVNgVcS\n\
+gRWctacatcKSactctgWYtBggtataagcttNRttVtgRcaWaaatDMatYattaact\n\
+ttcgaagRatSctgccttgcRKaccHtttSNVagtagHagBagttagaccaRtataBcca\n\
+taatSHatRtcHagacBWatagcaMtacaRtgtgaaBatctKRtScttccaNaatcNgta\n\
+atatWtcaMgactctBtWtaaNactHaaaaRctcgcatggctMcaaNtcagaaaaacaca\n\
+gtggggWttRttagtaagaVctVMtcgaatcttcMaaaHcaHBttcgattatgtcaDagc\n\
+YRtBtYcgacMgtDcagcgaNgttaataatagcagKYYtcgtaBtYctMaRtaRtDagaa\n\
+aacacatgYaBttgattattcgaaNttBctSataaMataWRgaHtttccgtDgaYtatgg\n\
+tDgHKgMtatttVtMtVagttaRatMattRagataaccctKctMtSttgaHagtcStcta\n\
+tttccSagatgttccacgaggYNttHRacgattcDatatDcataaaatBBttatcgaHtN\n\
+HaaatatDNaggctgaNcaaggagttBttMgRagVatBcRtaWgatgBtSgaKtcgHttt\n\
+gaatcaaDaHttcSBgHcagtVaaSttDcagccgttNBtgttHagYtattctttRWaaVt\n\
+SttcatatKaaRaaaNacaVtVctMtSDtDtRHRcgtaatgctcttaaatSacacaatcg\n\
+HattcaWcttaaaatHaaatcNctWttaNMcMtaKctVtcctaagYgatgatcYaaaRac\n\
+tctaRDaYagtaacgtDgaggaaatctcaaacatcaScttcKttNtaccatNtaNataca\n\
+tttHaaDHgcaDatMWaaBttcRggctMaagctVYcacgatcaDttatYtaatcKatWat\n\
+caatVYtNagatttgattgaYttttYgacttVtcKaRagaaaHVgDtaMatKYagagttN\n\
+atWttaccNtYtcDWgSatgaRgtMatgKtcgacaagWtacttaagtcgKtgatccttNc\n\
+ttatagMatHVggtagcgHctatagccctYttggtaattKNaacgaaYatatVctaataM\n\
+aaaYtgVtcKaYtaataacagaatHcacVagatYWHttagaaSMaatWtYtgtaaagNaa\n\
+acaVgaWtcacNWgataNttcaSagctMDaRttgNactaccgataMaaatgtttattDtc\n\
+aagacgctDHYYatggttcaagccNctccttcMctttagacBtaaWtaWVHggaaaaNat\n\
+ttaDtDtgctaaHHtMtatNtMtagtcatttgcaaaRatacagRHtatDNtgtDgaatVg\n\
+tVNtcaaatYBMaaaagcaKgtgatgatMgWWMaHttttMgMagatDtataaattaacca\n\
+actMtacataaattgRataatacgBtKtaataattRgtatDagDtcRDacctatRcagag\n\
+cSHatNtcaScNtttggacNtaaggaccgtgKNttgttNcttgaaRgYgRtNtcagttBc\n\
+ttttcHtKtgcttYaaNgYagtaaatgaatggWaMattBHtatctatSgtcYtgcHtaat\n\
+tHgaaMtHcagaaSatggtatgccaHBtYtcNattWtgtNgctttaggtttgtWatNtgH\n\
+tgcDttactttttttgcNtactKtWRaVcttcatagtgSNKaNccgaataaBttataata\n\
+YtSagctttaaatSttggctaaKSaatRccgWHgagDttaaatcatgagMtcgagtVtaD\n\
+ggaBtatttgDacataaacgtagYRagBWtgDStKDgatgaagttcattatttaKWcata\n\
+aatWRgatataRgttRacaaNKttNtKagaaYaStaactScattattaacgatttaaatg\n\
+DtaattagatHgaYataaactatggggatVHtgccgtNgatNYcaStRtagaccacWcaM\n\
+tatRagHgVactYtWHtcttcatgatWgagaKggagtatgaWtDtVtNaNtcgYYgtaaa\n\
+ctttaDtBactagtaDctatagtaatatttatatataacgHaaaRagKattSagttYtSt\n\
+>THREE Homo sapiens frequency\n\
+agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct\n\
+cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt\n\
+tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat\n\
+tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc\n\
+gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc\n\
+tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg\n\
+tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat\n\
+atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag\n\
+cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa\n\
+ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt\n\
+ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat\n\
+atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc\n\
+gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact\n\
+tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag\n\
+gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg\n\
+atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag\n\
+tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac\n\
+ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag\n\
+tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta\n\
+aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt\n\
+gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa\n\
+ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc\n\
+agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt\n\
+agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat\n\
+acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc\n\
+cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct\n\
+cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct\n\
+cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa\n\
+aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt\n\
+tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt\n\
+atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct\n\
+cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga\n\
+tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat\n\
+catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc\n\
+tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg\n\
+caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc\n\
+tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc\n\
+aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag\n\
+aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat\n\
+ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac\n\
+gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag\n\
+ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt\n\
+cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta\n\
+gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca\n\
+ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt\n\
+cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg\n\
+taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg\n\
+gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc\n\
+taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt\n\
+ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt\n\
+aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt\n\
+gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta\n\
+acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct\n\
+ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta\n\
+tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt\n\
+tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg\n\
+tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa\n\
+ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac\n\
+aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga\n\
+tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca\n\
+gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt\n\
+gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc\n\
+cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg\n\
+actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa\n\
+tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg\n\
+ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt\n\
+ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta\n\
+agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc\n\
+gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa\n\
+tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt\n\
+atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca\n\
+cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa\n\
+tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca\n\
+gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg\n\
+gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat\n\
+aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg\n\
+gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat\n\
+cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa\n\
+taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg\n\
+tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt\n\
+ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac\n\
+aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc\n\
+gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag\n\
+aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc\n\
+tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa\n\
+tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata\n\
+aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta\n\
+ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc\n\
+ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc\n\
+caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct\n\
+gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg\n\
+cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc\n\
+ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta\n\
+tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg\n\
+atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc\n\
+ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc\n\
+acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc\n\
+taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga\n\
+ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga\n\
+aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat\n\
+cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc\n\
+tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact\n\
+gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa\n\
+aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag\n\
+cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc\n\
+cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa\n\
+gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg\n\
+cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg\n\
+gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca\n\
+agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac\n\
+aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt\n\
+aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg\n\
+cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt\n\
+agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg\n\
+cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa\n\
+agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga\n\
+gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta\n\
+aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata\n\
+agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc\n\
+cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc\n\
+agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca\n\
+ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga\n\
+tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag\n\
+gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat\n\
+gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt\n\
+ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg\n\
+gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc\n\
+atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc\n\
+tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata\n\
+ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg\n\
+tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag\n\
+cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg\n\
+ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat\n\
+aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg\n\
+gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat\n\
+ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag\n\
+atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac\n\
+aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct\n\
+gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga\n\
+atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt\n\
+aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt\n\
+tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg\n\
+ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta\n\
+gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac\n\
+cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct\n\
+ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga\n\
+ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg\n\
+ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat\n\
+cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga\n\
+tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt\n\
+tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc\n\
+cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt\n\
+gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct\n\
+ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt\n\
+ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa\n\
+tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc\n\
+agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta\n\
+ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc\n\
+cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct\n\
+agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc\n\
+tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc\n\
+gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga\n\
+ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa\n\
+ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca\n\
+agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata\n\
+attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact\n\
+ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat\n\
+agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat\n\
+aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata\n\
+gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta\n\
+gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg\n\
+ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac\n\
+gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata\n\
+ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat\n\
+taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta\n\
+aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata\n\
+tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata\n\
+ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga\n\
+agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt\n\
+ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt\n\
+agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg\n\
+gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa\n\
+tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg\n\
+gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct\n\
+cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc\n\
+ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta\n\
+cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt\n\
+gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc\n\
+gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc\n\
+tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt\n\
+cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca\n\
+aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac\n\
+ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac\n\
+gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag\n\
+aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga\n\
+gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct\n\
+aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta\n\
+gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat\n\
+agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat\n\
+caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta\n\
+gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta\n\
+aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt\n\
+tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt\n\
+tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc\n\
+ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg\n\
+ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg\n\
+gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa\n\
+ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa\n\
+aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa\n\
+tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat\n\
+acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac\n\
+atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga\n\
+gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac\n\
+tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc\n\
+cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa\n\
+gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg\n\
+acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga\n\
+acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga\n\
+attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg\n\
+tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt\n\
+cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag\n\
+aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac\n\
+ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac\n\
+tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat\n\
+gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga\n\
+gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc\n\
+acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta\n\
+gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac\n\
+gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc\n\
+ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt\n\
+taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg\n\
+agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa\n\
+gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag\n\
+ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc\n\
+accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag\n\
+tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact\n\
+taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga\n\
+catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat\n\
+tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga\n\
+ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg\n\
+aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa\n\
+atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa\n\
+tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt\n\
+ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact\n\
+tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt\n\
+aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat\n\
+agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc\n\
+acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc\n\
+aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct\n\
+ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat\n\
+gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat\n\
+taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata\n\
+taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga\n\
+tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat\n\
+gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg\n\
+ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa\n\
+atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat\n\
+tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat\n\
+cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt\n\
+aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac\n\
+taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag\n\
+caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata\n\
+ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct\n\
+tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac\n\
+tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg\n\
+gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta\n\
+gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat\n\
+gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg\n\
+ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa\n\
+tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa\n\
+taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac\n\
+gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt\n\
+ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga\n\
+gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca\n\
+tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc\n\
+ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt\n\
+tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc\n\
+cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat\n\
+ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg\n\
+caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg\n\
+cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat\n\
+gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat\n\
+cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg\n\
+taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat\n\
+tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata\n\
+taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc\n\
+tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac\n\
+tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt\n\
+tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt\n\
+ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt\n\
+aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg\n\
+atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga\n\
+actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta\n\
+gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga\n\
+ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga\n\
+gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct\n\
+tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc\n\
+aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta\n\
+atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt\n\
+catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc\n\
+taaagataactctagtaaggccaactcccttcaatgctgttgccagttataatccaagag\n\
+ctgtccttttctgaaccatagcggcttctgaagcgaactagaagcaaagttggttctagc\n\
+cagacagccacataccctgtacgggtgtattactaaaactggtccggtattagttcacca\n\
+agggaggaattaggcaaaggatctaggtatgcaagtcggagtattacatccctaccctga\n\
+atccatcaataggttcctctgtactggccttcgcaatgagtattcaaggttgtacagccg\n\
+tataataataagatagtgactatgaacgggaagtaacccgctcaccttccccaaaacatt\n\
+gttatatctaagtattaaagtctgccgtagtgttaatactcgaaaataaacaactggcaa\n\
+attacaccgcacttaagccgcttttgatttatatttttccaatgcgcttttaaaaataat\n\
+tcagtcctacatactaattaagacccttaaacggagatatcacaagttaagttttaacca\n\
+tctcgactaggtggaactatagatacccaactcaatttatcattacctgtaatgttccta\n\
+gaaggattgcatttcatgtcaagacggtggagtttcacagcgaaacttcagtgtgaacag\n\
+attctgagaaatcacctaaacctattagtcagagcacccggttagaaccagttgtcaaaa\n\
+aatagagcggttgcatgagacagaagtaacgatgagatccgttgtaacgttgagacatct\n\
+ggcctatcgtcaatacagtcctcccttaaaaatatttttaaatactaggcaaacccaaca\n\
+taggttagtcctatgtgatacgccacatggtatatcattttgtaacgttacctagggata\n\
+atcaggaagtggaattacgcaaaagtagacagtgaaatgcttagggttatagtctagtcc\n\
+aaagataaaggataaagcacgtcagagaactatattagccgaatgggaatcattgttagg\n\
+agactgtggatcatgtctaaaaagcaacgcagaaacagtcatcgaaaaaatctcgttttt\n\
+gtttgaatctaaaagagctttgatgaccgatagtacctgtatactagttactgtattacg\n\
+tgtctaatgatttcggattggggtccccagaatcagacgtcattgtagacgattcaagtt\n\
+taccaatttaatttcccagctctccttggagaactatcgccaataattgcagtcactttc\n\
+cttttctgaaacgataaagccgtcagagttctctgcaacgttggacttacctgaggttct\n\
+aacccactttcggttctaatagtagttaacgacacaacgaataacctttactgtggggct\n\
+ttcacgatattttttcgcttattattaatggttacgtcataagctggtgtccaaattaag\n\
+gttaccggcttcgcagagtagttgtatccaagtataacttccctaatcataagatcgagg\n\
+tagaaaattaatgctgtctctaaccgaacagatatgtcccactatgtggtatggacgttg\n\
+ctaattacttctgaagggaaattggtcattatggatacgtgtctaccatcaggtcggacg\n\
+cagatatggttctgtcttcagttgatccaccgttctttataggataataactgacgatta\n\
+aagattatggtaaatagattaagccaattctcttcttgtcagtgaagcatccttaactga\n\
+cttgctctgcagcccctcatacatttagctattcaaagtaccggctcgtttcaaactctc\n\
+ccacctttggaagaggttgtcaacttgataagtatatcatttacagcattttttcggacg\n\
+tacctctaatgtttcattgcagaaaattagttttttctatcgcacattttgcaagtaacg\n\
+ttagagacacaattatctgcgaatgaactgctagatctgacgaccgggagcctcgcaaat\n\
+atcaaaaaagactgacatatatcaaggagtcgttgacaagtgctggtaagtcaattggtt\n\
+tatctgtcccggcgtttcgatcttaagctgaccatgcacggcagagtaatgtcactctcg\n\
+ttcttacaagtctgtctccaagggtcggcaaaaaagacccctccattctcgagcccactc\n\
+acgatatgtagggacgacaacttgtgcggcttatgaattgtctggactgcgggcgagggt\n\
+ccatatctccgaagttagaagggacatacctttagatgataagatcaattcttattgacg\n\
+aaattcatccacaacggggaacaacttcaccctagacttacgtctgaaaagacacctagc\n\
+gtcttataaaaggtcagtgccccgtttcgtaaggctggaattacctacgcaaacttaaac\n\
+ctcgcgcccttccttacgtatcgacaagatagaggctatcgcgaatgtactacggaggca\n\
+tgaatcatatactagaaccaagtgcctgtgatattaacaagatgatccgacgcgagcacc\n\
+gtaattctaggcataaaactccagcaatttgggggccgaaaacaaatgacgttagctaat\n\
+taattatatgacatgatcaaaggaggtcaatcacgcatcgagttcgacgtatattcattg\n\
+aacttcgtgcgtttgaaagaaacttttatgaaggcaaaattgatcctgtctcctatttca\n\
+tgcgtacctcctagttgataattccccgagcagtggttaggacacttttgtcggtatcaa\n\
+gttccggtctcaaaacgtaaaattctgtaatctgtatggatggtctgtgaattagttaat\n\
+ttttatgaagtcgtcgagacgcagttcctattgatttattctaaacggagatgtgcttcg\n\
+tgggactcggaagtagatctgtgtttatgattattgctactttagatgctgactgttaac\n\
+tccgtgttgtttttcaaccgtatatcacaaccgaattggatagaacctatagtttcaagt\n\
+tctgccacaaggtatcatatttacagttagtgctggttgcttctttcaaacgtggtgagt\n\
+ttgtgctatcacgtcaacggtagagctcagtggaccgagtgcgcgttcaaccctgttcca\n\
+gagagggtgtgatagcacatataccacgctcgtcgaggcgttcatgatagtttgcaagag\n\
+ccggtgttaaacacatattattattgttatccaactaatcggacctatgcataaagcatt\n\
+gtctaaacagaataattgcctatatacggtagttttagtgatttatatcttagtatcagt\n\
+tagagcttcgaactcttcaggttcctcatatttaacgttcttcgaaagcgaaaacttcta\n\
+caaacgaatgtaagcggttttccaagtagtacctataaatcacagaaagatctgtctcag\n\
+tatagttgaaatggtattcagctagtgacgtgtaccaattatcatagttcactcaagcaa\n\
+gacgctcattaacgaatatagacaagacactatatcatataataaaaaagaacatggtgc\n\
+tcgaacatagttgaattcaccatattgaaggggaatgctgacatgtaattcgctactaga\n\
+cgatcaattccctacttgtcaaagttgaactggtacgttcttggaattaaatatgattgc\n\
+gctggaccaaattgcgacttcttgagtttcagggcaaacgattgagccggaggatgtccg\n\
+tctcttacctttcttgcttatgataaacgacggtccctgtacatcactgggaattctcag\n\
+caaaaataattgggtaaatcgagactcgatgtattcggccacaaaggtgttagacgttaa\n\
+agattattcaacggggcgataataggatcataaccggtatgcaagcgcattgaaagagcc\n\
+atgagatccttatccgataaacgctgcacggtatgtgcagccttattgtcgatcacgaat\n\
+ttataaatgtagtctgggctgtaagttgaagacctaagttataatgaagtgcaataccaa\n\
+atcgattcatagtggattatcagactcaagatatctcctgataaattacagttgttaaga\n\
+tacggataaaatgagatttaagattagcagcctctaatctgtttcaatcccgttggaatg\n\
+tggtatgcgatcaaggttaagttaaaatcaagcctgtcttcagtcttgattcttgttctg\n\
+ccatcgcatgcggtctacgtgagttaatatgtagcttacgttctagcttgtgctaatctg\n\
+agtatagattcgtagaggaatattatcaagcttccacgcctcaacgtacgtgtattggtc\n\
+acacaagacactaaaagtggaagtagcgtaaactatagtctagttgttaaatgctcagtt\n\
+cttgttatattcgatatactcttggctaatttatgtctgagtatataaaattaatgatat\n\
+taacttgcatttcacggatcccttagaaaaagattttgaccgagcgcattataaacggtt\n\
+acaccgaatcaatagaagcatacccaatagctttctttgaatttattgcctgcgcaactt\n\
+ggctgactctctagatccgaataattctatatggtcgtgacgaaactagttcattactgt\n\
+ttaaaatgccaacatgtcttttgggccgataatggctctttgcaaaattactcaatgata\n\
+cgattgatcaaagcggtagttgctagtggtagcatgtaagtctatcaaatgtctgattat\n\
+ccgaaaatcttccaaaagagtccacgtaccatatctatctcatagcgacgcgaggggaac\n\
+cttatctaactatcattccatttaccgggtgactctcgatgcaggatccgattgggataa\n\
+attgcccagaaatggctcattcctgactaagggtaaggccgttctcagcaagggaacccc\n\
+gcgaatctaggcttataccatctagattgttaactacttgcctgtagttctacagccata\n\
+ctggacagttgtttctaaatgatcgggattcatgctagcactcctctgaatgcaccgcgt\n\
+aagtttaactattacgtccgtgggcagataaggatggaggctgtatgtatcttaactgtt\n\
+acctaatatggctggtaattatcaaagtaaggaccttaatgccatagcgctagcaatcgc\n\
+tttgtatactgaccatgtgccaacctctcttaatctgtaaaatataatgtcttagctaac\n\
+tgtggacgatcatgtctctgcctagagcttcgctgtatcaattcctatagccagcgtact\n\
+agtgacacaacaacaccgtgtgagaaaagatattagtccttacgtctgtctctctacagc\n\
+ttattgatgaggattgaacatggacatatagctccccctcaaaagcagatgctacctctt\n\
+tattccattctcgaacatttgccgaacttaatttcgacaaacctgaggtcacgtcttaat\n\
+ttatcggtaacgtcacgtccctttgagactggataaatatattaccaggggccaacgagc\n\
+aattgttggaggcgcttctataatacaaggtgtcttgtcaaagaaagacggcgtgcgtct\n\
+cgtgcaactcacttaaccaatattaatgtgaaacccccctctctcacatcttatgcggtg\n\
+tactgccctggtacatttcctgtacaggactccaacagtgtagattcctaagatagctgt\n\
+tggagttgcctcacgccagatcgaaaaactgaataaactagtgagctgagctgcagaaat\n\
+accgcttaattacttatgactagttcaaagggacctacgtgatgtcagacattgcaagga\n\
+agaaattaggtttgtgcgtcattttggctggactagcactccttacttcccctactattc\n\
+aaatgtcgtaaacagcatgagacaggatcgtgctgacatttaaggtctattgggaacgag\n\
+gctacctttggtcgcgcgctcgcgttctccgaatgaccgaaatgcatgagcacagtatgc\n\
+aattgcttatagatctaaggtctggtcgttgaaaccaagcacgtaggcctgggaaatcag\n\
+ttcttcctcagcaactacacaaaagcgtccaagcattagtacttgtagtaaatgtccgaa\n\
+cctatgcgctcatttgaaagtcaaaaaatatttttaagcagtaggcacctaacccgattc\n\
+ctctacttagtagctttctttgattctcagaattgactgcaatatcactgcacaattctg\n\
+tgccattactagacttctctgtattaacgtctcatcttactaacactcgcctaggacaca\n\
+tctgagagtgaagtatttcaatacatttactgaaatcttcagttctaaaatccccgaata\n\
+aggctcttatcggtttggccaacacaagaaaaaaacttcttgcaccactcaccttcatac\n\
+gcaggagcctggggaacttagtaataactatttcggcagacaaagcttataacaagttgc\n\
+cggcgcgtataatatttaaaagaccccttgagctgctcaattaaaacgctcacctggtat\n\
+aggctattagatagtgccgtcttagtaaggggcgggaattatcggataaactgatatttt\n\
+gataaaataaccgacttgttcacgacataagtcactaaggagattttatctttctccaaa\n\
+gtatatcttccttggataatttcaaagcgctgcaatttaagttctgttactagtttatgc\n\
+tgctgggaggtgaccggaaggcgtagtaatctagaggcaaattataagaagttcatcata\n\
+tcattttcgactacaaaaacaaggtgttgtatgccggcgcattgtgtaaactggacgagt\n\
+accctagatggaaaattatacgttaagccaagatttcgatgtaatgataattacctacac\n\
+atttttgctatccataggaacaagagctgttctataggctcgtggcatacgaacatttgc\n\
+tgccgctatgaatattggaagctcttcaactacagactctattcttaattgccgtcgaaa\n\
+atgggccgaatcggctattattaatactcggtttttccgaggggattgttgtcgacagtc\n\
+gtaattattattaatattgatgttggtgaggtcatttaaatacaaccttgcagacaatga\n\
+ataagggatccaatctctcatactccttttacaattgctcatgcccctatgcaaacctta\n\
+tgccgccacacctccgcaactctctcttctgaactgtaagtagcttcattactggtttga\n\
+gactatactgaagctgatgacattctaaaatggctattttcgaatgtgattcataatgtt\n\
+tatcgtttgggatggcagaatcacgttatttttgatatagcccgggtattctattgtata\n\
+gaacgtatgctacaagtcattccccgaagaagactagaagtaaacaacatgcgaccatcg\n\
+ttaagccacgcaaggctgtagctttatttcccgataacctatcttccataaatagcggac\n\
+agcaggatactgacgctcaacatcagtggttatggtctaatttttaacttttaataaggt\n\
+aacttcagcaggcatacacagtaactctttaatttataatcaaattagaagtctgacact\n\
+tcttatatttttctatcatccaacgcgatcgcccattagcttattgtgttactaataacg\n\
+tatctaaaccaatccttttcaagctactgcctatattgtcaatatatacaaacaacagga\n\
+tagtaggctgcttaaaaaatattgtcaaccgtgtacgctttacaatacccggaaatcaca\n\
+aactttgtagacaacgagtgaaatttatacactacgaagggccagcgtacaagacccatg\n\
+aattaggcgatatgtttattctgacatattggtttatccttaatctgtcgctgtaaaatg\n\
+aagccgcccccatccctgcgaattttttttcgaagattcacgactgaaatataaatacgt\n\
+ttggctatatttatgttggagggaggcaatagcctttactgttaaccgaagatttagcca\n\
+gtgagtgtgacactaaaacactggaataaatgcaggcgttcttctgggtaaaaggtttag\n\
+tcaatctcgcctataagttcatatagctctggatataattatctggcccatgcatttatc\n\
+atggcgcttggtgccctgtgtgaagccggcctctcatattgaaggtccgaagtattccat\n\
+gtacattaagatcactctctcattcatgcatcttggcttaacaaatctggttgtccaagc\n\
+tttccaggcacgtatggtacaaattcggatcgaatacttataaaaatgatatgttaaact\n\
+gtctaaaacgctcatctacaaagtaaagtgcactaaccaatagagtctcaagaccgtgta\n\
+atgctggtgcactgaatgtgtaatacggttagaagggattagttatgttacaaatccatt\n\
+gaaaacttaagaagcattgcgtgctcggagggtgcatcttttatcaagagactaacatta\n\
+ttttcaacgacgtacatgctttacaatagggtacttatcaaacgccgagaaacgcgccta\n\
+tagtgatgttatgattatgacccgatatccattggaccgaattttatgtaggttcccagc\n\
+gtactcgcgtaatatctcggtattgccataatgtaatacttgtcggtctctcccagatga\n\
+aaaagcgttacagagtatttcaatgaaaaacagcgcgcaacgtcaatacctttaggggta\n\
+acggccgctgatttcatatagatatacgataagttggtatagctctactaggtggcatcc\n\
+acaatcgttgcatttactatagctggttacaatcataatctataccgttccttacatact\n\
+accatagcgggatagcgtttttttgccgttgattgggtttaagaggatgtcagtctcatt\n\
+atatccgattcggtgggagagccgttgttttcaaatcgcacactttgtgacataatgtac\n\
+aagataacaaaactgatataagatataaactgtcaatatcaccttgacacttgaatcaaa\n\
+gtaaattaactcgcaaatataatttgactaattgggtgcagatttctcaattaataaaaa\n\
+aatggcaccggatgggcttacaagccccttatcattcacttgtatcatgatttccaagaa\n\
+caatagaatttgctagcaagtatgaacagagattcgaattgcatccacagtacgccggag\n\
+cgtttattttaatgtggatatgacgatgtactgttggcggcatttgctagtaaccggtcc\n\
+ttatttacgtagcgcacacgtaagcatgtctgggagaaatatggtggtacaatctcagag\n\
+aaagattacagtttggtttaaataggacttatcgggtcggaagtggaacttaataagcag\n\
+tacacaattgggcaacagacgtcttgcctattacaataggattacaatgcgttagatttc\n\
+agacacgttcgtgtttggctattcgtcaattccctaaatagttagacgatcaactattat\n\
+caaagtgattctttgttcatcctccattcatgtaacagatggcacactacgcataacgcc\n\
+gaggaattttaacgagatttaagagagcagttcgggcacaacccacttgactttataaca\n\
+gctcggcagcataaacggtaatatgtgacaaatttccaaacgttataagaacgtatgtgt\n\
+acttagaaaactaagtggttcatgttcaacagatgtgacgcagcaagcctaacttatcta\n\
+ttggttttgctataaaagaacaaagttacacagaatcctaagggcttgtttcacacttat\n\
+gcctagtgcttcaccatcttaaaatagcgaaaccggcacgaatcaaaccttaaaacaatg\n\
+cgcagatattggtgatggtgactccgggtatgataatggtaactgttgaccagcgcccac\n\
+ctcatcgaagtatagaaagtggttaggataaggatgagaccgaacttatttccggccata\n\
+actttagattttctacctagtacacaacatcagggcggacacgaaaccgccatcacatca\n\
+tataccaggtttaatttgcttaatgggggaagtgtcaacgaaccttcgaactttagcagg\n\
+catatggccattatatatggccccagagcagaatgctacagcagacaaaatttggattta\n\
+tgtagtttaatacctatcaaacttggtgtgaccatacttgtctaacgacagtgcacaaag\n\
+tgtaagttacaattattactactcagcagcttctgcaatgataaaatcttatcatacacg\n\
+tcacatatgataatatctacttagggggaacgggctccacaacctacatagtactcaata\n\
+cttacactattcgacaggcacaccaaacctgtacagtcccaaaagattgagtcaactttg\n\
+cagtactgcagatcacagtaatagcttagttagcgagtcaaaattagttttctacgagac\n\
+tgcacgaccgtgcaaatttccgatgtgttggctacaaatagcaacgtatgaatttgtttg\n\
+aagccacgtaaactgtacaaccttagagataagtctcaggctactaaaaacacgttgtgg\n\
+cactaacaggatcatggttgattcttacttattcggctgaccggcccaataagtaacctt\n\
+caactagaacagaataatcgggagtagtttaattcagtcaaggtgcaggtctcattgtaa\n\
+ctaacaagctctgtgtaaccaagttaaaatcgttttcttagcggattccctacttatgga\n\
+tttgagctcgtccacaatattcgatacaagaagtttgtggtccgtaacaacgaaatttta\n\
+attacgctgtgcagcctcatccaaggaattaatagaaggttgatggtaggctccgaacgc\n\
+tccatgattataatcaagtggactgtgcagtaaacgaggaaggtatcctgacgtcgtggt\n\
+gttcgtttttgttatttgtgccctatacgagtagataaaccatgaacagcacagtgtgaa\n\
+cccatggttgattttaggctaccttatttttaatttccgttacacagaaacgaattccac\n\
+aactaacatgccattaatttttcgatatcttataaaagatggtcgaaattcattcattta\n\
+ttttttttcggttctcgaaagtcaactaagctgtcgcgttttgtttctctttagaggtaa\n\
+aagtggctttgatctcctacgtttggatactagtcaaccattactccatttgatccgtga\n\
+gtatcacctgtctaacatccagcattatgactcctcggcgaagaaaagacacacttctta\n\
+gagtcgatgtgtattagctagggacacagttgtttaatacgatagtgagcccagggaggg\n\
+cagtgcgtcccccagtagatttattcagctagtgtaagtataagatatctcacccacgag\n\
+gttcaagtgatatgcagtcttagaataatacttatcctgaatttcgatattatgggtact\n\
+tcaataatccgctagcgctactttatgtctcgttggacagcaggacacatggcagtctta\n\
+aacactaaagacatcacctgaatgaatgtaatgggattacaagaatcaatgaggtattat\n\
+atacgacgtaggaaactctggatatatacagtaatctagttacgccatcgcacttcattc\n\
+ctctggaaacttagaagacatcagctgtacgtggaggaaccagacccccgtatgtagcca\n\
+aatagaaccaaagttgcttatacaaacacacccaatgacaatggaccgctggagttcgta\n\
+aactcggaacgtagtactgcacaaacccagcatttagcaataggagctacgtatgcaact\n\
+cccacgtggtaataccttcaagctatcaatatataggtgcctagctaatcgcattcgcaa\n\
+gcagtattcaagcttgtaaaccagtataataattacagaggctctatgaaacccaacttt\n\
+ccagctaaaagtcccaattaaatggttatttcgtacttttaaagtcgcccgttctgttat\n\
+tacgcgaattgattctactccaaaattaaacacaaattatcaaccgtttcatttatattt\n\
+gtcaatgcagctgtttaaaataaggctctactaaattataattaagacacttattaccag\n\
+atttctctagttaagtttgaaccagctcgactaccgcgaaagatacattcccttctctat\n\
+ttttcagttcatctatgggtcagagaagcattgaatttattctattcaccctcgtcgttc\n\
+acagcgaatcgtcagtgtgatcagtgtatgagaaatatcctaaaccgtttagtcagacca\n\
+cacgcttagaacaagtggtctaaaaagactgccctggaaggagtaagaagtatacagctg\n\
+atccggtgtatccttcagtcatctgccctatactaattacacgacgcaaggaaaaatagg\n\
+tttattttctaggcaaacccttcataggtgactccgatgtgttacgaatcatgcttgaga\n\
+atgtgctatcgttaccgacggataataacgatctccaatgaaccaaatgtagaatgtcta\n\
+ttgattacccttttactattcgacttagagataggagatagaacctcagtgtactttttt\n\
+agccgaatgggaatctttgggaggtgaatggccataaggtcgtaaatccaaccctcttaa\n\
+agtcttccatattatatcgttgttcgtggaatcgataacagatttgttgacccatagtaa\n\
+atgtatactagtttatgttgtaagtgtagattgttttccgattgccgtccaaactttatg\n\
+tcgtaattgtagaccagtaaagttgaccaaggtaagtgcccagcgatcctgcgagatcga\n\
+tcgccaatttttccagtcactgtaagtgtaggtttagataaagccgtatgagttatatca\n\
+taagggcctcggaaagcagcttcgaaccaaagttcccttataatagtagtttaactataa\n\
+aagtatatactggtctgtcgccctttcacgatttgttttaccggtttatgaagcgttacg\n\
+tcattagagcggctccaatttaaggttaacggcttccatgtgtagttgtatacaaggata\n\
+acttaaagtatctgttcagcgagctagttaagttatcctcgatagaacacaactcagagg\n\
+tcccaagatcgggtttgcaacttgctaatttattctcaaggcaaattgggaattatcgat\n\
+acctgtataccataaggtcgctcgatgtgatgcttatgtcttctggtgatcctaccttag\n\
+ttagtgctgattaacggaacattaatgtttatcgttttgagatttagccaattctctgat\n\
+tctaactcaagatgccttatctgacgtgctatgcagcccctaagtattttacattgtaat\n\
+aggacacgctcctttaaaactcgccaaaaggtcgttgtggttctctactggttaactata\n\
+taatttacagctttgttgagctagttcctctttggtttaagtcctcaatattagttggtt\n\
+cgagcgataagttggctagttaccttagtcactatattagatccgaatgttatgcttcat\n\
+ctgaagaccgccaccctccaaaatttcttttaagactcacttattgcaaggtgtaggtga\n\
+attcggctcgtttctcaagtggtgtatctgtacacgagtttccatattttcatcaacagc\n\
+caccgcacacttatgtcactctaggtattaaaagtcgctctacaaggggacgcaattaag\n\
+aaacagacatgctagtcaaaaataaacatagcgaggcaccactaattcggccgcttatca\n\
+atgggatgctctgcgcgagacgcgccagagctcagtagttagttcggacatacatttact\n\
+tcagatgatcaattagttttctacaaatgcttactctaccccgaaaaaagtcaccagact\n\
+cttacgtctctttagtatccttccgtcttatataaggtcagtcccccgtttcggtaccct\n\
+ggaatttactaagaataatgaaacagcccccaaggacgtacgtttacaaatgatagacca\n\
+gatcgcctagcttattccgacgcatgttgcatagaattgaaccaacggaatgtgagagta\n\
+actagatgagccgaccacagcacccgtttgcgtcgcagaatacgcctgatagttcggcca\n\
+cgaaatcatatgtcctttgagtattaagtatttgtaatgatcaatcgagctcaagcaagc\n\
+ttacacttcctcggatattcagggaacttagtgcctttgaaagatacgttgatcaacgaa\n\
+aaattgataatggctcatatggaatgcctacctcatagtgctgaattaacacagcactgc\n\
+ggacctaacttttcgaggtttcaagttcacgtctcaaaacctaataggctggaatatgta\n\
+gggatcctcggtgaatttgtgattgggtttgttgtagtactgaccaagtgaatattcttt\n\
+ttttctaaaagcagatctgctgccgggcactacgaaggagatctctgtgtatcattattg\n\
+cttcttgacatgatgactcttaaatcactgtgggtgtgcaaaacgatagcacaacccaat\n\
+tcgatagtacatattgttgatacttcgcactaaaccgttcatatttaaaggttgtgctcc\n\
+ttccttcgttaaatactggtgacttggtcctatctactattagctagacctctggggaac\n\
+cacgcccccgtaaaacctgtgcaagagagggggtcatacatcttagacatcgcgcctcca\n\
+ccagggaagcattgggtgattgaccaggtgtgtaacaaatatgattattcttatactaat\n\
+attagcaaagatgcataatgatttgtattaaatgtataattgaattgataagggtctttt\n\
+agtcagtgatagagtagtataaggtagacattagaactcttaaccggacgcagatttttc\n\
+ggtcttagtaagccaattagtcgacaaaacaaggtaagagcggttactagtagtacctat\n\
+aatgcactgaatcttcggtcgaagtatagttctaatgctatgcagattgtgacggcgaca\n\
+aatgttcagacttatatcatgaaacaagctcttgtaagtattgacaaatgaaaagattga\n\
+atatttttaaatacaaaatgcgcctacttattaggggaattaaccagattgaaggccaat\n\
+cctcacatgtaatgagataatagacgataaatgaaattcttgtaatagttgaactgctac\n\
+gtgatgggtattatatatgattgagatcctccaattgccgacgtcttgtcttgatgccca\n\
+aaagattgtcaacgaggagctccctcgcgtacctgtcgtccgtatcataaacgacgcgac\n\
+atgtacagcactccgaagtataagcaataataatgcgggtaatccagactagatcttttc\n\
+ggactcaatgcggtttcacggtaaacatgattaataccggagagtagtcgagcttatcag\n\
+cgatgcaagcgaattcattgtgccaggagatacgttgcagataaaaccggcaacgtatgt\n\
+caacaagttttggcgatctcgttgtttgtattcgacgaggcgcgggaacttcaagaacta\n\
+tcgtatattcaagtccattaccttttagtttcagactggtggagctgactaaagttatat\n\
+catcattttgtacactggtttagttaacgataatttcagatttaacatgaccagacgata\n\
+atcgctgtatatccagttggaatgtggtttgccagaaaggttaacttataatcaagcctc\n\
+tcttcagtcttgattcgtcgtatcccatccattgcgctatacctcagtgtatttggagct\n\
+gtagttataccgtgtgctaagatcagtagacatgacgagagcaatattatctaccttaca\n\
+agcatcaacggacgtctagtcggaacaaaagactctaaaactcgaacttcaggttaatat\n\
+actatagttctgtattcagcagttattcttatattcgatattatcttgcctattggatgt\n\
+ctgactttagtatattaatcatagtatctgccatgtaaaggtgccagtactaaatctgtt\n\
+tcacagtgcgaattataaacggttacaaccattaaagacaacaagaccctatagctttat\n\
+ttgaattttgtcaatgcgcaacttggagctcgcgatacatcccaattagtctatagggtc\n\
+gggacgattctacggcatttctggttataatgacaacatggattgtggcccgagaatcgc\n\
+tctttcattaattaagcaatcattacagtcttataagcgctacttccgagtggtagcagg\n\
+taactcgatataaggtcgcatgagccgaatagcttaaaaaacaggccaccgaacattgat\n\
+agagaataccgaccacagcgcaacctttgattactttcattaaattgtacggctcactcg\n\
+acatcaagcttaagattgcgataatgtgaactcaaatggatcagtactgaagaaccgtaa\n\
+cccacttcgcagaaagcgtacccagagaagatacgctgttacaatatacagggtgaaatt\n\
+attgcctgttcttcgtaaccatttcgccaaacttggttagaaatgatagccattcatgat\n\
+agaaataagctgaatgataccagtatctttaactatgtagtcagggggaagataacgatg\n\
+gtccatgtatgtttctgatatgtgacagtattggccgcgtaatttgctaacgaagctact\n\
+taatgcctttgagcttcatatagatttctttaatcaaaatcggcaaaaagatagtatgag\n\
+ctataatatatgctagtagagaactctggaccatcatctatatgaatactgattcgagcg\n\
+tgcaattactttagcctgcgtactactgactctacaaaacactctgagataagtttgtag\n\
+tcagtaagtcgctctctataaaccttttggatgaccattgtacagccacttatagatccc\n\
+aataaatagcacaggagacagagtttttcaatgctcgatcatttgccgatagtattttcg\n\
+tctaacctcagggcacctattatttgatacctaacctaacggccctttcacaatggagaa\n\
+atatatgacatcgggacaaacacaaatggtgggtggccaggagatatgacatggtggcgt\n\
+ctctaagaaacacggactccctctaggcaaactcacgtaaccaattttaatgtcaaacaa\n\
+aacgctcgaaaagattttgccgtgtaatgacctggtacattgactggtcaggaatacatc\n\
+actgtagttgccgtagtgtcctgttggtgttccatcaagacacatcgtataacgcaattt\n\
+acgacggacatcagatcaagttatacagattatttaagtatcacgtgtgcattgggacat\n\
+aagggatctcacacatgccttggaacatttttgctttgtgccgctttttcgctgcactac\n\
+caatccttacttaccagtatattcaaaggtcgttaacagaatgagaaaggttagggctct\n\
+aagttatcgtcgattgggatagacgagacatttgcgagcgccctccacggatacgaatct\n\
+cccatatcaatgtgaactggatgctatgcagtttagttcttacgtctcctagtggtaaaa\n\
+atcaaagtagcactcgcatagcagttattcagaacctaatacacaaaaccgtcaaacatt\n\
+ttctaattctaggtatgggccgatcataggagctaaggtgaaactcataaatgttttgtt\n\
+agatctagcatcctaaaaagatgcatatactgagtagctggcgtgcattctctcaattgt\n\
+atcctttttaactgaactagtcggtcccatttcgtgactgagatctattaaccgataaga\n\
+ttaataacactcgcattcgtatcagctcagagtgaagtttttcaataatttgactgatat\n\
+attaacttctaaaataaccctttaagcctcggatccgtttcccaatcacatcaaaaattc\n\
+ttattccaactatctacggattaacaacgtgcatggggatcgtagtaagaacttgttccg\n\
+atcactttgagtatatcaagttgacggcccggttattattgaatagaaacattcacctgc\n\
+taaattaaataccgcacatcggatacccgatttcagagggccgtcttactaagggcaggc\n\
+tttgttcggtttaactgagatgttcattattttacagtatgcttcaactaatatgtaacg\n\
+aaggacagtggatctgtctccatagtagatcttcagtcgtgaatttcataccgctcctat\n\
+ttaagttcgcgttcgagttgttgatcatggcacgtgaaagcaacccctagtattctagac\n\
+gaaaattttttctagttcatctgataatttgccaattcaaaaacaaccgctggtttcccg\n\
+gcgcattctctaaaatggaagtcgaacctagagccattatttgtcggtaacccatgagtt\n\
+ccttcttttcagaagttaatacactgtggtcctatacagaggaaaaacagcggttatata\n\
+cgatcgtggcataacaacattggatcaagatagcaatttggctacctattctaattctca\n\
+ctagattcggtattccactacaatatcggcagattaggattggatgaataatcggtgttt\n\
+aagtccggttgcgtctccaatctcctaatttttattaatattgatcttggtgacctattg\n\
+taaataaaaacttcaagactttgaataacggtgaaaagatagaagactcatttgaaaatg\n\
+gatcatccacagatccaaacattagcaagacactaatccccaactagctattctgatcgc\n\
+gatcgtgctgcagtactcctgtcacaatagtctgttcatgatctaattctttttgggctt\n\
+tgttcgatggtgattcagaatctttatccggtcgcttccctgtagctactttgtggggat\n\
+attgcccggggattatagggttgagatcgtttcctaaaagtatttaaaccaagtagactt\n\
+caactaaactacatcagaacatcgtgaagacaccatacgcggtacctttatttaccgata\n\
+acatttcttcaagaaataccggtaagcagcataatgaccctaaacagctcggggtatcgt\n\
+cgtagttttaaattttatttaggttactgctcaaggaataaaaactaactatttaattta\n\
+taataatattacaaggctcacactgattagatttgtctataagacttcgcgatcccccat\n\
+taccggattgtcttaagaataaactagataaaccatgcattttctagataaggcctttag\n\
+tctaattagatacaaaaaacacgatagttgcatccttaatttattgtgtcaaacctggaa\n\
+ccttttaattacccgcaaatcactttatgtcgagactacctctgaaatttattatctacc\n\
+taccgcatgaggacttgaaccatcttgtaggagttatgtttattagctaagattcgttta\n\
+tcctgtagcggtccatgtatattcaacaagcaaaaagcactcagaattgtttttagttga\n\
+gtcaagactgatatataaataagtttccctagttttttcgtggtgggacgatattgaatt\n\
+gaatcttaaccgaagagtttcccactctgtcgcacaataatacacgccaatatttccagc\n\
+cctgcttatgccttaatcggttactcaatctcccattgaagttcattttgatctgcatag\n\
+aagtttcgggcccagccttttttctgccaccttcctccaagctctgtagacgcactctaa\n\
+gattgatgctcacatgtattaattctacattaacataaatatataagtcatgcatcttcg\n\
+agtaaaatatctggttctccaacatgtcctggcacgtatcgttataatgcccatacatgt\n\
+agtattaaaatgattgggttaactggatattaagatcatcgaaattgtaaagtcaaatta\n\
+acaatactgtctcaagaccgtgtattcctcgtgctcggaagggctattacgcttacttcc\n\
+gttttggtatcttaatatgactttcaaaaattaagttgcagtgagtcctacctgcgtgca\n\
+tcggttagcaagagtataaaagttgtttaaacgaactacttgctttacaataccggtcgt\n\
+atatatcgccgtgaatccagaagattgtcttctttggattatcaaccgagatcctgtgga\n\
+ccgatgttttgggaccttcacagaggactccaggtagagctcgcttttgcattaatctaa\n\
+gaattgtacctctctaaaagatctaaaacagtgaatgtgtatttcatggaaaaacacaga\n\
+gaaacgtaaattactttaggccgaaaggcacatgagttattatacatatacgagatggtg\n\
+gtatacatcgaattcggggcatacactatagttgcattgtatttagctgctttaaataat\n\
+atgatattaccttccttacataagacattaccggcataccctggttttcaacttgtgggg\n\
+ctttttgacgatcgcactctcatttgatccgagtagggcggtgacccctgcttttcaaat\n\
+acaaaaatttcgctatgaaggtaatagattacttttcgctgttatgatagaaacggtaaa\n\
+tttaaaattgaaacttctagaaaagtaaagtaacgagaaatgattttgtgaataatgcgg\n\
+tcatgattgcgcaagtaagaaaaaaaggcaaaaggatgcgcggaatagaaacttatcagt\n\
+cacgggtatcttgatttcattcttcttgtcaattgccgacataggatgaaatcagattcc\n\
+aatgcaatacacagtaacccccacccttgattgtaatgtcgatttgaagttgtacgcgtc\n\
+gacgaagtggatagtatacgggccttttgtacggtgcgatcaactatgaatctcggcgag\n\
+ttagatggtcgtacaatctcacacatagaggtcacttgcctgtaatgacgaattttcggc\n\
+taggtactcgaactttattagaagtaaaaatgtgggcaaaagaaggattccattttacaa\n\
+gacgattacaatgagttacatgtctctcaacgtagtctttccctagtagtctttgaacta\n\
+tttaggtactccagaaaattttagcaaagggtttctgtgtgaatccgccattcatgttta\n\
+tgatggaacaataagaataacgccctcgtatgttatcgacagtgaagtcagcagttcggc\n\
+caaaaacatattcaatttagtacagatccccagaagttaagctaagtgctctaaaatggc\n\
+ctaaacggttatcaaagtaggtctaattactatactaacgggtgcatcgtaataactgct\n\
+gtcgatgcaacactatatgatagtgtcgttttgctatatatgtacaatgtgacaaagaag\n\
+ccttagcgattcttgcaaacttaggacttcggattctcaatcttaaatgtccgaaaacgc\n\
+aaagattcaaaaatttaatctatgagcagatatgcctgatggtgactacgcgtatgttaa\n\
+ggctaaatgttgacaaccgcacacataatcgaactattgatagtcgggagcataaccagg\n\
+tgaacgtactttgttcacgacatttattgacatgttctaaatacgtctcaaaatcacggc\n\
+gcactagaaaacgcaatcaaatcattgtcctggtttaagggccgtaatgccggtagtgtc\n\
+aaacttcatgagaactttagctggcttttggccagtatttagggaccaagagcactagcc\n\
+ttaagctgaatattttgccatttatctactgttataactttaaaacttggtggcaccaga\n\
+cttgtcgatacacacgcatcaatctgtaacgtaaaaggtttactaagaacaagcgtagga\n\
+attgagtttatattatatttaaactaaaagatgatattagcttctgagggcgatagggct\n\
+ccaaatcataaagaggaatatattattacacgattagaaacccacaacatacctcgaatc\n\
+gcccaaaagtttgacgaaacttggcagtactccacatctcagtaatacagttgggagagt\n\
+ctcaaatgttgttttattactcaatgaaccaccctcataatttcactgctgttccattaa\n\
+atttgcaaacgatcatttgctttgaagaaacgtaaaatcgacaaaattacagataagtag\n\
+atgcataataaaaaaaactgctcgctataacacgatcatcgtgcattcttacttaggagc\n\
+atcacccgcacaataacgtaccttaaactacaacactattagaccgagtactgtaattca\n\
+cgaaagctcaagctcgcattgtaaagaacttgctctctcgtaaaatgtgataatagtttg\n\
+cggagaggattcaattattttccattgcacctactccactagattcgataaaagaaggtg\n\
+gtcctcccttaaaaagaaatgttaagtaacatcggaaccataagcaaagcatgtaagtga\n\
+accgtcatccttccctaagaaacataaaggtttttaataatgtcgactgtgaactataac\n\
+tgcatcctttcctgacctactccggttccttgttgttatttctgaacgagaccagtagat\n\
+aaacaatgtaaaccacagtgggtaccaatggtgcatgtgacgctaccgttgttttaagtg\n\
+cccgtacaaacataagaagtcataatcttacttgaaattaattttgccttttattttttt\n\
+tcaggctcgaaattaatgatttgttttttttgaccttctagttacgctaatatgcggtcg\n\
+cctgtggtttctattgagtcctataacgggatgggatctaatacgtttggttactagtaa\n\
+acaaggtataaatttgataccggagtatcaactgtataacatcaagctttatgactcata\n\
+cgcgaagtaatgacacaaggctttcaggagatcgcgagtacagagccactaaggggtgta\n\
+ttacgatagtgacaccaccgagcgcactcactccccaagtagatttatgatcctacgcta\n\
+agtattagatatataaccaaagaggttctagtcagtgcaactcttagaataataattagc\n\
+cggttttgcctttttaggcctaatgcaatattcagctagcccttatgtatctcgcgttcc\n\
+acagcaccactcatggcacgcgtttaaactaatcaaatataatctatgaatgttatgcca\n\
+gtacttgaataaatcaggttttttataagtccttgcatactctcgttatatactgttaga\n\
+gtcttaccccatagaaattctttcatctgcaaacttagaagaattctcagctacggggag\n\
+cataaagtccccaggatgttgacaaatacaacaaatgtggcttatacaaacactccatat\n\
+gaaaatcgaaccctcgtggtagttttagccgaaccttgtacggataaatccctccatttt\n\
+ccaatagcagatacctatcctactacctcgtggtattaaattaaagcttgaaatatagag\n\
+ctgcatagcttatccaattcccaagcacgagtctaccgtcgtaaccacgatttgatttac\n\
+agacgctagagcaaacccatctttaaacatataagtaaaaattaaagggtgagtgcgtac\n\
+gtgtttactagcaacttcgcttattaagacaattgtttataagccataattaaaaacata\n\
+tgttcaacaggttcattgatatttgtaattgcacaggtttttaataaggatctacgtaag\n\
+tataatgaacaaactttttaccagagttatattctgtactttgaaaatgctcctctaccg\n\
+ccttagagactttcaattagattttttgcagttaatctatgcgtaagtgaaccatgcaag\n\
+ggatgcgattcaaccgcctcgtgctaaccctatcgtctgtctcataactgtaggtctaat\n\
+ataattttcagttttcgaacacataaccctttgaaaatctgctatttaatgtctcacctg\n\
+catgcactatcttctatactgctcagaacggctatacgtcactatgctccaagtgacgat\n\
+ttaaacgaagcaaggaataataggtttattttagtgcaaaacaattaagtgcggactacg\n\
+tgctctttacaataagccttgtgattgggctataggttaagtcccatattaacgatctcc\n\
+aatgtacaaaatcgacaatcgctttgcattacccggttactagtcgaattacagatagct\n\
+gttagatactcactctaattttggacaacaatcccaatcttggggtcgtctatcgcctga\n\
+agctcgtaaatccttccatcttaaacgattacatattatagacttgttcggggtagagat\n\
+atcacagttgtgcaaacattgtaaatcgatactagtttatgttggtagtctagttgcttt\n\
+taccattccccgaaaaacttgatctactatttcgacaacagtaaacttgaactaggtaag\n\
+tgaaaacagagaatgcctcatagtgccactatttgtccactatatgtaagtgtagcttta\n\
+cataatccactatgactgagatcattacggcctaggaaagcagcgtagaaaaaaagggcc\n\
+cggatattacgactgtaactataaaactagttactggtagcgcgccatgtatagatttgt\n\
+tttaccggttgtggttgcgttaacgaatttcagccgcgaaaattgatccgttaaccagtc\n\
+catctcgacttctataaaacgataaagtaaagttgatgttcagcctccttcttatggttg\n\
+catcgagagtacactactcagtgggaaatagatcggggttcctacttcagattgtattat\n\
+ctaggcaattgccgattgtgccatacctggataaaataagctacctacatgtgatgctta\n\
+tctattatcgtcatactaccttagggtgtcctgttgaacgctacattaatctttagccgt\n\
+ttgagatgttccaatggataggagtctaacgcatgatgaagtttaggaaggcagagcatc\n\
+ccactaagtatgtgacagtgtatttcgaaacgagacgttataaatagaaaaaaggtcctt\n\
+ctggttctattctgctgaactattgaatggaaagattggttgacctacgtactatttgct\n\
+tgaagtcatcaatttgacggggtgagagacatatggtgcatactttacggactctatatt\n\
+ttagatcagaagcttagcagtcttctctacaccccctcacgacataattgcttttaagaa\n\
+tctatgtttgattcctctacgggaattcggatccgttcgcatgtgcggtttatctaaacc\n\
+aggggacatatgttcagctaaagcatacgaacactttgctaactagacgtatgtatagta\n\
+gctataaatcccgacgatatttacaaaaagaaatgagactcaaatatatacatagcgacc\n\
+ctacacttattcgcaccctgatctaggcgatcctagcacccacacccgaaagtgagcact\n\
+agtgtcttccgtattaaatttactgcagttgagattttagttgtctactaaggattactc\n\
+taacccgtaataaggatcaagactcggtactagctttactatcattccctatgtgttttc\n\
+ctaactcacaagggtacgtaccagcctatgtaattacaataatgataaagacacaaagga\n\
+agtaactttacaaatgagtctccagttacactagcttagtccctcccatcttgctttgaa\n\
+gtctaaatacgcaatctctgaggatatacagcagaagaacactcataacgttggagtcca\n\
+agaattagactcatagggcccccaacatttaatatgtactgtgagtttgaaggtgttcta\n\
+ttgttaattcctgctcttgatacatgacacgtactccgtgtttaaggcttcggactgact\n\
+ttctttcataagttgagcaacgaaaatttcagaatcgataagttggattcactaactaat\n\
+acggctgattgaaaactccactccggacctatatggtcgacctttatacgtaaccgatat\n\
+aaaacttataggctggtatatcgagccttcctagcgcaatttcggatggggtttcttcta\n\
+ctactcaacaacggaatagtctttgtttagtaaaccagagctcaggacgcccaatacgta\n\
+ggagagcgctgtggagcatgtgtcattatggactggagcactcttaaatcactctgcgtg\n\
+tgctaaacgatagatcataacatgtcctgagtaaattttcttgatacgtcgcaatatacc\n\
+gttattagttaaacgttctcatccgtcatgcgtgaaatacggctgtcgtgctcagatata\n\
+ctattagcgactcatctcgcctaacacgcacacgtataaactcggaatgactgccgctct\n\
+tacatattagaaatacagactacaccacggaagcattgggtcattctcaaccgctgtata\n\
+aaagatgattagtcttataataagattaccaaagaggcagaatcatgggtagtaaatcta\n\
+ttattcaagtgattaccgtcgtgtaggcagggagtgaggacgagatggtactcaggacaa\n\
+atattaaccggacgaagtggtttacgtcgtactttcactattagtagtaaatacaaggta\n\
+acaccggggaatagtactaaatataatgatatctatcttcgggagaacgagtcgtctatt\n\
+gctttgaacattctcaaggcgtaaaatgtgctgacttatagcatgatacaaccgattgtt\n\
+acttttgtctattcaaaagattgaatagttttttatacaaaagccgcatacttatgacgg\n\
+ctagtatacagtttcatcccctagcatcaatgctatggacagtattgaacttataggaaa\n\
+ttcttctaatagggcaaatccgtcgtgatgcctattttttttcagtcacatcctcaaatg\n\
+gcactagtattgtcgggatcccattaacaggctcaaccacgagctcacgcgaggacatgt\n\
+agtccgtatctttaacgaagcgacagcgacagaactcccatggataaccaattataaggc\n\
+ccgtaatcctctagacatcgtttaccaataaatccgctttctccgtaatcatgttgaata\n\
+ccccagagtagtccagatgataaccgatgaaacacaagtctttctcaatgcacttacggt\n\
+gaacttattaccgccaacgtagctcatcaaggttgcgacatctagttgtgtgtttgcgac\n\
+gagcccagcgaacttcatcaactttcgtatattcaacgccttgtaattttactttaagac\n\
+gcctggtgatgtagattcttagataatcagtttgttatcggctgtactttaccataattt\n\
+cacaggtttcaggtcaagaagattatagctgtatatacagttccatgctcggtgcacaga\n\
+aacgtgatcggataataatcaatcgcttatgtcgtctttaggcgtatccaatacatgccc\n\
+cgataccgcagtgtatttcgacatgtaggtataccgtcgcatttgagctcgagtcaggac\n\
+gtcagctagattagattccttaatagaatataccgacctctagtccgaactaaactatag\n\
+ataacgccaacttcaggttaattgtctagtcgtctgtttgcagatgggattcttagatga\n\
+gtgagtatcggccatattggttcgagcactttagtttttgatgcataggatatgcaatgt\n\
+atagctgaaagtactttatctgtttcaaactcacattgattaaaccggtaaacctttaaa\n\
+gactacaagaaaatattcagtgagggcaattttgtcaatcacaatcttccagctagagat\n\
+acttcacaatttgtcttgaggctacgcaacattagacggattttcgcgttttattgaaat\n\
+aatcgaggggcccaagagtatccatagttcattttgtaagatttctttacaggcttatta\n\
+cagcttcttcagactcctacatgcttacgagttatatgctagcatgtgaacaatagatta\n\
+atatacaggaaaacgtacattgagagagatgaccctacacagcgcaaccgttgagtactt\n\
+tcattaaagggtaacgctctcgagacagcatccttaagatggccttattgtcaaatcatt\n\
+tgcagaagtacgcaagatccctaaccaacgtagaagaatccctacaaacacatgagacgc\n\
+ggtgaaaatagacagggtgttagtattcaatcttcggagtatcaatttcgccaatcttgg\n\
+tgagaaagcataccctttcttcagagaaagaagatcaatcataacactatctttaacgag\n\
+gtacgcacgcgcatcattacctgcctccatggatctttaggatagcggaaagtattggca\n\
+gcgtattgtgatttcgttcctactttatcaatttcacattcatatacatgtcttttatca\n\
+aaatcgccaataagataggatgagctatattagatgctagtagagttcgcgccaacatca\n\
+tcgataggaatactcaggacagcgtgataggacttttcaatccctaatactctctataat\n\
+tataactctctcttaagtttggaggcagtaacgcgctctatataatcagtttgctgcacc\n\
+attcttcagcctctgatacatacaaataaattccacagcagtaagagggtttaattgaga\n\
+catcttgggaacttaggattttactctaacatcaccgaaacgattattggataccgtacc\n\
+taaacgaactttctcaaggcagtaatataggacatccgcaataacacaaatgctgcctcc\n\
+ccaggagttatgtcttcctggaggctatatcttacacccactcactataggcaaactaaa\n\
+gtttaaatgttgattgtctaaaaaaaagatagataagagttggccggcgtagcacatgcg\n\
+aaagtgaatcgtaagctataattctctggacttgaagttctgtcctgttcctctgcaaga\n\
+aacaaacttcctttaaagctatttacgacgcacatctcagcaagttataaacatgttgga\n\
+agtttctagtcggaattcccaaagaacggatctatctaatgcattcctacatttttcctg\n\
+tctgccgatggtgccatcctattcaaagaatttcttaaaagtagattaaatgggactttt\n\
+aacaatgagtaaccttacgcctctaagggttcctcgagtgccatacaccagtcaggtccg\n\
+agccacatacacggagaacattctaacatagcattctcaactcgatcatttgcaggttac\n\
+ttctttcctatcctagtgctaaaaatcatacttgcaatcccatagcacggattaagaacc\n\
+taagaaacaattcagtaaaacatgttcgaattcttggtatgggaacatcattgcagctat\n\
+ggtctaacgcattaatgtttgggtacatcttccatcatataaacaggaagagtctgacga\n\
+cagggagtgcttgcgatcatgtctatcattgtgaaatcaaattgtagctcacatgtcgtc\n\
+tatgagagcgtgtatccgataagatttagaaaaatagaagtcgtataagatctcactgaa\n\
+cttttgaatgaatgtgaagcatatatgatctgctttaataaaactttatccataggatac\n\
+gtttccaaatcaattcaataattattagtcaaaatagataaggatgaacaacctgaaggc\n\
+cgatcggacgtagaaagtggtcccatcactttgagttgatattgttgaaccacacgttat\n\
+tatggttttcaaacagtctcaggatattgtatatacagataatccgataccagttgtctg\n\
+acgcccctcttacgtaccccaccctttgtgacgtttaaagcagttgttcagtattttaaa\n\
+ctaggcggcaactaatttggaaagaagcacagtggatatgtctaaattcttgttattcag\n\
+gcctgaatttaatacaccgcatagttaacttcgcggtagagttgttcatcatgcctcctc\n\
+taagctaccacttctatgatacaccaatagttgttctacggaatctgataattggccaag\n\
+tcataaacttccgctgcgttcaacccccttgctcgaatatccaactcgaaaagacagcct\n\
+tttggtgtccggaacaaatcagttacttcttttctgatgttaattctctgtggtcagata\n\
+cagaccaaaaactccgcggatttaccatcctccaagaacaaatttgcatcaacatagcat\n\
+tttggctacatattctaagtctcaatagtttaggttttcaactacattatcccaacatta\n\
+ggattggaggaataatagctgggtaagtccccttgcgtctacaatcgactattttttatg\n\
+aatatgcttctgccgcacctatggttattaaaaaagtcatgactttgaagaaccctgaaa\n\
+agatagatgaatcaggtgtaatggcagcagccaaagagcatataattagcaacactctaa\n\
+gaacattatagatatgatgatagcgatcgtcatgatgttatccggtcacaatagtagctt\n\
+catcagctaattcgttttgccagtggtgacttgcgctggaagaatcgttatacggtccct\n\
+tccctcttgatacggtgggggcttattcaaccgcgtggattgggttgtcatacttgcatt\n\
+aaacgatgtaaaccatctagtagtcaactatactaaatcacaaaatagtgatcaatacat\n\
+acccgcttcatggttttaaccatttaattgattaaagatattccgctaagaaccattatc\n\
+tacctaaactgatcgccgtatcctagtagtttgaaatttgatgtaccgtaatgatcaacg\n\
+aagtaaaacgttatattgtatgtagaataataggtcttggagctaaatgatgtgattggt\n\
+agtgaagacttacccttacaactttaccggtttctcggaagaatatactagagaatcaat\n\
+gcatgggctacataagcactttagtctaatgagataaaaaatacacgagtcttccatcat\n\
+gaattttttgtcgaaaaactcgaacctggtaatttaaaccatatatctttatgtcgtcaa\n\
+taactctcatatgttttatataacttcccaatcacgacttgtaactgcttgttcgactga\n\
+gctgtttgagctatgaggccgggatccggttgagctacatctatttgctacaagaaaaat\n\
+gaaagcacatttgttgggagttctggctacactcatagagaaataagtggcccgagtggg\n\
+tgcggcctgcctccatattcaagtgtatcttaaaccaagtggttccaacgctcgcgctaa\n\
+agaattaaagcctttatttcctccacggagtagcccgtaatccggttcgaaagagaccat\n\
+tgaagttaattttcatatccagtgaagtttaggcacaagcatgtgttctgccacatgcct\n\
+caaagcgctcttcaaccaagatatgattcatcctaacttcgatgaatgcgtctgtaacat\n\
+aaatatagaaggaatgattcggcgagttaattttcgccttctccaacatggcatccctac\n\
+gttcgttataaggaccatacatgtaggttttaaaggtttgcggttaatcgatatttacat\n\
+catagaaattctatagtcaaatttacaagactctagatactcactcgttgcagccggcta\n\
+ggaagcgctttgtaccttacttcccttttcgttgcgtaatatgaatttcatatagtaagt\n\
+tcaaggcactcatacctccgtgaagagggtagatagactattaaagttgtttaatagtac\n\
+gtattgatggaaatgacccgtaggagatttaccactcaatccacaagattcgctgctgtg\n\
+cattatcaaaacagtgcatgtcgaaacatgggttgggtccttcaaacacgaatccaggta\n\
+gagatacctttgcaattttt\n";
+
+dnaInput = dnaInput + dnaInput + dnaInput;
+
+var ilen, clen,
+ seqs = [
+ /agggtaaa|tttaccct/ig,
+ /[cgt]gggtaaa|tttaccc[acg]/ig,
+ /a[act]ggtaaa|tttacc[agt]t/ig,
+ /ag[act]gtaaa|tttac[agt]ct/ig,
+ /agg[act]taaa|ttta[agt]cct/ig,
+ /aggg[acg]aaa|ttt[cgt]ccct/ig,
+ /agggt[cgt]aa|tt[acg]accct/ig,
+ /agggta[cgt]a|t[acg]taccct/ig,
+ /agggtaa[cgt]|[acg]ttaccct/ig],
+ subs = {
+ B: '(c|g|t)', D: '(a|g|t)', H: '(a|c|t)', K: '(g|t)',
+ M: '(a|c)', N: '(a|c|g|t)', R: '(a|g)', S: '(c|t)',
+ V: '(a|c|g)', W: '(a|t)', Y: '(c|t)' }
+
+ilen = dnaInput.length;
+
+// There is no in-place substitution
+dnaInput = dnaInput.replace(/>.*\n|\n/g,"")
+clen = dnaInput.length
+
+var dnaOutputString;
+
+for(i in seqs)
+ dnaOutputString += seqs[i].source + " " + (dnaInput.match(seqs[i]) || []).length + "\n";
+ // match returns null if no matches, so replace with empty
+
+for(k in subs)
+ dnaInput = dnaInput.replace(k, subs[k], "g")
+ // search string, replacement string, flags
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/string-base64.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/string-base64.js
new file mode 100644
index 000000000..c9f3a7b8c
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/string-base64.js
@@ -0,0 +1,135 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla XML-RPC Client component.
+ *
+ * The Initial Developer of the Original Code is
+ * Digital Creations 2, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 2000
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Martijn Pieters <mj@digicool.com> (original author)
+ * Samuel Sieb <samuel@sieb.net>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+// From: http://lxr.mozilla.org/mozilla/source/extensions/xml-rpc/src/nsXmlRpcClient.js#956
+
+/* Convert data (an array of integers) to a Base64 string. */
+var toBase64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+var base64Pad = '=';
+
+function toBase64(data) {
+ var result = '';
+ var length = data.length;
+ var i;
+ // Convert every three bytes to 4 ascii characters.
+ for (i = 0; i < (length - 2); i += 3) {
+ result += toBase64Table[data[i] >> 2];
+ result += toBase64Table[((data[i] & 0x03) << 4) + (data[i+1] >> 4)];
+ result += toBase64Table[((data[i+1] & 0x0f) << 2) + (data[i+2] >> 6)];
+ result += toBase64Table[data[i+2] & 0x3f];
+ }
+
+ // Convert the remaining 1 or 2 bytes, pad out to 4 characters.
+ if (length%3) {
+ i = length - (length%3);
+ result += toBase64Table[data[i] >> 2];
+ if ((length%3) == 2) {
+ result += toBase64Table[((data[i] & 0x03) << 4) + (data[i+1] >> 4)];
+ result += toBase64Table[(data[i+1] & 0x0f) << 2];
+ result += base64Pad;
+ } else {
+ result += toBase64Table[(data[i] & 0x03) << 4];
+ result += base64Pad + base64Pad;
+ }
+ }
+
+ return result;
+}
+
+/* Convert Base64 data to a string */
+var toBinaryTable = [
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
+ 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1,
+ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,
+ 15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1,
+ -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
+ 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1
+];
+
+function base64ToString(data) {
+ var result = '';
+ var leftbits = 0; // number of bits decoded, but yet to be appended
+ var leftdata = 0; // bits decoded, but yet to be appended
+
+ // Convert one by one.
+ for (var i = 0; i < data.length; i++) {
+ var c = toBinaryTable[data.charCodeAt(i) & 0x7f];
+ var padding = (data[i] == base64Pad);
+ // Skip illegal characters and whitespace
+ if (c == -1) continue;
+
+ // Collect data into leftdata, update bitcount
+ leftdata = (leftdata << 6) | c;
+ leftbits += 6;
+
+ // If we have 8 or more bits, append 8 bits to the result
+ if (leftbits >= 8) {
+ leftbits -= 8;
+ // Append if not padding.
+ if (!padding)
+ result += String.fromCharCode((leftdata >> leftbits) & 0xff);
+ leftdata &= (1 << leftbits) - 1;
+ }
+ }
+
+ // If there are any bits left, the base64 string was corrupted
+ if (leftbits)
+ throw Components.Exception('Corrupted base64 string');
+
+ return result;
+}
+
+var str = "";
+
+for ( var i = 0; i < 8192; i++ )
+ str += String.fromCharCode( (25 * Math.random()) + 97 );
+
+for ( var i = 8192; i <= 16384; i *= 2 ) {
+
+ var base64;
+
+ base64 = toBase64(str);
+ base64ToString(base64);
+
+ // Double the string
+ str += str;
+}
+
+toBinaryTable = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/string-fasta.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/string-fasta.js
new file mode 100644
index 000000000..14a81f392
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/string-fasta.js
@@ -0,0 +1,85 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org
+//
+// Contributed by Ian Osgood
+
+var last = 42, A = 3877, C = 29573, M = 139968;
+
+function rand(max) {
+ last = (last * A + C) % M;
+ return max * last / M;
+}
+
+var ALU =
+ "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" +
+ "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" +
+ "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" +
+ "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" +
+ "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" +
+ "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" +
+ "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA";
+
+var IUB = {
+ a:0.27, c:0.12, g:0.12, t:0.27,
+ B:0.02, D:0.02, H:0.02, K:0.02,
+ M:0.02, N:0.02, R:0.02, S:0.02,
+ V:0.02, W:0.02, Y:0.02
+}
+
+var HomoSap = {
+ a: 0.3029549426680,
+ c: 0.1979883004921,
+ g: 0.1975473066391,
+ t: 0.3015094502008
+}
+
+function makeCumulative(table) {
+ var last = null;
+ for (var c in table) {
+ if (last) table[c] += table[last];
+ last = c;
+ }
+}
+
+function fastaRepeat(n, seq) {
+ var seqi = 0, lenOut = 60;
+ while (n>0) {
+ if (n<lenOut) lenOut = n;
+ if (seqi + lenOut < seq.length) {
+ ret = seq.substring(seqi, seqi+lenOut);
+ seqi += lenOut;
+ } else {
+ var s = seq.substring(seqi);
+ seqi = lenOut - s.length;
+ ret = s + seq.substring(0, seqi);
+ }
+ n -= lenOut;
+ }
+}
+
+function fastaRandom(n, table) {
+ var line = new Array(60);
+ makeCumulative(table);
+ while (n>0) {
+ if (n<line.length) line = new Array(n);
+ for (var i=0; i<line.length; i++) {
+ var r = rand(1);
+ for (var c in table) {
+ if (r < table[c]) {
+ line[i] = c;
+ break;
+ }
+ }
+ }
+ ret = line.join('');
+ n -= line.length;
+ }
+}
+
+var ret;
+
+var count = 7;
+ret = fastaRepeat(2*count*100000, ALU);
+ret = fastaRandom(3*count*1000, IUB);
+ret = fastaRandom(5*count*1000, HomoSap);
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/string-tagcloud.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/string-tagcloud.js
new file mode 100644
index 000000000..d3e5a1fb1
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/string-tagcloud.js
@@ -0,0 +1,265 @@
+
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ Portions from:
+ json.js
+ 2007-10-10
+
+ Public Domain
+*/
+
+// This test parses a JSON string giving tag names and popularity, and
+// generates html markup for a "tagcloud" view.
+
+if (!Object.prototype.toJSONString) {
+
+ Array.prototype.toJSONString = function (w) {
+ var a = [], // The array holding the partial texts.
+ i, // Loop counter.
+ l = this.length,
+ v; // The value to be stringified.
+
+ for (i = 0; i < l; i += 1) {
+ v = this[i];
+ switch (typeof v) {
+ case 'object':
+
+ if (v && typeof v.toJSONString === 'function') {
+ a.push(v.toJSONString(w));
+ } else {
+ a.push('null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(v.toJSONString());
+ break;
+ default:
+ a.push('null');
+ }
+ }
+
+ return '[' + a.join(',') + ']';
+ };
+
+
+ Boolean.prototype.toJSONString = function () {
+ return String(this);
+ };
+
+
+ Date.prototype.toJSONString = function () {
+
+ function f(n) {
+
+ return n < 10 ? '0' + n : n;
+ }
+
+ return '"' + this.getUTCFullYear() + '-' +
+ f(this.getUTCMonth() + 1) + '-' +
+ f(this.getUTCDate()) + 'T' +
+ f(this.getUTCHours()) + ':' +
+ f(this.getUTCMinutes()) + ':' +
+ f(this.getUTCSeconds()) + 'Z"';
+ };
+
+
+ Number.prototype.toJSONString = function () {
+
+ return isFinite(this) ? String(this) : 'null';
+ };
+
+
+ Object.prototype.toJSONString = function (w) {
+ var a = [], // The array holding the partial texts.
+ k, // The current key.
+ i, // The loop counter.
+ v; // The current value.
+
+ if (w) {
+ for (i = 0; i < w.length; i += 1) {
+ k = w[i];
+ if (typeof k === 'string') {
+ v = this[k];
+ switch (typeof v) {
+ case 'object':
+
+ if (v) {
+ if (typeof v.toJSONString === 'function') {
+ a.push(k.toJSONString() + ':' +
+ v.toJSONString(w));
+ }
+ } else {
+ a.push(k.toJSONString() + ':null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(k.toJSONString() + ':' + v.toJSONString());
+
+ }
+ }
+ }
+ } else {
+
+ for (k in this) {
+ if (typeof k === 'string' &&
+ Object.prototype.hasOwnProperty.apply(this, [k])) {
+ v = this[k];
+ switch (typeof v) {
+ case 'object':
+
+ if (v) {
+ if (typeof v.toJSONString === 'function') {
+ a.push(k.toJSONString() + ':' +
+ v.toJSONString());
+ }
+ } else {
+ a.push(k.toJSONString() + ':null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(k.toJSONString() + ':' + v.toJSONString());
+
+ }
+ }
+ }
+ }
+
+ return '{' + a.join(',') + '}';
+ };
+
+
+ (function (s) {
+
+ var m = {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '"' : '\\"',
+ '\\': '\\\\'
+ };
+
+
+ s.parseJSON = function (filter) {
+ var j;
+
+ function walk(k, v) {
+ var i, n;
+ if (v && typeof v === 'object') {
+ for (i in v) {
+ if (Object.prototype.hasOwnProperty.apply(v, [i])) {
+ n = walk(i, v[i]);
+ if (n !== undefined) {
+ v[i] = n;
+ }
+ }
+ }
+ }
+ return filter(k, v);
+ }
+
+ if (/^[\],:{}\s]*$/.test(this.replace(/\\./g, '@').
+ replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g, ']').
+ replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
+
+ j = eval('(' + this + ')');
+
+ return typeof filter === 'function' ? walk('', j) : j;
+ }
+
+ throw new SyntaxError('parseJSON');
+ };
+
+
+ s.toJSONString = function () {
+
+ if (/["\\\x00-\x1f]/.test(this)) {
+ return '"' + this.replace(/[\x00-\x1f\\"]/g, function (a) {
+ var c = m[a];
+ if (c) {
+ return c;
+ }
+ c = a.charCodeAt();
+ return '\\u00' + Math.floor(c / 16).toString(16) +
+ (c % 16).toString(16);
+ }) + '"';
+ }
+ return '"' + this + '"';
+ };
+ })(String.prototype);
+}
+
+var tagInfoJSON = '[\n {\n \"tag\": "titillation",\n \"popularity\": 4294967296\n },\n {\n \"tag\": "foamless",\n \"popularity\": 1257718401\n },\n {\n \"tag\": "snarler",\n \"popularity\": 613166183\n },\n {\n \"tag\": "multangularness",\n \"popularity\": 368304452\n },\n {\n \"tag\": "Fesapo unventurous",\n \"popularity\": 248026512\n },\n {\n \"tag\": "esthesioblast",\n \"popularity\": 179556755\n },\n {\n \"tag\": "echeneidoid",\n \"popularity\": 136641578\n },\n {\n \"tag\": "embryoctony",\n \"popularity\": 107852576\n },\n {\n \"tag\": "undilatory",\n \"popularity\": 87537981\n },\n {\n \"tag\": "predisregard",\n \"popularity\": 72630939\n },\n {\n \"tag\": "allergenic",\n \"popularity\": 61345190\n },\n {\n \"tag\": "uncloudy",\n \"popularity\": 52580571\n },\n {\n \"tag\": "unforeseeably",\n \"popularity\": 45628109\n },\n {\n \"tag\": "sturniform",\n \"popularity\": 40013489\n },\n {\n \"tag\": "anesthetize",\n \"popularity\": 35409226\n },\n {\n \"tag\": "ametabolia",\n \"popularity\": 31583050\n },\n {\n \"tag\": "angiopathy",\n \"popularity\": 28366350\n },\n {\n \"tag\": "sultanaship",\n \"popularity\": 25634218\n },\n {\n \"tag\": "Frenchwise",\n \"popularity\": 23292461\n },\n {\n \"tag\": "cerviconasal",\n \"popularity\": 21268909\n },\n {\n \"tag\": "mercurialness",\n \"popularity\": 19507481\n },\n {\n \"tag\": "glutelin venditate",\n \"popularity\": 17964042\n },\n {\n \"tag\": "acred overblack",\n \"popularity\": 16603454\n },\n {\n \"tag\": "Atik",\n \"popularity\": 15397451\n },\n {\n \"tag\": "puncturer",\n \"popularity\": 14323077\n },\n {\n \"tag\": "pukatea",\n \"popularity\": 13361525\n },\n {\n \"tag\": "suberize",\n \"popularity\": 12497261\n },\n {\n \"tag\": "Godfrey",\n \"popularity\": 11717365\n },\n {\n \"tag\": "tetraptote",\n \"popularity\": 11011011\n },\n {\n \"tag\": "lucidness",\n \"popularity\": 10369074\n },\n {\n \"tag\": "tartness",\n \"popularity\": 9783815\n },\n {\n \"tag\": "axfetch",\n \"popularity\": 9248634\n },\n {\n \"tag\": "preacquittal",\n \"popularity\": 8757877\n },\n {\n \"tag\": "matris",\n \"popularity\": 8306671\n },\n {\n \"tag\": "hyphenate",\n \"popularity\": 7890801\n },\n {\n \"tag\": "semifabulous",\n \"popularity\": 7506606\n },\n {\n \"tag\": "oppressiveness",\n \"popularity\": 7150890\n },\n {\n \"tag\": "Protococcales",\n \"popularity\": 6820856\n },\n {\n \"tag\": "unpreventive",\n \"popularity\": 6514045\n },\n {\n \"tag\": "Cordia",\n \"popularity\": 6228289\n },\n {\n \"tag\": "Wakamba leaflike",\n \"popularity\": 5961668\n },\n {\n \"tag\": "dacryoma",\n \"popularity\": 5712480\n },\n {\n \"tag\": "inguinal",\n \"popularity\": 5479211\n },\n {\n \"tag\": "responseless",\n \"popularity\": 5260507\n },\n {\n \"tag\": "supplementarily",\n \"popularity\": 5055158\n },\n {\n \"tag\": "emu",\n \"popularity\": 4862079\n },\n {\n \"tag\": "countermeet",\n \"popularity\": 4680292\n },\n {\n \"tag\": "purrer",\n \"popularity\": 4508918\n },\n {\n \"tag\": "Corallinaceae",\n \"popularity\": 4347162\n },\n {\n \"tag\": "speculum",\n \"popularity\": 4194304\n },\n {\n \"tag\": "crimpness",\n \"popularity\": 4049690\n },\n {\n \"tag\": "antidetonant",\n \"popularity\": 3912727\n },\n {\n \"tag\": "topeewallah",\n \"popularity\": 3782875\n },\n {\n \"tag\": "fidalgo ballant",\n \"popularity\": 3659640\n },\n {\n \"tag\": "utriculose",\n \"popularity\": 3542572\n },\n {\n \"tag\": "testata",\n \"popularity\": 3431259\n },\n {\n \"tag\": "beltmaking",\n \"popularity\": 3325322\n },\n {\n \"tag\": "necrotype",\n \"popularity\": 3224413\n },\n {\n \"tag\": "ovistic",\n \"popularity\": 3128215\n },\n {\n \"tag\": "swindlership",\n \"popularity\": 3036431\n },\n {\n \"tag\": "augustal",\n \"popularity\": 2948792\n },\n {\n \"tag\": "Titoist",\n \"popularity\": 2865047\n },\n {\n \"tag\": "trisoctahedral",\n \"popularity\": 2784963\n },\n {\n \"tag\": "sequestrator",\n \"popularity\": 2708327\n },\n {\n \"tag\": "sideburns",\n \"popularity\": 2634939\n },\n {\n \"tag\": "paraphrasia",\n \"popularity\": 2564616\n },\n {\n \"tag\": "graminology unbay",\n \"popularity\": 2497185\n },\n {\n \"tag\": "acaridomatium emargination",\n \"popularity\": 2432487\n },\n {\n \"tag\": "roofward",\n \"popularity\": 2370373\n },\n {\n \"tag\": "lauder",\n \"popularity\": 2310705\n },\n {\n \"tag\": "subjunctive",\n \"popularity\": 2253354\n },\n {\n \"tag\": "subelongate",\n \"popularity\": 2198199\n },\n {\n \"tag\": "guacimo",\n \"popularity\": 2145128\n },\n {\n \"tag\": "cockade",\n \"popularity\": 2094033\n },\n {\n \"tag\": "misgauge",\n \"popularity\": 2044818\n },\n {\n \"tag\": "unexpensive",\n \"popularity\": 1997388\n },\n {\n \"tag\": "chebel",\n \"popularity\": 1951657\n },\n {\n \"tag\": "unpursuing",\n \"popularity\": 1907543\n },\n {\n \"tag\": "kilobar",\n \"popularity\": 1864969\n },\n {\n \"tag\": "obsecration",\n \"popularity\": 1823863\n },\n {\n \"tag\": "nacarine",\n \"popularity\": 1784157\n },\n {\n \"tag\": "spirituosity",\n \"popularity\": 1745787\n },\n {\n \"tag\": "movableness deity",\n \"popularity\": 1708692\n },\n {\n \"tag\": "exostracism",\n \"popularity\": 1672816\n },\n {\n \"tag\": "archipterygium",\n \"popularity\": 1638104\n },\n {\n \"tag\": "monostrophic",\n \"popularity\": 1604506\n },\n {\n \"tag\": "gynecide",\n \"popularity\": 1571974\n },\n {\n \"tag\": "gladden",\n \"popularity\": 1540462\n },\n {\n \"tag\": "throughbred",\n \"popularity\": 1509927\n },\n {\n \"tag\": "groper",\n \"popularity\": 1480329\n },\n {\n \"tag\": "Xenosaurus",\n \"popularity\": 1451628\n },\n {\n \"tag\": "photoetcher",\n \"popularity\": 1423788\n },\n {\n \"tag\": "glucosid",\n \"popularity\": 1396775\n },\n {\n \"tag\": "Galtonian",\n \"popularity\": 1370555\n },\n {\n \"tag\": "mesosporic",\n \"popularity\": 1345097\n },\n {\n \"tag\": "theody",\n \"popularity\": 1320370\n },\n {\n \"tag\": "zaffer",\n \"popularity\": 1296348\n },\n {\n \"tag\": "probiology",\n \"popularity\": 1273003\n },\n {\n \"tag\": "rhizomic",\n \"popularity\": 1250308\n },\n {\n \"tag\": "superphosphate",\n \"popularity\": 1228240\n },\n {\n \"tag\": "Hippolytan",\n \"popularity\": 1206776\n },\n {\n \"tag\": "garget",\n \"popularity\": 1185892\n },\n {\n \"tag\": "diploplacula",\n \"popularity\": 1165568\n },\n {\n \"tag\": "orohydrographical",\n \"popularity\": 1145785\n },\n {\n \"tag\": "enhypostatize",\n \"popularity\": 1126521\n },\n {\n \"tag\": "polisman",\n \"popularity\": 1107759\n },\n {\n \"tag\": "acetometer",\n \"popularity\": 1089482\n },\n {\n \"tag\": "unsnatched",\n \"popularity\": 1071672\n },\n {\n \"tag\": "yabber",\n \"popularity\": 1054313\n },\n {\n \"tag\": "demiwolf",\n \"popularity\": 1037390\n },\n {\n \"tag\": "chromascope",\n \"popularity\": 1020888\n },\n {\n \"tag\": "seamanship",\n \"popularity\": 1004794\n },\n {\n \"tag\": "nonfenestrated",\n \"popularity\": 989092\n },\n {\n \"tag\": "hydrophytism",\n \"popularity\": 973771\n },\n {\n \"tag\": "dotter",\n \"popularity\": 958819\n },\n {\n \"tag\": "thermoperiodism",\n \"popularity\": 944222\n },\n {\n \"tag\": "unlawyerlike",\n \"popularity\": 929970\n },\n {\n \"tag\": "enantiomeride citywards",\n \"popularity\": 916052\n },\n {\n \"tag\": "unmetallurgical",\n \"popularity\": 902456\n },\n {\n \"tag\": "prickled",\n \"popularity\": 889174\n },\n {\n \"tag\": "strangerwise manioc",\n \"popularity\": 876195\n },\n {\n \"tag\": "incisorial",\n \"popularity\": 863510\n },\n {\n \"tag\": "irrationalize",\n \"popularity\": 851110\n },\n {\n \"tag\": "nasology",\n \"popularity\": 838987\n },\n {\n \"tag\": "fatuism",\n \"popularity\": 827131\n },\n {\n \"tag\": "Huk",\n \"popularity\": 815535\n },\n {\n \"tag\": "properispomenon",\n \"popularity\": 804192\n },\n {\n \"tag\": "unpummelled",\n \"popularity\": 793094\n },\n {\n \"tag\": "technographically",\n \"popularity\": 782233\n },\n {\n \"tag\": "underfurnish",\n \"popularity\": 771603\n },\n {\n \"tag\": "sinter",\n \"popularity\": 761198\n },\n {\n \"tag\": "lateroanterior",\n \"popularity\": 751010\n },\n {\n \"tag\": "nonpersonification",\n \"popularity\": 741034\n },\n {\n \"tag\": "Sitophilus",\n \"popularity\": 731264\n },\n {\n \"tag\": "unstudded overexerted",\n \"popularity\": 721694\n },\n {\n \"tag\": "tracheation",\n \"popularity\": 712318\n },\n {\n \"tag\": "thirteenth begloze",\n \"popularity\": 703131\n },\n {\n \"tag\": "bespice",\n \"popularity\": 694129\n },\n {\n \"tag\": "doppia",\n \"popularity\": 685305\n },\n {\n \"tag\": "unadorned",\n \"popularity\": 676656\n },\n {\n \"tag\": "dovelet engraff",\n \"popularity\": 668176\n },\n {\n \"tag\": "diphyozooid",\n \"popularity\": 659862\n },\n {\n \"tag\": "mure",\n \"popularity\": 651708\n },\n {\n \"tag\": "Tripitaka",\n \"popularity\": 643710\n },\n {\n \"tag\": "Billjim",\n \"popularity\": 635865\n },\n {\n \"tag\": "pyramidical",\n \"popularity\": 628169\n },\n {\n \"tag\": "circumlocutionist",\n \"popularity\": 620617\n },\n {\n \"tag\": "slapstick",\n \"popularity\": 613207\n },\n {\n \"tag\": "preobedience",\n \"popularity\": 605934\n },\n {\n \"tag\": "unfriarlike",\n \"popularity\": 598795\n },\n {\n \"tag\": "microchromosome",\n \"popularity\": 591786\n },\n {\n \"tag\": "Orphicism",\n \"popularity\": 584905\n },\n {\n \"tag\": "peel",\n \"popularity\": 578149\n },\n {\n \"tag\": "obediential",\n \"popularity\": 571514\n },\n {\n \"tag\": "Peripatidea",\n \"popularity\": 564997\n },\n {\n \"tag\": "undoubtful",\n \"popularity\": 558596\n },\n {\n \"tag\": "lodgeable",\n \"popularity\": 552307\n },\n {\n \"tag\": "pustulated woodchat",\n \"popularity\": 546129\n },\n {\n \"tag\": "antepast",\n \"popularity\": 540057\n },\n {\n \"tag\": "sagittoid matrimoniously",\n \"popularity\": 534091\n },\n {\n \"tag\": "Albizzia",\n \"popularity\": 528228\n },\n {\n \"tag\": "Elateridae unnewness",\n \"popularity\": 522464\n },\n {\n \"tag\": "convertingness",\n \"popularity\": 516798\n },\n {\n \"tag\": "Pelew",\n \"popularity\": 511228\n },\n {\n \"tag\": "recapitulation",\n \"popularity\": 505751\n },\n {\n \"tag\": "shack",\n \"popularity\": 500365\n },\n {\n \"tag\": "unmellowed",\n \"popularity\": 495069\n },\n {\n \"tag\": "pavis capering",\n \"popularity\": 489859\n },\n {\n \"tag\": "fanfare",\n \"popularity\": 484735\n },\n {\n \"tag\": "sole",\n \"popularity\": 479695\n },\n {\n \"tag\": "subarcuate",\n \"popularity\": 474735\n },\n {\n \"tag\": "multivious",\n \"popularity\": 469856\n },\n {\n \"tag\": "squandermania",\n \"popularity\": 465054\n },\n {\n \"tag\": "scintle",\n \"popularity\": 460329\n },\n {\n \"tag\": "hash chirognomic",\n \"popularity\": 455679\n },\n {\n \"tag\": "linseed",\n \"popularity\": 451101\n },\n {\n \"tag\": "redoubtable",\n \"popularity\": 446596\n },\n {\n \"tag\": "poachy reimpact",\n \"popularity\": 442160\n },\n {\n \"tag\": "limestone",\n \"popularity\": 437792\n },\n {\n \"tag\": "serranid",\n \"popularity\": 433492\n },\n {\n \"tag\": "pohna",\n \"popularity\": 429258\n },\n {\n \"tag\": "warwolf",\n \"popularity\": 425088\n },\n {\n \"tag\": "ruthenous",\n \"popularity\": 420981\n },\n {\n \"tag\": "dover",\n \"popularity\": 416935\n },\n {\n \"tag\": "deuteroalbumose",\n \"popularity\": 412950\n },\n {\n \"tag\": "pseudoprophetic",\n \"popularity\": 409025\n },\n {\n \"tag\": "dissoluteness",\n \"popularity\": 405157\n },\n {\n \"tag\": "preinvention",\n \"popularity\": 401347\n },\n {\n \"tag\": "swagbellied",\n \"popularity\": 397592\n },\n {\n \"tag\": "Ophidia",\n \"popularity\": 393892\n },\n {\n \"tag\": "equanimity",\n \"popularity\": 390245\n },\n {\n \"tag\": "troutful",\n \"popularity\": 386651\n },\n {\n \"tag\": "uke",\n \"popularity\": 383108\n },\n {\n \"tag\": "preacquaint",\n \"popularity\": 379616\n },\n {\n \"tag\": "shoq",\n \"popularity\": 376174\n },\n {\n \"tag\": "yox",\n \"popularity\": 372780\n },\n {\n \"tag\": "unelemental",\n \"popularity\": 369434\n },\n {\n \"tag\": "Yavapai",\n \"popularity\": 366134\n },\n {\n \"tag\": "joulean",\n \"popularity\": 362880\n },\n {\n \"tag\": "dracontine",\n \"popularity\": 359672\n },\n {\n \"tag\": "hardmouth",\n \"popularity\": 356507\n },\n {\n \"tag\": "sylvanize",\n \"popularity\": 353386\n },\n {\n \"tag\": "intraparenchymatous meadowbur",\n \"popularity\": 350308\n },\n {\n \"tag\": "uncharily",\n \"popularity\": 347271\n },\n {\n \"tag\": "redtab flexibly",\n \"popularity\": 344275\n },\n {\n \"tag\": "centervelic",\n \"popularity\": 341319\n },\n {\n \"tag\": "unravellable",\n \"popularity\": 338403\n },\n {\n \"tag\": "infortunately",\n \"popularity\": 335526\n },\n {\n \"tag\": "cannel",\n \"popularity\": 332687\n },\n {\n \"tag\": "oxyblepsia",\n \"popularity\": 329885\n },\n {\n \"tag\": "Damon",\n \"popularity\": 327120\n },\n {\n \"tag\": "etherin",\n \"popularity\": 324391\n },\n {\n \"tag\": "luminal",\n \"popularity\": 321697\n },\n {\n \"tag\": "interrogatorily presbyte",\n \"popularity\": 319038\n },\n {\n \"tag\": "hemiclastic",\n \"popularity\": 316414\n },\n {\n \"tag\": "poh flush",\n \"popularity\": 313823\n },\n {\n \"tag\": "Psoroptes",\n \"popularity\": 311265\n },\n {\n \"tag\": "dispirit",\n \"popularity\": 308740\n },\n {\n \"tag\": "nashgab",\n \"popularity\": 306246\n },\n {\n \"tag\": "Aphidiinae",\n \"popularity\": 303784\n },\n {\n \"tag\": "rhapsody nonconstruction",\n \"popularity\": 301353\n },\n {\n \"tag\": "Osmond",\n \"popularity\": 298952\n },\n {\n \"tag\": "Leonis",\n \"popularity\": 296581\n },\n {\n \"tag\": "Lemnian",\n \"popularity\": 294239\n },\n {\n \"tag\": "acetonic gnathonic",\n \"popularity\": 291926\n },\n {\n \"tag\": "surculus",\n \"popularity\": 289641\n },\n {\n \"tag\": "diagonally",\n \"popularity\": 287384\n },\n {\n \"tag\": "counterpenalty",\n \"popularity\": 285154\n },\n {\n \"tag\": "Eugenie",\n \"popularity\": 282952\n },\n {\n \"tag\": "hornbook",\n \"popularity\": 280776\n },\n {\n \"tag\": "miscoin",\n \"popularity\": 278626\n },\n {\n \"tag\": "admi",\n \"popularity\": 276501\n },\n {\n \"tag\": "Tarmac",\n \"popularity\": 274402\n },\n {\n \"tag\": "inexplicable",\n \"popularity\": 272328\n },\n {\n \"tag\": "rascallion",\n \"popularity\": 270278\n },\n {\n \"tag\": "dusterman",\n \"popularity\": 268252\n },\n {\n \"tag\": "osteostomous unhoroscopic",\n \"popularity\": 266250\n },\n {\n \"tag\": "spinibulbar",\n \"popularity\": 264271\n },\n {\n \"tag\": "phototelegraphically",\n \"popularity\": 262315\n },\n {\n \"tag\": "Manihot",\n \"popularity\": 260381\n },\n {\n \"tag\": "neighborhood",\n \"popularity\": 258470\n },\n {\n \"tag\": "Vincetoxicum",\n \"popularity\": 256581\n },\n {\n \"tag\": "khirka",\n \"popularity\": 254713\n },\n {\n \"tag\": "conscriptive",\n \"popularity\": 252866\n },\n {\n \"tag\": "synechthran",\n \"popularity\": 251040\n },\n {\n \"tag\": "Guttiferales",\n \"popularity\": 249235\n },\n {\n \"tag\": "roomful",\n \"popularity\": 247450\n },\n {\n \"tag\": "germinal",\n \"popularity\": 245685\n },\n {\n \"tag\": "untraitorous",\n \"popularity\": 243939\n },\n {\n \"tag\": "nondissenting",\n \"popularity\": 242213\n },\n {\n \"tag\": "amotion",\n \"popularity\": 240506\n },\n {\n \"tag\": "badious",\n \"popularity\": 238817\n },\n {\n \"tag\": "sumpit",\n \"popularity\": 237147\n },\n {\n \"tag\": "ectozoic",\n \"popularity\": 235496\n },\n {\n \"tag\": "elvet",\n \"popularity\": 233862\n },\n {\n \"tag\": "underclerk",\n \"popularity\": 232246\n },\n {\n \"tag\": "reticency",\n \"popularity\": 230647\n },\n {\n \"tag\": "neutroclusion",\n \"popularity\": 229065\n },\n {\n \"tag\": "unbelieving",\n \"popularity\": 227500\n },\n {\n \"tag\": "histogenetic",\n \"popularity\": 225952\n },\n {\n \"tag\": "dermamyiasis",\n \"popularity\": 224421\n },\n {\n \"tag\": "telenergy",\n \"popularity\": 222905\n },\n {\n \"tag\": "axiomatic",\n \"popularity\": 221406\n },\n {\n \"tag\": "undominoed",\n \"popularity\": 219922\n },\n {\n \"tag\": "periosteoma",\n \"popularity\": 218454\n },\n {\n \"tag\": "justiciaryship",\n \"popularity\": 217001\n },\n {\n \"tag\": "autoluminescence",\n \"popularity\": 215563\n },\n {\n \"tag\": "osmous",\n \"popularity\": 214140\n },\n {\n \"tag\": "borgh",\n \"popularity\": 212731\n },\n {\n \"tag\": "bedebt",\n \"popularity\": 211337\n },\n {\n \"tag\": "considerableness adenoidism",\n \"popularity\": 209957\n },\n {\n \"tag\": "sailorizing",\n \"popularity\": 208592\n },\n {\n \"tag\": "Montauk",\n \"popularity\": 207240\n },\n {\n \"tag\": "Bridget",\n \"popularity\": 205901\n },\n {\n \"tag\": "Gekkota",\n \"popularity\": 204577\n },\n {\n \"tag\": "subcorymbose",\n \"popularity\": 203265\n },\n {\n \"tag\": "undersap",\n \"popularity\": 201967\n },\n {\n \"tag\": "poikilothermic",\n \"popularity\": 200681\n },\n {\n \"tag\": "enneatical",\n \"popularity\": 199409\n },\n {\n \"tag\": "martinetism",\n \"popularity\": 198148\n },\n {\n \"tag\": "sustanedly",\n \"popularity\": 196901\n },\n {\n \"tag\": "declaration",\n \"popularity\": 195665\n },\n {\n \"tag\": "myringoplasty",\n \"popularity\": 194442\n },\n {\n \"tag\": "Ginkgo",\n \"popularity\": 193230\n },\n {\n \"tag\": "unrecurrent",\n \"popularity\": 192031\n },\n {\n \"tag\": "proprecedent",\n \"popularity\": 190843\n },\n {\n \"tag\": "roadman",\n \"popularity\": 189666\n },\n {\n \"tag\": "elemin",\n \"popularity\": 188501\n },\n {\n \"tag\": "maggot",\n \"popularity\": 187347\n },\n {\n \"tag\": "alitrunk",\n \"popularity\": 186204\n },\n {\n \"tag\": "introspection",\n \"popularity\": 185071\n },\n {\n \"tag\": "batiker",\n \"popularity\": 183950\n },\n {\n \"tag\": "backhatch oversettle",\n \"popularity\": 182839\n },\n {\n \"tag\": "thresherman",\n \"popularity\": 181738\n },\n {\n \"tag\": "protemperance",\n \"popularity\": 180648\n },\n {\n \"tag\": "undern",\n \"popularity\": 179568\n },\n {\n \"tag\": "tweeg",\n \"popularity\": 178498\n },\n {\n \"tag\": "crosspath",\n \"popularity\": 177438\n },\n {\n \"tag\": "Tangaridae",\n \"popularity\": 176388\n },\n {\n \"tag\": "scrutation",\n \"popularity\": 175348\n },\n {\n \"tag\": "piecemaker",\n \"popularity\": 174317\n },\n {\n \"tag\": "paster",\n \"popularity\": 173296\n },\n {\n \"tag\": "unpretendingness",\n \"popularity\": 172284\n },\n {\n \"tag\": "inframundane",\n \"popularity\": 171281\n },\n {\n \"tag\": "kiblah",\n \"popularity\": 170287\n },\n {\n \"tag\": "playwrighting",\n \"popularity\": 169302\n },\n {\n \"tag\": "gonepoiesis snowslip",\n \"popularity\": 168326\n },\n {\n \"tag\": "hoodwise",\n \"popularity\": 167359\n },\n {\n \"tag\": "postseason",\n \"popularity\": 166401\n },\n {\n \"tag\": "equivocality",\n \"popularity\": 165451\n },\n {\n \"tag\": "Opiliaceae nuclease",\n \"popularity\": 164509\n },\n {\n \"tag\": "sextipara",\n \"popularity\": 163576\n },\n {\n \"tag\": "weeper",\n \"popularity\": 162651\n },\n {\n \"tag\": "frambesia",\n \"popularity\": 161735\n },\n {\n \"tag\": "answerable",\n \"popularity\": 160826\n },\n {\n \"tag\": "Trichosporum",\n \"popularity\": 159925\n },\n {\n \"tag\": "cajuputol",\n \"popularity\": 159033\n },\n {\n \"tag\": "pleomorphous",\n \"popularity\": 158148\n },\n {\n \"tag\": "aculeolate",\n \"popularity\": 157270\n },\n {\n \"tag\": "wherever",\n \"popularity\": 156400\n },\n {\n \"tag\": "collapse",\n \"popularity\": 155538\n },\n {\n \"tag\": "porky",\n \"popularity\": 154683\n },\n {\n \"tag\": "perule",\n \"popularity\": 153836\n },\n {\n \"tag\": "Nevada",\n \"popularity\": 152996\n },\n {\n \"tag\": "conalbumin",\n \"popularity\": 152162\n },\n {\n \"tag\": "tsunami",\n \"popularity\": 151336\n },\n {\n \"tag\": "Gulf",\n \"popularity\": 150517\n },\n {\n \"tag\": "hertz",\n \"popularity\": 149705\n },\n {\n \"tag\": "limmock",\n \"popularity\": 148900\n },\n {\n \"tag\": "Tartarize",\n \"popularity\": 148101\n },\n {\n \"tag\": "entosphenoid",\n \"popularity\": 147310\n },\n {\n \"tag\": "ibis",\n \"popularity\": 146524\n },\n {\n \"tag\": "unyeaned",\n \"popularity\": 145746\n },\n {\n \"tag\": "tritural",\n \"popularity\": 144973\n },\n {\n \"tag\": "hundredary",\n \"popularity\": 144207\n },\n {\n \"tag\": "stolonlike",\n \"popularity\": 143448\n },\n {\n \"tag\": "chorister",\n \"popularity\": 142694\n },\n {\n \"tag\": "mismove",\n \"popularity\": 141947\n },\n {\n \"tag\": "Andine",\n \"popularity\": 141206\n },\n {\n \"tag\": "Annette proneur escribe",\n \"popularity\": 140471\n },\n {\n \"tag\": "exoperidium",\n \"popularity\": 139742\n },\n {\n \"tag\": "disedge",\n \"popularity\": 139019\n },\n {\n \"tag\": "hypochloruria",\n \"popularity\": 138302\n },\n {\n \"tag\": "prepupa",\n \"popularity\": 137590\n },\n {\n \"tag\": "assent",\n \"popularity\": 136884\n },\n {\n \"tag\": "hydrazobenzene",\n \"popularity\": 136184\n },\n {\n \"tag\": "emballonurid",\n \"popularity\": 135489\n },\n {\n \"tag\": "roselle",\n \"popularity\": 134800\n },\n {\n \"tag\": "unifiedly",\n \"popularity\": 134117\n },\n {\n \"tag\": "clang",\n \"popularity\": 133439\n },\n {\n \"tag\": "acetolytic",\n \"popularity\": 132766\n },\n {\n \"tag\": "cladodont",\n \"popularity\": 132098\n },\n {\n \"tag\": "recoast",\n \"popularity\": 131436\n },\n {\n \"tag\": "celebrated tydie Eocarboniferous",\n \"popularity\": 130779\n },\n {\n \"tag\": "superconsciousness",\n \"popularity\": 130127\n },\n {\n \"tag\": "soberness",\n \"popularity\": 129480\n },\n {\n \"tag\": "panoramist",\n \"popularity\": 128838\n },\n {\n \"tag\": "Orbitolina",\n \"popularity\": 128201\n },\n {\n \"tag\": "overlewd",\n \"popularity\": 127569\n },\n {\n \"tag\": "demiquaver",\n \"popularity\": 126942\n },\n {\n \"tag\": "kamelaukion",\n \"popularity\": 126319\n },\n {\n \"tag\": "flancard",\n \"popularity\": 125702\n },\n {\n \"tag\": "tricuspid",\n \"popularity\": 125089\n },\n {\n \"tag\": "bepelt",\n \"popularity\": 124480\n },\n {\n \"tag\": "decuplet",\n \"popularity\": 123877\n },\n {\n \"tag\": "Rockies",\n \"popularity\": 123278\n },\n {\n \"tag\": "unforgeability",\n \"popularity\": 122683\n },\n {\n \"tag\": "mocha",\n \"popularity\": 122093\n },\n {\n \"tag\": "scrunge",\n \"popularity\": 121507\n },\n {\n \"tag\": "delighter",\n \"popularity\": 120926\n },\n {\n \"tag\": "willey Microtinae",\n \"popularity\": 120349\n },\n {\n \"tag\": "unhuntable",\n \"popularity\": 119777\n },\n {\n \"tag\": "historically",\n \"popularity\": 119208\n },\n {\n \"tag\": "vicegerentship",\n \"popularity\": 118644\n },\n {\n \"tag\": "hemangiosarcoma",\n \"popularity\": 118084\n },\n {\n \"tag\": "harpago",\n \"popularity\": 117528\n },\n {\n \"tag\": "unionoid",\n \"popularity\": 116976\n },\n {\n \"tag\": "wiseman",\n \"popularity\": 116429\n },\n {\n \"tag\": "diclinism",\n \"popularity\": 115885\n },\n {\n \"tag\": "Maud",\n \"popularity\": 115345\n },\n {\n \"tag\": "scaphocephalism",\n \"popularity\": 114809\n },\n {\n \"tag\": "obtenebration",\n \"popularity\": 114277\n },\n {\n \"tag\": "cymar predreadnought",\n \"popularity\": 113749\n },\n {\n \"tag\": "discommend",\n \"popularity\": 113225\n },\n {\n \"tag\": "crude",\n \"popularity\": 112704\n },\n {\n \"tag\": "upflash",\n \"popularity\": 112187\n },\n {\n \"tag\": "saltimbank",\n \"popularity\": 111674\n },\n {\n \"tag\": "posthysterical",\n \"popularity\": 111165\n },\n {\n \"tag\": "trample",\n \"popularity\": 110659\n },\n {\n \"tag\": "ungirthed",\n \"popularity\": 110157\n },\n {\n \"tag\": "unshakable",\n \"popularity\": 109658\n },\n {\n \"tag\": "hepatocystic",\n \"popularity\": 109163\n },\n {\n \"tag\": "psammophyte",\n \"popularity\": 108671\n },\n {\n \"tag\": "millionfold",\n \"popularity\": 108183\n },\n {\n \"tag\": "outtaste",\n \"popularity\": 107698\n },\n {\n \"tag\": "poppycockish",\n \"popularity\": 107217\n },\n {\n \"tag\": "viduine",\n \"popularity\": 106739\n },\n {\n \"tag\": "pleasureman",\n \"popularity\": 106264\n },\n {\n \"tag\": "cholesterolemia",\n \"popularity\": 105792\n },\n {\n \"tag\": "hostlerwife",\n \"popularity\": 105324\n },\n {\n \"tag\": "figure undergrass",\n \"popularity\": 104859\n },\n {\n \"tag\": "bedrape",\n \"popularity\": 104398\n },\n {\n \"tag\": "nuttishness",\n \"popularity\": 103939\n },\n {\n \"tag\": "fow",\n \"popularity\": 103484\n },\n {\n \"tag\": "rachianesthesia",\n \"popularity\": 103031\n },\n {\n \"tag\": "recruitable",\n \"popularity\": 102582\n },\n {\n \"tag\": "semianatomical Oenotheraceae",\n \"popularity\": 102136\n },\n {\n \"tag\": "extracapsular",\n \"popularity\": 101693\n },\n {\n \"tag\": "unsigneted",\n \"popularity\": 101253\n },\n {\n \"tag\": "fissural",\n \"popularity\": 100816\n },\n {\n \"tag\": "ayous",\n \"popularity\": 100381\n },\n {\n \"tag\": "crestfallenness odontograph",\n \"popularity\": 99950\n },\n {\n \"tag\": "monopodium",\n \"popularity\": 99522\n },\n {\n \"tag\": "germfree",\n \"popularity\": 99096\n },\n {\n \"tag\": "dauphin",\n \"popularity\": 98673\n },\n {\n \"tag\": "nonagesimal",\n \"popularity\": 98254\n },\n {\n \"tag\": "waterchat",\n \"popularity\": 97836\n },\n {\n \"tag\": "Entelodon",\n \"popularity\": 97422\n },\n {\n \"tag\": "semischolastic",\n \"popularity\": 97010\n },\n {\n \"tag\": "somata",\n \"popularity\": 96602\n },\n {\n \"tag\": "expositorily",\n \"popularity\": 96195\n },\n {\n \"tag\": "bass",\n \"popularity\": 95792\n },\n {\n \"tag\": "calorimetry",\n \"popularity\": 95391\n },\n {\n \"tag\": "entireness",\n \"popularity\": 94993\n },\n {\n \"tag\": "ratline soppiness",\n \"popularity\": 94597\n },\n {\n \"tag\": "shor",\n \"popularity\": 94204\n },\n {\n \"tag\": "coprecipitation",\n \"popularity\": 93813\n },\n {\n \"tag\": "unblushingly",\n \"popularity\": 93425\n },\n {\n \"tag\": "macarize",\n \"popularity\": 93040\n },\n {\n \"tag\": "scruplesomeness",\n \"popularity\": 92657\n },\n {\n \"tag\": "offsaddle",\n \"popularity\": 92276\n },\n {\n \"tag\": "hypertragical",\n \"popularity\": 91898\n },\n {\n \"tag\": "uncassock loined",\n \"popularity\": 91522\n },\n {\n \"tag\": "interlobate",\n \"popularity\": 91149\n },\n {\n \"tag\": "releasor orrisroot stoloniferously",\n \"popularity\": 90778\n },\n {\n \"tag\": "elementoid",\n \"popularity\": 90410\n },\n {\n \"tag\": "Lentilla",\n \"popularity\": 90043\n },\n {\n \"tag\": "distressing",\n \"popularity\": 89679\n },\n {\n \"tag\": "hydrodrome",\n \"popularity\": 89318\n },\n {\n \"tag\": "Jeannette",\n \"popularity\": 88958\n },\n {\n \"tag\": "Kuli",\n \"popularity\": 88601\n },\n {\n \"tag\": "taxinomist",\n \"popularity\": 88246\n },\n {\n \"tag\": "southwestwardly",\n \"popularity\": 87894\n },\n {\n \"tag\": "polyparia",\n \"popularity\": 87543\n },\n {\n \"tag\": "exmeridian",\n \"popularity\": 87195\n },\n {\n \"tag\": "splenius regimentaled",\n \"popularity\": 86849\n },\n {\n \"tag\": "Sphaeropsidaceae",\n \"popularity\": 86505\n },\n {\n \"tag\": "unbegun",\n \"popularity\": 86163\n },\n {\n \"tag\": "something",\n \"popularity\": 85823\n },\n {\n \"tag\": "contaminable nonexpulsion",\n \"popularity\": 85486\n },\n {\n \"tag\": "douser",\n \"popularity\": 85150\n },\n {\n \"tag\": "prostrike",\n \"popularity\": 84817\n },\n {\n \"tag\": "worky",\n \"popularity\": 84485\n },\n {\n \"tag\": "folliful",\n \"popularity\": 84156\n },\n {\n \"tag\": "prioracy",\n \"popularity\": 83828\n },\n {\n \"tag\": "undermentioned",\n \"popularity\": 83503\n },\n {\n \"tag\": "Judaica",\n \"popularity\": 83179\n },\n {\n \"tag\": "multifarious",\n \"popularity\": 82858\n },\n {\n \"tag\": "poogye",\n \"popularity\": 82538\n },\n {\n \"tag\": "Sparganium",\n \"popularity\": 82221\n },\n {\n \"tag\": "thurrock",\n \"popularity\": 81905\n },\n {\n \"tag\": "outblush",\n \"popularity\": 81591\n },\n {\n \"tag\": "Strophanthus supraordination",\n \"popularity\": 81279\n },\n {\n \"tag\": "gingerroot",\n \"popularity\": 80969\n },\n {\n \"tag\": "unconscient",\n \"popularity\": 80661\n },\n {\n \"tag\": "unconstitutionally",\n \"popularity\": 80354\n },\n {\n \"tag\": "plaguily",\n \"popularity\": 80050\n },\n {\n \"tag\": "waterily equatorwards",\n \"popularity\": 79747\n },\n {\n \"tag\": "nondeposition",\n \"popularity\": 79446\n },\n {\n \"tag\": "dronishly",\n \"popularity\": 79147\n },\n {\n \"tag\": "gateado",\n \"popularity\": 78849\n },\n {\n \"tag\": "dislink",\n \"popularity\": 78553\n },\n {\n \"tag\": "Joceline",\n \"popularity\": 78259\n },\n {\n \"tag\": "amphiboliferous",\n \"popularity\": 77967\n },\n {\n \"tag\": "bushrope",\n \"popularity\": 77676\n },\n {\n \"tag\": "plumicorn sulphosalicylic",\n \"popularity\": 77387\n },\n {\n \"tag\": "nonefficiency",\n \"popularity\": 77100\n },\n {\n \"tag\": "hieroscopy",\n \"popularity\": 76815\n },\n {\n \"tag\": "causativeness",\n \"popularity\": 76531\n },\n {\n \"tag\": "swird paleoeremology",\n \"popularity\": 76249\n },\n {\n \"tag\": "camphoric",\n \"popularity\": 75968\n },\n {\n \"tag\": "retaining",\n \"popularity\": 75689\n },\n {\n \"tag\": "thyreoprotein",\n \"popularity\": 75411\n },\n {\n \"tag\": "carbona",\n \"popularity\": 75136\n },\n {\n \"tag\": "protectively",\n \"popularity\": 74861\n },\n {\n \"tag\": "mosasaur",\n \"popularity\": 74589\n },\n {\n \"tag\": "reciprocator",\n \"popularity\": 74317\n },\n {\n \"tag\": "detentive",\n \"popularity\": 74048\n },\n {\n \"tag\": "supravital",\n \"popularity\": 73780\n },\n {\n \"tag\": "Vespertilionidae",\n \"popularity\": 73513\n },\n {\n \"tag\": "parka",\n \"popularity\": 73248\n },\n {\n \"tag\": "pickaway",\n \"popularity\": 72984\n },\n {\n \"tag\": "oleaceous",\n \"popularity\": 72722\n },\n {\n \"tag\": "anticogitative",\n \"popularity\": 72462\n },\n {\n \"tag\": "woe",\n \"popularity\": 72203\n },\n {\n \"tag\": "skeuomorph",\n \"popularity\": 71945\n },\n {\n \"tag\": "helpmeet",\n \"popularity\": 71689\n },\n {\n \"tag\": "Hexactinellida brickmaking",\n \"popularity\": 71434\n },\n {\n \"tag\": "resink",\n \"popularity\": 71180\n },\n {\n \"tag\": "diluter",\n \"popularity\": 70928\n },\n {\n \"tag\": "micromicron",\n \"popularity\": 70677\n },\n {\n \"tag\": "parentage",\n \"popularity\": 70428\n },\n {\n \"tag\": "galactorrhoea",\n \"popularity\": 70180\n },\n {\n \"tag\": "gey",\n \"popularity\": 69934\n },\n {\n \"tag\": "gesticulatory",\n \"popularity\": 69689\n },\n {\n \"tag\": "wergil",\n \"popularity\": 69445\n },\n {\n \"tag\": "Lecanora",\n \"popularity\": 69202\n },\n {\n \"tag\": "malanders karst",\n \"popularity\": 68961\n },\n {\n \"tag\": "vibetoite",\n \"popularity\": 68721\n },\n {\n \"tag\": "unrequitedness",\n \"popularity\": 68483\n },\n {\n \"tag\": "outwash",\n \"popularity\": 68245\n },\n {\n \"tag\": "unsacred",\n \"popularity\": 68009\n },\n {\n \"tag\": "unabetted dividend",\n \"popularity\": 67775\n },\n {\n \"tag\": "untraveling",\n \"popularity\": 67541\n },\n {\n \"tag\": "thermobattery",\n \"popularity\": 67309\n },\n {\n \"tag\": "polypragmist",\n \"popularity\": 67078\n },\n {\n \"tag\": "irrefutableness",\n \"popularity\": 66848\n },\n {\n \"tag\": "remiges",\n \"popularity\": 66620\n },\n {\n \"tag\": "implode",\n \"popularity\": 66393\n },\n {\n \"tag\": "superfluousness",\n \"popularity\": 66166\n },\n {\n \"tag\": "croakily unalleviated",\n \"popularity\": 65942\n },\n {\n \"tag\": "edicule",\n \"popularity\": 65718\n },\n {\n \"tag\": "entophytous",\n \"popularity\": 65495\n },\n {\n \"tag\": "benefactorship Toryish",\n \"popularity\": 65274\n },\n {\n \"tag\": "pseudoamateurish",\n \"popularity\": 65054\n },\n {\n \"tag\": "flueless Iguanodontoidea snipnose",\n \"popularity\": 64835\n },\n {\n \"tag\": "zealotical Zamicrus interpole",\n \"popularity\": 64617\n },\n {\n \"tag\": "whereabout",\n \"popularity\": 64401\n },\n {\n \"tag\": "benzazide",\n \"popularity\": 64185\n },\n {\n \"tag\": "pokeweed",\n \"popularity\": 63971\n },\n {\n \"tag\": "calamitoid",\n \"popularity\": 63757\n },\n {\n \"tag\": "sporozoal",\n \"popularity\": 63545\n },\n {\n \"tag\": "physcioid Welshwoman",\n \"popularity\": 63334\n },\n {\n \"tag\": "wanting",\n \"popularity\": 63124\n },\n {\n \"tag\": "unencumbering",\n \"popularity\": 62915\n },\n {\n \"tag\": "Tupi",\n \"popularity\": 62707\n },\n {\n \"tag\": "potbank",\n \"popularity\": 62501\n },\n {\n \"tag\": "bulked",\n \"popularity\": 62295\n },\n {\n \"tag\": "uparise",\n \"popularity\": 62090\n },\n {\n \"tag\": "Sudra",\n \"popularity\": 61887\n },\n {\n \"tag\": "hyperscrupulosity",\n \"popularity\": 61684\n },\n {\n \"tag\": "subterraneously unmaid",\n \"popularity\": 61483\n },\n {\n \"tag\": "poisonousness",\n \"popularity\": 61282\n },\n {\n \"tag\": "phare",\n \"popularity\": 61083\n },\n {\n \"tag\": "dicynodont",\n \"popularity\": 60884\n },\n {\n \"tag\": "chewer",\n \"popularity\": 60687\n },\n {\n \"tag\": "uliginous",\n \"popularity\": 60490\n },\n {\n \"tag\": "tinman",\n \"popularity\": 60295\n },\n {\n \"tag\": "coconut",\n \"popularity\": 60100\n },\n {\n \"tag\": "phryganeoid",\n \"popularity\": 59907\n },\n {\n \"tag\": "bismillah",\n \"popularity\": 59714\n },\n {\n \"tag\": "tautomeric",\n \"popularity\": 59523\n },\n {\n \"tag\": "jerquer",\n \"popularity\": 59332\n },\n {\n \"tag\": "Dryopithecinae",\n \"popularity\": 59143\n },\n {\n \"tag\": "ghizite",\n \"popularity\": 58954\n },\n {\n \"tag\": "unliveable",\n \"popularity\": 58766\n },\n {\n \"tag\": "craftsmaster",\n \"popularity\": 58579\n },\n {\n \"tag\": "semiscenic",\n \"popularity\": 58394\n },\n {\n \"tag\": "danaid",\n \"popularity\": 58209\n },\n {\n \"tag\": "flawful",\n \"popularity\": 58025\n },\n {\n \"tag\": "risibleness",\n \"popularity\": 57841\n },\n {\n \"tag\": "Muscovite",\n \"popularity\": 57659\n },\n {\n \"tag\": "snaringly",\n \"popularity\": 57478\n },\n {\n \"tag\": "brilliantwise",\n \"popularity\": 57297\n },\n {\n \"tag\": "plebeity",\n \"popularity\": 57118\n },\n {\n \"tag\": "historicalness",\n \"popularity\": 56939\n },\n {\n \"tag\": "piecemeal",\n \"popularity\": 56761\n },\n {\n \"tag\": "maxillipedary",\n \"popularity\": 56584\n },\n {\n \"tag\": "Hypenantron",\n \"popularity\": 56408\n },\n {\n \"tag\": "quaintness avigate",\n \"popularity\": 56233\n },\n {\n \"tag\": "ave",\n \"popularity\": 56059\n },\n {\n \"tag\": "mediaevally",\n \"popularity\": 55885\n },\n {\n \"tag\": "brucite",\n \"popularity\": 55712\n },\n {\n \"tag\": "Schwendenerian",\n \"popularity\": 55541\n },\n {\n \"tag\": "julole",\n \"popularity\": 55370\n },\n {\n \"tag\": "palaeolith",\n \"popularity\": 55199\n },\n {\n \"tag\": "cotyledonary",\n \"popularity\": 55030\n },\n {\n \"tag\": "rond",\n \"popularity\": 54861\n },\n {\n \"tag\": "boomster tassoo",\n \"popularity\": 54694\n },\n {\n \"tag\": "cattishly",\n \"popularity\": 54527\n },\n {\n \"tag\": "tonguefence",\n \"popularity\": 54360\n },\n {\n \"tag\": "hexastylar triskele",\n \"popularity\": 54195\n },\n {\n \"tag\": "ariot",\n \"popularity\": 54030\n },\n {\n \"tag\": "intarsist",\n \"popularity\": 53867\n },\n {\n \"tag\": "Oscines",\n \"popularity\": 53704\n },\n {\n \"tag\": "Spaniolize",\n \"popularity\": 53541\n },\n {\n \"tag\": "smellfungus",\n \"popularity\": 53380\n },\n {\n \"tag\": "redisplay",\n \"popularity\": 53219\n },\n {\n \"tag\": "phosphene",\n \"popularity\": 53059\n },\n {\n \"tag\": "phycomycete",\n \"popularity\": 52900\n },\n {\n \"tag\": "prophetic",\n \"popularity\": 52741\n },\n {\n \"tag\": "overtrustful",\n \"popularity\": 52584\n },\n {\n \"tag\": "pinitol",\n \"popularity\": 52427\n },\n {\n \"tag\": "asthmatic",\n \"popularity\": 52270\n },\n {\n \"tag\": "convulsive",\n \"popularity\": 52115\n },\n {\n \"tag\": "draughtswoman",\n \"popularity\": 51960\n },\n {\n \"tag\": "unetymologizable",\n \"popularity\": 51806\n },\n {\n \"tag\": "centrarchoid",\n \"popularity\": 51652\n },\n {\n \"tag\": "mesioincisal",\n \"popularity\": 51500\n },\n {\n \"tag\": "transbaikal",\n \"popularity\": 51348\n },\n {\n \"tag\": "silveriness",\n \"popularity\": 51196\n },\n {\n \"tag\": "costotomy",\n \"popularity\": 51046\n },\n {\n \"tag\": "caracore",\n \"popularity\": 50896\n },\n {\n \"tag\": "depotentiation",\n \"popularity\": 50747\n },\n {\n \"tag\": "glossoepiglottidean",\n \"popularity\": 50598\n },\n {\n \"tag\": "upswell",\n \"popularity\": 50450\n },\n {\n \"tag\": "flecnodal",\n \"popularity\": 50303\n },\n {\n \"tag\": "coventrate",\n \"popularity\": 50157\n },\n {\n \"tag\": "duchesse",\n \"popularity\": 50011\n },\n {\n \"tag\": "excisemanship trophied",\n \"popularity\": 49866\n },\n {\n \"tag\": "cytinaceous",\n \"popularity\": 49721\n },\n {\n \"tag\": "assuringly",\n \"popularity\": 49577\n },\n {\n \"tag\": "unconducted upliftitis",\n \"popularity\": 49434\n },\n {\n \"tag\": "rachicentesis",\n \"popularity\": 49292\n },\n {\n \"tag\": "antiangular",\n \"popularity\": 49150\n },\n {\n \"tag\": "advisal",\n \"popularity\": 49008\n },\n {\n \"tag\": "birdcatcher",\n \"popularity\": 48868\n },\n {\n \"tag\": "secularistic",\n \"popularity\": 48728\n },\n {\n \"tag\": "grandeeism superinformal",\n \"popularity\": 48588\n },\n {\n \"tag\": "unapprehension",\n \"popularity\": 48449\n },\n {\n \"tag\": "excipulum",\n \"popularity\": 48311\n },\n {\n \"tag\": "decimole",\n \"popularity\": 48174\n },\n {\n \"tag\": "semidrachm",\n \"popularity\": 48037\n },\n {\n \"tag\": "uvulotome",\n \"popularity\": 47901\n },\n {\n \"tag\": "Lemaneaceae",\n \"popularity\": 47765\n },\n {\n \"tag\": "corrade",\n \"popularity\": 47630\n },\n {\n \"tag\": "Kuroshio",\n \"popularity\": 47495\n },\n {\n \"tag\": "Araliophyllum",\n \"popularity\": 47361\n },\n {\n \"tag\": "victoriousness cardiosphygmograph",\n \"popularity\": 47228\n },\n {\n \"tag\": "reinvent",\n \"popularity\": 47095\n },\n {\n \"tag\": "Macrotolagus",\n \"popularity\": 46963\n },\n {\n \"tag\": "strenuousness",\n \"popularity\": 46831\n },\n {\n \"tag\": "deviability",\n \"popularity\": 46700\n },\n {\n \"tag\": "phyllospondylous",\n \"popularity\": 46570\n },\n {\n \"tag\": "bisect rudderhole",\n \"popularity\": 46440\n },\n {\n \"tag\": "crownwork",\n \"popularity\": 46311\n },\n {\n \"tag\": "Ascalabota",\n \"popularity\": 46182\n },\n {\n \"tag\": "prostatomyomectomy",\n \"popularity\": 46054\n },\n {\n \"tag\": "neurosyphilis",\n \"popularity\": 45926\n },\n {\n \"tag\": "tabloid scraplet",\n \"popularity\": 45799\n },\n {\n \"tag\": "nonmedullated servility",\n \"popularity\": 45673\n },\n {\n \"tag\": "melopoeic practicalization",\n \"popularity\": 45547\n },\n {\n \"tag\": "nonrhythmic",\n \"popularity\": 45421\n },\n {\n \"tag\": "deplorer",\n \"popularity\": 45296\n },\n {\n \"tag\": "Ophion",\n \"popularity\": 45172\n },\n {\n \"tag\": "subprioress",\n \"popularity\": 45048\n },\n {\n \"tag\": "semiregular",\n \"popularity\": 44925\n },\n {\n \"tag\": "praelection",\n \"popularity\": 44802\n },\n {\n \"tag\": "discinct",\n \"popularity\": 44680\n },\n {\n \"tag\": "preplace",\n \"popularity\": 44558\n },\n {\n \"tag\": "paternoster",\n \"popularity\": 44437\n },\n {\n \"tag\": "suboccipital",\n \"popularity\": 44316\n },\n {\n \"tag\": "Teutophil",\n \"popularity\": 44196\n },\n {\n \"tag\": "tracheole",\n \"popularity\": 44076\n },\n {\n \"tag\": "subsmile",\n \"popularity\": 43957\n },\n {\n \"tag\": "nonapostatizing",\n \"popularity\": 43839\n },\n {\n \"tag\": "cleidotomy",\n \"popularity\": 43720\n },\n {\n \"tag\": "hingle",\n \"popularity\": 43603\n },\n {\n \"tag\": "jocoque",\n \"popularity\": 43486\n },\n {\n \"tag\": "trundler notidanian",\n \"popularity\": 43369\n },\n {\n \"tag\": "strangling misdaub",\n \"popularity\": 43253\n },\n {\n \"tag\": "noncancellable",\n \"popularity\": 43137\n },\n {\n \"tag\": "lavabo",\n \"popularity\": 43022\n },\n {\n \"tag\": "lanterloo",\n \"popularity\": 42907\n },\n {\n \"tag\": "uncitizenly",\n \"popularity\": 42793\n },\n {\n \"tag\": "autoturning",\n \"popularity\": 42679\n },\n {\n \"tag\": "Haganah",\n \"popularity\": 42566\n },\n {\n \"tag\": "Glecoma",\n \"popularity\": 42453\n },\n {\n \"tag\": "membered",\n \"popularity\": 42341\n },\n {\n \"tag\": "consuetudinal",\n \"popularity\": 42229\n },\n {\n \"tag\": "gatehouse",\n \"popularity\": 42117\n },\n {\n \"tag\": "tetherball",\n \"popularity\": 42006\n },\n {\n \"tag\": "counterrevolutionist numismatical",\n \"popularity\": 41896\n },\n {\n \"tag\": "pagehood plateiasmus",\n \"popularity\": 41786\n },\n {\n \"tag\": "pelterer",\n \"popularity\": 41676\n },\n {\n \"tag\": "splenemphraxis",\n \"popularity\": 41567\n },\n {\n \"tag\": "Crypturidae",\n \"popularity\": 41458\n },\n {\n \"tag\": "caboodle",\n \"popularity\": 41350\n },\n {\n \"tag\": "Filaria",\n \"popularity\": 41242\n },\n {\n \"tag\": "noninvincibility",\n \"popularity\": 41135\n },\n {\n \"tag\": "preadvertisement",\n \"popularity\": 41028\n },\n {\n \"tag\": "bathrobe",\n \"popularity\": 40921\n },\n {\n \"tag\": "nitrifier",\n \"popularity\": 40815\n },\n {\n \"tag\": "furthermore",\n \"popularity\": 40709\n },\n {\n \"tag\": "recrate",\n \"popularity\": 40604\n },\n {\n \"tag\": "inexist",\n \"popularity\": 40499\n },\n {\n \"tag\": "Mocoan",\n \"popularity\": 40395\n },\n {\n \"tag\": "forint",\n \"popularity\": 40291\n },\n {\n \"tag\": "cardiomyoliposis",\n \"popularity\": 40187\n },\n {\n \"tag\": "channeling",\n \"popularity\": 40084\n },\n {\n \"tag\": "quebrachine",\n \"popularity\": 39981\n },\n {\n \"tag\": "magistery",\n \"popularity\": 39879\n },\n {\n \"tag\": "koko",\n \"popularity\": 39777\n },\n {\n \"tag\": "nobilify",\n \"popularity\": 39676\n },\n {\n \"tag\": "articulate taprooted",\n \"popularity\": 39575\n },\n {\n \"tag\": "cardiotonic Nicaragua",\n \"popularity\": 39474\n },\n {\n \"tag\": "assertiveness",\n \"popularity\": 39374\n },\n {\n \"tag\": "springtail",\n \"popularity\": 39274\n },\n {\n \"tag\": "spontoon",\n \"popularity\": 39174\n },\n {\n \"tag\": "plesiobiosis",\n \"popularity\": 39075\n },\n {\n \"tag\": "rooinek",\n \"popularity\": 38976\n },\n {\n \"tag\": "hairif falsehood",\n \"popularity\": 38878\n },\n {\n \"tag\": "synodally",\n \"popularity\": 38780\n },\n {\n \"tag\": "biodynamics",\n \"popularity\": 38683\n },\n {\n \"tag\": "trickling",\n \"popularity\": 38585\n },\n {\n \"tag\": "oxfly daystar",\n \"popularity\": 38489\n },\n {\n \"tag\": "epicycloidal",\n \"popularity\": 38392\n },\n {\n \"tag\": "shorthand",\n \"popularity\": 38296\n },\n {\n \"tag\": "herpolhode",\n \"popularity\": 38201\n },\n {\n \"tag\": "polysynthesism",\n \"popularity\": 38105\n },\n {\n \"tag\": "cany",\n \"popularity\": 38010\n },\n {\n \"tag\": "sideage",\n \"popularity\": 37916\n },\n {\n \"tag\": "strainableness",\n \"popularity\": 37822\n },\n {\n \"tag\": "superformidable",\n \"popularity\": 37728\n },\n {\n \"tag\": "slendang",\n \"popularity\": 37634\n },\n {\n \"tag\": "impropriation",\n \"popularity\": 37541\n },\n {\n \"tag\": "ficklehearted",\n \"popularity\": 37449\n },\n {\n \"tag\": "wintrify",\n \"popularity\": 37356\n },\n {\n \"tag\": "geomorphogenist",\n \"popularity\": 37264\n },\n {\n \"tag\": "smuggleable",\n \"popularity\": 37173\n },\n {\n \"tag\": "delapsion",\n \"popularity\": 37081\n },\n {\n \"tag\": "projective",\n \"popularity\": 36990\n },\n {\n \"tag\": "unglue exfoliation",\n \"popularity\": 36900\n },\n {\n \"tag\": "Acerae",\n \"popularity\": 36810\n },\n {\n \"tag\": "unstaged",\n \"popularity\": 36720\n },\n {\n \"tag\": "ranal",\n \"popularity\": 36630\n },\n {\n \"tag\": "worrier",\n \"popularity\": 36541\n },\n {\n \"tag\": "unhid",\n \"popularity\": 36452\n },\n {\n \"tag\": "adequation",\n \"popularity\": 36363\n },\n {\n \"tag\": "strongylid Sokotri",\n \"popularity\": 36275\n },\n {\n \"tag\": "fumingly",\n \"popularity\": 36187\n },\n {\n \"tag\": "gynosporangium phaenogenetic",\n \"popularity\": 36100\n },\n {\n \"tag\": "uniunguiculate",\n \"popularity\": 36012\n },\n {\n \"tag\": "prudelike",\n \"popularity\": 35926\n },\n {\n \"tag\": "seminomata",\n \"popularity\": 35839\n },\n {\n \"tag\": "trinklet",\n \"popularity\": 35753\n },\n {\n \"tag\": "risorial",\n \"popularity\": 35667\n },\n {\n \"tag\": "pericardiocentesis",\n \"popularity\": 35581\n },\n {\n \"tag\": "filmist",\n \"popularity\": 35496\n },\n {\n \"tag\": "Nana",\n \"popularity\": 35411\n },\n {\n \"tag\": "cynipoid",\n \"popularity\": 35326\n },\n {\n \"tag\": "cteniform",\n \"popularity\": 35242\n },\n {\n \"tag\": "semiflex",\n \"popularity\": 35158\n },\n {\n \"tag\": "solstitially",\n \"popularity\": 35074\n },\n {\n \"tag\": "Algarsife",\n \"popularity\": 34991\n },\n {\n \"tag\": "noncriminal",\n \"popularity\": 34908\n },\n {\n \"tag\": "compassion",\n \"popularity\": 34825\n },\n {\n \"tag\": "Buddhic",\n \"popularity\": 34743\n },\n {\n \"tag\": "vellicative dactylically hotfoot",\n \"popularity\": 34661\n },\n {\n \"tag\": "chicory",\n \"popularity\": 34579\n },\n {\n \"tag\": "transperitoneally",\n \"popularity\": 34497\n },\n {\n \"tag\": "pennae",\n \"popularity\": 34416\n },\n {\n \"tag\": "Flamandize",\n \"popularity\": 34335\n },\n {\n \"tag\": "underviewer",\n \"popularity\": 34254\n },\n {\n \"tag\": "assoil",\n \"popularity\": 34174\n },\n {\n \"tag\": "saccharobacillus",\n \"popularity\": 34094\n },\n {\n \"tag\": "biacetylene",\n \"popularity\": 34014\n },\n {\n \"tag\": "mouchardism",\n \"popularity\": 33935\n },\n {\n \"tag\": "anisomeric",\n \"popularity\": 33856\n },\n {\n \"tag\": "digestive",\n \"popularity\": 33777\n },\n {\n \"tag\": "darlingly",\n \"popularity\": 33698\n },\n {\n \"tag\": "liman",\n \"popularity\": 33620\n },\n {\n \"tag\": "soldanrie",\n \"popularity\": 33542\n },\n {\n \"tag\": "sully",\n \"popularity\": 33464\n },\n {\n \"tag\": "brightsmith",\n \"popularity\": 33387\n },\n {\n \"tag\": "inwrap antiliturgist ureterocervical",\n \"popularity\": 33309\n },\n {\n \"tag\": "discommodity",\n \"popularity\": 33232\n },\n {\n \"tag\": "typical aggrandizer",\n \"popularity\": 33156\n },\n {\n \"tag\": "xenogeny",\n \"popularity\": 33079\n },\n {\n \"tag\": "uncountrified",\n \"popularity\": 33003\n },\n {\n \"tag\": "Podarge",\n \"popularity\": 32928\n },\n {\n \"tag\": "uninterviewed",\n \"popularity\": 32852\n },\n {\n \"tag\": "underprior",\n \"popularity\": 32777\n },\n {\n \"tag\": "leiomyomatous",\n \"popularity\": 32702\n },\n {\n \"tag\": "postdysenteric",\n \"popularity\": 32627\n },\n {\n \"tag\": "Fusicladium",\n \"popularity\": 32553\n },\n {\n \"tag\": "Dulcinea",\n \"popularity\": 32478\n },\n {\n \"tag\": "interspersion",\n \"popularity\": 32404\n },\n {\n \"tag\": "preobligate",\n \"popularity\": 32331\n },\n {\n \"tag\": "subaggregate",\n \"popularity\": 32257\n },\n {\n \"tag\": "grammarianism",\n \"popularity\": 32184\n },\n {\n \"tag\": "palikar",\n \"popularity\": 32111\n },\n {\n \"tag\": "facileness",\n \"popularity\": 32039\n },\n {\n \"tag\": "deuterofibrinose",\n \"popularity\": 31966\n },\n {\n \"tag\": "pseudesthesia",\n \"popularity\": 31894\n },\n {\n \"tag\": "sedimentary",\n \"popularity\": 31822\n },\n {\n \"tag\": "typewrite",\n \"popularity\": 31751\n },\n {\n \"tag\": "immemorable",\n \"popularity\": 31679\n },\n {\n \"tag\": "Myrtus",\n \"popularity\": 31608\n },\n {\n \"tag\": "hauchecornite",\n \"popularity\": 31537\n },\n {\n \"tag\": "galleylike",\n \"popularity\": 31467\n },\n {\n \"tag\": "thimber",\n \"popularity\": 31396\n },\n {\n \"tag\": "Hegelianism",\n \"popularity\": 31326\n },\n {\n \"tag\": "strig",\n \"popularity\": 31256\n },\n {\n \"tag\": "skyre",\n \"popularity\": 31187\n },\n {\n \"tag\": "eupepticism",\n \"popularity\": 31117\n },\n {\n \"tag\": "eponymism",\n \"popularity\": 31048\n },\n {\n \"tag\": "flunkeyhood",\n \"popularity\": 30979\n },\n {\n \"tag\": "Abama",\n \"popularity\": 30911\n },\n {\n \"tag\": "adiadochokinesis",\n \"popularity\": 30842\n },\n {\n \"tag\": "spendthrifty",\n \"popularity\": 30774\n },\n {\n \"tag\": "chalcedony",\n \"popularity\": 30706\n },\n {\n \"tag\": "authorism",\n \"popularity\": 30638\n },\n {\n \"tag\": "nasturtium",\n \"popularity\": 30571\n },\n {\n \"tag\": "Acanthocereus",\n \"popularity\": 30504\n },\n {\n \"tag\": "uncollapsible",\n \"popularity\": 30437\n },\n {\n \"tag\": "excursionist",\n \"popularity\": 30370\n },\n {\n \"tag\": "fogbow",\n \"popularity\": 30303\n },\n {\n \"tag\": "overlie",\n \"popularity\": 30237\n },\n {\n \"tag\": "velours",\n \"popularity\": 30171\n },\n {\n \"tag\": "zoodendria madrigal stagbush",\n \"popularity\": 30105\n },\n {\n \"tag\": "imi",\n \"popularity\": 30039\n },\n {\n \"tag\": "cojudge",\n \"popularity\": 29974\n },\n {\n \"tag\": "depurate argal",\n \"popularity\": 29909\n },\n {\n \"tag\": "unrecognition",\n \"popularity\": 29844\n },\n {\n \"tag\": "paunchful",\n \"popularity\": 29779\n },\n {\n \"tag\": "invalued",\n \"popularity\": 29714\n },\n {\n \"tag\": "probang",\n \"popularity\": 29650\n },\n {\n \"tag\": "chetvert",\n \"popularity\": 29586\n },\n {\n \"tag\": "enactable",\n \"popularity\": 29522\n },\n {\n \"tag\": "detoxicate adhibit",\n \"popularity\": 29458\n },\n {\n \"tag\": "kullaite",\n \"popularity\": 29395\n },\n {\n \"tag\": "undazzling",\n \"popularity\": 29332\n },\n {\n \"tag\": "excalation",\n \"popularity\": 29269\n },\n {\n \"tag\": "sievings",\n \"popularity\": 29206\n },\n {\n \"tag\": "disenthral",\n \"popularity\": 29143\n },\n {\n \"tag\": "disinterestedly",\n \"popularity\": 29081\n },\n {\n \"tag\": "stanner",\n \"popularity\": 29018\n },\n {\n \"tag\": "recapitulative",\n \"popularity\": 28956\n },\n {\n \"tag\": "objectivist",\n \"popularity\": 28895\n },\n {\n \"tag\": "hypermetropia",\n \"popularity\": 28833\n },\n {\n \"tag\": "incumbency",\n \"popularity\": 28772\n },\n {\n \"tag\": "protegee",\n \"popularity\": 28711\n },\n {\n \"tag\": "zealotic",\n \"popularity\": 28650\n },\n {\n \"tag\": "predebit",\n \"popularity\": 28589\n },\n {\n \"tag\": "cupolar",\n \"popularity\": 28528\n },\n {\n \"tag\": "unattributed",\n \"popularity\": 28468\n },\n {\n \"tag\": "louisine",\n \"popularity\": 28408\n },\n {\n \"tag\": "illustrate",\n \"popularity\": 28348\n },\n {\n \"tag\": "inofficiousness",\n \"popularity\": 28288\n },\n {\n \"tag\": "Americawards",\n \"popularity\": 28228\n },\n {\n \"tag\": "foreflap",\n \"popularity\": 28169\n },\n {\n \"tag\": "eruditeness",\n \"popularity\": 28110\n },\n {\n \"tag\": "copiopsia",\n \"popularity\": 28051\n },\n {\n \"tag\": "sporuliferous",\n \"popularity\": 27992\n },\n {\n \"tag\": "muttering",\n \"popularity\": 27934\n },\n {\n \"tag\": "prepsychology adrip",\n \"popularity\": 27875\n },\n {\n \"tag\": "unfriendly",\n \"popularity\": 27817\n },\n {\n \"tag\": "sulphanilic",\n \"popularity\": 27759\n },\n {\n \"tag\": "Coelococcus",\n \"popularity\": 27701\n },\n {\n \"tag\": "undoubtfulness",\n \"popularity\": 27643\n },\n {\n \"tag\": "flaringly",\n \"popularity\": 27586\n },\n {\n \"tag\": "unordain",\n \"popularity\": 27529\n },\n {\n \"tag\": "fratchety",\n \"popularity\": 27472\n },\n {\n \"tag\": "decadentism dolefully",\n \"popularity\": 27415\n },\n {\n \"tag\": "synthronus",\n \"popularity\": 27358\n },\n {\n \"tag\": "maiid",\n \"popularity\": 27301\n },\n {\n \"tag\": "rhinobyon",\n \"popularity\": 27245\n },\n {\n \"tag\": "Didynamia",\n \"popularity\": 27189\n },\n {\n \"tag\": "millionairedom",\n \"popularity\": 27133\n },\n {\n \"tag\": "mulierine",\n \"popularity\": 27077\n },\n {\n \"tag\": "Mayo",\n \"popularity\": 27021\n },\n {\n \"tag\": "perceivedness",\n \"popularity\": 26966\n },\n {\n \"tag\": "unadoration",\n \"popularity\": 26911\n },\n {\n \"tag\": "regraft",\n \"popularity\": 26856\n },\n {\n \"tag\": "witch",\n \"popularity\": 26801\n },\n {\n \"tag\": "ungrow",\n \"popularity\": 26746\n },\n {\n \"tag\": "glossopharyngeus",\n \"popularity\": 26691\n },\n {\n \"tag\": "unstirrable",\n \"popularity\": 26637\n },\n {\n \"tag\": "synodsman",\n \"popularity\": 26583\n },\n {\n \"tag\": "placentalian",\n \"popularity\": 26529\n },\n {\n \"tag\": "corpulently",\n \"popularity\": 26475\n },\n {\n \"tag\": "photochromoscope",\n \"popularity\": 26421\n },\n {\n \"tag\": "indusiate retinasphaltum chokestrap",\n \"popularity\": 26368\n },\n {\n \"tag\": "murdrum",\n \"popularity\": 26314\n },\n {\n \"tag\": "belatedness",\n \"popularity\": 26261\n },\n {\n \"tag\": "Cochin",\n \"popularity\": 26208\n },\n {\n \"tag\": "Leonist",\n \"popularity\": 26155\n },\n {\n \"tag\": "keeker confined",\n \"popularity\": 26102\n },\n {\n \"tag\": "unintellectual",\n \"popularity\": 26050\n },\n {\n \"tag\": "nymphaline bait",\n \"popularity\": 25997\n },\n {\n \"tag\": "sarcosporidiosis",\n \"popularity\": 25945\n },\n {\n \"tag\": "catawamptiously",\n \"popularity\": 25893\n },\n {\n \"tag\": "outshame",\n \"popularity\": 25841\n },\n {\n \"tag\": "animalism",\n \"popularity\": 25790\n },\n {\n \"tag\": "epithalamial",\n \"popularity\": 25738\n },\n {\n \"tag\": "ganner",\n \"popularity\": 25687\n },\n {\n \"tag\": "desilicify",\n \"popularity\": 25635\n },\n {\n \"tag\": "dandyism",\n \"popularity\": 25584\n },\n {\n \"tag\": "hyleg",\n \"popularity\": 25533\n },\n {\n \"tag\": "photophysical",\n \"popularity\": 25483\n },\n {\n \"tag\": "underload",\n \"popularity\": 25432\n },\n {\n \"tag\": "unintrusive",\n \"popularity\": 25382\n },\n {\n \"tag\": "succinamic",\n \"popularity\": 25331\n },\n {\n \"tag\": "matchy",\n \"popularity\": 25281\n },\n {\n \"tag\": "concordal",\n \"popularity\": 25231\n },\n {\n \"tag\": "exteriority",\n \"popularity\": 25181\n },\n {\n \"tag\": "sterculiad",\n \"popularity\": 25132\n },\n {\n \"tag\": "sulfoxylic",\n \"popularity\": 25082\n },\n {\n \"tag\": "oversubscription",\n \"popularity\": 25033\n },\n {\n \"tag\": "chiasmic",\n \"popularity\": 24984\n },\n {\n \"tag\": "pseudoparthenogenesis",\n \"popularity\": 24935\n },\n {\n \"tag\": "indorse",\n \"popularity\": 24886\n },\n {\n \"tag\": "Krishnaite",\n \"popularity\": 24837\n },\n {\n \"tag\": "calcinize",\n \"popularity\": 24788\n },\n {\n \"tag\": "rhodium",\n \"popularity\": 24740\n },\n {\n \"tag\": "tragopan",\n \"popularity\": 24692\n },\n {\n \"tag\": "overwhelmingly",\n \"popularity\": 24643\n },\n {\n \"tag\": "procidence accorporate",\n \"popularity\": 24595\n },\n {\n \"tag\": "polemize speelless",\n \"popularity\": 24548\n },\n {\n \"tag\": "radiocarpal goran",\n \"popularity\": 24500\n },\n {\n \"tag\": "counteroffer Pelodytes",\n \"popularity\": 24452\n },\n {\n \"tag\": "lionhearted",\n \"popularity\": 24405\n },\n {\n \"tag\": "paramastoid",\n \"popularity\": 24358\n },\n {\n \"tag\": "murine",\n \"popularity\": 24310\n },\n {\n \"tag\": "woodbined",\n \"popularity\": 24263\n },\n {\n \"tag\": "packthread",\n \"popularity\": 24217\n },\n {\n \"tag\": "citreous",\n \"popularity\": 24170\n },\n {\n \"tag\": "unfallaciously",\n \"popularity\": 24123\n },\n {\n \"tag\": "tentwork reincarnadine",\n \"popularity\": 24077\n },\n {\n \"tag\": "verminousness",\n \"popularity\": 24030\n },\n {\n \"tag\": "sillometer",\n \"popularity\": 23984\n },\n {\n \"tag\": "jointy",\n \"popularity\": 23938\n },\n {\n \"tag\": "streptolysin",\n \"popularity\": 23892\n },\n {\n \"tag\": "Florentinism",\n \"popularity\": 23847\n },\n {\n \"tag\": "monosomatous",\n \"popularity\": 23801\n },\n {\n \"tag\": "capsulociliary",\n \"popularity\": 23756\n },\n {\n \"tag\": "organum",\n \"popularity\": 23710\n },\n {\n \"tag\": "overtly",\n \"popularity\": 23665\n },\n {\n \"tag\": "ophthalmoscopical",\n \"popularity\": 23620\n },\n {\n \"tag\": "supposititiously",\n \"popularity\": 23575\n },\n {\n \"tag\": "radiochemistry",\n \"popularity\": 23530\n },\n {\n \"tag\": "flaxtail",\n \"popularity\": 23486\n },\n {\n \"tag\": "pretympanic",\n \"popularity\": 23441\n },\n {\n \"tag\": "auscultation",\n \"popularity\": 23397\n },\n {\n \"tag\": "hairdresser",\n \"popularity\": 23352\n },\n {\n \"tag\": "chaffless",\n \"popularity\": 23308\n },\n {\n \"tag\": "polioencephalitis",\n \"popularity\": 23264\n },\n {\n \"tag\": "axolotl",\n \"popularity\": 23220\n },\n {\n \"tag\": "smous",\n \"popularity\": 23177\n },\n {\n \"tag\": "morgen disenamour toothed",\n \"popularity\": 23133\n },\n {\n \"tag\": "chaiseless",\n \"popularity\": 23089\n },\n {\n \"tag\": "frugally",\n \"popularity\": 23046\n },\n {\n \"tag\": "combustive antievolutionist cinenegative",\n \"popularity\": 23003\n },\n {\n \"tag\": "malacolite",\n \"popularity\": 22960\n },\n {\n \"tag\": "borne",\n \"popularity\": 22917\n },\n {\n \"tag\": "mercaptole",\n \"popularity\": 22874\n },\n {\n \"tag\": "judicatory",\n \"popularity\": 22831\n },\n {\n \"tag\": "noctivagation",\n \"popularity\": 22789\n },\n {\n \"tag\": "synthete",\n \"popularity\": 22746\n },\n {\n \"tag\": "tomboyism",\n \"popularity\": 22704\n },\n {\n \"tag\": "serranoid",\n \"popularity\": 22661\n },\n {\n \"tag\": "impostorism",\n \"popularity\": 22619\n },\n {\n \"tag\": "flagellosis Talitha",\n \"popularity\": 22577\n },\n {\n \"tag\": "pseudoviscous",\n \"popularity\": 22535\n },\n {\n \"tag\": "Galleriidae",\n \"popularity\": 22494\n },\n {\n \"tag\": "undulation didelph Comintern",\n \"popularity\": 22452\n },\n {\n \"tag\": "triangulopyramidal",\n \"popularity\": 22411\n },\n {\n \"tag\": "middlings",\n \"popularity\": 22369\n },\n {\n \"tag\": "piperazin",\n \"popularity\": 22328\n },\n {\n \"tag\": "endostitis",\n \"popularity\": 22287\n },\n {\n \"tag\": "swordlike",\n \"popularity\": 22246\n },\n {\n \"tag\": "forthwith",\n \"popularity\": 22205\n },\n {\n \"tag\": "menaceful",\n \"popularity\": 22164\n },\n {\n \"tag\": "explantation defective",\n \"popularity\": 22123\n },\n {\n \"tag\": "arrear",\n \"popularity\": 22083\n },\n {\n \"tag\": "engraft",\n \"popularity\": 22042\n },\n {\n \"tag\": "revolunteer",\n \"popularity\": 22002\n },\n {\n \"tag\": "foliaceous",\n \"popularity\": 21962\n },\n {\n \"tag\": "pseudograph",\n \"popularity\": 21922\n },\n {\n \"tag\": "maenaite",\n \"popularity\": 21882\n },\n {\n \"tag\": "interfinger",\n \"popularity\": 21842\n },\n {\n \"tag\": "macroscopically",\n \"popularity\": 21802\n },\n {\n \"tag\": "bluewood",\n \"popularity\": 21762\n },\n {\n \"tag\": "chikara",\n \"popularity\": 21723\n },\n {\n \"tag\": "reprehension diazeuxis nickelous",\n \"popularity\": 21683\n },\n {\n \"tag\": "vacuation",\n \"popularity\": 21644\n },\n {\n \"tag\": "Sartish",\n \"popularity\": 21605\n },\n {\n \"tag\": "pseudogyny",\n \"popularity\": 21566\n },\n {\n \"tag\": "friedcake",\n \"popularity\": 21527\n },\n {\n \"tag\": "thraw",\n \"popularity\": 21488\n },\n {\n \"tag\": "bifid",\n \"popularity\": 21449\n },\n {\n \"tag\": "truthlessly",\n \"popularity\": 21411\n },\n {\n \"tag\": "lungy",\n \"popularity\": 21372\n },\n {\n \"tag\": "fluoborite",\n \"popularity\": 21334\n },\n {\n \"tag\": "anthropolithic",\n \"popularity\": 21295\n },\n {\n \"tag\": "coachee straw",\n \"popularity\": 21257\n },\n {\n \"tag\": "dehorner Grecize",\n \"popularity\": 21219\n },\n {\n \"tag\": "spondylopyosis",\n \"popularity\": 21181\n },\n {\n \"tag\": "institutionary",\n \"popularity\": 21143\n },\n {\n \"tag\": "agentry",\n \"popularity\": 21105\n },\n {\n \"tag\": "musing bietle",\n \"popularity\": 21068\n },\n {\n \"tag\": "cormophyte",\n \"popularity\": 21030\n },\n {\n \"tag\": "semielliptic",\n \"popularity\": 20993\n },\n {\n \"tag\": "ependytes",\n \"popularity\": 20955\n },\n {\n \"tag\": "coachmaster",\n \"popularity\": 20918\n },\n {\n \"tag\": "overexuberant",\n \"popularity\": 20881\n },\n {\n \"tag\": "selectable",\n \"popularity\": 20844\n },\n {\n \"tag\": "saclike",\n \"popularity\": 20807\n },\n {\n \"tag\": "mullion",\n \"popularity\": 20770\n },\n {\n \"tag\": "pantheonize prevalency",\n \"popularity\": 20733\n },\n {\n \"tag\": "trophosperm",\n \"popularity\": 20697\n },\n {\n \"tag\": "paraphrasist",\n \"popularity\": 20660\n },\n {\n \"tag\": "undercarry",\n \"popularity\": 20624\n },\n {\n \"tag\": "thallogenic",\n \"popularity\": 20587\n },\n {\n \"tag\": "bulgy forbid",\n \"popularity\": 20551\n },\n {\n \"tag\": "proliquor gratulatory",\n \"popularity\": 20515\n },\n {\n \"tag\": "booker",\n \"popularity\": 20479\n },\n {\n \"tag\": "wizen",\n \"popularity\": 20443\n },\n {\n \"tag\": "synchondrosially",\n \"popularity\": 20407\n },\n {\n \"tag\": "herbless",\n \"popularity\": 20371\n },\n {\n \"tag\": "arfvedsonite",\n \"popularity\": 20336\n },\n {\n \"tag\": "Neuroptera",\n \"popularity\": 20300\n },\n {\n \"tag\": "fingerstone",\n \"popularity\": 20265\n },\n {\n \"tag\": "Odontoglossae",\n \"popularity\": 20229\n },\n {\n \"tag\": "transmigrator",\n \"popularity\": 20194\n },\n {\n \"tag\": "Dehaites",\n \"popularity\": 20159\n },\n {\n \"tag\": "Molinist",\n \"popularity\": 20124\n },\n {\n \"tag\": "novelistic",\n \"popularity\": 20089\n },\n {\n \"tag\": "astelic",\n \"popularity\": 20054\n },\n {\n \"tag\": "pyelometry",\n \"popularity\": 20019\n },\n {\n \"tag\": "pigmentation",\n \"popularity\": 19984\n },\n {\n \"tag\": "epinaos",\n \"popularity\": 19950\n },\n {\n \"tag\": "outdare",\n \"popularity\": 19915\n },\n {\n \"tag\": "Funje philaristocracy",\n \"popularity\": 19881\n },\n {\n \"tag\": "keddah",\n \"popularity\": 19846\n },\n {\n \"tag\": "axoidean",\n \"popularity\": 19812\n },\n {\n \"tag\": "ovule",\n \"popularity\": 19778\n },\n {\n \"tag\": "solidify",\n \"popularity\": 19744\n },\n {\n \"tag\": "noncelestial",\n \"popularity\": 19710\n },\n {\n \"tag\": "overmultiplication",\n \"popularity\": 19676\n },\n {\n \"tag\": "hexatetrahedron",\n \"popularity\": 19642\n },\n {\n \"tag\": "pliciform",\n \"popularity\": 19609\n },\n {\n \"tag\": "zimbalon",\n \"popularity\": 19575\n },\n {\n \"tag\": "annexational",\n \"popularity\": 19542\n },\n {\n \"tag\": "eurhodol",\n \"popularity\": 19508\n },\n {\n \"tag\": "yark",\n \"popularity\": 19475\n },\n {\n \"tag\": "illegality nitroalizarin",\n \"popularity\": 19442\n },\n {\n \"tag\": "quadratum",\n \"popularity\": 19409\n },\n {\n \"tag\": "saccharine",\n \"popularity\": 19376\n },\n {\n \"tag\": "unemploy",\n \"popularity\": 19343\n },\n {\n \"tag\": "uniclinal unipotent",\n \"popularity\": 19310\n },\n {\n \"tag\": "turbo",\n \"popularity\": 19277\n },\n {\n \"tag\": "sybarism",\n \"popularity\": 19244\n },\n {\n \"tag\": "motacilline",\n \"popularity\": 19212\n },\n {\n \"tag\": "weaselly",\n \"popularity\": 19179\n },\n {\n \"tag\": "plastid",\n \"popularity\": 19147\n },\n {\n \"tag\": "wasting",\n \"popularity\": 19114\n },\n {\n \"tag\": "begrime fluting",\n \"popularity\": 19082\n },\n {\n \"tag\": "Nephilinae",\n \"popularity\": 19050\n },\n {\n \"tag\": "disregardance",\n \"popularity\": 19018\n },\n {\n \"tag\": "Shakerlike",\n \"popularity\": 18986\n },\n {\n \"tag\": "uniped",\n \"popularity\": 18954\n },\n {\n \"tag\": "knap",\n \"popularity\": 18922\n },\n {\n \"tag\": "electivism undergardener",\n \"popularity\": 18890\n },\n {\n \"tag\": "hulverheaded",\n \"popularity\": 18858\n },\n {\n \"tag\": "unruptured",\n \"popularity\": 18827\n },\n {\n \"tag\": "solemnize credently",\n \"popularity\": 18795\n },\n {\n \"tag\": "pentastomoid possessingly",\n \"popularity\": 18764\n },\n {\n \"tag\": "octose",\n \"popularity\": 18733\n },\n {\n \"tag\": "psithurism indefensibility",\n \"popularity\": 18701\n },\n {\n \"tag\": "torrentuous cyanometer subcrenate",\n \"popularity\": 18670\n },\n {\n \"tag\": "photoplaywright tapaculo",\n \"popularity\": 18639\n },\n {\n \"tag\": "univalence",\n \"popularity\": 18608\n },\n {\n \"tag\": "Porthetria",\n \"popularity\": 18577\n },\n {\n \"tag\": "funambulo",\n \"popularity\": 18546\n },\n {\n \"tag\": "pedion",\n \"popularity\": 18515\n },\n {\n \"tag\": "horticulturally",\n \"popularity\": 18485\n },\n {\n \"tag\": "marennin",\n \"popularity\": 18454\n },\n {\n \"tag\": "horselaugh",\n \"popularity\": 18423\n },\n {\n \"tag\": "semiexecutive",\n \"popularity\": 18393\n },\n {\n \"tag\": "Monopteridae",\n \"popularity\": 18363\n },\n {\n \"tag\": "commonable",\n \"popularity\": 18332\n },\n {\n \"tag\": "dreariment",\n \"popularity\": 18302\n },\n {\n \"tag\": "disbud",\n \"popularity\": 18272\n },\n {\n \"tag\": "monocled",\n \"popularity\": 18242\n },\n {\n \"tag\": "hurlbarrow",\n \"popularity\": 18212\n },\n {\n \"tag\": "opiateproof",\n \"popularity\": 18182\n },\n {\n \"tag\": "Fahrenheit",\n \"popularity\": 18152\n },\n {\n \"tag\": "writhed",\n \"popularity\": 18122\n },\n {\n \"tag\": "Volstead",\n \"popularity\": 18093\n },\n {\n \"tag\": "yesternight",\n \"popularity\": 18063\n },\n {\n \"tag\": "readmittance",\n \"popularity\": 18033\n },\n {\n \"tag\": "reiterable",\n \"popularity\": 18004\n },\n {\n \"tag\": "triquetral",\n \"popularity\": 17975\n },\n {\n \"tag\": "guillotinement",\n \"popularity\": 17945\n },\n {\n \"tag\": "repermission",\n \"popularity\": 17916\n },\n {\n \"tag\": "assishly",\n \"popularity\": 17887\n },\n {\n \"tag\": "daidle",\n \"popularity\": 17858\n },\n {\n \"tag\": "prismatoid",\n \"popularity\": 17829\n },\n {\n \"tag\": "irreptitious",\n \"popularity\": 17800\n },\n {\n \"tag\": "sourdeline",\n \"popularity\": 17771\n },\n {\n \"tag\": "Austrian",\n \"popularity\": 17742\n },\n {\n \"tag\": "psychorrhagic",\n \"popularity\": 17713\n },\n {\n \"tag\": "Monumbo",\n \"popularity\": 17685\n },\n {\n \"tag\": "cloiochoanitic",\n \"popularity\": 17656\n },\n {\n \"tag\": "hant",\n \"popularity\": 17628\n },\n {\n \"tag\": "roily pulldown",\n \"popularity\": 17599\n },\n {\n \"tag\": "recongratulation",\n \"popularity\": 17571\n },\n {\n \"tag\": "Peking",\n \"popularity\": 17543\n },\n {\n \"tag\": "erdvark",\n \"popularity\": 17514\n },\n {\n \"tag\": "antimnemonic",\n \"popularity\": 17486\n },\n {\n \"tag\": "noncapillarity",\n \"popularity\": 17458\n },\n {\n \"tag\": "irrepressive",\n \"popularity\": 17430\n },\n {\n \"tag\": "Petromyzontes",\n \"popularity\": 17402\n },\n {\n \"tag\": "piscatorially",\n \"popularity\": 17374\n },\n {\n \"tag\": "cholesterosis",\n \"popularity\": 17346\n },\n {\n \"tag\": "denunciate",\n \"popularity\": 17319\n },\n {\n \"tag\": "unmetalled",\n \"popularity\": 17291\n },\n {\n \"tag\": "Tigris enruin",\n \"popularity\": 17263\n },\n {\n \"tag\": "anaspalin",\n \"popularity\": 17236\n },\n {\n \"tag\": "monodromy",\n \"popularity\": 17208\n },\n {\n \"tag\": "Canichanan",\n \"popularity\": 17181\n },\n {\n \"tag\": "mesolabe",\n \"popularity\": 17154\n },\n {\n \"tag\": "trichothallic overcunningness",\n \"popularity\": 17127\n },\n {\n \"tag\": "spinsterishly",\n \"popularity\": 17099\n },\n {\n \"tag\": "sensilla",\n \"popularity\": 17072\n },\n {\n \"tag\": "wifelkin",\n \"popularity\": 17045\n },\n {\n \"tag\": "suppositionless",\n \"popularity\": 17018\n },\n {\n \"tag\": "irksomeness",\n \"popularity\": 16991\n },\n {\n \"tag\": "sanbenito",\n \"popularity\": 16964\n },\n {\n \"tag\": "nonstatement",\n \"popularity\": 16938\n },\n {\n \"tag\": "phenoloid",\n \"popularity\": 16911\n },\n {\n \"tag\": "Steinberger",\n \"popularity\": 16884\n },\n {\n \"tag\": "replicated boom",\n \"popularity\": 16858\n },\n {\n \"tag\": "sciomachiology",\n \"popularity\": 16831\n },\n {\n \"tag\": "starwise",\n \"popularity\": 16805\n },\n {\n \"tag\": "prerich",\n \"popularity\": 16778\n },\n {\n \"tag\": "unspawned",\n \"popularity\": 16752\n },\n {\n \"tag\": "unindentable",\n \"popularity\": 16726\n },\n {\n \"tag\": "stromatic",\n \"popularity\": 16700\n },\n {\n \"tag\": "fetishize",\n \"popularity\": 16673\n },\n {\n \"tag\": "dihydroxy",\n \"popularity\": 16647\n },\n {\n \"tag\": "precaudal",\n \"popularity\": 16621\n },\n {\n \"tag\": "Madagascar",\n \"popularity\": 16595\n },\n {\n \"tag\": "repinement",\n \"popularity\": 16570\n },\n {\n \"tag\": "noncathedral wenzel",\n \"popularity\": 16544\n },\n {\n \"tag\": "corollike",\n \"popularity\": 16518\n },\n {\n \"tag\": "pubes unamortization",\n \"popularity\": 16492\n },\n {\n \"tag\": "brickcroft",\n \"popularity\": 16467\n },\n {\n \"tag\": "intertrabecular",\n \"popularity\": 16441\n },\n {\n \"tag\": "formulaic",\n \"popularity\": 16416\n },\n {\n \"tag\": "arienzo",\n \"popularity\": 16390\n },\n {\n \"tag\": "Mazzinian",\n \"popularity\": 16365\n },\n {\n \"tag\": "wallowishly",\n \"popularity\": 16339\n },\n {\n \"tag\": "sysselman",\n \"popularity\": 16314\n },\n {\n \"tag\": "seligmannite",\n \"popularity\": 16289\n },\n {\n \"tag\": "harlequinery",\n \"popularity\": 16264\n },\n {\n \"tag\": "zucchetto",\n \"popularity\": 16239\n },\n {\n \"tag\": "malonyl",\n \"popularity\": 16214\n },\n {\n \"tag\": "patwari",\n \"popularity\": 16189\n },\n {\n \"tag\": "neoholmia venturesomeness",\n \"popularity\": 16164\n },\n {\n \"tag\": "Dehwar",\n \"popularity\": 16139\n },\n {\n \"tag\": "fetiferous",\n \"popularity\": 16114\n },\n {\n \"tag\": "chromatophore",\n \"popularity\": 16090\n },\n {\n \"tag\": "reregistration",\n \"popularity\": 16065\n },\n {\n \"tag\": "alienor",\n \"popularity\": 16040\n },\n {\n \"tag\": "Hexagynia",\n \"popularity\": 16016\n },\n {\n \"tag\": "cerebrotonia",\n \"popularity\": 15991\n },\n {\n \"tag\": "deedbox",\n \"popularity\": 15967\n },\n {\n \"tag\": "staab",\n \"popularity\": 15943\n },\n {\n \"tag\": "uratemia",\n \"popularity\": 15918\n },\n {\n \"tag\": "flaunt",\n \"popularity\": 15894\n },\n {\n \"tag\": "bogy",\n \"popularity\": 15870\n },\n {\n \"tag\": "subcartilaginous",\n \"popularity\": 15846\n },\n {\n \"tag\": "protonephridial",\n \"popularity\": 15822\n },\n {\n \"tag\": "Boswellia",\n \"popularity\": 15798\n },\n {\n \"tag\": "relaxant untiaraed protoepiphyte",\n \"popularity\": 15774\n },\n {\n \"tag\": "nesslerization",\n \"popularity\": 15750\n },\n {\n \"tag\": "precession",\n \"popularity\": 15726\n },\n {\n \"tag\": "peat",\n \"popularity\": 15702\n },\n {\n \"tag\": "unbit",\n \"popularity\": 15678\n },\n {\n \"tag\": "snailish",\n \"popularity\": 15655\n },\n {\n \"tag\": "porismatical",\n \"popularity\": 15631\n },\n {\n \"tag\": "hooflike",\n \"popularity\": 15608\n },\n {\n \"tag\": "resuppose phene cranic",\n \"popularity\": 15584\n },\n {\n \"tag\": "peptonization kipskin",\n \"popularity\": 15561\n },\n {\n \"tag\": "birdstone",\n \"popularity\": 15537\n },\n {\n \"tag\": "empty inferoanterior",\n \"popularity\": 15514\n },\n {\n \"tag\": "androtauric",\n \"popularity\": 15491\n },\n {\n \"tag\": "triamide",\n \"popularity\": 15467\n },\n {\n \"tag\": "showmanry",\n \"popularity\": 15444\n },\n {\n \"tag\": "doing",\n \"popularity\": 15421\n },\n {\n \"tag\": "bouchaleen",\n \"popularity\": 15398\n },\n {\n \"tag\": "precollude",\n \"popularity\": 15375\n },\n {\n \"tag\": "finger",\n \"popularity\": 15352\n },\n {\n \"tag\": "limnetic intermessenger",\n \"popularity\": 15329\n },\n {\n \"tag\": "uncharitable picrotoxic",\n \"popularity\": 15306\n },\n {\n \"tag\": "nationalizer Phasmidae",\n \"popularity\": 15283\n },\n {\n \"tag\": "laughingstock",\n \"popularity\": 15261\n },\n {\n \"tag\": "nondeferential",\n \"popularity\": 15238\n },\n {\n \"tag\": "uproariously",\n \"popularity\": 15215\n },\n {\n \"tag\": "manzanilla",\n \"popularity\": 15193\n },\n {\n \"tag\": "khahoon",\n \"popularity\": 15170\n },\n {\n \"tag\": "olericulturally longshanks",\n \"popularity\": 15148\n },\n {\n \"tag\": "enthusiastically methionic",\n \"popularity\": 15125\n },\n {\n \"tag\": "pobs",\n \"popularity\": 15103\n },\n {\n \"tag\": "tricarpellate",\n \"popularity\": 15081\n },\n {\n \"tag\": "souterrain",\n \"popularity\": 15058\n },\n {\n \"tag\": "tethelin",\n \"popularity\": 15036\n },\n {\n \"tag\": "tartle",\n \"popularity\": 15014\n },\n {\n \"tag\": "tidelike",\n \"popularity\": 14992\n },\n {\n \"tag\": "cosmoramic",\n \"popularity\": 14970\n },\n {\n \"tag\": "pretardiness",\n \"popularity\": 14948\n },\n {\n \"tag\": "insoul",\n \"popularity\": 14926\n },\n {\n \"tag\": "anthroxan",\n \"popularity\": 14904\n },\n {\n \"tag\": "jilter",\n \"popularity\": 14882\n },\n {\n \"tag\": "pectinibranchian trematode",\n \"popularity\": 14860\n },\n {\n \"tag\": "Renaissancist",\n \"popularity\": 14838\n },\n {\n \"tag\": "imaginant",\n \"popularity\": 14817\n },\n {\n \"tag\": "supercensure",\n \"popularity\": 14795\n },\n {\n \"tag\": "festilogy",\n \"popularity\": 14773\n },\n {\n \"tag\": "regression",\n \"popularity\": 14752\n },\n {\n \"tag\": "mesobregmate languorously",\n \"popularity\": 14730\n },\n {\n \"tag\": "unsupernaturalized",\n \"popularity\": 14709\n },\n {\n \"tag\": "boobyish",\n \"popularity\": 14687\n },\n {\n \"tag\": "scopolamine",\n \"popularity\": 14666\n },\n {\n \"tag\": "reamputation unchristianly",\n \"popularity\": 14645\n },\n {\n \"tag\": "cuneatic",\n \"popularity\": 14623\n },\n {\n \"tag\": "heathberry",\n \"popularity\": 14602\n },\n {\n \"tag\": "hate",\n \"popularity\": 14581\n },\n {\n \"tag\": "redeemableness",\n \"popularity\": 14560\n },\n {\n \"tag\": "damasse",\n \"popularity\": 14539\n },\n {\n \"tag\": "thrillsome",\n \"popularity\": 14518\n },\n {\n \"tag\": "disseverment",\n \"popularity\": 14497\n },\n {\n \"tag\": "underbishopric Ostyak",\n \"popularity\": 14476\n },\n {\n \"tag\": "Exoascales",\n \"popularity\": 14455\n },\n {\n \"tag\": "soiled",\n \"popularity\": 14434\n },\n {\n \"tag\": "Cain",\n \"popularity\": 14413\n },\n {\n \"tag\": "mismanageable arenae",\n \"popularity\": 14392\n },\n {\n \"tag\": "manducate unhinderably",\n \"popularity\": 14372\n },\n {\n \"tag\": "peregrin",\n \"popularity\": 14351\n },\n {\n \"tag\": "musicianly",\n \"popularity\": 14330\n },\n {\n \"tag\": "aln",\n \"popularity\": 14310\n },\n {\n \"tag\": "intercentrum",\n \"popularity\": 14289\n },\n {\n \"tag\": "roothold",\n \"popularity\": 14269\n },\n {\n \"tag\": "jane aneurism",\n \"popularity\": 14248\n },\n {\n \"tag\": "insinuatively forefeel phytolatrous",\n \"popularity\": 14228\n },\n {\n \"tag\": "kanchil",\n \"popularity\": 14208\n },\n {\n \"tag\": "Austrophile",\n \"popularity\": 14187\n },\n {\n \"tag\": "unterrorized",\n \"popularity\": 14167\n },\n {\n \"tag\": "admeasure",\n \"popularity\": 14147\n },\n {\n \"tag\": "electrodissolution",\n \"popularity\": 14127\n },\n {\n \"tag\": "unweddedly",\n \"popularity\": 14107\n },\n {\n \"tag\": "unannoying",\n \"popularity\": 14087\n },\n {\n \"tag\": "uningenuous",\n \"popularity\": 14067\n },\n {\n \"tag\": "omnibenevolent",\n \"popularity\": 14047\n },\n {\n \"tag\": "commissure",\n \"popularity\": 14027\n },\n {\n \"tag\": "tellureted",\n \"popularity\": 14007\n },\n {\n \"tag\": "suffragan",\n \"popularity\": 13987\n },\n {\n \"tag\": "sphaeriaceous",\n \"popularity\": 13967\n },\n {\n \"tag\": "unfearing",\n \"popularity\": 13947\n },\n {\n \"tag\": "stentoriousness precounsellor",\n \"popularity\": 13928\n },\n {\n \"tag\": "haemaspectroscope",\n \"popularity\": 13908\n },\n {\n \"tag\": "teras",\n \"popularity\": 13888\n },\n {\n \"tag\": "pulicine",\n \"popularity\": 13869\n },\n {\n \"tag\": "colicystopyelitis",\n \"popularity\": 13849\n },\n {\n \"tag\": "Physalia",\n \"popularity\": 13830\n },\n {\n \"tag\": "Saxicolidae",\n \"popularity\": 13810\n },\n {\n \"tag\": "peritonital",\n \"popularity\": 13791\n },\n {\n \"tag\": "dysphotic",\n \"popularity\": 13771\n },\n {\n \"tag\": "unabandoned",\n \"popularity\": 13752\n },\n {\n \"tag\": "rashful",\n \"popularity\": 13733\n },\n {\n \"tag\": "goodyness Manobo",\n \"popularity\": 13714\n },\n {\n \"tag\": "glaring",\n \"popularity\": 13694\n },\n {\n \"tag\": "horrorful",\n \"popularity\": 13675\n },\n {\n \"tag\": "intercepting",\n \"popularity\": 13656\n },\n {\n \"tag\": "semifine",\n \"popularity\": 13637\n },\n {\n \"tag\": "Gaypoo",\n \"popularity\": 13618\n },\n {\n \"tag\": "Metrosideros",\n \"popularity\": 13599\n },\n {\n \"tag\": "thoracicolumbar",\n \"popularity\": 13580\n },\n {\n \"tag\": "unserried",\n \"popularity\": 13561\n },\n {\n \"tag\": "keeperess cauterization",\n \"popularity\": 13542\n },\n {\n \"tag\": "administrant",\n \"popularity\": 13523\n },\n {\n \"tag\": "unpropitiatedness",\n \"popularity\": 13505\n },\n {\n \"tag\": "pensileness",\n \"popularity\": 13486\n },\n {\n \"tag\": "quinaldic unreceivable",\n \"popularity\": 13467\n },\n {\n \"tag\": "Carnaria",\n \"popularity\": 13448\n },\n {\n \"tag\": "azothionium wurrus",\n \"popularity\": 13430\n },\n {\n \"tag\": "mistresshood",\n \"popularity\": 13411\n },\n {\n \"tag\": "Savara",\n \"popularity\": 13393\n },\n {\n \"tag\": "dasyurine",\n \"popularity\": 13374\n },\n {\n \"tag\": "superideal",\n \"popularity\": 13356\n },\n {\n \"tag\": "Parisianize",\n \"popularity\": 13337\n },\n {\n \"tag\": "underearth",\n \"popularity\": 13319\n },\n {\n \"tag\": "athrogenic",\n \"popularity\": 13301\n },\n {\n \"tag\": "communicate",\n \"popularity\": 13282\n },\n {\n \"tag\": "denervation enworthed",\n \"popularity\": 13264\n },\n {\n \"tag\": "subbromide",\n \"popularity\": 13246\n },\n {\n \"tag\": "stenocoriasis",\n \"popularity\": 13228\n },\n {\n \"tag\": "facetiousness",\n \"popularity\": 13209\n },\n {\n \"tag\": "twaddling",\n \"popularity\": 13191\n },\n {\n \"tag\": "tetartoconid",\n \"popularity\": 13173\n },\n {\n \"tag\": "audiophile",\n \"popularity\": 13155\n },\n {\n \"tag\": "fustigate",\n \"popularity\": 13137\n },\n {\n \"tag\": "Sorbian cacophonia",\n \"popularity\": 13119\n },\n {\n \"tag\": "fondish",\n \"popularity\": 13101\n },\n {\n \"tag\": "endomastoiditis",\n \"popularity\": 13084\n },\n {\n \"tag\": "sniptious",\n \"popularity\": 13066\n },\n {\n \"tag\": "glochidiate",\n \"popularity\": 13048\n },\n {\n \"tag\": "polycarboxylic",\n \"popularity\": 13030\n },\n {\n \"tag\": "stamp",\n \"popularity\": 13012\n },\n {\n \"tag\": "tritonymph endotoxoid",\n \"popularity\": 12995\n },\n {\n \"tag\": "wolfskin",\n \"popularity\": 12977\n },\n {\n \"tag\": "oncosimeter",\n \"popularity\": 12959\n },\n {\n \"tag\": "outward",\n \"popularity\": 12942\n },\n {\n \"tag\": "circumscribed",\n \"popularity\": 12924\n },\n {\n \"tag\": "autohemolytic",\n \"popularity\": 12907\n },\n {\n \"tag\": "isorhamnose",\n \"popularity\": 12889\n },\n {\n \"tag\": "monarchomachic",\n \"popularity\": 12872\n },\n {\n \"tag\": "phaenomenon",\n \"popularity\": 12855\n },\n {\n \"tag\": "angiopressure",\n \"popularity\": 12837\n },\n {\n \"tag\": "similarize",\n \"popularity\": 12820\n },\n {\n \"tag\": "unseeable",\n \"popularity\": 12803\n },\n {\n \"tag\": "Toryize",\n \"popularity\": 12785\n },\n {\n \"tag\": "fruitling",\n \"popularity\": 12768\n },\n {\n \"tag\": "axle",\n \"popularity\": 12751\n },\n {\n \"tag\": "priestal cocked",\n \"popularity\": 12734\n },\n {\n \"tag\": "serotoxin",\n \"popularity\": 12717\n },\n {\n \"tag\": "unmovably",\n \"popularity\": 12700\n },\n {\n \"tag\": "darbha",\n \"popularity\": 12683\n },\n {\n \"tag\": "Mongolize",\n \"popularity\": 12666\n },\n {\n \"tag\": "clusteringly",\n \"popularity\": 12649\n },\n {\n \"tag\": "tendence",\n \"popularity\": 12632\n },\n {\n \"tag\": "foziness",\n \"popularity\": 12615\n },\n {\n \"tag\": "brickkiln lithify",\n \"popularity\": 12598\n },\n {\n \"tag\": "unpriest",\n \"popularity\": 12581\n },\n {\n \"tag\": "convincer",\n \"popularity\": 12564\n },\n {\n \"tag\": "mornlike",\n \"popularity\": 12548\n },\n {\n \"tag\": "overaddiction ostentatiousness",\n \"popularity\": 12531\n },\n {\n \"tag\": "diffusively moccasin pendom",\n \"popularity\": 12514\n },\n {\n \"tag\": "boose",\n \"popularity\": 12498\n },\n {\n \"tag\": "myonosus",\n \"popularity\": 12481\n },\n {\n \"tag\": "handsome",\n \"popularity\": 12464\n },\n {\n \"tag\": "paroxysmic",\n \"popularity\": 12448\n },\n {\n \"tag\": "Ulidian",\n \"popularity\": 12431\n },\n {\n \"tag\": "heartache",\n \"popularity\": 12415\n },\n {\n \"tag\": "torporize",\n \"popularity\": 12398\n },\n {\n \"tag\": "hippish",\n \"popularity\": 12382\n },\n {\n \"tag\": "stigmal militation",\n \"popularity\": 12366\n },\n {\n \"tag\": "matmaker",\n \"popularity\": 12349\n },\n {\n \"tag\": "marantaceous bivoluminous",\n \"popularity\": 12333\n },\n {\n \"tag\": "Uraniidae",\n \"popularity\": 12317\n },\n {\n \"tag\": "risper",\n \"popularity\": 12301\n },\n {\n \"tag\": "tintinnabulation",\n \"popularity\": 12284\n },\n {\n \"tag\": "tributorian",\n \"popularity\": 12268\n },\n {\n \"tag\": "ashamedly",\n \"popularity\": 12252\n },\n {\n \"tag\": "Macrourus",\n \"popularity\": 12236\n },\n {\n \"tag\": "Chora",\n \"popularity\": 12220\n },\n {\n \"tag\": "caul",\n \"popularity\": 12204\n },\n {\n \"tag\": "exsector",\n \"popularity\": 12188\n },\n {\n \"tag\": "acutish",\n \"popularity\": 12172\n },\n {\n \"tag\": "amphichrome",\n \"popularity\": 12156\n },\n {\n \"tag\": "guarder",\n \"popularity\": 12140\n },\n {\n \"tag\": "sculpturally",\n \"popularity\": 12124\n },\n {\n \"tag\": "benightmare",\n \"popularity\": 12108\n },\n {\n \"tag\": "chucky",\n \"popularity\": 12093\n },\n {\n \"tag\": "Venetian",\n \"popularity\": 12077\n },\n {\n \"tag\": "autotheater",\n \"popularity\": 12061\n },\n {\n \"tag\": "planarioid",\n \"popularity\": 12045\n },\n {\n \"tag\": "handkerchiefful",\n \"popularity\": 12030\n },\n {\n \"tag\": "fuliginousness potentize",\n \"popularity\": 12014\n },\n {\n \"tag\": "pantheum",\n \"popularity\": 11998\n },\n {\n \"tag\": "heavyweight",\n \"popularity\": 11983\n },\n {\n \"tag\": "unbrick",\n \"popularity\": 11967\n },\n {\n \"tag\": "duomachy",\n \"popularity\": 11952\n },\n {\n \"tag\": "polyphyodont",\n \"popularity\": 11936\n },\n {\n \"tag\": "hibernacle",\n \"popularity\": 11921\n },\n {\n \"tag\": "undistend",\n \"popularity\": 11905\n },\n {\n \"tag\": "hystericky",\n \"popularity\": 11890\n },\n {\n \"tag\": "paleolimnology",\n \"popularity\": 11875\n },\n {\n \"tag\": "cedarware",\n \"popularity\": 11859\n },\n {\n \"tag\": "overwrested",\n \"popularity\": 11844\n },\n {\n \"tag\": "Syriacism",\n \"popularity\": 11829\n },\n {\n \"tag\": "pretan",\n \"popularity\": 11813\n },\n {\n \"tag\": "formant",\n \"popularity\": 11798\n },\n {\n \"tag\": "pharmacopoeist Fedia",\n \"popularity\": 11783\n },\n {\n \"tag\": "exorcist eerisome",\n \"popularity\": 11768\n },\n {\n \"tag\": "separation",\n \"popularity\": 11753\n },\n {\n \"tag\": "infancy",\n \"popularity\": 11738\n },\n {\n \"tag\": "ecrasite",\n \"popularity\": 11723\n },\n {\n \"tag\": "propolize",\n \"popularity\": 11708\n },\n {\n \"tag\": "uncram phyllin",\n \"popularity\": 11693\n },\n {\n \"tag\": "thymopathy",\n \"popularity\": 11678\n },\n {\n \"tag\": "omniscient",\n \"popularity\": 11663\n },\n {\n \"tag\": "coussinet hazer",\n \"popularity\": 11648\n },\n {\n \"tag\": "contributiveness",\n \"popularity\": 11633\n },\n {\n \"tag\": "septifluous",\n \"popularity\": 11618\n },\n {\n \"tag\": "halfness",\n \"popularity\": 11603\n },\n {\n \"tag\": "tocher",\n \"popularity\": 11589\n },\n {\n \"tag\": "monotonist",\n \"popularity\": 11574\n },\n {\n \"tag\": "headchair",\n \"popularity\": 11559\n },\n {\n \"tag\": "everywhence",\n \"popularity\": 11544\n },\n {\n \"tag\": "gerate",\n \"popularity\": 11530\n },\n {\n \"tag\": "unrepellent",\n \"popularity\": 11515\n },\n {\n \"tag\": "inidoneous",\n \"popularity\": 11500\n },\n {\n \"tag\": "Rifi",\n \"popularity\": 11486\n },\n {\n \"tag\": "unstop",\n \"popularity\": 11471\n },\n {\n \"tag\": "conformer",\n \"popularity\": 11457\n },\n {\n \"tag\": "vivisectionally",\n \"popularity\": 11442\n },\n {\n \"tag\": "nonfinishing",\n \"popularity\": 11428\n },\n {\n \"tag\": "tyranness",\n \"popularity\": 11413\n },\n {\n \"tag\": "shepherdage havoc",\n \"popularity\": 11399\n },\n {\n \"tag\": "coronale",\n \"popularity\": 11385\n },\n {\n \"tag\": "airmarker",\n \"popularity\": 11370\n },\n {\n \"tag\": "subpanel",\n \"popularity\": 11356\n },\n {\n \"tag\": "conciliation",\n \"popularity\": 11342\n },\n {\n \"tag\": "supergun",\n \"popularity\": 11327\n },\n {\n \"tag\": "photoheliography",\n \"popularity\": 11313\n },\n {\n \"tag\": "cacosmia",\n \"popularity\": 11299\n },\n {\n \"tag\": "caressant",\n \"popularity\": 11285\n },\n {\n \"tag\": "swivet",\n \"popularity\": 11270\n },\n {\n \"tag\": "coddler",\n \"popularity\": 11256\n },\n {\n \"tag\": "rakehellish",\n \"popularity\": 11242\n },\n {\n \"tag\": "recohabitation",\n \"popularity\": 11228\n },\n {\n \"tag\": "postillator",\n \"popularity\": 11214\n },\n {\n \"tag\": "receipt",\n \"popularity\": 11200\n },\n {\n \"tag\": "nonconformistical",\n \"popularity\": 11186\n },\n {\n \"tag\": "unglorified",\n \"popularity\": 11172\n },\n {\n \"tag\": "unordinariness",\n \"popularity\": 11158\n },\n {\n \"tag\": "tetrahydroxy",\n \"popularity\": 11144\n },\n {\n \"tag\": "haploperistomic corporeity",\n \"popularity\": 11130\n },\n {\n \"tag\": "varical",\n \"popularity\": 11117\n },\n {\n \"tag\": "pilferment",\n \"popularity\": 11103\n },\n {\n \"tag\": "reverentially playcraft",\n \"popularity\": 11089\n },\n {\n \"tag\": "unretentive",\n \"popularity\": 11075\n },\n {\n \"tag\": "readiness",\n \"popularity\": 11061\n },\n {\n \"tag\": "thermomagnetism",\n \"popularity\": 11048\n },\n {\n \"tag\": "spotless",\n \"popularity\": 11034\n },\n {\n \"tag\": "semishrubby",\n \"popularity\": 11020\n },\n {\n \"tag\": "metrotomy",\n \"popularity\": 11007\n },\n {\n \"tag\": "hocker",\n \"popularity\": 10993\n },\n {\n \"tag\": "anecdotal",\n \"popularity\": 10979\n },\n {\n \"tag\": "tetrabelodont",\n \"popularity\": 10966\n },\n {\n \"tag\": "Ramillied",\n \"popularity\": 10952\n },\n {\n \"tag\": "sympatheticism",\n \"popularity\": 10939\n },\n {\n \"tag\": "kiskatom",\n \"popularity\": 10925\n },\n {\n \"tag\": "concyclically",\n \"popularity\": 10912\n },\n {\n \"tag\": "tunicless",\n \"popularity\": 10899\n },\n {\n \"tag\": "formalistic",\n \"popularity\": 10885\n },\n {\n \"tag\": "thermacogenesis",\n \"popularity\": 10872\n },\n {\n \"tag\": "multimotored",\n \"popularity\": 10858\n },\n {\n \"tag\": "inversive",\n \"popularity\": 10845\n },\n {\n \"tag\": "Jatki",\n \"popularity\": 10832\n },\n {\n \"tag\": "highest",\n \"popularity\": 10818\n },\n {\n \"tag\": "rubidic",\n \"popularity\": 10805\n },\n {\n \"tag\": "acranial",\n \"popularity\": 10792\n },\n {\n \"tag\": "pulvinulus",\n \"popularity\": 10779\n },\n {\n \"tag\": "nattiness",\n \"popularity\": 10766\n },\n {\n \"tag\": "antisimoniacal",\n \"popularity\": 10752\n },\n {\n \"tag\": "tetanize",\n \"popularity\": 10739\n },\n {\n \"tag\": "spectrophobia",\n \"popularity\": 10726\n },\n {\n \"tag\": "monopolitical",\n \"popularity\": 10713\n },\n {\n \"tag\": "teallite",\n \"popularity\": 10700\n },\n {\n \"tag\": "alicyclic interpellator",\n \"popularity\": 10687\n },\n {\n \"tag\": "nonsynthesized",\n \"popularity\": 10674\n },\n {\n \"tag\": "wheelwrighting",\n \"popularity\": 10661\n },\n {\n \"tag\": "pelliculate",\n \"popularity\": 10648\n },\n {\n \"tag\": "Euphyllopoda",\n \"popularity\": 10635\n },\n {\n \"tag\": "graver",\n \"popularity\": 10622\n },\n {\n \"tag\": "automorph",\n \"popularity\": 10609\n },\n {\n \"tag\": "underhanded",\n \"popularity\": 10597\n },\n {\n \"tag\": "causal",\n \"popularity\": 10584\n },\n {\n \"tag\": "odoom",\n \"popularity\": 10571\n },\n {\n \"tag\": "apodictical",\n \"popularity\": 10558\n },\n {\n \"tag\": "foundery",\n \"popularity\": 10545\n },\n {\n \"tag\": "unneighbored",\n \"popularity\": 10533\n },\n {\n \"tag\": "woolshearing",\n \"popularity\": 10520\n },\n {\n \"tag\": "boschveld",\n \"popularity\": 10507\n },\n {\n \"tag\": "unhardened lipopod",\n \"popularity\": 10495\n },\n {\n \"tag\": "unenriching",\n \"popularity\": 10482\n },\n {\n \"tag\": "spak",\n \"popularity\": 10469\n },\n {\n \"tag\": "yogasana",\n \"popularity\": 10457\n },\n {\n \"tag\": "depoetize",\n \"popularity\": 10444\n },\n {\n \"tag\": "parousiamania",\n \"popularity\": 10432\n },\n {\n \"tag\": "longlegs",\n \"popularity\": 10419\n },\n {\n \"tag\": "gelatinizability",\n \"popularity\": 10407\n },\n {\n \"tag\": "edeology",\n \"popularity\": 10394\n },\n {\n \"tag\": "sodwork",\n \"popularity\": 10382\n },\n {\n \"tag\": "somnambule",\n \"popularity\": 10369\n },\n {\n \"tag\": "antiquing",\n \"popularity\": 10357\n },\n {\n \"tag\": "intaker",\n \"popularity\": 10344\n },\n {\n \"tag\": "Gerberia",\n \"popularity\": 10332\n },\n {\n \"tag\": "preadmit",\n \"popularity\": 10320\n },\n {\n \"tag\": "bullhorn",\n \"popularity\": 10307\n },\n {\n \"tag\": "sororal",\n \"popularity\": 10295\n },\n {\n \"tag\": "phaeophyceous",\n \"popularity\": 10283\n },\n {\n \"tag\": "omphalopsychite",\n \"popularity\": 10271\n },\n {\n \"tag\": "substantious",\n \"popularity\": 10258\n },\n {\n \"tag\": "undemonstratively",\n \"popularity\": 10246\n },\n {\n \"tag\": "corallike blackit",\n \"popularity\": 10234\n },\n {\n \"tag\": "amoebous",\n \"popularity\": 10222\n },\n {\n \"tag\": "Polypodium",\n \"popularity\": 10210\n },\n {\n \"tag\": "blodite",\n \"popularity\": 10198\n },\n {\n \"tag\": "hordarian",\n \"popularity\": 10186\n },\n {\n \"tag\": "nonmoral",\n \"popularity\": 10174\n },\n {\n \"tag\": "dredgeful",\n \"popularity\": 10162\n },\n {\n \"tag\": "nourishingly",\n \"popularity\": 10150\n },\n {\n \"tag\": "seamy",\n \"popularity\": 10138\n },\n {\n \"tag\": "vara",\n \"popularity\": 10126\n },\n {\n \"tag\": "incorruptibleness",\n \"popularity\": 10114\n },\n {\n \"tag\": "manipulator",\n \"popularity\": 10102\n },\n {\n \"tag\": "chromodiascope uncountably",\n \"popularity\": 10090\n },\n {\n \"tag\": "typhemia",\n \"popularity\": 10078\n },\n {\n \"tag\": "Smalcaldic",\n \"popularity\": 10066\n },\n {\n \"tag\": "precontrive",\n \"popularity\": 10054\n },\n {\n \"tag\": "sowarry",\n \"popularity\": 10042\n },\n {\n \"tag\": "monopodic",\n \"popularity\": 10031\n },\n {\n \"tag\": "recodify",\n \"popularity\": 10019\n },\n {\n \"tag\": "phosphowolframic rimple",\n \"popularity\": 10007\n },\n {\n \"tag\": "triconch",\n \"popularity\": 9995\n },\n {\n \"tag\": "pycnodontoid",\n \"popularity\": 9984\n },\n {\n \"tag\": "bradyspermatism",\n \"popularity\": 9972\n },\n {\n \"tag\": "extensionist",\n \"popularity\": 9960\n },\n {\n \"tag\": "characterize",\n \"popularity\": 9949\n },\n {\n \"tag\": "anatreptic proteolytic",\n \"popularity\": 9937\n },\n {\n \"tag\": "waterboard",\n \"popularity\": 9925\n },\n {\n \"tag\": "allopathically",\n \"popularity\": 9914\n },\n {\n \"tag\": "arithmetician",\n \"popularity\": 9902\n },\n {\n \"tag\": "subsist",\n \"popularity\": 9891\n },\n {\n \"tag\": "Islamitish",\n \"popularity\": 9879\n },\n {\n \"tag\": "biddy",\n \"popularity\": 9868\n },\n {\n \"tag\": "reverberation",\n \"popularity\": 9856\n },\n {\n \"tag\": "Zaporogue",\n \"popularity\": 9845\n },\n {\n \"tag\": "soapberry",\n \"popularity\": 9833\n },\n {\n \"tag\": "physiognomics",\n \"popularity\": 9822\n },\n {\n \"tag\": "hospitalization",\n \"popularity\": 9810\n },\n {\n \"tag\": "dissembler",\n \"popularity\": 9799\n },\n {\n \"tag\": "festinate",\n \"popularity\": 9788\n },\n {\n \"tag\": "angiectopia",\n \"popularity\": 9776\n },\n {\n \"tag\": "Pulicidae",\n \"popularity\": 9765\n },\n {\n \"tag\": "beslimer",\n \"popularity\": 9754\n },\n {\n \"tag\": "nontreaty",\n \"popularity\": 9743\n },\n {\n \"tag\": "unhaggled",\n \"popularity\": 9731\n },\n {\n \"tag\": "catfall",\n \"popularity\": 9720\n },\n {\n \"tag\": "stola",\n \"popularity\": 9709\n },\n {\n \"tag\": "pataco",\n \"popularity\": 9698\n },\n {\n \"tag\": "ontologistic",\n \"popularity\": 9686\n },\n {\n \"tag\": "aerosphere",\n \"popularity\": 9675\n },\n {\n \"tag\": "deobstruent",\n \"popularity\": 9664\n },\n {\n \"tag\": "threepence",\n \"popularity\": 9653\n },\n {\n \"tag\": "cyprinoid",\n \"popularity\": 9642\n },\n {\n \"tag\": "overbank",\n \"popularity\": 9631\n },\n {\n \"tag\": "prostyle",\n \"popularity\": 9620\n },\n {\n \"tag\": "photoactivation",\n \"popularity\": 9609\n },\n {\n \"tag\": "homothetic",\n \"popularity\": 9598\n },\n {\n \"tag\": "roguedom",\n \"popularity\": 9587\n },\n {\n \"tag\": "underschool",\n \"popularity\": 9576\n },\n {\n \"tag\": "tractility",\n \"popularity\": 9565\n },\n {\n \"tag\": "gardenin",\n \"popularity\": 9554\n },\n {\n \"tag\": "Micromastictora",\n \"popularity\": 9543\n },\n {\n \"tag\": "gossypine",\n \"popularity\": 9532\n },\n {\n \"tag\": "amylodyspepsia",\n \"popularity\": 9521\n },\n {\n \"tag\": "Luciana",\n \"popularity\": 9510\n },\n {\n \"tag\": "meetly nonfisherman",\n \"popularity\": 9500\n },\n {\n \"tag\": "backhanded",\n \"popularity\": 9489\n },\n {\n \"tag\": "decrustation",\n \"popularity\": 9478\n },\n {\n \"tag\": "pinrail",\n \"popularity\": 9467\n },\n {\n \"tag\": "Mahori",\n \"popularity\": 9456\n },\n {\n \"tag\": "unsizable",\n \"popularity\": 9446\n },\n {\n \"tag\": "disawa",\n \"popularity\": 9435\n },\n {\n \"tag\": "launderability inconsidered",\n \"popularity\": 9424\n },\n {\n \"tag\": "unclassical",\n \"popularity\": 9414\n },\n {\n \"tag\": "inobtrusiveness",\n \"popularity\": 9403\n },\n {\n \"tag\": "sialogenous",\n \"popularity\": 9392\n },\n {\n \"tag\": "sulphonamide",\n \"popularity\": 9382\n },\n {\n \"tag\": "diluvion",\n \"popularity\": 9371\n },\n {\n \"tag\": "deuteranope",\n \"popularity\": 9361\n },\n {\n \"tag\": "addition",\n \"popularity\": 9350\n },\n {\n \"tag\": "bockeret",\n \"popularity\": 9339\n },\n {\n \"tag\": "unidentified",\n \"popularity\": 9329\n },\n {\n \"tag\": "caryatic",\n \"popularity\": 9318\n },\n {\n \"tag\": "misattribution",\n \"popularity\": 9308\n },\n {\n \"tag\": "outray",\n \"popularity\": 9297\n },\n {\n \"tag\": "areometrical",\n \"popularity\": 9287\n },\n {\n \"tag\": "antilogism",\n \"popularity\": 9277\n },\n {\n \"tag\": "inadjustable",\n \"popularity\": 9266\n },\n {\n \"tag\": "byssus",\n \"popularity\": 9256\n },\n {\n \"tag\": "trun",\n \"popularity\": 9245\n },\n {\n \"tag\": "thereology",\n \"popularity\": 9235\n },\n {\n \"tag\": "extort",\n \"popularity\": 9225\n },\n {\n \"tag\": "bumpkin",\n \"popularity\": 9214\n },\n {\n \"tag\": "sulphobenzide",\n \"popularity\": 9204\n },\n {\n \"tag\": "hydrogeology",\n \"popularity\": 9194\n },\n {\n \"tag\": "nidulariaceous",\n \"popularity\": 9183\n },\n {\n \"tag\": "propodiale",\n \"popularity\": 9173\n },\n {\n \"tag\": "fierily",\n \"popularity\": 9163\n },\n {\n \"tag\": "aerotonometry",\n \"popularity\": 9153\n },\n {\n \"tag\": "pelobatid oversuperstitious",\n \"popularity\": 9142\n },\n {\n \"tag\": "restringent",\n \"popularity\": 9132\n },\n {\n \"tag\": "tetrapodic",\n \"popularity\": 9122\n },\n {\n \"tag\": "heroicness Vendidad",\n \"popularity\": 9112\n },\n {\n \"tag\": "Sphingurus",\n \"popularity\": 9102\n },\n {\n \"tag\": "sclerote",\n \"popularity\": 9092\n },\n {\n \"tag\": "unkeyed",\n \"popularity\": 9082\n },\n {\n \"tag\": "superparliamentary",\n \"popularity\": 9072\n },\n {\n \"tag\": "hetericism",\n \"popularity\": 9061\n },\n {\n \"tag\": "hucklebone",\n \"popularity\": 9051\n },\n {\n \"tag\": "yojan",\n \"popularity\": 9041\n },\n {\n \"tag\": "bossed",\n \"popularity\": 9031\n },\n {\n \"tag\": "spiderwork",\n \"popularity\": 9021\n },\n {\n \"tag\": "millfeed dullery",\n \"popularity\": 9011\n },\n {\n \"tag\": "adnoun",\n \"popularity\": 9001\n },\n {\n \"tag\": "mesometric",\n \"popularity\": 8992\n },\n {\n \"tag\": "doublehandedness",\n \"popularity\": 8982\n },\n {\n \"tag\": "suppurant",\n \"popularity\": 8972\n },\n {\n \"tag\": "Berlinize",\n \"popularity\": 8962\n },\n {\n \"tag\": "sontag",\n \"popularity\": 8952\n },\n {\n \"tag\": "biplane",\n \"popularity\": 8942\n },\n {\n \"tag\": "insula",\n \"popularity\": 8932\n },\n {\n \"tag\": "unbrand",\n \"popularity\": 8922\n },\n {\n \"tag\": "Basilosaurus",\n \"popularity\": 8913\n },\n {\n \"tag\": "prenomination",\n \"popularity\": 8903\n },\n {\n \"tag\": "untextual",\n \"popularity\": 8893\n },\n {\n \"tag\": "coleslaw",\n \"popularity\": 8883\n },\n {\n \"tag\": "langsyne",\n \"popularity\": 8874\n },\n {\n \"tag\": "impede",\n \"popularity\": 8864\n },\n {\n \"tag\": "irrigator",\n \"popularity\": 8854\n },\n {\n \"tag\": "deflocculation",\n \"popularity\": 8844\n },\n {\n \"tag\": "narghile",\n \"popularity\": 8835\n },\n {\n \"tag\": "unguardedly ebenaceous",\n \"popularity\": 8825\n },\n {\n \"tag\": "conversantly subocular",\n \"popularity\": 8815\n },\n {\n \"tag\": "hydroponic",\n \"popularity\": 8806\n },\n {\n \"tag\": "anthropopsychism",\n \"popularity\": 8796\n },\n {\n \"tag\": "panoptic",\n \"popularity\": 8787\n },\n {\n \"tag\": "insufferable",\n \"popularity\": 8777\n },\n {\n \"tag\": "salema",\n \"popularity\": 8768\n },\n {\n \"tag\": "Myriapoda",\n \"popularity\": 8758\n },\n {\n \"tag\": "regarrison",\n \"popularity\": 8748\n },\n {\n \"tag\": "overlearned",\n \"popularity\": 8739\n },\n {\n \"tag\": "ultraroyalist conventical bureaucratical",\n \"popularity\": 8729\n },\n {\n \"tag\": "epicaridan",\n \"popularity\": 8720\n },\n {\n \"tag\": "poetastress",\n \"popularity\": 8711\n },\n {\n \"tag\": "monophthalmus",\n \"popularity\": 8701\n },\n {\n \"tag\": "simnel",\n \"popularity\": 8692\n },\n {\n \"tag\": "compotor",\n \"popularity\": 8682\n },\n {\n \"tag\": "hydrolase",\n \"popularity\": 8673\n },\n {\n \"tag\": "attemptless",\n \"popularity\": 8663\n },\n {\n \"tag\": "visceroptosis",\n \"popularity\": 8654\n },\n {\n \"tag\": "unpreparedly",\n \"popularity\": 8645\n },\n {\n \"tag\": "mastage",\n \"popularity\": 8635\n },\n {\n \"tag\": "preinfluence",\n \"popularity\": 8626\n },\n {\n \"tag\": "Siwan",\n \"popularity\": 8617\n },\n {\n \"tag\": "ceratotheca belvedere",\n \"popularity\": 8607\n },\n {\n \"tag\": "disenablement",\n \"popularity\": 8598\n },\n {\n \"tag\": "nine",\n \"popularity\": 8589\n },\n {\n \"tag\": "spellingdown abridgment",\n \"popularity\": 8580\n },\n {\n \"tag\": "twilightless",\n \"popularity\": 8571\n },\n {\n \"tag\": "overflow",\n \"popularity\": 8561\n },\n {\n \"tag\": "mismeasurement",\n \"popularity\": 8552\n },\n {\n \"tag\": "nawabship",\n \"popularity\": 8543\n },\n {\n \"tag\": "Phrynosoma",\n \"popularity\": 8534\n },\n {\n \"tag\": "unanticipatingly",\n \"popularity\": 8525\n },\n {\n \"tag\": "blankite",\n \"popularity\": 8516\n },\n {\n \"tag\": "role",\n \"popularity\": 8506\n },\n {\n \"tag\": "peperine edelweiss",\n \"popularity\": 8497\n },\n {\n \"tag\": "unhysterical",\n \"popularity\": 8488\n },\n {\n \"tag\": "attentiveness",\n \"popularity\": 8479\n },\n {\n \"tag\": "scintillant",\n \"popularity\": 8470\n },\n {\n \"tag\": "stenostomatous",\n \"popularity\": 8461\n },\n {\n \"tag\": "pectinite",\n \"popularity\": 8452\n },\n {\n \"tag\": "herring",\n \"popularity\": 8443\n },\n {\n \"tag\": "interroom",\n \"popularity\": 8434\n },\n {\n \"tag\": "laccol",\n \"popularity\": 8425\n },\n {\n \"tag\": "unpartably kylite",\n \"popularity\": 8416\n },\n {\n \"tag\": "spirivalve",\n \"popularity\": 8407\n },\n {\n \"tag\": "hoosegow",\n \"popularity\": 8398\n },\n {\n \"tag\": "doat",\n \"popularity\": 8389\n },\n {\n \"tag\": "amphibian",\n \"popularity\": 8380\n },\n {\n \"tag\": "exposit",\n \"popularity\": 8371\n },\n {\n \"tag\": "canopy",\n \"popularity\": 8363\n },\n {\n \"tag\": "houndlike",\n \"popularity\": 8354\n },\n {\n \"tag\": "spikebill",\n \"popularity\": 8345\n },\n {\n \"tag\": "wiseacre pyrotechnic",\n \"popularity\": 8336\n },\n {\n \"tag\": "confessingly woodman",\n \"popularity\": 8327\n },\n {\n \"tag\": "overside",\n \"popularity\": 8318\n },\n {\n \"tag\": "oftwhiles",\n \"popularity\": 8310\n },\n {\n \"tag\": "Musophagidae",\n \"popularity\": 8301\n },\n {\n \"tag\": "slumberer",\n \"popularity\": 8292\n },\n {\n \"tag\": "leiotrichy",\n \"popularity\": 8283\n },\n {\n \"tag\": "Mantispidae",\n \"popularity\": 8275\n },\n {\n \"tag\": "perceptually",\n \"popularity\": 8266\n },\n {\n \"tag\": "biller",\n \"popularity\": 8257\n },\n {\n \"tag\": "eudaemonical",\n \"popularity\": 8249\n },\n {\n \"tag\": "underfiend",\n \"popularity\": 8240\n },\n {\n \"tag\": "impartible",\n \"popularity\": 8231\n },\n {\n \"tag\": "saxicavous",\n \"popularity\": 8223\n },\n {\n \"tag\": "yapster",\n \"popularity\": 8214\n },\n {\n \"tag\": "aliseptal",\n \"popularity\": 8205\n },\n {\n \"tag\": "omniparient",\n \"popularity\": 8197\n },\n {\n \"tag\": "nishiki",\n \"popularity\": 8188\n },\n {\n \"tag\": "yuzluk",\n \"popularity\": 8180\n },\n {\n \"tag\": "solderer",\n \"popularity\": 8171\n },\n {\n \"tag\": "Pinna",\n \"popularity\": 8162\n },\n {\n \"tag\": "reinterfere",\n \"popularity\": 8154\n },\n {\n \"tag\": "superepic",\n \"popularity\": 8145\n },\n {\n \"tag\": "ronquil",\n \"popularity\": 8137\n },\n {\n \"tag\": "bratstvo",\n \"popularity\": 8128\n },\n {\n \"tag\": "Thea",\n \"popularity\": 8120\n },\n {\n \"tag\": "hermaphroditical",\n \"popularity\": 8111\n },\n {\n \"tag\": "enlief",\n \"popularity\": 8103\n },\n {\n \"tag\": "Jesuate",\n \"popularity\": 8095\n },\n {\n \"tag\": "gaysome",\n \"popularity\": 8086\n },\n {\n \"tag\": "iliohypogastric",\n \"popularity\": 8078\n },\n {\n \"tag\": "regardance",\n \"popularity\": 8069\n },\n {\n \"tag\": "cumulately",\n \"popularity\": 8061\n },\n {\n \"tag\": "haustorial nucleolocentrosome",\n \"popularity\": 8053\n },\n {\n \"tag\": "cosmocrat",\n \"popularity\": 8044\n },\n {\n \"tag\": "onyxitis",\n \"popularity\": 8036\n },\n {\n \"tag\": "Cabinda",\n \"popularity\": 8028\n },\n {\n \"tag\": "coresort",\n \"popularity\": 8019\n },\n {\n \"tag\": "drusy preformant",\n \"popularity\": 8011\n },\n {\n \"tag\": "piningly",\n \"popularity\": 8003\n },\n {\n \"tag\": "bootlessly",\n \"popularity\": 7994\n },\n {\n \"tag\": "talari",\n \"popularity\": 7986\n },\n {\n \"tag\": "amidoacetal",\n \"popularity\": 7978\n },\n {\n \"tag\": "pschent",\n \"popularity\": 7970\n },\n {\n \"tag\": "consumptional scarer titivate",\n \"popularity\": 7962\n },\n {\n \"tag\": "Anserinae",\n \"popularity\": 7953\n },\n {\n \"tag\": "flaunter",\n \"popularity\": 7945\n },\n {\n \"tag\": "reindeer",\n \"popularity\": 7937\n },\n {\n \"tag\": "disparage",\n \"popularity\": 7929\n },\n {\n \"tag\": "superheat",\n \"popularity\": 7921\n },\n {\n \"tag\": "Chromatium",\n \"popularity\": 7912\n },\n {\n \"tag\": "Tina",\n \"popularity\": 7904\n },\n {\n \"tag\": "rededicatory",\n \"popularity\": 7896\n },\n {\n \"tag\": "nontransient",\n \"popularity\": 7888\n },\n {\n \"tag\": "Phocaean brinkless",\n \"popularity\": 7880\n },\n {\n \"tag\": "ventriculose",\n \"popularity\": 7872\n },\n {\n \"tag\": "upplough",\n \"popularity\": 7864\n },\n {\n \"tag\": "succorless",\n \"popularity\": 7856\n },\n {\n \"tag\": "hayrake",\n \"popularity\": 7848\n },\n {\n \"tag\": "merriness amorphia",\n \"popularity\": 7840\n },\n {\n \"tag\": "merycism",\n \"popularity\": 7832\n },\n {\n \"tag\": "checkrow",\n \"popularity\": 7824\n },\n {\n \"tag\": "scry",\n \"popularity\": 7816\n },\n {\n \"tag\": "obvolve",\n \"popularity\": 7808\n },\n {\n \"tag\": "orchard",\n \"popularity\": 7800\n },\n {\n \"tag\": "isomerize",\n \"popularity\": 7792\n },\n {\n \"tag\": "competitrix",\n \"popularity\": 7784\n },\n {\n \"tag\": "unbannered",\n \"popularity\": 7776\n },\n {\n \"tag\": "undoctrined",\n \"popularity\": 7768\n },\n {\n \"tag\": "theologian",\n \"popularity\": 7760\n },\n {\n \"tag\": "nebby",\n \"popularity\": 7752\n },\n {\n \"tag\": "Cardiazol",\n \"popularity\": 7745\n },\n {\n \"tag\": "phagedenic",\n \"popularity\": 7737\n },\n {\n \"tag\": "nostalgic",\n \"popularity\": 7729\n },\n {\n \"tag\": "orthodoxy",\n \"popularity\": 7721\n },\n {\n \"tag\": "oversanguine",\n \"popularity\": 7713\n },\n {\n \"tag\": "lish",\n \"popularity\": 7705\n },\n {\n \"tag\": "ketogenic",\n \"popularity\": 7698\n },\n {\n \"tag\": "syndicalize",\n \"popularity\": 7690\n },\n {\n \"tag\": "leeftail",\n \"popularity\": 7682\n },\n {\n \"tag\": "bulbomedullary",\n \"popularity\": 7674\n },\n {\n \"tag\": "reletter",\n \"popularity\": 7667\n },\n {\n \"tag\": "bitterly",\n \"popularity\": 7659\n },\n {\n \"tag\": "participatory",\n \"popularity\": 7651\n },\n {\n \"tag\": "baldberry",\n \"popularity\": 7643\n },\n {\n \"tag\": "prowaterpower",\n \"popularity\": 7636\n },\n {\n \"tag\": "lexicographical",\n \"popularity\": 7628\n },\n {\n \"tag\": "Anisodactyli",\n \"popularity\": 7620\n },\n {\n \"tag\": "amphipodous",\n \"popularity\": 7613\n },\n {\n \"tag\": "triglandular",\n \"popularity\": 7605\n },\n {\n \"tag\": "xanthopsin",\n \"popularity\": 7597\n },\n {\n \"tag\": "indefinitude",\n \"popularity\": 7590\n },\n {\n \"tag\": "bookworm",\n \"popularity\": 7582\n },\n {\n \"tag\": "suffocative",\n \"popularity\": 7574\n },\n {\n \"tag\": "uncongested tyrant",\n \"popularity\": 7567\n },\n {\n \"tag\": "alow harmoniously Pamir",\n \"popularity\": 7559\n },\n {\n \"tag\": "monander",\n \"popularity\": 7552\n },\n {\n \"tag\": "bagatelle",\n \"popularity\": 7544\n },\n {\n \"tag\": "membranology",\n \"popularity\": 7537\n },\n {\n \"tag\": "parturifacient",\n \"popularity\": 7529\n },\n {\n \"tag\": "excitovascular",\n \"popularity\": 7522\n },\n {\n \"tag\": "homopolar",\n \"popularity\": 7514\n },\n {\n \"tag\": "phobiac",\n \"popularity\": 7507\n },\n {\n \"tag\": "clype",\n \"popularity\": 7499\n },\n {\n \"tag\": "unsubversive",\n \"popularity\": 7492\n },\n {\n \"tag\": "bostrychoidal scorpionwort",\n \"popularity\": 7484\n },\n {\n \"tag\": "biliteralism",\n \"popularity\": 7477\n },\n {\n \"tag\": "dentatocostate",\n \"popularity\": 7469\n },\n {\n \"tag\": "Pici",\n \"popularity\": 7462\n },\n {\n \"tag\": "sideritic",\n \"popularity\": 7454\n },\n {\n \"tag\": "syntaxis",\n \"popularity\": 7447\n },\n {\n \"tag\": "ingest",\n \"popularity\": 7440\n },\n {\n \"tag\": "rigmarolish",\n \"popularity\": 7432\n },\n {\n \"tag\": "ocreaceous",\n \"popularity\": 7425\n },\n {\n \"tag\": "hyperbrachyskelic",\n \"popularity\": 7418\n },\n {\n \"tag\": "basophobia",\n \"popularity\": 7410\n },\n {\n \"tag\": "substantialness",\n \"popularity\": 7403\n },\n {\n \"tag\": "agglutinoid",\n \"popularity\": 7396\n },\n {\n \"tag\": "longleaf",\n \"popularity\": 7388\n },\n {\n \"tag\": "electroengraving",\n \"popularity\": 7381\n },\n {\n \"tag\": "laparoenterotomy",\n \"popularity\": 7374\n },\n {\n \"tag\": "oxalylurea",\n \"popularity\": 7366\n },\n {\n \"tag\": "unattaintedly",\n \"popularity\": 7359\n },\n {\n \"tag\": "pennystone",\n \"popularity\": 7352\n },\n {\n \"tag\": "Plumbaginaceae",\n \"popularity\": 7345\n },\n {\n \"tag\": "horntip",\n \"popularity\": 7337\n },\n {\n \"tag\": "begrudge",\n \"popularity\": 7330\n },\n {\n \"tag\": "bechignoned",\n \"popularity\": 7323\n },\n {\n \"tag\": "hologonidium",\n \"popularity\": 7316\n },\n {\n \"tag\": "Pulian",\n \"popularity\": 7309\n },\n {\n \"tag\": "gratulation",\n \"popularity\": 7301\n },\n {\n \"tag\": "Sebright",\n \"popularity\": 7294\n },\n {\n \"tag\": "coinstantaneous emotionally",\n \"popularity\": 7287\n },\n {\n \"tag\": "thoracostracan",\n \"popularity\": 7280\n },\n {\n \"tag\": "saurodont",\n \"popularity\": 7273\n },\n {\n \"tag\": "coseat",\n \"popularity\": 7266\n },\n {\n \"tag\": "irascibility",\n \"popularity\": 7259\n },\n {\n \"tag\": "occlude",\n \"popularity\": 7251\n },\n {\n \"tag\": "metallurgist",\n \"popularity\": 7244\n },\n {\n \"tag\": "extraviolet",\n \"popularity\": 7237\n },\n {\n \"tag\": "clinic",\n \"popularity\": 7230\n },\n {\n \"tag\": "skater",\n \"popularity\": 7223\n },\n {\n \"tag\": "linguistic",\n \"popularity\": 7216\n },\n {\n \"tag\": "attacheship",\n \"popularity\": 7209\n },\n {\n \"tag\": "Rachianectes",\n \"popularity\": 7202\n },\n {\n \"tag\": "foliolose",\n \"popularity\": 7195\n },\n {\n \"tag\": "claudetite",\n \"popularity\": 7188\n },\n {\n \"tag\": "aphidian scratching",\n \"popularity\": 7181\n },\n {\n \"tag\": "Carida",\n \"popularity\": 7174\n },\n {\n \"tag\": "tiepin polymicroscope",\n \"popularity\": 7167\n },\n {\n \"tag\": "telpherage",\n \"popularity\": 7160\n },\n {\n \"tag\": "meek",\n \"popularity\": 7153\n },\n {\n \"tag\": "swiftness",\n \"popularity\": 7146\n },\n {\n \"tag\": "gentes",\n \"popularity\": 7139\n },\n {\n \"tag\": "uncommemorated",\n \"popularity\": 7132\n },\n {\n \"tag\": "Lazarus",\n \"popularity\": 7125\n },\n {\n \"tag\": "redivive",\n \"popularity\": 7119\n },\n {\n \"tag\": "nonfebrile",\n \"popularity\": 7112\n },\n {\n \"tag\": "nymphet",\n \"popularity\": 7105\n },\n {\n \"tag\": "areologically",\n \"popularity\": 7098\n },\n {\n \"tag\": "undonkey",\n \"popularity\": 7091\n },\n {\n \"tag\": "projecting",\n \"popularity\": 7084\n },\n {\n \"tag\": "pinnigrade",\n \"popularity\": 7077\n },\n {\n \"tag\": "butylation",\n \"popularity\": 7071\n },\n {\n \"tag\": "philologistic lenticle",\n \"popularity\": 7064\n },\n {\n \"tag\": "nooky",\n \"popularity\": 7057\n },\n {\n \"tag\": "incestuousness",\n \"popularity\": 7050\n },\n {\n \"tag\": "palingenetically",\n \"popularity\": 7043\n },\n {\n \"tag\": "mitochondria",\n \"popularity\": 7037\n },\n {\n \"tag\": "truthify",\n \"popularity\": 7030\n },\n {\n \"tag\": "titanyl",\n \"popularity\": 7023\n },\n {\n \"tag\": "bestride",\n \"popularity\": 7016\n },\n {\n \"tag\": "chende",\n \"popularity\": 7010\n },\n {\n \"tag\": "Chaucerian monophote",\n \"popularity\": 7003\n },\n {\n \"tag\": "cutback",\n \"popularity\": 6996\n },\n {\n \"tag\": "unpatiently",\n \"popularity\": 6989\n },\n {\n \"tag\": "subvitreous",\n \"popularity\": 6983\n },\n {\n \"tag\": "organizable",\n \"popularity\": 6976\n },\n {\n \"tag\": "anniverse uncomprehensible",\n \"popularity\": 6969\n },\n {\n \"tag\": "hyalescence",\n \"popularity\": 6963\n },\n {\n \"tag\": "amniochorial",\n \"popularity\": 6956\n },\n {\n \"tag\": "Corybantian",\n \"popularity\": 6949\n },\n {\n \"tag\": "genocide Scaphitidae",\n \"popularity\": 6943\n },\n {\n \"tag\": "accordionist",\n \"popularity\": 6936\n },\n {\n \"tag\": "becheck",\n \"popularity\": 6930\n },\n {\n \"tag\": "overproduce",\n \"popularity\": 6923\n },\n {\n \"tag\": "unmaniac frijolillo",\n \"popularity\": 6916\n },\n {\n \"tag\": "multisulcated",\n \"popularity\": 6910\n },\n {\n \"tag\": "wennebergite",\n \"popularity\": 6903\n },\n {\n \"tag\": "tautousious mowth",\n \"popularity\": 6897\n },\n {\n \"tag\": "marigold",\n \"popularity\": 6890\n },\n {\n \"tag\": "affray",\n \"popularity\": 6884\n },\n {\n \"tag\": "nonidolatrous",\n \"popularity\": 6877\n },\n {\n \"tag\": "aphrasia",\n \"popularity\": 6871\n },\n {\n \"tag\": "muddlingly",\n \"popularity\": 6864\n },\n {\n \"tag\": "clear",\n \"popularity\": 6858\n },\n {\n \"tag\": "Clitoria",\n \"popularity\": 6851\n },\n {\n \"tag\": "apportionment underwaist",\n \"popularity\": 6845\n },\n {\n \"tag\": "kodakist",\n \"popularity\": 6838\n },\n {\n \"tag\": "Momotidae",\n \"popularity\": 6832\n },\n {\n \"tag\": "cryptovalency",\n \"popularity\": 6825\n },\n {\n \"tag\": "floe",\n \"popularity\": 6819\n },\n {\n \"tag\": "aphagia",\n \"popularity\": 6812\n },\n {\n \"tag\": "brontograph",\n \"popularity\": 6806\n },\n {\n \"tag\": "tubulous",\n \"popularity\": 6799\n },\n {\n \"tag\": "unhorse",\n \"popularity\": 6793\n },\n {\n \"tag\": "chlordane",\n \"popularity\": 6787\n },\n {\n \"tag\": "colloquy brochan",\n \"popularity\": 6780\n },\n {\n \"tag\": "sloosh",\n \"popularity\": 6774\n },\n {\n \"tag\": "battered",\n \"popularity\": 6767\n },\n {\n \"tag\": "monocularity pluriguttulate",\n \"popularity\": 6761\n },\n {\n \"tag\": "chiastoneury",\n \"popularity\": 6755\n },\n {\n \"tag\": "Sanguinaria",\n \"popularity\": 6748\n },\n {\n \"tag\": "confessionary",\n \"popularity\": 6742\n },\n {\n \"tag\": "enzymic",\n \"popularity\": 6736\n },\n {\n \"tag\": "cord",\n \"popularity\": 6729\n },\n {\n \"tag\": "oviducal",\n \"popularity\": 6723\n },\n {\n \"tag\": "crozzle outsea",\n \"popularity\": 6717\n },\n {\n \"tag\": "balladical",\n \"popularity\": 6710\n },\n {\n \"tag\": "uncollectibleness",\n \"popularity\": 6704\n },\n {\n \"tag\": "predorsal",\n \"popularity\": 6698\n },\n {\n \"tag\": "reauthenticate",\n \"popularity\": 6692\n },\n {\n \"tag\": "ravissant",\n \"popularity\": 6685\n },\n {\n \"tag\": "advantageousness",\n \"popularity\": 6679\n },\n {\n \"tag\": "rung",\n \"popularity\": 6673\n },\n {\n \"tag\": "duncedom",\n \"popularity\": 6667\n },\n {\n \"tag\": "hematolite",\n \"popularity\": 6660\n },\n {\n \"tag\": "thisness",\n \"popularity\": 6654\n },\n {\n \"tag\": "mapau",\n \"popularity\": 6648\n },\n {\n \"tag\": "Hecatic",\n \"popularity\": 6642\n },\n {\n \"tag\": "meningoencephalocele",\n \"popularity\": 6636\n },\n {\n \"tag\": "confection sorra",\n \"popularity\": 6630\n },\n {\n \"tag\": "unsedate",\n \"popularity\": 6623\n },\n {\n \"tag\": "meningocerebritis",\n \"popularity\": 6617\n },\n {\n \"tag\": "biopsychological",\n \"popularity\": 6611\n },\n {\n \"tag\": "clavicithern",\n \"popularity\": 6605\n },\n {\n \"tag\": "resun",\n \"popularity\": 6599\n },\n {\n \"tag\": "bayamo",\n \"popularity\": 6593\n },\n {\n \"tag\": "seeableness",\n \"popularity\": 6587\n },\n {\n \"tag\": "hypsidolichocephalism",\n \"popularity\": 6581\n },\n {\n \"tag\": "salivous",\n \"popularity\": 6574\n },\n {\n \"tag\": "neumatize",\n \"popularity\": 6568\n },\n {\n \"tag\": "stree",\n \"popularity\": 6562\n },\n {\n \"tag\": "markshot",\n \"popularity\": 6556\n },\n {\n \"tag\": "phraseologically",\n \"popularity\": 6550\n },\n {\n \"tag\": "yealing",\n \"popularity\": 6544\n },\n {\n \"tag\": "puggy",\n \"popularity\": 6538\n },\n {\n \"tag\": "sexadecimal",\n \"popularity\": 6532\n },\n {\n \"tag\": "unofficerlike",\n \"popularity\": 6526\n },\n {\n \"tag\": "curiosa",\n \"popularity\": 6520\n },\n {\n \"tag\": "pedomotor",\n \"popularity\": 6514\n },\n {\n \"tag\": "astrally",\n \"popularity\": 6508\n },\n {\n \"tag\": "prosomatic",\n \"popularity\": 6502\n },\n {\n \"tag\": "bulletheaded",\n \"popularity\": 6496\n },\n {\n \"tag\": "fortuned",\n \"popularity\": 6490\n },\n {\n \"tag\": "pixy",\n \"popularity\": 6484\n },\n {\n \"tag\": "protectrix",\n \"popularity\": 6478\n },\n {\n \"tag\": "arthritical",\n \"popularity\": 6472\n },\n {\n \"tag\": "coction",\n \"popularity\": 6466\n },\n {\n \"tag\": "Anthropos",\n \"popularity\": 6460\n },\n {\n \"tag\": "runer",\n \"popularity\": 6454\n },\n {\n \"tag\": "prenotify",\n \"popularity\": 6449\n },\n {\n \"tag\": "microspheric gastroparalysis",\n \"popularity\": 6443\n },\n {\n \"tag\": "Jovicentrical",\n \"popularity\": 6437\n },\n {\n \"tag\": "ceratopsid",\n \"popularity\": 6431\n },\n {\n \"tag\": "Theodoric",\n \"popularity\": 6425\n },\n {\n \"tag\": "Pactolus",\n \"popularity\": 6419\n },\n {\n \"tag\": "spawning",\n \"popularity\": 6413\n },\n {\n \"tag\": "nonconfidential",\n \"popularity\": 6407\n },\n {\n \"tag\": "halotrichite infumate",\n \"popularity\": 6402\n },\n {\n \"tag\": "undiscriminatingly",\n \"popularity\": 6396\n },\n {\n \"tag\": "unexasperated",\n \"popularity\": 6390\n },\n {\n \"tag\": "isoeugenol",\n \"popularity\": 6384\n },\n {\n \"tag\": "pressboard",\n \"popularity\": 6378\n },\n {\n \"tag\": "unshrew",\n \"popularity\": 6372\n },\n {\n \"tag\": "huffingly",\n \"popularity\": 6367\n },\n {\n \"tag\": "wagaun",\n \"popularity\": 6361\n },\n {\n \"tag\": "squirt Philistine",\n \"popularity\": 6355\n },\n {\n \"tag\": "kryptic",\n \"popularity\": 6349\n },\n {\n \"tag\": "paraform",\n \"popularity\": 6344\n },\n {\n \"tag\": "preverify",\n \"popularity\": 6338\n },\n {\n \"tag\": "dalar",\n \"popularity\": 6332\n },\n {\n \"tag\": "interdictor appraisingly",\n \"popularity\": 6326\n },\n {\n \"tag\": "chipped",\n \"popularity\": 6321\n },\n {\n \"tag\": "Pteropoda",\n \"popularity\": 6315\n },\n {\n \"tag\": "Bohairic",\n \"popularity\": 6309\n },\n {\n \"tag\": "felting",\n \"popularity\": 6303\n },\n {\n \"tag\": "compurgatorial",\n \"popularity\": 6298\n },\n {\n \"tag\": "unclead",\n \"popularity\": 6292\n },\n {\n \"tag\": "stockish",\n \"popularity\": 6286\n },\n {\n \"tag\": "mulligatawny",\n \"popularity\": 6281\n },\n {\n \"tag\": "Monotheletism",\n \"popularity\": 6275\n },\n {\n \"tag\": "lutanist",\n \"popularity\": 6269\n },\n {\n \"tag\": "gluttonize",\n \"popularity\": 6264\n },\n {\n \"tag\": "hackneyed",\n \"popularity\": 6258\n },\n {\n \"tag\": "yield",\n \"popularity\": 6253\n },\n {\n \"tag\": "sulphonamido",\n \"popularity\": 6247\n },\n {\n \"tag\": "granulative",\n \"popularity\": 6241\n },\n {\n \"tag\": "swingy",\n \"popularity\": 6236\n },\n {\n \"tag\": "Desmidiales",\n \"popularity\": 6230\n },\n {\n \"tag\": "tootlish",\n \"popularity\": 6224\n },\n {\n \"tag\": "unsatisfiedly",\n \"popularity\": 6219\n },\n {\n \"tag\": "burucha",\n \"popularity\": 6213\n },\n {\n \"tag\": "premeditatingly",\n \"popularity\": 6208\n },\n {\n \"tag\": "cowrie",\n \"popularity\": 6202\n },\n {\n \"tag\": "pleurolysis",\n \"popularity\": 6197\n },\n {\n \"tag\": "nationalist",\n \"popularity\": 6191\n },\n {\n \"tag\": "Pholadacea",\n \"popularity\": 6186\n },\n {\n \"tag\": "anakrousis",\n \"popularity\": 6180\n },\n {\n \"tag\": "proctorial",\n \"popularity\": 6175\n },\n {\n \"tag\": "cavillation",\n \"popularity\": 6169\n },\n {\n \"tag\": "cervicobregmatic",\n \"popularity\": 6163\n },\n {\n \"tag\": "interspecific",\n \"popularity\": 6158\n },\n {\n \"tag\": "Teutonity",\n \"popularity\": 6152\n },\n {\n \"tag\": "snakeholing",\n \"popularity\": 6147\n },\n {\n \"tag\": "balcony",\n \"popularity\": 6142\n },\n {\n \"tag\": "latchless",\n \"popularity\": 6136\n },\n {\n \"tag\": "Mithraea",\n \"popularity\": 6131\n },\n {\n \"tag\": "pseudepigraph",\n \"popularity\": 6125\n },\n {\n \"tag\": "flosser",\n \"popularity\": 6120\n },\n {\n \"tag\": "kotyle",\n \"popularity\": 6114\n },\n {\n \"tag\": "outdo",\n \"popularity\": 6109\n },\n {\n \"tag\": "interclerical",\n \"popularity\": 6103\n },\n {\n \"tag\": "aurar",\n \"popularity\": 6098\n },\n {\n \"tag\": "apophyseal",\n \"popularity\": 6093\n },\n {\n \"tag\": "Miro",\n \"popularity\": 6087\n },\n {\n \"tag\": "Priscillian",\n \"popularity\": 6082\n },\n {\n \"tag\": "alluvia",\n \"popularity\": 6076\n },\n {\n \"tag\": "exordize",\n \"popularity\": 6071\n },\n {\n \"tag\": "breakage",\n \"popularity\": 6066\n },\n {\n \"tag\": "unclosable",\n \"popularity\": 6060\n },\n {\n \"tag\": "monocondylous",\n \"popularity\": 6055\n },\n {\n \"tag\": "dyarchy",\n \"popularity\": 6050\n },\n {\n \"tag\": "subchelate",\n \"popularity\": 6044\n },\n {\n \"tag\": "hearsay",\n \"popularity\": 6039\n },\n {\n \"tag\": "prestigiously",\n \"popularity\": 6034\n },\n {\n \"tag\": "unimuscular",\n \"popularity\": 6028\n },\n {\n \"tag\": "lingwort",\n \"popularity\": 6023\n },\n {\n \"tag\": "jealous",\n \"popularity\": 6018\n },\n {\n \"tag\": "artilleryman",\n \"popularity\": 6012\n },\n {\n \"tag\": "phantasmagorially",\n \"popularity\": 6007\n },\n {\n \"tag\": "stagnum",\n \"popularity\": 6002\n },\n {\n \"tag\": "organotropism shatteringly",\n \"popularity\": 5997\n },\n {\n \"tag\": "Mytilus Hebraist",\n \"popularity\": 5991\n },\n {\n \"tag\": "returf",\n \"popularity\": 5986\n },\n {\n \"tag\": "townfolk",\n \"popularity\": 5981\n },\n {\n \"tag\": "propitiative",\n \"popularity\": 5976\n },\n {\n \"tag\": "Anita unsullied",\n \"popularity\": 5970\n },\n {\n \"tag\": "bandoleered",\n \"popularity\": 5965\n },\n {\n \"tag\": "cubby",\n \"popularity\": 5960\n },\n {\n \"tag\": "Hexanchus",\n \"popularity\": 5955\n },\n {\n \"tag\": "circuminsular",\n \"popularity\": 5949\n },\n {\n \"tag\": "chamberletted eumycete",\n \"popularity\": 5944\n },\n {\n \"tag\": "secure",\n \"popularity\": 5939\n },\n {\n \"tag\": "Edwardean",\n \"popularity\": 5934\n },\n {\n \"tag\": "strenth",\n \"popularity\": 5929\n },\n {\n \"tag\": "exhaustless",\n \"popularity\": 5923\n },\n {\n \"tag\": "electioneerer",\n \"popularity\": 5918\n },\n {\n \"tag\": "estoile",\n \"popularity\": 5913\n },\n {\n \"tag\": "redden",\n \"popularity\": 5908\n },\n {\n \"tag\": "solicitee",\n \"popularity\": 5903\n },\n {\n \"tag\": "nonpatented",\n \"popularity\": 5898\n },\n {\n \"tag\": "lemming",\n \"popularity\": 5893\n },\n {\n \"tag\": "marled subalate",\n \"popularity\": 5887\n },\n {\n \"tag\": "premial horizonward",\n \"popularity\": 5882\n },\n {\n \"tag\": "nonrefueling",\n \"popularity\": 5877\n },\n {\n \"tag\": "rupturewort",\n \"popularity\": 5872\n },\n {\n \"tag\": "unfed",\n \"popularity\": 5867\n },\n {\n \"tag\": "empanelment",\n \"popularity\": 5862\n },\n {\n \"tag\": "isoosmosis",\n \"popularity\": 5857\n },\n {\n \"tag\": "jipijapa",\n \"popularity\": 5852\n },\n {\n \"tag\": "Fiji",\n \"popularity\": 5847\n },\n {\n \"tag\": "interferant",\n \"popularity\": 5842\n },\n {\n \"tag\": "reconstitution",\n \"popularity\": 5837\n },\n {\n \"tag\": "dockyardman",\n \"popularity\": 5832\n },\n {\n \"tag\": "dolichopodous",\n \"popularity\": 5826\n },\n {\n \"tag\": "whiteworm",\n \"popularity\": 5821\n },\n {\n \"tag\": "atheistically",\n \"popularity\": 5816\n },\n {\n \"tag\": "nonconcern",\n \"popularity\": 5811\n },\n {\n \"tag\": "scarabaeidoid",\n \"popularity\": 5806\n },\n {\n \"tag\": "triumviri",\n \"popularity\": 5801\n },\n {\n \"tag\": "rakit",\n \"popularity\": 5796\n },\n {\n \"tag\": "leecheater",\n \"popularity\": 5791\n },\n {\n \"tag\": "Arthrostraca",\n \"popularity\": 5786\n },\n {\n \"tag\": "upknit",\n \"popularity\": 5781\n },\n {\n \"tag\": "tymbalon",\n \"popularity\": 5776\n },\n {\n \"tag\": "inventurous",\n \"popularity\": 5771\n },\n {\n \"tag\": "perradiate",\n \"popularity\": 5766\n },\n {\n \"tag\": "seer",\n \"popularity\": 5762\n },\n {\n \"tag\": "Auricularia",\n \"popularity\": 5757\n },\n {\n \"tag\": "wettish exclusivity",\n \"popularity\": 5752\n },\n {\n \"tag\": "arteriosympathectomy",\n \"popularity\": 5747\n },\n {\n \"tag\": "tunlike",\n \"popularity\": 5742\n },\n {\n \"tag\": "cephalocercal",\n \"popularity\": 5737\n },\n {\n \"tag\": "meaninglessness",\n \"popularity\": 5732\n },\n {\n \"tag\": "fountful",\n \"popularity\": 5727\n },\n {\n \"tag\": "appraisement",\n \"popularity\": 5722\n },\n {\n \"tag\": "geniculated",\n \"popularity\": 5717\n },\n {\n \"tag\": "rotator",\n \"popularity\": 5712\n },\n {\n \"tag\": "foremarch biography",\n \"popularity\": 5707\n },\n {\n \"tag\": "arid",\n \"popularity\": 5703\n },\n {\n \"tag\": "inapprehensible",\n \"popularity\": 5698\n },\n {\n \"tag\": "chlorosulphonic",\n \"popularity\": 5693\n },\n {\n \"tag\": "braguette",\n \"popularity\": 5688\n },\n {\n \"tag\": "panophthalmitis",\n \"popularity\": 5683\n },\n {\n \"tag\": "pro objurgatorily",\n \"popularity\": 5678\n },\n {\n \"tag\": "zooplasty",\n \"popularity\": 5673\n },\n {\n \"tag\": "Terebratulidae",\n \"popularity\": 5669\n },\n {\n \"tag\": "Mahran",\n \"popularity\": 5664\n },\n {\n \"tag\": "anthologize merocele",\n \"popularity\": 5659\n },\n {\n \"tag\": "firecracker chiropractic",\n \"popularity\": 5654\n },\n {\n \"tag\": "tenorist",\n \"popularity\": 5649\n },\n {\n \"tag\": "amphitene",\n \"popularity\": 5645\n },\n {\n \"tag\": "silverbush toadstone",\n \"popularity\": 5640\n },\n {\n \"tag\": "entozoological",\n \"popularity\": 5635\n },\n {\n \"tag\": "trustlessness",\n \"popularity\": 5630\n },\n {\n \"tag\": "reassay",\n \"popularity\": 5625\n },\n {\n \"tag\": "chrysalides",\n \"popularity\": 5621\n },\n {\n \"tag\": "truncation",\n \"popularity\": 5616\n },\n {\n \"tag\": "unwavered mausoleal",\n \"popularity\": 5611\n },\n {\n \"tag\": "unserrated",\n \"popularity\": 5606\n },\n {\n \"tag\": "frampler",\n \"popularity\": 5602\n },\n {\n \"tag\": "celestial",\n \"popularity\": 5597\n },\n {\n \"tag\": "depreter",\n \"popularity\": 5592\n },\n {\n \"tag\": "retaliate",\n \"popularity\": 5588\n },\n {\n \"tag\": "decempunctate",\n \"popularity\": 5583\n },\n {\n \"tag\": "submitter",\n \"popularity\": 5578\n },\n {\n \"tag\": "phenothiazine",\n \"popularity\": 5573\n },\n {\n \"tag\": "hobbledehoyish",\n \"popularity\": 5569\n },\n {\n \"tag\": "erraticness",\n \"popularity\": 5564\n },\n {\n \"tag\": "ovariodysneuria",\n \"popularity\": 5559\n },\n {\n \"tag\": "puja",\n \"popularity\": 5555\n },\n {\n \"tag\": "cesspool",\n \"popularity\": 5550\n },\n {\n \"tag\": "sonation",\n \"popularity\": 5545\n },\n {\n \"tag\": "moggan",\n \"popularity\": 5541\n },\n {\n \"tag\": "overjutting",\n \"popularity\": 5536\n },\n {\n \"tag\": "cohobate",\n \"popularity\": 5531\n },\n {\n \"tag\": "Distoma",\n \"popularity\": 5527\n },\n {\n \"tag\": "Plectognathi",\n \"popularity\": 5522\n },\n {\n \"tag\": "dumple caliphate",\n \"popularity\": 5517\n },\n {\n \"tag\": "shiko",\n \"popularity\": 5513\n },\n {\n \"tag\": "downness",\n \"popularity\": 5508\n },\n {\n \"tag\": "whippletree",\n \"popularity\": 5504\n },\n {\n \"tag\": "nymphaeum",\n \"popularity\": 5499\n },\n {\n \"tag\": "there trest",\n \"popularity\": 5494\n },\n {\n \"tag\": "psychrometer",\n \"popularity\": 5490\n },\n {\n \"tag\": "pyelograph",\n \"popularity\": 5485\n },\n {\n \"tag\": "unsalvable",\n \"popularity\": 5481\n },\n {\n \"tag\": "bescreen",\n \"popularity\": 5476\n },\n {\n \"tag\": "cushy",\n \"popularity\": 5471\n },\n {\n \"tag\": "plicatolobate",\n \"popularity\": 5467\n },\n {\n \"tag\": "lakie",\n \"popularity\": 5462\n },\n {\n \"tag\": "anthropodeoxycholic",\n \"popularity\": 5458\n },\n {\n \"tag\": "resatisfaction",\n \"popularity\": 5453\n },\n {\n \"tag\": "unravelment unaccidental",\n \"popularity\": 5449\n },\n {\n \"tag\": "telewriter monogeneous",\n \"popularity\": 5444\n },\n {\n \"tag\": "unsabred",\n \"popularity\": 5440\n },\n {\n \"tag\": "startlingly",\n \"popularity\": 5435\n },\n {\n \"tag\": "Aralia",\n \"popularity\": 5431\n },\n {\n \"tag\": "alamonti",\n \"popularity\": 5426\n },\n {\n \"tag\": "Franklinization",\n \"popularity\": 5422\n },\n {\n \"tag\": "parliament",\n \"popularity\": 5417\n },\n {\n \"tag\": "schoolkeeper",\n \"popularity\": 5413\n },\n {\n \"tag\": "nonsociety",\n \"popularity\": 5408\n },\n {\n \"tag\": "parenthetic",\n \"popularity\": 5404\n },\n {\n \"tag\": "stog",\n \"popularity\": 5399\n },\n {\n \"tag\": "Pristipomidae",\n \"popularity\": 5395\n },\n {\n \"tag\": "exocarp",\n \"popularity\": 5390\n },\n {\n \"tag\": "monaxonial",\n \"popularity\": 5386\n },\n {\n \"tag\": "tramroad",\n \"popularity\": 5381\n },\n {\n \"tag\": "hookah",\n \"popularity\": 5377\n },\n {\n \"tag\": "saccharonic",\n \"popularity\": 5372\n },\n {\n \"tag\": "perimetrium",\n \"popularity\": 5368\n },\n {\n \"tag\": "libelluloid",\n \"popularity\": 5364\n },\n {\n \"tag\": "overrunningly",\n \"popularity\": 5359\n },\n {\n \"tag\": "untwister",\n \"popularity\": 5355\n },\n {\n \"tag\": "ninnyhammer",\n \"popularity\": 5350\n },\n {\n \"tag\": "metranate",\n \"popularity\": 5346\n },\n {\n \"tag\": "sarcoblast",\n \"popularity\": 5341\n },\n {\n \"tag\": "porkish",\n \"popularity\": 5337\n },\n {\n \"tag\": "chauvinistic",\n \"popularity\": 5333\n },\n {\n \"tag\": "sexagesimal",\n \"popularity\": 5328\n },\n {\n \"tag\": "hematogenic",\n \"popularity\": 5324\n },\n {\n \"tag\": "selfpreservatory",\n \"popularity\": 5320\n },\n {\n \"tag\": "myelauxe",\n \"popularity\": 5315\n },\n {\n \"tag\": "triply",\n \"popularity\": 5311\n },\n {\n \"tag\": "metaphysicous",\n \"popularity\": 5306\n },\n {\n \"tag\": "vitrinoid",\n \"popularity\": 5302\n },\n {\n \"tag\": "glabellae",\n \"popularity\": 5298\n },\n {\n \"tag\": "moonlighter",\n \"popularity\": 5293\n },\n {\n \"tag\": "monotheistically epexegetical",\n \"popularity\": 5289\n },\n {\n \"tag\": "pseudolateral",\n \"popularity\": 5285\n },\n {\n \"tag\": "heptamethylene",\n \"popularity\": 5280\n },\n {\n \"tag\": "salvadora",\n \"popularity\": 5276\n },\n {\n \"tag\": "unjovial diphenylthiourea",\n \"popularity\": 5272\n },\n {\n \"tag\": "thievishness",\n \"popularity\": 5268\n },\n {\n \"tag\": "unridable",\n \"popularity\": 5263\n },\n {\n \"tag\": "underhandedly",\n \"popularity\": 5259\n },\n {\n \"tag\": "fungiform",\n \"popularity\": 5255\n },\n {\n \"tag\": "scruffle",\n \"popularity\": 5250\n },\n {\n \"tag\": "preindisposition",\n \"popularity\": 5246\n },\n {\n \"tag\": "Amadis",\n \"popularity\": 5242\n },\n {\n \"tag\": "Culex",\n \"popularity\": 5238\n },\n {\n \"tag\": "churning",\n \"popularity\": 5233\n },\n {\n \"tag\": "imperite",\n \"popularity\": 5229\n },\n {\n \"tag\": "levorotation",\n \"popularity\": 5225\n },\n {\n \"tag\": "barbate",\n \"popularity\": 5221\n },\n {\n \"tag\": "knotwort",\n \"popularity\": 5216\n },\n {\n \"tag\": "gypsiferous",\n \"popularity\": 5212\n },\n {\n \"tag\": "tourmalinic",\n \"popularity\": 5208\n },\n {\n \"tag\": "helleboric",\n \"popularity\": 5204\n },\n {\n \"tag\": "pneumograph",\n \"popularity\": 5199\n },\n {\n \"tag\": "Peltigeraceae",\n \"popularity\": 5195\n },\n {\n \"tag\": "busine",\n \"popularity\": 5191\n },\n {\n \"tag\": "Ailuridae",\n \"popularity\": 5187\n },\n {\n \"tag\": "azotate",\n \"popularity\": 5183\n },\n {\n \"tag\": "unlikable",\n \"popularity\": 5178\n },\n {\n \"tag\": "sloyd",\n \"popularity\": 5174\n },\n {\n \"tag\": "biblioclasm",\n \"popularity\": 5170\n },\n {\n \"tag\": "Seres",\n \"popularity\": 5166\n },\n {\n \"tag\": "unaccurateness",\n \"popularity\": 5162\n },\n {\n \"tag\": "scrollwise",\n \"popularity\": 5157\n },\n {\n \"tag\": "flandowser",\n \"popularity\": 5153\n },\n {\n \"tag\": "unblackened",\n \"popularity\": 5149\n },\n {\n \"tag\": "schistosternia",\n \"popularity\": 5145\n },\n {\n \"tag\": "fuse",\n \"popularity\": 5141\n },\n {\n \"tag\": "narthecal",\n \"popularity\": 5137\n },\n {\n \"tag\": "Cueva",\n \"popularity\": 5133\n },\n {\n \"tag\": "appositeness",\n \"popularity\": 5128\n },\n {\n \"tag\": "proindustrial",\n \"popularity\": 5124\n },\n {\n \"tag\": "dermatorrhoea",\n \"popularity\": 5120\n },\n {\n \"tag\": "oxyurous tendential",\n \"popularity\": 5116\n },\n {\n \"tag\": "isopurpurin",\n \"popularity\": 5112\n },\n {\n \"tag\": "impose",\n \"popularity\": 5108\n },\n {\n \"tag\": "wordsmanship",\n \"popularity\": 5104\n },\n {\n \"tag\": "saturator",\n \"popularity\": 5100\n },\n {\n \"tag\": "Nordicity",\n \"popularity\": 5096\n },\n {\n \"tag\": "interaccuse",\n \"popularity\": 5092\n },\n {\n \"tag\": "acridinic",\n \"popularity\": 5087\n },\n {\n \"tag\": "scholion",\n \"popularity\": 5083\n },\n {\n \"tag\": "pseudoaconitine",\n \"popularity\": 5079\n },\n {\n \"tag\": "doctorial",\n \"popularity\": 5075\n },\n {\n \"tag\": "Etchimin",\n \"popularity\": 5071\n },\n {\n \"tag\": "oliviform",\n \"popularity\": 5067\n },\n {\n \"tag\": "Pele",\n \"popularity\": 5063\n },\n {\n \"tag\": "Chiromantis Progymnasium",\n \"popularity\": 5059\n },\n {\n \"tag\": "toxosis",\n \"popularity\": 5055\n },\n {\n \"tag\": "spadilla",\n \"popularity\": 5051\n },\n {\n \"tag\": "Actinopterygii",\n \"popularity\": 5047\n },\n {\n \"tag\": "untiring",\n \"popularity\": 5043\n },\n {\n \"tag\": "butyral",\n \"popularity\": 5039\n },\n {\n \"tag\": "Gymnoderinae",\n \"popularity\": 5035\n },\n {\n \"tag\": "testudo",\n \"popularity\": 5031\n },\n {\n \"tag\": "frigorify",\n \"popularity\": 5027\n },\n {\n \"tag\": "aliency",\n \"popularity\": 5023\n },\n {\n \"tag\": "jargon",\n \"popularity\": 5019\n },\n {\n \"tag\": "counterservice",\n \"popularity\": 5015\n },\n {\n \"tag\": "isostrychnine",\n \"popularity\": 5011\n },\n {\n \"tag\": "tellership",\n \"popularity\": 5007\n },\n {\n \"tag\": "miscegenetic",\n \"popularity\": 5003\n },\n {\n \"tag\": "sorcer",\n \"popularity\": 4999\n },\n {\n \"tag\": "tilewright",\n \"popularity\": 4995\n },\n {\n \"tag\": "cyanoplastid",\n \"popularity\": 4991\n },\n {\n \"tag\": "fluxionally",\n \"popularity\": 4987\n },\n {\n \"tag\": "proudhearted",\n \"popularity\": 4983\n },\n {\n \"tag\": "blithely",\n \"popularity\": 4979\n },\n {\n \"tag\": "jestproof",\n \"popularity\": 4975\n },\n {\n \"tag\": "jestwise",\n \"popularity\": 4971\n },\n {\n \"tag\": "nonassimilable",\n \"popularity\": 4967\n },\n {\n \"tag\": "compurgation",\n \"popularity\": 4964\n },\n {\n \"tag\": "unhate",\n \"popularity\": 4960\n },\n {\n \"tag\": "haplodonty",\n \"popularity\": 4956\n },\n {\n \"tag\": "cardholder",\n \"popularity\": 4952\n },\n {\n \"tag\": "rainlight megohmmeter overstout",\n \"popularity\": 4948\n },\n {\n \"tag\": "itchless",\n \"popularity\": 4944\n },\n {\n \"tag\": "begiggle",\n \"popularity\": 4940\n },\n {\n \"tag\": "chromatosphere",\n \"popularity\": 4936\n },\n {\n \"tag\": "typicality",\n \"popularity\": 4932\n },\n {\n \"tag\": "overgrown",\n \"popularity\": 4928\n },\n {\n \"tag\": "envolume",\n \"popularity\": 4925\n },\n {\n \"tag\": "pachycholia",\n \"popularity\": 4921\n },\n {\n \"tag\": "passageable",\n \"popularity\": 4917\n },\n {\n \"tag\": "pathopoiesis",\n \"popularity\": 4913\n },\n {\n \"tag\": "overbreak",\n \"popularity\": 4909\n },\n {\n \"tag\": "satyric",\n \"popularity\": 4905\n },\n {\n \"tag\": "unaudited",\n \"popularity\": 4901\n },\n {\n \"tag\": "whimble",\n \"popularity\": 4898\n },\n {\n \"tag\": "pressureless",\n \"popularity\": 4894\n },\n {\n \"tag\": "Selene",\n \"popularity\": 4890\n },\n {\n \"tag\": "slithery",\n \"popularity\": 4886\n },\n {\n \"tag\": "nondisfigurement",\n \"popularity\": 4882\n },\n {\n \"tag\": "overdelicious",\n \"popularity\": 4878\n },\n {\n \"tag\": "Perca",\n \"popularity\": 4875\n },\n {\n \"tag\": "Palladium",\n \"popularity\": 4871\n },\n {\n \"tag\": "insagacity",\n \"popularity\": 4867\n },\n {\n \"tag\": "peristoma",\n \"popularity\": 4863\n },\n {\n \"tag\": "uncreativeness",\n \"popularity\": 4859\n },\n {\n \"tag\": "incomparability surfboarding",\n \"popularity\": 4856\n },\n {\n \"tag\": "bacillar",\n \"popularity\": 4852\n },\n {\n \"tag\": "ulcerative",\n \"popularity\": 4848\n },\n {\n \"tag\": "stychomythia",\n \"popularity\": 4844\n },\n {\n \"tag\": "sesma somatics nonentry",\n \"popularity\": 4840\n },\n {\n \"tag\": "unsepulchred",\n \"popularity\": 4837\n },\n {\n \"tag\": "cephalanthium",\n \"popularity\": 4833\n },\n {\n \"tag\": "Asiaticization",\n \"popularity\": 4829\n },\n {\n \"tag\": "killeen",\n \"popularity\": 4825\n },\n {\n \"tag\": "Pseudococcus",\n \"popularity\": 4822\n },\n {\n \"tag\": "untractable",\n \"popularity\": 4818\n },\n {\n \"tag\": "apolegamic",\n \"popularity\": 4814\n },\n {\n \"tag\": "hyperpnea",\n \"popularity\": 4810\n },\n {\n \"tag\": "martyrolatry",\n \"popularity\": 4807\n },\n {\n \"tag\": "Sarmatic",\n \"popularity\": 4803\n },\n {\n \"tag\": "nonsurface",\n \"popularity\": 4799\n },\n {\n \"tag\": "adjoined",\n \"popularity\": 4796\n },\n {\n \"tag\": "vasiform",\n \"popularity\": 4792\n },\n {\n \"tag\": "tastelessness",\n \"popularity\": 4788\n },\n {\n \"tag\": "rumbo",\n \"popularity\": 4784\n },\n {\n \"tag\": "subdititious",\n \"popularity\": 4781\n },\n {\n \"tag\": "reparticipation",\n \"popularity\": 4777\n },\n {\n \"tag\": "Yorkshireism",\n \"popularity\": 4773\n },\n {\n \"tag\": "outcrow",\n \"popularity\": 4770\n },\n {\n \"tag\": "casserole",\n \"popularity\": 4766\n },\n {\n \"tag\": "semideltaic",\n \"popularity\": 4762\n },\n {\n \"tag\": "freemason",\n \"popularity\": 4759\n },\n {\n \"tag\": "catkin",\n \"popularity\": 4755\n },\n {\n \"tag\": "conscient",\n \"popularity\": 4751\n },\n {\n \"tag\": "reliably",\n \"popularity\": 4748\n },\n {\n \"tag\": "Telembi",\n \"popularity\": 4744\n },\n {\n \"tag\": "hide",\n \"popularity\": 4740\n },\n {\n \"tag\": "social",\n \"popularity\": 4737\n },\n {\n \"tag\": "ichneutic",\n \"popularity\": 4733\n },\n {\n \"tag\": "polypotome blouse pentagrammatic",\n \"popularity\": 4729\n },\n {\n \"tag\": "airdrome pesthole",\n \"popularity\": 4726\n },\n {\n \"tag\": "unportended",\n \"popularity\": 4722\n },\n {\n \"tag\": "sheerly",\n \"popularity\": 4719\n },\n {\n \"tag\": "acardiac",\n \"popularity\": 4715\n },\n {\n \"tag\": "fetor",\n \"popularity\": 4711\n },\n {\n \"tag\": "storax",\n \"popularity\": 4708\n },\n {\n \"tag\": "syndactylic",\n \"popularity\": 4704\n },\n {\n \"tag\": "otiatrics",\n \"popularity\": 4700\n },\n {\n \"tag\": "range",\n \"popularity\": 4697\n },\n {\n \"tag\": "branchway",\n \"popularity\": 4693\n },\n {\n \"tag\": "beatific",\n \"popularity\": 4690\n },\n {\n \"tag\": "Rugosa",\n \"popularity\": 4686\n },\n {\n \"tag\": "rafty",\n \"popularity\": 4682\n },\n {\n \"tag\": "gapy",\n \"popularity\": 4679\n },\n {\n \"tag\": "heterocercal",\n \"popularity\": 4675\n },\n {\n \"tag\": "actinopterygious",\n \"popularity\": 4672\n },\n {\n \"tag\": "glauconite",\n \"popularity\": 4668\n },\n {\n \"tag\": "limbless priest",\n \"popularity\": 4665\n },\n {\n \"tag\": "chrysene",\n \"popularity\": 4661\n },\n {\n \"tag\": "isentropic",\n \"popularity\": 4658\n },\n {\n \"tag\": "lairdess",\n \"popularity\": 4654\n },\n {\n \"tag\": "butterhead choliambic",\n \"popularity\": 4650\n },\n {\n \"tag\": "hexaseme",\n \"popularity\": 4647\n },\n {\n \"tag\": "treeify",\n \"popularity\": 4643\n },\n {\n \"tag\": "coronetted fructify",\n \"popularity\": 4640\n },\n {\n \"tag\": "admiralty",\n \"popularity\": 4636\n },\n {\n \"tag\": "Flosculariidae",\n \"popularity\": 4633\n },\n {\n \"tag\": "limaceous",\n \"popularity\": 4629\n },\n {\n \"tag\": "subterconscious",\n \"popularity\": 4626\n },\n {\n \"tag\": "stayless",\n \"popularity\": 4622\n },\n {\n \"tag\": "psha",\n \"popularity\": 4619\n },\n {\n \"tag\": "Mediterraneanize",\n \"popularity\": 4615\n },\n {\n \"tag\": "impenetrably",\n \"popularity\": 4612\n },\n {\n \"tag\": "Myrmeleonidae",\n \"popularity\": 4608\n },\n {\n \"tag\": "germander",\n \"popularity\": 4605\n },\n {\n \"tag\": "Buri",\n \"popularity\": 4601\n },\n {\n \"tag\": "papyrotamia",\n \"popularity\": 4598\n },\n {\n \"tag\": "Toxylon",\n \"popularity\": 4594\n },\n {\n \"tag\": "batatilla",\n \"popularity\": 4591\n },\n {\n \"tag\": "fabella assumer",\n \"popularity\": 4587\n },\n {\n \"tag\": "macromethod",\n \"popularity\": 4584\n },\n {\n \"tag\": "Blechnum",\n \"popularity\": 4580\n },\n {\n \"tag\": "pantography",\n \"popularity\": 4577\n },\n {\n \"tag\": "seminovel",\n \"popularity\": 4574\n },\n {\n \"tag\": "disembarrassment",\n \"popularity\": 4570\n },\n {\n \"tag\": "bushmaking",\n \"popularity\": 4567\n },\n {\n \"tag\": "neurosis",\n \"popularity\": 4563\n },\n {\n \"tag\": "Animalia",\n \"popularity\": 4560\n },\n {\n \"tag\": "Bernice",\n \"popularity\": 4556\n },\n {\n \"tag\": "wisen",\n \"popularity\": 4553\n },\n {\n \"tag\": "subhymenium",\n \"popularity\": 4549\n },\n {\n \"tag\": "esophagomycosis",\n \"popularity\": 4546\n },\n {\n \"tag\": "wireworks",\n \"popularity\": 4543\n },\n {\n \"tag\": "Sabellidae",\n \"popularity\": 4539\n },\n {\n \"tag\": "fustianish",\n \"popularity\": 4536\n },\n {\n \"tag\": "professively",\n \"popularity\": 4532\n },\n {\n \"tag\": "overcorruptly",\n \"popularity\": 4529\n },\n {\n \"tag\": "overcreep",\n \"popularity\": 4526\n },\n {\n \"tag\": "Castilloa",\n \"popularity\": 4522\n },\n {\n \"tag\": "forelady Georgie",\n \"popularity\": 4519\n },\n {\n \"tag\": "outsider",\n \"popularity\": 4515\n },\n {\n \"tag\": "Enukki",\n \"popularity\": 4512\n },\n {\n \"tag\": "gypsy",\n \"popularity\": 4509\n },\n {\n \"tag\": "Passamaquoddy",\n \"popularity\": 4505\n },\n {\n \"tag\": "reposit",\n \"popularity\": 4502\n },\n {\n \"tag\": "overtenderness",\n \"popularity\": 4499\n },\n {\n \"tag\": "keratome",\n \"popularity\": 4495\n },\n {\n \"tag\": "interclavicular hypermonosyllable Susanna",\n \"popularity\": 4492\n },\n {\n \"tag\": "mispropose",\n \"popularity\": 4489\n },\n {\n \"tag\": "Membranipora",\n \"popularity\": 4485\n },\n {\n \"tag\": "lampad",\n \"popularity\": 4482\n },\n {\n \"tag\": "header",\n \"popularity\": 4479\n },\n {\n \"tag\": "triseriate",\n \"popularity\": 4475\n },\n {\n \"tag\": "distrainment",\n \"popularity\": 4472\n },\n {\n \"tag\": "staphyloplastic",\n \"popularity\": 4469\n },\n {\n \"tag\": "outscour",\n \"popularity\": 4465\n },\n {\n \"tag\": "tallowmaking",\n \"popularity\": 4462\n },\n {\n \"tag\": "plugger",\n \"popularity\": 4459\n },\n {\n \"tag\": "fashionize",\n \"popularity\": 4455\n },\n {\n \"tag\": "puzzle",\n \"popularity\": 4452\n },\n {\n \"tag\": "imbrue",\n \"popularity\": 4449\n },\n {\n \"tag\": "osteoblast",\n \"popularity\": 4445\n },\n {\n \"tag\": "Hydrocores",\n \"popularity\": 4442\n },\n {\n \"tag\": "Lutra",\n \"popularity\": 4439\n },\n {\n \"tag\": "upridge scarfy",\n \"popularity\": 4435\n },\n {\n \"tag\": "ancon taffle",\n \"popularity\": 4432\n },\n {\n \"tag\": "impest",\n \"popularity\": 4429\n },\n {\n \"tag\": "uncollatedness",\n \"popularity\": 4426\n },\n {\n \"tag\": "hypersensitize",\n \"popularity\": 4422\n },\n {\n \"tag\": "autographically",\n \"popularity\": 4419\n },\n {\n \"tag\": "louther",\n \"popularity\": 4416\n },\n {\n \"tag\": "Ollie",\n \"popularity\": 4413\n },\n {\n \"tag\": "recompensate",\n \"popularity\": 4409\n },\n {\n \"tag\": "Shan",\n \"popularity\": 4406\n },\n {\n \"tag\": "brachycnemic",\n \"popularity\": 4403\n },\n {\n \"tag\": "Carinatae",\n \"popularity\": 4399\n },\n {\n \"tag\": "geotherm",\n \"popularity\": 4396\n },\n {\n \"tag\": "sawback",\n \"popularity\": 4393\n },\n {\n \"tag\": "Novatianist",\n \"popularity\": 4390\n },\n {\n \"tag\": "reapproach",\n \"popularity\": 4387\n },\n {\n \"tag\": "myelopoietic",\n \"popularity\": 4383\n },\n {\n \"tag\": "cyanin",\n \"popularity\": 4380\n },\n {\n \"tag\": "unsmutted",\n \"popularity\": 4377\n },\n {\n \"tag\": "nonpapist",\n \"popularity\": 4374\n },\n {\n \"tag\": "transbaikalian",\n \"popularity\": 4370\n },\n {\n \"tag\": "connately",\n \"popularity\": 4367\n },\n {\n \"tag\": "tenderize iterance",\n \"popularity\": 4364\n },\n {\n \"tag\": "hydrostatical",\n \"popularity\": 4361\n },\n {\n \"tag\": "unflag",\n \"popularity\": 4358\n },\n {\n \"tag\": "translate",\n \"popularity\": 4354\n },\n {\n \"tag\": "Scorzonera",\n \"popularity\": 4351\n },\n {\n \"tag\": "uncomforted",\n \"popularity\": 4348\n },\n {\n \"tag\": "risser varied",\n \"popularity\": 4345\n },\n {\n \"tag\": "plumbate",\n \"popularity\": 4342\n },\n {\n \"tag\": "Usneaceae",\n \"popularity\": 4338\n },\n {\n \"tag\": "fohat",\n \"popularity\": 4335\n },\n {\n \"tag\": "slagging",\n \"popularity\": 4332\n },\n {\n \"tag\": "superserious",\n \"popularity\": 4329\n },\n {\n \"tag\": "theocracy",\n \"popularity\": 4326\n },\n {\n \"tag\": "valonia",\n \"popularity\": 4323\n },\n {\n \"tag\": "Sapindales",\n \"popularity\": 4319\n },\n {\n \"tag\": "palaeozoologist",\n \"popularity\": 4316\n },\n {\n \"tag\": "yalb",\n \"popularity\": 4313\n },\n {\n \"tag\": "unviewed",\n \"popularity\": 4310\n },\n {\n \"tag\": "polyarteritis",\n \"popularity\": 4307\n },\n {\n \"tag\": "vectorial",\n \"popularity\": 4304\n },\n {\n \"tag\": "skimpingly",\n \"popularity\": 4301\n },\n {\n \"tag\": "athort",\n \"popularity\": 4297\n },\n {\n \"tag\": "tribofluorescence",\n \"popularity\": 4294\n },\n {\n \"tag\": "benzonitrol",\n \"popularity\": 4291\n },\n {\n \"tag\": "swiller subobtuse subjacency",\n \"popularity\": 4288\n },\n {\n \"tag\": "uncompassed",\n \"popularity\": 4285\n },\n {\n \"tag\": "cacochymia",\n \"popularity\": 4282\n },\n {\n \"tag\": "commensalist butadiene",\n \"popularity\": 4279\n },\n {\n \"tag\": "culpable",\n \"popularity\": 4276\n },\n {\n \"tag\": "contributive",\n \"popularity\": 4273\n },\n {\n \"tag\": "attemperately",\n \"popularity\": 4269\n },\n {\n \"tag\": "spelt",\n \"popularity\": 4266\n },\n {\n \"tag\": "exoneration",\n \"popularity\": 4263\n },\n {\n \"tag\": "antivivisectionist",\n \"popularity\": 4260\n },\n {\n \"tag\": "granitification",\n \"popularity\": 4257\n },\n {\n \"tag\": "palladize",\n \"popularity\": 4254\n },\n {\n \"tag\": "marksmanship",\n \"popularity\": 4251\n },\n {\n \"tag\": "bullydom",\n \"popularity\": 4248\n },\n {\n \"tag\": "spirality",\n \"popularity\": 4245\n },\n {\n \"tag\": "caliginous",\n \"popularity\": 4242\n },\n {\n \"tag\": "reportedly",\n \"popularity\": 4239\n },\n {\n \"tag\": "polyad",\n \"popularity\": 4236\n },\n {\n \"tag\": "arthroempyesis",\n \"popularity\": 4233\n },\n {\n \"tag\": "semibay facultatively",\n \"popularity\": 4229\n },\n {\n \"tag\": "metastatically",\n \"popularity\": 4226\n },\n {\n \"tag\": "prophetically",\n \"popularity\": 4223\n },\n {\n \"tag\": "Linguatula elapid",\n \"popularity\": 4220\n },\n {\n \"tag\": "pyknatom",\n \"popularity\": 4217\n },\n {\n \"tag\": "centimeter",\n \"popularity\": 4214\n },\n {\n \"tag\": "mensurate",\n \"popularity\": 4211\n },\n {\n \"tag\": "migraine",\n \"popularity\": 4208\n },\n {\n \"tag\": "pentagamist",\n \"popularity\": 4205\n },\n {\n \"tag\": "querken",\n \"popularity\": 4202\n },\n {\n \"tag\": "ambulance",\n \"popularity\": 4199\n },\n {\n \"tag\": "Stokavian",\n \"popularity\": 4196\n },\n {\n \"tag\": "malvasian",\n \"popularity\": 4193\n },\n {\n \"tag\": "uncouthsome",\n \"popularity\": 4190\n },\n {\n \"tag\": "readable",\n \"popularity\": 4187\n },\n {\n \"tag\": "enlodge",\n \"popularity\": 4184\n },\n {\n \"tag\": "plasterwise Appendiculariidae perspectograph",\n \"popularity\": 4181\n },\n {\n \"tag\": "inkweed",\n \"popularity\": 4178\n },\n {\n \"tag\": "streep",\n \"popularity\": 4175\n },\n {\n \"tag\": "diadelphian cultured",\n \"popularity\": 4172\n },\n {\n \"tag\": "hymenopterous",\n \"popularity\": 4169\n },\n {\n \"tag\": "unexorableness",\n \"popularity\": 4166\n },\n {\n \"tag\": "cascaron",\n \"popularity\": 4163\n },\n {\n \"tag\": "undaintiness",\n \"popularity\": 4160\n },\n {\n \"tag\": "Curtana",\n \"popularity\": 4157\n },\n {\n \"tag\": "scurvied",\n \"popularity\": 4154\n },\n {\n \"tag\": "molluscoidal",\n \"popularity\": 4151\n },\n {\n \"tag\": "yurt",\n \"popularity\": 4148\n },\n {\n \"tag\": "deciduitis",\n \"popularity\": 4145\n },\n {\n \"tag\": "creephole",\n \"popularity\": 4142\n },\n {\n \"tag\": "quatrefeuille",\n \"popularity\": 4139\n },\n {\n \"tag\": "bicapitate adenomatome",\n \"popularity\": 4136\n },\n {\n \"tag\": "damassin",\n \"popularity\": 4134\n },\n {\n \"tag\": "planching",\n \"popularity\": 4131\n },\n {\n \"tag\": "dashedly inferential",\n \"popularity\": 4128\n },\n {\n \"tag\": "lobe",\n \"popularity\": 4125\n },\n {\n \"tag\": "Hyrachyus",\n \"popularity\": 4122\n },\n {\n \"tag\": "knab",\n \"popularity\": 4119\n },\n {\n \"tag\": "discohexaster",\n \"popularity\": 4116\n },\n {\n \"tag\": "malign",\n \"popularity\": 4113\n },\n {\n \"tag\": "pedagoguism",\n \"popularity\": 4110\n },\n {\n \"tag\": "shrubbery",\n \"popularity\": 4107\n },\n {\n \"tag\": "undershrub",\n \"popularity\": 4104\n },\n {\n \"tag\": "bureaucrat",\n \"popularity\": 4101\n },\n {\n \"tag\": "pantaleon",\n \"popularity\": 4098\n },\n {\n \"tag\": "mesoventral",\n \"popularity\": 4096\n }]';
+
+var log2 = Math.log(2);
+var tagInfo = tagInfoJSON.parseJSON(function(a, b) { if (a == "popularity") { return Math.log(b) / log2; } else {return b; } });
+
+function makeTagCloud(tagInfo)
+{
+ var output = '<div class="tagCloud" style="width: 100%">';
+
+ tagInfo.sort(function(a, b) { if (a.tag < b.tag) { return -1; } else if (a.tag == b.tag) { return 0; } else return 1; });
+
+ for (var i = 0; i < tagInfo.length; i++) {
+ var tag = tagInfo[i].tag;
+
+ var validates = true;
+ for (var j = 0; j < tag.length; j++) {
+ var ch = tag.charCodeAt(j);
+ if (ch < 0x20 || ch >= 0x7f) {
+ validates = false;
+ break;
+ }
+ }
+
+ if (!validates)
+ continue;
+
+ var url = "http://example.com/tag/" + tag.replace(" ", "").toLowerCase();
+ var popularity = tagInfo[i].popularity;
+ var color = 'rgb(' + Math.floor(255 * (popularity - 12) / 20) + ', 0, 255)';
+ output += ' <a href="' + url + '" style="font-size: ' + popularity + 'px; color: ' + color + '">' + tag + '</a> \n';
+ }
+
+ output += '</div>';
+ output.replace(" ", "&nbsp;");
+
+ return output;
+}
+
+var tagcloud = makeTagCloud(tagInfo);
+tagInfo = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/string-unpack-code.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/string-unpack-code.js
new file mode 100644
index 000000000..e6330f15f
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/string-unpack-code.js
@@ -0,0 +1,68 @@
+// This test case unpacks the compressed code for the MochiKit,
+// jQuery, Dojo and Prototype JavaScript libraries.
+
+/***
+ MochiKit.MochiKit 1.3.1 : PACKED VERSION
+ THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please
+ diff against the source tree, not this file.
+
+ See <http://mochikit.com/> for documentation, downloads, license, etc.
+
+ (c) 2005 Bob Ippolito. All rights Reserved.
+***/
+
+for (var i = 0; i < 2; i++) {
+
+var decompressedMochiKit = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('if(H(1q)!="L"){1q.2X("B.J")}if(H(B)=="L"){B={}}if(H(B.J)=="L"){B.J={}}B.J.1Y="1.3.1";B.J.1r="B.J";B.J.2l=G(7V,vR){if(7V===O){7V={}}R(u i=1;i<M.K;i++){u o=M[i];if(H(o)!="L"&&o!==O){R(u k in o){7V[k]=o[k]}}}F 7V};B.J.2l(B.J,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},4f:G(n){if(M.K===0){n=1}F G(){F n++}},4L:G(mw){u me=M.2U;if(M.K==1){me.1U=mw;F Y me()}},bg:G(vQ){u X=[];u m=B.J;u aw=m.1R(O,M);1M(aw.K){u o=aw.2P();if(o&&H(o)=="3n"&&H(o.K)=="2y"){R(u i=o.K-1;i>=0;i--){aw.e9(o[i])}}N{X.1c(o)}}F X},1R:G(7U,1i,av){if(!av){av=0}if(1i){u l=1i.K;if(H(l)!="2y"){if(H(B.15)!="L"){1i=B.15.2G(1i);l=1i.K}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(!7U){7U=[]}R(u i=av;i<l;i++){7U.1c(1i[i])}}F 7U},8Z:G(5g,1i){if(5g===O){5g={}}R(u i=1;i<M.K;i++){u o=M[i];if(H(o)!="L"&&o!==O){R(u k in o){u v=o[k];if(H(5g[k])=="3n"&&H(v)=="3n"){M.2U(5g[k],v)}N{5g[k]=v}}}}F 5g},lO:G(6c,1i){if(6c===O){6c={}}R(u i=1;i<M.K;i++){u o=M[i];R(u k in o){if(!(k in 6c)){6c[k]=o[k]}}}F 6c},lN:G(1i){u fj=[];R(u mv in 1i){fj.1c(mv)}F fj},lM:G(1i){u fh=[];u e;R(u fi in 1i){u v;1f{v=1i[fi]}1e(e){2V}fh.1c([fi,v])}F fh},jq:G(fg,ff,fe){fe.1U=Y B.J.5a(fg.1r+"."+ff);fg[ff]=fe},4i:{7L:G(a){F!!a},vP:G(a){F!a},eE:G(a){F a},2E:G(a){F~a},vO:G(a){F-a},vN:G(a,b){F a+b},vM:G(a,b){F a-b},4u:G(a,b){F a/b},vL:G(a,b){F a%b},vK:G(a,b){F a*b},3W:G(a,b){F a&b},or:G(a,b){F a|b},vJ:G(a,b){F a^b},vI:G(a,b){F a<<b},vH:G(a,b){F a>>b},vG:G(a,b){F a>>>b},eq:G(a,b){F a==b},ne:G(a,b){F a!=b},gt:G(a,b){F a>b},ge:G(a,b){F a>=b},lt:G(a,b){F a<b},le:G(a,b){F a<=b},vF:G(a,b){F B.J.2f(a,b)===0},vE:G(a,b){F B.J.2f(a,b)!==0},vD:G(a,b){F B.J.2f(a,b)==1},vC:G(a,b){F B.J.2f(a,b)!=-1},vB:G(a,b){F B.J.2f(a,b)==-1},vA:G(a,b){F B.J.2f(a,b)!=1},vz:G(a,b){F a&&b},vy:G(a,b){F a||b},vx:G(a,b){F b in a}},24:G(mu){F G(){F D[mu].1w(D,M)}},lL:G(mt){F G(a9){F a9[mt]}},66:G(){u fd={};R(u i=0;i<M.K;i++){u 6b=M[i];fd[6b]=6b}F G(){R(u i=0;i<M.K;i++){if(!(H(M[i])in fd)){F 1m}}F 1h}},lJ:G(){R(u i=0;i<M.K;i++){if(M[i]!==O){F 1m}}F 1h},lK:G(){R(u i=0;i<M.K;i++){u o=M[i];if(!(H(o)=="L"||o===O)){F 1m}}F 1h},lI:G(1i){F!B.J.7e.1w(D,M)},7e:G(1i){R(u i=0;i<M.K;i++){u o=M[i];if(!(o&&o.K)){F 1m}}F 1h},3A:G(){R(u i=0;i<M.K;i++){u o=M[i];u 6b=H(o);if((6b!="3n"&&!(6b=="G"&&H(o.vw)=="G"))||o===O||H(o.K)!="2y"){F 1m}}F 1h},eN:G(){R(u i=0;i<M.K;i++){u o=M[i];if(H(o)!="3n"||o===O||H(o.9P)!="G"){F 1m}}F 1h},lH:G(fn){if(fn===O){F B.J.1R(O,M,1)}u fc=[];R(u i=1;i<M.K;i++){fc.1c(fn(M[i]))}F fc},2r:G(fn,1g){u m=B.J;u 6a=B.15;u fb=m.3A;if(M.K<=2){if(!fb(1g)){if(6a){1g=6a.2G(1g);if(fn===O){F 1g}}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(fn===O){F m.1R(O,1g)}u 69=[];R(u i=0;i<1g.K;i++){69.1c(fn(1g[i]))}F 69}N{if(fn===O){fn=7o}u 7T=O;R(i=1;i<M.K;i++){if(!fb(M[i])){if(6a){F 6a.2G(6a.4c.1w(O,M))}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}u l=M[i].K;if(7T===O||7T>l){7T=l}}69=[];R(i=0;i<7T;i++){u fa=[];R(u j=1;j<M.K;j++){fa.1c(M[j][i])}69.1c(fn.1w(D,fa))}F 69}},lG:G(fn){u f9=[];if(fn===O){fn=B.J.4i.7L}R(u i=1;i<M.K;i++){u o=M[i];if(fn(o)){f9.1c(o)}}F f9},47:G(fn,1g,7S){u aq=[];u m=B.J;if(!m.3A(1g)){if(B.15){1g=B.15.2G(1g)}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(fn===O){fn=m.4i.7L}if(H(7o.1U.47)=="G"){F 7o.1U.47.cz(1g,fn,7S)}N{if(H(7S)=="L"||7S===O){R(u i=0;i<1g.K;i++){u o=1g[i];if(fn(o)){aq.1c(o)}}}N{R(i=0;i<1g.K;i++){o=1g[i];if(fn.cz(7S,o)){aq.1c(o)}}}}F aq},mq:G(7R){F G(){hd(M.K){3j 0:F 7R();3j 1:F 7R(M[0]);3j 2:F 7R(M[0],M[1]);3j 3:F 7R(M[0],M[1],M[2])}u f8=[];R(u i=0;i<M.K;i++){f8.1c("M["+i+"]")}F dB("(1A("+f8.2b(",")+"))")}},lv:G(mr,ms){u m=B.J;F m.1O.1w(D,m.1R([ms,mr],M,2))},1O:G(3c,4o){if(H(3c)=="1n"){3c=4o[3c]}u ao=3c.f5;u 5f=3c.am;u f6=3c.f7;u m=B.J;if(H(3c)=="G"&&H(3c.1w)=="L"){3c=m.mq(3c)}if(H(ao)!="G"){ao=3c}if(H(4o)!="L"){f6=4o}if(H(5f)=="L"){5f=[]}N{5f=5f.9T()}m.1R(5f,M,2);u 7Q=G(){u ap=M;u me=M.2U;if(me.am.K>0){ap=m.2o(me.am,ap)}u 4o=me.f7;if(!4o){4o=D}F me.f5.1w(4o,ap)};7Q.f7=f6;7Q.f5=ao;7Q.am=5f;F 7Q},lF:G(7P){u mp=B.J.1O;R(u k in 7P){u f4=7P[k];if(H(f4)=="G"){7P[k]=mp(f4,7P)}}},5u:G(mo,mn,ml,mk){B.J.ae.5M(mo,mn,ml,mk)},mj:{"5L":1h,"1n":1h,"2y":1h},2f:G(a,b){if(a==b){F 0}u f3=(H(a)=="L"||a===O);u f2=(H(b)=="L"||b===O);if(f3&&f2){F 0}N{if(f3){F-1}N{if(f2){F 1}}}u m=B.J;u f1=m.mj;if(!(H(a)in f1&&H(b)in f1)){1f{F m.ae.3C(a,b)}1e(e){if(e!=m.4d){14 e}}}if(a<b){F-1}N{if(a>b){F 1}}u f0=m.U;14 Y 3p(f0(a)+" 3W "+f0(b)+" 9v 2E be vv")},eM:G(a,b){F B.J.2f(a.9P(),b.9P())},eL:G(a,b){u mi=B.J.2f;u 7O=a.K;u al=0;if(7O>b.K){al=1;7O=b.K}N{if(7O<b.K){al=-1}}R(u i=0;i<7O;i++){u 4j=mi(a[i],b[i]);if(4j){F 4j}}F al},7M:G(mh,mg,mf,md){B.J.ad.5M(mh,mg,mf,md)},U:G(o){if(H(o)=="L"){F"L"}N{if(o===O){F"O"}}1f{if(H(o.1K)=="G"){F o.1K()}N{if(H(o.U)=="G"&&o.U!=M.2U){F o.U()}}F B.J.ad.3C(o)}1e(e){if(H(o.1r)=="1n"&&(o.1l==cZ.1U.1l||o.1l==vu.1U.1l)){F o.1r}}1f{u eZ=(o+"")}1e(e){F"["+H(o)+"]"}if(H(o)=="G"){o=eZ.23(/^\\s+/,"");u 5n=o.2A("{");if(5n!=-1){o=o.3H(0,5n)+"{...}"}}F eZ},eK:G(o){u m=B.J;F"["+m.2r(m.U,o).2b(", ")+"]"},ac:G(o){F("\\""+o.23(/(["\\\\])/g,"\\\\$1")+"\\"").23(/[\\f]/g,"\\\\f").23(/[\\b]/g,"\\\\b").23(/[\\n]/g,"\\\\n").23(/[\\t]/g,"\\\\t").23(/[\\r]/g,"\\\\r")},eJ:G(o){F o+""},ly:G(mc,mb,ma,m9){B.J.ab.5M(mc,mb,ma,m9)},lx:G(){F dB("("+M[0]+")")},lz:G(o){u 5e=H(o);if(5e=="L"){F"L"}N{if(5e=="2y"||5e=="5L"){F o+""}N{if(o===O){F"O"}}}u m=B.J;u eY=m.ac;if(5e=="1n"){F eY(o)}u me=M.2U;u 3S;if(H(o.m8)=="G"){3S=o.m8();if(o!==3S){F me(3S)}}if(H(o.m7)=="G"){3S=o.m7();if(o!==3S){F me(3S)}}if(5e!="G"&&H(o.K)=="2y"){u X=[];R(u i=0;i<o.K;i++){u 2i=me(o[i]);if(H(2i)!="1n"){2i="L"}X.1c(2i)}F"["+X.2b(", ")+"]"}1f{3S=m.ab.3C(o);F me(3S)}1e(e){if(e!=m.4d){14 e}}if(5e=="G"){F O}X=[];R(u k in o){u ak;if(H(k)=="2y"){ak="\\""+k+"\\""}N{if(H(k)=="1n"){ak=eY(k)}N{2V}}2i=me(o[k]);if(H(2i)!="1n"){2V}X.1c(ak+":"+2i)}F"{"+X.2b(", ")+"}"},lE:G(a,b){F(B.J.2f(a,b)===0)},lD:G(eX,4n){if(eX.K!=4n.K){F 1m}F(B.J.2f(eX,4n)===0)},2o:G(){u eW=[];u m6=B.J.1R;R(u i=0;i<M.K;i++){m6(eW,M[i])}F eW},eR:G(2h){u m=B.J;u eU=m.2f;if(M.K==1){F G(a,b){F eU(a[2h],b[2h])}}u eV=m.1R(O,M);F G(a,b){u aj=0;R(u i=0;(aj===0)&&(i<eV.K);i++){u 2h=eV[i];aj=eU(a[2h],b[2h])}F aj}},lC:G(2h){u m5=B.J.eR.1w(D,M);F G(a,b){F m5(b,a)}},2z:G(m4){u m=B.J;F m.1O.1w(D,m.1R([m4,L],M,1))},67:G(m0,1g){if(1g.K===0){F O}u ai=1g[0];u m3=B.J.2f;R(u i=1;i<1g.K;i++){u o=1g[i];if(m3(o,ai)==m0){ai=o}}F ai},lB:G(){F B.J.67(1,M)},lA:G(){F B.J.67(-1,M)},bi:G(1g,lY,lZ,3B){if(H(3B)=="L"||3B===O){3B=1g.K}R(u i=(lZ||0);i<3B;i++){if(1g[i]===lY){F i}}F-1},eO:G(1g,lW,lX,3B){if(H(3B)=="L"||3B===O){3B=1g.K}u 4j=B.J.2f;R(u i=(lX||0);i<3B;i++){if(4j(1g[i],lW)===0){F i}}F-1},d4:G(1j,lV){u ah=[1j];u lU=B.J.1R;1M(ah.K){u X=lV(ah.2P());if(X){lU(ah,X)}}},3f:G(ag){u 2w=ag.1r;if(H(2w)=="L"){2w=""}N{2w=2w+"."}R(u 1b in ag){u o=ag[1b];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+1b}1e(e){}}}},dw:G(3s,68){if(H(B.S)!="L"&&M.K==1&&(H(3s)=="1n"||(H(3s.3T)!="L"&&3s.3T>0))){u kv=B.S.d5(3s);3s=kv[0];68=kv[1]}N{if(M.K==1){u o=3s;3s=[];68=[];R(u k in o){u v=o[k];if(H(v)!="G"){3s.1c(k);68.1c(v)}}}}u W=[];u lT=28.2a(3s.K,68.K);u eT=B.J.af;R(u i=0;i<lT;i++){v=68[i];if(H(v)!="L"&&v!==O){W.1c(eT(3s[i])+"="+eT(v))}}F W.2b("&")},lw:G(lS,lQ){u 7N=lS.23(/\\+/g,"%20").2R("&");u o={};u 5d;if(H(lR)!="L"){5d=lR}N{5d=vt}if(lQ){R(u i=0;i<7N.K;i++){u 2n=7N[i].2R("=");u 1b=5d(2n[0]);u 4n=o[1b];if(!(4n 2C 7o)){4n=[];o[1b]=4n}4n.1c(5d(2n[1]))}}N{R(i=0;i<7N.K;i++){2n=7N[i].2R("=");o[5d(2n[0])]=5d(2n[1])}}F o}});B.J.4a=G(){D.4m=[]};B.J.4a.1U={5M:G(1b,eS,3y,lP){if(lP){D.4m.e9([1b,eS,3y])}N{D.4m.1c([1b,eS,3y])}},3C:G(){R(u i=0;i<D.4m.K;i++){u 2n=D.4m[i];if(2n[1].1w(D,M)){F 2n[2].1w(D,M)}}14 B.J.4d},vs:G(1b){R(u i=0;i<D.4m.K;i++){u 2n=D.4m[i];if(2n[0]==1b){D.4m.4y(i,1);F 1h}}F 1m}};B.J.1z=["4f","4L","1R","2l","8Z","lO","lN","lM","5a","4i","24","lL","66","lo","ln","lK","lJ","lI","7e","3A","eN","lH","2r","lG","47","1O","lF","4d","4a","5u","2f","7M","U","lE","lD","2o","eR","lC","2z","lm","67","lp","eI","lB","lA","d4","ll","af","dw","lz","ly","lx","lw","eO","bi","bg","lv"];B.J.1W=["3f","ae","ad","ab","eM","eL","eK","ac","eJ"];B.J.2Y=G(lu,eP){if(H(B.eQ)=="L"){B.eQ=(B.3d||(H(1x)=="L"&&H(1q)=="L"))}if(!B.eQ){F}u 1p=eP.2k[":1p"];R(u i=0;i<1p.K;i++){lu[1p[i]]=eP[1p[i]]}};B.J.2d=G(){u m=D;m.vr=m.24;m.vq=m.eO;if(H(ls)!="L"){m.af=G(lr){F ls(lr).23(/\\\'/g,"%27")}}N{m.af=G(lq){F vp(lq).23(/\\+/g,"%2B").23(/\\"/g,"%22").W.23(/\\\'/g,"%27")}}m.5a=G(1b){D.43=1b;D.1b=1b};m.5a.1U=Y 2x();m.2l(m.5a.1U,{U:G(){if(D.43&&D.43!=D.1b){F D.1b+"("+m.U(D.43)+")"}N{F D.1b+"()"}},1l:m.24("U")});m.4d=Y m.5a("B.J.4d");m.lp=m.2z(m.67,1);m.eI=m.2z(m.67,-1);m.lo=m.66("G");m.ln=m.66("L");m.lm=m.2z(m.2l,O);m.ll=m.2z(m.2r,O);m.ae=Y m.4a();m.5u("vo",m.eN,m.eM);m.5u("ej",m.3A,m.eL);m.ad=Y m.4a();m.7M("ej",m.3A,m.eK);m.7M("1n",m.66("1n"),m.ac);m.7M("vn",m.66("2y","5L"),m.eJ);m.ab=Y m.4a();u 1p=m.2o(m.1z,m.1W);m.2k={":3e":m.2o(m.1W),":1p":1p};m.3f(D)};B.J.2d();if(!B.3d){2f=B.J.2f}B.J.2Y(D,B.J);if(H(1q)!="L"){1q.2X("B.15");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.15 3F on B.J!"}if(H(B.15)=="L"){B.15={}}B.15.1r="B.15";B.15.1Y="1.3.1";B.J.2l(B.15,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},9W:G(1b,lk,lj,lh){B.15.9Y.5M(1b,lk,lj,lh)},1Q:G(3R,lg){u I=B.15;if(M.K==2){F I.9Z(G(a){F a!=lg},3R)}if(H(3R.1a)=="G"){F 3R}N{if(H(3R.1Q)=="G"){F 3R.1Q()}}1f{F I.9Y.3C(3R)}1e(e){u m=B.J;if(e==m.4d){e=Y 3p(H(3R)+": "+m.U(3R)+" is 2E vm")}14 e}},eu:G(n){if(!n){n=0}u m=B.J;F{U:G(){F"eu("+n+")"},1l:m.24("U"),1a:m.4f(n)}},et:G(p){u I=B.15;u m=B.J;u 1g=[];u lf=I.1Q(p);F{U:G(){F"et(...)"},1l:m.24("U"),1a:G(){1f{u W=lf.1a();1g.1c(W);F W}1e(e){if(e!=I.25){14 e}if(1g.K===0){D.1a=G(){14 I.25}}N{u i=-1;D.1a=G(){i=(i+1)%1g.K;F 1g[i]}}F D.1a()}}}},7b:G(Q,n){u m=B.J;if(H(n)=="L"){F{U:G(){F"7b("+m.U(Q)+")"},1l:m.24("U"),1a:G(){F Q}}}F{U:G(){F"7b("+m.U(Q)+", "+n+")"},1l:m.24("U"),1a:G(){if(n<=0){14 B.15.25}n-=1;F Q}}},1a:G(ld){F ld.1a()},es:G(p,q){u m=B.J;u 1a=B.15.1a;u lc=m.2r(1Q,M);F{U:G(){F"es(...)"},1l:m.24("U"),1a:G(){F m.2r(1a,lc)}}},a1:G(3b,1V){u m=B.J;1V=B.15.1Q(1V);if(3b===O){3b=m.4i.7L}F{U:G(){F"a1(...)"},1l:m.24("U"),1a:G(){1M(1h){u W=1V.1a();if(3b(W)){F W}}F L}}},a0:G(3b,1V){u m=B.J;1V=B.15.1Q(1V);if(3b===O){3b=m.4i.7L}F{U:G(){F"a0(...)"},1l:m.24("U"),1a:G(){1M(1h){u W=1V.1a();if(!3b(W)){F W}}F L}}},er:G(1V){u I=B.15;u m=B.J;1V=I.1Q(1V);u 5c=0;u 2J=0;u 3a=1;u i=-1;if(M.K==2){2J=M[1]}N{if(M.K==3){5c=M[1];2J=M[2]}N{5c=M[1];2J=M[2];3a=M[3]}}F{U:G(){F"er("+["...",5c,2J,3a].2b(", ")+")"},1l:m.24("U"),1a:G(){u W;1M(i<5c){W=1V.1a();i++}if(5c>=2J){14 I.25}5c+=3a;F W}}},4c:G(aa,p,q){u m=B.J;u I=B.15;u lb=m.2r(I.1Q,m.1R(O,M,1));u 2r=m.2r;u 1a=I.1a;F{U:G(){F"4c(...)"},1l:m.24("U"),1a:G(){F aa.1w(D,2r(1a,lb))}}},ep:G(aa,1V,I){1V=B.15.1Q(1V);u m=B.J;F{U:G(){F"ep(...)"},1l:m.24("U"),1a:G(){F aa.1w(I,1V.1a())}}},55:G(p,q){u I=B.15;u m=B.J;if(M.K==1){F I.1Q(M[0])}u 64=m.2r(I.1Q,M);F{U:G(){F"55(...)"},1l:m.24("U"),1a:G(){1M(64.K>1){1f{F 64[0].1a()}1e(e){if(e!=I.25){14 e}64.2P()}}if(64.K==1){u a9=64.2P();D.1a=m.1O("1a",a9);F D.1a()}14 I.25}}},9Z:G(3b,1V){u I=B.15;1V=I.1Q(1V);F{U:G(){F"9Z(...)"},1l:B.J.24("U"),1a:G(){u W=1V.1a();if(!3b(W)){D.1a=G(){14 I.25};D.1a()}F W}}},eo:G(3b,1V){1V=B.15.1Q(1V);u m=B.J;u 1O=m.1O;F{"U":G(){F"eo(...)"},"1l":m.24("U"),"1a":G(){1M(1h){u W=1V.1a();if(!3b(W)){2K}}D.1a=1O("1a",1V);F W}}},a7:G(63,2u,la){2u.62[63]=-1;u m=B.J;u l9=m.eI;F{U:G(){F"en("+63+", ...)"},1l:m.24("U"),1a:G(){u W;u i=2u.62[63];if(i==2u.29){W=la.1a();2u.a8.1c(W);2u.29+=1;2u.62[63]+=1}N{W=2u.a8[i-2u.2a];2u.62[63]+=1;if(i==2u.2a&&l9(2u.62)!=2u.2a){2u.2a+=1;2u.a8.2P()}}F W}}},en:G(a6,n){u W=[];u 2u={"62":[],"a8":[],"29":-1,"2a":-1};if(M.K==1){n=2}u I=B.15;a6=I.1Q(a6);u a7=I.a7;R(u i=0;i<n;i++){W.1c(a7(i,2u,a6))}F W},2G:G(4l){u m=B.J;if(H(4l.9T)=="G"){F 4l.9T()}N{if(m.3A(4l)){F m.2o(4l)}}u I=B.15;4l=I.1Q(4l);u W=[];1f{1M(1h){W.1c(4l.1a())}}1e(e){if(e!=I.25){14 e}F W}F L},7H:G(fn,7K,l8){u i=0;u x=l8;u I=B.15;7K=I.1Q(7K);if(M.K<3){1f{x=7K.1a()}1e(e){if(e==I.25){e=Y 3p("7H() of vl vk vj no vi 3m")}14 e}i++}1f{1M(1h){x=fn(x,7K.1a())}}1e(e){if(e!=I.25){14 e}}F x},7I:G(){u 4k=0;u 2J=0;u 3a=1;if(M.K==1){2J=M[0]}N{if(M.K==2){4k=M[0];2J=M[1]}N{if(M.K==3){4k=M[0];2J=M[1];3a=M[2]}N{14 Y 3p("7I() vh 1, 2, or 3 M!")}}}if(3a===0){14 Y 3p("7I() 3a 5p 2E be 0")}F{1a:G(){if((3a>0&&4k>=2J)||(3a<0&&4k<=2J)){14 B.15.25}u W=4k;4k+=3a;F W},U:G(){F"7I("+[4k,2J,3a].2b(", ")+")"},1l:B.J.24("U")}},l0:G(a5,l7){u x=l7||0;u I=B.15;a5=I.1Q(a5);1f{1M(1h){x+=a5.1a()}}1e(e){if(e!=I.25){14 e}}F x},em:G(a4){u I=B.15;a4=I.1Q(a4);1f{1M(1h){a4.1a()}}1e(e){if(e!=I.25){14 e}}},9a:G(7J,1A,I){u m=B.J;if(M.K>2){1A=m.1O(1A,I)}if(m.3A(7J)){1f{R(u i=0;i<7J.K;i++){1A(7J[i])}}1e(e){if(e!=B.15.25){14 e}}}N{I=B.15;I.em(I.4c(1A,7J))}},kZ:G(l6,1A){u I=B.15;1f{I.a0(1A,l6).1a();F 1m}1e(e){if(e!=I.25){14 e}F 1h}},kY:G(l5,4j){u W=B.15.2G(l5);if(M.K==1){4j=B.J.2f}W.iz(4j);F W},kX:G(l4){u W=B.15.2G(l4);W.vg();F W},kW:G(l3,1A){u I=B.15;1f{I.a1(1A,l3).1a();F 1h}1e(e){if(e!=I.25){14 e}F 1m}},kV:G(1g,5b){if(B.J.3A(5b)){R(u i=0;i<5b.K;i++){1g.1c(5b[i])}}N{u I=B.15;5b=I.1Q(5b);1f{1M(1h){1g.1c(5b.1a())}}1e(e){if(e!=I.25){14 e}}}F 1g},ek:G(a3,eH){u m=B.J;u I=B.15;if(M.K<2){eH=m.4i.eE}a3=I.1Q(a3);u pk=L;u k=L;u v;G eF(){v=a3.1a();k=eH(v)}G l2(){u 7j=v;v=L;F 7j}u eG=1h;F{U:G(){F"ek(...)"},1a:G(){1M(k==pk){eF();if(eG){eG=1m;2K}}pk=k;F[k,{1a:G(){if(v==L){eF()}if(k!=pk){14 I.25}F l2()}}]}}},kU:G(a2,eD){u m=B.J;u I=B.15;if(M.K<2){eD=m.4i.eE}a2=I.1Q(a2);u ey=[];u eA=1h;u ez;1M(1h){1f{u eB=a2.1a();u 2h=eD(eB)}1e(e){if(e==I.25){2K}14 e}if(eA||2h!=ez){u eC=[];ey.1c([2h,eC])}eC.1c(eB);eA=1m;ez=2h}F ey},9X:G(ex){u i=0;F{U:G(){F"9X(...)"},1l:B.J.24("U"),1a:G(){if(i>=ex.K){14 B.15.25}F ex[i++]}}},eh:G(ew){F(ew&&H(ew.ei)=="G")},9V:G(l1){F{U:G(){F"9V(...)"},1l:B.J.24("U"),1a:G(){u W=l1.ei();if(W===O||W===L){14 B.15.25}F W}}}});B.15.1W=["9Y","9X","eh","9V",];B.15.1z=["25","9W","1Q","eu","et","7b","1a","es","a1","a0","er","4c","ep","55","9Z","eo","en","2G","7H","7I","l0","em","9a","kZ","kY","kX","kW","kV","ek","kU"];B.15.2d=G(){u m=B.J;D.25=Y m.5a("25");D.9Y=Y m.4a();D.9W("ej",m.3A,D.9X);D.9W("ei",D.eh,D.9V);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.15.2d();if(!B.3d){7H=B.15.7H}B.J.2Y(D,B.15);if(H(1q)!="L"){1q.2X("B.1H");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1H 3F on B.J!"}if(H(B.1H)=="L"){B.1H={}}B.1H.1r="B.1H";B.1H.1Y="1.3.1";B.1H.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1H.1l=G(){F D.1K()};B.1H.1z=["5C","49","7A","kR","2L","5Z","kG","ch","kE","kC"];B.1H.1W=["ef","e8","e7"];B.1H.49=G(1P,kT,3z){D.1P=1P;D.3N=kT;D.3z=3z;D.vf=Y 3Q()};B.1H.49.1U={U:G(){u m=B.J;F"49("+m.2r(m.U,[D.1P,D.3N,D.3z]).2b(", ")+")"},1l:B.J.24("U")};B.J.2l(B.1H,{ef:G(7F){u I=B.1H;if(H(7F)=="1n"){7F=I.5C[7F]}F G(1t){u 7G=1t.3N;if(H(7G)=="1n"){7G=I.5C[7G]}F 7G>=7F}},e8:G(){u kS=B.1H.49;R(u i=0;i<M.K;i++){if(!(M[i]2C kS)){F 1m}}F 1h},e7:G(a,b){F B.J.2f([a.3N,a.3z],[b.3N,b.3z])},kR:G(1t){cq("1P: "+1t.1P+"\\ve: "+1t.3N+"\\vd: "+1t.3z.2b(" "))}});B.1H.7A=G(7E){D.4f=0;if(H(7E)=="L"||7E===O){7E=-1}D.ec=7E;D.4h=[];D.7C={};D.e5=1m};B.1H.7A.1U={vc:G(){D.4h.4y(0,D.4h.K)},kK:G(1t){if(H(2O)!="L"&&2O.eg&&2O.eg.5Z){2O.eg.5Z(1t)}N{if(H(7h)!="L"&&7h.kQ){7h.kQ(1t)}N{if(H(5X)=="G"){5X(1t)}}}},kL:G(1t){R(u k in D.7C){u 2n=D.7C[k];if(2n.kO!=k||(2n[0]&&!2n[0](1t))){2V}2n[1](1t)}},hE:G(ee,7D,kP){if(H(7D)=="1n"){7D=B.1H.ef(7D)}u ed=[7D,kP];ed.kO=ee;D.7C[ee]=ed},c9:G(kN){gi D.7C[kN]},kH:G(kM,vb){u 1t=Y B.1H.49(D.4f,kM,B.J.1R(O,M,1));D.4h.1c(1t);D.kL(1t);if(D.e5){D.kK(1t.3N+": "+1t.3z.2b(" "))}D.4f+=1;1M(D.ec>=0&&D.4h.K>D.ec){D.4h.2P()}},c8:G(9U){u ea=0;if(!(H(9U)=="L"||9U===O)){ea=28.29(0,D.4h.K-9U)}F D.4h.9T(ea)},kJ:G(7B){if(H(7B)=="L"||7B===O){7B=30}u 9S=D.c8(7B);if(9S.K){u 1g=2r(G(m){F"\\n ["+m.1P+"] "+m.3N+": "+m.3z.2b(" ")},9S);1g.e9("va "+9S.K+" v9:");F 1g.2b("")}F""},v8:G(kI){if(H(B.1I)=="L"){cq(D.kJ())}N{B.1I.bY(kI||1m)}}};B.1H.2d=G(){D.5C={8M:40,8L:50,8K:30,8J:20,8I:10};u m=B.J;m.5u("49",D.e8,D.e7);u 61=m.2z;u e6=D.7A;u 60=e6.1U.kH;m.2l(D.7A.1U,{kF:61(60,"8I"),5Z:61(60,"8J"),dE:61(60,"8M"),kD:61(60,"8L"),kB:61(60,"8K")});u I=D;u 5Y=G(1b){F G(){I.2L[1b].1w(I.2L,M)}};D.5Z=5Y("5Z");D.kG=5Y("dE");D.ch=5Y("kF");D.kE=5Y("kD");D.kC=5Y("kB");D.2L=Y e6();D.2L.e5=1h;D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};if(H(5X)=="L"&&H(2v)!="L"&&2v.kA&&H(kz)!="L"){5X=G(){5X.3G=M;u ev=2v.kA("v7");ev.v6("5X",1m,1h);kz(ev)}}B.1H.2d();B.J.2Y(D,B.1H);if(H(1q)!="L"){1q.2X("B.1D")}if(H(B)=="L"){B={}}if(H(B.1D)=="L"){B.1D={}}B.1D.1r="B.1D";B.1D.1Y="1.3.1";B.1D.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1D.1l=G(){F D.1K()};B.1D.ks=G(1y){1y=1y+"";if(H(1y)!="1n"||1y.K===0){F O}u 7z=1y.2R("-");if(7z.K===0){F O}F Y 3Q(7z[0],7z[1]-1,7z[2])};B.1D.ky=/(\\d{4,})(?:-(\\d{1,2})(?:-(\\d{1,2})(?:[T ](\\d{1,2}):(\\d{1,2})(?::(\\d{1,2})(?:\\.(\\d+))?)?(?:(Z)|([+-])(\\d{1,2})(?::(\\d{1,2}))?)?)?)?)?/;B.1D.kr=G(1y){1y=1y+"";if(H(1y)!="1n"||1y.K===0){F O}u X=1y.3C(B.1D.ky);if(H(X)=="L"||X===O){F O}u 5W,7y,7x,9R,2a,9Q,7w;5W=3w(X[1],10);if(H(X[2])=="L"||X[2]===""){F Y 3Q(5W)}7y=3w(X[2],10)-1;7x=3w(X[3],10);if(H(X[4])=="L"||X[4]===""){F Y 3Q(5W,7y,7x)}9R=3w(X[4],10);2a=3w(X[5],10);9Q=(H(X[6])!="L"&&X[6]!=="")?3w(X[6],10):0;if(H(X[7])!="L"&&X[7]!==""){7w=28.ha(c5*4M("0."+X[7]))}N{7w=0}if((H(X[8])=="L"||X[8]==="")&&(H(X[9])=="L"||X[9]==="")){F Y 3Q(5W,7y,7x,9R,2a,9Q,7w)}u 58;if(H(X[9])!="L"&&X[9]!==""){58=3w(X[10],10)*v5;if(H(X[11])!="L"&&X[11]!==""){58+=3w(X[11],10)*kw}if(X[9]=="-"){58=-58}}N{58=0}F Y 3Q(3Q.v4(5W,7y,7x,9R,2a,9Q,7w)-58)};B.1D.dY=G(2g,kx){if(H(2g)=="L"||2g===O){F O}u hh=2g.v3();u mm=2g.v2();u ss=2g.v1();u 1g=[((kx&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)];F 1g.2b(":")};B.1D.kq=G(2g,7v){if(H(2g)=="L"||2g===O){F O}u ku=7v?"T":" ";u kt=7v?"Z":"";if(7v){2g=Y 3Q(2g.9P()+(2g.v0()*kw))}F B.1D.dX(2g)+ku+B.1D.dY(2g,7v)+kt};B.1D.dX=G(2g){if(H(2g)=="L"||2g===O){F O}u e4=B.1D.e3;F[2g.dZ(),e4(2g.e1()+1),e4(2g.e0())].2b("-")};B.1D.kp=G(d){d=d+"";if(H(d)!="1n"||d.K===0){F O}u a=d.2R("/");F Y 3Q(a[2],a[0]-1,a[1])};B.1D.e3=G(n){F(n>9)?n:"0"+n};B.1D.ko=G(d){if(H(d)=="L"||d===O){F O}u e2=B.1D.e3;F[e2(d.e1()+1),e2(d.e0()),d.dZ()].2b("/")};B.1D.kn=G(d){if(H(d)=="L"||d===O){F O}F[d.e1()+1,d.e0(),d.dZ()].2b("/")};B.1D.1z=["ks","kr","dY","kq","dX","kp","ko","kn"];B.1D.1W=[];B.1D.2k={":3e":B.1D.1z,":1p":B.1D.1z};B.1D.2d=G(){u 2w=D.1r+".";R(u k in D){u o=D[k];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+k}1e(e){}}}};B.1D.2d();if(H(B.J)!="L"){B.J.2Y(D,B.1D)}N{(G(km,dW){if((H(1x)=="L"&&H(1q)=="L")||(H(B.3d)=="5L"&&B.3d)){u 1p=dW.2k[":1p"];R(u i=0;i<1p.K;i++){km[1p[i]]=dW[1p[i]]}}})(D,B.1D)}if(H(1q)!="L"){1q.2X("B.1s")}if(H(B)=="L"){B={}}if(H(B.1s)=="L"){B.1s={}}B.1s.1r="B.1s";B.1s.1Y="1.3.1";B.1s.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1s.1l=G(){F D.1K()};B.1s.ke=G(kl,kk,kj,ki,kh,dV,kg,9N,kf){F G(1P){1P=4M(1P);if(H(1P)=="L"||1P===O||k8(1P)){F kl}u 9L=kk;u 9K=kj;if(1P<0){1P=-1P}N{9L=9L.23(/-/,"")}u me=M.2U;u 9M=B.1s.dJ(ki);if(kh){1P=1P*3k;9K=9M.9y+9K}1P=B.1s.dK(1P,dV);u 9O=1P.2R(/\\./);u 3r=9O[0];u 3P=(9O.K==1)?"":9O[1];u X="";1M(3r.K<kg){3r="0"+3r}if(9N){1M(3r.K>9N){u i=3r.K-9N;X=9M.9A+3r.2W(i,3r.K)+X;3r=3r.2W(0,i)}}X=3r+X;if(dV>0){1M(3P.K<kf){3P=3P+"0"}X=X+9M.9z+3P}F 9L+X+9K}};B.1s.k5=G(9J,9H,9G){if(H(9H)=="L"){9H=""}u 3q=9J.3C(/((?:[0#]+,)?[0#]+)(?:\\.([0#]+))?(%)?/);if(!3q){14 3p("uZ uY")}u 7u=9J.3H(0,3q.c6);u kd=9J.3H(3q.c6+3q[0].K);if(7u.uX(/-/)==-1){7u=7u+"-"}u 9I=3q[1];u 3P=(H(3q[2])=="1n"&&3q[2]!="")?3q[2]:"";u kc=(H(3q[3])=="1n"&&3q[3]!="");u dU=9I.2R(/,/);u 9F;if(H(9G)=="L"){9G="dG"}if(dU.K==1){9F=O}N{9F=dU[1].K}u ka=9I.K-9I.23(/0/g,"").K;u k9=3P.K-3P.23(/0/g,"").K;u kb=3P.K;u W=B.1s.ke(9H,7u,kd,9G,kc,kb,ka,9F,k9);u m=B.J;if(m){u fn=M.2U;u 3G=m.2o(M);W.U=G(){F[I.1r,"(",2r(m.U,3G).2b(", "),")"].2b("")}}F W};B.1s.dJ=G(4g){if(H(4g)=="L"||4g===O){4g="dG"}if(H(4g)=="1n"){u W=B.1s.5V[4g];if(H(W)=="1n"){W=M.2U(W);B.1s.5V[4g]=W}F W}N{F 4g}};B.1s.k4=G(dT,9E){if(9E){u X=dT/9E;if(!k8(X)){F B.1s.9B(dT/9E)}}F"0"};B.1s.9B=G(dS){u dR=(dS<0?"-":"");u s=28.8B(28.uW(dS)*3k).1l();if(s=="0"){F s}if(s.K<3){1M(s.3Z(s.K-1)=="0"){s=s.2W(0,s.K-1)}F dR+"0."+s}u 5E=dR+s.2W(0,s.K-2);u 7t=s.2W(s.K-2,s.K);if(7t=="uV"){F 5E}N{if(7t.3Z(1)=="0"){F 5E+"."+7t.3Z(0)}N{F 5E+"."+7t}}};B.1s.dI=G(1y,dQ){1y=1y+"";if(H(1y)!="1n"){F O}if(!dQ){F 1y.23(/^\\s+/,"")}N{F 1y.23(Y 8V("^["+dQ+"]+"),"")}};B.1s.dH=G(1y,dP){1y=1y+"";if(H(1y)!="1n"){F O}if(!dP){F 1y.23(/\\s+$/,"")}N{F 1y.23(Y 8V("["+dP+"]+$"),"")}};B.1s.k2=G(1y,dO){u I=B.1s;F I.dH(I.dI(1y,dO),dO)};B.1s.dL=G(9D,9C){9D=28.8B(9D*28.dN(10,9C));u X=(9D*28.dN(10,-9C)).6I(9C);if(X.3Z(0)=="."){X="0"+X}F X};B.1s.dK=G(k7,dM){F B.1s.dL(k7+0.5*28.dN(10,-dM),dM)};B.1s.k3=G(k6){F B.1s.9B(3k*k6)+"%"};B.1s.1z=["dL","dK","k5","dJ","k4","9B","k3","dI","dH","k2"];B.1s.5V={k1:{9A:",",9z:".",9y:"%"},uU:{9A:".",9z:",",9y:"%"},uT:{9A:" ",9z:",",9y:"%"},"dG":"k1"};B.1s.1W=[];B.1s.2k={":1p":B.1s.1z,":3e":B.1s.1z};B.1s.2d=G(){u 2w=D.1r+".";u k,v,o;R(k in D.5V){o=D.5V[k];if(H(o)=="3n"){o.U=G(){F D.1r};o.1r=2w+"5V."+k}}R(k in D){o=D[k];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+k}1e(e){}}}};B.1s.2d();if(H(B.J)!="L"){B.J.2Y(D,B.1s)}N{(G(k0,dF){if((H(1x)=="L"&&H(1q)=="L")||(H(B.3d)=="5L"&&B.3d)){u 1p=dF.2k[":1p"];R(u i=0;i<1p.K;i++){k0[1p[i]]=dF[1p[i]]}}})(D,B.1s)}if(H(1q)!="L"){1q.2X("B.1k");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1k 3F on B.J!"}if(H(B.1k)=="L"){B.1k={}}B.1k.1r="B.1k";B.1k.1Y="1.3.1";B.1k.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1k.1l=G(){F D.1K()};B.1k.2t=G(jZ){D.55=[];D.id=D.7n();D.2H=-1;D.54=0;D.53=[O,O];D.7m=jZ;D.7l=1m;D.7r=1m};B.1k.2t.1U={U:G(){u 7s;if(D.2H==-1){7s="uS"}N{if(D.2H===0){7s="uR"}N{7s="dE"}}F"2t("+D.id+", "+7s+")"},1l:B.J.24("U"),7n:B.J.4f(),jY:G(){u I=B.1k;if(D.2H==-1){if(D.7m){D.7m(D)}N{D.7l=1h}if(D.2H==-1){D.52(Y I.di(D))}}N{if((D.2H===0)&&(D.53[0]2C I.2t)){D.53[0].jY()}}},jQ:G(){D.54++},jX:G(){D.54--;if((D.54===0)&&(D.2H>=0)){D.9u()}},jR:G(X){D.9x(X);D.jX()},9x:G(X){D.2H=((X 2C 2x)?1:0);D.53[D.2H]=X;D.9u()},dD:G(){if(D.2H!=-1){if(!D.7l){14 Y B.1k.dj(D)}D.7l=1m;F}},3o:G(X){D.dD();if(X 2C B.1k.2t){14 Y 2x("2t jW 9v aB be 7r if jV jU jT jS of a 3o")}D.9x(X)},52:G(X){D.dD();u I=B.1k;if(X 2C I.2t){14 Y 2x("2t jW 9v aB be 7r if jV jU jT jS of a 3o")}if(!(X 2C 2x)){X=Y I.9p(X)}D.9x(X)},jP:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(fn,fn)},5Q:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(fn,O)},jA:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(O,fn)},9w:G(cb,eb){if(D.7r){14 Y 2x("uQ uP 9v 2E be re-uO")}D.55.1c([cb,eb]);if(D.2H>=0){D.9u()}F D},9u:G(){u dC=D.55;u 56=D.2H;u X=D.53[56];u I=D;u cb=O;1M(dC.K>0&&D.54===0){u 2n=dC.2P();u f=2n[56];if(f===O){2V}1f{X=f(X);56=((X 2C 2x)?1:0);if(X 2C B.1k.2t){cb=G(X){I.jR(X)};D.jQ()}}1e(3O){56=1;if(!(3O 2C 2x)){3O=Y B.1k.9p(3O)}X=3O}}D.2H=56;D.53[56]=X;if(cb&&D.54){X.jP(cb);X.7r=1h}}};B.J.2l(B.1k,{dk:G(){F dB("("+M[0].jN+")")},dp:G(uN){u d=Y B.1k.2t();d.3o.1w(d,M);F d},9q:G(uM){u d=Y B.1k.2t();d.52.1w(d,M);F d},do:G(){u I=M.2U;if(!I.7q){u dy=[G(){F Y 7q()},G(){F Y dA("jO.dz")},G(){F Y dA("uL.dz")},G(){F Y dA("jO.dz.4.0")},G(){14 Y B.1k.dh("uK uJ 2E uI 7q")}];R(u i=0;i<dy.K;i++){u 1A=dy[i];1f{I.7q=1A;F 1A()}1e(e){}}}F I.7q()},dx:G(){},jK:G(d){if(D.uH==4){1f{D.5T=O}1e(e){1f{D.5T=B.1k.dx}1e(e){}}u 5U=O;1f{5U=D.jm;if(!5U&&B.J.7e(D.jN)){5U=jM}}1e(e){}if(5U==hQ||5U==jM){d.3o(D)}N{u 3O=Y B.1k.dg(D,"uG uF");if(3O.2y){d.52(3O)}N{d.52(3O)}}}},jL:G(2s){1f{2s.5T=O}1e(e){1f{2s.5T=B.1k.dx}1e(e){}}2s.uE()},dl:G(2s,7p){if(H(7p)=="L"||7p===O){7p=""}u m=B.J;u I=B.1k;u d=Y I.2t(m.2z(I.jL,2s));1f{2s.5T=m.1O(I.jK,2s,d);2s.uD(7p)}1e(e){1f{2s.5T=O}1e(uC){}d.52(e)}F d},dn:G(5F){u I=B.1k;u 2s=I.do();if(M.K>1){u m=B.J;u qs=m.dw.1w(O,m.1R(O,M,1));if(qs){5F+="?"+qs}}2s.cp("uB",5F,1h);F I.dl(2s)},jv:G(5F){u I=B.1k;u d=I.dn.1w(I,M);d=d.5Q(I.dk);F d},dm:G(jJ,dv){u d=Y B.1k.2t();u m=B.J;if(H(dv)!="L"){d.5Q(G(){F dv})}u jI=uA(m.1O("3o",d),28.8B(jJ*c5));d.7m=G(){1f{uz(jI)}1e(e){}};F d},ju:G(jH,1A){u m=B.J;u jG=m.2z.1w(m,m.1R(O,M,1));F B.1k.dm(jH).5Q(G(X){F jG()})}});B.1k.5O=G(){D.5S=[];D.4e=1m;D.id=D.7n()};B.1k.5O.1U={bX:B.1k.5O,uy:G(){d=Y B.1k.2t();if(D.4e){D.5S.1c(d)}N{D.4e=1h;d.3o(D)}F d},jF:G(){if(!D.4e){14 3p("ux to jF an jE 5O")}D.4e=1m;if(D.5S.K>0){D.4e=1h;D.5S.2P().3o(D)}},7n:B.J.4f(),U:G(){u 9t;if(D.4e){9t="4e, "+D.5S.K+" 5S"}N{9t="jE"}F"5O("+D.id+", "+9t+")"},1l:B.J.24("U")};B.1k.7i=G(2G,du,jC,jB,jD){D.2G=2G;D.9r=Y 7o(D.2G.K);D.55=[];D.id=D.7n();D.2H=-1;D.54=0;D.53=[O,O];D.7m=jD;D.7l=1m;if(D.2G.K===0&&!du){D.3o(D.9r)}D.dr=0;D.jz=du;D.jy=jC;D.jx=jB;u 9s=0;B.J.2r(B.J.1O(G(d){d.5Q(B.J.1O(D.dt,D),9s,1h);d.jA(B.J.1O(D.dt,D),9s,1m);9s+=1},D),D.2G)};B.J.2l(B.1k.7i.1U,B.1k.2t.1U);B.J.2l(B.1k.7i.1U,{dt:G(ds,7k,5R){D.9r[ds]=[7k,5R];D.dr+=1;if(D.2H!==0){if(7k&&D.jz){D.3o([ds,5R])}N{if(!7k&&D.jy){D.52(5R)}N{if(D.dr==D.2G.K){D.3o(D.9r)}}}}if(!7k&&D.jx){5R=O}F 5R}});B.1k.jt=G(jw){u d=Y B.1k.7i(jw,1m,1h,1m);d.5Q(G(dq){u 7j=[];R(u i=0;i<dq.K;i++){7j.1c(dq[i][1])}F 7j});F d};B.1k.jr=G(1A){u I=B.1k;u 5P;1f{u r=1A.1w(O,B.J.1R([],M,1));if(r 2C I.2t){5P=r}N{if(r 2C 2x){5P=I.9q(r)}N{5P=I.dp(r)}}}1e(e){5P=I.9q(e)}F 5P};B.1k.1z=["dj","di","dh","9p","dg","2t","dp","9q","do","dn","jv","dm","ju","dl","5O","7i","jt","jr"];B.1k.1W=["dk"];B.1k.2d=G(){u m=B.J;u ne=m.2z(m.jq,D);ne("dj",G(jp){D.jo=jp});ne("di",G(jn){D.jo=jn});ne("dh",G(1t){D.43=1t});ne("9p",G(1t){D.43=1t});ne("dg",G(2s,1t){D.2s=2s;D.43=1t;1f{D.2y=2s.jm}1e(e){}});D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.1k.2d();B.J.2Y(D,B.1k);if(H(1q)!="L"){1q.2X("B.S");1q.2M("B.15")}if(H(1x)!="L"){1x.26("B.15",[])}1f{if(H(B.15)=="L"){14""}}1e(e){14"B.S 3F on B.15!"}if(H(B.S)=="L"){B.S={}}B.S.1r="B.S";B.S.1Y="1.3.1";B.S.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.S.1l=G(){F D.1K()};B.S.1z=["d5","cr","b9","95","94","j3","9k","cX","cw","iT","iV","4X","9j","iQ","hS","cs","ia","i9","i8","i7","i6","i5","i4","hV","i3","i2","i1","cu","hW","ct","i0","hZ","hY","hX","P","io","il","ik","ij","cm","ih","ii","ig","ie","ic","cv","8d","A","6m","ib","1E","$","4q","aH","cO","cN","iM","5G","iK","9d","9e","iH","iD","9c","iB","cG","97","hU","hT","iw","jh","jb","j6","j5","jk","jl"];B.S.1W=["9b"];B.S.5N=G(w,h){D.w=w;D.h=h};B.S.5N.1U.U=G(){u U=B.J.U;F"{w: "+U(D.w)+", h: "+U(D.h)+"}"};B.S.5t=G(x,y){D.x=x;D.y=y};B.S.5t.1U.U=G(){u U=B.J.U;F"{x: "+U(D.x)+", y: "+U(D.y)+"}"};B.S.5t.1U.1l=G(){F D.U()};B.J.2l(B.S,{jl:G(Q,o){Q=B.S.1E(Q);B.S.4X(Q,{"1T":{"9o":o,"-hL-9o":o,"-uw-9o":o,"47":" uv(9o="+(o*3k)+")"}})},jk:G(){u d=Y B.S.5N();u w=B.S.3X;u b=B.S.1Z.5s;if(w.jj){d.w=w.jj;d.h=w.uu}N{if(b.dd.9n){d.w=b.dd.9n;d.h=b.dd.ji}N{if(b&&b.9n){d.w=b.9n;d.h=b.ji}}}F d},jh:G(Q){u I=B.S;if(H(Q.w)=="2y"||H(Q.h)=="2y"){F Y I.5N(Q.w||0,Q.h||0)}Q=I.1E(Q);if(!Q){F L}if(I.4q(Q,"3u")!="98"){F Y I.5N(Q.jg||0,Q.ci||0)}u s=Q.1T;u je=s.dc;u jf=s.6P;s.dc="fR";s.6P="j8";s.3u="";u jd=Q.jg;u jc=Q.ci;s.3u="98";s.6P=jf;s.dc=je;F Y I.5N(jd,jc)},jb:G(Q,4Z){u I=B.S;Q=I.1E(Q);if(!Q){F L}u c=Y I.5t(0,0);if(Q.x&&Q.y){c.x+=Q.x||0;c.y+=Q.y||0;F c}N{if(Q.3t===O||I.4q(Q,"3u")=="98"){F L}}u 51=O;u 2j=O;u d=B.S.1Z;u de=d.7Z;u b=d.5s;if(Q.ja){51=Q.ja();c.x+=51.2I+(de.6y||b.6y)-(de.8q||b.8q);c.y+=51.3D+(de.4C||b.4C)-(de.8p||b.8p)}N{if(d.j9){51=d.j9(Q);c.x+=51.x;c.y+=51.y}N{if(Q.8g){c.x+=Q.db;c.y+=Q.da;2j=Q.8g;if(2j!=Q){1M(2j){c.x+=2j.db;c.y+=2j.da;2j=2j.8g}}u ua=ut.us.8G();if((H(7h)!="L"&&4M(7h.ur())<9)||(ua.2A("uq")!=-1&&I.4q(Q,"6P")=="j8")){c.x-=b.db;c.y-=b.da}}}}if(H(4Z)!="L"){4Z=M.2U(4Z);if(4Z){c.x-=(4Z.x||0);c.y-=(4Z.y||0)}}if(Q.3t){2j=Q.3t}N{2j=O}1M(2j&&2j.j7!="uo"&&2j.j7!="co"){c.x-=2j.6y;c.y-=2j.4C;if(2j.3t){2j=2j.3t}N{2j=O}}F c},j6:G(Q,d9,7g){Q=B.S.1E(Q);if(H(7g)=="L"){7g="px"}B.S.4X(Q,{"1T":{"5A":d9.w+7g,"3V":d9.h+7g}})},j5:G(Q,d8,7f){Q=B.S.1E(Q);if(H(7f)=="L"){7f="px"}B.S.4X(Q,{"1T":{"2I":d8.x+7f,"3D":d8.y+7f}})},cr:G(){F B.S.3X},b9:G(){F B.S.1Z},95:G(2m,1A){u I=B.S;u d6=I.1Z;u d7=I.un;u W;1f{I.3X=2m;I.1Z=2m.2v;W=1A()}1e(e){I.3X=d7;I.1Z=d6;14 e}I.3X=d7;I.1Z=d6;F W},d5:G(Q){u 7d=[];u 7c=[];u m=B.J;u I=B.S;if(H(Q)=="L"||Q===O){Q=I.1Z}N{Q=I.1E(Q)}m.d4(Q,G(Q){u 1b=Q.1b;if(m.7e(1b)){u 4Y=Q.cD;if(4Y=="cv"&&(Q.1J=="um"||Q.1J=="uk")&&!Q.ip){F O}if(4Y=="ct"){if(Q.j4>=0){u 9m=Q.1S[Q.j4];7d.1c(1b);7c.1c((9m.3m)?9m.3m:9m.7X);F O}7d.1c(1b);7c.1c("");F O}if(4Y=="cu"||4Y=="P"||4Y=="8d"||4Y=="6m"){F Q.5h}7d.1c(1b);7c.1c(Q.3m||"");F O}F Q.5h});F[7d,7c]},94:G(1N,1A){u I=B.S;u d3=I.1Z;u W;1f{I.1Z=1N;W=1A()}1e(e){I.1Z=d3;14 e}I.1Z=d3;F W},j3:G(1b,j2,3y,j1){B.S.9b.5M(1b,j2,3y,j1)},9k:G(1j,7a){u im=B.15;u I=B.S;u 1Q=im.1Q;u iY=im.7b;u 4c=im.4c;u iX=I.9b;u iZ=I.9k;u iW=B.J.4d;1M(1h){if(H(1j)=="L"||1j===O){F O}if(H(1j.3T)!="L"&&1j.3T>0){F 1j}if(H(1j)=="2y"||H(1j)=="5L"){1j=1j.1l()}if(H(1j)=="1n"){F I.1Z.4S(1j)}if(H(1j.j0)=="G"){1j=1j.j0(7a);2V}if(H(1j)=="G"){1j=1j(7a);2V}u 9l=O;1f{9l=1Q(1j)}1e(e){}if(9l){F 4c(iZ,9l,iY(7a))}1f{1j=iX.3C(1j,7a);2V}1e(e){if(e!=iW){14 e}}F I.1Z.4S(1j.1l())}F L},iV:G(1j,79,iU){u o={};o[79]=iU;1f{F B.S.4X(1j,o)}1e(e){}F O},iT:G(1j,79){u I=B.S;u d2=I.4U.99[79];1j=I.1E(1j);1f{if(d2){F 1j[d2]}F 1j.fm(79)}1e(e){}F O},4X:G(1j,5K){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j)}if(5K){u d0=B.J.8Z;if(I.4U.6X){R(u k in 5K){u v=5K[k];if(H(v)=="3n"&&H(Q[k])=="3n"){d0(Q[k],v)}N{if(k.2W(0,2)=="on"){if(H(v)=="1n"){v=Y cZ(v)}Q[k]=v}N{Q.4p(k,v)}}}}N{u iS=I.4U.99;R(k in 5K){v=5K[k];u d1=iS[k];if(k=="1T"&&H(v)=="1n"){Q.1T.3x=v}N{if(H(d1)=="1n"){Q[d1]=v}N{if(H(Q[k])=="3n"&&H(v)=="3n"){d0(Q[k],v)}N{if(k.2W(0,2)=="on"){if(H(v)=="1n"){v=Y cZ(v)}Q[k]=v}N{Q.4p(k,v)}}}}}}}F Q},9j:G(1j){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j)}u 78=[I.9k(B.J.1R(O,M,1),Q)];u iR=B.J.2o;1M(78.K){u n=78.2P();if(H(n)=="L"||n===O){}N{if(H(n.3T)=="2y"){Q.2c(n)}N{78=iR(n,78)}}}F Q},iQ:G(1j){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j);M[0]=Q}u cY;1M((cY=Q.6n)){Q.6S(cY)}if(M.K<2){F Q}N{F I.9j.1w(D,M)}},cX:G(1b,4b){u Q;u I=B.S;u m=B.J;if(H(4b)=="1n"||H(4b)=="2y"){u 3G=m.1R([1b,O],M,1);F M.2U.1w(D,3G)}if(H(1b)=="1n"){if(4b&&"1b"in 4b&&!I.4U.6X){1b=("<"+1b+" 1b=\\""+I.9c(4b.1b)+"\\">")}Q=I.1Z.2S(1b)}N{Q=1b}if(4b){I.4X(Q,4b)}if(M.K<=2){F Q}N{u 3G=m.1R([Q],M,2);F I.9j.1w(D,3G)}},cw:G(){u m=B.J;F m.2z.1w(D,m.1R([B.S.cX],M))},cs:G(5J,1d){u I=B.S;5J=I.1E(5J);u cW=5J.3t;if(1d){1d=I.1E(1d);cW.uj(1d,5J)}N{cW.6S(5J)}F 1d},1E:G(id){u I=B.S;if(M.K==1){F((H(id)=="1n")?I.1Z.hN(id):id)}N{F B.J.2r(I.1E,M)}},4q:G(iP,cV,cU){if(M.K==2){cU=cV}u I=B.S;u el=I.1E(iP);u 77=I.1Z;if(!el||el==77){F L}if(el.iO){F el.iO[cV]}if(H(77.5k)=="L"){F L}if(77.5k===O){F L}u 9i=77.5k.g4(el,O);if(H(9i)=="L"||9i===O){F L}F 9i.6q(cU)},aH:G(76,9g,4W){u I=B.S;if(H(76)=="L"||76===O){76="*"}if(H(4W)=="L"||4W===O){4W=I.1Z}4W=I.1E(4W);u 9h=(4W.fr(76)||I.1Z.1p);if(H(9g)=="L"||9g===O){F B.J.1R(O,9h)}u cR=[];R(u i=0;i<9h.K;i++){u cS=9h[i];u cT=cS.3M.2R(" ");R(u j=0;j<cT.K;j++){if(cT[j]==9g){cR.1c(cS);2K}}}F cR},iN:G(5I,9f){u W=G(){u cQ=M.2U.5H;R(u i=0;i<cQ.K;i++){if(cQ[i].1w(D,M)===1m){2K}}if(9f){1f{D[5I]=O}1e(e){}}};W.5H=[];F W},cO:G(cP,5I,1A,9f){u I=B.S;u 4V=cP[5I];u 75=4V;if(!(H(4V)=="G"&&H(4V.5H)=="3n"&&4V.5H!==O)){75=I.iN(5I,9f);if(H(4V)=="G"){75.5H.1c(4V)}cP[5I]=75}75.5H.1c(1A)},cN:G(1A){u I=B.S;I.cO(I.3X,"gh",1A,1h)},iM:G(74){u I=B.S;I.cN(G(){74=I.1E(74);if(74){74.ui()}})},5G:G(iL,cM){u I=B.S;u 1i=I.1E(iL);if(I.4U.6X){1i.4p("iq",cM)}N{1i.4p("3M",cM)}},iK:G(cL){u I=B.S;R(u i=1;i<M.K;i++){u 1i=I.1E(M[i]);if(!I.9d(1i,cL)){I.9e(1i,cL)}}},9d:G(iJ,73){u I=B.S;u 1i=I.1E(iJ);u 2F=1i.3M;if(2F.K===0){I.5G(1i,73);F 1h}if(2F==73){F 1m}u cK=1i.3M.2R(" ");R(u i=0;i<cK.K;i++){if(cK[i]==73){F 1m}}I.5G(1i,2F+" "+73);F 1h},9e:G(iI,cJ){u I=B.S;u 1i=I.1E(iI);u 2F=1i.3M;if(2F.K===0){F 1m}if(2F==cJ){I.5G(1i,"");F 1h}u 72=1i.3M.2R(" ");R(u i=0;i<72.K;i++){if(72[i]==cJ){72.4y(i,1);I.5G(1i,72.2b(" "));F 1h}}F 1m},iH:G(iG,iF,iE){u 1i=B.S.1E(iG);u X=B.S.9e(1i,iF);if(X){B.S.9d(1i,iE)}F X},iD:G(iC,uh){u 1i=B.S.1E(iC);u cI=1i.3M.2R(" ");R(u i=1;i<M.K;i++){u cH=1m;R(u j=0;j<cI.K;j++){if(cI[j]==M[i]){cH=1h;2K}}if(!cH){F 1m}}F 1h},9c:G(s){F s.23(/&/g,"&ug;").23(/"/g,"&uf;").23(/</g,"&lt;").23(/>/g,"&gt;")},iB:G(2q){F B.S.cG(2q).2b("")},cG:G(2q,1g){if(H(1g)=="L"||1g===O){1g=[]}u 70=[2q];u I=B.S;u cB=I.9c;u iA=I.4U;1M(70.K){2q=70.hP();if(H(2q)=="1n"){1g.1c(2q)}N{if(2q.3T==1){1g.1c("<"+2q.cD.8G());u 71=[];u cF=iA(2q);R(u i=0;i<cF.K;i++){u a=cF[i];71.1c([" ",a.1b,"=\\"",cB(a.3m),"\\""])}71.iz();R(i=0;i<71.K;i++){u cE=71[i];R(u j=0;j<cE.K;j++){1g.1c(cE[j])}}if(2q.ue()){1g.1c(">");70.1c("</"+2q.cD.8G()+">");u cC=2q.5h;R(i=cC.K-1;i>=0;i--){70.1c(cC[i])}}N{1g.1c("/>")}}N{if(2q.3T==3){1g.1c(cB(2q.iv))}}}}F 1g},97:G(ix,cA){u m=B.J;u iy=m.1R(O,M,1);B.15.9a(m.47(O,m.2r(B.S.1E,iy)),G(cA){cA.1T.3u=ix})},iw:G(1j,iu){u W=[];(G(1j){u cn=1j.5h;if(cn){R(u i=0;i<cn.K;i++){M.2U.cz(D,cn[i])}}u cy=1j.iv;if(H(cy)=="1n"){W.1c(cy)}})(B.S.1E(1j));if(iu){F W}N{F W.2b("")}},2d:G(2m){u m=B.J;D.1Z=2v;D.3X=2m;D.9b=Y m.4a();u 6Z=D.1Z.2S("cj");u 2T;if(6Z&&6Z.6Y&&6Z.6Y.K>0){u it=m.47;2T=G(1j){F it(2T.ir,1j.6Y)};2T.cx={};B.15.9a(6Z.6Y,G(a){2T.cx[a.1b]=a.3m});2T.ir=G(a){F(2T.cx[a.1b]!=a.3m)};2T.6X=1m;2T.99={"iq":"3M","ip":"ud","uc":"ub","R":"u9"}}N{2T=G(1j){F 1j.6Y};2T.6X=1h;2T.99={}}D.4U=2T;u 1C=D.cw;D.io=1C("ul");D.il=1C("ol");D.ik=1C("li");D.ij=1C("td");D.cm=1C("tr");D.ii=1C("u8");D.ih=1C("u7");D.ig=1C("u6");D.ie=1C("u5");D.ic=1C("th");D.cv=1C("ck");D.8d=1C("cj");D.A=1C("a");D.6m=1C("4u");D.ib=1C("u4");D.ia=1C("2e");D.i9=1C("tt");D.i8=1C("4O");D.i7=1C("h1");D.i6=1C("h2");D.i5=1C("h3");D.i4=1C("br");D.i3=1C("hr");D.i2=1C("u3");D.i1=1C("u2");D.cu=1C("u1");D.P=1C("p");D.ct=1C("u0");D.i0=1C("hJ");D.hZ=1C("tZ");D.hY=1C("tY");D.hX=1C("tX");D.hW=1C("tW");D.hV=1C("tV");D.hU=m.2z(D.97,"98");D.hT=m.2z(D.97,"8c");D.hS=D.cs;D.$=D.1E;D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)}});B.S.2d(((H(2O)=="L")?D:2O));if(!B.3d){95=B.S.95;94=B.S.94}B.J.2Y(D,B.S);if(H(1q)!="L"){1q.2X("B.1I");1q.2M("B.1H");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.1H",[]);1x.26("B.J",[])}1f{if(H(B.J)=="L"||H(B.1H)=="L"){14""}}1e(e){14"B.1I 3F on B.J 3W B.1H!"}if(H(B.1I)=="L"){B.1I={}}B.1I.1r="B.1I";B.1I.1Y="1.3.1";B.1I.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1I.1l=G(){F D.1K()};B.1I.bY=G(6W){u m=B.1I;6W=!(!6W);if(m.3l&&m.3l.8Q!=6W){m.3l.hA();m.3l=O}if(!m.3l||m.3l.8P){m.3l=Y m.1I(6W,B.1H.2L)}F m.3l};B.1I.1I=G(4R,6V){if(H(6V)=="L"||6V===O){6V=B.1H.2L}D.2L=6V;u tU=B.J.2l;u c3=B.J.8Z;u 1O=B.J.1O;u hM=B.J.4L;u 2m=2O;u 6U="tT";if(H(B.S)!="L"){2m=B.S.cr()}if(!4R){u 5F=2m.tS.tR.2R("?")[0].23(/[:\\/.><&]/g,"hR");u 1b=6U+"hR"+5F;u 5D=2m.cp("",1b,"tQ,tP,3V=hQ");if(!5D){cq("tO tN to cp tM 2O tL to hP-up tK.");F L}5D.2v.fl("<!tJ co tI \\"-//tH//tG co 4.0 tF//tE\\" "+"\\"fq://fp.tD.fo/cm/tC/tB.tA\\">"+"<hO><5E><8Y>[B.1I]</8Y></5E>"+"<5s></5s></hO>");5D.2v.hG();5D.2v.8Y+=" "+2m.2v.8Y;2m=5D}u 1N=2m.2v;D.1N=1N;u 21=1N.hN(6U);u c4=!!21;if(21&&H(21.5B)!="L"){21.5B.2L=D.2L;21.5B.6K();F 21.5B}if(c4){u cl;1M((cl=21.6n)){21.6S(cl)}}N{21=1N.2S("4u");21.id=6U}21.5B=D;u 8T=1N.2S("ck");u 8S=1N.2S("ck");u 6O=1N.2S("2e");u 6N=1N.2S("2e");u 6M=1N.2S("2e");u 6L=1N.2S("2e");u 3L=1N.2S("4u");u 42=1N.2S("4u");u 8U=6U+"tz";D.8N=hM(D.8N);u 4T=[];u 6R=O;u cf=G(1t){u 6T=1t.3N;if(H(6T)=="2y"){6T=B.1H.5C[6T]}F 6T};u cd=G(1t){F 1t.3z.2b(" ")};u ca=1O(G(1t){u 8W=cf(1t);u 7X=cd(1t);u c=D.8N[8W];u p=1N.2S("cj");p.3M="B-49 B-5C-"+8W;p.1T.3x="ty: 2N; 4F-8X: -hL-4O-3y; 4F-8X: -o-4O-3y; 4F-8X: 4O-3y; 4F-8X: 4O-tx; hK-3y: 2K-hK; 3y-hJ: tw; 3U: "+c;p.2c(1N.4S(8W+": "+7X));42.2c(p);42.2c(1N.2S("br"));if(3L.ci>3L.hI){3L.4C=0}N{3L.4C=3L.hI}},D);u hD=G(1t){4T[4T.K]=1t;ca(1t)};u hF=G(){u cg,ce;1f{cg=Y 8V(8T.3m);ce=Y 8V(8S.3m)}1e(e){ch("2x in 47 tv: "+e.43);F O}F G(1t){F(cg.hH(cf(1t))&&ce.hH(cd(1t)))}};u cc=G(){1M(42.6n){42.6S(42.6n)}};u hB=G(){4T=[];cc()};u bZ=1O(G(){if(D.8P){F}D.8P=1h;if(B.1I.3l==D){B.1I.3l=O}D.2L.c9(8U);21.5B=O;if(4R){21.3t.6S(21)}N{D.2m.hG()}},D);u c7=G(){cc();R(u i=0;i<4T.K;i++){u 1t=4T[i];if(6R===O||6R(1t)){ca(1t)}}};D.6K=G(){6R=hF();c7();D.2L.c9(8U);D.2L.hE(8U,6R,hD)};u c0=1O(G(){4T=D.2L.c8();c7()},D);u c2=1O(G(6Q){6Q=6Q||2O.6D;2h=6Q.6w||6Q.8t;if(2h==13){D.6K()}},D);u 31="3u: 8c; z-c6: c5; 2I: 2N; 6f: 2N; 6P: tu; 5A: 3k%; he-3U: 4F; c1: "+D.8O;if(4R){31+="; 3V: ts; 3E-3D: fO 8a 8y"}N{31+="; 3V: 3k%;"}21.1T.3x=31;if(!c4){1N.5s.2c(21)}31={"3x":"5A: 33%; 3u: 8Q; c1: "+D.8O};c3(8T,{"3m":"8L|8M|8K|8J|8I","hC":c2,"1T":31});21.2c(8T);c3(8S,{"3m":".*","hC":c2,"1T":31});21.2c(8S);31="5A: 8%; 3u:8Q; c1: "+D.8O;6O.2c(1N.4S("tq"));6O.8R=1O("6K",D);6O.1T.3x=31;21.2c(6O);6N.2c(1N.4S("tp"));6N.8R=c0;6N.1T.3x=31;21.2c(6N);6M.2c(1N.4S("tn"));6M.8R=hB;6M.1T.3x=31;21.2c(6M);6L.2c(1N.4S("tm"));6L.8R=bZ;6L.1T.3x=31;21.2c(6L);3L.1T.3x="fS: tk; 5A: 3k%";42.1T.3x="5A: 3k%; 3V: "+(4R?"tj":"3k%");3L.2c(42);21.2c(3L);D.6K();c0();if(4R){D.2m=L}N{D.2m=2m}D.8Q=4R;D.hA=bZ;D.8P=1m;F D};B.1I.1I.1U={"8O":"ti tg,tf-te","8N":{"8M":"1v","8L":"gU","8K":"1F","8J":"8y","8I":"bx"}};B.1I.1W=["1I"];B.1I.1z=["bY"];B.1I.2d=G(){D.2k={":3e":D.1z,":1p":B.J.2o(D.1z,D.1W)};B.J.3f(D);B.1I.3l=O};B.1I.2d();B.J.2Y(D,B.1I);if(H(1q)!="L"){1q.2X("B.V");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.V 3F on B.J"}if(H(B.V)=="L"){B.V={}}B.V.1r="B.V";B.V.1Y="1.3.1";B.V.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.V.1l=G(){F D.1K()};B.V.V=G(1v,hz,1F,6J){if(H(6J)=="L"||6J===O){6J=1}D.1B={r:1v,g:hz,b:1F,a:6J}};B.V.V.1U={bX:B.V.V,tc:G(hy){u 1B=D.1B;u m=B.V;F m.V.3Y(1B.r,1B.g,1B.b,hy)},tb:G(1o){u 1G=D.41();1G.h=1o;u m=B.V;F m.V.4H(1G)},ta:G(hx){u 1G=D.41();1G.s=hx;u m=B.V;F m.V.4H(1G)},t9:G(hw){u 1G=D.41();1G.l=hw;u m=B.V;F m.V.4H(1G)},t8:G(hv){u 1G=D.41();1G.l=28.29(1G.l-hv,0);u m=B.V;F m.V.4H(1G)},t7:G(hu){u 1G=D.41();1G.l=28.2a(1G.l+hu,1);u m=B.V;F m.V.4H(1G)},fJ:G(ht,5z){if(H(5z)=="L"||5z===O){5z=0.5}u sf=1-5z;u s=D.1B;u d=ht.1B;u df=5z;F B.V.V.3Y((s.r*sf)+(d.r*df),(s.g*sf)+(d.g*df),(s.b*sf)+(d.b*df),(s.a*sf)+(d.a*df))},h4:G(hs){u a=D.6r();u b=hs.6r();F B.J.2f([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a])},hq:G(){F D.41().b>0.5},t6:G(){F(!D.hq())},t5:G(){u c=D.41();u 2Z=B.V.6F;u W=D.ho;if(!W){u 5y=(2Z(c.h,bF).6I(0)+","+2Z(c.s,3k).hp(4)+"%"+","+2Z(c.l,3k).hp(4)+"%");u a=c.a;if(a>=1){a=1;W="1G("+5y+")"}N{if(a<=0){a=0}W="t4("+5y+","+a+")"}D.ho=W}F W},hl:G(){u c=D.1B;u 2Z=B.V.6F;u W=D.hn;if(!W){u 5y=(2Z(c.r,3h).6I(0)+","+2Z(c.g,3h).6I(0)+","+2Z(c.b,3h).6I(0));if(c.a!=1){W="t3("+5y+","+c.a+")"}N{W="1B("+5y+")"}D.hn=W}F W},6r:G(){F B.J.4L(D.1B)},t2:G(){u m=B.V;u c=D.1B;u 2Z=B.V.6F;u W=D.hm;if(!W){W=("#"+m.6E(2Z(c.r,3h))+m.6E(2Z(c.g,3h))+m.6E(2Z(c.b,3h)));D.hm=W}F W},t1:G(){u 2Q=D.2Q;u c=D.1B;if(H(2Q)=="L"||2Q===O){2Q=B.V.bA(D.1B);D.2Q=2Q}F B.J.4L(2Q)},41:G(){u 1G=D.1G;u c=D.1B;if(H(1G)=="L"||1G===O){1G=B.V.bC(D.1B);D.1G=1G}F B.J.4L(1G)},1l:G(){F D.hl()},U:G(){u c=D.1B;u hk=[c.r,c.g,c.b,c.a];F D.bX.1r+"("+hk.2b(", ")+")"}};B.J.2l(B.V.V,{3Y:G(1v,bW,1F,8H){u hj=B.V.V;if(M.K==1){u 1B=1v;1v=1B.r;bW=1B.g;1F=1B.b;if(H(1B.a)=="L"){8H=L}N{8H=1B.a}}F Y hj(1v,bW,1F,8H)},4H:G(1o,t0,sZ,sY){u m=B.V;F m.V.3Y(m.bB.1w(m,M))},sX:G(1o,sW,sV,sU){u m=B.V;F m.V.3Y(m.bz.1w(m,M))},hi:G(1b){u 8F=B.V.V;if(1b.3Z(0)=="\\""){1b=1b.3H(1,1b.K-2)}u bV=8F.by[1b.8G()];if(H(bV)=="1n"){F 8F.bT(bV)}N{if(1b=="aP"){F 8F.sT()}}F O},8f:G(4Q){u I=B.V.V;u bU=4Q.3H(0,3);if(bU=="1B"){F I.h9(4Q)}N{if(bU=="1G"){F I.h8(4Q)}N{if(4Q.3Z(0)=="#"){F I.bT(4Q)}}}F I.hi(4Q)},bT:G(4P){if(4P.3Z(0)=="#"){4P=4P.2W(1)}u 8E=[];u i,5x;if(4P.K==3){R(i=0;i<3;i++){5x=4P.3H(i,1);8E.1c(3w(5x+5x,16)/3h)}}N{R(i=0;i<6;i+=2){5x=4P.3H(i,2);8E.1c(3w(5x,16)/3h)}}u bS=B.V.V;F bS.3Y.1w(bS,8E)},bG:G(4O,hf,hg,4N){if(4N.2A(4O)===0){4N=4N.2W(4N.2A("(",3)+1,4N.K-1)}u bR=4N.2R(/\\s*,\\s*/);u bP=[];R(u i=0;i<bR.K;i++){u c=bR[i];u 2i;u bQ=c.2W(c.K-3);if(c.3Z(c.K-1)=="%"){2i=0.bE*4M(c.2W(0,c.K-1))}N{if(bQ=="sS"){2i=4M(c)/bF}N{if(bQ=="sR"){2i=4M(c)/(28.sQ*2)}N{2i=hg[i]*4M(c)}}}bP.1c(2i)}F D[hf].1w(D,bP)},bN:G(Q,sP,sO){u d=B.S;u 2F=B.V.V;R(Q=d.1E(Q);Q;Q=Q.3t){u bO=d.4q.1w(d,M);if(!bO){2V}u 8D=2F.8f(bO);if(!8D){2K}if(8D.6r().a>0){F 8D}}F O},ba:G(Q){u 2F=B.V.V;F 2F.bN(Q,"aZ","he-3U")||2F.sN()},sM:G(Q){u 2F=B.V.V;F 2F.bN(Q,"3U","3U")||2F.sL()},sK:G(){F B.J.4L(B.V.V.by)}});B.J.2l(B.V,{6F:G(v,8C){v*=8C;if(v<0){F 0}N{if(v>8C){F 8C}N{F v}}},hc:G(n1,n2,1o){if(1o>6){1o-=6}N{if(1o<0){1o+=6}}u 2i;if(1o<1){2i=n1+(n2-n1)*1o}N{if(1o<3){2i=n2}N{if(1o<4){2i=n1+(n2-n1)*(4-1o)}N{2i=n1}}}F 2i},bz:G(1o,5w,3i,bM){if(M.K==1){u 2Q=1o;1o=2Q.h;5w=2Q.s;3i=2Q.v;bM=2Q.a}u 1v;u 3K;u 1F;if(5w===0){1v=0;3K=0;1F=0}N{u i=28.8B(1o*6);u f=(1o*6)-i;u p=3i*(1-5w);u q=3i*(1-(5w*f));u t=3i*(1-(5w*(1-f)));hd(i){3j 1:1v=q;3K=3i;1F=p;2K;3j 2:1v=p;3K=3i;1F=t;2K;3j 3:1v=p;3K=q;1F=3i;2K;3j 4:1v=t;3K=p;1F=3i;2K;3j 5:1v=3i;3K=p;1F=q;2K;3j 6:3j 0:1v=3i;3K=t;1F=p;2K}}F{r:1v,g:3K,b:1F,a:bM}},bB:G(1o,5v,3v,bL){if(M.K==1){u 1G=1o;1o=1G.h;5v=1G.s;3v=1G.l;bL=1G.a}u 1v;u 8A;u 1F;if(5v===0){1v=3v;8A=3v;1F=3v}N{u m2;if(3v<=0.5){m2=3v*(1+5v)}N{m2=3v+5v-(3v*5v)}u m1=(2*3v)-m2;u f=B.V.hc;u h6=1o*6;1v=f(m1,m2,h6+2);8A=f(m1,m2,h6);1F=f(m1,m2,h6-2)}F{r:1v,g:8A,b:1F,a:bL}},bA:G(1v,4K,1F,bK){if(M.K==1){u 1B=1v;1v=1B.r;4K=1B.g;1F=1B.b;bK=1B.a}u 29=28.29(28.29(1v,4K),1F);u 2a=28.2a(28.2a(1v,4K),1F);u 1o;u 8z;u hb=29;if(2a==29){1o=0;8z=0}N{u 6H=(29-2a);8z=6H/29;if(1v==29){1o=(4K-1F)/6H}N{if(4K==29){1o=2+((1F-1v)/6H)}N{1o=4+((1v-4K)/6H)}}1o/=6;if(1o<0){1o+=1}if(1o>1){1o-=1}}F{h:1o,s:8z,v:hb,a:bK}},bC:G(1v,4J,1F,bI){if(M.K==1){u 1B=1v;1v=1B.r;4J=1B.g;1F=1B.b;bI=1B.a}u 29=28.29(1v,28.29(4J,1F));u 2a=28.2a(1v,28.2a(4J,1F));u 1o;u 6G;u bJ=(29+2a)/2;u 4I=29-2a;if(4I===0){1o=0;6G=0}N{if(bJ<=0.5){6G=4I/(29+2a)}N{6G=4I/(2-29-2a)}if(1v==29){1o=(4J-1F)/4I}N{if(4J==29){1o=2+((1F-1v)/4I)}N{1o=4+((1v-4J)/4I)}}1o/=6;if(1o<0){1o+=1}if(1o>1){1o-=1}}F{h:1o,s:6G,l:bJ,a:bI}},6E:G(1P){1P=28.ha(1P);u bH=1P.1l(16);if(1P<16){F"0"+bH}F bH},2d:G(){u m=B.J;D.V.h9=m.1O(D.V.bG,D.V,"1B","3Y",[1/3h,1/3h,1/3h,1]);D.V.h8=m.1O(D.V.bG,D.V,"1G","4H",[1/bF,0.bE,0.bE,1]);u 4G=1/3;u bD={8y:[0,0,0],1F:[0,0,1],gY:[0.6,0.4,0.2],gX:[0,1,1],sJ:[4G,4G,4G],gR:[0.5,0.5,0.5],bx:[0,1,0],sI:[2*4G,2*4G,2*4G],gN:[1,0,1],gL:[1,0.5,0],gK:[0.5,0,0.5],1v:[1,0,0],aP:[0,0,0,0],4F:[1,1,1],gI:[1,1,0]};u h7=G(1b,r,g,b,a){u W=D.3Y(r,g,b,a);D[1b]=G(){F W};F W};R(u k in bD){u 1b=k+"V";u h5=m.2o([h7,D.V,1b],bD[k]);D.V[1b]=m.1O.1w(O,h5)}u h0=G(){R(u i=0;i<M.K;i++){if(!(M[i]2C V)){F 1m}}F 1h};u gZ=G(a,b){F a.h4(b)};m.3f(D);m.5u(D.V.1r,h0,gZ);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)}}});B.V.1z=["V"];B.V.1W=["6F","bC","bB","bA","bz","6E"];B.V.2d();B.J.2Y(D,B.V);B.V.V.by={sH:"#sG",sF:"#sE",sD:"#gW",sC:"#sB",sA:"#sz",sy:"#sx",sw:"#sv",8y:"#su",st:"#sr",1F:"#sq",sp:"#so",gY:"#sn",sm:"#sl",sk:"#sj",si:"#sh",sg:"#se",sd:"#sc",sb:"#sa",s9:"#s8",s7:"#s6",gX:"#gW",s5:"#s4",s3:"#s2",s1:"#s0",rZ:"#gV",rY:"#rX",rW:"#gV",rV:"#rU",rT:"#rS",rR:"#rQ",rP:"#rO",rN:"#rM",gU:"#rL",rK:"#rJ",rI:"#rH",rG:"#rF",rE:"#gT",rD:"#gT",rC:"#rB",rA:"#rz",ry:"#rx",rw:"#rv",ru:"#gS",rt:"#gS",rs:"#rr",rq:"#rp",ro:"#rn",rm:"#rl",rk:"#gM",rj:"#ri",rh:"#rg",rf:"#rd",rc:"#rb",gR:"#gQ",bx:"#ra",r9:"#r8",r7:"#gQ",r6:"#r5",r4:"#r3",r2:"#r1",r0:"#qZ",qY:"#qX",qW:"#qV",qU:"#qT",qS:"#qR",qQ:"#qP",qO:"#qN",qM:"#qL",qK:"#qJ",qI:"#qH",qG:"#qF",qE:"#gP",qD:"#qC",qB:"#gP",qA:"#qz",qy:"#qx",qw:"#qv",qu:"#qt",qr:"#gO",qq:"#gO",qp:"#qo",qn:"#qm",ql:"#qk",qj:"#qi",qh:"#qg",gN:"#gM",qf:"#qe",qd:"#qc",qb:"#qa",q9:"#q8",q7:"#q6",q5:"#q4",q3:"#q2",q1:"#q0",pZ:"#pY",pX:"#pW",pV:"#pU",pT:"#pS",pR:"#pQ",pP:"#pO",pN:"#pM",pL:"#pK",pJ:"#pI",pH:"#pG",pF:"#pE",gL:"#pD",pC:"#pB",pA:"#pz",py:"#pw",pv:"#pu",pt:"#ps",pr:"#pq",pp:"#po",pn:"#pm",pl:"#pj",pi:"#ph",pg:"#pf",pe:"#pd",gK:"#pc",1v:"#pb",pa:"#p9",p8:"#p7",p6:"#p5",p4:"#p3",p2:"#p1",p0:"#oZ",oY:"#oX",oW:"#oV",oU:"#oT",oS:"#oR",oQ:"#oP",oO:"#gJ",oN:"#gJ",oM:"#oL",oK:"#oJ",oI:"#oH",oG:"#oF",oE:"#oD",oC:"#oB",oA:"#oz",oy:"#ox",ow:"#ov",ou:"#ot",4F:"#os",oq:"#op",gI:"#oo",om:"#ok"};if(H(1q)!="L"){1q.2X("B.1u");1q.2M("B.J");1q.2M("B.S")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.S",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1u 3F on B.J!"}1f{if(H(B.S)=="L"){14""}}1e(e){14"B.1u 3F on B.S!"}if(H(B.1u)=="L"){B.1u={}}B.1u.1r="B.1u";B.1u.1Y="1.3.1";B.1u.4x=[];B.1u.bq=G(1d,e){D.1L=e||2O.6D;D.gH=1d};B.J.2l(B.1u.bq.1U,{1K:G(){u U=B.J.U;u 1y="{6D(): "+U(D.6D())+", 1d(): "+U(D.1d())+", 1J(): "+U(D.1J())+", 8x(): "+U(D.8x())+", 4E(): "+"{8w: "+U(D.4E().8w)+", 8v: "+U(D.4E().8v)+", 8u: "+U(D.4E().8u)+", 2P: "+U(D.4E().2P)+", bw: "+U(D.4E().bw)+"}";if(D.1J()&&D.1J().2A("2h")===0){1y+=", 2h(): {3J: "+U(D.2h().3J)+", 1n: "+U(D.2h().1n)+"}"}if(D.1J()&&(D.1J().2A("3I")===0||D.1J().2A("gE")!=-1||D.1J()=="gD")){1y+=", 3I(): {4D: "+U(D.3I().4D)+", 6A: "+U(D.3I().6A);if(D.1J()!="gC"){1y+=", 2e: {2I: "+U(D.3I().2e.2I)+", 6v: "+U(D.3I().2e.6v)+", 3g: "+U(D.3I().2e.3g)+"}}"}N{1y+="}"}}if(D.1J()=="gG"||D.1J()=="gF"){1y+=", 6C(): "+U(D.6C())}1y+="}";F 1y},1l:G(){F D.1K()},1d:G(){F D.gH},6D:G(){F D.1L},1J:G(){F D.1L.1J||L},8x:G(){F D.1L.8x||D.1L.oj},6C:G(){if(D.1J()=="gG"){F(D.1L.6C||D.1L.aW)}N{if(D.1J()=="gF"){F(D.1L.6C||D.1L.oi)}}F L},4E:G(){u m={};m.8w=D.1L.oh;m.8v=D.1L.og;m.8u=D.1L.oe||1m;m.2P=D.1L.od;m.bw=m.8w||m.8v||m.2P||m.8u;F m},2h:G(){u k={};if(D.1J()&&D.1J().2A("2h")===0){if(D.1J()=="oc"||D.1J()=="ob"){k.3J=D.1L.8t;k.1n=(B.1u.5r[k.3J]||"oa");F k}N{if(D.1J()=="o9"){k.3J=0;k.1n="";if(H(D.1L.6B)!="L"&&D.1L.6B!==0&&!B.1u.bv[D.1L.6B]){k.3J=D.1L.6B;k.1n=bu.bt(k.3J)}N{if(D.1L.8t&&H(D.1L.6B)=="L"){k.3J=D.1L.8t;k.1n=bu.bt(k.3J)}}F k}}}F L},3I:G(){u m={};u e=D.1L;if(D.1J()&&(D.1J().2A("3I")===0||D.1J().2A("gE")!=-1||D.1J()=="gD")){m.6A=Y B.S.5t(0,0);if(e.6z||e.6x){m.6A.x=(!e.6z||e.6z<0)?0:e.6z;m.6A.y=(!e.6x||e.6x<0)?0:e.6x}m.4D=Y B.S.5t(0,0);if(e.8s||e.8r){m.4D.x=(!e.8s||e.8s<0)?0:e.8s;m.4D.y=(!e.8r||e.8r<0)?0:e.8r}N{u de=B.S.1Z.7Z;u b=B.S.1Z.5s;m.4D.x=e.6z+(de.6y||b.6y)-(de.8q||b.8q);m.4D.y=e.6x+(de.4C||b.4C)-(de.8p||b.8p)}if(D.1J()!="gC"){m.2e={};m.2e.2I=1m;m.2e.3g=1m;m.2e.6v=1m;if(e.6w){m.2e.2I=(e.6w==1);m.2e.6v=(e.6w==2);m.2e.3g=(e.6w==3)}N{m.2e.2I=!!(e.2e&1);m.2e.3g=!!(e.2e&2);m.2e.6v=!!(e.2e&4)}}F m}F L},2J:G(){D.8o();D.8n()},8o:G(){if(D.1L.8o){D.1L.8o()}N{D.1L.o8=1h}},8n:G(){if(D.1L.8n){D.1L.8n()}N{D.1L.o7=1m}}});B.1u.bv={3:"gz",o6:"gA",o5:"gy",o4:"gx",o3:"gw",o2:"gv",o1:"gu",o0:"gs",nZ:"gr",nY:"gq",nX:"gp",nW:"go"};R(i=gB;i<=nV;i++){B.1u.bv[i]="gk"+(i-gB+1)}B.1u.5r={8:"nU",9:"nT",12:"gA",13:"gz",16:"nS",17:"nR",18:"nQ",19:"nP",20:"nO",27:"nN",32:"nM",33:"gy",34:"gx",35:"gw",36:"gv",37:"gu",38:"gs",39:"gr",40:"gq",44:"nL",45:"gp",46:"go",59:"gn",91:"nK",92:"nJ",93:"nI",nH:"nG",nF:"nE",nD:"nC-gm",nB:"nA",nz:"ny",nx:"nw",nv:"nu",nt:"gn",ns:"nr",nq:"np",nn:"nm-gm",nl:"nk",nj:"ni",nh:"ng",nf:"nd",nc:"nb",na:"n9",n8:"n7"};R(u i=48;i<=57;i++){B.1u.5r[i]="gl"+(i-48)}R(i=65;i<=90;i++){B.1u.5r[i]="gl"+bu.bt(i)}R(i=96;i<=n6;i++){B.1u.5r[i]="n5"+(i-96)}R(i=gj;i<=n4;i++){B.1u.5r[i]="gk"+(i-gj+1)}B.J.2l(B.1u,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},g7:G(){u I=B.1u;u bs=I.4x;R(u i=0;i<bs.K;i++){I.6t(bs[i])}gi I.4x;1f{2O.gh=L}1e(e){}1f{2O.g8=L}1e(e){}},gb:G(1d,1A,1i,gg){u E=B.1u.bq;if(!gg){F B.J.1O(1A,1i)}1i=1i||1d;if(H(1A)=="1n"){F G(gf){1i[1A].1w(1i,[Y E(1d,gf)])}}N{F G(gd){1A.1w(1i,[Y E(1d,gd)])}}},6s:G(1d,2D,5q,4B){1d=B.S.1E(1d);u I=B.1u;if(H(2D)!="1n"){14 Y 2x("\'2D\' 5p be a 1n")}u 1i=O;u 1A=O;if(H(4B)!="L"){1i=5q;1A=4B;if(H(4B)=="1n"){if(H(5q[4B])!="G"){14 Y 2x("\'bp\' 5p be a G on \'gc\'")}}N{if(H(4B)!="G"){14 Y 2x("\'bp\' 5p be a G or 1n")}}}N{if(H(5q)!="G"){14 Y 2x("\'gc\' 5p be a G if \'bp\' is 2E n3")}N{1A=5q}}if(H(1i)=="L"||1i===O){1i=1d}u bm=!!(1d.bo||1d.bn);u 8m=I.gb(1d,1A,1i,bm);if(1d.bo){1d.bo(2D.3H(2),8m,1m)}N{if(1d.bn){1d.bn(2D,8m)}}u bk=[1d,2D,8m,bm,5q,4B];I.4x.1c(bk);F bk},6t:G(6u){if(!6u[3]){F}u 1d=6u[0];u 2D=6u[1];u bj=6u[2];if(1d.ga){1d.ga(2D.3H(2),bj,1m)}N{if(1d.g9){1d.g9(2D,bj)}N{14 Y 2x("\'1d\' 5p be a S n0")}}},8j:G(bh){u I=B.1u;u 5o=I.4x;u m=B.J;if(M.K>1){u 1d=B.S.1E(M[0]);u 2D=M[1];u 1i=M[2];u 1A=M[3];R(u i=5o.K-1;i>=0;i--){u o=5o[i];if(o[0]===1d&&o[1]===2D&&o[4]===1i&&o[5]===1A){I.6t(o);5o.4y(i,1);F 1h}}}N{u 5n=m.bi(5o,bh);if(5n>=0){I.6t(bh);5o.4y(5n,1);F 1h}}F 1m},8i:G(1d,2D){1d=B.S.1E(1d);u m=B.J;u 8l=m.bg(m.1R(O,M,1));u I=B.1u;u bd=I.6t;u 4z=I.4x;if(8l.K===0){R(u i=4z.K-1;i>=0;i--){u 4A=4z[i];if(4A[0]===1d){bd(4A);4z.4y(i,1)}}}N{u bf={};R(u i=0;i<8l.K;i++){bf[8l[i]]=1h}R(u i=4z.K-1;i>=0;i--){u 4A=4z[i];if(4A[0]===1d&&4A[1]in bf){bd(4A);4z.4y(i,1)}}}},8h:G(1d,2D){u bc=B.1u.4x;1d=B.S.1E(1d);u 3G=B.J.1R(O,M,2);u 5m=[];R(u i=0;i<bc.K;i++){u 8k=bc[i];if(8k[0]===1d&&8k[1]===2D){1f{8k[2].1w(1d,3G)}1e(e){5m.1c(e)}}}if(5m.K==1){14 5m[0]}N{if(5m.K>1){u e=Y 2x("mZ bb mY in mX \'2D\', mW bb mV");e.bb=5m;14 e}}}});B.1u.1W=[];B.1u.1z=["6s","8j","8h","8i"];B.1u.2d=G(2m){u m=B.J;D.1Z=2v;D.3X=2m;1f{D.6s(2O,"g8",D.g7)}1e(e){}D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.1u.2d(D);if(!B.3d){6s=B.1u.6s;8j=B.1u.8j;8i=B.1u.8i;8h=B.1u.8h}B.J.2Y(D,B.1u);if(H(1q)!="L"){1q.2X("B.1X");1q.2M("B.J");1q.2M("B.S");1q.2M("B.V")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.S",[]);1x.26("B.V",[])}1f{if(H(B.J)=="L"||H(B.S)=="L"||H(B.V)=="L"){14""}}1e(e){14"B.1X 3F on B.J, B.S 3W B.V!"}if(H(B.1X)=="L"){B.1X={}}B.1X.1r="B.1X";B.1X.1Y="1.3.1";B.1X.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1X.1l=G(){F D.1K()};B.1X.aI=G(e,g6){e=B.S.1E(e);D.fN(g6);if(D.1S.fL){e=D.g5(e)}u 4w=D.1S.3U;u C=B.V.V;if(D.1S.3U=="aW"){4w=C.ba(e)}N{if(!(4w 2C C)){4w=C.8f(4w)}}D.82=(4w.6r().a<=0);u 5l=D.1S.aV;if(D.1S.aV=="fM"){5l=C.ba(e.8g)}N{if(!(5l 2C C)){5l=C.8f(5l)}}D.g3(e,4w,5l)};B.1X.aI.1U={g5:G(e){u mU=e.3t;u 1N=B.S.b9();if(H(1N.5k)=="L"||1N.5k===O){F e}u 4v=1N.5k.g4(e,O);if(H(4v)=="L"||4v===O){F e}u b8=B.S.6m({"1T":{3u:"8c",mT:4v.6q("6p-3D"),85:4v.6q("6p-3g"),mS:4v.6q("6p-6f"),86:4v.6q("6p-2I"),6p:"2N"}});b8.6o=e.6o;e.6o="";e.2c(b8);F e},g3:G(e,b7,8e){if(D.1S.3E){D.g2(e,8e)}if(D.fy()){D.fX(e,b7,8e)}if(D.fx()){D.fV(e,b7,8e)}},g2:G(el,g1){u b6="6l 8a "+D.aQ(g1);u g0="3E-2I: "+b6;u fZ="3E-3g: "+b6;u fY="1T=\'"+g0+";"+fZ+"\'";el.6o="<4u "+fY+">"+el.6o+"</4u>"},fX:G(el,fW,b5){u b4=D.b1(b5);R(u i=0;i<D.1S.89;i++){b4.2c(D.b0(fW,b5,i,"3D"))}el.1T.mR=0;el.mQ(b4,el.6n)},fV:G(el,fU,b3){u b2=D.b1(b3);R(u i=(D.1S.89-1);i>=0;i--){b2.2c(D.b0(fU,b3,i,"6f"))}el.1T.mP=0;el.2c(b2)},b1:G(fT){u 2q=B.S;F 2q.6m({1T:{aZ:fT.1l()}})},b0:G(aY,fQ,n,aX){u 6k=B.S.8d();u 2p=6k.1T;2p.aZ=aY.1l();2p.3u="8c";2p.3V="6l";2p.fS="fR";2p.mO="6l";u 8b=D.aQ(aY,fQ);if(D.1S.3E&&n===0){2p.mN="8a";2p.mM="6l";2p.84="2N";2p.83="2N";2p.mL="2N";2p.3V="2N";2p.fP=8b.1l()}N{if(8b){2p.fP=8b.1l();2p.mK="8a";2p.mJ="2N 6l"}}if(!D.1S.4r&&(n==(D.1S.89-1))){2p.3V="fO"}D.fI(6k,n,aX);D.fG(6k,n,aX);F 6k},fN:G(fK){D.1S={6g:"1p",3U:"aW",aV:"fM",5j:1h,3E:1m,4r:1m,fL:1m};B.J.2l(D.1S,fK);D.1S.89=(D.1S.4r?2:4)},aL:G(){u 88=D.1S.6g;if(D.6h(88,"1p","3D")){F""}u aU=(88.2A("tl")!=-1);u aT=(88.2A("tr")!=-1);if(aU&&aT){F""}if(aU){F"2I"}if(aT){F"3g"}F""},aK:G(){u 87=D.1S.6g;if(D.6h(87,"1p","6f")){F""}u aS=(87.2A("bl")!=-1);u aR=(87.2A("br")!=-1);if(aS&&aR){F""}if(aS){F"2I"}if(aR){F"3g"}F""},aQ:G(aN,aO){if(aN=="aP"){F aO}N{if(D.1S.3E){F D.1S.3E}N{if(D.1S.5j){F aO.fJ(aN)}}}F""},fI:G(el,n,fH){u 6j=D.fE(n)+"px";u aM=(fH=="3D"?D.aL():D.aK());u 4t=el.1T;if(aM=="2I"){4t.86=6j;4t.85="2N"}N{if(aM=="3g"){4t.85=6j;4t.86="2N"}N{4t.86=6j;4t.85=6j}}},fG:G(el,n,fF){u 6i=D.fz(n)+"px";u aJ=(fF=="3D"?D.aL():D.aK());u 4s=el.1T;if(aJ=="2I"){4s.84=6i;4s.83="2N"}N{if(aJ=="3g"){4s.83=6i;4s.84="2N"}N{4s.84=6i;4s.83=6i}}},fE:G(n){if(D.82){F 0}u o=D.1S;if(o.4r&&o.5j){u fD=[1,0];F fD[n]}N{if(o.4r){u fC=[2,1];F fC[n]}N{if(o.5j){u fB=[3,2,1,0];F fB[n]}N{u fA=[5,3,2,1];F fA[n]}}}},fz:G(n){u o=D.1S;u 5i;if(o.4r&&(o.5j||D.82)){F 1}N{if(o.4r){5i=[1,0]}N{if(o.5j){5i=[2,1,1,1]}N{if(o.3E){5i=[0,2,0,0]}N{if(D.82){5i=[5,3,2,1]}N{F 0}}}}}F 5i[n]},6h:G(1y){R(u i=1;i<M.K;i++){if(1y.2A(M[i])!=-1){F 1h}}F 1m},fy:G(){F D.6h(D.1S.6g,"1p","3D","tl","tr")},fx:G(){F D.6h(D.1S.6g,"1p","6f","bl","br")},mI:G(el){F(el.5h.K==1&&el.5h[0].3T==3)}};B.1X.aF=G(e,fw){Y B.1X.aI(e,fw)};B.1X.fs=G(fv,fu,ft){u aG=B.S.aH(fv,fu);R(u i=0;i<aG.K;i++){B.1X.aF(aG[i],ft)}};B.1X.V=B.V.V;B.1X.mH=B.S.4q;B.1X.2d=G(){u m=B.J;m.3f(D);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)}};B.1X.1z=["aF","fs"];B.1X.1W=[];B.1X.2d();B.J.2Y(D,B.1X);if(H(B)=="L"){B={}}if(H(B.B)=="L"){B.B={}}B.B.1r="B.B";B.B.1Y="1.3.1";B.B.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.B.1l=G(){F D.1K()};B.B.aA=["J","15","1H","1D","1s","1k","S","1I","V","1u","1X"];if(H(1x)!="L"||H(1q)!="L"){if(H(1q)!="L"){1q.2X("B.B");1q.2M("B.*")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.15",[]);1x.26("B.1H",[]);1x.26("B.1D",[]);1x.26("B.1s",[]);1x.26("B.1k",[]);1x.26("B.S",[]);1x.26("B.1I",[]);1x.26("B.V",[]);1x.26("B.1u",[]);1x.26("B.1X",[])}(G(){u 6e=B.J.1R;u I=B.B;u aE=I.aA;u aD=[];u aC=[];u 81={};u i,k,m,1p;R(i=0;i<aE.K;i++){m=B[aE[i]];6e(aD,m.1z);6e(aC,m.1W);R(k in m.2k){81[k]=6e(81[k],m.2k[k])}1p=m.2k[":1p"];if(!1p){1p=6e(O,m.1z,m.1W)}u j;R(j=0;j<1p.K;j++){k=1p[j];I[k]=m[k]}}I.1z=aD;I.1W=aC;I.2k=81}())}N{if(H(B.3d)=="L"){B.3d=1h}(G(){u 80=2v.fr("7W");u ay="fq://fp.mG.fo/mF/mE/mD.is.aB.mC";u 2w=O;u ax=O;u az={};u i;R(i=0;i<80.K;i++){u 1d=80[i].fm("1d");if(!1d){2V}az[1d]=1h;if(1d.3C(/B.js$/)){2w=1d.2W(0,1d.mB("B.js"));ax=80[i]}}if(2w===O){F}u 6d=B.B.aA;R(u i=0;i<6d.K;i++){if(B[6d[i]]){2V}u 7Y=2w+6d[i]+".js";if(7Y in az){2V}if(2v.7Z&&2v.7Z.mA==ay){u s=2v.mz(ay,"7W");s.4p("id","my"+2w+6d[i]);s.4p("1d",7Y);s.4p("1J","mx/x-fk");ax.3t.2c(s)}N{2v.fl("<7W 1d=\\""+7Y+"\\" 1J=\\"7X/fk\\"></7W>")}}})()}',62,1976,'||||||||||||||||||||||||||||||var|||||||MochiKit||this||return|function|typeof|self|Base|length|undefined|arguments|else|null||elem|for|DOM||repr|Color|rval|res|new||||||throw|Iter|||||next|name|push|src|catch|try|lst|true|obj|node|Async|toString|false|string|hue|all|dojo|NAME|Format|msg|Signal|red|apply|JSAN|str|EXPORT|func|rgb|_425|DateTime|getElement|blue|hsl|Logging|LoggingPane|type|__repr__|_event|while|doc|bind|num|iter|extend|options|style|prototype|seq|EXPORT_OK|Visual|VERSION|_document||_434||replace|forwardCall|StopIteration|use||Math|max|min|join|appendChild|__new__|button|compare|date|key|val|_329|EXPORT_TAGS|update|win|pair|concat|_596|dom|map|req|Deferred|sync|document|base|Error|number|partial|indexOf||instanceof|sig|not|cls|list|fired|left|stop|break|logger|require|0px|window|shift|hsv|split|createElement|_423|callee|continue|substring|provide|_exportSymbols|ccc||_464|||||||||step|pred|_51|__compat__|common|nameFunctions|right|255|_517|case|100|_loggingPane|value|object|callback|TypeError|_251|_246|_113|parentNode|display|_522|parseInt|cssText|wrap|info|isArrayLike|end|match|top|border|depends|args|substr|mouse|code|_519|_443|className|level|err|frac|Date|_135|_85|nodeType|color|height|and|_window|fromRGB|charAt||asHSL|_444|message||||filter||LogMessage|AdapterRegistry|_366|imap|NotFound|locked|counter|_262|_messages|operator|cmp|_165|_161|pairs|arr|_52|setAttribute|computedStyle|compact|_614|_610|div|_576|_572|_observers|splice|_565|_566|_555|scrollTop|page|modifier|white|_541|fromHSL|_539|_535|_528|clone|parseFloat|_505|pre|_499|_497|_427|createTextNode|_446|attributeArray|_388|_379|updateNodeAttributes|_341|_326||box|errback|results|paused|chain|_285||ofs||NamedError|_175|_147|_122|_83|_54|_17|childNodes|_619|blend|defaultView|_574|_569|idx|_562|must|_554|_specialKeys|body|Coordinates|registerComparator|_521|_516|hex|mid|_478|width|loggingPane|LogLevel|nwin|head|url|setElementClass|callStack|path|dest|_359|boolean|register|Dimensions|DeferredLock|_313|addCallback|_310|waiting|onreadystatechange|_290|LOCALE|year|printfire|_214|log|_213|_211|pos|_155|_153||typeMatcher|listMinMax|_114|_40|itr|typ|_19|_634|_625|bottom|corners|_hasString|_612|_608|_595|1px|DIV|firstChild|innerHTML|padding|getPropertyValue|asRGB|connect|_disconnect|_559|middle|which|clientY|scrollLeft|clientX|client|charCode|relatedTarget|event|toColorPart|clampColorComponent|_537|_534|toFixed|_468|buildAndApplyFilter|_442|_441|_440|_439|position|_463|_447|removeChild|_449|uid|_428|_426|compliant|attributes|_422|_409|_412|_400|_395|_390|_389|_377|_375|_363|attr|ctx|repeat|_340|_339|isNotEmpty|_335|_333|opera|DeferredList|ret|_309|silentlyCancelled|canceller|_nextId|Array|_293|XMLHttpRequest|chained|_281|tail|_252|_225|msec|day|month|iso|Logger|_208|listeners|_200|_198|_194|_196|reduce|range|_169|_162|truth|registerRepr|_121|_70|_58|_56|_47|_45|_41|_13|_1|script|text|uri|documentElement|_630|_629|isTransparent|borderRightWidth|borderLeftWidth|marginRight|marginLeft|_602|_599|numSlices|solid|_597|block|SPAN|_579|fromString|offsetParent|signal|disconnectAll|disconnect|_570|_563|_557|preventDefault|stopPropagation|clientTop|clientLeft|pageY|pageX|keyCode|meta|ctrl|alt|target|black|_532|_524|floor|_513|_512|_500|_495|toLowerCase|_487|DEBUG|INFO|WARNING|FATAL|ERROR|colorTable|logFont|closed|inline|onclick|_438|_437|_445|RegExp|_452|space|title|updatetree|||||withDocument|withWindow||setDisplayForElement|none|renames|forEach|domConverters|escapeHTML|addElementClass|removeElementClass|once|_378|_380|_376|appendChildNodes|coerceToDOM|_355|opt|clientWidth|opacity|GenericError|fail|resultList|_307|_301|_fire|can|addCallbacks|_resback|percent|decimal|separator|twoDigitFloat|_274|_273|_264|_257|_250|_249|_254|_248|_243|_242|fmt|_240|_245|getTime|sec|hour|_209|slice|_206|iterateNextIter|registerIteratorFactory|arrayLikeIter|iteratorRegistry|takewhile|ifilterfalse|ifilter|_181|_176|_168|_166|_159|_tee|deque|arg|fun|jsonRegistry|reprString|reprRegistry|comparatorRegistry|urlEncode|_110|_108|cur|_95|_87|_71|im_preargs||_53|_57|_46|present|like|array|Argument|_15|_12|_632|_631|_633|SUBMODULES|only|_628|_627|_626|roundElement|_624|getElementsByTagAndClassName|_RoundCorners|_613|_whichSideBottom|_whichSideTop|_609|_605|_606|transparent|_borderColor|_604|_603|_601|_600|bgColor|fromElement|_594|_592|backgroundColor|_createCornerSlice|_createCorner|_590|_589|_587|_586|_581|_578|_577|currentDocument|fromBackground|errors|_568|_564||sigs|flattenArguments|_561|findIdentical|_560|_558||_556|attachEvent|addEventListener|funcOrStr|Event||_548|fromCharCode|String|_specialMacKeys|any|green|_namedColors|hsvToRGB|rgbToHSV|hslToRGB|rgbToHSL|_542|01|360|_fromColorString|_540|_536|_538|_529|_523|_518|fromComputedStyle|_511|_507|_508|_506|_501|fromHexString|_498|_496|_486|__class__|createLoggingPane|_459|_461|font|_462|_430|_435|1000|index|_460|getMessages|removeListener|_451||_457|_450|infore|_448|_456|logDebug|offsetHeight|span|input|_436|TR||HTML|open|alert|currentWindow|swapDOM|SELECT|FORM|INPUT|createDOMFunc|ignoreAttr|_421|call|_417|_410|_415|nodeName|_414|_413|emitHTML|good|_406|_399|_397|_393|_392|addLoadEvent|addToCallStack|_387|_386|_381|_382|_383|_373|_372|_369|createDOM|_365|Function|_360|_362|_358|_344|nodeWalk|formContents|_337|_338|_334|_332|offsetTop|offsetLeft|visibility|parentElement|||XMLHttpRequestError|BrowserComplianceError|CancelledError|AlreadyCalledError|evalJSONRequest|sendXMLHttpRequest|wait|doSimpleXMLHttpRequest|getXMLHttpRequest|succeed|_312|finishedCount|_308|_cbDeferred|_303|_297|queryString|_nothing|_289|XMLHTTP|ActiveXObject|eval|_284|_check|error|_279|default|rstrip|lstrip|formatLocale|roundToFixed|truncToFixed|_276|pow|_272|_271|_270|sign|_265|_263|tmp|_238|_232|toISODate|toISOTime|getFullYear|getDate|getMonth|_230|_padTwo|_228|useNativeConsole|_212|compareLogMessage|isLogMessage|unshift|_207||maxSize|_202|_199|logLevelAtLeast|console|hasIterateNext|iterateNext|arrayLike|groupby||exhaust|tee|dropwhile|applymap||islice|izip|cycle|count||_189|_188|_183|_185|_184|_186|_187|_182|identity|fetch|_180|_177|listMin|reprNumber|reprArrayLike|compareArrayLike|compareDateLike|isDateLike|findValue|_128|__export__|keyComparator|_124|_118|_93|_94|_90|_88|_84|_77|_68|_67|_66|_65|_60|im_func|_55|im_self|_48|_44|_42|_39|_36|_33|_27|_26|_25|_22|_24|_20|javascript|write|getAttribute||org|www|http|getElementsByTagName|roundClass|_623|_622|_621|_620|_isBottomRounded|_isTopRounded|_borderSize|_618|_617|_616|_615|_marginSize|_611|_setBorder|_607|_setMargin|blendedColor|_598|__unstable__wrapElement|fromParent|_setOptions|2px|borderColor|_593|hidden|overflow|_591|_588|_roundBottomCorners|_585|_roundTopCorners|_584|_583|_582|_580|_renderBorder|_roundCornersImpl|getComputedStyle|_doWrap|_571|_unloadCache|onunload|detachEvent|removeEventListener|_listener|objOrFunc|_552||_551|_549|onload|delete|112|KEY_F|KEY_|MINUS|KEY_SEMICOLON|KEY_DELETE|KEY_INSERT|KEY_ARROW_DOWN|KEY_ARROW_RIGHT|KEY_ARROW_UP||KEY_ARROW_LEFT|KEY_HOME|KEY_END|KEY_PAGE_DOWN|KEY_PAGE_UP|KEY_ENTER|KEY_NUM_PAD_CLEAR|63236|mousemove|contextmenu|click|mouseout|mouseover|_src|yellow|708090|purple|orange|ff00ff|magenta|778899|d3d3d3|808080|gray|696969|2f4f4f|darkred|a9a9a9|00ffff|cyan|brown|_547|_546||||compareRGB|_545||_543|fromHSLString|fromRGBString|round|_533|_hslValue|switch|background|_503|_504||fromName|_488|col|toRGBString|_hexString|_rgbString|_hslString|toPrecision|isLight||_481|_477|_476|_475|_474|_473|_469|_466|closePane|_458|onkeypress|_454|addListener|_455|close|test|scrollHeight|option|word|moz|_431|getElementById|html|pop|200|_|removeElement|showElement|hideElement|CANVAS|STRONG|FIELDSET|LEGEND|OPTGROUP|OPTION|TEXTAREA|LABEL|HR|BR|H3|H2|H1|PRE|TT|BUTTON|IMG|TH||TABLE||TFOOT|THEAD|TBODY|TD|LI|OL|||UL|checked|class|ignoreAttrFilter||_424|_419|nodeValue|scrapeText|_416|_418|sort|_411|toHTML|_404|hasElementClass|_403|_402|_401|swapElementClass|_398|_394|toggleElementClass|_391|focusOnLoad|_newCallStack|currentStyle|_371|replaceChildNodes|_364|_361|getNodeAttribute|_357|setNodeAttribute|_354|_352|_350|_353|toDOM|_346|_345|registerDOMConverter|selectedIndex|setElementPosition|setElementDimensions|tagName|absolute|getBoxObjectFor|getBoundingClientRect|elementPosition|_325|_324|_322|_323|offsetWidth|elementDimensions|clientHeight|innerWidth|getViewportDimensions|setOpacity|status|_317|deferred|_316|_newNamedError|maybeDeferred||gatherResults|callLater|loadJSONDoc|_311|consumeErrors|fireOnOneErrback|fireOnOneCallback|addErrback|_305|_304|_306|unlocked|release|_300|_299|_298|_296|_xhr_onreadystatechange|_xhr_canceller|304|responseText|Msxml2|addBoth|_pause|_continue|result|the|are|they|instances|_unpause|cancel|_280|_278|en_US|strip|percentFormat|twoDigitAverage|numberFormatter|_277|_275|isNaN|_259|_258|_260|_255|_253|_numberFormatter|_241|_239|_237|_236|_235|_234|_233|_231|toAmericanDate|toPaddedAmericanDate|americanDate|toISOTimestamp|isoTimestamp|isoDate|foot|sep||60000|_221|_isoRegexp|dispatchEvent|createEvent|warning|logWarning|fatal|logFatal|debug|logError|baseLog|_210|getMessageText|logToConsole|dispatchListeners|_204|_203|ident|_201|postError|alertListener|_197|_192|groupby_as_array|iextend|some|reversed|sorted|every|sum|_190|eat|_174|_173|_172|_171|_167|_163|_158|_157|_151|_144|_141||_139|_136|_134||_133|_132|zip|merge|isUndefined|isCallable|listMax|_131|_130|encodeURIComponent||_127|method|parseQueryString|evalJSON|registerJSON|serializeJSON|objMin|objMax|reverseKeyComparator|arrayEqual|objEqual|bindMethods|xfilter|xmap|isEmpty|isNull|isUndefinedOrNull|itemgetter|items|keys|setdefault|_126|_120|decodeURIComponent|_119|len|_109|_107|_104|_105|_101|_102|_98|||_100|_97|_96|_91|json|__json__|_82|_81|_80|_79|_76||_75|_74|_73|_69|_primitives|_64|_63||_62|_61|_59|_wrapDumbFunction|_49|_50|_31|_30|_21|_7|application|MochiKit_|createElementNS|namespaceURI|lastIndexOf|xul|there|gatekeeper|keymaster|mozilla|getElementsComputedStyle|_hasSingleTextChild|borderWidth|borderStyle|borderBottomWidth|borderTopWidth|borderTopStyle|fontSize|paddingBottom|insertBefore|paddingTop|marginBottom|marginTop|_575|property|see|handling|thrown|Multiple|element|||given|123|KEY_NUM_PAD_|105|KEY_APOSTROPHE|222|KEY_RIGHT_SQUARE_BRACKET|221|KEY_REVERSE_SOLIDUS|220|KEY_LEFT_SQUARE_BRACKET||219|KEY_GRAVE_ACCENT|192|KEY_SOLIDUS|191|KEY_FULL_STOP|190|KEY_HYPHEN|189||KEY_COMMA|188|KEY_EQUALS_SIGN|187|186|KEY_SCROLL_LOCK|145|KEY_NUM_LOCK|144|KEY_NUM_PAD_SOLIDUS|111|KEY_NUM_PAD_FULL_STOP|110|KEY_NUM_PAD_HYPHEN|109|KEY_NUM_PAD_PLUS_SIGN|107|KEY_NUM_PAD_ASTERISK|106|KEY_SELECT|KEY_WINDOWS_RIGHT|KEY_WINDOWS_LEFT|KEY_PRINT_SCREEN|KEY_SPACEBAR|KEY_ESCAPE|KEY_CAPS_LOCK|KEY_PAUSE|KEY_ALT|KEY_CTRL|KEY_SHIFT|KEY_TAB|KEY_BACKSPACE|63242|63272|63302|63233|63235|63232|63234|63273|63275|63277|63276|63289|returnValue|cancelBubble|keypress|KEY_UNKNOWN|keyup|keydown|shiftKey|metaKey||ctrlKey|altKey|toElement|srcElement|9acd32||yellowgreen||ffff00|f5f5f5|whitesmoke||ffffff|f5deb3|wheat|ee82ee|violet|40e0d0|turquoise|ff6347|tomato|d8bfd8|thistle|008080|teal|d2b48c|tan|4682b4|steelblue|00ff7f|springgreen|fffafa|snow|slategrey|slategray|6a5acd|slateblue|87ceeb|skyblue|c0c0c0|silver|a0522d|sienna|fff5ee|seashell|2e8b57|seagreen|f4a460|sandybrown|fa8072|salmon|8b4513|saddlebrown|4169e1|royalblue|bc8f8f|rosybrown|ff0000|800080|b0e0e6|powderblue|dda0dd|plum|ffc0cb|pink|cd853f||peru|ffdab9|peachpuff|ffefd5|papayawhip|db7093|palevioletred|afeeee|paleturquoise|98fb98|palegreen|eee8aa||palegoldenrod|da70d6|orchid|ff4500|orangered|ffa500|6b8e23|olivedrab|808000|olive|fdf5e6|oldlace|000080|navy|ffdead|navajowhite|ffe4b5|moccasin|ffe4e1|mistyrose|f5fffa|mintcream|191970|midnightblue|c71585|mediumvioletred|48d1cc|mediumturquoise|00fa9a|mediumspringgreen|7b68ee|mediumslateblue|3cb371|mediumseagreen|9370db|mediumpurple|ba55d3|mediumorchid|0000cd|mediumblue|66cdaa|mediumaquamarine|800000|maroon|faf0e6|linen|32cd32|limegreen|00ff00|lime|ffffe0|lightyellow|b0c4de|lightsteelblue|lightslategrey|lightslategray||87cefa|lightskyblue|20b2aa|lightseagreen|ffa07a|lightsalmon|ffb6c1|lightpink|lightgrey|90ee90|lightgreen|lightgray|fafad2|lightgoldenrodyellow|e0ffff|lightcyan|f08080|lightcoral|add8e6|lightblue|fffacd|lemonchiffon|7cfc00|lawngreen|fff0f5|lavenderblush|e6e6fa|lavender|f0e68c|khaki|fffff0|ivory|4b0082|indigo|cd5c5c|indianred|ff69b4|hotpink|f0fff0|honeydew|grey|adff2f|greenyellow|008000|daa520|goldenrod|ffd700||gold|f8f8ff|ghostwhite|dcdcdc|gainsboro|fuchsia|228b22|forestgreen|fffaf0|floralwhite|b22222|firebrick|1e90ff|dodgerblue|dimgrey|dimgray|00bfff|deepskyblue|ff1493|deeppink|9400d3|darkviolet|00ced1|darkturquoise|darkslategrey|darkslategray|483d8b|darkslateblue|8fbc8f|darkseagreen|e9967a|darksalmon|8b0000|9932cc|darkorchid|ff8c00|darkorange|556b2f|darkolivegreen|8b008b|darkmagenta|bdb76b|darkkhaki|darkgrey|006400|darkgreen|darkgray|b8860b|darkgoldenrod|008b8b|darkcyan|00008b|darkblue|dc143c|crimson|fff8dc|cornsilk|6495ed|cornflowerblue|ff7f50|coral|d2691e||chocolate|7fff00|chartreuse|5f9ea0|cadetblue|deb887|burlywood|a52a2a|8a2be2|blueviolet|0000ff|ffebcd||blanchedalmond|000000|ffe4c4|bisque|f5f5dc|beige|f0ffff|azure|7fffd4|aquamarine|aqua|faebd7|antiquewhite|f0f8ff|aliceblue|lightGray|darkGray|namedColors|blackColor|fromText|whiteColor|_510|_509|PI|rad|deg|transparentColor|_494|_493|_492|fromHSV|_491|_490|_489|asHSV|toHexString|rgba|hsla|toHSLString|isDark|lighterColorWithLevel|darkerColorWithLevel|colorWithLightness|colorWithSaturation|colorWithHue|colorWithAlpha||serif|sans|Verdana||8pt|8em|auto||Close|Clear||Load|Filter||10em||fixed|regex|emergency|line|margin|_Listener|dtd|loose|html4|w3|EN|Transitional|DTD|W3C|PUBLIC|DOCTYPE|blocking|due|debugging|able|Not|resizable|dependent|href|location|_MochiKit_LoggingPane|_429|canvas|strong|fieldset|legend|optgroup|select|form|textarea|label|img|table|tfoot|thead|tbody|htmlFor||useMap|usemap|defaultChecked|hasChildNodes|quot|amp|_405|focus|replaceChild|checkbox||radio|_win|BODY||safari|version|userAgent|navigator|innerHeight|alpha|khtml|Tried|acquire|clearTimeout|setTimeout|GET|ignore|send|abort|failed|Request|readyState|support|does|Browser|Microsoft|_288|_287|used|Deferreds|Chained|success|unfired|fr_FR|de_DE|00|abs|search|pattern|Invalid|getTimezoneOffset|getSeconds|getMinutes|getHours|UTC|3600000|initEvent|Events|debuggingBookmarklet|MESSAGES|LAST|_205|clear|ninfo|nlevel|timestamp|reverse|takes|initial|with|sequence|empty|iterable|numbers|dateLike|escape|find|forward|unregister|unescape|Object|compared|item|contains|logor|logand|cle|clt|cge|cgt|cne|ceq|zrshift|rshift|lshift|xor|mul|mod|sub|add|neg|lognot|_9|_2'.split('|'),0,{})
+
+
+/*
+ * jQuery 1.2.1 - New Wave Javascript
+ *
+ * Copyright (c) 2007 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2007-09-16 23:42:06 -0400 (Sun, 16 Sep 2007) $
+ * $Rev: 3353 $
+ */
+
+var decompressedJQuery = function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(G(){9(1m E!="W")H w=E;H E=18.15=G(a,b){I 6 7u E?6.5N(a,b):1u E(a,b)};9(1m $!="W")H D=$;18.$=E;H u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;E.1b=E.3A={5N:G(c,a){c=c||U;9(1m c=="1M"){H m=u.2S(c);9(m&&(m[1]||!a)){9(m[1])c=E.4D([m[1]],a);J{H b=U.3S(m[3]);9(b)9(b.22!=m[3])I E().1Y(c);J{6[0]=b;6.K=1;I 6}J c=[]}}J I 1u E(a).1Y(c)}J 9(E.1n(c))I 1u E(U)[E.1b.2d?"2d":"39"](c);I 6.6v(c.1c==1B&&c||(c.4c||c.K&&c!=18&&!c.1y&&c[0]!=W&&c[0].1y)&&E.2h(c)||[c])},4c:"1.2.1",7Y:G(){I 6.K},K:0,21:G(a){I a==W?E.2h(6):6[a]},2o:G(a){H b=E(a);b.4Y=6;I b},6v:G(a){6.K=0;1B.3A.1a.16(6,a);I 6},N:G(a,b){I E.N(6,a,b)},4I:G(a){H b=-1;6.N(G(i){9(6==a)b=i});I b},1x:G(f,d,e){H c=f;9(f.1c==3X)9(d==W)I 6.K&&E[e||"1x"](6[0],f)||W;J{c={};c[f]=d}I 6.N(G(a){L(H b 1i c)E.1x(e?6.R:6,b,E.1e(6,c[b],e,a,b))})},17:G(b,a){I 6.1x(b,a,"3C")},2g:G(e){9(1m e!="5i"&&e!=S)I 6.4n().3g(U.6F(e));H t="";E.N(e||6,G(){E.N(6.3j,G(){9(6.1y!=8)t+=6.1y!=1?6.6x:E.1b.2g([6])})});I t},5m:G(b){9(6[0])E(b,6[0].3H).6u().3d(6[0]).1X(G(){H a=6;1W(a.1w)a=a.1w;I a}).3g(6);I 6},8m:G(a){I 6.N(G(){E(6).6q().5m(a)})},8d:G(a){I 6.N(G(){E(6).5m(a)})},3g:G(){I 6.3z(1q,Q,1,G(a){6.58(a)})},6j:G(){I 6.3z(1q,Q,-1,G(a){6.3d(a,6.1w)})},6g:G(){I 6.3z(1q,P,1,G(a){6.12.3d(a,6)})},50:G(){I 6.3z(1q,P,-1,G(a){6.12.3d(a,6.2q)})},2D:G(){I 6.4Y||E([])},1Y:G(t){H b=E.1X(6,G(a){I E.1Y(t,a)});I 6.2o(/[^+>] [^+>]/.14(t)||t.1g("..")>-1?E.4V(b):b)},6u:G(e){H f=6.1X(G(){I 6.67?E(6.67)[0]:6.4R(Q)});H d=f.1Y("*").4O().N(G(){9(6[F]!=W)6[F]=S});9(e===Q)6.1Y("*").4O().N(G(i){H c=E.M(6,"2P");L(H a 1i c)L(H b 1i c[a])E.1j.1f(d[i],a,c[a][b],c[a][b].M)});I f},1E:G(t){I 6.2o(E.1n(t)&&E.2W(6,G(b,a){I t.16(b,[a])})||E.3m(t,6))},5V:G(t){I 6.2o(t.1c==3X&&E.3m(t,6,Q)||E.2W(6,G(a){I(t.1c==1B||t.4c)?E.2A(a,t)<0:a!=t}))},1f:G(t){I 6.2o(E.1R(6.21(),t.1c==3X?E(t).21():t.K!=W&&(!t.11||E.11(t,"2Y"))?t:[t]))},3t:G(a){I a?E.3m(a,6).K>0:P},7c:G(a){I 6.3t("."+a)},3i:G(b){9(b==W){9(6.K){H c=6[0];9(E.11(c,"24")){H e=c.4Z,a=[],Y=c.Y,2G=c.O=="24-2G";9(e<0)I S;L(H i=2G?e:0,33=2G?e+1:Y.K;i<33;i++){H d=Y[i];9(d.26){H b=E.V.1h&&!d.9V["1Q"].9L?d.2g:d.1Q;9(2G)I b;a.1a(b)}}I a}J I 6[0].1Q.1p(/\\r/g,"")}}J I 6.N(G(){9(b.1c==1B&&/4k|5j/.14(6.O))6.2Q=(E.2A(6.1Q,b)>=0||E.2A(6.2H,b)>=0);J 9(E.11(6,"24")){H a=b.1c==1B?b:[b];E("9h",6).N(G(){6.26=(E.2A(6.1Q,a)>=0||E.2A(6.2g,a)>=0)});9(!a.K)6.4Z=-1}J 6.1Q=b})},4o:G(a){I a==W?(6.K?6[0].3O:S):6.4n().3g(a)},6H:G(a){I 6.50(a).28()},6E:G(i){I 6.2J(i,i+1)},2J:G(){I 6.2o(1B.3A.2J.16(6,1q))},1X:G(b){I 6.2o(E.1X(6,G(a,i){I b.2O(a,i,a)}))},4O:G(){I 6.1f(6.4Y)},3z:G(f,d,g,e){H c=6.K>1,a;I 6.N(G(){9(!a){a=E.4D(f,6.3H);9(g<0)a.8U()}H b=6;9(d&&E.11(6,"1I")&&E.11(a[0],"4m"))b=6.4l("1K")[0]||6.58(U.5B("1K"));E.N(a,G(){H a=c?6.4R(Q):6;9(!5A(0,a))e.2O(b,a)})})}};G 5A(i,b){H a=E.11(b,"1J");9(a){9(b.3k)E.3G({1d:b.3k,3e:P,1V:"1J"});J E.5f(b.2g||b.6s||b.3O||"");9(b.12)b.12.3b(b)}J 9(b.1y==1)E("1J",b).N(5A);I a}E.1k=E.1b.1k=G(){H c=1q[0]||{},a=1,2c=1q.K,5e=P;9(c.1c==8o){5e=c;c=1q[1]||{}}9(2c==1){c=6;a=0}H b;L(;a<2c;a++)9((b=1q[a])!=S)L(H i 1i b){9(c==b[i])6r;9(5e&&1m b[i]==\'5i\'&&c[i])E.1k(c[i],b[i]);J 9(b[i]!=W)c[i]=b[i]}I c};H F="15"+(1u 3D()).3B(),6p=0,5c={};E.1k({8a:G(a){18.$=D;9(a)18.15=w;I E},1n:G(a){I!!a&&1m a!="1M"&&!a.11&&a.1c!=1B&&/G/i.14(a+"")},4a:G(a){I a.2V&&!a.1G||a.37&&a.3H&&!a.3H.1G},5f:G(a){a=E.36(a);9(a){9(18.6l)18.6l(a);J 9(E.V.1N)18.56(a,0);J 3w.2O(18,a)}},11:G(b,a){I b.11&&b.11.27()==a.27()},1L:{},M:G(c,d,b){c=c==18?5c:c;H a=c[F];9(!a)a=c[F]=++6p;9(d&&!E.1L[a])E.1L[a]={};9(b!=W)E.1L[a][d]=b;I d?E.1L[a][d]:a},30:G(c,b){c=c==18?5c:c;H a=c[F];9(b){9(E.1L[a]){2E E.1L[a][b];b="";L(b 1i E.1L[a])1T;9(!b)E.30(c)}}J{2a{2E c[F]}29(e){9(c.53)c.53(F)}2E E.1L[a]}},N:G(a,b,c){9(c){9(a.K==W)L(H i 1i a)b.16(a[i],c);J L(H i=0,48=a.K;i<48;i++)9(b.16(a[i],c)===P)1T}J{9(a.K==W)L(H i 1i a)b.2O(a[i],i,a[i]);J L(H i=0,48=a.K,3i=a[0];i<48&&b.2O(3i,i,3i)!==P;3i=a[++i]){}}I a},1e:G(c,b,d,e,a){9(E.1n(b))b=b.2O(c,[e]);H f=/z-?4I|7T-?7Q|1r|69|7P-?1H/i;I b&&b.1c==4W&&d=="3C"&&!f.14(a)?b+"2T":b},1o:{1f:G(b,c){E.N((c||"").2l(/\\s+/),G(i,a){9(!E.1o.3K(b.1o,a))b.1o+=(b.1o?" ":"")+a})},28:G(b,c){b.1o=c!=W?E.2W(b.1o.2l(/\\s+/),G(a){I!E.1o.3K(c,a)}).66(" "):""},3K:G(t,c){I E.2A(c,(t.1o||t).3s().2l(/\\s+/))>-1}},2k:G(e,o,f){L(H i 1i o){e.R["3r"+i]=e.R[i];e.R[i]=o[i]}f.16(e,[]);L(H i 1i o)e.R[i]=e.R["3r"+i]},17:G(e,p){9(p=="1H"||p=="2N"){H b={},42,41,d=["7J","7I","7G","7F"];E.N(d,G(){b["7C"+6]=0;b["7B"+6+"5Z"]=0});E.2k(e,b,G(){9(E(e).3t(\':3R\')){42=e.7A;41=e.7w}J{e=E(e.4R(Q)).1Y(":4k").5W("2Q").2D().17({4C:"1P",2X:"4F",19:"2Z",7o:"0",1S:"0"}).5R(e.12)[0];H a=E.17(e.12,"2X")||"3V";9(a=="3V")e.12.R.2X="7g";42=e.7e;41=e.7b;9(a=="3V")e.12.R.2X="3V";e.12.3b(e)}});I p=="1H"?42:41}I E.3C(e,p)},3C:G(h,j,i){H g,2w=[],2k=[];G 3n(a){9(!E.V.1N)I P;H b=U.3o.3Z(a,S);I!b||b.4y("3n")==""}9(j=="1r"&&E.V.1h){g=E.1x(h.R,"1r");I g==""?"1":g}9(j.1t(/4u/i))j=y;9(!i&&h.R[j])g=h.R[j];J 9(U.3o&&U.3o.3Z){9(j.1t(/4u/i))j="4u";j=j.1p(/([A-Z])/g,"-$1").2p();H d=U.3o.3Z(h,S);9(d&&!3n(h))g=d.4y(j);J{L(H a=h;a&&3n(a);a=a.12)2w.4w(a);L(a=0;a<2w.K;a++)9(3n(2w[a])){2k[a]=2w[a].R.19;2w[a].R.19="2Z"}g=j=="19"&&2k[2w.K-1]!=S?"2s":U.3o.3Z(h,S).4y(j)||"";L(a=0;a<2k.K;a++)9(2k[a]!=S)2w[a].R.19=2k[a]}9(j=="1r"&&g=="")g="1"}J 9(h.3Q){H f=j.1p(/\\-(\\w)/g,G(m,c){I c.27()});g=h.3Q[j]||h.3Q[f];9(!/^\\d+(2T)?$/i.14(g)&&/^\\d/.14(g)){H k=h.R.1S;H e=h.4v.1S;h.4v.1S=h.3Q.1S;h.R.1S=g||0;g=h.R.71+"2T";h.R.1S=k;h.4v.1S=e}}I g},4D:G(a,e){H r=[];e=e||U;E.N(a,G(i,d){9(!d)I;9(d.1c==4W)d=d.3s();9(1m d=="1M"){d=d.1p(/(<(\\w+)[^>]*?)\\/>/g,G(m,a,b){I b.1t(/^(70|6Z|6Y|9Q|4t|9N|9K|3a|9G|9E)$/i)?m:a+"></"+b+">"});H s=E.36(d).2p(),1s=e.5B("1s"),2x=[];H c=!s.1g("<9y")&&[1,"<24>","</24>"]||!s.1g("<9w")&&[1,"<6T>","</6T>"]||s.1t(/^<(9u|1K|9t|9r|9p)/)&&[1,"<1I>","</1I>"]||!s.1g("<4m")&&[2,"<1I><1K>","</1K></1I>"]||(!s.1g("<9m")||!s.1g("<9k"))&&[3,"<1I><1K><4m>","</4m></1K></1I>"]||!s.1g("<6Y")&&[2,"<1I><1K></1K><6L>","</6L></1I>"]||E.V.1h&&[1,"1s<1s>","</1s>"]||[0,"",""];1s.3O=c[1]+d+c[2];1W(c[0]--)1s=1s.5p;9(E.V.1h){9(!s.1g("<1I")&&s.1g("<1K")<0)2x=1s.1w&&1s.1w.3j;J 9(c[1]=="<1I>"&&s.1g("<1K")<0)2x=1s.3j;L(H n=2x.K-1;n>=0;--n)9(E.11(2x[n],"1K")&&!2x[n].3j.K)2x[n].12.3b(2x[n]);9(/^\\s/.14(d))1s.3d(e.6F(d.1t(/^\\s*/)[0]),1s.1w)}d=E.2h(1s.3j)}9(0===d.K&&(!E.11(d,"2Y")&&!E.11(d,"24")))I;9(d[0]==W||E.11(d,"2Y")||d.Y)r.1a(d);J r=E.1R(r,d)});I r},1x:G(c,d,a){H e=E.4a(c)?{}:E.5o;9(d=="26"&&E.V.1N)c.12.4Z;9(e[d]){9(a!=W)c[e[d]]=a;I c[e[d]]}J 9(E.V.1h&&d=="R")I E.1x(c.R,"9e",a);J 9(a==W&&E.V.1h&&E.11(c,"2Y")&&(d=="9d"||d=="9a"))I c.97(d).6x;J 9(c.37){9(a!=W){9(d=="O"&&E.11(c,"4t")&&c.12)6G"O 94 93\'t 92 91";c.90(d,a)}9(E.V.1h&&/6C|3k/.14(d)&&!E.4a(c))I c.4p(d,2);I c.4p(d)}J{9(d=="1r"&&E.V.1h){9(a!=W){c.69=1;c.1E=(c.1E||"").1p(/6O\\([^)]*\\)/,"")+(3I(a).3s()=="8S"?"":"6O(1r="+a*6A+")")}I c.1E?(3I(c.1E.1t(/1r=([^)]*)/)[1])/6A).3s():""}d=d.1p(/-([a-z])/8Q,G(z,b){I b.27()});9(a!=W)c[d]=a;I c[d]}},36:G(t){I(t||"").1p(/^\\s+|\\s+$/g,"")},2h:G(a){H r=[];9(1m a!="8P")L(H i=0,2c=a.K;i<2c;i++)r.1a(a[i]);J r=a.2J(0);I r},2A:G(b,a){L(H i=0,2c=a.K;i<2c;i++)9(a[i]==b)I i;I-1},1R:G(a,b){9(E.V.1h){L(H i=0;b[i];i++)9(b[i].1y!=8)a.1a(b[i])}J L(H i=0;b[i];i++)a.1a(b[i]);I a},4V:G(b){H r=[],2f={};2a{L(H i=0,6y=b.K;i<6y;i++){H a=E.M(b[i]);9(!2f[a]){2f[a]=Q;r.1a(b[i])}}}29(e){r=b}I r},2W:G(b,a,c){9(1m a=="1M")a=3w("P||G(a,i){I "+a+"}");H d=[];L(H i=0,4g=b.K;i<4g;i++)9(!c&&a(b[i],i)||c&&!a(b[i],i))d.1a(b[i]);I d},1X:G(c,b){9(1m b=="1M")b=3w("P||G(a){I "+b+"}");H d=[];L(H i=0,4g=c.K;i<4g;i++){H a=b(c[i],i);9(a!==S&&a!=W){9(a.1c!=1B)a=[a];d=d.8M(a)}}I d}});H v=8K.8I.2p();E.V={4s:(v.1t(/.+(?:8F|8E|8C|8B)[\\/: ]([\\d.]+)/)||[])[1],1N:/6w/.14(v),34:/34/.14(v),1h:/1h/.14(v)&&!/34/.14(v),35:/35/.14(v)&&!/(8z|6w)/.14(v)};H y=E.V.1h?"4h":"5h";E.1k({5g:!E.V.1h||U.8y=="8x",4h:E.V.1h?"4h":"5h",5o:{"L":"8w","8v":"1o","4u":y,5h:y,4h:y,3O:"3O",1o:"1o",1Q:"1Q",3c:"3c",2Q:"2Q",8u:"8t",26:"26",8s:"8r"}});E.N({1D:"a.12",8q:"15.4e(a,\'12\')",8p:"15.2I(a,2,\'2q\')",8n:"15.2I(a,2,\'4d\')",8l:"15.4e(a,\'2q\')",8k:"15.4e(a,\'4d\')",8j:"15.5d(a.12.1w,a)",8i:"15.5d(a.1w)",6q:"15.11(a,\'8h\')?a.8f||a.8e.U:15.2h(a.3j)"},G(i,n){E.1b[i]=G(a){H b=E.1X(6,n);9(a&&1m a=="1M")b=E.3m(a,b);I 6.2o(E.4V(b))}});E.N({5R:"3g",8c:"6j",3d:"6g",8b:"50",89:"6H"},G(i,n){E.1b[i]=G(){H a=1q;I 6.N(G(){L(H j=0,2c=a.K;j<2c;j++)E(a[j])[n](6)})}});E.N({5W:G(a){E.1x(6,a,"");6.53(a)},88:G(c){E.1o.1f(6,c)},87:G(c){E.1o.28(6,c)},86:G(c){E.1o[E.1o.3K(6,c)?"28":"1f"](6,c)},28:G(a){9(!a||E.1E(a,[6]).r.K){E.30(6);6.12.3b(6)}},4n:G(){E("*",6).N(G(){E.30(6)});1W(6.1w)6.3b(6.1w)}},G(i,n){E.1b[i]=G(){I 6.N(n,1q)}});E.N(["85","5Z"],G(i,a){H n=a.2p();E.1b[n]=G(h){I 6[0]==18?E.V.1N&&3y["84"+a]||E.5g&&38.33(U.2V["5a"+a],U.1G["5a"+a])||U.1G["5a"+a]:6[0]==U?38.33(U.1G["6n"+a],U.1G["6m"+a]):h==W?(6.K?E.17(6[0],n):S):6.17(n,h.1c==3X?h:h+"2T")}});H C=E.V.1N&&3x(E.V.4s)<83?"(?:[\\\\w*57-]|\\\\\\\\.)":"(?:[\\\\w\\82-\\81*57-]|\\\\\\\\.)",6k=1u 47("^>\\\\s*("+C+"+)"),6i=1u 47("^("+C+"+)(#)("+C+"+)"),6h=1u 47("^([#.]?)("+C+"*)");E.1k({55:{"":"m[2]==\'*\'||15.11(a,m[2])","#":"a.4p(\'22\')==m[2]",":":{80:"i<m[3]-0",7Z:"i>m[3]-0",2I:"m[3]-0==i",6E:"m[3]-0==i",3v:"i==0",3u:"i==r.K-1",6f:"i%2==0",6e:"i%2","3v-46":"a.12.4l(\'*\')[0]==a","3u-46":"15.2I(a.12.5p,1,\'4d\')==a","7X-46":"!15.2I(a.12.5p,2,\'4d\')",1D:"a.1w",4n:"!a.1w",7W:"(a.6s||a.7V||15(a).2g()||\'\').1g(m[3])>=0",3R:\'"1P"!=a.O&&15.17(a,"19")!="2s"&&15.17(a,"4C")!="1P"\',1P:\'"1P"==a.O||15.17(a,"19")=="2s"||15.17(a,"4C")=="1P"\',7U:"!a.3c",3c:"a.3c",2Q:"a.2Q",26:"a.26||15.1x(a,\'26\')",2g:"\'2g\'==a.O",4k:"\'4k\'==a.O",5j:"\'5j\'==a.O",54:"\'54\'==a.O",52:"\'52\'==a.O",51:"\'51\'==a.O",6d:"\'6d\'==a.O",6c:"\'6c\'==a.O",2r:\'"2r"==a.O||15.11(a,"2r")\',4t:"/4t|24|6b|2r/i.14(a.11)",3K:"15.1Y(m[3],a).K",7S:"/h\\\\d/i.14(a.11)",7R:"15.2W(15.32,G(1b){I a==1b.T;}).K"}},6a:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1u 47("^([:.#]*)("+C+"+)")],3m:G(a,c,b){H d,2b=[];1W(a&&a!=d){d=a;H f=E.1E(a,c,b);a=f.t.1p(/^\\s*,\\s*/,"");2b=b?c=f.r:E.1R(2b,f.r)}I 2b},1Y:G(t,o){9(1m t!="1M")I[t];9(o&&!o.1y)o=S;o=o||U;H d=[o],2f=[],3u;1W(t&&3u!=t){H r=[];3u=t;t=E.36(t);H l=P;H g=6k;H m=g.2S(t);9(m){H p=m[1].27();L(H i=0;d[i];i++)L(H c=d[i].1w;c;c=c.2q)9(c.1y==1&&(p=="*"||c.11.27()==p.27()))r.1a(c);d=r;t=t.1p(g,"");9(t.1g(" ")==0)6r;l=Q}J{g=/^([>+~])\\s*(\\w*)/i;9((m=g.2S(t))!=S){r=[];H p=m[2],1R={};m=m[1];L(H j=0,31=d.K;j<31;j++){H n=m=="~"||m=="+"?d[j].2q:d[j].1w;L(;n;n=n.2q)9(n.1y==1){H h=E.M(n);9(m=="~"&&1R[h])1T;9(!p||n.11.27()==p.27()){9(m=="~")1R[h]=Q;r.1a(n)}9(m=="+")1T}}d=r;t=E.36(t.1p(g,""));l=Q}}9(t&&!l){9(!t.1g(",")){9(o==d[0])d.44();2f=E.1R(2f,d);r=d=[o];t=" "+t.68(1,t.K)}J{H k=6i;H m=k.2S(t);9(m){m=[0,m[2],m[3],m[1]]}J{k=6h;m=k.2S(t)}m[2]=m[2].1p(/\\\\/g,"");H f=d[d.K-1];9(m[1]=="#"&&f&&f.3S&&!E.4a(f)){H q=f.3S(m[2]);9((E.V.1h||E.V.34)&&q&&1m q.22=="1M"&&q.22!=m[2])q=E(\'[@22="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.11(q,m[3]))?[q]:[]}J{L(H i=0;d[i];i++){H a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];9(a=="*"&&d[i].11.2p()=="5i")a="3a";r=E.1R(r,d[i].4l(a))}9(m[1]==".")r=E.4X(r,m[2]);9(m[1]=="#"){H e=[];L(H i=0;r[i];i++)9(r[i].4p("22")==m[2]){e=[r[i]];1T}r=e}d=r}t=t.1p(k,"")}}9(t){H b=E.1E(t,r);d=r=b.r;t=E.36(b.t)}}9(t)d=[];9(d&&o==d[0])d.44();2f=E.1R(2f,d);I 2f},4X:G(r,m,a){m=" "+m+" ";H c=[];L(H i=0;r[i];i++){H b=(" "+r[i].1o+" ").1g(m)>=0;9(!a&&b||a&&!b)c.1a(r[i])}I c},1E:G(t,r,h){H d;1W(t&&t!=d){d=t;H p=E.6a,m;L(H i=0;p[i];i++){m=p[i].2S(t);9(m){t=t.7O(m[0].K);m[2]=m[2].1p(/\\\\/g,"");1T}}9(!m)1T;9(m[1]==":"&&m[2]=="5V")r=E.1E(m[3],r,Q).r;J 9(m[1]==".")r=E.4X(r,m[2],h);J 9(m[1]=="["){H g=[],O=m[3];L(H i=0,31=r.K;i<31;i++){H a=r[i],z=a[E.5o[m[2]]||m[2]];9(z==S||/6C|3k|26/.14(m[2]))z=E.1x(a,m[2])||\'\';9((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1g(m[5])||O=="$="&&z.68(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1g(m[5])>=0)^h)g.1a(a)}r=g}J 9(m[1]==":"&&m[2]=="2I-46"){H e={},g=[],14=/(\\d*)n\\+?(\\d*)/.2S(m[3]=="6f"&&"2n"||m[3]=="6e"&&"2n+1"||!/\\D/.14(m[3])&&"n+"+m[3]||m[3]),3v=(14[1]||1)-0,d=14[2]-0;L(H i=0,31=r.K;i<31;i++){H j=r[i],12=j.12,22=E.M(12);9(!e[22]){H c=1;L(H n=12.1w;n;n=n.2q)9(n.1y==1)n.4U=c++;e[22]=Q}H b=P;9(3v==1){9(d==0||j.4U==d)b=Q}J 9((j.4U+d)%3v==0)b=Q;9(b^h)g.1a(j)}r=g}J{H f=E.55[m[1]];9(1m f!="1M")f=E.55[m[1]][m[2]];f=3w("P||G(a,i){I "+f+"}");r=E.2W(r,f,h)}}I{r:r,t:t}},4e:G(b,c){H d=[];H a=b[c];1W(a&&a!=U){9(a.1y==1)d.1a(a);a=a[c]}I d},2I:G(a,e,c,b){e=e||1;H d=0;L(;a;a=a[c])9(a.1y==1&&++d==e)1T;I a},5d:G(n,a){H r=[];L(;n;n=n.2q){9(n.1y==1&&(!a||n!=a))r.1a(n)}I r}});E.1j={1f:G(g,e,c,h){9(E.V.1h&&g.4j!=W)g=18;9(!c.2u)c.2u=6.2u++;9(h!=W){H d=c;c=G(){I d.16(6,1q)};c.M=h;c.2u=d.2u}H i=e.2l(".");e=i[0];c.O=i[1];H b=E.M(g,"2P")||E.M(g,"2P",{});H f=E.M(g,"2t",G(){H a;9(1m E=="W"||E.1j.4T)I a;a=E.1j.2t.16(g,1q);I a});H j=b[e];9(!j){j=b[e]={};9(g.4S)g.4S(e,f,P);J g.7N("43"+e,f)}j[c.2u]=c;6.1Z[e]=Q},2u:1,1Z:{},28:G(d,c,b){H e=E.M(d,"2P"),2L,4I;9(1m c=="1M"){H a=c.2l(".");c=a[0]}9(e){9(c&&c.O){b=c.4Q;c=c.O}9(!c){L(c 1i e)6.28(d,c)}J 9(e[c]){9(b)2E e[c][b.2u];J L(b 1i e[c])9(!a[1]||e[c][b].O==a[1])2E e[c][b];L(2L 1i e[c])1T;9(!2L){9(d.4P)d.4P(c,E.M(d,"2t"),P);J d.7M("43"+c,E.M(d,"2t"));2L=S;2E e[c]}}L(2L 1i e)1T;9(!2L){E.30(d,"2P");E.30(d,"2t")}}},1F:G(d,b,e,c,f){b=E.2h(b||[]);9(!e){9(6.1Z[d])E("*").1f([18,U]).1F(d,b)}J{H a,2L,1b=E.1n(e[d]||S),4N=!b[0]||!b[0].2M;9(4N)b.4w(6.4M({O:d,2m:e}));b[0].O=d;9(E.1n(E.M(e,"2t")))a=E.M(e,"2t").16(e,b);9(!1b&&e["43"+d]&&e["43"+d].16(e,b)===P)a=P;9(4N)b.44();9(f&&f.16(e,b)===P)a=P;9(1b&&c!==P&&a!==P&&!(E.11(e,\'a\')&&d=="4L")){6.4T=Q;e[d]()}6.4T=P}I a},2t:G(d){H a;d=E.1j.4M(d||18.1j||{});H b=d.O.2l(".");d.O=b[0];H c=E.M(6,"2P")&&E.M(6,"2P")[d.O],3q=1B.3A.2J.2O(1q,1);3q.4w(d);L(H j 1i c){3q[0].4Q=c[j];3q[0].M=c[j].M;9(!b[1]||c[j].O==b[1]){H e=c[j].16(6,3q);9(a!==P)a=e;9(e===P){d.2M();d.3p()}}}9(E.V.1h)d.2m=d.2M=d.3p=d.4Q=d.M=S;I a},4M:G(c){H a=c;c=E.1k({},a);c.2M=G(){9(a.2M)a.2M();a.7L=P};c.3p=G(){9(a.3p)a.3p();a.7K=Q};9(!c.2m&&c.65)c.2m=c.65;9(E.V.1N&&c.2m.1y==3)c.2m=a.2m.12;9(!c.4K&&c.4J)c.4K=c.4J==c.2m?c.7H:c.4J;9(c.64==S&&c.63!=S){H e=U.2V,b=U.1G;c.64=c.63+(e&&e.2R||b.2R||0);c.7E=c.7D+(e&&e.2B||b.2B||0)}9(!c.3Y&&(c.61||c.60))c.3Y=c.61||c.60;9(!c.5F&&c.5D)c.5F=c.5D;9(!c.3Y&&c.2r)c.3Y=(c.2r&1?1:(c.2r&2?3:(c.2r&4?2:0)));I c}};E.1b.1k({3W:G(c,a,b){I c=="5Y"?6.2G(c,a,b):6.N(G(){E.1j.1f(6,c,b||a,b&&a)})},2G:G(d,b,c){I 6.N(G(){E.1j.1f(6,d,G(a){E(6).5X(a);I(c||b).16(6,1q)},c&&b)})},5X:G(a,b){I 6.N(G(){E.1j.28(6,a,b)})},1F:G(c,a,b){I 6.N(G(){E.1j.1F(c,a,6,Q,b)})},7x:G(c,a,b){9(6[0])I E.1j.1F(c,a,6[0],P,b)},25:G(){H a=1q;I 6.4L(G(e){6.4H=0==6.4H?1:0;e.2M();I a[6.4H].16(6,[e])||P})},7v:G(f,g){G 4G(e){H p=e.4K;1W(p&&p!=6)2a{p=p.12}29(e){p=6};9(p==6)I P;I(e.O=="4x"?f:g).16(6,[e])}I 6.4x(4G).5U(4G)},2d:G(f){5T();9(E.3T)f.16(U,[E]);J E.3l.1a(G(){I f.16(6,[E])});I 6}});E.1k({3T:P,3l:[],2d:G(){9(!E.3T){E.3T=Q;9(E.3l){E.N(E.3l,G(){6.16(U)});E.3l=S}9(E.V.35||E.V.34)U.4P("5S",E.2d,P);9(!18.7t.K)E(18).39(G(){E("#4E").28()})}}});E.N(("7s,7r,39,7q,6n,5Y,4L,7p,"+"7n,7m,7l,4x,5U,7k,24,"+"51,7j,7i,7h,3U").2l(","),G(i,o){E.1b[o]=G(f){I f?6.3W(o,f):6.1F(o)}});H x=P;G 5T(){9(x)I;x=Q;9(E.V.35||E.V.34)U.4S("5S",E.2d,P);J 9(E.V.1h){U.7f("<7d"+"7y 22=4E 7z=Q "+"3k=//:><\\/1J>");H a=U.3S("4E");9(a)a.62=G(){9(6.2C!="1l")I;E.2d()};a=S}J 9(E.V.1N)E.4B=4j(G(){9(U.2C=="5Q"||U.2C=="1l"){4A(E.4B);E.4B=S;E.2d()}},10);E.1j.1f(18,"39",E.2d)}E.1b.1k({39:G(g,d,c){9(E.1n(g))I 6.3W("39",g);H e=g.1g(" ");9(e>=0){H i=g.2J(e,g.K);g=g.2J(0,e)}c=c||G(){};H f="4z";9(d)9(E.1n(d)){c=d;d=S}J{d=E.3a(d);f="5P"}H h=6;E.3G({1d:g,O:f,M:d,1l:G(a,b){9(b=="1C"||b=="5O")h.4o(i?E("<1s/>").3g(a.40.1p(/<1J(.|\\s)*?\\/1J>/g,"")).1Y(i):a.40);56(G(){h.N(c,[a.40,b,a])},13)}});I 6},7a:G(){I E.3a(6.5M())},5M:G(){I 6.1X(G(){I E.11(6,"2Y")?E.2h(6.79):6}).1E(G(){I 6.2H&&!6.3c&&(6.2Q||/24|6b/i.14(6.11)||/2g|1P|52/i.14(6.O))}).1X(G(i,c){H b=E(6).3i();I b==S?S:b.1c==1B?E.1X(b,G(a,i){I{2H:c.2H,1Q:a}}):{2H:c.2H,1Q:b}}).21()}});E.N("5L,5K,6t,5J,5I,5H".2l(","),G(i,o){E.1b[o]=G(f){I 6.3W(o,f)}});H B=(1u 3D).3B();E.1k({21:G(d,b,a,c){9(E.1n(b)){a=b;b=S}I E.3G({O:"4z",1d:d,M:b,1C:a,1V:c})},78:G(b,a){I E.21(b,S,a,"1J")},77:G(c,b,a){I E.21(c,b,a,"45")},76:G(d,b,a,c){9(E.1n(b)){a=b;b={}}I E.3G({O:"5P",1d:d,M:b,1C:a,1V:c})},75:G(a){E.1k(E.59,a)},59:{1Z:Q,O:"4z",2z:0,5G:"74/x-73-2Y-72",6o:Q,3e:Q,M:S},49:{},3G:G(s){H f,2y=/=(\\?|%3F)/g,1v,M;s=E.1k(Q,s,E.1k(Q,{},E.59,s));9(s.M&&s.6o&&1m s.M!="1M")s.M=E.3a(s.M);9(s.1V=="4b"){9(s.O.2p()=="21"){9(!s.1d.1t(2y))s.1d+=(s.1d.1t(/\\?/)?"&":"?")+(s.4b||"5E")+"=?"}J 9(!s.M||!s.M.1t(2y))s.M=(s.M?s.M+"&":"")+(s.4b||"5E")+"=?";s.1V="45"}9(s.1V=="45"&&(s.M&&s.M.1t(2y)||s.1d.1t(2y))){f="4b"+B++;9(s.M)s.M=s.M.1p(2y,"="+f);s.1d=s.1d.1p(2y,"="+f);s.1V="1J";18[f]=G(a){M=a;1C();1l();18[f]=W;2a{2E 18[f]}29(e){}}}9(s.1V=="1J"&&s.1L==S)s.1L=P;9(s.1L===P&&s.O.2p()=="21")s.1d+=(s.1d.1t(/\\?/)?"&":"?")+"57="+(1u 3D()).3B();9(s.M&&s.O.2p()=="21"){s.1d+=(s.1d.1t(/\\?/)?"&":"?")+s.M;s.M=S}9(s.1Z&&!E.5b++)E.1j.1F("5L");9(!s.1d.1g("8g")&&s.1V=="1J"){H h=U.4l("9U")[0];H g=U.5B("1J");g.3k=s.1d;9(!f&&(s.1C||s.1l)){H j=P;g.9R=g.62=G(){9(!j&&(!6.2C||6.2C=="5Q"||6.2C=="1l")){j=Q;1C();1l();h.3b(g)}}}h.58(g);I}H k=P;H i=18.6X?1u 6X("9P.9O"):1u 6W();i.9M(s.O,s.1d,s.3e);9(s.M)i.5C("9J-9I",s.5G);9(s.5y)i.5C("9H-5x-9F",E.49[s.1d]||"9D, 9C 9B 9A 5v:5v:5v 9z");i.5C("X-9x-9v","6W");9(s.6U)s.6U(i);9(s.1Z)E.1j.1F("5H",[i,s]);H c=G(a){9(!k&&i&&(i.2C==4||a=="2z")){k=Q;9(d){4A(d);d=S}1v=a=="2z"&&"2z"||!E.6S(i)&&"3U"||s.5y&&E.6R(i,s.1d)&&"5O"||"1C";9(1v=="1C"){2a{M=E.6Q(i,s.1V)}29(e){1v="5k"}}9(1v=="1C"){H b;2a{b=i.5s("6P-5x")}29(e){}9(s.5y&&b)E.49[s.1d]=b;9(!f)1C()}J E.5r(s,i,1v);1l();9(s.3e)i=S}};9(s.3e){H d=4j(c,13);9(s.2z>0)56(G(){9(i){i.9q();9(!k)c("2z")}},s.2z)}2a{i.9o(s.M)}29(e){E.5r(s,i,S,e)}9(!s.3e)c();I i;G 1C(){9(s.1C)s.1C(M,1v);9(s.1Z)E.1j.1F("5I",[i,s])}G 1l(){9(s.1l)s.1l(i,1v);9(s.1Z)E.1j.1F("6t",[i,s]);9(s.1Z&&!--E.5b)E.1j.1F("5K")}},5r:G(s,a,b,e){9(s.3U)s.3U(a,b,e);9(s.1Z)E.1j.1F("5J",[a,s,e])},5b:0,6S:G(r){2a{I!r.1v&&9n.9l=="54:"||(r.1v>=6N&&r.1v<9j)||r.1v==6M||E.V.1N&&r.1v==W}29(e){}I P},6R:G(a,c){2a{H b=a.5s("6P-5x");I a.1v==6M||b==E.49[c]||E.V.1N&&a.1v==W}29(e){}I P},6Q:G(r,b){H c=r.5s("9i-O");H d=b=="6K"||!b&&c&&c.1g("6K")>=0;H a=d?r.9g:r.40;9(d&&a.2V.37=="5k")6G"5k";9(b=="1J")E.5f(a);9(b=="45")a=3w("("+a+")");I a},3a:G(a){H s=[];9(a.1c==1B||a.4c)E.N(a,G(){s.1a(3f(6.2H)+"="+3f(6.1Q))});J L(H j 1i a)9(a[j]&&a[j].1c==1B)E.N(a[j],G(){s.1a(3f(j)+"="+3f(6))});J s.1a(3f(j)+"="+3f(a[j]));I s.66("&").1p(/%20/g,"+")}});E.1b.1k({1A:G(b,a){I b?6.1U({1H:"1A",2N:"1A",1r:"1A"},b,a):6.1E(":1P").N(G(){6.R.19=6.3h?6.3h:"";9(E.17(6,"19")=="2s")6.R.19="2Z"}).2D()},1z:G(b,a){I b?6.1U({1H:"1z",2N:"1z",1r:"1z"},b,a):6.1E(":3R").N(G(){6.3h=6.3h||E.17(6,"19");9(6.3h=="2s")6.3h="2Z";6.R.19="2s"}).2D()},6J:E.1b.25,25:G(a,b){I E.1n(a)&&E.1n(b)?6.6J(a,b):a?6.1U({1H:"25",2N:"25",1r:"25"},a,b):6.N(G(){E(6)[E(6).3t(":1P")?"1A":"1z"]()})},9c:G(b,a){I 6.1U({1H:"1A"},b,a)},9b:G(b,a){I 6.1U({1H:"1z"},b,a)},99:G(b,a){I 6.1U({1H:"25"},b,a)},98:G(b,a){I 6.1U({1r:"1A"},b,a)},96:G(b,a){I 6.1U({1r:"1z"},b,a)},95:G(c,a,b){I 6.1U({1r:a},c,b)},1U:G(k,i,h,g){H j=E.6D(i,h,g);I 6[j.3L===P?"N":"3L"](G(){j=E.1k({},j);H f=E(6).3t(":1P"),3y=6;L(H p 1i k){9(k[p]=="1z"&&f||k[p]=="1A"&&!f)I E.1n(j.1l)&&j.1l.16(6);9(p=="1H"||p=="2N"){j.19=E.17(6,"19");j.2U=6.R.2U}}9(j.2U!=S)6.R.2U="1P";j.3M=E.1k({},k);E.N(k,G(c,a){H e=1u E.2j(3y,j,c);9(/25|1A|1z/.14(a))e[a=="25"?f?"1A":"1z":a](k);J{H b=a.3s().1t(/^([+-]=)?([\\d+-.]+)(.*)$/),1O=e.2b(Q)||0;9(b){H d=3I(b[2]),2i=b[3]||"2T";9(2i!="2T"){3y.R[c]=(d||1)+2i;1O=((d||1)/e.2b(Q))*1O;3y.R[c]=1O+2i}9(b[1])d=((b[1]=="-="?-1:1)*d)+1O;e.3N(1O,d,2i)}J e.3N(1O,a,"")}});I Q})},3L:G(a,b){9(E.1n(a)){b=a;a="2j"}9(!a||(1m a=="1M"&&!b))I A(6[0],a);I 6.N(G(){9(b.1c==1B)A(6,a,b);J{A(6,a).1a(b);9(A(6,a).K==1)b.16(6)}})},9f:G(){H a=E.32;I 6.N(G(){L(H i=0;i<a.K;i++)9(a[i].T==6)a.6I(i--,1)}).5n()}});H A=G(b,c,a){9(!b)I;H q=E.M(b,c+"3L");9(!q||a)q=E.M(b,c+"3L",a?E.2h(a):[]);I q};E.1b.5n=G(a){a=a||"2j";I 6.N(G(){H q=A(6,a);q.44();9(q.K)q[0].16(6)})};E.1k({6D:G(b,a,c){H d=b&&b.1c==8Z?b:{1l:c||!c&&a||E.1n(b)&&b,2e:b,3J:c&&a||a&&a.1c!=8Y&&a};d.2e=(d.2e&&d.2e.1c==4W?d.2e:{8X:8W,8V:6N}[d.2e])||8T;d.3r=d.1l;d.1l=G(){E(6).5n();9(E.1n(d.3r))d.3r.16(6)};I d},3J:{6B:G(p,n,b,a){I b+a*p},5q:G(p,n,b,a){I((-38.9s(p*38.8R)/2)+0.5)*a+b}},32:[],2j:G(b,c,a){6.Y=c;6.T=b;6.1e=a;9(!c.3P)c.3P={}}});E.2j.3A={4r:G(){9(6.Y.2F)6.Y.2F.16(6.T,[6.2v,6]);(E.2j.2F[6.1e]||E.2j.2F.6z)(6);9(6.1e=="1H"||6.1e=="2N")6.T.R.19="2Z"},2b:G(a){9(6.T[6.1e]!=S&&6.T.R[6.1e]==S)I 6.T[6.1e];H r=3I(E.3C(6.T,6.1e,a));I r&&r>-8O?r:3I(E.17(6.T,6.1e))||0},3N:G(c,b,e){6.5u=(1u 3D()).3B();6.1O=c;6.2D=b;6.2i=e||6.2i||"2T";6.2v=6.1O;6.4q=6.4i=0;6.4r();H f=6;G t(){I f.2F()}t.T=6.T;E.32.1a(t);9(E.32.K==1){H d=4j(G(){H a=E.32;L(H i=0;i<a.K;i++)9(!a[i]())a.6I(i--,1);9(!a.K)4A(d)},13)}},1A:G(){6.Y.3P[6.1e]=E.1x(6.T.R,6.1e);6.Y.1A=Q;6.3N(0,6.2b());9(6.1e=="2N"||6.1e=="1H")6.T.R[6.1e]="8N";E(6.T).1A()},1z:G(){6.Y.3P[6.1e]=E.1x(6.T.R,6.1e);6.Y.1z=Q;6.3N(6.2b(),0)},2F:G(){H t=(1u 3D()).3B();9(t>6.Y.2e+6.5u){6.2v=6.2D;6.4q=6.4i=1;6.4r();6.Y.3M[6.1e]=Q;H a=Q;L(H i 1i 6.Y.3M)9(6.Y.3M[i]!==Q)a=P;9(a){9(6.Y.19!=S){6.T.R.2U=6.Y.2U;6.T.R.19=6.Y.19;9(E.17(6.T,"19")=="2s")6.T.R.19="2Z"}9(6.Y.1z)6.T.R.19="2s";9(6.Y.1z||6.Y.1A)L(H p 1i 6.Y.3M)E.1x(6.T.R,p,6.Y.3P[p])}9(a&&E.1n(6.Y.1l))6.Y.1l.16(6.T);I P}J{H n=t-6.5u;6.4i=n/6.Y.2e;6.4q=E.3J[6.Y.3J||(E.3J.5q?"5q":"6B")](6.4i,n,0,1,6.Y.2e);6.2v=6.1O+((6.2D-6.1O)*6.4q);6.4r()}I Q}};E.2j.2F={2R:G(a){a.T.2R=a.2v},2B:G(a){a.T.2B=a.2v},1r:G(a){E.1x(a.T.R,"1r",a.2v)},6z:G(a){a.T.R[a.1e]=a.2v+a.2i}};E.1b.6m=G(){H c=0,3E=0,T=6[0],5t;9(T)8L(E.V){H b=E.17(T,"2X")=="4F",1D=T.12,23=T.23,2K=T.3H,4f=1N&&3x(4s)<8J;9(T.6V){5w=T.6V();1f(5w.1S+38.33(2K.2V.2R,2K.1G.2R),5w.3E+38.33(2K.2V.2B,2K.1G.2B));9(1h){H d=E("4o").17("8H");d=(d=="8G"||E.5g&&3x(4s)>=7)&&2||d;1f(-d,-d)}}J{1f(T.5l,T.5z);1W(23){1f(23.5l,23.5z);9(35&&/^t[d|h]$/i.14(1D.37)||!4f)d(23);9(4f&&!b&&E.17(23,"2X")=="4F")b=Q;23=23.23}1W(1D.37&&!/^1G|4o$/i.14(1D.37)){9(!/^8D|1I-9S.*$/i.14(E.17(1D,"19")))1f(-1D.2R,-1D.2B);9(35&&E.17(1D,"2U")!="3R")d(1D);1D=1D.12}9(4f&&b)1f(-2K.1G.5l,-2K.1G.5z)}5t={3E:3E,1S:c}}I 5t;G d(a){1f(E.17(a,"9T"),E.17(a,"8A"))}G 1f(l,t){c+=3x(l)||0;3E+=3x(t)||0}}})();',62,616,'||||||this|||if|||||||||||||||||||||||||||||||||function|var|return|else|length|for|data|each|type|false|true|style|null|elem|document|browser|undefined||options|||nodeName|parentNode||test|jQuery|apply|css|window|display|push|fn|constructor|url|prop|add|indexOf|msie|in|event|extend|complete|typeof|isFunction|className|replace|arguments|opacity|div|match|new|status|firstChild|attr|nodeType|hide|show|Array|success|parent|filter|trigger|body|height|table|script|tbody|cache|string|safari|start|hidden|value|merge|left|break|animate|dataType|while|map|find|global||get|id|offsetParent|select|toggle|selected|toUpperCase|remove|catch|try|cur|al|ready|duration|done|text|makeArray|unit|fx|swap|split|target||pushStack|toLowerCase|nextSibling|button|none|handle|guid|now|stack|tb|jsre|timeout|inArray|scrollTop|readyState|end|delete|step|one|name|nth|slice|doc|ret|preventDefault|width|call|events|checked|scrollLeft|exec|px|overflow|documentElement|grep|position|form|block|removeData|rl|timers|max|opera|mozilla|trim|tagName|Math|load|param|removeChild|disabled|insertBefore|async|encodeURIComponent|append|oldblock|val|childNodes|src|readyList|multiFilter|color|defaultView|stopPropagation|args|old|toString|is|last|first|eval|parseInt|self|domManip|prototype|getTime|curCSS|Date|top||ajax|ownerDocument|parseFloat|easing|has|queue|curAnim|custom|innerHTML|orig|currentStyle|visible|getElementById|isReady|error|static|bind|String|which|getComputedStyle|responseText|oWidth|oHeight|on|shift|json|child|RegExp|ol|lastModified|isXMLDoc|jsonp|jquery|previousSibling|dir|safari2|el|styleFloat|state|setInterval|radio|getElementsByTagName|tr|empty|html|getAttribute|pos|update|version|input|float|runtimeStyle|unshift|mouseover|getPropertyValue|GET|clearInterval|safariTimer|visibility|clean|__ie_init|absolute|handleHover|lastToggle|index|fromElement|relatedTarget|click|fix|evt|andSelf|removeEventListener|handler|cloneNode|addEventListener|triggered|nodeIndex|unique|Number|classFilter|prevObject|selectedIndex|after|submit|password|removeAttribute|file|expr|setTimeout|_|appendChild|ajaxSettings|client|active|win|sibling|deep|globalEval|boxModel|cssFloat|object|checkbox|parsererror|offsetLeft|wrapAll|dequeue|props|lastChild|swing|handleError|getResponseHeader|results|startTime|00|box|Modified|ifModified|offsetTop|evalScript|createElement|setRequestHeader|ctrlKey|callback|metaKey|contentType|ajaxSend|ajaxSuccess|ajaxError|ajaxStop|ajaxStart|serializeArray|init|notmodified|POST|loaded|appendTo|DOMContentLoaded|bindReady|mouseout|not|removeAttr|unbind|unload|Width|keyCode|charCode|onreadystatechange|clientX|pageX|srcElement|join|outerHTML|substr|zoom|parse|textarea|reset|image|odd|even|before|quickClass|quickID|prepend|quickChild|execScript|offset|scroll|processData|uuid|contents|continue|textContent|ajaxComplete|clone|setArray|webkit|nodeValue|fl|_default|100|linear|href|speed|eq|createTextNode|throw|replaceWith|splice|_toggle|xml|colgroup|304|200|alpha|Last|httpData|httpNotModified|httpSuccess|fieldset|beforeSend|getBoundingClientRect|XMLHttpRequest|ActiveXObject|col|br|abbr|pixelLeft|urlencoded|www|application|ajaxSetup|post|getJSON|getScript|elements|serialize|clientWidth|hasClass|scr|clientHeight|write|relative|keyup|keypress|keydown|change|mousemove|mouseup|mousedown|right|dblclick|resize|focus|blur|frames|instanceof|hover|offsetWidth|triggerHandler|ipt|defer|offsetHeight|border|padding|clientY|pageY|Left|Right|toElement|Bottom|Top|cancelBubble|returnValue|detachEvent|attachEvent|substring|line|weight|animated|header|font|enabled|innerText|contains|only|size|gt|lt|uFFFF|u0128|417|inner|Height|toggleClass|removeClass|addClass|replaceAll|noConflict|insertAfter|prependTo|wrap|contentWindow|contentDocument|http|iframe|children|siblings|prevAll|nextAll|wrapInner|prev|Boolean|next|parents|maxLength|maxlength|readOnly|readonly|class|htmlFor|CSS1Compat|compatMode|compatible|borderTopWidth|ie|ra|inline|it|rv|medium|borderWidth|userAgent|522|navigator|with|concat|1px|10000|array|ig|PI|NaN|400|reverse|fast|600|slow|Function|Object|setAttribute|changed|be|can|property|fadeTo|fadeOut|getAttributeNode|fadeIn|slideToggle|method|slideUp|slideDown|action|cssText|stop|responseXML|option|content|300|th|protocol|td|location|send|cap|abort|colg|cos|tfoot|thead|With|leg|Requested|opt|GMT|1970|Jan|01|Thu|area|Since|hr|If|Type|Content|meta|specified|open|link|XMLHTTP|Microsoft|img|onload|row|borderLeftWidth|head|attributes'.split('|'),0,{});
+
+/*
+ Copyright (c) 2004-2007, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+/*
+ This is a compiled version of Dojo, built for deployment and not for
+ development. To get an editable version, please visit:
+
+ http://dojotoolkit.org
+
+ for documentation and information on getting the source.
+*/
+
+var decompressedDojo = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('if(V z=="1k"){(B(){if(V D["1o"]=="1k"){D.1o={}}if((!D["1z"])||(!1z["ca"])){D.1z={}}A cn=["rA","rz","1K","ry","rx","9f","rw","rv","ru","rt","rs","rr","rq","ro","rn","rm"];A i=0,24;1s(24=cn[i++]){if(!1z[24]){1z[24]=B(){}}}if(V D["z"]=="1k"){D.z={}}z.1W=D;A d3={im:U,rl:U,rk:"",rj:"",ri:"",rh:K,rg:U};R(A 8z in d3){if(V 1o[8z]=="1k"){1o[8z]=d3[8z]}}A jK=["rf","rd","rc","rb"];A t;1s(t=jK.3a()){z["is"+t]=U}})();z.8h=1o.8h;z.cY={jJ:0,jI:9,jH:0,jG:"",jF:2V("$ra: r9 $".1f(/[0-9]+/)[0]),2i:B(){4G(z.cY){C jJ+"."+jI+"."+jH+jG+" ("+jF+")"}}};z.d1=B(jE,jD,1V){A 2h=1V||z.1W;R(A i=0,p;2h&&(p=jE[i]);i++){2h=(p in 2h?2h[p]:(jD?2h[p]={}:1k))}C 2h};z.88=B(jC,jA,jB){A d2=jC.1A("."),p=d2.8q(),M=z.d1(d2,K,jB);C(M&&p?(M[p]=jA):1k)};z.6q=B(jz,jy,jx){C z.d1(jz.1A("."),jy,jx)};z.r8=B(jw,M){C!!z.6q(jw,U,M)};z["3u"]=B(d0){C z.1W.3u?z.1W.3u(d0):3u(d0)};z.ia=B(jv,cZ,cX){A 8y="r7: "+jv;if(cZ){8y+=" "+cZ}if(cX){8y+=" -- r6 be r5 in cY: "+cX}1z.1K(8y)};z.r4=B(ju,cW){A cV="r3: "+ju+" -- r2 r1 4F r0 qZ qY.";if(cW){cV+=" "+cW}1z.1K(cV)};(B(){A cR={53:{},6p:0,1h:{},8k:{z:{1p:"z",1Z:"."},cU:{1p:"cU",1Z:"../qX/cU"},cT:{1p:"cT",1Z:"cT"}},cN:B(cS){A mp=D.8k;C jp(mp[cS]&&mp[cS].1Z)},jk:B(8x){A mp=D.8k;if(D.cN(8x)){C mp[8x].1Z}C 8x},8v:[],6t:U,56:[],8t:[],8u:U};R(A cQ in cR){z[cQ]=cR[cQ]}})();z.jg=B(8w,cP,cb){A 1g=(((8w.2s(0)=="/"||8w.1f(/^\\w+:/)))?"":D.51)+8w;if(1o.jt&&z.c8){1g+="?"+67(1o.jt).2f(/\\W+/g,"")}1u{C!cP?D.cO(1g,cb):D.jq(1g,cP,cb)}1y(e){1z.1K(e);C U}};z.cO=B(1g,cb){if(D.8v[1g]){C K}A 6u=D.iR(1g,K);if(!6u){C U}D.8v[1g]=K;D.8v.Y(1g);if(cb){6u="("+6u+")"}A jr=z["3u"](6u+"\\r\\n//@ qW="+1g);if(cb){cb(jr)}C K};z.jq=B(1g,jo,cb){A ok=U;1u{ok=D.cO(1g,cb)}1y(e){1z.1K("qV je ",1g," 4G 9f: ",e)}C jp(ok&&D.53[jo])};z.6m=B(){D.8u=K;D.6t=K;A 57=D.56;D.56=[];R(A x=0;x<57.G;x++){57[x]()}D.8u=U;if(z.6t&&z.6p==0&&D.56.G>0){z.8s()}};z.ck=B(){A 57=D.8t;1s(57.G){(57.8q())()}};z.qU=B(M,jn){A d=z;if(P.G==1){d.56.Y(M)}I{if(P.G>1){d.56.Y(B(){M[jn]()})}}if(d.6t&&d.6p==0&&!d.8u){d.8s()}};z.dW=B(M,jm){A d=z;if(P.G==1){d.8t.Y(M)}I{if(P.G>1){d.8t.Y(B(){M[jm]()})}}};z.iM=B(){if(D.6t){C}if(D.6p>0){1z.1K("qT qS in qR!");C}z.8s()};z.8s=B(){if(V 5c=="8b"||(1o["qQ"]&&z.2M)){5c("z.6m();",0)}I{z.6m()}};z.cF=B(jl){A 4v=jl.1A(".");R(A i=4v.G;i>0;i--){A 8r=4v.2w(0,i).22(".");if((i==1)&&!D.cN(8r)){4v[0]="../"+4v[0]}I{A cM=D.jk(8r);if(cM!=8r){4v.3S(0,i,cM);3f}}}C 4v};z.jj=U;z.8m=B(2T,qP,55){55=D.jj||55;A 54=D.53[2T];if(54){C 54}A cL=2T.1A(".");A 3L=D.cF(2T);A jh=((3L[0].2s(0)!="/")&&!3L[0].1f(/^\\w+:/));A ji=3L[3L.G-1];A 3m;if(ji=="*"){2T=cL.2w(0,-1).22(".");3L.8q();3m=3L.22("/")+"/"+(1o["qO"]||"qN")+".js";if(jh&&3m.2s(0)=="/"){3m=3m.2w(1)}}I{3m=3L.22("/")+".js";2T=cL.22(".")}A jf=(!55)?2T:L;A ok=D.jg(3m,jf);if((!ok)&&(!55)){2m S 1O("qM 3O 4E \'"+2T+"\'; 72 qL \'"+3m+"\'")}if((!55)&&(!D["qK"])){54=D.53[2T];if(!54){2m S 1O("qJ \'"+2T+"\' is 3O qI a8 je \'"+3m+"\'")}}C 54};z.8c=z.8m;z.1Q=B(cK){A cJ=cK+"";A 8p=cJ;A 6s=cK.1A(/\\./);if(6s[6s.G-1]=="*"){6s.8q();8p=6s.22(".")}A 8o=z.6q(8p,K);D.53[cJ]=8o;D.53[8p]=8o;C 8o};z.qH=B(8n){A jd=8n["qG"]||[];A cI=jd.3U(8n[z.j4]||8n["aY"]||[]);R(A x=0;x<cI.G;x++){A 8l=cI[x];if(8l.1P==4e){z.8m.14(z,8l)}I{z.8m(8l)}}};z.jb=B(jc,qF){if(jc===K){A cH=[];R(A i=1;i<P.G;i++){cH.Y(P[i])}z.8c.14(z,cH)}};z.qE=z.jb;z.io=B(cG,ja){D.8k[cG]={1p:cG,1Z:ja}};z.qD=B(qC,qB,qA,qz){z.8c("z.j9");z.j9.qy.14(z.qx,P)};(B(){A j7=S 9G("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?$");A j6=S 9G("^((([^:]+:)?([^@]+))@)?([^:]*)(:([0-9]+))?$");z.4r=B(){A n=L;A 1V=P;A 1g=1V[0];R(A i=1;i<1V.G;i++){if(!1V[i]){6c}A 1t=S z.4r(1V[i]+"");A 4u=S z.4r(1g+"");if((1t.28=="")&&(!1t.4t)&&(!1t.3l)&&(!1t.1r)){if(1t.52!=n){4u.52=1t.52}1t=4u}I{if(!1t.4t){1t.4t=4u.4t;if(!1t.3l){1t.3l=4u.3l;if(1t.28.2s(0)!="/"){A j8=4u.28.21(0,4u.28.31("/")+1)+1t.28;A 1X=j8.1A("/");R(A j=0;j<1X.G;j++){if(1X[j]=="."){if(j==1X.G-1){1X[j]=""}I{1X.3S(j,1);j--}}I{if(j>0&&!(j==1&&1X[0]=="")&&1X[j]==".."&&1X[j-1]!=".."){if(j==(1X.G-1)){1X.3S(j,1);1X[j-1]=""}I{1X.3S(j-1,2);j-=2}}}}1t.28=1X.22("/")}}}}1g="";if(1t.4t){1g+=1t.4t+":"}if(1t.3l){1g+="//"+1t.3l}1g+=1t.28;if(1t.1r){1g+="?"+1t.1r}if(1t.52){1g+="#"+1t.52}}D.1g=1g.2i();A r=D.1g.1f(j7);D.4t=r[2]||(r[1]?"":n);D.3l=r[4]||(r[3]?"":n);D.28=r[5];D.1r=r[7]||(r[6]?"":n);D.52=r[9]||(r[8]?"":n);if(D.3l!=n){r=D.3l.1f(j6);D.8X=r[3]||n;D.8W=r[4]||n;D.qw=r[5];D.qv=r[7]||n}};z.4r.1C.2i=B(){C D.1g}})();z.qu=B(j5,2E){A 2B=z.cF(j5).22("/");if(!2B){C L}if(2B.31("/")!=2B.G-1){2B+="/"}A cE=2B.T(":");if(2B.2s(0)!="/"&&(cE==-1||cE>2B.T("/"))){2B=z.51+2B}C S z.4r(2B,2E)};if(V 26!="1k"){z.c8=K;z.j4="qt";(B(){A d=z;if(1q&&1q.4I){A 8j=1q.4I("ak");A j3=/z(\\.qs)?\\.js([\\?\\.]|$)/i;R(A i=0;i<8j.G;i++){A 4X=8j[i].5t("4X");if(!4X){6c}A m=4X.1f(j3);if(m){if(!1o["51"]){1o["51"]=4X.21(0,m.hK)}A cD=8j[i].5t("1o");if(cD){A cC=3u("({ "+cD+" })");R(A x in cC){1o[x]=cC[x]}}3f}}}d.51=1o["51"];A n=cq;A 8i=n.iL;A 4Z=n.qr;A 6r=2k(4Z);d.2M=(8i.T("qq")>=0)?6r:0;d.6B=(4Z.T("qo")>=0)||(4Z.T("j2")>=0)?6r:0;d.3o=(4Z.T("j2")>=0)?6r:0;A j1=8i.T("qn");d.gu=d.7B=((j1>=0)&&(!d.6B))?6r:0;d.j0=0;d.1l=0;d.iV=0;1u{if(d.7B){d.j0=2k(8i.1A("qm/")[1].1A(" ")[0])}if((1q.gx)&&(!d.2M)){d.1l=2k(4Z.1A("qk ")[1].1A(";")[0])}}1y(e){}if(z.1l&&(26.8f.cu==="9q:")){1o.iT=K}d.iX=B(){A 2A;A qj;A cB=d.6q("cz.cy");if(cB){C cB}if(V iZ!="1k"){2A=S iZ()}I{if(d.1l){1u{2A=S 9j("qi.qh")}1y(e){}}I{if(cq.qg["8Z/x-iY"]){2A=1q.a9("8b");2A.cA("Z","8Z/x-iY");2A.cA("3n",0);2A.cA("58",0);2A.1c.gq="7C";1q.5K.4c(2A)}}}if(!2A){C L}z.88("cz.cy.qf",2A);C z.6q("cz.cy")};A iW=d.iX();if(iW){d.iV=K}A cm=1q["aX"];d.qe=(cm=="aW")||(cm=="gr")||(d.1l<6);d.8h=1o.8h||(d.1l?n.qd:n.qc).1M();d.qb=1z.1K;d.cx=["iU.8g","em.8g","iU.8g.4.0"];d.9b=B(){A 4s=L;A cv=L;if(!z.1l||!1o.iT){1u{4s=S qa()}1y(e){}}if(!4s){R(A i=0;i<3;++i){A cw=z.cx[i];1u{4s=S 9j(cw)}1y(e){cv=e}if(4s){z.cx=[cw];3f}}}if(!4s){2m S 1O("8g 3O q9: "+cv)}C 4s};d.8Y=B(iS){A 4Y=iS.3N||0;C((4Y>=q8)&&(4Y<q7))||(4Y==q6)||(4Y==q5)||(!4Y&&(8f.cu=="9q:"||8f.cu=="q4:"))};A cs=1q.4I("q3");A iQ=(cs&&cs.G>0);d.iR=B(1g,iP){A 3K=D.9b();if(!iQ&&z.4r){1g=(S z.4r(26.8f,1g)).2i()}3K.dL("dD",1g,U);1u{3K.dI(L);if(!d.8Y(3K)){A 1G=1O("q2 4F 4E "+1g+" 3N:"+3K.3N);1G.3N=3K.3N;1G.2G=3K.2G;2m 1G}}1y(e){if(iP){C L}2m e}C 3K.2G}})();z.iO=U;z.6o=B(e){z.iO=K;A cr=(e&&e.Z)?e.Z.1M():"4E";if(P.2O.iN||(cr!="q1"&&cr!="4E")){C}P.2O.iN=K;if(V z["8e"]!="1k"){dX(z.8e);63 z.8e}if(z.6p==0){z.iM()}};if(1q.66){if(z.2M||(z.7B&&(1o["q0"]===K))){1q.66("pZ",z.6o,L)}26.66("4E",z.6o,L)}if(/(pY|pX)/i.6Z(cq.iL)){z.8e=dN(B(){if(/6m|iJ/.6Z(1q.6F)){z.6o()}},10)}(B(){A 3g=26;A 8d=B(cp,fp){A iK=3g[cp]||B(){};3g[cp]=B(){fp.14(3g,P);iK.14(3g,P)}};if(z.1l){1q.fJ("<iI"+"iH pW 4X=\\"//:\\" "+"pV=\\"if(D.6F==\'iJ\'){z.6o();}\\">"+"</iI"+"iH>");A co=K;8d("iG",B(){3g.5c(B(){co=U},0)});8d("pU",B(){if(co){z.ck()}});1u{1q.pT.2P("v","pS:pR-pQ-pP:pO");1q.pN().pM("v\\\\:*","pL:2E(#aY#pK)")}1y(e){}}I{8d("iG",B(){z.ck()})}})();z.pJ=B(){};z.1e=26["1q"]||L;z.3E=B(){C z.1e.3E||z.1e.4I("3E")[0]};z.ch=B(iF,iE){z.1W=iF;z.1e=iE};z.cf=B(4q,6n,iD){if((6n)&&((V 4q=="3c")||(4q 1N 67))){4q=6n[4q]}C(6n?4q.14(6n,iD||[]):4q())};z.pI=B(cj,iC,iB,iA){A cg;A iz=z.1W;A iy=z.1e;1u{z.ch(cj,cj.1q);cg=z.cf(iC,iB,iA)}ir{z.ch(iz,iy)}C cg};z.pH=B(ix,iw,iv,iu){A ce;A ip=z.1e;1u{z.1e=ix;ce=z.cf(iw,iv,iu)}ir{z.1e=ip}C ce};if(1o["cd"]){R(A cc in 1o["cd"]){z.io(cc,1o["cd"][cc])}}}if(1o.im){if(!1z.ca){z.8c("z.pG.ca")}}}if(!z.1h["z.X.c9"]){z.1h["z.X.c9"]=K;z.1Q("z.X.c9");z.1R=B(it){C(V it=="3c"||it 1N 67)};z.2l=B(it){C(it&&it 1N 4e||V it=="6a"||((V z["1H"]!="1k")&&(it 1N z.1H)))};if(z.c8&&z.3o){z.1Y=B(it){if((V(it)=="B")&&(it=="[8b 1H]")){C U}C(V it=="B"||it 1N bI)}}I{z.1Y=B(it){C(V it=="B"||it 1N bI)}}z.ib=B(it){if(V it=="1k"){C U}C(it===L||V it=="8b"||z.2l(it)||z.1Y(it))};z.pF=B(it){A d=z;if((!it)||(V it=="1k")){C U}if(d.1R(it)){C U}if(d.1Y(it)){C U}if(d.2l(it)){C K}if((it.5w)&&(it.5w.1M()=="3R")){C U}if(pE(it.G)){C K}C U};z.pD=B(it){if(!it){C U}C!z.1Y(it)&&/\\{\\s*\\[il 5h\\]\\s*\\}/.6Z(67(it))};z.c7=B(M,4W){A 8a={};R(A x in 4W){if((V 8a[x]=="1k")||(8a[x]!=4W[x])){M[x]=4W[x]}}if(z.1l){A p=4W.2i;if((V(p)=="B")&&(p!=M.2i)&&(p!=8a.2i)&&(p!="\\pC 2i() {\\n [il 5h]\\n}\\n")){M.2i=4W.2i}}C M};z.1x=B(M,pB){R(A i=1,l=P.G;i<l;i++){z.c7(M,P[i])}C M};z.4M=B(c6,pA){R(A i=1,l=P.G;i<l;i++){z.c7(c6.1C,P[i])}C c6};z.ig=B(c5,89){A ij=z.4d(P,2);A ik=z.1R(89);C B(){A ih=z.4d(P);A f=(ik?(c5||z.1W)[89]:89);C(f)&&(f.14(c5||D,ij.3U(ih)))}};z.2p=B(2z,3k){if(P.G>2){C z.ig.14(z,P)}if(!3k){3k=2z;2z=L}if(z.1R(3k)){2z=2z||z.1W;if(!2z[3k]){2m(["z.2p: ie[\\"",3k,"\\"] is L (ie=\\"",2z,"\\")"].22(""))}C B(){C 2z[3k].14(2z,P||[])}}I{C(!2z?3k:B(){C 3k.14(2z,P||[])})}};z.6j=B(M,c3){B c4(){};c4.1C=M;A c2=S c4();if(c3){z.1x(c2,c3)}C c2};z.7X=B(pz){A Q=[L];C z.2p.14(z,Q.3U(z.4d(P)))};z.4d=B(M,ic){A Q=[];R(A x=ic||0;x<M.G;x++){Q.Y(M[x])}C Q};z.c1=B(o){if(!o){C o}if(z.2l(o)){A r=[];R(A i=0;i<o.G;++i){r.Y(z.c1(o[i]))}C r}I{if(z.ib(o)){if(o.2t&&o.a7){C o.a7(K)}I{A r=S o.1P();R(A i in o){if(!(i in r)||r[i]!=o[i]){r[i]=z.c1(o[i])}}C r}}}C o};z.7g=B(2H){C 2H.2f(/^\\s\\s*/,"").2f(/\\s\\s*$/,"")}}if(!z.1h["z.X.2r"]){z.1h["z.X.2r"]=K;z.1Q("z.X.2r");z.2r=B(6l,4p,3j){if(z.1Y(3j)||(P.G>3)){z.ia("z.2r: R 9P \'"+6l+"\' py pw B as \'1P\' pv pu of as a pt i3.","","1.0");A c=3j;3j=P[3]||{};3j.1P=c}A dd=P.2O,4V=L;if(z.2l(4p)){4V=4p;4p=4V.3a()}if(4V){R(A i=0,m;i<4V.G;i++){m=4V[i];if(!m){2m("ps #"+i+" 4F pr of "+6l+" is L. pq\'s pp a po pl is 3O 6m.")}4p=dd.6j(4p,m)}}A i9=(3j||0).1P,6k=dd.6j(4p),fn;R(A i in 3j){if(z.1Y(fn=3j[i])&&(!0[i])){fn.i4=i}}z.4M(6k,{4o:6l,bY:i9,bZ:L},3j||0);6k.1C.1P=6k;C z.88(6l,6k)};z.1x(z.2r,{6j:B(c0,i8){A bp=(c0||0).1C,mp=(i8||0).1C;A 2S=z.2r.i7();z.1x(2S,{84:bp,1x:mp});if(c0){2S.1C=z.6j(bp)}z.4M(2S,z.2r.i6,mp||0,{bY:L});2S.1C.1P=2S;2S.1C.4o=(bp||0).4o+"pk"+(mp||0).4o;z.88(2S.1C.4o,2S);C 2S},i7:B(){C B(){D.i5(P)}},i6:{i5:B(86){A c=86.2O,s=c.84,ct=s&&s.1P,m=c.1x,87=m&&m.1P,a=86,ii,fn;if(a[0]){if((fn=a[0]["bZ"])){a=fn.14(D,a)||a}}if(fn=c.1C.bZ){a=fn.14(D,a)||a}if(ct&&ct.14){ct.14(D,a)}if(87&&87.14){87.14(D,a)}if(ii=c.1C.bY){ii.14(D,86)}},bX:B(85){A c=D.1P,p,m;1s(c){p=c.84;m=c.1x;if(m==85||(m 1N 85.1P)){C p}if(m&&(m=m.bX(85))){C m}c=p&&p.1P}},6h:B(83,82,bW,6i){A p=bW,c,m,f;do{c=p.1P;m=c.1x;if(m&&(m=D.6h(83,82,m,6i))){C m}if((f=p[83])&&(6i==(f==82))){C p}p=c.84}1s(p);C!6i&&(p=D.bX(bW))&&D.6h(83,82,p,6i)},bU:B(2R,4U,bV){A a=P;if(!z.1R(a[0])){bV=4U;4U=2R;2R=4U.2O.i4}A c=4U.2O,p=D.1P.1C,a=bV||4U,fn,mp;if(D[2R]!=c||p[2R]==c){mp=D.6h(2R,c,p,K);if(!mp){2m(D.4o+": 1p i3 (\\""+2R+"\\") 4F bU pj 1f 2O (2r.js)")}p=D.6h(2R,c,mp,U)}fn=p&&p[2R];if(!fn){1z.1K(mp.4o+": no bU \\""+2R+"\\" ph pg (2r.js)");C}C fn.14(D,a)}}})}if(!z.1h["z.X.2c"]){z.1h["z.X.2c"]=K;z.1Q("z.X.2c");z.3i={i2:B(){C B(){A ap=4e.1C,c=P.2O,ls=c.2b,t=c.5V;A r=t&&t.14(D,P);R(A i in ls){if(!(i in ap)){ls[i].14(D,P)}}C r}},2P:B(6g,bT,i1){6g=6g||z.1W;A f=6g[bT];if(!f||!f.2b){A d=z.3i.i2();d.5V=f;d.2b=[];f=6g[bT]=d}C f.2b.Y(i1)},3J:B(i0,hZ,bS){A f=(i0||z.1W)[hZ];if(f&&f.2b&&bS--){63 f.2b[bS]}}};z.2c=B(M,pd,pc,pa,p9){A a=P,F=[],i=0;F.Y(z.1R(a[0])?L:a[i++],a[i++]);A a1=a[i+1];F.Y(z.1R(a1)||z.1Y(a1)?a[i++]:L,a[i++]);R(A l=a.G;i<l;i++){F.Y(a[i])}C z.by.14(D,F)};z.by=B(M,bR,hY,hX){A l=z.3i,h=l.2P(M,bR,z.2p(hY,hX));C[M,bR,h,l]};z.p8=B(6f){if(6f&&6f[0]!==1k){z.bv.14(D,6f);63 6f[0]}};z.bv=B(M,hV,hU,hW){hW.3J(M,hV,hU)};z.80={};z.p7=B(bQ,hT,hS){C[bQ,z.3i.2P(z.80,bQ,z.2p(hT,hS))]};z.p6=B(81){if(81){z.3i.3J(z.80,81[0],81[1])}};z.hQ=B(hR,F){A f=z.80[hR];(f)&&(f.14(D,F||[]))};z.p5=B(hP,M,bP){A pf=B(){z.hQ(hP,P)};C(bP)?z.2c(M,bP,pf):z.2c(M,pf)}}if(!z.1h["z.X.30"]){z.1h["z.X.30"]=K;z.1Q("z.X.30");z.30=B(hO){D.bM=[];D.id=D.hN();D.2y=-1;D.3M=0;D.4R=[L,L];D.bO=hO;D.7Z=U};z.4M(z.30,{hN:(B(){A n=1;C B(){C n++}})(),4C:B(){if(D.2y==-1){if(D.bO){D.bO(D)}I{D.7Z=K}if(D.2y==-1){A 1G=S 1O("30 p4");1G.dY="4C";D.5i(1G)}}I{if((D.2y==0)&&(D.4R[0]1N z.30)){D.4R[0].4C()}}},7V:B(1v){D.2y=((1v 1N 1O)?1:0);D.4R[D.2y]=1v;D.7U()},bN:B(){if(D.2y!=-1){if(!D.7Z){2m S 1O("p3 p2!")}D.7Z=U;C}},dM:B(1v){D.bN();D.7V(1v)},5i:B(1v){D.bN();if(!(1v 1N 1O)){1v=S 1O(1v)}D.7V(1v)},9e:B(cb,4T){A 6e=z.2p(cb,4T);if(P.G>2){6e=z.7X(6e,P,2)}C D.5k(6e,6e)},ef:B(cb,4T){A 7Y=z.2p(cb,4T);if(P.G>2){7Y=z.7X(7Y,P,2)}C D.5k(7Y,L)},ed:B(cb,4T){A 7W=z.2p(cb,4T);if(P.G>2){7W=z.7X(7W,P,2)}C D.5k(L,7W)},5k:B(cb,eb){D.bM.Y([cb,eb]);if(D.2y>=0){D.7U()}C D},7U:B(){A bL=D.bM;A 4n=D.2y;A 1v=D.4R[4n];A 4S=D;A cb=L;1s((bL.G>0)&&(D.3M==0)){A f=bL.3a()[4n];if(!f){6c}1u{1v=f(1v);4n=((1v 1N 1O)?1:0);if(1v 1N z.30){cb=B(1v){4S.7V(1v);4S.3M--;if((4S.3M==0)&&(4S.2y>=0)){4S.7U()}};D.3M++}}1y(1G){1z.1K(1G);4n=1;1v=1G}}D.2y=4n;D.4R[4n]=1v;if((cb)&&(D.3M)){1v.9e(cb)}}})}if(!z.1h["z.X.2e"]){z.1h["z.X.2e"]=K;z.1Q("z.X.2e");z.5m=B(2e){1u{C 3u("("+2e+")")}1y(e){1z.1K(e);C 2e}};z.bK=B(2H){C("\\""+2H.2f(/(["\\\\])/g,"\\\\$1")+"\\"").2f(/[\\f]/g,"\\\\f").2f(/[\\b]/g,"\\\\b").2f(/[\\n]/g,"\\\\n").2f(/[\\t]/g,"\\\\t").2f(/[\\r]/g,"\\\\r")};z.hM="\\t";z.eq=B(it,4l,4P){4P=4P||"";A 4k=(4l?4P+z.hM:"");A 6b=(4l?"\\n":"");A 4Q=V(it);if(4Q=="1k"){C"1k"}I{if((4Q=="4J")||(4Q=="p1")){C it+""}I{if(it===L){C"L"}}}if(4Q=="3c"){C z.bK(it)}A 6d=P.2O;A 4m;if(V it.hL=="B"){4m=it.hL();if(it!==4m){C 6d(4m,4l,4k)}}if(V it.2e=="B"){4m=it.2e();if(it!==4m){C 6d(4m,4l,4k)}}if(z.2l(it)){A 1v=[];R(A i=0;i<it.G;i++){A 1U=6d(it[i],4l,4k);if(V(1U)!="3c"){1U="1k"}1v.Y(6b+4k+1U)}C"["+1v.22(", ")+6b+4P+"]"}if(4Q=="B"){C L}A bJ=[];R(A 1i in it){A 7T;if(V(1i)=="4J"){7T="\\""+1i+"\\""}I{if(V(1i)=="3c"){7T=z.bK(1i)}I{6c}}1U=6d(it[1i],4l,4k);if(V(1U)!="3c"){6c}bJ.Y(6b+4k+7T+": "+1U)}C"{"+bJ.22(", ")+6b+4P+"}"}}if(!z.1h["z.X.6a"]){z.1h["z.X.6a"]=K;z.1Q("z.X.6a");(B(){A 69=B(Q,M,cb){C[(z.1R(Q)?Q.1A(""):Q),(M||z.1W),(z.1R(cb)?(S bI("1m","hK","6a",cb)):cb)]};z.1x(z,{T:B(bH,hH,hI,hJ){A i=0,2q=1,1d=bH.G;if(hJ){i=1d-1;2q=1d=-1}R(i=hI||i;i!=1d;i+=2q){if(bH[i]==hH){C i}}C-1},31:B(hG,hF,hE){C z.T(hG,hF,hE,K)},1n:B(Q,hD,M){if(!Q||!Q.G){C}A 1I=69(Q,M,hD);Q=1I[0];R(A i=0,l=1I[0].G;i<l;i++){1I[2].2d(1I[1],Q[i],i,Q)}},bE:B(bF,Q,hC,M){A 1I=69(Q,M,hC);Q=1I[0];R(A i=0,l=Q.G;i<l;i++){A bG=!!1I[2].2d(1I[1],Q[i],i,Q);if(bF^bG){C bG}}C bF},ah:B(Q,hB,hA){C D.bE(K,Q,hB,hA)},ag:B(Q,hz,hy){C D.bE(U,Q,hz,hy)},23:B(Q,7t,M){A 1I=69(Q,M,7t);Q=1I[0];A bD=((P[3])?(S P[3]()):[]);R(A i=0;i<Q.G;++i){bD.Y(1I[2].2d(1I[1],Q[i],i,Q))}C bD},3T:B(Q,hx,M){A 1I=69(Q,M,hx);Q=1I[0];A bC=[];R(A i=0;i<Q.G;i++){if(1I[2].2d(1I[1],Q[i],i,Q)){bC.Y(Q[i])}}C bC}})})()}if(!z.1h["z.X.1J"]){z.1h["z.X.1J"]=K;z.1Q("z.X.1J");z.1J=B(bB){if(bB){D.hw(bB)}};z.1J.hp={p0:[0,0,0],oZ:[60,60,60],oY:[2j,2j,2j],oX:[1T,1T,1T],oW:[2j,0,0],oV:[1T,0,0],oU:[2j,0,2j],oT:[1T,0,1T],oS:[0,2j,0],oR:[0,1T,0],oQ:[2j,2j,0],oP:[1T,1T,0],oO:[0,0,2j],oN:[0,0,1T],oM:[0,2j,2j],oL:[0,1T,1T]};z.4M(z.1J,{r:1T,g:1T,b:1T,a:1,bz:B(r,g,b,a){A t=D;t.r=r;t.g=g;t.b=b;t.a=a},hw:B(2Q){A d=z;if(d.1R(2Q)){d.hq(2Q,D)}I{if(d.2l(2Q)){d.7P(2Q,D)}I{D.bz(2Q.r,2Q.g,2Q.b,2Q.a);if(!(2Q 1N d.1J)){D.7Q()}}}C D},7Q:B(){C D},oK:B(){A t=D;C[t.r,t.g,t.b]},oJ:B(){A t=D;C[t.r,t.g,t.b,t.a]},oI:B(){A Q=z.23(["r","g","b"],B(x){A s=D[x].2i(16);C s.G<2?"0"+s:s},D);C"#"+Q.22("")},8F:B(hv){A t=D,7S=t.r+", "+t.g+", "+t.b;C(hv?"hs("+7S+", "+t.a:"7S("+7S)+")"},2i:B(){C D.8F(K)}});z.d8=B(bA,1d,hu,M){A d=z,t=M||S z.1J();d.1n(["r","g","b","a"],B(x){t[x]=bA[x]+(1d[x]-bA[x])*hu;if(x!="a"){t[x]=2Y.oH(t[x])}});C t.7Q()};z.ho=B(ht,M){A m=ht.1M().1f(/^hs?\\(([\\s\\.,0-9]+)\\)/);C m&&z.7P(m[1].1A(/\\s*,\\s*/),M)};z.hn=B(4j,M){A d=z,t=M||S d.1J(),7R=(4j.G==4)?4:8,hr=(1<<7R)-1;4j=2V("oG"+4j.3b(1));if(2L(4j)){C L}d.1n(["b","g","r"],B(x){A c=4j&hr;4j>>=7R;t[x]=7R==4?17*c:c});t.a=1;C t};z.7P=B(a,M){A t=M||S z.1J();t.bz(2V(a[0]),2V(a[1]),2V(a[2]),2V(a[3]));if(2L(t.a)){t.a=1}C t.7Q()};z.hq=B(2H,M){A a=z.1J.hp[2H];C a&&z.7P(a,M)||z.ho(2H,M)||z.hn(2H,M)}}if(!z.1h["z.X"]){z.1h["z.X"]=K;z.1Q("z.X")}if(!z.1h["z.X.5Z"]){z.1h["z.X.5Z"]=K;z.1Q("z.X.5Z");(B(){A 1j=z.b2={2P:B(E,68,fp){if(!E){C}68=1j.4O(68);fp=1j.7G(68,fp);E.66(68,fp,U);C fp},3J:B(E,hm,hl){(E)&&(E.oF(1j.4O(hm),hl,U))},4O:B(1p){C(1p.2w(0,2)=="on"?1p.2w(2):1p)},7G:B(1p,fp){C(1p!="4b"?fp:B(e){C fp.2d(D,1j.4i(e,D))})},4i:B(H,oE){4w(H.Z){2X"4b":1j.7K(H);3f}C H},7K:B(H){H.oD=(H.3h?67.oC(H.3h):"")}};z.oB=B(H,hk){C 1j.4i(H,hk)};z.gY=B(H){H.7J();H.7I()};A 7O=z.3i;z.by=B(M,bx,hh,hg,hi){A hj=M&&(M.2t||M.oA||M.66);A bw=!hj?0:(!hi?1:2),l=[z.3i,1j,7O][bw];A h=l.2P(M,bx,z.2p(hh,hg));C[M,bx,h,bw]};z.bv=B(M,he,hd,hf){([z.3i,1j,7O][hf]).3J(M,he,hd)};z.5W={oz:8,gV:9,oy:12,ox:13,ow:16,ov:17,ou:18,gG:19,ot:20,os:27,or:32,b5:33,b4:34,gE:35,gF:36,b7:37,b9:38,b6:39,b8:40,gD:45,8S:46,oq:47,oo:91,om:92,ol:93,oj:96,oi:97,oh:98,og:99,oe:6D,od:oc,ob:oa,o9:o8,o7:o6,o5:o4,o3:bi,o2:o1,o0:nZ,nY:nX,nW:nV,nU:bk,gS:nT,gR:nS,gQ:nR,gP:nQ,gO:nP,gN:nO,gM:nN,gL:nM,gK:nL,gJ:nK,gI:nJ,gH:nI,nH:nG,nF:nE,nD:nC,gB:nB,gC:nA};if(z.1l){bf=B(e,5h){1u{C(e.3I=5h)}1y(e){C 0}};A 61=z.3i;if(!1o.nz){7O=61=z.gy={b3:[],2P:B(64,bu,hc){64=64||z.1W;A f=64[bu];if(!f||!f.2b){A d=z.gz();d.5V=f&&(7M.Y(f)-1);d.2b=[];f=64[bu]=d}C f.2b.Y(7M.Y(hc)-1)},3J:B(hb,ha,7N){A f=(hb||z.1W)[ha],l=f&&f.2b;if(f&&l&&7N--){63 7M[l[7N]];63 l[7N]}}};A 7M=61.b3}z.1x(1j,{2P:B(E,62,fp){if(!E){C}62=1j.4O(62);if(62=="h3"){A kd=E.bs;if(!kd||!kd.2b||!kd.h9){1j.2P(E,"bs",1j.h4);E.bs.h9=K}}C 61.2P(E,62,1j.7G(fp))},3J:B(E,h8,h7){61.3J(E,1j.4O(h8),h7)},4O:B(7L){C(7L.2w(0,2)!="on"?"on"+7L:7L)},ny:B(){},4i:B(H,4N){if(!H){A w=(4N)&&((4N.aD||4N.1q||4N).nx)||26;H=w.5Z}if(!H){C(H)}H.5V=H.br;H.bh=(4N||H.br);H.nw=H.nv;H.nu=H.nr;A bq=H.br,1e=(bq&&bq.aD)||1q;A bn=((z.1l<6)||(1e["aX"]=="aW"))?1e.3E:1e.5K;A bm=z.aB();H.nq=H.np+z.aH(bn.5I||0)-bm.x;H.nn=H.nm+(bn.5G||0)-bm.y;if(H.Z=="fk"){H.h6=H.nl}if(H.Z=="fj"){H.h6=H.nk}H.7I=1j.bc;H.7J=1j.ba;C 1j.h5(H)},h5:B(H){4w(H.Z){2X"4b":A c=("3h"in H?H.3h:H.3I);if(c==10){c=0;H.3I=13}I{if(c==13||c==27){c=0}I{if(c==3){c=99}}}H.3h=c;1j.7K(H);3f}C H},gZ:{bi:42,bk:47,h2:59,nj:43,ni:44,nh:45,ng:46,nf:47,60:96,h1:91,nb:92,na:93,h0:39},h4:B(H){A kp=H.bh.h3;if(!kp||!kp.2b){C}A k=H.3I;A bj=(k!=13)&&(k!=32)&&(k!=27)&&(k<48||k>90)&&(k<96||k>bk)&&(k<h2||k>60)&&(k<h1||k>h0);if(bj||H.5Y){A c=(bj?0:k);if(H.5Y){if(k==3||k==13){C}I{if(c>95&&c<bi){c-=48}I{if((!H.5X)&&(c>=65&&c<=90)){c+=32}I{c=1j.gZ[c]||c}}}}A 2x=1j.7H(H,{Z:"4b",2x:K,3h:c});kp.2d(H.bh,2x);H.bg=2x.bg;H.bd=2x.bd;bf(H,2x.3I)}},bc:B(){D.bg=K},ba:B(){D.n9=D.3I;if(D.5Y){bf(D,0)}D.bd=U}});z.gY=B(H){H=H||26.5Z;1j.bc.2d(H);1j.ba.2d(H)}}1j.7H=B(H,gX){A 2x=z.1x({},H,gX);1j.7K(2x);2x.7J=B(){H.7J()};2x.7I=B(){H.7I()};C 2x};if(z.2M){z.1x(1j,{4i:B(H,n8){4w(H.Z){2X"4b":A c=H.n7;if(c==3){c=99}c=((c<41)&&(!H.5X)?0:c);if((H.5Y)&&(!H.5X)&&(c>=65)&&(c<=90)){c+=32}C 1j.7H(H,{3h:c})}C H}})}if(z.3o){z.1x(1j,{4i:B(H,n6){4w(H.Z){2X"4b":A c=H.3h,s=H.5X,k=H.3I;k=k||gA[H.gW]||0;if(H.gW=="n5"){c=0}I{if((H.5Y)&&(c>0)&&(c<27)){c+=96}I{if(c==z.5W.gU){c=z.5W.gV;s=K}I{c=(c>=32&&c<gT?c:0)}}}C 1j.7H(H,{3h:c,5X:s,3I:k})}C H}});z.1x(z.5W,{gU:25,b9:gT,b8:n4,b7:n3,b6:n2,gS:n1,gR:n0,gQ:mZ,gP:mY,gO:mX,gN:mW,gM:mV,gL:mU,gK:mT,gJ:mS,gI:mR,gH:mQ,gG:mP,8S:mO,gF:mN,gE:mM,b5:mL,b4:mK,gD:mJ,mI:mH,gC:mG,gB:mF});A dk=z.5W,gA={"mE":dk.b9,"mD":dk.b8,"mC":dk.b7,"mB":dk.b6,"mA":dk.b5,"mz":dk.b4}}})();if(z.1l){z.gz=B(){C B(){A ap=4e.1C,h=z.gy.b3,c=P.2O,ls=c.2b,t=h[c.5V];A r=t&&t.14(D,P);R(A i in ls){if(!(i in ap)){h[ls[i]].14(D,P)}}C r}};z.b2.7G=B(fp){A f=z.b2.4i;C B(e){C fp.2d(D,f(e,D))}}}}if(!z.1h["z.X.b1"]){z.1h["z.X.b1"]=K;z.1Q("z.X.b1");1u{1q.my("mx",U,K)}1y(e){}if(z.1l||z.2M){z.1D=B(id,1e){if(z.1R(id)){A b0=(1e||z.1e);A 11=b0.gv(id);if((11)&&(11.gw.id.1Z==id)){C 11}I{A 5U=b0.gx[id];if(!5U){C}if(!5U.G){C 5U}A i=0;1s(11=5U[i++]){if(11.gw.id.1Z==id){C 11}}}}I{C id}}}I{z.1D=B(id,1e){if(z.1R(id)){C(1e||z.1e).gv(id)}I{C id}}}(B(){A 5T=L;z.mw=B(E){E=z.1D(E);1u{if(!5T){5T=1q.a9("mv")}5T.4c(E.1L?E.1L.fs(E):E);5T.9L=""}1y(e){}};z.mu=B(E,7F){1u{E=z.1D(E);7F=z.1D(7F);1s(E){if(E===7F){C K}E=E.1L}}1y(e){}C U};z.mt=B(E,5S){E=z.1D(E);if(z.gu){E.1c.ms=(5S)?"dg":"7C"}I{if(z.6B){E.1c.mr=(5S)?"8K":"7C"}I{if(z.1l){E.gs=(5S)?"":"on";z.1r("*",E).1n(B(gt){gt.gs=(5S)?"":"on"})}}}};A 5R=B(E,4h){4h.1L.mq(E,4h);C K};A aZ=B(E,4h){A pn=4h.1L;if(4h==pn.fm){pn.4c(E)}I{C 5R(E,4h.71)}C K};z.5E=B(E,2a,3H){if((!E)||(!2a)||(V 3H=="1k")){C U}E=z.1D(E);2a=z.1D(2a);if(V 3H=="4J"){A cn=2a.3W;if(((3H==0)&&(cn.G==0))||(cn.G==3H)){2a.4c(E);C K}if(3H==0){C 5R(E,2a.5A)}C aZ(E,cn[3H-1])}4w(3H.1M()){2X"mo":C 5R(E,2a);2X"a8":C aZ(E,2a);2X"9M":if(2a.5A){C 5R(E,2a.5A)}I{2a.4c(E);C K}3f;aY:2a.4c(E);C K}};z.aP="5g-3G";if(z.1l){A aV=1q.aX;z.aP=(aV=="aW")||(aV=="gr")||(z.1l<6)?"g5-3G":"5g-3G"}A 1E,dv=1q.mn;if(z.3o){1E=B(E){A s=dv.3F(E,L);if(!s&&E.1c){E.1c.gq="";s=dv.3F(E,L)}C s||{}}}I{if(z.1l){1E=B(E){C E.gn}}I{1E=B(E){C dv.3F(E,L)}}}z.3F=1E;if(!z.1l){z.4g=B(mm,gp){C 2k(gp)||0}}I{z.4g=B(go,2N){if(!2N){C 0}if(2N=="ml"){C 4}if(2N.2w&&(2N.2w(-2)=="px")){C 2k(2N)}4G(go){A gm=1c.2g;A gl=aU.2g;aU.2g=gn.2g;1u{1c.2g=2N;2N=1c.mk}1y(e){2N=0}1c.2g=gm;aU.2g=gl}C 2N}}z.ge=(z.1l?B(E){1u{C(E.mj.mi.2W/6D)}1y(e){C 1}}:B(E){C z.3F(E).2W});z.gf=(z.1l?B(E,7D){if(7D==1){E.1c.7E=E.1c.7E.2f(/gk:[^;]*;/i,"");if(E.gj.1M()=="gi"){z.1r("> gh",E).1n(B(i){i.1c.7E=i.1c.7E.2f(/gk:[^;]*;/i,"")})}}I{A o="mh(mg="+(7D*6D)+")";E.1c.3T=o}if(E.gj.1M()=="gi"){z.1r("> gh",E).1n(B(i){i.1c.3T=o})}C 7D}:B(E,gg){C E.1c.2W=gg});A 5Q={3n:K,58:K,2g:K,5J:K};A gd=B(E,Z,5P){Z=Z.1M();if(5Q[Z]===K){C z.4g(E,5P)}I{if(5Q[Z]===U){C 5P}I{if((Z.T("mf")>=0)||(Z.T("md")>=0)||(Z.T("3n")>=0)||(Z.T("58")>=0)||(Z.T("5q")>=0)||(Z.T("mc")>=0)||(Z.T("ma")>=0)){5Q[Z]=K;C z.4g(E,5P)}I{5Q[Z]=U;C 5P}}}};z.1c=B(E,5O,aT){A n=z.1D(E),F=P.G,op=(5O=="2W");if(F==3){C op?z.gf(n,aT):n.1c[5O]=aT}if(F==2&&op){C z.ge(n)}A s=z.3F(n);C(F==1)?s:gd(n,5O,s[5O])};z.7A=B(n,gc){A s=gc||1E(n),px=z.4g,l=px(n,s.m9),t=px(n,s.m8);C{l:l,t:t,w:l+px(n,s.m7),h:t+px(n,s.m6)}};z.5N=B(n,gb){A ne="7C",px=z.4g,s=gb||1E(n),bl=(s.m5!=ne?px(n,s.m4):0),bt=(s.m3!=ne?px(n,s.m2):0);C{l:bl,t:bt,w:bl+(s.m1!=ne?px(n,s.m0):0),h:bt+(s.lZ!=ne?px(n,s.lY):0)}};z.aN=B(n,ga){A s=ga||1E(n),p=z.7A(n,s),b=z.5N(n,s);C{l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h}};z.aM=B(n,g9){A s=g9||1E(n),px=z.4g,l=px(n,s.lX),t=px(n,s.lW),r=px(n,s.lV),b=px(n,s.lU);if(z.3o&&(s.ax!="fU")){r=l}C{l:l,t:t,w:l+r,h:t+b}};z.au=B(E,g8){A s=g8||1E(E),me=z.aM(E,s);A l=E.fT-me.l,t=E.fS-me.t;if(z.7B){A aS=2k(s.2g),aR=2k(s.5J);if(!2L(aS)&&!2L(aR)){l=aS,t=aR}I{A p=E.1L;if(p&&p.1c){A aQ=1E(p);if(aQ.lT!="lS"){A be=z.5N(p,aQ);l+=be.l,t+=be.t}}}}I{if(z.2M){A p=E.1L;if(p){A be=z.5N(p);l-=be.l,t-=be.t}}}C{l:l,t:t,w:E.6v+me.w,h:E.8D+me.h}};z.aK=B(E,g7){A s=g7||1E(E),pe=z.7A(E,s),be=z.5N(E,s),w=E.aF,h;if(!w){w=E.6v,h=E.8D}I{h=E.lR,be.w=be.h=0}if(z.2M){pe.l+=be.l;pe.t+=be.t}C{l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h}};z.lQ=B(E,g6){A s=g6||1E(E),pe=z.7A(E,s),cb=z.aK(E,s);C{l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h}};z.aL=B(E,l,t,w,h,u){u=u||"px";4G(E.1c){if(!2L(l)){2g=l+u}if(!2L(t)){5J=t+u}if(w>=0){3n=w+u}if(h>=0){58=h+u}}};z.aO=B(E){A n=E.5w;C(z.aP=="g5-3G")||(n=="lP")||(n=="lO")};z.fX=B(E,7z,7y,g4){A bb=z.aO(E);if(bb){A pb=z.aN(E,g4);if(7z>=0){7z+=pb.w}if(7y>=0){7y+=pb.h}}z.aL(E,g3,g3,7z,7y)};z.fY=B(E,g1,g0,5M,5L,g2){A s=g2||z.3F(E);A bb=z.aO(E),pb=bb?fZ:z.aN(E,s),mb=z.aM(E,s);if(5M>=0){5M=2Y.5q(5M-pb.w-mb.w,0)}if(5L>=0){5L=2Y.5q(5L-pb.h-mb.h,0)}z.aL(E,g1,g0,5M,5L)};A fZ={l:0,t:0,w:0,h:0};z.lN=B(E,3G){A n=z.1D(E),s=1E(n),b=3G;C!b?z.au(n,s):z.fY(n,b.l,b.t,b.w,b.h,s)};z.lM=B(E,3G){A n=z.1D(E),s=1E(n),b=3G;C!b?z.aK(n,s):z.fX(n,b.w,b.h,s)};A 5H=B(E,1a){if(!(E=(E||0).1L)){C 0}A 1U,aJ=0,2h=z.3E();1s(E&&E.1c){if(1E(E).ax=="lL"){C 0}1U=E[1a];if(1U){aJ+=1U-0;if(E==2h){3f}}E=E.1L}C aJ};z.fQ=B(){A 2h=z.3E();A 3g=z.1W;A de=z.1e.5K;C{y:(3g.lK||de.5G||2h.5G||0),x:(3g.lJ||z.aH(de.5I)||2h.5I||0)}};z.aG=B(){C V z.aI=="1k"?(z.aI=z.3F(z.3E()).lI=="lH"):z.aI};z.aB=B(){A de=z.1e.5K;if(z.1l>=7){C{x:de.aC().2g,y:de.aC().5J}}I{C{x:z.aG()||26.am==26?de.fW:de.6v-de.aF-de.fW,y:de.lG}}};z.aH=B(aE){if(z.1l&&!z.aG()){A de=z.1e.5K;C aE+de.aF-de.lF}C aE};z.fP=B(E,aw){A ay=E.aD;A J={x:0,y:0};A 7w=U;A db=z.3E();if(z.1l){A aA=E.aC();A az=z.aB();J.x=aA.2g-az.x;J.y=aA.5J-az.y}I{if(ay["fV"]){A bo=ay.fV(E);J.x=bo.x-5H(E,"5I");J.y=bo.y-5H(E,"5G")}I{if(E["fR"]){7w=K;A 7x;if(z.3o&&(1E(E).ax=="fU")&&(E.1L==db)){7x=db}I{7x=db.1L}if(E.1L!=db){A nd=E;if(z.2M){nd=db}J.x-=5H(nd,"5I");J.y-=5H(nd,"5G")}A 4f=E;do{A n=4f["fT"];if(!z.2M||n>0){J.x+=2L(n)?0:n}A m=4f["fS"];J.y+=2L(m)?0:m;4f=4f.fR}1s((4f!=7x)&&4f)}I{if(E["x"]&&E["y"]){J.x+=2L(E.x)?0:E.x;J.y+=2L(E.y)?0:E.y}}}}if(7w||aw){A av=z.fQ();A m=7w?(!aw?-1:0):1;J.y+=m*av.y;J.x+=m*av.x}C J};z.af=B(E,fO){A n=z.1D(E),s=1E(n),mb=z.au(n,s);A at=z.fP(n,fO);mb.x=at.x;mb.y=at.y;C mb}})();z.fL=B(E,fN){C((" "+E.3A+" ").T(" "+fN+" ")>=0)};z.7s=B(E,ar){A 7v=E.3A;if((" "+7v+" ").T(" "+ar+" ")<0){E.3A=7v+(7v?" ":"")+ar}};z.7r=B(E,fM){A t=z.7g((" "+E.3A+" ").2f(" "+fM+" "," "));if(E.3A!=t){E.3A=t}};z.lE=B(E,aq,7u){if(V 7u=="1k"){7u=!z.fL(E,aq)}z[7u?"7s":"7r"](E,aq)}}if(!z.1h["z.X.1H"]){z.1h["z.X.1H"]=K;z.1Q("z.X.1H");(B(){A d=z;z.1H=B(){A F=P;if((F.G==1)&&(V F[0]=="4J")){D.G=eK(F[0])}I{if(F.G){d.1n(F,B(i){D.Y(i)},D)}}};z.1H.1C=S 4e;if(d.1l){A fK=B(al){C("A a2 = am."+al+"; "+"A ap = 4e.1C; "+"A ao = a2.1C; "+"R(A x in ao){ ap[x] = ao[x]; } "+"am."+al+" = 4e; ")};A fI=fK("z.1H");A aj=26.lD();aj.1q.fJ("<ak>"+fI+"</ak>");aj.lC(1,1,1,1)}z.4M(z.1H,{T:B(fH,fG){C d.T(D,fH,fG)},31:B(lB,lA){A aa=d.4d(P);aa.ae(D);C d.31.14(d,aa)},ah:B(fF,fE){C d.ah(D,fF,fE)},ag:B(fD,fC){C d.ag(D,fD,fC)},1n:B(fB,fA){d.1n(D,fB,fA);C D},23:B(7t,M){C d.23(D,7t,M,d.1H)},af:B(){C d.23(D,d.af)},1c:B(lz,ly){A aa=d.4d(P);aa.ae(D[0]);A s=d.1c.14(d,aa);C(P.G>1)?D:s},lx:B(lw,lv){A aa=d.4d(P);aa.ae(L);A s=D.23(B(i){aa[0]=i;C d.1c.14(d,aa)});C(P.G>1)?D:s},7s:B(fz){C D.1n(B(i){z.7s(i,fz)})},7r:B(fy){C D.1n(B(i){z.7r(i,fy)})},5E:B(fw,7q){A 1m=d.1r(fw)[0];7q=7q||"72";R(A x=0;x<D.G;x++){d.5E(D[x],1m,7q)}C D},2c:B(fv,fu,ft){D.1n(B(1m){d.2c(1m,fv,fu,ft)});C D},lu:B(ad){A ac=(ad)?d.9t(D,ad):D;ac.1n(B(1m){if(1m["1L"]){1m.1L.fs(1m)}});C ac},lt:B(fr,fq){A 1m=D[0];C d.1r(fr).1n(B(ai){d.5E(ai,1m,(fq||"72"))})},1r:B(7p){7p=7p||"";A J=S d.1H();D.1n(B(1m){d.1r(7p,1m).1n(B(ab){if(V ab!="1k"){J.Y(ab)}})});C J},3T:B(fo){A 5F=D;A 1V=P;A r=S d.1H();A rp=B(t){if(V t!="1k"){r.Y(t)}};if(d.1R(fo)){5F=d.9t(D,1V[0]);if(1V.G==1){C 5F}d.1n(d.3T(5F,1V[1],1V[2]),rp);C r}d.1n(d.3T(5F,1V[0],1V[1]),rp);C r},lr:B(7o,7n){A 1S=d.1e.a9("lq");if(d.1R(7o)){1S.9L=7o}I{1S.4c(7o)}A ct=((7n=="9M")||(7n=="a8"))?"fm":"5A";D.1n(B(1m){A 24=1S.a7(K);1s(24[ct]){d.5E(24[ct],1m,7n)}});C D},7m:B(fl,F){A a5=[];F=F||{};D.1n(B(1m){A a6={E:1m};d.1x(a6,F);a5.Y(d[fl](a6))});C d.fx.lp(a5)},8I:B(F){C D.7m("8I",F)},8H:B(F){C D.7m("8H",F)},6y:B(F){C D.7m("6y",F)}});z.1n(["fk","lo","fj","fi","ln","lm","ll","fi","lk","lj","4b"],B(H){A a4="on"+H;z.1H.1C[a4]=B(a,b){C D.2c(a4,a,b)}})})()}if(!z.1h["z.X.1r"]){z.1h["z.X.1r"]=K;z.1Q("z.X.1r");(B(){A d=z;A 2I=B(q){C[q.T("#"),q.T("."),q.T("["),q.T(":")]};A a0=B(a3,fh){A ql=a3.G;A i=2I(a3);A 1d=ql;R(A x=fh;x<i.G;x++){if(i[x]>=0){if(i[x]<1d){1d=i[x]}}}C(1d<0)?ql:1d};A 6X=B(7l){A i=2I(7l);if(i[0]!=-1){C 7l.21(i[0]+1,a0(7l,1))}I{C""}};A 5r=B(7k){A 5D;A i=2I(7k);if((i[0]==0)||(i[1]==0)){5D=0}I{5D=a0(7k,0)}C((5D>0)?7k.3b(0,5D).1M():"*")};A fg=B(Q){A J=-1;R(A x=0;x<Q.G;x++){A 1S=Q[x];if(1S>=0){if((1S>J)||(J==-1)){J=1S}}}C J};A 9H=B(7i){A i=2I(7i);if(-1==i[1]){C""}A di=i[1]+1;A 7j=fg(i.2w(2));if(di<7j){C 7i.21(di,7j)}I{if(-1==7j){C 7i.3b(di)}I{C""}}};A f3=[{1i:"|=",1f:B(15,fe){C"[5z(3U(\' \',@"+15+",\' \'), \' "+fe+"-\')]"}},{1i:"~=",1f:B(15,fd){C"[5z(3U(\' \',@"+15+",\' \'), \' "+fd+" \')]"}},{1i:"^=",1f:B(15,fb){C"[li-4G(@"+15+", \'"+fb+"\')]"}},{1i:"*=",1f:B(15,fa){C"[5z(@"+15+", \'"+fa+"\')]"}},{1i:"$=",1f:B(15,9Z){C"[21(@"+15+", 3c-G(@"+15+")-"+(9Z.G-1)+")=\'"+9Z+"\']"}},{1i:"!=",1f:B(15,f9){C"[3O(@"+15+"=\'"+f9+"\')]"}},{1i:"=",1f:B(15,f8){C"[@"+15+"=\'"+f8+"\']"}}];A 9C=B(9Y,3Z,f7,f6){A 49;A i=2I(3Z);if(i[2]>=0){A 4L=3Z.T("]",i[2]);A 29=3Z.21(i[2]+1,4L);1s(29&&29.G){if(29.2s(0)=="@"){29=29.2w(1)}49=L;R(A x=0;x<9Y.G;x++){A 1S=9Y[x];A 7h=29.T(1S.1i);if(7h>=0){A 15=29.21(0,7h);A 4a=29.21(7h+1S.1i.G);if((4a.2s(0)=="\\"")||(4a.2s(0)=="\'")){4a=4a.21(1,4a.G-1)}49=1S.1f(d.7g(15),d.7g(4a));3f}}if((!49)&&(29.G)){49=f7(29)}if(49){f6(49)}29=L;A 7f=3Z.T("[",4L);if(0<=7f){4L=3Z.T("]",7f);if(0<=4L){29=3Z.21(7f+1,4L)}}}}};A f0=B(f5){A 4K=".";A 7e=f5.1A(" ");1s(7e.G){A 2K=7e.3a();A 7d;if(2K==">"){7d="/";2K=7e.3a()}I{7d="//"}A f4=5r(2K);4K+=7d+f4;A id=6X(2K);if(id.G){4K+="[@id=\'"+id+"\'][1]"}A cn=9H(2K);if(cn.G){A 9X=" ";if(cn.2s(cn.G-1)=="*"){9X="";cn=cn.3b(0,cn.G-1)}4K+="[5z(3U(\' \',@9P,\' \'), \' "+cn+9X+"\')]"}9C(f3,2K,B(f2){C"[@"+f2+"]"},B(f1){4K+=f1})}C 4K};A 7a={};A eC=B(28){if(7a[28]){C 7a[28]}A 1e=d.1e;A 9W=f0(28);A 4H=B(9V){A J=[];A 7b;1u{7b=1e.9x(9W,9V,L,lh.lg,L)}1y(e){1z.1K("lf in le:",9W,"lc:",9V);1z.1K(e)}A 7c=7b.eZ();1s(7c){J.Y(7c);7c=7b.eZ()}C J};C 7a[28]=4H};A 5x={};A 9B={};A 3y=B(79,78){if(!79){C 78}if(!78){C 79}C B(){C 79.14(26,P)&&78.14(26,P)}};A 75=B(9U,3Y,5B,2J){A 2v=2J+1;A 76=(3Y.G==2v);A 2K=3Y[2J];if(2K==">"){A 77=9U.3W;if(!77.G){C}2v++;76=(3Y.G==2v);A 4H=6O(3Y[2J+1]);R(A x=0,11;x<77.G,11=77[x];x++){if(4H(11)){if(76){5B.Y(11)}I{75(11,3Y,5B,2v)}}}}A 5C=6U(2K)(9U);if(76){1s(5C.G){5B.Y(5C.3a())}}I{1s(5C.G){75(5C.3a(),3Y,5B,2v)}}};A eE=B(9T,eY){A J=[];A x=9T.G-1,11;1s(11=9T[x--]){75(11,eY,J,0)}C J};A 6O=B(3D){if(5x[3D]){C 5x[3D]}A ff=L;A 9S=5r(3D);if(9S!="*"){ff=3y(ff,B(N){C((N.2t==1)&&(9S==N.5w.1M()))})}A 9R=6X(3D);if(9R.G){ff=3y(ff,B(N){C((N.2t==1)&&(N.id==9R))})}if(2Y.5q.14(D,2I(3D).2w(1))>=0){ff=3y(ff,9z(3D))}C 5x[3D]=ff};A 5y=B(E){A pn=E.1L;A 9Q=pn.3W;A 2v=-1;A 3C=pn.5A;if(!3C){C 2v}A ci=E["eW"];A cl=pn["eX"];if(((V cl=="4J")&&(cl!=9Q.G))||(V ci!="4J")){pn["eX"]=9Q.G;A 2J=1;do{if(3C===E){2v=2J}if(3C.2t==1){3C["eW"]=2J;2J++}3C=3C.71}1s(3C)}I{2v=ci}C 2v};A lb=0;A 3X=B(N,15){A 74="";if(15=="9P"){C N.3A||74}if(15=="R"){C N.la||74}C N.5t(15,2)||74};A eH=[{1i:"|=",1f:B(15,9O){A eV=" "+9O+"-";C B(N){A ea=" "+(N.5t(15,2)||"");C((ea==9O)||(ea.T(eV)==0))}}},{1i:"^=",1f:B(15,eU){C B(N){C(3X(N,15).T(eU)==0)}}},{1i:"*=",1f:B(15,eT){C B(N){C(3X(N,15).T(eT)>=0)}}},{1i:"~=",1f:B(15,eS){A 9N=" "+eS+" ";C B(N){A ea=" "+3X(N,15)+" ";C(ea.T(9N)>=0)}}},{1i:"$=",1f:B(15,73){A 9N=" "+73;C B(N){A ea=" "+3X(N,15);C(ea.31(73)==(ea.G-73.G))}}},{1i:"!=",1f:B(15,eR){C B(N){C(3X(N,15)!=eR)}}},{1i:"=",1f:B(15,eQ){C B(N){C(3X(N,15)==eQ)}}}];A 9E=[{1i:"9M-9K",1f:B(1p,l9){C B(N){if(N.2t!=1){C U}A fc=N.eP;1s(fc&&(fc.2t!=1)){fc=fc.eP}C(!fc)}}},{1i:"72-9K",1f:B(1p,l8){C B(N){if(N.2t!=1){C U}A nc=N.71;1s(nc&&(nc.2t!=1)){nc=nc.71}C(!nc)}}},{1i:"l7",1f:B(1p,l6){C B(N){A cn=N.3W;A eO=N.3W.G;R(A x=eO-1;x>=0;x--){A nt=cn[x].2t;if((nt==1)||(nt==3)){C U}}C K}}},{1i:"5z",1f:B(1p,eN){C B(N){C(N.9L.T(eN)>=0)}}},{1i:"3O",1f:B(1p,eM){A eL=6O(eM);C B(N){C(!eL(N))}}},{1i:"l5-9K",1f:B(1p,2u){A pi=eK;if(2u=="l4"){C B(N){C(((5y(N))%2)==1)}}I{if((2u=="2n")||(2u=="l3")){C B(N){C((5y(N)%2)==0)}}I{if(2u.T("l2+")==0){A 70=pi(2u.3b(3));C B(N){C(N.1L.3W[70-1]===N)}}I{if((2u.T("n+")>0)&&(2u.G>3)){A 9J=2u.1A("n+",2);A eJ=pi(9J[0]);A 2J=pi(9J[1]);C B(N){C((5y(N)%eJ)==2J)}}I{if(2u.T("n")==-1){A 70=pi(2u);C B(N){C(5y(N)==70)}}}}}}}}];A 9z=B(3e){A 9I=(9B[3e]||5x[3e]);if(9I){C 9I}A ff=L;A i=2I(3e);if(i[0]>=0){A 24=5r(3e);if(24!="*"){ff=3y(ff,B(N){C(N.5w.1M()==24)})}}A 5u;A 3B=9H(3e);if(3B.G){A 9F=3B.2s(3B.G-1)=="*";if(9F){3B=3B.3b(0,3B.G-1)}A re=S 9G("(?:^|\\\\s)"+3B+(9F?".*":"")+"(?:\\\\s|$)");ff=3y(ff,B(N){C re.6Z(N.3A)})}if(i[3]>=0){A 3z=3e.3b(i[3]+1);A 9D="";A 5v=3z.T("(");A 6Y=3z.31(")");if((0<=5v)&&(0<=6Y)&&(6Y>5v)){9D=3z.21(5v+1,6Y);3z=3z.3b(0,5v)}5u=L;R(A x=0;x<9E.G;x++){A 1S=9E[x];if(1S.1i==3z){5u=1S.1f(3z,9D);3f}}if(5u){ff=3y(ff,5u)}}A eG=(d.1l)?B(5s){A eI=5s.1M();C B(N){C N[5s]||N[eI]}}:B(5s){C B(N){C(N&&N.5t&&N.l1(5s))}};9C(eH,3e,eG,B(eF){ff=3y(ff,eF)});if(!ff){ff=B(){C K}}C 9B[3e]=ff};A 6W={};A 6U=B(3d,1B){A 9A=6W[3d];if(9A){C 9A}A i=2I(3d);A id=6X(3d);if(i[0]==0){C 6W[3d]=B(1B){C[d.1D(id)]}}A 9y=9z(3d);A 5p;if(i[0]>=0){5p=B(1B){A 11=d.1D(id);if(9y(11)){C[11]}}}I{A 3V;A 24=5r(3d);if(2Y.5q.14(D,2I(3d))==-1){5p=B(1B){A J=[];A 11,x=0,3V=1B.4I(24);1s(11=3V[x++]){J.Y(11)}C J}}I{5p=B(1B){A J=[];A 11,x=0,3V=1B.4I(24);1s(11=3V[x++]){if(9y(11)){J.Y(11)}}C J}}}C 6W[3d]=5p};A l0={};A 5o={">":B(1B){A J=[];A 11,x=0,3V=1B.3W;1s(11=3V[x++]){if(11.2t==1){J.Y(11)}}C J}};A 9w=B(6V){if(0>6V.T(" ")){C 6U(6V)}A eD=B(1B){A 6S=6V.1A(" ");A 6T;if(6S[0]==">"){6T=[1B]}I{6T=6U(6S.3a())(1B)}C eE(6T,6S)};C eD};A 9v=((1q["9x"]&&!d.3o)?B(3x){A 6R=3x.1A(" ");if((1q["9x"])&&(3x.T(":")==-1)&&((K))){if(((6R.G>2)&&(3x.T(">")==-1))||(6R.G>3)||(3x.T("[")>=0)||((1==6R.G)&&(0<=3x.T(".")))){C eC(3x)}}C 9w(3x)}:9w);A ey=B(3w){if(5o[3w]){C 5o[3w]}if(0>3w.T(",")){C 5o[3w]=9v(3w)}I{A eB=3w.1A(/\\s*,\\s*/);A 4H=B(1B){A eA=0;A J=[];A 6Q;1s(6Q=eB[eA++]){J=J.3U(9v(6Q,6Q.T(" "))(1B))}C J};C 5o[3w]=4H}};A 5n=0;A ez=B(Q){A J=S d.1H();if(!Q){C J}if(Q[0]){J.Y(Q[0])}if(Q.G<2){C J}5n++;Q[0]["9u"]=5n;R(A x=1,11;11=Q[x];x++){if(Q[x]["9u"]!=5n){J.Y(11)}11["9u"]=5n}C J};d.1r=B(6P,1B){if(V 6P!="3c"){C S d.1H(6P)}if(V 1B=="3c"){1B=d.1D(1B)}C ez(ey(6P)(1B||d.1e))};d.9t=B(ex,9s){A 9r=S d.1H();A ff=(9s)?6O(9s):B(){C K};R(A x=0,11;11=ex[x];x++){if(ff(11)){9r.Y(11)}}C 9r}})()}if(!z.1h["z.X.1b"]){z.1h["z.X.1b"]=K;z.1Q("z.X.1b");z.6K=B(ew){A J={};A iq="kZ[Z!=9q][Z!=kY][Z!=et][Z!=kX][Z!=kW], kV, kU";z.1r(iq,ew).3T(B(E){C(!E.kT)}).1n(B(1m){A 3v=1m.1p;A Z=(1m.Z||"").1M();if((Z=="kS")||(Z=="kR")){if(1m.kQ){J[3v]=1m.1Z}}I{if(1m.kP){A ev=J[3v]=[];z.1r("kO[kN]",1m).1n(B(eu){ev.Y(eu.1Z)})}I{J[3v]=1m.1Z;if(Z=="et"){J[3v+".x"]=J[3v+".y"]=J[3v].x=J[3v].y=0}}}});C J};z.9h=B(23){A ec=kM;A J="";A es={};R(A x in 23){if(23[x]!=es[x]){if(z.2l(23[x])){R(A y=0;y<23[x].G;y++){J+=ec(x)+"="+ec(23[x][y])+"&"}}I{J+=ec(x)+"="+ec(23[x])+"&"}}}if((J.G)&&(J.2s(J.G-1)=="&")){J=J.3b(0,J.G-1)}C J};z.kL=B(er){C z.9h(z.6K(er))};z.kK=B(ep){C z.eq(z.6K(ep))};z.kJ=B(2H){A J={};A qp=2H.1A("&");A dc=kI;z.1n(qp,B(1m){if(1m.G){A 9p=1m.1A("=");A 1p=dc(9p.3a());A 1U=dc(9p.22("="));if(z.1R(J[1p])){J[1p]=[J[1p]]}if(z.2l(J[1p])){J[1p].Y(1U)}I{J[1p]=1U}}});C J};z.e1=U;z.e6={"9g":B(1b){C 1b.2G},"2e":B(1b){if(!1o.eo){1z.1K("kH kG kF a kE of 9g/2e-6M-9m"+" 4F kD kC kB kA 4G en kz"+" (ky 1o.eo=K 4F kx kw D kv)")}C z.5m(1b.2G)},"2e-6M-ku":B(1b){A 6N=1b.2G;A 9o=6N.T("/*");A 9n=6N.31("*/");if((9o==-1)||(9n==-1)){C z.5m(1b.2G)}C z.5m(6N.21(9o+2,9n))},"2e-6M-9m":B(1b){A 6L=1b.2G;A 9l=6L.T("/*");A 9k=6L.31("*/");if((9l==-1)||(9k==-1)){1z.1K("kt en ks\'t 6M 9m!");C""}C z.5m(6L.21(9l+2,9k))},"kr":B(1b){C z.3u(1b.2G)},"kq":B(1b){if(z.1l&&!1b.el){z.1n(["ko","em","kn","km"],B(i){1u{A 1e=S 9j(kl[i]+".kk");1e.kj=U;1e.ki(1b.2G);C 1e}1y(e){}})}I{C 1b.el}}};(B(){z.e5=B(F,ej,ei,eh){A 2F={};2F.F=F;A 6J=L;if(F.3R){A 3R=z.1D(F.3R);A 9i=3R.kh("kg");2F.2E=F.2E||(9i?9i.1Z:L);6J=z.6K(3R)}I{2F.2E=F.2E}A 5l=[{}];if(6J){5l.Y(6J)}if(F.5g){5l.Y(F.5g)}if(F.ek){5l.Y({"z.ek":S 5d().8O()})}2F.1r=z.9h(z.1x.14(L,5l));2F.9d=F.9d||"9g";A d=S z.30(ej);d.5k(ei,B(eg){C eh(eg,d)});A ld=F.4E;if(ld&&z.1Y(ld)){d.ef(B(ee){C ld.2d(F,ee,2F)})}A 1G=F.9f;if(1G&&z.1Y(1G)){d.ed(B(e9){C 1G.2d(F,e9,2F)})}A 6I=F.kf;if(6I&&z.1Y(6I)){d.9e(B(e8){C 6I.2d(F,e8,2F)})}d.1F=2F;C d};A e4=B(O){O.e0=K;A 1b=O.1F.1b;if(V 1b.e7=="B"){1b.e7()}};A e3=B(O){C z.e6[O.1F.9d](O.1F.1b)};A e2=B(9c,O){1z.1K(9c);C 9c};A 3Q=B(F){A O=z.e5(F,e4,e3,e2);O.1F.1b=z.9b(O.1F.F);C O};A 5j=L;A 3t=[];A 94=B(){A dZ=(S 5d()).dU();if(!z.e1){z.1n(3t,B(4D,6H){if(!4D){C}A O=4D.O;1u{if(!O||O.e0||!4D.dT(O)){3t.3S(6H,1);C}if(4D.dR(O)){3t.3S(6H,1);4D.dP(O)}I{if(O.9a){if(O.9a+(O.1F.F.6G||0)<dZ){3t.3S(6H,1);A 1G=S 1O("6G ke");1G.dY="6G";O.5i(1G);O.4C()}}}}1y(e){1z.1K(e);O.5i(S 1O("kc!"))}})}if(!3t.G){dX(5j);5j=L;C}};z.dV=B(){1u{z.1n(3t,B(i){i.O.4C()})}1y(e){}};if(z.1l){z.dW(z.dV)}z.dH=B(O,dS,dQ,dO){if(O.1F.F.6G){O.9a=(S 5d()).dU()}3t.Y({O:O,dT:dS,dR:dQ,dP:dO});if(!5j){5j=dN(94,50)}94()};A dJ="8Z/x-kb-3R-ka";A dG=B(O){C O.1F.1b.6F};A dF=B(O){C 4==O.1F.1b.6F};A dE=B(O){if(z.8Y(O.1F.1b)){O.dM(O)}I{O.5i(S 1O("k9 k8 k7 5h:"+O.1F.1b.3N))}};A 3P=B(Z,O){A 3s=O.1F;A F=3s.F;3s.1b.dL(Z,3s.2E,(F.k6!==K),(F.8X?F.8X:1k),(F.8W?F.8W:1k));if(F.6E){R(A 5f in F.6E){if(5f.1M()==="5g-Z"&&!F.8V){F.8V=F.6E[5f]}I{3s.1b.dK(5f,F.6E[5f])}}}3s.1b.dK("k5-k4",(F.8V||dJ));1u{3s.1b.dI(3s.1r)}1y(e){O.4C()}z.dH(O,dG,dF,dE);C O};z.8T=B(4B){if(4B.1r.G){4B.2E+=(4B.2E.T("?")==-1?"?":"&")+4B.1r;4B.1r=L}};z.k3=B(F){A O=3Q(F);z.8T(O.1F);C 3P("dD",O)};z.k2=B(F){C 3P("dC",3Q(F))};z.k1=B(F){A O=3Q(F);O.1F.1r=F.k0;C 3P("dC",O)};z.jZ=B(F){C 3P("dA",3Q(F))};z.jY=B(F){A O=3Q(F);A dB=O.1F;if(F["8U"]){dB.1r=F.8U;F.8U=L}C 3P("dA",O)};z.jX=B(F){A O=3Q(F);z.8T(O.1F);C 3P("8S",O)};z.dz=B(jW){2m S 1O("z.dz 3O jV jU")}})()}if(!z.1h["z.X.fx"]){z.1h["z.X.fx"]=K;z.1Q("z.X.fx");z.dx=B(dy,1d){D.1w=dy;D.1d=1d;D.4x=B(n){C((D.1d-D.1w)*n)+D.1w}};z.2r("z.d6",L,{1P:B(F){z.1x(D,F);if(z.2l(D.2C)){D.2C=S z.dx(D.2C[0],D.2C[1])}},2C:L,8Q:jT,5a:L,4z:0,dj:10,du:L,6x:L,dt:L,8B:L,dh:L,ds:L,dr:L,dm:L,2D:U,2Z:U,4A:L,8N:L,3r:L,2o:0,4y:0,3q:B(H,F){if(D[H]){D[H].14(D,F||[])}C D},5b:B(dw,8R){if(8R){5e(D.3r);D.2D=D.2Z=U;D.2o=0}I{if(D.2D&&!D.2Z){C D}}D.3q("6x");A d=dw||D.du;if(d>0){5c(z.2p(D,B(){D.5b(L,8R)}),d);C D}D.4A=S 5d().8O();if(D.2Z){D.4A-=D.8Q*D.2o}D.8N=D.4A+D.8Q;D.2D=K;D.2Z=U;A 8P=D.2C.4x(D.2o);if(!D.2o){if(!D.4y){D.4y=D.4z}D.3q("dt",[8P])}D.3q("ds",[8P]);D.8M();C D},jS:B(){5e(D.3r);if(!D.2D){C D}D.2Z=K;D.3q("dr",[D.2C.4x(D.2o)]);C D},jR:B(dq,dp){5e(D.3r);D.2D=D.2Z=K;D.2o=dq*6D;if(dp){D.5b()}C D},jQ:B(dn){if(!D.3r){C}5e(D.3r);if(dn){D.2o=1}D.3q("dm",[D.2C.4x(D.2o)]);D.2D=D.2Z=U;C D},3N:B(){if(D.2D){C D.2Z?"3M":"jP"}C"jO"},8M:B(){5e(D.3r);if(D.2D){A dl=S 5d().8O();A 2q=(dl-D.4A)/(D.8N-D.4A);if(2q>=1){2q=1}D.2o=2q;if(D.5a){2q=D.5a(2q)}D.3q("8B",[D.2C.4x(2q)]);if(2q<1){D.3r=5c(z.2p(D,"8M"),D.dj)}I{D.2D=U;if(D.4z>0){D.4z--;D.5b(L,K)}I{if(D.4z==-1){D.5b(L,K)}I{if(D.4y){D.4z=D.4y;D.4y=0}}}D.2o=0;D.3q("dh")}}C D}});(B(){A df=B(E){if(z.1l){A ns=E.1c;if(!ns.8L.G&&z.1c(E,"8L")=="dg"){ns.8L="1"}if(!ns.3n.G&&z.1c(E,"3n")=="8K"){ns.3n="8K"}}};z.6C=B(F){if(V F.1d=="1k"){2m S 1O("z.6C jN an 1d 1Z")}F.E=z.1D(F.E);A 3p=z.1x({6w:{}},F);A 8J=(3p.6w.2W={});8J.1w=(V 3p.1w=="1k")?B(){C 2V(z.1c(3p.E,"2W"))}:3p.1w;8J.1d=3p.1d;A 2U=z.6y(3p);z.2c(2U,"6x",L,B(){df(3p.E)});C 2U};z.8I=B(F){C z.6C(z.1x({1d:1},F))};z.8H=B(F){C z.6C(z.1x({1d:0},F))};if(z.6B&&!z.3o){z.8E=B(n){C 2k("0.5")+((2Y.da((n+2k("1.5"))*2Y.d9))/2)}}I{z.8E=B(n){C 0.5+((2Y.da((n+1.5)*2Y.d9))/2)}}A d4=B(6A){D.8G=6A;R(A p in 6A){A 1a=6A[p];if(1a.1w 1N z.1J){1a.d7=S z.1J()}}D.4x=B(r){A J={};R(A p in D.8G){A 1a=D.8G[p];A 6z=L;if(1a.1w 1N z.1J){6z=z.d8(1a.1w,1a.1d,r,1a.d7).8F()}I{if(!z.2l(1a.1w)){6z=((1a.1d-1a.1w)*r)+1a.1w+(p!="2W"?1a.jM||"px":"")}}J[p]=6z}C J}};z.6y=B(F){F.E=z.1D(F.E);if(!F.5a){F.5a=z.8E}A 2U=S z.d6(F);z.2c(2U,"6x",2U,B(){A pm={};R(A p in D.6w){A 1a=pm[p]=z.1x({},D.6w[p]);if(z.1Y(1a.1w)){1a.1w=1a.1w()}if(z.1Y(1a.1d)){1a.1d=1a.1d()}A d5=(p.1M().T("jL")>=0);B 8C(E,p){4w(p){2X"58":C E.8D;2X"3n":C E.6v}A v=z.1c(E,p);C(p=="2W")?2V(v):2k(v)};if(V 1a.1d=="1k"){1a.1d=8C(D.E,p)}I{if(V 1a.1w=="1k"){1a.1w=8C(D.E,p)}}if(d5){1a.1w=S z.1J(1a.1w);1a.1d=S z.1J(1a.1d)}I{1a.1w=(p=="2W")?2V(1a.1w):2k(1a.1w)}}D.2C=S d4(pm)});z.2c(2U,"8B",2U,B(8A){R(A s in 8A){z.1c(D.E,s,8A[s])}});C 2U}})()}',62,1711,'|||||||||||||||||||||||||||||||||||dojo|var|function|return|this|node|args|length|evt|else|ret|true|null|obj|elem|dfd|arguments|arr|for|new|indexOf|false|typeof||_base|push|type||te|||apply|attr|||||prop|xhr|style|end|doc|match|uri|_hasResource|key|del|undefined|isIE|item|forEach|djConfig|name|document|query|while|_66|try|res|start|mixin|catch|console|split|root|prototype|byId|gcs|ioArgs|err|NodeList|_p|Color|debug|parentNode|toLowerCase|instanceof|Error|constructor|provide|isString|ta|255|val|_a|global|_69|isFunction|value||substring|join|map|tn||window||path|_343|_220|_listeners|connect|call|json|replace|left|_b|toString|128|parseFloat|isArray|throw||_percent|hitch|step|declare|charAt|nodeType|_3c3|nidx|slice|faux|fired|_c4|_7e|loc|curve|_active|url|_44c|responseText|str|_312|idx|tqp|isNaN|isOpera|_22d|callee|add|_18b|_f8|_e2|_41|anim|Number|opacity|case|Math|_paused|Deferred|lastIndexOf|||||||||shift|substr|string|_3e7|_3ce|break|_w|charCode|_listener|_d5|_c5|authority|_49|width|isSafari|_49e|fire|_timer|_47b|_465|eval|_in|_40c|_409|_362|_3d9|className|_3d5|_386|_37a|body|getComputedStyle|box|_221|keyCode|remove|_8d|_46|paused|status|not|_478|_461|form|splice|filter|concat|tret|childNodes|_38b|_367|_33d||||||||||_340|_348|keypress|appendChild|_toArray|Array|_2b0|_toPixelValue|ref|_fixEvent|_19f|_14c|_14a|_150|_141|declaredClass|_d4|_99|_Url|_83|scheme|_67|_3d|switch|getValue|_startRepeatCount|repeat|_startTime|_47e|cancel|tif|load|to|with|tf|getElementsByTagName|number|_34c|_342|extend|_1e3|_normalizeEventName|_14b|_14e|results|self|cbfn|_f9|_d8|_b2|src|_88|dav||baseUrl|fragment|_loadedModules|_44|_43|_loaders|mll|height||easing|play|setTimeout|Date|clearTimeout|hdr|content|code|errback|_464|addCallbacks|_450|fromJson|_413|_3fc|_3ee|max|_31e|cond|getAttribute|_3d4|obi|tagName|_360|_381|contains|firstChild|_368|_372|_320|place|_2fa|scrollTop|_299|scrollLeft|top|documentElement|_288|_287|_getBorderExtents|_23f|_23d|_239|_218|_216|_211|eles|target|keys|shiftKey|ctrlKey|event|192|iel|_1db|delete|_1cf||addEventListener|String|_1af|_157|array|_14d|continue|_14f|_137|_11f|_106|_findMethod|has|_delegate|_dc|_d3|loaded|_9a|_loadInit|_inFlightCount|getObject|tv|_4f|_postLoad|_2d|offsetWidth|properties|beforeBegin|animateProperty|_4ad|_4a6|isKhtml|_fade|100|headers|readyState|timeout|_469|_457|_44d|formToObject|_441|comment|_43d|_36f|_419|tp|_40a|_406|_407|_373|_403|_3e6|_31b|cbi|test|_3c7|nextSibling|last|_3a1|_38e|_365|_36b|ecn|_364|_363|_356|_35e|_35f|_34f|_34d|_349|trim|tci|_328|_32b|_31f|_31c|_anim|_300|_2ff|_2f5|_2e7|removeClass|addClass|func|_2c4|cls|_2a9|_2ae|_280|_27f|_getPadExtents|isMoz|none|_233|cssText|_214|_fixCallback|_synthesizeEvent|stopPropagation|preventDefault|_setKeyChar|_1e1|ieh|_1d7|_1be|colorFromArray|sanitize|bits|rgb|_156|_fire|_resback|_13d|partial|_13a|silentlyCancelled|_topics|_127|_f1|_f0|superclass|_ec|_e3|mct|setObject|_bf|_b3|object|require|_92|_khtmlTimer|location|XMLHTTP|locale|dua|_71|_modulePrefixes|_55|_loadModule|_51|_50|_4e|pop|_3f|_callLoaded|_unloaders|_loadNotifying|_loadedUrls|_27|_24|_1d|_5|_4b7|onAnimate|getStyle|offsetHeight|_defaultEasing|toCss|_properties|fadeOut|fadeIn|_49f|auto|zoom|_cycle|_endTime|valueOf|_494|duration|_492|DELETE|_ioAddQueryToUrl|putData|contentType|password|user|_isDocumentOk|application|||||_466||||||startTime|_xhrObj|_45f|handleAs|addBoth|error|text|objectToQuery|_44f|ActiveXObject|_443|_442|filtered|_43f|_43e|_437|file|tnl|_41c|_filterQueryResult|_zipIdx|_408|_402|evaluate|_3ed|_380|fHit|_361|_33b|_3da|_3ab|_3d6|RegExp|_327|_3cf|_3c9|child|innerHTML|first|tval|_391|class|pnc|_37e|_37c|_375|_366|_35c|_35a|_353|_33c|_336|_314|||_315|_oe|_307|_309|cloneNode|after|createElement||_2f8|_2ef|_2ee|unshift|coords|some|every||_2cb|script|_2c9|parent||a2p||_2c3|_2bd||abs|_getMarginBox|_2b3|_2a6|position|_2a7|_2ac|_2ab|_getIeDocumentElementOffset|getBoundingClientRect|ownerDocument|_2a3|clientWidth|_isBodyLtr|_fixIeBiDiScrollLeft|_bodyLtr|_29d|_getContentBox|_setBox|_getMarginExtents|_getPadBorderExtents|_usesBorderBox|boxModel|pcs|st|sl|_240|runtimeStyle|_dcm|BackCompat|compatMode|default|_21b|_d|html|_event_listener|handlers|PAGE_DOWN|PAGE_UP|RIGHT_ARROW|LEFT_ARROW|DOWN_ARROW|UP_ARROW|_preventDefault||_stopPropagation|returnValue||_trySetKeyCode|cancelBubble|currentTarget|106|_1ee|111||_1e8|_1e7|||se|srcElement|onkeydown||_1d0|_disconnect|lid|_1c0|_connect|_set|_195|_185|_183|_17d|_everyOrSome|_16b|_172|_15b|Function|_154|_escapeString|_140|chain|_check|canceller|_12d|_124|_11a|_10d|_107|inherited|_fa|_f2|_findMixin|_constructor|preamble|_de|clone|tmp|_c7|TMP|_be|_ba|_mixin|isBrowser|lang|firebug||param|modulePaths|_a7|_fireCallback|_a0|setContext||_9c|unloaded||||_96|_93|navigator|_90|_89||protocol|_84|_86|_XMLHTTP_PROGIDS|gears|google|setAttribute|_80|_77|cfg|_6f|_getModuleSymbols|_5a|_58|_53|_4d|_4c|_45|_40|_moduleHasPrefix|_loadUri|_28|_26|_21|_22|tests|doh|_20|_1f|_1c|version|_1b|_19|_getProp|_11|_4|_4a5|_4b3|_Animation|tempColor|blendColors|PI|sin|||||_49a|normal|onEnd||rate||curr|onStop|_497||_496|pct|onPause|onPlay|onBegin|delay||_491|_Line|_48b|wrapForm|PUT|_487|POST|GET|_476|_474|_472|_ioWatch|send|_471|setRequestHeader|open|callback|setInterval|_470|resHandle|_46f|ioCheck|_46e|validCheck|getTime|_ioCancelAll|addOnUnload|clearInterval|dojoType|now|canceled|_blockAsync|_45e|_45c|_459|_ioSetArgs|_contentHandlers|abort|_458|_456||||addErrback|_454|addCallback|_452|_44b|_44a|_449|preventCache|responseXML|Microsoft|JSON|usePlainJson|_431|toJson|_430|_42d|image|opt|ria|_421|_41b|_40b|_zip|_410|_40d|_357|sqf|_374|_3e5|_3df|_38f|clc|pred|parseInt|ntf|_3bf|_3bc|cnl|previousSibling|_3a9|_3a6|_39c|_399|_396|_392|__cachedIndex|__cachedLength|_376|iterateNext|_34a|_355|_354|_32c|_350|_34b|_33f|_33e|_33a|_338|_334|_332||_330|_32e||_322|_316|mousemove|mouseout|mouseover|_305|lastChild||_2f9||_2f2|_2f1|removeChild|_2ec|_2eb|_2ea|_2e6||_2e4|_2e2|_2d6|_2d5|_2d4|_2d3|_2d2|_2d1|_2cd|_2cc|scs|write|_2c8|hasClass|_2c0|_2bb|_2b5|_abs|_docScroll|offsetParent|offsetTop|offsetLeft|absolute|getBoxObjectFor|clientLeft|_setContentSize|_setMarginBox|_28d|_286|_285|_289|NaN|_281|border|_272|_26b|_260|_258|_253|_24c|_246|_23a|_getOpacity|_setOpacity|_238|td|tr|nodeName|FILTER|_22f|_22e|currentStyle|_22c|_22b|display|QuirksMode|unselectable|_217|isMozilla|getElementById|attributes|all|_ie_listener|_getIeDispatcher|_1fd|NUM_LOCK|SCROLL_LOCK|INSERT|END|HOME|PAUSE|F12|F11|F10|F9|F8|F7|F6|F5|F4|F3|F2|F1|63232|SHIFT_TAB|TAB|keyIdentifier|_1f3|stopEvent|_punctMap|222|219|186|onkeypress|_stealthKeyDown|_fixKeys|relatedTarget|_1e0|_1df|_stealthKeydown|_1d6|_1d5|_1d1|_1ca|_1c9|_1cb|_1c2|_1c1|_1c3|_1c4|_1bc|_1b3|_1b2|colorFromHex|colorFromRgb|named|colorFromString|mask|rgba|_19c|_197|_192|setColor|_180|_178|_177|_175|_174|_16d|_166|_164|_163|_162|_15c|_15d|_15e|index|__json__|toJsonIndentStr|_nextId|_12f|_12b|publish|_128|_126|_125|_122|_121|_123|_11c|_11b|_10c|_10b|_108|getDispatcher|argument|nom|_construct|_core|_makeCtor|_df|_db|deprecated|isObject|_cc||scope||_hitchArgs|_c2||pre|_c1|native|isDebug||registerModulePath|_a8||finally|||_a6|_a5|_a4|_a3|_a2|_a1|_9f|_9e|_9d|_9b|_98|_97|onbeforeunload|ipt|scr|complete|_95|userAgent|_modulesLoaded|initialized|_initFired|_8c|_8a|_getText|_87|ieForceActiveXXhr|Msxml2|isGears|_81|_gearsObject|googlegears|GearsFactory|isFF|_7d|Safari|_72|_name|_6c|ire|ore|_68|i18n|_5b|requireIf|_56|_52|loading|_4a|_loadPath|_47|_48|_global_omit_module_check|_getModulePrefix|_3c|_3a|_37|_30|Boolean|_loadUriAndCheck|_2e||cacheBust|_1e|_1a|_17|_16|_15|_14|_f|_10|_e|_9|_8|revision|flag|patch|minor|major|_6|color|units|needs|stopped|playing|stop|gotoPercent|pause|1000|implemented|yet|_48a|xhrDelete|rawXhrPut|xhrPut|postData|rawXhrPost|xhrPost|xhrGet|Type|Content|sync|response|http|bad|urlencoded|www|_watchInFlightError||exceeded|handle|action|getAttributeNode|loadXML|async|XMLDOM|prefixes|MSXML3|MSXML|MSXML2||xml|javascript|wasn|your|optional|message|off|turn|use|endpoints|issues|security|potential|avoid|mimetype|using|consider|please|decodeURIComponent|queryToObject|formToJson|formToQuery|encodeURIComponent|selected|option|multiple|checked|checkbox|radio|disabled|textarea|select|button|reset|submit|input|_3fb|hasAttribute|0n|even|odd|nth|_3b5|empty|_3b1|_3ad|htmlFor|_38a|under||exprssion|failure|ANY_TYPE|XPathResult|starts|keyup|keydown|mouseup|mousedown|blur|click|combine|span|addContent||adopt|orphan|_2de|_2dd|styles|_2da|_2d9|_2cf|_2ce|show|createPopup|toggleClass|scrollWidth|clientTop|ltr|direction|pageXOffset|pageYOffset|fixed|contentBox|marginBox|BUTTON|TABLE|_getBorderBox|clientHeight|visible|overflow|marginBottom|marginRight|marginTop|marginLeft|borderBottomWidth|borderBottomStyle|borderRightWidth|borderRightStyle|borderTopWidth|borderTopStyle|borderLeftWidth|borderLeftStyle|paddingBottom|paddingRight|paddingTop|paddingLeft|offset||min|padding||margin|Opacity|Alpha|alpha|filters|pixelLeft|medium|_22a|defaultView|before||insertBefore|KhtmlUserSelect|MozUserSelect|setSelectable|isDescendant|div|_destroyElement|BackgroundImageCache|execCommand|PageDown|PageUp|Right|Left|Down|Up|63289|63249|63248|PRINT_SCREEN|63302|63277|63276|63275|63273|63272|63250|63247|63246|63245|63244|63243|63242|63241|63240|63239|63238|63237|63236|63235|63234|63233|Enter|_1f9|which|_1f6|bubbledKeyCode|221|220||||191|190|189|188|187|toElement|fromElement|clientY|pageY||clientX|pageX|offsetY|||layerY|offsetX|layerX|parentWindow|_nop|_allow_leaks|145|144|126|F15|125|F14|124|F13|123|122|121|120|119|118|117|116|115|114|113|112|NUMPAD_DIVIDE|110|NUMPAD_PERIOD|109|NUMPAD_MINUS|108|NUMPAD_ENTER|107|NUMPAD_PLUS|NUMPAD_MULTIPLY|105|NUMPAD_9|104|NUMPAD_8|103|NUMPAD_7|102|NUMPAD_6|101|NUMPAD_5|NUMPAD_4||NUMPAD_3|NUMPAD_2|NUMPAD_1|NUMPAD_0||SELECT|RIGHT_WINDOW||LEFT_WINDOW||HELP|SPACE|ESCAPE|CAPS_LOCK|ALT|CTRL|SHIFT|ENTER|CLEAR|BACKSPACE|attachEvent|fixEvent|fromCharCode|keyChar|_1b9|removeEventListener|0x|round|toHex|toRgba|toRgb|aqua|teal|blue|navy|yellow|olive|lime|green|fuchsia|purple|red|maroon|white|gray|silver|black|boolean|called|already|Cancelled|connectPublisher|unsubscribe|subscribe|disconnect|_113|_112||_111|_110|||found|was||must|_|module|||required|likely|It|declaration|Mixin|separate|instead|property|initializer||pass|_c9|_bb|_b7|nfunction|isAlien|isFinite|isArrayLike|_firebug|withDoc|withGlobal|_writeIncludes|VML|behavior|addRule|createStyleSheet|vml|com|microsoft|schemas|urn|namespaces|onunload|onreadystatechange|defer|khtml|WebKit|DOMContentLoaded|enableMozDomContentLoaded|domcontentloaded|Unable|base|chrome|1223|304|300|200|available|XMLHttpRequest|_println|language|userLanguage|isQuirks|factory|mimeTypes|Factory|Gears|_7f|MSIE||Firefox|Gecko|Konqueror||Opera|appVersion|xd|browser|moduleUrl|port|host|hostenv|_requireLocalization|_5f|_5e|_5d|_5c|requireLocalization|requireAfterIf|_57|common|platformRequire|defined|symbol|_isXDomain|tried|Could|__package__|packageFileName|_42|useXDomain|flight|still|files|addOnLoad|failed|sourceURL|util|notice|without|change|subject|APIs|EXPERIMENTAL|experimental|removed|will|DEPRECATED|exists|10315|Rev|Mobile|Spidermonkey|Rhino||Browser|delayMozLoadingFix|preventBackButtonFix|libraryScriptUri|baseRelativePath|baseScriptUri|allowQueryConfig|warn|trace|timeEnd||time|profileEnd|profile|log|info|groupEnd|group|dirxml|dir|count|assert'.split('|'),0,{});
+
+
+/*
+
+Prototype 1.5 rc0
+ - Adapted from Ruby on Rails - http://dev.rubyonrails.org/browser/spinoffs/prototype/src
+ - By Lunarmedia, 06 August, 2006
+ - Available at (and packed with) JavascriptCompressor.com
+
+Please note this version is missing the selector.js component of the full Prototype library.
+You can get the compressed version of selector at JavascriptCompressor.com
+
+*/
+
+var decompressedPrototype = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[(function(e){return d[e]})];e=(function(){return'\\w+'});c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('d T={4l:\'1.5.8P\',3E:\'(?:<3G.*?>)((\\n|\\r|.)*?)(?:<\\/3G>)\',2v:7(){},K:7(x){c x}};d 1b={17:7(){c 7(){6.1I.2n(6,N)}}};d 1e=z q();q.u=7(5d,O){G(d 1G 2M O){5d[1G]=O[1G]}c 5d};q.1U=7(U){1j{f(U==1v)c\'1v\';f(U==1L)c\'1L\';c U.1U?U.1U():U.2C()}1s(e){f(e 8R 9l)c\'...\';25 e}};7j.v.1d=7(){d 43=6,23=$A(N),U=23.8S();c 7(){c 43.2n(U,23.3s($A(N)))}};7j.v.8U=7(U){d 43=6;c 7(C){c 43.8V(U,C||1W.C)}};q.u(8Q.v,{8W:7(){d 4Z=6.2C(16);f(6<16)c\'0\'+4Z;c 4Z},5j:7(){c 6+1},8Y:7(o){$R(0,6,11).V(o);c 6}});d 6s={6j:7(){d 48;G(d i=0;i<N.t;i++){d 6L=N[i];1j{48=6L();1y}1s(e){}}c 48}};d 6Q=1b.17();6Q.v={1I:7(1a,1J){6.1a=1a;6.1J=1J;6.41=Y;6.2A()},2A:7(){5Z(6.2D.1d(6),6.1J*4z)},2D:7(){f(!6.41){1j{6.41=11;6.1a()}8Z{6.41=Y}}}};q.u(4b.v,{2T:7(1A,1z){d L=\'\',O=6,I;1z=N.90.52(1z);1H(O.t>0){f(I=O.I(1A)){L+=O.47(0,I.w);L+=(1z(I)||\'\').2C();O=O.47(I.w+I[0].t)}1D{L+=O,O=\'\'}}c L},92:7(1A,1z,3i){1z=6.2T.52(1z);3i=3i===1v?1:3i;c 6.2T(1A,7(I){f(--3i<0)c I[0];c 1z(I)})},93:7(1A,o){6.2T(1A,o);c 6},94:7(t,2S){t=t||30;2S=2S===1v?\'...\':2S;c 6.t>t?6.47(0,t-2S.t)+2S:6},9F:7(){c 6.2y(/^\\s+/,\'\').2y(/\\s+$/,\'\')},71:7(){c 6.2y(/<\\/?[^>]+>/7Y,\'\')},2Q:7(){c 6.2y(z 3O(T.3E,\'5P\'),\'\')},70:7(){d 6Y=z 3O(T.3E,\'5P\');d 5p=z 3O(T.3E,\'98\');c(6.I(6Y)||[]).1C(7(5o){c(5o.I(5p)||[\'\',\'\'])[1]})},3q:7(){c 6.70().1C(7(3G){c 4q(3G)})},9E:7(){d 1q=J.4Y(\'1q\');d 1Y=J.9D(6);1q.75(1Y);c 1q.3h},9c:7(){d 1q=J.4Y(\'1q\');1q.3h=6.71();c 1q.2z[0]?1q.2z[0].6q:\'\'},78:7(){d 7i=6.I(/^\\??(.*)$/)[1].3j(\'&\');c 7i.36({},7(5b,72){d 1i=72.3j(\'=\');5b[1i[0]]=1i[1];c 5b})},1Z:7(){c 6.3j(\'\')},3P:7(){d 2l=6.3j(\'-\');f(2l.t==1)c 2l[0];d 54=6.5g(\'-\')==0?2l[0].7e(0).3Y()+2l[0].7g(1):2l[0];G(d i=1,73=2l.t;i<73;i++){d s=2l[i];54+=s.7e(0).3Y()+s.7g(1)}c 54},1U:7(){c"\'"+6.2y(/\\\\/g,\'\\\\\\\\\').2y(/\'/g,\'\\\\\\\'\')+"\'"}});4b.v.2T.52=7(1z){f(2i 1z==\'7\')c 1z;d 2U=z 3n(1z);c 7(I){c 2U.7a(I)}};4b.v.9h=4b.v.78;d 3n=1b.17();3n.79=/(^|.|\\r|\\n)(#\\{(.*?)\\})/;3n.v={1I:7(2U,1A){6.2U=2U.2C();6.1A=1A||3n.79},7a:7(U){c 6.2U.2T(6.1A,7(I){d 53=I[1];f(53==\'\\\\\')c I[2];c 53+(U[I[3]]||\'\').2C()})}};d $1y=z q();d $49=z q();d 1p={V:7(o){d w=0;1j{6.2m(7(h){1j{o(h,w++)}1s(e){f(e!=$49)25 e}})}1s(e){f(e!=$1y)25 e}},9n:7(o){d L=11;6.V(7(h,w){L=L&&!!(o||T.K)(h,w);f(!L)25 $1y});c L},9o:7(o){d L=11;6.V(7(h,w){f(L=!!(o||T.K)(h,w))25 $1y});c L},3e:7(o){d P=[];6.V(7(h,w){P.W(o(h,w))});c P},7n:7(o){d L;6.V(7(h,w){f(o(h,w)){L=h;25 $1y}});c L},7o:7(o){d P=[];6.V(7(h,w){f(o(h,w))P.W(h)});c P},9p:7(1A,o){d P=[];6.V(7(h,w){d 7c=h.2C();f(7c.I(1A))P.W((o||T.K)(h,w))});c P},1M:7(U){d 51=Y;6.V(7(h){f(h==U){51=11;25 $1y}});c 51},36:7(45,o){6.V(7(h,w){45=o(45,h,w)});c 45},9q:7(1F){d 23=$A(N).47(1);c 6.3e(7(h){c h[1F].2n(h,23)})},9s:7(o){d L;6.V(7(h,w){h=(o||T.K)(h,w);f(L==1v||h>=L)L=h});c L},9u:7(o){d L;6.V(7(h,w){h=(o||T.K)(h,w);f(L==1v||h<L)L=h});c L},9v:7(o){d 50=[],58=[];6.V(7(h,w){((o||T.K)(h,w)?50:58).W(h)});c[50,58]},3r:7(1G){d P=[];6.V(7(h,w){P.W(h[1G])});c P},9x:7(o){d P=[];6.V(7(h,w){f(!o(h,w))P.W(h)});c P},9y:7(o){c 6.3e(7(h,w){c{h:h,59:o(h,w)}}).9z(7(18,3U){d a=18.59,b=3U.59;c a<b?-1:a>b?1:0}).3r(\'h\')},1Z:7(){c 6.3e(T.K)},9B:7(){d o=T.K,23=$A(N);f(2i 23.5e()==\'7\')o=23.9C();d 7l=[6].3s(23).1C($A);c 6.1C(7(h,w){c o(7l.3r(w))})},1U:7(){c\'#<1p:\'+6.1Z().1U()+\'>\'}};q.u(1p,{1C:1p.3e,5v:1p.7n,1k:1p.7o,8M:1p.1M,7p:1p.1Z});d $A=1E.7q=7(2R){f(!2R)c[];f(2R.1Z){c 2R.1Z()}1D{d P=[];G(d i=0;i<2R.t;i++)P.W(2R[i]);c P}};q.u(1E.v,1p);f(!1E.v.4d)1E.v.4d=1E.v.4m;q.u(1E.v,{2m:7(o){G(d i=0;i<6.t;i++)o(6[i])},5i:7(){6.t=0;c 6},7r:7(){c 6[0]},5e:7(){c 6[6.t-1]},7s:7(){c 6.1k(7(h){c h!=1v||h!=1L})},6J:7(){c 6.36([],7(6H,h){c 6H.3s(h&&h.5D==1E?h.6J():[h])})},5s:7(){d 4N=$A(N);c 6.1k(7(h){c!4N.1M(h)})},5g:7(U){G(d i=0;i<6.t;i++)f(6[i]==U)c i;c-1},4m:7(5h){c(5h!==Y?6:6.1Z()).4d()},1U:7(){c\'[\'+6.1C(q.1U).1N(\', \')+\']\'}});d 4h={2m:7(o){G(d 1O 2M 6){d h=6[1O];f(2i h==\'7\')49;d 1i=[1O,h];1i.1O=1O;1i.h=h;o(1i)}},7t:7(){c 6.3r(\'1O\')},4N:7(){c 6.3r(\'h\')},7u:7(2N){c $H(2N).36($H(6),7(4Q,1i){4Q[1i.1O]=1i.h;c 4Q})},7w:7(){c 6.1C(7(1i){c 1i.1C(4n).1N(\'=\')}).1N(\'&\')},1U:7(){c\'#<4h:{\'+6.1C(7(1i){c 1i.1C(q.1U).1N(\': \')}).1N(\', \')+\'}>\'}};7 $H(U){d 2N=q.u({},U||{});q.u(2N,1p);q.u(2N,4h);c 2N};3L=1b.17();q.u(3L.v,1p);q.u(3L.v,{1I:7(22,2x,2H){6.22=22;6.2x=2x;6.2H=2H},2m:7(o){d h=6.22;2q{o(h);h=h.5j()}1H(6.1M(h))},1M:7(h){f(h<6.22)c Y;f(6.2H)c h<6.2x;c h<=6.2x}});d $R=7(22,2x,2H){c z 3L(22,2x,2H)};d M={4w:7(){c 6s.6j(7(){c z 5C()},7(){c z 5n(\'7y.6d\')},7(){c z 5n(\'7z.6d\')})||Y},4s:0};M.2W={3b:[],2m:7(o){6.3b.2m(o)},69:7(4F){f(!6.1M(4F))6.3b.W(4F)},7A:7(5t){6.3b=6.3b.5s(5t)},3y:7(1a,26,E,2Z){6.V(7(3o){f(3o[1a]&&2i 3o[1a]==\'7\'){1j{3o[1a].2n(3o,[26,E,2Z])}1s(e){}}})}};q.u(M.2W,1p);M.2W.69({5G:7(){M.4s++},1B:7(){M.4s--}});M.44=7(){};M.44.v={4a:7(m){6.m={1F:\'4j\',4p:11,5H:\'5E/x-86-Q-7C\',28:\'\'};q.u(6.m,m||{})},3l:7(){c 6.E.32==1v||6.E.32==0||(6.E.32>=84&&6.E.32<7E)},7G:7(){c!6.3l()}};M.3t=1b.17();M.3t.5L=[\'7H\',\'80\',\'7I\',\'7J\',\'4t\'];M.3t.v=q.u(z M.44(),{1I:7(1l,m){6.E=M.4w();6.4a(m);6.26(1l)},26:7(1l){d 28=6.m.28||\'\';f(28.t>0)28+=\'&7K=\';1j{6.1l=1l;f(6.m.1F==\'7L\'&&28.t>0)6.1l+=(6.1l.I(/\\?/)?\'&\':\'?\')+28;M.2W.3y(\'5G\',6,6.E);6.E.7N(6.m.1F,6.1l,6.m.4p);f(6.m.4p){6.E.5T=6.5J.1d(6);2Y((7(){6.4r(1)}).1d(6),10)}6.5A();d 1c=6.m.5V?6.m.5V:28;6.E.7O(6.m.1F==\'4j\'?1c:1L)}1s(e){6.3p(e)}},5A:7(){d 1P=[\'X-7P-7Q\',\'5C\',\'X-T-4l\',T.4l,\'7R\',\'1Y/7m, 1Y/2e, 5E/5F, 1Y/5F, */*\'];f(6.m.1F==\'4j\'){1P.W(\'5Q-2g\',6.m.5H);f(6.E.7S)1P.W(\'7T\',\'7U\')}f(6.m.1P)1P.W.2n(1P,6.m.1P);G(d i=0;i<1P.t;i+=2)6.E.7V(1P[i],1P[i+1])},5J:7(){d 2F=6.E.2F;f(2F!=1)6.4r(6.E.2F)},4A:7(B){1j{c 6.E.7W(B)}1s(e){}},5M:7(){1j{c 4q(\'(\'+6.4A(\'X-7X\')+\')\')}1s(e){}},5R:7(){1j{c 4q(6.E.3F)}1s(e){6.3p(e)}},4r:7(2F){d C=M.3t.5L[2F];d E=6.E,2Z=6.5M();f(C==\'4t\'){1j{(6.m[\'2I\'+6.E.32]||6.m[\'2I\'+(6.3l()?\'81\':\'82\')]||T.2v)(E,2Z)}1s(e){6.3p(e)}f((6.4A(\'5Q-2g\')||\'\').I(/^1Y\\/7m/i))6.5R()}1j{(6.m[\'2I\'+C]||T.2v)(E,2Z);M.2W.3y(\'2I\'+C,6,E,2Z)}1s(e){6.3p(e)}f(C==\'4t\')6.E.5T=T.2v},3p:7(57){(6.m.5W||T.2v)(6,57);M.2W.3y(\'5W\',6,57)}});M.4C=1b.17();q.u(q.u(M.4C.v,M.3t.v),{1I:7(1w,1l,m){6.4x={3m:1w.3m?$(1w.3m):$(1w),3z:1w.3z?$(1w.3z):(1w.3m?1L:$(1w))};6.E=M.4w();6.4a(m);d 1B=6.m.1B||T.2v;6.m.1B=(7(E,U){6.5Y();1B(E,U)}).1d(6);6.26(1l)},5Y:7(){d 3A=6.3l()?6.4x.3m:6.4x.3z;d 3k=6.E.3F;f(!6.m.3q)3k=3k.2Q();f(3A){f(6.m.60){z 6.m.60(3A,3k)}1D{k.6h(3A,3k)}}f(6.3l()){f(6.1B)2Y(6.1B.1d(6),10)}}});M.61=1b.17();M.61.v=q.u(z M.44(),{1I:7(1w,1l,m){6.4a(m);6.1B=6.m.1B;6.1J=(6.m.1J||2);6.2s=(6.m.2s||1);6.4B={};6.1w=1w;6.1l=1l;6.22()},22:7(){6.m.1B=6.63.1d(6);6.2D()},7b:7(){6.4B.1B=1v;89(6.65);(6.1B||T.2v).2n(6,N)},63:7(26){f(6.m.2s){6.2s=(26.3F==6.64?6.2s*6.m.2s:1);6.64=26.3F}6.65=2Y(6.2D.1d(6),6.2s*6.1J*4z)},2D:7(){6.4B=z M.4C(6.1w,6.1l,6.m)}});7 $(){d P=[],4;G(d i=0;i<N.t;i++){4=N[i];f(2i 4==\'8c\')4=J.8d(4);P.W(k.u(4))}c P.t<2?P[0]:P};J.8f=7(1f,6a){d 6b=($(6a)||J.1c).4D(\'*\');c $A(6b).36([],7(12,4E){f(4E.1f.I(z 3O("(^|\\\\s)"+1f+"(\\\\s|$)")))12.W(k.u(4E));c 12})};f(!1W.k)d k=z q();k.u=7(4){f(!4)c;f(4X)c 4;f(!4.6e&&4.1h&&4!=1W){d 2a=k.3d,2r=k.u.2r;G(d 1G 2M 2a){d h=2a[1G];f(2i h==\'7\')4[1G]=2r.4W(h)}}4.6e=11;c 4};k.u.2r={4W:7(h){c 6[h]=6[h]||7(){c h.2n(1L,[6].3s($A(N)))}}};k.3d={4U:7(4){c $(4).l.2B!=\'3Q\'},6N:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);k[k.4U(4)?\'6f\':\'6w\'](4)}},6f:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);4.l.2B=\'3Q\'}},6w:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);4.l.2B=\'\'}},42:7(4){4=$(4);4.1X.8h(4)},6h:7(4,2e){$(4).3h=2e.2Q();2Y(7(){2e.3q()},10)},2y:7(4,2e){4=$(4);f(4.6k){4.6k=2e.2Q()}1D{d 1K=4.6R.6S();1K.56(4);4.1X.8i(1K.6T(2e.2Q()),4)}2Y(7(){2e.3q()},10)},8k:7(4){4=$(4);c 4.2k},3K:7(4){c z k.3S(4)},8l:7(4,1f){f(!(4=$(4)))c;c k.3K(4).1M(1f)},8m:7(4,1f){f(!(4=$(4)))c;c k.3K(4).7k(1f)},8n:7(4,1f){f(!(4=$(4)))c;c k.3K(4).42(1f)},8p:7(4){4=$(4);G(d i=0;i<4.2z.t;i++){d 3M=4.2z[i];f(3M.8q==3&&!/\\S/.4v(3M.6q))k.42(3M)}},8r:7(4){c $(4).3h.I(/^\\s*$/)},8s:7(4,3I){4=$(4),3I=$(3I);1H(4=4.1X)f(4==3I)c 11;c Y},6t:7(4){4=$(4);d x=4.x?4.x:4.2f,y=4.y?4.y:4.29;1W.6t(x,y)},1R:7(4,l){4=$(4);d h=4.l[l.3P()];f(!h){f(J.4J&&J.4J.6v){d 4L=J.4J.6v(4,1L);h=4L?4L.8v(l):1L}1D f(4.6x){h=4.6x[l.3P()]}}f(1W.6E&&[\'18\',\'1n\',\'3U\',\'6G\'].1M(l))f(k.1R(4,\'14\')==\'4G\')h=\'6y\';c h==\'6y\'?1L:h},8x:7(4,l){4=$(4);G(d B 2M l)4.l[B.3P()]=l[B]},8y:7(4){4=$(4);f(k.1R(4,\'2B\')!=\'3Q\')c{21:4.2p,24:4.2k};d 20=4.l;d 6B=20.4O;d 6A=20.14;20.4O=\'31\';20.14=\'2o\';20.2B=\'\';d 6C=4.6m;d 6D=4.6p;20.2B=\'3Q\';20.14=6A;20.4O=6B;c{21:6C,24:6D}},8z:7(4){4=$(4);d 4R=k.1R(4,\'14\');f(4R==\'4G\'||!4R){4.4T=11;4.l.14=\'3T\';f(1W.6E){4.l.1n=0;4.l.18=0}}},8A:7(4){4=$(4);f(4.4T){4.4T=1v;4.l.14=4.l.1n=4.l.18=4.l.6G=4.l.3U=\'\'}},8B:7(4){4=$(4);f(4.3c)c;4.3c=4.l.3V;f((k.1R(4,\'3V\')||\'4U\')!=\'31\')4.l.3V=\'31\'},8D:7(4){4=$(4);f(4.3c)c;4.l.3V=4.3c;4.3c=1v}};q.u(k,k.3d);d 4X=Y;f(!3W&&/3x|3w|3u/.4v(33.62)){d 3W={}};k.6K=7(2a){q.u(k.3d,2a||{});f(2i 3W!=\'1v\'){d 2a=k.3d,2r=k.u.2r;G(d 1G 2M 2a){d h=2a[1G];f(2i h==\'7\')3W.v[1G]=2r.4W(h)}4X=11}};k.6K();d 6M=z q();6M.2B=k.6N;1e.1g=7(3f){6.3f=3f};1e.1g.v={1I:7(4,2t){6.4=$(4);6.2t=2t.2Q();f(6.3f&&6.4.6O){1j{6.4.6O(6.3f,6.2t)}1s(e){d 1h=6.4.1h.2w();f(1h==\'4V\'||1h==\'8N\'){6.2X(6.6U())}1D{25 e}}}1D{6.1K=6.4.6R.6S();f(6.2V)6.2V();6.2X([6.1K.6T(6.2t)])}2Y(7(){2t.3q()},10)},6U:7(){d 1q=J.4Y(\'1q\');1q.3h=\'<6V><4V>\'+6.2t+\'</4V></6V>\';c $A(1q.2z[0].2z[0].2z)}};d 1g=z q();1g.6W=1b.17();1g.6W.v=q.u(z 1e.1g(\'96\'),{2V:7(){6.1K.97(6.4)},2X:7(2h){2h.V((7(2j){6.4.1X.55(2j,6.4)}).1d(6))}});1g.5m=1b.17();1g.5m.v=q.u(z 1e.1g(\'99\'),{2V:7(){6.1K.56(6.4);6.1K.74(11)},2X:7(2h){2h.4m(Y).V((7(2j){6.4.55(2j,6.4.9a)}).1d(6))}});1g.7h=1b.17();1g.7h.v=q.u(z 1e.1g(\'9d\'),{2V:7(){6.1K.56(6.4);6.1K.74(6.4)},2X:7(2h){2h.V((7(2j){6.4.75(2j)}).1d(6))}});1g.76=1b.17();1g.76.v=q.u(z 1e.1g(\'9i\'),{2V:7(){6.1K.9m(6.4)},2X:7(2h){2h.V((7(2j){6.4.1X.55(2j,6.4.9t)}).1d(6))}});k.3S=1b.17();k.3S.v={1I:7(4){6.4=$(4)},2m:7(o){6.4.1f.3j(/\\s+/).1k(7(B){c B.t>0}).2m(o)},5c:7(1f){6.4.1f=1f},7k:7(5a){f(6.1M(5a))c;6.5c(6.1Z().3s(5a).1N(\' \'))},42:7(4c){f(!6.1M(4c))c;6.5c(6.1k(7(1f){c 1f!=4c}).1N(\' \'))},2C:7(){c 6.1Z().1N(\' \')}};q.u(k.3S.v,1p);d 5I={5i:7(){G(d i=0;i<N.t;i++)$(N[i]).h=\'\'},4f:7(4){$(4).4f()},7v:7(){G(d i=0;i<N.t;i++)f($(N[i]).h==\'\')c Y;c 11},1k:7(4){$(4).1k()},5y:7(4){4=$(4);4.4f();f(4.1k)4.1k()}};d D={3a:7(Q){d 12=D.2L($(Q));d 4I=z 1E();G(d i=0;i<12.t;i++){d 4g=D.k.3a(12[i]);f(4g)4I.W(4g)}c 4I.1N(\'&\')},2L:7(Q){Q=$(Q);d 12=z 1E();G(d 1h 2M D.k.2E){d 4H=Q.4D(1h);G(d j=0;j<4H.t;j++)12.W(4H[j])}c 12},7x:7(Q,3N,B){Q=$(Q);d 3H=Q.4D(\'2u\');f(!3N&&!B)c 3H;d 4y=z 1E();G(d i=0;i<3H.t;i++){d 2u=3H[i];f((3N&&2u.2g!=3N)||(B&&2u.B!=B))49;4y.W(2u)}c 4y},7B:7(Q){d 12=D.2L(Q);G(d i=0;i<12.t;i++){d 4=12[i];4.7D();4.4o=\'11\'}},7F:7(Q){d 12=D.2L(Q);G(d i=0;i<12.t;i++){d 4=12[i];4.4o=\'\'}},5z:7(Q){c D.2L(Q).5v(7(4){c 4.2g!=\'31\'&&!4.4o&&[\'2u\',\'1k\',\'3J\'].1M(4.1h.2w())})},7M:7(Q){5I.5y(D.5z(Q))},5w:7(Q){$(Q).5w()}};D.k={3a:7(4){4=$(4);d 1F=4.1h.2w();d 1S=D.k.2E[1F](4);f(1S){d 1O=4n(1S[0]);f(1O.t==0)c;f(1S[1].5D!=1E)1S[1]=[1S[1]];c 1S[1].1C(7(h){c 1O+\'=\'+4n(h)}).1N(\'&\')}},1x:7(4){4=$(4);d 1F=4.1h.2w();d 1S=D.k.2E[1F](4);f(1S)c 1S[1]}};D.k.2E={2u:7(4){6c(4.2g.2w()){1r\'7Z\':1r\'31\':1r\'6l\':1r\'1Y\':c D.k.2E.3J(4);1r\'6g\':1r\'6i\':c D.k.2E.5O(4)}c Y},5O:7(4){f(4.83)c[4.B,4.h]},3J:7(4){c[4.B,4.h]},1k:7(4){c D.k.2E[4.2g==\'1k-6n\'?\'5S\':\'5X\'](4)},5S:7(4){d h=\'\',2b,w=4.85;f(w>=0){2b=4.m[w];h=2b.h||2b.1Y}c[4.B,h]},5X:7(4){d h=[];G(d i=0;i<4.t;i++){d 2b=4.m[i];f(2b.87)h.W(2b.h||2b.1Y)}c[4.B,h]}};d $F=D.k.1x;1e.3D=7(){};1e.3D.v={1I:7(4,1J,1a){6.1J=1J;6.4=$(4);6.1a=1a;6.2K=6.1x();6.2A()},2A:7(){5Z(6.2D.1d(6),6.1J*4z)},2D:7(){d h=6.1x();f(6.2K!=h){6.1a(6.4,h);6.2K=h}}};D.k.3C=1b.17();D.k.3C.v=q.u(z 1e.3D(),{1x:7(){c D.k.1x(6.4)}});D.3C=1b.17();D.3C.v=q.u(z 1e.3D(),{1x:7(){c D.3a(6.4)}});1e.2c=7(){};1e.2c.v={1I:7(4,1a){6.4=$(4);6.1a=1a;6.2K=6.1x();f(6.4.1h.2w()==\'Q\')6.67();1D 6.2A(6.4)},4K:7(){d h=6.1x();f(6.2K!=h){6.1a(6.4,h);6.2K=h}},67:7(){d 12=D.2L(6.4);G(d i=0;i<12.t;i++)6.2A(12[i])},2A:7(4){f(4.2g){6c(4.2g.2w()){1r\'6g\':1r\'6i\':1o.3B(4,\'8j\',6.4K.1d(6));1y;1r\'6l\':1r\'1Y\':1r\'3J\':1r\'1k-6n\':1r\'1k-8t\':1o.3B(4,\'8u\',6.4K.1d(6));1y}}}};D.k.2c=1b.17();D.k.2c.v=q.u(z 1e.2c(),{1x:7(){c D.k.1x(6.4)}});D.2c=1b.17();D.2c.v=q.u(z 1e.2c(),{1x:7(){c D.3a(6.4)}});f(!1W.1o){d 1o=z q()}q.u(1o,{8C:8,8F:9,8H:13,8I:27,8J:37,8L:38,8O:39,8T:40,8X:46,4:7(C){c C.Z||C.91},95:7(C){c(((C.6X)&&(C.6X==1))||((C.6Z)&&(C.6Z==1)))},9b:7(C){c C.9e||(C.9f+(J.3R.2G||J.1c.2G))},9g:7(C){c C.9j||(C.9k+(J.3R.2O||J.1c.2O))},7b:7(C){f(C.7d){C.7d();C.9r()}1D{C.48=Y;C.9w=11}},9A:7(C,1h){d 4=1o.4(C);1H(4.1X&&(!4.1h||(4.1h.3Y()!=1h.3Y())))4=4.1X;c 4},1T:Y,5u:7(4,B,1V,1u){f(!6.1T)6.1T=[];f(4.5f){6.1T.W([4,B,1V,1u]);4.5f(B,1V,1u)}1D f(4.4i){6.1T.W([4,B,1V,1u]);4.4i(\'2I\'+B,1V)}},66:7(){f(!1o.1T)c;G(d i=0;i<1o.1T.t;i++){1o.5N.2n(6,1o.1T[i]);1o.1T[i][0]=1L}1o.1T=Y},3B:7(4,B,1V,1u){d 4=$(4);1u=1u||Y;f(B==\'5U\'&&(33.4u.I(/3x|3w|3u/)||4.4i))B=\'5K\';6.5u(4,B,1V,1u)},5N:7(4,B,1V,1u){d 4=$(4);1u=1u||Y;f(B==\'5U\'&&(33.4u.I(/3x|3w|3u/)||4.4k))B=\'5K\';f(4.5x){4.5x(B,1V,1u)}1D f(4.4k){1j{4.4k(\'2I\'+B,1V)}1s(e){}}}});f(33.4u.I(/\\88\\b/))1o.3B(1W,\'8a\',1o.66,Y);d 2d={6o:Y,4P:7(){6.6z=1W.8e||J.3R.2G||J.1c.2G||0;6.6F=1W.8g||J.3R.2O||J.1c.2O||0},6u:7(4){d 19=0,15=0;2q{19+=4.2O||0;15+=4.2G||0;4=4.1X}1H(4);c[15,19]},35:7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;4=4.1Q}1H(4);c[15,19]},68:7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;4=4.1Q;f(4){p=k.1R(4,\'14\');f(p==\'3T\'||p==\'2o\')1y}}1H(4);c[15,19]},1Q:7(4){f(4.1Q)c 4.1Q;f(4==J.1c)c 4;1H((4=4.1X)&&4!=J.1c)f(k.1R(4,\'14\')!=\'4G\')c 4;c J.1c},8o:7(4,x,y){f(6.6o)c 6.6r(4,x,y);6.3g=x;6.34=y;6.1t=6.35(4);c(y>=6.1t[1]&&y<6.1t[1]+4.2k&&x>=6.1t[0]&&x<6.1t[0]+4.2p)},6r:7(4,x,y){d 4S=6.6u(4);6.3g=x+4S[0]-6.6z;6.34=y+4S[1]-6.6F;6.1t=6.35(4);c(6.34>=6.1t[1]&&6.34<6.1t[1]+4.2k&&6.3g>=6.1t[0]&&6.3g<6.1t[0]+4.2p)},8E:7(3Z,4){f(!3Z)c 0;f(3Z==\'8G\')c((6.1t[1]+4.2k)-6.34)/4.2k;f(3Z==\'8K\')c((6.1t[0]+4.2p)-6.3g)/4.2p},77:7(O,Z){O=$(O);Z=$(Z);Z.l.14=\'2o\';d 2P=6.35(O);Z.l.1n=2P[1]+\'1m\';Z.l.18=2P[0]+\'1m\';Z.l.21=O.2p+\'1m\';Z.l.24=O.2k+\'1m\'},4e:7(4M){d 19=0,15=0;d 4=4M;2q{19+=4.29||0;15+=4.2f||0;f(4.1Q==J.1c)f(k.1R(4,\'14\')==\'2o\')1y}1H(4=4.1Q);4=4M;2q{19-=4.2O||0;15-=4.2G||0}1H(4=4.1X);c[15,19]},77:7(O,Z){d m=q.u({5l:11,5r:11,5B:11,5q:11,29:0,2f:0},N[2]||{});O=$(O);d p=2d.4e(O);Z=$(Z);d 2J=[0,0];d 3v=1L;f(k.1R(Z,\'14\')==\'2o\'){3v=2d.1Q(Z);2J=2d.4e(3v)}f(3v==J.1c){2J[0]-=J.1c.2f;2J[1]-=J.1c.29}f(m.5l)Z.l.18=(p[0]-2J[0]+m.2f)+\'1m\';f(m.5r)Z.l.1n=(p[1]-2J[1]+m.29)+\'1m\';f(m.5B)Z.l.21=O.2p+\'1m\';f(m.5q)Z.l.24=O.2k+\'1m\'},8b:7(4){4=$(4);f(4.l.14==\'2o\')c;2d.4P();d 2P=2d.68(4);d 1n=2P[1];d 18=2P[0];d 21=4.6m;d 24=4.6p;4.6P=18-3X(4.l.18||0);4.6I=1n-3X(4.l.1n||0);4.5k=4.l.21;4.7f=4.l.24;4.l.14=\'2o\';4.l.1n=1n+\'1m\';4.l.18=18+\'1m\';4.l.21=21+\'1m\';4.l.24=24+\'1m\'},8w:7(4){4=$(4);f(4.l.14==\'3T\')c;2d.4P();4.l.14=\'3T\';d 1n=3X(4.l.1n||0)-(4.6I||0);d 18=3X(4.l.18||0)-(4.6P||0);4.l.1n=1n+\'1m\';4.l.18=18+\'1m\';4.l.24=4.7f;4.l.21=4.5k}};f(/3x|3w|3u/.4v(33.62)){2d.35=7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;f(4.1Q==J.1c)f(k.1R(4,\'14\')==\'2o\')1y;4=4.1Q}1H(4);c[15,19]}};',62,600,'||||element||this|function|||||return|var||if||value|||Element|style|options||iterator||Object|||length|extend|prototype|index|||new||name|event|Form|transport||for||match|document||result|Ajax|arguments|source|results|form|||Prototype|object|each|push||false|target||true|elements||position|valueL||create|left|valueT|callback|Class|body|bind|Abstract|className|Insertion|tagName|pair|try|select|url|px|top|Event|Enumerable|div|case|catch|offset|useCapture|undefined|container|getValue|break|replacement|pattern|onComplete|map|else|Array|method|property|while|initialize|frequency|range|null|include|join|key|requestHeaders|offsetParent|getStyle|parameter|observers|inspect|observer|window|parentNode|text|toArray|els|width|start|args|height|throw|request||parameters|offsetTop|methods|opt|EventObserver|Position|html|offsetLeft|type|fragments|typeof|fragment|offsetHeight|oStringList|_each|apply|absolute|offsetWidth|do|cache|decay|content|input|emptyFunction|toLowerCase|end|replace|childNodes|registerCallback|display|toString|onTimerEvent|Serializers|readyState|scrollLeft|exclusive|on|delta|lastValue|getElements|in|hash|scrollTop|offsets|stripScripts|iterable|truncation|gsub|template|initializeRange|Responders|insertContent|setTimeout|json||hidden|status|navigator|ycomp|cumulativeOffset|inject||||serialize|responders|_overflow|Methods|collect|adjacency|xcomp|innerHTML|count|split|response|responseIsSuccess|success|Template|responder|dispatchException|evalScripts|pluck|concat|Request|KHTML|parent|Safari|Konqueror|dispatch|failure|receiver|observe|Observer|TimedObserver|ScriptFragment|responseText|script|inputs|ancestor|textarea|classNames|ObjectRange|node|typeName|RegExp|camelize|none|documentElement|ClassNames|relative|right|overflow|HTMLElement|parseFloat|toUpperCase|mode||currentlyExecuting|remove|__method|Base|memo||slice|returnValue|continue|setOptions|String|classNameToRemove|_reverse|page|focus|queryComponent|Hash|attachEvent|post|detachEvent|Version|reverse|encodeURIComponent|disabled|asynchronous|eval|respondToReadyState|activeRequestCount|Complete|appVersion|test|getTransport|containers|matchingInputs|1000|header|updater|Updater|getElementsByTagName|child|responderToAdd|static|tagElements|queryComponents|defaultView|onElementEvent|css|forElement|values|visibility|prepare|mergedHash|pos|offsetcache|_madePositioned|visible|tbody|findOrStore|_nativeExtensions|createElement|digits|trues|found|prepareReplacement|before|camelizedString|insertBefore|selectNodeContents|exception|falses|criteria|classNameToAdd|params|set|destination|last|addEventListener|indexOf|inline|clear|succ|_originalWidth|setLeft|Top|ActiveXObject|scriptTag|matchOne|setHeight|setTop|without|responderToRemove|_observeAndCache|find|reset|removeEventListener|activate|findFirstElement|setRequestHeaders|setWidth|XMLHttpRequest|constructor|application|xml|onCreate|contentType|Field|onStateChange|keydown|Events|evalJSON|stopObserving|inputSelector|img|Content|evalResponse|selectOne|onreadystatechange|keypress|postBody|onException|selectMany|updateContent|setInterval|insertion|PeriodicalUpdater|userAgent|updateComplete|lastText|timer|unloadCache|registerFormCallbacks|positionedOffset|register|parentElement|children|switch|XMLHTTP|_extended|hide|checkbox|update|radio|these|outerHTML|password|clientWidth|one|includeScrollOffsets|clientHeight|nodeValue|withinIncludingScrolloffsets|Try|scrollTo|realOffset|getComputedStyle|show|currentStyle|auto|deltaX|originalPosition|originalVisibility|originalWidth|originalHeight|opera|deltaY|bottom|array|_originalTop|flatten|addMethods|lambda|Toggle|toggle|insertAdjacentHTML|_originalLeft|PeriodicalExecuter|ownerDocument|createRange|createContextualFragment|contentFromAnonymousTable|table|Before|which|matchAll|button|extractScripts|stripTags|pairString|len|collapse|appendChild|After|clone|toQueryParams|Pattern|evaluate|stop|stringValue|preventDefault|charAt|_originalHeight|substring|Bottom|pairs|Function|add|collections|javascript|detect|findAll|entries|from|first|compact|keys|merge|present|toQueryString|getInputs|Msxml2|Microsoft|unregister|disable|urlencoded|blur|300|enable|responseIsFailure|Uninitialized|Loaded|Interactive|_|get|focusFirstElement|open|send|Requested|With|Accept|overrideMimeType|Connection|close|setRequestHeader|getResponseHeader|JSON|gi|submit|Loading|Success|Failure|checked|200|selectedIndex|www|selected|bMSIE|clearTimeout|unload|absolutize|string|getElementById|pageXOffset|getElementsByClassName|pageYOffset|removeChild|replaceChild|click|getHeight|hasClassName|addClassName|removeClassName|within|cleanWhitespace|nodeType|empty|childOf|multiple|change|getPropertyValue|relativize|setStyle|getDimensions|makePositioned|undoPositioned|makeClipping|KEY_BACKSPACE|undoClipping|overlap|KEY_TAB|vertical|KEY_RETURN|KEY_ESC|KEY_LEFT|horizontal|KEY_UP|member|tr|KEY_RIGHT|0_RC_0|Number|instanceof|shift|KEY_DOWN|bindAsEventListener|call|toColorPart|KEY_DELETE|times|finally|callee|srcElement|sub|scan|truncate|isLeftClick|beforeBegin|setStartBefore|im|afterBegin|firstChild|pointerX|unescapeHTML|beforeEnd|pageX|clientX|pointerY|parseQuery|afterEnd|pageY|clientY|RangeError|setStartAfter|all|any|grep|invoke|stopPropagation|max|nextSibling|min|partition|cancelBubble|reject|sortBy|sort|findElement|zip|pop|createTextNode|escapeHTML|strip'.split('|'),0,{})
+
+} \ No newline at end of file
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9/string-validate-input.js b/PerformanceTests/SunSpider/tests/sunspider-0.9/string-validate-input.js
new file mode 100644
index 000000000..3455b3208
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9/string-validate-input.js
@@ -0,0 +1,89 @@
+letters = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
+numbers = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26);
+colors = new Array("FF","CC","99","66","33","00");
+
+var endResult;
+
+function doTest()
+{
+ endResult = "";
+
+ // make up email address
+ for (var k=0;k<4000;k++)
+ {
+ name = makeName(6);
+ (k%2)?email=name+"@mac.com":email=name+"(at)mac.com";
+
+ // validate the email address
+ var pattern = /^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-_]+(\.?[a-zA-Z0-9\-_]*)\.[a-zA-Z]{2,3}$/;
+
+ if(pattern.test(email))
+ {
+ var r = email + " appears to be a valid email address.";
+ addResult(r);
+ }
+ else
+ {
+ r = email + " does NOT appear to be a valid email address.";
+ addResult(r);
+ }
+ }
+
+ // make up ZIP codes
+ for (var s=0;s<4000;s++)
+ {
+ var zipGood = true;
+ var zip = makeNumber(4);
+ (s%2)?zip=zip+"xyz":zip=zip.concat("7");
+
+ // validate the zip code
+ for (var i = 0; i < zip.length; i++) {
+ var ch = zip.charAt(i);
+ if (ch < "0" || ch > "9") {
+ zipGood = false;
+ r = zip + " contains letters.";
+ addResult(r);
+ }
+ }
+ if (zipGood && zip.length>5)
+ {
+ zipGood = false;
+ r = zip + " is longer than five characters.";
+ addResult(r);
+ }
+ if (zipGood)
+ {
+ r = zip + " appears to be a valid ZIP code.";
+ addResult(r);
+ }
+ }
+}
+
+function makeName(n)
+{
+ var tmp = "";
+ for (var i=0;i<n;i++)
+ {
+ var l = Math.floor(26*Math.random());
+ tmp += letters[l];
+ }
+ return tmp;
+}
+
+function makeNumber(n)
+{
+ var tmp = "";
+ for (var i=0;i<n;i++)
+ {
+ var l = Math.floor(9*Math.random());
+ tmp = tmp.concat(l);
+ }
+ return tmp;
+}
+
+function addResult(r)
+{
+ endResult += "\n" + r;
+}
+
+doTest();
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/3d-cube.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/3d-cube.js
new file mode 100644
index 000000000..e2cd6f9a5
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/3d-cube.js
@@ -0,0 +1,337 @@
+// 3D Cube Rotation
+// http://www.speich.net/computer/moztesting/3d.htm
+// Created by Simon Speich
+
+var Q = new Array();
+var MTrans = new Array(); // transformation matrix
+var MQube = new Array(); // position information of qube
+var I = new Array(); // entity matrix
+var Origin = new Object();
+var Testing = new Object();
+var LoopTimer;
+
+var DisplArea = new Object();
+DisplArea.Width = 300;
+DisplArea.Height = 300;
+
+function DrawLine(From, To) {
+ var x1 = From.V[0];
+ var x2 = To.V[0];
+ var y1 = From.V[1];
+ var y2 = To.V[1];
+ var dx = Math.abs(x2 - x1);
+ var dy = Math.abs(y2 - y1);
+ var x = x1;
+ var y = y1;
+ var IncX1, IncY1;
+ var IncX2, IncY2;
+ var Den;
+ var Num;
+ var NumAdd;
+ var NumPix;
+
+ if (x2 >= x1) { IncX1 = 1; IncX2 = 1; }
+ else { IncX1 = -1; IncX2 = -1; }
+ if (y2 >= y1) { IncY1 = 1; IncY2 = 1; }
+ else { IncY1 = -1; IncY2 = -1; }
+ if (dx >= dy) {
+ IncX1 = 0;
+ IncY2 = 0;
+ Den = dx;
+ Num = dx / 2;
+ NumAdd = dy;
+ NumPix = dx;
+ }
+ else {
+ IncX2 = 0;
+ IncY1 = 0;
+ Den = dy;
+ Num = dy / 2;
+ NumAdd = dx;
+ NumPix = dy;
+ }
+
+ NumPix = Math.round(Q.LastPx + NumPix);
+
+ var i = Q.LastPx;
+ for (; i < NumPix; i++) {
+ Num += NumAdd;
+ if (Num >= Den) {
+ Num -= Den;
+ x += IncX1;
+ y += IncY1;
+ }
+ x += IncX2;
+ y += IncY2;
+ }
+ Q.LastPx = NumPix;
+}
+
+function CalcCross(V0, V1) {
+ var Cross = new Array();
+ Cross[0] = V0[1]*V1[2] - V0[2]*V1[1];
+ Cross[1] = V0[2]*V1[0] - V0[0]*V1[2];
+ Cross[2] = V0[0]*V1[1] - V0[1]*V1[0];
+ return Cross;
+}
+
+function CalcNormal(V0, V1, V2) {
+ var A = new Array(); var B = new Array();
+ for (var i = 0; i < 3; i++) {
+ A[i] = V0[i] - V1[i];
+ B[i] = V2[i] - V1[i];
+ }
+ A = CalcCross(A, B);
+ var Length = Math.sqrt(A[0]*A[0] + A[1]*A[1] + A[2]*A[2]);
+ for (var i = 0; i < 3; i++) A[i] = A[i] / Length;
+ A[3] = 1;
+ return A;
+}
+
+function CreateP(X,Y,Z) {
+ this.V = [X,Y,Z,1];
+}
+
+// multiplies two matrices
+function MMulti(M1, M2) {
+ var M = [[],[],[],[]];
+ var i = 0;
+ var j = 0;
+ for (; i < 4; i++) {
+ j = 0;
+ for (; j < 4; j++) M[i][j] = M1[i][0] * M2[0][j] + M1[i][1] * M2[1][j] + M1[i][2] * M2[2][j] + M1[i][3] * M2[3][j];
+ }
+ return M;
+}
+
+//multiplies matrix with vector
+function VMulti(M, V) {
+ var Vect = new Array();
+ var i = 0;
+ for (;i < 4; i++) Vect[i] = M[i][0] * V[0] + M[i][1] * V[1] + M[i][2] * V[2] + M[i][3] * V[3];
+ return Vect;
+}
+
+function VMulti2(M, V) {
+ var Vect = new Array();
+ var i = 0;
+ for (;i < 3; i++) Vect[i] = M[i][0] * V[0] + M[i][1] * V[1] + M[i][2] * V[2];
+ return Vect;
+}
+
+// add to matrices
+function MAdd(M1, M2) {
+ var M = [[],[],[],[]];
+ var i = 0;
+ var j = 0;
+ for (; i < 4; i++) {
+ j = 0;
+ for (; j < 4; j++) M[i][j] = M1[i][j] + M2[i][j];
+ }
+ return M;
+}
+
+function Translate(M, Dx, Dy, Dz) {
+ var T = [
+ [1,0,0,Dx],
+ [0,1,0,Dy],
+ [0,0,1,Dz],
+ [0,0,0,1]
+ ];
+ return MMulti(T, M);
+}
+
+function RotateX(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [1,0,0,0],
+ [0,Cos,-Sin,0],
+ [0,Sin,Cos,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function RotateY(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [Cos,0,Sin,0],
+ [0,1,0,0],
+ [-Sin,0,Cos,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function RotateZ(M, Phi) {
+ var a = Phi;
+ a *= Math.PI / 180;
+ var Cos = Math.cos(a);
+ var Sin = Math.sin(a);
+ var R = [
+ [Cos,-Sin,0,0],
+ [Sin,Cos,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+ return MMulti(R, M);
+}
+
+function DrawQube() {
+ // calc current normals
+ var CurN = new Array();
+ var i = 5;
+ Q.LastPx = 0;
+ for (; i > -1; i--) CurN[i] = VMulti2(MQube, Q.Normal[i]);
+ if (CurN[0][2] < 0) {
+ if (!Q.Line[0]) { DrawLine(Q[0], Q[1]); Q.Line[0] = true; };
+ if (!Q.Line[1]) { DrawLine(Q[1], Q[2]); Q.Line[1] = true; };
+ if (!Q.Line[2]) { DrawLine(Q[2], Q[3]); Q.Line[2] = true; };
+ if (!Q.Line[3]) { DrawLine(Q[3], Q[0]); Q.Line[3] = true; };
+ }
+ if (CurN[1][2] < 0) {
+ if (!Q.Line[2]) { DrawLine(Q[3], Q[2]); Q.Line[2] = true; };
+ if (!Q.Line[9]) { DrawLine(Q[2], Q[6]); Q.Line[9] = true; };
+ if (!Q.Line[6]) { DrawLine(Q[6], Q[7]); Q.Line[6] = true; };
+ if (!Q.Line[10]) { DrawLine(Q[7], Q[3]); Q.Line[10] = true; };
+ }
+ if (CurN[2][2] < 0) {
+ if (!Q.Line[4]) { DrawLine(Q[4], Q[5]); Q.Line[4] = true; };
+ if (!Q.Line[5]) { DrawLine(Q[5], Q[6]); Q.Line[5] = true; };
+ if (!Q.Line[6]) { DrawLine(Q[6], Q[7]); Q.Line[6] = true; };
+ if (!Q.Line[7]) { DrawLine(Q[7], Q[4]); Q.Line[7] = true; };
+ }
+ if (CurN[3][2] < 0) {
+ if (!Q.Line[4]) { DrawLine(Q[4], Q[5]); Q.Line[4] = true; };
+ if (!Q.Line[8]) { DrawLine(Q[5], Q[1]); Q.Line[8] = true; };
+ if (!Q.Line[0]) { DrawLine(Q[1], Q[0]); Q.Line[0] = true; };
+ if (!Q.Line[11]) { DrawLine(Q[0], Q[4]); Q.Line[11] = true; };
+ }
+ if (CurN[4][2] < 0) {
+ if (!Q.Line[11]) { DrawLine(Q[4], Q[0]); Q.Line[11] = true; };
+ if (!Q.Line[3]) { DrawLine(Q[0], Q[3]); Q.Line[3] = true; };
+ if (!Q.Line[10]) { DrawLine(Q[3], Q[7]); Q.Line[10] = true; };
+ if (!Q.Line[7]) { DrawLine(Q[7], Q[4]); Q.Line[7] = true; };
+ }
+ if (CurN[5][2] < 0) {
+ if (!Q.Line[8]) { DrawLine(Q[1], Q[5]); Q.Line[8] = true; };
+ if (!Q.Line[5]) { DrawLine(Q[5], Q[6]); Q.Line[5] = true; };
+ if (!Q.Line[9]) { DrawLine(Q[6], Q[2]); Q.Line[9] = true; };
+ if (!Q.Line[1]) { DrawLine(Q[2], Q[1]); Q.Line[1] = true; };
+ }
+ Q.Line = [false,false,false,false,false,false,false,false,false,false,false,false];
+ Q.LastPx = 0;
+}
+
+function Loop() {
+ if (Testing.LoopCount > Testing.LoopMax) return;
+ var TestingStr = String(Testing.LoopCount);
+ while (TestingStr.length < 3) TestingStr = "0" + TestingStr;
+ MTrans = Translate(I, -Q[8].V[0], -Q[8].V[1], -Q[8].V[2]);
+ MTrans = RotateX(MTrans, 1);
+ MTrans = RotateY(MTrans, 3);
+ MTrans = RotateZ(MTrans, 5);
+ MTrans = Translate(MTrans, Q[8].V[0], Q[8].V[1], Q[8].V[2]);
+ MQube = MMulti(MTrans, MQube);
+ var i = 8;
+ for (; i > -1; i--) {
+ Q[i].V = VMulti(MTrans, Q[i].V);
+ }
+ DrawQube();
+ Testing.LoopCount++;
+ Loop();
+}
+
+function Init(CubeSize) {
+ // init/reset vars
+ Origin.V = [150,150,20,1];
+ Testing.LoopCount = 0;
+ Testing.LoopMax = 50;
+ Testing.TimeMax = 0;
+ Testing.TimeAvg = 0;
+ Testing.TimeMin = 0;
+ Testing.TimeTemp = 0;
+ Testing.TimeTotal = 0;
+ Testing.Init = false;
+
+ // transformation matrix
+ MTrans = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // position information of qube
+ MQube = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // entity matrix
+ I = [
+ [1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]
+ ];
+
+ // create qube
+ Q[0] = new CreateP(-CubeSize,-CubeSize, CubeSize);
+ Q[1] = new CreateP(-CubeSize, CubeSize, CubeSize);
+ Q[2] = new CreateP( CubeSize, CubeSize, CubeSize);
+ Q[3] = new CreateP( CubeSize,-CubeSize, CubeSize);
+ Q[4] = new CreateP(-CubeSize,-CubeSize,-CubeSize);
+ Q[5] = new CreateP(-CubeSize, CubeSize,-CubeSize);
+ Q[6] = new CreateP( CubeSize, CubeSize,-CubeSize);
+ Q[7] = new CreateP( CubeSize,-CubeSize,-CubeSize);
+
+ // center of gravity
+ Q[8] = new CreateP(0, 0, 0);
+
+ // anti-clockwise edge check
+ Q.Edge = [[0,1,2],[3,2,6],[7,6,5],[4,5,1],[4,0,3],[1,5,6]];
+
+ // calculate squad normals
+ Q.Normal = new Array();
+ for (var i = 0; i < Q.Edge.length; i++) Q.Normal[i] = CalcNormal(Q[Q.Edge[i][0]].V, Q[Q.Edge[i][1]].V, Q[Q.Edge[i][2]].V);
+
+ // line drawn ?
+ Q.Line = [false,false,false,false,false,false,false,false,false,false,false,false];
+
+ // create line pixels
+ Q.NumPx = 9 * 2 * CubeSize;
+ for (var i = 0; i < Q.NumPx; i++) CreateP(0,0,0);
+
+ MTrans = Translate(MTrans, Origin.V[0], Origin.V[1], Origin.V[2]);
+ MQube = MMulti(MTrans, MQube);
+
+ var i = 0;
+ for (; i < 9; i++) {
+ Q[i].V = VMulti(MTrans, Q[i].V);
+ }
+ DrawQube();
+ Testing.Init = true;
+ Loop();
+}
+
+for ( var i = 20; i <= 160; i *= 2 ) {
+ Init(i);
+}
+
+Q = null;
+MTrans = null;
+MQube = null;
+I = null;
+Origin = null;
+Testing = null;
+LoopTime = null;
+DisplArea = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/3d-morph.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/3d-morph.js
new file mode 100644
index 000000000..d4238c080
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/3d-morph.js
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var loops = 15
+var nx = 120
+var nz = 120
+
+function morph(a, f) {
+ var PI2nx = Math.PI * 8/nx
+ var sin = Math.sin
+ var f30 = -(50 * sin(f*Math.PI*2))
+
+ for (var i = 0; i < nz; ++i) {
+ for (var j = 0; j < nx; ++j) {
+ a[3*(i*nx+j)+1] = sin((j-1) * PI2nx ) * -f30
+ }
+ }
+}
+
+
+var a = Array()
+for (var i=0; i < nx*nz*3; ++i)
+ a[i] = 0
+
+for (var i = 0; i < loops; ++i) {
+ morph(a, i/loops)
+}
+
+testOutput = 0;
+for (var i = 0; i < nx; i++)
+ testOutput += a[3*(i*nx+i)+1];
+a = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/3d-raytrace.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/3d-raytrace.js
new file mode 100644
index 000000000..e7b959e1c
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/3d-raytrace.js
@@ -0,0 +1,441 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function createVector(x,y,z) {
+ return new Array(x,y,z);
+}
+
+function sqrLengthVector(self) {
+ return self[0] * self[0] + self[1] * self[1] + self[2] * self[2];
+}
+
+function lengthVector(self) {
+ return Math.sqrt(self[0] * self[0] + self[1] * self[1] + self[2] * self[2]);
+}
+
+function addVector(self, v) {
+ self[0] += v[0];
+ self[1] += v[1];
+ self[2] += v[2];
+ return self;
+}
+
+function subVector(self, v) {
+ self[0] -= v[0];
+ self[1] -= v[1];
+ self[2] -= v[2];
+ return self;
+}
+
+function scaleVector(self, scale) {
+ self[0] *= scale;
+ self[1] *= scale;
+ self[2] *= scale;
+ return self;
+}
+
+function normaliseVector(self) {
+ var len = Math.sqrt(self[0] * self[0] + self[1] * self[1] + self[2] * self[2]);
+ self[0] /= len;
+ self[1] /= len;
+ self[2] /= len;
+ return self;
+}
+
+function add(v1, v2) {
+ return new Array(v1[0] + v2[0], v1[1] + v2[1], v1[2] + v2[2]);
+}
+
+function sub(v1, v2) {
+ return new Array(v1[0] - v2[0], v1[1] - v2[1], v1[2] - v2[2]);
+}
+
+function scalev(v1, v2) {
+ return new Array(v1[0] * v2[0], v1[1] * v2[1], v1[2] * v2[2]);
+}
+
+function dot(v1, v2) {
+ return v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
+}
+
+function scale(v, scale) {
+ return [v[0] * scale, v[1] * scale, v[2] * scale];
+}
+
+function cross(v1, v2) {
+ return [v1[1] * v2[2] - v1[2] * v2[1],
+ v1[2] * v2[0] - v1[0] * v2[2],
+ v1[0] * v2[1] - v1[1] * v2[0]];
+
+}
+
+function normalise(v) {
+ var len = lengthVector(v);
+ return [v[0] / len, v[1] / len, v[2] / len];
+}
+
+function transformMatrix(self, v) {
+ var vals = self;
+ var x = vals[0] * v[0] + vals[1] * v[1] + vals[2] * v[2] + vals[3];
+ var y = vals[4] * v[0] + vals[5] * v[1] + vals[6] * v[2] + vals[7];
+ var z = vals[8] * v[0] + vals[9] * v[1] + vals[10] * v[2] + vals[11];
+ return [x, y, z];
+}
+
+function invertMatrix(self) {
+ var temp = new Array(16);
+ var tx = -self[3];
+ var ty = -self[7];
+ var tz = -self[11];
+ for (h = 0; h < 3; h++)
+ for (v = 0; v < 3; v++)
+ temp[h + v * 4] = self[v + h * 4];
+ for (i = 0; i < 11; i++)
+ self[i] = temp[i];
+ self[3] = tx * self[0] + ty * self[1] + tz * self[2];
+ self[7] = tx * self[4] + ty * self[5] + tz * self[6];
+ self[11] = tx * self[8] + ty * self[9] + tz * self[10];
+ return self;
+}
+
+
+// Triangle intersection using barycentric coord method
+function Triangle(p1, p2, p3) {
+ var edge1 = sub(p3, p1);
+ var edge2 = sub(p2, p1);
+ var normal = cross(edge1, edge2);
+ if (Math.abs(normal[0]) > Math.abs(normal[1]))
+ if (Math.abs(normal[0]) > Math.abs(normal[2]))
+ this.axis = 0;
+ else
+ this.axis = 2;
+ else
+ if (Math.abs(normal[1]) > Math.abs(normal[2]))
+ this.axis = 1;
+ else
+ this.axis = 2;
+ var u = (this.axis + 1) % 3;
+ var v = (this.axis + 2) % 3;
+ var u1 = edge1[u];
+ var v1 = edge1[v];
+
+ var u2 = edge2[u];
+ var v2 = edge2[v];
+ this.normal = normalise(normal);
+ this.nu = normal[u] / normal[this.axis];
+ this.nv = normal[v] / normal[this.axis];
+ this.nd = dot(normal, p1) / normal[this.axis];
+ var det = u1 * v2 - v1 * u2;
+ this.eu = p1[u];
+ this.ev = p1[v];
+ this.nu1 = u1 / det;
+ this.nv1 = -v1 / det;
+ this.nu2 = v2 / det;
+ this.nv2 = -u2 / det;
+ this.material = [0.7, 0.7, 0.7];
+}
+
+Triangle.prototype.intersect = function(orig, dir, near, far) {
+ var u = (this.axis + 1) % 3;
+ var v = (this.axis + 2) % 3;
+ var d = dir[this.axis] + this.nu * dir[u] + this.nv * dir[v];
+ var t = (this.nd - orig[this.axis] - this.nu * orig[u] - this.nv * orig[v]) / d;
+ if (t < near || t > far)
+ return null;
+ var Pu = orig[u] + t * dir[u] - this.eu;
+ var Pv = orig[v] + t * dir[v] - this.ev;
+ var a2 = Pv * this.nu1 + Pu * this.nv1;
+ if (a2 < 0)
+ return null;
+ var a3 = Pu * this.nu2 + Pv * this.nv2;
+ if (a3 < 0)
+ return null;
+
+ if ((a2 + a3) > 1)
+ return null;
+ return t;
+}
+
+function Scene(a_triangles) {
+ this.triangles = a_triangles;
+ this.lights = [];
+ this.ambient = [0,0,0];
+ this.background = [0.8,0.8,1];
+}
+var zero = new Array(0,0,0);
+
+Scene.prototype.intersect = function(origin, dir, near, far) {
+ var closest = null;
+ for (i = 0; i < this.triangles.length; i++) {
+ var triangle = this.triangles[i];
+ var d = triangle.intersect(origin, dir, near, far);
+ if (d == null || d > far || d < near)
+ continue;
+ far = d;
+ closest = triangle;
+ }
+
+ if (!closest)
+ return [this.background[0],this.background[1],this.background[2]];
+
+ var normal = closest.normal;
+ var hit = add(origin, scale(dir, far));
+ if (dot(dir, normal) > 0)
+ normal = [-normal[0], -normal[1], -normal[2]];
+
+ var colour = null;
+ if (closest.shader) {
+ colour = closest.shader(closest, hit, dir);
+ } else {
+ colour = closest.material;
+ }
+
+ // do reflection
+ var reflected = null;
+ if (colour.reflection > 0.001) {
+ var reflection = addVector(scale(normal, -2*dot(dir, normal)), dir);
+ reflected = this.intersect(hit, reflection, 0.0001, 1000000);
+ if (colour.reflection >= 0.999999)
+ return reflected;
+ }
+
+ var l = [this.ambient[0], this.ambient[1], this.ambient[2]];
+ for (var i = 0; i < this.lights.length; i++) {
+ var light = this.lights[i];
+ var toLight = sub(light, hit);
+ var distance = lengthVector(toLight);
+ scaleVector(toLight, 1.0/distance);
+ distance -= 0.0001;
+ if (this.blocked(hit, toLight, distance))
+ continue;
+ var nl = dot(normal, toLight);
+ if (nl > 0)
+ addVector(l, scale(light.colour, nl));
+ }
+ l = scalev(l, colour);
+ if (reflected) {
+ l = addVector(scaleVector(l, 1 - colour.reflection), scaleVector(reflected, colour.reflection));
+ }
+ return l;
+}
+
+Scene.prototype.blocked = function(O, D, far) {
+ var near = 0.0001;
+ var closest = null;
+ for (i = 0; i < this.triangles.length; i++) {
+ var triangle = this.triangles[i];
+ var d = triangle.intersect(O, D, near, far);
+ if (d == null || d > far || d < near)
+ continue;
+ return true;
+ }
+
+ return false;
+}
+
+
+// this camera code is from notes i made ages ago, it is from *somewhere* -- i cannot remember where
+// that somewhere is
+function Camera(origin, lookat, up) {
+ var zaxis = normaliseVector(subVector(lookat, origin));
+ var xaxis = normaliseVector(cross(up, zaxis));
+ var yaxis = normaliseVector(cross(xaxis, subVector([0,0,0], zaxis)));
+ var m = new Array(16);
+ m[0] = xaxis[0]; m[1] = xaxis[1]; m[2] = xaxis[2];
+ m[4] = yaxis[0]; m[5] = yaxis[1]; m[6] = yaxis[2];
+ m[8] = zaxis[0]; m[9] = zaxis[1]; m[10] = zaxis[2];
+ invertMatrix(m);
+ m[3] = 0; m[7] = 0; m[11] = 0;
+ this.origin = origin;
+ this.directions = new Array(4);
+ this.directions[0] = normalise([-0.7, 0.7, 1]);
+ this.directions[1] = normalise([ 0.7, 0.7, 1]);
+ this.directions[2] = normalise([ 0.7, -0.7, 1]);
+ this.directions[3] = normalise([-0.7, -0.7, 1]);
+ this.directions[0] = transformMatrix(m, this.directions[0]);
+ this.directions[1] = transformMatrix(m, this.directions[1]);
+ this.directions[2] = transformMatrix(m, this.directions[2]);
+ this.directions[3] = transformMatrix(m, this.directions[3]);
+}
+
+Camera.prototype.generateRayPair = function(y) {
+ rays = new Array(new Object(), new Object());
+ rays[0].origin = this.origin;
+ rays[1].origin = this.origin;
+ rays[0].dir = addVector(scale(this.directions[0], y), scale(this.directions[3], 1 - y));
+ rays[1].dir = addVector(scale(this.directions[1], y), scale(this.directions[2], 1 - y));
+ return rays;
+}
+
+function renderRows(camera, scene, pixels, width, height, starty, stopy) {
+ for (var y = starty; y < stopy; y++) {
+ var rays = camera.generateRayPair(y / height);
+ for (var x = 0; x < width; x++) {
+ var xp = x / width;
+ var origin = addVector(scale(rays[0].origin, xp), scale(rays[1].origin, 1 - xp));
+ var dir = normaliseVector(addVector(scale(rays[0].dir, xp), scale(rays[1].dir, 1 - xp)));
+ var l = scene.intersect(origin, dir);
+ pixels[y][x] = l;
+ }
+ }
+}
+
+Camera.prototype.render = function(scene, pixels, width, height) {
+ var cam = this;
+ var row = 0;
+ renderRows(cam, scene, pixels, width, height, 0, height);
+}
+
+
+
+function raytraceScene()
+{
+ var startDate = new Date().getTime();
+ var numTriangles = 2 * 6;
+ var triangles = new Array();//numTriangles);
+ var tfl = createVector(-10, 10, -10);
+ var tfr = createVector( 10, 10, -10);
+ var tbl = createVector(-10, 10, 10);
+ var tbr = createVector( 10, 10, 10);
+ var bfl = createVector(-10, -10, -10);
+ var bfr = createVector( 10, -10, -10);
+ var bbl = createVector(-10, -10, 10);
+ var bbr = createVector( 10, -10, 10);
+
+ // cube!!!
+ // front
+ var i = 0;
+
+ triangles[i++] = new Triangle(tfl, tfr, bfr);
+ triangles[i++] = new Triangle(tfl, bfr, bfl);
+ // back
+ triangles[i++] = new Triangle(tbl, tbr, bbr);
+ triangles[i++] = new Triangle(tbl, bbr, bbl);
+ // triangles[i-1].material = [0.7,0.2,0.2];
+ // triangles[i-1].material.reflection = 0.8;
+ // left
+ triangles[i++] = new Triangle(tbl, tfl, bbl);
+ // triangles[i-1].reflection = 0.6;
+ triangles[i++] = new Triangle(tfl, bfl, bbl);
+ // triangles[i-1].reflection = 0.6;
+ // right
+ triangles[i++] = new Triangle(tbr, tfr, bbr);
+ triangles[i++] = new Triangle(tfr, bfr, bbr);
+ // top
+ triangles[i++] = new Triangle(tbl, tbr, tfr);
+ triangles[i++] = new Triangle(tbl, tfr, tfl);
+ // bottom
+ triangles[i++] = new Triangle(bbl, bbr, bfr);
+ triangles[i++] = new Triangle(bbl, bfr, bfl);
+
+ //Floor!!!!
+ var green = createVector(0.0, 0.4, 0.0);
+ var grey = createVector(0.4, 0.4, 0.4);
+ grey.reflection = 1.0;
+ var floorShader = function(tri, pos, view) {
+ var x = ((pos[0]/32) % 2 + 2) % 2;
+ var z = ((pos[2]/32 + 0.3) % 2 + 2) % 2;
+ if (x < 1 != z < 1) {
+ //in the real world we use the fresnel term...
+ // var angle = 1-dot(view, tri.normal);
+ // angle *= angle;
+ // angle *= angle;
+ // angle *= angle;
+ //grey.reflection = angle;
+ return grey;
+ } else
+ return green;
+ }
+ var ffl = createVector(-1000, -30, -1000);
+ var ffr = createVector( 1000, -30, -1000);
+ var fbl = createVector(-1000, -30, 1000);
+ var fbr = createVector( 1000, -30, 1000);
+ triangles[i++] = new Triangle(fbl, fbr, ffr);
+ triangles[i-1].shader = floorShader;
+ triangles[i++] = new Triangle(fbl, ffr, ffl);
+ triangles[i-1].shader = floorShader;
+
+ var _scene = new Scene(triangles);
+ _scene.lights[0] = createVector(20, 38, -22);
+ _scene.lights[0].colour = createVector(0.7, 0.3, 0.3);
+ _scene.lights[1] = createVector(-23, 40, 17);
+ _scene.lights[1].colour = createVector(0.7, 0.3, 0.3);
+ _scene.lights[2] = createVector(23, 20, 17);
+ _scene.lights[2].colour = createVector(0.7, 0.7, 0.7);
+ _scene.ambient = createVector(0.1, 0.1, 0.1);
+ // _scene.background = createVector(0.7, 0.7, 1.0);
+
+ var size = 30;
+ var pixels = new Array();
+ for (var y = 0; y < size; y++) {
+ pixels[y] = new Array();
+ for (var x = 0; x < size; x++) {
+ pixels[y][x] = 0;
+ }
+ }
+
+ var _camera = new Camera(createVector(-40, 40, 40), createVector(0, 0, 0), createVector(0, 1, 0));
+ _camera.render(_scene, pixels, size, size);
+
+ return pixels;
+}
+
+function arrayToCanvasCommands(pixels)
+{
+ var s = '<canvas id="renderCanvas" width="30px" height="30px"></canvas><scr' + 'ipt>\nvar pixels = [';
+ var size = 30;
+ for (var y = 0; y < size; y++) {
+ s += "[";
+ for (var x = 0; x < size; x++) {
+ s += "[" + pixels[y][x] + "],";
+ }
+ s+= "],";
+ }
+ s += '];\n var canvas = document.getElementById("renderCanvas").getContext("2d");\n\
+\n\
+\n\
+ var size = 30;\n\
+ canvas.fillStyle = "red";\n\
+ canvas.fillRect(0, 0, size, size);\n\
+ canvas.scale(1, -1);\n\
+ canvas.translate(0, -size);\n\
+\n\
+ if (!canvas.setFillColor)\n\
+ canvas.setFillColor = function(r, g, b, a) {\n\
+ this.fillStyle = "rgb("+[Math.floor(r * 255), Math.floor(g * 255), Math.floor(b * 255)]+")";\n\
+ }\n\
+\n\
+for (var y = 0; y < size; y++) {\n\
+ for (var x = 0; x < size; x++) {\n\
+ var l = pixels[y][x];\n\
+ canvas.setFillColor(l[0], l[1], l[2], 1);\n\
+ canvas.fillRect(x, y, 1, 1);\n\
+ }\n\
+}</scr' + 'ipt>';
+
+ return s;
+}
+
+testOutput = arrayToCanvasCommands(raytraceScene());
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/LIST b/PerformanceTests/SunSpider/tests/sunspider-1.0/LIST
new file mode 100644
index 000000000..34cfac4f4
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/LIST
@@ -0,0 +1,26 @@
+3d-cube
+3d-morph
+3d-raytrace
+access-binary-trees
+access-fannkuch
+access-nbody
+access-nsieve
+bitops-3bit-bits-in-byte
+bitops-bits-in-byte
+bitops-bitwise-and
+bitops-nsieve-bits
+controlflow-recursive
+crypto-aes
+crypto-md5
+crypto-sha1
+date-format-tofte
+date-format-xparb
+math-cordic
+math-partial-sums
+math-spectral-norm
+regexp-dna
+string-base64
+string-fasta
+string-tagcloud
+string-unpack-code
+string-validate-input
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/access-binary-trees.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/access-binary-trees.js
new file mode 100644
index 000000000..2f24e7db1
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/access-binary-trees.js
@@ -0,0 +1,50 @@
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+function TreeNode(left,right,item){
+ this.left = left;
+ this.right = right;
+ this.item = item;
+}
+
+TreeNode.prototype.itemCheck = function(){
+ if (this.left==null) return this.item;
+ else return this.item + this.left.itemCheck() - this.right.itemCheck();
+}
+
+function bottomUpTree(item,depth){
+ if (depth>0){
+ return new TreeNode(
+ bottomUpTree(2*item-1, depth-1)
+ ,bottomUpTree(2*item, depth-1)
+ ,item
+ );
+ }
+ else {
+ return new TreeNode(null,null,item);
+ }
+}
+
+var ret;
+
+for ( var n = 4; n <= 7; n += 1 ) {
+ var minDepth = 4;
+ var maxDepth = Math.max(minDepth + 2, n);
+ var stretchDepth = maxDepth + 1;
+
+ var check = bottomUpTree(0,stretchDepth).itemCheck();
+
+ var longLivedTree = bottomUpTree(0,maxDepth);
+ for (var depth=minDepth; depth<=maxDepth; depth+=2){
+ var iterations = 1 << (maxDepth - depth + minDepth);
+
+ check = 0;
+ for (var i=1; i<=iterations; i++){
+ check += bottomUpTree(i,depth).itemCheck();
+ check += bottomUpTree(-i,depth).itemCheck();
+ }
+ }
+
+ ret = longLivedTree.itemCheck();
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/access-fannkuch.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/access-fannkuch.js
new file mode 100644
index 000000000..1ea87b494
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/access-fannkuch.js
@@ -0,0 +1,66 @@
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+function fannkuch(n) {
+ var check = 0;
+ var perm = Array(n);
+ var perm1 = Array(n);
+ var count = Array(n);
+ var maxPerm = Array(n);
+ var maxFlipsCount = 0;
+ var m = n - 1;
+
+ for (var i = 0; i < n; i++) perm1[i] = i;
+ var r = n;
+
+ while (true) {
+ // write-out the first 30 permutations
+ if (check < 30){
+ var s = "";
+ for(var i=0; i<n; i++) s += (perm1[i]+1).toString();
+ check++;
+ }
+
+ while (r != 1) { count[r - 1] = r; r--; }
+ if (!(perm1[0] == 0 || perm1[m] == m)) {
+ for (var i = 0; i < n; i++) perm[i] = perm1[i];
+
+ var flipsCount = 0;
+ var k;
+
+ while (!((k = perm[0]) == 0)) {
+ var k2 = (k + 1) >> 1;
+ for (var i = 0; i < k2; i++) {
+ var temp = perm[i]; perm[i] = perm[k - i]; perm[k - i] = temp;
+ }
+ flipsCount++;
+ }
+
+ if (flipsCount > maxFlipsCount) {
+ maxFlipsCount = flipsCount;
+ for (var i = 0; i < n; i++) maxPerm[i] = perm1[i];
+ }
+ }
+
+ while (true) {
+ if (r == n) return maxFlipsCount;
+ var perm0 = perm1[0];
+ var i = 0;
+ while (i < r) {
+ var j = i + 1;
+ perm1[i] = perm1[j];
+ i = j;
+ }
+ perm1[r] = perm0;
+
+ count[r] = count[r] - 1;
+ if (count[r] > 0) break;
+ r++;
+ }
+ }
+}
+
+var n = 8;
+var ret = fannkuch(n);
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/access-nbody.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/access-nbody.js
new file mode 100644
index 000000000..f0d080d12
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/access-nbody.js
@@ -0,0 +1,169 @@
+/* The Great Computer Language Shootout
+ http://shootout.alioth.debian.org/
+ contributed by Isaac Gouy */
+
+var PI = 3.141592653589793;
+var SOLAR_MASS = 4 * PI * PI;
+var DAYS_PER_YEAR = 365.24;
+
+function Body(x,y,z,vx,vy,vz,mass){
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ this.vx = vx;
+ this.vy = vy;
+ this.vz = vz;
+ this.mass = mass;
+}
+
+Body.prototype.offsetMomentum = function(px,py,pz) {
+ this.vx = -px / SOLAR_MASS;
+ this.vy = -py / SOLAR_MASS;
+ this.vz = -pz / SOLAR_MASS;
+ return this;
+}
+
+function Jupiter(){
+ return new Body(
+ 4.84143144246472090e+00,
+ -1.16032004402742839e+00,
+ -1.03622044471123109e-01,
+ 1.66007664274403694e-03 * DAYS_PER_YEAR,
+ 7.69901118419740425e-03 * DAYS_PER_YEAR,
+ -6.90460016972063023e-05 * DAYS_PER_YEAR,
+ 9.54791938424326609e-04 * SOLAR_MASS
+ );
+}
+
+function Saturn(){
+ return new Body(
+ 8.34336671824457987e+00,
+ 4.12479856412430479e+00,
+ -4.03523417114321381e-01,
+ -2.76742510726862411e-03 * DAYS_PER_YEAR,
+ 4.99852801234917238e-03 * DAYS_PER_YEAR,
+ 2.30417297573763929e-05 * DAYS_PER_YEAR,
+ 2.85885980666130812e-04 * SOLAR_MASS
+ );
+}
+
+function Uranus(){
+ return new Body(
+ 1.28943695621391310e+01,
+ -1.51111514016986312e+01,
+ -2.23307578892655734e-01,
+ 2.96460137564761618e-03 * DAYS_PER_YEAR,
+ 2.37847173959480950e-03 * DAYS_PER_YEAR,
+ -2.96589568540237556e-05 * DAYS_PER_YEAR,
+ 4.36624404335156298e-05 * SOLAR_MASS
+ );
+}
+
+function Neptune(){
+ return new Body(
+ 1.53796971148509165e+01,
+ -2.59193146099879641e+01,
+ 1.79258772950371181e-01,
+ 2.68067772490389322e-03 * DAYS_PER_YEAR,
+ 1.62824170038242295e-03 * DAYS_PER_YEAR,
+ -9.51592254519715870e-05 * DAYS_PER_YEAR,
+ 5.15138902046611451e-05 * SOLAR_MASS
+ );
+}
+
+function Sun(){
+ return new Body(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SOLAR_MASS);
+}
+
+
+function NBodySystem(bodies){
+ this.bodies = bodies;
+ var px = 0.0;
+ var py = 0.0;
+ var pz = 0.0;
+ var size = this.bodies.length;
+ for (var i=0; i<size; i++){
+ var b = this.bodies[i];
+ var m = b.mass;
+ px += b.vx * m;
+ py += b.vy * m;
+ pz += b.vz * m;
+ }
+ this.bodies[0].offsetMomentum(px,py,pz);
+}
+
+NBodySystem.prototype.advance = function(dt){
+ var dx, dy, dz, distance, mag;
+ var size = this.bodies.length;
+
+ for (var i=0; i<size; i++) {
+ var bodyi = this.bodies[i];
+ for (var j=i+1; j<size; j++) {
+ var bodyj = this.bodies[j];
+ dx = bodyi.x - bodyj.x;
+ dy = bodyi.y - bodyj.y;
+ dz = bodyi.z - bodyj.z;
+
+ distance = Math.sqrt(dx*dx + dy*dy + dz*dz);
+ mag = dt / (distance * distance * distance);
+
+ bodyi.vx -= dx * bodyj.mass * mag;
+ bodyi.vy -= dy * bodyj.mass * mag;
+ bodyi.vz -= dz * bodyj.mass * mag;
+
+ bodyj.vx += dx * bodyi.mass * mag;
+ bodyj.vy += dy * bodyi.mass * mag;
+ bodyj.vz += dz * bodyi.mass * mag;
+ }
+ }
+
+ for (var i=0; i<size; i++) {
+ var body = this.bodies[i];
+ body.x += dt * body.vx;
+ body.y += dt * body.vy;
+ body.z += dt * body.vz;
+ }
+}
+
+NBodySystem.prototype.energy = function(){
+ var dx, dy, dz, distance;
+ var e = 0.0;
+ var size = this.bodies.length;
+
+ for (var i=0; i<size; i++) {
+ var bodyi = this.bodies[i];
+
+ e += 0.5 * bodyi.mass *
+ ( bodyi.vx * bodyi.vx
+ + bodyi.vy * bodyi.vy
+ + bodyi.vz * bodyi.vz );
+
+ for (var j=i+1; j<size; j++) {
+ var bodyj = this.bodies[j];
+ dx = bodyi.x - bodyj.x;
+ dy = bodyi.y - bodyj.y;
+ dz = bodyi.z - bodyj.z;
+
+ distance = Math.sqrt(dx*dx + dy*dy + dz*dz);
+ e -= (bodyi.mass * bodyj.mass) / distance;
+ }
+ }
+ return e;
+}
+
+var ret;
+
+for ( var n = 3; n <= 24; n *= 2 ) {
+ (function(){
+ var bodies = new NBodySystem( Array(
+ Sun(),Jupiter(),Saturn(),Uranus(),Neptune()
+ ));
+ var max = n * 100;
+
+ ret = bodies.energy();
+ for (var i=0; i<max; i++){
+ bodies.advance(0.01);
+ }
+ ret = bodies.energy();
+ })();
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/access-nsieve.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/access-nsieve.js
new file mode 100644
index 000000000..70fdf1aaf
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/access-nsieve.js
@@ -0,0 +1,38 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// modified by Isaac Gouy
+
+function pad(number,width){
+ var s = number.toString();
+ var prefixWidth = width - s.length;
+ if (prefixWidth>0){
+ for (var i=1; i<=prefixWidth; i++) s = " " + s;
+ }
+ return s;
+}
+
+function nsieve(m, isPrime){
+ var i, k, count;
+
+ for (i=2; i<=m; i++) { isPrime[i] = true; }
+ count = 0;
+
+ for (i=2; i<=m; i++){
+ if (isPrime[i]) {
+ for (k=i+i; k<=m; k+=i) isPrime[k] = false;
+ count++;
+ }
+ }
+ return count;
+}
+
+function sieve() {
+ for (var i = 1; i <= 3; i++ ) {
+ var m = (1<<i)*10000;
+ var flags = Array(m+1);
+ nsieve(m, flags);
+ }
+}
+
+sieve();
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-3bit-bits-in-byte.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-3bit-bits-in-byte.js
new file mode 100644
index 000000000..ab3d7dec5
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-3bit-bits-in-byte.js
@@ -0,0 +1,36 @@
+// Copyright (c) 2004 by Arthur Langereis (arthur_ext at domain xfinitegames, tld com
+
+var result = 0;
+
+// 1 op = 6 ANDs, 3 SHRs, 3 SHLs, 4 assigns, 2 ADDs
+// O(1)
+function fast3bitlookup(b) {
+var c, bi3b = 0xE994; // 0b1110 1001 1001 0100; // 3 2 2 1 2 1 1 0
+c = 3 & (bi3b >> ((b << 1) & 14));
+c += 3 & (bi3b >> ((b >> 2) & 14));
+c += 3 & (bi3b >> ((b >> 5) & 6));
+return c;
+
+/*
+lir4,0xE994; 9 instructions, no memory access, minimal register dependence, 6 shifts, 2 adds, 1 inline assign
+rlwinmr5,r3,1,28,30
+rlwinmr6,r3,30,28,30
+rlwinmr7,r3,27,29,30
+rlwnmr8,r4,r5,30,31
+rlwnmr9,r4,r6,30,31
+rlwnmr10,r4,r7,30,31
+addr3,r8,r9
+addr3,r3,r10
+*/
+}
+
+
+function TimeFunc(func) {
+var x, y, t;
+var sum = 0;
+for(var x=0; x<500; x++)
+for(var y=0; y<256; y++) sum += func(y);
+return sum;
+}
+
+sum = TimeFunc(fast3bitlookup);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-bits-in-byte.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-bits-in-byte.js
new file mode 100644
index 000000000..ebde79949
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-bits-in-byte.js
@@ -0,0 +1,25 @@
+// Copyright (c) 2004 by Arthur Langereis (arthur_ext at domain xfinitegames, tld com)
+
+
+var result = 0;
+
+// 1 op = 2 assigns, 16 compare/branches, 8 ANDs, (0-8) ADDs, 8 SHLs
+// O(n)
+function bitsinbyte(b) {
+var m = 1, c = 0;
+while(m<0x100) {
+if(b & m) c++;
+m <<= 1;
+}
+return c;
+}
+
+function TimeFunc(func) {
+var x, y, t;
+var sum = 0;
+for(var x=0; x<350; x++)
+for(var y=0; y<256; y++) sum += func(y);
+return sum;
+}
+
+result = TimeFunc(bitsinbyte);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-bitwise-and.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-bitwise-and.js
new file mode 100644
index 000000000..f377372aa
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-bitwise-and.js
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+bitwiseAndValue = 4294967296;
+for (var i = 0; i < 600000; i++)
+ bitwiseAndValue = bitwiseAndValue & i;
+
+var result = bitwiseAndValue;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-nsieve-bits.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-nsieve-bits.js
new file mode 100644
index 000000000..a9f2d221b
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/bitops-nsieve-bits.js
@@ -0,0 +1,33 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org
+//
+// Contributed by Ian Osgood
+
+function pad(n,width) {
+ var s = n.toString();
+ while (s.length < width) s = ' ' + s;
+ return s;
+}
+
+function primes(isPrime, n) {
+ var i, count = 0, m = 10000<<n, size = m+31>>5;
+
+ for (i=0; i<size; i++) isPrime[i] = 0xffffffff;
+
+ for (i=2; i<m; i++)
+ if (isPrime[i>>5] & 1<<(i&31)) {
+ for (var j=i+i; j<m; j+=i)
+ isPrime[j>>5] &= ~(1<<(j&31));
+ count++;
+ }
+}
+
+function sieve() {
+ for (var i = 4; i <= 4; i++) {
+ var isPrime = new Array((10000<<i)+31>>5);
+ primes(isPrime, i);
+ }
+ return isPrime;
+}
+
+var result = sieve();
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/controlflow-recursive.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/controlflow-recursive.js
new file mode 100644
index 000000000..fcfe1c40e
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/controlflow-recursive.js
@@ -0,0 +1,25 @@
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+// contributed by Isaac Gouy
+
+function ack(m,n){
+ if (m==0) { return n+1; }
+ if (n==0) { return ack(m-1,1); }
+ return ack(m-1, ack(m,n-1) );
+}
+
+function fib(n) {
+ if (n < 2){ return 1; }
+ return fib(n-2) + fib(n-1);
+}
+
+function tak(x,y,z) {
+ if (y >= x) return z;
+ return tak(tak(x-1,y,z), tak(y-1,z,x), tak(z-1,x,y));
+}
+
+for ( var i = 3; i <= 5; i++ ) {
+ ack(3,i);
+ fib(17.0+i);
+ tak(3*i+3,2*i+2,i+1);
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-aes.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-aes.js
new file mode 100644
index 000000000..93a596935
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-aes.js
@@ -0,0 +1,422 @@
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * AES Cipher function: encrypt 'input' with Rijndael algorithm
+ *
+ * takes byte-array 'input' (16 bytes)
+ * 2D byte-array key schedule 'w' (Nr+1 x Nb bytes)
+ *
+ * applies Nr rounds (10/12/14) using key schedule w for 'add round key' stage
+ *
+ * returns byte-array encrypted value (16 bytes)
+ */
+function Cipher(input, w) { // main Cipher function [§5.1]
+ var Nb = 4; // block size (in words): no of columns in state (fixed at 4 for AES)
+ var Nr = w.length/Nb - 1; // no of rounds: 10/12/14 for 128/192/256-bit keys
+
+ var state = [[],[],[],[]]; // initialise 4xNb byte-array 'state' with input [§3.4]
+ for (var i=0; i<4*Nb; i++) state[i%4][Math.floor(i/4)] = input[i];
+
+ state = AddRoundKey(state, w, 0, Nb);
+
+ for (var round=1; round<Nr; round++) {
+ state = SubBytes(state, Nb);
+ state = ShiftRows(state, Nb);
+ state = MixColumns(state, Nb);
+ state = AddRoundKey(state, w, round, Nb);
+ }
+
+ state = SubBytes(state, Nb);
+ state = ShiftRows(state, Nb);
+ state = AddRoundKey(state, w, Nr, Nb);
+
+ var output = new Array(4*Nb); // convert state to 1-d array before returning [§3.4]
+ for (var i=0; i<4*Nb; i++) output[i] = state[i%4][Math.floor(i/4)];
+ return output;
+}
+
+
+function SubBytes(s, Nb) { // apply SBox to state S [§5.1.1]
+ for (var r=0; r<4; r++) {
+ for (var c=0; c<Nb; c++) s[r][c] = Sbox[s[r][c]];
+ }
+ return s;
+}
+
+
+function ShiftRows(s, Nb) { // shift row r of state S left by r bytes [§5.1.2]
+ var t = new Array(4);
+ for (var r=1; r<4; r++) {
+ for (var c=0; c<4; c++) t[c] = s[r][(c+r)%Nb]; // shift into temp copy
+ for (var c=0; c<4; c++) s[r][c] = t[c]; // and copy back
+ } // note that this will work for Nb=4,5,6, but not 7,8 (always 4 for AES):
+ return s; // see fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.311.pdf
+}
+
+
+function MixColumns(s, Nb) { // combine bytes of each col of state S [§5.1.3]
+ for (var c=0; c<4; c++) {
+ var a = new Array(4); // 'a' is a copy of the current column from 's'
+ var b = new Array(4); // 'b' is a•{02} in GF(2^8)
+ for (var i=0; i<4; i++) {
+ a[i] = s[i][c];
+ b[i] = s[i][c]&0x80 ? s[i][c]<<1 ^ 0x011b : s[i][c]<<1;
+ }
+ // a[n] ^ b[n] is a•{03} in GF(2^8)
+ s[0][c] = b[0] ^ a[1] ^ b[1] ^ a[2] ^ a[3]; // 2*a0 + 3*a1 + a2 + a3
+ s[1][c] = a[0] ^ b[1] ^ a[2] ^ b[2] ^ a[3]; // a0 * 2*a1 + 3*a2 + a3
+ s[2][c] = a[0] ^ a[1] ^ b[2] ^ a[3] ^ b[3]; // a0 + a1 + 2*a2 + 3*a3
+ s[3][c] = a[0] ^ b[0] ^ a[1] ^ a[2] ^ b[3]; // 3*a0 + a1 + a2 + 2*a3
+ }
+ return s;
+}
+
+
+function AddRoundKey(state, w, rnd, Nb) { // xor Round Key into state S [§5.1.4]
+ for (var r=0; r<4; r++) {
+ for (var c=0; c<Nb; c++) state[r][c] ^= w[rnd*4+c][r];
+ }
+ return state;
+}
+
+
+function KeyExpansion(key) { // generate Key Schedule (byte-array Nr+1 x Nb) from Key [§5.2]
+ var Nb = 4; // block size (in words): no of columns in state (fixed at 4 for AES)
+ var Nk = key.length/4 // key length (in words): 4/6/8 for 128/192/256-bit keys
+ var Nr = Nk + 6; // no of rounds: 10/12/14 for 128/192/256-bit keys
+
+ var w = new Array(Nb*(Nr+1));
+ var temp = new Array(4);
+
+ for (var i=0; i<Nk; i++) {
+ var r = [key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]];
+ w[i] = r;
+ }
+
+ for (var i=Nk; i<(Nb*(Nr+1)); i++) {
+ w[i] = new Array(4);
+ for (var t=0; t<4; t++) temp[t] = w[i-1][t];
+ if (i % Nk == 0) {
+ temp = SubWord(RotWord(temp));
+ for (var t=0; t<4; t++) temp[t] ^= Rcon[i/Nk][t];
+ } else if (Nk > 6 && i%Nk == 4) {
+ temp = SubWord(temp);
+ }
+ for (var t=0; t<4; t++) w[i][t] = w[i-Nk][t] ^ temp[t];
+ }
+
+ return w;
+}
+
+function SubWord(w) { // apply SBox to 4-byte word w
+ for (var i=0; i<4; i++) w[i] = Sbox[w[i]];
+ return w;
+}
+
+function RotWord(w) { // rotate 4-byte word w left by one byte
+ w[4] = w[0];
+ for (var i=0; i<4; i++) w[i] = w[i+1];
+ return w;
+}
+
+
+// Sbox is pre-computed multiplicative inverse in GF(2^8) used in SubBytes and KeyExpansion [§5.1.1]
+var Sbox = [0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,
+ 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,
+ 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,
+ 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,
+ 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,
+ 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,
+ 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,
+ 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,
+ 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,
+ 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,
+ 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,
+ 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,
+ 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,
+ 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,
+ 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,
+ 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16];
+
+// Rcon is Round Constant used for the Key Expansion [1st col is 2^(r-1) in GF(2^8)] [§5.2]
+var Rcon = [ [0x00, 0x00, 0x00, 0x00],
+ [0x01, 0x00, 0x00, 0x00],
+ [0x02, 0x00, 0x00, 0x00],
+ [0x04, 0x00, 0x00, 0x00],
+ [0x08, 0x00, 0x00, 0x00],
+ [0x10, 0x00, 0x00, 0x00],
+ [0x20, 0x00, 0x00, 0x00],
+ [0x40, 0x00, 0x00, 0x00],
+ [0x80, 0x00, 0x00, 0x00],
+ [0x1b, 0x00, 0x00, 0x00],
+ [0x36, 0x00, 0x00, 0x00] ];
+
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * Use AES to encrypt 'plaintext' with 'password' using 'nBits' key, in 'Counter' mode of operation
+ * - see http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
+ * for each block
+ * - outputblock = cipher(counter, key)
+ * - cipherblock = plaintext xor outputblock
+ */
+function AESEncryptCtr(plaintext, password, nBits) {
+ if (!(nBits==128 || nBits==192 || nBits==256)) return ''; // standard allows 128/192/256 bit keys
+
+ // for this example script, generate the key by applying Cipher to 1st 16/24/32 chars of password;
+ // for real-world applications, a more secure approach would be to hash the password e.g. with SHA-1
+ var nBytes = nBits/8; // no bytes in key
+ var pwBytes = new Array(nBytes);
+ for (var i=0; i<nBytes; i++) pwBytes[i] = password.charCodeAt(i) & 0xff;
+ var key = Cipher(pwBytes, KeyExpansion(pwBytes));
+ key = key.concat(key.slice(0, nBytes-16)); // key is now 16/24/32 bytes long
+
+ // initialise counter block (NIST SP800-38A §B.2): millisecond time-stamp for nonce in 1st 8 bytes,
+ // block counter in 2nd 8 bytes
+ var blockSize = 16; // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var counterBlock = new Array(blockSize); // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var nonce = (new Date()).getTime(); // milliseconds since 1-Jan-1970
+
+ // encode nonce in two stages to cater for JavaScript 32-bit limit on bitwise ops
+ for (var i=0; i<4; i++) counterBlock[i] = (nonce >>> i*8) & 0xff;
+ for (var i=0; i<4; i++) counterBlock[i+4] = (nonce/0x100000000 >>> i*8) & 0xff;
+
+ // generate key schedule - an expansion of the key into distinct Key Rounds for each round
+ var keySchedule = KeyExpansion(key);
+
+ var blockCount = Math.ceil(plaintext.length/blockSize);
+ var ciphertext = new Array(blockCount); // ciphertext as array of strings
+
+ for (var b=0; b<blockCount; b++) {
+ // set counter (block #) in last 8 bytes of counter block (leaving nonce in 1st 8 bytes)
+ // again done in two stages for 32-bit ops
+ for (var c=0; c<4; c++) counterBlock[15-c] = (b >>> c*8) & 0xff;
+ for (var c=0; c<4; c++) counterBlock[15-c-4] = (b/0x100000000 >>> c*8)
+
+ var cipherCntr = Cipher(counterBlock, keySchedule); // -- encrypt counter block --
+
+ // calculate length of final block:
+ var blockLength = b<blockCount-1 ? blockSize : (plaintext.length-1)%blockSize+1;
+
+ var ct = '';
+ for (var i=0; i<blockLength; i++) { // -- xor plaintext with ciphered counter byte-by-byte --
+ var plaintextByte = plaintext.charCodeAt(b*blockSize+i);
+ var cipherByte = plaintextByte ^ cipherCntr[i];
+ ct += String.fromCharCode(cipherByte);
+ }
+ // ct is now ciphertext for this block
+
+ ciphertext[b] = escCtrlChars(ct); // escape troublesome characters in ciphertext
+ }
+
+ // convert the nonce to a string to go on the front of the ciphertext
+ var ctrTxt = '';
+ for (var i=0; i<8; i++) ctrTxt += String.fromCharCode(counterBlock[i]);
+ ctrTxt = escCtrlChars(ctrTxt);
+
+ // use '-' to separate blocks, use Array.join to concatenate arrays of strings for efficiency
+ return ctrTxt + '-' + ciphertext.join('-');
+}
+
+
+/*
+ * Use AES to decrypt 'ciphertext' with 'password' using 'nBits' key, in Counter mode of operation
+ *
+ * for each block
+ * - outputblock = cipher(counter, key)
+ * - cipherblock = plaintext xor outputblock
+ */
+function AESDecryptCtr(ciphertext, password, nBits) {
+ if (!(nBits==128 || nBits==192 || nBits==256)) return ''; // standard allows 128/192/256 bit keys
+
+ var nBytes = nBits/8; // no bytes in key
+ var pwBytes = new Array(nBytes);
+ for (var i=0; i<nBytes; i++) pwBytes[i] = password.charCodeAt(i) & 0xff;
+ var pwKeySchedule = KeyExpansion(pwBytes);
+ var key = Cipher(pwBytes, pwKeySchedule);
+ key = key.concat(key.slice(0, nBytes-16)); // key is now 16/24/32 bytes long
+
+ var keySchedule = KeyExpansion(key);
+
+ ciphertext = ciphertext.split('-'); // split ciphertext into array of block-length strings
+
+ // recover nonce from 1st element of ciphertext
+ var blockSize = 16; // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
+ var counterBlock = new Array(blockSize);
+ var ctrTxt = unescCtrlChars(ciphertext[0]);
+ for (var i=0; i<8; i++) counterBlock[i] = ctrTxt.charCodeAt(i);
+
+ var plaintext = new Array(ciphertext.length-1);
+
+ for (var b=1; b<ciphertext.length; b++) {
+ // set counter (block #) in last 8 bytes of counter block (leaving nonce in 1st 8 bytes)
+ for (var c=0; c<4; c++) counterBlock[15-c] = ((b-1) >>> c*8) & 0xff;
+ for (var c=0; c<4; c++) counterBlock[15-c-4] = ((b/0x100000000-1) >>> c*8) & 0xff;
+
+ var cipherCntr = Cipher(counterBlock, keySchedule); // encrypt counter block
+
+ ciphertext[b] = unescCtrlChars(ciphertext[b]);
+
+ var pt = '';
+ for (var i=0; i<ciphertext[b].length; i++) {
+ // -- xor plaintext with ciphered counter byte-by-byte --
+ var ciphertextByte = ciphertext[b].charCodeAt(i);
+ var plaintextByte = ciphertextByte ^ cipherCntr[i];
+ pt += String.fromCharCode(plaintextByte);
+ }
+ // pt is now plaintext for this block
+
+ plaintext[b-1] = pt; // b-1 'cos no initial nonce block in plaintext
+ }
+
+ return plaintext.join('');
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+function escCtrlChars(str) { // escape control chars which might cause problems handling ciphertext
+ return str.replace(/[\0\t\n\v\f\r\xa0'"!-]/g, function(c) { return '!' + c.charCodeAt(0) + '!'; });
+} // \xa0 to cater for bug in Firefox; include '-' to leave it free for use as a block marker
+
+function unescCtrlChars(str) { // unescape potentially problematic control characters
+ return str.replace(/!\d\d?\d?!/g, function(c) { return String.fromCharCode(c.slice(1,-1)); });
+}
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/*
+ * if escCtrlChars()/unescCtrlChars() still gives problems, use encodeBase64()/decodeBase64() instead
+ */
+var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+
+function encodeBase64(str) { // http://tools.ietf.org/html/rfc4648
+ var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
+
+ str = encodeUTF8(str); // encode multi-byte chars into UTF-8 for byte-array
+
+ do { // pack three octets into four hexets
+ o1 = str.charCodeAt(i++);
+ o2 = str.charCodeAt(i++);
+ o3 = str.charCodeAt(i++);
+
+ bits = o1<<16 | o2<<8 | o3;
+
+ h1 = bits>>18 & 0x3f;
+ h2 = bits>>12 & 0x3f;
+ h3 = bits>>6 & 0x3f;
+ h4 = bits & 0x3f;
+
+ // end of string? index to '=' in b64
+ if (isNaN(o3)) h4 = 64;
+ if (isNaN(o2)) h3 = 64;
+
+ // use hexets to index into b64, and append result to encoded string
+ enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
+ } while (i < str.length);
+
+ return enc;
+}
+
+function decodeBase64(str) {
+ var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
+
+ do { // unpack four hexets into three octets using index points in b64
+ h1 = b64.indexOf(str.charAt(i++));
+ h2 = b64.indexOf(str.charAt(i++));
+ h3 = b64.indexOf(str.charAt(i++));
+ h4 = b64.indexOf(str.charAt(i++));
+
+ bits = h1<<18 | h2<<12 | h3<<6 | h4;
+
+ o1 = bits>>16 & 0xff;
+ o2 = bits>>8 & 0xff;
+ o3 = bits & 0xff;
+
+ if (h3 == 64) enc += String.fromCharCode(o1);
+ else if (h4 == 64) enc += String.fromCharCode(o1, o2);
+ else enc += String.fromCharCode(o1, o2, o3);
+ } while (i < str.length);
+
+ return decodeUTF8(enc); // decode UTF-8 byte-array back to Unicode
+}
+
+function encodeUTF8(str) { // encode multi-byte string into utf-8 multiple single-byte characters
+ str = str.replace(
+ /[\u0080-\u07ff]/g, // U+0080 - U+07FF = 2-byte chars
+ function(c) {
+ var cc = c.charCodeAt(0);
+ return String.fromCharCode(0xc0 | cc>>6, 0x80 | cc&0x3f); }
+ );
+ str = str.replace(
+ /[\u0800-\uffff]/g, // U+0800 - U+FFFF = 3-byte chars
+ function(c) {
+ var cc = c.charCodeAt(0);
+ return String.fromCharCode(0xe0 | cc>>12, 0x80 | cc>>6&0x3F, 0x80 | cc&0x3f); }
+ );
+ return str;
+}
+
+function decodeUTF8(str) { // decode utf-8 encoded string back into multi-byte characters
+ str = str.replace(
+ /[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars
+ function(c) {
+ var cc = (c.charCodeAt(0)&0x1f)<<6 | c.charCodeAt(1)&0x3f;
+ return String.fromCharCode(cc); }
+ );
+ str = str.replace(
+ /[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars
+ function(c) {
+ var cc = (c.charCodeAt(0)&0x0f)<<12 | (c.charCodeAt(1)&0x3f<<6) | c.charCodeAt(2)&0x3f;
+ return String.fromCharCode(cc); }
+ );
+ return str;
+}
+
+
+function byteArrayToHexStr(b) { // convert byte array to hex string for displaying test vectors
+ var s = '';
+ for (var i=0; i<b.length; i++) s += b[i].toString(16) + ' ';
+ return s;
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+
+var plainText = "ROMEO: But, soft! what light through yonder window breaks?\n\
+It is the east, and Juliet is the sun.\n\
+Arise, fair sun, and kill the envious moon,\n\
+Who is already sick and pale with grief,\n\
+That thou her maid art far more fair than she:\n\
+Be not her maid, since she is envious;\n\
+Her vestal livery is but sick and green\n\
+And none but fools do wear it; cast it off.\n\
+It is my lady, O, it is my love!\n\
+O, that she knew she were!\n\
+She speaks yet she says nothing: what of that?\n\
+Her eye discourses; I will answer it.\n\
+I am too bold, 'tis not to me she speaks:\n\
+Two of the fairest stars in all the heaven,\n\
+Having some business, do entreat her eyes\n\
+To twinkle in their spheres till they return.\n\
+What if her eyes were there, they in her head?\n\
+The brightness of her cheek would shame those stars,\n\
+As daylight doth a lamp; her eyes in heaven\n\
+Would through the airy region stream so bright\n\
+That birds would sing and think it were not night.\n\
+See, how she leans her cheek upon her hand!\n\
+O, that I were a glove upon that hand,\n\
+That I might touch that cheek!\n\
+JULIET: Ay me!\n\
+ROMEO: She speaks:\n\
+O, speak again, bright angel! for thou art\n\
+As glorious to this night, being o'er my head\n\
+As is a winged messenger of heaven\n\
+Unto the white-upturned wondering eyes\n\
+Of mortals that fall back to gaze on him\n\
+When he bestrides the lazy-pacing clouds\n\
+And sails upon the bosom of the air.";
+
+var password = "O Romeo, Romeo! wherefore art thou Romeo?";
+
+var cipherText = AESEncryptCtr(plainText, password, 256);
+var decryptedText = AESDecryptCtr(cipherText, password, 256);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-md5.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-md5.js
new file mode 100644
index 000000000..cc7a89653
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-md5.js
@@ -0,0 +1,286 @@
+/*
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+ * Digest Algorithm, as defined in RFC 1321.
+ * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for more info.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
+function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
+function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
+function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
+function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
+function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function md5_vm_test()
+{
+ return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
+}
+
+/*
+ * Calculate the MD5 of an array of little-endian words, and a bit length
+ */
+function core_md5(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << ((len) % 32);
+ x[(((len + 64) >>> 9) << 4) + 14] = len;
+
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+
+ a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
+ d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
+ c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
+ b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
+ a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
+ d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
+ c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
+ b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
+ a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
+ d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
+ c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
+ b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
+ a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
+ d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
+ c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
+ b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
+
+ a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
+ d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
+ c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
+ b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
+ a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
+ d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
+ c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
+ b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
+ a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
+ d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
+ c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
+ b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
+ a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
+ d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
+ c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
+ b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
+
+ a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
+ d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
+ c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
+ b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
+ a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
+ d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
+ c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
+ b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
+ a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
+ d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
+ c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
+ b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
+ a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
+ d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
+ c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
+ b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
+
+ a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
+ d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
+ c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
+ b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
+ a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
+ d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
+ c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
+ b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
+ a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
+ d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
+ c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
+ b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
+ a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
+ d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
+ c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
+ b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ }
+ return Array(a, b, c, d);
+
+}
+
+/*
+ * These functions implement the four basic operations the algorithm uses.
+ */
+function md5_cmn(q, a, b, x, s, t)
+{
+ return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
+}
+function md5_ff(a, b, c, d, x, s, t)
+{
+ return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
+}
+function md5_gg(a, b, c, d, x, s, t)
+{
+ return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
+}
+function md5_hh(a, b, c, d, x, s, t)
+{
+ return md5_cmn(b ^ c ^ d, a, b, x, s, t);
+}
+function md5_ii(a, b, c, d, x, s, t)
+{
+ return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
+}
+
+/*
+ * Calculate the HMAC-MD5, of a key and some data
+ */
+function core_hmac_md5(key, data)
+{
+ var bkey = str2binl(key);
+ if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
+ return core_md5(opad.concat(hash), 512 + 128);
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function bit_rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+ * Convert a string to an array of little-endian words
+ * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
+ */
+function str2binl(str)
+{
+ var bin = Array();
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < str.length * chrsz; i += chrsz)
+ bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
+ return bin;
+}
+
+/*
+ * Convert an array of little-endian words to a string
+ */
+function binl2str(bin)
+{
+ var str = "";
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < bin.length * 32; i += chrsz)
+ str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
+ return str;
+}
+
+/*
+ * Convert an array of little-endian words to a hex string.
+ */
+function binl2hex(binarray)
+{
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i++)
+ {
+ str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
+ hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
+ }
+ return str;
+}
+
+/*
+ * Convert an array of little-endian words to a base-64 string
+ */
+function binl2b64(binarray)
+{
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i += 3)
+ {
+ var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
+ | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
+ | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+ else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+ }
+ }
+ return str;
+}
+
+var plainText = "Rebellious subjects, enemies to peace,\n\
+Profaners of this neighbour-stained steel,--\n\
+Will they not hear? What, ho! you men, you beasts,\n\
+That quench the fire of your pernicious rage\n\
+With purple fountains issuing from your veins,\n\
+On pain of torture, from those bloody hands\n\
+Throw your mistemper'd weapons to the ground,\n\
+And hear the sentence of your moved prince.\n\
+Three civil brawls, bred of an airy word,\n\
+By thee, old Capulet, and Montague,\n\
+Have thrice disturb'd the quiet of our streets,\n\
+And made Verona's ancient citizens\n\
+Cast by their grave beseeming ornaments,\n\
+To wield old partisans, in hands as old,\n\
+Canker'd with peace, to part your canker'd hate:\n\
+If ever you disturb our streets again,\n\
+Your lives shall pay the forfeit of the peace.\n\
+For this time, all the rest depart away:\n\
+You Capulet; shall go along with me:\n\
+And, Montague, come you this afternoon,\n\
+To know our further pleasure in this case,\n\
+To old Free-town, our common judgment-place.\n\
+Once more, on pain of death, all men depart."
+
+for (var i = 0; i <4; i++) {
+ plainText += plainText;
+}
+
+var md5Output = hex_md5(plainText);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-sha1.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-sha1.js
new file mode 100644
index 000000000..ca8d901a1
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/crypto-sha1.js
@@ -0,0 +1,224 @@
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
+ * in FIPS PUB 180-1
+ * Version 2.1a Copyright Paul Johnston 2000 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length * chrsz));}
+function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length * chrsz));}
+function str_sha1(s){return binb2str(core_sha1(str2binb(s),s.length * chrsz));}
+function hex_hmac_sha1(key, data){ return binb2hex(core_hmac_sha1(key, data));}
+function b64_hmac_sha1(key, data){ return binb2b64(core_hmac_sha1(key, data));}
+function str_hmac_sha1(key, data){ return binb2str(core_hmac_sha1(key, data));}
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function sha1_vm_test()
+{
+ return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d";
+}
+
+/*
+ * Calculate the SHA-1 of an array of big-endian words, and a bit length
+ */
+function core_sha1(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << (24 - len % 32);
+ x[((len + 64 >> 9) << 4) + 15] = len;
+
+ var w = Array(80);
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+ var e = -1009589776;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+ var olde = e;
+
+ for(var j = 0; j < 80; j++)
+ {
+ if(j < 16) w[j] = x[i + j];
+ else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
+ var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)),
+ safe_add(safe_add(e, w[j]), sha1_kt(j)));
+ e = d;
+ d = c;
+ c = rol(b, 30);
+ b = a;
+ a = t;
+ }
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ e = safe_add(e, olde);
+ }
+ return Array(a, b, c, d, e);
+
+}
+
+/*
+ * Perform the appropriate triplet combination function for the current
+ * iteration
+ */
+function sha1_ft(t, b, c, d)
+{
+ if(t < 20) return (b & c) | ((~b) & d);
+ if(t < 40) return b ^ c ^ d;
+ if(t < 60) return (b & c) | (b & d) | (c & d);
+ return b ^ c ^ d;
+}
+
+/*
+ * Determine the appropriate additive constant for the current iteration
+ */
+function sha1_kt(t)
+{
+ return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
+ (t < 60) ? -1894007588 : -899497514;
+}
+
+/*
+ * Calculate the HMAC-SHA1 of a key and some data
+ */
+function core_hmac_sha1(key, data)
+{
+ var bkey = str2binb(key);
+ if(bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz);
+ return core_sha1(opad.concat(hash), 512 + 160);
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+ * Convert an 8-bit or 16-bit string to an array of big-endian words
+ * In 8-bit function, characters >255 have their hi-byte silently ignored.
+ */
+function str2binb(str)
+{
+ var bin = Array();
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < str.length * chrsz; i += chrsz)
+ bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i%32);
+ return bin;
+}
+
+/*
+ * Convert an array of big-endian words to a string
+ */
+function binb2str(bin)
+{
+ var str = "";
+ var mask = (1 << chrsz) - 1;
+ for(var i = 0; i < bin.length * 32; i += chrsz)
+ str += String.fromCharCode((bin[i>>5] >>> (32 - chrsz - i%32)) & mask);
+ return str;
+}
+
+/*
+ * Convert an array of big-endian words to a hex string.
+ */
+function binb2hex(binarray)
+{
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i++)
+ {
+ str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
+ hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF);
+ }
+ return str;
+}
+
+/*
+ * Convert an array of big-endian words to a base-64 string
+ */
+function binb2b64(binarray)
+{
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var str = "";
+ for(var i = 0; i < binarray.length * 4; i += 3)
+ {
+ var triplet = (((binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16)
+ | (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 )
+ | ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+ else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+ }
+ }
+ return str;
+}
+
+
+var plainText = "Two households, both alike in dignity,\n\
+In fair Verona, where we lay our scene,\n\
+From ancient grudge break to new mutiny,\n\
+Where civil blood makes civil hands unclean.\n\
+From forth the fatal loins of these two foes\n\
+A pair of star-cross'd lovers take their life;\n\
+Whole misadventured piteous overthrows\n\
+Do with their death bury their parents' strife.\n\
+The fearful passage of their death-mark'd love,\n\
+And the continuance of their parents' rage,\n\
+Which, but their children's end, nought could remove,\n\
+Is now the two hours' traffic of our stage;\n\
+The which if you with patient ears attend,\n\
+What here shall miss, our toil shall strive to mend.";
+
+for (var i = 0; i <4; i++) {
+ plainText += plainText;
+}
+
+var sha1Output = hex_sha1(plainText);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/date-format-tofte.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/date-format-tofte.js
new file mode 100644
index 000000000..66e2cef87
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/date-format-tofte.js
@@ -0,0 +1,299 @@
+function arrayExists(array, x) {
+ for (var i = 0; i < array.length; i++) {
+ if (array[i] == x) return true;
+ }
+ return false;
+}
+
+Date.prototype.formatDate = function (input,time) {
+ // formatDate :
+ // a PHP date like function, for formatting date strings
+ // See: http://www.php.net/date
+ //
+ // input : format string
+ // time : epoch time (seconds, and optional)
+ //
+ // if time is not passed, formatting is based on
+ // the current "this" date object's set time.
+ //
+ // supported:
+ // a, A, B, d, D, F, g, G, h, H, i, j, l (lowercase L), L,
+ // m, M, n, O, r, s, S, t, U, w, W, y, Y, z
+ //
+ // unsupported:
+ // I (capital i), T, Z
+
+ var switches = ["a", "A", "B", "d", "D", "F", "g", "G", "h", "H",
+ "i", "j", "l", "L", "m", "M", "n", "O", "r", "s",
+ "S", "t", "U", "w", "W", "y", "Y", "z"];
+ var daysLong = ["Sunday", "Monday", "Tuesday", "Wednesday",
+ "Thursday", "Friday", "Saturday"];
+ var daysShort = ["Sun", "Mon", "Tue", "Wed",
+ "Thu", "Fri", "Sat"];
+ var monthsShort = ["Jan", "Feb", "Mar", "Apr",
+ "May", "Jun", "Jul", "Aug", "Sep",
+ "Oct", "Nov", "Dec"];
+ var monthsLong = ["January", "February", "March", "April",
+ "May", "June", "July", "August", "September",
+ "October", "November", "December"];
+ var daysSuffix = ["st", "nd", "rd", "th", "th", "th", "th", // 1st - 7th
+ "th", "th", "th", "th", "th", "th", "th", // 8th - 14th
+ "th", "th", "th", "th", "th", "th", "st", // 15th - 21st
+ "nd", "rd", "th", "th", "th", "th", "th", // 22nd - 28th
+ "th", "th", "st"]; // 29th - 31st
+
+ function a() {
+ // Lowercase Ante meridiem and Post meridiem
+ return self.getHours() > 11? "pm" : "am";
+ }
+ function A() {
+ // Uppercase Ante meridiem and Post meridiem
+ return self.getHours() > 11? "PM" : "AM";
+ }
+
+ function B(){
+ // Swatch internet time. code simply grabbed from ppk,
+ // since I was feeling lazy:
+ // http://www.xs4all.nl/~ppk/js/beat.html
+ var off = (self.getTimezoneOffset() + 60)*60;
+ var theSeconds = (self.getHours() * 3600) +
+ (self.getMinutes() * 60) +
+ self.getSeconds() + off;
+ var beat = Math.floor(theSeconds/86.4);
+ if (beat > 1000) beat -= 1000;
+ if (beat < 0) beat += 1000;
+ if ((""+beat).length == 1) beat = "00"+beat;
+ if ((""+beat).length == 2) beat = "0"+beat;
+ return beat;
+ }
+
+ function d() {
+ // Day of the month, 2 digits with leading zeros
+ return new String(self.getDate()).length == 1?
+ "0"+self.getDate() : self.getDate();
+ }
+ function D() {
+ // A textual representation of a day, three letters
+ return daysShort[self.getDay()];
+ }
+ function F() {
+ // A full textual representation of a month
+ return monthsLong[self.getMonth()];
+ }
+ function g() {
+ // 12-hour format of an hour without leading zeros
+ return self.getHours() > 12? self.getHours()-12 : self.getHours();
+ }
+ function G() {
+ // 24-hour format of an hour without leading zeros
+ return self.getHours();
+ }
+ function h() {
+ // 12-hour format of an hour with leading zeros
+ if (self.getHours() > 12) {
+ var s = new String(self.getHours()-12);
+ return s.length == 1?
+ "0"+ (self.getHours()-12) : self.getHours()-12;
+ } else {
+ var s = new String(self.getHours());
+ return s.length == 1?
+ "0"+self.getHours() : self.getHours();
+ }
+ }
+ function H() {
+ // 24-hour format of an hour with leading zeros
+ return new String(self.getHours()).length == 1?
+ "0"+self.getHours() : self.getHours();
+ }
+ function i() {
+ // Minutes with leading zeros
+ return new String(self.getMinutes()).length == 1?
+ "0"+self.getMinutes() : self.getMinutes();
+ }
+ function j() {
+ // Day of the month without leading zeros
+ return self.getDate();
+ }
+ function l() {
+ // A full textual representation of the day of the week
+ return daysLong[self.getDay()];
+ }
+ function L() {
+ // leap year or not. 1 if leap year, 0 if not.
+ // the logic should match iso's 8601 standard.
+ var y_ = Y();
+ if (
+ (y_ % 4 == 0 && y_ % 100 != 0) ||
+ (y_ % 4 == 0 && y_ % 100 == 0 && y_ % 400 == 0)
+ ) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ function m() {
+ // Numeric representation of a month, with leading zeros
+ return self.getMonth() < 9?
+ "0"+(self.getMonth()+1) :
+ self.getMonth()+1;
+ }
+ function M() {
+ // A short textual representation of a month, three letters
+ return monthsShort[self.getMonth()];
+ }
+ function n() {
+ // Numeric representation of a month, without leading zeros
+ return self.getMonth()+1;
+ }
+ function O() {
+ // Difference to Greenwich time (GMT) in hours
+ var os = Math.abs(self.getTimezoneOffset());
+ var h = ""+Math.floor(os/60);
+ var m = ""+(os%60);
+ h.length == 1? h = "0"+h:1;
+ m.length == 1? m = "0"+m:1;
+ return self.getTimezoneOffset() < 0 ? "+"+h+m : "-"+h+m;
+ }
+ function r() {
+ // RFC 822 formatted date
+ var r; // result
+ // Thu , 21 Dec 2000
+ r = D() + ", " + j() + " " + M() + " " + Y() +
+ // 16 : 01 : 07 +0200
+ " " + H() + ":" + i() + ":" + s() + " " + O();
+ return r;
+ }
+ function S() {
+ // English ordinal suffix for the day of the month, 2 characters
+ return daysSuffix[self.getDate()-1];
+ }
+ function s() {
+ // Seconds, with leading zeros
+ return new String(self.getSeconds()).length == 1?
+ "0"+self.getSeconds() : self.getSeconds();
+ }
+ function t() {
+
+ // thanks to Matt Bannon for some much needed code-fixes here!
+ var daysinmonths = [null,31,28,31,30,31,30,31,31,30,31,30,31];
+ if (L()==1 && n()==2) return 29; // leap day
+ return daysinmonths[n()];
+ }
+ function U() {
+ // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
+ return Math.round(self.getTime()/1000);
+ }
+ function W() {
+ // Weeknumber, as per ISO specification:
+ // http://www.cl.cam.ac.uk/~mgk25/iso-time.html
+
+ // if the day is three days before newyears eve,
+ // there's a chance it's "week 1" of next year.
+ // here we check for that.
+ var beforeNY = 364+L() - z();
+ var afterNY = z();
+ var weekday = w()!=0?w()-1:6; // makes sunday (0), into 6.
+ if (beforeNY <= 2 && weekday <= 2-beforeNY) {
+ return 1;
+ }
+ // similarly, if the day is within threedays of newyears
+ // there's a chance it belongs in the old year.
+ var ny = new Date("January 1 " + Y() + " 00:00:00");
+ var nyDay = ny.getDay()!=0?ny.getDay()-1:6;
+ if (
+ (afterNY <= 2) &&
+ (nyDay >=4) &&
+ (afterNY >= (6-nyDay))
+ ) {
+ // Since I'm not sure we can just always return 53,
+ // i call the function here again, using the last day
+ // of the previous year, as the date, and then just
+ // return that week.
+ var prevNY = new Date("December 31 " + (Y()-1) + " 00:00:00");
+ return prevNY.formatDate("W");
+ }
+
+ // week 1, is the week that has the first thursday in it.
+ // note that this value is not zero index.
+ if (nyDay <= 3) {
+ // first day of the year fell on a thursday, or earlier.
+ return 1 + Math.floor( ( z() + nyDay ) / 7 );
+ } else {
+ // first day of the year fell on a friday, or later.
+ return 1 + Math.floor( ( z() - ( 7 - nyDay ) ) / 7 );
+ }
+ }
+ function w() {
+ // Numeric representation of the day of the week
+ return self.getDay();
+ }
+
+ function Y() {
+ // A full numeric representation of a year, 4 digits
+
+ // we first check, if getFullYear is supported. if it
+ // is, we just use that. ppks code is nice, but wont
+ // work with dates outside 1900-2038, or something like that
+ if (self.getFullYear) {
+ var newDate = new Date("January 1 2001 00:00:00 +0000");
+ var x = newDate .getFullYear();
+ if (x == 2001) {
+ // i trust the method now
+ return self.getFullYear();
+ }
+ }
+ // else, do this:
+ // codes thanks to ppk:
+ // http://www.xs4all.nl/~ppk/js/introdate.html
+ var x = self.getYear();
+ var y = x % 100;
+ y += (y < 38) ? 2000 : 1900;
+ return y;
+ }
+ function y() {
+ // A two-digit representation of a year
+ var y = Y()+"";
+ return y.substring(y.length-2,y.length);
+ }
+ function z() {
+ // The day of the year, zero indexed! 0 through 366
+ var t = new Date("January 1 " + Y() + " 00:00:00");
+ var diff = self.getTime() - t.getTime();
+ return Math.floor(diff/1000/60/60/24);
+ }
+
+ var self = this;
+ if (time) {
+ // save time
+ var prevTime = self.getTime();
+ self.setTime(time);
+ }
+
+ var ia = input.split("");
+ var ij = 0;
+ while (ia[ij]) {
+ if (ia[ij] == "\\") {
+ // this is our way of allowing users to escape stuff
+ ia.splice(ij,1);
+ } else {
+ if (arrayExists(switches,ia[ij])) {
+ ia[ij] = eval(ia[ij] + "()");
+ }
+ }
+ ij++;
+ }
+ // reset time, back to what it was
+ if (prevTime) {
+ self.setTime(prevTime);
+ }
+ return ia.join("");
+}
+
+var date = new Date("1/1/2007 1:11:11");
+
+for (i = 0; i < 500; ++i) {
+ var shortFormat = date.formatDate("Y-m-d");
+ var longFormat = date.formatDate("l, F d, Y g:i:s A");
+ date.setTime(date.getTime() + 84266956);
+}
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/date-format-xparb.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/date-format-xparb.js
new file mode 100644
index 000000000..1f0955649
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/date-format-xparb.js
@@ -0,0 +1,417 @@
+/*
+ * Copyright (C) 2004 Baron Schwartz <baron at sequent dot org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation, version 2.1.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ */
+
+Date.parseFunctions = {count:0};
+Date.parseRegexes = [];
+Date.formatFunctions = {count:0};
+
+Date.prototype.dateFormat = function(format) {
+ if (Date.formatFunctions[format] == null) {
+ Date.createNewFormat(format);
+ }
+ var func = Date.formatFunctions[format];
+ return this[func]();
+}
+
+Date.createNewFormat = function(format) {
+ var funcName = "format" + Date.formatFunctions.count++;
+ Date.formatFunctions[format] = funcName;
+ var code = "Date.prototype." + funcName + " = function(){return ";
+ var special = false;
+ var ch = '';
+ for (var i = 0; i < format.length; ++i) {
+ ch = format.charAt(i);
+ if (!special && ch == "\\") {
+ special = true;
+ }
+ else if (special) {
+ special = false;
+ code += "'" + String.escape(ch) + "' + ";
+ }
+ else {
+ code += Date.getFormatCode(ch);
+ }
+ }
+ eval(code.substring(0, code.length - 3) + ";}");
+}
+
+Date.getFormatCode = function(character) {
+ switch (character) {
+ case "d":
+ return "String.leftPad(this.getDate(), 2, '0') + ";
+ case "D":
+ return "Date.dayNames[this.getDay()].substring(0, 3) + ";
+ case "j":
+ return "this.getDate() + ";
+ case "l":
+ return "Date.dayNames[this.getDay()] + ";
+ case "S":
+ return "this.getSuffix() + ";
+ case "w":
+ return "this.getDay() + ";
+ case "z":
+ return "this.getDayOfYear() + ";
+ case "W":
+ return "this.getWeekOfYear() + ";
+ case "F":
+ return "Date.monthNames[this.getMonth()] + ";
+ case "m":
+ return "String.leftPad(this.getMonth() + 1, 2, '0') + ";
+ case "M":
+ return "Date.monthNames[this.getMonth()].substring(0, 3) + ";
+ case "n":
+ return "(this.getMonth() + 1) + ";
+ case "t":
+ return "this.getDaysInMonth() + ";
+ case "L":
+ return "(this.isLeapYear() ? 1 : 0) + ";
+ case "Y":
+ return "this.getFullYear() + ";
+ case "y":
+ return "('' + this.getFullYear()).substring(2, 4) + ";
+ case "a":
+ return "(this.getHours() < 12 ? 'am' : 'pm') + ";
+ case "A":
+ return "(this.getHours() < 12 ? 'AM' : 'PM') + ";
+ case "g":
+ return "((this.getHours() %12) ? this.getHours() % 12 : 12) + ";
+ case "G":
+ return "this.getHours() + ";
+ case "h":
+ return "String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";
+ case "H":
+ return "String.leftPad(this.getHours(), 2, '0') + ";
+ case "i":
+ return "String.leftPad(this.getMinutes(), 2, '0') + ";
+ case "s":
+ return "String.leftPad(this.getSeconds(), 2, '0') + ";
+ case "O":
+ return "this.getGMTOffset() + ";
+ case "T":
+ return "this.getTimezone() + ";
+ case "Z":
+ return "(this.getTimezoneOffset() * -60) + ";
+ default:
+ return "'" + String.escape(character) + "' + ";
+ }
+}
+
+Date.parseDate = function(input, format) {
+ if (Date.parseFunctions[format] == null) {
+ Date.createParser(format);
+ }
+ var func = Date.parseFunctions[format];
+ return Date[func](input);
+}
+
+Date.createParser = function(format) {
+ var funcName = "parse" + Date.parseFunctions.count++;
+ var regexNum = Date.parseRegexes.length;
+ var currentGroup = 1;
+ Date.parseFunctions[format] = funcName;
+
+ var code = "Date." + funcName + " = function(input){\n"
+ + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1;\n"
+ + "var d = new Date();\n"
+ + "y = d.getFullYear();\n"
+ + "m = d.getMonth();\n"
+ + "d = d.getDate();\n"
+ + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n"
+ + "if (results && results.length > 0) {"
+ var regex = "";
+
+ var special = false;
+ var ch = '';
+ for (var i = 0; i < format.length; ++i) {
+ ch = format.charAt(i);
+ if (!special && ch == "\\") {
+ special = true;
+ }
+ else if (special) {
+ special = false;
+ regex += String.escape(ch);
+ }
+ else {
+ obj = Date.formatCodeToRegex(ch, currentGroup);
+ currentGroup += obj.g;
+ regex += obj.s;
+ if (obj.g && obj.c) {
+ code += obj.c;
+ }
+ }
+ }
+
+ code += "if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"
+ + "{return new Date(y, m, d, h, i, s);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"
+ + "{return new Date(y, m, d, h, i);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n"
+ + "{return new Date(y, m, d, h);}\n"
+ + "else if (y > 0 && m >= 0 && d > 0)\n"
+ + "{return new Date(y, m, d);}\n"
+ + "else if (y > 0 && m >= 0)\n"
+ + "{return new Date(y, m);}\n"
+ + "else if (y > 0)\n"
+ + "{return new Date(y);}\n"
+ + "}return null;}";
+
+ Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$");
+ eval(code);
+}
+
+Date.formatCodeToRegex = function(character, currentGroup) {
+ switch (character) {
+ case "D":
+ return {g:0,
+ c:null,
+ s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};
+ case "j":
+ case "d":
+ return {g:1,
+ c:"d = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{1,2})"};
+ case "l":
+ return {g:0,
+ c:null,
+ s:"(?:" + Date.dayNames.join("|") + ")"};
+ case "S":
+ return {g:0,
+ c:null,
+ s:"(?:st|nd|rd|th)"};
+ case "w":
+ return {g:0,
+ c:null,
+ s:"\\d"};
+ case "z":
+ return {g:0,
+ c:null,
+ s:"(?:\\d{1,3})"};
+ case "W":
+ return {g:0,
+ c:null,
+ s:"(?:\\d{2})"};
+ case "F":
+ return {g:1,
+ c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "].substring(0, 3)], 10);\n",
+ s:"(" + Date.monthNames.join("|") + ")"};
+ case "M":
+ return {g:1,
+ c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "]], 10);\n",
+ s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};
+ case "n":
+ case "m":
+ return {g:1,
+ c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n",
+ s:"(\\d{1,2})"};
+ case "t":
+ return {g:0,
+ c:null,
+ s:"\\d{1,2}"};
+ case "L":
+ return {g:0,
+ c:null,
+ s:"(?:1|0)"};
+ case "Y":
+ return {g:1,
+ c:"y = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{4})"};
+ case "y":
+ return {g:1,
+ c:"var ty = parseInt(results[" + currentGroup + "], 10);\n"
+ + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",
+ s:"(\\d{1,2})"};
+ case "a":
+ return {g:1,
+ c:"if (results[" + currentGroup + "] == 'am') {\n"
+ + "if (h == 12) { h = 0; }\n"
+ + "} else { if (h < 12) { h += 12; }}",
+ s:"(am|pm)"};
+ case "A":
+ return {g:1,
+ c:"if (results[" + currentGroup + "] == 'AM') {\n"
+ + "if (h == 12) { h = 0; }\n"
+ + "} else { if (h < 12) { h += 12; }}",
+ s:"(AM|PM)"};
+ case "g":
+ case "G":
+ case "h":
+ case "H":
+ return {g:1,
+ c:"h = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{1,2})"};
+ case "i":
+ return {g:1,
+ c:"i = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{2})"};
+ case "s":
+ return {g:1,
+ c:"s = parseInt(results[" + currentGroup + "], 10);\n",
+ s:"(\\d{2})"};
+ case "O":
+ return {g:0,
+ c:null,
+ s:"[+-]\\d{4}"};
+ case "T":
+ return {g:0,
+ c:null,
+ s:"[A-Z]{3}"};
+ case "Z":
+ return {g:0,
+ c:null,
+ s:"[+-]\\d{1,5}"};
+ default:
+ return {g:0,
+ c:null,
+ s:String.escape(character)};
+ }
+}
+
+Date.prototype.getTimezone = function() {
+ return this.toString().replace(
+ /^.*? ([A-Z]{3}) [0-9]{4}.*$/, "$1").replace(
+ /^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, "$1$2$3");
+}
+
+Date.prototype.getGMTOffset = function() {
+ return (this.getTimezoneOffset() > 0 ? "-" : "+")
+ + String.leftPad(Math.floor(this.getTimezoneOffset() / 60), 2, "0")
+ + String.leftPad(this.getTimezoneOffset() % 60, 2, "0");
+}
+
+Date.prototype.getDayOfYear = function() {
+ var num = 0;
+ Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
+ for (var i = 0; i < this.getMonth(); ++i) {
+ num += Date.daysInMonth[i];
+ }
+ return num + this.getDate() - 1;
+}
+
+Date.prototype.getWeekOfYear = function() {
+ // Skip to Thursday of this week
+ var now = this.getDayOfYear() + (4 - this.getDay());
+ // Find the first Thursday of the year
+ var jan1 = new Date(this.getFullYear(), 0, 1);
+ var then = (7 - jan1.getDay() + 4);
+ document.write(then);
+ return String.leftPad(((now - then) / 7) + 1, 2, "0");
+}
+
+Date.prototype.isLeapYear = function() {
+ var year = this.getFullYear();
+ return ((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year)));
+}
+
+Date.prototype.getFirstDayOfMonth = function() {
+ var day = (this.getDay() - (this.getDate() - 1)) % 7;
+ return (day < 0) ? (day + 7) : day;
+}
+
+Date.prototype.getLastDayOfMonth = function() {
+ var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7;
+ return (day < 0) ? (day + 7) : day;
+}
+
+Date.prototype.getDaysInMonth = function() {
+ Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;
+ return Date.daysInMonth[this.getMonth()];
+}
+
+Date.prototype.getSuffix = function() {
+ switch (this.getDate()) {
+ case 1:
+ case 21:
+ case 31:
+ return "st";
+ case 2:
+ case 22:
+ return "nd";
+ case 3:
+ case 23:
+ return "rd";
+ default:
+ return "th";
+ }
+}
+
+String.escape = function(string) {
+ return string.replace(/('|\\)/g, "\\$1");
+}
+
+String.leftPad = function (val, size, ch) {
+ var result = new String(val);
+ if (ch == null) {
+ ch = " ";
+ }
+ while (result.length < size) {
+ result = ch + result;
+ }
+ return result;
+}
+
+Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
+Date.monthNames =
+ ["January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December"];
+Date.dayNames =
+ ["Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"];
+Date.y2kYear = 50;
+Date.monthNumbers = {
+ Jan:0,
+ Feb:1,
+ Mar:2,
+ Apr:3,
+ May:4,
+ Jun:5,
+ Jul:6,
+ Aug:7,
+ Sep:8,
+ Oct:9,
+ Nov:10,
+ Dec:11};
+Date.patterns = {
+ ISO8601LongPattern:"Y-m-d H:i:s",
+ ISO8601ShortPattern:"Y-m-d",
+ ShortDatePattern: "n/j/Y",
+ LongDatePattern: "l, F d, Y",
+ FullDateTimePattern: "l, F d, Y g:i:s A",
+ MonthDayPattern: "F d",
+ ShortTimePattern: "g:i A",
+ LongTimePattern: "g:i:s A",
+ SortableDateTimePattern: "Y-m-d\\TH:i:s",
+ UniversalSortableDateTimePattern: "Y-m-d H:i:sO",
+ YearMonthPattern: "F, Y"};
+
+var date = new Date("1/1/2007 1:11:11");
+
+for (i = 0; i < 4000; ++i) {
+ var shortFormat = date.dateFormat("Y-m-d");
+ var longFormat = date.dateFormat("l, F d, Y g:i:s A");
+ date.setTime(date.getTime() + 84266956);
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/math-cordic.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/math-cordic.js
new file mode 100644
index 000000000..c70885762
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/math-cordic.js
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) Rich Moore. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/////. Start CORDIC
+
+var AG_CONST = 0.6072529350;
+
+function FIXED(X)
+{
+ return X * 65536.0;
+}
+
+function FLOAT(X)
+{
+ return X / 65536.0;
+}
+
+function DEG2RAD(X)
+{
+ return 0.017453 * (X);
+}
+
+var Angles = [
+ FIXED(45.0), FIXED(26.565), FIXED(14.0362), FIXED(7.12502),
+ FIXED(3.57633), FIXED(1.78991), FIXED(0.895174), FIXED(0.447614),
+ FIXED(0.223811), FIXED(0.111906), FIXED(0.055953),
+ FIXED(0.027977)
+ ];
+
+var Target = 28.027;
+
+function cordicsincos(Target) {
+ var X;
+ var Y;
+ var TargetAngle;
+ var CurrAngle;
+ var Step;
+
+ X = FIXED(AG_CONST); /* AG_CONST * cos(0) */
+ Y = 0; /* AG_CONST * sin(0) */
+
+ TargetAngle = FIXED(Target);
+ CurrAngle = 0;
+ for (Step = 0; Step < 12; Step++) {
+ var NewX;
+ if (TargetAngle > CurrAngle) {
+ NewX = X - (Y >> Step);
+ Y = (X >> Step) + Y;
+ X = NewX;
+ CurrAngle += Angles[Step];
+ } else {
+ NewX = X + (Y >> Step);
+ Y = -(X >> Step) + Y;
+ X = NewX;
+ CurrAngle -= Angles[Step];
+ }
+ }
+
+ return FLOAT(X) * FLOAT(Y);
+}
+
+///// End CORDIC
+
+var total = 0;
+
+function cordic( runs ) {
+ var start = new Date();
+
+ for ( var i = 0 ; i < runs ; i++ ) {
+ total += cordicsincos(Target);
+ }
+
+ var end = new Date();
+
+ return end.getTime() - start.getTime();
+}
+
+cordic(25000);
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/math-partial-sums.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/math-partial-sums.js
new file mode 100644
index 000000000..d082d7994
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/math-partial-sums.js
@@ -0,0 +1,33 @@
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+// contributed by Isaac Gouy
+
+function partial(n){
+ var a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0.0;
+ var twothirds = 2.0/3.0;
+ var alt = -1.0;
+ var k2 = k3 = sk = ck = 0.0;
+
+ for (var k = 1; k <= n; k++){
+ k2 = k*k;
+ k3 = k2*k;
+ sk = Math.sin(k);
+ ck = Math.cos(k);
+ alt = -alt;
+
+ a1 += Math.pow(twothirds,k-1);
+ a2 += Math.pow(k,-0.5);
+ a3 += 1.0/(k*(k+1.0));
+ a4 += 1.0/(k3 * sk*sk);
+ a5 += 1.0/(k3 * ck*ck);
+ a6 += 1.0/k;
+ a7 += 1.0/k2;
+ a8 += alt/k;
+ a9 += alt/(2*k -1);
+ }
+}
+
+for (var i = 1024; i <= 16384; i *= 2) {
+ partial(i);
+}
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/math-spectral-norm.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/math-spectral-norm.js
new file mode 100644
index 000000000..8139ef370
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/math-spectral-norm.js
@@ -0,0 +1,51 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// contributed by Ian Osgood
+
+function A(i,j) {
+ return 1/((i+j)*(i+j+1)/2+i+1);
+}
+
+function Au(u,v) {
+ for (var i=0; i<u.length; ++i) {
+ var t = 0;
+ for (var j=0; j<u.length; ++j)
+ t += A(i,j) * u[j];
+ v[i] = t;
+ }
+}
+
+function Atu(u,v) {
+ for (var i=0; i<u.length; ++i) {
+ var t = 0;
+ for (var j=0; j<u.length; ++j)
+ t += A(j,i) * u[j];
+ v[i] = t;
+ }
+}
+
+function AtAu(u,v,w) {
+ Au(u,w);
+ Atu(w,v);
+}
+
+function spectralnorm(n) {
+ var i, u=[], v=[], w=[], vv=0, vBv=0;
+ for (i=0; i<n; ++i) {
+ u[i] = 1; v[i] = w[i] = 0;
+ }
+ for (i=0; i<10; ++i) {
+ AtAu(u,v,w);
+ AtAu(v,u,w);
+ }
+ for (i=0; i<n; ++i) {
+ vBv += u[i]*v[i];
+ vv += v[i]*v[i];
+ }
+ return Math.sqrt(vBv/vv);
+}
+
+for (var i = 6; i <= 48; i *= 2) {
+ spectralnorm(i);
+}
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/regexp-dna.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/regexp-dna.js
new file mode 100644
index 000000000..b500e68ad
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/regexp-dna.js
@@ -0,0 +1,1712 @@
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+//
+// contributed by Jesse Millikan
+// Base on the Ruby version by jose fco. gonzalez
+
+var l;
+var dnaInput = ">ONE Homo sapiens alu\n\
+GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n\
+TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n\
+AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n\
+GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n\
+CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n\
+GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n\
+GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n\
+TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n\
+AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n\
+GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n\
+AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n\
+AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n\
+GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n\
+CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n\
+AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n\
+TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n\
+TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n\
+GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n\
+TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n\
+CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n\
+CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n\
+TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n\
+CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n\
+AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n\
+GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n\
+TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n\
+TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n\
+GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n\
+GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n\
+ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n\
+TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n\
+CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n\
+CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n\
+GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n\
+CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n\
+GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n\
+GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n\
+GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n\
+GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n\
+GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n\
+AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n\
+CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n\
+GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n\
+AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n\
+GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n\
+ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n\
+GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC\n\
+GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC\n\
+GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG\n\
+TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA\n\
+AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG\n\
+GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT\n\
+CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC\n\
+TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG\n\
+ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC\n\
+GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA\n\
+ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA\n\
+CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA\n\
+CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA\n\
+ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG\n\
+CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG\n\
+AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC\n\
+CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG\n\
+AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC\n\
+CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG\n\
+CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG\n\
+CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG\n\
+CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC\n\
+ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA\n\
+AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC\n\
+TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC\n\
+ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG\n\
+CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG\n\
+AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT\n\
+AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA\n\
+TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC\n\
+CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA\n\
+TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG\n\
+CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT\n\
+GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG\n\
+GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG\n\
+CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG\n\
+GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG\n\
+GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT\n\
+AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT\n\
+GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT\n\
+CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG\n\
+GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC\n\
+TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT\n\
+CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG\n\
+ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG\n\
+CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG\n\
+AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA\n\
+CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG\n\
+CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC\n\
+ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC\n\
+GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC\n\
+GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG\n\
+GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT\n\
+TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG\n\
+CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA\n\
+GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG\n\
+CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC\n\
+GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG\n\
+CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA\n\
+CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG\n\
+CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA\n\
+ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC\n\
+CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT\n\
+GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA\n\
+AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG\n\
+ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC\n\
+TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA\n\
+GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC\n\
+GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG\n\
+TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC\n\
+AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA\n\
+ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA\n\
+GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\n\
+AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG\n\
+TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC\n\
+CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT\n\
+GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC\n\
+CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA\n\
+GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT\n\
+TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC\n\
+ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC\n\
+TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG\n\
+GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG\n\
+TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG\n\
+GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC\n\
+GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT\n\
+ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC\n\
+GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC\n\
+GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC\n\
+CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA\n\
+ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG\n\
+AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC\n\
+TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT\n\
+CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG\n\
+TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG\n\
+CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC\n\
+GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT\n\
+GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC\n\
+CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC\n\
+TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG\n\
+CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\n\
+AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG\n\
+AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG\n\
+AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT\n\
+GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA\n\
+TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC\n\
+AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA\n\
+AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG\n\
+CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC\n\
+TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG\n\
+GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT\n\
+CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG\n\
+CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG\n\
+GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA\n\
+AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA\n\
+GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC\n\
+TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC\n\
+CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA\n\
+GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG\n\
+CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG\n\
+AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG\n\
+ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC\n\
+ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC\n\
+AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC\n\
+GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG\n\
+GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT\n\
+CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC\n\
+GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC\n\
+CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\n\
+GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA\n\
+GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG\n\
+GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT\n\
+CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA\n\
+AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG\n\
+CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC\n\
+CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG\n\
+GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG\n\
+GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT\n\
+TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA\n\
+ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG\n\
+CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA\n\
+ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA\n\
+GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG\n\
+TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC\n\
+GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA\n\
+GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT\n\
+GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT\n\
+GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG\n\
+TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT\n\
+TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC\n\
+TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC\n\
+GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT\n\
+CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC\n\
+TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA\n\
+GATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGG\n\
+GCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCT\n\
+GAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT\n\
+ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAG\n\
+GCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTG\n\
+CACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCA\n\
+CGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTT\n\
+CGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCC\n\
+GGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGC\n\
+TTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGG\n\
+GCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCC\n\
+AGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTG\n\
+GCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCG\n\
+CGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAG\n\
+GCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAG\n\
+ACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAG\n\
+GCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGA\n\
+AACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATC\n\
+CCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAG\n\
+TGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAA\n\
+AAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCG\n\
+GATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTA\n\
+CTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGG\n\
+AGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCG\n\
+CGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCG\n\
+GTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGT\n\
+CAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAA\n\
+AATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGG\n\
+AGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTC\n\
+CAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCT\n\
+GTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA\n\
+CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCG\n\
+TGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAA\n\
+CCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGAC\n\
+AGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCAC\n\
+TTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAA\n\
+CATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGC\n\
+CTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGA\n\
+GGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCC\n\
+GTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGA\n\
+GGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCC\n\
+CGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGC\n\
+TACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGC\n\
+CGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGC\n\
+CGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCA\n\
+CCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAA\n\
+AATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCT\n\
+GAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCA\n\
+CTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGC\n\
+TCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGA\n\
+GTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTA\n\
+GCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAAT\n\
+CGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCC\n\
+TGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAAT\n\
+CCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGC\n\
+CTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTG\n\
+GCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGG\n\
+GAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGC\n\
+GAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG\n\
+GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGG\n\
+TGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTA\n\
+ATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTG\n\
+CAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTC\n\
+AAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGG\n\
+GCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCT\n\
+CTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTC\n\
+GGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGA\n\
+TCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGC\n\
+GCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGA\n\
+GGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATAC\n\
+AAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGC\n\
+AGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCA\n\
+CTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACG\n\
+CCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCG\n\
+AGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGG\n\
+GCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTT\n\
+GAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGC\n\
+GACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAG\n\
+CACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGC\n\
+CAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCG\n\
+CGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGC\n\
+GGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGAC\n\
+TCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGC\n\
+CGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAA\n\
+CCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCC\n\
+AGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTG\n\
+AGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA\n\
+GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n\
+TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n\
+AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n\
+GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n\
+CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n\
+GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n\
+GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n\
+TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n\
+AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n\
+GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n\
+AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n\
+AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n\
+GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n\
+CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n\
+AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n\
+TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n\
+TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n\
+GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n\
+TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n\
+CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n\
+CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n\
+TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n\
+CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n\
+AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n\
+GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n\
+TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n\
+TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n\
+GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n\
+GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n\
+ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n\
+TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n\
+CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n\
+CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n\
+GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n\
+CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n\
+GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n\
+GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n\
+GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n\
+GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n\
+GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n\
+AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n\
+CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n\
+GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n\
+AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n\
+GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n\
+ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n\
+GAGGCTGAGGCAGGAGAATC\n\
+>TWO IUB ambiguity codes\n\
+cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg\n\
+tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa\n\
+NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt\n\
+cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga\n\
+gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa\n\
+HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca\n\
+tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt\n\
+tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt\n\
+acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct\n\
+tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt\n\
+gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa\n\
+accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt\n\
+RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt\n\
+tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag\n\
+cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg\n\
+ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat\n\
+actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg\n\
+YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa\n\
+KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata\n\
+aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa\n\
+aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg\n\
+gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc\n\
+tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK\n\
+tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt\n\
+ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg\n\
+ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa\n\
+BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt\n\
+aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc\n\
+tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc\n\
+cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac\n\
+aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga\n\
+tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga\n\
+aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD\n\
+gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg\n\
+ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV\n\
+taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa\n\
+ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat\n\
+gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg\n\
+gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa\n\
+tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt\n\
+tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt\n\
+taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca\n\
+cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag\n\
+aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt\n\
+cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt\n\
+ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW\n\
+attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag\n\
+ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa\n\
+attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc\n\
+tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta\n\
+aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata\n\
+cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc\n\
+gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg\n\
+attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca\n\
+BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga\n\
+DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat\n\
+tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM\n\
+tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR\n\
+tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg\n\
+taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc\n\
+aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc\n\
+DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa\n\
+VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt\n\
+agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat\n\
+gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt\n\
+tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt\n\
+catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt\n\
+tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR\n\
+aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat\n\
+aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac\n\
+acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS\n\
+tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga\n\
+aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM\n\
+acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt\n\
+RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt\n\
+RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta\n\
+tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac\n\
+gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt\n\
+YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc\n\
+ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt\n\
+ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat\n\
+gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta\n\
+KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD\n\
+aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg\n\
+gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH\n\
+taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact\n\
+VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV\n\
+NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa\n\
+MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag\n\
+cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata\n\
+ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg\n\
+tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN\n\
+aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc\n\
+actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg\n\
+tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga\n\
+gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa\n\
+BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca\n\
+aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata\n\
+aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat\n\
+YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt\n\
+aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW\n\
+cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata\n\
+tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata\n\
+tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt\n\
+MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac\n\
+taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta\n\
+tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS\n\
+RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc\n\
+agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata\n\
+NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa\n\
+gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata\n\
+aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt\n\
+ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW\n\
+cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt\n\
+tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa\n\
+RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt\n\
+tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD\n\
+gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc\n\
+tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta\n\
+ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM\n\
+tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc\n\
+ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc\n\
+BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt\n\
+gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga\n\
+acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag\n\
+gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc\n\
+taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat\n\
+acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta\n\
+tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt\n\
+catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa\n\
+tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB\n\
+atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR\n\
+ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta\n\
+ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta\n\
+cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK\n\
+SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW\n\
+VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc\n\
+BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct\n\
+NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt\n\
+tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa\n\
+ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa\n\
+cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa\n\
+VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR\n\
+atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac\n\
+aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc\n\
+tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac\n\
+RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag\n\
+gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc\n\
+tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact\n\
+attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc\n\
+atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga\n\
+cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt\n\
+NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR\n\
+ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat\n\
+cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg\n\
+aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac\n\
+agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR\n\
+tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga\n\
+ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg\n\
+ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa\n\
+tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag\n\
+taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg\n\
+tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN\n\
+YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt\n\
+ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa\n\
+tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat\n\
+ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg\n\
+attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt\n\
+atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW\n\
+YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta\n\
+gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV\n\
+MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta\n\
+tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt\n\
+ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa\n\
+aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa\n\
+BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM\n\
+tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK\n\
+StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV\n\
+cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN\n\
+atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg\n\
+atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg\n\
+ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct\n\
+gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM\n\
+tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD\n\
+BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc\n\
+agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga\n\
+HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR\n\
+tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt\n\
+aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa\n\
+catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB\n\
+aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat\n\
+tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt\n\
+cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag\n\
+DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat\n\
+gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta\n\
+tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM\n\
+atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc\n\
+KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt\n\
+tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata\n\
+tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK\n\
+taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt\n\
+NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa\n\
+HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa\n\
+ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg\n\
+tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK\n\
+cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga\n\
+ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca\n\
+HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg\n\
+gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS\n\
+BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg\n\
+gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat\n\
+KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact\n\
+cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat\n\
+tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD\n\
+taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM\n\
+gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt\n\
+aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat\n\
+acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta\n\
+RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc\n\
+attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac\n\
+KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS\n\
+KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD\n\
+gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB\n\
+aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct\n\
+aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga\n\
+ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY\n\
+tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga\n\
+aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta\n\
+tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY\n\
+MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc\n\
+cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta\n\
+caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt\n\
+ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc\n\
+acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat\n\
+tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc\n\
+gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa\n\
+atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga\n\
+aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat\n\
+NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt\n\
+taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa\n\
+aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat\n\
+ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca\n\
+DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata\n\
+tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat\n\
+aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa\n\
+ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM\n\
+ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca\n\
+RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa\n\
+aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac\n\
+aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt\n\
+aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK\n\
+tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat\n\
+atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR\n\
+BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc\n\
+gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct\n\
+cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN\n\
+RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat\n\
+taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt\n\
+aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt\n\
+gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct\n\
+gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa\n\
+aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta\n\
+gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg\n\
+ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat\n\
+MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct\n\
+SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY\n\
+aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt\n\
+VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat\n\
+HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc\n\
+agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt\n\
+gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg\n\
+agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg\n\
+tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag\n\
+gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga\n\
+VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg\n\
+tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV\n\
+MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt\n\
+actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa\n\
+WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa\n\
+tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD\n\
+KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct\n\
+BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac\n\
+attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB\n\
+VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD\n\
+aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca\n\
+tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat\n\
+tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK\n\
+tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt\n\
+VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta\n\
+tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat\n\
+ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa\n\
+tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg\n\
+WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta\n\
+tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc\n\
+tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct\n\
+MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat\n\
+tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac\n\
+atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg\n\
+aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt\n\
+aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa\n\
+aatYggtaRtatNtHcaatcaHtagVtgtattataNggaMtcttHtNagctaaaggtaga\n\
+YctMattNaMVNtcKtactBKcaHHcBttaSagaKacataYgctaKaYgttYcgacWVtt\n\
+WtSagcaacatcccHaccKtcttaacgaKttcacKtNtacHtatatRtaaatacactaBt\n\
+ttgaHaRttggttWtatYagcatYDatcggagagcWBataagRtacctataRKgtBgatg\n\
+aDatataSttagBaHtaatNtaDWcWtgtaattacagKttcNtMagtattaNgtctcgtc\n\
+ctcttBaHaKcKccgtRcaaYagSattaagtKataDatatatagtcDtaacaWHcaKttD\n\
+gaaRcgtgYttgtcatatNtatttttatggccHtgDtYHtWgttatYaacaattcaWtat\n\
+NgctcaaaSttRgctaatcaaatNatcgtttaBtNNVtgttataagcaaagattBacgtD\n\
+atttNatttaaaDcBgtaSKgacgtagataatttcHMVNttgttBtDtgtaWKaaRMcKM\n\
+tHtaVtagataWctccNNaSWtVaHatctcMgggDgtNHtDaDttatatVWttgttattt\n\
+aacctttcacaaggaSaDcggttttttatatVtctgVtaacaStDVaKactaMtttaSNa\n\
+gtgaaattaNacttSKctattcctctaSagKcaVttaagNaVcttaVaaRNaHaaHttat\n\
+gtHttgtgatMccaggtaDcgaccgtWgtWMtttaHcRtattgScctatttKtaaccaag\n\
+tYagaHgtWcHaatgccKNRtttagtMYSgaDatctgtgaWDtccMNcgHgcaaacNDaa\n\
+aRaStDWtcaaaaHKtaNBctagBtgtattaactaattttVctagaatggcWSatMaccc\n\
+ttHttaSgSgtgMRcatRVKtatctgaaaccDNatYgaaVHNgatMgHRtacttaaaRta\n\
+tStRtDtatDttYatattHggaBcttHgcgattgaKcKtttcRataMtcgaVttWacatN\n\
+catacctRataDDatVaWNcggttgaHtgtMacVtttaBHtgagVttMaataattatgtt\n\
+cttagtttgtgcDtSatttgBtcaacHattaaBagVWcgcaSYttMgcttacYKtVtatc\n\
+aYaKctgBatgcgggcYcaaaaacgNtctagKBtattatctttKtaVttatagtaYtRag\n\
+NtaYataaVtgaatatcHgcaaRataHtacacatgtaNtgtcgYatWMatttgaactacR\n\
+ctaWtWtatacaatctBatatgYtaagtatgtgtatSttactVatcttYtaBcKgRaSgg\n\
+RaaaaatgcagtaaaWgtaRgcgataatcBaataccgtatttttccatcNHtatWYgatH\n\
+SaaaDHttgctgtccHtggggcctaataatttttctatattYWtcattBtgBRcVttaVM\n\
+RSgctaatMagtYtttaaaaatBRtcBttcaaVtaacagctccSaaSttKNtHtKYcagc\n\
+agaaaccccRtttttaaDcDtaStatccaagcgctHtatcttaDRYgatDHtWcaaaBcW\n\
+gKWHttHataagHacgMNKttMKHccaYcatMVaacgttaKgYcaVaaBtacgcaacttt\n\
+MctaaHaatgtBatgagaSatgtatgSRgHgWaVWgataaatatttccKagVgataattW\n\
+aHNcYggaaatgctHtKtaDtctaaagtMaatVDVactWtSaaWaaMtaHtaSKtcBRaN\n\
+cttStggtBttacNagcatagRgtKtgcgaacaacBcgKaatgataagatgaaaattgta\n\
+ctgcgggtccHHWHaaNacaBttNKtKtcaaBatatgctaHNgtKcDWgtttatNgVDHg\n\
+accaacWctKaaggHttgaRgYaatHcaBacaatgagcaaattactgtaVaaYaDtagat\n\
+tgagNKggtggtgKtWKaatacagDRtatRaMRtgattDggtcaaYRtatttNtagaDtc\n\
+acaaSDctDtataatcgtactaHttatacaatYaacaaHttHatHtgcgatRRttNgcat\n\
+SVtacWWgaaggagtatVMaVaaattScDDKNcaYBYaDatHgtctatBagcaacaagaa\n\
+tgagaaRcataaKNaRtBDatcaaacgcattttttaaBtcSgtacaRggatgtMNaattg\n\
+gatatWtgagtattaaaVctgcaYMtatgatttttYgaHtgtcttaagWBttHttgtctt\n\
+attDtcgtatWtataataSgctaHagcDVcNtaatcaagtaBDaWaDgtttagYctaNcc\n\
+DtaKtaHcttaataacccaRKtacaVaatNgcWRaMgaattatgaBaaagattVYaHMDc\n\
+aDHtcRcgYtcttaaaWaaaVKgatacRtttRRKYgaatacaWVacVcRtatMacaBtac\n\
+tggMataaattttHggNagSctacHgtBagcgtcgtgattNtttgatSaaggMttctttc\n\
+ttNtYNagBtaaacaaatttMgaccttacataattgYtcgacBtVMctgStgMDtagtaR\n\
+ctHtatgttcatatVRNWataDKatWcgaaaaagttaaaagcacgHNacgtaatctttMR\n\
+tgacttttDacctataaacgaaatatgattagaactccSYtaBctttaataacWgaaaYa\n\
+tagatgWttcatKtNgatttttcaagHtaYgaaRaDaagtaggagcttatVtagtctttc\n\
+attaaaatcgKtattaRttacagVaDatgcatVgattgggtctttHVtagKaaRBtaHta\n\
+aggccccaaaaKatggtttaMWgtBtaaacttcactttKHtcgatctccctaYaBacMgt\n\
+cttBaBaNgcgaaacaatctagtHccHtKttcRtRVttccVctttcatacYagMVtMcag\n\
+aMaaacaataBctgYtaatRaaagattaaccatVRatHtaRagcgcaBcgDttStttttc\n\
+VtttaDtKgcaaWaaaaatSccMcVatgtKgtaKgcgatatgtagtSaaaDttatacaaa\n\
+catYaRRcVRHctKtcgacKttaaVctaDaatgttMggRcWaacttttHaDaKaDaBctg\n\
+taggcgtttaHBccatccattcNHtDaYtaataMttacggctNVaacDattgatatttta\n\
+cVttSaattacaaRtataNDgacVtgaacataVRttttaDtcaaacataYDBtttaatBa\n\
+DtttYDaDaMccMttNBttatatgagaaMgaNtattHccNataattcaHagtgaaggDga\n\
+tgtatatatgYatgaStcataaBStWacgtcccataRMaaDattggttaaattcMKtctM\n\
+acaBSactcggaatDDgatDgcWctaacaccgggaVcacWKVacggtaNatatacctMta\n\
+tgatagtgcaKagggVaDtgtaacttggagtcKatatcgMcttRaMagcattaBRaStct\n\
+YSggaHYtacaactMBaagDcaBDRaaacMYacaHaattagcattaaaHgcgctaaggSc\n\
+cKtgaaKtNaBtatDDcKBSaVtgatVYaagVtctSgMctacgttaacWaaattctSgtD\n\
+actaaStaaattgcagBBRVctaatatacctNttMcRggctttMttagacRaHcaBaacV\n\
+KgaataHttttMgYgattcYaNRgttMgcVaaacaVVcDHaatttgKtMYgtatBtVVct\n\
+WgVtatHtacaaHttcacgatagcagtaaNattBatatatttcVgaDagcggttMaagtc\n\
+ScHagaaatgcYNggcgtttttMtStggtRatctacttaaatVVtBacttHNttttaRca\n\
+aatcacagHgagagtMgatcSWaNRacagDtatactaaDKaSRtgattctccatSaaRtt\n\
+aaYctacacNtaRtaactggatgaccYtacactttaattaattgattYgttcagDtNKtt\n\
+agDttaaaaaaaBtttaaNaYWKMBaaaacVcBMtatWtgBatatgaacVtattMtYatM\n\
+NYDKNcKgDttDaVtaaaatgggatttctgtaaatWtctcWgtVVagtcgRgacttcccc\n\
+taDcacagcRcagagtgtWSatgtacatgttaaSttgtaaHcgatgggMagtgaacttat\n\
+RtttaVcaccaWaMgtactaatSSaHtcMgaaYtatcgaaggYgggcgtgaNDtgttMNg\n\
+aNDMtaattcgVttttaacatgVatgtWVMatatcaKgaaattcaBcctccWcttgaaWH\n\
+tWgHtcgNWgaRgctcBgSgaattgcaaHtgattgtgNagtDttHHgBttaaWcaaWagc\n\
+aSaHHtaaaVctRaaMagtaDaatHtDMtcVaWMtagSagcttHSattaacaaagtRacM\n\
+tRtctgttagcMtcaBatVKtKtKacgagaSNatSactgtatatcBctgagVtYactgta\n\
+aattaaaggcYgDHgtaacatSRDatMMccHatKgttaacgactKtgKagtcttcaaHRV\n\
+tccttKgtSataatttacaactggatDNgaacttcaRtVaagDcaWatcBctctHYatHa\n\
+DaaatttagYatSatccaWtttagaaatVaacBatHcatcgtacaatatcgcNYRcaata\n\
+YaRaYtgattVttgaatgaVaactcRcaNStgtgtattMtgaggtNttBaDRcgaaaagc\n\
+tNgBcWaWgtSaDcVtgVaatMKBtttcgtttctaaHctaaagYactgMtatBDtcStga\n\
+ccgtSDattYaataHctgggaYYttcggttaWaatctggtRagWMaDagtaacBccacta\n\
+cgHWMKaatgatWatcctgHcaBaSctVtcMtgtDttacctaVgatYcWaDRaaaaRtag\n\
+atcgaMagtggaRaWctctgMgcWttaagKBRtaaDaaWtctgtaagYMttactaHtaat\n\
+cttcataacggcacBtSgcgttNHtgtHccatgttttaaagtatcgaKtMttVcataYBB\n\
+aKtaMVaVgtattNDSataHcagtWMtaggtaSaaKgttgBtVtttgttatcatKcgHac\n\
+acRtctHatNVagSBgatgHtgaRaSgttRcctaacaaattDNttgacctaaYtBgaaaa\n\
+tagttattactcttttgatgtNNtVtgtatMgtcttRttcatttgatgacacttcHSaaa\n\
+ccaWWDtWagtaRDDVNacVaRatgttBccttaatHtgtaaacStcVNtcacaSRttcYa\n\
+gacagaMMttttgMcNttBcgWBtactgVtaRttctccaaYHBtaaagaBattaYacgat\n\
+ttacatctgtaaMKaRYtttttactaaVatWgctBtttDVttctggcDaHaggDaagtcg\n\
+aWcaagtagtWttHtgKtVataStccaMcWcaagataagatcactctHatgtcYgaKcat\n\
+cagatactaagNSStHcctRRNtattgtccttagttagMVgtatagactaactctVcaat\n\
+MctgtttgtgttgccttatWgtaBVtttctggMcaaKgDWtcgtaaYStgSactatttHg\n\
+atctgKagtagBtVacRaagRtMctatgggcaaaKaaaatacttcHctaRtgtDcttDat\n\
+taggaaatttcYHaRaaBttaatggcacKtgctHVcaDcaaaVDaaaVcgMttgtNagcg\n\
+taDWgtcgttaatDgKgagcSatatcSHtagtagttggtgtHaWtaHKtatagctgtVga\n\
+ttaBVaatgaataagtaatVatSttaHctttKtttgtagttaccttaatcgtagtcctgB\n\
+cgactatttVcMacHaaaggaatgDatggKtaHtgStatattaaSagctWcctccRtata\n\
+BaDYcgttgcNaagaggatRaaaYtaWgNtSMcaatttactaacatttaaWttHtatBat\n\
+tgtcgacaatNgattgcNgtMaaaKaBDattHacttggtRtttaYaacgVactBtaBaKt\n\
+gBttatgVttgtVttcaatcWcNctDBaaBgaDHacBttattNtgtDtatttVSaaacag\n\
+gatgcRatSgtaSaNtgBatagttcHBgcBBaaattaHgtDattatDaKaatBaaYaaMa\n\
+ataaataKtttYtagtBgMatNcatgtttgaNagtgttgtgKaNaSagtttgaSMaYBca\n\
+aaacDStagttVacaaaaactaaWttBaagtctgtgcgtMgtaattctcctacctcaNtt\n\
+taaccaaaaVtBcacataacaccccBcWMtatVtggaatgaWtcaaWaaaaaaaaWtDta\n\
+atatRcctDWtcctaccMtVVatKttaWaaKaaatataaagScHBagaggBaSMtaWaVt\n\
+atattactSaaaKNaactatNatccttgaYctattcaaaVgatttYHcRagattttaSat\n\
+aggttattcVtaaagaKgtattattKtRttNcggcRgtgtgtWYtaacHgKatKgatYta\n\
+cYagDtWcHBDctctgRaYKaYagcactKcacSaRtBttttBHKcMtNtcBatttatttt\n\
+tgSatVgaaagaWtcDtagDatatgMacaacRgatatatgtttgtKtNRaatatNatgYc\n\
+aHtgHataacKtgagtagtaacYttaNccaaatHcacaacaVDtagtaYtccagcattNt\n\
+acKtBtactaaagaBatVtKaaHBctgStgtBgtatgaSNtgDataaccctgtagcaBgt\n\
+gatcttaDataStgaMaccaSBBgWagtacKcgattgaDgNNaaaacacagtSatBacKD\n\
+gcgtataBKcatacactaSaatYtYcDaactHttcatRtttaatcaattataRtttgtaa\n\
+gMcgNttcatcBtYBagtNWNMtSHcattcRctttttRWgaKacKttgggagBcgttcgc\n\
+MaWHtaatactgtctctatttataVgtttaBScttttaBMaNaatMacactYtBMggtHa\n\
+cMagtaRtctgcatttaHtcaaaatttgagKtgNtactBacaHtcgtatttctMaSRagc\n\
+agttaatgtNtaaattgagagWcKtaNttagVtacgatttgaatttcgRtgtWcVatcgt\n\
+taaDVctgtttBWgaccagaaagtcSgtVtatagaBccttttcctaaattgHtatcggRa\n\
+ttttcaaggcYSKaagWaWtRactaaaacccBatMtttBaatYtaagaactSttcgaaSc\n\
+aatagtattgaccaagtgttttctaacatgtttNVaatcaaagagaaaNattaaRtttta\n\
+VaaaccgcaggNMtatattVctcaagaggaacgBgtttaacaagttcKcYaatatactaa\n\
+ccBaaaSggttcNtattctagttRtBacgScVctcaatttaatYtaaaaaaatgSaatga\n\
+tagaMBRatgRcMcgttgaWHtcaVYgaatYtaatctttYttatRaWtctgBtDcgatNa\n\
+tcKaBaDgatgtaNatWKctccgatattaacattNaaacDatgBgttctgtDtaaaMggt\n\
+gaBaSHataacgccSctaBtttaRBtcNHcDatcDcctagagtcRtaBgWttDRVHagat\n\
+tYatgtatcWtaHtttYcattWtaaagtctNgtStggRNcgcggagSSaaagaaaatYcH\n\
+DtcgctttaatgYcKBVSgtattRaYBaDaaatBgtatgaHtaaRaRgcaSWNtagatHa\n\
+acttNctBtcaccatctMcatattccaSatttgcgaDagDgtatYtaaaVDtaagtttWV\n\
+aagtagYatRttaagDcNgacKBcScagHtattatcDaDactaaaaaYgHttBcgaDttg\n\
+gataaaKSRcBMaBcgaBSttcWtgNBatRaccgattcatttataacggHVtaattcaca\n\
+agagVttaaRaatVVRKcgWtVgacctgDgYaaHaWtctttcacMagggatVgactagMa\n\
+aataKaaNWagKatagNaaWtaaaatttgaattttatttgctaaVgaHatBatcaaBWcB\n\
+gttcMatcgBaaNgttcgSNaggSaRtttgHtRtattaNttcDcatSaVttttcgaaaaa\n\
+ttgHatctaRaggSaNatMDaaatDcacgattttagaHgHaWtYgattaatHNSttatMS\n\
+gggNtcKtYatRggtttgtMWVtttaYtagcagBagHaYagttatatggtBacYcattaR\n\
+SataBatMtttaaatctHcaaaSaaaagttNSaaWcWRccRtKaagtBWtcaaattSttM\n\
+tattggaaaccttaacgttBtWatttatatWcDaatagattcctScacctaagggRaaYt\n\
+aNaatgVtBcttaaBaacaMVaaattatStYgRcctgtactatcMcVKatttcgSgatRH\n\
+MaaaHtagtaaHtVgcaaataatatcgKKtgccaatBNgaaWcVttgagttaKatagttc\n\
+aggKDatDtattgaKaVcaKtaataDataataHSaHcattagttaatRVYcNaHtaRcaa\n\
+ggtNHcgtcaaccaBaaagYtHWaaaRcKgaYaaDttgcWYtataRgaatatgtYtgcKt\n\
+aNttWacatYHctRaDtYtattcBttttatcSataYaYgttWaRagcacHMgtttHtYtt\n\
+YaatcggtatStttcgtRSattaaDaKMaatatactaNBaWgctacacYtgaYVgtgHta\n\
+aaRaaRgHtagtWattataaaSDaaWtgMattatcgaaaagtaYRSaWtSgNtBgagcRY\n\
+aMDtactaacttaWgtatctagacaagNtattHggataatYttYatcataDcgHgttBtt\n\
+ctttVttgccgaaWtaaaacgKgtatctaaaaaNtccDtaDatBMaMggaatNKtatBaa\n\
+atVtccRaHtaSacataHattgtttKVYattcataVaattWtcgtgMttcttKtgtctaa\n\
+cVtatctatatBRataactcgKatStatattcatHHRttKtccaacgtgggtgRgtgaMt\n\
+attattggctatcgtgacMtRcBDtcttgtactaatRHttttaagatcgVMDStattatY\n\
+BtttDttgtBtNttgRcMtYtgBacHaWaBaatDKctaagtgaaactaatgRaaKgatcc\n\
+aagNaaaatattaggWNtaagtatacttttKcgtcggSYtcttgRctataYcttatataa\n\
+agtatattaatttataVaacacaDHatctatttttKYVatHRactttaBHccaWagtact\n\
+BtcacgaVgcgttRtttttttSVgtSagtBaaattctgaHgactcttgMcattttagVta\n\
+agaattHctHtcaDaaNtaacRggWatagttcgtSttgaDatcNgNagctagDgatcNtt\n\
+KgttgtaDtctttRaaYStRatDtgMggactSttaDtagSaVtBDttgtDgccatcacaM\n\
+attaaaMtNacaVcgSWcVaaDatcaHaatgaattaMtatccVtctBtaattgtWattat\n\
+BRcWcaatgNNtactWYtDaKttaaatcactcagtRaaRgatggtKgcgccaaHgaggat\n\
+StattYcaNMtcaBttacttatgagDaNtaMgaaWtgtttcttctaHtMNgttatctaWW\n\
+atMtBtaaatagDVatgtBYtatcggcttaagacMRtaHScgatatYgRDtcattatSDa\n\
+HggaaataNgaWSRRaaaBaatagBattaDctttgHWNttacaataaaaaaatacggttt\n\
+gHgVtaHtWMttNtBtctagtMcgKMgHgYtataHaNagWtcaacYattaataYRgtaWK\n\
+gaBctataaccgatttaHaNBRaRaMtccggtNgacMtctcatttgcaattcWgMactta\n\
+caaDaaNtactWatVtttagccttMaatcagVaagtctVaaDaBtattaattaYtNaYtg\n\
+gattaKtaKctYaMtattYgatattataatKtVgDcttatatNBtcgttgtStttttMag\n\
+aggttaHYSttcKgtcKtDNtataagttataagSgttatDtRttattgttttSNggRtca\n\
+aKMNatgaatattgtBWtaMacctgggYgaSgaagYataagattacgagaatBtggtRcV\n\
+HtgYggaDgaYaKagWagctatagacgaaHgtWaNgacttHRatVaWacKYtgRVNgVcS\n\
+gRWctacatcKSactctgWYtBggtataagcttNRttVtgRcaWaaatDMatYattaact\n\
+ttcgaagRatSctgccttgcRKaccHtttSNVagtagHagBagttagaccaRtataBcca\n\
+taatSHatRtcHagacBWatagcaMtacaRtgtgaaBatctKRtScttccaNaatcNgta\n\
+atatWtcaMgactctBtWtaaNactHaaaaRctcgcatggctMcaaNtcagaaaaacaca\n\
+gtggggWttRttagtaagaVctVMtcgaatcttcMaaaHcaHBttcgattatgtcaDagc\n\
+YRtBtYcgacMgtDcagcgaNgttaataatagcagKYYtcgtaBtYctMaRtaRtDagaa\n\
+aacacatgYaBttgattattcgaaNttBctSataaMataWRgaHtttccgtDgaYtatgg\n\
+tDgHKgMtatttVtMtVagttaRatMattRagataaccctKctMtSttgaHagtcStcta\n\
+tttccSagatgttccacgaggYNttHRacgattcDatatDcataaaatBBttatcgaHtN\n\
+HaaatatDNaggctgaNcaaggagttBttMgRagVatBcRtaWgatgBtSgaKtcgHttt\n\
+gaatcaaDaHttcSBgHcagtVaaSttDcagccgttNBtgttHagYtattctttRWaaVt\n\
+SttcatatKaaRaaaNacaVtVctMtSDtDtRHRcgtaatgctcttaaatSacacaatcg\n\
+HattcaWcttaaaatHaaatcNctWttaNMcMtaKctVtcctaagYgatgatcYaaaRac\n\
+tctaRDaYagtaacgtDgaggaaatctcaaacatcaScttcKttNtaccatNtaNataca\n\
+tttHaaDHgcaDatMWaaBttcRggctMaagctVYcacgatcaDttatYtaatcKatWat\n\
+caatVYtNagatttgattgaYttttYgacttVtcKaRagaaaHVgDtaMatKYagagttN\n\
+atWttaccNtYtcDWgSatgaRgtMatgKtcgacaagWtacttaagtcgKtgatccttNc\n\
+ttatagMatHVggtagcgHctatagccctYttggtaattKNaacgaaYatatVctaataM\n\
+aaaYtgVtcKaYtaataacagaatHcacVagatYWHttagaaSMaatWtYtgtaaagNaa\n\
+acaVgaWtcacNWgataNttcaSagctMDaRttgNactaccgataMaaatgtttattDtc\n\
+aagacgctDHYYatggttcaagccNctccttcMctttagacBtaaWtaWVHggaaaaNat\n\
+ttaDtDtgctaaHHtMtatNtMtagtcatttgcaaaRatacagRHtatDNtgtDgaatVg\n\
+tVNtcaaatYBMaaaagcaKgtgatgatMgWWMaHttttMgMagatDtataaattaacca\n\
+actMtacataaattgRataatacgBtKtaataattRgtatDagDtcRDacctatRcagag\n\
+cSHatNtcaScNtttggacNtaaggaccgtgKNttgttNcttgaaRgYgRtNtcagttBc\n\
+ttttcHtKtgcttYaaNgYagtaaatgaatggWaMattBHtatctatSgtcYtgcHtaat\n\
+tHgaaMtHcagaaSatggtatgccaHBtYtcNattWtgtNgctttaggtttgtWatNtgH\n\
+tgcDttactttttttgcNtactKtWRaVcttcatagtgSNKaNccgaataaBttataata\n\
+YtSagctttaaatSttggctaaKSaatRccgWHgagDttaaatcatgagMtcgagtVtaD\n\
+ggaBtatttgDacataaacgtagYRagBWtgDStKDgatgaagttcattatttaKWcata\n\
+aatWRgatataRgttRacaaNKttNtKagaaYaStaactScattattaacgatttaaatg\n\
+DtaattagatHgaYataaactatggggatVHtgccgtNgatNYcaStRtagaccacWcaM\n\
+tatRagHgVactYtWHtcttcatgatWgagaKggagtatgaWtDtVtNaNtcgYYgtaaa\n\
+ctttaDtBactagtaDctatagtaatatttatatataacgHaaaRagKattSagttYtSt\n\
+>THREE Homo sapiens frequency\n\
+agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct\n\
+cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt\n\
+tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat\n\
+tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc\n\
+gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc\n\
+tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg\n\
+tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat\n\
+atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag\n\
+cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa\n\
+ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt\n\
+ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat\n\
+atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc\n\
+gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact\n\
+tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag\n\
+gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg\n\
+atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag\n\
+tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac\n\
+ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag\n\
+tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta\n\
+aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt\n\
+gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa\n\
+ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc\n\
+agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt\n\
+agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat\n\
+acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc\n\
+cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct\n\
+cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct\n\
+cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa\n\
+aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt\n\
+tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt\n\
+atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct\n\
+cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga\n\
+tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat\n\
+catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc\n\
+tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg\n\
+caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc\n\
+tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc\n\
+aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag\n\
+aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat\n\
+ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac\n\
+gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag\n\
+ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt\n\
+cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta\n\
+gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca\n\
+ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt\n\
+cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg\n\
+taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg\n\
+gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc\n\
+taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt\n\
+ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt\n\
+aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt\n\
+gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta\n\
+acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct\n\
+ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta\n\
+tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt\n\
+tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg\n\
+tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa\n\
+ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac\n\
+aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga\n\
+tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca\n\
+gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt\n\
+gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc\n\
+cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg\n\
+actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa\n\
+tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg\n\
+ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt\n\
+ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta\n\
+agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc\n\
+gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa\n\
+tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt\n\
+atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca\n\
+cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa\n\
+tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca\n\
+gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg\n\
+gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat\n\
+aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg\n\
+gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat\n\
+cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa\n\
+taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg\n\
+tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt\n\
+ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac\n\
+aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc\n\
+gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag\n\
+aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc\n\
+tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa\n\
+tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata\n\
+aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta\n\
+ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc\n\
+ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc\n\
+caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct\n\
+gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg\n\
+cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc\n\
+ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta\n\
+tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg\n\
+atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc\n\
+ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc\n\
+acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc\n\
+taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga\n\
+ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga\n\
+aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat\n\
+cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc\n\
+tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact\n\
+gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa\n\
+aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag\n\
+cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc\n\
+cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa\n\
+gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg\n\
+cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg\n\
+gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca\n\
+agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac\n\
+aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt\n\
+aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg\n\
+cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt\n\
+agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg\n\
+cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa\n\
+agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga\n\
+gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta\n\
+aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata\n\
+agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc\n\
+cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc\n\
+agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca\n\
+ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga\n\
+tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag\n\
+gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat\n\
+gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt\n\
+ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg\n\
+gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc\n\
+atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc\n\
+tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata\n\
+ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg\n\
+tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag\n\
+cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg\n\
+ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat\n\
+aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg\n\
+gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat\n\
+ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag\n\
+atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac\n\
+aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct\n\
+gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga\n\
+atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt\n\
+aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt\n\
+tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg\n\
+ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta\n\
+gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac\n\
+cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct\n\
+ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga\n\
+ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg\n\
+ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat\n\
+cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga\n\
+tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt\n\
+tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc\n\
+cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt\n\
+gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct\n\
+ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt\n\
+ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa\n\
+tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc\n\
+agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta\n\
+ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc\n\
+cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct\n\
+agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc\n\
+tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc\n\
+gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga\n\
+ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa\n\
+ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca\n\
+agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata\n\
+attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact\n\
+ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat\n\
+agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat\n\
+aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata\n\
+gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta\n\
+gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg\n\
+ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac\n\
+gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata\n\
+ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat\n\
+taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta\n\
+aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata\n\
+tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata\n\
+ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga\n\
+agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt\n\
+ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt\n\
+agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg\n\
+gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa\n\
+tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg\n\
+gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct\n\
+cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc\n\
+ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta\n\
+cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt\n\
+gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc\n\
+gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc\n\
+tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt\n\
+cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca\n\
+aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac\n\
+ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac\n\
+gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag\n\
+aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga\n\
+gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct\n\
+aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta\n\
+gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat\n\
+agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat\n\
+caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta\n\
+gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta\n\
+aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt\n\
+tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt\n\
+tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc\n\
+ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg\n\
+ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg\n\
+gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa\n\
+ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa\n\
+aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa\n\
+tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat\n\
+acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac\n\
+atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga\n\
+gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac\n\
+tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc\n\
+cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa\n\
+gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg\n\
+acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga\n\
+acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga\n\
+attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg\n\
+tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt\n\
+cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag\n\
+aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac\n\
+ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac\n\
+tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat\n\
+gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga\n\
+gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc\n\
+acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta\n\
+gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac\n\
+gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc\n\
+ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt\n\
+taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg\n\
+agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa\n\
+gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag\n\
+ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc\n\
+accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag\n\
+tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact\n\
+taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga\n\
+catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat\n\
+tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga\n\
+ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg\n\
+aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa\n\
+atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa\n\
+tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt\n\
+ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact\n\
+tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt\n\
+aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat\n\
+agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc\n\
+acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc\n\
+aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct\n\
+ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat\n\
+gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat\n\
+taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata\n\
+taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga\n\
+tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat\n\
+gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg\n\
+ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa\n\
+atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat\n\
+tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat\n\
+cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt\n\
+aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac\n\
+taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag\n\
+caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata\n\
+ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct\n\
+tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac\n\
+tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg\n\
+gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta\n\
+gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat\n\
+gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg\n\
+ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa\n\
+tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa\n\
+taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac\n\
+gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt\n\
+ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga\n\
+gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca\n\
+tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc\n\
+ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt\n\
+tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc\n\
+cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat\n\
+ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg\n\
+caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg\n\
+cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat\n\
+gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat\n\
+cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg\n\
+taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat\n\
+tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata\n\
+taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc\n\
+tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac\n\
+tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt\n\
+tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt\n\
+ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt\n\
+aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg\n\
+atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga\n\
+actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta\n\
+gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga\n\
+ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga\n\
+gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct\n\
+tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc\n\
+aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta\n\
+atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt\n\
+catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc\n\
+taaagataactctagtaaggccaactcccttcaatgctgttgccagttataatccaagag\n\
+ctgtccttttctgaaccatagcggcttctgaagcgaactagaagcaaagttggttctagc\n\
+cagacagccacataccctgtacgggtgtattactaaaactggtccggtattagttcacca\n\
+agggaggaattaggcaaaggatctaggtatgcaagtcggagtattacatccctaccctga\n\
+atccatcaataggttcctctgtactggccttcgcaatgagtattcaaggttgtacagccg\n\
+tataataataagatagtgactatgaacgggaagtaacccgctcaccttccccaaaacatt\n\
+gttatatctaagtattaaagtctgccgtagtgttaatactcgaaaataaacaactggcaa\n\
+attacaccgcacttaagccgcttttgatttatatttttccaatgcgcttttaaaaataat\n\
+tcagtcctacatactaattaagacccttaaacggagatatcacaagttaagttttaacca\n\
+tctcgactaggtggaactatagatacccaactcaatttatcattacctgtaatgttccta\n\
+gaaggattgcatttcatgtcaagacggtggagtttcacagcgaaacttcagtgtgaacag\n\
+attctgagaaatcacctaaacctattagtcagagcacccggttagaaccagttgtcaaaa\n\
+aatagagcggttgcatgagacagaagtaacgatgagatccgttgtaacgttgagacatct\n\
+ggcctatcgtcaatacagtcctcccttaaaaatatttttaaatactaggcaaacccaaca\n\
+taggttagtcctatgtgatacgccacatggtatatcattttgtaacgttacctagggata\n\
+atcaggaagtggaattacgcaaaagtagacagtgaaatgcttagggttatagtctagtcc\n\
+aaagataaaggataaagcacgtcagagaactatattagccgaatgggaatcattgttagg\n\
+agactgtggatcatgtctaaaaagcaacgcagaaacagtcatcgaaaaaatctcgttttt\n\
+gtttgaatctaaaagagctttgatgaccgatagtacctgtatactagttactgtattacg\n\
+tgtctaatgatttcggattggggtccccagaatcagacgtcattgtagacgattcaagtt\n\
+taccaatttaatttcccagctctccttggagaactatcgccaataattgcagtcactttc\n\
+cttttctgaaacgataaagccgtcagagttctctgcaacgttggacttacctgaggttct\n\
+aacccactttcggttctaatagtagttaacgacacaacgaataacctttactgtggggct\n\
+ttcacgatattttttcgcttattattaatggttacgtcataagctggtgtccaaattaag\n\
+gttaccggcttcgcagagtagttgtatccaagtataacttccctaatcataagatcgagg\n\
+tagaaaattaatgctgtctctaaccgaacagatatgtcccactatgtggtatggacgttg\n\
+ctaattacttctgaagggaaattggtcattatggatacgtgtctaccatcaggtcggacg\n\
+cagatatggttctgtcttcagttgatccaccgttctttataggataataactgacgatta\n\
+aagattatggtaaatagattaagccaattctcttcttgtcagtgaagcatccttaactga\n\
+cttgctctgcagcccctcatacatttagctattcaaagtaccggctcgtttcaaactctc\n\
+ccacctttggaagaggttgtcaacttgataagtatatcatttacagcattttttcggacg\n\
+tacctctaatgtttcattgcagaaaattagttttttctatcgcacattttgcaagtaacg\n\
+ttagagacacaattatctgcgaatgaactgctagatctgacgaccgggagcctcgcaaat\n\
+atcaaaaaagactgacatatatcaaggagtcgttgacaagtgctggtaagtcaattggtt\n\
+tatctgtcccggcgtttcgatcttaagctgaccatgcacggcagagtaatgtcactctcg\n\
+ttcttacaagtctgtctccaagggtcggcaaaaaagacccctccattctcgagcccactc\n\
+acgatatgtagggacgacaacttgtgcggcttatgaattgtctggactgcgggcgagggt\n\
+ccatatctccgaagttagaagggacatacctttagatgataagatcaattcttattgacg\n\
+aaattcatccacaacggggaacaacttcaccctagacttacgtctgaaaagacacctagc\n\
+gtcttataaaaggtcagtgccccgtttcgtaaggctggaattacctacgcaaacttaaac\n\
+ctcgcgcccttccttacgtatcgacaagatagaggctatcgcgaatgtactacggaggca\n\
+tgaatcatatactagaaccaagtgcctgtgatattaacaagatgatccgacgcgagcacc\n\
+gtaattctaggcataaaactccagcaatttgggggccgaaaacaaatgacgttagctaat\n\
+taattatatgacatgatcaaaggaggtcaatcacgcatcgagttcgacgtatattcattg\n\
+aacttcgtgcgtttgaaagaaacttttatgaaggcaaaattgatcctgtctcctatttca\n\
+tgcgtacctcctagttgataattccccgagcagtggttaggacacttttgtcggtatcaa\n\
+gttccggtctcaaaacgtaaaattctgtaatctgtatggatggtctgtgaattagttaat\n\
+ttttatgaagtcgtcgagacgcagttcctattgatttattctaaacggagatgtgcttcg\n\
+tgggactcggaagtagatctgtgtttatgattattgctactttagatgctgactgttaac\n\
+tccgtgttgtttttcaaccgtatatcacaaccgaattggatagaacctatagtttcaagt\n\
+tctgccacaaggtatcatatttacagttagtgctggttgcttctttcaaacgtggtgagt\n\
+ttgtgctatcacgtcaacggtagagctcagtggaccgagtgcgcgttcaaccctgttcca\n\
+gagagggtgtgatagcacatataccacgctcgtcgaggcgttcatgatagtttgcaagag\n\
+ccggtgttaaacacatattattattgttatccaactaatcggacctatgcataaagcatt\n\
+gtctaaacagaataattgcctatatacggtagttttagtgatttatatcttagtatcagt\n\
+tagagcttcgaactcttcaggttcctcatatttaacgttcttcgaaagcgaaaacttcta\n\
+caaacgaatgtaagcggttttccaagtagtacctataaatcacagaaagatctgtctcag\n\
+tatagttgaaatggtattcagctagtgacgtgtaccaattatcatagttcactcaagcaa\n\
+gacgctcattaacgaatatagacaagacactatatcatataataaaaaagaacatggtgc\n\
+tcgaacatagttgaattcaccatattgaaggggaatgctgacatgtaattcgctactaga\n\
+cgatcaattccctacttgtcaaagttgaactggtacgttcttggaattaaatatgattgc\n\
+gctggaccaaattgcgacttcttgagtttcagggcaaacgattgagccggaggatgtccg\n\
+tctcttacctttcttgcttatgataaacgacggtccctgtacatcactgggaattctcag\n\
+caaaaataattgggtaaatcgagactcgatgtattcggccacaaaggtgttagacgttaa\n\
+agattattcaacggggcgataataggatcataaccggtatgcaagcgcattgaaagagcc\n\
+atgagatccttatccgataaacgctgcacggtatgtgcagccttattgtcgatcacgaat\n\
+ttataaatgtagtctgggctgtaagttgaagacctaagttataatgaagtgcaataccaa\n\
+atcgattcatagtggattatcagactcaagatatctcctgataaattacagttgttaaga\n\
+tacggataaaatgagatttaagattagcagcctctaatctgtttcaatcccgttggaatg\n\
+tggtatgcgatcaaggttaagttaaaatcaagcctgtcttcagtcttgattcttgttctg\n\
+ccatcgcatgcggtctacgtgagttaatatgtagcttacgttctagcttgtgctaatctg\n\
+agtatagattcgtagaggaatattatcaagcttccacgcctcaacgtacgtgtattggtc\n\
+acacaagacactaaaagtggaagtagcgtaaactatagtctagttgttaaatgctcagtt\n\
+cttgttatattcgatatactcttggctaatttatgtctgagtatataaaattaatgatat\n\
+taacttgcatttcacggatcccttagaaaaagattttgaccgagcgcattataaacggtt\n\
+acaccgaatcaatagaagcatacccaatagctttctttgaatttattgcctgcgcaactt\n\
+ggctgactctctagatccgaataattctatatggtcgtgacgaaactagttcattactgt\n\
+ttaaaatgccaacatgtcttttgggccgataatggctctttgcaaaattactcaatgata\n\
+cgattgatcaaagcggtagttgctagtggtagcatgtaagtctatcaaatgtctgattat\n\
+ccgaaaatcttccaaaagagtccacgtaccatatctatctcatagcgacgcgaggggaac\n\
+cttatctaactatcattccatttaccgggtgactctcgatgcaggatccgattgggataa\n\
+attgcccagaaatggctcattcctgactaagggtaaggccgttctcagcaagggaacccc\n\
+gcgaatctaggcttataccatctagattgttaactacttgcctgtagttctacagccata\n\
+ctggacagttgtttctaaatgatcgggattcatgctagcactcctctgaatgcaccgcgt\n\
+aagtttaactattacgtccgtgggcagataaggatggaggctgtatgtatcttaactgtt\n\
+acctaatatggctggtaattatcaaagtaaggaccttaatgccatagcgctagcaatcgc\n\
+tttgtatactgaccatgtgccaacctctcttaatctgtaaaatataatgtcttagctaac\n\
+tgtggacgatcatgtctctgcctagagcttcgctgtatcaattcctatagccagcgtact\n\
+agtgacacaacaacaccgtgtgagaaaagatattagtccttacgtctgtctctctacagc\n\
+ttattgatgaggattgaacatggacatatagctccccctcaaaagcagatgctacctctt\n\
+tattccattctcgaacatttgccgaacttaatttcgacaaacctgaggtcacgtcttaat\n\
+ttatcggtaacgtcacgtccctttgagactggataaatatattaccaggggccaacgagc\n\
+aattgttggaggcgcttctataatacaaggtgtcttgtcaaagaaagacggcgtgcgtct\n\
+cgtgcaactcacttaaccaatattaatgtgaaacccccctctctcacatcttatgcggtg\n\
+tactgccctggtacatttcctgtacaggactccaacagtgtagattcctaagatagctgt\n\
+tggagttgcctcacgccagatcgaaaaactgaataaactagtgagctgagctgcagaaat\n\
+accgcttaattacttatgactagttcaaagggacctacgtgatgtcagacattgcaagga\n\
+agaaattaggtttgtgcgtcattttggctggactagcactccttacttcccctactattc\n\
+aaatgtcgtaaacagcatgagacaggatcgtgctgacatttaaggtctattgggaacgag\n\
+gctacctttggtcgcgcgctcgcgttctccgaatgaccgaaatgcatgagcacagtatgc\n\
+aattgcttatagatctaaggtctggtcgttgaaaccaagcacgtaggcctgggaaatcag\n\
+ttcttcctcagcaactacacaaaagcgtccaagcattagtacttgtagtaaatgtccgaa\n\
+cctatgcgctcatttgaaagtcaaaaaatatttttaagcagtaggcacctaacccgattc\n\
+ctctacttagtagctttctttgattctcagaattgactgcaatatcactgcacaattctg\n\
+tgccattactagacttctctgtattaacgtctcatcttactaacactcgcctaggacaca\n\
+tctgagagtgaagtatttcaatacatttactgaaatcttcagttctaaaatccccgaata\n\
+aggctcttatcggtttggccaacacaagaaaaaaacttcttgcaccactcaccttcatac\n\
+gcaggagcctggggaacttagtaataactatttcggcagacaaagcttataacaagttgc\n\
+cggcgcgtataatatttaaaagaccccttgagctgctcaattaaaacgctcacctggtat\n\
+aggctattagatagtgccgtcttagtaaggggcgggaattatcggataaactgatatttt\n\
+gataaaataaccgacttgttcacgacataagtcactaaggagattttatctttctccaaa\n\
+gtatatcttccttggataatttcaaagcgctgcaatttaagttctgttactagtttatgc\n\
+tgctgggaggtgaccggaaggcgtagtaatctagaggcaaattataagaagttcatcata\n\
+tcattttcgactacaaaaacaaggtgttgtatgccggcgcattgtgtaaactggacgagt\n\
+accctagatggaaaattatacgttaagccaagatttcgatgtaatgataattacctacac\n\
+atttttgctatccataggaacaagagctgttctataggctcgtggcatacgaacatttgc\n\
+tgccgctatgaatattggaagctcttcaactacagactctattcttaattgccgtcgaaa\n\
+atgggccgaatcggctattattaatactcggtttttccgaggggattgttgtcgacagtc\n\
+gtaattattattaatattgatgttggtgaggtcatttaaatacaaccttgcagacaatga\n\
+ataagggatccaatctctcatactccttttacaattgctcatgcccctatgcaaacctta\n\
+tgccgccacacctccgcaactctctcttctgaactgtaagtagcttcattactggtttga\n\
+gactatactgaagctgatgacattctaaaatggctattttcgaatgtgattcataatgtt\n\
+tatcgtttgggatggcagaatcacgttatttttgatatagcccgggtattctattgtata\n\
+gaacgtatgctacaagtcattccccgaagaagactagaagtaaacaacatgcgaccatcg\n\
+ttaagccacgcaaggctgtagctttatttcccgataacctatcttccataaatagcggac\n\
+agcaggatactgacgctcaacatcagtggttatggtctaatttttaacttttaataaggt\n\
+aacttcagcaggcatacacagtaactctttaatttataatcaaattagaagtctgacact\n\
+tcttatatttttctatcatccaacgcgatcgcccattagcttattgtgttactaataacg\n\
+tatctaaaccaatccttttcaagctactgcctatattgtcaatatatacaaacaacagga\n\
+tagtaggctgcttaaaaaatattgtcaaccgtgtacgctttacaatacccggaaatcaca\n\
+aactttgtagacaacgagtgaaatttatacactacgaagggccagcgtacaagacccatg\n\
+aattaggcgatatgtttattctgacatattggtttatccttaatctgtcgctgtaaaatg\n\
+aagccgcccccatccctgcgaattttttttcgaagattcacgactgaaatataaatacgt\n\
+ttggctatatttatgttggagggaggcaatagcctttactgttaaccgaagatttagcca\n\
+gtgagtgtgacactaaaacactggaataaatgcaggcgttcttctgggtaaaaggtttag\n\
+tcaatctcgcctataagttcatatagctctggatataattatctggcccatgcatttatc\n\
+atggcgcttggtgccctgtgtgaagccggcctctcatattgaaggtccgaagtattccat\n\
+gtacattaagatcactctctcattcatgcatcttggcttaacaaatctggttgtccaagc\n\
+tttccaggcacgtatggtacaaattcggatcgaatacttataaaaatgatatgttaaact\n\
+gtctaaaacgctcatctacaaagtaaagtgcactaaccaatagagtctcaagaccgtgta\n\
+atgctggtgcactgaatgtgtaatacggttagaagggattagttatgttacaaatccatt\n\
+gaaaacttaagaagcattgcgtgctcggagggtgcatcttttatcaagagactaacatta\n\
+ttttcaacgacgtacatgctttacaatagggtacttatcaaacgccgagaaacgcgccta\n\
+tagtgatgttatgattatgacccgatatccattggaccgaattttatgtaggttcccagc\n\
+gtactcgcgtaatatctcggtattgccataatgtaatacttgtcggtctctcccagatga\n\
+aaaagcgttacagagtatttcaatgaaaaacagcgcgcaacgtcaatacctttaggggta\n\
+acggccgctgatttcatatagatatacgataagttggtatagctctactaggtggcatcc\n\
+acaatcgttgcatttactatagctggttacaatcataatctataccgttccttacatact\n\
+accatagcgggatagcgtttttttgccgttgattgggtttaagaggatgtcagtctcatt\n\
+atatccgattcggtgggagagccgttgttttcaaatcgcacactttgtgacataatgtac\n\
+aagataacaaaactgatataagatataaactgtcaatatcaccttgacacttgaatcaaa\n\
+gtaaattaactcgcaaatataatttgactaattgggtgcagatttctcaattaataaaaa\n\
+aatggcaccggatgggcttacaagccccttatcattcacttgtatcatgatttccaagaa\n\
+caatagaatttgctagcaagtatgaacagagattcgaattgcatccacagtacgccggag\n\
+cgtttattttaatgtggatatgacgatgtactgttggcggcatttgctagtaaccggtcc\n\
+ttatttacgtagcgcacacgtaagcatgtctgggagaaatatggtggtacaatctcagag\n\
+aaagattacagtttggtttaaataggacttatcgggtcggaagtggaacttaataagcag\n\
+tacacaattgggcaacagacgtcttgcctattacaataggattacaatgcgttagatttc\n\
+agacacgttcgtgtttggctattcgtcaattccctaaatagttagacgatcaactattat\n\
+caaagtgattctttgttcatcctccattcatgtaacagatggcacactacgcataacgcc\n\
+gaggaattttaacgagatttaagagagcagttcgggcacaacccacttgactttataaca\n\
+gctcggcagcataaacggtaatatgtgacaaatttccaaacgttataagaacgtatgtgt\n\
+acttagaaaactaagtggttcatgttcaacagatgtgacgcagcaagcctaacttatcta\n\
+ttggttttgctataaaagaacaaagttacacagaatcctaagggcttgtttcacacttat\n\
+gcctagtgcttcaccatcttaaaatagcgaaaccggcacgaatcaaaccttaaaacaatg\n\
+cgcagatattggtgatggtgactccgggtatgataatggtaactgttgaccagcgcccac\n\
+ctcatcgaagtatagaaagtggttaggataaggatgagaccgaacttatttccggccata\n\
+actttagattttctacctagtacacaacatcagggcggacacgaaaccgccatcacatca\n\
+tataccaggtttaatttgcttaatgggggaagtgtcaacgaaccttcgaactttagcagg\n\
+catatggccattatatatggccccagagcagaatgctacagcagacaaaatttggattta\n\
+tgtagtttaatacctatcaaacttggtgtgaccatacttgtctaacgacagtgcacaaag\n\
+tgtaagttacaattattactactcagcagcttctgcaatgataaaatcttatcatacacg\n\
+tcacatatgataatatctacttagggggaacgggctccacaacctacatagtactcaata\n\
+cttacactattcgacaggcacaccaaacctgtacagtcccaaaagattgagtcaactttg\n\
+cagtactgcagatcacagtaatagcttagttagcgagtcaaaattagttttctacgagac\n\
+tgcacgaccgtgcaaatttccgatgtgttggctacaaatagcaacgtatgaatttgtttg\n\
+aagccacgtaaactgtacaaccttagagataagtctcaggctactaaaaacacgttgtgg\n\
+cactaacaggatcatggttgattcttacttattcggctgaccggcccaataagtaacctt\n\
+caactagaacagaataatcgggagtagtttaattcagtcaaggtgcaggtctcattgtaa\n\
+ctaacaagctctgtgtaaccaagttaaaatcgttttcttagcggattccctacttatgga\n\
+tttgagctcgtccacaatattcgatacaagaagtttgtggtccgtaacaacgaaatttta\n\
+attacgctgtgcagcctcatccaaggaattaatagaaggttgatggtaggctccgaacgc\n\
+tccatgattataatcaagtggactgtgcagtaaacgaggaaggtatcctgacgtcgtggt\n\
+gttcgtttttgttatttgtgccctatacgagtagataaaccatgaacagcacagtgtgaa\n\
+cccatggttgattttaggctaccttatttttaatttccgttacacagaaacgaattccac\n\
+aactaacatgccattaatttttcgatatcttataaaagatggtcgaaattcattcattta\n\
+ttttttttcggttctcgaaagtcaactaagctgtcgcgttttgtttctctttagaggtaa\n\
+aagtggctttgatctcctacgtttggatactagtcaaccattactccatttgatccgtga\n\
+gtatcacctgtctaacatccagcattatgactcctcggcgaagaaaagacacacttctta\n\
+gagtcgatgtgtattagctagggacacagttgtttaatacgatagtgagcccagggaggg\n\
+cagtgcgtcccccagtagatttattcagctagtgtaagtataagatatctcacccacgag\n\
+gttcaagtgatatgcagtcttagaataatacttatcctgaatttcgatattatgggtact\n\
+tcaataatccgctagcgctactttatgtctcgttggacagcaggacacatggcagtctta\n\
+aacactaaagacatcacctgaatgaatgtaatgggattacaagaatcaatgaggtattat\n\
+atacgacgtaggaaactctggatatatacagtaatctagttacgccatcgcacttcattc\n\
+ctctggaaacttagaagacatcagctgtacgtggaggaaccagacccccgtatgtagcca\n\
+aatagaaccaaagttgcttatacaaacacacccaatgacaatggaccgctggagttcgta\n\
+aactcggaacgtagtactgcacaaacccagcatttagcaataggagctacgtatgcaact\n\
+cccacgtggtaataccttcaagctatcaatatataggtgcctagctaatcgcattcgcaa\n\
+gcagtattcaagcttgtaaaccagtataataattacagaggctctatgaaacccaacttt\n\
+ccagctaaaagtcccaattaaatggttatttcgtacttttaaagtcgcccgttctgttat\n\
+tacgcgaattgattctactccaaaattaaacacaaattatcaaccgtttcatttatattt\n\
+gtcaatgcagctgtttaaaataaggctctactaaattataattaagacacttattaccag\n\
+atttctctagttaagtttgaaccagctcgactaccgcgaaagatacattcccttctctat\n\
+ttttcagttcatctatgggtcagagaagcattgaatttattctattcaccctcgtcgttc\n\
+acagcgaatcgtcagtgtgatcagtgtatgagaaatatcctaaaccgtttagtcagacca\n\
+cacgcttagaacaagtggtctaaaaagactgccctggaaggagtaagaagtatacagctg\n\
+atccggtgtatccttcagtcatctgccctatactaattacacgacgcaaggaaaaatagg\n\
+tttattttctaggcaaacccttcataggtgactccgatgtgttacgaatcatgcttgaga\n\
+atgtgctatcgttaccgacggataataacgatctccaatgaaccaaatgtagaatgtcta\n\
+ttgattacccttttactattcgacttagagataggagatagaacctcagtgtactttttt\n\
+agccgaatgggaatctttgggaggtgaatggccataaggtcgtaaatccaaccctcttaa\n\
+agtcttccatattatatcgttgttcgtggaatcgataacagatttgttgacccatagtaa\n\
+atgtatactagtttatgttgtaagtgtagattgttttccgattgccgtccaaactttatg\n\
+tcgtaattgtagaccagtaaagttgaccaaggtaagtgcccagcgatcctgcgagatcga\n\
+tcgccaatttttccagtcactgtaagtgtaggtttagataaagccgtatgagttatatca\n\
+taagggcctcggaaagcagcttcgaaccaaagttcccttataatagtagtttaactataa\n\
+aagtatatactggtctgtcgccctttcacgatttgttttaccggtttatgaagcgttacg\n\
+tcattagagcggctccaatttaaggttaacggcttccatgtgtagttgtatacaaggata\n\
+acttaaagtatctgttcagcgagctagttaagttatcctcgatagaacacaactcagagg\n\
+tcccaagatcgggtttgcaacttgctaatttattctcaaggcaaattgggaattatcgat\n\
+acctgtataccataaggtcgctcgatgtgatgcttatgtcttctggtgatcctaccttag\n\
+ttagtgctgattaacggaacattaatgtttatcgttttgagatttagccaattctctgat\n\
+tctaactcaagatgccttatctgacgtgctatgcagcccctaagtattttacattgtaat\n\
+aggacacgctcctttaaaactcgccaaaaggtcgttgtggttctctactggttaactata\n\
+taatttacagctttgttgagctagttcctctttggtttaagtcctcaatattagttggtt\n\
+cgagcgataagttggctagttaccttagtcactatattagatccgaatgttatgcttcat\n\
+ctgaagaccgccaccctccaaaatttcttttaagactcacttattgcaaggtgtaggtga\n\
+attcggctcgtttctcaagtggtgtatctgtacacgagtttccatattttcatcaacagc\n\
+caccgcacacttatgtcactctaggtattaaaagtcgctctacaaggggacgcaattaag\n\
+aaacagacatgctagtcaaaaataaacatagcgaggcaccactaattcggccgcttatca\n\
+atgggatgctctgcgcgagacgcgccagagctcagtagttagttcggacatacatttact\n\
+tcagatgatcaattagttttctacaaatgcttactctaccccgaaaaaagtcaccagact\n\
+cttacgtctctttagtatccttccgtcttatataaggtcagtcccccgtttcggtaccct\n\
+ggaatttactaagaataatgaaacagcccccaaggacgtacgtttacaaatgatagacca\n\
+gatcgcctagcttattccgacgcatgttgcatagaattgaaccaacggaatgtgagagta\n\
+actagatgagccgaccacagcacccgtttgcgtcgcagaatacgcctgatagttcggcca\n\
+cgaaatcatatgtcctttgagtattaagtatttgtaatgatcaatcgagctcaagcaagc\n\
+ttacacttcctcggatattcagggaacttagtgcctttgaaagatacgttgatcaacgaa\n\
+aaattgataatggctcatatggaatgcctacctcatagtgctgaattaacacagcactgc\n\
+ggacctaacttttcgaggtttcaagttcacgtctcaaaacctaataggctggaatatgta\n\
+gggatcctcggtgaatttgtgattgggtttgttgtagtactgaccaagtgaatattcttt\n\
+ttttctaaaagcagatctgctgccgggcactacgaaggagatctctgtgtatcattattg\n\
+cttcttgacatgatgactcttaaatcactgtgggtgtgcaaaacgatagcacaacccaat\n\
+tcgatagtacatattgttgatacttcgcactaaaccgttcatatttaaaggttgtgctcc\n\
+ttccttcgttaaatactggtgacttggtcctatctactattagctagacctctggggaac\n\
+cacgcccccgtaaaacctgtgcaagagagggggtcatacatcttagacatcgcgcctcca\n\
+ccagggaagcattgggtgattgaccaggtgtgtaacaaatatgattattcttatactaat\n\
+attagcaaagatgcataatgatttgtattaaatgtataattgaattgataagggtctttt\n\
+agtcagtgatagagtagtataaggtagacattagaactcttaaccggacgcagatttttc\n\
+ggtcttagtaagccaattagtcgacaaaacaaggtaagagcggttactagtagtacctat\n\
+aatgcactgaatcttcggtcgaagtatagttctaatgctatgcagattgtgacggcgaca\n\
+aatgttcagacttatatcatgaaacaagctcttgtaagtattgacaaatgaaaagattga\n\
+atatttttaaatacaaaatgcgcctacttattaggggaattaaccagattgaaggccaat\n\
+cctcacatgtaatgagataatagacgataaatgaaattcttgtaatagttgaactgctac\n\
+gtgatgggtattatatatgattgagatcctccaattgccgacgtcttgtcttgatgccca\n\
+aaagattgtcaacgaggagctccctcgcgtacctgtcgtccgtatcataaacgacgcgac\n\
+atgtacagcactccgaagtataagcaataataatgcgggtaatccagactagatcttttc\n\
+ggactcaatgcggtttcacggtaaacatgattaataccggagagtagtcgagcttatcag\n\
+cgatgcaagcgaattcattgtgccaggagatacgttgcagataaaaccggcaacgtatgt\n\
+caacaagttttggcgatctcgttgtttgtattcgacgaggcgcgggaacttcaagaacta\n\
+tcgtatattcaagtccattaccttttagtttcagactggtggagctgactaaagttatat\n\
+catcattttgtacactggtttagttaacgataatttcagatttaacatgaccagacgata\n\
+atcgctgtatatccagttggaatgtggtttgccagaaaggttaacttataatcaagcctc\n\
+tcttcagtcttgattcgtcgtatcccatccattgcgctatacctcagtgtatttggagct\n\
+gtagttataccgtgtgctaagatcagtagacatgacgagagcaatattatctaccttaca\n\
+agcatcaacggacgtctagtcggaacaaaagactctaaaactcgaacttcaggttaatat\n\
+actatagttctgtattcagcagttattcttatattcgatattatcttgcctattggatgt\n\
+ctgactttagtatattaatcatagtatctgccatgtaaaggtgccagtactaaatctgtt\n\
+tcacagtgcgaattataaacggttacaaccattaaagacaacaagaccctatagctttat\n\
+ttgaattttgtcaatgcgcaacttggagctcgcgatacatcccaattagtctatagggtc\n\
+gggacgattctacggcatttctggttataatgacaacatggattgtggcccgagaatcgc\n\
+tctttcattaattaagcaatcattacagtcttataagcgctacttccgagtggtagcagg\n\
+taactcgatataaggtcgcatgagccgaatagcttaaaaaacaggccaccgaacattgat\n\
+agagaataccgaccacagcgcaacctttgattactttcattaaattgtacggctcactcg\n\
+acatcaagcttaagattgcgataatgtgaactcaaatggatcagtactgaagaaccgtaa\n\
+cccacttcgcagaaagcgtacccagagaagatacgctgttacaatatacagggtgaaatt\n\
+attgcctgttcttcgtaaccatttcgccaaacttggttagaaatgatagccattcatgat\n\
+agaaataagctgaatgataccagtatctttaactatgtagtcagggggaagataacgatg\n\
+gtccatgtatgtttctgatatgtgacagtattggccgcgtaatttgctaacgaagctact\n\
+taatgcctttgagcttcatatagatttctttaatcaaaatcggcaaaaagatagtatgag\n\
+ctataatatatgctagtagagaactctggaccatcatctatatgaatactgattcgagcg\n\
+tgcaattactttagcctgcgtactactgactctacaaaacactctgagataagtttgtag\n\
+tcagtaagtcgctctctataaaccttttggatgaccattgtacagccacttatagatccc\n\
+aataaatagcacaggagacagagtttttcaatgctcgatcatttgccgatagtattttcg\n\
+tctaacctcagggcacctattatttgatacctaacctaacggccctttcacaatggagaa\n\
+atatatgacatcgggacaaacacaaatggtgggtggccaggagatatgacatggtggcgt\n\
+ctctaagaaacacggactccctctaggcaaactcacgtaaccaattttaatgtcaaacaa\n\
+aacgctcgaaaagattttgccgtgtaatgacctggtacattgactggtcaggaatacatc\n\
+actgtagttgccgtagtgtcctgttggtgttccatcaagacacatcgtataacgcaattt\n\
+acgacggacatcagatcaagttatacagattatttaagtatcacgtgtgcattgggacat\n\
+aagggatctcacacatgccttggaacatttttgctttgtgccgctttttcgctgcactac\n\
+caatccttacttaccagtatattcaaaggtcgttaacagaatgagaaaggttagggctct\n\
+aagttatcgtcgattgggatagacgagacatttgcgagcgccctccacggatacgaatct\n\
+cccatatcaatgtgaactggatgctatgcagtttagttcttacgtctcctagtggtaaaa\n\
+atcaaagtagcactcgcatagcagttattcagaacctaatacacaaaaccgtcaaacatt\n\
+ttctaattctaggtatgggccgatcataggagctaaggtgaaactcataaatgttttgtt\n\
+agatctagcatcctaaaaagatgcatatactgagtagctggcgtgcattctctcaattgt\n\
+atcctttttaactgaactagtcggtcccatttcgtgactgagatctattaaccgataaga\n\
+ttaataacactcgcattcgtatcagctcagagtgaagtttttcaataatttgactgatat\n\
+attaacttctaaaataaccctttaagcctcggatccgtttcccaatcacatcaaaaattc\n\
+ttattccaactatctacggattaacaacgtgcatggggatcgtagtaagaacttgttccg\n\
+atcactttgagtatatcaagttgacggcccggttattattgaatagaaacattcacctgc\n\
+taaattaaataccgcacatcggatacccgatttcagagggccgtcttactaagggcaggc\n\
+tttgttcggtttaactgagatgttcattattttacagtatgcttcaactaatatgtaacg\n\
+aaggacagtggatctgtctccatagtagatcttcagtcgtgaatttcataccgctcctat\n\
+ttaagttcgcgttcgagttgttgatcatggcacgtgaaagcaacccctagtattctagac\n\
+gaaaattttttctagttcatctgataatttgccaattcaaaaacaaccgctggtttcccg\n\
+gcgcattctctaaaatggaagtcgaacctagagccattatttgtcggtaacccatgagtt\n\
+ccttcttttcagaagttaatacactgtggtcctatacagaggaaaaacagcggttatata\n\
+cgatcgtggcataacaacattggatcaagatagcaatttggctacctattctaattctca\n\
+ctagattcggtattccactacaatatcggcagattaggattggatgaataatcggtgttt\n\
+aagtccggttgcgtctccaatctcctaatttttattaatattgatcttggtgacctattg\n\
+taaataaaaacttcaagactttgaataacggtgaaaagatagaagactcatttgaaaatg\n\
+gatcatccacagatccaaacattagcaagacactaatccccaactagctattctgatcgc\n\
+gatcgtgctgcagtactcctgtcacaatagtctgttcatgatctaattctttttgggctt\n\
+tgttcgatggtgattcagaatctttatccggtcgcttccctgtagctactttgtggggat\n\
+attgcccggggattatagggttgagatcgtttcctaaaagtatttaaaccaagtagactt\n\
+caactaaactacatcagaacatcgtgaagacaccatacgcggtacctttatttaccgata\n\
+acatttcttcaagaaataccggtaagcagcataatgaccctaaacagctcggggtatcgt\n\
+cgtagttttaaattttatttaggttactgctcaaggaataaaaactaactatttaattta\n\
+taataatattacaaggctcacactgattagatttgtctataagacttcgcgatcccccat\n\
+taccggattgtcttaagaataaactagataaaccatgcattttctagataaggcctttag\n\
+tctaattagatacaaaaaacacgatagttgcatccttaatttattgtgtcaaacctggaa\n\
+ccttttaattacccgcaaatcactttatgtcgagactacctctgaaatttattatctacc\n\
+taccgcatgaggacttgaaccatcttgtaggagttatgtttattagctaagattcgttta\n\
+tcctgtagcggtccatgtatattcaacaagcaaaaagcactcagaattgtttttagttga\n\
+gtcaagactgatatataaataagtttccctagttttttcgtggtgggacgatattgaatt\n\
+gaatcttaaccgaagagtttcccactctgtcgcacaataatacacgccaatatttccagc\n\
+cctgcttatgccttaatcggttactcaatctcccattgaagttcattttgatctgcatag\n\
+aagtttcgggcccagccttttttctgccaccttcctccaagctctgtagacgcactctaa\n\
+gattgatgctcacatgtattaattctacattaacataaatatataagtcatgcatcttcg\n\
+agtaaaatatctggttctccaacatgtcctggcacgtatcgttataatgcccatacatgt\n\
+agtattaaaatgattgggttaactggatattaagatcatcgaaattgtaaagtcaaatta\n\
+acaatactgtctcaagaccgtgtattcctcgtgctcggaagggctattacgcttacttcc\n\
+gttttggtatcttaatatgactttcaaaaattaagttgcagtgagtcctacctgcgtgca\n\
+tcggttagcaagagtataaaagttgtttaaacgaactacttgctttacaataccggtcgt\n\
+atatatcgccgtgaatccagaagattgtcttctttggattatcaaccgagatcctgtgga\n\
+ccgatgttttgggaccttcacagaggactccaggtagagctcgcttttgcattaatctaa\n\
+gaattgtacctctctaaaagatctaaaacagtgaatgtgtatttcatggaaaaacacaga\n\
+gaaacgtaaattactttaggccgaaaggcacatgagttattatacatatacgagatggtg\n\
+gtatacatcgaattcggggcatacactatagttgcattgtatttagctgctttaaataat\n\
+atgatattaccttccttacataagacattaccggcataccctggttttcaacttgtgggg\n\
+ctttttgacgatcgcactctcatttgatccgagtagggcggtgacccctgcttttcaaat\n\
+acaaaaatttcgctatgaaggtaatagattacttttcgctgttatgatagaaacggtaaa\n\
+tttaaaattgaaacttctagaaaagtaaagtaacgagaaatgattttgtgaataatgcgg\n\
+tcatgattgcgcaagtaagaaaaaaaggcaaaaggatgcgcggaatagaaacttatcagt\n\
+cacgggtatcttgatttcattcttcttgtcaattgccgacataggatgaaatcagattcc\n\
+aatgcaatacacagtaacccccacccttgattgtaatgtcgatttgaagttgtacgcgtc\n\
+gacgaagtggatagtatacgggccttttgtacggtgcgatcaactatgaatctcggcgag\n\
+ttagatggtcgtacaatctcacacatagaggtcacttgcctgtaatgacgaattttcggc\n\
+taggtactcgaactttattagaagtaaaaatgtgggcaaaagaaggattccattttacaa\n\
+gacgattacaatgagttacatgtctctcaacgtagtctttccctagtagtctttgaacta\n\
+tttaggtactccagaaaattttagcaaagggtttctgtgtgaatccgccattcatgttta\n\
+tgatggaacaataagaataacgccctcgtatgttatcgacagtgaagtcagcagttcggc\n\
+caaaaacatattcaatttagtacagatccccagaagttaagctaagtgctctaaaatggc\n\
+ctaaacggttatcaaagtaggtctaattactatactaacgggtgcatcgtaataactgct\n\
+gtcgatgcaacactatatgatagtgtcgttttgctatatatgtacaatgtgacaaagaag\n\
+ccttagcgattcttgcaaacttaggacttcggattctcaatcttaaatgtccgaaaacgc\n\
+aaagattcaaaaatttaatctatgagcagatatgcctgatggtgactacgcgtatgttaa\n\
+ggctaaatgttgacaaccgcacacataatcgaactattgatagtcgggagcataaccagg\n\
+tgaacgtactttgttcacgacatttattgacatgttctaaatacgtctcaaaatcacggc\n\
+gcactagaaaacgcaatcaaatcattgtcctggtttaagggccgtaatgccggtagtgtc\n\
+aaacttcatgagaactttagctggcttttggccagtatttagggaccaagagcactagcc\n\
+ttaagctgaatattttgccatttatctactgttataactttaaaacttggtggcaccaga\n\
+cttgtcgatacacacgcatcaatctgtaacgtaaaaggtttactaagaacaagcgtagga\n\
+attgagtttatattatatttaaactaaaagatgatattagcttctgagggcgatagggct\n\
+ccaaatcataaagaggaatatattattacacgattagaaacccacaacatacctcgaatc\n\
+gcccaaaagtttgacgaaacttggcagtactccacatctcagtaatacagttgggagagt\n\
+ctcaaatgttgttttattactcaatgaaccaccctcataatttcactgctgttccattaa\n\
+atttgcaaacgatcatttgctttgaagaaacgtaaaatcgacaaaattacagataagtag\n\
+atgcataataaaaaaaactgctcgctataacacgatcatcgtgcattcttacttaggagc\n\
+atcacccgcacaataacgtaccttaaactacaacactattagaccgagtactgtaattca\n\
+cgaaagctcaagctcgcattgtaaagaacttgctctctcgtaaaatgtgataatagtttg\n\
+cggagaggattcaattattttccattgcacctactccactagattcgataaaagaaggtg\n\
+gtcctcccttaaaaagaaatgttaagtaacatcggaaccataagcaaagcatgtaagtga\n\
+accgtcatccttccctaagaaacataaaggtttttaataatgtcgactgtgaactataac\n\
+tgcatcctttcctgacctactccggttccttgttgttatttctgaacgagaccagtagat\n\
+aaacaatgtaaaccacagtgggtaccaatggtgcatgtgacgctaccgttgttttaagtg\n\
+cccgtacaaacataagaagtcataatcttacttgaaattaattttgccttttattttttt\n\
+tcaggctcgaaattaatgatttgttttttttgaccttctagttacgctaatatgcggtcg\n\
+cctgtggtttctattgagtcctataacgggatgggatctaatacgtttggttactagtaa\n\
+acaaggtataaatttgataccggagtatcaactgtataacatcaagctttatgactcata\n\
+cgcgaagtaatgacacaaggctttcaggagatcgcgagtacagagccactaaggggtgta\n\
+ttacgatagtgacaccaccgagcgcactcactccccaagtagatttatgatcctacgcta\n\
+agtattagatatataaccaaagaggttctagtcagtgcaactcttagaataataattagc\n\
+cggttttgcctttttaggcctaatgcaatattcagctagcccttatgtatctcgcgttcc\n\
+acagcaccactcatggcacgcgtttaaactaatcaaatataatctatgaatgttatgcca\n\
+gtacttgaataaatcaggttttttataagtccttgcatactctcgttatatactgttaga\n\
+gtcttaccccatagaaattctttcatctgcaaacttagaagaattctcagctacggggag\n\
+cataaagtccccaggatgttgacaaatacaacaaatgtggcttatacaaacactccatat\n\
+gaaaatcgaaccctcgtggtagttttagccgaaccttgtacggataaatccctccatttt\n\
+ccaatagcagatacctatcctactacctcgtggtattaaattaaagcttgaaatatagag\n\
+ctgcatagcttatccaattcccaagcacgagtctaccgtcgtaaccacgatttgatttac\n\
+agacgctagagcaaacccatctttaaacatataagtaaaaattaaagggtgagtgcgtac\n\
+gtgtttactagcaacttcgcttattaagacaattgtttataagccataattaaaaacata\n\
+tgttcaacaggttcattgatatttgtaattgcacaggtttttaataaggatctacgtaag\n\
+tataatgaacaaactttttaccagagttatattctgtactttgaaaatgctcctctaccg\n\
+ccttagagactttcaattagattttttgcagttaatctatgcgtaagtgaaccatgcaag\n\
+ggatgcgattcaaccgcctcgtgctaaccctatcgtctgtctcataactgtaggtctaat\n\
+ataattttcagttttcgaacacataaccctttgaaaatctgctatttaatgtctcacctg\n\
+catgcactatcttctatactgctcagaacggctatacgtcactatgctccaagtgacgat\n\
+ttaaacgaagcaaggaataataggtttattttagtgcaaaacaattaagtgcggactacg\n\
+tgctctttacaataagccttgtgattgggctataggttaagtcccatattaacgatctcc\n\
+aatgtacaaaatcgacaatcgctttgcattacccggttactagtcgaattacagatagct\n\
+gttagatactcactctaattttggacaacaatcccaatcttggggtcgtctatcgcctga\n\
+agctcgtaaatccttccatcttaaacgattacatattatagacttgttcggggtagagat\n\
+atcacagttgtgcaaacattgtaaatcgatactagtttatgttggtagtctagttgcttt\n\
+taccattccccgaaaaacttgatctactatttcgacaacagtaaacttgaactaggtaag\n\
+tgaaaacagagaatgcctcatagtgccactatttgtccactatatgtaagtgtagcttta\n\
+cataatccactatgactgagatcattacggcctaggaaagcagcgtagaaaaaaagggcc\n\
+cggatattacgactgtaactataaaactagttactggtagcgcgccatgtatagatttgt\n\
+tttaccggttgtggttgcgttaacgaatttcagccgcgaaaattgatccgttaaccagtc\n\
+catctcgacttctataaaacgataaagtaaagttgatgttcagcctccttcttatggttg\n\
+catcgagagtacactactcagtgggaaatagatcggggttcctacttcagattgtattat\n\
+ctaggcaattgccgattgtgccatacctggataaaataagctacctacatgtgatgctta\n\
+tctattatcgtcatactaccttagggtgtcctgttgaacgctacattaatctttagccgt\n\
+ttgagatgttccaatggataggagtctaacgcatgatgaagtttaggaaggcagagcatc\n\
+ccactaagtatgtgacagtgtatttcgaaacgagacgttataaatagaaaaaaggtcctt\n\
+ctggttctattctgctgaactattgaatggaaagattggttgacctacgtactatttgct\n\
+tgaagtcatcaatttgacggggtgagagacatatggtgcatactttacggactctatatt\n\
+ttagatcagaagcttagcagtcttctctacaccccctcacgacataattgcttttaagaa\n\
+tctatgtttgattcctctacgggaattcggatccgttcgcatgtgcggtttatctaaacc\n\
+aggggacatatgttcagctaaagcatacgaacactttgctaactagacgtatgtatagta\n\
+gctataaatcccgacgatatttacaaaaagaaatgagactcaaatatatacatagcgacc\n\
+ctacacttattcgcaccctgatctaggcgatcctagcacccacacccgaaagtgagcact\n\
+agtgtcttccgtattaaatttactgcagttgagattttagttgtctactaaggattactc\n\
+taacccgtaataaggatcaagactcggtactagctttactatcattccctatgtgttttc\n\
+ctaactcacaagggtacgtaccagcctatgtaattacaataatgataaagacacaaagga\n\
+agtaactttacaaatgagtctccagttacactagcttagtccctcccatcttgctttgaa\n\
+gtctaaatacgcaatctctgaggatatacagcagaagaacactcataacgttggagtcca\n\
+agaattagactcatagggcccccaacatttaatatgtactgtgagtttgaaggtgttcta\n\
+ttgttaattcctgctcttgatacatgacacgtactccgtgtttaaggcttcggactgact\n\
+ttctttcataagttgagcaacgaaaatttcagaatcgataagttggattcactaactaat\n\
+acggctgattgaaaactccactccggacctatatggtcgacctttatacgtaaccgatat\n\
+aaaacttataggctggtatatcgagccttcctagcgcaatttcggatggggtttcttcta\n\
+ctactcaacaacggaatagtctttgtttagtaaaccagagctcaggacgcccaatacgta\n\
+ggagagcgctgtggagcatgtgtcattatggactggagcactcttaaatcactctgcgtg\n\
+tgctaaacgatagatcataacatgtcctgagtaaattttcttgatacgtcgcaatatacc\n\
+gttattagttaaacgttctcatccgtcatgcgtgaaatacggctgtcgtgctcagatata\n\
+ctattagcgactcatctcgcctaacacgcacacgtataaactcggaatgactgccgctct\n\
+tacatattagaaatacagactacaccacggaagcattgggtcattctcaaccgctgtata\n\
+aaagatgattagtcttataataagattaccaaagaggcagaatcatgggtagtaaatcta\n\
+ttattcaagtgattaccgtcgtgtaggcagggagtgaggacgagatggtactcaggacaa\n\
+atattaaccggacgaagtggtttacgtcgtactttcactattagtagtaaatacaaggta\n\
+acaccggggaatagtactaaatataatgatatctatcttcgggagaacgagtcgtctatt\n\
+gctttgaacattctcaaggcgtaaaatgtgctgacttatagcatgatacaaccgattgtt\n\
+acttttgtctattcaaaagattgaatagttttttatacaaaagccgcatacttatgacgg\n\
+ctagtatacagtttcatcccctagcatcaatgctatggacagtattgaacttataggaaa\n\
+ttcttctaatagggcaaatccgtcgtgatgcctattttttttcagtcacatcctcaaatg\n\
+gcactagtattgtcgggatcccattaacaggctcaaccacgagctcacgcgaggacatgt\n\
+agtccgtatctttaacgaagcgacagcgacagaactcccatggataaccaattataaggc\n\
+ccgtaatcctctagacatcgtttaccaataaatccgctttctccgtaatcatgttgaata\n\
+ccccagagtagtccagatgataaccgatgaaacacaagtctttctcaatgcacttacggt\n\
+gaacttattaccgccaacgtagctcatcaaggttgcgacatctagttgtgtgtttgcgac\n\
+gagcccagcgaacttcatcaactttcgtatattcaacgccttgtaattttactttaagac\n\
+gcctggtgatgtagattcttagataatcagtttgttatcggctgtactttaccataattt\n\
+cacaggtttcaggtcaagaagattatagctgtatatacagttccatgctcggtgcacaga\n\
+aacgtgatcggataataatcaatcgcttatgtcgtctttaggcgtatccaatacatgccc\n\
+cgataccgcagtgtatttcgacatgtaggtataccgtcgcatttgagctcgagtcaggac\n\
+gtcagctagattagattccttaatagaatataccgacctctagtccgaactaaactatag\n\
+ataacgccaacttcaggttaattgtctagtcgtctgtttgcagatgggattcttagatga\n\
+gtgagtatcggccatattggttcgagcactttagtttttgatgcataggatatgcaatgt\n\
+atagctgaaagtactttatctgtttcaaactcacattgattaaaccggtaaacctttaaa\n\
+gactacaagaaaatattcagtgagggcaattttgtcaatcacaatcttccagctagagat\n\
+acttcacaatttgtcttgaggctacgcaacattagacggattttcgcgttttattgaaat\n\
+aatcgaggggcccaagagtatccatagttcattttgtaagatttctttacaggcttatta\n\
+cagcttcttcagactcctacatgcttacgagttatatgctagcatgtgaacaatagatta\n\
+atatacaggaaaacgtacattgagagagatgaccctacacagcgcaaccgttgagtactt\n\
+tcattaaagggtaacgctctcgagacagcatccttaagatggccttattgtcaaatcatt\n\
+tgcagaagtacgcaagatccctaaccaacgtagaagaatccctacaaacacatgagacgc\n\
+ggtgaaaatagacagggtgttagtattcaatcttcggagtatcaatttcgccaatcttgg\n\
+tgagaaagcataccctttcttcagagaaagaagatcaatcataacactatctttaacgag\n\
+gtacgcacgcgcatcattacctgcctccatggatctttaggatagcggaaagtattggca\n\
+gcgtattgtgatttcgttcctactttatcaatttcacattcatatacatgtcttttatca\n\
+aaatcgccaataagataggatgagctatattagatgctagtagagttcgcgccaacatca\n\
+tcgataggaatactcaggacagcgtgataggacttttcaatccctaatactctctataat\n\
+tataactctctcttaagtttggaggcagtaacgcgctctatataatcagtttgctgcacc\n\
+attcttcagcctctgatacatacaaataaattccacagcagtaagagggtttaattgaga\n\
+catcttgggaacttaggattttactctaacatcaccgaaacgattattggataccgtacc\n\
+taaacgaactttctcaaggcagtaatataggacatccgcaataacacaaatgctgcctcc\n\
+ccaggagttatgtcttcctggaggctatatcttacacccactcactataggcaaactaaa\n\
+gtttaaatgttgattgtctaaaaaaaagatagataagagttggccggcgtagcacatgcg\n\
+aaagtgaatcgtaagctataattctctggacttgaagttctgtcctgttcctctgcaaga\n\
+aacaaacttcctttaaagctatttacgacgcacatctcagcaagttataaacatgttgga\n\
+agtttctagtcggaattcccaaagaacggatctatctaatgcattcctacatttttcctg\n\
+tctgccgatggtgccatcctattcaaagaatttcttaaaagtagattaaatgggactttt\n\
+aacaatgagtaaccttacgcctctaagggttcctcgagtgccatacaccagtcaggtccg\n\
+agccacatacacggagaacattctaacatagcattctcaactcgatcatttgcaggttac\n\
+ttctttcctatcctagtgctaaaaatcatacttgcaatcccatagcacggattaagaacc\n\
+taagaaacaattcagtaaaacatgttcgaattcttggtatgggaacatcattgcagctat\n\
+ggtctaacgcattaatgtttgggtacatcttccatcatataaacaggaagagtctgacga\n\
+cagggagtgcttgcgatcatgtctatcattgtgaaatcaaattgtagctcacatgtcgtc\n\
+tatgagagcgtgtatccgataagatttagaaaaatagaagtcgtataagatctcactgaa\n\
+cttttgaatgaatgtgaagcatatatgatctgctttaataaaactttatccataggatac\n\
+gtttccaaatcaattcaataattattagtcaaaatagataaggatgaacaacctgaaggc\n\
+cgatcggacgtagaaagtggtcccatcactttgagttgatattgttgaaccacacgttat\n\
+tatggttttcaaacagtctcaggatattgtatatacagataatccgataccagttgtctg\n\
+acgcccctcttacgtaccccaccctttgtgacgtttaaagcagttgttcagtattttaaa\n\
+ctaggcggcaactaatttggaaagaagcacagtggatatgtctaaattcttgttattcag\n\
+gcctgaatttaatacaccgcatagttaacttcgcggtagagttgttcatcatgcctcctc\n\
+taagctaccacttctatgatacaccaatagttgttctacggaatctgataattggccaag\n\
+tcataaacttccgctgcgttcaacccccttgctcgaatatccaactcgaaaagacagcct\n\
+tttggtgtccggaacaaatcagttacttcttttctgatgttaattctctgtggtcagata\n\
+cagaccaaaaactccgcggatttaccatcctccaagaacaaatttgcatcaacatagcat\n\
+tttggctacatattctaagtctcaatagtttaggttttcaactacattatcccaacatta\n\
+ggattggaggaataatagctgggtaagtccccttgcgtctacaatcgactattttttatg\n\
+aatatgcttctgccgcacctatggttattaaaaaagtcatgactttgaagaaccctgaaa\n\
+agatagatgaatcaggtgtaatggcagcagccaaagagcatataattagcaacactctaa\n\
+gaacattatagatatgatgatagcgatcgtcatgatgttatccggtcacaatagtagctt\n\
+catcagctaattcgttttgccagtggtgacttgcgctggaagaatcgttatacggtccct\n\
+tccctcttgatacggtgggggcttattcaaccgcgtggattgggttgtcatacttgcatt\n\
+aaacgatgtaaaccatctagtagtcaactatactaaatcacaaaatagtgatcaatacat\n\
+acccgcttcatggttttaaccatttaattgattaaagatattccgctaagaaccattatc\n\
+tacctaaactgatcgccgtatcctagtagtttgaaatttgatgtaccgtaatgatcaacg\n\
+aagtaaaacgttatattgtatgtagaataataggtcttggagctaaatgatgtgattggt\n\
+agtgaagacttacccttacaactttaccggtttctcggaagaatatactagagaatcaat\n\
+gcatgggctacataagcactttagtctaatgagataaaaaatacacgagtcttccatcat\n\
+gaattttttgtcgaaaaactcgaacctggtaatttaaaccatatatctttatgtcgtcaa\n\
+taactctcatatgttttatataacttcccaatcacgacttgtaactgcttgttcgactga\n\
+gctgtttgagctatgaggccgggatccggttgagctacatctatttgctacaagaaaaat\n\
+gaaagcacatttgttgggagttctggctacactcatagagaaataagtggcccgagtggg\n\
+tgcggcctgcctccatattcaagtgtatcttaaaccaagtggttccaacgctcgcgctaa\n\
+agaattaaagcctttatttcctccacggagtagcccgtaatccggttcgaaagagaccat\n\
+tgaagttaattttcatatccagtgaagtttaggcacaagcatgtgttctgccacatgcct\n\
+caaagcgctcttcaaccaagatatgattcatcctaacttcgatgaatgcgtctgtaacat\n\
+aaatatagaaggaatgattcggcgagttaattttcgccttctccaacatggcatccctac\n\
+gttcgttataaggaccatacatgtaggttttaaaggtttgcggttaatcgatatttacat\n\
+catagaaattctatagtcaaatttacaagactctagatactcactcgttgcagccggcta\n\
+ggaagcgctttgtaccttacttcccttttcgttgcgtaatatgaatttcatatagtaagt\n\
+tcaaggcactcatacctccgtgaagagggtagatagactattaaagttgtttaatagtac\n\
+gtattgatggaaatgacccgtaggagatttaccactcaatccacaagattcgctgctgtg\n\
+cattatcaaaacagtgcatgtcgaaacatgggttgggtccttcaaacacgaatccaggta\n\
+gagatacctttgcaattttt\n";
+
+dnaInput = dnaInput + dnaInput + dnaInput;
+
+var ilen, clen,
+ seqs = [
+ /agggtaaa|tttaccct/ig,
+ /[cgt]gggtaaa|tttaccc[acg]/ig,
+ /a[act]ggtaaa|tttacc[agt]t/ig,
+ /ag[act]gtaaa|tttac[agt]ct/ig,
+ /agg[act]taaa|ttta[agt]cct/ig,
+ /aggg[acg]aaa|ttt[cgt]ccct/ig,
+ /agggt[cgt]aa|tt[acg]accct/ig,
+ /agggta[cgt]a|t[acg]taccct/ig,
+ /agggtaa[cgt]|[acg]ttaccct/ig],
+ subs = {
+ B: '(c|g|t)', D: '(a|g|t)', H: '(a|c|t)', K: '(g|t)',
+ M: '(a|c)', N: '(a|c|g|t)', R: '(a|g)', S: '(c|t)',
+ V: '(a|c|g)', W: '(a|t)', Y: '(c|t)' }
+
+ilen = dnaInput.length;
+
+// There is no in-place substitution
+dnaInput = dnaInput.replace(/>.*\n|\n/g,"")
+clen = dnaInput.length
+
+var dnaOutputString;
+
+for(i in seqs)
+ dnaOutputString += seqs[i].source + " " + (dnaInput.match(seqs[i]) || []).length + "\n";
+ // match returns null if no matches, so replace with empty
+
+for(k in subs)
+ dnaInput = dnaInput.replace(k, subs[k]) // FIXME: Would like this to be a global substitution in a future version of SunSpider.
+ // search string, replacement string, flags
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/string-base64.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/string-base64.js
new file mode 100644
index 000000000..dfc949f70
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/string-base64.js
@@ -0,0 +1,135 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla XML-RPC Client component.
+ *
+ * The Initial Developer of the Original Code is
+ * Digital Creations 2, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 2000
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Martijn Pieters <mj@digicool.com> (original author)
+ * Samuel Sieb <samuel@sieb.net>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+// From: http://lxr.mozilla.org/mozilla/source/extensions/xml-rpc/src/nsXmlRpcClient.js#956
+
+/* Convert data (an array of integers) to a Base64 string. */
+var toBase64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+var base64Pad = '=';
+
+function toBase64(data) {
+ var result = '';
+ var length = data.length;
+ var i;
+ // Convert every three bytes to 4 ascii characters.
+ for (i = 0; i < (length - 2); i += 3) {
+ result += toBase64Table[data.charCodeAt(i) >> 2];
+ result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i+1) >> 4)];
+ result += toBase64Table[((data.charCodeAt(i+1) & 0x0f) << 2) + (data.charCodeAt(i+2) >> 6)];
+ result += toBase64Table[data.charCodeAt(i+2) & 0x3f];
+ }
+
+ // Convert the remaining 1 or 2 bytes, pad out to 4 characters.
+ if (length%3) {
+ i = length - (length%3);
+ result += toBase64Table[data.charCodeAt(i) >> 2];
+ if ((length%3) == 2) {
+ result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i+1) >> 4)];
+ result += toBase64Table[(data.charCodeAt(i+1) & 0x0f) << 2];
+ result += base64Pad;
+ } else {
+ result += toBase64Table[(data.charCodeAt(i) & 0x03) << 4];
+ result += base64Pad + base64Pad;
+ }
+ }
+
+ return result;
+}
+
+/* Convert Base64 data to a string */
+var toBinaryTable = [
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
+ 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1,
+ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,
+ 15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1,
+ -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
+ 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1
+];
+
+function base64ToString(data) {
+ var result = '';
+ var leftbits = 0; // number of bits decoded, but yet to be appended
+ var leftdata = 0; // bits decoded, but yet to be appended
+
+ // Convert one by one.
+ for (var i = 0; i < data.length; i++) {
+ var c = toBinaryTable[data.charCodeAt(i) & 0x7f];
+ var padding = (data.charCodeAt(i) == base64Pad.charCodeAt(0));
+ // Skip illegal characters and whitespace
+ if (c == -1) continue;
+
+ // Collect data into leftdata, update bitcount
+ leftdata = (leftdata << 6) | c;
+ leftbits += 6;
+
+ // If we have 8 or more bits, append 8 bits to the result
+ if (leftbits >= 8) {
+ leftbits -= 8;
+ // Append if not padding.
+ if (!padding)
+ result += String.fromCharCode((leftdata >> leftbits) & 0xff);
+ leftdata &= (1 << leftbits) - 1;
+ }
+ }
+
+ // If there are any bits left, the base64 string was corrupted
+ if (leftbits)
+ throw Components.Exception('Corrupted base64 string');
+
+ return result;
+}
+
+var str = "";
+
+for ( var i = 0; i < 8192; i++ )
+ str += String.fromCharCode( (25 * Math.random()) + 97 );
+
+for ( var i = 8192; i <= 16384; i *= 2 ) {
+
+ var base64;
+
+ base64 = toBase64(str);
+ base64ToString(base64);
+
+ // Double the string
+ str += str;
+}
+
+toBinaryTable = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/string-fasta.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/string-fasta.js
new file mode 100644
index 000000000..14a81f392
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/string-fasta.js
@@ -0,0 +1,85 @@
+// The Great Computer Language Shootout
+// http://shootout.alioth.debian.org
+//
+// Contributed by Ian Osgood
+
+var last = 42, A = 3877, C = 29573, M = 139968;
+
+function rand(max) {
+ last = (last * A + C) % M;
+ return max * last / M;
+}
+
+var ALU =
+ "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" +
+ "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" +
+ "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" +
+ "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" +
+ "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" +
+ "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" +
+ "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA";
+
+var IUB = {
+ a:0.27, c:0.12, g:0.12, t:0.27,
+ B:0.02, D:0.02, H:0.02, K:0.02,
+ M:0.02, N:0.02, R:0.02, S:0.02,
+ V:0.02, W:0.02, Y:0.02
+}
+
+var HomoSap = {
+ a: 0.3029549426680,
+ c: 0.1979883004921,
+ g: 0.1975473066391,
+ t: 0.3015094502008
+}
+
+function makeCumulative(table) {
+ var last = null;
+ for (var c in table) {
+ if (last) table[c] += table[last];
+ last = c;
+ }
+}
+
+function fastaRepeat(n, seq) {
+ var seqi = 0, lenOut = 60;
+ while (n>0) {
+ if (n<lenOut) lenOut = n;
+ if (seqi + lenOut < seq.length) {
+ ret = seq.substring(seqi, seqi+lenOut);
+ seqi += lenOut;
+ } else {
+ var s = seq.substring(seqi);
+ seqi = lenOut - s.length;
+ ret = s + seq.substring(0, seqi);
+ }
+ n -= lenOut;
+ }
+}
+
+function fastaRandom(n, table) {
+ var line = new Array(60);
+ makeCumulative(table);
+ while (n>0) {
+ if (n<line.length) line = new Array(n);
+ for (var i=0; i<line.length; i++) {
+ var r = rand(1);
+ for (var c in table) {
+ if (r < table[c]) {
+ line[i] = c;
+ break;
+ }
+ }
+ }
+ ret = line.join('');
+ n -= line.length;
+ }
+}
+
+var ret;
+
+var count = 7;
+ret = fastaRepeat(2*count*100000, ALU);
+ret = fastaRandom(3*count*1000, IUB);
+ret = fastaRandom(5*count*1000, HomoSap);
+
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/string-tagcloud.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/string-tagcloud.js
new file mode 100644
index 000000000..d3e5a1fb1
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/string-tagcloud.js
@@ -0,0 +1,265 @@
+
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ Portions from:
+ json.js
+ 2007-10-10
+
+ Public Domain
+*/
+
+// This test parses a JSON string giving tag names and popularity, and
+// generates html markup for a "tagcloud" view.
+
+if (!Object.prototype.toJSONString) {
+
+ Array.prototype.toJSONString = function (w) {
+ var a = [], // The array holding the partial texts.
+ i, // Loop counter.
+ l = this.length,
+ v; // The value to be stringified.
+
+ for (i = 0; i < l; i += 1) {
+ v = this[i];
+ switch (typeof v) {
+ case 'object':
+
+ if (v && typeof v.toJSONString === 'function') {
+ a.push(v.toJSONString(w));
+ } else {
+ a.push('null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(v.toJSONString());
+ break;
+ default:
+ a.push('null');
+ }
+ }
+
+ return '[' + a.join(',') + ']';
+ };
+
+
+ Boolean.prototype.toJSONString = function () {
+ return String(this);
+ };
+
+
+ Date.prototype.toJSONString = function () {
+
+ function f(n) {
+
+ return n < 10 ? '0' + n : n;
+ }
+
+ return '"' + this.getUTCFullYear() + '-' +
+ f(this.getUTCMonth() + 1) + '-' +
+ f(this.getUTCDate()) + 'T' +
+ f(this.getUTCHours()) + ':' +
+ f(this.getUTCMinutes()) + ':' +
+ f(this.getUTCSeconds()) + 'Z"';
+ };
+
+
+ Number.prototype.toJSONString = function () {
+
+ return isFinite(this) ? String(this) : 'null';
+ };
+
+
+ Object.prototype.toJSONString = function (w) {
+ var a = [], // The array holding the partial texts.
+ k, // The current key.
+ i, // The loop counter.
+ v; // The current value.
+
+ if (w) {
+ for (i = 0; i < w.length; i += 1) {
+ k = w[i];
+ if (typeof k === 'string') {
+ v = this[k];
+ switch (typeof v) {
+ case 'object':
+
+ if (v) {
+ if (typeof v.toJSONString === 'function') {
+ a.push(k.toJSONString() + ':' +
+ v.toJSONString(w));
+ }
+ } else {
+ a.push(k.toJSONString() + ':null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(k.toJSONString() + ':' + v.toJSONString());
+
+ }
+ }
+ }
+ } else {
+
+ for (k in this) {
+ if (typeof k === 'string' &&
+ Object.prototype.hasOwnProperty.apply(this, [k])) {
+ v = this[k];
+ switch (typeof v) {
+ case 'object':
+
+ if (v) {
+ if (typeof v.toJSONString === 'function') {
+ a.push(k.toJSONString() + ':' +
+ v.toJSONString());
+ }
+ } else {
+ a.push(k.toJSONString() + ':null');
+ }
+ break;
+
+ case 'string':
+ case 'number':
+ case 'boolean':
+ a.push(k.toJSONString() + ':' + v.toJSONString());
+
+ }
+ }
+ }
+ }
+
+ return '{' + a.join(',') + '}';
+ };
+
+
+ (function (s) {
+
+ var m = {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '"' : '\\"',
+ '\\': '\\\\'
+ };
+
+
+ s.parseJSON = function (filter) {
+ var j;
+
+ function walk(k, v) {
+ var i, n;
+ if (v && typeof v === 'object') {
+ for (i in v) {
+ if (Object.prototype.hasOwnProperty.apply(v, [i])) {
+ n = walk(i, v[i]);
+ if (n !== undefined) {
+ v[i] = n;
+ }
+ }
+ }
+ }
+ return filter(k, v);
+ }
+
+ if (/^[\],:{}\s]*$/.test(this.replace(/\\./g, '@').
+ replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g, ']').
+ replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
+
+ j = eval('(' + this + ')');
+
+ return typeof filter === 'function' ? walk('', j) : j;
+ }
+
+ throw new SyntaxError('parseJSON');
+ };
+
+
+ s.toJSONString = function () {
+
+ if (/["\\\x00-\x1f]/.test(this)) {
+ return '"' + this.replace(/[\x00-\x1f\\"]/g, function (a) {
+ var c = m[a];
+ if (c) {
+ return c;
+ }
+ c = a.charCodeAt();
+ return '\\u00' + Math.floor(c / 16).toString(16) +
+ (c % 16).toString(16);
+ }) + '"';
+ }
+ return '"' + this + '"';
+ };
+ })(String.prototype);
+}
+
+var tagInfoJSON = '[\n {\n \"tag\": "titillation",\n \"popularity\": 4294967296\n },\n {\n \"tag\": "foamless",\n \"popularity\": 1257718401\n },\n {\n \"tag\": "snarler",\n \"popularity\": 613166183\n },\n {\n \"tag\": "multangularness",\n \"popularity\": 368304452\n },\n {\n \"tag\": "Fesapo unventurous",\n \"popularity\": 248026512\n },\n {\n \"tag\": "esthesioblast",\n \"popularity\": 179556755\n },\n {\n \"tag\": "echeneidoid",\n \"popularity\": 136641578\n },\n {\n \"tag\": "embryoctony",\n \"popularity\": 107852576\n },\n {\n \"tag\": "undilatory",\n \"popularity\": 87537981\n },\n {\n \"tag\": "predisregard",\n \"popularity\": 72630939\n },\n {\n \"tag\": "allergenic",\n \"popularity\": 61345190\n },\n {\n \"tag\": "uncloudy",\n \"popularity\": 52580571\n },\n {\n \"tag\": "unforeseeably",\n \"popularity\": 45628109\n },\n {\n \"tag\": "sturniform",\n \"popularity\": 40013489\n },\n {\n \"tag\": "anesthetize",\n \"popularity\": 35409226\n },\n {\n \"tag\": "ametabolia",\n \"popularity\": 31583050\n },\n {\n \"tag\": "angiopathy",\n \"popularity\": 28366350\n },\n {\n \"tag\": "sultanaship",\n \"popularity\": 25634218\n },\n {\n \"tag\": "Frenchwise",\n \"popularity\": 23292461\n },\n {\n \"tag\": "cerviconasal",\n \"popularity\": 21268909\n },\n {\n \"tag\": "mercurialness",\n \"popularity\": 19507481\n },\n {\n \"tag\": "glutelin venditate",\n \"popularity\": 17964042\n },\n {\n \"tag\": "acred overblack",\n \"popularity\": 16603454\n },\n {\n \"tag\": "Atik",\n \"popularity\": 15397451\n },\n {\n \"tag\": "puncturer",\n \"popularity\": 14323077\n },\n {\n \"tag\": "pukatea",\n \"popularity\": 13361525\n },\n {\n \"tag\": "suberize",\n \"popularity\": 12497261\n },\n {\n \"tag\": "Godfrey",\n \"popularity\": 11717365\n },\n {\n \"tag\": "tetraptote",\n \"popularity\": 11011011\n },\n {\n \"tag\": "lucidness",\n \"popularity\": 10369074\n },\n {\n \"tag\": "tartness",\n \"popularity\": 9783815\n },\n {\n \"tag\": "axfetch",\n \"popularity\": 9248634\n },\n {\n \"tag\": "preacquittal",\n \"popularity\": 8757877\n },\n {\n \"tag\": "matris",\n \"popularity\": 8306671\n },\n {\n \"tag\": "hyphenate",\n \"popularity\": 7890801\n },\n {\n \"tag\": "semifabulous",\n \"popularity\": 7506606\n },\n {\n \"tag\": "oppressiveness",\n \"popularity\": 7150890\n },\n {\n \"tag\": "Protococcales",\n \"popularity\": 6820856\n },\n {\n \"tag\": "unpreventive",\n \"popularity\": 6514045\n },\n {\n \"tag\": "Cordia",\n \"popularity\": 6228289\n },\n {\n \"tag\": "Wakamba leaflike",\n \"popularity\": 5961668\n },\n {\n \"tag\": "dacryoma",\n \"popularity\": 5712480\n },\n {\n \"tag\": "inguinal",\n \"popularity\": 5479211\n },\n {\n \"tag\": "responseless",\n \"popularity\": 5260507\n },\n {\n \"tag\": "supplementarily",\n \"popularity\": 5055158\n },\n {\n \"tag\": "emu",\n \"popularity\": 4862079\n },\n {\n \"tag\": "countermeet",\n \"popularity\": 4680292\n },\n {\n \"tag\": "purrer",\n \"popularity\": 4508918\n },\n {\n \"tag\": "Corallinaceae",\n \"popularity\": 4347162\n },\n {\n \"tag\": "speculum",\n \"popularity\": 4194304\n },\n {\n \"tag\": "crimpness",\n \"popularity\": 4049690\n },\n {\n \"tag\": "antidetonant",\n \"popularity\": 3912727\n },\n {\n \"tag\": "topeewallah",\n \"popularity\": 3782875\n },\n {\n \"tag\": "fidalgo ballant",\n \"popularity\": 3659640\n },\n {\n \"tag\": "utriculose",\n \"popularity\": 3542572\n },\n {\n \"tag\": "testata",\n \"popularity\": 3431259\n },\n {\n \"tag\": "beltmaking",\n \"popularity\": 3325322\n },\n {\n \"tag\": "necrotype",\n \"popularity\": 3224413\n },\n {\n \"tag\": "ovistic",\n \"popularity\": 3128215\n },\n {\n \"tag\": "swindlership",\n \"popularity\": 3036431\n },\n {\n \"tag\": "augustal",\n \"popularity\": 2948792\n },\n {\n \"tag\": "Titoist",\n \"popularity\": 2865047\n },\n {\n \"tag\": "trisoctahedral",\n \"popularity\": 2784963\n },\n {\n \"tag\": "sequestrator",\n \"popularity\": 2708327\n },\n {\n \"tag\": "sideburns",\n \"popularity\": 2634939\n },\n {\n \"tag\": "paraphrasia",\n \"popularity\": 2564616\n },\n {\n \"tag\": "graminology unbay",\n \"popularity\": 2497185\n },\n {\n \"tag\": "acaridomatium emargination",\n \"popularity\": 2432487\n },\n {\n \"tag\": "roofward",\n \"popularity\": 2370373\n },\n {\n \"tag\": "lauder",\n \"popularity\": 2310705\n },\n {\n \"tag\": "subjunctive",\n \"popularity\": 2253354\n },\n {\n \"tag\": "subelongate",\n \"popularity\": 2198199\n },\n {\n \"tag\": "guacimo",\n \"popularity\": 2145128\n },\n {\n \"tag\": "cockade",\n \"popularity\": 2094033\n },\n {\n \"tag\": "misgauge",\n \"popularity\": 2044818\n },\n {\n \"tag\": "unexpensive",\n \"popularity\": 1997388\n },\n {\n \"tag\": "chebel",\n \"popularity\": 1951657\n },\n {\n \"tag\": "unpursuing",\n \"popularity\": 1907543\n },\n {\n \"tag\": "kilobar",\n \"popularity\": 1864969\n },\n {\n \"tag\": "obsecration",\n \"popularity\": 1823863\n },\n {\n \"tag\": "nacarine",\n \"popularity\": 1784157\n },\n {\n \"tag\": "spirituosity",\n \"popularity\": 1745787\n },\n {\n \"tag\": "movableness deity",\n \"popularity\": 1708692\n },\n {\n \"tag\": "exostracism",\n \"popularity\": 1672816\n },\n {\n \"tag\": "archipterygium",\n \"popularity\": 1638104\n },\n {\n \"tag\": "monostrophic",\n \"popularity\": 1604506\n },\n {\n \"tag\": "gynecide",\n \"popularity\": 1571974\n },\n {\n \"tag\": "gladden",\n \"popularity\": 1540462\n },\n {\n \"tag\": "throughbred",\n \"popularity\": 1509927\n },\n {\n \"tag\": "groper",\n \"popularity\": 1480329\n },\n {\n \"tag\": "Xenosaurus",\n \"popularity\": 1451628\n },\n {\n \"tag\": "photoetcher",\n \"popularity\": 1423788\n },\n {\n \"tag\": "glucosid",\n \"popularity\": 1396775\n },\n {\n \"tag\": "Galtonian",\n \"popularity\": 1370555\n },\n {\n \"tag\": "mesosporic",\n \"popularity\": 1345097\n },\n {\n \"tag\": "theody",\n \"popularity\": 1320370\n },\n {\n \"tag\": "zaffer",\n \"popularity\": 1296348\n },\n {\n \"tag\": "probiology",\n \"popularity\": 1273003\n },\n {\n \"tag\": "rhizomic",\n \"popularity\": 1250308\n },\n {\n \"tag\": "superphosphate",\n \"popularity\": 1228240\n },\n {\n \"tag\": "Hippolytan",\n \"popularity\": 1206776\n },\n {\n \"tag\": "garget",\n \"popularity\": 1185892\n },\n {\n \"tag\": "diploplacula",\n \"popularity\": 1165568\n },\n {\n \"tag\": "orohydrographical",\n \"popularity\": 1145785\n },\n {\n \"tag\": "enhypostatize",\n \"popularity\": 1126521\n },\n {\n \"tag\": "polisman",\n \"popularity\": 1107759\n },\n {\n \"tag\": "acetometer",\n \"popularity\": 1089482\n },\n {\n \"tag\": "unsnatched",\n \"popularity\": 1071672\n },\n {\n \"tag\": "yabber",\n \"popularity\": 1054313\n },\n {\n \"tag\": "demiwolf",\n \"popularity\": 1037390\n },\n {\n \"tag\": "chromascope",\n \"popularity\": 1020888\n },\n {\n \"tag\": "seamanship",\n \"popularity\": 1004794\n },\n {\n \"tag\": "nonfenestrated",\n \"popularity\": 989092\n },\n {\n \"tag\": "hydrophytism",\n \"popularity\": 973771\n },\n {\n \"tag\": "dotter",\n \"popularity\": 958819\n },\n {\n \"tag\": "thermoperiodism",\n \"popularity\": 944222\n },\n {\n \"tag\": "unlawyerlike",\n \"popularity\": 929970\n },\n {\n \"tag\": "enantiomeride citywards",\n \"popularity\": 916052\n },\n {\n \"tag\": "unmetallurgical",\n \"popularity\": 902456\n },\n {\n \"tag\": "prickled",\n \"popularity\": 889174\n },\n {\n \"tag\": "strangerwise manioc",\n \"popularity\": 876195\n },\n {\n \"tag\": "incisorial",\n \"popularity\": 863510\n },\n {\n \"tag\": "irrationalize",\n \"popularity\": 851110\n },\n {\n \"tag\": "nasology",\n \"popularity\": 838987\n },\n {\n \"tag\": "fatuism",\n \"popularity\": 827131\n },\n {\n \"tag\": "Huk",\n \"popularity\": 815535\n },\n {\n \"tag\": "properispomenon",\n \"popularity\": 804192\n },\n {\n \"tag\": "unpummelled",\n \"popularity\": 793094\n },\n {\n \"tag\": "technographically",\n \"popularity\": 782233\n },\n {\n \"tag\": "underfurnish",\n \"popularity\": 771603\n },\n {\n \"tag\": "sinter",\n \"popularity\": 761198\n },\n {\n \"tag\": "lateroanterior",\n \"popularity\": 751010\n },\n {\n \"tag\": "nonpersonification",\n \"popularity\": 741034\n },\n {\n \"tag\": "Sitophilus",\n \"popularity\": 731264\n },\n {\n \"tag\": "unstudded overexerted",\n \"popularity\": 721694\n },\n {\n \"tag\": "tracheation",\n \"popularity\": 712318\n },\n {\n \"tag\": "thirteenth begloze",\n \"popularity\": 703131\n },\n {\n \"tag\": "bespice",\n \"popularity\": 694129\n },\n {\n \"tag\": "doppia",\n \"popularity\": 685305\n },\n {\n \"tag\": "unadorned",\n \"popularity\": 676656\n },\n {\n \"tag\": "dovelet engraff",\n \"popularity\": 668176\n },\n {\n \"tag\": "diphyozooid",\n \"popularity\": 659862\n },\n {\n \"tag\": "mure",\n \"popularity\": 651708\n },\n {\n \"tag\": "Tripitaka",\n \"popularity\": 643710\n },\n {\n \"tag\": "Billjim",\n \"popularity\": 635865\n },\n {\n \"tag\": "pyramidical",\n \"popularity\": 628169\n },\n {\n \"tag\": "circumlocutionist",\n \"popularity\": 620617\n },\n {\n \"tag\": "slapstick",\n \"popularity\": 613207\n },\n {\n \"tag\": "preobedience",\n \"popularity\": 605934\n },\n {\n \"tag\": "unfriarlike",\n \"popularity\": 598795\n },\n {\n \"tag\": "microchromosome",\n \"popularity\": 591786\n },\n {\n \"tag\": "Orphicism",\n \"popularity\": 584905\n },\n {\n \"tag\": "peel",\n \"popularity\": 578149\n },\n {\n \"tag\": "obediential",\n \"popularity\": 571514\n },\n {\n \"tag\": "Peripatidea",\n \"popularity\": 564997\n },\n {\n \"tag\": "undoubtful",\n \"popularity\": 558596\n },\n {\n \"tag\": "lodgeable",\n \"popularity\": 552307\n },\n {\n \"tag\": "pustulated woodchat",\n \"popularity\": 546129\n },\n {\n \"tag\": "antepast",\n \"popularity\": 540057\n },\n {\n \"tag\": "sagittoid matrimoniously",\n \"popularity\": 534091\n },\n {\n \"tag\": "Albizzia",\n \"popularity\": 528228\n },\n {\n \"tag\": "Elateridae unnewness",\n \"popularity\": 522464\n },\n {\n \"tag\": "convertingness",\n \"popularity\": 516798\n },\n {\n \"tag\": "Pelew",\n \"popularity\": 511228\n },\n {\n \"tag\": "recapitulation",\n \"popularity\": 505751\n },\n {\n \"tag\": "shack",\n \"popularity\": 500365\n },\n {\n \"tag\": "unmellowed",\n \"popularity\": 495069\n },\n {\n \"tag\": "pavis capering",\n \"popularity\": 489859\n },\n {\n \"tag\": "fanfare",\n \"popularity\": 484735\n },\n {\n \"tag\": "sole",\n \"popularity\": 479695\n },\n {\n \"tag\": "subarcuate",\n \"popularity\": 474735\n },\n {\n \"tag\": "multivious",\n \"popularity\": 469856\n },\n {\n \"tag\": "squandermania",\n \"popularity\": 465054\n },\n {\n \"tag\": "scintle",\n \"popularity\": 460329\n },\n {\n \"tag\": "hash chirognomic",\n \"popularity\": 455679\n },\n {\n \"tag\": "linseed",\n \"popularity\": 451101\n },\n {\n \"tag\": "redoubtable",\n \"popularity\": 446596\n },\n {\n \"tag\": "poachy reimpact",\n \"popularity\": 442160\n },\n {\n \"tag\": "limestone",\n \"popularity\": 437792\n },\n {\n \"tag\": "serranid",\n \"popularity\": 433492\n },\n {\n \"tag\": "pohna",\n \"popularity\": 429258\n },\n {\n \"tag\": "warwolf",\n \"popularity\": 425088\n },\n {\n \"tag\": "ruthenous",\n \"popularity\": 420981\n },\n {\n \"tag\": "dover",\n \"popularity\": 416935\n },\n {\n \"tag\": "deuteroalbumose",\n \"popularity\": 412950\n },\n {\n \"tag\": "pseudoprophetic",\n \"popularity\": 409025\n },\n {\n \"tag\": "dissoluteness",\n \"popularity\": 405157\n },\n {\n \"tag\": "preinvention",\n \"popularity\": 401347\n },\n {\n \"tag\": "swagbellied",\n \"popularity\": 397592\n },\n {\n \"tag\": "Ophidia",\n \"popularity\": 393892\n },\n {\n \"tag\": "equanimity",\n \"popularity\": 390245\n },\n {\n \"tag\": "troutful",\n \"popularity\": 386651\n },\n {\n \"tag\": "uke",\n \"popularity\": 383108\n },\n {\n \"tag\": "preacquaint",\n \"popularity\": 379616\n },\n {\n \"tag\": "shoq",\n \"popularity\": 376174\n },\n {\n \"tag\": "yox",\n \"popularity\": 372780\n },\n {\n \"tag\": "unelemental",\n \"popularity\": 369434\n },\n {\n \"tag\": "Yavapai",\n \"popularity\": 366134\n },\n {\n \"tag\": "joulean",\n \"popularity\": 362880\n },\n {\n \"tag\": "dracontine",\n \"popularity\": 359672\n },\n {\n \"tag\": "hardmouth",\n \"popularity\": 356507\n },\n {\n \"tag\": "sylvanize",\n \"popularity\": 353386\n },\n {\n \"tag\": "intraparenchymatous meadowbur",\n \"popularity\": 350308\n },\n {\n \"tag\": "uncharily",\n \"popularity\": 347271\n },\n {\n \"tag\": "redtab flexibly",\n \"popularity\": 344275\n },\n {\n \"tag\": "centervelic",\n \"popularity\": 341319\n },\n {\n \"tag\": "unravellable",\n \"popularity\": 338403\n },\n {\n \"tag\": "infortunately",\n \"popularity\": 335526\n },\n {\n \"tag\": "cannel",\n \"popularity\": 332687\n },\n {\n \"tag\": "oxyblepsia",\n \"popularity\": 329885\n },\n {\n \"tag\": "Damon",\n \"popularity\": 327120\n },\n {\n \"tag\": "etherin",\n \"popularity\": 324391\n },\n {\n \"tag\": "luminal",\n \"popularity\": 321697\n },\n {\n \"tag\": "interrogatorily presbyte",\n \"popularity\": 319038\n },\n {\n \"tag\": "hemiclastic",\n \"popularity\": 316414\n },\n {\n \"tag\": "poh flush",\n \"popularity\": 313823\n },\n {\n \"tag\": "Psoroptes",\n \"popularity\": 311265\n },\n {\n \"tag\": "dispirit",\n \"popularity\": 308740\n },\n {\n \"tag\": "nashgab",\n \"popularity\": 306246\n },\n {\n \"tag\": "Aphidiinae",\n \"popularity\": 303784\n },\n {\n \"tag\": "rhapsody nonconstruction",\n \"popularity\": 301353\n },\n {\n \"tag\": "Osmond",\n \"popularity\": 298952\n },\n {\n \"tag\": "Leonis",\n \"popularity\": 296581\n },\n {\n \"tag\": "Lemnian",\n \"popularity\": 294239\n },\n {\n \"tag\": "acetonic gnathonic",\n \"popularity\": 291926\n },\n {\n \"tag\": "surculus",\n \"popularity\": 289641\n },\n {\n \"tag\": "diagonally",\n \"popularity\": 287384\n },\n {\n \"tag\": "counterpenalty",\n \"popularity\": 285154\n },\n {\n \"tag\": "Eugenie",\n \"popularity\": 282952\n },\n {\n \"tag\": "hornbook",\n \"popularity\": 280776\n },\n {\n \"tag\": "miscoin",\n \"popularity\": 278626\n },\n {\n \"tag\": "admi",\n \"popularity\": 276501\n },\n {\n \"tag\": "Tarmac",\n \"popularity\": 274402\n },\n {\n \"tag\": "inexplicable",\n \"popularity\": 272328\n },\n {\n \"tag\": "rascallion",\n \"popularity\": 270278\n },\n {\n \"tag\": "dusterman",\n \"popularity\": 268252\n },\n {\n \"tag\": "osteostomous unhoroscopic",\n \"popularity\": 266250\n },\n {\n \"tag\": "spinibulbar",\n \"popularity\": 264271\n },\n {\n \"tag\": "phototelegraphically",\n \"popularity\": 262315\n },\n {\n \"tag\": "Manihot",\n \"popularity\": 260381\n },\n {\n \"tag\": "neighborhood",\n \"popularity\": 258470\n },\n {\n \"tag\": "Vincetoxicum",\n \"popularity\": 256581\n },\n {\n \"tag\": "khirka",\n \"popularity\": 254713\n },\n {\n \"tag\": "conscriptive",\n \"popularity\": 252866\n },\n {\n \"tag\": "synechthran",\n \"popularity\": 251040\n },\n {\n \"tag\": "Guttiferales",\n \"popularity\": 249235\n },\n {\n \"tag\": "roomful",\n \"popularity\": 247450\n },\n {\n \"tag\": "germinal",\n \"popularity\": 245685\n },\n {\n \"tag\": "untraitorous",\n \"popularity\": 243939\n },\n {\n \"tag\": "nondissenting",\n \"popularity\": 242213\n },\n {\n \"tag\": "amotion",\n \"popularity\": 240506\n },\n {\n \"tag\": "badious",\n \"popularity\": 238817\n },\n {\n \"tag\": "sumpit",\n \"popularity\": 237147\n },\n {\n \"tag\": "ectozoic",\n \"popularity\": 235496\n },\n {\n \"tag\": "elvet",\n \"popularity\": 233862\n },\n {\n \"tag\": "underclerk",\n \"popularity\": 232246\n },\n {\n \"tag\": "reticency",\n \"popularity\": 230647\n },\n {\n \"tag\": "neutroclusion",\n \"popularity\": 229065\n },\n {\n \"tag\": "unbelieving",\n \"popularity\": 227500\n },\n {\n \"tag\": "histogenetic",\n \"popularity\": 225952\n },\n {\n \"tag\": "dermamyiasis",\n \"popularity\": 224421\n },\n {\n \"tag\": "telenergy",\n \"popularity\": 222905\n },\n {\n \"tag\": "axiomatic",\n \"popularity\": 221406\n },\n {\n \"tag\": "undominoed",\n \"popularity\": 219922\n },\n {\n \"tag\": "periosteoma",\n \"popularity\": 218454\n },\n {\n \"tag\": "justiciaryship",\n \"popularity\": 217001\n },\n {\n \"tag\": "autoluminescence",\n \"popularity\": 215563\n },\n {\n \"tag\": "osmous",\n \"popularity\": 214140\n },\n {\n \"tag\": "borgh",\n \"popularity\": 212731\n },\n {\n \"tag\": "bedebt",\n \"popularity\": 211337\n },\n {\n \"tag\": "considerableness adenoidism",\n \"popularity\": 209957\n },\n {\n \"tag\": "sailorizing",\n \"popularity\": 208592\n },\n {\n \"tag\": "Montauk",\n \"popularity\": 207240\n },\n {\n \"tag\": "Bridget",\n \"popularity\": 205901\n },\n {\n \"tag\": "Gekkota",\n \"popularity\": 204577\n },\n {\n \"tag\": "subcorymbose",\n \"popularity\": 203265\n },\n {\n \"tag\": "undersap",\n \"popularity\": 201967\n },\n {\n \"tag\": "poikilothermic",\n \"popularity\": 200681\n },\n {\n \"tag\": "enneatical",\n \"popularity\": 199409\n },\n {\n \"tag\": "martinetism",\n \"popularity\": 198148\n },\n {\n \"tag\": "sustanedly",\n \"popularity\": 196901\n },\n {\n \"tag\": "declaration",\n \"popularity\": 195665\n },\n {\n \"tag\": "myringoplasty",\n \"popularity\": 194442\n },\n {\n \"tag\": "Ginkgo",\n \"popularity\": 193230\n },\n {\n \"tag\": "unrecurrent",\n \"popularity\": 192031\n },\n {\n \"tag\": "proprecedent",\n \"popularity\": 190843\n },\n {\n \"tag\": "roadman",\n \"popularity\": 189666\n },\n {\n \"tag\": "elemin",\n \"popularity\": 188501\n },\n {\n \"tag\": "maggot",\n \"popularity\": 187347\n },\n {\n \"tag\": "alitrunk",\n \"popularity\": 186204\n },\n {\n \"tag\": "introspection",\n \"popularity\": 185071\n },\n {\n \"tag\": "batiker",\n \"popularity\": 183950\n },\n {\n \"tag\": "backhatch oversettle",\n \"popularity\": 182839\n },\n {\n \"tag\": "thresherman",\n \"popularity\": 181738\n },\n {\n \"tag\": "protemperance",\n \"popularity\": 180648\n },\n {\n \"tag\": "undern",\n \"popularity\": 179568\n },\n {\n \"tag\": "tweeg",\n \"popularity\": 178498\n },\n {\n \"tag\": "crosspath",\n \"popularity\": 177438\n },\n {\n \"tag\": "Tangaridae",\n \"popularity\": 176388\n },\n {\n \"tag\": "scrutation",\n \"popularity\": 175348\n },\n {\n \"tag\": "piecemaker",\n \"popularity\": 174317\n },\n {\n \"tag\": "paster",\n \"popularity\": 173296\n },\n {\n \"tag\": "unpretendingness",\n \"popularity\": 172284\n },\n {\n \"tag\": "inframundane",\n \"popularity\": 171281\n },\n {\n \"tag\": "kiblah",\n \"popularity\": 170287\n },\n {\n \"tag\": "playwrighting",\n \"popularity\": 169302\n },\n {\n \"tag\": "gonepoiesis snowslip",\n \"popularity\": 168326\n },\n {\n \"tag\": "hoodwise",\n \"popularity\": 167359\n },\n {\n \"tag\": "postseason",\n \"popularity\": 166401\n },\n {\n \"tag\": "equivocality",\n \"popularity\": 165451\n },\n {\n \"tag\": "Opiliaceae nuclease",\n \"popularity\": 164509\n },\n {\n \"tag\": "sextipara",\n \"popularity\": 163576\n },\n {\n \"tag\": "weeper",\n \"popularity\": 162651\n },\n {\n \"tag\": "frambesia",\n \"popularity\": 161735\n },\n {\n \"tag\": "answerable",\n \"popularity\": 160826\n },\n {\n \"tag\": "Trichosporum",\n \"popularity\": 159925\n },\n {\n \"tag\": "cajuputol",\n \"popularity\": 159033\n },\n {\n \"tag\": "pleomorphous",\n \"popularity\": 158148\n },\n {\n \"tag\": "aculeolate",\n \"popularity\": 157270\n },\n {\n \"tag\": "wherever",\n \"popularity\": 156400\n },\n {\n \"tag\": "collapse",\n \"popularity\": 155538\n },\n {\n \"tag\": "porky",\n \"popularity\": 154683\n },\n {\n \"tag\": "perule",\n \"popularity\": 153836\n },\n {\n \"tag\": "Nevada",\n \"popularity\": 152996\n },\n {\n \"tag\": "conalbumin",\n \"popularity\": 152162\n },\n {\n \"tag\": "tsunami",\n \"popularity\": 151336\n },\n {\n \"tag\": "Gulf",\n \"popularity\": 150517\n },\n {\n \"tag\": "hertz",\n \"popularity\": 149705\n },\n {\n \"tag\": "limmock",\n \"popularity\": 148900\n },\n {\n \"tag\": "Tartarize",\n \"popularity\": 148101\n },\n {\n \"tag\": "entosphenoid",\n \"popularity\": 147310\n },\n {\n \"tag\": "ibis",\n \"popularity\": 146524\n },\n {\n \"tag\": "unyeaned",\n \"popularity\": 145746\n },\n {\n \"tag\": "tritural",\n \"popularity\": 144973\n },\n {\n \"tag\": "hundredary",\n \"popularity\": 144207\n },\n {\n \"tag\": "stolonlike",\n \"popularity\": 143448\n },\n {\n \"tag\": "chorister",\n \"popularity\": 142694\n },\n {\n \"tag\": "mismove",\n \"popularity\": 141947\n },\n {\n \"tag\": "Andine",\n \"popularity\": 141206\n },\n {\n \"tag\": "Annette proneur escribe",\n \"popularity\": 140471\n },\n {\n \"tag\": "exoperidium",\n \"popularity\": 139742\n },\n {\n \"tag\": "disedge",\n \"popularity\": 139019\n },\n {\n \"tag\": "hypochloruria",\n \"popularity\": 138302\n },\n {\n \"tag\": "prepupa",\n \"popularity\": 137590\n },\n {\n \"tag\": "assent",\n \"popularity\": 136884\n },\n {\n \"tag\": "hydrazobenzene",\n \"popularity\": 136184\n },\n {\n \"tag\": "emballonurid",\n \"popularity\": 135489\n },\n {\n \"tag\": "roselle",\n \"popularity\": 134800\n },\n {\n \"tag\": "unifiedly",\n \"popularity\": 134117\n },\n {\n \"tag\": "clang",\n \"popularity\": 133439\n },\n {\n \"tag\": "acetolytic",\n \"popularity\": 132766\n },\n {\n \"tag\": "cladodont",\n \"popularity\": 132098\n },\n {\n \"tag\": "recoast",\n \"popularity\": 131436\n },\n {\n \"tag\": "celebrated tydie Eocarboniferous",\n \"popularity\": 130779\n },\n {\n \"tag\": "superconsciousness",\n \"popularity\": 130127\n },\n {\n \"tag\": "soberness",\n \"popularity\": 129480\n },\n {\n \"tag\": "panoramist",\n \"popularity\": 128838\n },\n {\n \"tag\": "Orbitolina",\n \"popularity\": 128201\n },\n {\n \"tag\": "overlewd",\n \"popularity\": 127569\n },\n {\n \"tag\": "demiquaver",\n \"popularity\": 126942\n },\n {\n \"tag\": "kamelaukion",\n \"popularity\": 126319\n },\n {\n \"tag\": "flancard",\n \"popularity\": 125702\n },\n {\n \"tag\": "tricuspid",\n \"popularity\": 125089\n },\n {\n \"tag\": "bepelt",\n \"popularity\": 124480\n },\n {\n \"tag\": "decuplet",\n \"popularity\": 123877\n },\n {\n \"tag\": "Rockies",\n \"popularity\": 123278\n },\n {\n \"tag\": "unforgeability",\n \"popularity\": 122683\n },\n {\n \"tag\": "mocha",\n \"popularity\": 122093\n },\n {\n \"tag\": "scrunge",\n \"popularity\": 121507\n },\n {\n \"tag\": "delighter",\n \"popularity\": 120926\n },\n {\n \"tag\": "willey Microtinae",\n \"popularity\": 120349\n },\n {\n \"tag\": "unhuntable",\n \"popularity\": 119777\n },\n {\n \"tag\": "historically",\n \"popularity\": 119208\n },\n {\n \"tag\": "vicegerentship",\n \"popularity\": 118644\n },\n {\n \"tag\": "hemangiosarcoma",\n \"popularity\": 118084\n },\n {\n \"tag\": "harpago",\n \"popularity\": 117528\n },\n {\n \"tag\": "unionoid",\n \"popularity\": 116976\n },\n {\n \"tag\": "wiseman",\n \"popularity\": 116429\n },\n {\n \"tag\": "diclinism",\n \"popularity\": 115885\n },\n {\n \"tag\": "Maud",\n \"popularity\": 115345\n },\n {\n \"tag\": "scaphocephalism",\n \"popularity\": 114809\n },\n {\n \"tag\": "obtenebration",\n \"popularity\": 114277\n },\n {\n \"tag\": "cymar predreadnought",\n \"popularity\": 113749\n },\n {\n \"tag\": "discommend",\n \"popularity\": 113225\n },\n {\n \"tag\": "crude",\n \"popularity\": 112704\n },\n {\n \"tag\": "upflash",\n \"popularity\": 112187\n },\n {\n \"tag\": "saltimbank",\n \"popularity\": 111674\n },\n {\n \"tag\": "posthysterical",\n \"popularity\": 111165\n },\n {\n \"tag\": "trample",\n \"popularity\": 110659\n },\n {\n \"tag\": "ungirthed",\n \"popularity\": 110157\n },\n {\n \"tag\": "unshakable",\n \"popularity\": 109658\n },\n {\n \"tag\": "hepatocystic",\n \"popularity\": 109163\n },\n {\n \"tag\": "psammophyte",\n \"popularity\": 108671\n },\n {\n \"tag\": "millionfold",\n \"popularity\": 108183\n },\n {\n \"tag\": "outtaste",\n \"popularity\": 107698\n },\n {\n \"tag\": "poppycockish",\n \"popularity\": 107217\n },\n {\n \"tag\": "viduine",\n \"popularity\": 106739\n },\n {\n \"tag\": "pleasureman",\n \"popularity\": 106264\n },\n {\n \"tag\": "cholesterolemia",\n \"popularity\": 105792\n },\n {\n \"tag\": "hostlerwife",\n \"popularity\": 105324\n },\n {\n \"tag\": "figure undergrass",\n \"popularity\": 104859\n },\n {\n \"tag\": "bedrape",\n \"popularity\": 104398\n },\n {\n \"tag\": "nuttishness",\n \"popularity\": 103939\n },\n {\n \"tag\": "fow",\n \"popularity\": 103484\n },\n {\n \"tag\": "rachianesthesia",\n \"popularity\": 103031\n },\n {\n \"tag\": "recruitable",\n \"popularity\": 102582\n },\n {\n \"tag\": "semianatomical Oenotheraceae",\n \"popularity\": 102136\n },\n {\n \"tag\": "extracapsular",\n \"popularity\": 101693\n },\n {\n \"tag\": "unsigneted",\n \"popularity\": 101253\n },\n {\n \"tag\": "fissural",\n \"popularity\": 100816\n },\n {\n \"tag\": "ayous",\n \"popularity\": 100381\n },\n {\n \"tag\": "crestfallenness odontograph",\n \"popularity\": 99950\n },\n {\n \"tag\": "monopodium",\n \"popularity\": 99522\n },\n {\n \"tag\": "germfree",\n \"popularity\": 99096\n },\n {\n \"tag\": "dauphin",\n \"popularity\": 98673\n },\n {\n \"tag\": "nonagesimal",\n \"popularity\": 98254\n },\n {\n \"tag\": "waterchat",\n \"popularity\": 97836\n },\n {\n \"tag\": "Entelodon",\n \"popularity\": 97422\n },\n {\n \"tag\": "semischolastic",\n \"popularity\": 97010\n },\n {\n \"tag\": "somata",\n \"popularity\": 96602\n },\n {\n \"tag\": "expositorily",\n \"popularity\": 96195\n },\n {\n \"tag\": "bass",\n \"popularity\": 95792\n },\n {\n \"tag\": "calorimetry",\n \"popularity\": 95391\n },\n {\n \"tag\": "entireness",\n \"popularity\": 94993\n },\n {\n \"tag\": "ratline soppiness",\n \"popularity\": 94597\n },\n {\n \"tag\": "shor",\n \"popularity\": 94204\n },\n {\n \"tag\": "coprecipitation",\n \"popularity\": 93813\n },\n {\n \"tag\": "unblushingly",\n \"popularity\": 93425\n },\n {\n \"tag\": "macarize",\n \"popularity\": 93040\n },\n {\n \"tag\": "scruplesomeness",\n \"popularity\": 92657\n },\n {\n \"tag\": "offsaddle",\n \"popularity\": 92276\n },\n {\n \"tag\": "hypertragical",\n \"popularity\": 91898\n },\n {\n \"tag\": "uncassock loined",\n \"popularity\": 91522\n },\n {\n \"tag\": "interlobate",\n \"popularity\": 91149\n },\n {\n \"tag\": "releasor orrisroot stoloniferously",\n \"popularity\": 90778\n },\n {\n \"tag\": "elementoid",\n \"popularity\": 90410\n },\n {\n \"tag\": "Lentilla",\n \"popularity\": 90043\n },\n {\n \"tag\": "distressing",\n \"popularity\": 89679\n },\n {\n \"tag\": "hydrodrome",\n \"popularity\": 89318\n },\n {\n \"tag\": "Jeannette",\n \"popularity\": 88958\n },\n {\n \"tag\": "Kuli",\n \"popularity\": 88601\n },\n {\n \"tag\": "taxinomist",\n \"popularity\": 88246\n },\n {\n \"tag\": "southwestwardly",\n \"popularity\": 87894\n },\n {\n \"tag\": "polyparia",\n \"popularity\": 87543\n },\n {\n \"tag\": "exmeridian",\n \"popularity\": 87195\n },\n {\n \"tag\": "splenius regimentaled",\n \"popularity\": 86849\n },\n {\n \"tag\": "Sphaeropsidaceae",\n \"popularity\": 86505\n },\n {\n \"tag\": "unbegun",\n \"popularity\": 86163\n },\n {\n \"tag\": "something",\n \"popularity\": 85823\n },\n {\n \"tag\": "contaminable nonexpulsion",\n \"popularity\": 85486\n },\n {\n \"tag\": "douser",\n \"popularity\": 85150\n },\n {\n \"tag\": "prostrike",\n \"popularity\": 84817\n },\n {\n \"tag\": "worky",\n \"popularity\": 84485\n },\n {\n \"tag\": "folliful",\n \"popularity\": 84156\n },\n {\n \"tag\": "prioracy",\n \"popularity\": 83828\n },\n {\n \"tag\": "undermentioned",\n \"popularity\": 83503\n },\n {\n \"tag\": "Judaica",\n \"popularity\": 83179\n },\n {\n \"tag\": "multifarious",\n \"popularity\": 82858\n },\n {\n \"tag\": "poogye",\n \"popularity\": 82538\n },\n {\n \"tag\": "Sparganium",\n \"popularity\": 82221\n },\n {\n \"tag\": "thurrock",\n \"popularity\": 81905\n },\n {\n \"tag\": "outblush",\n \"popularity\": 81591\n },\n {\n \"tag\": "Strophanthus supraordination",\n \"popularity\": 81279\n },\n {\n \"tag\": "gingerroot",\n \"popularity\": 80969\n },\n {\n \"tag\": "unconscient",\n \"popularity\": 80661\n },\n {\n \"tag\": "unconstitutionally",\n \"popularity\": 80354\n },\n {\n \"tag\": "plaguily",\n \"popularity\": 80050\n },\n {\n \"tag\": "waterily equatorwards",\n \"popularity\": 79747\n },\n {\n \"tag\": "nondeposition",\n \"popularity\": 79446\n },\n {\n \"tag\": "dronishly",\n \"popularity\": 79147\n },\n {\n \"tag\": "gateado",\n \"popularity\": 78849\n },\n {\n \"tag\": "dislink",\n \"popularity\": 78553\n },\n {\n \"tag\": "Joceline",\n \"popularity\": 78259\n },\n {\n \"tag\": "amphiboliferous",\n \"popularity\": 77967\n },\n {\n \"tag\": "bushrope",\n \"popularity\": 77676\n },\n {\n \"tag\": "plumicorn sulphosalicylic",\n \"popularity\": 77387\n },\n {\n \"tag\": "nonefficiency",\n \"popularity\": 77100\n },\n {\n \"tag\": "hieroscopy",\n \"popularity\": 76815\n },\n {\n \"tag\": "causativeness",\n \"popularity\": 76531\n },\n {\n \"tag\": "swird paleoeremology",\n \"popularity\": 76249\n },\n {\n \"tag\": "camphoric",\n \"popularity\": 75968\n },\n {\n \"tag\": "retaining",\n \"popularity\": 75689\n },\n {\n \"tag\": "thyreoprotein",\n \"popularity\": 75411\n },\n {\n \"tag\": "carbona",\n \"popularity\": 75136\n },\n {\n \"tag\": "protectively",\n \"popularity\": 74861\n },\n {\n \"tag\": "mosasaur",\n \"popularity\": 74589\n },\n {\n \"tag\": "reciprocator",\n \"popularity\": 74317\n },\n {\n \"tag\": "detentive",\n \"popularity\": 74048\n },\n {\n \"tag\": "supravital",\n \"popularity\": 73780\n },\n {\n \"tag\": "Vespertilionidae",\n \"popularity\": 73513\n },\n {\n \"tag\": "parka",\n \"popularity\": 73248\n },\n {\n \"tag\": "pickaway",\n \"popularity\": 72984\n },\n {\n \"tag\": "oleaceous",\n \"popularity\": 72722\n },\n {\n \"tag\": "anticogitative",\n \"popularity\": 72462\n },\n {\n \"tag\": "woe",\n \"popularity\": 72203\n },\n {\n \"tag\": "skeuomorph",\n \"popularity\": 71945\n },\n {\n \"tag\": "helpmeet",\n \"popularity\": 71689\n },\n {\n \"tag\": "Hexactinellida brickmaking",\n \"popularity\": 71434\n },\n {\n \"tag\": "resink",\n \"popularity\": 71180\n },\n {\n \"tag\": "diluter",\n \"popularity\": 70928\n },\n {\n \"tag\": "micromicron",\n \"popularity\": 70677\n },\n {\n \"tag\": "parentage",\n \"popularity\": 70428\n },\n {\n \"tag\": "galactorrhoea",\n \"popularity\": 70180\n },\n {\n \"tag\": "gey",\n \"popularity\": 69934\n },\n {\n \"tag\": "gesticulatory",\n \"popularity\": 69689\n },\n {\n \"tag\": "wergil",\n \"popularity\": 69445\n },\n {\n \"tag\": "Lecanora",\n \"popularity\": 69202\n },\n {\n \"tag\": "malanders karst",\n \"popularity\": 68961\n },\n {\n \"tag\": "vibetoite",\n \"popularity\": 68721\n },\n {\n \"tag\": "unrequitedness",\n \"popularity\": 68483\n },\n {\n \"tag\": "outwash",\n \"popularity\": 68245\n },\n {\n \"tag\": "unsacred",\n \"popularity\": 68009\n },\n {\n \"tag\": "unabetted dividend",\n \"popularity\": 67775\n },\n {\n \"tag\": "untraveling",\n \"popularity\": 67541\n },\n {\n \"tag\": "thermobattery",\n \"popularity\": 67309\n },\n {\n \"tag\": "polypragmist",\n \"popularity\": 67078\n },\n {\n \"tag\": "irrefutableness",\n \"popularity\": 66848\n },\n {\n \"tag\": "remiges",\n \"popularity\": 66620\n },\n {\n \"tag\": "implode",\n \"popularity\": 66393\n },\n {\n \"tag\": "superfluousness",\n \"popularity\": 66166\n },\n {\n \"tag\": "croakily unalleviated",\n \"popularity\": 65942\n },\n {\n \"tag\": "edicule",\n \"popularity\": 65718\n },\n {\n \"tag\": "entophytous",\n \"popularity\": 65495\n },\n {\n \"tag\": "benefactorship Toryish",\n \"popularity\": 65274\n },\n {\n \"tag\": "pseudoamateurish",\n \"popularity\": 65054\n },\n {\n \"tag\": "flueless Iguanodontoidea snipnose",\n \"popularity\": 64835\n },\n {\n \"tag\": "zealotical Zamicrus interpole",\n \"popularity\": 64617\n },\n {\n \"tag\": "whereabout",\n \"popularity\": 64401\n },\n {\n \"tag\": "benzazide",\n \"popularity\": 64185\n },\n {\n \"tag\": "pokeweed",\n \"popularity\": 63971\n },\n {\n \"tag\": "calamitoid",\n \"popularity\": 63757\n },\n {\n \"tag\": "sporozoal",\n \"popularity\": 63545\n },\n {\n \"tag\": "physcioid Welshwoman",\n \"popularity\": 63334\n },\n {\n \"tag\": "wanting",\n \"popularity\": 63124\n },\n {\n \"tag\": "unencumbering",\n \"popularity\": 62915\n },\n {\n \"tag\": "Tupi",\n \"popularity\": 62707\n },\n {\n \"tag\": "potbank",\n \"popularity\": 62501\n },\n {\n \"tag\": "bulked",\n \"popularity\": 62295\n },\n {\n \"tag\": "uparise",\n \"popularity\": 62090\n },\n {\n \"tag\": "Sudra",\n \"popularity\": 61887\n },\n {\n \"tag\": "hyperscrupulosity",\n \"popularity\": 61684\n },\n {\n \"tag\": "subterraneously unmaid",\n \"popularity\": 61483\n },\n {\n \"tag\": "poisonousness",\n \"popularity\": 61282\n },\n {\n \"tag\": "phare",\n \"popularity\": 61083\n },\n {\n \"tag\": "dicynodont",\n \"popularity\": 60884\n },\n {\n \"tag\": "chewer",\n \"popularity\": 60687\n },\n {\n \"tag\": "uliginous",\n \"popularity\": 60490\n },\n {\n \"tag\": "tinman",\n \"popularity\": 60295\n },\n {\n \"tag\": "coconut",\n \"popularity\": 60100\n },\n {\n \"tag\": "phryganeoid",\n \"popularity\": 59907\n },\n {\n \"tag\": "bismillah",\n \"popularity\": 59714\n },\n {\n \"tag\": "tautomeric",\n \"popularity\": 59523\n },\n {\n \"tag\": "jerquer",\n \"popularity\": 59332\n },\n {\n \"tag\": "Dryopithecinae",\n \"popularity\": 59143\n },\n {\n \"tag\": "ghizite",\n \"popularity\": 58954\n },\n {\n \"tag\": "unliveable",\n \"popularity\": 58766\n },\n {\n \"tag\": "craftsmaster",\n \"popularity\": 58579\n },\n {\n \"tag\": "semiscenic",\n \"popularity\": 58394\n },\n {\n \"tag\": "danaid",\n \"popularity\": 58209\n },\n {\n \"tag\": "flawful",\n \"popularity\": 58025\n },\n {\n \"tag\": "risibleness",\n \"popularity\": 57841\n },\n {\n \"tag\": "Muscovite",\n \"popularity\": 57659\n },\n {\n \"tag\": "snaringly",\n \"popularity\": 57478\n },\n {\n \"tag\": "brilliantwise",\n \"popularity\": 57297\n },\n {\n \"tag\": "plebeity",\n \"popularity\": 57118\n },\n {\n \"tag\": "historicalness",\n \"popularity\": 56939\n },\n {\n \"tag\": "piecemeal",\n \"popularity\": 56761\n },\n {\n \"tag\": "maxillipedary",\n \"popularity\": 56584\n },\n {\n \"tag\": "Hypenantron",\n \"popularity\": 56408\n },\n {\n \"tag\": "quaintness avigate",\n \"popularity\": 56233\n },\n {\n \"tag\": "ave",\n \"popularity\": 56059\n },\n {\n \"tag\": "mediaevally",\n \"popularity\": 55885\n },\n {\n \"tag\": "brucite",\n \"popularity\": 55712\n },\n {\n \"tag\": "Schwendenerian",\n \"popularity\": 55541\n },\n {\n \"tag\": "julole",\n \"popularity\": 55370\n },\n {\n \"tag\": "palaeolith",\n \"popularity\": 55199\n },\n {\n \"tag\": "cotyledonary",\n \"popularity\": 55030\n },\n {\n \"tag\": "rond",\n \"popularity\": 54861\n },\n {\n \"tag\": "boomster tassoo",\n \"popularity\": 54694\n },\n {\n \"tag\": "cattishly",\n \"popularity\": 54527\n },\n {\n \"tag\": "tonguefence",\n \"popularity\": 54360\n },\n {\n \"tag\": "hexastylar triskele",\n \"popularity\": 54195\n },\n {\n \"tag\": "ariot",\n \"popularity\": 54030\n },\n {\n \"tag\": "intarsist",\n \"popularity\": 53867\n },\n {\n \"tag\": "Oscines",\n \"popularity\": 53704\n },\n {\n \"tag\": "Spaniolize",\n \"popularity\": 53541\n },\n {\n \"tag\": "smellfungus",\n \"popularity\": 53380\n },\n {\n \"tag\": "redisplay",\n \"popularity\": 53219\n },\n {\n \"tag\": "phosphene",\n \"popularity\": 53059\n },\n {\n \"tag\": "phycomycete",\n \"popularity\": 52900\n },\n {\n \"tag\": "prophetic",\n \"popularity\": 52741\n },\n {\n \"tag\": "overtrustful",\n \"popularity\": 52584\n },\n {\n \"tag\": "pinitol",\n \"popularity\": 52427\n },\n {\n \"tag\": "asthmatic",\n \"popularity\": 52270\n },\n {\n \"tag\": "convulsive",\n \"popularity\": 52115\n },\n {\n \"tag\": "draughtswoman",\n \"popularity\": 51960\n },\n {\n \"tag\": "unetymologizable",\n \"popularity\": 51806\n },\n {\n \"tag\": "centrarchoid",\n \"popularity\": 51652\n },\n {\n \"tag\": "mesioincisal",\n \"popularity\": 51500\n },\n {\n \"tag\": "transbaikal",\n \"popularity\": 51348\n },\n {\n \"tag\": "silveriness",\n \"popularity\": 51196\n },\n {\n \"tag\": "costotomy",\n \"popularity\": 51046\n },\n {\n \"tag\": "caracore",\n \"popularity\": 50896\n },\n {\n \"tag\": "depotentiation",\n \"popularity\": 50747\n },\n {\n \"tag\": "glossoepiglottidean",\n \"popularity\": 50598\n },\n {\n \"tag\": "upswell",\n \"popularity\": 50450\n },\n {\n \"tag\": "flecnodal",\n \"popularity\": 50303\n },\n {\n \"tag\": "coventrate",\n \"popularity\": 50157\n },\n {\n \"tag\": "duchesse",\n \"popularity\": 50011\n },\n {\n \"tag\": "excisemanship trophied",\n \"popularity\": 49866\n },\n {\n \"tag\": "cytinaceous",\n \"popularity\": 49721\n },\n {\n \"tag\": "assuringly",\n \"popularity\": 49577\n },\n {\n \"tag\": "unconducted upliftitis",\n \"popularity\": 49434\n },\n {\n \"tag\": "rachicentesis",\n \"popularity\": 49292\n },\n {\n \"tag\": "antiangular",\n \"popularity\": 49150\n },\n {\n \"tag\": "advisal",\n \"popularity\": 49008\n },\n {\n \"tag\": "birdcatcher",\n \"popularity\": 48868\n },\n {\n \"tag\": "secularistic",\n \"popularity\": 48728\n },\n {\n \"tag\": "grandeeism superinformal",\n \"popularity\": 48588\n },\n {\n \"tag\": "unapprehension",\n \"popularity\": 48449\n },\n {\n \"tag\": "excipulum",\n \"popularity\": 48311\n },\n {\n \"tag\": "decimole",\n \"popularity\": 48174\n },\n {\n \"tag\": "semidrachm",\n \"popularity\": 48037\n },\n {\n \"tag\": "uvulotome",\n \"popularity\": 47901\n },\n {\n \"tag\": "Lemaneaceae",\n \"popularity\": 47765\n },\n {\n \"tag\": "corrade",\n \"popularity\": 47630\n },\n {\n \"tag\": "Kuroshio",\n \"popularity\": 47495\n },\n {\n \"tag\": "Araliophyllum",\n \"popularity\": 47361\n },\n {\n \"tag\": "victoriousness cardiosphygmograph",\n \"popularity\": 47228\n },\n {\n \"tag\": "reinvent",\n \"popularity\": 47095\n },\n {\n \"tag\": "Macrotolagus",\n \"popularity\": 46963\n },\n {\n \"tag\": "strenuousness",\n \"popularity\": 46831\n },\n {\n \"tag\": "deviability",\n \"popularity\": 46700\n },\n {\n \"tag\": "phyllospondylous",\n \"popularity\": 46570\n },\n {\n \"tag\": "bisect rudderhole",\n \"popularity\": 46440\n },\n {\n \"tag\": "crownwork",\n \"popularity\": 46311\n },\n {\n \"tag\": "Ascalabota",\n \"popularity\": 46182\n },\n {\n \"tag\": "prostatomyomectomy",\n \"popularity\": 46054\n },\n {\n \"tag\": "neurosyphilis",\n \"popularity\": 45926\n },\n {\n \"tag\": "tabloid scraplet",\n \"popularity\": 45799\n },\n {\n \"tag\": "nonmedullated servility",\n \"popularity\": 45673\n },\n {\n \"tag\": "melopoeic practicalization",\n \"popularity\": 45547\n },\n {\n \"tag\": "nonrhythmic",\n \"popularity\": 45421\n },\n {\n \"tag\": "deplorer",\n \"popularity\": 45296\n },\n {\n \"tag\": "Ophion",\n \"popularity\": 45172\n },\n {\n \"tag\": "subprioress",\n \"popularity\": 45048\n },\n {\n \"tag\": "semiregular",\n \"popularity\": 44925\n },\n {\n \"tag\": "praelection",\n \"popularity\": 44802\n },\n {\n \"tag\": "discinct",\n \"popularity\": 44680\n },\n {\n \"tag\": "preplace",\n \"popularity\": 44558\n },\n {\n \"tag\": "paternoster",\n \"popularity\": 44437\n },\n {\n \"tag\": "suboccipital",\n \"popularity\": 44316\n },\n {\n \"tag\": "Teutophil",\n \"popularity\": 44196\n },\n {\n \"tag\": "tracheole",\n \"popularity\": 44076\n },\n {\n \"tag\": "subsmile",\n \"popularity\": 43957\n },\n {\n \"tag\": "nonapostatizing",\n \"popularity\": 43839\n },\n {\n \"tag\": "cleidotomy",\n \"popularity\": 43720\n },\n {\n \"tag\": "hingle",\n \"popularity\": 43603\n },\n {\n \"tag\": "jocoque",\n \"popularity\": 43486\n },\n {\n \"tag\": "trundler notidanian",\n \"popularity\": 43369\n },\n {\n \"tag\": "strangling misdaub",\n \"popularity\": 43253\n },\n {\n \"tag\": "noncancellable",\n \"popularity\": 43137\n },\n {\n \"tag\": "lavabo",\n \"popularity\": 43022\n },\n {\n \"tag\": "lanterloo",\n \"popularity\": 42907\n },\n {\n \"tag\": "uncitizenly",\n \"popularity\": 42793\n },\n {\n \"tag\": "autoturning",\n \"popularity\": 42679\n },\n {\n \"tag\": "Haganah",\n \"popularity\": 42566\n },\n {\n \"tag\": "Glecoma",\n \"popularity\": 42453\n },\n {\n \"tag\": "membered",\n \"popularity\": 42341\n },\n {\n \"tag\": "consuetudinal",\n \"popularity\": 42229\n },\n {\n \"tag\": "gatehouse",\n \"popularity\": 42117\n },\n {\n \"tag\": "tetherball",\n \"popularity\": 42006\n },\n {\n \"tag\": "counterrevolutionist numismatical",\n \"popularity\": 41896\n },\n {\n \"tag\": "pagehood plateiasmus",\n \"popularity\": 41786\n },\n {\n \"tag\": "pelterer",\n \"popularity\": 41676\n },\n {\n \"tag\": "splenemphraxis",\n \"popularity\": 41567\n },\n {\n \"tag\": "Crypturidae",\n \"popularity\": 41458\n },\n {\n \"tag\": "caboodle",\n \"popularity\": 41350\n },\n {\n \"tag\": "Filaria",\n \"popularity\": 41242\n },\n {\n \"tag\": "noninvincibility",\n \"popularity\": 41135\n },\n {\n \"tag\": "preadvertisement",\n \"popularity\": 41028\n },\n {\n \"tag\": "bathrobe",\n \"popularity\": 40921\n },\n {\n \"tag\": "nitrifier",\n \"popularity\": 40815\n },\n {\n \"tag\": "furthermore",\n \"popularity\": 40709\n },\n {\n \"tag\": "recrate",\n \"popularity\": 40604\n },\n {\n \"tag\": "inexist",\n \"popularity\": 40499\n },\n {\n \"tag\": "Mocoan",\n \"popularity\": 40395\n },\n {\n \"tag\": "forint",\n \"popularity\": 40291\n },\n {\n \"tag\": "cardiomyoliposis",\n \"popularity\": 40187\n },\n {\n \"tag\": "channeling",\n \"popularity\": 40084\n },\n {\n \"tag\": "quebrachine",\n \"popularity\": 39981\n },\n {\n \"tag\": "magistery",\n \"popularity\": 39879\n },\n {\n \"tag\": "koko",\n \"popularity\": 39777\n },\n {\n \"tag\": "nobilify",\n \"popularity\": 39676\n },\n {\n \"tag\": "articulate taprooted",\n \"popularity\": 39575\n },\n {\n \"tag\": "cardiotonic Nicaragua",\n \"popularity\": 39474\n },\n {\n \"tag\": "assertiveness",\n \"popularity\": 39374\n },\n {\n \"tag\": "springtail",\n \"popularity\": 39274\n },\n {\n \"tag\": "spontoon",\n \"popularity\": 39174\n },\n {\n \"tag\": "plesiobiosis",\n \"popularity\": 39075\n },\n {\n \"tag\": "rooinek",\n \"popularity\": 38976\n },\n {\n \"tag\": "hairif falsehood",\n \"popularity\": 38878\n },\n {\n \"tag\": "synodally",\n \"popularity\": 38780\n },\n {\n \"tag\": "biodynamics",\n \"popularity\": 38683\n },\n {\n \"tag\": "trickling",\n \"popularity\": 38585\n },\n {\n \"tag\": "oxfly daystar",\n \"popularity\": 38489\n },\n {\n \"tag\": "epicycloidal",\n \"popularity\": 38392\n },\n {\n \"tag\": "shorthand",\n \"popularity\": 38296\n },\n {\n \"tag\": "herpolhode",\n \"popularity\": 38201\n },\n {\n \"tag\": "polysynthesism",\n \"popularity\": 38105\n },\n {\n \"tag\": "cany",\n \"popularity\": 38010\n },\n {\n \"tag\": "sideage",\n \"popularity\": 37916\n },\n {\n \"tag\": "strainableness",\n \"popularity\": 37822\n },\n {\n \"tag\": "superformidable",\n \"popularity\": 37728\n },\n {\n \"tag\": "slendang",\n \"popularity\": 37634\n },\n {\n \"tag\": "impropriation",\n \"popularity\": 37541\n },\n {\n \"tag\": "ficklehearted",\n \"popularity\": 37449\n },\n {\n \"tag\": "wintrify",\n \"popularity\": 37356\n },\n {\n \"tag\": "geomorphogenist",\n \"popularity\": 37264\n },\n {\n \"tag\": "smuggleable",\n \"popularity\": 37173\n },\n {\n \"tag\": "delapsion",\n \"popularity\": 37081\n },\n {\n \"tag\": "projective",\n \"popularity\": 36990\n },\n {\n \"tag\": "unglue exfoliation",\n \"popularity\": 36900\n },\n {\n \"tag\": "Acerae",\n \"popularity\": 36810\n },\n {\n \"tag\": "unstaged",\n \"popularity\": 36720\n },\n {\n \"tag\": "ranal",\n \"popularity\": 36630\n },\n {\n \"tag\": "worrier",\n \"popularity\": 36541\n },\n {\n \"tag\": "unhid",\n \"popularity\": 36452\n },\n {\n \"tag\": "adequation",\n \"popularity\": 36363\n },\n {\n \"tag\": "strongylid Sokotri",\n \"popularity\": 36275\n },\n {\n \"tag\": "fumingly",\n \"popularity\": 36187\n },\n {\n \"tag\": "gynosporangium phaenogenetic",\n \"popularity\": 36100\n },\n {\n \"tag\": "uniunguiculate",\n \"popularity\": 36012\n },\n {\n \"tag\": "prudelike",\n \"popularity\": 35926\n },\n {\n \"tag\": "seminomata",\n \"popularity\": 35839\n },\n {\n \"tag\": "trinklet",\n \"popularity\": 35753\n },\n {\n \"tag\": "risorial",\n \"popularity\": 35667\n },\n {\n \"tag\": "pericardiocentesis",\n \"popularity\": 35581\n },\n {\n \"tag\": "filmist",\n \"popularity\": 35496\n },\n {\n \"tag\": "Nana",\n \"popularity\": 35411\n },\n {\n \"tag\": "cynipoid",\n \"popularity\": 35326\n },\n {\n \"tag\": "cteniform",\n \"popularity\": 35242\n },\n {\n \"tag\": "semiflex",\n \"popularity\": 35158\n },\n {\n \"tag\": "solstitially",\n \"popularity\": 35074\n },\n {\n \"tag\": "Algarsife",\n \"popularity\": 34991\n },\n {\n \"tag\": "noncriminal",\n \"popularity\": 34908\n },\n {\n \"tag\": "compassion",\n \"popularity\": 34825\n },\n {\n \"tag\": "Buddhic",\n \"popularity\": 34743\n },\n {\n \"tag\": "vellicative dactylically hotfoot",\n \"popularity\": 34661\n },\n {\n \"tag\": "chicory",\n \"popularity\": 34579\n },\n {\n \"tag\": "transperitoneally",\n \"popularity\": 34497\n },\n {\n \"tag\": "pennae",\n \"popularity\": 34416\n },\n {\n \"tag\": "Flamandize",\n \"popularity\": 34335\n },\n {\n \"tag\": "underviewer",\n \"popularity\": 34254\n },\n {\n \"tag\": "assoil",\n \"popularity\": 34174\n },\n {\n \"tag\": "saccharobacillus",\n \"popularity\": 34094\n },\n {\n \"tag\": "biacetylene",\n \"popularity\": 34014\n },\n {\n \"tag\": "mouchardism",\n \"popularity\": 33935\n },\n {\n \"tag\": "anisomeric",\n \"popularity\": 33856\n },\n {\n \"tag\": "digestive",\n \"popularity\": 33777\n },\n {\n \"tag\": "darlingly",\n \"popularity\": 33698\n },\n {\n \"tag\": "liman",\n \"popularity\": 33620\n },\n {\n \"tag\": "soldanrie",\n \"popularity\": 33542\n },\n {\n \"tag\": "sully",\n \"popularity\": 33464\n },\n {\n \"tag\": "brightsmith",\n \"popularity\": 33387\n },\n {\n \"tag\": "inwrap antiliturgist ureterocervical",\n \"popularity\": 33309\n },\n {\n \"tag\": "discommodity",\n \"popularity\": 33232\n },\n {\n \"tag\": "typical aggrandizer",\n \"popularity\": 33156\n },\n {\n \"tag\": "xenogeny",\n \"popularity\": 33079\n },\n {\n \"tag\": "uncountrified",\n \"popularity\": 33003\n },\n {\n \"tag\": "Podarge",\n \"popularity\": 32928\n },\n {\n \"tag\": "uninterviewed",\n \"popularity\": 32852\n },\n {\n \"tag\": "underprior",\n \"popularity\": 32777\n },\n {\n \"tag\": "leiomyomatous",\n \"popularity\": 32702\n },\n {\n \"tag\": "postdysenteric",\n \"popularity\": 32627\n },\n {\n \"tag\": "Fusicladium",\n \"popularity\": 32553\n },\n {\n \"tag\": "Dulcinea",\n \"popularity\": 32478\n },\n {\n \"tag\": "interspersion",\n \"popularity\": 32404\n },\n {\n \"tag\": "preobligate",\n \"popularity\": 32331\n },\n {\n \"tag\": "subaggregate",\n \"popularity\": 32257\n },\n {\n \"tag\": "grammarianism",\n \"popularity\": 32184\n },\n {\n \"tag\": "palikar",\n \"popularity\": 32111\n },\n {\n \"tag\": "facileness",\n \"popularity\": 32039\n },\n {\n \"tag\": "deuterofibrinose",\n \"popularity\": 31966\n },\n {\n \"tag\": "pseudesthesia",\n \"popularity\": 31894\n },\n {\n \"tag\": "sedimentary",\n \"popularity\": 31822\n },\n {\n \"tag\": "typewrite",\n \"popularity\": 31751\n },\n {\n \"tag\": "immemorable",\n \"popularity\": 31679\n },\n {\n \"tag\": "Myrtus",\n \"popularity\": 31608\n },\n {\n \"tag\": "hauchecornite",\n \"popularity\": 31537\n },\n {\n \"tag\": "galleylike",\n \"popularity\": 31467\n },\n {\n \"tag\": "thimber",\n \"popularity\": 31396\n },\n {\n \"tag\": "Hegelianism",\n \"popularity\": 31326\n },\n {\n \"tag\": "strig",\n \"popularity\": 31256\n },\n {\n \"tag\": "skyre",\n \"popularity\": 31187\n },\n {\n \"tag\": "eupepticism",\n \"popularity\": 31117\n },\n {\n \"tag\": "eponymism",\n \"popularity\": 31048\n },\n {\n \"tag\": "flunkeyhood",\n \"popularity\": 30979\n },\n {\n \"tag\": "Abama",\n \"popularity\": 30911\n },\n {\n \"tag\": "adiadochokinesis",\n \"popularity\": 30842\n },\n {\n \"tag\": "spendthrifty",\n \"popularity\": 30774\n },\n {\n \"tag\": "chalcedony",\n \"popularity\": 30706\n },\n {\n \"tag\": "authorism",\n \"popularity\": 30638\n },\n {\n \"tag\": "nasturtium",\n \"popularity\": 30571\n },\n {\n \"tag\": "Acanthocereus",\n \"popularity\": 30504\n },\n {\n \"tag\": "uncollapsible",\n \"popularity\": 30437\n },\n {\n \"tag\": "excursionist",\n \"popularity\": 30370\n },\n {\n \"tag\": "fogbow",\n \"popularity\": 30303\n },\n {\n \"tag\": "overlie",\n \"popularity\": 30237\n },\n {\n \"tag\": "velours",\n \"popularity\": 30171\n },\n {\n \"tag\": "zoodendria madrigal stagbush",\n \"popularity\": 30105\n },\n {\n \"tag\": "imi",\n \"popularity\": 30039\n },\n {\n \"tag\": "cojudge",\n \"popularity\": 29974\n },\n {\n \"tag\": "depurate argal",\n \"popularity\": 29909\n },\n {\n \"tag\": "unrecognition",\n \"popularity\": 29844\n },\n {\n \"tag\": "paunchful",\n \"popularity\": 29779\n },\n {\n \"tag\": "invalued",\n \"popularity\": 29714\n },\n {\n \"tag\": "probang",\n \"popularity\": 29650\n },\n {\n \"tag\": "chetvert",\n \"popularity\": 29586\n },\n {\n \"tag\": "enactable",\n \"popularity\": 29522\n },\n {\n \"tag\": "detoxicate adhibit",\n \"popularity\": 29458\n },\n {\n \"tag\": "kullaite",\n \"popularity\": 29395\n },\n {\n \"tag\": "undazzling",\n \"popularity\": 29332\n },\n {\n \"tag\": "excalation",\n \"popularity\": 29269\n },\n {\n \"tag\": "sievings",\n \"popularity\": 29206\n },\n {\n \"tag\": "disenthral",\n \"popularity\": 29143\n },\n {\n \"tag\": "disinterestedly",\n \"popularity\": 29081\n },\n {\n \"tag\": "stanner",\n \"popularity\": 29018\n },\n {\n \"tag\": "recapitulative",\n \"popularity\": 28956\n },\n {\n \"tag\": "objectivist",\n \"popularity\": 28895\n },\n {\n \"tag\": "hypermetropia",\n \"popularity\": 28833\n },\n {\n \"tag\": "incumbency",\n \"popularity\": 28772\n },\n {\n \"tag\": "protegee",\n \"popularity\": 28711\n },\n {\n \"tag\": "zealotic",\n \"popularity\": 28650\n },\n {\n \"tag\": "predebit",\n \"popularity\": 28589\n },\n {\n \"tag\": "cupolar",\n \"popularity\": 28528\n },\n {\n \"tag\": "unattributed",\n \"popularity\": 28468\n },\n {\n \"tag\": "louisine",\n \"popularity\": 28408\n },\n {\n \"tag\": "illustrate",\n \"popularity\": 28348\n },\n {\n \"tag\": "inofficiousness",\n \"popularity\": 28288\n },\n {\n \"tag\": "Americawards",\n \"popularity\": 28228\n },\n {\n \"tag\": "foreflap",\n \"popularity\": 28169\n },\n {\n \"tag\": "eruditeness",\n \"popularity\": 28110\n },\n {\n \"tag\": "copiopsia",\n \"popularity\": 28051\n },\n {\n \"tag\": "sporuliferous",\n \"popularity\": 27992\n },\n {\n \"tag\": "muttering",\n \"popularity\": 27934\n },\n {\n \"tag\": "prepsychology adrip",\n \"popularity\": 27875\n },\n {\n \"tag\": "unfriendly",\n \"popularity\": 27817\n },\n {\n \"tag\": "sulphanilic",\n \"popularity\": 27759\n },\n {\n \"tag\": "Coelococcus",\n \"popularity\": 27701\n },\n {\n \"tag\": "undoubtfulness",\n \"popularity\": 27643\n },\n {\n \"tag\": "flaringly",\n \"popularity\": 27586\n },\n {\n \"tag\": "unordain",\n \"popularity\": 27529\n },\n {\n \"tag\": "fratchety",\n \"popularity\": 27472\n },\n {\n \"tag\": "decadentism dolefully",\n \"popularity\": 27415\n },\n {\n \"tag\": "synthronus",\n \"popularity\": 27358\n },\n {\n \"tag\": "maiid",\n \"popularity\": 27301\n },\n {\n \"tag\": "rhinobyon",\n \"popularity\": 27245\n },\n {\n \"tag\": "Didynamia",\n \"popularity\": 27189\n },\n {\n \"tag\": "millionairedom",\n \"popularity\": 27133\n },\n {\n \"tag\": "mulierine",\n \"popularity\": 27077\n },\n {\n \"tag\": "Mayo",\n \"popularity\": 27021\n },\n {\n \"tag\": "perceivedness",\n \"popularity\": 26966\n },\n {\n \"tag\": "unadoration",\n \"popularity\": 26911\n },\n {\n \"tag\": "regraft",\n \"popularity\": 26856\n },\n {\n \"tag\": "witch",\n \"popularity\": 26801\n },\n {\n \"tag\": "ungrow",\n \"popularity\": 26746\n },\n {\n \"tag\": "glossopharyngeus",\n \"popularity\": 26691\n },\n {\n \"tag\": "unstirrable",\n \"popularity\": 26637\n },\n {\n \"tag\": "synodsman",\n \"popularity\": 26583\n },\n {\n \"tag\": "placentalian",\n \"popularity\": 26529\n },\n {\n \"tag\": "corpulently",\n \"popularity\": 26475\n },\n {\n \"tag\": "photochromoscope",\n \"popularity\": 26421\n },\n {\n \"tag\": "indusiate retinasphaltum chokestrap",\n \"popularity\": 26368\n },\n {\n \"tag\": "murdrum",\n \"popularity\": 26314\n },\n {\n \"tag\": "belatedness",\n \"popularity\": 26261\n },\n {\n \"tag\": "Cochin",\n \"popularity\": 26208\n },\n {\n \"tag\": "Leonist",\n \"popularity\": 26155\n },\n {\n \"tag\": "keeker confined",\n \"popularity\": 26102\n },\n {\n \"tag\": "unintellectual",\n \"popularity\": 26050\n },\n {\n \"tag\": "nymphaline bait",\n \"popularity\": 25997\n },\n {\n \"tag\": "sarcosporidiosis",\n \"popularity\": 25945\n },\n {\n \"tag\": "catawamptiously",\n \"popularity\": 25893\n },\n {\n \"tag\": "outshame",\n \"popularity\": 25841\n },\n {\n \"tag\": "animalism",\n \"popularity\": 25790\n },\n {\n \"tag\": "epithalamial",\n \"popularity\": 25738\n },\n {\n \"tag\": "ganner",\n \"popularity\": 25687\n },\n {\n \"tag\": "desilicify",\n \"popularity\": 25635\n },\n {\n \"tag\": "dandyism",\n \"popularity\": 25584\n },\n {\n \"tag\": "hyleg",\n \"popularity\": 25533\n },\n {\n \"tag\": "photophysical",\n \"popularity\": 25483\n },\n {\n \"tag\": "underload",\n \"popularity\": 25432\n },\n {\n \"tag\": "unintrusive",\n \"popularity\": 25382\n },\n {\n \"tag\": "succinamic",\n \"popularity\": 25331\n },\n {\n \"tag\": "matchy",\n \"popularity\": 25281\n },\n {\n \"tag\": "concordal",\n \"popularity\": 25231\n },\n {\n \"tag\": "exteriority",\n \"popularity\": 25181\n },\n {\n \"tag\": "sterculiad",\n \"popularity\": 25132\n },\n {\n \"tag\": "sulfoxylic",\n \"popularity\": 25082\n },\n {\n \"tag\": "oversubscription",\n \"popularity\": 25033\n },\n {\n \"tag\": "chiasmic",\n \"popularity\": 24984\n },\n {\n \"tag\": "pseudoparthenogenesis",\n \"popularity\": 24935\n },\n {\n \"tag\": "indorse",\n \"popularity\": 24886\n },\n {\n \"tag\": "Krishnaite",\n \"popularity\": 24837\n },\n {\n \"tag\": "calcinize",\n \"popularity\": 24788\n },\n {\n \"tag\": "rhodium",\n \"popularity\": 24740\n },\n {\n \"tag\": "tragopan",\n \"popularity\": 24692\n },\n {\n \"tag\": "overwhelmingly",\n \"popularity\": 24643\n },\n {\n \"tag\": "procidence accorporate",\n \"popularity\": 24595\n },\n {\n \"tag\": "polemize speelless",\n \"popularity\": 24548\n },\n {\n \"tag\": "radiocarpal goran",\n \"popularity\": 24500\n },\n {\n \"tag\": "counteroffer Pelodytes",\n \"popularity\": 24452\n },\n {\n \"tag\": "lionhearted",\n \"popularity\": 24405\n },\n {\n \"tag\": "paramastoid",\n \"popularity\": 24358\n },\n {\n \"tag\": "murine",\n \"popularity\": 24310\n },\n {\n \"tag\": "woodbined",\n \"popularity\": 24263\n },\n {\n \"tag\": "packthread",\n \"popularity\": 24217\n },\n {\n \"tag\": "citreous",\n \"popularity\": 24170\n },\n {\n \"tag\": "unfallaciously",\n \"popularity\": 24123\n },\n {\n \"tag\": "tentwork reincarnadine",\n \"popularity\": 24077\n },\n {\n \"tag\": "verminousness",\n \"popularity\": 24030\n },\n {\n \"tag\": "sillometer",\n \"popularity\": 23984\n },\n {\n \"tag\": "jointy",\n \"popularity\": 23938\n },\n {\n \"tag\": "streptolysin",\n \"popularity\": 23892\n },\n {\n \"tag\": "Florentinism",\n \"popularity\": 23847\n },\n {\n \"tag\": "monosomatous",\n \"popularity\": 23801\n },\n {\n \"tag\": "capsulociliary",\n \"popularity\": 23756\n },\n {\n \"tag\": "organum",\n \"popularity\": 23710\n },\n {\n \"tag\": "overtly",\n \"popularity\": 23665\n },\n {\n \"tag\": "ophthalmoscopical",\n \"popularity\": 23620\n },\n {\n \"tag\": "supposititiously",\n \"popularity\": 23575\n },\n {\n \"tag\": "radiochemistry",\n \"popularity\": 23530\n },\n {\n \"tag\": "flaxtail",\n \"popularity\": 23486\n },\n {\n \"tag\": "pretympanic",\n \"popularity\": 23441\n },\n {\n \"tag\": "auscultation",\n \"popularity\": 23397\n },\n {\n \"tag\": "hairdresser",\n \"popularity\": 23352\n },\n {\n \"tag\": "chaffless",\n \"popularity\": 23308\n },\n {\n \"tag\": "polioencephalitis",\n \"popularity\": 23264\n },\n {\n \"tag\": "axolotl",\n \"popularity\": 23220\n },\n {\n \"tag\": "smous",\n \"popularity\": 23177\n },\n {\n \"tag\": "morgen disenamour toothed",\n \"popularity\": 23133\n },\n {\n \"tag\": "chaiseless",\n \"popularity\": 23089\n },\n {\n \"tag\": "frugally",\n \"popularity\": 23046\n },\n {\n \"tag\": "combustive antievolutionist cinenegative",\n \"popularity\": 23003\n },\n {\n \"tag\": "malacolite",\n \"popularity\": 22960\n },\n {\n \"tag\": "borne",\n \"popularity\": 22917\n },\n {\n \"tag\": "mercaptole",\n \"popularity\": 22874\n },\n {\n \"tag\": "judicatory",\n \"popularity\": 22831\n },\n {\n \"tag\": "noctivagation",\n \"popularity\": 22789\n },\n {\n \"tag\": "synthete",\n \"popularity\": 22746\n },\n {\n \"tag\": "tomboyism",\n \"popularity\": 22704\n },\n {\n \"tag\": "serranoid",\n \"popularity\": 22661\n },\n {\n \"tag\": "impostorism",\n \"popularity\": 22619\n },\n {\n \"tag\": "flagellosis Talitha",\n \"popularity\": 22577\n },\n {\n \"tag\": "pseudoviscous",\n \"popularity\": 22535\n },\n {\n \"tag\": "Galleriidae",\n \"popularity\": 22494\n },\n {\n \"tag\": "undulation didelph Comintern",\n \"popularity\": 22452\n },\n {\n \"tag\": "triangulopyramidal",\n \"popularity\": 22411\n },\n {\n \"tag\": "middlings",\n \"popularity\": 22369\n },\n {\n \"tag\": "piperazin",\n \"popularity\": 22328\n },\n {\n \"tag\": "endostitis",\n \"popularity\": 22287\n },\n {\n \"tag\": "swordlike",\n \"popularity\": 22246\n },\n {\n \"tag\": "forthwith",\n \"popularity\": 22205\n },\n {\n \"tag\": "menaceful",\n \"popularity\": 22164\n },\n {\n \"tag\": "explantation defective",\n \"popularity\": 22123\n },\n {\n \"tag\": "arrear",\n \"popularity\": 22083\n },\n {\n \"tag\": "engraft",\n \"popularity\": 22042\n },\n {\n \"tag\": "revolunteer",\n \"popularity\": 22002\n },\n {\n \"tag\": "foliaceous",\n \"popularity\": 21962\n },\n {\n \"tag\": "pseudograph",\n \"popularity\": 21922\n },\n {\n \"tag\": "maenaite",\n \"popularity\": 21882\n },\n {\n \"tag\": "interfinger",\n \"popularity\": 21842\n },\n {\n \"tag\": "macroscopically",\n \"popularity\": 21802\n },\n {\n \"tag\": "bluewood",\n \"popularity\": 21762\n },\n {\n \"tag\": "chikara",\n \"popularity\": 21723\n },\n {\n \"tag\": "reprehension diazeuxis nickelous",\n \"popularity\": 21683\n },\n {\n \"tag\": "vacuation",\n \"popularity\": 21644\n },\n {\n \"tag\": "Sartish",\n \"popularity\": 21605\n },\n {\n \"tag\": "pseudogyny",\n \"popularity\": 21566\n },\n {\n \"tag\": "friedcake",\n \"popularity\": 21527\n },\n {\n \"tag\": "thraw",\n \"popularity\": 21488\n },\n {\n \"tag\": "bifid",\n \"popularity\": 21449\n },\n {\n \"tag\": "truthlessly",\n \"popularity\": 21411\n },\n {\n \"tag\": "lungy",\n \"popularity\": 21372\n },\n {\n \"tag\": "fluoborite",\n \"popularity\": 21334\n },\n {\n \"tag\": "anthropolithic",\n \"popularity\": 21295\n },\n {\n \"tag\": "coachee straw",\n \"popularity\": 21257\n },\n {\n \"tag\": "dehorner Grecize",\n \"popularity\": 21219\n },\n {\n \"tag\": "spondylopyosis",\n \"popularity\": 21181\n },\n {\n \"tag\": "institutionary",\n \"popularity\": 21143\n },\n {\n \"tag\": "agentry",\n \"popularity\": 21105\n },\n {\n \"tag\": "musing bietle",\n \"popularity\": 21068\n },\n {\n \"tag\": "cormophyte",\n \"popularity\": 21030\n },\n {\n \"tag\": "semielliptic",\n \"popularity\": 20993\n },\n {\n \"tag\": "ependytes",\n \"popularity\": 20955\n },\n {\n \"tag\": "coachmaster",\n \"popularity\": 20918\n },\n {\n \"tag\": "overexuberant",\n \"popularity\": 20881\n },\n {\n \"tag\": "selectable",\n \"popularity\": 20844\n },\n {\n \"tag\": "saclike",\n \"popularity\": 20807\n },\n {\n \"tag\": "mullion",\n \"popularity\": 20770\n },\n {\n \"tag\": "pantheonize prevalency",\n \"popularity\": 20733\n },\n {\n \"tag\": "trophosperm",\n \"popularity\": 20697\n },\n {\n \"tag\": "paraphrasist",\n \"popularity\": 20660\n },\n {\n \"tag\": "undercarry",\n \"popularity\": 20624\n },\n {\n \"tag\": "thallogenic",\n \"popularity\": 20587\n },\n {\n \"tag\": "bulgy forbid",\n \"popularity\": 20551\n },\n {\n \"tag\": "proliquor gratulatory",\n \"popularity\": 20515\n },\n {\n \"tag\": "booker",\n \"popularity\": 20479\n },\n {\n \"tag\": "wizen",\n \"popularity\": 20443\n },\n {\n \"tag\": "synchondrosially",\n \"popularity\": 20407\n },\n {\n \"tag\": "herbless",\n \"popularity\": 20371\n },\n {\n \"tag\": "arfvedsonite",\n \"popularity\": 20336\n },\n {\n \"tag\": "Neuroptera",\n \"popularity\": 20300\n },\n {\n \"tag\": "fingerstone",\n \"popularity\": 20265\n },\n {\n \"tag\": "Odontoglossae",\n \"popularity\": 20229\n },\n {\n \"tag\": "transmigrator",\n \"popularity\": 20194\n },\n {\n \"tag\": "Dehaites",\n \"popularity\": 20159\n },\n {\n \"tag\": "Molinist",\n \"popularity\": 20124\n },\n {\n \"tag\": "novelistic",\n \"popularity\": 20089\n },\n {\n \"tag\": "astelic",\n \"popularity\": 20054\n },\n {\n \"tag\": "pyelometry",\n \"popularity\": 20019\n },\n {\n \"tag\": "pigmentation",\n \"popularity\": 19984\n },\n {\n \"tag\": "epinaos",\n \"popularity\": 19950\n },\n {\n \"tag\": "outdare",\n \"popularity\": 19915\n },\n {\n \"tag\": "Funje philaristocracy",\n \"popularity\": 19881\n },\n {\n \"tag\": "keddah",\n \"popularity\": 19846\n },\n {\n \"tag\": "axoidean",\n \"popularity\": 19812\n },\n {\n \"tag\": "ovule",\n \"popularity\": 19778\n },\n {\n \"tag\": "solidify",\n \"popularity\": 19744\n },\n {\n \"tag\": "noncelestial",\n \"popularity\": 19710\n },\n {\n \"tag\": "overmultiplication",\n \"popularity\": 19676\n },\n {\n \"tag\": "hexatetrahedron",\n \"popularity\": 19642\n },\n {\n \"tag\": "pliciform",\n \"popularity\": 19609\n },\n {\n \"tag\": "zimbalon",\n \"popularity\": 19575\n },\n {\n \"tag\": "annexational",\n \"popularity\": 19542\n },\n {\n \"tag\": "eurhodol",\n \"popularity\": 19508\n },\n {\n \"tag\": "yark",\n \"popularity\": 19475\n },\n {\n \"tag\": "illegality nitroalizarin",\n \"popularity\": 19442\n },\n {\n \"tag\": "quadratum",\n \"popularity\": 19409\n },\n {\n \"tag\": "saccharine",\n \"popularity\": 19376\n },\n {\n \"tag\": "unemploy",\n \"popularity\": 19343\n },\n {\n \"tag\": "uniclinal unipotent",\n \"popularity\": 19310\n },\n {\n \"tag\": "turbo",\n \"popularity\": 19277\n },\n {\n \"tag\": "sybarism",\n \"popularity\": 19244\n },\n {\n \"tag\": "motacilline",\n \"popularity\": 19212\n },\n {\n \"tag\": "weaselly",\n \"popularity\": 19179\n },\n {\n \"tag\": "plastid",\n \"popularity\": 19147\n },\n {\n \"tag\": "wasting",\n \"popularity\": 19114\n },\n {\n \"tag\": "begrime fluting",\n \"popularity\": 19082\n },\n {\n \"tag\": "Nephilinae",\n \"popularity\": 19050\n },\n {\n \"tag\": "disregardance",\n \"popularity\": 19018\n },\n {\n \"tag\": "Shakerlike",\n \"popularity\": 18986\n },\n {\n \"tag\": "uniped",\n \"popularity\": 18954\n },\n {\n \"tag\": "knap",\n \"popularity\": 18922\n },\n {\n \"tag\": "electivism undergardener",\n \"popularity\": 18890\n },\n {\n \"tag\": "hulverheaded",\n \"popularity\": 18858\n },\n {\n \"tag\": "unruptured",\n \"popularity\": 18827\n },\n {\n \"tag\": "solemnize credently",\n \"popularity\": 18795\n },\n {\n \"tag\": "pentastomoid possessingly",\n \"popularity\": 18764\n },\n {\n \"tag\": "octose",\n \"popularity\": 18733\n },\n {\n \"tag\": "psithurism indefensibility",\n \"popularity\": 18701\n },\n {\n \"tag\": "torrentuous cyanometer subcrenate",\n \"popularity\": 18670\n },\n {\n \"tag\": "photoplaywright tapaculo",\n \"popularity\": 18639\n },\n {\n \"tag\": "univalence",\n \"popularity\": 18608\n },\n {\n \"tag\": "Porthetria",\n \"popularity\": 18577\n },\n {\n \"tag\": "funambulo",\n \"popularity\": 18546\n },\n {\n \"tag\": "pedion",\n \"popularity\": 18515\n },\n {\n \"tag\": "horticulturally",\n \"popularity\": 18485\n },\n {\n \"tag\": "marennin",\n \"popularity\": 18454\n },\n {\n \"tag\": "horselaugh",\n \"popularity\": 18423\n },\n {\n \"tag\": "semiexecutive",\n \"popularity\": 18393\n },\n {\n \"tag\": "Monopteridae",\n \"popularity\": 18363\n },\n {\n \"tag\": "commonable",\n \"popularity\": 18332\n },\n {\n \"tag\": "dreariment",\n \"popularity\": 18302\n },\n {\n \"tag\": "disbud",\n \"popularity\": 18272\n },\n {\n \"tag\": "monocled",\n \"popularity\": 18242\n },\n {\n \"tag\": "hurlbarrow",\n \"popularity\": 18212\n },\n {\n \"tag\": "opiateproof",\n \"popularity\": 18182\n },\n {\n \"tag\": "Fahrenheit",\n \"popularity\": 18152\n },\n {\n \"tag\": "writhed",\n \"popularity\": 18122\n },\n {\n \"tag\": "Volstead",\n \"popularity\": 18093\n },\n {\n \"tag\": "yesternight",\n \"popularity\": 18063\n },\n {\n \"tag\": "readmittance",\n \"popularity\": 18033\n },\n {\n \"tag\": "reiterable",\n \"popularity\": 18004\n },\n {\n \"tag\": "triquetral",\n \"popularity\": 17975\n },\n {\n \"tag\": "guillotinement",\n \"popularity\": 17945\n },\n {\n \"tag\": "repermission",\n \"popularity\": 17916\n },\n {\n \"tag\": "assishly",\n \"popularity\": 17887\n },\n {\n \"tag\": "daidle",\n \"popularity\": 17858\n },\n {\n \"tag\": "prismatoid",\n \"popularity\": 17829\n },\n {\n \"tag\": "irreptitious",\n \"popularity\": 17800\n },\n {\n \"tag\": "sourdeline",\n \"popularity\": 17771\n },\n {\n \"tag\": "Austrian",\n \"popularity\": 17742\n },\n {\n \"tag\": "psychorrhagic",\n \"popularity\": 17713\n },\n {\n \"tag\": "Monumbo",\n \"popularity\": 17685\n },\n {\n \"tag\": "cloiochoanitic",\n \"popularity\": 17656\n },\n {\n \"tag\": "hant",\n \"popularity\": 17628\n },\n {\n \"tag\": "roily pulldown",\n \"popularity\": 17599\n },\n {\n \"tag\": "recongratulation",\n \"popularity\": 17571\n },\n {\n \"tag\": "Peking",\n \"popularity\": 17543\n },\n {\n \"tag\": "erdvark",\n \"popularity\": 17514\n },\n {\n \"tag\": "antimnemonic",\n \"popularity\": 17486\n },\n {\n \"tag\": "noncapillarity",\n \"popularity\": 17458\n },\n {\n \"tag\": "irrepressive",\n \"popularity\": 17430\n },\n {\n \"tag\": "Petromyzontes",\n \"popularity\": 17402\n },\n {\n \"tag\": "piscatorially",\n \"popularity\": 17374\n },\n {\n \"tag\": "cholesterosis",\n \"popularity\": 17346\n },\n {\n \"tag\": "denunciate",\n \"popularity\": 17319\n },\n {\n \"tag\": "unmetalled",\n \"popularity\": 17291\n },\n {\n \"tag\": "Tigris enruin",\n \"popularity\": 17263\n },\n {\n \"tag\": "anaspalin",\n \"popularity\": 17236\n },\n {\n \"tag\": "monodromy",\n \"popularity\": 17208\n },\n {\n \"tag\": "Canichanan",\n \"popularity\": 17181\n },\n {\n \"tag\": "mesolabe",\n \"popularity\": 17154\n },\n {\n \"tag\": "trichothallic overcunningness",\n \"popularity\": 17127\n },\n {\n \"tag\": "spinsterishly",\n \"popularity\": 17099\n },\n {\n \"tag\": "sensilla",\n \"popularity\": 17072\n },\n {\n \"tag\": "wifelkin",\n \"popularity\": 17045\n },\n {\n \"tag\": "suppositionless",\n \"popularity\": 17018\n },\n {\n \"tag\": "irksomeness",\n \"popularity\": 16991\n },\n {\n \"tag\": "sanbenito",\n \"popularity\": 16964\n },\n {\n \"tag\": "nonstatement",\n \"popularity\": 16938\n },\n {\n \"tag\": "phenoloid",\n \"popularity\": 16911\n },\n {\n \"tag\": "Steinberger",\n \"popularity\": 16884\n },\n {\n \"tag\": "replicated boom",\n \"popularity\": 16858\n },\n {\n \"tag\": "sciomachiology",\n \"popularity\": 16831\n },\n {\n \"tag\": "starwise",\n \"popularity\": 16805\n },\n {\n \"tag\": "prerich",\n \"popularity\": 16778\n },\n {\n \"tag\": "unspawned",\n \"popularity\": 16752\n },\n {\n \"tag\": "unindentable",\n \"popularity\": 16726\n },\n {\n \"tag\": "stromatic",\n \"popularity\": 16700\n },\n {\n \"tag\": "fetishize",\n \"popularity\": 16673\n },\n {\n \"tag\": "dihydroxy",\n \"popularity\": 16647\n },\n {\n \"tag\": "precaudal",\n \"popularity\": 16621\n },\n {\n \"tag\": "Madagascar",\n \"popularity\": 16595\n },\n {\n \"tag\": "repinement",\n \"popularity\": 16570\n },\n {\n \"tag\": "noncathedral wenzel",\n \"popularity\": 16544\n },\n {\n \"tag\": "corollike",\n \"popularity\": 16518\n },\n {\n \"tag\": "pubes unamortization",\n \"popularity\": 16492\n },\n {\n \"tag\": "brickcroft",\n \"popularity\": 16467\n },\n {\n \"tag\": "intertrabecular",\n \"popularity\": 16441\n },\n {\n \"tag\": "formulaic",\n \"popularity\": 16416\n },\n {\n \"tag\": "arienzo",\n \"popularity\": 16390\n },\n {\n \"tag\": "Mazzinian",\n \"popularity\": 16365\n },\n {\n \"tag\": "wallowishly",\n \"popularity\": 16339\n },\n {\n \"tag\": "sysselman",\n \"popularity\": 16314\n },\n {\n \"tag\": "seligmannite",\n \"popularity\": 16289\n },\n {\n \"tag\": "harlequinery",\n \"popularity\": 16264\n },\n {\n \"tag\": "zucchetto",\n \"popularity\": 16239\n },\n {\n \"tag\": "malonyl",\n \"popularity\": 16214\n },\n {\n \"tag\": "patwari",\n \"popularity\": 16189\n },\n {\n \"tag\": "neoholmia venturesomeness",\n \"popularity\": 16164\n },\n {\n \"tag\": "Dehwar",\n \"popularity\": 16139\n },\n {\n \"tag\": "fetiferous",\n \"popularity\": 16114\n },\n {\n \"tag\": "chromatophore",\n \"popularity\": 16090\n },\n {\n \"tag\": "reregistration",\n \"popularity\": 16065\n },\n {\n \"tag\": "alienor",\n \"popularity\": 16040\n },\n {\n \"tag\": "Hexagynia",\n \"popularity\": 16016\n },\n {\n \"tag\": "cerebrotonia",\n \"popularity\": 15991\n },\n {\n \"tag\": "deedbox",\n \"popularity\": 15967\n },\n {\n \"tag\": "staab",\n \"popularity\": 15943\n },\n {\n \"tag\": "uratemia",\n \"popularity\": 15918\n },\n {\n \"tag\": "flaunt",\n \"popularity\": 15894\n },\n {\n \"tag\": "bogy",\n \"popularity\": 15870\n },\n {\n \"tag\": "subcartilaginous",\n \"popularity\": 15846\n },\n {\n \"tag\": "protonephridial",\n \"popularity\": 15822\n },\n {\n \"tag\": "Boswellia",\n \"popularity\": 15798\n },\n {\n \"tag\": "relaxant untiaraed protoepiphyte",\n \"popularity\": 15774\n },\n {\n \"tag\": "nesslerization",\n \"popularity\": 15750\n },\n {\n \"tag\": "precession",\n \"popularity\": 15726\n },\n {\n \"tag\": "peat",\n \"popularity\": 15702\n },\n {\n \"tag\": "unbit",\n \"popularity\": 15678\n },\n {\n \"tag\": "snailish",\n \"popularity\": 15655\n },\n {\n \"tag\": "porismatical",\n \"popularity\": 15631\n },\n {\n \"tag\": "hooflike",\n \"popularity\": 15608\n },\n {\n \"tag\": "resuppose phene cranic",\n \"popularity\": 15584\n },\n {\n \"tag\": "peptonization kipskin",\n \"popularity\": 15561\n },\n {\n \"tag\": "birdstone",\n \"popularity\": 15537\n },\n {\n \"tag\": "empty inferoanterior",\n \"popularity\": 15514\n },\n {\n \"tag\": "androtauric",\n \"popularity\": 15491\n },\n {\n \"tag\": "triamide",\n \"popularity\": 15467\n },\n {\n \"tag\": "showmanry",\n \"popularity\": 15444\n },\n {\n \"tag\": "doing",\n \"popularity\": 15421\n },\n {\n \"tag\": "bouchaleen",\n \"popularity\": 15398\n },\n {\n \"tag\": "precollude",\n \"popularity\": 15375\n },\n {\n \"tag\": "finger",\n \"popularity\": 15352\n },\n {\n \"tag\": "limnetic intermessenger",\n \"popularity\": 15329\n },\n {\n \"tag\": "uncharitable picrotoxic",\n \"popularity\": 15306\n },\n {\n \"tag\": "nationalizer Phasmidae",\n \"popularity\": 15283\n },\n {\n \"tag\": "laughingstock",\n \"popularity\": 15261\n },\n {\n \"tag\": "nondeferential",\n \"popularity\": 15238\n },\n {\n \"tag\": "uproariously",\n \"popularity\": 15215\n },\n {\n \"tag\": "manzanilla",\n \"popularity\": 15193\n },\n {\n \"tag\": "khahoon",\n \"popularity\": 15170\n },\n {\n \"tag\": "olericulturally longshanks",\n \"popularity\": 15148\n },\n {\n \"tag\": "enthusiastically methionic",\n \"popularity\": 15125\n },\n {\n \"tag\": "pobs",\n \"popularity\": 15103\n },\n {\n \"tag\": "tricarpellate",\n \"popularity\": 15081\n },\n {\n \"tag\": "souterrain",\n \"popularity\": 15058\n },\n {\n \"tag\": "tethelin",\n \"popularity\": 15036\n },\n {\n \"tag\": "tartle",\n \"popularity\": 15014\n },\n {\n \"tag\": "tidelike",\n \"popularity\": 14992\n },\n {\n \"tag\": "cosmoramic",\n \"popularity\": 14970\n },\n {\n \"tag\": "pretardiness",\n \"popularity\": 14948\n },\n {\n \"tag\": "insoul",\n \"popularity\": 14926\n },\n {\n \"tag\": "anthroxan",\n \"popularity\": 14904\n },\n {\n \"tag\": "jilter",\n \"popularity\": 14882\n },\n {\n \"tag\": "pectinibranchian trematode",\n \"popularity\": 14860\n },\n {\n \"tag\": "Renaissancist",\n \"popularity\": 14838\n },\n {\n \"tag\": "imaginant",\n \"popularity\": 14817\n },\n {\n \"tag\": "supercensure",\n \"popularity\": 14795\n },\n {\n \"tag\": "festilogy",\n \"popularity\": 14773\n },\n {\n \"tag\": "regression",\n \"popularity\": 14752\n },\n {\n \"tag\": "mesobregmate languorously",\n \"popularity\": 14730\n },\n {\n \"tag\": "unsupernaturalized",\n \"popularity\": 14709\n },\n {\n \"tag\": "boobyish",\n \"popularity\": 14687\n },\n {\n \"tag\": "scopolamine",\n \"popularity\": 14666\n },\n {\n \"tag\": "reamputation unchristianly",\n \"popularity\": 14645\n },\n {\n \"tag\": "cuneatic",\n \"popularity\": 14623\n },\n {\n \"tag\": "heathberry",\n \"popularity\": 14602\n },\n {\n \"tag\": "hate",\n \"popularity\": 14581\n },\n {\n \"tag\": "redeemableness",\n \"popularity\": 14560\n },\n {\n \"tag\": "damasse",\n \"popularity\": 14539\n },\n {\n \"tag\": "thrillsome",\n \"popularity\": 14518\n },\n {\n \"tag\": "disseverment",\n \"popularity\": 14497\n },\n {\n \"tag\": "underbishopric Ostyak",\n \"popularity\": 14476\n },\n {\n \"tag\": "Exoascales",\n \"popularity\": 14455\n },\n {\n \"tag\": "soiled",\n \"popularity\": 14434\n },\n {\n \"tag\": "Cain",\n \"popularity\": 14413\n },\n {\n \"tag\": "mismanageable arenae",\n \"popularity\": 14392\n },\n {\n \"tag\": "manducate unhinderably",\n \"popularity\": 14372\n },\n {\n \"tag\": "peregrin",\n \"popularity\": 14351\n },\n {\n \"tag\": "musicianly",\n \"popularity\": 14330\n },\n {\n \"tag\": "aln",\n \"popularity\": 14310\n },\n {\n \"tag\": "intercentrum",\n \"popularity\": 14289\n },\n {\n \"tag\": "roothold",\n \"popularity\": 14269\n },\n {\n \"tag\": "jane aneurism",\n \"popularity\": 14248\n },\n {\n \"tag\": "insinuatively forefeel phytolatrous",\n \"popularity\": 14228\n },\n {\n \"tag\": "kanchil",\n \"popularity\": 14208\n },\n {\n \"tag\": "Austrophile",\n \"popularity\": 14187\n },\n {\n \"tag\": "unterrorized",\n \"popularity\": 14167\n },\n {\n \"tag\": "admeasure",\n \"popularity\": 14147\n },\n {\n \"tag\": "electrodissolution",\n \"popularity\": 14127\n },\n {\n \"tag\": "unweddedly",\n \"popularity\": 14107\n },\n {\n \"tag\": "unannoying",\n \"popularity\": 14087\n },\n {\n \"tag\": "uningenuous",\n \"popularity\": 14067\n },\n {\n \"tag\": "omnibenevolent",\n \"popularity\": 14047\n },\n {\n \"tag\": "commissure",\n \"popularity\": 14027\n },\n {\n \"tag\": "tellureted",\n \"popularity\": 14007\n },\n {\n \"tag\": "suffragan",\n \"popularity\": 13987\n },\n {\n \"tag\": "sphaeriaceous",\n \"popularity\": 13967\n },\n {\n \"tag\": "unfearing",\n \"popularity\": 13947\n },\n {\n \"tag\": "stentoriousness precounsellor",\n \"popularity\": 13928\n },\n {\n \"tag\": "haemaspectroscope",\n \"popularity\": 13908\n },\n {\n \"tag\": "teras",\n \"popularity\": 13888\n },\n {\n \"tag\": "pulicine",\n \"popularity\": 13869\n },\n {\n \"tag\": "colicystopyelitis",\n \"popularity\": 13849\n },\n {\n \"tag\": "Physalia",\n \"popularity\": 13830\n },\n {\n \"tag\": "Saxicolidae",\n \"popularity\": 13810\n },\n {\n \"tag\": "peritonital",\n \"popularity\": 13791\n },\n {\n \"tag\": "dysphotic",\n \"popularity\": 13771\n },\n {\n \"tag\": "unabandoned",\n \"popularity\": 13752\n },\n {\n \"tag\": "rashful",\n \"popularity\": 13733\n },\n {\n \"tag\": "goodyness Manobo",\n \"popularity\": 13714\n },\n {\n \"tag\": "glaring",\n \"popularity\": 13694\n },\n {\n \"tag\": "horrorful",\n \"popularity\": 13675\n },\n {\n \"tag\": "intercepting",\n \"popularity\": 13656\n },\n {\n \"tag\": "semifine",\n \"popularity\": 13637\n },\n {\n \"tag\": "Gaypoo",\n \"popularity\": 13618\n },\n {\n \"tag\": "Metrosideros",\n \"popularity\": 13599\n },\n {\n \"tag\": "thoracicolumbar",\n \"popularity\": 13580\n },\n {\n \"tag\": "unserried",\n \"popularity\": 13561\n },\n {\n \"tag\": "keeperess cauterization",\n \"popularity\": 13542\n },\n {\n \"tag\": "administrant",\n \"popularity\": 13523\n },\n {\n \"tag\": "unpropitiatedness",\n \"popularity\": 13505\n },\n {\n \"tag\": "pensileness",\n \"popularity\": 13486\n },\n {\n \"tag\": "quinaldic unreceivable",\n \"popularity\": 13467\n },\n {\n \"tag\": "Carnaria",\n \"popularity\": 13448\n },\n {\n \"tag\": "azothionium wurrus",\n \"popularity\": 13430\n },\n {\n \"tag\": "mistresshood",\n \"popularity\": 13411\n },\n {\n \"tag\": "Savara",\n \"popularity\": 13393\n },\n {\n \"tag\": "dasyurine",\n \"popularity\": 13374\n },\n {\n \"tag\": "superideal",\n \"popularity\": 13356\n },\n {\n \"tag\": "Parisianize",\n \"popularity\": 13337\n },\n {\n \"tag\": "underearth",\n \"popularity\": 13319\n },\n {\n \"tag\": "athrogenic",\n \"popularity\": 13301\n },\n {\n \"tag\": "communicate",\n \"popularity\": 13282\n },\n {\n \"tag\": "denervation enworthed",\n \"popularity\": 13264\n },\n {\n \"tag\": "subbromide",\n \"popularity\": 13246\n },\n {\n \"tag\": "stenocoriasis",\n \"popularity\": 13228\n },\n {\n \"tag\": "facetiousness",\n \"popularity\": 13209\n },\n {\n \"tag\": "twaddling",\n \"popularity\": 13191\n },\n {\n \"tag\": "tetartoconid",\n \"popularity\": 13173\n },\n {\n \"tag\": "audiophile",\n \"popularity\": 13155\n },\n {\n \"tag\": "fustigate",\n \"popularity\": 13137\n },\n {\n \"tag\": "Sorbian cacophonia",\n \"popularity\": 13119\n },\n {\n \"tag\": "fondish",\n \"popularity\": 13101\n },\n {\n \"tag\": "endomastoiditis",\n \"popularity\": 13084\n },\n {\n \"tag\": "sniptious",\n \"popularity\": 13066\n },\n {\n \"tag\": "glochidiate",\n \"popularity\": 13048\n },\n {\n \"tag\": "polycarboxylic",\n \"popularity\": 13030\n },\n {\n \"tag\": "stamp",\n \"popularity\": 13012\n },\n {\n \"tag\": "tritonymph endotoxoid",\n \"popularity\": 12995\n },\n {\n \"tag\": "wolfskin",\n \"popularity\": 12977\n },\n {\n \"tag\": "oncosimeter",\n \"popularity\": 12959\n },\n {\n \"tag\": "outward",\n \"popularity\": 12942\n },\n {\n \"tag\": "circumscribed",\n \"popularity\": 12924\n },\n {\n \"tag\": "autohemolytic",\n \"popularity\": 12907\n },\n {\n \"tag\": "isorhamnose",\n \"popularity\": 12889\n },\n {\n \"tag\": "monarchomachic",\n \"popularity\": 12872\n },\n {\n \"tag\": "phaenomenon",\n \"popularity\": 12855\n },\n {\n \"tag\": "angiopressure",\n \"popularity\": 12837\n },\n {\n \"tag\": "similarize",\n \"popularity\": 12820\n },\n {\n \"tag\": "unseeable",\n \"popularity\": 12803\n },\n {\n \"tag\": "Toryize",\n \"popularity\": 12785\n },\n {\n \"tag\": "fruitling",\n \"popularity\": 12768\n },\n {\n \"tag\": "axle",\n \"popularity\": 12751\n },\n {\n \"tag\": "priestal cocked",\n \"popularity\": 12734\n },\n {\n \"tag\": "serotoxin",\n \"popularity\": 12717\n },\n {\n \"tag\": "unmovably",\n \"popularity\": 12700\n },\n {\n \"tag\": "darbha",\n \"popularity\": 12683\n },\n {\n \"tag\": "Mongolize",\n \"popularity\": 12666\n },\n {\n \"tag\": "clusteringly",\n \"popularity\": 12649\n },\n {\n \"tag\": "tendence",\n \"popularity\": 12632\n },\n {\n \"tag\": "foziness",\n \"popularity\": 12615\n },\n {\n \"tag\": "brickkiln lithify",\n \"popularity\": 12598\n },\n {\n \"tag\": "unpriest",\n \"popularity\": 12581\n },\n {\n \"tag\": "convincer",\n \"popularity\": 12564\n },\n {\n \"tag\": "mornlike",\n \"popularity\": 12548\n },\n {\n \"tag\": "overaddiction ostentatiousness",\n \"popularity\": 12531\n },\n {\n \"tag\": "diffusively moccasin pendom",\n \"popularity\": 12514\n },\n {\n \"tag\": "boose",\n \"popularity\": 12498\n },\n {\n \"tag\": "myonosus",\n \"popularity\": 12481\n },\n {\n \"tag\": "handsome",\n \"popularity\": 12464\n },\n {\n \"tag\": "paroxysmic",\n \"popularity\": 12448\n },\n {\n \"tag\": "Ulidian",\n \"popularity\": 12431\n },\n {\n \"tag\": "heartache",\n \"popularity\": 12415\n },\n {\n \"tag\": "torporize",\n \"popularity\": 12398\n },\n {\n \"tag\": "hippish",\n \"popularity\": 12382\n },\n {\n \"tag\": "stigmal militation",\n \"popularity\": 12366\n },\n {\n \"tag\": "matmaker",\n \"popularity\": 12349\n },\n {\n \"tag\": "marantaceous bivoluminous",\n \"popularity\": 12333\n },\n {\n \"tag\": "Uraniidae",\n \"popularity\": 12317\n },\n {\n \"tag\": "risper",\n \"popularity\": 12301\n },\n {\n \"tag\": "tintinnabulation",\n \"popularity\": 12284\n },\n {\n \"tag\": "tributorian",\n \"popularity\": 12268\n },\n {\n \"tag\": "ashamedly",\n \"popularity\": 12252\n },\n {\n \"tag\": "Macrourus",\n \"popularity\": 12236\n },\n {\n \"tag\": "Chora",\n \"popularity\": 12220\n },\n {\n \"tag\": "caul",\n \"popularity\": 12204\n },\n {\n \"tag\": "exsector",\n \"popularity\": 12188\n },\n {\n \"tag\": "acutish",\n \"popularity\": 12172\n },\n {\n \"tag\": "amphichrome",\n \"popularity\": 12156\n },\n {\n \"tag\": "guarder",\n \"popularity\": 12140\n },\n {\n \"tag\": "sculpturally",\n \"popularity\": 12124\n },\n {\n \"tag\": "benightmare",\n \"popularity\": 12108\n },\n {\n \"tag\": "chucky",\n \"popularity\": 12093\n },\n {\n \"tag\": "Venetian",\n \"popularity\": 12077\n },\n {\n \"tag\": "autotheater",\n \"popularity\": 12061\n },\n {\n \"tag\": "planarioid",\n \"popularity\": 12045\n },\n {\n \"tag\": "handkerchiefful",\n \"popularity\": 12030\n },\n {\n \"tag\": "fuliginousness potentize",\n \"popularity\": 12014\n },\n {\n \"tag\": "pantheum",\n \"popularity\": 11998\n },\n {\n \"tag\": "heavyweight",\n \"popularity\": 11983\n },\n {\n \"tag\": "unbrick",\n \"popularity\": 11967\n },\n {\n \"tag\": "duomachy",\n \"popularity\": 11952\n },\n {\n \"tag\": "polyphyodont",\n \"popularity\": 11936\n },\n {\n \"tag\": "hibernacle",\n \"popularity\": 11921\n },\n {\n \"tag\": "undistend",\n \"popularity\": 11905\n },\n {\n \"tag\": "hystericky",\n \"popularity\": 11890\n },\n {\n \"tag\": "paleolimnology",\n \"popularity\": 11875\n },\n {\n \"tag\": "cedarware",\n \"popularity\": 11859\n },\n {\n \"tag\": "overwrested",\n \"popularity\": 11844\n },\n {\n \"tag\": "Syriacism",\n \"popularity\": 11829\n },\n {\n \"tag\": "pretan",\n \"popularity\": 11813\n },\n {\n \"tag\": "formant",\n \"popularity\": 11798\n },\n {\n \"tag\": "pharmacopoeist Fedia",\n \"popularity\": 11783\n },\n {\n \"tag\": "exorcist eerisome",\n \"popularity\": 11768\n },\n {\n \"tag\": "separation",\n \"popularity\": 11753\n },\n {\n \"tag\": "infancy",\n \"popularity\": 11738\n },\n {\n \"tag\": "ecrasite",\n \"popularity\": 11723\n },\n {\n \"tag\": "propolize",\n \"popularity\": 11708\n },\n {\n \"tag\": "uncram phyllin",\n \"popularity\": 11693\n },\n {\n \"tag\": "thymopathy",\n \"popularity\": 11678\n },\n {\n \"tag\": "omniscient",\n \"popularity\": 11663\n },\n {\n \"tag\": "coussinet hazer",\n \"popularity\": 11648\n },\n {\n \"tag\": "contributiveness",\n \"popularity\": 11633\n },\n {\n \"tag\": "septifluous",\n \"popularity\": 11618\n },\n {\n \"tag\": "halfness",\n \"popularity\": 11603\n },\n {\n \"tag\": "tocher",\n \"popularity\": 11589\n },\n {\n \"tag\": "monotonist",\n \"popularity\": 11574\n },\n {\n \"tag\": "headchair",\n \"popularity\": 11559\n },\n {\n \"tag\": "everywhence",\n \"popularity\": 11544\n },\n {\n \"tag\": "gerate",\n \"popularity\": 11530\n },\n {\n \"tag\": "unrepellent",\n \"popularity\": 11515\n },\n {\n \"tag\": "inidoneous",\n \"popularity\": 11500\n },\n {\n \"tag\": "Rifi",\n \"popularity\": 11486\n },\n {\n \"tag\": "unstop",\n \"popularity\": 11471\n },\n {\n \"tag\": "conformer",\n \"popularity\": 11457\n },\n {\n \"tag\": "vivisectionally",\n \"popularity\": 11442\n },\n {\n \"tag\": "nonfinishing",\n \"popularity\": 11428\n },\n {\n \"tag\": "tyranness",\n \"popularity\": 11413\n },\n {\n \"tag\": "shepherdage havoc",\n \"popularity\": 11399\n },\n {\n \"tag\": "coronale",\n \"popularity\": 11385\n },\n {\n \"tag\": "airmarker",\n \"popularity\": 11370\n },\n {\n \"tag\": "subpanel",\n \"popularity\": 11356\n },\n {\n \"tag\": "conciliation",\n \"popularity\": 11342\n },\n {\n \"tag\": "supergun",\n \"popularity\": 11327\n },\n {\n \"tag\": "photoheliography",\n \"popularity\": 11313\n },\n {\n \"tag\": "cacosmia",\n \"popularity\": 11299\n },\n {\n \"tag\": "caressant",\n \"popularity\": 11285\n },\n {\n \"tag\": "swivet",\n \"popularity\": 11270\n },\n {\n \"tag\": "coddler",\n \"popularity\": 11256\n },\n {\n \"tag\": "rakehellish",\n \"popularity\": 11242\n },\n {\n \"tag\": "recohabitation",\n \"popularity\": 11228\n },\n {\n \"tag\": "postillator",\n \"popularity\": 11214\n },\n {\n \"tag\": "receipt",\n \"popularity\": 11200\n },\n {\n \"tag\": "nonconformistical",\n \"popularity\": 11186\n },\n {\n \"tag\": "unglorified",\n \"popularity\": 11172\n },\n {\n \"tag\": "unordinariness",\n \"popularity\": 11158\n },\n {\n \"tag\": "tetrahydroxy",\n \"popularity\": 11144\n },\n {\n \"tag\": "haploperistomic corporeity",\n \"popularity\": 11130\n },\n {\n \"tag\": "varical",\n \"popularity\": 11117\n },\n {\n \"tag\": "pilferment",\n \"popularity\": 11103\n },\n {\n \"tag\": "reverentially playcraft",\n \"popularity\": 11089\n },\n {\n \"tag\": "unretentive",\n \"popularity\": 11075\n },\n {\n \"tag\": "readiness",\n \"popularity\": 11061\n },\n {\n \"tag\": "thermomagnetism",\n \"popularity\": 11048\n },\n {\n \"tag\": "spotless",\n \"popularity\": 11034\n },\n {\n \"tag\": "semishrubby",\n \"popularity\": 11020\n },\n {\n \"tag\": "metrotomy",\n \"popularity\": 11007\n },\n {\n \"tag\": "hocker",\n \"popularity\": 10993\n },\n {\n \"tag\": "anecdotal",\n \"popularity\": 10979\n },\n {\n \"tag\": "tetrabelodont",\n \"popularity\": 10966\n },\n {\n \"tag\": "Ramillied",\n \"popularity\": 10952\n },\n {\n \"tag\": "sympatheticism",\n \"popularity\": 10939\n },\n {\n \"tag\": "kiskatom",\n \"popularity\": 10925\n },\n {\n \"tag\": "concyclically",\n \"popularity\": 10912\n },\n {\n \"tag\": "tunicless",\n \"popularity\": 10899\n },\n {\n \"tag\": "formalistic",\n \"popularity\": 10885\n },\n {\n \"tag\": "thermacogenesis",\n \"popularity\": 10872\n },\n {\n \"tag\": "multimotored",\n \"popularity\": 10858\n },\n {\n \"tag\": "inversive",\n \"popularity\": 10845\n },\n {\n \"tag\": "Jatki",\n \"popularity\": 10832\n },\n {\n \"tag\": "highest",\n \"popularity\": 10818\n },\n {\n \"tag\": "rubidic",\n \"popularity\": 10805\n },\n {\n \"tag\": "acranial",\n \"popularity\": 10792\n },\n {\n \"tag\": "pulvinulus",\n \"popularity\": 10779\n },\n {\n \"tag\": "nattiness",\n \"popularity\": 10766\n },\n {\n \"tag\": "antisimoniacal",\n \"popularity\": 10752\n },\n {\n \"tag\": "tetanize",\n \"popularity\": 10739\n },\n {\n \"tag\": "spectrophobia",\n \"popularity\": 10726\n },\n {\n \"tag\": "monopolitical",\n \"popularity\": 10713\n },\n {\n \"tag\": "teallite",\n \"popularity\": 10700\n },\n {\n \"tag\": "alicyclic interpellator",\n \"popularity\": 10687\n },\n {\n \"tag\": "nonsynthesized",\n \"popularity\": 10674\n },\n {\n \"tag\": "wheelwrighting",\n \"popularity\": 10661\n },\n {\n \"tag\": "pelliculate",\n \"popularity\": 10648\n },\n {\n \"tag\": "Euphyllopoda",\n \"popularity\": 10635\n },\n {\n \"tag\": "graver",\n \"popularity\": 10622\n },\n {\n \"tag\": "automorph",\n \"popularity\": 10609\n },\n {\n \"tag\": "underhanded",\n \"popularity\": 10597\n },\n {\n \"tag\": "causal",\n \"popularity\": 10584\n },\n {\n \"tag\": "odoom",\n \"popularity\": 10571\n },\n {\n \"tag\": "apodictical",\n \"popularity\": 10558\n },\n {\n \"tag\": "foundery",\n \"popularity\": 10545\n },\n {\n \"tag\": "unneighbored",\n \"popularity\": 10533\n },\n {\n \"tag\": "woolshearing",\n \"popularity\": 10520\n },\n {\n \"tag\": "boschveld",\n \"popularity\": 10507\n },\n {\n \"tag\": "unhardened lipopod",\n \"popularity\": 10495\n },\n {\n \"tag\": "unenriching",\n \"popularity\": 10482\n },\n {\n \"tag\": "spak",\n \"popularity\": 10469\n },\n {\n \"tag\": "yogasana",\n \"popularity\": 10457\n },\n {\n \"tag\": "depoetize",\n \"popularity\": 10444\n },\n {\n \"tag\": "parousiamania",\n \"popularity\": 10432\n },\n {\n \"tag\": "longlegs",\n \"popularity\": 10419\n },\n {\n \"tag\": "gelatinizability",\n \"popularity\": 10407\n },\n {\n \"tag\": "edeology",\n \"popularity\": 10394\n },\n {\n \"tag\": "sodwork",\n \"popularity\": 10382\n },\n {\n \"tag\": "somnambule",\n \"popularity\": 10369\n },\n {\n \"tag\": "antiquing",\n \"popularity\": 10357\n },\n {\n \"tag\": "intaker",\n \"popularity\": 10344\n },\n {\n \"tag\": "Gerberia",\n \"popularity\": 10332\n },\n {\n \"tag\": "preadmit",\n \"popularity\": 10320\n },\n {\n \"tag\": "bullhorn",\n \"popularity\": 10307\n },\n {\n \"tag\": "sororal",\n \"popularity\": 10295\n },\n {\n \"tag\": "phaeophyceous",\n \"popularity\": 10283\n },\n {\n \"tag\": "omphalopsychite",\n \"popularity\": 10271\n },\n {\n \"tag\": "substantious",\n \"popularity\": 10258\n },\n {\n \"tag\": "undemonstratively",\n \"popularity\": 10246\n },\n {\n \"tag\": "corallike blackit",\n \"popularity\": 10234\n },\n {\n \"tag\": "amoebous",\n \"popularity\": 10222\n },\n {\n \"tag\": "Polypodium",\n \"popularity\": 10210\n },\n {\n \"tag\": "blodite",\n \"popularity\": 10198\n },\n {\n \"tag\": "hordarian",\n \"popularity\": 10186\n },\n {\n \"tag\": "nonmoral",\n \"popularity\": 10174\n },\n {\n \"tag\": "dredgeful",\n \"popularity\": 10162\n },\n {\n \"tag\": "nourishingly",\n \"popularity\": 10150\n },\n {\n \"tag\": "seamy",\n \"popularity\": 10138\n },\n {\n \"tag\": "vara",\n \"popularity\": 10126\n },\n {\n \"tag\": "incorruptibleness",\n \"popularity\": 10114\n },\n {\n \"tag\": "manipulator",\n \"popularity\": 10102\n },\n {\n \"tag\": "chromodiascope uncountably",\n \"popularity\": 10090\n },\n {\n \"tag\": "typhemia",\n \"popularity\": 10078\n },\n {\n \"tag\": "Smalcaldic",\n \"popularity\": 10066\n },\n {\n \"tag\": "precontrive",\n \"popularity\": 10054\n },\n {\n \"tag\": "sowarry",\n \"popularity\": 10042\n },\n {\n \"tag\": "monopodic",\n \"popularity\": 10031\n },\n {\n \"tag\": "recodify",\n \"popularity\": 10019\n },\n {\n \"tag\": "phosphowolframic rimple",\n \"popularity\": 10007\n },\n {\n \"tag\": "triconch",\n \"popularity\": 9995\n },\n {\n \"tag\": "pycnodontoid",\n \"popularity\": 9984\n },\n {\n \"tag\": "bradyspermatism",\n \"popularity\": 9972\n },\n {\n \"tag\": "extensionist",\n \"popularity\": 9960\n },\n {\n \"tag\": "characterize",\n \"popularity\": 9949\n },\n {\n \"tag\": "anatreptic proteolytic",\n \"popularity\": 9937\n },\n {\n \"tag\": "waterboard",\n \"popularity\": 9925\n },\n {\n \"tag\": "allopathically",\n \"popularity\": 9914\n },\n {\n \"tag\": "arithmetician",\n \"popularity\": 9902\n },\n {\n \"tag\": "subsist",\n \"popularity\": 9891\n },\n {\n \"tag\": "Islamitish",\n \"popularity\": 9879\n },\n {\n \"tag\": "biddy",\n \"popularity\": 9868\n },\n {\n \"tag\": "reverberation",\n \"popularity\": 9856\n },\n {\n \"tag\": "Zaporogue",\n \"popularity\": 9845\n },\n {\n \"tag\": "soapberry",\n \"popularity\": 9833\n },\n {\n \"tag\": "physiognomics",\n \"popularity\": 9822\n },\n {\n \"tag\": "hospitalization",\n \"popularity\": 9810\n },\n {\n \"tag\": "dissembler",\n \"popularity\": 9799\n },\n {\n \"tag\": "festinate",\n \"popularity\": 9788\n },\n {\n \"tag\": "angiectopia",\n \"popularity\": 9776\n },\n {\n \"tag\": "Pulicidae",\n \"popularity\": 9765\n },\n {\n \"tag\": "beslimer",\n \"popularity\": 9754\n },\n {\n \"tag\": "nontreaty",\n \"popularity\": 9743\n },\n {\n \"tag\": "unhaggled",\n \"popularity\": 9731\n },\n {\n \"tag\": "catfall",\n \"popularity\": 9720\n },\n {\n \"tag\": "stola",\n \"popularity\": 9709\n },\n {\n \"tag\": "pataco",\n \"popularity\": 9698\n },\n {\n \"tag\": "ontologistic",\n \"popularity\": 9686\n },\n {\n \"tag\": "aerosphere",\n \"popularity\": 9675\n },\n {\n \"tag\": "deobstruent",\n \"popularity\": 9664\n },\n {\n \"tag\": "threepence",\n \"popularity\": 9653\n },\n {\n \"tag\": "cyprinoid",\n \"popularity\": 9642\n },\n {\n \"tag\": "overbank",\n \"popularity\": 9631\n },\n {\n \"tag\": "prostyle",\n \"popularity\": 9620\n },\n {\n \"tag\": "photoactivation",\n \"popularity\": 9609\n },\n {\n \"tag\": "homothetic",\n \"popularity\": 9598\n },\n {\n \"tag\": "roguedom",\n \"popularity\": 9587\n },\n {\n \"tag\": "underschool",\n \"popularity\": 9576\n },\n {\n \"tag\": "tractility",\n \"popularity\": 9565\n },\n {\n \"tag\": "gardenin",\n \"popularity\": 9554\n },\n {\n \"tag\": "Micromastictora",\n \"popularity\": 9543\n },\n {\n \"tag\": "gossypine",\n \"popularity\": 9532\n },\n {\n \"tag\": "amylodyspepsia",\n \"popularity\": 9521\n },\n {\n \"tag\": "Luciana",\n \"popularity\": 9510\n },\n {\n \"tag\": "meetly nonfisherman",\n \"popularity\": 9500\n },\n {\n \"tag\": "backhanded",\n \"popularity\": 9489\n },\n {\n \"tag\": "decrustation",\n \"popularity\": 9478\n },\n {\n \"tag\": "pinrail",\n \"popularity\": 9467\n },\n {\n \"tag\": "Mahori",\n \"popularity\": 9456\n },\n {\n \"tag\": "unsizable",\n \"popularity\": 9446\n },\n {\n \"tag\": "disawa",\n \"popularity\": 9435\n },\n {\n \"tag\": "launderability inconsidered",\n \"popularity\": 9424\n },\n {\n \"tag\": "unclassical",\n \"popularity\": 9414\n },\n {\n \"tag\": "inobtrusiveness",\n \"popularity\": 9403\n },\n {\n \"tag\": "sialogenous",\n \"popularity\": 9392\n },\n {\n \"tag\": "sulphonamide",\n \"popularity\": 9382\n },\n {\n \"tag\": "diluvion",\n \"popularity\": 9371\n },\n {\n \"tag\": "deuteranope",\n \"popularity\": 9361\n },\n {\n \"tag\": "addition",\n \"popularity\": 9350\n },\n {\n \"tag\": "bockeret",\n \"popularity\": 9339\n },\n {\n \"tag\": "unidentified",\n \"popularity\": 9329\n },\n {\n \"tag\": "caryatic",\n \"popularity\": 9318\n },\n {\n \"tag\": "misattribution",\n \"popularity\": 9308\n },\n {\n \"tag\": "outray",\n \"popularity\": 9297\n },\n {\n \"tag\": "areometrical",\n \"popularity\": 9287\n },\n {\n \"tag\": "antilogism",\n \"popularity\": 9277\n },\n {\n \"tag\": "inadjustable",\n \"popularity\": 9266\n },\n {\n \"tag\": "byssus",\n \"popularity\": 9256\n },\n {\n \"tag\": "trun",\n \"popularity\": 9245\n },\n {\n \"tag\": "thereology",\n \"popularity\": 9235\n },\n {\n \"tag\": "extort",\n \"popularity\": 9225\n },\n {\n \"tag\": "bumpkin",\n \"popularity\": 9214\n },\n {\n \"tag\": "sulphobenzide",\n \"popularity\": 9204\n },\n {\n \"tag\": "hydrogeology",\n \"popularity\": 9194\n },\n {\n \"tag\": "nidulariaceous",\n \"popularity\": 9183\n },\n {\n \"tag\": "propodiale",\n \"popularity\": 9173\n },\n {\n \"tag\": "fierily",\n \"popularity\": 9163\n },\n {\n \"tag\": "aerotonometry",\n \"popularity\": 9153\n },\n {\n \"tag\": "pelobatid oversuperstitious",\n \"popularity\": 9142\n },\n {\n \"tag\": "restringent",\n \"popularity\": 9132\n },\n {\n \"tag\": "tetrapodic",\n \"popularity\": 9122\n },\n {\n \"tag\": "heroicness Vendidad",\n \"popularity\": 9112\n },\n {\n \"tag\": "Sphingurus",\n \"popularity\": 9102\n },\n {\n \"tag\": "sclerote",\n \"popularity\": 9092\n },\n {\n \"tag\": "unkeyed",\n \"popularity\": 9082\n },\n {\n \"tag\": "superparliamentary",\n \"popularity\": 9072\n },\n {\n \"tag\": "hetericism",\n \"popularity\": 9061\n },\n {\n \"tag\": "hucklebone",\n \"popularity\": 9051\n },\n {\n \"tag\": "yojan",\n \"popularity\": 9041\n },\n {\n \"tag\": "bossed",\n \"popularity\": 9031\n },\n {\n \"tag\": "spiderwork",\n \"popularity\": 9021\n },\n {\n \"tag\": "millfeed dullery",\n \"popularity\": 9011\n },\n {\n \"tag\": "adnoun",\n \"popularity\": 9001\n },\n {\n \"tag\": "mesometric",\n \"popularity\": 8992\n },\n {\n \"tag\": "doublehandedness",\n \"popularity\": 8982\n },\n {\n \"tag\": "suppurant",\n \"popularity\": 8972\n },\n {\n \"tag\": "Berlinize",\n \"popularity\": 8962\n },\n {\n \"tag\": "sontag",\n \"popularity\": 8952\n },\n {\n \"tag\": "biplane",\n \"popularity\": 8942\n },\n {\n \"tag\": "insula",\n \"popularity\": 8932\n },\n {\n \"tag\": "unbrand",\n \"popularity\": 8922\n },\n {\n \"tag\": "Basilosaurus",\n \"popularity\": 8913\n },\n {\n \"tag\": "prenomination",\n \"popularity\": 8903\n },\n {\n \"tag\": "untextual",\n \"popularity\": 8893\n },\n {\n \"tag\": "coleslaw",\n \"popularity\": 8883\n },\n {\n \"tag\": "langsyne",\n \"popularity\": 8874\n },\n {\n \"tag\": "impede",\n \"popularity\": 8864\n },\n {\n \"tag\": "irrigator",\n \"popularity\": 8854\n },\n {\n \"tag\": "deflocculation",\n \"popularity\": 8844\n },\n {\n \"tag\": "narghile",\n \"popularity\": 8835\n },\n {\n \"tag\": "unguardedly ebenaceous",\n \"popularity\": 8825\n },\n {\n \"tag\": "conversantly subocular",\n \"popularity\": 8815\n },\n {\n \"tag\": "hydroponic",\n \"popularity\": 8806\n },\n {\n \"tag\": "anthropopsychism",\n \"popularity\": 8796\n },\n {\n \"tag\": "panoptic",\n \"popularity\": 8787\n },\n {\n \"tag\": "insufferable",\n \"popularity\": 8777\n },\n {\n \"tag\": "salema",\n \"popularity\": 8768\n },\n {\n \"tag\": "Myriapoda",\n \"popularity\": 8758\n },\n {\n \"tag\": "regarrison",\n \"popularity\": 8748\n },\n {\n \"tag\": "overlearned",\n \"popularity\": 8739\n },\n {\n \"tag\": "ultraroyalist conventical bureaucratical",\n \"popularity\": 8729\n },\n {\n \"tag\": "epicaridan",\n \"popularity\": 8720\n },\n {\n \"tag\": "poetastress",\n \"popularity\": 8711\n },\n {\n \"tag\": "monophthalmus",\n \"popularity\": 8701\n },\n {\n \"tag\": "simnel",\n \"popularity\": 8692\n },\n {\n \"tag\": "compotor",\n \"popularity\": 8682\n },\n {\n \"tag\": "hydrolase",\n \"popularity\": 8673\n },\n {\n \"tag\": "attemptless",\n \"popularity\": 8663\n },\n {\n \"tag\": "visceroptosis",\n \"popularity\": 8654\n },\n {\n \"tag\": "unpreparedly",\n \"popularity\": 8645\n },\n {\n \"tag\": "mastage",\n \"popularity\": 8635\n },\n {\n \"tag\": "preinfluence",\n \"popularity\": 8626\n },\n {\n \"tag\": "Siwan",\n \"popularity\": 8617\n },\n {\n \"tag\": "ceratotheca belvedere",\n \"popularity\": 8607\n },\n {\n \"tag\": "disenablement",\n \"popularity\": 8598\n },\n {\n \"tag\": "nine",\n \"popularity\": 8589\n },\n {\n \"tag\": "spellingdown abridgment",\n \"popularity\": 8580\n },\n {\n \"tag\": "twilightless",\n \"popularity\": 8571\n },\n {\n \"tag\": "overflow",\n \"popularity\": 8561\n },\n {\n \"tag\": "mismeasurement",\n \"popularity\": 8552\n },\n {\n \"tag\": "nawabship",\n \"popularity\": 8543\n },\n {\n \"tag\": "Phrynosoma",\n \"popularity\": 8534\n },\n {\n \"tag\": "unanticipatingly",\n \"popularity\": 8525\n },\n {\n \"tag\": "blankite",\n \"popularity\": 8516\n },\n {\n \"tag\": "role",\n \"popularity\": 8506\n },\n {\n \"tag\": "peperine edelweiss",\n \"popularity\": 8497\n },\n {\n \"tag\": "unhysterical",\n \"popularity\": 8488\n },\n {\n \"tag\": "attentiveness",\n \"popularity\": 8479\n },\n {\n \"tag\": "scintillant",\n \"popularity\": 8470\n },\n {\n \"tag\": "stenostomatous",\n \"popularity\": 8461\n },\n {\n \"tag\": "pectinite",\n \"popularity\": 8452\n },\n {\n \"tag\": "herring",\n \"popularity\": 8443\n },\n {\n \"tag\": "interroom",\n \"popularity\": 8434\n },\n {\n \"tag\": "laccol",\n \"popularity\": 8425\n },\n {\n \"tag\": "unpartably kylite",\n \"popularity\": 8416\n },\n {\n \"tag\": "spirivalve",\n \"popularity\": 8407\n },\n {\n \"tag\": "hoosegow",\n \"popularity\": 8398\n },\n {\n \"tag\": "doat",\n \"popularity\": 8389\n },\n {\n \"tag\": "amphibian",\n \"popularity\": 8380\n },\n {\n \"tag\": "exposit",\n \"popularity\": 8371\n },\n {\n \"tag\": "canopy",\n \"popularity\": 8363\n },\n {\n \"tag\": "houndlike",\n \"popularity\": 8354\n },\n {\n \"tag\": "spikebill",\n \"popularity\": 8345\n },\n {\n \"tag\": "wiseacre pyrotechnic",\n \"popularity\": 8336\n },\n {\n \"tag\": "confessingly woodman",\n \"popularity\": 8327\n },\n {\n \"tag\": "overside",\n \"popularity\": 8318\n },\n {\n \"tag\": "oftwhiles",\n \"popularity\": 8310\n },\n {\n \"tag\": "Musophagidae",\n \"popularity\": 8301\n },\n {\n \"tag\": "slumberer",\n \"popularity\": 8292\n },\n {\n \"tag\": "leiotrichy",\n \"popularity\": 8283\n },\n {\n \"tag\": "Mantispidae",\n \"popularity\": 8275\n },\n {\n \"tag\": "perceptually",\n \"popularity\": 8266\n },\n {\n \"tag\": "biller",\n \"popularity\": 8257\n },\n {\n \"tag\": "eudaemonical",\n \"popularity\": 8249\n },\n {\n \"tag\": "underfiend",\n \"popularity\": 8240\n },\n {\n \"tag\": "impartible",\n \"popularity\": 8231\n },\n {\n \"tag\": "saxicavous",\n \"popularity\": 8223\n },\n {\n \"tag\": "yapster",\n \"popularity\": 8214\n },\n {\n \"tag\": "aliseptal",\n \"popularity\": 8205\n },\n {\n \"tag\": "omniparient",\n \"popularity\": 8197\n },\n {\n \"tag\": "nishiki",\n \"popularity\": 8188\n },\n {\n \"tag\": "yuzluk",\n \"popularity\": 8180\n },\n {\n \"tag\": "solderer",\n \"popularity\": 8171\n },\n {\n \"tag\": "Pinna",\n \"popularity\": 8162\n },\n {\n \"tag\": "reinterfere",\n \"popularity\": 8154\n },\n {\n \"tag\": "superepic",\n \"popularity\": 8145\n },\n {\n \"tag\": "ronquil",\n \"popularity\": 8137\n },\n {\n \"tag\": "bratstvo",\n \"popularity\": 8128\n },\n {\n \"tag\": "Thea",\n \"popularity\": 8120\n },\n {\n \"tag\": "hermaphroditical",\n \"popularity\": 8111\n },\n {\n \"tag\": "enlief",\n \"popularity\": 8103\n },\n {\n \"tag\": "Jesuate",\n \"popularity\": 8095\n },\n {\n \"tag\": "gaysome",\n \"popularity\": 8086\n },\n {\n \"tag\": "iliohypogastric",\n \"popularity\": 8078\n },\n {\n \"tag\": "regardance",\n \"popularity\": 8069\n },\n {\n \"tag\": "cumulately",\n \"popularity\": 8061\n },\n {\n \"tag\": "haustorial nucleolocentrosome",\n \"popularity\": 8053\n },\n {\n \"tag\": "cosmocrat",\n \"popularity\": 8044\n },\n {\n \"tag\": "onyxitis",\n \"popularity\": 8036\n },\n {\n \"tag\": "Cabinda",\n \"popularity\": 8028\n },\n {\n \"tag\": "coresort",\n \"popularity\": 8019\n },\n {\n \"tag\": "drusy preformant",\n \"popularity\": 8011\n },\n {\n \"tag\": "piningly",\n \"popularity\": 8003\n },\n {\n \"tag\": "bootlessly",\n \"popularity\": 7994\n },\n {\n \"tag\": "talari",\n \"popularity\": 7986\n },\n {\n \"tag\": "amidoacetal",\n \"popularity\": 7978\n },\n {\n \"tag\": "pschent",\n \"popularity\": 7970\n },\n {\n \"tag\": "consumptional scarer titivate",\n \"popularity\": 7962\n },\n {\n \"tag\": "Anserinae",\n \"popularity\": 7953\n },\n {\n \"tag\": "flaunter",\n \"popularity\": 7945\n },\n {\n \"tag\": "reindeer",\n \"popularity\": 7937\n },\n {\n \"tag\": "disparage",\n \"popularity\": 7929\n },\n {\n \"tag\": "superheat",\n \"popularity\": 7921\n },\n {\n \"tag\": "Chromatium",\n \"popularity\": 7912\n },\n {\n \"tag\": "Tina",\n \"popularity\": 7904\n },\n {\n \"tag\": "rededicatory",\n \"popularity\": 7896\n },\n {\n \"tag\": "nontransient",\n \"popularity\": 7888\n },\n {\n \"tag\": "Phocaean brinkless",\n \"popularity\": 7880\n },\n {\n \"tag\": "ventriculose",\n \"popularity\": 7872\n },\n {\n \"tag\": "upplough",\n \"popularity\": 7864\n },\n {\n \"tag\": "succorless",\n \"popularity\": 7856\n },\n {\n \"tag\": "hayrake",\n \"popularity\": 7848\n },\n {\n \"tag\": "merriness amorphia",\n \"popularity\": 7840\n },\n {\n \"tag\": "merycism",\n \"popularity\": 7832\n },\n {\n \"tag\": "checkrow",\n \"popularity\": 7824\n },\n {\n \"tag\": "scry",\n \"popularity\": 7816\n },\n {\n \"tag\": "obvolve",\n \"popularity\": 7808\n },\n {\n \"tag\": "orchard",\n \"popularity\": 7800\n },\n {\n \"tag\": "isomerize",\n \"popularity\": 7792\n },\n {\n \"tag\": "competitrix",\n \"popularity\": 7784\n },\n {\n \"tag\": "unbannered",\n \"popularity\": 7776\n },\n {\n \"tag\": "undoctrined",\n \"popularity\": 7768\n },\n {\n \"tag\": "theologian",\n \"popularity\": 7760\n },\n {\n \"tag\": "nebby",\n \"popularity\": 7752\n },\n {\n \"tag\": "Cardiazol",\n \"popularity\": 7745\n },\n {\n \"tag\": "phagedenic",\n \"popularity\": 7737\n },\n {\n \"tag\": "nostalgic",\n \"popularity\": 7729\n },\n {\n \"tag\": "orthodoxy",\n \"popularity\": 7721\n },\n {\n \"tag\": "oversanguine",\n \"popularity\": 7713\n },\n {\n \"tag\": "lish",\n \"popularity\": 7705\n },\n {\n \"tag\": "ketogenic",\n \"popularity\": 7698\n },\n {\n \"tag\": "syndicalize",\n \"popularity\": 7690\n },\n {\n \"tag\": "leeftail",\n \"popularity\": 7682\n },\n {\n \"tag\": "bulbomedullary",\n \"popularity\": 7674\n },\n {\n \"tag\": "reletter",\n \"popularity\": 7667\n },\n {\n \"tag\": "bitterly",\n \"popularity\": 7659\n },\n {\n \"tag\": "participatory",\n \"popularity\": 7651\n },\n {\n \"tag\": "baldberry",\n \"popularity\": 7643\n },\n {\n \"tag\": "prowaterpower",\n \"popularity\": 7636\n },\n {\n \"tag\": "lexicographical",\n \"popularity\": 7628\n },\n {\n \"tag\": "Anisodactyli",\n \"popularity\": 7620\n },\n {\n \"tag\": "amphipodous",\n \"popularity\": 7613\n },\n {\n \"tag\": "triglandular",\n \"popularity\": 7605\n },\n {\n \"tag\": "xanthopsin",\n \"popularity\": 7597\n },\n {\n \"tag\": "indefinitude",\n \"popularity\": 7590\n },\n {\n \"tag\": "bookworm",\n \"popularity\": 7582\n },\n {\n \"tag\": "suffocative",\n \"popularity\": 7574\n },\n {\n \"tag\": "uncongested tyrant",\n \"popularity\": 7567\n },\n {\n \"tag\": "alow harmoniously Pamir",\n \"popularity\": 7559\n },\n {\n \"tag\": "monander",\n \"popularity\": 7552\n },\n {\n \"tag\": "bagatelle",\n \"popularity\": 7544\n },\n {\n \"tag\": "membranology",\n \"popularity\": 7537\n },\n {\n \"tag\": "parturifacient",\n \"popularity\": 7529\n },\n {\n \"tag\": "excitovascular",\n \"popularity\": 7522\n },\n {\n \"tag\": "homopolar",\n \"popularity\": 7514\n },\n {\n \"tag\": "phobiac",\n \"popularity\": 7507\n },\n {\n \"tag\": "clype",\n \"popularity\": 7499\n },\n {\n \"tag\": "unsubversive",\n \"popularity\": 7492\n },\n {\n \"tag\": "bostrychoidal scorpionwort",\n \"popularity\": 7484\n },\n {\n \"tag\": "biliteralism",\n \"popularity\": 7477\n },\n {\n \"tag\": "dentatocostate",\n \"popularity\": 7469\n },\n {\n \"tag\": "Pici",\n \"popularity\": 7462\n },\n {\n \"tag\": "sideritic",\n \"popularity\": 7454\n },\n {\n \"tag\": "syntaxis",\n \"popularity\": 7447\n },\n {\n \"tag\": "ingest",\n \"popularity\": 7440\n },\n {\n \"tag\": "rigmarolish",\n \"popularity\": 7432\n },\n {\n \"tag\": "ocreaceous",\n \"popularity\": 7425\n },\n {\n \"tag\": "hyperbrachyskelic",\n \"popularity\": 7418\n },\n {\n \"tag\": "basophobia",\n \"popularity\": 7410\n },\n {\n \"tag\": "substantialness",\n \"popularity\": 7403\n },\n {\n \"tag\": "agglutinoid",\n \"popularity\": 7396\n },\n {\n \"tag\": "longleaf",\n \"popularity\": 7388\n },\n {\n \"tag\": "electroengraving",\n \"popularity\": 7381\n },\n {\n \"tag\": "laparoenterotomy",\n \"popularity\": 7374\n },\n {\n \"tag\": "oxalylurea",\n \"popularity\": 7366\n },\n {\n \"tag\": "unattaintedly",\n \"popularity\": 7359\n },\n {\n \"tag\": "pennystone",\n \"popularity\": 7352\n },\n {\n \"tag\": "Plumbaginaceae",\n \"popularity\": 7345\n },\n {\n \"tag\": "horntip",\n \"popularity\": 7337\n },\n {\n \"tag\": "begrudge",\n \"popularity\": 7330\n },\n {\n \"tag\": "bechignoned",\n \"popularity\": 7323\n },\n {\n \"tag\": "hologonidium",\n \"popularity\": 7316\n },\n {\n \"tag\": "Pulian",\n \"popularity\": 7309\n },\n {\n \"tag\": "gratulation",\n \"popularity\": 7301\n },\n {\n \"tag\": "Sebright",\n \"popularity\": 7294\n },\n {\n \"tag\": "coinstantaneous emotionally",\n \"popularity\": 7287\n },\n {\n \"tag\": "thoracostracan",\n \"popularity\": 7280\n },\n {\n \"tag\": "saurodont",\n \"popularity\": 7273\n },\n {\n \"tag\": "coseat",\n \"popularity\": 7266\n },\n {\n \"tag\": "irascibility",\n \"popularity\": 7259\n },\n {\n \"tag\": "occlude",\n \"popularity\": 7251\n },\n {\n \"tag\": "metallurgist",\n \"popularity\": 7244\n },\n {\n \"tag\": "extraviolet",\n \"popularity\": 7237\n },\n {\n \"tag\": "clinic",\n \"popularity\": 7230\n },\n {\n \"tag\": "skater",\n \"popularity\": 7223\n },\n {\n \"tag\": "linguistic",\n \"popularity\": 7216\n },\n {\n \"tag\": "attacheship",\n \"popularity\": 7209\n },\n {\n \"tag\": "Rachianectes",\n \"popularity\": 7202\n },\n {\n \"tag\": "foliolose",\n \"popularity\": 7195\n },\n {\n \"tag\": "claudetite",\n \"popularity\": 7188\n },\n {\n \"tag\": "aphidian scratching",\n \"popularity\": 7181\n },\n {\n \"tag\": "Carida",\n \"popularity\": 7174\n },\n {\n \"tag\": "tiepin polymicroscope",\n \"popularity\": 7167\n },\n {\n \"tag\": "telpherage",\n \"popularity\": 7160\n },\n {\n \"tag\": "meek",\n \"popularity\": 7153\n },\n {\n \"tag\": "swiftness",\n \"popularity\": 7146\n },\n {\n \"tag\": "gentes",\n \"popularity\": 7139\n },\n {\n \"tag\": "uncommemorated",\n \"popularity\": 7132\n },\n {\n \"tag\": "Lazarus",\n \"popularity\": 7125\n },\n {\n \"tag\": "redivive",\n \"popularity\": 7119\n },\n {\n \"tag\": "nonfebrile",\n \"popularity\": 7112\n },\n {\n \"tag\": "nymphet",\n \"popularity\": 7105\n },\n {\n \"tag\": "areologically",\n \"popularity\": 7098\n },\n {\n \"tag\": "undonkey",\n \"popularity\": 7091\n },\n {\n \"tag\": "projecting",\n \"popularity\": 7084\n },\n {\n \"tag\": "pinnigrade",\n \"popularity\": 7077\n },\n {\n \"tag\": "butylation",\n \"popularity\": 7071\n },\n {\n \"tag\": "philologistic lenticle",\n \"popularity\": 7064\n },\n {\n \"tag\": "nooky",\n \"popularity\": 7057\n },\n {\n \"tag\": "incestuousness",\n \"popularity\": 7050\n },\n {\n \"tag\": "palingenetically",\n \"popularity\": 7043\n },\n {\n \"tag\": "mitochondria",\n \"popularity\": 7037\n },\n {\n \"tag\": "truthify",\n \"popularity\": 7030\n },\n {\n \"tag\": "titanyl",\n \"popularity\": 7023\n },\n {\n \"tag\": "bestride",\n \"popularity\": 7016\n },\n {\n \"tag\": "chende",\n \"popularity\": 7010\n },\n {\n \"tag\": "Chaucerian monophote",\n \"popularity\": 7003\n },\n {\n \"tag\": "cutback",\n \"popularity\": 6996\n },\n {\n \"tag\": "unpatiently",\n \"popularity\": 6989\n },\n {\n \"tag\": "subvitreous",\n \"popularity\": 6983\n },\n {\n \"tag\": "organizable",\n \"popularity\": 6976\n },\n {\n \"tag\": "anniverse uncomprehensible",\n \"popularity\": 6969\n },\n {\n \"tag\": "hyalescence",\n \"popularity\": 6963\n },\n {\n \"tag\": "amniochorial",\n \"popularity\": 6956\n },\n {\n \"tag\": "Corybantian",\n \"popularity\": 6949\n },\n {\n \"tag\": "genocide Scaphitidae",\n \"popularity\": 6943\n },\n {\n \"tag\": "accordionist",\n \"popularity\": 6936\n },\n {\n \"tag\": "becheck",\n \"popularity\": 6930\n },\n {\n \"tag\": "overproduce",\n \"popularity\": 6923\n },\n {\n \"tag\": "unmaniac frijolillo",\n \"popularity\": 6916\n },\n {\n \"tag\": "multisulcated",\n \"popularity\": 6910\n },\n {\n \"tag\": "wennebergite",\n \"popularity\": 6903\n },\n {\n \"tag\": "tautousious mowth",\n \"popularity\": 6897\n },\n {\n \"tag\": "marigold",\n \"popularity\": 6890\n },\n {\n \"tag\": "affray",\n \"popularity\": 6884\n },\n {\n \"tag\": "nonidolatrous",\n \"popularity\": 6877\n },\n {\n \"tag\": "aphrasia",\n \"popularity\": 6871\n },\n {\n \"tag\": "muddlingly",\n \"popularity\": 6864\n },\n {\n \"tag\": "clear",\n \"popularity\": 6858\n },\n {\n \"tag\": "Clitoria",\n \"popularity\": 6851\n },\n {\n \"tag\": "apportionment underwaist",\n \"popularity\": 6845\n },\n {\n \"tag\": "kodakist",\n \"popularity\": 6838\n },\n {\n \"tag\": "Momotidae",\n \"popularity\": 6832\n },\n {\n \"tag\": "cryptovalency",\n \"popularity\": 6825\n },\n {\n \"tag\": "floe",\n \"popularity\": 6819\n },\n {\n \"tag\": "aphagia",\n \"popularity\": 6812\n },\n {\n \"tag\": "brontograph",\n \"popularity\": 6806\n },\n {\n \"tag\": "tubulous",\n \"popularity\": 6799\n },\n {\n \"tag\": "unhorse",\n \"popularity\": 6793\n },\n {\n \"tag\": "chlordane",\n \"popularity\": 6787\n },\n {\n \"tag\": "colloquy brochan",\n \"popularity\": 6780\n },\n {\n \"tag\": "sloosh",\n \"popularity\": 6774\n },\n {\n \"tag\": "battered",\n \"popularity\": 6767\n },\n {\n \"tag\": "monocularity pluriguttulate",\n \"popularity\": 6761\n },\n {\n \"tag\": "chiastoneury",\n \"popularity\": 6755\n },\n {\n \"tag\": "Sanguinaria",\n \"popularity\": 6748\n },\n {\n \"tag\": "confessionary",\n \"popularity\": 6742\n },\n {\n \"tag\": "enzymic",\n \"popularity\": 6736\n },\n {\n \"tag\": "cord",\n \"popularity\": 6729\n },\n {\n \"tag\": "oviducal",\n \"popularity\": 6723\n },\n {\n \"tag\": "crozzle outsea",\n \"popularity\": 6717\n },\n {\n \"tag\": "balladical",\n \"popularity\": 6710\n },\n {\n \"tag\": "uncollectibleness",\n \"popularity\": 6704\n },\n {\n \"tag\": "predorsal",\n \"popularity\": 6698\n },\n {\n \"tag\": "reauthenticate",\n \"popularity\": 6692\n },\n {\n \"tag\": "ravissant",\n \"popularity\": 6685\n },\n {\n \"tag\": "advantageousness",\n \"popularity\": 6679\n },\n {\n \"tag\": "rung",\n \"popularity\": 6673\n },\n {\n \"tag\": "duncedom",\n \"popularity\": 6667\n },\n {\n \"tag\": "hematolite",\n \"popularity\": 6660\n },\n {\n \"tag\": "thisness",\n \"popularity\": 6654\n },\n {\n \"tag\": "mapau",\n \"popularity\": 6648\n },\n {\n \"tag\": "Hecatic",\n \"popularity\": 6642\n },\n {\n \"tag\": "meningoencephalocele",\n \"popularity\": 6636\n },\n {\n \"tag\": "confection sorra",\n \"popularity\": 6630\n },\n {\n \"tag\": "unsedate",\n \"popularity\": 6623\n },\n {\n \"tag\": "meningocerebritis",\n \"popularity\": 6617\n },\n {\n \"tag\": "biopsychological",\n \"popularity\": 6611\n },\n {\n \"tag\": "clavicithern",\n \"popularity\": 6605\n },\n {\n \"tag\": "resun",\n \"popularity\": 6599\n },\n {\n \"tag\": "bayamo",\n \"popularity\": 6593\n },\n {\n \"tag\": "seeableness",\n \"popularity\": 6587\n },\n {\n \"tag\": "hypsidolichocephalism",\n \"popularity\": 6581\n },\n {\n \"tag\": "salivous",\n \"popularity\": 6574\n },\n {\n \"tag\": "neumatize",\n \"popularity\": 6568\n },\n {\n \"tag\": "stree",\n \"popularity\": 6562\n },\n {\n \"tag\": "markshot",\n \"popularity\": 6556\n },\n {\n \"tag\": "phraseologically",\n \"popularity\": 6550\n },\n {\n \"tag\": "yealing",\n \"popularity\": 6544\n },\n {\n \"tag\": "puggy",\n \"popularity\": 6538\n },\n {\n \"tag\": "sexadecimal",\n \"popularity\": 6532\n },\n {\n \"tag\": "unofficerlike",\n \"popularity\": 6526\n },\n {\n \"tag\": "curiosa",\n \"popularity\": 6520\n },\n {\n \"tag\": "pedomotor",\n \"popularity\": 6514\n },\n {\n \"tag\": "astrally",\n \"popularity\": 6508\n },\n {\n \"tag\": "prosomatic",\n \"popularity\": 6502\n },\n {\n \"tag\": "bulletheaded",\n \"popularity\": 6496\n },\n {\n \"tag\": "fortuned",\n \"popularity\": 6490\n },\n {\n \"tag\": "pixy",\n \"popularity\": 6484\n },\n {\n \"tag\": "protectrix",\n \"popularity\": 6478\n },\n {\n \"tag\": "arthritical",\n \"popularity\": 6472\n },\n {\n \"tag\": "coction",\n \"popularity\": 6466\n },\n {\n \"tag\": "Anthropos",\n \"popularity\": 6460\n },\n {\n \"tag\": "runer",\n \"popularity\": 6454\n },\n {\n \"tag\": "prenotify",\n \"popularity\": 6449\n },\n {\n \"tag\": "microspheric gastroparalysis",\n \"popularity\": 6443\n },\n {\n \"tag\": "Jovicentrical",\n \"popularity\": 6437\n },\n {\n \"tag\": "ceratopsid",\n \"popularity\": 6431\n },\n {\n \"tag\": "Theodoric",\n \"popularity\": 6425\n },\n {\n \"tag\": "Pactolus",\n \"popularity\": 6419\n },\n {\n \"tag\": "spawning",\n \"popularity\": 6413\n },\n {\n \"tag\": "nonconfidential",\n \"popularity\": 6407\n },\n {\n \"tag\": "halotrichite infumate",\n \"popularity\": 6402\n },\n {\n \"tag\": "undiscriminatingly",\n \"popularity\": 6396\n },\n {\n \"tag\": "unexasperated",\n \"popularity\": 6390\n },\n {\n \"tag\": "isoeugenol",\n \"popularity\": 6384\n },\n {\n \"tag\": "pressboard",\n \"popularity\": 6378\n },\n {\n \"tag\": "unshrew",\n \"popularity\": 6372\n },\n {\n \"tag\": "huffingly",\n \"popularity\": 6367\n },\n {\n \"tag\": "wagaun",\n \"popularity\": 6361\n },\n {\n \"tag\": "squirt Philistine",\n \"popularity\": 6355\n },\n {\n \"tag\": "kryptic",\n \"popularity\": 6349\n },\n {\n \"tag\": "paraform",\n \"popularity\": 6344\n },\n {\n \"tag\": "preverify",\n \"popularity\": 6338\n },\n {\n \"tag\": "dalar",\n \"popularity\": 6332\n },\n {\n \"tag\": "interdictor appraisingly",\n \"popularity\": 6326\n },\n {\n \"tag\": "chipped",\n \"popularity\": 6321\n },\n {\n \"tag\": "Pteropoda",\n \"popularity\": 6315\n },\n {\n \"tag\": "Bohairic",\n \"popularity\": 6309\n },\n {\n \"tag\": "felting",\n \"popularity\": 6303\n },\n {\n \"tag\": "compurgatorial",\n \"popularity\": 6298\n },\n {\n \"tag\": "unclead",\n \"popularity\": 6292\n },\n {\n \"tag\": "stockish",\n \"popularity\": 6286\n },\n {\n \"tag\": "mulligatawny",\n \"popularity\": 6281\n },\n {\n \"tag\": "Monotheletism",\n \"popularity\": 6275\n },\n {\n \"tag\": "lutanist",\n \"popularity\": 6269\n },\n {\n \"tag\": "gluttonize",\n \"popularity\": 6264\n },\n {\n \"tag\": "hackneyed",\n \"popularity\": 6258\n },\n {\n \"tag\": "yield",\n \"popularity\": 6253\n },\n {\n \"tag\": "sulphonamido",\n \"popularity\": 6247\n },\n {\n \"tag\": "granulative",\n \"popularity\": 6241\n },\n {\n \"tag\": "swingy",\n \"popularity\": 6236\n },\n {\n \"tag\": "Desmidiales",\n \"popularity\": 6230\n },\n {\n \"tag\": "tootlish",\n \"popularity\": 6224\n },\n {\n \"tag\": "unsatisfiedly",\n \"popularity\": 6219\n },\n {\n \"tag\": "burucha",\n \"popularity\": 6213\n },\n {\n \"tag\": "premeditatingly",\n \"popularity\": 6208\n },\n {\n \"tag\": "cowrie",\n \"popularity\": 6202\n },\n {\n \"tag\": "pleurolysis",\n \"popularity\": 6197\n },\n {\n \"tag\": "nationalist",\n \"popularity\": 6191\n },\n {\n \"tag\": "Pholadacea",\n \"popularity\": 6186\n },\n {\n \"tag\": "anakrousis",\n \"popularity\": 6180\n },\n {\n \"tag\": "proctorial",\n \"popularity\": 6175\n },\n {\n \"tag\": "cavillation",\n \"popularity\": 6169\n },\n {\n \"tag\": "cervicobregmatic",\n \"popularity\": 6163\n },\n {\n \"tag\": "interspecific",\n \"popularity\": 6158\n },\n {\n \"tag\": "Teutonity",\n \"popularity\": 6152\n },\n {\n \"tag\": "snakeholing",\n \"popularity\": 6147\n },\n {\n \"tag\": "balcony",\n \"popularity\": 6142\n },\n {\n \"tag\": "latchless",\n \"popularity\": 6136\n },\n {\n \"tag\": "Mithraea",\n \"popularity\": 6131\n },\n {\n \"tag\": "pseudepigraph",\n \"popularity\": 6125\n },\n {\n \"tag\": "flosser",\n \"popularity\": 6120\n },\n {\n \"tag\": "kotyle",\n \"popularity\": 6114\n },\n {\n \"tag\": "outdo",\n \"popularity\": 6109\n },\n {\n \"tag\": "interclerical",\n \"popularity\": 6103\n },\n {\n \"tag\": "aurar",\n \"popularity\": 6098\n },\n {\n \"tag\": "apophyseal",\n \"popularity\": 6093\n },\n {\n \"tag\": "Miro",\n \"popularity\": 6087\n },\n {\n \"tag\": "Priscillian",\n \"popularity\": 6082\n },\n {\n \"tag\": "alluvia",\n \"popularity\": 6076\n },\n {\n \"tag\": "exordize",\n \"popularity\": 6071\n },\n {\n \"tag\": "breakage",\n \"popularity\": 6066\n },\n {\n \"tag\": "unclosable",\n \"popularity\": 6060\n },\n {\n \"tag\": "monocondylous",\n \"popularity\": 6055\n },\n {\n \"tag\": "dyarchy",\n \"popularity\": 6050\n },\n {\n \"tag\": "subchelate",\n \"popularity\": 6044\n },\n {\n \"tag\": "hearsay",\n \"popularity\": 6039\n },\n {\n \"tag\": "prestigiously",\n \"popularity\": 6034\n },\n {\n \"tag\": "unimuscular",\n \"popularity\": 6028\n },\n {\n \"tag\": "lingwort",\n \"popularity\": 6023\n },\n {\n \"tag\": "jealous",\n \"popularity\": 6018\n },\n {\n \"tag\": "artilleryman",\n \"popularity\": 6012\n },\n {\n \"tag\": "phantasmagorially",\n \"popularity\": 6007\n },\n {\n \"tag\": "stagnum",\n \"popularity\": 6002\n },\n {\n \"tag\": "organotropism shatteringly",\n \"popularity\": 5997\n },\n {\n \"tag\": "Mytilus Hebraist",\n \"popularity\": 5991\n },\n {\n \"tag\": "returf",\n \"popularity\": 5986\n },\n {\n \"tag\": "townfolk",\n \"popularity\": 5981\n },\n {\n \"tag\": "propitiative",\n \"popularity\": 5976\n },\n {\n \"tag\": "Anita unsullied",\n \"popularity\": 5970\n },\n {\n \"tag\": "bandoleered",\n \"popularity\": 5965\n },\n {\n \"tag\": "cubby",\n \"popularity\": 5960\n },\n {\n \"tag\": "Hexanchus",\n \"popularity\": 5955\n },\n {\n \"tag\": "circuminsular",\n \"popularity\": 5949\n },\n {\n \"tag\": "chamberletted eumycete",\n \"popularity\": 5944\n },\n {\n \"tag\": "secure",\n \"popularity\": 5939\n },\n {\n \"tag\": "Edwardean",\n \"popularity\": 5934\n },\n {\n \"tag\": "strenth",\n \"popularity\": 5929\n },\n {\n \"tag\": "exhaustless",\n \"popularity\": 5923\n },\n {\n \"tag\": "electioneerer",\n \"popularity\": 5918\n },\n {\n \"tag\": "estoile",\n \"popularity\": 5913\n },\n {\n \"tag\": "redden",\n \"popularity\": 5908\n },\n {\n \"tag\": "solicitee",\n \"popularity\": 5903\n },\n {\n \"tag\": "nonpatented",\n \"popularity\": 5898\n },\n {\n \"tag\": "lemming",\n \"popularity\": 5893\n },\n {\n \"tag\": "marled subalate",\n \"popularity\": 5887\n },\n {\n \"tag\": "premial horizonward",\n \"popularity\": 5882\n },\n {\n \"tag\": "nonrefueling",\n \"popularity\": 5877\n },\n {\n \"tag\": "rupturewort",\n \"popularity\": 5872\n },\n {\n \"tag\": "unfed",\n \"popularity\": 5867\n },\n {\n \"tag\": "empanelment",\n \"popularity\": 5862\n },\n {\n \"tag\": "isoosmosis",\n \"popularity\": 5857\n },\n {\n \"tag\": "jipijapa",\n \"popularity\": 5852\n },\n {\n \"tag\": "Fiji",\n \"popularity\": 5847\n },\n {\n \"tag\": "interferant",\n \"popularity\": 5842\n },\n {\n \"tag\": "reconstitution",\n \"popularity\": 5837\n },\n {\n \"tag\": "dockyardman",\n \"popularity\": 5832\n },\n {\n \"tag\": "dolichopodous",\n \"popularity\": 5826\n },\n {\n \"tag\": "whiteworm",\n \"popularity\": 5821\n },\n {\n \"tag\": "atheistically",\n \"popularity\": 5816\n },\n {\n \"tag\": "nonconcern",\n \"popularity\": 5811\n },\n {\n \"tag\": "scarabaeidoid",\n \"popularity\": 5806\n },\n {\n \"tag\": "triumviri",\n \"popularity\": 5801\n },\n {\n \"tag\": "rakit",\n \"popularity\": 5796\n },\n {\n \"tag\": "leecheater",\n \"popularity\": 5791\n },\n {\n \"tag\": "Arthrostraca",\n \"popularity\": 5786\n },\n {\n \"tag\": "upknit",\n \"popularity\": 5781\n },\n {\n \"tag\": "tymbalon",\n \"popularity\": 5776\n },\n {\n \"tag\": "inventurous",\n \"popularity\": 5771\n },\n {\n \"tag\": "perradiate",\n \"popularity\": 5766\n },\n {\n \"tag\": "seer",\n \"popularity\": 5762\n },\n {\n \"tag\": "Auricularia",\n \"popularity\": 5757\n },\n {\n \"tag\": "wettish exclusivity",\n \"popularity\": 5752\n },\n {\n \"tag\": "arteriosympathectomy",\n \"popularity\": 5747\n },\n {\n \"tag\": "tunlike",\n \"popularity\": 5742\n },\n {\n \"tag\": "cephalocercal",\n \"popularity\": 5737\n },\n {\n \"tag\": "meaninglessness",\n \"popularity\": 5732\n },\n {\n \"tag\": "fountful",\n \"popularity\": 5727\n },\n {\n \"tag\": "appraisement",\n \"popularity\": 5722\n },\n {\n \"tag\": "geniculated",\n \"popularity\": 5717\n },\n {\n \"tag\": "rotator",\n \"popularity\": 5712\n },\n {\n \"tag\": "foremarch biography",\n \"popularity\": 5707\n },\n {\n \"tag\": "arid",\n \"popularity\": 5703\n },\n {\n \"tag\": "inapprehensible",\n \"popularity\": 5698\n },\n {\n \"tag\": "chlorosulphonic",\n \"popularity\": 5693\n },\n {\n \"tag\": "braguette",\n \"popularity\": 5688\n },\n {\n \"tag\": "panophthalmitis",\n \"popularity\": 5683\n },\n {\n \"tag\": "pro objurgatorily",\n \"popularity\": 5678\n },\n {\n \"tag\": "zooplasty",\n \"popularity\": 5673\n },\n {\n \"tag\": "Terebratulidae",\n \"popularity\": 5669\n },\n {\n \"tag\": "Mahran",\n \"popularity\": 5664\n },\n {\n \"tag\": "anthologize merocele",\n \"popularity\": 5659\n },\n {\n \"tag\": "firecracker chiropractic",\n \"popularity\": 5654\n },\n {\n \"tag\": "tenorist",\n \"popularity\": 5649\n },\n {\n \"tag\": "amphitene",\n \"popularity\": 5645\n },\n {\n \"tag\": "silverbush toadstone",\n \"popularity\": 5640\n },\n {\n \"tag\": "entozoological",\n \"popularity\": 5635\n },\n {\n \"tag\": "trustlessness",\n \"popularity\": 5630\n },\n {\n \"tag\": "reassay",\n \"popularity\": 5625\n },\n {\n \"tag\": "chrysalides",\n \"popularity\": 5621\n },\n {\n \"tag\": "truncation",\n \"popularity\": 5616\n },\n {\n \"tag\": "unwavered mausoleal",\n \"popularity\": 5611\n },\n {\n \"tag\": "unserrated",\n \"popularity\": 5606\n },\n {\n \"tag\": "frampler",\n \"popularity\": 5602\n },\n {\n \"tag\": "celestial",\n \"popularity\": 5597\n },\n {\n \"tag\": "depreter",\n \"popularity\": 5592\n },\n {\n \"tag\": "retaliate",\n \"popularity\": 5588\n },\n {\n \"tag\": "decempunctate",\n \"popularity\": 5583\n },\n {\n \"tag\": "submitter",\n \"popularity\": 5578\n },\n {\n \"tag\": "phenothiazine",\n \"popularity\": 5573\n },\n {\n \"tag\": "hobbledehoyish",\n \"popularity\": 5569\n },\n {\n \"tag\": "erraticness",\n \"popularity\": 5564\n },\n {\n \"tag\": "ovariodysneuria",\n \"popularity\": 5559\n },\n {\n \"tag\": "puja",\n \"popularity\": 5555\n },\n {\n \"tag\": "cesspool",\n \"popularity\": 5550\n },\n {\n \"tag\": "sonation",\n \"popularity\": 5545\n },\n {\n \"tag\": "moggan",\n \"popularity\": 5541\n },\n {\n \"tag\": "overjutting",\n \"popularity\": 5536\n },\n {\n \"tag\": "cohobate",\n \"popularity\": 5531\n },\n {\n \"tag\": "Distoma",\n \"popularity\": 5527\n },\n {\n \"tag\": "Plectognathi",\n \"popularity\": 5522\n },\n {\n \"tag\": "dumple caliphate",\n \"popularity\": 5517\n },\n {\n \"tag\": "shiko",\n \"popularity\": 5513\n },\n {\n \"tag\": "downness",\n \"popularity\": 5508\n },\n {\n \"tag\": "whippletree",\n \"popularity\": 5504\n },\n {\n \"tag\": "nymphaeum",\n \"popularity\": 5499\n },\n {\n \"tag\": "there trest",\n \"popularity\": 5494\n },\n {\n \"tag\": "psychrometer",\n \"popularity\": 5490\n },\n {\n \"tag\": "pyelograph",\n \"popularity\": 5485\n },\n {\n \"tag\": "unsalvable",\n \"popularity\": 5481\n },\n {\n \"tag\": "bescreen",\n \"popularity\": 5476\n },\n {\n \"tag\": "cushy",\n \"popularity\": 5471\n },\n {\n \"tag\": "plicatolobate",\n \"popularity\": 5467\n },\n {\n \"tag\": "lakie",\n \"popularity\": 5462\n },\n {\n \"tag\": "anthropodeoxycholic",\n \"popularity\": 5458\n },\n {\n \"tag\": "resatisfaction",\n \"popularity\": 5453\n },\n {\n \"tag\": "unravelment unaccidental",\n \"popularity\": 5449\n },\n {\n \"tag\": "telewriter monogeneous",\n \"popularity\": 5444\n },\n {\n \"tag\": "unsabred",\n \"popularity\": 5440\n },\n {\n \"tag\": "startlingly",\n \"popularity\": 5435\n },\n {\n \"tag\": "Aralia",\n \"popularity\": 5431\n },\n {\n \"tag\": "alamonti",\n \"popularity\": 5426\n },\n {\n \"tag\": "Franklinization",\n \"popularity\": 5422\n },\n {\n \"tag\": "parliament",\n \"popularity\": 5417\n },\n {\n \"tag\": "schoolkeeper",\n \"popularity\": 5413\n },\n {\n \"tag\": "nonsociety",\n \"popularity\": 5408\n },\n {\n \"tag\": "parenthetic",\n \"popularity\": 5404\n },\n {\n \"tag\": "stog",\n \"popularity\": 5399\n },\n {\n \"tag\": "Pristipomidae",\n \"popularity\": 5395\n },\n {\n \"tag\": "exocarp",\n \"popularity\": 5390\n },\n {\n \"tag\": "monaxonial",\n \"popularity\": 5386\n },\n {\n \"tag\": "tramroad",\n \"popularity\": 5381\n },\n {\n \"tag\": "hookah",\n \"popularity\": 5377\n },\n {\n \"tag\": "saccharonic",\n \"popularity\": 5372\n },\n {\n \"tag\": "perimetrium",\n \"popularity\": 5368\n },\n {\n \"tag\": "libelluloid",\n \"popularity\": 5364\n },\n {\n \"tag\": "overrunningly",\n \"popularity\": 5359\n },\n {\n \"tag\": "untwister",\n \"popularity\": 5355\n },\n {\n \"tag\": "ninnyhammer",\n \"popularity\": 5350\n },\n {\n \"tag\": "metranate",\n \"popularity\": 5346\n },\n {\n \"tag\": "sarcoblast",\n \"popularity\": 5341\n },\n {\n \"tag\": "porkish",\n \"popularity\": 5337\n },\n {\n \"tag\": "chauvinistic",\n \"popularity\": 5333\n },\n {\n \"tag\": "sexagesimal",\n \"popularity\": 5328\n },\n {\n \"tag\": "hematogenic",\n \"popularity\": 5324\n },\n {\n \"tag\": "selfpreservatory",\n \"popularity\": 5320\n },\n {\n \"tag\": "myelauxe",\n \"popularity\": 5315\n },\n {\n \"tag\": "triply",\n \"popularity\": 5311\n },\n {\n \"tag\": "metaphysicous",\n \"popularity\": 5306\n },\n {\n \"tag\": "vitrinoid",\n \"popularity\": 5302\n },\n {\n \"tag\": "glabellae",\n \"popularity\": 5298\n },\n {\n \"tag\": "moonlighter",\n \"popularity\": 5293\n },\n {\n \"tag\": "monotheistically epexegetical",\n \"popularity\": 5289\n },\n {\n \"tag\": "pseudolateral",\n \"popularity\": 5285\n },\n {\n \"tag\": "heptamethylene",\n \"popularity\": 5280\n },\n {\n \"tag\": "salvadora",\n \"popularity\": 5276\n },\n {\n \"tag\": "unjovial diphenylthiourea",\n \"popularity\": 5272\n },\n {\n \"tag\": "thievishness",\n \"popularity\": 5268\n },\n {\n \"tag\": "unridable",\n \"popularity\": 5263\n },\n {\n \"tag\": "underhandedly",\n \"popularity\": 5259\n },\n {\n \"tag\": "fungiform",\n \"popularity\": 5255\n },\n {\n \"tag\": "scruffle",\n \"popularity\": 5250\n },\n {\n \"tag\": "preindisposition",\n \"popularity\": 5246\n },\n {\n \"tag\": "Amadis",\n \"popularity\": 5242\n },\n {\n \"tag\": "Culex",\n \"popularity\": 5238\n },\n {\n \"tag\": "churning",\n \"popularity\": 5233\n },\n {\n \"tag\": "imperite",\n \"popularity\": 5229\n },\n {\n \"tag\": "levorotation",\n \"popularity\": 5225\n },\n {\n \"tag\": "barbate",\n \"popularity\": 5221\n },\n {\n \"tag\": "knotwort",\n \"popularity\": 5216\n },\n {\n \"tag\": "gypsiferous",\n \"popularity\": 5212\n },\n {\n \"tag\": "tourmalinic",\n \"popularity\": 5208\n },\n {\n \"tag\": "helleboric",\n \"popularity\": 5204\n },\n {\n \"tag\": "pneumograph",\n \"popularity\": 5199\n },\n {\n \"tag\": "Peltigeraceae",\n \"popularity\": 5195\n },\n {\n \"tag\": "busine",\n \"popularity\": 5191\n },\n {\n \"tag\": "Ailuridae",\n \"popularity\": 5187\n },\n {\n \"tag\": "azotate",\n \"popularity\": 5183\n },\n {\n \"tag\": "unlikable",\n \"popularity\": 5178\n },\n {\n \"tag\": "sloyd",\n \"popularity\": 5174\n },\n {\n \"tag\": "biblioclasm",\n \"popularity\": 5170\n },\n {\n \"tag\": "Seres",\n \"popularity\": 5166\n },\n {\n \"tag\": "unaccurateness",\n \"popularity\": 5162\n },\n {\n \"tag\": "scrollwise",\n \"popularity\": 5157\n },\n {\n \"tag\": "flandowser",\n \"popularity\": 5153\n },\n {\n \"tag\": "unblackened",\n \"popularity\": 5149\n },\n {\n \"tag\": "schistosternia",\n \"popularity\": 5145\n },\n {\n \"tag\": "fuse",\n \"popularity\": 5141\n },\n {\n \"tag\": "narthecal",\n \"popularity\": 5137\n },\n {\n \"tag\": "Cueva",\n \"popularity\": 5133\n },\n {\n \"tag\": "appositeness",\n \"popularity\": 5128\n },\n {\n \"tag\": "proindustrial",\n \"popularity\": 5124\n },\n {\n \"tag\": "dermatorrhoea",\n \"popularity\": 5120\n },\n {\n \"tag\": "oxyurous tendential",\n \"popularity\": 5116\n },\n {\n \"tag\": "isopurpurin",\n \"popularity\": 5112\n },\n {\n \"tag\": "impose",\n \"popularity\": 5108\n },\n {\n \"tag\": "wordsmanship",\n \"popularity\": 5104\n },\n {\n \"tag\": "saturator",\n \"popularity\": 5100\n },\n {\n \"tag\": "Nordicity",\n \"popularity\": 5096\n },\n {\n \"tag\": "interaccuse",\n \"popularity\": 5092\n },\n {\n \"tag\": "acridinic",\n \"popularity\": 5087\n },\n {\n \"tag\": "scholion",\n \"popularity\": 5083\n },\n {\n \"tag\": "pseudoaconitine",\n \"popularity\": 5079\n },\n {\n \"tag\": "doctorial",\n \"popularity\": 5075\n },\n {\n \"tag\": "Etchimin",\n \"popularity\": 5071\n },\n {\n \"tag\": "oliviform",\n \"popularity\": 5067\n },\n {\n \"tag\": "Pele",\n \"popularity\": 5063\n },\n {\n \"tag\": "Chiromantis Progymnasium",\n \"popularity\": 5059\n },\n {\n \"tag\": "toxosis",\n \"popularity\": 5055\n },\n {\n \"tag\": "spadilla",\n \"popularity\": 5051\n },\n {\n \"tag\": "Actinopterygii",\n \"popularity\": 5047\n },\n {\n \"tag\": "untiring",\n \"popularity\": 5043\n },\n {\n \"tag\": "butyral",\n \"popularity\": 5039\n },\n {\n \"tag\": "Gymnoderinae",\n \"popularity\": 5035\n },\n {\n \"tag\": "testudo",\n \"popularity\": 5031\n },\n {\n \"tag\": "frigorify",\n \"popularity\": 5027\n },\n {\n \"tag\": "aliency",\n \"popularity\": 5023\n },\n {\n \"tag\": "jargon",\n \"popularity\": 5019\n },\n {\n \"tag\": "counterservice",\n \"popularity\": 5015\n },\n {\n \"tag\": "isostrychnine",\n \"popularity\": 5011\n },\n {\n \"tag\": "tellership",\n \"popularity\": 5007\n },\n {\n \"tag\": "miscegenetic",\n \"popularity\": 5003\n },\n {\n \"tag\": "sorcer",\n \"popularity\": 4999\n },\n {\n \"tag\": "tilewright",\n \"popularity\": 4995\n },\n {\n \"tag\": "cyanoplastid",\n \"popularity\": 4991\n },\n {\n \"tag\": "fluxionally",\n \"popularity\": 4987\n },\n {\n \"tag\": "proudhearted",\n \"popularity\": 4983\n },\n {\n \"tag\": "blithely",\n \"popularity\": 4979\n },\n {\n \"tag\": "jestproof",\n \"popularity\": 4975\n },\n {\n \"tag\": "jestwise",\n \"popularity\": 4971\n },\n {\n \"tag\": "nonassimilable",\n \"popularity\": 4967\n },\n {\n \"tag\": "compurgation",\n \"popularity\": 4964\n },\n {\n \"tag\": "unhate",\n \"popularity\": 4960\n },\n {\n \"tag\": "haplodonty",\n \"popularity\": 4956\n },\n {\n \"tag\": "cardholder",\n \"popularity\": 4952\n },\n {\n \"tag\": "rainlight megohmmeter overstout",\n \"popularity\": 4948\n },\n {\n \"tag\": "itchless",\n \"popularity\": 4944\n },\n {\n \"tag\": "begiggle",\n \"popularity\": 4940\n },\n {\n \"tag\": "chromatosphere",\n \"popularity\": 4936\n },\n {\n \"tag\": "typicality",\n \"popularity\": 4932\n },\n {\n \"tag\": "overgrown",\n \"popularity\": 4928\n },\n {\n \"tag\": "envolume",\n \"popularity\": 4925\n },\n {\n \"tag\": "pachycholia",\n \"popularity\": 4921\n },\n {\n \"tag\": "passageable",\n \"popularity\": 4917\n },\n {\n \"tag\": "pathopoiesis",\n \"popularity\": 4913\n },\n {\n \"tag\": "overbreak",\n \"popularity\": 4909\n },\n {\n \"tag\": "satyric",\n \"popularity\": 4905\n },\n {\n \"tag\": "unaudited",\n \"popularity\": 4901\n },\n {\n \"tag\": "whimble",\n \"popularity\": 4898\n },\n {\n \"tag\": "pressureless",\n \"popularity\": 4894\n },\n {\n \"tag\": "Selene",\n \"popularity\": 4890\n },\n {\n \"tag\": "slithery",\n \"popularity\": 4886\n },\n {\n \"tag\": "nondisfigurement",\n \"popularity\": 4882\n },\n {\n \"tag\": "overdelicious",\n \"popularity\": 4878\n },\n {\n \"tag\": "Perca",\n \"popularity\": 4875\n },\n {\n \"tag\": "Palladium",\n \"popularity\": 4871\n },\n {\n \"tag\": "insagacity",\n \"popularity\": 4867\n },\n {\n \"tag\": "peristoma",\n \"popularity\": 4863\n },\n {\n \"tag\": "uncreativeness",\n \"popularity\": 4859\n },\n {\n \"tag\": "incomparability surfboarding",\n \"popularity\": 4856\n },\n {\n \"tag\": "bacillar",\n \"popularity\": 4852\n },\n {\n \"tag\": "ulcerative",\n \"popularity\": 4848\n },\n {\n \"tag\": "stychomythia",\n \"popularity\": 4844\n },\n {\n \"tag\": "sesma somatics nonentry",\n \"popularity\": 4840\n },\n {\n \"tag\": "unsepulchred",\n \"popularity\": 4837\n },\n {\n \"tag\": "cephalanthium",\n \"popularity\": 4833\n },\n {\n \"tag\": "Asiaticization",\n \"popularity\": 4829\n },\n {\n \"tag\": "killeen",\n \"popularity\": 4825\n },\n {\n \"tag\": "Pseudococcus",\n \"popularity\": 4822\n },\n {\n \"tag\": "untractable",\n \"popularity\": 4818\n },\n {\n \"tag\": "apolegamic",\n \"popularity\": 4814\n },\n {\n \"tag\": "hyperpnea",\n \"popularity\": 4810\n },\n {\n \"tag\": "martyrolatry",\n \"popularity\": 4807\n },\n {\n \"tag\": "Sarmatic",\n \"popularity\": 4803\n },\n {\n \"tag\": "nonsurface",\n \"popularity\": 4799\n },\n {\n \"tag\": "adjoined",\n \"popularity\": 4796\n },\n {\n \"tag\": "vasiform",\n \"popularity\": 4792\n },\n {\n \"tag\": "tastelessness",\n \"popularity\": 4788\n },\n {\n \"tag\": "rumbo",\n \"popularity\": 4784\n },\n {\n \"tag\": "subdititious",\n \"popularity\": 4781\n },\n {\n \"tag\": "reparticipation",\n \"popularity\": 4777\n },\n {\n \"tag\": "Yorkshireism",\n \"popularity\": 4773\n },\n {\n \"tag\": "outcrow",\n \"popularity\": 4770\n },\n {\n \"tag\": "casserole",\n \"popularity\": 4766\n },\n {\n \"tag\": "semideltaic",\n \"popularity\": 4762\n },\n {\n \"tag\": "freemason",\n \"popularity\": 4759\n },\n {\n \"tag\": "catkin",\n \"popularity\": 4755\n },\n {\n \"tag\": "conscient",\n \"popularity\": 4751\n },\n {\n \"tag\": "reliably",\n \"popularity\": 4748\n },\n {\n \"tag\": "Telembi",\n \"popularity\": 4744\n },\n {\n \"tag\": "hide",\n \"popularity\": 4740\n },\n {\n \"tag\": "social",\n \"popularity\": 4737\n },\n {\n \"tag\": "ichneutic",\n \"popularity\": 4733\n },\n {\n \"tag\": "polypotome blouse pentagrammatic",\n \"popularity\": 4729\n },\n {\n \"tag\": "airdrome pesthole",\n \"popularity\": 4726\n },\n {\n \"tag\": "unportended",\n \"popularity\": 4722\n },\n {\n \"tag\": "sheerly",\n \"popularity\": 4719\n },\n {\n \"tag\": "acardiac",\n \"popularity\": 4715\n },\n {\n \"tag\": "fetor",\n \"popularity\": 4711\n },\n {\n \"tag\": "storax",\n \"popularity\": 4708\n },\n {\n \"tag\": "syndactylic",\n \"popularity\": 4704\n },\n {\n \"tag\": "otiatrics",\n \"popularity\": 4700\n },\n {\n \"tag\": "range",\n \"popularity\": 4697\n },\n {\n \"tag\": "branchway",\n \"popularity\": 4693\n },\n {\n \"tag\": "beatific",\n \"popularity\": 4690\n },\n {\n \"tag\": "Rugosa",\n \"popularity\": 4686\n },\n {\n \"tag\": "rafty",\n \"popularity\": 4682\n },\n {\n \"tag\": "gapy",\n \"popularity\": 4679\n },\n {\n \"tag\": "heterocercal",\n \"popularity\": 4675\n },\n {\n \"tag\": "actinopterygious",\n \"popularity\": 4672\n },\n {\n \"tag\": "glauconite",\n \"popularity\": 4668\n },\n {\n \"tag\": "limbless priest",\n \"popularity\": 4665\n },\n {\n \"tag\": "chrysene",\n \"popularity\": 4661\n },\n {\n \"tag\": "isentropic",\n \"popularity\": 4658\n },\n {\n \"tag\": "lairdess",\n \"popularity\": 4654\n },\n {\n \"tag\": "butterhead choliambic",\n \"popularity\": 4650\n },\n {\n \"tag\": "hexaseme",\n \"popularity\": 4647\n },\n {\n \"tag\": "treeify",\n \"popularity\": 4643\n },\n {\n \"tag\": "coronetted fructify",\n \"popularity\": 4640\n },\n {\n \"tag\": "admiralty",\n \"popularity\": 4636\n },\n {\n \"tag\": "Flosculariidae",\n \"popularity\": 4633\n },\n {\n \"tag\": "limaceous",\n \"popularity\": 4629\n },\n {\n \"tag\": "subterconscious",\n \"popularity\": 4626\n },\n {\n \"tag\": "stayless",\n \"popularity\": 4622\n },\n {\n \"tag\": "psha",\n \"popularity\": 4619\n },\n {\n \"tag\": "Mediterraneanize",\n \"popularity\": 4615\n },\n {\n \"tag\": "impenetrably",\n \"popularity\": 4612\n },\n {\n \"tag\": "Myrmeleonidae",\n \"popularity\": 4608\n },\n {\n \"tag\": "germander",\n \"popularity\": 4605\n },\n {\n \"tag\": "Buri",\n \"popularity\": 4601\n },\n {\n \"tag\": "papyrotamia",\n \"popularity\": 4598\n },\n {\n \"tag\": "Toxylon",\n \"popularity\": 4594\n },\n {\n \"tag\": "batatilla",\n \"popularity\": 4591\n },\n {\n \"tag\": "fabella assumer",\n \"popularity\": 4587\n },\n {\n \"tag\": "macromethod",\n \"popularity\": 4584\n },\n {\n \"tag\": "Blechnum",\n \"popularity\": 4580\n },\n {\n \"tag\": "pantography",\n \"popularity\": 4577\n },\n {\n \"tag\": "seminovel",\n \"popularity\": 4574\n },\n {\n \"tag\": "disembarrassment",\n \"popularity\": 4570\n },\n {\n \"tag\": "bushmaking",\n \"popularity\": 4567\n },\n {\n \"tag\": "neurosis",\n \"popularity\": 4563\n },\n {\n \"tag\": "Animalia",\n \"popularity\": 4560\n },\n {\n \"tag\": "Bernice",\n \"popularity\": 4556\n },\n {\n \"tag\": "wisen",\n \"popularity\": 4553\n },\n {\n \"tag\": "subhymenium",\n \"popularity\": 4549\n },\n {\n \"tag\": "esophagomycosis",\n \"popularity\": 4546\n },\n {\n \"tag\": "wireworks",\n \"popularity\": 4543\n },\n {\n \"tag\": "Sabellidae",\n \"popularity\": 4539\n },\n {\n \"tag\": "fustianish",\n \"popularity\": 4536\n },\n {\n \"tag\": "professively",\n \"popularity\": 4532\n },\n {\n \"tag\": "overcorruptly",\n \"popularity\": 4529\n },\n {\n \"tag\": "overcreep",\n \"popularity\": 4526\n },\n {\n \"tag\": "Castilloa",\n \"popularity\": 4522\n },\n {\n \"tag\": "forelady Georgie",\n \"popularity\": 4519\n },\n {\n \"tag\": "outsider",\n \"popularity\": 4515\n },\n {\n \"tag\": "Enukki",\n \"popularity\": 4512\n },\n {\n \"tag\": "gypsy",\n \"popularity\": 4509\n },\n {\n \"tag\": "Passamaquoddy",\n \"popularity\": 4505\n },\n {\n \"tag\": "reposit",\n \"popularity\": 4502\n },\n {\n \"tag\": "overtenderness",\n \"popularity\": 4499\n },\n {\n \"tag\": "keratome",\n \"popularity\": 4495\n },\n {\n \"tag\": "interclavicular hypermonosyllable Susanna",\n \"popularity\": 4492\n },\n {\n \"tag\": "mispropose",\n \"popularity\": 4489\n },\n {\n \"tag\": "Membranipora",\n \"popularity\": 4485\n },\n {\n \"tag\": "lampad",\n \"popularity\": 4482\n },\n {\n \"tag\": "header",\n \"popularity\": 4479\n },\n {\n \"tag\": "triseriate",\n \"popularity\": 4475\n },\n {\n \"tag\": "distrainment",\n \"popularity\": 4472\n },\n {\n \"tag\": "staphyloplastic",\n \"popularity\": 4469\n },\n {\n \"tag\": "outscour",\n \"popularity\": 4465\n },\n {\n \"tag\": "tallowmaking",\n \"popularity\": 4462\n },\n {\n \"tag\": "plugger",\n \"popularity\": 4459\n },\n {\n \"tag\": "fashionize",\n \"popularity\": 4455\n },\n {\n \"tag\": "puzzle",\n \"popularity\": 4452\n },\n {\n \"tag\": "imbrue",\n \"popularity\": 4449\n },\n {\n \"tag\": "osteoblast",\n \"popularity\": 4445\n },\n {\n \"tag\": "Hydrocores",\n \"popularity\": 4442\n },\n {\n \"tag\": "Lutra",\n \"popularity\": 4439\n },\n {\n \"tag\": "upridge scarfy",\n \"popularity\": 4435\n },\n {\n \"tag\": "ancon taffle",\n \"popularity\": 4432\n },\n {\n \"tag\": "impest",\n \"popularity\": 4429\n },\n {\n \"tag\": "uncollatedness",\n \"popularity\": 4426\n },\n {\n \"tag\": "hypersensitize",\n \"popularity\": 4422\n },\n {\n \"tag\": "autographically",\n \"popularity\": 4419\n },\n {\n \"tag\": "louther",\n \"popularity\": 4416\n },\n {\n \"tag\": "Ollie",\n \"popularity\": 4413\n },\n {\n \"tag\": "recompensate",\n \"popularity\": 4409\n },\n {\n \"tag\": "Shan",\n \"popularity\": 4406\n },\n {\n \"tag\": "brachycnemic",\n \"popularity\": 4403\n },\n {\n \"tag\": "Carinatae",\n \"popularity\": 4399\n },\n {\n \"tag\": "geotherm",\n \"popularity\": 4396\n },\n {\n \"tag\": "sawback",\n \"popularity\": 4393\n },\n {\n \"tag\": "Novatianist",\n \"popularity\": 4390\n },\n {\n \"tag\": "reapproach",\n \"popularity\": 4387\n },\n {\n \"tag\": "myelopoietic",\n \"popularity\": 4383\n },\n {\n \"tag\": "cyanin",\n \"popularity\": 4380\n },\n {\n \"tag\": "unsmutted",\n \"popularity\": 4377\n },\n {\n \"tag\": "nonpapist",\n \"popularity\": 4374\n },\n {\n \"tag\": "transbaikalian",\n \"popularity\": 4370\n },\n {\n \"tag\": "connately",\n \"popularity\": 4367\n },\n {\n \"tag\": "tenderize iterance",\n \"popularity\": 4364\n },\n {\n \"tag\": "hydrostatical",\n \"popularity\": 4361\n },\n {\n \"tag\": "unflag",\n \"popularity\": 4358\n },\n {\n \"tag\": "translate",\n \"popularity\": 4354\n },\n {\n \"tag\": "Scorzonera",\n \"popularity\": 4351\n },\n {\n \"tag\": "uncomforted",\n \"popularity\": 4348\n },\n {\n \"tag\": "risser varied",\n \"popularity\": 4345\n },\n {\n \"tag\": "plumbate",\n \"popularity\": 4342\n },\n {\n \"tag\": "Usneaceae",\n \"popularity\": 4338\n },\n {\n \"tag\": "fohat",\n \"popularity\": 4335\n },\n {\n \"tag\": "slagging",\n \"popularity\": 4332\n },\n {\n \"tag\": "superserious",\n \"popularity\": 4329\n },\n {\n \"tag\": "theocracy",\n \"popularity\": 4326\n },\n {\n \"tag\": "valonia",\n \"popularity\": 4323\n },\n {\n \"tag\": "Sapindales",\n \"popularity\": 4319\n },\n {\n \"tag\": "palaeozoologist",\n \"popularity\": 4316\n },\n {\n \"tag\": "yalb",\n \"popularity\": 4313\n },\n {\n \"tag\": "unviewed",\n \"popularity\": 4310\n },\n {\n \"tag\": "polyarteritis",\n \"popularity\": 4307\n },\n {\n \"tag\": "vectorial",\n \"popularity\": 4304\n },\n {\n \"tag\": "skimpingly",\n \"popularity\": 4301\n },\n {\n \"tag\": "athort",\n \"popularity\": 4297\n },\n {\n \"tag\": "tribofluorescence",\n \"popularity\": 4294\n },\n {\n \"tag\": "benzonitrol",\n \"popularity\": 4291\n },\n {\n \"tag\": "swiller subobtuse subjacency",\n \"popularity\": 4288\n },\n {\n \"tag\": "uncompassed",\n \"popularity\": 4285\n },\n {\n \"tag\": "cacochymia",\n \"popularity\": 4282\n },\n {\n \"tag\": "commensalist butadiene",\n \"popularity\": 4279\n },\n {\n \"tag\": "culpable",\n \"popularity\": 4276\n },\n {\n \"tag\": "contributive",\n \"popularity\": 4273\n },\n {\n \"tag\": "attemperately",\n \"popularity\": 4269\n },\n {\n \"tag\": "spelt",\n \"popularity\": 4266\n },\n {\n \"tag\": "exoneration",\n \"popularity\": 4263\n },\n {\n \"tag\": "antivivisectionist",\n \"popularity\": 4260\n },\n {\n \"tag\": "granitification",\n \"popularity\": 4257\n },\n {\n \"tag\": "palladize",\n \"popularity\": 4254\n },\n {\n \"tag\": "marksmanship",\n \"popularity\": 4251\n },\n {\n \"tag\": "bullydom",\n \"popularity\": 4248\n },\n {\n \"tag\": "spirality",\n \"popularity\": 4245\n },\n {\n \"tag\": "caliginous",\n \"popularity\": 4242\n },\n {\n \"tag\": "reportedly",\n \"popularity\": 4239\n },\n {\n \"tag\": "polyad",\n \"popularity\": 4236\n },\n {\n \"tag\": "arthroempyesis",\n \"popularity\": 4233\n },\n {\n \"tag\": "semibay facultatively",\n \"popularity\": 4229\n },\n {\n \"tag\": "metastatically",\n \"popularity\": 4226\n },\n {\n \"tag\": "prophetically",\n \"popularity\": 4223\n },\n {\n \"tag\": "Linguatula elapid",\n \"popularity\": 4220\n },\n {\n \"tag\": "pyknatom",\n \"popularity\": 4217\n },\n {\n \"tag\": "centimeter",\n \"popularity\": 4214\n },\n {\n \"tag\": "mensurate",\n \"popularity\": 4211\n },\n {\n \"tag\": "migraine",\n \"popularity\": 4208\n },\n {\n \"tag\": "pentagamist",\n \"popularity\": 4205\n },\n {\n \"tag\": "querken",\n \"popularity\": 4202\n },\n {\n \"tag\": "ambulance",\n \"popularity\": 4199\n },\n {\n \"tag\": "Stokavian",\n \"popularity\": 4196\n },\n {\n \"tag\": "malvasian",\n \"popularity\": 4193\n },\n {\n \"tag\": "uncouthsome",\n \"popularity\": 4190\n },\n {\n \"tag\": "readable",\n \"popularity\": 4187\n },\n {\n \"tag\": "enlodge",\n \"popularity\": 4184\n },\n {\n \"tag\": "plasterwise Appendiculariidae perspectograph",\n \"popularity\": 4181\n },\n {\n \"tag\": "inkweed",\n \"popularity\": 4178\n },\n {\n \"tag\": "streep",\n \"popularity\": 4175\n },\n {\n \"tag\": "diadelphian cultured",\n \"popularity\": 4172\n },\n {\n \"tag\": "hymenopterous",\n \"popularity\": 4169\n },\n {\n \"tag\": "unexorableness",\n \"popularity\": 4166\n },\n {\n \"tag\": "cascaron",\n \"popularity\": 4163\n },\n {\n \"tag\": "undaintiness",\n \"popularity\": 4160\n },\n {\n \"tag\": "Curtana",\n \"popularity\": 4157\n },\n {\n \"tag\": "scurvied",\n \"popularity\": 4154\n },\n {\n \"tag\": "molluscoidal",\n \"popularity\": 4151\n },\n {\n \"tag\": "yurt",\n \"popularity\": 4148\n },\n {\n \"tag\": "deciduitis",\n \"popularity\": 4145\n },\n {\n \"tag\": "creephole",\n \"popularity\": 4142\n },\n {\n \"tag\": "quatrefeuille",\n \"popularity\": 4139\n },\n {\n \"tag\": "bicapitate adenomatome",\n \"popularity\": 4136\n },\n {\n \"tag\": "damassin",\n \"popularity\": 4134\n },\n {\n \"tag\": "planching",\n \"popularity\": 4131\n },\n {\n \"tag\": "dashedly inferential",\n \"popularity\": 4128\n },\n {\n \"tag\": "lobe",\n \"popularity\": 4125\n },\n {\n \"tag\": "Hyrachyus",\n \"popularity\": 4122\n },\n {\n \"tag\": "knab",\n \"popularity\": 4119\n },\n {\n \"tag\": "discohexaster",\n \"popularity\": 4116\n },\n {\n \"tag\": "malign",\n \"popularity\": 4113\n },\n {\n \"tag\": "pedagoguism",\n \"popularity\": 4110\n },\n {\n \"tag\": "shrubbery",\n \"popularity\": 4107\n },\n {\n \"tag\": "undershrub",\n \"popularity\": 4104\n },\n {\n \"tag\": "bureaucrat",\n \"popularity\": 4101\n },\n {\n \"tag\": "pantaleon",\n \"popularity\": 4098\n },\n {\n \"tag\": "mesoventral",\n \"popularity\": 4096\n }]';
+
+var log2 = Math.log(2);
+var tagInfo = tagInfoJSON.parseJSON(function(a, b) { if (a == "popularity") { return Math.log(b) / log2; } else {return b; } });
+
+function makeTagCloud(tagInfo)
+{
+ var output = '<div class="tagCloud" style="width: 100%">';
+
+ tagInfo.sort(function(a, b) { if (a.tag < b.tag) { return -1; } else if (a.tag == b.tag) { return 0; } else return 1; });
+
+ for (var i = 0; i < tagInfo.length; i++) {
+ var tag = tagInfo[i].tag;
+
+ var validates = true;
+ for (var j = 0; j < tag.length; j++) {
+ var ch = tag.charCodeAt(j);
+ if (ch < 0x20 || ch >= 0x7f) {
+ validates = false;
+ break;
+ }
+ }
+
+ if (!validates)
+ continue;
+
+ var url = "http://example.com/tag/" + tag.replace(" ", "").toLowerCase();
+ var popularity = tagInfo[i].popularity;
+ var color = 'rgb(' + Math.floor(255 * (popularity - 12) / 20) + ', 0, 255)';
+ output += ' <a href="' + url + '" style="font-size: ' + popularity + 'px; color: ' + color + '">' + tag + '</a> \n';
+ }
+
+ output += '</div>';
+ output.replace(" ", "&nbsp;");
+
+ return output;
+}
+
+var tagcloud = makeTagCloud(tagInfo);
+tagInfo = null;
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/string-unpack-code.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/string-unpack-code.js
new file mode 100644
index 000000000..e6330f15f
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/string-unpack-code.js
@@ -0,0 +1,68 @@
+// This test case unpacks the compressed code for the MochiKit,
+// jQuery, Dojo and Prototype JavaScript libraries.
+
+/***
+ MochiKit.MochiKit 1.3.1 : PACKED VERSION
+ THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please
+ diff against the source tree, not this file.
+
+ See <http://mochikit.com/> for documentation, downloads, license, etc.
+
+ (c) 2005 Bob Ippolito. All rights Reserved.
+***/
+
+for (var i = 0; i < 2; i++) {
+
+var decompressedMochiKit = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('if(H(1q)!="L"){1q.2X("B.J")}if(H(B)=="L"){B={}}if(H(B.J)=="L"){B.J={}}B.J.1Y="1.3.1";B.J.1r="B.J";B.J.2l=G(7V,vR){if(7V===O){7V={}}R(u i=1;i<M.K;i++){u o=M[i];if(H(o)!="L"&&o!==O){R(u k in o){7V[k]=o[k]}}}F 7V};B.J.2l(B.J,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},4f:G(n){if(M.K===0){n=1}F G(){F n++}},4L:G(mw){u me=M.2U;if(M.K==1){me.1U=mw;F Y me()}},bg:G(vQ){u X=[];u m=B.J;u aw=m.1R(O,M);1M(aw.K){u o=aw.2P();if(o&&H(o)=="3n"&&H(o.K)=="2y"){R(u i=o.K-1;i>=0;i--){aw.e9(o[i])}}N{X.1c(o)}}F X},1R:G(7U,1i,av){if(!av){av=0}if(1i){u l=1i.K;if(H(l)!="2y"){if(H(B.15)!="L"){1i=B.15.2G(1i);l=1i.K}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(!7U){7U=[]}R(u i=av;i<l;i++){7U.1c(1i[i])}}F 7U},8Z:G(5g,1i){if(5g===O){5g={}}R(u i=1;i<M.K;i++){u o=M[i];if(H(o)!="L"&&o!==O){R(u k in o){u v=o[k];if(H(5g[k])=="3n"&&H(v)=="3n"){M.2U(5g[k],v)}N{5g[k]=v}}}}F 5g},lO:G(6c,1i){if(6c===O){6c={}}R(u i=1;i<M.K;i++){u o=M[i];R(u k in o){if(!(k in 6c)){6c[k]=o[k]}}}F 6c},lN:G(1i){u fj=[];R(u mv in 1i){fj.1c(mv)}F fj},lM:G(1i){u fh=[];u e;R(u fi in 1i){u v;1f{v=1i[fi]}1e(e){2V}fh.1c([fi,v])}F fh},jq:G(fg,ff,fe){fe.1U=Y B.J.5a(fg.1r+"."+ff);fg[ff]=fe},4i:{7L:G(a){F!!a},vP:G(a){F!a},eE:G(a){F a},2E:G(a){F~a},vO:G(a){F-a},vN:G(a,b){F a+b},vM:G(a,b){F a-b},4u:G(a,b){F a/b},vL:G(a,b){F a%b},vK:G(a,b){F a*b},3W:G(a,b){F a&b},or:G(a,b){F a|b},vJ:G(a,b){F a^b},vI:G(a,b){F a<<b},vH:G(a,b){F a>>b},vG:G(a,b){F a>>>b},eq:G(a,b){F a==b},ne:G(a,b){F a!=b},gt:G(a,b){F a>b},ge:G(a,b){F a>=b},lt:G(a,b){F a<b},le:G(a,b){F a<=b},vF:G(a,b){F B.J.2f(a,b)===0},vE:G(a,b){F B.J.2f(a,b)!==0},vD:G(a,b){F B.J.2f(a,b)==1},vC:G(a,b){F B.J.2f(a,b)!=-1},vB:G(a,b){F B.J.2f(a,b)==-1},vA:G(a,b){F B.J.2f(a,b)!=1},vz:G(a,b){F a&&b},vy:G(a,b){F a||b},vx:G(a,b){F b in a}},24:G(mu){F G(){F D[mu].1w(D,M)}},lL:G(mt){F G(a9){F a9[mt]}},66:G(){u fd={};R(u i=0;i<M.K;i++){u 6b=M[i];fd[6b]=6b}F G(){R(u i=0;i<M.K;i++){if(!(H(M[i])in fd)){F 1m}}F 1h}},lJ:G(){R(u i=0;i<M.K;i++){if(M[i]!==O){F 1m}}F 1h},lK:G(){R(u i=0;i<M.K;i++){u o=M[i];if(!(H(o)=="L"||o===O)){F 1m}}F 1h},lI:G(1i){F!B.J.7e.1w(D,M)},7e:G(1i){R(u i=0;i<M.K;i++){u o=M[i];if(!(o&&o.K)){F 1m}}F 1h},3A:G(){R(u i=0;i<M.K;i++){u o=M[i];u 6b=H(o);if((6b!="3n"&&!(6b=="G"&&H(o.vw)=="G"))||o===O||H(o.K)!="2y"){F 1m}}F 1h},eN:G(){R(u i=0;i<M.K;i++){u o=M[i];if(H(o)!="3n"||o===O||H(o.9P)!="G"){F 1m}}F 1h},lH:G(fn){if(fn===O){F B.J.1R(O,M,1)}u fc=[];R(u i=1;i<M.K;i++){fc.1c(fn(M[i]))}F fc},2r:G(fn,1g){u m=B.J;u 6a=B.15;u fb=m.3A;if(M.K<=2){if(!fb(1g)){if(6a){1g=6a.2G(1g);if(fn===O){F 1g}}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(fn===O){F m.1R(O,1g)}u 69=[];R(u i=0;i<1g.K;i++){69.1c(fn(1g[i]))}F 69}N{if(fn===O){fn=7o}u 7T=O;R(i=1;i<M.K;i++){if(!fb(M[i])){if(6a){F 6a.2G(6a.4c.1w(O,M))}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}u l=M[i].K;if(7T===O||7T>l){7T=l}}69=[];R(i=0;i<7T;i++){u fa=[];R(u j=1;j<M.K;j++){fa.1c(M[j][i])}69.1c(fn.1w(D,fa))}F 69}},lG:G(fn){u f9=[];if(fn===O){fn=B.J.4i.7L}R(u i=1;i<M.K;i++){u o=M[i];if(fn(o)){f9.1c(o)}}F f9},47:G(fn,1g,7S){u aq=[];u m=B.J;if(!m.3A(1g)){if(B.15){1g=B.15.2G(1g)}N{14 Y 3p("au 2E an at-as 3W B.15 2E ar")}}if(fn===O){fn=m.4i.7L}if(H(7o.1U.47)=="G"){F 7o.1U.47.cz(1g,fn,7S)}N{if(H(7S)=="L"||7S===O){R(u i=0;i<1g.K;i++){u o=1g[i];if(fn(o)){aq.1c(o)}}}N{R(i=0;i<1g.K;i++){o=1g[i];if(fn.cz(7S,o)){aq.1c(o)}}}}F aq},mq:G(7R){F G(){hd(M.K){3j 0:F 7R();3j 1:F 7R(M[0]);3j 2:F 7R(M[0],M[1]);3j 3:F 7R(M[0],M[1],M[2])}u f8=[];R(u i=0;i<M.K;i++){f8.1c("M["+i+"]")}F dB("(1A("+f8.2b(",")+"))")}},lv:G(mr,ms){u m=B.J;F m.1O.1w(D,m.1R([ms,mr],M,2))},1O:G(3c,4o){if(H(3c)=="1n"){3c=4o[3c]}u ao=3c.f5;u 5f=3c.am;u f6=3c.f7;u m=B.J;if(H(3c)=="G"&&H(3c.1w)=="L"){3c=m.mq(3c)}if(H(ao)!="G"){ao=3c}if(H(4o)!="L"){f6=4o}if(H(5f)=="L"){5f=[]}N{5f=5f.9T()}m.1R(5f,M,2);u 7Q=G(){u ap=M;u me=M.2U;if(me.am.K>0){ap=m.2o(me.am,ap)}u 4o=me.f7;if(!4o){4o=D}F me.f5.1w(4o,ap)};7Q.f7=f6;7Q.f5=ao;7Q.am=5f;F 7Q},lF:G(7P){u mp=B.J.1O;R(u k in 7P){u f4=7P[k];if(H(f4)=="G"){7P[k]=mp(f4,7P)}}},5u:G(mo,mn,ml,mk){B.J.ae.5M(mo,mn,ml,mk)},mj:{"5L":1h,"1n":1h,"2y":1h},2f:G(a,b){if(a==b){F 0}u f3=(H(a)=="L"||a===O);u f2=(H(b)=="L"||b===O);if(f3&&f2){F 0}N{if(f3){F-1}N{if(f2){F 1}}}u m=B.J;u f1=m.mj;if(!(H(a)in f1&&H(b)in f1)){1f{F m.ae.3C(a,b)}1e(e){if(e!=m.4d){14 e}}}if(a<b){F-1}N{if(a>b){F 1}}u f0=m.U;14 Y 3p(f0(a)+" 3W "+f0(b)+" 9v 2E be vv")},eM:G(a,b){F B.J.2f(a.9P(),b.9P())},eL:G(a,b){u mi=B.J.2f;u 7O=a.K;u al=0;if(7O>b.K){al=1;7O=b.K}N{if(7O<b.K){al=-1}}R(u i=0;i<7O;i++){u 4j=mi(a[i],b[i]);if(4j){F 4j}}F al},7M:G(mh,mg,mf,md){B.J.ad.5M(mh,mg,mf,md)},U:G(o){if(H(o)=="L"){F"L"}N{if(o===O){F"O"}}1f{if(H(o.1K)=="G"){F o.1K()}N{if(H(o.U)=="G"&&o.U!=M.2U){F o.U()}}F B.J.ad.3C(o)}1e(e){if(H(o.1r)=="1n"&&(o.1l==cZ.1U.1l||o.1l==vu.1U.1l)){F o.1r}}1f{u eZ=(o+"")}1e(e){F"["+H(o)+"]"}if(H(o)=="G"){o=eZ.23(/^\\s+/,"");u 5n=o.2A("{");if(5n!=-1){o=o.3H(0,5n)+"{...}"}}F eZ},eK:G(o){u m=B.J;F"["+m.2r(m.U,o).2b(", ")+"]"},ac:G(o){F("\\""+o.23(/(["\\\\])/g,"\\\\$1")+"\\"").23(/[\\f]/g,"\\\\f").23(/[\\b]/g,"\\\\b").23(/[\\n]/g,"\\\\n").23(/[\\t]/g,"\\\\t").23(/[\\r]/g,"\\\\r")},eJ:G(o){F o+""},ly:G(mc,mb,ma,m9){B.J.ab.5M(mc,mb,ma,m9)},lx:G(){F dB("("+M[0]+")")},lz:G(o){u 5e=H(o);if(5e=="L"){F"L"}N{if(5e=="2y"||5e=="5L"){F o+""}N{if(o===O){F"O"}}}u m=B.J;u eY=m.ac;if(5e=="1n"){F eY(o)}u me=M.2U;u 3S;if(H(o.m8)=="G"){3S=o.m8();if(o!==3S){F me(3S)}}if(H(o.m7)=="G"){3S=o.m7();if(o!==3S){F me(3S)}}if(5e!="G"&&H(o.K)=="2y"){u X=[];R(u i=0;i<o.K;i++){u 2i=me(o[i]);if(H(2i)!="1n"){2i="L"}X.1c(2i)}F"["+X.2b(", ")+"]"}1f{3S=m.ab.3C(o);F me(3S)}1e(e){if(e!=m.4d){14 e}}if(5e=="G"){F O}X=[];R(u k in o){u ak;if(H(k)=="2y"){ak="\\""+k+"\\""}N{if(H(k)=="1n"){ak=eY(k)}N{2V}}2i=me(o[k]);if(H(2i)!="1n"){2V}X.1c(ak+":"+2i)}F"{"+X.2b(", ")+"}"},lE:G(a,b){F(B.J.2f(a,b)===0)},lD:G(eX,4n){if(eX.K!=4n.K){F 1m}F(B.J.2f(eX,4n)===0)},2o:G(){u eW=[];u m6=B.J.1R;R(u i=0;i<M.K;i++){m6(eW,M[i])}F eW},eR:G(2h){u m=B.J;u eU=m.2f;if(M.K==1){F G(a,b){F eU(a[2h],b[2h])}}u eV=m.1R(O,M);F G(a,b){u aj=0;R(u i=0;(aj===0)&&(i<eV.K);i++){u 2h=eV[i];aj=eU(a[2h],b[2h])}F aj}},lC:G(2h){u m5=B.J.eR.1w(D,M);F G(a,b){F m5(b,a)}},2z:G(m4){u m=B.J;F m.1O.1w(D,m.1R([m4,L],M,1))},67:G(m0,1g){if(1g.K===0){F O}u ai=1g[0];u m3=B.J.2f;R(u i=1;i<1g.K;i++){u o=1g[i];if(m3(o,ai)==m0){ai=o}}F ai},lB:G(){F B.J.67(1,M)},lA:G(){F B.J.67(-1,M)},bi:G(1g,lY,lZ,3B){if(H(3B)=="L"||3B===O){3B=1g.K}R(u i=(lZ||0);i<3B;i++){if(1g[i]===lY){F i}}F-1},eO:G(1g,lW,lX,3B){if(H(3B)=="L"||3B===O){3B=1g.K}u 4j=B.J.2f;R(u i=(lX||0);i<3B;i++){if(4j(1g[i],lW)===0){F i}}F-1},d4:G(1j,lV){u ah=[1j];u lU=B.J.1R;1M(ah.K){u X=lV(ah.2P());if(X){lU(ah,X)}}},3f:G(ag){u 2w=ag.1r;if(H(2w)=="L"){2w=""}N{2w=2w+"."}R(u 1b in ag){u o=ag[1b];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+1b}1e(e){}}}},dw:G(3s,68){if(H(B.S)!="L"&&M.K==1&&(H(3s)=="1n"||(H(3s.3T)!="L"&&3s.3T>0))){u kv=B.S.d5(3s);3s=kv[0];68=kv[1]}N{if(M.K==1){u o=3s;3s=[];68=[];R(u k in o){u v=o[k];if(H(v)!="G"){3s.1c(k);68.1c(v)}}}}u W=[];u lT=28.2a(3s.K,68.K);u eT=B.J.af;R(u i=0;i<lT;i++){v=68[i];if(H(v)!="L"&&v!==O){W.1c(eT(3s[i])+"="+eT(v))}}F W.2b("&")},lw:G(lS,lQ){u 7N=lS.23(/\\+/g,"%20").2R("&");u o={};u 5d;if(H(lR)!="L"){5d=lR}N{5d=vt}if(lQ){R(u i=0;i<7N.K;i++){u 2n=7N[i].2R("=");u 1b=5d(2n[0]);u 4n=o[1b];if(!(4n 2C 7o)){4n=[];o[1b]=4n}4n.1c(5d(2n[1]))}}N{R(i=0;i<7N.K;i++){2n=7N[i].2R("=");o[5d(2n[0])]=5d(2n[1])}}F o}});B.J.4a=G(){D.4m=[]};B.J.4a.1U={5M:G(1b,eS,3y,lP){if(lP){D.4m.e9([1b,eS,3y])}N{D.4m.1c([1b,eS,3y])}},3C:G(){R(u i=0;i<D.4m.K;i++){u 2n=D.4m[i];if(2n[1].1w(D,M)){F 2n[2].1w(D,M)}}14 B.J.4d},vs:G(1b){R(u i=0;i<D.4m.K;i++){u 2n=D.4m[i];if(2n[0]==1b){D.4m.4y(i,1);F 1h}}F 1m}};B.J.1z=["4f","4L","1R","2l","8Z","lO","lN","lM","5a","4i","24","lL","66","lo","ln","lK","lJ","lI","7e","3A","eN","lH","2r","lG","47","1O","lF","4d","4a","5u","2f","7M","U","lE","lD","2o","eR","lC","2z","lm","67","lp","eI","lB","lA","d4","ll","af","dw","lz","ly","lx","lw","eO","bi","bg","lv"];B.J.1W=["3f","ae","ad","ab","eM","eL","eK","ac","eJ"];B.J.2Y=G(lu,eP){if(H(B.eQ)=="L"){B.eQ=(B.3d||(H(1x)=="L"&&H(1q)=="L"))}if(!B.eQ){F}u 1p=eP.2k[":1p"];R(u i=0;i<1p.K;i++){lu[1p[i]]=eP[1p[i]]}};B.J.2d=G(){u m=D;m.vr=m.24;m.vq=m.eO;if(H(ls)!="L"){m.af=G(lr){F ls(lr).23(/\\\'/g,"%27")}}N{m.af=G(lq){F vp(lq).23(/\\+/g,"%2B").23(/\\"/g,"%22").W.23(/\\\'/g,"%27")}}m.5a=G(1b){D.43=1b;D.1b=1b};m.5a.1U=Y 2x();m.2l(m.5a.1U,{U:G(){if(D.43&&D.43!=D.1b){F D.1b+"("+m.U(D.43)+")"}N{F D.1b+"()"}},1l:m.24("U")});m.4d=Y m.5a("B.J.4d");m.lp=m.2z(m.67,1);m.eI=m.2z(m.67,-1);m.lo=m.66("G");m.ln=m.66("L");m.lm=m.2z(m.2l,O);m.ll=m.2z(m.2r,O);m.ae=Y m.4a();m.5u("vo",m.eN,m.eM);m.5u("ej",m.3A,m.eL);m.ad=Y m.4a();m.7M("ej",m.3A,m.eK);m.7M("1n",m.66("1n"),m.ac);m.7M("vn",m.66("2y","5L"),m.eJ);m.ab=Y m.4a();u 1p=m.2o(m.1z,m.1W);m.2k={":3e":m.2o(m.1W),":1p":1p};m.3f(D)};B.J.2d();if(!B.3d){2f=B.J.2f}B.J.2Y(D,B.J);if(H(1q)!="L"){1q.2X("B.15");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.15 3F on B.J!"}if(H(B.15)=="L"){B.15={}}B.15.1r="B.15";B.15.1Y="1.3.1";B.J.2l(B.15,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},9W:G(1b,lk,lj,lh){B.15.9Y.5M(1b,lk,lj,lh)},1Q:G(3R,lg){u I=B.15;if(M.K==2){F I.9Z(G(a){F a!=lg},3R)}if(H(3R.1a)=="G"){F 3R}N{if(H(3R.1Q)=="G"){F 3R.1Q()}}1f{F I.9Y.3C(3R)}1e(e){u m=B.J;if(e==m.4d){e=Y 3p(H(3R)+": "+m.U(3R)+" is 2E vm")}14 e}},eu:G(n){if(!n){n=0}u m=B.J;F{U:G(){F"eu("+n+")"},1l:m.24("U"),1a:m.4f(n)}},et:G(p){u I=B.15;u m=B.J;u 1g=[];u lf=I.1Q(p);F{U:G(){F"et(...)"},1l:m.24("U"),1a:G(){1f{u W=lf.1a();1g.1c(W);F W}1e(e){if(e!=I.25){14 e}if(1g.K===0){D.1a=G(){14 I.25}}N{u i=-1;D.1a=G(){i=(i+1)%1g.K;F 1g[i]}}F D.1a()}}}},7b:G(Q,n){u m=B.J;if(H(n)=="L"){F{U:G(){F"7b("+m.U(Q)+")"},1l:m.24("U"),1a:G(){F Q}}}F{U:G(){F"7b("+m.U(Q)+", "+n+")"},1l:m.24("U"),1a:G(){if(n<=0){14 B.15.25}n-=1;F Q}}},1a:G(ld){F ld.1a()},es:G(p,q){u m=B.J;u 1a=B.15.1a;u lc=m.2r(1Q,M);F{U:G(){F"es(...)"},1l:m.24("U"),1a:G(){F m.2r(1a,lc)}}},a1:G(3b,1V){u m=B.J;1V=B.15.1Q(1V);if(3b===O){3b=m.4i.7L}F{U:G(){F"a1(...)"},1l:m.24("U"),1a:G(){1M(1h){u W=1V.1a();if(3b(W)){F W}}F L}}},a0:G(3b,1V){u m=B.J;1V=B.15.1Q(1V);if(3b===O){3b=m.4i.7L}F{U:G(){F"a0(...)"},1l:m.24("U"),1a:G(){1M(1h){u W=1V.1a();if(!3b(W)){F W}}F L}}},er:G(1V){u I=B.15;u m=B.J;1V=I.1Q(1V);u 5c=0;u 2J=0;u 3a=1;u i=-1;if(M.K==2){2J=M[1]}N{if(M.K==3){5c=M[1];2J=M[2]}N{5c=M[1];2J=M[2];3a=M[3]}}F{U:G(){F"er("+["...",5c,2J,3a].2b(", ")+")"},1l:m.24("U"),1a:G(){u W;1M(i<5c){W=1V.1a();i++}if(5c>=2J){14 I.25}5c+=3a;F W}}},4c:G(aa,p,q){u m=B.J;u I=B.15;u lb=m.2r(I.1Q,m.1R(O,M,1));u 2r=m.2r;u 1a=I.1a;F{U:G(){F"4c(...)"},1l:m.24("U"),1a:G(){F aa.1w(D,2r(1a,lb))}}},ep:G(aa,1V,I){1V=B.15.1Q(1V);u m=B.J;F{U:G(){F"ep(...)"},1l:m.24("U"),1a:G(){F aa.1w(I,1V.1a())}}},55:G(p,q){u I=B.15;u m=B.J;if(M.K==1){F I.1Q(M[0])}u 64=m.2r(I.1Q,M);F{U:G(){F"55(...)"},1l:m.24("U"),1a:G(){1M(64.K>1){1f{F 64[0].1a()}1e(e){if(e!=I.25){14 e}64.2P()}}if(64.K==1){u a9=64.2P();D.1a=m.1O("1a",a9);F D.1a()}14 I.25}}},9Z:G(3b,1V){u I=B.15;1V=I.1Q(1V);F{U:G(){F"9Z(...)"},1l:B.J.24("U"),1a:G(){u W=1V.1a();if(!3b(W)){D.1a=G(){14 I.25};D.1a()}F W}}},eo:G(3b,1V){1V=B.15.1Q(1V);u m=B.J;u 1O=m.1O;F{"U":G(){F"eo(...)"},"1l":m.24("U"),"1a":G(){1M(1h){u W=1V.1a();if(!3b(W)){2K}}D.1a=1O("1a",1V);F W}}},a7:G(63,2u,la){2u.62[63]=-1;u m=B.J;u l9=m.eI;F{U:G(){F"en("+63+", ...)"},1l:m.24("U"),1a:G(){u W;u i=2u.62[63];if(i==2u.29){W=la.1a();2u.a8.1c(W);2u.29+=1;2u.62[63]+=1}N{W=2u.a8[i-2u.2a];2u.62[63]+=1;if(i==2u.2a&&l9(2u.62)!=2u.2a){2u.2a+=1;2u.a8.2P()}}F W}}},en:G(a6,n){u W=[];u 2u={"62":[],"a8":[],"29":-1,"2a":-1};if(M.K==1){n=2}u I=B.15;a6=I.1Q(a6);u a7=I.a7;R(u i=0;i<n;i++){W.1c(a7(i,2u,a6))}F W},2G:G(4l){u m=B.J;if(H(4l.9T)=="G"){F 4l.9T()}N{if(m.3A(4l)){F m.2o(4l)}}u I=B.15;4l=I.1Q(4l);u W=[];1f{1M(1h){W.1c(4l.1a())}}1e(e){if(e!=I.25){14 e}F W}F L},7H:G(fn,7K,l8){u i=0;u x=l8;u I=B.15;7K=I.1Q(7K);if(M.K<3){1f{x=7K.1a()}1e(e){if(e==I.25){e=Y 3p("7H() of vl vk vj no vi 3m")}14 e}i++}1f{1M(1h){x=fn(x,7K.1a())}}1e(e){if(e!=I.25){14 e}}F x},7I:G(){u 4k=0;u 2J=0;u 3a=1;if(M.K==1){2J=M[0]}N{if(M.K==2){4k=M[0];2J=M[1]}N{if(M.K==3){4k=M[0];2J=M[1];3a=M[2]}N{14 Y 3p("7I() vh 1, 2, or 3 M!")}}}if(3a===0){14 Y 3p("7I() 3a 5p 2E be 0")}F{1a:G(){if((3a>0&&4k>=2J)||(3a<0&&4k<=2J)){14 B.15.25}u W=4k;4k+=3a;F W},U:G(){F"7I("+[4k,2J,3a].2b(", ")+")"},1l:B.J.24("U")}},l0:G(a5,l7){u x=l7||0;u I=B.15;a5=I.1Q(a5);1f{1M(1h){x+=a5.1a()}}1e(e){if(e!=I.25){14 e}}F x},em:G(a4){u I=B.15;a4=I.1Q(a4);1f{1M(1h){a4.1a()}}1e(e){if(e!=I.25){14 e}}},9a:G(7J,1A,I){u m=B.J;if(M.K>2){1A=m.1O(1A,I)}if(m.3A(7J)){1f{R(u i=0;i<7J.K;i++){1A(7J[i])}}1e(e){if(e!=B.15.25){14 e}}}N{I=B.15;I.em(I.4c(1A,7J))}},kZ:G(l6,1A){u I=B.15;1f{I.a0(1A,l6).1a();F 1m}1e(e){if(e!=I.25){14 e}F 1h}},kY:G(l5,4j){u W=B.15.2G(l5);if(M.K==1){4j=B.J.2f}W.iz(4j);F W},kX:G(l4){u W=B.15.2G(l4);W.vg();F W},kW:G(l3,1A){u I=B.15;1f{I.a1(1A,l3).1a();F 1h}1e(e){if(e!=I.25){14 e}F 1m}},kV:G(1g,5b){if(B.J.3A(5b)){R(u i=0;i<5b.K;i++){1g.1c(5b[i])}}N{u I=B.15;5b=I.1Q(5b);1f{1M(1h){1g.1c(5b.1a())}}1e(e){if(e!=I.25){14 e}}}F 1g},ek:G(a3,eH){u m=B.J;u I=B.15;if(M.K<2){eH=m.4i.eE}a3=I.1Q(a3);u pk=L;u k=L;u v;G eF(){v=a3.1a();k=eH(v)}G l2(){u 7j=v;v=L;F 7j}u eG=1h;F{U:G(){F"ek(...)"},1a:G(){1M(k==pk){eF();if(eG){eG=1m;2K}}pk=k;F[k,{1a:G(){if(v==L){eF()}if(k!=pk){14 I.25}F l2()}}]}}},kU:G(a2,eD){u m=B.J;u I=B.15;if(M.K<2){eD=m.4i.eE}a2=I.1Q(a2);u ey=[];u eA=1h;u ez;1M(1h){1f{u eB=a2.1a();u 2h=eD(eB)}1e(e){if(e==I.25){2K}14 e}if(eA||2h!=ez){u eC=[];ey.1c([2h,eC])}eC.1c(eB);eA=1m;ez=2h}F ey},9X:G(ex){u i=0;F{U:G(){F"9X(...)"},1l:B.J.24("U"),1a:G(){if(i>=ex.K){14 B.15.25}F ex[i++]}}},eh:G(ew){F(ew&&H(ew.ei)=="G")},9V:G(l1){F{U:G(){F"9V(...)"},1l:B.J.24("U"),1a:G(){u W=l1.ei();if(W===O||W===L){14 B.15.25}F W}}}});B.15.1W=["9Y","9X","eh","9V",];B.15.1z=["25","9W","1Q","eu","et","7b","1a","es","a1","a0","er","4c","ep","55","9Z","eo","en","2G","7H","7I","l0","em","9a","kZ","kY","kX","kW","kV","ek","kU"];B.15.2d=G(){u m=B.J;D.25=Y m.5a("25");D.9Y=Y m.4a();D.9W("ej",m.3A,D.9X);D.9W("ei",D.eh,D.9V);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.15.2d();if(!B.3d){7H=B.15.7H}B.J.2Y(D,B.15);if(H(1q)!="L"){1q.2X("B.1H");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1H 3F on B.J!"}if(H(B.1H)=="L"){B.1H={}}B.1H.1r="B.1H";B.1H.1Y="1.3.1";B.1H.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1H.1l=G(){F D.1K()};B.1H.1z=["5C","49","7A","kR","2L","5Z","kG","ch","kE","kC"];B.1H.1W=["ef","e8","e7"];B.1H.49=G(1P,kT,3z){D.1P=1P;D.3N=kT;D.3z=3z;D.vf=Y 3Q()};B.1H.49.1U={U:G(){u m=B.J;F"49("+m.2r(m.U,[D.1P,D.3N,D.3z]).2b(", ")+")"},1l:B.J.24("U")};B.J.2l(B.1H,{ef:G(7F){u I=B.1H;if(H(7F)=="1n"){7F=I.5C[7F]}F G(1t){u 7G=1t.3N;if(H(7G)=="1n"){7G=I.5C[7G]}F 7G>=7F}},e8:G(){u kS=B.1H.49;R(u i=0;i<M.K;i++){if(!(M[i]2C kS)){F 1m}}F 1h},e7:G(a,b){F B.J.2f([a.3N,a.3z],[b.3N,b.3z])},kR:G(1t){cq("1P: "+1t.1P+"\\ve: "+1t.3N+"\\vd: "+1t.3z.2b(" "))}});B.1H.7A=G(7E){D.4f=0;if(H(7E)=="L"||7E===O){7E=-1}D.ec=7E;D.4h=[];D.7C={};D.e5=1m};B.1H.7A.1U={vc:G(){D.4h.4y(0,D.4h.K)},kK:G(1t){if(H(2O)!="L"&&2O.eg&&2O.eg.5Z){2O.eg.5Z(1t)}N{if(H(7h)!="L"&&7h.kQ){7h.kQ(1t)}N{if(H(5X)=="G"){5X(1t)}}}},kL:G(1t){R(u k in D.7C){u 2n=D.7C[k];if(2n.kO!=k||(2n[0]&&!2n[0](1t))){2V}2n[1](1t)}},hE:G(ee,7D,kP){if(H(7D)=="1n"){7D=B.1H.ef(7D)}u ed=[7D,kP];ed.kO=ee;D.7C[ee]=ed},c9:G(kN){gi D.7C[kN]},kH:G(kM,vb){u 1t=Y B.1H.49(D.4f,kM,B.J.1R(O,M,1));D.4h.1c(1t);D.kL(1t);if(D.e5){D.kK(1t.3N+": "+1t.3z.2b(" "))}D.4f+=1;1M(D.ec>=0&&D.4h.K>D.ec){D.4h.2P()}},c8:G(9U){u ea=0;if(!(H(9U)=="L"||9U===O)){ea=28.29(0,D.4h.K-9U)}F D.4h.9T(ea)},kJ:G(7B){if(H(7B)=="L"||7B===O){7B=30}u 9S=D.c8(7B);if(9S.K){u 1g=2r(G(m){F"\\n ["+m.1P+"] "+m.3N+": "+m.3z.2b(" ")},9S);1g.e9("va "+9S.K+" v9:");F 1g.2b("")}F""},v8:G(kI){if(H(B.1I)=="L"){cq(D.kJ())}N{B.1I.bY(kI||1m)}}};B.1H.2d=G(){D.5C={8M:40,8L:50,8K:30,8J:20,8I:10};u m=B.J;m.5u("49",D.e8,D.e7);u 61=m.2z;u e6=D.7A;u 60=e6.1U.kH;m.2l(D.7A.1U,{kF:61(60,"8I"),5Z:61(60,"8J"),dE:61(60,"8M"),kD:61(60,"8L"),kB:61(60,"8K")});u I=D;u 5Y=G(1b){F G(){I.2L[1b].1w(I.2L,M)}};D.5Z=5Y("5Z");D.kG=5Y("dE");D.ch=5Y("kF");D.kE=5Y("kD");D.kC=5Y("kB");D.2L=Y e6();D.2L.e5=1h;D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};if(H(5X)=="L"&&H(2v)!="L"&&2v.kA&&H(kz)!="L"){5X=G(){5X.3G=M;u ev=2v.kA("v7");ev.v6("5X",1m,1h);kz(ev)}}B.1H.2d();B.J.2Y(D,B.1H);if(H(1q)!="L"){1q.2X("B.1D")}if(H(B)=="L"){B={}}if(H(B.1D)=="L"){B.1D={}}B.1D.1r="B.1D";B.1D.1Y="1.3.1";B.1D.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1D.1l=G(){F D.1K()};B.1D.ks=G(1y){1y=1y+"";if(H(1y)!="1n"||1y.K===0){F O}u 7z=1y.2R("-");if(7z.K===0){F O}F Y 3Q(7z[0],7z[1]-1,7z[2])};B.1D.ky=/(\\d{4,})(?:-(\\d{1,2})(?:-(\\d{1,2})(?:[T ](\\d{1,2}):(\\d{1,2})(?::(\\d{1,2})(?:\\.(\\d+))?)?(?:(Z)|([+-])(\\d{1,2})(?::(\\d{1,2}))?)?)?)?)?/;B.1D.kr=G(1y){1y=1y+"";if(H(1y)!="1n"||1y.K===0){F O}u X=1y.3C(B.1D.ky);if(H(X)=="L"||X===O){F O}u 5W,7y,7x,9R,2a,9Q,7w;5W=3w(X[1],10);if(H(X[2])=="L"||X[2]===""){F Y 3Q(5W)}7y=3w(X[2],10)-1;7x=3w(X[3],10);if(H(X[4])=="L"||X[4]===""){F Y 3Q(5W,7y,7x)}9R=3w(X[4],10);2a=3w(X[5],10);9Q=(H(X[6])!="L"&&X[6]!=="")?3w(X[6],10):0;if(H(X[7])!="L"&&X[7]!==""){7w=28.ha(c5*4M("0."+X[7]))}N{7w=0}if((H(X[8])=="L"||X[8]==="")&&(H(X[9])=="L"||X[9]==="")){F Y 3Q(5W,7y,7x,9R,2a,9Q,7w)}u 58;if(H(X[9])!="L"&&X[9]!==""){58=3w(X[10],10)*v5;if(H(X[11])!="L"&&X[11]!==""){58+=3w(X[11],10)*kw}if(X[9]=="-"){58=-58}}N{58=0}F Y 3Q(3Q.v4(5W,7y,7x,9R,2a,9Q,7w)-58)};B.1D.dY=G(2g,kx){if(H(2g)=="L"||2g===O){F O}u hh=2g.v3();u mm=2g.v2();u ss=2g.v1();u 1g=[((kx&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)];F 1g.2b(":")};B.1D.kq=G(2g,7v){if(H(2g)=="L"||2g===O){F O}u ku=7v?"T":" ";u kt=7v?"Z":"";if(7v){2g=Y 3Q(2g.9P()+(2g.v0()*kw))}F B.1D.dX(2g)+ku+B.1D.dY(2g,7v)+kt};B.1D.dX=G(2g){if(H(2g)=="L"||2g===O){F O}u e4=B.1D.e3;F[2g.dZ(),e4(2g.e1()+1),e4(2g.e0())].2b("-")};B.1D.kp=G(d){d=d+"";if(H(d)!="1n"||d.K===0){F O}u a=d.2R("/");F Y 3Q(a[2],a[0]-1,a[1])};B.1D.e3=G(n){F(n>9)?n:"0"+n};B.1D.ko=G(d){if(H(d)=="L"||d===O){F O}u e2=B.1D.e3;F[e2(d.e1()+1),e2(d.e0()),d.dZ()].2b("/")};B.1D.kn=G(d){if(H(d)=="L"||d===O){F O}F[d.e1()+1,d.e0(),d.dZ()].2b("/")};B.1D.1z=["ks","kr","dY","kq","dX","kp","ko","kn"];B.1D.1W=[];B.1D.2k={":3e":B.1D.1z,":1p":B.1D.1z};B.1D.2d=G(){u 2w=D.1r+".";R(u k in D){u o=D[k];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+k}1e(e){}}}};B.1D.2d();if(H(B.J)!="L"){B.J.2Y(D,B.1D)}N{(G(km,dW){if((H(1x)=="L"&&H(1q)=="L")||(H(B.3d)=="5L"&&B.3d)){u 1p=dW.2k[":1p"];R(u i=0;i<1p.K;i++){km[1p[i]]=dW[1p[i]]}}})(D,B.1D)}if(H(1q)!="L"){1q.2X("B.1s")}if(H(B)=="L"){B={}}if(H(B.1s)=="L"){B.1s={}}B.1s.1r="B.1s";B.1s.1Y="1.3.1";B.1s.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1s.1l=G(){F D.1K()};B.1s.ke=G(kl,kk,kj,ki,kh,dV,kg,9N,kf){F G(1P){1P=4M(1P);if(H(1P)=="L"||1P===O||k8(1P)){F kl}u 9L=kk;u 9K=kj;if(1P<0){1P=-1P}N{9L=9L.23(/-/,"")}u me=M.2U;u 9M=B.1s.dJ(ki);if(kh){1P=1P*3k;9K=9M.9y+9K}1P=B.1s.dK(1P,dV);u 9O=1P.2R(/\\./);u 3r=9O[0];u 3P=(9O.K==1)?"":9O[1];u X="";1M(3r.K<kg){3r="0"+3r}if(9N){1M(3r.K>9N){u i=3r.K-9N;X=9M.9A+3r.2W(i,3r.K)+X;3r=3r.2W(0,i)}}X=3r+X;if(dV>0){1M(3P.K<kf){3P=3P+"0"}X=X+9M.9z+3P}F 9L+X+9K}};B.1s.k5=G(9J,9H,9G){if(H(9H)=="L"){9H=""}u 3q=9J.3C(/((?:[0#]+,)?[0#]+)(?:\\.([0#]+))?(%)?/);if(!3q){14 3p("uZ uY")}u 7u=9J.3H(0,3q.c6);u kd=9J.3H(3q.c6+3q[0].K);if(7u.uX(/-/)==-1){7u=7u+"-"}u 9I=3q[1];u 3P=(H(3q[2])=="1n"&&3q[2]!="")?3q[2]:"";u kc=(H(3q[3])=="1n"&&3q[3]!="");u dU=9I.2R(/,/);u 9F;if(H(9G)=="L"){9G="dG"}if(dU.K==1){9F=O}N{9F=dU[1].K}u ka=9I.K-9I.23(/0/g,"").K;u k9=3P.K-3P.23(/0/g,"").K;u kb=3P.K;u W=B.1s.ke(9H,7u,kd,9G,kc,kb,ka,9F,k9);u m=B.J;if(m){u fn=M.2U;u 3G=m.2o(M);W.U=G(){F[I.1r,"(",2r(m.U,3G).2b(", "),")"].2b("")}}F W};B.1s.dJ=G(4g){if(H(4g)=="L"||4g===O){4g="dG"}if(H(4g)=="1n"){u W=B.1s.5V[4g];if(H(W)=="1n"){W=M.2U(W);B.1s.5V[4g]=W}F W}N{F 4g}};B.1s.k4=G(dT,9E){if(9E){u X=dT/9E;if(!k8(X)){F B.1s.9B(dT/9E)}}F"0"};B.1s.9B=G(dS){u dR=(dS<0?"-":"");u s=28.8B(28.uW(dS)*3k).1l();if(s=="0"){F s}if(s.K<3){1M(s.3Z(s.K-1)=="0"){s=s.2W(0,s.K-1)}F dR+"0."+s}u 5E=dR+s.2W(0,s.K-2);u 7t=s.2W(s.K-2,s.K);if(7t=="uV"){F 5E}N{if(7t.3Z(1)=="0"){F 5E+"."+7t.3Z(0)}N{F 5E+"."+7t}}};B.1s.dI=G(1y,dQ){1y=1y+"";if(H(1y)!="1n"){F O}if(!dQ){F 1y.23(/^\\s+/,"")}N{F 1y.23(Y 8V("^["+dQ+"]+"),"")}};B.1s.dH=G(1y,dP){1y=1y+"";if(H(1y)!="1n"){F O}if(!dP){F 1y.23(/\\s+$/,"")}N{F 1y.23(Y 8V("["+dP+"]+$"),"")}};B.1s.k2=G(1y,dO){u I=B.1s;F I.dH(I.dI(1y,dO),dO)};B.1s.dL=G(9D,9C){9D=28.8B(9D*28.dN(10,9C));u X=(9D*28.dN(10,-9C)).6I(9C);if(X.3Z(0)=="."){X="0"+X}F X};B.1s.dK=G(k7,dM){F B.1s.dL(k7+0.5*28.dN(10,-dM),dM)};B.1s.k3=G(k6){F B.1s.9B(3k*k6)+"%"};B.1s.1z=["dL","dK","k5","dJ","k4","9B","k3","dI","dH","k2"];B.1s.5V={k1:{9A:",",9z:".",9y:"%"},uU:{9A:".",9z:",",9y:"%"},uT:{9A:" ",9z:",",9y:"%"},"dG":"k1"};B.1s.1W=[];B.1s.2k={":1p":B.1s.1z,":3e":B.1s.1z};B.1s.2d=G(){u 2w=D.1r+".";u k,v,o;R(k in D.5V){o=D.5V[k];if(H(o)=="3n"){o.U=G(){F D.1r};o.1r=2w+"5V."+k}}R(k in D){o=D[k];if(H(o)=="G"&&H(o.1r)=="L"){1f{o.1r=2w+k}1e(e){}}}};B.1s.2d();if(H(B.J)!="L"){B.J.2Y(D,B.1s)}N{(G(k0,dF){if((H(1x)=="L"&&H(1q)=="L")||(H(B.3d)=="5L"&&B.3d)){u 1p=dF.2k[":1p"];R(u i=0;i<1p.K;i++){k0[1p[i]]=dF[1p[i]]}}})(D,B.1s)}if(H(1q)!="L"){1q.2X("B.1k");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1k 3F on B.J!"}if(H(B.1k)=="L"){B.1k={}}B.1k.1r="B.1k";B.1k.1Y="1.3.1";B.1k.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1k.1l=G(){F D.1K()};B.1k.2t=G(jZ){D.55=[];D.id=D.7n();D.2H=-1;D.54=0;D.53=[O,O];D.7m=jZ;D.7l=1m;D.7r=1m};B.1k.2t.1U={U:G(){u 7s;if(D.2H==-1){7s="uS"}N{if(D.2H===0){7s="uR"}N{7s="dE"}}F"2t("+D.id+", "+7s+")"},1l:B.J.24("U"),7n:B.J.4f(),jY:G(){u I=B.1k;if(D.2H==-1){if(D.7m){D.7m(D)}N{D.7l=1h}if(D.2H==-1){D.52(Y I.di(D))}}N{if((D.2H===0)&&(D.53[0]2C I.2t)){D.53[0].jY()}}},jQ:G(){D.54++},jX:G(){D.54--;if((D.54===0)&&(D.2H>=0)){D.9u()}},jR:G(X){D.9x(X);D.jX()},9x:G(X){D.2H=((X 2C 2x)?1:0);D.53[D.2H]=X;D.9u()},dD:G(){if(D.2H!=-1){if(!D.7l){14 Y B.1k.dj(D)}D.7l=1m;F}},3o:G(X){D.dD();if(X 2C B.1k.2t){14 Y 2x("2t jW 9v aB be 7r if jV jU jT jS of a 3o")}D.9x(X)},52:G(X){D.dD();u I=B.1k;if(X 2C I.2t){14 Y 2x("2t jW 9v aB be 7r if jV jU jT jS of a 3o")}if(!(X 2C 2x)){X=Y I.9p(X)}D.9x(X)},jP:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(fn,fn)},5Q:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(fn,O)},jA:G(fn){if(M.K>1){fn=B.J.2z.1w(O,M)}F D.9w(O,fn)},9w:G(cb,eb){if(D.7r){14 Y 2x("uQ uP 9v 2E be re-uO")}D.55.1c([cb,eb]);if(D.2H>=0){D.9u()}F D},9u:G(){u dC=D.55;u 56=D.2H;u X=D.53[56];u I=D;u cb=O;1M(dC.K>0&&D.54===0){u 2n=dC.2P();u f=2n[56];if(f===O){2V}1f{X=f(X);56=((X 2C 2x)?1:0);if(X 2C B.1k.2t){cb=G(X){I.jR(X)};D.jQ()}}1e(3O){56=1;if(!(3O 2C 2x)){3O=Y B.1k.9p(3O)}X=3O}}D.2H=56;D.53[56]=X;if(cb&&D.54){X.jP(cb);X.7r=1h}}};B.J.2l(B.1k,{dk:G(){F dB("("+M[0].jN+")")},dp:G(uN){u d=Y B.1k.2t();d.3o.1w(d,M);F d},9q:G(uM){u d=Y B.1k.2t();d.52.1w(d,M);F d},do:G(){u I=M.2U;if(!I.7q){u dy=[G(){F Y 7q()},G(){F Y dA("jO.dz")},G(){F Y dA("uL.dz")},G(){F Y dA("jO.dz.4.0")},G(){14 Y B.1k.dh("uK uJ 2E uI 7q")}];R(u i=0;i<dy.K;i++){u 1A=dy[i];1f{I.7q=1A;F 1A()}1e(e){}}}F I.7q()},dx:G(){},jK:G(d){if(D.uH==4){1f{D.5T=O}1e(e){1f{D.5T=B.1k.dx}1e(e){}}u 5U=O;1f{5U=D.jm;if(!5U&&B.J.7e(D.jN)){5U=jM}}1e(e){}if(5U==hQ||5U==jM){d.3o(D)}N{u 3O=Y B.1k.dg(D,"uG uF");if(3O.2y){d.52(3O)}N{d.52(3O)}}}},jL:G(2s){1f{2s.5T=O}1e(e){1f{2s.5T=B.1k.dx}1e(e){}}2s.uE()},dl:G(2s,7p){if(H(7p)=="L"||7p===O){7p=""}u m=B.J;u I=B.1k;u d=Y I.2t(m.2z(I.jL,2s));1f{2s.5T=m.1O(I.jK,2s,d);2s.uD(7p)}1e(e){1f{2s.5T=O}1e(uC){}d.52(e)}F d},dn:G(5F){u I=B.1k;u 2s=I.do();if(M.K>1){u m=B.J;u qs=m.dw.1w(O,m.1R(O,M,1));if(qs){5F+="?"+qs}}2s.cp("uB",5F,1h);F I.dl(2s)},jv:G(5F){u I=B.1k;u d=I.dn.1w(I,M);d=d.5Q(I.dk);F d},dm:G(jJ,dv){u d=Y B.1k.2t();u m=B.J;if(H(dv)!="L"){d.5Q(G(){F dv})}u jI=uA(m.1O("3o",d),28.8B(jJ*c5));d.7m=G(){1f{uz(jI)}1e(e){}};F d},ju:G(jH,1A){u m=B.J;u jG=m.2z.1w(m,m.1R(O,M,1));F B.1k.dm(jH).5Q(G(X){F jG()})}});B.1k.5O=G(){D.5S=[];D.4e=1m;D.id=D.7n()};B.1k.5O.1U={bX:B.1k.5O,uy:G(){d=Y B.1k.2t();if(D.4e){D.5S.1c(d)}N{D.4e=1h;d.3o(D)}F d},jF:G(){if(!D.4e){14 3p("ux to jF an jE 5O")}D.4e=1m;if(D.5S.K>0){D.4e=1h;D.5S.2P().3o(D)}},7n:B.J.4f(),U:G(){u 9t;if(D.4e){9t="4e, "+D.5S.K+" 5S"}N{9t="jE"}F"5O("+D.id+", "+9t+")"},1l:B.J.24("U")};B.1k.7i=G(2G,du,jC,jB,jD){D.2G=2G;D.9r=Y 7o(D.2G.K);D.55=[];D.id=D.7n();D.2H=-1;D.54=0;D.53=[O,O];D.7m=jD;D.7l=1m;if(D.2G.K===0&&!du){D.3o(D.9r)}D.dr=0;D.jz=du;D.jy=jC;D.jx=jB;u 9s=0;B.J.2r(B.J.1O(G(d){d.5Q(B.J.1O(D.dt,D),9s,1h);d.jA(B.J.1O(D.dt,D),9s,1m);9s+=1},D),D.2G)};B.J.2l(B.1k.7i.1U,B.1k.2t.1U);B.J.2l(B.1k.7i.1U,{dt:G(ds,7k,5R){D.9r[ds]=[7k,5R];D.dr+=1;if(D.2H!==0){if(7k&&D.jz){D.3o([ds,5R])}N{if(!7k&&D.jy){D.52(5R)}N{if(D.dr==D.2G.K){D.3o(D.9r)}}}}if(!7k&&D.jx){5R=O}F 5R}});B.1k.jt=G(jw){u d=Y B.1k.7i(jw,1m,1h,1m);d.5Q(G(dq){u 7j=[];R(u i=0;i<dq.K;i++){7j.1c(dq[i][1])}F 7j});F d};B.1k.jr=G(1A){u I=B.1k;u 5P;1f{u r=1A.1w(O,B.J.1R([],M,1));if(r 2C I.2t){5P=r}N{if(r 2C 2x){5P=I.9q(r)}N{5P=I.dp(r)}}}1e(e){5P=I.9q(e)}F 5P};B.1k.1z=["dj","di","dh","9p","dg","2t","dp","9q","do","dn","jv","dm","ju","dl","5O","7i","jt","jr"];B.1k.1W=["dk"];B.1k.2d=G(){u m=B.J;u ne=m.2z(m.jq,D);ne("dj",G(jp){D.jo=jp});ne("di",G(jn){D.jo=jn});ne("dh",G(1t){D.43=1t});ne("9p",G(1t){D.43=1t});ne("dg",G(2s,1t){D.2s=2s;D.43=1t;1f{D.2y=2s.jm}1e(e){}});D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.1k.2d();B.J.2Y(D,B.1k);if(H(1q)!="L"){1q.2X("B.S");1q.2M("B.15")}if(H(1x)!="L"){1x.26("B.15",[])}1f{if(H(B.15)=="L"){14""}}1e(e){14"B.S 3F on B.15!"}if(H(B.S)=="L"){B.S={}}B.S.1r="B.S";B.S.1Y="1.3.1";B.S.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.S.1l=G(){F D.1K()};B.S.1z=["d5","cr","b9","95","94","j3","9k","cX","cw","iT","iV","4X","9j","iQ","hS","cs","ia","i9","i8","i7","i6","i5","i4","hV","i3","i2","i1","cu","hW","ct","i0","hZ","hY","hX","P","io","il","ik","ij","cm","ih","ii","ig","ie","ic","cv","8d","A","6m","ib","1E","$","4q","aH","cO","cN","iM","5G","iK","9d","9e","iH","iD","9c","iB","cG","97","hU","hT","iw","jh","jb","j6","j5","jk","jl"];B.S.1W=["9b"];B.S.5N=G(w,h){D.w=w;D.h=h};B.S.5N.1U.U=G(){u U=B.J.U;F"{w: "+U(D.w)+", h: "+U(D.h)+"}"};B.S.5t=G(x,y){D.x=x;D.y=y};B.S.5t.1U.U=G(){u U=B.J.U;F"{x: "+U(D.x)+", y: "+U(D.y)+"}"};B.S.5t.1U.1l=G(){F D.U()};B.J.2l(B.S,{jl:G(Q,o){Q=B.S.1E(Q);B.S.4X(Q,{"1T":{"9o":o,"-hL-9o":o,"-uw-9o":o,"47":" uv(9o="+(o*3k)+")"}})},jk:G(){u d=Y B.S.5N();u w=B.S.3X;u b=B.S.1Z.5s;if(w.jj){d.w=w.jj;d.h=w.uu}N{if(b.dd.9n){d.w=b.dd.9n;d.h=b.dd.ji}N{if(b&&b.9n){d.w=b.9n;d.h=b.ji}}}F d},jh:G(Q){u I=B.S;if(H(Q.w)=="2y"||H(Q.h)=="2y"){F Y I.5N(Q.w||0,Q.h||0)}Q=I.1E(Q);if(!Q){F L}if(I.4q(Q,"3u")!="98"){F Y I.5N(Q.jg||0,Q.ci||0)}u s=Q.1T;u je=s.dc;u jf=s.6P;s.dc="fR";s.6P="j8";s.3u="";u jd=Q.jg;u jc=Q.ci;s.3u="98";s.6P=jf;s.dc=je;F Y I.5N(jd,jc)},jb:G(Q,4Z){u I=B.S;Q=I.1E(Q);if(!Q){F L}u c=Y I.5t(0,0);if(Q.x&&Q.y){c.x+=Q.x||0;c.y+=Q.y||0;F c}N{if(Q.3t===O||I.4q(Q,"3u")=="98"){F L}}u 51=O;u 2j=O;u d=B.S.1Z;u de=d.7Z;u b=d.5s;if(Q.ja){51=Q.ja();c.x+=51.2I+(de.6y||b.6y)-(de.8q||b.8q);c.y+=51.3D+(de.4C||b.4C)-(de.8p||b.8p)}N{if(d.j9){51=d.j9(Q);c.x+=51.x;c.y+=51.y}N{if(Q.8g){c.x+=Q.db;c.y+=Q.da;2j=Q.8g;if(2j!=Q){1M(2j){c.x+=2j.db;c.y+=2j.da;2j=2j.8g}}u ua=ut.us.8G();if((H(7h)!="L"&&4M(7h.ur())<9)||(ua.2A("uq")!=-1&&I.4q(Q,"6P")=="j8")){c.x-=b.db;c.y-=b.da}}}}if(H(4Z)!="L"){4Z=M.2U(4Z);if(4Z){c.x-=(4Z.x||0);c.y-=(4Z.y||0)}}if(Q.3t){2j=Q.3t}N{2j=O}1M(2j&&2j.j7!="uo"&&2j.j7!="co"){c.x-=2j.6y;c.y-=2j.4C;if(2j.3t){2j=2j.3t}N{2j=O}}F c},j6:G(Q,d9,7g){Q=B.S.1E(Q);if(H(7g)=="L"){7g="px"}B.S.4X(Q,{"1T":{"5A":d9.w+7g,"3V":d9.h+7g}})},j5:G(Q,d8,7f){Q=B.S.1E(Q);if(H(7f)=="L"){7f="px"}B.S.4X(Q,{"1T":{"2I":d8.x+7f,"3D":d8.y+7f}})},cr:G(){F B.S.3X},b9:G(){F B.S.1Z},95:G(2m,1A){u I=B.S;u d6=I.1Z;u d7=I.un;u W;1f{I.3X=2m;I.1Z=2m.2v;W=1A()}1e(e){I.3X=d7;I.1Z=d6;14 e}I.3X=d7;I.1Z=d6;F W},d5:G(Q){u 7d=[];u 7c=[];u m=B.J;u I=B.S;if(H(Q)=="L"||Q===O){Q=I.1Z}N{Q=I.1E(Q)}m.d4(Q,G(Q){u 1b=Q.1b;if(m.7e(1b)){u 4Y=Q.cD;if(4Y=="cv"&&(Q.1J=="um"||Q.1J=="uk")&&!Q.ip){F O}if(4Y=="ct"){if(Q.j4>=0){u 9m=Q.1S[Q.j4];7d.1c(1b);7c.1c((9m.3m)?9m.3m:9m.7X);F O}7d.1c(1b);7c.1c("");F O}if(4Y=="cu"||4Y=="P"||4Y=="8d"||4Y=="6m"){F Q.5h}7d.1c(1b);7c.1c(Q.3m||"");F O}F Q.5h});F[7d,7c]},94:G(1N,1A){u I=B.S;u d3=I.1Z;u W;1f{I.1Z=1N;W=1A()}1e(e){I.1Z=d3;14 e}I.1Z=d3;F W},j3:G(1b,j2,3y,j1){B.S.9b.5M(1b,j2,3y,j1)},9k:G(1j,7a){u im=B.15;u I=B.S;u 1Q=im.1Q;u iY=im.7b;u 4c=im.4c;u iX=I.9b;u iZ=I.9k;u iW=B.J.4d;1M(1h){if(H(1j)=="L"||1j===O){F O}if(H(1j.3T)!="L"&&1j.3T>0){F 1j}if(H(1j)=="2y"||H(1j)=="5L"){1j=1j.1l()}if(H(1j)=="1n"){F I.1Z.4S(1j)}if(H(1j.j0)=="G"){1j=1j.j0(7a);2V}if(H(1j)=="G"){1j=1j(7a);2V}u 9l=O;1f{9l=1Q(1j)}1e(e){}if(9l){F 4c(iZ,9l,iY(7a))}1f{1j=iX.3C(1j,7a);2V}1e(e){if(e!=iW){14 e}}F I.1Z.4S(1j.1l())}F L},iV:G(1j,79,iU){u o={};o[79]=iU;1f{F B.S.4X(1j,o)}1e(e){}F O},iT:G(1j,79){u I=B.S;u d2=I.4U.99[79];1j=I.1E(1j);1f{if(d2){F 1j[d2]}F 1j.fm(79)}1e(e){}F O},4X:G(1j,5K){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j)}if(5K){u d0=B.J.8Z;if(I.4U.6X){R(u k in 5K){u v=5K[k];if(H(v)=="3n"&&H(Q[k])=="3n"){d0(Q[k],v)}N{if(k.2W(0,2)=="on"){if(H(v)=="1n"){v=Y cZ(v)}Q[k]=v}N{Q.4p(k,v)}}}}N{u iS=I.4U.99;R(k in 5K){v=5K[k];u d1=iS[k];if(k=="1T"&&H(v)=="1n"){Q.1T.3x=v}N{if(H(d1)=="1n"){Q[d1]=v}N{if(H(Q[k])=="3n"&&H(v)=="3n"){d0(Q[k],v)}N{if(k.2W(0,2)=="on"){if(H(v)=="1n"){v=Y cZ(v)}Q[k]=v}N{Q.4p(k,v)}}}}}}}F Q},9j:G(1j){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j)}u 78=[I.9k(B.J.1R(O,M,1),Q)];u iR=B.J.2o;1M(78.K){u n=78.2P();if(H(n)=="L"||n===O){}N{if(H(n.3T)=="2y"){Q.2c(n)}N{78=iR(n,78)}}}F Q},iQ:G(1j){u Q=1j;u I=B.S;if(H(1j)=="1n"){Q=I.1E(1j);M[0]=Q}u cY;1M((cY=Q.6n)){Q.6S(cY)}if(M.K<2){F Q}N{F I.9j.1w(D,M)}},cX:G(1b,4b){u Q;u I=B.S;u m=B.J;if(H(4b)=="1n"||H(4b)=="2y"){u 3G=m.1R([1b,O],M,1);F M.2U.1w(D,3G)}if(H(1b)=="1n"){if(4b&&"1b"in 4b&&!I.4U.6X){1b=("<"+1b+" 1b=\\""+I.9c(4b.1b)+"\\">")}Q=I.1Z.2S(1b)}N{Q=1b}if(4b){I.4X(Q,4b)}if(M.K<=2){F Q}N{u 3G=m.1R([Q],M,2);F I.9j.1w(D,3G)}},cw:G(){u m=B.J;F m.2z.1w(D,m.1R([B.S.cX],M))},cs:G(5J,1d){u I=B.S;5J=I.1E(5J);u cW=5J.3t;if(1d){1d=I.1E(1d);cW.uj(1d,5J)}N{cW.6S(5J)}F 1d},1E:G(id){u I=B.S;if(M.K==1){F((H(id)=="1n")?I.1Z.hN(id):id)}N{F B.J.2r(I.1E,M)}},4q:G(iP,cV,cU){if(M.K==2){cU=cV}u I=B.S;u el=I.1E(iP);u 77=I.1Z;if(!el||el==77){F L}if(el.iO){F el.iO[cV]}if(H(77.5k)=="L"){F L}if(77.5k===O){F L}u 9i=77.5k.g4(el,O);if(H(9i)=="L"||9i===O){F L}F 9i.6q(cU)},aH:G(76,9g,4W){u I=B.S;if(H(76)=="L"||76===O){76="*"}if(H(4W)=="L"||4W===O){4W=I.1Z}4W=I.1E(4W);u 9h=(4W.fr(76)||I.1Z.1p);if(H(9g)=="L"||9g===O){F B.J.1R(O,9h)}u cR=[];R(u i=0;i<9h.K;i++){u cS=9h[i];u cT=cS.3M.2R(" ");R(u j=0;j<cT.K;j++){if(cT[j]==9g){cR.1c(cS);2K}}}F cR},iN:G(5I,9f){u W=G(){u cQ=M.2U.5H;R(u i=0;i<cQ.K;i++){if(cQ[i].1w(D,M)===1m){2K}}if(9f){1f{D[5I]=O}1e(e){}}};W.5H=[];F W},cO:G(cP,5I,1A,9f){u I=B.S;u 4V=cP[5I];u 75=4V;if(!(H(4V)=="G"&&H(4V.5H)=="3n"&&4V.5H!==O)){75=I.iN(5I,9f);if(H(4V)=="G"){75.5H.1c(4V)}cP[5I]=75}75.5H.1c(1A)},cN:G(1A){u I=B.S;I.cO(I.3X,"gh",1A,1h)},iM:G(74){u I=B.S;I.cN(G(){74=I.1E(74);if(74){74.ui()}})},5G:G(iL,cM){u I=B.S;u 1i=I.1E(iL);if(I.4U.6X){1i.4p("iq",cM)}N{1i.4p("3M",cM)}},iK:G(cL){u I=B.S;R(u i=1;i<M.K;i++){u 1i=I.1E(M[i]);if(!I.9d(1i,cL)){I.9e(1i,cL)}}},9d:G(iJ,73){u I=B.S;u 1i=I.1E(iJ);u 2F=1i.3M;if(2F.K===0){I.5G(1i,73);F 1h}if(2F==73){F 1m}u cK=1i.3M.2R(" ");R(u i=0;i<cK.K;i++){if(cK[i]==73){F 1m}}I.5G(1i,2F+" "+73);F 1h},9e:G(iI,cJ){u I=B.S;u 1i=I.1E(iI);u 2F=1i.3M;if(2F.K===0){F 1m}if(2F==cJ){I.5G(1i,"");F 1h}u 72=1i.3M.2R(" ");R(u i=0;i<72.K;i++){if(72[i]==cJ){72.4y(i,1);I.5G(1i,72.2b(" "));F 1h}}F 1m},iH:G(iG,iF,iE){u 1i=B.S.1E(iG);u X=B.S.9e(1i,iF);if(X){B.S.9d(1i,iE)}F X},iD:G(iC,uh){u 1i=B.S.1E(iC);u cI=1i.3M.2R(" ");R(u i=1;i<M.K;i++){u cH=1m;R(u j=0;j<cI.K;j++){if(cI[j]==M[i]){cH=1h;2K}}if(!cH){F 1m}}F 1h},9c:G(s){F s.23(/&/g,"&ug;").23(/"/g,"&uf;").23(/</g,"&lt;").23(/>/g,"&gt;")},iB:G(2q){F B.S.cG(2q).2b("")},cG:G(2q,1g){if(H(1g)=="L"||1g===O){1g=[]}u 70=[2q];u I=B.S;u cB=I.9c;u iA=I.4U;1M(70.K){2q=70.hP();if(H(2q)=="1n"){1g.1c(2q)}N{if(2q.3T==1){1g.1c("<"+2q.cD.8G());u 71=[];u cF=iA(2q);R(u i=0;i<cF.K;i++){u a=cF[i];71.1c([" ",a.1b,"=\\"",cB(a.3m),"\\""])}71.iz();R(i=0;i<71.K;i++){u cE=71[i];R(u j=0;j<cE.K;j++){1g.1c(cE[j])}}if(2q.ue()){1g.1c(">");70.1c("</"+2q.cD.8G()+">");u cC=2q.5h;R(i=cC.K-1;i>=0;i--){70.1c(cC[i])}}N{1g.1c("/>")}}N{if(2q.3T==3){1g.1c(cB(2q.iv))}}}}F 1g},97:G(ix,cA){u m=B.J;u iy=m.1R(O,M,1);B.15.9a(m.47(O,m.2r(B.S.1E,iy)),G(cA){cA.1T.3u=ix})},iw:G(1j,iu){u W=[];(G(1j){u cn=1j.5h;if(cn){R(u i=0;i<cn.K;i++){M.2U.cz(D,cn[i])}}u cy=1j.iv;if(H(cy)=="1n"){W.1c(cy)}})(B.S.1E(1j));if(iu){F W}N{F W.2b("")}},2d:G(2m){u m=B.J;D.1Z=2v;D.3X=2m;D.9b=Y m.4a();u 6Z=D.1Z.2S("cj");u 2T;if(6Z&&6Z.6Y&&6Z.6Y.K>0){u it=m.47;2T=G(1j){F it(2T.ir,1j.6Y)};2T.cx={};B.15.9a(6Z.6Y,G(a){2T.cx[a.1b]=a.3m});2T.ir=G(a){F(2T.cx[a.1b]!=a.3m)};2T.6X=1m;2T.99={"iq":"3M","ip":"ud","uc":"ub","R":"u9"}}N{2T=G(1j){F 1j.6Y};2T.6X=1h;2T.99={}}D.4U=2T;u 1C=D.cw;D.io=1C("ul");D.il=1C("ol");D.ik=1C("li");D.ij=1C("td");D.cm=1C("tr");D.ii=1C("u8");D.ih=1C("u7");D.ig=1C("u6");D.ie=1C("u5");D.ic=1C("th");D.cv=1C("ck");D.8d=1C("cj");D.A=1C("a");D.6m=1C("4u");D.ib=1C("u4");D.ia=1C("2e");D.i9=1C("tt");D.i8=1C("4O");D.i7=1C("h1");D.i6=1C("h2");D.i5=1C("h3");D.i4=1C("br");D.i3=1C("hr");D.i2=1C("u3");D.i1=1C("u2");D.cu=1C("u1");D.P=1C("p");D.ct=1C("u0");D.i0=1C("hJ");D.hZ=1C("tZ");D.hY=1C("tY");D.hX=1C("tX");D.hW=1C("tW");D.hV=1C("tV");D.hU=m.2z(D.97,"98");D.hT=m.2z(D.97,"8c");D.hS=D.cs;D.$=D.1E;D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)}});B.S.2d(((H(2O)=="L")?D:2O));if(!B.3d){95=B.S.95;94=B.S.94}B.J.2Y(D,B.S);if(H(1q)!="L"){1q.2X("B.1I");1q.2M("B.1H");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.1H",[]);1x.26("B.J",[])}1f{if(H(B.J)=="L"||H(B.1H)=="L"){14""}}1e(e){14"B.1I 3F on B.J 3W B.1H!"}if(H(B.1I)=="L"){B.1I={}}B.1I.1r="B.1I";B.1I.1Y="1.3.1";B.1I.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1I.1l=G(){F D.1K()};B.1I.bY=G(6W){u m=B.1I;6W=!(!6W);if(m.3l&&m.3l.8Q!=6W){m.3l.hA();m.3l=O}if(!m.3l||m.3l.8P){m.3l=Y m.1I(6W,B.1H.2L)}F m.3l};B.1I.1I=G(4R,6V){if(H(6V)=="L"||6V===O){6V=B.1H.2L}D.2L=6V;u tU=B.J.2l;u c3=B.J.8Z;u 1O=B.J.1O;u hM=B.J.4L;u 2m=2O;u 6U="tT";if(H(B.S)!="L"){2m=B.S.cr()}if(!4R){u 5F=2m.tS.tR.2R("?")[0].23(/[:\\/.><&]/g,"hR");u 1b=6U+"hR"+5F;u 5D=2m.cp("",1b,"tQ,tP,3V=hQ");if(!5D){cq("tO tN to cp tM 2O tL to hP-up tK.");F L}5D.2v.fl("<!tJ co tI \\"-//tH//tG co 4.0 tF//tE\\" "+"\\"fq://fp.tD.fo/cm/tC/tB.tA\\">"+"<hO><5E><8Y>[B.1I]</8Y></5E>"+"<5s></5s></hO>");5D.2v.hG();5D.2v.8Y+=" "+2m.2v.8Y;2m=5D}u 1N=2m.2v;D.1N=1N;u 21=1N.hN(6U);u c4=!!21;if(21&&H(21.5B)!="L"){21.5B.2L=D.2L;21.5B.6K();F 21.5B}if(c4){u cl;1M((cl=21.6n)){21.6S(cl)}}N{21=1N.2S("4u");21.id=6U}21.5B=D;u 8T=1N.2S("ck");u 8S=1N.2S("ck");u 6O=1N.2S("2e");u 6N=1N.2S("2e");u 6M=1N.2S("2e");u 6L=1N.2S("2e");u 3L=1N.2S("4u");u 42=1N.2S("4u");u 8U=6U+"tz";D.8N=hM(D.8N);u 4T=[];u 6R=O;u cf=G(1t){u 6T=1t.3N;if(H(6T)=="2y"){6T=B.1H.5C[6T]}F 6T};u cd=G(1t){F 1t.3z.2b(" ")};u ca=1O(G(1t){u 8W=cf(1t);u 7X=cd(1t);u c=D.8N[8W];u p=1N.2S("cj");p.3M="B-49 B-5C-"+8W;p.1T.3x="ty: 2N; 4F-8X: -hL-4O-3y; 4F-8X: -o-4O-3y; 4F-8X: 4O-3y; 4F-8X: 4O-tx; hK-3y: 2K-hK; 3y-hJ: tw; 3U: "+c;p.2c(1N.4S(8W+": "+7X));42.2c(p);42.2c(1N.2S("br"));if(3L.ci>3L.hI){3L.4C=0}N{3L.4C=3L.hI}},D);u hD=G(1t){4T[4T.K]=1t;ca(1t)};u hF=G(){u cg,ce;1f{cg=Y 8V(8T.3m);ce=Y 8V(8S.3m)}1e(e){ch("2x in 47 tv: "+e.43);F O}F G(1t){F(cg.hH(cf(1t))&&ce.hH(cd(1t)))}};u cc=G(){1M(42.6n){42.6S(42.6n)}};u hB=G(){4T=[];cc()};u bZ=1O(G(){if(D.8P){F}D.8P=1h;if(B.1I.3l==D){B.1I.3l=O}D.2L.c9(8U);21.5B=O;if(4R){21.3t.6S(21)}N{D.2m.hG()}},D);u c7=G(){cc();R(u i=0;i<4T.K;i++){u 1t=4T[i];if(6R===O||6R(1t)){ca(1t)}}};D.6K=G(){6R=hF();c7();D.2L.c9(8U);D.2L.hE(8U,6R,hD)};u c0=1O(G(){4T=D.2L.c8();c7()},D);u c2=1O(G(6Q){6Q=6Q||2O.6D;2h=6Q.6w||6Q.8t;if(2h==13){D.6K()}},D);u 31="3u: 8c; z-c6: c5; 2I: 2N; 6f: 2N; 6P: tu; 5A: 3k%; he-3U: 4F; c1: "+D.8O;if(4R){31+="; 3V: ts; 3E-3D: fO 8a 8y"}N{31+="; 3V: 3k%;"}21.1T.3x=31;if(!c4){1N.5s.2c(21)}31={"3x":"5A: 33%; 3u: 8Q; c1: "+D.8O};c3(8T,{"3m":"8L|8M|8K|8J|8I","hC":c2,"1T":31});21.2c(8T);c3(8S,{"3m":".*","hC":c2,"1T":31});21.2c(8S);31="5A: 8%; 3u:8Q; c1: "+D.8O;6O.2c(1N.4S("tq"));6O.8R=1O("6K",D);6O.1T.3x=31;21.2c(6O);6N.2c(1N.4S("tp"));6N.8R=c0;6N.1T.3x=31;21.2c(6N);6M.2c(1N.4S("tn"));6M.8R=hB;6M.1T.3x=31;21.2c(6M);6L.2c(1N.4S("tm"));6L.8R=bZ;6L.1T.3x=31;21.2c(6L);3L.1T.3x="fS: tk; 5A: 3k%";42.1T.3x="5A: 3k%; 3V: "+(4R?"tj":"3k%");3L.2c(42);21.2c(3L);D.6K();c0();if(4R){D.2m=L}N{D.2m=2m}D.8Q=4R;D.hA=bZ;D.8P=1m;F D};B.1I.1I.1U={"8O":"ti tg,tf-te","8N":{"8M":"1v","8L":"gU","8K":"1F","8J":"8y","8I":"bx"}};B.1I.1W=["1I"];B.1I.1z=["bY"];B.1I.2d=G(){D.2k={":3e":D.1z,":1p":B.J.2o(D.1z,D.1W)};B.J.3f(D);B.1I.3l=O};B.1I.2d();B.J.2Y(D,B.1I);if(H(1q)!="L"){1q.2X("B.V");1q.2M("B.J")}if(H(1x)!="L"){1x.26("B.J",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.V 3F on B.J"}if(H(B.V)=="L"){B.V={}}B.V.1r="B.V";B.V.1Y="1.3.1";B.V.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.V.1l=G(){F D.1K()};B.V.V=G(1v,hz,1F,6J){if(H(6J)=="L"||6J===O){6J=1}D.1B={r:1v,g:hz,b:1F,a:6J}};B.V.V.1U={bX:B.V.V,tc:G(hy){u 1B=D.1B;u m=B.V;F m.V.3Y(1B.r,1B.g,1B.b,hy)},tb:G(1o){u 1G=D.41();1G.h=1o;u m=B.V;F m.V.4H(1G)},ta:G(hx){u 1G=D.41();1G.s=hx;u m=B.V;F m.V.4H(1G)},t9:G(hw){u 1G=D.41();1G.l=hw;u m=B.V;F m.V.4H(1G)},t8:G(hv){u 1G=D.41();1G.l=28.29(1G.l-hv,0);u m=B.V;F m.V.4H(1G)},t7:G(hu){u 1G=D.41();1G.l=28.2a(1G.l+hu,1);u m=B.V;F m.V.4H(1G)},fJ:G(ht,5z){if(H(5z)=="L"||5z===O){5z=0.5}u sf=1-5z;u s=D.1B;u d=ht.1B;u df=5z;F B.V.V.3Y((s.r*sf)+(d.r*df),(s.g*sf)+(d.g*df),(s.b*sf)+(d.b*df),(s.a*sf)+(d.a*df))},h4:G(hs){u a=D.6r();u b=hs.6r();F B.J.2f([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a])},hq:G(){F D.41().b>0.5},t6:G(){F(!D.hq())},t5:G(){u c=D.41();u 2Z=B.V.6F;u W=D.ho;if(!W){u 5y=(2Z(c.h,bF).6I(0)+","+2Z(c.s,3k).hp(4)+"%"+","+2Z(c.l,3k).hp(4)+"%");u a=c.a;if(a>=1){a=1;W="1G("+5y+")"}N{if(a<=0){a=0}W="t4("+5y+","+a+")"}D.ho=W}F W},hl:G(){u c=D.1B;u 2Z=B.V.6F;u W=D.hn;if(!W){u 5y=(2Z(c.r,3h).6I(0)+","+2Z(c.g,3h).6I(0)+","+2Z(c.b,3h).6I(0));if(c.a!=1){W="t3("+5y+","+c.a+")"}N{W="1B("+5y+")"}D.hn=W}F W},6r:G(){F B.J.4L(D.1B)},t2:G(){u m=B.V;u c=D.1B;u 2Z=B.V.6F;u W=D.hm;if(!W){W=("#"+m.6E(2Z(c.r,3h))+m.6E(2Z(c.g,3h))+m.6E(2Z(c.b,3h)));D.hm=W}F W},t1:G(){u 2Q=D.2Q;u c=D.1B;if(H(2Q)=="L"||2Q===O){2Q=B.V.bA(D.1B);D.2Q=2Q}F B.J.4L(2Q)},41:G(){u 1G=D.1G;u c=D.1B;if(H(1G)=="L"||1G===O){1G=B.V.bC(D.1B);D.1G=1G}F B.J.4L(1G)},1l:G(){F D.hl()},U:G(){u c=D.1B;u hk=[c.r,c.g,c.b,c.a];F D.bX.1r+"("+hk.2b(", ")+")"}};B.J.2l(B.V.V,{3Y:G(1v,bW,1F,8H){u hj=B.V.V;if(M.K==1){u 1B=1v;1v=1B.r;bW=1B.g;1F=1B.b;if(H(1B.a)=="L"){8H=L}N{8H=1B.a}}F Y hj(1v,bW,1F,8H)},4H:G(1o,t0,sZ,sY){u m=B.V;F m.V.3Y(m.bB.1w(m,M))},sX:G(1o,sW,sV,sU){u m=B.V;F m.V.3Y(m.bz.1w(m,M))},hi:G(1b){u 8F=B.V.V;if(1b.3Z(0)=="\\""){1b=1b.3H(1,1b.K-2)}u bV=8F.by[1b.8G()];if(H(bV)=="1n"){F 8F.bT(bV)}N{if(1b=="aP"){F 8F.sT()}}F O},8f:G(4Q){u I=B.V.V;u bU=4Q.3H(0,3);if(bU=="1B"){F I.h9(4Q)}N{if(bU=="1G"){F I.h8(4Q)}N{if(4Q.3Z(0)=="#"){F I.bT(4Q)}}}F I.hi(4Q)},bT:G(4P){if(4P.3Z(0)=="#"){4P=4P.2W(1)}u 8E=[];u i,5x;if(4P.K==3){R(i=0;i<3;i++){5x=4P.3H(i,1);8E.1c(3w(5x+5x,16)/3h)}}N{R(i=0;i<6;i+=2){5x=4P.3H(i,2);8E.1c(3w(5x,16)/3h)}}u bS=B.V.V;F bS.3Y.1w(bS,8E)},bG:G(4O,hf,hg,4N){if(4N.2A(4O)===0){4N=4N.2W(4N.2A("(",3)+1,4N.K-1)}u bR=4N.2R(/\\s*,\\s*/);u bP=[];R(u i=0;i<bR.K;i++){u c=bR[i];u 2i;u bQ=c.2W(c.K-3);if(c.3Z(c.K-1)=="%"){2i=0.bE*4M(c.2W(0,c.K-1))}N{if(bQ=="sS"){2i=4M(c)/bF}N{if(bQ=="sR"){2i=4M(c)/(28.sQ*2)}N{2i=hg[i]*4M(c)}}}bP.1c(2i)}F D[hf].1w(D,bP)},bN:G(Q,sP,sO){u d=B.S;u 2F=B.V.V;R(Q=d.1E(Q);Q;Q=Q.3t){u bO=d.4q.1w(d,M);if(!bO){2V}u 8D=2F.8f(bO);if(!8D){2K}if(8D.6r().a>0){F 8D}}F O},ba:G(Q){u 2F=B.V.V;F 2F.bN(Q,"aZ","he-3U")||2F.sN()},sM:G(Q){u 2F=B.V.V;F 2F.bN(Q,"3U","3U")||2F.sL()},sK:G(){F B.J.4L(B.V.V.by)}});B.J.2l(B.V,{6F:G(v,8C){v*=8C;if(v<0){F 0}N{if(v>8C){F 8C}N{F v}}},hc:G(n1,n2,1o){if(1o>6){1o-=6}N{if(1o<0){1o+=6}}u 2i;if(1o<1){2i=n1+(n2-n1)*1o}N{if(1o<3){2i=n2}N{if(1o<4){2i=n1+(n2-n1)*(4-1o)}N{2i=n1}}}F 2i},bz:G(1o,5w,3i,bM){if(M.K==1){u 2Q=1o;1o=2Q.h;5w=2Q.s;3i=2Q.v;bM=2Q.a}u 1v;u 3K;u 1F;if(5w===0){1v=0;3K=0;1F=0}N{u i=28.8B(1o*6);u f=(1o*6)-i;u p=3i*(1-5w);u q=3i*(1-(5w*f));u t=3i*(1-(5w*(1-f)));hd(i){3j 1:1v=q;3K=3i;1F=p;2K;3j 2:1v=p;3K=3i;1F=t;2K;3j 3:1v=p;3K=q;1F=3i;2K;3j 4:1v=t;3K=p;1F=3i;2K;3j 5:1v=3i;3K=p;1F=q;2K;3j 6:3j 0:1v=3i;3K=t;1F=p;2K}}F{r:1v,g:3K,b:1F,a:bM}},bB:G(1o,5v,3v,bL){if(M.K==1){u 1G=1o;1o=1G.h;5v=1G.s;3v=1G.l;bL=1G.a}u 1v;u 8A;u 1F;if(5v===0){1v=3v;8A=3v;1F=3v}N{u m2;if(3v<=0.5){m2=3v*(1+5v)}N{m2=3v+5v-(3v*5v)}u m1=(2*3v)-m2;u f=B.V.hc;u h6=1o*6;1v=f(m1,m2,h6+2);8A=f(m1,m2,h6);1F=f(m1,m2,h6-2)}F{r:1v,g:8A,b:1F,a:bL}},bA:G(1v,4K,1F,bK){if(M.K==1){u 1B=1v;1v=1B.r;4K=1B.g;1F=1B.b;bK=1B.a}u 29=28.29(28.29(1v,4K),1F);u 2a=28.2a(28.2a(1v,4K),1F);u 1o;u 8z;u hb=29;if(2a==29){1o=0;8z=0}N{u 6H=(29-2a);8z=6H/29;if(1v==29){1o=(4K-1F)/6H}N{if(4K==29){1o=2+((1F-1v)/6H)}N{1o=4+((1v-4K)/6H)}}1o/=6;if(1o<0){1o+=1}if(1o>1){1o-=1}}F{h:1o,s:8z,v:hb,a:bK}},bC:G(1v,4J,1F,bI){if(M.K==1){u 1B=1v;1v=1B.r;4J=1B.g;1F=1B.b;bI=1B.a}u 29=28.29(1v,28.29(4J,1F));u 2a=28.2a(1v,28.2a(4J,1F));u 1o;u 6G;u bJ=(29+2a)/2;u 4I=29-2a;if(4I===0){1o=0;6G=0}N{if(bJ<=0.5){6G=4I/(29+2a)}N{6G=4I/(2-29-2a)}if(1v==29){1o=(4J-1F)/4I}N{if(4J==29){1o=2+((1F-1v)/4I)}N{1o=4+((1v-4J)/4I)}}1o/=6;if(1o<0){1o+=1}if(1o>1){1o-=1}}F{h:1o,s:6G,l:bJ,a:bI}},6E:G(1P){1P=28.ha(1P);u bH=1P.1l(16);if(1P<16){F"0"+bH}F bH},2d:G(){u m=B.J;D.V.h9=m.1O(D.V.bG,D.V,"1B","3Y",[1/3h,1/3h,1/3h,1]);D.V.h8=m.1O(D.V.bG,D.V,"1G","4H",[1/bF,0.bE,0.bE,1]);u 4G=1/3;u bD={8y:[0,0,0],1F:[0,0,1],gY:[0.6,0.4,0.2],gX:[0,1,1],sJ:[4G,4G,4G],gR:[0.5,0.5,0.5],bx:[0,1,0],sI:[2*4G,2*4G,2*4G],gN:[1,0,1],gL:[1,0.5,0],gK:[0.5,0,0.5],1v:[1,0,0],aP:[0,0,0,0],4F:[1,1,1],gI:[1,1,0]};u h7=G(1b,r,g,b,a){u W=D.3Y(r,g,b,a);D[1b]=G(){F W};F W};R(u k in bD){u 1b=k+"V";u h5=m.2o([h7,D.V,1b],bD[k]);D.V[1b]=m.1O.1w(O,h5)}u h0=G(){R(u i=0;i<M.K;i++){if(!(M[i]2C V)){F 1m}}F 1h};u gZ=G(a,b){F a.h4(b)};m.3f(D);m.5u(D.V.1r,h0,gZ);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)}}});B.V.1z=["V"];B.V.1W=["6F","bC","bB","bA","bz","6E"];B.V.2d();B.J.2Y(D,B.V);B.V.V.by={sH:"#sG",sF:"#sE",sD:"#gW",sC:"#sB",sA:"#sz",sy:"#sx",sw:"#sv",8y:"#su",st:"#sr",1F:"#sq",sp:"#so",gY:"#sn",sm:"#sl",sk:"#sj",si:"#sh",sg:"#se",sd:"#sc",sb:"#sa",s9:"#s8",s7:"#s6",gX:"#gW",s5:"#s4",s3:"#s2",s1:"#s0",rZ:"#gV",rY:"#rX",rW:"#gV",rV:"#rU",rT:"#rS",rR:"#rQ",rP:"#rO",rN:"#rM",gU:"#rL",rK:"#rJ",rI:"#rH",rG:"#rF",rE:"#gT",rD:"#gT",rC:"#rB",rA:"#rz",ry:"#rx",rw:"#rv",ru:"#gS",rt:"#gS",rs:"#rr",rq:"#rp",ro:"#rn",rm:"#rl",rk:"#gM",rj:"#ri",rh:"#rg",rf:"#rd",rc:"#rb",gR:"#gQ",bx:"#ra",r9:"#r8",r7:"#gQ",r6:"#r5",r4:"#r3",r2:"#r1",r0:"#qZ",qY:"#qX",qW:"#qV",qU:"#qT",qS:"#qR",qQ:"#qP",qO:"#qN",qM:"#qL",qK:"#qJ",qI:"#qH",qG:"#qF",qE:"#gP",qD:"#qC",qB:"#gP",qA:"#qz",qy:"#qx",qw:"#qv",qu:"#qt",qr:"#gO",qq:"#gO",qp:"#qo",qn:"#qm",ql:"#qk",qj:"#qi",qh:"#qg",gN:"#gM",qf:"#qe",qd:"#qc",qb:"#qa",q9:"#q8",q7:"#q6",q5:"#q4",q3:"#q2",q1:"#q0",pZ:"#pY",pX:"#pW",pV:"#pU",pT:"#pS",pR:"#pQ",pP:"#pO",pN:"#pM",pL:"#pK",pJ:"#pI",pH:"#pG",pF:"#pE",gL:"#pD",pC:"#pB",pA:"#pz",py:"#pw",pv:"#pu",pt:"#ps",pr:"#pq",pp:"#po",pn:"#pm",pl:"#pj",pi:"#ph",pg:"#pf",pe:"#pd",gK:"#pc",1v:"#pb",pa:"#p9",p8:"#p7",p6:"#p5",p4:"#p3",p2:"#p1",p0:"#oZ",oY:"#oX",oW:"#oV",oU:"#oT",oS:"#oR",oQ:"#oP",oO:"#gJ",oN:"#gJ",oM:"#oL",oK:"#oJ",oI:"#oH",oG:"#oF",oE:"#oD",oC:"#oB",oA:"#oz",oy:"#ox",ow:"#ov",ou:"#ot",4F:"#os",oq:"#op",gI:"#oo",om:"#ok"};if(H(1q)!="L"){1q.2X("B.1u");1q.2M("B.J");1q.2M("B.S")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.S",[])}1f{if(H(B.J)=="L"){14""}}1e(e){14"B.1u 3F on B.J!"}1f{if(H(B.S)=="L"){14""}}1e(e){14"B.1u 3F on B.S!"}if(H(B.1u)=="L"){B.1u={}}B.1u.1r="B.1u";B.1u.1Y="1.3.1";B.1u.4x=[];B.1u.bq=G(1d,e){D.1L=e||2O.6D;D.gH=1d};B.J.2l(B.1u.bq.1U,{1K:G(){u U=B.J.U;u 1y="{6D(): "+U(D.6D())+", 1d(): "+U(D.1d())+", 1J(): "+U(D.1J())+", 8x(): "+U(D.8x())+", 4E(): "+"{8w: "+U(D.4E().8w)+", 8v: "+U(D.4E().8v)+", 8u: "+U(D.4E().8u)+", 2P: "+U(D.4E().2P)+", bw: "+U(D.4E().bw)+"}";if(D.1J()&&D.1J().2A("2h")===0){1y+=", 2h(): {3J: "+U(D.2h().3J)+", 1n: "+U(D.2h().1n)+"}"}if(D.1J()&&(D.1J().2A("3I")===0||D.1J().2A("gE")!=-1||D.1J()=="gD")){1y+=", 3I(): {4D: "+U(D.3I().4D)+", 6A: "+U(D.3I().6A);if(D.1J()!="gC"){1y+=", 2e: {2I: "+U(D.3I().2e.2I)+", 6v: "+U(D.3I().2e.6v)+", 3g: "+U(D.3I().2e.3g)+"}}"}N{1y+="}"}}if(D.1J()=="gG"||D.1J()=="gF"){1y+=", 6C(): "+U(D.6C())}1y+="}";F 1y},1l:G(){F D.1K()},1d:G(){F D.gH},6D:G(){F D.1L},1J:G(){F D.1L.1J||L},8x:G(){F D.1L.8x||D.1L.oj},6C:G(){if(D.1J()=="gG"){F(D.1L.6C||D.1L.aW)}N{if(D.1J()=="gF"){F(D.1L.6C||D.1L.oi)}}F L},4E:G(){u m={};m.8w=D.1L.oh;m.8v=D.1L.og;m.8u=D.1L.oe||1m;m.2P=D.1L.od;m.bw=m.8w||m.8v||m.2P||m.8u;F m},2h:G(){u k={};if(D.1J()&&D.1J().2A("2h")===0){if(D.1J()=="oc"||D.1J()=="ob"){k.3J=D.1L.8t;k.1n=(B.1u.5r[k.3J]||"oa");F k}N{if(D.1J()=="o9"){k.3J=0;k.1n="";if(H(D.1L.6B)!="L"&&D.1L.6B!==0&&!B.1u.bv[D.1L.6B]){k.3J=D.1L.6B;k.1n=bu.bt(k.3J)}N{if(D.1L.8t&&H(D.1L.6B)=="L"){k.3J=D.1L.8t;k.1n=bu.bt(k.3J)}}F k}}}F L},3I:G(){u m={};u e=D.1L;if(D.1J()&&(D.1J().2A("3I")===0||D.1J().2A("gE")!=-1||D.1J()=="gD")){m.6A=Y B.S.5t(0,0);if(e.6z||e.6x){m.6A.x=(!e.6z||e.6z<0)?0:e.6z;m.6A.y=(!e.6x||e.6x<0)?0:e.6x}m.4D=Y B.S.5t(0,0);if(e.8s||e.8r){m.4D.x=(!e.8s||e.8s<0)?0:e.8s;m.4D.y=(!e.8r||e.8r<0)?0:e.8r}N{u de=B.S.1Z.7Z;u b=B.S.1Z.5s;m.4D.x=e.6z+(de.6y||b.6y)-(de.8q||b.8q);m.4D.y=e.6x+(de.4C||b.4C)-(de.8p||b.8p)}if(D.1J()!="gC"){m.2e={};m.2e.2I=1m;m.2e.3g=1m;m.2e.6v=1m;if(e.6w){m.2e.2I=(e.6w==1);m.2e.6v=(e.6w==2);m.2e.3g=(e.6w==3)}N{m.2e.2I=!!(e.2e&1);m.2e.3g=!!(e.2e&2);m.2e.6v=!!(e.2e&4)}}F m}F L},2J:G(){D.8o();D.8n()},8o:G(){if(D.1L.8o){D.1L.8o()}N{D.1L.o8=1h}},8n:G(){if(D.1L.8n){D.1L.8n()}N{D.1L.o7=1m}}});B.1u.bv={3:"gz",o6:"gA",o5:"gy",o4:"gx",o3:"gw",o2:"gv",o1:"gu",o0:"gs",nZ:"gr",nY:"gq",nX:"gp",nW:"go"};R(i=gB;i<=nV;i++){B.1u.bv[i]="gk"+(i-gB+1)}B.1u.5r={8:"nU",9:"nT",12:"gA",13:"gz",16:"nS",17:"nR",18:"nQ",19:"nP",20:"nO",27:"nN",32:"nM",33:"gy",34:"gx",35:"gw",36:"gv",37:"gu",38:"gs",39:"gr",40:"gq",44:"nL",45:"gp",46:"go",59:"gn",91:"nK",92:"nJ",93:"nI",nH:"nG",nF:"nE",nD:"nC-gm",nB:"nA",nz:"ny",nx:"nw",nv:"nu",nt:"gn",ns:"nr",nq:"np",nn:"nm-gm",nl:"nk",nj:"ni",nh:"ng",nf:"nd",nc:"nb",na:"n9",n8:"n7"};R(u i=48;i<=57;i++){B.1u.5r[i]="gl"+(i-48)}R(i=65;i<=90;i++){B.1u.5r[i]="gl"+bu.bt(i)}R(i=96;i<=n6;i++){B.1u.5r[i]="n5"+(i-96)}R(i=gj;i<=n4;i++){B.1u.5r[i]="gk"+(i-gj+1)}B.J.2l(B.1u,{1K:G(){F"["+D.1r+" "+D.1Y+"]"},1l:G(){F D.1K()},g7:G(){u I=B.1u;u bs=I.4x;R(u i=0;i<bs.K;i++){I.6t(bs[i])}gi I.4x;1f{2O.gh=L}1e(e){}1f{2O.g8=L}1e(e){}},gb:G(1d,1A,1i,gg){u E=B.1u.bq;if(!gg){F B.J.1O(1A,1i)}1i=1i||1d;if(H(1A)=="1n"){F G(gf){1i[1A].1w(1i,[Y E(1d,gf)])}}N{F G(gd){1A.1w(1i,[Y E(1d,gd)])}}},6s:G(1d,2D,5q,4B){1d=B.S.1E(1d);u I=B.1u;if(H(2D)!="1n"){14 Y 2x("\'2D\' 5p be a 1n")}u 1i=O;u 1A=O;if(H(4B)!="L"){1i=5q;1A=4B;if(H(4B)=="1n"){if(H(5q[4B])!="G"){14 Y 2x("\'bp\' 5p be a G on \'gc\'")}}N{if(H(4B)!="G"){14 Y 2x("\'bp\' 5p be a G or 1n")}}}N{if(H(5q)!="G"){14 Y 2x("\'gc\' 5p be a G if \'bp\' is 2E n3")}N{1A=5q}}if(H(1i)=="L"||1i===O){1i=1d}u bm=!!(1d.bo||1d.bn);u 8m=I.gb(1d,1A,1i,bm);if(1d.bo){1d.bo(2D.3H(2),8m,1m)}N{if(1d.bn){1d.bn(2D,8m)}}u bk=[1d,2D,8m,bm,5q,4B];I.4x.1c(bk);F bk},6t:G(6u){if(!6u[3]){F}u 1d=6u[0];u 2D=6u[1];u bj=6u[2];if(1d.ga){1d.ga(2D.3H(2),bj,1m)}N{if(1d.g9){1d.g9(2D,bj)}N{14 Y 2x("\'1d\' 5p be a S n0")}}},8j:G(bh){u I=B.1u;u 5o=I.4x;u m=B.J;if(M.K>1){u 1d=B.S.1E(M[0]);u 2D=M[1];u 1i=M[2];u 1A=M[3];R(u i=5o.K-1;i>=0;i--){u o=5o[i];if(o[0]===1d&&o[1]===2D&&o[4]===1i&&o[5]===1A){I.6t(o);5o.4y(i,1);F 1h}}}N{u 5n=m.bi(5o,bh);if(5n>=0){I.6t(bh);5o.4y(5n,1);F 1h}}F 1m},8i:G(1d,2D){1d=B.S.1E(1d);u m=B.J;u 8l=m.bg(m.1R(O,M,1));u I=B.1u;u bd=I.6t;u 4z=I.4x;if(8l.K===0){R(u i=4z.K-1;i>=0;i--){u 4A=4z[i];if(4A[0]===1d){bd(4A);4z.4y(i,1)}}}N{u bf={};R(u i=0;i<8l.K;i++){bf[8l[i]]=1h}R(u i=4z.K-1;i>=0;i--){u 4A=4z[i];if(4A[0]===1d&&4A[1]in bf){bd(4A);4z.4y(i,1)}}}},8h:G(1d,2D){u bc=B.1u.4x;1d=B.S.1E(1d);u 3G=B.J.1R(O,M,2);u 5m=[];R(u i=0;i<bc.K;i++){u 8k=bc[i];if(8k[0]===1d&&8k[1]===2D){1f{8k[2].1w(1d,3G)}1e(e){5m.1c(e)}}}if(5m.K==1){14 5m[0]}N{if(5m.K>1){u e=Y 2x("mZ bb mY in mX \'2D\', mW bb mV");e.bb=5m;14 e}}}});B.1u.1W=[];B.1u.1z=["6s","8j","8h","8i"];B.1u.2d=G(2m){u m=B.J;D.1Z=2v;D.3X=2m;1f{D.6s(2O,"g8",D.g7)}1e(e){}D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)};m.3f(D)};B.1u.2d(D);if(!B.3d){6s=B.1u.6s;8j=B.1u.8j;8i=B.1u.8i;8h=B.1u.8h}B.J.2Y(D,B.1u);if(H(1q)!="L"){1q.2X("B.1X");1q.2M("B.J");1q.2M("B.S");1q.2M("B.V")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.S",[]);1x.26("B.V",[])}1f{if(H(B.J)=="L"||H(B.S)=="L"||H(B.V)=="L"){14""}}1e(e){14"B.1X 3F on B.J, B.S 3W B.V!"}if(H(B.1X)=="L"){B.1X={}}B.1X.1r="B.1X";B.1X.1Y="1.3.1";B.1X.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.1X.1l=G(){F D.1K()};B.1X.aI=G(e,g6){e=B.S.1E(e);D.fN(g6);if(D.1S.fL){e=D.g5(e)}u 4w=D.1S.3U;u C=B.V.V;if(D.1S.3U=="aW"){4w=C.ba(e)}N{if(!(4w 2C C)){4w=C.8f(4w)}}D.82=(4w.6r().a<=0);u 5l=D.1S.aV;if(D.1S.aV=="fM"){5l=C.ba(e.8g)}N{if(!(5l 2C C)){5l=C.8f(5l)}}D.g3(e,4w,5l)};B.1X.aI.1U={g5:G(e){u mU=e.3t;u 1N=B.S.b9();if(H(1N.5k)=="L"||1N.5k===O){F e}u 4v=1N.5k.g4(e,O);if(H(4v)=="L"||4v===O){F e}u b8=B.S.6m({"1T":{3u:"8c",mT:4v.6q("6p-3D"),85:4v.6q("6p-3g"),mS:4v.6q("6p-6f"),86:4v.6q("6p-2I"),6p:"2N"}});b8.6o=e.6o;e.6o="";e.2c(b8);F e},g3:G(e,b7,8e){if(D.1S.3E){D.g2(e,8e)}if(D.fy()){D.fX(e,b7,8e)}if(D.fx()){D.fV(e,b7,8e)}},g2:G(el,g1){u b6="6l 8a "+D.aQ(g1);u g0="3E-2I: "+b6;u fZ="3E-3g: "+b6;u fY="1T=\'"+g0+";"+fZ+"\'";el.6o="<4u "+fY+">"+el.6o+"</4u>"},fX:G(el,fW,b5){u b4=D.b1(b5);R(u i=0;i<D.1S.89;i++){b4.2c(D.b0(fW,b5,i,"3D"))}el.1T.mR=0;el.mQ(b4,el.6n)},fV:G(el,fU,b3){u b2=D.b1(b3);R(u i=(D.1S.89-1);i>=0;i--){b2.2c(D.b0(fU,b3,i,"6f"))}el.1T.mP=0;el.2c(b2)},b1:G(fT){u 2q=B.S;F 2q.6m({1T:{aZ:fT.1l()}})},b0:G(aY,fQ,n,aX){u 6k=B.S.8d();u 2p=6k.1T;2p.aZ=aY.1l();2p.3u="8c";2p.3V="6l";2p.fS="fR";2p.mO="6l";u 8b=D.aQ(aY,fQ);if(D.1S.3E&&n===0){2p.mN="8a";2p.mM="6l";2p.84="2N";2p.83="2N";2p.mL="2N";2p.3V="2N";2p.fP=8b.1l()}N{if(8b){2p.fP=8b.1l();2p.mK="8a";2p.mJ="2N 6l"}}if(!D.1S.4r&&(n==(D.1S.89-1))){2p.3V="fO"}D.fI(6k,n,aX);D.fG(6k,n,aX);F 6k},fN:G(fK){D.1S={6g:"1p",3U:"aW",aV:"fM",5j:1h,3E:1m,4r:1m,fL:1m};B.J.2l(D.1S,fK);D.1S.89=(D.1S.4r?2:4)},aL:G(){u 88=D.1S.6g;if(D.6h(88,"1p","3D")){F""}u aU=(88.2A("tl")!=-1);u aT=(88.2A("tr")!=-1);if(aU&&aT){F""}if(aU){F"2I"}if(aT){F"3g"}F""},aK:G(){u 87=D.1S.6g;if(D.6h(87,"1p","6f")){F""}u aS=(87.2A("bl")!=-1);u aR=(87.2A("br")!=-1);if(aS&&aR){F""}if(aS){F"2I"}if(aR){F"3g"}F""},aQ:G(aN,aO){if(aN=="aP"){F aO}N{if(D.1S.3E){F D.1S.3E}N{if(D.1S.5j){F aO.fJ(aN)}}}F""},fI:G(el,n,fH){u 6j=D.fE(n)+"px";u aM=(fH=="3D"?D.aL():D.aK());u 4t=el.1T;if(aM=="2I"){4t.86=6j;4t.85="2N"}N{if(aM=="3g"){4t.85=6j;4t.86="2N"}N{4t.86=6j;4t.85=6j}}},fG:G(el,n,fF){u 6i=D.fz(n)+"px";u aJ=(fF=="3D"?D.aL():D.aK());u 4s=el.1T;if(aJ=="2I"){4s.84=6i;4s.83="2N"}N{if(aJ=="3g"){4s.83=6i;4s.84="2N"}N{4s.84=6i;4s.83=6i}}},fE:G(n){if(D.82){F 0}u o=D.1S;if(o.4r&&o.5j){u fD=[1,0];F fD[n]}N{if(o.4r){u fC=[2,1];F fC[n]}N{if(o.5j){u fB=[3,2,1,0];F fB[n]}N{u fA=[5,3,2,1];F fA[n]}}}},fz:G(n){u o=D.1S;u 5i;if(o.4r&&(o.5j||D.82)){F 1}N{if(o.4r){5i=[1,0]}N{if(o.5j){5i=[2,1,1,1]}N{if(o.3E){5i=[0,2,0,0]}N{if(D.82){5i=[5,3,2,1]}N{F 0}}}}}F 5i[n]},6h:G(1y){R(u i=1;i<M.K;i++){if(1y.2A(M[i])!=-1){F 1h}}F 1m},fy:G(){F D.6h(D.1S.6g,"1p","3D","tl","tr")},fx:G(){F D.6h(D.1S.6g,"1p","6f","bl","br")},mI:G(el){F(el.5h.K==1&&el.5h[0].3T==3)}};B.1X.aF=G(e,fw){Y B.1X.aI(e,fw)};B.1X.fs=G(fv,fu,ft){u aG=B.S.aH(fv,fu);R(u i=0;i<aG.K;i++){B.1X.aF(aG[i],ft)}};B.1X.V=B.V.V;B.1X.mH=B.S.4q;B.1X.2d=G(){u m=B.J;m.3f(D);D.2k={":3e":D.1z,":1p":m.2o(D.1z,D.1W)}};B.1X.1z=["aF","fs"];B.1X.1W=[];B.1X.2d();B.J.2Y(D,B.1X);if(H(B)=="L"){B={}}if(H(B.B)=="L"){B.B={}}B.B.1r="B.B";B.B.1Y="1.3.1";B.B.1K=G(){F"["+D.1r+" "+D.1Y+"]"};B.B.1l=G(){F D.1K()};B.B.aA=["J","15","1H","1D","1s","1k","S","1I","V","1u","1X"];if(H(1x)!="L"||H(1q)!="L"){if(H(1q)!="L"){1q.2X("B.B");1q.2M("B.*")}if(H(1x)!="L"){1x.26("B.J",[]);1x.26("B.15",[]);1x.26("B.1H",[]);1x.26("B.1D",[]);1x.26("B.1s",[]);1x.26("B.1k",[]);1x.26("B.S",[]);1x.26("B.1I",[]);1x.26("B.V",[]);1x.26("B.1u",[]);1x.26("B.1X",[])}(G(){u 6e=B.J.1R;u I=B.B;u aE=I.aA;u aD=[];u aC=[];u 81={};u i,k,m,1p;R(i=0;i<aE.K;i++){m=B[aE[i]];6e(aD,m.1z);6e(aC,m.1W);R(k in m.2k){81[k]=6e(81[k],m.2k[k])}1p=m.2k[":1p"];if(!1p){1p=6e(O,m.1z,m.1W)}u j;R(j=0;j<1p.K;j++){k=1p[j];I[k]=m[k]}}I.1z=aD;I.1W=aC;I.2k=81}())}N{if(H(B.3d)=="L"){B.3d=1h}(G(){u 80=2v.fr("7W");u ay="fq://fp.mG.fo/mF/mE/mD.is.aB.mC";u 2w=O;u ax=O;u az={};u i;R(i=0;i<80.K;i++){u 1d=80[i].fm("1d");if(!1d){2V}az[1d]=1h;if(1d.3C(/B.js$/)){2w=1d.2W(0,1d.mB("B.js"));ax=80[i]}}if(2w===O){F}u 6d=B.B.aA;R(u i=0;i<6d.K;i++){if(B[6d[i]]){2V}u 7Y=2w+6d[i]+".js";if(7Y in az){2V}if(2v.7Z&&2v.7Z.mA==ay){u s=2v.mz(ay,"7W");s.4p("id","my"+2w+6d[i]);s.4p("1d",7Y);s.4p("1J","mx/x-fk");ax.3t.2c(s)}N{2v.fl("<7W 1d=\\""+7Y+"\\" 1J=\\"7X/fk\\"></7W>")}}})()}',62,1976,'||||||||||||||||||||||||||||||var|||||||MochiKit||this||return|function|typeof|self|Base|length|undefined|arguments|else|null||elem|for|DOM||repr|Color|rval|res|new||||||throw|Iter|||||next|name|push|src|catch|try|lst|true|obj|node|Async|toString|false|string|hue|all|dojo|NAME|Format|msg|Signal|red|apply|JSAN|str|EXPORT|func|rgb|_425|DateTime|getElement|blue|hsl|Logging|LoggingPane|type|__repr__|_event|while|doc|bind|num|iter|extend|options|style|prototype|seq|EXPORT_OK|Visual|VERSION|_document||_434||replace|forwardCall|StopIteration|use||Math|max|min|join|appendChild|__new__|button|compare|date|key|val|_329|EXPORT_TAGS|update|win|pair|concat|_596|dom|map|req|Deferred|sync|document|base|Error|number|partial|indexOf||instanceof|sig|not|cls|list|fired|left|stop|break|logger|require|0px|window|shift|hsv|split|createElement|_423|callee|continue|substring|provide|_exportSymbols|ccc||_464|||||||||step|pred|_51|__compat__|common|nameFunctions|right|255|_517|case|100|_loggingPane|value|object|callback|TypeError|_251|_246|_113|parentNode|display|_522|parseInt|cssText|wrap|info|isArrayLike|end|match|top|border|depends|args|substr|mouse|code|_519|_443|className|level|err|frac|Date|_135|_85|nodeType|color|height|and|_window|fromRGB|charAt||asHSL|_444|message||||filter||LogMessage|AdapterRegistry|_366|imap|NotFound|locked|counter|_262|_messages|operator|cmp|_165|_161|pairs|arr|_52|setAttribute|computedStyle|compact|_614|_610|div|_576|_572|_observers|splice|_565|_566|_555|scrollTop|page|modifier|white|_541|fromHSL|_539|_535|_528|clone|parseFloat|_505|pre|_499|_497|_427|createTextNode|_446|attributeArray|_388|_379|updateNodeAttributes|_341|_326||box|errback|results|paused|chain|_285||ofs||NamedError|_175|_147|_122|_83|_54|_17|childNodes|_619|blend|defaultView|_574|_569|idx|_562|must|_554|_specialKeys|body|Coordinates|registerComparator|_521|_516|hex|mid|_478|width|loggingPane|LogLevel|nwin|head|url|setElementClass|callStack|path|dest|_359|boolean|register|Dimensions|DeferredLock|_313|addCallback|_310|waiting|onreadystatechange|_290|LOCALE|year|printfire|_214|log|_213|_211|pos|_155|_153||typeMatcher|listMinMax|_114|_40|itr|typ|_19|_634|_625|bottom|corners|_hasString|_612|_608|_595|1px|DIV|firstChild|innerHTML|padding|getPropertyValue|asRGB|connect|_disconnect|_559|middle|which|clientY|scrollLeft|clientX|client|charCode|relatedTarget|event|toColorPart|clampColorComponent|_537|_534|toFixed|_468|buildAndApplyFilter|_442|_441|_440|_439|position|_463|_447|removeChild|_449|uid|_428|_426|compliant|attributes|_422|_409|_412|_400|_395|_390|_389|_377|_375|_363|attr|ctx|repeat|_340|_339|isNotEmpty|_335|_333|opera|DeferredList|ret|_309|silentlyCancelled|canceller|_nextId|Array|_293|XMLHttpRequest|chained|_281|tail|_252|_225|msec|day|month|iso|Logger|_208|listeners|_200|_198|_194|_196|reduce|range|_169|_162|truth|registerRepr|_121|_70|_58|_56|_47|_45|_41|_13|_1|script|text|uri|documentElement|_630|_629|isTransparent|borderRightWidth|borderLeftWidth|marginRight|marginLeft|_602|_599|numSlices|solid|_597|block|SPAN|_579|fromString|offsetParent|signal|disconnectAll|disconnect|_570|_563|_557|preventDefault|stopPropagation|clientTop|clientLeft|pageY|pageX|keyCode|meta|ctrl|alt|target|black|_532|_524|floor|_513|_512|_500|_495|toLowerCase|_487|DEBUG|INFO|WARNING|FATAL|ERROR|colorTable|logFont|closed|inline|onclick|_438|_437|_445|RegExp|_452|space|title|updatetree|||||withDocument|withWindow||setDisplayForElement|none|renames|forEach|domConverters|escapeHTML|addElementClass|removeElementClass|once|_378|_380|_376|appendChildNodes|coerceToDOM|_355|opt|clientWidth|opacity|GenericError|fail|resultList|_307|_301|_fire|can|addCallbacks|_resback|percent|decimal|separator|twoDigitFloat|_274|_273|_264|_257|_250|_249|_254|_248|_243|_242|fmt|_240|_245|getTime|sec|hour|_209|slice|_206|iterateNextIter|registerIteratorFactory|arrayLikeIter|iteratorRegistry|takewhile|ifilterfalse|ifilter|_181|_176|_168|_166|_159|_tee|deque|arg|fun|jsonRegistry|reprString|reprRegistry|comparatorRegistry|urlEncode|_110|_108|cur|_95|_87|_71|im_preargs||_53|_57|_46|present|like|array|Argument|_15|_12|_632|_631|_633|SUBMODULES|only|_628|_627|_626|roundElement|_624|getElementsByTagAndClassName|_RoundCorners|_613|_whichSideBottom|_whichSideTop|_609|_605|_606|transparent|_borderColor|_604|_603|_601|_600|bgColor|fromElement|_594|_592|backgroundColor|_createCornerSlice|_createCorner|_590|_589|_587|_586|_581|_578|_577|currentDocument|fromBackground|errors|_568|_564||sigs|flattenArguments|_561|findIdentical|_560|_558||_556|attachEvent|addEventListener|funcOrStr|Event||_548|fromCharCode|String|_specialMacKeys|any|green|_namedColors|hsvToRGB|rgbToHSV|hslToRGB|rgbToHSL|_542|01|360|_fromColorString|_540|_536|_538|_529|_523|_518|fromComputedStyle|_511|_507|_508|_506|_501|fromHexString|_498|_496|_486|__class__|createLoggingPane|_459|_461|font|_462|_430|_435|1000|index|_460|getMessages|removeListener|_451||_457|_450|infore|_448|_456|logDebug|offsetHeight|span|input|_436|TR||HTML|open|alert|currentWindow|swapDOM|SELECT|FORM|INPUT|createDOMFunc|ignoreAttr|_421|call|_417|_410|_415|nodeName|_414|_413|emitHTML|good|_406|_399|_397|_393|_392|addLoadEvent|addToCallStack|_387|_386|_381|_382|_383|_373|_372|_369|createDOM|_365|Function|_360|_362|_358|_344|nodeWalk|formContents|_337|_338|_334|_332|offsetTop|offsetLeft|visibility|parentElement|||XMLHttpRequestError|BrowserComplianceError|CancelledError|AlreadyCalledError|evalJSONRequest|sendXMLHttpRequest|wait|doSimpleXMLHttpRequest|getXMLHttpRequest|succeed|_312|finishedCount|_308|_cbDeferred|_303|_297|queryString|_nothing|_289|XMLHTTP|ActiveXObject|eval|_284|_check|error|_279|default|rstrip|lstrip|formatLocale|roundToFixed|truncToFixed|_276|pow|_272|_271|_270|sign|_265|_263|tmp|_238|_232|toISODate|toISOTime|getFullYear|getDate|getMonth|_230|_padTwo|_228|useNativeConsole|_212|compareLogMessage|isLogMessage|unshift|_207||maxSize|_202|_199|logLevelAtLeast|console|hasIterateNext|iterateNext|arrayLike|groupby||exhaust|tee|dropwhile|applymap||islice|izip|cycle|count||_189|_188|_183|_185|_184|_186|_187|_182|identity|fetch|_180|_177|listMin|reprNumber|reprArrayLike|compareArrayLike|compareDateLike|isDateLike|findValue|_128|__export__|keyComparator|_124|_118|_93|_94|_90|_88|_84|_77|_68|_67|_66|_65|_60|im_func|_55|im_self|_48|_44|_42|_39|_36|_33|_27|_26|_25|_22|_24|_20|javascript|write|getAttribute||org|www|http|getElementsByTagName|roundClass|_623|_622|_621|_620|_isBottomRounded|_isTopRounded|_borderSize|_618|_617|_616|_615|_marginSize|_611|_setBorder|_607|_setMargin|blendedColor|_598|__unstable__wrapElement|fromParent|_setOptions|2px|borderColor|_593|hidden|overflow|_591|_588|_roundBottomCorners|_585|_roundTopCorners|_584|_583|_582|_580|_renderBorder|_roundCornersImpl|getComputedStyle|_doWrap|_571|_unloadCache|onunload|detachEvent|removeEventListener|_listener|objOrFunc|_552||_551|_549|onload|delete|112|KEY_F|KEY_|MINUS|KEY_SEMICOLON|KEY_DELETE|KEY_INSERT|KEY_ARROW_DOWN|KEY_ARROW_RIGHT|KEY_ARROW_UP||KEY_ARROW_LEFT|KEY_HOME|KEY_END|KEY_PAGE_DOWN|KEY_PAGE_UP|KEY_ENTER|KEY_NUM_PAD_CLEAR|63236|mousemove|contextmenu|click|mouseout|mouseover|_src|yellow|708090|purple|orange|ff00ff|magenta|778899|d3d3d3|808080|gray|696969|2f4f4f|darkred|a9a9a9|00ffff|cyan|brown|_547|_546||||compareRGB|_545||_543|fromHSLString|fromRGBString|round|_533|_hslValue|switch|background|_503|_504||fromName|_488|col|toRGBString|_hexString|_rgbString|_hslString|toPrecision|isLight||_481|_477|_476|_475|_474|_473|_469|_466|closePane|_458|onkeypress|_454|addListener|_455|close|test|scrollHeight|option|word|moz|_431|getElementById|html|pop|200|_|removeElement|showElement|hideElement|CANVAS|STRONG|FIELDSET|LEGEND|OPTGROUP|OPTION|TEXTAREA|LABEL|HR|BR|H3|H2|H1|PRE|TT|BUTTON|IMG|TH||TABLE||TFOOT|THEAD|TBODY|TD|LI|OL|||UL|checked|class|ignoreAttrFilter||_424|_419|nodeValue|scrapeText|_416|_418|sort|_411|toHTML|_404|hasElementClass|_403|_402|_401|swapElementClass|_398|_394|toggleElementClass|_391|focusOnLoad|_newCallStack|currentStyle|_371|replaceChildNodes|_364|_361|getNodeAttribute|_357|setNodeAttribute|_354|_352|_350|_353|toDOM|_346|_345|registerDOMConverter|selectedIndex|setElementPosition|setElementDimensions|tagName|absolute|getBoxObjectFor|getBoundingClientRect|elementPosition|_325|_324|_322|_323|offsetWidth|elementDimensions|clientHeight|innerWidth|getViewportDimensions|setOpacity|status|_317|deferred|_316|_newNamedError|maybeDeferred||gatherResults|callLater|loadJSONDoc|_311|consumeErrors|fireOnOneErrback|fireOnOneCallback|addErrback|_305|_304|_306|unlocked|release|_300|_299|_298|_296|_xhr_onreadystatechange|_xhr_canceller|304|responseText|Msxml2|addBoth|_pause|_continue|result|the|are|they|instances|_unpause|cancel|_280|_278|en_US|strip|percentFormat|twoDigitAverage|numberFormatter|_277|_275|isNaN|_259|_258|_260|_255|_253|_numberFormatter|_241|_239|_237|_236|_235|_234|_233|_231|toAmericanDate|toPaddedAmericanDate|americanDate|toISOTimestamp|isoTimestamp|isoDate|foot|sep||60000|_221|_isoRegexp|dispatchEvent|createEvent|warning|logWarning|fatal|logFatal|debug|logError|baseLog|_210|getMessageText|logToConsole|dispatchListeners|_204|_203|ident|_201|postError|alertListener|_197|_192|groupby_as_array|iextend|some|reversed|sorted|every|sum|_190|eat|_174|_173|_172|_171|_167|_163|_158|_157|_151|_144|_141||_139|_136|_134||_133|_132|zip|merge|isUndefined|isCallable|listMax|_131|_130|encodeURIComponent||_127|method|parseQueryString|evalJSON|registerJSON|serializeJSON|objMin|objMax|reverseKeyComparator|arrayEqual|objEqual|bindMethods|xfilter|xmap|isEmpty|isNull|isUndefinedOrNull|itemgetter|items|keys|setdefault|_126|_120|decodeURIComponent|_119|len|_109|_107|_104|_105|_101|_102|_98|||_100|_97|_96|_91|json|__json__|_82|_81|_80|_79|_76||_75|_74|_73|_69|_primitives|_64|_63||_62|_61|_59|_wrapDumbFunction|_49|_50|_31|_30|_21|_7|application|MochiKit_|createElementNS|namespaceURI|lastIndexOf|xul|there|gatekeeper|keymaster|mozilla|getElementsComputedStyle|_hasSingleTextChild|borderWidth|borderStyle|borderBottomWidth|borderTopWidth|borderTopStyle|fontSize|paddingBottom|insertBefore|paddingTop|marginBottom|marginTop|_575|property|see|handling|thrown|Multiple|element|||given|123|KEY_NUM_PAD_|105|KEY_APOSTROPHE|222|KEY_RIGHT_SQUARE_BRACKET|221|KEY_REVERSE_SOLIDUS|220|KEY_LEFT_SQUARE_BRACKET||219|KEY_GRAVE_ACCENT|192|KEY_SOLIDUS|191|KEY_FULL_STOP|190|KEY_HYPHEN|189||KEY_COMMA|188|KEY_EQUALS_SIGN|187|186|KEY_SCROLL_LOCK|145|KEY_NUM_LOCK|144|KEY_NUM_PAD_SOLIDUS|111|KEY_NUM_PAD_FULL_STOP|110|KEY_NUM_PAD_HYPHEN|109|KEY_NUM_PAD_PLUS_SIGN|107|KEY_NUM_PAD_ASTERISK|106|KEY_SELECT|KEY_WINDOWS_RIGHT|KEY_WINDOWS_LEFT|KEY_PRINT_SCREEN|KEY_SPACEBAR|KEY_ESCAPE|KEY_CAPS_LOCK|KEY_PAUSE|KEY_ALT|KEY_CTRL|KEY_SHIFT|KEY_TAB|KEY_BACKSPACE|63242|63272|63302|63233|63235|63232|63234|63273|63275|63277|63276|63289|returnValue|cancelBubble|keypress|KEY_UNKNOWN|keyup|keydown|shiftKey|metaKey||ctrlKey|altKey|toElement|srcElement|9acd32||yellowgreen||ffff00|f5f5f5|whitesmoke||ffffff|f5deb3|wheat|ee82ee|violet|40e0d0|turquoise|ff6347|tomato|d8bfd8|thistle|008080|teal|d2b48c|tan|4682b4|steelblue|00ff7f|springgreen|fffafa|snow|slategrey|slategray|6a5acd|slateblue|87ceeb|skyblue|c0c0c0|silver|a0522d|sienna|fff5ee|seashell|2e8b57|seagreen|f4a460|sandybrown|fa8072|salmon|8b4513|saddlebrown|4169e1|royalblue|bc8f8f|rosybrown|ff0000|800080|b0e0e6|powderblue|dda0dd|plum|ffc0cb|pink|cd853f||peru|ffdab9|peachpuff|ffefd5|papayawhip|db7093|palevioletred|afeeee|paleturquoise|98fb98|palegreen|eee8aa||palegoldenrod|da70d6|orchid|ff4500|orangered|ffa500|6b8e23|olivedrab|808000|olive|fdf5e6|oldlace|000080|navy|ffdead|navajowhite|ffe4b5|moccasin|ffe4e1|mistyrose|f5fffa|mintcream|191970|midnightblue|c71585|mediumvioletred|48d1cc|mediumturquoise|00fa9a|mediumspringgreen|7b68ee|mediumslateblue|3cb371|mediumseagreen|9370db|mediumpurple|ba55d3|mediumorchid|0000cd|mediumblue|66cdaa|mediumaquamarine|800000|maroon|faf0e6|linen|32cd32|limegreen|00ff00|lime|ffffe0|lightyellow|b0c4de|lightsteelblue|lightslategrey|lightslategray||87cefa|lightskyblue|20b2aa|lightseagreen|ffa07a|lightsalmon|ffb6c1|lightpink|lightgrey|90ee90|lightgreen|lightgray|fafad2|lightgoldenrodyellow|e0ffff|lightcyan|f08080|lightcoral|add8e6|lightblue|fffacd|lemonchiffon|7cfc00|lawngreen|fff0f5|lavenderblush|e6e6fa|lavender|f0e68c|khaki|fffff0|ivory|4b0082|indigo|cd5c5c|indianred|ff69b4|hotpink|f0fff0|honeydew|grey|adff2f|greenyellow|008000|daa520|goldenrod|ffd700||gold|f8f8ff|ghostwhite|dcdcdc|gainsboro|fuchsia|228b22|forestgreen|fffaf0|floralwhite|b22222|firebrick|1e90ff|dodgerblue|dimgrey|dimgray|00bfff|deepskyblue|ff1493|deeppink|9400d3|darkviolet|00ced1|darkturquoise|darkslategrey|darkslategray|483d8b|darkslateblue|8fbc8f|darkseagreen|e9967a|darksalmon|8b0000|9932cc|darkorchid|ff8c00|darkorange|556b2f|darkolivegreen|8b008b|darkmagenta|bdb76b|darkkhaki|darkgrey|006400|darkgreen|darkgray|b8860b|darkgoldenrod|008b8b|darkcyan|00008b|darkblue|dc143c|crimson|fff8dc|cornsilk|6495ed|cornflowerblue|ff7f50|coral|d2691e||chocolate|7fff00|chartreuse|5f9ea0|cadetblue|deb887|burlywood|a52a2a|8a2be2|blueviolet|0000ff|ffebcd||blanchedalmond|000000|ffe4c4|bisque|f5f5dc|beige|f0ffff|azure|7fffd4|aquamarine|aqua|faebd7|antiquewhite|f0f8ff|aliceblue|lightGray|darkGray|namedColors|blackColor|fromText|whiteColor|_510|_509|PI|rad|deg|transparentColor|_494|_493|_492|fromHSV|_491|_490|_489|asHSV|toHexString|rgba|hsla|toHSLString|isDark|lighterColorWithLevel|darkerColorWithLevel|colorWithLightness|colorWithSaturation|colorWithHue|colorWithAlpha||serif|sans|Verdana||8pt|8em|auto||Close|Clear||Load|Filter||10em||fixed|regex|emergency|line|margin|_Listener|dtd|loose|html4|w3|EN|Transitional|DTD|W3C|PUBLIC|DOCTYPE|blocking|due|debugging|able|Not|resizable|dependent|href|location|_MochiKit_LoggingPane|_429|canvas|strong|fieldset|legend|optgroup|select|form|textarea|label|img|table|tfoot|thead|tbody|htmlFor||useMap|usemap|defaultChecked|hasChildNodes|quot|amp|_405|focus|replaceChild|checkbox||radio|_win|BODY||safari|version|userAgent|navigator|innerHeight|alpha|khtml|Tried|acquire|clearTimeout|setTimeout|GET|ignore|send|abort|failed|Request|readyState|support|does|Browser|Microsoft|_288|_287|used|Deferreds|Chained|success|unfired|fr_FR|de_DE|00|abs|search|pattern|Invalid|getTimezoneOffset|getSeconds|getMinutes|getHours|UTC|3600000|initEvent|Events|debuggingBookmarklet|MESSAGES|LAST|_205|clear|ninfo|nlevel|timestamp|reverse|takes|initial|with|sequence|empty|iterable|numbers|dateLike|escape|find|forward|unregister|unescape|Object|compared|item|contains|logor|logand|cle|clt|cge|cgt|cne|ceq|zrshift|rshift|lshift|xor|mul|mod|sub|add|neg|lognot|_9|_2'.split('|'),0,{})
+
+
+/*
+ * jQuery 1.2.1 - New Wave Javascript
+ *
+ * Copyright (c) 2007 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2007-09-16 23:42:06 -0400 (Sun, 16 Sep 2007) $
+ * $Rev: 3353 $
+ */
+
+var decompressedJQuery = function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(G(){9(1m E!="W")H w=E;H E=18.15=G(a,b){I 6 7u E?6.5N(a,b):1u E(a,b)};9(1m $!="W")H D=$;18.$=E;H u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;E.1b=E.3A={5N:G(c,a){c=c||U;9(1m c=="1M"){H m=u.2S(c);9(m&&(m[1]||!a)){9(m[1])c=E.4D([m[1]],a);J{H b=U.3S(m[3]);9(b)9(b.22!=m[3])I E().1Y(c);J{6[0]=b;6.K=1;I 6}J c=[]}}J I 1u E(a).1Y(c)}J 9(E.1n(c))I 1u E(U)[E.1b.2d?"2d":"39"](c);I 6.6v(c.1c==1B&&c||(c.4c||c.K&&c!=18&&!c.1y&&c[0]!=W&&c[0].1y)&&E.2h(c)||[c])},4c:"1.2.1",7Y:G(){I 6.K},K:0,21:G(a){I a==W?E.2h(6):6[a]},2o:G(a){H b=E(a);b.4Y=6;I b},6v:G(a){6.K=0;1B.3A.1a.16(6,a);I 6},N:G(a,b){I E.N(6,a,b)},4I:G(a){H b=-1;6.N(G(i){9(6==a)b=i});I b},1x:G(f,d,e){H c=f;9(f.1c==3X)9(d==W)I 6.K&&E[e||"1x"](6[0],f)||W;J{c={};c[f]=d}I 6.N(G(a){L(H b 1i c)E.1x(e?6.R:6,b,E.1e(6,c[b],e,a,b))})},17:G(b,a){I 6.1x(b,a,"3C")},2g:G(e){9(1m e!="5i"&&e!=S)I 6.4n().3g(U.6F(e));H t="";E.N(e||6,G(){E.N(6.3j,G(){9(6.1y!=8)t+=6.1y!=1?6.6x:E.1b.2g([6])})});I t},5m:G(b){9(6[0])E(b,6[0].3H).6u().3d(6[0]).1X(G(){H a=6;1W(a.1w)a=a.1w;I a}).3g(6);I 6},8m:G(a){I 6.N(G(){E(6).6q().5m(a)})},8d:G(a){I 6.N(G(){E(6).5m(a)})},3g:G(){I 6.3z(1q,Q,1,G(a){6.58(a)})},6j:G(){I 6.3z(1q,Q,-1,G(a){6.3d(a,6.1w)})},6g:G(){I 6.3z(1q,P,1,G(a){6.12.3d(a,6)})},50:G(){I 6.3z(1q,P,-1,G(a){6.12.3d(a,6.2q)})},2D:G(){I 6.4Y||E([])},1Y:G(t){H b=E.1X(6,G(a){I E.1Y(t,a)});I 6.2o(/[^+>] [^+>]/.14(t)||t.1g("..")>-1?E.4V(b):b)},6u:G(e){H f=6.1X(G(){I 6.67?E(6.67)[0]:6.4R(Q)});H d=f.1Y("*").4O().N(G(){9(6[F]!=W)6[F]=S});9(e===Q)6.1Y("*").4O().N(G(i){H c=E.M(6,"2P");L(H a 1i c)L(H b 1i c[a])E.1j.1f(d[i],a,c[a][b],c[a][b].M)});I f},1E:G(t){I 6.2o(E.1n(t)&&E.2W(6,G(b,a){I t.16(b,[a])})||E.3m(t,6))},5V:G(t){I 6.2o(t.1c==3X&&E.3m(t,6,Q)||E.2W(6,G(a){I(t.1c==1B||t.4c)?E.2A(a,t)<0:a!=t}))},1f:G(t){I 6.2o(E.1R(6.21(),t.1c==3X?E(t).21():t.K!=W&&(!t.11||E.11(t,"2Y"))?t:[t]))},3t:G(a){I a?E.3m(a,6).K>0:P},7c:G(a){I 6.3t("."+a)},3i:G(b){9(b==W){9(6.K){H c=6[0];9(E.11(c,"24")){H e=c.4Z,a=[],Y=c.Y,2G=c.O=="24-2G";9(e<0)I S;L(H i=2G?e:0,33=2G?e+1:Y.K;i<33;i++){H d=Y[i];9(d.26){H b=E.V.1h&&!d.9V["1Q"].9L?d.2g:d.1Q;9(2G)I b;a.1a(b)}}I a}J I 6[0].1Q.1p(/\\r/g,"")}}J I 6.N(G(){9(b.1c==1B&&/4k|5j/.14(6.O))6.2Q=(E.2A(6.1Q,b)>=0||E.2A(6.2H,b)>=0);J 9(E.11(6,"24")){H a=b.1c==1B?b:[b];E("9h",6).N(G(){6.26=(E.2A(6.1Q,a)>=0||E.2A(6.2g,a)>=0)});9(!a.K)6.4Z=-1}J 6.1Q=b})},4o:G(a){I a==W?(6.K?6[0].3O:S):6.4n().3g(a)},6H:G(a){I 6.50(a).28()},6E:G(i){I 6.2J(i,i+1)},2J:G(){I 6.2o(1B.3A.2J.16(6,1q))},1X:G(b){I 6.2o(E.1X(6,G(a,i){I b.2O(a,i,a)}))},4O:G(){I 6.1f(6.4Y)},3z:G(f,d,g,e){H c=6.K>1,a;I 6.N(G(){9(!a){a=E.4D(f,6.3H);9(g<0)a.8U()}H b=6;9(d&&E.11(6,"1I")&&E.11(a[0],"4m"))b=6.4l("1K")[0]||6.58(U.5B("1K"));E.N(a,G(){H a=c?6.4R(Q):6;9(!5A(0,a))e.2O(b,a)})})}};G 5A(i,b){H a=E.11(b,"1J");9(a){9(b.3k)E.3G({1d:b.3k,3e:P,1V:"1J"});J E.5f(b.2g||b.6s||b.3O||"");9(b.12)b.12.3b(b)}J 9(b.1y==1)E("1J",b).N(5A);I a}E.1k=E.1b.1k=G(){H c=1q[0]||{},a=1,2c=1q.K,5e=P;9(c.1c==8o){5e=c;c=1q[1]||{}}9(2c==1){c=6;a=0}H b;L(;a<2c;a++)9((b=1q[a])!=S)L(H i 1i b){9(c==b[i])6r;9(5e&&1m b[i]==\'5i\'&&c[i])E.1k(c[i],b[i]);J 9(b[i]!=W)c[i]=b[i]}I c};H F="15"+(1u 3D()).3B(),6p=0,5c={};E.1k({8a:G(a){18.$=D;9(a)18.15=w;I E},1n:G(a){I!!a&&1m a!="1M"&&!a.11&&a.1c!=1B&&/G/i.14(a+"")},4a:G(a){I a.2V&&!a.1G||a.37&&a.3H&&!a.3H.1G},5f:G(a){a=E.36(a);9(a){9(18.6l)18.6l(a);J 9(E.V.1N)18.56(a,0);J 3w.2O(18,a)}},11:G(b,a){I b.11&&b.11.27()==a.27()},1L:{},M:G(c,d,b){c=c==18?5c:c;H a=c[F];9(!a)a=c[F]=++6p;9(d&&!E.1L[a])E.1L[a]={};9(b!=W)E.1L[a][d]=b;I d?E.1L[a][d]:a},30:G(c,b){c=c==18?5c:c;H a=c[F];9(b){9(E.1L[a]){2E E.1L[a][b];b="";L(b 1i E.1L[a])1T;9(!b)E.30(c)}}J{2a{2E c[F]}29(e){9(c.53)c.53(F)}2E E.1L[a]}},N:G(a,b,c){9(c){9(a.K==W)L(H i 1i a)b.16(a[i],c);J L(H i=0,48=a.K;i<48;i++)9(b.16(a[i],c)===P)1T}J{9(a.K==W)L(H i 1i a)b.2O(a[i],i,a[i]);J L(H i=0,48=a.K,3i=a[0];i<48&&b.2O(3i,i,3i)!==P;3i=a[++i]){}}I a},1e:G(c,b,d,e,a){9(E.1n(b))b=b.2O(c,[e]);H f=/z-?4I|7T-?7Q|1r|69|7P-?1H/i;I b&&b.1c==4W&&d=="3C"&&!f.14(a)?b+"2T":b},1o:{1f:G(b,c){E.N((c||"").2l(/\\s+/),G(i,a){9(!E.1o.3K(b.1o,a))b.1o+=(b.1o?" ":"")+a})},28:G(b,c){b.1o=c!=W?E.2W(b.1o.2l(/\\s+/),G(a){I!E.1o.3K(c,a)}).66(" "):""},3K:G(t,c){I E.2A(c,(t.1o||t).3s().2l(/\\s+/))>-1}},2k:G(e,o,f){L(H i 1i o){e.R["3r"+i]=e.R[i];e.R[i]=o[i]}f.16(e,[]);L(H i 1i o)e.R[i]=e.R["3r"+i]},17:G(e,p){9(p=="1H"||p=="2N"){H b={},42,41,d=["7J","7I","7G","7F"];E.N(d,G(){b["7C"+6]=0;b["7B"+6+"5Z"]=0});E.2k(e,b,G(){9(E(e).3t(\':3R\')){42=e.7A;41=e.7w}J{e=E(e.4R(Q)).1Y(":4k").5W("2Q").2D().17({4C:"1P",2X:"4F",19:"2Z",7o:"0",1S:"0"}).5R(e.12)[0];H a=E.17(e.12,"2X")||"3V";9(a=="3V")e.12.R.2X="7g";42=e.7e;41=e.7b;9(a=="3V")e.12.R.2X="3V";e.12.3b(e)}});I p=="1H"?42:41}I E.3C(e,p)},3C:G(h,j,i){H g,2w=[],2k=[];G 3n(a){9(!E.V.1N)I P;H b=U.3o.3Z(a,S);I!b||b.4y("3n")==""}9(j=="1r"&&E.V.1h){g=E.1x(h.R,"1r");I g==""?"1":g}9(j.1t(/4u/i))j=y;9(!i&&h.R[j])g=h.R[j];J 9(U.3o&&U.3o.3Z){9(j.1t(/4u/i))j="4u";j=j.1p(/([A-Z])/g,"-$1").2p();H d=U.3o.3Z(h,S);9(d&&!3n(h))g=d.4y(j);J{L(H a=h;a&&3n(a);a=a.12)2w.4w(a);L(a=0;a<2w.K;a++)9(3n(2w[a])){2k[a]=2w[a].R.19;2w[a].R.19="2Z"}g=j=="19"&&2k[2w.K-1]!=S?"2s":U.3o.3Z(h,S).4y(j)||"";L(a=0;a<2k.K;a++)9(2k[a]!=S)2w[a].R.19=2k[a]}9(j=="1r"&&g=="")g="1"}J 9(h.3Q){H f=j.1p(/\\-(\\w)/g,G(m,c){I c.27()});g=h.3Q[j]||h.3Q[f];9(!/^\\d+(2T)?$/i.14(g)&&/^\\d/.14(g)){H k=h.R.1S;H e=h.4v.1S;h.4v.1S=h.3Q.1S;h.R.1S=g||0;g=h.R.71+"2T";h.R.1S=k;h.4v.1S=e}}I g},4D:G(a,e){H r=[];e=e||U;E.N(a,G(i,d){9(!d)I;9(d.1c==4W)d=d.3s();9(1m d=="1M"){d=d.1p(/(<(\\w+)[^>]*?)\\/>/g,G(m,a,b){I b.1t(/^(70|6Z|6Y|9Q|4t|9N|9K|3a|9G|9E)$/i)?m:a+"></"+b+">"});H s=E.36(d).2p(),1s=e.5B("1s"),2x=[];H c=!s.1g("<9y")&&[1,"<24>","</24>"]||!s.1g("<9w")&&[1,"<6T>","</6T>"]||s.1t(/^<(9u|1K|9t|9r|9p)/)&&[1,"<1I>","</1I>"]||!s.1g("<4m")&&[2,"<1I><1K>","</1K></1I>"]||(!s.1g("<9m")||!s.1g("<9k"))&&[3,"<1I><1K><4m>","</4m></1K></1I>"]||!s.1g("<6Y")&&[2,"<1I><1K></1K><6L>","</6L></1I>"]||E.V.1h&&[1,"1s<1s>","</1s>"]||[0,"",""];1s.3O=c[1]+d+c[2];1W(c[0]--)1s=1s.5p;9(E.V.1h){9(!s.1g("<1I")&&s.1g("<1K")<0)2x=1s.1w&&1s.1w.3j;J 9(c[1]=="<1I>"&&s.1g("<1K")<0)2x=1s.3j;L(H n=2x.K-1;n>=0;--n)9(E.11(2x[n],"1K")&&!2x[n].3j.K)2x[n].12.3b(2x[n]);9(/^\\s/.14(d))1s.3d(e.6F(d.1t(/^\\s*/)[0]),1s.1w)}d=E.2h(1s.3j)}9(0===d.K&&(!E.11(d,"2Y")&&!E.11(d,"24")))I;9(d[0]==W||E.11(d,"2Y")||d.Y)r.1a(d);J r=E.1R(r,d)});I r},1x:G(c,d,a){H e=E.4a(c)?{}:E.5o;9(d=="26"&&E.V.1N)c.12.4Z;9(e[d]){9(a!=W)c[e[d]]=a;I c[e[d]]}J 9(E.V.1h&&d=="R")I E.1x(c.R,"9e",a);J 9(a==W&&E.V.1h&&E.11(c,"2Y")&&(d=="9d"||d=="9a"))I c.97(d).6x;J 9(c.37){9(a!=W){9(d=="O"&&E.11(c,"4t")&&c.12)6G"O 94 93\'t 92 91";c.90(d,a)}9(E.V.1h&&/6C|3k/.14(d)&&!E.4a(c))I c.4p(d,2);I c.4p(d)}J{9(d=="1r"&&E.V.1h){9(a!=W){c.69=1;c.1E=(c.1E||"").1p(/6O\\([^)]*\\)/,"")+(3I(a).3s()=="8S"?"":"6O(1r="+a*6A+")")}I c.1E?(3I(c.1E.1t(/1r=([^)]*)/)[1])/6A).3s():""}d=d.1p(/-([a-z])/8Q,G(z,b){I b.27()});9(a!=W)c[d]=a;I c[d]}},36:G(t){I(t||"").1p(/^\\s+|\\s+$/g,"")},2h:G(a){H r=[];9(1m a!="8P")L(H i=0,2c=a.K;i<2c;i++)r.1a(a[i]);J r=a.2J(0);I r},2A:G(b,a){L(H i=0,2c=a.K;i<2c;i++)9(a[i]==b)I i;I-1},1R:G(a,b){9(E.V.1h){L(H i=0;b[i];i++)9(b[i].1y!=8)a.1a(b[i])}J L(H i=0;b[i];i++)a.1a(b[i]);I a},4V:G(b){H r=[],2f={};2a{L(H i=0,6y=b.K;i<6y;i++){H a=E.M(b[i]);9(!2f[a]){2f[a]=Q;r.1a(b[i])}}}29(e){r=b}I r},2W:G(b,a,c){9(1m a=="1M")a=3w("P||G(a,i){I "+a+"}");H d=[];L(H i=0,4g=b.K;i<4g;i++)9(!c&&a(b[i],i)||c&&!a(b[i],i))d.1a(b[i]);I d},1X:G(c,b){9(1m b=="1M")b=3w("P||G(a){I "+b+"}");H d=[];L(H i=0,4g=c.K;i<4g;i++){H a=b(c[i],i);9(a!==S&&a!=W){9(a.1c!=1B)a=[a];d=d.8M(a)}}I d}});H v=8K.8I.2p();E.V={4s:(v.1t(/.+(?:8F|8E|8C|8B)[\\/: ]([\\d.]+)/)||[])[1],1N:/6w/.14(v),34:/34/.14(v),1h:/1h/.14(v)&&!/34/.14(v),35:/35/.14(v)&&!/(8z|6w)/.14(v)};H y=E.V.1h?"4h":"5h";E.1k({5g:!E.V.1h||U.8y=="8x",4h:E.V.1h?"4h":"5h",5o:{"L":"8w","8v":"1o","4u":y,5h:y,4h:y,3O:"3O",1o:"1o",1Q:"1Q",3c:"3c",2Q:"2Q",8u:"8t",26:"26",8s:"8r"}});E.N({1D:"a.12",8q:"15.4e(a,\'12\')",8p:"15.2I(a,2,\'2q\')",8n:"15.2I(a,2,\'4d\')",8l:"15.4e(a,\'2q\')",8k:"15.4e(a,\'4d\')",8j:"15.5d(a.12.1w,a)",8i:"15.5d(a.1w)",6q:"15.11(a,\'8h\')?a.8f||a.8e.U:15.2h(a.3j)"},G(i,n){E.1b[i]=G(a){H b=E.1X(6,n);9(a&&1m a=="1M")b=E.3m(a,b);I 6.2o(E.4V(b))}});E.N({5R:"3g",8c:"6j",3d:"6g",8b:"50",89:"6H"},G(i,n){E.1b[i]=G(){H a=1q;I 6.N(G(){L(H j=0,2c=a.K;j<2c;j++)E(a[j])[n](6)})}});E.N({5W:G(a){E.1x(6,a,"");6.53(a)},88:G(c){E.1o.1f(6,c)},87:G(c){E.1o.28(6,c)},86:G(c){E.1o[E.1o.3K(6,c)?"28":"1f"](6,c)},28:G(a){9(!a||E.1E(a,[6]).r.K){E.30(6);6.12.3b(6)}},4n:G(){E("*",6).N(G(){E.30(6)});1W(6.1w)6.3b(6.1w)}},G(i,n){E.1b[i]=G(){I 6.N(n,1q)}});E.N(["85","5Z"],G(i,a){H n=a.2p();E.1b[n]=G(h){I 6[0]==18?E.V.1N&&3y["84"+a]||E.5g&&38.33(U.2V["5a"+a],U.1G["5a"+a])||U.1G["5a"+a]:6[0]==U?38.33(U.1G["6n"+a],U.1G["6m"+a]):h==W?(6.K?E.17(6[0],n):S):6.17(n,h.1c==3X?h:h+"2T")}});H C=E.V.1N&&3x(E.V.4s)<83?"(?:[\\\\w*57-]|\\\\\\\\.)":"(?:[\\\\w\\82-\\81*57-]|\\\\\\\\.)",6k=1u 47("^>\\\\s*("+C+"+)"),6i=1u 47("^("+C+"+)(#)("+C+"+)"),6h=1u 47("^([#.]?)("+C+"*)");E.1k({55:{"":"m[2]==\'*\'||15.11(a,m[2])","#":"a.4p(\'22\')==m[2]",":":{80:"i<m[3]-0",7Z:"i>m[3]-0",2I:"m[3]-0==i",6E:"m[3]-0==i",3v:"i==0",3u:"i==r.K-1",6f:"i%2==0",6e:"i%2","3v-46":"a.12.4l(\'*\')[0]==a","3u-46":"15.2I(a.12.5p,1,\'4d\')==a","7X-46":"!15.2I(a.12.5p,2,\'4d\')",1D:"a.1w",4n:"!a.1w",7W:"(a.6s||a.7V||15(a).2g()||\'\').1g(m[3])>=0",3R:\'"1P"!=a.O&&15.17(a,"19")!="2s"&&15.17(a,"4C")!="1P"\',1P:\'"1P"==a.O||15.17(a,"19")=="2s"||15.17(a,"4C")=="1P"\',7U:"!a.3c",3c:"a.3c",2Q:"a.2Q",26:"a.26||15.1x(a,\'26\')",2g:"\'2g\'==a.O",4k:"\'4k\'==a.O",5j:"\'5j\'==a.O",54:"\'54\'==a.O",52:"\'52\'==a.O",51:"\'51\'==a.O",6d:"\'6d\'==a.O",6c:"\'6c\'==a.O",2r:\'"2r"==a.O||15.11(a,"2r")\',4t:"/4t|24|6b|2r/i.14(a.11)",3K:"15.1Y(m[3],a).K",7S:"/h\\\\d/i.14(a.11)",7R:"15.2W(15.32,G(1b){I a==1b.T;}).K"}},6a:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1u 47("^([:.#]*)("+C+"+)")],3m:G(a,c,b){H d,2b=[];1W(a&&a!=d){d=a;H f=E.1E(a,c,b);a=f.t.1p(/^\\s*,\\s*/,"");2b=b?c=f.r:E.1R(2b,f.r)}I 2b},1Y:G(t,o){9(1m t!="1M")I[t];9(o&&!o.1y)o=S;o=o||U;H d=[o],2f=[],3u;1W(t&&3u!=t){H r=[];3u=t;t=E.36(t);H l=P;H g=6k;H m=g.2S(t);9(m){H p=m[1].27();L(H i=0;d[i];i++)L(H c=d[i].1w;c;c=c.2q)9(c.1y==1&&(p=="*"||c.11.27()==p.27()))r.1a(c);d=r;t=t.1p(g,"");9(t.1g(" ")==0)6r;l=Q}J{g=/^([>+~])\\s*(\\w*)/i;9((m=g.2S(t))!=S){r=[];H p=m[2],1R={};m=m[1];L(H j=0,31=d.K;j<31;j++){H n=m=="~"||m=="+"?d[j].2q:d[j].1w;L(;n;n=n.2q)9(n.1y==1){H h=E.M(n);9(m=="~"&&1R[h])1T;9(!p||n.11.27()==p.27()){9(m=="~")1R[h]=Q;r.1a(n)}9(m=="+")1T}}d=r;t=E.36(t.1p(g,""));l=Q}}9(t&&!l){9(!t.1g(",")){9(o==d[0])d.44();2f=E.1R(2f,d);r=d=[o];t=" "+t.68(1,t.K)}J{H k=6i;H m=k.2S(t);9(m){m=[0,m[2],m[3],m[1]]}J{k=6h;m=k.2S(t)}m[2]=m[2].1p(/\\\\/g,"");H f=d[d.K-1];9(m[1]=="#"&&f&&f.3S&&!E.4a(f)){H q=f.3S(m[2]);9((E.V.1h||E.V.34)&&q&&1m q.22=="1M"&&q.22!=m[2])q=E(\'[@22="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.11(q,m[3]))?[q]:[]}J{L(H i=0;d[i];i++){H a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];9(a=="*"&&d[i].11.2p()=="5i")a="3a";r=E.1R(r,d[i].4l(a))}9(m[1]==".")r=E.4X(r,m[2]);9(m[1]=="#"){H e=[];L(H i=0;r[i];i++)9(r[i].4p("22")==m[2]){e=[r[i]];1T}r=e}d=r}t=t.1p(k,"")}}9(t){H b=E.1E(t,r);d=r=b.r;t=E.36(b.t)}}9(t)d=[];9(d&&o==d[0])d.44();2f=E.1R(2f,d);I 2f},4X:G(r,m,a){m=" "+m+" ";H c=[];L(H i=0;r[i];i++){H b=(" "+r[i].1o+" ").1g(m)>=0;9(!a&&b||a&&!b)c.1a(r[i])}I c},1E:G(t,r,h){H d;1W(t&&t!=d){d=t;H p=E.6a,m;L(H i=0;p[i];i++){m=p[i].2S(t);9(m){t=t.7O(m[0].K);m[2]=m[2].1p(/\\\\/g,"");1T}}9(!m)1T;9(m[1]==":"&&m[2]=="5V")r=E.1E(m[3],r,Q).r;J 9(m[1]==".")r=E.4X(r,m[2],h);J 9(m[1]=="["){H g=[],O=m[3];L(H i=0,31=r.K;i<31;i++){H a=r[i],z=a[E.5o[m[2]]||m[2]];9(z==S||/6C|3k|26/.14(m[2]))z=E.1x(a,m[2])||\'\';9((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1g(m[5])||O=="$="&&z.68(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1g(m[5])>=0)^h)g.1a(a)}r=g}J 9(m[1]==":"&&m[2]=="2I-46"){H e={},g=[],14=/(\\d*)n\\+?(\\d*)/.2S(m[3]=="6f"&&"2n"||m[3]=="6e"&&"2n+1"||!/\\D/.14(m[3])&&"n+"+m[3]||m[3]),3v=(14[1]||1)-0,d=14[2]-0;L(H i=0,31=r.K;i<31;i++){H j=r[i],12=j.12,22=E.M(12);9(!e[22]){H c=1;L(H n=12.1w;n;n=n.2q)9(n.1y==1)n.4U=c++;e[22]=Q}H b=P;9(3v==1){9(d==0||j.4U==d)b=Q}J 9((j.4U+d)%3v==0)b=Q;9(b^h)g.1a(j)}r=g}J{H f=E.55[m[1]];9(1m f!="1M")f=E.55[m[1]][m[2]];f=3w("P||G(a,i){I "+f+"}");r=E.2W(r,f,h)}}I{r:r,t:t}},4e:G(b,c){H d=[];H a=b[c];1W(a&&a!=U){9(a.1y==1)d.1a(a);a=a[c]}I d},2I:G(a,e,c,b){e=e||1;H d=0;L(;a;a=a[c])9(a.1y==1&&++d==e)1T;I a},5d:G(n,a){H r=[];L(;n;n=n.2q){9(n.1y==1&&(!a||n!=a))r.1a(n)}I r}});E.1j={1f:G(g,e,c,h){9(E.V.1h&&g.4j!=W)g=18;9(!c.2u)c.2u=6.2u++;9(h!=W){H d=c;c=G(){I d.16(6,1q)};c.M=h;c.2u=d.2u}H i=e.2l(".");e=i[0];c.O=i[1];H b=E.M(g,"2P")||E.M(g,"2P",{});H f=E.M(g,"2t",G(){H a;9(1m E=="W"||E.1j.4T)I a;a=E.1j.2t.16(g,1q);I a});H j=b[e];9(!j){j=b[e]={};9(g.4S)g.4S(e,f,P);J g.7N("43"+e,f)}j[c.2u]=c;6.1Z[e]=Q},2u:1,1Z:{},28:G(d,c,b){H e=E.M(d,"2P"),2L,4I;9(1m c=="1M"){H a=c.2l(".");c=a[0]}9(e){9(c&&c.O){b=c.4Q;c=c.O}9(!c){L(c 1i e)6.28(d,c)}J 9(e[c]){9(b)2E e[c][b.2u];J L(b 1i e[c])9(!a[1]||e[c][b].O==a[1])2E e[c][b];L(2L 1i e[c])1T;9(!2L){9(d.4P)d.4P(c,E.M(d,"2t"),P);J d.7M("43"+c,E.M(d,"2t"));2L=S;2E e[c]}}L(2L 1i e)1T;9(!2L){E.30(d,"2P");E.30(d,"2t")}}},1F:G(d,b,e,c,f){b=E.2h(b||[]);9(!e){9(6.1Z[d])E("*").1f([18,U]).1F(d,b)}J{H a,2L,1b=E.1n(e[d]||S),4N=!b[0]||!b[0].2M;9(4N)b.4w(6.4M({O:d,2m:e}));b[0].O=d;9(E.1n(E.M(e,"2t")))a=E.M(e,"2t").16(e,b);9(!1b&&e["43"+d]&&e["43"+d].16(e,b)===P)a=P;9(4N)b.44();9(f&&f.16(e,b)===P)a=P;9(1b&&c!==P&&a!==P&&!(E.11(e,\'a\')&&d=="4L")){6.4T=Q;e[d]()}6.4T=P}I a},2t:G(d){H a;d=E.1j.4M(d||18.1j||{});H b=d.O.2l(".");d.O=b[0];H c=E.M(6,"2P")&&E.M(6,"2P")[d.O],3q=1B.3A.2J.2O(1q,1);3q.4w(d);L(H j 1i c){3q[0].4Q=c[j];3q[0].M=c[j].M;9(!b[1]||c[j].O==b[1]){H e=c[j].16(6,3q);9(a!==P)a=e;9(e===P){d.2M();d.3p()}}}9(E.V.1h)d.2m=d.2M=d.3p=d.4Q=d.M=S;I a},4M:G(c){H a=c;c=E.1k({},a);c.2M=G(){9(a.2M)a.2M();a.7L=P};c.3p=G(){9(a.3p)a.3p();a.7K=Q};9(!c.2m&&c.65)c.2m=c.65;9(E.V.1N&&c.2m.1y==3)c.2m=a.2m.12;9(!c.4K&&c.4J)c.4K=c.4J==c.2m?c.7H:c.4J;9(c.64==S&&c.63!=S){H e=U.2V,b=U.1G;c.64=c.63+(e&&e.2R||b.2R||0);c.7E=c.7D+(e&&e.2B||b.2B||0)}9(!c.3Y&&(c.61||c.60))c.3Y=c.61||c.60;9(!c.5F&&c.5D)c.5F=c.5D;9(!c.3Y&&c.2r)c.3Y=(c.2r&1?1:(c.2r&2?3:(c.2r&4?2:0)));I c}};E.1b.1k({3W:G(c,a,b){I c=="5Y"?6.2G(c,a,b):6.N(G(){E.1j.1f(6,c,b||a,b&&a)})},2G:G(d,b,c){I 6.N(G(){E.1j.1f(6,d,G(a){E(6).5X(a);I(c||b).16(6,1q)},c&&b)})},5X:G(a,b){I 6.N(G(){E.1j.28(6,a,b)})},1F:G(c,a,b){I 6.N(G(){E.1j.1F(c,a,6,Q,b)})},7x:G(c,a,b){9(6[0])I E.1j.1F(c,a,6[0],P,b)},25:G(){H a=1q;I 6.4L(G(e){6.4H=0==6.4H?1:0;e.2M();I a[6.4H].16(6,[e])||P})},7v:G(f,g){G 4G(e){H p=e.4K;1W(p&&p!=6)2a{p=p.12}29(e){p=6};9(p==6)I P;I(e.O=="4x"?f:g).16(6,[e])}I 6.4x(4G).5U(4G)},2d:G(f){5T();9(E.3T)f.16(U,[E]);J E.3l.1a(G(){I f.16(6,[E])});I 6}});E.1k({3T:P,3l:[],2d:G(){9(!E.3T){E.3T=Q;9(E.3l){E.N(E.3l,G(){6.16(U)});E.3l=S}9(E.V.35||E.V.34)U.4P("5S",E.2d,P);9(!18.7t.K)E(18).39(G(){E("#4E").28()})}}});E.N(("7s,7r,39,7q,6n,5Y,4L,7p,"+"7n,7m,7l,4x,5U,7k,24,"+"51,7j,7i,7h,3U").2l(","),G(i,o){E.1b[o]=G(f){I f?6.3W(o,f):6.1F(o)}});H x=P;G 5T(){9(x)I;x=Q;9(E.V.35||E.V.34)U.4S("5S",E.2d,P);J 9(E.V.1h){U.7f("<7d"+"7y 22=4E 7z=Q "+"3k=//:><\\/1J>");H a=U.3S("4E");9(a)a.62=G(){9(6.2C!="1l")I;E.2d()};a=S}J 9(E.V.1N)E.4B=4j(G(){9(U.2C=="5Q"||U.2C=="1l"){4A(E.4B);E.4B=S;E.2d()}},10);E.1j.1f(18,"39",E.2d)}E.1b.1k({39:G(g,d,c){9(E.1n(g))I 6.3W("39",g);H e=g.1g(" ");9(e>=0){H i=g.2J(e,g.K);g=g.2J(0,e)}c=c||G(){};H f="4z";9(d)9(E.1n(d)){c=d;d=S}J{d=E.3a(d);f="5P"}H h=6;E.3G({1d:g,O:f,M:d,1l:G(a,b){9(b=="1C"||b=="5O")h.4o(i?E("<1s/>").3g(a.40.1p(/<1J(.|\\s)*?\\/1J>/g,"")).1Y(i):a.40);56(G(){h.N(c,[a.40,b,a])},13)}});I 6},7a:G(){I E.3a(6.5M())},5M:G(){I 6.1X(G(){I E.11(6,"2Y")?E.2h(6.79):6}).1E(G(){I 6.2H&&!6.3c&&(6.2Q||/24|6b/i.14(6.11)||/2g|1P|52/i.14(6.O))}).1X(G(i,c){H b=E(6).3i();I b==S?S:b.1c==1B?E.1X(b,G(a,i){I{2H:c.2H,1Q:a}}):{2H:c.2H,1Q:b}}).21()}});E.N("5L,5K,6t,5J,5I,5H".2l(","),G(i,o){E.1b[o]=G(f){I 6.3W(o,f)}});H B=(1u 3D).3B();E.1k({21:G(d,b,a,c){9(E.1n(b)){a=b;b=S}I E.3G({O:"4z",1d:d,M:b,1C:a,1V:c})},78:G(b,a){I E.21(b,S,a,"1J")},77:G(c,b,a){I E.21(c,b,a,"45")},76:G(d,b,a,c){9(E.1n(b)){a=b;b={}}I E.3G({O:"5P",1d:d,M:b,1C:a,1V:c})},75:G(a){E.1k(E.59,a)},59:{1Z:Q,O:"4z",2z:0,5G:"74/x-73-2Y-72",6o:Q,3e:Q,M:S},49:{},3G:G(s){H f,2y=/=(\\?|%3F)/g,1v,M;s=E.1k(Q,s,E.1k(Q,{},E.59,s));9(s.M&&s.6o&&1m s.M!="1M")s.M=E.3a(s.M);9(s.1V=="4b"){9(s.O.2p()=="21"){9(!s.1d.1t(2y))s.1d+=(s.1d.1t(/\\?/)?"&":"?")+(s.4b||"5E")+"=?"}J 9(!s.M||!s.M.1t(2y))s.M=(s.M?s.M+"&":"")+(s.4b||"5E")+"=?";s.1V="45"}9(s.1V=="45"&&(s.M&&s.M.1t(2y)||s.1d.1t(2y))){f="4b"+B++;9(s.M)s.M=s.M.1p(2y,"="+f);s.1d=s.1d.1p(2y,"="+f);s.1V="1J";18[f]=G(a){M=a;1C();1l();18[f]=W;2a{2E 18[f]}29(e){}}}9(s.1V=="1J"&&s.1L==S)s.1L=P;9(s.1L===P&&s.O.2p()=="21")s.1d+=(s.1d.1t(/\\?/)?"&":"?")+"57="+(1u 3D()).3B();9(s.M&&s.O.2p()=="21"){s.1d+=(s.1d.1t(/\\?/)?"&":"?")+s.M;s.M=S}9(s.1Z&&!E.5b++)E.1j.1F("5L");9(!s.1d.1g("8g")&&s.1V=="1J"){H h=U.4l("9U")[0];H g=U.5B("1J");g.3k=s.1d;9(!f&&(s.1C||s.1l)){H j=P;g.9R=g.62=G(){9(!j&&(!6.2C||6.2C=="5Q"||6.2C=="1l")){j=Q;1C();1l();h.3b(g)}}}h.58(g);I}H k=P;H i=18.6X?1u 6X("9P.9O"):1u 6W();i.9M(s.O,s.1d,s.3e);9(s.M)i.5C("9J-9I",s.5G);9(s.5y)i.5C("9H-5x-9F",E.49[s.1d]||"9D, 9C 9B 9A 5v:5v:5v 9z");i.5C("X-9x-9v","6W");9(s.6U)s.6U(i);9(s.1Z)E.1j.1F("5H",[i,s]);H c=G(a){9(!k&&i&&(i.2C==4||a=="2z")){k=Q;9(d){4A(d);d=S}1v=a=="2z"&&"2z"||!E.6S(i)&&"3U"||s.5y&&E.6R(i,s.1d)&&"5O"||"1C";9(1v=="1C"){2a{M=E.6Q(i,s.1V)}29(e){1v="5k"}}9(1v=="1C"){H b;2a{b=i.5s("6P-5x")}29(e){}9(s.5y&&b)E.49[s.1d]=b;9(!f)1C()}J E.5r(s,i,1v);1l();9(s.3e)i=S}};9(s.3e){H d=4j(c,13);9(s.2z>0)56(G(){9(i){i.9q();9(!k)c("2z")}},s.2z)}2a{i.9o(s.M)}29(e){E.5r(s,i,S,e)}9(!s.3e)c();I i;G 1C(){9(s.1C)s.1C(M,1v);9(s.1Z)E.1j.1F("5I",[i,s])}G 1l(){9(s.1l)s.1l(i,1v);9(s.1Z)E.1j.1F("6t",[i,s]);9(s.1Z&&!--E.5b)E.1j.1F("5K")}},5r:G(s,a,b,e){9(s.3U)s.3U(a,b,e);9(s.1Z)E.1j.1F("5J",[a,s,e])},5b:0,6S:G(r){2a{I!r.1v&&9n.9l=="54:"||(r.1v>=6N&&r.1v<9j)||r.1v==6M||E.V.1N&&r.1v==W}29(e){}I P},6R:G(a,c){2a{H b=a.5s("6P-5x");I a.1v==6M||b==E.49[c]||E.V.1N&&a.1v==W}29(e){}I P},6Q:G(r,b){H c=r.5s("9i-O");H d=b=="6K"||!b&&c&&c.1g("6K")>=0;H a=d?r.9g:r.40;9(d&&a.2V.37=="5k")6G"5k";9(b=="1J")E.5f(a);9(b=="45")a=3w("("+a+")");I a},3a:G(a){H s=[];9(a.1c==1B||a.4c)E.N(a,G(){s.1a(3f(6.2H)+"="+3f(6.1Q))});J L(H j 1i a)9(a[j]&&a[j].1c==1B)E.N(a[j],G(){s.1a(3f(j)+"="+3f(6))});J s.1a(3f(j)+"="+3f(a[j]));I s.66("&").1p(/%20/g,"+")}});E.1b.1k({1A:G(b,a){I b?6.1U({1H:"1A",2N:"1A",1r:"1A"},b,a):6.1E(":1P").N(G(){6.R.19=6.3h?6.3h:"";9(E.17(6,"19")=="2s")6.R.19="2Z"}).2D()},1z:G(b,a){I b?6.1U({1H:"1z",2N:"1z",1r:"1z"},b,a):6.1E(":3R").N(G(){6.3h=6.3h||E.17(6,"19");9(6.3h=="2s")6.3h="2Z";6.R.19="2s"}).2D()},6J:E.1b.25,25:G(a,b){I E.1n(a)&&E.1n(b)?6.6J(a,b):a?6.1U({1H:"25",2N:"25",1r:"25"},a,b):6.N(G(){E(6)[E(6).3t(":1P")?"1A":"1z"]()})},9c:G(b,a){I 6.1U({1H:"1A"},b,a)},9b:G(b,a){I 6.1U({1H:"1z"},b,a)},99:G(b,a){I 6.1U({1H:"25"},b,a)},98:G(b,a){I 6.1U({1r:"1A"},b,a)},96:G(b,a){I 6.1U({1r:"1z"},b,a)},95:G(c,a,b){I 6.1U({1r:a},c,b)},1U:G(k,i,h,g){H j=E.6D(i,h,g);I 6[j.3L===P?"N":"3L"](G(){j=E.1k({},j);H f=E(6).3t(":1P"),3y=6;L(H p 1i k){9(k[p]=="1z"&&f||k[p]=="1A"&&!f)I E.1n(j.1l)&&j.1l.16(6);9(p=="1H"||p=="2N"){j.19=E.17(6,"19");j.2U=6.R.2U}}9(j.2U!=S)6.R.2U="1P";j.3M=E.1k({},k);E.N(k,G(c,a){H e=1u E.2j(3y,j,c);9(/25|1A|1z/.14(a))e[a=="25"?f?"1A":"1z":a](k);J{H b=a.3s().1t(/^([+-]=)?([\\d+-.]+)(.*)$/),1O=e.2b(Q)||0;9(b){H d=3I(b[2]),2i=b[3]||"2T";9(2i!="2T"){3y.R[c]=(d||1)+2i;1O=((d||1)/e.2b(Q))*1O;3y.R[c]=1O+2i}9(b[1])d=((b[1]=="-="?-1:1)*d)+1O;e.3N(1O,d,2i)}J e.3N(1O,a,"")}});I Q})},3L:G(a,b){9(E.1n(a)){b=a;a="2j"}9(!a||(1m a=="1M"&&!b))I A(6[0],a);I 6.N(G(){9(b.1c==1B)A(6,a,b);J{A(6,a).1a(b);9(A(6,a).K==1)b.16(6)}})},9f:G(){H a=E.32;I 6.N(G(){L(H i=0;i<a.K;i++)9(a[i].T==6)a.6I(i--,1)}).5n()}});H A=G(b,c,a){9(!b)I;H q=E.M(b,c+"3L");9(!q||a)q=E.M(b,c+"3L",a?E.2h(a):[]);I q};E.1b.5n=G(a){a=a||"2j";I 6.N(G(){H q=A(6,a);q.44();9(q.K)q[0].16(6)})};E.1k({6D:G(b,a,c){H d=b&&b.1c==8Z?b:{1l:c||!c&&a||E.1n(b)&&b,2e:b,3J:c&&a||a&&a.1c!=8Y&&a};d.2e=(d.2e&&d.2e.1c==4W?d.2e:{8X:8W,8V:6N}[d.2e])||8T;d.3r=d.1l;d.1l=G(){E(6).5n();9(E.1n(d.3r))d.3r.16(6)};I d},3J:{6B:G(p,n,b,a){I b+a*p},5q:G(p,n,b,a){I((-38.9s(p*38.8R)/2)+0.5)*a+b}},32:[],2j:G(b,c,a){6.Y=c;6.T=b;6.1e=a;9(!c.3P)c.3P={}}});E.2j.3A={4r:G(){9(6.Y.2F)6.Y.2F.16(6.T,[6.2v,6]);(E.2j.2F[6.1e]||E.2j.2F.6z)(6);9(6.1e=="1H"||6.1e=="2N")6.T.R.19="2Z"},2b:G(a){9(6.T[6.1e]!=S&&6.T.R[6.1e]==S)I 6.T[6.1e];H r=3I(E.3C(6.T,6.1e,a));I r&&r>-8O?r:3I(E.17(6.T,6.1e))||0},3N:G(c,b,e){6.5u=(1u 3D()).3B();6.1O=c;6.2D=b;6.2i=e||6.2i||"2T";6.2v=6.1O;6.4q=6.4i=0;6.4r();H f=6;G t(){I f.2F()}t.T=6.T;E.32.1a(t);9(E.32.K==1){H d=4j(G(){H a=E.32;L(H i=0;i<a.K;i++)9(!a[i]())a.6I(i--,1);9(!a.K)4A(d)},13)}},1A:G(){6.Y.3P[6.1e]=E.1x(6.T.R,6.1e);6.Y.1A=Q;6.3N(0,6.2b());9(6.1e=="2N"||6.1e=="1H")6.T.R[6.1e]="8N";E(6.T).1A()},1z:G(){6.Y.3P[6.1e]=E.1x(6.T.R,6.1e);6.Y.1z=Q;6.3N(6.2b(),0)},2F:G(){H t=(1u 3D()).3B();9(t>6.Y.2e+6.5u){6.2v=6.2D;6.4q=6.4i=1;6.4r();6.Y.3M[6.1e]=Q;H a=Q;L(H i 1i 6.Y.3M)9(6.Y.3M[i]!==Q)a=P;9(a){9(6.Y.19!=S){6.T.R.2U=6.Y.2U;6.T.R.19=6.Y.19;9(E.17(6.T,"19")=="2s")6.T.R.19="2Z"}9(6.Y.1z)6.T.R.19="2s";9(6.Y.1z||6.Y.1A)L(H p 1i 6.Y.3M)E.1x(6.T.R,p,6.Y.3P[p])}9(a&&E.1n(6.Y.1l))6.Y.1l.16(6.T);I P}J{H n=t-6.5u;6.4i=n/6.Y.2e;6.4q=E.3J[6.Y.3J||(E.3J.5q?"5q":"6B")](6.4i,n,0,1,6.Y.2e);6.2v=6.1O+((6.2D-6.1O)*6.4q);6.4r()}I Q}};E.2j.2F={2R:G(a){a.T.2R=a.2v},2B:G(a){a.T.2B=a.2v},1r:G(a){E.1x(a.T.R,"1r",a.2v)},6z:G(a){a.T.R[a.1e]=a.2v+a.2i}};E.1b.6m=G(){H c=0,3E=0,T=6[0],5t;9(T)8L(E.V){H b=E.17(T,"2X")=="4F",1D=T.12,23=T.23,2K=T.3H,4f=1N&&3x(4s)<8J;9(T.6V){5w=T.6V();1f(5w.1S+38.33(2K.2V.2R,2K.1G.2R),5w.3E+38.33(2K.2V.2B,2K.1G.2B));9(1h){H d=E("4o").17("8H");d=(d=="8G"||E.5g&&3x(4s)>=7)&&2||d;1f(-d,-d)}}J{1f(T.5l,T.5z);1W(23){1f(23.5l,23.5z);9(35&&/^t[d|h]$/i.14(1D.37)||!4f)d(23);9(4f&&!b&&E.17(23,"2X")=="4F")b=Q;23=23.23}1W(1D.37&&!/^1G|4o$/i.14(1D.37)){9(!/^8D|1I-9S.*$/i.14(E.17(1D,"19")))1f(-1D.2R,-1D.2B);9(35&&E.17(1D,"2U")!="3R")d(1D);1D=1D.12}9(4f&&b)1f(-2K.1G.5l,-2K.1G.5z)}5t={3E:3E,1S:c}}I 5t;G d(a){1f(E.17(a,"9T"),E.17(a,"8A"))}G 1f(l,t){c+=3x(l)||0;3E+=3x(t)||0}}})();',62,616,'||||||this|||if|||||||||||||||||||||||||||||||||function|var|return|else|length|for|data|each|type|false|true|style|null|elem|document|browser|undefined||options|||nodeName|parentNode||test|jQuery|apply|css|window|display|push|fn|constructor|url|prop|add|indexOf|msie|in|event|extend|complete|typeof|isFunction|className|replace|arguments|opacity|div|match|new|status|firstChild|attr|nodeType|hide|show|Array|success|parent|filter|trigger|body|height|table|script|tbody|cache|string|safari|start|hidden|value|merge|left|break|animate|dataType|while|map|find|global||get|id|offsetParent|select|toggle|selected|toUpperCase|remove|catch|try|cur|al|ready|duration|done|text|makeArray|unit|fx|swap|split|target||pushStack|toLowerCase|nextSibling|button|none|handle|guid|now|stack|tb|jsre|timeout|inArray|scrollTop|readyState|end|delete|step|one|name|nth|slice|doc|ret|preventDefault|width|call|events|checked|scrollLeft|exec|px|overflow|documentElement|grep|position|form|block|removeData|rl|timers|max|opera|mozilla|trim|tagName|Math|load|param|removeChild|disabled|insertBefore|async|encodeURIComponent|append|oldblock|val|childNodes|src|readyList|multiFilter|color|defaultView|stopPropagation|args|old|toString|is|last|first|eval|parseInt|self|domManip|prototype|getTime|curCSS|Date|top||ajax|ownerDocument|parseFloat|easing|has|queue|curAnim|custom|innerHTML|orig|currentStyle|visible|getElementById|isReady|error|static|bind|String|which|getComputedStyle|responseText|oWidth|oHeight|on|shift|json|child|RegExp|ol|lastModified|isXMLDoc|jsonp|jquery|previousSibling|dir|safari2|el|styleFloat|state|setInterval|radio|getElementsByTagName|tr|empty|html|getAttribute|pos|update|version|input|float|runtimeStyle|unshift|mouseover|getPropertyValue|GET|clearInterval|safariTimer|visibility|clean|__ie_init|absolute|handleHover|lastToggle|index|fromElement|relatedTarget|click|fix|evt|andSelf|removeEventListener|handler|cloneNode|addEventListener|triggered|nodeIndex|unique|Number|classFilter|prevObject|selectedIndex|after|submit|password|removeAttribute|file|expr|setTimeout|_|appendChild|ajaxSettings|client|active|win|sibling|deep|globalEval|boxModel|cssFloat|object|checkbox|parsererror|offsetLeft|wrapAll|dequeue|props|lastChild|swing|handleError|getResponseHeader|results|startTime|00|box|Modified|ifModified|offsetTop|evalScript|createElement|setRequestHeader|ctrlKey|callback|metaKey|contentType|ajaxSend|ajaxSuccess|ajaxError|ajaxStop|ajaxStart|serializeArray|init|notmodified|POST|loaded|appendTo|DOMContentLoaded|bindReady|mouseout|not|removeAttr|unbind|unload|Width|keyCode|charCode|onreadystatechange|clientX|pageX|srcElement|join|outerHTML|substr|zoom|parse|textarea|reset|image|odd|even|before|quickClass|quickID|prepend|quickChild|execScript|offset|scroll|processData|uuid|contents|continue|textContent|ajaxComplete|clone|setArray|webkit|nodeValue|fl|_default|100|linear|href|speed|eq|createTextNode|throw|replaceWith|splice|_toggle|xml|colgroup|304|200|alpha|Last|httpData|httpNotModified|httpSuccess|fieldset|beforeSend|getBoundingClientRect|XMLHttpRequest|ActiveXObject|col|br|abbr|pixelLeft|urlencoded|www|application|ajaxSetup|post|getJSON|getScript|elements|serialize|clientWidth|hasClass|scr|clientHeight|write|relative|keyup|keypress|keydown|change|mousemove|mouseup|mousedown|right|dblclick|resize|focus|blur|frames|instanceof|hover|offsetWidth|triggerHandler|ipt|defer|offsetHeight|border|padding|clientY|pageY|Left|Right|toElement|Bottom|Top|cancelBubble|returnValue|detachEvent|attachEvent|substring|line|weight|animated|header|font|enabled|innerText|contains|only|size|gt|lt|uFFFF|u0128|417|inner|Height|toggleClass|removeClass|addClass|replaceAll|noConflict|insertAfter|prependTo|wrap|contentWindow|contentDocument|http|iframe|children|siblings|prevAll|nextAll|wrapInner|prev|Boolean|next|parents|maxLength|maxlength|readOnly|readonly|class|htmlFor|CSS1Compat|compatMode|compatible|borderTopWidth|ie|ra|inline|it|rv|medium|borderWidth|userAgent|522|navigator|with|concat|1px|10000|array|ig|PI|NaN|400|reverse|fast|600|slow|Function|Object|setAttribute|changed|be|can|property|fadeTo|fadeOut|getAttributeNode|fadeIn|slideToggle|method|slideUp|slideDown|action|cssText|stop|responseXML|option|content|300|th|protocol|td|location|send|cap|abort|colg|cos|tfoot|thead|With|leg|Requested|opt|GMT|1970|Jan|01|Thu|area|Since|hr|If|Type|Content|meta|specified|open|link|XMLHTTP|Microsoft|img|onload|row|borderLeftWidth|head|attributes'.split('|'),0,{});
+
+/*
+ Copyright (c) 2004-2007, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+/*
+ This is a compiled version of Dojo, built for deployment and not for
+ development. To get an editable version, please visit:
+
+ http://dojotoolkit.org
+
+ for documentation and information on getting the source.
+*/
+
+var decompressedDojo = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('if(V z=="1k"){(B(){if(V D["1o"]=="1k"){D.1o={}}if((!D["1z"])||(!1z["ca"])){D.1z={}}A cn=["rA","rz","1K","ry","rx","9f","rw","rv","ru","rt","rs","rr","rq","ro","rn","rm"];A i=0,24;1s(24=cn[i++]){if(!1z[24]){1z[24]=B(){}}}if(V D["z"]=="1k"){D.z={}}z.1W=D;A d3={im:U,rl:U,rk:"",rj:"",ri:"",rh:K,rg:U};R(A 8z in d3){if(V 1o[8z]=="1k"){1o[8z]=d3[8z]}}A jK=["rf","rd","rc","rb"];A t;1s(t=jK.3a()){z["is"+t]=U}})();z.8h=1o.8h;z.cY={jJ:0,jI:9,jH:0,jG:"",jF:2V("$ra: r9 $".1f(/[0-9]+/)[0]),2i:B(){4G(z.cY){C jJ+"."+jI+"."+jH+jG+" ("+jF+")"}}};z.d1=B(jE,jD,1V){A 2h=1V||z.1W;R(A i=0,p;2h&&(p=jE[i]);i++){2h=(p in 2h?2h[p]:(jD?2h[p]={}:1k))}C 2h};z.88=B(jC,jA,jB){A d2=jC.1A("."),p=d2.8q(),M=z.d1(d2,K,jB);C(M&&p?(M[p]=jA):1k)};z.6q=B(jz,jy,jx){C z.d1(jz.1A("."),jy,jx)};z.r8=B(jw,M){C!!z.6q(jw,U,M)};z["3u"]=B(d0){C z.1W.3u?z.1W.3u(d0):3u(d0)};z.ia=B(jv,cZ,cX){A 8y="r7: "+jv;if(cZ){8y+=" "+cZ}if(cX){8y+=" -- r6 be r5 in cY: "+cX}1z.1K(8y)};z.r4=B(ju,cW){A cV="r3: "+ju+" -- r2 r1 4F r0 qZ qY.";if(cW){cV+=" "+cW}1z.1K(cV)};(B(){A cR={53:{},6p:0,1h:{},8k:{z:{1p:"z",1Z:"."},cU:{1p:"cU",1Z:"../qX/cU"},cT:{1p:"cT",1Z:"cT"}},cN:B(cS){A mp=D.8k;C jp(mp[cS]&&mp[cS].1Z)},jk:B(8x){A mp=D.8k;if(D.cN(8x)){C mp[8x].1Z}C 8x},8v:[],6t:U,56:[],8t:[],8u:U};R(A cQ in cR){z[cQ]=cR[cQ]}})();z.jg=B(8w,cP,cb){A 1g=(((8w.2s(0)=="/"||8w.1f(/^\\w+:/)))?"":D.51)+8w;if(1o.jt&&z.c8){1g+="?"+67(1o.jt).2f(/\\W+/g,"")}1u{C!cP?D.cO(1g,cb):D.jq(1g,cP,cb)}1y(e){1z.1K(e);C U}};z.cO=B(1g,cb){if(D.8v[1g]){C K}A 6u=D.iR(1g,K);if(!6u){C U}D.8v[1g]=K;D.8v.Y(1g);if(cb){6u="("+6u+")"}A jr=z["3u"](6u+"\\r\\n//@ qW="+1g);if(cb){cb(jr)}C K};z.jq=B(1g,jo,cb){A ok=U;1u{ok=D.cO(1g,cb)}1y(e){1z.1K("qV je ",1g," 4G 9f: ",e)}C jp(ok&&D.53[jo])};z.6m=B(){D.8u=K;D.6t=K;A 57=D.56;D.56=[];R(A x=0;x<57.G;x++){57[x]()}D.8u=U;if(z.6t&&z.6p==0&&D.56.G>0){z.8s()}};z.ck=B(){A 57=D.8t;1s(57.G){(57.8q())()}};z.qU=B(M,jn){A d=z;if(P.G==1){d.56.Y(M)}I{if(P.G>1){d.56.Y(B(){M[jn]()})}}if(d.6t&&d.6p==0&&!d.8u){d.8s()}};z.dW=B(M,jm){A d=z;if(P.G==1){d.8t.Y(M)}I{if(P.G>1){d.8t.Y(B(){M[jm]()})}}};z.iM=B(){if(D.6t){C}if(D.6p>0){1z.1K("qT qS in qR!");C}z.8s()};z.8s=B(){if(V 5c=="8b"||(1o["qQ"]&&z.2M)){5c("z.6m();",0)}I{z.6m()}};z.cF=B(jl){A 4v=jl.1A(".");R(A i=4v.G;i>0;i--){A 8r=4v.2w(0,i).22(".");if((i==1)&&!D.cN(8r)){4v[0]="../"+4v[0]}I{A cM=D.jk(8r);if(cM!=8r){4v.3S(0,i,cM);3f}}}C 4v};z.jj=U;z.8m=B(2T,qP,55){55=D.jj||55;A 54=D.53[2T];if(54){C 54}A cL=2T.1A(".");A 3L=D.cF(2T);A jh=((3L[0].2s(0)!="/")&&!3L[0].1f(/^\\w+:/));A ji=3L[3L.G-1];A 3m;if(ji=="*"){2T=cL.2w(0,-1).22(".");3L.8q();3m=3L.22("/")+"/"+(1o["qO"]||"qN")+".js";if(jh&&3m.2s(0)=="/"){3m=3m.2w(1)}}I{3m=3L.22("/")+".js";2T=cL.22(".")}A jf=(!55)?2T:L;A ok=D.jg(3m,jf);if((!ok)&&(!55)){2m S 1O("qM 3O 4E \'"+2T+"\'; 72 qL \'"+3m+"\'")}if((!55)&&(!D["qK"])){54=D.53[2T];if(!54){2m S 1O("qJ \'"+2T+"\' is 3O qI a8 je \'"+3m+"\'")}}C 54};z.8c=z.8m;z.1Q=B(cK){A cJ=cK+"";A 8p=cJ;A 6s=cK.1A(/\\./);if(6s[6s.G-1]=="*"){6s.8q();8p=6s.22(".")}A 8o=z.6q(8p,K);D.53[cJ]=8o;D.53[8p]=8o;C 8o};z.qH=B(8n){A jd=8n["qG"]||[];A cI=jd.3U(8n[z.j4]||8n["aY"]||[]);R(A x=0;x<cI.G;x++){A 8l=cI[x];if(8l.1P==4e){z.8m.14(z,8l)}I{z.8m(8l)}}};z.jb=B(jc,qF){if(jc===K){A cH=[];R(A i=1;i<P.G;i++){cH.Y(P[i])}z.8c.14(z,cH)}};z.qE=z.jb;z.io=B(cG,ja){D.8k[cG]={1p:cG,1Z:ja}};z.qD=B(qC,qB,qA,qz){z.8c("z.j9");z.j9.qy.14(z.qx,P)};(B(){A j7=S 9G("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?$");A j6=S 9G("^((([^:]+:)?([^@]+))@)?([^:]*)(:([0-9]+))?$");z.4r=B(){A n=L;A 1V=P;A 1g=1V[0];R(A i=1;i<1V.G;i++){if(!1V[i]){6c}A 1t=S z.4r(1V[i]+"");A 4u=S z.4r(1g+"");if((1t.28=="")&&(!1t.4t)&&(!1t.3l)&&(!1t.1r)){if(1t.52!=n){4u.52=1t.52}1t=4u}I{if(!1t.4t){1t.4t=4u.4t;if(!1t.3l){1t.3l=4u.3l;if(1t.28.2s(0)!="/"){A j8=4u.28.21(0,4u.28.31("/")+1)+1t.28;A 1X=j8.1A("/");R(A j=0;j<1X.G;j++){if(1X[j]=="."){if(j==1X.G-1){1X[j]=""}I{1X.3S(j,1);j--}}I{if(j>0&&!(j==1&&1X[0]=="")&&1X[j]==".."&&1X[j-1]!=".."){if(j==(1X.G-1)){1X.3S(j,1);1X[j-1]=""}I{1X.3S(j-1,2);j-=2}}}}1t.28=1X.22("/")}}}}1g="";if(1t.4t){1g+=1t.4t+":"}if(1t.3l){1g+="//"+1t.3l}1g+=1t.28;if(1t.1r){1g+="?"+1t.1r}if(1t.52){1g+="#"+1t.52}}D.1g=1g.2i();A r=D.1g.1f(j7);D.4t=r[2]||(r[1]?"":n);D.3l=r[4]||(r[3]?"":n);D.28=r[5];D.1r=r[7]||(r[6]?"":n);D.52=r[9]||(r[8]?"":n);if(D.3l!=n){r=D.3l.1f(j6);D.8X=r[3]||n;D.8W=r[4]||n;D.qw=r[5];D.qv=r[7]||n}};z.4r.1C.2i=B(){C D.1g}})();z.qu=B(j5,2E){A 2B=z.cF(j5).22("/");if(!2B){C L}if(2B.31("/")!=2B.G-1){2B+="/"}A cE=2B.T(":");if(2B.2s(0)!="/"&&(cE==-1||cE>2B.T("/"))){2B=z.51+2B}C S z.4r(2B,2E)};if(V 26!="1k"){z.c8=K;z.j4="qt";(B(){A d=z;if(1q&&1q.4I){A 8j=1q.4I("ak");A j3=/z(\\.qs)?\\.js([\\?\\.]|$)/i;R(A i=0;i<8j.G;i++){A 4X=8j[i].5t("4X");if(!4X){6c}A m=4X.1f(j3);if(m){if(!1o["51"]){1o["51"]=4X.21(0,m.hK)}A cD=8j[i].5t("1o");if(cD){A cC=3u("({ "+cD+" })");R(A x in cC){1o[x]=cC[x]}}3f}}}d.51=1o["51"];A n=cq;A 8i=n.iL;A 4Z=n.qr;A 6r=2k(4Z);d.2M=(8i.T("qq")>=0)?6r:0;d.6B=(4Z.T("qo")>=0)||(4Z.T("j2")>=0)?6r:0;d.3o=(4Z.T("j2")>=0)?6r:0;A j1=8i.T("qn");d.gu=d.7B=((j1>=0)&&(!d.6B))?6r:0;d.j0=0;d.1l=0;d.iV=0;1u{if(d.7B){d.j0=2k(8i.1A("qm/")[1].1A(" ")[0])}if((1q.gx)&&(!d.2M)){d.1l=2k(4Z.1A("qk ")[1].1A(";")[0])}}1y(e){}if(z.1l&&(26.8f.cu==="9q:")){1o.iT=K}d.iX=B(){A 2A;A qj;A cB=d.6q("cz.cy");if(cB){C cB}if(V iZ!="1k"){2A=S iZ()}I{if(d.1l){1u{2A=S 9j("qi.qh")}1y(e){}}I{if(cq.qg["8Z/x-iY"]){2A=1q.a9("8b");2A.cA("Z","8Z/x-iY");2A.cA("3n",0);2A.cA("58",0);2A.1c.gq="7C";1q.5K.4c(2A)}}}if(!2A){C L}z.88("cz.cy.qf",2A);C z.6q("cz.cy")};A iW=d.iX();if(iW){d.iV=K}A cm=1q["aX"];d.qe=(cm=="aW")||(cm=="gr")||(d.1l<6);d.8h=1o.8h||(d.1l?n.qd:n.qc).1M();d.qb=1z.1K;d.cx=["iU.8g","em.8g","iU.8g.4.0"];d.9b=B(){A 4s=L;A cv=L;if(!z.1l||!1o.iT){1u{4s=S qa()}1y(e){}}if(!4s){R(A i=0;i<3;++i){A cw=z.cx[i];1u{4s=S 9j(cw)}1y(e){cv=e}if(4s){z.cx=[cw];3f}}}if(!4s){2m S 1O("8g 3O q9: "+cv)}C 4s};d.8Y=B(iS){A 4Y=iS.3N||0;C((4Y>=q8)&&(4Y<q7))||(4Y==q6)||(4Y==q5)||(!4Y&&(8f.cu=="9q:"||8f.cu=="q4:"))};A cs=1q.4I("q3");A iQ=(cs&&cs.G>0);d.iR=B(1g,iP){A 3K=D.9b();if(!iQ&&z.4r){1g=(S z.4r(26.8f,1g)).2i()}3K.dL("dD",1g,U);1u{3K.dI(L);if(!d.8Y(3K)){A 1G=1O("q2 4F 4E "+1g+" 3N:"+3K.3N);1G.3N=3K.3N;1G.2G=3K.2G;2m 1G}}1y(e){if(iP){C L}2m e}C 3K.2G}})();z.iO=U;z.6o=B(e){z.iO=K;A cr=(e&&e.Z)?e.Z.1M():"4E";if(P.2O.iN||(cr!="q1"&&cr!="4E")){C}P.2O.iN=K;if(V z["8e"]!="1k"){dX(z.8e);63 z.8e}if(z.6p==0){z.iM()}};if(1q.66){if(z.2M||(z.7B&&(1o["q0"]===K))){1q.66("pZ",z.6o,L)}26.66("4E",z.6o,L)}if(/(pY|pX)/i.6Z(cq.iL)){z.8e=dN(B(){if(/6m|iJ/.6Z(1q.6F)){z.6o()}},10)}(B(){A 3g=26;A 8d=B(cp,fp){A iK=3g[cp]||B(){};3g[cp]=B(){fp.14(3g,P);iK.14(3g,P)}};if(z.1l){1q.fJ("<iI"+"iH pW 4X=\\"//:\\" "+"pV=\\"if(D.6F==\'iJ\'){z.6o();}\\">"+"</iI"+"iH>");A co=K;8d("iG",B(){3g.5c(B(){co=U},0)});8d("pU",B(){if(co){z.ck()}});1u{1q.pT.2P("v","pS:pR-pQ-pP:pO");1q.pN().pM("v\\\\:*","pL:2E(#aY#pK)")}1y(e){}}I{8d("iG",B(){z.ck()})}})();z.pJ=B(){};z.1e=26["1q"]||L;z.3E=B(){C z.1e.3E||z.1e.4I("3E")[0]};z.ch=B(iF,iE){z.1W=iF;z.1e=iE};z.cf=B(4q,6n,iD){if((6n)&&((V 4q=="3c")||(4q 1N 67))){4q=6n[4q]}C(6n?4q.14(6n,iD||[]):4q())};z.pI=B(cj,iC,iB,iA){A cg;A iz=z.1W;A iy=z.1e;1u{z.ch(cj,cj.1q);cg=z.cf(iC,iB,iA)}ir{z.ch(iz,iy)}C cg};z.pH=B(ix,iw,iv,iu){A ce;A ip=z.1e;1u{z.1e=ix;ce=z.cf(iw,iv,iu)}ir{z.1e=ip}C ce};if(1o["cd"]){R(A cc in 1o["cd"]){z.io(cc,1o["cd"][cc])}}}if(1o.im){if(!1z.ca){z.8c("z.pG.ca")}}}if(!z.1h["z.X.c9"]){z.1h["z.X.c9"]=K;z.1Q("z.X.c9");z.1R=B(it){C(V it=="3c"||it 1N 67)};z.2l=B(it){C(it&&it 1N 4e||V it=="6a"||((V z["1H"]!="1k")&&(it 1N z.1H)))};if(z.c8&&z.3o){z.1Y=B(it){if((V(it)=="B")&&(it=="[8b 1H]")){C U}C(V it=="B"||it 1N bI)}}I{z.1Y=B(it){C(V it=="B"||it 1N bI)}}z.ib=B(it){if(V it=="1k"){C U}C(it===L||V it=="8b"||z.2l(it)||z.1Y(it))};z.pF=B(it){A d=z;if((!it)||(V it=="1k")){C U}if(d.1R(it)){C U}if(d.1Y(it)){C U}if(d.2l(it)){C K}if((it.5w)&&(it.5w.1M()=="3R")){C U}if(pE(it.G)){C K}C U};z.pD=B(it){if(!it){C U}C!z.1Y(it)&&/\\{\\s*\\[il 5h\\]\\s*\\}/.6Z(67(it))};z.c7=B(M,4W){A 8a={};R(A x in 4W){if((V 8a[x]=="1k")||(8a[x]!=4W[x])){M[x]=4W[x]}}if(z.1l){A p=4W.2i;if((V(p)=="B")&&(p!=M.2i)&&(p!=8a.2i)&&(p!="\\pC 2i() {\\n [il 5h]\\n}\\n")){M.2i=4W.2i}}C M};z.1x=B(M,pB){R(A i=1,l=P.G;i<l;i++){z.c7(M,P[i])}C M};z.4M=B(c6,pA){R(A i=1,l=P.G;i<l;i++){z.c7(c6.1C,P[i])}C c6};z.ig=B(c5,89){A ij=z.4d(P,2);A ik=z.1R(89);C B(){A ih=z.4d(P);A f=(ik?(c5||z.1W)[89]:89);C(f)&&(f.14(c5||D,ij.3U(ih)))}};z.2p=B(2z,3k){if(P.G>2){C z.ig.14(z,P)}if(!3k){3k=2z;2z=L}if(z.1R(3k)){2z=2z||z.1W;if(!2z[3k]){2m(["z.2p: ie[\\"",3k,"\\"] is L (ie=\\"",2z,"\\")"].22(""))}C B(){C 2z[3k].14(2z,P||[])}}I{C(!2z?3k:B(){C 3k.14(2z,P||[])})}};z.6j=B(M,c3){B c4(){};c4.1C=M;A c2=S c4();if(c3){z.1x(c2,c3)}C c2};z.7X=B(pz){A Q=[L];C z.2p.14(z,Q.3U(z.4d(P)))};z.4d=B(M,ic){A Q=[];R(A x=ic||0;x<M.G;x++){Q.Y(M[x])}C Q};z.c1=B(o){if(!o){C o}if(z.2l(o)){A r=[];R(A i=0;i<o.G;++i){r.Y(z.c1(o[i]))}C r}I{if(z.ib(o)){if(o.2t&&o.a7){C o.a7(K)}I{A r=S o.1P();R(A i in o){if(!(i in r)||r[i]!=o[i]){r[i]=z.c1(o[i])}}C r}}}C o};z.7g=B(2H){C 2H.2f(/^\\s\\s*/,"").2f(/\\s\\s*$/,"")}}if(!z.1h["z.X.2r"]){z.1h["z.X.2r"]=K;z.1Q("z.X.2r");z.2r=B(6l,4p,3j){if(z.1Y(3j)||(P.G>3)){z.ia("z.2r: R 9P \'"+6l+"\' py pw B as \'1P\' pv pu of as a pt i3.","","1.0");A c=3j;3j=P[3]||{};3j.1P=c}A dd=P.2O,4V=L;if(z.2l(4p)){4V=4p;4p=4V.3a()}if(4V){R(A i=0,m;i<4V.G;i++){m=4V[i];if(!m){2m("ps #"+i+" 4F pr of "+6l+" is L. pq\'s pp a po pl is 3O 6m.")}4p=dd.6j(4p,m)}}A i9=(3j||0).1P,6k=dd.6j(4p),fn;R(A i in 3j){if(z.1Y(fn=3j[i])&&(!0[i])){fn.i4=i}}z.4M(6k,{4o:6l,bY:i9,bZ:L},3j||0);6k.1C.1P=6k;C z.88(6l,6k)};z.1x(z.2r,{6j:B(c0,i8){A bp=(c0||0).1C,mp=(i8||0).1C;A 2S=z.2r.i7();z.1x(2S,{84:bp,1x:mp});if(c0){2S.1C=z.6j(bp)}z.4M(2S,z.2r.i6,mp||0,{bY:L});2S.1C.1P=2S;2S.1C.4o=(bp||0).4o+"pk"+(mp||0).4o;z.88(2S.1C.4o,2S);C 2S},i7:B(){C B(){D.i5(P)}},i6:{i5:B(86){A c=86.2O,s=c.84,ct=s&&s.1P,m=c.1x,87=m&&m.1P,a=86,ii,fn;if(a[0]){if((fn=a[0]["bZ"])){a=fn.14(D,a)||a}}if(fn=c.1C.bZ){a=fn.14(D,a)||a}if(ct&&ct.14){ct.14(D,a)}if(87&&87.14){87.14(D,a)}if(ii=c.1C.bY){ii.14(D,86)}},bX:B(85){A c=D.1P,p,m;1s(c){p=c.84;m=c.1x;if(m==85||(m 1N 85.1P)){C p}if(m&&(m=m.bX(85))){C m}c=p&&p.1P}},6h:B(83,82,bW,6i){A p=bW,c,m,f;do{c=p.1P;m=c.1x;if(m&&(m=D.6h(83,82,m,6i))){C m}if((f=p[83])&&(6i==(f==82))){C p}p=c.84}1s(p);C!6i&&(p=D.bX(bW))&&D.6h(83,82,p,6i)},bU:B(2R,4U,bV){A a=P;if(!z.1R(a[0])){bV=4U;4U=2R;2R=4U.2O.i4}A c=4U.2O,p=D.1P.1C,a=bV||4U,fn,mp;if(D[2R]!=c||p[2R]==c){mp=D.6h(2R,c,p,K);if(!mp){2m(D.4o+": 1p i3 (\\""+2R+"\\") 4F bU pj 1f 2O (2r.js)")}p=D.6h(2R,c,mp,U)}fn=p&&p[2R];if(!fn){1z.1K(mp.4o+": no bU \\""+2R+"\\" ph pg (2r.js)");C}C fn.14(D,a)}}})}if(!z.1h["z.X.2c"]){z.1h["z.X.2c"]=K;z.1Q("z.X.2c");z.3i={i2:B(){C B(){A ap=4e.1C,c=P.2O,ls=c.2b,t=c.5V;A r=t&&t.14(D,P);R(A i in ls){if(!(i in ap)){ls[i].14(D,P)}}C r}},2P:B(6g,bT,i1){6g=6g||z.1W;A f=6g[bT];if(!f||!f.2b){A d=z.3i.i2();d.5V=f;d.2b=[];f=6g[bT]=d}C f.2b.Y(i1)},3J:B(i0,hZ,bS){A f=(i0||z.1W)[hZ];if(f&&f.2b&&bS--){63 f.2b[bS]}}};z.2c=B(M,pd,pc,pa,p9){A a=P,F=[],i=0;F.Y(z.1R(a[0])?L:a[i++],a[i++]);A a1=a[i+1];F.Y(z.1R(a1)||z.1Y(a1)?a[i++]:L,a[i++]);R(A l=a.G;i<l;i++){F.Y(a[i])}C z.by.14(D,F)};z.by=B(M,bR,hY,hX){A l=z.3i,h=l.2P(M,bR,z.2p(hY,hX));C[M,bR,h,l]};z.p8=B(6f){if(6f&&6f[0]!==1k){z.bv.14(D,6f);63 6f[0]}};z.bv=B(M,hV,hU,hW){hW.3J(M,hV,hU)};z.80={};z.p7=B(bQ,hT,hS){C[bQ,z.3i.2P(z.80,bQ,z.2p(hT,hS))]};z.p6=B(81){if(81){z.3i.3J(z.80,81[0],81[1])}};z.hQ=B(hR,F){A f=z.80[hR];(f)&&(f.14(D,F||[]))};z.p5=B(hP,M,bP){A pf=B(){z.hQ(hP,P)};C(bP)?z.2c(M,bP,pf):z.2c(M,pf)}}if(!z.1h["z.X.30"]){z.1h["z.X.30"]=K;z.1Q("z.X.30");z.30=B(hO){D.bM=[];D.id=D.hN();D.2y=-1;D.3M=0;D.4R=[L,L];D.bO=hO;D.7Z=U};z.4M(z.30,{hN:(B(){A n=1;C B(){C n++}})(),4C:B(){if(D.2y==-1){if(D.bO){D.bO(D)}I{D.7Z=K}if(D.2y==-1){A 1G=S 1O("30 p4");1G.dY="4C";D.5i(1G)}}I{if((D.2y==0)&&(D.4R[0]1N z.30)){D.4R[0].4C()}}},7V:B(1v){D.2y=((1v 1N 1O)?1:0);D.4R[D.2y]=1v;D.7U()},bN:B(){if(D.2y!=-1){if(!D.7Z){2m S 1O("p3 p2!")}D.7Z=U;C}},dM:B(1v){D.bN();D.7V(1v)},5i:B(1v){D.bN();if(!(1v 1N 1O)){1v=S 1O(1v)}D.7V(1v)},9e:B(cb,4T){A 6e=z.2p(cb,4T);if(P.G>2){6e=z.7X(6e,P,2)}C D.5k(6e,6e)},ef:B(cb,4T){A 7Y=z.2p(cb,4T);if(P.G>2){7Y=z.7X(7Y,P,2)}C D.5k(7Y,L)},ed:B(cb,4T){A 7W=z.2p(cb,4T);if(P.G>2){7W=z.7X(7W,P,2)}C D.5k(L,7W)},5k:B(cb,eb){D.bM.Y([cb,eb]);if(D.2y>=0){D.7U()}C D},7U:B(){A bL=D.bM;A 4n=D.2y;A 1v=D.4R[4n];A 4S=D;A cb=L;1s((bL.G>0)&&(D.3M==0)){A f=bL.3a()[4n];if(!f){6c}1u{1v=f(1v);4n=((1v 1N 1O)?1:0);if(1v 1N z.30){cb=B(1v){4S.7V(1v);4S.3M--;if((4S.3M==0)&&(4S.2y>=0)){4S.7U()}};D.3M++}}1y(1G){1z.1K(1G);4n=1;1v=1G}}D.2y=4n;D.4R[4n]=1v;if((cb)&&(D.3M)){1v.9e(cb)}}})}if(!z.1h["z.X.2e"]){z.1h["z.X.2e"]=K;z.1Q("z.X.2e");z.5m=B(2e){1u{C 3u("("+2e+")")}1y(e){1z.1K(e);C 2e}};z.bK=B(2H){C("\\""+2H.2f(/(["\\\\])/g,"\\\\$1")+"\\"").2f(/[\\f]/g,"\\\\f").2f(/[\\b]/g,"\\\\b").2f(/[\\n]/g,"\\\\n").2f(/[\\t]/g,"\\\\t").2f(/[\\r]/g,"\\\\r")};z.hM="\\t";z.eq=B(it,4l,4P){4P=4P||"";A 4k=(4l?4P+z.hM:"");A 6b=(4l?"\\n":"");A 4Q=V(it);if(4Q=="1k"){C"1k"}I{if((4Q=="4J")||(4Q=="p1")){C it+""}I{if(it===L){C"L"}}}if(4Q=="3c"){C z.bK(it)}A 6d=P.2O;A 4m;if(V it.hL=="B"){4m=it.hL();if(it!==4m){C 6d(4m,4l,4k)}}if(V it.2e=="B"){4m=it.2e();if(it!==4m){C 6d(4m,4l,4k)}}if(z.2l(it)){A 1v=[];R(A i=0;i<it.G;i++){A 1U=6d(it[i],4l,4k);if(V(1U)!="3c"){1U="1k"}1v.Y(6b+4k+1U)}C"["+1v.22(", ")+6b+4P+"]"}if(4Q=="B"){C L}A bJ=[];R(A 1i in it){A 7T;if(V(1i)=="4J"){7T="\\""+1i+"\\""}I{if(V(1i)=="3c"){7T=z.bK(1i)}I{6c}}1U=6d(it[1i],4l,4k);if(V(1U)!="3c"){6c}bJ.Y(6b+4k+7T+": "+1U)}C"{"+bJ.22(", ")+6b+4P+"}"}}if(!z.1h["z.X.6a"]){z.1h["z.X.6a"]=K;z.1Q("z.X.6a");(B(){A 69=B(Q,M,cb){C[(z.1R(Q)?Q.1A(""):Q),(M||z.1W),(z.1R(cb)?(S bI("1m","hK","6a",cb)):cb)]};z.1x(z,{T:B(bH,hH,hI,hJ){A i=0,2q=1,1d=bH.G;if(hJ){i=1d-1;2q=1d=-1}R(i=hI||i;i!=1d;i+=2q){if(bH[i]==hH){C i}}C-1},31:B(hG,hF,hE){C z.T(hG,hF,hE,K)},1n:B(Q,hD,M){if(!Q||!Q.G){C}A 1I=69(Q,M,hD);Q=1I[0];R(A i=0,l=1I[0].G;i<l;i++){1I[2].2d(1I[1],Q[i],i,Q)}},bE:B(bF,Q,hC,M){A 1I=69(Q,M,hC);Q=1I[0];R(A i=0,l=Q.G;i<l;i++){A bG=!!1I[2].2d(1I[1],Q[i],i,Q);if(bF^bG){C bG}}C bF},ah:B(Q,hB,hA){C D.bE(K,Q,hB,hA)},ag:B(Q,hz,hy){C D.bE(U,Q,hz,hy)},23:B(Q,7t,M){A 1I=69(Q,M,7t);Q=1I[0];A bD=((P[3])?(S P[3]()):[]);R(A i=0;i<Q.G;++i){bD.Y(1I[2].2d(1I[1],Q[i],i,Q))}C bD},3T:B(Q,hx,M){A 1I=69(Q,M,hx);Q=1I[0];A bC=[];R(A i=0;i<Q.G;i++){if(1I[2].2d(1I[1],Q[i],i,Q)){bC.Y(Q[i])}}C bC}})})()}if(!z.1h["z.X.1J"]){z.1h["z.X.1J"]=K;z.1Q("z.X.1J");z.1J=B(bB){if(bB){D.hw(bB)}};z.1J.hp={p0:[0,0,0],oZ:[60,60,60],oY:[2j,2j,2j],oX:[1T,1T,1T],oW:[2j,0,0],oV:[1T,0,0],oU:[2j,0,2j],oT:[1T,0,1T],oS:[0,2j,0],oR:[0,1T,0],oQ:[2j,2j,0],oP:[1T,1T,0],oO:[0,0,2j],oN:[0,0,1T],oM:[0,2j,2j],oL:[0,1T,1T]};z.4M(z.1J,{r:1T,g:1T,b:1T,a:1,bz:B(r,g,b,a){A t=D;t.r=r;t.g=g;t.b=b;t.a=a},hw:B(2Q){A d=z;if(d.1R(2Q)){d.hq(2Q,D)}I{if(d.2l(2Q)){d.7P(2Q,D)}I{D.bz(2Q.r,2Q.g,2Q.b,2Q.a);if(!(2Q 1N d.1J)){D.7Q()}}}C D},7Q:B(){C D},oK:B(){A t=D;C[t.r,t.g,t.b]},oJ:B(){A t=D;C[t.r,t.g,t.b,t.a]},oI:B(){A Q=z.23(["r","g","b"],B(x){A s=D[x].2i(16);C s.G<2?"0"+s:s},D);C"#"+Q.22("")},8F:B(hv){A t=D,7S=t.r+", "+t.g+", "+t.b;C(hv?"hs("+7S+", "+t.a:"7S("+7S)+")"},2i:B(){C D.8F(K)}});z.d8=B(bA,1d,hu,M){A d=z,t=M||S z.1J();d.1n(["r","g","b","a"],B(x){t[x]=bA[x]+(1d[x]-bA[x])*hu;if(x!="a"){t[x]=2Y.oH(t[x])}});C t.7Q()};z.ho=B(ht,M){A m=ht.1M().1f(/^hs?\\(([\\s\\.,0-9]+)\\)/);C m&&z.7P(m[1].1A(/\\s*,\\s*/),M)};z.hn=B(4j,M){A d=z,t=M||S d.1J(),7R=(4j.G==4)?4:8,hr=(1<<7R)-1;4j=2V("oG"+4j.3b(1));if(2L(4j)){C L}d.1n(["b","g","r"],B(x){A c=4j&hr;4j>>=7R;t[x]=7R==4?17*c:c});t.a=1;C t};z.7P=B(a,M){A t=M||S z.1J();t.bz(2V(a[0]),2V(a[1]),2V(a[2]),2V(a[3]));if(2L(t.a)){t.a=1}C t.7Q()};z.hq=B(2H,M){A a=z.1J.hp[2H];C a&&z.7P(a,M)||z.ho(2H,M)||z.hn(2H,M)}}if(!z.1h["z.X"]){z.1h["z.X"]=K;z.1Q("z.X")}if(!z.1h["z.X.5Z"]){z.1h["z.X.5Z"]=K;z.1Q("z.X.5Z");(B(){A 1j=z.b2={2P:B(E,68,fp){if(!E){C}68=1j.4O(68);fp=1j.7G(68,fp);E.66(68,fp,U);C fp},3J:B(E,hm,hl){(E)&&(E.oF(1j.4O(hm),hl,U))},4O:B(1p){C(1p.2w(0,2)=="on"?1p.2w(2):1p)},7G:B(1p,fp){C(1p!="4b"?fp:B(e){C fp.2d(D,1j.4i(e,D))})},4i:B(H,oE){4w(H.Z){2X"4b":1j.7K(H);3f}C H},7K:B(H){H.oD=(H.3h?67.oC(H.3h):"")}};z.oB=B(H,hk){C 1j.4i(H,hk)};z.gY=B(H){H.7J();H.7I()};A 7O=z.3i;z.by=B(M,bx,hh,hg,hi){A hj=M&&(M.2t||M.oA||M.66);A bw=!hj?0:(!hi?1:2),l=[z.3i,1j,7O][bw];A h=l.2P(M,bx,z.2p(hh,hg));C[M,bx,h,bw]};z.bv=B(M,he,hd,hf){([z.3i,1j,7O][hf]).3J(M,he,hd)};z.5W={oz:8,gV:9,oy:12,ox:13,ow:16,ov:17,ou:18,gG:19,ot:20,os:27,or:32,b5:33,b4:34,gE:35,gF:36,b7:37,b9:38,b6:39,b8:40,gD:45,8S:46,oq:47,oo:91,om:92,ol:93,oj:96,oi:97,oh:98,og:99,oe:6D,od:oc,ob:oa,o9:o8,o7:o6,o5:o4,o3:bi,o2:o1,o0:nZ,nY:nX,nW:nV,nU:bk,gS:nT,gR:nS,gQ:nR,gP:nQ,gO:nP,gN:nO,gM:nN,gL:nM,gK:nL,gJ:nK,gI:nJ,gH:nI,nH:nG,nF:nE,nD:nC,gB:nB,gC:nA};if(z.1l){bf=B(e,5h){1u{C(e.3I=5h)}1y(e){C 0}};A 61=z.3i;if(!1o.nz){7O=61=z.gy={b3:[],2P:B(64,bu,hc){64=64||z.1W;A f=64[bu];if(!f||!f.2b){A d=z.gz();d.5V=f&&(7M.Y(f)-1);d.2b=[];f=64[bu]=d}C f.2b.Y(7M.Y(hc)-1)},3J:B(hb,ha,7N){A f=(hb||z.1W)[ha],l=f&&f.2b;if(f&&l&&7N--){63 7M[l[7N]];63 l[7N]}}};A 7M=61.b3}z.1x(1j,{2P:B(E,62,fp){if(!E){C}62=1j.4O(62);if(62=="h3"){A kd=E.bs;if(!kd||!kd.2b||!kd.h9){1j.2P(E,"bs",1j.h4);E.bs.h9=K}}C 61.2P(E,62,1j.7G(fp))},3J:B(E,h8,h7){61.3J(E,1j.4O(h8),h7)},4O:B(7L){C(7L.2w(0,2)!="on"?"on"+7L:7L)},ny:B(){},4i:B(H,4N){if(!H){A w=(4N)&&((4N.aD||4N.1q||4N).nx)||26;H=w.5Z}if(!H){C(H)}H.5V=H.br;H.bh=(4N||H.br);H.nw=H.nv;H.nu=H.nr;A bq=H.br,1e=(bq&&bq.aD)||1q;A bn=((z.1l<6)||(1e["aX"]=="aW"))?1e.3E:1e.5K;A bm=z.aB();H.nq=H.np+z.aH(bn.5I||0)-bm.x;H.nn=H.nm+(bn.5G||0)-bm.y;if(H.Z=="fk"){H.h6=H.nl}if(H.Z=="fj"){H.h6=H.nk}H.7I=1j.bc;H.7J=1j.ba;C 1j.h5(H)},h5:B(H){4w(H.Z){2X"4b":A c=("3h"in H?H.3h:H.3I);if(c==10){c=0;H.3I=13}I{if(c==13||c==27){c=0}I{if(c==3){c=99}}}H.3h=c;1j.7K(H);3f}C H},gZ:{bi:42,bk:47,h2:59,nj:43,ni:44,nh:45,ng:46,nf:47,60:96,h1:91,nb:92,na:93,h0:39},h4:B(H){A kp=H.bh.h3;if(!kp||!kp.2b){C}A k=H.3I;A bj=(k!=13)&&(k!=32)&&(k!=27)&&(k<48||k>90)&&(k<96||k>bk)&&(k<h2||k>60)&&(k<h1||k>h0);if(bj||H.5Y){A c=(bj?0:k);if(H.5Y){if(k==3||k==13){C}I{if(c>95&&c<bi){c-=48}I{if((!H.5X)&&(c>=65&&c<=90)){c+=32}I{c=1j.gZ[c]||c}}}}A 2x=1j.7H(H,{Z:"4b",2x:K,3h:c});kp.2d(H.bh,2x);H.bg=2x.bg;H.bd=2x.bd;bf(H,2x.3I)}},bc:B(){D.bg=K},ba:B(){D.n9=D.3I;if(D.5Y){bf(D,0)}D.bd=U}});z.gY=B(H){H=H||26.5Z;1j.bc.2d(H);1j.ba.2d(H)}}1j.7H=B(H,gX){A 2x=z.1x({},H,gX);1j.7K(2x);2x.7J=B(){H.7J()};2x.7I=B(){H.7I()};C 2x};if(z.2M){z.1x(1j,{4i:B(H,n8){4w(H.Z){2X"4b":A c=H.n7;if(c==3){c=99}c=((c<41)&&(!H.5X)?0:c);if((H.5Y)&&(!H.5X)&&(c>=65)&&(c<=90)){c+=32}C 1j.7H(H,{3h:c})}C H}})}if(z.3o){z.1x(1j,{4i:B(H,n6){4w(H.Z){2X"4b":A c=H.3h,s=H.5X,k=H.3I;k=k||gA[H.gW]||0;if(H.gW=="n5"){c=0}I{if((H.5Y)&&(c>0)&&(c<27)){c+=96}I{if(c==z.5W.gU){c=z.5W.gV;s=K}I{c=(c>=32&&c<gT?c:0)}}}C 1j.7H(H,{3h:c,5X:s,3I:k})}C H}});z.1x(z.5W,{gU:25,b9:gT,b8:n4,b7:n3,b6:n2,gS:n1,gR:n0,gQ:mZ,gP:mY,gO:mX,gN:mW,gM:mV,gL:mU,gK:mT,gJ:mS,gI:mR,gH:mQ,gG:mP,8S:mO,gF:mN,gE:mM,b5:mL,b4:mK,gD:mJ,mI:mH,gC:mG,gB:mF});A dk=z.5W,gA={"mE":dk.b9,"mD":dk.b8,"mC":dk.b7,"mB":dk.b6,"mA":dk.b5,"mz":dk.b4}}})();if(z.1l){z.gz=B(){C B(){A ap=4e.1C,h=z.gy.b3,c=P.2O,ls=c.2b,t=h[c.5V];A r=t&&t.14(D,P);R(A i in ls){if(!(i in ap)){h[ls[i]].14(D,P)}}C r}};z.b2.7G=B(fp){A f=z.b2.4i;C B(e){C fp.2d(D,f(e,D))}}}}if(!z.1h["z.X.b1"]){z.1h["z.X.b1"]=K;z.1Q("z.X.b1");1u{1q.my("mx",U,K)}1y(e){}if(z.1l||z.2M){z.1D=B(id,1e){if(z.1R(id)){A b0=(1e||z.1e);A 11=b0.gv(id);if((11)&&(11.gw.id.1Z==id)){C 11}I{A 5U=b0.gx[id];if(!5U){C}if(!5U.G){C 5U}A i=0;1s(11=5U[i++]){if(11.gw.id.1Z==id){C 11}}}}I{C id}}}I{z.1D=B(id,1e){if(z.1R(id)){C(1e||z.1e).gv(id)}I{C id}}}(B(){A 5T=L;z.mw=B(E){E=z.1D(E);1u{if(!5T){5T=1q.a9("mv")}5T.4c(E.1L?E.1L.fs(E):E);5T.9L=""}1y(e){}};z.mu=B(E,7F){1u{E=z.1D(E);7F=z.1D(7F);1s(E){if(E===7F){C K}E=E.1L}}1y(e){}C U};z.mt=B(E,5S){E=z.1D(E);if(z.gu){E.1c.ms=(5S)?"dg":"7C"}I{if(z.6B){E.1c.mr=(5S)?"8K":"7C"}I{if(z.1l){E.gs=(5S)?"":"on";z.1r("*",E).1n(B(gt){gt.gs=(5S)?"":"on"})}}}};A 5R=B(E,4h){4h.1L.mq(E,4h);C K};A aZ=B(E,4h){A pn=4h.1L;if(4h==pn.fm){pn.4c(E)}I{C 5R(E,4h.71)}C K};z.5E=B(E,2a,3H){if((!E)||(!2a)||(V 3H=="1k")){C U}E=z.1D(E);2a=z.1D(2a);if(V 3H=="4J"){A cn=2a.3W;if(((3H==0)&&(cn.G==0))||(cn.G==3H)){2a.4c(E);C K}if(3H==0){C 5R(E,2a.5A)}C aZ(E,cn[3H-1])}4w(3H.1M()){2X"mo":C 5R(E,2a);2X"a8":C aZ(E,2a);2X"9M":if(2a.5A){C 5R(E,2a.5A)}I{2a.4c(E);C K}3f;aY:2a.4c(E);C K}};z.aP="5g-3G";if(z.1l){A aV=1q.aX;z.aP=(aV=="aW")||(aV=="gr")||(z.1l<6)?"g5-3G":"5g-3G"}A 1E,dv=1q.mn;if(z.3o){1E=B(E){A s=dv.3F(E,L);if(!s&&E.1c){E.1c.gq="";s=dv.3F(E,L)}C s||{}}}I{if(z.1l){1E=B(E){C E.gn}}I{1E=B(E){C dv.3F(E,L)}}}z.3F=1E;if(!z.1l){z.4g=B(mm,gp){C 2k(gp)||0}}I{z.4g=B(go,2N){if(!2N){C 0}if(2N=="ml"){C 4}if(2N.2w&&(2N.2w(-2)=="px")){C 2k(2N)}4G(go){A gm=1c.2g;A gl=aU.2g;aU.2g=gn.2g;1u{1c.2g=2N;2N=1c.mk}1y(e){2N=0}1c.2g=gm;aU.2g=gl}C 2N}}z.ge=(z.1l?B(E){1u{C(E.mj.mi.2W/6D)}1y(e){C 1}}:B(E){C z.3F(E).2W});z.gf=(z.1l?B(E,7D){if(7D==1){E.1c.7E=E.1c.7E.2f(/gk:[^;]*;/i,"");if(E.gj.1M()=="gi"){z.1r("> gh",E).1n(B(i){i.1c.7E=i.1c.7E.2f(/gk:[^;]*;/i,"")})}}I{A o="mh(mg="+(7D*6D)+")";E.1c.3T=o}if(E.gj.1M()=="gi"){z.1r("> gh",E).1n(B(i){i.1c.3T=o})}C 7D}:B(E,gg){C E.1c.2W=gg});A 5Q={3n:K,58:K,2g:K,5J:K};A gd=B(E,Z,5P){Z=Z.1M();if(5Q[Z]===K){C z.4g(E,5P)}I{if(5Q[Z]===U){C 5P}I{if((Z.T("mf")>=0)||(Z.T("md")>=0)||(Z.T("3n")>=0)||(Z.T("58")>=0)||(Z.T("5q")>=0)||(Z.T("mc")>=0)||(Z.T("ma")>=0)){5Q[Z]=K;C z.4g(E,5P)}I{5Q[Z]=U;C 5P}}}};z.1c=B(E,5O,aT){A n=z.1D(E),F=P.G,op=(5O=="2W");if(F==3){C op?z.gf(n,aT):n.1c[5O]=aT}if(F==2&&op){C z.ge(n)}A s=z.3F(n);C(F==1)?s:gd(n,5O,s[5O])};z.7A=B(n,gc){A s=gc||1E(n),px=z.4g,l=px(n,s.m9),t=px(n,s.m8);C{l:l,t:t,w:l+px(n,s.m7),h:t+px(n,s.m6)}};z.5N=B(n,gb){A ne="7C",px=z.4g,s=gb||1E(n),bl=(s.m5!=ne?px(n,s.m4):0),bt=(s.m3!=ne?px(n,s.m2):0);C{l:bl,t:bt,w:bl+(s.m1!=ne?px(n,s.m0):0),h:bt+(s.lZ!=ne?px(n,s.lY):0)}};z.aN=B(n,ga){A s=ga||1E(n),p=z.7A(n,s),b=z.5N(n,s);C{l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h}};z.aM=B(n,g9){A s=g9||1E(n),px=z.4g,l=px(n,s.lX),t=px(n,s.lW),r=px(n,s.lV),b=px(n,s.lU);if(z.3o&&(s.ax!="fU")){r=l}C{l:l,t:t,w:l+r,h:t+b}};z.au=B(E,g8){A s=g8||1E(E),me=z.aM(E,s);A l=E.fT-me.l,t=E.fS-me.t;if(z.7B){A aS=2k(s.2g),aR=2k(s.5J);if(!2L(aS)&&!2L(aR)){l=aS,t=aR}I{A p=E.1L;if(p&&p.1c){A aQ=1E(p);if(aQ.lT!="lS"){A be=z.5N(p,aQ);l+=be.l,t+=be.t}}}}I{if(z.2M){A p=E.1L;if(p){A be=z.5N(p);l-=be.l,t-=be.t}}}C{l:l,t:t,w:E.6v+me.w,h:E.8D+me.h}};z.aK=B(E,g7){A s=g7||1E(E),pe=z.7A(E,s),be=z.5N(E,s),w=E.aF,h;if(!w){w=E.6v,h=E.8D}I{h=E.lR,be.w=be.h=0}if(z.2M){pe.l+=be.l;pe.t+=be.t}C{l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h}};z.lQ=B(E,g6){A s=g6||1E(E),pe=z.7A(E,s),cb=z.aK(E,s);C{l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h}};z.aL=B(E,l,t,w,h,u){u=u||"px";4G(E.1c){if(!2L(l)){2g=l+u}if(!2L(t)){5J=t+u}if(w>=0){3n=w+u}if(h>=0){58=h+u}}};z.aO=B(E){A n=E.5w;C(z.aP=="g5-3G")||(n=="lP")||(n=="lO")};z.fX=B(E,7z,7y,g4){A bb=z.aO(E);if(bb){A pb=z.aN(E,g4);if(7z>=0){7z+=pb.w}if(7y>=0){7y+=pb.h}}z.aL(E,g3,g3,7z,7y)};z.fY=B(E,g1,g0,5M,5L,g2){A s=g2||z.3F(E);A bb=z.aO(E),pb=bb?fZ:z.aN(E,s),mb=z.aM(E,s);if(5M>=0){5M=2Y.5q(5M-pb.w-mb.w,0)}if(5L>=0){5L=2Y.5q(5L-pb.h-mb.h,0)}z.aL(E,g1,g0,5M,5L)};A fZ={l:0,t:0,w:0,h:0};z.lN=B(E,3G){A n=z.1D(E),s=1E(n),b=3G;C!b?z.au(n,s):z.fY(n,b.l,b.t,b.w,b.h,s)};z.lM=B(E,3G){A n=z.1D(E),s=1E(n),b=3G;C!b?z.aK(n,s):z.fX(n,b.w,b.h,s)};A 5H=B(E,1a){if(!(E=(E||0).1L)){C 0}A 1U,aJ=0,2h=z.3E();1s(E&&E.1c){if(1E(E).ax=="lL"){C 0}1U=E[1a];if(1U){aJ+=1U-0;if(E==2h){3f}}E=E.1L}C aJ};z.fQ=B(){A 2h=z.3E();A 3g=z.1W;A de=z.1e.5K;C{y:(3g.lK||de.5G||2h.5G||0),x:(3g.lJ||z.aH(de.5I)||2h.5I||0)}};z.aG=B(){C V z.aI=="1k"?(z.aI=z.3F(z.3E()).lI=="lH"):z.aI};z.aB=B(){A de=z.1e.5K;if(z.1l>=7){C{x:de.aC().2g,y:de.aC().5J}}I{C{x:z.aG()||26.am==26?de.fW:de.6v-de.aF-de.fW,y:de.lG}}};z.aH=B(aE){if(z.1l&&!z.aG()){A de=z.1e.5K;C aE+de.aF-de.lF}C aE};z.fP=B(E,aw){A ay=E.aD;A J={x:0,y:0};A 7w=U;A db=z.3E();if(z.1l){A aA=E.aC();A az=z.aB();J.x=aA.2g-az.x;J.y=aA.5J-az.y}I{if(ay["fV"]){A bo=ay.fV(E);J.x=bo.x-5H(E,"5I");J.y=bo.y-5H(E,"5G")}I{if(E["fR"]){7w=K;A 7x;if(z.3o&&(1E(E).ax=="fU")&&(E.1L==db)){7x=db}I{7x=db.1L}if(E.1L!=db){A nd=E;if(z.2M){nd=db}J.x-=5H(nd,"5I");J.y-=5H(nd,"5G")}A 4f=E;do{A n=4f["fT"];if(!z.2M||n>0){J.x+=2L(n)?0:n}A m=4f["fS"];J.y+=2L(m)?0:m;4f=4f.fR}1s((4f!=7x)&&4f)}I{if(E["x"]&&E["y"]){J.x+=2L(E.x)?0:E.x;J.y+=2L(E.y)?0:E.y}}}}if(7w||aw){A av=z.fQ();A m=7w?(!aw?-1:0):1;J.y+=m*av.y;J.x+=m*av.x}C J};z.af=B(E,fO){A n=z.1D(E),s=1E(n),mb=z.au(n,s);A at=z.fP(n,fO);mb.x=at.x;mb.y=at.y;C mb}})();z.fL=B(E,fN){C((" "+E.3A+" ").T(" "+fN+" ")>=0)};z.7s=B(E,ar){A 7v=E.3A;if((" "+7v+" ").T(" "+ar+" ")<0){E.3A=7v+(7v?" ":"")+ar}};z.7r=B(E,fM){A t=z.7g((" "+E.3A+" ").2f(" "+fM+" "," "));if(E.3A!=t){E.3A=t}};z.lE=B(E,aq,7u){if(V 7u=="1k"){7u=!z.fL(E,aq)}z[7u?"7s":"7r"](E,aq)}}if(!z.1h["z.X.1H"]){z.1h["z.X.1H"]=K;z.1Q("z.X.1H");(B(){A d=z;z.1H=B(){A F=P;if((F.G==1)&&(V F[0]=="4J")){D.G=eK(F[0])}I{if(F.G){d.1n(F,B(i){D.Y(i)},D)}}};z.1H.1C=S 4e;if(d.1l){A fK=B(al){C("A a2 = am."+al+"; "+"A ap = 4e.1C; "+"A ao = a2.1C; "+"R(A x in ao){ ap[x] = ao[x]; } "+"am."+al+" = 4e; ")};A fI=fK("z.1H");A aj=26.lD();aj.1q.fJ("<ak>"+fI+"</ak>");aj.lC(1,1,1,1)}z.4M(z.1H,{T:B(fH,fG){C d.T(D,fH,fG)},31:B(lB,lA){A aa=d.4d(P);aa.ae(D);C d.31.14(d,aa)},ah:B(fF,fE){C d.ah(D,fF,fE)},ag:B(fD,fC){C d.ag(D,fD,fC)},1n:B(fB,fA){d.1n(D,fB,fA);C D},23:B(7t,M){C d.23(D,7t,M,d.1H)},af:B(){C d.23(D,d.af)},1c:B(lz,ly){A aa=d.4d(P);aa.ae(D[0]);A s=d.1c.14(d,aa);C(P.G>1)?D:s},lx:B(lw,lv){A aa=d.4d(P);aa.ae(L);A s=D.23(B(i){aa[0]=i;C d.1c.14(d,aa)});C(P.G>1)?D:s},7s:B(fz){C D.1n(B(i){z.7s(i,fz)})},7r:B(fy){C D.1n(B(i){z.7r(i,fy)})},5E:B(fw,7q){A 1m=d.1r(fw)[0];7q=7q||"72";R(A x=0;x<D.G;x++){d.5E(D[x],1m,7q)}C D},2c:B(fv,fu,ft){D.1n(B(1m){d.2c(1m,fv,fu,ft)});C D},lu:B(ad){A ac=(ad)?d.9t(D,ad):D;ac.1n(B(1m){if(1m["1L"]){1m.1L.fs(1m)}});C ac},lt:B(fr,fq){A 1m=D[0];C d.1r(fr).1n(B(ai){d.5E(ai,1m,(fq||"72"))})},1r:B(7p){7p=7p||"";A J=S d.1H();D.1n(B(1m){d.1r(7p,1m).1n(B(ab){if(V ab!="1k"){J.Y(ab)}})});C J},3T:B(fo){A 5F=D;A 1V=P;A r=S d.1H();A rp=B(t){if(V t!="1k"){r.Y(t)}};if(d.1R(fo)){5F=d.9t(D,1V[0]);if(1V.G==1){C 5F}d.1n(d.3T(5F,1V[1],1V[2]),rp);C r}d.1n(d.3T(5F,1V[0],1V[1]),rp);C r},lr:B(7o,7n){A 1S=d.1e.a9("lq");if(d.1R(7o)){1S.9L=7o}I{1S.4c(7o)}A ct=((7n=="9M")||(7n=="a8"))?"fm":"5A";D.1n(B(1m){A 24=1S.a7(K);1s(24[ct]){d.5E(24[ct],1m,7n)}});C D},7m:B(fl,F){A a5=[];F=F||{};D.1n(B(1m){A a6={E:1m};d.1x(a6,F);a5.Y(d[fl](a6))});C d.fx.lp(a5)},8I:B(F){C D.7m("8I",F)},8H:B(F){C D.7m("8H",F)},6y:B(F){C D.7m("6y",F)}});z.1n(["fk","lo","fj","fi","ln","lm","ll","fi","lk","lj","4b"],B(H){A a4="on"+H;z.1H.1C[a4]=B(a,b){C D.2c(a4,a,b)}})})()}if(!z.1h["z.X.1r"]){z.1h["z.X.1r"]=K;z.1Q("z.X.1r");(B(){A d=z;A 2I=B(q){C[q.T("#"),q.T("."),q.T("["),q.T(":")]};A a0=B(a3,fh){A ql=a3.G;A i=2I(a3);A 1d=ql;R(A x=fh;x<i.G;x++){if(i[x]>=0){if(i[x]<1d){1d=i[x]}}}C(1d<0)?ql:1d};A 6X=B(7l){A i=2I(7l);if(i[0]!=-1){C 7l.21(i[0]+1,a0(7l,1))}I{C""}};A 5r=B(7k){A 5D;A i=2I(7k);if((i[0]==0)||(i[1]==0)){5D=0}I{5D=a0(7k,0)}C((5D>0)?7k.3b(0,5D).1M():"*")};A fg=B(Q){A J=-1;R(A x=0;x<Q.G;x++){A 1S=Q[x];if(1S>=0){if((1S>J)||(J==-1)){J=1S}}}C J};A 9H=B(7i){A i=2I(7i);if(-1==i[1]){C""}A di=i[1]+1;A 7j=fg(i.2w(2));if(di<7j){C 7i.21(di,7j)}I{if(-1==7j){C 7i.3b(di)}I{C""}}};A f3=[{1i:"|=",1f:B(15,fe){C"[5z(3U(\' \',@"+15+",\' \'), \' "+fe+"-\')]"}},{1i:"~=",1f:B(15,fd){C"[5z(3U(\' \',@"+15+",\' \'), \' "+fd+" \')]"}},{1i:"^=",1f:B(15,fb){C"[li-4G(@"+15+", \'"+fb+"\')]"}},{1i:"*=",1f:B(15,fa){C"[5z(@"+15+", \'"+fa+"\')]"}},{1i:"$=",1f:B(15,9Z){C"[21(@"+15+", 3c-G(@"+15+")-"+(9Z.G-1)+")=\'"+9Z+"\']"}},{1i:"!=",1f:B(15,f9){C"[3O(@"+15+"=\'"+f9+"\')]"}},{1i:"=",1f:B(15,f8){C"[@"+15+"=\'"+f8+"\']"}}];A 9C=B(9Y,3Z,f7,f6){A 49;A i=2I(3Z);if(i[2]>=0){A 4L=3Z.T("]",i[2]);A 29=3Z.21(i[2]+1,4L);1s(29&&29.G){if(29.2s(0)=="@"){29=29.2w(1)}49=L;R(A x=0;x<9Y.G;x++){A 1S=9Y[x];A 7h=29.T(1S.1i);if(7h>=0){A 15=29.21(0,7h);A 4a=29.21(7h+1S.1i.G);if((4a.2s(0)=="\\"")||(4a.2s(0)=="\'")){4a=4a.21(1,4a.G-1)}49=1S.1f(d.7g(15),d.7g(4a));3f}}if((!49)&&(29.G)){49=f7(29)}if(49){f6(49)}29=L;A 7f=3Z.T("[",4L);if(0<=7f){4L=3Z.T("]",7f);if(0<=4L){29=3Z.21(7f+1,4L)}}}}};A f0=B(f5){A 4K=".";A 7e=f5.1A(" ");1s(7e.G){A 2K=7e.3a();A 7d;if(2K==">"){7d="/";2K=7e.3a()}I{7d="//"}A f4=5r(2K);4K+=7d+f4;A id=6X(2K);if(id.G){4K+="[@id=\'"+id+"\'][1]"}A cn=9H(2K);if(cn.G){A 9X=" ";if(cn.2s(cn.G-1)=="*"){9X="";cn=cn.3b(0,cn.G-1)}4K+="[5z(3U(\' \',@9P,\' \'), \' "+cn+9X+"\')]"}9C(f3,2K,B(f2){C"[@"+f2+"]"},B(f1){4K+=f1})}C 4K};A 7a={};A eC=B(28){if(7a[28]){C 7a[28]}A 1e=d.1e;A 9W=f0(28);A 4H=B(9V){A J=[];A 7b;1u{7b=1e.9x(9W,9V,L,lh.lg,L)}1y(e){1z.1K("lf in le:",9W,"lc:",9V);1z.1K(e)}A 7c=7b.eZ();1s(7c){J.Y(7c);7c=7b.eZ()}C J};C 7a[28]=4H};A 5x={};A 9B={};A 3y=B(79,78){if(!79){C 78}if(!78){C 79}C B(){C 79.14(26,P)&&78.14(26,P)}};A 75=B(9U,3Y,5B,2J){A 2v=2J+1;A 76=(3Y.G==2v);A 2K=3Y[2J];if(2K==">"){A 77=9U.3W;if(!77.G){C}2v++;76=(3Y.G==2v);A 4H=6O(3Y[2J+1]);R(A x=0,11;x<77.G,11=77[x];x++){if(4H(11)){if(76){5B.Y(11)}I{75(11,3Y,5B,2v)}}}}A 5C=6U(2K)(9U);if(76){1s(5C.G){5B.Y(5C.3a())}}I{1s(5C.G){75(5C.3a(),3Y,5B,2v)}}};A eE=B(9T,eY){A J=[];A x=9T.G-1,11;1s(11=9T[x--]){75(11,eY,J,0)}C J};A 6O=B(3D){if(5x[3D]){C 5x[3D]}A ff=L;A 9S=5r(3D);if(9S!="*"){ff=3y(ff,B(N){C((N.2t==1)&&(9S==N.5w.1M()))})}A 9R=6X(3D);if(9R.G){ff=3y(ff,B(N){C((N.2t==1)&&(N.id==9R))})}if(2Y.5q.14(D,2I(3D).2w(1))>=0){ff=3y(ff,9z(3D))}C 5x[3D]=ff};A 5y=B(E){A pn=E.1L;A 9Q=pn.3W;A 2v=-1;A 3C=pn.5A;if(!3C){C 2v}A ci=E["eW"];A cl=pn["eX"];if(((V cl=="4J")&&(cl!=9Q.G))||(V ci!="4J")){pn["eX"]=9Q.G;A 2J=1;do{if(3C===E){2v=2J}if(3C.2t==1){3C["eW"]=2J;2J++}3C=3C.71}1s(3C)}I{2v=ci}C 2v};A lb=0;A 3X=B(N,15){A 74="";if(15=="9P"){C N.3A||74}if(15=="R"){C N.la||74}C N.5t(15,2)||74};A eH=[{1i:"|=",1f:B(15,9O){A eV=" "+9O+"-";C B(N){A ea=" "+(N.5t(15,2)||"");C((ea==9O)||(ea.T(eV)==0))}}},{1i:"^=",1f:B(15,eU){C B(N){C(3X(N,15).T(eU)==0)}}},{1i:"*=",1f:B(15,eT){C B(N){C(3X(N,15).T(eT)>=0)}}},{1i:"~=",1f:B(15,eS){A 9N=" "+eS+" ";C B(N){A ea=" "+3X(N,15)+" ";C(ea.T(9N)>=0)}}},{1i:"$=",1f:B(15,73){A 9N=" "+73;C B(N){A ea=" "+3X(N,15);C(ea.31(73)==(ea.G-73.G))}}},{1i:"!=",1f:B(15,eR){C B(N){C(3X(N,15)!=eR)}}},{1i:"=",1f:B(15,eQ){C B(N){C(3X(N,15)==eQ)}}}];A 9E=[{1i:"9M-9K",1f:B(1p,l9){C B(N){if(N.2t!=1){C U}A fc=N.eP;1s(fc&&(fc.2t!=1)){fc=fc.eP}C(!fc)}}},{1i:"72-9K",1f:B(1p,l8){C B(N){if(N.2t!=1){C U}A nc=N.71;1s(nc&&(nc.2t!=1)){nc=nc.71}C(!nc)}}},{1i:"l7",1f:B(1p,l6){C B(N){A cn=N.3W;A eO=N.3W.G;R(A x=eO-1;x>=0;x--){A nt=cn[x].2t;if((nt==1)||(nt==3)){C U}}C K}}},{1i:"5z",1f:B(1p,eN){C B(N){C(N.9L.T(eN)>=0)}}},{1i:"3O",1f:B(1p,eM){A eL=6O(eM);C B(N){C(!eL(N))}}},{1i:"l5-9K",1f:B(1p,2u){A pi=eK;if(2u=="l4"){C B(N){C(((5y(N))%2)==1)}}I{if((2u=="2n")||(2u=="l3")){C B(N){C((5y(N)%2)==0)}}I{if(2u.T("l2+")==0){A 70=pi(2u.3b(3));C B(N){C(N.1L.3W[70-1]===N)}}I{if((2u.T("n+")>0)&&(2u.G>3)){A 9J=2u.1A("n+",2);A eJ=pi(9J[0]);A 2J=pi(9J[1]);C B(N){C((5y(N)%eJ)==2J)}}I{if(2u.T("n")==-1){A 70=pi(2u);C B(N){C(5y(N)==70)}}}}}}}}];A 9z=B(3e){A 9I=(9B[3e]||5x[3e]);if(9I){C 9I}A ff=L;A i=2I(3e);if(i[0]>=0){A 24=5r(3e);if(24!="*"){ff=3y(ff,B(N){C(N.5w.1M()==24)})}}A 5u;A 3B=9H(3e);if(3B.G){A 9F=3B.2s(3B.G-1)=="*";if(9F){3B=3B.3b(0,3B.G-1)}A re=S 9G("(?:^|\\\\s)"+3B+(9F?".*":"")+"(?:\\\\s|$)");ff=3y(ff,B(N){C re.6Z(N.3A)})}if(i[3]>=0){A 3z=3e.3b(i[3]+1);A 9D="";A 5v=3z.T("(");A 6Y=3z.31(")");if((0<=5v)&&(0<=6Y)&&(6Y>5v)){9D=3z.21(5v+1,6Y);3z=3z.3b(0,5v)}5u=L;R(A x=0;x<9E.G;x++){A 1S=9E[x];if(1S.1i==3z){5u=1S.1f(3z,9D);3f}}if(5u){ff=3y(ff,5u)}}A eG=(d.1l)?B(5s){A eI=5s.1M();C B(N){C N[5s]||N[eI]}}:B(5s){C B(N){C(N&&N.5t&&N.l1(5s))}};9C(eH,3e,eG,B(eF){ff=3y(ff,eF)});if(!ff){ff=B(){C K}}C 9B[3e]=ff};A 6W={};A 6U=B(3d,1B){A 9A=6W[3d];if(9A){C 9A}A i=2I(3d);A id=6X(3d);if(i[0]==0){C 6W[3d]=B(1B){C[d.1D(id)]}}A 9y=9z(3d);A 5p;if(i[0]>=0){5p=B(1B){A 11=d.1D(id);if(9y(11)){C[11]}}}I{A 3V;A 24=5r(3d);if(2Y.5q.14(D,2I(3d))==-1){5p=B(1B){A J=[];A 11,x=0,3V=1B.4I(24);1s(11=3V[x++]){J.Y(11)}C J}}I{5p=B(1B){A J=[];A 11,x=0,3V=1B.4I(24);1s(11=3V[x++]){if(9y(11)){J.Y(11)}}C J}}}C 6W[3d]=5p};A l0={};A 5o={">":B(1B){A J=[];A 11,x=0,3V=1B.3W;1s(11=3V[x++]){if(11.2t==1){J.Y(11)}}C J}};A 9w=B(6V){if(0>6V.T(" ")){C 6U(6V)}A eD=B(1B){A 6S=6V.1A(" ");A 6T;if(6S[0]==">"){6T=[1B]}I{6T=6U(6S.3a())(1B)}C eE(6T,6S)};C eD};A 9v=((1q["9x"]&&!d.3o)?B(3x){A 6R=3x.1A(" ");if((1q["9x"])&&(3x.T(":")==-1)&&((K))){if(((6R.G>2)&&(3x.T(">")==-1))||(6R.G>3)||(3x.T("[")>=0)||((1==6R.G)&&(0<=3x.T(".")))){C eC(3x)}}C 9w(3x)}:9w);A ey=B(3w){if(5o[3w]){C 5o[3w]}if(0>3w.T(",")){C 5o[3w]=9v(3w)}I{A eB=3w.1A(/\\s*,\\s*/);A 4H=B(1B){A eA=0;A J=[];A 6Q;1s(6Q=eB[eA++]){J=J.3U(9v(6Q,6Q.T(" "))(1B))}C J};C 5o[3w]=4H}};A 5n=0;A ez=B(Q){A J=S d.1H();if(!Q){C J}if(Q[0]){J.Y(Q[0])}if(Q.G<2){C J}5n++;Q[0]["9u"]=5n;R(A x=1,11;11=Q[x];x++){if(Q[x]["9u"]!=5n){J.Y(11)}11["9u"]=5n}C J};d.1r=B(6P,1B){if(V 6P!="3c"){C S d.1H(6P)}if(V 1B=="3c"){1B=d.1D(1B)}C ez(ey(6P)(1B||d.1e))};d.9t=B(ex,9s){A 9r=S d.1H();A ff=(9s)?6O(9s):B(){C K};R(A x=0,11;11=ex[x];x++){if(ff(11)){9r.Y(11)}}C 9r}})()}if(!z.1h["z.X.1b"]){z.1h["z.X.1b"]=K;z.1Q("z.X.1b");z.6K=B(ew){A J={};A iq="kZ[Z!=9q][Z!=kY][Z!=et][Z!=kX][Z!=kW], kV, kU";z.1r(iq,ew).3T(B(E){C(!E.kT)}).1n(B(1m){A 3v=1m.1p;A Z=(1m.Z||"").1M();if((Z=="kS")||(Z=="kR")){if(1m.kQ){J[3v]=1m.1Z}}I{if(1m.kP){A ev=J[3v]=[];z.1r("kO[kN]",1m).1n(B(eu){ev.Y(eu.1Z)})}I{J[3v]=1m.1Z;if(Z=="et"){J[3v+".x"]=J[3v+".y"]=J[3v].x=J[3v].y=0}}}});C J};z.9h=B(23){A ec=kM;A J="";A es={};R(A x in 23){if(23[x]!=es[x]){if(z.2l(23[x])){R(A y=0;y<23[x].G;y++){J+=ec(x)+"="+ec(23[x][y])+"&"}}I{J+=ec(x)+"="+ec(23[x])+"&"}}}if((J.G)&&(J.2s(J.G-1)=="&")){J=J.3b(0,J.G-1)}C J};z.kL=B(er){C z.9h(z.6K(er))};z.kK=B(ep){C z.eq(z.6K(ep))};z.kJ=B(2H){A J={};A qp=2H.1A("&");A dc=kI;z.1n(qp,B(1m){if(1m.G){A 9p=1m.1A("=");A 1p=dc(9p.3a());A 1U=dc(9p.22("="));if(z.1R(J[1p])){J[1p]=[J[1p]]}if(z.2l(J[1p])){J[1p].Y(1U)}I{J[1p]=1U}}});C J};z.e1=U;z.e6={"9g":B(1b){C 1b.2G},"2e":B(1b){if(!1o.eo){1z.1K("kH kG kF a kE of 9g/2e-6M-9m"+" 4F kD kC kB kA 4G en kz"+" (ky 1o.eo=K 4F kx kw D kv)")}C z.5m(1b.2G)},"2e-6M-ku":B(1b){A 6N=1b.2G;A 9o=6N.T("/*");A 9n=6N.31("*/");if((9o==-1)||(9n==-1)){C z.5m(1b.2G)}C z.5m(6N.21(9o+2,9n))},"2e-6M-9m":B(1b){A 6L=1b.2G;A 9l=6L.T("/*");A 9k=6L.31("*/");if((9l==-1)||(9k==-1)){1z.1K("kt en ks\'t 6M 9m!");C""}C z.5m(6L.21(9l+2,9k))},"kr":B(1b){C z.3u(1b.2G)},"kq":B(1b){if(z.1l&&!1b.el){z.1n(["ko","em","kn","km"],B(i){1u{A 1e=S 9j(kl[i]+".kk");1e.kj=U;1e.ki(1b.2G);C 1e}1y(e){}})}I{C 1b.el}}};(B(){z.e5=B(F,ej,ei,eh){A 2F={};2F.F=F;A 6J=L;if(F.3R){A 3R=z.1D(F.3R);A 9i=3R.kh("kg");2F.2E=F.2E||(9i?9i.1Z:L);6J=z.6K(3R)}I{2F.2E=F.2E}A 5l=[{}];if(6J){5l.Y(6J)}if(F.5g){5l.Y(F.5g)}if(F.ek){5l.Y({"z.ek":S 5d().8O()})}2F.1r=z.9h(z.1x.14(L,5l));2F.9d=F.9d||"9g";A d=S z.30(ej);d.5k(ei,B(eg){C eh(eg,d)});A ld=F.4E;if(ld&&z.1Y(ld)){d.ef(B(ee){C ld.2d(F,ee,2F)})}A 1G=F.9f;if(1G&&z.1Y(1G)){d.ed(B(e9){C 1G.2d(F,e9,2F)})}A 6I=F.kf;if(6I&&z.1Y(6I)){d.9e(B(e8){C 6I.2d(F,e8,2F)})}d.1F=2F;C d};A e4=B(O){O.e0=K;A 1b=O.1F.1b;if(V 1b.e7=="B"){1b.e7()}};A e3=B(O){C z.e6[O.1F.9d](O.1F.1b)};A e2=B(9c,O){1z.1K(9c);C 9c};A 3Q=B(F){A O=z.e5(F,e4,e3,e2);O.1F.1b=z.9b(O.1F.F);C O};A 5j=L;A 3t=[];A 94=B(){A dZ=(S 5d()).dU();if(!z.e1){z.1n(3t,B(4D,6H){if(!4D){C}A O=4D.O;1u{if(!O||O.e0||!4D.dT(O)){3t.3S(6H,1);C}if(4D.dR(O)){3t.3S(6H,1);4D.dP(O)}I{if(O.9a){if(O.9a+(O.1F.F.6G||0)<dZ){3t.3S(6H,1);A 1G=S 1O("6G ke");1G.dY="6G";O.5i(1G);O.4C()}}}}1y(e){1z.1K(e);O.5i(S 1O("kc!"))}})}if(!3t.G){dX(5j);5j=L;C}};z.dV=B(){1u{z.1n(3t,B(i){i.O.4C()})}1y(e){}};if(z.1l){z.dW(z.dV)}z.dH=B(O,dS,dQ,dO){if(O.1F.F.6G){O.9a=(S 5d()).dU()}3t.Y({O:O,dT:dS,dR:dQ,dP:dO});if(!5j){5j=dN(94,50)}94()};A dJ="8Z/x-kb-3R-ka";A dG=B(O){C O.1F.1b.6F};A dF=B(O){C 4==O.1F.1b.6F};A dE=B(O){if(z.8Y(O.1F.1b)){O.dM(O)}I{O.5i(S 1O("k9 k8 k7 5h:"+O.1F.1b.3N))}};A 3P=B(Z,O){A 3s=O.1F;A F=3s.F;3s.1b.dL(Z,3s.2E,(F.k6!==K),(F.8X?F.8X:1k),(F.8W?F.8W:1k));if(F.6E){R(A 5f in F.6E){if(5f.1M()==="5g-Z"&&!F.8V){F.8V=F.6E[5f]}I{3s.1b.dK(5f,F.6E[5f])}}}3s.1b.dK("k5-k4",(F.8V||dJ));1u{3s.1b.dI(3s.1r)}1y(e){O.4C()}z.dH(O,dG,dF,dE);C O};z.8T=B(4B){if(4B.1r.G){4B.2E+=(4B.2E.T("?")==-1?"?":"&")+4B.1r;4B.1r=L}};z.k3=B(F){A O=3Q(F);z.8T(O.1F);C 3P("dD",O)};z.k2=B(F){C 3P("dC",3Q(F))};z.k1=B(F){A O=3Q(F);O.1F.1r=F.k0;C 3P("dC",O)};z.jZ=B(F){C 3P("dA",3Q(F))};z.jY=B(F){A O=3Q(F);A dB=O.1F;if(F["8U"]){dB.1r=F.8U;F.8U=L}C 3P("dA",O)};z.jX=B(F){A O=3Q(F);z.8T(O.1F);C 3P("8S",O)};z.dz=B(jW){2m S 1O("z.dz 3O jV jU")}})()}if(!z.1h["z.X.fx"]){z.1h["z.X.fx"]=K;z.1Q("z.X.fx");z.dx=B(dy,1d){D.1w=dy;D.1d=1d;D.4x=B(n){C((D.1d-D.1w)*n)+D.1w}};z.2r("z.d6",L,{1P:B(F){z.1x(D,F);if(z.2l(D.2C)){D.2C=S z.dx(D.2C[0],D.2C[1])}},2C:L,8Q:jT,5a:L,4z:0,dj:10,du:L,6x:L,dt:L,8B:L,dh:L,ds:L,dr:L,dm:L,2D:U,2Z:U,4A:L,8N:L,3r:L,2o:0,4y:0,3q:B(H,F){if(D[H]){D[H].14(D,F||[])}C D},5b:B(dw,8R){if(8R){5e(D.3r);D.2D=D.2Z=U;D.2o=0}I{if(D.2D&&!D.2Z){C D}}D.3q("6x");A d=dw||D.du;if(d>0){5c(z.2p(D,B(){D.5b(L,8R)}),d);C D}D.4A=S 5d().8O();if(D.2Z){D.4A-=D.8Q*D.2o}D.8N=D.4A+D.8Q;D.2D=K;D.2Z=U;A 8P=D.2C.4x(D.2o);if(!D.2o){if(!D.4y){D.4y=D.4z}D.3q("dt",[8P])}D.3q("ds",[8P]);D.8M();C D},jS:B(){5e(D.3r);if(!D.2D){C D}D.2Z=K;D.3q("dr",[D.2C.4x(D.2o)]);C D},jR:B(dq,dp){5e(D.3r);D.2D=D.2Z=K;D.2o=dq*6D;if(dp){D.5b()}C D},jQ:B(dn){if(!D.3r){C}5e(D.3r);if(dn){D.2o=1}D.3q("dm",[D.2C.4x(D.2o)]);D.2D=D.2Z=U;C D},3N:B(){if(D.2D){C D.2Z?"3M":"jP"}C"jO"},8M:B(){5e(D.3r);if(D.2D){A dl=S 5d().8O();A 2q=(dl-D.4A)/(D.8N-D.4A);if(2q>=1){2q=1}D.2o=2q;if(D.5a){2q=D.5a(2q)}D.3q("8B",[D.2C.4x(2q)]);if(2q<1){D.3r=5c(z.2p(D,"8M"),D.dj)}I{D.2D=U;if(D.4z>0){D.4z--;D.5b(L,K)}I{if(D.4z==-1){D.5b(L,K)}I{if(D.4y){D.4z=D.4y;D.4y=0}}}D.2o=0;D.3q("dh")}}C D}});(B(){A df=B(E){if(z.1l){A ns=E.1c;if(!ns.8L.G&&z.1c(E,"8L")=="dg"){ns.8L="1"}if(!ns.3n.G&&z.1c(E,"3n")=="8K"){ns.3n="8K"}}};z.6C=B(F){if(V F.1d=="1k"){2m S 1O("z.6C jN an 1d 1Z")}F.E=z.1D(F.E);A 3p=z.1x({6w:{}},F);A 8J=(3p.6w.2W={});8J.1w=(V 3p.1w=="1k")?B(){C 2V(z.1c(3p.E,"2W"))}:3p.1w;8J.1d=3p.1d;A 2U=z.6y(3p);z.2c(2U,"6x",L,B(){df(3p.E)});C 2U};z.8I=B(F){C z.6C(z.1x({1d:1},F))};z.8H=B(F){C z.6C(z.1x({1d:0},F))};if(z.6B&&!z.3o){z.8E=B(n){C 2k("0.5")+((2Y.da((n+2k("1.5"))*2Y.d9))/2)}}I{z.8E=B(n){C 0.5+((2Y.da((n+1.5)*2Y.d9))/2)}}A d4=B(6A){D.8G=6A;R(A p in 6A){A 1a=6A[p];if(1a.1w 1N z.1J){1a.d7=S z.1J()}}D.4x=B(r){A J={};R(A p in D.8G){A 1a=D.8G[p];A 6z=L;if(1a.1w 1N z.1J){6z=z.d8(1a.1w,1a.1d,r,1a.d7).8F()}I{if(!z.2l(1a.1w)){6z=((1a.1d-1a.1w)*r)+1a.1w+(p!="2W"?1a.jM||"px":"")}}J[p]=6z}C J}};z.6y=B(F){F.E=z.1D(F.E);if(!F.5a){F.5a=z.8E}A 2U=S z.d6(F);z.2c(2U,"6x",2U,B(){A pm={};R(A p in D.6w){A 1a=pm[p]=z.1x({},D.6w[p]);if(z.1Y(1a.1w)){1a.1w=1a.1w()}if(z.1Y(1a.1d)){1a.1d=1a.1d()}A d5=(p.1M().T("jL")>=0);B 8C(E,p){4w(p){2X"58":C E.8D;2X"3n":C E.6v}A v=z.1c(E,p);C(p=="2W")?2V(v):2k(v)};if(V 1a.1d=="1k"){1a.1d=8C(D.E,p)}I{if(V 1a.1w=="1k"){1a.1w=8C(D.E,p)}}if(d5){1a.1w=S z.1J(1a.1w);1a.1d=S z.1J(1a.1d)}I{1a.1w=(p=="2W")?2V(1a.1w):2k(1a.1w)}}D.2C=S d4(pm)});z.2c(2U,"8B",2U,B(8A){R(A s in 8A){z.1c(D.E,s,8A[s])}});C 2U}})()}',62,1711,'|||||||||||||||||||||||||||||||||||dojo|var|function|return|this|node|args|length|evt|else|ret|true|null|obj|elem|dfd|arguments|arr|for|new|indexOf|false|typeof||_base|push|type||te|||apply|attr|||||prop|xhr|style|end|doc|match|uri|_hasResource|key|del|undefined|isIE|item|forEach|djConfig|name|document|query|while|_66|try|res|start|mixin|catch|console|split|root|prototype|byId|gcs|ioArgs|err|NodeList|_p|Color|debug|parentNode|toLowerCase|instanceof|Error|constructor|provide|isString|ta|255|val|_a|global|_69|isFunction|value||substring|join|map|tn||window||path|_343|_220|_listeners|connect|call|json|replace|left|_b|toString|128|parseFloat|isArray|throw||_percent|hitch|step|declare|charAt|nodeType|_3c3|nidx|slice|faux|fired|_c4|_7e|loc|curve|_active|url|_44c|responseText|str|_312|idx|tqp|isNaN|isOpera|_22d|callee|add|_18b|_f8|_e2|_41|anim|Number|opacity|case|Math|_paused|Deferred|lastIndexOf|||||||||shift|substr|string|_3e7|_3ce|break|_w|charCode|_listener|_d5|_c5|authority|_49|width|isSafari|_49e|fire|_timer|_47b|_465|eval|_in|_40c|_409|_362|_3d9|className|_3d5|_386|_37a|body|getComputedStyle|box|_221|keyCode|remove|_8d|_46|paused|status|not|_478|_461|form|splice|filter|concat|tret|childNodes|_38b|_367|_33d||||||||||_340|_348|keypress|appendChild|_toArray|Array|_2b0|_toPixelValue|ref|_fixEvent|_19f|_14c|_14a|_150|_141|declaredClass|_d4|_99|_Url|_83|scheme|_67|_3d|switch|getValue|_startRepeatCount|repeat|_startTime|_47e|cancel|tif|load|to|with|tf|getElementsByTagName|number|_34c|_342|extend|_1e3|_normalizeEventName|_14b|_14e|results|self|cbfn|_f9|_d8|_b2|src|_88|dav||baseUrl|fragment|_loadedModules|_44|_43|_loaders|mll|height||easing|play|setTimeout|Date|clearTimeout|hdr|content|code|errback|_464|addCallbacks|_450|fromJson|_413|_3fc|_3ee|max|_31e|cond|getAttribute|_3d4|obi|tagName|_360|_381|contains|firstChild|_368|_372|_320|place|_2fa|scrollTop|_299|scrollLeft|top|documentElement|_288|_287|_getBorderExtents|_23f|_23d|_239|_218|_216|_211|eles|target|keys|shiftKey|ctrlKey|event|192|iel|_1db|delete|_1cf||addEventListener|String|_1af|_157|array|_14d|continue|_14f|_137|_11f|_106|_findMethod|has|_delegate|_dc|_d3|loaded|_9a|_loadInit|_inFlightCount|getObject|tv|_4f|_postLoad|_2d|offsetWidth|properties|beforeBegin|animateProperty|_4ad|_4a6|isKhtml|_fade|100|headers|readyState|timeout|_469|_457|_44d|formToObject|_441|comment|_43d|_36f|_419|tp|_40a|_406|_407|_373|_403|_3e6|_31b|cbi|test|_3c7|nextSibling|last|_3a1|_38e|_365|_36b|ecn|_364|_363|_356|_35e|_35f|_34f|_34d|_349|trim|tci|_328|_32b|_31f|_31c|_anim|_300|_2ff|_2f5|_2e7|removeClass|addClass|func|_2c4|cls|_2a9|_2ae|_280|_27f|_getPadExtents|isMoz|none|_233|cssText|_214|_fixCallback|_synthesizeEvent|stopPropagation|preventDefault|_setKeyChar|_1e1|ieh|_1d7|_1be|colorFromArray|sanitize|bits|rgb|_156|_fire|_resback|_13d|partial|_13a|silentlyCancelled|_topics|_127|_f1|_f0|superclass|_ec|_e3|mct|setObject|_bf|_b3|object|require|_92|_khtmlTimer|location|XMLHTTP|locale|dua|_71|_modulePrefixes|_55|_loadModule|_51|_50|_4e|pop|_3f|_callLoaded|_unloaders|_loadNotifying|_loadedUrls|_27|_24|_1d|_5|_4b7|onAnimate|getStyle|offsetHeight|_defaultEasing|toCss|_properties|fadeOut|fadeIn|_49f|auto|zoom|_cycle|_endTime|valueOf|_494|duration|_492|DELETE|_ioAddQueryToUrl|putData|contentType|password|user|_isDocumentOk|application|||||_466||||||startTime|_xhrObj|_45f|handleAs|addBoth|error|text|objectToQuery|_44f|ActiveXObject|_443|_442|filtered|_43f|_43e|_437|file|tnl|_41c|_filterQueryResult|_zipIdx|_408|_402|evaluate|_3ed|_380|fHit|_361|_33b|_3da|_3ab|_3d6|RegExp|_327|_3cf|_3c9|child|innerHTML|first|tval|_391|class|pnc|_37e|_37c|_375|_366|_35c|_35a|_353|_33c|_336|_314|||_315|_oe|_307|_309|cloneNode|after|createElement||_2f8|_2ef|_2ee|unshift|coords|some|every||_2cb|script|_2c9|parent||a2p||_2c3|_2bd||abs|_getMarginBox|_2b3|_2a6|position|_2a7|_2ac|_2ab|_getIeDocumentElementOffset|getBoundingClientRect|ownerDocument|_2a3|clientWidth|_isBodyLtr|_fixIeBiDiScrollLeft|_bodyLtr|_29d|_getContentBox|_setBox|_getMarginExtents|_getPadBorderExtents|_usesBorderBox|boxModel|pcs|st|sl|_240|runtimeStyle|_dcm|BackCompat|compatMode|default|_21b|_d|html|_event_listener|handlers|PAGE_DOWN|PAGE_UP|RIGHT_ARROW|LEFT_ARROW|DOWN_ARROW|UP_ARROW|_preventDefault||_stopPropagation|returnValue||_trySetKeyCode|cancelBubble|currentTarget|106|_1ee|111||_1e8|_1e7|||se|srcElement|onkeydown||_1d0|_disconnect|lid|_1c0|_connect|_set|_195|_185|_183|_17d|_everyOrSome|_16b|_172|_15b|Function|_154|_escapeString|_140|chain|_check|canceller|_12d|_124|_11a|_10d|_107|inherited|_fa|_f2|_findMixin|_constructor|preamble|_de|clone|tmp|_c7|TMP|_be|_ba|_mixin|isBrowser|lang|firebug||param|modulePaths|_a7|_fireCallback|_a0|setContext||_9c|unloaded||||_96|_93|navigator|_90|_89||protocol|_84|_86|_XMLHTTP_PROGIDS|gears|google|setAttribute|_80|_77|cfg|_6f|_getModuleSymbols|_5a|_58|_53|_4d|_4c|_45|_40|_moduleHasPrefix|_loadUri|_28|_26|_21|_22|tests|doh|_20|_1f|_1c|version|_1b|_19|_getProp|_11|_4|_4a5|_4b3|_Animation|tempColor|blendColors|PI|sin|||||_49a|normal|onEnd||rate||curr|onStop|_497||_496|pct|onPause|onPlay|onBegin|delay||_491|_Line|_48b|wrapForm|PUT|_487|POST|GET|_476|_474|_472|_ioWatch|send|_471|setRequestHeader|open|callback|setInterval|_470|resHandle|_46f|ioCheck|_46e|validCheck|getTime|_ioCancelAll|addOnUnload|clearInterval|dojoType|now|canceled|_blockAsync|_45e|_45c|_459|_ioSetArgs|_contentHandlers|abort|_458|_456||||addErrback|_454|addCallback|_452|_44b|_44a|_449|preventCache|responseXML|Microsoft|JSON|usePlainJson|_431|toJson|_430|_42d|image|opt|ria|_421|_41b|_40b|_zip|_410|_40d|_357|sqf|_374|_3e5|_3df|_38f|clc|pred|parseInt|ntf|_3bf|_3bc|cnl|previousSibling|_3a9|_3a6|_39c|_399|_396|_392|__cachedIndex|__cachedLength|_376|iterateNext|_34a|_355|_354|_32c|_350|_34b|_33f|_33e|_33a|_338|_334|_332||_330|_32e||_322|_316|mousemove|mouseout|mouseover|_305|lastChild||_2f9||_2f2|_2f1|removeChild|_2ec|_2eb|_2ea|_2e6||_2e4|_2e2|_2d6|_2d5|_2d4|_2d3|_2d2|_2d1|_2cd|_2cc|scs|write|_2c8|hasClass|_2c0|_2bb|_2b5|_abs|_docScroll|offsetParent|offsetTop|offsetLeft|absolute|getBoxObjectFor|clientLeft|_setContentSize|_setMarginBox|_28d|_286|_285|_289|NaN|_281|border|_272|_26b|_260|_258|_253|_24c|_246|_23a|_getOpacity|_setOpacity|_238|td|tr|nodeName|FILTER|_22f|_22e|currentStyle|_22c|_22b|display|QuirksMode|unselectable|_217|isMozilla|getElementById|attributes|all|_ie_listener|_getIeDispatcher|_1fd|NUM_LOCK|SCROLL_LOCK|INSERT|END|HOME|PAUSE|F12|F11|F10|F9|F8|F7|F6|F5|F4|F3|F2|F1|63232|SHIFT_TAB|TAB|keyIdentifier|_1f3|stopEvent|_punctMap|222|219|186|onkeypress|_stealthKeyDown|_fixKeys|relatedTarget|_1e0|_1df|_stealthKeydown|_1d6|_1d5|_1d1|_1ca|_1c9|_1cb|_1c2|_1c1|_1c3|_1c4|_1bc|_1b3|_1b2|colorFromHex|colorFromRgb|named|colorFromString|mask|rgba|_19c|_197|_192|setColor|_180|_178|_177|_175|_174|_16d|_166|_164|_163|_162|_15c|_15d|_15e|index|__json__|toJsonIndentStr|_nextId|_12f|_12b|publish|_128|_126|_125|_122|_121|_123|_11c|_11b|_10c|_10b|_108|getDispatcher|argument|nom|_construct|_core|_makeCtor|_df|_db|deprecated|isObject|_cc||scope||_hitchArgs|_c2||pre|_c1|native|isDebug||registerModulePath|_a8||finally|||_a6|_a5|_a4|_a3|_a2|_a1|_9f|_9e|_9d|_9b|_98|_97|onbeforeunload|ipt|scr|complete|_95|userAgent|_modulesLoaded|initialized|_initFired|_8c|_8a|_getText|_87|ieForceActiveXXhr|Msxml2|isGears|_81|_gearsObject|googlegears|GearsFactory|isFF|_7d|Safari|_72|_name|_6c|ire|ore|_68|i18n|_5b|requireIf|_56|_52|loading|_4a|_loadPath|_47|_48|_global_omit_module_check|_getModulePrefix|_3c|_3a|_37|_30|Boolean|_loadUriAndCheck|_2e||cacheBust|_1e|_1a|_17|_16|_15|_14|_f|_10|_e|_9|_8|revision|flag|patch|minor|major|_6|color|units|needs|stopped|playing|stop|gotoPercent|pause|1000|implemented|yet|_48a|xhrDelete|rawXhrPut|xhrPut|postData|rawXhrPost|xhrPost|xhrGet|Type|Content|sync|response|http|bad|urlencoded|www|_watchInFlightError||exceeded|handle|action|getAttributeNode|loadXML|async|XMLDOM|prefixes|MSXML3|MSXML|MSXML2||xml|javascript|wasn|your|optional|message|off|turn|use|endpoints|issues|security|potential|avoid|mimetype|using|consider|please|decodeURIComponent|queryToObject|formToJson|formToQuery|encodeURIComponent|selected|option|multiple|checked|checkbox|radio|disabled|textarea|select|button|reset|submit|input|_3fb|hasAttribute|0n|even|odd|nth|_3b5|empty|_3b1|_3ad|htmlFor|_38a|under||exprssion|failure|ANY_TYPE|XPathResult|starts|keyup|keydown|mouseup|mousedown|blur|click|combine|span|addContent||adopt|orphan|_2de|_2dd|styles|_2da|_2d9|_2cf|_2ce|show|createPopup|toggleClass|scrollWidth|clientTop|ltr|direction|pageXOffset|pageYOffset|fixed|contentBox|marginBox|BUTTON|TABLE|_getBorderBox|clientHeight|visible|overflow|marginBottom|marginRight|marginTop|marginLeft|borderBottomWidth|borderBottomStyle|borderRightWidth|borderRightStyle|borderTopWidth|borderTopStyle|borderLeftWidth|borderLeftStyle|paddingBottom|paddingRight|paddingTop|paddingLeft|offset||min|padding||margin|Opacity|Alpha|alpha|filters|pixelLeft|medium|_22a|defaultView|before||insertBefore|KhtmlUserSelect|MozUserSelect|setSelectable|isDescendant|div|_destroyElement|BackgroundImageCache|execCommand|PageDown|PageUp|Right|Left|Down|Up|63289|63249|63248|PRINT_SCREEN|63302|63277|63276|63275|63273|63272|63250|63247|63246|63245|63244|63243|63242|63241|63240|63239|63238|63237|63236|63235|63234|63233|Enter|_1f9|which|_1f6|bubbledKeyCode|221|220||||191|190|189|188|187|toElement|fromElement|clientY|pageY||clientX|pageX|offsetY|||layerY|offsetX|layerX|parentWindow|_nop|_allow_leaks|145|144|126|F15|125|F14|124|F13|123|122|121|120|119|118|117|116|115|114|113|112|NUMPAD_DIVIDE|110|NUMPAD_PERIOD|109|NUMPAD_MINUS|108|NUMPAD_ENTER|107|NUMPAD_PLUS|NUMPAD_MULTIPLY|105|NUMPAD_9|104|NUMPAD_8|103|NUMPAD_7|102|NUMPAD_6|101|NUMPAD_5|NUMPAD_4||NUMPAD_3|NUMPAD_2|NUMPAD_1|NUMPAD_0||SELECT|RIGHT_WINDOW||LEFT_WINDOW||HELP|SPACE|ESCAPE|CAPS_LOCK|ALT|CTRL|SHIFT|ENTER|CLEAR|BACKSPACE|attachEvent|fixEvent|fromCharCode|keyChar|_1b9|removeEventListener|0x|round|toHex|toRgba|toRgb|aqua|teal|blue|navy|yellow|olive|lime|green|fuchsia|purple|red|maroon|white|gray|silver|black|boolean|called|already|Cancelled|connectPublisher|unsubscribe|subscribe|disconnect|_113|_112||_111|_110|||found|was||must|_|module|||required|likely|It|declaration|Mixin|separate|instead|property|initializer||pass|_c9|_bb|_b7|nfunction|isAlien|isFinite|isArrayLike|_firebug|withDoc|withGlobal|_writeIncludes|VML|behavior|addRule|createStyleSheet|vml|com|microsoft|schemas|urn|namespaces|onunload|onreadystatechange|defer|khtml|WebKit|DOMContentLoaded|enableMozDomContentLoaded|domcontentloaded|Unable|base|chrome|1223|304|300|200|available|XMLHttpRequest|_println|language|userLanguage|isQuirks|factory|mimeTypes|Factory|Gears|_7f|MSIE||Firefox|Gecko|Konqueror||Opera|appVersion|xd|browser|moduleUrl|port|host|hostenv|_requireLocalization|_5f|_5e|_5d|_5c|requireLocalization|requireAfterIf|_57|common|platformRequire|defined|symbol|_isXDomain|tried|Could|__package__|packageFileName|_42|useXDomain|flight|still|files|addOnLoad|failed|sourceURL|util|notice|without|change|subject|APIs|EXPERIMENTAL|experimental|removed|will|DEPRECATED|exists|10315|Rev|Mobile|Spidermonkey|Rhino||Browser|delayMozLoadingFix|preventBackButtonFix|libraryScriptUri|baseRelativePath|baseScriptUri|allowQueryConfig|warn|trace|timeEnd||time|profileEnd|profile|log|info|groupEnd|group|dirxml|dir|count|assert'.split('|'),0,{});
+
+
+/*
+
+Prototype 1.5 rc0
+ - Adapted from Ruby on Rails - http://dev.rubyonrails.org/browser/spinoffs/prototype/src
+ - By Lunarmedia, 06 August, 2006
+ - Available at (and packed with) JavascriptCompressor.com
+
+Please note this version is missing the selector.js component of the full Prototype library.
+You can get the compressed version of selector at JavascriptCompressor.com
+
+*/
+
+var decompressedPrototype = function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[(function(e){return d[e]})];e=(function(){return'\\w+'});c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('d T={4l:\'1.5.8P\',3E:\'(?:<3G.*?>)((\\n|\\r|.)*?)(?:<\\/3G>)\',2v:7(){},K:7(x){c x}};d 1b={17:7(){c 7(){6.1I.2n(6,N)}}};d 1e=z q();q.u=7(5d,O){G(d 1G 2M O){5d[1G]=O[1G]}c 5d};q.1U=7(U){1j{f(U==1v)c\'1v\';f(U==1L)c\'1L\';c U.1U?U.1U():U.2C()}1s(e){f(e 8R 9l)c\'...\';25 e}};7j.v.1d=7(){d 43=6,23=$A(N),U=23.8S();c 7(){c 43.2n(U,23.3s($A(N)))}};7j.v.8U=7(U){d 43=6;c 7(C){c 43.8V(U,C||1W.C)}};q.u(8Q.v,{8W:7(){d 4Z=6.2C(16);f(6<16)c\'0\'+4Z;c 4Z},5j:7(){c 6+1},8Y:7(o){$R(0,6,11).V(o);c 6}});d 6s={6j:7(){d 48;G(d i=0;i<N.t;i++){d 6L=N[i];1j{48=6L();1y}1s(e){}}c 48}};d 6Q=1b.17();6Q.v={1I:7(1a,1J){6.1a=1a;6.1J=1J;6.41=Y;6.2A()},2A:7(){5Z(6.2D.1d(6),6.1J*4z)},2D:7(){f(!6.41){1j{6.41=11;6.1a()}8Z{6.41=Y}}}};q.u(4b.v,{2T:7(1A,1z){d L=\'\',O=6,I;1z=N.90.52(1z);1H(O.t>0){f(I=O.I(1A)){L+=O.47(0,I.w);L+=(1z(I)||\'\').2C();O=O.47(I.w+I[0].t)}1D{L+=O,O=\'\'}}c L},92:7(1A,1z,3i){1z=6.2T.52(1z);3i=3i===1v?1:3i;c 6.2T(1A,7(I){f(--3i<0)c I[0];c 1z(I)})},93:7(1A,o){6.2T(1A,o);c 6},94:7(t,2S){t=t||30;2S=2S===1v?\'...\':2S;c 6.t>t?6.47(0,t-2S.t)+2S:6},9F:7(){c 6.2y(/^\\s+/,\'\').2y(/\\s+$/,\'\')},71:7(){c 6.2y(/<\\/?[^>]+>/7Y,\'\')},2Q:7(){c 6.2y(z 3O(T.3E,\'5P\'),\'\')},70:7(){d 6Y=z 3O(T.3E,\'5P\');d 5p=z 3O(T.3E,\'98\');c(6.I(6Y)||[]).1C(7(5o){c(5o.I(5p)||[\'\',\'\'])[1]})},3q:7(){c 6.70().1C(7(3G){c 4q(3G)})},9E:7(){d 1q=J.4Y(\'1q\');d 1Y=J.9D(6);1q.75(1Y);c 1q.3h},9c:7(){d 1q=J.4Y(\'1q\');1q.3h=6.71();c 1q.2z[0]?1q.2z[0].6q:\'\'},78:7(){d 7i=6.I(/^\\??(.*)$/)[1].3j(\'&\');c 7i.36({},7(5b,72){d 1i=72.3j(\'=\');5b[1i[0]]=1i[1];c 5b})},1Z:7(){c 6.3j(\'\')},3P:7(){d 2l=6.3j(\'-\');f(2l.t==1)c 2l[0];d 54=6.5g(\'-\')==0?2l[0].7e(0).3Y()+2l[0].7g(1):2l[0];G(d i=1,73=2l.t;i<73;i++){d s=2l[i];54+=s.7e(0).3Y()+s.7g(1)}c 54},1U:7(){c"\'"+6.2y(/\\\\/g,\'\\\\\\\\\').2y(/\'/g,\'\\\\\\\'\')+"\'"}});4b.v.2T.52=7(1z){f(2i 1z==\'7\')c 1z;d 2U=z 3n(1z);c 7(I){c 2U.7a(I)}};4b.v.9h=4b.v.78;d 3n=1b.17();3n.79=/(^|.|\\r|\\n)(#\\{(.*?)\\})/;3n.v={1I:7(2U,1A){6.2U=2U.2C();6.1A=1A||3n.79},7a:7(U){c 6.2U.2T(6.1A,7(I){d 53=I[1];f(53==\'\\\\\')c I[2];c 53+(U[I[3]]||\'\').2C()})}};d $1y=z q();d $49=z q();d 1p={V:7(o){d w=0;1j{6.2m(7(h){1j{o(h,w++)}1s(e){f(e!=$49)25 e}})}1s(e){f(e!=$1y)25 e}},9n:7(o){d L=11;6.V(7(h,w){L=L&&!!(o||T.K)(h,w);f(!L)25 $1y});c L},9o:7(o){d L=11;6.V(7(h,w){f(L=!!(o||T.K)(h,w))25 $1y});c L},3e:7(o){d P=[];6.V(7(h,w){P.W(o(h,w))});c P},7n:7(o){d L;6.V(7(h,w){f(o(h,w)){L=h;25 $1y}});c L},7o:7(o){d P=[];6.V(7(h,w){f(o(h,w))P.W(h)});c P},9p:7(1A,o){d P=[];6.V(7(h,w){d 7c=h.2C();f(7c.I(1A))P.W((o||T.K)(h,w))});c P},1M:7(U){d 51=Y;6.V(7(h){f(h==U){51=11;25 $1y}});c 51},36:7(45,o){6.V(7(h,w){45=o(45,h,w)});c 45},9q:7(1F){d 23=$A(N).47(1);c 6.3e(7(h){c h[1F].2n(h,23)})},9s:7(o){d L;6.V(7(h,w){h=(o||T.K)(h,w);f(L==1v||h>=L)L=h});c L},9u:7(o){d L;6.V(7(h,w){h=(o||T.K)(h,w);f(L==1v||h<L)L=h});c L},9v:7(o){d 50=[],58=[];6.V(7(h,w){((o||T.K)(h,w)?50:58).W(h)});c[50,58]},3r:7(1G){d P=[];6.V(7(h,w){P.W(h[1G])});c P},9x:7(o){d P=[];6.V(7(h,w){f(!o(h,w))P.W(h)});c P},9y:7(o){c 6.3e(7(h,w){c{h:h,59:o(h,w)}}).9z(7(18,3U){d a=18.59,b=3U.59;c a<b?-1:a>b?1:0}).3r(\'h\')},1Z:7(){c 6.3e(T.K)},9B:7(){d o=T.K,23=$A(N);f(2i 23.5e()==\'7\')o=23.9C();d 7l=[6].3s(23).1C($A);c 6.1C(7(h,w){c o(7l.3r(w))})},1U:7(){c\'#<1p:\'+6.1Z().1U()+\'>\'}};q.u(1p,{1C:1p.3e,5v:1p.7n,1k:1p.7o,8M:1p.1M,7p:1p.1Z});d $A=1E.7q=7(2R){f(!2R)c[];f(2R.1Z){c 2R.1Z()}1D{d P=[];G(d i=0;i<2R.t;i++)P.W(2R[i]);c P}};q.u(1E.v,1p);f(!1E.v.4d)1E.v.4d=1E.v.4m;q.u(1E.v,{2m:7(o){G(d i=0;i<6.t;i++)o(6[i])},5i:7(){6.t=0;c 6},7r:7(){c 6[0]},5e:7(){c 6[6.t-1]},7s:7(){c 6.1k(7(h){c h!=1v||h!=1L})},6J:7(){c 6.36([],7(6H,h){c 6H.3s(h&&h.5D==1E?h.6J():[h])})},5s:7(){d 4N=$A(N);c 6.1k(7(h){c!4N.1M(h)})},5g:7(U){G(d i=0;i<6.t;i++)f(6[i]==U)c i;c-1},4m:7(5h){c(5h!==Y?6:6.1Z()).4d()},1U:7(){c\'[\'+6.1C(q.1U).1N(\', \')+\']\'}});d 4h={2m:7(o){G(d 1O 2M 6){d h=6[1O];f(2i h==\'7\')49;d 1i=[1O,h];1i.1O=1O;1i.h=h;o(1i)}},7t:7(){c 6.3r(\'1O\')},4N:7(){c 6.3r(\'h\')},7u:7(2N){c $H(2N).36($H(6),7(4Q,1i){4Q[1i.1O]=1i.h;c 4Q})},7w:7(){c 6.1C(7(1i){c 1i.1C(4n).1N(\'=\')}).1N(\'&\')},1U:7(){c\'#<4h:{\'+6.1C(7(1i){c 1i.1C(q.1U).1N(\': \')}).1N(\', \')+\'}>\'}};7 $H(U){d 2N=q.u({},U||{});q.u(2N,1p);q.u(2N,4h);c 2N};3L=1b.17();q.u(3L.v,1p);q.u(3L.v,{1I:7(22,2x,2H){6.22=22;6.2x=2x;6.2H=2H},2m:7(o){d h=6.22;2q{o(h);h=h.5j()}1H(6.1M(h))},1M:7(h){f(h<6.22)c Y;f(6.2H)c h<6.2x;c h<=6.2x}});d $R=7(22,2x,2H){c z 3L(22,2x,2H)};d M={4w:7(){c 6s.6j(7(){c z 5C()},7(){c z 5n(\'7y.6d\')},7(){c z 5n(\'7z.6d\')})||Y},4s:0};M.2W={3b:[],2m:7(o){6.3b.2m(o)},69:7(4F){f(!6.1M(4F))6.3b.W(4F)},7A:7(5t){6.3b=6.3b.5s(5t)},3y:7(1a,26,E,2Z){6.V(7(3o){f(3o[1a]&&2i 3o[1a]==\'7\'){1j{3o[1a].2n(3o,[26,E,2Z])}1s(e){}}})}};q.u(M.2W,1p);M.2W.69({5G:7(){M.4s++},1B:7(){M.4s--}});M.44=7(){};M.44.v={4a:7(m){6.m={1F:\'4j\',4p:11,5H:\'5E/x-86-Q-7C\',28:\'\'};q.u(6.m,m||{})},3l:7(){c 6.E.32==1v||6.E.32==0||(6.E.32>=84&&6.E.32<7E)},7G:7(){c!6.3l()}};M.3t=1b.17();M.3t.5L=[\'7H\',\'80\',\'7I\',\'7J\',\'4t\'];M.3t.v=q.u(z M.44(),{1I:7(1l,m){6.E=M.4w();6.4a(m);6.26(1l)},26:7(1l){d 28=6.m.28||\'\';f(28.t>0)28+=\'&7K=\';1j{6.1l=1l;f(6.m.1F==\'7L\'&&28.t>0)6.1l+=(6.1l.I(/\\?/)?\'&\':\'?\')+28;M.2W.3y(\'5G\',6,6.E);6.E.7N(6.m.1F,6.1l,6.m.4p);f(6.m.4p){6.E.5T=6.5J.1d(6);2Y((7(){6.4r(1)}).1d(6),10)}6.5A();d 1c=6.m.5V?6.m.5V:28;6.E.7O(6.m.1F==\'4j\'?1c:1L)}1s(e){6.3p(e)}},5A:7(){d 1P=[\'X-7P-7Q\',\'5C\',\'X-T-4l\',T.4l,\'7R\',\'1Y/7m, 1Y/2e, 5E/5F, 1Y/5F, */*\'];f(6.m.1F==\'4j\'){1P.W(\'5Q-2g\',6.m.5H);f(6.E.7S)1P.W(\'7T\',\'7U\')}f(6.m.1P)1P.W.2n(1P,6.m.1P);G(d i=0;i<1P.t;i+=2)6.E.7V(1P[i],1P[i+1])},5J:7(){d 2F=6.E.2F;f(2F!=1)6.4r(6.E.2F)},4A:7(B){1j{c 6.E.7W(B)}1s(e){}},5M:7(){1j{c 4q(\'(\'+6.4A(\'X-7X\')+\')\')}1s(e){}},5R:7(){1j{c 4q(6.E.3F)}1s(e){6.3p(e)}},4r:7(2F){d C=M.3t.5L[2F];d E=6.E,2Z=6.5M();f(C==\'4t\'){1j{(6.m[\'2I\'+6.E.32]||6.m[\'2I\'+(6.3l()?\'81\':\'82\')]||T.2v)(E,2Z)}1s(e){6.3p(e)}f((6.4A(\'5Q-2g\')||\'\').I(/^1Y\\/7m/i))6.5R()}1j{(6.m[\'2I\'+C]||T.2v)(E,2Z);M.2W.3y(\'2I\'+C,6,E,2Z)}1s(e){6.3p(e)}f(C==\'4t\')6.E.5T=T.2v},3p:7(57){(6.m.5W||T.2v)(6,57);M.2W.3y(\'5W\',6,57)}});M.4C=1b.17();q.u(q.u(M.4C.v,M.3t.v),{1I:7(1w,1l,m){6.4x={3m:1w.3m?$(1w.3m):$(1w),3z:1w.3z?$(1w.3z):(1w.3m?1L:$(1w))};6.E=M.4w();6.4a(m);d 1B=6.m.1B||T.2v;6.m.1B=(7(E,U){6.5Y();1B(E,U)}).1d(6);6.26(1l)},5Y:7(){d 3A=6.3l()?6.4x.3m:6.4x.3z;d 3k=6.E.3F;f(!6.m.3q)3k=3k.2Q();f(3A){f(6.m.60){z 6.m.60(3A,3k)}1D{k.6h(3A,3k)}}f(6.3l()){f(6.1B)2Y(6.1B.1d(6),10)}}});M.61=1b.17();M.61.v=q.u(z M.44(),{1I:7(1w,1l,m){6.4a(m);6.1B=6.m.1B;6.1J=(6.m.1J||2);6.2s=(6.m.2s||1);6.4B={};6.1w=1w;6.1l=1l;6.22()},22:7(){6.m.1B=6.63.1d(6);6.2D()},7b:7(){6.4B.1B=1v;89(6.65);(6.1B||T.2v).2n(6,N)},63:7(26){f(6.m.2s){6.2s=(26.3F==6.64?6.2s*6.m.2s:1);6.64=26.3F}6.65=2Y(6.2D.1d(6),6.2s*6.1J*4z)},2D:7(){6.4B=z M.4C(6.1w,6.1l,6.m)}});7 $(){d P=[],4;G(d i=0;i<N.t;i++){4=N[i];f(2i 4==\'8c\')4=J.8d(4);P.W(k.u(4))}c P.t<2?P[0]:P};J.8f=7(1f,6a){d 6b=($(6a)||J.1c).4D(\'*\');c $A(6b).36([],7(12,4E){f(4E.1f.I(z 3O("(^|\\\\s)"+1f+"(\\\\s|$)")))12.W(k.u(4E));c 12})};f(!1W.k)d k=z q();k.u=7(4){f(!4)c;f(4X)c 4;f(!4.6e&&4.1h&&4!=1W){d 2a=k.3d,2r=k.u.2r;G(d 1G 2M 2a){d h=2a[1G];f(2i h==\'7\')4[1G]=2r.4W(h)}}4.6e=11;c 4};k.u.2r={4W:7(h){c 6[h]=6[h]||7(){c h.2n(1L,[6].3s($A(N)))}}};k.3d={4U:7(4){c $(4).l.2B!=\'3Q\'},6N:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);k[k.4U(4)?\'6f\':\'6w\'](4)}},6f:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);4.l.2B=\'3Q\'}},6w:7(){G(d i=0;i<N.t;i++){d 4=$(N[i]);4.l.2B=\'\'}},42:7(4){4=$(4);4.1X.8h(4)},6h:7(4,2e){$(4).3h=2e.2Q();2Y(7(){2e.3q()},10)},2y:7(4,2e){4=$(4);f(4.6k){4.6k=2e.2Q()}1D{d 1K=4.6R.6S();1K.56(4);4.1X.8i(1K.6T(2e.2Q()),4)}2Y(7(){2e.3q()},10)},8k:7(4){4=$(4);c 4.2k},3K:7(4){c z k.3S(4)},8l:7(4,1f){f(!(4=$(4)))c;c k.3K(4).1M(1f)},8m:7(4,1f){f(!(4=$(4)))c;c k.3K(4).7k(1f)},8n:7(4,1f){f(!(4=$(4)))c;c k.3K(4).42(1f)},8p:7(4){4=$(4);G(d i=0;i<4.2z.t;i++){d 3M=4.2z[i];f(3M.8q==3&&!/\\S/.4v(3M.6q))k.42(3M)}},8r:7(4){c $(4).3h.I(/^\\s*$/)},8s:7(4,3I){4=$(4),3I=$(3I);1H(4=4.1X)f(4==3I)c 11;c Y},6t:7(4){4=$(4);d x=4.x?4.x:4.2f,y=4.y?4.y:4.29;1W.6t(x,y)},1R:7(4,l){4=$(4);d h=4.l[l.3P()];f(!h){f(J.4J&&J.4J.6v){d 4L=J.4J.6v(4,1L);h=4L?4L.8v(l):1L}1D f(4.6x){h=4.6x[l.3P()]}}f(1W.6E&&[\'18\',\'1n\',\'3U\',\'6G\'].1M(l))f(k.1R(4,\'14\')==\'4G\')h=\'6y\';c h==\'6y\'?1L:h},8x:7(4,l){4=$(4);G(d B 2M l)4.l[B.3P()]=l[B]},8y:7(4){4=$(4);f(k.1R(4,\'2B\')!=\'3Q\')c{21:4.2p,24:4.2k};d 20=4.l;d 6B=20.4O;d 6A=20.14;20.4O=\'31\';20.14=\'2o\';20.2B=\'\';d 6C=4.6m;d 6D=4.6p;20.2B=\'3Q\';20.14=6A;20.4O=6B;c{21:6C,24:6D}},8z:7(4){4=$(4);d 4R=k.1R(4,\'14\');f(4R==\'4G\'||!4R){4.4T=11;4.l.14=\'3T\';f(1W.6E){4.l.1n=0;4.l.18=0}}},8A:7(4){4=$(4);f(4.4T){4.4T=1v;4.l.14=4.l.1n=4.l.18=4.l.6G=4.l.3U=\'\'}},8B:7(4){4=$(4);f(4.3c)c;4.3c=4.l.3V;f((k.1R(4,\'3V\')||\'4U\')!=\'31\')4.l.3V=\'31\'},8D:7(4){4=$(4);f(4.3c)c;4.l.3V=4.3c;4.3c=1v}};q.u(k,k.3d);d 4X=Y;f(!3W&&/3x|3w|3u/.4v(33.62)){d 3W={}};k.6K=7(2a){q.u(k.3d,2a||{});f(2i 3W!=\'1v\'){d 2a=k.3d,2r=k.u.2r;G(d 1G 2M 2a){d h=2a[1G];f(2i h==\'7\')3W.v[1G]=2r.4W(h)}4X=11}};k.6K();d 6M=z q();6M.2B=k.6N;1e.1g=7(3f){6.3f=3f};1e.1g.v={1I:7(4,2t){6.4=$(4);6.2t=2t.2Q();f(6.3f&&6.4.6O){1j{6.4.6O(6.3f,6.2t)}1s(e){d 1h=6.4.1h.2w();f(1h==\'4V\'||1h==\'8N\'){6.2X(6.6U())}1D{25 e}}}1D{6.1K=6.4.6R.6S();f(6.2V)6.2V();6.2X([6.1K.6T(6.2t)])}2Y(7(){2t.3q()},10)},6U:7(){d 1q=J.4Y(\'1q\');1q.3h=\'<6V><4V>\'+6.2t+\'</4V></6V>\';c $A(1q.2z[0].2z[0].2z)}};d 1g=z q();1g.6W=1b.17();1g.6W.v=q.u(z 1e.1g(\'96\'),{2V:7(){6.1K.97(6.4)},2X:7(2h){2h.V((7(2j){6.4.1X.55(2j,6.4)}).1d(6))}});1g.5m=1b.17();1g.5m.v=q.u(z 1e.1g(\'99\'),{2V:7(){6.1K.56(6.4);6.1K.74(11)},2X:7(2h){2h.4m(Y).V((7(2j){6.4.55(2j,6.4.9a)}).1d(6))}});1g.7h=1b.17();1g.7h.v=q.u(z 1e.1g(\'9d\'),{2V:7(){6.1K.56(6.4);6.1K.74(6.4)},2X:7(2h){2h.V((7(2j){6.4.75(2j)}).1d(6))}});1g.76=1b.17();1g.76.v=q.u(z 1e.1g(\'9i\'),{2V:7(){6.1K.9m(6.4)},2X:7(2h){2h.V((7(2j){6.4.1X.55(2j,6.4.9t)}).1d(6))}});k.3S=1b.17();k.3S.v={1I:7(4){6.4=$(4)},2m:7(o){6.4.1f.3j(/\\s+/).1k(7(B){c B.t>0}).2m(o)},5c:7(1f){6.4.1f=1f},7k:7(5a){f(6.1M(5a))c;6.5c(6.1Z().3s(5a).1N(\' \'))},42:7(4c){f(!6.1M(4c))c;6.5c(6.1k(7(1f){c 1f!=4c}).1N(\' \'))},2C:7(){c 6.1Z().1N(\' \')}};q.u(k.3S.v,1p);d 5I={5i:7(){G(d i=0;i<N.t;i++)$(N[i]).h=\'\'},4f:7(4){$(4).4f()},7v:7(){G(d i=0;i<N.t;i++)f($(N[i]).h==\'\')c Y;c 11},1k:7(4){$(4).1k()},5y:7(4){4=$(4);4.4f();f(4.1k)4.1k()}};d D={3a:7(Q){d 12=D.2L($(Q));d 4I=z 1E();G(d i=0;i<12.t;i++){d 4g=D.k.3a(12[i]);f(4g)4I.W(4g)}c 4I.1N(\'&\')},2L:7(Q){Q=$(Q);d 12=z 1E();G(d 1h 2M D.k.2E){d 4H=Q.4D(1h);G(d j=0;j<4H.t;j++)12.W(4H[j])}c 12},7x:7(Q,3N,B){Q=$(Q);d 3H=Q.4D(\'2u\');f(!3N&&!B)c 3H;d 4y=z 1E();G(d i=0;i<3H.t;i++){d 2u=3H[i];f((3N&&2u.2g!=3N)||(B&&2u.B!=B))49;4y.W(2u)}c 4y},7B:7(Q){d 12=D.2L(Q);G(d i=0;i<12.t;i++){d 4=12[i];4.7D();4.4o=\'11\'}},7F:7(Q){d 12=D.2L(Q);G(d i=0;i<12.t;i++){d 4=12[i];4.4o=\'\'}},5z:7(Q){c D.2L(Q).5v(7(4){c 4.2g!=\'31\'&&!4.4o&&[\'2u\',\'1k\',\'3J\'].1M(4.1h.2w())})},7M:7(Q){5I.5y(D.5z(Q))},5w:7(Q){$(Q).5w()}};D.k={3a:7(4){4=$(4);d 1F=4.1h.2w();d 1S=D.k.2E[1F](4);f(1S){d 1O=4n(1S[0]);f(1O.t==0)c;f(1S[1].5D!=1E)1S[1]=[1S[1]];c 1S[1].1C(7(h){c 1O+\'=\'+4n(h)}).1N(\'&\')}},1x:7(4){4=$(4);d 1F=4.1h.2w();d 1S=D.k.2E[1F](4);f(1S)c 1S[1]}};D.k.2E={2u:7(4){6c(4.2g.2w()){1r\'7Z\':1r\'31\':1r\'6l\':1r\'1Y\':c D.k.2E.3J(4);1r\'6g\':1r\'6i\':c D.k.2E.5O(4)}c Y},5O:7(4){f(4.83)c[4.B,4.h]},3J:7(4){c[4.B,4.h]},1k:7(4){c D.k.2E[4.2g==\'1k-6n\'?\'5S\':\'5X\'](4)},5S:7(4){d h=\'\',2b,w=4.85;f(w>=0){2b=4.m[w];h=2b.h||2b.1Y}c[4.B,h]},5X:7(4){d h=[];G(d i=0;i<4.t;i++){d 2b=4.m[i];f(2b.87)h.W(2b.h||2b.1Y)}c[4.B,h]}};d $F=D.k.1x;1e.3D=7(){};1e.3D.v={1I:7(4,1J,1a){6.1J=1J;6.4=$(4);6.1a=1a;6.2K=6.1x();6.2A()},2A:7(){5Z(6.2D.1d(6),6.1J*4z)},2D:7(){d h=6.1x();f(6.2K!=h){6.1a(6.4,h);6.2K=h}}};D.k.3C=1b.17();D.k.3C.v=q.u(z 1e.3D(),{1x:7(){c D.k.1x(6.4)}});D.3C=1b.17();D.3C.v=q.u(z 1e.3D(),{1x:7(){c D.3a(6.4)}});1e.2c=7(){};1e.2c.v={1I:7(4,1a){6.4=$(4);6.1a=1a;6.2K=6.1x();f(6.4.1h.2w()==\'Q\')6.67();1D 6.2A(6.4)},4K:7(){d h=6.1x();f(6.2K!=h){6.1a(6.4,h);6.2K=h}},67:7(){d 12=D.2L(6.4);G(d i=0;i<12.t;i++)6.2A(12[i])},2A:7(4){f(4.2g){6c(4.2g.2w()){1r\'6g\':1r\'6i\':1o.3B(4,\'8j\',6.4K.1d(6));1y;1r\'6l\':1r\'1Y\':1r\'3J\':1r\'1k-6n\':1r\'1k-8t\':1o.3B(4,\'8u\',6.4K.1d(6));1y}}}};D.k.2c=1b.17();D.k.2c.v=q.u(z 1e.2c(),{1x:7(){c D.k.1x(6.4)}});D.2c=1b.17();D.2c.v=q.u(z 1e.2c(),{1x:7(){c D.3a(6.4)}});f(!1W.1o){d 1o=z q()}q.u(1o,{8C:8,8F:9,8H:13,8I:27,8J:37,8L:38,8O:39,8T:40,8X:46,4:7(C){c C.Z||C.91},95:7(C){c(((C.6X)&&(C.6X==1))||((C.6Z)&&(C.6Z==1)))},9b:7(C){c C.9e||(C.9f+(J.3R.2G||J.1c.2G))},9g:7(C){c C.9j||(C.9k+(J.3R.2O||J.1c.2O))},7b:7(C){f(C.7d){C.7d();C.9r()}1D{C.48=Y;C.9w=11}},9A:7(C,1h){d 4=1o.4(C);1H(4.1X&&(!4.1h||(4.1h.3Y()!=1h.3Y())))4=4.1X;c 4},1T:Y,5u:7(4,B,1V,1u){f(!6.1T)6.1T=[];f(4.5f){6.1T.W([4,B,1V,1u]);4.5f(B,1V,1u)}1D f(4.4i){6.1T.W([4,B,1V,1u]);4.4i(\'2I\'+B,1V)}},66:7(){f(!1o.1T)c;G(d i=0;i<1o.1T.t;i++){1o.5N.2n(6,1o.1T[i]);1o.1T[i][0]=1L}1o.1T=Y},3B:7(4,B,1V,1u){d 4=$(4);1u=1u||Y;f(B==\'5U\'&&(33.4u.I(/3x|3w|3u/)||4.4i))B=\'5K\';6.5u(4,B,1V,1u)},5N:7(4,B,1V,1u){d 4=$(4);1u=1u||Y;f(B==\'5U\'&&(33.4u.I(/3x|3w|3u/)||4.4k))B=\'5K\';f(4.5x){4.5x(B,1V,1u)}1D f(4.4k){1j{4.4k(\'2I\'+B,1V)}1s(e){}}}});f(33.4u.I(/\\88\\b/))1o.3B(1W,\'8a\',1o.66,Y);d 2d={6o:Y,4P:7(){6.6z=1W.8e||J.3R.2G||J.1c.2G||0;6.6F=1W.8g||J.3R.2O||J.1c.2O||0},6u:7(4){d 19=0,15=0;2q{19+=4.2O||0;15+=4.2G||0;4=4.1X}1H(4);c[15,19]},35:7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;4=4.1Q}1H(4);c[15,19]},68:7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;4=4.1Q;f(4){p=k.1R(4,\'14\');f(p==\'3T\'||p==\'2o\')1y}}1H(4);c[15,19]},1Q:7(4){f(4.1Q)c 4.1Q;f(4==J.1c)c 4;1H((4=4.1X)&&4!=J.1c)f(k.1R(4,\'14\')!=\'4G\')c 4;c J.1c},8o:7(4,x,y){f(6.6o)c 6.6r(4,x,y);6.3g=x;6.34=y;6.1t=6.35(4);c(y>=6.1t[1]&&y<6.1t[1]+4.2k&&x>=6.1t[0]&&x<6.1t[0]+4.2p)},6r:7(4,x,y){d 4S=6.6u(4);6.3g=x+4S[0]-6.6z;6.34=y+4S[1]-6.6F;6.1t=6.35(4);c(6.34>=6.1t[1]&&6.34<6.1t[1]+4.2k&&6.3g>=6.1t[0]&&6.3g<6.1t[0]+4.2p)},8E:7(3Z,4){f(!3Z)c 0;f(3Z==\'8G\')c((6.1t[1]+4.2k)-6.34)/4.2k;f(3Z==\'8K\')c((6.1t[0]+4.2p)-6.3g)/4.2p},77:7(O,Z){O=$(O);Z=$(Z);Z.l.14=\'2o\';d 2P=6.35(O);Z.l.1n=2P[1]+\'1m\';Z.l.18=2P[0]+\'1m\';Z.l.21=O.2p+\'1m\';Z.l.24=O.2k+\'1m\'},4e:7(4M){d 19=0,15=0;d 4=4M;2q{19+=4.29||0;15+=4.2f||0;f(4.1Q==J.1c)f(k.1R(4,\'14\')==\'2o\')1y}1H(4=4.1Q);4=4M;2q{19-=4.2O||0;15-=4.2G||0}1H(4=4.1X);c[15,19]},77:7(O,Z){d m=q.u({5l:11,5r:11,5B:11,5q:11,29:0,2f:0},N[2]||{});O=$(O);d p=2d.4e(O);Z=$(Z);d 2J=[0,0];d 3v=1L;f(k.1R(Z,\'14\')==\'2o\'){3v=2d.1Q(Z);2J=2d.4e(3v)}f(3v==J.1c){2J[0]-=J.1c.2f;2J[1]-=J.1c.29}f(m.5l)Z.l.18=(p[0]-2J[0]+m.2f)+\'1m\';f(m.5r)Z.l.1n=(p[1]-2J[1]+m.29)+\'1m\';f(m.5B)Z.l.21=O.2p+\'1m\';f(m.5q)Z.l.24=O.2k+\'1m\'},8b:7(4){4=$(4);f(4.l.14==\'2o\')c;2d.4P();d 2P=2d.68(4);d 1n=2P[1];d 18=2P[0];d 21=4.6m;d 24=4.6p;4.6P=18-3X(4.l.18||0);4.6I=1n-3X(4.l.1n||0);4.5k=4.l.21;4.7f=4.l.24;4.l.14=\'2o\';4.l.1n=1n+\'1m\';4.l.18=18+\'1m\';4.l.21=21+\'1m\';4.l.24=24+\'1m\'},8w:7(4){4=$(4);f(4.l.14==\'3T\')c;2d.4P();4.l.14=\'3T\';d 1n=3X(4.l.1n||0)-(4.6I||0);d 18=3X(4.l.18||0)-(4.6P||0);4.l.1n=1n+\'1m\';4.l.18=18+\'1m\';4.l.24=4.7f;4.l.21=4.5k}};f(/3x|3w|3u/.4v(33.62)){2d.35=7(4){d 19=0,15=0;2q{19+=4.29||0;15+=4.2f||0;f(4.1Q==J.1c)f(k.1R(4,\'14\')==\'2o\')1y;4=4.1Q}1H(4);c[15,19]}};',62,600,'||||element||this|function|||||return|var||if||value|||Element|style|options||iterator||Object|||length|extend|prototype|index|||new||name|event|Form|transport||for||match|document||result|Ajax|arguments|source|results|form|||Prototype|object|each|push||false|target||true|elements||position|valueL||create|left|valueT|callback|Class|body|bind|Abstract|className|Insertion|tagName|pair|try|select|url|px|top|Event|Enumerable|div|case|catch|offset|useCapture|undefined|container|getValue|break|replacement|pattern|onComplete|map|else|Array|method|property|while|initialize|frequency|range|null|include|join|key|requestHeaders|offsetParent|getStyle|parameter|observers|inspect|observer|window|parentNode|text|toArray|els|width|start|args|height|throw|request||parameters|offsetTop|methods|opt|EventObserver|Position|html|offsetLeft|type|fragments|typeof|fragment|offsetHeight|oStringList|_each|apply|absolute|offsetWidth|do|cache|decay|content|input|emptyFunction|toLowerCase|end|replace|childNodes|registerCallback|display|toString|onTimerEvent|Serializers|readyState|scrollLeft|exclusive|on|delta|lastValue|getElements|in|hash|scrollTop|offsets|stripScripts|iterable|truncation|gsub|template|initializeRange|Responders|insertContent|setTimeout|json||hidden|status|navigator|ycomp|cumulativeOffset|inject||||serialize|responders|_overflow|Methods|collect|adjacency|xcomp|innerHTML|count|split|response|responseIsSuccess|success|Template|responder|dispatchException|evalScripts|pluck|concat|Request|KHTML|parent|Safari|Konqueror|dispatch|failure|receiver|observe|Observer|TimedObserver|ScriptFragment|responseText|script|inputs|ancestor|textarea|classNames|ObjectRange|node|typeName|RegExp|camelize|none|documentElement|ClassNames|relative|right|overflow|HTMLElement|parseFloat|toUpperCase|mode||currentlyExecuting|remove|__method|Base|memo||slice|returnValue|continue|setOptions|String|classNameToRemove|_reverse|page|focus|queryComponent|Hash|attachEvent|post|detachEvent|Version|reverse|encodeURIComponent|disabled|asynchronous|eval|respondToReadyState|activeRequestCount|Complete|appVersion|test|getTransport|containers|matchingInputs|1000|header|updater|Updater|getElementsByTagName|child|responderToAdd|static|tagElements|queryComponents|defaultView|onElementEvent|css|forElement|values|visibility|prepare|mergedHash|pos|offsetcache|_madePositioned|visible|tbody|findOrStore|_nativeExtensions|createElement|digits|trues|found|prepareReplacement|before|camelizedString|insertBefore|selectNodeContents|exception|falses|criteria|classNameToAdd|params|set|destination|last|addEventListener|indexOf|inline|clear|succ|_originalWidth|setLeft|Top|ActiveXObject|scriptTag|matchOne|setHeight|setTop|without|responderToRemove|_observeAndCache|find|reset|removeEventListener|activate|findFirstElement|setRequestHeaders|setWidth|XMLHttpRequest|constructor|application|xml|onCreate|contentType|Field|onStateChange|keydown|Events|evalJSON|stopObserving|inputSelector|img|Content|evalResponse|selectOne|onreadystatechange|keypress|postBody|onException|selectMany|updateContent|setInterval|insertion|PeriodicalUpdater|userAgent|updateComplete|lastText|timer|unloadCache|registerFormCallbacks|positionedOffset|register|parentElement|children|switch|XMLHTTP|_extended|hide|checkbox|update|radio|these|outerHTML|password|clientWidth|one|includeScrollOffsets|clientHeight|nodeValue|withinIncludingScrolloffsets|Try|scrollTo|realOffset|getComputedStyle|show|currentStyle|auto|deltaX|originalPosition|originalVisibility|originalWidth|originalHeight|opera|deltaY|bottom|array|_originalTop|flatten|addMethods|lambda|Toggle|toggle|insertAdjacentHTML|_originalLeft|PeriodicalExecuter|ownerDocument|createRange|createContextualFragment|contentFromAnonymousTable|table|Before|which|matchAll|button|extractScripts|stripTags|pairString|len|collapse|appendChild|After|clone|toQueryParams|Pattern|evaluate|stop|stringValue|preventDefault|charAt|_originalHeight|substring|Bottom|pairs|Function|add|collections|javascript|detect|findAll|entries|from|first|compact|keys|merge|present|toQueryString|getInputs|Msxml2|Microsoft|unregister|disable|urlencoded|blur|300|enable|responseIsFailure|Uninitialized|Loaded|Interactive|_|get|focusFirstElement|open|send|Requested|With|Accept|overrideMimeType|Connection|close|setRequestHeader|getResponseHeader|JSON|gi|submit|Loading|Success|Failure|checked|200|selectedIndex|www|selected|bMSIE|clearTimeout|unload|absolutize|string|getElementById|pageXOffset|getElementsByClassName|pageYOffset|removeChild|replaceChild|click|getHeight|hasClassName|addClassName|removeClassName|within|cleanWhitespace|nodeType|empty|childOf|multiple|change|getPropertyValue|relativize|setStyle|getDimensions|makePositioned|undoPositioned|makeClipping|KEY_BACKSPACE|undoClipping|overlap|KEY_TAB|vertical|KEY_RETURN|KEY_ESC|KEY_LEFT|horizontal|KEY_UP|member|tr|KEY_RIGHT|0_RC_0|Number|instanceof|shift|KEY_DOWN|bindAsEventListener|call|toColorPart|KEY_DELETE|times|finally|callee|srcElement|sub|scan|truncate|isLeftClick|beforeBegin|setStartBefore|im|afterBegin|firstChild|pointerX|unescapeHTML|beforeEnd|pageX|clientX|pointerY|parseQuery|afterEnd|pageY|clientY|RangeError|setStartAfter|all|any|grep|invoke|stopPropagation|max|nextSibling|min|partition|cancelBubble|reject|sortBy|sort|findElement|zip|pop|createTextNode|escapeHTML|strip'.split('|'),0,{})
+
+} \ No newline at end of file
diff --git a/PerformanceTests/SunSpider/tests/sunspider-1.0/string-validate-input.js b/PerformanceTests/SunSpider/tests/sunspider-1.0/string-validate-input.js
new file mode 100644
index 000000000..a027174be
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-1.0/string-validate-input.js
@@ -0,0 +1,89 @@
+letters = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
+numbers = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26);
+colors = new Array("FF","CC","99","66","33","00");
+
+var endResult;
+
+function doTest()
+{
+ endResult = "";
+
+ // make up email address
+ for (var k=0;k<4000;k++)
+ {
+ username = makeName(6);
+ (k%2)?email=username+"@mac.com":email=username+"(at)mac.com";
+
+ // validate the email address
+ var pattern = /^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-_]+(\.?[a-zA-Z0-9\-_]*)\.[a-zA-Z]{2,3}$/;
+
+ if(pattern.test(email))
+ {
+ var r = email + " appears to be a valid email address.";
+ addResult(r);
+ }
+ else
+ {
+ r = email + " does NOT appear to be a valid email address.";
+ addResult(r);
+ }
+ }
+
+ // make up ZIP codes
+ for (var s=0;s<4000;s++)
+ {
+ var zipGood = true;
+ var zip = makeNumber(4);
+ (s%2)?zip=zip+"xyz":zip=zip.concat("7");
+
+ // validate the zip code
+ for (var i = 0; i < zip.length; i++) {
+ var ch = zip.charAt(i);
+ if (ch < "0" || ch > "9") {
+ zipGood = false;
+ r = zip + " contains letters.";
+ addResult(r);
+ }
+ }
+ if (zipGood && zip.length>5)
+ {
+ zipGood = false;
+ r = zip + " is longer than five characters.";
+ addResult(r);
+ }
+ if (zipGood)
+ {
+ r = zip + " appears to be a valid ZIP code.";
+ addResult(r);
+ }
+ }
+}
+
+function makeName(n)
+{
+ var tmp = "";
+ for (var i=0;i<n;i++)
+ {
+ var l = Math.floor(26*Math.random());
+ tmp += letters[l];
+ }
+ return tmp;
+}
+
+function makeNumber(n)
+{
+ var tmp = "";
+ for (var i=0;i<n;i++)
+ {
+ var l = Math.floor(9*Math.random());
+ tmp = tmp.concat(l);
+ }
+ return tmp;
+}
+
+function addResult(r)
+{
+ endResult += "\n" + r;
+}
+
+doTest();
diff --git a/PerformanceTests/SunSpider/tests/ubench/LIST b/PerformanceTests/SunSpider/tests/ubench/LIST
new file mode 100644
index 000000000..d005340c8
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/ubench/LIST
@@ -0,0 +1,9 @@
+function-closure
+function-empty
+function-correct-args
+function-excess-args
+function-missing-args
+function-sum
+loop-empty-resolve
+loop-empty
+loop-sum
diff --git a/PerformanceTests/SunSpider/tests/ubench/function-closure.js b/PerformanceTests/SunSpider/tests/ubench/function-closure.js
new file mode 100644
index 000000000..6c7dde197
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/ubench/function-closure.js
@@ -0,0 +1,7 @@
+function f()
+{
+ function g() { }
+}
+
+for (var i = 0; i < 300000; ++i)
+ f();
diff --git a/PerformanceTests/SunSpider/tests/ubench/function-correct-args.js b/PerformanceTests/SunSpider/tests/ubench/function-correct-args.js
new file mode 100644
index 000000000..bd31e1393
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/ubench/function-correct-args.js
@@ -0,0 +1,6 @@
+function f(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9)
+{
+}
+
+for (var i = 0; i < 3000000; ++i)
+ f(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
diff --git a/PerformanceTests/SunSpider/tests/ubench/function-empty.js b/PerformanceTests/SunSpider/tests/ubench/function-empty.js
new file mode 100644
index 000000000..c170d94a7
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/ubench/function-empty.js
@@ -0,0 +1,6 @@
+function f()
+{
+}
+
+for (var i = 0; i < 4000000; ++i)
+ f();
diff --git a/PerformanceTests/SunSpider/tests/ubench/function-excess-args.js b/PerformanceTests/SunSpider/tests/ubench/function-excess-args.js
new file mode 100644
index 000000000..15ac5851d
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/ubench/function-excess-args.js
@@ -0,0 +1,6 @@
+function f(x0, x1, x2, x3, x4)
+{
+}
+
+for (var i = 0; i < 3000000; ++i)
+ f(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
diff --git a/PerformanceTests/SunSpider/tests/ubench/function-missing-args.js b/PerformanceTests/SunSpider/tests/ubench/function-missing-args.js
new file mode 100644
index 000000000..d39d0f1bd
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/ubench/function-missing-args.js
@@ -0,0 +1,6 @@
+function f(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9)
+{
+}
+
+for (var i = 0; i < 3000000; ++i)
+ f();
diff --git a/PerformanceTests/SunSpider/tests/ubench/function-sum.js b/PerformanceTests/SunSpider/tests/ubench/function-sum.js
new file mode 100644
index 000000000..5de765767
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/ubench/function-sum.js
@@ -0,0 +1,7 @@
+function f(x, y, z)
+{
+ return x + y + z;
+}
+
+for (var i = 0; i < 2500000; ++i)
+ f(1, 2, 3);
diff --git a/PerformanceTests/SunSpider/tests/ubench/loop-empty-resolve.js b/PerformanceTests/SunSpider/tests/ubench/loop-empty-resolve.js
new file mode 100644
index 000000000..aa702be34
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/ubench/loop-empty-resolve.js
@@ -0,0 +1,2 @@
+for (x = 0; x < 1200000; ++x)
+ ;
diff --git a/PerformanceTests/SunSpider/tests/ubench/loop-empty.js b/PerformanceTests/SunSpider/tests/ubench/loop-empty.js
new file mode 100644
index 000000000..20c82f4a1
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/ubench/loop-empty.js
@@ -0,0 +1,2 @@
+for (var i = 0; i < 10000000; ++i)
+ ;
diff --git a/PerformanceTests/SunSpider/tests/ubench/loop-sum.js b/PerformanceTests/SunSpider/tests/ubench/loop-sum.js
new file mode 100644
index 000000000..869d62509
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/ubench/loop-sum.js
@@ -0,0 +1,5 @@
+var count = 6000000;
+var sum = 0;
+for (var i = 0; i < count; i++) {
+ sum = i + count;
+}
diff --git a/PerformanceTests/SunSpider/tests/v8-v4/LIST b/PerformanceTests/SunSpider/tests/v8-v4/LIST
new file mode 100644
index 000000000..117011b19
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v4/LIST
@@ -0,0 +1,7 @@
+v8-crypto
+v8-deltablue
+v8-earley-boyer
+v8-raytrace
+v8-regexp
+v8-richards
+v8-splay
diff --git a/PerformanceTests/SunSpider/tests/v8-v4/v8-crypto.js b/PerformanceTests/SunSpider/tests/v8-v4/v8-crypto.js
new file mode 100644
index 000000000..98e171d4a
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v4/v8-crypto.js
@@ -0,0 +1,1695 @@
+/*
+ * Copyright (c) 2003-2005 Tom Wu
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * In addition, the following condition applies:
+ *
+ * All redistributions must retain an intact copy of this copyright notice
+ * and disclaimer.
+ */
+
+// Basic JavaScript BN library - subset useful for RSA encryption.
+
+// Bits per digit
+var dbits;
+var BI_DB;
+var BI_DM;
+var BI_DV;
+
+var BI_FP;
+var BI_FV;
+var BI_F1;
+var BI_F2;
+
+// JavaScript engine analysis
+var canary = 0xdeadbeefcafe;
+var j_lm = ((canary&0xffffff)==0xefcafe);
+
+// (public) Constructor
+function BigInteger(a,b,c) {
+ this.array = new Array();
+ if(a != null)
+ if("number" == typeof a) this.fromNumber(a,b,c);
+ else if(b == null && "string" != typeof a) this.fromString(a,256);
+ else this.fromString(a,b);
+}
+
+// return new, unset BigInteger
+function nbi() { return new BigInteger(null); }
+
+// am: Compute w_j += (x*this_i), propagate carries,
+// c is initial carry, returns final carry.
+// c < 3*dvalue, x < 2*dvalue, this_i < dvalue
+// We need to select the fastest one that works in this environment.
+
+// am1: use a single mult and divide to get the high bits,
+// max digit bits should be 26 because
+// max internal value = 2*dvalue^2-2*dvalue (< 2^53)
+function am1(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+ while(--n >= 0) {
+ var v = x*this_array[i++]+w_array[j]+c;
+ c = Math.floor(v/0x4000000);
+ w_array[j++] = v&0x3ffffff;
+ }
+ return c;
+}
+
+// am2 avoids a big mult-and-extract completely.
+// Max digit bits should be <= 30 because we do bitwise ops
+// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
+function am2(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+ var xl = x&0x7fff, xh = x>>15;
+ while(--n >= 0) {
+ var l = this_array[i]&0x7fff;
+ var h = this_array[i++]>>15;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x7fff)<<15)+w_array[j]+(c&0x3fffffff);
+ c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
+ w_array[j++] = l&0x3fffffff;
+ }
+ return c;
+}
+
+// Alternately, set max digit bits to 28 since some
+// browsers slow down when dealing with 32-bit numbers.
+function am3(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+
+ var xl = x&0x3fff, xh = x>>14;
+ while(--n >= 0) {
+ var l = this_array[i]&0x3fff;
+ var h = this_array[i++]>>14;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x3fff)<<14)+w_array[j]+c;
+ c = (l>>28)+(m>>14)+xh*h;
+ w_array[j++] = l&0xfffffff;
+ }
+ return c;
+}
+
+// This is tailored to VMs with 2-bit tagging. It makes sure
+// that all the computations stay within the 29 bits available.
+function am4(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+
+ var xl = x&0x1fff, xh = x>>13;
+ while(--n >= 0) {
+ var l = this_array[i]&0x1fff;
+ var h = this_array[i++]>>13;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x1fff)<<13)+w_array[j]+c;
+ c = (l>>26)+(m>>13)+xh*h;
+ w_array[j++] = l&0x3ffffff;
+ }
+ return c;
+}
+
+// am3/28 is best for SM, Rhino, but am4/26 is best for v8.
+// Kestrel (Opera 9.5) gets its best result with am4/26.
+// IE7 does 9% better with am3/28 than with am4/26.
+// Firefox (SM) gets 10% faster with am3/28 than with am4/26.
+
+setupEngine = function(fn, bits) {
+ BigInteger.prototype.am = fn;
+ dbits = bits;
+
+ BI_DB = dbits;
+ BI_DM = ((1<<dbits)-1);
+ BI_DV = (1<<dbits);
+
+ BI_FP = 52;
+ BI_FV = Math.pow(2,BI_FP);
+ BI_F1 = BI_FP-dbits;
+ BI_F2 = 2*dbits-BI_FP;
+}
+
+
+// Digit conversions
+var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
+var BI_RC = new Array();
+var rr,vv;
+rr = "0".charCodeAt(0);
+for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
+rr = "a".charCodeAt(0);
+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
+rr = "A".charCodeAt(0);
+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
+
+function int2char(n) { return BI_RM.charAt(n); }
+function intAt(s,i) {
+ var c = BI_RC[s.charCodeAt(i)];
+ return (c==null)?-1:c;
+}
+
+// (protected) copy this to r
+function bnpCopyTo(r) {
+ var this_array = this.array;
+ var r_array = r.array;
+
+ for(var i = this.t-1; i >= 0; --i) r_array[i] = this_array[i];
+ r.t = this.t;
+ r.s = this.s;
+}
+
+// (protected) set from integer value x, -DV <= x < DV
+function bnpFromInt(x) {
+ var this_array = this.array;
+ this.t = 1;
+ this.s = (x<0)?-1:0;
+ if(x > 0) this_array[0] = x;
+ else if(x < -1) this_array[0] = x+DV;
+ else this.t = 0;
+}
+
+// return bigint initialized to value
+function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
+
+// (protected) set from string and radix
+function bnpFromString(s,b) {
+ var this_array = this.array;
+ var k;
+ if(b == 16) k = 4;
+ else if(b == 8) k = 3;
+ else if(b == 256) k = 8; // byte array
+ else if(b == 2) k = 1;
+ else if(b == 32) k = 5;
+ else if(b == 4) k = 2;
+ else { this.fromRadix(s,b); return; }
+ this.t = 0;
+ this.s = 0;
+ var i = s.length, mi = false, sh = 0;
+ while(--i >= 0) {
+ var x = (k==8)?s[i]&0xff:intAt(s,i);
+ if(x < 0) {
+ if(s.charAt(i) == "-") mi = true;
+ continue;
+ }
+ mi = false;
+ if(sh == 0)
+ this_array[this.t++] = x;
+ else if(sh+k > BI_DB) {
+ this_array[this.t-1] |= (x&((1<<(BI_DB-sh))-1))<<sh;
+ this_array[this.t++] = (x>>(BI_DB-sh));
+ }
+ else
+ this_array[this.t-1] |= x<<sh;
+ sh += k;
+ if(sh >= BI_DB) sh -= BI_DB;
+ }
+ if(k == 8 && (s[0]&0x80) != 0) {
+ this.s = -1;
+ if(sh > 0) this_array[this.t-1] |= ((1<<(BI_DB-sh))-1)<<sh;
+ }
+ this.clamp();
+ if(mi) BigInteger.ZERO.subTo(this,this);
+}
+
+// (protected) clamp off excess high words
+function bnpClamp() {
+ var this_array = this.array;
+ var c = this.s&BI_DM;
+ while(this.t > 0 && this_array[this.t-1] == c) --this.t;
+}
+
+// (public) return string representation in given radix
+function bnToString(b) {
+ var this_array = this.array;
+ if(this.s < 0) return "-"+this.negate().toString(b);
+ var k;
+ if(b == 16) k = 4;
+ else if(b == 8) k = 3;
+ else if(b == 2) k = 1;
+ else if(b == 32) k = 5;
+ else if(b == 4) k = 2;
+ else return this.toRadix(b);
+ var km = (1<<k)-1, d, m = false, r = "", i = this.t;
+ var p = BI_DB-(i*BI_DB)%k;
+ if(i-- > 0) {
+ if(p < BI_DB && (d = this_array[i]>>p) > 0) { m = true; r = int2char(d); }
+ while(i >= 0) {
+ if(p < k) {
+ d = (this_array[i]&((1<<p)-1))<<(k-p);
+ d |= this_array[--i]>>(p+=BI_DB-k);
+ }
+ else {
+ d = (this_array[i]>>(p-=k))&km;
+ if(p <= 0) { p += BI_DB; --i; }
+ }
+ if(d > 0) m = true;
+ if(m) r += int2char(d);
+ }
+ }
+ return m?r:"0";
+}
+
+// (public) -this
+function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
+
+// (public) |this|
+function bnAbs() { return (this.s<0)?this.negate():this; }
+
+// (public) return + if this > a, - if this < a, 0 if equal
+function bnCompareTo(a) {
+ var this_array = this.array;
+ var a_array = a.array;
+
+ var r = this.s-a.s;
+ if(r != 0) return r;
+ var i = this.t;
+ r = i-a.t;
+ if(r != 0) return r;
+ while(--i >= 0) if((r=this_array[i]-a_array[i]) != 0) return r;
+ return 0;
+}
+
+// returns bit length of the integer x
+function nbits(x) {
+ var r = 1, t;
+ if((t=x>>>16) != 0) { x = t; r += 16; }
+ if((t=x>>8) != 0) { x = t; r += 8; }
+ if((t=x>>4) != 0) { x = t; r += 4; }
+ if((t=x>>2) != 0) { x = t; r += 2; }
+ if((t=x>>1) != 0) { x = t; r += 1; }
+ return r;
+}
+
+// (public) return the number of bits in "this"
+function bnBitLength() {
+ var this_array = this.array;
+ if(this.t <= 0) return 0;
+ return BI_DB*(this.t-1)+nbits(this_array[this.t-1]^(this.s&BI_DM));
+}
+
+// (protected) r = this << n*DB
+function bnpDLShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var i;
+ for(i = this.t-1; i >= 0; --i) r_array[i+n] = this_array[i];
+ for(i = n-1; i >= 0; --i) r_array[i] = 0;
+ r.t = this.t+n;
+ r.s = this.s;
+}
+
+// (protected) r = this >> n*DB
+function bnpDRShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ for(var i = n; i < this.t; ++i) r_array[i-n] = this_array[i];
+ r.t = Math.max(this.t-n,0);
+ r.s = this.s;
+}
+
+// (protected) r = this << n
+function bnpLShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var bs = n%BI_DB;
+ var cbs = BI_DB-bs;
+ var bm = (1<<cbs)-1;
+ var ds = Math.floor(n/BI_DB), c = (this.s<<bs)&BI_DM, i;
+ for(i = this.t-1; i >= 0; --i) {
+ r_array[i+ds+1] = (this_array[i]>>cbs)|c;
+ c = (this_array[i]&bm)<<bs;
+ }
+ for(i = ds-1; i >= 0; --i) r_array[i] = 0;
+ r_array[ds] = c;
+ r.t = this.t+ds+1;
+ r.s = this.s;
+ r.clamp();
+}
+
+// (protected) r = this >> n
+function bnpRShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ r.s = this.s;
+ var ds = Math.floor(n/BI_DB);
+ if(ds >= this.t) { r.t = 0; return; }
+ var bs = n%BI_DB;
+ var cbs = BI_DB-bs;
+ var bm = (1<<bs)-1;
+ r_array[0] = this_array[ds]>>bs;
+ for(var i = ds+1; i < this.t; ++i) {
+ r_array[i-ds-1] |= (this_array[i]&bm)<<cbs;
+ r_array[i-ds] = this_array[i]>>bs;
+ }
+ if(bs > 0) r_array[this.t-ds-1] |= (this.s&bm)<<cbs;
+ r.t = this.t-ds;
+ r.clamp();
+}
+
+// (protected) r = this - a
+function bnpSubTo(a,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var a_array = a.array;
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
+ while(i < m) {
+ c += this_array[i]-a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ if(a.t < this.t) {
+ c -= a.s;
+ while(i < this.t) {
+ c += this_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += this.s;
+ }
+ else {
+ c += this.s;
+ while(i < a.t) {
+ c -= a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c -= a.s;
+ }
+ r.s = (c<0)?-1:0;
+ if(c < -1) r_array[i++] = BI_DV+c;
+ else if(c > 0) r_array[i++] = c;
+ r.t = i;
+ r.clamp();
+}
+
+// (protected) r = this * a, r != this,a (HAC 14.12)
+// "this" should be the larger one if appropriate.
+function bnpMultiplyTo(a,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var x = this.abs(), y = a.abs();
+ var y_array = y.array;
+
+ var i = x.t;
+ r.t = i+y.t;
+ while(--i >= 0) r_array[i] = 0;
+ for(i = 0; i < y.t; ++i) r_array[i+x.t] = x.am(0,y_array[i],r,i,0,x.t);
+ r.s = 0;
+ r.clamp();
+ if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
+}
+
+// (protected) r = this^2, r != this (HAC 14.16)
+function bnpSquareTo(r) {
+ var x = this.abs();
+ var x_array = x.array;
+ var r_array = r.array;
+
+ var i = r.t = 2*x.t;
+ while(--i >= 0) r_array[i] = 0;
+ for(i = 0; i < x.t-1; ++i) {
+ var c = x.am(i,x_array[i],r,2*i,0,1);
+ if((r_array[i+x.t]+=x.am(i+1,2*x_array[i],r,2*i+1,c,x.t-i-1)) >= BI_DV) {
+ r_array[i+x.t] -= BI_DV;
+ r_array[i+x.t+1] = 1;
+ }
+ }
+ if(r.t > 0) r_array[r.t-1] += x.am(i,x_array[i],r,2*i,0,1);
+ r.s = 0;
+ r.clamp();
+}
+
+// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
+// r != q, this != m. q or r may be null.
+function bnpDivRemTo(m,q,r) {
+ var pm = m.abs();
+ if(pm.t <= 0) return;
+ var pt = this.abs();
+ if(pt.t < pm.t) {
+ if(q != null) q.fromInt(0);
+ if(r != null) this.copyTo(r);
+ return;
+ }
+ if(r == null) r = nbi();
+ var y = nbi(), ts = this.s, ms = m.s;
+ var pm_array = pm.array;
+ var nsh = BI_DB-nbits(pm_array[pm.t-1]); // normalize modulus
+ if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
+ else { pm.copyTo(y); pt.copyTo(r); }
+ var ys = y.t;
+
+ var y_array = y.array;
+ var y0 = y_array[ys-1];
+ if(y0 == 0) return;
+ var yt = y0*(1<<BI_F1)+((ys>1)?y_array[ys-2]>>BI_F2:0);
+ var d1 = BI_FV/yt, d2 = (1<<BI_F1)/yt, e = 1<<BI_F2;
+ var i = r.t, j = i-ys, t = (q==null)?nbi():q;
+ y.dlShiftTo(j,t);
+
+ var r_array = r.array;
+ if(r.compareTo(t) >= 0) {
+ r_array[r.t++] = 1;
+ r.subTo(t,r);
+ }
+ BigInteger.ONE.dlShiftTo(ys,t);
+ t.subTo(y,y); // "negative" y so we can replace sub with am later
+ while(y.t < ys) y_array[y.t++] = 0;
+ while(--j >= 0) {
+ // Estimate quotient digit
+ var qd = (r_array[--i]==y0)?BI_DM:Math.floor(r_array[i]*d1+(r_array[i-1]+e)*d2);
+ if((r_array[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
+ y.dlShiftTo(j,t);
+ r.subTo(t,r);
+ while(r_array[i] < --qd) r.subTo(t,r);
+ }
+ }
+ if(q != null) {
+ r.drShiftTo(ys,q);
+ if(ts != ms) BigInteger.ZERO.subTo(q,q);
+ }
+ r.t = ys;
+ r.clamp();
+ if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
+ if(ts < 0) BigInteger.ZERO.subTo(r,r);
+}
+
+// (public) this mod a
+function bnMod(a) {
+ var r = nbi();
+ this.abs().divRemTo(a,null,r);
+ if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
+ return r;
+}
+
+// Modular reduction using "classic" algorithm
+function Classic(m) { this.m = m; }
+function cConvert(x) {
+ if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
+ else return x;
+}
+function cRevert(x) { return x; }
+function cReduce(x) { x.divRemTo(this.m,null,x); }
+function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+Classic.prototype.convert = cConvert;
+Classic.prototype.revert = cRevert;
+Classic.prototype.reduce = cReduce;
+Classic.prototype.mulTo = cMulTo;
+Classic.prototype.sqrTo = cSqrTo;
+
+// (protected) return "-1/this % 2^DB"; useful for Mont. reduction
+// justification:
+// xy == 1 (mod m)
+// xy = 1+km
+// xy(2-xy) = (1+km)(1-km)
+// x[y(2-xy)] = 1-k^2m^2
+// x[y(2-xy)] == 1 (mod m^2)
+// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
+// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
+// JS multiply "overflows" differently from C/C++, so care is needed here.
+function bnpInvDigit() {
+ var this_array = this.array;
+ if(this.t < 1) return 0;
+ var x = this_array[0];
+ if((x&1) == 0) return 0;
+ var y = x&3; // y == 1/x mod 2^2
+ y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
+ y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
+ y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
+ // last step - calculate inverse mod DV directly;
+ // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
+ y = (y*(2-x*y%BI_DV))%BI_DV; // y == 1/x mod 2^dbits
+ // we really want the negative inverse, and -DV < y < DV
+ return (y>0)?BI_DV-y:-y;
+}
+
+// Montgomery reduction
+function Montgomery(m) {
+ this.m = m;
+ this.mp = m.invDigit();
+ this.mpl = this.mp&0x7fff;
+ this.mph = this.mp>>15;
+ this.um = (1<<(BI_DB-15))-1;
+ this.mt2 = 2*m.t;
+}
+
+// xR mod m
+function montConvert(x) {
+ var r = nbi();
+ x.abs().dlShiftTo(this.m.t,r);
+ r.divRemTo(this.m,null,r);
+ if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
+ return r;
+}
+
+// x/R mod m
+function montRevert(x) {
+ var r = nbi();
+ x.copyTo(r);
+ this.reduce(r);
+ return r;
+}
+
+// x = x/R mod m (HAC 14.32)
+function montReduce(x) {
+ var x_array = x.array;
+ while(x.t <= this.mt2) // pad x so am has enough room later
+ x_array[x.t++] = 0;
+ for(var i = 0; i < this.m.t; ++i) {
+ // faster way of calculating u0 = x[i]*mp mod DV
+ var j = x_array[i]&0x7fff;
+ var u0 = (j*this.mpl+(((j*this.mph+(x_array[i]>>15)*this.mpl)&this.um)<<15))&BI_DM;
+ // use am to combine the multiply-shift-add into one call
+ j = i+this.m.t;
+ x_array[j] += this.m.am(0,u0,x,i,0,this.m.t);
+ // propagate carry
+ while(x_array[j] >= BI_DV) { x_array[j] -= BI_DV; x_array[++j]++; }
+ }
+ x.clamp();
+ x.drShiftTo(this.m.t,x);
+ if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
+}
+
+// r = "x^2/R mod m"; x != r
+function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+// r = "xy/R mod m"; x,y != r
+function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+
+Montgomery.prototype.convert = montConvert;
+Montgomery.prototype.revert = montRevert;
+Montgomery.prototype.reduce = montReduce;
+Montgomery.prototype.mulTo = montMulTo;
+Montgomery.prototype.sqrTo = montSqrTo;
+
+// (protected) true iff this is even
+function bnpIsEven() {
+ var this_array = this.array;
+ return ((this.t>0)?(this_array[0]&1):this.s) == 0;
+}
+
+// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
+function bnpExp(e,z) {
+ if(e > 0xffffffff || e < 1) return BigInteger.ONE;
+ var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
+ g.copyTo(r);
+ while(--i >= 0) {
+ z.sqrTo(r,r2);
+ if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
+ else { var t = r; r = r2; r2 = t; }
+ }
+ return z.revert(r);
+}
+
+// (public) this^e % m, 0 <= e < 2^32
+function bnModPowInt(e,m) {
+ var z;
+ if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
+ return this.exp(e,z);
+}
+
+// protected
+BigInteger.prototype.copyTo = bnpCopyTo;
+BigInteger.prototype.fromInt = bnpFromInt;
+BigInteger.prototype.fromString = bnpFromString;
+BigInteger.prototype.clamp = bnpClamp;
+BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
+BigInteger.prototype.drShiftTo = bnpDRShiftTo;
+BigInteger.prototype.lShiftTo = bnpLShiftTo;
+BigInteger.prototype.rShiftTo = bnpRShiftTo;
+BigInteger.prototype.subTo = bnpSubTo;
+BigInteger.prototype.multiplyTo = bnpMultiplyTo;
+BigInteger.prototype.squareTo = bnpSquareTo;
+BigInteger.prototype.divRemTo = bnpDivRemTo;
+BigInteger.prototype.invDigit = bnpInvDigit;
+BigInteger.prototype.isEven = bnpIsEven;
+BigInteger.prototype.exp = bnpExp;
+
+// public
+BigInteger.prototype.toString = bnToString;
+BigInteger.prototype.negate = bnNegate;
+BigInteger.prototype.abs = bnAbs;
+BigInteger.prototype.compareTo = bnCompareTo;
+BigInteger.prototype.bitLength = bnBitLength;
+BigInteger.prototype.mod = bnMod;
+BigInteger.prototype.modPowInt = bnModPowInt;
+
+// "constants"
+BigInteger.ZERO = nbv(0);
+BigInteger.ONE = nbv(1);
+// Copyright (c) 2005 Tom Wu
+// All Rights Reserved.
+// See "LICENSE" for details.
+
+// Extended JavaScript BN functions, required for RSA private ops.
+
+// (public)
+function bnClone() { var r = nbi(); this.copyTo(r); return r; }
+
+// (public) return value as integer
+function bnIntValue() {
+ var this_array = this.array;
+ if(this.s < 0) {
+ if(this.t == 1) return this_array[0]-BI_DV;
+ else if(this.t == 0) return -1;
+ }
+ else if(this.t == 1) return this_array[0];
+ else if(this.t == 0) return 0;
+ // assumes 16 < DB < 32
+ return ((this_array[1]&((1<<(32-BI_DB))-1))<<BI_DB)|this_array[0];
+}
+
+// (public) return value as byte
+function bnByteValue() {
+ var this_array = this.array;
+ return (this.t==0)?this.s:(this_array[0]<<24)>>24;
+}
+
+// (public) return value as short (assumes DB>=16)
+function bnShortValue() {
+ var this_array = this.array;
+ return (this.t==0)?this.s:(this_array[0]<<16)>>16;
+}
+
+// (protected) return x s.t. r^x < DV
+function bnpChunkSize(r) { return Math.floor(Math.LN2*BI_DB/Math.log(r)); }
+
+// (public) 0 if this == 0, 1 if this > 0
+function bnSigNum() {
+ var this_array = this.array;
+ if(this.s < 0) return -1;
+ else if(this.t <= 0 || (this.t == 1 && this_array[0] <= 0)) return 0;
+ else return 1;
+}
+
+// (protected) convert to radix string
+function bnpToRadix(b) {
+ if(b == null) b = 10;
+ if(this.signum() == 0 || b < 2 || b > 36) return "0";
+ var cs = this.chunkSize(b);
+ var a = Math.pow(b,cs);
+ var d = nbv(a), y = nbi(), z = nbi(), r = "";
+ this.divRemTo(d,y,z);
+ while(y.signum() > 0) {
+ r = (a+z.intValue()).toString(b).substr(1) + r;
+ y.divRemTo(d,y,z);
+ }
+ return z.intValue().toString(b) + r;
+}
+
+// (protected) convert from radix string
+function bnpFromRadix(s,b) {
+ this.fromInt(0);
+ if(b == null) b = 10;
+ var cs = this.chunkSize(b);
+ var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
+ for(var i = 0; i < s.length; ++i) {
+ var x = intAt(s,i);
+ if(x < 0) {
+ if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
+ continue;
+ }
+ w = b*w+x;
+ if(++j >= cs) {
+ this.dMultiply(d);
+ this.dAddOffset(w,0);
+ j = 0;
+ w = 0;
+ }
+ }
+ if(j > 0) {
+ this.dMultiply(Math.pow(b,j));
+ this.dAddOffset(w,0);
+ }
+ if(mi) BigInteger.ZERO.subTo(this,this);
+}
+
+// (protected) alternate constructor
+function bnpFromNumber(a,b,c) {
+ if("number" == typeof b) {
+ // new BigInteger(int,int,RNG)
+ if(a < 2) this.fromInt(1);
+ else {
+ this.fromNumber(a,c);
+ if(!this.testBit(a-1)) // force MSB set
+ this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);
+ if(this.isEven()) this.dAddOffset(1,0); // force odd
+ while(!this.isProbablePrime(b)) {
+ this.dAddOffset(2,0);
+ if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);
+ }
+ }
+ }
+ else {
+ // new BigInteger(int,RNG)
+ var x = new Array(), t = a&7;
+ x.length = (a>>3)+1;
+ b.nextBytes(x);
+ if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;
+ this.fromString(x,256);
+ }
+}
+
+// (public) convert to bigendian byte array
+function bnToByteArray() {
+ var this_array = this.array;
+ var i = this.t, r = new Array();
+ r[0] = this.s;
+ var p = BI_DB-(i*BI_DB)%8, d, k = 0;
+ if(i-- > 0) {
+ if(p < BI_DB && (d = this_array[i]>>p) != (this.s&BI_DM)>>p)
+ r[k++] = d|(this.s<<(BI_DB-p));
+ while(i >= 0) {
+ if(p < 8) {
+ d = (this_array[i]&((1<<p)-1))<<(8-p);
+ d |= this_array[--i]>>(p+=BI_DB-8);
+ }
+ else {
+ d = (this_array[i]>>(p-=8))&0xff;
+ if(p <= 0) { p += BI_DB; --i; }
+ }
+ if((d&0x80) != 0) d |= -256;
+ if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;
+ if(k > 0 || d != this.s) r[k++] = d;
+ }
+ }
+ return r;
+}
+
+function bnEquals(a) { return(this.compareTo(a)==0); }
+function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
+function bnMax(a) { return(this.compareTo(a)>0)?this:a; }
+
+// (protected) r = this op a (bitwise)
+function bnpBitwiseTo(a,op,r) {
+ var this_array = this.array;
+ var a_array = a.array;
+ var r_array = r.array;
+ var i, f, m = Math.min(a.t,this.t);
+ for(i = 0; i < m; ++i) r_array[i] = op(this_array[i],a_array[i]);
+ if(a.t < this.t) {
+ f = a.s&BI_DM;
+ for(i = m; i < this.t; ++i) r_array[i] = op(this_array[i],f);
+ r.t = this.t;
+ }
+ else {
+ f = this.s&BI_DM;
+ for(i = m; i < a.t; ++i) r_array[i] = op(f,a_array[i]);
+ r.t = a.t;
+ }
+ r.s = op(this.s,a.s);
+ r.clamp();
+}
+
+// (public) this & a
+function op_and(x,y) { return x&y; }
+function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }
+
+// (public) this | a
+function op_or(x,y) { return x|y; }
+function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }
+
+// (public) this ^ a
+function op_xor(x,y) { return x^y; }
+function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }
+
+// (public) this & ~a
+function op_andnot(x,y) { return x&~y; }
+function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }
+
+// (public) ~this
+function bnNot() {
+ var this_array = this.array;
+ var r = nbi();
+ var r_array = r.array;
+
+ for(var i = 0; i < this.t; ++i) r_array[i] = BI_DM&~this_array[i];
+ r.t = this.t;
+ r.s = ~this.s;
+ return r;
+}
+
+// (public) this << n
+function bnShiftLeft(n) {
+ var r = nbi();
+ if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);
+ return r;
+}
+
+// (public) this >> n
+function bnShiftRight(n) {
+ var r = nbi();
+ if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);
+ return r;
+}
+
+// return index of lowest 1-bit in x, x < 2^31
+function lbit(x) {
+ if(x == 0) return -1;
+ var r = 0;
+ if((x&0xffff) == 0) { x >>= 16; r += 16; }
+ if((x&0xff) == 0) { x >>= 8; r += 8; }
+ if((x&0xf) == 0) { x >>= 4; r += 4; }
+ if((x&3) == 0) { x >>= 2; r += 2; }
+ if((x&1) == 0) ++r;
+ return r;
+}
+
+// (public) returns index of lowest 1-bit (or -1 if none)
+function bnGetLowestSetBit() {
+ var this_array = this.array;
+ for(var i = 0; i < this.t; ++i)
+ if(this_array[i] != 0) return i*BI_DB+lbit(this_array[i]);
+ if(this.s < 0) return this.t*BI_DB;
+ return -1;
+}
+
+// return number of 1 bits in x
+function cbit(x) {
+ var r = 0;
+ while(x != 0) { x &= x-1; ++r; }
+ return r;
+}
+
+// (public) return number of set bits
+function bnBitCount() {
+ var r = 0, x = this.s&BI_DM;
+ for(var i = 0; i < this.t; ++i) r += cbit(this_array[i]^x);
+ return r;
+}
+
+// (public) true iff nth bit is set
+function bnTestBit(n) {
+ var this_array = this.array;
+ var j = Math.floor(n/BI_DB);
+ if(j >= this.t) return(this.s!=0);
+ return((this_array[j]&(1<<(n%BI_DB)))!=0);
+}
+
+// (protected) this op (1<<n)
+function bnpChangeBit(n,op) {
+ var r = BigInteger.ONE.shiftLeft(n);
+ this.bitwiseTo(r,op,r);
+ return r;
+}
+
+// (public) this | (1<<n)
+function bnSetBit(n) { return this.changeBit(n,op_or); }
+
+// (public) this & ~(1<<n)
+function bnClearBit(n) { return this.changeBit(n,op_andnot); }
+
+// (public) this ^ (1<<n)
+function bnFlipBit(n) { return this.changeBit(n,op_xor); }
+
+// (protected) r = this + a
+function bnpAddTo(a,r) {
+ var this_array = this.array;
+ var a_array = a.array;
+ var r_array = r.array;
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
+ while(i < m) {
+ c += this_array[i]+a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ if(a.t < this.t) {
+ c += a.s;
+ while(i < this.t) {
+ c += this_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += this.s;
+ }
+ else {
+ c += this.s;
+ while(i < a.t) {
+ c += a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += a.s;
+ }
+ r.s = (c<0)?-1:0;
+ if(c > 0) r_array[i++] = c;
+ else if(c < -1) r_array[i++] = BI_DV+c;
+ r.t = i;
+ r.clamp();
+}
+
+// (public) this + a
+function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }
+
+// (public) this - a
+function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }
+
+// (public) this * a
+function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }
+
+// (public) this / a
+function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }
+
+// (public) this % a
+function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }
+
+// (public) [this/a,this%a]
+function bnDivideAndRemainder(a) {
+ var q = nbi(), r = nbi();
+ this.divRemTo(a,q,r);
+ return new Array(q,r);
+}
+
+// (protected) this *= n, this >= 0, 1 < n < DV
+function bnpDMultiply(n) {
+ var this_array = this.array;
+ this_array[this.t] = this.am(0,n-1,this,0,0,this.t);
+ ++this.t;
+ this.clamp();
+}
+
+// (protected) this += n << w words, this >= 0
+function bnpDAddOffset(n,w) {
+ var this_array = this.array;
+ while(this.t <= w) this_array[this.t++] = 0;
+ this_array[w] += n;
+ while(this_array[w] >= BI_DV) {
+ this_array[w] -= BI_DV;
+ if(++w >= this.t) this_array[this.t++] = 0;
+ ++this_array[w];
+ }
+}
+
+// A "null" reducer
+function NullExp() {}
+function nNop(x) { return x; }
+function nMulTo(x,y,r) { x.multiplyTo(y,r); }
+function nSqrTo(x,r) { x.squareTo(r); }
+
+NullExp.prototype.convert = nNop;
+NullExp.prototype.revert = nNop;
+NullExp.prototype.mulTo = nMulTo;
+NullExp.prototype.sqrTo = nSqrTo;
+
+// (public) this^e
+function bnPow(e) { return this.exp(e,new NullExp()); }
+
+// (protected) r = lower n words of "this * a", a.t <= n
+// "this" should be the larger one if appropriate.
+function bnpMultiplyLowerTo(a,n,r) {
+ var r_array = r.array;
+ var a_array = a.array;
+ var i = Math.min(this.t+a.t,n);
+ r.s = 0; // assumes a,this >= 0
+ r.t = i;
+ while(i > 0) r_array[--i] = 0;
+ var j;
+ for(j = r.t-this.t; i < j; ++i) r_array[i+this.t] = this.am(0,a_array[i],r,i,0,this.t);
+ for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a_array[i],r,i,0,n-i);
+ r.clamp();
+}
+
+// (protected) r = "this * a" without lower n words, n > 0
+// "this" should be the larger one if appropriate.
+function bnpMultiplyUpperTo(a,n,r) {
+ var r_array = r.array;
+ var a_array = a.array;
+ --n;
+ var i = r.t = this.t+a.t-n;
+ r.s = 0; // assumes a,this >= 0
+ while(--i >= 0) r_array[i] = 0;
+ for(i = Math.max(n-this.t,0); i < a.t; ++i)
+ r_array[this.t+i-n] = this.am(n-i,a_array[i],r,0,0,this.t+i-n);
+ r.clamp();
+ r.drShiftTo(1,r);
+}
+
+// Barrett modular reduction
+function Barrett(m) {
+ // setup Barrett
+ this.r2 = nbi();
+ this.q3 = nbi();
+ BigInteger.ONE.dlShiftTo(2*m.t,this.r2);
+ this.mu = this.r2.divide(m);
+ this.m = m;
+}
+
+function barrettConvert(x) {
+ if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);
+ else if(x.compareTo(this.m) < 0) return x;
+ else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }
+}
+
+function barrettRevert(x) { return x; }
+
+// x = x mod m (HAC 14.42)
+function barrettReduce(x) {
+ x.drShiftTo(this.m.t-1,this.r2);
+ if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }
+ this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);
+ this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);
+ while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);
+ x.subTo(this.r2,x);
+ while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
+}
+
+// r = x^2 mod m; x != r
+function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+// r = x*y mod m; x,y != r
+function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+
+Barrett.prototype.convert = barrettConvert;
+Barrett.prototype.revert = barrettRevert;
+Barrett.prototype.reduce = barrettReduce;
+Barrett.prototype.mulTo = barrettMulTo;
+Barrett.prototype.sqrTo = barrettSqrTo;
+
+// (public) this^e % m (HAC 14.85)
+function bnModPow(e,m) {
+ var e_array = e.array;
+ var i = e.bitLength(), k, r = nbv(1), z;
+ if(i <= 0) return r;
+ else if(i < 18) k = 1;
+ else if(i < 48) k = 3;
+ else if(i < 144) k = 4;
+ else if(i < 768) k = 5;
+ else k = 6;
+ if(i < 8)
+ z = new Classic(m);
+ else if(m.isEven())
+ z = new Barrett(m);
+ else
+ z = new Montgomery(m);
+
+ // precomputation
+ var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;
+ g[1] = z.convert(this);
+ if(k > 1) {
+ var g2 = nbi();
+ z.sqrTo(g[1],g2);
+ while(n <= km) {
+ g[n] = nbi();
+ z.mulTo(g2,g[n-2],g[n]);
+ n += 2;
+ }
+ }
+
+ var j = e.t-1, w, is1 = true, r2 = nbi(), t;
+ i = nbits(e_array[j])-1;
+ while(j >= 0) {
+ if(i >= k1) w = (e_array[j]>>(i-k1))&km;
+ else {
+ w = (e_array[j]&((1<<(i+1))-1))<<(k1-i);
+ if(j > 0) w |= e_array[j-1]>>(BI_DB+i-k1);
+ }
+
+ n = k;
+ while((w&1) == 0) { w >>= 1; --n; }
+ if((i -= n) < 0) { i += BI_DB; --j; }
+ if(is1) { // ret == 1, don't bother squaring or multiplying it
+ g[w].copyTo(r);
+ is1 = false;
+ }
+ else {
+ while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }
+ if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }
+ z.mulTo(r2,g[w],r);
+ }
+
+ while(j >= 0 && (e_array[j]&(1<<i)) == 0) {
+ z.sqrTo(r,r2); t = r; r = r2; r2 = t;
+ if(--i < 0) { i = BI_DB-1; --j; }
+ }
+ }
+ return z.revert(r);
+}
+
+// (public) gcd(this,a) (HAC 14.54)
+function bnGCD(a) {
+ var x = (this.s<0)?this.negate():this.clone();
+ var y = (a.s<0)?a.negate():a.clone();
+ if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }
+ var i = x.getLowestSetBit(), g = y.getLowestSetBit();
+ if(g < 0) return x;
+ if(i < g) g = i;
+ if(g > 0) {
+ x.rShiftTo(g,x);
+ y.rShiftTo(g,y);
+ }
+ while(x.signum() > 0) {
+ if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);
+ if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);
+ if(x.compareTo(y) >= 0) {
+ x.subTo(y,x);
+ x.rShiftTo(1,x);
+ }
+ else {
+ y.subTo(x,y);
+ y.rShiftTo(1,y);
+ }
+ }
+ if(g > 0) y.lShiftTo(g,y);
+ return y;
+}
+
+// (protected) this % n, n < 2^26
+function bnpModInt(n) {
+ var this_array = this.array;
+ if(n <= 0) return 0;
+ var d = BI_DV%n, r = (this.s<0)?n-1:0;
+ if(this.t > 0)
+ if(d == 0) r = this_array[0]%n;
+ else for(var i = this.t-1; i >= 0; --i) r = (d*r+this_array[i])%n;
+ return r;
+}
+
+// (public) 1/this % m (HAC 14.61)
+function bnModInverse(m) {
+ var ac = m.isEven();
+ if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;
+ var u = m.clone(), v = this.clone();
+ var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);
+ while(u.signum() != 0) {
+ while(u.isEven()) {
+ u.rShiftTo(1,u);
+ if(ac) {
+ if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }
+ a.rShiftTo(1,a);
+ }
+ else if(!b.isEven()) b.subTo(m,b);
+ b.rShiftTo(1,b);
+ }
+ while(v.isEven()) {
+ v.rShiftTo(1,v);
+ if(ac) {
+ if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }
+ c.rShiftTo(1,c);
+ }
+ else if(!d.isEven()) d.subTo(m,d);
+ d.rShiftTo(1,d);
+ }
+ if(u.compareTo(v) >= 0) {
+ u.subTo(v,u);
+ if(ac) a.subTo(c,a);
+ b.subTo(d,b);
+ }
+ else {
+ v.subTo(u,v);
+ if(ac) c.subTo(a,c);
+ d.subTo(b,d);
+ }
+ }
+ if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;
+ if(d.compareTo(m) >= 0) return d.subtract(m);
+ if(d.signum() < 0) d.addTo(m,d); else return d;
+ if(d.signum() < 0) return d.add(m); else return d;
+}
+
+var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509];
+var lplim = (1<<26)/lowprimes[lowprimes.length-1];
+
+// (public) test primality with certainty >= 1-.5^t
+function bnIsProbablePrime(t) {
+ var i, x = this.abs();
+ var x_array = x.array;
+ if(x.t == 1 && x_array[0] <= lowprimes[lowprimes.length-1]) {
+ for(i = 0; i < lowprimes.length; ++i)
+ if(x_array[0] == lowprimes[i]) return true;
+ return false;
+ }
+ if(x.isEven()) return false;
+ i = 1;
+ while(i < lowprimes.length) {
+ var m = lowprimes[i], j = i+1;
+ while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];
+ m = x.modInt(m);
+ while(i < j) if(m%lowprimes[i++] == 0) return false;
+ }
+ return x.millerRabin(t);
+}
+
+// (protected) true if probably prime (HAC 4.24, Miller-Rabin)
+function bnpMillerRabin(t) {
+ var n1 = this.subtract(BigInteger.ONE);
+ var k = n1.getLowestSetBit();
+ if(k <= 0) return false;
+ var r = n1.shiftRight(k);
+ t = (t+1)>>1;
+ if(t > lowprimes.length) t = lowprimes.length;
+ var a = nbi();
+ for(var i = 0; i < t; ++i) {
+ a.fromInt(lowprimes[i]);
+ var y = a.modPow(r,this);
+ if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {
+ var j = 1;
+ while(j++ < k && y.compareTo(n1) != 0) {
+ y = y.modPowInt(2,this);
+ if(y.compareTo(BigInteger.ONE) == 0) return false;
+ }
+ if(y.compareTo(n1) != 0) return false;
+ }
+ }
+ return true;
+}
+
+// protected
+BigInteger.prototype.chunkSize = bnpChunkSize;
+BigInteger.prototype.toRadix = bnpToRadix;
+BigInteger.prototype.fromRadix = bnpFromRadix;
+BigInteger.prototype.fromNumber = bnpFromNumber;
+BigInteger.prototype.bitwiseTo = bnpBitwiseTo;
+BigInteger.prototype.changeBit = bnpChangeBit;
+BigInteger.prototype.addTo = bnpAddTo;
+BigInteger.prototype.dMultiply = bnpDMultiply;
+BigInteger.prototype.dAddOffset = bnpDAddOffset;
+BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;
+BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;
+BigInteger.prototype.modInt = bnpModInt;
+BigInteger.prototype.millerRabin = bnpMillerRabin;
+
+// public
+BigInteger.prototype.clone = bnClone;
+BigInteger.prototype.intValue = bnIntValue;
+BigInteger.prototype.byteValue = bnByteValue;
+BigInteger.prototype.shortValue = bnShortValue;
+BigInteger.prototype.signum = bnSigNum;
+BigInteger.prototype.toByteArray = bnToByteArray;
+BigInteger.prototype.equals = bnEquals;
+BigInteger.prototype.min = bnMin;
+BigInteger.prototype.max = bnMax;
+BigInteger.prototype.and = bnAnd;
+BigInteger.prototype.or = bnOr;
+BigInteger.prototype.xor = bnXor;
+BigInteger.prototype.andNot = bnAndNot;
+BigInteger.prototype.not = bnNot;
+BigInteger.prototype.shiftLeft = bnShiftLeft;
+BigInteger.prototype.shiftRight = bnShiftRight;
+BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;
+BigInteger.prototype.bitCount = bnBitCount;
+BigInteger.prototype.testBit = bnTestBit;
+BigInteger.prototype.setBit = bnSetBit;
+BigInteger.prototype.clearBit = bnClearBit;
+BigInteger.prototype.flipBit = bnFlipBit;
+BigInteger.prototype.add = bnAdd;
+BigInteger.prototype.subtract = bnSubtract;
+BigInteger.prototype.multiply = bnMultiply;
+BigInteger.prototype.divide = bnDivide;
+BigInteger.prototype.remainder = bnRemainder;
+BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;
+BigInteger.prototype.modPow = bnModPow;
+BigInteger.prototype.modInverse = bnModInverse;
+BigInteger.prototype.pow = bnPow;
+BigInteger.prototype.gcd = bnGCD;
+BigInteger.prototype.isProbablePrime = bnIsProbablePrime;
+
+// BigInteger interfaces not implemented in jsbn:
+
+// BigInteger(int signum, byte[] magnitude)
+// double doubleValue()
+// float floatValue()
+// int hashCode()
+// long longValue()
+// static BigInteger valueOf(long val)
+// prng4.js - uses Arcfour as a PRNG
+
+function Arcfour() {
+ this.i = 0;
+ this.j = 0;
+ this.S = new Array();
+}
+
+// Initialize arcfour context from key, an array of ints, each from [0..255]
+function ARC4init(key) {
+ var i, j, t;
+ for(i = 0; i < 256; ++i)
+ this.S[i] = i;
+ j = 0;
+ for(i = 0; i < 256; ++i) {
+ j = (j + this.S[i] + key[i % key.length]) & 255;
+ t = this.S[i];
+ this.S[i] = this.S[j];
+ this.S[j] = t;
+ }
+ this.i = 0;
+ this.j = 0;
+}
+
+function ARC4next() {
+ var t;
+ this.i = (this.i + 1) & 255;
+ this.j = (this.j + this.S[this.i]) & 255;
+ t = this.S[this.i];
+ this.S[this.i] = this.S[this.j];
+ this.S[this.j] = t;
+ return this.S[(t + this.S[this.i]) & 255];
+}
+
+Arcfour.prototype.init = ARC4init;
+Arcfour.prototype.next = ARC4next;
+
+// Plug in your RNG constructor here
+function prng_newstate() {
+ return new Arcfour();
+}
+
+// Pool size must be a multiple of 4 and greater than 32.
+// An array of bytes the size of the pool will be passed to init()
+var rng_psize = 256;
+// Random number generator - requires a PRNG backend, e.g. prng4.js
+
+// For best results, put code like
+// <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
+// in your main HTML document.
+
+var rng_state;
+var rng_pool;
+var rng_pptr;
+
+// Mix in a 32-bit integer into the pool
+function rng_seed_int(x) {
+ rng_pool[rng_pptr++] ^= x & 255;
+ rng_pool[rng_pptr++] ^= (x >> 8) & 255;
+ rng_pool[rng_pptr++] ^= (x >> 16) & 255;
+ rng_pool[rng_pptr++] ^= (x >> 24) & 255;
+ if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;
+}
+
+// Mix in the current time (w/milliseconds) into the pool
+function rng_seed_time() {
+ // Use pre-computed date to avoid making the benchmark
+ // results dependent on the current date.
+ rng_seed_int(1122926989487);
+}
+
+// Initialize the pool with junk if needed.
+if(rng_pool == null) {
+ rng_pool = new Array();
+ rng_pptr = 0;
+ var t;
+ while(rng_pptr < rng_psize) { // extract some randomness from Math.random()
+ t = Math.floor(65536 * Math.random());
+ rng_pool[rng_pptr++] = t >>> 8;
+ rng_pool[rng_pptr++] = t & 255;
+ }
+ rng_pptr = 0;
+ rng_seed_time();
+ //rng_seed_int(window.screenX);
+ //rng_seed_int(window.screenY);
+}
+
+function rng_get_byte() {
+ if(rng_state == null) {
+ rng_seed_time();
+ rng_state = prng_newstate();
+ rng_state.init(rng_pool);
+ for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr)
+ rng_pool[rng_pptr] = 0;
+ rng_pptr = 0;
+ //rng_pool = null;
+ }
+ // TODO: allow reseeding after first request
+ return rng_state.next();
+}
+
+function rng_get_bytes(ba) {
+ var i;
+ for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();
+}
+
+function SecureRandom() {}
+
+SecureRandom.prototype.nextBytes = rng_get_bytes;
+// Depends on jsbn.js and rng.js
+
+// convert a (hex) string to a bignum object
+function parseBigInt(str,r) {
+ return new BigInteger(str,r);
+}
+
+function linebrk(s,n) {
+ var ret = "";
+ var i = 0;
+ while(i + n < s.length) {
+ ret += s.substring(i,i+n) + "\n";
+ i += n;
+ }
+ return ret + s.substring(i,s.length);
+}
+
+function byte2Hex(b) {
+ if(b < 0x10)
+ return "0" + b.toString(16);
+ else
+ return b.toString(16);
+}
+
+// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint
+function pkcs1pad2(s,n) {
+ if(n < s.length + 11) {
+ alert("Message too long for RSA");
+ return null;
+ }
+ var ba = new Array();
+ var i = s.length - 1;
+ while(i >= 0 && n > 0) ba[--n] = s.charCodeAt(i--);
+ ba[--n] = 0;
+ var rng = new SecureRandom();
+ var x = new Array();
+ while(n > 2) { // random non-zero pad
+ x[0] = 0;
+ while(x[0] == 0) rng.nextBytes(x);
+ ba[--n] = x[0];
+ }
+ ba[--n] = 2;
+ ba[--n] = 0;
+ return new BigInteger(ba);
+}
+
+// "empty" RSA key constructor
+function RSAKey() {
+ this.n = null;
+ this.e = 0;
+ this.d = null;
+ this.p = null;
+ this.q = null;
+ this.dmp1 = null;
+ this.dmq1 = null;
+ this.coeff = null;
+}
+
+// Set the public key fields N and e from hex strings
+function RSASetPublic(N,E) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ }
+ else
+ alert("Invalid RSA public key");
+}
+
+// Perform raw public operation on "x": return x^e (mod n)
+function RSADoPublic(x) {
+ return x.modPowInt(this.e, this.n);
+}
+
+// Return the PKCS#1 RSA encryption of "text" as an even-length hex string
+function RSAEncrypt(text) {
+ var m = pkcs1pad2(text,(this.n.bitLength()+7)>>3);
+ if(m == null) return null;
+ var c = this.doPublic(m);
+ if(c == null) return null;
+ var h = c.toString(16);
+ if((h.length & 1) == 0) return h; else return "0" + h;
+}
+
+// Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string
+//function RSAEncryptB64(text) {
+// var h = this.encrypt(text);
+// if(h) return hex2b64(h); else return null;
+//}
+
+// protected
+RSAKey.prototype.doPublic = RSADoPublic;
+
+// public
+RSAKey.prototype.setPublic = RSASetPublic;
+RSAKey.prototype.encrypt = RSAEncrypt;
+//RSAKey.prototype.encrypt_b64 = RSAEncryptB64;
+// Depends on rsa.js and jsbn2.js
+
+// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext
+function pkcs1unpad2(d,n) {
+ var b = d.toByteArray();
+ var i = 0;
+ while(i < b.length && b[i] == 0) ++i;
+ if(b.length-i != n-1 || b[i] != 2)
+ return null;
+ ++i;
+ while(b[i] != 0)
+ if(++i >= b.length) return null;
+ var ret = "";
+ while(++i < b.length)
+ ret += String.fromCharCode(b[i]);
+ return ret;
+}
+
+// Set the private key fields N, e, and d from hex strings
+function RSASetPrivate(N,E,D) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ this.d = parseBigInt(D,16);
+ }
+ else
+ alert("Invalid RSA private key");
+}
+
+// Set the private key fields N, e, d and CRT params from hex strings
+function RSASetPrivateEx(N,E,D,P,Q,DP,DQ,C) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ this.d = parseBigInt(D,16);
+ this.p = parseBigInt(P,16);
+ this.q = parseBigInt(Q,16);
+ this.dmp1 = parseBigInt(DP,16);
+ this.dmq1 = parseBigInt(DQ,16);
+ this.coeff = parseBigInt(C,16);
+ }
+ else
+ alert("Invalid RSA private key");
+}
+
+// Generate a new random private key B bits long, using public expt E
+function RSAGenerate(B,E) {
+ var rng = new SecureRandom();
+ var qs = B>>1;
+ this.e = parseInt(E,16);
+ var ee = new BigInteger(E,16);
+ for(;;) {
+ for(;;) {
+ this.p = new BigInteger(B-qs,1,rng);
+ if(this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) break;
+ }
+ for(;;) {
+ this.q = new BigInteger(qs,1,rng);
+ if(this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) break;
+ }
+ if(this.p.compareTo(this.q) <= 0) {
+ var t = this.p;
+ this.p = this.q;
+ this.q = t;
+ }
+ var p1 = this.p.subtract(BigInteger.ONE);
+ var q1 = this.q.subtract(BigInteger.ONE);
+ var phi = p1.multiply(q1);
+ if(phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {
+ this.n = this.p.multiply(this.q);
+ this.d = ee.modInverse(phi);
+ this.dmp1 = this.d.mod(p1);
+ this.dmq1 = this.d.mod(q1);
+ this.coeff = this.q.modInverse(this.p);
+ break;
+ }
+ }
+}
+
+// Perform raw private operation on "x": return x^d (mod n)
+function RSADoPrivate(x) {
+ if(this.p == null || this.q == null)
+ return x.modPow(this.d, this.n);
+
+ // TODO: re-calculate any missing CRT params
+ var xp = x.mod(this.p).modPow(this.dmp1, this.p);
+ var xq = x.mod(this.q).modPow(this.dmq1, this.q);
+
+ while(xp.compareTo(xq) < 0)
+ xp = xp.add(this.p);
+ return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);
+}
+
+// Return the PKCS#1 RSA decryption of "ctext".
+// "ctext" is an even-length hex string and the output is a plain string.
+function RSADecrypt(ctext) {
+ var c = parseBigInt(ctext, 16);
+ var m = this.doPrivate(c);
+ if(m == null) return null;
+ return pkcs1unpad2(m, (this.n.bitLength()+7)>>3);
+}
+
+// Return the PKCS#1 RSA decryption of "ctext".
+// "ctext" is a Base64-encoded string and the output is a plain string.
+//function RSAB64Decrypt(ctext) {
+// var h = b64tohex(ctext);
+// if(h) return this.decrypt(h); else return null;
+//}
+
+// protected
+RSAKey.prototype.doPrivate = RSADoPrivate;
+
+// public
+RSAKey.prototype.setPrivate = RSASetPrivate;
+RSAKey.prototype.setPrivateEx = RSASetPrivateEx;
+RSAKey.prototype.generate = RSAGenerate;
+RSAKey.prototype.decrypt = RSADecrypt;
+//RSAKey.prototype.b64_decrypt = RSAB64Decrypt;
+
+
+nValue="a5261939975948bb7a58dffe5ff54e65f0498f9175f5a09288810b8975871e99af3b5dd94057b0fc07535f5f97444504fa35169d461d0d30cf0192e307727c065168c788771c561a9400fb49175e9e6aa4e23fe11af69e9412dd23b0cb6684c4c2429bce139e848ab26d0829073351f4acd36074eafd036a5eb83359d2a698d3";
+eValue="10001";
+dValue="8e9912f6d3645894e8d38cb58c0db81ff516cf4c7e5a14c7f1eddb1459d2cded4d8d293fc97aee6aefb861859c8b6a3d1dfe710463e1f9ddc72048c09751971c4a580aa51eb523357a3cc48d31cfad1d4a165066ed92d4748fb6571211da5cb14bc11b6e2df7c1a559e6d5ac1cd5c94703a22891464fba23d0d965086277a161";
+pValue="d090ce58a92c75233a6486cb0a9209bf3583b64f540c76f5294bb97d285eed33aec220bde14b2417951178ac152ceab6da7090905b478195498b352048f15e7d";
+qValue="cab575dc652bb66df15a0359609d51d1db184750c00c6698b90ef3465c99655103edbf0d54c56aec0ce3c4d22592338092a126a0cc49f65a4a30d222b411e58f";
+dmp1Value="1a24bca8e273df2f0e47c199bbf678604e7df7215480c77c8db39f49b000ce2cf7500038acfff5433b7d582a01f1826e6f4d42e1c57f5e1fef7b12aabc59fd25";
+dmq1Value="3d06982efbbe47339e1f6d36b1216b8a741d410b0c662f54f7118b27b9a4ec9d914337eb39841d8666f3034408cf94f5b62f11c402fc994fe15a05493150d9fd";
+coeffValue="3a3e731acd8960b7ff9eb81a7ff93bd1cfa74cbd56987db58b4594fb09c09084db1734c8143f98b602b981aaa9243ca28deb69b5b280ee8dcee0fd2625e53250";
+
+setupEngine(am3, 28);
+
+var TEXT = "The quick brown fox jumped over the extremely lazy frog! " +
+ "Now is the time for all good men to come to the party.";
+var encrypted;
+
+function encrypt() {
+ var RSA = new RSAKey();
+ RSA.setPublic(nValue, eValue);
+ RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue);
+ encrypted = RSA.encrypt(TEXT);
+}
+
+function decrypt() {
+ var RSA = new RSAKey();
+ RSA.setPublic(nValue, eValue);
+ RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue);
+ var decrypted = RSA.decrypt(encrypted);
+ if (decrypted != TEXT) {
+ throw new Error("Crypto operation failed");
+ }
+}
+
+for (var i = 0; i < 8; ++i) {
+ encrypt();
+ decrypt();
+}
diff --git a/PerformanceTests/SunSpider/tests/v8-v4/v8-deltablue.js b/PerformanceTests/SunSpider/tests/v8-v4/v8-deltablue.js
new file mode 100644
index 000000000..ddbf3bc42
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v4/v8-deltablue.js
@@ -0,0 +1,877 @@
+// Copyright 2008 the V8 project authors. All rights reserved.
+// Copyright 1996 John Maloney and Mario Wolczko.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+// This implementation of the DeltaBlue benchmark is derived
+// from the Smalltalk implementation by John Maloney and Mario
+// Wolczko. Some parts have been translated directly, whereas
+// others have been modified more aggresively to make it feel
+// more like a JavaScript program.
+
+/**
+ * A JavaScript implementation of the DeltaBlue constrain-solving
+ * algorithm, as described in:
+ *
+ * "The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver"
+ * Bjorn N. Freeman-Benson and John Maloney
+ * January 1990 Communications of the ACM,
+ * also available as University of Washington TR 89-08-06.
+ *
+ * Beware: this benchmark is written in a grotesque style where
+ * the constraint model is built by side-effects from constructors.
+ * I've kept it this way to avoid deviating too much from the original
+ * implementation.
+ */
+
+
+/* --- O b j e c t M o d e l --- */
+
+Object.prototype.inherits = function (shuper) {
+ function Inheriter() { }
+ Inheriter.prototype = shuper.prototype;
+ this.prototype = new Inheriter();
+ this.superConstructor = shuper;
+}
+
+function OrderedCollection() {
+ this.elms = new Array();
+}
+
+OrderedCollection.prototype.add = function (elm) {
+ this.elms.push(elm);
+}
+
+OrderedCollection.prototype.at = function (index) {
+ return this.elms[index];
+}
+
+OrderedCollection.prototype.size = function () {
+ return this.elms.length;
+}
+
+OrderedCollection.prototype.removeFirst = function () {
+ return this.elms.pop();
+}
+
+OrderedCollection.prototype.remove = function (elm) {
+ var index = 0, skipped = 0;
+ for (var i = 0; i < this.elms.length; i++) {
+ var value = this.elms[i];
+ if (value != elm) {
+ this.elms[index] = value;
+ index++;
+ } else {
+ skipped++;
+ }
+ }
+ for (var i = 0; i < skipped; i++)
+ this.elms.pop();
+}
+
+/* --- *
+ * S t r e n g t h
+ * --- */
+
+/**
+ * Strengths are used to measure the relative importance of constraints.
+ * New strengths may be inserted in the strength hierarchy without
+ * disrupting current constraints. Strengths cannot be created outside
+ * this class, so pointer comparison can be used for value comparison.
+ */
+function Strength(strengthValue, name) {
+ this.strengthValue = strengthValue;
+ this.name = name;
+}
+
+Strength.stronger = function (s1, s2) {
+ return s1.strengthValue < s2.strengthValue;
+}
+
+Strength.weaker = function (s1, s2) {
+ return s1.strengthValue > s2.strengthValue;
+}
+
+Strength.weakestOf = function (s1, s2) {
+ return this.weaker(s1, s2) ? s1 : s2;
+}
+
+Strength.strongest = function (s1, s2) {
+ return this.stronger(s1, s2) ? s1 : s2;
+}
+
+Strength.prototype.nextWeaker = function () {
+ switch (this.strengthValue) {
+ case 0: return Strength.WEAKEST;
+ case 1: return Strength.WEAK_DEFAULT;
+ case 2: return Strength.NORMAL;
+ case 3: return Strength.STRONG_DEFAULT;
+ case 4: return Strength.PREFERRED;
+ case 5: return Strength.REQUIRED;
+ }
+}
+
+// Strength constants.
+Strength.REQUIRED = new Strength(0, "required");
+Strength.STONG_PREFERRED = new Strength(1, "strongPreferred");
+Strength.PREFERRED = new Strength(2, "preferred");
+Strength.STRONG_DEFAULT = new Strength(3, "strongDefault");
+Strength.NORMAL = new Strength(4, "normal");
+Strength.WEAK_DEFAULT = new Strength(5, "weakDefault");
+Strength.WEAKEST = new Strength(6, "weakest");
+
+/* --- *
+ * C o n s t r a i n t
+ * --- */
+
+/**
+ * An abstract class representing a system-maintainable relationship
+ * (or "constraint") between a set of variables. A constraint supplies
+ * a strength instance variable; concrete subclasses provide a means
+ * of storing the constrained variables and other information required
+ * to represent a constraint.
+ */
+function Constraint(strength) {
+ this.strength = strength;
+}
+
+/**
+ * Activate this constraint and attempt to satisfy it.
+ */
+Constraint.prototype.addConstraint = function () {
+ this.addToGraph();
+ planner.incrementalAdd(this);
+}
+
+/**
+ * Attempt to find a way to enforce this constraint. If successful,
+ * record the solution, perhaps modifying the current dataflow
+ * graph. Answer the constraint that this constraint overrides, if
+ * there is one, or nil, if there isn't.
+ * Assume: I am not already satisfied.
+ */
+Constraint.prototype.satisfy = function (mark) {
+ this.chooseMethod(mark);
+ if (!this.isSatisfied()) {
+ if (this.strength == Strength.REQUIRED)
+ alert("Could not satisfy a required constraint!");
+ return null;
+ }
+ this.markInputs(mark);
+ var out = this.output();
+ var overridden = out.determinedBy;
+ if (overridden != null) overridden.markUnsatisfied();
+ out.determinedBy = this;
+ if (!planner.addPropagate(this, mark))
+ alert("Cycle encountered");
+ out.mark = mark;
+ return overridden;
+}
+
+Constraint.prototype.destroyConstraint = function () {
+ if (this.isSatisfied()) planner.incrementalRemove(this);
+ else this.removeFromGraph();
+}
+
+/**
+ * Normal constraints are not input constraints. An input constraint
+ * is one that depends on external state, such as the mouse, the
+ * keybord, a clock, or some arbitraty piece of imperative code.
+ */
+Constraint.prototype.isInput = function () {
+ return false;
+}
+
+/* --- *
+ * U n a r y C o n s t r a i n t
+ * --- */
+
+/**
+ * Abstract superclass for constraints having a single possible output
+ * variable.
+ */
+function UnaryConstraint(v, strength) {
+ UnaryConstraint.superConstructor.call(this, strength);
+ this.myOutput = v;
+ this.satisfied = false;
+ this.addConstraint();
+}
+
+UnaryConstraint.inherits(Constraint);
+
+/**
+ * Adds this constraint to the constraint graph
+ */
+UnaryConstraint.prototype.addToGraph = function () {
+ this.myOutput.addConstraint(this);
+ this.satisfied = false;
+}
+
+/**
+ * Decides if this constraint can be satisfied and records that
+ * decision.
+ */
+UnaryConstraint.prototype.chooseMethod = function (mark) {
+ this.satisfied = (this.myOutput.mark != mark)
+ && Strength.stronger(this.strength, this.myOutput.walkStrength);
+}
+
+/**
+ * Returns true if this constraint is satisfied in the current solution.
+ */
+UnaryConstraint.prototype.isSatisfied = function () {
+ return this.satisfied;
+}
+
+UnaryConstraint.prototype.markInputs = function (mark) {
+ // has no inputs
+}
+
+/**
+ * Returns the current output variable.
+ */
+UnaryConstraint.prototype.output = function () {
+ return this.myOutput;
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this constraint. Assume
+ * this constraint is satisfied.
+ */
+UnaryConstraint.prototype.recalculate = function () {
+ this.myOutput.walkStrength = this.strength;
+ this.myOutput.stay = !this.isInput();
+ if (this.myOutput.stay) this.execute(); // Stay optimization
+}
+
+/**
+ * Records that this constraint is unsatisfied
+ */
+UnaryConstraint.prototype.markUnsatisfied = function () {
+ this.satisfied = false;
+}
+
+UnaryConstraint.prototype.inputsKnown = function () {
+ return true;
+}
+
+UnaryConstraint.prototype.removeFromGraph = function () {
+ if (this.myOutput != null) this.myOutput.removeConstraint(this);
+ this.satisfied = false;
+}
+
+/* --- *
+ * S t a y C o n s t r a i n t
+ * --- */
+
+/**
+ * Variables that should, with some level of preference, stay the same.
+ * Planners may exploit the fact that instances, if satisfied, will not
+ * change their output during plan execution. This is called "stay
+ * optimization".
+ */
+function StayConstraint(v, str) {
+ StayConstraint.superConstructor.call(this, v, str);
+}
+
+StayConstraint.inherits(UnaryConstraint);
+
+StayConstraint.prototype.execute = function () {
+ // Stay constraints do nothing
+}
+
+/* --- *
+ * E d i t C o n s t r a i n t
+ * --- */
+
+/**
+ * A unary input constraint used to mark a variable that the client
+ * wishes to change.
+ */
+function EditConstraint(v, str) {
+ EditConstraint.superConstructor.call(this, v, str);
+}
+
+EditConstraint.inherits(UnaryConstraint);
+
+/**
+ * Edits indicate that a variable is to be changed by imperative code.
+ */
+EditConstraint.prototype.isInput = function () {
+ return true;
+}
+
+EditConstraint.prototype.execute = function () {
+ // Edit constraints do nothing
+}
+
+/* --- *
+ * B i n a r y C o n s t r a i n t
+ * --- */
+
+var Direction = new Object();
+Direction.NONE = 0;
+Direction.FORWARD = 1;
+Direction.BACKWARD = -1;
+
+/**
+ * Abstract superclass for constraints having two possible output
+ * variables.
+ */
+function BinaryConstraint(var1, var2, strength) {
+ BinaryConstraint.superConstructor.call(this, strength);
+ this.v1 = var1;
+ this.v2 = var2;
+ this.direction = Direction.NONE;
+ this.addConstraint();
+}
+
+BinaryConstraint.inherits(Constraint);
+
+/**
+ * Decides if this constratint can be satisfied and which way it
+ * should flow based on the relative strength of the variables related,
+ * and record that decision.
+ */
+BinaryConstraint.prototype.chooseMethod = function (mark) {
+ if (this.v1.mark == mark) {
+ this.direction = (this.v1.mark != mark && Strength.stronger(this.strength, this.v2.walkStrength))
+ ? Direction.FORWARD
+ : Direction.NONE;
+ }
+ if (this.v2.mark == mark) {
+ this.direction = (this.v1.mark != mark && Strength.stronger(this.strength, this.v1.walkStrength))
+ ? Direction.BACKWARD
+ : Direction.NONE;
+ }
+ if (Strength.weaker(this.v1.walkStrength, this.v2.walkStrength)) {
+ this.direction = Strength.stronger(this.strength, this.v1.walkStrength)
+ ? Direction.BACKWARD
+ : Direction.NONE;
+ } else {
+ this.direction = Strength.stronger(this.strength, this.v2.walkStrength)
+ ? Direction.FORWARD
+ : Direction.BACKWARD
+ }
+}
+
+/**
+ * Add this constraint to the constraint graph
+ */
+BinaryConstraint.prototype.addToGraph = function () {
+ this.v1.addConstraint(this);
+ this.v2.addConstraint(this);
+ this.direction = Direction.NONE;
+}
+
+/**
+ * Answer true if this constraint is satisfied in the current solution.
+ */
+BinaryConstraint.prototype.isSatisfied = function () {
+ return this.direction != Direction.NONE;
+}
+
+/**
+ * Mark the input variable with the given mark.
+ */
+BinaryConstraint.prototype.markInputs = function (mark) {
+ this.input().mark = mark;
+}
+
+/**
+ * Returns the current input variable
+ */
+BinaryConstraint.prototype.input = function () {
+ return (this.direction == Direction.FORWARD) ? this.v1 : this.v2;
+}
+
+/**
+ * Returns the current output variable
+ */
+BinaryConstraint.prototype.output = function () {
+ return (this.direction == Direction.FORWARD) ? this.v2 : this.v1;
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this
+ * constraint. Assume this constraint is satisfied.
+ */
+BinaryConstraint.prototype.recalculate = function () {
+ var ihn = this.input(), out = this.output();
+ out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength);
+ out.stay = ihn.stay;
+ if (out.stay) this.execute();
+}
+
+/**
+ * Record the fact that this constraint is unsatisfied.
+ */
+BinaryConstraint.prototype.markUnsatisfied = function () {
+ this.direction = Direction.NONE;
+}
+
+BinaryConstraint.prototype.inputsKnown = function (mark) {
+ var i = this.input();
+ return i.mark == mark || i.stay || i.determinedBy == null;
+}
+
+BinaryConstraint.prototype.removeFromGraph = function () {
+ if (this.v1 != null) this.v1.removeConstraint(this);
+ if (this.v2 != null) this.v2.removeConstraint(this);
+ this.direction = Direction.NONE;
+}
+
+/* --- *
+ * S c a l e C o n s t r a i n t
+ * --- */
+
+/**
+ * Relates two variables by the linear scaling relationship: "v2 =
+ * (v1 * scale) + offset". Either v1 or v2 may be changed to maintain
+ * this relationship but the scale factor and offset are considered
+ * read-only.
+ */
+function ScaleConstraint(src, scale, offset, dest, strength) {
+ this.direction = Direction.NONE;
+ this.scale = scale;
+ this.offset = offset;
+ ScaleConstraint.superConstructor.call(this, src, dest, strength);
+}
+
+ScaleConstraint.inherits(BinaryConstraint);
+
+/**
+ * Adds this constraint to the constraint graph.
+ */
+ScaleConstraint.prototype.addToGraph = function () {
+ ScaleConstraint.superConstructor.prototype.addToGraph.call(this);
+ this.scale.addConstraint(this);
+ this.offset.addConstraint(this);
+}
+
+ScaleConstraint.prototype.removeFromGraph = function () {
+ ScaleConstraint.superConstructor.prototype.removeFromGraph.call(this);
+ if (this.scale != null) this.scale.removeConstraint(this);
+ if (this.offset != null) this.offset.removeConstraint(this);
+}
+
+ScaleConstraint.prototype.markInputs = function (mark) {
+ ScaleConstraint.superConstructor.prototype.markInputs.call(this, mark);
+ this.scale.mark = this.offset.mark = mark;
+}
+
+/**
+ * Enforce this constraint. Assume that it is satisfied.
+ */
+ScaleConstraint.prototype.execute = function () {
+ if (this.direction == Direction.FORWARD) {
+ this.v2.value = this.v1.value * this.scale.value + this.offset.value;
+ } else {
+ this.v1.value = (this.v2.value - this.offset.value) / this.scale.value;
+ }
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this constraint. Assume
+ * this constraint is satisfied.
+ */
+ScaleConstraint.prototype.recalculate = function () {
+ var ihn = this.input(), out = this.output();
+ out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength);
+ out.stay = ihn.stay && this.scale.stay && this.offset.stay;
+ if (out.stay) this.execute();
+}
+
+/* --- *
+ * E q u a l i t y C o n s t r a i n t
+ * --- */
+
+/**
+ * Constrains two variables to have the same value.
+ */
+function EqualityConstraint(var1, var2, strength) {
+ EqualityConstraint.superConstructor.call(this, var1, var2, strength);
+}
+
+EqualityConstraint.inherits(BinaryConstraint);
+
+/**
+ * Enforce this constraint. Assume that it is satisfied.
+ */
+EqualityConstraint.prototype.execute = function () {
+ this.output().value = this.input().value;
+}
+
+/* --- *
+ * V a r i a b l e
+ * --- */
+
+/**
+ * A constrained variable. In addition to its value, it maintain the
+ * structure of the constraint graph, the current dataflow graph, and
+ * various parameters of interest to the DeltaBlue incremental
+ * constraint solver.
+ **/
+function Variable(name, initialValue) {
+ this.value = initialValue || 0;
+ this.constraints = new OrderedCollection();
+ this.determinedBy = null;
+ this.mark = 0;
+ this.walkStrength = Strength.WEAKEST;
+ this.stay = true;
+ this.name = name;
+}
+
+/**
+ * Add the given constraint to the set of all constraints that refer
+ * this variable.
+ */
+Variable.prototype.addConstraint = function (c) {
+ this.constraints.add(c);
+}
+
+/**
+ * Removes all traces of c from this variable.
+ */
+Variable.prototype.removeConstraint = function (c) {
+ this.constraints.remove(c);
+ if (this.determinedBy == c) this.determinedBy = null;
+}
+
+/* --- *
+ * P l a n n e r
+ * --- */
+
+/**
+ * The DeltaBlue planner
+ */
+function Planner() {
+ this.currentMark = 0;
+}
+
+/**
+ * Attempt to satisfy the given constraint and, if successful,
+ * incrementally update the dataflow graph. Details: If satifying
+ * the constraint is successful, it may override a weaker constraint
+ * on its output. The algorithm attempts to resatisfy that
+ * constraint using some other method. This process is repeated
+ * until either a) it reaches a variable that was not previously
+ * determined by any constraint or b) it reaches a constraint that
+ * is too weak to be satisfied using any of its methods. The
+ * variables of constraints that have been processed are marked with
+ * a unique mark value so that we know where we've been. This allows
+ * the algorithm to avoid getting into an infinite loop even if the
+ * constraint graph has an inadvertent cycle.
+ */
+Planner.prototype.incrementalAdd = function (c) {
+ var mark = this.newMark();
+ var overridden = c.satisfy(mark);
+ while (overridden != null)
+ overridden = overridden.satisfy(mark);
+}
+
+/**
+ * Entry point for retracting a constraint. Remove the given
+ * constraint and incrementally update the dataflow graph.
+ * Details: Retracting the given constraint may allow some currently
+ * unsatisfiable downstream constraint to be satisfied. We therefore collect
+ * a list of unsatisfied downstream constraints and attempt to
+ * satisfy each one in turn. This list is traversed by constraint
+ * strength, strongest first, as a heuristic for avoiding
+ * unnecessarily adding and then overriding weak constraints.
+ * Assume: c is satisfied.
+ */
+Planner.prototype.incrementalRemove = function (c) {
+ var out = c.output();
+ c.markUnsatisfied();
+ c.removeFromGraph();
+ var unsatisfied = this.removePropagateFrom(out);
+ var strength = Strength.REQUIRED;
+ do {
+ for (var i = 0; i < unsatisfied.size(); i++) {
+ var u = unsatisfied.at(i);
+ if (u.strength == strength)
+ this.incrementalAdd(u);
+ }
+ strength = strength.nextWeaker();
+ } while (strength != Strength.WEAKEST);
+}
+
+/**
+ * Select a previously unused mark value.
+ */
+Planner.prototype.newMark = function () {
+ return ++this.currentMark;
+}
+
+/**
+ * Extract a plan for resatisfaction starting from the given source
+ * constraints, usually a set of input constraints. This method
+ * assumes that stay optimization is desired; the plan will contain
+ * only constraints whose output variables are not stay. Constraints
+ * that do no computation, such as stay and edit constraints, are
+ * not included in the plan.
+ * Details: The outputs of a constraint are marked when it is added
+ * to the plan under construction. A constraint may be appended to
+ * the plan when all its input variables are known. A variable is
+ * known if either a) the variable is marked (indicating that has
+ * been computed by a constraint appearing earlier in the plan), b)
+ * the variable is 'stay' (i.e. it is a constant at plan execution
+ * time), or c) the variable is not determined by any
+ * constraint. The last provision is for past states of history
+ * variables, which are not stay but which are also not computed by
+ * any constraint.
+ * Assume: sources are all satisfied.
+ */
+Planner.prototype.makePlan = function (sources) {
+ var mark = this.newMark();
+ var plan = new Plan();
+ var todo = sources;
+ while (todo.size() > 0) {
+ var c = todo.removeFirst();
+ if (c.output().mark != mark && c.inputsKnown(mark)) {
+ plan.addConstraint(c);
+ c.output().mark = mark;
+ this.addConstraintsConsumingTo(c.output(), todo);
+ }
+ }
+ return plan;
+}
+
+/**
+ * Extract a plan for resatisfying starting from the output of the
+ * given constraints, usually a set of input constraints.
+ */
+Planner.prototype.extractPlanFromConstraints = function (constraints) {
+ var sources = new OrderedCollection();
+ for (var i = 0; i < constraints.size(); i++) {
+ var c = constraints.at(i);
+ if (c.isInput() && c.isSatisfied())
+ // not in plan already and eligible for inclusion
+ sources.add(c);
+ }
+ return this.makePlan(sources);
+}
+
+/**
+ * Recompute the walkabout strengths and stay flags of all variables
+ * downstream of the given constraint and recompute the actual
+ * values of all variables whose stay flag is true. If a cycle is
+ * detected, remove the given constraint and answer
+ * false. Otherwise, answer true.
+ * Details: Cycles are detected when a marked variable is
+ * encountered downstream of the given constraint. The sender is
+ * assumed to have marked the inputs of the given constraint with
+ * the given mark. Thus, encountering a marked node downstream of
+ * the output constraint means that there is a path from the
+ * constraint's output to one of its inputs.
+ */
+Planner.prototype.addPropagate = function (c, mark) {
+ var todo = new OrderedCollection();
+ todo.add(c);
+ while (todo.size() > 0) {
+ var d = todo.removeFirst();
+ if (d.output().mark == mark) {
+ this.incrementalRemove(c);
+ return false;
+ }
+ d.recalculate();
+ this.addConstraintsConsumingTo(d.output(), todo);
+ }
+ return true;
+}
+
+
+/**
+ * Update the walkabout strengths and stay flags of all variables
+ * downstream of the given constraint. Answer a collection of
+ * unsatisfied constraints sorted in order of decreasing strength.
+ */
+Planner.prototype.removePropagateFrom = function (out) {
+ out.determinedBy = null;
+ out.walkStrength = Strength.WEAKEST;
+ out.stay = true;
+ var unsatisfied = new OrderedCollection();
+ var todo = new OrderedCollection();
+ todo.add(out);
+ while (todo.size() > 0) {
+ var v = todo.removeFirst();
+ for (var i = 0; i < v.constraints.size(); i++) {
+ var c = v.constraints.at(i);
+ if (!c.isSatisfied())
+ unsatisfied.add(c);
+ }
+ var determining = v.determinedBy;
+ for (var i = 0; i < v.constraints.size(); i++) {
+ var next = v.constraints.at(i);
+ if (next != determining && next.isSatisfied()) {
+ next.recalculate();
+ todo.add(next.output());
+ }
+ }
+ }
+ return unsatisfied;
+}
+
+Planner.prototype.addConstraintsConsumingTo = function (v, coll) {
+ var determining = v.determinedBy;
+ var cc = v.constraints;
+ for (var i = 0; i < cc.size(); i++) {
+ var c = cc.at(i);
+ if (c != determining && c.isSatisfied())
+ coll.add(c);
+ }
+}
+
+/* --- *
+ * P l a n
+ * --- */
+
+/**
+ * A Plan is an ordered list of constraints to be executed in sequence
+ * to resatisfy all currently satisfiable constraints in the face of
+ * one or more changing inputs.
+ */
+function Plan() {
+ this.v = new OrderedCollection();
+}
+
+Plan.prototype.addConstraint = function (c) {
+ this.v.add(c);
+}
+
+Plan.prototype.size = function () {
+ return this.v.size();
+}
+
+Plan.prototype.constraintAt = function (index) {
+ return this.v.at(index);
+}
+
+Plan.prototype.execute = function () {
+ for (var i = 0; i < this.size(); i++) {
+ var c = this.constraintAt(i);
+ c.execute();
+ }
+}
+
+/* --- *
+ * M a i n
+ * --- */
+
+/**
+ * This is the standard DeltaBlue benchmark. A long chain of equality
+ * constraints is constructed with a stay constraint on one end. An
+ * edit constraint is then added to the opposite end and the time is
+ * measured for adding and removing this constraint, and extracting
+ * and executing a constraint satisfaction plan. There are two cases.
+ * In case 1, the added constraint is stronger than the stay
+ * constraint and values must propagate down the entire length of the
+ * chain. In case 2, the added constraint is weaker than the stay
+ * constraint so it cannot be accomodated. The cost in this case is,
+ * of course, very low. Typical situations lie somewhere between these
+ * two extremes.
+ */
+function chainTest(n) {
+ planner = new Planner();
+ var prev = null, first = null, last = null;
+
+ // Build chain of n equality constraints
+ for (var i = 0; i <= n; i++) {
+ var name = "v" + i;
+ var v = new Variable(name);
+ if (prev != null)
+ new EqualityConstraint(prev, v, Strength.REQUIRED);
+ if (i == 0) first = v;
+ if (i == n) last = v;
+ prev = v;
+ }
+
+ new StayConstraint(last, Strength.STRONG_DEFAULT);
+ var edit = new EditConstraint(first, Strength.PREFERRED);
+ var edits = new OrderedCollection();
+ edits.add(edit);
+ var plan = planner.extractPlanFromConstraints(edits);
+ for (var i = 0; i < 100; i++) {
+ first.value = i;
+ plan.execute();
+ if (last.value != i)
+ alert("Chain test failed.");
+ }
+}
+
+/**
+ * This test constructs a two sets of variables related to each
+ * other by a simple linear transformation (scale and offset). The
+ * time is measured to change a variable on either side of the
+ * mapping and to change the scale and offset factors.
+ */
+function projectionTest(n) {
+ planner = new Planner();
+ var scale = new Variable("scale", 10);
+ var offset = new Variable("offset", 1000);
+ var src = null, dst = null;
+
+ var dests = new OrderedCollection();
+ for (var i = 0; i < n; i++) {
+ src = new Variable("src" + i, i);
+ dst = new Variable("dst" + i, i);
+ dests.add(dst);
+ new StayConstraint(src, Strength.NORMAL);
+ new ScaleConstraint(src, scale, offset, dst, Strength.REQUIRED);
+ }
+
+ change(src, 17);
+ if (dst.value != 1170) alert("Projection 1 failed");
+ change(dst, 1050);
+ if (src.value != 5) alert("Projection 2 failed");
+ change(scale, 5);
+ for (var i = 0; i < n - 1; i++) {
+ if (dests.at(i).value != i * 5 + 1000)
+ alert("Projection 3 failed");
+ }
+ change(offset, 2000);
+ for (var i = 0; i < n - 1; i++) {
+ if (dests.at(i).value != i * 5 + 2000)
+ alert("Projection 4 failed");
+ }
+}
+
+function change(v, newValue) {
+ var edit = new EditConstraint(v, Strength.PREFERRED);
+ var edits = new OrderedCollection();
+ edits.add(edit);
+ var plan = planner.extractPlanFromConstraints(edits);
+ for (var i = 0; i < 10; i++) {
+ v.value = newValue;
+ plan.execute();
+ }
+ edit.destroyConstraint();
+}
+
+// Global variable holding the current planner.
+var planner = null;
+
+function deltaBlue() {
+ chainTest(100);
+ projectionTest(100);
+}
+
+for (var i = 0; i < 155; ++i)
+ deltaBlue();
diff --git a/PerformanceTests/SunSpider/tests/v8-v4/v8-earley-boyer.js b/PerformanceTests/SunSpider/tests/v8-v4/v8-earley-boyer.js
new file mode 100644
index 000000000..6c4c6351f
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v4/v8-earley-boyer.js
@@ -0,0 +1,4683 @@
+// This file is automatically generated by scheme2js, except for the
+// benchmark harness code at the beginning and end of the file.
+
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/*
+ * To use write/prints/... the default-output port has to be set first.
+ * Simply setting SC_DEFAULT_OUT and SC_ERROR_OUT to the desired values
+ * should do the trick.
+ * In the following example the std-out and error-port are redirected to
+ * a DIV.
+function initRuntime() {
+ function escapeHTML(s) {
+ var tmp = s;
+ tmp = tmp.replace(/&/g, "&amp;");
+ tmp = tmp.replace(/</g, "&lt;");
+ tmp = tmp.replace(/>/g, "&gt;");
+ tmp = tmp.replace(/ /g, "&nbsp;");
+ tmp = tmp.replace(/\n/g, "<br />");
+ tmp = tmp.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp");
+ return tmp;
+
+ }
+
+ document.write("<div id='stdout'></div>");
+ SC_DEFAULT_OUT = new sc_GenericOutputPort(
+ function(s) {
+ var stdout = document.getElementById('stdout');
+ stdout.innerHTML = stdout.innerHTML + escapeHTML(s);
+ });
+ SC_ERROR_OUT = SC_DEFAULT_OUT;
+}
+*/
+
+
+function sc_print_debug() {
+ sc_print.apply(null, arguments);
+}
+/*** META ((export *js*)) */
+var sc_JS_GLOBALS = this;
+
+var __sc_LINE=-1;
+var __sc_FILE="";
+
+/*** META ((export #t)) */
+function sc_alert() {
+ var len = arguments.length;
+ var s = "";
+ var i;
+
+ for( i = 0; i < len; i++ ) {
+ s += sc_toDisplayString(arguments[ i ]);
+ }
+
+ return alert( s );
+}
+
+/*** META ((export #t)) */
+function sc_typeof( x ) {
+ return typeof x;
+}
+
+/*** META ((export #t)) */
+function sc_error() {
+ var a = [sc_jsstring2symbol("*error*")];
+ for (var i = 0; i < arguments.length; i++) {
+ a[i+1] = arguments[i];
+ }
+ throw a;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "throw ")))
+*/
+function sc_raise(obj) {
+ throw obj;
+}
+
+/*** META ((export with-handler-lambda)) */
+function sc_withHandlerLambda(handler, body) {
+ try {
+ return body();
+ } catch(e) {
+ if (!e._internalException)
+ return handler(e);
+ else
+ throw e;
+ }
+}
+
+var sc_properties = new Object();
+
+/*** META ((export #t)) */
+function sc_putpropBang(sym, key, val) {
+ var ht = sc_properties[sym];
+ if (!ht) {
+ ht = new Object();
+ sc_properties[sym] = ht;
+ }
+ ht[key] = val;
+}
+
+/*** META ((export #t)) */
+function sc_getprop(sym, key) {
+ var ht = sc_properties[sym];
+ if (ht) {
+ if (key in ht)
+ return ht[key];
+ else
+ return false;
+ } else
+ return false;
+}
+
+/*** META ((export #t)) */
+function sc_rempropBang(sym, key) {
+ var ht = sc_properties[sym];
+ if (ht)
+ delete ht[key];
+}
+
+/*** META ((export #t)) */
+function sc_any2String(o) {
+ return jsstring2string(sc_toDisplayString(o));
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "==="))
+ (type bool))
+*/
+function sc_isEqv(o1, o2) {
+ return (o1 === o2);
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "==="))
+ (type bool))
+*/
+function sc_isEq(o1, o2) {
+ return (o1 === o2);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isNumber(n) {
+ return (typeof n === "number");
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isComplex(n) {
+ return sc_isNumber(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isReal(n) {
+ return sc_isNumber(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isRational(n) {
+ return sc_isReal(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isInteger(n) {
+ return (parseInt(n) === n);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix ", false")))
+*/
+// we don't have exact numbers...
+function sc_isExact(n) {
+ return false;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ", true"))
+ (type bool))
+*/
+function sc_isInexact(n) {
+ return true;
+}
+
+/*** META ((export = =fx =fl)
+ (type bool)
+ (peephole (infix 2 2 "===")))
+*/
+function sc_equal(x) {
+ for (var i = 1; i < arguments.length; i++)
+ if (x !== arguments[i])
+ return false;
+ return true;
+}
+
+/*** META ((export < <fx <fl)
+ (type bool)
+ (peephole (infix 2 2 "<")))
+*/
+function sc_less(x) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x >= arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export > >fx >fl)
+ (type bool)
+ (peephole (infix 2 2 ">")))
+*/
+function sc_greater(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x <= arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export <= <=fx <=fl)
+ (type bool)
+ (peephole (infix 2 2 "<=")))
+*/
+function sc_lessEqual(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x > arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export >= >=fl >=fx)
+ (type bool)
+ (peephole (infix 2 2 ">=")))
+*/
+function sc_greaterEqual(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x < arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "=== 0")))
+*/
+function sc_isZero(x) {
+ return (x === 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "> 0")))
+*/
+function sc_isPositive(x) {
+ return (x > 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "< 0")))
+*/
+function sc_isNegative(x) {
+ return (x < 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "%2===1")))
+*/
+function sc_isOdd(x) {
+ return (x % 2 === 1);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "%2===0")))
+*/
+function sc_isEven(x) {
+ return (x % 2 === 0);
+}
+
+/*** META ((export #t)) */
+var sc_max = Math.max;
+/*** META ((export #t)) */
+var sc_min = Math.min;
+
+/*** META ((export + +fx +fl)
+ (peephole (infix 0 #f "+" "0")))
+*/
+function sc_plus() {
+ var sum = 0;
+ for (var i = 0; i < arguments.length; i++)
+ sum += arguments[i];
+ return sum;
+}
+
+/*** META ((export * *fx *fl)
+ (peephole (infix 0 #f "*" "1")))
+*/
+function sc_multi() {
+ var product = 1;
+ for (var i = 0; i < arguments.length; i++)
+ product *= arguments[i];
+ return product;
+}
+
+/*** META ((export - -fx -fl)
+ (peephole (minus)))
+*/
+function sc_minus(x) {
+ if (arguments.length === 1)
+ return -x;
+ else {
+ var res = x;
+ for (var i = 1; i < arguments.length; i++)
+ res -= arguments[i];
+ return res;
+ }
+}
+
+/*** META ((export / /fl)
+ (peephole (div)))
+*/
+function sc_div(x) {
+ if (arguments.length === 1)
+ return 1/x;
+ else {
+ var res = x;
+ for (var i = 1; i < arguments.length; i++)
+ res /= arguments[i];
+ return res;
+ }
+}
+
+/*** META ((export #t)) */
+var sc_abs = Math.abs;
+
+/*** META ((export quotient /fx)
+ (peephole (hole 2 "parseInt(" x "/" y ")")))
+*/
+function sc_quotient(x, y) {
+ return parseInt(x / y);
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "%")))
+*/
+function sc_remainder(x, y) {
+ return x % y;
+}
+
+/*** META ((export #t)
+ (peephole (modulo)))
+*/
+function sc_modulo(x, y) {
+ var remainder = x % y;
+ // if they don't have the same sign
+ if ((remainder * y) < 0)
+ return remainder + y;
+ else
+ return remainder;
+}
+
+function sc_euclid_gcd(a, b) {
+ var temp;
+ if (a === 0) return b;
+ if (b === 0) return a;
+ if (a < 0) {a = -a;};
+ if (b < 0) {b = -b;};
+ if (b > a) {temp = a; a = b; b = temp;};
+ while (true) {
+ a %= b;
+ if(a === 0) {return b;};
+ b %= a;
+ if(b === 0) {return a;};
+ };
+ return b;
+}
+
+/*** META ((export #t)) */
+function sc_gcd() {
+ var gcd = 0;
+ for (var i = 0; i < arguments.length; i++)
+ gcd = sc_euclid_gcd(gcd, arguments[i]);
+ return gcd;
+}
+
+/*** META ((export #t)) */
+function sc_lcm() {
+ var lcm = 1;
+ for (var i = 0; i < arguments.length; i++) {
+ var f = Math.round(arguments[i] / sc_euclid_gcd(arguments[i], lcm));
+ lcm *= Math.abs(f);
+ }
+ return lcm;
+}
+
+// LIMITATION: numerator and denominator don't make sense in floating point world.
+//var SC_MAX_DECIMALS = 1000000
+//
+// function sc_numerator(x) {
+// var rounded = Math.round(x * SC_MAX_DECIMALS);
+// return Math.round(rounded / sc_euclid_gcd(rounded, SC_MAX_DECIMALS));
+// }
+
+// function sc_denominator(x) {
+// var rounded = Math.round(x * SC_MAX_DECIMALS);
+// return Math.round(SC_MAX_DECIMALS / sc_euclid_gcd(rounded, SC_MAX_DECIMALS));
+// }
+
+/*** META ((export #t)) */
+var sc_floor = Math.floor;
+/*** META ((export #t)) */
+var sc_ceiling = Math.ceil;
+/*** META ((export #t)) */
+var sc_truncate = parseInt;
+/*** META ((export #t)) */
+var sc_round = Math.round;
+
+// LIMITATION: sc_rationalize doesn't make sense in a floating point world.
+
+/*** META ((export #t)) */
+var sc_exp = Math.exp;
+/*** META ((export #t)) */
+var sc_log = Math.log;
+/*** META ((export #t)) */
+var sc_sin = Math.sin;
+/*** META ((export #t)) */
+var sc_cos = Math.cos;
+/*** META ((export #t)) */
+var sc_tan = Math.tan;
+/*** META ((export #t)) */
+var sc_asin = Math.asin;
+/*** META ((export #t)) */
+var sc_acos = Math.acos;
+/*** META ((export #t)) */
+var sc_atan = Math.atan;
+
+/*** META ((export #t)) */
+var sc_sqrt = Math.sqrt;
+/*** META ((export #t)) */
+var sc_expt = Math.pow;
+
+// LIMITATION: we don't have complex numbers.
+// LIMITATION: the following functions are hence not implemented.
+// LIMITATION: make-rectangular, make-polar, real-part, imag-part, magnitude, angle
+// LIMITATION: 2 argument atan
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_exact2inexact(x) {
+ return x;
+}
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_inexact2exact(x) {
+ return x;
+}
+
+function sc_number2jsstring(x, radix) {
+ if (radix)
+ return x.toString(radix);
+ else
+ return x.toString();
+}
+
+function sc_jsstring2number(s, radix) {
+ if (s === "") return false;
+
+ if (radix) {
+ var t = parseInt(s, radix);
+ if (!t && t !== 0) return false;
+ // verify that each char is in range. (parseInt ignores leading
+ // white and trailing chars)
+ var allowedChars = "01234567890abcdefghijklmnopqrstuvwxyz".substring(0, radix+1);
+ if ((new RegExp("^["+allowedChars+"]*$", "i")).test(s))
+ return t;
+ else return false;
+ } else {
+ var t = +s; // does not ignore trailing chars.
+ if (!t && t !== 0) return false;
+ // simply verify that first char is not whitespace.
+ var c = s.charAt(0);
+ // if +c is 0, but the char is not "0", then we have a whitespace.
+ if (+c === 0 && c !== "0") return false;
+ return t;
+ }
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (not)))
+*/
+function sc_not(b) {
+ return b === false;
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isBoolean(b) {
+ return (b === true) || (b === false);
+}
+
+function sc_Pair(car, cdr) {
+ this.car = car;
+ this.cdr = cdr;
+}
+
+sc_Pair.prototype.toString = function() {
+ return sc_toDisplayString(this);
+};
+sc_Pair.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {
+ var current = this;
+
+ var res = "(";
+
+ while(true) {
+ res += writeOrDisplay(current.car);
+ if (sc_isPair(current.cdr)) {
+ res += " ";
+ current = current.cdr;
+ } else if (current.cdr !== null) {
+ res += " . " + writeOrDisplay(current.cdr);
+ break;
+ } else // current.cdr == null
+ break;
+ }
+
+ res += ")";
+
+ return res;
+};
+sc_Pair.prototype.sc_toDisplayString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toDisplayString);
+};
+sc_Pair.prototype.sc_toWriteString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toWriteString);
+};
+// sc_Pair.prototype.sc_toWriteCircleString in IO.js
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_Pair")))
+*/
+function sc_isPair(p) {
+ return (p instanceof sc_Pair);
+}
+
+function sc_isPairEqual(p1, p2, comp) {
+ return (comp(p1.car, p2.car) && comp(p1.cdr, p2.cdr));
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 "new sc_Pair(" car ", " cdr ")")))
+*/
+function sc_cons(car, cdr) {
+ return new sc_Pair(car, cdr);
+}
+
+/*** META ((export cons*)) */
+function sc_consStar() {
+ var res = arguments[arguments.length - 1];
+ for (var i = arguments.length-2; i >= 0; i--)
+ res = new sc_Pair(arguments[i], res);
+ return res;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".car")))
+*/
+function sc_car(p) {
+ return p.car;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".cdr")))
+*/
+function sc_cdr(p) {
+ return p.cdr;
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 p ".car = " val)))
+*/
+function sc_setCarBang(p, val) {
+ p.car = val;
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 p ".cdr = " val)))
+*/
+function sc_setCdrBang(p, val) {
+ p.cdr = val;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".car.car")))
+*/
+function sc_caar(p) { return p.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car")))
+*/
+function sc_cadr(p) { return p.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr")))
+*/
+function sc_cdar(p) { return p.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr")))
+*/
+function sc_cddr(p) { return p.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car")))
+*/
+function sc_caaar(p) { return p.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car")))
+*/
+function sc_cadar(p) { return p.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car")))
+*/
+function sc_caadr(p) { return p.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car")))
+*/
+function sc_caddr(p) { return p.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr")))
+*/
+function sc_cdaar(p) { return p.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr")))
+*/
+function sc_cdadr(p) { return p.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr")))
+*/
+function sc_cddar(p) { return p.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr")))
+*/
+function sc_cdddr(p) { return p.cdr.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car.car")))
+*/
+function sc_caaaar(p) { return p.car.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car.car")))
+*/
+function sc_caadar(p) { return p.car.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car.car")))
+*/
+function sc_caaadr(p) { return p.cdr.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car.car")))
+*/
+function sc_caaddr(p) { return p.cdr.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car.cdr")))
+*/
+function sc_cdaaar(p) { return p.car.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car.cdr")))
+*/
+function sc_cdadar(p) { return p.car.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car.cdr")))
+*/
+function sc_cdaadr(p) { return p.cdr.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car.cdr")))
+*/
+function sc_cdaddr(p) { return p.cdr.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr.car")))
+*/
+function sc_cadaar(p) { return p.car.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr.car")))
+*/
+function sc_caddar(p) { return p.car.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr.car")))
+*/
+function sc_cadadr(p) { return p.cdr.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr.car")))
+*/
+function sc_cadddr(p) { return p.cdr.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr.cdr")))
+*/
+function sc_cddaar(p) { return p.car.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr.cdr")))
+*/
+function sc_cdddar(p) { return p.car.cdr.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr.cdr")))
+*/
+function sc_cddadr(p) { return p.cdr.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr.cdr")))
+*/
+function sc_cddddr(p) { return p.cdr.cdr.cdr.cdr; }
+
+/*** META ((export #t)) */
+function sc_lastPair(l) {
+ if (!sc_isPair(l)) sc_error("sc_lastPair: pair expected");
+ var res = l;
+ var cdr = l.cdr;
+ while (sc_isPair(cdr)) {
+ res = cdr;
+ cdr = res.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " === null")))
+*/
+function sc_isNull(o) {
+ return (o === null);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isList(o) {
+ var rabbit;
+ var turtle;
+
+ var rabbit = o;
+ var turtle = o;
+ while (true) {
+ if (rabbit === null ||
+ (rabbit instanceof sc_Pair && rabbit.cdr === null))
+ return true; // end of list
+ else if ((rabbit instanceof sc_Pair) &&
+ (rabbit.cdr instanceof sc_Pair)) {
+ rabbit = rabbit.cdr.cdr;
+ turtle = turtle.cdr;
+ if (rabbit === turtle) return false; // cycle
+ } else
+ return false; // not pair
+ }
+}
+
+/*** META ((export #t)) */
+function sc_list() {
+ var res = null;
+ var a = arguments;
+ for (var i = a.length-1; i >= 0; i--)
+ res = new sc_Pair(a[i], res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_iota(num, init) {
+ var res = null;
+ if (!init) init = 0;
+ for (var i = num - 1; i >= 0; i--)
+ res = new sc_Pair(i + init, res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_makeList(nbEls, fill) {
+ var res = null;
+ for (var i = 0; i < nbEls; i++)
+ res = new sc_Pair(fill, res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_length(l) {
+ var res = 0;
+ while (l !== null) {
+ res++;
+ l = l.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_remq(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l !== null) {
+ if (l.car !== o) {
+ tail.cdr = sc_cons(l.car, null);
+ tail = tail.cdr;
+ }
+ l = l.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_remqBang(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ var needsAssig = true;
+ while (l !== null) {
+ if (l.car === o) {
+ needsAssig = true;
+ } else {
+ if (needsAssig) {
+ tail.cdr = l;
+ needsAssig = false;
+ }
+ tail = l;
+ }
+ l = l.cdr;
+ }
+ tail.cdr = null;
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_delete(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l !== null) {
+ if (!sc_isEqual(l.car, o)) {
+ tail.cdr = sc_cons(l.car, null);
+ tail = tail.cdr;
+ }
+ l = l.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_deleteBang(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ var needsAssig = true;
+ while (l !== null) {
+ if (sc_isEqual(l.car, o)) {
+ needsAssig = true;
+ } else {
+ if (needsAssig) {
+ tail.cdr = l;
+ needsAssig = false;
+ }
+ tail = l;
+ }
+ l = l.cdr;
+ }
+ tail.cdr = null;
+ return dummy.cdr;
+}
+
+function sc_reverseAppendBang(l1, l2) {
+ var res = l2;
+ while (l1 !== null) {
+ var tmp = res;
+ res = l1;
+ l1 = l1.cdr;
+ res.cdr = tmp;
+ }
+ return res;
+}
+
+function sc_dualAppend(l1, l2) {
+ if (l1 === null) return l2;
+ if (l2 === null) return l1;
+ var rev = sc_reverse(l1);
+ return sc_reverseAppendBang(rev, l2);
+}
+
+/*** META ((export #t)) */
+function sc_append() {
+ if (arguments.length === 0)
+ return null;
+ var res = arguments[arguments.length - 1];
+ for (var i = arguments.length - 2; i >= 0; i--)
+ res = sc_dualAppend(arguments[i], res);
+ return res;
+}
+
+function sc_dualAppendBang(l1, l2) {
+ if (l1 === null) return l2;
+ if (l2 === null) return l1;
+ var tmp = l1;
+ while (tmp.cdr !== null) tmp=tmp.cdr;
+ tmp.cdr = l2;
+ return l1;
+}
+
+/*** META ((export #t)) */
+function sc_appendBang() {
+ var res = null;
+ for (var i = 0; i < arguments.length; i++)
+ res = sc_dualAppendBang(res, arguments[i]);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_reverse(l1) {
+ var res = null;
+ while (l1 !== null) {
+ res = sc_cons(l1.car, res);
+ l1 = l1.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_reverseBang(l) {
+ return sc_reverseAppendBang(l, null);
+}
+
+/*** META ((export #t)) */
+function sc_listTail(l, k) {
+ var res = l;
+ for (var i = 0; i < k; i++) {
+ res = res.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_listRef(l, k) {
+ return sc_listTail(l, k).car;
+}
+
+/* // unoptimized generic versions
+function sc_memX(o, l, comp) {
+ while (l != null) {
+ if (comp(l.car, o))
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+function sc_memq(o, l) { return sc_memX(o, l, sc_isEq); }
+function sc_memv(o, l) { return sc_memX(o, l, sc_isEqv); }
+function sc_member(o, l) { return sc_memX(o, l, sc_isEqual); }
+*/
+
+/* optimized versions */
+/*** META ((export #t)) */
+function sc_memq(o, l) {
+ while (l !== null) {
+ if (l.car === o)
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_memv(o, l) {
+ while (l !== null) {
+ if (l.car === o)
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_member(o, l) {
+ while (l !== null) {
+ if (sc_isEqual(l.car,o))
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+
+/* // generic unoptimized versions
+function sc_assX(o, al, comp) {
+ while (al != null) {
+ if (comp(al.car.car, o))
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+function sc_assq(o, al) { return sc_assX(o, al, sc_isEq); }
+function sc_assv(o, al) { return sc_assX(o, al, sc_isEqv); }
+function sc_assoc(o, al) { return sc_assX(o, al, sc_isEqual); }
+*/
+// optimized versions
+/*** META ((export #t)) */
+function sc_assq(o, al) {
+ while (al !== null) {
+ if (al.car.car === o)
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_assv(o, al) {
+ while (al !== null) {
+ if (al.car.car === o)
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_assoc(o, al) {
+ while (al !== null) {
+ if (sc_isEqual(al.car.car, o))
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+
+/* can be used for mutable strings and characters */
+function sc_isCharStringEqual(cs1, cs2) { return cs1.val === cs2.val; }
+function sc_isCharStringLess(cs1, cs2) { return cs1.val < cs2.val; }
+function sc_isCharStringGreater(cs1, cs2) { return cs1.val > cs2.val; }
+function sc_isCharStringLessEqual(cs1, cs2) { return cs1.val <= cs2.val; }
+function sc_isCharStringGreaterEqual(cs1, cs2) { return cs1.val >= cs2.val; }
+function sc_isCharStringCIEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() === cs2.val.toLowerCase(); }
+function sc_isCharStringCILess(cs1, cs2)
+ { return cs1.val.toLowerCase() < cs2.val.toLowerCase(); }
+function sc_isCharStringCIGreater(cs1, cs2)
+ { return cs1.val.toLowerCase() > cs2.val.toLowerCase(); }
+function sc_isCharStringCILessEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() <= cs2.val.toLowerCase(); }
+function sc_isCharStringCIGreaterEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() >= cs2.val.toLowerCase(); }
+
+
+
+
+function sc_Char(c) {
+ var cached = sc_Char.lazy[c];
+ if (cached)
+ return cached;
+ this.val = c;
+ sc_Char.lazy[c] = this;
+ // add return, so FF does not complain.
+ return undefined;
+}
+sc_Char.lazy = new Object();
+// thanks to Eric
+sc_Char.char2readable = {
+ "\000": "#\\null",
+ "\007": "#\\bell",
+ "\010": "#\\backspace",
+ "\011": "#\\tab",
+ "\012": "#\\newline",
+ "\014": "#\\page",
+ "\015": "#\\return",
+ "\033": "#\\escape",
+ "\040": "#\\space",
+ "\177": "#\\delete",
+
+ /* poeticless names */
+ "\001": "#\\soh",
+ "\002": "#\\stx",
+ "\003": "#\\etx",
+ "\004": "#\\eot",
+ "\005": "#\\enq",
+ "\006": "#\\ack",
+
+ "\013": "#\\vt",
+ "\016": "#\\so",
+ "\017": "#\\si",
+
+ "\020": "#\\dle",
+ "\021": "#\\dc1",
+ "\022": "#\\dc2",
+ "\023": "#\\dc3",
+ "\024": "#\\dc4",
+ "\025": "#\\nak",
+ "\026": "#\\syn",
+ "\027": "#\\etb",
+
+ "\030": "#\\can",
+ "\031": "#\\em",
+ "\032": "#\\sub",
+ "\033": "#\\esc",
+ "\034": "#\\fs",
+ "\035": "#\\gs",
+ "\036": "#\\rs",
+ "\037": "#\\us"};
+
+sc_Char.readable2char = {
+ "null": "\000",
+ "bell": "\007",
+ "backspace": "\010",
+ "tab": "\011",
+ "newline": "\012",
+ "page": "\014",
+ "return": "\015",
+ "escape": "\033",
+ "space": "\040",
+ "delete": "\000",
+ "soh": "\001",
+ "stx": "\002",
+ "etx": "\003",
+ "eot": "\004",
+ "enq": "\005",
+ "ack": "\006",
+ "bel": "\007",
+ "bs": "\010",
+ "ht": "\011",
+ "nl": "\012",
+ "vt": "\013",
+ "np": "\014",
+ "cr": "\015",
+ "so": "\016",
+ "si": "\017",
+ "dle": "\020",
+ "dc1": "\021",
+ "dc2": "\022",
+ "dc3": "\023",
+ "dc4": "\024",
+ "nak": "\025",
+ "syn": "\026",
+ "etb": "\027",
+ "can": "\030",
+ "em": "\031",
+ "sub": "\032",
+ "esc": "\033",
+ "fs": "\034",
+ "gs": "\035",
+ "rs": "\036",
+ "us": "\037",
+ "sp": "\040",
+ "del": "\177"};
+
+sc_Char.prototype.toString = function() {
+ return this.val;
+};
+// sc_toDisplayString == toString
+sc_Char.prototype.sc_toWriteString = function() {
+ var entry = sc_Char.char2readable[this.val];
+ if (entry)
+ return entry;
+ else
+ return "#\\" + this.val;
+};
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "instanceof sc_Char")))
+*/
+function sc_isChar(c) {
+ return (c instanceof sc_Char);
+}
+
+/*** META ((export char=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val === " c2 ".val")))
+*/
+var sc_isCharEqual = sc_isCharStringEqual;
+/*** META ((export char<?)
+ (type bool)
+ (peephole (hole 2 c1 ".val < " c2 ".val")))
+*/
+var sc_isCharLess = sc_isCharStringLess;
+/*** META ((export char>?)
+ (type bool)
+ (peephole (hole 2 c1 ".val > " c2 ".val")))
+*/
+var sc_isCharGreater = sc_isCharStringGreater;
+/*** META ((export char<=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val <= " c2 ".val")))
+*/
+var sc_isCharLessEqual = sc_isCharStringLessEqual;
+/*** META ((export char>=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val >= " c2 ".val")))
+*/
+var sc_isCharGreaterEqual = sc_isCharStringGreaterEqual;
+/*** META ((export char-ci=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() === " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIEqual = sc_isCharStringCIEqual;
+/*** META ((export char-ci<?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() < " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCILess = sc_isCharStringCILess;
+/*** META ((export char-ci>?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() > " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIGreater = sc_isCharStringCIGreater;
+/*** META ((export char-ci<=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() <= " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCILessEqual = sc_isCharStringCILessEqual;
+/*** META ((export char-ci>=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() >= " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIGreaterEqual = sc_isCharStringCIGreaterEqual;
+
+var SC_NUMBER_CLASS = "0123456789";
+var SC_WHITESPACE_CLASS = ' \r\n\t\f';
+var SC_LOWER_CLASS = 'abcdefghijklmnopqrstuvwxyz';
+var SC_UPPER_CLASS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+
+function sc_isCharOfClass(c, cl) { return (cl.indexOf(c) != -1); }
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharAlphabetic(c)
+ { return sc_isCharOfClass(c.val, SC_LOWER_CLASS) ||
+ sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_NUMBER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharNumeric(c)
+ { return sc_isCharOfClass(c.val, SC_NUMBER_CLASS); }
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharWhitespace(c) {
+ var tmp = c.val;
+ return tmp === " " || tmp === "\r" || tmp === "\n" || tmp === "\t" || tmp === "\f";
+}
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_UPPER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharUpperCase(c)
+ { return sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_LOWER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharLowerCase(c)
+ { return sc_isCharOfClass(c.val, SC_LOWER_CLASS); }
+
+/*** META ((export #t)
+ (peephole (postfix ".val.charCodeAt(0)")))
+*/
+function sc_char2integer(c)
+ { return c.val.charCodeAt(0); }
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(String.fromCharCode(" n "))")))
+*/
+function sc_integer2char(n)
+ { return new sc_Char(String.fromCharCode(n)); }
+
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(" c ".val.toUpperCase())")))
+*/
+function sc_charUpcase(c)
+ { return new sc_Char(c.val.toUpperCase()); }
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(" c ".val.toLowerCase())")))
+*/
+function sc_charDowncase(c)
+ { return new sc_Char(c.val.toLowerCase()); }
+
+function sc_makeJSStringOfLength(k, c) {
+ var fill;
+ if (c === undefined)
+ fill = " ";
+ else
+ fill = c;
+ var res = "";
+ var len = 1;
+ // every round doubles the size of fill.
+ while (k >= len) {
+ if (k & len)
+ res = res.concat(fill);
+ fill = fill.concat(fill);
+ len *= 2;
+ }
+ return res;
+}
+
+function sc_makejsString(k, c) {
+ var fill;
+ if (c)
+ fill = c.val;
+ else
+ fill = " ";
+ return sc_makeJSStringOfLength(k, fill);
+}
+
+function sc_jsstring2list(s) {
+ var res = null;
+ for (var i = s.length - 1; i >= 0; i--)
+ res = sc_cons(new sc_Char(s.charAt(i)), res);
+ return res;
+}
+
+function sc_list2jsstring(l) {
+ var a = new Array();
+ while(l !== null) {
+ a.push(l.car.val);
+ l = l.cdr;
+ }
+ return "".concat.apply("", a);
+}
+
+var sc_Vector = Array;
+
+sc_Vector.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {
+ if (this.length === 0) return "#()";
+
+ var res = "#(" + writeOrDisplay(this[0]);
+ for (var i = 1; i < this.length; i++)
+ res += " " + writeOrDisplay(this[i]);
+ res += ")";
+ return res;
+};
+sc_Vector.prototype.sc_toDisplayString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toDisplayString);
+};
+sc_Vector.prototype.sc_toWriteString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toWriteString);
+};
+
+/*** META ((export vector? array?)
+ (type bool)
+ (peephole (postfix " instanceof sc_Vector")))
+*/
+function sc_isVector(v) {
+ return (v instanceof sc_Vector);
+}
+
+// only applies to vectors
+function sc_isVectorEqual(v1, v2, comp) {
+ if (v1.length !== v2.length) return false;
+ for (var i = 0; i < v1.length; i++)
+ if (!comp(v1[i], v2[i])) return false;
+ return true;
+}
+
+/*** META ((export make-vector make-array)) */
+function sc_makeVector(size, fill) {
+ var a = new sc_Vector(size);
+ if (fill !== undefined)
+ sc_vectorFillBang(a, fill);
+ return a;
+}
+
+/*** META ((export vector array)
+ (peephole (vector)))
+*/
+function sc_vector() {
+ var a = new sc_Vector();
+ for (var i = 0; i < arguments.length; i++)
+ a.push(arguments[i]);
+ return a;
+}
+
+/*** META ((export vector-length array-length)
+ (peephole (postfix ".length")))
+*/
+function sc_vectorLength(v) {
+ return v.length;
+}
+
+/*** META ((export vector-ref array-ref)
+ (peephole (hole 2 v "[" pos "]")))
+*/
+function sc_vectorRef(v, pos) {
+ return v[pos];
+}
+
+/*** META ((export vector-set! array-set!)
+ (peephole (hole 3 v "[" pos "] = " val)))
+*/
+function sc_vectorSetBang(v, pos, val) {
+ v[pos] = val;
+}
+
+/*** META ((export vector->list array->list)) */
+function sc_vector2list(a) {
+ var res = null;
+ for (var i = a.length-1; i >= 0; i--)
+ res = sc_cons(a[i], res);
+ return res;
+}
+
+/*** META ((export list->vector list->array)) */
+function sc_list2vector(l) {
+ var a = new sc_Vector();
+ while(l !== null) {
+ a.push(l.car);
+ l = l.cdr;
+ }
+ return a;
+}
+
+/*** META ((export vector-fill! array-fill!)) */
+function sc_vectorFillBang(a, fill) {
+ for (var i = 0; i < a.length; i++)
+ a[i] = fill;
+}
+
+
+/*** META ((export #t)) */
+function sc_copyVector(a, len) {
+ if (len <= a.length)
+ return a.slice(0, len);
+ else {
+ var tmp = a.concat();
+ tmp.length = len;
+ return tmp;
+ }
+}
+
+/*** META ((export #t)
+ (peephole (hole 3 a ".slice(" start "," end ")")))
+*/
+function sc_vectorCopy(a, start, end) {
+ return a.slice(start, end);
+}
+
+/*** META ((export #t)) */
+function sc_vectorCopyBang(target, tstart, source, sstart, send) {
+ if (!sstart) sstart = 0;
+ if (!send) send = source.length;
+
+ // if target == source we don't want to overwrite not yet copied elements.
+ if (tstart <= sstart) {
+ for (var i = tstart, j = sstart; j < send; i++, j++) {
+ target[i] = source[j];
+ }
+ } else {
+ var diff = send - sstart;
+ for (var i = tstart + diff - 1, j = send - 1;
+ j >= sstart;
+ i--, j--) {
+ target[i] = source[j];
+ }
+ }
+ return target;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "typeof " o " === 'function'")))
+*/
+function sc_isProcedure(o) {
+ return (typeof o === "function");
+}
+
+/*** META ((export #t)) */
+function sc_apply(proc) {
+ var args = new Array();
+ // first part of arguments are not in list-form.
+ for (var i = 1; i < arguments.length - 1; i++)
+ args.push(arguments[i]);
+ var l = arguments[arguments.length - 1];
+ while (l !== null) {
+ args.push(l.car);
+ l = l.cdr;
+ }
+ return proc.apply(null, args);
+}
+
+/*** META ((export #t)) */
+function sc_map(proc, l1) {
+ if (l1 === undefined)
+ return null;
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ var revres = null;
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ revres = sc_cons(proc.apply(null, applyArgs), revres);
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_mapBang(proc, l1) {
+ if (l1 === undefined)
+ return null;
+ // else
+ var l1_orig = l1;
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ while (l1 !== null) {
+ var tmp = l1;
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ tmp.car = proc.apply(null, applyArgs);
+ }
+ return l1_orig;
+}
+
+/*** META ((export #t)) */
+function sc_forEach(proc, l1) {
+ if (l1 === undefined)
+ return undefined;
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ proc.apply(null, applyArgs);
+ }
+ // add return so FF does not complain.
+ return undefined;
+}
+
+/*** META ((export #t)) */
+function sc_filter(proc, l1) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l1 !== null) {
+ if (proc(l1.car) !== false) {
+ tail.cdr = sc_cons(l1.car, null);
+ tail = tail.cdr;
+ }
+ l1 = l1.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_filterBang(proc, l1) {
+ var head = sc_cons("dummy", l1);
+ var it = head;
+ var next = l1;
+ while (next !== null) {
+ if (proc(next.car) !== false) {
+ it.cdr = next
+ it = next;
+ }
+ next = next.cdr;
+ }
+ it.cdr = null;
+ return head.cdr;
+}
+
+function sc_filterMap1(proc, l1) {
+ var revres = null;
+ while (l1 !== null) {
+ var tmp = proc(l1.car)
+ if (tmp !== false) revres = sc_cons(tmp, revres);
+ l1 = l1.cdr;
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+function sc_filterMap2(proc, l1, l2) {
+ var revres = null;
+ while (l1 !== null) {
+ var tmp = proc(l1.car, l2.car);
+ if(tmp !== false) revres = sc_cons(tmp, revres);
+ l1 = l1.cdr;
+ l2 = l2.cdr
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_filterMap(proc, l1, l2, l3) {
+ if (l2 === undefined)
+ return sc_filterMap1(proc, l1);
+ else if (l3 === undefined)
+ return sc_filterMap2(proc, l1, l2);
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ var revres = null;
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ var tmp = proc.apply(null, applyArgs);
+ if(tmp !== false) revres = sc_cons(tmp, revres);
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_any(proc, l) {
+ var revres = null;
+ while (l !== null) {
+ var tmp = proc(l.car);
+ if(tmp !== false) return tmp;
+ l = l.cdr;
+ }
+ return false;
+}
+
+/*** META ((export any?)
+ (peephole (hole 2 "sc_any(" proc "," l ") !== false")))
+*/
+function sc_anyPred(proc, l) {
+ return sc_any(proc, l)!== false;
+}
+
+/*** META ((export #t)) */
+function sc_every(proc, l) {
+ var revres = null;
+ var tmp = true;
+ while (l !== null) {
+ tmp = proc(l.car);
+ if (tmp === false) return false;
+ l = l.cdr;
+ }
+ return tmp;
+}
+
+/*** META ((export every?)
+ (peephole (hole 2 "sc_every(" proc "," l ") !== false")))
+*/
+function sc_everyPred(proc, l) {
+ var tmp = sc_every(proc, l);
+ if (tmp !== false) return true;
+ return false;
+}
+
+/*** META ((export #t)
+ (peephole (postfix "()")))
+*/
+function sc_force(o) {
+ return o();
+}
+
+/*** META ((export #t)) */
+function sc_makePromise(proc) {
+ var isResultReady = false;
+ var result = undefined;
+ return function() {
+ if (!isResultReady) {
+ var tmp = proc();
+ if (!isResultReady) {
+ isResultReady = true;
+ result = tmp;
+ }
+ }
+ return result;
+ };
+}
+
+function sc_Values(values) {
+ this.values = values;
+}
+
+/*** META ((export #t)
+ (peephole (values)))
+*/
+function sc_values() {
+ if (arguments.length === 1)
+ return arguments[0];
+ else
+ return new sc_Values(arguments);
+}
+
+/*** META ((export #t)) */
+function sc_callWithValues(producer, consumer) {
+ var produced = producer();
+ if (produced instanceof sc_Values)
+ return consumer.apply(null, produced.values);
+ else
+ return consumer(produced);
+}
+
+/*** META ((export #t)) */
+function sc_dynamicWind(before, thunk, after) {
+ before();
+ try {
+ var res = thunk();
+ return res;
+ } finally {
+ after();
+ }
+}
+
+
+// TODO: eval/scheme-report-environment/null-environment/interaction-environment
+
+// LIMITATION: 'load' doesn't exist without files.
+// LIMITATION: transcript-on/transcript-off doesn't exist without files.
+
+
+function sc_Struct(name) {
+ this.name = name;
+}
+sc_Struct.prototype.sc_toDisplayString = function() {
+ return "#<struct" + sc_hash(this) + ">";
+};
+sc_Struct.prototype.sc_toWriteString = sc_Struct.prototype.sc_toDisplayString;
+
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Struct(" name ")")))
+*/
+function sc_makeStruct(name) {
+ return new sc_Struct(name);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_Struct")))
+*/
+function sc_isStruct(o) {
+ return (o instanceof sc_Struct);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 2 "(" 1 " instanceof sc_Struct) && ( " 1 ".name === " 0 ")")))
+*/
+function sc_isStructNamed(name, s) {
+ return ((s instanceof sc_Struct) && (s.name === name));
+}
+
+/*** META ((export struct-field)
+ (peephole (hole 3 0 "[" 2 "]")))
+*/
+function sc_getStructField(s, name, field) {
+ return s[field];
+}
+
+/*** META ((export struct-field-set!)
+ (peephole (hole 4 0 "[" 2 "] = " 3)))
+*/
+function sc_setStructFieldBang(s, name, field, val) {
+ s[field] = val;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "~")))
+*/
+function sc_bitNot(x) {
+ return ~x;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "&")))
+*/
+function sc_bitAnd(x, y) {
+ return x & y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "|")))
+*/
+function sc_bitOr(x, y) {
+ return x | y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "^")))
+*/
+function sc_bitXor(x, y) {
+ return x ^ y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "<<")))
+*/
+function sc_bitLsh(x, y) {
+ return x << y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 ">>")))
+*/
+function sc_bitRsh(x, y) {
+ return x >> y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 ">>>")))
+*/
+function sc_bitUrsh(x, y) {
+ return x >>> y;
+}
+
+/*** META ((export js-field js-property)
+ (peephole (hole 2 o "[" field "]")))
+*/
+function sc_jsField(o, field) {
+ return o[field];
+}
+
+/*** META ((export js-field-set! js-property-set!)
+ (peephole (hole 3 o "[" field "] = " val)))
+*/
+function sc_setJsFieldBang(o, field, val) {
+ return o[field] = val;
+}
+
+/*** META ((export js-field-delete! js-property-delete!)
+ (peephole (hole 2 "delete" o "[" field "]")))
+*/
+function sc_deleteJsFieldBang(o, field) {
+ delete o[field];
+}
+
+/*** META ((export #t)
+ (peephole (jsCall)))
+*/
+function sc_jsCall(o, fun) {
+ var args = new Array();
+ for (var i = 2; i < arguments.length; i++)
+ args[i-2] = arguments[i];
+ return fun.apply(o, args);
+}
+
+/*** META ((export #t)
+ (peephole (jsMethodCall)))
+*/
+function sc_jsMethodCall(o, field) {
+ var args = new Array();
+ for (var i = 2; i < arguments.length; i++)
+ args[i-2] = arguments[i];
+ return o[field].apply(o, args);
+}
+
+/*** META ((export new js-new)
+ (peephole (jsNew)))
+*/
+function sc_jsNew(c) {
+ var evalStr = "new c(";
+ evalStr +=arguments.length > 1? "arguments[1]": "";
+ for (var i = 2; i < arguments.length; i++)
+ evalStr += ", arguments[" + i + "]";
+ evalStr +=")";
+ return eval(evalStr);
+}
+
+// ======================== RegExp ====================
+/*** META ((export #t)) */
+function sc_pregexp(re) {
+ return new RegExp(sc_string2jsstring(re));
+}
+
+/*** META ((export #t)) */
+function sc_pregexpMatch(re, s) {
+ var reg = (re instanceof RegExp) ? re : sc_pregexp(re);
+ var tmp = reg.exec(sc_string2jsstring(s));
+
+ if (tmp == null) return false;
+
+ var res = null;
+ for (var i = tmp.length-1; i >= 0; i--) {
+ if (tmp[i] !== null) {
+ res = sc_cons(sc_jsstring2string(tmp[i]), res);
+ } else {
+ res = sc_cons(false, res);
+ }
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_pregexpReplace(re, s1, s2) {
+ var reg;
+ var jss1 = sc_string2jsstring(s1);
+ var jss2 = sc_string2jsstring(s2);
+
+ if (re instanceof RegExp) {
+ if (re.global)
+ reg = re;
+ else
+ reg = new RegExp(re.source);
+ } else {
+ reg = new RegExp(sc_string2jsstring(re));
+ }
+
+ return jss1.replace(reg, jss2);
+}
+
+/*** META ((export pregexp-replace*)) */
+function sc_pregexpReplaceAll(re, s1, s2) {
+ var reg;
+ var jss1 = sc_string2jsstring(s1);
+ var jss2 = sc_string2jsstring(s2);
+
+ if (re instanceof RegExp) {
+ if (re.global)
+ reg = re;
+ else
+ reg = new RegExp(re.source, "g");
+ } else {
+ reg = new RegExp(sc_string2jsstring(re), "g");
+ }
+
+ return jss1.replace(reg, jss2);
+}
+
+/*** META ((export #t)) */
+function sc_pregexpSplit(re, s) {
+ var reg = ((re instanceof RegExp) ?
+ re :
+ new RegExp(sc_string2jsstring(re)));
+ var jss = sc_string2jsstring(s);
+ var tmp = jss.split(reg);
+
+ if (tmp == null) return false;
+
+ return sc_vector2list(tmp);
+}
+
+
+/* =========================================================================== */
+/* Other library stuff */
+/* =========================================================================== */
+
+/*** META ((export #t)
+ (peephole (hole 1 "Math.floor(Math.random()*" 'n ")")))
+*/
+function sc_random(n) {
+ return Math.floor(Math.random()*n);
+}
+
+/*** META ((export current-date)
+ (peephole (hole 0 "new Date()")))
+*/
+function sc_currentDate() {
+ return new Date();
+}
+
+function sc_Hashtable() {
+}
+sc_Hashtable.prototype.toString = function() {
+ return "#{%hashtable}";
+};
+// sc_toWriteString == sc_toDisplayString == toString
+
+function sc_HashtableElement(key, val) {
+ this.key = key;
+ this.val = val;
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "new sc_Hashtable()")))
+*/
+function sc_makeHashtable() {
+ return new sc_Hashtable();
+}
+
+/*** META ((export #t)) */
+function sc_hashtablePutBang(ht, key, val) {
+ var hash = sc_hash(key);
+ ht[hash] = new sc_HashtableElement(key, val);
+}
+
+/*** META ((export #t)) */
+function sc_hashtableGet(ht, key) {
+ var hash = sc_hash(key);
+ if (hash in ht)
+ return ht[hash].val;
+ else
+ return false;
+}
+
+/*** META ((export #t)) */
+function sc_hashtableForEach(ht, f) {
+ for (var v in ht) {
+ if (ht[v] instanceof sc_HashtableElement)
+ f(ht[v].key, ht[v].val);
+ }
+}
+
+/*** META ((export hashtable-contains?)
+ (peephole (hole 2 "sc_hash(" 1 ") in " 0)))
+*/
+function sc_hashtableContains(ht, key) {
+ var hash = sc_hash(key);
+ if (hash in ht)
+ return true;
+ else
+ return false;
+}
+
+var SC_HASH_COUNTER = 0;
+
+function sc_hash(o) {
+ if (o === null)
+ return "null";
+ else if (o === undefined)
+ return "undefined";
+ else if (o === true)
+ return "true";
+ else if (o === false)
+ return "false";
+ else if (typeof o === "number")
+ return "num-" + o;
+ else if (typeof o === "string")
+ return "jsstr-" + o;
+ else if (o.sc_getHash)
+ return o.sc_getHash();
+ else
+ return sc_counterHash.call(o);
+}
+function sc_counterHash() {
+ if (!this.sc_hash) {
+ this.sc_hash = "hash-" + SC_HASH_COUNTER;
+ SC_HASH_COUNTER++;
+ }
+ return this.sc_hash;
+}
+
+function sc_Trampoline(args, maxTailCalls) {
+ this['__trampoline return__'] = true;
+ this.args = args;
+ this.MAX_TAIL_CALLs = maxTailCalls;
+}
+// TODO: call/cc stuff
+sc_Trampoline.prototype.restart = function() {
+ var o = this;
+ while (true) {
+ // set both globals.
+ SC_TAIL_OBJECT.calls = o.MAX_TAIL_CALLs-1;
+ var fun = o.args.callee;
+ var res = fun.apply(SC_TAIL_OBJECT, o.args);
+ if (res instanceof sc_Trampoline)
+ o = res;
+ else
+ return res;
+ }
+}
+
+/*** META ((export bind-exit-lambda)) */
+function sc_bindExitLambda(proc) {
+ var escape_obj = new sc_BindExitException();
+ var escape = function(res) {
+ escape_obj.res = res;
+ throw escape_obj;
+ };
+ try {
+ return proc(escape);
+ } catch(e) {
+ if (e === escape_obj) {
+ return e.res;
+ }
+ throw e;
+ }
+}
+function sc_BindExitException() {
+ this._internalException = true;
+}
+
+var SC_SCM2JS_GLOBALS = new Object();
+
+// default tail-call depth.
+// normally the program should set it again. but just in case...
+var SC_TAIL_OBJECT = new Object();
+SC_SCM2JS_GLOBALS.TAIL_OBJECT = SC_TAIL_OBJECT;
+// ======================== I/O =======================
+
+/*------------------------------------------------------------------*/
+
+function sc_EOF() {
+}
+var SC_EOF_OBJECT = new sc_EOF();
+
+function sc_Port() {
+}
+
+/* --------------- Input ports -------------------------------------*/
+
+function sc_InputPort() {
+}
+sc_InputPort.prototype = new sc_Port();
+
+sc_InputPort.prototype.peekChar = function() {
+ if (!("peeked" in this))
+ this.peeked = this.getNextChar();
+ return this.peeked;
+}
+sc_InputPort.prototype.readChar = function() {
+ var tmp = this.peekChar();
+ delete this.peeked;
+ return tmp;
+}
+sc_InputPort.prototype.isCharReady = function() {
+ return true;
+}
+sc_InputPort.prototype.close = function() {
+ // do nothing
+}
+
+/* .............. String port ..........................*/
+function sc_ErrorInputPort() {
+};
+sc_ErrorInputPort.prototype = new sc_InputPort();
+sc_ErrorInputPort.prototype.getNextChar = function() {
+ throw "can't read from error-port.";
+};
+sc_ErrorInputPort.prototype.isCharReady = function() {
+ return false;
+};
+
+
+/* .............. String port ..........................*/
+
+function sc_StringInputPort(jsStr) {
+ // we are going to do some charAts on the str.
+ // instead of recreating all the time a String-object, we
+ // create one in the beginning. (not sure, if this is really an optim)
+ this.str = new String(jsStr);
+ this.pos = 0;
+}
+sc_StringInputPort.prototype = new sc_InputPort();
+sc_StringInputPort.prototype.getNextChar = function() {
+ if (this.pos >= this.str.length)
+ return SC_EOF_OBJECT;
+ return this.str.charAt(this.pos++);
+};
+
+/* ------------- Read and other lib-funs -------------------------------*/
+function sc_Token(type, val, pos) {
+ this.type = type;
+ this.val = val;
+ this.pos = pos;
+}
+sc_Token.EOF = 0/*EOF*/;
+sc_Token.OPEN_PAR = 1/*OPEN_PAR*/;
+sc_Token.CLOSE_PAR = 2/*CLOSE_PAR*/;
+sc_Token.OPEN_BRACE = 3/*OPEN_BRACE*/;
+sc_Token.CLOSE_BRACE = 4/*CLOSE_BRACE*/;
+sc_Token.OPEN_BRACKET = 5/*OPEN_BRACKET*/;
+sc_Token.CLOSE_BRACKET = 6/*CLOSE_BRACKET*/;
+sc_Token.WHITESPACE = 7/*WHITESPACE*/;
+sc_Token.QUOTE = 8/*QUOTE*/;
+sc_Token.ID = 9/*ID*/;
+sc_Token.DOT = 10/*DOT*/;
+sc_Token.STRING = 11/*STRING*/;
+sc_Token.NUMBER = 12/*NUMBER*/;
+sc_Token.ERROR = 13/*ERROR*/;
+sc_Token.VECTOR_BEGIN = 14/*VECTOR_BEGIN*/;
+sc_Token.TRUE = 15/*TRUE*/;
+sc_Token.FALSE = 16/*FALSE*/;
+sc_Token.UNSPECIFIED = 17/*UNSPECIFIED*/;
+sc_Token.REFERENCE = 18/*REFERENCE*/;
+sc_Token.STORE = 19/*STORE*/;
+sc_Token.CHAR = 20/*CHAR*/;
+
+var SC_ID_CLASS = SC_LOWER_CLASS + SC_UPPER_CLASS + "!$%*+-./:<=>?@^_~";
+function sc_Tokenizer(port) {
+ this.port = port;
+}
+sc_Tokenizer.prototype.peekToken = function() {
+ if (this.peeked)
+ return this.peeked;
+ var newToken = this.nextToken();
+ this.peeked = newToken;
+ return newToken;
+};
+sc_Tokenizer.prototype.readToken = function() {
+ var tmp = this.peekToken();
+ delete this.peeked;
+ return tmp;
+};
+sc_Tokenizer.prototype.nextToken = function() {
+ var port = this.port;
+
+ function isNumberChar(c) {
+ return (c >= "0" && c <= "9");
+ };
+ function isIdOrNumberChar(c) {
+ return SC_ID_CLASS.indexOf(c) != -1 || // ID-char
+ (c >= "0" && c <= "9");
+ }
+ function isWhitespace(c) {
+ return c === " " || c === "\r" || c === "\n" || c === "\t" || c === "\f";
+ };
+ function isWhitespaceOrEOF(c) {
+ return isWhitespace(c) || c === SC_EOF_OBJECT;
+ };
+
+ function readString() {
+ res = "";
+ while (true) {
+ var c = port.readChar();
+ switch (c) {
+ case '"':
+ return new sc_Token(11/*STRING*/, res);
+ case "\\":
+ var tmp = port.readChar();
+ switch (tmp) {
+ case '0': res += "\0"; break;
+ case 'a': res += "\a"; break;
+ case 'b': res += "\b"; break;
+ case 'f': res += "\f"; break;
+ case 'n': res += "\n"; break;
+ case 'r': res += "\r"; break;
+ case 't': res += "\t"; break;
+ case 'v': res += "\v"; break;
+ case '"': res += '"'; break;
+ case '\\': res += '\\'; break;
+ case 'x':
+ /* hexa-number */
+ var nb = 0;
+ while (true) {
+ var hexC = port.peekChar();
+ if (hexC >= '0' && hexC <= '9') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - '0'.charCodeAt(0);
+ } else if (hexC >= 'a' && hexC <= 'f') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - 'a'.charCodeAt(0);
+ } else if (hexC >= 'A' && hexC <= 'F') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - 'A'.charCodeAt(0);
+ } else {
+ // next char isn't part of hex.
+ res += String.fromCharCode(nb);
+ break;
+ }
+ }
+ break;
+ default:
+ if (tmp === SC_EOF_OBJECT) {
+ return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res);
+ }
+ res += tmp;
+ }
+ break;
+ default:
+ if (c === SC_EOF_OBJECT) {
+ return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res);
+ }
+ res += c;
+ }
+ }
+ };
+ function readIdOrNumber(firstChar) {
+ var res = firstChar;
+ while (isIdOrNumberChar(port.peekChar()))
+ res += port.readChar();
+ if (isNaN(res))
+ return new sc_Token(9/*ID*/, res);
+ else
+ return new sc_Token(12/*NUMBER*/, res - 0);
+ };
+
+ function skipWhitespaceAndComments() {
+ var done = false;
+ while (!done) {
+ done = true;
+ while (isWhitespace(port.peekChar()))
+ port.readChar();
+ if (port.peekChar() === ';') {
+ port.readChar();
+ done = false;
+ while (true) {
+ curChar = port.readChar();
+ if (curChar === SC_EOF_OBJECT ||
+ curChar === '\n')
+ break;
+ }
+ }
+ }
+ };
+
+ function readDot() {
+ if (isWhitespace(port.peekChar()))
+ return new sc_Token(10/*DOT*/);
+ else
+ return readIdOrNumber(".");
+ };
+
+ function readSharp() {
+ var c = port.readChar();
+ if (isWhitespace(c))
+ return new sc_Token(13/*ERROR*/, "bad #-pattern0.");
+
+ // reference
+ if (isNumberChar(c)) {
+ var nb = c - 0;
+ while (isNumberChar(port.peekChar()))
+ nb = nb*10 + (port.readChar() - 0);
+ switch (port.readChar()) {
+ case '#':
+ return new sc_Token(18/*REFERENCE*/, nb);
+ case '=':
+ return new sc_Token(19/*STORE*/, nb);
+ default:
+ return new sc_Token(13/*ERROR*/, "bad #-pattern1." + nb);
+ }
+ }
+
+ if (c === "(")
+ return new sc_Token(14/*VECTOR_BEGIN*/);
+
+ if (c === "\\") { // character
+ var tmp = ""
+ while (!isWhitespaceOrEOF(port.peekChar()))
+ tmp += port.readChar();
+ switch (tmp.length) {
+ case 0: // it's escaping a whitespace char:
+ if (sc_isEOFObject(port.peekChar))
+ return new sc_Token(13/*ERROR*/, "bad #-pattern2.");
+ else
+ return new sc_Token(20/*CHAR*/, port.readChar());
+ case 1:
+ return new sc_Token(20/*CHAR*/, tmp);
+ default:
+ var entry = sc_Char.readable2char[tmp.toLowerCase()];
+ if (entry)
+ return new sc_Token(20/*CHAR*/, entry);
+ else
+ return new sc_Token(13/*ERROR*/, "unknown character description: #\\" + tmp);
+ }
+ }
+
+ // some constants (#t, #f, #unspecified)
+ var res;
+ var needing;
+ switch (c) {
+ case 't': res = new sc_Token(15/*TRUE*/, true); needing = ""; break;
+ case 'f': res = new sc_Token(16/*FALSE*/, false); needing = ""; break;
+ case 'u': res = new sc_Token(17/*UNSPECIFIED*/, undefined); needing = "nspecified"; break;
+ default:
+ return new sc_Token(13/*ERROR*/, "bad #-pattern3: " + c);
+ }
+ while(true) {
+ c = port.peekChar();
+ if ((isWhitespaceOrEOF(c) || c === ')') &&
+ needing == "")
+ return res;
+ else if (isWhitespace(c) || needing == "")
+ return new sc_Token(13/*ERROR*/, "bad #-pattern4 " + c + " " + needing);
+ else if (needing.charAt(0) == c) {
+ port.readChar(); // consume
+ needing = needing.slice(1);
+ } else
+ return new sc_Token(13/*ERROR*/, "bad #-pattern5");
+ }
+
+ };
+
+ skipWhitespaceAndComments();
+ var curChar = port.readChar();
+ if (curChar === SC_EOF_OBJECT)
+ return new sc_Token(0/*EOF*/, curChar);
+ switch (curChar)
+ {
+ case " ":
+ case "\n":
+ case "\t":
+ return readWhitespace();
+ case "(":
+ return new sc_Token(1/*OPEN_PAR*/);
+ case ")":
+ return new sc_Token(2/*CLOSE_PAR*/);
+ case "{":
+ return new sc_Token(3/*OPEN_BRACE*/);
+ case "}":
+ return new sc_Token(4/*CLOSE_BRACE*/);
+ case "[":
+ return new sc_Token(5/*OPEN_BRACKET*/);
+ case "]":
+ return new sc_Token(6/*CLOSE_BRACKET*/);
+ case "'":
+ return new sc_Token(8/*QUOTE*/);
+ case "#":
+ return readSharp();
+ case ".":
+ return readDot();
+ case '"':
+ return readString();
+ default:
+ if (isIdOrNumberChar(curChar))
+ return readIdOrNumber(curChar);
+ throw "unexpected character: " + curChar;
+ }
+};
+
+function sc_Reader(tokenizer) {
+ this.tokenizer = tokenizer;
+ this.backref = new Array();
+}
+sc_Reader.prototype.read = function() {
+ function readList(listBeginType) {
+ function matchesPeer(open, close) {
+ return open === 1/*OPEN_PAR*/ && close === 2/*CLOSE_PAR*/
+ || open === 3/*OPEN_BRACE*/ && close === 4/*CLOSE_BRACE*/
+ || open === 5/*OPEN_BRACKET*/ && close === 6/*CLOSE_BRACKET*/;
+ };
+ var res = null;
+
+ while (true) {
+ var token = tokenizer.peekToken();
+
+ switch (token.type) {
+ case 2/*CLOSE_PAR*/:
+ case 4/*CLOSE_BRACE*/:
+ case 6/*CLOSE_BRACKET*/:
+ if (matchesPeer(listBeginType, token.type)) {
+ tokenizer.readToken(); // consume token
+ return sc_reverseBang(res);
+ } else
+ throw "closing par doesn't match: " + listBeginType
+ + " " + listEndType;
+
+ case 0/*EOF*/:
+ throw "unexpected end of file";
+
+ case 10/*DOT*/:
+ tokenizer.readToken(); // consume token
+ var cdr = this.read();
+ var par = tokenizer.readToken();
+ if (!matchesPeer(listBeginType, par.type))
+ throw "closing par doesn't match: " + listBeginType
+ + " " + par.type;
+ else
+ return sc_reverseAppendBang(res, cdr);
+
+
+ default:
+ res = sc_cons(this.read(), res);
+ }
+ }
+ };
+ function readQuote() {
+ return sc_cons("quote", sc_cons(this.read(), null));
+ };
+ function readVector() {
+ // opening-parenthesis is already consumed
+ var a = new Array();
+ while (true) {
+ var token = tokenizer.peekToken();
+ switch (token.type) {
+ case 2/*CLOSE_PAR*/:
+ tokenizer.readToken();
+ return a;
+
+ default:
+ a.push(this.read());
+ }
+ }
+ };
+
+ function storeRefence(nb) {
+ var tmp = this.read();
+ this.backref[nb] = tmp;
+ return tmp;
+ };
+
+ function readReference(nb) {
+ if (nb in this.backref)
+ return this.backref[nb];
+ else
+ throw "bad reference: " + nb;
+ };
+
+ var tokenizer = this.tokenizer;
+
+ var token = tokenizer.readToken();
+
+ // handle error
+ if (token.type === 13/*ERROR*/)
+ throw token.val;
+
+ switch (token.type) {
+ case 1/*OPEN_PAR*/:
+ case 3/*OPEN_BRACE*/:
+ case 5/*OPEN_BRACKET*/:
+ return readList.call(this, token.type);
+ case 8/*QUOTE*/:
+ return readQuote.call(this);
+ case 11/*STRING*/:
+ return sc_jsstring2string(token.val);
+ case 20/*CHAR*/:
+ return new sc_Char(token.val);
+ case 14/*VECTOR_BEGIN*/:
+ return readVector.call(this);
+ case 18/*REFERENCE*/:
+ return readReference.call(this, token.val);
+ case 19/*STORE*/:
+ return storeRefence.call(this, token.val);
+ case 9/*ID*/:
+ return sc_jsstring2symbol(token.val);
+ case 0/*EOF*/:
+ case 12/*NUMBER*/:
+ case 15/*TRUE*/:
+ case 16/*FALSE*/:
+ case 17/*UNSPECIFIED*/:
+ return token.val;
+ default:
+ throw "unexpected token " + token.type + " " + token.val;
+ }
+};
+
+/*** META ((export #t)) */
+function sc_read(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var reader = new sc_Reader(new sc_Tokenizer(port));
+ return reader.read();
+}
+/*** META ((export #t)) */
+function sc_readChar(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var t = port.readChar();
+ return t === SC_EOF_OBJECT? t: new sc_Char(t);
+}
+/*** META ((export #t)) */
+function sc_peekChar(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var t = port.peekChar();
+ return t === SC_EOF_OBJECT? t: new sc_Char(t);
+}
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharReady(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ return port.isCharReady();
+}
+/*** META ((export #t)
+ (peephole (postfix ".close()")))
+*/
+function sc_closeInputPort(p) {
+ return p.close();
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_InputPort")))
+*/
+function sc_isInputPort(o) {
+ return (o instanceof sc_InputPort);
+}
+
+/*** META ((export eof-object?)
+ (type bool)
+ (peephole (postfix " === SC_EOF_OBJECT")))
+*/
+function sc_isEOFObject(o) {
+ return o === SC_EOF_OBJECT;
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "SC_DEFAULT_IN")))
+*/
+function sc_currentInputPort() {
+ return SC_DEFAULT_IN;
+}
+
+/* ------------ file operations are not supported -----------*/
+/*** META ((export #t)) */
+function sc_callWithInputFile(s, proc) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_callWithOutputFile(s, proc) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_withInputFromFile(s, thunk) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToFile(s, thunk) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_openInputFile(s) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_openOutputFile(s) {
+ throw "can't open " + s;
+}
+
+/* ----------------------------------------------------------------------------*/
+/*** META ((export #t)) */
+function sc_basename(p) {
+ var i = p.lastIndexOf('/');
+
+ if(i >= 0)
+ return p.substring(i + 1, p.length);
+ else
+ return '';
+}
+
+/*** META ((export #t)) */
+function sc_dirname(p) {
+ var i = p.lastIndexOf('/');
+
+ if(i >= 0)
+ return p.substring(0, i);
+ else
+ return '';
+}
+
+/* ----------------------------------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_withInputFromPort(p, thunk) {
+ try {
+ var tmp = SC_DEFAULT_IN; // THREAD: shared var.
+ SC_DEFAULT_IN = p;
+ return thunk();
+ } finally {
+ SC_DEFAULT_IN = tmp;
+ }
+}
+
+/*** META ((export #t)) */
+function sc_withInputFromString(s, thunk) {
+ return sc_withInputFromPort(new sc_StringInputPort(sc_string2jsstring(s)), thunk);
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToPort(p, thunk) {
+ try {
+ var tmp = SC_DEFAULT_OUT; // THREAD: shared var.
+ SC_DEFAULT_OUT = p;
+ return thunk();
+ } finally {
+ SC_DEFAULT_OUT = tmp;
+ }
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToString(thunk) {
+ var p = new sc_StringOutputPort();
+ sc_withOutputToPort(p, thunk);
+ return p.close();
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToProcedure(proc, thunk) {
+ var t = function(s) { proc(sc_jsstring2string(s)); };
+ return sc_withOutputToPort(new sc_GenericOutputPort(t), thunk);
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "new sc_StringOutputPort()")))
+*/
+function sc_openOutputString() {
+ return new sc_StringOutputPort();
+}
+
+/*** META ((export #t)) */
+function sc_openInputString(str) {
+ return new sc_StringInputPort(sc_string2jsstring(str));
+}
+
+/* ----------------------------------------------------------------------------*/
+
+function sc_OutputPort() {
+}
+sc_OutputPort.prototype = new sc_Port();
+sc_OutputPort.prototype.appendJSString = function(obj) {
+ /* do nothing */
+}
+sc_OutputPort.prototype.close = function() {
+ /* do nothing */
+}
+
+function sc_StringOutputPort() {
+ this.res = "";
+}
+sc_StringOutputPort.prototype = new sc_OutputPort();
+sc_StringOutputPort.prototype.appendJSString = function(s) {
+ this.res += s;
+}
+sc_StringOutputPort.prototype.close = function() {
+ return sc_jsstring2string(this.res);
+}
+
+/*** META ((export #t)) */
+function sc_getOutputString(sp) {
+ return sc_jsstring2string(sp.res);
+}
+
+
+function sc_ErrorOutputPort() {
+}
+sc_ErrorOutputPort.prototype = new sc_OutputPort();
+sc_ErrorOutputPort.prototype.appendJSString = function(s) {
+ throw "don't write on ErrorPort!";
+}
+sc_ErrorOutputPort.prototype.close = function() {
+ /* do nothing */
+}
+
+function sc_GenericOutputPort(appendJSString, close) {
+ this.appendJSString = appendJSString;
+ if (close)
+ this.close = close;
+}
+sc_GenericOutputPort.prototype = new sc_OutputPort();
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_OutputPort")))
+*/
+function sc_isOutputPort(o) {
+ return (o instanceof sc_OutputPort);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".close()")))
+*/
+function sc_closeOutputPort(p) {
+ return p.close();
+}
+
+/* ------------------ write ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_write(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toWriteString(o));
+}
+
+function sc_toWriteString(o) {
+ if (o === null)
+ return "()";
+ else if (o === true)
+ return "#t";
+ else if (o === false)
+ return "#f";
+ else if (o === undefined)
+ return "#unspecified";
+ else if (typeof o === 'function')
+ return "#<procedure " + sc_hash(o) + ">";
+ else if (o.sc_toWriteString)
+ return o.sc_toWriteString();
+ else
+ return o.toString();
+}
+
+function sc_escapeWriteString(s) {
+ var res = "";
+ var j = 0;
+ for (i = 0; i < s.length; i++) {
+ switch (s.charAt(i)) {
+ case "\0": res += s.substring(j, i) + "\\0"; j = i + 1; break;
+ case "\b": res += s.substring(j, i) + "\\b"; j = i + 1; break;
+ case "\f": res += s.substring(j, i) + "\\f"; j = i + 1; break;
+ case "\n": res += s.substring(j, i) + "\\n"; j = i + 1; break;
+ case "\r": res += s.substring(j, i) + "\\r"; j = i + 1; break;
+ case "\t": res += s.substring(j, i) + "\\t"; j = i + 1; break;
+ case "\v": res += s.substring(j, i) + "\\v"; j = i + 1; break;
+ case '"': res += s.substring(j, i) + '\\"'; j = i + 1; break;
+ case "\\": res += s.substring(j, i) + "\\\\"; j = i + 1; break;
+ default:
+ var c = s.charAt(i);
+ if ("\a" !== "a" && c == "\a") {
+ res += s.substring(j, i) + "\\a"; j = i + 1; continue;
+ }
+ if ("\v" !== "v" && c == "\v") {
+ res += s.substring(j, i) + "\\v"; j = i + 1; continue;
+ }
+ //if (s.charAt(i) < ' ' || s.charCodeAt(i) > 127) {
+ // CARE: Manuel is this OK with HOP?
+ if (s.charAt(i) < ' ') {
+ /* non printable character and special chars */
+ res += s.substring(j, i) + "\\x" + s.charCodeAt(i).toString(16);
+ j = i + 1;
+ }
+ // else just let i increase...
+ }
+ }
+ res += s.substring(j, i);
+ return res;
+}
+
+/* ------------------ display ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_display(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toDisplayString(o));
+}
+
+function sc_toDisplayString(o) {
+ if (o === null)
+ return "()";
+ else if (o === true)
+ return "#t";
+ else if (o === false)
+ return "#f";
+ else if (o === undefined)
+ return "#unspecified";
+ else if (typeof o === 'function')
+ return "#<procedure " + sc_hash(o) + ">";
+ else if (o.sc_toDisplayString)
+ return o.sc_toDisplayString();
+ else
+ return o.toString();
+}
+
+/* ------------------ newline ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_newline(p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString("\n");
+}
+
+/* ------------------ write-char ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_writeChar(c, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(c.val);
+}
+
+/* ------------------ write-circle ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_writeCircle(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toWriteCircleString(o));
+}
+
+function sc_toWriteCircleString(o) {
+ var symb = sc_gensym("writeCircle");
+ var nbPointer = new Object();
+ nbPointer.nb = 0;
+ sc_prepWriteCircle(o, symb, nbPointer);
+ return sc_genToWriteCircleString(o, symb);
+}
+
+function sc_prepWriteCircle(o, symb, nbPointer) {
+ // TODO sc_Struct
+ if (o instanceof sc_Pair ||
+ o instanceof sc_Vector) {
+ if (o[symb] !== undefined) {
+ // not the first visit.
+ o[symb]++;
+ // unless there is already a number, assign one.
+ if (!o[symb + "nb"]) o[symb + "nb"] = nbPointer.nb++;
+ return;
+ }
+ o[symb] = 0;
+ if (o instanceof sc_Pair) {
+ sc_prepWriteCircle(o.car, symb, nbPointer);
+ sc_prepWriteCircle(o.cdr, symb, nbPointer);
+ } else {
+ for (var i = 0; i < o.length; i++)
+ sc_prepWriteCircle(o[i], symb, nbPointer);
+ }
+ }
+}
+
+function sc_genToWriteCircleString(o, symb) {
+ if (!(o instanceof sc_Pair ||
+ o instanceof sc_Vector))
+ return sc_toWriteString(o);
+ return o.sc_toWriteCircleString(symb);
+}
+sc_Pair.prototype.sc_toWriteCircleString = function(symb, inList) {
+ if (this[symb + "use"]) { // use-flag is set. Just use it.
+ var nb = this[symb + "nb"];
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+ if (inList)
+ return '. #' + nb + '#';
+ else
+ return '#' + nb + '#';
+ }
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+
+ var res = "";
+
+ if (this[symb] !== undefined) { // implies > 0
+ this[symb + "use"] = true;
+ if (inList)
+ res += '. #' + this[symb + "nb"] + '=';
+ else
+ res += '#' + this[symb + "nb"] + '=';
+ inList = false;
+ }
+
+ if (!inList)
+ res += "(";
+
+ // print car
+ res += sc_genToWriteCircleString(this.car, symb);
+
+ if (sc_isPair(this.cdr)) {
+ res += " " + this.cdr.sc_toWriteCircleString(symb, true);
+ } else if (this.cdr !== null) {
+ res += " . " + sc_genToWriteCircleString(this.cdr, symb);
+ }
+ if (!inList)
+ res += ")";
+ return res;
+};
+sc_Vector.prototype.sc_toWriteCircleString = function(symb) {
+ if (this[symb + "use"]) { // use-flag is set. Just use it.
+ var nb = this[symb + "nb"];
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+ return '#' + nb + '#';
+ }
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+
+ var res = "";
+ if (this[symb] !== undefined) { // implies > 0
+ this[symb + "use"] = true;
+ res += '#' + this[symb + "nb"] + '=';
+ }
+ res += "#(";
+ for (var i = 0; i < this.length; i++) {
+ res += sc_genToWriteCircleString(this[i], symb);
+ if (i < this.length - 1) res += " ";
+ }
+ res += ")";
+ return res;
+};
+
+
+/* ------------------ print ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_print(s) {
+ if (arguments.length === 1) {
+ sc_display(s);
+ sc_newline();
+ }
+ else {
+ for (var i = 0; i < arguments.length; i++)
+ sc_display(arguments[i]);
+ sc_newline();
+ }
+}
+
+/* ------------------ format ---------------------------------------------------*/
+/*** META ((export #t)) */
+function sc_format(s, args) {
+ var len = s.length;
+ var p = new sc_StringOutputPort();
+ var i = 0, j = 1;
+
+ while( i < len ) {
+ var i2 = s.indexOf("~", i);
+
+ if (i2 == -1) {
+ p.appendJSString( s.substring( i, len ) );
+ return p.close();
+ } else {
+ if (i2 > i) {
+ if (i2 == (len - 1)) {
+ p.appendJSString(s.substring(i, len));
+ return p.close();
+ } else {
+ p.appendJSString(s.substring(i, i2));
+ i = i2;
+ }
+ }
+
+ switch(s.charCodeAt(i2 + 1)) {
+ case 65:
+ case 97:
+ // a
+ sc_display(arguments[j], p);
+ i += 2; j++;
+ break;
+
+ case 83:
+ case 115:
+ // s
+ sc_write(arguments[j], p);
+ i += 2; j++;
+ break;
+
+ case 86:
+ case 118:
+ // v
+ sc_display(arguments[j], p);
+ p.appendJSString("\n");
+ i += 2; j++;
+ break;
+
+ case 67:
+ case 99:
+ // c
+ p.appendJSString(String.fromCharCode(arguments[j]));
+ i += 2; j++;
+ break;
+
+ case 88:
+ case 120:
+ // x
+ p.appendJSString(arguments[j].toString(6));
+ i += 2; j++;
+ break;
+
+ case 79:
+ case 111:
+ // o
+ p.appendJSString(arguments[j].toString(8));
+ i += 2; j++;
+ break;
+
+ case 66:
+ case 98:
+ // b
+ p.appendJSString(arguments[j].toString(2));
+ i += 2; j++;
+ break;
+
+ case 37:
+ case 110:
+ // %, n
+ p.appendJSString("\n");
+ i += 2; break;
+
+ case 114:
+ // r
+ p.appendJSString("\r");
+ i += 2; break;
+
+ case 126:
+ // ~
+ p.appendJSString("~");
+ i += 2; break;
+
+ default:
+ sc_error( "format: illegal ~"
+ + String.fromCharCode(s.charCodeAt(i2 + 1))
+ + " sequence" );
+ return "";
+ }
+ }
+ }
+
+ return p.close();
+}
+
+/* ------------------ global ports ---------------------------------------------------*/
+
+var SC_DEFAULT_IN = new sc_ErrorInputPort();
+var SC_DEFAULT_OUT = new sc_ErrorOutputPort();
+var SC_ERROR_OUT = new sc_ErrorOutputPort();
+
+var sc_SYMBOL_PREFIX = "\u1E9C";
+var sc_KEYWORD_PREFIX = "\u1E9D";
+
+/*** META ((export #t)
+ (peephole (id))) */
+function sc_jsstring2string(s) {
+ return s;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9C' +")))
+*/
+function sc_jsstring2symbol(s) {
+ return sc_SYMBOL_PREFIX + s;
+}
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_string2jsstring(s) {
+ return s;
+}
+
+/*** META ((export #t)
+ (peephole (symbol2jsstring_immutable)))
+*/
+function sc_symbol2jsstring(s) {
+ return s.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".slice(1)")))
+*/
+function sc_keyword2jsstring(k) {
+ return k.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9D' +")))
+*/
+function sc_jsstring2keyword(s) {
+ return sc_KEYWORD_PREFIX + s;
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isKeyword(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) === sc_KEYWORD_PREFIX);
+}
+
+
+/*** META ((export #t)) */
+var sc_gensym = function() {
+ var counter = 1000;
+ return function(sym) {
+ counter++;
+ if (!sym) sym = sc_SYMBOL_PREFIX;
+ return sym + "s" + counter + "~" + "^sC-GeNsYm ";
+ };
+}();
+
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isEqual(o1, o2) {
+ return ((o1 === o2) ||
+ (sc_isPair(o1) && sc_isPair(o2)
+ && sc_isPairEqual(o1, o2, sc_isEqual)) ||
+ (sc_isVector(o1) && sc_isVector(o2)
+ && sc_isVectorEqual(o1, o2, sc_isEqual)));
+}
+
+/*** META ((export number->symbol integer->symbol)) */
+function sc_number2symbol(x, radix) {
+ return sc_SYMBOL_PREFIX + sc_number2jsstring(x, radix);
+}
+
+/*** META ((export number->string integer->string)) */
+var sc_number2string = sc_number2jsstring;
+
+/*** META ((export #t)) */
+function sc_symbol2number(s, radix) {
+ return sc_jsstring2number(s.slice(1), radix);
+}
+
+/*** META ((export #t)) */
+var sc_string2number = sc_jsstring2number;
+
+/*** META ((export #t)
+ (peephole (prefix "+" s)))
+ ;; peephole will only apply if no radix is given.
+*/
+function sc_string2integer(s, radix) {
+ if (!radix) return +s;
+ return parseInt(s, radix);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "+")))
+*/
+function sc_string2real(s) {
+ return +s;
+}
+
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isSymbol(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) === sc_SYMBOL_PREFIX);
+}
+
+/*** META ((export #t)
+ (peephole (symbol2string_immutable)))
+*/
+function sc_symbol2string(s) {
+ return s.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9C' +")))
+*/
+function sc_string2symbol(s) {
+ return sc_SYMBOL_PREFIX + s;
+}
+
+/*** META ((export symbol-append)
+ (peephole (symbolAppend_immutable)))
+*/
+function sc_symbolAppend() {
+ var res = sc_SYMBOL_PREFIX;
+ for (var i = 0; i < arguments.length; i++)
+ res += arguments[i].slice(1);
+ return res;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".val")))
+*/
+function sc_char2string(c) { return c.val; }
+
+/*** META ((export #t)
+ (peephole (hole 1 "'\\u1E9C' + " c ".val")))
+*/
+function sc_char2symbol(c) { return sc_SYMBOL_PREFIX + c.val; }
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isString(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) !== sc_SYMBOL_PREFIX);
+}
+
+/*** META ((export #t)) */
+var sc_makeString = sc_makejsString;
+
+
+/*** META ((export #t)) */
+function sc_string() {
+ for (var i = 0; i < arguments.length; i++)
+ arguments[i] = arguments[i].val;
+ return "".concat.apply("", arguments);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".length")))
+*/
+function sc_stringLength(s) { return s.length; }
+
+/*** META ((export #t)) */
+function sc_stringRef(s, k) {
+ return new sc_Char(s.charAt(k));
+}
+
+/* there's no stringSet in the immutable version
+function sc_stringSet(s, k, c)
+*/
+
+
+/*** META ((export string=?)
+ (type bool)
+ (peephole (hole 2 str1 " === " str2)))
+*/
+function sc_isStringEqual(s1, s2) {
+ return s1 === s2;
+}
+/*** META ((export string<?)
+ (type bool)
+ (peephole (hole 2 str1 " < " str2)))
+*/
+function sc_isStringLess(s1, s2) {
+ return s1 < s2;
+}
+/*** META ((export string>?)
+ (type bool)
+ (peephole (hole 2 str1 " > " str2)))
+*/
+function sc_isStringGreater(s1, s2) {
+ return s1 > s2;
+}
+/*** META ((export string<=?)
+ (type bool)
+ (peephole (hole 2 str1 " <= " str2)))
+*/
+function sc_isStringLessEqual(s1, s2) {
+ return s1 <= s2;
+}
+/*** META ((export string>=?)
+ (type bool)
+ (peephole (hole 2 str1 " >= " str2)))
+*/
+function sc_isStringGreaterEqual(s1, s2) {
+ return s1 >= s2;
+}
+/*** META ((export string-ci=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() === " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIEqual(s1, s2) {
+ return s1.toLowerCase() === s2.toLowerCase();
+}
+/*** META ((export string-ci<?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() < " str2 ".toLowerCase()")))
+*/
+function sc_isStringCILess(s1, s2) {
+ return s1.toLowerCase() < s2.toLowerCase();
+}
+/*** META ((export string-ci>?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() > " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIGreater(s1, s2) {
+ return s1.toLowerCase() > s2.toLowerCase();
+}
+/*** META ((export string-ci<=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() <= " str2 ".toLowerCase()")))
+*/
+function sc_isStringCILessEqual(s1, s2) {
+ return s1.toLowerCase() <= s2.toLowerCase();
+}
+/*** META ((export string-ci>=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() >= " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIGreaterEqual(s1, s2) {
+ return s1.toLowerCase() >= s2.toLowerCase();
+}
+
+/*** META ((export #t)
+ (peephole (hole 3 s ".substring(" start ", " end ")")))
+*/
+function sc_substring(s, start, end) {
+ return s.substring(start, end);
+}
+
+/*** META ((export #t))
+*/
+function sc_isSubstring_at(s1, s2, i) {
+ return s2 == s1.substring(i, i+ s2.length);
+}
+
+/*** META ((export #t)
+ (peephole (infix 0 #f "+" "''")))
+*/
+function sc_stringAppend() {
+ return "".concat.apply("", arguments);
+}
+
+/*** META ((export #t)) */
+var sc_string2list = sc_jsstring2list;
+
+/*** META ((export #t)) */
+var sc_list2string = sc_list2jsstring;
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_stringCopy(s) {
+ return s;
+}
+
+/* there's no string-fill in the immutable version
+function sc_stringFill(s, c)
+*/
+
+/*** META ((export #t)
+ (peephole (postfix ".slice(1)")))
+*/
+function sc_keyword2string(o) {
+ return o.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9D' +")))
+*/
+function sc_string2keyword(o) {
+ return sc_KEYWORD_PREFIX + o;
+}
+
+String.prototype.sc_toDisplayString = function() {
+ if (this.charAt(0) === sc_SYMBOL_PREFIX)
+ // TODO: care for symbols with spaces (escape-chars symbols).
+ return this.slice(1);
+ else if (this.charAt(0) === sc_KEYWORD_PREFIX)
+ return ":" + this.slice(1);
+ else
+ return this.toString();
+};
+
+String.prototype.sc_toWriteString = function() {
+ if (this.charAt(0) === sc_SYMBOL_PREFIX)
+ // TODO: care for symbols with spaces (escape-chars symbols).
+ return this.slice(1);
+ else if (this.charAt(0) === sc_KEYWORD_PREFIX)
+ return ":" + this.slice(1);
+ else
+ return '"' + sc_escapeWriteString(this) + '"';
+};
+/* Exported Variables */
+var BgL_testzd2boyerzd2;
+var BgL_nboyerzd2benchmarkzd2;
+var BgL_setupzd2boyerzd2;
+/* End Exports */
+
+var translate_term_nboyer;
+var translate_args_nboyer;
+var untranslate_term_nboyer;
+var BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer;
+var BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer;
+var translate_alist_nboyer;
+var apply_subst_nboyer;
+var apply_subst_lst_nboyer;
+var tautologyp_nboyer;
+var if_constructor_nboyer;
+var rewrite_count_nboyer;
+var rewrite_nboyer;
+var rewrite_args_nboyer;
+var unify_subst_nboyer;
+var one_way_unify1_nboyer;
+var false_term_nboyer;
+var true_term_nboyer;
+var trans_of_implies1_nboyer;
+var is_term_equal_nboyer;
+var is_term_member_nboyer;
+var const_nboyer;
+var sc_const_3_nboyer;
+var sc_const_4_nboyer;
+{
+ (sc_const_4_nboyer = (new sc_Pair("\u1E9Cimplies",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cu",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cw",null)))))),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cw",null)))))),null)))))));
+ (sc_const_3_nboyer = sc_list((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccompile",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Ccodegen",(new sc_Pair((new sc_Pair("\u1E9Coptimize",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreaterp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clesseqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cboolean",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ciff",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceven1",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Codd",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccountps-",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccountps-loop",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfact-",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfact-loop",(new sc_Pair("\u1E9Ci",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdivides",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-true",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-false",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctautology-checker",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctautologyp",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfalsify",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfalsify1",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime1",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair("\u1E9Cp",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))))),(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cc",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cplus-fringe",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair("\u1E9Cenvrn",null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmc-flatten",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cintersect",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Ck",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ck",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Csort-lp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus1",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Ci",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cbase",null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cj",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cj",(new sc_Pair((1),null)))))),null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Ci",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cw",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cz",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnlistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csamefringe",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cz",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cw",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair(sc_list("\u1E9Cand", (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Ca",null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cb",null)))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cl",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cl",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdsort",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx1",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx2",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx3",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx4",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx5",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx6",(new sc_Pair("\u1E9Cx7",null)))))),null)))))),null)))))),null)))))),null)))))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((6),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx7",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cy",(new sc_Pair((2),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csigma",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Ci",null)))),null)))))),(new sc_Pair((2),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cz",null)))),null)))))),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Ca",null)))),null)))),(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Cb",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair("\u1E9Cz",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cassignedp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair((new sc_Pair("\u1E9Cset",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cval",(new sc_Pair("\u1E9Cmem",null)))))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair("\u1E9Cval",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cmem",null)))))),null)))))))),null))))))));
+ (const_nboyer = (new sc_Pair((new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))))),null)))))))))));
+ BgL_nboyerzd2benchmarkzd2 = function() {
+ var args = null;
+ for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) {
+ args = sc_cons(arguments[sc_tmp], args);
+ }
+ var n;
+ return ((n = ((args === null)?(0):(args.car))), (BgL_setupzd2boyerzd2()), (BgL_runzd2benchmarkzd2(("nboyer"+(sc_number2string(n))), (1), function() {
+ return (BgL_testzd2boyerzd2(n));
+ }, function(rewrites) {
+ if ((sc_isNumber(rewrites)))
+ switch (n) {
+ case (0):
+ return (rewrites===(95024));
+ break;
+ case (1):
+ return (rewrites===(591777));
+ break;
+ case (2):
+ return (rewrites===(1813975));
+ break;
+ case (3):
+ return (rewrites===(5375678));
+ break;
+ case (4):
+ return (rewrites===(16445406));
+ break;
+ case (5):
+ return (rewrites===(51507739));
+ break;
+ default:
+ return true;
+ break;
+ }
+ else
+ return false;
+ })));
+ };
+ BgL_setupzd2boyerzd2 = function() {
+ return true;
+ };
+ BgL_testzd2boyerzd2 = function() {
+ return true;
+ };
+ translate_term_nboyer = function(term) {
+ var lst;
+ return (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((translate_term_nboyer((lst.car))), (translate_args_nboyer((lst.cdr))))))))));
+ };
+ translate_args_nboyer = function(lst) {
+ var sc_lst_5;
+ var term;
+ return ((lst === null)?null:(new sc_Pair(((term = (lst.car)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))), ((sc_lst_5 = (lst.cdr)), ((sc_lst_5 === null)?null:(new sc_Pair((translate_term_nboyer((sc_lst_5.car))), (translate_args_nboyer((sc_lst_5.cdr))))))))));
+ };
+ untranslate_term_nboyer = function(term) {
+ var optrOpnd;
+ var tail1131;
+ var L1127;
+ var falseHead1130;
+ var symbol_record;
+ if (!(term instanceof sc_Pair))
+ return term;
+ else
+ {
+ (falseHead1130 = (new sc_Pair(null, null)));
+ (L1127 = (term.cdr));
+ (tail1131 = falseHead1130);
+ while (!(L1127 === null)) {
+ {
+ (tail1131.cdr = (new sc_Pair((untranslate_term_nboyer((L1127.car))), null)));
+ (tail1131 = (tail1131.cdr));
+ (L1127 = (L1127.cdr));
+ }
+ }
+ (optrOpnd = (falseHead1130.cdr));
+ return (new sc_Pair(((symbol_record = (term.car)), (symbol_record[(0)])), optrOpnd));
+ }
+ };
+ BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer = function(sym) {
+ var r;
+ var x;
+ return ((x = (sc_assq(sym, BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), ((x!== false)?(x.cdr):((r = [sym, null]), (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = (new sc_Pair((new sc_Pair(sym, r)), BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), r)));
+ };
+ (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null);
+ translate_alist_nboyer = function(alist) {
+ var sc_alist_6;
+ var term;
+ return ((alist === null)?null:(new sc_Pair((new sc_Pair((alist.car.car), ((term = (alist.car.cdr)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))))), ((sc_alist_6 = (alist.cdr)), ((sc_alist_6 === null)?null:(new sc_Pair((new sc_Pair((sc_alist_6.car.car), (translate_term_nboyer((sc_alist_6.car.cdr))))), (translate_alist_nboyer((sc_alist_6.cdr))))))))));
+ };
+ apply_subst_nboyer = function(alist, term) {
+ var lst;
+ var temp_temp;
+ return (!(term instanceof sc_Pair)?((temp_temp = (sc_assq(term, alist))), ((temp_temp!== false)?(temp_temp.cdr):term)):(new sc_Pair((term.car), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), (apply_subst_lst_nboyer(alist, (lst.cdr))))))))));
+ };
+ apply_subst_lst_nboyer = function(alist, lst) {
+ var sc_lst_7;
+ return ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), ((sc_lst_7 = (lst.cdr)), ((sc_lst_7 === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (sc_lst_7.car))), (apply_subst_lst_nboyer(alist, (sc_lst_7.cdr))))))))));
+ };
+ tautologyp_nboyer = function(sc_x_11, true_lst, false_lst) {
+ var tmp1125;
+ var x;
+ var tmp1126;
+ var sc_x_8;
+ var sc_tmp1125_9;
+ var sc_tmp1126_10;
+ var sc_x_11;
+ var true_lst;
+ var false_lst;
+ while (true) {
+ if ((((sc_tmp1126_10 = (is_term_equal_nboyer(sc_x_11, true_term_nboyer))), ((sc_tmp1126_10!== false)?sc_tmp1126_10:(is_term_member_nboyer(sc_x_11, true_lst))))!== false))
+ return true;
+ else
+ if ((((sc_tmp1125_9 = (is_term_equal_nboyer(sc_x_11, false_term_nboyer))), ((sc_tmp1125_9!== false)?sc_tmp1125_9:(is_term_member_nboyer(sc_x_11, false_lst))))!== false))
+ return false;
+ else
+ if (!(sc_x_11 instanceof sc_Pair))
+ return false;
+ else
+ if (((sc_x_11.car)===if_constructor_nboyer))
+ if ((((sc_x_8 = (sc_x_11.cdr.car)), (tmp1126 = (is_term_equal_nboyer(sc_x_8, true_term_nboyer))), ((tmp1126!== false)?tmp1126:(is_term_member_nboyer(sc_x_8, true_lst))))!== false))
+ (sc_x_11 = (sc_x_11.cdr.cdr.car));
+ else
+ if ((((x = (sc_x_11.cdr.car)), (tmp1125 = (is_term_equal_nboyer(x, false_term_nboyer))), ((tmp1125!== false)?tmp1125:(is_term_member_nboyer(x, false_lst))))!== false))
+ (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car));
+ else
+ if (((tautologyp_nboyer((sc_x_11.cdr.cdr.car), (new sc_Pair((sc_x_11.cdr.car), true_lst)), false_lst))!== false))
+ {
+ (false_lst = (new sc_Pair((sc_x_11.cdr.car), false_lst)));
+ (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car));
+ }
+ else
+ return false;
+ else
+ return false;
+ }
+ };
+ (if_constructor_nboyer = "\u1E9C*");
+ (rewrite_count_nboyer = (0));
+ rewrite_nboyer = function(term) {
+ var term2;
+ var sc_term_12;
+ var lst;
+ var symbol_record;
+ var sc_lst_13;
+ {
+ (++rewrite_count_nboyer);
+ if (!(term instanceof sc_Pair))
+ return term;
+ else
+ {
+ (sc_term_12 = (new sc_Pair((term.car), ((sc_lst_13 = (term.cdr)), ((sc_lst_13 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_13.car))), (rewrite_args_nboyer((sc_lst_13.cdr))))))))));
+ (lst = ((symbol_record = (term.car)), (symbol_record[(1)])));
+ while (true) {
+ if ((lst === null))
+ return sc_term_12;
+ else
+ if ((((term2 = ((lst.car).cdr.car)), (unify_subst_nboyer = null), (one_way_unify1_nboyer(sc_term_12, term2)))!== false))
+ return (rewrite_nboyer((apply_subst_nboyer(unify_subst_nboyer, ((lst.car).cdr.cdr.car)))));
+ else
+ (lst = (lst.cdr));
+ }
+ }
+ }
+ };
+ rewrite_args_nboyer = function(lst) {
+ var sc_lst_14;
+ return ((lst === null)?null:(new sc_Pair((rewrite_nboyer((lst.car))), ((sc_lst_14 = (lst.cdr)), ((sc_lst_14 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_14.car))), (rewrite_args_nboyer((sc_lst_14.cdr))))))))));
+ };
+ (unify_subst_nboyer = "\u1E9C*");
+ one_way_unify1_nboyer = function(term1, term2) {
+ var lst1;
+ var lst2;
+ var temp_temp;
+ if (!(term2 instanceof sc_Pair))
+ {
+ (temp_temp = (sc_assq(term2, unify_subst_nboyer)));
+ if ((temp_temp!== false))
+ return (is_term_equal_nboyer(term1, (temp_temp.cdr)));
+ else
+ if ((sc_isNumber(term2)))
+ return (sc_isEqual(term1, term2));
+ else
+ {
+ (unify_subst_nboyer = (new sc_Pair((new sc_Pair(term2, term1)), unify_subst_nboyer)));
+ return true;
+ }
+ }
+ else
+ if (!(term1 instanceof sc_Pair))
+ return false;
+ else
+ if (((term1.car)===(term2.car)))
+ {
+ (lst1 = (term1.cdr));
+ (lst2 = (term2.cdr));
+ while (true) {
+ if ((lst1 === null))
+ return (lst2 === null);
+ else
+ if ((lst2 === null))
+ return false;
+ else
+ if (((one_way_unify1_nboyer((lst1.car), (lst2.car)))!== false))
+ {
+ (lst1 = (lst1.cdr));
+ (lst2 = (lst2.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ };
+ (false_term_nboyer = "\u1E9C*");
+ (true_term_nboyer = "\u1E9C*");
+ trans_of_implies1_nboyer = function(n) {
+ var sc_n_15;
+ return ((sc_isEqual(n, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (n-(1)), n)), ((sc_n_15 = (n-(1))), ((sc_isEqual(sc_n_15, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (sc_n_15-(1)), sc_n_15)), (trans_of_implies1_nboyer((sc_n_15-(1)))))))))));
+ };
+ is_term_equal_nboyer = function(x, y) {
+ var lst1;
+ var lst2;
+ var r2;
+ var r1;
+ if ((x instanceof sc_Pair))
+ if ((y instanceof sc_Pair))
+ if ((((r1 = (x.car)), (r2 = (y.car)), (r1===r2))!== false))
+ {
+ (lst1 = (x.cdr));
+ (lst2 = (y.cdr));
+ while (true) {
+ if ((lst1 === null))
+ return (lst2 === null);
+ else
+ if ((lst2 === null))
+ return false;
+ else
+ if (((is_term_equal_nboyer((lst1.car), (lst2.car)))!== false))
+ {
+ (lst1 = (lst1.cdr));
+ (lst2 = (lst2.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ else
+ return false;
+ else
+ return (sc_isEqual(x, y));
+ };
+ is_term_member_nboyer = function(x, lst) {
+ var x;
+ var lst;
+ while (true) {
+ if ((lst === null))
+ return false;
+ else
+ if (((is_term_equal_nboyer(x, (lst.car)))!== false))
+ return true;
+ else
+ (lst = (lst.cdr));
+ }
+ };
+ BgL_setupzd2boyerzd2 = function() {
+ var symbol_record;
+ var value;
+ var BgL_sc_symbolzd2record_16zd2;
+ var sym;
+ var sc_sym_17;
+ var term;
+ var lst;
+ var sc_term_18;
+ var sc_term_19;
+ {
+ (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null);
+ (if_constructor_nboyer = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer("\u1E9Cif")));
+ (false_term_nboyer = ((sc_term_19 = (new sc_Pair("\u1E9Cf",null))), (!(sc_term_19 instanceof sc_Pair)?sc_term_19:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_19.car))), (translate_args_nboyer((sc_term_19.cdr))))))));
+ (true_term_nboyer = ((sc_term_18 = (new sc_Pair("\u1E9Ct",null))), (!(sc_term_18 instanceof sc_Pair)?sc_term_18:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_18.car))), (translate_args_nboyer((sc_term_18.cdr))))))));
+ (lst = sc_const_3_nboyer);
+ while (!(lst === null)) {
+ {
+ (term = (lst.car));
+ if (((term instanceof sc_Pair)&&(((term.car)==="\u1E9Cequal")&&((term.cdr.car) instanceof sc_Pair))))
+ {
+ (sc_sym_17 = ((term.cdr.car).car));
+ (value = (new sc_Pair((!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr)))))), ((sym = ((term.cdr.car).car)), (BgL_sc_symbolzd2record_16zd2 = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sym))), (BgL_sc_symbolzd2record_16zd2[(1)])))));
+ (symbol_record = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sc_sym_17)));
+ (symbol_record[(1)] = value);
+ }
+ else
+ (sc_error("ADD-LEMMA did not like term: ", term));
+ (lst = (lst.cdr));
+ }
+ }
+ return true;
+ }
+ };
+ BgL_testzd2boyerzd2 = function(n) {
+ var optrOpnd;
+ var term;
+ var sc_n_20;
+ var answer;
+ var sc_term_21;
+ var sc_term_22;
+ {
+ (rewrite_count_nboyer = (0));
+ (term = sc_const_4_nboyer);
+ (sc_n_20 = n);
+ while (!(sc_n_20=== 0)) {
+ {
+ (term = (sc_list("\u1E9Cor", term, (new sc_Pair("\u1E9Cf",null)))));
+ (--sc_n_20);
+ }
+ }
+ (sc_term_22 = term);
+ if (!(sc_term_22 instanceof sc_Pair))
+ (optrOpnd = sc_term_22);
+ else
+ (optrOpnd = (new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_22.car))), (translate_args_nboyer((sc_term_22.cdr))))));
+ (sc_term_21 = (apply_subst_nboyer(((const_nboyer === null)?null:(new sc_Pair((new sc_Pair((const_nboyer.car.car), (translate_term_nboyer((const_nboyer.car.cdr))))), (translate_alist_nboyer((const_nboyer.cdr)))))), optrOpnd)));
+ (answer = (tautologyp_nboyer((rewrite_nboyer(sc_term_21)), null, null)));
+ (sc_write(rewrite_count_nboyer));
+ (sc_display(" rewrites"));
+ (sc_newline());
+ if ((answer!== false))
+ return rewrite_count_nboyer;
+ else
+ return false;
+ }
+ };
+}
+/* Exported Variables */
+var BgL_parsezd2ze3nbzd2treesze3;
+var BgL_earleyzd2benchmarkzd2;
+var BgL_parsezd2ze3parsedzf3zc2;
+var test;
+var BgL_parsezd2ze3treesz31;
+var BgL_makezd2parserzd2;
+/* End Exports */
+
+var const_earley;
+{
+ (const_earley = (new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair((new sc_Pair("\u1E9Ca",null)),(new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair("\u1E9Cs",null)))),null)))))),null)));
+ BgL_makezd2parserzd2 = function(grammar, lexer) {
+ var i;
+ var parser_descr;
+ var def_loop;
+ var nb_nts;
+ var names;
+ var steps;
+ var predictors;
+ var enders;
+ var starters;
+ var nts;
+ var sc_names_1;
+ var sc_steps_2;
+ var sc_predictors_3;
+ var sc_enders_4;
+ var sc_starters_5;
+ var nb_confs;
+ var BgL_sc_defzd2loop_6zd2;
+ var BgL_sc_nbzd2nts_7zd2;
+ var sc_nts_8;
+ var BgL_sc_defzd2loop_9zd2;
+ var ind;
+ {
+ ind = function(nt, sc_nts_10) {
+ var i;
+ {
+ (i = ((sc_nts_10.length)-(1)));
+ while (true) {
+ if ((i>=(0)))
+ if ((sc_isEqual((sc_nts_10[i]), nt)))
+ return i;
+ else
+ (--i);
+ else
+ return false;
+ }
+ }
+ };
+ (sc_nts_8 = ((BgL_sc_defzd2loop_9zd2 = function(defs, sc_nts_11) {
+ var rule_loop;
+ var head;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, sc_nts_12) {
+ var nt;
+ var l;
+ var sc_nts_13;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (l = rule);
+ (sc_nts_13 = sc_nts_12);
+ while ((l instanceof sc_Pair)) {
+ {
+ (nt = (l.car));
+ (l = (l.cdr));
+ (sc_nts_13 = (((sc_member(nt, sc_nts_13))!== false)?sc_nts_13:(new sc_Pair(nt, sc_nts_13))));
+ }
+ }
+ return (rule_loop((rules.cdr), sc_nts_13));
+ }
+ else
+ return (BgL_sc_defzd2loop_9zd2((defs.cdr), sc_nts_12));
+ }), (rule_loop((def.cdr), (((sc_member(head, sc_nts_11))!== false)?sc_nts_11:(new sc_Pair(head, sc_nts_11)))))):(sc_list2vector((sc_reverse(sc_nts_11)))));
+ }), (BgL_sc_defzd2loop_9zd2(grammar, null))));
+ (BgL_sc_nbzd2nts_7zd2 = (sc_nts_8.length));
+ (nb_confs = (((BgL_sc_defzd2loop_6zd2 = function(defs, BgL_sc_nbzd2confs_14zd2) {
+ var rule_loop;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (rule_loop = function(rules, BgL_sc_nbzd2confs_15zd2) {
+ var l;
+ var BgL_sc_nbzd2confs_16zd2;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (l = rule);
+ (BgL_sc_nbzd2confs_16zd2 = BgL_sc_nbzd2confs_15zd2);
+ while ((l instanceof sc_Pair)) {
+ {
+ (l = (l.cdr));
+ (++BgL_sc_nbzd2confs_16zd2);
+ }
+ }
+ return (rule_loop((rules.cdr), (BgL_sc_nbzd2confs_16zd2+(1))));
+ }
+ else
+ return (BgL_sc_defzd2loop_6zd2((defs.cdr), BgL_sc_nbzd2confs_15zd2));
+ }), (rule_loop((def.cdr), BgL_sc_nbzd2confs_14zd2))):BgL_sc_nbzd2confs_14zd2);
+ }), (BgL_sc_defzd2loop_6zd2(grammar, (0))))+BgL_sc_nbzd2nts_7zd2));
+ (sc_starters_5 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_enders_4 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_predictors_3 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_steps_2 = (sc_makeVector(nb_confs, false)));
+ (sc_names_1 = (sc_makeVector(nb_confs, false)));
+ (nts = sc_nts_8);
+ (starters = sc_starters_5);
+ (enders = sc_enders_4);
+ (predictors = sc_predictors_3);
+ (steps = sc_steps_2);
+ (names = sc_names_1);
+ (nb_nts = (sc_nts_8.length));
+ (i = (nb_nts-(1)));
+ while ((i>=(0))) {
+ {
+ (sc_steps_2[i] = (i-nb_nts));
+ (sc_names_1[i] = (sc_list((sc_nts_8[i]), (0))));
+ (sc_enders_4[i] = (sc_list(i)));
+ (--i);
+ }
+ }
+ def_loop = function(defs, conf) {
+ var rule_loop;
+ var head;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, conf, rule_num) {
+ var i;
+ var sc_i_17;
+ var nt;
+ var l;
+ var sc_conf_18;
+ var sc_i_19;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (names[conf] = (sc_list(head, rule_num)));
+ (sc_i_19 = (ind(head, nts)));
+ (starters[sc_i_19] = (new sc_Pair(conf, (starters[sc_i_19]))));
+ (l = rule);
+ (sc_conf_18 = conf);
+ while ((l instanceof sc_Pair)) {
+ {
+ (nt = (l.car));
+ (steps[sc_conf_18] = (ind(nt, nts)));
+ (sc_i_17 = (ind(nt, nts)));
+ (predictors[sc_i_17] = (new sc_Pair(sc_conf_18, (predictors[sc_i_17]))));
+ (l = (l.cdr));
+ (++sc_conf_18);
+ }
+ }
+ (steps[sc_conf_18] = ((ind(head, nts))-nb_nts));
+ (i = (ind(head, nts)));
+ (enders[i] = (new sc_Pair(sc_conf_18, (enders[i]))));
+ return (rule_loop((rules.cdr), (sc_conf_18+(1)), (rule_num+(1))));
+ }
+ else
+ return (def_loop((defs.cdr), conf));
+ }), (rule_loop((def.cdr), conf, (1)))):undefined);
+ };
+ (def_loop(grammar, (sc_nts_8.length)));
+ (parser_descr = [lexer, sc_nts_8, sc_starters_5, sc_enders_4, sc_predictors_3, sc_steps_2, sc_names_1]);
+ return function(input) {
+ var optrOpnd;
+ var sc_optrOpnd_20;
+ var sc_optrOpnd_21;
+ var sc_optrOpnd_22;
+ var loop1;
+ var BgL_sc_stateza2_23za2;
+ var toks;
+ var BgL_sc_nbzd2nts_24zd2;
+ var sc_steps_25;
+ var sc_enders_26;
+ var state_num;
+ var BgL_sc_statesza2_27za2;
+ var states;
+ var i;
+ var conf;
+ var l;
+ var tok_nts;
+ var sc_i_28;
+ var sc_i_29;
+ var l1;
+ var l2;
+ var tok;
+ var tail1129;
+ var L1125;
+ var goal_enders;
+ var BgL_sc_statesza2_30za2;
+ var BgL_sc_nbzd2nts_31zd2;
+ var BgL_sc_nbzd2confs_32zd2;
+ var nb_toks;
+ var goal_starters;
+ var sc_states_33;
+ var BgL_sc_nbzd2confs_34zd2;
+ var BgL_sc_nbzd2toks_35zd2;
+ var sc_toks_36;
+ var falseHead1128;
+ var sc_names_37;
+ var sc_steps_38;
+ var sc_predictors_39;
+ var sc_enders_40;
+ var sc_starters_41;
+ var sc_nts_42;
+ var lexer;
+ var sc_ind_43;
+ var make_states;
+ var BgL_sc_confzd2setzd2getza2_44za2;
+ var conf_set_merge_new_bang;
+ var conf_set_adjoin;
+ var BgL_sc_confzd2setzd2adjoinza2_45za2;
+ var BgL_sc_confzd2setzd2adjoinza2za2_46z00;
+ var conf_set_union;
+ var forw;
+ var is_parsed;
+ var deriv_trees;
+ var BgL_sc_derivzd2treesza2_47z70;
+ var nb_deriv_trees;
+ var BgL_sc_nbzd2derivzd2treesza2_48za2;
+ {
+ sc_ind_43 = function(nt, sc_nts_49) {
+ var i;
+ {
+ (i = ((sc_nts_49.length)-(1)));
+ while (true) {
+ if ((i>=(0)))
+ if ((sc_isEqual((sc_nts_49[i]), nt)))
+ return i;
+ else
+ (--i);
+ else
+ return false;
+ }
+ }
+ };
+ make_states = function(BgL_sc_nbzd2toks_50zd2, BgL_sc_nbzd2confs_51zd2) {
+ var v;
+ var i;
+ var sc_states_52;
+ {
+ (sc_states_52 = (sc_makeVector((BgL_sc_nbzd2toks_50zd2+(1)), false)));
+ (i = BgL_sc_nbzd2toks_50zd2);
+ while ((i>=(0))) {
+ {
+ (v = (sc_makeVector((BgL_sc_nbzd2confs_51zd2+(1)), false)));
+ (v[(0)] = (-1));
+ (sc_states_52[i] = v);
+ (--i);
+ }
+ }
+ return sc_states_52;
+ }
+ };
+ BgL_sc_confzd2setzd2getza2_44za2 = function(state, BgL_sc_statezd2num_53zd2, sc_conf_54) {
+ var conf_set;
+ var BgL_sc_confzd2set_55zd2;
+ return ((BgL_sc_confzd2set_55zd2 = (state[(sc_conf_54+(1))])), ((BgL_sc_confzd2set_55zd2!== false)?BgL_sc_confzd2set_55zd2:((conf_set = (sc_makeVector((BgL_sc_statezd2num_53zd2+(6)), false))), (conf_set[(1)] = (-3)), (conf_set[(2)] = (-1)), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)), (state[(sc_conf_54+(1))] = conf_set), conf_set)));
+ };
+ conf_set_merge_new_bang = function(conf_set) {
+ return ((conf_set[((conf_set[(1)])+(5))] = (conf_set[(4)])), (conf_set[(1)] = (conf_set[(3)])), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)));
+ };
+ conf_set_adjoin = function(state, conf_set, sc_conf_56, i) {
+ var tail;
+ return ((tail = (conf_set[(3)])), (conf_set[(i+(5))] = (-1)), (conf_set[(tail+(5))] = i), (conf_set[(3)] = i), ((tail<(0))?((conf_set[(0)] = (state[(0)])), (state[(0)] = sc_conf_56)):undefined));
+ };
+ BgL_sc_confzd2setzd2adjoinza2_45za2 = function(sc_states_57, BgL_sc_statezd2num_58zd2, l, i) {
+ var conf_set;
+ var sc_conf_59;
+ var l1;
+ var state;
+ {
+ (state = (sc_states_57[BgL_sc_statezd2num_58zd2]));
+ (l1 = l);
+ while ((l1 instanceof sc_Pair)) {
+ {
+ (sc_conf_59 = (l1.car));
+ (conf_set = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_58zd2, sc_conf_59)));
+ if (((conf_set[(i+(5))])=== false))
+ {
+ (conf_set_adjoin(state, conf_set, sc_conf_59, i));
+ (l1 = (l1.cdr));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ }
+ return undefined;
+ }
+ };
+ BgL_sc_confzd2setzd2adjoinza2za2_46z00 = function(sc_states_60, BgL_sc_statesza2_61za2, BgL_sc_statezd2num_62zd2, sc_conf_63, i) {
+ var BgL_sc_confzd2setza2_64z70;
+ var BgL_sc_stateza2_65za2;
+ var conf_set;
+ var state;
+ return ((state = (sc_states_60[BgL_sc_statezd2num_62zd2])), ((((conf_set = (state[(sc_conf_63+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)?((BgL_sc_stateza2_65za2 = (BgL_sc_statesza2_61za2[BgL_sc_statezd2num_62zd2])), (BgL_sc_confzd2setza2_64z70 = (BgL_sc_confzd2setzd2getza2_44za2(BgL_sc_stateza2_65za2, BgL_sc_statezd2num_62zd2, sc_conf_63))), (((BgL_sc_confzd2setza2_64z70[(i+(5))])=== false)?(conf_set_adjoin(BgL_sc_stateza2_65za2, BgL_sc_confzd2setza2_64z70, sc_conf_63, i)):undefined), true):false));
+ };
+ conf_set_union = function(state, conf_set, sc_conf_66, other_set) {
+ var i;
+ {
+ (i = (other_set[(2)]));
+ while ((i>=(0))) {
+ if (((conf_set[(i+(5))])=== false))
+ {
+ (conf_set_adjoin(state, conf_set, sc_conf_66, i));
+ (i = (other_set[(i+(5))]));
+ }
+ else
+ (i = (other_set[(i+(5))]));
+ }
+ return undefined;
+ }
+ };
+ forw = function(sc_states_67, BgL_sc_statezd2num_68zd2, sc_starters_69, sc_enders_70, sc_predictors_71, sc_steps_72, sc_nts_73) {
+ var next_set;
+ var next;
+ var conf_set;
+ var ender;
+ var l;
+ var starter_set;
+ var starter;
+ var sc_l_74;
+ var sc_loop1_75;
+ var head;
+ var BgL_sc_confzd2set_76zd2;
+ var BgL_sc_statezd2num_77zd2;
+ var state;
+ var sc_states_78;
+ var preds;
+ var BgL_sc_confzd2set_79zd2;
+ var step;
+ var sc_conf_80;
+ var BgL_sc_nbzd2nts_81zd2;
+ var sc_state_82;
+ {
+ (sc_state_82 = (sc_states_67[BgL_sc_statezd2num_68zd2]));
+ (BgL_sc_nbzd2nts_81zd2 = (sc_nts_73.length));
+ while (true) {
+ {
+ (sc_conf_80 = (sc_state_82[(0)]));
+ if ((sc_conf_80>=(0)))
+ {
+ (step = (sc_steps_72[sc_conf_80]));
+ (BgL_sc_confzd2set_79zd2 = (sc_state_82[(sc_conf_80+(1))]));
+ (head = (BgL_sc_confzd2set_79zd2[(4)]));
+ (sc_state_82[(0)] = (BgL_sc_confzd2set_79zd2[(0)]));
+ (conf_set_merge_new_bang(BgL_sc_confzd2set_79zd2));
+ if ((step>=(0)))
+ {
+ (sc_l_74 = (sc_starters_69[step]));
+ while ((sc_l_74 instanceof sc_Pair)) {
+ {
+ (starter = (sc_l_74.car));
+ (starter_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, starter)));
+ if (((starter_set[(BgL_sc_statezd2num_68zd2+(5))])=== false))
+ {
+ (conf_set_adjoin(sc_state_82, starter_set, starter, BgL_sc_statezd2num_68zd2));
+ (sc_l_74 = (sc_l_74.cdr));
+ }
+ else
+ (sc_l_74 = (sc_l_74.cdr));
+ }
+ }
+ (l = (sc_enders_70[step]));
+ while ((l instanceof sc_Pair)) {
+ {
+ (ender = (l.car));
+ if ((((conf_set = (sc_state_82[(ender+(1))])), ((conf_set!== false)?(conf_set[(BgL_sc_statezd2num_68zd2+(5))]):false))!== false))
+ {
+ (next = (sc_conf_80+(1)));
+ (next_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, next)));
+ (conf_set_union(sc_state_82, next_set, next, BgL_sc_confzd2set_79zd2));
+ (l = (l.cdr));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ }
+ else
+ {
+ (preds = (sc_predictors_71[(step+BgL_sc_nbzd2nts_81zd2)]));
+ (sc_states_78 = sc_states_67);
+ (state = sc_state_82);
+ (BgL_sc_statezd2num_77zd2 = BgL_sc_statezd2num_68zd2);
+ (BgL_sc_confzd2set_76zd2 = BgL_sc_confzd2set_79zd2);
+ sc_loop1_75 = function(l) {
+ var sc_state_83;
+ var BgL_sc_nextzd2set_84zd2;
+ var sc_next_85;
+ var pred_set;
+ var i;
+ var pred;
+ if ((l instanceof sc_Pair))
+ {
+ (pred = (l.car));
+ (i = head);
+ while ((i>=(0))) {
+ {
+ (pred_set = ((sc_state_83 = (sc_states_78[i])), (sc_state_83[(pred+(1))])));
+ if ((pred_set!== false))
+ {
+ (sc_next_85 = (pred+(1)));
+ (BgL_sc_nextzd2set_84zd2 = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_77zd2, sc_next_85)));
+ (conf_set_union(state, BgL_sc_nextzd2set_84zd2, sc_next_85, pred_set));
+ }
+ (i = (BgL_sc_confzd2set_76zd2[(i+(5))]));
+ }
+ }
+ return (sc_loop1_75((l.cdr)));
+ }
+ else
+ return undefined;
+ };
+ (sc_loop1_75(preds));
+ }
+ }
+ else
+ return undefined;
+ }
+ }
+ }
+ };
+ is_parsed = function(nt, i, j, sc_nts_86, sc_enders_87, sc_states_88) {
+ var conf_set;
+ var state;
+ var sc_conf_89;
+ var l;
+ var BgL_sc_ntza2_90za2;
+ {
+ (BgL_sc_ntza2_90za2 = (sc_ind_43(nt, sc_nts_86)));
+ if ((BgL_sc_ntza2_90za2!== false))
+ {
+ (sc_nts_86.length);
+ (l = (sc_enders_87[BgL_sc_ntza2_90za2]));
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (sc_conf_89 = (l.car));
+ if ((((state = (sc_states_88[j])), (conf_set = (state[(sc_conf_89+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ return true;
+ else
+ (l = (l.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ }
+ };
+ deriv_trees = function(sc_conf_91, i, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2) {
+ var sc_loop1_98;
+ var prev;
+ var name;
+ return ((name = (sc_names_94[sc_conf_91])), ((name!== false)?((sc_conf_91<BgL_sc_nbzd2nts_97zd2)?(sc_list((sc_list(name, ((sc_toks_95[i]).car))))):(sc_list((sc_list(name))))):((prev = (sc_conf_91-(1))), (sc_loop1_98 = function(l1, l2) {
+ var loop2;
+ var ender_set;
+ var state;
+ var ender;
+ var l1;
+ var l2;
+ while (true) {
+ if ((l1 instanceof sc_Pair))
+ {
+ (ender = (l1.car));
+ (ender_set = ((state = (sc_states_96[j])), (state[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ loop2 = function(k, l2) {
+ var loop3;
+ var ender_trees;
+ var prev_trees;
+ var conf_set;
+ var sc_state_99;
+ var k;
+ var l2;
+ while (true) {
+ if ((k>=(0)))
+ if (((k>=i)&&(((sc_state_99 = (sc_states_96[k])), (conf_set = (sc_state_99[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)))
+ {
+ (prev_trees = (deriv_trees(prev, i, k, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2)));
+ (ender_trees = (deriv_trees(ender, k, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2)));
+ loop3 = function(l3, l2) {
+ var l4;
+ var sc_l2_100;
+ var ender_tree;
+ if ((l3 instanceof sc_Pair))
+ {
+ (ender_tree = (sc_list((l3.car))));
+ (l4 = prev_trees);
+ (sc_l2_100 = l2);
+ while ((l4 instanceof sc_Pair)) {
+ {
+ (sc_l2_100 = (new sc_Pair((sc_append((l4.car), ender_tree)), sc_l2_100)));
+ (l4 = (l4.cdr));
+ }
+ }
+ return (loop3((l3.cdr), sc_l2_100));
+ }
+ else
+ return (loop2((ender_set[(k+(5))]), l2));
+ };
+ return (loop3(ender_trees, l2));
+ }
+ else
+ (k = (ender_set[(k+(5))]));
+ else
+ return (sc_loop1_98((l1.cdr), l2));
+ }
+ };
+ return (loop2((ender_set[(2)]), l2));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ else
+ return l2;
+ }
+ }), (sc_loop1_98((sc_enders_92[(sc_steps_93[prev])]), null)))));
+ };
+ BgL_sc_derivzd2treesza2_47z70 = function(nt, i, j, sc_nts_101, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106) {
+ var conf_set;
+ var state;
+ var sc_conf_107;
+ var l;
+ var trees;
+ var BgL_sc_nbzd2nts_108zd2;
+ var BgL_sc_ntza2_109za2;
+ {
+ (BgL_sc_ntza2_109za2 = (sc_ind_43(nt, sc_nts_101)));
+ if ((BgL_sc_ntza2_109za2!== false))
+ {
+ (BgL_sc_nbzd2nts_108zd2 = (sc_nts_101.length));
+ (l = (sc_enders_102[BgL_sc_ntza2_109za2]));
+ (trees = null);
+ while ((l instanceof sc_Pair)) {
+ {
+ (sc_conf_107 = (l.car));
+ if ((((state = (sc_states_106[j])), (conf_set = (state[(sc_conf_107+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ {
+ (l = (l.cdr));
+ (trees = (sc_append((deriv_trees(sc_conf_107, i, j, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106, BgL_sc_nbzd2nts_108zd2)), trees)));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ return trees;
+ }
+ else
+ return false;
+ }
+ };
+ nb_deriv_trees = function(sc_conf_110, i, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2) {
+ var sc_loop1_116;
+ var tmp1124;
+ var prev;
+ return ((prev = (sc_conf_110-(1))), ((((tmp1124 = (sc_conf_110<BgL_sc_nbzd2nts_115zd2)), ((tmp1124!== false)?tmp1124:((sc_steps_112[prev])<(0))))!== false)?(1):((sc_loop1_116 = function(l, sc_n_118) {
+ var nb_ender_trees;
+ var nb_prev_trees;
+ var conf_set;
+ var state;
+ var k;
+ var n;
+ var ender_set;
+ var sc_state_117;
+ var ender;
+ var l;
+ var sc_n_118;
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (ender = (l.car));
+ (ender_set = ((sc_state_117 = (sc_states_114[j])), (sc_state_117[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ (k = (ender_set[(2)]));
+ (n = sc_n_118);
+ while ((k>=(0))) {
+ if (((k>=i)&&(((state = (sc_states_114[k])), (conf_set = (state[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)))
+ {
+ (nb_prev_trees = (nb_deriv_trees(prev, i, k, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2)));
+ (nb_ender_trees = (nb_deriv_trees(ender, k, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2)));
+ (k = (ender_set[(k+(5))]));
+ (n +=(nb_prev_trees*nb_ender_trees));
+ }
+ else
+ (k = (ender_set[(k+(5))]));
+ }
+ return (sc_loop1_116((l.cdr), n));
+ }
+ else
+ (l = (l.cdr));
+ }
+ else
+ return sc_n_118;
+ }
+ }), (sc_loop1_116((sc_enders_111[(sc_steps_112[prev])]), (0))))));
+ };
+ BgL_sc_nbzd2derivzd2treesza2_48za2 = function(nt, i, j, sc_nts_119, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123) {
+ var conf_set;
+ var state;
+ var sc_conf_124;
+ var l;
+ var nb_trees;
+ var BgL_sc_nbzd2nts_125zd2;
+ var BgL_sc_ntza2_126za2;
+ {
+ (BgL_sc_ntza2_126za2 = (sc_ind_43(nt, sc_nts_119)));
+ if ((BgL_sc_ntza2_126za2!== false))
+ {
+ (BgL_sc_nbzd2nts_125zd2 = (sc_nts_119.length));
+ (l = (sc_enders_120[BgL_sc_ntza2_126za2]));
+ (nb_trees = (0));
+ while ((l instanceof sc_Pair)) {
+ {
+ (sc_conf_124 = (l.car));
+ if ((((state = (sc_states_123[j])), (conf_set = (state[(sc_conf_124+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ {
+ (l = (l.cdr));
+ (nb_trees = ((nb_deriv_trees(sc_conf_124, i, j, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123, BgL_sc_nbzd2nts_125zd2))+nb_trees));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ return nb_trees;
+ }
+ else
+ return false;
+ }
+ };
+ (lexer = (parser_descr[(0)]));
+ (sc_nts_42 = (parser_descr[(1)]));
+ (sc_starters_41 = (parser_descr[(2)]));
+ (sc_enders_40 = (parser_descr[(3)]));
+ (sc_predictors_39 = (parser_descr[(4)]));
+ (sc_steps_38 = (parser_descr[(5)]));
+ (sc_names_37 = (parser_descr[(6)]));
+ (falseHead1128 = (new sc_Pair(null, null)));
+ (L1125 = (lexer(input)));
+ (tail1129 = falseHead1128);
+ while (!(L1125 === null)) {
+ {
+ (tok = (L1125.car));
+ (l1 = (tok.cdr));
+ (l2 = null);
+ while ((l1 instanceof sc_Pair)) {
+ {
+ (sc_i_29 = (sc_ind_43((l1.car), sc_nts_42)));
+ if ((sc_i_29!== false))
+ {
+ (l1 = (l1.cdr));
+ (l2 = (new sc_Pair(sc_i_29, l2)));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ }
+ (sc_optrOpnd_22 = (new sc_Pair((tok.car), (sc_reverse(l2)))));
+ (sc_optrOpnd_21 = (new sc_Pair(sc_optrOpnd_22, null)));
+ (tail1129.cdr = sc_optrOpnd_21);
+ (tail1129 = (tail1129.cdr));
+ (L1125 = (L1125.cdr));
+ }
+ }
+ (sc_optrOpnd_20 = (falseHead1128.cdr));
+ (sc_toks_36 = (sc_list2vector(sc_optrOpnd_20)));
+ (BgL_sc_nbzd2toks_35zd2 = (sc_toks_36.length));
+ (BgL_sc_nbzd2confs_34zd2 = (sc_steps_38.length));
+ (sc_states_33 = (make_states(BgL_sc_nbzd2toks_35zd2, BgL_sc_nbzd2confs_34zd2)));
+ (goal_starters = (sc_starters_41[(0)]));
+ (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (0), goal_starters, (0)));
+ (forw(sc_states_33, (0), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
+ (sc_i_28 = (0));
+ while ((sc_i_28<BgL_sc_nbzd2toks_35zd2)) {
+ {
+ (tok_nts = ((sc_toks_36[sc_i_28]).cdr));
+ (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (sc_i_28+(1)), tok_nts, sc_i_28));
+ (forw(sc_states_33, (sc_i_28+(1)), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
+ (++sc_i_28);
+ }
+ }
+ (nb_toks = (sc_toks_36.length));
+ (BgL_sc_nbzd2confs_32zd2 = (sc_steps_38.length));
+ (BgL_sc_nbzd2nts_31zd2 = (sc_nts_42.length));
+ (BgL_sc_statesza2_30za2 = (make_states(nb_toks, BgL_sc_nbzd2confs_32zd2)));
+ (goal_enders = (sc_enders_40[(0)]));
+ (l = goal_enders);
+ while ((l instanceof sc_Pair)) {
+ {
+ (conf = (l.car));
+ (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_33, BgL_sc_statesza2_30za2, nb_toks, conf, (0)));
+ (l = (l.cdr));
+ }
+ }
+ (i = nb_toks);
+ while ((i>=(0))) {
+ {
+ (states = sc_states_33);
+ (BgL_sc_statesza2_27za2 = BgL_sc_statesza2_30za2);
+ (state_num = i);
+ (sc_enders_26 = sc_enders_40);
+ (sc_steps_25 = sc_steps_38);
+ (BgL_sc_nbzd2nts_24zd2 = BgL_sc_nbzd2nts_31zd2);
+ (toks = sc_toks_36);
+ (BgL_sc_stateza2_23za2 = (BgL_sc_statesza2_30za2[i]));
+ loop1 = function() {
+ var sc_loop1_127;
+ var prev;
+ var BgL_sc_statesza2_128za2;
+ var sc_states_129;
+ var j;
+ var i;
+ var sc_i_130;
+ var head;
+ var conf_set;
+ var sc_conf_131;
+ {
+ (sc_conf_131 = (BgL_sc_stateza2_23za2[(0)]));
+ if ((sc_conf_131>=(0)))
+ {
+ (conf_set = (BgL_sc_stateza2_23za2[(sc_conf_131+(1))]));
+ (head = (conf_set[(4)]));
+ (BgL_sc_stateza2_23za2[(0)] = (conf_set[(0)]));
+ (conf_set_merge_new_bang(conf_set));
+ (sc_i_130 = head);
+ while ((sc_i_130>=(0))) {
+ {
+ (i = sc_i_130);
+ (j = state_num);
+ (sc_states_129 = states);
+ (BgL_sc_statesza2_128za2 = BgL_sc_statesza2_27za2);
+ (prev = (sc_conf_131-(1)));
+ if (((sc_conf_131>=BgL_sc_nbzd2nts_24zd2)&&((sc_steps_25[prev])>=(0))))
+ {
+ sc_loop1_127 = function(l) {
+ var k;
+ var ender_set;
+ var state;
+ var ender;
+ var l;
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (ender = (l.car));
+ (ender_set = ((state = (sc_states_129[j])), (state[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ (k = (ender_set[(2)]));
+ while ((k>=(0))) {
+ {
+ if ((k>=i))
+ if (((BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, k, prev, i))!== false))
+ (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, j, ender, k));
+ (k = (ender_set[(k+(5))]));
+ }
+ }
+ return (sc_loop1_127((l.cdr)));
+ }
+ else
+ (l = (l.cdr));
+ }
+ else
+ return undefined;
+ }
+ };
+ (sc_loop1_127((sc_enders_26[(sc_steps_25[prev])])));
+ }
+ (sc_i_130 = (conf_set[(sc_i_130+(5))]));
+ }
+ }
+ return (loop1());
+ }
+ else
+ return undefined;
+ }
+ };
+ (loop1());
+ (--i);
+ }
+ }
+ (optrOpnd = BgL_sc_statesza2_30za2);
+ return [sc_nts_42, sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_names_37, sc_toks_36, optrOpnd, is_parsed, BgL_sc_derivzd2treesza2_47z70, BgL_sc_nbzd2derivzd2treesza2_48za2];
+ }
+ };
+ }
+ };
+ BgL_parsezd2ze3parsedzf3zc2 = function(parse, nt, i, j) {
+ var is_parsed;
+ var states;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (states = (parse[(7)])), (is_parsed = (parse[(8)])), (is_parsed(nt, i, j, nts, enders, states)));
+ };
+ BgL_parsezd2ze3treesz31 = function(parse, nt, i, j) {
+ var BgL_sc_derivzd2treesza2_132z70;
+ var states;
+ var toks;
+ var names;
+ var steps;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (names = (parse[(5)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_derivzd2treesza2_132z70 = (parse[(9)])), (BgL_sc_derivzd2treesza2_132z70(nt, i, j, nts, enders, steps, names, toks, states)));
+ };
+ BgL_parsezd2ze3nbzd2treesze3 = function(parse, nt, i, j) {
+ var BgL_sc_nbzd2derivzd2treesza2_133za2;
+ var states;
+ var toks;
+ var steps;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_nbzd2derivzd2treesza2_133za2 = (parse[(10)])), (BgL_sc_nbzd2derivzd2treesza2_133za2(nt, i, j, nts, enders, steps, toks, states)));
+ };
+ test = function(k) {
+ var x;
+ var p;
+ return ((p = (BgL_makezd2parserzd2(const_earley, function(l) {
+ var sc_x_134;
+ var tail1134;
+ var L1130;
+ var falseHead1133;
+ {
+ (falseHead1133 = (new sc_Pair(null, null)));
+ (tail1134 = falseHead1133);
+ (L1130 = l);
+ while (!(L1130 === null)) {
+ {
+ (tail1134.cdr = (new sc_Pair(((sc_x_134 = (L1130.car)), (sc_list(sc_x_134, sc_x_134))), null)));
+ (tail1134 = (tail1134.cdr));
+ (L1130 = (L1130.cdr));
+ }
+ }
+ return (falseHead1133.cdr);
+ }
+ }))), (x = (p((sc_vector2list((sc_makeVector(k, "\u1E9Ca"))))))), (sc_length((BgL_parsezd2ze3treesz31(x, "\u1E9Cs", (0), k)))));
+ };
+ BgL_earleyzd2benchmarkzd2 = function() {
+ var args = null;
+ for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) {
+ args = sc_cons(arguments[sc_tmp], args);
+ }
+ var k;
+ return ((k = ((args === null)?(7):(args.car))), (BgL_runzd2benchmarkzd2("earley", (1), function() {
+ return (test(k));
+ }, function(result) {
+ return ((sc_display(result)), (sc_newline()), result == 132);
+ })));
+ };
+}
+
+
+/************* END OF GENERATED CODE *************/
+// Invoke this function to run a benchmark.
+// The first argument is a string identifying the benchmark.
+// The second argument is the number of times to run the benchmark.
+// The third argument is a function that runs the benchmark.
+// The fourth argument is a unary function that warns if the result
+// returned by the benchmark is incorrect.
+//
+// Example:
+// RunBenchmark("new Array()",
+// 1,
+// function () { new Array(1000000); }
+// function (v) {
+// return (v instanceof Array) && (v.length == 1000000);
+// });
+
+SC_DEFAULT_OUT = new sc_GenericOutputPort(function(s) {});
+SC_ERROR_OUT = SC_DEFAULT_OUT;
+
+function RunBenchmark(name, count, run, warn) {
+ for (var n = 0; n < count; ++n) {
+ result = run();
+ if (!warn(result)) {
+ throw new Error("Earley or Boyer did incorrect number of rewrites");
+ }
+ }
+}
+
+var BgL_runzd2benchmarkzd2 = RunBenchmark;
+
+for (var i = 0; i < 4; ++i) {
+ BgL_earleyzd2benchmarkzd2();
+ BgL_nboyerzd2benchmarkzd2();
+}
diff --git a/PerformanceTests/SunSpider/tests/v8-v4/v8-raytrace.js b/PerformanceTests/SunSpider/tests/v8-v4/v8-raytrace.js
new file mode 100644
index 000000000..0a7a2922d
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v4/v8-raytrace.js
@@ -0,0 +1,933 @@
+// The ray tracer code in this file is written by Adam Burmister. It
+// is available in its original form from:
+//
+// http://labs.flog.nz.co/raytracer/
+//
+// It has been modified slightly by Google to work as a standalone
+// benchmark, but the all the computational code remains
+// untouched. This file also contains a copy of parts of the Prototype
+// JavaScript framework which is used by the ray tracer.
+
+// Variable used to hold a number that can be used to verify that
+// the scene was ray traced correctly.
+var checkNumber;
+
+
+// ------------------------------------------------------------------------
+// ------------------------------------------------------------------------
+
+// The following is a copy of parts of the Prototype JavaScript library:
+
+// Prototype JavaScript framework, version 1.5.0
+// (c) 2005-2007 Sam Stephenson
+//
+// Prototype is freely distributable under the terms of an MIT-style license.
+// For details, see the Prototype web site: http://prototype.conio.net/
+
+
+var Class = {
+ create: function() {
+ return function() {
+ this.initialize.apply(this, arguments);
+ }
+ }
+};
+
+
+Object.extend = function(destination, source) {
+ for (var property in source) {
+ destination[property] = source[property];
+ }
+ return destination;
+};
+
+
+// ------------------------------------------------------------------------
+// ------------------------------------------------------------------------
+
+// The rest of this file is the actual ray tracer written by Adam
+// Burmister. It's a concatenation of the following files:
+//
+// flog/color.js
+// flog/light.js
+// flog/vector.js
+// flog/ray.js
+// flog/scene.js
+// flog/material/basematerial.js
+// flog/material/solid.js
+// flog/material/chessboard.js
+// flog/shape/baseshape.js
+// flog/shape/sphere.js
+// flog/shape/plane.js
+// flog/intersectioninfo.js
+// flog/camera.js
+// flog/background.js
+// flog/engine.js
+
+
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Color = Class.create();
+
+Flog.RayTracer.Color.prototype = {
+ red : 0.0,
+ green : 0.0,
+ blue : 0.0,
+
+ initialize : function(r, g, b) {
+ if(!r) r = 0.0;
+ if(!g) g = 0.0;
+ if(!b) b = 0.0;
+
+ this.red = r;
+ this.green = g;
+ this.blue = b;
+ },
+
+ add : function(c1, c2){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red + c2.red;
+ result.green = c1.green + c2.green;
+ result.blue = c1.blue + c2.blue;
+
+ return result;
+ },
+
+ addScalar: function(c1, s){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red + s;
+ result.green = c1.green + s;
+ result.blue = c1.blue + s;
+
+ result.limit();
+
+ return result;
+ },
+
+ subtract: function(c1, c2){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red - c2.red;
+ result.green = c1.green - c2.green;
+ result.blue = c1.blue - c2.blue;
+
+ return result;
+ },
+
+ multiply : function(c1, c2) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red * c2.red;
+ result.green = c1.green * c2.green;
+ result.blue = c1.blue * c2.blue;
+
+ return result;
+ },
+
+ multiplyScalar : function(c1, f) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red * f;
+ result.green = c1.green * f;
+ result.blue = c1.blue * f;
+
+ return result;
+ },
+
+ divideFactor : function(c1, f) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red / f;
+ result.green = c1.green / f;
+ result.blue = c1.blue / f;
+
+ return result;
+ },
+
+ limit: function(){
+ this.red = (this.red > 0.0) ? ( (this.red > 1.0) ? 1.0 : this.red ) : 0.0;
+ this.green = (this.green > 0.0) ? ( (this.green > 1.0) ? 1.0 : this.green ) : 0.0;
+ this.blue = (this.blue > 0.0) ? ( (this.blue > 1.0) ? 1.0 : this.blue ) : 0.0;
+ },
+
+ distance : function(color) {
+ var d = Math.abs(this.red - color.red) + Math.abs(this.green - color.green) + Math.abs(this.blue - color.blue);
+ return d;
+ },
+
+ blend: function(c1, c2, w){
+ var result = new Flog.RayTracer.Color(0,0,0);
+ result = Flog.RayTracer.Color.prototype.add(
+ Flog.RayTracer.Color.prototype.multiplyScalar(c1, 1 - w),
+ Flog.RayTracer.Color.prototype.multiplyScalar(c2, w)
+ );
+ return result;
+ },
+
+ brightness : function() {
+ var r = Math.floor(this.red*255);
+ var g = Math.floor(this.green*255);
+ var b = Math.floor(this.blue*255);
+ return (r * 77 + g * 150 + b * 29) >> 8;
+ },
+
+ toString : function () {
+ var r = Math.floor(this.red*255);
+ var g = Math.floor(this.green*255);
+ var b = Math.floor(this.blue*255);
+
+ return "rgb("+ r +","+ g +","+ b +")";
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Light = Class.create();
+
+Flog.RayTracer.Light.prototype = {
+ position: null,
+ color: null,
+ intensity: 10.0,
+
+ initialize : function(pos, color, intensity) {
+ this.position = pos;
+ this.color = color;
+ this.intensity = (intensity ? intensity : 10.0);
+ },
+
+ getIntensity: function(distance){
+ if(distance >= intensity) return 0;
+
+ return Math.pow((intensity - distance) / strength, 0.2);
+ },
+
+ toString : function () {
+ return 'Light [' + this.position.x + ',' + this.position.y + ',' + this.position.z + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Vector = Class.create();
+
+Flog.RayTracer.Vector.prototype = {
+ x : 0.0,
+ y : 0.0,
+ z : 0.0,
+
+ initialize : function(x, y, z) {
+ this.x = (x ? x : 0);
+ this.y = (y ? y : 0);
+ this.z = (z ? z : 0);
+ },
+
+ copy: function(vector){
+ this.x = vector.x;
+ this.y = vector.y;
+ this.z = vector.z;
+ },
+
+ normalize : function() {
+ var m = this.magnitude();
+ return new Flog.RayTracer.Vector(this.x / m, this.y / m, this.z / m);
+ },
+
+ magnitude : function() {
+ return Math.sqrt((this.x * this.x) + (this.y * this.y) + (this.z * this.z));
+ },
+
+ cross : function(w) {
+ return new Flog.RayTracer.Vector(
+ -this.z * w.y + this.y * w.z,
+ this.z * w.x - this.x * w.z,
+ -this.y * w.x + this.x * w.y);
+ },
+
+ dot : function(w) {
+ return this.x * w.x + this.y * w.y + this.z * w.z;
+ },
+
+ add : function(v, w) {
+ return new Flog.RayTracer.Vector(w.x + v.x, w.y + v.y, w.z + v.z);
+ },
+
+ subtract : function(v, w) {
+ if(!w || !v) throw 'Vectors must be defined [' + v + ',' + w + ']';
+ return new Flog.RayTracer.Vector(v.x - w.x, v.y - w.y, v.z - w.z);
+ },
+
+ multiplyVector : function(v, w) {
+ return new Flog.RayTracer.Vector(v.x * w.x, v.y * w.y, v.z * w.z);
+ },
+
+ multiplyScalar : function(v, w) {
+ return new Flog.RayTracer.Vector(v.x * w, v.y * w, v.z * w);
+ },
+
+ toString : function () {
+ return 'Vector [' + this.x + ',' + this.y + ',' + this.z + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Ray = Class.create();
+
+Flog.RayTracer.Ray.prototype = {
+ position : null,
+ direction : null,
+ initialize : function(pos, dir) {
+ this.position = pos;
+ this.direction = dir;
+ },
+
+ toString : function () {
+ return 'Ray [' + this.position + ',' + this.direction + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Scene = Class.create();
+
+Flog.RayTracer.Scene.prototype = {
+ camera : null,
+ shapes : [],
+ lights : [],
+ background : null,
+
+ initialize : function() {
+ this.camera = new Flog.RayTracer.Camera(
+ new Flog.RayTracer.Vector(0,0,-5),
+ new Flog.RayTracer.Vector(0,0,1),
+ new Flog.RayTracer.Vector(0,1,0)
+ );
+ this.shapes = new Array();
+ this.lights = new Array();
+ this.background = new Flog.RayTracer.Background(new Flog.RayTracer.Color(0,0,0.5), 0.2);
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Material) == 'undefined') Flog.RayTracer.Material = {};
+
+Flog.RayTracer.Material.BaseMaterial = Class.create();
+
+Flog.RayTracer.Material.BaseMaterial.prototype = {
+
+ gloss: 2.0, // [0...infinity] 0 = matt
+ transparency: 0.0, // 0=opaque
+ reflection: 0.0, // [0...infinity] 0 = no reflection
+ refraction: 0.50,
+ hasTexture: false,
+
+ initialize : function() {
+
+ },
+
+ getColor: function(u, v){
+
+ },
+
+ wrapUp: function(t){
+ t = t % 2.0;
+ if(t < -1) t += 2.0;
+ if(t >= 1) t -= 2.0;
+ return t;
+ },
+
+ toString : function () {
+ return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Material.Solid = Class.create();
+
+Flog.RayTracer.Material.Solid.prototype = Object.extend(
+ new Flog.RayTracer.Material.BaseMaterial(), {
+ initialize : function(color, reflection, refraction, transparency, gloss) {
+ this.color = color;
+ this.reflection = reflection;
+ this.transparency = transparency;
+ this.gloss = gloss;
+ this.hasTexture = false;
+ },
+
+ getColor: function(u, v){
+ return this.color;
+ },
+
+ toString : function () {
+ return 'SolidMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+ }
+);
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Material.Chessboard = Class.create();
+
+Flog.RayTracer.Material.Chessboard.prototype = Object.extend(
+ new Flog.RayTracer.Material.BaseMaterial(), {
+ colorEven: null,
+ colorOdd: null,
+ density: 0.5,
+
+ initialize : function(colorEven, colorOdd, reflection, transparency, gloss, density) {
+ this.colorEven = colorEven;
+ this.colorOdd = colorOdd;
+ this.reflection = reflection;
+ this.transparency = transparency;
+ this.gloss = gloss;
+ this.density = density;
+ this.hasTexture = true;
+ },
+
+ getColor: function(u, v){
+ var t = this.wrapUp(u * this.density) * this.wrapUp(v * this.density);
+
+ if(t < 0.0)
+ return this.colorEven;
+ else
+ return this.colorOdd;
+ },
+
+ toString : function () {
+ return 'ChessMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+ }
+);
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.BaseShape = Class.create();
+
+Flog.RayTracer.Shape.BaseShape.prototype = {
+ position: null,
+ material: null,
+
+ initialize : function() {
+ this.position = new Vector(0,0,0);
+ this.material = new Flog.RayTracer.Material.SolidMaterial(
+ new Flog.RayTracer.Color(1,0,1),
+ 0,
+ 0,
+ 0
+ );
+ },
+
+ toString : function () {
+ return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.Sphere = Class.create();
+
+Flog.RayTracer.Shape.Sphere.prototype = {
+ initialize : function(pos, radius, material) {
+ this.radius = radius;
+ this.position = pos;
+ this.material = material;
+ },
+
+ intersect: function(ray){
+ var info = new Flog.RayTracer.IntersectionInfo();
+ info.shape = this;
+
+ var dst = Flog.RayTracer.Vector.prototype.subtract(ray.position, this.position);
+
+ var B = dst.dot(ray.direction);
+ var C = dst.dot(dst) - (this.radius * this.radius);
+ var D = (B * B) - C;
+
+ if(D > 0){ // intersection!
+ info.isHit = true;
+ info.distance = (-B) - Math.sqrt(D);
+ info.position = Flog.RayTracer.Vector.prototype.add(
+ ray.position,
+ Flog.RayTracer.Vector.prototype.multiplyScalar(
+ ray.direction,
+ info.distance
+ )
+ );
+ info.normal = Flog.RayTracer.Vector.prototype.subtract(
+ info.position,
+ this.position
+ ).normalize();
+
+ info.color = this.material.getColor(0,0);
+ } else {
+ info.isHit = false;
+ }
+ return info;
+ },
+
+ toString : function () {
+ return 'Sphere [position=' + this.position + ', radius=' + this.radius + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.Plane = Class.create();
+
+Flog.RayTracer.Shape.Plane.prototype = {
+ d: 0.0,
+
+ initialize : function(pos, d, material) {
+ this.position = pos;
+ this.d = d;
+ this.material = material;
+ },
+
+ intersect: function(ray){
+ var info = new Flog.RayTracer.IntersectionInfo();
+
+ var Vd = this.position.dot(ray.direction);
+ if(Vd == 0) return info; // no intersection
+
+ var t = -(this.position.dot(ray.position) + this.d) / Vd;
+ if(t <= 0) return info;
+
+ info.shape = this;
+ info.isHit = true;
+ info.position = Flog.RayTracer.Vector.prototype.add(
+ ray.position,
+ Flog.RayTracer.Vector.prototype.multiplyScalar(
+ ray.direction,
+ t
+ )
+ );
+ info.normal = this.position;
+ info.distance = t;
+
+ if(this.material.hasTexture){
+ var vU = new Flog.RayTracer.Vector(this.position.y, this.position.z, -this.position.x);
+ var vV = vU.cross(this.position);
+ var u = info.position.dot(vU);
+ var v = info.position.dot(vV);
+ info.color = this.material.getColor(u,v);
+ } else {
+ info.color = this.material.getColor(0,0);
+ }
+
+ return info;
+ },
+
+ toString : function () {
+ return 'Plane [' + this.position + ', d=' + this.d + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.IntersectionInfo = Class.create();
+
+Flog.RayTracer.IntersectionInfo.prototype = {
+ isHit: false,
+ hitCount: 0,
+ shape: null,
+ position: null,
+ normal: null,
+ color: null,
+ distance: null,
+
+ initialize : function() {
+ this.color = new Flog.RayTracer.Color(0,0,0);
+ },
+
+ toString : function () {
+ return 'Intersection [' + this.position + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Camera = Class.create();
+
+Flog.RayTracer.Camera.prototype = {
+ position: null,
+ lookAt: null,
+ equator: null,
+ up: null,
+ screen: null,
+
+ initialize : function(pos, lookAt, up) {
+ this.position = pos;
+ this.lookAt = lookAt;
+ this.up = up;
+ this.equator = lookAt.normalize().cross(this.up);
+ this.screen = Flog.RayTracer.Vector.prototype.add(this.position, this.lookAt);
+ },
+
+ getRay: function(vx, vy){
+ var pos = Flog.RayTracer.Vector.prototype.subtract(
+ this.screen,
+ Flog.RayTracer.Vector.prototype.subtract(
+ Flog.RayTracer.Vector.prototype.multiplyScalar(this.equator, vx),
+ Flog.RayTracer.Vector.prototype.multiplyScalar(this.up, vy)
+ )
+ );
+ pos.y = pos.y * -1;
+ var dir = Flog.RayTracer.Vector.prototype.subtract(
+ pos,
+ this.position
+ );
+
+ var ray = new Flog.RayTracer.Ray(pos, dir.normalize());
+
+ return ray;
+ },
+
+ toString : function () {
+ return 'Ray []';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Background = Class.create();
+
+Flog.RayTracer.Background.prototype = {
+ color : null,
+ ambience : 0.0,
+
+ initialize : function(color, ambience) {
+ this.color = color;
+ this.ambience = ambience;
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Engine = Class.create();
+
+Flog.RayTracer.Engine.prototype = {
+ canvas: null, /* 2d context we can render to */
+
+ initialize: function(options){
+ this.options = Object.extend({
+ canvasHeight: 100,
+ canvasWidth: 100,
+ pixelWidth: 2,
+ pixelHeight: 2,
+ renderDiffuse: false,
+ renderShadows: false,
+ renderHighlights: false,
+ renderReflections: false,
+ rayDepth: 2
+ }, options || {});
+
+ this.options.canvasHeight /= this.options.pixelHeight;
+ this.options.canvasWidth /= this.options.pixelWidth;
+
+ /* TODO: dynamically include other scripts */
+ },
+
+ setPixel: function(x, y, color){
+ var pxW, pxH;
+ pxW = this.options.pixelWidth;
+ pxH = this.options.pixelHeight;
+
+ if (this.canvas) {
+ this.canvas.fillStyle = color.toString();
+ this.canvas.fillRect (x * pxW, y * pxH, pxW, pxH);
+ } else {
+ if (x === y) {
+ checkNumber += color.brightness();
+ }
+ // print(x * pxW, y * pxH, pxW, pxH);
+ }
+ },
+
+ renderScene: function(scene, canvas){
+ checkNumber = 0;
+ /* Get canvas */
+ if (canvas) {
+ this.canvas = canvas.getContext("2d");
+ } else {
+ this.canvas = null;
+ }
+
+ var canvasHeight = this.options.canvasHeight;
+ var canvasWidth = this.options.canvasWidth;
+
+ for(var y=0; y < canvasHeight; y++){
+ for(var x=0; x < canvasWidth; x++){
+ var yp = y * 1.0 / canvasHeight * 2 - 1;
+ var xp = x * 1.0 / canvasWidth * 2 - 1;
+
+ var ray = scene.camera.getRay(xp, yp);
+
+ var color = this.getPixelColor(ray, scene);
+
+ this.setPixel(x, y, color);
+ }
+ }
+ if (checkNumber !== 2321) {
+ throw new Error("Scene rendered incorrectly");
+ }
+ },
+
+ getPixelColor: function(ray, scene){
+ var info = this.testIntersection(ray, scene, null);
+ if(info.isHit){
+ var color = this.rayTrace(info, ray, scene, 0);
+ return color;
+ }
+ return scene.background.color;
+ },
+
+ testIntersection: function(ray, scene, exclude){
+ var hits = 0;
+ var best = new Flog.RayTracer.IntersectionInfo();
+ best.distance = 2000;
+
+ for(var i=0; i<scene.shapes.length; i++){
+ var shape = scene.shapes[i];
+
+ if(shape != exclude){
+ var info = shape.intersect(ray);
+ if(info.isHit && info.distance >= 0 && info.distance < best.distance){
+ best = info;
+ hits++;
+ }
+ }
+ }
+ best.hitCount = hits;
+ return best;
+ },
+
+ getReflectionRay: function(P,N,V){
+ var c1 = -N.dot(V);
+ var R1 = Flog.RayTracer.Vector.prototype.add(
+ Flog.RayTracer.Vector.prototype.multiplyScalar(N, 2*c1),
+ V
+ );
+ return new Flog.RayTracer.Ray(P, R1);
+ },
+
+ rayTrace: function(info, ray, scene, depth){
+ // Calc ambient
+ var color = Flog.RayTracer.Color.prototype.multiplyScalar(info.color, scene.background.ambience);
+ var oldColor = color;
+ var shininess = Math.pow(10, info.shape.material.gloss + 1);
+
+ for(var i=0; i<scene.lights.length; i++){
+ var light = scene.lights[i];
+
+ // Calc diffuse lighting
+ var v = Flog.RayTracer.Vector.prototype.subtract(
+ light.position,
+ info.position
+ ).normalize();
+
+ if(this.options.renderDiffuse){
+ var L = v.dot(info.normal);
+ if(L > 0.0){
+ color = Flog.RayTracer.Color.prototype.add(
+ color,
+ Flog.RayTracer.Color.prototype.multiply(
+ info.color,
+ Flog.RayTracer.Color.prototype.multiplyScalar(
+ light.color,
+ L
+ )
+ )
+ );
+ }
+ }
+
+ // The greater the depth the more accurate the colours, but
+ // this is exponentially (!) expensive
+ if(depth <= this.options.rayDepth){
+ // calculate reflection ray
+ if(this.options.renderReflections && info.shape.material.reflection > 0)
+ {
+ var reflectionRay = this.getReflectionRay(info.position, info.normal, ray.direction);
+ var refl = this.testIntersection(reflectionRay, scene, info.shape);
+
+ if (refl.isHit && refl.distance > 0){
+ refl.color = this.rayTrace(refl, reflectionRay, scene, depth + 1);
+ } else {
+ refl.color = scene.background.color;
+ }
+
+ color = Flog.RayTracer.Color.prototype.blend(
+ color,
+ refl.color,
+ info.shape.material.reflection
+ );
+ }
+
+ // Refraction
+ /* TODO */
+ }
+
+ /* Render shadows and highlights */
+
+ var shadowInfo = new Flog.RayTracer.IntersectionInfo();
+
+ if(this.options.renderShadows){
+ var shadowRay = new Flog.RayTracer.Ray(info.position, v);
+
+ shadowInfo = this.testIntersection(shadowRay, scene, info.shape);
+ if(shadowInfo.isHit && shadowInfo.shape != info.shape /*&& shadowInfo.shape.type != 'PLANE'*/){
+ var vA = Flog.RayTracer.Color.prototype.multiplyScalar(color, 0.5);
+ var dB = (0.5 * Math.pow(shadowInfo.shape.material.transparency, 0.5));
+ color = Flog.RayTracer.Color.prototype.addScalar(vA,dB);
+ }
+ }
+
+ // Phong specular highlights
+ if(this.options.renderHighlights && !shadowInfo.isHit && info.shape.material.gloss > 0){
+ var Lv = Flog.RayTracer.Vector.prototype.subtract(
+ info.shape.position,
+ light.position
+ ).normalize();
+
+ var E = Flog.RayTracer.Vector.prototype.subtract(
+ scene.camera.position,
+ info.shape.position
+ ).normalize();
+
+ var H = Flog.RayTracer.Vector.prototype.subtract(
+ E,
+ Lv
+ ).normalize();
+
+ var glossWeight = Math.pow(Math.max(info.normal.dot(H), 0), shininess);
+ color = Flog.RayTracer.Color.prototype.add(
+ Flog.RayTracer.Color.prototype.multiplyScalar(light.color, glossWeight),
+ color
+ );
+ }
+ }
+ color.limit();
+ return color;
+ }
+};
+
+
+function renderScene(){
+ var scene = new Flog.RayTracer.Scene();
+
+ scene.camera = new Flog.RayTracer.Camera(
+ new Flog.RayTracer.Vector(0, 0, -15),
+ new Flog.RayTracer.Vector(-0.2, 0, 5),
+ new Flog.RayTracer.Vector(0, 1, 0)
+ );
+
+ scene.background = new Flog.RayTracer.Background(
+ new Flog.RayTracer.Color(0.5, 0.5, 0.5),
+ 0.4
+ );
+
+ var sphere = new Flog.RayTracer.Shape.Sphere(
+ new Flog.RayTracer.Vector(-1.5, 1.5, 2),
+ 1.5,
+ new Flog.RayTracer.Material.Solid(
+ new Flog.RayTracer.Color(0,0.5,0.5),
+ 0.3,
+ 0.0,
+ 0.0,
+ 2.0
+ )
+ );
+
+ var sphere1 = new Flog.RayTracer.Shape.Sphere(
+ new Flog.RayTracer.Vector(1, 0.25, 1),
+ 0.5,
+ new Flog.RayTracer.Material.Solid(
+ new Flog.RayTracer.Color(0.9,0.9,0.9),
+ 0.1,
+ 0.0,
+ 0.0,
+ 1.5
+ )
+ );
+
+ var plane = new Flog.RayTracer.Shape.Plane(
+ new Flog.RayTracer.Vector(0.1, 0.9, -0.5).normalize(),
+ 1.2,
+ new Flog.RayTracer.Material.Chessboard(
+ new Flog.RayTracer.Color(1,1,1),
+ new Flog.RayTracer.Color(0,0,0),
+ 0.2,
+ 0.0,
+ 1.0,
+ 0.7
+ )
+ );
+
+ scene.shapes.push(plane);
+ scene.shapes.push(sphere);
+ scene.shapes.push(sphere1);
+
+ var light = new Flog.RayTracer.Light(
+ new Flog.RayTracer.Vector(5, 10, -1),
+ new Flog.RayTracer.Color(0.8, 0.8, 0.8)
+ );
+
+ var light1 = new Flog.RayTracer.Light(
+ new Flog.RayTracer.Vector(-3, 5, -15),
+ new Flog.RayTracer.Color(0.8, 0.8, 0.8),
+ 100
+ );
+
+ scene.lights.push(light);
+ scene.lights.push(light1);
+
+ var imageWidth = 100; // $F('imageWidth');
+ var imageHeight = 100; // $F('imageHeight');
+ var pixelSize = "5,5".split(','); // $F('pixelSize').split(',');
+ var renderDiffuse = true; // $F('renderDiffuse');
+ var renderShadows = true; // $F('renderShadows');
+ var renderHighlights = true; // $F('renderHighlights');
+ var renderReflections = true; // $F('renderReflections');
+ var rayDepth = 2;//$F('rayDepth');
+
+ var raytracer = new Flog.RayTracer.Engine(
+ {
+ canvasWidth: imageWidth,
+ canvasHeight: imageHeight,
+ pixelWidth: pixelSize[0],
+ pixelHeight: pixelSize[1],
+ "renderDiffuse": renderDiffuse,
+ "renderHighlights": renderHighlights,
+ "renderShadows": renderShadows,
+ "renderReflections": renderReflections,
+ "rayDepth": rayDepth
+ }
+ );
+
+ raytracer.renderScene(scene, null, 0);
+}
+
+for (var i = 0; i < 6; ++i)
+ renderScene();
diff --git a/PerformanceTests/SunSpider/tests/v8-v4/v8-regexp.js b/PerformanceTests/SunSpider/tests/v8-v4/v8-regexp.js
new file mode 100644
index 000000000..a3ac08180
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v4/v8-regexp.js
@@ -0,0 +1,1613 @@
+// Copyright 2009 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Automatically generated on 2009-01-30.
+
+// This benchmark is generated by loading 50 of the most popular pages
+// on the web and logging all regexp operations performed. Each
+// operation is given a weight that is calculated from an estimate of
+// the popularity of the pages where it occurs and the number of times
+// it is executed while loading each page. Finally the literal
+// letters in the data are encoded using ROT13 in a way that does not
+// affect how the regexps match their input.
+
+function runRegExpBenchmark() {
+ var re0 = /^ba/;
+ var re1 = /(((\w+):\/\/)([^\/:]*)(:(\d+))?)?([^#?]*)(\?([^#]*))?(#(.*))?/;
+ var re2 = /^\s*|\s*$/g;
+ var re3 = /\bQBZPbageby_cynprubyqre\b/;
+ var re4 = /,/;
+ var re5 = /\bQBZPbageby_cynprubyqre\b/g;
+ var re6 = /^[\s\xa0]+|[\s\xa0]+$/g;
+ var re7 = /(\d*)(\D*)/g;
+ var re8 = /=/;
+ var re9 = /(^|\s)lhv\-h(\s|$)/;
+ var str0 = 'Zbmvyyn/5.0 (Jvaqbjf; H; Jvaqbjf AG 5.1; ra-HF) NccyrJroXvg/528.9 (XUGZY, yvxr Trpxb) Puebzr/2.0.157.0 Fnsnev/528.9';
+ var re10 = /\#/g;
+ var re11 = /\./g;
+ var re12 = /'/g;
+ var re13 = /\?[\w\W]*(sevraqvq|punaaryvq|tebhcvq)=([^\&\?#]*)/i;
+ var str1 = 'Fubpxjnir Synfu 9.0 e115';
+ var re14 = /\s+/g;
+ var re15 = /^\s*(\S*(\s+\S+)*)\s*$/;
+ var re16 = /(-[a-z])/i;
+ function runBlock0() {
+ for (var i = 0; i < 6511; i++) {
+ re0.exec('pyvpx');
+ }
+ for (var i = 0; i < 1844; i++) {
+ re1.exec('uggc://jjj.snprobbx.pbz/ybtva.cuc');
+ }
+ for (var i = 0; i < 739; i++) {
+ 'QBZPbageby_cynprubyqre'.replace(re2, '');
+ }
+ for (var i = 0; i < 598; i++) {
+ re1.exec('uggc://jjj.snprobbx.pbz/');
+ }
+ for (var i = 0; i < 454; i++) {
+ re1.exec('uggc://jjj.snprobbx.pbz/fepu.cuc');
+ }
+ for (var i = 0; i < 352; i++) {
+ /qqqq|qqq|qq|q|ZZZZ|ZZZ|ZZ|Z|llll|ll|l|uu|u|UU|U|zz|z|ff|f|gg|g|sss|ss|s|mmm|mm|m/g.exec('qqqq, ZZZ q, llll');
+ }
+ for (var i = 0; i < 312; i++) {
+ re3.exec('vachggrkg QBZPbageby_cynprubyqre');
+ }
+ for (var i = 0; i < 282; i++) {
+ re4.exec('/ZlFcnprUbzrcntr/Vaqrk-FvgrUbzr,10000000');
+ }
+ for (var i = 0; i < 177; i++) {
+ 'vachggrkg'.replace(re5, '');
+ }
+ for (var i = 0; i < 170; i++) {
+ '528.9'.replace(re6, '');
+ re7.exec('528');
+ }
+ for (var i = 0; i < 156; i++) {
+ re8.exec('VCPhygher=ra-HF');
+ re8.exec('CersreerqPhygher=ra-HF');
+ }
+ for (var i = 0; i < 144; i++) {
+ re0.exec('xrlcerff');
+ }
+ for (var i = 0; i < 139; i++) {
+ '521'.replace(re6, '');
+ re7.exec('521');
+ re9.exec('');
+ /JroXvg\/(\S+)/.exec(str0);
+ }
+ for (var i = 0; i < 137; i++) {
+ 'qvi .so_zrah'.replace(re10, '');
+ 'qvi .so_zrah'.replace(/\[/g, '');
+ 'qvi.so_zrah'.replace(re11, '');
+ }
+ for (var i = 0; i < 117; i++) {
+ 'uvqqra_ryrz'.replace(re2, '');
+ }
+ for (var i = 0; i < 95; i++) {
+ /(?:^|;)\s*sevraqfgre_ynat=([^;]*)/.exec('sevraqfgre_naba=nvq%3Qn6ss9p85n868ro9s059pn854735956o3%26ers%3Q%26df%3Q%26vpgl%3QHF');
+ }
+ for (var i = 0; i < 93; i++) {
+ 'uggc://ubzr.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ re13.exec('uggc://ubzr.zlfcnpr.pbz/vaqrk.psz');
+ }
+ for (var i = 0; i < 92; i++) {
+ str1.replace(/([a-zA-Z]|\s)+/, '');
+ }
+ for (var i = 0; i < 85; i++) {
+ 'svefg'.replace(re14, '');
+ 'svefg'.replace(re15, '');
+ 'uggc://cebsvyr.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ 'ynfg'.replace(re14, '');
+ 'ynfg'.replace(re15, '');
+ re16.exec('qvfcynl');
+ re13.exec('uggc://cebsvyr.zlfcnpr.pbz/vaqrk.psz');
+ }
+ }
+ var re17 = /(^|[^\\])\"\\\/Qngr\((-?[0-9]+)\)\\\/\"/g;
+ var str2 = '{"anzr":"","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":gehr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"\xa4","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":gehr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, qq ZZZZ llll UU:zz:ff","YbatQngrCnggrea":"qqqq, qq ZZZZ llll","YbatGvzrCnggrea":"UU:zz:ff","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU\':\'zz\':\'ff \'TZG\'","FubegQngrCnggrea":"ZZ/qq/llll","FubegGvzrCnggrea":"UU:zz","FbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq\'G\'UU\':\'zz\':\'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq UU\':\'zz\':\'ff\'M\'","LrneZbaguCnggrea":"llll ZZZZ","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":gehr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}';
+ var str3 = '{"anzr":"ra-HF","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":snyfr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"$","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":snyfr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, ZZZZ qq, llll u:zz:ff gg","YbatQngrCnggrea":"qqqq, ZZZZ qq, llll","YbatGvzrCnggrea":"u:zz:ff gg","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU\':\'zz\':\'ff \'TZG\'","FubegQngrCnggrea":"Z/q/llll","FubegGvzrCnggrea":"u:zz gg","FbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq\'G\'UU\':\'zz\':\'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq UU\':\'zz\':\'ff\'M\'","LrneZbaguCnggrea":"ZZZZ, llll","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":snyfr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}';
+ var str4 = 'HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str5 = 'HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var re18 = /^\s+|\s+$/g;
+ var str6 = 'uggc://jjj.snprobbx.pbz/vaqrk.cuc';
+ var re19 = /(?:^|\s+)ba(?:\s+|$)/;
+ var re20 = /[+, ]/;
+ var re21 = /ybnqrq|pbzcyrgr/;
+ var str7 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(d1)c=d1.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+d1.Cnaryf[c].Jvqgu,o=g+d1.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(d1&&d1.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(d1)d1.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(d1)d1.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;d1.IjTc=d2(n,c){ine nq=d1;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;d1.IjTpy=d2(n,c,p){ine cn=d1.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;d1.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;d1.IjYvzvg1=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;d1.IjYvzvg0=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;d1.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",d1.rvsg);};;d1.IjNavzSHC=d2(n,c){ine nq=d1;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;d1.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;d1.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;d1.IjPnapryNyyGvzrbhgf=d2(n){vs(d1.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<d1.bac;c++)IjPnapryGvzrbhg(n,c);};;d1.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;d1.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;d1.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<d1.bac;c++)IjErfrgGvzrbhg(n,c);};;d1.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare(\'"+rig+"\',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;d1.IjPyrnaHc=d2(n){IjCvat(n,"G");ine nq=d1;sbe(ine v=0;v<nq.Cnaryf.yratgu;v++){IjUvqrCnary(n,v,gehr);}gel{IjTrgBow(nq.gya).vaareUGZY="";}pngpu(r){}vs(nq.gya!=nq.gya2)gel{IjTrgBow(nq.gya2).vaareUGZY="";}pngpu(r){}gel{d1=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"haybnq","IjHayNQ_VQ");}pngpu(r){}gel{jvaqbj.IjHayNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"fpebyy","IjFeNQ_VQ");}pngpu(r){}gel{jvaqbj.IjFeNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"erfvmr","IjEmNQ_VQ");}pngpu(r){}gel{jvaqbj.IjEmNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n';
+ var str8 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=shapgvba(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=shapgvba(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=shapgvba(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=shapgvba(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=shapgvba(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=shapgvba(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=shapgvba(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=shapgvba(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbir';
+ var str9 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=d2(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=d2(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare(\'"+rig+"\',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjPyrna';
+ function runBlock1() {
+ for (var i = 0; i < 81; i++) {
+ re8.exec('VC=74.125.75.1');
+ }
+ for (var i = 0; i < 78; i++) {
+ '9.0 e115'.replace(/(\s)+e/, '');
+ 'k'.replace(/./, '');
+ str2.replace(re17, '');
+ str3.replace(re17, '');
+ re8.exec('144631658');
+ re8.exec('Pbhagel=IIZ%3Q');
+ re8.exec('Pbhagel=IIZ=');
+ re8.exec('CersreerqPhygherCraqvat=');
+ re8.exec(str4);
+ re8.exec(str5);
+ re8.exec('__hgzp=144631658');
+ re8.exec('gvzrMbar=-8');
+ re8.exec('gvzrMbar=0');
+ /Fnsnev\/(\d+\.\d+)/.exec(str0);
+ re3.exec('vachggrkg QBZPbageby_cynprubyqre');
+ re0.exec('xrlqbja');
+ re0.exec('xrlhc');
+ }
+ for (var i = 0; i < 77; i++) {
+ 'uggc://zrffntvat.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ re13.exec('uggc://zrffntvat.zlfcnpr.pbz/vaqrk.psz');
+ }
+ for (var i = 0; i < 73; i++) {
+ 'FrffvbaFgbentr=%7O%22GnoThvq%22%3N%7O%22thvq%22%3N1231367125017%7Q%7Q'.replace(re18, '');
+ }
+ for (var i = 0; i < 72; i++) {
+ re1.exec(str6);
+ }
+ for (var i = 0; i < 71; i++) {
+ re19.exec('');
+ }
+ for (var i = 0; i < 70; i++) {
+ '3.5.0.0'.replace(re11, '');
+ str7.replace(/d1/g, '');
+ str8.replace(/NQ_VQ/g, '');
+ str9.replace(/d2/g, '');
+ 'NI%3Q1_CI%3Q1_PI%3Q1_EI%3Q1_HI%3Q1_HP%3Q1_IC%3Q0.0.0.0_IH%3Q0'.replace(/_/g, '');
+ 'svz_zlfcnpr_ubzrcntr_abgybttrqva,svz_zlfcnpr_aba_HTP,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+ re21.exec('ybnqvat');
+ }
+ for (var i = 0; i < 68; i++) {
+ re1.exec('#');
+ /(?:ZFVR.(\d+\.\d+))|(?:(?:Sversbk|TenaCnenqvfb|Vprjrnfry).(\d+\.\d+))|(?:Bcren.(\d+\.\d+))|(?:NccyrJroXvg.(\d+(?:\.\d+)?))/.exec(str0);
+ /(Znp BF K)|(Jvaqbjf;)/.exec(str0);
+ /Trpxb\/([0-9]+)/.exec(str0);
+ re21.exec('ybnqrq');
+ }
+ for (var i = 0; i < 49; i++) {
+ re16.exec('pbybe');
+ }
+ for (var i = 0; i < 44; i++) {
+ 'uggc://sevraqf.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ re13.exec('uggc://sevraqf.zlfcnpr.pbz/vaqrk.psz');
+ }
+ }
+ var re22 = /\bso_zrah\b/;
+ var re23 = /^(?:(?:[^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/;
+ var re24 = /uggcf?:\/\/([^\/]+\.)?snprobbx\.pbz\//;
+ var re25 = /"/g;
+ var re26 = /^([^?#]+)(?:\?([^#]*))?(#.*)?/;
+ function runBlock2() {
+ for (var i = 0; i < 40; i++) {
+ 'fryrpgrq'.replace(re14, '');
+ 'fryrpgrq'.replace(re15, '');
+ }
+ for (var i = 0; i < 39; i++) {
+ 'vachggrkg uvqqra_ryrz'.replace(/\buvqqra_ryrz\b/g, '');
+ re3.exec('vachggrkg ');
+ re3.exec('vachggrkg');
+ re22.exec('HVYvaxOhggba');
+ re22.exec('HVYvaxOhggba_E');
+ re22.exec('HVYvaxOhggba_EJ');
+ re22.exec('zrah_ybtva_pbagnvare');
+ /\buvqqra_ryrz\b/.exec('vachgcnffjbeq');
+ }
+ for (var i = 0; i < 37; i++) {
+ re8.exec('111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904');
+ re8.exec('SbeprqRkcvengvba=633669315660164980');
+ re8.exec('FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904');
+ }
+ for (var i = 0; i < 35; i++) {
+ 'puvyq p1 svefg'.replace(re14, '');
+ 'puvyq p1 svefg'.replace(re15, '');
+ 'sylbhg pybfrq'.replace(re14, '');
+ 'sylbhg pybfrq'.replace(re15, '');
+ }
+ for (var i = 0; i < 34; i++) {
+ re19.exec('gno2');
+ re19.exec('gno3');
+ re8.exec('44132r503660');
+ re8.exec('SbeprqRkcvengvba=633669316860113296');
+ re8.exec('AFP_zp_dfctwzs-aowb_80=44132r503660');
+ re8.exec('FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696');
+ re8.exec('s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696');
+ }
+ for (var i = 0; i < 32; i++) {
+ /puebzr/i.exec(str0);
+ }
+ for (var i = 0; i < 31; i++) {
+ 'uggc://jjj.snprobbx.pbz/'.replace(re23, '');
+ re8.exec('SbeprqRkcvengvba=633669358527244818');
+ re8.exec('VC=66.249.85.130');
+ re8.exec('FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58');
+ re8.exec('s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58');
+ re24.exec('uggc://jjj.snprobbx.pbz/');
+ }
+ for (var i = 0; i < 30; i++) {
+ '419'.replace(re6, '');
+ /(?:^|\s+)gvzrfgnzc(?:\s+|$)/.exec('gvzrfgnzc');
+ re7.exec('419');
+ }
+ for (var i = 0; i < 29; i++) {
+ 'uggc://jjj.snprobbx.pbz/ybtva.cuc'.replace(re23, '');
+ }
+ for (var i = 0; i < 28; i++) {
+ 'Funer guvf tnqtrg'.replace(re25, '');
+ 'Funer guvf tnqtrg'.replace(re12, '');
+ re26.exec('uggc://jjj.tbbtyr.pbz/vt/qverpgbel');
+ }
+ }
+ var re27 = /-\D/g;
+ var re28 = /\bnpgvingr\b/;
+ var re29 = /%2R/gi;
+ var re30 = /%2S/gi;
+ var re31 = /^(mu-(PA|GJ)|wn|xb)$/;
+ var re32 = /\s?;\s?/;
+ var re33 = /%\w?$/;
+ var re34 = /TNQP=([^;]*)/i;
+ var str10 = 'FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str11 = 'FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; __hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1; __hgzo=144631658.0.10.1231363570; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str12 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363514065&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363514065&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Subzr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1326469221.1231363557&tn_fvq=1231363557&tn_uvq=1114636509&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str13 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str14 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var re35 = /[<>]/g;
+ var str15 = 'FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=44132r503660';
+ var str16 = 'FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; AFP_zp_dfctwzs-aowb_80=44132r503660; __hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1; __hgzo=144631658.0.10.1231363638; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str17 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363621014&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363621014&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=348699119.1231363624&tn_fvq=1231363624&tn_uvq=895511034&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str18 = 'uggc://jjj.yrobapbva.se/yv';
+ var str19 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str20 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ function runBlock3() {
+ for (var i = 0; i < 27; i++) {
+ 'e115'.replace(/[A-Za-z]/g, '');
+ }
+ for (var i = 0; i < 23; i++) {
+ 'qvfcynl'.replace(re27, '');
+ 'cbfvgvba'.replace(re27, '');
+ }
+ for (var i = 0; i < 22; i++) {
+ 'unaqyr'.replace(re14, '');
+ 'unaqyr'.replace(re15, '');
+ 'yvar'.replace(re14, '');
+ 'yvar'.replace(re15, '');
+ 'cnerag puebzr6 fvatyr1 gno'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1 gno'.replace(re15, '');
+ 'fyvqre'.replace(re14, '');
+ 'fyvqre'.replace(re15, '');
+ re28.exec('');
+ }
+ for (var i = 0; i < 21; i++) {
+ 'uggc://jjj.zlfcnpr.pbz/'.replace(re12, '');
+ re13.exec('uggc://jjj.zlfcnpr.pbz/');
+ }
+ for (var i = 0; i < 20; i++) {
+ 'cntrivrj'.replace(re29, '');
+ 'cntrivrj'.replace(re30, '');
+ re19.exec('ynfg');
+ re19.exec('ba svefg');
+ re8.exec('VC=74.125.75.3');
+ }
+ for (var i = 0; i < 19; i++) {
+ re31.exec('ra');
+ }
+ for (var i = 0; i < 18; i++) {
+ str10.split(re32);
+ str11.split(re32);
+ str12.replace(re33, '');
+ re8.exec('144631658.0.10.1231363570');
+ re8.exec('144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.3426875219718084000.1231363570.1231363570.1231363570.1');
+ re8.exec(str13);
+ re8.exec(str14);
+ re8.exec('__hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1');
+ re8.exec('__hgzo=144631658.0.10.1231363570');
+ re8.exec('__hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str10);
+ re34.exec(str11);
+ }
+ for (var i = 0; i < 17; i++) {
+ str0.match(/zfvr/gi);
+ str0.match(/bcren/gi);
+ str15.split(re32);
+ str16.split(re32);
+ 'ohggba'.replace(re14, '');
+ 'ohggba'.replace(re15, '');
+ 'puvyq p1 svefg sylbhg pybfrq'.replace(re14, '');
+ 'puvyq p1 svefg sylbhg pybfrq'.replace(re15, '');
+ 'pvgvrf'.replace(re14, '');
+ 'pvgvrf'.replace(re15, '');
+ 'pybfrq'.replace(re14, '');
+ 'pybfrq'.replace(re15, '');
+ 'qry'.replace(re14, '');
+ 'qry'.replace(re15, '');
+ 'uqy_zba'.replace(re14, '');
+ 'uqy_zba'.replace(re15, '');
+ str17.replace(re33, '');
+ str18.replace(/%3P/g, '');
+ str18.replace(/%3R/g, '');
+ str18.replace(/%3q/g, '');
+ str18.replace(re35, '');
+ 'yvaxyvfg16'.replace(re14, '');
+ 'yvaxyvfg16'.replace(re15, '');
+ 'zvahf'.replace(re14, '');
+ 'zvahf'.replace(re15, '');
+ 'bcra'.replace(re14, '');
+ 'bcra'.replace(re15, '');
+ 'cnerag puebzr5 fvatyr1 ps NU'.replace(re14, '');
+ 'cnerag puebzr5 fvatyr1 ps NU'.replace(re15, '');
+ 'cynlre'.replace(re14, '');
+ 'cynlre'.replace(re15, '');
+ 'cyhf'.replace(re14, '');
+ 'cyhf'.replace(re15, '');
+ 'cb_uqy'.replace(re14, '');
+ 'cb_uqy'.replace(re15, '');
+ 'hyJVzt'.replace(re14, '');
+ 'hyJVzt'.replace(re15, '');
+ re8.exec('144631658.0.10.1231363638');
+ re8.exec('144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.965867047679498800.1231363638.1231363638.1231363638.1');
+ re8.exec('4413268q3660');
+ re8.exec('4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n');
+ re8.exec('SbeprqRkcvengvba=633669321699093060');
+ re8.exec('VC=74.125.75.20');
+ re8.exec(str19);
+ re8.exec(str20);
+ re8.exec('AFP_zp_tfwsbrg-aowb_80=4413268q3660');
+ re8.exec('FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n');
+ re8.exec('__hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1');
+ re8.exec('__hgzo=144631658.0.10.1231363638');
+ re8.exec('__hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str15);
+ re34.exec(str16);
+ }
+ }
+ var re36 = /uers|fep|fryrpgrq/;
+ var re37 = /\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g;
+ var re38 = /^(\w+|\*)$/;
+ var str21 = 'FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str22 = 'FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; __hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1; __hgzo=144631658.0.10.1231367822; __hgzp=144631658; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str23 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367803797&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367803797&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Szrffntvat.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1192552091.1231367807&tn_fvq=1231367807&tn_uvq=1155446857&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str24 = 'ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str25 = 'ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str26 = 'hy.ynat-fryrpgbe';
+ var re39 = /\\/g;
+ var re40 = / /g;
+ var re41 = /\/\xc4\/t/;
+ var re42 = /\/\xd6\/t/;
+ var re43 = /\/\xdc\/t/;
+ var re44 = /\/\xdf\/t/;
+ var re45 = /\/\xe4\/t/;
+ var re46 = /\/\xf6\/t/;
+ var re47 = /\/\xfc\/t/;
+ var re48 = /\W/g;
+ var re49 = /uers|fep|fglyr/;
+ function runBlock4() {
+ for (var i = 0; i < 16; i++) {
+ ''.replace(/\*/g, '');
+ /\bnpgvir\b/.exec('npgvir');
+ /sversbk/i.exec(str0);
+ re36.exec('glcr');
+ /zfvr/i.exec(str0);
+ /bcren/i.exec(str0);
+ }
+ for (var i = 0; i < 15; i++) {
+ str21.split(re32);
+ str22.split(re32);
+ 'uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ str23.replace(re33, '');
+ 'yv'.replace(re37, '');
+ 'yv'.replace(re18, '');
+ re8.exec('144631658.0.10.1231367822');
+ re8.exec('144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.4127520630321984500.1231367822.1231367822.1231367822.1');
+ re8.exec(str24);
+ re8.exec(str25);
+ re8.exec('__hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1');
+ re8.exec('__hgzo=144631658.0.10.1231367822');
+ re8.exec('__hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str21);
+ re34.exec(str22);
+ /\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g.exec(str26);
+ re13.exec('uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz');
+ re38.exec('yv');
+ }
+ for (var i = 0; i < 14; i++) {
+ ''.replace(re18, '');
+ '9.0 e115'.replace(/(\s+e|\s+o[0-9]+)/, '');
+ 'Funer guvf tnqtrg'.replace(/</g, '');
+ 'Funer guvf tnqtrg'.replace(/>/g, '');
+ 'Funer guvf tnqtrg'.replace(re39, '');
+ 'uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ 'grnfre'.replace(re40, '');
+ 'grnfre'.replace(re41, '');
+ 'grnfre'.replace(re42, '');
+ 'grnfre'.replace(re43, '');
+ 'grnfre'.replace(re44, '');
+ 'grnfre'.replace(re45, '');
+ 'grnfre'.replace(re46, '');
+ 'grnfre'.replace(re47, '');
+ 'grnfre'.replace(re48, '');
+ re16.exec('znetva-gbc');
+ re16.exec('cbfvgvba');
+ re19.exec('gno1');
+ re9.exec('qz');
+ re9.exec('qg');
+ re9.exec('zbqobk');
+ re9.exec('zbqobkva');
+ re9.exec('zbqgvgyr');
+ re13.exec('uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz');
+ re26.exec('/vt/znvytnqtrg');
+ re49.exec('glcr');
+ }
+ }
+ var re50 = /(?:^|\s+)fryrpgrq(?:\s+|$)/;
+ var re51 = /\&/g;
+ var re52 = /\+/g;
+ var re53 = /\?/g;
+ var re54 = /\t/g;
+ var re55 = /(\$\{nqiHey\})|(\$nqiHey\b)/g;
+ var re56 = /(\$\{cngu\})|(\$cngu\b)/g;
+ function runBlock5() {
+ for (var i = 0; i < 13; i++) {
+ 'purpx'.replace(re14, '');
+ 'purpx'.replace(re15, '');
+ 'pvgl'.replace(re14, '');
+ 'pvgl'.replace(re15, '');
+ 'qrpe fyvqrgrkg'.replace(re14, '');
+ 'qrpe fyvqrgrkg'.replace(re15, '');
+ 'svefg fryrpgrq'.replace(re14, '');
+ 'svefg fryrpgrq'.replace(re15, '');
+ 'uqy_rag'.replace(re14, '');
+ 'uqy_rag'.replace(re15, '');
+ 'vape fyvqrgrkg'.replace(re14, '');
+ 'vape fyvqrgrkg'.replace(re15, '');
+ 'vachggrkg QBZPbageby_cynprubyqre'.replace(re5, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq'.replace(re15, '');
+ 'cb_guz'.replace(re14, '');
+ 'cb_guz'.replace(re15, '');
+ 'fhozvg'.replace(re14, '');
+ 'fhozvg'.replace(re15, '');
+ re50.exec('');
+ /NccyrJroXvg\/([^\s]*)/.exec(str0);
+ /XUGZY/.exec(str0);
+ }
+ for (var i = 0; i < 12; i++) {
+ '${cebg}://${ubfg}${cngu}/${dz}'.replace(/(\$\{cebg\})|(\$cebg\b)/g, '');
+ '1'.replace(re40, '');
+ '1'.replace(re10, '');
+ '1'.replace(re51, '');
+ '1'.replace(re52, '');
+ '1'.replace(re53, '');
+ '1'.replace(re39, '');
+ '1'.replace(re54, '');
+ '9.0 e115'.replace(/^(.*)\..*$/, '');
+ '9.0 e115'.replace(/^.*e(.*)$/, '');
+ '<!-- ${nqiHey} -->'.replace(re55, '');
+ '<fpevcg glcr="grkg/wninfpevcg" fep="${nqiHey}"></fpevcg>'.replace(re55, '');
+ str1.replace(/^.*\s+(\S+\s+\S+$)/, '');
+ 'tzk%2Subzrcntr%2Sfgneg%2Sqr%2S'.replace(re30, '');
+ 'tzk'.replace(re30, '');
+ 'uggc://${ubfg}${cngu}/${dz}'.replace(/(\$\{ubfg\})|(\$ubfg\b)/g, '');
+ 'uggc://nqpyvrag.hvzfrei.arg${cngu}/${dz}'.replace(re56, '');
+ 'uggc://nqpyvrag.hvzfrei.arg/wf.at/${dz}'.replace(/(\$\{dz\})|(\$dz\b)/g, '');
+ 'frpgvba'.replace(re29, '');
+ 'frpgvba'.replace(re30, '');
+ 'fvgr'.replace(re29, '');
+ 'fvgr'.replace(re30, '');
+ 'fcrpvny'.replace(re29, '');
+ 'fcrpvny'.replace(re30, '');
+ re36.exec('anzr');
+ /e/.exec('9.0 e115');
+ }
+ }
+ var re57 = /##yv4##/gi;
+ var re58 = /##yv16##/gi;
+ var re59 = /##yv19##/gi;
+ var str27 = '<hy pynff="nqi">##yv4##Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str28 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str29 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str30 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str31 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.<oe> <oe> ##N##Yrnea zber##/N##</hy>';
+ var str32 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.<oe> <oe> <n uers="uggc://znvy.yvir.pbz/znvy/nobhg.nfck" gnetrg="_oynax">Yrnea zber##/N##</hy>';
+ var str33 = 'Bar Jvaqbjf Yvir VQ trgf lbh vagb <o>Ubgznvy</o>, <o>Zrffratre</o>, <o>Kobk YVIR</o> \u2014 naq bgure cynprf lbh frr #~#argjbexybtb#~#';
+ var re60 = /(?:^|\s+)bss(?:\s+|$)/;
+ var re61 = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/;
+ var re62 = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
+ var str34 = '${1}://${2}${3}${4}${5}';
+ var str35 = ' O=6gnyg0g4znrrn&o=3&f=gc; Q=_lyu=K3bQZGSxnT4lZzD3OS9GNmV3ZGLkAQxRpTyxNmRlZmRmAmNkAQLRqTImqNZjOUEgpTjQnJ5xMKtgoN--; SCF=qy';
+ function runBlock6() {
+ for (var i = 0; i < 11; i++) {
+ str27.replace(/##yv0##/gi, '');
+ str27.replace(re57, '');
+ str28.replace(re58, '');
+ str29.replace(re59, '');
+ str30.replace(/##\/o##/gi, '');
+ str30.replace(/##\/v##/gi, '');
+ str30.replace(/##\/h##/gi, '');
+ str30.replace(/##o##/gi, '');
+ str30.replace(/##oe##/gi, '');
+ str30.replace(/##v##/gi, '');
+ str30.replace(/##h##/gi, '');
+ str31.replace(/##n##/gi, '');
+ str32.replace(/##\/n##/gi, '');
+ str33.replace(/#~#argjbexybtb#~#/g, '');
+ / Zbovyr\//.exec(str0);
+ /##yv1##/gi.exec(str27);
+ /##yv10##/gi.exec(str28);
+ /##yv11##/gi.exec(str28);
+ /##yv12##/gi.exec(str28);
+ /##yv13##/gi.exec(str28);
+ /##yv14##/gi.exec(str28);
+ /##yv15##/gi.exec(str28);
+ re58.exec(str28);
+ /##yv17##/gi.exec(str29);
+ /##yv18##/gi.exec(str29);
+ re59.exec(str29);
+ /##yv2##/gi.exec(str27);
+ /##yv20##/gi.exec(str30);
+ /##yv21##/gi.exec(str30);
+ /##yv22##/gi.exec(str30);
+ /##yv23##/gi.exec(str30);
+ /##yv3##/gi.exec(str27);
+ re57.exec(str27);
+ /##yv5##/gi.exec(str28);
+ /##yv6##/gi.exec(str28);
+ /##yv7##/gi.exec(str28);
+ /##yv8##/gi.exec(str28);
+ /##yv9##/gi.exec(str28);
+ re8.exec('473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29');
+ re8.exec('SbeprqRkcvengvba=633669325184628362');
+ re8.exec('FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29');
+ /AbxvnA[^\/]*/.exec(str0);
+ }
+ for (var i = 0; i < 10; i++) {
+ ' bss'.replace(/(?:^|\s+)bss(?:\s+|$)/g, '');
+ str34.replace(/(\$\{0\})|(\$0\b)/g, '');
+ str34.replace(/(\$\{1\})|(\$1\b)/g, '');
+ str34.replace(/(\$\{pbzcyrgr\})|(\$pbzcyrgr\b)/g, '');
+ str34.replace(/(\$\{sentzrag\})|(\$sentzrag\b)/g, '');
+ str34.replace(/(\$\{ubfgcbeg\})|(\$ubfgcbeg\b)/g, '');
+ str34.replace(re56, '');
+ str34.replace(/(\$\{cebgbpby\})|(\$cebgbpby\b)/g, '');
+ str34.replace(/(\$\{dhrel\})|(\$dhrel\b)/g, '');
+ 'nqfvmr'.replace(re29, '');
+ 'nqfvmr'.replace(re30, '');
+ 'uggc://${2}${3}${4}${5}'.replace(/(\$\{2\})|(\$2\b)/g, '');
+ 'uggc://wf.hv-cbegny.qr${3}${4}${5}'.replace(/(\$\{3\})|(\$3\b)/g, '');
+ 'arjf'.replace(re40, '');
+ 'arjf'.replace(re41, '');
+ 'arjf'.replace(re42, '');
+ 'arjf'.replace(re43, '');
+ 'arjf'.replace(re44, '');
+ 'arjf'.replace(re45, '');
+ 'arjf'.replace(re46, '');
+ 'arjf'.replace(re47, '');
+ 'arjf'.replace(re48, '');
+ / PC=i=(\d+)&oe=(.)/.exec(str35);
+ re60.exec(' ');
+ re60.exec(' bss');
+ re60.exec('');
+ re19.exec(' ');
+ re19.exec('svefg ba');
+ re19.exec('ynfg vtaber');
+ re19.exec('ba');
+ re9.exec('scnq so ');
+ re9.exec('zrqvgobk');
+ re9.exec('hsgy');
+ re9.exec('lhv-h');
+ /Fnsnev|Xbadhrebe|XUGZY/gi.exec(str0);
+ re61.exec('uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf');
+ re62.exec('#Ybtva_rznvy');
+ }
+ }
+ var re63 = /\{0\}/g;
+ var str36 = 'FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_tfwsbrg-aowb_80=4413268q3660';
+ var str37 = 'FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; AFP_zp_tfwsbrg-aowb_80=4413268q3660; __hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1; __hgzo=144631658.0.10.1231364074; __hgzp=144631658; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str38 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231364057761&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364057761&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Ssevraqf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1667363813.1231364061&tn_fvq=1231364061&tn_uvq=1917563877&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str39 = 'ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str40 = 'ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ function runBlock7() {
+ for (var i = 0; i < 9; i++) {
+ '0'.replace(re40, '');
+ '0'.replace(re10, '');
+ '0'.replace(re51, '');
+ '0'.replace(re52, '');
+ '0'.replace(re53, '');
+ '0'.replace(re39, '');
+ '0'.replace(re54, '');
+ 'Lrf'.replace(re40, '');
+ 'Lrf'.replace(re10, '');
+ 'Lrf'.replace(re51, '');
+ 'Lrf'.replace(re52, '');
+ 'Lrf'.replace(re53, '');
+ 'Lrf'.replace(re39, '');
+ 'Lrf'.replace(re54, '');
+ }
+ for (var i = 0; i < 8; i++) {
+ 'Pybfr {0}'.replace(re63, '');
+ 'Bcra {0}'.replace(re63, '');
+ str36.split(re32);
+ str37.split(re32);
+ 'puvyq p1 svefg gnournqref'.replace(re14, '');
+ 'puvyq p1 svefg gnournqref'.replace(re15, '');
+ 'uqy_fcb'.replace(re14, '');
+ 'uqy_fcb'.replace(re15, '');
+ 'uvag'.replace(re14, '');
+ 'uvag'.replace(re15, '');
+ str38.replace(re33, '');
+ 'yvfg'.replace(re14, '');
+ 'yvfg'.replace(re15, '');
+ 'at_bhgre'.replace(re30, '');
+ 'cnerag puebzr5 qbhoyr2 NU'.replace(re14, '');
+ 'cnerag puebzr5 qbhoyr2 NU'.replace(re15, '');
+ 'cnerag puebzr5 dhnq5 ps NU osyvax zbarl'.replace(re14, '');
+ 'cnerag puebzr5 dhnq5 ps NU osyvax zbarl'.replace(re15, '');
+ 'cnerag puebzr6 fvatyr1'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1'.replace(re15, '');
+ 'cb_qrs'.replace(re14, '');
+ 'cb_qrs'.replace(re15, '');
+ 'gnopbagrag'.replace(re14, '');
+ 'gnopbagrag'.replace(re15, '');
+ 'iv_svefg_gvzr'.replace(re30, '');
+ /(^|.)(ronl|qri-ehf3.wbg)(|fgberf|zbgbef|yvirnhpgvbaf|jvxv|rkcerff|punggre).(pbz(|.nh|.pa|.ux|.zl|.ft|.oe|.zk)|pb(.hx|.xe|.am)|pn|qr|se|vg|ay|or|ng|pu|vr|va|rf|cy|cu|fr)$/i.exec('cntrf.ronl.pbz');
+ re8.exec('144631658.0.10.1231364074');
+ re8.exec('144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.2294274870215848400.1231364074.1231364074.1231364074.1');
+ re8.exec('4413241q3660');
+ re8.exec('SbeprqRkcvengvba=633669357391353591');
+ re8.exec(str39);
+ re8.exec(str40);
+ re8.exec('AFP_zp_kkk-gdzogv_80=4413241q3660');
+ re8.exec('FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7');
+ re8.exec('__hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1');
+ re8.exec('__hgzo=144631658.0.10.1231364074');
+ re8.exec('__hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7');
+ re34.exec(str36);
+ re34.exec(str37);
+ }
+ }
+ var re64 = /\b[a-z]/g;
+ var re65 = /^uggc:\/\//;
+ var re66 = /(?:^|\s+)qvfnoyrq(?:\s+|$)/;
+ var str41 = 'uggc://cebsvyr.zlfcnpr.pbz/Zbqhyrf/Nccyvpngvbaf/Cntrf/Pnainf.nfck';
+ function runBlock8() {
+ for (var i = 0; i < 7; i++) {
+ str1.match(/\d+/g);
+ 'nsgre'.replace(re64, '');
+ 'orsber'.replace(re64, '');
+ 'obggbz'.replace(re64, '');
+ 'ohvygva_jrngure.kzy'.replace(re65, '');
+ 'ohggba'.replace(re37, '');
+ 'ohggba'.replace(re18, '');
+ 'qngrgvzr.kzy'.replace(re65, '');
+ 'uggc://eff.paa.pbz/eff/paa_gbcfgbevrf.eff'.replace(re65, '');
+ 'vachg'.replace(re37, '');
+ 'vachg'.replace(re18, '');
+ 'vafvqr'.replace(re64, '');
+ 'cbvagre'.replace(re27, '');
+ 'cbfvgvba'.replace(/[A-Z]/g, '');
+ 'gbc'.replace(re27, '');
+ 'gbc'.replace(re64, '');
+ 'hy'.replace(re37, '');
+ 'hy'.replace(re18, '');
+ str26.replace(re37, '');
+ str26.replace(re18, '');
+ 'lbhghor_vtbbtyr/i2/lbhghor.kzy'.replace(re65, '');
+ 'm-vaqrk'.replace(re27, '');
+ /#([\w-]+)/.exec(str26);
+ re16.exec('urvtug');
+ re16.exec('znetvaGbc');
+ re16.exec('jvqgu');
+ re19.exec('gno0 svefg ba');
+ re19.exec('gno0 ba');
+ re19.exec('gno4 ynfg');
+ re19.exec('gno4');
+ re19.exec('gno5');
+ re19.exec('gno6');
+ re19.exec('gno7');
+ re19.exec('gno8');
+ /NqborNVE\/([^\s]*)/.exec(str0);
+ /NccyrJroXvg\/([^ ]*)/.exec(str0);
+ /XUGZY/gi.exec(str0);
+ /^(?:obql|ugzy)$/i.exec('YV');
+ re38.exec('ohggba');
+ re38.exec('vachg');
+ re38.exec('hy');
+ re38.exec(str26);
+ /^(\w+|\*)/.exec(str26);
+ /znp|jva|yvahk/i.exec('Jva32');
+ /eton?\([\d\s,]+\)/.exec('fgngvp');
+ }
+ for (var i = 0; i < 6; i++) {
+ ''.replace(/\r/g, '');
+ '/'.replace(re40, '');
+ '/'.replace(re10, '');
+ '/'.replace(re51, '');
+ '/'.replace(re52, '');
+ '/'.replace(re53, '');
+ '/'.replace(re39, '');
+ '/'.replace(re54, '');
+ 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/{0}?[NDO]&{1}&{2}&[NDR]'.replace(re63, '');
+ str41.replace(re12, '');
+ 'uggc://jjj.snprobbx.pbz/fepu.cuc'.replace(re23, '');
+ 'freivpr'.replace(re40, '');
+ 'freivpr'.replace(re41, '');
+ 'freivpr'.replace(re42, '');
+ 'freivpr'.replace(re43, '');
+ 'freivpr'.replace(re44, '');
+ 'freivpr'.replace(re45, '');
+ 'freivpr'.replace(re46, '');
+ 'freivpr'.replace(re47, '');
+ 'freivpr'.replace(re48, '');
+ /((ZFVR\s+([6-9]|\d\d)\.))/.exec(str0);
+ re66.exec('');
+ re50.exec('fryrpgrq');
+ re8.exec('8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn');
+ re8.exec('SbeprqRkcvengvba=633669340386893867');
+ re8.exec('VC=74.125.75.17');
+ re8.exec('FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn');
+ /Xbadhrebe|Fnsnev|XUGZY/.exec(str0);
+ re13.exec(str41);
+ re49.exec('unfsbphf');
+ }
+ }
+ var re67 = /zrah_byq/g;
+ var str42 = 'FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str43 = 'FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; __hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1; __hgzo=144631658.0.10.1231364380; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str44 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_vzntrf_wf&qg=1231364373088&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364373088&punaary=svz_zlfcnpr_hfre-ivrj-pbzzragf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Spbzzrag.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1158737789.1231364375&tn_fvq=1231364375&tn_uvq=415520832&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str45 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str46 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var re68 = /^([#.]?)((?:[\w\u0128-\uffff*_-]|\\.)*)/;
+ var re69 = /\{1\}/g;
+ var re70 = /\s+/;
+ var re71 = /(\$\{4\})|(\$4\b)/g;
+ var re72 = /(\$\{5\})|(\$5\b)/g;
+ var re73 = /\{2\}/g;
+ var re74 = /[^+>] [^+>]/;
+ var re75 = /\bucpyv\s*=\s*([^;]*)/i;
+ var re76 = /\bucuvqr\s*=\s*([^;]*)/i;
+ var re77 = /\bucfie\s*=\s*([^;]*)/i;
+ var re78 = /\bhfucjrn\s*=\s*([^;]*)/i;
+ var re79 = /\bmvc\s*=\s*([^;]*)/i;
+ var re80 = /^((?:[\w\u0128-\uffff*_-]|\\.)+)(#)((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+ var re81 = /^([>+~])\s*(\w*)/i;
+ var re82 = /^>\s*((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+ var re83 = /^[\s[]?shapgvba/;
+ var re84 = /v\/g.tvs#(.*)/i;
+ var str47 = '#Zbq-Vasb-Vasb-WninFpevcgUvag';
+ var str48 = ',n.svryqOgaPnapry';
+ var str49 = 'FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_kkk-gdzogv_80=4413241q3660';
+ var str50 = 'FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; AFP_zp_kkk-gdzogv_80=4413241q3660; AFP_zp_kkk-aowb_80=4413235p3660; __hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1; __hgzo=144631658.0.10.1231367708; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str51 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367691141&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367691141&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sjjj.zlfcnpr.pbz%2S&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=320757904.1231367694&tn_fvq=1231367694&tn_uvq=1758792003&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str52 = 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N38%3N42%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=1024k768&p=24&x=L&oj=994&ou=634&uc=A&{2}&[NDR]';
+ var str53 = 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq qbhoyr2 ps';
+ var str54 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str55 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str56 = 'ne;ng;nh;or;oe;pn;pu;py;pa;qr;qx;rf;sv;se;to;ux;vq;vr;va;vg;wc;xe;zk;zl;ay;ab;am;cu;cy;cg;eh;fr;ft;gu;ge;gj;mn;';
+ var str57 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886&GHVQ=1';
+ var str58 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886';
+ var str59 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1';
+ var str60 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF';
+ var str61 = 'uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/29/4RQP4969777N048NPS4RRR3PO2S7S.wct';
+ var str62 = 'uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/OQ/63NP9O94NS5OQP1249Q9S1ROP7NS3.wct';
+ var str63 = 'zbmvyyn/5.0 (jvaqbjf; h; jvaqbjf ag 5.1; ra-hf) nccyrjroxvg/528.9 (xugzy, yvxr trpxb) puebzr/2.0.157.0 fnsnev/528.9';
+ function runBlock9() {
+ for (var i = 0; i < 5; i++) {
+ str42.split(re32);
+ str43.split(re32);
+ 'svz_zlfcnpr_hfre-ivrj-pbzzragf,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+ str44.replace(re33, '');
+ 'zrah_arj zrah_arj_gbttyr zrah_gbttyr'.replace(re67, '');
+ 'zrah_byq zrah_byq_gbttyr zrah_gbttyr'.replace(re67, '');
+ re8.exec('102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98');
+ re8.exec('144631658.0.10.1231364380');
+ re8.exec('144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.3931862196947939300.1231364380.1231364380.1231364380.1');
+ re8.exec('441326q33660');
+ re8.exec('SbeprqRkcvengvba=633669341278771470');
+ re8.exec(str45);
+ re8.exec(str46);
+ re8.exec('AFP_zp_dfctwzssrwh-aowb_80=441326q33660');
+ re8.exec('FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98');
+ re8.exec('__hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1');
+ re8.exec('__hgzo=144631658.0.10.1231364380');
+ re8.exec('__hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ }
+ for (var i = 0; i < 4; i++) {
+ ' yvfg1'.replace(re14, '');
+ ' yvfg1'.replace(re15, '');
+ ' yvfg2'.replace(re14, '');
+ ' yvfg2'.replace(re15, '');
+ ' frneputebhc1'.replace(re14, '');
+ ' frneputebhc1'.replace(re15, '');
+ str47.replace(re68, '');
+ str47.replace(re18, '');
+ ''.replace(/&/g, '');
+ ''.replace(re35, '');
+ '(..-{0})(\|(\d+)|)'.replace(re63, '');
+ str48.replace(re18, '');
+ '//vzt.jro.qr/vij/FC/${cngu}/${anzr}/${inyhr}?gf=${abj}'.replace(re56, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/${anzr}/${inyhr}?gf=${abj}'.replace(/(\$\{anzr\})|(\$anzr\b)/g, '');
+ '<fcna pynff="urnq"><o>Jvaqbjf Yvir Ubgznvy</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re69, '');
+ '<fcna pynff="urnq"><o>{0}</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re63, '');
+ '<fcna pynff="fvtahc"><n uers=uggc://jjj.ubgznvy.pbz><o>{1}</o></n></fcna>'.replace(re69, '');
+ '<fcna pynff="fvtahc"><n uers={0}><o>{1}</o></n></fcna>'.replace(re63, '');
+ 'Vzntrf'.replace(re15, '');
+ 'ZFA'.replace(re15, '');
+ 'Zncf'.replace(re15, '');
+ 'Zbq-Vasb-Vasb-WninFpevcgUvag'.replace(re39, '');
+ 'Arjf'.replace(re15, '');
+ str49.split(re32);
+ str50.split(re32);
+ 'Ivqrb'.replace(re15, '');
+ 'Jro'.replace(re15, '');
+ 'n'.replace(re39, '');
+ 'nwnkFgneg'.split(re70);
+ 'nwnkFgbc'.split(re70);
+ 'ovaq'.replace(re14, '');
+ 'ovaq'.replace(re15, '');
+ 'oevatf lbh zber. Zber fcnpr (5TO), zber frphevgl, fgvyy serr.'.replace(re63, '');
+ 'puvyq p1 svefg qrpx'.replace(re14, '');
+ 'puvyq p1 svefg qrpx'.replace(re15, '');
+ 'puvyq p1 svefg qbhoyr2'.replace(re14, '');
+ 'puvyq p1 svefg qbhoyr2'.replace(re15, '');
+ 'puvyq p2 ynfg'.replace(re14, '');
+ 'puvyq p2 ynfg'.replace(re15, '');
+ 'puvyq p2'.replace(re14, '');
+ 'puvyq p2'.replace(re15, '');
+ 'puvyq p3'.replace(re14, '');
+ 'puvyq p3'.replace(re15, '');
+ 'puvyq p4 ynfg'.replace(re14, '');
+ 'puvyq p4 ynfg'.replace(re15, '');
+ 'pbclevtug'.replace(re14, '');
+ 'pbclevtug'.replace(re15, '');
+ 'qZFAZR_1'.replace(re14, '');
+ 'qZFAZR_1'.replace(re15, '');
+ 'qbhoyr2 ps'.replace(re14, '');
+ 'qbhoyr2 ps'.replace(re15, '');
+ 'qbhoyr2'.replace(re14, '');
+ 'qbhoyr2'.replace(re15, '');
+ 'uqy_arj'.replace(re14, '');
+ 'uqy_arj'.replace(re15, '');
+ 'uc_fubccvatobk'.replace(re30, '');
+ 'ugzy%2Rvq'.replace(re29, '');
+ 'ugzy%2Rvq'.replace(re30, '');
+ str51.replace(re33, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${5}'.replace(re72, '');
+ str52.replace(re73, '');
+ 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&{1}&{2}&[NDR]'.replace(re69, '');
+ 'vztZFSG'.replace(re14, '');
+ 'vztZFSG'.replace(re15, '');
+ 'zfasbbg1 ps'.replace(re14, '');
+ 'zfasbbg1 ps'.replace(re15, '');
+ str53.replace(re14, '');
+ str53.replace(re15, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq'.replace(re15, '');
+ 'cevznel'.replace(re14, '');
+ 'cevznel'.replace(re15, '');
+ 'erpgnatyr'.replace(re30, '');
+ 'frpbaqnel'.replace(re14, '');
+ 'frpbaqnel'.replace(re15, '');
+ 'haybnq'.split(re70);
+ '{0}{1}1'.replace(re63, '');
+ '|{1}1'.replace(re69, '');
+ /(..-HF)(\|(\d+)|)/i.exec('xb-xe,ra-va,gu-gu');
+ re4.exec('/ZlFcnprNccf/NccPnainf,45000012');
+ re8.exec('144631658.0.10.1231367708');
+ re8.exec('144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.2770915348920628700.1231367708.1231367708.1231367708.1');
+ re8.exec('4413235p3660');
+ re8.exec('441327q73660');
+ re8.exec('9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473');
+ re8.exec('SbeprqRkcvengvba=633669350559478880');
+ re8.exec(str54);
+ re8.exec(str55);
+ re8.exec('AFP_zp_dfctwzs-aowb_80=441327q73660');
+ re8.exec('AFP_zp_kkk-aowb_80=4413235p3660');
+ re8.exec('FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473');
+ re8.exec('__hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1');
+ re8.exec('__hgzo=144631658.0.10.1231367708');
+ re8.exec('__hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str49);
+ re34.exec(str50);
+ /ZFVR\s+5[.]01/.exec(str0);
+ /HF(?=;)/i.exec(str56);
+ re74.exec(str47);
+ re28.exec('svefg npgvir svefgNpgvir');
+ re28.exec('ynfg');
+ /\bp:(..)/i.exec('m:94043|yn:37.4154|yb:-122.0585|p:HF');
+ re75.exec(str57);
+ re75.exec(str58);
+ re76.exec(str57);
+ re76.exec(str58);
+ re77.exec(str57);
+ re77.exec(str58);
+ /\bhfucce\s*=\s*([^;]*)/i.exec(str59);
+ re78.exec(str57);
+ re78.exec(str58);
+ /\bjci\s*=\s*([^;]*)/i.exec(str59);
+ re79.exec(str58);
+ re79.exec(str60);
+ re79.exec(str59);
+ /\|p:([a-z]{2})/i.exec('m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1');
+ re80.exec(str47);
+ re61.exec('cebgbglcr.wf');
+ re68.exec(str47);
+ re81.exec(str47);
+ re82.exec(str47);
+ /^Fubpxjnir Synfu (\d)/.exec(str1);
+ /^Fubpxjnir Synfu (\d+)/.exec(str1);
+ re83.exec('[bowrpg tybony]');
+ re62.exec(str47);
+ re84.exec(str61);
+ re84.exec(str62);
+ /jroxvg/.exec(str63);
+ }
+ }
+ var re85 = /eaq_zbqobkva/;
+ var str64 = '1231365729213';
+ var str65 = '74.125.75.3-1057165600.29978900';
+ var str66 = '74.125.75.3-1057165600.29978900.1231365730214';
+ var str67 = 'Frnepu%20Zvpebfbsg.pbz';
+ var str68 = 'FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str69 = 'FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; __hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1; __hgzo=144631658.0.10.1231365779; __hgzp=144631658; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str70 = 'I=3%26THVQ=757q3ss871q44o7o805n8113n5p72q52';
+ var str71 = 'I=3&THVQ=757q3ss871q44o7o805n8113n5p72q52';
+ var str72 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365765292&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365765292&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sohyyrgvaf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1579793869.1231365768&tn_fvq=1231365768&tn_uvq=2056210897&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str73 = 'frnepu.zvpebfbsg.pbz';
+ var str74 = 'frnepu.zvpebfbsg.pbz/';
+ var str75 = 'ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str76 = 'ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ function runBlock10() {
+ for (var i = 0; i < 3; i++) {
+ '%3Szxg=ra-HF'.replace(re39, '');
+ '-8'.replace(re40, '');
+ '-8'.replace(re10, '');
+ '-8'.replace(re51, '');
+ '-8'.replace(re52, '');
+ '-8'.replace(re53, '');
+ '-8'.replace(re39, '');
+ '-8'.replace(re54, '');
+ '1.5'.replace(re40, '');
+ '1.5'.replace(re10, '');
+ '1.5'.replace(re51, '');
+ '1.5'.replace(re52, '');
+ '1.5'.replace(re53, '');
+ '1.5'.replace(re39, '');
+ '1.5'.replace(re54, '');
+ '1024k768'.replace(re40, '');
+ '1024k768'.replace(re10, '');
+ '1024k768'.replace(re51, '');
+ '1024k768'.replace(re52, '');
+ '1024k768'.replace(re53, '');
+ '1024k768'.replace(re39, '');
+ '1024k768'.replace(re54, '');
+ str64.replace(re40, '');
+ str64.replace(re10, '');
+ str64.replace(re51, '');
+ str64.replace(re52, '');
+ str64.replace(re53, '');
+ str64.replace(re39, '');
+ str64.replace(re54, '');
+ '14'.replace(re40, '');
+ '14'.replace(re10, '');
+ '14'.replace(re51, '');
+ '14'.replace(re52, '');
+ '14'.replace(re53, '');
+ '14'.replace(re39, '');
+ '14'.replace(re54, '');
+ '24'.replace(re40, '');
+ '24'.replace(re10, '');
+ '24'.replace(re51, '');
+ '24'.replace(re52, '');
+ '24'.replace(re53, '');
+ '24'.replace(re39, '');
+ '24'.replace(re54, '');
+ str65.replace(re40, '');
+ str65.replace(re10, '');
+ str65.replace(re51, '');
+ str65.replace(re52, '');
+ str65.replace(re53, '');
+ str65.replace(re39, '');
+ str65.replace(re54, '');
+ str66.replace(re40, '');
+ str66.replace(re10, '');
+ str66.replace(re51, '');
+ str66.replace(re52, '');
+ str66.replace(re53, '');
+ str66.replace(re39, '');
+ str66.replace(re54, '');
+ '9.0'.replace(re40, '');
+ '9.0'.replace(re10, '');
+ '9.0'.replace(re51, '');
+ '9.0'.replace(re52, '');
+ '9.0'.replace(re53, '');
+ '9.0'.replace(re39, '');
+ '9.0'.replace(re54, '');
+ '994k634'.replace(re40, '');
+ '994k634'.replace(re10, '');
+ '994k634'.replace(re51, '');
+ '994k634'.replace(re52, '');
+ '994k634'.replace(re53, '');
+ '994k634'.replace(re39, '');
+ '994k634'.replace(re54, '');
+ '?zxg=ra-HF'.replace(re40, '');
+ '?zxg=ra-HF'.replace(re10, '');
+ '?zxg=ra-HF'.replace(re51, '');
+ '?zxg=ra-HF'.replace(re52, '');
+ '?zxg=ra-HF'.replace(re53, '');
+ '?zxg=ra-HF'.replace(re54, '');
+ 'PAA.pbz'.replace(re25, '');
+ 'PAA.pbz'.replace(re12, '');
+ 'PAA.pbz'.replace(re39, '');
+ 'Qngr & Gvzr'.replace(re25, '');
+ 'Qngr & Gvzr'.replace(re12, '');
+ 'Qngr & Gvzr'.replace(re39, '');
+ 'Frnepu Zvpebfbsg.pbz'.replace(re40, '');
+ 'Frnepu Zvpebfbsg.pbz'.replace(re54, '');
+ str67.replace(re10, '');
+ str67.replace(re51, '');
+ str67.replace(re52, '');
+ str67.replace(re53, '');
+ str67.replace(re39, '');
+ str68.split(re32);
+ str69.split(re32);
+ str70.replace(re52, '');
+ str70.replace(re53, '');
+ str70.replace(re39, '');
+ str71.replace(re40, '');
+ str71.replace(re10, '');
+ str71.replace(re51, '');
+ str71.replace(re54, '');
+ 'Jrngure'.replace(re25, '');
+ 'Jrngure'.replace(re12, '');
+ 'Jrngure'.replace(re39, '');
+ 'LbhGhor'.replace(re25, '');
+ 'LbhGhor'.replace(re12, '');
+ 'LbhGhor'.replace(re39, '');
+ str72.replace(re33, '');
+ 'erzbgr_vsenzr_1'.replace(/^erzbgr_vsenzr_/, '');
+ str73.replace(re40, '');
+ str73.replace(re10, '');
+ str73.replace(re51, '');
+ str73.replace(re52, '');
+ str73.replace(re53, '');
+ str73.replace(re39, '');
+ str73.replace(re54, '');
+ str74.replace(re40, '');
+ str74.replace(re10, '');
+ str74.replace(re51, '');
+ str74.replace(re52, '');
+ str74.replace(re53, '');
+ str74.replace(re39, '');
+ str74.replace(re54, '');
+ 'lhv-h'.replace(/\-/g, '');
+ re9.exec('p');
+ re9.exec('qz p');
+ re9.exec('zbqynory');
+ re9.exec('lhv-h svefg');
+ re8.exec('144631658.0.10.1231365779');
+ re8.exec('144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.1877536177953918500.1231365779.1231365779.1231365779.1');
+ re8.exec(str75);
+ re8.exec(str76);
+ re8.exec('__hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1');
+ re8.exec('__hgzo=144631658.0.10.1231365779');
+ re8.exec('__hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str68);
+ re34.exec(str69);
+ /^$/.exec('');
+ re31.exec('qr');
+ /^znk\d+$/.exec('');
+ /^zva\d+$/.exec('');
+ /^erfgber$/.exec('');
+ re85.exec('zbqobkva zbqobk_abcnqqvat ');
+ re85.exec('zbqgvgyr');
+ re85.exec('eaq_zbqobkva ');
+ re85.exec('eaq_zbqgvgyr ');
+ /frpgvba\d+_pbagragf/.exec('obggbz_ani');
+ }
+ }
+ var re86 = /;\s*/;
+ var re87 = /(\$\{inyhr\})|(\$inyhr\b)/g;
+ var re88 = /(\$\{abj\})|(\$abj\b)/g;
+ var re89 = /\s+$/;
+ var re90 = /^\s+/;
+ var re91 = /(\\\"|\x00-|\x1f|\x7f-|\x9f|\u00ad|\u0600-|\u0604|\u070f|\u17b4|\u17b5|\u200c-|\u200f|\u2028-|\u202f|\u2060-|\u206f|\ufeff|\ufff0-|\uffff)/g;
+ var re92 = /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/;
+ var re93 = /^([:.#]*)((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+ var re94 = /^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/;
+ var str77 = '#fubhgobk .pybfr';
+ var str78 = 'FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzssrwh-aowb_80=441326q33660';
+ var str79 = 'FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; AFP_zp_dfctwzssrwh-aowb_80=441326q33660; __hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1; __hgzo=144631658.0.10.1231365869; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str80 = 'FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=441327q73660';
+ var str81 = 'FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; AFP_zp_dfctwzs-aowb_80=441327q73660; __hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1; __hgzo=144631658.0.10.1231367054; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str82 = '[glcr=fhozvg]';
+ var str83 = 'n.svryqOga,n.svryqOgaPnapry';
+ var str84 = 'n.svryqOgaPnapry';
+ var str85 = 'oyvpxchaxg';
+ var str86 = 'qvi.bow-nppbeqvba qg';
+ var str87 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_nccf_wf&qg=1231367052227&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367052227&punaary=svz_zlfcnpr_nccf-pnainf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2SZbqhyrf%2SNccyvpngvbaf%2SCntrf%2SPnainf.nfck&nq_glcr=grkg&rvq=6083027&rn=0&sez=1&tn_ivq=716357910.1231367056&tn_fvq=1231367056&tn_uvq=1387206491&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str88 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365851658&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365851658&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyrrqvg.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1979828129.1231365855&tn_fvq=1231365855&tn_uvq=2085229649&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str89 = 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N12%3N47%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=0k0&p=43835816&x=A&oj=994&ou=634&uc=A&{2}&[NDR]';
+ var str90 = 'zrgn[anzr=nwnkHey]';
+ var str91 = 'anpuevpugra';
+ var str92 = 'b oS={\'oT\':1.1};x $8n(B){z(B!=o9)};x $S(B){O(!$8n(B))z A;O(B.4L)z\'T\';b S=7t B;O(S==\'2P\'&&B.p4){23(B.7f){12 1:z\'T\';12 3:z/\S/.2g(B.8M)?\'ox\':\'oh\'}}O(S==\'2P\'||S==\'x\'){23(B.nE){12 2V:z\'1O\';12 7I:z\'5a\';12 18:z\'4B\'}O(7t B.I==\'4F\'){O(B.3u)z\'pG\';O(B.8e)z\'1p\'}}z S};x $2p(){b 4E={};Z(b v=0;v<1p.I;v++){Z(b X 1o 1p[v]){b nc=1p[v][X];b 6E=4E[X];O(6E&&$S(nc)==\'2P\'&&$S(6E)==\'2P\')4E[X]=$2p(6E,nc);17 4E[X]=nc}}z 4E};b $E=7p.E=x(){b 1d=1p;O(!1d[1])1d=[p,1d[0]];Z(b X 1o 1d[1])1d[0][X]=1d[1][X];z 1d[0]};b $4D=7p.pJ=x(){Z(b v=0,y=1p.I;v<y;v++){1p[v].E=x(1J){Z(b 1I 1o 1J){O(!p.1Y[1I])p.1Y[1I]=1J[1I];O(!p[1I])p[1I]=$4D.6C(1I)}}}};$4D.6C=x(1I){z x(L){z p.1Y[1I].3H(L,2V.1Y.nV.1F(1p,1))}};$4D(7F,2V,6J,nb);b 3l=x(B){B=B||{};B.E=$E;z B};b pK=Y 3l(H);b pZ=Y 3l(C);C.6f=C.35(\'6f\')[0];x $2O(B){z!!(B||B===0)};x $5S(B,n8){z $8n(B)?B:n8};x $7K(3c,1m){z 1q.na(1q.7K()*(1m-3c+1)+3c)};x $3N(){z Y 97().os()};x $4M(1U){pv(1U);pa(1U);z 1S};H.43=!!(C.5Z);O(H.nB)H.31=H[H.7q?\'py\':\'nL\']=1r;17 O(C.9N&&!C.om&&!oy.oZ)H.pF=H.4Z=H[H.43?\'pt\':\'65\']=1r;17 O(C.po!=1S)H.7J=1r;O(7t 5B==\'o9\'){b 5B=x(){};O(H.4Z)C.nd("pW");5B.1Y=(H.4Z)?H["[[oN.1Y]]"]:{}}5B.1Y.4L=1r;O(H.nL)5s{C.oX("pp",A,1r)}4K(r){};b 18=x(1X){b 63=x(){z(1p[0]!==1S&&p.1w&&$S(p.1w)==\'x\')?p.1w.3H(p,1p):p};$E(63,p);63.1Y=1X;63.nE=18;z 63};18.1z=x(){};18.1Y={E:x(1X){b 7x=Y p(1S);Z(b X 1o 1X){b nC=7x[X];7x[X]=18.nY(nC,1X[X])}z Y 18(7x)},3d:x(){Z(b v=0,y=1p.I;v<y;v++)$E(p.1Y,1p[v])}};18.nY=x(2b,2n){O(2b&&2b!=2n){b S=$S(2n);O(S!=$S(2b))z 2n;23(S){12\'x\':b 7R=x(){p.1e=1p.8e.1e;z 2n.3H(p,1p)};7R.1e=2b;z 7R;12\'2P\':z $2p(2b,2n)}}z 2n};b 8o=Y 18({oQ:x(J){p.4w=p.4w||[];p.4w.1x(J);z p},7g:x(){O(p.4w&&p.4w.I)p.4w.9J().2x(10,p)},oP:x(){p.4w=[]}});b 2d=Y 18({1V:x(S,J){O(J!=18.1z){p.$19=p.$19||{};p.$19[S]=p.$19[S]||[];p.$19[S].5j(J)}z p},1v:x(S,1d,2x){O(p.$19&&p.$19[S]){p.$19[S].1b(x(J){J.3n({\'L\':p,\'2x\':2x,\'1p\':1d})()},p)}z p},3M:x(S,J){O(p.$19&&p.$19[S])p.$19[S].2U(J);z p}});b 4v=Y 18({2H:x(){p.P=$2p.3H(1S,[p.P].E(1p));O(!p.1V)z p;Z(b 3O 1o p.P){O($S(p.P[3O]==\'x\')&&3O.2g(/^5P[N-M]/))p.1V(3O,p.P[3O])}z p}});2V.E({7y:x(J,L){Z(b v=0,w=p.I;v<w;v++)J.1F(L,p[v],v,p)},3s:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))54.1x(p[v])}z 54},2X:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++)54[v]=J.1F(L,p[v],v,p);z 54},4i:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(!J.1F(L,p[v],v,p))z A}z 1r},ob:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))z 1r}z A},3F:x(3u,15){b 3A=p.I;Z(b v=(15<0)?1q.1m(0,3A+15):15||0;v<3A;v++){O(p[v]===3u)z v}z-1},8z:x(1u,I){1u=1u||0;O(1u<0)1u=p.I+1u;I=I||(p.I-1u);b 89=[];Z(b v=0;v<I;v++)89[v]=p[1u++];z 89},2U:x(3u){b v=0;b 3A=p.I;6L(v<3A){O(p[v]===3u){p.6l(v,1);3A--}17{v++}}z p},1y:x(3u,15){z p.3F(3u,15)!=-1},oz:x(1C){b B={},I=1q.3c(p.I,1C.I);Z(b v=0;v<I;v++)B[1C[v]]=p[v];z B},E:x(1O){Z(b v=0,w=1O.I;v<w;v++)p.1x(1O[v]);z p},2p:x(1O){Z(b v=0,y=1O.I;v<y;v++)p.5j(1O[v]);z p},5j:x(3u){O(!p.1y(3u))p.1x(3u);z p},oc:x(){z p[$7K(0,p.I-1)]||A},7L:x(){z p[p.I-1]||A}});2V.1Y.1b=2V.1Y.7y;2V.1Y.2g=2V.1Y.1y;x $N(1O){z 2V.8z(1O)};x $1b(3J,J,L){O(3J&&7t 3J.I==\'4F\'&&$S(3J)!=\'2P\')2V.7y(3J,J,L);17 Z(b 1j 1o 3J)J.1F(L||3J,3J[1j],1j)};6J.E({2g:x(6b,2F){z(($S(6b)==\'2R\')?Y 7I(6b,2F):6b).2g(p)},3p:x(){z 5K(p,10)},o4:x(){z 69(p)},7A:x(){z p.3y(/-\D/t,x(2G){z 2G.7G(1).nW()})},9b:x(){z p.3y(/\w[N-M]/t,x(2G){z(2G.7G(0)+\'-\'+2G.7G(1).5O())})},8V:x(){z p.3y(/\b[n-m]/t,x(2G){z 2G.nW()})},5L:x(){z p.3y(/^\s+|\s+$/t,\'\')},7j:x(){z p.3y(/\s{2,}/t,\' \').5L()},5V:x(1O){b 1i=p.2G(/\d{1,3}/t);z(1i)?1i.5V(1O):A},5U:x(1O){b 3P=p.2G(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);z(3P)?3P.nV(1).5U(1O):A},1y:x(2R,f){z(f)?(f+p+f).3F(f+2R+f)>-1:p.3F(2R)>-1},nX:x(){z p.3y(/([.*+?^${}()|[\]\/\\])/t,\'\\$1\')}});2V.E({5V:x(1O){O(p.I<3)z A;O(p.I==4&&p[3]==0&&!1O)z\'p5\';b 3P=[];Z(b v=0;v<3;v++){b 52=(p[v]-0).4h(16);3P.1x((52.I==1)?\'0\'+52:52)}z 1O?3P:\'#\'+3P.2u(\'\')},5U:x(1O){O(p.I!=3)z A;b 1i=[];Z(b v=0;v<3;v++){1i.1x(5K((p[v].I==1)?p[v]+p[v]:p[v],16))}z 1O?1i:\'1i(\'+1i.2u(\',\')+\')\'}});7F.E({3n:x(P){b J=p;P=$2p({\'L\':J,\'V\':A,\'1p\':1S,\'2x\':A,\'4s\':A,\'6W\':A},P);O($2O(P.1p)&&$S(P.1p)!=\'1O\')P.1p=[P.1p];z x(V){b 1d;O(P.V){V=V||H.V;1d=[(P.V===1r)?V:Y P.V(V)];O(P.1p)1d.E(P.1p)}17 1d=P.1p||1p;b 3C=x(){z J.3H($5S(P';
+ var str93 = 'hagreunyghat';
+ var str94 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str95 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str96 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str97 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str98 = 'shapgvba (){Cuk.Nccyvpngvba.Frghc.Pber();Cuk.Nccyvpngvba.Frghc.Nwnk();Cuk.Nccyvpngvba.Frghc.Synfu();Cuk.Nccyvpngvba.Frghc.Zbqhyrf()}';
+ function runBlock11() {
+ for (var i = 0; i < 2; i++) {
+ ' .pybfr'.replace(re18, '');
+ ' n.svryqOgaPnapry'.replace(re18, '');
+ ' qg'.replace(re18, '');
+ str77.replace(re68, '');
+ str77.replace(re18, '');
+ ''.replace(re39, '');
+ ''.replace(/^/, '');
+ ''.split(re86);
+ '*'.replace(re39, '');
+ '*'.replace(re68, '');
+ '*'.replace(re18, '');
+ '.pybfr'.replace(re68, '');
+ '.pybfr'.replace(re18, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/fperra/${inyhr}?gf=${abj}'.replace(re87, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/fperra/1024?gf=${abj}'.replace(re88, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/${inyhr}?gf=${abj}'.replace(re87, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/992/608?gf=${abj}'.replace(re88, '');
+ '300k120'.replace(re30, '');
+ '300k250'.replace(re30, '');
+ '310k120'.replace(re30, '');
+ '310k170'.replace(re30, '');
+ '310k250'.replace(re30, '');
+ '9.0 e115'.replace(/^.*\.(.*)\s.*$/, '');
+ 'Nppbeqvba'.replace(re2, '');
+ 'Nxghryy\x0a'.replace(re89, '');
+ 'Nxghryy\x0a'.replace(re90, '');
+ 'Nccyvpngvba'.replace(re2, '');
+ 'Oyvpxchaxg\x0a'.replace(re89, '');
+ 'Oyvpxchaxg\x0a'.replace(re90, '');
+ 'Svanamra\x0a'.replace(re89, '');
+ 'Svanamra\x0a'.replace(re90, '');
+ 'Tnzrf\x0a'.replace(re89, '');
+ 'Tnzrf\x0a'.replace(re90, '');
+ 'Ubebfxbc\x0a'.replace(re89, '');
+ 'Ubebfxbc\x0a'.replace(re90, '');
+ 'Xvab\x0a'.replace(re89, '');
+ 'Xvab\x0a'.replace(re90, '');
+ 'Zbqhyrf'.replace(re2, '');
+ 'Zhfvx\x0a'.replace(re89, '');
+ 'Zhfvx\x0a'.replace(re90, '');
+ 'Anpuevpugra\x0a'.replace(re89, '');
+ 'Anpuevpugra\x0a'.replace(re90, '');
+ 'Cuk'.replace(re2, '');
+ 'ErdhrfgSvavfu'.split(re70);
+ 'ErdhrfgSvavfu.NWNK.Cuk'.split(re70);
+ 'Ebhgr\x0a'.replace(re89, '');
+ 'Ebhgr\x0a'.replace(re90, '');
+ str78.split(re32);
+ str79.split(re32);
+ str80.split(re32);
+ str81.split(re32);
+ 'Fcbeg\x0a'.replace(re89, '');
+ 'Fcbeg\x0a'.replace(re90, '');
+ 'GI-Fcbg\x0a'.replace(re89, '');
+ 'GI-Fcbg\x0a'.replace(re90, '');
+ 'Gbhe\x0a'.replace(re89, '');
+ 'Gbhe\x0a'.replace(re90, '');
+ 'Hagreunyghat\x0a'.replace(re89, '');
+ 'Hagreunyghat\x0a'.replace(re90, '');
+ 'Ivqrb\x0a'.replace(re89, '');
+ 'Ivqrb\x0a'.replace(re90, '');
+ 'Jrggre\x0a'.replace(re89, '');
+ 'Jrggre\x0a'.replace(re90, '');
+ str82.replace(re68, '');
+ str82.replace(re18, '');
+ str83.replace(re68, '');
+ str83.replace(re18, '');
+ str84.replace(re68, '');
+ str84.replace(re18, '');
+ 'nqiFreivprObk'.replace(re30, '');
+ 'nqiFubccvatObk'.replace(re30, '');
+ 'nwnk'.replace(re39, '');
+ 'nxghryy'.replace(re40, '');
+ 'nxghryy'.replace(re41, '');
+ 'nxghryy'.replace(re42, '');
+ 'nxghryy'.replace(re43, '');
+ 'nxghryy'.replace(re44, '');
+ 'nxghryy'.replace(re45, '');
+ 'nxghryy'.replace(re46, '');
+ 'nxghryy'.replace(re47, '');
+ 'nxghryy'.replace(re48, '');
+ str85.replace(re40, '');
+ str85.replace(re41, '');
+ str85.replace(re42, '');
+ str85.replace(re43, '');
+ str85.replace(re44, '');
+ str85.replace(re45, '');
+ str85.replace(re46, '');
+ str85.replace(re47, '');
+ str85.replace(re48, '');
+ 'pngrtbel'.replace(re29, '');
+ 'pngrtbel'.replace(re30, '');
+ 'pybfr'.replace(re39, '');
+ 'qvi'.replace(re39, '');
+ str86.replace(re68, '');
+ str86.replace(re18, '');
+ 'qg'.replace(re39, '');
+ 'qg'.replace(re68, '');
+ 'qg'.replace(re18, '');
+ 'rzorq'.replace(re39, '');
+ 'rzorq'.replace(re68, '');
+ 'rzorq'.replace(re18, '');
+ 'svryqOga'.replace(re39, '');
+ 'svryqOgaPnapry'.replace(re39, '');
+ 'svz_zlfcnpr_nccf-pnainf,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+ 'svanamra'.replace(re40, '');
+ 'svanamra'.replace(re41, '');
+ 'svanamra'.replace(re42, '');
+ 'svanamra'.replace(re43, '');
+ 'svanamra'.replace(re44, '');
+ 'svanamra'.replace(re45, '');
+ 'svanamra'.replace(re46, '');
+ 'svanamra'.replace(re47, '');
+ 'svanamra'.replace(re48, '');
+ 'sbphf'.split(re70);
+ 'sbphf.gno sbphfva.gno'.split(re70);
+ 'sbphfva'.split(re70);
+ 'sbez'.replace(re39, '');
+ 'sbez.nwnk'.replace(re68, '');
+ 'sbez.nwnk'.replace(re18, '');
+ 'tnzrf'.replace(re40, '');
+ 'tnzrf'.replace(re41, '');
+ 'tnzrf'.replace(re42, '');
+ 'tnzrf'.replace(re43, '');
+ 'tnzrf'.replace(re44, '');
+ 'tnzrf'.replace(re45, '');
+ 'tnzrf'.replace(re46, '');
+ 'tnzrf'.replace(re47, '');
+ 'tnzrf'.replace(re48, '');
+ 'ubzrcntr'.replace(re30, '');
+ 'ubebfxbc'.replace(re40, '');
+ 'ubebfxbc'.replace(re41, '');
+ 'ubebfxbc'.replace(re42, '');
+ 'ubebfxbc'.replace(re43, '');
+ 'ubebfxbc'.replace(re44, '');
+ 'ubebfxbc'.replace(re45, '');
+ 'ubebfxbc'.replace(re46, '');
+ 'ubebfxbc'.replace(re47, '');
+ 'ubebfxbc'.replace(re48, '');
+ 'uc_cebzbobk_ugzy%2Puc_cebzbobk_vzt'.replace(re30, '');
+ 'uc_erpgnatyr'.replace(re30, '');
+ str87.replace(re33, '');
+ str88.replace(re33, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${5}'.replace(re72, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${5}'.replace(re72, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${5}'.replace(re72, '');
+ str89.replace(re73, '');
+ 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&{1}&{2}&[NDR]'.replace(re69, '');
+ str6.replace(re23, '');
+ 'xvab'.replace(re40, '');
+ 'xvab'.replace(re41, '');
+ 'xvab'.replace(re42, '');
+ 'xvab'.replace(re43, '');
+ 'xvab'.replace(re44, '');
+ 'xvab'.replace(re45, '');
+ 'xvab'.replace(re46, '');
+ 'xvab'.replace(re47, '');
+ 'xvab'.replace(re48, '');
+ 'ybnq'.split(re70);
+ 'zrqvnzbqgno lhv-anifrg lhv-anifrg-gbc'.replace(re18, '');
+ 'zrgn'.replace(re39, '');
+ str90.replace(re68, '');
+ str90.replace(re18, '');
+ 'zbhfrzbir'.split(re70);
+ 'zbhfrzbir.gno'.split(re70);
+ str63.replace(/^.*jroxvg\/(\d+(\.\d+)?).*$/, '');
+ 'zhfvx'.replace(re40, '');
+ 'zhfvx'.replace(re41, '');
+ 'zhfvx'.replace(re42, '');
+ 'zhfvx'.replace(re43, '');
+ 'zhfvx'.replace(re44, '');
+ 'zhfvx'.replace(re45, '');
+ 'zhfvx'.replace(re46, '');
+ 'zhfvx'.replace(re47, '');
+ 'zhfvx'.replace(re48, '');
+ 'zlfcnpr_nccf_pnainf'.replace(re52, '');
+ str91.replace(re40, '');
+ str91.replace(re41, '');
+ str91.replace(re42, '');
+ str91.replace(re43, '');
+ str91.replace(re44, '');
+ str91.replace(re45, '');
+ str91.replace(re46, '');
+ str91.replace(re47, '');
+ str91.replace(re48, '');
+ 'anzr'.replace(re39, '');
+ str92.replace(/\b\w+\b/g, '');
+ 'bow-nppbeqvba'.replace(re39, '');
+ 'bowrpg'.replace(re39, '');
+ 'bowrpg'.replace(re68, '');
+ 'bowrpg'.replace(re18, '');
+ 'cnenzf%2Rfglyrf'.replace(re29, '');
+ 'cnenzf%2Rfglyrf'.replace(re30, '');
+ 'cbchc'.replace(re30, '');
+ 'ebhgr'.replace(re40, '');
+ 'ebhgr'.replace(re41, '');
+ 'ebhgr'.replace(re42, '');
+ 'ebhgr'.replace(re43, '');
+ 'ebhgr'.replace(re44, '');
+ 'ebhgr'.replace(re45, '');
+ 'ebhgr'.replace(re46, '');
+ 'ebhgr'.replace(re47, '');
+ 'ebhgr'.replace(re48, '');
+ 'freivprobk_uc'.replace(re30, '');
+ 'fubccvatobk_uc'.replace(re30, '');
+ 'fubhgobk'.replace(re39, '');
+ 'fcbeg'.replace(re40, '');
+ 'fcbeg'.replace(re41, '');
+ 'fcbeg'.replace(re42, '');
+ 'fcbeg'.replace(re43, '');
+ 'fcbeg'.replace(re44, '');
+ 'fcbeg'.replace(re45, '');
+ 'fcbeg'.replace(re46, '');
+ 'fcbeg'.replace(re47, '');
+ 'fcbeg'.replace(re48, '');
+ 'gbhe'.replace(re40, '');
+ 'gbhe'.replace(re41, '');
+ 'gbhe'.replace(re42, '');
+ 'gbhe'.replace(re43, '');
+ 'gbhe'.replace(re44, '');
+ 'gbhe'.replace(re45, '');
+ 'gbhe'.replace(re46, '');
+ 'gbhe'.replace(re47, '');
+ 'gbhe'.replace(re48, '');
+ 'gi-fcbg'.replace(re40, '');
+ 'gi-fcbg'.replace(re41, '');
+ 'gi-fcbg'.replace(re42, '');
+ 'gi-fcbg'.replace(re43, '');
+ 'gi-fcbg'.replace(re44, '');
+ 'gi-fcbg'.replace(re45, '');
+ 'gi-fcbg'.replace(re46, '');
+ 'gi-fcbg'.replace(re47, '');
+ 'gi-fcbg'.replace(re48, '');
+ 'glcr'.replace(re39, '');
+ 'haqrsvarq'.replace(/\//g, '');
+ str93.replace(re40, '');
+ str93.replace(re41, '');
+ str93.replace(re42, '');
+ str93.replace(re43, '');
+ str93.replace(re44, '');
+ str93.replace(re45, '');
+ str93.replace(re46, '');
+ str93.replace(re47, '');
+ str93.replace(re48, '');
+ 'ivqrb'.replace(re40, '');
+ 'ivqrb'.replace(re41, '');
+ 'ivqrb'.replace(re42, '');
+ 'ivqrb'.replace(re43, '');
+ 'ivqrb'.replace(re44, '');
+ 'ivqrb'.replace(re45, '');
+ 'ivqrb'.replace(re46, '');
+ 'ivqrb'.replace(re47, '');
+ 'ivqrb'.replace(re48, '');
+ 'ivfvgf=1'.split(re86);
+ 'jrggre'.replace(re40, '');
+ 'jrggre'.replace(re41, '');
+ 'jrggre'.replace(re42, '');
+ 'jrggre'.replace(re43, '');
+ 'jrggre'.replace(re44, '');
+ 'jrggre'.replace(re45, '');
+ 'jrggre'.replace(re46, '');
+ 'jrggre'.replace(re47, '');
+ 'jrggre'.replace(re48, '');
+ /#[a-z0-9]+$/i.exec('uggc://jjj.fpuhryreim.arg/Qrsnhyg');
+ re66.exec('fryrpgrq');
+ /(?:^|\s+)lhv-ani(?:\s+|$)/.exec('sff lhv-ani');
+ /(?:^|\s+)lhv-anifrg(?:\s+|$)/.exec('zrqvnzbqgno lhv-anifrg');
+ /(?:^|\s+)lhv-anifrg-gbc(?:\s+|$)/.exec('zrqvnzbqgno lhv-anifrg');
+ re91.exec('GnoThvq');
+ re91.exec('thvq');
+ /(pbzcngvoyr|jroxvg)/.exec(str63);
+ /.+(?:ei|vg|en|vr)[\/: ]([\d.]+)/.exec(str63);
+ re8.exec('144631658.0.10.1231365869');
+ re8.exec('144631658.0.10.1231367054');
+ re8.exec('144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.1670816052019209000.1231365869.1231365869.1231365869.1');
+ re8.exec('144631658.1796080716621419500.1231367054.1231367054.1231367054.1');
+ re8.exec(str94);
+ re8.exec(str95);
+ re8.exec(str96);
+ re8.exec(str97);
+ re8.exec('__hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1');
+ re8.exec('__hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1');
+ re8.exec('__hgzo=144631658.0.10.1231365869');
+ re8.exec('__hgzo=144631658.0.10.1231367054');
+ re8.exec('__hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('__hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str78);
+ re34.exec(str79);
+ re34.exec(str81);
+ re74.exec(str77);
+ re74.exec('*');
+ re74.exec(str82);
+ re74.exec(str83);
+ re74.exec(str86);
+ re74.exec('rzorq');
+ re74.exec('sbez.nwnk');
+ re74.exec(str90);
+ re74.exec('bowrpg');
+ /\/onfr.wf(\?.+)?$/.exec('/uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf');
+ re28.exec('uvag ynfgUvag ynfg');
+ re75.exec('');
+ re76.exec('');
+ re77.exec('');
+ re78.exec('');
+ re80.exec(str77);
+ re80.exec('*');
+ re80.exec('.pybfr');
+ re80.exec(str82);
+ re80.exec(str83);
+ re80.exec(str84);
+ re80.exec(str86);
+ re80.exec('qg');
+ re80.exec('rzorq');
+ re80.exec('sbez.nwnk');
+ re80.exec(str90);
+ re80.exec('bowrpg');
+ re61.exec('qlaYvo.wf');
+ re61.exec('rssrpgYvo.wf');
+ re61.exec('uggc://jjj.tzk.arg/qr/?fgnghf=uvajrvf');
+ re92.exec(' .pybfr');
+ re92.exec(' n.svryqOgaPnapry');
+ re92.exec(' qg');
+ re92.exec(str48);
+ re92.exec('.nwnk');
+ re92.exec('.svryqOga,n.svryqOgaPnapry');
+ re92.exec('.svryqOgaPnapry');
+ re92.exec('.bow-nppbeqvba qg');
+ re68.exec(str77);
+ re68.exec('*');
+ re68.exec('.pybfr');
+ re68.exec(str82);
+ re68.exec(str83);
+ re68.exec(str84);
+ re68.exec(str86);
+ re68.exec('qg');
+ re68.exec('rzorq');
+ re68.exec('sbez.nwnk');
+ re68.exec(str90);
+ re68.exec('bowrpg');
+ re93.exec(' .pybfr');
+ re93.exec(' n.svryqOgaPnapry');
+ re93.exec(' qg');
+ re93.exec(str48);
+ re93.exec('.nwnk');
+ re93.exec('.svryqOga,n.svryqOgaPnapry');
+ re93.exec('.svryqOgaPnapry');
+ re93.exec('.bow-nppbeqvba qg');
+ re81.exec(str77);
+ re81.exec('*');
+ re81.exec(str48);
+ re81.exec('.pybfr');
+ re81.exec(str82);
+ re81.exec(str83);
+ re81.exec(str84);
+ re81.exec(str86);
+ re81.exec('qg');
+ re81.exec('rzorq');
+ re81.exec('sbez.nwnk');
+ re81.exec(str90);
+ re81.exec('bowrpg');
+ re94.exec(' .pybfr');
+ re94.exec(' n.svryqOgaPnapry');
+ re94.exec(' qg');
+ re94.exec(str48);
+ re94.exec('.nwnk');
+ re94.exec('.svryqOga,n.svryqOgaPnapry');
+ re94.exec('.svryqOgaPnapry');
+ re94.exec('.bow-nppbeqvba qg');
+ re94.exec('[anzr=nwnkHey]');
+ re94.exec(str82);
+ re31.exec('rf');
+ re31.exec('wn');
+ re82.exec(str77);
+ re82.exec('*');
+ re82.exec(str48);
+ re82.exec('.pybfr');
+ re82.exec(str82);
+ re82.exec(str83);
+ re82.exec(str84);
+ re82.exec(str86);
+ re82.exec('qg');
+ re82.exec('rzorq');
+ re82.exec('sbez.nwnk');
+ re82.exec(str90);
+ re82.exec('bowrpg');
+ re83.exec(str98);
+ re83.exec('shapgvba sbphf() { [angvir pbqr] }');
+ re62.exec('#Ybtva');
+ re62.exec('#Ybtva_cnffjbeq');
+ re62.exec(str77);
+ re62.exec('#fubhgobkWf');
+ re62.exec('#fubhgobkWfReebe');
+ re62.exec('#fubhgobkWfFhpprff');
+ re62.exec('*');
+ re62.exec(str82);
+ re62.exec(str83);
+ re62.exec(str86);
+ re62.exec('rzorq');
+ re62.exec('sbez.nwnk');
+ re62.exec(str90);
+ re62.exec('bowrpg');
+ re49.exec('pbagrag');
+ re24.exec(str6);
+ /xbadhrebe/.exec(str63);
+ /znp/.exec('jva32');
+ /zbmvyyn/.exec(str63);
+ /zfvr/.exec(str63);
+ /ag\s5\.1/.exec(str63);
+ /bcren/.exec(str63);
+ /fnsnev/.exec(str63);
+ /jva/.exec('jva32');
+ /jvaqbjf/.exec(str63);
+ }
+ }
+ for (var i = 0; i < 5; i++) {
+ runBlock0();
+ runBlock1();
+ runBlock2();
+ runBlock3();
+ runBlock4();
+ runBlock5();
+ runBlock6();
+ runBlock7();
+ runBlock8();
+ runBlock9();
+ runBlock10();
+ runBlock11();
+ }
+}
+
+for (var i = 0; i < 3; ++i)
+ runRegExpBenchmark();
diff --git a/PerformanceTests/SunSpider/tests/v8-v4/v8-richards.js b/PerformanceTests/SunSpider/tests/v8-v4/v8-richards.js
new file mode 100644
index 000000000..b1a50eaab
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v4/v8-richards.js
@@ -0,0 +1,537 @@
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+// This is a JavaScript implementation of the Richards
+// benchmark from:
+//
+// http://www.cl.cam.ac.uk/~mr10/Bench.html
+//
+// The benchmark was originally implemented in BCPL by
+// Martin Richards.
+
+
+/**
+ * The Richards benchmark simulates the task dispatcher of an
+ * operating system.
+ **/
+function runRichards() {
+ var scheduler = new Scheduler();
+ scheduler.addIdleTask(ID_IDLE, 0, null, COUNT);
+
+ var queue = new Packet(null, ID_WORKER, KIND_WORK);
+ queue = new Packet(queue, ID_WORKER, KIND_WORK);
+ scheduler.addWorkerTask(ID_WORKER, 1000, queue);
+
+ queue = new Packet(null, ID_DEVICE_A, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE);
+ scheduler.addHandlerTask(ID_HANDLER_A, 2000, queue);
+
+ queue = new Packet(null, ID_DEVICE_B, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE);
+ scheduler.addHandlerTask(ID_HANDLER_B, 3000, queue);
+
+ scheduler.addDeviceTask(ID_DEVICE_A, 4000, null);
+
+ scheduler.addDeviceTask(ID_DEVICE_B, 5000, null);
+
+ scheduler.schedule();
+
+ if (scheduler.queueCount != EXPECTED_QUEUE_COUNT ||
+ scheduler.holdCount != EXPECTED_HOLD_COUNT) {
+ var msg =
+ "Error during execution: queueCount = " + scheduler.queueCount +
+ ", holdCount = " + scheduler.holdCount + ".";
+ throw new Error(msg);
+ }
+}
+
+var COUNT = 1000;
+
+/**
+ * These two constants specify how many times a packet is queued and
+ * how many times a task is put on hold in a correct run of richards.
+ * They don't have any meaning a such but are characteristic of a
+ * correct run so if the actual queue or hold count is different from
+ * the expected there must be a bug in the implementation.
+ **/
+var EXPECTED_QUEUE_COUNT = 2322;
+var EXPECTED_HOLD_COUNT = 928;
+
+
+/**
+ * A scheduler can be used to schedule a set of tasks based on their relative
+ * priorities. Scheduling is done by maintaining a list of task control blocks
+ * which holds tasks and the data queue they are processing.
+ * @constructor
+ */
+function Scheduler() {
+ this.queueCount = 0;
+ this.holdCount = 0;
+ this.blocks = new Array(NUMBER_OF_IDS);
+ this.list = null;
+ this.currentTcb = null;
+ this.currentId = null;
+}
+
+var ID_IDLE = 0;
+var ID_WORKER = 1;
+var ID_HANDLER_A = 2;
+var ID_HANDLER_B = 3;
+var ID_DEVICE_A = 4;
+var ID_DEVICE_B = 5;
+var NUMBER_OF_IDS = 6;
+
+var KIND_DEVICE = 0;
+var KIND_WORK = 1;
+
+/**
+ * Add an idle task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {int} count the number of times to schedule the task
+ */
+Scheduler.prototype.addIdleTask = function (id, priority, queue, count) {
+ this.addRunningTask(id, priority, queue, new IdleTask(this, 1, count));
+};
+
+/**
+ * Add a work task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addWorkerTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new WorkerTask(this, ID_HANDLER_A, 0));
+};
+
+/**
+ * Add a handler task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addHandlerTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new HandlerTask(this));
+};
+
+/**
+ * Add a handler task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addDeviceTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new DeviceTask(this))
+};
+
+/**
+ * Add the specified task and mark it as running.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {Task} task the task to add
+ */
+Scheduler.prototype.addRunningTask = function (id, priority, queue, task) {
+ this.addTask(id, priority, queue, task);
+ this.currentTcb.setRunning();
+};
+
+/**
+ * Add the specified task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {Task} task the task to add
+ */
+Scheduler.prototype.addTask = function (id, priority, queue, task) {
+ this.currentTcb = new TaskControlBlock(this.list, id, priority, queue, task);
+ this.list = this.currentTcb;
+ this.blocks[id] = this.currentTcb;
+};
+
+/**
+ * Execute the tasks managed by this scheduler.
+ */
+Scheduler.prototype.schedule = function () {
+ this.currentTcb = this.list;
+ while (this.currentTcb != null) {
+ if (this.currentTcb.isHeldOrSuspended()) {
+ this.currentTcb = this.currentTcb.link;
+ } else {
+ this.currentId = this.currentTcb.id;
+ this.currentTcb = this.currentTcb.run();
+ }
+ }
+};
+
+/**
+ * Release a task that is currently blocked and return the next block to run.
+ * @param {int} id the id of the task to suspend
+ */
+Scheduler.prototype.release = function (id) {
+ var tcb = this.blocks[id];
+ if (tcb == null) return tcb;
+ tcb.markAsNotHeld();
+ if (tcb.priority > this.currentTcb.priority) {
+ return tcb;
+ } else {
+ return this.currentTcb;
+ }
+};
+
+/**
+ * Block the currently executing task and return the next task control block
+ * to run. The blocked task will not be made runnable until it is explicitly
+ * released, even if new work is added to it.
+ */
+Scheduler.prototype.holdCurrent = function () {
+ this.holdCount++;
+ this.currentTcb.markAsHeld();
+ return this.currentTcb.link;
+};
+
+/**
+ * Suspend the currently executing task and return the next task control block
+ * to run. If new work is added to the suspended task it will be made runnable.
+ */
+Scheduler.prototype.suspendCurrent = function () {
+ this.currentTcb.markAsSuspended();
+ return this.currentTcb;
+};
+
+/**
+ * Add the specified packet to the end of the worklist used by the task
+ * associated with the packet and make the task runnable if it is currently
+ * suspended.
+ * @param {Packet} packet the packet to add
+ */
+Scheduler.prototype.queue = function (packet) {
+ var t = this.blocks[packet.id];
+ if (t == null) return t;
+ this.queueCount++;
+ packet.link = null;
+ packet.id = this.currentId;
+ return t.checkPriorityAdd(this.currentTcb, packet);
+};
+
+/**
+ * A task control block manages a task and the queue of work packages associated
+ * with it.
+ * @param {TaskControlBlock} link the preceding block in the linked block list
+ * @param {int} id the id of this block
+ * @param {int} priority the priority of this block
+ * @param {Packet} queue the queue of packages to be processed by the task
+ * @param {Task} task the task
+ * @constructor
+ */
+function TaskControlBlock(link, id, priority, queue, task) {
+ this.link = link;
+ this.id = id;
+ this.priority = priority;
+ this.queue = queue;
+ this.task = task;
+ if (queue == null) {
+ this.state = STATE_SUSPENDED;
+ } else {
+ this.state = STATE_SUSPENDED_RUNNABLE;
+ }
+}
+
+/**
+ * The task is running and is currently scheduled.
+ */
+var STATE_RUNNING = 0;
+
+/**
+ * The task has packets left to process.
+ */
+var STATE_RUNNABLE = 1;
+
+/**
+ * The task is not currently running. The task is not blocked as such and may
+* be started by the scheduler.
+ */
+var STATE_SUSPENDED = 2;
+
+/**
+ * The task is blocked and cannot be run until it is explicitly released.
+ */
+var STATE_HELD = 4;
+
+var STATE_SUSPENDED_RUNNABLE = STATE_SUSPENDED | STATE_RUNNABLE;
+var STATE_NOT_HELD = ~STATE_HELD;
+
+TaskControlBlock.prototype.setRunning = function () {
+ this.state = STATE_RUNNING;
+};
+
+TaskControlBlock.prototype.markAsNotHeld = function () {
+ this.state = this.state & STATE_NOT_HELD;
+};
+
+TaskControlBlock.prototype.markAsHeld = function () {
+ this.state = this.state | STATE_HELD;
+};
+
+TaskControlBlock.prototype.isHeldOrSuspended = function () {
+ return (this.state & STATE_HELD) != 0 || (this.state == STATE_SUSPENDED);
+};
+
+TaskControlBlock.prototype.markAsSuspended = function () {
+ this.state = this.state | STATE_SUSPENDED;
+};
+
+TaskControlBlock.prototype.markAsRunnable = function () {
+ this.state = this.state | STATE_RUNNABLE;
+};
+
+/**
+ * Runs this task, if it is ready to be run, and returns the next task to run.
+ */
+TaskControlBlock.prototype.run = function () {
+ var packet;
+ if (this.state == STATE_SUSPENDED_RUNNABLE) {
+ packet = this.queue;
+ this.queue = packet.link;
+ if (this.queue == null) {
+ this.state = STATE_RUNNING;
+ } else {
+ this.state = STATE_RUNNABLE;
+ }
+ } else {
+ packet = null;
+ }
+ return this.task.run(packet);
+};
+
+/**
+ * Adds a packet to the worklist of this block's task, marks this as runnable if
+ * necessary, and returns the next runnable object to run (the one
+ * with the highest priority).
+ */
+TaskControlBlock.prototype.checkPriorityAdd = function (task, packet) {
+ if (this.queue == null) {
+ this.queue = packet;
+ this.markAsRunnable();
+ if (this.priority > task.priority) return this;
+ } else {
+ this.queue = packet.addTo(this.queue);
+ }
+ return task;
+};
+
+TaskControlBlock.prototype.toString = function () {
+ return "tcb { " + this.task + "@" + this.state + " }";
+};
+
+/**
+ * An idle task doesn't do any work itself but cycles control between the two
+ * device tasks.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @param {int} v1 a seed value that controls how the device tasks are scheduled
+ * @param {int} count the number of times this task should be scheduled
+ * @constructor
+ */
+function IdleTask(scheduler, v1, count) {
+ this.scheduler = scheduler;
+ this.v1 = v1;
+ this.count = count;
+}
+
+IdleTask.prototype.run = function (packet) {
+ this.count--;
+ if (this.count == 0) return this.scheduler.holdCurrent();
+ if ((this.v1 & 1) == 0) {
+ this.v1 = this.v1 >> 1;
+ return this.scheduler.release(ID_DEVICE_A);
+ } else {
+ this.v1 = (this.v1 >> 1) ^ 0xD008;
+ return this.scheduler.release(ID_DEVICE_B);
+ }
+};
+
+IdleTask.prototype.toString = function () {
+ return "IdleTask"
+};
+
+/**
+ * A task that suspends itself after each time it has been run to simulate
+ * waiting for data from an external device.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @constructor
+ */
+function DeviceTask(scheduler) {
+ this.scheduler = scheduler;
+ this.v1 = null;
+}
+
+DeviceTask.prototype.run = function (packet) {
+ if (packet == null) {
+ if (this.v1 == null) return this.scheduler.suspendCurrent();
+ var v = this.v1;
+ this.v1 = null;
+ return this.scheduler.queue(v);
+ } else {
+ this.v1 = packet;
+ return this.scheduler.holdCurrent();
+ }
+};
+
+DeviceTask.prototype.toString = function () {
+ return "DeviceTask";
+};
+
+/**
+ * A task that manipulates work packets.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @param {int} v1 a seed used to specify how work packets are manipulated
+ * @param {int} v2 another seed used to specify how work packets are manipulated
+ * @constructor
+ */
+function WorkerTask(scheduler, v1, v2) {
+ this.scheduler = scheduler;
+ this.v1 = v1;
+ this.v2 = v2;
+}
+
+WorkerTask.prototype.run = function (packet) {
+ if (packet == null) {
+ return this.scheduler.suspendCurrent();
+ } else {
+ if (this.v1 == ID_HANDLER_A) {
+ this.v1 = ID_HANDLER_B;
+ } else {
+ this.v1 = ID_HANDLER_A;
+ }
+ packet.id = this.v1;
+ packet.a1 = 0;
+ for (var i = 0; i < DATA_SIZE; i++) {
+ this.v2++;
+ if (this.v2 > 26) this.v2 = 1;
+ packet.a2[i] = this.v2;
+ }
+ return this.scheduler.queue(packet);
+ }
+};
+
+WorkerTask.prototype.toString = function () {
+ return "WorkerTask";
+};
+
+/**
+ * A task that manipulates work packets and then suspends itself.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @constructor
+ */
+function HandlerTask(scheduler) {
+ this.scheduler = scheduler;
+ this.v1 = null;
+ this.v2 = null;
+}
+
+HandlerTask.prototype.run = function (packet) {
+ if (packet != null) {
+ if (packet.kind == KIND_WORK) {
+ this.v1 = packet.addTo(this.v1);
+ } else {
+ this.v2 = packet.addTo(this.v2);
+ }
+ }
+ if (this.v1 != null) {
+ var count = this.v1.a1;
+ var v;
+ if (count < DATA_SIZE) {
+ if (this.v2 != null) {
+ v = this.v2;
+ this.v2 = this.v2.link;
+ v.a1 = this.v1.a2[count];
+ this.v1.a1 = count + 1;
+ return this.scheduler.queue(v);
+ }
+ } else {
+ v = this.v1;
+ this.v1 = this.v1.link;
+ return this.scheduler.queue(v);
+ }
+ }
+ return this.scheduler.suspendCurrent();
+};
+
+HandlerTask.prototype.toString = function () {
+ return "HandlerTask";
+};
+
+/* --- *
+ * P a c k e t
+ * --- */
+
+var DATA_SIZE = 4;
+
+/**
+ * A simple package of data that is manipulated by the tasks. The exact layout
+ * of the payload data carried by a packet is not importaint, and neither is the
+ * nature of the work performed on packets by the tasks.
+ *
+ * Besides carrying data, packets form linked lists and are hence used both as
+ * data and worklists.
+ * @param {Packet} link the tail of the linked list of packets
+ * @param {int} id an ID for this packet
+ * @param {int} kind the type of this packet
+ * @constructor
+ */
+function Packet(link, id, kind) {
+ this.link = link;
+ this.id = id;
+ this.kind = kind;
+ this.a1 = 0;
+ this.a2 = new Array(DATA_SIZE);
+}
+
+/**
+ * Add this packet to the end of a worklist, and return the worklist.
+ * @param {Packet} queue the worklist to add this packet to
+ */
+Packet.prototype.addTo = function (queue) {
+ this.link = null;
+ if (queue == null) return this;
+ var peek, next = queue;
+ while ((peek = next.link) != null)
+ next = peek;
+ next.link = this;
+ return queue;
+};
+
+Packet.prototype.toString = function () {
+ return "Packet";
+};
+
+for (var i = 0; i < 350; ++i)
+ runRichards();
diff --git a/PerformanceTests/SunSpider/tests/v8-v4/v8-splay.js b/PerformanceTests/SunSpider/tests/v8-v4/v8-splay.js
new file mode 100644
index 000000000..abdbbde8d
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v4/v8-splay.js
@@ -0,0 +1,377 @@
+// Copyright 2009 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This benchmark is based on a JavaScript log processing module used
+// by the V8 profiler to generate execution time profiles for runs of
+// JavaScript applications, and it effectively measures how fast the
+// JavaScript engine is at allocating nodes and reclaiming the memory
+// used for old nodes. Because of the way splay trees work, the engine
+// also has to deal with a lot of changes to the large tree object
+// graph.
+
+// Configuration.
+var kSplayTreeSize = 8000;
+var kSplayTreeModifications = 80;
+var kSplayTreePayloadDepth = 5;
+
+var splayTree = null;
+
+
+function GeneratePayloadTree(depth, key) {
+ if (depth == 0) {
+ return {
+ array : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ],
+ string : 'String for key ' + key + ' in leaf node'
+ };
+ } else {
+ return {
+ left: GeneratePayloadTree(depth - 1, key),
+ right: GeneratePayloadTree(depth - 1, key)
+ };
+ }
+}
+
+
+function GenerateKey() {
+ // The benchmark framework guarantees that Math.random is
+ // deterministic; see base.js.
+ return Math.random();
+}
+
+
+function InsertNewNode() {
+ // Insert new node with a unique key.
+ var key;
+ do {
+ key = GenerateKey();
+ } while (splayTree.find(key) != null);
+ splayTree.insert(key, GeneratePayloadTree(kSplayTreePayloadDepth, key));
+ return key;
+}
+
+
+
+function SplaySetup() {
+ splayTree = new SplayTree();
+ for (var i = 0; i < kSplayTreeSize; i++) InsertNewNode();
+}
+
+
+function SplayTearDown() {
+ // Allow the garbage collector to reclaim the memory
+ // used by the splay tree no matter how we exit the
+ // tear down function.
+ var keys = splayTree.exportKeys();
+ splayTree = null;
+
+ // Verify that the splay tree has the right size.
+ var length = keys.length;
+ if (length != kSplayTreeSize) {
+ throw new Error("Splay tree has wrong size");
+ }
+
+ // Verify that the splay tree has sorted, unique keys.
+ for (var i = 0; i < length - 1; i++) {
+ if (keys[i] >= keys[i + 1]) {
+ throw new Error("Splay tree not sorted");
+ }
+ }
+}
+
+
+function SplayRun() {
+ // Replace a few nodes in the splay tree.
+ for (var i = 0; i < kSplayTreeModifications; i++) {
+ var key = InsertNewNode();
+ var greatest = splayTree.findGreatestLessThan(key);
+ if (greatest == null) splayTree.remove(key);
+ else splayTree.remove(greatest.key);
+ }
+}
+
+
+/**
+ * Constructs a Splay tree. A splay tree is a self-balancing binary
+ * search tree with the additional property that recently accessed
+ * elements are quick to access again. It performs basic operations
+ * such as insertion, look-up and removal in O(log(n)) amortized time.
+ *
+ * @constructor
+ */
+function SplayTree() {
+};
+
+
+/**
+ * Pointer to the root node of the tree.
+ *
+ * @type {SplayTree.Node}
+ * @private
+ */
+SplayTree.prototype.root_ = null;
+
+
+/**
+ * @return {boolean} Whether the tree is empty.
+ */
+SplayTree.prototype.isEmpty = function() {
+ return !this.root_;
+};
+
+
+/**
+ * Inserts a node into the tree with the specified key and value if
+ * the tree does not already contain a node with the specified key. If
+ * the value is inserted, it becomes the root of the tree.
+ *
+ * @param {number} key Key to insert into the tree.
+ * @param {*} value Value to insert into the tree.
+ */
+SplayTree.prototype.insert = function(key, value) {
+ if (this.isEmpty()) {
+ this.root_ = new SplayTree.Node(key, value);
+ return;
+ }
+ // Splay on the key to move the last node on the search path for
+ // the key to the root of the tree.
+ this.splay_(key);
+ if (this.root_.key == key) {
+ return;
+ }
+ var node = new SplayTree.Node(key, value);
+ if (key > this.root_.key) {
+ node.left = this.root_;
+ node.right = this.root_.right;
+ this.root_.right = null;
+ } else {
+ node.right = this.root_;
+ node.left = this.root_.left;
+ this.root_.left = null;
+ }
+ this.root_ = node;
+};
+
+
+/**
+ * Removes a node with the specified key from the tree if the tree
+ * contains a node with this key. The removed node is returned. If the
+ * key is not found, an exception is thrown.
+ *
+ * @param {number} key Key to find and remove from the tree.
+ * @return {SplayTree.Node} The removed node.
+ */
+SplayTree.prototype.remove = function(key) {
+ if (this.isEmpty()) {
+ throw Error('Key not found: ' + key);
+ }
+ this.splay_(key);
+ if (this.root_.key != key) {
+ throw Error('Key not found: ' + key);
+ }
+ var removed = this.root_;
+ if (!this.root_.left) {
+ this.root_ = this.root_.right;
+ } else {
+ var right = this.root_.right;
+ this.root_ = this.root_.left;
+ // Splay to make sure that the new root has an empty right child.
+ this.splay_(key);
+ // Insert the original right child as the right child of the new
+ // root.
+ this.root_.right = right;
+ }
+ return removed;
+};
+
+
+/**
+ * Returns the node having the specified key or null if the tree doesn't contain
+ * a node with the specified key.
+ *
+ * @param {number} key Key to find in the tree.
+ * @return {SplayTree.Node} Node having the specified key.
+ */
+SplayTree.prototype.find = function(key) {
+ if (this.isEmpty()) {
+ return null;
+ }
+ this.splay_(key);
+ return this.root_.key == key ? this.root_ : null;
+};
+
+
+/**
+ * @return {SplayTree.Node} Node having the maximum key value that
+ * is less or equal to the specified key value.
+ */
+SplayTree.prototype.findGreatestLessThan = function(key) {
+ if (this.isEmpty()) {
+ return null;
+ }
+ // Splay on the key to move the node with the given key or the last
+ // node on the search path to the top of the tree.
+ this.splay_(key);
+ // Now the result is either the root node or the greatest node in
+ // the left subtree.
+ if (this.root_.key <= key) {
+ return this.root_;
+ } else if (this.root_.left) {
+ return this.findMax(this.root_.left);
+ } else {
+ return null;
+ }
+};
+
+
+/**
+ * @return {Array<*>} An array containing all the keys of tree's nodes.
+ */
+SplayTree.prototype.exportKeys = function() {
+ var result = [];
+ if (!this.isEmpty()) {
+ this.root_.traverse_(function(node) { result.push(node.key); });
+ }
+ return result;
+};
+
+
+/**
+ * Perform the splay operation for the given key. Moves the node with
+ * the given key to the top of the tree. If no node has the given
+ * key, the last node on the search path is moved to the top of the
+ * tree. This is the simplified top-down splaying algorithm from:
+ * "Self-adjusting Binary Search Trees" by Sleator and Tarjan
+ *
+ * @param {number} key Key to splay the tree on.
+ * @private
+ */
+SplayTree.prototype.splay_ = function(key) {
+ if (this.isEmpty()) {
+ return;
+ }
+ // Create a dummy node. The use of the dummy node is a bit
+ // counter-intuitive: The right child of the dummy node will hold
+ // the L tree of the algorithm. The left child of the dummy node
+ // will hold the R tree of the algorithm. Using a dummy node, left
+ // and right will always be nodes and we avoid special cases.
+ var dummy, left, right;
+ dummy = left = right = new SplayTree.Node(null, null);
+ var current = this.root_;
+ while (true) {
+ if (key < current.key) {
+ if (!current.left) {
+ break;
+ }
+ if (key < current.left.key) {
+ // Rotate right.
+ var tmp = current.left;
+ current.left = tmp.right;
+ tmp.right = current;
+ current = tmp;
+ if (!current.left) {
+ break;
+ }
+ }
+ // Link right.
+ right.left = current;
+ right = current;
+ current = current.left;
+ } else if (key > current.key) {
+ if (!current.right) {
+ break;
+ }
+ if (key > current.right.key) {
+ // Rotate left.
+ var tmp = current.right;
+ current.right = tmp.left;
+ tmp.left = current;
+ current = tmp;
+ if (!current.right) {
+ break;
+ }
+ }
+ // Link left.
+ left.right = current;
+ left = current;
+ current = current.right;
+ } else {
+ break;
+ }
+ }
+ // Assemble.
+ left.right = current.left;
+ right.left = current.right;
+ current.left = dummy.right;
+ current.right = dummy.left;
+ this.root_ = current;
+};
+
+
+/**
+ * Constructs a Splay tree node.
+ *
+ * @param {number} key Key.
+ * @param {*} value Value.
+ */
+SplayTree.Node = function(key, value) {
+ this.key = key;
+ this.value = value;
+};
+
+
+/**
+ * @type {SplayTree.Node}
+ */
+SplayTree.Node.prototype.left = null;
+
+
+/**
+ * @type {SplayTree.Node}
+ */
+SplayTree.Node.prototype.right = null;
+
+
+/**
+ * Performs an ordered traversal of the subtree starting at
+ * this SplayTree.Node.
+ *
+ * @param {function(SplayTree.Node)} f Visitor function.
+ * @private
+ */
+SplayTree.Node.prototype.traverse_ = function(f) {
+ var current = this;
+ while (current) {
+ var left = current.left;
+ if (left) left.traverse_(f);
+ f(current);
+ current = current.right;
+ }
+};
+
+SplaySetup();
+SplayRun();
+SplayTearDown();
diff --git a/PerformanceTests/SunSpider/tests/v8-v5/LIST b/PerformanceTests/SunSpider/tests/v8-v5/LIST
new file mode 100644
index 000000000..117011b19
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v5/LIST
@@ -0,0 +1,7 @@
+v8-crypto
+v8-deltablue
+v8-earley-boyer
+v8-raytrace
+v8-regexp
+v8-richards
+v8-splay
diff --git a/PerformanceTests/SunSpider/tests/v8-v5/v8-crypto.js b/PerformanceTests/SunSpider/tests/v8-v5/v8-crypto.js
new file mode 100644
index 000000000..98e171d4a
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v5/v8-crypto.js
@@ -0,0 +1,1695 @@
+/*
+ * Copyright (c) 2003-2005 Tom Wu
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * In addition, the following condition applies:
+ *
+ * All redistributions must retain an intact copy of this copyright notice
+ * and disclaimer.
+ */
+
+// Basic JavaScript BN library - subset useful for RSA encryption.
+
+// Bits per digit
+var dbits;
+var BI_DB;
+var BI_DM;
+var BI_DV;
+
+var BI_FP;
+var BI_FV;
+var BI_F1;
+var BI_F2;
+
+// JavaScript engine analysis
+var canary = 0xdeadbeefcafe;
+var j_lm = ((canary&0xffffff)==0xefcafe);
+
+// (public) Constructor
+function BigInteger(a,b,c) {
+ this.array = new Array();
+ if(a != null)
+ if("number" == typeof a) this.fromNumber(a,b,c);
+ else if(b == null && "string" != typeof a) this.fromString(a,256);
+ else this.fromString(a,b);
+}
+
+// return new, unset BigInteger
+function nbi() { return new BigInteger(null); }
+
+// am: Compute w_j += (x*this_i), propagate carries,
+// c is initial carry, returns final carry.
+// c < 3*dvalue, x < 2*dvalue, this_i < dvalue
+// We need to select the fastest one that works in this environment.
+
+// am1: use a single mult and divide to get the high bits,
+// max digit bits should be 26 because
+// max internal value = 2*dvalue^2-2*dvalue (< 2^53)
+function am1(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+ while(--n >= 0) {
+ var v = x*this_array[i++]+w_array[j]+c;
+ c = Math.floor(v/0x4000000);
+ w_array[j++] = v&0x3ffffff;
+ }
+ return c;
+}
+
+// am2 avoids a big mult-and-extract completely.
+// Max digit bits should be <= 30 because we do bitwise ops
+// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
+function am2(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+ var xl = x&0x7fff, xh = x>>15;
+ while(--n >= 0) {
+ var l = this_array[i]&0x7fff;
+ var h = this_array[i++]>>15;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x7fff)<<15)+w_array[j]+(c&0x3fffffff);
+ c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
+ w_array[j++] = l&0x3fffffff;
+ }
+ return c;
+}
+
+// Alternately, set max digit bits to 28 since some
+// browsers slow down when dealing with 32-bit numbers.
+function am3(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+
+ var xl = x&0x3fff, xh = x>>14;
+ while(--n >= 0) {
+ var l = this_array[i]&0x3fff;
+ var h = this_array[i++]>>14;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x3fff)<<14)+w_array[j]+c;
+ c = (l>>28)+(m>>14)+xh*h;
+ w_array[j++] = l&0xfffffff;
+ }
+ return c;
+}
+
+// This is tailored to VMs with 2-bit tagging. It makes sure
+// that all the computations stay within the 29 bits available.
+function am4(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+
+ var xl = x&0x1fff, xh = x>>13;
+ while(--n >= 0) {
+ var l = this_array[i]&0x1fff;
+ var h = this_array[i++]>>13;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x1fff)<<13)+w_array[j]+c;
+ c = (l>>26)+(m>>13)+xh*h;
+ w_array[j++] = l&0x3ffffff;
+ }
+ return c;
+}
+
+// am3/28 is best for SM, Rhino, but am4/26 is best for v8.
+// Kestrel (Opera 9.5) gets its best result with am4/26.
+// IE7 does 9% better with am3/28 than with am4/26.
+// Firefox (SM) gets 10% faster with am3/28 than with am4/26.
+
+setupEngine = function(fn, bits) {
+ BigInteger.prototype.am = fn;
+ dbits = bits;
+
+ BI_DB = dbits;
+ BI_DM = ((1<<dbits)-1);
+ BI_DV = (1<<dbits);
+
+ BI_FP = 52;
+ BI_FV = Math.pow(2,BI_FP);
+ BI_F1 = BI_FP-dbits;
+ BI_F2 = 2*dbits-BI_FP;
+}
+
+
+// Digit conversions
+var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
+var BI_RC = new Array();
+var rr,vv;
+rr = "0".charCodeAt(0);
+for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
+rr = "a".charCodeAt(0);
+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
+rr = "A".charCodeAt(0);
+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
+
+function int2char(n) { return BI_RM.charAt(n); }
+function intAt(s,i) {
+ var c = BI_RC[s.charCodeAt(i)];
+ return (c==null)?-1:c;
+}
+
+// (protected) copy this to r
+function bnpCopyTo(r) {
+ var this_array = this.array;
+ var r_array = r.array;
+
+ for(var i = this.t-1; i >= 0; --i) r_array[i] = this_array[i];
+ r.t = this.t;
+ r.s = this.s;
+}
+
+// (protected) set from integer value x, -DV <= x < DV
+function bnpFromInt(x) {
+ var this_array = this.array;
+ this.t = 1;
+ this.s = (x<0)?-1:0;
+ if(x > 0) this_array[0] = x;
+ else if(x < -1) this_array[0] = x+DV;
+ else this.t = 0;
+}
+
+// return bigint initialized to value
+function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
+
+// (protected) set from string and radix
+function bnpFromString(s,b) {
+ var this_array = this.array;
+ var k;
+ if(b == 16) k = 4;
+ else if(b == 8) k = 3;
+ else if(b == 256) k = 8; // byte array
+ else if(b == 2) k = 1;
+ else if(b == 32) k = 5;
+ else if(b == 4) k = 2;
+ else { this.fromRadix(s,b); return; }
+ this.t = 0;
+ this.s = 0;
+ var i = s.length, mi = false, sh = 0;
+ while(--i >= 0) {
+ var x = (k==8)?s[i]&0xff:intAt(s,i);
+ if(x < 0) {
+ if(s.charAt(i) == "-") mi = true;
+ continue;
+ }
+ mi = false;
+ if(sh == 0)
+ this_array[this.t++] = x;
+ else if(sh+k > BI_DB) {
+ this_array[this.t-1] |= (x&((1<<(BI_DB-sh))-1))<<sh;
+ this_array[this.t++] = (x>>(BI_DB-sh));
+ }
+ else
+ this_array[this.t-1] |= x<<sh;
+ sh += k;
+ if(sh >= BI_DB) sh -= BI_DB;
+ }
+ if(k == 8 && (s[0]&0x80) != 0) {
+ this.s = -1;
+ if(sh > 0) this_array[this.t-1] |= ((1<<(BI_DB-sh))-1)<<sh;
+ }
+ this.clamp();
+ if(mi) BigInteger.ZERO.subTo(this,this);
+}
+
+// (protected) clamp off excess high words
+function bnpClamp() {
+ var this_array = this.array;
+ var c = this.s&BI_DM;
+ while(this.t > 0 && this_array[this.t-1] == c) --this.t;
+}
+
+// (public) return string representation in given radix
+function bnToString(b) {
+ var this_array = this.array;
+ if(this.s < 0) return "-"+this.negate().toString(b);
+ var k;
+ if(b == 16) k = 4;
+ else if(b == 8) k = 3;
+ else if(b == 2) k = 1;
+ else if(b == 32) k = 5;
+ else if(b == 4) k = 2;
+ else return this.toRadix(b);
+ var km = (1<<k)-1, d, m = false, r = "", i = this.t;
+ var p = BI_DB-(i*BI_DB)%k;
+ if(i-- > 0) {
+ if(p < BI_DB && (d = this_array[i]>>p) > 0) { m = true; r = int2char(d); }
+ while(i >= 0) {
+ if(p < k) {
+ d = (this_array[i]&((1<<p)-1))<<(k-p);
+ d |= this_array[--i]>>(p+=BI_DB-k);
+ }
+ else {
+ d = (this_array[i]>>(p-=k))&km;
+ if(p <= 0) { p += BI_DB; --i; }
+ }
+ if(d > 0) m = true;
+ if(m) r += int2char(d);
+ }
+ }
+ return m?r:"0";
+}
+
+// (public) -this
+function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
+
+// (public) |this|
+function bnAbs() { return (this.s<0)?this.negate():this; }
+
+// (public) return + if this > a, - if this < a, 0 if equal
+function bnCompareTo(a) {
+ var this_array = this.array;
+ var a_array = a.array;
+
+ var r = this.s-a.s;
+ if(r != 0) return r;
+ var i = this.t;
+ r = i-a.t;
+ if(r != 0) return r;
+ while(--i >= 0) if((r=this_array[i]-a_array[i]) != 0) return r;
+ return 0;
+}
+
+// returns bit length of the integer x
+function nbits(x) {
+ var r = 1, t;
+ if((t=x>>>16) != 0) { x = t; r += 16; }
+ if((t=x>>8) != 0) { x = t; r += 8; }
+ if((t=x>>4) != 0) { x = t; r += 4; }
+ if((t=x>>2) != 0) { x = t; r += 2; }
+ if((t=x>>1) != 0) { x = t; r += 1; }
+ return r;
+}
+
+// (public) return the number of bits in "this"
+function bnBitLength() {
+ var this_array = this.array;
+ if(this.t <= 0) return 0;
+ return BI_DB*(this.t-1)+nbits(this_array[this.t-1]^(this.s&BI_DM));
+}
+
+// (protected) r = this << n*DB
+function bnpDLShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var i;
+ for(i = this.t-1; i >= 0; --i) r_array[i+n] = this_array[i];
+ for(i = n-1; i >= 0; --i) r_array[i] = 0;
+ r.t = this.t+n;
+ r.s = this.s;
+}
+
+// (protected) r = this >> n*DB
+function bnpDRShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ for(var i = n; i < this.t; ++i) r_array[i-n] = this_array[i];
+ r.t = Math.max(this.t-n,0);
+ r.s = this.s;
+}
+
+// (protected) r = this << n
+function bnpLShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var bs = n%BI_DB;
+ var cbs = BI_DB-bs;
+ var bm = (1<<cbs)-1;
+ var ds = Math.floor(n/BI_DB), c = (this.s<<bs)&BI_DM, i;
+ for(i = this.t-1; i >= 0; --i) {
+ r_array[i+ds+1] = (this_array[i]>>cbs)|c;
+ c = (this_array[i]&bm)<<bs;
+ }
+ for(i = ds-1; i >= 0; --i) r_array[i] = 0;
+ r_array[ds] = c;
+ r.t = this.t+ds+1;
+ r.s = this.s;
+ r.clamp();
+}
+
+// (protected) r = this >> n
+function bnpRShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ r.s = this.s;
+ var ds = Math.floor(n/BI_DB);
+ if(ds >= this.t) { r.t = 0; return; }
+ var bs = n%BI_DB;
+ var cbs = BI_DB-bs;
+ var bm = (1<<bs)-1;
+ r_array[0] = this_array[ds]>>bs;
+ for(var i = ds+1; i < this.t; ++i) {
+ r_array[i-ds-1] |= (this_array[i]&bm)<<cbs;
+ r_array[i-ds] = this_array[i]>>bs;
+ }
+ if(bs > 0) r_array[this.t-ds-1] |= (this.s&bm)<<cbs;
+ r.t = this.t-ds;
+ r.clamp();
+}
+
+// (protected) r = this - a
+function bnpSubTo(a,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var a_array = a.array;
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
+ while(i < m) {
+ c += this_array[i]-a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ if(a.t < this.t) {
+ c -= a.s;
+ while(i < this.t) {
+ c += this_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += this.s;
+ }
+ else {
+ c += this.s;
+ while(i < a.t) {
+ c -= a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c -= a.s;
+ }
+ r.s = (c<0)?-1:0;
+ if(c < -1) r_array[i++] = BI_DV+c;
+ else if(c > 0) r_array[i++] = c;
+ r.t = i;
+ r.clamp();
+}
+
+// (protected) r = this * a, r != this,a (HAC 14.12)
+// "this" should be the larger one if appropriate.
+function bnpMultiplyTo(a,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var x = this.abs(), y = a.abs();
+ var y_array = y.array;
+
+ var i = x.t;
+ r.t = i+y.t;
+ while(--i >= 0) r_array[i] = 0;
+ for(i = 0; i < y.t; ++i) r_array[i+x.t] = x.am(0,y_array[i],r,i,0,x.t);
+ r.s = 0;
+ r.clamp();
+ if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
+}
+
+// (protected) r = this^2, r != this (HAC 14.16)
+function bnpSquareTo(r) {
+ var x = this.abs();
+ var x_array = x.array;
+ var r_array = r.array;
+
+ var i = r.t = 2*x.t;
+ while(--i >= 0) r_array[i] = 0;
+ for(i = 0; i < x.t-1; ++i) {
+ var c = x.am(i,x_array[i],r,2*i,0,1);
+ if((r_array[i+x.t]+=x.am(i+1,2*x_array[i],r,2*i+1,c,x.t-i-1)) >= BI_DV) {
+ r_array[i+x.t] -= BI_DV;
+ r_array[i+x.t+1] = 1;
+ }
+ }
+ if(r.t > 0) r_array[r.t-1] += x.am(i,x_array[i],r,2*i,0,1);
+ r.s = 0;
+ r.clamp();
+}
+
+// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
+// r != q, this != m. q or r may be null.
+function bnpDivRemTo(m,q,r) {
+ var pm = m.abs();
+ if(pm.t <= 0) return;
+ var pt = this.abs();
+ if(pt.t < pm.t) {
+ if(q != null) q.fromInt(0);
+ if(r != null) this.copyTo(r);
+ return;
+ }
+ if(r == null) r = nbi();
+ var y = nbi(), ts = this.s, ms = m.s;
+ var pm_array = pm.array;
+ var nsh = BI_DB-nbits(pm_array[pm.t-1]); // normalize modulus
+ if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
+ else { pm.copyTo(y); pt.copyTo(r); }
+ var ys = y.t;
+
+ var y_array = y.array;
+ var y0 = y_array[ys-1];
+ if(y0 == 0) return;
+ var yt = y0*(1<<BI_F1)+((ys>1)?y_array[ys-2]>>BI_F2:0);
+ var d1 = BI_FV/yt, d2 = (1<<BI_F1)/yt, e = 1<<BI_F2;
+ var i = r.t, j = i-ys, t = (q==null)?nbi():q;
+ y.dlShiftTo(j,t);
+
+ var r_array = r.array;
+ if(r.compareTo(t) >= 0) {
+ r_array[r.t++] = 1;
+ r.subTo(t,r);
+ }
+ BigInteger.ONE.dlShiftTo(ys,t);
+ t.subTo(y,y); // "negative" y so we can replace sub with am later
+ while(y.t < ys) y_array[y.t++] = 0;
+ while(--j >= 0) {
+ // Estimate quotient digit
+ var qd = (r_array[--i]==y0)?BI_DM:Math.floor(r_array[i]*d1+(r_array[i-1]+e)*d2);
+ if((r_array[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
+ y.dlShiftTo(j,t);
+ r.subTo(t,r);
+ while(r_array[i] < --qd) r.subTo(t,r);
+ }
+ }
+ if(q != null) {
+ r.drShiftTo(ys,q);
+ if(ts != ms) BigInteger.ZERO.subTo(q,q);
+ }
+ r.t = ys;
+ r.clamp();
+ if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
+ if(ts < 0) BigInteger.ZERO.subTo(r,r);
+}
+
+// (public) this mod a
+function bnMod(a) {
+ var r = nbi();
+ this.abs().divRemTo(a,null,r);
+ if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
+ return r;
+}
+
+// Modular reduction using "classic" algorithm
+function Classic(m) { this.m = m; }
+function cConvert(x) {
+ if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
+ else return x;
+}
+function cRevert(x) { return x; }
+function cReduce(x) { x.divRemTo(this.m,null,x); }
+function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+Classic.prototype.convert = cConvert;
+Classic.prototype.revert = cRevert;
+Classic.prototype.reduce = cReduce;
+Classic.prototype.mulTo = cMulTo;
+Classic.prototype.sqrTo = cSqrTo;
+
+// (protected) return "-1/this % 2^DB"; useful for Mont. reduction
+// justification:
+// xy == 1 (mod m)
+// xy = 1+km
+// xy(2-xy) = (1+km)(1-km)
+// x[y(2-xy)] = 1-k^2m^2
+// x[y(2-xy)] == 1 (mod m^2)
+// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
+// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
+// JS multiply "overflows" differently from C/C++, so care is needed here.
+function bnpInvDigit() {
+ var this_array = this.array;
+ if(this.t < 1) return 0;
+ var x = this_array[0];
+ if((x&1) == 0) return 0;
+ var y = x&3; // y == 1/x mod 2^2
+ y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
+ y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
+ y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
+ // last step - calculate inverse mod DV directly;
+ // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
+ y = (y*(2-x*y%BI_DV))%BI_DV; // y == 1/x mod 2^dbits
+ // we really want the negative inverse, and -DV < y < DV
+ return (y>0)?BI_DV-y:-y;
+}
+
+// Montgomery reduction
+function Montgomery(m) {
+ this.m = m;
+ this.mp = m.invDigit();
+ this.mpl = this.mp&0x7fff;
+ this.mph = this.mp>>15;
+ this.um = (1<<(BI_DB-15))-1;
+ this.mt2 = 2*m.t;
+}
+
+// xR mod m
+function montConvert(x) {
+ var r = nbi();
+ x.abs().dlShiftTo(this.m.t,r);
+ r.divRemTo(this.m,null,r);
+ if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
+ return r;
+}
+
+// x/R mod m
+function montRevert(x) {
+ var r = nbi();
+ x.copyTo(r);
+ this.reduce(r);
+ return r;
+}
+
+// x = x/R mod m (HAC 14.32)
+function montReduce(x) {
+ var x_array = x.array;
+ while(x.t <= this.mt2) // pad x so am has enough room later
+ x_array[x.t++] = 0;
+ for(var i = 0; i < this.m.t; ++i) {
+ // faster way of calculating u0 = x[i]*mp mod DV
+ var j = x_array[i]&0x7fff;
+ var u0 = (j*this.mpl+(((j*this.mph+(x_array[i]>>15)*this.mpl)&this.um)<<15))&BI_DM;
+ // use am to combine the multiply-shift-add into one call
+ j = i+this.m.t;
+ x_array[j] += this.m.am(0,u0,x,i,0,this.m.t);
+ // propagate carry
+ while(x_array[j] >= BI_DV) { x_array[j] -= BI_DV; x_array[++j]++; }
+ }
+ x.clamp();
+ x.drShiftTo(this.m.t,x);
+ if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
+}
+
+// r = "x^2/R mod m"; x != r
+function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+// r = "xy/R mod m"; x,y != r
+function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+
+Montgomery.prototype.convert = montConvert;
+Montgomery.prototype.revert = montRevert;
+Montgomery.prototype.reduce = montReduce;
+Montgomery.prototype.mulTo = montMulTo;
+Montgomery.prototype.sqrTo = montSqrTo;
+
+// (protected) true iff this is even
+function bnpIsEven() {
+ var this_array = this.array;
+ return ((this.t>0)?(this_array[0]&1):this.s) == 0;
+}
+
+// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
+function bnpExp(e,z) {
+ if(e > 0xffffffff || e < 1) return BigInteger.ONE;
+ var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
+ g.copyTo(r);
+ while(--i >= 0) {
+ z.sqrTo(r,r2);
+ if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
+ else { var t = r; r = r2; r2 = t; }
+ }
+ return z.revert(r);
+}
+
+// (public) this^e % m, 0 <= e < 2^32
+function bnModPowInt(e,m) {
+ var z;
+ if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
+ return this.exp(e,z);
+}
+
+// protected
+BigInteger.prototype.copyTo = bnpCopyTo;
+BigInteger.prototype.fromInt = bnpFromInt;
+BigInteger.prototype.fromString = bnpFromString;
+BigInteger.prototype.clamp = bnpClamp;
+BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
+BigInteger.prototype.drShiftTo = bnpDRShiftTo;
+BigInteger.prototype.lShiftTo = bnpLShiftTo;
+BigInteger.prototype.rShiftTo = bnpRShiftTo;
+BigInteger.prototype.subTo = bnpSubTo;
+BigInteger.prototype.multiplyTo = bnpMultiplyTo;
+BigInteger.prototype.squareTo = bnpSquareTo;
+BigInteger.prototype.divRemTo = bnpDivRemTo;
+BigInteger.prototype.invDigit = bnpInvDigit;
+BigInteger.prototype.isEven = bnpIsEven;
+BigInteger.prototype.exp = bnpExp;
+
+// public
+BigInteger.prototype.toString = bnToString;
+BigInteger.prototype.negate = bnNegate;
+BigInteger.prototype.abs = bnAbs;
+BigInteger.prototype.compareTo = bnCompareTo;
+BigInteger.prototype.bitLength = bnBitLength;
+BigInteger.prototype.mod = bnMod;
+BigInteger.prototype.modPowInt = bnModPowInt;
+
+// "constants"
+BigInteger.ZERO = nbv(0);
+BigInteger.ONE = nbv(1);
+// Copyright (c) 2005 Tom Wu
+// All Rights Reserved.
+// See "LICENSE" for details.
+
+// Extended JavaScript BN functions, required for RSA private ops.
+
+// (public)
+function bnClone() { var r = nbi(); this.copyTo(r); return r; }
+
+// (public) return value as integer
+function bnIntValue() {
+ var this_array = this.array;
+ if(this.s < 0) {
+ if(this.t == 1) return this_array[0]-BI_DV;
+ else if(this.t == 0) return -1;
+ }
+ else if(this.t == 1) return this_array[0];
+ else if(this.t == 0) return 0;
+ // assumes 16 < DB < 32
+ return ((this_array[1]&((1<<(32-BI_DB))-1))<<BI_DB)|this_array[0];
+}
+
+// (public) return value as byte
+function bnByteValue() {
+ var this_array = this.array;
+ return (this.t==0)?this.s:(this_array[0]<<24)>>24;
+}
+
+// (public) return value as short (assumes DB>=16)
+function bnShortValue() {
+ var this_array = this.array;
+ return (this.t==0)?this.s:(this_array[0]<<16)>>16;
+}
+
+// (protected) return x s.t. r^x < DV
+function bnpChunkSize(r) { return Math.floor(Math.LN2*BI_DB/Math.log(r)); }
+
+// (public) 0 if this == 0, 1 if this > 0
+function bnSigNum() {
+ var this_array = this.array;
+ if(this.s < 0) return -1;
+ else if(this.t <= 0 || (this.t == 1 && this_array[0] <= 0)) return 0;
+ else return 1;
+}
+
+// (protected) convert to radix string
+function bnpToRadix(b) {
+ if(b == null) b = 10;
+ if(this.signum() == 0 || b < 2 || b > 36) return "0";
+ var cs = this.chunkSize(b);
+ var a = Math.pow(b,cs);
+ var d = nbv(a), y = nbi(), z = nbi(), r = "";
+ this.divRemTo(d,y,z);
+ while(y.signum() > 0) {
+ r = (a+z.intValue()).toString(b).substr(1) + r;
+ y.divRemTo(d,y,z);
+ }
+ return z.intValue().toString(b) + r;
+}
+
+// (protected) convert from radix string
+function bnpFromRadix(s,b) {
+ this.fromInt(0);
+ if(b == null) b = 10;
+ var cs = this.chunkSize(b);
+ var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
+ for(var i = 0; i < s.length; ++i) {
+ var x = intAt(s,i);
+ if(x < 0) {
+ if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
+ continue;
+ }
+ w = b*w+x;
+ if(++j >= cs) {
+ this.dMultiply(d);
+ this.dAddOffset(w,0);
+ j = 0;
+ w = 0;
+ }
+ }
+ if(j > 0) {
+ this.dMultiply(Math.pow(b,j));
+ this.dAddOffset(w,0);
+ }
+ if(mi) BigInteger.ZERO.subTo(this,this);
+}
+
+// (protected) alternate constructor
+function bnpFromNumber(a,b,c) {
+ if("number" == typeof b) {
+ // new BigInteger(int,int,RNG)
+ if(a < 2) this.fromInt(1);
+ else {
+ this.fromNumber(a,c);
+ if(!this.testBit(a-1)) // force MSB set
+ this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);
+ if(this.isEven()) this.dAddOffset(1,0); // force odd
+ while(!this.isProbablePrime(b)) {
+ this.dAddOffset(2,0);
+ if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);
+ }
+ }
+ }
+ else {
+ // new BigInteger(int,RNG)
+ var x = new Array(), t = a&7;
+ x.length = (a>>3)+1;
+ b.nextBytes(x);
+ if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;
+ this.fromString(x,256);
+ }
+}
+
+// (public) convert to bigendian byte array
+function bnToByteArray() {
+ var this_array = this.array;
+ var i = this.t, r = new Array();
+ r[0] = this.s;
+ var p = BI_DB-(i*BI_DB)%8, d, k = 0;
+ if(i-- > 0) {
+ if(p < BI_DB && (d = this_array[i]>>p) != (this.s&BI_DM)>>p)
+ r[k++] = d|(this.s<<(BI_DB-p));
+ while(i >= 0) {
+ if(p < 8) {
+ d = (this_array[i]&((1<<p)-1))<<(8-p);
+ d |= this_array[--i]>>(p+=BI_DB-8);
+ }
+ else {
+ d = (this_array[i]>>(p-=8))&0xff;
+ if(p <= 0) { p += BI_DB; --i; }
+ }
+ if((d&0x80) != 0) d |= -256;
+ if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;
+ if(k > 0 || d != this.s) r[k++] = d;
+ }
+ }
+ return r;
+}
+
+function bnEquals(a) { return(this.compareTo(a)==0); }
+function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
+function bnMax(a) { return(this.compareTo(a)>0)?this:a; }
+
+// (protected) r = this op a (bitwise)
+function bnpBitwiseTo(a,op,r) {
+ var this_array = this.array;
+ var a_array = a.array;
+ var r_array = r.array;
+ var i, f, m = Math.min(a.t,this.t);
+ for(i = 0; i < m; ++i) r_array[i] = op(this_array[i],a_array[i]);
+ if(a.t < this.t) {
+ f = a.s&BI_DM;
+ for(i = m; i < this.t; ++i) r_array[i] = op(this_array[i],f);
+ r.t = this.t;
+ }
+ else {
+ f = this.s&BI_DM;
+ for(i = m; i < a.t; ++i) r_array[i] = op(f,a_array[i]);
+ r.t = a.t;
+ }
+ r.s = op(this.s,a.s);
+ r.clamp();
+}
+
+// (public) this & a
+function op_and(x,y) { return x&y; }
+function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }
+
+// (public) this | a
+function op_or(x,y) { return x|y; }
+function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }
+
+// (public) this ^ a
+function op_xor(x,y) { return x^y; }
+function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }
+
+// (public) this & ~a
+function op_andnot(x,y) { return x&~y; }
+function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }
+
+// (public) ~this
+function bnNot() {
+ var this_array = this.array;
+ var r = nbi();
+ var r_array = r.array;
+
+ for(var i = 0; i < this.t; ++i) r_array[i] = BI_DM&~this_array[i];
+ r.t = this.t;
+ r.s = ~this.s;
+ return r;
+}
+
+// (public) this << n
+function bnShiftLeft(n) {
+ var r = nbi();
+ if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);
+ return r;
+}
+
+// (public) this >> n
+function bnShiftRight(n) {
+ var r = nbi();
+ if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);
+ return r;
+}
+
+// return index of lowest 1-bit in x, x < 2^31
+function lbit(x) {
+ if(x == 0) return -1;
+ var r = 0;
+ if((x&0xffff) == 0) { x >>= 16; r += 16; }
+ if((x&0xff) == 0) { x >>= 8; r += 8; }
+ if((x&0xf) == 0) { x >>= 4; r += 4; }
+ if((x&3) == 0) { x >>= 2; r += 2; }
+ if((x&1) == 0) ++r;
+ return r;
+}
+
+// (public) returns index of lowest 1-bit (or -1 if none)
+function bnGetLowestSetBit() {
+ var this_array = this.array;
+ for(var i = 0; i < this.t; ++i)
+ if(this_array[i] != 0) return i*BI_DB+lbit(this_array[i]);
+ if(this.s < 0) return this.t*BI_DB;
+ return -1;
+}
+
+// return number of 1 bits in x
+function cbit(x) {
+ var r = 0;
+ while(x != 0) { x &= x-1; ++r; }
+ return r;
+}
+
+// (public) return number of set bits
+function bnBitCount() {
+ var r = 0, x = this.s&BI_DM;
+ for(var i = 0; i < this.t; ++i) r += cbit(this_array[i]^x);
+ return r;
+}
+
+// (public) true iff nth bit is set
+function bnTestBit(n) {
+ var this_array = this.array;
+ var j = Math.floor(n/BI_DB);
+ if(j >= this.t) return(this.s!=0);
+ return((this_array[j]&(1<<(n%BI_DB)))!=0);
+}
+
+// (protected) this op (1<<n)
+function bnpChangeBit(n,op) {
+ var r = BigInteger.ONE.shiftLeft(n);
+ this.bitwiseTo(r,op,r);
+ return r;
+}
+
+// (public) this | (1<<n)
+function bnSetBit(n) { return this.changeBit(n,op_or); }
+
+// (public) this & ~(1<<n)
+function bnClearBit(n) { return this.changeBit(n,op_andnot); }
+
+// (public) this ^ (1<<n)
+function bnFlipBit(n) { return this.changeBit(n,op_xor); }
+
+// (protected) r = this + a
+function bnpAddTo(a,r) {
+ var this_array = this.array;
+ var a_array = a.array;
+ var r_array = r.array;
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
+ while(i < m) {
+ c += this_array[i]+a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ if(a.t < this.t) {
+ c += a.s;
+ while(i < this.t) {
+ c += this_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += this.s;
+ }
+ else {
+ c += this.s;
+ while(i < a.t) {
+ c += a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += a.s;
+ }
+ r.s = (c<0)?-1:0;
+ if(c > 0) r_array[i++] = c;
+ else if(c < -1) r_array[i++] = BI_DV+c;
+ r.t = i;
+ r.clamp();
+}
+
+// (public) this + a
+function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }
+
+// (public) this - a
+function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }
+
+// (public) this * a
+function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }
+
+// (public) this / a
+function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }
+
+// (public) this % a
+function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }
+
+// (public) [this/a,this%a]
+function bnDivideAndRemainder(a) {
+ var q = nbi(), r = nbi();
+ this.divRemTo(a,q,r);
+ return new Array(q,r);
+}
+
+// (protected) this *= n, this >= 0, 1 < n < DV
+function bnpDMultiply(n) {
+ var this_array = this.array;
+ this_array[this.t] = this.am(0,n-1,this,0,0,this.t);
+ ++this.t;
+ this.clamp();
+}
+
+// (protected) this += n << w words, this >= 0
+function bnpDAddOffset(n,w) {
+ var this_array = this.array;
+ while(this.t <= w) this_array[this.t++] = 0;
+ this_array[w] += n;
+ while(this_array[w] >= BI_DV) {
+ this_array[w] -= BI_DV;
+ if(++w >= this.t) this_array[this.t++] = 0;
+ ++this_array[w];
+ }
+}
+
+// A "null" reducer
+function NullExp() {}
+function nNop(x) { return x; }
+function nMulTo(x,y,r) { x.multiplyTo(y,r); }
+function nSqrTo(x,r) { x.squareTo(r); }
+
+NullExp.prototype.convert = nNop;
+NullExp.prototype.revert = nNop;
+NullExp.prototype.mulTo = nMulTo;
+NullExp.prototype.sqrTo = nSqrTo;
+
+// (public) this^e
+function bnPow(e) { return this.exp(e,new NullExp()); }
+
+// (protected) r = lower n words of "this * a", a.t <= n
+// "this" should be the larger one if appropriate.
+function bnpMultiplyLowerTo(a,n,r) {
+ var r_array = r.array;
+ var a_array = a.array;
+ var i = Math.min(this.t+a.t,n);
+ r.s = 0; // assumes a,this >= 0
+ r.t = i;
+ while(i > 0) r_array[--i] = 0;
+ var j;
+ for(j = r.t-this.t; i < j; ++i) r_array[i+this.t] = this.am(0,a_array[i],r,i,0,this.t);
+ for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a_array[i],r,i,0,n-i);
+ r.clamp();
+}
+
+// (protected) r = "this * a" without lower n words, n > 0
+// "this" should be the larger one if appropriate.
+function bnpMultiplyUpperTo(a,n,r) {
+ var r_array = r.array;
+ var a_array = a.array;
+ --n;
+ var i = r.t = this.t+a.t-n;
+ r.s = 0; // assumes a,this >= 0
+ while(--i >= 0) r_array[i] = 0;
+ for(i = Math.max(n-this.t,0); i < a.t; ++i)
+ r_array[this.t+i-n] = this.am(n-i,a_array[i],r,0,0,this.t+i-n);
+ r.clamp();
+ r.drShiftTo(1,r);
+}
+
+// Barrett modular reduction
+function Barrett(m) {
+ // setup Barrett
+ this.r2 = nbi();
+ this.q3 = nbi();
+ BigInteger.ONE.dlShiftTo(2*m.t,this.r2);
+ this.mu = this.r2.divide(m);
+ this.m = m;
+}
+
+function barrettConvert(x) {
+ if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);
+ else if(x.compareTo(this.m) < 0) return x;
+ else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }
+}
+
+function barrettRevert(x) { return x; }
+
+// x = x mod m (HAC 14.42)
+function barrettReduce(x) {
+ x.drShiftTo(this.m.t-1,this.r2);
+ if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }
+ this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);
+ this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);
+ while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);
+ x.subTo(this.r2,x);
+ while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
+}
+
+// r = x^2 mod m; x != r
+function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+// r = x*y mod m; x,y != r
+function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+
+Barrett.prototype.convert = barrettConvert;
+Barrett.prototype.revert = barrettRevert;
+Barrett.prototype.reduce = barrettReduce;
+Barrett.prototype.mulTo = barrettMulTo;
+Barrett.prototype.sqrTo = barrettSqrTo;
+
+// (public) this^e % m (HAC 14.85)
+function bnModPow(e,m) {
+ var e_array = e.array;
+ var i = e.bitLength(), k, r = nbv(1), z;
+ if(i <= 0) return r;
+ else if(i < 18) k = 1;
+ else if(i < 48) k = 3;
+ else if(i < 144) k = 4;
+ else if(i < 768) k = 5;
+ else k = 6;
+ if(i < 8)
+ z = new Classic(m);
+ else if(m.isEven())
+ z = new Barrett(m);
+ else
+ z = new Montgomery(m);
+
+ // precomputation
+ var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;
+ g[1] = z.convert(this);
+ if(k > 1) {
+ var g2 = nbi();
+ z.sqrTo(g[1],g2);
+ while(n <= km) {
+ g[n] = nbi();
+ z.mulTo(g2,g[n-2],g[n]);
+ n += 2;
+ }
+ }
+
+ var j = e.t-1, w, is1 = true, r2 = nbi(), t;
+ i = nbits(e_array[j])-1;
+ while(j >= 0) {
+ if(i >= k1) w = (e_array[j]>>(i-k1))&km;
+ else {
+ w = (e_array[j]&((1<<(i+1))-1))<<(k1-i);
+ if(j > 0) w |= e_array[j-1]>>(BI_DB+i-k1);
+ }
+
+ n = k;
+ while((w&1) == 0) { w >>= 1; --n; }
+ if((i -= n) < 0) { i += BI_DB; --j; }
+ if(is1) { // ret == 1, don't bother squaring or multiplying it
+ g[w].copyTo(r);
+ is1 = false;
+ }
+ else {
+ while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }
+ if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }
+ z.mulTo(r2,g[w],r);
+ }
+
+ while(j >= 0 && (e_array[j]&(1<<i)) == 0) {
+ z.sqrTo(r,r2); t = r; r = r2; r2 = t;
+ if(--i < 0) { i = BI_DB-1; --j; }
+ }
+ }
+ return z.revert(r);
+}
+
+// (public) gcd(this,a) (HAC 14.54)
+function bnGCD(a) {
+ var x = (this.s<0)?this.negate():this.clone();
+ var y = (a.s<0)?a.negate():a.clone();
+ if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }
+ var i = x.getLowestSetBit(), g = y.getLowestSetBit();
+ if(g < 0) return x;
+ if(i < g) g = i;
+ if(g > 0) {
+ x.rShiftTo(g,x);
+ y.rShiftTo(g,y);
+ }
+ while(x.signum() > 0) {
+ if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);
+ if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);
+ if(x.compareTo(y) >= 0) {
+ x.subTo(y,x);
+ x.rShiftTo(1,x);
+ }
+ else {
+ y.subTo(x,y);
+ y.rShiftTo(1,y);
+ }
+ }
+ if(g > 0) y.lShiftTo(g,y);
+ return y;
+}
+
+// (protected) this % n, n < 2^26
+function bnpModInt(n) {
+ var this_array = this.array;
+ if(n <= 0) return 0;
+ var d = BI_DV%n, r = (this.s<0)?n-1:0;
+ if(this.t > 0)
+ if(d == 0) r = this_array[0]%n;
+ else for(var i = this.t-1; i >= 0; --i) r = (d*r+this_array[i])%n;
+ return r;
+}
+
+// (public) 1/this % m (HAC 14.61)
+function bnModInverse(m) {
+ var ac = m.isEven();
+ if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;
+ var u = m.clone(), v = this.clone();
+ var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);
+ while(u.signum() != 0) {
+ while(u.isEven()) {
+ u.rShiftTo(1,u);
+ if(ac) {
+ if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }
+ a.rShiftTo(1,a);
+ }
+ else if(!b.isEven()) b.subTo(m,b);
+ b.rShiftTo(1,b);
+ }
+ while(v.isEven()) {
+ v.rShiftTo(1,v);
+ if(ac) {
+ if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }
+ c.rShiftTo(1,c);
+ }
+ else if(!d.isEven()) d.subTo(m,d);
+ d.rShiftTo(1,d);
+ }
+ if(u.compareTo(v) >= 0) {
+ u.subTo(v,u);
+ if(ac) a.subTo(c,a);
+ b.subTo(d,b);
+ }
+ else {
+ v.subTo(u,v);
+ if(ac) c.subTo(a,c);
+ d.subTo(b,d);
+ }
+ }
+ if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;
+ if(d.compareTo(m) >= 0) return d.subtract(m);
+ if(d.signum() < 0) d.addTo(m,d); else return d;
+ if(d.signum() < 0) return d.add(m); else return d;
+}
+
+var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509];
+var lplim = (1<<26)/lowprimes[lowprimes.length-1];
+
+// (public) test primality with certainty >= 1-.5^t
+function bnIsProbablePrime(t) {
+ var i, x = this.abs();
+ var x_array = x.array;
+ if(x.t == 1 && x_array[0] <= lowprimes[lowprimes.length-1]) {
+ for(i = 0; i < lowprimes.length; ++i)
+ if(x_array[0] == lowprimes[i]) return true;
+ return false;
+ }
+ if(x.isEven()) return false;
+ i = 1;
+ while(i < lowprimes.length) {
+ var m = lowprimes[i], j = i+1;
+ while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];
+ m = x.modInt(m);
+ while(i < j) if(m%lowprimes[i++] == 0) return false;
+ }
+ return x.millerRabin(t);
+}
+
+// (protected) true if probably prime (HAC 4.24, Miller-Rabin)
+function bnpMillerRabin(t) {
+ var n1 = this.subtract(BigInteger.ONE);
+ var k = n1.getLowestSetBit();
+ if(k <= 0) return false;
+ var r = n1.shiftRight(k);
+ t = (t+1)>>1;
+ if(t > lowprimes.length) t = lowprimes.length;
+ var a = nbi();
+ for(var i = 0; i < t; ++i) {
+ a.fromInt(lowprimes[i]);
+ var y = a.modPow(r,this);
+ if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {
+ var j = 1;
+ while(j++ < k && y.compareTo(n1) != 0) {
+ y = y.modPowInt(2,this);
+ if(y.compareTo(BigInteger.ONE) == 0) return false;
+ }
+ if(y.compareTo(n1) != 0) return false;
+ }
+ }
+ return true;
+}
+
+// protected
+BigInteger.prototype.chunkSize = bnpChunkSize;
+BigInteger.prototype.toRadix = bnpToRadix;
+BigInteger.prototype.fromRadix = bnpFromRadix;
+BigInteger.prototype.fromNumber = bnpFromNumber;
+BigInteger.prototype.bitwiseTo = bnpBitwiseTo;
+BigInteger.prototype.changeBit = bnpChangeBit;
+BigInteger.prototype.addTo = bnpAddTo;
+BigInteger.prototype.dMultiply = bnpDMultiply;
+BigInteger.prototype.dAddOffset = bnpDAddOffset;
+BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;
+BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;
+BigInteger.prototype.modInt = bnpModInt;
+BigInteger.prototype.millerRabin = bnpMillerRabin;
+
+// public
+BigInteger.prototype.clone = bnClone;
+BigInteger.prototype.intValue = bnIntValue;
+BigInteger.prototype.byteValue = bnByteValue;
+BigInteger.prototype.shortValue = bnShortValue;
+BigInteger.prototype.signum = bnSigNum;
+BigInteger.prototype.toByteArray = bnToByteArray;
+BigInteger.prototype.equals = bnEquals;
+BigInteger.prototype.min = bnMin;
+BigInteger.prototype.max = bnMax;
+BigInteger.prototype.and = bnAnd;
+BigInteger.prototype.or = bnOr;
+BigInteger.prototype.xor = bnXor;
+BigInteger.prototype.andNot = bnAndNot;
+BigInteger.prototype.not = bnNot;
+BigInteger.prototype.shiftLeft = bnShiftLeft;
+BigInteger.prototype.shiftRight = bnShiftRight;
+BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;
+BigInteger.prototype.bitCount = bnBitCount;
+BigInteger.prototype.testBit = bnTestBit;
+BigInteger.prototype.setBit = bnSetBit;
+BigInteger.prototype.clearBit = bnClearBit;
+BigInteger.prototype.flipBit = bnFlipBit;
+BigInteger.prototype.add = bnAdd;
+BigInteger.prototype.subtract = bnSubtract;
+BigInteger.prototype.multiply = bnMultiply;
+BigInteger.prototype.divide = bnDivide;
+BigInteger.prototype.remainder = bnRemainder;
+BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;
+BigInteger.prototype.modPow = bnModPow;
+BigInteger.prototype.modInverse = bnModInverse;
+BigInteger.prototype.pow = bnPow;
+BigInteger.prototype.gcd = bnGCD;
+BigInteger.prototype.isProbablePrime = bnIsProbablePrime;
+
+// BigInteger interfaces not implemented in jsbn:
+
+// BigInteger(int signum, byte[] magnitude)
+// double doubleValue()
+// float floatValue()
+// int hashCode()
+// long longValue()
+// static BigInteger valueOf(long val)
+// prng4.js - uses Arcfour as a PRNG
+
+function Arcfour() {
+ this.i = 0;
+ this.j = 0;
+ this.S = new Array();
+}
+
+// Initialize arcfour context from key, an array of ints, each from [0..255]
+function ARC4init(key) {
+ var i, j, t;
+ for(i = 0; i < 256; ++i)
+ this.S[i] = i;
+ j = 0;
+ for(i = 0; i < 256; ++i) {
+ j = (j + this.S[i] + key[i % key.length]) & 255;
+ t = this.S[i];
+ this.S[i] = this.S[j];
+ this.S[j] = t;
+ }
+ this.i = 0;
+ this.j = 0;
+}
+
+function ARC4next() {
+ var t;
+ this.i = (this.i + 1) & 255;
+ this.j = (this.j + this.S[this.i]) & 255;
+ t = this.S[this.i];
+ this.S[this.i] = this.S[this.j];
+ this.S[this.j] = t;
+ return this.S[(t + this.S[this.i]) & 255];
+}
+
+Arcfour.prototype.init = ARC4init;
+Arcfour.prototype.next = ARC4next;
+
+// Plug in your RNG constructor here
+function prng_newstate() {
+ return new Arcfour();
+}
+
+// Pool size must be a multiple of 4 and greater than 32.
+// An array of bytes the size of the pool will be passed to init()
+var rng_psize = 256;
+// Random number generator - requires a PRNG backend, e.g. prng4.js
+
+// For best results, put code like
+// <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
+// in your main HTML document.
+
+var rng_state;
+var rng_pool;
+var rng_pptr;
+
+// Mix in a 32-bit integer into the pool
+function rng_seed_int(x) {
+ rng_pool[rng_pptr++] ^= x & 255;
+ rng_pool[rng_pptr++] ^= (x >> 8) & 255;
+ rng_pool[rng_pptr++] ^= (x >> 16) & 255;
+ rng_pool[rng_pptr++] ^= (x >> 24) & 255;
+ if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;
+}
+
+// Mix in the current time (w/milliseconds) into the pool
+function rng_seed_time() {
+ // Use pre-computed date to avoid making the benchmark
+ // results dependent on the current date.
+ rng_seed_int(1122926989487);
+}
+
+// Initialize the pool with junk if needed.
+if(rng_pool == null) {
+ rng_pool = new Array();
+ rng_pptr = 0;
+ var t;
+ while(rng_pptr < rng_psize) { // extract some randomness from Math.random()
+ t = Math.floor(65536 * Math.random());
+ rng_pool[rng_pptr++] = t >>> 8;
+ rng_pool[rng_pptr++] = t & 255;
+ }
+ rng_pptr = 0;
+ rng_seed_time();
+ //rng_seed_int(window.screenX);
+ //rng_seed_int(window.screenY);
+}
+
+function rng_get_byte() {
+ if(rng_state == null) {
+ rng_seed_time();
+ rng_state = prng_newstate();
+ rng_state.init(rng_pool);
+ for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr)
+ rng_pool[rng_pptr] = 0;
+ rng_pptr = 0;
+ //rng_pool = null;
+ }
+ // TODO: allow reseeding after first request
+ return rng_state.next();
+}
+
+function rng_get_bytes(ba) {
+ var i;
+ for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();
+}
+
+function SecureRandom() {}
+
+SecureRandom.prototype.nextBytes = rng_get_bytes;
+// Depends on jsbn.js and rng.js
+
+// convert a (hex) string to a bignum object
+function parseBigInt(str,r) {
+ return new BigInteger(str,r);
+}
+
+function linebrk(s,n) {
+ var ret = "";
+ var i = 0;
+ while(i + n < s.length) {
+ ret += s.substring(i,i+n) + "\n";
+ i += n;
+ }
+ return ret + s.substring(i,s.length);
+}
+
+function byte2Hex(b) {
+ if(b < 0x10)
+ return "0" + b.toString(16);
+ else
+ return b.toString(16);
+}
+
+// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint
+function pkcs1pad2(s,n) {
+ if(n < s.length + 11) {
+ alert("Message too long for RSA");
+ return null;
+ }
+ var ba = new Array();
+ var i = s.length - 1;
+ while(i >= 0 && n > 0) ba[--n] = s.charCodeAt(i--);
+ ba[--n] = 0;
+ var rng = new SecureRandom();
+ var x = new Array();
+ while(n > 2) { // random non-zero pad
+ x[0] = 0;
+ while(x[0] == 0) rng.nextBytes(x);
+ ba[--n] = x[0];
+ }
+ ba[--n] = 2;
+ ba[--n] = 0;
+ return new BigInteger(ba);
+}
+
+// "empty" RSA key constructor
+function RSAKey() {
+ this.n = null;
+ this.e = 0;
+ this.d = null;
+ this.p = null;
+ this.q = null;
+ this.dmp1 = null;
+ this.dmq1 = null;
+ this.coeff = null;
+}
+
+// Set the public key fields N and e from hex strings
+function RSASetPublic(N,E) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ }
+ else
+ alert("Invalid RSA public key");
+}
+
+// Perform raw public operation on "x": return x^e (mod n)
+function RSADoPublic(x) {
+ return x.modPowInt(this.e, this.n);
+}
+
+// Return the PKCS#1 RSA encryption of "text" as an even-length hex string
+function RSAEncrypt(text) {
+ var m = pkcs1pad2(text,(this.n.bitLength()+7)>>3);
+ if(m == null) return null;
+ var c = this.doPublic(m);
+ if(c == null) return null;
+ var h = c.toString(16);
+ if((h.length & 1) == 0) return h; else return "0" + h;
+}
+
+// Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string
+//function RSAEncryptB64(text) {
+// var h = this.encrypt(text);
+// if(h) return hex2b64(h); else return null;
+//}
+
+// protected
+RSAKey.prototype.doPublic = RSADoPublic;
+
+// public
+RSAKey.prototype.setPublic = RSASetPublic;
+RSAKey.prototype.encrypt = RSAEncrypt;
+//RSAKey.prototype.encrypt_b64 = RSAEncryptB64;
+// Depends on rsa.js and jsbn2.js
+
+// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext
+function pkcs1unpad2(d,n) {
+ var b = d.toByteArray();
+ var i = 0;
+ while(i < b.length && b[i] == 0) ++i;
+ if(b.length-i != n-1 || b[i] != 2)
+ return null;
+ ++i;
+ while(b[i] != 0)
+ if(++i >= b.length) return null;
+ var ret = "";
+ while(++i < b.length)
+ ret += String.fromCharCode(b[i]);
+ return ret;
+}
+
+// Set the private key fields N, e, and d from hex strings
+function RSASetPrivate(N,E,D) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ this.d = parseBigInt(D,16);
+ }
+ else
+ alert("Invalid RSA private key");
+}
+
+// Set the private key fields N, e, d and CRT params from hex strings
+function RSASetPrivateEx(N,E,D,P,Q,DP,DQ,C) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ this.d = parseBigInt(D,16);
+ this.p = parseBigInt(P,16);
+ this.q = parseBigInt(Q,16);
+ this.dmp1 = parseBigInt(DP,16);
+ this.dmq1 = parseBigInt(DQ,16);
+ this.coeff = parseBigInt(C,16);
+ }
+ else
+ alert("Invalid RSA private key");
+}
+
+// Generate a new random private key B bits long, using public expt E
+function RSAGenerate(B,E) {
+ var rng = new SecureRandom();
+ var qs = B>>1;
+ this.e = parseInt(E,16);
+ var ee = new BigInteger(E,16);
+ for(;;) {
+ for(;;) {
+ this.p = new BigInteger(B-qs,1,rng);
+ if(this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) break;
+ }
+ for(;;) {
+ this.q = new BigInteger(qs,1,rng);
+ if(this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) break;
+ }
+ if(this.p.compareTo(this.q) <= 0) {
+ var t = this.p;
+ this.p = this.q;
+ this.q = t;
+ }
+ var p1 = this.p.subtract(BigInteger.ONE);
+ var q1 = this.q.subtract(BigInteger.ONE);
+ var phi = p1.multiply(q1);
+ if(phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {
+ this.n = this.p.multiply(this.q);
+ this.d = ee.modInverse(phi);
+ this.dmp1 = this.d.mod(p1);
+ this.dmq1 = this.d.mod(q1);
+ this.coeff = this.q.modInverse(this.p);
+ break;
+ }
+ }
+}
+
+// Perform raw private operation on "x": return x^d (mod n)
+function RSADoPrivate(x) {
+ if(this.p == null || this.q == null)
+ return x.modPow(this.d, this.n);
+
+ // TODO: re-calculate any missing CRT params
+ var xp = x.mod(this.p).modPow(this.dmp1, this.p);
+ var xq = x.mod(this.q).modPow(this.dmq1, this.q);
+
+ while(xp.compareTo(xq) < 0)
+ xp = xp.add(this.p);
+ return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);
+}
+
+// Return the PKCS#1 RSA decryption of "ctext".
+// "ctext" is an even-length hex string and the output is a plain string.
+function RSADecrypt(ctext) {
+ var c = parseBigInt(ctext, 16);
+ var m = this.doPrivate(c);
+ if(m == null) return null;
+ return pkcs1unpad2(m, (this.n.bitLength()+7)>>3);
+}
+
+// Return the PKCS#1 RSA decryption of "ctext".
+// "ctext" is a Base64-encoded string and the output is a plain string.
+//function RSAB64Decrypt(ctext) {
+// var h = b64tohex(ctext);
+// if(h) return this.decrypt(h); else return null;
+//}
+
+// protected
+RSAKey.prototype.doPrivate = RSADoPrivate;
+
+// public
+RSAKey.prototype.setPrivate = RSASetPrivate;
+RSAKey.prototype.setPrivateEx = RSASetPrivateEx;
+RSAKey.prototype.generate = RSAGenerate;
+RSAKey.prototype.decrypt = RSADecrypt;
+//RSAKey.prototype.b64_decrypt = RSAB64Decrypt;
+
+
+nValue="a5261939975948bb7a58dffe5ff54e65f0498f9175f5a09288810b8975871e99af3b5dd94057b0fc07535f5f97444504fa35169d461d0d30cf0192e307727c065168c788771c561a9400fb49175e9e6aa4e23fe11af69e9412dd23b0cb6684c4c2429bce139e848ab26d0829073351f4acd36074eafd036a5eb83359d2a698d3";
+eValue="10001";
+dValue="8e9912f6d3645894e8d38cb58c0db81ff516cf4c7e5a14c7f1eddb1459d2cded4d8d293fc97aee6aefb861859c8b6a3d1dfe710463e1f9ddc72048c09751971c4a580aa51eb523357a3cc48d31cfad1d4a165066ed92d4748fb6571211da5cb14bc11b6e2df7c1a559e6d5ac1cd5c94703a22891464fba23d0d965086277a161";
+pValue="d090ce58a92c75233a6486cb0a9209bf3583b64f540c76f5294bb97d285eed33aec220bde14b2417951178ac152ceab6da7090905b478195498b352048f15e7d";
+qValue="cab575dc652bb66df15a0359609d51d1db184750c00c6698b90ef3465c99655103edbf0d54c56aec0ce3c4d22592338092a126a0cc49f65a4a30d222b411e58f";
+dmp1Value="1a24bca8e273df2f0e47c199bbf678604e7df7215480c77c8db39f49b000ce2cf7500038acfff5433b7d582a01f1826e6f4d42e1c57f5e1fef7b12aabc59fd25";
+dmq1Value="3d06982efbbe47339e1f6d36b1216b8a741d410b0c662f54f7118b27b9a4ec9d914337eb39841d8666f3034408cf94f5b62f11c402fc994fe15a05493150d9fd";
+coeffValue="3a3e731acd8960b7ff9eb81a7ff93bd1cfa74cbd56987db58b4594fb09c09084db1734c8143f98b602b981aaa9243ca28deb69b5b280ee8dcee0fd2625e53250";
+
+setupEngine(am3, 28);
+
+var TEXT = "The quick brown fox jumped over the extremely lazy frog! " +
+ "Now is the time for all good men to come to the party.";
+var encrypted;
+
+function encrypt() {
+ var RSA = new RSAKey();
+ RSA.setPublic(nValue, eValue);
+ RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue);
+ encrypted = RSA.encrypt(TEXT);
+}
+
+function decrypt() {
+ var RSA = new RSAKey();
+ RSA.setPublic(nValue, eValue);
+ RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue);
+ var decrypted = RSA.decrypt(encrypted);
+ if (decrypted != TEXT) {
+ throw new Error("Crypto operation failed");
+ }
+}
+
+for (var i = 0; i < 8; ++i) {
+ encrypt();
+ decrypt();
+}
diff --git a/PerformanceTests/SunSpider/tests/v8-v5/v8-deltablue.js b/PerformanceTests/SunSpider/tests/v8-v5/v8-deltablue.js
new file mode 100644
index 000000000..fe28e52fc
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v5/v8-deltablue.js
@@ -0,0 +1,877 @@
+// Copyright 2008 the V8 project authors. All rights reserved.
+// Copyright 1996 John Maloney and Mario Wolczko.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+// This implementation of the DeltaBlue benchmark is derived
+// from the Smalltalk implementation by John Maloney and Mario
+// Wolczko. Some parts have been translated directly, whereas
+// others have been modified more aggresively to make it feel
+// more like a JavaScript program.
+
+/**
+ * A JavaScript implementation of the DeltaBlue constrain-solving
+ * algorithm, as described in:
+ *
+ * "The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver"
+ * Bjorn N. Freeman-Benson and John Maloney
+ * January 1990 Communications of the ACM,
+ * also available as University of Washington TR 89-08-06.
+ *
+ * Beware: this benchmark is written in a grotesque style where
+ * the constraint model is built by side-effects from constructors.
+ * I've kept it this way to avoid deviating too much from the original
+ * implementation.
+ */
+
+
+/* --- O b j e c t M o d e l --- */
+
+Object.prototype.inheritsFrom = function (shuper) {
+ function Inheriter() { }
+ Inheriter.prototype = shuper.prototype;
+ this.prototype = new Inheriter();
+ this.superConstructor = shuper;
+}
+
+function OrderedCollection() {
+ this.elms = new Array();
+}
+
+OrderedCollection.prototype.add = function (elm) {
+ this.elms.push(elm);
+}
+
+OrderedCollection.prototype.at = function (index) {
+ return this.elms[index];
+}
+
+OrderedCollection.prototype.size = function () {
+ return this.elms.length;
+}
+
+OrderedCollection.prototype.removeFirst = function () {
+ return this.elms.pop();
+}
+
+OrderedCollection.prototype.remove = function (elm) {
+ var index = 0, skipped = 0;
+ for (var i = 0; i < this.elms.length; i++) {
+ var value = this.elms[i];
+ if (value != elm) {
+ this.elms[index] = value;
+ index++;
+ } else {
+ skipped++;
+ }
+ }
+ for (var i = 0; i < skipped; i++)
+ this.elms.pop();
+}
+
+/* --- *
+ * S t r e n g t h
+ * --- */
+
+/**
+ * Strengths are used to measure the relative importance of constraints.
+ * New strengths may be inserted in the strength hierarchy without
+ * disrupting current constraints. Strengths cannot be created outside
+ * this class, so pointer comparison can be used for value comparison.
+ */
+function Strength(strengthValue, name) {
+ this.strengthValue = strengthValue;
+ this.name = name;
+}
+
+Strength.stronger = function (s1, s2) {
+ return s1.strengthValue < s2.strengthValue;
+}
+
+Strength.weaker = function (s1, s2) {
+ return s1.strengthValue > s2.strengthValue;
+}
+
+Strength.weakestOf = function (s1, s2) {
+ return this.weaker(s1, s2) ? s1 : s2;
+}
+
+Strength.strongest = function (s1, s2) {
+ return this.stronger(s1, s2) ? s1 : s2;
+}
+
+Strength.prototype.nextWeaker = function () {
+ switch (this.strengthValue) {
+ case 0: return Strength.WEAKEST;
+ case 1: return Strength.WEAK_DEFAULT;
+ case 2: return Strength.NORMAL;
+ case 3: return Strength.STRONG_DEFAULT;
+ case 4: return Strength.PREFERRED;
+ case 5: return Strength.REQUIRED;
+ }
+}
+
+// Strength constants.
+Strength.REQUIRED = new Strength(0, "required");
+Strength.STONG_PREFERRED = new Strength(1, "strongPreferred");
+Strength.PREFERRED = new Strength(2, "preferred");
+Strength.STRONG_DEFAULT = new Strength(3, "strongDefault");
+Strength.NORMAL = new Strength(4, "normal");
+Strength.WEAK_DEFAULT = new Strength(5, "weakDefault");
+Strength.WEAKEST = new Strength(6, "weakest");
+
+/* --- *
+ * C o n s t r a i n t
+ * --- */
+
+/**
+ * An abstract class representing a system-maintainable relationship
+ * (or "constraint") between a set of variables. A constraint supplies
+ * a strength instance variable; concrete subclasses provide a means
+ * of storing the constrained variables and other information required
+ * to represent a constraint.
+ */
+function Constraint(strength) {
+ this.strength = strength;
+}
+
+/**
+ * Activate this constraint and attempt to satisfy it.
+ */
+Constraint.prototype.addConstraint = function () {
+ this.addToGraph();
+ planner.incrementalAdd(this);
+}
+
+/**
+ * Attempt to find a way to enforce this constraint. If successful,
+ * record the solution, perhaps modifying the current dataflow
+ * graph. Answer the constraint that this constraint overrides, if
+ * there is one, or nil, if there isn't.
+ * Assume: I am not already satisfied.
+ */
+Constraint.prototype.satisfy = function (mark) {
+ this.chooseMethod(mark);
+ if (!this.isSatisfied()) {
+ if (this.strength == Strength.REQUIRED)
+ alert("Could not satisfy a required constraint!");
+ return null;
+ }
+ this.markInputs(mark);
+ var out = this.output();
+ var overridden = out.determinedBy;
+ if (overridden != null) overridden.markUnsatisfied();
+ out.determinedBy = this;
+ if (!planner.addPropagate(this, mark))
+ alert("Cycle encountered");
+ out.mark = mark;
+ return overridden;
+}
+
+Constraint.prototype.destroyConstraint = function () {
+ if (this.isSatisfied()) planner.incrementalRemove(this);
+ else this.removeFromGraph();
+}
+
+/**
+ * Normal constraints are not input constraints. An input constraint
+ * is one that depends on external state, such as the mouse, the
+ * keybord, a clock, or some arbitraty piece of imperative code.
+ */
+Constraint.prototype.isInput = function () {
+ return false;
+}
+
+/* --- *
+ * U n a r y C o n s t r a i n t
+ * --- */
+
+/**
+ * Abstract superclass for constraints having a single possible output
+ * variable.
+ */
+function UnaryConstraint(v, strength) {
+ UnaryConstraint.superConstructor.call(this, strength);
+ this.myOutput = v;
+ this.satisfied = false;
+ this.addConstraint();
+}
+
+UnaryConstraint.inheritsFrom(Constraint);
+
+/**
+ * Adds this constraint to the constraint graph
+ */
+UnaryConstraint.prototype.addToGraph = function () {
+ this.myOutput.addConstraint(this);
+ this.satisfied = false;
+}
+
+/**
+ * Decides if this constraint can be satisfied and records that
+ * decision.
+ */
+UnaryConstraint.prototype.chooseMethod = function (mark) {
+ this.satisfied = (this.myOutput.mark != mark)
+ && Strength.stronger(this.strength, this.myOutput.walkStrength);
+}
+
+/**
+ * Returns true if this constraint is satisfied in the current solution.
+ */
+UnaryConstraint.prototype.isSatisfied = function () {
+ return this.satisfied;
+}
+
+UnaryConstraint.prototype.markInputs = function (mark) {
+ // has no inputs
+}
+
+/**
+ * Returns the current output variable.
+ */
+UnaryConstraint.prototype.output = function () {
+ return this.myOutput;
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this constraint. Assume
+ * this constraint is satisfied.
+ */
+UnaryConstraint.prototype.recalculate = function () {
+ this.myOutput.walkStrength = this.strength;
+ this.myOutput.stay = !this.isInput();
+ if (this.myOutput.stay) this.execute(); // Stay optimization
+}
+
+/**
+ * Records that this constraint is unsatisfied
+ */
+UnaryConstraint.prototype.markUnsatisfied = function () {
+ this.satisfied = false;
+}
+
+UnaryConstraint.prototype.inputsKnown = function () {
+ return true;
+}
+
+UnaryConstraint.prototype.removeFromGraph = function () {
+ if (this.myOutput != null) this.myOutput.removeConstraint(this);
+ this.satisfied = false;
+}
+
+/* --- *
+ * S t a y C o n s t r a i n t
+ * --- */
+
+/**
+ * Variables that should, with some level of preference, stay the same.
+ * Planners may exploit the fact that instances, if satisfied, will not
+ * change their output during plan execution. This is called "stay
+ * optimization".
+ */
+function StayConstraint(v, str) {
+ StayConstraint.superConstructor.call(this, v, str);
+}
+
+StayConstraint.inheritsFrom(UnaryConstraint);
+
+StayConstraint.prototype.execute = function () {
+ // Stay constraints do nothing
+}
+
+/* --- *
+ * E d i t C o n s t r a i n t
+ * --- */
+
+/**
+ * A unary input constraint used to mark a variable that the client
+ * wishes to change.
+ */
+function EditConstraint(v, str) {
+ EditConstraint.superConstructor.call(this, v, str);
+}
+
+EditConstraint.inheritsFrom(UnaryConstraint);
+
+/**
+ * Edits indicate that a variable is to be changed by imperative code.
+ */
+EditConstraint.prototype.isInput = function () {
+ return true;
+}
+
+EditConstraint.prototype.execute = function () {
+ // Edit constraints do nothing
+}
+
+/* --- *
+ * B i n a r y C o n s t r a i n t
+ * --- */
+
+var Direction = new Object();
+Direction.NONE = 0;
+Direction.FORWARD = 1;
+Direction.BACKWARD = -1;
+
+/**
+ * Abstract superclass for constraints having two possible output
+ * variables.
+ */
+function BinaryConstraint(var1, var2, strength) {
+ BinaryConstraint.superConstructor.call(this, strength);
+ this.v1 = var1;
+ this.v2 = var2;
+ this.direction = Direction.NONE;
+ this.addConstraint();
+}
+
+BinaryConstraint.inheritsFrom(Constraint);
+
+/**
+ * Decides if this constratint can be satisfied and which way it
+ * should flow based on the relative strength of the variables related,
+ * and record that decision.
+ */
+BinaryConstraint.prototype.chooseMethod = function (mark) {
+ if (this.v1.mark == mark) {
+ this.direction = (this.v1.mark != mark && Strength.stronger(this.strength, this.v2.walkStrength))
+ ? Direction.FORWARD
+ : Direction.NONE;
+ }
+ if (this.v2.mark == mark) {
+ this.direction = (this.v1.mark != mark && Strength.stronger(this.strength, this.v1.walkStrength))
+ ? Direction.BACKWARD
+ : Direction.NONE;
+ }
+ if (Strength.weaker(this.v1.walkStrength, this.v2.walkStrength)) {
+ this.direction = Strength.stronger(this.strength, this.v1.walkStrength)
+ ? Direction.BACKWARD
+ : Direction.NONE;
+ } else {
+ this.direction = Strength.stronger(this.strength, this.v2.walkStrength)
+ ? Direction.FORWARD
+ : Direction.BACKWARD
+ }
+}
+
+/**
+ * Add this constraint to the constraint graph
+ */
+BinaryConstraint.prototype.addToGraph = function () {
+ this.v1.addConstraint(this);
+ this.v2.addConstraint(this);
+ this.direction = Direction.NONE;
+}
+
+/**
+ * Answer true if this constraint is satisfied in the current solution.
+ */
+BinaryConstraint.prototype.isSatisfied = function () {
+ return this.direction != Direction.NONE;
+}
+
+/**
+ * Mark the input variable with the given mark.
+ */
+BinaryConstraint.prototype.markInputs = function (mark) {
+ this.input().mark = mark;
+}
+
+/**
+ * Returns the current input variable
+ */
+BinaryConstraint.prototype.input = function () {
+ return (this.direction == Direction.FORWARD) ? this.v1 : this.v2;
+}
+
+/**
+ * Returns the current output variable
+ */
+BinaryConstraint.prototype.output = function () {
+ return (this.direction == Direction.FORWARD) ? this.v2 : this.v1;
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this
+ * constraint. Assume this constraint is satisfied.
+ */
+BinaryConstraint.prototype.recalculate = function () {
+ var ihn = this.input(), out = this.output();
+ out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength);
+ out.stay = ihn.stay;
+ if (out.stay) this.execute();
+}
+
+/**
+ * Record the fact that this constraint is unsatisfied.
+ */
+BinaryConstraint.prototype.markUnsatisfied = function () {
+ this.direction = Direction.NONE;
+}
+
+BinaryConstraint.prototype.inputsKnown = function (mark) {
+ var i = this.input();
+ return i.mark == mark || i.stay || i.determinedBy == null;
+}
+
+BinaryConstraint.prototype.removeFromGraph = function () {
+ if (this.v1 != null) this.v1.removeConstraint(this);
+ if (this.v2 != null) this.v2.removeConstraint(this);
+ this.direction = Direction.NONE;
+}
+
+/* --- *
+ * S c a l e C o n s t r a i n t
+ * --- */
+
+/**
+ * Relates two variables by the linear scaling relationship: "v2 =
+ * (v1 * scale) + offset". Either v1 or v2 may be changed to maintain
+ * this relationship but the scale factor and offset are considered
+ * read-only.
+ */
+function ScaleConstraint(src, scale, offset, dest, strength) {
+ this.direction = Direction.NONE;
+ this.scale = scale;
+ this.offset = offset;
+ ScaleConstraint.superConstructor.call(this, src, dest, strength);
+}
+
+ScaleConstraint.inheritsFrom(BinaryConstraint);
+
+/**
+ * Adds this constraint to the constraint graph.
+ */
+ScaleConstraint.prototype.addToGraph = function () {
+ ScaleConstraint.superConstructor.prototype.addToGraph.call(this);
+ this.scale.addConstraint(this);
+ this.offset.addConstraint(this);
+}
+
+ScaleConstraint.prototype.removeFromGraph = function () {
+ ScaleConstraint.superConstructor.prototype.removeFromGraph.call(this);
+ if (this.scale != null) this.scale.removeConstraint(this);
+ if (this.offset != null) this.offset.removeConstraint(this);
+}
+
+ScaleConstraint.prototype.markInputs = function (mark) {
+ ScaleConstraint.superConstructor.prototype.markInputs.call(this, mark);
+ this.scale.mark = this.offset.mark = mark;
+}
+
+/**
+ * Enforce this constraint. Assume that it is satisfied.
+ */
+ScaleConstraint.prototype.execute = function () {
+ if (this.direction == Direction.FORWARD) {
+ this.v2.value = this.v1.value * this.scale.value + this.offset.value;
+ } else {
+ this.v1.value = (this.v2.value - this.offset.value) / this.scale.value;
+ }
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this constraint. Assume
+ * this constraint is satisfied.
+ */
+ScaleConstraint.prototype.recalculate = function () {
+ var ihn = this.input(), out = this.output();
+ out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength);
+ out.stay = ihn.stay && this.scale.stay && this.offset.stay;
+ if (out.stay) this.execute();
+}
+
+/* --- *
+ * E q u a l i t y C o n s t r a i n t
+ * --- */
+
+/**
+ * Constrains two variables to have the same value.
+ */
+function EqualityConstraint(var1, var2, strength) {
+ EqualityConstraint.superConstructor.call(this, var1, var2, strength);
+}
+
+EqualityConstraint.inheritsFrom(BinaryConstraint);
+
+/**
+ * Enforce this constraint. Assume that it is satisfied.
+ */
+EqualityConstraint.prototype.execute = function () {
+ this.output().value = this.input().value;
+}
+
+/* --- *
+ * V a r i a b l e
+ * --- */
+
+/**
+ * A constrained variable. In addition to its value, it maintain the
+ * structure of the constraint graph, the current dataflow graph, and
+ * various parameters of interest to the DeltaBlue incremental
+ * constraint solver.
+ **/
+function Variable(name, initialValue) {
+ this.value = initialValue || 0;
+ this.constraints = new OrderedCollection();
+ this.determinedBy = null;
+ this.mark = 0;
+ this.walkStrength = Strength.WEAKEST;
+ this.stay = true;
+ this.name = name;
+}
+
+/**
+ * Add the given constraint to the set of all constraints that refer
+ * this variable.
+ */
+Variable.prototype.addConstraint = function (c) {
+ this.constraints.add(c);
+}
+
+/**
+ * Removes all traces of c from this variable.
+ */
+Variable.prototype.removeConstraint = function (c) {
+ this.constraints.remove(c);
+ if (this.determinedBy == c) this.determinedBy = null;
+}
+
+/* --- *
+ * P l a n n e r
+ * --- */
+
+/**
+ * The DeltaBlue planner
+ */
+function Planner() {
+ this.currentMark = 0;
+}
+
+/**
+ * Attempt to satisfy the given constraint and, if successful,
+ * incrementally update the dataflow graph. Details: If satifying
+ * the constraint is successful, it may override a weaker constraint
+ * on its output. The algorithm attempts to resatisfy that
+ * constraint using some other method. This process is repeated
+ * until either a) it reaches a variable that was not previously
+ * determined by any constraint or b) it reaches a constraint that
+ * is too weak to be satisfied using any of its methods. The
+ * variables of constraints that have been processed are marked with
+ * a unique mark value so that we know where we've been. This allows
+ * the algorithm to avoid getting into an infinite loop even if the
+ * constraint graph has an inadvertent cycle.
+ */
+Planner.prototype.incrementalAdd = function (c) {
+ var mark = this.newMark();
+ var overridden = c.satisfy(mark);
+ while (overridden != null)
+ overridden = overridden.satisfy(mark);
+}
+
+/**
+ * Entry point for retracting a constraint. Remove the given
+ * constraint and incrementally update the dataflow graph.
+ * Details: Retracting the given constraint may allow some currently
+ * unsatisfiable downstream constraint to be satisfied. We therefore collect
+ * a list of unsatisfied downstream constraints and attempt to
+ * satisfy each one in turn. This list is traversed by constraint
+ * strength, strongest first, as a heuristic for avoiding
+ * unnecessarily adding and then overriding weak constraints.
+ * Assume: c is satisfied.
+ */
+Planner.prototype.incrementalRemove = function (c) {
+ var out = c.output();
+ c.markUnsatisfied();
+ c.removeFromGraph();
+ var unsatisfied = this.removePropagateFrom(out);
+ var strength = Strength.REQUIRED;
+ do {
+ for (var i = 0; i < unsatisfied.size(); i++) {
+ var u = unsatisfied.at(i);
+ if (u.strength == strength)
+ this.incrementalAdd(u);
+ }
+ strength = strength.nextWeaker();
+ } while (strength != Strength.WEAKEST);
+}
+
+/**
+ * Select a previously unused mark value.
+ */
+Planner.prototype.newMark = function () {
+ return ++this.currentMark;
+}
+
+/**
+ * Extract a plan for resatisfaction starting from the given source
+ * constraints, usually a set of input constraints. This method
+ * assumes that stay optimization is desired; the plan will contain
+ * only constraints whose output variables are not stay. Constraints
+ * that do no computation, such as stay and edit constraints, are
+ * not included in the plan.
+ * Details: The outputs of a constraint are marked when it is added
+ * to the plan under construction. A constraint may be appended to
+ * the plan when all its input variables are known. A variable is
+ * known if either a) the variable is marked (indicating that has
+ * been computed by a constraint appearing earlier in the plan), b)
+ * the variable is 'stay' (i.e. it is a constant at plan execution
+ * time), or c) the variable is not determined by any
+ * constraint. The last provision is for past states of history
+ * variables, which are not stay but which are also not computed by
+ * any constraint.
+ * Assume: sources are all satisfied.
+ */
+Planner.prototype.makePlan = function (sources) {
+ var mark = this.newMark();
+ var plan = new Plan();
+ var todo = sources;
+ while (todo.size() > 0) {
+ var c = todo.removeFirst();
+ if (c.output().mark != mark && c.inputsKnown(mark)) {
+ plan.addConstraint(c);
+ c.output().mark = mark;
+ this.addConstraintsConsumingTo(c.output(), todo);
+ }
+ }
+ return plan;
+}
+
+/**
+ * Extract a plan for resatisfying starting from the output of the
+ * given constraints, usually a set of input constraints.
+ */
+Planner.prototype.extractPlanFromConstraints = function (constraints) {
+ var sources = new OrderedCollection();
+ for (var i = 0; i < constraints.size(); i++) {
+ var c = constraints.at(i);
+ if (c.isInput() && c.isSatisfied())
+ // not in plan already and eligible for inclusion
+ sources.add(c);
+ }
+ return this.makePlan(sources);
+}
+
+/**
+ * Recompute the walkabout strengths and stay flags of all variables
+ * downstream of the given constraint and recompute the actual
+ * values of all variables whose stay flag is true. If a cycle is
+ * detected, remove the given constraint and answer
+ * false. Otherwise, answer true.
+ * Details: Cycles are detected when a marked variable is
+ * encountered downstream of the given constraint. The sender is
+ * assumed to have marked the inputs of the given constraint with
+ * the given mark. Thus, encountering a marked node downstream of
+ * the output constraint means that there is a path from the
+ * constraint's output to one of its inputs.
+ */
+Planner.prototype.addPropagate = function (c, mark) {
+ var todo = new OrderedCollection();
+ todo.add(c);
+ while (todo.size() > 0) {
+ var d = todo.removeFirst();
+ if (d.output().mark == mark) {
+ this.incrementalRemove(c);
+ return false;
+ }
+ d.recalculate();
+ this.addConstraintsConsumingTo(d.output(), todo);
+ }
+ return true;
+}
+
+
+/**
+ * Update the walkabout strengths and stay flags of all variables
+ * downstream of the given constraint. Answer a collection of
+ * unsatisfied constraints sorted in order of decreasing strength.
+ */
+Planner.prototype.removePropagateFrom = function (out) {
+ out.determinedBy = null;
+ out.walkStrength = Strength.WEAKEST;
+ out.stay = true;
+ var unsatisfied = new OrderedCollection();
+ var todo = new OrderedCollection();
+ todo.add(out);
+ while (todo.size() > 0) {
+ var v = todo.removeFirst();
+ for (var i = 0; i < v.constraints.size(); i++) {
+ var c = v.constraints.at(i);
+ if (!c.isSatisfied())
+ unsatisfied.add(c);
+ }
+ var determining = v.determinedBy;
+ for (var i = 0; i < v.constraints.size(); i++) {
+ var next = v.constraints.at(i);
+ if (next != determining && next.isSatisfied()) {
+ next.recalculate();
+ todo.add(next.output());
+ }
+ }
+ }
+ return unsatisfied;
+}
+
+Planner.prototype.addConstraintsConsumingTo = function (v, coll) {
+ var determining = v.determinedBy;
+ var cc = v.constraints;
+ for (var i = 0; i < cc.size(); i++) {
+ var c = cc.at(i);
+ if (c != determining && c.isSatisfied())
+ coll.add(c);
+ }
+}
+
+/* --- *
+ * P l a n
+ * --- */
+
+/**
+ * A Plan is an ordered list of constraints to be executed in sequence
+ * to resatisfy all currently satisfiable constraints in the face of
+ * one or more changing inputs.
+ */
+function Plan() {
+ this.v = new OrderedCollection();
+}
+
+Plan.prototype.addConstraint = function (c) {
+ this.v.add(c);
+}
+
+Plan.prototype.size = function () {
+ return this.v.size();
+}
+
+Plan.prototype.constraintAt = function (index) {
+ return this.v.at(index);
+}
+
+Plan.prototype.execute = function () {
+ for (var i = 0; i < this.size(); i++) {
+ var c = this.constraintAt(i);
+ c.execute();
+ }
+}
+
+/* --- *
+ * M a i n
+ * --- */
+
+/**
+ * This is the standard DeltaBlue benchmark. A long chain of equality
+ * constraints is constructed with a stay constraint on one end. An
+ * edit constraint is then added to the opposite end and the time is
+ * measured for adding and removing this constraint, and extracting
+ * and executing a constraint satisfaction plan. There are two cases.
+ * In case 1, the added constraint is stronger than the stay
+ * constraint and values must propagate down the entire length of the
+ * chain. In case 2, the added constraint is weaker than the stay
+ * constraint so it cannot be accomodated. The cost in this case is,
+ * of course, very low. Typical situations lie somewhere between these
+ * two extremes.
+ */
+function chainTest(n) {
+ planner = new Planner();
+ var prev = null, first = null, last = null;
+
+ // Build chain of n equality constraints
+ for (var i = 0; i <= n; i++) {
+ var name = "v" + i;
+ var v = new Variable(name);
+ if (prev != null)
+ new EqualityConstraint(prev, v, Strength.REQUIRED);
+ if (i == 0) first = v;
+ if (i == n) last = v;
+ prev = v;
+ }
+
+ new StayConstraint(last, Strength.STRONG_DEFAULT);
+ var edit = new EditConstraint(first, Strength.PREFERRED);
+ var edits = new OrderedCollection();
+ edits.add(edit);
+ var plan = planner.extractPlanFromConstraints(edits);
+ for (var i = 0; i < 100; i++) {
+ first.value = i;
+ plan.execute();
+ if (last.value != i)
+ alert("Chain test failed.");
+ }
+}
+
+/**
+ * This test constructs a two sets of variables related to each
+ * other by a simple linear transformation (scale and offset). The
+ * time is measured to change a variable on either side of the
+ * mapping and to change the scale and offset factors.
+ */
+function projectionTest(n) {
+ planner = new Planner();
+ var scale = new Variable("scale", 10);
+ var offset = new Variable("offset", 1000);
+ var src = null, dst = null;
+
+ var dests = new OrderedCollection();
+ for (var i = 0; i < n; i++) {
+ src = new Variable("src" + i, i);
+ dst = new Variable("dst" + i, i);
+ dests.add(dst);
+ new StayConstraint(src, Strength.NORMAL);
+ new ScaleConstraint(src, scale, offset, dst, Strength.REQUIRED);
+ }
+
+ change(src, 17);
+ if (dst.value != 1170) alert("Projection 1 failed");
+ change(dst, 1050);
+ if (src.value != 5) alert("Projection 2 failed");
+ change(scale, 5);
+ for (var i = 0; i < n - 1; i++) {
+ if (dests.at(i).value != i * 5 + 1000)
+ alert("Projection 3 failed");
+ }
+ change(offset, 2000);
+ for (var i = 0; i < n - 1; i++) {
+ if (dests.at(i).value != i * 5 + 2000)
+ alert("Projection 4 failed");
+ }
+}
+
+function change(v, newValue) {
+ var edit = new EditConstraint(v, Strength.PREFERRED);
+ var edits = new OrderedCollection();
+ edits.add(edit);
+ var plan = planner.extractPlanFromConstraints(edits);
+ for (var i = 0; i < 10; i++) {
+ v.value = newValue;
+ plan.execute();
+ }
+ edit.destroyConstraint();
+}
+
+// Global variable holding the current planner.
+var planner = null;
+
+function deltaBlue() {
+ chainTest(100);
+ projectionTest(100);
+}
+
+for (var i = 0; i < 155; ++i)
+ deltaBlue();
diff --git a/PerformanceTests/SunSpider/tests/v8-v5/v8-earley-boyer.js b/PerformanceTests/SunSpider/tests/v8-v5/v8-earley-boyer.js
new file mode 100644
index 000000000..6c4c6351f
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v5/v8-earley-boyer.js
@@ -0,0 +1,4683 @@
+// This file is automatically generated by scheme2js, except for the
+// benchmark harness code at the beginning and end of the file.
+
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/*
+ * To use write/prints/... the default-output port has to be set first.
+ * Simply setting SC_DEFAULT_OUT and SC_ERROR_OUT to the desired values
+ * should do the trick.
+ * In the following example the std-out and error-port are redirected to
+ * a DIV.
+function initRuntime() {
+ function escapeHTML(s) {
+ var tmp = s;
+ tmp = tmp.replace(/&/g, "&amp;");
+ tmp = tmp.replace(/</g, "&lt;");
+ tmp = tmp.replace(/>/g, "&gt;");
+ tmp = tmp.replace(/ /g, "&nbsp;");
+ tmp = tmp.replace(/\n/g, "<br />");
+ tmp = tmp.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp");
+ return tmp;
+
+ }
+
+ document.write("<div id='stdout'></div>");
+ SC_DEFAULT_OUT = new sc_GenericOutputPort(
+ function(s) {
+ var stdout = document.getElementById('stdout');
+ stdout.innerHTML = stdout.innerHTML + escapeHTML(s);
+ });
+ SC_ERROR_OUT = SC_DEFAULT_OUT;
+}
+*/
+
+
+function sc_print_debug() {
+ sc_print.apply(null, arguments);
+}
+/*** META ((export *js*)) */
+var sc_JS_GLOBALS = this;
+
+var __sc_LINE=-1;
+var __sc_FILE="";
+
+/*** META ((export #t)) */
+function sc_alert() {
+ var len = arguments.length;
+ var s = "";
+ var i;
+
+ for( i = 0; i < len; i++ ) {
+ s += sc_toDisplayString(arguments[ i ]);
+ }
+
+ return alert( s );
+}
+
+/*** META ((export #t)) */
+function sc_typeof( x ) {
+ return typeof x;
+}
+
+/*** META ((export #t)) */
+function sc_error() {
+ var a = [sc_jsstring2symbol("*error*")];
+ for (var i = 0; i < arguments.length; i++) {
+ a[i+1] = arguments[i];
+ }
+ throw a;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "throw ")))
+*/
+function sc_raise(obj) {
+ throw obj;
+}
+
+/*** META ((export with-handler-lambda)) */
+function sc_withHandlerLambda(handler, body) {
+ try {
+ return body();
+ } catch(e) {
+ if (!e._internalException)
+ return handler(e);
+ else
+ throw e;
+ }
+}
+
+var sc_properties = new Object();
+
+/*** META ((export #t)) */
+function sc_putpropBang(sym, key, val) {
+ var ht = sc_properties[sym];
+ if (!ht) {
+ ht = new Object();
+ sc_properties[sym] = ht;
+ }
+ ht[key] = val;
+}
+
+/*** META ((export #t)) */
+function sc_getprop(sym, key) {
+ var ht = sc_properties[sym];
+ if (ht) {
+ if (key in ht)
+ return ht[key];
+ else
+ return false;
+ } else
+ return false;
+}
+
+/*** META ((export #t)) */
+function sc_rempropBang(sym, key) {
+ var ht = sc_properties[sym];
+ if (ht)
+ delete ht[key];
+}
+
+/*** META ((export #t)) */
+function sc_any2String(o) {
+ return jsstring2string(sc_toDisplayString(o));
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "==="))
+ (type bool))
+*/
+function sc_isEqv(o1, o2) {
+ return (o1 === o2);
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "==="))
+ (type bool))
+*/
+function sc_isEq(o1, o2) {
+ return (o1 === o2);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isNumber(n) {
+ return (typeof n === "number");
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isComplex(n) {
+ return sc_isNumber(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isReal(n) {
+ return sc_isNumber(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isRational(n) {
+ return sc_isReal(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isInteger(n) {
+ return (parseInt(n) === n);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix ", false")))
+*/
+// we don't have exact numbers...
+function sc_isExact(n) {
+ return false;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ", true"))
+ (type bool))
+*/
+function sc_isInexact(n) {
+ return true;
+}
+
+/*** META ((export = =fx =fl)
+ (type bool)
+ (peephole (infix 2 2 "===")))
+*/
+function sc_equal(x) {
+ for (var i = 1; i < arguments.length; i++)
+ if (x !== arguments[i])
+ return false;
+ return true;
+}
+
+/*** META ((export < <fx <fl)
+ (type bool)
+ (peephole (infix 2 2 "<")))
+*/
+function sc_less(x) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x >= arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export > >fx >fl)
+ (type bool)
+ (peephole (infix 2 2 ">")))
+*/
+function sc_greater(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x <= arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export <= <=fx <=fl)
+ (type bool)
+ (peephole (infix 2 2 "<=")))
+*/
+function sc_lessEqual(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x > arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export >= >=fl >=fx)
+ (type bool)
+ (peephole (infix 2 2 ">=")))
+*/
+function sc_greaterEqual(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x < arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "=== 0")))
+*/
+function sc_isZero(x) {
+ return (x === 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "> 0")))
+*/
+function sc_isPositive(x) {
+ return (x > 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "< 0")))
+*/
+function sc_isNegative(x) {
+ return (x < 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "%2===1")))
+*/
+function sc_isOdd(x) {
+ return (x % 2 === 1);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "%2===0")))
+*/
+function sc_isEven(x) {
+ return (x % 2 === 0);
+}
+
+/*** META ((export #t)) */
+var sc_max = Math.max;
+/*** META ((export #t)) */
+var sc_min = Math.min;
+
+/*** META ((export + +fx +fl)
+ (peephole (infix 0 #f "+" "0")))
+*/
+function sc_plus() {
+ var sum = 0;
+ for (var i = 0; i < arguments.length; i++)
+ sum += arguments[i];
+ return sum;
+}
+
+/*** META ((export * *fx *fl)
+ (peephole (infix 0 #f "*" "1")))
+*/
+function sc_multi() {
+ var product = 1;
+ for (var i = 0; i < arguments.length; i++)
+ product *= arguments[i];
+ return product;
+}
+
+/*** META ((export - -fx -fl)
+ (peephole (minus)))
+*/
+function sc_minus(x) {
+ if (arguments.length === 1)
+ return -x;
+ else {
+ var res = x;
+ for (var i = 1; i < arguments.length; i++)
+ res -= arguments[i];
+ return res;
+ }
+}
+
+/*** META ((export / /fl)
+ (peephole (div)))
+*/
+function sc_div(x) {
+ if (arguments.length === 1)
+ return 1/x;
+ else {
+ var res = x;
+ for (var i = 1; i < arguments.length; i++)
+ res /= arguments[i];
+ return res;
+ }
+}
+
+/*** META ((export #t)) */
+var sc_abs = Math.abs;
+
+/*** META ((export quotient /fx)
+ (peephole (hole 2 "parseInt(" x "/" y ")")))
+*/
+function sc_quotient(x, y) {
+ return parseInt(x / y);
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "%")))
+*/
+function sc_remainder(x, y) {
+ return x % y;
+}
+
+/*** META ((export #t)
+ (peephole (modulo)))
+*/
+function sc_modulo(x, y) {
+ var remainder = x % y;
+ // if they don't have the same sign
+ if ((remainder * y) < 0)
+ return remainder + y;
+ else
+ return remainder;
+}
+
+function sc_euclid_gcd(a, b) {
+ var temp;
+ if (a === 0) return b;
+ if (b === 0) return a;
+ if (a < 0) {a = -a;};
+ if (b < 0) {b = -b;};
+ if (b > a) {temp = a; a = b; b = temp;};
+ while (true) {
+ a %= b;
+ if(a === 0) {return b;};
+ b %= a;
+ if(b === 0) {return a;};
+ };
+ return b;
+}
+
+/*** META ((export #t)) */
+function sc_gcd() {
+ var gcd = 0;
+ for (var i = 0; i < arguments.length; i++)
+ gcd = sc_euclid_gcd(gcd, arguments[i]);
+ return gcd;
+}
+
+/*** META ((export #t)) */
+function sc_lcm() {
+ var lcm = 1;
+ for (var i = 0; i < arguments.length; i++) {
+ var f = Math.round(arguments[i] / sc_euclid_gcd(arguments[i], lcm));
+ lcm *= Math.abs(f);
+ }
+ return lcm;
+}
+
+// LIMITATION: numerator and denominator don't make sense in floating point world.
+//var SC_MAX_DECIMALS = 1000000
+//
+// function sc_numerator(x) {
+// var rounded = Math.round(x * SC_MAX_DECIMALS);
+// return Math.round(rounded / sc_euclid_gcd(rounded, SC_MAX_DECIMALS));
+// }
+
+// function sc_denominator(x) {
+// var rounded = Math.round(x * SC_MAX_DECIMALS);
+// return Math.round(SC_MAX_DECIMALS / sc_euclid_gcd(rounded, SC_MAX_DECIMALS));
+// }
+
+/*** META ((export #t)) */
+var sc_floor = Math.floor;
+/*** META ((export #t)) */
+var sc_ceiling = Math.ceil;
+/*** META ((export #t)) */
+var sc_truncate = parseInt;
+/*** META ((export #t)) */
+var sc_round = Math.round;
+
+// LIMITATION: sc_rationalize doesn't make sense in a floating point world.
+
+/*** META ((export #t)) */
+var sc_exp = Math.exp;
+/*** META ((export #t)) */
+var sc_log = Math.log;
+/*** META ((export #t)) */
+var sc_sin = Math.sin;
+/*** META ((export #t)) */
+var sc_cos = Math.cos;
+/*** META ((export #t)) */
+var sc_tan = Math.tan;
+/*** META ((export #t)) */
+var sc_asin = Math.asin;
+/*** META ((export #t)) */
+var sc_acos = Math.acos;
+/*** META ((export #t)) */
+var sc_atan = Math.atan;
+
+/*** META ((export #t)) */
+var sc_sqrt = Math.sqrt;
+/*** META ((export #t)) */
+var sc_expt = Math.pow;
+
+// LIMITATION: we don't have complex numbers.
+// LIMITATION: the following functions are hence not implemented.
+// LIMITATION: make-rectangular, make-polar, real-part, imag-part, magnitude, angle
+// LIMITATION: 2 argument atan
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_exact2inexact(x) {
+ return x;
+}
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_inexact2exact(x) {
+ return x;
+}
+
+function sc_number2jsstring(x, radix) {
+ if (radix)
+ return x.toString(radix);
+ else
+ return x.toString();
+}
+
+function sc_jsstring2number(s, radix) {
+ if (s === "") return false;
+
+ if (radix) {
+ var t = parseInt(s, radix);
+ if (!t && t !== 0) return false;
+ // verify that each char is in range. (parseInt ignores leading
+ // white and trailing chars)
+ var allowedChars = "01234567890abcdefghijklmnopqrstuvwxyz".substring(0, radix+1);
+ if ((new RegExp("^["+allowedChars+"]*$", "i")).test(s))
+ return t;
+ else return false;
+ } else {
+ var t = +s; // does not ignore trailing chars.
+ if (!t && t !== 0) return false;
+ // simply verify that first char is not whitespace.
+ var c = s.charAt(0);
+ // if +c is 0, but the char is not "0", then we have a whitespace.
+ if (+c === 0 && c !== "0") return false;
+ return t;
+ }
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (not)))
+*/
+function sc_not(b) {
+ return b === false;
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isBoolean(b) {
+ return (b === true) || (b === false);
+}
+
+function sc_Pair(car, cdr) {
+ this.car = car;
+ this.cdr = cdr;
+}
+
+sc_Pair.prototype.toString = function() {
+ return sc_toDisplayString(this);
+};
+sc_Pair.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {
+ var current = this;
+
+ var res = "(";
+
+ while(true) {
+ res += writeOrDisplay(current.car);
+ if (sc_isPair(current.cdr)) {
+ res += " ";
+ current = current.cdr;
+ } else if (current.cdr !== null) {
+ res += " . " + writeOrDisplay(current.cdr);
+ break;
+ } else // current.cdr == null
+ break;
+ }
+
+ res += ")";
+
+ return res;
+};
+sc_Pair.prototype.sc_toDisplayString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toDisplayString);
+};
+sc_Pair.prototype.sc_toWriteString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toWriteString);
+};
+// sc_Pair.prototype.sc_toWriteCircleString in IO.js
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_Pair")))
+*/
+function sc_isPair(p) {
+ return (p instanceof sc_Pair);
+}
+
+function sc_isPairEqual(p1, p2, comp) {
+ return (comp(p1.car, p2.car) && comp(p1.cdr, p2.cdr));
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 "new sc_Pair(" car ", " cdr ")")))
+*/
+function sc_cons(car, cdr) {
+ return new sc_Pair(car, cdr);
+}
+
+/*** META ((export cons*)) */
+function sc_consStar() {
+ var res = arguments[arguments.length - 1];
+ for (var i = arguments.length-2; i >= 0; i--)
+ res = new sc_Pair(arguments[i], res);
+ return res;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".car")))
+*/
+function sc_car(p) {
+ return p.car;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".cdr")))
+*/
+function sc_cdr(p) {
+ return p.cdr;
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 p ".car = " val)))
+*/
+function sc_setCarBang(p, val) {
+ p.car = val;
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 p ".cdr = " val)))
+*/
+function sc_setCdrBang(p, val) {
+ p.cdr = val;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".car.car")))
+*/
+function sc_caar(p) { return p.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car")))
+*/
+function sc_cadr(p) { return p.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr")))
+*/
+function sc_cdar(p) { return p.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr")))
+*/
+function sc_cddr(p) { return p.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car")))
+*/
+function sc_caaar(p) { return p.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car")))
+*/
+function sc_cadar(p) { return p.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car")))
+*/
+function sc_caadr(p) { return p.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car")))
+*/
+function sc_caddr(p) { return p.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr")))
+*/
+function sc_cdaar(p) { return p.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr")))
+*/
+function sc_cdadr(p) { return p.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr")))
+*/
+function sc_cddar(p) { return p.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr")))
+*/
+function sc_cdddr(p) { return p.cdr.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car.car")))
+*/
+function sc_caaaar(p) { return p.car.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car.car")))
+*/
+function sc_caadar(p) { return p.car.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car.car")))
+*/
+function sc_caaadr(p) { return p.cdr.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car.car")))
+*/
+function sc_caaddr(p) { return p.cdr.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car.cdr")))
+*/
+function sc_cdaaar(p) { return p.car.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car.cdr")))
+*/
+function sc_cdadar(p) { return p.car.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car.cdr")))
+*/
+function sc_cdaadr(p) { return p.cdr.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car.cdr")))
+*/
+function sc_cdaddr(p) { return p.cdr.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr.car")))
+*/
+function sc_cadaar(p) { return p.car.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr.car")))
+*/
+function sc_caddar(p) { return p.car.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr.car")))
+*/
+function sc_cadadr(p) { return p.cdr.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr.car")))
+*/
+function sc_cadddr(p) { return p.cdr.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr.cdr")))
+*/
+function sc_cddaar(p) { return p.car.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr.cdr")))
+*/
+function sc_cdddar(p) { return p.car.cdr.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr.cdr")))
+*/
+function sc_cddadr(p) { return p.cdr.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr.cdr")))
+*/
+function sc_cddddr(p) { return p.cdr.cdr.cdr.cdr; }
+
+/*** META ((export #t)) */
+function sc_lastPair(l) {
+ if (!sc_isPair(l)) sc_error("sc_lastPair: pair expected");
+ var res = l;
+ var cdr = l.cdr;
+ while (sc_isPair(cdr)) {
+ res = cdr;
+ cdr = res.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " === null")))
+*/
+function sc_isNull(o) {
+ return (o === null);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isList(o) {
+ var rabbit;
+ var turtle;
+
+ var rabbit = o;
+ var turtle = o;
+ while (true) {
+ if (rabbit === null ||
+ (rabbit instanceof sc_Pair && rabbit.cdr === null))
+ return true; // end of list
+ else if ((rabbit instanceof sc_Pair) &&
+ (rabbit.cdr instanceof sc_Pair)) {
+ rabbit = rabbit.cdr.cdr;
+ turtle = turtle.cdr;
+ if (rabbit === turtle) return false; // cycle
+ } else
+ return false; // not pair
+ }
+}
+
+/*** META ((export #t)) */
+function sc_list() {
+ var res = null;
+ var a = arguments;
+ for (var i = a.length-1; i >= 0; i--)
+ res = new sc_Pair(a[i], res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_iota(num, init) {
+ var res = null;
+ if (!init) init = 0;
+ for (var i = num - 1; i >= 0; i--)
+ res = new sc_Pair(i + init, res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_makeList(nbEls, fill) {
+ var res = null;
+ for (var i = 0; i < nbEls; i++)
+ res = new sc_Pair(fill, res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_length(l) {
+ var res = 0;
+ while (l !== null) {
+ res++;
+ l = l.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_remq(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l !== null) {
+ if (l.car !== o) {
+ tail.cdr = sc_cons(l.car, null);
+ tail = tail.cdr;
+ }
+ l = l.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_remqBang(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ var needsAssig = true;
+ while (l !== null) {
+ if (l.car === o) {
+ needsAssig = true;
+ } else {
+ if (needsAssig) {
+ tail.cdr = l;
+ needsAssig = false;
+ }
+ tail = l;
+ }
+ l = l.cdr;
+ }
+ tail.cdr = null;
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_delete(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l !== null) {
+ if (!sc_isEqual(l.car, o)) {
+ tail.cdr = sc_cons(l.car, null);
+ tail = tail.cdr;
+ }
+ l = l.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_deleteBang(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ var needsAssig = true;
+ while (l !== null) {
+ if (sc_isEqual(l.car, o)) {
+ needsAssig = true;
+ } else {
+ if (needsAssig) {
+ tail.cdr = l;
+ needsAssig = false;
+ }
+ tail = l;
+ }
+ l = l.cdr;
+ }
+ tail.cdr = null;
+ return dummy.cdr;
+}
+
+function sc_reverseAppendBang(l1, l2) {
+ var res = l2;
+ while (l1 !== null) {
+ var tmp = res;
+ res = l1;
+ l1 = l1.cdr;
+ res.cdr = tmp;
+ }
+ return res;
+}
+
+function sc_dualAppend(l1, l2) {
+ if (l1 === null) return l2;
+ if (l2 === null) return l1;
+ var rev = sc_reverse(l1);
+ return sc_reverseAppendBang(rev, l2);
+}
+
+/*** META ((export #t)) */
+function sc_append() {
+ if (arguments.length === 0)
+ return null;
+ var res = arguments[arguments.length - 1];
+ for (var i = arguments.length - 2; i >= 0; i--)
+ res = sc_dualAppend(arguments[i], res);
+ return res;
+}
+
+function sc_dualAppendBang(l1, l2) {
+ if (l1 === null) return l2;
+ if (l2 === null) return l1;
+ var tmp = l1;
+ while (tmp.cdr !== null) tmp=tmp.cdr;
+ tmp.cdr = l2;
+ return l1;
+}
+
+/*** META ((export #t)) */
+function sc_appendBang() {
+ var res = null;
+ for (var i = 0; i < arguments.length; i++)
+ res = sc_dualAppendBang(res, arguments[i]);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_reverse(l1) {
+ var res = null;
+ while (l1 !== null) {
+ res = sc_cons(l1.car, res);
+ l1 = l1.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_reverseBang(l) {
+ return sc_reverseAppendBang(l, null);
+}
+
+/*** META ((export #t)) */
+function sc_listTail(l, k) {
+ var res = l;
+ for (var i = 0; i < k; i++) {
+ res = res.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_listRef(l, k) {
+ return sc_listTail(l, k).car;
+}
+
+/* // unoptimized generic versions
+function sc_memX(o, l, comp) {
+ while (l != null) {
+ if (comp(l.car, o))
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+function sc_memq(o, l) { return sc_memX(o, l, sc_isEq); }
+function sc_memv(o, l) { return sc_memX(o, l, sc_isEqv); }
+function sc_member(o, l) { return sc_memX(o, l, sc_isEqual); }
+*/
+
+/* optimized versions */
+/*** META ((export #t)) */
+function sc_memq(o, l) {
+ while (l !== null) {
+ if (l.car === o)
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_memv(o, l) {
+ while (l !== null) {
+ if (l.car === o)
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_member(o, l) {
+ while (l !== null) {
+ if (sc_isEqual(l.car,o))
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+
+/* // generic unoptimized versions
+function sc_assX(o, al, comp) {
+ while (al != null) {
+ if (comp(al.car.car, o))
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+function sc_assq(o, al) { return sc_assX(o, al, sc_isEq); }
+function sc_assv(o, al) { return sc_assX(o, al, sc_isEqv); }
+function sc_assoc(o, al) { return sc_assX(o, al, sc_isEqual); }
+*/
+// optimized versions
+/*** META ((export #t)) */
+function sc_assq(o, al) {
+ while (al !== null) {
+ if (al.car.car === o)
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_assv(o, al) {
+ while (al !== null) {
+ if (al.car.car === o)
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_assoc(o, al) {
+ while (al !== null) {
+ if (sc_isEqual(al.car.car, o))
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+
+/* can be used for mutable strings and characters */
+function sc_isCharStringEqual(cs1, cs2) { return cs1.val === cs2.val; }
+function sc_isCharStringLess(cs1, cs2) { return cs1.val < cs2.val; }
+function sc_isCharStringGreater(cs1, cs2) { return cs1.val > cs2.val; }
+function sc_isCharStringLessEqual(cs1, cs2) { return cs1.val <= cs2.val; }
+function sc_isCharStringGreaterEqual(cs1, cs2) { return cs1.val >= cs2.val; }
+function sc_isCharStringCIEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() === cs2.val.toLowerCase(); }
+function sc_isCharStringCILess(cs1, cs2)
+ { return cs1.val.toLowerCase() < cs2.val.toLowerCase(); }
+function sc_isCharStringCIGreater(cs1, cs2)
+ { return cs1.val.toLowerCase() > cs2.val.toLowerCase(); }
+function sc_isCharStringCILessEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() <= cs2.val.toLowerCase(); }
+function sc_isCharStringCIGreaterEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() >= cs2.val.toLowerCase(); }
+
+
+
+
+function sc_Char(c) {
+ var cached = sc_Char.lazy[c];
+ if (cached)
+ return cached;
+ this.val = c;
+ sc_Char.lazy[c] = this;
+ // add return, so FF does not complain.
+ return undefined;
+}
+sc_Char.lazy = new Object();
+// thanks to Eric
+sc_Char.char2readable = {
+ "\000": "#\\null",
+ "\007": "#\\bell",
+ "\010": "#\\backspace",
+ "\011": "#\\tab",
+ "\012": "#\\newline",
+ "\014": "#\\page",
+ "\015": "#\\return",
+ "\033": "#\\escape",
+ "\040": "#\\space",
+ "\177": "#\\delete",
+
+ /* poeticless names */
+ "\001": "#\\soh",
+ "\002": "#\\stx",
+ "\003": "#\\etx",
+ "\004": "#\\eot",
+ "\005": "#\\enq",
+ "\006": "#\\ack",
+
+ "\013": "#\\vt",
+ "\016": "#\\so",
+ "\017": "#\\si",
+
+ "\020": "#\\dle",
+ "\021": "#\\dc1",
+ "\022": "#\\dc2",
+ "\023": "#\\dc3",
+ "\024": "#\\dc4",
+ "\025": "#\\nak",
+ "\026": "#\\syn",
+ "\027": "#\\etb",
+
+ "\030": "#\\can",
+ "\031": "#\\em",
+ "\032": "#\\sub",
+ "\033": "#\\esc",
+ "\034": "#\\fs",
+ "\035": "#\\gs",
+ "\036": "#\\rs",
+ "\037": "#\\us"};
+
+sc_Char.readable2char = {
+ "null": "\000",
+ "bell": "\007",
+ "backspace": "\010",
+ "tab": "\011",
+ "newline": "\012",
+ "page": "\014",
+ "return": "\015",
+ "escape": "\033",
+ "space": "\040",
+ "delete": "\000",
+ "soh": "\001",
+ "stx": "\002",
+ "etx": "\003",
+ "eot": "\004",
+ "enq": "\005",
+ "ack": "\006",
+ "bel": "\007",
+ "bs": "\010",
+ "ht": "\011",
+ "nl": "\012",
+ "vt": "\013",
+ "np": "\014",
+ "cr": "\015",
+ "so": "\016",
+ "si": "\017",
+ "dle": "\020",
+ "dc1": "\021",
+ "dc2": "\022",
+ "dc3": "\023",
+ "dc4": "\024",
+ "nak": "\025",
+ "syn": "\026",
+ "etb": "\027",
+ "can": "\030",
+ "em": "\031",
+ "sub": "\032",
+ "esc": "\033",
+ "fs": "\034",
+ "gs": "\035",
+ "rs": "\036",
+ "us": "\037",
+ "sp": "\040",
+ "del": "\177"};
+
+sc_Char.prototype.toString = function() {
+ return this.val;
+};
+// sc_toDisplayString == toString
+sc_Char.prototype.sc_toWriteString = function() {
+ var entry = sc_Char.char2readable[this.val];
+ if (entry)
+ return entry;
+ else
+ return "#\\" + this.val;
+};
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "instanceof sc_Char")))
+*/
+function sc_isChar(c) {
+ return (c instanceof sc_Char);
+}
+
+/*** META ((export char=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val === " c2 ".val")))
+*/
+var sc_isCharEqual = sc_isCharStringEqual;
+/*** META ((export char<?)
+ (type bool)
+ (peephole (hole 2 c1 ".val < " c2 ".val")))
+*/
+var sc_isCharLess = sc_isCharStringLess;
+/*** META ((export char>?)
+ (type bool)
+ (peephole (hole 2 c1 ".val > " c2 ".val")))
+*/
+var sc_isCharGreater = sc_isCharStringGreater;
+/*** META ((export char<=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val <= " c2 ".val")))
+*/
+var sc_isCharLessEqual = sc_isCharStringLessEqual;
+/*** META ((export char>=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val >= " c2 ".val")))
+*/
+var sc_isCharGreaterEqual = sc_isCharStringGreaterEqual;
+/*** META ((export char-ci=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() === " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIEqual = sc_isCharStringCIEqual;
+/*** META ((export char-ci<?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() < " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCILess = sc_isCharStringCILess;
+/*** META ((export char-ci>?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() > " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIGreater = sc_isCharStringCIGreater;
+/*** META ((export char-ci<=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() <= " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCILessEqual = sc_isCharStringCILessEqual;
+/*** META ((export char-ci>=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() >= " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIGreaterEqual = sc_isCharStringCIGreaterEqual;
+
+var SC_NUMBER_CLASS = "0123456789";
+var SC_WHITESPACE_CLASS = ' \r\n\t\f';
+var SC_LOWER_CLASS = 'abcdefghijklmnopqrstuvwxyz';
+var SC_UPPER_CLASS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+
+function sc_isCharOfClass(c, cl) { return (cl.indexOf(c) != -1); }
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharAlphabetic(c)
+ { return sc_isCharOfClass(c.val, SC_LOWER_CLASS) ||
+ sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_NUMBER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharNumeric(c)
+ { return sc_isCharOfClass(c.val, SC_NUMBER_CLASS); }
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharWhitespace(c) {
+ var tmp = c.val;
+ return tmp === " " || tmp === "\r" || tmp === "\n" || tmp === "\t" || tmp === "\f";
+}
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_UPPER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharUpperCase(c)
+ { return sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_LOWER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharLowerCase(c)
+ { return sc_isCharOfClass(c.val, SC_LOWER_CLASS); }
+
+/*** META ((export #t)
+ (peephole (postfix ".val.charCodeAt(0)")))
+*/
+function sc_char2integer(c)
+ { return c.val.charCodeAt(0); }
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(String.fromCharCode(" n "))")))
+*/
+function sc_integer2char(n)
+ { return new sc_Char(String.fromCharCode(n)); }
+
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(" c ".val.toUpperCase())")))
+*/
+function sc_charUpcase(c)
+ { return new sc_Char(c.val.toUpperCase()); }
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(" c ".val.toLowerCase())")))
+*/
+function sc_charDowncase(c)
+ { return new sc_Char(c.val.toLowerCase()); }
+
+function sc_makeJSStringOfLength(k, c) {
+ var fill;
+ if (c === undefined)
+ fill = " ";
+ else
+ fill = c;
+ var res = "";
+ var len = 1;
+ // every round doubles the size of fill.
+ while (k >= len) {
+ if (k & len)
+ res = res.concat(fill);
+ fill = fill.concat(fill);
+ len *= 2;
+ }
+ return res;
+}
+
+function sc_makejsString(k, c) {
+ var fill;
+ if (c)
+ fill = c.val;
+ else
+ fill = " ";
+ return sc_makeJSStringOfLength(k, fill);
+}
+
+function sc_jsstring2list(s) {
+ var res = null;
+ for (var i = s.length - 1; i >= 0; i--)
+ res = sc_cons(new sc_Char(s.charAt(i)), res);
+ return res;
+}
+
+function sc_list2jsstring(l) {
+ var a = new Array();
+ while(l !== null) {
+ a.push(l.car.val);
+ l = l.cdr;
+ }
+ return "".concat.apply("", a);
+}
+
+var sc_Vector = Array;
+
+sc_Vector.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {
+ if (this.length === 0) return "#()";
+
+ var res = "#(" + writeOrDisplay(this[0]);
+ for (var i = 1; i < this.length; i++)
+ res += " " + writeOrDisplay(this[i]);
+ res += ")";
+ return res;
+};
+sc_Vector.prototype.sc_toDisplayString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toDisplayString);
+};
+sc_Vector.prototype.sc_toWriteString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toWriteString);
+};
+
+/*** META ((export vector? array?)
+ (type bool)
+ (peephole (postfix " instanceof sc_Vector")))
+*/
+function sc_isVector(v) {
+ return (v instanceof sc_Vector);
+}
+
+// only applies to vectors
+function sc_isVectorEqual(v1, v2, comp) {
+ if (v1.length !== v2.length) return false;
+ for (var i = 0; i < v1.length; i++)
+ if (!comp(v1[i], v2[i])) return false;
+ return true;
+}
+
+/*** META ((export make-vector make-array)) */
+function sc_makeVector(size, fill) {
+ var a = new sc_Vector(size);
+ if (fill !== undefined)
+ sc_vectorFillBang(a, fill);
+ return a;
+}
+
+/*** META ((export vector array)
+ (peephole (vector)))
+*/
+function sc_vector() {
+ var a = new sc_Vector();
+ for (var i = 0; i < arguments.length; i++)
+ a.push(arguments[i]);
+ return a;
+}
+
+/*** META ((export vector-length array-length)
+ (peephole (postfix ".length")))
+*/
+function sc_vectorLength(v) {
+ return v.length;
+}
+
+/*** META ((export vector-ref array-ref)
+ (peephole (hole 2 v "[" pos "]")))
+*/
+function sc_vectorRef(v, pos) {
+ return v[pos];
+}
+
+/*** META ((export vector-set! array-set!)
+ (peephole (hole 3 v "[" pos "] = " val)))
+*/
+function sc_vectorSetBang(v, pos, val) {
+ v[pos] = val;
+}
+
+/*** META ((export vector->list array->list)) */
+function sc_vector2list(a) {
+ var res = null;
+ for (var i = a.length-1; i >= 0; i--)
+ res = sc_cons(a[i], res);
+ return res;
+}
+
+/*** META ((export list->vector list->array)) */
+function sc_list2vector(l) {
+ var a = new sc_Vector();
+ while(l !== null) {
+ a.push(l.car);
+ l = l.cdr;
+ }
+ return a;
+}
+
+/*** META ((export vector-fill! array-fill!)) */
+function sc_vectorFillBang(a, fill) {
+ for (var i = 0; i < a.length; i++)
+ a[i] = fill;
+}
+
+
+/*** META ((export #t)) */
+function sc_copyVector(a, len) {
+ if (len <= a.length)
+ return a.slice(0, len);
+ else {
+ var tmp = a.concat();
+ tmp.length = len;
+ return tmp;
+ }
+}
+
+/*** META ((export #t)
+ (peephole (hole 3 a ".slice(" start "," end ")")))
+*/
+function sc_vectorCopy(a, start, end) {
+ return a.slice(start, end);
+}
+
+/*** META ((export #t)) */
+function sc_vectorCopyBang(target, tstart, source, sstart, send) {
+ if (!sstart) sstart = 0;
+ if (!send) send = source.length;
+
+ // if target == source we don't want to overwrite not yet copied elements.
+ if (tstart <= sstart) {
+ for (var i = tstart, j = sstart; j < send; i++, j++) {
+ target[i] = source[j];
+ }
+ } else {
+ var diff = send - sstart;
+ for (var i = tstart + diff - 1, j = send - 1;
+ j >= sstart;
+ i--, j--) {
+ target[i] = source[j];
+ }
+ }
+ return target;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "typeof " o " === 'function'")))
+*/
+function sc_isProcedure(o) {
+ return (typeof o === "function");
+}
+
+/*** META ((export #t)) */
+function sc_apply(proc) {
+ var args = new Array();
+ // first part of arguments are not in list-form.
+ for (var i = 1; i < arguments.length - 1; i++)
+ args.push(arguments[i]);
+ var l = arguments[arguments.length - 1];
+ while (l !== null) {
+ args.push(l.car);
+ l = l.cdr;
+ }
+ return proc.apply(null, args);
+}
+
+/*** META ((export #t)) */
+function sc_map(proc, l1) {
+ if (l1 === undefined)
+ return null;
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ var revres = null;
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ revres = sc_cons(proc.apply(null, applyArgs), revres);
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_mapBang(proc, l1) {
+ if (l1 === undefined)
+ return null;
+ // else
+ var l1_orig = l1;
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ while (l1 !== null) {
+ var tmp = l1;
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ tmp.car = proc.apply(null, applyArgs);
+ }
+ return l1_orig;
+}
+
+/*** META ((export #t)) */
+function sc_forEach(proc, l1) {
+ if (l1 === undefined)
+ return undefined;
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ proc.apply(null, applyArgs);
+ }
+ // add return so FF does not complain.
+ return undefined;
+}
+
+/*** META ((export #t)) */
+function sc_filter(proc, l1) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l1 !== null) {
+ if (proc(l1.car) !== false) {
+ tail.cdr = sc_cons(l1.car, null);
+ tail = tail.cdr;
+ }
+ l1 = l1.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_filterBang(proc, l1) {
+ var head = sc_cons("dummy", l1);
+ var it = head;
+ var next = l1;
+ while (next !== null) {
+ if (proc(next.car) !== false) {
+ it.cdr = next
+ it = next;
+ }
+ next = next.cdr;
+ }
+ it.cdr = null;
+ return head.cdr;
+}
+
+function sc_filterMap1(proc, l1) {
+ var revres = null;
+ while (l1 !== null) {
+ var tmp = proc(l1.car)
+ if (tmp !== false) revres = sc_cons(tmp, revres);
+ l1 = l1.cdr;
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+function sc_filterMap2(proc, l1, l2) {
+ var revres = null;
+ while (l1 !== null) {
+ var tmp = proc(l1.car, l2.car);
+ if(tmp !== false) revres = sc_cons(tmp, revres);
+ l1 = l1.cdr;
+ l2 = l2.cdr
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_filterMap(proc, l1, l2, l3) {
+ if (l2 === undefined)
+ return sc_filterMap1(proc, l1);
+ else if (l3 === undefined)
+ return sc_filterMap2(proc, l1, l2);
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ var revres = null;
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ var tmp = proc.apply(null, applyArgs);
+ if(tmp !== false) revres = sc_cons(tmp, revres);
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_any(proc, l) {
+ var revres = null;
+ while (l !== null) {
+ var tmp = proc(l.car);
+ if(tmp !== false) return tmp;
+ l = l.cdr;
+ }
+ return false;
+}
+
+/*** META ((export any?)
+ (peephole (hole 2 "sc_any(" proc "," l ") !== false")))
+*/
+function sc_anyPred(proc, l) {
+ return sc_any(proc, l)!== false;
+}
+
+/*** META ((export #t)) */
+function sc_every(proc, l) {
+ var revres = null;
+ var tmp = true;
+ while (l !== null) {
+ tmp = proc(l.car);
+ if (tmp === false) return false;
+ l = l.cdr;
+ }
+ return tmp;
+}
+
+/*** META ((export every?)
+ (peephole (hole 2 "sc_every(" proc "," l ") !== false")))
+*/
+function sc_everyPred(proc, l) {
+ var tmp = sc_every(proc, l);
+ if (tmp !== false) return true;
+ return false;
+}
+
+/*** META ((export #t)
+ (peephole (postfix "()")))
+*/
+function sc_force(o) {
+ return o();
+}
+
+/*** META ((export #t)) */
+function sc_makePromise(proc) {
+ var isResultReady = false;
+ var result = undefined;
+ return function() {
+ if (!isResultReady) {
+ var tmp = proc();
+ if (!isResultReady) {
+ isResultReady = true;
+ result = tmp;
+ }
+ }
+ return result;
+ };
+}
+
+function sc_Values(values) {
+ this.values = values;
+}
+
+/*** META ((export #t)
+ (peephole (values)))
+*/
+function sc_values() {
+ if (arguments.length === 1)
+ return arguments[0];
+ else
+ return new sc_Values(arguments);
+}
+
+/*** META ((export #t)) */
+function sc_callWithValues(producer, consumer) {
+ var produced = producer();
+ if (produced instanceof sc_Values)
+ return consumer.apply(null, produced.values);
+ else
+ return consumer(produced);
+}
+
+/*** META ((export #t)) */
+function sc_dynamicWind(before, thunk, after) {
+ before();
+ try {
+ var res = thunk();
+ return res;
+ } finally {
+ after();
+ }
+}
+
+
+// TODO: eval/scheme-report-environment/null-environment/interaction-environment
+
+// LIMITATION: 'load' doesn't exist without files.
+// LIMITATION: transcript-on/transcript-off doesn't exist without files.
+
+
+function sc_Struct(name) {
+ this.name = name;
+}
+sc_Struct.prototype.sc_toDisplayString = function() {
+ return "#<struct" + sc_hash(this) + ">";
+};
+sc_Struct.prototype.sc_toWriteString = sc_Struct.prototype.sc_toDisplayString;
+
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Struct(" name ")")))
+*/
+function sc_makeStruct(name) {
+ return new sc_Struct(name);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_Struct")))
+*/
+function sc_isStruct(o) {
+ return (o instanceof sc_Struct);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 2 "(" 1 " instanceof sc_Struct) && ( " 1 ".name === " 0 ")")))
+*/
+function sc_isStructNamed(name, s) {
+ return ((s instanceof sc_Struct) && (s.name === name));
+}
+
+/*** META ((export struct-field)
+ (peephole (hole 3 0 "[" 2 "]")))
+*/
+function sc_getStructField(s, name, field) {
+ return s[field];
+}
+
+/*** META ((export struct-field-set!)
+ (peephole (hole 4 0 "[" 2 "] = " 3)))
+*/
+function sc_setStructFieldBang(s, name, field, val) {
+ s[field] = val;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "~")))
+*/
+function sc_bitNot(x) {
+ return ~x;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "&")))
+*/
+function sc_bitAnd(x, y) {
+ return x & y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "|")))
+*/
+function sc_bitOr(x, y) {
+ return x | y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "^")))
+*/
+function sc_bitXor(x, y) {
+ return x ^ y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "<<")))
+*/
+function sc_bitLsh(x, y) {
+ return x << y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 ">>")))
+*/
+function sc_bitRsh(x, y) {
+ return x >> y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 ">>>")))
+*/
+function sc_bitUrsh(x, y) {
+ return x >>> y;
+}
+
+/*** META ((export js-field js-property)
+ (peephole (hole 2 o "[" field "]")))
+*/
+function sc_jsField(o, field) {
+ return o[field];
+}
+
+/*** META ((export js-field-set! js-property-set!)
+ (peephole (hole 3 o "[" field "] = " val)))
+*/
+function sc_setJsFieldBang(o, field, val) {
+ return o[field] = val;
+}
+
+/*** META ((export js-field-delete! js-property-delete!)
+ (peephole (hole 2 "delete" o "[" field "]")))
+*/
+function sc_deleteJsFieldBang(o, field) {
+ delete o[field];
+}
+
+/*** META ((export #t)
+ (peephole (jsCall)))
+*/
+function sc_jsCall(o, fun) {
+ var args = new Array();
+ for (var i = 2; i < arguments.length; i++)
+ args[i-2] = arguments[i];
+ return fun.apply(o, args);
+}
+
+/*** META ((export #t)
+ (peephole (jsMethodCall)))
+*/
+function sc_jsMethodCall(o, field) {
+ var args = new Array();
+ for (var i = 2; i < arguments.length; i++)
+ args[i-2] = arguments[i];
+ return o[field].apply(o, args);
+}
+
+/*** META ((export new js-new)
+ (peephole (jsNew)))
+*/
+function sc_jsNew(c) {
+ var evalStr = "new c(";
+ evalStr +=arguments.length > 1? "arguments[1]": "";
+ for (var i = 2; i < arguments.length; i++)
+ evalStr += ", arguments[" + i + "]";
+ evalStr +=")";
+ return eval(evalStr);
+}
+
+// ======================== RegExp ====================
+/*** META ((export #t)) */
+function sc_pregexp(re) {
+ return new RegExp(sc_string2jsstring(re));
+}
+
+/*** META ((export #t)) */
+function sc_pregexpMatch(re, s) {
+ var reg = (re instanceof RegExp) ? re : sc_pregexp(re);
+ var tmp = reg.exec(sc_string2jsstring(s));
+
+ if (tmp == null) return false;
+
+ var res = null;
+ for (var i = tmp.length-1; i >= 0; i--) {
+ if (tmp[i] !== null) {
+ res = sc_cons(sc_jsstring2string(tmp[i]), res);
+ } else {
+ res = sc_cons(false, res);
+ }
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_pregexpReplace(re, s1, s2) {
+ var reg;
+ var jss1 = sc_string2jsstring(s1);
+ var jss2 = sc_string2jsstring(s2);
+
+ if (re instanceof RegExp) {
+ if (re.global)
+ reg = re;
+ else
+ reg = new RegExp(re.source);
+ } else {
+ reg = new RegExp(sc_string2jsstring(re));
+ }
+
+ return jss1.replace(reg, jss2);
+}
+
+/*** META ((export pregexp-replace*)) */
+function sc_pregexpReplaceAll(re, s1, s2) {
+ var reg;
+ var jss1 = sc_string2jsstring(s1);
+ var jss2 = sc_string2jsstring(s2);
+
+ if (re instanceof RegExp) {
+ if (re.global)
+ reg = re;
+ else
+ reg = new RegExp(re.source, "g");
+ } else {
+ reg = new RegExp(sc_string2jsstring(re), "g");
+ }
+
+ return jss1.replace(reg, jss2);
+}
+
+/*** META ((export #t)) */
+function sc_pregexpSplit(re, s) {
+ var reg = ((re instanceof RegExp) ?
+ re :
+ new RegExp(sc_string2jsstring(re)));
+ var jss = sc_string2jsstring(s);
+ var tmp = jss.split(reg);
+
+ if (tmp == null) return false;
+
+ return sc_vector2list(tmp);
+}
+
+
+/* =========================================================================== */
+/* Other library stuff */
+/* =========================================================================== */
+
+/*** META ((export #t)
+ (peephole (hole 1 "Math.floor(Math.random()*" 'n ")")))
+*/
+function sc_random(n) {
+ return Math.floor(Math.random()*n);
+}
+
+/*** META ((export current-date)
+ (peephole (hole 0 "new Date()")))
+*/
+function sc_currentDate() {
+ return new Date();
+}
+
+function sc_Hashtable() {
+}
+sc_Hashtable.prototype.toString = function() {
+ return "#{%hashtable}";
+};
+// sc_toWriteString == sc_toDisplayString == toString
+
+function sc_HashtableElement(key, val) {
+ this.key = key;
+ this.val = val;
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "new sc_Hashtable()")))
+*/
+function sc_makeHashtable() {
+ return new sc_Hashtable();
+}
+
+/*** META ((export #t)) */
+function sc_hashtablePutBang(ht, key, val) {
+ var hash = sc_hash(key);
+ ht[hash] = new sc_HashtableElement(key, val);
+}
+
+/*** META ((export #t)) */
+function sc_hashtableGet(ht, key) {
+ var hash = sc_hash(key);
+ if (hash in ht)
+ return ht[hash].val;
+ else
+ return false;
+}
+
+/*** META ((export #t)) */
+function sc_hashtableForEach(ht, f) {
+ for (var v in ht) {
+ if (ht[v] instanceof sc_HashtableElement)
+ f(ht[v].key, ht[v].val);
+ }
+}
+
+/*** META ((export hashtable-contains?)
+ (peephole (hole 2 "sc_hash(" 1 ") in " 0)))
+*/
+function sc_hashtableContains(ht, key) {
+ var hash = sc_hash(key);
+ if (hash in ht)
+ return true;
+ else
+ return false;
+}
+
+var SC_HASH_COUNTER = 0;
+
+function sc_hash(o) {
+ if (o === null)
+ return "null";
+ else if (o === undefined)
+ return "undefined";
+ else if (o === true)
+ return "true";
+ else if (o === false)
+ return "false";
+ else if (typeof o === "number")
+ return "num-" + o;
+ else if (typeof o === "string")
+ return "jsstr-" + o;
+ else if (o.sc_getHash)
+ return o.sc_getHash();
+ else
+ return sc_counterHash.call(o);
+}
+function sc_counterHash() {
+ if (!this.sc_hash) {
+ this.sc_hash = "hash-" + SC_HASH_COUNTER;
+ SC_HASH_COUNTER++;
+ }
+ return this.sc_hash;
+}
+
+function sc_Trampoline(args, maxTailCalls) {
+ this['__trampoline return__'] = true;
+ this.args = args;
+ this.MAX_TAIL_CALLs = maxTailCalls;
+}
+// TODO: call/cc stuff
+sc_Trampoline.prototype.restart = function() {
+ var o = this;
+ while (true) {
+ // set both globals.
+ SC_TAIL_OBJECT.calls = o.MAX_TAIL_CALLs-1;
+ var fun = o.args.callee;
+ var res = fun.apply(SC_TAIL_OBJECT, o.args);
+ if (res instanceof sc_Trampoline)
+ o = res;
+ else
+ return res;
+ }
+}
+
+/*** META ((export bind-exit-lambda)) */
+function sc_bindExitLambda(proc) {
+ var escape_obj = new sc_BindExitException();
+ var escape = function(res) {
+ escape_obj.res = res;
+ throw escape_obj;
+ };
+ try {
+ return proc(escape);
+ } catch(e) {
+ if (e === escape_obj) {
+ return e.res;
+ }
+ throw e;
+ }
+}
+function sc_BindExitException() {
+ this._internalException = true;
+}
+
+var SC_SCM2JS_GLOBALS = new Object();
+
+// default tail-call depth.
+// normally the program should set it again. but just in case...
+var SC_TAIL_OBJECT = new Object();
+SC_SCM2JS_GLOBALS.TAIL_OBJECT = SC_TAIL_OBJECT;
+// ======================== I/O =======================
+
+/*------------------------------------------------------------------*/
+
+function sc_EOF() {
+}
+var SC_EOF_OBJECT = new sc_EOF();
+
+function sc_Port() {
+}
+
+/* --------------- Input ports -------------------------------------*/
+
+function sc_InputPort() {
+}
+sc_InputPort.prototype = new sc_Port();
+
+sc_InputPort.prototype.peekChar = function() {
+ if (!("peeked" in this))
+ this.peeked = this.getNextChar();
+ return this.peeked;
+}
+sc_InputPort.prototype.readChar = function() {
+ var tmp = this.peekChar();
+ delete this.peeked;
+ return tmp;
+}
+sc_InputPort.prototype.isCharReady = function() {
+ return true;
+}
+sc_InputPort.prototype.close = function() {
+ // do nothing
+}
+
+/* .............. String port ..........................*/
+function sc_ErrorInputPort() {
+};
+sc_ErrorInputPort.prototype = new sc_InputPort();
+sc_ErrorInputPort.prototype.getNextChar = function() {
+ throw "can't read from error-port.";
+};
+sc_ErrorInputPort.prototype.isCharReady = function() {
+ return false;
+};
+
+
+/* .............. String port ..........................*/
+
+function sc_StringInputPort(jsStr) {
+ // we are going to do some charAts on the str.
+ // instead of recreating all the time a String-object, we
+ // create one in the beginning. (not sure, if this is really an optim)
+ this.str = new String(jsStr);
+ this.pos = 0;
+}
+sc_StringInputPort.prototype = new sc_InputPort();
+sc_StringInputPort.prototype.getNextChar = function() {
+ if (this.pos >= this.str.length)
+ return SC_EOF_OBJECT;
+ return this.str.charAt(this.pos++);
+};
+
+/* ------------- Read and other lib-funs -------------------------------*/
+function sc_Token(type, val, pos) {
+ this.type = type;
+ this.val = val;
+ this.pos = pos;
+}
+sc_Token.EOF = 0/*EOF*/;
+sc_Token.OPEN_PAR = 1/*OPEN_PAR*/;
+sc_Token.CLOSE_PAR = 2/*CLOSE_PAR*/;
+sc_Token.OPEN_BRACE = 3/*OPEN_BRACE*/;
+sc_Token.CLOSE_BRACE = 4/*CLOSE_BRACE*/;
+sc_Token.OPEN_BRACKET = 5/*OPEN_BRACKET*/;
+sc_Token.CLOSE_BRACKET = 6/*CLOSE_BRACKET*/;
+sc_Token.WHITESPACE = 7/*WHITESPACE*/;
+sc_Token.QUOTE = 8/*QUOTE*/;
+sc_Token.ID = 9/*ID*/;
+sc_Token.DOT = 10/*DOT*/;
+sc_Token.STRING = 11/*STRING*/;
+sc_Token.NUMBER = 12/*NUMBER*/;
+sc_Token.ERROR = 13/*ERROR*/;
+sc_Token.VECTOR_BEGIN = 14/*VECTOR_BEGIN*/;
+sc_Token.TRUE = 15/*TRUE*/;
+sc_Token.FALSE = 16/*FALSE*/;
+sc_Token.UNSPECIFIED = 17/*UNSPECIFIED*/;
+sc_Token.REFERENCE = 18/*REFERENCE*/;
+sc_Token.STORE = 19/*STORE*/;
+sc_Token.CHAR = 20/*CHAR*/;
+
+var SC_ID_CLASS = SC_LOWER_CLASS + SC_UPPER_CLASS + "!$%*+-./:<=>?@^_~";
+function sc_Tokenizer(port) {
+ this.port = port;
+}
+sc_Tokenizer.prototype.peekToken = function() {
+ if (this.peeked)
+ return this.peeked;
+ var newToken = this.nextToken();
+ this.peeked = newToken;
+ return newToken;
+};
+sc_Tokenizer.prototype.readToken = function() {
+ var tmp = this.peekToken();
+ delete this.peeked;
+ return tmp;
+};
+sc_Tokenizer.prototype.nextToken = function() {
+ var port = this.port;
+
+ function isNumberChar(c) {
+ return (c >= "0" && c <= "9");
+ };
+ function isIdOrNumberChar(c) {
+ return SC_ID_CLASS.indexOf(c) != -1 || // ID-char
+ (c >= "0" && c <= "9");
+ }
+ function isWhitespace(c) {
+ return c === " " || c === "\r" || c === "\n" || c === "\t" || c === "\f";
+ };
+ function isWhitespaceOrEOF(c) {
+ return isWhitespace(c) || c === SC_EOF_OBJECT;
+ };
+
+ function readString() {
+ res = "";
+ while (true) {
+ var c = port.readChar();
+ switch (c) {
+ case '"':
+ return new sc_Token(11/*STRING*/, res);
+ case "\\":
+ var tmp = port.readChar();
+ switch (tmp) {
+ case '0': res += "\0"; break;
+ case 'a': res += "\a"; break;
+ case 'b': res += "\b"; break;
+ case 'f': res += "\f"; break;
+ case 'n': res += "\n"; break;
+ case 'r': res += "\r"; break;
+ case 't': res += "\t"; break;
+ case 'v': res += "\v"; break;
+ case '"': res += '"'; break;
+ case '\\': res += '\\'; break;
+ case 'x':
+ /* hexa-number */
+ var nb = 0;
+ while (true) {
+ var hexC = port.peekChar();
+ if (hexC >= '0' && hexC <= '9') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - '0'.charCodeAt(0);
+ } else if (hexC >= 'a' && hexC <= 'f') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - 'a'.charCodeAt(0);
+ } else if (hexC >= 'A' && hexC <= 'F') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - 'A'.charCodeAt(0);
+ } else {
+ // next char isn't part of hex.
+ res += String.fromCharCode(nb);
+ break;
+ }
+ }
+ break;
+ default:
+ if (tmp === SC_EOF_OBJECT) {
+ return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res);
+ }
+ res += tmp;
+ }
+ break;
+ default:
+ if (c === SC_EOF_OBJECT) {
+ return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res);
+ }
+ res += c;
+ }
+ }
+ };
+ function readIdOrNumber(firstChar) {
+ var res = firstChar;
+ while (isIdOrNumberChar(port.peekChar()))
+ res += port.readChar();
+ if (isNaN(res))
+ return new sc_Token(9/*ID*/, res);
+ else
+ return new sc_Token(12/*NUMBER*/, res - 0);
+ };
+
+ function skipWhitespaceAndComments() {
+ var done = false;
+ while (!done) {
+ done = true;
+ while (isWhitespace(port.peekChar()))
+ port.readChar();
+ if (port.peekChar() === ';') {
+ port.readChar();
+ done = false;
+ while (true) {
+ curChar = port.readChar();
+ if (curChar === SC_EOF_OBJECT ||
+ curChar === '\n')
+ break;
+ }
+ }
+ }
+ };
+
+ function readDot() {
+ if (isWhitespace(port.peekChar()))
+ return new sc_Token(10/*DOT*/);
+ else
+ return readIdOrNumber(".");
+ };
+
+ function readSharp() {
+ var c = port.readChar();
+ if (isWhitespace(c))
+ return new sc_Token(13/*ERROR*/, "bad #-pattern0.");
+
+ // reference
+ if (isNumberChar(c)) {
+ var nb = c - 0;
+ while (isNumberChar(port.peekChar()))
+ nb = nb*10 + (port.readChar() - 0);
+ switch (port.readChar()) {
+ case '#':
+ return new sc_Token(18/*REFERENCE*/, nb);
+ case '=':
+ return new sc_Token(19/*STORE*/, nb);
+ default:
+ return new sc_Token(13/*ERROR*/, "bad #-pattern1." + nb);
+ }
+ }
+
+ if (c === "(")
+ return new sc_Token(14/*VECTOR_BEGIN*/);
+
+ if (c === "\\") { // character
+ var tmp = ""
+ while (!isWhitespaceOrEOF(port.peekChar()))
+ tmp += port.readChar();
+ switch (tmp.length) {
+ case 0: // it's escaping a whitespace char:
+ if (sc_isEOFObject(port.peekChar))
+ return new sc_Token(13/*ERROR*/, "bad #-pattern2.");
+ else
+ return new sc_Token(20/*CHAR*/, port.readChar());
+ case 1:
+ return new sc_Token(20/*CHAR*/, tmp);
+ default:
+ var entry = sc_Char.readable2char[tmp.toLowerCase()];
+ if (entry)
+ return new sc_Token(20/*CHAR*/, entry);
+ else
+ return new sc_Token(13/*ERROR*/, "unknown character description: #\\" + tmp);
+ }
+ }
+
+ // some constants (#t, #f, #unspecified)
+ var res;
+ var needing;
+ switch (c) {
+ case 't': res = new sc_Token(15/*TRUE*/, true); needing = ""; break;
+ case 'f': res = new sc_Token(16/*FALSE*/, false); needing = ""; break;
+ case 'u': res = new sc_Token(17/*UNSPECIFIED*/, undefined); needing = "nspecified"; break;
+ default:
+ return new sc_Token(13/*ERROR*/, "bad #-pattern3: " + c);
+ }
+ while(true) {
+ c = port.peekChar();
+ if ((isWhitespaceOrEOF(c) || c === ')') &&
+ needing == "")
+ return res;
+ else if (isWhitespace(c) || needing == "")
+ return new sc_Token(13/*ERROR*/, "bad #-pattern4 " + c + " " + needing);
+ else if (needing.charAt(0) == c) {
+ port.readChar(); // consume
+ needing = needing.slice(1);
+ } else
+ return new sc_Token(13/*ERROR*/, "bad #-pattern5");
+ }
+
+ };
+
+ skipWhitespaceAndComments();
+ var curChar = port.readChar();
+ if (curChar === SC_EOF_OBJECT)
+ return new sc_Token(0/*EOF*/, curChar);
+ switch (curChar)
+ {
+ case " ":
+ case "\n":
+ case "\t":
+ return readWhitespace();
+ case "(":
+ return new sc_Token(1/*OPEN_PAR*/);
+ case ")":
+ return new sc_Token(2/*CLOSE_PAR*/);
+ case "{":
+ return new sc_Token(3/*OPEN_BRACE*/);
+ case "}":
+ return new sc_Token(4/*CLOSE_BRACE*/);
+ case "[":
+ return new sc_Token(5/*OPEN_BRACKET*/);
+ case "]":
+ return new sc_Token(6/*CLOSE_BRACKET*/);
+ case "'":
+ return new sc_Token(8/*QUOTE*/);
+ case "#":
+ return readSharp();
+ case ".":
+ return readDot();
+ case '"':
+ return readString();
+ default:
+ if (isIdOrNumberChar(curChar))
+ return readIdOrNumber(curChar);
+ throw "unexpected character: " + curChar;
+ }
+};
+
+function sc_Reader(tokenizer) {
+ this.tokenizer = tokenizer;
+ this.backref = new Array();
+}
+sc_Reader.prototype.read = function() {
+ function readList(listBeginType) {
+ function matchesPeer(open, close) {
+ return open === 1/*OPEN_PAR*/ && close === 2/*CLOSE_PAR*/
+ || open === 3/*OPEN_BRACE*/ && close === 4/*CLOSE_BRACE*/
+ || open === 5/*OPEN_BRACKET*/ && close === 6/*CLOSE_BRACKET*/;
+ };
+ var res = null;
+
+ while (true) {
+ var token = tokenizer.peekToken();
+
+ switch (token.type) {
+ case 2/*CLOSE_PAR*/:
+ case 4/*CLOSE_BRACE*/:
+ case 6/*CLOSE_BRACKET*/:
+ if (matchesPeer(listBeginType, token.type)) {
+ tokenizer.readToken(); // consume token
+ return sc_reverseBang(res);
+ } else
+ throw "closing par doesn't match: " + listBeginType
+ + " " + listEndType;
+
+ case 0/*EOF*/:
+ throw "unexpected end of file";
+
+ case 10/*DOT*/:
+ tokenizer.readToken(); // consume token
+ var cdr = this.read();
+ var par = tokenizer.readToken();
+ if (!matchesPeer(listBeginType, par.type))
+ throw "closing par doesn't match: " + listBeginType
+ + " " + par.type;
+ else
+ return sc_reverseAppendBang(res, cdr);
+
+
+ default:
+ res = sc_cons(this.read(), res);
+ }
+ }
+ };
+ function readQuote() {
+ return sc_cons("quote", sc_cons(this.read(), null));
+ };
+ function readVector() {
+ // opening-parenthesis is already consumed
+ var a = new Array();
+ while (true) {
+ var token = tokenizer.peekToken();
+ switch (token.type) {
+ case 2/*CLOSE_PAR*/:
+ tokenizer.readToken();
+ return a;
+
+ default:
+ a.push(this.read());
+ }
+ }
+ };
+
+ function storeRefence(nb) {
+ var tmp = this.read();
+ this.backref[nb] = tmp;
+ return tmp;
+ };
+
+ function readReference(nb) {
+ if (nb in this.backref)
+ return this.backref[nb];
+ else
+ throw "bad reference: " + nb;
+ };
+
+ var tokenizer = this.tokenizer;
+
+ var token = tokenizer.readToken();
+
+ // handle error
+ if (token.type === 13/*ERROR*/)
+ throw token.val;
+
+ switch (token.type) {
+ case 1/*OPEN_PAR*/:
+ case 3/*OPEN_BRACE*/:
+ case 5/*OPEN_BRACKET*/:
+ return readList.call(this, token.type);
+ case 8/*QUOTE*/:
+ return readQuote.call(this);
+ case 11/*STRING*/:
+ return sc_jsstring2string(token.val);
+ case 20/*CHAR*/:
+ return new sc_Char(token.val);
+ case 14/*VECTOR_BEGIN*/:
+ return readVector.call(this);
+ case 18/*REFERENCE*/:
+ return readReference.call(this, token.val);
+ case 19/*STORE*/:
+ return storeRefence.call(this, token.val);
+ case 9/*ID*/:
+ return sc_jsstring2symbol(token.val);
+ case 0/*EOF*/:
+ case 12/*NUMBER*/:
+ case 15/*TRUE*/:
+ case 16/*FALSE*/:
+ case 17/*UNSPECIFIED*/:
+ return token.val;
+ default:
+ throw "unexpected token " + token.type + " " + token.val;
+ }
+};
+
+/*** META ((export #t)) */
+function sc_read(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var reader = new sc_Reader(new sc_Tokenizer(port));
+ return reader.read();
+}
+/*** META ((export #t)) */
+function sc_readChar(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var t = port.readChar();
+ return t === SC_EOF_OBJECT? t: new sc_Char(t);
+}
+/*** META ((export #t)) */
+function sc_peekChar(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var t = port.peekChar();
+ return t === SC_EOF_OBJECT? t: new sc_Char(t);
+}
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharReady(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ return port.isCharReady();
+}
+/*** META ((export #t)
+ (peephole (postfix ".close()")))
+*/
+function sc_closeInputPort(p) {
+ return p.close();
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_InputPort")))
+*/
+function sc_isInputPort(o) {
+ return (o instanceof sc_InputPort);
+}
+
+/*** META ((export eof-object?)
+ (type bool)
+ (peephole (postfix " === SC_EOF_OBJECT")))
+*/
+function sc_isEOFObject(o) {
+ return o === SC_EOF_OBJECT;
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "SC_DEFAULT_IN")))
+*/
+function sc_currentInputPort() {
+ return SC_DEFAULT_IN;
+}
+
+/* ------------ file operations are not supported -----------*/
+/*** META ((export #t)) */
+function sc_callWithInputFile(s, proc) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_callWithOutputFile(s, proc) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_withInputFromFile(s, thunk) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToFile(s, thunk) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_openInputFile(s) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_openOutputFile(s) {
+ throw "can't open " + s;
+}
+
+/* ----------------------------------------------------------------------------*/
+/*** META ((export #t)) */
+function sc_basename(p) {
+ var i = p.lastIndexOf('/');
+
+ if(i >= 0)
+ return p.substring(i + 1, p.length);
+ else
+ return '';
+}
+
+/*** META ((export #t)) */
+function sc_dirname(p) {
+ var i = p.lastIndexOf('/');
+
+ if(i >= 0)
+ return p.substring(0, i);
+ else
+ return '';
+}
+
+/* ----------------------------------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_withInputFromPort(p, thunk) {
+ try {
+ var tmp = SC_DEFAULT_IN; // THREAD: shared var.
+ SC_DEFAULT_IN = p;
+ return thunk();
+ } finally {
+ SC_DEFAULT_IN = tmp;
+ }
+}
+
+/*** META ((export #t)) */
+function sc_withInputFromString(s, thunk) {
+ return sc_withInputFromPort(new sc_StringInputPort(sc_string2jsstring(s)), thunk);
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToPort(p, thunk) {
+ try {
+ var tmp = SC_DEFAULT_OUT; // THREAD: shared var.
+ SC_DEFAULT_OUT = p;
+ return thunk();
+ } finally {
+ SC_DEFAULT_OUT = tmp;
+ }
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToString(thunk) {
+ var p = new sc_StringOutputPort();
+ sc_withOutputToPort(p, thunk);
+ return p.close();
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToProcedure(proc, thunk) {
+ var t = function(s) { proc(sc_jsstring2string(s)); };
+ return sc_withOutputToPort(new sc_GenericOutputPort(t), thunk);
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "new sc_StringOutputPort()")))
+*/
+function sc_openOutputString() {
+ return new sc_StringOutputPort();
+}
+
+/*** META ((export #t)) */
+function sc_openInputString(str) {
+ return new sc_StringInputPort(sc_string2jsstring(str));
+}
+
+/* ----------------------------------------------------------------------------*/
+
+function sc_OutputPort() {
+}
+sc_OutputPort.prototype = new sc_Port();
+sc_OutputPort.prototype.appendJSString = function(obj) {
+ /* do nothing */
+}
+sc_OutputPort.prototype.close = function() {
+ /* do nothing */
+}
+
+function sc_StringOutputPort() {
+ this.res = "";
+}
+sc_StringOutputPort.prototype = new sc_OutputPort();
+sc_StringOutputPort.prototype.appendJSString = function(s) {
+ this.res += s;
+}
+sc_StringOutputPort.prototype.close = function() {
+ return sc_jsstring2string(this.res);
+}
+
+/*** META ((export #t)) */
+function sc_getOutputString(sp) {
+ return sc_jsstring2string(sp.res);
+}
+
+
+function sc_ErrorOutputPort() {
+}
+sc_ErrorOutputPort.prototype = new sc_OutputPort();
+sc_ErrorOutputPort.prototype.appendJSString = function(s) {
+ throw "don't write on ErrorPort!";
+}
+sc_ErrorOutputPort.prototype.close = function() {
+ /* do nothing */
+}
+
+function sc_GenericOutputPort(appendJSString, close) {
+ this.appendJSString = appendJSString;
+ if (close)
+ this.close = close;
+}
+sc_GenericOutputPort.prototype = new sc_OutputPort();
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_OutputPort")))
+*/
+function sc_isOutputPort(o) {
+ return (o instanceof sc_OutputPort);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".close()")))
+*/
+function sc_closeOutputPort(p) {
+ return p.close();
+}
+
+/* ------------------ write ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_write(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toWriteString(o));
+}
+
+function sc_toWriteString(o) {
+ if (o === null)
+ return "()";
+ else if (o === true)
+ return "#t";
+ else if (o === false)
+ return "#f";
+ else if (o === undefined)
+ return "#unspecified";
+ else if (typeof o === 'function')
+ return "#<procedure " + sc_hash(o) + ">";
+ else if (o.sc_toWriteString)
+ return o.sc_toWriteString();
+ else
+ return o.toString();
+}
+
+function sc_escapeWriteString(s) {
+ var res = "";
+ var j = 0;
+ for (i = 0; i < s.length; i++) {
+ switch (s.charAt(i)) {
+ case "\0": res += s.substring(j, i) + "\\0"; j = i + 1; break;
+ case "\b": res += s.substring(j, i) + "\\b"; j = i + 1; break;
+ case "\f": res += s.substring(j, i) + "\\f"; j = i + 1; break;
+ case "\n": res += s.substring(j, i) + "\\n"; j = i + 1; break;
+ case "\r": res += s.substring(j, i) + "\\r"; j = i + 1; break;
+ case "\t": res += s.substring(j, i) + "\\t"; j = i + 1; break;
+ case "\v": res += s.substring(j, i) + "\\v"; j = i + 1; break;
+ case '"': res += s.substring(j, i) + '\\"'; j = i + 1; break;
+ case "\\": res += s.substring(j, i) + "\\\\"; j = i + 1; break;
+ default:
+ var c = s.charAt(i);
+ if ("\a" !== "a" && c == "\a") {
+ res += s.substring(j, i) + "\\a"; j = i + 1; continue;
+ }
+ if ("\v" !== "v" && c == "\v") {
+ res += s.substring(j, i) + "\\v"; j = i + 1; continue;
+ }
+ //if (s.charAt(i) < ' ' || s.charCodeAt(i) > 127) {
+ // CARE: Manuel is this OK with HOP?
+ if (s.charAt(i) < ' ') {
+ /* non printable character and special chars */
+ res += s.substring(j, i) + "\\x" + s.charCodeAt(i).toString(16);
+ j = i + 1;
+ }
+ // else just let i increase...
+ }
+ }
+ res += s.substring(j, i);
+ return res;
+}
+
+/* ------------------ display ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_display(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toDisplayString(o));
+}
+
+function sc_toDisplayString(o) {
+ if (o === null)
+ return "()";
+ else if (o === true)
+ return "#t";
+ else if (o === false)
+ return "#f";
+ else if (o === undefined)
+ return "#unspecified";
+ else if (typeof o === 'function')
+ return "#<procedure " + sc_hash(o) + ">";
+ else if (o.sc_toDisplayString)
+ return o.sc_toDisplayString();
+ else
+ return o.toString();
+}
+
+/* ------------------ newline ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_newline(p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString("\n");
+}
+
+/* ------------------ write-char ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_writeChar(c, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(c.val);
+}
+
+/* ------------------ write-circle ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_writeCircle(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toWriteCircleString(o));
+}
+
+function sc_toWriteCircleString(o) {
+ var symb = sc_gensym("writeCircle");
+ var nbPointer = new Object();
+ nbPointer.nb = 0;
+ sc_prepWriteCircle(o, symb, nbPointer);
+ return sc_genToWriteCircleString(o, symb);
+}
+
+function sc_prepWriteCircle(o, symb, nbPointer) {
+ // TODO sc_Struct
+ if (o instanceof sc_Pair ||
+ o instanceof sc_Vector) {
+ if (o[symb] !== undefined) {
+ // not the first visit.
+ o[symb]++;
+ // unless there is already a number, assign one.
+ if (!o[symb + "nb"]) o[symb + "nb"] = nbPointer.nb++;
+ return;
+ }
+ o[symb] = 0;
+ if (o instanceof sc_Pair) {
+ sc_prepWriteCircle(o.car, symb, nbPointer);
+ sc_prepWriteCircle(o.cdr, symb, nbPointer);
+ } else {
+ for (var i = 0; i < o.length; i++)
+ sc_prepWriteCircle(o[i], symb, nbPointer);
+ }
+ }
+}
+
+function sc_genToWriteCircleString(o, symb) {
+ if (!(o instanceof sc_Pair ||
+ o instanceof sc_Vector))
+ return sc_toWriteString(o);
+ return o.sc_toWriteCircleString(symb);
+}
+sc_Pair.prototype.sc_toWriteCircleString = function(symb, inList) {
+ if (this[symb + "use"]) { // use-flag is set. Just use it.
+ var nb = this[symb + "nb"];
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+ if (inList)
+ return '. #' + nb + '#';
+ else
+ return '#' + nb + '#';
+ }
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+
+ var res = "";
+
+ if (this[symb] !== undefined) { // implies > 0
+ this[symb + "use"] = true;
+ if (inList)
+ res += '. #' + this[symb + "nb"] + '=';
+ else
+ res += '#' + this[symb + "nb"] + '=';
+ inList = false;
+ }
+
+ if (!inList)
+ res += "(";
+
+ // print car
+ res += sc_genToWriteCircleString(this.car, symb);
+
+ if (sc_isPair(this.cdr)) {
+ res += " " + this.cdr.sc_toWriteCircleString(symb, true);
+ } else if (this.cdr !== null) {
+ res += " . " + sc_genToWriteCircleString(this.cdr, symb);
+ }
+ if (!inList)
+ res += ")";
+ return res;
+};
+sc_Vector.prototype.sc_toWriteCircleString = function(symb) {
+ if (this[symb + "use"]) { // use-flag is set. Just use it.
+ var nb = this[symb + "nb"];
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+ return '#' + nb + '#';
+ }
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+
+ var res = "";
+ if (this[symb] !== undefined) { // implies > 0
+ this[symb + "use"] = true;
+ res += '#' + this[symb + "nb"] + '=';
+ }
+ res += "#(";
+ for (var i = 0; i < this.length; i++) {
+ res += sc_genToWriteCircleString(this[i], symb);
+ if (i < this.length - 1) res += " ";
+ }
+ res += ")";
+ return res;
+};
+
+
+/* ------------------ print ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_print(s) {
+ if (arguments.length === 1) {
+ sc_display(s);
+ sc_newline();
+ }
+ else {
+ for (var i = 0; i < arguments.length; i++)
+ sc_display(arguments[i]);
+ sc_newline();
+ }
+}
+
+/* ------------------ format ---------------------------------------------------*/
+/*** META ((export #t)) */
+function sc_format(s, args) {
+ var len = s.length;
+ var p = new sc_StringOutputPort();
+ var i = 0, j = 1;
+
+ while( i < len ) {
+ var i2 = s.indexOf("~", i);
+
+ if (i2 == -1) {
+ p.appendJSString( s.substring( i, len ) );
+ return p.close();
+ } else {
+ if (i2 > i) {
+ if (i2 == (len - 1)) {
+ p.appendJSString(s.substring(i, len));
+ return p.close();
+ } else {
+ p.appendJSString(s.substring(i, i2));
+ i = i2;
+ }
+ }
+
+ switch(s.charCodeAt(i2 + 1)) {
+ case 65:
+ case 97:
+ // a
+ sc_display(arguments[j], p);
+ i += 2; j++;
+ break;
+
+ case 83:
+ case 115:
+ // s
+ sc_write(arguments[j], p);
+ i += 2; j++;
+ break;
+
+ case 86:
+ case 118:
+ // v
+ sc_display(arguments[j], p);
+ p.appendJSString("\n");
+ i += 2; j++;
+ break;
+
+ case 67:
+ case 99:
+ // c
+ p.appendJSString(String.fromCharCode(arguments[j]));
+ i += 2; j++;
+ break;
+
+ case 88:
+ case 120:
+ // x
+ p.appendJSString(arguments[j].toString(6));
+ i += 2; j++;
+ break;
+
+ case 79:
+ case 111:
+ // o
+ p.appendJSString(arguments[j].toString(8));
+ i += 2; j++;
+ break;
+
+ case 66:
+ case 98:
+ // b
+ p.appendJSString(arguments[j].toString(2));
+ i += 2; j++;
+ break;
+
+ case 37:
+ case 110:
+ // %, n
+ p.appendJSString("\n");
+ i += 2; break;
+
+ case 114:
+ // r
+ p.appendJSString("\r");
+ i += 2; break;
+
+ case 126:
+ // ~
+ p.appendJSString("~");
+ i += 2; break;
+
+ default:
+ sc_error( "format: illegal ~"
+ + String.fromCharCode(s.charCodeAt(i2 + 1))
+ + " sequence" );
+ return "";
+ }
+ }
+ }
+
+ return p.close();
+}
+
+/* ------------------ global ports ---------------------------------------------------*/
+
+var SC_DEFAULT_IN = new sc_ErrorInputPort();
+var SC_DEFAULT_OUT = new sc_ErrorOutputPort();
+var SC_ERROR_OUT = new sc_ErrorOutputPort();
+
+var sc_SYMBOL_PREFIX = "\u1E9C";
+var sc_KEYWORD_PREFIX = "\u1E9D";
+
+/*** META ((export #t)
+ (peephole (id))) */
+function sc_jsstring2string(s) {
+ return s;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9C' +")))
+*/
+function sc_jsstring2symbol(s) {
+ return sc_SYMBOL_PREFIX + s;
+}
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_string2jsstring(s) {
+ return s;
+}
+
+/*** META ((export #t)
+ (peephole (symbol2jsstring_immutable)))
+*/
+function sc_symbol2jsstring(s) {
+ return s.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".slice(1)")))
+*/
+function sc_keyword2jsstring(k) {
+ return k.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9D' +")))
+*/
+function sc_jsstring2keyword(s) {
+ return sc_KEYWORD_PREFIX + s;
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isKeyword(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) === sc_KEYWORD_PREFIX);
+}
+
+
+/*** META ((export #t)) */
+var sc_gensym = function() {
+ var counter = 1000;
+ return function(sym) {
+ counter++;
+ if (!sym) sym = sc_SYMBOL_PREFIX;
+ return sym + "s" + counter + "~" + "^sC-GeNsYm ";
+ };
+}();
+
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isEqual(o1, o2) {
+ return ((o1 === o2) ||
+ (sc_isPair(o1) && sc_isPair(o2)
+ && sc_isPairEqual(o1, o2, sc_isEqual)) ||
+ (sc_isVector(o1) && sc_isVector(o2)
+ && sc_isVectorEqual(o1, o2, sc_isEqual)));
+}
+
+/*** META ((export number->symbol integer->symbol)) */
+function sc_number2symbol(x, radix) {
+ return sc_SYMBOL_PREFIX + sc_number2jsstring(x, radix);
+}
+
+/*** META ((export number->string integer->string)) */
+var sc_number2string = sc_number2jsstring;
+
+/*** META ((export #t)) */
+function sc_symbol2number(s, radix) {
+ return sc_jsstring2number(s.slice(1), radix);
+}
+
+/*** META ((export #t)) */
+var sc_string2number = sc_jsstring2number;
+
+/*** META ((export #t)
+ (peephole (prefix "+" s)))
+ ;; peephole will only apply if no radix is given.
+*/
+function sc_string2integer(s, radix) {
+ if (!radix) return +s;
+ return parseInt(s, radix);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "+")))
+*/
+function sc_string2real(s) {
+ return +s;
+}
+
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isSymbol(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) === sc_SYMBOL_PREFIX);
+}
+
+/*** META ((export #t)
+ (peephole (symbol2string_immutable)))
+*/
+function sc_symbol2string(s) {
+ return s.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9C' +")))
+*/
+function sc_string2symbol(s) {
+ return sc_SYMBOL_PREFIX + s;
+}
+
+/*** META ((export symbol-append)
+ (peephole (symbolAppend_immutable)))
+*/
+function sc_symbolAppend() {
+ var res = sc_SYMBOL_PREFIX;
+ for (var i = 0; i < arguments.length; i++)
+ res += arguments[i].slice(1);
+ return res;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".val")))
+*/
+function sc_char2string(c) { return c.val; }
+
+/*** META ((export #t)
+ (peephole (hole 1 "'\\u1E9C' + " c ".val")))
+*/
+function sc_char2symbol(c) { return sc_SYMBOL_PREFIX + c.val; }
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isString(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) !== sc_SYMBOL_PREFIX);
+}
+
+/*** META ((export #t)) */
+var sc_makeString = sc_makejsString;
+
+
+/*** META ((export #t)) */
+function sc_string() {
+ for (var i = 0; i < arguments.length; i++)
+ arguments[i] = arguments[i].val;
+ return "".concat.apply("", arguments);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".length")))
+*/
+function sc_stringLength(s) { return s.length; }
+
+/*** META ((export #t)) */
+function sc_stringRef(s, k) {
+ return new sc_Char(s.charAt(k));
+}
+
+/* there's no stringSet in the immutable version
+function sc_stringSet(s, k, c)
+*/
+
+
+/*** META ((export string=?)
+ (type bool)
+ (peephole (hole 2 str1 " === " str2)))
+*/
+function sc_isStringEqual(s1, s2) {
+ return s1 === s2;
+}
+/*** META ((export string<?)
+ (type bool)
+ (peephole (hole 2 str1 " < " str2)))
+*/
+function sc_isStringLess(s1, s2) {
+ return s1 < s2;
+}
+/*** META ((export string>?)
+ (type bool)
+ (peephole (hole 2 str1 " > " str2)))
+*/
+function sc_isStringGreater(s1, s2) {
+ return s1 > s2;
+}
+/*** META ((export string<=?)
+ (type bool)
+ (peephole (hole 2 str1 " <= " str2)))
+*/
+function sc_isStringLessEqual(s1, s2) {
+ return s1 <= s2;
+}
+/*** META ((export string>=?)
+ (type bool)
+ (peephole (hole 2 str1 " >= " str2)))
+*/
+function sc_isStringGreaterEqual(s1, s2) {
+ return s1 >= s2;
+}
+/*** META ((export string-ci=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() === " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIEqual(s1, s2) {
+ return s1.toLowerCase() === s2.toLowerCase();
+}
+/*** META ((export string-ci<?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() < " str2 ".toLowerCase()")))
+*/
+function sc_isStringCILess(s1, s2) {
+ return s1.toLowerCase() < s2.toLowerCase();
+}
+/*** META ((export string-ci>?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() > " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIGreater(s1, s2) {
+ return s1.toLowerCase() > s2.toLowerCase();
+}
+/*** META ((export string-ci<=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() <= " str2 ".toLowerCase()")))
+*/
+function sc_isStringCILessEqual(s1, s2) {
+ return s1.toLowerCase() <= s2.toLowerCase();
+}
+/*** META ((export string-ci>=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() >= " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIGreaterEqual(s1, s2) {
+ return s1.toLowerCase() >= s2.toLowerCase();
+}
+
+/*** META ((export #t)
+ (peephole (hole 3 s ".substring(" start ", " end ")")))
+*/
+function sc_substring(s, start, end) {
+ return s.substring(start, end);
+}
+
+/*** META ((export #t))
+*/
+function sc_isSubstring_at(s1, s2, i) {
+ return s2 == s1.substring(i, i+ s2.length);
+}
+
+/*** META ((export #t)
+ (peephole (infix 0 #f "+" "''")))
+*/
+function sc_stringAppend() {
+ return "".concat.apply("", arguments);
+}
+
+/*** META ((export #t)) */
+var sc_string2list = sc_jsstring2list;
+
+/*** META ((export #t)) */
+var sc_list2string = sc_list2jsstring;
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_stringCopy(s) {
+ return s;
+}
+
+/* there's no string-fill in the immutable version
+function sc_stringFill(s, c)
+*/
+
+/*** META ((export #t)
+ (peephole (postfix ".slice(1)")))
+*/
+function sc_keyword2string(o) {
+ return o.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9D' +")))
+*/
+function sc_string2keyword(o) {
+ return sc_KEYWORD_PREFIX + o;
+}
+
+String.prototype.sc_toDisplayString = function() {
+ if (this.charAt(0) === sc_SYMBOL_PREFIX)
+ // TODO: care for symbols with spaces (escape-chars symbols).
+ return this.slice(1);
+ else if (this.charAt(0) === sc_KEYWORD_PREFIX)
+ return ":" + this.slice(1);
+ else
+ return this.toString();
+};
+
+String.prototype.sc_toWriteString = function() {
+ if (this.charAt(0) === sc_SYMBOL_PREFIX)
+ // TODO: care for symbols with spaces (escape-chars symbols).
+ return this.slice(1);
+ else if (this.charAt(0) === sc_KEYWORD_PREFIX)
+ return ":" + this.slice(1);
+ else
+ return '"' + sc_escapeWriteString(this) + '"';
+};
+/* Exported Variables */
+var BgL_testzd2boyerzd2;
+var BgL_nboyerzd2benchmarkzd2;
+var BgL_setupzd2boyerzd2;
+/* End Exports */
+
+var translate_term_nboyer;
+var translate_args_nboyer;
+var untranslate_term_nboyer;
+var BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer;
+var BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer;
+var translate_alist_nboyer;
+var apply_subst_nboyer;
+var apply_subst_lst_nboyer;
+var tautologyp_nboyer;
+var if_constructor_nboyer;
+var rewrite_count_nboyer;
+var rewrite_nboyer;
+var rewrite_args_nboyer;
+var unify_subst_nboyer;
+var one_way_unify1_nboyer;
+var false_term_nboyer;
+var true_term_nboyer;
+var trans_of_implies1_nboyer;
+var is_term_equal_nboyer;
+var is_term_member_nboyer;
+var const_nboyer;
+var sc_const_3_nboyer;
+var sc_const_4_nboyer;
+{
+ (sc_const_4_nboyer = (new sc_Pair("\u1E9Cimplies",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cu",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cw",null)))))),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cw",null)))))),null)))))));
+ (sc_const_3_nboyer = sc_list((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccompile",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Ccodegen",(new sc_Pair((new sc_Pair("\u1E9Coptimize",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreaterp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clesseqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cboolean",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ciff",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceven1",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Codd",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccountps-",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccountps-loop",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfact-",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfact-loop",(new sc_Pair("\u1E9Ci",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdivides",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-true",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-false",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctautology-checker",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctautologyp",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfalsify",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfalsify1",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime1",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair("\u1E9Cp",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))))),(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cc",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cplus-fringe",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair("\u1E9Cenvrn",null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmc-flatten",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cintersect",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Ck",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ck",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Csort-lp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus1",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Ci",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cbase",null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cj",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cj",(new sc_Pair((1),null)))))),null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Ci",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cw",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cz",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnlistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csamefringe",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cz",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cw",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair(sc_list("\u1E9Cand", (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Ca",null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cb",null)))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cl",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cl",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdsort",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx1",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx2",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx3",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx4",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx5",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx6",(new sc_Pair("\u1E9Cx7",null)))))),null)))))),null)))))),null)))))),null)))))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((6),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx7",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cy",(new sc_Pair((2),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csigma",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Ci",null)))),null)))))),(new sc_Pair((2),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cz",null)))),null)))))),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Ca",null)))),null)))),(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Cb",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair("\u1E9Cz",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cassignedp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair((new sc_Pair("\u1E9Cset",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cval",(new sc_Pair("\u1E9Cmem",null)))))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair("\u1E9Cval",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cmem",null)))))),null)))))))),null))))))));
+ (const_nboyer = (new sc_Pair((new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))))),null)))))))))));
+ BgL_nboyerzd2benchmarkzd2 = function() {
+ var args = null;
+ for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) {
+ args = sc_cons(arguments[sc_tmp], args);
+ }
+ var n;
+ return ((n = ((args === null)?(0):(args.car))), (BgL_setupzd2boyerzd2()), (BgL_runzd2benchmarkzd2(("nboyer"+(sc_number2string(n))), (1), function() {
+ return (BgL_testzd2boyerzd2(n));
+ }, function(rewrites) {
+ if ((sc_isNumber(rewrites)))
+ switch (n) {
+ case (0):
+ return (rewrites===(95024));
+ break;
+ case (1):
+ return (rewrites===(591777));
+ break;
+ case (2):
+ return (rewrites===(1813975));
+ break;
+ case (3):
+ return (rewrites===(5375678));
+ break;
+ case (4):
+ return (rewrites===(16445406));
+ break;
+ case (5):
+ return (rewrites===(51507739));
+ break;
+ default:
+ return true;
+ break;
+ }
+ else
+ return false;
+ })));
+ };
+ BgL_setupzd2boyerzd2 = function() {
+ return true;
+ };
+ BgL_testzd2boyerzd2 = function() {
+ return true;
+ };
+ translate_term_nboyer = function(term) {
+ var lst;
+ return (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((translate_term_nboyer((lst.car))), (translate_args_nboyer((lst.cdr))))))))));
+ };
+ translate_args_nboyer = function(lst) {
+ var sc_lst_5;
+ var term;
+ return ((lst === null)?null:(new sc_Pair(((term = (lst.car)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))), ((sc_lst_5 = (lst.cdr)), ((sc_lst_5 === null)?null:(new sc_Pair((translate_term_nboyer((sc_lst_5.car))), (translate_args_nboyer((sc_lst_5.cdr))))))))));
+ };
+ untranslate_term_nboyer = function(term) {
+ var optrOpnd;
+ var tail1131;
+ var L1127;
+ var falseHead1130;
+ var symbol_record;
+ if (!(term instanceof sc_Pair))
+ return term;
+ else
+ {
+ (falseHead1130 = (new sc_Pair(null, null)));
+ (L1127 = (term.cdr));
+ (tail1131 = falseHead1130);
+ while (!(L1127 === null)) {
+ {
+ (tail1131.cdr = (new sc_Pair((untranslate_term_nboyer((L1127.car))), null)));
+ (tail1131 = (tail1131.cdr));
+ (L1127 = (L1127.cdr));
+ }
+ }
+ (optrOpnd = (falseHead1130.cdr));
+ return (new sc_Pair(((symbol_record = (term.car)), (symbol_record[(0)])), optrOpnd));
+ }
+ };
+ BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer = function(sym) {
+ var r;
+ var x;
+ return ((x = (sc_assq(sym, BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), ((x!== false)?(x.cdr):((r = [sym, null]), (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = (new sc_Pair((new sc_Pair(sym, r)), BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), r)));
+ };
+ (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null);
+ translate_alist_nboyer = function(alist) {
+ var sc_alist_6;
+ var term;
+ return ((alist === null)?null:(new sc_Pair((new sc_Pair((alist.car.car), ((term = (alist.car.cdr)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))))), ((sc_alist_6 = (alist.cdr)), ((sc_alist_6 === null)?null:(new sc_Pair((new sc_Pair((sc_alist_6.car.car), (translate_term_nboyer((sc_alist_6.car.cdr))))), (translate_alist_nboyer((sc_alist_6.cdr))))))))));
+ };
+ apply_subst_nboyer = function(alist, term) {
+ var lst;
+ var temp_temp;
+ return (!(term instanceof sc_Pair)?((temp_temp = (sc_assq(term, alist))), ((temp_temp!== false)?(temp_temp.cdr):term)):(new sc_Pair((term.car), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), (apply_subst_lst_nboyer(alist, (lst.cdr))))))))));
+ };
+ apply_subst_lst_nboyer = function(alist, lst) {
+ var sc_lst_7;
+ return ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), ((sc_lst_7 = (lst.cdr)), ((sc_lst_7 === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (sc_lst_7.car))), (apply_subst_lst_nboyer(alist, (sc_lst_7.cdr))))))))));
+ };
+ tautologyp_nboyer = function(sc_x_11, true_lst, false_lst) {
+ var tmp1125;
+ var x;
+ var tmp1126;
+ var sc_x_8;
+ var sc_tmp1125_9;
+ var sc_tmp1126_10;
+ var sc_x_11;
+ var true_lst;
+ var false_lst;
+ while (true) {
+ if ((((sc_tmp1126_10 = (is_term_equal_nboyer(sc_x_11, true_term_nboyer))), ((sc_tmp1126_10!== false)?sc_tmp1126_10:(is_term_member_nboyer(sc_x_11, true_lst))))!== false))
+ return true;
+ else
+ if ((((sc_tmp1125_9 = (is_term_equal_nboyer(sc_x_11, false_term_nboyer))), ((sc_tmp1125_9!== false)?sc_tmp1125_9:(is_term_member_nboyer(sc_x_11, false_lst))))!== false))
+ return false;
+ else
+ if (!(sc_x_11 instanceof sc_Pair))
+ return false;
+ else
+ if (((sc_x_11.car)===if_constructor_nboyer))
+ if ((((sc_x_8 = (sc_x_11.cdr.car)), (tmp1126 = (is_term_equal_nboyer(sc_x_8, true_term_nboyer))), ((tmp1126!== false)?tmp1126:(is_term_member_nboyer(sc_x_8, true_lst))))!== false))
+ (sc_x_11 = (sc_x_11.cdr.cdr.car));
+ else
+ if ((((x = (sc_x_11.cdr.car)), (tmp1125 = (is_term_equal_nboyer(x, false_term_nboyer))), ((tmp1125!== false)?tmp1125:(is_term_member_nboyer(x, false_lst))))!== false))
+ (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car));
+ else
+ if (((tautologyp_nboyer((sc_x_11.cdr.cdr.car), (new sc_Pair((sc_x_11.cdr.car), true_lst)), false_lst))!== false))
+ {
+ (false_lst = (new sc_Pair((sc_x_11.cdr.car), false_lst)));
+ (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car));
+ }
+ else
+ return false;
+ else
+ return false;
+ }
+ };
+ (if_constructor_nboyer = "\u1E9C*");
+ (rewrite_count_nboyer = (0));
+ rewrite_nboyer = function(term) {
+ var term2;
+ var sc_term_12;
+ var lst;
+ var symbol_record;
+ var sc_lst_13;
+ {
+ (++rewrite_count_nboyer);
+ if (!(term instanceof sc_Pair))
+ return term;
+ else
+ {
+ (sc_term_12 = (new sc_Pair((term.car), ((sc_lst_13 = (term.cdr)), ((sc_lst_13 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_13.car))), (rewrite_args_nboyer((sc_lst_13.cdr))))))))));
+ (lst = ((symbol_record = (term.car)), (symbol_record[(1)])));
+ while (true) {
+ if ((lst === null))
+ return sc_term_12;
+ else
+ if ((((term2 = ((lst.car).cdr.car)), (unify_subst_nboyer = null), (one_way_unify1_nboyer(sc_term_12, term2)))!== false))
+ return (rewrite_nboyer((apply_subst_nboyer(unify_subst_nboyer, ((lst.car).cdr.cdr.car)))));
+ else
+ (lst = (lst.cdr));
+ }
+ }
+ }
+ };
+ rewrite_args_nboyer = function(lst) {
+ var sc_lst_14;
+ return ((lst === null)?null:(new sc_Pair((rewrite_nboyer((lst.car))), ((sc_lst_14 = (lst.cdr)), ((sc_lst_14 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_14.car))), (rewrite_args_nboyer((sc_lst_14.cdr))))))))));
+ };
+ (unify_subst_nboyer = "\u1E9C*");
+ one_way_unify1_nboyer = function(term1, term2) {
+ var lst1;
+ var lst2;
+ var temp_temp;
+ if (!(term2 instanceof sc_Pair))
+ {
+ (temp_temp = (sc_assq(term2, unify_subst_nboyer)));
+ if ((temp_temp!== false))
+ return (is_term_equal_nboyer(term1, (temp_temp.cdr)));
+ else
+ if ((sc_isNumber(term2)))
+ return (sc_isEqual(term1, term2));
+ else
+ {
+ (unify_subst_nboyer = (new sc_Pair((new sc_Pair(term2, term1)), unify_subst_nboyer)));
+ return true;
+ }
+ }
+ else
+ if (!(term1 instanceof sc_Pair))
+ return false;
+ else
+ if (((term1.car)===(term2.car)))
+ {
+ (lst1 = (term1.cdr));
+ (lst2 = (term2.cdr));
+ while (true) {
+ if ((lst1 === null))
+ return (lst2 === null);
+ else
+ if ((lst2 === null))
+ return false;
+ else
+ if (((one_way_unify1_nboyer((lst1.car), (lst2.car)))!== false))
+ {
+ (lst1 = (lst1.cdr));
+ (lst2 = (lst2.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ };
+ (false_term_nboyer = "\u1E9C*");
+ (true_term_nboyer = "\u1E9C*");
+ trans_of_implies1_nboyer = function(n) {
+ var sc_n_15;
+ return ((sc_isEqual(n, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (n-(1)), n)), ((sc_n_15 = (n-(1))), ((sc_isEqual(sc_n_15, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (sc_n_15-(1)), sc_n_15)), (trans_of_implies1_nboyer((sc_n_15-(1)))))))))));
+ };
+ is_term_equal_nboyer = function(x, y) {
+ var lst1;
+ var lst2;
+ var r2;
+ var r1;
+ if ((x instanceof sc_Pair))
+ if ((y instanceof sc_Pair))
+ if ((((r1 = (x.car)), (r2 = (y.car)), (r1===r2))!== false))
+ {
+ (lst1 = (x.cdr));
+ (lst2 = (y.cdr));
+ while (true) {
+ if ((lst1 === null))
+ return (lst2 === null);
+ else
+ if ((lst2 === null))
+ return false;
+ else
+ if (((is_term_equal_nboyer((lst1.car), (lst2.car)))!== false))
+ {
+ (lst1 = (lst1.cdr));
+ (lst2 = (lst2.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ else
+ return false;
+ else
+ return (sc_isEqual(x, y));
+ };
+ is_term_member_nboyer = function(x, lst) {
+ var x;
+ var lst;
+ while (true) {
+ if ((lst === null))
+ return false;
+ else
+ if (((is_term_equal_nboyer(x, (lst.car)))!== false))
+ return true;
+ else
+ (lst = (lst.cdr));
+ }
+ };
+ BgL_setupzd2boyerzd2 = function() {
+ var symbol_record;
+ var value;
+ var BgL_sc_symbolzd2record_16zd2;
+ var sym;
+ var sc_sym_17;
+ var term;
+ var lst;
+ var sc_term_18;
+ var sc_term_19;
+ {
+ (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null);
+ (if_constructor_nboyer = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer("\u1E9Cif")));
+ (false_term_nboyer = ((sc_term_19 = (new sc_Pair("\u1E9Cf",null))), (!(sc_term_19 instanceof sc_Pair)?sc_term_19:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_19.car))), (translate_args_nboyer((sc_term_19.cdr))))))));
+ (true_term_nboyer = ((sc_term_18 = (new sc_Pair("\u1E9Ct",null))), (!(sc_term_18 instanceof sc_Pair)?sc_term_18:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_18.car))), (translate_args_nboyer((sc_term_18.cdr))))))));
+ (lst = sc_const_3_nboyer);
+ while (!(lst === null)) {
+ {
+ (term = (lst.car));
+ if (((term instanceof sc_Pair)&&(((term.car)==="\u1E9Cequal")&&((term.cdr.car) instanceof sc_Pair))))
+ {
+ (sc_sym_17 = ((term.cdr.car).car));
+ (value = (new sc_Pair((!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr)))))), ((sym = ((term.cdr.car).car)), (BgL_sc_symbolzd2record_16zd2 = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sym))), (BgL_sc_symbolzd2record_16zd2[(1)])))));
+ (symbol_record = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sc_sym_17)));
+ (symbol_record[(1)] = value);
+ }
+ else
+ (sc_error("ADD-LEMMA did not like term: ", term));
+ (lst = (lst.cdr));
+ }
+ }
+ return true;
+ }
+ };
+ BgL_testzd2boyerzd2 = function(n) {
+ var optrOpnd;
+ var term;
+ var sc_n_20;
+ var answer;
+ var sc_term_21;
+ var sc_term_22;
+ {
+ (rewrite_count_nboyer = (0));
+ (term = sc_const_4_nboyer);
+ (sc_n_20 = n);
+ while (!(sc_n_20=== 0)) {
+ {
+ (term = (sc_list("\u1E9Cor", term, (new sc_Pair("\u1E9Cf",null)))));
+ (--sc_n_20);
+ }
+ }
+ (sc_term_22 = term);
+ if (!(sc_term_22 instanceof sc_Pair))
+ (optrOpnd = sc_term_22);
+ else
+ (optrOpnd = (new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_22.car))), (translate_args_nboyer((sc_term_22.cdr))))));
+ (sc_term_21 = (apply_subst_nboyer(((const_nboyer === null)?null:(new sc_Pair((new sc_Pair((const_nboyer.car.car), (translate_term_nboyer((const_nboyer.car.cdr))))), (translate_alist_nboyer((const_nboyer.cdr)))))), optrOpnd)));
+ (answer = (tautologyp_nboyer((rewrite_nboyer(sc_term_21)), null, null)));
+ (sc_write(rewrite_count_nboyer));
+ (sc_display(" rewrites"));
+ (sc_newline());
+ if ((answer!== false))
+ return rewrite_count_nboyer;
+ else
+ return false;
+ }
+ };
+}
+/* Exported Variables */
+var BgL_parsezd2ze3nbzd2treesze3;
+var BgL_earleyzd2benchmarkzd2;
+var BgL_parsezd2ze3parsedzf3zc2;
+var test;
+var BgL_parsezd2ze3treesz31;
+var BgL_makezd2parserzd2;
+/* End Exports */
+
+var const_earley;
+{
+ (const_earley = (new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair((new sc_Pair("\u1E9Ca",null)),(new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair("\u1E9Cs",null)))),null)))))),null)));
+ BgL_makezd2parserzd2 = function(grammar, lexer) {
+ var i;
+ var parser_descr;
+ var def_loop;
+ var nb_nts;
+ var names;
+ var steps;
+ var predictors;
+ var enders;
+ var starters;
+ var nts;
+ var sc_names_1;
+ var sc_steps_2;
+ var sc_predictors_3;
+ var sc_enders_4;
+ var sc_starters_5;
+ var nb_confs;
+ var BgL_sc_defzd2loop_6zd2;
+ var BgL_sc_nbzd2nts_7zd2;
+ var sc_nts_8;
+ var BgL_sc_defzd2loop_9zd2;
+ var ind;
+ {
+ ind = function(nt, sc_nts_10) {
+ var i;
+ {
+ (i = ((sc_nts_10.length)-(1)));
+ while (true) {
+ if ((i>=(0)))
+ if ((sc_isEqual((sc_nts_10[i]), nt)))
+ return i;
+ else
+ (--i);
+ else
+ return false;
+ }
+ }
+ };
+ (sc_nts_8 = ((BgL_sc_defzd2loop_9zd2 = function(defs, sc_nts_11) {
+ var rule_loop;
+ var head;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, sc_nts_12) {
+ var nt;
+ var l;
+ var sc_nts_13;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (l = rule);
+ (sc_nts_13 = sc_nts_12);
+ while ((l instanceof sc_Pair)) {
+ {
+ (nt = (l.car));
+ (l = (l.cdr));
+ (sc_nts_13 = (((sc_member(nt, sc_nts_13))!== false)?sc_nts_13:(new sc_Pair(nt, sc_nts_13))));
+ }
+ }
+ return (rule_loop((rules.cdr), sc_nts_13));
+ }
+ else
+ return (BgL_sc_defzd2loop_9zd2((defs.cdr), sc_nts_12));
+ }), (rule_loop((def.cdr), (((sc_member(head, sc_nts_11))!== false)?sc_nts_11:(new sc_Pair(head, sc_nts_11)))))):(sc_list2vector((sc_reverse(sc_nts_11)))));
+ }), (BgL_sc_defzd2loop_9zd2(grammar, null))));
+ (BgL_sc_nbzd2nts_7zd2 = (sc_nts_8.length));
+ (nb_confs = (((BgL_sc_defzd2loop_6zd2 = function(defs, BgL_sc_nbzd2confs_14zd2) {
+ var rule_loop;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (rule_loop = function(rules, BgL_sc_nbzd2confs_15zd2) {
+ var l;
+ var BgL_sc_nbzd2confs_16zd2;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (l = rule);
+ (BgL_sc_nbzd2confs_16zd2 = BgL_sc_nbzd2confs_15zd2);
+ while ((l instanceof sc_Pair)) {
+ {
+ (l = (l.cdr));
+ (++BgL_sc_nbzd2confs_16zd2);
+ }
+ }
+ return (rule_loop((rules.cdr), (BgL_sc_nbzd2confs_16zd2+(1))));
+ }
+ else
+ return (BgL_sc_defzd2loop_6zd2((defs.cdr), BgL_sc_nbzd2confs_15zd2));
+ }), (rule_loop((def.cdr), BgL_sc_nbzd2confs_14zd2))):BgL_sc_nbzd2confs_14zd2);
+ }), (BgL_sc_defzd2loop_6zd2(grammar, (0))))+BgL_sc_nbzd2nts_7zd2));
+ (sc_starters_5 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_enders_4 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_predictors_3 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_steps_2 = (sc_makeVector(nb_confs, false)));
+ (sc_names_1 = (sc_makeVector(nb_confs, false)));
+ (nts = sc_nts_8);
+ (starters = sc_starters_5);
+ (enders = sc_enders_4);
+ (predictors = sc_predictors_3);
+ (steps = sc_steps_2);
+ (names = sc_names_1);
+ (nb_nts = (sc_nts_8.length));
+ (i = (nb_nts-(1)));
+ while ((i>=(0))) {
+ {
+ (sc_steps_2[i] = (i-nb_nts));
+ (sc_names_1[i] = (sc_list((sc_nts_8[i]), (0))));
+ (sc_enders_4[i] = (sc_list(i)));
+ (--i);
+ }
+ }
+ def_loop = function(defs, conf) {
+ var rule_loop;
+ var head;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, conf, rule_num) {
+ var i;
+ var sc_i_17;
+ var nt;
+ var l;
+ var sc_conf_18;
+ var sc_i_19;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (names[conf] = (sc_list(head, rule_num)));
+ (sc_i_19 = (ind(head, nts)));
+ (starters[sc_i_19] = (new sc_Pair(conf, (starters[sc_i_19]))));
+ (l = rule);
+ (sc_conf_18 = conf);
+ while ((l instanceof sc_Pair)) {
+ {
+ (nt = (l.car));
+ (steps[sc_conf_18] = (ind(nt, nts)));
+ (sc_i_17 = (ind(nt, nts)));
+ (predictors[sc_i_17] = (new sc_Pair(sc_conf_18, (predictors[sc_i_17]))));
+ (l = (l.cdr));
+ (++sc_conf_18);
+ }
+ }
+ (steps[sc_conf_18] = ((ind(head, nts))-nb_nts));
+ (i = (ind(head, nts)));
+ (enders[i] = (new sc_Pair(sc_conf_18, (enders[i]))));
+ return (rule_loop((rules.cdr), (sc_conf_18+(1)), (rule_num+(1))));
+ }
+ else
+ return (def_loop((defs.cdr), conf));
+ }), (rule_loop((def.cdr), conf, (1)))):undefined);
+ };
+ (def_loop(grammar, (sc_nts_8.length)));
+ (parser_descr = [lexer, sc_nts_8, sc_starters_5, sc_enders_4, sc_predictors_3, sc_steps_2, sc_names_1]);
+ return function(input) {
+ var optrOpnd;
+ var sc_optrOpnd_20;
+ var sc_optrOpnd_21;
+ var sc_optrOpnd_22;
+ var loop1;
+ var BgL_sc_stateza2_23za2;
+ var toks;
+ var BgL_sc_nbzd2nts_24zd2;
+ var sc_steps_25;
+ var sc_enders_26;
+ var state_num;
+ var BgL_sc_statesza2_27za2;
+ var states;
+ var i;
+ var conf;
+ var l;
+ var tok_nts;
+ var sc_i_28;
+ var sc_i_29;
+ var l1;
+ var l2;
+ var tok;
+ var tail1129;
+ var L1125;
+ var goal_enders;
+ var BgL_sc_statesza2_30za2;
+ var BgL_sc_nbzd2nts_31zd2;
+ var BgL_sc_nbzd2confs_32zd2;
+ var nb_toks;
+ var goal_starters;
+ var sc_states_33;
+ var BgL_sc_nbzd2confs_34zd2;
+ var BgL_sc_nbzd2toks_35zd2;
+ var sc_toks_36;
+ var falseHead1128;
+ var sc_names_37;
+ var sc_steps_38;
+ var sc_predictors_39;
+ var sc_enders_40;
+ var sc_starters_41;
+ var sc_nts_42;
+ var lexer;
+ var sc_ind_43;
+ var make_states;
+ var BgL_sc_confzd2setzd2getza2_44za2;
+ var conf_set_merge_new_bang;
+ var conf_set_adjoin;
+ var BgL_sc_confzd2setzd2adjoinza2_45za2;
+ var BgL_sc_confzd2setzd2adjoinza2za2_46z00;
+ var conf_set_union;
+ var forw;
+ var is_parsed;
+ var deriv_trees;
+ var BgL_sc_derivzd2treesza2_47z70;
+ var nb_deriv_trees;
+ var BgL_sc_nbzd2derivzd2treesza2_48za2;
+ {
+ sc_ind_43 = function(nt, sc_nts_49) {
+ var i;
+ {
+ (i = ((sc_nts_49.length)-(1)));
+ while (true) {
+ if ((i>=(0)))
+ if ((sc_isEqual((sc_nts_49[i]), nt)))
+ return i;
+ else
+ (--i);
+ else
+ return false;
+ }
+ }
+ };
+ make_states = function(BgL_sc_nbzd2toks_50zd2, BgL_sc_nbzd2confs_51zd2) {
+ var v;
+ var i;
+ var sc_states_52;
+ {
+ (sc_states_52 = (sc_makeVector((BgL_sc_nbzd2toks_50zd2+(1)), false)));
+ (i = BgL_sc_nbzd2toks_50zd2);
+ while ((i>=(0))) {
+ {
+ (v = (sc_makeVector((BgL_sc_nbzd2confs_51zd2+(1)), false)));
+ (v[(0)] = (-1));
+ (sc_states_52[i] = v);
+ (--i);
+ }
+ }
+ return sc_states_52;
+ }
+ };
+ BgL_sc_confzd2setzd2getza2_44za2 = function(state, BgL_sc_statezd2num_53zd2, sc_conf_54) {
+ var conf_set;
+ var BgL_sc_confzd2set_55zd2;
+ return ((BgL_sc_confzd2set_55zd2 = (state[(sc_conf_54+(1))])), ((BgL_sc_confzd2set_55zd2!== false)?BgL_sc_confzd2set_55zd2:((conf_set = (sc_makeVector((BgL_sc_statezd2num_53zd2+(6)), false))), (conf_set[(1)] = (-3)), (conf_set[(2)] = (-1)), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)), (state[(sc_conf_54+(1))] = conf_set), conf_set)));
+ };
+ conf_set_merge_new_bang = function(conf_set) {
+ return ((conf_set[((conf_set[(1)])+(5))] = (conf_set[(4)])), (conf_set[(1)] = (conf_set[(3)])), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)));
+ };
+ conf_set_adjoin = function(state, conf_set, sc_conf_56, i) {
+ var tail;
+ return ((tail = (conf_set[(3)])), (conf_set[(i+(5))] = (-1)), (conf_set[(tail+(5))] = i), (conf_set[(3)] = i), ((tail<(0))?((conf_set[(0)] = (state[(0)])), (state[(0)] = sc_conf_56)):undefined));
+ };
+ BgL_sc_confzd2setzd2adjoinza2_45za2 = function(sc_states_57, BgL_sc_statezd2num_58zd2, l, i) {
+ var conf_set;
+ var sc_conf_59;
+ var l1;
+ var state;
+ {
+ (state = (sc_states_57[BgL_sc_statezd2num_58zd2]));
+ (l1 = l);
+ while ((l1 instanceof sc_Pair)) {
+ {
+ (sc_conf_59 = (l1.car));
+ (conf_set = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_58zd2, sc_conf_59)));
+ if (((conf_set[(i+(5))])=== false))
+ {
+ (conf_set_adjoin(state, conf_set, sc_conf_59, i));
+ (l1 = (l1.cdr));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ }
+ return undefined;
+ }
+ };
+ BgL_sc_confzd2setzd2adjoinza2za2_46z00 = function(sc_states_60, BgL_sc_statesza2_61za2, BgL_sc_statezd2num_62zd2, sc_conf_63, i) {
+ var BgL_sc_confzd2setza2_64z70;
+ var BgL_sc_stateza2_65za2;
+ var conf_set;
+ var state;
+ return ((state = (sc_states_60[BgL_sc_statezd2num_62zd2])), ((((conf_set = (state[(sc_conf_63+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)?((BgL_sc_stateza2_65za2 = (BgL_sc_statesza2_61za2[BgL_sc_statezd2num_62zd2])), (BgL_sc_confzd2setza2_64z70 = (BgL_sc_confzd2setzd2getza2_44za2(BgL_sc_stateza2_65za2, BgL_sc_statezd2num_62zd2, sc_conf_63))), (((BgL_sc_confzd2setza2_64z70[(i+(5))])=== false)?(conf_set_adjoin(BgL_sc_stateza2_65za2, BgL_sc_confzd2setza2_64z70, sc_conf_63, i)):undefined), true):false));
+ };
+ conf_set_union = function(state, conf_set, sc_conf_66, other_set) {
+ var i;
+ {
+ (i = (other_set[(2)]));
+ while ((i>=(0))) {
+ if (((conf_set[(i+(5))])=== false))
+ {
+ (conf_set_adjoin(state, conf_set, sc_conf_66, i));
+ (i = (other_set[(i+(5))]));
+ }
+ else
+ (i = (other_set[(i+(5))]));
+ }
+ return undefined;
+ }
+ };
+ forw = function(sc_states_67, BgL_sc_statezd2num_68zd2, sc_starters_69, sc_enders_70, sc_predictors_71, sc_steps_72, sc_nts_73) {
+ var next_set;
+ var next;
+ var conf_set;
+ var ender;
+ var l;
+ var starter_set;
+ var starter;
+ var sc_l_74;
+ var sc_loop1_75;
+ var head;
+ var BgL_sc_confzd2set_76zd2;
+ var BgL_sc_statezd2num_77zd2;
+ var state;
+ var sc_states_78;
+ var preds;
+ var BgL_sc_confzd2set_79zd2;
+ var step;
+ var sc_conf_80;
+ var BgL_sc_nbzd2nts_81zd2;
+ var sc_state_82;
+ {
+ (sc_state_82 = (sc_states_67[BgL_sc_statezd2num_68zd2]));
+ (BgL_sc_nbzd2nts_81zd2 = (sc_nts_73.length));
+ while (true) {
+ {
+ (sc_conf_80 = (sc_state_82[(0)]));
+ if ((sc_conf_80>=(0)))
+ {
+ (step = (sc_steps_72[sc_conf_80]));
+ (BgL_sc_confzd2set_79zd2 = (sc_state_82[(sc_conf_80+(1))]));
+ (head = (BgL_sc_confzd2set_79zd2[(4)]));
+ (sc_state_82[(0)] = (BgL_sc_confzd2set_79zd2[(0)]));
+ (conf_set_merge_new_bang(BgL_sc_confzd2set_79zd2));
+ if ((step>=(0)))
+ {
+ (sc_l_74 = (sc_starters_69[step]));
+ while ((sc_l_74 instanceof sc_Pair)) {
+ {
+ (starter = (sc_l_74.car));
+ (starter_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, starter)));
+ if (((starter_set[(BgL_sc_statezd2num_68zd2+(5))])=== false))
+ {
+ (conf_set_adjoin(sc_state_82, starter_set, starter, BgL_sc_statezd2num_68zd2));
+ (sc_l_74 = (sc_l_74.cdr));
+ }
+ else
+ (sc_l_74 = (sc_l_74.cdr));
+ }
+ }
+ (l = (sc_enders_70[step]));
+ while ((l instanceof sc_Pair)) {
+ {
+ (ender = (l.car));
+ if ((((conf_set = (sc_state_82[(ender+(1))])), ((conf_set!== false)?(conf_set[(BgL_sc_statezd2num_68zd2+(5))]):false))!== false))
+ {
+ (next = (sc_conf_80+(1)));
+ (next_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, next)));
+ (conf_set_union(sc_state_82, next_set, next, BgL_sc_confzd2set_79zd2));
+ (l = (l.cdr));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ }
+ else
+ {
+ (preds = (sc_predictors_71[(step+BgL_sc_nbzd2nts_81zd2)]));
+ (sc_states_78 = sc_states_67);
+ (state = sc_state_82);
+ (BgL_sc_statezd2num_77zd2 = BgL_sc_statezd2num_68zd2);
+ (BgL_sc_confzd2set_76zd2 = BgL_sc_confzd2set_79zd2);
+ sc_loop1_75 = function(l) {
+ var sc_state_83;
+ var BgL_sc_nextzd2set_84zd2;
+ var sc_next_85;
+ var pred_set;
+ var i;
+ var pred;
+ if ((l instanceof sc_Pair))
+ {
+ (pred = (l.car));
+ (i = head);
+ while ((i>=(0))) {
+ {
+ (pred_set = ((sc_state_83 = (sc_states_78[i])), (sc_state_83[(pred+(1))])));
+ if ((pred_set!== false))
+ {
+ (sc_next_85 = (pred+(1)));
+ (BgL_sc_nextzd2set_84zd2 = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_77zd2, sc_next_85)));
+ (conf_set_union(state, BgL_sc_nextzd2set_84zd2, sc_next_85, pred_set));
+ }
+ (i = (BgL_sc_confzd2set_76zd2[(i+(5))]));
+ }
+ }
+ return (sc_loop1_75((l.cdr)));
+ }
+ else
+ return undefined;
+ };
+ (sc_loop1_75(preds));
+ }
+ }
+ else
+ return undefined;
+ }
+ }
+ }
+ };
+ is_parsed = function(nt, i, j, sc_nts_86, sc_enders_87, sc_states_88) {
+ var conf_set;
+ var state;
+ var sc_conf_89;
+ var l;
+ var BgL_sc_ntza2_90za2;
+ {
+ (BgL_sc_ntza2_90za2 = (sc_ind_43(nt, sc_nts_86)));
+ if ((BgL_sc_ntza2_90za2!== false))
+ {
+ (sc_nts_86.length);
+ (l = (sc_enders_87[BgL_sc_ntza2_90za2]));
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (sc_conf_89 = (l.car));
+ if ((((state = (sc_states_88[j])), (conf_set = (state[(sc_conf_89+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ return true;
+ else
+ (l = (l.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ }
+ };
+ deriv_trees = function(sc_conf_91, i, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2) {
+ var sc_loop1_98;
+ var prev;
+ var name;
+ return ((name = (sc_names_94[sc_conf_91])), ((name!== false)?((sc_conf_91<BgL_sc_nbzd2nts_97zd2)?(sc_list((sc_list(name, ((sc_toks_95[i]).car))))):(sc_list((sc_list(name))))):((prev = (sc_conf_91-(1))), (sc_loop1_98 = function(l1, l2) {
+ var loop2;
+ var ender_set;
+ var state;
+ var ender;
+ var l1;
+ var l2;
+ while (true) {
+ if ((l1 instanceof sc_Pair))
+ {
+ (ender = (l1.car));
+ (ender_set = ((state = (sc_states_96[j])), (state[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ loop2 = function(k, l2) {
+ var loop3;
+ var ender_trees;
+ var prev_trees;
+ var conf_set;
+ var sc_state_99;
+ var k;
+ var l2;
+ while (true) {
+ if ((k>=(0)))
+ if (((k>=i)&&(((sc_state_99 = (sc_states_96[k])), (conf_set = (sc_state_99[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)))
+ {
+ (prev_trees = (deriv_trees(prev, i, k, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2)));
+ (ender_trees = (deriv_trees(ender, k, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2)));
+ loop3 = function(l3, l2) {
+ var l4;
+ var sc_l2_100;
+ var ender_tree;
+ if ((l3 instanceof sc_Pair))
+ {
+ (ender_tree = (sc_list((l3.car))));
+ (l4 = prev_trees);
+ (sc_l2_100 = l2);
+ while ((l4 instanceof sc_Pair)) {
+ {
+ (sc_l2_100 = (new sc_Pair((sc_append((l4.car), ender_tree)), sc_l2_100)));
+ (l4 = (l4.cdr));
+ }
+ }
+ return (loop3((l3.cdr), sc_l2_100));
+ }
+ else
+ return (loop2((ender_set[(k+(5))]), l2));
+ };
+ return (loop3(ender_trees, l2));
+ }
+ else
+ (k = (ender_set[(k+(5))]));
+ else
+ return (sc_loop1_98((l1.cdr), l2));
+ }
+ };
+ return (loop2((ender_set[(2)]), l2));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ else
+ return l2;
+ }
+ }), (sc_loop1_98((sc_enders_92[(sc_steps_93[prev])]), null)))));
+ };
+ BgL_sc_derivzd2treesza2_47z70 = function(nt, i, j, sc_nts_101, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106) {
+ var conf_set;
+ var state;
+ var sc_conf_107;
+ var l;
+ var trees;
+ var BgL_sc_nbzd2nts_108zd2;
+ var BgL_sc_ntza2_109za2;
+ {
+ (BgL_sc_ntza2_109za2 = (sc_ind_43(nt, sc_nts_101)));
+ if ((BgL_sc_ntza2_109za2!== false))
+ {
+ (BgL_sc_nbzd2nts_108zd2 = (sc_nts_101.length));
+ (l = (sc_enders_102[BgL_sc_ntza2_109za2]));
+ (trees = null);
+ while ((l instanceof sc_Pair)) {
+ {
+ (sc_conf_107 = (l.car));
+ if ((((state = (sc_states_106[j])), (conf_set = (state[(sc_conf_107+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ {
+ (l = (l.cdr));
+ (trees = (sc_append((deriv_trees(sc_conf_107, i, j, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106, BgL_sc_nbzd2nts_108zd2)), trees)));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ return trees;
+ }
+ else
+ return false;
+ }
+ };
+ nb_deriv_trees = function(sc_conf_110, i, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2) {
+ var sc_loop1_116;
+ var tmp1124;
+ var prev;
+ return ((prev = (sc_conf_110-(1))), ((((tmp1124 = (sc_conf_110<BgL_sc_nbzd2nts_115zd2)), ((tmp1124!== false)?tmp1124:((sc_steps_112[prev])<(0))))!== false)?(1):((sc_loop1_116 = function(l, sc_n_118) {
+ var nb_ender_trees;
+ var nb_prev_trees;
+ var conf_set;
+ var state;
+ var k;
+ var n;
+ var ender_set;
+ var sc_state_117;
+ var ender;
+ var l;
+ var sc_n_118;
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (ender = (l.car));
+ (ender_set = ((sc_state_117 = (sc_states_114[j])), (sc_state_117[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ (k = (ender_set[(2)]));
+ (n = sc_n_118);
+ while ((k>=(0))) {
+ if (((k>=i)&&(((state = (sc_states_114[k])), (conf_set = (state[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)))
+ {
+ (nb_prev_trees = (nb_deriv_trees(prev, i, k, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2)));
+ (nb_ender_trees = (nb_deriv_trees(ender, k, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2)));
+ (k = (ender_set[(k+(5))]));
+ (n +=(nb_prev_trees*nb_ender_trees));
+ }
+ else
+ (k = (ender_set[(k+(5))]));
+ }
+ return (sc_loop1_116((l.cdr), n));
+ }
+ else
+ (l = (l.cdr));
+ }
+ else
+ return sc_n_118;
+ }
+ }), (sc_loop1_116((sc_enders_111[(sc_steps_112[prev])]), (0))))));
+ };
+ BgL_sc_nbzd2derivzd2treesza2_48za2 = function(nt, i, j, sc_nts_119, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123) {
+ var conf_set;
+ var state;
+ var sc_conf_124;
+ var l;
+ var nb_trees;
+ var BgL_sc_nbzd2nts_125zd2;
+ var BgL_sc_ntza2_126za2;
+ {
+ (BgL_sc_ntza2_126za2 = (sc_ind_43(nt, sc_nts_119)));
+ if ((BgL_sc_ntza2_126za2!== false))
+ {
+ (BgL_sc_nbzd2nts_125zd2 = (sc_nts_119.length));
+ (l = (sc_enders_120[BgL_sc_ntza2_126za2]));
+ (nb_trees = (0));
+ while ((l instanceof sc_Pair)) {
+ {
+ (sc_conf_124 = (l.car));
+ if ((((state = (sc_states_123[j])), (conf_set = (state[(sc_conf_124+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ {
+ (l = (l.cdr));
+ (nb_trees = ((nb_deriv_trees(sc_conf_124, i, j, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123, BgL_sc_nbzd2nts_125zd2))+nb_trees));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ return nb_trees;
+ }
+ else
+ return false;
+ }
+ };
+ (lexer = (parser_descr[(0)]));
+ (sc_nts_42 = (parser_descr[(1)]));
+ (sc_starters_41 = (parser_descr[(2)]));
+ (sc_enders_40 = (parser_descr[(3)]));
+ (sc_predictors_39 = (parser_descr[(4)]));
+ (sc_steps_38 = (parser_descr[(5)]));
+ (sc_names_37 = (parser_descr[(6)]));
+ (falseHead1128 = (new sc_Pair(null, null)));
+ (L1125 = (lexer(input)));
+ (tail1129 = falseHead1128);
+ while (!(L1125 === null)) {
+ {
+ (tok = (L1125.car));
+ (l1 = (tok.cdr));
+ (l2 = null);
+ while ((l1 instanceof sc_Pair)) {
+ {
+ (sc_i_29 = (sc_ind_43((l1.car), sc_nts_42)));
+ if ((sc_i_29!== false))
+ {
+ (l1 = (l1.cdr));
+ (l2 = (new sc_Pair(sc_i_29, l2)));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ }
+ (sc_optrOpnd_22 = (new sc_Pair((tok.car), (sc_reverse(l2)))));
+ (sc_optrOpnd_21 = (new sc_Pair(sc_optrOpnd_22, null)));
+ (tail1129.cdr = sc_optrOpnd_21);
+ (tail1129 = (tail1129.cdr));
+ (L1125 = (L1125.cdr));
+ }
+ }
+ (sc_optrOpnd_20 = (falseHead1128.cdr));
+ (sc_toks_36 = (sc_list2vector(sc_optrOpnd_20)));
+ (BgL_sc_nbzd2toks_35zd2 = (sc_toks_36.length));
+ (BgL_sc_nbzd2confs_34zd2 = (sc_steps_38.length));
+ (sc_states_33 = (make_states(BgL_sc_nbzd2toks_35zd2, BgL_sc_nbzd2confs_34zd2)));
+ (goal_starters = (sc_starters_41[(0)]));
+ (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (0), goal_starters, (0)));
+ (forw(sc_states_33, (0), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
+ (sc_i_28 = (0));
+ while ((sc_i_28<BgL_sc_nbzd2toks_35zd2)) {
+ {
+ (tok_nts = ((sc_toks_36[sc_i_28]).cdr));
+ (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (sc_i_28+(1)), tok_nts, sc_i_28));
+ (forw(sc_states_33, (sc_i_28+(1)), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
+ (++sc_i_28);
+ }
+ }
+ (nb_toks = (sc_toks_36.length));
+ (BgL_sc_nbzd2confs_32zd2 = (sc_steps_38.length));
+ (BgL_sc_nbzd2nts_31zd2 = (sc_nts_42.length));
+ (BgL_sc_statesza2_30za2 = (make_states(nb_toks, BgL_sc_nbzd2confs_32zd2)));
+ (goal_enders = (sc_enders_40[(0)]));
+ (l = goal_enders);
+ while ((l instanceof sc_Pair)) {
+ {
+ (conf = (l.car));
+ (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_33, BgL_sc_statesza2_30za2, nb_toks, conf, (0)));
+ (l = (l.cdr));
+ }
+ }
+ (i = nb_toks);
+ while ((i>=(0))) {
+ {
+ (states = sc_states_33);
+ (BgL_sc_statesza2_27za2 = BgL_sc_statesza2_30za2);
+ (state_num = i);
+ (sc_enders_26 = sc_enders_40);
+ (sc_steps_25 = sc_steps_38);
+ (BgL_sc_nbzd2nts_24zd2 = BgL_sc_nbzd2nts_31zd2);
+ (toks = sc_toks_36);
+ (BgL_sc_stateza2_23za2 = (BgL_sc_statesza2_30za2[i]));
+ loop1 = function() {
+ var sc_loop1_127;
+ var prev;
+ var BgL_sc_statesza2_128za2;
+ var sc_states_129;
+ var j;
+ var i;
+ var sc_i_130;
+ var head;
+ var conf_set;
+ var sc_conf_131;
+ {
+ (sc_conf_131 = (BgL_sc_stateza2_23za2[(0)]));
+ if ((sc_conf_131>=(0)))
+ {
+ (conf_set = (BgL_sc_stateza2_23za2[(sc_conf_131+(1))]));
+ (head = (conf_set[(4)]));
+ (BgL_sc_stateza2_23za2[(0)] = (conf_set[(0)]));
+ (conf_set_merge_new_bang(conf_set));
+ (sc_i_130 = head);
+ while ((sc_i_130>=(0))) {
+ {
+ (i = sc_i_130);
+ (j = state_num);
+ (sc_states_129 = states);
+ (BgL_sc_statesza2_128za2 = BgL_sc_statesza2_27za2);
+ (prev = (sc_conf_131-(1)));
+ if (((sc_conf_131>=BgL_sc_nbzd2nts_24zd2)&&((sc_steps_25[prev])>=(0))))
+ {
+ sc_loop1_127 = function(l) {
+ var k;
+ var ender_set;
+ var state;
+ var ender;
+ var l;
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (ender = (l.car));
+ (ender_set = ((state = (sc_states_129[j])), (state[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ (k = (ender_set[(2)]));
+ while ((k>=(0))) {
+ {
+ if ((k>=i))
+ if (((BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, k, prev, i))!== false))
+ (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, j, ender, k));
+ (k = (ender_set[(k+(5))]));
+ }
+ }
+ return (sc_loop1_127((l.cdr)));
+ }
+ else
+ (l = (l.cdr));
+ }
+ else
+ return undefined;
+ }
+ };
+ (sc_loop1_127((sc_enders_26[(sc_steps_25[prev])])));
+ }
+ (sc_i_130 = (conf_set[(sc_i_130+(5))]));
+ }
+ }
+ return (loop1());
+ }
+ else
+ return undefined;
+ }
+ };
+ (loop1());
+ (--i);
+ }
+ }
+ (optrOpnd = BgL_sc_statesza2_30za2);
+ return [sc_nts_42, sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_names_37, sc_toks_36, optrOpnd, is_parsed, BgL_sc_derivzd2treesza2_47z70, BgL_sc_nbzd2derivzd2treesza2_48za2];
+ }
+ };
+ }
+ };
+ BgL_parsezd2ze3parsedzf3zc2 = function(parse, nt, i, j) {
+ var is_parsed;
+ var states;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (states = (parse[(7)])), (is_parsed = (parse[(8)])), (is_parsed(nt, i, j, nts, enders, states)));
+ };
+ BgL_parsezd2ze3treesz31 = function(parse, nt, i, j) {
+ var BgL_sc_derivzd2treesza2_132z70;
+ var states;
+ var toks;
+ var names;
+ var steps;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (names = (parse[(5)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_derivzd2treesza2_132z70 = (parse[(9)])), (BgL_sc_derivzd2treesza2_132z70(nt, i, j, nts, enders, steps, names, toks, states)));
+ };
+ BgL_parsezd2ze3nbzd2treesze3 = function(parse, nt, i, j) {
+ var BgL_sc_nbzd2derivzd2treesza2_133za2;
+ var states;
+ var toks;
+ var steps;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_nbzd2derivzd2treesza2_133za2 = (parse[(10)])), (BgL_sc_nbzd2derivzd2treesza2_133za2(nt, i, j, nts, enders, steps, toks, states)));
+ };
+ test = function(k) {
+ var x;
+ var p;
+ return ((p = (BgL_makezd2parserzd2(const_earley, function(l) {
+ var sc_x_134;
+ var tail1134;
+ var L1130;
+ var falseHead1133;
+ {
+ (falseHead1133 = (new sc_Pair(null, null)));
+ (tail1134 = falseHead1133);
+ (L1130 = l);
+ while (!(L1130 === null)) {
+ {
+ (tail1134.cdr = (new sc_Pair(((sc_x_134 = (L1130.car)), (sc_list(sc_x_134, sc_x_134))), null)));
+ (tail1134 = (tail1134.cdr));
+ (L1130 = (L1130.cdr));
+ }
+ }
+ return (falseHead1133.cdr);
+ }
+ }))), (x = (p((sc_vector2list((sc_makeVector(k, "\u1E9Ca"))))))), (sc_length((BgL_parsezd2ze3treesz31(x, "\u1E9Cs", (0), k)))));
+ };
+ BgL_earleyzd2benchmarkzd2 = function() {
+ var args = null;
+ for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) {
+ args = sc_cons(arguments[sc_tmp], args);
+ }
+ var k;
+ return ((k = ((args === null)?(7):(args.car))), (BgL_runzd2benchmarkzd2("earley", (1), function() {
+ return (test(k));
+ }, function(result) {
+ return ((sc_display(result)), (sc_newline()), result == 132);
+ })));
+ };
+}
+
+
+/************* END OF GENERATED CODE *************/
+// Invoke this function to run a benchmark.
+// The first argument is a string identifying the benchmark.
+// The second argument is the number of times to run the benchmark.
+// The third argument is a function that runs the benchmark.
+// The fourth argument is a unary function that warns if the result
+// returned by the benchmark is incorrect.
+//
+// Example:
+// RunBenchmark("new Array()",
+// 1,
+// function () { new Array(1000000); }
+// function (v) {
+// return (v instanceof Array) && (v.length == 1000000);
+// });
+
+SC_DEFAULT_OUT = new sc_GenericOutputPort(function(s) {});
+SC_ERROR_OUT = SC_DEFAULT_OUT;
+
+function RunBenchmark(name, count, run, warn) {
+ for (var n = 0; n < count; ++n) {
+ result = run();
+ if (!warn(result)) {
+ throw new Error("Earley or Boyer did incorrect number of rewrites");
+ }
+ }
+}
+
+var BgL_runzd2benchmarkzd2 = RunBenchmark;
+
+for (var i = 0; i < 4; ++i) {
+ BgL_earleyzd2benchmarkzd2();
+ BgL_nboyerzd2benchmarkzd2();
+}
diff --git a/PerformanceTests/SunSpider/tests/v8-v5/v8-raytrace.js b/PerformanceTests/SunSpider/tests/v8-v5/v8-raytrace.js
new file mode 100644
index 000000000..0a7a2922d
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v5/v8-raytrace.js
@@ -0,0 +1,933 @@
+// The ray tracer code in this file is written by Adam Burmister. It
+// is available in its original form from:
+//
+// http://labs.flog.nz.co/raytracer/
+//
+// It has been modified slightly by Google to work as a standalone
+// benchmark, but the all the computational code remains
+// untouched. This file also contains a copy of parts of the Prototype
+// JavaScript framework which is used by the ray tracer.
+
+// Variable used to hold a number that can be used to verify that
+// the scene was ray traced correctly.
+var checkNumber;
+
+
+// ------------------------------------------------------------------------
+// ------------------------------------------------------------------------
+
+// The following is a copy of parts of the Prototype JavaScript library:
+
+// Prototype JavaScript framework, version 1.5.0
+// (c) 2005-2007 Sam Stephenson
+//
+// Prototype is freely distributable under the terms of an MIT-style license.
+// For details, see the Prototype web site: http://prototype.conio.net/
+
+
+var Class = {
+ create: function() {
+ return function() {
+ this.initialize.apply(this, arguments);
+ }
+ }
+};
+
+
+Object.extend = function(destination, source) {
+ for (var property in source) {
+ destination[property] = source[property];
+ }
+ return destination;
+};
+
+
+// ------------------------------------------------------------------------
+// ------------------------------------------------------------------------
+
+// The rest of this file is the actual ray tracer written by Adam
+// Burmister. It's a concatenation of the following files:
+//
+// flog/color.js
+// flog/light.js
+// flog/vector.js
+// flog/ray.js
+// flog/scene.js
+// flog/material/basematerial.js
+// flog/material/solid.js
+// flog/material/chessboard.js
+// flog/shape/baseshape.js
+// flog/shape/sphere.js
+// flog/shape/plane.js
+// flog/intersectioninfo.js
+// flog/camera.js
+// flog/background.js
+// flog/engine.js
+
+
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Color = Class.create();
+
+Flog.RayTracer.Color.prototype = {
+ red : 0.0,
+ green : 0.0,
+ blue : 0.0,
+
+ initialize : function(r, g, b) {
+ if(!r) r = 0.0;
+ if(!g) g = 0.0;
+ if(!b) b = 0.0;
+
+ this.red = r;
+ this.green = g;
+ this.blue = b;
+ },
+
+ add : function(c1, c2){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red + c2.red;
+ result.green = c1.green + c2.green;
+ result.blue = c1.blue + c2.blue;
+
+ return result;
+ },
+
+ addScalar: function(c1, s){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red + s;
+ result.green = c1.green + s;
+ result.blue = c1.blue + s;
+
+ result.limit();
+
+ return result;
+ },
+
+ subtract: function(c1, c2){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red - c2.red;
+ result.green = c1.green - c2.green;
+ result.blue = c1.blue - c2.blue;
+
+ return result;
+ },
+
+ multiply : function(c1, c2) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red * c2.red;
+ result.green = c1.green * c2.green;
+ result.blue = c1.blue * c2.blue;
+
+ return result;
+ },
+
+ multiplyScalar : function(c1, f) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red * f;
+ result.green = c1.green * f;
+ result.blue = c1.blue * f;
+
+ return result;
+ },
+
+ divideFactor : function(c1, f) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red / f;
+ result.green = c1.green / f;
+ result.blue = c1.blue / f;
+
+ return result;
+ },
+
+ limit: function(){
+ this.red = (this.red > 0.0) ? ( (this.red > 1.0) ? 1.0 : this.red ) : 0.0;
+ this.green = (this.green > 0.0) ? ( (this.green > 1.0) ? 1.0 : this.green ) : 0.0;
+ this.blue = (this.blue > 0.0) ? ( (this.blue > 1.0) ? 1.0 : this.blue ) : 0.0;
+ },
+
+ distance : function(color) {
+ var d = Math.abs(this.red - color.red) + Math.abs(this.green - color.green) + Math.abs(this.blue - color.blue);
+ return d;
+ },
+
+ blend: function(c1, c2, w){
+ var result = new Flog.RayTracer.Color(0,0,0);
+ result = Flog.RayTracer.Color.prototype.add(
+ Flog.RayTracer.Color.prototype.multiplyScalar(c1, 1 - w),
+ Flog.RayTracer.Color.prototype.multiplyScalar(c2, w)
+ );
+ return result;
+ },
+
+ brightness : function() {
+ var r = Math.floor(this.red*255);
+ var g = Math.floor(this.green*255);
+ var b = Math.floor(this.blue*255);
+ return (r * 77 + g * 150 + b * 29) >> 8;
+ },
+
+ toString : function () {
+ var r = Math.floor(this.red*255);
+ var g = Math.floor(this.green*255);
+ var b = Math.floor(this.blue*255);
+
+ return "rgb("+ r +","+ g +","+ b +")";
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Light = Class.create();
+
+Flog.RayTracer.Light.prototype = {
+ position: null,
+ color: null,
+ intensity: 10.0,
+
+ initialize : function(pos, color, intensity) {
+ this.position = pos;
+ this.color = color;
+ this.intensity = (intensity ? intensity : 10.0);
+ },
+
+ getIntensity: function(distance){
+ if(distance >= intensity) return 0;
+
+ return Math.pow((intensity - distance) / strength, 0.2);
+ },
+
+ toString : function () {
+ return 'Light [' + this.position.x + ',' + this.position.y + ',' + this.position.z + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Vector = Class.create();
+
+Flog.RayTracer.Vector.prototype = {
+ x : 0.0,
+ y : 0.0,
+ z : 0.0,
+
+ initialize : function(x, y, z) {
+ this.x = (x ? x : 0);
+ this.y = (y ? y : 0);
+ this.z = (z ? z : 0);
+ },
+
+ copy: function(vector){
+ this.x = vector.x;
+ this.y = vector.y;
+ this.z = vector.z;
+ },
+
+ normalize : function() {
+ var m = this.magnitude();
+ return new Flog.RayTracer.Vector(this.x / m, this.y / m, this.z / m);
+ },
+
+ magnitude : function() {
+ return Math.sqrt((this.x * this.x) + (this.y * this.y) + (this.z * this.z));
+ },
+
+ cross : function(w) {
+ return new Flog.RayTracer.Vector(
+ -this.z * w.y + this.y * w.z,
+ this.z * w.x - this.x * w.z,
+ -this.y * w.x + this.x * w.y);
+ },
+
+ dot : function(w) {
+ return this.x * w.x + this.y * w.y + this.z * w.z;
+ },
+
+ add : function(v, w) {
+ return new Flog.RayTracer.Vector(w.x + v.x, w.y + v.y, w.z + v.z);
+ },
+
+ subtract : function(v, w) {
+ if(!w || !v) throw 'Vectors must be defined [' + v + ',' + w + ']';
+ return new Flog.RayTracer.Vector(v.x - w.x, v.y - w.y, v.z - w.z);
+ },
+
+ multiplyVector : function(v, w) {
+ return new Flog.RayTracer.Vector(v.x * w.x, v.y * w.y, v.z * w.z);
+ },
+
+ multiplyScalar : function(v, w) {
+ return new Flog.RayTracer.Vector(v.x * w, v.y * w, v.z * w);
+ },
+
+ toString : function () {
+ return 'Vector [' + this.x + ',' + this.y + ',' + this.z + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Ray = Class.create();
+
+Flog.RayTracer.Ray.prototype = {
+ position : null,
+ direction : null,
+ initialize : function(pos, dir) {
+ this.position = pos;
+ this.direction = dir;
+ },
+
+ toString : function () {
+ return 'Ray [' + this.position + ',' + this.direction + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Scene = Class.create();
+
+Flog.RayTracer.Scene.prototype = {
+ camera : null,
+ shapes : [],
+ lights : [],
+ background : null,
+
+ initialize : function() {
+ this.camera = new Flog.RayTracer.Camera(
+ new Flog.RayTracer.Vector(0,0,-5),
+ new Flog.RayTracer.Vector(0,0,1),
+ new Flog.RayTracer.Vector(0,1,0)
+ );
+ this.shapes = new Array();
+ this.lights = new Array();
+ this.background = new Flog.RayTracer.Background(new Flog.RayTracer.Color(0,0,0.5), 0.2);
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Material) == 'undefined') Flog.RayTracer.Material = {};
+
+Flog.RayTracer.Material.BaseMaterial = Class.create();
+
+Flog.RayTracer.Material.BaseMaterial.prototype = {
+
+ gloss: 2.0, // [0...infinity] 0 = matt
+ transparency: 0.0, // 0=opaque
+ reflection: 0.0, // [0...infinity] 0 = no reflection
+ refraction: 0.50,
+ hasTexture: false,
+
+ initialize : function() {
+
+ },
+
+ getColor: function(u, v){
+
+ },
+
+ wrapUp: function(t){
+ t = t % 2.0;
+ if(t < -1) t += 2.0;
+ if(t >= 1) t -= 2.0;
+ return t;
+ },
+
+ toString : function () {
+ return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Material.Solid = Class.create();
+
+Flog.RayTracer.Material.Solid.prototype = Object.extend(
+ new Flog.RayTracer.Material.BaseMaterial(), {
+ initialize : function(color, reflection, refraction, transparency, gloss) {
+ this.color = color;
+ this.reflection = reflection;
+ this.transparency = transparency;
+ this.gloss = gloss;
+ this.hasTexture = false;
+ },
+
+ getColor: function(u, v){
+ return this.color;
+ },
+
+ toString : function () {
+ return 'SolidMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+ }
+);
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Material.Chessboard = Class.create();
+
+Flog.RayTracer.Material.Chessboard.prototype = Object.extend(
+ new Flog.RayTracer.Material.BaseMaterial(), {
+ colorEven: null,
+ colorOdd: null,
+ density: 0.5,
+
+ initialize : function(colorEven, colorOdd, reflection, transparency, gloss, density) {
+ this.colorEven = colorEven;
+ this.colorOdd = colorOdd;
+ this.reflection = reflection;
+ this.transparency = transparency;
+ this.gloss = gloss;
+ this.density = density;
+ this.hasTexture = true;
+ },
+
+ getColor: function(u, v){
+ var t = this.wrapUp(u * this.density) * this.wrapUp(v * this.density);
+
+ if(t < 0.0)
+ return this.colorEven;
+ else
+ return this.colorOdd;
+ },
+
+ toString : function () {
+ return 'ChessMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+ }
+);
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.BaseShape = Class.create();
+
+Flog.RayTracer.Shape.BaseShape.prototype = {
+ position: null,
+ material: null,
+
+ initialize : function() {
+ this.position = new Vector(0,0,0);
+ this.material = new Flog.RayTracer.Material.SolidMaterial(
+ new Flog.RayTracer.Color(1,0,1),
+ 0,
+ 0,
+ 0
+ );
+ },
+
+ toString : function () {
+ return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.Sphere = Class.create();
+
+Flog.RayTracer.Shape.Sphere.prototype = {
+ initialize : function(pos, radius, material) {
+ this.radius = radius;
+ this.position = pos;
+ this.material = material;
+ },
+
+ intersect: function(ray){
+ var info = new Flog.RayTracer.IntersectionInfo();
+ info.shape = this;
+
+ var dst = Flog.RayTracer.Vector.prototype.subtract(ray.position, this.position);
+
+ var B = dst.dot(ray.direction);
+ var C = dst.dot(dst) - (this.radius * this.radius);
+ var D = (B * B) - C;
+
+ if(D > 0){ // intersection!
+ info.isHit = true;
+ info.distance = (-B) - Math.sqrt(D);
+ info.position = Flog.RayTracer.Vector.prototype.add(
+ ray.position,
+ Flog.RayTracer.Vector.prototype.multiplyScalar(
+ ray.direction,
+ info.distance
+ )
+ );
+ info.normal = Flog.RayTracer.Vector.prototype.subtract(
+ info.position,
+ this.position
+ ).normalize();
+
+ info.color = this.material.getColor(0,0);
+ } else {
+ info.isHit = false;
+ }
+ return info;
+ },
+
+ toString : function () {
+ return 'Sphere [position=' + this.position + ', radius=' + this.radius + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.Plane = Class.create();
+
+Flog.RayTracer.Shape.Plane.prototype = {
+ d: 0.0,
+
+ initialize : function(pos, d, material) {
+ this.position = pos;
+ this.d = d;
+ this.material = material;
+ },
+
+ intersect: function(ray){
+ var info = new Flog.RayTracer.IntersectionInfo();
+
+ var Vd = this.position.dot(ray.direction);
+ if(Vd == 0) return info; // no intersection
+
+ var t = -(this.position.dot(ray.position) + this.d) / Vd;
+ if(t <= 0) return info;
+
+ info.shape = this;
+ info.isHit = true;
+ info.position = Flog.RayTracer.Vector.prototype.add(
+ ray.position,
+ Flog.RayTracer.Vector.prototype.multiplyScalar(
+ ray.direction,
+ t
+ )
+ );
+ info.normal = this.position;
+ info.distance = t;
+
+ if(this.material.hasTexture){
+ var vU = new Flog.RayTracer.Vector(this.position.y, this.position.z, -this.position.x);
+ var vV = vU.cross(this.position);
+ var u = info.position.dot(vU);
+ var v = info.position.dot(vV);
+ info.color = this.material.getColor(u,v);
+ } else {
+ info.color = this.material.getColor(0,0);
+ }
+
+ return info;
+ },
+
+ toString : function () {
+ return 'Plane [' + this.position + ', d=' + this.d + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.IntersectionInfo = Class.create();
+
+Flog.RayTracer.IntersectionInfo.prototype = {
+ isHit: false,
+ hitCount: 0,
+ shape: null,
+ position: null,
+ normal: null,
+ color: null,
+ distance: null,
+
+ initialize : function() {
+ this.color = new Flog.RayTracer.Color(0,0,0);
+ },
+
+ toString : function () {
+ return 'Intersection [' + this.position + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Camera = Class.create();
+
+Flog.RayTracer.Camera.prototype = {
+ position: null,
+ lookAt: null,
+ equator: null,
+ up: null,
+ screen: null,
+
+ initialize : function(pos, lookAt, up) {
+ this.position = pos;
+ this.lookAt = lookAt;
+ this.up = up;
+ this.equator = lookAt.normalize().cross(this.up);
+ this.screen = Flog.RayTracer.Vector.prototype.add(this.position, this.lookAt);
+ },
+
+ getRay: function(vx, vy){
+ var pos = Flog.RayTracer.Vector.prototype.subtract(
+ this.screen,
+ Flog.RayTracer.Vector.prototype.subtract(
+ Flog.RayTracer.Vector.prototype.multiplyScalar(this.equator, vx),
+ Flog.RayTracer.Vector.prototype.multiplyScalar(this.up, vy)
+ )
+ );
+ pos.y = pos.y * -1;
+ var dir = Flog.RayTracer.Vector.prototype.subtract(
+ pos,
+ this.position
+ );
+
+ var ray = new Flog.RayTracer.Ray(pos, dir.normalize());
+
+ return ray;
+ },
+
+ toString : function () {
+ return 'Ray []';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Background = Class.create();
+
+Flog.RayTracer.Background.prototype = {
+ color : null,
+ ambience : 0.0,
+
+ initialize : function(color, ambience) {
+ this.color = color;
+ this.ambience = ambience;
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Engine = Class.create();
+
+Flog.RayTracer.Engine.prototype = {
+ canvas: null, /* 2d context we can render to */
+
+ initialize: function(options){
+ this.options = Object.extend({
+ canvasHeight: 100,
+ canvasWidth: 100,
+ pixelWidth: 2,
+ pixelHeight: 2,
+ renderDiffuse: false,
+ renderShadows: false,
+ renderHighlights: false,
+ renderReflections: false,
+ rayDepth: 2
+ }, options || {});
+
+ this.options.canvasHeight /= this.options.pixelHeight;
+ this.options.canvasWidth /= this.options.pixelWidth;
+
+ /* TODO: dynamically include other scripts */
+ },
+
+ setPixel: function(x, y, color){
+ var pxW, pxH;
+ pxW = this.options.pixelWidth;
+ pxH = this.options.pixelHeight;
+
+ if (this.canvas) {
+ this.canvas.fillStyle = color.toString();
+ this.canvas.fillRect (x * pxW, y * pxH, pxW, pxH);
+ } else {
+ if (x === y) {
+ checkNumber += color.brightness();
+ }
+ // print(x * pxW, y * pxH, pxW, pxH);
+ }
+ },
+
+ renderScene: function(scene, canvas){
+ checkNumber = 0;
+ /* Get canvas */
+ if (canvas) {
+ this.canvas = canvas.getContext("2d");
+ } else {
+ this.canvas = null;
+ }
+
+ var canvasHeight = this.options.canvasHeight;
+ var canvasWidth = this.options.canvasWidth;
+
+ for(var y=0; y < canvasHeight; y++){
+ for(var x=0; x < canvasWidth; x++){
+ var yp = y * 1.0 / canvasHeight * 2 - 1;
+ var xp = x * 1.0 / canvasWidth * 2 - 1;
+
+ var ray = scene.camera.getRay(xp, yp);
+
+ var color = this.getPixelColor(ray, scene);
+
+ this.setPixel(x, y, color);
+ }
+ }
+ if (checkNumber !== 2321) {
+ throw new Error("Scene rendered incorrectly");
+ }
+ },
+
+ getPixelColor: function(ray, scene){
+ var info = this.testIntersection(ray, scene, null);
+ if(info.isHit){
+ var color = this.rayTrace(info, ray, scene, 0);
+ return color;
+ }
+ return scene.background.color;
+ },
+
+ testIntersection: function(ray, scene, exclude){
+ var hits = 0;
+ var best = new Flog.RayTracer.IntersectionInfo();
+ best.distance = 2000;
+
+ for(var i=0; i<scene.shapes.length; i++){
+ var shape = scene.shapes[i];
+
+ if(shape != exclude){
+ var info = shape.intersect(ray);
+ if(info.isHit && info.distance >= 0 && info.distance < best.distance){
+ best = info;
+ hits++;
+ }
+ }
+ }
+ best.hitCount = hits;
+ return best;
+ },
+
+ getReflectionRay: function(P,N,V){
+ var c1 = -N.dot(V);
+ var R1 = Flog.RayTracer.Vector.prototype.add(
+ Flog.RayTracer.Vector.prototype.multiplyScalar(N, 2*c1),
+ V
+ );
+ return new Flog.RayTracer.Ray(P, R1);
+ },
+
+ rayTrace: function(info, ray, scene, depth){
+ // Calc ambient
+ var color = Flog.RayTracer.Color.prototype.multiplyScalar(info.color, scene.background.ambience);
+ var oldColor = color;
+ var shininess = Math.pow(10, info.shape.material.gloss + 1);
+
+ for(var i=0; i<scene.lights.length; i++){
+ var light = scene.lights[i];
+
+ // Calc diffuse lighting
+ var v = Flog.RayTracer.Vector.prototype.subtract(
+ light.position,
+ info.position
+ ).normalize();
+
+ if(this.options.renderDiffuse){
+ var L = v.dot(info.normal);
+ if(L > 0.0){
+ color = Flog.RayTracer.Color.prototype.add(
+ color,
+ Flog.RayTracer.Color.prototype.multiply(
+ info.color,
+ Flog.RayTracer.Color.prototype.multiplyScalar(
+ light.color,
+ L
+ )
+ )
+ );
+ }
+ }
+
+ // The greater the depth the more accurate the colours, but
+ // this is exponentially (!) expensive
+ if(depth <= this.options.rayDepth){
+ // calculate reflection ray
+ if(this.options.renderReflections && info.shape.material.reflection > 0)
+ {
+ var reflectionRay = this.getReflectionRay(info.position, info.normal, ray.direction);
+ var refl = this.testIntersection(reflectionRay, scene, info.shape);
+
+ if (refl.isHit && refl.distance > 0){
+ refl.color = this.rayTrace(refl, reflectionRay, scene, depth + 1);
+ } else {
+ refl.color = scene.background.color;
+ }
+
+ color = Flog.RayTracer.Color.prototype.blend(
+ color,
+ refl.color,
+ info.shape.material.reflection
+ );
+ }
+
+ // Refraction
+ /* TODO */
+ }
+
+ /* Render shadows and highlights */
+
+ var shadowInfo = new Flog.RayTracer.IntersectionInfo();
+
+ if(this.options.renderShadows){
+ var shadowRay = new Flog.RayTracer.Ray(info.position, v);
+
+ shadowInfo = this.testIntersection(shadowRay, scene, info.shape);
+ if(shadowInfo.isHit && shadowInfo.shape != info.shape /*&& shadowInfo.shape.type != 'PLANE'*/){
+ var vA = Flog.RayTracer.Color.prototype.multiplyScalar(color, 0.5);
+ var dB = (0.5 * Math.pow(shadowInfo.shape.material.transparency, 0.5));
+ color = Flog.RayTracer.Color.prototype.addScalar(vA,dB);
+ }
+ }
+
+ // Phong specular highlights
+ if(this.options.renderHighlights && !shadowInfo.isHit && info.shape.material.gloss > 0){
+ var Lv = Flog.RayTracer.Vector.prototype.subtract(
+ info.shape.position,
+ light.position
+ ).normalize();
+
+ var E = Flog.RayTracer.Vector.prototype.subtract(
+ scene.camera.position,
+ info.shape.position
+ ).normalize();
+
+ var H = Flog.RayTracer.Vector.prototype.subtract(
+ E,
+ Lv
+ ).normalize();
+
+ var glossWeight = Math.pow(Math.max(info.normal.dot(H), 0), shininess);
+ color = Flog.RayTracer.Color.prototype.add(
+ Flog.RayTracer.Color.prototype.multiplyScalar(light.color, glossWeight),
+ color
+ );
+ }
+ }
+ color.limit();
+ return color;
+ }
+};
+
+
+function renderScene(){
+ var scene = new Flog.RayTracer.Scene();
+
+ scene.camera = new Flog.RayTracer.Camera(
+ new Flog.RayTracer.Vector(0, 0, -15),
+ new Flog.RayTracer.Vector(-0.2, 0, 5),
+ new Flog.RayTracer.Vector(0, 1, 0)
+ );
+
+ scene.background = new Flog.RayTracer.Background(
+ new Flog.RayTracer.Color(0.5, 0.5, 0.5),
+ 0.4
+ );
+
+ var sphere = new Flog.RayTracer.Shape.Sphere(
+ new Flog.RayTracer.Vector(-1.5, 1.5, 2),
+ 1.5,
+ new Flog.RayTracer.Material.Solid(
+ new Flog.RayTracer.Color(0,0.5,0.5),
+ 0.3,
+ 0.0,
+ 0.0,
+ 2.0
+ )
+ );
+
+ var sphere1 = new Flog.RayTracer.Shape.Sphere(
+ new Flog.RayTracer.Vector(1, 0.25, 1),
+ 0.5,
+ new Flog.RayTracer.Material.Solid(
+ new Flog.RayTracer.Color(0.9,0.9,0.9),
+ 0.1,
+ 0.0,
+ 0.0,
+ 1.5
+ )
+ );
+
+ var plane = new Flog.RayTracer.Shape.Plane(
+ new Flog.RayTracer.Vector(0.1, 0.9, -0.5).normalize(),
+ 1.2,
+ new Flog.RayTracer.Material.Chessboard(
+ new Flog.RayTracer.Color(1,1,1),
+ new Flog.RayTracer.Color(0,0,0),
+ 0.2,
+ 0.0,
+ 1.0,
+ 0.7
+ )
+ );
+
+ scene.shapes.push(plane);
+ scene.shapes.push(sphere);
+ scene.shapes.push(sphere1);
+
+ var light = new Flog.RayTracer.Light(
+ new Flog.RayTracer.Vector(5, 10, -1),
+ new Flog.RayTracer.Color(0.8, 0.8, 0.8)
+ );
+
+ var light1 = new Flog.RayTracer.Light(
+ new Flog.RayTracer.Vector(-3, 5, -15),
+ new Flog.RayTracer.Color(0.8, 0.8, 0.8),
+ 100
+ );
+
+ scene.lights.push(light);
+ scene.lights.push(light1);
+
+ var imageWidth = 100; // $F('imageWidth');
+ var imageHeight = 100; // $F('imageHeight');
+ var pixelSize = "5,5".split(','); // $F('pixelSize').split(',');
+ var renderDiffuse = true; // $F('renderDiffuse');
+ var renderShadows = true; // $F('renderShadows');
+ var renderHighlights = true; // $F('renderHighlights');
+ var renderReflections = true; // $F('renderReflections');
+ var rayDepth = 2;//$F('rayDepth');
+
+ var raytracer = new Flog.RayTracer.Engine(
+ {
+ canvasWidth: imageWidth,
+ canvasHeight: imageHeight,
+ pixelWidth: pixelSize[0],
+ pixelHeight: pixelSize[1],
+ "renderDiffuse": renderDiffuse,
+ "renderHighlights": renderHighlights,
+ "renderShadows": renderShadows,
+ "renderReflections": renderReflections,
+ "rayDepth": rayDepth
+ }
+ );
+
+ raytracer.renderScene(scene, null, 0);
+}
+
+for (var i = 0; i < 6; ++i)
+ renderScene();
diff --git a/PerformanceTests/SunSpider/tests/v8-v5/v8-regexp.js b/PerformanceTests/SunSpider/tests/v8-v5/v8-regexp.js
new file mode 100644
index 000000000..a3ac08180
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v5/v8-regexp.js
@@ -0,0 +1,1613 @@
+// Copyright 2009 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Automatically generated on 2009-01-30.
+
+// This benchmark is generated by loading 50 of the most popular pages
+// on the web and logging all regexp operations performed. Each
+// operation is given a weight that is calculated from an estimate of
+// the popularity of the pages where it occurs and the number of times
+// it is executed while loading each page. Finally the literal
+// letters in the data are encoded using ROT13 in a way that does not
+// affect how the regexps match their input.
+
+function runRegExpBenchmark() {
+ var re0 = /^ba/;
+ var re1 = /(((\w+):\/\/)([^\/:]*)(:(\d+))?)?([^#?]*)(\?([^#]*))?(#(.*))?/;
+ var re2 = /^\s*|\s*$/g;
+ var re3 = /\bQBZPbageby_cynprubyqre\b/;
+ var re4 = /,/;
+ var re5 = /\bQBZPbageby_cynprubyqre\b/g;
+ var re6 = /^[\s\xa0]+|[\s\xa0]+$/g;
+ var re7 = /(\d*)(\D*)/g;
+ var re8 = /=/;
+ var re9 = /(^|\s)lhv\-h(\s|$)/;
+ var str0 = 'Zbmvyyn/5.0 (Jvaqbjf; H; Jvaqbjf AG 5.1; ra-HF) NccyrJroXvg/528.9 (XUGZY, yvxr Trpxb) Puebzr/2.0.157.0 Fnsnev/528.9';
+ var re10 = /\#/g;
+ var re11 = /\./g;
+ var re12 = /'/g;
+ var re13 = /\?[\w\W]*(sevraqvq|punaaryvq|tebhcvq)=([^\&\?#]*)/i;
+ var str1 = 'Fubpxjnir Synfu 9.0 e115';
+ var re14 = /\s+/g;
+ var re15 = /^\s*(\S*(\s+\S+)*)\s*$/;
+ var re16 = /(-[a-z])/i;
+ function runBlock0() {
+ for (var i = 0; i < 6511; i++) {
+ re0.exec('pyvpx');
+ }
+ for (var i = 0; i < 1844; i++) {
+ re1.exec('uggc://jjj.snprobbx.pbz/ybtva.cuc');
+ }
+ for (var i = 0; i < 739; i++) {
+ 'QBZPbageby_cynprubyqre'.replace(re2, '');
+ }
+ for (var i = 0; i < 598; i++) {
+ re1.exec('uggc://jjj.snprobbx.pbz/');
+ }
+ for (var i = 0; i < 454; i++) {
+ re1.exec('uggc://jjj.snprobbx.pbz/fepu.cuc');
+ }
+ for (var i = 0; i < 352; i++) {
+ /qqqq|qqq|qq|q|ZZZZ|ZZZ|ZZ|Z|llll|ll|l|uu|u|UU|U|zz|z|ff|f|gg|g|sss|ss|s|mmm|mm|m/g.exec('qqqq, ZZZ q, llll');
+ }
+ for (var i = 0; i < 312; i++) {
+ re3.exec('vachggrkg QBZPbageby_cynprubyqre');
+ }
+ for (var i = 0; i < 282; i++) {
+ re4.exec('/ZlFcnprUbzrcntr/Vaqrk-FvgrUbzr,10000000');
+ }
+ for (var i = 0; i < 177; i++) {
+ 'vachggrkg'.replace(re5, '');
+ }
+ for (var i = 0; i < 170; i++) {
+ '528.9'.replace(re6, '');
+ re7.exec('528');
+ }
+ for (var i = 0; i < 156; i++) {
+ re8.exec('VCPhygher=ra-HF');
+ re8.exec('CersreerqPhygher=ra-HF');
+ }
+ for (var i = 0; i < 144; i++) {
+ re0.exec('xrlcerff');
+ }
+ for (var i = 0; i < 139; i++) {
+ '521'.replace(re6, '');
+ re7.exec('521');
+ re9.exec('');
+ /JroXvg\/(\S+)/.exec(str0);
+ }
+ for (var i = 0; i < 137; i++) {
+ 'qvi .so_zrah'.replace(re10, '');
+ 'qvi .so_zrah'.replace(/\[/g, '');
+ 'qvi.so_zrah'.replace(re11, '');
+ }
+ for (var i = 0; i < 117; i++) {
+ 'uvqqra_ryrz'.replace(re2, '');
+ }
+ for (var i = 0; i < 95; i++) {
+ /(?:^|;)\s*sevraqfgre_ynat=([^;]*)/.exec('sevraqfgre_naba=nvq%3Qn6ss9p85n868ro9s059pn854735956o3%26ers%3Q%26df%3Q%26vpgl%3QHF');
+ }
+ for (var i = 0; i < 93; i++) {
+ 'uggc://ubzr.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ re13.exec('uggc://ubzr.zlfcnpr.pbz/vaqrk.psz');
+ }
+ for (var i = 0; i < 92; i++) {
+ str1.replace(/([a-zA-Z]|\s)+/, '');
+ }
+ for (var i = 0; i < 85; i++) {
+ 'svefg'.replace(re14, '');
+ 'svefg'.replace(re15, '');
+ 'uggc://cebsvyr.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ 'ynfg'.replace(re14, '');
+ 'ynfg'.replace(re15, '');
+ re16.exec('qvfcynl');
+ re13.exec('uggc://cebsvyr.zlfcnpr.pbz/vaqrk.psz');
+ }
+ }
+ var re17 = /(^|[^\\])\"\\\/Qngr\((-?[0-9]+)\)\\\/\"/g;
+ var str2 = '{"anzr":"","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":gehr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"\xa4","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":gehr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, qq ZZZZ llll UU:zz:ff","YbatQngrCnggrea":"qqqq, qq ZZZZ llll","YbatGvzrCnggrea":"UU:zz:ff","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU\':\'zz\':\'ff \'TZG\'","FubegQngrCnggrea":"ZZ/qq/llll","FubegGvzrCnggrea":"UU:zz","FbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq\'G\'UU\':\'zz\':\'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq UU\':\'zz\':\'ff\'M\'","LrneZbaguCnggrea":"llll ZZZZ","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":gehr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}';
+ var str3 = '{"anzr":"ra-HF","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":snyfr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"$","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":snyfr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, ZZZZ qq, llll u:zz:ff gg","YbatQngrCnggrea":"qqqq, ZZZZ qq, llll","YbatGvzrCnggrea":"u:zz:ff gg","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU\':\'zz\':\'ff \'TZG\'","FubegQngrCnggrea":"Z/q/llll","FubegGvzrCnggrea":"u:zz gg","FbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq\'G\'UU\':\'zz\':\'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq UU\':\'zz\':\'ff\'M\'","LrneZbaguCnggrea":"ZZZZ, llll","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":snyfr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}';
+ var str4 = 'HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str5 = 'HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var re18 = /^\s+|\s+$/g;
+ var str6 = 'uggc://jjj.snprobbx.pbz/vaqrk.cuc';
+ var re19 = /(?:^|\s+)ba(?:\s+|$)/;
+ var re20 = /[+, ]/;
+ var re21 = /ybnqrq|pbzcyrgr/;
+ var str7 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(d1)c=d1.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+d1.Cnaryf[c].Jvqgu,o=g+d1.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(d1&&d1.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(d1)d1.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(d1)d1.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;d1.IjTc=d2(n,c){ine nq=d1;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;d1.IjTpy=d2(n,c,p){ine cn=d1.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;d1.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;d1.IjYvzvg1=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;d1.IjYvzvg0=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;d1.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",d1.rvsg);};;d1.IjNavzSHC=d2(n,c){ine nq=d1;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;d1.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;d1.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;d1.IjPnapryNyyGvzrbhgf=d2(n){vs(d1.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<d1.bac;c++)IjPnapryGvzrbhg(n,c);};;d1.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;d1.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;d1.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<d1.bac;c++)IjErfrgGvzrbhg(n,c);};;d1.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare(\'"+rig+"\',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;d1.IjPyrnaHc=d2(n){IjCvat(n,"G");ine nq=d1;sbe(ine v=0;v<nq.Cnaryf.yratgu;v++){IjUvqrCnary(n,v,gehr);}gel{IjTrgBow(nq.gya).vaareUGZY="";}pngpu(r){}vs(nq.gya!=nq.gya2)gel{IjTrgBow(nq.gya2).vaareUGZY="";}pngpu(r){}gel{d1=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"haybnq","IjHayNQ_VQ");}pngpu(r){}gel{jvaqbj.IjHayNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"fpebyy","IjFeNQ_VQ");}pngpu(r){}gel{jvaqbj.IjFeNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"erfvmr","IjEmNQ_VQ");}pngpu(r){}gel{jvaqbj.IjEmNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n';
+ var str8 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=shapgvba(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=shapgvba(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=shapgvba(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=shapgvba(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=shapgvba(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=shapgvba(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=shapgvba(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=shapgvba(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbir';
+ var str9 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=d2(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=d2(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare(\'"+rig+"\',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjPyrna';
+ function runBlock1() {
+ for (var i = 0; i < 81; i++) {
+ re8.exec('VC=74.125.75.1');
+ }
+ for (var i = 0; i < 78; i++) {
+ '9.0 e115'.replace(/(\s)+e/, '');
+ 'k'.replace(/./, '');
+ str2.replace(re17, '');
+ str3.replace(re17, '');
+ re8.exec('144631658');
+ re8.exec('Pbhagel=IIZ%3Q');
+ re8.exec('Pbhagel=IIZ=');
+ re8.exec('CersreerqPhygherCraqvat=');
+ re8.exec(str4);
+ re8.exec(str5);
+ re8.exec('__hgzp=144631658');
+ re8.exec('gvzrMbar=-8');
+ re8.exec('gvzrMbar=0');
+ /Fnsnev\/(\d+\.\d+)/.exec(str0);
+ re3.exec('vachggrkg QBZPbageby_cynprubyqre');
+ re0.exec('xrlqbja');
+ re0.exec('xrlhc');
+ }
+ for (var i = 0; i < 77; i++) {
+ 'uggc://zrffntvat.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ re13.exec('uggc://zrffntvat.zlfcnpr.pbz/vaqrk.psz');
+ }
+ for (var i = 0; i < 73; i++) {
+ 'FrffvbaFgbentr=%7O%22GnoThvq%22%3N%7O%22thvq%22%3N1231367125017%7Q%7Q'.replace(re18, '');
+ }
+ for (var i = 0; i < 72; i++) {
+ re1.exec(str6);
+ }
+ for (var i = 0; i < 71; i++) {
+ re19.exec('');
+ }
+ for (var i = 0; i < 70; i++) {
+ '3.5.0.0'.replace(re11, '');
+ str7.replace(/d1/g, '');
+ str8.replace(/NQ_VQ/g, '');
+ str9.replace(/d2/g, '');
+ 'NI%3Q1_CI%3Q1_PI%3Q1_EI%3Q1_HI%3Q1_HP%3Q1_IC%3Q0.0.0.0_IH%3Q0'.replace(/_/g, '');
+ 'svz_zlfcnpr_ubzrcntr_abgybttrqva,svz_zlfcnpr_aba_HTP,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+ re21.exec('ybnqvat');
+ }
+ for (var i = 0; i < 68; i++) {
+ re1.exec('#');
+ /(?:ZFVR.(\d+\.\d+))|(?:(?:Sversbk|TenaCnenqvfb|Vprjrnfry).(\d+\.\d+))|(?:Bcren.(\d+\.\d+))|(?:NccyrJroXvg.(\d+(?:\.\d+)?))/.exec(str0);
+ /(Znp BF K)|(Jvaqbjf;)/.exec(str0);
+ /Trpxb\/([0-9]+)/.exec(str0);
+ re21.exec('ybnqrq');
+ }
+ for (var i = 0; i < 49; i++) {
+ re16.exec('pbybe');
+ }
+ for (var i = 0; i < 44; i++) {
+ 'uggc://sevraqf.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ re13.exec('uggc://sevraqf.zlfcnpr.pbz/vaqrk.psz');
+ }
+ }
+ var re22 = /\bso_zrah\b/;
+ var re23 = /^(?:(?:[^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/;
+ var re24 = /uggcf?:\/\/([^\/]+\.)?snprobbx\.pbz\//;
+ var re25 = /"/g;
+ var re26 = /^([^?#]+)(?:\?([^#]*))?(#.*)?/;
+ function runBlock2() {
+ for (var i = 0; i < 40; i++) {
+ 'fryrpgrq'.replace(re14, '');
+ 'fryrpgrq'.replace(re15, '');
+ }
+ for (var i = 0; i < 39; i++) {
+ 'vachggrkg uvqqra_ryrz'.replace(/\buvqqra_ryrz\b/g, '');
+ re3.exec('vachggrkg ');
+ re3.exec('vachggrkg');
+ re22.exec('HVYvaxOhggba');
+ re22.exec('HVYvaxOhggba_E');
+ re22.exec('HVYvaxOhggba_EJ');
+ re22.exec('zrah_ybtva_pbagnvare');
+ /\buvqqra_ryrz\b/.exec('vachgcnffjbeq');
+ }
+ for (var i = 0; i < 37; i++) {
+ re8.exec('111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904');
+ re8.exec('SbeprqRkcvengvba=633669315660164980');
+ re8.exec('FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904');
+ }
+ for (var i = 0; i < 35; i++) {
+ 'puvyq p1 svefg'.replace(re14, '');
+ 'puvyq p1 svefg'.replace(re15, '');
+ 'sylbhg pybfrq'.replace(re14, '');
+ 'sylbhg pybfrq'.replace(re15, '');
+ }
+ for (var i = 0; i < 34; i++) {
+ re19.exec('gno2');
+ re19.exec('gno3');
+ re8.exec('44132r503660');
+ re8.exec('SbeprqRkcvengvba=633669316860113296');
+ re8.exec('AFP_zp_dfctwzs-aowb_80=44132r503660');
+ re8.exec('FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696');
+ re8.exec('s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696');
+ }
+ for (var i = 0; i < 32; i++) {
+ /puebzr/i.exec(str0);
+ }
+ for (var i = 0; i < 31; i++) {
+ 'uggc://jjj.snprobbx.pbz/'.replace(re23, '');
+ re8.exec('SbeprqRkcvengvba=633669358527244818');
+ re8.exec('VC=66.249.85.130');
+ re8.exec('FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58');
+ re8.exec('s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58');
+ re24.exec('uggc://jjj.snprobbx.pbz/');
+ }
+ for (var i = 0; i < 30; i++) {
+ '419'.replace(re6, '');
+ /(?:^|\s+)gvzrfgnzc(?:\s+|$)/.exec('gvzrfgnzc');
+ re7.exec('419');
+ }
+ for (var i = 0; i < 29; i++) {
+ 'uggc://jjj.snprobbx.pbz/ybtva.cuc'.replace(re23, '');
+ }
+ for (var i = 0; i < 28; i++) {
+ 'Funer guvf tnqtrg'.replace(re25, '');
+ 'Funer guvf tnqtrg'.replace(re12, '');
+ re26.exec('uggc://jjj.tbbtyr.pbz/vt/qverpgbel');
+ }
+ }
+ var re27 = /-\D/g;
+ var re28 = /\bnpgvingr\b/;
+ var re29 = /%2R/gi;
+ var re30 = /%2S/gi;
+ var re31 = /^(mu-(PA|GJ)|wn|xb)$/;
+ var re32 = /\s?;\s?/;
+ var re33 = /%\w?$/;
+ var re34 = /TNQP=([^;]*)/i;
+ var str10 = 'FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str11 = 'FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; __hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1; __hgzo=144631658.0.10.1231363570; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str12 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363514065&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363514065&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Subzr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1326469221.1231363557&tn_fvq=1231363557&tn_uvq=1114636509&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str13 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str14 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var re35 = /[<>]/g;
+ var str15 = 'FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=44132r503660';
+ var str16 = 'FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; AFP_zp_dfctwzs-aowb_80=44132r503660; __hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1; __hgzo=144631658.0.10.1231363638; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str17 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363621014&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363621014&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=348699119.1231363624&tn_fvq=1231363624&tn_uvq=895511034&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str18 = 'uggc://jjj.yrobapbva.se/yv';
+ var str19 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str20 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ function runBlock3() {
+ for (var i = 0; i < 27; i++) {
+ 'e115'.replace(/[A-Za-z]/g, '');
+ }
+ for (var i = 0; i < 23; i++) {
+ 'qvfcynl'.replace(re27, '');
+ 'cbfvgvba'.replace(re27, '');
+ }
+ for (var i = 0; i < 22; i++) {
+ 'unaqyr'.replace(re14, '');
+ 'unaqyr'.replace(re15, '');
+ 'yvar'.replace(re14, '');
+ 'yvar'.replace(re15, '');
+ 'cnerag puebzr6 fvatyr1 gno'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1 gno'.replace(re15, '');
+ 'fyvqre'.replace(re14, '');
+ 'fyvqre'.replace(re15, '');
+ re28.exec('');
+ }
+ for (var i = 0; i < 21; i++) {
+ 'uggc://jjj.zlfcnpr.pbz/'.replace(re12, '');
+ re13.exec('uggc://jjj.zlfcnpr.pbz/');
+ }
+ for (var i = 0; i < 20; i++) {
+ 'cntrivrj'.replace(re29, '');
+ 'cntrivrj'.replace(re30, '');
+ re19.exec('ynfg');
+ re19.exec('ba svefg');
+ re8.exec('VC=74.125.75.3');
+ }
+ for (var i = 0; i < 19; i++) {
+ re31.exec('ra');
+ }
+ for (var i = 0; i < 18; i++) {
+ str10.split(re32);
+ str11.split(re32);
+ str12.replace(re33, '');
+ re8.exec('144631658.0.10.1231363570');
+ re8.exec('144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.3426875219718084000.1231363570.1231363570.1231363570.1');
+ re8.exec(str13);
+ re8.exec(str14);
+ re8.exec('__hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1');
+ re8.exec('__hgzo=144631658.0.10.1231363570');
+ re8.exec('__hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str10);
+ re34.exec(str11);
+ }
+ for (var i = 0; i < 17; i++) {
+ str0.match(/zfvr/gi);
+ str0.match(/bcren/gi);
+ str15.split(re32);
+ str16.split(re32);
+ 'ohggba'.replace(re14, '');
+ 'ohggba'.replace(re15, '');
+ 'puvyq p1 svefg sylbhg pybfrq'.replace(re14, '');
+ 'puvyq p1 svefg sylbhg pybfrq'.replace(re15, '');
+ 'pvgvrf'.replace(re14, '');
+ 'pvgvrf'.replace(re15, '');
+ 'pybfrq'.replace(re14, '');
+ 'pybfrq'.replace(re15, '');
+ 'qry'.replace(re14, '');
+ 'qry'.replace(re15, '');
+ 'uqy_zba'.replace(re14, '');
+ 'uqy_zba'.replace(re15, '');
+ str17.replace(re33, '');
+ str18.replace(/%3P/g, '');
+ str18.replace(/%3R/g, '');
+ str18.replace(/%3q/g, '');
+ str18.replace(re35, '');
+ 'yvaxyvfg16'.replace(re14, '');
+ 'yvaxyvfg16'.replace(re15, '');
+ 'zvahf'.replace(re14, '');
+ 'zvahf'.replace(re15, '');
+ 'bcra'.replace(re14, '');
+ 'bcra'.replace(re15, '');
+ 'cnerag puebzr5 fvatyr1 ps NU'.replace(re14, '');
+ 'cnerag puebzr5 fvatyr1 ps NU'.replace(re15, '');
+ 'cynlre'.replace(re14, '');
+ 'cynlre'.replace(re15, '');
+ 'cyhf'.replace(re14, '');
+ 'cyhf'.replace(re15, '');
+ 'cb_uqy'.replace(re14, '');
+ 'cb_uqy'.replace(re15, '');
+ 'hyJVzt'.replace(re14, '');
+ 'hyJVzt'.replace(re15, '');
+ re8.exec('144631658.0.10.1231363638');
+ re8.exec('144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.965867047679498800.1231363638.1231363638.1231363638.1');
+ re8.exec('4413268q3660');
+ re8.exec('4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n');
+ re8.exec('SbeprqRkcvengvba=633669321699093060');
+ re8.exec('VC=74.125.75.20');
+ re8.exec(str19);
+ re8.exec(str20);
+ re8.exec('AFP_zp_tfwsbrg-aowb_80=4413268q3660');
+ re8.exec('FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n');
+ re8.exec('__hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1');
+ re8.exec('__hgzo=144631658.0.10.1231363638');
+ re8.exec('__hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str15);
+ re34.exec(str16);
+ }
+ }
+ var re36 = /uers|fep|fryrpgrq/;
+ var re37 = /\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g;
+ var re38 = /^(\w+|\*)$/;
+ var str21 = 'FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str22 = 'FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; __hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1; __hgzo=144631658.0.10.1231367822; __hgzp=144631658; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str23 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367803797&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367803797&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Szrffntvat.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1192552091.1231367807&tn_fvq=1231367807&tn_uvq=1155446857&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str24 = 'ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str25 = 'ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str26 = 'hy.ynat-fryrpgbe';
+ var re39 = /\\/g;
+ var re40 = / /g;
+ var re41 = /\/\xc4\/t/;
+ var re42 = /\/\xd6\/t/;
+ var re43 = /\/\xdc\/t/;
+ var re44 = /\/\xdf\/t/;
+ var re45 = /\/\xe4\/t/;
+ var re46 = /\/\xf6\/t/;
+ var re47 = /\/\xfc\/t/;
+ var re48 = /\W/g;
+ var re49 = /uers|fep|fglyr/;
+ function runBlock4() {
+ for (var i = 0; i < 16; i++) {
+ ''.replace(/\*/g, '');
+ /\bnpgvir\b/.exec('npgvir');
+ /sversbk/i.exec(str0);
+ re36.exec('glcr');
+ /zfvr/i.exec(str0);
+ /bcren/i.exec(str0);
+ }
+ for (var i = 0; i < 15; i++) {
+ str21.split(re32);
+ str22.split(re32);
+ 'uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ str23.replace(re33, '');
+ 'yv'.replace(re37, '');
+ 'yv'.replace(re18, '');
+ re8.exec('144631658.0.10.1231367822');
+ re8.exec('144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.4127520630321984500.1231367822.1231367822.1231367822.1');
+ re8.exec(str24);
+ re8.exec(str25);
+ re8.exec('__hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1');
+ re8.exec('__hgzo=144631658.0.10.1231367822');
+ re8.exec('__hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str21);
+ re34.exec(str22);
+ /\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g.exec(str26);
+ re13.exec('uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz');
+ re38.exec('yv');
+ }
+ for (var i = 0; i < 14; i++) {
+ ''.replace(re18, '');
+ '9.0 e115'.replace(/(\s+e|\s+o[0-9]+)/, '');
+ 'Funer guvf tnqtrg'.replace(/</g, '');
+ 'Funer guvf tnqtrg'.replace(/>/g, '');
+ 'Funer guvf tnqtrg'.replace(re39, '');
+ 'uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ 'grnfre'.replace(re40, '');
+ 'grnfre'.replace(re41, '');
+ 'grnfre'.replace(re42, '');
+ 'grnfre'.replace(re43, '');
+ 'grnfre'.replace(re44, '');
+ 'grnfre'.replace(re45, '');
+ 'grnfre'.replace(re46, '');
+ 'grnfre'.replace(re47, '');
+ 'grnfre'.replace(re48, '');
+ re16.exec('znetva-gbc');
+ re16.exec('cbfvgvba');
+ re19.exec('gno1');
+ re9.exec('qz');
+ re9.exec('qg');
+ re9.exec('zbqobk');
+ re9.exec('zbqobkva');
+ re9.exec('zbqgvgyr');
+ re13.exec('uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz');
+ re26.exec('/vt/znvytnqtrg');
+ re49.exec('glcr');
+ }
+ }
+ var re50 = /(?:^|\s+)fryrpgrq(?:\s+|$)/;
+ var re51 = /\&/g;
+ var re52 = /\+/g;
+ var re53 = /\?/g;
+ var re54 = /\t/g;
+ var re55 = /(\$\{nqiHey\})|(\$nqiHey\b)/g;
+ var re56 = /(\$\{cngu\})|(\$cngu\b)/g;
+ function runBlock5() {
+ for (var i = 0; i < 13; i++) {
+ 'purpx'.replace(re14, '');
+ 'purpx'.replace(re15, '');
+ 'pvgl'.replace(re14, '');
+ 'pvgl'.replace(re15, '');
+ 'qrpe fyvqrgrkg'.replace(re14, '');
+ 'qrpe fyvqrgrkg'.replace(re15, '');
+ 'svefg fryrpgrq'.replace(re14, '');
+ 'svefg fryrpgrq'.replace(re15, '');
+ 'uqy_rag'.replace(re14, '');
+ 'uqy_rag'.replace(re15, '');
+ 'vape fyvqrgrkg'.replace(re14, '');
+ 'vape fyvqrgrkg'.replace(re15, '');
+ 'vachggrkg QBZPbageby_cynprubyqre'.replace(re5, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq'.replace(re15, '');
+ 'cb_guz'.replace(re14, '');
+ 'cb_guz'.replace(re15, '');
+ 'fhozvg'.replace(re14, '');
+ 'fhozvg'.replace(re15, '');
+ re50.exec('');
+ /NccyrJroXvg\/([^\s]*)/.exec(str0);
+ /XUGZY/.exec(str0);
+ }
+ for (var i = 0; i < 12; i++) {
+ '${cebg}://${ubfg}${cngu}/${dz}'.replace(/(\$\{cebg\})|(\$cebg\b)/g, '');
+ '1'.replace(re40, '');
+ '1'.replace(re10, '');
+ '1'.replace(re51, '');
+ '1'.replace(re52, '');
+ '1'.replace(re53, '');
+ '1'.replace(re39, '');
+ '1'.replace(re54, '');
+ '9.0 e115'.replace(/^(.*)\..*$/, '');
+ '9.0 e115'.replace(/^.*e(.*)$/, '');
+ '<!-- ${nqiHey} -->'.replace(re55, '');
+ '<fpevcg glcr="grkg/wninfpevcg" fep="${nqiHey}"></fpevcg>'.replace(re55, '');
+ str1.replace(/^.*\s+(\S+\s+\S+$)/, '');
+ 'tzk%2Subzrcntr%2Sfgneg%2Sqr%2S'.replace(re30, '');
+ 'tzk'.replace(re30, '');
+ 'uggc://${ubfg}${cngu}/${dz}'.replace(/(\$\{ubfg\})|(\$ubfg\b)/g, '');
+ 'uggc://nqpyvrag.hvzfrei.arg${cngu}/${dz}'.replace(re56, '');
+ 'uggc://nqpyvrag.hvzfrei.arg/wf.at/${dz}'.replace(/(\$\{dz\})|(\$dz\b)/g, '');
+ 'frpgvba'.replace(re29, '');
+ 'frpgvba'.replace(re30, '');
+ 'fvgr'.replace(re29, '');
+ 'fvgr'.replace(re30, '');
+ 'fcrpvny'.replace(re29, '');
+ 'fcrpvny'.replace(re30, '');
+ re36.exec('anzr');
+ /e/.exec('9.0 e115');
+ }
+ }
+ var re57 = /##yv4##/gi;
+ var re58 = /##yv16##/gi;
+ var re59 = /##yv19##/gi;
+ var str27 = '<hy pynff="nqi">##yv4##Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str28 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str29 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str30 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str31 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.<oe> <oe> ##N##Yrnea zber##/N##</hy>';
+ var str32 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.<oe> <oe> <n uers="uggc://znvy.yvir.pbz/znvy/nobhg.nfck" gnetrg="_oynax">Yrnea zber##/N##</hy>';
+ var str33 = 'Bar Jvaqbjf Yvir VQ trgf lbh vagb <o>Ubgznvy</o>, <o>Zrffratre</o>, <o>Kobk YVIR</o> \u2014 naq bgure cynprf lbh frr #~#argjbexybtb#~#';
+ var re60 = /(?:^|\s+)bss(?:\s+|$)/;
+ var re61 = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/;
+ var re62 = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
+ var str34 = '${1}://${2}${3}${4}${5}';
+ var str35 = ' O=6gnyg0g4znrrn&o=3&f=gc; Q=_lyu=K3bQZGSxnT4lZzD3OS9GNmV3ZGLkAQxRpTyxNmRlZmRmAmNkAQLRqTImqNZjOUEgpTjQnJ5xMKtgoN--; SCF=qy';
+ function runBlock6() {
+ for (var i = 0; i < 11; i++) {
+ str27.replace(/##yv0##/gi, '');
+ str27.replace(re57, '');
+ str28.replace(re58, '');
+ str29.replace(re59, '');
+ str30.replace(/##\/o##/gi, '');
+ str30.replace(/##\/v##/gi, '');
+ str30.replace(/##\/h##/gi, '');
+ str30.replace(/##o##/gi, '');
+ str30.replace(/##oe##/gi, '');
+ str30.replace(/##v##/gi, '');
+ str30.replace(/##h##/gi, '');
+ str31.replace(/##n##/gi, '');
+ str32.replace(/##\/n##/gi, '');
+ str33.replace(/#~#argjbexybtb#~#/g, '');
+ / Zbovyr\//.exec(str0);
+ /##yv1##/gi.exec(str27);
+ /##yv10##/gi.exec(str28);
+ /##yv11##/gi.exec(str28);
+ /##yv12##/gi.exec(str28);
+ /##yv13##/gi.exec(str28);
+ /##yv14##/gi.exec(str28);
+ /##yv15##/gi.exec(str28);
+ re58.exec(str28);
+ /##yv17##/gi.exec(str29);
+ /##yv18##/gi.exec(str29);
+ re59.exec(str29);
+ /##yv2##/gi.exec(str27);
+ /##yv20##/gi.exec(str30);
+ /##yv21##/gi.exec(str30);
+ /##yv22##/gi.exec(str30);
+ /##yv23##/gi.exec(str30);
+ /##yv3##/gi.exec(str27);
+ re57.exec(str27);
+ /##yv5##/gi.exec(str28);
+ /##yv6##/gi.exec(str28);
+ /##yv7##/gi.exec(str28);
+ /##yv8##/gi.exec(str28);
+ /##yv9##/gi.exec(str28);
+ re8.exec('473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29');
+ re8.exec('SbeprqRkcvengvba=633669325184628362');
+ re8.exec('FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29');
+ /AbxvnA[^\/]*/.exec(str0);
+ }
+ for (var i = 0; i < 10; i++) {
+ ' bss'.replace(/(?:^|\s+)bss(?:\s+|$)/g, '');
+ str34.replace(/(\$\{0\})|(\$0\b)/g, '');
+ str34.replace(/(\$\{1\})|(\$1\b)/g, '');
+ str34.replace(/(\$\{pbzcyrgr\})|(\$pbzcyrgr\b)/g, '');
+ str34.replace(/(\$\{sentzrag\})|(\$sentzrag\b)/g, '');
+ str34.replace(/(\$\{ubfgcbeg\})|(\$ubfgcbeg\b)/g, '');
+ str34.replace(re56, '');
+ str34.replace(/(\$\{cebgbpby\})|(\$cebgbpby\b)/g, '');
+ str34.replace(/(\$\{dhrel\})|(\$dhrel\b)/g, '');
+ 'nqfvmr'.replace(re29, '');
+ 'nqfvmr'.replace(re30, '');
+ 'uggc://${2}${3}${4}${5}'.replace(/(\$\{2\})|(\$2\b)/g, '');
+ 'uggc://wf.hv-cbegny.qr${3}${4}${5}'.replace(/(\$\{3\})|(\$3\b)/g, '');
+ 'arjf'.replace(re40, '');
+ 'arjf'.replace(re41, '');
+ 'arjf'.replace(re42, '');
+ 'arjf'.replace(re43, '');
+ 'arjf'.replace(re44, '');
+ 'arjf'.replace(re45, '');
+ 'arjf'.replace(re46, '');
+ 'arjf'.replace(re47, '');
+ 'arjf'.replace(re48, '');
+ / PC=i=(\d+)&oe=(.)/.exec(str35);
+ re60.exec(' ');
+ re60.exec(' bss');
+ re60.exec('');
+ re19.exec(' ');
+ re19.exec('svefg ba');
+ re19.exec('ynfg vtaber');
+ re19.exec('ba');
+ re9.exec('scnq so ');
+ re9.exec('zrqvgobk');
+ re9.exec('hsgy');
+ re9.exec('lhv-h');
+ /Fnsnev|Xbadhrebe|XUGZY/gi.exec(str0);
+ re61.exec('uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf');
+ re62.exec('#Ybtva_rznvy');
+ }
+ }
+ var re63 = /\{0\}/g;
+ var str36 = 'FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_tfwsbrg-aowb_80=4413268q3660';
+ var str37 = 'FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; AFP_zp_tfwsbrg-aowb_80=4413268q3660; __hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1; __hgzo=144631658.0.10.1231364074; __hgzp=144631658; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str38 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231364057761&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364057761&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Ssevraqf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1667363813.1231364061&tn_fvq=1231364061&tn_uvq=1917563877&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str39 = 'ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str40 = 'ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ function runBlock7() {
+ for (var i = 0; i < 9; i++) {
+ '0'.replace(re40, '');
+ '0'.replace(re10, '');
+ '0'.replace(re51, '');
+ '0'.replace(re52, '');
+ '0'.replace(re53, '');
+ '0'.replace(re39, '');
+ '0'.replace(re54, '');
+ 'Lrf'.replace(re40, '');
+ 'Lrf'.replace(re10, '');
+ 'Lrf'.replace(re51, '');
+ 'Lrf'.replace(re52, '');
+ 'Lrf'.replace(re53, '');
+ 'Lrf'.replace(re39, '');
+ 'Lrf'.replace(re54, '');
+ }
+ for (var i = 0; i < 8; i++) {
+ 'Pybfr {0}'.replace(re63, '');
+ 'Bcra {0}'.replace(re63, '');
+ str36.split(re32);
+ str37.split(re32);
+ 'puvyq p1 svefg gnournqref'.replace(re14, '');
+ 'puvyq p1 svefg gnournqref'.replace(re15, '');
+ 'uqy_fcb'.replace(re14, '');
+ 'uqy_fcb'.replace(re15, '');
+ 'uvag'.replace(re14, '');
+ 'uvag'.replace(re15, '');
+ str38.replace(re33, '');
+ 'yvfg'.replace(re14, '');
+ 'yvfg'.replace(re15, '');
+ 'at_bhgre'.replace(re30, '');
+ 'cnerag puebzr5 qbhoyr2 NU'.replace(re14, '');
+ 'cnerag puebzr5 qbhoyr2 NU'.replace(re15, '');
+ 'cnerag puebzr5 dhnq5 ps NU osyvax zbarl'.replace(re14, '');
+ 'cnerag puebzr5 dhnq5 ps NU osyvax zbarl'.replace(re15, '');
+ 'cnerag puebzr6 fvatyr1'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1'.replace(re15, '');
+ 'cb_qrs'.replace(re14, '');
+ 'cb_qrs'.replace(re15, '');
+ 'gnopbagrag'.replace(re14, '');
+ 'gnopbagrag'.replace(re15, '');
+ 'iv_svefg_gvzr'.replace(re30, '');
+ /(^|.)(ronl|qri-ehf3.wbg)(|fgberf|zbgbef|yvirnhpgvbaf|jvxv|rkcerff|punggre).(pbz(|.nh|.pa|.ux|.zl|.ft|.oe|.zk)|pb(.hx|.xe|.am)|pn|qr|se|vg|ay|or|ng|pu|vr|va|rf|cy|cu|fr)$/i.exec('cntrf.ronl.pbz');
+ re8.exec('144631658.0.10.1231364074');
+ re8.exec('144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.2294274870215848400.1231364074.1231364074.1231364074.1');
+ re8.exec('4413241q3660');
+ re8.exec('SbeprqRkcvengvba=633669357391353591');
+ re8.exec(str39);
+ re8.exec(str40);
+ re8.exec('AFP_zp_kkk-gdzogv_80=4413241q3660');
+ re8.exec('FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7');
+ re8.exec('__hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1');
+ re8.exec('__hgzo=144631658.0.10.1231364074');
+ re8.exec('__hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7');
+ re34.exec(str36);
+ re34.exec(str37);
+ }
+ }
+ var re64 = /\b[a-z]/g;
+ var re65 = /^uggc:\/\//;
+ var re66 = /(?:^|\s+)qvfnoyrq(?:\s+|$)/;
+ var str41 = 'uggc://cebsvyr.zlfcnpr.pbz/Zbqhyrf/Nccyvpngvbaf/Cntrf/Pnainf.nfck';
+ function runBlock8() {
+ for (var i = 0; i < 7; i++) {
+ str1.match(/\d+/g);
+ 'nsgre'.replace(re64, '');
+ 'orsber'.replace(re64, '');
+ 'obggbz'.replace(re64, '');
+ 'ohvygva_jrngure.kzy'.replace(re65, '');
+ 'ohggba'.replace(re37, '');
+ 'ohggba'.replace(re18, '');
+ 'qngrgvzr.kzy'.replace(re65, '');
+ 'uggc://eff.paa.pbz/eff/paa_gbcfgbevrf.eff'.replace(re65, '');
+ 'vachg'.replace(re37, '');
+ 'vachg'.replace(re18, '');
+ 'vafvqr'.replace(re64, '');
+ 'cbvagre'.replace(re27, '');
+ 'cbfvgvba'.replace(/[A-Z]/g, '');
+ 'gbc'.replace(re27, '');
+ 'gbc'.replace(re64, '');
+ 'hy'.replace(re37, '');
+ 'hy'.replace(re18, '');
+ str26.replace(re37, '');
+ str26.replace(re18, '');
+ 'lbhghor_vtbbtyr/i2/lbhghor.kzy'.replace(re65, '');
+ 'm-vaqrk'.replace(re27, '');
+ /#([\w-]+)/.exec(str26);
+ re16.exec('urvtug');
+ re16.exec('znetvaGbc');
+ re16.exec('jvqgu');
+ re19.exec('gno0 svefg ba');
+ re19.exec('gno0 ba');
+ re19.exec('gno4 ynfg');
+ re19.exec('gno4');
+ re19.exec('gno5');
+ re19.exec('gno6');
+ re19.exec('gno7');
+ re19.exec('gno8');
+ /NqborNVE\/([^\s]*)/.exec(str0);
+ /NccyrJroXvg\/([^ ]*)/.exec(str0);
+ /XUGZY/gi.exec(str0);
+ /^(?:obql|ugzy)$/i.exec('YV');
+ re38.exec('ohggba');
+ re38.exec('vachg');
+ re38.exec('hy');
+ re38.exec(str26);
+ /^(\w+|\*)/.exec(str26);
+ /znp|jva|yvahk/i.exec('Jva32');
+ /eton?\([\d\s,]+\)/.exec('fgngvp');
+ }
+ for (var i = 0; i < 6; i++) {
+ ''.replace(/\r/g, '');
+ '/'.replace(re40, '');
+ '/'.replace(re10, '');
+ '/'.replace(re51, '');
+ '/'.replace(re52, '');
+ '/'.replace(re53, '');
+ '/'.replace(re39, '');
+ '/'.replace(re54, '');
+ 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/{0}?[NDO]&{1}&{2}&[NDR]'.replace(re63, '');
+ str41.replace(re12, '');
+ 'uggc://jjj.snprobbx.pbz/fepu.cuc'.replace(re23, '');
+ 'freivpr'.replace(re40, '');
+ 'freivpr'.replace(re41, '');
+ 'freivpr'.replace(re42, '');
+ 'freivpr'.replace(re43, '');
+ 'freivpr'.replace(re44, '');
+ 'freivpr'.replace(re45, '');
+ 'freivpr'.replace(re46, '');
+ 'freivpr'.replace(re47, '');
+ 'freivpr'.replace(re48, '');
+ /((ZFVR\s+([6-9]|\d\d)\.))/.exec(str0);
+ re66.exec('');
+ re50.exec('fryrpgrq');
+ re8.exec('8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn');
+ re8.exec('SbeprqRkcvengvba=633669340386893867');
+ re8.exec('VC=74.125.75.17');
+ re8.exec('FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn');
+ /Xbadhrebe|Fnsnev|XUGZY/.exec(str0);
+ re13.exec(str41);
+ re49.exec('unfsbphf');
+ }
+ }
+ var re67 = /zrah_byq/g;
+ var str42 = 'FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str43 = 'FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; __hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1; __hgzo=144631658.0.10.1231364380; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str44 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_vzntrf_wf&qg=1231364373088&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364373088&punaary=svz_zlfcnpr_hfre-ivrj-pbzzragf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Spbzzrag.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1158737789.1231364375&tn_fvq=1231364375&tn_uvq=415520832&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str45 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str46 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var re68 = /^([#.]?)((?:[\w\u0128-\uffff*_-]|\\.)*)/;
+ var re69 = /\{1\}/g;
+ var re70 = /\s+/;
+ var re71 = /(\$\{4\})|(\$4\b)/g;
+ var re72 = /(\$\{5\})|(\$5\b)/g;
+ var re73 = /\{2\}/g;
+ var re74 = /[^+>] [^+>]/;
+ var re75 = /\bucpyv\s*=\s*([^;]*)/i;
+ var re76 = /\bucuvqr\s*=\s*([^;]*)/i;
+ var re77 = /\bucfie\s*=\s*([^;]*)/i;
+ var re78 = /\bhfucjrn\s*=\s*([^;]*)/i;
+ var re79 = /\bmvc\s*=\s*([^;]*)/i;
+ var re80 = /^((?:[\w\u0128-\uffff*_-]|\\.)+)(#)((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+ var re81 = /^([>+~])\s*(\w*)/i;
+ var re82 = /^>\s*((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+ var re83 = /^[\s[]?shapgvba/;
+ var re84 = /v\/g.tvs#(.*)/i;
+ var str47 = '#Zbq-Vasb-Vasb-WninFpevcgUvag';
+ var str48 = ',n.svryqOgaPnapry';
+ var str49 = 'FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_kkk-gdzogv_80=4413241q3660';
+ var str50 = 'FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; AFP_zp_kkk-gdzogv_80=4413241q3660; AFP_zp_kkk-aowb_80=4413235p3660; __hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1; __hgzo=144631658.0.10.1231367708; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str51 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367691141&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367691141&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sjjj.zlfcnpr.pbz%2S&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=320757904.1231367694&tn_fvq=1231367694&tn_uvq=1758792003&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str52 = 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N38%3N42%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=1024k768&p=24&x=L&oj=994&ou=634&uc=A&{2}&[NDR]';
+ var str53 = 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq qbhoyr2 ps';
+ var str54 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str55 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str56 = 'ne;ng;nh;or;oe;pn;pu;py;pa;qr;qx;rf;sv;se;to;ux;vq;vr;va;vg;wc;xe;zk;zl;ay;ab;am;cu;cy;cg;eh;fr;ft;gu;ge;gj;mn;';
+ var str57 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886&GHVQ=1';
+ var str58 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886';
+ var str59 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1';
+ var str60 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF';
+ var str61 = 'uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/29/4RQP4969777N048NPS4RRR3PO2S7S.wct';
+ var str62 = 'uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/OQ/63NP9O94NS5OQP1249Q9S1ROP7NS3.wct';
+ var str63 = 'zbmvyyn/5.0 (jvaqbjf; h; jvaqbjf ag 5.1; ra-hf) nccyrjroxvg/528.9 (xugzy, yvxr trpxb) puebzr/2.0.157.0 fnsnev/528.9';
+ function runBlock9() {
+ for (var i = 0; i < 5; i++) {
+ str42.split(re32);
+ str43.split(re32);
+ 'svz_zlfcnpr_hfre-ivrj-pbzzragf,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+ str44.replace(re33, '');
+ 'zrah_arj zrah_arj_gbttyr zrah_gbttyr'.replace(re67, '');
+ 'zrah_byq zrah_byq_gbttyr zrah_gbttyr'.replace(re67, '');
+ re8.exec('102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98');
+ re8.exec('144631658.0.10.1231364380');
+ re8.exec('144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.3931862196947939300.1231364380.1231364380.1231364380.1');
+ re8.exec('441326q33660');
+ re8.exec('SbeprqRkcvengvba=633669341278771470');
+ re8.exec(str45);
+ re8.exec(str46);
+ re8.exec('AFP_zp_dfctwzssrwh-aowb_80=441326q33660');
+ re8.exec('FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98');
+ re8.exec('__hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1');
+ re8.exec('__hgzo=144631658.0.10.1231364380');
+ re8.exec('__hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ }
+ for (var i = 0; i < 4; i++) {
+ ' yvfg1'.replace(re14, '');
+ ' yvfg1'.replace(re15, '');
+ ' yvfg2'.replace(re14, '');
+ ' yvfg2'.replace(re15, '');
+ ' frneputebhc1'.replace(re14, '');
+ ' frneputebhc1'.replace(re15, '');
+ str47.replace(re68, '');
+ str47.replace(re18, '');
+ ''.replace(/&/g, '');
+ ''.replace(re35, '');
+ '(..-{0})(\|(\d+)|)'.replace(re63, '');
+ str48.replace(re18, '');
+ '//vzt.jro.qr/vij/FC/${cngu}/${anzr}/${inyhr}?gf=${abj}'.replace(re56, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/${anzr}/${inyhr}?gf=${abj}'.replace(/(\$\{anzr\})|(\$anzr\b)/g, '');
+ '<fcna pynff="urnq"><o>Jvaqbjf Yvir Ubgznvy</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re69, '');
+ '<fcna pynff="urnq"><o>{0}</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re63, '');
+ '<fcna pynff="fvtahc"><n uers=uggc://jjj.ubgznvy.pbz><o>{1}</o></n></fcna>'.replace(re69, '');
+ '<fcna pynff="fvtahc"><n uers={0}><o>{1}</o></n></fcna>'.replace(re63, '');
+ 'Vzntrf'.replace(re15, '');
+ 'ZFA'.replace(re15, '');
+ 'Zncf'.replace(re15, '');
+ 'Zbq-Vasb-Vasb-WninFpevcgUvag'.replace(re39, '');
+ 'Arjf'.replace(re15, '');
+ str49.split(re32);
+ str50.split(re32);
+ 'Ivqrb'.replace(re15, '');
+ 'Jro'.replace(re15, '');
+ 'n'.replace(re39, '');
+ 'nwnkFgneg'.split(re70);
+ 'nwnkFgbc'.split(re70);
+ 'ovaq'.replace(re14, '');
+ 'ovaq'.replace(re15, '');
+ 'oevatf lbh zber. Zber fcnpr (5TO), zber frphevgl, fgvyy serr.'.replace(re63, '');
+ 'puvyq p1 svefg qrpx'.replace(re14, '');
+ 'puvyq p1 svefg qrpx'.replace(re15, '');
+ 'puvyq p1 svefg qbhoyr2'.replace(re14, '');
+ 'puvyq p1 svefg qbhoyr2'.replace(re15, '');
+ 'puvyq p2 ynfg'.replace(re14, '');
+ 'puvyq p2 ynfg'.replace(re15, '');
+ 'puvyq p2'.replace(re14, '');
+ 'puvyq p2'.replace(re15, '');
+ 'puvyq p3'.replace(re14, '');
+ 'puvyq p3'.replace(re15, '');
+ 'puvyq p4 ynfg'.replace(re14, '');
+ 'puvyq p4 ynfg'.replace(re15, '');
+ 'pbclevtug'.replace(re14, '');
+ 'pbclevtug'.replace(re15, '');
+ 'qZFAZR_1'.replace(re14, '');
+ 'qZFAZR_1'.replace(re15, '');
+ 'qbhoyr2 ps'.replace(re14, '');
+ 'qbhoyr2 ps'.replace(re15, '');
+ 'qbhoyr2'.replace(re14, '');
+ 'qbhoyr2'.replace(re15, '');
+ 'uqy_arj'.replace(re14, '');
+ 'uqy_arj'.replace(re15, '');
+ 'uc_fubccvatobk'.replace(re30, '');
+ 'ugzy%2Rvq'.replace(re29, '');
+ 'ugzy%2Rvq'.replace(re30, '');
+ str51.replace(re33, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${5}'.replace(re72, '');
+ str52.replace(re73, '');
+ 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&{1}&{2}&[NDR]'.replace(re69, '');
+ 'vztZFSG'.replace(re14, '');
+ 'vztZFSG'.replace(re15, '');
+ 'zfasbbg1 ps'.replace(re14, '');
+ 'zfasbbg1 ps'.replace(re15, '');
+ str53.replace(re14, '');
+ str53.replace(re15, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq'.replace(re15, '');
+ 'cevznel'.replace(re14, '');
+ 'cevznel'.replace(re15, '');
+ 'erpgnatyr'.replace(re30, '');
+ 'frpbaqnel'.replace(re14, '');
+ 'frpbaqnel'.replace(re15, '');
+ 'haybnq'.split(re70);
+ '{0}{1}1'.replace(re63, '');
+ '|{1}1'.replace(re69, '');
+ /(..-HF)(\|(\d+)|)/i.exec('xb-xe,ra-va,gu-gu');
+ re4.exec('/ZlFcnprNccf/NccPnainf,45000012');
+ re8.exec('144631658.0.10.1231367708');
+ re8.exec('144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.2770915348920628700.1231367708.1231367708.1231367708.1');
+ re8.exec('4413235p3660');
+ re8.exec('441327q73660');
+ re8.exec('9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473');
+ re8.exec('SbeprqRkcvengvba=633669350559478880');
+ re8.exec(str54);
+ re8.exec(str55);
+ re8.exec('AFP_zp_dfctwzs-aowb_80=441327q73660');
+ re8.exec('AFP_zp_kkk-aowb_80=4413235p3660');
+ re8.exec('FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473');
+ re8.exec('__hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1');
+ re8.exec('__hgzo=144631658.0.10.1231367708');
+ re8.exec('__hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str49);
+ re34.exec(str50);
+ /ZFVR\s+5[.]01/.exec(str0);
+ /HF(?=;)/i.exec(str56);
+ re74.exec(str47);
+ re28.exec('svefg npgvir svefgNpgvir');
+ re28.exec('ynfg');
+ /\bp:(..)/i.exec('m:94043|yn:37.4154|yb:-122.0585|p:HF');
+ re75.exec(str57);
+ re75.exec(str58);
+ re76.exec(str57);
+ re76.exec(str58);
+ re77.exec(str57);
+ re77.exec(str58);
+ /\bhfucce\s*=\s*([^;]*)/i.exec(str59);
+ re78.exec(str57);
+ re78.exec(str58);
+ /\bjci\s*=\s*([^;]*)/i.exec(str59);
+ re79.exec(str58);
+ re79.exec(str60);
+ re79.exec(str59);
+ /\|p:([a-z]{2})/i.exec('m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1');
+ re80.exec(str47);
+ re61.exec('cebgbglcr.wf');
+ re68.exec(str47);
+ re81.exec(str47);
+ re82.exec(str47);
+ /^Fubpxjnir Synfu (\d)/.exec(str1);
+ /^Fubpxjnir Synfu (\d+)/.exec(str1);
+ re83.exec('[bowrpg tybony]');
+ re62.exec(str47);
+ re84.exec(str61);
+ re84.exec(str62);
+ /jroxvg/.exec(str63);
+ }
+ }
+ var re85 = /eaq_zbqobkva/;
+ var str64 = '1231365729213';
+ var str65 = '74.125.75.3-1057165600.29978900';
+ var str66 = '74.125.75.3-1057165600.29978900.1231365730214';
+ var str67 = 'Frnepu%20Zvpebfbsg.pbz';
+ var str68 = 'FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str69 = 'FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; __hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1; __hgzo=144631658.0.10.1231365779; __hgzp=144631658; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str70 = 'I=3%26THVQ=757q3ss871q44o7o805n8113n5p72q52';
+ var str71 = 'I=3&THVQ=757q3ss871q44o7o805n8113n5p72q52';
+ var str72 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365765292&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365765292&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sohyyrgvaf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1579793869.1231365768&tn_fvq=1231365768&tn_uvq=2056210897&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str73 = 'frnepu.zvpebfbsg.pbz';
+ var str74 = 'frnepu.zvpebfbsg.pbz/';
+ var str75 = 'ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str76 = 'ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ function runBlock10() {
+ for (var i = 0; i < 3; i++) {
+ '%3Szxg=ra-HF'.replace(re39, '');
+ '-8'.replace(re40, '');
+ '-8'.replace(re10, '');
+ '-8'.replace(re51, '');
+ '-8'.replace(re52, '');
+ '-8'.replace(re53, '');
+ '-8'.replace(re39, '');
+ '-8'.replace(re54, '');
+ '1.5'.replace(re40, '');
+ '1.5'.replace(re10, '');
+ '1.5'.replace(re51, '');
+ '1.5'.replace(re52, '');
+ '1.5'.replace(re53, '');
+ '1.5'.replace(re39, '');
+ '1.5'.replace(re54, '');
+ '1024k768'.replace(re40, '');
+ '1024k768'.replace(re10, '');
+ '1024k768'.replace(re51, '');
+ '1024k768'.replace(re52, '');
+ '1024k768'.replace(re53, '');
+ '1024k768'.replace(re39, '');
+ '1024k768'.replace(re54, '');
+ str64.replace(re40, '');
+ str64.replace(re10, '');
+ str64.replace(re51, '');
+ str64.replace(re52, '');
+ str64.replace(re53, '');
+ str64.replace(re39, '');
+ str64.replace(re54, '');
+ '14'.replace(re40, '');
+ '14'.replace(re10, '');
+ '14'.replace(re51, '');
+ '14'.replace(re52, '');
+ '14'.replace(re53, '');
+ '14'.replace(re39, '');
+ '14'.replace(re54, '');
+ '24'.replace(re40, '');
+ '24'.replace(re10, '');
+ '24'.replace(re51, '');
+ '24'.replace(re52, '');
+ '24'.replace(re53, '');
+ '24'.replace(re39, '');
+ '24'.replace(re54, '');
+ str65.replace(re40, '');
+ str65.replace(re10, '');
+ str65.replace(re51, '');
+ str65.replace(re52, '');
+ str65.replace(re53, '');
+ str65.replace(re39, '');
+ str65.replace(re54, '');
+ str66.replace(re40, '');
+ str66.replace(re10, '');
+ str66.replace(re51, '');
+ str66.replace(re52, '');
+ str66.replace(re53, '');
+ str66.replace(re39, '');
+ str66.replace(re54, '');
+ '9.0'.replace(re40, '');
+ '9.0'.replace(re10, '');
+ '9.0'.replace(re51, '');
+ '9.0'.replace(re52, '');
+ '9.0'.replace(re53, '');
+ '9.0'.replace(re39, '');
+ '9.0'.replace(re54, '');
+ '994k634'.replace(re40, '');
+ '994k634'.replace(re10, '');
+ '994k634'.replace(re51, '');
+ '994k634'.replace(re52, '');
+ '994k634'.replace(re53, '');
+ '994k634'.replace(re39, '');
+ '994k634'.replace(re54, '');
+ '?zxg=ra-HF'.replace(re40, '');
+ '?zxg=ra-HF'.replace(re10, '');
+ '?zxg=ra-HF'.replace(re51, '');
+ '?zxg=ra-HF'.replace(re52, '');
+ '?zxg=ra-HF'.replace(re53, '');
+ '?zxg=ra-HF'.replace(re54, '');
+ 'PAA.pbz'.replace(re25, '');
+ 'PAA.pbz'.replace(re12, '');
+ 'PAA.pbz'.replace(re39, '');
+ 'Qngr & Gvzr'.replace(re25, '');
+ 'Qngr & Gvzr'.replace(re12, '');
+ 'Qngr & Gvzr'.replace(re39, '');
+ 'Frnepu Zvpebfbsg.pbz'.replace(re40, '');
+ 'Frnepu Zvpebfbsg.pbz'.replace(re54, '');
+ str67.replace(re10, '');
+ str67.replace(re51, '');
+ str67.replace(re52, '');
+ str67.replace(re53, '');
+ str67.replace(re39, '');
+ str68.split(re32);
+ str69.split(re32);
+ str70.replace(re52, '');
+ str70.replace(re53, '');
+ str70.replace(re39, '');
+ str71.replace(re40, '');
+ str71.replace(re10, '');
+ str71.replace(re51, '');
+ str71.replace(re54, '');
+ 'Jrngure'.replace(re25, '');
+ 'Jrngure'.replace(re12, '');
+ 'Jrngure'.replace(re39, '');
+ 'LbhGhor'.replace(re25, '');
+ 'LbhGhor'.replace(re12, '');
+ 'LbhGhor'.replace(re39, '');
+ str72.replace(re33, '');
+ 'erzbgr_vsenzr_1'.replace(/^erzbgr_vsenzr_/, '');
+ str73.replace(re40, '');
+ str73.replace(re10, '');
+ str73.replace(re51, '');
+ str73.replace(re52, '');
+ str73.replace(re53, '');
+ str73.replace(re39, '');
+ str73.replace(re54, '');
+ str74.replace(re40, '');
+ str74.replace(re10, '');
+ str74.replace(re51, '');
+ str74.replace(re52, '');
+ str74.replace(re53, '');
+ str74.replace(re39, '');
+ str74.replace(re54, '');
+ 'lhv-h'.replace(/\-/g, '');
+ re9.exec('p');
+ re9.exec('qz p');
+ re9.exec('zbqynory');
+ re9.exec('lhv-h svefg');
+ re8.exec('144631658.0.10.1231365779');
+ re8.exec('144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.1877536177953918500.1231365779.1231365779.1231365779.1');
+ re8.exec(str75);
+ re8.exec(str76);
+ re8.exec('__hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1');
+ re8.exec('__hgzo=144631658.0.10.1231365779');
+ re8.exec('__hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str68);
+ re34.exec(str69);
+ /^$/.exec('');
+ re31.exec('qr');
+ /^znk\d+$/.exec('');
+ /^zva\d+$/.exec('');
+ /^erfgber$/.exec('');
+ re85.exec('zbqobkva zbqobk_abcnqqvat ');
+ re85.exec('zbqgvgyr');
+ re85.exec('eaq_zbqobkva ');
+ re85.exec('eaq_zbqgvgyr ');
+ /frpgvba\d+_pbagragf/.exec('obggbz_ani');
+ }
+ }
+ var re86 = /;\s*/;
+ var re87 = /(\$\{inyhr\})|(\$inyhr\b)/g;
+ var re88 = /(\$\{abj\})|(\$abj\b)/g;
+ var re89 = /\s+$/;
+ var re90 = /^\s+/;
+ var re91 = /(\\\"|\x00-|\x1f|\x7f-|\x9f|\u00ad|\u0600-|\u0604|\u070f|\u17b4|\u17b5|\u200c-|\u200f|\u2028-|\u202f|\u2060-|\u206f|\ufeff|\ufff0-|\uffff)/g;
+ var re92 = /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/;
+ var re93 = /^([:.#]*)((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+ var re94 = /^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/;
+ var str77 = '#fubhgobk .pybfr';
+ var str78 = 'FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzssrwh-aowb_80=441326q33660';
+ var str79 = 'FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; AFP_zp_dfctwzssrwh-aowb_80=441326q33660; __hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1; __hgzo=144631658.0.10.1231365869; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str80 = 'FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=441327q73660';
+ var str81 = 'FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; AFP_zp_dfctwzs-aowb_80=441327q73660; __hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1; __hgzo=144631658.0.10.1231367054; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str82 = '[glcr=fhozvg]';
+ var str83 = 'n.svryqOga,n.svryqOgaPnapry';
+ var str84 = 'n.svryqOgaPnapry';
+ var str85 = 'oyvpxchaxg';
+ var str86 = 'qvi.bow-nppbeqvba qg';
+ var str87 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_nccf_wf&qg=1231367052227&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367052227&punaary=svz_zlfcnpr_nccf-pnainf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2SZbqhyrf%2SNccyvpngvbaf%2SCntrf%2SPnainf.nfck&nq_glcr=grkg&rvq=6083027&rn=0&sez=1&tn_ivq=716357910.1231367056&tn_fvq=1231367056&tn_uvq=1387206491&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str88 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365851658&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365851658&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyrrqvg.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1979828129.1231365855&tn_fvq=1231365855&tn_uvq=2085229649&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str89 = 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N12%3N47%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=0k0&p=43835816&x=A&oj=994&ou=634&uc=A&{2}&[NDR]';
+ var str90 = 'zrgn[anzr=nwnkHey]';
+ var str91 = 'anpuevpugra';
+ var str92 = 'b oS={\'oT\':1.1};x $8n(B){z(B!=o9)};x $S(B){O(!$8n(B))z A;O(B.4L)z\'T\';b S=7t B;O(S==\'2P\'&&B.p4){23(B.7f){12 1:z\'T\';12 3:z/\S/.2g(B.8M)?\'ox\':\'oh\'}}O(S==\'2P\'||S==\'x\'){23(B.nE){12 2V:z\'1O\';12 7I:z\'5a\';12 18:z\'4B\'}O(7t B.I==\'4F\'){O(B.3u)z\'pG\';O(B.8e)z\'1p\'}}z S};x $2p(){b 4E={};Z(b v=0;v<1p.I;v++){Z(b X 1o 1p[v]){b nc=1p[v][X];b 6E=4E[X];O(6E&&$S(nc)==\'2P\'&&$S(6E)==\'2P\')4E[X]=$2p(6E,nc);17 4E[X]=nc}}z 4E};b $E=7p.E=x(){b 1d=1p;O(!1d[1])1d=[p,1d[0]];Z(b X 1o 1d[1])1d[0][X]=1d[1][X];z 1d[0]};b $4D=7p.pJ=x(){Z(b v=0,y=1p.I;v<y;v++){1p[v].E=x(1J){Z(b 1I 1o 1J){O(!p.1Y[1I])p.1Y[1I]=1J[1I];O(!p[1I])p[1I]=$4D.6C(1I)}}}};$4D.6C=x(1I){z x(L){z p.1Y[1I].3H(L,2V.1Y.nV.1F(1p,1))}};$4D(7F,2V,6J,nb);b 3l=x(B){B=B||{};B.E=$E;z B};b pK=Y 3l(H);b pZ=Y 3l(C);C.6f=C.35(\'6f\')[0];x $2O(B){z!!(B||B===0)};x $5S(B,n8){z $8n(B)?B:n8};x $7K(3c,1m){z 1q.na(1q.7K()*(1m-3c+1)+3c)};x $3N(){z Y 97().os()};x $4M(1U){pv(1U);pa(1U);z 1S};H.43=!!(C.5Z);O(H.nB)H.31=H[H.7q?\'py\':\'nL\']=1r;17 O(C.9N&&!C.om&&!oy.oZ)H.pF=H.4Z=H[H.43?\'pt\':\'65\']=1r;17 O(C.po!=1S)H.7J=1r;O(7t 5B==\'o9\'){b 5B=x(){};O(H.4Z)C.nd("pW");5B.1Y=(H.4Z)?H["[[oN.1Y]]"]:{}}5B.1Y.4L=1r;O(H.nL)5s{C.oX("pp",A,1r)}4K(r){};b 18=x(1X){b 63=x(){z(1p[0]!==1S&&p.1w&&$S(p.1w)==\'x\')?p.1w.3H(p,1p):p};$E(63,p);63.1Y=1X;63.nE=18;z 63};18.1z=x(){};18.1Y={E:x(1X){b 7x=Y p(1S);Z(b X 1o 1X){b nC=7x[X];7x[X]=18.nY(nC,1X[X])}z Y 18(7x)},3d:x(){Z(b v=0,y=1p.I;v<y;v++)$E(p.1Y,1p[v])}};18.nY=x(2b,2n){O(2b&&2b!=2n){b S=$S(2n);O(S!=$S(2b))z 2n;23(S){12\'x\':b 7R=x(){p.1e=1p.8e.1e;z 2n.3H(p,1p)};7R.1e=2b;z 7R;12\'2P\':z $2p(2b,2n)}}z 2n};b 8o=Y 18({oQ:x(J){p.4w=p.4w||[];p.4w.1x(J);z p},7g:x(){O(p.4w&&p.4w.I)p.4w.9J().2x(10,p)},oP:x(){p.4w=[]}});b 2d=Y 18({1V:x(S,J){O(J!=18.1z){p.$19=p.$19||{};p.$19[S]=p.$19[S]||[];p.$19[S].5j(J)}z p},1v:x(S,1d,2x){O(p.$19&&p.$19[S]){p.$19[S].1b(x(J){J.3n({\'L\':p,\'2x\':2x,\'1p\':1d})()},p)}z p},3M:x(S,J){O(p.$19&&p.$19[S])p.$19[S].2U(J);z p}});b 4v=Y 18({2H:x(){p.P=$2p.3H(1S,[p.P].E(1p));O(!p.1V)z p;Z(b 3O 1o p.P){O($S(p.P[3O]==\'x\')&&3O.2g(/^5P[N-M]/))p.1V(3O,p.P[3O])}z p}});2V.E({7y:x(J,L){Z(b v=0,w=p.I;v<w;v++)J.1F(L,p[v],v,p)},3s:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))54.1x(p[v])}z 54},2X:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++)54[v]=J.1F(L,p[v],v,p);z 54},4i:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(!J.1F(L,p[v],v,p))z A}z 1r},ob:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))z 1r}z A},3F:x(3u,15){b 3A=p.I;Z(b v=(15<0)?1q.1m(0,3A+15):15||0;v<3A;v++){O(p[v]===3u)z v}z-1},8z:x(1u,I){1u=1u||0;O(1u<0)1u=p.I+1u;I=I||(p.I-1u);b 89=[];Z(b v=0;v<I;v++)89[v]=p[1u++];z 89},2U:x(3u){b v=0;b 3A=p.I;6L(v<3A){O(p[v]===3u){p.6l(v,1);3A--}17{v++}}z p},1y:x(3u,15){z p.3F(3u,15)!=-1},oz:x(1C){b B={},I=1q.3c(p.I,1C.I);Z(b v=0;v<I;v++)B[1C[v]]=p[v];z B},E:x(1O){Z(b v=0,w=1O.I;v<w;v++)p.1x(1O[v]);z p},2p:x(1O){Z(b v=0,y=1O.I;v<y;v++)p.5j(1O[v]);z p},5j:x(3u){O(!p.1y(3u))p.1x(3u);z p},oc:x(){z p[$7K(0,p.I-1)]||A},7L:x(){z p[p.I-1]||A}});2V.1Y.1b=2V.1Y.7y;2V.1Y.2g=2V.1Y.1y;x $N(1O){z 2V.8z(1O)};x $1b(3J,J,L){O(3J&&7t 3J.I==\'4F\'&&$S(3J)!=\'2P\')2V.7y(3J,J,L);17 Z(b 1j 1o 3J)J.1F(L||3J,3J[1j],1j)};6J.E({2g:x(6b,2F){z(($S(6b)==\'2R\')?Y 7I(6b,2F):6b).2g(p)},3p:x(){z 5K(p,10)},o4:x(){z 69(p)},7A:x(){z p.3y(/-\D/t,x(2G){z 2G.7G(1).nW()})},9b:x(){z p.3y(/\w[N-M]/t,x(2G){z(2G.7G(0)+\'-\'+2G.7G(1).5O())})},8V:x(){z p.3y(/\b[n-m]/t,x(2G){z 2G.nW()})},5L:x(){z p.3y(/^\s+|\s+$/t,\'\')},7j:x(){z p.3y(/\s{2,}/t,\' \').5L()},5V:x(1O){b 1i=p.2G(/\d{1,3}/t);z(1i)?1i.5V(1O):A},5U:x(1O){b 3P=p.2G(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);z(3P)?3P.nV(1).5U(1O):A},1y:x(2R,f){z(f)?(f+p+f).3F(f+2R+f)>-1:p.3F(2R)>-1},nX:x(){z p.3y(/([.*+?^${}()|[\]\/\\])/t,\'\\$1\')}});2V.E({5V:x(1O){O(p.I<3)z A;O(p.I==4&&p[3]==0&&!1O)z\'p5\';b 3P=[];Z(b v=0;v<3;v++){b 52=(p[v]-0).4h(16);3P.1x((52.I==1)?\'0\'+52:52)}z 1O?3P:\'#\'+3P.2u(\'\')},5U:x(1O){O(p.I!=3)z A;b 1i=[];Z(b v=0;v<3;v++){1i.1x(5K((p[v].I==1)?p[v]+p[v]:p[v],16))}z 1O?1i:\'1i(\'+1i.2u(\',\')+\')\'}});7F.E({3n:x(P){b J=p;P=$2p({\'L\':J,\'V\':A,\'1p\':1S,\'2x\':A,\'4s\':A,\'6W\':A},P);O($2O(P.1p)&&$S(P.1p)!=\'1O\')P.1p=[P.1p];z x(V){b 1d;O(P.V){V=V||H.V;1d=[(P.V===1r)?V:Y P.V(V)];O(P.1p)1d.E(P.1p)}17 1d=P.1p||1p;b 3C=x(){z J.3H($5S(P';
+ var str93 = 'hagreunyghat';
+ var str94 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str95 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str96 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str97 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str98 = 'shapgvba (){Cuk.Nccyvpngvba.Frghc.Pber();Cuk.Nccyvpngvba.Frghc.Nwnk();Cuk.Nccyvpngvba.Frghc.Synfu();Cuk.Nccyvpngvba.Frghc.Zbqhyrf()}';
+ function runBlock11() {
+ for (var i = 0; i < 2; i++) {
+ ' .pybfr'.replace(re18, '');
+ ' n.svryqOgaPnapry'.replace(re18, '');
+ ' qg'.replace(re18, '');
+ str77.replace(re68, '');
+ str77.replace(re18, '');
+ ''.replace(re39, '');
+ ''.replace(/^/, '');
+ ''.split(re86);
+ '*'.replace(re39, '');
+ '*'.replace(re68, '');
+ '*'.replace(re18, '');
+ '.pybfr'.replace(re68, '');
+ '.pybfr'.replace(re18, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/fperra/${inyhr}?gf=${abj}'.replace(re87, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/fperra/1024?gf=${abj}'.replace(re88, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/${inyhr}?gf=${abj}'.replace(re87, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/992/608?gf=${abj}'.replace(re88, '');
+ '300k120'.replace(re30, '');
+ '300k250'.replace(re30, '');
+ '310k120'.replace(re30, '');
+ '310k170'.replace(re30, '');
+ '310k250'.replace(re30, '');
+ '9.0 e115'.replace(/^.*\.(.*)\s.*$/, '');
+ 'Nppbeqvba'.replace(re2, '');
+ 'Nxghryy\x0a'.replace(re89, '');
+ 'Nxghryy\x0a'.replace(re90, '');
+ 'Nccyvpngvba'.replace(re2, '');
+ 'Oyvpxchaxg\x0a'.replace(re89, '');
+ 'Oyvpxchaxg\x0a'.replace(re90, '');
+ 'Svanamra\x0a'.replace(re89, '');
+ 'Svanamra\x0a'.replace(re90, '');
+ 'Tnzrf\x0a'.replace(re89, '');
+ 'Tnzrf\x0a'.replace(re90, '');
+ 'Ubebfxbc\x0a'.replace(re89, '');
+ 'Ubebfxbc\x0a'.replace(re90, '');
+ 'Xvab\x0a'.replace(re89, '');
+ 'Xvab\x0a'.replace(re90, '');
+ 'Zbqhyrf'.replace(re2, '');
+ 'Zhfvx\x0a'.replace(re89, '');
+ 'Zhfvx\x0a'.replace(re90, '');
+ 'Anpuevpugra\x0a'.replace(re89, '');
+ 'Anpuevpugra\x0a'.replace(re90, '');
+ 'Cuk'.replace(re2, '');
+ 'ErdhrfgSvavfu'.split(re70);
+ 'ErdhrfgSvavfu.NWNK.Cuk'.split(re70);
+ 'Ebhgr\x0a'.replace(re89, '');
+ 'Ebhgr\x0a'.replace(re90, '');
+ str78.split(re32);
+ str79.split(re32);
+ str80.split(re32);
+ str81.split(re32);
+ 'Fcbeg\x0a'.replace(re89, '');
+ 'Fcbeg\x0a'.replace(re90, '');
+ 'GI-Fcbg\x0a'.replace(re89, '');
+ 'GI-Fcbg\x0a'.replace(re90, '');
+ 'Gbhe\x0a'.replace(re89, '');
+ 'Gbhe\x0a'.replace(re90, '');
+ 'Hagreunyghat\x0a'.replace(re89, '');
+ 'Hagreunyghat\x0a'.replace(re90, '');
+ 'Ivqrb\x0a'.replace(re89, '');
+ 'Ivqrb\x0a'.replace(re90, '');
+ 'Jrggre\x0a'.replace(re89, '');
+ 'Jrggre\x0a'.replace(re90, '');
+ str82.replace(re68, '');
+ str82.replace(re18, '');
+ str83.replace(re68, '');
+ str83.replace(re18, '');
+ str84.replace(re68, '');
+ str84.replace(re18, '');
+ 'nqiFreivprObk'.replace(re30, '');
+ 'nqiFubccvatObk'.replace(re30, '');
+ 'nwnk'.replace(re39, '');
+ 'nxghryy'.replace(re40, '');
+ 'nxghryy'.replace(re41, '');
+ 'nxghryy'.replace(re42, '');
+ 'nxghryy'.replace(re43, '');
+ 'nxghryy'.replace(re44, '');
+ 'nxghryy'.replace(re45, '');
+ 'nxghryy'.replace(re46, '');
+ 'nxghryy'.replace(re47, '');
+ 'nxghryy'.replace(re48, '');
+ str85.replace(re40, '');
+ str85.replace(re41, '');
+ str85.replace(re42, '');
+ str85.replace(re43, '');
+ str85.replace(re44, '');
+ str85.replace(re45, '');
+ str85.replace(re46, '');
+ str85.replace(re47, '');
+ str85.replace(re48, '');
+ 'pngrtbel'.replace(re29, '');
+ 'pngrtbel'.replace(re30, '');
+ 'pybfr'.replace(re39, '');
+ 'qvi'.replace(re39, '');
+ str86.replace(re68, '');
+ str86.replace(re18, '');
+ 'qg'.replace(re39, '');
+ 'qg'.replace(re68, '');
+ 'qg'.replace(re18, '');
+ 'rzorq'.replace(re39, '');
+ 'rzorq'.replace(re68, '');
+ 'rzorq'.replace(re18, '');
+ 'svryqOga'.replace(re39, '');
+ 'svryqOgaPnapry'.replace(re39, '');
+ 'svz_zlfcnpr_nccf-pnainf,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+ 'svanamra'.replace(re40, '');
+ 'svanamra'.replace(re41, '');
+ 'svanamra'.replace(re42, '');
+ 'svanamra'.replace(re43, '');
+ 'svanamra'.replace(re44, '');
+ 'svanamra'.replace(re45, '');
+ 'svanamra'.replace(re46, '');
+ 'svanamra'.replace(re47, '');
+ 'svanamra'.replace(re48, '');
+ 'sbphf'.split(re70);
+ 'sbphf.gno sbphfva.gno'.split(re70);
+ 'sbphfva'.split(re70);
+ 'sbez'.replace(re39, '');
+ 'sbez.nwnk'.replace(re68, '');
+ 'sbez.nwnk'.replace(re18, '');
+ 'tnzrf'.replace(re40, '');
+ 'tnzrf'.replace(re41, '');
+ 'tnzrf'.replace(re42, '');
+ 'tnzrf'.replace(re43, '');
+ 'tnzrf'.replace(re44, '');
+ 'tnzrf'.replace(re45, '');
+ 'tnzrf'.replace(re46, '');
+ 'tnzrf'.replace(re47, '');
+ 'tnzrf'.replace(re48, '');
+ 'ubzrcntr'.replace(re30, '');
+ 'ubebfxbc'.replace(re40, '');
+ 'ubebfxbc'.replace(re41, '');
+ 'ubebfxbc'.replace(re42, '');
+ 'ubebfxbc'.replace(re43, '');
+ 'ubebfxbc'.replace(re44, '');
+ 'ubebfxbc'.replace(re45, '');
+ 'ubebfxbc'.replace(re46, '');
+ 'ubebfxbc'.replace(re47, '');
+ 'ubebfxbc'.replace(re48, '');
+ 'uc_cebzbobk_ugzy%2Puc_cebzbobk_vzt'.replace(re30, '');
+ 'uc_erpgnatyr'.replace(re30, '');
+ str87.replace(re33, '');
+ str88.replace(re33, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${5}'.replace(re72, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${5}'.replace(re72, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${5}'.replace(re72, '');
+ str89.replace(re73, '');
+ 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&{1}&{2}&[NDR]'.replace(re69, '');
+ str6.replace(re23, '');
+ 'xvab'.replace(re40, '');
+ 'xvab'.replace(re41, '');
+ 'xvab'.replace(re42, '');
+ 'xvab'.replace(re43, '');
+ 'xvab'.replace(re44, '');
+ 'xvab'.replace(re45, '');
+ 'xvab'.replace(re46, '');
+ 'xvab'.replace(re47, '');
+ 'xvab'.replace(re48, '');
+ 'ybnq'.split(re70);
+ 'zrqvnzbqgno lhv-anifrg lhv-anifrg-gbc'.replace(re18, '');
+ 'zrgn'.replace(re39, '');
+ str90.replace(re68, '');
+ str90.replace(re18, '');
+ 'zbhfrzbir'.split(re70);
+ 'zbhfrzbir.gno'.split(re70);
+ str63.replace(/^.*jroxvg\/(\d+(\.\d+)?).*$/, '');
+ 'zhfvx'.replace(re40, '');
+ 'zhfvx'.replace(re41, '');
+ 'zhfvx'.replace(re42, '');
+ 'zhfvx'.replace(re43, '');
+ 'zhfvx'.replace(re44, '');
+ 'zhfvx'.replace(re45, '');
+ 'zhfvx'.replace(re46, '');
+ 'zhfvx'.replace(re47, '');
+ 'zhfvx'.replace(re48, '');
+ 'zlfcnpr_nccf_pnainf'.replace(re52, '');
+ str91.replace(re40, '');
+ str91.replace(re41, '');
+ str91.replace(re42, '');
+ str91.replace(re43, '');
+ str91.replace(re44, '');
+ str91.replace(re45, '');
+ str91.replace(re46, '');
+ str91.replace(re47, '');
+ str91.replace(re48, '');
+ 'anzr'.replace(re39, '');
+ str92.replace(/\b\w+\b/g, '');
+ 'bow-nppbeqvba'.replace(re39, '');
+ 'bowrpg'.replace(re39, '');
+ 'bowrpg'.replace(re68, '');
+ 'bowrpg'.replace(re18, '');
+ 'cnenzf%2Rfglyrf'.replace(re29, '');
+ 'cnenzf%2Rfglyrf'.replace(re30, '');
+ 'cbchc'.replace(re30, '');
+ 'ebhgr'.replace(re40, '');
+ 'ebhgr'.replace(re41, '');
+ 'ebhgr'.replace(re42, '');
+ 'ebhgr'.replace(re43, '');
+ 'ebhgr'.replace(re44, '');
+ 'ebhgr'.replace(re45, '');
+ 'ebhgr'.replace(re46, '');
+ 'ebhgr'.replace(re47, '');
+ 'ebhgr'.replace(re48, '');
+ 'freivprobk_uc'.replace(re30, '');
+ 'fubccvatobk_uc'.replace(re30, '');
+ 'fubhgobk'.replace(re39, '');
+ 'fcbeg'.replace(re40, '');
+ 'fcbeg'.replace(re41, '');
+ 'fcbeg'.replace(re42, '');
+ 'fcbeg'.replace(re43, '');
+ 'fcbeg'.replace(re44, '');
+ 'fcbeg'.replace(re45, '');
+ 'fcbeg'.replace(re46, '');
+ 'fcbeg'.replace(re47, '');
+ 'fcbeg'.replace(re48, '');
+ 'gbhe'.replace(re40, '');
+ 'gbhe'.replace(re41, '');
+ 'gbhe'.replace(re42, '');
+ 'gbhe'.replace(re43, '');
+ 'gbhe'.replace(re44, '');
+ 'gbhe'.replace(re45, '');
+ 'gbhe'.replace(re46, '');
+ 'gbhe'.replace(re47, '');
+ 'gbhe'.replace(re48, '');
+ 'gi-fcbg'.replace(re40, '');
+ 'gi-fcbg'.replace(re41, '');
+ 'gi-fcbg'.replace(re42, '');
+ 'gi-fcbg'.replace(re43, '');
+ 'gi-fcbg'.replace(re44, '');
+ 'gi-fcbg'.replace(re45, '');
+ 'gi-fcbg'.replace(re46, '');
+ 'gi-fcbg'.replace(re47, '');
+ 'gi-fcbg'.replace(re48, '');
+ 'glcr'.replace(re39, '');
+ 'haqrsvarq'.replace(/\//g, '');
+ str93.replace(re40, '');
+ str93.replace(re41, '');
+ str93.replace(re42, '');
+ str93.replace(re43, '');
+ str93.replace(re44, '');
+ str93.replace(re45, '');
+ str93.replace(re46, '');
+ str93.replace(re47, '');
+ str93.replace(re48, '');
+ 'ivqrb'.replace(re40, '');
+ 'ivqrb'.replace(re41, '');
+ 'ivqrb'.replace(re42, '');
+ 'ivqrb'.replace(re43, '');
+ 'ivqrb'.replace(re44, '');
+ 'ivqrb'.replace(re45, '');
+ 'ivqrb'.replace(re46, '');
+ 'ivqrb'.replace(re47, '');
+ 'ivqrb'.replace(re48, '');
+ 'ivfvgf=1'.split(re86);
+ 'jrggre'.replace(re40, '');
+ 'jrggre'.replace(re41, '');
+ 'jrggre'.replace(re42, '');
+ 'jrggre'.replace(re43, '');
+ 'jrggre'.replace(re44, '');
+ 'jrggre'.replace(re45, '');
+ 'jrggre'.replace(re46, '');
+ 'jrggre'.replace(re47, '');
+ 'jrggre'.replace(re48, '');
+ /#[a-z0-9]+$/i.exec('uggc://jjj.fpuhryreim.arg/Qrsnhyg');
+ re66.exec('fryrpgrq');
+ /(?:^|\s+)lhv-ani(?:\s+|$)/.exec('sff lhv-ani');
+ /(?:^|\s+)lhv-anifrg(?:\s+|$)/.exec('zrqvnzbqgno lhv-anifrg');
+ /(?:^|\s+)lhv-anifrg-gbc(?:\s+|$)/.exec('zrqvnzbqgno lhv-anifrg');
+ re91.exec('GnoThvq');
+ re91.exec('thvq');
+ /(pbzcngvoyr|jroxvg)/.exec(str63);
+ /.+(?:ei|vg|en|vr)[\/: ]([\d.]+)/.exec(str63);
+ re8.exec('144631658.0.10.1231365869');
+ re8.exec('144631658.0.10.1231367054');
+ re8.exec('144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.1670816052019209000.1231365869.1231365869.1231365869.1');
+ re8.exec('144631658.1796080716621419500.1231367054.1231367054.1231367054.1');
+ re8.exec(str94);
+ re8.exec(str95);
+ re8.exec(str96);
+ re8.exec(str97);
+ re8.exec('__hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1');
+ re8.exec('__hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1');
+ re8.exec('__hgzo=144631658.0.10.1231365869');
+ re8.exec('__hgzo=144631658.0.10.1231367054');
+ re8.exec('__hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('__hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str78);
+ re34.exec(str79);
+ re34.exec(str81);
+ re74.exec(str77);
+ re74.exec('*');
+ re74.exec(str82);
+ re74.exec(str83);
+ re74.exec(str86);
+ re74.exec('rzorq');
+ re74.exec('sbez.nwnk');
+ re74.exec(str90);
+ re74.exec('bowrpg');
+ /\/onfr.wf(\?.+)?$/.exec('/uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf');
+ re28.exec('uvag ynfgUvag ynfg');
+ re75.exec('');
+ re76.exec('');
+ re77.exec('');
+ re78.exec('');
+ re80.exec(str77);
+ re80.exec('*');
+ re80.exec('.pybfr');
+ re80.exec(str82);
+ re80.exec(str83);
+ re80.exec(str84);
+ re80.exec(str86);
+ re80.exec('qg');
+ re80.exec('rzorq');
+ re80.exec('sbez.nwnk');
+ re80.exec(str90);
+ re80.exec('bowrpg');
+ re61.exec('qlaYvo.wf');
+ re61.exec('rssrpgYvo.wf');
+ re61.exec('uggc://jjj.tzk.arg/qr/?fgnghf=uvajrvf');
+ re92.exec(' .pybfr');
+ re92.exec(' n.svryqOgaPnapry');
+ re92.exec(' qg');
+ re92.exec(str48);
+ re92.exec('.nwnk');
+ re92.exec('.svryqOga,n.svryqOgaPnapry');
+ re92.exec('.svryqOgaPnapry');
+ re92.exec('.bow-nppbeqvba qg');
+ re68.exec(str77);
+ re68.exec('*');
+ re68.exec('.pybfr');
+ re68.exec(str82);
+ re68.exec(str83);
+ re68.exec(str84);
+ re68.exec(str86);
+ re68.exec('qg');
+ re68.exec('rzorq');
+ re68.exec('sbez.nwnk');
+ re68.exec(str90);
+ re68.exec('bowrpg');
+ re93.exec(' .pybfr');
+ re93.exec(' n.svryqOgaPnapry');
+ re93.exec(' qg');
+ re93.exec(str48);
+ re93.exec('.nwnk');
+ re93.exec('.svryqOga,n.svryqOgaPnapry');
+ re93.exec('.svryqOgaPnapry');
+ re93.exec('.bow-nppbeqvba qg');
+ re81.exec(str77);
+ re81.exec('*');
+ re81.exec(str48);
+ re81.exec('.pybfr');
+ re81.exec(str82);
+ re81.exec(str83);
+ re81.exec(str84);
+ re81.exec(str86);
+ re81.exec('qg');
+ re81.exec('rzorq');
+ re81.exec('sbez.nwnk');
+ re81.exec(str90);
+ re81.exec('bowrpg');
+ re94.exec(' .pybfr');
+ re94.exec(' n.svryqOgaPnapry');
+ re94.exec(' qg');
+ re94.exec(str48);
+ re94.exec('.nwnk');
+ re94.exec('.svryqOga,n.svryqOgaPnapry');
+ re94.exec('.svryqOgaPnapry');
+ re94.exec('.bow-nppbeqvba qg');
+ re94.exec('[anzr=nwnkHey]');
+ re94.exec(str82);
+ re31.exec('rf');
+ re31.exec('wn');
+ re82.exec(str77);
+ re82.exec('*');
+ re82.exec(str48);
+ re82.exec('.pybfr');
+ re82.exec(str82);
+ re82.exec(str83);
+ re82.exec(str84);
+ re82.exec(str86);
+ re82.exec('qg');
+ re82.exec('rzorq');
+ re82.exec('sbez.nwnk');
+ re82.exec(str90);
+ re82.exec('bowrpg');
+ re83.exec(str98);
+ re83.exec('shapgvba sbphf() { [angvir pbqr] }');
+ re62.exec('#Ybtva');
+ re62.exec('#Ybtva_cnffjbeq');
+ re62.exec(str77);
+ re62.exec('#fubhgobkWf');
+ re62.exec('#fubhgobkWfReebe');
+ re62.exec('#fubhgobkWfFhpprff');
+ re62.exec('*');
+ re62.exec(str82);
+ re62.exec(str83);
+ re62.exec(str86);
+ re62.exec('rzorq');
+ re62.exec('sbez.nwnk');
+ re62.exec(str90);
+ re62.exec('bowrpg');
+ re49.exec('pbagrag');
+ re24.exec(str6);
+ /xbadhrebe/.exec(str63);
+ /znp/.exec('jva32');
+ /zbmvyyn/.exec(str63);
+ /zfvr/.exec(str63);
+ /ag\s5\.1/.exec(str63);
+ /bcren/.exec(str63);
+ /fnsnev/.exec(str63);
+ /jva/.exec('jva32');
+ /jvaqbjf/.exec(str63);
+ }
+ }
+ for (var i = 0; i < 5; i++) {
+ runBlock0();
+ runBlock1();
+ runBlock2();
+ runBlock3();
+ runBlock4();
+ runBlock5();
+ runBlock6();
+ runBlock7();
+ runBlock8();
+ runBlock9();
+ runBlock10();
+ runBlock11();
+ }
+}
+
+for (var i = 0; i < 3; ++i)
+ runRegExpBenchmark();
diff --git a/PerformanceTests/SunSpider/tests/v8-v5/v8-richards.js b/PerformanceTests/SunSpider/tests/v8-v5/v8-richards.js
new file mode 100644
index 000000000..b1a50eaab
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v5/v8-richards.js
@@ -0,0 +1,537 @@
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+// This is a JavaScript implementation of the Richards
+// benchmark from:
+//
+// http://www.cl.cam.ac.uk/~mr10/Bench.html
+//
+// The benchmark was originally implemented in BCPL by
+// Martin Richards.
+
+
+/**
+ * The Richards benchmark simulates the task dispatcher of an
+ * operating system.
+ **/
+function runRichards() {
+ var scheduler = new Scheduler();
+ scheduler.addIdleTask(ID_IDLE, 0, null, COUNT);
+
+ var queue = new Packet(null, ID_WORKER, KIND_WORK);
+ queue = new Packet(queue, ID_WORKER, KIND_WORK);
+ scheduler.addWorkerTask(ID_WORKER, 1000, queue);
+
+ queue = new Packet(null, ID_DEVICE_A, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE);
+ scheduler.addHandlerTask(ID_HANDLER_A, 2000, queue);
+
+ queue = new Packet(null, ID_DEVICE_B, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE);
+ scheduler.addHandlerTask(ID_HANDLER_B, 3000, queue);
+
+ scheduler.addDeviceTask(ID_DEVICE_A, 4000, null);
+
+ scheduler.addDeviceTask(ID_DEVICE_B, 5000, null);
+
+ scheduler.schedule();
+
+ if (scheduler.queueCount != EXPECTED_QUEUE_COUNT ||
+ scheduler.holdCount != EXPECTED_HOLD_COUNT) {
+ var msg =
+ "Error during execution: queueCount = " + scheduler.queueCount +
+ ", holdCount = " + scheduler.holdCount + ".";
+ throw new Error(msg);
+ }
+}
+
+var COUNT = 1000;
+
+/**
+ * These two constants specify how many times a packet is queued and
+ * how many times a task is put on hold in a correct run of richards.
+ * They don't have any meaning a such but are characteristic of a
+ * correct run so if the actual queue or hold count is different from
+ * the expected there must be a bug in the implementation.
+ **/
+var EXPECTED_QUEUE_COUNT = 2322;
+var EXPECTED_HOLD_COUNT = 928;
+
+
+/**
+ * A scheduler can be used to schedule a set of tasks based on their relative
+ * priorities. Scheduling is done by maintaining a list of task control blocks
+ * which holds tasks and the data queue they are processing.
+ * @constructor
+ */
+function Scheduler() {
+ this.queueCount = 0;
+ this.holdCount = 0;
+ this.blocks = new Array(NUMBER_OF_IDS);
+ this.list = null;
+ this.currentTcb = null;
+ this.currentId = null;
+}
+
+var ID_IDLE = 0;
+var ID_WORKER = 1;
+var ID_HANDLER_A = 2;
+var ID_HANDLER_B = 3;
+var ID_DEVICE_A = 4;
+var ID_DEVICE_B = 5;
+var NUMBER_OF_IDS = 6;
+
+var KIND_DEVICE = 0;
+var KIND_WORK = 1;
+
+/**
+ * Add an idle task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {int} count the number of times to schedule the task
+ */
+Scheduler.prototype.addIdleTask = function (id, priority, queue, count) {
+ this.addRunningTask(id, priority, queue, new IdleTask(this, 1, count));
+};
+
+/**
+ * Add a work task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addWorkerTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new WorkerTask(this, ID_HANDLER_A, 0));
+};
+
+/**
+ * Add a handler task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addHandlerTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new HandlerTask(this));
+};
+
+/**
+ * Add a handler task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addDeviceTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new DeviceTask(this))
+};
+
+/**
+ * Add the specified task and mark it as running.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {Task} task the task to add
+ */
+Scheduler.prototype.addRunningTask = function (id, priority, queue, task) {
+ this.addTask(id, priority, queue, task);
+ this.currentTcb.setRunning();
+};
+
+/**
+ * Add the specified task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {Task} task the task to add
+ */
+Scheduler.prototype.addTask = function (id, priority, queue, task) {
+ this.currentTcb = new TaskControlBlock(this.list, id, priority, queue, task);
+ this.list = this.currentTcb;
+ this.blocks[id] = this.currentTcb;
+};
+
+/**
+ * Execute the tasks managed by this scheduler.
+ */
+Scheduler.prototype.schedule = function () {
+ this.currentTcb = this.list;
+ while (this.currentTcb != null) {
+ if (this.currentTcb.isHeldOrSuspended()) {
+ this.currentTcb = this.currentTcb.link;
+ } else {
+ this.currentId = this.currentTcb.id;
+ this.currentTcb = this.currentTcb.run();
+ }
+ }
+};
+
+/**
+ * Release a task that is currently blocked and return the next block to run.
+ * @param {int} id the id of the task to suspend
+ */
+Scheduler.prototype.release = function (id) {
+ var tcb = this.blocks[id];
+ if (tcb == null) return tcb;
+ tcb.markAsNotHeld();
+ if (tcb.priority > this.currentTcb.priority) {
+ return tcb;
+ } else {
+ return this.currentTcb;
+ }
+};
+
+/**
+ * Block the currently executing task and return the next task control block
+ * to run. The blocked task will not be made runnable until it is explicitly
+ * released, even if new work is added to it.
+ */
+Scheduler.prototype.holdCurrent = function () {
+ this.holdCount++;
+ this.currentTcb.markAsHeld();
+ return this.currentTcb.link;
+};
+
+/**
+ * Suspend the currently executing task and return the next task control block
+ * to run. If new work is added to the suspended task it will be made runnable.
+ */
+Scheduler.prototype.suspendCurrent = function () {
+ this.currentTcb.markAsSuspended();
+ return this.currentTcb;
+};
+
+/**
+ * Add the specified packet to the end of the worklist used by the task
+ * associated with the packet and make the task runnable if it is currently
+ * suspended.
+ * @param {Packet} packet the packet to add
+ */
+Scheduler.prototype.queue = function (packet) {
+ var t = this.blocks[packet.id];
+ if (t == null) return t;
+ this.queueCount++;
+ packet.link = null;
+ packet.id = this.currentId;
+ return t.checkPriorityAdd(this.currentTcb, packet);
+};
+
+/**
+ * A task control block manages a task and the queue of work packages associated
+ * with it.
+ * @param {TaskControlBlock} link the preceding block in the linked block list
+ * @param {int} id the id of this block
+ * @param {int} priority the priority of this block
+ * @param {Packet} queue the queue of packages to be processed by the task
+ * @param {Task} task the task
+ * @constructor
+ */
+function TaskControlBlock(link, id, priority, queue, task) {
+ this.link = link;
+ this.id = id;
+ this.priority = priority;
+ this.queue = queue;
+ this.task = task;
+ if (queue == null) {
+ this.state = STATE_SUSPENDED;
+ } else {
+ this.state = STATE_SUSPENDED_RUNNABLE;
+ }
+}
+
+/**
+ * The task is running and is currently scheduled.
+ */
+var STATE_RUNNING = 0;
+
+/**
+ * The task has packets left to process.
+ */
+var STATE_RUNNABLE = 1;
+
+/**
+ * The task is not currently running. The task is not blocked as such and may
+* be started by the scheduler.
+ */
+var STATE_SUSPENDED = 2;
+
+/**
+ * The task is blocked and cannot be run until it is explicitly released.
+ */
+var STATE_HELD = 4;
+
+var STATE_SUSPENDED_RUNNABLE = STATE_SUSPENDED | STATE_RUNNABLE;
+var STATE_NOT_HELD = ~STATE_HELD;
+
+TaskControlBlock.prototype.setRunning = function () {
+ this.state = STATE_RUNNING;
+};
+
+TaskControlBlock.prototype.markAsNotHeld = function () {
+ this.state = this.state & STATE_NOT_HELD;
+};
+
+TaskControlBlock.prototype.markAsHeld = function () {
+ this.state = this.state | STATE_HELD;
+};
+
+TaskControlBlock.prototype.isHeldOrSuspended = function () {
+ return (this.state & STATE_HELD) != 0 || (this.state == STATE_SUSPENDED);
+};
+
+TaskControlBlock.prototype.markAsSuspended = function () {
+ this.state = this.state | STATE_SUSPENDED;
+};
+
+TaskControlBlock.prototype.markAsRunnable = function () {
+ this.state = this.state | STATE_RUNNABLE;
+};
+
+/**
+ * Runs this task, if it is ready to be run, and returns the next task to run.
+ */
+TaskControlBlock.prototype.run = function () {
+ var packet;
+ if (this.state == STATE_SUSPENDED_RUNNABLE) {
+ packet = this.queue;
+ this.queue = packet.link;
+ if (this.queue == null) {
+ this.state = STATE_RUNNING;
+ } else {
+ this.state = STATE_RUNNABLE;
+ }
+ } else {
+ packet = null;
+ }
+ return this.task.run(packet);
+};
+
+/**
+ * Adds a packet to the worklist of this block's task, marks this as runnable if
+ * necessary, and returns the next runnable object to run (the one
+ * with the highest priority).
+ */
+TaskControlBlock.prototype.checkPriorityAdd = function (task, packet) {
+ if (this.queue == null) {
+ this.queue = packet;
+ this.markAsRunnable();
+ if (this.priority > task.priority) return this;
+ } else {
+ this.queue = packet.addTo(this.queue);
+ }
+ return task;
+};
+
+TaskControlBlock.prototype.toString = function () {
+ return "tcb { " + this.task + "@" + this.state + " }";
+};
+
+/**
+ * An idle task doesn't do any work itself but cycles control between the two
+ * device tasks.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @param {int} v1 a seed value that controls how the device tasks are scheduled
+ * @param {int} count the number of times this task should be scheduled
+ * @constructor
+ */
+function IdleTask(scheduler, v1, count) {
+ this.scheduler = scheduler;
+ this.v1 = v1;
+ this.count = count;
+}
+
+IdleTask.prototype.run = function (packet) {
+ this.count--;
+ if (this.count == 0) return this.scheduler.holdCurrent();
+ if ((this.v1 & 1) == 0) {
+ this.v1 = this.v1 >> 1;
+ return this.scheduler.release(ID_DEVICE_A);
+ } else {
+ this.v1 = (this.v1 >> 1) ^ 0xD008;
+ return this.scheduler.release(ID_DEVICE_B);
+ }
+};
+
+IdleTask.prototype.toString = function () {
+ return "IdleTask"
+};
+
+/**
+ * A task that suspends itself after each time it has been run to simulate
+ * waiting for data from an external device.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @constructor
+ */
+function DeviceTask(scheduler) {
+ this.scheduler = scheduler;
+ this.v1 = null;
+}
+
+DeviceTask.prototype.run = function (packet) {
+ if (packet == null) {
+ if (this.v1 == null) return this.scheduler.suspendCurrent();
+ var v = this.v1;
+ this.v1 = null;
+ return this.scheduler.queue(v);
+ } else {
+ this.v1 = packet;
+ return this.scheduler.holdCurrent();
+ }
+};
+
+DeviceTask.prototype.toString = function () {
+ return "DeviceTask";
+};
+
+/**
+ * A task that manipulates work packets.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @param {int} v1 a seed used to specify how work packets are manipulated
+ * @param {int} v2 another seed used to specify how work packets are manipulated
+ * @constructor
+ */
+function WorkerTask(scheduler, v1, v2) {
+ this.scheduler = scheduler;
+ this.v1 = v1;
+ this.v2 = v2;
+}
+
+WorkerTask.prototype.run = function (packet) {
+ if (packet == null) {
+ return this.scheduler.suspendCurrent();
+ } else {
+ if (this.v1 == ID_HANDLER_A) {
+ this.v1 = ID_HANDLER_B;
+ } else {
+ this.v1 = ID_HANDLER_A;
+ }
+ packet.id = this.v1;
+ packet.a1 = 0;
+ for (var i = 0; i < DATA_SIZE; i++) {
+ this.v2++;
+ if (this.v2 > 26) this.v2 = 1;
+ packet.a2[i] = this.v2;
+ }
+ return this.scheduler.queue(packet);
+ }
+};
+
+WorkerTask.prototype.toString = function () {
+ return "WorkerTask";
+};
+
+/**
+ * A task that manipulates work packets and then suspends itself.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @constructor
+ */
+function HandlerTask(scheduler) {
+ this.scheduler = scheduler;
+ this.v1 = null;
+ this.v2 = null;
+}
+
+HandlerTask.prototype.run = function (packet) {
+ if (packet != null) {
+ if (packet.kind == KIND_WORK) {
+ this.v1 = packet.addTo(this.v1);
+ } else {
+ this.v2 = packet.addTo(this.v2);
+ }
+ }
+ if (this.v1 != null) {
+ var count = this.v1.a1;
+ var v;
+ if (count < DATA_SIZE) {
+ if (this.v2 != null) {
+ v = this.v2;
+ this.v2 = this.v2.link;
+ v.a1 = this.v1.a2[count];
+ this.v1.a1 = count + 1;
+ return this.scheduler.queue(v);
+ }
+ } else {
+ v = this.v1;
+ this.v1 = this.v1.link;
+ return this.scheduler.queue(v);
+ }
+ }
+ return this.scheduler.suspendCurrent();
+};
+
+HandlerTask.prototype.toString = function () {
+ return "HandlerTask";
+};
+
+/* --- *
+ * P a c k e t
+ * --- */
+
+var DATA_SIZE = 4;
+
+/**
+ * A simple package of data that is manipulated by the tasks. The exact layout
+ * of the payload data carried by a packet is not importaint, and neither is the
+ * nature of the work performed on packets by the tasks.
+ *
+ * Besides carrying data, packets form linked lists and are hence used both as
+ * data and worklists.
+ * @param {Packet} link the tail of the linked list of packets
+ * @param {int} id an ID for this packet
+ * @param {int} kind the type of this packet
+ * @constructor
+ */
+function Packet(link, id, kind) {
+ this.link = link;
+ this.id = id;
+ this.kind = kind;
+ this.a1 = 0;
+ this.a2 = new Array(DATA_SIZE);
+}
+
+/**
+ * Add this packet to the end of a worklist, and return the worklist.
+ * @param {Packet} queue the worklist to add this packet to
+ */
+Packet.prototype.addTo = function (queue) {
+ this.link = null;
+ if (queue == null) return this;
+ var peek, next = queue;
+ while ((peek = next.link) != null)
+ next = peek;
+ next.link = this;
+ return queue;
+};
+
+Packet.prototype.toString = function () {
+ return "Packet";
+};
+
+for (var i = 0; i < 350; ++i)
+ runRichards();
diff --git a/PerformanceTests/SunSpider/tests/v8-v5/v8-splay.js b/PerformanceTests/SunSpider/tests/v8-v5/v8-splay.js
new file mode 100644
index 000000000..abdbbde8d
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v5/v8-splay.js
@@ -0,0 +1,377 @@
+// Copyright 2009 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This benchmark is based on a JavaScript log processing module used
+// by the V8 profiler to generate execution time profiles for runs of
+// JavaScript applications, and it effectively measures how fast the
+// JavaScript engine is at allocating nodes and reclaiming the memory
+// used for old nodes. Because of the way splay trees work, the engine
+// also has to deal with a lot of changes to the large tree object
+// graph.
+
+// Configuration.
+var kSplayTreeSize = 8000;
+var kSplayTreeModifications = 80;
+var kSplayTreePayloadDepth = 5;
+
+var splayTree = null;
+
+
+function GeneratePayloadTree(depth, key) {
+ if (depth == 0) {
+ return {
+ array : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ],
+ string : 'String for key ' + key + ' in leaf node'
+ };
+ } else {
+ return {
+ left: GeneratePayloadTree(depth - 1, key),
+ right: GeneratePayloadTree(depth - 1, key)
+ };
+ }
+}
+
+
+function GenerateKey() {
+ // The benchmark framework guarantees that Math.random is
+ // deterministic; see base.js.
+ return Math.random();
+}
+
+
+function InsertNewNode() {
+ // Insert new node with a unique key.
+ var key;
+ do {
+ key = GenerateKey();
+ } while (splayTree.find(key) != null);
+ splayTree.insert(key, GeneratePayloadTree(kSplayTreePayloadDepth, key));
+ return key;
+}
+
+
+
+function SplaySetup() {
+ splayTree = new SplayTree();
+ for (var i = 0; i < kSplayTreeSize; i++) InsertNewNode();
+}
+
+
+function SplayTearDown() {
+ // Allow the garbage collector to reclaim the memory
+ // used by the splay tree no matter how we exit the
+ // tear down function.
+ var keys = splayTree.exportKeys();
+ splayTree = null;
+
+ // Verify that the splay tree has the right size.
+ var length = keys.length;
+ if (length != kSplayTreeSize) {
+ throw new Error("Splay tree has wrong size");
+ }
+
+ // Verify that the splay tree has sorted, unique keys.
+ for (var i = 0; i < length - 1; i++) {
+ if (keys[i] >= keys[i + 1]) {
+ throw new Error("Splay tree not sorted");
+ }
+ }
+}
+
+
+function SplayRun() {
+ // Replace a few nodes in the splay tree.
+ for (var i = 0; i < kSplayTreeModifications; i++) {
+ var key = InsertNewNode();
+ var greatest = splayTree.findGreatestLessThan(key);
+ if (greatest == null) splayTree.remove(key);
+ else splayTree.remove(greatest.key);
+ }
+}
+
+
+/**
+ * Constructs a Splay tree. A splay tree is a self-balancing binary
+ * search tree with the additional property that recently accessed
+ * elements are quick to access again. It performs basic operations
+ * such as insertion, look-up and removal in O(log(n)) amortized time.
+ *
+ * @constructor
+ */
+function SplayTree() {
+};
+
+
+/**
+ * Pointer to the root node of the tree.
+ *
+ * @type {SplayTree.Node}
+ * @private
+ */
+SplayTree.prototype.root_ = null;
+
+
+/**
+ * @return {boolean} Whether the tree is empty.
+ */
+SplayTree.prototype.isEmpty = function() {
+ return !this.root_;
+};
+
+
+/**
+ * Inserts a node into the tree with the specified key and value if
+ * the tree does not already contain a node with the specified key. If
+ * the value is inserted, it becomes the root of the tree.
+ *
+ * @param {number} key Key to insert into the tree.
+ * @param {*} value Value to insert into the tree.
+ */
+SplayTree.prototype.insert = function(key, value) {
+ if (this.isEmpty()) {
+ this.root_ = new SplayTree.Node(key, value);
+ return;
+ }
+ // Splay on the key to move the last node on the search path for
+ // the key to the root of the tree.
+ this.splay_(key);
+ if (this.root_.key == key) {
+ return;
+ }
+ var node = new SplayTree.Node(key, value);
+ if (key > this.root_.key) {
+ node.left = this.root_;
+ node.right = this.root_.right;
+ this.root_.right = null;
+ } else {
+ node.right = this.root_;
+ node.left = this.root_.left;
+ this.root_.left = null;
+ }
+ this.root_ = node;
+};
+
+
+/**
+ * Removes a node with the specified key from the tree if the tree
+ * contains a node with this key. The removed node is returned. If the
+ * key is not found, an exception is thrown.
+ *
+ * @param {number} key Key to find and remove from the tree.
+ * @return {SplayTree.Node} The removed node.
+ */
+SplayTree.prototype.remove = function(key) {
+ if (this.isEmpty()) {
+ throw Error('Key not found: ' + key);
+ }
+ this.splay_(key);
+ if (this.root_.key != key) {
+ throw Error('Key not found: ' + key);
+ }
+ var removed = this.root_;
+ if (!this.root_.left) {
+ this.root_ = this.root_.right;
+ } else {
+ var right = this.root_.right;
+ this.root_ = this.root_.left;
+ // Splay to make sure that the new root has an empty right child.
+ this.splay_(key);
+ // Insert the original right child as the right child of the new
+ // root.
+ this.root_.right = right;
+ }
+ return removed;
+};
+
+
+/**
+ * Returns the node having the specified key or null if the tree doesn't contain
+ * a node with the specified key.
+ *
+ * @param {number} key Key to find in the tree.
+ * @return {SplayTree.Node} Node having the specified key.
+ */
+SplayTree.prototype.find = function(key) {
+ if (this.isEmpty()) {
+ return null;
+ }
+ this.splay_(key);
+ return this.root_.key == key ? this.root_ : null;
+};
+
+
+/**
+ * @return {SplayTree.Node} Node having the maximum key value that
+ * is less or equal to the specified key value.
+ */
+SplayTree.prototype.findGreatestLessThan = function(key) {
+ if (this.isEmpty()) {
+ return null;
+ }
+ // Splay on the key to move the node with the given key or the last
+ // node on the search path to the top of the tree.
+ this.splay_(key);
+ // Now the result is either the root node or the greatest node in
+ // the left subtree.
+ if (this.root_.key <= key) {
+ return this.root_;
+ } else if (this.root_.left) {
+ return this.findMax(this.root_.left);
+ } else {
+ return null;
+ }
+};
+
+
+/**
+ * @return {Array<*>} An array containing all the keys of tree's nodes.
+ */
+SplayTree.prototype.exportKeys = function() {
+ var result = [];
+ if (!this.isEmpty()) {
+ this.root_.traverse_(function(node) { result.push(node.key); });
+ }
+ return result;
+};
+
+
+/**
+ * Perform the splay operation for the given key. Moves the node with
+ * the given key to the top of the tree. If no node has the given
+ * key, the last node on the search path is moved to the top of the
+ * tree. This is the simplified top-down splaying algorithm from:
+ * "Self-adjusting Binary Search Trees" by Sleator and Tarjan
+ *
+ * @param {number} key Key to splay the tree on.
+ * @private
+ */
+SplayTree.prototype.splay_ = function(key) {
+ if (this.isEmpty()) {
+ return;
+ }
+ // Create a dummy node. The use of the dummy node is a bit
+ // counter-intuitive: The right child of the dummy node will hold
+ // the L tree of the algorithm. The left child of the dummy node
+ // will hold the R tree of the algorithm. Using a dummy node, left
+ // and right will always be nodes and we avoid special cases.
+ var dummy, left, right;
+ dummy = left = right = new SplayTree.Node(null, null);
+ var current = this.root_;
+ while (true) {
+ if (key < current.key) {
+ if (!current.left) {
+ break;
+ }
+ if (key < current.left.key) {
+ // Rotate right.
+ var tmp = current.left;
+ current.left = tmp.right;
+ tmp.right = current;
+ current = tmp;
+ if (!current.left) {
+ break;
+ }
+ }
+ // Link right.
+ right.left = current;
+ right = current;
+ current = current.left;
+ } else if (key > current.key) {
+ if (!current.right) {
+ break;
+ }
+ if (key > current.right.key) {
+ // Rotate left.
+ var tmp = current.right;
+ current.right = tmp.left;
+ tmp.left = current;
+ current = tmp;
+ if (!current.right) {
+ break;
+ }
+ }
+ // Link left.
+ left.right = current;
+ left = current;
+ current = current.right;
+ } else {
+ break;
+ }
+ }
+ // Assemble.
+ left.right = current.left;
+ right.left = current.right;
+ current.left = dummy.right;
+ current.right = dummy.left;
+ this.root_ = current;
+};
+
+
+/**
+ * Constructs a Splay tree node.
+ *
+ * @param {number} key Key.
+ * @param {*} value Value.
+ */
+SplayTree.Node = function(key, value) {
+ this.key = key;
+ this.value = value;
+};
+
+
+/**
+ * @type {SplayTree.Node}
+ */
+SplayTree.Node.prototype.left = null;
+
+
+/**
+ * @type {SplayTree.Node}
+ */
+SplayTree.Node.prototype.right = null;
+
+
+/**
+ * Performs an ordered traversal of the subtree starting at
+ * this SplayTree.Node.
+ *
+ * @param {function(SplayTree.Node)} f Visitor function.
+ * @private
+ */
+SplayTree.Node.prototype.traverse_ = function(f) {
+ var current = this;
+ while (current) {
+ var left = current.left;
+ if (left) left.traverse_(f);
+ f(current);
+ current = current.right;
+ }
+};
+
+SplaySetup();
+SplayRun();
+SplayTearDown();
diff --git a/PerformanceTests/SunSpider/tests/v8-v6/LIST b/PerformanceTests/SunSpider/tests/v8-v6/LIST
new file mode 100644
index 000000000..117011b19
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v6/LIST
@@ -0,0 +1,7 @@
+v8-crypto
+v8-deltablue
+v8-earley-boyer
+v8-raytrace
+v8-regexp
+v8-richards
+v8-splay
diff --git a/PerformanceTests/SunSpider/tests/v8-v6/v8-crypto.js b/PerformanceTests/SunSpider/tests/v8-v6/v8-crypto.js
new file mode 100644
index 000000000..98e171d4a
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v6/v8-crypto.js
@@ -0,0 +1,1695 @@
+/*
+ * Copyright (c) 2003-2005 Tom Wu
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * In addition, the following condition applies:
+ *
+ * All redistributions must retain an intact copy of this copyright notice
+ * and disclaimer.
+ */
+
+// Basic JavaScript BN library - subset useful for RSA encryption.
+
+// Bits per digit
+var dbits;
+var BI_DB;
+var BI_DM;
+var BI_DV;
+
+var BI_FP;
+var BI_FV;
+var BI_F1;
+var BI_F2;
+
+// JavaScript engine analysis
+var canary = 0xdeadbeefcafe;
+var j_lm = ((canary&0xffffff)==0xefcafe);
+
+// (public) Constructor
+function BigInteger(a,b,c) {
+ this.array = new Array();
+ if(a != null)
+ if("number" == typeof a) this.fromNumber(a,b,c);
+ else if(b == null && "string" != typeof a) this.fromString(a,256);
+ else this.fromString(a,b);
+}
+
+// return new, unset BigInteger
+function nbi() { return new BigInteger(null); }
+
+// am: Compute w_j += (x*this_i), propagate carries,
+// c is initial carry, returns final carry.
+// c < 3*dvalue, x < 2*dvalue, this_i < dvalue
+// We need to select the fastest one that works in this environment.
+
+// am1: use a single mult and divide to get the high bits,
+// max digit bits should be 26 because
+// max internal value = 2*dvalue^2-2*dvalue (< 2^53)
+function am1(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+ while(--n >= 0) {
+ var v = x*this_array[i++]+w_array[j]+c;
+ c = Math.floor(v/0x4000000);
+ w_array[j++] = v&0x3ffffff;
+ }
+ return c;
+}
+
+// am2 avoids a big mult-and-extract completely.
+// Max digit bits should be <= 30 because we do bitwise ops
+// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
+function am2(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+ var xl = x&0x7fff, xh = x>>15;
+ while(--n >= 0) {
+ var l = this_array[i]&0x7fff;
+ var h = this_array[i++]>>15;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x7fff)<<15)+w_array[j]+(c&0x3fffffff);
+ c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
+ w_array[j++] = l&0x3fffffff;
+ }
+ return c;
+}
+
+// Alternately, set max digit bits to 28 since some
+// browsers slow down when dealing with 32-bit numbers.
+function am3(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+
+ var xl = x&0x3fff, xh = x>>14;
+ while(--n >= 0) {
+ var l = this_array[i]&0x3fff;
+ var h = this_array[i++]>>14;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x3fff)<<14)+w_array[j]+c;
+ c = (l>>28)+(m>>14)+xh*h;
+ w_array[j++] = l&0xfffffff;
+ }
+ return c;
+}
+
+// This is tailored to VMs with 2-bit tagging. It makes sure
+// that all the computations stay within the 29 bits available.
+function am4(i,x,w,j,c,n) {
+ var this_array = this.array;
+ var w_array = w.array;
+
+ var xl = x&0x1fff, xh = x>>13;
+ while(--n >= 0) {
+ var l = this_array[i]&0x1fff;
+ var h = this_array[i++]>>13;
+ var m = xh*l+h*xl;
+ l = xl*l+((m&0x1fff)<<13)+w_array[j]+c;
+ c = (l>>26)+(m>>13)+xh*h;
+ w_array[j++] = l&0x3ffffff;
+ }
+ return c;
+}
+
+// am3/28 is best for SM, Rhino, but am4/26 is best for v8.
+// Kestrel (Opera 9.5) gets its best result with am4/26.
+// IE7 does 9% better with am3/28 than with am4/26.
+// Firefox (SM) gets 10% faster with am3/28 than with am4/26.
+
+setupEngine = function(fn, bits) {
+ BigInteger.prototype.am = fn;
+ dbits = bits;
+
+ BI_DB = dbits;
+ BI_DM = ((1<<dbits)-1);
+ BI_DV = (1<<dbits);
+
+ BI_FP = 52;
+ BI_FV = Math.pow(2,BI_FP);
+ BI_F1 = BI_FP-dbits;
+ BI_F2 = 2*dbits-BI_FP;
+}
+
+
+// Digit conversions
+var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
+var BI_RC = new Array();
+var rr,vv;
+rr = "0".charCodeAt(0);
+for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
+rr = "a".charCodeAt(0);
+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
+rr = "A".charCodeAt(0);
+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
+
+function int2char(n) { return BI_RM.charAt(n); }
+function intAt(s,i) {
+ var c = BI_RC[s.charCodeAt(i)];
+ return (c==null)?-1:c;
+}
+
+// (protected) copy this to r
+function bnpCopyTo(r) {
+ var this_array = this.array;
+ var r_array = r.array;
+
+ for(var i = this.t-1; i >= 0; --i) r_array[i] = this_array[i];
+ r.t = this.t;
+ r.s = this.s;
+}
+
+// (protected) set from integer value x, -DV <= x < DV
+function bnpFromInt(x) {
+ var this_array = this.array;
+ this.t = 1;
+ this.s = (x<0)?-1:0;
+ if(x > 0) this_array[0] = x;
+ else if(x < -1) this_array[0] = x+DV;
+ else this.t = 0;
+}
+
+// return bigint initialized to value
+function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
+
+// (protected) set from string and radix
+function bnpFromString(s,b) {
+ var this_array = this.array;
+ var k;
+ if(b == 16) k = 4;
+ else if(b == 8) k = 3;
+ else if(b == 256) k = 8; // byte array
+ else if(b == 2) k = 1;
+ else if(b == 32) k = 5;
+ else if(b == 4) k = 2;
+ else { this.fromRadix(s,b); return; }
+ this.t = 0;
+ this.s = 0;
+ var i = s.length, mi = false, sh = 0;
+ while(--i >= 0) {
+ var x = (k==8)?s[i]&0xff:intAt(s,i);
+ if(x < 0) {
+ if(s.charAt(i) == "-") mi = true;
+ continue;
+ }
+ mi = false;
+ if(sh == 0)
+ this_array[this.t++] = x;
+ else if(sh+k > BI_DB) {
+ this_array[this.t-1] |= (x&((1<<(BI_DB-sh))-1))<<sh;
+ this_array[this.t++] = (x>>(BI_DB-sh));
+ }
+ else
+ this_array[this.t-1] |= x<<sh;
+ sh += k;
+ if(sh >= BI_DB) sh -= BI_DB;
+ }
+ if(k == 8 && (s[0]&0x80) != 0) {
+ this.s = -1;
+ if(sh > 0) this_array[this.t-1] |= ((1<<(BI_DB-sh))-1)<<sh;
+ }
+ this.clamp();
+ if(mi) BigInteger.ZERO.subTo(this,this);
+}
+
+// (protected) clamp off excess high words
+function bnpClamp() {
+ var this_array = this.array;
+ var c = this.s&BI_DM;
+ while(this.t > 0 && this_array[this.t-1] == c) --this.t;
+}
+
+// (public) return string representation in given radix
+function bnToString(b) {
+ var this_array = this.array;
+ if(this.s < 0) return "-"+this.negate().toString(b);
+ var k;
+ if(b == 16) k = 4;
+ else if(b == 8) k = 3;
+ else if(b == 2) k = 1;
+ else if(b == 32) k = 5;
+ else if(b == 4) k = 2;
+ else return this.toRadix(b);
+ var km = (1<<k)-1, d, m = false, r = "", i = this.t;
+ var p = BI_DB-(i*BI_DB)%k;
+ if(i-- > 0) {
+ if(p < BI_DB && (d = this_array[i]>>p) > 0) { m = true; r = int2char(d); }
+ while(i >= 0) {
+ if(p < k) {
+ d = (this_array[i]&((1<<p)-1))<<(k-p);
+ d |= this_array[--i]>>(p+=BI_DB-k);
+ }
+ else {
+ d = (this_array[i]>>(p-=k))&km;
+ if(p <= 0) { p += BI_DB; --i; }
+ }
+ if(d > 0) m = true;
+ if(m) r += int2char(d);
+ }
+ }
+ return m?r:"0";
+}
+
+// (public) -this
+function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
+
+// (public) |this|
+function bnAbs() { return (this.s<0)?this.negate():this; }
+
+// (public) return + if this > a, - if this < a, 0 if equal
+function bnCompareTo(a) {
+ var this_array = this.array;
+ var a_array = a.array;
+
+ var r = this.s-a.s;
+ if(r != 0) return r;
+ var i = this.t;
+ r = i-a.t;
+ if(r != 0) return r;
+ while(--i >= 0) if((r=this_array[i]-a_array[i]) != 0) return r;
+ return 0;
+}
+
+// returns bit length of the integer x
+function nbits(x) {
+ var r = 1, t;
+ if((t=x>>>16) != 0) { x = t; r += 16; }
+ if((t=x>>8) != 0) { x = t; r += 8; }
+ if((t=x>>4) != 0) { x = t; r += 4; }
+ if((t=x>>2) != 0) { x = t; r += 2; }
+ if((t=x>>1) != 0) { x = t; r += 1; }
+ return r;
+}
+
+// (public) return the number of bits in "this"
+function bnBitLength() {
+ var this_array = this.array;
+ if(this.t <= 0) return 0;
+ return BI_DB*(this.t-1)+nbits(this_array[this.t-1]^(this.s&BI_DM));
+}
+
+// (protected) r = this << n*DB
+function bnpDLShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var i;
+ for(i = this.t-1; i >= 0; --i) r_array[i+n] = this_array[i];
+ for(i = n-1; i >= 0; --i) r_array[i] = 0;
+ r.t = this.t+n;
+ r.s = this.s;
+}
+
+// (protected) r = this >> n*DB
+function bnpDRShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ for(var i = n; i < this.t; ++i) r_array[i-n] = this_array[i];
+ r.t = Math.max(this.t-n,0);
+ r.s = this.s;
+}
+
+// (protected) r = this << n
+function bnpLShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var bs = n%BI_DB;
+ var cbs = BI_DB-bs;
+ var bm = (1<<cbs)-1;
+ var ds = Math.floor(n/BI_DB), c = (this.s<<bs)&BI_DM, i;
+ for(i = this.t-1; i >= 0; --i) {
+ r_array[i+ds+1] = (this_array[i]>>cbs)|c;
+ c = (this_array[i]&bm)<<bs;
+ }
+ for(i = ds-1; i >= 0; --i) r_array[i] = 0;
+ r_array[ds] = c;
+ r.t = this.t+ds+1;
+ r.s = this.s;
+ r.clamp();
+}
+
+// (protected) r = this >> n
+function bnpRShiftTo(n,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ r.s = this.s;
+ var ds = Math.floor(n/BI_DB);
+ if(ds >= this.t) { r.t = 0; return; }
+ var bs = n%BI_DB;
+ var cbs = BI_DB-bs;
+ var bm = (1<<bs)-1;
+ r_array[0] = this_array[ds]>>bs;
+ for(var i = ds+1; i < this.t; ++i) {
+ r_array[i-ds-1] |= (this_array[i]&bm)<<cbs;
+ r_array[i-ds] = this_array[i]>>bs;
+ }
+ if(bs > 0) r_array[this.t-ds-1] |= (this.s&bm)<<cbs;
+ r.t = this.t-ds;
+ r.clamp();
+}
+
+// (protected) r = this - a
+function bnpSubTo(a,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var a_array = a.array;
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
+ while(i < m) {
+ c += this_array[i]-a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ if(a.t < this.t) {
+ c -= a.s;
+ while(i < this.t) {
+ c += this_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += this.s;
+ }
+ else {
+ c += this.s;
+ while(i < a.t) {
+ c -= a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c -= a.s;
+ }
+ r.s = (c<0)?-1:0;
+ if(c < -1) r_array[i++] = BI_DV+c;
+ else if(c > 0) r_array[i++] = c;
+ r.t = i;
+ r.clamp();
+}
+
+// (protected) r = this * a, r != this,a (HAC 14.12)
+// "this" should be the larger one if appropriate.
+function bnpMultiplyTo(a,r) {
+ var this_array = this.array;
+ var r_array = r.array;
+ var x = this.abs(), y = a.abs();
+ var y_array = y.array;
+
+ var i = x.t;
+ r.t = i+y.t;
+ while(--i >= 0) r_array[i] = 0;
+ for(i = 0; i < y.t; ++i) r_array[i+x.t] = x.am(0,y_array[i],r,i,0,x.t);
+ r.s = 0;
+ r.clamp();
+ if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
+}
+
+// (protected) r = this^2, r != this (HAC 14.16)
+function bnpSquareTo(r) {
+ var x = this.abs();
+ var x_array = x.array;
+ var r_array = r.array;
+
+ var i = r.t = 2*x.t;
+ while(--i >= 0) r_array[i] = 0;
+ for(i = 0; i < x.t-1; ++i) {
+ var c = x.am(i,x_array[i],r,2*i,0,1);
+ if((r_array[i+x.t]+=x.am(i+1,2*x_array[i],r,2*i+1,c,x.t-i-1)) >= BI_DV) {
+ r_array[i+x.t] -= BI_DV;
+ r_array[i+x.t+1] = 1;
+ }
+ }
+ if(r.t > 0) r_array[r.t-1] += x.am(i,x_array[i],r,2*i,0,1);
+ r.s = 0;
+ r.clamp();
+}
+
+// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
+// r != q, this != m. q or r may be null.
+function bnpDivRemTo(m,q,r) {
+ var pm = m.abs();
+ if(pm.t <= 0) return;
+ var pt = this.abs();
+ if(pt.t < pm.t) {
+ if(q != null) q.fromInt(0);
+ if(r != null) this.copyTo(r);
+ return;
+ }
+ if(r == null) r = nbi();
+ var y = nbi(), ts = this.s, ms = m.s;
+ var pm_array = pm.array;
+ var nsh = BI_DB-nbits(pm_array[pm.t-1]); // normalize modulus
+ if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
+ else { pm.copyTo(y); pt.copyTo(r); }
+ var ys = y.t;
+
+ var y_array = y.array;
+ var y0 = y_array[ys-1];
+ if(y0 == 0) return;
+ var yt = y0*(1<<BI_F1)+((ys>1)?y_array[ys-2]>>BI_F2:0);
+ var d1 = BI_FV/yt, d2 = (1<<BI_F1)/yt, e = 1<<BI_F2;
+ var i = r.t, j = i-ys, t = (q==null)?nbi():q;
+ y.dlShiftTo(j,t);
+
+ var r_array = r.array;
+ if(r.compareTo(t) >= 0) {
+ r_array[r.t++] = 1;
+ r.subTo(t,r);
+ }
+ BigInteger.ONE.dlShiftTo(ys,t);
+ t.subTo(y,y); // "negative" y so we can replace sub with am later
+ while(y.t < ys) y_array[y.t++] = 0;
+ while(--j >= 0) {
+ // Estimate quotient digit
+ var qd = (r_array[--i]==y0)?BI_DM:Math.floor(r_array[i]*d1+(r_array[i-1]+e)*d2);
+ if((r_array[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
+ y.dlShiftTo(j,t);
+ r.subTo(t,r);
+ while(r_array[i] < --qd) r.subTo(t,r);
+ }
+ }
+ if(q != null) {
+ r.drShiftTo(ys,q);
+ if(ts != ms) BigInteger.ZERO.subTo(q,q);
+ }
+ r.t = ys;
+ r.clamp();
+ if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
+ if(ts < 0) BigInteger.ZERO.subTo(r,r);
+}
+
+// (public) this mod a
+function bnMod(a) {
+ var r = nbi();
+ this.abs().divRemTo(a,null,r);
+ if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
+ return r;
+}
+
+// Modular reduction using "classic" algorithm
+function Classic(m) { this.m = m; }
+function cConvert(x) {
+ if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
+ else return x;
+}
+function cRevert(x) { return x; }
+function cReduce(x) { x.divRemTo(this.m,null,x); }
+function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+Classic.prototype.convert = cConvert;
+Classic.prototype.revert = cRevert;
+Classic.prototype.reduce = cReduce;
+Classic.prototype.mulTo = cMulTo;
+Classic.prototype.sqrTo = cSqrTo;
+
+// (protected) return "-1/this % 2^DB"; useful for Mont. reduction
+// justification:
+// xy == 1 (mod m)
+// xy = 1+km
+// xy(2-xy) = (1+km)(1-km)
+// x[y(2-xy)] = 1-k^2m^2
+// x[y(2-xy)] == 1 (mod m^2)
+// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
+// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
+// JS multiply "overflows" differently from C/C++, so care is needed here.
+function bnpInvDigit() {
+ var this_array = this.array;
+ if(this.t < 1) return 0;
+ var x = this_array[0];
+ if((x&1) == 0) return 0;
+ var y = x&3; // y == 1/x mod 2^2
+ y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
+ y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
+ y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
+ // last step - calculate inverse mod DV directly;
+ // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
+ y = (y*(2-x*y%BI_DV))%BI_DV; // y == 1/x mod 2^dbits
+ // we really want the negative inverse, and -DV < y < DV
+ return (y>0)?BI_DV-y:-y;
+}
+
+// Montgomery reduction
+function Montgomery(m) {
+ this.m = m;
+ this.mp = m.invDigit();
+ this.mpl = this.mp&0x7fff;
+ this.mph = this.mp>>15;
+ this.um = (1<<(BI_DB-15))-1;
+ this.mt2 = 2*m.t;
+}
+
+// xR mod m
+function montConvert(x) {
+ var r = nbi();
+ x.abs().dlShiftTo(this.m.t,r);
+ r.divRemTo(this.m,null,r);
+ if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
+ return r;
+}
+
+// x/R mod m
+function montRevert(x) {
+ var r = nbi();
+ x.copyTo(r);
+ this.reduce(r);
+ return r;
+}
+
+// x = x/R mod m (HAC 14.32)
+function montReduce(x) {
+ var x_array = x.array;
+ while(x.t <= this.mt2) // pad x so am has enough room later
+ x_array[x.t++] = 0;
+ for(var i = 0; i < this.m.t; ++i) {
+ // faster way of calculating u0 = x[i]*mp mod DV
+ var j = x_array[i]&0x7fff;
+ var u0 = (j*this.mpl+(((j*this.mph+(x_array[i]>>15)*this.mpl)&this.um)<<15))&BI_DM;
+ // use am to combine the multiply-shift-add into one call
+ j = i+this.m.t;
+ x_array[j] += this.m.am(0,u0,x,i,0,this.m.t);
+ // propagate carry
+ while(x_array[j] >= BI_DV) { x_array[j] -= BI_DV; x_array[++j]++; }
+ }
+ x.clamp();
+ x.drShiftTo(this.m.t,x);
+ if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
+}
+
+// r = "x^2/R mod m"; x != r
+function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+// r = "xy/R mod m"; x,y != r
+function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+
+Montgomery.prototype.convert = montConvert;
+Montgomery.prototype.revert = montRevert;
+Montgomery.prototype.reduce = montReduce;
+Montgomery.prototype.mulTo = montMulTo;
+Montgomery.prototype.sqrTo = montSqrTo;
+
+// (protected) true iff this is even
+function bnpIsEven() {
+ var this_array = this.array;
+ return ((this.t>0)?(this_array[0]&1):this.s) == 0;
+}
+
+// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
+function bnpExp(e,z) {
+ if(e > 0xffffffff || e < 1) return BigInteger.ONE;
+ var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
+ g.copyTo(r);
+ while(--i >= 0) {
+ z.sqrTo(r,r2);
+ if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
+ else { var t = r; r = r2; r2 = t; }
+ }
+ return z.revert(r);
+}
+
+// (public) this^e % m, 0 <= e < 2^32
+function bnModPowInt(e,m) {
+ var z;
+ if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
+ return this.exp(e,z);
+}
+
+// protected
+BigInteger.prototype.copyTo = bnpCopyTo;
+BigInteger.prototype.fromInt = bnpFromInt;
+BigInteger.prototype.fromString = bnpFromString;
+BigInteger.prototype.clamp = bnpClamp;
+BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
+BigInteger.prototype.drShiftTo = bnpDRShiftTo;
+BigInteger.prototype.lShiftTo = bnpLShiftTo;
+BigInteger.prototype.rShiftTo = bnpRShiftTo;
+BigInteger.prototype.subTo = bnpSubTo;
+BigInteger.prototype.multiplyTo = bnpMultiplyTo;
+BigInteger.prototype.squareTo = bnpSquareTo;
+BigInteger.prototype.divRemTo = bnpDivRemTo;
+BigInteger.prototype.invDigit = bnpInvDigit;
+BigInteger.prototype.isEven = bnpIsEven;
+BigInteger.prototype.exp = bnpExp;
+
+// public
+BigInteger.prototype.toString = bnToString;
+BigInteger.prototype.negate = bnNegate;
+BigInteger.prototype.abs = bnAbs;
+BigInteger.prototype.compareTo = bnCompareTo;
+BigInteger.prototype.bitLength = bnBitLength;
+BigInteger.prototype.mod = bnMod;
+BigInteger.prototype.modPowInt = bnModPowInt;
+
+// "constants"
+BigInteger.ZERO = nbv(0);
+BigInteger.ONE = nbv(1);
+// Copyright (c) 2005 Tom Wu
+// All Rights Reserved.
+// See "LICENSE" for details.
+
+// Extended JavaScript BN functions, required for RSA private ops.
+
+// (public)
+function bnClone() { var r = nbi(); this.copyTo(r); return r; }
+
+// (public) return value as integer
+function bnIntValue() {
+ var this_array = this.array;
+ if(this.s < 0) {
+ if(this.t == 1) return this_array[0]-BI_DV;
+ else if(this.t == 0) return -1;
+ }
+ else if(this.t == 1) return this_array[0];
+ else if(this.t == 0) return 0;
+ // assumes 16 < DB < 32
+ return ((this_array[1]&((1<<(32-BI_DB))-1))<<BI_DB)|this_array[0];
+}
+
+// (public) return value as byte
+function bnByteValue() {
+ var this_array = this.array;
+ return (this.t==0)?this.s:(this_array[0]<<24)>>24;
+}
+
+// (public) return value as short (assumes DB>=16)
+function bnShortValue() {
+ var this_array = this.array;
+ return (this.t==0)?this.s:(this_array[0]<<16)>>16;
+}
+
+// (protected) return x s.t. r^x < DV
+function bnpChunkSize(r) { return Math.floor(Math.LN2*BI_DB/Math.log(r)); }
+
+// (public) 0 if this == 0, 1 if this > 0
+function bnSigNum() {
+ var this_array = this.array;
+ if(this.s < 0) return -1;
+ else if(this.t <= 0 || (this.t == 1 && this_array[0] <= 0)) return 0;
+ else return 1;
+}
+
+// (protected) convert to radix string
+function bnpToRadix(b) {
+ if(b == null) b = 10;
+ if(this.signum() == 0 || b < 2 || b > 36) return "0";
+ var cs = this.chunkSize(b);
+ var a = Math.pow(b,cs);
+ var d = nbv(a), y = nbi(), z = nbi(), r = "";
+ this.divRemTo(d,y,z);
+ while(y.signum() > 0) {
+ r = (a+z.intValue()).toString(b).substr(1) + r;
+ y.divRemTo(d,y,z);
+ }
+ return z.intValue().toString(b) + r;
+}
+
+// (protected) convert from radix string
+function bnpFromRadix(s,b) {
+ this.fromInt(0);
+ if(b == null) b = 10;
+ var cs = this.chunkSize(b);
+ var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
+ for(var i = 0; i < s.length; ++i) {
+ var x = intAt(s,i);
+ if(x < 0) {
+ if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
+ continue;
+ }
+ w = b*w+x;
+ if(++j >= cs) {
+ this.dMultiply(d);
+ this.dAddOffset(w,0);
+ j = 0;
+ w = 0;
+ }
+ }
+ if(j > 0) {
+ this.dMultiply(Math.pow(b,j));
+ this.dAddOffset(w,0);
+ }
+ if(mi) BigInteger.ZERO.subTo(this,this);
+}
+
+// (protected) alternate constructor
+function bnpFromNumber(a,b,c) {
+ if("number" == typeof b) {
+ // new BigInteger(int,int,RNG)
+ if(a < 2) this.fromInt(1);
+ else {
+ this.fromNumber(a,c);
+ if(!this.testBit(a-1)) // force MSB set
+ this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);
+ if(this.isEven()) this.dAddOffset(1,0); // force odd
+ while(!this.isProbablePrime(b)) {
+ this.dAddOffset(2,0);
+ if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);
+ }
+ }
+ }
+ else {
+ // new BigInteger(int,RNG)
+ var x = new Array(), t = a&7;
+ x.length = (a>>3)+1;
+ b.nextBytes(x);
+ if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;
+ this.fromString(x,256);
+ }
+}
+
+// (public) convert to bigendian byte array
+function bnToByteArray() {
+ var this_array = this.array;
+ var i = this.t, r = new Array();
+ r[0] = this.s;
+ var p = BI_DB-(i*BI_DB)%8, d, k = 0;
+ if(i-- > 0) {
+ if(p < BI_DB && (d = this_array[i]>>p) != (this.s&BI_DM)>>p)
+ r[k++] = d|(this.s<<(BI_DB-p));
+ while(i >= 0) {
+ if(p < 8) {
+ d = (this_array[i]&((1<<p)-1))<<(8-p);
+ d |= this_array[--i]>>(p+=BI_DB-8);
+ }
+ else {
+ d = (this_array[i]>>(p-=8))&0xff;
+ if(p <= 0) { p += BI_DB; --i; }
+ }
+ if((d&0x80) != 0) d |= -256;
+ if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;
+ if(k > 0 || d != this.s) r[k++] = d;
+ }
+ }
+ return r;
+}
+
+function bnEquals(a) { return(this.compareTo(a)==0); }
+function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
+function bnMax(a) { return(this.compareTo(a)>0)?this:a; }
+
+// (protected) r = this op a (bitwise)
+function bnpBitwiseTo(a,op,r) {
+ var this_array = this.array;
+ var a_array = a.array;
+ var r_array = r.array;
+ var i, f, m = Math.min(a.t,this.t);
+ for(i = 0; i < m; ++i) r_array[i] = op(this_array[i],a_array[i]);
+ if(a.t < this.t) {
+ f = a.s&BI_DM;
+ for(i = m; i < this.t; ++i) r_array[i] = op(this_array[i],f);
+ r.t = this.t;
+ }
+ else {
+ f = this.s&BI_DM;
+ for(i = m; i < a.t; ++i) r_array[i] = op(f,a_array[i]);
+ r.t = a.t;
+ }
+ r.s = op(this.s,a.s);
+ r.clamp();
+}
+
+// (public) this & a
+function op_and(x,y) { return x&y; }
+function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }
+
+// (public) this | a
+function op_or(x,y) { return x|y; }
+function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }
+
+// (public) this ^ a
+function op_xor(x,y) { return x^y; }
+function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }
+
+// (public) this & ~a
+function op_andnot(x,y) { return x&~y; }
+function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }
+
+// (public) ~this
+function bnNot() {
+ var this_array = this.array;
+ var r = nbi();
+ var r_array = r.array;
+
+ for(var i = 0; i < this.t; ++i) r_array[i] = BI_DM&~this_array[i];
+ r.t = this.t;
+ r.s = ~this.s;
+ return r;
+}
+
+// (public) this << n
+function bnShiftLeft(n) {
+ var r = nbi();
+ if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);
+ return r;
+}
+
+// (public) this >> n
+function bnShiftRight(n) {
+ var r = nbi();
+ if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);
+ return r;
+}
+
+// return index of lowest 1-bit in x, x < 2^31
+function lbit(x) {
+ if(x == 0) return -1;
+ var r = 0;
+ if((x&0xffff) == 0) { x >>= 16; r += 16; }
+ if((x&0xff) == 0) { x >>= 8; r += 8; }
+ if((x&0xf) == 0) { x >>= 4; r += 4; }
+ if((x&3) == 0) { x >>= 2; r += 2; }
+ if((x&1) == 0) ++r;
+ return r;
+}
+
+// (public) returns index of lowest 1-bit (or -1 if none)
+function bnGetLowestSetBit() {
+ var this_array = this.array;
+ for(var i = 0; i < this.t; ++i)
+ if(this_array[i] != 0) return i*BI_DB+lbit(this_array[i]);
+ if(this.s < 0) return this.t*BI_DB;
+ return -1;
+}
+
+// return number of 1 bits in x
+function cbit(x) {
+ var r = 0;
+ while(x != 0) { x &= x-1; ++r; }
+ return r;
+}
+
+// (public) return number of set bits
+function bnBitCount() {
+ var r = 0, x = this.s&BI_DM;
+ for(var i = 0; i < this.t; ++i) r += cbit(this_array[i]^x);
+ return r;
+}
+
+// (public) true iff nth bit is set
+function bnTestBit(n) {
+ var this_array = this.array;
+ var j = Math.floor(n/BI_DB);
+ if(j >= this.t) return(this.s!=0);
+ return((this_array[j]&(1<<(n%BI_DB)))!=0);
+}
+
+// (protected) this op (1<<n)
+function bnpChangeBit(n,op) {
+ var r = BigInteger.ONE.shiftLeft(n);
+ this.bitwiseTo(r,op,r);
+ return r;
+}
+
+// (public) this | (1<<n)
+function bnSetBit(n) { return this.changeBit(n,op_or); }
+
+// (public) this & ~(1<<n)
+function bnClearBit(n) { return this.changeBit(n,op_andnot); }
+
+// (public) this ^ (1<<n)
+function bnFlipBit(n) { return this.changeBit(n,op_xor); }
+
+// (protected) r = this + a
+function bnpAddTo(a,r) {
+ var this_array = this.array;
+ var a_array = a.array;
+ var r_array = r.array;
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
+ while(i < m) {
+ c += this_array[i]+a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ if(a.t < this.t) {
+ c += a.s;
+ while(i < this.t) {
+ c += this_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += this.s;
+ }
+ else {
+ c += this.s;
+ while(i < a.t) {
+ c += a_array[i];
+ r_array[i++] = c&BI_DM;
+ c >>= BI_DB;
+ }
+ c += a.s;
+ }
+ r.s = (c<0)?-1:0;
+ if(c > 0) r_array[i++] = c;
+ else if(c < -1) r_array[i++] = BI_DV+c;
+ r.t = i;
+ r.clamp();
+}
+
+// (public) this + a
+function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }
+
+// (public) this - a
+function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }
+
+// (public) this * a
+function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }
+
+// (public) this / a
+function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }
+
+// (public) this % a
+function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }
+
+// (public) [this/a,this%a]
+function bnDivideAndRemainder(a) {
+ var q = nbi(), r = nbi();
+ this.divRemTo(a,q,r);
+ return new Array(q,r);
+}
+
+// (protected) this *= n, this >= 0, 1 < n < DV
+function bnpDMultiply(n) {
+ var this_array = this.array;
+ this_array[this.t] = this.am(0,n-1,this,0,0,this.t);
+ ++this.t;
+ this.clamp();
+}
+
+// (protected) this += n << w words, this >= 0
+function bnpDAddOffset(n,w) {
+ var this_array = this.array;
+ while(this.t <= w) this_array[this.t++] = 0;
+ this_array[w] += n;
+ while(this_array[w] >= BI_DV) {
+ this_array[w] -= BI_DV;
+ if(++w >= this.t) this_array[this.t++] = 0;
+ ++this_array[w];
+ }
+}
+
+// A "null" reducer
+function NullExp() {}
+function nNop(x) { return x; }
+function nMulTo(x,y,r) { x.multiplyTo(y,r); }
+function nSqrTo(x,r) { x.squareTo(r); }
+
+NullExp.prototype.convert = nNop;
+NullExp.prototype.revert = nNop;
+NullExp.prototype.mulTo = nMulTo;
+NullExp.prototype.sqrTo = nSqrTo;
+
+// (public) this^e
+function bnPow(e) { return this.exp(e,new NullExp()); }
+
+// (protected) r = lower n words of "this * a", a.t <= n
+// "this" should be the larger one if appropriate.
+function bnpMultiplyLowerTo(a,n,r) {
+ var r_array = r.array;
+ var a_array = a.array;
+ var i = Math.min(this.t+a.t,n);
+ r.s = 0; // assumes a,this >= 0
+ r.t = i;
+ while(i > 0) r_array[--i] = 0;
+ var j;
+ for(j = r.t-this.t; i < j; ++i) r_array[i+this.t] = this.am(0,a_array[i],r,i,0,this.t);
+ for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a_array[i],r,i,0,n-i);
+ r.clamp();
+}
+
+// (protected) r = "this * a" without lower n words, n > 0
+// "this" should be the larger one if appropriate.
+function bnpMultiplyUpperTo(a,n,r) {
+ var r_array = r.array;
+ var a_array = a.array;
+ --n;
+ var i = r.t = this.t+a.t-n;
+ r.s = 0; // assumes a,this >= 0
+ while(--i >= 0) r_array[i] = 0;
+ for(i = Math.max(n-this.t,0); i < a.t; ++i)
+ r_array[this.t+i-n] = this.am(n-i,a_array[i],r,0,0,this.t+i-n);
+ r.clamp();
+ r.drShiftTo(1,r);
+}
+
+// Barrett modular reduction
+function Barrett(m) {
+ // setup Barrett
+ this.r2 = nbi();
+ this.q3 = nbi();
+ BigInteger.ONE.dlShiftTo(2*m.t,this.r2);
+ this.mu = this.r2.divide(m);
+ this.m = m;
+}
+
+function barrettConvert(x) {
+ if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);
+ else if(x.compareTo(this.m) < 0) return x;
+ else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }
+}
+
+function barrettRevert(x) { return x; }
+
+// x = x mod m (HAC 14.42)
+function barrettReduce(x) {
+ x.drShiftTo(this.m.t-1,this.r2);
+ if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }
+ this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);
+ this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);
+ while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);
+ x.subTo(this.r2,x);
+ while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
+}
+
+// r = x^2 mod m; x != r
+function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
+
+// r = x*y mod m; x,y != r
+function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
+
+Barrett.prototype.convert = barrettConvert;
+Barrett.prototype.revert = barrettRevert;
+Barrett.prototype.reduce = barrettReduce;
+Barrett.prototype.mulTo = barrettMulTo;
+Barrett.prototype.sqrTo = barrettSqrTo;
+
+// (public) this^e % m (HAC 14.85)
+function bnModPow(e,m) {
+ var e_array = e.array;
+ var i = e.bitLength(), k, r = nbv(1), z;
+ if(i <= 0) return r;
+ else if(i < 18) k = 1;
+ else if(i < 48) k = 3;
+ else if(i < 144) k = 4;
+ else if(i < 768) k = 5;
+ else k = 6;
+ if(i < 8)
+ z = new Classic(m);
+ else if(m.isEven())
+ z = new Barrett(m);
+ else
+ z = new Montgomery(m);
+
+ // precomputation
+ var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;
+ g[1] = z.convert(this);
+ if(k > 1) {
+ var g2 = nbi();
+ z.sqrTo(g[1],g2);
+ while(n <= km) {
+ g[n] = nbi();
+ z.mulTo(g2,g[n-2],g[n]);
+ n += 2;
+ }
+ }
+
+ var j = e.t-1, w, is1 = true, r2 = nbi(), t;
+ i = nbits(e_array[j])-1;
+ while(j >= 0) {
+ if(i >= k1) w = (e_array[j]>>(i-k1))&km;
+ else {
+ w = (e_array[j]&((1<<(i+1))-1))<<(k1-i);
+ if(j > 0) w |= e_array[j-1]>>(BI_DB+i-k1);
+ }
+
+ n = k;
+ while((w&1) == 0) { w >>= 1; --n; }
+ if((i -= n) < 0) { i += BI_DB; --j; }
+ if(is1) { // ret == 1, don't bother squaring or multiplying it
+ g[w].copyTo(r);
+ is1 = false;
+ }
+ else {
+ while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }
+ if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }
+ z.mulTo(r2,g[w],r);
+ }
+
+ while(j >= 0 && (e_array[j]&(1<<i)) == 0) {
+ z.sqrTo(r,r2); t = r; r = r2; r2 = t;
+ if(--i < 0) { i = BI_DB-1; --j; }
+ }
+ }
+ return z.revert(r);
+}
+
+// (public) gcd(this,a) (HAC 14.54)
+function bnGCD(a) {
+ var x = (this.s<0)?this.negate():this.clone();
+ var y = (a.s<0)?a.negate():a.clone();
+ if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }
+ var i = x.getLowestSetBit(), g = y.getLowestSetBit();
+ if(g < 0) return x;
+ if(i < g) g = i;
+ if(g > 0) {
+ x.rShiftTo(g,x);
+ y.rShiftTo(g,y);
+ }
+ while(x.signum() > 0) {
+ if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);
+ if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);
+ if(x.compareTo(y) >= 0) {
+ x.subTo(y,x);
+ x.rShiftTo(1,x);
+ }
+ else {
+ y.subTo(x,y);
+ y.rShiftTo(1,y);
+ }
+ }
+ if(g > 0) y.lShiftTo(g,y);
+ return y;
+}
+
+// (protected) this % n, n < 2^26
+function bnpModInt(n) {
+ var this_array = this.array;
+ if(n <= 0) return 0;
+ var d = BI_DV%n, r = (this.s<0)?n-1:0;
+ if(this.t > 0)
+ if(d == 0) r = this_array[0]%n;
+ else for(var i = this.t-1; i >= 0; --i) r = (d*r+this_array[i])%n;
+ return r;
+}
+
+// (public) 1/this % m (HAC 14.61)
+function bnModInverse(m) {
+ var ac = m.isEven();
+ if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;
+ var u = m.clone(), v = this.clone();
+ var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);
+ while(u.signum() != 0) {
+ while(u.isEven()) {
+ u.rShiftTo(1,u);
+ if(ac) {
+ if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }
+ a.rShiftTo(1,a);
+ }
+ else if(!b.isEven()) b.subTo(m,b);
+ b.rShiftTo(1,b);
+ }
+ while(v.isEven()) {
+ v.rShiftTo(1,v);
+ if(ac) {
+ if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }
+ c.rShiftTo(1,c);
+ }
+ else if(!d.isEven()) d.subTo(m,d);
+ d.rShiftTo(1,d);
+ }
+ if(u.compareTo(v) >= 0) {
+ u.subTo(v,u);
+ if(ac) a.subTo(c,a);
+ b.subTo(d,b);
+ }
+ else {
+ v.subTo(u,v);
+ if(ac) c.subTo(a,c);
+ d.subTo(b,d);
+ }
+ }
+ if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;
+ if(d.compareTo(m) >= 0) return d.subtract(m);
+ if(d.signum() < 0) d.addTo(m,d); else return d;
+ if(d.signum() < 0) return d.add(m); else return d;
+}
+
+var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509];
+var lplim = (1<<26)/lowprimes[lowprimes.length-1];
+
+// (public) test primality with certainty >= 1-.5^t
+function bnIsProbablePrime(t) {
+ var i, x = this.abs();
+ var x_array = x.array;
+ if(x.t == 1 && x_array[0] <= lowprimes[lowprimes.length-1]) {
+ for(i = 0; i < lowprimes.length; ++i)
+ if(x_array[0] == lowprimes[i]) return true;
+ return false;
+ }
+ if(x.isEven()) return false;
+ i = 1;
+ while(i < lowprimes.length) {
+ var m = lowprimes[i], j = i+1;
+ while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];
+ m = x.modInt(m);
+ while(i < j) if(m%lowprimes[i++] == 0) return false;
+ }
+ return x.millerRabin(t);
+}
+
+// (protected) true if probably prime (HAC 4.24, Miller-Rabin)
+function bnpMillerRabin(t) {
+ var n1 = this.subtract(BigInteger.ONE);
+ var k = n1.getLowestSetBit();
+ if(k <= 0) return false;
+ var r = n1.shiftRight(k);
+ t = (t+1)>>1;
+ if(t > lowprimes.length) t = lowprimes.length;
+ var a = nbi();
+ for(var i = 0; i < t; ++i) {
+ a.fromInt(lowprimes[i]);
+ var y = a.modPow(r,this);
+ if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {
+ var j = 1;
+ while(j++ < k && y.compareTo(n1) != 0) {
+ y = y.modPowInt(2,this);
+ if(y.compareTo(BigInteger.ONE) == 0) return false;
+ }
+ if(y.compareTo(n1) != 0) return false;
+ }
+ }
+ return true;
+}
+
+// protected
+BigInteger.prototype.chunkSize = bnpChunkSize;
+BigInteger.prototype.toRadix = bnpToRadix;
+BigInteger.prototype.fromRadix = bnpFromRadix;
+BigInteger.prototype.fromNumber = bnpFromNumber;
+BigInteger.prototype.bitwiseTo = bnpBitwiseTo;
+BigInteger.prototype.changeBit = bnpChangeBit;
+BigInteger.prototype.addTo = bnpAddTo;
+BigInteger.prototype.dMultiply = bnpDMultiply;
+BigInteger.prototype.dAddOffset = bnpDAddOffset;
+BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;
+BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;
+BigInteger.prototype.modInt = bnpModInt;
+BigInteger.prototype.millerRabin = bnpMillerRabin;
+
+// public
+BigInteger.prototype.clone = bnClone;
+BigInteger.prototype.intValue = bnIntValue;
+BigInteger.prototype.byteValue = bnByteValue;
+BigInteger.prototype.shortValue = bnShortValue;
+BigInteger.prototype.signum = bnSigNum;
+BigInteger.prototype.toByteArray = bnToByteArray;
+BigInteger.prototype.equals = bnEquals;
+BigInteger.prototype.min = bnMin;
+BigInteger.prototype.max = bnMax;
+BigInteger.prototype.and = bnAnd;
+BigInteger.prototype.or = bnOr;
+BigInteger.prototype.xor = bnXor;
+BigInteger.prototype.andNot = bnAndNot;
+BigInteger.prototype.not = bnNot;
+BigInteger.prototype.shiftLeft = bnShiftLeft;
+BigInteger.prototype.shiftRight = bnShiftRight;
+BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;
+BigInteger.prototype.bitCount = bnBitCount;
+BigInteger.prototype.testBit = bnTestBit;
+BigInteger.prototype.setBit = bnSetBit;
+BigInteger.prototype.clearBit = bnClearBit;
+BigInteger.prototype.flipBit = bnFlipBit;
+BigInteger.prototype.add = bnAdd;
+BigInteger.prototype.subtract = bnSubtract;
+BigInteger.prototype.multiply = bnMultiply;
+BigInteger.prototype.divide = bnDivide;
+BigInteger.prototype.remainder = bnRemainder;
+BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;
+BigInteger.prototype.modPow = bnModPow;
+BigInteger.prototype.modInverse = bnModInverse;
+BigInteger.prototype.pow = bnPow;
+BigInteger.prototype.gcd = bnGCD;
+BigInteger.prototype.isProbablePrime = bnIsProbablePrime;
+
+// BigInteger interfaces not implemented in jsbn:
+
+// BigInteger(int signum, byte[] magnitude)
+// double doubleValue()
+// float floatValue()
+// int hashCode()
+// long longValue()
+// static BigInteger valueOf(long val)
+// prng4.js - uses Arcfour as a PRNG
+
+function Arcfour() {
+ this.i = 0;
+ this.j = 0;
+ this.S = new Array();
+}
+
+// Initialize arcfour context from key, an array of ints, each from [0..255]
+function ARC4init(key) {
+ var i, j, t;
+ for(i = 0; i < 256; ++i)
+ this.S[i] = i;
+ j = 0;
+ for(i = 0; i < 256; ++i) {
+ j = (j + this.S[i] + key[i % key.length]) & 255;
+ t = this.S[i];
+ this.S[i] = this.S[j];
+ this.S[j] = t;
+ }
+ this.i = 0;
+ this.j = 0;
+}
+
+function ARC4next() {
+ var t;
+ this.i = (this.i + 1) & 255;
+ this.j = (this.j + this.S[this.i]) & 255;
+ t = this.S[this.i];
+ this.S[this.i] = this.S[this.j];
+ this.S[this.j] = t;
+ return this.S[(t + this.S[this.i]) & 255];
+}
+
+Arcfour.prototype.init = ARC4init;
+Arcfour.prototype.next = ARC4next;
+
+// Plug in your RNG constructor here
+function prng_newstate() {
+ return new Arcfour();
+}
+
+// Pool size must be a multiple of 4 and greater than 32.
+// An array of bytes the size of the pool will be passed to init()
+var rng_psize = 256;
+// Random number generator - requires a PRNG backend, e.g. prng4.js
+
+// For best results, put code like
+// <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
+// in your main HTML document.
+
+var rng_state;
+var rng_pool;
+var rng_pptr;
+
+// Mix in a 32-bit integer into the pool
+function rng_seed_int(x) {
+ rng_pool[rng_pptr++] ^= x & 255;
+ rng_pool[rng_pptr++] ^= (x >> 8) & 255;
+ rng_pool[rng_pptr++] ^= (x >> 16) & 255;
+ rng_pool[rng_pptr++] ^= (x >> 24) & 255;
+ if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;
+}
+
+// Mix in the current time (w/milliseconds) into the pool
+function rng_seed_time() {
+ // Use pre-computed date to avoid making the benchmark
+ // results dependent on the current date.
+ rng_seed_int(1122926989487);
+}
+
+// Initialize the pool with junk if needed.
+if(rng_pool == null) {
+ rng_pool = new Array();
+ rng_pptr = 0;
+ var t;
+ while(rng_pptr < rng_psize) { // extract some randomness from Math.random()
+ t = Math.floor(65536 * Math.random());
+ rng_pool[rng_pptr++] = t >>> 8;
+ rng_pool[rng_pptr++] = t & 255;
+ }
+ rng_pptr = 0;
+ rng_seed_time();
+ //rng_seed_int(window.screenX);
+ //rng_seed_int(window.screenY);
+}
+
+function rng_get_byte() {
+ if(rng_state == null) {
+ rng_seed_time();
+ rng_state = prng_newstate();
+ rng_state.init(rng_pool);
+ for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr)
+ rng_pool[rng_pptr] = 0;
+ rng_pptr = 0;
+ //rng_pool = null;
+ }
+ // TODO: allow reseeding after first request
+ return rng_state.next();
+}
+
+function rng_get_bytes(ba) {
+ var i;
+ for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();
+}
+
+function SecureRandom() {}
+
+SecureRandom.prototype.nextBytes = rng_get_bytes;
+// Depends on jsbn.js and rng.js
+
+// convert a (hex) string to a bignum object
+function parseBigInt(str,r) {
+ return new BigInteger(str,r);
+}
+
+function linebrk(s,n) {
+ var ret = "";
+ var i = 0;
+ while(i + n < s.length) {
+ ret += s.substring(i,i+n) + "\n";
+ i += n;
+ }
+ return ret + s.substring(i,s.length);
+}
+
+function byte2Hex(b) {
+ if(b < 0x10)
+ return "0" + b.toString(16);
+ else
+ return b.toString(16);
+}
+
+// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint
+function pkcs1pad2(s,n) {
+ if(n < s.length + 11) {
+ alert("Message too long for RSA");
+ return null;
+ }
+ var ba = new Array();
+ var i = s.length - 1;
+ while(i >= 0 && n > 0) ba[--n] = s.charCodeAt(i--);
+ ba[--n] = 0;
+ var rng = new SecureRandom();
+ var x = new Array();
+ while(n > 2) { // random non-zero pad
+ x[0] = 0;
+ while(x[0] == 0) rng.nextBytes(x);
+ ba[--n] = x[0];
+ }
+ ba[--n] = 2;
+ ba[--n] = 0;
+ return new BigInteger(ba);
+}
+
+// "empty" RSA key constructor
+function RSAKey() {
+ this.n = null;
+ this.e = 0;
+ this.d = null;
+ this.p = null;
+ this.q = null;
+ this.dmp1 = null;
+ this.dmq1 = null;
+ this.coeff = null;
+}
+
+// Set the public key fields N and e from hex strings
+function RSASetPublic(N,E) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ }
+ else
+ alert("Invalid RSA public key");
+}
+
+// Perform raw public operation on "x": return x^e (mod n)
+function RSADoPublic(x) {
+ return x.modPowInt(this.e, this.n);
+}
+
+// Return the PKCS#1 RSA encryption of "text" as an even-length hex string
+function RSAEncrypt(text) {
+ var m = pkcs1pad2(text,(this.n.bitLength()+7)>>3);
+ if(m == null) return null;
+ var c = this.doPublic(m);
+ if(c == null) return null;
+ var h = c.toString(16);
+ if((h.length & 1) == 0) return h; else return "0" + h;
+}
+
+// Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string
+//function RSAEncryptB64(text) {
+// var h = this.encrypt(text);
+// if(h) return hex2b64(h); else return null;
+//}
+
+// protected
+RSAKey.prototype.doPublic = RSADoPublic;
+
+// public
+RSAKey.prototype.setPublic = RSASetPublic;
+RSAKey.prototype.encrypt = RSAEncrypt;
+//RSAKey.prototype.encrypt_b64 = RSAEncryptB64;
+// Depends on rsa.js and jsbn2.js
+
+// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext
+function pkcs1unpad2(d,n) {
+ var b = d.toByteArray();
+ var i = 0;
+ while(i < b.length && b[i] == 0) ++i;
+ if(b.length-i != n-1 || b[i] != 2)
+ return null;
+ ++i;
+ while(b[i] != 0)
+ if(++i >= b.length) return null;
+ var ret = "";
+ while(++i < b.length)
+ ret += String.fromCharCode(b[i]);
+ return ret;
+}
+
+// Set the private key fields N, e, and d from hex strings
+function RSASetPrivate(N,E,D) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ this.d = parseBigInt(D,16);
+ }
+ else
+ alert("Invalid RSA private key");
+}
+
+// Set the private key fields N, e, d and CRT params from hex strings
+function RSASetPrivateEx(N,E,D,P,Q,DP,DQ,C) {
+ if(N != null && E != null && N.length > 0 && E.length > 0) {
+ this.n = parseBigInt(N,16);
+ this.e = parseInt(E,16);
+ this.d = parseBigInt(D,16);
+ this.p = parseBigInt(P,16);
+ this.q = parseBigInt(Q,16);
+ this.dmp1 = parseBigInt(DP,16);
+ this.dmq1 = parseBigInt(DQ,16);
+ this.coeff = parseBigInt(C,16);
+ }
+ else
+ alert("Invalid RSA private key");
+}
+
+// Generate a new random private key B bits long, using public expt E
+function RSAGenerate(B,E) {
+ var rng = new SecureRandom();
+ var qs = B>>1;
+ this.e = parseInt(E,16);
+ var ee = new BigInteger(E,16);
+ for(;;) {
+ for(;;) {
+ this.p = new BigInteger(B-qs,1,rng);
+ if(this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) break;
+ }
+ for(;;) {
+ this.q = new BigInteger(qs,1,rng);
+ if(this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) break;
+ }
+ if(this.p.compareTo(this.q) <= 0) {
+ var t = this.p;
+ this.p = this.q;
+ this.q = t;
+ }
+ var p1 = this.p.subtract(BigInteger.ONE);
+ var q1 = this.q.subtract(BigInteger.ONE);
+ var phi = p1.multiply(q1);
+ if(phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {
+ this.n = this.p.multiply(this.q);
+ this.d = ee.modInverse(phi);
+ this.dmp1 = this.d.mod(p1);
+ this.dmq1 = this.d.mod(q1);
+ this.coeff = this.q.modInverse(this.p);
+ break;
+ }
+ }
+}
+
+// Perform raw private operation on "x": return x^d (mod n)
+function RSADoPrivate(x) {
+ if(this.p == null || this.q == null)
+ return x.modPow(this.d, this.n);
+
+ // TODO: re-calculate any missing CRT params
+ var xp = x.mod(this.p).modPow(this.dmp1, this.p);
+ var xq = x.mod(this.q).modPow(this.dmq1, this.q);
+
+ while(xp.compareTo(xq) < 0)
+ xp = xp.add(this.p);
+ return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);
+}
+
+// Return the PKCS#1 RSA decryption of "ctext".
+// "ctext" is an even-length hex string and the output is a plain string.
+function RSADecrypt(ctext) {
+ var c = parseBigInt(ctext, 16);
+ var m = this.doPrivate(c);
+ if(m == null) return null;
+ return pkcs1unpad2(m, (this.n.bitLength()+7)>>3);
+}
+
+// Return the PKCS#1 RSA decryption of "ctext".
+// "ctext" is a Base64-encoded string and the output is a plain string.
+//function RSAB64Decrypt(ctext) {
+// var h = b64tohex(ctext);
+// if(h) return this.decrypt(h); else return null;
+//}
+
+// protected
+RSAKey.prototype.doPrivate = RSADoPrivate;
+
+// public
+RSAKey.prototype.setPrivate = RSASetPrivate;
+RSAKey.prototype.setPrivateEx = RSASetPrivateEx;
+RSAKey.prototype.generate = RSAGenerate;
+RSAKey.prototype.decrypt = RSADecrypt;
+//RSAKey.prototype.b64_decrypt = RSAB64Decrypt;
+
+
+nValue="a5261939975948bb7a58dffe5ff54e65f0498f9175f5a09288810b8975871e99af3b5dd94057b0fc07535f5f97444504fa35169d461d0d30cf0192e307727c065168c788771c561a9400fb49175e9e6aa4e23fe11af69e9412dd23b0cb6684c4c2429bce139e848ab26d0829073351f4acd36074eafd036a5eb83359d2a698d3";
+eValue="10001";
+dValue="8e9912f6d3645894e8d38cb58c0db81ff516cf4c7e5a14c7f1eddb1459d2cded4d8d293fc97aee6aefb861859c8b6a3d1dfe710463e1f9ddc72048c09751971c4a580aa51eb523357a3cc48d31cfad1d4a165066ed92d4748fb6571211da5cb14bc11b6e2df7c1a559e6d5ac1cd5c94703a22891464fba23d0d965086277a161";
+pValue="d090ce58a92c75233a6486cb0a9209bf3583b64f540c76f5294bb97d285eed33aec220bde14b2417951178ac152ceab6da7090905b478195498b352048f15e7d";
+qValue="cab575dc652bb66df15a0359609d51d1db184750c00c6698b90ef3465c99655103edbf0d54c56aec0ce3c4d22592338092a126a0cc49f65a4a30d222b411e58f";
+dmp1Value="1a24bca8e273df2f0e47c199bbf678604e7df7215480c77c8db39f49b000ce2cf7500038acfff5433b7d582a01f1826e6f4d42e1c57f5e1fef7b12aabc59fd25";
+dmq1Value="3d06982efbbe47339e1f6d36b1216b8a741d410b0c662f54f7118b27b9a4ec9d914337eb39841d8666f3034408cf94f5b62f11c402fc994fe15a05493150d9fd";
+coeffValue="3a3e731acd8960b7ff9eb81a7ff93bd1cfa74cbd56987db58b4594fb09c09084db1734c8143f98b602b981aaa9243ca28deb69b5b280ee8dcee0fd2625e53250";
+
+setupEngine(am3, 28);
+
+var TEXT = "The quick brown fox jumped over the extremely lazy frog! " +
+ "Now is the time for all good men to come to the party.";
+var encrypted;
+
+function encrypt() {
+ var RSA = new RSAKey();
+ RSA.setPublic(nValue, eValue);
+ RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue);
+ encrypted = RSA.encrypt(TEXT);
+}
+
+function decrypt() {
+ var RSA = new RSAKey();
+ RSA.setPublic(nValue, eValue);
+ RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue);
+ var decrypted = RSA.decrypt(encrypted);
+ if (decrypted != TEXT) {
+ throw new Error("Crypto operation failed");
+ }
+}
+
+for (var i = 0; i < 8; ++i) {
+ encrypt();
+ decrypt();
+}
diff --git a/PerformanceTests/SunSpider/tests/v8-v6/v8-deltablue.js b/PerformanceTests/SunSpider/tests/v8-v6/v8-deltablue.js
new file mode 100644
index 000000000..5c3e2336a
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v6/v8-deltablue.js
@@ -0,0 +1,877 @@
+// Copyright 2008 the V8 project authors. All rights reserved.
+// Copyright 1996 John Maloney and Mario Wolczko.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+// This implementation of the DeltaBlue benchmark is derived
+// from the Smalltalk implementation by John Maloney and Mario
+// Wolczko. Some parts have been translated directly, whereas
+// others have been modified more aggresively to make it feel
+// more like a JavaScript program.
+
+/**
+ * A JavaScript implementation of the DeltaBlue constraint-solving
+ * algorithm, as described in:
+ *
+ * "The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver"
+ * Bjorn N. Freeman-Benson and John Maloney
+ * January 1990 Communications of the ACM,
+ * also available as University of Washington TR 89-08-06.
+ *
+ * Beware: this benchmark is written in a grotesque style where
+ * the constraint model is built by side-effects from constructors.
+ * I've kept it this way to avoid deviating too much from the original
+ * implementation.
+ */
+
+
+/* --- O b j e c t M o d e l --- */
+
+Object.prototype.inheritsFrom = function (shuper) {
+ function Inheriter() { }
+ Inheriter.prototype = shuper.prototype;
+ this.prototype = new Inheriter();
+ this.superConstructor = shuper;
+}
+
+function OrderedCollection() {
+ this.elms = new Array();
+}
+
+OrderedCollection.prototype.add = function (elm) {
+ this.elms.push(elm);
+}
+
+OrderedCollection.prototype.at = function (index) {
+ return this.elms[index];
+}
+
+OrderedCollection.prototype.size = function () {
+ return this.elms.length;
+}
+
+OrderedCollection.prototype.removeFirst = function () {
+ return this.elms.pop();
+}
+
+OrderedCollection.prototype.remove = function (elm) {
+ var index = 0, skipped = 0;
+ for (var i = 0; i < this.elms.length; i++) {
+ var value = this.elms[i];
+ if (value != elm) {
+ this.elms[index] = value;
+ index++;
+ } else {
+ skipped++;
+ }
+ }
+ for (var i = 0; i < skipped; i++)
+ this.elms.pop();
+}
+
+/* --- *
+ * S t r e n g t h
+ * --- */
+
+/**
+ * Strengths are used to measure the relative importance of constraints.
+ * New strengths may be inserted in the strength hierarchy without
+ * disrupting current constraints. Strengths cannot be created outside
+ * this class, so pointer comparison can be used for value comparison.
+ */
+function Strength(strengthValue, name) {
+ this.strengthValue = strengthValue;
+ this.name = name;
+}
+
+Strength.stronger = function (s1, s2) {
+ return s1.strengthValue < s2.strengthValue;
+}
+
+Strength.weaker = function (s1, s2) {
+ return s1.strengthValue > s2.strengthValue;
+}
+
+Strength.weakestOf = function (s1, s2) {
+ return this.weaker(s1, s2) ? s1 : s2;
+}
+
+Strength.strongest = function (s1, s2) {
+ return this.stronger(s1, s2) ? s1 : s2;
+}
+
+Strength.prototype.nextWeaker = function () {
+ switch (this.strengthValue) {
+ case 0: return Strength.WEAKEST;
+ case 1: return Strength.WEAK_DEFAULT;
+ case 2: return Strength.NORMAL;
+ case 3: return Strength.STRONG_DEFAULT;
+ case 4: return Strength.PREFERRED;
+ case 5: return Strength.REQUIRED;
+ }
+}
+
+// Strength constants.
+Strength.REQUIRED = new Strength(0, "required");
+Strength.STONG_PREFERRED = new Strength(1, "strongPreferred");
+Strength.PREFERRED = new Strength(2, "preferred");
+Strength.STRONG_DEFAULT = new Strength(3, "strongDefault");
+Strength.NORMAL = new Strength(4, "normal");
+Strength.WEAK_DEFAULT = new Strength(5, "weakDefault");
+Strength.WEAKEST = new Strength(6, "weakest");
+
+/* --- *
+ * C o n s t r a i n t
+ * --- */
+
+/**
+ * An abstract class representing a system-maintainable relationship
+ * (or "constraint") between a set of variables. A constraint supplies
+ * a strength instance variable; concrete subclasses provide a means
+ * of storing the constrained variables and other information required
+ * to represent a constraint.
+ */
+function Constraint(strength) {
+ this.strength = strength;
+}
+
+/**
+ * Activate this constraint and attempt to satisfy it.
+ */
+Constraint.prototype.addConstraint = function () {
+ this.addToGraph();
+ planner.incrementalAdd(this);
+}
+
+/**
+ * Attempt to find a way to enforce this constraint. If successful,
+ * record the solution, perhaps modifying the current dataflow
+ * graph. Answer the constraint that this constraint overrides, if
+ * there is one, or nil, if there isn't.
+ * Assume: I am not already satisfied.
+ */
+Constraint.prototype.satisfy = function (mark) {
+ this.chooseMethod(mark);
+ if (!this.isSatisfied()) {
+ if (this.strength == Strength.REQUIRED)
+ alert("Could not satisfy a required constraint!");
+ return null;
+ }
+ this.markInputs(mark);
+ var out = this.output();
+ var overridden = out.determinedBy;
+ if (overridden != null) overridden.markUnsatisfied();
+ out.determinedBy = this;
+ if (!planner.addPropagate(this, mark))
+ alert("Cycle encountered");
+ out.mark = mark;
+ return overridden;
+}
+
+Constraint.prototype.destroyConstraint = function () {
+ if (this.isSatisfied()) planner.incrementalRemove(this);
+ else this.removeFromGraph();
+}
+
+/**
+ * Normal constraints are not input constraints. An input constraint
+ * is one that depends on external state, such as the mouse, the
+ * keybord, a clock, or some arbitraty piece of imperative code.
+ */
+Constraint.prototype.isInput = function () {
+ return false;
+}
+
+/* --- *
+ * U n a r y C o n s t r a i n t
+ * --- */
+
+/**
+ * Abstract superclass for constraints having a single possible output
+ * variable.
+ */
+function UnaryConstraint(v, strength) {
+ UnaryConstraint.superConstructor.call(this, strength);
+ this.myOutput = v;
+ this.satisfied = false;
+ this.addConstraint();
+}
+
+UnaryConstraint.inheritsFrom(Constraint);
+
+/**
+ * Adds this constraint to the constraint graph
+ */
+UnaryConstraint.prototype.addToGraph = function () {
+ this.myOutput.addConstraint(this);
+ this.satisfied = false;
+}
+
+/**
+ * Decides if this constraint can be satisfied and records that
+ * decision.
+ */
+UnaryConstraint.prototype.chooseMethod = function (mark) {
+ this.satisfied = (this.myOutput.mark != mark)
+ && Strength.stronger(this.strength, this.myOutput.walkStrength);
+}
+
+/**
+ * Returns true if this constraint is satisfied in the current solution.
+ */
+UnaryConstraint.prototype.isSatisfied = function () {
+ return this.satisfied;
+}
+
+UnaryConstraint.prototype.markInputs = function (mark) {
+ // has no inputs
+}
+
+/**
+ * Returns the current output variable.
+ */
+UnaryConstraint.prototype.output = function () {
+ return this.myOutput;
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this constraint. Assume
+ * this constraint is satisfied.
+ */
+UnaryConstraint.prototype.recalculate = function () {
+ this.myOutput.walkStrength = this.strength;
+ this.myOutput.stay = !this.isInput();
+ if (this.myOutput.stay) this.execute(); // Stay optimization
+}
+
+/**
+ * Records that this constraint is unsatisfied
+ */
+UnaryConstraint.prototype.markUnsatisfied = function () {
+ this.satisfied = false;
+}
+
+UnaryConstraint.prototype.inputsKnown = function () {
+ return true;
+}
+
+UnaryConstraint.prototype.removeFromGraph = function () {
+ if (this.myOutput != null) this.myOutput.removeConstraint(this);
+ this.satisfied = false;
+}
+
+/* --- *
+ * S t a y C o n s t r a i n t
+ * --- */
+
+/**
+ * Variables that should, with some level of preference, stay the same.
+ * Planners may exploit the fact that instances, if satisfied, will not
+ * change their output during plan execution. This is called "stay
+ * optimization".
+ */
+function StayConstraint(v, str) {
+ StayConstraint.superConstructor.call(this, v, str);
+}
+
+StayConstraint.inheritsFrom(UnaryConstraint);
+
+StayConstraint.prototype.execute = function () {
+ // Stay constraints do nothing
+}
+
+/* --- *
+ * E d i t C o n s t r a i n t
+ * --- */
+
+/**
+ * A unary input constraint used to mark a variable that the client
+ * wishes to change.
+ */
+function EditConstraint(v, str) {
+ EditConstraint.superConstructor.call(this, v, str);
+}
+
+EditConstraint.inheritsFrom(UnaryConstraint);
+
+/**
+ * Edits indicate that a variable is to be changed by imperative code.
+ */
+EditConstraint.prototype.isInput = function () {
+ return true;
+}
+
+EditConstraint.prototype.execute = function () {
+ // Edit constraints do nothing
+}
+
+/* --- *
+ * B i n a r y C o n s t r a i n t
+ * --- */
+
+var Direction = new Object();
+Direction.NONE = 0;
+Direction.FORWARD = 1;
+Direction.BACKWARD = -1;
+
+/**
+ * Abstract superclass for constraints having two possible output
+ * variables.
+ */
+function BinaryConstraint(var1, var2, strength) {
+ BinaryConstraint.superConstructor.call(this, strength);
+ this.v1 = var1;
+ this.v2 = var2;
+ this.direction = Direction.NONE;
+ this.addConstraint();
+}
+
+BinaryConstraint.inheritsFrom(Constraint);
+
+/**
+ * Decides if this constraint can be satisfied and which way it
+ * should flow based on the relative strength of the variables related,
+ * and record that decision.
+ */
+BinaryConstraint.prototype.chooseMethod = function (mark) {
+ if (this.v1.mark == mark) {
+ this.direction = (this.v2.mark != mark && Strength.stronger(this.strength, this.v2.walkStrength))
+ ? Direction.FORWARD
+ : Direction.NONE;
+ }
+ if (this.v2.mark == mark) {
+ this.direction = (this.v1.mark != mark && Strength.stronger(this.strength, this.v1.walkStrength))
+ ? Direction.BACKWARD
+ : Direction.NONE;
+ }
+ if (Strength.weaker(this.v1.walkStrength, this.v2.walkStrength)) {
+ this.direction = Strength.stronger(this.strength, this.v1.walkStrength)
+ ? Direction.BACKWARD
+ : Direction.NONE;
+ } else {
+ this.direction = Strength.stronger(this.strength, this.v2.walkStrength)
+ ? Direction.FORWARD
+ : Direction.BACKWARD
+ }
+}
+
+/**
+ * Add this constraint to the constraint graph
+ */
+BinaryConstraint.prototype.addToGraph = function () {
+ this.v1.addConstraint(this);
+ this.v2.addConstraint(this);
+ this.direction = Direction.NONE;
+}
+
+/**
+ * Answer true if this constraint is satisfied in the current solution.
+ */
+BinaryConstraint.prototype.isSatisfied = function () {
+ return this.direction != Direction.NONE;
+}
+
+/**
+ * Mark the input variable with the given mark.
+ */
+BinaryConstraint.prototype.markInputs = function (mark) {
+ this.input().mark = mark;
+}
+
+/**
+ * Returns the current input variable
+ */
+BinaryConstraint.prototype.input = function () {
+ return (this.direction == Direction.FORWARD) ? this.v1 : this.v2;
+}
+
+/**
+ * Returns the current output variable
+ */
+BinaryConstraint.prototype.output = function () {
+ return (this.direction == Direction.FORWARD) ? this.v2 : this.v1;
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this
+ * constraint. Assume this constraint is satisfied.
+ */
+BinaryConstraint.prototype.recalculate = function () {
+ var ihn = this.input(), out = this.output();
+ out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength);
+ out.stay = ihn.stay;
+ if (out.stay) this.execute();
+}
+
+/**
+ * Record the fact that this constraint is unsatisfied.
+ */
+BinaryConstraint.prototype.markUnsatisfied = function () {
+ this.direction = Direction.NONE;
+}
+
+BinaryConstraint.prototype.inputsKnown = function (mark) {
+ var i = this.input();
+ return i.mark == mark || i.stay || i.determinedBy == null;
+}
+
+BinaryConstraint.prototype.removeFromGraph = function () {
+ if (this.v1 != null) this.v1.removeConstraint(this);
+ if (this.v2 != null) this.v2.removeConstraint(this);
+ this.direction = Direction.NONE;
+}
+
+/* --- *
+ * S c a l e C o n s t r a i n t
+ * --- */
+
+/**
+ * Relates two variables by the linear scaling relationship: "v2 =
+ * (v1 * scale) + offset". Either v1 or v2 may be changed to maintain
+ * this relationship but the scale factor and offset are considered
+ * read-only.
+ */
+function ScaleConstraint(src, scale, offset, dest, strength) {
+ this.direction = Direction.NONE;
+ this.scale = scale;
+ this.offset = offset;
+ ScaleConstraint.superConstructor.call(this, src, dest, strength);
+}
+
+ScaleConstraint.inheritsFrom(BinaryConstraint);
+
+/**
+ * Adds this constraint to the constraint graph.
+ */
+ScaleConstraint.prototype.addToGraph = function () {
+ ScaleConstraint.superConstructor.prototype.addToGraph.call(this);
+ this.scale.addConstraint(this);
+ this.offset.addConstraint(this);
+}
+
+ScaleConstraint.prototype.removeFromGraph = function () {
+ ScaleConstraint.superConstructor.prototype.removeFromGraph.call(this);
+ if (this.scale != null) this.scale.removeConstraint(this);
+ if (this.offset != null) this.offset.removeConstraint(this);
+}
+
+ScaleConstraint.prototype.markInputs = function (mark) {
+ ScaleConstraint.superConstructor.prototype.markInputs.call(this, mark);
+ this.scale.mark = this.offset.mark = mark;
+}
+
+/**
+ * Enforce this constraint. Assume that it is satisfied.
+ */
+ScaleConstraint.prototype.execute = function () {
+ if (this.direction == Direction.FORWARD) {
+ this.v2.value = this.v1.value * this.scale.value + this.offset.value;
+ } else {
+ this.v1.value = (this.v2.value - this.offset.value) / this.scale.value;
+ }
+}
+
+/**
+ * Calculate the walkabout strength, the stay flag, and, if it is
+ * 'stay', the value for the current output of this constraint. Assume
+ * this constraint is satisfied.
+ */
+ScaleConstraint.prototype.recalculate = function () {
+ var ihn = this.input(), out = this.output();
+ out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength);
+ out.stay = ihn.stay && this.scale.stay && this.offset.stay;
+ if (out.stay) this.execute();
+}
+
+/* --- *
+ * E q u a l i t y C o n s t r a i n t
+ * --- */
+
+/**
+ * Constrains two variables to have the same value.
+ */
+function EqualityConstraint(var1, var2, strength) {
+ EqualityConstraint.superConstructor.call(this, var1, var2, strength);
+}
+
+EqualityConstraint.inheritsFrom(BinaryConstraint);
+
+/**
+ * Enforce this constraint. Assume that it is satisfied.
+ */
+EqualityConstraint.prototype.execute = function () {
+ this.output().value = this.input().value;
+}
+
+/* --- *
+ * V a r i a b l e
+ * --- */
+
+/**
+ * A constrained variable. In addition to its value, it maintain the
+ * structure of the constraint graph, the current dataflow graph, and
+ * various parameters of interest to the DeltaBlue incremental
+ * constraint solver.
+ **/
+function Variable(name, initialValue) {
+ this.value = initialValue || 0;
+ this.constraints = new OrderedCollection();
+ this.determinedBy = null;
+ this.mark = 0;
+ this.walkStrength = Strength.WEAKEST;
+ this.stay = true;
+ this.name = name;
+}
+
+/**
+ * Add the given constraint to the set of all constraints that refer
+ * this variable.
+ */
+Variable.prototype.addConstraint = function (c) {
+ this.constraints.add(c);
+}
+
+/**
+ * Removes all traces of c from this variable.
+ */
+Variable.prototype.removeConstraint = function (c) {
+ this.constraints.remove(c);
+ if (this.determinedBy == c) this.determinedBy = null;
+}
+
+/* --- *
+ * P l a n n e r
+ * --- */
+
+/**
+ * The DeltaBlue planner
+ */
+function Planner() {
+ this.currentMark = 0;
+}
+
+/**
+ * Attempt to satisfy the given constraint and, if successful,
+ * incrementally update the dataflow graph. Details: If satifying
+ * the constraint is successful, it may override a weaker constraint
+ * on its output. The algorithm attempts to resatisfy that
+ * constraint using some other method. This process is repeated
+ * until either a) it reaches a variable that was not previously
+ * determined by any constraint or b) it reaches a constraint that
+ * is too weak to be satisfied using any of its methods. The
+ * variables of constraints that have been processed are marked with
+ * a unique mark value so that we know where we've been. This allows
+ * the algorithm to avoid getting into an infinite loop even if the
+ * constraint graph has an inadvertent cycle.
+ */
+Planner.prototype.incrementalAdd = function (c) {
+ var mark = this.newMark();
+ var overridden = c.satisfy(mark);
+ while (overridden != null)
+ overridden = overridden.satisfy(mark);
+}
+
+/**
+ * Entry point for retracting a constraint. Remove the given
+ * constraint and incrementally update the dataflow graph.
+ * Details: Retracting the given constraint may allow some currently
+ * unsatisfiable downstream constraint to be satisfied. We therefore collect
+ * a list of unsatisfied downstream constraints and attempt to
+ * satisfy each one in turn. This list is traversed by constraint
+ * strength, strongest first, as a heuristic for avoiding
+ * unnecessarily adding and then overriding weak constraints.
+ * Assume: c is satisfied.
+ */
+Planner.prototype.incrementalRemove = function (c) {
+ var out = c.output();
+ c.markUnsatisfied();
+ c.removeFromGraph();
+ var unsatisfied = this.removePropagateFrom(out);
+ var strength = Strength.REQUIRED;
+ do {
+ for (var i = 0; i < unsatisfied.size(); i++) {
+ var u = unsatisfied.at(i);
+ if (u.strength == strength)
+ this.incrementalAdd(u);
+ }
+ strength = strength.nextWeaker();
+ } while (strength != Strength.WEAKEST);
+}
+
+/**
+ * Select a previously unused mark value.
+ */
+Planner.prototype.newMark = function () {
+ return ++this.currentMark;
+}
+
+/**
+ * Extract a plan for resatisfaction starting from the given source
+ * constraints, usually a set of input constraints. This method
+ * assumes that stay optimization is desired; the plan will contain
+ * only constraints whose output variables are not stay. Constraints
+ * that do no computation, such as stay and edit constraints, are
+ * not included in the plan.
+ * Details: The outputs of a constraint are marked when it is added
+ * to the plan under construction. A constraint may be appended to
+ * the plan when all its input variables are known. A variable is
+ * known if either a) the variable is marked (indicating that has
+ * been computed by a constraint appearing earlier in the plan), b)
+ * the variable is 'stay' (i.e. it is a constant at plan execution
+ * time), or c) the variable is not determined by any
+ * constraint. The last provision is for past states of history
+ * variables, which are not stay but which are also not computed by
+ * any constraint.
+ * Assume: sources are all satisfied.
+ */
+Planner.prototype.makePlan = function (sources) {
+ var mark = this.newMark();
+ var plan = new Plan();
+ var todo = sources;
+ while (todo.size() > 0) {
+ var c = todo.removeFirst();
+ if (c.output().mark != mark && c.inputsKnown(mark)) {
+ plan.addConstraint(c);
+ c.output().mark = mark;
+ this.addConstraintsConsumingTo(c.output(), todo);
+ }
+ }
+ return plan;
+}
+
+/**
+ * Extract a plan for resatisfying starting from the output of the
+ * given constraints, usually a set of input constraints.
+ */
+Planner.prototype.extractPlanFromConstraints = function (constraints) {
+ var sources = new OrderedCollection();
+ for (var i = 0; i < constraints.size(); i++) {
+ var c = constraints.at(i);
+ if (c.isInput() && c.isSatisfied())
+ // not in plan already and eligible for inclusion
+ sources.add(c);
+ }
+ return this.makePlan(sources);
+}
+
+/**
+ * Recompute the walkabout strengths and stay flags of all variables
+ * downstream of the given constraint and recompute the actual
+ * values of all variables whose stay flag is true. If a cycle is
+ * detected, remove the given constraint and answer
+ * false. Otherwise, answer true.
+ * Details: Cycles are detected when a marked variable is
+ * encountered downstream of the given constraint. The sender is
+ * assumed to have marked the inputs of the given constraint with
+ * the given mark. Thus, encountering a marked node downstream of
+ * the output constraint means that there is a path from the
+ * constraint's output to one of its inputs.
+ */
+Planner.prototype.addPropagate = function (c, mark) {
+ var todo = new OrderedCollection();
+ todo.add(c);
+ while (todo.size() > 0) {
+ var d = todo.removeFirst();
+ if (d.output().mark == mark) {
+ this.incrementalRemove(c);
+ return false;
+ }
+ d.recalculate();
+ this.addConstraintsConsumingTo(d.output(), todo);
+ }
+ return true;
+}
+
+
+/**
+ * Update the walkabout strengths and stay flags of all variables
+ * downstream of the given constraint. Answer a collection of
+ * unsatisfied constraints sorted in order of decreasing strength.
+ */
+Planner.prototype.removePropagateFrom = function (out) {
+ out.determinedBy = null;
+ out.walkStrength = Strength.WEAKEST;
+ out.stay = true;
+ var unsatisfied = new OrderedCollection();
+ var todo = new OrderedCollection();
+ todo.add(out);
+ while (todo.size() > 0) {
+ var v = todo.removeFirst();
+ for (var i = 0; i < v.constraints.size(); i++) {
+ var c = v.constraints.at(i);
+ if (!c.isSatisfied())
+ unsatisfied.add(c);
+ }
+ var determining = v.determinedBy;
+ for (var i = 0; i < v.constraints.size(); i++) {
+ var next = v.constraints.at(i);
+ if (next != determining && next.isSatisfied()) {
+ next.recalculate();
+ todo.add(next.output());
+ }
+ }
+ }
+ return unsatisfied;
+}
+
+Planner.prototype.addConstraintsConsumingTo = function (v, coll) {
+ var determining = v.determinedBy;
+ var cc = v.constraints;
+ for (var i = 0; i < cc.size(); i++) {
+ var c = cc.at(i);
+ if (c != determining && c.isSatisfied())
+ coll.add(c);
+ }
+}
+
+/* --- *
+ * P l a n
+ * --- */
+
+/**
+ * A Plan is an ordered list of constraints to be executed in sequence
+ * to resatisfy all currently satisfiable constraints in the face of
+ * one or more changing inputs.
+ */
+function Plan() {
+ this.v = new OrderedCollection();
+}
+
+Plan.prototype.addConstraint = function (c) {
+ this.v.add(c);
+}
+
+Plan.prototype.size = function () {
+ return this.v.size();
+}
+
+Plan.prototype.constraintAt = function (index) {
+ return this.v.at(index);
+}
+
+Plan.prototype.execute = function () {
+ for (var i = 0; i < this.size(); i++) {
+ var c = this.constraintAt(i);
+ c.execute();
+ }
+}
+
+/* --- *
+ * M a i n
+ * --- */
+
+/**
+ * This is the standard DeltaBlue benchmark. A long chain of equality
+ * constraints is constructed with a stay constraint on one end. An
+ * edit constraint is then added to the opposite end and the time is
+ * measured for adding and removing this constraint, and extracting
+ * and executing a constraint satisfaction plan. There are two cases.
+ * In case 1, the added constraint is stronger than the stay
+ * constraint and values must propagate down the entire length of the
+ * chain. In case 2, the added constraint is weaker than the stay
+ * constraint so it cannot be accomodated. The cost in this case is,
+ * of course, very low. Typical situations lie somewhere between these
+ * two extremes.
+ */
+function chainTest(n) {
+ planner = new Planner();
+ var prev = null, first = null, last = null;
+
+ // Build chain of n equality constraints
+ for (var i = 0; i <= n; i++) {
+ var name = "v" + i;
+ var v = new Variable(name);
+ if (prev != null)
+ new EqualityConstraint(prev, v, Strength.REQUIRED);
+ if (i == 0) first = v;
+ if (i == n) last = v;
+ prev = v;
+ }
+
+ new StayConstraint(last, Strength.STRONG_DEFAULT);
+ var edit = new EditConstraint(first, Strength.PREFERRED);
+ var edits = new OrderedCollection();
+ edits.add(edit);
+ var plan = planner.extractPlanFromConstraints(edits);
+ for (var i = 0; i < 100; i++) {
+ first.value = i;
+ plan.execute();
+ if (last.value != i)
+ alert("Chain test failed.");
+ }
+}
+
+/**
+ * This test constructs a two sets of variables related to each
+ * other by a simple linear transformation (scale and offset). The
+ * time is measured to change a variable on either side of the
+ * mapping and to change the scale and offset factors.
+ */
+function projectionTest(n) {
+ planner = new Planner();
+ var scale = new Variable("scale", 10);
+ var offset = new Variable("offset", 1000);
+ var src = null, dst = null;
+
+ var dests = new OrderedCollection();
+ for (var i = 0; i < n; i++) {
+ src = new Variable("src" + i, i);
+ dst = new Variable("dst" + i, i);
+ dests.add(dst);
+ new StayConstraint(src, Strength.NORMAL);
+ new ScaleConstraint(src, scale, offset, dst, Strength.REQUIRED);
+ }
+
+ change(src, 17);
+ if (dst.value != 1170) alert("Projection 1 failed");
+ change(dst, 1050);
+ if (src.value != 5) alert("Projection 2 failed");
+ change(scale, 5);
+ for (var i = 0; i < n - 1; i++) {
+ if (dests.at(i).value != i * 5 + 1000)
+ alert("Projection 3 failed");
+ }
+ change(offset, 2000);
+ for (var i = 0; i < n - 1; i++) {
+ if (dests.at(i).value != i * 5 + 2000)
+ alert("Projection 4 failed");
+ }
+}
+
+function change(v, newValue) {
+ var edit = new EditConstraint(v, Strength.PREFERRED);
+ var edits = new OrderedCollection();
+ edits.add(edit);
+ var plan = planner.extractPlanFromConstraints(edits);
+ for (var i = 0; i < 10; i++) {
+ v.value = newValue;
+ plan.execute();
+ }
+ edit.destroyConstraint();
+}
+
+// Global variable holding the current planner.
+var planner = null;
+
+function deltaBlue() {
+ chainTest(100);
+ projectionTest(100);
+}
+
+for (var i = 0; i < 155; ++i)
+ deltaBlue();
diff --git a/PerformanceTests/SunSpider/tests/v8-v6/v8-earley-boyer.js b/PerformanceTests/SunSpider/tests/v8-v6/v8-earley-boyer.js
new file mode 100644
index 000000000..6c4c6351f
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v6/v8-earley-boyer.js
@@ -0,0 +1,4683 @@
+// This file is automatically generated by scheme2js, except for the
+// benchmark harness code at the beginning and end of the file.
+
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/************* GENERATED FILE - DO NOT EDIT *************/
+/*
+ * To use write/prints/... the default-output port has to be set first.
+ * Simply setting SC_DEFAULT_OUT and SC_ERROR_OUT to the desired values
+ * should do the trick.
+ * In the following example the std-out and error-port are redirected to
+ * a DIV.
+function initRuntime() {
+ function escapeHTML(s) {
+ var tmp = s;
+ tmp = tmp.replace(/&/g, "&amp;");
+ tmp = tmp.replace(/</g, "&lt;");
+ tmp = tmp.replace(/>/g, "&gt;");
+ tmp = tmp.replace(/ /g, "&nbsp;");
+ tmp = tmp.replace(/\n/g, "<br />");
+ tmp = tmp.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp");
+ return tmp;
+
+ }
+
+ document.write("<div id='stdout'></div>");
+ SC_DEFAULT_OUT = new sc_GenericOutputPort(
+ function(s) {
+ var stdout = document.getElementById('stdout');
+ stdout.innerHTML = stdout.innerHTML + escapeHTML(s);
+ });
+ SC_ERROR_OUT = SC_DEFAULT_OUT;
+}
+*/
+
+
+function sc_print_debug() {
+ sc_print.apply(null, arguments);
+}
+/*** META ((export *js*)) */
+var sc_JS_GLOBALS = this;
+
+var __sc_LINE=-1;
+var __sc_FILE="";
+
+/*** META ((export #t)) */
+function sc_alert() {
+ var len = arguments.length;
+ var s = "";
+ var i;
+
+ for( i = 0; i < len; i++ ) {
+ s += sc_toDisplayString(arguments[ i ]);
+ }
+
+ return alert( s );
+}
+
+/*** META ((export #t)) */
+function sc_typeof( x ) {
+ return typeof x;
+}
+
+/*** META ((export #t)) */
+function sc_error() {
+ var a = [sc_jsstring2symbol("*error*")];
+ for (var i = 0; i < arguments.length; i++) {
+ a[i+1] = arguments[i];
+ }
+ throw a;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "throw ")))
+*/
+function sc_raise(obj) {
+ throw obj;
+}
+
+/*** META ((export with-handler-lambda)) */
+function sc_withHandlerLambda(handler, body) {
+ try {
+ return body();
+ } catch(e) {
+ if (!e._internalException)
+ return handler(e);
+ else
+ throw e;
+ }
+}
+
+var sc_properties = new Object();
+
+/*** META ((export #t)) */
+function sc_putpropBang(sym, key, val) {
+ var ht = sc_properties[sym];
+ if (!ht) {
+ ht = new Object();
+ sc_properties[sym] = ht;
+ }
+ ht[key] = val;
+}
+
+/*** META ((export #t)) */
+function sc_getprop(sym, key) {
+ var ht = sc_properties[sym];
+ if (ht) {
+ if (key in ht)
+ return ht[key];
+ else
+ return false;
+ } else
+ return false;
+}
+
+/*** META ((export #t)) */
+function sc_rempropBang(sym, key) {
+ var ht = sc_properties[sym];
+ if (ht)
+ delete ht[key];
+}
+
+/*** META ((export #t)) */
+function sc_any2String(o) {
+ return jsstring2string(sc_toDisplayString(o));
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "==="))
+ (type bool))
+*/
+function sc_isEqv(o1, o2) {
+ return (o1 === o2);
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "==="))
+ (type bool))
+*/
+function sc_isEq(o1, o2) {
+ return (o1 === o2);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isNumber(n) {
+ return (typeof n === "number");
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isComplex(n) {
+ return sc_isNumber(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isReal(n) {
+ return sc_isNumber(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isRational(n) {
+ return sc_isReal(n);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isInteger(n) {
+ return (parseInt(n) === n);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix ", false")))
+*/
+// we don't have exact numbers...
+function sc_isExact(n) {
+ return false;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ", true"))
+ (type bool))
+*/
+function sc_isInexact(n) {
+ return true;
+}
+
+/*** META ((export = =fx =fl)
+ (type bool)
+ (peephole (infix 2 2 "===")))
+*/
+function sc_equal(x) {
+ for (var i = 1; i < arguments.length; i++)
+ if (x !== arguments[i])
+ return false;
+ return true;
+}
+
+/*** META ((export < <fx <fl)
+ (type bool)
+ (peephole (infix 2 2 "<")))
+*/
+function sc_less(x) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x >= arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export > >fx >fl)
+ (type bool)
+ (peephole (infix 2 2 ">")))
+*/
+function sc_greater(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x <= arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export <= <=fx <=fl)
+ (type bool)
+ (peephole (infix 2 2 "<=")))
+*/
+function sc_lessEqual(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x > arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export >= >=fl >=fx)
+ (type bool)
+ (peephole (infix 2 2 ">=")))
+*/
+function sc_greaterEqual(x, y) {
+ for (var i = 1; i < arguments.length; i++) {
+ if (x < arguments[i])
+ return false;
+ x = arguments[i];
+ }
+ return true;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "=== 0")))
+*/
+function sc_isZero(x) {
+ return (x === 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "> 0")))
+*/
+function sc_isPositive(x) {
+ return (x > 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "< 0")))
+*/
+function sc_isNegative(x) {
+ return (x < 0);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "%2===1")))
+*/
+function sc_isOdd(x) {
+ return (x % 2 === 1);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "%2===0")))
+*/
+function sc_isEven(x) {
+ return (x % 2 === 0);
+}
+
+/*** META ((export #t)) */
+var sc_max = Math.max;
+/*** META ((export #t)) */
+var sc_min = Math.min;
+
+/*** META ((export + +fx +fl)
+ (peephole (infix 0 #f "+" "0")))
+*/
+function sc_plus() {
+ var sum = 0;
+ for (var i = 0; i < arguments.length; i++)
+ sum += arguments[i];
+ return sum;
+}
+
+/*** META ((export * *fx *fl)
+ (peephole (infix 0 #f "*" "1")))
+*/
+function sc_multi() {
+ var product = 1;
+ for (var i = 0; i < arguments.length; i++)
+ product *= arguments[i];
+ return product;
+}
+
+/*** META ((export - -fx -fl)
+ (peephole (minus)))
+*/
+function sc_minus(x) {
+ if (arguments.length === 1)
+ return -x;
+ else {
+ var res = x;
+ for (var i = 1; i < arguments.length; i++)
+ res -= arguments[i];
+ return res;
+ }
+}
+
+/*** META ((export / /fl)
+ (peephole (div)))
+*/
+function sc_div(x) {
+ if (arguments.length === 1)
+ return 1/x;
+ else {
+ var res = x;
+ for (var i = 1; i < arguments.length; i++)
+ res /= arguments[i];
+ return res;
+ }
+}
+
+/*** META ((export #t)) */
+var sc_abs = Math.abs;
+
+/*** META ((export quotient /fx)
+ (peephole (hole 2 "parseInt(" x "/" y ")")))
+*/
+function sc_quotient(x, y) {
+ return parseInt(x / y);
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "%")))
+*/
+function sc_remainder(x, y) {
+ return x % y;
+}
+
+/*** META ((export #t)
+ (peephole (modulo)))
+*/
+function sc_modulo(x, y) {
+ var remainder = x % y;
+ // if they don't have the same sign
+ if ((remainder * y) < 0)
+ return remainder + y;
+ else
+ return remainder;
+}
+
+function sc_euclid_gcd(a, b) {
+ var temp;
+ if (a === 0) return b;
+ if (b === 0) return a;
+ if (a < 0) {a = -a;};
+ if (b < 0) {b = -b;};
+ if (b > a) {temp = a; a = b; b = temp;};
+ while (true) {
+ a %= b;
+ if(a === 0) {return b;};
+ b %= a;
+ if(b === 0) {return a;};
+ };
+ return b;
+}
+
+/*** META ((export #t)) */
+function sc_gcd() {
+ var gcd = 0;
+ for (var i = 0; i < arguments.length; i++)
+ gcd = sc_euclid_gcd(gcd, arguments[i]);
+ return gcd;
+}
+
+/*** META ((export #t)) */
+function sc_lcm() {
+ var lcm = 1;
+ for (var i = 0; i < arguments.length; i++) {
+ var f = Math.round(arguments[i] / sc_euclid_gcd(arguments[i], lcm));
+ lcm *= Math.abs(f);
+ }
+ return lcm;
+}
+
+// LIMITATION: numerator and denominator don't make sense in floating point world.
+//var SC_MAX_DECIMALS = 1000000
+//
+// function sc_numerator(x) {
+// var rounded = Math.round(x * SC_MAX_DECIMALS);
+// return Math.round(rounded / sc_euclid_gcd(rounded, SC_MAX_DECIMALS));
+// }
+
+// function sc_denominator(x) {
+// var rounded = Math.round(x * SC_MAX_DECIMALS);
+// return Math.round(SC_MAX_DECIMALS / sc_euclid_gcd(rounded, SC_MAX_DECIMALS));
+// }
+
+/*** META ((export #t)) */
+var sc_floor = Math.floor;
+/*** META ((export #t)) */
+var sc_ceiling = Math.ceil;
+/*** META ((export #t)) */
+var sc_truncate = parseInt;
+/*** META ((export #t)) */
+var sc_round = Math.round;
+
+// LIMITATION: sc_rationalize doesn't make sense in a floating point world.
+
+/*** META ((export #t)) */
+var sc_exp = Math.exp;
+/*** META ((export #t)) */
+var sc_log = Math.log;
+/*** META ((export #t)) */
+var sc_sin = Math.sin;
+/*** META ((export #t)) */
+var sc_cos = Math.cos;
+/*** META ((export #t)) */
+var sc_tan = Math.tan;
+/*** META ((export #t)) */
+var sc_asin = Math.asin;
+/*** META ((export #t)) */
+var sc_acos = Math.acos;
+/*** META ((export #t)) */
+var sc_atan = Math.atan;
+
+/*** META ((export #t)) */
+var sc_sqrt = Math.sqrt;
+/*** META ((export #t)) */
+var sc_expt = Math.pow;
+
+// LIMITATION: we don't have complex numbers.
+// LIMITATION: the following functions are hence not implemented.
+// LIMITATION: make-rectangular, make-polar, real-part, imag-part, magnitude, angle
+// LIMITATION: 2 argument atan
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_exact2inexact(x) {
+ return x;
+}
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_inexact2exact(x) {
+ return x;
+}
+
+function sc_number2jsstring(x, radix) {
+ if (radix)
+ return x.toString(radix);
+ else
+ return x.toString();
+}
+
+function sc_jsstring2number(s, radix) {
+ if (s === "") return false;
+
+ if (radix) {
+ var t = parseInt(s, radix);
+ if (!t && t !== 0) return false;
+ // verify that each char is in range. (parseInt ignores leading
+ // white and trailing chars)
+ var allowedChars = "01234567890abcdefghijklmnopqrstuvwxyz".substring(0, radix+1);
+ if ((new RegExp("^["+allowedChars+"]*$", "i")).test(s))
+ return t;
+ else return false;
+ } else {
+ var t = +s; // does not ignore trailing chars.
+ if (!t && t !== 0) return false;
+ // simply verify that first char is not whitespace.
+ var c = s.charAt(0);
+ // if +c is 0, but the char is not "0", then we have a whitespace.
+ if (+c === 0 && c !== "0") return false;
+ return t;
+ }
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (not)))
+*/
+function sc_not(b) {
+ return b === false;
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isBoolean(b) {
+ return (b === true) || (b === false);
+}
+
+function sc_Pair(car, cdr) {
+ this.car = car;
+ this.cdr = cdr;
+}
+
+sc_Pair.prototype.toString = function() {
+ return sc_toDisplayString(this);
+};
+sc_Pair.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {
+ var current = this;
+
+ var res = "(";
+
+ while(true) {
+ res += writeOrDisplay(current.car);
+ if (sc_isPair(current.cdr)) {
+ res += " ";
+ current = current.cdr;
+ } else if (current.cdr !== null) {
+ res += " . " + writeOrDisplay(current.cdr);
+ break;
+ } else // current.cdr == null
+ break;
+ }
+
+ res += ")";
+
+ return res;
+};
+sc_Pair.prototype.sc_toDisplayString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toDisplayString);
+};
+sc_Pair.prototype.sc_toWriteString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toWriteString);
+};
+// sc_Pair.prototype.sc_toWriteCircleString in IO.js
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_Pair")))
+*/
+function sc_isPair(p) {
+ return (p instanceof sc_Pair);
+}
+
+function sc_isPairEqual(p1, p2, comp) {
+ return (comp(p1.car, p2.car) && comp(p1.cdr, p2.cdr));
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 "new sc_Pair(" car ", " cdr ")")))
+*/
+function sc_cons(car, cdr) {
+ return new sc_Pair(car, cdr);
+}
+
+/*** META ((export cons*)) */
+function sc_consStar() {
+ var res = arguments[arguments.length - 1];
+ for (var i = arguments.length-2; i >= 0; i--)
+ res = new sc_Pair(arguments[i], res);
+ return res;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".car")))
+*/
+function sc_car(p) {
+ return p.car;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".cdr")))
+*/
+function sc_cdr(p) {
+ return p.cdr;
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 p ".car = " val)))
+*/
+function sc_setCarBang(p, val) {
+ p.car = val;
+}
+
+/*** META ((export #t)
+ (peephole (hole 2 p ".cdr = " val)))
+*/
+function sc_setCdrBang(p, val) {
+ p.cdr = val;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".car.car")))
+*/
+function sc_caar(p) { return p.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car")))
+*/
+function sc_cadr(p) { return p.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr")))
+*/
+function sc_cdar(p) { return p.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr")))
+*/
+function sc_cddr(p) { return p.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car")))
+*/
+function sc_caaar(p) { return p.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car")))
+*/
+function sc_cadar(p) { return p.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car")))
+*/
+function sc_caadr(p) { return p.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car")))
+*/
+function sc_caddr(p) { return p.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr")))
+*/
+function sc_cdaar(p) { return p.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr")))
+*/
+function sc_cdadr(p) { return p.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr")))
+*/
+function sc_cddar(p) { return p.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr")))
+*/
+function sc_cdddr(p) { return p.cdr.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car.car")))
+*/
+function sc_caaaar(p) { return p.car.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car.car")))
+*/
+function sc_caadar(p) { return p.car.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car.car")))
+*/
+function sc_caaadr(p) { return p.cdr.car.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car.car")))
+*/
+function sc_caaddr(p) { return p.cdr.cdr.car.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.car.cdr")))
+*/
+function sc_cdaaar(p) { return p.car.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.car.cdr")))
+*/
+function sc_cdadar(p) { return p.car.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.car.cdr")))
+*/
+function sc_cdaadr(p) { return p.cdr.car.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.car.cdr")))
+*/
+function sc_cdaddr(p) { return p.cdr.cdr.car.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr.car")))
+*/
+function sc_cadaar(p) { return p.car.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr.car")))
+*/
+function sc_caddar(p) { return p.car.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr.car")))
+*/
+function sc_cadadr(p) { return p.cdr.car.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr.car")))
+*/
+function sc_cadddr(p) { return p.cdr.cdr.cdr.car; }
+/*** META ((export #t)
+ (peephole (postfix ".car.car.cdr.cdr")))
+*/
+function sc_cddaar(p) { return p.car.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".car.cdr.cdr.cdr")))
+*/
+function sc_cdddar(p) { return p.car.cdr.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.car.cdr.cdr")))
+*/
+function sc_cddadr(p) { return p.cdr.car.cdr.cdr; }
+/*** META ((export #t)
+ (peephole (postfix ".cdr.cdr.cdr.cdr")))
+*/
+function sc_cddddr(p) { return p.cdr.cdr.cdr.cdr; }
+
+/*** META ((export #t)) */
+function sc_lastPair(l) {
+ if (!sc_isPair(l)) sc_error("sc_lastPair: pair expected");
+ var res = l;
+ var cdr = l.cdr;
+ while (sc_isPair(cdr)) {
+ res = cdr;
+ cdr = res.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " === null")))
+*/
+function sc_isNull(o) {
+ return (o === null);
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isList(o) {
+ var rabbit;
+ var turtle;
+
+ var rabbit = o;
+ var turtle = o;
+ while (true) {
+ if (rabbit === null ||
+ (rabbit instanceof sc_Pair && rabbit.cdr === null))
+ return true; // end of list
+ else if ((rabbit instanceof sc_Pair) &&
+ (rabbit.cdr instanceof sc_Pair)) {
+ rabbit = rabbit.cdr.cdr;
+ turtle = turtle.cdr;
+ if (rabbit === turtle) return false; // cycle
+ } else
+ return false; // not pair
+ }
+}
+
+/*** META ((export #t)) */
+function sc_list() {
+ var res = null;
+ var a = arguments;
+ for (var i = a.length-1; i >= 0; i--)
+ res = new sc_Pair(a[i], res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_iota(num, init) {
+ var res = null;
+ if (!init) init = 0;
+ for (var i = num - 1; i >= 0; i--)
+ res = new sc_Pair(i + init, res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_makeList(nbEls, fill) {
+ var res = null;
+ for (var i = 0; i < nbEls; i++)
+ res = new sc_Pair(fill, res);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_length(l) {
+ var res = 0;
+ while (l !== null) {
+ res++;
+ l = l.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_remq(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l !== null) {
+ if (l.car !== o) {
+ tail.cdr = sc_cons(l.car, null);
+ tail = tail.cdr;
+ }
+ l = l.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_remqBang(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ var needsAssig = true;
+ while (l !== null) {
+ if (l.car === o) {
+ needsAssig = true;
+ } else {
+ if (needsAssig) {
+ tail.cdr = l;
+ needsAssig = false;
+ }
+ tail = l;
+ }
+ l = l.cdr;
+ }
+ tail.cdr = null;
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_delete(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l !== null) {
+ if (!sc_isEqual(l.car, o)) {
+ tail.cdr = sc_cons(l.car, null);
+ tail = tail.cdr;
+ }
+ l = l.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_deleteBang(o, l) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ var needsAssig = true;
+ while (l !== null) {
+ if (sc_isEqual(l.car, o)) {
+ needsAssig = true;
+ } else {
+ if (needsAssig) {
+ tail.cdr = l;
+ needsAssig = false;
+ }
+ tail = l;
+ }
+ l = l.cdr;
+ }
+ tail.cdr = null;
+ return dummy.cdr;
+}
+
+function sc_reverseAppendBang(l1, l2) {
+ var res = l2;
+ while (l1 !== null) {
+ var tmp = res;
+ res = l1;
+ l1 = l1.cdr;
+ res.cdr = tmp;
+ }
+ return res;
+}
+
+function sc_dualAppend(l1, l2) {
+ if (l1 === null) return l2;
+ if (l2 === null) return l1;
+ var rev = sc_reverse(l1);
+ return sc_reverseAppendBang(rev, l2);
+}
+
+/*** META ((export #t)) */
+function sc_append() {
+ if (arguments.length === 0)
+ return null;
+ var res = arguments[arguments.length - 1];
+ for (var i = arguments.length - 2; i >= 0; i--)
+ res = sc_dualAppend(arguments[i], res);
+ return res;
+}
+
+function sc_dualAppendBang(l1, l2) {
+ if (l1 === null) return l2;
+ if (l2 === null) return l1;
+ var tmp = l1;
+ while (tmp.cdr !== null) tmp=tmp.cdr;
+ tmp.cdr = l2;
+ return l1;
+}
+
+/*** META ((export #t)) */
+function sc_appendBang() {
+ var res = null;
+ for (var i = 0; i < arguments.length; i++)
+ res = sc_dualAppendBang(res, arguments[i]);
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_reverse(l1) {
+ var res = null;
+ while (l1 !== null) {
+ res = sc_cons(l1.car, res);
+ l1 = l1.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_reverseBang(l) {
+ return sc_reverseAppendBang(l, null);
+}
+
+/*** META ((export #t)) */
+function sc_listTail(l, k) {
+ var res = l;
+ for (var i = 0; i < k; i++) {
+ res = res.cdr;
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_listRef(l, k) {
+ return sc_listTail(l, k).car;
+}
+
+/* // unoptimized generic versions
+function sc_memX(o, l, comp) {
+ while (l != null) {
+ if (comp(l.car, o))
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+function sc_memq(o, l) { return sc_memX(o, l, sc_isEq); }
+function sc_memv(o, l) { return sc_memX(o, l, sc_isEqv); }
+function sc_member(o, l) { return sc_memX(o, l, sc_isEqual); }
+*/
+
+/* optimized versions */
+/*** META ((export #t)) */
+function sc_memq(o, l) {
+ while (l !== null) {
+ if (l.car === o)
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_memv(o, l) {
+ while (l !== null) {
+ if (l.car === o)
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_member(o, l) {
+ while (l !== null) {
+ if (sc_isEqual(l.car,o))
+ return l;
+ l = l.cdr;
+ }
+ return false;
+}
+
+/* // generic unoptimized versions
+function sc_assX(o, al, comp) {
+ while (al != null) {
+ if (comp(al.car.car, o))
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+function sc_assq(o, al) { return sc_assX(o, al, sc_isEq); }
+function sc_assv(o, al) { return sc_assX(o, al, sc_isEqv); }
+function sc_assoc(o, al) { return sc_assX(o, al, sc_isEqual); }
+*/
+// optimized versions
+/*** META ((export #t)) */
+function sc_assq(o, al) {
+ while (al !== null) {
+ if (al.car.car === o)
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_assv(o, al) {
+ while (al !== null) {
+ if (al.car.car === o)
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+/*** META ((export #t)) */
+function sc_assoc(o, al) {
+ while (al !== null) {
+ if (sc_isEqual(al.car.car, o))
+ return al.car;
+ al = al.cdr;
+ }
+ return false;
+}
+
+/* can be used for mutable strings and characters */
+function sc_isCharStringEqual(cs1, cs2) { return cs1.val === cs2.val; }
+function sc_isCharStringLess(cs1, cs2) { return cs1.val < cs2.val; }
+function sc_isCharStringGreater(cs1, cs2) { return cs1.val > cs2.val; }
+function sc_isCharStringLessEqual(cs1, cs2) { return cs1.val <= cs2.val; }
+function sc_isCharStringGreaterEqual(cs1, cs2) { return cs1.val >= cs2.val; }
+function sc_isCharStringCIEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() === cs2.val.toLowerCase(); }
+function sc_isCharStringCILess(cs1, cs2)
+ { return cs1.val.toLowerCase() < cs2.val.toLowerCase(); }
+function sc_isCharStringCIGreater(cs1, cs2)
+ { return cs1.val.toLowerCase() > cs2.val.toLowerCase(); }
+function sc_isCharStringCILessEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() <= cs2.val.toLowerCase(); }
+function sc_isCharStringCIGreaterEqual(cs1, cs2)
+ { return cs1.val.toLowerCase() >= cs2.val.toLowerCase(); }
+
+
+
+
+function sc_Char(c) {
+ var cached = sc_Char.lazy[c];
+ if (cached)
+ return cached;
+ this.val = c;
+ sc_Char.lazy[c] = this;
+ // add return, so FF does not complain.
+ return undefined;
+}
+sc_Char.lazy = new Object();
+// thanks to Eric
+sc_Char.char2readable = {
+ "\000": "#\\null",
+ "\007": "#\\bell",
+ "\010": "#\\backspace",
+ "\011": "#\\tab",
+ "\012": "#\\newline",
+ "\014": "#\\page",
+ "\015": "#\\return",
+ "\033": "#\\escape",
+ "\040": "#\\space",
+ "\177": "#\\delete",
+
+ /* poeticless names */
+ "\001": "#\\soh",
+ "\002": "#\\stx",
+ "\003": "#\\etx",
+ "\004": "#\\eot",
+ "\005": "#\\enq",
+ "\006": "#\\ack",
+
+ "\013": "#\\vt",
+ "\016": "#\\so",
+ "\017": "#\\si",
+
+ "\020": "#\\dle",
+ "\021": "#\\dc1",
+ "\022": "#\\dc2",
+ "\023": "#\\dc3",
+ "\024": "#\\dc4",
+ "\025": "#\\nak",
+ "\026": "#\\syn",
+ "\027": "#\\etb",
+
+ "\030": "#\\can",
+ "\031": "#\\em",
+ "\032": "#\\sub",
+ "\033": "#\\esc",
+ "\034": "#\\fs",
+ "\035": "#\\gs",
+ "\036": "#\\rs",
+ "\037": "#\\us"};
+
+sc_Char.readable2char = {
+ "null": "\000",
+ "bell": "\007",
+ "backspace": "\010",
+ "tab": "\011",
+ "newline": "\012",
+ "page": "\014",
+ "return": "\015",
+ "escape": "\033",
+ "space": "\040",
+ "delete": "\000",
+ "soh": "\001",
+ "stx": "\002",
+ "etx": "\003",
+ "eot": "\004",
+ "enq": "\005",
+ "ack": "\006",
+ "bel": "\007",
+ "bs": "\010",
+ "ht": "\011",
+ "nl": "\012",
+ "vt": "\013",
+ "np": "\014",
+ "cr": "\015",
+ "so": "\016",
+ "si": "\017",
+ "dle": "\020",
+ "dc1": "\021",
+ "dc2": "\022",
+ "dc3": "\023",
+ "dc4": "\024",
+ "nak": "\025",
+ "syn": "\026",
+ "etb": "\027",
+ "can": "\030",
+ "em": "\031",
+ "sub": "\032",
+ "esc": "\033",
+ "fs": "\034",
+ "gs": "\035",
+ "rs": "\036",
+ "us": "\037",
+ "sp": "\040",
+ "del": "\177"};
+
+sc_Char.prototype.toString = function() {
+ return this.val;
+};
+// sc_toDisplayString == toString
+sc_Char.prototype.sc_toWriteString = function() {
+ var entry = sc_Char.char2readable[this.val];
+ if (entry)
+ return entry;
+ else
+ return "#\\" + this.val;
+};
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix "instanceof sc_Char")))
+*/
+function sc_isChar(c) {
+ return (c instanceof sc_Char);
+}
+
+/*** META ((export char=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val === " c2 ".val")))
+*/
+var sc_isCharEqual = sc_isCharStringEqual;
+/*** META ((export char<?)
+ (type bool)
+ (peephole (hole 2 c1 ".val < " c2 ".val")))
+*/
+var sc_isCharLess = sc_isCharStringLess;
+/*** META ((export char>?)
+ (type bool)
+ (peephole (hole 2 c1 ".val > " c2 ".val")))
+*/
+var sc_isCharGreater = sc_isCharStringGreater;
+/*** META ((export char<=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val <= " c2 ".val")))
+*/
+var sc_isCharLessEqual = sc_isCharStringLessEqual;
+/*** META ((export char>=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val >= " c2 ".val")))
+*/
+var sc_isCharGreaterEqual = sc_isCharStringGreaterEqual;
+/*** META ((export char-ci=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() === " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIEqual = sc_isCharStringCIEqual;
+/*** META ((export char-ci<?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() < " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCILess = sc_isCharStringCILess;
+/*** META ((export char-ci>?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() > " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIGreater = sc_isCharStringCIGreater;
+/*** META ((export char-ci<=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() <= " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCILessEqual = sc_isCharStringCILessEqual;
+/*** META ((export char-ci>=?)
+ (type bool)
+ (peephole (hole 2 c1 ".val.toLowerCase() >= " c2 ".val.toLowerCase()")))
+*/
+var sc_isCharCIGreaterEqual = sc_isCharStringCIGreaterEqual;
+
+var SC_NUMBER_CLASS = "0123456789";
+var SC_WHITESPACE_CLASS = ' \r\n\t\f';
+var SC_LOWER_CLASS = 'abcdefghijklmnopqrstuvwxyz';
+var SC_UPPER_CLASS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+
+function sc_isCharOfClass(c, cl) { return (cl.indexOf(c) != -1); }
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharAlphabetic(c)
+ { return sc_isCharOfClass(c.val, SC_LOWER_CLASS) ||
+ sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_NUMBER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharNumeric(c)
+ { return sc_isCharOfClass(c.val, SC_NUMBER_CLASS); }
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharWhitespace(c) {
+ var tmp = c.val;
+ return tmp === " " || tmp === "\r" || tmp === "\n" || tmp === "\t" || tmp === "\f";
+}
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_UPPER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharUpperCase(c)
+ { return sc_isCharOfClass(c.val, SC_UPPER_CLASS); }
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "SC_LOWER_CLASS.indexOf(" c ".val) != -1")))
+*/
+function sc_isCharLowerCase(c)
+ { return sc_isCharOfClass(c.val, SC_LOWER_CLASS); }
+
+/*** META ((export #t)
+ (peephole (postfix ".val.charCodeAt(0)")))
+*/
+function sc_char2integer(c)
+ { return c.val.charCodeAt(0); }
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(String.fromCharCode(" n "))")))
+*/
+function sc_integer2char(n)
+ { return new sc_Char(String.fromCharCode(n)); }
+
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(" c ".val.toUpperCase())")))
+*/
+function sc_charUpcase(c)
+ { return new sc_Char(c.val.toUpperCase()); }
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Char(" c ".val.toLowerCase())")))
+*/
+function sc_charDowncase(c)
+ { return new sc_Char(c.val.toLowerCase()); }
+
+function sc_makeJSStringOfLength(k, c) {
+ var fill;
+ if (c === undefined)
+ fill = " ";
+ else
+ fill = c;
+ var res = "";
+ var len = 1;
+ // every round doubles the size of fill.
+ while (k >= len) {
+ if (k & len)
+ res = res.concat(fill);
+ fill = fill.concat(fill);
+ len *= 2;
+ }
+ return res;
+}
+
+function sc_makejsString(k, c) {
+ var fill;
+ if (c)
+ fill = c.val;
+ else
+ fill = " ";
+ return sc_makeJSStringOfLength(k, fill);
+}
+
+function sc_jsstring2list(s) {
+ var res = null;
+ for (var i = s.length - 1; i >= 0; i--)
+ res = sc_cons(new sc_Char(s.charAt(i)), res);
+ return res;
+}
+
+function sc_list2jsstring(l) {
+ var a = new Array();
+ while(l !== null) {
+ a.push(l.car.val);
+ l = l.cdr;
+ }
+ return "".concat.apply("", a);
+}
+
+var sc_Vector = Array;
+
+sc_Vector.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {
+ if (this.length === 0) return "#()";
+
+ var res = "#(" + writeOrDisplay(this[0]);
+ for (var i = 1; i < this.length; i++)
+ res += " " + writeOrDisplay(this[i]);
+ res += ")";
+ return res;
+};
+sc_Vector.prototype.sc_toDisplayString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toDisplayString);
+};
+sc_Vector.prototype.sc_toWriteString = function() {
+ return this.sc_toWriteOrDisplayString(sc_toWriteString);
+};
+
+/*** META ((export vector? array?)
+ (type bool)
+ (peephole (postfix " instanceof sc_Vector")))
+*/
+function sc_isVector(v) {
+ return (v instanceof sc_Vector);
+}
+
+// only applies to vectors
+function sc_isVectorEqual(v1, v2, comp) {
+ if (v1.length !== v2.length) return false;
+ for (var i = 0; i < v1.length; i++)
+ if (!comp(v1[i], v2[i])) return false;
+ return true;
+}
+
+/*** META ((export make-vector make-array)) */
+function sc_makeVector(size, fill) {
+ var a = new sc_Vector(size);
+ if (fill !== undefined)
+ sc_vectorFillBang(a, fill);
+ return a;
+}
+
+/*** META ((export vector array)
+ (peephole (vector)))
+*/
+function sc_vector() {
+ var a = new sc_Vector();
+ for (var i = 0; i < arguments.length; i++)
+ a.push(arguments[i]);
+ return a;
+}
+
+/*** META ((export vector-length array-length)
+ (peephole (postfix ".length")))
+*/
+function sc_vectorLength(v) {
+ return v.length;
+}
+
+/*** META ((export vector-ref array-ref)
+ (peephole (hole 2 v "[" pos "]")))
+*/
+function sc_vectorRef(v, pos) {
+ return v[pos];
+}
+
+/*** META ((export vector-set! array-set!)
+ (peephole (hole 3 v "[" pos "] = " val)))
+*/
+function sc_vectorSetBang(v, pos, val) {
+ v[pos] = val;
+}
+
+/*** META ((export vector->list array->list)) */
+function sc_vector2list(a) {
+ var res = null;
+ for (var i = a.length-1; i >= 0; i--)
+ res = sc_cons(a[i], res);
+ return res;
+}
+
+/*** META ((export list->vector list->array)) */
+function sc_list2vector(l) {
+ var a = new sc_Vector();
+ while(l !== null) {
+ a.push(l.car);
+ l = l.cdr;
+ }
+ return a;
+}
+
+/*** META ((export vector-fill! array-fill!)) */
+function sc_vectorFillBang(a, fill) {
+ for (var i = 0; i < a.length; i++)
+ a[i] = fill;
+}
+
+
+/*** META ((export #t)) */
+function sc_copyVector(a, len) {
+ if (len <= a.length)
+ return a.slice(0, len);
+ else {
+ var tmp = a.concat();
+ tmp.length = len;
+ return tmp;
+ }
+}
+
+/*** META ((export #t)
+ (peephole (hole 3 a ".slice(" start "," end ")")))
+*/
+function sc_vectorCopy(a, start, end) {
+ return a.slice(start, end);
+}
+
+/*** META ((export #t)) */
+function sc_vectorCopyBang(target, tstart, source, sstart, send) {
+ if (!sstart) sstart = 0;
+ if (!send) send = source.length;
+
+ // if target == source we don't want to overwrite not yet copied elements.
+ if (tstart <= sstart) {
+ for (var i = tstart, j = sstart; j < send; i++, j++) {
+ target[i] = source[j];
+ }
+ } else {
+ var diff = send - sstart;
+ for (var i = tstart + diff - 1, j = send - 1;
+ j >= sstart;
+ i--, j--) {
+ target[i] = source[j];
+ }
+ }
+ return target;
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 1 "typeof " o " === 'function'")))
+*/
+function sc_isProcedure(o) {
+ return (typeof o === "function");
+}
+
+/*** META ((export #t)) */
+function sc_apply(proc) {
+ var args = new Array();
+ // first part of arguments are not in list-form.
+ for (var i = 1; i < arguments.length - 1; i++)
+ args.push(arguments[i]);
+ var l = arguments[arguments.length - 1];
+ while (l !== null) {
+ args.push(l.car);
+ l = l.cdr;
+ }
+ return proc.apply(null, args);
+}
+
+/*** META ((export #t)) */
+function sc_map(proc, l1) {
+ if (l1 === undefined)
+ return null;
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ var revres = null;
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ revres = sc_cons(proc.apply(null, applyArgs), revres);
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_mapBang(proc, l1) {
+ if (l1 === undefined)
+ return null;
+ // else
+ var l1_orig = l1;
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ while (l1 !== null) {
+ var tmp = l1;
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ tmp.car = proc.apply(null, applyArgs);
+ }
+ return l1_orig;
+}
+
+/*** META ((export #t)) */
+function sc_forEach(proc, l1) {
+ if (l1 === undefined)
+ return undefined;
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ proc.apply(null, applyArgs);
+ }
+ // add return so FF does not complain.
+ return undefined;
+}
+
+/*** META ((export #t)) */
+function sc_filter(proc, l1) {
+ var dummy = { cdr : null };
+ var tail = dummy;
+ while (l1 !== null) {
+ if (proc(l1.car) !== false) {
+ tail.cdr = sc_cons(l1.car, null);
+ tail = tail.cdr;
+ }
+ l1 = l1.cdr;
+ }
+ return dummy.cdr;
+}
+
+/*** META ((export #t)) */
+function sc_filterBang(proc, l1) {
+ var head = sc_cons("dummy", l1);
+ var it = head;
+ var next = l1;
+ while (next !== null) {
+ if (proc(next.car) !== false) {
+ it.cdr = next
+ it = next;
+ }
+ next = next.cdr;
+ }
+ it.cdr = null;
+ return head.cdr;
+}
+
+function sc_filterMap1(proc, l1) {
+ var revres = null;
+ while (l1 !== null) {
+ var tmp = proc(l1.car)
+ if (tmp !== false) revres = sc_cons(tmp, revres);
+ l1 = l1.cdr;
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+function sc_filterMap2(proc, l1, l2) {
+ var revres = null;
+ while (l1 !== null) {
+ var tmp = proc(l1.car, l2.car);
+ if(tmp !== false) revres = sc_cons(tmp, revres);
+ l1 = l1.cdr;
+ l2 = l2.cdr
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_filterMap(proc, l1, l2, l3) {
+ if (l2 === undefined)
+ return sc_filterMap1(proc, l1);
+ else if (l3 === undefined)
+ return sc_filterMap2(proc, l1, l2);
+ // else
+ var nbApplyArgs = arguments.length - 1;
+ var applyArgs = new Array(nbApplyArgs);
+ var revres = null;
+ while (l1 !== null) {
+ for (var i = 0; i < nbApplyArgs; i++) {
+ applyArgs[i] = arguments[i + 1].car;
+ arguments[i + 1] = arguments[i + 1].cdr;
+ }
+ var tmp = proc.apply(null, applyArgs);
+ if(tmp !== false) revres = sc_cons(tmp, revres);
+ }
+ return sc_reverseAppendBang(revres, null);
+}
+
+/*** META ((export #t)) */
+function sc_any(proc, l) {
+ var revres = null;
+ while (l !== null) {
+ var tmp = proc(l.car);
+ if(tmp !== false) return tmp;
+ l = l.cdr;
+ }
+ return false;
+}
+
+/*** META ((export any?)
+ (peephole (hole 2 "sc_any(" proc "," l ") !== false")))
+*/
+function sc_anyPred(proc, l) {
+ return sc_any(proc, l)!== false;
+}
+
+/*** META ((export #t)) */
+function sc_every(proc, l) {
+ var revres = null;
+ var tmp = true;
+ while (l !== null) {
+ tmp = proc(l.car);
+ if (tmp === false) return false;
+ l = l.cdr;
+ }
+ return tmp;
+}
+
+/*** META ((export every?)
+ (peephole (hole 2 "sc_every(" proc "," l ") !== false")))
+*/
+function sc_everyPred(proc, l) {
+ var tmp = sc_every(proc, l);
+ if (tmp !== false) return true;
+ return false;
+}
+
+/*** META ((export #t)
+ (peephole (postfix "()")))
+*/
+function sc_force(o) {
+ return o();
+}
+
+/*** META ((export #t)) */
+function sc_makePromise(proc) {
+ var isResultReady = false;
+ var result = undefined;
+ return function() {
+ if (!isResultReady) {
+ var tmp = proc();
+ if (!isResultReady) {
+ isResultReady = true;
+ result = tmp;
+ }
+ }
+ return result;
+ };
+}
+
+function sc_Values(values) {
+ this.values = values;
+}
+
+/*** META ((export #t)
+ (peephole (values)))
+*/
+function sc_values() {
+ if (arguments.length === 1)
+ return arguments[0];
+ else
+ return new sc_Values(arguments);
+}
+
+/*** META ((export #t)) */
+function sc_callWithValues(producer, consumer) {
+ var produced = producer();
+ if (produced instanceof sc_Values)
+ return consumer.apply(null, produced.values);
+ else
+ return consumer(produced);
+}
+
+/*** META ((export #t)) */
+function sc_dynamicWind(before, thunk, after) {
+ before();
+ try {
+ var res = thunk();
+ return res;
+ } finally {
+ after();
+ }
+}
+
+
+// TODO: eval/scheme-report-environment/null-environment/interaction-environment
+
+// LIMITATION: 'load' doesn't exist without files.
+// LIMITATION: transcript-on/transcript-off doesn't exist without files.
+
+
+function sc_Struct(name) {
+ this.name = name;
+}
+sc_Struct.prototype.sc_toDisplayString = function() {
+ return "#<struct" + sc_hash(this) + ">";
+};
+sc_Struct.prototype.sc_toWriteString = sc_Struct.prototype.sc_toDisplayString;
+
+/*** META ((export #t)
+ (peephole (hole 1 "new sc_Struct(" name ")")))
+*/
+function sc_makeStruct(name) {
+ return new sc_Struct(name);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_Struct")))
+*/
+function sc_isStruct(o) {
+ return (o instanceof sc_Struct);
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (hole 2 "(" 1 " instanceof sc_Struct) && ( " 1 ".name === " 0 ")")))
+*/
+function sc_isStructNamed(name, s) {
+ return ((s instanceof sc_Struct) && (s.name === name));
+}
+
+/*** META ((export struct-field)
+ (peephole (hole 3 0 "[" 2 "]")))
+*/
+function sc_getStructField(s, name, field) {
+ return s[field];
+}
+
+/*** META ((export struct-field-set!)
+ (peephole (hole 4 0 "[" 2 "] = " 3)))
+*/
+function sc_setStructFieldBang(s, name, field, val) {
+ s[field] = val;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "~")))
+*/
+function sc_bitNot(x) {
+ return ~x;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "&")))
+*/
+function sc_bitAnd(x, y) {
+ return x & y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "|")))
+*/
+function sc_bitOr(x, y) {
+ return x | y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "^")))
+*/
+function sc_bitXor(x, y) {
+ return x ^ y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 "<<")))
+*/
+function sc_bitLsh(x, y) {
+ return x << y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 ">>")))
+*/
+function sc_bitRsh(x, y) {
+ return x >> y;
+}
+
+/*** META ((export #t)
+ (peephole (infix 2 2 ">>>")))
+*/
+function sc_bitUrsh(x, y) {
+ return x >>> y;
+}
+
+/*** META ((export js-field js-property)
+ (peephole (hole 2 o "[" field "]")))
+*/
+function sc_jsField(o, field) {
+ return o[field];
+}
+
+/*** META ((export js-field-set! js-property-set!)
+ (peephole (hole 3 o "[" field "] = " val)))
+*/
+function sc_setJsFieldBang(o, field, val) {
+ return o[field] = val;
+}
+
+/*** META ((export js-field-delete! js-property-delete!)
+ (peephole (hole 2 "delete" o "[" field "]")))
+*/
+function sc_deleteJsFieldBang(o, field) {
+ delete o[field];
+}
+
+/*** META ((export #t)
+ (peephole (jsCall)))
+*/
+function sc_jsCall(o, fun) {
+ var args = new Array();
+ for (var i = 2; i < arguments.length; i++)
+ args[i-2] = arguments[i];
+ return fun.apply(o, args);
+}
+
+/*** META ((export #t)
+ (peephole (jsMethodCall)))
+*/
+function sc_jsMethodCall(o, field) {
+ var args = new Array();
+ for (var i = 2; i < arguments.length; i++)
+ args[i-2] = arguments[i];
+ return o[field].apply(o, args);
+}
+
+/*** META ((export new js-new)
+ (peephole (jsNew)))
+*/
+function sc_jsNew(c) {
+ var evalStr = "new c(";
+ evalStr +=arguments.length > 1? "arguments[1]": "";
+ for (var i = 2; i < arguments.length; i++)
+ evalStr += ", arguments[" + i + "]";
+ evalStr +=")";
+ return eval(evalStr);
+}
+
+// ======================== RegExp ====================
+/*** META ((export #t)) */
+function sc_pregexp(re) {
+ return new RegExp(sc_string2jsstring(re));
+}
+
+/*** META ((export #t)) */
+function sc_pregexpMatch(re, s) {
+ var reg = (re instanceof RegExp) ? re : sc_pregexp(re);
+ var tmp = reg.exec(sc_string2jsstring(s));
+
+ if (tmp == null) return false;
+
+ var res = null;
+ for (var i = tmp.length-1; i >= 0; i--) {
+ if (tmp[i] !== null) {
+ res = sc_cons(sc_jsstring2string(tmp[i]), res);
+ } else {
+ res = sc_cons(false, res);
+ }
+ }
+ return res;
+}
+
+/*** META ((export #t)) */
+function sc_pregexpReplace(re, s1, s2) {
+ var reg;
+ var jss1 = sc_string2jsstring(s1);
+ var jss2 = sc_string2jsstring(s2);
+
+ if (re instanceof RegExp) {
+ if (re.global)
+ reg = re;
+ else
+ reg = new RegExp(re.source);
+ } else {
+ reg = new RegExp(sc_string2jsstring(re));
+ }
+
+ return jss1.replace(reg, jss2);
+}
+
+/*** META ((export pregexp-replace*)) */
+function sc_pregexpReplaceAll(re, s1, s2) {
+ var reg;
+ var jss1 = sc_string2jsstring(s1);
+ var jss2 = sc_string2jsstring(s2);
+
+ if (re instanceof RegExp) {
+ if (re.global)
+ reg = re;
+ else
+ reg = new RegExp(re.source, "g");
+ } else {
+ reg = new RegExp(sc_string2jsstring(re), "g");
+ }
+
+ return jss1.replace(reg, jss2);
+}
+
+/*** META ((export #t)) */
+function sc_pregexpSplit(re, s) {
+ var reg = ((re instanceof RegExp) ?
+ re :
+ new RegExp(sc_string2jsstring(re)));
+ var jss = sc_string2jsstring(s);
+ var tmp = jss.split(reg);
+
+ if (tmp == null) return false;
+
+ return sc_vector2list(tmp);
+}
+
+
+/* =========================================================================== */
+/* Other library stuff */
+/* =========================================================================== */
+
+/*** META ((export #t)
+ (peephole (hole 1 "Math.floor(Math.random()*" 'n ")")))
+*/
+function sc_random(n) {
+ return Math.floor(Math.random()*n);
+}
+
+/*** META ((export current-date)
+ (peephole (hole 0 "new Date()")))
+*/
+function sc_currentDate() {
+ return new Date();
+}
+
+function sc_Hashtable() {
+}
+sc_Hashtable.prototype.toString = function() {
+ return "#{%hashtable}";
+};
+// sc_toWriteString == sc_toDisplayString == toString
+
+function sc_HashtableElement(key, val) {
+ this.key = key;
+ this.val = val;
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "new sc_Hashtable()")))
+*/
+function sc_makeHashtable() {
+ return new sc_Hashtable();
+}
+
+/*** META ((export #t)) */
+function sc_hashtablePutBang(ht, key, val) {
+ var hash = sc_hash(key);
+ ht[hash] = new sc_HashtableElement(key, val);
+}
+
+/*** META ((export #t)) */
+function sc_hashtableGet(ht, key) {
+ var hash = sc_hash(key);
+ if (hash in ht)
+ return ht[hash].val;
+ else
+ return false;
+}
+
+/*** META ((export #t)) */
+function sc_hashtableForEach(ht, f) {
+ for (var v in ht) {
+ if (ht[v] instanceof sc_HashtableElement)
+ f(ht[v].key, ht[v].val);
+ }
+}
+
+/*** META ((export hashtable-contains?)
+ (peephole (hole 2 "sc_hash(" 1 ") in " 0)))
+*/
+function sc_hashtableContains(ht, key) {
+ var hash = sc_hash(key);
+ if (hash in ht)
+ return true;
+ else
+ return false;
+}
+
+var SC_HASH_COUNTER = 0;
+
+function sc_hash(o) {
+ if (o === null)
+ return "null";
+ else if (o === undefined)
+ return "undefined";
+ else if (o === true)
+ return "true";
+ else if (o === false)
+ return "false";
+ else if (typeof o === "number")
+ return "num-" + o;
+ else if (typeof o === "string")
+ return "jsstr-" + o;
+ else if (o.sc_getHash)
+ return o.sc_getHash();
+ else
+ return sc_counterHash.call(o);
+}
+function sc_counterHash() {
+ if (!this.sc_hash) {
+ this.sc_hash = "hash-" + SC_HASH_COUNTER;
+ SC_HASH_COUNTER++;
+ }
+ return this.sc_hash;
+}
+
+function sc_Trampoline(args, maxTailCalls) {
+ this['__trampoline return__'] = true;
+ this.args = args;
+ this.MAX_TAIL_CALLs = maxTailCalls;
+}
+// TODO: call/cc stuff
+sc_Trampoline.prototype.restart = function() {
+ var o = this;
+ while (true) {
+ // set both globals.
+ SC_TAIL_OBJECT.calls = o.MAX_TAIL_CALLs-1;
+ var fun = o.args.callee;
+ var res = fun.apply(SC_TAIL_OBJECT, o.args);
+ if (res instanceof sc_Trampoline)
+ o = res;
+ else
+ return res;
+ }
+}
+
+/*** META ((export bind-exit-lambda)) */
+function sc_bindExitLambda(proc) {
+ var escape_obj = new sc_BindExitException();
+ var escape = function(res) {
+ escape_obj.res = res;
+ throw escape_obj;
+ };
+ try {
+ return proc(escape);
+ } catch(e) {
+ if (e === escape_obj) {
+ return e.res;
+ }
+ throw e;
+ }
+}
+function sc_BindExitException() {
+ this._internalException = true;
+}
+
+var SC_SCM2JS_GLOBALS = new Object();
+
+// default tail-call depth.
+// normally the program should set it again. but just in case...
+var SC_TAIL_OBJECT = new Object();
+SC_SCM2JS_GLOBALS.TAIL_OBJECT = SC_TAIL_OBJECT;
+// ======================== I/O =======================
+
+/*------------------------------------------------------------------*/
+
+function sc_EOF() {
+}
+var SC_EOF_OBJECT = new sc_EOF();
+
+function sc_Port() {
+}
+
+/* --------------- Input ports -------------------------------------*/
+
+function sc_InputPort() {
+}
+sc_InputPort.prototype = new sc_Port();
+
+sc_InputPort.prototype.peekChar = function() {
+ if (!("peeked" in this))
+ this.peeked = this.getNextChar();
+ return this.peeked;
+}
+sc_InputPort.prototype.readChar = function() {
+ var tmp = this.peekChar();
+ delete this.peeked;
+ return tmp;
+}
+sc_InputPort.prototype.isCharReady = function() {
+ return true;
+}
+sc_InputPort.prototype.close = function() {
+ // do nothing
+}
+
+/* .............. String port ..........................*/
+function sc_ErrorInputPort() {
+};
+sc_ErrorInputPort.prototype = new sc_InputPort();
+sc_ErrorInputPort.prototype.getNextChar = function() {
+ throw "can't read from error-port.";
+};
+sc_ErrorInputPort.prototype.isCharReady = function() {
+ return false;
+};
+
+
+/* .............. String port ..........................*/
+
+function sc_StringInputPort(jsStr) {
+ // we are going to do some charAts on the str.
+ // instead of recreating all the time a String-object, we
+ // create one in the beginning. (not sure, if this is really an optim)
+ this.str = new String(jsStr);
+ this.pos = 0;
+}
+sc_StringInputPort.prototype = new sc_InputPort();
+sc_StringInputPort.prototype.getNextChar = function() {
+ if (this.pos >= this.str.length)
+ return SC_EOF_OBJECT;
+ return this.str.charAt(this.pos++);
+};
+
+/* ------------- Read and other lib-funs -------------------------------*/
+function sc_Token(type, val, pos) {
+ this.type = type;
+ this.val = val;
+ this.pos = pos;
+}
+sc_Token.EOF = 0/*EOF*/;
+sc_Token.OPEN_PAR = 1/*OPEN_PAR*/;
+sc_Token.CLOSE_PAR = 2/*CLOSE_PAR*/;
+sc_Token.OPEN_BRACE = 3/*OPEN_BRACE*/;
+sc_Token.CLOSE_BRACE = 4/*CLOSE_BRACE*/;
+sc_Token.OPEN_BRACKET = 5/*OPEN_BRACKET*/;
+sc_Token.CLOSE_BRACKET = 6/*CLOSE_BRACKET*/;
+sc_Token.WHITESPACE = 7/*WHITESPACE*/;
+sc_Token.QUOTE = 8/*QUOTE*/;
+sc_Token.ID = 9/*ID*/;
+sc_Token.DOT = 10/*DOT*/;
+sc_Token.STRING = 11/*STRING*/;
+sc_Token.NUMBER = 12/*NUMBER*/;
+sc_Token.ERROR = 13/*ERROR*/;
+sc_Token.VECTOR_BEGIN = 14/*VECTOR_BEGIN*/;
+sc_Token.TRUE = 15/*TRUE*/;
+sc_Token.FALSE = 16/*FALSE*/;
+sc_Token.UNSPECIFIED = 17/*UNSPECIFIED*/;
+sc_Token.REFERENCE = 18/*REFERENCE*/;
+sc_Token.STORE = 19/*STORE*/;
+sc_Token.CHAR = 20/*CHAR*/;
+
+var SC_ID_CLASS = SC_LOWER_CLASS + SC_UPPER_CLASS + "!$%*+-./:<=>?@^_~";
+function sc_Tokenizer(port) {
+ this.port = port;
+}
+sc_Tokenizer.prototype.peekToken = function() {
+ if (this.peeked)
+ return this.peeked;
+ var newToken = this.nextToken();
+ this.peeked = newToken;
+ return newToken;
+};
+sc_Tokenizer.prototype.readToken = function() {
+ var tmp = this.peekToken();
+ delete this.peeked;
+ return tmp;
+};
+sc_Tokenizer.prototype.nextToken = function() {
+ var port = this.port;
+
+ function isNumberChar(c) {
+ return (c >= "0" && c <= "9");
+ };
+ function isIdOrNumberChar(c) {
+ return SC_ID_CLASS.indexOf(c) != -1 || // ID-char
+ (c >= "0" && c <= "9");
+ }
+ function isWhitespace(c) {
+ return c === " " || c === "\r" || c === "\n" || c === "\t" || c === "\f";
+ };
+ function isWhitespaceOrEOF(c) {
+ return isWhitespace(c) || c === SC_EOF_OBJECT;
+ };
+
+ function readString() {
+ res = "";
+ while (true) {
+ var c = port.readChar();
+ switch (c) {
+ case '"':
+ return new sc_Token(11/*STRING*/, res);
+ case "\\":
+ var tmp = port.readChar();
+ switch (tmp) {
+ case '0': res += "\0"; break;
+ case 'a': res += "\a"; break;
+ case 'b': res += "\b"; break;
+ case 'f': res += "\f"; break;
+ case 'n': res += "\n"; break;
+ case 'r': res += "\r"; break;
+ case 't': res += "\t"; break;
+ case 'v': res += "\v"; break;
+ case '"': res += '"'; break;
+ case '\\': res += '\\'; break;
+ case 'x':
+ /* hexa-number */
+ var nb = 0;
+ while (true) {
+ var hexC = port.peekChar();
+ if (hexC >= '0' && hexC <= '9') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - '0'.charCodeAt(0);
+ } else if (hexC >= 'a' && hexC <= 'f') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - 'a'.charCodeAt(0);
+ } else if (hexC >= 'A' && hexC <= 'F') {
+ port.readChar();
+ nb = nb * 16 + hexC.charCodeAt(0) - 'A'.charCodeAt(0);
+ } else {
+ // next char isn't part of hex.
+ res += String.fromCharCode(nb);
+ break;
+ }
+ }
+ break;
+ default:
+ if (tmp === SC_EOF_OBJECT) {
+ return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res);
+ }
+ res += tmp;
+ }
+ break;
+ default:
+ if (c === SC_EOF_OBJECT) {
+ return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res);
+ }
+ res += c;
+ }
+ }
+ };
+ function readIdOrNumber(firstChar) {
+ var res = firstChar;
+ while (isIdOrNumberChar(port.peekChar()))
+ res += port.readChar();
+ if (isNaN(res))
+ return new sc_Token(9/*ID*/, res);
+ else
+ return new sc_Token(12/*NUMBER*/, res - 0);
+ };
+
+ function skipWhitespaceAndComments() {
+ var done = false;
+ while (!done) {
+ done = true;
+ while (isWhitespace(port.peekChar()))
+ port.readChar();
+ if (port.peekChar() === ';') {
+ port.readChar();
+ done = false;
+ while (true) {
+ curChar = port.readChar();
+ if (curChar === SC_EOF_OBJECT ||
+ curChar === '\n')
+ break;
+ }
+ }
+ }
+ };
+
+ function readDot() {
+ if (isWhitespace(port.peekChar()))
+ return new sc_Token(10/*DOT*/);
+ else
+ return readIdOrNumber(".");
+ };
+
+ function readSharp() {
+ var c = port.readChar();
+ if (isWhitespace(c))
+ return new sc_Token(13/*ERROR*/, "bad #-pattern0.");
+
+ // reference
+ if (isNumberChar(c)) {
+ var nb = c - 0;
+ while (isNumberChar(port.peekChar()))
+ nb = nb*10 + (port.readChar() - 0);
+ switch (port.readChar()) {
+ case '#':
+ return new sc_Token(18/*REFERENCE*/, nb);
+ case '=':
+ return new sc_Token(19/*STORE*/, nb);
+ default:
+ return new sc_Token(13/*ERROR*/, "bad #-pattern1." + nb);
+ }
+ }
+
+ if (c === "(")
+ return new sc_Token(14/*VECTOR_BEGIN*/);
+
+ if (c === "\\") { // character
+ var tmp = ""
+ while (!isWhitespaceOrEOF(port.peekChar()))
+ tmp += port.readChar();
+ switch (tmp.length) {
+ case 0: // it's escaping a whitespace char:
+ if (sc_isEOFObject(port.peekChar))
+ return new sc_Token(13/*ERROR*/, "bad #-pattern2.");
+ else
+ return new sc_Token(20/*CHAR*/, port.readChar());
+ case 1:
+ return new sc_Token(20/*CHAR*/, tmp);
+ default:
+ var entry = sc_Char.readable2char[tmp.toLowerCase()];
+ if (entry)
+ return new sc_Token(20/*CHAR*/, entry);
+ else
+ return new sc_Token(13/*ERROR*/, "unknown character description: #\\" + tmp);
+ }
+ }
+
+ // some constants (#t, #f, #unspecified)
+ var res;
+ var needing;
+ switch (c) {
+ case 't': res = new sc_Token(15/*TRUE*/, true); needing = ""; break;
+ case 'f': res = new sc_Token(16/*FALSE*/, false); needing = ""; break;
+ case 'u': res = new sc_Token(17/*UNSPECIFIED*/, undefined); needing = "nspecified"; break;
+ default:
+ return new sc_Token(13/*ERROR*/, "bad #-pattern3: " + c);
+ }
+ while(true) {
+ c = port.peekChar();
+ if ((isWhitespaceOrEOF(c) || c === ')') &&
+ needing == "")
+ return res;
+ else if (isWhitespace(c) || needing == "")
+ return new sc_Token(13/*ERROR*/, "bad #-pattern4 " + c + " " + needing);
+ else if (needing.charAt(0) == c) {
+ port.readChar(); // consume
+ needing = needing.slice(1);
+ } else
+ return new sc_Token(13/*ERROR*/, "bad #-pattern5");
+ }
+
+ };
+
+ skipWhitespaceAndComments();
+ var curChar = port.readChar();
+ if (curChar === SC_EOF_OBJECT)
+ return new sc_Token(0/*EOF*/, curChar);
+ switch (curChar)
+ {
+ case " ":
+ case "\n":
+ case "\t":
+ return readWhitespace();
+ case "(":
+ return new sc_Token(1/*OPEN_PAR*/);
+ case ")":
+ return new sc_Token(2/*CLOSE_PAR*/);
+ case "{":
+ return new sc_Token(3/*OPEN_BRACE*/);
+ case "}":
+ return new sc_Token(4/*CLOSE_BRACE*/);
+ case "[":
+ return new sc_Token(5/*OPEN_BRACKET*/);
+ case "]":
+ return new sc_Token(6/*CLOSE_BRACKET*/);
+ case "'":
+ return new sc_Token(8/*QUOTE*/);
+ case "#":
+ return readSharp();
+ case ".":
+ return readDot();
+ case '"':
+ return readString();
+ default:
+ if (isIdOrNumberChar(curChar))
+ return readIdOrNumber(curChar);
+ throw "unexpected character: " + curChar;
+ }
+};
+
+function sc_Reader(tokenizer) {
+ this.tokenizer = tokenizer;
+ this.backref = new Array();
+}
+sc_Reader.prototype.read = function() {
+ function readList(listBeginType) {
+ function matchesPeer(open, close) {
+ return open === 1/*OPEN_PAR*/ && close === 2/*CLOSE_PAR*/
+ || open === 3/*OPEN_BRACE*/ && close === 4/*CLOSE_BRACE*/
+ || open === 5/*OPEN_BRACKET*/ && close === 6/*CLOSE_BRACKET*/;
+ };
+ var res = null;
+
+ while (true) {
+ var token = tokenizer.peekToken();
+
+ switch (token.type) {
+ case 2/*CLOSE_PAR*/:
+ case 4/*CLOSE_BRACE*/:
+ case 6/*CLOSE_BRACKET*/:
+ if (matchesPeer(listBeginType, token.type)) {
+ tokenizer.readToken(); // consume token
+ return sc_reverseBang(res);
+ } else
+ throw "closing par doesn't match: " + listBeginType
+ + " " + listEndType;
+
+ case 0/*EOF*/:
+ throw "unexpected end of file";
+
+ case 10/*DOT*/:
+ tokenizer.readToken(); // consume token
+ var cdr = this.read();
+ var par = tokenizer.readToken();
+ if (!matchesPeer(listBeginType, par.type))
+ throw "closing par doesn't match: " + listBeginType
+ + " " + par.type;
+ else
+ return sc_reverseAppendBang(res, cdr);
+
+
+ default:
+ res = sc_cons(this.read(), res);
+ }
+ }
+ };
+ function readQuote() {
+ return sc_cons("quote", sc_cons(this.read(), null));
+ };
+ function readVector() {
+ // opening-parenthesis is already consumed
+ var a = new Array();
+ while (true) {
+ var token = tokenizer.peekToken();
+ switch (token.type) {
+ case 2/*CLOSE_PAR*/:
+ tokenizer.readToken();
+ return a;
+
+ default:
+ a.push(this.read());
+ }
+ }
+ };
+
+ function storeRefence(nb) {
+ var tmp = this.read();
+ this.backref[nb] = tmp;
+ return tmp;
+ };
+
+ function readReference(nb) {
+ if (nb in this.backref)
+ return this.backref[nb];
+ else
+ throw "bad reference: " + nb;
+ };
+
+ var tokenizer = this.tokenizer;
+
+ var token = tokenizer.readToken();
+
+ // handle error
+ if (token.type === 13/*ERROR*/)
+ throw token.val;
+
+ switch (token.type) {
+ case 1/*OPEN_PAR*/:
+ case 3/*OPEN_BRACE*/:
+ case 5/*OPEN_BRACKET*/:
+ return readList.call(this, token.type);
+ case 8/*QUOTE*/:
+ return readQuote.call(this);
+ case 11/*STRING*/:
+ return sc_jsstring2string(token.val);
+ case 20/*CHAR*/:
+ return new sc_Char(token.val);
+ case 14/*VECTOR_BEGIN*/:
+ return readVector.call(this);
+ case 18/*REFERENCE*/:
+ return readReference.call(this, token.val);
+ case 19/*STORE*/:
+ return storeRefence.call(this, token.val);
+ case 9/*ID*/:
+ return sc_jsstring2symbol(token.val);
+ case 0/*EOF*/:
+ case 12/*NUMBER*/:
+ case 15/*TRUE*/:
+ case 16/*FALSE*/:
+ case 17/*UNSPECIFIED*/:
+ return token.val;
+ default:
+ throw "unexpected token " + token.type + " " + token.val;
+ }
+};
+
+/*** META ((export #t)) */
+function sc_read(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var reader = new sc_Reader(new sc_Tokenizer(port));
+ return reader.read();
+}
+/*** META ((export #t)) */
+function sc_readChar(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var t = port.readChar();
+ return t === SC_EOF_OBJECT? t: new sc_Char(t);
+}
+/*** META ((export #t)) */
+function sc_peekChar(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ var t = port.peekChar();
+ return t === SC_EOF_OBJECT? t: new sc_Char(t);
+}
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isCharReady(port) {
+ if (port === undefined) // we assume the port hasn't been given.
+ port = SC_DEFAULT_IN; // THREAD: shared var...
+ return port.isCharReady();
+}
+/*** META ((export #t)
+ (peephole (postfix ".close()")))
+*/
+function sc_closeInputPort(p) {
+ return p.close();
+}
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_InputPort")))
+*/
+function sc_isInputPort(o) {
+ return (o instanceof sc_InputPort);
+}
+
+/*** META ((export eof-object?)
+ (type bool)
+ (peephole (postfix " === SC_EOF_OBJECT")))
+*/
+function sc_isEOFObject(o) {
+ return o === SC_EOF_OBJECT;
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "SC_DEFAULT_IN")))
+*/
+function sc_currentInputPort() {
+ return SC_DEFAULT_IN;
+}
+
+/* ------------ file operations are not supported -----------*/
+/*** META ((export #t)) */
+function sc_callWithInputFile(s, proc) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_callWithOutputFile(s, proc) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_withInputFromFile(s, thunk) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToFile(s, thunk) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_openInputFile(s) {
+ throw "can't open " + s;
+}
+
+/*** META ((export #t)) */
+function sc_openOutputFile(s) {
+ throw "can't open " + s;
+}
+
+/* ----------------------------------------------------------------------------*/
+/*** META ((export #t)) */
+function sc_basename(p) {
+ var i = p.lastIndexOf('/');
+
+ if(i >= 0)
+ return p.substring(i + 1, p.length);
+ else
+ return '';
+}
+
+/*** META ((export #t)) */
+function sc_dirname(p) {
+ var i = p.lastIndexOf('/');
+
+ if(i >= 0)
+ return p.substring(0, i);
+ else
+ return '';
+}
+
+/* ----------------------------------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_withInputFromPort(p, thunk) {
+ try {
+ var tmp = SC_DEFAULT_IN; // THREAD: shared var.
+ SC_DEFAULT_IN = p;
+ return thunk();
+ } finally {
+ SC_DEFAULT_IN = tmp;
+ }
+}
+
+/*** META ((export #t)) */
+function sc_withInputFromString(s, thunk) {
+ return sc_withInputFromPort(new sc_StringInputPort(sc_string2jsstring(s)), thunk);
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToPort(p, thunk) {
+ try {
+ var tmp = SC_DEFAULT_OUT; // THREAD: shared var.
+ SC_DEFAULT_OUT = p;
+ return thunk();
+ } finally {
+ SC_DEFAULT_OUT = tmp;
+ }
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToString(thunk) {
+ var p = new sc_StringOutputPort();
+ sc_withOutputToPort(p, thunk);
+ return p.close();
+}
+
+/*** META ((export #t)) */
+function sc_withOutputToProcedure(proc, thunk) {
+ var t = function(s) { proc(sc_jsstring2string(s)); };
+ return sc_withOutputToPort(new sc_GenericOutputPort(t), thunk);
+}
+
+/*** META ((export #t)
+ (peephole (hole 0 "new sc_StringOutputPort()")))
+*/
+function sc_openOutputString() {
+ return new sc_StringOutputPort();
+}
+
+/*** META ((export #t)) */
+function sc_openInputString(str) {
+ return new sc_StringInputPort(sc_string2jsstring(str));
+}
+
+/* ----------------------------------------------------------------------------*/
+
+function sc_OutputPort() {
+}
+sc_OutputPort.prototype = new sc_Port();
+sc_OutputPort.prototype.appendJSString = function(obj) {
+ /* do nothing */
+}
+sc_OutputPort.prototype.close = function() {
+ /* do nothing */
+}
+
+function sc_StringOutputPort() {
+ this.res = "";
+}
+sc_StringOutputPort.prototype = new sc_OutputPort();
+sc_StringOutputPort.prototype.appendJSString = function(s) {
+ this.res += s;
+}
+sc_StringOutputPort.prototype.close = function() {
+ return sc_jsstring2string(this.res);
+}
+
+/*** META ((export #t)) */
+function sc_getOutputString(sp) {
+ return sc_jsstring2string(sp.res);
+}
+
+
+function sc_ErrorOutputPort() {
+}
+sc_ErrorOutputPort.prototype = new sc_OutputPort();
+sc_ErrorOutputPort.prototype.appendJSString = function(s) {
+ throw "don't write on ErrorPort!";
+}
+sc_ErrorOutputPort.prototype.close = function() {
+ /* do nothing */
+}
+
+function sc_GenericOutputPort(appendJSString, close) {
+ this.appendJSString = appendJSString;
+ if (close)
+ this.close = close;
+}
+sc_GenericOutputPort.prototype = new sc_OutputPort();
+
+/*** META ((export #t)
+ (type bool)
+ (peephole (postfix " instanceof sc_OutputPort")))
+*/
+function sc_isOutputPort(o) {
+ return (o instanceof sc_OutputPort);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".close()")))
+*/
+function sc_closeOutputPort(p) {
+ return p.close();
+}
+
+/* ------------------ write ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_write(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toWriteString(o));
+}
+
+function sc_toWriteString(o) {
+ if (o === null)
+ return "()";
+ else if (o === true)
+ return "#t";
+ else if (o === false)
+ return "#f";
+ else if (o === undefined)
+ return "#unspecified";
+ else if (typeof o === 'function')
+ return "#<procedure " + sc_hash(o) + ">";
+ else if (o.sc_toWriteString)
+ return o.sc_toWriteString();
+ else
+ return o.toString();
+}
+
+function sc_escapeWriteString(s) {
+ var res = "";
+ var j = 0;
+ for (i = 0; i < s.length; i++) {
+ switch (s.charAt(i)) {
+ case "\0": res += s.substring(j, i) + "\\0"; j = i + 1; break;
+ case "\b": res += s.substring(j, i) + "\\b"; j = i + 1; break;
+ case "\f": res += s.substring(j, i) + "\\f"; j = i + 1; break;
+ case "\n": res += s.substring(j, i) + "\\n"; j = i + 1; break;
+ case "\r": res += s.substring(j, i) + "\\r"; j = i + 1; break;
+ case "\t": res += s.substring(j, i) + "\\t"; j = i + 1; break;
+ case "\v": res += s.substring(j, i) + "\\v"; j = i + 1; break;
+ case '"': res += s.substring(j, i) + '\\"'; j = i + 1; break;
+ case "\\": res += s.substring(j, i) + "\\\\"; j = i + 1; break;
+ default:
+ var c = s.charAt(i);
+ if ("\a" !== "a" && c == "\a") {
+ res += s.substring(j, i) + "\\a"; j = i + 1; continue;
+ }
+ if ("\v" !== "v" && c == "\v") {
+ res += s.substring(j, i) + "\\v"; j = i + 1; continue;
+ }
+ //if (s.charAt(i) < ' ' || s.charCodeAt(i) > 127) {
+ // CARE: Manuel is this OK with HOP?
+ if (s.charAt(i) < ' ') {
+ /* non printable character and special chars */
+ res += s.substring(j, i) + "\\x" + s.charCodeAt(i).toString(16);
+ j = i + 1;
+ }
+ // else just let i increase...
+ }
+ }
+ res += s.substring(j, i);
+ return res;
+}
+
+/* ------------------ display ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_display(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toDisplayString(o));
+}
+
+function sc_toDisplayString(o) {
+ if (o === null)
+ return "()";
+ else if (o === true)
+ return "#t";
+ else if (o === false)
+ return "#f";
+ else if (o === undefined)
+ return "#unspecified";
+ else if (typeof o === 'function')
+ return "#<procedure " + sc_hash(o) + ">";
+ else if (o.sc_toDisplayString)
+ return o.sc_toDisplayString();
+ else
+ return o.toString();
+}
+
+/* ------------------ newline ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_newline(p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString("\n");
+}
+
+/* ------------------ write-char ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_writeChar(c, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(c.val);
+}
+
+/* ------------------ write-circle ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_writeCircle(o, p) {
+ if (p === undefined) // we assume not given
+ p = SC_DEFAULT_OUT;
+ p.appendJSString(sc_toWriteCircleString(o));
+}
+
+function sc_toWriteCircleString(o) {
+ var symb = sc_gensym("writeCircle");
+ var nbPointer = new Object();
+ nbPointer.nb = 0;
+ sc_prepWriteCircle(o, symb, nbPointer);
+ return sc_genToWriteCircleString(o, symb);
+}
+
+function sc_prepWriteCircle(o, symb, nbPointer) {
+ // TODO sc_Struct
+ if (o instanceof sc_Pair ||
+ o instanceof sc_Vector) {
+ if (o[symb] !== undefined) {
+ // not the first visit.
+ o[symb]++;
+ // unless there is already a number, assign one.
+ if (!o[symb + "nb"]) o[symb + "nb"] = nbPointer.nb++;
+ return;
+ }
+ o[symb] = 0;
+ if (o instanceof sc_Pair) {
+ sc_prepWriteCircle(o.car, symb, nbPointer);
+ sc_prepWriteCircle(o.cdr, symb, nbPointer);
+ } else {
+ for (var i = 0; i < o.length; i++)
+ sc_prepWriteCircle(o[i], symb, nbPointer);
+ }
+ }
+}
+
+function sc_genToWriteCircleString(o, symb) {
+ if (!(o instanceof sc_Pair ||
+ o instanceof sc_Vector))
+ return sc_toWriteString(o);
+ return o.sc_toWriteCircleString(symb);
+}
+sc_Pair.prototype.sc_toWriteCircleString = function(symb, inList) {
+ if (this[symb + "use"]) { // use-flag is set. Just use it.
+ var nb = this[symb + "nb"];
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+ if (inList)
+ return '. #' + nb + '#';
+ else
+ return '#' + nb + '#';
+ }
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+
+ var res = "";
+
+ if (this[symb] !== undefined) { // implies > 0
+ this[symb + "use"] = true;
+ if (inList)
+ res += '. #' + this[symb + "nb"] + '=';
+ else
+ res += '#' + this[symb + "nb"] + '=';
+ inList = false;
+ }
+
+ if (!inList)
+ res += "(";
+
+ // print car
+ res += sc_genToWriteCircleString(this.car, symb);
+
+ if (sc_isPair(this.cdr)) {
+ res += " " + this.cdr.sc_toWriteCircleString(symb, true);
+ } else if (this.cdr !== null) {
+ res += " . " + sc_genToWriteCircleString(this.cdr, symb);
+ }
+ if (!inList)
+ res += ")";
+ return res;
+};
+sc_Vector.prototype.sc_toWriteCircleString = function(symb) {
+ if (this[symb + "use"]) { // use-flag is set. Just use it.
+ var nb = this[symb + "nb"];
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+ return '#' + nb + '#';
+ }
+ if (this[symb]-- === 0) { // if we are the last use. remove all fields.
+ delete this[symb];
+ delete this[symb + "nb"];
+ delete this[symb + "use"];
+ }
+
+ var res = "";
+ if (this[symb] !== undefined) { // implies > 0
+ this[symb + "use"] = true;
+ res += '#' + this[symb + "nb"] + '=';
+ }
+ res += "#(";
+ for (var i = 0; i < this.length; i++) {
+ res += sc_genToWriteCircleString(this[i], symb);
+ if (i < this.length - 1) res += " ";
+ }
+ res += ")";
+ return res;
+};
+
+
+/* ------------------ print ---------------------------------------------------*/
+
+/*** META ((export #t)) */
+function sc_print(s) {
+ if (arguments.length === 1) {
+ sc_display(s);
+ sc_newline();
+ }
+ else {
+ for (var i = 0; i < arguments.length; i++)
+ sc_display(arguments[i]);
+ sc_newline();
+ }
+}
+
+/* ------------------ format ---------------------------------------------------*/
+/*** META ((export #t)) */
+function sc_format(s, args) {
+ var len = s.length;
+ var p = new sc_StringOutputPort();
+ var i = 0, j = 1;
+
+ while( i < len ) {
+ var i2 = s.indexOf("~", i);
+
+ if (i2 == -1) {
+ p.appendJSString( s.substring( i, len ) );
+ return p.close();
+ } else {
+ if (i2 > i) {
+ if (i2 == (len - 1)) {
+ p.appendJSString(s.substring(i, len));
+ return p.close();
+ } else {
+ p.appendJSString(s.substring(i, i2));
+ i = i2;
+ }
+ }
+
+ switch(s.charCodeAt(i2 + 1)) {
+ case 65:
+ case 97:
+ // a
+ sc_display(arguments[j], p);
+ i += 2; j++;
+ break;
+
+ case 83:
+ case 115:
+ // s
+ sc_write(arguments[j], p);
+ i += 2; j++;
+ break;
+
+ case 86:
+ case 118:
+ // v
+ sc_display(arguments[j], p);
+ p.appendJSString("\n");
+ i += 2; j++;
+ break;
+
+ case 67:
+ case 99:
+ // c
+ p.appendJSString(String.fromCharCode(arguments[j]));
+ i += 2; j++;
+ break;
+
+ case 88:
+ case 120:
+ // x
+ p.appendJSString(arguments[j].toString(6));
+ i += 2; j++;
+ break;
+
+ case 79:
+ case 111:
+ // o
+ p.appendJSString(arguments[j].toString(8));
+ i += 2; j++;
+ break;
+
+ case 66:
+ case 98:
+ // b
+ p.appendJSString(arguments[j].toString(2));
+ i += 2; j++;
+ break;
+
+ case 37:
+ case 110:
+ // %, n
+ p.appendJSString("\n");
+ i += 2; break;
+
+ case 114:
+ // r
+ p.appendJSString("\r");
+ i += 2; break;
+
+ case 126:
+ // ~
+ p.appendJSString("~");
+ i += 2; break;
+
+ default:
+ sc_error( "format: illegal ~"
+ + String.fromCharCode(s.charCodeAt(i2 + 1))
+ + " sequence" );
+ return "";
+ }
+ }
+ }
+
+ return p.close();
+}
+
+/* ------------------ global ports ---------------------------------------------------*/
+
+var SC_DEFAULT_IN = new sc_ErrorInputPort();
+var SC_DEFAULT_OUT = new sc_ErrorOutputPort();
+var SC_ERROR_OUT = new sc_ErrorOutputPort();
+
+var sc_SYMBOL_PREFIX = "\u1E9C";
+var sc_KEYWORD_PREFIX = "\u1E9D";
+
+/*** META ((export #t)
+ (peephole (id))) */
+function sc_jsstring2string(s) {
+ return s;
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9C' +")))
+*/
+function sc_jsstring2symbol(s) {
+ return sc_SYMBOL_PREFIX + s;
+}
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_string2jsstring(s) {
+ return s;
+}
+
+/*** META ((export #t)
+ (peephole (symbol2jsstring_immutable)))
+*/
+function sc_symbol2jsstring(s) {
+ return s.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".slice(1)")))
+*/
+function sc_keyword2jsstring(k) {
+ return k.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9D' +")))
+*/
+function sc_jsstring2keyword(s) {
+ return sc_KEYWORD_PREFIX + s;
+}
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isKeyword(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) === sc_KEYWORD_PREFIX);
+}
+
+
+/*** META ((export #t)) */
+var sc_gensym = function() {
+ var counter = 1000;
+ return function(sym) {
+ counter++;
+ if (!sym) sym = sc_SYMBOL_PREFIX;
+ return sym + "s" + counter + "~" + "^sC-GeNsYm ";
+ };
+}();
+
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isEqual(o1, o2) {
+ return ((o1 === o2) ||
+ (sc_isPair(o1) && sc_isPair(o2)
+ && sc_isPairEqual(o1, o2, sc_isEqual)) ||
+ (sc_isVector(o1) && sc_isVector(o2)
+ && sc_isVectorEqual(o1, o2, sc_isEqual)));
+}
+
+/*** META ((export number->symbol integer->symbol)) */
+function sc_number2symbol(x, radix) {
+ return sc_SYMBOL_PREFIX + sc_number2jsstring(x, radix);
+}
+
+/*** META ((export number->string integer->string)) */
+var sc_number2string = sc_number2jsstring;
+
+/*** META ((export #t)) */
+function sc_symbol2number(s, radix) {
+ return sc_jsstring2number(s.slice(1), radix);
+}
+
+/*** META ((export #t)) */
+var sc_string2number = sc_jsstring2number;
+
+/*** META ((export #t)
+ (peephole (prefix "+" s)))
+ ;; peephole will only apply if no radix is given.
+*/
+function sc_string2integer(s, radix) {
+ if (!radix) return +s;
+ return parseInt(s, radix);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "+")))
+*/
+function sc_string2real(s) {
+ return +s;
+}
+
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isSymbol(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) === sc_SYMBOL_PREFIX);
+}
+
+/*** META ((export #t)
+ (peephole (symbol2string_immutable)))
+*/
+function sc_symbol2string(s) {
+ return s.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9C' +")))
+*/
+function sc_string2symbol(s) {
+ return sc_SYMBOL_PREFIX + s;
+}
+
+/*** META ((export symbol-append)
+ (peephole (symbolAppend_immutable)))
+*/
+function sc_symbolAppend() {
+ var res = sc_SYMBOL_PREFIX;
+ for (var i = 0; i < arguments.length; i++)
+ res += arguments[i].slice(1);
+ return res;
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".val")))
+*/
+function sc_char2string(c) { return c.val; }
+
+/*** META ((export #t)
+ (peephole (hole 1 "'\\u1E9C' + " c ".val")))
+*/
+function sc_char2symbol(c) { return sc_SYMBOL_PREFIX + c.val; }
+
+/*** META ((export #t)
+ (type bool))
+*/
+function sc_isString(s) {
+ return (typeof s === "string") &&
+ (s.charAt(0) !== sc_SYMBOL_PREFIX);
+}
+
+/*** META ((export #t)) */
+var sc_makeString = sc_makejsString;
+
+
+/*** META ((export #t)) */
+function sc_string() {
+ for (var i = 0; i < arguments.length; i++)
+ arguments[i] = arguments[i].val;
+ return "".concat.apply("", arguments);
+}
+
+/*** META ((export #t)
+ (peephole (postfix ".length")))
+*/
+function sc_stringLength(s) { return s.length; }
+
+/*** META ((export #t)) */
+function sc_stringRef(s, k) {
+ return new sc_Char(s.charAt(k));
+}
+
+/* there's no stringSet in the immutable version
+function sc_stringSet(s, k, c)
+*/
+
+
+/*** META ((export string=?)
+ (type bool)
+ (peephole (hole 2 str1 " === " str2)))
+*/
+function sc_isStringEqual(s1, s2) {
+ return s1 === s2;
+}
+/*** META ((export string<?)
+ (type bool)
+ (peephole (hole 2 str1 " < " str2)))
+*/
+function sc_isStringLess(s1, s2) {
+ return s1 < s2;
+}
+/*** META ((export string>?)
+ (type bool)
+ (peephole (hole 2 str1 " > " str2)))
+*/
+function sc_isStringGreater(s1, s2) {
+ return s1 > s2;
+}
+/*** META ((export string<=?)
+ (type bool)
+ (peephole (hole 2 str1 " <= " str2)))
+*/
+function sc_isStringLessEqual(s1, s2) {
+ return s1 <= s2;
+}
+/*** META ((export string>=?)
+ (type bool)
+ (peephole (hole 2 str1 " >= " str2)))
+*/
+function sc_isStringGreaterEqual(s1, s2) {
+ return s1 >= s2;
+}
+/*** META ((export string-ci=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() === " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIEqual(s1, s2) {
+ return s1.toLowerCase() === s2.toLowerCase();
+}
+/*** META ((export string-ci<?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() < " str2 ".toLowerCase()")))
+*/
+function sc_isStringCILess(s1, s2) {
+ return s1.toLowerCase() < s2.toLowerCase();
+}
+/*** META ((export string-ci>?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() > " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIGreater(s1, s2) {
+ return s1.toLowerCase() > s2.toLowerCase();
+}
+/*** META ((export string-ci<=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() <= " str2 ".toLowerCase()")))
+*/
+function sc_isStringCILessEqual(s1, s2) {
+ return s1.toLowerCase() <= s2.toLowerCase();
+}
+/*** META ((export string-ci>=?)
+ (type bool)
+ (peephole (hole 2 str1 ".toLowerCase() >= " str2 ".toLowerCase()")))
+*/
+function sc_isStringCIGreaterEqual(s1, s2) {
+ return s1.toLowerCase() >= s2.toLowerCase();
+}
+
+/*** META ((export #t)
+ (peephole (hole 3 s ".substring(" start ", " end ")")))
+*/
+function sc_substring(s, start, end) {
+ return s.substring(start, end);
+}
+
+/*** META ((export #t))
+*/
+function sc_isSubstring_at(s1, s2, i) {
+ return s2 == s1.substring(i, i+ s2.length);
+}
+
+/*** META ((export #t)
+ (peephole (infix 0 #f "+" "''")))
+*/
+function sc_stringAppend() {
+ return "".concat.apply("", arguments);
+}
+
+/*** META ((export #t)) */
+var sc_string2list = sc_jsstring2list;
+
+/*** META ((export #t)) */
+var sc_list2string = sc_list2jsstring;
+
+/*** META ((export #t)
+ (peephole (id)))
+*/
+function sc_stringCopy(s) {
+ return s;
+}
+
+/* there's no string-fill in the immutable version
+function sc_stringFill(s, c)
+*/
+
+/*** META ((export #t)
+ (peephole (postfix ".slice(1)")))
+*/
+function sc_keyword2string(o) {
+ return o.slice(1);
+}
+
+/*** META ((export #t)
+ (peephole (prefix "'\\u1E9D' +")))
+*/
+function sc_string2keyword(o) {
+ return sc_KEYWORD_PREFIX + o;
+}
+
+String.prototype.sc_toDisplayString = function() {
+ if (this.charAt(0) === sc_SYMBOL_PREFIX)
+ // TODO: care for symbols with spaces (escape-chars symbols).
+ return this.slice(1);
+ else if (this.charAt(0) === sc_KEYWORD_PREFIX)
+ return ":" + this.slice(1);
+ else
+ return this.toString();
+};
+
+String.prototype.sc_toWriteString = function() {
+ if (this.charAt(0) === sc_SYMBOL_PREFIX)
+ // TODO: care for symbols with spaces (escape-chars symbols).
+ return this.slice(1);
+ else if (this.charAt(0) === sc_KEYWORD_PREFIX)
+ return ":" + this.slice(1);
+ else
+ return '"' + sc_escapeWriteString(this) + '"';
+};
+/* Exported Variables */
+var BgL_testzd2boyerzd2;
+var BgL_nboyerzd2benchmarkzd2;
+var BgL_setupzd2boyerzd2;
+/* End Exports */
+
+var translate_term_nboyer;
+var translate_args_nboyer;
+var untranslate_term_nboyer;
+var BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer;
+var BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer;
+var translate_alist_nboyer;
+var apply_subst_nboyer;
+var apply_subst_lst_nboyer;
+var tautologyp_nboyer;
+var if_constructor_nboyer;
+var rewrite_count_nboyer;
+var rewrite_nboyer;
+var rewrite_args_nboyer;
+var unify_subst_nboyer;
+var one_way_unify1_nboyer;
+var false_term_nboyer;
+var true_term_nboyer;
+var trans_of_implies1_nboyer;
+var is_term_equal_nboyer;
+var is_term_member_nboyer;
+var const_nboyer;
+var sc_const_3_nboyer;
+var sc_const_4_nboyer;
+{
+ (sc_const_4_nboyer = (new sc_Pair("\u1E9Cimplies",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cu",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cw",null)))))),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cw",null)))))),null)))))));
+ (sc_const_3_nboyer = sc_list((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccompile",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Ccodegen",(new sc_Pair((new sc_Pair("\u1E9Coptimize",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreaterp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clesseqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cboolean",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ciff",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceven1",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Codd",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccountps-",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccountps-loop",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfact-",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfact-loop",(new sc_Pair("\u1E9Ci",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdivides",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-true",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-false",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctautology-checker",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctautologyp",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfalsify",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfalsify1",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime1",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair("\u1E9Cp",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))))),(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cc",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cplus-fringe",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair("\u1E9Cenvrn",null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmc-flatten",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cintersect",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Ck",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ck",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Csort-lp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus1",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Ci",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cbase",null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cj",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cj",(new sc_Pair((1),null)))))),null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Ci",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cw",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cz",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnlistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csamefringe",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cz",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cw",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair(sc_list("\u1E9Cand", (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Ca",null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cb",null)))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cl",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cl",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdsort",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx1",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx2",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx3",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx4",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx5",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx6",(new sc_Pair("\u1E9Cx7",null)))))),null)))))),null)))))),null)))))),null)))))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((6),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx7",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cy",(new sc_Pair((2),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csigma",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Ci",null)))),null)))))),(new sc_Pair((2),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cz",null)))),null)))))),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Ca",null)))),null)))),(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Cb",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair("\u1E9Cz",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cassignedp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair((new sc_Pair("\u1E9Cset",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cval",(new sc_Pair("\u1E9Cmem",null)))))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair("\u1E9Cval",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cmem",null)))))),null)))))))),null))))))));
+ (const_nboyer = (new sc_Pair((new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))))),null)))))))))));
+ BgL_nboyerzd2benchmarkzd2 = function() {
+ var args = null;
+ for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) {
+ args = sc_cons(arguments[sc_tmp], args);
+ }
+ var n;
+ return ((n = ((args === null)?(0):(args.car))), (BgL_setupzd2boyerzd2()), (BgL_runzd2benchmarkzd2(("nboyer"+(sc_number2string(n))), (1), function() {
+ return (BgL_testzd2boyerzd2(n));
+ }, function(rewrites) {
+ if ((sc_isNumber(rewrites)))
+ switch (n) {
+ case (0):
+ return (rewrites===(95024));
+ break;
+ case (1):
+ return (rewrites===(591777));
+ break;
+ case (2):
+ return (rewrites===(1813975));
+ break;
+ case (3):
+ return (rewrites===(5375678));
+ break;
+ case (4):
+ return (rewrites===(16445406));
+ break;
+ case (5):
+ return (rewrites===(51507739));
+ break;
+ default:
+ return true;
+ break;
+ }
+ else
+ return false;
+ })));
+ };
+ BgL_setupzd2boyerzd2 = function() {
+ return true;
+ };
+ BgL_testzd2boyerzd2 = function() {
+ return true;
+ };
+ translate_term_nboyer = function(term) {
+ var lst;
+ return (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((translate_term_nboyer((lst.car))), (translate_args_nboyer((lst.cdr))))))))));
+ };
+ translate_args_nboyer = function(lst) {
+ var sc_lst_5;
+ var term;
+ return ((lst === null)?null:(new sc_Pair(((term = (lst.car)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))), ((sc_lst_5 = (lst.cdr)), ((sc_lst_5 === null)?null:(new sc_Pair((translate_term_nboyer((sc_lst_5.car))), (translate_args_nboyer((sc_lst_5.cdr))))))))));
+ };
+ untranslate_term_nboyer = function(term) {
+ var optrOpnd;
+ var tail1131;
+ var L1127;
+ var falseHead1130;
+ var symbol_record;
+ if (!(term instanceof sc_Pair))
+ return term;
+ else
+ {
+ (falseHead1130 = (new sc_Pair(null, null)));
+ (L1127 = (term.cdr));
+ (tail1131 = falseHead1130);
+ while (!(L1127 === null)) {
+ {
+ (tail1131.cdr = (new sc_Pair((untranslate_term_nboyer((L1127.car))), null)));
+ (tail1131 = (tail1131.cdr));
+ (L1127 = (L1127.cdr));
+ }
+ }
+ (optrOpnd = (falseHead1130.cdr));
+ return (new sc_Pair(((symbol_record = (term.car)), (symbol_record[(0)])), optrOpnd));
+ }
+ };
+ BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer = function(sym) {
+ var r;
+ var x;
+ return ((x = (sc_assq(sym, BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), ((x!== false)?(x.cdr):((r = [sym, null]), (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = (new sc_Pair((new sc_Pair(sym, r)), BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), r)));
+ };
+ (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null);
+ translate_alist_nboyer = function(alist) {
+ var sc_alist_6;
+ var term;
+ return ((alist === null)?null:(new sc_Pair((new sc_Pair((alist.car.car), ((term = (alist.car.cdr)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))))), ((sc_alist_6 = (alist.cdr)), ((sc_alist_6 === null)?null:(new sc_Pair((new sc_Pair((sc_alist_6.car.car), (translate_term_nboyer((sc_alist_6.car.cdr))))), (translate_alist_nboyer((sc_alist_6.cdr))))))))));
+ };
+ apply_subst_nboyer = function(alist, term) {
+ var lst;
+ var temp_temp;
+ return (!(term instanceof sc_Pair)?((temp_temp = (sc_assq(term, alist))), ((temp_temp!== false)?(temp_temp.cdr):term)):(new sc_Pair((term.car), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), (apply_subst_lst_nboyer(alist, (lst.cdr))))))))));
+ };
+ apply_subst_lst_nboyer = function(alist, lst) {
+ var sc_lst_7;
+ return ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), ((sc_lst_7 = (lst.cdr)), ((sc_lst_7 === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (sc_lst_7.car))), (apply_subst_lst_nboyer(alist, (sc_lst_7.cdr))))))))));
+ };
+ tautologyp_nboyer = function(sc_x_11, true_lst, false_lst) {
+ var tmp1125;
+ var x;
+ var tmp1126;
+ var sc_x_8;
+ var sc_tmp1125_9;
+ var sc_tmp1126_10;
+ var sc_x_11;
+ var true_lst;
+ var false_lst;
+ while (true) {
+ if ((((sc_tmp1126_10 = (is_term_equal_nboyer(sc_x_11, true_term_nboyer))), ((sc_tmp1126_10!== false)?sc_tmp1126_10:(is_term_member_nboyer(sc_x_11, true_lst))))!== false))
+ return true;
+ else
+ if ((((sc_tmp1125_9 = (is_term_equal_nboyer(sc_x_11, false_term_nboyer))), ((sc_tmp1125_9!== false)?sc_tmp1125_9:(is_term_member_nboyer(sc_x_11, false_lst))))!== false))
+ return false;
+ else
+ if (!(sc_x_11 instanceof sc_Pair))
+ return false;
+ else
+ if (((sc_x_11.car)===if_constructor_nboyer))
+ if ((((sc_x_8 = (sc_x_11.cdr.car)), (tmp1126 = (is_term_equal_nboyer(sc_x_8, true_term_nboyer))), ((tmp1126!== false)?tmp1126:(is_term_member_nboyer(sc_x_8, true_lst))))!== false))
+ (sc_x_11 = (sc_x_11.cdr.cdr.car));
+ else
+ if ((((x = (sc_x_11.cdr.car)), (tmp1125 = (is_term_equal_nboyer(x, false_term_nboyer))), ((tmp1125!== false)?tmp1125:(is_term_member_nboyer(x, false_lst))))!== false))
+ (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car));
+ else
+ if (((tautologyp_nboyer((sc_x_11.cdr.cdr.car), (new sc_Pair((sc_x_11.cdr.car), true_lst)), false_lst))!== false))
+ {
+ (false_lst = (new sc_Pair((sc_x_11.cdr.car), false_lst)));
+ (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car));
+ }
+ else
+ return false;
+ else
+ return false;
+ }
+ };
+ (if_constructor_nboyer = "\u1E9C*");
+ (rewrite_count_nboyer = (0));
+ rewrite_nboyer = function(term) {
+ var term2;
+ var sc_term_12;
+ var lst;
+ var symbol_record;
+ var sc_lst_13;
+ {
+ (++rewrite_count_nboyer);
+ if (!(term instanceof sc_Pair))
+ return term;
+ else
+ {
+ (sc_term_12 = (new sc_Pair((term.car), ((sc_lst_13 = (term.cdr)), ((sc_lst_13 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_13.car))), (rewrite_args_nboyer((sc_lst_13.cdr))))))))));
+ (lst = ((symbol_record = (term.car)), (symbol_record[(1)])));
+ while (true) {
+ if ((lst === null))
+ return sc_term_12;
+ else
+ if ((((term2 = ((lst.car).cdr.car)), (unify_subst_nboyer = null), (one_way_unify1_nboyer(sc_term_12, term2)))!== false))
+ return (rewrite_nboyer((apply_subst_nboyer(unify_subst_nboyer, ((lst.car).cdr.cdr.car)))));
+ else
+ (lst = (lst.cdr));
+ }
+ }
+ }
+ };
+ rewrite_args_nboyer = function(lst) {
+ var sc_lst_14;
+ return ((lst === null)?null:(new sc_Pair((rewrite_nboyer((lst.car))), ((sc_lst_14 = (lst.cdr)), ((sc_lst_14 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_14.car))), (rewrite_args_nboyer((sc_lst_14.cdr))))))))));
+ };
+ (unify_subst_nboyer = "\u1E9C*");
+ one_way_unify1_nboyer = function(term1, term2) {
+ var lst1;
+ var lst2;
+ var temp_temp;
+ if (!(term2 instanceof sc_Pair))
+ {
+ (temp_temp = (sc_assq(term2, unify_subst_nboyer)));
+ if ((temp_temp!== false))
+ return (is_term_equal_nboyer(term1, (temp_temp.cdr)));
+ else
+ if ((sc_isNumber(term2)))
+ return (sc_isEqual(term1, term2));
+ else
+ {
+ (unify_subst_nboyer = (new sc_Pair((new sc_Pair(term2, term1)), unify_subst_nboyer)));
+ return true;
+ }
+ }
+ else
+ if (!(term1 instanceof sc_Pair))
+ return false;
+ else
+ if (((term1.car)===(term2.car)))
+ {
+ (lst1 = (term1.cdr));
+ (lst2 = (term2.cdr));
+ while (true) {
+ if ((lst1 === null))
+ return (lst2 === null);
+ else
+ if ((lst2 === null))
+ return false;
+ else
+ if (((one_way_unify1_nboyer((lst1.car), (lst2.car)))!== false))
+ {
+ (lst1 = (lst1.cdr));
+ (lst2 = (lst2.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ };
+ (false_term_nboyer = "\u1E9C*");
+ (true_term_nboyer = "\u1E9C*");
+ trans_of_implies1_nboyer = function(n) {
+ var sc_n_15;
+ return ((sc_isEqual(n, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (n-(1)), n)), ((sc_n_15 = (n-(1))), ((sc_isEqual(sc_n_15, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (sc_n_15-(1)), sc_n_15)), (trans_of_implies1_nboyer((sc_n_15-(1)))))))))));
+ };
+ is_term_equal_nboyer = function(x, y) {
+ var lst1;
+ var lst2;
+ var r2;
+ var r1;
+ if ((x instanceof sc_Pair))
+ if ((y instanceof sc_Pair))
+ if ((((r1 = (x.car)), (r2 = (y.car)), (r1===r2))!== false))
+ {
+ (lst1 = (x.cdr));
+ (lst2 = (y.cdr));
+ while (true) {
+ if ((lst1 === null))
+ return (lst2 === null);
+ else
+ if ((lst2 === null))
+ return false;
+ else
+ if (((is_term_equal_nboyer((lst1.car), (lst2.car)))!== false))
+ {
+ (lst1 = (lst1.cdr));
+ (lst2 = (lst2.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ else
+ return false;
+ else
+ return (sc_isEqual(x, y));
+ };
+ is_term_member_nboyer = function(x, lst) {
+ var x;
+ var lst;
+ while (true) {
+ if ((lst === null))
+ return false;
+ else
+ if (((is_term_equal_nboyer(x, (lst.car)))!== false))
+ return true;
+ else
+ (lst = (lst.cdr));
+ }
+ };
+ BgL_setupzd2boyerzd2 = function() {
+ var symbol_record;
+ var value;
+ var BgL_sc_symbolzd2record_16zd2;
+ var sym;
+ var sc_sym_17;
+ var term;
+ var lst;
+ var sc_term_18;
+ var sc_term_19;
+ {
+ (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null);
+ (if_constructor_nboyer = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer("\u1E9Cif")));
+ (false_term_nboyer = ((sc_term_19 = (new sc_Pair("\u1E9Cf",null))), (!(sc_term_19 instanceof sc_Pair)?sc_term_19:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_19.car))), (translate_args_nboyer((sc_term_19.cdr))))))));
+ (true_term_nboyer = ((sc_term_18 = (new sc_Pair("\u1E9Ct",null))), (!(sc_term_18 instanceof sc_Pair)?sc_term_18:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_18.car))), (translate_args_nboyer((sc_term_18.cdr))))))));
+ (lst = sc_const_3_nboyer);
+ while (!(lst === null)) {
+ {
+ (term = (lst.car));
+ if (((term instanceof sc_Pair)&&(((term.car)==="\u1E9Cequal")&&((term.cdr.car) instanceof sc_Pair))))
+ {
+ (sc_sym_17 = ((term.cdr.car).car));
+ (value = (new sc_Pair((!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr)))))), ((sym = ((term.cdr.car).car)), (BgL_sc_symbolzd2record_16zd2 = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sym))), (BgL_sc_symbolzd2record_16zd2[(1)])))));
+ (symbol_record = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sc_sym_17)));
+ (symbol_record[(1)] = value);
+ }
+ else
+ (sc_error("ADD-LEMMA did not like term: ", term));
+ (lst = (lst.cdr));
+ }
+ }
+ return true;
+ }
+ };
+ BgL_testzd2boyerzd2 = function(n) {
+ var optrOpnd;
+ var term;
+ var sc_n_20;
+ var answer;
+ var sc_term_21;
+ var sc_term_22;
+ {
+ (rewrite_count_nboyer = (0));
+ (term = sc_const_4_nboyer);
+ (sc_n_20 = n);
+ while (!(sc_n_20=== 0)) {
+ {
+ (term = (sc_list("\u1E9Cor", term, (new sc_Pair("\u1E9Cf",null)))));
+ (--sc_n_20);
+ }
+ }
+ (sc_term_22 = term);
+ if (!(sc_term_22 instanceof sc_Pair))
+ (optrOpnd = sc_term_22);
+ else
+ (optrOpnd = (new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_22.car))), (translate_args_nboyer((sc_term_22.cdr))))));
+ (sc_term_21 = (apply_subst_nboyer(((const_nboyer === null)?null:(new sc_Pair((new sc_Pair((const_nboyer.car.car), (translate_term_nboyer((const_nboyer.car.cdr))))), (translate_alist_nboyer((const_nboyer.cdr)))))), optrOpnd)));
+ (answer = (tautologyp_nboyer((rewrite_nboyer(sc_term_21)), null, null)));
+ (sc_write(rewrite_count_nboyer));
+ (sc_display(" rewrites"));
+ (sc_newline());
+ if ((answer!== false))
+ return rewrite_count_nboyer;
+ else
+ return false;
+ }
+ };
+}
+/* Exported Variables */
+var BgL_parsezd2ze3nbzd2treesze3;
+var BgL_earleyzd2benchmarkzd2;
+var BgL_parsezd2ze3parsedzf3zc2;
+var test;
+var BgL_parsezd2ze3treesz31;
+var BgL_makezd2parserzd2;
+/* End Exports */
+
+var const_earley;
+{
+ (const_earley = (new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair((new sc_Pair("\u1E9Ca",null)),(new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair("\u1E9Cs",null)))),null)))))),null)));
+ BgL_makezd2parserzd2 = function(grammar, lexer) {
+ var i;
+ var parser_descr;
+ var def_loop;
+ var nb_nts;
+ var names;
+ var steps;
+ var predictors;
+ var enders;
+ var starters;
+ var nts;
+ var sc_names_1;
+ var sc_steps_2;
+ var sc_predictors_3;
+ var sc_enders_4;
+ var sc_starters_5;
+ var nb_confs;
+ var BgL_sc_defzd2loop_6zd2;
+ var BgL_sc_nbzd2nts_7zd2;
+ var sc_nts_8;
+ var BgL_sc_defzd2loop_9zd2;
+ var ind;
+ {
+ ind = function(nt, sc_nts_10) {
+ var i;
+ {
+ (i = ((sc_nts_10.length)-(1)));
+ while (true) {
+ if ((i>=(0)))
+ if ((sc_isEqual((sc_nts_10[i]), nt)))
+ return i;
+ else
+ (--i);
+ else
+ return false;
+ }
+ }
+ };
+ (sc_nts_8 = ((BgL_sc_defzd2loop_9zd2 = function(defs, sc_nts_11) {
+ var rule_loop;
+ var head;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, sc_nts_12) {
+ var nt;
+ var l;
+ var sc_nts_13;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (l = rule);
+ (sc_nts_13 = sc_nts_12);
+ while ((l instanceof sc_Pair)) {
+ {
+ (nt = (l.car));
+ (l = (l.cdr));
+ (sc_nts_13 = (((sc_member(nt, sc_nts_13))!== false)?sc_nts_13:(new sc_Pair(nt, sc_nts_13))));
+ }
+ }
+ return (rule_loop((rules.cdr), sc_nts_13));
+ }
+ else
+ return (BgL_sc_defzd2loop_9zd2((defs.cdr), sc_nts_12));
+ }), (rule_loop((def.cdr), (((sc_member(head, sc_nts_11))!== false)?sc_nts_11:(new sc_Pair(head, sc_nts_11)))))):(sc_list2vector((sc_reverse(sc_nts_11)))));
+ }), (BgL_sc_defzd2loop_9zd2(grammar, null))));
+ (BgL_sc_nbzd2nts_7zd2 = (sc_nts_8.length));
+ (nb_confs = (((BgL_sc_defzd2loop_6zd2 = function(defs, BgL_sc_nbzd2confs_14zd2) {
+ var rule_loop;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (rule_loop = function(rules, BgL_sc_nbzd2confs_15zd2) {
+ var l;
+ var BgL_sc_nbzd2confs_16zd2;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (l = rule);
+ (BgL_sc_nbzd2confs_16zd2 = BgL_sc_nbzd2confs_15zd2);
+ while ((l instanceof sc_Pair)) {
+ {
+ (l = (l.cdr));
+ (++BgL_sc_nbzd2confs_16zd2);
+ }
+ }
+ return (rule_loop((rules.cdr), (BgL_sc_nbzd2confs_16zd2+(1))));
+ }
+ else
+ return (BgL_sc_defzd2loop_6zd2((defs.cdr), BgL_sc_nbzd2confs_15zd2));
+ }), (rule_loop((def.cdr), BgL_sc_nbzd2confs_14zd2))):BgL_sc_nbzd2confs_14zd2);
+ }), (BgL_sc_defzd2loop_6zd2(grammar, (0))))+BgL_sc_nbzd2nts_7zd2));
+ (sc_starters_5 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_enders_4 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_predictors_3 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null)));
+ (sc_steps_2 = (sc_makeVector(nb_confs, false)));
+ (sc_names_1 = (sc_makeVector(nb_confs, false)));
+ (nts = sc_nts_8);
+ (starters = sc_starters_5);
+ (enders = sc_enders_4);
+ (predictors = sc_predictors_3);
+ (steps = sc_steps_2);
+ (names = sc_names_1);
+ (nb_nts = (sc_nts_8.length));
+ (i = (nb_nts-(1)));
+ while ((i>=(0))) {
+ {
+ (sc_steps_2[i] = (i-nb_nts));
+ (sc_names_1[i] = (sc_list((sc_nts_8[i]), (0))));
+ (sc_enders_4[i] = (sc_list(i)));
+ (--i);
+ }
+ }
+ def_loop = function(defs, conf) {
+ var rule_loop;
+ var head;
+ var def;
+ return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, conf, rule_num) {
+ var i;
+ var sc_i_17;
+ var nt;
+ var l;
+ var sc_conf_18;
+ var sc_i_19;
+ var rule;
+ if ((rules instanceof sc_Pair))
+ {
+ (rule = (rules.car));
+ (names[conf] = (sc_list(head, rule_num)));
+ (sc_i_19 = (ind(head, nts)));
+ (starters[sc_i_19] = (new sc_Pair(conf, (starters[sc_i_19]))));
+ (l = rule);
+ (sc_conf_18 = conf);
+ while ((l instanceof sc_Pair)) {
+ {
+ (nt = (l.car));
+ (steps[sc_conf_18] = (ind(nt, nts)));
+ (sc_i_17 = (ind(nt, nts)));
+ (predictors[sc_i_17] = (new sc_Pair(sc_conf_18, (predictors[sc_i_17]))));
+ (l = (l.cdr));
+ (++sc_conf_18);
+ }
+ }
+ (steps[sc_conf_18] = ((ind(head, nts))-nb_nts));
+ (i = (ind(head, nts)));
+ (enders[i] = (new sc_Pair(sc_conf_18, (enders[i]))));
+ return (rule_loop((rules.cdr), (sc_conf_18+(1)), (rule_num+(1))));
+ }
+ else
+ return (def_loop((defs.cdr), conf));
+ }), (rule_loop((def.cdr), conf, (1)))):undefined);
+ };
+ (def_loop(grammar, (sc_nts_8.length)));
+ (parser_descr = [lexer, sc_nts_8, sc_starters_5, sc_enders_4, sc_predictors_3, sc_steps_2, sc_names_1]);
+ return function(input) {
+ var optrOpnd;
+ var sc_optrOpnd_20;
+ var sc_optrOpnd_21;
+ var sc_optrOpnd_22;
+ var loop1;
+ var BgL_sc_stateza2_23za2;
+ var toks;
+ var BgL_sc_nbzd2nts_24zd2;
+ var sc_steps_25;
+ var sc_enders_26;
+ var state_num;
+ var BgL_sc_statesza2_27za2;
+ var states;
+ var i;
+ var conf;
+ var l;
+ var tok_nts;
+ var sc_i_28;
+ var sc_i_29;
+ var l1;
+ var l2;
+ var tok;
+ var tail1129;
+ var L1125;
+ var goal_enders;
+ var BgL_sc_statesza2_30za2;
+ var BgL_sc_nbzd2nts_31zd2;
+ var BgL_sc_nbzd2confs_32zd2;
+ var nb_toks;
+ var goal_starters;
+ var sc_states_33;
+ var BgL_sc_nbzd2confs_34zd2;
+ var BgL_sc_nbzd2toks_35zd2;
+ var sc_toks_36;
+ var falseHead1128;
+ var sc_names_37;
+ var sc_steps_38;
+ var sc_predictors_39;
+ var sc_enders_40;
+ var sc_starters_41;
+ var sc_nts_42;
+ var lexer;
+ var sc_ind_43;
+ var make_states;
+ var BgL_sc_confzd2setzd2getza2_44za2;
+ var conf_set_merge_new_bang;
+ var conf_set_adjoin;
+ var BgL_sc_confzd2setzd2adjoinza2_45za2;
+ var BgL_sc_confzd2setzd2adjoinza2za2_46z00;
+ var conf_set_union;
+ var forw;
+ var is_parsed;
+ var deriv_trees;
+ var BgL_sc_derivzd2treesza2_47z70;
+ var nb_deriv_trees;
+ var BgL_sc_nbzd2derivzd2treesza2_48za2;
+ {
+ sc_ind_43 = function(nt, sc_nts_49) {
+ var i;
+ {
+ (i = ((sc_nts_49.length)-(1)));
+ while (true) {
+ if ((i>=(0)))
+ if ((sc_isEqual((sc_nts_49[i]), nt)))
+ return i;
+ else
+ (--i);
+ else
+ return false;
+ }
+ }
+ };
+ make_states = function(BgL_sc_nbzd2toks_50zd2, BgL_sc_nbzd2confs_51zd2) {
+ var v;
+ var i;
+ var sc_states_52;
+ {
+ (sc_states_52 = (sc_makeVector((BgL_sc_nbzd2toks_50zd2+(1)), false)));
+ (i = BgL_sc_nbzd2toks_50zd2);
+ while ((i>=(0))) {
+ {
+ (v = (sc_makeVector((BgL_sc_nbzd2confs_51zd2+(1)), false)));
+ (v[(0)] = (-1));
+ (sc_states_52[i] = v);
+ (--i);
+ }
+ }
+ return sc_states_52;
+ }
+ };
+ BgL_sc_confzd2setzd2getza2_44za2 = function(state, BgL_sc_statezd2num_53zd2, sc_conf_54) {
+ var conf_set;
+ var BgL_sc_confzd2set_55zd2;
+ return ((BgL_sc_confzd2set_55zd2 = (state[(sc_conf_54+(1))])), ((BgL_sc_confzd2set_55zd2!== false)?BgL_sc_confzd2set_55zd2:((conf_set = (sc_makeVector((BgL_sc_statezd2num_53zd2+(6)), false))), (conf_set[(1)] = (-3)), (conf_set[(2)] = (-1)), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)), (state[(sc_conf_54+(1))] = conf_set), conf_set)));
+ };
+ conf_set_merge_new_bang = function(conf_set) {
+ return ((conf_set[((conf_set[(1)])+(5))] = (conf_set[(4)])), (conf_set[(1)] = (conf_set[(3)])), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)));
+ };
+ conf_set_adjoin = function(state, conf_set, sc_conf_56, i) {
+ var tail;
+ return ((tail = (conf_set[(3)])), (conf_set[(i+(5))] = (-1)), (conf_set[(tail+(5))] = i), (conf_set[(3)] = i), ((tail<(0))?((conf_set[(0)] = (state[(0)])), (state[(0)] = sc_conf_56)):undefined));
+ };
+ BgL_sc_confzd2setzd2adjoinza2_45za2 = function(sc_states_57, BgL_sc_statezd2num_58zd2, l, i) {
+ var conf_set;
+ var sc_conf_59;
+ var l1;
+ var state;
+ {
+ (state = (sc_states_57[BgL_sc_statezd2num_58zd2]));
+ (l1 = l);
+ while ((l1 instanceof sc_Pair)) {
+ {
+ (sc_conf_59 = (l1.car));
+ (conf_set = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_58zd2, sc_conf_59)));
+ if (((conf_set[(i+(5))])=== false))
+ {
+ (conf_set_adjoin(state, conf_set, sc_conf_59, i));
+ (l1 = (l1.cdr));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ }
+ return undefined;
+ }
+ };
+ BgL_sc_confzd2setzd2adjoinza2za2_46z00 = function(sc_states_60, BgL_sc_statesza2_61za2, BgL_sc_statezd2num_62zd2, sc_conf_63, i) {
+ var BgL_sc_confzd2setza2_64z70;
+ var BgL_sc_stateza2_65za2;
+ var conf_set;
+ var state;
+ return ((state = (sc_states_60[BgL_sc_statezd2num_62zd2])), ((((conf_set = (state[(sc_conf_63+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)?((BgL_sc_stateza2_65za2 = (BgL_sc_statesza2_61za2[BgL_sc_statezd2num_62zd2])), (BgL_sc_confzd2setza2_64z70 = (BgL_sc_confzd2setzd2getza2_44za2(BgL_sc_stateza2_65za2, BgL_sc_statezd2num_62zd2, sc_conf_63))), (((BgL_sc_confzd2setza2_64z70[(i+(5))])=== false)?(conf_set_adjoin(BgL_sc_stateza2_65za2, BgL_sc_confzd2setza2_64z70, sc_conf_63, i)):undefined), true):false));
+ };
+ conf_set_union = function(state, conf_set, sc_conf_66, other_set) {
+ var i;
+ {
+ (i = (other_set[(2)]));
+ while ((i>=(0))) {
+ if (((conf_set[(i+(5))])=== false))
+ {
+ (conf_set_adjoin(state, conf_set, sc_conf_66, i));
+ (i = (other_set[(i+(5))]));
+ }
+ else
+ (i = (other_set[(i+(5))]));
+ }
+ return undefined;
+ }
+ };
+ forw = function(sc_states_67, BgL_sc_statezd2num_68zd2, sc_starters_69, sc_enders_70, sc_predictors_71, sc_steps_72, sc_nts_73) {
+ var next_set;
+ var next;
+ var conf_set;
+ var ender;
+ var l;
+ var starter_set;
+ var starter;
+ var sc_l_74;
+ var sc_loop1_75;
+ var head;
+ var BgL_sc_confzd2set_76zd2;
+ var BgL_sc_statezd2num_77zd2;
+ var state;
+ var sc_states_78;
+ var preds;
+ var BgL_sc_confzd2set_79zd2;
+ var step;
+ var sc_conf_80;
+ var BgL_sc_nbzd2nts_81zd2;
+ var sc_state_82;
+ {
+ (sc_state_82 = (sc_states_67[BgL_sc_statezd2num_68zd2]));
+ (BgL_sc_nbzd2nts_81zd2 = (sc_nts_73.length));
+ while (true) {
+ {
+ (sc_conf_80 = (sc_state_82[(0)]));
+ if ((sc_conf_80>=(0)))
+ {
+ (step = (sc_steps_72[sc_conf_80]));
+ (BgL_sc_confzd2set_79zd2 = (sc_state_82[(sc_conf_80+(1))]));
+ (head = (BgL_sc_confzd2set_79zd2[(4)]));
+ (sc_state_82[(0)] = (BgL_sc_confzd2set_79zd2[(0)]));
+ (conf_set_merge_new_bang(BgL_sc_confzd2set_79zd2));
+ if ((step>=(0)))
+ {
+ (sc_l_74 = (sc_starters_69[step]));
+ while ((sc_l_74 instanceof sc_Pair)) {
+ {
+ (starter = (sc_l_74.car));
+ (starter_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, starter)));
+ if (((starter_set[(BgL_sc_statezd2num_68zd2+(5))])=== false))
+ {
+ (conf_set_adjoin(sc_state_82, starter_set, starter, BgL_sc_statezd2num_68zd2));
+ (sc_l_74 = (sc_l_74.cdr));
+ }
+ else
+ (sc_l_74 = (sc_l_74.cdr));
+ }
+ }
+ (l = (sc_enders_70[step]));
+ while ((l instanceof sc_Pair)) {
+ {
+ (ender = (l.car));
+ if ((((conf_set = (sc_state_82[(ender+(1))])), ((conf_set!== false)?(conf_set[(BgL_sc_statezd2num_68zd2+(5))]):false))!== false))
+ {
+ (next = (sc_conf_80+(1)));
+ (next_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, next)));
+ (conf_set_union(sc_state_82, next_set, next, BgL_sc_confzd2set_79zd2));
+ (l = (l.cdr));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ }
+ else
+ {
+ (preds = (sc_predictors_71[(step+BgL_sc_nbzd2nts_81zd2)]));
+ (sc_states_78 = sc_states_67);
+ (state = sc_state_82);
+ (BgL_sc_statezd2num_77zd2 = BgL_sc_statezd2num_68zd2);
+ (BgL_sc_confzd2set_76zd2 = BgL_sc_confzd2set_79zd2);
+ sc_loop1_75 = function(l) {
+ var sc_state_83;
+ var BgL_sc_nextzd2set_84zd2;
+ var sc_next_85;
+ var pred_set;
+ var i;
+ var pred;
+ if ((l instanceof sc_Pair))
+ {
+ (pred = (l.car));
+ (i = head);
+ while ((i>=(0))) {
+ {
+ (pred_set = ((sc_state_83 = (sc_states_78[i])), (sc_state_83[(pred+(1))])));
+ if ((pred_set!== false))
+ {
+ (sc_next_85 = (pred+(1)));
+ (BgL_sc_nextzd2set_84zd2 = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_77zd2, sc_next_85)));
+ (conf_set_union(state, BgL_sc_nextzd2set_84zd2, sc_next_85, pred_set));
+ }
+ (i = (BgL_sc_confzd2set_76zd2[(i+(5))]));
+ }
+ }
+ return (sc_loop1_75((l.cdr)));
+ }
+ else
+ return undefined;
+ };
+ (sc_loop1_75(preds));
+ }
+ }
+ else
+ return undefined;
+ }
+ }
+ }
+ };
+ is_parsed = function(nt, i, j, sc_nts_86, sc_enders_87, sc_states_88) {
+ var conf_set;
+ var state;
+ var sc_conf_89;
+ var l;
+ var BgL_sc_ntza2_90za2;
+ {
+ (BgL_sc_ntza2_90za2 = (sc_ind_43(nt, sc_nts_86)));
+ if ((BgL_sc_ntza2_90za2!== false))
+ {
+ (sc_nts_86.length);
+ (l = (sc_enders_87[BgL_sc_ntza2_90za2]));
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (sc_conf_89 = (l.car));
+ if ((((state = (sc_states_88[j])), (conf_set = (state[(sc_conf_89+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ return true;
+ else
+ (l = (l.cdr));
+ }
+ else
+ return false;
+ }
+ }
+ else
+ return false;
+ }
+ };
+ deriv_trees = function(sc_conf_91, i, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2) {
+ var sc_loop1_98;
+ var prev;
+ var name;
+ return ((name = (sc_names_94[sc_conf_91])), ((name!== false)?((sc_conf_91<BgL_sc_nbzd2nts_97zd2)?(sc_list((sc_list(name, ((sc_toks_95[i]).car))))):(sc_list((sc_list(name))))):((prev = (sc_conf_91-(1))), (sc_loop1_98 = function(l1, l2) {
+ var loop2;
+ var ender_set;
+ var state;
+ var ender;
+ var l1;
+ var l2;
+ while (true) {
+ if ((l1 instanceof sc_Pair))
+ {
+ (ender = (l1.car));
+ (ender_set = ((state = (sc_states_96[j])), (state[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ loop2 = function(k, l2) {
+ var loop3;
+ var ender_trees;
+ var prev_trees;
+ var conf_set;
+ var sc_state_99;
+ var k;
+ var l2;
+ while (true) {
+ if ((k>=(0)))
+ if (((k>=i)&&(((sc_state_99 = (sc_states_96[k])), (conf_set = (sc_state_99[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)))
+ {
+ (prev_trees = (deriv_trees(prev, i, k, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2)));
+ (ender_trees = (deriv_trees(ender, k, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2)));
+ loop3 = function(l3, l2) {
+ var l4;
+ var sc_l2_100;
+ var ender_tree;
+ if ((l3 instanceof sc_Pair))
+ {
+ (ender_tree = (sc_list((l3.car))));
+ (l4 = prev_trees);
+ (sc_l2_100 = l2);
+ while ((l4 instanceof sc_Pair)) {
+ {
+ (sc_l2_100 = (new sc_Pair((sc_append((l4.car), ender_tree)), sc_l2_100)));
+ (l4 = (l4.cdr));
+ }
+ }
+ return (loop3((l3.cdr), sc_l2_100));
+ }
+ else
+ return (loop2((ender_set[(k+(5))]), l2));
+ };
+ return (loop3(ender_trees, l2));
+ }
+ else
+ (k = (ender_set[(k+(5))]));
+ else
+ return (sc_loop1_98((l1.cdr), l2));
+ }
+ };
+ return (loop2((ender_set[(2)]), l2));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ else
+ return l2;
+ }
+ }), (sc_loop1_98((sc_enders_92[(sc_steps_93[prev])]), null)))));
+ };
+ BgL_sc_derivzd2treesza2_47z70 = function(nt, i, j, sc_nts_101, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106) {
+ var conf_set;
+ var state;
+ var sc_conf_107;
+ var l;
+ var trees;
+ var BgL_sc_nbzd2nts_108zd2;
+ var BgL_sc_ntza2_109za2;
+ {
+ (BgL_sc_ntza2_109za2 = (sc_ind_43(nt, sc_nts_101)));
+ if ((BgL_sc_ntza2_109za2!== false))
+ {
+ (BgL_sc_nbzd2nts_108zd2 = (sc_nts_101.length));
+ (l = (sc_enders_102[BgL_sc_ntza2_109za2]));
+ (trees = null);
+ while ((l instanceof sc_Pair)) {
+ {
+ (sc_conf_107 = (l.car));
+ if ((((state = (sc_states_106[j])), (conf_set = (state[(sc_conf_107+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ {
+ (l = (l.cdr));
+ (trees = (sc_append((deriv_trees(sc_conf_107, i, j, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106, BgL_sc_nbzd2nts_108zd2)), trees)));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ return trees;
+ }
+ else
+ return false;
+ }
+ };
+ nb_deriv_trees = function(sc_conf_110, i, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2) {
+ var sc_loop1_116;
+ var tmp1124;
+ var prev;
+ return ((prev = (sc_conf_110-(1))), ((((tmp1124 = (sc_conf_110<BgL_sc_nbzd2nts_115zd2)), ((tmp1124!== false)?tmp1124:((sc_steps_112[prev])<(0))))!== false)?(1):((sc_loop1_116 = function(l, sc_n_118) {
+ var nb_ender_trees;
+ var nb_prev_trees;
+ var conf_set;
+ var state;
+ var k;
+ var n;
+ var ender_set;
+ var sc_state_117;
+ var ender;
+ var l;
+ var sc_n_118;
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (ender = (l.car));
+ (ender_set = ((sc_state_117 = (sc_states_114[j])), (sc_state_117[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ (k = (ender_set[(2)]));
+ (n = sc_n_118);
+ while ((k>=(0))) {
+ if (((k>=i)&&(((state = (sc_states_114[k])), (conf_set = (state[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)))
+ {
+ (nb_prev_trees = (nb_deriv_trees(prev, i, k, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2)));
+ (nb_ender_trees = (nb_deriv_trees(ender, k, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2)));
+ (k = (ender_set[(k+(5))]));
+ (n +=(nb_prev_trees*nb_ender_trees));
+ }
+ else
+ (k = (ender_set[(k+(5))]));
+ }
+ return (sc_loop1_116((l.cdr), n));
+ }
+ else
+ (l = (l.cdr));
+ }
+ else
+ return sc_n_118;
+ }
+ }), (sc_loop1_116((sc_enders_111[(sc_steps_112[prev])]), (0))))));
+ };
+ BgL_sc_nbzd2derivzd2treesza2_48za2 = function(nt, i, j, sc_nts_119, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123) {
+ var conf_set;
+ var state;
+ var sc_conf_124;
+ var l;
+ var nb_trees;
+ var BgL_sc_nbzd2nts_125zd2;
+ var BgL_sc_ntza2_126za2;
+ {
+ (BgL_sc_ntza2_126za2 = (sc_ind_43(nt, sc_nts_119)));
+ if ((BgL_sc_ntza2_126za2!== false))
+ {
+ (BgL_sc_nbzd2nts_125zd2 = (sc_nts_119.length));
+ (l = (sc_enders_120[BgL_sc_ntza2_126za2]));
+ (nb_trees = (0));
+ while ((l instanceof sc_Pair)) {
+ {
+ (sc_conf_124 = (l.car));
+ if ((((state = (sc_states_123[j])), (conf_set = (state[(sc_conf_124+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))
+ {
+ (l = (l.cdr));
+ (nb_trees = ((nb_deriv_trees(sc_conf_124, i, j, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123, BgL_sc_nbzd2nts_125zd2))+nb_trees));
+ }
+ else
+ (l = (l.cdr));
+ }
+ }
+ return nb_trees;
+ }
+ else
+ return false;
+ }
+ };
+ (lexer = (parser_descr[(0)]));
+ (sc_nts_42 = (parser_descr[(1)]));
+ (sc_starters_41 = (parser_descr[(2)]));
+ (sc_enders_40 = (parser_descr[(3)]));
+ (sc_predictors_39 = (parser_descr[(4)]));
+ (sc_steps_38 = (parser_descr[(5)]));
+ (sc_names_37 = (parser_descr[(6)]));
+ (falseHead1128 = (new sc_Pair(null, null)));
+ (L1125 = (lexer(input)));
+ (tail1129 = falseHead1128);
+ while (!(L1125 === null)) {
+ {
+ (tok = (L1125.car));
+ (l1 = (tok.cdr));
+ (l2 = null);
+ while ((l1 instanceof sc_Pair)) {
+ {
+ (sc_i_29 = (sc_ind_43((l1.car), sc_nts_42)));
+ if ((sc_i_29!== false))
+ {
+ (l1 = (l1.cdr));
+ (l2 = (new sc_Pair(sc_i_29, l2)));
+ }
+ else
+ (l1 = (l1.cdr));
+ }
+ }
+ (sc_optrOpnd_22 = (new sc_Pair((tok.car), (sc_reverse(l2)))));
+ (sc_optrOpnd_21 = (new sc_Pair(sc_optrOpnd_22, null)));
+ (tail1129.cdr = sc_optrOpnd_21);
+ (tail1129 = (tail1129.cdr));
+ (L1125 = (L1125.cdr));
+ }
+ }
+ (sc_optrOpnd_20 = (falseHead1128.cdr));
+ (sc_toks_36 = (sc_list2vector(sc_optrOpnd_20)));
+ (BgL_sc_nbzd2toks_35zd2 = (sc_toks_36.length));
+ (BgL_sc_nbzd2confs_34zd2 = (sc_steps_38.length));
+ (sc_states_33 = (make_states(BgL_sc_nbzd2toks_35zd2, BgL_sc_nbzd2confs_34zd2)));
+ (goal_starters = (sc_starters_41[(0)]));
+ (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (0), goal_starters, (0)));
+ (forw(sc_states_33, (0), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
+ (sc_i_28 = (0));
+ while ((sc_i_28<BgL_sc_nbzd2toks_35zd2)) {
+ {
+ (tok_nts = ((sc_toks_36[sc_i_28]).cdr));
+ (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (sc_i_28+(1)), tok_nts, sc_i_28));
+ (forw(sc_states_33, (sc_i_28+(1)), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
+ (++sc_i_28);
+ }
+ }
+ (nb_toks = (sc_toks_36.length));
+ (BgL_sc_nbzd2confs_32zd2 = (sc_steps_38.length));
+ (BgL_sc_nbzd2nts_31zd2 = (sc_nts_42.length));
+ (BgL_sc_statesza2_30za2 = (make_states(nb_toks, BgL_sc_nbzd2confs_32zd2)));
+ (goal_enders = (sc_enders_40[(0)]));
+ (l = goal_enders);
+ while ((l instanceof sc_Pair)) {
+ {
+ (conf = (l.car));
+ (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_33, BgL_sc_statesza2_30za2, nb_toks, conf, (0)));
+ (l = (l.cdr));
+ }
+ }
+ (i = nb_toks);
+ while ((i>=(0))) {
+ {
+ (states = sc_states_33);
+ (BgL_sc_statesza2_27za2 = BgL_sc_statesza2_30za2);
+ (state_num = i);
+ (sc_enders_26 = sc_enders_40);
+ (sc_steps_25 = sc_steps_38);
+ (BgL_sc_nbzd2nts_24zd2 = BgL_sc_nbzd2nts_31zd2);
+ (toks = sc_toks_36);
+ (BgL_sc_stateza2_23za2 = (BgL_sc_statesza2_30za2[i]));
+ loop1 = function() {
+ var sc_loop1_127;
+ var prev;
+ var BgL_sc_statesza2_128za2;
+ var sc_states_129;
+ var j;
+ var i;
+ var sc_i_130;
+ var head;
+ var conf_set;
+ var sc_conf_131;
+ {
+ (sc_conf_131 = (BgL_sc_stateza2_23za2[(0)]));
+ if ((sc_conf_131>=(0)))
+ {
+ (conf_set = (BgL_sc_stateza2_23za2[(sc_conf_131+(1))]));
+ (head = (conf_set[(4)]));
+ (BgL_sc_stateza2_23za2[(0)] = (conf_set[(0)]));
+ (conf_set_merge_new_bang(conf_set));
+ (sc_i_130 = head);
+ while ((sc_i_130>=(0))) {
+ {
+ (i = sc_i_130);
+ (j = state_num);
+ (sc_states_129 = states);
+ (BgL_sc_statesza2_128za2 = BgL_sc_statesza2_27za2);
+ (prev = (sc_conf_131-(1)));
+ if (((sc_conf_131>=BgL_sc_nbzd2nts_24zd2)&&((sc_steps_25[prev])>=(0))))
+ {
+ sc_loop1_127 = function(l) {
+ var k;
+ var ender_set;
+ var state;
+ var ender;
+ var l;
+ while (true) {
+ if ((l instanceof sc_Pair))
+ {
+ (ender = (l.car));
+ (ender_set = ((state = (sc_states_129[j])), (state[(ender+(1))])));
+ if ((ender_set!== false))
+ {
+ (k = (ender_set[(2)]));
+ while ((k>=(0))) {
+ {
+ if ((k>=i))
+ if (((BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, k, prev, i))!== false))
+ (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, j, ender, k));
+ (k = (ender_set[(k+(5))]));
+ }
+ }
+ return (sc_loop1_127((l.cdr)));
+ }
+ else
+ (l = (l.cdr));
+ }
+ else
+ return undefined;
+ }
+ };
+ (sc_loop1_127((sc_enders_26[(sc_steps_25[prev])])));
+ }
+ (sc_i_130 = (conf_set[(sc_i_130+(5))]));
+ }
+ }
+ return (loop1());
+ }
+ else
+ return undefined;
+ }
+ };
+ (loop1());
+ (--i);
+ }
+ }
+ (optrOpnd = BgL_sc_statesza2_30za2);
+ return [sc_nts_42, sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_names_37, sc_toks_36, optrOpnd, is_parsed, BgL_sc_derivzd2treesza2_47z70, BgL_sc_nbzd2derivzd2treesza2_48za2];
+ }
+ };
+ }
+ };
+ BgL_parsezd2ze3parsedzf3zc2 = function(parse, nt, i, j) {
+ var is_parsed;
+ var states;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (states = (parse[(7)])), (is_parsed = (parse[(8)])), (is_parsed(nt, i, j, nts, enders, states)));
+ };
+ BgL_parsezd2ze3treesz31 = function(parse, nt, i, j) {
+ var BgL_sc_derivzd2treesza2_132z70;
+ var states;
+ var toks;
+ var names;
+ var steps;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (names = (parse[(5)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_derivzd2treesza2_132z70 = (parse[(9)])), (BgL_sc_derivzd2treesza2_132z70(nt, i, j, nts, enders, steps, names, toks, states)));
+ };
+ BgL_parsezd2ze3nbzd2treesze3 = function(parse, nt, i, j) {
+ var BgL_sc_nbzd2derivzd2treesza2_133za2;
+ var states;
+ var toks;
+ var steps;
+ var enders;
+ var nts;
+ return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_nbzd2derivzd2treesza2_133za2 = (parse[(10)])), (BgL_sc_nbzd2derivzd2treesza2_133za2(nt, i, j, nts, enders, steps, toks, states)));
+ };
+ test = function(k) {
+ var x;
+ var p;
+ return ((p = (BgL_makezd2parserzd2(const_earley, function(l) {
+ var sc_x_134;
+ var tail1134;
+ var L1130;
+ var falseHead1133;
+ {
+ (falseHead1133 = (new sc_Pair(null, null)));
+ (tail1134 = falseHead1133);
+ (L1130 = l);
+ while (!(L1130 === null)) {
+ {
+ (tail1134.cdr = (new sc_Pair(((sc_x_134 = (L1130.car)), (sc_list(sc_x_134, sc_x_134))), null)));
+ (tail1134 = (tail1134.cdr));
+ (L1130 = (L1130.cdr));
+ }
+ }
+ return (falseHead1133.cdr);
+ }
+ }))), (x = (p((sc_vector2list((sc_makeVector(k, "\u1E9Ca"))))))), (sc_length((BgL_parsezd2ze3treesz31(x, "\u1E9Cs", (0), k)))));
+ };
+ BgL_earleyzd2benchmarkzd2 = function() {
+ var args = null;
+ for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) {
+ args = sc_cons(arguments[sc_tmp], args);
+ }
+ var k;
+ return ((k = ((args === null)?(7):(args.car))), (BgL_runzd2benchmarkzd2("earley", (1), function() {
+ return (test(k));
+ }, function(result) {
+ return ((sc_display(result)), (sc_newline()), result == 132);
+ })));
+ };
+}
+
+
+/************* END OF GENERATED CODE *************/
+// Invoke this function to run a benchmark.
+// The first argument is a string identifying the benchmark.
+// The second argument is the number of times to run the benchmark.
+// The third argument is a function that runs the benchmark.
+// The fourth argument is a unary function that warns if the result
+// returned by the benchmark is incorrect.
+//
+// Example:
+// RunBenchmark("new Array()",
+// 1,
+// function () { new Array(1000000); }
+// function (v) {
+// return (v instanceof Array) && (v.length == 1000000);
+// });
+
+SC_DEFAULT_OUT = new sc_GenericOutputPort(function(s) {});
+SC_ERROR_OUT = SC_DEFAULT_OUT;
+
+function RunBenchmark(name, count, run, warn) {
+ for (var n = 0; n < count; ++n) {
+ result = run();
+ if (!warn(result)) {
+ throw new Error("Earley or Boyer did incorrect number of rewrites");
+ }
+ }
+}
+
+var BgL_runzd2benchmarkzd2 = RunBenchmark;
+
+for (var i = 0; i < 4; ++i) {
+ BgL_earleyzd2benchmarkzd2();
+ BgL_nboyerzd2benchmarkzd2();
+}
diff --git a/PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js b/PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js
new file mode 100644
index 000000000..1805ae5f5
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js
@@ -0,0 +1,902 @@
+// The ray tracer code in this file is written by Adam Burmister. It
+// is available in its original form from:
+//
+// http://labs.flog.nz.co/raytracer/
+//
+// It has been modified slightly by Google to work as a standalone
+// benchmark, but the all the computational code remains
+// untouched. This file also contains a copy of parts of the Prototype
+// JavaScript framework which is used by the ray tracer.
+
+// Variable used to hold a number that can be used to verify that
+// the scene was ray traced correctly.
+var checkNumber;
+
+
+// ------------------------------------------------------------------------
+// ------------------------------------------------------------------------
+
+// The following is a copy of parts of the Prototype JavaScript library:
+
+// Prototype JavaScript framework, version 1.5.0
+// (c) 2005-2007 Sam Stephenson
+//
+// Prototype is freely distributable under the terms of an MIT-style license.
+// For details, see the Prototype web site: http://prototype.conio.net/
+
+
+var Class = {
+ create: function() {
+ return function() {
+ this.initialize.apply(this, arguments);
+ }
+ }
+};
+
+
+Object.extend = function(destination, source) {
+ for (var property in source) {
+ destination[property] = source[property];
+ }
+ return destination;
+};
+
+
+// ------------------------------------------------------------------------
+// ------------------------------------------------------------------------
+
+// The rest of this file is the actual ray tracer written by Adam
+// Burmister. It's a concatenation of the following files:
+//
+// flog/color.js
+// flog/light.js
+// flog/vector.js
+// flog/ray.js
+// flog/scene.js
+// flog/material/basematerial.js
+// flog/material/solid.js
+// flog/material/chessboard.js
+// flog/shape/baseshape.js
+// flog/shape/sphere.js
+// flog/shape/plane.js
+// flog/intersectioninfo.js
+// flog/camera.js
+// flog/background.js
+// flog/engine.js
+
+
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Color = Class.create();
+
+Flog.RayTracer.Color.prototype = {
+ red : 0.0,
+ green : 0.0,
+ blue : 0.0,
+
+ initialize : function(r, g, b) {
+ if(!r) r = 0.0;
+ if(!g) g = 0.0;
+ if(!b) b = 0.0;
+
+ this.red = r;
+ this.green = g;
+ this.blue = b;
+ },
+
+ add : function(c1, c2){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red + c2.red;
+ result.green = c1.green + c2.green;
+ result.blue = c1.blue + c2.blue;
+
+ return result;
+ },
+
+ addScalar: function(c1, s){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red + s;
+ result.green = c1.green + s;
+ result.blue = c1.blue + s;
+
+ result.limit();
+
+ return result;
+ },
+
+ subtract: function(c1, c2){
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red - c2.red;
+ result.green = c1.green - c2.green;
+ result.blue = c1.blue - c2.blue;
+
+ return result;
+ },
+
+ multiply : function(c1, c2) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red * c2.red;
+ result.green = c1.green * c2.green;
+ result.blue = c1.blue * c2.blue;
+
+ return result;
+ },
+
+ multiplyScalar : function(c1, f) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red * f;
+ result.green = c1.green * f;
+ result.blue = c1.blue * f;
+
+ return result;
+ },
+
+ divideFactor : function(c1, f) {
+ var result = new Flog.RayTracer.Color(0,0,0);
+
+ result.red = c1.red / f;
+ result.green = c1.green / f;
+ result.blue = c1.blue / f;
+
+ return result;
+ },
+
+ limit: function(){
+ this.red = (this.red > 0.0) ? ( (this.red > 1.0) ? 1.0 : this.red ) : 0.0;
+ this.green = (this.green > 0.0) ? ( (this.green > 1.0) ? 1.0 : this.green ) : 0.0;
+ this.blue = (this.blue > 0.0) ? ( (this.blue > 1.0) ? 1.0 : this.blue ) : 0.0;
+ },
+
+ distance : function(color) {
+ var d = Math.abs(this.red - color.red) + Math.abs(this.green - color.green) + Math.abs(this.blue - color.blue);
+ return d;
+ },
+
+ blend: function(c1, c2, w){
+ var result = new Flog.RayTracer.Color(0,0,0);
+ result = Flog.RayTracer.Color.prototype.add(
+ Flog.RayTracer.Color.prototype.multiplyScalar(c1, 1 - w),
+ Flog.RayTracer.Color.prototype.multiplyScalar(c2, w)
+ );
+ return result;
+ },
+
+ brightness : function() {
+ var r = Math.floor(this.red*255);
+ var g = Math.floor(this.green*255);
+ var b = Math.floor(this.blue*255);
+ return (r * 77 + g * 150 + b * 29) >> 8;
+ },
+
+ toString : function () {
+ var r = Math.floor(this.red*255);
+ var g = Math.floor(this.green*255);
+ var b = Math.floor(this.blue*255);
+
+ return "rgb("+ r +","+ g +","+ b +")";
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Light = Class.create();
+
+Flog.RayTracer.Light.prototype = {
+ position: null,
+ color: null,
+ intensity: 10.0,
+
+ initialize : function(pos, color, intensity) {
+ this.position = pos;
+ this.color = color;
+ this.intensity = (intensity ? intensity : 10.0);
+ },
+
+ toString : function () {
+ return 'Light [' + this.position.x + ',' + this.position.y + ',' + this.position.z + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Vector = Class.create();
+
+Flog.RayTracer.Vector.prototype = {
+ x : 0.0,
+ y : 0.0,
+ z : 0.0,
+
+ initialize : function(x, y, z) {
+ this.x = (x ? x : 0);
+ this.y = (y ? y : 0);
+ this.z = (z ? z : 0);
+ },
+
+ copy: function(vector){
+ this.x = vector.x;
+ this.y = vector.y;
+ this.z = vector.z;
+ },
+
+ normalize : function() {
+ var m = this.magnitude();
+ return new Flog.RayTracer.Vector(this.x / m, this.y / m, this.z / m);
+ },
+
+ magnitude : function() {
+ return Math.sqrt((this.x * this.x) + (this.y * this.y) + (this.z * this.z));
+ },
+
+ cross : function(w) {
+ return new Flog.RayTracer.Vector(
+ -this.z * w.y + this.y * w.z,
+ this.z * w.x - this.x * w.z,
+ -this.y * w.x + this.x * w.y);
+ },
+
+ dot : function(w) {
+ return this.x * w.x + this.y * w.y + this.z * w.z;
+ },
+
+ add : function(v, w) {
+ return new Flog.RayTracer.Vector(w.x + v.x, w.y + v.y, w.z + v.z);
+ },
+
+ subtract : function(v, w) {
+ if(!w || !v) throw 'Vectors must be defined [' + v + ',' + w + ']';
+ return new Flog.RayTracer.Vector(v.x - w.x, v.y - w.y, v.z - w.z);
+ },
+
+ multiplyVector : function(v, w) {
+ return new Flog.RayTracer.Vector(v.x * w.x, v.y * w.y, v.z * w.z);
+ },
+
+ multiplyScalar : function(v, w) {
+ return new Flog.RayTracer.Vector(v.x * w, v.y * w, v.z * w);
+ },
+
+ toString : function () {
+ return 'Vector [' + this.x + ',' + this.y + ',' + this.z + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Ray = Class.create();
+
+Flog.RayTracer.Ray.prototype = {
+ position : null,
+ direction : null,
+ initialize : function(pos, dir) {
+ this.position = pos;
+ this.direction = dir;
+ },
+
+ toString : function () {
+ return 'Ray [' + this.position + ',' + this.direction + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Scene = Class.create();
+
+Flog.RayTracer.Scene.prototype = {
+ camera : null,
+ shapes : [],
+ lights : [],
+ background : null,
+
+ initialize : function() {
+ this.camera = new Flog.RayTracer.Camera(
+ new Flog.RayTracer.Vector(0,0,-5),
+ new Flog.RayTracer.Vector(0,0,1),
+ new Flog.RayTracer.Vector(0,1,0)
+ );
+ this.shapes = new Array();
+ this.lights = new Array();
+ this.background = new Flog.RayTracer.Background(new Flog.RayTracer.Color(0,0,0.5), 0.2);
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Material) == 'undefined') Flog.RayTracer.Material = {};
+
+Flog.RayTracer.Material.BaseMaterial = Class.create();
+
+Flog.RayTracer.Material.BaseMaterial.prototype = {
+
+ gloss: 2.0, // [0...infinity] 0 = matt
+ transparency: 0.0, // 0=opaque
+ reflection: 0.0, // [0...infinity] 0 = no reflection
+ refraction: 0.50,
+ hasTexture: false,
+
+ initialize : function() {
+
+ },
+
+ getColor: function(u, v){
+
+ },
+
+ wrapUp: function(t){
+ t = t % 2.0;
+ if(t < -1) t += 2.0;
+ if(t >= 1) t -= 2.0;
+ return t;
+ },
+
+ toString : function () {
+ return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Material.Solid = Class.create();
+
+Flog.RayTracer.Material.Solid.prototype = Object.extend(
+ new Flog.RayTracer.Material.BaseMaterial(), {
+ initialize : function(color, reflection, refraction, transparency, gloss) {
+ this.color = color;
+ this.reflection = reflection;
+ this.transparency = transparency;
+ this.gloss = gloss;
+ this.hasTexture = false;
+ },
+
+ getColor: function(u, v){
+ return this.color;
+ },
+
+ toString : function () {
+ return 'SolidMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+ }
+);
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Material.Chessboard = Class.create();
+
+Flog.RayTracer.Material.Chessboard.prototype = Object.extend(
+ new Flog.RayTracer.Material.BaseMaterial(), {
+ colorEven: null,
+ colorOdd: null,
+ density: 0.5,
+
+ initialize : function(colorEven, colorOdd, reflection, transparency, gloss, density) {
+ this.colorEven = colorEven;
+ this.colorOdd = colorOdd;
+ this.reflection = reflection;
+ this.transparency = transparency;
+ this.gloss = gloss;
+ this.density = density;
+ this.hasTexture = true;
+ },
+
+ getColor: function(u, v){
+ var t = this.wrapUp(u * this.density) * this.wrapUp(v * this.density);
+
+ if(t < 0.0)
+ return this.colorEven;
+ else
+ return this.colorOdd;
+ },
+
+ toString : function () {
+ return 'ChessMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
+ }
+ }
+);
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.Sphere = Class.create();
+
+Flog.RayTracer.Shape.Sphere.prototype = {
+ initialize : function(pos, radius, material) {
+ this.radius = radius;
+ this.position = pos;
+ this.material = material;
+ },
+
+ intersect: function(ray){
+ var info = new Flog.RayTracer.IntersectionInfo();
+ info.shape = this;
+
+ var dst = Flog.RayTracer.Vector.prototype.subtract(ray.position, this.position);
+
+ var B = dst.dot(ray.direction);
+ var C = dst.dot(dst) - (this.radius * this.radius);
+ var D = (B * B) - C;
+
+ if(D > 0){ // intersection!
+ info.isHit = true;
+ info.distance = (-B) - Math.sqrt(D);
+ info.position = Flog.RayTracer.Vector.prototype.add(
+ ray.position,
+ Flog.RayTracer.Vector.prototype.multiplyScalar(
+ ray.direction,
+ info.distance
+ )
+ );
+ info.normal = Flog.RayTracer.Vector.prototype.subtract(
+ info.position,
+ this.position
+ ).normalize();
+
+ info.color = this.material.getColor(0,0);
+ } else {
+ info.isHit = false;
+ }
+ return info;
+ },
+
+ toString : function () {
+ return 'Sphere [position=' + this.position + ', radius=' + this.radius + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
+
+Flog.RayTracer.Shape.Plane = Class.create();
+
+Flog.RayTracer.Shape.Plane.prototype = {
+ d: 0.0,
+
+ initialize : function(pos, d, material) {
+ this.position = pos;
+ this.d = d;
+ this.material = material;
+ },
+
+ intersect: function(ray){
+ var info = new Flog.RayTracer.IntersectionInfo();
+
+ var Vd = this.position.dot(ray.direction);
+ if(Vd == 0) return info; // no intersection
+
+ var t = -(this.position.dot(ray.position) + this.d) / Vd;
+ if(t <= 0) return info;
+
+ info.shape = this;
+ info.isHit = true;
+ info.position = Flog.RayTracer.Vector.prototype.add(
+ ray.position,
+ Flog.RayTracer.Vector.prototype.multiplyScalar(
+ ray.direction,
+ t
+ )
+ );
+ info.normal = this.position;
+ info.distance = t;
+
+ if(this.material.hasTexture){
+ var vU = new Flog.RayTracer.Vector(this.position.y, this.position.z, -this.position.x);
+ var vV = vU.cross(this.position);
+ var u = info.position.dot(vU);
+ var v = info.position.dot(vV);
+ info.color = this.material.getColor(u,v);
+ } else {
+ info.color = this.material.getColor(0,0);
+ }
+
+ return info;
+ },
+
+ toString : function () {
+ return 'Plane [' + this.position + ', d=' + this.d + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.IntersectionInfo = Class.create();
+
+Flog.RayTracer.IntersectionInfo.prototype = {
+ isHit: false,
+ hitCount: 0,
+ shape: null,
+ position: null,
+ normal: null,
+ color: null,
+ distance: null,
+
+ initialize : function() {
+ this.color = new Flog.RayTracer.Color(0,0,0);
+ },
+
+ toString : function () {
+ return 'Intersection [' + this.position + ']';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Camera = Class.create();
+
+Flog.RayTracer.Camera.prototype = {
+ position: null,
+ lookAt: null,
+ equator: null,
+ up: null,
+ screen: null,
+
+ initialize : function(pos, lookAt, up) {
+ this.position = pos;
+ this.lookAt = lookAt;
+ this.up = up;
+ this.equator = lookAt.normalize().cross(this.up);
+ this.screen = Flog.RayTracer.Vector.prototype.add(this.position, this.lookAt);
+ },
+
+ getRay: function(vx, vy){
+ var pos = Flog.RayTracer.Vector.prototype.subtract(
+ this.screen,
+ Flog.RayTracer.Vector.prototype.subtract(
+ Flog.RayTracer.Vector.prototype.multiplyScalar(this.equator, vx),
+ Flog.RayTracer.Vector.prototype.multiplyScalar(this.up, vy)
+ )
+ );
+ pos.y = pos.y * -1;
+ var dir = Flog.RayTracer.Vector.prototype.subtract(
+ pos,
+ this.position
+ );
+
+ var ray = new Flog.RayTracer.Ray(pos, dir.normalize());
+
+ return ray;
+ },
+
+ toString : function () {
+ return 'Ray []';
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Background = Class.create();
+
+Flog.RayTracer.Background.prototype = {
+ color : null,
+ ambience : 0.0,
+
+ initialize : function(color, ambience) {
+ this.color = color;
+ this.ambience = ambience;
+ }
+}
+/* Fake a Flog.* namespace */
+if(typeof(Flog) == 'undefined') var Flog = {};
+if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
+
+Flog.RayTracer.Engine = Class.create();
+
+Flog.RayTracer.Engine.prototype = {
+ canvas: null, /* 2d context we can render to */
+
+ initialize: function(options){
+ this.options = Object.extend({
+ canvasHeight: 100,
+ canvasWidth: 100,
+ pixelWidth: 2,
+ pixelHeight: 2,
+ renderDiffuse: false,
+ renderShadows: false,
+ renderHighlights: false,
+ renderReflections: false,
+ rayDepth: 2
+ }, options || {});
+
+ this.options.canvasHeight /= this.options.pixelHeight;
+ this.options.canvasWidth /= this.options.pixelWidth;
+
+ /* TODO: dynamically include other scripts */
+ },
+
+ setPixel: function(x, y, color){
+ var pxW, pxH;
+ pxW = this.options.pixelWidth;
+ pxH = this.options.pixelHeight;
+
+ if (this.canvas) {
+ this.canvas.fillStyle = color.toString();
+ this.canvas.fillRect (x * pxW, y * pxH, pxW, pxH);
+ } else {
+ if (x === y) {
+ checkNumber += color.brightness();
+ }
+ // print(x * pxW, y * pxH, pxW, pxH);
+ }
+ },
+
+ renderScene: function(scene, canvas){
+ checkNumber = 0;
+ /* Get canvas */
+ if (canvas) {
+ this.canvas = canvas.getContext("2d");
+ } else {
+ this.canvas = null;
+ }
+
+ var canvasHeight = this.options.canvasHeight;
+ var canvasWidth = this.options.canvasWidth;
+
+ for(var y=0; y < canvasHeight; y++){
+ for(var x=0; x < canvasWidth; x++){
+ var yp = y * 1.0 / canvasHeight * 2 - 1;
+ var xp = x * 1.0 / canvasWidth * 2 - 1;
+
+ var ray = scene.camera.getRay(xp, yp);
+
+ var color = this.getPixelColor(ray, scene);
+
+ this.setPixel(x, y, color);
+ }
+ }
+ if (checkNumber !== 2321) {
+ throw new Error("Scene rendered incorrectly");
+ }
+ },
+
+ getPixelColor: function(ray, scene){
+ var info = this.testIntersection(ray, scene, null);
+ if(info.isHit){
+ var color = this.rayTrace(info, ray, scene, 0);
+ return color;
+ }
+ return scene.background.color;
+ },
+
+ testIntersection: function(ray, scene, exclude){
+ var hits = 0;
+ var best = new Flog.RayTracer.IntersectionInfo();
+ best.distance = 2000;
+
+ for(var i=0; i<scene.shapes.length; i++){
+ var shape = scene.shapes[i];
+
+ if(shape != exclude){
+ var info = shape.intersect(ray);
+ if(info.isHit && info.distance >= 0 && info.distance < best.distance){
+ best = info;
+ hits++;
+ }
+ }
+ }
+ best.hitCount = hits;
+ return best;
+ },
+
+ getReflectionRay: function(P,N,V){
+ var c1 = -N.dot(V);
+ var R1 = Flog.RayTracer.Vector.prototype.add(
+ Flog.RayTracer.Vector.prototype.multiplyScalar(N, 2*c1),
+ V
+ );
+ return new Flog.RayTracer.Ray(P, R1);
+ },
+
+ rayTrace: function(info, ray, scene, depth){
+ // Calc ambient
+ var color = Flog.RayTracer.Color.prototype.multiplyScalar(info.color, scene.background.ambience);
+ var oldColor = color;
+ var shininess = Math.pow(10, info.shape.material.gloss + 1);
+
+ for(var i=0; i<scene.lights.length; i++){
+ var light = scene.lights[i];
+
+ // Calc diffuse lighting
+ var v = Flog.RayTracer.Vector.prototype.subtract(
+ light.position,
+ info.position
+ ).normalize();
+
+ if(this.options.renderDiffuse){
+ var L = v.dot(info.normal);
+ if(L > 0.0){
+ color = Flog.RayTracer.Color.prototype.add(
+ color,
+ Flog.RayTracer.Color.prototype.multiply(
+ info.color,
+ Flog.RayTracer.Color.prototype.multiplyScalar(
+ light.color,
+ L
+ )
+ )
+ );
+ }
+ }
+
+ // The greater the depth the more accurate the colours, but
+ // this is exponentially (!) expensive
+ if(depth <= this.options.rayDepth){
+ // calculate reflection ray
+ if(this.options.renderReflections && info.shape.material.reflection > 0)
+ {
+ var reflectionRay = this.getReflectionRay(info.position, info.normal, ray.direction);
+ var refl = this.testIntersection(reflectionRay, scene, info.shape);
+
+ if (refl.isHit && refl.distance > 0){
+ refl.color = this.rayTrace(refl, reflectionRay, scene, depth + 1);
+ } else {
+ refl.color = scene.background.color;
+ }
+
+ color = Flog.RayTracer.Color.prototype.blend(
+ color,
+ refl.color,
+ info.shape.material.reflection
+ );
+ }
+
+ // Refraction
+ /* TODO */
+ }
+
+ /* Render shadows and highlights */
+
+ var shadowInfo = new Flog.RayTracer.IntersectionInfo();
+
+ if(this.options.renderShadows){
+ var shadowRay = new Flog.RayTracer.Ray(info.position, v);
+
+ shadowInfo = this.testIntersection(shadowRay, scene, info.shape);
+ if(shadowInfo.isHit && shadowInfo.shape != info.shape /*&& shadowInfo.shape.type != 'PLANE'*/){
+ var vA = Flog.RayTracer.Color.prototype.multiplyScalar(color, 0.5);
+ var dB = (0.5 * Math.pow(shadowInfo.shape.material.transparency, 0.5));
+ color = Flog.RayTracer.Color.prototype.addScalar(vA,dB);
+ }
+ }
+
+ // Phong specular highlights
+ if(this.options.renderHighlights && !shadowInfo.isHit && info.shape.material.gloss > 0){
+ var Lv = Flog.RayTracer.Vector.prototype.subtract(
+ info.shape.position,
+ light.position
+ ).normalize();
+
+ var E = Flog.RayTracer.Vector.prototype.subtract(
+ scene.camera.position,
+ info.shape.position
+ ).normalize();
+
+ var H = Flog.RayTracer.Vector.prototype.subtract(
+ E,
+ Lv
+ ).normalize();
+
+ var glossWeight = Math.pow(Math.max(info.normal.dot(H), 0), shininess);
+ color = Flog.RayTracer.Color.prototype.add(
+ Flog.RayTracer.Color.prototype.multiplyScalar(light.color, glossWeight),
+ color
+ );
+ }
+ }
+ color.limit();
+ return color;
+ }
+};
+
+
+function renderScene(){
+ var scene = new Flog.RayTracer.Scene();
+
+ scene.camera = new Flog.RayTracer.Camera(
+ new Flog.RayTracer.Vector(0, 0, -15),
+ new Flog.RayTracer.Vector(-0.2, 0, 5),
+ new Flog.RayTracer.Vector(0, 1, 0)
+ );
+
+ scene.background = new Flog.RayTracer.Background(
+ new Flog.RayTracer.Color(0.5, 0.5, 0.5),
+ 0.4
+ );
+
+ var sphere = new Flog.RayTracer.Shape.Sphere(
+ new Flog.RayTracer.Vector(-1.5, 1.5, 2),
+ 1.5,
+ new Flog.RayTracer.Material.Solid(
+ new Flog.RayTracer.Color(0,0.5,0.5),
+ 0.3,
+ 0.0,
+ 0.0,
+ 2.0
+ )
+ );
+
+ var sphere1 = new Flog.RayTracer.Shape.Sphere(
+ new Flog.RayTracer.Vector(1, 0.25, 1),
+ 0.5,
+ new Flog.RayTracer.Material.Solid(
+ new Flog.RayTracer.Color(0.9,0.9,0.9),
+ 0.1,
+ 0.0,
+ 0.0,
+ 1.5
+ )
+ );
+
+ var plane = new Flog.RayTracer.Shape.Plane(
+ new Flog.RayTracer.Vector(0.1, 0.9, -0.5).normalize(),
+ 1.2,
+ new Flog.RayTracer.Material.Chessboard(
+ new Flog.RayTracer.Color(1,1,1),
+ new Flog.RayTracer.Color(0,0,0),
+ 0.2,
+ 0.0,
+ 1.0,
+ 0.7
+ )
+ );
+
+ scene.shapes.push(plane);
+ scene.shapes.push(sphere);
+ scene.shapes.push(sphere1);
+
+ var light = new Flog.RayTracer.Light(
+ new Flog.RayTracer.Vector(5, 10, -1),
+ new Flog.RayTracer.Color(0.8, 0.8, 0.8)
+ );
+
+ var light1 = new Flog.RayTracer.Light(
+ new Flog.RayTracer.Vector(-3, 5, -15),
+ new Flog.RayTracer.Color(0.8, 0.8, 0.8),
+ 100
+ );
+
+ scene.lights.push(light);
+ scene.lights.push(light1);
+
+ var imageWidth = 100; // $F('imageWidth');
+ var imageHeight = 100; // $F('imageHeight');
+ var pixelSize = "5,5".split(','); // $F('pixelSize').split(',');
+ var renderDiffuse = true; // $F('renderDiffuse');
+ var renderShadows = true; // $F('renderShadows');
+ var renderHighlights = true; // $F('renderHighlights');
+ var renderReflections = true; // $F('renderReflections');
+ var rayDepth = 2;//$F('rayDepth');
+
+ var raytracer = new Flog.RayTracer.Engine(
+ {
+ canvasWidth: imageWidth,
+ canvasHeight: imageHeight,
+ pixelWidth: pixelSize[0],
+ pixelHeight: pixelSize[1],
+ "renderDiffuse": renderDiffuse,
+ "renderHighlights": renderHighlights,
+ "renderShadows": renderShadows,
+ "renderReflections": renderReflections,
+ "rayDepth": rayDepth
+ }
+ );
+
+ raytracer.renderScene(scene, null, 0);
+}
+
+for (var i = 0; i < 6; ++i)
+ renderScene();
diff --git a/PerformanceTests/SunSpider/tests/v8-v6/v8-regexp.js b/PerformanceTests/SunSpider/tests/v8-v6/v8-regexp.js
new file mode 100644
index 000000000..a3ac08180
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v6/v8-regexp.js
@@ -0,0 +1,1613 @@
+// Copyright 2009 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Automatically generated on 2009-01-30.
+
+// This benchmark is generated by loading 50 of the most popular pages
+// on the web and logging all regexp operations performed. Each
+// operation is given a weight that is calculated from an estimate of
+// the popularity of the pages where it occurs and the number of times
+// it is executed while loading each page. Finally the literal
+// letters in the data are encoded using ROT13 in a way that does not
+// affect how the regexps match their input.
+
+function runRegExpBenchmark() {
+ var re0 = /^ba/;
+ var re1 = /(((\w+):\/\/)([^\/:]*)(:(\d+))?)?([^#?]*)(\?([^#]*))?(#(.*))?/;
+ var re2 = /^\s*|\s*$/g;
+ var re3 = /\bQBZPbageby_cynprubyqre\b/;
+ var re4 = /,/;
+ var re5 = /\bQBZPbageby_cynprubyqre\b/g;
+ var re6 = /^[\s\xa0]+|[\s\xa0]+$/g;
+ var re7 = /(\d*)(\D*)/g;
+ var re8 = /=/;
+ var re9 = /(^|\s)lhv\-h(\s|$)/;
+ var str0 = 'Zbmvyyn/5.0 (Jvaqbjf; H; Jvaqbjf AG 5.1; ra-HF) NccyrJroXvg/528.9 (XUGZY, yvxr Trpxb) Puebzr/2.0.157.0 Fnsnev/528.9';
+ var re10 = /\#/g;
+ var re11 = /\./g;
+ var re12 = /'/g;
+ var re13 = /\?[\w\W]*(sevraqvq|punaaryvq|tebhcvq)=([^\&\?#]*)/i;
+ var str1 = 'Fubpxjnir Synfu 9.0 e115';
+ var re14 = /\s+/g;
+ var re15 = /^\s*(\S*(\s+\S+)*)\s*$/;
+ var re16 = /(-[a-z])/i;
+ function runBlock0() {
+ for (var i = 0; i < 6511; i++) {
+ re0.exec('pyvpx');
+ }
+ for (var i = 0; i < 1844; i++) {
+ re1.exec('uggc://jjj.snprobbx.pbz/ybtva.cuc');
+ }
+ for (var i = 0; i < 739; i++) {
+ 'QBZPbageby_cynprubyqre'.replace(re2, '');
+ }
+ for (var i = 0; i < 598; i++) {
+ re1.exec('uggc://jjj.snprobbx.pbz/');
+ }
+ for (var i = 0; i < 454; i++) {
+ re1.exec('uggc://jjj.snprobbx.pbz/fepu.cuc');
+ }
+ for (var i = 0; i < 352; i++) {
+ /qqqq|qqq|qq|q|ZZZZ|ZZZ|ZZ|Z|llll|ll|l|uu|u|UU|U|zz|z|ff|f|gg|g|sss|ss|s|mmm|mm|m/g.exec('qqqq, ZZZ q, llll');
+ }
+ for (var i = 0; i < 312; i++) {
+ re3.exec('vachggrkg QBZPbageby_cynprubyqre');
+ }
+ for (var i = 0; i < 282; i++) {
+ re4.exec('/ZlFcnprUbzrcntr/Vaqrk-FvgrUbzr,10000000');
+ }
+ for (var i = 0; i < 177; i++) {
+ 'vachggrkg'.replace(re5, '');
+ }
+ for (var i = 0; i < 170; i++) {
+ '528.9'.replace(re6, '');
+ re7.exec('528');
+ }
+ for (var i = 0; i < 156; i++) {
+ re8.exec('VCPhygher=ra-HF');
+ re8.exec('CersreerqPhygher=ra-HF');
+ }
+ for (var i = 0; i < 144; i++) {
+ re0.exec('xrlcerff');
+ }
+ for (var i = 0; i < 139; i++) {
+ '521'.replace(re6, '');
+ re7.exec('521');
+ re9.exec('');
+ /JroXvg\/(\S+)/.exec(str0);
+ }
+ for (var i = 0; i < 137; i++) {
+ 'qvi .so_zrah'.replace(re10, '');
+ 'qvi .so_zrah'.replace(/\[/g, '');
+ 'qvi.so_zrah'.replace(re11, '');
+ }
+ for (var i = 0; i < 117; i++) {
+ 'uvqqra_ryrz'.replace(re2, '');
+ }
+ for (var i = 0; i < 95; i++) {
+ /(?:^|;)\s*sevraqfgre_ynat=([^;]*)/.exec('sevraqfgre_naba=nvq%3Qn6ss9p85n868ro9s059pn854735956o3%26ers%3Q%26df%3Q%26vpgl%3QHF');
+ }
+ for (var i = 0; i < 93; i++) {
+ 'uggc://ubzr.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ re13.exec('uggc://ubzr.zlfcnpr.pbz/vaqrk.psz');
+ }
+ for (var i = 0; i < 92; i++) {
+ str1.replace(/([a-zA-Z]|\s)+/, '');
+ }
+ for (var i = 0; i < 85; i++) {
+ 'svefg'.replace(re14, '');
+ 'svefg'.replace(re15, '');
+ 'uggc://cebsvyr.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ 'ynfg'.replace(re14, '');
+ 'ynfg'.replace(re15, '');
+ re16.exec('qvfcynl');
+ re13.exec('uggc://cebsvyr.zlfcnpr.pbz/vaqrk.psz');
+ }
+ }
+ var re17 = /(^|[^\\])\"\\\/Qngr\((-?[0-9]+)\)\\\/\"/g;
+ var str2 = '{"anzr":"","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":gehr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"\xa4","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":gehr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, qq ZZZZ llll UU:zz:ff","YbatQngrCnggrea":"qqqq, qq ZZZZ llll","YbatGvzrCnggrea":"UU:zz:ff","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU\':\'zz\':\'ff \'TZG\'","FubegQngrCnggrea":"ZZ/qq/llll","FubegGvzrCnggrea":"UU:zz","FbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq\'G\'UU\':\'zz\':\'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq UU\':\'zz\':\'ff\'M\'","LrneZbaguCnggrea":"llll ZZZZ","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":gehr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}';
+ var str3 = '{"anzr":"ra-HF","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":snyfr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"$","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":snyfr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, ZZZZ qq, llll u:zz:ff gg","YbatQngrCnggrea":"qqqq, ZZZZ qq, llll","YbatGvzrCnggrea":"u:zz:ff gg","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU\':\'zz\':\'ff \'TZG\'","FubegQngrCnggrea":"Z/q/llll","FubegGvzrCnggrea":"u:zz gg","FbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq\'G\'UU\':\'zz\':\'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq UU\':\'zz\':\'ff\'M\'","LrneZbaguCnggrea":"ZZZZ, llll","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":snyfr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}';
+ var str4 = 'HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str5 = 'HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var re18 = /^\s+|\s+$/g;
+ var str6 = 'uggc://jjj.snprobbx.pbz/vaqrk.cuc';
+ var re19 = /(?:^|\s+)ba(?:\s+|$)/;
+ var re20 = /[+, ]/;
+ var re21 = /ybnqrq|pbzcyrgr/;
+ var str7 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(d1)c=d1.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+d1.Cnaryf[c].Jvqgu,o=g+d1.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(d1&&d1.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(d1)d1.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(d1)d1.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;d1.IjTc=d2(n,c){ine nq=d1;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;d1.IjTpy=d2(n,c,p){ine cn=d1.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;d1.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;d1.IjYvzvg1=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;d1.IjYvzvg0=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;d1.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",d1.rvsg);};;d1.IjNavzSHC=d2(n,c){ine nq=d1;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;d1.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;d1.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;d1.IjPnapryNyyGvzrbhgf=d2(n){vs(d1.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<d1.bac;c++)IjPnapryGvzrbhg(n,c);};;d1.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;d1.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;d1.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<d1.bac;c++)IjErfrgGvzrbhg(n,c);};;d1.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare(\'"+rig+"\',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;d1.IjPyrnaHc=d2(n){IjCvat(n,"G");ine nq=d1;sbe(ine v=0;v<nq.Cnaryf.yratgu;v++){IjUvqrCnary(n,v,gehr);}gel{IjTrgBow(nq.gya).vaareUGZY="";}pngpu(r){}vs(nq.gya!=nq.gya2)gel{IjTrgBow(nq.gya2).vaareUGZY="";}pngpu(r){}gel{d1=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"haybnq","IjHayNQ_VQ");}pngpu(r){}gel{jvaqbj.IjHayNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"fpebyy","IjFeNQ_VQ");}pngpu(r){}gel{jvaqbj.IjFeNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"erfvmr","IjEmNQ_VQ");}pngpu(r){}gel{jvaqbj.IjEmNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n';
+ var str8 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=shapgvba(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=shapgvba(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=shapgvba(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=shapgvba(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=shapgvba(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=shapgvba(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=shapgvba(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=shapgvba(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbir';
+ var str9 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=d2(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=d2(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare(\'"+rig+"\',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjPyrna';
+ function runBlock1() {
+ for (var i = 0; i < 81; i++) {
+ re8.exec('VC=74.125.75.1');
+ }
+ for (var i = 0; i < 78; i++) {
+ '9.0 e115'.replace(/(\s)+e/, '');
+ 'k'.replace(/./, '');
+ str2.replace(re17, '');
+ str3.replace(re17, '');
+ re8.exec('144631658');
+ re8.exec('Pbhagel=IIZ%3Q');
+ re8.exec('Pbhagel=IIZ=');
+ re8.exec('CersreerqPhygherCraqvat=');
+ re8.exec(str4);
+ re8.exec(str5);
+ re8.exec('__hgzp=144631658');
+ re8.exec('gvzrMbar=-8');
+ re8.exec('gvzrMbar=0');
+ /Fnsnev\/(\d+\.\d+)/.exec(str0);
+ re3.exec('vachggrkg QBZPbageby_cynprubyqre');
+ re0.exec('xrlqbja');
+ re0.exec('xrlhc');
+ }
+ for (var i = 0; i < 77; i++) {
+ 'uggc://zrffntvat.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ re13.exec('uggc://zrffntvat.zlfcnpr.pbz/vaqrk.psz');
+ }
+ for (var i = 0; i < 73; i++) {
+ 'FrffvbaFgbentr=%7O%22GnoThvq%22%3N%7O%22thvq%22%3N1231367125017%7Q%7Q'.replace(re18, '');
+ }
+ for (var i = 0; i < 72; i++) {
+ re1.exec(str6);
+ }
+ for (var i = 0; i < 71; i++) {
+ re19.exec('');
+ }
+ for (var i = 0; i < 70; i++) {
+ '3.5.0.0'.replace(re11, '');
+ str7.replace(/d1/g, '');
+ str8.replace(/NQ_VQ/g, '');
+ str9.replace(/d2/g, '');
+ 'NI%3Q1_CI%3Q1_PI%3Q1_EI%3Q1_HI%3Q1_HP%3Q1_IC%3Q0.0.0.0_IH%3Q0'.replace(/_/g, '');
+ 'svz_zlfcnpr_ubzrcntr_abgybttrqva,svz_zlfcnpr_aba_HTP,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+ re21.exec('ybnqvat');
+ }
+ for (var i = 0; i < 68; i++) {
+ re1.exec('#');
+ /(?:ZFVR.(\d+\.\d+))|(?:(?:Sversbk|TenaCnenqvfb|Vprjrnfry).(\d+\.\d+))|(?:Bcren.(\d+\.\d+))|(?:NccyrJroXvg.(\d+(?:\.\d+)?))/.exec(str0);
+ /(Znp BF K)|(Jvaqbjf;)/.exec(str0);
+ /Trpxb\/([0-9]+)/.exec(str0);
+ re21.exec('ybnqrq');
+ }
+ for (var i = 0; i < 49; i++) {
+ re16.exec('pbybe');
+ }
+ for (var i = 0; i < 44; i++) {
+ 'uggc://sevraqf.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ re13.exec('uggc://sevraqf.zlfcnpr.pbz/vaqrk.psz');
+ }
+ }
+ var re22 = /\bso_zrah\b/;
+ var re23 = /^(?:(?:[^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/;
+ var re24 = /uggcf?:\/\/([^\/]+\.)?snprobbx\.pbz\//;
+ var re25 = /"/g;
+ var re26 = /^([^?#]+)(?:\?([^#]*))?(#.*)?/;
+ function runBlock2() {
+ for (var i = 0; i < 40; i++) {
+ 'fryrpgrq'.replace(re14, '');
+ 'fryrpgrq'.replace(re15, '');
+ }
+ for (var i = 0; i < 39; i++) {
+ 'vachggrkg uvqqra_ryrz'.replace(/\buvqqra_ryrz\b/g, '');
+ re3.exec('vachggrkg ');
+ re3.exec('vachggrkg');
+ re22.exec('HVYvaxOhggba');
+ re22.exec('HVYvaxOhggba_E');
+ re22.exec('HVYvaxOhggba_EJ');
+ re22.exec('zrah_ybtva_pbagnvare');
+ /\buvqqra_ryrz\b/.exec('vachgcnffjbeq');
+ }
+ for (var i = 0; i < 37; i++) {
+ re8.exec('111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904');
+ re8.exec('SbeprqRkcvengvba=633669315660164980');
+ re8.exec('FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904');
+ }
+ for (var i = 0; i < 35; i++) {
+ 'puvyq p1 svefg'.replace(re14, '');
+ 'puvyq p1 svefg'.replace(re15, '');
+ 'sylbhg pybfrq'.replace(re14, '');
+ 'sylbhg pybfrq'.replace(re15, '');
+ }
+ for (var i = 0; i < 34; i++) {
+ re19.exec('gno2');
+ re19.exec('gno3');
+ re8.exec('44132r503660');
+ re8.exec('SbeprqRkcvengvba=633669316860113296');
+ re8.exec('AFP_zp_dfctwzs-aowb_80=44132r503660');
+ re8.exec('FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696');
+ re8.exec('s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696');
+ }
+ for (var i = 0; i < 32; i++) {
+ /puebzr/i.exec(str0);
+ }
+ for (var i = 0; i < 31; i++) {
+ 'uggc://jjj.snprobbx.pbz/'.replace(re23, '');
+ re8.exec('SbeprqRkcvengvba=633669358527244818');
+ re8.exec('VC=66.249.85.130');
+ re8.exec('FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58');
+ re8.exec('s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58');
+ re24.exec('uggc://jjj.snprobbx.pbz/');
+ }
+ for (var i = 0; i < 30; i++) {
+ '419'.replace(re6, '');
+ /(?:^|\s+)gvzrfgnzc(?:\s+|$)/.exec('gvzrfgnzc');
+ re7.exec('419');
+ }
+ for (var i = 0; i < 29; i++) {
+ 'uggc://jjj.snprobbx.pbz/ybtva.cuc'.replace(re23, '');
+ }
+ for (var i = 0; i < 28; i++) {
+ 'Funer guvf tnqtrg'.replace(re25, '');
+ 'Funer guvf tnqtrg'.replace(re12, '');
+ re26.exec('uggc://jjj.tbbtyr.pbz/vt/qverpgbel');
+ }
+ }
+ var re27 = /-\D/g;
+ var re28 = /\bnpgvingr\b/;
+ var re29 = /%2R/gi;
+ var re30 = /%2S/gi;
+ var re31 = /^(mu-(PA|GJ)|wn|xb)$/;
+ var re32 = /\s?;\s?/;
+ var re33 = /%\w?$/;
+ var re34 = /TNQP=([^;]*)/i;
+ var str10 = 'FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str11 = 'FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; __hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1; __hgzo=144631658.0.10.1231363570; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str12 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363514065&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363514065&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Subzr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1326469221.1231363557&tn_fvq=1231363557&tn_uvq=1114636509&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str13 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str14 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var re35 = /[<>]/g;
+ var str15 = 'FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=44132r503660';
+ var str16 = 'FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; AFP_zp_dfctwzs-aowb_80=44132r503660; __hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1; __hgzo=144631658.0.10.1231363638; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str17 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363621014&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363621014&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=348699119.1231363624&tn_fvq=1231363624&tn_uvq=895511034&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str18 = 'uggc://jjj.yrobapbva.se/yv';
+ var str19 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str20 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ function runBlock3() {
+ for (var i = 0; i < 27; i++) {
+ 'e115'.replace(/[A-Za-z]/g, '');
+ }
+ for (var i = 0; i < 23; i++) {
+ 'qvfcynl'.replace(re27, '');
+ 'cbfvgvba'.replace(re27, '');
+ }
+ for (var i = 0; i < 22; i++) {
+ 'unaqyr'.replace(re14, '');
+ 'unaqyr'.replace(re15, '');
+ 'yvar'.replace(re14, '');
+ 'yvar'.replace(re15, '');
+ 'cnerag puebzr6 fvatyr1 gno'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1 gno'.replace(re15, '');
+ 'fyvqre'.replace(re14, '');
+ 'fyvqre'.replace(re15, '');
+ re28.exec('');
+ }
+ for (var i = 0; i < 21; i++) {
+ 'uggc://jjj.zlfcnpr.pbz/'.replace(re12, '');
+ re13.exec('uggc://jjj.zlfcnpr.pbz/');
+ }
+ for (var i = 0; i < 20; i++) {
+ 'cntrivrj'.replace(re29, '');
+ 'cntrivrj'.replace(re30, '');
+ re19.exec('ynfg');
+ re19.exec('ba svefg');
+ re8.exec('VC=74.125.75.3');
+ }
+ for (var i = 0; i < 19; i++) {
+ re31.exec('ra');
+ }
+ for (var i = 0; i < 18; i++) {
+ str10.split(re32);
+ str11.split(re32);
+ str12.replace(re33, '');
+ re8.exec('144631658.0.10.1231363570');
+ re8.exec('144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.3426875219718084000.1231363570.1231363570.1231363570.1');
+ re8.exec(str13);
+ re8.exec(str14);
+ re8.exec('__hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1');
+ re8.exec('__hgzo=144631658.0.10.1231363570');
+ re8.exec('__hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str10);
+ re34.exec(str11);
+ }
+ for (var i = 0; i < 17; i++) {
+ str0.match(/zfvr/gi);
+ str0.match(/bcren/gi);
+ str15.split(re32);
+ str16.split(re32);
+ 'ohggba'.replace(re14, '');
+ 'ohggba'.replace(re15, '');
+ 'puvyq p1 svefg sylbhg pybfrq'.replace(re14, '');
+ 'puvyq p1 svefg sylbhg pybfrq'.replace(re15, '');
+ 'pvgvrf'.replace(re14, '');
+ 'pvgvrf'.replace(re15, '');
+ 'pybfrq'.replace(re14, '');
+ 'pybfrq'.replace(re15, '');
+ 'qry'.replace(re14, '');
+ 'qry'.replace(re15, '');
+ 'uqy_zba'.replace(re14, '');
+ 'uqy_zba'.replace(re15, '');
+ str17.replace(re33, '');
+ str18.replace(/%3P/g, '');
+ str18.replace(/%3R/g, '');
+ str18.replace(/%3q/g, '');
+ str18.replace(re35, '');
+ 'yvaxyvfg16'.replace(re14, '');
+ 'yvaxyvfg16'.replace(re15, '');
+ 'zvahf'.replace(re14, '');
+ 'zvahf'.replace(re15, '');
+ 'bcra'.replace(re14, '');
+ 'bcra'.replace(re15, '');
+ 'cnerag puebzr5 fvatyr1 ps NU'.replace(re14, '');
+ 'cnerag puebzr5 fvatyr1 ps NU'.replace(re15, '');
+ 'cynlre'.replace(re14, '');
+ 'cynlre'.replace(re15, '');
+ 'cyhf'.replace(re14, '');
+ 'cyhf'.replace(re15, '');
+ 'cb_uqy'.replace(re14, '');
+ 'cb_uqy'.replace(re15, '');
+ 'hyJVzt'.replace(re14, '');
+ 'hyJVzt'.replace(re15, '');
+ re8.exec('144631658.0.10.1231363638');
+ re8.exec('144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.965867047679498800.1231363638.1231363638.1231363638.1');
+ re8.exec('4413268q3660');
+ re8.exec('4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n');
+ re8.exec('SbeprqRkcvengvba=633669321699093060');
+ re8.exec('VC=74.125.75.20');
+ re8.exec(str19);
+ re8.exec(str20);
+ re8.exec('AFP_zp_tfwsbrg-aowb_80=4413268q3660');
+ re8.exec('FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n');
+ re8.exec('__hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1');
+ re8.exec('__hgzo=144631658.0.10.1231363638');
+ re8.exec('__hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str15);
+ re34.exec(str16);
+ }
+ }
+ var re36 = /uers|fep|fryrpgrq/;
+ var re37 = /\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g;
+ var re38 = /^(\w+|\*)$/;
+ var str21 = 'FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str22 = 'FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; __hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1; __hgzo=144631658.0.10.1231367822; __hgzp=144631658; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str23 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367803797&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367803797&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Szrffntvat.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1192552091.1231367807&tn_fvq=1231367807&tn_uvq=1155446857&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str24 = 'ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str25 = 'ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str26 = 'hy.ynat-fryrpgbe';
+ var re39 = /\\/g;
+ var re40 = / /g;
+ var re41 = /\/\xc4\/t/;
+ var re42 = /\/\xd6\/t/;
+ var re43 = /\/\xdc\/t/;
+ var re44 = /\/\xdf\/t/;
+ var re45 = /\/\xe4\/t/;
+ var re46 = /\/\xf6\/t/;
+ var re47 = /\/\xfc\/t/;
+ var re48 = /\W/g;
+ var re49 = /uers|fep|fglyr/;
+ function runBlock4() {
+ for (var i = 0; i < 16; i++) {
+ ''.replace(/\*/g, '');
+ /\bnpgvir\b/.exec('npgvir');
+ /sversbk/i.exec(str0);
+ re36.exec('glcr');
+ /zfvr/i.exec(str0);
+ /bcren/i.exec(str0);
+ }
+ for (var i = 0; i < 15; i++) {
+ str21.split(re32);
+ str22.split(re32);
+ 'uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ str23.replace(re33, '');
+ 'yv'.replace(re37, '');
+ 'yv'.replace(re18, '');
+ re8.exec('144631658.0.10.1231367822');
+ re8.exec('144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.4127520630321984500.1231367822.1231367822.1231367822.1');
+ re8.exec(str24);
+ re8.exec(str25);
+ re8.exec('__hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1');
+ re8.exec('__hgzo=144631658.0.10.1231367822');
+ re8.exec('__hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str21);
+ re34.exec(str22);
+ /\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g.exec(str26);
+ re13.exec('uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz');
+ re38.exec('yv');
+ }
+ for (var i = 0; i < 14; i++) {
+ ''.replace(re18, '');
+ '9.0 e115'.replace(/(\s+e|\s+o[0-9]+)/, '');
+ 'Funer guvf tnqtrg'.replace(/</g, '');
+ 'Funer guvf tnqtrg'.replace(/>/g, '');
+ 'Funer guvf tnqtrg'.replace(re39, '');
+ 'uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
+ 'grnfre'.replace(re40, '');
+ 'grnfre'.replace(re41, '');
+ 'grnfre'.replace(re42, '');
+ 'grnfre'.replace(re43, '');
+ 'grnfre'.replace(re44, '');
+ 'grnfre'.replace(re45, '');
+ 'grnfre'.replace(re46, '');
+ 'grnfre'.replace(re47, '');
+ 'grnfre'.replace(re48, '');
+ re16.exec('znetva-gbc');
+ re16.exec('cbfvgvba');
+ re19.exec('gno1');
+ re9.exec('qz');
+ re9.exec('qg');
+ re9.exec('zbqobk');
+ re9.exec('zbqobkva');
+ re9.exec('zbqgvgyr');
+ re13.exec('uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz');
+ re26.exec('/vt/znvytnqtrg');
+ re49.exec('glcr');
+ }
+ }
+ var re50 = /(?:^|\s+)fryrpgrq(?:\s+|$)/;
+ var re51 = /\&/g;
+ var re52 = /\+/g;
+ var re53 = /\?/g;
+ var re54 = /\t/g;
+ var re55 = /(\$\{nqiHey\})|(\$nqiHey\b)/g;
+ var re56 = /(\$\{cngu\})|(\$cngu\b)/g;
+ function runBlock5() {
+ for (var i = 0; i < 13; i++) {
+ 'purpx'.replace(re14, '');
+ 'purpx'.replace(re15, '');
+ 'pvgl'.replace(re14, '');
+ 'pvgl'.replace(re15, '');
+ 'qrpe fyvqrgrkg'.replace(re14, '');
+ 'qrpe fyvqrgrkg'.replace(re15, '');
+ 'svefg fryrpgrq'.replace(re14, '');
+ 'svefg fryrpgrq'.replace(re15, '');
+ 'uqy_rag'.replace(re14, '');
+ 'uqy_rag'.replace(re15, '');
+ 'vape fyvqrgrkg'.replace(re14, '');
+ 'vape fyvqrgrkg'.replace(re15, '');
+ 'vachggrkg QBZPbageby_cynprubyqre'.replace(re5, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq'.replace(re15, '');
+ 'cb_guz'.replace(re14, '');
+ 'cb_guz'.replace(re15, '');
+ 'fhozvg'.replace(re14, '');
+ 'fhozvg'.replace(re15, '');
+ re50.exec('');
+ /NccyrJroXvg\/([^\s]*)/.exec(str0);
+ /XUGZY/.exec(str0);
+ }
+ for (var i = 0; i < 12; i++) {
+ '${cebg}://${ubfg}${cngu}/${dz}'.replace(/(\$\{cebg\})|(\$cebg\b)/g, '');
+ '1'.replace(re40, '');
+ '1'.replace(re10, '');
+ '1'.replace(re51, '');
+ '1'.replace(re52, '');
+ '1'.replace(re53, '');
+ '1'.replace(re39, '');
+ '1'.replace(re54, '');
+ '9.0 e115'.replace(/^(.*)\..*$/, '');
+ '9.0 e115'.replace(/^.*e(.*)$/, '');
+ '<!-- ${nqiHey} -->'.replace(re55, '');
+ '<fpevcg glcr="grkg/wninfpevcg" fep="${nqiHey}"></fpevcg>'.replace(re55, '');
+ str1.replace(/^.*\s+(\S+\s+\S+$)/, '');
+ 'tzk%2Subzrcntr%2Sfgneg%2Sqr%2S'.replace(re30, '');
+ 'tzk'.replace(re30, '');
+ 'uggc://${ubfg}${cngu}/${dz}'.replace(/(\$\{ubfg\})|(\$ubfg\b)/g, '');
+ 'uggc://nqpyvrag.hvzfrei.arg${cngu}/${dz}'.replace(re56, '');
+ 'uggc://nqpyvrag.hvzfrei.arg/wf.at/${dz}'.replace(/(\$\{dz\})|(\$dz\b)/g, '');
+ 'frpgvba'.replace(re29, '');
+ 'frpgvba'.replace(re30, '');
+ 'fvgr'.replace(re29, '');
+ 'fvgr'.replace(re30, '');
+ 'fcrpvny'.replace(re29, '');
+ 'fcrpvny'.replace(re30, '');
+ re36.exec('anzr');
+ /e/.exec('9.0 e115');
+ }
+ }
+ var re57 = /##yv4##/gi;
+ var re58 = /##yv16##/gi;
+ var re59 = /##yv19##/gi;
+ var str27 = '<hy pynff="nqi">##yv4##Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str28 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str29 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str30 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
+ var str31 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.<oe> <oe> ##N##Yrnea zber##/N##</hy>';
+ var str32 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.<oe> <oe> <n uers="uggc://znvy.yvir.pbz/znvy/nobhg.nfck" gnetrg="_oynax">Yrnea zber##/N##</hy>';
+ var str33 = 'Bar Jvaqbjf Yvir VQ trgf lbh vagb <o>Ubgznvy</o>, <o>Zrffratre</o>, <o>Kobk YVIR</o> \u2014 naq bgure cynprf lbh frr #~#argjbexybtb#~#';
+ var re60 = /(?:^|\s+)bss(?:\s+|$)/;
+ var re61 = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/;
+ var re62 = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
+ var str34 = '${1}://${2}${3}${4}${5}';
+ var str35 = ' O=6gnyg0g4znrrn&o=3&f=gc; Q=_lyu=K3bQZGSxnT4lZzD3OS9GNmV3ZGLkAQxRpTyxNmRlZmRmAmNkAQLRqTImqNZjOUEgpTjQnJ5xMKtgoN--; SCF=qy';
+ function runBlock6() {
+ for (var i = 0; i < 11; i++) {
+ str27.replace(/##yv0##/gi, '');
+ str27.replace(re57, '');
+ str28.replace(re58, '');
+ str29.replace(re59, '');
+ str30.replace(/##\/o##/gi, '');
+ str30.replace(/##\/v##/gi, '');
+ str30.replace(/##\/h##/gi, '');
+ str30.replace(/##o##/gi, '');
+ str30.replace(/##oe##/gi, '');
+ str30.replace(/##v##/gi, '');
+ str30.replace(/##h##/gi, '');
+ str31.replace(/##n##/gi, '');
+ str32.replace(/##\/n##/gi, '');
+ str33.replace(/#~#argjbexybtb#~#/g, '');
+ / Zbovyr\//.exec(str0);
+ /##yv1##/gi.exec(str27);
+ /##yv10##/gi.exec(str28);
+ /##yv11##/gi.exec(str28);
+ /##yv12##/gi.exec(str28);
+ /##yv13##/gi.exec(str28);
+ /##yv14##/gi.exec(str28);
+ /##yv15##/gi.exec(str28);
+ re58.exec(str28);
+ /##yv17##/gi.exec(str29);
+ /##yv18##/gi.exec(str29);
+ re59.exec(str29);
+ /##yv2##/gi.exec(str27);
+ /##yv20##/gi.exec(str30);
+ /##yv21##/gi.exec(str30);
+ /##yv22##/gi.exec(str30);
+ /##yv23##/gi.exec(str30);
+ /##yv3##/gi.exec(str27);
+ re57.exec(str27);
+ /##yv5##/gi.exec(str28);
+ /##yv6##/gi.exec(str28);
+ /##yv7##/gi.exec(str28);
+ /##yv8##/gi.exec(str28);
+ /##yv9##/gi.exec(str28);
+ re8.exec('473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29');
+ re8.exec('SbeprqRkcvengvba=633669325184628362');
+ re8.exec('FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29');
+ /AbxvnA[^\/]*/.exec(str0);
+ }
+ for (var i = 0; i < 10; i++) {
+ ' bss'.replace(/(?:^|\s+)bss(?:\s+|$)/g, '');
+ str34.replace(/(\$\{0\})|(\$0\b)/g, '');
+ str34.replace(/(\$\{1\})|(\$1\b)/g, '');
+ str34.replace(/(\$\{pbzcyrgr\})|(\$pbzcyrgr\b)/g, '');
+ str34.replace(/(\$\{sentzrag\})|(\$sentzrag\b)/g, '');
+ str34.replace(/(\$\{ubfgcbeg\})|(\$ubfgcbeg\b)/g, '');
+ str34.replace(re56, '');
+ str34.replace(/(\$\{cebgbpby\})|(\$cebgbpby\b)/g, '');
+ str34.replace(/(\$\{dhrel\})|(\$dhrel\b)/g, '');
+ 'nqfvmr'.replace(re29, '');
+ 'nqfvmr'.replace(re30, '');
+ 'uggc://${2}${3}${4}${5}'.replace(/(\$\{2\})|(\$2\b)/g, '');
+ 'uggc://wf.hv-cbegny.qr${3}${4}${5}'.replace(/(\$\{3\})|(\$3\b)/g, '');
+ 'arjf'.replace(re40, '');
+ 'arjf'.replace(re41, '');
+ 'arjf'.replace(re42, '');
+ 'arjf'.replace(re43, '');
+ 'arjf'.replace(re44, '');
+ 'arjf'.replace(re45, '');
+ 'arjf'.replace(re46, '');
+ 'arjf'.replace(re47, '');
+ 'arjf'.replace(re48, '');
+ / PC=i=(\d+)&oe=(.)/.exec(str35);
+ re60.exec(' ');
+ re60.exec(' bss');
+ re60.exec('');
+ re19.exec(' ');
+ re19.exec('svefg ba');
+ re19.exec('ynfg vtaber');
+ re19.exec('ba');
+ re9.exec('scnq so ');
+ re9.exec('zrqvgobk');
+ re9.exec('hsgy');
+ re9.exec('lhv-h');
+ /Fnsnev|Xbadhrebe|XUGZY/gi.exec(str0);
+ re61.exec('uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf');
+ re62.exec('#Ybtva_rznvy');
+ }
+ }
+ var re63 = /\{0\}/g;
+ var str36 = 'FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_tfwsbrg-aowb_80=4413268q3660';
+ var str37 = 'FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; AFP_zp_tfwsbrg-aowb_80=4413268q3660; __hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1; __hgzo=144631658.0.10.1231364074; __hgzp=144631658; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str38 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231364057761&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364057761&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Ssevraqf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1667363813.1231364061&tn_fvq=1231364061&tn_uvq=1917563877&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str39 = 'ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str40 = 'ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ function runBlock7() {
+ for (var i = 0; i < 9; i++) {
+ '0'.replace(re40, '');
+ '0'.replace(re10, '');
+ '0'.replace(re51, '');
+ '0'.replace(re52, '');
+ '0'.replace(re53, '');
+ '0'.replace(re39, '');
+ '0'.replace(re54, '');
+ 'Lrf'.replace(re40, '');
+ 'Lrf'.replace(re10, '');
+ 'Lrf'.replace(re51, '');
+ 'Lrf'.replace(re52, '');
+ 'Lrf'.replace(re53, '');
+ 'Lrf'.replace(re39, '');
+ 'Lrf'.replace(re54, '');
+ }
+ for (var i = 0; i < 8; i++) {
+ 'Pybfr {0}'.replace(re63, '');
+ 'Bcra {0}'.replace(re63, '');
+ str36.split(re32);
+ str37.split(re32);
+ 'puvyq p1 svefg gnournqref'.replace(re14, '');
+ 'puvyq p1 svefg gnournqref'.replace(re15, '');
+ 'uqy_fcb'.replace(re14, '');
+ 'uqy_fcb'.replace(re15, '');
+ 'uvag'.replace(re14, '');
+ 'uvag'.replace(re15, '');
+ str38.replace(re33, '');
+ 'yvfg'.replace(re14, '');
+ 'yvfg'.replace(re15, '');
+ 'at_bhgre'.replace(re30, '');
+ 'cnerag puebzr5 qbhoyr2 NU'.replace(re14, '');
+ 'cnerag puebzr5 qbhoyr2 NU'.replace(re15, '');
+ 'cnerag puebzr5 dhnq5 ps NU osyvax zbarl'.replace(re14, '');
+ 'cnerag puebzr5 dhnq5 ps NU osyvax zbarl'.replace(re15, '');
+ 'cnerag puebzr6 fvatyr1'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1'.replace(re15, '');
+ 'cb_qrs'.replace(re14, '');
+ 'cb_qrs'.replace(re15, '');
+ 'gnopbagrag'.replace(re14, '');
+ 'gnopbagrag'.replace(re15, '');
+ 'iv_svefg_gvzr'.replace(re30, '');
+ /(^|.)(ronl|qri-ehf3.wbg)(|fgberf|zbgbef|yvirnhpgvbaf|jvxv|rkcerff|punggre).(pbz(|.nh|.pa|.ux|.zl|.ft|.oe|.zk)|pb(.hx|.xe|.am)|pn|qr|se|vg|ay|or|ng|pu|vr|va|rf|cy|cu|fr)$/i.exec('cntrf.ronl.pbz');
+ re8.exec('144631658.0.10.1231364074');
+ re8.exec('144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.2294274870215848400.1231364074.1231364074.1231364074.1');
+ re8.exec('4413241q3660');
+ re8.exec('SbeprqRkcvengvba=633669357391353591');
+ re8.exec(str39);
+ re8.exec(str40);
+ re8.exec('AFP_zp_kkk-gdzogv_80=4413241q3660');
+ re8.exec('FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7');
+ re8.exec('__hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1');
+ re8.exec('__hgzo=144631658.0.10.1231364074');
+ re8.exec('__hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7');
+ re34.exec(str36);
+ re34.exec(str37);
+ }
+ }
+ var re64 = /\b[a-z]/g;
+ var re65 = /^uggc:\/\//;
+ var re66 = /(?:^|\s+)qvfnoyrq(?:\s+|$)/;
+ var str41 = 'uggc://cebsvyr.zlfcnpr.pbz/Zbqhyrf/Nccyvpngvbaf/Cntrf/Pnainf.nfck';
+ function runBlock8() {
+ for (var i = 0; i < 7; i++) {
+ str1.match(/\d+/g);
+ 'nsgre'.replace(re64, '');
+ 'orsber'.replace(re64, '');
+ 'obggbz'.replace(re64, '');
+ 'ohvygva_jrngure.kzy'.replace(re65, '');
+ 'ohggba'.replace(re37, '');
+ 'ohggba'.replace(re18, '');
+ 'qngrgvzr.kzy'.replace(re65, '');
+ 'uggc://eff.paa.pbz/eff/paa_gbcfgbevrf.eff'.replace(re65, '');
+ 'vachg'.replace(re37, '');
+ 'vachg'.replace(re18, '');
+ 'vafvqr'.replace(re64, '');
+ 'cbvagre'.replace(re27, '');
+ 'cbfvgvba'.replace(/[A-Z]/g, '');
+ 'gbc'.replace(re27, '');
+ 'gbc'.replace(re64, '');
+ 'hy'.replace(re37, '');
+ 'hy'.replace(re18, '');
+ str26.replace(re37, '');
+ str26.replace(re18, '');
+ 'lbhghor_vtbbtyr/i2/lbhghor.kzy'.replace(re65, '');
+ 'm-vaqrk'.replace(re27, '');
+ /#([\w-]+)/.exec(str26);
+ re16.exec('urvtug');
+ re16.exec('znetvaGbc');
+ re16.exec('jvqgu');
+ re19.exec('gno0 svefg ba');
+ re19.exec('gno0 ba');
+ re19.exec('gno4 ynfg');
+ re19.exec('gno4');
+ re19.exec('gno5');
+ re19.exec('gno6');
+ re19.exec('gno7');
+ re19.exec('gno8');
+ /NqborNVE\/([^\s]*)/.exec(str0);
+ /NccyrJroXvg\/([^ ]*)/.exec(str0);
+ /XUGZY/gi.exec(str0);
+ /^(?:obql|ugzy)$/i.exec('YV');
+ re38.exec('ohggba');
+ re38.exec('vachg');
+ re38.exec('hy');
+ re38.exec(str26);
+ /^(\w+|\*)/.exec(str26);
+ /znp|jva|yvahk/i.exec('Jva32');
+ /eton?\([\d\s,]+\)/.exec('fgngvp');
+ }
+ for (var i = 0; i < 6; i++) {
+ ''.replace(/\r/g, '');
+ '/'.replace(re40, '');
+ '/'.replace(re10, '');
+ '/'.replace(re51, '');
+ '/'.replace(re52, '');
+ '/'.replace(re53, '');
+ '/'.replace(re39, '');
+ '/'.replace(re54, '');
+ 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/{0}?[NDO]&{1}&{2}&[NDR]'.replace(re63, '');
+ str41.replace(re12, '');
+ 'uggc://jjj.snprobbx.pbz/fepu.cuc'.replace(re23, '');
+ 'freivpr'.replace(re40, '');
+ 'freivpr'.replace(re41, '');
+ 'freivpr'.replace(re42, '');
+ 'freivpr'.replace(re43, '');
+ 'freivpr'.replace(re44, '');
+ 'freivpr'.replace(re45, '');
+ 'freivpr'.replace(re46, '');
+ 'freivpr'.replace(re47, '');
+ 'freivpr'.replace(re48, '');
+ /((ZFVR\s+([6-9]|\d\d)\.))/.exec(str0);
+ re66.exec('');
+ re50.exec('fryrpgrq');
+ re8.exec('8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn');
+ re8.exec('SbeprqRkcvengvba=633669340386893867');
+ re8.exec('VC=74.125.75.17');
+ re8.exec('FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn');
+ /Xbadhrebe|Fnsnev|XUGZY/.exec(str0);
+ re13.exec(str41);
+ re49.exec('unfsbphf');
+ }
+ }
+ var re67 = /zrah_byq/g;
+ var str42 = 'FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str43 = 'FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; __hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1; __hgzo=144631658.0.10.1231364380; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str44 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_vzntrf_wf&qg=1231364373088&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364373088&punaary=svz_zlfcnpr_hfre-ivrj-pbzzragf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Spbzzrag.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1158737789.1231364375&tn_fvq=1231364375&tn_uvq=415520832&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str45 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str46 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var re68 = /^([#.]?)((?:[\w\u0128-\uffff*_-]|\\.)*)/;
+ var re69 = /\{1\}/g;
+ var re70 = /\s+/;
+ var re71 = /(\$\{4\})|(\$4\b)/g;
+ var re72 = /(\$\{5\})|(\$5\b)/g;
+ var re73 = /\{2\}/g;
+ var re74 = /[^+>] [^+>]/;
+ var re75 = /\bucpyv\s*=\s*([^;]*)/i;
+ var re76 = /\bucuvqr\s*=\s*([^;]*)/i;
+ var re77 = /\bucfie\s*=\s*([^;]*)/i;
+ var re78 = /\bhfucjrn\s*=\s*([^;]*)/i;
+ var re79 = /\bmvc\s*=\s*([^;]*)/i;
+ var re80 = /^((?:[\w\u0128-\uffff*_-]|\\.)+)(#)((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+ var re81 = /^([>+~])\s*(\w*)/i;
+ var re82 = /^>\s*((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+ var re83 = /^[\s[]?shapgvba/;
+ var re84 = /v\/g.tvs#(.*)/i;
+ var str47 = '#Zbq-Vasb-Vasb-WninFpevcgUvag';
+ var str48 = ',n.svryqOgaPnapry';
+ var str49 = 'FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_kkk-gdzogv_80=4413241q3660';
+ var str50 = 'FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; AFP_zp_kkk-gdzogv_80=4413241q3660; AFP_zp_kkk-aowb_80=4413235p3660; __hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1; __hgzo=144631658.0.10.1231367708; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str51 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367691141&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367691141&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sjjj.zlfcnpr.pbz%2S&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=320757904.1231367694&tn_fvq=1231367694&tn_uvq=1758792003&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str52 = 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N38%3N42%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=1024k768&p=24&x=L&oj=994&ou=634&uc=A&{2}&[NDR]';
+ var str53 = 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq qbhoyr2 ps';
+ var str54 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str55 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str56 = 'ne;ng;nh;or;oe;pn;pu;py;pa;qr;qx;rf;sv;se;to;ux;vq;vr;va;vg;wc;xe;zk;zl;ay;ab;am;cu;cy;cg;eh;fr;ft;gu;ge;gj;mn;';
+ var str57 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886&GHVQ=1';
+ var str58 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886';
+ var str59 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1';
+ var str60 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF';
+ var str61 = 'uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/29/4RQP4969777N048NPS4RRR3PO2S7S.wct';
+ var str62 = 'uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/OQ/63NP9O94NS5OQP1249Q9S1ROP7NS3.wct';
+ var str63 = 'zbmvyyn/5.0 (jvaqbjf; h; jvaqbjf ag 5.1; ra-hf) nccyrjroxvg/528.9 (xugzy, yvxr trpxb) puebzr/2.0.157.0 fnsnev/528.9';
+ function runBlock9() {
+ for (var i = 0; i < 5; i++) {
+ str42.split(re32);
+ str43.split(re32);
+ 'svz_zlfcnpr_hfre-ivrj-pbzzragf,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+ str44.replace(re33, '');
+ 'zrah_arj zrah_arj_gbttyr zrah_gbttyr'.replace(re67, '');
+ 'zrah_byq zrah_byq_gbttyr zrah_gbttyr'.replace(re67, '');
+ re8.exec('102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98');
+ re8.exec('144631658.0.10.1231364380');
+ re8.exec('144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.3931862196947939300.1231364380.1231364380.1231364380.1');
+ re8.exec('441326q33660');
+ re8.exec('SbeprqRkcvengvba=633669341278771470');
+ re8.exec(str45);
+ re8.exec(str46);
+ re8.exec('AFP_zp_dfctwzssrwh-aowb_80=441326q33660');
+ re8.exec('FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98');
+ re8.exec('__hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1');
+ re8.exec('__hgzo=144631658.0.10.1231364380');
+ re8.exec('__hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ }
+ for (var i = 0; i < 4; i++) {
+ ' yvfg1'.replace(re14, '');
+ ' yvfg1'.replace(re15, '');
+ ' yvfg2'.replace(re14, '');
+ ' yvfg2'.replace(re15, '');
+ ' frneputebhc1'.replace(re14, '');
+ ' frneputebhc1'.replace(re15, '');
+ str47.replace(re68, '');
+ str47.replace(re18, '');
+ ''.replace(/&/g, '');
+ ''.replace(re35, '');
+ '(..-{0})(\|(\d+)|)'.replace(re63, '');
+ str48.replace(re18, '');
+ '//vzt.jro.qr/vij/FC/${cngu}/${anzr}/${inyhr}?gf=${abj}'.replace(re56, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/${anzr}/${inyhr}?gf=${abj}'.replace(/(\$\{anzr\})|(\$anzr\b)/g, '');
+ '<fcna pynff="urnq"><o>Jvaqbjf Yvir Ubgznvy</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re69, '');
+ '<fcna pynff="urnq"><o>{0}</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re63, '');
+ '<fcna pynff="fvtahc"><n uers=uggc://jjj.ubgznvy.pbz><o>{1}</o></n></fcna>'.replace(re69, '');
+ '<fcna pynff="fvtahc"><n uers={0}><o>{1}</o></n></fcna>'.replace(re63, '');
+ 'Vzntrf'.replace(re15, '');
+ 'ZFA'.replace(re15, '');
+ 'Zncf'.replace(re15, '');
+ 'Zbq-Vasb-Vasb-WninFpevcgUvag'.replace(re39, '');
+ 'Arjf'.replace(re15, '');
+ str49.split(re32);
+ str50.split(re32);
+ 'Ivqrb'.replace(re15, '');
+ 'Jro'.replace(re15, '');
+ 'n'.replace(re39, '');
+ 'nwnkFgneg'.split(re70);
+ 'nwnkFgbc'.split(re70);
+ 'ovaq'.replace(re14, '');
+ 'ovaq'.replace(re15, '');
+ 'oevatf lbh zber. Zber fcnpr (5TO), zber frphevgl, fgvyy serr.'.replace(re63, '');
+ 'puvyq p1 svefg qrpx'.replace(re14, '');
+ 'puvyq p1 svefg qrpx'.replace(re15, '');
+ 'puvyq p1 svefg qbhoyr2'.replace(re14, '');
+ 'puvyq p1 svefg qbhoyr2'.replace(re15, '');
+ 'puvyq p2 ynfg'.replace(re14, '');
+ 'puvyq p2 ynfg'.replace(re15, '');
+ 'puvyq p2'.replace(re14, '');
+ 'puvyq p2'.replace(re15, '');
+ 'puvyq p3'.replace(re14, '');
+ 'puvyq p3'.replace(re15, '');
+ 'puvyq p4 ynfg'.replace(re14, '');
+ 'puvyq p4 ynfg'.replace(re15, '');
+ 'pbclevtug'.replace(re14, '');
+ 'pbclevtug'.replace(re15, '');
+ 'qZFAZR_1'.replace(re14, '');
+ 'qZFAZR_1'.replace(re15, '');
+ 'qbhoyr2 ps'.replace(re14, '');
+ 'qbhoyr2 ps'.replace(re15, '');
+ 'qbhoyr2'.replace(re14, '');
+ 'qbhoyr2'.replace(re15, '');
+ 'uqy_arj'.replace(re14, '');
+ 'uqy_arj'.replace(re15, '');
+ 'uc_fubccvatobk'.replace(re30, '');
+ 'ugzy%2Rvq'.replace(re29, '');
+ 'ugzy%2Rvq'.replace(re30, '');
+ str51.replace(re33, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${5}'.replace(re72, '');
+ str52.replace(re73, '');
+ 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&{1}&{2}&[NDR]'.replace(re69, '');
+ 'vztZFSG'.replace(re14, '');
+ 'vztZFSG'.replace(re15, '');
+ 'zfasbbg1 ps'.replace(re14, '');
+ 'zfasbbg1 ps'.replace(re15, '');
+ str53.replace(re14, '');
+ str53.replace(re15, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq'.replace(re14, '');
+ 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq'.replace(re15, '');
+ 'cevznel'.replace(re14, '');
+ 'cevznel'.replace(re15, '');
+ 'erpgnatyr'.replace(re30, '');
+ 'frpbaqnel'.replace(re14, '');
+ 'frpbaqnel'.replace(re15, '');
+ 'haybnq'.split(re70);
+ '{0}{1}1'.replace(re63, '');
+ '|{1}1'.replace(re69, '');
+ /(..-HF)(\|(\d+)|)/i.exec('xb-xe,ra-va,gu-gu');
+ re4.exec('/ZlFcnprNccf/NccPnainf,45000012');
+ re8.exec('144631658.0.10.1231367708');
+ re8.exec('144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.2770915348920628700.1231367708.1231367708.1231367708.1');
+ re8.exec('4413235p3660');
+ re8.exec('441327q73660');
+ re8.exec('9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473');
+ re8.exec('SbeprqRkcvengvba=633669350559478880');
+ re8.exec(str54);
+ re8.exec(str55);
+ re8.exec('AFP_zp_dfctwzs-aowb_80=441327q73660');
+ re8.exec('AFP_zp_kkk-aowb_80=4413235p3660');
+ re8.exec('FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473');
+ re8.exec('__hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1');
+ re8.exec('__hgzo=144631658.0.10.1231367708');
+ re8.exec('__hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str49);
+ re34.exec(str50);
+ /ZFVR\s+5[.]01/.exec(str0);
+ /HF(?=;)/i.exec(str56);
+ re74.exec(str47);
+ re28.exec('svefg npgvir svefgNpgvir');
+ re28.exec('ynfg');
+ /\bp:(..)/i.exec('m:94043|yn:37.4154|yb:-122.0585|p:HF');
+ re75.exec(str57);
+ re75.exec(str58);
+ re76.exec(str57);
+ re76.exec(str58);
+ re77.exec(str57);
+ re77.exec(str58);
+ /\bhfucce\s*=\s*([^;]*)/i.exec(str59);
+ re78.exec(str57);
+ re78.exec(str58);
+ /\bjci\s*=\s*([^;]*)/i.exec(str59);
+ re79.exec(str58);
+ re79.exec(str60);
+ re79.exec(str59);
+ /\|p:([a-z]{2})/i.exec('m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1');
+ re80.exec(str47);
+ re61.exec('cebgbglcr.wf');
+ re68.exec(str47);
+ re81.exec(str47);
+ re82.exec(str47);
+ /^Fubpxjnir Synfu (\d)/.exec(str1);
+ /^Fubpxjnir Synfu (\d+)/.exec(str1);
+ re83.exec('[bowrpg tybony]');
+ re62.exec(str47);
+ re84.exec(str61);
+ re84.exec(str62);
+ /jroxvg/.exec(str63);
+ }
+ }
+ var re85 = /eaq_zbqobkva/;
+ var str64 = '1231365729213';
+ var str65 = '74.125.75.3-1057165600.29978900';
+ var str66 = '74.125.75.3-1057165600.29978900.1231365730214';
+ var str67 = 'Frnepu%20Zvpebfbsg.pbz';
+ var str68 = 'FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str69 = 'FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; __hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1; __hgzo=144631658.0.10.1231365779; __hgzp=144631658; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str70 = 'I=3%26THVQ=757q3ss871q44o7o805n8113n5p72q52';
+ var str71 = 'I=3&THVQ=757q3ss871q44o7o805n8113n5p72q52';
+ var str72 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365765292&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365765292&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sohyyrgvaf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1579793869.1231365768&tn_fvq=1231365768&tn_uvq=2056210897&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str73 = 'frnepu.zvpebfbsg.pbz';
+ var str74 = 'frnepu.zvpebfbsg.pbz/';
+ var str75 = 'ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str76 = 'ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ function runBlock10() {
+ for (var i = 0; i < 3; i++) {
+ '%3Szxg=ra-HF'.replace(re39, '');
+ '-8'.replace(re40, '');
+ '-8'.replace(re10, '');
+ '-8'.replace(re51, '');
+ '-8'.replace(re52, '');
+ '-8'.replace(re53, '');
+ '-8'.replace(re39, '');
+ '-8'.replace(re54, '');
+ '1.5'.replace(re40, '');
+ '1.5'.replace(re10, '');
+ '1.5'.replace(re51, '');
+ '1.5'.replace(re52, '');
+ '1.5'.replace(re53, '');
+ '1.5'.replace(re39, '');
+ '1.5'.replace(re54, '');
+ '1024k768'.replace(re40, '');
+ '1024k768'.replace(re10, '');
+ '1024k768'.replace(re51, '');
+ '1024k768'.replace(re52, '');
+ '1024k768'.replace(re53, '');
+ '1024k768'.replace(re39, '');
+ '1024k768'.replace(re54, '');
+ str64.replace(re40, '');
+ str64.replace(re10, '');
+ str64.replace(re51, '');
+ str64.replace(re52, '');
+ str64.replace(re53, '');
+ str64.replace(re39, '');
+ str64.replace(re54, '');
+ '14'.replace(re40, '');
+ '14'.replace(re10, '');
+ '14'.replace(re51, '');
+ '14'.replace(re52, '');
+ '14'.replace(re53, '');
+ '14'.replace(re39, '');
+ '14'.replace(re54, '');
+ '24'.replace(re40, '');
+ '24'.replace(re10, '');
+ '24'.replace(re51, '');
+ '24'.replace(re52, '');
+ '24'.replace(re53, '');
+ '24'.replace(re39, '');
+ '24'.replace(re54, '');
+ str65.replace(re40, '');
+ str65.replace(re10, '');
+ str65.replace(re51, '');
+ str65.replace(re52, '');
+ str65.replace(re53, '');
+ str65.replace(re39, '');
+ str65.replace(re54, '');
+ str66.replace(re40, '');
+ str66.replace(re10, '');
+ str66.replace(re51, '');
+ str66.replace(re52, '');
+ str66.replace(re53, '');
+ str66.replace(re39, '');
+ str66.replace(re54, '');
+ '9.0'.replace(re40, '');
+ '9.0'.replace(re10, '');
+ '9.0'.replace(re51, '');
+ '9.0'.replace(re52, '');
+ '9.0'.replace(re53, '');
+ '9.0'.replace(re39, '');
+ '9.0'.replace(re54, '');
+ '994k634'.replace(re40, '');
+ '994k634'.replace(re10, '');
+ '994k634'.replace(re51, '');
+ '994k634'.replace(re52, '');
+ '994k634'.replace(re53, '');
+ '994k634'.replace(re39, '');
+ '994k634'.replace(re54, '');
+ '?zxg=ra-HF'.replace(re40, '');
+ '?zxg=ra-HF'.replace(re10, '');
+ '?zxg=ra-HF'.replace(re51, '');
+ '?zxg=ra-HF'.replace(re52, '');
+ '?zxg=ra-HF'.replace(re53, '');
+ '?zxg=ra-HF'.replace(re54, '');
+ 'PAA.pbz'.replace(re25, '');
+ 'PAA.pbz'.replace(re12, '');
+ 'PAA.pbz'.replace(re39, '');
+ 'Qngr & Gvzr'.replace(re25, '');
+ 'Qngr & Gvzr'.replace(re12, '');
+ 'Qngr & Gvzr'.replace(re39, '');
+ 'Frnepu Zvpebfbsg.pbz'.replace(re40, '');
+ 'Frnepu Zvpebfbsg.pbz'.replace(re54, '');
+ str67.replace(re10, '');
+ str67.replace(re51, '');
+ str67.replace(re52, '');
+ str67.replace(re53, '');
+ str67.replace(re39, '');
+ str68.split(re32);
+ str69.split(re32);
+ str70.replace(re52, '');
+ str70.replace(re53, '');
+ str70.replace(re39, '');
+ str71.replace(re40, '');
+ str71.replace(re10, '');
+ str71.replace(re51, '');
+ str71.replace(re54, '');
+ 'Jrngure'.replace(re25, '');
+ 'Jrngure'.replace(re12, '');
+ 'Jrngure'.replace(re39, '');
+ 'LbhGhor'.replace(re25, '');
+ 'LbhGhor'.replace(re12, '');
+ 'LbhGhor'.replace(re39, '');
+ str72.replace(re33, '');
+ 'erzbgr_vsenzr_1'.replace(/^erzbgr_vsenzr_/, '');
+ str73.replace(re40, '');
+ str73.replace(re10, '');
+ str73.replace(re51, '');
+ str73.replace(re52, '');
+ str73.replace(re53, '');
+ str73.replace(re39, '');
+ str73.replace(re54, '');
+ str74.replace(re40, '');
+ str74.replace(re10, '');
+ str74.replace(re51, '');
+ str74.replace(re52, '');
+ str74.replace(re53, '');
+ str74.replace(re39, '');
+ str74.replace(re54, '');
+ 'lhv-h'.replace(/\-/g, '');
+ re9.exec('p');
+ re9.exec('qz p');
+ re9.exec('zbqynory');
+ re9.exec('lhv-h svefg');
+ re8.exec('144631658.0.10.1231365779');
+ re8.exec('144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.1877536177953918500.1231365779.1231365779.1231365779.1');
+ re8.exec(str75);
+ re8.exec(str76);
+ re8.exec('__hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1');
+ re8.exec('__hgzo=144631658.0.10.1231365779');
+ re8.exec('__hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str68);
+ re34.exec(str69);
+ /^$/.exec('');
+ re31.exec('qr');
+ /^znk\d+$/.exec('');
+ /^zva\d+$/.exec('');
+ /^erfgber$/.exec('');
+ re85.exec('zbqobkva zbqobk_abcnqqvat ');
+ re85.exec('zbqgvgyr');
+ re85.exec('eaq_zbqobkva ');
+ re85.exec('eaq_zbqgvgyr ');
+ /frpgvba\d+_pbagragf/.exec('obggbz_ani');
+ }
+ }
+ var re86 = /;\s*/;
+ var re87 = /(\$\{inyhr\})|(\$inyhr\b)/g;
+ var re88 = /(\$\{abj\})|(\$abj\b)/g;
+ var re89 = /\s+$/;
+ var re90 = /^\s+/;
+ var re91 = /(\\\"|\x00-|\x1f|\x7f-|\x9f|\u00ad|\u0600-|\u0604|\u070f|\u17b4|\u17b5|\u200c-|\u200f|\u2028-|\u202f|\u2060-|\u206f|\ufeff|\ufff0-|\uffff)/g;
+ var re92 = /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/;
+ var re93 = /^([:.#]*)((?:[\w\u0128-\uffff*_-]|\\.)+)/;
+ var re94 = /^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/;
+ var str77 = '#fubhgobk .pybfr';
+ var str78 = 'FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzssrwh-aowb_80=441326q33660';
+ var str79 = 'FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; AFP_zp_dfctwzssrwh-aowb_80=441326q33660; __hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1; __hgzo=144631658.0.10.1231365869; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str80 = 'FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=441327q73660';
+ var str81 = 'FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; AFP_zp_dfctwzs-aowb_80=441327q73660; __hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1; __hgzo=144631658.0.10.1231367054; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str82 = '[glcr=fhozvg]';
+ var str83 = 'n.svryqOga,n.svryqOgaPnapry';
+ var str84 = 'n.svryqOgaPnapry';
+ var str85 = 'oyvpxchaxg';
+ var str86 = 'qvi.bow-nppbeqvba qg';
+ var str87 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_nccf_wf&qg=1231367052227&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367052227&punaary=svz_zlfcnpr_nccf-pnainf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2SZbqhyrf%2SNccyvpngvbaf%2SCntrf%2SPnainf.nfck&nq_glcr=grkg&rvq=6083027&rn=0&sez=1&tn_ivq=716357910.1231367056&tn_fvq=1231367056&tn_uvq=1387206491&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str88 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365851658&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365851658&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyrrqvg.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1979828129.1231365855&tn_fvq=1231365855&tn_uvq=2085229649&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
+ var str89 = 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N12%3N47%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=0k0&p=43835816&x=A&oj=994&ou=634&uc=A&{2}&[NDR]';
+ var str90 = 'zrgn[anzr=nwnkHey]';
+ var str91 = 'anpuevpugra';
+ var str92 = 'b oS={\'oT\':1.1};x $8n(B){z(B!=o9)};x $S(B){O(!$8n(B))z A;O(B.4L)z\'T\';b S=7t B;O(S==\'2P\'&&B.p4){23(B.7f){12 1:z\'T\';12 3:z/\S/.2g(B.8M)?\'ox\':\'oh\'}}O(S==\'2P\'||S==\'x\'){23(B.nE){12 2V:z\'1O\';12 7I:z\'5a\';12 18:z\'4B\'}O(7t B.I==\'4F\'){O(B.3u)z\'pG\';O(B.8e)z\'1p\'}}z S};x $2p(){b 4E={};Z(b v=0;v<1p.I;v++){Z(b X 1o 1p[v]){b nc=1p[v][X];b 6E=4E[X];O(6E&&$S(nc)==\'2P\'&&$S(6E)==\'2P\')4E[X]=$2p(6E,nc);17 4E[X]=nc}}z 4E};b $E=7p.E=x(){b 1d=1p;O(!1d[1])1d=[p,1d[0]];Z(b X 1o 1d[1])1d[0][X]=1d[1][X];z 1d[0]};b $4D=7p.pJ=x(){Z(b v=0,y=1p.I;v<y;v++){1p[v].E=x(1J){Z(b 1I 1o 1J){O(!p.1Y[1I])p.1Y[1I]=1J[1I];O(!p[1I])p[1I]=$4D.6C(1I)}}}};$4D.6C=x(1I){z x(L){z p.1Y[1I].3H(L,2V.1Y.nV.1F(1p,1))}};$4D(7F,2V,6J,nb);b 3l=x(B){B=B||{};B.E=$E;z B};b pK=Y 3l(H);b pZ=Y 3l(C);C.6f=C.35(\'6f\')[0];x $2O(B){z!!(B||B===0)};x $5S(B,n8){z $8n(B)?B:n8};x $7K(3c,1m){z 1q.na(1q.7K()*(1m-3c+1)+3c)};x $3N(){z Y 97().os()};x $4M(1U){pv(1U);pa(1U);z 1S};H.43=!!(C.5Z);O(H.nB)H.31=H[H.7q?\'py\':\'nL\']=1r;17 O(C.9N&&!C.om&&!oy.oZ)H.pF=H.4Z=H[H.43?\'pt\':\'65\']=1r;17 O(C.po!=1S)H.7J=1r;O(7t 5B==\'o9\'){b 5B=x(){};O(H.4Z)C.nd("pW");5B.1Y=(H.4Z)?H["[[oN.1Y]]"]:{}}5B.1Y.4L=1r;O(H.nL)5s{C.oX("pp",A,1r)}4K(r){};b 18=x(1X){b 63=x(){z(1p[0]!==1S&&p.1w&&$S(p.1w)==\'x\')?p.1w.3H(p,1p):p};$E(63,p);63.1Y=1X;63.nE=18;z 63};18.1z=x(){};18.1Y={E:x(1X){b 7x=Y p(1S);Z(b X 1o 1X){b nC=7x[X];7x[X]=18.nY(nC,1X[X])}z Y 18(7x)},3d:x(){Z(b v=0,y=1p.I;v<y;v++)$E(p.1Y,1p[v])}};18.nY=x(2b,2n){O(2b&&2b!=2n){b S=$S(2n);O(S!=$S(2b))z 2n;23(S){12\'x\':b 7R=x(){p.1e=1p.8e.1e;z 2n.3H(p,1p)};7R.1e=2b;z 7R;12\'2P\':z $2p(2b,2n)}}z 2n};b 8o=Y 18({oQ:x(J){p.4w=p.4w||[];p.4w.1x(J);z p},7g:x(){O(p.4w&&p.4w.I)p.4w.9J().2x(10,p)},oP:x(){p.4w=[]}});b 2d=Y 18({1V:x(S,J){O(J!=18.1z){p.$19=p.$19||{};p.$19[S]=p.$19[S]||[];p.$19[S].5j(J)}z p},1v:x(S,1d,2x){O(p.$19&&p.$19[S]){p.$19[S].1b(x(J){J.3n({\'L\':p,\'2x\':2x,\'1p\':1d})()},p)}z p},3M:x(S,J){O(p.$19&&p.$19[S])p.$19[S].2U(J);z p}});b 4v=Y 18({2H:x(){p.P=$2p.3H(1S,[p.P].E(1p));O(!p.1V)z p;Z(b 3O 1o p.P){O($S(p.P[3O]==\'x\')&&3O.2g(/^5P[N-M]/))p.1V(3O,p.P[3O])}z p}});2V.E({7y:x(J,L){Z(b v=0,w=p.I;v<w;v++)J.1F(L,p[v],v,p)},3s:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))54.1x(p[v])}z 54},2X:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++)54[v]=J.1F(L,p[v],v,p);z 54},4i:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(!J.1F(L,p[v],v,p))z A}z 1r},ob:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))z 1r}z A},3F:x(3u,15){b 3A=p.I;Z(b v=(15<0)?1q.1m(0,3A+15):15||0;v<3A;v++){O(p[v]===3u)z v}z-1},8z:x(1u,I){1u=1u||0;O(1u<0)1u=p.I+1u;I=I||(p.I-1u);b 89=[];Z(b v=0;v<I;v++)89[v]=p[1u++];z 89},2U:x(3u){b v=0;b 3A=p.I;6L(v<3A){O(p[v]===3u){p.6l(v,1);3A--}17{v++}}z p},1y:x(3u,15){z p.3F(3u,15)!=-1},oz:x(1C){b B={},I=1q.3c(p.I,1C.I);Z(b v=0;v<I;v++)B[1C[v]]=p[v];z B},E:x(1O){Z(b v=0,w=1O.I;v<w;v++)p.1x(1O[v]);z p},2p:x(1O){Z(b v=0,y=1O.I;v<y;v++)p.5j(1O[v]);z p},5j:x(3u){O(!p.1y(3u))p.1x(3u);z p},oc:x(){z p[$7K(0,p.I-1)]||A},7L:x(){z p[p.I-1]||A}});2V.1Y.1b=2V.1Y.7y;2V.1Y.2g=2V.1Y.1y;x $N(1O){z 2V.8z(1O)};x $1b(3J,J,L){O(3J&&7t 3J.I==\'4F\'&&$S(3J)!=\'2P\')2V.7y(3J,J,L);17 Z(b 1j 1o 3J)J.1F(L||3J,3J[1j],1j)};6J.E({2g:x(6b,2F){z(($S(6b)==\'2R\')?Y 7I(6b,2F):6b).2g(p)},3p:x(){z 5K(p,10)},o4:x(){z 69(p)},7A:x(){z p.3y(/-\D/t,x(2G){z 2G.7G(1).nW()})},9b:x(){z p.3y(/\w[N-M]/t,x(2G){z(2G.7G(0)+\'-\'+2G.7G(1).5O())})},8V:x(){z p.3y(/\b[n-m]/t,x(2G){z 2G.nW()})},5L:x(){z p.3y(/^\s+|\s+$/t,\'\')},7j:x(){z p.3y(/\s{2,}/t,\' \').5L()},5V:x(1O){b 1i=p.2G(/\d{1,3}/t);z(1i)?1i.5V(1O):A},5U:x(1O){b 3P=p.2G(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);z(3P)?3P.nV(1).5U(1O):A},1y:x(2R,f){z(f)?(f+p+f).3F(f+2R+f)>-1:p.3F(2R)>-1},nX:x(){z p.3y(/([.*+?^${}()|[\]\/\\])/t,\'\\$1\')}});2V.E({5V:x(1O){O(p.I<3)z A;O(p.I==4&&p[3]==0&&!1O)z\'p5\';b 3P=[];Z(b v=0;v<3;v++){b 52=(p[v]-0).4h(16);3P.1x((52.I==1)?\'0\'+52:52)}z 1O?3P:\'#\'+3P.2u(\'\')},5U:x(1O){O(p.I!=3)z A;b 1i=[];Z(b v=0;v<3;v++){1i.1x(5K((p[v].I==1)?p[v]+p[v]:p[v],16))}z 1O?1i:\'1i(\'+1i.2u(\',\')+\')\'}});7F.E({3n:x(P){b J=p;P=$2p({\'L\':J,\'V\':A,\'1p\':1S,\'2x\':A,\'4s\':A,\'6W\':A},P);O($2O(P.1p)&&$S(P.1p)!=\'1O\')P.1p=[P.1p];z x(V){b 1d;O(P.V){V=V||H.V;1d=[(P.V===1r)?V:Y P.V(V)];O(P.1p)1d.E(P.1p)}17 1d=P.1p||1p;b 3C=x(){z J.3H($5S(P';
+ var str93 = 'hagreunyghat';
+ var str94 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str95 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
+ var str96 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str97 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
+ var str98 = 'shapgvba (){Cuk.Nccyvpngvba.Frghc.Pber();Cuk.Nccyvpngvba.Frghc.Nwnk();Cuk.Nccyvpngvba.Frghc.Synfu();Cuk.Nccyvpngvba.Frghc.Zbqhyrf()}';
+ function runBlock11() {
+ for (var i = 0; i < 2; i++) {
+ ' .pybfr'.replace(re18, '');
+ ' n.svryqOgaPnapry'.replace(re18, '');
+ ' qg'.replace(re18, '');
+ str77.replace(re68, '');
+ str77.replace(re18, '');
+ ''.replace(re39, '');
+ ''.replace(/^/, '');
+ ''.split(re86);
+ '*'.replace(re39, '');
+ '*'.replace(re68, '');
+ '*'.replace(re18, '');
+ '.pybfr'.replace(re68, '');
+ '.pybfr'.replace(re18, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/fperra/${inyhr}?gf=${abj}'.replace(re87, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/fperra/1024?gf=${abj}'.replace(re88, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/${inyhr}?gf=${abj}'.replace(re87, '');
+ '//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/992/608?gf=${abj}'.replace(re88, '');
+ '300k120'.replace(re30, '');
+ '300k250'.replace(re30, '');
+ '310k120'.replace(re30, '');
+ '310k170'.replace(re30, '');
+ '310k250'.replace(re30, '');
+ '9.0 e115'.replace(/^.*\.(.*)\s.*$/, '');
+ 'Nppbeqvba'.replace(re2, '');
+ 'Nxghryy\x0a'.replace(re89, '');
+ 'Nxghryy\x0a'.replace(re90, '');
+ 'Nccyvpngvba'.replace(re2, '');
+ 'Oyvpxchaxg\x0a'.replace(re89, '');
+ 'Oyvpxchaxg\x0a'.replace(re90, '');
+ 'Svanamra\x0a'.replace(re89, '');
+ 'Svanamra\x0a'.replace(re90, '');
+ 'Tnzrf\x0a'.replace(re89, '');
+ 'Tnzrf\x0a'.replace(re90, '');
+ 'Ubebfxbc\x0a'.replace(re89, '');
+ 'Ubebfxbc\x0a'.replace(re90, '');
+ 'Xvab\x0a'.replace(re89, '');
+ 'Xvab\x0a'.replace(re90, '');
+ 'Zbqhyrf'.replace(re2, '');
+ 'Zhfvx\x0a'.replace(re89, '');
+ 'Zhfvx\x0a'.replace(re90, '');
+ 'Anpuevpugra\x0a'.replace(re89, '');
+ 'Anpuevpugra\x0a'.replace(re90, '');
+ 'Cuk'.replace(re2, '');
+ 'ErdhrfgSvavfu'.split(re70);
+ 'ErdhrfgSvavfu.NWNK.Cuk'.split(re70);
+ 'Ebhgr\x0a'.replace(re89, '');
+ 'Ebhgr\x0a'.replace(re90, '');
+ str78.split(re32);
+ str79.split(re32);
+ str80.split(re32);
+ str81.split(re32);
+ 'Fcbeg\x0a'.replace(re89, '');
+ 'Fcbeg\x0a'.replace(re90, '');
+ 'GI-Fcbg\x0a'.replace(re89, '');
+ 'GI-Fcbg\x0a'.replace(re90, '');
+ 'Gbhe\x0a'.replace(re89, '');
+ 'Gbhe\x0a'.replace(re90, '');
+ 'Hagreunyghat\x0a'.replace(re89, '');
+ 'Hagreunyghat\x0a'.replace(re90, '');
+ 'Ivqrb\x0a'.replace(re89, '');
+ 'Ivqrb\x0a'.replace(re90, '');
+ 'Jrggre\x0a'.replace(re89, '');
+ 'Jrggre\x0a'.replace(re90, '');
+ str82.replace(re68, '');
+ str82.replace(re18, '');
+ str83.replace(re68, '');
+ str83.replace(re18, '');
+ str84.replace(re68, '');
+ str84.replace(re18, '');
+ 'nqiFreivprObk'.replace(re30, '');
+ 'nqiFubccvatObk'.replace(re30, '');
+ 'nwnk'.replace(re39, '');
+ 'nxghryy'.replace(re40, '');
+ 'nxghryy'.replace(re41, '');
+ 'nxghryy'.replace(re42, '');
+ 'nxghryy'.replace(re43, '');
+ 'nxghryy'.replace(re44, '');
+ 'nxghryy'.replace(re45, '');
+ 'nxghryy'.replace(re46, '');
+ 'nxghryy'.replace(re47, '');
+ 'nxghryy'.replace(re48, '');
+ str85.replace(re40, '');
+ str85.replace(re41, '');
+ str85.replace(re42, '');
+ str85.replace(re43, '');
+ str85.replace(re44, '');
+ str85.replace(re45, '');
+ str85.replace(re46, '');
+ str85.replace(re47, '');
+ str85.replace(re48, '');
+ 'pngrtbel'.replace(re29, '');
+ 'pngrtbel'.replace(re30, '');
+ 'pybfr'.replace(re39, '');
+ 'qvi'.replace(re39, '');
+ str86.replace(re68, '');
+ str86.replace(re18, '');
+ 'qg'.replace(re39, '');
+ 'qg'.replace(re68, '');
+ 'qg'.replace(re18, '');
+ 'rzorq'.replace(re39, '');
+ 'rzorq'.replace(re68, '');
+ 'rzorq'.replace(re18, '');
+ 'svryqOga'.replace(re39, '');
+ 'svryqOgaPnapry'.replace(re39, '');
+ 'svz_zlfcnpr_nccf-pnainf,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
+ 'svanamra'.replace(re40, '');
+ 'svanamra'.replace(re41, '');
+ 'svanamra'.replace(re42, '');
+ 'svanamra'.replace(re43, '');
+ 'svanamra'.replace(re44, '');
+ 'svanamra'.replace(re45, '');
+ 'svanamra'.replace(re46, '');
+ 'svanamra'.replace(re47, '');
+ 'svanamra'.replace(re48, '');
+ 'sbphf'.split(re70);
+ 'sbphf.gno sbphfva.gno'.split(re70);
+ 'sbphfva'.split(re70);
+ 'sbez'.replace(re39, '');
+ 'sbez.nwnk'.replace(re68, '');
+ 'sbez.nwnk'.replace(re18, '');
+ 'tnzrf'.replace(re40, '');
+ 'tnzrf'.replace(re41, '');
+ 'tnzrf'.replace(re42, '');
+ 'tnzrf'.replace(re43, '');
+ 'tnzrf'.replace(re44, '');
+ 'tnzrf'.replace(re45, '');
+ 'tnzrf'.replace(re46, '');
+ 'tnzrf'.replace(re47, '');
+ 'tnzrf'.replace(re48, '');
+ 'ubzrcntr'.replace(re30, '');
+ 'ubebfxbc'.replace(re40, '');
+ 'ubebfxbc'.replace(re41, '');
+ 'ubebfxbc'.replace(re42, '');
+ 'ubebfxbc'.replace(re43, '');
+ 'ubebfxbc'.replace(re44, '');
+ 'ubebfxbc'.replace(re45, '');
+ 'ubebfxbc'.replace(re46, '');
+ 'ubebfxbc'.replace(re47, '');
+ 'ubebfxbc'.replace(re48, '');
+ 'uc_cebzbobk_ugzy%2Puc_cebzbobk_vzt'.replace(re30, '');
+ 'uc_erpgnatyr'.replace(re30, '');
+ str87.replace(re33, '');
+ str88.replace(re33, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${5}'.replace(re72, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${5}'.replace(re72, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${4}${5}'.replace(re71, '');
+ 'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${5}'.replace(re72, '');
+ str89.replace(re73, '');
+ 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&{1}&{2}&[NDR]'.replace(re69, '');
+ str6.replace(re23, '');
+ 'xvab'.replace(re40, '');
+ 'xvab'.replace(re41, '');
+ 'xvab'.replace(re42, '');
+ 'xvab'.replace(re43, '');
+ 'xvab'.replace(re44, '');
+ 'xvab'.replace(re45, '');
+ 'xvab'.replace(re46, '');
+ 'xvab'.replace(re47, '');
+ 'xvab'.replace(re48, '');
+ 'ybnq'.split(re70);
+ 'zrqvnzbqgno lhv-anifrg lhv-anifrg-gbc'.replace(re18, '');
+ 'zrgn'.replace(re39, '');
+ str90.replace(re68, '');
+ str90.replace(re18, '');
+ 'zbhfrzbir'.split(re70);
+ 'zbhfrzbir.gno'.split(re70);
+ str63.replace(/^.*jroxvg\/(\d+(\.\d+)?).*$/, '');
+ 'zhfvx'.replace(re40, '');
+ 'zhfvx'.replace(re41, '');
+ 'zhfvx'.replace(re42, '');
+ 'zhfvx'.replace(re43, '');
+ 'zhfvx'.replace(re44, '');
+ 'zhfvx'.replace(re45, '');
+ 'zhfvx'.replace(re46, '');
+ 'zhfvx'.replace(re47, '');
+ 'zhfvx'.replace(re48, '');
+ 'zlfcnpr_nccf_pnainf'.replace(re52, '');
+ str91.replace(re40, '');
+ str91.replace(re41, '');
+ str91.replace(re42, '');
+ str91.replace(re43, '');
+ str91.replace(re44, '');
+ str91.replace(re45, '');
+ str91.replace(re46, '');
+ str91.replace(re47, '');
+ str91.replace(re48, '');
+ 'anzr'.replace(re39, '');
+ str92.replace(/\b\w+\b/g, '');
+ 'bow-nppbeqvba'.replace(re39, '');
+ 'bowrpg'.replace(re39, '');
+ 'bowrpg'.replace(re68, '');
+ 'bowrpg'.replace(re18, '');
+ 'cnenzf%2Rfglyrf'.replace(re29, '');
+ 'cnenzf%2Rfglyrf'.replace(re30, '');
+ 'cbchc'.replace(re30, '');
+ 'ebhgr'.replace(re40, '');
+ 'ebhgr'.replace(re41, '');
+ 'ebhgr'.replace(re42, '');
+ 'ebhgr'.replace(re43, '');
+ 'ebhgr'.replace(re44, '');
+ 'ebhgr'.replace(re45, '');
+ 'ebhgr'.replace(re46, '');
+ 'ebhgr'.replace(re47, '');
+ 'ebhgr'.replace(re48, '');
+ 'freivprobk_uc'.replace(re30, '');
+ 'fubccvatobk_uc'.replace(re30, '');
+ 'fubhgobk'.replace(re39, '');
+ 'fcbeg'.replace(re40, '');
+ 'fcbeg'.replace(re41, '');
+ 'fcbeg'.replace(re42, '');
+ 'fcbeg'.replace(re43, '');
+ 'fcbeg'.replace(re44, '');
+ 'fcbeg'.replace(re45, '');
+ 'fcbeg'.replace(re46, '');
+ 'fcbeg'.replace(re47, '');
+ 'fcbeg'.replace(re48, '');
+ 'gbhe'.replace(re40, '');
+ 'gbhe'.replace(re41, '');
+ 'gbhe'.replace(re42, '');
+ 'gbhe'.replace(re43, '');
+ 'gbhe'.replace(re44, '');
+ 'gbhe'.replace(re45, '');
+ 'gbhe'.replace(re46, '');
+ 'gbhe'.replace(re47, '');
+ 'gbhe'.replace(re48, '');
+ 'gi-fcbg'.replace(re40, '');
+ 'gi-fcbg'.replace(re41, '');
+ 'gi-fcbg'.replace(re42, '');
+ 'gi-fcbg'.replace(re43, '');
+ 'gi-fcbg'.replace(re44, '');
+ 'gi-fcbg'.replace(re45, '');
+ 'gi-fcbg'.replace(re46, '');
+ 'gi-fcbg'.replace(re47, '');
+ 'gi-fcbg'.replace(re48, '');
+ 'glcr'.replace(re39, '');
+ 'haqrsvarq'.replace(/\//g, '');
+ str93.replace(re40, '');
+ str93.replace(re41, '');
+ str93.replace(re42, '');
+ str93.replace(re43, '');
+ str93.replace(re44, '');
+ str93.replace(re45, '');
+ str93.replace(re46, '');
+ str93.replace(re47, '');
+ str93.replace(re48, '');
+ 'ivqrb'.replace(re40, '');
+ 'ivqrb'.replace(re41, '');
+ 'ivqrb'.replace(re42, '');
+ 'ivqrb'.replace(re43, '');
+ 'ivqrb'.replace(re44, '');
+ 'ivqrb'.replace(re45, '');
+ 'ivqrb'.replace(re46, '');
+ 'ivqrb'.replace(re47, '');
+ 'ivqrb'.replace(re48, '');
+ 'ivfvgf=1'.split(re86);
+ 'jrggre'.replace(re40, '');
+ 'jrggre'.replace(re41, '');
+ 'jrggre'.replace(re42, '');
+ 'jrggre'.replace(re43, '');
+ 'jrggre'.replace(re44, '');
+ 'jrggre'.replace(re45, '');
+ 'jrggre'.replace(re46, '');
+ 'jrggre'.replace(re47, '');
+ 'jrggre'.replace(re48, '');
+ /#[a-z0-9]+$/i.exec('uggc://jjj.fpuhryreim.arg/Qrsnhyg');
+ re66.exec('fryrpgrq');
+ /(?:^|\s+)lhv-ani(?:\s+|$)/.exec('sff lhv-ani');
+ /(?:^|\s+)lhv-anifrg(?:\s+|$)/.exec('zrqvnzbqgno lhv-anifrg');
+ /(?:^|\s+)lhv-anifrg-gbc(?:\s+|$)/.exec('zrqvnzbqgno lhv-anifrg');
+ re91.exec('GnoThvq');
+ re91.exec('thvq');
+ /(pbzcngvoyr|jroxvg)/.exec(str63);
+ /.+(?:ei|vg|en|vr)[\/: ]([\d.]+)/.exec(str63);
+ re8.exec('144631658.0.10.1231365869');
+ re8.exec('144631658.0.10.1231367054');
+ re8.exec('144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('144631658.1670816052019209000.1231365869.1231365869.1231365869.1');
+ re8.exec('144631658.1796080716621419500.1231367054.1231367054.1231367054.1');
+ re8.exec(str94);
+ re8.exec(str95);
+ re8.exec(str96);
+ re8.exec(str97);
+ re8.exec('__hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1');
+ re8.exec('__hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1');
+ re8.exec('__hgzo=144631658.0.10.1231365869');
+ re8.exec('__hgzo=144631658.0.10.1231367054');
+ re8.exec('__hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re8.exec('__hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
+ re34.exec(str78);
+ re34.exec(str79);
+ re34.exec(str81);
+ re74.exec(str77);
+ re74.exec('*');
+ re74.exec(str82);
+ re74.exec(str83);
+ re74.exec(str86);
+ re74.exec('rzorq');
+ re74.exec('sbez.nwnk');
+ re74.exec(str90);
+ re74.exec('bowrpg');
+ /\/onfr.wf(\?.+)?$/.exec('/uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf');
+ re28.exec('uvag ynfgUvag ynfg');
+ re75.exec('');
+ re76.exec('');
+ re77.exec('');
+ re78.exec('');
+ re80.exec(str77);
+ re80.exec('*');
+ re80.exec('.pybfr');
+ re80.exec(str82);
+ re80.exec(str83);
+ re80.exec(str84);
+ re80.exec(str86);
+ re80.exec('qg');
+ re80.exec('rzorq');
+ re80.exec('sbez.nwnk');
+ re80.exec(str90);
+ re80.exec('bowrpg');
+ re61.exec('qlaYvo.wf');
+ re61.exec('rssrpgYvo.wf');
+ re61.exec('uggc://jjj.tzk.arg/qr/?fgnghf=uvajrvf');
+ re92.exec(' .pybfr');
+ re92.exec(' n.svryqOgaPnapry');
+ re92.exec(' qg');
+ re92.exec(str48);
+ re92.exec('.nwnk');
+ re92.exec('.svryqOga,n.svryqOgaPnapry');
+ re92.exec('.svryqOgaPnapry');
+ re92.exec('.bow-nppbeqvba qg');
+ re68.exec(str77);
+ re68.exec('*');
+ re68.exec('.pybfr');
+ re68.exec(str82);
+ re68.exec(str83);
+ re68.exec(str84);
+ re68.exec(str86);
+ re68.exec('qg');
+ re68.exec('rzorq');
+ re68.exec('sbez.nwnk');
+ re68.exec(str90);
+ re68.exec('bowrpg');
+ re93.exec(' .pybfr');
+ re93.exec(' n.svryqOgaPnapry');
+ re93.exec(' qg');
+ re93.exec(str48);
+ re93.exec('.nwnk');
+ re93.exec('.svryqOga,n.svryqOgaPnapry');
+ re93.exec('.svryqOgaPnapry');
+ re93.exec('.bow-nppbeqvba qg');
+ re81.exec(str77);
+ re81.exec('*');
+ re81.exec(str48);
+ re81.exec('.pybfr');
+ re81.exec(str82);
+ re81.exec(str83);
+ re81.exec(str84);
+ re81.exec(str86);
+ re81.exec('qg');
+ re81.exec('rzorq');
+ re81.exec('sbez.nwnk');
+ re81.exec(str90);
+ re81.exec('bowrpg');
+ re94.exec(' .pybfr');
+ re94.exec(' n.svryqOgaPnapry');
+ re94.exec(' qg');
+ re94.exec(str48);
+ re94.exec('.nwnk');
+ re94.exec('.svryqOga,n.svryqOgaPnapry');
+ re94.exec('.svryqOgaPnapry');
+ re94.exec('.bow-nppbeqvba qg');
+ re94.exec('[anzr=nwnkHey]');
+ re94.exec(str82);
+ re31.exec('rf');
+ re31.exec('wn');
+ re82.exec(str77);
+ re82.exec('*');
+ re82.exec(str48);
+ re82.exec('.pybfr');
+ re82.exec(str82);
+ re82.exec(str83);
+ re82.exec(str84);
+ re82.exec(str86);
+ re82.exec('qg');
+ re82.exec('rzorq');
+ re82.exec('sbez.nwnk');
+ re82.exec(str90);
+ re82.exec('bowrpg');
+ re83.exec(str98);
+ re83.exec('shapgvba sbphf() { [angvir pbqr] }');
+ re62.exec('#Ybtva');
+ re62.exec('#Ybtva_cnffjbeq');
+ re62.exec(str77);
+ re62.exec('#fubhgobkWf');
+ re62.exec('#fubhgobkWfReebe');
+ re62.exec('#fubhgobkWfFhpprff');
+ re62.exec('*');
+ re62.exec(str82);
+ re62.exec(str83);
+ re62.exec(str86);
+ re62.exec('rzorq');
+ re62.exec('sbez.nwnk');
+ re62.exec(str90);
+ re62.exec('bowrpg');
+ re49.exec('pbagrag');
+ re24.exec(str6);
+ /xbadhrebe/.exec(str63);
+ /znp/.exec('jva32');
+ /zbmvyyn/.exec(str63);
+ /zfvr/.exec(str63);
+ /ag\s5\.1/.exec(str63);
+ /bcren/.exec(str63);
+ /fnsnev/.exec(str63);
+ /jva/.exec('jva32');
+ /jvaqbjf/.exec(str63);
+ }
+ }
+ for (var i = 0; i < 5; i++) {
+ runBlock0();
+ runBlock1();
+ runBlock2();
+ runBlock3();
+ runBlock4();
+ runBlock5();
+ runBlock6();
+ runBlock7();
+ runBlock8();
+ runBlock9();
+ runBlock10();
+ runBlock11();
+ }
+}
+
+for (var i = 0; i < 3; ++i)
+ runRegExpBenchmark();
diff --git a/PerformanceTests/SunSpider/tests/v8-v6/v8-richards.js b/PerformanceTests/SunSpider/tests/v8-v6/v8-richards.js
new file mode 100644
index 000000000..b1a50eaab
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v6/v8-richards.js
@@ -0,0 +1,537 @@
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+// This is a JavaScript implementation of the Richards
+// benchmark from:
+//
+// http://www.cl.cam.ac.uk/~mr10/Bench.html
+//
+// The benchmark was originally implemented in BCPL by
+// Martin Richards.
+
+
+/**
+ * The Richards benchmark simulates the task dispatcher of an
+ * operating system.
+ **/
+function runRichards() {
+ var scheduler = new Scheduler();
+ scheduler.addIdleTask(ID_IDLE, 0, null, COUNT);
+
+ var queue = new Packet(null, ID_WORKER, KIND_WORK);
+ queue = new Packet(queue, ID_WORKER, KIND_WORK);
+ scheduler.addWorkerTask(ID_WORKER, 1000, queue);
+
+ queue = new Packet(null, ID_DEVICE_A, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE);
+ scheduler.addHandlerTask(ID_HANDLER_A, 2000, queue);
+
+ queue = new Packet(null, ID_DEVICE_B, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE);
+ queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE);
+ scheduler.addHandlerTask(ID_HANDLER_B, 3000, queue);
+
+ scheduler.addDeviceTask(ID_DEVICE_A, 4000, null);
+
+ scheduler.addDeviceTask(ID_DEVICE_B, 5000, null);
+
+ scheduler.schedule();
+
+ if (scheduler.queueCount != EXPECTED_QUEUE_COUNT ||
+ scheduler.holdCount != EXPECTED_HOLD_COUNT) {
+ var msg =
+ "Error during execution: queueCount = " + scheduler.queueCount +
+ ", holdCount = " + scheduler.holdCount + ".";
+ throw new Error(msg);
+ }
+}
+
+var COUNT = 1000;
+
+/**
+ * These two constants specify how many times a packet is queued and
+ * how many times a task is put on hold in a correct run of richards.
+ * They don't have any meaning a such but are characteristic of a
+ * correct run so if the actual queue or hold count is different from
+ * the expected there must be a bug in the implementation.
+ **/
+var EXPECTED_QUEUE_COUNT = 2322;
+var EXPECTED_HOLD_COUNT = 928;
+
+
+/**
+ * A scheduler can be used to schedule a set of tasks based on their relative
+ * priorities. Scheduling is done by maintaining a list of task control blocks
+ * which holds tasks and the data queue they are processing.
+ * @constructor
+ */
+function Scheduler() {
+ this.queueCount = 0;
+ this.holdCount = 0;
+ this.blocks = new Array(NUMBER_OF_IDS);
+ this.list = null;
+ this.currentTcb = null;
+ this.currentId = null;
+}
+
+var ID_IDLE = 0;
+var ID_WORKER = 1;
+var ID_HANDLER_A = 2;
+var ID_HANDLER_B = 3;
+var ID_DEVICE_A = 4;
+var ID_DEVICE_B = 5;
+var NUMBER_OF_IDS = 6;
+
+var KIND_DEVICE = 0;
+var KIND_WORK = 1;
+
+/**
+ * Add an idle task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {int} count the number of times to schedule the task
+ */
+Scheduler.prototype.addIdleTask = function (id, priority, queue, count) {
+ this.addRunningTask(id, priority, queue, new IdleTask(this, 1, count));
+};
+
+/**
+ * Add a work task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addWorkerTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new WorkerTask(this, ID_HANDLER_A, 0));
+};
+
+/**
+ * Add a handler task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addHandlerTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new HandlerTask(this));
+};
+
+/**
+ * Add a handler task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ */
+Scheduler.prototype.addDeviceTask = function (id, priority, queue) {
+ this.addTask(id, priority, queue, new DeviceTask(this))
+};
+
+/**
+ * Add the specified task and mark it as running.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {Task} task the task to add
+ */
+Scheduler.prototype.addRunningTask = function (id, priority, queue, task) {
+ this.addTask(id, priority, queue, task);
+ this.currentTcb.setRunning();
+};
+
+/**
+ * Add the specified task to this scheduler.
+ * @param {int} id the identity of the task
+ * @param {int} priority the task's priority
+ * @param {Packet} queue the queue of work to be processed by the task
+ * @param {Task} task the task to add
+ */
+Scheduler.prototype.addTask = function (id, priority, queue, task) {
+ this.currentTcb = new TaskControlBlock(this.list, id, priority, queue, task);
+ this.list = this.currentTcb;
+ this.blocks[id] = this.currentTcb;
+};
+
+/**
+ * Execute the tasks managed by this scheduler.
+ */
+Scheduler.prototype.schedule = function () {
+ this.currentTcb = this.list;
+ while (this.currentTcb != null) {
+ if (this.currentTcb.isHeldOrSuspended()) {
+ this.currentTcb = this.currentTcb.link;
+ } else {
+ this.currentId = this.currentTcb.id;
+ this.currentTcb = this.currentTcb.run();
+ }
+ }
+};
+
+/**
+ * Release a task that is currently blocked and return the next block to run.
+ * @param {int} id the id of the task to suspend
+ */
+Scheduler.prototype.release = function (id) {
+ var tcb = this.blocks[id];
+ if (tcb == null) return tcb;
+ tcb.markAsNotHeld();
+ if (tcb.priority > this.currentTcb.priority) {
+ return tcb;
+ } else {
+ return this.currentTcb;
+ }
+};
+
+/**
+ * Block the currently executing task and return the next task control block
+ * to run. The blocked task will not be made runnable until it is explicitly
+ * released, even if new work is added to it.
+ */
+Scheduler.prototype.holdCurrent = function () {
+ this.holdCount++;
+ this.currentTcb.markAsHeld();
+ return this.currentTcb.link;
+};
+
+/**
+ * Suspend the currently executing task and return the next task control block
+ * to run. If new work is added to the suspended task it will be made runnable.
+ */
+Scheduler.prototype.suspendCurrent = function () {
+ this.currentTcb.markAsSuspended();
+ return this.currentTcb;
+};
+
+/**
+ * Add the specified packet to the end of the worklist used by the task
+ * associated with the packet and make the task runnable if it is currently
+ * suspended.
+ * @param {Packet} packet the packet to add
+ */
+Scheduler.prototype.queue = function (packet) {
+ var t = this.blocks[packet.id];
+ if (t == null) return t;
+ this.queueCount++;
+ packet.link = null;
+ packet.id = this.currentId;
+ return t.checkPriorityAdd(this.currentTcb, packet);
+};
+
+/**
+ * A task control block manages a task and the queue of work packages associated
+ * with it.
+ * @param {TaskControlBlock} link the preceding block in the linked block list
+ * @param {int} id the id of this block
+ * @param {int} priority the priority of this block
+ * @param {Packet} queue the queue of packages to be processed by the task
+ * @param {Task} task the task
+ * @constructor
+ */
+function TaskControlBlock(link, id, priority, queue, task) {
+ this.link = link;
+ this.id = id;
+ this.priority = priority;
+ this.queue = queue;
+ this.task = task;
+ if (queue == null) {
+ this.state = STATE_SUSPENDED;
+ } else {
+ this.state = STATE_SUSPENDED_RUNNABLE;
+ }
+}
+
+/**
+ * The task is running and is currently scheduled.
+ */
+var STATE_RUNNING = 0;
+
+/**
+ * The task has packets left to process.
+ */
+var STATE_RUNNABLE = 1;
+
+/**
+ * The task is not currently running. The task is not blocked as such and may
+* be started by the scheduler.
+ */
+var STATE_SUSPENDED = 2;
+
+/**
+ * The task is blocked and cannot be run until it is explicitly released.
+ */
+var STATE_HELD = 4;
+
+var STATE_SUSPENDED_RUNNABLE = STATE_SUSPENDED | STATE_RUNNABLE;
+var STATE_NOT_HELD = ~STATE_HELD;
+
+TaskControlBlock.prototype.setRunning = function () {
+ this.state = STATE_RUNNING;
+};
+
+TaskControlBlock.prototype.markAsNotHeld = function () {
+ this.state = this.state & STATE_NOT_HELD;
+};
+
+TaskControlBlock.prototype.markAsHeld = function () {
+ this.state = this.state | STATE_HELD;
+};
+
+TaskControlBlock.prototype.isHeldOrSuspended = function () {
+ return (this.state & STATE_HELD) != 0 || (this.state == STATE_SUSPENDED);
+};
+
+TaskControlBlock.prototype.markAsSuspended = function () {
+ this.state = this.state | STATE_SUSPENDED;
+};
+
+TaskControlBlock.prototype.markAsRunnable = function () {
+ this.state = this.state | STATE_RUNNABLE;
+};
+
+/**
+ * Runs this task, if it is ready to be run, and returns the next task to run.
+ */
+TaskControlBlock.prototype.run = function () {
+ var packet;
+ if (this.state == STATE_SUSPENDED_RUNNABLE) {
+ packet = this.queue;
+ this.queue = packet.link;
+ if (this.queue == null) {
+ this.state = STATE_RUNNING;
+ } else {
+ this.state = STATE_RUNNABLE;
+ }
+ } else {
+ packet = null;
+ }
+ return this.task.run(packet);
+};
+
+/**
+ * Adds a packet to the worklist of this block's task, marks this as runnable if
+ * necessary, and returns the next runnable object to run (the one
+ * with the highest priority).
+ */
+TaskControlBlock.prototype.checkPriorityAdd = function (task, packet) {
+ if (this.queue == null) {
+ this.queue = packet;
+ this.markAsRunnable();
+ if (this.priority > task.priority) return this;
+ } else {
+ this.queue = packet.addTo(this.queue);
+ }
+ return task;
+};
+
+TaskControlBlock.prototype.toString = function () {
+ return "tcb { " + this.task + "@" + this.state + " }";
+};
+
+/**
+ * An idle task doesn't do any work itself but cycles control between the two
+ * device tasks.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @param {int} v1 a seed value that controls how the device tasks are scheduled
+ * @param {int} count the number of times this task should be scheduled
+ * @constructor
+ */
+function IdleTask(scheduler, v1, count) {
+ this.scheduler = scheduler;
+ this.v1 = v1;
+ this.count = count;
+}
+
+IdleTask.prototype.run = function (packet) {
+ this.count--;
+ if (this.count == 0) return this.scheduler.holdCurrent();
+ if ((this.v1 & 1) == 0) {
+ this.v1 = this.v1 >> 1;
+ return this.scheduler.release(ID_DEVICE_A);
+ } else {
+ this.v1 = (this.v1 >> 1) ^ 0xD008;
+ return this.scheduler.release(ID_DEVICE_B);
+ }
+};
+
+IdleTask.prototype.toString = function () {
+ return "IdleTask"
+};
+
+/**
+ * A task that suspends itself after each time it has been run to simulate
+ * waiting for data from an external device.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @constructor
+ */
+function DeviceTask(scheduler) {
+ this.scheduler = scheduler;
+ this.v1 = null;
+}
+
+DeviceTask.prototype.run = function (packet) {
+ if (packet == null) {
+ if (this.v1 == null) return this.scheduler.suspendCurrent();
+ var v = this.v1;
+ this.v1 = null;
+ return this.scheduler.queue(v);
+ } else {
+ this.v1 = packet;
+ return this.scheduler.holdCurrent();
+ }
+};
+
+DeviceTask.prototype.toString = function () {
+ return "DeviceTask";
+};
+
+/**
+ * A task that manipulates work packets.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @param {int} v1 a seed used to specify how work packets are manipulated
+ * @param {int} v2 another seed used to specify how work packets are manipulated
+ * @constructor
+ */
+function WorkerTask(scheduler, v1, v2) {
+ this.scheduler = scheduler;
+ this.v1 = v1;
+ this.v2 = v2;
+}
+
+WorkerTask.prototype.run = function (packet) {
+ if (packet == null) {
+ return this.scheduler.suspendCurrent();
+ } else {
+ if (this.v1 == ID_HANDLER_A) {
+ this.v1 = ID_HANDLER_B;
+ } else {
+ this.v1 = ID_HANDLER_A;
+ }
+ packet.id = this.v1;
+ packet.a1 = 0;
+ for (var i = 0; i < DATA_SIZE; i++) {
+ this.v2++;
+ if (this.v2 > 26) this.v2 = 1;
+ packet.a2[i] = this.v2;
+ }
+ return this.scheduler.queue(packet);
+ }
+};
+
+WorkerTask.prototype.toString = function () {
+ return "WorkerTask";
+};
+
+/**
+ * A task that manipulates work packets and then suspends itself.
+ * @param {Scheduler} scheduler the scheduler that manages this task
+ * @constructor
+ */
+function HandlerTask(scheduler) {
+ this.scheduler = scheduler;
+ this.v1 = null;
+ this.v2 = null;
+}
+
+HandlerTask.prototype.run = function (packet) {
+ if (packet != null) {
+ if (packet.kind == KIND_WORK) {
+ this.v1 = packet.addTo(this.v1);
+ } else {
+ this.v2 = packet.addTo(this.v2);
+ }
+ }
+ if (this.v1 != null) {
+ var count = this.v1.a1;
+ var v;
+ if (count < DATA_SIZE) {
+ if (this.v2 != null) {
+ v = this.v2;
+ this.v2 = this.v2.link;
+ v.a1 = this.v1.a2[count];
+ this.v1.a1 = count + 1;
+ return this.scheduler.queue(v);
+ }
+ } else {
+ v = this.v1;
+ this.v1 = this.v1.link;
+ return this.scheduler.queue(v);
+ }
+ }
+ return this.scheduler.suspendCurrent();
+};
+
+HandlerTask.prototype.toString = function () {
+ return "HandlerTask";
+};
+
+/* --- *
+ * P a c k e t
+ * --- */
+
+var DATA_SIZE = 4;
+
+/**
+ * A simple package of data that is manipulated by the tasks. The exact layout
+ * of the payload data carried by a packet is not importaint, and neither is the
+ * nature of the work performed on packets by the tasks.
+ *
+ * Besides carrying data, packets form linked lists and are hence used both as
+ * data and worklists.
+ * @param {Packet} link the tail of the linked list of packets
+ * @param {int} id an ID for this packet
+ * @param {int} kind the type of this packet
+ * @constructor
+ */
+function Packet(link, id, kind) {
+ this.link = link;
+ this.id = id;
+ this.kind = kind;
+ this.a1 = 0;
+ this.a2 = new Array(DATA_SIZE);
+}
+
+/**
+ * Add this packet to the end of a worklist, and return the worklist.
+ * @param {Packet} queue the worklist to add this packet to
+ */
+Packet.prototype.addTo = function (queue) {
+ this.link = null;
+ if (queue == null) return this;
+ var peek, next = queue;
+ while ((peek = next.link) != null)
+ next = peek;
+ next.link = this;
+ return queue;
+};
+
+Packet.prototype.toString = function () {
+ return "Packet";
+};
+
+for (var i = 0; i < 350; ++i)
+ runRichards();
diff --git a/PerformanceTests/SunSpider/tests/v8-v6/v8-splay.js b/PerformanceTests/SunSpider/tests/v8-v6/v8-splay.js
new file mode 100644
index 000000000..e2573534f
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/v8-v6/v8-splay.js
@@ -0,0 +1,393 @@
+// Copyright 2009 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This benchmark is based on a JavaScript log processing module used
+// by the V8 profiler to generate execution time profiles for runs of
+// JavaScript applications, and it effectively measures how fast the
+// JavaScript engine is at allocating nodes and reclaiming the memory
+// used for old nodes. Because of the way splay trees work, the engine
+// also has to deal with a lot of changes to the large tree object
+// graph.
+
+// Configuration.
+var kSplayTreeSize = 8000;
+var kSplayTreeModifications = 80;
+var kSplayTreePayloadDepth = 5;
+
+var splayTree = null;
+
+
+function GeneratePayloadTree(depth, tag) {
+ if (depth == 0) {
+ return {
+ array : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ],
+ string : 'String for key ' + tag + ' in leaf node'
+ };
+ } else {
+ return {
+ left: GeneratePayloadTree(depth - 1, tag),
+ right: GeneratePayloadTree(depth - 1, tag)
+ };
+ }
+}
+
+
+function GenerateKey() {
+ // The benchmark framework guarantees that Math.random is
+ // deterministic; see base.js.
+ return Math.random();
+}
+
+
+function InsertNewNode() {
+ // Insert new node with a unique key.
+ var key;
+ do {
+ key = GenerateKey();
+ } while (splayTree.find(key) != null);
+ var payload = GeneratePayloadTree(kSplayTreePayloadDepth, String(key));
+ splayTree.insert(key, payload);
+ return key;
+}
+
+
+
+function SplaySetup() {
+ splayTree = new SplayTree();
+ for (var i = 0; i < kSplayTreeSize; i++) InsertNewNode();
+}
+
+
+function SplayTearDown() {
+ // Allow the garbage collector to reclaim the memory
+ // used by the splay tree no matter how we exit the
+ // tear down function.
+ var keys = splayTree.exportKeys();
+ splayTree = null;
+
+ // Verify that the splay tree has the right size.
+ var length = keys.length;
+ if (length != kSplayTreeSize) {
+ throw new Error("Splay tree has wrong size");
+ }
+
+ // Verify that the splay tree has sorted, unique keys.
+ for (var i = 0; i < length - 1; i++) {
+ if (keys[i] >= keys[i + 1]) {
+ throw new Error("Splay tree not sorted");
+ }
+ }
+}
+
+
+function SplayRun() {
+ // Replace a few nodes in the splay tree.
+ for (var i = 0; i < kSplayTreeModifications; i++) {
+ var key = InsertNewNode();
+ var greatest = splayTree.findGreatestLessThan(key);
+ if (greatest == null) splayTree.remove(key);
+ else splayTree.remove(greatest.key);
+ }
+}
+
+
+/**
+ * Constructs a Splay tree. A splay tree is a self-balancing binary
+ * search tree with the additional property that recently accessed
+ * elements are quick to access again. It performs basic operations
+ * such as insertion, look-up and removal in O(log(n)) amortized time.
+ *
+ * @constructor
+ */
+function SplayTree() {
+};
+
+
+/**
+ * Pointer to the root node of the tree.
+ *
+ * @type {SplayTree.Node}
+ * @private
+ */
+SplayTree.prototype.root_ = null;
+
+
+/**
+ * @return {boolean} Whether the tree is empty.
+ */
+SplayTree.prototype.isEmpty = function() {
+ return !this.root_;
+};
+
+
+/**
+ * Inserts a node into the tree with the specified key and value if
+ * the tree does not already contain a node with the specified key. If
+ * the value is inserted, it becomes the root of the tree.
+ *
+ * @param {number} key Key to insert into the tree.
+ * @param {*} value Value to insert into the tree.
+ */
+SplayTree.prototype.insert = function(key, value) {
+ if (this.isEmpty()) {
+ this.root_ = new SplayTree.Node(key, value);
+ return;
+ }
+ // Splay on the key to move the last node on the search path for
+ // the key to the root of the tree.
+ this.splay_(key);
+ if (this.root_.key == key) {
+ return;
+ }
+ var node = new SplayTree.Node(key, value);
+ if (key > this.root_.key) {
+ node.left = this.root_;
+ node.right = this.root_.right;
+ this.root_.right = null;
+ } else {
+ node.right = this.root_;
+ node.left = this.root_.left;
+ this.root_.left = null;
+ }
+ this.root_ = node;
+};
+
+
+/**
+ * Removes a node with the specified key from the tree if the tree
+ * contains a node with this key. The removed node is returned. If the
+ * key is not found, an exception is thrown.
+ *
+ * @param {number} key Key to find and remove from the tree.
+ * @return {SplayTree.Node} The removed node.
+ */
+SplayTree.prototype.remove = function(key) {
+ if (this.isEmpty()) {
+ throw Error('Key not found: ' + key);
+ }
+ this.splay_(key);
+ if (this.root_.key != key) {
+ throw Error('Key not found: ' + key);
+ }
+ var removed = this.root_;
+ if (!this.root_.left) {
+ this.root_ = this.root_.right;
+ } else {
+ var right = this.root_.right;
+ this.root_ = this.root_.left;
+ // Splay to make sure that the new root has an empty right child.
+ this.splay_(key);
+ // Insert the original right child as the right child of the new
+ // root.
+ this.root_.right = right;
+ }
+ return removed;
+};
+
+
+/**
+ * Returns the node having the specified key or null if the tree doesn't contain
+ * a node with the specified key.
+ *
+ * @param {number} key Key to find in the tree.
+ * @return {SplayTree.Node} Node having the specified key.
+ */
+SplayTree.prototype.find = function(key) {
+ if (this.isEmpty()) {
+ return null;
+ }
+ this.splay_(key);
+ return this.root_.key == key ? this.root_ : null;
+};
+
+
+/**
+ * @return {SplayTree.Node} Node having the maximum key value.
+ */
+SplayTree.prototype.findMax = function(opt_startNode) {
+ if (this.isEmpty()) {
+ return null;
+ }
+ var current = opt_startNode || this.root_;
+ while (current.right) {
+ current = current.right;
+ }
+ return current;
+};
+
+
+/**
+ * @return {SplayTree.Node} Node having the maximum key value that
+ * is less than the specified key value.
+ */
+SplayTree.prototype.findGreatestLessThan = function(key) {
+ if (this.isEmpty()) {
+ return null;
+ }
+ // Splay on the key to move the node with the given key or the last
+ // node on the search path to the top of the tree.
+ this.splay_(key);
+ // Now the result is either the root node or the greatest node in
+ // the left subtree.
+ if (this.root_.key < key) {
+ return this.root_;
+ } else if (this.root_.left) {
+ return this.findMax(this.root_.left);
+ } else {
+ return null;
+ }
+};
+
+
+/**
+ * @return {Array<*>} An array containing all the keys of tree's nodes.
+ */
+SplayTree.prototype.exportKeys = function() {
+ var result = [];
+ if (!this.isEmpty()) {
+ this.root_.traverse_(function(node) { result.push(node.key); });
+ }
+ return result;
+};
+
+
+/**
+ * Perform the splay operation for the given key. Moves the node with
+ * the given key to the top of the tree. If no node has the given
+ * key, the last node on the search path is moved to the top of the
+ * tree. This is the simplified top-down splaying algorithm from:
+ * "Self-adjusting Binary Search Trees" by Sleator and Tarjan
+ *
+ * @param {number} key Key to splay the tree on.
+ * @private
+ */
+SplayTree.prototype.splay_ = function(key) {
+ if (this.isEmpty()) {
+ return;
+ }
+ // Create a dummy node. The use of the dummy node is a bit
+ // counter-intuitive: The right child of the dummy node will hold
+ // the L tree of the algorithm. The left child of the dummy node
+ // will hold the R tree of the algorithm. Using a dummy node, left
+ // and right will always be nodes and we avoid special cases.
+ var dummy, left, right;
+ dummy = left = right = new SplayTree.Node(null, null);
+ var current = this.root_;
+ while (true) {
+ if (key < current.key) {
+ if (!current.left) {
+ break;
+ }
+ if (key < current.left.key) {
+ // Rotate right.
+ var tmp = current.left;
+ current.left = tmp.right;
+ tmp.right = current;
+ current = tmp;
+ if (!current.left) {
+ break;
+ }
+ }
+ // Link right.
+ right.left = current;
+ right = current;
+ current = current.left;
+ } else if (key > current.key) {
+ if (!current.right) {
+ break;
+ }
+ if (key > current.right.key) {
+ // Rotate left.
+ var tmp = current.right;
+ current.right = tmp.left;
+ tmp.left = current;
+ current = tmp;
+ if (!current.right) {
+ break;
+ }
+ }
+ // Link left.
+ left.right = current;
+ left = current;
+ current = current.right;
+ } else {
+ break;
+ }
+ }
+ // Assemble.
+ left.right = current.left;
+ right.left = current.right;
+ current.left = dummy.right;
+ current.right = dummy.left;
+ this.root_ = current;
+};
+
+
+/**
+ * Constructs a Splay tree node.
+ *
+ * @param {number} key Key.
+ * @param {*} value Value.
+ */
+SplayTree.Node = function(key, value) {
+ this.key = key;
+ this.value = value;
+};
+
+
+/**
+ * @type {SplayTree.Node}
+ */
+SplayTree.Node.prototype.left = null;
+
+
+/**
+ * @type {SplayTree.Node}
+ */
+SplayTree.Node.prototype.right = null;
+
+
+/**
+ * Performs an ordered traversal of the subtree starting at
+ * this SplayTree.Node.
+ *
+ * @param {function(SplayTree.Node)} f Visitor function.
+ * @private
+ */
+SplayTree.Node.prototype.traverse_ = function(f) {
+ var current = this;
+ while (current) {
+ var left = current.left;
+ if (left) left.traverse_(f);
+ f(current);
+ current = current.right;
+ }
+};
+
+SplaySetup();
+SplayRun();
+SplayTearDown();
diff --git a/PerformanceTests/SunSpider/xcopy.excludes b/PerformanceTests/SunSpider/xcopy.excludes
new file mode 100644
index 000000000..f4811e823
--- /dev/null
+++ b/PerformanceTests/SunSpider/xcopy.excludes
@@ -0,0 +1,3 @@
+\.svn\
+.rc
+.aps
diff --git a/PerformanceTests/XSSAuditor/large-post-many-events.html b/PerformanceTests/XSSAuditor/large-post-many-events.html
new file mode 100644
index 000000000..c26181f64
--- /dev/null
+++ b/PerformanceTests/XSSAuditor/large-post-many-events.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
+<title>WebKit test - use for detect speed differences when submitting the form</title>
+<style type="text/css">
+BODY { background-color: #F0F0F0 }
+
+BODY, TABLE, TD {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+}
+.funcDesc { background-color:#9F8E1C; color:#000000; /* background-color:#ffffbb; */ }
+.t { font-family:courier; }
+.tro { font-family:courier; background-color: #EBEBE4; }
+.ro { background-color: #EBEBE4; }
+#tableHeaders th { background-color:#F0F0F0; }
+#tableRowstd { background-color:#F0F0F0; }
+</style>
+<script>
+window.onload = function() {
+ document.getElementById("score").textContent = window.performance.timing.domContentLoadedEventStart - window.performance.timing.responseStart;
+}
+</script>
+</head>
+<body>
+
+<form id="frmName" name="frmName" method="post" action="large-post-many-events.html">
+
+<div style="margin:0 auto; width:600px; background-color:#bbb; padding:20px;">
+Score (smaller is better): <span id="score">Running...</span>
+</div>
+
+<input type="submit" value="Request Page Again">
+<br><br>
+
+
+<div id="divMainTable" style="padding:0; border:0; overflow:auto; height:450px;">
+<table id="tableRows" border="0" cellpadding="3" cellspacing="1" style="background-color:black; width:;">
+
+
+<script>
+for (var i=0; i < 400; ++i) {
+ document.write("<tr><td><a href=\"changed-name.php?ID=" + i + "\" target=\"_blank\">ChangedName, ChangedName</a></td> <td width=\"80px\">22331133</td> <td>06.02.2010</td> <td ondblclick=\"tR('" + i + "_1865_5721','')\">&nbsp;&nbsp;22:15&nbsp;&nbsp;</td> <td><input type=\"text\" name=\"frmI1_" + i + "_1865_5721\" onblur=\"chkT(this);\" size=\"5\" class=\"t\" value=\"00:00\"></td> <td><input type=\"text\" name=\"frmU1_" + i + "_1865_5721\" onblur=\"chkT(this);\" size=\"5\" class=\"t\" value=\"00:00\"></td> <td><input type=\"text\" name=\"frmI2_" + i + "_1865_5721\" onblur=\"chkT(this);\" size=\"5\" class=\"t\" value=\"00:00\"></td> <td><input type=\"text\" name=\"frmU2_" + i + "_1865_5721\" onblur=\"chkT(this);\" size=\"5\" class=\"t\" value=\"00:00\"></td> <td><input type=\"text\" name=\"frmLU_" + i + "_1865_5721\" onblur=\"chkT(this);\" size=\"5\" class=\"t\" value=\"00:00\"></td> <td> <select name=\"frmOK_" + i + "_1865_5721\" onblur=\"checkFlag(this)\" onchange=\"tOK(this)\" > <option value=\"0\" selected=\"selected\">Nei</option> <option value=\"1\">Ja</option></td> </select> <td><a href=\"changed-another-name.php?ID=1865\">Changed name</a></td> <td>Changed name</td> <td>&nbsp;&nbsp;&nbsp;BLS&nbsp;&nbsp;&nbsp;</td> <td align=\"center\">&nbsp;&nbsp;&nbsp;201&nbsp;&nbsp;&nbsp;</td> <td><div style=\"display:none;\"><input type=\"checkbox\" id=\"funcFlag_" + i + "_1865_5721\" value=\"\" name=\"funcFlag[]\"></div> <select name=\"frmUarr_" + i + "_1865_5721\" onchange=\"chkVFunc(this)\" style=\"background-color:#FFFFFF;\"> <option value=\"5719\" style=\"background-color:#FFFFFF;\">Changed1 (22:15 - 05:00)</option> <option value=\"5720\" style=\"background-color:#FFFFFF;\">Changed2 (22:15 - 05:00)</option> <option value=\"5721\" selected=\"selected\" style=\"background-color:#FFFFFF;\">Changed3 (22:15 - 05:00)</option> <option value=\"5787\" style=\"background-color:#FF8800\">Changed4 (22:15 - 22:30)</option> <option class=\"funcDesc\" value=\"0\" disabled=\"disabled\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Changed text here as well</option> <option class=\"funcDesc\" value=\"0\" disabled=\"disabled\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Changed text here also</option> </select><input type=\"hidden\" id=\"frmUarr_" + i + "_1865_5721_h\" value=\"5721\"></td> <td align=\"center\" > <select name=\"frmJobb_" + i + "_1865_5721\" title=\"JA\" onchange=\"checkFlag(this)\"> <option value=\"1\">Chan</option> <option value=\"2\" disabled=\"disabled\">Chan</option> <option value=\"3\" selected=\"selected\">Chan</option> </select></td> <td><input class=\"ro\" type=\"text\" readonly=\"readonly\" onblur=\"checkFlag(this)\" name=\"frmKommArb_" + i + "_1865_5721\" value=\"\" size=\"20\"></td> <td><input class=\"ro\" type=\"text\" readonly=\"readonly\" onblur=\"checkFlag(this)\" name=\"frmKommKru_" + i + "_1865_5721\" value=\"\" size=\"20\"></td> <td><input type=\"text\" onblur=\"checkFlag(this)\" name=\"frmKomm_" + i + "_1865_5721\" value=\"\" size=\"20\"></td> <td align=\"center\" style=\"\"><input type=\"checkbox\" onclick=\"checkUncheckOpptatt(this,this.value)\" id=\"O_" + i + "_1\" name=\"frmAnsOppt[]\" value=\"" + i + "_2010-02-06\" style=\"margin-left:20px; margin-right:20px;\"></td> </tr>");
+}
+</script>
+</table>
+</form>
+</div>
+</body>
+</html>
diff --git a/PerformanceTests/XSSAuditor/large-post-many-inline-scripts-and-events.html b/PerformanceTests/XSSAuditor/large-post-many-inline-scripts-and-events.html
new file mode 100644
index 000000000..9eaa93fba
--- /dev/null
+++ b/PerformanceTests/XSSAuditor/large-post-many-inline-scripts-and-events.html
@@ -0,0 +1,10 @@
+<form action="resources/target-for-large-post-many-inline-scripts-and-events.html" method=POST>
+<input name="a" type="hidden">
+<input type=submit>
+</form>
+<script>
+var val = "";
+for (i = 0; i < 200000; ++i)
+ val += Math.random();
+document.getElementsByName("a")[0].value = val;
+</script>
diff --git a/PerformanceTests/XSSAuditor/resources/target-for-large-post-many-inline-scripts-and-events.html b/PerformanceTests/XSSAuditor/resources/target-for-large-post-many-inline-scripts-and-events.html
new file mode 100644
index 000000000..37ada235d
--- /dev/null
+++ b/PerformanceTests/XSSAuditor/resources/target-for-large-post-many-inline-scripts-and-events.html
@@ -0,0 +1,1287 @@
+<script>
+window.onload = function() {
+ document.getElementById("score").textContent = window.performance.timing.domContentLoadedEventStart - window.performance.timing.responseStart;
+}
+</script>
+Score (smaller is better): <span id="score"></span><br>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<a href="javascript:return '0'"></a>
+.<img onclick="alert('0')">
+<script src="data:text/plain,'%30'"></script>
+<script>\x30</script>
+<br>Done.
diff --git a/PerformanceTests/inspector/console-300-lines.html b/PerformanceTests/inspector/console-300-lines.html
new file mode 100644
index 000000000..6e54ca368
--- /dev/null
+++ b/PerformanceTests/inspector/console-300-lines.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+<script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
+<script src="performance-test.js"></script>
+<script>
+
+function makeConsoleEvents(count)
+{
+ for (var i = 0; i < count; ++i)
+ console.log("Console log: " + i);
+}
+
+function test()
+{
+ var message = {
+ "method":"Console.messageAdded",
+ "params":{
+ "message":{
+ "source":"console-api",
+ "level":"log",
+ "text":"Console log message",
+ "type":"log",
+ "line":10,
+ "url":"file://./console-300-lines.html",
+ "repeatCount":1,
+ "parameters":[{
+ "type":"string",
+ "value":"Console log: 42"
+ }],
+ "stackTrace":[
+ {
+ "functionName":"makeConsoleEvents",
+ "url":"file://./console-300-lines.html",
+ "lineNumber":10,
+ "columnNumber":17
+ },
+ {
+ "functionName":"",
+ "url":"file://./console-300-lines.html",
+ "lineNumber":37,
+ "columnNumber":9
+ }
+ ]
+ }
+ }
+ };
+
+ WebInspector.showPanel("console");
+
+ function test(timer)
+ {
+ WebInspector.console.clearMessages();
+ InspectorTest.addSniffer(WebInspector.consoleView.promptElement, "scrollIntoView", finish);
+
+ var cookie = timer.start("console-300-lines");
+ for (var i = 0; i < 300; ++i)
+ InspectorBackend.dispatch(message);
+
+ function finish()
+ {
+ timer.finish(cookie);
+ timer.done("panel-update");
+ }
+ }
+
+ InspectorTest.runPerformanceTest(test, 10000);
+}
+
+if (!window.testRunner) {
+ setTimeout(function() {
+ makeConsoleEvents(300);
+ }, 3000);
+}
+
+</script>
+</head>
+
+<body onload="runTest()">
+</body>
+</html>
diff --git a/PerformanceTests/inspector/first-open-elements.html b/PerformanceTests/inspector/first-open-elements.html
new file mode 100644
index 000000000..6924e8d54
--- /dev/null
+++ b/PerformanceTests/inspector/first-open-elements.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+<script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
+<script src="performance-test.js"></script>
+<script>
+
+function test()
+{
+ WebInspector.showPanel("audits");
+
+
+ function test(timer)
+ {
+ WebInspector.showPanel("audits");
+ WebInspector.domAgent._setDocument(null);
+
+ var showPanelTimerCookie = timer.start("first-open-elements");
+ InspectorTest.addBackendResponseSniffer(DOMAgent, "requestChildNodes", function() {
+ timer.finish(showPanelTimerCookie);
+ timer.done("first-open");
+ });
+ WebInspector.showPanel("elements");
+ }
+
+ InspectorTest.runPerformanceTest(test, 5000);
+}
+
+</script>
+</head>
+
+<body onload="runTest()">
+
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+
+</body>
+</body>
+</html>
diff --git a/PerformanceTests/inspector/first-open-resources.html b/PerformanceTests/inspector/first-open-resources.html
new file mode 100644
index 000000000..cb96af6e6
--- /dev/null
+++ b/PerformanceTests/inspector/first-open-resources.html
@@ -0,0 +1,44 @@
+<html>
+<head>
+<script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
+<script src="performance-test.js"></script>
+<script>
+
+function test()
+{
+ WebInspector.showPanel("resources");
+ WebInspector.settings.resourcesLastSelectedItem.set(WebInspector.inspectedPageURL);
+
+ function test(timer)
+ {
+ WebInspector.showPanel("audits");
+ var resources = WebInspector.panels.resources;
+ resources.reset();
+ var treeModel = WebInspector.resourceTreeModel;
+ treeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameAdded, resources._frameAdded, resources);
+ treeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated, resources._frameNavigated, resources);
+ treeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, resources._frameDetached, resources);
+ treeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, resources._resourceAdded, resources);
+ resources._initialized = false;
+
+ InspectorTest.addBackendResponseSniffer(ApplicationCacheAgent, "getFramesWithManifests", finish);
+ var showPanelTimerCookie = timer.start("first-open-resources");
+ treeModel._fetchResourceTree();
+ WebInspector.showPanel("resources");
+
+ function finish()
+ {
+ timer.finish(showPanelTimerCookie);
+ timer.done("first-open");
+ }
+ }
+ InspectorTest.runPerformanceTest(test, 5000);
+}
+
+</script>
+</head>
+<body onload="runTest()">
+</body>
+</body>
+</html>
+
diff --git a/PerformanceTests/inspector/first-open-scripts.html.broken b/PerformanceTests/inspector/first-open-scripts.html.broken
new file mode 100644
index 000000000..357dd3d35
--- /dev/null
+++ b/PerformanceTests/inspector/first-open-scripts.html.broken
@@ -0,0 +1,39 @@
+<html>
+<head>
+<script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
+<script src="performance-test.js"></script>
+<script>
+
+function test()
+{
+ WebInspector.showPanel("scripts");
+ var files = WebInspector.panels.scripts._fileSelector._filesSelectElement;
+ for (var i = 0; i < files.options.length; ++i) {
+ if (files.options[i].value.indexOf("inspector-test.js") !== -1) {
+ files.selectedIndex = i;
+ WebInspector.panels.scripts._fileSelector._filesSelectChanged();
+ break;
+ }
+ }
+
+ function test(timer)
+ {
+ WebInspector.showPanel("audits");
+ var showPanelTimerCookie = timer.start("first-open-scripts");
+ WebInspector.showPanel("scripts");
+ var count = WebInspector.panels.scripts.visibleView._textEditor._mainPanel._textChunks.length;
+ WebInspector.panels.scripts.visibleView._textEditor._mainPanel._expandChunks(0, count);
+ WebInspector.panels.scripts.visibleView._textEditor._mainPanel._paintScheduledLines();
+ timer.finish(showPanelTimerCookie);
+ timer.done("first-open");
+ }
+
+ InspectorTest.runAfterPendingDispatches(InspectorTest.runPerformanceTest.bind(null, test, 5000));
+}
+
+</script>
+</head>
+<body onload="runTest()">
+</body>
+</html>
+
diff --git a/PerformanceTests/inspector/heap-snapshot-advanced.html b/PerformanceTests/inspector/heap-snapshot-advanced.html
new file mode 100644
index 000000000..58b48f019
--- /dev/null
+++ b/PerformanceTests/inspector/heap-snapshot-advanced.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+ <script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
+ <script src="../../LayoutTests/inspector/profiler/heap-snapshot-test.js"></script>
+ <script src="performance-test.js"></script>
+ <script src="heap-snapshot-performance-test.js"></script>
+<script>
+
+function makeLinkedList(n)
+{
+ var node = {};
+ while (--n)
+ node = { next: node };
+ return node;
+}
+
+function makeDoubleLinkedList(n)
+{
+ var tail = {};
+ var head = tail;
+ while (--n) {
+ head = { next: head };
+ head.next.prev = head;
+ }
+ return { head: head, tail: tail };
+}
+
+var list = makeLinkedList(20000);
+var double_list = makeDoubleLinkedList(5000);
+
+</script>
+</head>
+<body onload="runTest()">
+</body>
+</html>
diff --git a/PerformanceTests/inspector/heap-snapshot-performance-test.js b/PerformanceTests/inspector/heap-snapshot-performance-test.js
new file mode 100644
index 000000000..642c76d0b
--- /dev/null
+++ b/PerformanceTests/inspector/heap-snapshot-performance-test.js
@@ -0,0 +1,74 @@
+function test()
+{
+ WebInspector.showPanel("profiles");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_buildEdgeIndexes");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_buildRetainers");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_buildDominatedNodes");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_calculateFlags");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_buildAggregates");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_calculateClassesRetainedSize");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_calculateObjectToWindowDistance");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_calculateRetainedSizes");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_markDetachedDOMTreeNodes");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_markQueriableHeapObjects");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_markPageOwnedNodes");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_splitNodesAndContainmentEdges");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_buildPostOrderIndex");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshot.prototype, "_buildDominatorTree");
+ InspectorTest.measureFunction(WebInspector.HeapSnapshotConstructorsDataGrid.prototype, "_aggregatesReceived");
+
+ function performanceTest(timer)
+ {
+ var transferTimerCookie;
+ var showTimerCookie;
+ var changeViewTimerCookie;
+ var clearTimerCookie;
+
+ var testName = /([^\/]+)\.html$/.exec(WebInspector.inspectedPageURL)[1];
+ var fullTimerCookie = timer.start("full-summary-snapshot-time");
+ var backendTimerCookie = timer.start("take-snapshot");
+ ProfilerAgent.takeHeapSnapshot(step0);
+
+ function step0()
+ {
+ timer.finish(backendTimerCookie);
+ transferTimerCookie = timer.start("transfer-snapshot");
+ var profiles = WebInspector.panels.profiles.getProfiles("HEAP");
+ WebInspector.panels.profiles.showProfile(profiles[profiles.length - 1]);
+ InspectorTest.addSniffer(WebInspector.panels.profiles, "_finishHeapSnapshot", step1);
+ }
+
+ function step1(uid)
+ {
+ timer.finish(transferTimerCookie);
+ showTimerCookie = timer.start("show-snapshot");
+ var panel = WebInspector.panels.profiles;
+ var profile = panel._profilesIdMap[panel._makeKey(uid, WebInspector.HeapSnapshotProfileType.TypeId)];
+ profile.load(step2); // Add load callback.
+ }
+
+ function step2()
+ {
+ timer.finish(showTimerCookie);
+ changeViewTimerCookie = timer.start("switch-to-containment-view");
+ InspectorTest.switchToView("Containment", cleanup);
+ }
+
+ function cleanup()
+ {
+ timer.finish(changeViewTimerCookie);
+ timer.finish(fullTimerCookie);
+ clearTimerCookie = timer.start("clear-snapshot");
+ ProfilerAgent.clearProfiles(done);
+ WebInspector.panels.profiles._reset();
+ }
+
+ function done()
+ {
+ timer.finish(clearTimerCookie);
+ timer.done(testName);
+ }
+ }
+
+ InspectorTest.runPerformanceTest(performanceTest, 60000);
+}
diff --git a/PerformanceTests/inspector/heap-snapshot.html b/PerformanceTests/inspector/heap-snapshot.html
new file mode 100644
index 000000000..0fabb2195
--- /dev/null
+++ b/PerformanceTests/inspector/heap-snapshot.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+ <script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
+ <script src="../../LayoutTests/inspector/profiler/heap-snapshot-test.js"></script>
+ <script src="performance-test.js"></script>
+ <script src="heap-snapshot-performance-test.js"></script>
+<script>
+
+var counter = 0;
+
+function makeObjectsTree(deep)
+{
+ var node = {};
+ node.text = "some text " + counter;
+ if (deep === 0)
+ return node;
+ for (var i = 0; i < 2; ++i)
+ node[counter++] = makeObjectsTree(deep - 1);
+ return node;
+}
+
+function makeObjectsTree2(name, deep)
+{
+ window[name] = makeObjectsTree(deep);
+}
+
+makeObjectsTree2("t", 16);
+
+</script>
+</head>
+<body onload="runTest()">
+</body>
+</html>
diff --git a/PerformanceTests/inspector/inspector-startup-time.html b/PerformanceTests/inspector/inspector-startup-time.html
new file mode 100644
index 000000000..43e9d0b67
--- /dev/null
+++ b/PerformanceTests/inspector/inspector-startup-time.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
+<script src="performance-test.js"></script>
+<script>
+
+function onload()
+{
+ testRunner.waitUntilDone();
+ times = [];
+ startTime = Date.now();
+ testStartTime = startTime;
+ runTest();
+}
+
+function inspectorIsReady()
+{
+ times.push(Date.now() - startTime);
+ if (Date.now() - testStartTime > 20000) {
+ testRunner.evaluateInWebInspector(2, "InspectorTest.dumpTestStats('inspector-startup-time', 'time', " + JSON.stringify(times) + ", 'ms')")
+ testRunner.evaluateInWebInspector(3, "(InspectorTest.completeTest())")
+ return;
+ }
+ testRunner.closeWebInspector();
+ startTime = Date.now();
+ testRunner.showWebInspector();
+ runTest();
+}
+
+function test()
+{
+ WebInspector.domAgent._setDocument(null);
+
+ InspectorTest.addBackendResponseSniffer(DOMAgent, "requestChildNodes", function() {
+ WebInspector.settings.lastActivePanel.set("audits");
+ InspectorTest.evaluateInPage("inspectorIsReady()");
+ });
+ WebInspector.showPanel("elements");
+}
+
+</script>
+
+</head>
+<body onload="onload()">
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+</body>
+</html>
diff --git a/PerformanceTests/inspector/native-memory-snapshot.html b/PerformanceTests/inspector/native-memory-snapshot.html
new file mode 100644
index 000000000..38653a742
--- /dev/null
+++ b/PerformanceTests/inspector/native-memory-snapshot.html
@@ -0,0 +1,76 @@
+<html>
+<head>
+ <style type="text/css">
+ span {
+ color:red;
+ width: 100px;
+ height: 20px;
+ }
+ div {
+ color:blue;
+ width: 50px;
+ height: 10px;
+ }
+ </style>
+ <script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
+ <script src="performance-test.js"></script>
+<script>
+
+function test()
+{
+ function performanceTest(timer)
+ {
+ var testName = /([^\/]+)\.html$/.exec(WebInspector.inspectedPageURL)[1];
+ var takeTimerCookie = timer.start("take");
+ MemoryAgent.getProcessMemoryDistribution(dump);
+
+ function dump(e, data)
+ {
+ timer.finish(takeTimerCookie);
+ function reportSize(data)
+ {
+ timer.reportSize(data.name, data.size);
+ if (data.children) {
+ for (var i = 0; i < data.children.length; ++i)
+ reportSize(data.children[i]);
+ }
+ }
+ reportSize(data);
+ var knownSize = 0;
+ for (var i = 0; i < data.children.length; ++i)
+ knownSize += data.children[i].size;
+ timer.reportSize("Unknown", data.size - knownSize);
+ timer.done(testName);
+ }
+ }
+
+ InspectorTest.runPerformanceTest(performanceTest, 2000);
+}
+
+function createDOMTree(elementsCount)
+{
+ var root = document.getElementById("testTreeRoot");
+
+ for (var i = 0; i < elementsCount; ++i) {
+ var span = document.createElement("span");
+ span.id = "span_" + i;
+ span.style.width = "10px";
+ root.appendChild(span);
+ }
+
+ for (var i = 0; i < elementsCount; ++i)
+ root.appendChild(document.createElement("div"));
+
+ for (var i = 0; i < elementsCount; ++i)
+ root.appendChild(document.createElement("a"));
+}
+
+setTimeout(createDOMTree.bind(null,1000), 0);
+
+</script>
+</head>
+<body onload="runTest()">
+ <div id="testTreeRoot">
+ </div>
+</body>
+</html>
diff --git a/PerformanceTests/inspector/network-append-30-requests.html.broken b/PerformanceTests/inspector/network-append-30-requests.html.broken
new file mode 100644
index 000000000..357cbc97a
--- /dev/null
+++ b/PerformanceTests/inspector/network-append-30-requests.html.broken
@@ -0,0 +1,52 @@
+<html>
+<head>
+<script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
+<script src="performance-test.js"></script>
+<script>
+
+function makeXHRRequests(count)
+{
+ for (var i = 0; i < count; ++i) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("GET", document.URL, true);
+ xhr.send();
+ }
+}
+
+function test()
+{
+ WebInspector.showPanel("network");
+
+ var originalRefresh = InspectorTest.override(WebInspector.panels.network._networkLogView, "refresh", timeTrackingRefresh, true);
+ WebInspector.panels.network._networkLogView._defaultRefreshDelay = 30;
+ function timeTrackingRefresh()
+ {
+ var cookie = InspectorTest.timer.start("network-append-30-requests");
+ originalRefresh.call(this);
+ InspectorTest.timer.finish(cookie);
+ WebInspector.panels.network._networkLogView._reset();
+ // In real life this array is cleaning up at navigation event.
+ WebInspector.networkLog._resources = [];
+ InspectorTest.timer.done("panel-update");
+ }
+
+ function test(timer)
+ {
+ InspectorTest.evaluateInPage("makeXHRRequests(30)");
+ }
+
+ InspectorTest.runPerformanceTest(test, 15000);
+}
+
+if (!window.testRunner) {
+ setTimeout(function() {
+ makeXHRRequests(30);
+ }, 3000);
+}
+
+</script>
+</head>
+
+<body onload="runTest()">
+</body>
+</html>
diff --git a/PerformanceTests/inspector/performance-test.js b/PerformanceTests/inspector/performance-test.js
new file mode 100644
index 000000000..fec1dd301
--- /dev/null
+++ b/PerformanceTests/inspector/performance-test.js
@@ -0,0 +1,155 @@
+var initialize_TimeTracker = function() {
+
+InspectorTest.runPerformanceTest = function(perfTest, executeTime, callback)
+{
+ var Timer = function(test, callback)
+ {
+ this._callback = callback;
+ this._test = test;
+ this._times = {};
+ this._sizes = {};
+ this._testStartTime = new Date();
+ this._heapSizeDeltas = [];
+ this._jsHeapSize = this._getJSHeapSize();
+ }
+
+ Timer.prototype = {
+ start: function(name)
+ {
+ return {name: name, startTime: new Date()};
+ },
+
+ finish: function(cookie)
+ {
+ var endTime = new Date();
+ if (!this._times[cookie.name])
+ this._times[cookie.name] = [];
+ this._times[cookie.name].push(endTime - cookie.startTime);
+ },
+
+ reportSize: function(name, size)
+ {
+ if (!this._sizes[name])
+ this._sizes[name] = [];
+ this._sizes[name].push(size);
+ },
+
+ _getJSHeapSize: function()
+ {
+ if (window.gc) {
+ window.gc();
+ window.gc();
+ }
+ return console.memory.usedJSHeapSize;
+ },
+
+ done: function(groupName)
+ {
+ var newJSHeapSize = this._getJSHeapSize();
+ this._heapSizeDeltas.push(newJSHeapSize - this._jsHeapSize);
+ this._jsHeapSize = newJSHeapSize;
+
+ var time = new Date();
+ if (time - this._testStartTime < executeTime)
+ this._runTest();
+ else {
+ if (this._complete)
+ return;
+ this._complete = true;
+
+ this._dump(groupName);
+ if (this._callback)
+ this._callback();
+ else
+ InspectorTest.completeTest();
+ }
+ },
+
+ _runTest: function()
+ {
+ if (this._guard) {
+ setTimeout(this._runTest.bind(this), 0);
+ return;
+ }
+
+ this._guard = true;
+ var safeTest = InspectorTest.safeWrap(this._test);
+ safeTest(this);
+ this._guard = false;
+ },
+
+ _dump: function(groupName)
+ {
+ for (var testName in this._times)
+ InspectorTest.dumpTestStats(groupName, testName, this._times[testName], "ms");
+
+ for (var testName in this._sizes)
+ InspectorTest.dumpTestStats(groupName, testName, this._sizes[testName], "kB", 1024);
+
+ var url = WebInspector.inspectedPageURL;
+ var regExp = /([^\/]+)\.html/;
+ var matches = regExp.exec(url);
+ InspectorTest.dumpTestStats("heap-delta", matches[1], this._heapSizeDeltas, "kB", 1024);
+ },
+ }
+
+ InspectorTest.timer = new Timer(perfTest, callback);
+ InspectorTest.timer._runTest();
+}
+
+InspectorTest.measureFunction = function(object, functionName)
+{
+ function measure() {
+ var timer = InspectorTest.timer;
+ var cookie;
+ if (timer)
+ cookie = timer.start(functionName);
+ var result = func.apply(this, arguments);
+
+ if (timer)
+ timer.finish(cookie);
+ return result;
+ }
+ var func = object[functionName];
+ object[functionName] = measure;
+}
+
+InspectorTest.mark = function(markerName)
+{
+ var timer = InspectorTest.timer;
+ if (!timer)
+ return;
+
+ if (InspectorTest.lastMarkCookie)
+ timer.finish(InspectorTest.lastMarkCookie);
+
+ InspectorTest.lastMarkCookie = markerName ? timer.start(markerName) : null;
+}
+
+InspectorTest.dumpTestStats = function(groupName, testName, samples, units, divider)
+{
+ divider = divider || 1;
+ var stripNResults = Math.floor(samples.length / 10);
+ samples.sort(function(a, b) { return a - b; });
+ var sum = 0;
+ for (var i = stripNResults; i < samples.length - stripNResults; ++i)
+ sum += samples[i];
+ InspectorTest.addResult("RESULT " + groupName + ': ' + testName + "= " + Math.floor(sum / (samples.length - stripNResults * 2) / divider) + " " + units);
+}
+
+InspectorTest.addBackendResponseSniffer = function(object, methodName, override, opt_sticky)
+{
+ var originalMethod = InspectorTest.override(object, methodName, backendCall, opt_sticky);
+ function backendCall()
+ {
+ var args = Array.prototype.slice.call(arguments);
+ var callback = (args.length && typeof args[args.length - 1] === "function") ? args.pop() : 0;
+ args.push(function() {
+ callback.apply(null, arguments);
+ override.apply(null, arguments);
+ });
+ originalMethod.apply(object, args);
+ }
+}
+
+}
diff --git a/PerformanceTests/inspector/show-panel.html.broken b/PerformanceTests/inspector/show-panel.html.broken
new file mode 100644
index 000000000..b59f0621e
--- /dev/null
+++ b/PerformanceTests/inspector/show-panel.html.broken
@@ -0,0 +1,66 @@
+<html>
+<head>
+<script src="../../LayoutTests/http/tests/inspector/inspector-test.js"></script>
+<script src="performance-test.js"></script>
+<script>
+
+function makeXHRRequests(count)
+{
+ for (var i = 0; i < count; ++i) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("GET", document.URL, true);
+ xhr.send();
+ }
+}
+
+function test()
+{
+ WebInspector.showPanel("scripts");
+ var files = WebInspector.panels.scripts._fileSelector._filesSelectElement;
+ for (var i = 0; i < files.options.length; ++i) {
+ if (files.options[i].value.indexOf("inspector-test.js") !== -1) {
+ files.selectedIndex = i;
+ WebInspector.panels.scripts._fileSelector._filesSelectChanged();
+ break;
+ }
+ }
+
+ WebInspector.showPanel("resources");
+ WebInspector.settings.resourcesLastSelectedItem.set(WebInspector.inspectedPageURL);
+
+ WebInspector.showPanel("network");
+ InspectorTest.evaluateInPage("makeXHRRequests(200)", runTest);
+
+ function runTest()
+ {
+ InspectorTest.runPerformanceTest(perfTest, 10000);
+ }
+
+ function perfTest(timer)
+ {
+ WebInspector.showPanel("audits");
+ for (var panelName in WebInspector.panels) {
+ var timerCookie = timer.start("show-panel-" + panelName);
+ WebInspector.showPanel(panelName);
+ InspectorTest.evaluateInPage("testRunner.display();");
+ timer.finish(timerCookie);
+ }
+ timer.done("panel-switch");
+ }
+}
+</script>
+</head>
+
+<body onload="runTest()">
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
+</body>
+</html>
diff --git a/PerformanceTests/resources/jquery.flot.min.js b/PerformanceTests/resources/jquery.flot.min.js
new file mode 100644
index 000000000..371e168ae
--- /dev/null
+++ b/PerformanceTests/resources/jquery.flot.min.js
@@ -0,0 +1,6 @@
+/* Javascript plotting library for jQuery, v. 0.7.
+ *
+ * Released under the MIT license by IOLA, December 2007.
+ *
+ */
+(function(b){b.color={};b.color.make=function(d,e,g,f){var c={};c.r=d||0;c.g=e||0;c.b=g||0;c.a=f!=null?f:1;c.add=function(h,j){for(var k=0;k<h.length;++k){c[h.charAt(k)]+=j}return c.normalize()};c.scale=function(h,j){for(var k=0;k<h.length;++k){c[h.charAt(k)]*=j}return c.normalize()};c.toString=function(){if(c.a>=1){return"rgb("+[c.r,c.g,c.b].join(",")+")"}else{return"rgba("+[c.r,c.g,c.b,c.a].join(",")+")"}};c.normalize=function(){function h(k,j,l){return j<k?k:(j>l?l:j)}c.r=h(0,parseInt(c.r),255);c.g=h(0,parseInt(c.g),255);c.b=h(0,parseInt(c.b),255);c.a=h(0,c.a,1);return c};c.clone=function(){return b.color.make(c.r,c.b,c.g,c.a)};return c.normalize()};b.color.extract=function(d,e){var c;do{c=d.css(e).toLowerCase();if(c!=""&&c!="transparent"){break}d=d.parent()}while(!b.nodeName(d.get(0),"body"));if(c=="rgba(0, 0, 0, 0)"){c="transparent"}return b.color.parse(c)};b.color.parse=function(c){var d,f=b.color.make;if(d=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c)){return f(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10))}if(d=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c)){return f(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10),parseFloat(d[4]))}if(d=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c)){return f(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55)}if(d=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c)){return f(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55,parseFloat(d[4]))}if(d=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)){return f(parseInt(d[1],16),parseInt(d[2],16),parseInt(d[3],16))}if(d=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)){return f(parseInt(d[1]+d[1],16),parseInt(d[2]+d[2],16),parseInt(d[3]+d[3],16))}var e=b.trim(c).toLowerCase();if(e=="transparent"){return f(255,255,255,0)}else{d=a[e]||[0,0,0];return f(d[0],d[1],d[2])}};var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);(function(c){function b(av,ai,J,af){var Q=[],O={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:0.85},xaxis:{show:null,position:"bottom",mode:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null,twelveHourClock:false},yaxis:{autoscaleMargin:0.02,position:"left"},xaxes:[],yaxes:[],series:{points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left",horizontal:false},shadowSize:3},grid:{show:true,aboveData:false,color:"#545454",backgroundColor:null,borderColor:null,tickColor:null,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},hooks:{}},az=null,ad=null,y=null,H=null,A=null,p=[],aw=[],q={left:0,right:0,top:0,bottom:0},G=0,I=0,h=0,w=0,ak={processOptions:[],processRawData:[],processDatapoints:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},aq=this;aq.setData=aj;aq.setupGrid=t;aq.draw=W;aq.getPlaceholder=function(){return av};aq.getCanvas=function(){return az};aq.getPlotOffset=function(){return q};aq.width=function(){return h};aq.height=function(){return w};aq.offset=function(){var aB=y.offset();aB.left+=q.left;aB.top+=q.top;return aB};aq.getData=function(){return Q};aq.getAxes=function(){var aC={},aB;c.each(p.concat(aw),function(aD,aE){if(aE){aC[aE.direction+(aE.n!=1?aE.n:"")+"axis"]=aE}});return aC};aq.getXAxes=function(){return p};aq.getYAxes=function(){return aw};aq.c2p=C;aq.p2c=ar;aq.getOptions=function(){return O};aq.highlight=x;aq.unhighlight=T;aq.triggerRedrawOverlay=f;aq.pointOffset=function(aB){return{left:parseInt(p[aA(aB,"x")-1].p2c(+aB.x)+q.left),top:parseInt(aw[aA(aB,"y")-1].p2c(+aB.y)+q.top)}};aq.shutdown=ag;aq.resize=function(){B();g(az);g(ad)};aq.hooks=ak;F(aq);Z(J);X();aj(ai);t();W();ah();function an(aD,aB){aB=[aq].concat(aB);for(var aC=0;aC<aD.length;++aC){aD[aC].apply(this,aB)}}function F(){for(var aB=0;aB<af.length;++aB){var aC=af[aB];aC.init(aq);if(aC.options){c.extend(true,O,aC.options)}}}function Z(aC){var aB;c.extend(true,O,aC);if(O.xaxis.color==null){O.xaxis.color=O.grid.color}if(O.yaxis.color==null){O.yaxis.color=O.grid.color}if(O.xaxis.tickColor==null){O.xaxis.tickColor=O.grid.tickColor}if(O.yaxis.tickColor==null){O.yaxis.tickColor=O.grid.tickColor}if(O.grid.borderColor==null){O.grid.borderColor=O.grid.color}if(O.grid.tickColor==null){O.grid.tickColor=c.color.parse(O.grid.color).scale("a",0.22).toString()}for(aB=0;aB<Math.max(1,O.xaxes.length);++aB){O.xaxes[aB]=c.extend(true,{},O.xaxis,O.xaxes[aB])}for(aB=0;aB<Math.max(1,O.yaxes.length);++aB){O.yaxes[aB]=c.extend(true,{},O.yaxis,O.yaxes[aB])}if(O.xaxis.noTicks&&O.xaxis.ticks==null){O.xaxis.ticks=O.xaxis.noTicks}if(O.yaxis.noTicks&&O.yaxis.ticks==null){O.yaxis.ticks=O.yaxis.noTicks}if(O.x2axis){O.xaxes[1]=c.extend(true,{},O.xaxis,O.x2axis);O.xaxes[1].position="top"}if(O.y2axis){O.yaxes[1]=c.extend(true,{},O.yaxis,O.y2axis);O.yaxes[1].position="right"}if(O.grid.coloredAreas){O.grid.markings=O.grid.coloredAreas}if(O.grid.coloredAreasColor){O.grid.markingsColor=O.grid.coloredAreasColor}if(O.lines){c.extend(true,O.series.lines,O.lines)}if(O.points){c.extend(true,O.series.points,O.points)}if(O.bars){c.extend(true,O.series.bars,O.bars)}if(O.shadowSize!=null){O.series.shadowSize=O.shadowSize}for(aB=0;aB<O.xaxes.length;++aB){V(p,aB+1).options=O.xaxes[aB]}for(aB=0;aB<O.yaxes.length;++aB){V(aw,aB+1).options=O.yaxes[aB]}for(var aD in ak){if(O.hooks[aD]&&O.hooks[aD].length){ak[aD]=ak[aD].concat(O.hooks[aD])}}an(ak.processOptions,[O])}function aj(aB){Q=Y(aB);ax();z()}function Y(aE){var aC=[];for(var aB=0;aB<aE.length;++aB){var aD=c.extend(true,{},O.series);if(aE[aB].data!=null){aD.data=aE[aB].data;delete aE[aB].data;c.extend(true,aD,aE[aB]);aE[aB].data=aD.data}else{aD.data=aE[aB]}aC.push(aD)}return aC}function aA(aC,aD){var aB=aC[aD+"axis"];if(typeof aB=="object"){aB=aB.n}if(typeof aB!="number"){aB=1}return aB}function m(){return c.grep(p.concat(aw),function(aB){return aB})}function C(aE){var aC={},aB,aD;for(aB=0;aB<p.length;++aB){aD=p[aB];if(aD&&aD.used){aC["x"+aD.n]=aD.c2p(aE.left)}}for(aB=0;aB<aw.length;++aB){aD=aw[aB];if(aD&&aD.used){aC["y"+aD.n]=aD.c2p(aE.top)}}if(aC.x1!==undefined){aC.x=aC.x1}if(aC.y1!==undefined){aC.y=aC.y1}return aC}function ar(aF){var aD={},aC,aE,aB;for(aC=0;aC<p.length;++aC){aE=p[aC];if(aE&&aE.used){aB="x"+aE.n;if(aF[aB]==null&&aE.n==1){aB="x"}if(aF[aB]!=null){aD.left=aE.p2c(aF[aB]);break}}}for(aC=0;aC<aw.length;++aC){aE=aw[aC];if(aE&&aE.used){aB="y"+aE.n;if(aF[aB]==null&&aE.n==1){aB="y"}if(aF[aB]!=null){aD.top=aE.p2c(aF[aB]);break}}}return aD}function V(aC,aB){if(!aC[aB-1]){aC[aB-1]={n:aB,direction:aC==p?"x":"y",options:c.extend(true,{},aC==p?O.xaxis:O.yaxis)}}return aC[aB-1]}function ax(){var aG;var aM=Q.length,aB=[],aE=[];for(aG=0;aG<Q.length;++aG){var aJ=Q[aG].color;if(aJ!=null){--aM;if(typeof aJ=="number"){aE.push(aJ)}else{aB.push(c.color.parse(Q[aG].color))}}}for(aG=0;aG<aE.length;++aG){aM=Math.max(aM,aE[aG]+1)}var aC=[],aF=0;aG=0;while(aC.length<aM){var aI;if(O.colors.length==aG){aI=c.color.make(100,100,100)}else{aI=c.color.parse(O.colors[aG])}var aD=aF%2==1?-1:1;aI.scale("rgb",1+aD*Math.ceil(aF/2)*0.2);aC.push(aI);++aG;if(aG>=O.colors.length){aG=0;++aF}}var aH=0,aN;for(aG=0;aG<Q.length;++aG){aN=Q[aG];if(aN.color==null){aN.color=aC[aH].toString();++aH}else{if(typeof aN.color=="number"){aN.color=aC[aN.color].toString()}}if(aN.lines.show==null){var aL,aK=true;for(aL in aN){if(aN[aL]&&aN[aL].show){aK=false;break}}if(aK){aN.lines.show=true}}aN.xaxis=V(p,aA(aN,"x"));aN.yaxis=V(aw,aA(aN,"y"))}}function z(){var aO=Number.POSITIVE_INFINITY,aI=Number.NEGATIVE_INFINITY,aB=Number.MAX_VALUE,aU,aS,aR,aN,aD,aJ,aT,aP,aH,aG,aC,a0,aX,aL;function aF(a3,a2,a1){if(a2<a3.datamin&&a2!=-aB){a3.datamin=a2}if(a1>a3.datamax&&a1!=aB){a3.datamax=a1}}c.each(m(),function(a1,a2){a2.datamin=aO;a2.datamax=aI;a2.used=false});for(aU=0;aU<Q.length;++aU){aJ=Q[aU];aJ.datapoints={points:[]};an(ak.processRawData,[aJ,aJ.data,aJ.datapoints])}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];var aZ=aJ.data,aW=aJ.datapoints.format;if(!aW){aW=[];aW.push({x:true,number:true,required:true});aW.push({y:true,number:true,required:true});if(aJ.bars.show||(aJ.lines.show&&aJ.lines.fill)){aW.push({y:true,number:true,required:false,defaultValue:0});if(aJ.bars.horizontal){delete aW[aW.length-1].y;aW[aW.length-1].x=true}}aJ.datapoints.format=aW}if(aJ.datapoints.pointsize!=null){continue}aJ.datapoints.pointsize=aW.length;aP=aJ.datapoints.pointsize;aT=aJ.datapoints.points;insertSteps=aJ.lines.show&&aJ.lines.steps;aJ.xaxis.used=aJ.yaxis.used=true;for(aS=aR=0;aS<aZ.length;++aS,aR+=aP){aL=aZ[aS];var aE=aL==null;if(!aE){for(aN=0;aN<aP;++aN){a0=aL[aN];aX=aW[aN];if(aX){if(aX.number&&a0!=null){a0=+a0;if(isNaN(a0)){a0=null}else{if(a0==Infinity){a0=aB}else{if(a0==-Infinity){a0=-aB}}}}if(a0==null){if(aX.required){aE=true}if(aX.defaultValue!=null){a0=aX.defaultValue}}}aT[aR+aN]=a0}}if(aE){for(aN=0;aN<aP;++aN){a0=aT[aR+aN];if(a0!=null){aX=aW[aN];if(aX.x){aF(aJ.xaxis,a0,a0)}if(aX.y){aF(aJ.yaxis,a0,a0)}}aT[aR+aN]=null}}else{if(insertSteps&&aR>0&&aT[aR-aP]!=null&&aT[aR-aP]!=aT[aR]&&aT[aR-aP+1]!=aT[aR+1]){for(aN=0;aN<aP;++aN){aT[aR+aP+aN]=aT[aR+aN]}aT[aR+1]=aT[aR-aP+1];aR+=aP}}}}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];an(ak.processDatapoints,[aJ,aJ.datapoints])}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];aT=aJ.datapoints.points,aP=aJ.datapoints.pointsize;var aK=aO,aQ=aO,aM=aI,aV=aI;for(aS=0;aS<aT.length;aS+=aP){if(aT[aS]==null){continue}for(aN=0;aN<aP;++aN){a0=aT[aS+aN];aX=aW[aN];if(!aX||a0==aB||a0==-aB){continue}if(aX.x){if(a0<aK){aK=a0}if(a0>aM){aM=a0}}if(aX.y){if(a0<aQ){aQ=a0}if(a0>aV){aV=a0}}}}if(aJ.bars.show){var aY=aJ.bars.align=="left"?0:-aJ.bars.barWidth/2;if(aJ.bars.horizontal){aQ+=aY;aV+=aY+aJ.bars.barWidth}else{aK+=aY;aM+=aY+aJ.bars.barWidth}}aF(aJ.xaxis,aK,aM);aF(aJ.yaxis,aQ,aV)}c.each(m(),function(a1,a2){if(a2.datamin==aO){a2.datamin=null}if(a2.datamax==aI){a2.datamax=null}})}function j(aB,aC){var aD=document.createElement("canvas");aD.className=aC;aD.width=G;aD.height=I;if(!aB){c(aD).css({position:"absolute",left:0,top:0})}c(aD).appendTo(av);if(!aD.getContext){aD=window.G_vmlCanvasManager.initElement(aD)}aD.getContext("2d").save();return aD}function B(){G=av.width();I=av.height();if(G<=0||I<=0){throw"Invalid dimensions for plot, width = "+G+", height = "+I}}function g(aC){if(aC.width!=G){aC.width=G}if(aC.height!=I){aC.height=I}var aB=aC.getContext("2d");aB.restore();aB.save()}function X(){var aC,aB=av.children("canvas.base"),aD=av.children("canvas.overlay");if(aB.length==0||aD==0){av.html("");av.css({padding:0});if(av.css("position")=="static"){av.css("position","relative")}B();az=j(true,"base");ad=j(false,"overlay");aC=false}else{az=aB.get(0);ad=aD.get(0);aC=true}H=az.getContext("2d");A=ad.getContext("2d");y=c([ad,az]);if(aC){av.data("plot").shutdown();aq.resize();A.clearRect(0,0,G,I);y.unbind();av.children().not([az,ad]).remove()}av.data("plot",aq)}function ah(){if(O.grid.hoverable){y.mousemove(aa);y.mouseleave(l)}if(O.grid.clickable){y.click(R)}an(ak.bindEvents,[y])}function ag(){if(M){clearTimeout(M)}y.unbind("mousemove",aa);y.unbind("mouseleave",l);y.unbind("click",R);an(ak.shutdown,[y])}function r(aG){function aC(aH){return aH}var aF,aB,aD=aG.options.transform||aC,aE=aG.options.inverseTransform;if(aG.direction=="x"){aF=aG.scale=h/Math.abs(aD(aG.max)-aD(aG.min));aB=Math.min(aD(aG.max),aD(aG.min))}else{aF=aG.scale=w/Math.abs(aD(aG.max)-aD(aG.min));aF=-aF;aB=Math.max(aD(aG.max),aD(aG.min))}if(aD==aC){aG.p2c=function(aH){return(aH-aB)*aF}}else{aG.p2c=function(aH){return(aD(aH)-aB)*aF}}if(!aE){aG.c2p=function(aH){return aB+aH/aF}}else{aG.c2p=function(aH){return aE(aB+aH/aF)}}}function L(aD){var aB=aD.options,aF,aJ=aD.ticks||[],aI=[],aE,aK=aB.labelWidth,aG=aB.labelHeight,aC;function aH(aM,aL){return c('<div style="position:absolute;top:-10000px;'+aL+'font-size:smaller"><div class="'+aD.direction+"Axis "+aD.direction+aD.n+'Axis">'+aM.join("")+"</div></div>").appendTo(av)}if(aD.direction=="x"){if(aK==null){aK=Math.floor(G/(aJ.length>0?aJ.length:1))}if(aG==null){aI=[];for(aF=0;aF<aJ.length;++aF){aE=aJ[aF].label;if(aE){aI.push('<div class="tickLabel" style="float:left;width:'+aK+'px">'+aE+"</div>")}}if(aI.length>0){aI.push('<div style="clear:left"></div>');aC=aH(aI,"width:10000px;");aG=aC.height();aC.remove()}}}else{if(aK==null||aG==null){for(aF=0;aF<aJ.length;++aF){aE=aJ[aF].label;if(aE){aI.push('<div class="tickLabel">'+aE+"</div>")}}if(aI.length>0){aC=aH(aI,"");if(aK==null){aK=aC.children().width()}if(aG==null){aG=aC.find("div.tickLabel").height()}aC.remove()}}}if(aK==null){aK=0}if(aG==null){aG=0}aD.labelWidth=aK;aD.labelHeight=aG}function au(aD){var aC=aD.labelWidth,aL=aD.labelHeight,aH=aD.options.position,aF=aD.options.tickLength,aG=O.grid.axisMargin,aJ=O.grid.labelMargin,aK=aD.direction=="x"?p:aw,aE;var aB=c.grep(aK,function(aN){return aN&&aN.options.position==aH&&aN.reserveSpace});if(c.inArray(aD,aB)==aB.length-1){aG=0}if(aF==null){aF="full"}var aI=c.grep(aK,function(aN){return aN&&aN.reserveSpace});var aM=c.inArray(aD,aI)==0;if(!aM&&aF=="full"){aF=5}if(!isNaN(+aF)){aJ+=+aF}if(aD.direction=="x"){aL+=aJ;if(aH=="bottom"){q.bottom+=aL+aG;aD.box={top:I-q.bottom,height:aL}}else{aD.box={top:q.top+aG,height:aL};q.top+=aL+aG}}else{aC+=aJ;if(aH=="left"){aD.box={left:q.left+aG,width:aC};q.left+=aC+aG}else{q.right+=aC+aG;aD.box={left:G-q.right,width:aC}}}aD.position=aH;aD.tickLength=aF;aD.box.padding=aJ;aD.innermost=aM}function U(aB){if(aB.direction=="x"){aB.box.left=q.left;aB.box.width=h}else{aB.box.top=q.top;aB.box.height=w}}function t(){var aC,aE=m();c.each(aE,function(aF,aG){aG.show=aG.options.show;if(aG.show==null){aG.show=aG.used}aG.reserveSpace=aG.show||aG.options.reserveSpace;n(aG)});allocatedAxes=c.grep(aE,function(aF){return aF.reserveSpace});q.left=q.right=q.top=q.bottom=0;if(O.grid.show){c.each(allocatedAxes,function(aF,aG){S(aG);P(aG);ap(aG,aG.ticks);L(aG)});for(aC=allocatedAxes.length-1;aC>=0;--aC){au(allocatedAxes[aC])}var aD=O.grid.minBorderMargin;if(aD==null){aD=0;for(aC=0;aC<Q.length;++aC){aD=Math.max(aD,Q[aC].points.radius+Q[aC].points.lineWidth/2)}}for(var aB in q){q[aB]+=O.grid.borderWidth;q[aB]=Math.max(aD,q[aB])}}h=G-q.left-q.right;w=I-q.bottom-q.top;c.each(aE,function(aF,aG){r(aG)});if(O.grid.show){c.each(allocatedAxes,function(aF,aG){U(aG)});k()}o()}function n(aE){var aF=aE.options,aD=+(aF.min!=null?aF.min:aE.datamin),aB=+(aF.max!=null?aF.max:aE.datamax),aH=aB-aD;if(aH==0){var aC=aB==0?1:0.01;if(aF.min==null){aD-=aC}if(aF.max==null||aF.min!=null){aB+=aC}}else{var aG=aF.autoscaleMargin;if(aG!=null){if(aF.min==null){aD-=aH*aG;if(aD<0&&aE.datamin!=null&&aE.datamin>=0){aD=0}}if(aF.max==null){aB+=aH*aG;if(aB>0&&aE.datamax!=null&&aE.datamax<=0){aB=0}}}}aE.min=aD;aE.max=aB}function S(aG){var aM=aG.options;var aH;if(typeof aM.ticks=="number"&&aM.ticks>0){aH=aM.ticks}else{aH=0.3*Math.sqrt(aG.direction=="x"?G:I)}var aT=(aG.max-aG.min)/aH,aO,aB,aN,aR,aS,aQ,aI;if(aM.mode=="time"){var aJ={second:1000,minute:60*1000,hour:60*60*1000,day:24*60*60*1000,month:30*24*60*60*1000,year:365.2425*24*60*60*1000};var aK=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[0.25,"month"],[0.5,"month"],[1,"month"],[2,"month"],[3,"month"],[6,"month"],[1,"year"]];var aC=0;if(aM.minTickSize!=null){if(typeof aM.tickSize=="number"){aC=aM.tickSize}else{aC=aM.minTickSize[0]*aJ[aM.minTickSize[1]]}}for(var aS=0;aS<aK.length-1;++aS){if(aT<(aK[aS][0]*aJ[aK[aS][1]]+aK[aS+1][0]*aJ[aK[aS+1][1]])/2&&aK[aS][0]*aJ[aK[aS][1]]>=aC){break}}aO=aK[aS][0];aN=aK[aS][1];if(aN=="year"){aQ=Math.pow(10,Math.floor(Math.log(aT/aJ.year)/Math.LN10));aI=(aT/aJ.year)/aQ;if(aI<1.5){aO=1}else{if(aI<3){aO=2}else{if(aI<7.5){aO=5}else{aO=10}}}aO*=aQ}aG.tickSize=aM.tickSize||[aO,aN];aB=function(aX){var a2=[],a0=aX.tickSize[0],a3=aX.tickSize[1],a1=new Date(aX.min);var aW=a0*aJ[a3];if(a3=="second"){a1.setUTCSeconds(a(a1.getUTCSeconds(),a0))}if(a3=="minute"){a1.setUTCMinutes(a(a1.getUTCMinutes(),a0))}if(a3=="hour"){a1.setUTCHours(a(a1.getUTCHours(),a0))}if(a3=="month"){a1.setUTCMonth(a(a1.getUTCMonth(),a0))}if(a3=="year"){a1.setUTCFullYear(a(a1.getUTCFullYear(),a0))}a1.setUTCMilliseconds(0);if(aW>=aJ.minute){a1.setUTCSeconds(0)}if(aW>=aJ.hour){a1.setUTCMinutes(0)}if(aW>=aJ.day){a1.setUTCHours(0)}if(aW>=aJ.day*4){a1.setUTCDate(1)}if(aW>=aJ.year){a1.setUTCMonth(0)}var a5=0,a4=Number.NaN,aY;do{aY=a4;a4=a1.getTime();a2.push(a4);if(a3=="month"){if(a0<1){a1.setUTCDate(1);var aV=a1.getTime();a1.setUTCMonth(a1.getUTCMonth()+1);var aZ=a1.getTime();a1.setTime(a4+a5*aJ.hour+(aZ-aV)*a0);a5=a1.getUTCHours();a1.setUTCHours(0)}else{a1.setUTCMonth(a1.getUTCMonth()+a0)}}else{if(a3=="year"){a1.setUTCFullYear(a1.getUTCFullYear()+a0)}else{a1.setTime(a4+aW)}}}while(a4<aX.max&&a4!=aY);return a2};aR=function(aV,aY){var a0=new Date(aV);if(aM.timeformat!=null){return c.plot.formatDate(a0,aM.timeformat,aM.monthNames)}var aW=aY.tickSize[0]*aJ[aY.tickSize[1]];var aX=aY.max-aY.min;var aZ=(aM.twelveHourClock)?" %p":"";if(aW<aJ.minute){fmt="%h:%M:%S"+aZ}else{if(aW<aJ.day){if(aX<2*aJ.day){fmt="%h:%M"+aZ}else{fmt="%b %d %h:%M"+aZ}}else{if(aW<aJ.month){fmt="%b %d"}else{if(aW<aJ.year){if(aX<aJ.year){fmt="%b"}else{fmt="%b %y"}}else{fmt="%y"}}}}return c.plot.formatDate(a0,fmt,aM.monthNames)}}else{var aU=aM.tickDecimals;var aP=-Math.floor(Math.log(aT)/Math.LN10);if(aU!=null&&aP>aU){aP=aU}aQ=Math.pow(10,-aP);aI=aT/aQ;if(aI<1.5){aO=1}else{if(aI<3){aO=2;if(aI>2.25&&(aU==null||aP+1<=aU)){aO=2.5;++aP}}else{if(aI<7.5){aO=5}else{aO=10}}}aO*=aQ;if(aM.minTickSize!=null&&aO<aM.minTickSize){aO=aM.minTickSize}aG.tickDecimals=Math.max(0,aU!=null?aU:aP);aG.tickSize=aM.tickSize||aO;aB=function(aX){var aZ=[];var a0=a(aX.min,aX.tickSize),aW=0,aV=Number.NaN,aY;do{aY=aV;aV=a0+aW*aX.tickSize;aZ.push(aV);++aW}while(aV<aX.max&&aV!=aY);return aZ};aR=function(aV,aW){return aV.toFixed(aW.tickDecimals)}}if(aM.alignTicksWithAxis!=null){var aF=(aG.direction=="x"?p:aw)[aM.alignTicksWithAxis-1];if(aF&&aF.used&&aF!=aG){var aL=aB(aG);if(aL.length>0){if(aM.min==null){aG.min=Math.min(aG.min,aL[0])}if(aM.max==null&&aL.length>1){aG.max=Math.max(aG.max,aL[aL.length-1])}}aB=function(aX){var aY=[],aV,aW;for(aW=0;aW<aF.ticks.length;++aW){aV=(aF.ticks[aW].v-aF.min)/(aF.max-aF.min);aV=aX.min+aV*(aX.max-aX.min);aY.push(aV)}return aY};if(aG.mode!="time"&&aM.tickDecimals==null){var aE=Math.max(0,-Math.floor(Math.log(aT)/Math.LN10)+1),aD=aB(aG);if(!(aD.length>1&&/\..*0$/.test((aD[1]-aD[0]).toFixed(aE)))){aG.tickDecimals=aE}}}}aG.tickGenerator=aB;if(c.isFunction(aM.tickFormatter)){aG.tickFormatter=function(aV,aW){return""+aM.tickFormatter(aV,aW)}}else{aG.tickFormatter=aR}}function P(aF){var aH=aF.options.ticks,aG=[];if(aH==null||(typeof aH=="number"&&aH>0)){aG=aF.tickGenerator(aF)}else{if(aH){if(c.isFunction(aH)){aG=aH({min:aF.min,max:aF.max})}else{aG=aH}}}var aE,aB;aF.ticks=[];for(aE=0;aE<aG.length;++aE){var aC=null;var aD=aG[aE];if(typeof aD=="object"){aB=+aD[0];if(aD.length>1){aC=aD[1]}}else{aB=+aD}if(aC==null){aC=aF.tickFormatter(aB,aF)}if(!isNaN(aB)){aF.ticks.push({v:aB,label:aC})}}}function ap(aB,aC){if(aB.options.autoscaleMargin&&aC.length>0){if(aB.options.min==null){aB.min=Math.min(aB.min,aC[0].v)}if(aB.options.max==null&&aC.length>1){aB.max=Math.max(aB.max,aC[aC.length-1].v)}}}function W(){H.clearRect(0,0,G,I);var aC=O.grid;if(aC.show&&aC.backgroundColor){N()}if(aC.show&&!aC.aboveData){ac()}for(var aB=0;aB<Q.length;++aB){an(ak.drawSeries,[H,Q[aB]]);d(Q[aB])}an(ak.draw,[H]);if(aC.show&&aC.aboveData){ac()}}function D(aB,aI){var aE,aH,aG,aD,aF=m();for(i=0;i<aF.length;++i){aE=aF[i];if(aE.direction==aI){aD=aI+aE.n+"axis";if(!aB[aD]&&aE.n==1){aD=aI+"axis"}if(aB[aD]){aH=aB[aD].from;aG=aB[aD].to;break}}}if(!aB[aD]){aE=aI=="x"?p[0]:aw[0];aH=aB[aI+"1"];aG=aB[aI+"2"]}if(aH!=null&&aG!=null&&aH>aG){var aC=aH;aH=aG;aG=aC}return{from:aH,to:aG,axis:aE}}function N(){H.save();H.translate(q.left,q.top);H.fillStyle=am(O.grid.backgroundColor,w,0,"rgba(255, 255, 255, 0)");H.fillRect(0,0,h,w);H.restore()}function ac(){var aF;H.save();H.translate(q.left,q.top);var aH=O.grid.markings;if(aH){if(c.isFunction(aH)){var aK=aq.getAxes();aK.xmin=aK.xaxis.min;aK.xmax=aK.xaxis.max;aK.ymin=aK.yaxis.min;aK.ymax=aK.yaxis.max;aH=aH(aK)}for(aF=0;aF<aH.length;++aF){var aD=aH[aF],aC=D(aD,"x"),aI=D(aD,"y");if(aC.from==null){aC.from=aC.axis.min}if(aC.to==null){aC.to=aC.axis.max}if(aI.from==null){aI.from=aI.axis.min}if(aI.to==null){aI.to=aI.axis.max}if(aC.to<aC.axis.min||aC.from>aC.axis.max||aI.to<aI.axis.min||aI.from>aI.axis.max){continue}aC.from=Math.max(aC.from,aC.axis.min);aC.to=Math.min(aC.to,aC.axis.max);aI.from=Math.max(aI.from,aI.axis.min);aI.to=Math.min(aI.to,aI.axis.max);if(aC.from==aC.to&&aI.from==aI.to){continue}aC.from=aC.axis.p2c(aC.from);aC.to=aC.axis.p2c(aC.to);aI.from=aI.axis.p2c(aI.from);aI.to=aI.axis.p2c(aI.to);if(aC.from==aC.to||aI.from==aI.to){H.beginPath();H.strokeStyle=aD.color||O.grid.markingsColor;H.lineWidth=aD.lineWidth||O.grid.markingsLineWidth;H.moveTo(aC.from,aI.from);H.lineTo(aC.to,aI.to);H.stroke()}else{H.fillStyle=aD.color||O.grid.markingsColor;H.fillRect(aC.from,aI.to,aC.to-aC.from,aI.from-aI.to)}}}var aK=m(),aM=O.grid.borderWidth;for(var aE=0;aE<aK.length;++aE){var aB=aK[aE],aG=aB.box,aQ=aB.tickLength,aN,aL,aP,aJ;if(!aB.show||aB.ticks.length==0){continue}H.strokeStyle=aB.options.tickColor||c.color.parse(aB.options.color).scale("a",0.22).toString();H.lineWidth=1;if(aB.direction=="x"){aN=0;if(aQ=="full"){aL=(aB.position=="top"?0:w)}else{aL=aG.top-q.top+(aB.position=="top"?aG.height:0)}}else{aL=0;if(aQ=="full"){aN=(aB.position=="left"?0:h)}else{aN=aG.left-q.left+(aB.position=="left"?aG.width:0)}}if(!aB.innermost){H.beginPath();aP=aJ=0;if(aB.direction=="x"){aP=h}else{aJ=w}if(H.lineWidth==1){aN=Math.floor(aN)+0.5;aL=Math.floor(aL)+0.5}H.moveTo(aN,aL);H.lineTo(aN+aP,aL+aJ);H.stroke()}H.beginPath();for(aF=0;aF<aB.ticks.length;++aF){var aO=aB.ticks[aF].v;aP=aJ=0;if(aO<aB.min||aO>aB.max||(aQ=="full"&&aM>0&&(aO==aB.min||aO==aB.max))){continue}if(aB.direction=="x"){aN=aB.p2c(aO);aJ=aQ=="full"?-w:aQ;if(aB.position=="top"){aJ=-aJ}}else{aL=aB.p2c(aO);aP=aQ=="full"?-h:aQ;if(aB.position=="left"){aP=-aP}}if(H.lineWidth==1){if(aB.direction=="x"){aN=Math.floor(aN)+0.5}else{aL=Math.floor(aL)+0.5}}H.moveTo(aN,aL);H.lineTo(aN+aP,aL+aJ)}H.stroke()}if(aM){H.lineWidth=aM;H.strokeStyle=O.grid.borderColor;H.strokeRect(-aM/2,-aM/2,h+aM,w+aM)}H.restore()}function k(){av.find(".tickLabels").remove();var aG=['<div class="tickLabels" style="font-size:smaller">'];var aJ=m();for(var aD=0;aD<aJ.length;++aD){var aC=aJ[aD],aF=aC.box;if(!aC.show){continue}aG.push('<div class="'+aC.direction+"Axis "+aC.direction+aC.n+'Axis" style="color:'+aC.options.color+'">');for(var aE=0;aE<aC.ticks.length;++aE){var aH=aC.ticks[aE];if(!aH.label||aH.v<aC.min||aH.v>aC.max){continue}var aK={},aI;if(aC.direction=="x"){aI="center";aK.left=Math.round(q.left+aC.p2c(aH.v)-aC.labelWidth/2);if(aC.position=="bottom"){aK.top=aF.top+aF.padding}else{aK.bottom=I-(aF.top+aF.height-aF.padding)}}else{aK.top=Math.round(q.top+aC.p2c(aH.v)-aC.labelHeight/2);if(aC.position=="left"){aK.right=G-(aF.left+aF.width-aF.padding);aI="right"}else{aK.left=aF.left+aF.padding;aI="left"}}aK.width=aC.labelWidth;var aB=["position:absolute","text-align:"+aI];for(var aL in aK){aB.push(aL+":"+aK[aL]+"px")}aG.push('<div class="tickLabel" style="'+aB.join(";")+'">'+aH.label+"</div>")}aG.push("</div>")}aG.push("</div>");av.append(aG.join(""))}function d(aB){if(aB.lines.show){at(aB)}if(aB.bars.show){e(aB)}if(aB.points.show){ao(aB)}}function at(aE){function aD(aP,aQ,aI,aU,aT){var aV=aP.points,aJ=aP.pointsize,aN=null,aM=null;H.beginPath();for(var aO=aJ;aO<aV.length;aO+=aJ){var aL=aV[aO-aJ],aS=aV[aO-aJ+1],aK=aV[aO],aR=aV[aO+1];if(aL==null||aK==null){continue}if(aS<=aR&&aS<aT.min){if(aR<aT.min){continue}aL=(aT.min-aS)/(aR-aS)*(aK-aL)+aL;aS=aT.min}else{if(aR<=aS&&aR<aT.min){if(aS<aT.min){continue}aK=(aT.min-aS)/(aR-aS)*(aK-aL)+aL;aR=aT.min}}if(aS>=aR&&aS>aT.max){if(aR>aT.max){continue}aL=(aT.max-aS)/(aR-aS)*(aK-aL)+aL;aS=aT.max}else{if(aR>=aS&&aR>aT.max){if(aS>aT.max){continue}aK=(aT.max-aS)/(aR-aS)*(aK-aL)+aL;aR=aT.max}}if(aL<=aK&&aL<aU.min){if(aK<aU.min){continue}aS=(aU.min-aL)/(aK-aL)*(aR-aS)+aS;aL=aU.min}else{if(aK<=aL&&aK<aU.min){if(aL<aU.min){continue}aR=(aU.min-aL)/(aK-aL)*(aR-aS)+aS;aK=aU.min}}if(aL>=aK&&aL>aU.max){if(aK>aU.max){continue}aS=(aU.max-aL)/(aK-aL)*(aR-aS)+aS;aL=aU.max}else{if(aK>=aL&&aK>aU.max){if(aL>aU.max){continue}aR=(aU.max-aL)/(aK-aL)*(aR-aS)+aS;aK=aU.max}}if(aL!=aN||aS!=aM){H.moveTo(aU.p2c(aL)+aQ,aT.p2c(aS)+aI)}aN=aK;aM=aR;H.lineTo(aU.p2c(aK)+aQ,aT.p2c(aR)+aI)}H.stroke()}function aF(aI,aQ,aP){var aW=aI.points,aV=aI.pointsize,aN=Math.min(Math.max(0,aP.min),aP.max),aX=0,aU,aT=false,aM=1,aL=0,aR=0;while(true){if(aV>0&&aX>aW.length+aV){break}aX+=aV;var aZ=aW[aX-aV],aK=aW[aX-aV+aM],aY=aW[aX],aJ=aW[aX+aM];if(aT){if(aV>0&&aZ!=null&&aY==null){aR=aX;aV=-aV;aM=2;continue}if(aV<0&&aX==aL+aV){H.fill();aT=false;aV=-aV;aM=1;aX=aL=aR+aV;continue}}if(aZ==null||aY==null){continue}if(aZ<=aY&&aZ<aQ.min){if(aY<aQ.min){continue}aK=(aQ.min-aZ)/(aY-aZ)*(aJ-aK)+aK;aZ=aQ.min}else{if(aY<=aZ&&aY<aQ.min){if(aZ<aQ.min){continue}aJ=(aQ.min-aZ)/(aY-aZ)*(aJ-aK)+aK;aY=aQ.min}}if(aZ>=aY&&aZ>aQ.max){if(aY>aQ.max){continue}aK=(aQ.max-aZ)/(aY-aZ)*(aJ-aK)+aK;aZ=aQ.max}else{if(aY>=aZ&&aY>aQ.max){if(aZ>aQ.max){continue}aJ=(aQ.max-aZ)/(aY-aZ)*(aJ-aK)+aK;aY=aQ.max}}if(!aT){H.beginPath();H.moveTo(aQ.p2c(aZ),aP.p2c(aN));aT=true}if(aK>=aP.max&&aJ>=aP.max){H.lineTo(aQ.p2c(aZ),aP.p2c(aP.max));H.lineTo(aQ.p2c(aY),aP.p2c(aP.max));continue}else{if(aK<=aP.min&&aJ<=aP.min){H.lineTo(aQ.p2c(aZ),aP.p2c(aP.min));H.lineTo(aQ.p2c(aY),aP.p2c(aP.min));continue}}var aO=aZ,aS=aY;if(aK<=aJ&&aK<aP.min&&aJ>=aP.min){aZ=(aP.min-aK)/(aJ-aK)*(aY-aZ)+aZ;aK=aP.min}else{if(aJ<=aK&&aJ<aP.min&&aK>=aP.min){aY=(aP.min-aK)/(aJ-aK)*(aY-aZ)+aZ;aJ=aP.min}}if(aK>=aJ&&aK>aP.max&&aJ<=aP.max){aZ=(aP.max-aK)/(aJ-aK)*(aY-aZ)+aZ;aK=aP.max}else{if(aJ>=aK&&aJ>aP.max&&aK<=aP.max){aY=(aP.max-aK)/(aJ-aK)*(aY-aZ)+aZ;aJ=aP.max}}if(aZ!=aO){H.lineTo(aQ.p2c(aO),aP.p2c(aK))}H.lineTo(aQ.p2c(aZ),aP.p2c(aK));H.lineTo(aQ.p2c(aY),aP.p2c(aJ));if(aY!=aS){H.lineTo(aQ.p2c(aY),aP.p2c(aJ));H.lineTo(aQ.p2c(aS),aP.p2c(aJ))}}}H.save();H.translate(q.left,q.top);H.lineJoin="round";var aG=aE.lines.lineWidth,aB=aE.shadowSize;if(aG>0&&aB>0){H.lineWidth=aB;H.strokeStyle="rgba(0,0,0,0.1)";var aH=Math.PI/18;aD(aE.datapoints,Math.sin(aH)*(aG/2+aB/2),Math.cos(aH)*(aG/2+aB/2),aE.xaxis,aE.yaxis);H.lineWidth=aB/2;aD(aE.datapoints,Math.sin(aH)*(aG/2+aB/4),Math.cos(aH)*(aG/2+aB/4),aE.xaxis,aE.yaxis)}H.lineWidth=aG;H.strokeStyle=aE.color;var aC=ae(aE.lines,aE.color,0,w);if(aC){H.fillStyle=aC;aF(aE.datapoints,aE.xaxis,aE.yaxis)}if(aG>0){aD(aE.datapoints,0,0,aE.xaxis,aE.yaxis)}H.restore()}function ao(aE){function aH(aN,aM,aU,aK,aS,aT,aQ,aJ){var aR=aN.points,aI=aN.pointsize;for(var aL=0;aL<aR.length;aL+=aI){var aP=aR[aL],aO=aR[aL+1];if(aP==null||aP<aT.min||aP>aT.max||aO<aQ.min||aO>aQ.max){continue}H.beginPath();aP=aT.p2c(aP);aO=aQ.p2c(aO)+aK;if(aJ=="circle"){H.arc(aP,aO,aM,0,aS?Math.PI:Math.PI*2,false)}else{aJ(H,aP,aO,aM,aS)}H.closePath();if(aU){H.fillStyle=aU;H.fill()}H.stroke()}}H.save();H.translate(q.left,q.top);var aG=aE.points.lineWidth,aC=aE.shadowSize,aB=aE.points.radius,aF=aE.points.symbol;if(aG>0&&aC>0){var aD=aC/2;H.lineWidth=aD;H.strokeStyle="rgba(0,0,0,0.1)";aH(aE.datapoints,aB,null,aD+aD/2,true,aE.xaxis,aE.yaxis,aF);H.strokeStyle="rgba(0,0,0,0.2)";aH(aE.datapoints,aB,null,aD/2,true,aE.xaxis,aE.yaxis,aF)}H.lineWidth=aG;H.strokeStyle=aE.color;aH(aE.datapoints,aB,ae(aE.points,aE.color),0,false,aE.xaxis,aE.yaxis,aF);H.restore()}function E(aN,aM,aV,aI,aQ,aF,aD,aL,aK,aU,aR,aC){var aE,aT,aJ,aP,aG,aB,aO,aH,aS;if(aR){aH=aB=aO=true;aG=false;aE=aV;aT=aN;aP=aM+aI;aJ=aM+aQ;if(aT<aE){aS=aT;aT=aE;aE=aS;aG=true;aB=false}}else{aG=aB=aO=true;aH=false;aE=aN+aI;aT=aN+aQ;aJ=aV;aP=aM;if(aP<aJ){aS=aP;aP=aJ;aJ=aS;aH=true;aO=false}}if(aT<aL.min||aE>aL.max||aP<aK.min||aJ>aK.max){return}if(aE<aL.min){aE=aL.min;aG=false}if(aT>aL.max){aT=aL.max;aB=false}if(aJ<aK.min){aJ=aK.min;aH=false}if(aP>aK.max){aP=aK.max;aO=false}aE=aL.p2c(aE);aJ=aK.p2c(aJ);aT=aL.p2c(aT);aP=aK.p2c(aP);if(aD){aU.beginPath();aU.moveTo(aE,aJ);aU.lineTo(aE,aP);aU.lineTo(aT,aP);aU.lineTo(aT,aJ);aU.fillStyle=aD(aJ,aP);aU.fill()}if(aC>0&&(aG||aB||aO||aH)){aU.beginPath();aU.moveTo(aE,aJ+aF);if(aG){aU.lineTo(aE,aP+aF)}else{aU.moveTo(aE,aP+aF)}if(aO){aU.lineTo(aT,aP+aF)}else{aU.moveTo(aT,aP+aF)}if(aB){aU.lineTo(aT,aJ+aF)}else{aU.moveTo(aT,aJ+aF)}if(aH){aU.lineTo(aE,aJ+aF)}else{aU.moveTo(aE,aJ+aF)}aU.stroke()}}function e(aD){function aC(aJ,aI,aL,aG,aK,aN,aM){var aO=aJ.points,aF=aJ.pointsize;for(var aH=0;aH<aO.length;aH+=aF){if(aO[aH]==null){continue}E(aO[aH],aO[aH+1],aO[aH+2],aI,aL,aG,aK,aN,aM,H,aD.bars.horizontal,aD.bars.lineWidth)}}H.save();H.translate(q.left,q.top);H.lineWidth=aD.bars.lineWidth;H.strokeStyle=aD.color;var aB=aD.bars.align=="left"?0:-aD.bars.barWidth/2;var aE=aD.bars.fill?function(aF,aG){return ae(aD.bars,aD.color,aF,aG)}:null;aC(aD.datapoints,aB,aB+aD.bars.barWidth,0,aE,aD.xaxis,aD.yaxis);H.restore()}function ae(aD,aB,aC,aF){var aE=aD.fill;if(!aE){return null}if(aD.fillColor){return am(aD.fillColor,aC,aF,aB)}var aG=c.color.parse(aB);aG.a=typeof aE=="number"?aE:0.4;aG.normalize();return aG.toString()}function o(){av.find(".legend").remove();if(!O.legend.show){return}var aH=[],aF=false,aN=O.legend.labelFormatter,aM,aJ;for(var aE=0;aE<Q.length;++aE){aM=Q[aE];aJ=aM.label;if(!aJ){continue}if(aE%O.legend.noColumns==0){if(aF){aH.push("</tr>")}aH.push("<tr>");aF=true}if(aN){aJ=aN(aJ,aM)}aH.push('<td class="legendColorBox"><div style="border:1px solid '+O.legend.labelBoxBorderColor+';padding:1px"><div style="width:4px;height:0;border:5px solid '+aM.color+';overflow:hidden"></div></div></td><td class="legendLabel">'+aJ+"</td>")}if(aF){aH.push("</tr>")}if(aH.length==0){return}var aL='<table style="font-size:smaller;color:'+O.grid.color+'">'+aH.join("")+"</table>";if(O.legend.container!=null){c(O.legend.container).html(aL)}else{var aI="",aC=O.legend.position,aD=O.legend.margin;if(aD[0]==null){aD=[aD,aD]}if(aC.charAt(0)=="n"){aI+="top:"+(aD[1]+q.top)+"px;"}else{if(aC.charAt(0)=="s"){aI+="bottom:"+(aD[1]+q.bottom)+"px;"}}if(aC.charAt(1)=="e"){aI+="right:"+(aD[0]+q.right)+"px;"}else{if(aC.charAt(1)=="w"){aI+="left:"+(aD[0]+q.left)+"px;"}}var aK=c('<div class="legend">'+aL.replace('style="','style="position:absolute;'+aI+";")+"</div>").appendTo(av);if(O.legend.backgroundOpacity!=0){var aG=O.legend.backgroundColor;if(aG==null){aG=O.grid.backgroundColor;if(aG&&typeof aG=="string"){aG=c.color.parse(aG)}else{aG=c.color.extract(aK,"background-color")}aG.a=1;aG=aG.toString()}var aB=aK.children();c('<div style="position:absolute;width:'+aB.width()+"px;height:"+aB.height()+"px;"+aI+"background-color:"+aG+';"> </div>').prependTo(aK).css("opacity",O.legend.backgroundOpacity)}}}var ab=[],M=null;function K(aI,aG,aD){var aO=O.grid.mouseActiveRadius,a0=aO*aO+1,aY=null,aR=false,aW,aU;for(aW=Q.length-1;aW>=0;--aW){if(!aD(Q[aW])){continue}var aP=Q[aW],aH=aP.xaxis,aF=aP.yaxis,aV=aP.datapoints.points,aT=aP.datapoints.pointsize,aQ=aH.c2p(aI),aN=aF.c2p(aG),aC=aO/aH.scale,aB=aO/aF.scale;if(aH.options.inverseTransform){aC=Number.MAX_VALUE}if(aF.options.inverseTransform){aB=Number.MAX_VALUE}if(aP.lines.show||aP.points.show){for(aU=0;aU<aV.length;aU+=aT){var aK=aV[aU],aJ=aV[aU+1];if(aK==null){continue}if(aK-aQ>aC||aK-aQ<-aC||aJ-aN>aB||aJ-aN<-aB){continue}var aM=Math.abs(aH.p2c(aK)-aI),aL=Math.abs(aF.p2c(aJ)-aG),aS=aM*aM+aL*aL;if(aS<a0){a0=aS;aY=[aW,aU/aT]}}}if(aP.bars.show&&!aY){var aE=aP.bars.align=="left"?0:-aP.bars.barWidth/2,aX=aE+aP.bars.barWidth;for(aU=0;aU<aV.length;aU+=aT){var aK=aV[aU],aJ=aV[aU+1],aZ=aV[aU+2];if(aK==null){continue}if(Q[aW].bars.horizontal?(aQ<=Math.max(aZ,aK)&&aQ>=Math.min(aZ,aK)&&aN>=aJ+aE&&aN<=aJ+aX):(aQ>=aK+aE&&aQ<=aK+aX&&aN>=Math.min(aZ,aJ)&&aN<=Math.max(aZ,aJ))){aY=[aW,aU/aT]}}}}if(aY){aW=aY[0];aU=aY[1];aT=Q[aW].datapoints.pointsize;return{datapoint:Q[aW].datapoints.points.slice(aU*aT,(aU+1)*aT),dataIndex:aU,series:Q[aW],seriesIndex:aW}}return null}function aa(aB){if(O.grid.hoverable){u("plothover",aB,function(aC){return aC.hoverable!=false})}}function l(aB){if(O.grid.hoverable){u("plothover",aB,function(aC){return false})}}function R(aB){u("plotclick",aB,function(aC){return aC.clickable!=false})}function u(aC,aB,aD){var aE=y.offset(),aH=aB.pageX-aE.left-q.left,aF=aB.pageY-aE.top-q.top,aJ=C({left:aH,top:aF});aJ.pageX=aB.pageX;aJ.pageY=aB.pageY;var aK=K(aH,aF,aD);if(aK){aK.pageX=parseInt(aK.series.xaxis.p2c(aK.datapoint[0])+aE.left+q.left);aK.pageY=parseInt(aK.series.yaxis.p2c(aK.datapoint[1])+aE.top+q.top)}if(O.grid.autoHighlight){for(var aG=0;aG<ab.length;++aG){var aI=ab[aG];if(aI.auto==aC&&!(aK&&aI.series==aK.series&&aI.point[0]==aK.datapoint[0]&&aI.point[1]==aK.datapoint[1])){T(aI.series,aI.point)}}if(aK){x(aK.series,aK.datapoint,aC)}}av.trigger(aC,[aJ,aK])}function f(){if(!M){M=setTimeout(s,30)}}function s(){M=null;A.save();A.clearRect(0,0,G,I);A.translate(q.left,q.top);var aC,aB;for(aC=0;aC<ab.length;++aC){aB=ab[aC];if(aB.series.bars.show){v(aB.series,aB.point)}else{ay(aB.series,aB.point)}}A.restore();an(ak.drawOverlay,[A])}function x(aD,aB,aF){if(typeof aD=="number"){aD=Q[aD]}if(typeof aB=="number"){var aE=aD.datapoints.pointsize;aB=aD.datapoints.points.slice(aE*aB,aE*(aB+1))}var aC=al(aD,aB);if(aC==-1){ab.push({series:aD,point:aB,auto:aF});f()}else{if(!aF){ab[aC].auto=false}}}function T(aD,aB){if(aD==null&&aB==null){ab=[];f()}if(typeof aD=="number"){aD=Q[aD]}if(typeof aB=="number"){aB=aD.data[aB]}var aC=al(aD,aB);if(aC!=-1){ab.splice(aC,1);f()}}function al(aD,aE){for(var aB=0;aB<ab.length;++aB){var aC=ab[aB];if(aC.series==aD&&aC.point[0]==aE[0]&&aC.point[1]==aE[1]){return aB}}return -1}function ay(aE,aD){var aC=aD[0],aI=aD[1],aH=aE.xaxis,aG=aE.yaxis;if(aC<aH.min||aC>aH.max||aI<aG.min||aI>aG.max){return}var aF=aE.points.radius+aE.points.lineWidth/2;A.lineWidth=aF;A.strokeStyle=c.color.parse(aE.color).scale("a",0.5).toString();var aB=1.5*aF,aC=aH.p2c(aC),aI=aG.p2c(aI);A.beginPath();if(aE.points.symbol=="circle"){A.arc(aC,aI,aB,0,2*Math.PI,false)}else{aE.points.symbol(A,aC,aI,aB,false)}A.closePath();A.stroke()}function v(aE,aB){A.lineWidth=aE.bars.lineWidth;A.strokeStyle=c.color.parse(aE.color).scale("a",0.5).toString();var aD=c.color.parse(aE.color).scale("a",0.5).toString();var aC=aE.bars.align=="left"?0:-aE.bars.barWidth/2;E(aB[0],aB[1],aB[2]||0,aC,aC+aE.bars.barWidth,0,function(){return aD},aE.xaxis,aE.yaxis,A,aE.bars.horizontal,aE.bars.lineWidth)}function am(aJ,aB,aH,aC){if(typeof aJ=="string"){return aJ}else{var aI=H.createLinearGradient(0,aH,0,aB);for(var aE=0,aD=aJ.colors.length;aE<aD;++aE){var aF=aJ.colors[aE];if(typeof aF!="string"){var aG=c.color.parse(aC);if(aF.brightness!=null){aG=aG.scale("rgb",aF.brightness)}if(aF.opacity!=null){aG.a*=aF.opacity}aF=aG.toString()}aI.addColorStop(aE/(aD-1),aF)}return aI}}}c.plot=function(g,e,d){var f=new b(c(g),e,d,c.plot.plugins);return f};c.plot.version="0.7";c.plot.plugins=[];c.plot.formatDate=function(l,f,h){var o=function(d){d=""+d;return d.length==1?"0"+d:d};var e=[];var p=false,j=false;var n=l.getUTCHours();var k=n<12;if(h==null){h=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}if(f.search(/%p|%P/)!=-1){if(n>12){n=n-12}else{if(n==0){n=12}}}for(var g=0;g<f.length;++g){var m=f.charAt(g);if(p){switch(m){case"h":m=""+n;break;case"H":m=o(n);break;case"M":m=o(l.getUTCMinutes());break;case"S":m=o(l.getUTCSeconds());break;case"d":m=""+l.getUTCDate();break;case"m":m=""+(l.getUTCMonth()+1);break;case"y":m=""+l.getUTCFullYear();break;case"b":m=""+h[l.getUTCMonth()];break;case"p":m=(k)?("am"):("pm");break;case"P":m=(k)?("AM"):("PM");break;case"0":m="";j=true;break}if(m&&j){m=o(m);j=false}e.push(m);if(!j){p=false}}else{if(m=="%"){p=true}else{e.push(m)}}}return e.join("")};function a(e,d){return d*Math.floor(e/d)}})(jQuery);
diff --git a/PerformanceTests/resources/results-template.html b/PerformanceTests/resources/results-template.html
new file mode 100644
index 000000000..62c81ede3
--- /dev/null
+++ b/PerformanceTests/resources/results-template.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>WebKit Performance Test Results</title>
+<script src="%AbsolutePathToWebKitTrunk%/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/jquery-1.6.4.js"></script>
+<script src="https://trac.webkit.org/browser/trunk/PerformanceTests/Dromaeo/resources/dromaeo/web/lib/jquery-1.6.4.js?format=txt"></script>
+<script src="%AbsolutePathToWebKitTrunk%/PerformanceTests/resources/jquery.flot.min.js"></script>
+<script src="https://trac.webkit.org/browser/trunk/PerformanceTests/resources/jquery.flot.min.js?format=txt"></script>
+<script id="json" type="application/json">%PeformanceTestsResultsJSON%</script>
+<style type="text/css">
+
+section {
+ display: inline-block;
+ padding: 0 10px;
+}
+
+section h1 {
+ text-align: center;
+ font-size: 1em;
+}
+
+section .tooltip {
+ position: absolute;
+ text-align: center;
+ background: #ffcc66;
+ border-radius: 5px;
+ padding: 0px 5px;
+}
+
+</style>
+</head>
+<body>
+<div id="container"></div>
+<script>
+
+function createPlot(testName) {
+ var section = $('<section><h1></h1><div class="plot"></div>'
+ + '<span class="tooltip"></span><section>');
+ var unit = testUnits[testName];
+ section.children('.plot').css({'width': 100 * maxLength + 'px', 'height': '300px'});
+ section.children('h1').html(testName + (unit ? ' (' + unit + ')' : ''));
+ $('#container').append(section);
+
+ attachPlot(testName, section);
+}
+
+function attachPlot(testName, section, minIsZero) {
+ var averages = testResults[testName];
+ var color = 'rgb(230,50,50)';
+
+ var minMaxOptions = {lines: {show:true, lineWidth: 0},
+ color: color,
+ points: {show: true, radius: 1},
+ bars: {show: false}};
+
+ function makeLowPlot(id, data) { return $.extend(true, {}, minMaxOptions, {id: id, data: data}); }
+ function makeHighPlot(from, to, fill, data) { return $.extend(true, {}, minMaxOptions,
+ {id: to, data: data}); }
+
+ var plotData = [
+ makeLowPlot('min', testResultsMin[testName]),
+ makeHighPlot('min', 'max', 0.2, testResultsMax[testName]),
+ makeLowPlot('-&#963;', testResultsStdevLow[testName]), // small letter sgima.
+ makeHighPlot('-&#963;', '+&#963;', 0.4, testResultsStdevHigh[testName]),
+ {data: averages, color: color}];
+
+ var plotContainer = section.children('.plot');
+ $.plot(plotContainer, plotData, {
+ xaxis: {
+ min: averages[0][0] - 0.5,
+ max: averages[averages.length - 1][0] + 0.5,
+ tickSize: 1,
+ ticks: averages.map(function (value, index) {
+ var label = 'r' + webkitRevisions[index];
+ if (descriptions[index])
+ label += ' &dash; ' + descriptions[index]
+ return [index, label];
+ }),
+ },
+ yaxis: {
+ min: minIsZero ? 0 : Math.min.apply(Math, $.map(testResultsMin[testName], function (entry) { return entry[1]; })) * 0.98,
+ max: Math.max.apply(Math, $.map(testResultsMax[testName], function (entry) { return entry[1]; })) * (minIsZero ? 1.1 : 1.01),
+ },
+ crosshair: { mode: 'y' },
+ series: { shadowSize: 0 },
+ bars: {show: true, align: 'center', barWidth: 0.5},
+ lines: { show: false },
+ points: { show: true },
+ grid: {
+ borderWidth: 2,
+ backgroundColor: '#fff',
+ hoverable: true,
+ autoHighlight: false,
+ }
+ });
+
+ var tooltip = section.children('.tooltip');
+ plotContainer.bind('plothover', function (event, position, item) {
+ if (item) {
+ var postfix = item.series.id ? ' (' + item.series.id + ')' : '';
+ tooltip.html(item.datapoint[1].toPrecision(4) + postfix);
+ tooltip.css({left: item.pageX - tooltip.outerWidth() / 2, top: item.pageY + 10});
+ tooltip.fadeIn(200);
+ } else
+ tooltip.hide();
+ });
+ plotContainer.mouseout(function () {
+ tooltip.hide();
+ });
+
+ plotContainer.click(function (event) {
+ event.preventDefault();
+ attachPlot(testName, section, !minIsZero);
+ });
+}
+
+var results = JSON.parse(document.getElementById('json').textContent);
+var tests = [];
+var testResults = {}, testResultsMin = {}, testResultsMax = {}, testResultsStdevLow = {}, testResultsStdevHigh = {};
+var testUnits = {};
+var webkitRevisions = [];
+var descriptions = [];
+var maxLength = 0;
+$.each(results, function (index, entry) {
+ webkitRevisions.push(entry['webkit-revision']);
+ descriptions.push(entry['description']);
+ $.each(entry.results, function (test, result) {
+ if (tests.indexOf(test) < 0)
+ tests.push(test);
+ if (!testResults[test]) {
+ testResults[test] = [];
+ testResultsMin[test] = [];
+ testResultsMax[test] = [];
+ testResultsStdevLow[test] = [];
+ testResultsStdevHigh[test] = [];
+ }
+ if (typeof result == 'number')
+ testResults[test].push([index, result]);
+ else {
+ testResults[test].push([index, result['avg']]);
+ if ('min' in result)
+ testResultsMin[test].push([index, result['min']]);
+ if ('max' in result)
+ testResultsMax[test].push([index, result['max']]);
+ if ('stdev' in result) {
+ testResultsStdevLow[test].push([index, result['avg'] - result['stdev']]);
+ testResultsStdevHigh[test].push([index, result['avg'] + result['stdev']]);
+ }
+ }
+ maxLength = Math.max(maxLength, testResults[test].length);
+ testUnits[test] = result.unit;
+ });
+});
+$.each(tests.sort(), function (index, test) { createPlot(test); });
+
+</script>
+</body>
+</html>
diff --git a/PerformanceTests/resources/runner.js b/PerformanceTests/resources/runner.js
new file mode 100755
index 000000000..6bf1f29f3
--- /dev/null
+++ b/PerformanceTests/resources/runner.js
@@ -0,0 +1,270 @@
+// There are tests for computeStatistics() located in LayoutTests/fast/harness/perftests
+
+// We need access to console.memory for the memory measurements
+if (window.internals)
+ internals.settings.setMemoryInfoEnabled(true);
+
+var PerfTestRunner = {};
+
+// To make the benchmark results predictable, we replace Math.random with a
+// 100% deterministic alternative.
+PerfTestRunner.randomSeed = PerfTestRunner.initialRandomSeed = 49734321;
+
+PerfTestRunner.resetRandomSeed = function() {
+ PerfTestRunner.randomSeed = PerfTestRunner.initialRandomSeed
+}
+
+PerfTestRunner.random = Math.random = function() {
+ // Robert Jenkins' 32 bit integer hash function.
+ var randomSeed = PerfTestRunner.randomSeed;
+ randomSeed = ((randomSeed + 0x7ed55d16) + (randomSeed << 12)) & 0xffffffff;
+ randomSeed = ((randomSeed ^ 0xc761c23c) ^ (randomSeed >>> 19)) & 0xffffffff;
+ randomSeed = ((randomSeed + 0x165667b1) + (randomSeed << 5)) & 0xffffffff;
+ randomSeed = ((randomSeed + 0xd3a2646c) ^ (randomSeed << 9)) & 0xffffffff;
+ randomSeed = ((randomSeed + 0xfd7046c5) + (randomSeed << 3)) & 0xffffffff;
+ randomSeed = ((randomSeed ^ 0xb55a4f09) ^ (randomSeed >>> 16)) & 0xffffffff;
+ PerfTestRunner.randomSeed = randomSeed;
+ return (randomSeed & 0xfffffff) / 0x10000000;
+};
+
+PerfTestRunner.log = function (text) {
+ if (this._logLines) {
+ this._logLines.push(text);
+ return;
+ }
+ if (!document.getElementById("log")) {
+ var pre = document.createElement('pre');
+ pre.id = 'log';
+ document.body.appendChild(pre);
+ }
+ document.getElementById("log").innerHTML += text + "\n";
+ window.scrollTo(0, document.body.height);
+}
+
+PerfTestRunner.info = function (text) {
+ this.log("Info: " + text);
+}
+
+PerfTestRunner.logInfo = function (text) {
+ if (!window.testRunner)
+ this.log(text);
+}
+
+PerfTestRunner.loadFile = function (path) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("GET", path, false);
+ xhr.send(null);
+ return xhr.responseText;
+}
+
+PerfTestRunner.computeStatistics = function (times, unit) {
+ var data = times.slice();
+
+ // Add values from the smallest to the largest to avoid the loss of significance
+ data.sort(function(a,b){return a-b;});
+
+ var middle = Math.floor(data.length / 2);
+ var result = {
+ min: data[0],
+ max: data[data.length - 1],
+ median: data.length % 2 ? data[middle] : (data[middle - 1] + data[middle]) / 2,
+ };
+
+ // Compute the mean and variance using a numerically stable algorithm.
+ var squareSum = 0;
+ result.mean = data[0];
+ result.sum = data[0];
+ for (var i = 1; i < data.length; ++i) {
+ var x = data[i];
+ var delta = x - result.mean;
+ var sweep = i + 1.0;
+ result.mean += delta / sweep;
+ result.sum += x;
+ squareSum += delta * delta * (i / sweep);
+ }
+ result.variance = squareSum / data.length;
+ result.stdev = Math.sqrt(result.variance);
+ result.unit = unit || "ms";
+
+ return result;
+}
+
+PerfTestRunner.logStatistics = function (values, unit, title) {
+ var statistics = this.computeStatistics(values, unit);
+ this.printStatistics(statistics, title);
+}
+
+PerfTestRunner.printStatistics = function (statistics, title) {
+ this.log("");
+ this.log(title);
+ this.log("avg " + statistics.mean + " " + statistics.unit);
+ this.log("median " + statistics.median + " " + statistics.unit);
+ this.log("stdev " + statistics.stdev + " " + statistics.unit);
+ this.log("min " + statistics.min + " " + statistics.unit);
+ this.log("max " + statistics.max + " " + statistics.unit);
+}
+
+PerfTestRunner.gc = function () {
+ if (window.GCController)
+ window.GCController.collect();
+ else {
+ function gcRec(n) {
+ if (n < 1)
+ return {};
+ var temp = {i: "ab" + i + (i / 100000)};
+ temp += "foo";
+ gcRec(n-1);
+ }
+ for (var i = 0; i < 1000; i++)
+ gcRec(10);
+ }
+}
+
+PerfTestRunner._runLoop = function () {
+ if (this._completedRuns < this._runCount) {
+ this.gc();
+ window.setTimeout(function () { PerfTestRunner._runner(); }, 0);
+ } else {
+ if (this._description)
+ this.log("Description: " + this._description);
+ this.logStatistics(this._results, this.unit, "Time:");
+ if (this._jsHeapResults.length) {
+ this.logStatistics(this._jsHeapResults, "bytes", "JS Heap:");
+ this.logStatistics(this._mallocHeapResults, "bytes", "Malloc:");
+ }
+ if (this._logLines) {
+ var logLines = this._logLines;
+ this._logLines = null;
+ var self = this;
+ logLines.forEach(function(text) { self.log(text); });
+ }
+ this._doneFunction();
+ if (window.testRunner)
+ testRunner.notifyDone();
+ }
+}
+
+PerfTestRunner._runner = function () {
+ var start = Date.now();
+ var totalTime = 0;
+
+ for (var i = 0; i < this._loopsPerRun; ++i) {
+ var returnValue = this._runFunction.call(window);
+ if (returnValue - 0 === returnValue) {
+ if (returnValue <= 0)
+ this.log("runFunction returned a non-positive value: " + returnValue);
+ totalTime += returnValue;
+ }
+ }
+
+ // Assume totalTime can never be zero when _runFunction returns a number.
+ var time = totalTime ? totalTime : Date.now() - start;
+
+ this.ignoreWarmUpAndLog(time);
+ this._runLoop();
+}
+
+PerfTestRunner.storeHeapResults = function() {
+ if (!window.internals)
+ return;
+ this._jsHeapResults.push(this.getUsedJSHeap());
+ this._mallocHeapResults.push(this.getUsedMallocHeap());
+}
+
+PerfTestRunner.getUsedMallocHeap = function() {
+ var stats = window.internals.mallocStatistics();
+ return stats.committedVMBytes - stats.freeListBytes;
+}
+
+PerfTestRunner.getUsedJSHeap = function() {
+ return console.memory.usedJSHeapSize;
+}
+
+PerfTestRunner.getAndPrintMemoryStatistics = function() {
+ if (!window.internals)
+ return;
+ var jsMemoryStats = PerfTestRunner.computeStatistics([PerfTestRunner.getUsedJSHeap()], "bytes");
+ PerfTestRunner.printStatistics(jsMemoryStats, "JS Heap:");
+
+ var mallocMemoryStats = PerfTestRunner.computeStatistics([PerfTestRunner.getUsedMallocHeap()], "bytes");
+ PerfTestRunner.printStatistics(mallocMemoryStats, "Malloc:");
+}
+
+PerfTestRunner.ignoreWarmUpAndLog = function (result) {
+ this._completedRuns++;
+
+ var labeledResult = result + " " + this.unit;
+ if (this._completedRuns <= 0)
+ this.log("Ignoring warm-up run (" + labeledResult + ")");
+ else {
+ this._results.push(result);
+ this.storeHeapResults();
+ this.log(labeledResult);
+ }
+}
+
+PerfTestRunner.initAndStartLoop = function() {
+ this._completedRuns = -1;
+ this.customRunFunction = null;
+ this._results = [];
+ this._jsHeapResults = [];
+ this._mallocHeapResults = [];
+ this._logLines = window.testRunner ? [] : null;
+ this.log("Running " + this._runCount + " times");
+ this._runLoop();
+}
+
+PerfTestRunner.run = function (runFunction, loopsPerRun, runCount, doneFunction, description) {
+ this._runFunction = runFunction;
+ this._loopsPerRun = loopsPerRun || 10;
+ this._runCount = runCount || 20;
+ this._doneFunction = doneFunction || function () {};
+ this._description = description || "";
+ this.unit = 'ms';
+ this.initAndStartLoop();
+}
+
+PerfTestRunner.runPerSecond = function (test) {
+ this._doneFunction = function () { if (test.done) test.done(); };
+ this._description = test.description || "";
+ this._runCount = test.runCount || 20;
+ this._callsPerIteration = 1;
+ this.unit = 'runs/s';
+
+ this._test = test;
+ this._runner = this._perSecondRunner;
+ this.initAndStartLoop();
+}
+
+PerfTestRunner._perSecondRunner = function () {
+ var timeToRun = this._test.timeToRun || 750;
+ var totalTime = 0;
+ var i = 0;
+ var callsPerIteration = this._callsPerIteration;
+
+ if (this._test.setup)
+ this._test.setup();
+
+ while (totalTime < timeToRun) {
+ totalTime += this._perSecondRunnerIterator(callsPerIteration);
+ i += callsPerIteration;
+ if (this._completedRuns < 0 && totalTime < 100)
+ callsPerIteration = Math.max(10, 2 * callsPerIteration);
+ }
+ this._callsPerIteration = callsPerIteration;
+
+ this.ignoreWarmUpAndLog(i * 1000 / totalTime);
+ this._runLoop();
+}
+
+PerfTestRunner._perSecondRunnerIterator = function (callsPerIteration) {
+ var startTime = Date.now();
+ for (var i = 0; i < callsPerIteration; i++)
+ this._test.run();
+ return Date.now() - startTime;
+}
+
+if (window.testRunner) {
+ testRunner.waitUntilDone();
+ testRunner.dumpAsText();
+}
diff --git a/Source/JavaScriptCore/API/JSValueRef.cpp b/Source/JavaScriptCore/API/JSValueRef.cpp
index 04d7f661d..9b7268a2d 100644
--- a/Source/JavaScriptCore/API/JSValueRef.cpp
+++ b/Source/JavaScriptCore/API/JSValueRef.cpp
@@ -266,7 +266,7 @@ bool JSValueToBoolean(JSContextRef ctx, JSValueRef value)
APIEntryShim entryShim(exec);
JSValue jsValue = toJS(exec, value);
- return jsValue.toBoolean();
+ return jsValue.toBoolean(exec);
}
double JSValueToNumber(JSContextRef ctx, JSValueRef value, JSValueRef* exception)
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index 987ca8ecf..a8434ccc7 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,204 @@
+2011-08-23 Geoffrey Garen <ggaren@apple.com>
+
+ Unreviewed, rolling out r126505.
+ http://trac.webkit.org/changeset/126505
+ https://bugs.webkit.org/show_bug.cgi?id=94840
+
+ Caused testapi to crash on launch
+
+ * DerivedSources.make:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * bytecode/Opcode.h:
+ (JSC):
+ (JSC::padOpcodeName):
+ * bytecode/OpcodeDefinitions.h: Removed.
+ * bytecode/opcodes: Removed.
+ * opcode_definition_generator.py: Removed.
+ * opcode_generator.py: Removed.
+ * opcode_parser.py: Removed.
+
+2012-08-23 Oliver Hunt <oliver@apple.com>
+
+ Autogenerate Opcode definitions
+ https://bugs.webkit.org/show_bug.cgi?id=94840
+
+ Reviewed by Gavin Barraclough.
+
+ Start the process of autogenerating the code emission for the bytecode.
+ We'll just start with automatic generation of the list of Opcodes as that
+ requires the actual definition of the opcodes, and the logic for parsing
+ them.
+
+ Due to some rather annoying dependency cycles, this initial version has
+ the OpcodeDefinitions.h file checked into the tree, although with some
+ work I hope to be able to fix that.
+
+ * DerivedSources.make:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * bytecode/Opcode.h:
+ Include OpcodeDefinitions.h as our definitive source of info
+ about the opcodes.
+ * bytecode/OpcodeDefinitions.h: Added.
+ Autogenerated file
+ * bytecode/opcodes: Added.
+ The new opcode definition file
+ * opcode_definition_generator.py: Added.
+ (generateOpcodeDefinition):
+ (generate):
+ Module that generates the content for OpcodeDefinitions.h
+ * opcode_generator.py: Added.
+ (printUsage):
+ (main):
+ Driver script
+ * opcode_parser.py: Added.
+ Simple parser for the opcode definitions.
+
+2012-08-23 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
+ https://bugs.webkit.org/show_bug.cgi?id=93884
+
+ Reviewed by Filip Pizlo.
+
+ With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of
+ MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines,
+ we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined
+ objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject).
+ For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not
+ masquerade as undefined within frame B, but it will continue to masquerade in frame A.
+
+ There are two primary changes that are taking place here. One is to thread the ExecState* through
+ JSValue::toBoolean and JSCell::toBoolean so that JSCell::toBoolean can check the object's
+ JSGlobalObject to compare it to the lexical JSGlobalObject of the currently running code. If the two
+ are distinct, then the object cannot MasqueradeAsUndefined.
+
+ The other change is to perform this comparison of JSGlobalObjects everywhere where the MasqueradesAsUndefined
+ flag in the Structure is checked. For C++ code, this check has been factored into its own function in
+ Structure::masqueradesAsUndefined. We only perform this check in the DFG if the current JSGlobalObject has
+ had a MasqueradesAsUndefined object allocated within its context. This conditional compilation is managed
+ through the use of a WatchpointSet in each JSGlobalObject and alternate create() functions for JS DOM wrappers
+ that are MasqueradesAsUndefined.
+
+ * API/JSValueRef.cpp:
+ (JSValueToBoolean):
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * bytecode/Watchpoint.h:
+ (WatchpointSet):
+ * debugger/DebuggerCallFrame.h:
+ (JSC::DebuggerCallFrame::callFrame):
+ * dfg/DFGAbstractState.cpp:
+ (JSC::DFG::AbstractState::execute):
+ * dfg/DFGCFGSimplificationPhase.cpp:
+ (JSC::DFG::CFGSimplificationPhase::run):
+ * dfg/DFGOperations.cpp:
+ * dfg/DFGOperations.h:
+ * dfg/DFGSpeculativeJIT32_64.cpp:
+ (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
+ (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT64.cpp:
+ (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
+ (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
+ (JSC::DFG::SpeculativeJIT::compile):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_is_undefined):
+ (JSC::JIT::emit_op_jeq_null):
+ (JSC::JIT::emit_op_jneq_null):
+ (JSC::JIT::emit_op_eq_null):
+ (JSC::JIT::emit_op_neq_null):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::emit_op_is_undefined):
+ (JSC::JIT::emit_op_jeq_null):
+ (JSC::JIT::emit_op_jneq_null):
+ (JSC::JIT::emit_op_eq_null):
+ (JSC::JIT::emit_op_neq_null):
+ * jit/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION):
+ * llint/LLIntSlowPaths.cpp:
+ (JSC::LLInt::LLINT_SLOW_PATH_DECL):
+ * llint/LowLevelInterpreter32_64.asm:
+ * llint/LowLevelInterpreter64.asm:
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncFilter):
+ (JSC::arrayProtoFuncEvery):
+ (JSC::arrayProtoFuncSome):
+ * runtime/BooleanConstructor.cpp:
+ (JSC::constructBoolean):
+ (JSC::callBooleanConstructor):
+ * runtime/JSCell.h:
+ (JSCell):
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::JSGlobalObject):
+ * runtime/JSGlobalObject.h:
+ (JSGlobalObject):
+ (JSC::JSGlobalObject::masqueradesAsUndefinedWatchpoint):
+ * runtime/JSString.h:
+ (JSC::JSCell::toBoolean):
+ (JSC::JSValue::toBoolean):
+ * runtime/JSValue.h:
+ * runtime/ObjectConstructor.cpp:
+ (JSC::toPropertyDescriptor):
+ * runtime/Operations.cpp:
+ (JSC::jsTypeStringForValue):
+ (JSC::jsIsObjectType):
+ * runtime/Operations.h:
+ (JSC):
+ (JSC::JSValue::equalSlowCaseInline):
+ * runtime/RegExpConstructor.cpp:
+ (JSC::setRegExpConstructorMultiline):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::regExpProtoFuncToString):
+ * runtime/Structure.h:
+ (Structure):
+ (JSC::Structure::globalObjectOffset):
+ (JSC::Structure::masqueradesAsUndefined):
+ (JSC):
+
+2012-08-23 Mark Rowe <mrowe@apple.com>
+
+ Make JavaScriptCore build with the latest version of clang.
+
+ Reviewed by Dan Bernstein.
+
+ * heap/MachineStackMarker.cpp:
+ (JSC::MachineThreads::MachineThreads): The m_heap member is only used within
+ assertions, so guard its initialization with !ASSERT_DISABLED.
+ * heap/MachineStackMarker.h:
+ (MachineThreads): Ditto for its declaration.
+ * jit/JITStubCall.h:
+ (JSC::JITStubCall::JITStubCall): The m_returnType member is only used within
+ assertions or if we're using JSVALUE32_64, so guard its uses with the appropriate
+ #if.
+ (JITStubCall): Ditto.
+
+2012-08-23 Christophe Dumez <christophe.dumez@intel.com>
+
+ Serialization of JavaScript values does not appear to respect new HTML5 Structured Clone semantics
+ https://bugs.webkit.org/show_bug.cgi?id=65292
+
+ Reviewed by Oliver Hunt.
+
+ Add function to construct a StringObject from a JSValue.
+ Similar functions already exist for NumberObject and
+ BooleanObject for example.
+
+ Export several symbols so address linking errors in
+ WebCore.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * runtime/BooleanObject.h:
+ (BooleanObject):
+ * runtime/NumberObject.h:
+ (NumberObject):
+ (JSC):
+ * runtime/StringObject.cpp:
+ (JSC::constructString):
+ (JSC):
+ * runtime/StringObject.h:
+ (JSC):
+
2012-08-22 Filip Pizlo <fpizlo@apple.com>
Array accesses should remember what kind of array they are predicted to access
diff --git a/Source/JavaScriptCore/Configurations/Version.xcconfig b/Source/JavaScriptCore/Configurations/Version.xcconfig
index b619d3602..cff1fe049 100644
--- a/Source/JavaScriptCore/Configurations/Version.xcconfig
+++ b/Source/JavaScriptCore/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 537;
-MINOR_VERSION = 6;
+MINOR_VERSION = 8;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
index 8032ed178..e3453201b 100755
--- a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
+++ b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
@@ -1,6 +1,7 @@
EXPORTS
??0ArrayBufferView@WTF@@IAE@V?$PassRefPtr@VArrayBuffer@WTF@@@1@I@Z
+ ??0BooleanObject@JSC@@IAE@AAVJSGlobalData@1@PAVStructure@1@@Z
??0CString@WTF@@QAE@PBD@Z
??0CString@WTF@@QAE@PBDI@Z
??0Collator@WTF@@QAE@PBD@Z
@@ -107,6 +108,8 @@ EXPORTS
?constructArray@JSC@@YAPAVJSArray@1@PAVExecState@1@ABVArgList@1@@Z
?constructEmptyObject@JSC@@YAPAVJSObject@1@PAVExecState@1@@Z
?constructFunctionSkippingEvalEnabledCheck@JSC@@YAPAVJSObject@1@PAVExecState@1@PAVJSGlobalObject@1@ABVArgList@1@ABVIdentifier@1@ABVUString@1@ABVTextPosition@WTF@@@Z
+ ?constructNumber@JSC@@YAPAVNumberObject@1@PAVExecState@1@PAVJSGlobalObject@1@VJSValue@1@@Z
+ ?constructString@JSC@@YAPAVStringObject@1@PAVExecState@1@PAVJSGlobalObject@1@VJSValue@1@@Z
?convertLatin1ToUTF8@Unicode@WTF@@YA?AW4ConversionResult@12@PAPBEPBEPAPADPAD@Z
?convertUTF16ToUTF8@Unicode@WTF@@YA?AW4ConversionResult@12@PAPB_WPB_WPAPADPAD_N@Z
?convertUTF8ToUTF16@Unicode@WTF@@YA?AW4ConversionResult@12@PAPBDPBDPAPA_WPA_W_N@Z
@@ -186,6 +189,7 @@ EXPORTS
?fillGetterPropertySlot@JSObject@JSC@@AAEXAAVPropertySlot@2@PAV?$WriteBarrierBase@W4Unknown@JSC@@@2@@Z
?finalize@WeakHandleOwner@JSC@@UAEXV?$Handle@W4Unknown@JSC@@@2@PAX@Z
?findAllocator@WeakSet@JSC@@AAEPAUFreeCell@WeakBlock@2@XZ
+ ?finishCreation@BooleanObject@JSC@@IAEXAAVJSGlobalData@2@@Z
?finishCreation@DateInstance@JSC@@IAEXAAVJSGlobalData@2@N@Z
?finishCreation@InternalFunction@JSC@@IAEXAAVJSGlobalData@2@ABVUString@2@@Z
?finishCreation@JSArray@JSC@@IAEXAAVJSGlobalData@2@I@Z
@@ -258,6 +262,7 @@ EXPORTS
?neuter@ArrayBufferView@WTF@@MAEXXZ
?newUninitialized@CString@WTF@@SA?AV12@IAAPAD@Z
?notifyWriteSlow@SymbolTableEntry@JSC@@AAEXXZ
+ ?notifyWriteSlow@WatchpointSet@JSC@@QAEXXZ
?nullptr@@3Vnullptr_t@std@@A
?number@String@WTF@@SA?AV12@NII@Z
?number@UString@JSC@@SA?AV12@H@Z
diff --git a/Source/JavaScriptCore/bytecode/Watchpoint.h b/Source/JavaScriptCore/bytecode/Watchpoint.h
index 8e0526c0f..e6fba93a9 100644
--- a/Source/JavaScriptCore/bytecode/Watchpoint.h
+++ b/Source/JavaScriptCore/bytecode/Watchpoint.h
@@ -78,7 +78,7 @@ public:
bool* addressOfIsWatched() { return &m_isWatched; }
- void notifyWriteSlow(); // Call only if you've checked isWatched.
+ JS_EXPORT_PRIVATE void notifyWriteSlow(); // Call only if you've checked isWatched.
private:
void fireAllWatchpoints();
diff --git a/Source/JavaScriptCore/debugger/DebuggerCallFrame.h b/Source/JavaScriptCore/debugger/DebuggerCallFrame.h
index 8605af54d..dca7487c0 100644
--- a/Source/JavaScriptCore/debugger/DebuggerCallFrame.h
+++ b/Source/JavaScriptCore/debugger/DebuggerCallFrame.h
@@ -48,6 +48,7 @@ namespace JSC {
{
}
+ CallFrame* callFrame() const { return m_callFrame; }
JSGlobalObject* dynamicGlobalObject() const { return m_callFrame->dynamicGlobalObject(); }
ScopeChainNode* scopeChain() const { return m_callFrame->scopeChain(); }
JS_EXPORT_PRIVATE const UString* functionName() const;
diff --git a/Source/JavaScriptCore/dfg/DFGAbstractState.cpp b/Source/JavaScriptCore/dfg/DFGAbstractState.cpp
index cfe915947..43b5a03f3 100644
--- a/Source/JavaScriptCore/dfg/DFGAbstractState.cpp
+++ b/Source/JavaScriptCore/dfg/DFGAbstractState.cpp
@@ -618,7 +618,7 @@ bool AbstractState::execute(unsigned indexInBlock)
case LogicalNot: {
JSValue childConst = forNode(node.child1()).value();
- if (childConst && trySetConstant(nodeIndex, jsBoolean(!childConst.toBoolean()))) {
+ if (childConst && trySetConstant(nodeIndex, jsBoolean(!childConst.toBoolean(m_codeBlock->globalObjectFor(node.codeOrigin)->globalExec())))) {
m_foundConstants = true;
node.setCanExit(false);
break;
@@ -650,16 +650,23 @@ bool AbstractState::execute(unsigned indexInBlock)
case IsString:
case IsObject:
case IsFunction: {
- node.setCanExit(false);
+ node.setCanExit(node.op() == IsUndefined && m_codeBlock->globalObjectFor(node.codeOrigin)->masqueradesAsUndefinedWatchpoint()->isStillValid());
JSValue child = forNode(node.child1()).value();
if (child) {
bool constantWasSet;
switch (node.op()) {
case IsUndefined:
- constantWasSet = trySetConstant(nodeIndex, jsBoolean(
- child.isCell()
- ? child.asCell()->structure()->typeInfo().masqueradesAsUndefined()
- : child.isUndefined()));
+ if (m_codeBlock->globalObjectFor(node.codeOrigin)->masqueradesAsUndefinedWatchpoint()->isStillValid()) {
+ constantWasSet = trySetConstant(nodeIndex, jsBoolean(
+ child.isCell()
+ ? false
+ : child.isUndefined()));
+ } else {
+ constantWasSet = trySetConstant(nodeIndex, jsBoolean(
+ child.isCell()
+ ? child.asCell()->structure()->masqueradesAsUndefined(m_codeBlock->globalObjectFor(node.codeOrigin))
+ : child.isUndefined()));
+ }
break;
case IsBoolean:
constantWasSet = trySetConstant(nodeIndex, jsBoolean(child.isBoolean()));
@@ -739,8 +746,8 @@ bool AbstractState::execute(unsigned indexInBlock)
&& m_graph.valueOfJSConstant(node.child1().index()).isNull())
|| (m_graph.isConstant(node.child2().index())
&& m_graph.valueOfJSConstant(node.child2().index()).isNull())) {
- // We know that this won't clobber the world. But that's all we know.
- node.setCanExit(false);
+ // We can exit if we haven't fired the MasqueradesAsUndefind watchpoint yet.
+ node.setCanExit(m_codeBlock->globalObjectFor(node.codeOrigin)->masqueradesAsUndefinedWatchpoint()->isStillValid());
break;
}
@@ -1077,7 +1084,7 @@ bool AbstractState::execute(unsigned indexInBlock)
case Branch: {
JSValue value = forNode(node.child1()).value();
if (value) {
- bool booleanValue = value.toBoolean();
+ bool booleanValue = value.toBoolean(m_codeBlock->globalObjectFor(node.codeOrigin)->globalExec());
if (booleanValue)
m_branchDirection = TakeTrue;
else
diff --git a/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp b/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp
index f054707e2..aecce83ed 100644
--- a/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp
+++ b/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp
@@ -101,7 +101,7 @@ public:
// Branch on constant -> jettison the not-taken block and merge.
if (m_graph[m_graph[block->last()].child1()].hasConstant()) {
bool condition =
- m_graph.valueOfJSConstant(m_graph[block->last()].child1().index()).toBoolean();
+ m_graph.valueOfJSConstant(m_graph[block->last()].child1().index()).toBoolean(m_graph.globalObjectFor(m_graph[block->last()].codeOrigin)->globalExec());
BasicBlock* targetBlock = m_graph.m_blocks[
m_graph.successorForCondition(block, condition)].get();
if (targetBlock->m_predecessors.size() == 1) {
diff --git a/Source/JavaScriptCore/dfg/DFGOperations.cpp b/Source/JavaScriptCore/dfg/DFGOperations.cpp
index 882e1cd02..b5c3b961b 100644
--- a/Source/JavaScriptCore/dfg/DFGOperations.cpp
+++ b/Source/JavaScriptCore/dfg/DFGOperations.cpp
@@ -1273,9 +1273,9 @@ JSCell* DFG_OPERATION operationNewFunctionExpression(ExecState* exec, JSCell* fu
return function;
}
-size_t DFG_OPERATION operationIsObject(EncodedJSValue value)
+size_t DFG_OPERATION operationIsObject(ExecState* exec, EncodedJSValue value)
{
- return jsIsObjectType(JSValue::decode(value));
+ return jsIsObjectType(exec, JSValue::decode(value));
}
size_t DFG_OPERATION operationIsFunction(EncodedJSValue value)
@@ -1368,7 +1368,7 @@ size_t DFG_OPERATION dfgConvertJSValueToBoolean(ExecState* exec, EncodedJSValue
JSGlobalData* globalData = &exec->globalData();
NativeCallFrameTracer tracer(globalData, exec);
- return JSValue::decode(encodedOp).toBoolean();
+ return JSValue::decode(encodedOp).toBoolean(exec);
}
#if DFG_ENABLE(VERBOSE_SPECULATION_FAILURE)
diff --git a/Source/JavaScriptCore/dfg/DFGOperations.h b/Source/JavaScriptCore/dfg/DFGOperations.h
index 0ff721216..455c2bcc3 100644
--- a/Source/JavaScriptCore/dfg/DFGOperations.h
+++ b/Source/JavaScriptCore/dfg/DFGOperations.h
@@ -180,7 +180,7 @@ EncodedJSValue DFG_OPERATION operationGetArgumentByVal(ExecState*, int32_t, int3
JSCell* DFG_OPERATION operationNewFunction(ExecState*, JSCell*) WTF_INTERNAL;
JSCell* DFG_OPERATION operationNewFunctionExpression(ExecState*, JSCell*) WTF_INTERNAL;
double DFG_OPERATION operationFModOnInts(int32_t, int32_t) WTF_INTERNAL;
-size_t DFG_OPERATION operationIsObject(EncodedJSValue) WTF_INTERNAL;
+size_t DFG_OPERATION operationIsObject(ExecState*, EncodedJSValue) WTF_INTERNAL;
size_t DFG_OPERATION operationIsFunction(EncodedJSValue) WTF_INTERNAL;
void DFG_OPERATION operationReallocateStorageAndFinishPut(ExecState*, JSObject*, Structure*, PropertyOffset, EncodedJSValue) WTF_INTERNAL;
char* DFG_OPERATION operationAllocatePropertyStorageWithInitialCapacity(ExecState*) WTF_INTERNAL;
diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
index 26a48dcec..846d078ba 100644
--- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
+++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
@@ -623,10 +623,29 @@ void SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull(Edge operand, bool inv
JITCompiler::Jump notCell;
if (!isKnownCell(operand.index()))
notCell = m_jit.branch32(MacroAssembler::NotEqual, argTagGPR, TrustedImm32(JSValue::CellTag));
-
- m_jit.loadPtr(JITCompiler::Address(argPayloadGPR, JSCell::structureOffset()), resultPayloadGPR);
- m_jit.test8(invert ? JITCompiler::Zero : JITCompiler::NonZero, JITCompiler::Address(resultPayloadGPR, Structure::typeInfoFlagsOffset()), JITCompiler::TrustedImm32(MasqueradesAsUndefined), resultPayloadGPR);
-
+
+ JITCompiler::Jump notMasqueradesAsUndefined;
+ if (m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)->masqueradesAsUndefinedWatchpoint()->isStillValid()) {
+ m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)->masqueradesAsUndefinedWatchpoint()->add(speculationWatchpoint());
+ m_jit.move(invert ? TrustedImm32(1) : TrustedImm32(0), resultPayloadGPR);
+ notMasqueradesAsUndefined = m_jit.jump();
+ } else {
+ m_jit.loadPtr(JITCompiler::Address(argPayloadGPR, JSCell::structureOffset()), resultPayloadGPR);
+ JITCompiler::Jump isMasqueradesAsUndefined = m_jit.branchTest8(JITCompiler::NonZero, JITCompiler::Address(resultPayloadGPR, Structure::typeInfoFlagsOffset()), JITCompiler::TrustedImm32(MasqueradesAsUndefined));
+
+ m_jit.move(invert ? TrustedImm32(1) : TrustedImm32(0), resultPayloadGPR);
+ notMasqueradesAsUndefined = m_jit.jump();
+
+ isMasqueradesAsUndefined.link(&m_jit);
+ GPRTemporary localGlobalObject(this);
+ GPRTemporary remoteGlobalObject(this);
+ GPRReg localGlobalObjectGPR = localGlobalObject.gpr();
+ GPRReg remoteGlobalObjectGPR = remoteGlobalObject.gpr();
+ m_jit.move(JITCompiler::TrustedImmPtr(m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)), localGlobalObjectGPR);
+ m_jit.loadPtr(JITCompiler::Address(resultPayloadGPR, Structure::globalObjectOffset()), remoteGlobalObjectGPR);
+ m_jit.compare32(invert ? JITCompiler::NotEqual : JITCompiler::Equal, localGlobalObjectGPR, remoteGlobalObjectGPR, resultPayloadGPR);
+ }
+
if (!isKnownCell(operand.index())) {
JITCompiler::Jump done = m_jit.jump();
@@ -640,6 +659,8 @@ void SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull(Edge operand, bool inv
done.link(&m_jit);
}
+ notMasqueradesAsUndefined.link(&m_jit);
+
booleanResult(resultPayloadGPR, m_compileIndex);
}
@@ -668,9 +689,22 @@ void SpeculativeJIT::nonSpeculativePeepholeBranchNull(Edge operand, NodeIndex br
if (!isKnownCell(operand.index()))
notCell = m_jit.branch32(MacroAssembler::NotEqual, argTagGPR, TrustedImm32(JSValue::CellTag));
- m_jit.loadPtr(JITCompiler::Address(argPayloadGPR, JSCell::structureOffset()), resultGPR);
- branchTest8(invert ? JITCompiler::Zero : JITCompiler::NonZero, JITCompiler::Address(resultGPR, Structure::typeInfoFlagsOffset()), JITCompiler::TrustedImm32(MasqueradesAsUndefined), taken);
-
+ if (m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)->masqueradesAsUndefinedWatchpoint()->isStillValid()) {
+ m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)->masqueradesAsUndefinedWatchpoint()->add(speculationWatchpoint());
+ jump(invert ? taken : notTaken, ForceJump);
+ } else {
+ m_jit.loadPtr(JITCompiler::Address(argPayloadGPR, JSCell::structureOffset()), resultGPR);
+ branchTest8(JITCompiler::Zero, JITCompiler::Address(resultGPR, Structure::typeInfoFlagsOffset()), JITCompiler::TrustedImm32(MasqueradesAsUndefined), invert ? taken : notTaken);
+
+ GPRTemporary localGlobalObject(this);
+ GPRTemporary remoteGlobalObject(this);
+ GPRReg localGlobalObjectGPR = localGlobalObject.gpr();
+ GPRReg remoteGlobalObjectGPR = remoteGlobalObject.gpr();
+ m_jit.move(TrustedImmPtr(m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)), localGlobalObjectGPR);
+ m_jit.loadPtr(JITCompiler::Address(resultGPR, Structure::globalObjectOffset()), remoteGlobalObjectGPR);
+ branchPtr(JITCompiler::Equal, localGlobalObjectGPR, remoteGlobalObjectGPR, invert ? notTaken : taken);
+ }
+
if (!isKnownCell(operand.index())) {
jump(notTaken, ForceJump);
@@ -3580,9 +3614,28 @@ void SpeculativeJIT::compile(Node& node)
JITCompiler::Jump done = m_jit.jump();
isCell.link(&m_jit);
- m_jit.loadPtr(JITCompiler::Address(value.payloadGPR(), JSCell::structureOffset()), result.gpr());
- m_jit.test8(JITCompiler::NonZero, JITCompiler::Address(result.gpr(), Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined), result.gpr());
-
+ JITCompiler::Jump notMasqueradesAsUndefined;
+ if (m_jit.graph().globalObjectFor(node.codeOrigin)->masqueradesAsUndefinedWatchpoint()->isStillValid()) {
+ m_jit.graph().globalObjectFor(node.codeOrigin)->masqueradesAsUndefinedWatchpoint()->add(speculationWatchpoint());
+ m_jit.move(TrustedImm32(0), result.gpr());
+ notMasqueradesAsUndefined = m_jit.jump();
+ } else {
+ m_jit.loadPtr(JITCompiler::Address(value.payloadGPR(), JSCell::structureOffset()), result.gpr());
+ JITCompiler::Jump isMasqueradesAsUndefined = m_jit.branchTest8(JITCompiler::NonZero, JITCompiler::Address(result.gpr(), Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined));
+ m_jit.move(TrustedImm32(0), result.gpr());
+ notMasqueradesAsUndefined = m_jit.jump();
+
+ isMasqueradesAsUndefined.link(&m_jit);
+ GPRTemporary localGlobalObject(this);
+ GPRTemporary remoteGlobalObject(this);
+ GPRReg localGlobalObjectGPR = localGlobalObject.gpr();
+ GPRReg remoteGlobalObjectGPR = remoteGlobalObject.gpr();
+ m_jit.move(TrustedImmPtr(m_jit.globalObjectFor(node.codeOrigin)), localGlobalObjectGPR);
+ m_jit.loadPtr(JITCompiler::Address(result.gpr(), Structure::globalObjectOffset()), remoteGlobalObjectGPR);
+ m_jit.compare32(JITCompiler::Equal, localGlobalObjectGPR, remoteGlobalObjectGPR, result.gpr());
+ }
+
+ notMasqueradesAsUndefined.link(&m_jit);
done.link(&m_jit);
booleanResult(result.gpr(), m_compileIndex);
break;
diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
index c2e207264..b69d53600 100644
--- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
+++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
@@ -588,10 +588,29 @@ void SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull(Edge operand, bool inv
if (!isKnownCell(operand.index()))
notCell = m_jit.branchTestPtr(MacroAssembler::NonZero, argGPR, GPRInfo::tagMaskRegister);
-
- m_jit.loadPtr(JITCompiler::Address(argGPR, JSCell::structureOffset()), resultGPR);
- m_jit.test8(invert ? JITCompiler::Zero : JITCompiler::NonZero, JITCompiler::Address(resultGPR, Structure::typeInfoFlagsOffset()), JITCompiler::TrustedImm32(MasqueradesAsUndefined), resultGPR);
-
+
+ JITCompiler::Jump notMasqueradesAsUndefined;
+ if (m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)->masqueradesAsUndefinedWatchpoint()->isStillValid()) {
+ m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)->masqueradesAsUndefinedWatchpoint()->add(speculationWatchpoint());
+ m_jit.move(invert ? TrustedImm32(1) : TrustedImm32(0), resultGPR);
+ notMasqueradesAsUndefined = m_jit.jump();
+ } else {
+ m_jit.loadPtr(JITCompiler::Address(argGPR, JSCell::structureOffset()), resultGPR);
+ JITCompiler::Jump isMasqueradesAsUndefined = m_jit.branchTest8(JITCompiler::NonZero, JITCompiler::Address(resultGPR, Structure::typeInfoFlagsOffset()), JITCompiler::TrustedImm32(MasqueradesAsUndefined));
+
+ m_jit.move(invert ? TrustedImm32(1) : TrustedImm32(0), resultGPR);
+ notMasqueradesAsUndefined = m_jit.jump();
+
+ isMasqueradesAsUndefined.link(&m_jit);
+ GPRTemporary localGlobalObject(this);
+ GPRTemporary remoteGlobalObject(this);
+ GPRReg localGlobalObjectGPR = localGlobalObject.gpr();
+ GPRReg remoteGlobalObjectGPR = remoteGlobalObject.gpr();
+ m_jit.move(JITCompiler::TrustedImmPtr(m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)), localGlobalObjectGPR);
+ m_jit.loadPtr(JITCompiler::Address(resultGPR, Structure::globalObjectOffset()), remoteGlobalObjectGPR);
+ m_jit.comparePtr(invert ? JITCompiler::NotEqual : JITCompiler::Equal, localGlobalObjectGPR, remoteGlobalObjectGPR, resultGPR);
+ }
+
if (!isKnownCell(operand.index())) {
JITCompiler::Jump done = m_jit.jump();
@@ -603,7 +622,9 @@ void SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull(Edge operand, bool inv
done.link(&m_jit);
}
-
+
+ notMasqueradesAsUndefined.link(&m_jit);
+
m_jit.or32(TrustedImm32(ValueFalse), resultGPR);
jsValueResult(resultGPR, m_compileIndex, DataFormatJSBoolean);
}
@@ -632,9 +653,22 @@ void SpeculativeJIT::nonSpeculativePeepholeBranchNull(Edge operand, NodeIndex br
if (!isKnownCell(operand.index()))
notCell = m_jit.branchTestPtr(MacroAssembler::NonZero, argGPR, GPRInfo::tagMaskRegister);
- m_jit.loadPtr(JITCompiler::Address(argGPR, JSCell::structureOffset()), resultGPR);
- branchTest8(invert ? JITCompiler::Zero : JITCompiler::NonZero, JITCompiler::Address(resultGPR, Structure::typeInfoFlagsOffset()), JITCompiler::TrustedImm32(MasqueradesAsUndefined), taken);
-
+ if (m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)->masqueradesAsUndefinedWatchpoint()->isStillValid()) {
+ m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)->masqueradesAsUndefinedWatchpoint()->add(speculationWatchpoint());
+ jump(invert ? taken : notTaken, ForceJump);
+ } else {
+ m_jit.loadPtr(JITCompiler::Address(argGPR, JSCell::structureOffset()), resultGPR);
+ branchTest8(JITCompiler::Zero, JITCompiler::Address(resultGPR, Structure::typeInfoFlagsOffset()), JITCompiler::TrustedImm32(MasqueradesAsUndefined), invert ? taken : notTaken);
+
+ GPRTemporary localGlobalObject(this);
+ GPRTemporary remoteGlobalObject(this);
+ GPRReg localGlobalObjectGPR = localGlobalObject.gpr();
+ GPRReg remoteGlobalObjectGPR = remoteGlobalObject.gpr();
+ m_jit.move(TrustedImmPtr(m_jit.graph().globalObjectFor(m_jit.graph()[operand].codeOrigin)), localGlobalObjectGPR);
+ m_jit.loadPtr(JITCompiler::Address(resultGPR, Structure::globalObjectOffset()), remoteGlobalObjectGPR);
+ branchPtr(JITCompiler::Equal, localGlobalObjectGPR, remoteGlobalObjectGPR, invert ? notTaken : taken);
+ }
+
if (!isKnownCell(operand.index())) {
jump(notTaken, ForceJump);
@@ -3553,9 +3587,28 @@ void SpeculativeJIT::compile(Node& node)
JITCompiler::Jump done = m_jit.jump();
isCell.link(&m_jit);
- m_jit.loadPtr(JITCompiler::Address(value.gpr(), JSCell::structureOffset()), result.gpr());
- m_jit.test8(JITCompiler::NonZero, JITCompiler::Address(result.gpr(), Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined), result.gpr());
-
+ JITCompiler::Jump notMasqueradesAsUndefined;
+ if (m_jit.graph().globalObjectFor(node.codeOrigin)->masqueradesAsUndefinedWatchpoint()->isStillValid()) {
+ m_jit.graph().globalObjectFor(node.codeOrigin)->masqueradesAsUndefinedWatchpoint()->add(speculationWatchpoint());
+ m_jit.move(TrustedImm32(0), result.gpr());
+ notMasqueradesAsUndefined = m_jit.jump();
+ } else {
+ m_jit.loadPtr(JITCompiler::Address(value.gpr(), JSCell::structureOffset()), result.gpr());
+ JITCompiler::Jump isMasqueradesAsUndefined = m_jit.branchTest8(JITCompiler::NonZero, JITCompiler::Address(result.gpr(), Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined));
+ m_jit.move(TrustedImm32(0), result.gpr());
+ notMasqueradesAsUndefined = m_jit.jump();
+
+ isMasqueradesAsUndefined.link(&m_jit);
+ GPRTemporary localGlobalObject(this);
+ GPRTemporary remoteGlobalObject(this);
+ GPRReg localGlobalObjectGPR = localGlobalObject.gpr();
+ GPRReg remoteGlobalObjectGPR = remoteGlobalObject.gpr();
+ m_jit.move(TrustedImmPtr(m_jit.globalObjectFor(node.codeOrigin)), localGlobalObjectGPR);
+ m_jit.loadPtr(JITCompiler::Address(result.gpr(), Structure::globalObjectOffset()), remoteGlobalObjectGPR);
+ m_jit.comparePtr(JITCompiler::Equal, localGlobalObjectGPR, remoteGlobalObjectGPR, result.gpr());
+ }
+
+ notMasqueradesAsUndefined.link(&m_jit);
done.link(&m_jit);
m_jit.or32(TrustedImm32(ValueFalse), result.gpr());
jsValueResult(result.gpr(), m_compileIndex, DataFormatJSBoolean);
diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/Source/JavaScriptCore/heap/MachineStackMarker.cpp
index 537a34e48..3c7ff9c3e 100644
--- a/Source/JavaScriptCore/heap/MachineStackMarker.cpp
+++ b/Source/JavaScriptCore/heap/MachineStackMarker.cpp
@@ -133,10 +133,13 @@ public:
};
MachineThreads::MachineThreads(Heap* heap)
- : m_heap(heap)
- , m_registeredThreads(0)
+ : m_registeredThreads(0)
, m_threadSpecific(0)
+#if !ASSERT_DISABLED
+ , m_heap(heap)
+#endif
{
+ UNUSED_PARAM(heap);
}
MachineThreads::~MachineThreads()
diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.h b/Source/JavaScriptCore/heap/MachineStackMarker.h
index 3d4aa22d4..cece29cd3 100644
--- a/Source/JavaScriptCore/heap/MachineStackMarker.h
+++ b/Source/JavaScriptCore/heap/MachineStackMarker.h
@@ -52,10 +52,12 @@ namespace JSC {
void gatherFromOtherThread(ConservativeRoots&, Thread*);
- Heap* m_heap;
Mutex m_registeredThreadsMutex;
Thread* m_registeredThreads;
WTF::ThreadSpecificKey m_threadSpecific;
+#if !ASSERT_DISABLED
+ Heap* m_heap;
+#endif
};
} // namespace JSC
diff --git a/Source/JavaScriptCore/interpreter/Interpreter.cpp b/Source/JavaScriptCore/interpreter/Interpreter.cpp
index a9118f43b..f6a197ef0 100644
--- a/Source/JavaScriptCore/interpreter/Interpreter.cpp
+++ b/Source/JavaScriptCore/interpreter/Interpreter.cpp
@@ -2118,7 +2118,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
NEXT_INSTRUCTION();
}
- callFrame->uncheckedR(dst) = jsBoolean(src.isCell() && src.asCell()->structure()->typeInfo().masqueradesAsUndefined());
+ callFrame->uncheckedR(dst) = jsBoolean(src.isCell() && src.asCell()->structure()->masqueradesAsUndefined(callFrame->lexicalGlobalObject()));
vPC += OPCODE_LENGTH(op_eq_null);
NEXT_INSTRUCTION();
}
@@ -2158,7 +2158,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
NEXT_INSTRUCTION();
}
- callFrame->uncheckedR(dst) = jsBoolean(!src.isCell() || !src.asCell()->structure()->typeInfo().masqueradesAsUndefined());
+ callFrame->uncheckedR(dst) = jsBoolean(!src.isCell() || !src.asCell()->structure()->masqueradesAsUndefined(callFrame->lexicalGlobalObject()));
vPC += OPCODE_LENGTH(op_neq_null);
NEXT_INSTRUCTION();
}
@@ -2632,7 +2632,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
*/
int dst = vPC[1].u.operand;
int src = vPC[2].u.operand;
- JSValue result = jsBoolean(!callFrame->r(src).jsValue().toBoolean());
+ JSValue result = jsBoolean(!callFrame->r(src).jsValue().toBoolean(callFrame));
CHECK_FOR_EXCEPTION();
callFrame->uncheckedR(dst) = result;
@@ -2708,7 +2708,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
int dst = vPC[1].u.operand;
int src = vPC[2].u.operand;
JSValue v = callFrame->r(src).jsValue();
- callFrame->uncheckedR(dst) = jsBoolean(v.isCell() ? v.asCell()->structure()->typeInfo().masqueradesAsUndefined() : v.isUndefined());
+ callFrame->uncheckedR(dst) = jsBoolean(v.isCell() ? v.asCell()->structure()->masqueradesAsUndefined(callFrame->lexicalGlobalObject()) : v.isUndefined());
vPC += OPCODE_LENGTH(op_is_undefined);
NEXT_INSTRUCTION();
@@ -2764,7 +2764,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
*/
int dst = vPC[1].u.operand;
int src = vPC[2].u.operand;
- callFrame->uncheckedR(dst) = jsBoolean(jsIsObjectType(callFrame->r(src).jsValue()));
+ callFrame->uncheckedR(dst) = jsBoolean(jsIsObjectType(callFrame, callFrame->r(src).jsValue()));
vPC += OPCODE_LENGTH(op_is_object);
NEXT_INSTRUCTION();
@@ -3980,7 +3980,7 @@ skip_id_custom_self:
*/
int cond = vPC[1].u.operand;
int target = vPC[2].u.operand;
- if (callFrame->r(cond).jsValue().toBoolean()) {
+ if (callFrame->r(cond).jsValue().toBoolean(callFrame)) {
vPC += target;
CHECK_FOR_TIMEOUT();
NEXT_INSTRUCTION();
@@ -4000,7 +4000,7 @@ skip_id_custom_self:
*/
int cond = vPC[1].u.operand;
int target = vPC[2].u.operand;
- if (!callFrame->r(cond).jsValue().toBoolean()) {
+ if (!callFrame->r(cond).jsValue().toBoolean(callFrame)) {
vPC += target;
CHECK_FOR_TIMEOUT();
NEXT_INSTRUCTION();
@@ -4017,7 +4017,7 @@ skip_id_custom_self:
*/
int cond = vPC[1].u.operand;
int target = vPC[2].u.operand;
- if (callFrame->r(cond).jsValue().toBoolean()) {
+ if (callFrame->r(cond).jsValue().toBoolean(callFrame)) {
vPC += target;
NEXT_INSTRUCTION();
}
@@ -4033,7 +4033,7 @@ skip_id_custom_self:
*/
int cond = vPC[1].u.operand;
int target = vPC[2].u.operand;
- if (!callFrame->r(cond).jsValue().toBoolean()) {
+ if (!callFrame->r(cond).jsValue().toBoolean(callFrame)) {
vPC += target;
NEXT_INSTRUCTION();
}
@@ -4051,7 +4051,7 @@ skip_id_custom_self:
int target = vPC[2].u.operand;
JSValue srcValue = callFrame->r(src).jsValue();
- if (srcValue.isUndefinedOrNull() || (srcValue.isCell() && srcValue.asCell()->structure()->typeInfo().masqueradesAsUndefined())) {
+ if (srcValue.isUndefinedOrNull() || (srcValue.isCell() && srcValue.asCell()->structure()->masqueradesAsUndefined(callFrame->lexicalGlobalObject()))) {
vPC += target;
NEXT_INSTRUCTION();
}
@@ -4069,7 +4069,7 @@ skip_id_custom_self:
int target = vPC[2].u.operand;
JSValue srcValue = callFrame->r(src).jsValue();
- if (!srcValue.isUndefinedOrNull() && (!srcValue.isCell() || !srcValue.asCell()->structure()->typeInfo().masqueradesAsUndefined())) {
+ if (!srcValue.isUndefinedOrNull() && (!srcValue.isCell() || !(srcValue.asCell()->structure()->masqueradesAsUndefined(callFrame->lexicalGlobalObject())))) {
vPC += target;
NEXT_INSTRUCTION();
}
diff --git a/Source/JavaScriptCore/jit/JITOpcodes.cpp b/Source/JavaScriptCore/jit/JITOpcodes.cpp
index 0d24961b8..8ebad61ff 100644
--- a/Source/JavaScriptCore/jit/JITOpcodes.cpp
+++ b/Source/JavaScriptCore/jit/JITOpcodes.cpp
@@ -479,8 +479,16 @@ void JIT::emit_op_is_undefined(Instruction* currentInstruction)
isCell.link(this);
loadPtr(Address(regT0, JSCell::structureOffset()), regT1);
- test8(NonZero, Address(regT1, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined), regT0);
-
+ Jump isMasqueradesAsUndefined = branchTest8(NonZero, Address(regT1, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined));
+ move(TrustedImm32(0), regT0);
+ Jump notMasqueradesAsUndefined = jump();
+
+ isMasqueradesAsUndefined.link(this);
+ move(TrustedImmPtr(m_codeBlock->globalObject()), regT0);
+ loadPtr(Address(regT1, Structure::globalObjectOffset()), regT1);
+ comparePtr(Equal, regT0, regT1, regT0);
+
+ notMasqueradesAsUndefined.link(this);
done.link(this);
emitTagAsBoolImmediate(regT0);
emitPutVirtualRegister(dst);
@@ -760,15 +768,18 @@ void JIT::emit_op_jeq_null(Instruction* currentInstruction)
// First, handle JSCell cases - check MasqueradesAsUndefined bit on the structure.
loadPtr(Address(regT0, JSCell::structureOffset()), regT2);
- addJump(branchTest8(NonZero, Address(regT2, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined)), target);
- Jump wasNotImmediate = jump();
+ Jump isNotMasqueradesAsUndefined = branchTest8(Zero, Address(regT2, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined));
+ move(TrustedImmPtr(m_codeBlock->globalObject()), regT0);
+ addJump(branchPtr(Equal, Address(regT2, Structure::globalObjectOffset()), regT0), target);
+ Jump masqueradesGlobalObjectIsForeign = jump();
// Now handle the immediate cases - undefined & null
isImmediate.link(this);
andPtr(TrustedImm32(~TagBitUndefined), regT0);
addJump(branchPtr(Equal, regT0, TrustedImmPtr(JSValue::encode(jsNull()))), target);
- wasNotImmediate.link(this);
+ isNotMasqueradesAsUndefined.link(this);
+ masqueradesGlobalObjectIsForeign.link(this);
};
void JIT::emit_op_jneq_null(Instruction* currentInstruction)
{
@@ -781,6 +792,8 @@ void JIT::emit_op_jneq_null(Instruction* currentInstruction)
// First, handle JSCell cases - check MasqueradesAsUndefined bit on the structure.
loadPtr(Address(regT0, JSCell::structureOffset()), regT2);
addJump(branchTest8(Zero, Address(regT2, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined)), target);
+ move(TrustedImmPtr(m_codeBlock->globalObject()), regT0);
+ addJump(branchPtr(NotEqual, Address(regT2, Structure::globalObjectOffset()), regT0), target);
Jump wasNotImmediate = jump();
// Now handle the immediate cases - undefined & null
@@ -1172,8 +1185,14 @@ void JIT::emit_op_eq_null(Instruction* currentInstruction)
Jump isImmediate = emitJumpIfNotJSCell(regT0);
loadPtr(Address(regT0, JSCell::structureOffset()), regT2);
- test8(NonZero, Address(regT2, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined), regT0);
-
+ Jump isMasqueradesAsUndefined = branchTest8(NonZero, Address(regT2, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined));
+ move(TrustedImm32(0), regT0);
+ Jump wasNotMasqueradesAsUndefined = jump();
+
+ isMasqueradesAsUndefined.link(this);
+ move(TrustedImmPtr(m_codeBlock->globalObject()), regT0);
+ loadPtr(Address(regT2, Structure::globalObjectOffset()), regT2);
+ comparePtr(Equal, regT0, regT2, regT0);
Jump wasNotImmediate = jump();
isImmediate.link(this);
@@ -1182,6 +1201,7 @@ void JIT::emit_op_eq_null(Instruction* currentInstruction)
comparePtr(Equal, regT0, TrustedImm32(ValueNull), regT0);
wasNotImmediate.link(this);
+ wasNotMasqueradesAsUndefined.link(this);
emitTagAsBoolImmediate(regT0);
emitPutVirtualRegister(dst);
@@ -1197,8 +1217,14 @@ void JIT::emit_op_neq_null(Instruction* currentInstruction)
Jump isImmediate = emitJumpIfNotJSCell(regT0);
loadPtr(Address(regT0, JSCell::structureOffset()), regT2);
- test8(Zero, Address(regT2, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined), regT0);
-
+ Jump isMasqueradesAsUndefined = branchTest8(NonZero, Address(regT2, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined));
+ move(TrustedImm32(1), regT0);
+ Jump wasNotMasqueradesAsUndefined = jump();
+
+ isMasqueradesAsUndefined.link(this);
+ move(TrustedImmPtr(m_codeBlock->globalObject()), regT0);
+ loadPtr(Address(regT2, Structure::globalObjectOffset()), regT2);
+ comparePtr(NotEqual, regT0, regT2, regT0);
Jump wasNotImmediate = jump();
isImmediate.link(this);
@@ -1207,6 +1233,7 @@ void JIT::emit_op_neq_null(Instruction* currentInstruction)
comparePtr(NotEqual, regT0, TrustedImm32(ValueNull), regT0);
wasNotImmediate.link(this);
+ wasNotMasqueradesAsUndefined.link(this);
emitTagAsBoolImmediate(regT0);
emitPutVirtualRegister(dst);
diff --git a/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp b/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp
index eec9df36f..00c886eb7 100644
--- a/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp
+++ b/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp
@@ -646,8 +646,16 @@ void JIT::emit_op_is_undefined(Instruction* currentInstruction)
isCell.link(this);
loadPtr(Address(regT0, JSCell::structureOffset()), regT1);
- test8(NonZero, Address(regT1, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined), regT0);
+ Jump isMasqueradesAsUndefined = branchTest8(NonZero, Address(regT1, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined));
+ move(TrustedImm32(0), regT0);
+ Jump notMasqueradesAsUndefined = jump();
+ isMasqueradesAsUndefined.link(this);
+ move(TrustedImmPtr(m_codeBlock->globalObject()), regT0);
+ loadPtr(Address(regT1, Structure::globalObjectOffset()), regT1);
+ compare32(Equal, regT0, regT1, regT0);
+
+ notMasqueradesAsUndefined.link(this);
done.link(this);
emitStoreBool(dst, regT0);
}
@@ -930,18 +938,19 @@ void JIT::emit_op_jeq_null(Instruction* currentInstruction)
// First, handle JSCell cases - check MasqueradesAsUndefined bit on the structure.
loadPtr(Address(regT0, JSCell::structureOffset()), regT2);
- addJump(branchTest8(NonZero, Address(regT2, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined)), target);
-
- Jump wasNotImmediate = jump();
+ Jump isNotMasqueradesAsUndefined = branchTest8(Zero, Address(regT2, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined));
+ move(TrustedImmPtr(m_codeBlock->globalObject()), regT0);
+ addJump(branchPtr(Equal, Address(regT2, Structure::globalObjectOffset()), regT0), target);
+ Jump masqueradesGlobalObjectIsForeign = jump();
// Now handle the immediate cases - undefined & null
isImmediate.link(this);
-
ASSERT((JSValue::UndefinedTag + 1 == JSValue::NullTag) && (JSValue::NullTag & 0x1));
or32(TrustedImm32(1), regT1);
addJump(branch32(Equal, regT1, TrustedImm32(JSValue::NullTag)), target);
- wasNotImmediate.link(this);
+ isNotMasqueradesAsUndefined.link(this);
+ masqueradesGlobalObjectIsForeign.link(this);
}
void JIT::emit_op_jneq_null(Instruction* currentInstruction)
@@ -956,7 +965,8 @@ void JIT::emit_op_jneq_null(Instruction* currentInstruction)
// First, handle JSCell cases - check MasqueradesAsUndefined bit on the structure.
loadPtr(Address(regT0, JSCell::structureOffset()), regT2);
addJump(branchTest8(Zero, Address(regT2, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined)), target);
-
+ move(TrustedImmPtr(m_codeBlock->globalObject()), regT0);
+ addJump(branchPtr(NotEqual, Address(regT2, Structure::globalObjectOffset()), regT0), target);
Jump wasNotImmediate = jump();
// Now handle the immediate cases - undefined & null
@@ -1158,8 +1168,14 @@ void JIT::emit_op_eq_null(Instruction* currentInstruction)
Jump isImmediate = branch32(NotEqual, regT1, TrustedImm32(JSValue::CellTag));
loadPtr(Address(regT0, JSCell::structureOffset()), regT1);
- test8(NonZero, Address(regT1, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined), regT1);
-
+ Jump isMasqueradesAsUndefined = branchTest8(NonZero, Address(regT1, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined));
+ move(TrustedImm32(0), regT1);
+ Jump wasNotMasqueradesAsUndefined = jump();
+
+ isMasqueradesAsUndefined.link(this);
+ move(TrustedImmPtr(m_codeBlock->globalObject()), regT0);
+ loadPtr(Address(regT2, Structure::globalObjectOffset()), regT2);
+ compare32(Equal, regT0, regT2, regT1);
Jump wasNotImmediate = jump();
isImmediate.link(this);
@@ -1169,6 +1185,7 @@ void JIT::emit_op_eq_null(Instruction* currentInstruction)
or32(regT2, regT1);
wasNotImmediate.link(this);
+ wasNotMasqueradesAsUndefined.link(this);
emitStoreBool(dst, regT1);
}
@@ -1182,8 +1199,14 @@ void JIT::emit_op_neq_null(Instruction* currentInstruction)
Jump isImmediate = branch32(NotEqual, regT1, TrustedImm32(JSValue::CellTag));
loadPtr(Address(regT0, JSCell::structureOffset()), regT1);
- test8(Zero, Address(regT1, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined), regT1);
-
+ Jump isMasqueradesAsUndefined = branchTest8(NonZero, Address(regT1, Structure::typeInfoFlagsOffset()), TrustedImm32(MasqueradesAsUndefined));
+ move(TrustedImm32(1), regT1);
+ Jump wasNotMasqueradesAsUndefined = jump();
+
+ isMasqueradesAsUndefined.link(this);
+ move(TrustedImmPtr(m_codeBlock->globalObject()), regT0);
+ loadPtr(Address(regT2, Structure::globalObjectOffset()), regT2);
+ compare32(NotEqual, regT0, regT2, regT1);
Jump wasNotImmediate = jump();
isImmediate.link(this);
@@ -1193,6 +1216,7 @@ void JIT::emit_op_neq_null(Instruction* currentInstruction)
and32(regT2, regT1);
wasNotImmediate.link(this);
+ wasNotMasqueradesAsUndefined.link(this);
emitStoreBool(dst, regT1);
}
diff --git a/Source/JavaScriptCore/jit/JITStubCall.h b/Source/JavaScriptCore/jit/JITStubCall.h
index a525ff227..352956559 100644
--- a/Source/JavaScriptCore/jit/JITStubCall.h
+++ b/Source/JavaScriptCore/jit/JITStubCall.h
@@ -37,7 +37,9 @@ namespace JSC {
JITStubCall(JIT* jit, JSObject* (JIT_STUB *stub)(STUB_ARGS_DECLARATION))
: m_jit(jit)
, m_stub(stub)
+#if USE(JSVALUE32_64) || !ASSERT_DISABLED
, m_returnType(Cell)
+#endif
, m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
{
}
@@ -45,7 +47,9 @@ namespace JSC {
JITStubCall(JIT* jit, JSPropertyNameIterator* (JIT_STUB *stub)(STUB_ARGS_DECLARATION))
: m_jit(jit)
, m_stub(stub)
+#if USE(JSVALUE32_64) || !ASSERT_DISABLED
, m_returnType(Cell)
+#endif
, m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
{
}
@@ -53,7 +57,9 @@ namespace JSC {
JITStubCall(JIT* jit, void* (JIT_STUB *stub)(STUB_ARGS_DECLARATION))
: m_jit(jit)
, m_stub(stub)
+#if USE(JSVALUE32_64) || !ASSERT_DISABLED
, m_returnType(VoidPtr)
+#endif
, m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
{
}
@@ -61,7 +67,9 @@ namespace JSC {
JITStubCall(JIT* jit, int (JIT_STUB *stub)(STUB_ARGS_DECLARATION))
: m_jit(jit)
, m_stub(stub)
+#if USE(JSVALUE32_64) || !ASSERT_DISABLED
, m_returnType(Int)
+#endif
, m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
{
}
@@ -69,7 +77,9 @@ namespace JSC {
JITStubCall(JIT* jit, bool (JIT_STUB *stub)(STUB_ARGS_DECLARATION))
: m_jit(jit)
, m_stub(stub)
+#if USE(JSVALUE32_64) || !ASSERT_DISABLED
, m_returnType(Int)
+#endif
, m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
{
}
@@ -77,7 +87,9 @@ namespace JSC {
JITStubCall(JIT* jit, void (JIT_STUB *stub)(STUB_ARGS_DECLARATION))
: m_jit(jit)
, m_stub(stub)
+#if USE(JSVALUE32_64) || !ASSERT_DISABLED
, m_returnType(Void)
+#endif
, m_stackIndex(JITSTACKFRAME_ARGS_INDEX)
{
}
@@ -265,7 +277,9 @@ namespace JSC {
JIT* m_jit;
FunctionPtr m_stub;
+#if USE(JSVALUE32_64) || !ASSERT_DISABLED
enum { Void, VoidPtr, Int, Value, Cell } m_returnType;
+#endif
size_t m_stackIndex;
};
}
diff --git a/Source/JavaScriptCore/jit/JITStubs.cpp b/Source/JavaScriptCore/jit/JITStubs.cpp
index cb5adc2fa..cc899587f 100644
--- a/Source/JavaScriptCore/jit/JITStubs.cpp
+++ b/Source/JavaScriptCore/jit/JITStubs.cpp
@@ -2777,7 +2777,7 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_not)
JSValue src = stackFrame.args[0].jsValue();
- JSValue result = jsBoolean(!src.toBoolean());
+ JSValue result = jsBoolean(!src.toBoolean(stackFrame.callFrame));
CHECK_FOR_EXCEPTION_AT_END();
return JSValue::encode(result);
}
@@ -2788,7 +2788,7 @@ DEFINE_STUB_FUNCTION(int, op_jtrue)
JSValue src1 = stackFrame.args[0].jsValue();
- bool result = src1.toBoolean();
+ bool result = src1.toBoolean(stackFrame.callFrame);
CHECK_FOR_EXCEPTION_AT_END();
return result;
}
@@ -2819,13 +2819,13 @@ DEFINE_STUB_FUNCTION(int, op_eq)
start:
if (src2.isUndefined()) {
return src1.isNull() ||
- (src1.isCell() && src1.asCell()->structure()->typeInfo().masqueradesAsUndefined())
+ (src1.isCell() && src1.asCell()->structure()->masqueradesAsUndefined(stackFrame.callFrame->lexicalGlobalObject()))
|| src1.isUndefined();
}
if (src2.isNull()) {
return src1.isUndefined() ||
- (src1.isCell() && src1.asCell()->structure()->typeInfo().masqueradesAsUndefined())
+ (src1.isCell() && src1.asCell()->structure()->masqueradesAsUndefined(stackFrame.callFrame->lexicalGlobalObject()))
|| src1.isNull();
}
@@ -2862,10 +2862,10 @@ DEFINE_STUB_FUNCTION(int, op_eq)
}
if (src1.isUndefined())
- return src2.isCell() && src2.asCell()->structure()->typeInfo().masqueradesAsUndefined();
+ return src2.isCell() && src2.asCell()->structure()->masqueradesAsUndefined(stackFrame.callFrame->lexicalGlobalObject());
if (src1.isNull())
- return src2.isCell() && src2.asCell()->structure()->typeInfo().masqueradesAsUndefined();
+ return src2.isCell() && src2.asCell()->structure()->masqueradesAsUndefined(stackFrame.callFrame->lexicalGlobalObject());
JSCell* cell1 = src1.asCell();
@@ -3178,7 +3178,7 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_is_object)
{
STUB_INIT_STACK_FRAME(stackFrame);
- return JSValue::encode(jsBoolean(jsIsObjectType(stackFrame.args[0].jsValue())));
+ return JSValue::encode(jsBoolean(jsIsObjectType(stackFrame.callFrame, stackFrame.args[0].jsValue())));
}
DEFINE_STUB_FUNCTION(EncodedJSValue, op_is_function)
diff --git a/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp b/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
index 58bf1bdeb..eef54ac7b 100644
--- a/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
+++ b/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
@@ -517,7 +517,7 @@ LLINT_SLOW_PATH_DECL(slow_path_new_regexp)
LLINT_SLOW_PATH_DECL(slow_path_not)
{
LLINT_BEGIN();
- LLINT_RETURN(jsBoolean(!LLINT_OP_C(2).jsValue().toBoolean()));
+ LLINT_RETURN(jsBoolean(!LLINT_OP_C(2).jsValue().toBoolean(exec)));
}
LLINT_SLOW_PATH_DECL(slow_path_eq)
@@ -739,7 +739,7 @@ LLINT_SLOW_PATH_DECL(slow_path_typeof)
LLINT_SLOW_PATH_DECL(slow_path_is_object)
{
LLINT_BEGIN();
- LLINT_RETURN(jsBoolean(jsIsObjectType(LLINT_OP_C(2).jsValue())));
+ LLINT_RETURN(jsBoolean(jsIsObjectType(exec, LLINT_OP_C(2).jsValue())));
}
LLINT_SLOW_PATH_DECL(slow_path_is_function)
@@ -1173,13 +1173,13 @@ LLINT_SLOW_PATH_DECL(slow_path_jmp_scopes)
LLINT_SLOW_PATH_DECL(slow_path_jtrue)
{
LLINT_BEGIN();
- LLINT_BRANCH(op_jtrue, LLINT_OP_C(1).jsValue().toBoolean());
+ LLINT_BRANCH(op_jtrue, LLINT_OP_C(1).jsValue().toBoolean(exec));
}
LLINT_SLOW_PATH_DECL(slow_path_jfalse)
{
LLINT_BEGIN();
- LLINT_BRANCH(op_jfalse, !LLINT_OP_C(1).jsValue().toBoolean());
+ LLINT_BRANCH(op_jfalse, !LLINT_OP_C(1).jsValue().toBoolean(exec));
}
LLINT_SLOW_PATH_DECL(slow_path_jless)
diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
index 5f280ce1b..c0f136889 100644
--- a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
@@ -444,7 +444,13 @@ _llint_op_eq_null:
loadi PayloadOffset[cfr, t0, 8], t0
bineq t1, CellTag, .opEqNullImmediate
loadp JSCell::m_structure[t0], t1
- tbnz Structure::m_typeInfo + TypeInfo::m_flags[t1], MasqueradesAsUndefined, t1
+ btbnz Structure::m_typeInfo + TypeInfo::m_flags[t1], MasqueradesAsUndefined, .opEqNullMasqueradesAsUndefined
+ move 0, t1
+ jmp .opEqNullNotImmediate
+.opEqNullMasqueradesAsUndefined:
+ loadp CodeBlock[cfr], t0
+ loadp CodeBlock::m_globalObject[t0], t0
+ cpeq Structure::m_globalObject[t1], t0, t1
jmp .opEqNullNotImmediate
.opEqNullImmediate:
cieq t1, NullTag, t2
@@ -485,7 +491,13 @@ _llint_op_neq_null:
loadi PayloadOffset[cfr, t0, 8], t0
bineq t1, CellTag, .opNeqNullImmediate
loadp JSCell::m_structure[t0], t1
- tbz Structure::m_typeInfo + TypeInfo::m_flags[t1], MasqueradesAsUndefined, t1
+ btbnz Structure::m_typeInfo + TypeInfo::m_flags[t1], MasqueradesAsUndefined, .opNeqNullMasqueradesAsUndefined
+ move 1, t1
+ jmp .opNeqNullNotImmediate
+.opNeqNullMasqueradesAsUndefined:
+ loadp CodeBlock[cfr], t0
+ loadp CodeBlock::m_globalObject[t0], t0
+ cpneq Structure::m_globalObject[t1], t0, t1
jmp .opNeqNullNotImmediate
.opNeqNullImmediate:
cineq t1, NullTag, t2
@@ -875,7 +887,14 @@ _llint_op_is_undefined:
dispatch(3)
.opIsUndefinedCell:
loadp JSCell::m_structure[t3], t1
- tbnz Structure::m_typeInfo + TypeInfo::m_flags[t1], MasqueradesAsUndefined, t1
+ btbnz Structure::m_typeInfo + TypeInfo::m_flags[t1], MasqueradesAsUndefined, .opIsUndefinedMasqueradesAsUndefined
+ move 0, t1
+ storei t1, PayloadOffset[cfr, t0, 8]
+ dispatch(3)
+.opIsUndefinedMasqueradesAsUndefined:
+ loadp CodeBlock[cfr], t3
+ loadp CodeBlock::m_globalObject[t3], t3
+ cpeq Structure::m_globalObject[t1], t3, t1
storei t1, PayloadOffset[cfr, t0, 8]
dispatch(3)
@@ -1406,7 +1425,7 @@ macro equalNull(cellHandler, immediateHandler)
loadi PayloadOffset[cfr, t0, 8], t0
bineq t1, CellTag, .immediate
loadp JSCell::m_structure[t0], t2
- cellHandler(Structure::m_typeInfo + TypeInfo::m_flags[t2], .target)
+ cellHandler(t2, Structure::m_typeInfo + TypeInfo::m_flags[t2], .target)
dispatch(3)
.target:
@@ -1421,14 +1440,25 @@ end
_llint_op_jeq_null:
traceExecution()
equalNull(
- macro (value, target) btbnz value, MasqueradesAsUndefined, target end,
+ macro (structure, value, target)
+ btbz value, MasqueradesAsUndefined, .opJeqNullNotMasqueradesAsUndefined
+ loadp CodeBlock[cfr], t0
+ loadp CodeBlock::m_globalObject[t0], t0
+ bpeq Structure::m_globalObject[structure], t0, target
+.opJeqNullNotMasqueradesAsUndefined:
+ end,
macro (value, target) bieq value, NullTag, target end)
_llint_op_jneq_null:
traceExecution()
equalNull(
- macro (value, target) btbz value, MasqueradesAsUndefined, target end,
+ macro (structure, value, target)
+ btbz value, MasqueradesAsUndefined, target
+ loadp CodeBlock[cfr], t0
+ loadp CodeBlock::m_globalObject[t0], t0
+ bpneq Structure::m_globalObject[structure], t0, target
+ end,
macro (value, target) bineq value, NullTag, target end)
diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
index f1a7e2998..73e8613de 100644
--- a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
@@ -324,7 +324,13 @@ macro equalNullComparison()
loadp [cfr, t0, 8], t0
btpnz t0, tagMask, .immediate
loadp JSCell::m_structure[t0], t2
- tbnz Structure::m_typeInfo + TypeInfo::m_flags[t2], MasqueradesAsUndefined, t0
+ btbnz Structure::m_typeInfo + TypeInfo::m_flags[t2], MasqueradesAsUndefined, .masqueradesAsUndefined
+ move 0, t0
+ jmp .done
+.masqueradesAsUndefined:
+ loadp CodeBlock[cfr], t0
+ loadp CodeBlock::m_globalObject[t0], t0
+ cpeq Structure::m_globalObject[t2], t0, t0
jmp .done
.immediate:
andp ~TagBitUndefined, t0
@@ -733,10 +739,17 @@ _llint_op_is_undefined:
dispatch(3)
.opIsUndefinedCell:
loadp JSCell::m_structure[t0], t0
- tbnz Structure::m_typeInfo + TypeInfo::m_flags[t0], MasqueradesAsUndefined, t1
- orp ValueFalse, t1
+ btbnz Structure::m_typeInfo + TypeInfo::m_flags[t0], MasqueradesAsUndefined, .masqueradesAsUndefined
+ move ValueFalse, t1
storep t1, [cfr, t2, 8]
dispatch(3)
+.masqueradesAsUndefined:
+ loadp CodeBlock[cfr], t1
+ loadp CodeBlock::m_globalObject[t1], t1
+ cpeq Structure::m_globalObject[t0], t1, t3
+ orp ValueFalse, t3
+ storep t3, [cfr, t2, 8]
+ dispatch(3)
_llint_op_is_boolean:
@@ -1250,7 +1263,7 @@ macro equalNull(cellHandler, immediateHandler)
loadp [cfr, t0, 8], t0
btpnz t0, tagMask, .immediate
loadp JSCell::m_structure[t0], t2
- cellHandler(Structure::m_typeInfo + TypeInfo::m_flags[t2], .target)
+ cellHandler(t2, Structure::m_typeInfo + TypeInfo::m_flags[t2], .target)
dispatch(3)
.target:
@@ -1265,14 +1278,25 @@ end
_llint_op_jeq_null:
traceExecution()
equalNull(
- macro (value, target) btbnz value, MasqueradesAsUndefined, target end,
+ macro (structure, value, target)
+ btbz value, MasqueradesAsUndefined, .notMasqueradesAsUndefined
+ loadp CodeBlock[cfr], t0
+ loadp CodeBlock::m_globalObject[t0], t0
+ bpeq Structure::m_globalObject[structure], t0, target
+.notMasqueradesAsUndefined:
+ end,
macro (value, target) bpeq value, ValueNull, target end)
_llint_op_jneq_null:
traceExecution()
equalNull(
- macro (value, target) btbz value, MasqueradesAsUndefined, target end,
+ macro (structure, value, target)
+ btbz value, MasqueradesAsUndefined, target
+ loadp CodeBlock[cfr], t0
+ loadp CodeBlock::m_globalObject[t0], t0
+ bpneq Structure::m_globalObject[structure], t0, target
+ end,
macro (value, target) bpneq value, ValueNull, target end)
diff --git a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp b/Source/JavaScriptCore/runtime/ArrayPrototype.cpp
index b0adb7f0f..a97cf82de 100644
--- a/Source/JavaScriptCore/runtime/ArrayPrototype.cpp
+++ b/Source/JavaScriptCore/runtime/ArrayPrototype.cpp
@@ -797,7 +797,7 @@ EncodedJSValue JSC_HOST_CALL arrayProtoFuncFilter(ExecState* exec)
cachedCall.setArgument(2, thisObj);
JSValue result = cachedCall.call();
- if (result.toBoolean())
+ if (result.toBoolean(exec))
resultArray->putDirectIndex(exec, filterIndex++, v);
}
if (k == length)
@@ -818,7 +818,7 @@ EncodedJSValue JSC_HOST_CALL arrayProtoFuncFilter(ExecState* exec)
eachArguments.append(thisObj);
JSValue result = call(exec, function, callType, callData, applyThis, eachArguments);
- if (result.toBoolean())
+ if (result.toBoolean(exec))
resultArray->putDirectIndex(exec, filterIndex++, v);
}
return JSValue::encode(resultArray);
@@ -917,7 +917,7 @@ EncodedJSValue JSC_HOST_CALL arrayProtoFuncEvery(ExecState* exec)
cachedCall.setArgument(1, jsNumber(k));
cachedCall.setArgument(2, thisObj);
JSValue result = cachedCall.call();
- if (!result.toBoolean())
+ if (!result.toBoolean(exec))
return JSValue::encode(jsBoolean(false));
}
}
@@ -934,7 +934,7 @@ EncodedJSValue JSC_HOST_CALL arrayProtoFuncEvery(ExecState* exec)
if (exec->hadException())
return JSValue::encode(jsUndefined());
- bool predicateResult = call(exec, function, callType, callData, applyThis, eachArguments).toBoolean();
+ bool predicateResult = call(exec, function, callType, callData, applyThis, eachArguments).toBoolean(exec);
if (!predicateResult) {
result = jsBoolean(false);
break;
@@ -1025,7 +1025,7 @@ EncodedJSValue JSC_HOST_CALL arrayProtoFuncSome(ExecState* exec)
cachedCall.setArgument(1, jsNumber(k));
cachedCall.setArgument(2, thisObj);
JSValue result = cachedCall.call();
- if (result.toBoolean())
+ if (result.toBoolean(exec))
return JSValue::encode(jsBoolean(true));
}
}
@@ -1042,7 +1042,7 @@ EncodedJSValue JSC_HOST_CALL arrayProtoFuncSome(ExecState* exec)
if (exec->hadException())
return JSValue::encode(jsUndefined());
- bool predicateResult = call(exec, function, callType, callData, applyThis, eachArguments).toBoolean();
+ bool predicateResult = call(exec, function, callType, callData, applyThis, eachArguments).toBoolean(exec);
if (predicateResult) {
result = jsBoolean(true);
break;
diff --git a/Source/JavaScriptCore/runtime/BooleanConstructor.cpp b/Source/JavaScriptCore/runtime/BooleanConstructor.cpp
index 090be0aaa..9b666292c 100644
--- a/Source/JavaScriptCore/runtime/BooleanConstructor.cpp
+++ b/Source/JavaScriptCore/runtime/BooleanConstructor.cpp
@@ -49,7 +49,7 @@ void BooleanConstructor::finishCreation(ExecState* exec, BooleanPrototype* boole
JSObject* constructBoolean(ExecState* exec, const ArgList& args)
{
BooleanObject* obj = BooleanObject::create(exec->globalData(), asInternalFunction(exec->callee())->globalObject()->booleanObjectStructure());
- obj->setInternalValue(exec->globalData(), jsBoolean(args.at(0).toBoolean()));
+ obj->setInternalValue(exec->globalData(), jsBoolean(args.at(0).toBoolean(exec)));
return obj;
}
@@ -68,7 +68,7 @@ ConstructType BooleanConstructor::getConstructData(JSCell*, ConstructData& const
// ECMA 15.6.1
static EncodedJSValue JSC_HOST_CALL callBooleanConstructor(ExecState* exec)
{
- return JSValue::encode(jsBoolean(exec->argument(0).toBoolean()));
+ return JSValue::encode(jsBoolean(exec->argument(0).toBoolean(exec)));
}
CallType BooleanConstructor::getCallData(JSCell*, CallData& callData)
diff --git a/Source/JavaScriptCore/runtime/BooleanObject.h b/Source/JavaScriptCore/runtime/BooleanObject.h
index 2704ff3cd..bd0f66944 100644
--- a/Source/JavaScriptCore/runtime/BooleanObject.h
+++ b/Source/JavaScriptCore/runtime/BooleanObject.h
@@ -27,8 +27,8 @@ namespace JSC {
class BooleanObject : public JSWrapperObject {
protected:
- BooleanObject(JSGlobalData&, Structure*);
- void finishCreation(JSGlobalData&);
+ JS_EXPORT_PRIVATE BooleanObject(JSGlobalData&, Structure*);
+ JS_EXPORT_PRIVATE void finishCreation(JSGlobalData&);
public:
typedef JSWrapperObject Base;
@@ -40,7 +40,7 @@ namespace JSC {
return boolean;
}
- static const ClassInfo s_info;
+ static JS_EXPORTDATA const ClassInfo s_info;
static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue prototype)
{
diff --git a/Source/JavaScriptCore/runtime/JSCell.h b/Source/JavaScriptCore/runtime/JSCell.h
index 90e531cec..39f98356f 100644
--- a/Source/JavaScriptCore/runtime/JSCell.h
+++ b/Source/JavaScriptCore/runtime/JSCell.h
@@ -98,7 +98,7 @@ namespace JSC {
// Basic conversions.
JS_EXPORT_PRIVATE JSValue toPrimitive(ExecState*, PreferredPrimitiveType) const;
bool getPrimitiveNumber(ExecState*, double& number, JSValue&) const;
- bool toBoolean() const;
+ bool toBoolean(ExecState*) const;
JS_EXPORT_PRIVATE double toNumber(ExecState*) const;
JS_EXPORT_PRIVATE JSObject* toObject(ExecState*, JSGlobalObject*) const;
diff --git a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp b/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
index 0edc0a8a9..ff7b1486f 100644
--- a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
+++ b/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
@@ -115,6 +115,7 @@ template <typename T> static inline void visitIfNeeded(SlotVisitor& visitor, Wri
JSGlobalObject::JSGlobalObject(JSGlobalData& globalData, Structure* structure, const GlobalObjectMethodTable* globalObjectMethodTable)
: JSSegmentedVariableObject(globalData, structure, &m_symbolTable)
, m_globalScopeChain()
+ , m_masqueradesAsUndefinedWatchpoint(adoptRef(new WatchpointSet(InitializedWatching)))
, m_weakRandom(Options::forceWeakRandomSeed() ? Options::forcedWeakRandomSeed() : static_cast<unsigned>(randomNumber() * (std::numeric_limits<unsigned>::max() + 1.0)))
, m_evalEnabled(true)
, m_globalObjectMethodTable(globalObjectMethodTable ? globalObjectMethodTable : &s_globalObjectMethodTable)
diff --git a/Source/JavaScriptCore/runtime/JSGlobalObject.h b/Source/JavaScriptCore/runtime/JSGlobalObject.h
index af03f32e6..248004bd5 100644
--- a/Source/JavaScriptCore/runtime/JSGlobalObject.h
+++ b/Source/JavaScriptCore/runtime/JSGlobalObject.h
@@ -30,6 +30,7 @@
#include "NumberPrototype.h"
#include "StringPrototype.h"
#include "StructureChain.h"
+#include "Watchpoint.h"
#include <wtf/HashSet.h>
#include <wtf/OwnPtr.h>
#include <wtf/RandomNumber.h>
@@ -142,6 +143,8 @@ namespace JSC {
Debugger* m_debugger;
+ RefPtr<WatchpointSet> m_masqueradesAsUndefinedWatchpoint;
+
OwnPtr<JSGlobalObjectRareData> m_rareData;
WeakRandom m_weakRandom;
@@ -270,6 +273,8 @@ namespace JSC {
Structure* regExpStructure() const { return m_regExpStructure.get(); }
Structure* stringObjectStructure() const { return m_stringObjectStructure.get(); }
+ WatchpointSet* masqueradesAsUndefinedWatchpoint() { return m_masqueradesAsUndefinedWatchpoint.get(); }
+
void setProfileGroup(unsigned value) { createRareDataIfNeeded(); m_rareData->profileGroup = value; }
unsigned profileGroup() const
{
diff --git a/Source/JavaScriptCore/runtime/JSString.h b/Source/JavaScriptCore/runtime/JSString.h
index d6fc4c2a1..e91553aeb 100644
--- a/Source/JavaScriptCore/runtime/JSString.h
+++ b/Source/JavaScriptCore/runtime/JSString.h
@@ -500,23 +500,23 @@ namespace JSC {
inline bool isJSString(JSValue v) { return v.isCell() && v.asCell()->classInfo() == &JSString::s_info; }
- inline bool JSCell::toBoolean() const
+ inline bool JSCell::toBoolean(ExecState* exec) const
{
if (isString())
return static_cast<const JSString*>(this)->toBoolean();
- return !structure()->typeInfo().masqueradesAsUndefined();
+ return !structure()->masqueradesAsUndefined(exec->lexicalGlobalObject());
}
// --- JSValue inlines ----------------------------
- inline bool JSValue::toBoolean() const
+ inline bool JSValue::toBoolean(ExecState* exec) const
{
if (isInt32())
return asInt32();
if (isDouble())
return asDouble() > 0.0 || asDouble() < 0.0; // false for NaN
if (isCell())
- return asCell()->toBoolean();
+ return asCell()->toBoolean(exec);
return isTrue(); // false, null, and undefined all convert to false.
}
diff --git a/Source/JavaScriptCore/runtime/JSValue.h b/Source/JavaScriptCore/runtime/JSValue.h
index 19a8c4759..7aa5453e4 100644
--- a/Source/JavaScriptCore/runtime/JSValue.h
+++ b/Source/JavaScriptCore/runtime/JSValue.h
@@ -209,7 +209,7 @@ namespace JSC {
JSValue toPrimitive(ExecState*, PreferredPrimitiveType = NoPreference) const;
bool getPrimitiveNumber(ExecState*, double& number, JSValue&);
- bool toBoolean() const;
+ bool toBoolean(ExecState*) const;
// toNumber conversion is expected to be side effect free if an exception has
// been set in the ExecState already.
diff --git a/Source/JavaScriptCore/runtime/NumberObject.h b/Source/JavaScriptCore/runtime/NumberObject.h
index 07334722b..ed84207d9 100644
--- a/Source/JavaScriptCore/runtime/NumberObject.h
+++ b/Source/JavaScriptCore/runtime/NumberObject.h
@@ -40,7 +40,7 @@ namespace JSC {
return number;
}
- static const ClassInfo s_info;
+ static JS_EXPORTDATA const ClassInfo s_info;
static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue prototype)
{
@@ -48,7 +48,7 @@ namespace JSC {
}
};
- NumberObject* constructNumber(ExecState*, JSGlobalObject*, JSValue);
+ JS_EXPORT_PRIVATE NumberObject* constructNumber(ExecState*, JSGlobalObject*, JSValue);
} // namespace JSC
diff --git a/Source/JavaScriptCore/runtime/ObjectConstructor.cpp b/Source/JavaScriptCore/runtime/ObjectConstructor.cpp
index 7b6a5f669..5a6fcddf0 100644
--- a/Source/JavaScriptCore/runtime/ObjectConstructor.cpp
+++ b/Source/JavaScriptCore/runtime/ObjectConstructor.cpp
@@ -214,14 +214,14 @@ static bool toPropertyDescriptor(ExecState* exec, JSValue in, PropertyDescriptor
PropertySlot enumerableSlot(description);
if (description->getPropertySlot(exec, exec->propertyNames().enumerable, enumerableSlot)) {
- desc.setEnumerable(enumerableSlot.getValue(exec, exec->propertyNames().enumerable).toBoolean());
+ desc.setEnumerable(enumerableSlot.getValue(exec, exec->propertyNames().enumerable).toBoolean(exec));
if (exec->hadException())
return false;
}
PropertySlot configurableSlot(description);
if (description->getPropertySlot(exec, exec->propertyNames().configurable, configurableSlot)) {
- desc.setConfigurable(configurableSlot.getValue(exec, exec->propertyNames().configurable).toBoolean());
+ desc.setConfigurable(configurableSlot.getValue(exec, exec->propertyNames().configurable).toBoolean(exec));
if (exec->hadException())
return false;
}
@@ -236,7 +236,7 @@ static bool toPropertyDescriptor(ExecState* exec, JSValue in, PropertyDescriptor
PropertySlot writableSlot(description);
if (description->getPropertySlot(exec, exec->propertyNames().writable, writableSlot)) {
- desc.setWritable(writableSlot.getValue(exec, exec->propertyNames().writable).toBoolean());
+ desc.setWritable(writableSlot.getValue(exec, exec->propertyNames().writable).toBoolean(exec));
if (exec->hadException())
return false;
}
diff --git a/Source/JavaScriptCore/runtime/Operations.cpp b/Source/JavaScriptCore/runtime/Operations.cpp
index 4cb9de505..d96bae575 100644
--- a/Source/JavaScriptCore/runtime/Operations.cpp
+++ b/Source/JavaScriptCore/runtime/Operations.cpp
@@ -70,7 +70,7 @@ JSValue jsTypeStringForValue(CallFrame* callFrame, JSValue v)
if (v.isObject()) {
// Return "undefined" for objects that should be treated
// as null when doing comparisons.
- if (asObject(v)->structure()->typeInfo().masqueradesAsUndefined())
+ if (asObject(v)->structure()->masqueradesAsUndefined(callFrame->lexicalGlobalObject()))
return globalData.smallStrings.undefinedString(&globalData);
CallData callData;
JSObject* object = asObject(v);
@@ -80,7 +80,7 @@ JSValue jsTypeStringForValue(CallFrame* callFrame, JSValue v)
return globalData.smallStrings.objectString(&globalData);
}
-bool jsIsObjectType(JSValue v)
+bool jsIsObjectType(CallFrame* callFrame, JSValue v)
{
if (!v.isCell())
return v.isNull();
@@ -89,7 +89,7 @@ bool jsIsObjectType(JSValue v)
if (type == NumberType || type == StringType)
return false;
if (type >= ObjectType) {
- if (asObject(v)->structure()->typeInfo().masqueradesAsUndefined())
+ if (asObject(v)->structure()->masqueradesAsUndefined(callFrame->lexicalGlobalObject()))
return false;
CallData callData;
JSObject* object = asObject(v);
diff --git a/Source/JavaScriptCore/runtime/Operations.h b/Source/JavaScriptCore/runtime/Operations.h
index 497b19d82..88fffdac4 100644
--- a/Source/JavaScriptCore/runtime/Operations.h
+++ b/Source/JavaScriptCore/runtime/Operations.h
@@ -31,7 +31,7 @@ namespace JSC {
NEVER_INLINE JSValue jsAddSlowCase(CallFrame*, JSValue, JSValue);
JSValue jsTypeStringForValue(CallFrame*, JSValue);
- bool jsIsObjectType(JSValue);
+ bool jsIsObjectType(CallFrame*, JSValue);
bool jsIsFunctionType(JSValue);
ALWAYS_INLINE JSValue jsString(ExecState* exec, JSString* s1, JSString* s2)
@@ -134,13 +134,13 @@ namespace JSC {
return true;
if (!v2.isCell())
return false;
- return v2.asCell()->structure()->typeInfo().masqueradesAsUndefined();
+ return v2.asCell()->structure()->masqueradesAsUndefined(exec->lexicalGlobalObject());
}
if (v2.isUndefinedOrNull()) {
if (!v1.isCell())
return false;
- return v1.asCell()->structure()->typeInfo().masqueradesAsUndefined();
+ return v1.asCell()->structure()->masqueradesAsUndefined(exec->lexicalGlobalObject());
}
if (v1.isObject()) {
diff --git a/Source/JavaScriptCore/runtime/RegExpConstructor.cpp b/Source/JavaScriptCore/runtime/RegExpConstructor.cpp
index 0f2091c27..0b463474f 100644
--- a/Source/JavaScriptCore/runtime/RegExpConstructor.cpp
+++ b/Source/JavaScriptCore/runtime/RegExpConstructor.cpp
@@ -249,9 +249,9 @@ void setRegExpConstructorInput(ExecState* exec, JSObject* baseObject, JSValue va
asRegExpConstructor(baseObject)->setInput(exec, value.toString(exec));
}
-void setRegExpConstructorMultiline(ExecState*, JSObject* baseObject, JSValue value)
+void setRegExpConstructorMultiline(ExecState* exec, JSObject* baseObject, JSValue value)
{
- asRegExpConstructor(baseObject)->setMultiline(value.toBoolean());
+ asRegExpConstructor(baseObject)->setMultiline(value.toBoolean(exec));
}
// ECMA 15.10.4
diff --git a/Source/JavaScriptCore/runtime/RegExpPrototype.cpp b/Source/JavaScriptCore/runtime/RegExpPrototype.cpp
index 6080a1c99..24c7c8027 100644
--- a/Source/JavaScriptCore/runtime/RegExpPrototype.cpp
+++ b/Source/JavaScriptCore/runtime/RegExpPrototype.cpp
@@ -147,11 +147,11 @@ EncodedJSValue JSC_HOST_CALL regExpProtoFuncToString(ExecState* exec)
char postfix[5] = { '/', 0, 0, 0, 0 };
int index = 1;
- if (thisObject->get(exec, exec->propertyNames().global).toBoolean())
+ if (thisObject->get(exec, exec->propertyNames().global).toBoolean(exec))
postfix[index++] = 'g';
- if (thisObject->get(exec, exec->propertyNames().ignoreCase).toBoolean())
+ if (thisObject->get(exec, exec->propertyNames().ignoreCase).toBoolean(exec))
postfix[index++] = 'i';
- if (thisObject->get(exec, exec->propertyNames().multiline).toBoolean())
+ if (thisObject->get(exec, exec->propertyNames().multiline).toBoolean(exec))
postfix[index] = 'm';
UString source = thisObject->get(exec, exec->propertyNames().source).toString(exec)->value(exec);
// If source is empty, use "/(?:)/" to avoid colliding with comment syntax
diff --git a/Source/JavaScriptCore/runtime/StringObject.cpp b/Source/JavaScriptCore/runtime/StringObject.cpp
index 1dac06b46..3c037bcd1 100644
--- a/Source/JavaScriptCore/runtime/StringObject.cpp
+++ b/Source/JavaScriptCore/runtime/StringObject.cpp
@@ -22,6 +22,7 @@
#include "StringObject.h"
#include "Error.h"
+#include "JSGlobalObject.h"
#include "PropertyNameArray.h"
namespace JSC {
@@ -143,4 +144,11 @@ void StringObject::getOwnPropertyNames(JSObject* object, ExecState* exec, Proper
return JSObject::getOwnPropertyNames(thisObject, exec, propertyNames, mode);
}
+StringObject* constructString(ExecState* exec, JSGlobalObject* globalObject, JSValue string)
+{
+ StringObject* object = StringObject::create(exec, globalObject->stringObjectStructure());
+ object->setInternalValue(exec->globalData(), string);
+ return object;
+}
+
} // namespace JSC
diff --git a/Source/JavaScriptCore/runtime/StringObject.h b/Source/JavaScriptCore/runtime/StringObject.h
index 7089e8983..f0c445e91 100644
--- a/Source/JavaScriptCore/runtime/StringObject.h
+++ b/Source/JavaScriptCore/runtime/StringObject.h
@@ -78,6 +78,8 @@ namespace JSC {
return static_cast<StringObject*>(asObject(value));
}
+ JS_EXPORT_PRIVATE StringObject* constructString(ExecState*, JSGlobalObject*, JSValue);
+
} // namespace JSC
#endif // StringObject_h
diff --git a/Source/JavaScriptCore/runtime/Structure.h b/Source/JavaScriptCore/runtime/Structure.h
index 0b9c92210..2bb0107b7 100644
--- a/Source/JavaScriptCore/runtime/Structure.h
+++ b/Source/JavaScriptCore/runtime/Structure.h
@@ -256,6 +256,8 @@ namespace JSC {
&& offset <= lastValidOffset();
}
+ bool masqueradesAsUndefined(JSGlobalObject* lexicalGlobalObject);
+
PropertyOffset get(JSGlobalData&, PropertyName);
PropertyOffset get(JSGlobalData&, const UString& name);
JS_EXPORT_PRIVATE PropertyOffset get(JSGlobalData&, PropertyName, unsigned& attributes, JSCell*& specificValue);
@@ -313,6 +315,11 @@ namespace JSC {
return OBJECT_OFFSETOF(Structure, m_prototype);
}
+ static ptrdiff_t globalObjectOffset()
+ {
+ return OBJECT_OFFSETOF(Structure, m_globalObject);
+ }
+
static ptrdiff_t typeInfoFlagsOffset()
{
return OBJECT_OFFSETOF(Structure, m_typeInfo) + TypeInfo::flagsOffset();
@@ -505,6 +512,11 @@ namespace JSC {
return entry ? entry->offset : invalidOffset;
}
+ inline bool Structure::masqueradesAsUndefined(JSGlobalObject* lexicalGlobalObject)
+ {
+ return typeInfo().masqueradesAsUndefined() && globalObject() == lexicalGlobalObject;
+ }
+
inline JSValue JSValue::structureOrUndefined() const
{
if (isCell())
diff --git a/Source/Platform/ChangeLog b/Source/Platform/ChangeLog
index 12aa87c4a..bca5ad8ad 100644
--- a/Source/Platform/ChangeLog
+++ b/Source/Platform/ChangeLog
@@ -1,3 +1,36 @@
+2012-08-23 James Robinson <jamesr@chromium.org>
+
+ [chromium] Convert WebAnimationCurve subtypes into pure virtual
+ https://bugs.webkit.org/show_bug.cgi?id=94068
+
+ Reviewed by Adrienne Walker.
+
+ This makes the Web*AnimationCurve interfaces pure virtual to provide better insulation from the implementation
+ details of the classes.
+
+ * chromium/public/WebAnimation.h:
+ (WebKit::WebAnimation::WebAnimation):
+ (WebAnimation):
+ * chromium/public/WebAnimationCurve.h:
+ * chromium/public/WebFloatAnimationCurve.h:
+ (WebFloatAnimationCurve):
+ (WebKit::WebFloatAnimationCurve::~WebFloatAnimationCurve):
+ * chromium/public/WebTransformAnimationCurve.h:
+ (WebTransformAnimationCurve):
+ (WebKit::WebTransformAnimationCurve::~WebTransformAnimationCurve):
+
+2012-08-22 James Robinson <jamesr@chromium.org>
+
+ [chromium] Remove WebLayer::setChildren API
+ https://bugs.webkit.org/show_bug.cgi?id=94749
+
+ Reviewed by Adrienne Walker.
+
+ This is redundant with removeAllChildren() / addChild() and less efficient.
+
+ * chromium/public/WebLayer.h:
+ (WebLayer):
+
2012-08-22 James Robinson <jamesr@chromium.org>
[chromium] Change WebLayer from a concrete type to a pure virtual interface
diff --git a/Source/Platform/chromium/public/WebAnimation.h b/Source/Platform/chromium/public/WebAnimation.h
index 238bbaae1..621330c7c 100644
--- a/Source/Platform/chromium/public/WebAnimation.h
+++ b/Source/Platform/chromium/public/WebAnimation.h
@@ -49,7 +49,7 @@ public:
TargetPropertyOpacity
};
- // The caller takes ownership of the returned valuev
+ // The caller takes ownership of the returned value.
WEBKIT_EXPORT static WebAnimation* create(const WebAnimationCurve&, TargetProperty);
// An animationId is effectively the animation's name, and it is not unique.
diff --git a/Source/Platform/chromium/public/WebAnimationCurve.h b/Source/Platform/chromium/public/WebAnimationCurve.h
index e9ecc1eda..ec05d3793 100644
--- a/Source/Platform/chromium/public/WebAnimationCurve.h
+++ b/Source/Platform/chromium/public/WebAnimationCurve.h
@@ -26,19 +26,11 @@
#define WebAnimationCurve_h
#include "WebCommon.h"
-#include "WebNonCopyable.h"
-#if WEBKIT_IMPLEMENTATION
-#include <wtf/Forward.h>
-#endif
-
-namespace WebCore {
-class CCAnimationCurve;
-}
namespace WebKit {
-class WebAnimationCurve : public WebNonCopyable {
+class WebAnimationCurve {
public:
virtual ~WebAnimationCurve() { }
@@ -50,12 +42,12 @@ public:
TimingFunctionTypeLinear
};
-#if WEBKIT_IMPLEMENTATION
- virtual operator PassOwnPtr<WebCore::CCAnimationCurve>() const = 0;
-#endif
+ enum AnimationCurveType {
+ AnimationCurveTypeFloat,
+ AnimationCurveTypeTransform,
+ };
-protected:
- WebAnimationCurve() { }
+ virtual AnimationCurveType type() const = 0;
};
} // namespace WebKit
diff --git a/Source/Platform/chromium/public/WebFloatAnimationCurve.h b/Source/Platform/chromium/public/WebFloatAnimationCurve.h
index 65a7f2438..b56b3bd4d 100644
--- a/Source/Platform/chromium/public/WebFloatAnimationCurve.h
+++ b/Source/Platform/chromium/public/WebFloatAnimationCurve.h
@@ -29,43 +29,24 @@
#include "WebCommon.h"
#include "WebFloatKeyframe.h"
-#include "WebPrivateOwnPtr.h"
-
-#if WEBKIT_IMPLEMENTATION
-#include <wtf/Forward.h>
-#endif
-
-namespace WebCore {
-class CCAnimationCurve;
-class CCKeyframedFloatAnimationCurve;
-}
namespace WebKit {
// A keyframed float animation curve.
class WebFloatAnimationCurve : public WebAnimationCurve {
public:
- WebFloatAnimationCurve() { initialize(); }
- virtual ~WebFloatAnimationCurve() { destroy(); }
+ WEBKIT_EXPORT static WebFloatAnimationCurve* create();
+
+ virtual ~WebFloatAnimationCurve() { }
// Adds the keyframe with the default timing function (ease).
- WEBKIT_EXPORT void add(const WebFloatKeyframe&);
- WEBKIT_EXPORT void add(const WebFloatKeyframe&, TimingFunctionType);
+ virtual void add(const WebFloatKeyframe&) = 0;
+ virtual void add(const WebFloatKeyframe&, TimingFunctionType) = 0;
// Adds the keyframe with a custom, bezier timing function. Note, it is
// assumed that x0 = y0 = 0, and x3 = y3 = 1.
- WEBKIT_EXPORT void add(const WebFloatKeyframe&, double x1, double y1, double x2, double y2);
-
- WEBKIT_EXPORT float getValue(double time) const;
-
-#if WEBKIT_IMPLEMENTATION
- virtual operator PassOwnPtr<WebCore::CCAnimationCurve>() const;
-#endif
-
-private:
- WEBKIT_EXPORT void initialize();
- WEBKIT_EXPORT void destroy();
+ virtual void add(const WebFloatKeyframe&, double x1, double y1, double x2, double y2) = 0;
- WebPrivateOwnPtr<WebCore::CCKeyframedFloatAnimationCurve> m_private;
+ virtual float getValue(double time) const = 0;
};
} // namespace WebKit
diff --git a/Source/Platform/chromium/public/WebLayer.h b/Source/Platform/chromium/public/WebLayer.h
index 60ed69423..9bdeb4c01 100644
--- a/Source/Platform/chromium/public/WebLayer.h
+++ b/Source/Platform/chromium/public/WebLayer.h
@@ -67,7 +67,6 @@ public:
virtual void addChild(WebLayer*) = 0;
virtual void insertChild(WebLayer*, size_t index) = 0;
virtual void replaceChild(WebLayer* reference, WebLayer* newLayer) = 0;
- virtual void setChildren(const WebVector<WebLayer*>&) = 0;
virtual void removeFromParent() = 0;
virtual void removeAllChildren() = 0;
diff --git a/Source/Platform/chromium/public/WebTransformAnimationCurve.h b/Source/Platform/chromium/public/WebTransformAnimationCurve.h
index 99cb67055..699e498c8 100644
--- a/Source/Platform/chromium/public/WebTransformAnimationCurve.h
+++ b/Source/Platform/chromium/public/WebTransformAnimationCurve.h
@@ -28,45 +28,27 @@
#include "WebAnimationCurve.h"
#include "WebCommon.h"
-#include "WebPrivateOwnPtr.h"
#include "WebTransformKeyframe.h"
#include "WebTransformationMatrix.h"
-#if WEBKIT_IMPLEMENTATION
-#include <wtf/Forward.h>
-#endif
-
-namespace WebCore {
-class CCAnimationCurve;
-class CCKeyframedTransformAnimationCurve;
-}
-
namespace WebKit {
// A keyframed transform animation curve.
class WebTransformAnimationCurve : public WebAnimationCurve {
public:
- WebTransformAnimationCurve() { initialize(); }
- virtual ~WebTransformAnimationCurve() { destroy(); }
+ WEBKIT_EXPORT static WebTransformAnimationCurve* create();
+
+ virtual ~WebTransformAnimationCurve() { }
// Adds the keyframe with the default timing function (ease).
- WEBKIT_EXPORT void add(const WebTransformKeyframe&);
- WEBKIT_EXPORT void add(const WebTransformKeyframe&, TimingFunctionType);
+ virtual void add(const WebTransformKeyframe&) = 0;
+ virtual void add(const WebTransformKeyframe&, TimingFunctionType) = 0;
// Adds the keyframe with a custom, bezier timing function. Note, it is
// assumed that x0 = y0 = 0, and x3 = y3 = 1.
- WEBKIT_EXPORT void add(const WebTransformKeyframe&, double x1, double y1, double x2, double y2);
-
- WEBKIT_EXPORT WebTransformationMatrix getValue(double time) const;
-
-#if WEBKIT_IMPLEMENTATION
- virtual operator PassOwnPtr<WebCore::CCAnimationCurve>() const;
-#endif
+ virtual void add(const WebTransformKeyframe&, double x1, double y1, double x2, double y2) = 0;
-protected:
- WEBKIT_EXPORT void initialize();
- WEBKIT_EXPORT void destroy();
+ virtual WebTransformationMatrix getValue(double time) const = 0;
- WebPrivateOwnPtr<WebCore::CCKeyframedTransformAnimationCurve> m_private;
};
} // namespace WebKit
diff --git a/Source/ThirdParty/ChangeLog b/Source/ThirdParty/ChangeLog
index 9dff5fac4..2a7973e0c 100644
--- a/Source/ThirdParty/ChangeLog
+++ b/Source/ThirdParty/ChangeLog
@@ -1,3 +1,12 @@
+2012-08-23 Mark Rowe <mrowe@apple.com>
+
+ Make gtest build with the latest version of clang.
+
+ Reviewed by Dan Bernstein.
+
+ * gtest/src/gtest-internal-inl.h:
+ (GTestFlagSaver): Remove an unused member.
+
2012-07-03 Tony Chang <tony@chromium.org>
[chromium] Unreviewed, update .gitignore to handle VS2010 files.
diff --git a/Source/ThirdParty/gtest/src/gtest-internal-inl.h b/Source/ThirdParty/gtest/src/gtest-internal-inl.h
index 855b21554..01415f7d9 100644
--- a/Source/ThirdParty/gtest/src/gtest-internal-inl.h
+++ b/Source/ThirdParty/gtest/src/gtest-internal-inl.h
@@ -200,7 +200,6 @@ class GTestFlagSaver {
bool list_tests_;
String output_;
bool print_time_;
- bool pretty_;
internal::Int32 random_seed_;
internal::Int32 repeat_;
bool shuffle_;
diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog
index 56c76934e..6fa29193f 100644
--- a/Source/WTF/ChangeLog
+++ b/Source/WTF/ChangeLog
@@ -1,3 +1,90 @@
+2012-08-23 Julien Chaffraix <jchaffraix@webkit.org>
+
+ [Chromium] Enable AtomicString && CString && WTFString && StringImpl unit tests
+ https://bugs.webkit.org/show_bug.cgi?id=94871
+
+ Reviewed by Benjamin Poulain.
+
+ * wtf/PassRefPtr.h:
+ We need to include Assertions.h due to the COMPILE_ASSERT added in r89283.
+ This matches other files in WTF though I am not sure why Chromium is the only
+ platform complaining about that.
+
+2012-08-23 Mark Rowe <mrowe@apple.com>
+
+ Build fix for old, old versions of Clang.
+
+ * wtf/FastMalloc.cpp:
+ (WTF): Rejigger things so that they parse correctly if __has_warning isn't defined.
+
+2012-08-23 Emil A Eklund <eae@chromium.org>
+
+ Add saturation arithmetic support to FractionalLayoutUnit
+ https://bugs.webkit.org/show_bug.cgi?id=94364
+
+ Reviewed by Benjamin Poulain.
+
+ Add support functions for saturated addition and subtraction.
+
+ Test: TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp
+
+ * GNUmakefile.list.am:
+ * WTF.gypi:
+ * WTF.pro:
+ * WTF.vcproj/WTF.vcproj:
+ * WTF.xcodeproj/project.pbxproj:
+ * WTF/wtf/CMakeLists.txt:
+ Add SaturatedArithmetic.h to build files.
+
+ * wtf/SaturatedArithmetic.h: Added.
+ (saturatedAddition):
+ (saturatedSubtraction):
+ Support functions for saturated addition/subtraction. Compares the signed
+ bit of the values instead of using range checks to reduce branching.
+
+ * wtf/Platform.h:
+ Add ENABLE_SATURATED_LAYOUT_ARITHMETIC flag.
+
+2012-08-23 Mark Rowe <mrowe@apple.com>
+
+ Roll back in the part of r126475 that I had rolled out.
+
+ * wtf/FastMalloc.cpp:
+ (WTF): Disable the -Wunused-private-field warning around the declaration of
+ TCMalloc_Central_FreeListPadded since the padding is intentionally unused.
+ Only disable the warning if we detect it is enabled, since the warning may not
+ be supported by the version of Clang that is being used.
+
+2012-08-23 Mark Rowe <mrowe@apple.com>
+
+ Roll out part of r126475 that breaks the build with older versions of Clang.
+
+ * wtf/FastMalloc.cpp:
+
+2012-08-23 Mark Rowe <mrowe@apple.com>
+
+ Make WTF build with the latest version of clang.
+
+ Reviewed by Dan Bernstein.
+
+ * wtf/FastMalloc.cpp:
+ (WTF): Disable the -Wunused-private-field warning around the declaration of
+ TCMalloc_Central_FreeListPadded since the padding is intentionally unused.
+ (WTF::AdminRegionRecorder): Remove the unused m_reader member.
+ (WTF::FastMallocZone::enumerate): Don't pass in the RemoteMemoryReader since
+ it is no longer needed.
+
+2012-08-22 Geoffrey Garen <ggaren@apple.com>
+
+ Fixed a fastMallocForbid/Allow compile error for some compilers
+ https://bugs.webkit.org/show_bug.cgi?id=94775
+
+ Reviewed by Gavin Barraclough.
+
+ * wtf/FastMalloc.h:
+ (WTF::fastMallocForbid()):
+ (WTF::fastMallocAllow()): Export, since these are called by JavaScriptCore.
+
2012-08-22 Geoffrey Garen <ggaren@apple.com>
ThreadRestrictionVerifier should be opt-in, not opt-out
diff --git a/Source/WTF/GNUmakefile.list.am b/Source/WTF/GNUmakefile.list.am
index 7d34ee1b1..7c123e537 100644
--- a/Source/WTF/GNUmakefile.list.am
+++ b/Source/WTF/GNUmakefile.list.am
@@ -128,6 +128,7 @@ wtf_sources += \
Source/WTF/wtf/RetainPtr.h \
Source/WTF/wtf/SHA1.cpp \
Source/WTF/wtf/SHA1.h \
+ Source/WTF/wtf/SaturatedArithmetic.h \
Source/WTF/wtf/SegmentedVector.h \
Source/WTF/wtf/SentinelLinkedList.h \
Source/WTF/wtf/SimpleStats.h \
diff --git a/Source/WTF/WTF.gypi b/Source/WTF/WTF.gypi
index 5d27970cc..531b4381d 100644
--- a/Source/WTF/WTF.gypi
+++ b/Source/WTF/WTF.gypi
@@ -75,6 +75,7 @@
'wtf/RefPtr.h',
'wtf/RefPtrHashMap.h',
'wtf/RetainPtr.h',
+ 'wtf/SaturatedArithmetic.h',
'wtf/SentinelLinkedList.h',
'wtf/SinglyLinkedList.h',
'wtf/StackBounds.h',
diff --git a/Source/WTF/WTF.pro b/Source/WTF/WTF.pro
index d66e29560..f8223112d 100644
--- a/Source/WTF/WTF.pro
+++ b/Source/WTF/WTF.pro
@@ -119,6 +119,7 @@ HEADERS += \
RefPtrHashMap.h \
RetainPtr.h \
SHA1.h \
+ SaturatedArithmetic.h \
Spectrum.h \
StackBounds.h \
StaticConstructors.h \
diff --git a/Source/WTF/WTF.vcproj/WTF.vcproj b/Source/WTF/WTF.vcproj/WTF.vcproj
index 332a18419..959edae34 100644
--- a/Source/WTF/WTF.vcproj/WTF.vcproj
+++ b/Source/WTF/WTF.vcproj/WTF.vcproj
@@ -1085,6 +1085,10 @@
>
</File>
<File
+ RelativePath="..\wtf\SaturatedArithmetic.h"
+ >
+ </File>
+ <File
RelativePath="..\wtf\SegmentedVector.h"
>
</File>
diff --git a/Source/WTF/WTF.xcodeproj/project.pbxproj b/Source/WTF/WTF.xcodeproj/project.pbxproj
index 97e2250b3..b26784f32 100644
--- a/Source/WTF/WTF.xcodeproj/project.pbxproj
+++ b/Source/WTF/WTF.xcodeproj/project.pbxproj
@@ -10,6 +10,7 @@
0FD81AC5154FB22E00983E72 /* FastBitVector.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD81AC4154FB22E00983E72 /* FastBitVector.h */; settings = {ATTRIBUTES = (); }; };
143F611F1565F0F900DB514A /* RAMSize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 143F611D1565F0F900DB514A /* RAMSize.cpp */; };
143F61201565F0F900DB514A /* RAMSize.h in Headers */ = {isa = PBXBuildFile; fileRef = 143F611E1565F0F900DB514A /* RAMSize.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 14F3B0F715E45E4600210069 /* SaturatedArithmetic.h in Headers */ = {isa = PBXBuildFile; fileRef = 14F3B0F615E45E4600210069 /* SaturatedArithmetic.h */; settings = {ATTRIBUTES = (Private, ); }; };
2C05385415BC819000F21B96 /* GregorianDateTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C05385315BC819000F21B96 /* GregorianDateTime.h */; };
2CCD892A15C0390200285083 /* GregorianDateTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2CCD892915C0390200285083 /* GregorianDateTime.cpp */; };
4330F38F15745B0500AAFA8F /* URLString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4330F38E15745B0500AAFA8F /* URLString.cpp */; };
@@ -254,6 +255,7 @@
0FD81AC4154FB22E00983E72 /* FastBitVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FastBitVector.h; sourceTree = "<group>"; };
143F611D1565F0F900DB514A /* RAMSize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RAMSize.cpp; sourceTree = "<group>"; };
143F611E1565F0F900DB514A /* RAMSize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAMSize.h; sourceTree = "<group>"; };
+ 14F3B0F615E45E4600210069 /* SaturatedArithmetic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaturatedArithmetic.h; sourceTree = "<group>"; };
2C05385315BC819000F21B96 /* GregorianDateTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GregorianDateTime.h; sourceTree = "<group>"; };
2CCD892915C0390200285083 /* GregorianDateTime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GregorianDateTime.cpp; sourceTree = "<group>"; };
4330F38E15745B0500AAFA8F /* URLString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = URLString.cpp; sourceTree = "<group>"; };
@@ -690,6 +692,7 @@
A8A47303151A825B004123FF /* RefPtr.h */,
A8A47304151A825B004123FF /* RefPtrHashMap.h */,
A8A47305151A825B004123FF /* RetainPtr.h */,
+ 14F3B0F615E45E4600210069 /* SaturatedArithmetic.h */,
A8A47306151A825B004123FF /* SegmentedVector.h */,
A8A47307151A825B004123FF /* SentinelLinkedList.h */,
A8A47308151A825B004123FF /* SHA1.cpp */,
@@ -1003,6 +1006,7 @@
A8A4741C151A825B004123FF /* RefPtr.h in Headers */,
A8A4741D151A825B004123FF /* RefPtrHashMap.h in Headers */,
A8A4741E151A825B004123FF /* RetainPtr.h in Headers */,
+ 14F3B0F715E45E4600210069 /* SaturatedArithmetic.h in Headers */,
A8A47466151A825B004123FF /* ScriptCodesFromICU.h in Headers */,
A8A4741F151A825B004123FF /* SegmentedVector.h in Headers */,
A8A47420151A825B004123FF /* SentinelLinkedList.h in Headers */,
diff --git a/Source/WTF/wtf/CMakeLists.txt b/Source/WTF/wtf/CMakeLists.txt
index 1f12fb851..543755904 100644
--- a/Source/WTF/wtf/CMakeLists.txt
+++ b/Source/WTF/wtf/CMakeLists.txt
@@ -82,6 +82,7 @@ SET(WTF_HEADERS
RefPtr.h
RefPtrHashMap.h
RetainPtr.h
+ SaturatedArithmetic.h
SegmentedVector.h
SHA1.h
StackBounds.h
diff --git a/Source/WTF/wtf/FastMalloc.cpp b/Source/WTF/wtf/FastMalloc.cpp
index dba8f9d30..6c304be7c 100644
--- a/Source/WTF/wtf/FastMalloc.cpp
+++ b/Source/WTF/wtf/FastMalloc.cpp
@@ -2469,12 +2469,23 @@ class TCMalloc_Central_FreeList {
int32_t cache_size_;
};
+#if COMPILER(CLANG) && defined(__has_warning)
+#pragma clang diagnostic push
+#if __has_warning("-Wunused-private-field")
+#pragma clang diagnostic ignored "-Wunused-private-field"
+#endif
+#endif
+
// Pad each CentralCache object to multiple of 64 bytes
class TCMalloc_Central_FreeListPadded : public TCMalloc_Central_FreeList {
private:
char pad_[(64 - (sizeof(TCMalloc_Central_FreeList) % 64)) % 64];
};
+#if COMPILER(CLANG) && defined(__has_warning)
+#pragma clang diagnostic pop
+#endif
+
//-------------------------------------------------------------------
// Global variables
//-------------------------------------------------------------------
@@ -4539,17 +4550,15 @@ class AdminRegionRecorder {
void* m_context;
unsigned m_typeMask;
vm_range_recorder_t* m_recorder;
- const RemoteMemoryReader& m_reader;
Vector<vm_range_t, 1024> m_pendingRegions;
public:
- AdminRegionRecorder(task_t task, void* context, unsigned typeMask, vm_range_recorder_t* recorder, const RemoteMemoryReader& reader)
+ AdminRegionRecorder(task_t task, void* context, unsigned typeMask, vm_range_recorder_t* recorder)
: m_task(task)
, m_context(context)
, m_typeMask(typeMask)
, m_recorder(recorder)
- , m_reader(reader)
{ }
void recordRegion(vm_address_t ptr, size_t size)
@@ -4602,7 +4611,7 @@ kern_return_t FastMallocZone::enumerate(task_t task, void* context, unsigned typ
pageMap->visitValues(usageRecorder, memoryReader);
usageRecorder.recordPendingRegions();
- AdminRegionRecorder adminRegionRecorder(task, context, typeMask, recorder, memoryReader);
+ AdminRegionRecorder adminRegionRecorder(task, context, typeMask, recorder);
pageMap->visitAllocations(adminRegionRecorder, memoryReader);
PageHeapAllocator<Span>* spanAllocator = memoryReader(mzone->m_spanAllocator);
diff --git a/Source/WTF/wtf/FastMalloc.h b/Source/WTF/wtf/FastMalloc.h
index 871be3756..1300a8ed6 100644
--- a/Source/WTF/wtf/FastMalloc.h
+++ b/Source/WTF/wtf/FastMalloc.h
@@ -76,8 +76,8 @@ namespace WTF {
WTF_EXPORT_PRIVATE void fastFree(void*);
#ifndef NDEBUG
- void fastMallocForbid();
- void fastMallocAllow();
+ WTF_EXPORT_PRIVATE void fastMallocForbid();
+ WTF_EXPORT_PRIVATE void fastMallocAllow();
#endif
WTF_EXPORT_PRIVATE void releaseFastMallocFreeMemory();
diff --git a/Source/WTF/wtf/PassRefPtr.h b/Source/WTF/wtf/PassRefPtr.h
index b85806083..5f5067113 100644
--- a/Source/WTF/wtf/PassRefPtr.h
+++ b/Source/WTF/wtf/PassRefPtr.h
@@ -22,6 +22,7 @@
#define WTF_PassRefPtr_h
#include <wtf/AlwaysInline.h>
+#include <wtf/Assertions.h>
#include <wtf/NullPtr.h>
namespace WTF {
diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
index d1383df29..4a4efe846 100644
--- a/Source/WTF/wtf/Platform.h
+++ b/Source/WTF/wtf/Platform.h
@@ -834,6 +834,14 @@
#endif
#endif
+#if !defined(ENABLE_SATURATED_LAYOUT_ARITHMETIC)
+#define ENABLE_SATURATED_LAYOUT_ARITHMETIC 0
+#endif
+
+#if ENABLE(ENABLE_SATURATED_LAYOUT_ARITHMETIC) && !ENABLE(ENABLE_SUBPIXEL_LAYOUT)
+#error "ENABLE_SATURATED_LAYOUT_ARITHMETIC requires ENABLE_SUBPIXEL_LAYOUT"
+#endif
+
#define ENABLE_DEBUG_WITH_BREAKPOINT 0
#define ENABLE_SAMPLING_COUNTERS 0
#define ENABLE_SAMPLING_FLAGS 0
diff --git a/Source/WTF/wtf/SaturatedArithmetic.h b/Source/WTF/wtf/SaturatedArithmetic.h
new file mode 100644
index 000000000..cf9e8e17e
--- /dev/null
+++ b/Source/WTF/wtf/SaturatedArithmetic.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2012, Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SaturatedArithmetic_h
+#define SaturatedArithmetic_h
+
+#include <limits>
+#include <stdint.h>
+#include <stdlib.h>
+
+inline int32_t saturatedAddition(int32_t a, int32_t b)
+{
+ uint32_t ua = a;
+ uint32_t ub = b;
+ uint32_t result = ua + ub;
+
+ // Can only overflow if the signed bit of the two values match. If the signed
+ // bit of the result and one of the values differ it did overflow.
+ if (!((ua ^ ub) >> 31) & (result ^ ua) >> 31)
+ result = std::numeric_limits<int>::max() + (ua >> 31);
+
+ return result;
+}
+
+inline int32_t saturatedSubtraction(int32_t a, int32_t b)
+{
+ uint32_t ua = a;
+ uint32_t ub = b;
+ uint32_t result = ua - ub;
+
+ // Can only overflow if the signed bit of the two values do not match. If the
+ // signed bit of the result and the first value differ it did overflow.
+ if ((ua ^ ub) >> 31 & (result ^ ua) >> 31)
+ result = std::numeric_limits<int>::max() + (ua >> 31);
+
+ return result;
+}
+
+#endif // SaturatedArithmetic_h
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 07823029d..138082037 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,1793 @@
+2012-08-23 Adam Barth <abarth@webkit.org>
+
+ [V8] V8DOMWindowShell should use ScopedPersistent
+ https://bugs.webkit.org/show_bug.cgi?id=94882
+
+ Reviewed by Kentaro Hara.
+
+ This patch updates V8DOMWindowShell to use ScopedPersistent rather than
+ manually managing v8::Persistent handles. I've also fixed some style
+ issues in code I needed to edit for this patch. This class could use
+ more touchup, but I'm going to hold off until the next patch.
+
+ * bindings/v8/ScopedPersistent.h:
+ (WebCore::ScopedPersistent::adopt):
+ (ScopedPersistent):
+ * bindings/v8/V8DOMWindowShell.cpp:
+ (WebCore::initializeV8IfNeeded):
+ (WebCore):
+ (WebCore::V8DOMWindowShell::isContextInitialized):
+ (WebCore::V8DOMWindowShell::disposeContextHandles):
+ (WebCore::V8DOMWindowShell::destroyGlobal):
+ (WebCore::V8DOMWindowShell::clearForClose):
+ (WebCore::V8DOMWindowShell::clearForNavigation):
+ (WebCore::V8DOMWindowShell::initContextIfNeeded):
+ (WebCore::V8DOMWindowShell::setContext):
+ (WebCore::V8DOMWindowShell::updateDocumentWrapper):
+ (WebCore::V8DOMWindowShell::clearDocumentWrapper):
+ (WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
+ (WebCore::V8DOMWindowShell::clearDocumentWrapperCache):
+ (WebCore::V8DOMWindowShell::setSecurityToken):
+ (WebCore::V8DOMWindowShell::updateDocument):
+ (WebCore::getter):
+ (WebCore::V8DOMWindowShell::namedItemAdded):
+ (WebCore::V8DOMWindowShell::namedItemRemoved):
+ (WebCore::V8DOMWindowShell::updateSecurityOrigin):
+ * bindings/v8/V8DOMWindowShell.h:
+ (WebCore::V8DOMWindowShell::context):
+ (V8DOMWindowShell):
+
+2012-08-23 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r126496.
+ http://trac.webkit.org/changeset/126496
+ https://bugs.webkit.org/show_bug.cgi?id=94895
+
+ Broke TestNotificationActiveDescendantChanged (Requested by
+ dominicc on #webkit).
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ * accessibility/AccessibilityNodeObject.h:
+ (AccessibilityNodeObject):
+ * accessibility/AccessibilityObject.cpp:
+ * accessibility/AccessibilityObject.h:
+ (AccessibilityObject):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::title):
+ (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
+ (WebCore::AccessibilityRenderObject::isDescendantOfElementType):
+ * accessibility/AccessibilityRenderObject.h:
+ (AccessibilityRenderObject):
+
+2012-08-23 Frederik Gladhorn <gladhorn@kde.org>
+
+ Make it possible to build WebKit with Python 3 (and 2)
+ https://bugs.webkit.org/show_bug.cgi?id=94814
+
+ Exceptions need a hack to work with both.
+ string.join was already deprecated in Python 2.
+ Relative imports are no longer supported, use package name instead.
+
+ Reviewed by Ryosuke Niwa.
+
+ * inspector/CodeGeneratorInspector.py:
+ (EnumConstants.get_enum_constant_code):
+ (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
+ (Generator.go):
+ (Generator.process_event):
+ (Generator.process_command):
+
+2012-08-23 Antoine Labour <piman@chromium.org>
+
+ [chromium] Fix lost context when textures are evicted
+ https://bugs.webkit.org/show_bug.cgi?id=94892
+
+ Reviewed by James Robinson.
+
+ After eviction, the CCPrioritizedTextureManager is in a limbo state
+ where all its resources are invalid. If we try to release them we will
+ double-destroy them.
+
+ New test: CCLayerTreeHostTestLostContextAfterEvictTextures.
+
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::recreateContextOnImplThread):
+
+2012-08-23 Keishi Hattori <keishi@webkit.org>
+
+ REGRESSION(r126132): thumb doesn't match click position for rtl input type=range
+ https://bugs.webkit.org/show_bug.cgi?id=94890
+
+ Reviewed by Kent Tamura.
+
+ r126132 broke rtl input type=range so the thumb doesn't match click position.
+
+ Added new tests to range-hit-test-with-padding.html.
+
+ * html/shadow/SliderThumbElement.cpp:
+ (WebCore::SliderThumbElement::setPositionFromPoint):
+
+2012-08-23 James Robinson <jamesr@chromium.org>
+
+ Add OVERRIDE and deinline virtual getters on *PlatformGestureCurve
+ https://bugs.webkit.org/show_bug.cgi?id=94887
+
+ Reviewed by Dirk Pranke.
+
+ This makes clang happy. Clang makes me happy. By induction, this makes me happy.
+
+ * platform/TouchpadFlingPlatformGestureCurve.cpp:
+ (WebCore::TouchpadFlingPlatformGestureCurve::debugName):
+ (WebCore):
+ * platform/TouchpadFlingPlatformGestureCurve.h:
+ (TouchpadFlingPlatformGestureCurve):
+ * platform/WheelFlingPlatformGestureCurve.cpp:
+ (WebCore::WheelFlingPlatformGestureCurve::debugName):
+ (WebCore):
+ * platform/WheelFlingPlatformGestureCurve.h:
+ (WheelFlingPlatformGestureCurve):
+
+2012-08-23 Yoshifumi Inoue <yosin@chromium.org>
+
+ [Forms] Step mismatched value should be editable in multiple field time UI.
+ https://bugs.webkit.org/show_bug.cgi?id=94664
+
+ Reviewed by Kent Tamura.
+
+ This patch changes layout method of multiple field time input UI to
+ check value of the "input" element in addition to step and range to
+ allow users to change step mismatched value from UI.
+
+ Tests: fast/forms/time-multiple-fields/time-multiple-fields-change-layout-by-value.html: for changing layout by value change.
+ This patch also adds new test case into fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic.html.
+
+ * html/TimeInputType.cpp:
+ (WebCore::TimeInputType::createShadowSubtree): Changed for DateTimeEditElement::create signature change.
+ (WebCore::TimeInputType::minOrMaxAttributeChanged): Changed to call updateInnerTextValue instead of removed updateEditElementLayout()
+ (WebCore::TimeInputType::stepAttributeChanged): ditto.
+ (WebCore::TimeInputType::updateInnerTextValue): Changed for DateTimeEditElement::setValueAsDate() and setEmptyValue() signature change.
+ * html/TimeInputType.h:
+ (TimeInputType): Removed updateEditElementLayout() declaration.
+ * html/shadow/DateTimeEditElement.cpp:
+ (DateTimeEditBuilder):
+ (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Added a new parameter date value to constructor to use it for layout decision.
+ (WebCore::DateTimeEditBuilder::needMillisecondField): Changed to check date value too.
+ (WebCore::DateTimeEditBuilder::needMinuteField): ditto
+ (WebCore::DateTimeEditBuilder::needSecondField): ditto
+ (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly): ditto
+ (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly): ditto
+ (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly): ditto
+ (WebCore::DateTimeEditElement::create): Changed for removing stepRange parameter.
+ (WebCore::DateTimeEditElement::layout): Changed to keep focus field for new layout.
+ (WebCore::DateTimeEditElement::setValueAsDate): Changed to call layout() with StepRange and date value.
+ (WebCore::DateTimeEditElement::setEmptyValue): ditto
+ * html/shadow/DateTimeEditElement.h:
+ (DateTimeEditElement):
+
+2012-08-23 Andreas Kling <kling@webkit.org>
+
+ Use immutable StylePropertySets for element inline style declarations.
+ <http://webkit.org/b/94714>
+
+ Reviewed by Antti Koivisto.
+
+ Construct the inline styles as immutable StylePropertySets initially (until they are
+ modified through CSSOM APIs), reducing their memory footprint and enabling us to do
+ sharing optimizations in the future.
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseInlineStyleDeclaration):
+ (WebCore::CSSParser::parseDeclaration):
+ * css/CSSParser.h:
+ * dom/ElementAttributeData.cpp:
+ (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
+
+2012-08-23 Adam Barth <abarth@webkit.org>
+
+ [V8] V8AbstractEventListener re-implements ScopedPersistent by hand
+ https://bugs.webkit.org/show_bug.cgi?id=94873
+
+ Reviewed by Eric Seidel.
+
+ Rather than calling New/Dispose manually, this patch changes
+ V8AbstractEventListener to use ScopedPersistent.
+
+ * bindings/v8/V8AbstractEventListener.cpp:
+ (WebCore::V8AbstractEventListener::weakEventListenerCallback):
+ (WebCore::V8AbstractEventListener::~V8AbstractEventListener):
+ (WebCore::V8AbstractEventListener::setListenerObject):
+ (WebCore::V8AbstractEventListener::getReceiverObject):
+ * bindings/v8/V8AbstractEventListener.h:
+ (WebCore::V8AbstractEventListener::getListenerObject):
+ (WebCore::V8AbstractEventListener::getExistingListenerObject):
+ (WebCore::V8AbstractEventListener::existingListenerObjectPersistentHandle):
+ (WebCore::V8AbstractEventListener::hasExistingListenerObject):
+ (V8AbstractEventListener):
+
+2012-08-23 Simon Fraser <simon.fraser@apple.com>
+
+ Prep work for: Implement sticky positioning
+ https://bugs.webkit.org/show_bug.cgi?id=90046
+
+ Reviewed by Dave Hyatt.
+
+ Do some method renaming in preparation for adding a new kind
+ of in-flow positioning: sticky positioning.
+
+ Rename RenderStyle::isOutOfFlowPositioned() to hasOutOfFlowPosition().
+ Add RenderStyle::hasInFlowPosition().
+
+ Use RenderObject::isInFlowPositioned() in places where it will apply
+ for both relative and sticky positioning.
+
+ Add RenderBoxModelObject::offsetForInFlowPosition(), which currently
+ applies just to relative positioning, but will also apply to sticky.
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::getPositionOffsetValue):
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::collectMatchingRulesForList):
+ * editing/TextIterator.cpp:
+ (WebCore::ignoresContainerClip):
+ * rendering/LayoutState.cpp:
+ (WebCore::LayoutState::LayoutState):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::styleWillChange):
+ (WebCore::RenderBlock::isSelectionRoot):
+ (WebCore::RenderBlock::blockSelectionGaps):
+ (WebCore::positionForPointRespectingEditingBoundaries):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::styleWillChange):
+ (WebCore::RenderBox::updateBoxModelInfoFromStyle):
+ (WebCore::RenderBox::mapLocalToContainer):
+ (WebCore::RenderBox::offsetFromContainer):
+ (WebCore::RenderBox::computeRectForRepaint):
+ (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
+ (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
+ (WebCore::RenderBox::layoutOverflowRectForPropagation):
+ * rendering/RenderBox.h:
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::accumulateInFlowPositionOffsets):
+ (WebCore::RenderBoxModelObject::relativePositionOffset):
+ (WebCore::RenderBoxModelObject::offsetForInFlowPosition):
+ (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
+ * rendering/RenderBoxModelObject.h:
+ (RenderBoxModelObject):
+ (WebCore::RenderBoxModelObject::stickyPositionLogicalOffset):
+ (WebCore::RenderBoxModelObject::requiresLayer):
+ * rendering/RenderInline.cpp:
+ (WebCore::inFlowPositionedInlineAncestor): We need to actually return
+ the ancestor, since we will need to copy its position type once there
+ is more than one kind of in-flow position.
+ (WebCore::updateStyleOfAnonymousBlockContinuations):
+ (WebCore::RenderInline::styleDidChange):
+ (WebCore::RenderInline::addChildIgnoringContinuation):
+ (WebCore::RenderInline::clippedOverflowRectForRepaint):
+ (WebCore::RenderInline::computeRectForRepaint):
+ (WebCore::RenderInline::offsetFromContainer):
+ (WebCore::RenderInline::mapLocalToContainer):
+ (WebCore::RenderInline::offsetForInFlowPositionedInline):
+ * rendering/RenderInline.h:
+ (WebCore::RenderInline::requiresLayer):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateLayerPosition):
+ (WebCore::isPositionedContainer):
+ (WebCore::RenderLayer::calculateClipRects):
+ (WebCore::RenderLayer::shouldBeNormalFlowOnly):
+ * rendering/RenderLayer.h:
+ (WebCore::RenderLayer::offsetForInFlowPosition):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::markContainingBlocksForLayout):
+ (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
+ (WebCore::RenderObject::invalidateContainerPreferredLogicalWidths):
+ (WebCore::RenderObject::containingBlock):
+ * rendering/RenderObject.h:
+ (WebCore::RenderObject::isRelPositioned):
+ * rendering/RenderObjectChildList.cpp:
+ (WebCore::RenderObjectChildList::updateBeforeAfterContent):
+ * rendering/style/RenderStyle.h:
+
+2012-08-23 Ryosuke Niwa <rniwa@webkit.org>
+
+ EFL build fix attempt after r126494. Try touching the IDL file.
+
+ * Modules/battery/BatteryManager.idl:
+
+2012-08-23 Adam Barth <abarth@webkit.org>
+
+ Unreviewed attempt to fix build failure in Debug.
+
+ * bindings/v8/ScriptValue.h:
+
+2012-08-23 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Expose mechanism for database to force a connection to close
+ https://bugs.webkit.org/show_bug.cgi?id=91010
+
+ Reviewed by Tony Chang.
+
+ In response to user action (e.g. "delete my browsing data") a connection may
+ need to be forcibly terminated. This allows an event to be sent to a connection
+ from the back end via IDBDatabaseCallbacks to initiate closing the connection.
+
+ Test: [chromium] webkit_unit_test --gtest_filter='IDBDatabaseBackendTest.ForcedClose'
+
+ * Modules/indexeddb/IDBDatabase.cpp:
+ (WebCore::IDBDatabase::forceClose): Abort all transactions and close.
+ (WebCore):
+ * Modules/indexeddb/IDBDatabase.h:
+ (IDBDatabase): Entry point.
+ * Modules/indexeddb/IDBDatabaseCallbacks.h:
+ (IDBDatabaseCallbacks): Event plumbing from back end.
+ * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
+ (WebCore::IDBDatabaseCallbacksImpl::onForcedClose): Ditto.
+ (WebCore):
+ * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
+ (IDBDatabaseCallbacksImpl): Ditto.
+ * inspector/InspectorIndexedDBAgent.cpp:
+ (WebCore): Method stub.
+
+2012-08-23 James Robinson <jamesr@chromium.org>
+
+ [chromium] Convert WebAnimationCurve subtypes into pure virtual
+ https://bugs.webkit.org/show_bug.cgi?id=94068
+
+ Reviewed by Adrienne Walker.
+
+ Updates users of the Web*AnimationCurve interface for its new pointery goodness.
+
+ * platform/graphics/chromium/AnimationTranslationUtil.cpp:
+ (WebCore::appendKeyframeWithStandardTimingFunction):
+ (WebCore::appendKeyframeWithCustomBezierTimingFunction):
+ (WebCore::WebTransformAnimationCurve):
+ (WebCore::createWebAnimation):
+
+2012-08-23 Emil A Eklund <eae@chromium.org>
+
+ Add saturation arithmetic support to FractionalLayoutUnit
+ https://bugs.webkit.org/show_bug.cgi?id=94364
+
+ Reviewed by Benjamin Poulain.
+
+ Add experimental saturation arithmetic support to FractionalLayoutUnit,
+ guarded by a flag.
+ The idea here is to saturate (or clamp) rather than overflow when
+ computing positions and sizes.
+
+ No new tests for WebCore, not enabled by default.
+
+ * platform/FractionalLayoutUnit.h:
+ (WebCore::FractionalLayoutUnit::intMinForLayoutUnit):
+ Use INT_MIN instead of -INT_MAX to compute minimum value as the two are
+ not the same.
+
+ (WebCore::FractionalLayoutUnit::FractionalLayoutUnit):
+ (WebCore::FractionalLayoutUnit::fromFloatCeil):
+ (WebCore::FractionalLayoutUnit::fromFloatFloor):
+ (WebCore::FractionalLayoutUnit::fromFloatRound):
+ (WebCore::FractionalLayoutUnit::setValue):
+ Add range checks.
+
+ (WebCore::operator*):
+ (WebCore::operator+):
+ (WebCore::operator-):
+ (WebCore::operator+=):
+ (WebCore::operator-=):
+ Use the saturatedAddition and saturatedSubtraction functions, which have
+ been optimized to reduce branching, instead of range checks for the most
+ common operators.
+
+2012-08-23 Kenneth Russell <kbr@google.com>
+
+ Unreviewed, rolling out r126483.
+ http://trac.webkit.org/changeset/126483
+ https://bugs.webkit.org/show_bug.cgi?id=92272
+
+ Caused two Chromium browser_tests to time out 100% reliably.
+
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::init):
+ (WebCore::FrameLoader::prepareForLoadStart):
+ (WebCore::FrameLoader::clearProvisionalLoad):
+ (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
+ (WebCore::FrameLoader::detachFromParent):
+ * loader/FrameLoader.h:
+ (FrameLoader):
+
+2012-08-23 Kentaro Hara <haraken@chromium.org>
+
+ Unreviewed. Just added comments I forgot to add in r126506.
+
+ * bindings/v8/ScriptController.h:
+ (WebCore):
+ (ScriptController):
+
+2012-08-23 Kenneth Russell <kbr@google.com>
+
+ Unreviewed, rolling out r126483.
+ http://trac.webkit.org/changeset/126483
+ https://bugs.webkit.org/show_bug.cgi?id=92272
+
+ Caused two Chromium browser_tests to time out 100% reliably.
+
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::init):
+ (WebCore::FrameLoader::prepareForLoadStart):
+ (WebCore::FrameLoader::clearProvisionalLoad):
+ (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
+ (WebCore::FrameLoader::detachFromParent):
+ * loader/FrameLoader.h:
+ (FrameLoader):
+
+2012-08-23 Kentaro Hara <haraken@chromium.org>
+
+ [V8] Remove V8Proxy.{h,cpp}
+ https://bugs.webkit.org/show_bug.cgi?id=94794
+
+ Reviewed by Dimitri Glazkov.
+
+ Now V8Proxy is no longer used. We can completely remove V8Proxy from the codebase.
+
+ No tests. No change in behavior.
+
+ * UseV8.cmake:
+ * WebCore.gypi:
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateImplementation):
+ (GenerateCallbackImplementation):
+ * bindings/scripts/test/V8/V8Float64Array.cpp:
+ * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
+ * bindings/scripts/test/V8/V8TestCallback.cpp:
+ * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
+ * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
+ * bindings/scripts/test/V8/V8TestEventTarget.cpp:
+ * bindings/scripts/test/V8/V8TestException.cpp:
+ * bindings/scripts/test/V8/V8TestInterface.cpp:
+ * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
+ * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
+ * bindings/scripts/test/V8/V8TestNode.cpp:
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
+ * bindings/v8/ScriptController.cpp:
+ (WebCore::ScriptController::ScriptController):
+ (WebCore::ScriptController::~ScriptController):
+ (WebCore::ScriptController::callFunction):
+ (WebCore::ScriptController::clearWindowShell):
+ * bindings/v8/ScriptController.h:
+ (WebCore):
+ (ScriptController):
+ * bindings/v8/V8AbstractEventListener.h:
+ (WebCore):
+ * bindings/v8/V8Binding.cpp:
+ * bindings/v8/V8DOMWindowShell.cpp:
+ (WebCore::reportFatalErrorInV8):
+ * bindings/v8/V8DOMWrapper.h:
+ (WebCore):
+ * bindings/v8/V8ObjectConstructor.cpp:
+ (WebCore::V8ObjectConstructor::newInstanceInDocument):
+ * bindings/v8/V8Proxy.cpp: Removed.
+ * bindings/v8/V8Proxy.h: Removed.
+ * bindings/v8/V8RecursionScope.h:
+ (WebCore):
+ * bindings/v8/V8Utilities.cpp:
+ * bindings/v8/custom/V8CustomXPathNSResolver.h:
+
+2012-08-23 Otto Derek Cheung <otcheung@rim.com>
+
+
+ [BlackBerry] Add a check to filter out cookies that tries to set the domain to a top level domain
+ https://bugs.webkit.org/show_bug.cgi?id=94722
+
+ Reviewed by Rob Buis.
+
+ Changing the topleveldomain method name for better readability.
+
+ Also renaming the TopLevelDomain.h in platform to DomainTools
+ because there exists other tests that should belong in the same file.
+
+ Only changing method names and include file names.
+
+ * platform/blackberry/CookieParser.cpp:
+ (WebCore::CookieParser::parseOneCookie):
+
+2012-08-23 Shezan Baig <shezbaig.wk@gmail.com>
+
+ Fix cross-direction stretch for replaced elements in column flexbox
+ https://bugs.webkit.org/show_bug.cgi?id=94604
+
+ Reviewed by Ojan Vafai.
+
+ Moved the logic that constrains logical width by MinSize and MaxSize to
+ a new helper function called constrainLogicalWidthInRegionByMinMax.
+ This helper function is used from both computeLogicalWidthInRegion and
+ RenderFlexibleBox::applyStretchAlignmentToChild.
+
+ RenderFlexibleBox no longer checks for isMultiline when stretching
+ elements in a column flexbox. Instead, we now constrain the available
+ width by the child's min-width and max-width, and set the override
+ width only if that constrained width is different from the child's
+ current logicalWidth.
+
+ No new tests. The existing css3/flexbox/flexitem.html test was extended
+ to exercise the new code.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::constrainLogicalWidthInRegionByMinMax): New helper
+ method to constrain logical width by min-width and max-width.
+ (WebCore):
+ (WebCore::RenderBox::computeLogicalWidthInRegion): Changed to use the
+ new constrainLogicalWidthInRegionByMinMax helper method.
+ * rendering/RenderBox.h:
+ (RenderBox):
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Changed to
+ use constrainLogicalWidthInRegionByMinMax to determine the override
+ width for the child.
+
+2012-08-23 Adam Barth <abarth@webkit.org>
+
+ [V8] ScriptState is using stone knifes and bear skins
+ https://bugs.webkit.org/show_bug.cgi?id=94846
+
+ Reviewed by Eric Seidel.
+
+ This patch just modernizes ScriptState to use some of the newer tools
+ available in the V8 bindings. There shouldn't be any behavior changes.
+
+ * bindings/v8/ScriptState.cpp:
+ (WebCore::ScriptState::ScriptState):
+ (WebCore::ScriptState::~ScriptState):
+ (WebCore::ScriptState::domWindow):
+ (WebCore::ScriptState::scriptExecutionContext):
+ (WebCore::ScriptState::forContext):
+ (WebCore::ScriptState::current):
+ * bindings/v8/ScriptState.h:
+ (WebCore):
+ (WebCore::ScriptState::context):
+ (ScriptState):
+ (WebCore::ScriptStateProtectedPtr::ScriptStateProtectedPtr):
+ (ScriptStateProtectedPtr):
+ * bindings/v8/V8Binding.cpp:
+ (WebCore::toScriptExecutionContext):
+ (WebCore):
+ * bindings/v8/V8Binding.h:
+ (WebCore):
+
+2012-08-23 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Don't require a RenderSurface* in order to create a RenderPass
+ https://bugs.webkit.org/show_bug.cgi?id=94862
+
+ Reviewed by Adrienne Walker.
+
+ If a test wants to create a RenderPass, they are required to create a
+ Layer, and a RenderSurface. This is not ideal, we should let tests
+ create RenderPasses more simply by giving the information that it needs.
+
+ This also helps us recreate the RenderPasses after receiving a copy
+ via IPC.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
+ * platform/graphics/chromium/cc/CCRenderPass.cpp:
+ (WebCore::CCRenderPass::create):
+ (WebCore::CCRenderPass::CCRenderPass):
+ * platform/graphics/chromium/cc/CCRenderPass.h:
+ (CCRenderPass):
+
+2012-08-23 Adam Barth <abarth@webkit.org>
+
+ [V8] ScriptValue should use ScopedPresistent rather than calling New/Dispose directly
+ https://bugs.webkit.org/show_bug.cgi?id=94864
+
+ Reviewed by Eric Seidel.
+
+ ScriptValue was created before ScopedPersistent existed and therefore
+ calls New/Dispose manually. Instead, it should use the less error-prone
+ approach of having ScopedPersistent balance those calls.
+
+ * bindings/v8/ScriptValue.cpp:
+ (WebCore::ScriptValue::serialize):
+ (WebCore::ScriptValue::getString):
+ (WebCore::ScriptValue::toString):
+ (WebCore::ScriptValue::toInspectorValue):
+ * bindings/v8/ScriptValue.h:
+ (WebCore::ScriptValue::ScriptValue):
+ (WebCore::ScriptValue::operator=):
+ (WebCore::ScriptValue::operator==):
+ (WebCore::ScriptValue::isEqual):
+ (WebCore::ScriptValue::isFunction):
+ (WebCore::ScriptValue::isNull):
+ (WebCore::ScriptValue::isUndefined):
+ (WebCore::ScriptValue::isObject):
+ (WebCore::ScriptValue::hasNoValue):
+ (WebCore::ScriptValue::clear):
+ (WebCore::ScriptValue::v8Value):
+ (ScriptValue):
+
+2012-08-22 James Robinson <jamesr@chromium.org>
+
+ [chromium] Remove WebLayer::setChildren API
+ https://bugs.webkit.org/show_bug.cgi?id=94749
+
+ Reviewed by Adrienne Walker.
+
+ Sets up the child list directly instead of building an intermediate buffer. Covered by compositing/*
+
+ * platform/graphics/chromium/GraphicsLayerChromium.cpp:
+ (WebCore::GraphicsLayerChromium::updateChildList):
+
+2012-08-23 Dominic Mazzoni <dmazzoni@google.com>
+
+ AX: Focusable elements without a role should not be ignored
+ https://bugs.webkit.org/show_bug.cgi?id=94302
+
+ Reviewed by Chris Fleizach.
+
+ Changes the accessibility logic so that a generic element that's focusable is
+ not ignored for accessibility, and returns its inner text as its title. That way
+ if you Tab to the element, a reasonable accessibility notification is generated.
+
+ One exception is the body element, because focusing the body is equivalent to
+ blurring the current focused element and does not result in a "focus" accessibility
+ notification.
+
+ Also fixes logic that determined if an element was contentEditable by making
+ sure it catches the case with no attribute value (e.g. <div contentEditable>),
+ which also implies contentEditable=true according to the spec.
+
+ Test: accessibility/focusable-div.html
+
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore):
+ (WebCore::nodeHasContentEditableAttributeSet):
+ (WebCore::AccessibilityRenderObject::title):
+ (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
+
+2012-08-23 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Remove RenderTable::removeChild
+ https://bugs.webkit.org/show_bug.cgi?id=94842
+
+ Reviewed by Abhishek Arya.
+
+ This change removed removeChild, replaced by willBeRemovedFromTree calls. The upside is that
+ the invalidations are now guaranteed to run if we split a table (which is not guaranteed when
+ using removeChild). This change also shows that our code may be doing too much work in some
+ of the child's removal, in which case the code was marked as needed.
+
+ Covered by existing tests.
+
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::removeCaption):
+ Helper function used to remove the caption from our Vector. The invalidation are very likely
+ unneeded so added a comment about that.
+
+ * rendering/RenderTable.h:
+ * rendering/RenderTableCaption.cpp:
+ (WebCore::RenderTableCaption::willBeRemovedFromTree):
+ (WebCore::RenderTableCaption::table):
+ * rendering/RenderTableCaption.h:
+ * rendering/RenderTableCol.cpp:
+ (WebCore::RenderTableCol::willBeRemovedFromTree):
+ * rendering/RenderTableCol.h:
+ Added the following functions to do the invalidation.
+
+2012-08-23 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
+ https://bugs.webkit.org/show_bug.cgi?id=93884
+
+ Reviewed by Filip Pizlo.
+
+ With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of
+ MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines,
+ we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined
+ objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject).
+ For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not
+ masquerade as undefined within frame B, but it will continue to masquerade in frame A.
+
+ Test: fast/js/document-all-between-frames.html
+
+ All of the changes in WebCore are simply passing the additional ExecState argument to JSValue::toBoolean.
+
+ * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
+ (WebCore::JSSQLStatementErrorCallback::handleEvent):
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::addEventListener):
+ (WebCore::JSDOMWindow::removeEventListener):
+ * bindings/js/JSDataViewCustom.cpp:
+ (WebCore::getDataViewMember):
+ * bindings/js/JSDeviceMotionEventCustom.cpp:
+ (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
+ * bindings/js/JSDeviceOrientationEventCustom.cpp:
+ (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
+ * bindings/js/JSDictionary.cpp:
+ (WebCore::JSDictionary::convertValue):
+ * bindings/js/JSHTMLCanvasElementCustom.cpp:
+ (WebCore::JSHTMLCanvasElement::getContext):
+ * bindings/js/JSInspectorFrontendHostCustom.cpp:
+ (WebCore::populateContextMenuItems):
+ * bindings/js/JSMessageEventCustom.cpp:
+ (WebCore::handleInitMessageEvent):
+ * bindings/js/JSWebGLRenderingContextCustom.cpp:
+ (WebCore::dataFunctionMatrix):
+ * bindings/js/JSXMLHttpRequestCustom.cpp:
+ (WebCore::JSXMLHttpRequest::open):
+ * bindings/js/JavaScriptCallFrame.cpp:
+ (WebCore::JavaScriptCallFrame::exec):
+ (WebCore):
+ * bindings/js/JavaScriptCallFrame.h:
+ (JavaScriptCallFrame):
+ * bindings/js/ScriptDebugServer.cpp:
+ (WebCore::ScriptDebugServer::hasBreakpoint):
+ * bindings/js/SerializedScriptValue.cpp:
+ (WebCore::CloneSerializer::dumpIfTerminal):
+ * bindings/scripts/CodeGeneratorJS.pm: Also add the custom create function for MasqueradesAsUndefined JS DOM wrappers.
+ (GenerateEventListenerCall):
+ (GenerateHeader):
+ (JSValueToNative):
+ * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+ (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
+ (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
+ * bindings/scripts/test/JS/JSTestEventTarget.h:
+ (WebCore::JSTestEventTarget::create):
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::setJSTestObjCreate):
+ (WebCore::setJSTestObjReflectedBooleanAttr):
+ (WebCore::setJSTestObjReflectedCustomBooleanAttr):
+ (WebCore::jsTestObjPrototypeFunctionAddEventListener):
+ (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
+ * bridge/c/c_utility.cpp:
+ (JSC::Bindings::convertValueToNPVariant):
+ * bridge/jni/jni_jsobject.mm:
+ (JavaJSObject::convertValueToJObject):
+ * bridge/qt/qt_runtime.cpp:
+ (JSC::Bindings::convertValueToQVariant):
+
+2012-08-23 Adenilson Cavalcanti <cavalcantii@gmail.com>
+
+ CSSParser: Move enumeration to a common place (StylePropertyShorthand)
+ https://bugs.webkit.org/show_bug.cgi?id=93210
+
+ Reviewed by Dean Jackson.
+
+ CSSParser::parseAnimationShorthand() uses an enumeration with the same
+ elements as another enumeration present in StylePropertyShorthand, but
+ with different ordering of values. This patch puts both enums in the same place.
+
+ No new tests. No change in behavior.
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseAnimationShorthand):
+ * css/StylePropertyShorthand.cpp:
+ (WebCore::webkitAnimationShorthandForParsing):
+ (WebCore):
+ * css/StylePropertyShorthand.h:
+ (WebCore):
+
+2012-08-23 Mike West <mkwst@chromium.org>
+
+ Trailing spaces in CSP source lists should not generate console warnings.
+ https://bugs.webkit.org/show_bug.cgi?id=94847
+
+ Reviewed by Adam Barth.
+
+ Trailing space after a valid source in a Content Security Policy source
+ list was accidentally generating console warnings about an invalid
+ (empty) source. This patch silently ignores trailing whitespace instead.
+
+ A test-case has been added to 'source-list-parsing-02.html' to cover
+ this case.
+
+ * page/ContentSecurityPolicy.cpp:
+ (WebCore::CSPSourceList::parse):
+ Return early if we reach the end of the source list after skipping
+ leading whitespace.
+
+2012-08-23 Adam Barth <abarth@webkit.org>
+
+ [V8] OwnHandle is a bit of a misnomer
+ https://bugs.webkit.org/show_bug.cgi?id=94841
+
+ Reviewed by Eric Seidel.
+
+ You don't really own the handle in the same way that you own a pointer
+ with OwnPtr. This class is more correctly called ScopedPersistent
+ because it just forces you to balance New() and Dispose() calls.
+
+ * WebCore.gypi:
+ * bindings/v8/JavaScriptCallFrame.h:
+ (JavaScriptCallFrame):
+ * bindings/v8/OwnHandle.h: Removed.
+ * bindings/v8/ScheduledAction.h:
+ (ScheduledAction):
+ * bindings/v8/ScopedPersistent.h: Copied from Source/WebCore/bindings/v8/OwnHandle.h.
+ (ScopedPersistent):
+ (WebCore::ScopedPersistent::ScopedPersistent):
+ (WebCore::ScopedPersistent::~ScopedPersistent):
+ * bindings/v8/ScriptDebugServer.cpp:
+ (WebCore::ScriptDebugServer::compileScript):
+ (WebCore::ScriptDebugServer::runScript):
+ * bindings/v8/ScriptDebugServer.h:
+ (ScriptDebugServer):
+ * bindings/v8/ScriptInstance.h:
+ (V8ScriptInstance):
+ * bindings/v8/V8PerContextData.h:
+ (V8PerContextData):
+
+2012-08-23 Nate Chapin <japhet@chromium.org>
+
+ ProgressTracker never completes if iframe detached during parsing
+ https://bugs.webkit.org/show_bug.cgi?id=92272
+
+ Reviewed by Adam Barth.
+
+ Add a simple helper class to FrameLoader to ensure progressStarted/progressCompleted calls are matched,
+ and balance the calls when the Frame is detached.
+
+ No new tests, as this behavior has only been producing reliably by setting a breakpoint in a specific place.
+
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::init):
+ (WebCore::FrameLoader::FrameProgressTracker::progressStarted):
+ (WebCore::FrameLoader::FrameProgressTracker::progressCompleted):
+ (WebCore::FrameLoader::FrameProgressTracker::~FrameProgressTracker):
+ (WebCore::FrameLoader::prepareForLoadStart):
+ (WebCore::FrameLoader::clearProvisionalLoad):
+ (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
+ (WebCore::FrameLoader::detachFromParent):
+ * loader/FrameLoader.h:
+ (FrameProgressTracker):
+ (WebCore::FrameLoader::FrameProgressTracker::create):
+ (WebCore::FrameLoader::FrameProgressTracker::FrameProgressTracker):
+
+2012-08-23 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Create sharedQuadState at same time as creating quads and give them to the quadSink
+ https://bugs.webkit.org/show_bug.cgi?id=94752
+
+ Reviewed by Adrienne Walker.
+
+ Previously, CCRenderPass would create a sharedQuadState for a layer,
+ and pass it in to the layer. Then the layer would point all its quads
+ at the sharedQuadState.
+
+ After this change, the layer creates its own sharedQuadState, gives it
+ to the RenderPass (via CCQuadSink), and points its quads at it.
+
+ This approach allows a layer to generate more than one sharedQuadState
+ with different quads pointing to different shared states. Also, this
+ will allow the layer representing a delegating renderer (via ubercomp)
+ to copy sharedQuadStates from the delegating renderer in order to
+ merge its quads into the RenderPass for the current renderer.
+
+ Covered by existing tests, no change in behaviour.
+
+ * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
+ (WebCore::CCHeadsUpDisplayLayerImpl::appendQuads):
+ * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
+ (CCHeadsUpDisplayLayerImpl):
+ * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
+ (WebCore::CCIOSurfaceLayerImpl::appendQuads):
+ * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
+ (CCIOSurfaceLayerImpl):
+ * platform/graphics/chromium/cc/CCLayerImpl.cpp:
+ (WebCore::CCLayerImpl::createSharedQuadState):
+ * platform/graphics/chromium/cc/CCLayerImpl.h:
+ (CCLayerImpl):
+ (WebCore::CCLayerImpl::appendQuads):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
+ * platform/graphics/chromium/cc/CCQuadCuller.cpp:
+ (WebCore::CCQuadCuller::CCQuadCuller):
+ (WebCore::CCQuadCuller::append):
+ (WebCore::CCQuadCuller::useSharedQuadState):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCQuadCuller.h:
+ (WebCore):
+ (CCQuadCuller):
+ * platform/graphics/chromium/cc/CCQuadSink.h:
+ (WebCore):
+ (CCQuadSink):
+ * platform/graphics/chromium/cc/CCRenderPass.cpp:
+ (WebCore::CCRenderPass::appendQuadsForLayer):
+ (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
+ (WebCore::CCRenderPass::appendQuadsToFillScreen):
+ * platform/graphics/chromium/cc/CCRenderPass.h:
+ (WebCore):
+ (CCRenderPass):
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::appendQuads):
+ * platform/graphics/chromium/cc/CCRenderSurface.h:
+ (CCRenderSurface):
+ * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
+ (WebCore::CCScrollbarLayerImpl::appendQuads):
+ * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
+ (CCScrollbarLayerImpl):
+ * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
+ (WebCore::CCSharedQuadState::create):
+ (WebCore::CCSharedQuadState::CCSharedQuadState):
+ * platform/graphics/chromium/cc/CCSharedQuadState.h:
+ (CCSharedQuadState):
+ * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
+ (WebCore::CCSolidColorLayerImpl::appendQuads):
+ * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
+ (CCSolidColorLayerImpl):
+ * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
+ (WebCore::CCTextureLayerImpl::appendQuads):
+ * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
+ (CCTextureLayerImpl):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
+ (WebCore::CCTiledLayerImpl::appendQuads):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
+ (CCTiledLayerImpl):
+ * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
+ (WebCore::CCVideoLayerImpl::appendQuads):
+ * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
+ (CCVideoLayerImpl):
+
+2012-08-23 Mark Rowe <mrowe@apple.com>
+
+ Remove some unneeded cruft from WebCore.xcodeproj.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2012-08-23 Mark Rowe <mrowe@apple.com>
+
+ Make WebCore build with the latest version of clang.
+
+ Reviewed by Dan Bernstein.
+
+ * html/shadow/MediaControlRootElement.h: Remove m_textTrackDisplay as it is unused.
+ * platform/audio/mac/AudioFileReaderMac.cpp:
+ (WebCore::AudioFileReader::AudioFileReader): Remove m_filePath as it is unused.
+ * platform/audio/mac/AudioFileReaderMac.h:
+ (AudioFileReader): Ditto.
+ * platform/graphics/ImageSource.h:
+ (ImageSource): Guard m_alphaOption and m_gammaAndColorProfileOption with !USE(CG)
+ as they're unused on platforms using CG.
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
+ (MediaPlayerPrivateAVFoundationObjC): Remove m_player as it is unused.
+ * platform/graphics/cg/ImageSourceCG.cpp:
+ (WebCore::ImageSource::ImageSource): Don't initialize the m_alphaOption and
+ m_gammaAndColorProfileOption members since we never use them.
+ * platform/graphics/mac/GraphicsContext3DMac.mm:
+ (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate): Remove m_graphicsContext3D
+ as it is unused.
+
+2012-08-23 Alexandre Elias <aelias@chromium.org>
+
+ [chromium] Rename LayerRendererChromium to GL-specific name
+ https://bugs.webkit.org/show_bug.cgi?id=94835
+
+ Reviewed by James Robinson.
+
+ Over time, LayerRendererChromium has evolved to be a GL-specific
+ subclass of CCRenderer that has no awareness of layers (as it operates
+ only with drawQuads).
+
+ This patch renames LayerRendererChromium to CCRendererGL, replaces all
+ instances of "layerRenderer" with just "renderer", and removes a
+ few unnecessary includes of LayerRendererChromium.h.
+
+ No new tests (no-op refactoring).
+
+ * WebCore.gypi:
+ * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
+ * platform/graphics/chromium/ContentLayerChromium.cpp:
+ (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
+ * platform/graphics/chromium/GeometryBinding.cpp:
+ * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp:
+ (WebCore::HeadsUpDisplayLayerChromium::update):
+ * platform/graphics/chromium/ImageLayerChromium.cpp:
+ (WebCore::ImageLayerChromium::createTextureUpdaterIfNeeded):
+ * platform/graphics/chromium/LayerTextureSubImage.cpp:
+ * platform/graphics/chromium/ProgramBinding.cpp:
+ * platform/graphics/chromium/RenderSurfaceChromium.h:
+ (WebCore):
+ * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
+ (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
+ * platform/graphics/chromium/TextureCopier.cpp:
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
+ * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
+ * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
+ * platform/graphics/chromium/cc/CCLayerImpl.cpp:
+ (WebCore::sortLayers):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::CCLayerTreeHost):
+ (WebCore::CCLayerTreeHost::initializeRenderer):
+ (WebCore::CCLayerTreeHost::deleteContentsTexturesOnImplThread):
+ (WebCore::CCLayerTreeHost::finishAllRendering):
+ (WebCore::CCLayerTreeHost::rendererCapabilities):
+ (WebCore::CCLayerTreeHost::initializeRendererIfNeeded):
+ (WebCore::CCLayerTreeHost::updateLayers):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ (WebCore::RendererCapabilities::RendererCapabilities):
+ (CCLayerTreeHost):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::canDraw):
+ (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
+ (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
+ (WebCore::CCLayerTreeHostImpl::drawLayers):
+ (WebCore::CCLayerTreeHostImpl::finishAllRendering):
+ (WebCore::CCLayerTreeHostImpl::isContextLost):
+ (WebCore::CCLayerTreeHostImpl::rendererCapabilities):
+ (WebCore::CCLayerTreeHostImpl::swapBuffers):
+ (WebCore::CCLayerTreeHostImpl::readback):
+ (WebCore::CCLayerTreeHostImpl::setVisible):
+ (WebCore::CCLayerTreeHostImpl::initializeRenderer):
+ (WebCore::CCLayerTreeHostImpl::setViewportSize):
+ (WebCore::CCLayerTreeHostImpl::ensureRenderSurfaceLayerList):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ (WebCore):
+ (WebCore::CCLayerTreeHostImpl::renderer):
+ (CCLayerTreeHostImpl):
+ * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp:
+ * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
+ * platform/graphics/chromium/cc/CCPriorityCalculator.cpp:
+ * platform/graphics/chromium/cc/CCProxy.h:
+ (WebCore):
+ (CCProxy):
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ * platform/graphics/chromium/cc/CCRenderSurface.h:
+ (WebCore):
+ * platform/graphics/chromium/cc/CCRenderer.h:
+ (CCRenderer):
+ * platform/graphics/chromium/cc/CCRendererGL.cpp: Renamed from Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp.
+ (WebCore::CCRendererGL::create):
+ (WebCore):
+ (WebCore::CCRendererGL::CCRendererGL):
+ (WebCore::CCRendererGL::initialize):
+ (WebCore::CCRendererGL::~CCRendererGL):
+ (WebCore::CCRendererGL::context):
+ (WebCore::CCRendererGL::debugGLCall):
+ (WebCore::CCRendererGL::setVisible):
+ (WebCore::CCRendererGL::releaseRenderPassTextures):
+ (WebCore::CCRendererGL::viewportChanged):
+ (WebCore::CCRendererGL::clearFramebuffer):
+ (WebCore::CCRendererGL::beginDrawingFrame):
+ (WebCore::CCRendererGL::doNoOp):
+ (WebCore::CCRendererGL::drawQuad):
+ (WebCore::CCRendererGL::drawCheckerboardQuad):
+ (WebCore::CCRendererGL::drawDebugBorderQuad):
+ (WebCore::applyFilters):
+ (WebCore::CCRendererGL::drawBackgroundFilters):
+ (WebCore::CCRendererGL::drawRenderPassQuad):
+ (WebCore::CCRendererGL::drawSolidColorQuad):
+ (TileProgramUniforms):
+ (WebCore::tileUniformLocation):
+ (WebCore::CCRendererGL::drawTileQuad):
+ (WebCore::CCRendererGL::drawYUVVideoQuad):
+ (WebCore::CCRendererGL::drawStreamVideoQuad):
+ (WebCore::TextureProgramBinding::set):
+ (TextureProgramBinding):
+ (WebCore::TexTransformTextureProgramBinding::set):
+ (TexTransformTextureProgramBinding):
+ (WebCore::CCRendererGL::drawTextureQuad):
+ (WebCore::CCRendererGL::drawIOSurfaceQuad):
+ (WebCore::CCRendererGL::finishDrawingFrame):
+ (WebCore::CCRendererGL::toGLMatrix):
+ (WebCore::CCRendererGL::setShaderFloatQuad):
+ (WebCore::CCRendererGL::setShaderOpacity):
+ (WebCore::CCRendererGL::drawQuadGeometry):
+ (WebCore::CCRendererGL::copyTextureToFramebuffer):
+ (WebCore::CCRendererGL::finish):
+ (WebCore::CCRendererGL::swapBuffers):
+ (WebCore::CCRendererGL::onSwapBuffersComplete):
+ (WebCore::CCRendererGL::onMemoryAllocationChanged):
+ (WebCore::CCRendererGL::onMemoryAllocationChangedOnImplThread):
+ (WebCore::CCRendererGL::discardFramebuffer):
+ (WebCore::CCRendererGL::ensureFramebuffer):
+ (WebCore::CCRendererGL::onContextLost):
+ (WebCore::CCRendererGL::getFramebufferPixels):
+ (WebCore::CCRendererGL::getFramebufferTexture):
+ (WebCore::CCRendererGL::useScopedTexture):
+ (WebCore::CCRendererGL::bindFramebufferToOutputSurface):
+ (WebCore::CCRendererGL::bindFramebufferToTexture):
+ (WebCore::CCRendererGL::enableScissorTestRect):
+ (WebCore::CCRendererGL::disableScissorTest):
+ (WebCore::CCRendererGL::setDrawViewportSize):
+ (WebCore::CCRendererGL::makeContextCurrent):
+ (WebCore::CCRendererGL::initializeSharedObjects):
+ (WebCore::CCRendererGL::tileCheckerboardProgram):
+ (WebCore::CCRendererGL::solidColorProgram):
+ (WebCore::CCRendererGL::renderPassProgram):
+ (WebCore::CCRendererGL::renderPassProgramAA):
+ (WebCore::CCRendererGL::renderPassMaskProgram):
+ (WebCore::CCRendererGL::renderPassMaskProgramAA):
+ (WebCore::CCRendererGL::tileProgram):
+ (WebCore::CCRendererGL::tileProgramOpaque):
+ (WebCore::CCRendererGL::tileProgramAA):
+ (WebCore::CCRendererGL::tileProgramSwizzle):
+ (WebCore::CCRendererGL::tileProgramSwizzleOpaque):
+ (WebCore::CCRendererGL::tileProgramSwizzleAA):
+ (WebCore::CCRendererGL::textureProgram):
+ (WebCore::CCRendererGL::textureProgramFlip):
+ (WebCore::CCRendererGL::textureIOSurfaceProgram):
+ (WebCore::CCRendererGL::videoYUVProgram):
+ (WebCore::CCRendererGL::videoStreamTextureProgram):
+ (WebCore::CCRendererGL::cleanupSharedObjects):
+ (WebCore::CCRendererGL::isContextLost):
+ * platform/graphics/chromium/cc/CCRendererGL.h: Renamed from Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h.
+ (WebKit):
+ (WebCore):
+ (CCRendererGL):
+ (WebCore::CCRendererGL::sharedGeometryQuad):
+ (WebCore::CCRendererGL::sharedGeometry):
+ (WebCore::CCRendererGL::isFramebufferDiscarded):
+ * platform/graphics/chromium/cc/CCResourceProvider.cpp:
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
+ (WebCore::CCSingleThreadProxy::initializeRenderer):
+ (WebCore::CCSingleThreadProxy::recreateContext):
+ (WebCore::CCSingleThreadProxy::rendererCapabilities):
+ (WebCore::CCSingleThreadProxy::doCommit):
+ (WebCore::CCSingleThreadProxy::forceSerializeOnSwapBuffers):
+ (WebCore::CCSingleThreadProxy::commitAndComposite):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
+ (CCSingleThreadProxy):
+ * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::CCThreadProxy):
+ (WebCore::CCThreadProxy::compositeAndReadback):
+ (WebCore::CCThreadProxy::initializeRenderer):
+ (WebCore::CCThreadProxy::recreateContext):
+ (WebCore::CCThreadProxy::rendererCapabilities):
+ (WebCore::CCThreadProxy::forceSerializeOnSwapBuffersOnImplThread):
+ (WebCore::CCThreadProxy::beginFrame):
+ (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
+ (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
+ (WebCore::CCThreadProxy::initializeRendererOnImplThread):
+ (WebCore::CCThreadProxy::recreateContextOnImplThread):
+ * platform/graphics/chromium/cc/CCThreadProxy.h:
+ (CCThreadProxy):
+
+2012-08-23 Shezan Baig <shezbaig.wk@gmail.com>
+
+ Flexbox doesn't need to compute logical height for stretched items in row flow
+ https://bugs.webkit.org/show_bug.cgi?id=94807
+
+ Reviewed by Tony Chang.
+
+ Change logicalHeightConstrainedByMinMax to
+ constrainLogicalHeightByMinMax. The new method doesn't compute the
+ MainOrPreferred logical height (that computation has been moved back to
+ computeLogicalHeight). RenderFlexibleBox now just constrains the
+ stretchedLogicalHeight by min/max.
+
+ No new tests. This is a cleanup of bug 94237.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::constrainLogicalHeightByMinMax): Instead of
+ computing the MainOrPreferred logical height, just constrain the given
+ logical height by MinSize and MaxSize.
+ (WebCore::RenderBox::computeLogicalHeight): Compute the MainOrPreferred
+ logical height before constraining by min/max.
+ * rendering/RenderBox.h:
+ (RenderBox):
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Use
+ constrainLogicalHeightByMinMax to constrain the stretchedLogicalHeight.
+
+2012-08-23 Adam Barth <abarth@webkit.org>
+
+ [V8] V8ScriptInstance is much more complicated than necessary
+ https://bugs.webkit.org/show_bug.cgi?id=94785
+
+ Reviewed by Kentaro Hara.
+
+ V8ScriptInstance just needs to be a one-line wrapper around OwnHandle.
+
+ * bindings/v8/OwnHandle.h:
+ (WebCore::OwnHandle::get):
+ * bindings/v8/ScriptInstance.cpp:
+ (WebCore::V8ScriptInstance::V8ScriptInstance):
+ (WebCore::V8ScriptInstance::~V8ScriptInstance):
+ (WebCore::V8ScriptInstance::instance):
+ * bindings/v8/ScriptInstance.h:
+ (WebCore::V8ScriptInstance::create):
+ (V8ScriptInstance):
+
+2012-08-23 Christophe Dumez <christophe.dumez@intel.com>
+
+ Serialization of JavaScript values does not appear to respect new HTML5 Structured Clone semantics
+ https://bugs.webkit.org/show_bug.cgi?id=65292
+
+ Reviewed by Oliver Hunt.
+
+ JSC now correctly serialize Boolean, Number and String objects as per
+ the structured clone algorithm specification. This patch reduces the
+ delta with the V8 implementation of SerializedScriptValue.
+
+ No new tests, already tested by fast/dom/Window/window-postmessage-clone.html
+
+ * bindings/js/SerializedScriptValue.cpp:
+ (WebCore):
+ (WebCore::CloneSerializer::dumpStringObject):
+ (CloneSerializer):
+ (WebCore::CloneSerializer::dumpIfTerminal):
+ (WebCore::CloneDeserializer::readTerminal):
+
+2012-08-23 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Move onSuccess(IDBDatabaseBackendInterface) to IDBOpenDBRequest
+ https://bugs.webkit.org/show_bug.cgi?id=94757
+
+ Reviewed by Tony Chang.
+
+ Move the implementation of IDBCallbacks::onSuccess(IDBDatabaseBackendInterface)
+ from IDBRequest to the new IDBOpenDBRequest, which is the only request type that
+ should be receiving that callback.
+
+ No new tests - no functional changes.
+
+ * Modules/indexeddb/IDBCallbacks.h:
+ (IDBCallbacks):
+ (WebCore::IDBCallbacks::onSuccess):
+ * Modules/indexeddb/IDBOpenDBRequest.cpp:
+ (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
+ (WebCore::IDBOpenDBRequest::onSuccess):
+ (WebCore):
+ * Modules/indexeddb/IDBOpenDBRequest.h:
+ (IDBOpenDBRequest):
+ * Modules/indexeddb/IDBRequest.cpp:
+ * Modules/indexeddb/IDBRequest.h:
+
+2012-08-23 Andrei Onea <onea@adobe.com>
+
+ [CSSRegions]Crash when moving anonymous block children inside a named flow
+ https://bugs.webkit.org/show_bug.cgi?id=90865
+
+ Reviewed by Abhishek Arya.
+
+ When an anonymous block's children are detached in RenderBlock::collapseAnonymousBoxChild, the reference
+ to their enclosingRenderFlowThread is lost and causes a crash in RenderObject::willBeRemovedFromTree.
+ Because of this, we now maintain the enclosingRenderFlowThread during the whole lifetime of the
+ RenderBlock::collapseAnonymousBoxChild function, using a CurrentRenderFlowThreadMaintainer local.
+
+
+ Test: fast/regions/move-anonymous-block-inside-named-flow-crash.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::collapseAnonymousBoxChild):
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
+ (WebCore):
+ (WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):
+ Moved CurrentRenderFlowThreadMaintaner declaration from .cpp to .h, so that we can access it from
+ RenderBlock::collapseAnonymousBoxChild.
+ * rendering/RenderFlowThread.h:
+ (CurrentRenderFlowThreadMaintainer):
+ (WebCore):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::willBeRemovedFromTree):
+
+2012-08-23 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Unreviewed build fix. Add wx to the list of platforms that use CoreText
+ APIs on Mac.
+
+ * platform/graphics/SimpleFontData.h:
+ (SimpleFontData):
+
+2012-08-23 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Unreviewed build fix. Don't rely on implicit casts, explicitly use the
+ Cursor constructor that takes a platform cursor for creating native cursors.
+
+ * platform/wx/CursorWx.cpp:
+ (WebCore::pointerCursor):
+ (WebCore::crossCursor):
+ (WebCore::handCursor):
+ (WebCore::iBeamCursor):
+ (WebCore::waitCursor):
+ (WebCore::helpCursor):
+ (WebCore::eastResizeCursor):
+ (WebCore::northResizeCursor):
+ (WebCore::northEastResizeCursor):
+ (WebCore::northWestResizeCursor):
+ (WebCore::columnResizeCursor):
+ (WebCore::rowResizeCursor):
+ (WebCore::notAllowedCursor):
+ (WebCore::zoomInCursor):
+ (WebCore::moveCursor):
+
+2012-08-23 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
+
+ Remove redundant check for negative values when using WebCore::Color::alpha()
+ https://bugs.webkit.org/show_bug.cgi?id=94811
+
+ Reviewed by Eric Seidel.
+
+ Though alpha() returns a signed value (int), its value is stored on an unsigned
+ typedef (RGBA32) and is safeguarded by alphaChannel() that its value never goes
+ beyond 255, so no integer overflow, thus we can safely remove redundant check
+ for negative values while using it.
+
+ This change does not affect behavior, so no new tests needed.
+
+ * platform/graphics/Image.cpp:
+ (WebCore::Image::fillWithSolidColor):
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::paintFillLayerExtended):
+ (WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground): Using hasAlpha() for readibility.
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::paintBoxDecorations):
+ * rendering/style/RenderStyle.h:
+
+2012-08-23 Zan Dobersek <zandobersek@gmail.com>
+
+ [Gtk] Move feature defines processing into a GNUmakefile that's simple to autogenerate
+ https://bugs.webkit.org/show_bug.cgi?id=87127
+
+ Reviewed by Martin Robinson.
+
+ List all the feature defines with their default value in
+ GNUmakefile.features.am and append them to the 'feature_defines_defaults'.
+ variable.
+
+ In GNUmakefile.am, include the GNUmakefile.features.am. When checking the
+ AM conditionals for feature-enabling, append the appropriate define to
+ 'feature_defines_overrides'.
+
+ After all such overrides are performed, append the proper define (of which
+ value was possibly overridden) for each feature to the 'feature_defines'
+ variable. Finally, append all these defines to webcore_cppflags in the form
+ of macros for preprocessing.
+
+ No new tests - no new functionality.
+
+ * GNUmakefile.am:
+ * GNUmakefile.features.am: Added.
+
+2012-08-23 Adam Barth <abarth@webkit.org>
+
+ [V8] ScheduledAction is ugly and needs a cleanup
+ https://bugs.webkit.org/show_bug.cgi?id=94784
+
+ Reviewed by Eric Seidel.
+
+ This patch updates ScheduledAction to use modern WebKit machinery, like
+ OwnHandle and Vector.
+
+ * bindings/v8/OwnHandle.h:
+ (OwnHandle):
+ * bindings/v8/ScheduledAction.cpp:
+ (WebCore::ScheduledAction::ScheduledAction):
+ (WebCore::ScheduledAction::~ScheduledAction):
+ (WebCore::ScheduledAction::execute):
+ * bindings/v8/ScheduledAction.h:
+ (WebCore):
+ (ScheduledAction):
+ (WebCore::ScheduledAction::ScheduledAction):
+
+2012-08-23 Andrey Kosyakov <caseq@chromium.org>
+
+ Web Inspector: dblclick on Timeline overview no longer selects entire timeline range
+ https://bugs.webkit.org/show_bug.cgi?id=94826
+
+ Reviewed by Vsevolod Vlasov.
+
+ Only install a glass pane for drag-n-drop upon first mouseout event -- otherwise, glass pane
+ will interfere with double clicks.
+
+ * inspector/front-end/UIUtils.js:
+ (WebInspector._elementDragStart.onMouseOut):
+ (WebInspector._elementDragStart):
+ (WebInspector._elementDragEnd):
+
+2012-08-23 Adrienne Walker <enne@google.com>
+
+ Convert ScrollableArea ASSERT_NOT_REACHED virtuals
+ https://bugs.webkit.org/show_bug.cgi?id=93306
+
+ Reviewed by Darin Adler.
+
+ ASSERT_NOT_REACHED is a bad way to make sure that a virtual function
+ gets an override, because it only fails at run-time in debug builds.
+
+ To fix this, convert the virtuals in ScrollableArea that have
+ ASSERT_NOT_REACHED to be either pure virtual or implemented directly
+ in ScrollableArea. Add implementations where necessary to make derived
+ classes concrete.
+
+ Additionally, consistently add OVERRIDE for virtual functions in
+ derived classes that override ScrollableArea methods.
+
+ * WebCore.exp.in:
+ * page/FrameView.h:
+ (FrameView):
+ * platform/ScrollView.h:
+ (ScrollView):
+ * platform/ScrollableArea.cpp:
+ (WebCore::ScrollableArea::scrollPosition):
+ (WebCore):
+ (WebCore::ScrollableArea::minimumScrollPosition):
+ (WebCore::ScrollableArea::maximumScrollPosition):
+ (WebCore::ScrollableArea::visibleContentRect):
+ * platform/ScrollableArea.h:
+ (ScrollableArea):
+ (WebCore::ScrollableArea::overhangAmount):
+ * platform/chromium/FramelessScrollView.cpp:
+ (WebCore::FramelessScrollView::isOnActivePage):
+ (WebCore):
+ (WebCore::FramelessScrollView::scrollableAreaBoundingBox):
+ * platform/chromium/FramelessScrollView.h:
+ (FramelessScrollView):
+ * platform/win/PopupMenuWin.cpp:
+ (WebCore::PopupMenuWin::visibleHeight):
+ (WebCore):
+ (WebCore::PopupMenuWin::visibleWidth):
+ (WebCore::PopupMenuWin::contentsSize):
+ (WebCore::PopupMenuWin::isOnActivePage):
+ (WebCore::PopupMenuWin::scrollableAreaBoundingBox):
+ * platform/win/PopupMenuWin.h:
+ (PopupMenuWin):
+ * rendering/RenderListBox.cpp:
+ * rendering/RenderListBox.h:
+ (RenderListBox):
+
+2012-08-23 Alexander Shalamov <alexander.shalamov@intel.com>
+
+ getComputedStyle returns wrong value for CSS3 2D transformations
+ https://bugs.webkit.org/show_bug.cgi?id=94211
+
+ Reviewed by Simon Fraser.
+
+ When computed style is calculated for CSS3 2D transformation, content
+ box size is used. According to W3C specification, object's bounding
+ box should be used. This patch fixes transformation matrix calculation.
+
+ Layout tests getComputedStyle-transform.html and computed-style-origin.html
+ were modified to test changes.
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::computedTransform):
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+ (WebCore::pixelSnappedSizingBox): Removed unused method
+
+2012-08-23 Takashi Sakamoto <tasak@google.com>
+
+ Distributed nodes should not share styles.
+ https://bugs.webkit.org/show_bug.cgi?id=90661
+
+ Reviewed by Hajime Morita.
+
+ styleForElement tries to use previous sibling's style for distributed
+ nodes. However distributed nodes are children of a shadow host, but
+ the nodes are not siblings as the result of distribution.
+ The spec is:
+ http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-dom-subtrees
+ So sharing previous sibling's style should be disabled for distrbuted
+ nodes.
+
+ Test: fast/dom/shadow/style-of-distributed-node.html
+
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::StyleResolver):
+ Initialized m_distributedToInsertionPoint. Its initial value is false.
+ (WebCore::StyleResolver::initForStyleResolve):
+ After invoking NodeRenderingContext, if the context returns any
+ insertion point, set m_distributedToInsertionPoint to be true.
+ Otherwise, false. The value is used in styleForElement.
+ (WebCore::StyleResolver::styleForElement):
+ If m_distributedToInsertionPoint is true, disable local sibling style
+ cache.
+ * css/StyleResolver.h:
+ (StyleResolver):
+ Added a new member variable, m_distributedToInsertionPoint.
+ The variable keeps whether the m_element is distributed to an
+ insertion point.
+
+2012-08-23 John Griggs <jgriggs@rim.com>
+
+ Replace access ot HTMLMediaElement from MediaPlayerPrivateBlackBerry with methods in MediaPlayerClient - updated with notes from initial reviews. https://bugs.webkit.org/show_bug.cgi?id=84291
+
+ Reviewed by Eric Carlson.
+
+ Code standard compliance - no functional change, so no new tests required.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::mediaPlayerExitFullscreen):
+ (WebCore):
+ (WebCore::HTMLMediaElement::mediaPlayerIsVideo):
+ (WebCore::HTMLMediaElement::mediaPlayerContentBoxRect):
+ (WebCore::HTMLMediaElement::mediaPlayerSetSize):
+ (WebCore::HTMLMediaElement::mediaPlayerPause):
+ (WebCore::HTMLMediaElement::mediaPlayerPlay):
+ (WebCore::HTMLMediaElement::mediaPlayerIsPaused):
+ (WebCore::HTMLMediaElement::mediaPlayerHostWindow):
+ (WebCore::HTMLMediaElement::mediaPlayerWindowClipRect):
+ * html/HTMLMediaElement.h:
+ (HTMLMediaElement):
+ * platform/graphics/MediaPlayer.h:
+ (WebCore):
+ (WebCore::MediaPlayerClient::mediaPlayerExitFullscreen):
+ (WebCore::MediaPlayerClient::mediaPlayerIsVideo):
+ (WebCore::MediaPlayerClient::mediaPlayerContentBoxRect):
+ (WebCore::MediaPlayerClient::mediaPlayerSetSize):
+ (WebCore::MediaPlayerClient::mediaPlayerPause):
+ (WebCore::MediaPlayerClient::mediaPlayerPlay):
+ (WebCore::MediaPlayerClient::mediaPlayerIsPaused):
+ (WebCore::MediaPlayerClient::mediaPlayerHostWindow):
+ (WebCore::MediaPlayerClient::mediaPlayerWindowClipRect):
+ * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
+ (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
+ (WebCore::MediaPlayerPrivate::load):
+ (WebCore::MediaPlayerPrivate::paint):
+ (WebCore::MediaPlayerPrivate::resizeSourceDimensions):
+ (WebCore::MediaPlayerPrivate::updateStates):
+ (WebCore::MediaPlayerPrivate::onPauseStateChanged):
+ (WebCore::MediaPlayerPrivate::onPlayNotified):
+ (WebCore::MediaPlayerPrivate::onPauseNotified):
+ (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
+ (WebCore::MediaPlayerPrivate::showErrorDialog):
+ (WebCore::MediaPlayerPrivate::platformWindow):
+ (WebCore::MediaPlayerPrivate::isElementPaused):
+ (WebCore::MediaPlayerPrivate::isTabVisible):
+ * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
+ (MediaPlayerPrivate):
+
+2012-08-23 John Mellor <johnme@chromium.org>
+
+ Text Autosizing: Multiply large fonts less, as they are already more legible.
+ https://bugs.webkit.org/show_bug.cgi?id=94227
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Rather than uniformly multiplying font sizes by the multiplier (derived
+ from the width of the block), we should multiply fonts that are already
+ large less, since they are already more legible hence there is less need
+ for them to grow.
+
+ However it is still important to maintain differentiation between text
+ that the author specified to be of different sizes.
+
+ This algorithm multiplies text by the multiplier up until a predefined
+ "pleasant" font size; beyond that the computedSize goes up with
+ specifiedSize but at a gradient of less than 1 in order to gradually
+ fade out the size increase; finally for very large specifiedSizes the
+ computedSize will be the same as the specifiedSize.
+
+ For further details, including a graph, please see the bug report.
+
+ Test: fast/text-autosizing/various-font-sizes.html
+
+ * rendering/TextAutosizer.cpp:
+ (WebCore::TextAutosizer::computeAutosizedFontSize):
+
+ Implements the custom multiplication. See comment for details.
+
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::lineHeight):
+
+ Use computeAutosizedFontSize instead of directly multiplying.
+
+ (WebCore::RenderStyle::setFontSize):
+
+ Use computeAutosizedFontSize instead of directly multiplying.
+
+2012-08-23 Emil A Eklund <eae@chromium.org>
+
+ Remove dependency on RenderStyle from FractionalLayoutBoxExtent and LayoutBox
+ https://bugs.webkit.org/show_bug.cgi?id=94146
+
+ Reviewed by Eric Seidel.
+
+ FractionalLayoutBoxExtent and LayoutBox currently have a dependency on
+ RenderStyle to resolve writing mode and text direction.
+ This is undesirable and breaks encapsulation.
+
+ Change FractionalLayoutBoxExtent and LengthBox to take a writing mode
+ parameter, and text direction as needed, instead of a pointer to a
+ RenderStyle object.
+
+ No new tests, no change in functionality.
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ Add new WritingMode.h file.
+
+ * css/CSSPrimitiveValueMappings.h:
+ * css/CSSProperty.h:
+ * css/CSSToStyleMap.h:
+ Change includes as needed.
+
+ * platform/LengthBox.h:
+ * platform/LengthBox.cpp:
+ (WebCore::LengthBox::logicalLeft):
+ (WebCore::LengthBox::logicalRight):
+ (WebCore::LengthBox::before):
+ (WebCore::LengthBox::after):
+ Change methods to take a WirtingMode parameter instead of a RenderStyle pointer.
+
+ (WebCore::LengthBox::start):
+ (WebCore::LengthBox::end):
+ Change methods to take WritingMode and TextDirection parameters instead of a RenderStyle pointer.
+
+ * platform/graphics/FractionalLayoutBoxExtent.h:
+ * platform/graphics/FractionalLayoutBoxExtent.cpp:
+ (WebCore::FractionalLayoutBoxExtent::logicalTop):
+ (WebCore::FractionalLayoutBoxExtent::logicalBottom):
+ (WebCore::FractionalLayoutBoxExtent::logicalLeft):
+ (WebCore::FractionalLayoutBoxExtent::logicalRight):
+ (WebCore::FractionalLayoutBoxExtent::before):
+ (WebCore::FractionalLayoutBoxExtent::after):
+ (WebCore::FractionalLayoutBoxExtent::setBefore):
+ (WebCore::FractionalLayoutBoxExtent::setAfter):
+ (WebCore::FractionalLayoutBoxExtent::mutableLogicalLeft):
+ (WebCore::FractionalLayoutBoxExtent::mutableLogicalRight):
+ (WebCore::FractionalLayoutBoxExtent::mutableBefore):
+ (WebCore::FractionalLayoutBoxExtent::mutableAfter):
+ Change methods to take a WritingMode parameter instead of a RenderStyle pointer.
+
+ (WebCore::FractionalLayoutBoxExtent::start):
+ (WebCore::FractionalLayoutBoxExtent::end):
+ (WebCore::FractionalLayoutBoxExtent::setStart):
+ (WebCore::FractionalLayoutBoxExtent::setEnd):
+ Change methods to take WritingMode and TextDirection parameters instead of a RenderStyle pointer.
+
+ * platform/text/TextDirection.h:
+ (WebCore::isLeftToRightDirection):
+ Add convenience method.
+
+ * platform/text/WritingMode.h: Added.
+ Move WritingMode enum from RenderStyleConstants to new file.
+
+ (WebCore::isHorizontalWritingMode):
+ (WebCore::isFlippedLinesWritingMode):
+ (WebCore::isFlippedBlocksWritingMode):
+ Add convenience methods for working with writing modes.
+
+ * rendering/InlineFlowBox.cpp:
+ * rendering/RenderBox.cpp:
+ * rendering/RenderBox.h:
+ * rendering/style/RenderStyle.h:
+ Update calls to FractionalLayoutBoxExtent/LengthBox to pass WritingMode/
+ TextDirection as needed.
+
+ * rendering/style/RenderStyleConstants.h:
+ Remove WritingMode enum as it is now in a dedicated file.
+
+2012-08-23 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: introduce canFilter on panel (otherwise we check for function existence).
+ https://bugs.webkit.org/show_bug.cgi?id=94820
+
+ Reviewed by Alexander Pavlov.
+
+ Drive-by: fix for network panel sorting null pointer access.
+
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkPanel.prototype.performSearch):
+ (WebInspector.NetworkPanel.prototype.canFilter):
+ * inspector/front-end/Panel.js:
+ (WebInspector.Panel.prototype.replaceAllWith):
+ (WebInspector.Panel.prototype.canFilter):
+ (WebInspector.Panel.prototype.performFilter):
+ * inspector/front-end/SearchController.js:
+ (WebInspector.SearchController.prototype._updateFilterVisibility):
+ (WebInspector.SearchController.prototype._performFilter):
+
+2012-08-23 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: introduce TimelineGrid.Calculator interface.
+ https://bugs.webkit.org/show_bug.cgi?id=94819
+
+ Reviewed by Alexander Pavlov.
+
+ This way we can compile TimelineGrid properly.
+
+ * inspector/front-end/MemoryStatistics.js:
+ (WebInspector.MemoryStatistics.prototype._calculateVisibleIndexes):
+ * inspector/front-end/TimelineGrid.js:
+ (WebInspector.TimelineGrid.prototype.updateDividers):
+ (WebInspector.TimelineGrid.Calculator):
+ (WebInspector.TimelineGrid.Calculator.prototype.computePosition):
+ (WebInspector.TimelineGrid.Calculator.prototype.formatTime):
+ (WebInspector.TimelineGrid.Calculator.prototype.minimumBoundary):
+ (WebInspector.TimelineGrid.Calculator.prototype.maximumBoundary):
+ (WebInspector.TimelineGrid.Calculator.prototype.boundarySpan):
+ * inspector/front-end/TimelineOverviewPane.js:
+ (WebInspector.TimelineOverviewCalculator.prototype.computePosition):
+ (WebInspector.TimelineOverviewCalculator.prototype.computeBarGraphPercentages):
+ (WebInspector.TimelineOverviewCalculator.prototype.setWindow):
+ (WebInspector.TimelineOverviewCalculator.prototype.formatTime):
+ (WebInspector.TimelineOverviewCalculator.prototype.maximumBoundary):
+ (WebInspector.TimelineOverviewCalculator.prototype.minimumBoundary):
+ (WebInspector.TimelineOverviewCalculator.prototype.boundarySpan):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel.prototype._shouldShowFrames):
+ (WebInspector.TimelineCalculator.prototype.computePosition):
+ (WebInspector.TimelineCalculator.prototype.computeBarGraphPercentages):
+ (WebInspector.TimelineCalculator.prototype.setWindow):
+ (WebInspector.TimelineCalculator.prototype.formatTime):
+ (WebInspector.TimelineCalculator.prototype.maximumBoundary):
+ (WebInspector.TimelineCalculator.prototype.minimumBoundary):
+ (WebInspector.TimelineCalculator.prototype.boundarySpan):
+
+2012-08-23 David Reveman <reveman@chromium.org>
+
+ [Chromium] Unnecessary delay when starting to update resources with an inactive vsync timer.
+ https://bugs.webkit.org/show_bug.cgi?id=94719
+
+ Reviewed by James Robinson.
+
+ Replace nextTickTime() with nextTickTimeIfActivated() and return
+ appropriate value when timer is inactive.
+
+ No new tests.
+
+ * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
+ (WebCore::CCDelayBasedTimeSource::nextTickTimeIfActivated):
+ (WebCore::CCDelayBasedTimeSource::nextTickTarget):
+ (WebCore):
+ (WebCore::CCDelayBasedTimeSource::postNextTickTask):
+ * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
+ * platform/graphics/chromium/cc/CCFrameRateController.cpp:
+ (WebCore::CCFrameRateController::nextTickTimeIfActivated):
+ * platform/graphics/chromium/cc/CCFrameRateController.h:
+ (CCFrameRateController):
+ * platform/graphics/chromium/cc/CCScheduler.cpp:
+ (WebCore::CCScheduler::processScheduledActions):
+ * platform/graphics/chromium/cc/CCTimeSource.h:
+ (CCTimeSource):
+
+2012-08-23 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: make treeoutline.js compiler-friendly
+ https://bugs.webkit.org/show_bug.cgi?id=94818
+
+ Reviewed by Alexander Pavlov.
+
+ This change declares base methods on TreeElement so that we did not need to check for their existence.
+
+ * inspector/front-end/AdvancedSearchController.js:
+ (WebInspector.FileBasedSearchResultsPane.prototype._appendShowMoreMatchesElement):
+ (WebInspector.FileBasedSearchResultsPane.prototype._addFileTreeElement):
+ * inspector/front-end/ElementsTreeOutline.js:
+ (WebInspector.ElementsTreeElement.prototype.onselect):
+ * inspector/front-end/SidebarPane.js:
+ (WebInspector.SidebarPane.prototype.expand):
+ (WebInspector.SidebarPane.prototype.onexpand):
+ (WebInspector.SidebarPane.prototype.collapse):
+ * inspector/front-end/treeoutline.js:
+ (TreeOutline.prototype._treeKeyDown):
+ (TreeOutline.prototype._searchInputKeyDown):
+ (TreeElement.prototype._fireDidChange):
+ (TreeElement.prototype._attach):
+ (TreeElement.treeElementDoubleClicked):
+ (TreeElement.prototype.collapse):
+ (TreeElement.prototype.expand):
+ (TreeElement.prototype.reveal):
+ (TreeElement.prototype.select):
+ (TreeElement.prototype.deselect):
+ (TreeElement.prototype.onpopulate):
+ (TreeElement.prototype.onenter):
+ (TreeElement.prototype.ondelete):
+ (TreeElement.prototype.onspace):
+ (TreeElement.prototype.onattach):
+ (TreeElement.prototype.onexpand):
+ (TreeElement.prototype.oncollapse):
+ (TreeElement.prototype.ondblclick):
+ (TreeElement.prototype.onreveal):
+ (TreeElement.prototype.onselect):
+
+2012-08-23 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: use temporary directory for modules generated by compile-front-end.py
+ https://bugs.webkit.org/show_bug.cgi?id=94804
+
+ Reviewed by Pavel Feldman.
+
+ Create temporary directory for generated js modules and remove the directory
+ after the compilation.
+
+ * inspector/compile-front-end.py:
+
2012-08-23 Simon Hausmann <simon.hausmann@nokia.com>
[Qt] Fix make install on Windows
diff --git a/Source/WebCore/Configurations/Version.xcconfig b/Source/WebCore/Configurations/Version.xcconfig
index c5c8365a3..428a583bc 100644
--- a/Source/WebCore/Configurations/Version.xcconfig
+++ b/Source/WebCore/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 537;
-MINOR_VERSION = 6;
+MINOR_VERSION = 8;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/Source/WebCore/GNUmakefile.am b/Source/WebCore/GNUmakefile.am
index 5974082f3..2f06ae3c6 100644
--- a/Source/WebCore/GNUmakefile.am
+++ b/Source/WebCore/GNUmakefile.am
@@ -1,3 +1,4 @@
+include $(srcdir)/Source/WebCore/GNUmakefile.features.am
include $(srcdir)/Source/WebCore/GNUmakefile.list.am
WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSPropertyNames.in
@@ -43,6 +44,7 @@ webcore_cppflags += \
-I$(srcdir)/Source/WebCore/loader \
-I$(srcdir)/Source/WebCore/loader/appcache \
-I$(srcdir)/Source/WebCore/loader/archive \
+ -I$(srcdir)/Source/WebCore/loader/archive/mhtml \
-I$(srcdir)/Source/WebCore/loader/cache \
-I$(srcdir)/Source/WebCore/loader/icon \
-I$(srcdir)/Source/WebCore/mathml \
@@ -118,25 +120,21 @@ webcoregtk_cppflags += \
-I$(srcdir)/Source/WebCore/platform/text/gtk
# ---
-# Features enabled by default at compilation time
-# ---
-FEATURE_DEFINES += ENABLE_SMOOTH_SCROLLING=1
-webcore_cppflags += -DENABLE_SMOOTH_SCROLLING=1
-
-# ---
# Channel mesaging support
# ---
if ENABLE_CHANNEL_MESSAGING
-FEATURE_DEFINES += ENABLE_CHANNEL_MESSAGING=1
-webcore_cppflags += -DENABLE_CHANNEL_MESSAGING=1
+feature_defines_overrides += ENABLE_CHANNEL_MESSAGING=1
+else
+feature_defines_overrides += ENABLE_CHANNEL_MESSAGING=0
endif # END ENABLE_CHANNEL_MESSAGING
# ---
# Fast Mobile Scrolling
# ---
if ENABLE_FAST_MOBILE_SCROLLING
-FEATURE_DEFINES += ENABLE_FAST_MOBILE_SCROLLING=1
-webcore_cppflags += -DENABLE_FAST_MOBILE_SCROLLING=1
+feature_defines_overrides += ENABLE_FAST_MOBILE_SCROLLING=1
+else
+feature_defines_overrides += ENABLE_FAST_MOBILE_SCROLLING=0
endif # END ENABLE_FAST_MOBILE_SCROLLING
# ---
@@ -169,86 +167,90 @@ endif # END TARGET_WIN32
# HTML Details Element
# ----
if ENABLE_DETAILS_ELEMENT
-FEATURE_DEFINES += ENABLE_DETAILS_ELEMENT=1
-webcore_cppflags += -DENABLE_DETAILS_ELEMENT=1
+feature_defines_overrides += ENABLE_DETAILS_ELEMENT=1
+else
+feature_defines_overrides += ENABLE_DETAILS_ELEMENT=0
endif # END ENABLE_DETAILS_ELEMENT
# ----
# HTML Meter Element
# ----
if ENABLE_METER_ELEMENT
-FEATURE_DEFINES += ENABLE_METER_ELEMENT=1
-webcore_cppflags += -DENABLE_METER_ELEMENT=1
+feature_defines_overrides += ENABLE_METER_ELEMENT=1
+else
+feature_defines_overrides += ENABLE_METER_ELEMENT=0
endif # END ENABLE_METER_ELEMENT
# ----
# HTML Progress Element
# ----
if ENABLE_PROGRESS_ELEMENT
-FEATURE_DEFINES += ENABLE_PROGRESS_ELEMENT=1
-webcore_cppflags += -DENABLE_PROGRESS_ELEMENT=1
+feature_defines_overrides += ENABLE_PROGRESS_ELEMENT=1
+else
+feature_defines_overrides += ENABLE_PROGRESS_ELEMENT=0
endif # END ENABLE_PROGRESS_ELEMENT
# ----
# JavaScript Debugger/Profiler
# ----
if ENABLE_JAVASCRIPT_DEBUGGER
-FEATURE_DEFINES += ENABLE_JAVASCRIPT_DEBUGGER=1
-webcore_cppflags += -DENABLE_JAVASCRIPT_DEBUGGER=1
+feature_defines_overrides += ENABLE_JAVASCRIPT_DEBUGGER=1
else
-webcore_cppflags += -DENABLE_JAVASCRIPT_DEBUGGER=0
+feature_defines_overrides += ENABLE_JAVASCRIPT_DEBUGGER=0
endif # END ENABLE_JAVASCRIPT_DEBUGGER
# ----
# Gamepad support
# ---
if ENABLE_GAMEPAD
-FEATURE_DEFINES += ENABLE_GAMEPAD=1
-webcore_cppflags += -DENABLE_GAMEPAD=1
+feature_defines_overrides += ENABLE_GAMEPAD=1
else
-webcore_cppflags += -DENABLE_GAMEPAD=0
+feature_defines_overrides += ENABLE_GAMEPAD=0
endif # END ENABLE_GAMEPAD
# ----
# Database Support
# ----
if ENABLE_SQL_DATABASE
-FEATURE_DEFINES += ENABLE_SQL_DATABASE=1
-webcore_cppflags += -DENABLE_SQL_DATABASE=1
+feature_defines_overrides += ENABLE_SQL_DATABASE=1
else
-webcore_cppflags += -DENABLE_SQL_DATABASE=0
+feature_defines_overrides += ENABLE_SQL_DATABASE=0
endif # END ENABLE_SQL_DATABASE
# ----
# HTML5 datalist Support
# ----
if ENABLE_DATALIST_ELEMENT
-FEATURE_DEFINES += ENABLE_DATALIST_ELEMENT=1
-webcore_cppflags += -DENABLE_DATALIST_ELEMENT=1
+feature_defines_overrides += ENABLE_DATALIST_ELEMENT=1
+else
+feature_defines_overrides += ENABLE_DATALIST_ELEMENT=0
endif # END ENABLE_DATALIST_ELEMENT
# ----
# HTML5 data transfer items support
# ----
if ENABLE_DATA_TRANSFER_ITEMS
-FEATURE_DEFINES += ENABLE_DATA_TRANSFER_ITEMS=1
-webcore_cppflags += -DENABLE_DATA_TRANSFER_ITEMS=1
+feature_defines_overrides += ENABLE_DATA_TRANSFER_ITEMS=1
+else
+feature_defines_overrides += ENABLE_DATA_TRANSFER_ITEMS=0
endif # END ENABLE_DATA_TRANSFER_ITEMS
# ----
# HTML5 <style scoped> support
# ----
if ENABLE_STYLE_SCOPED
-FEATURE_DEFINES += ENABLE_STYLE_SCOPED=1
-webcore_cppflags += -DENABLE_STYLE_SCOPED=1
+feature_defines_overrides += ENABLE_STYLE_SCOPED=1
+else
+feature_defines_overrides += ENABLE_STYLE_SCOPED=0
endif # END ENABLE_STYLE_SCOPED
# ----
# Indexed Database API support
# ----
if ENABLE_INDEXED_DATABASE
-FEATURE_DEFINES += ENABLE_INDEXED_DATABASE=1
-webcore_cppflags += -DENABLE_INDEXED_DATABASE=1
+feature_defines_overrides += ENABLE_INDEXED_DATABASE=1
+else
+feature_defines_overrides += ENABLE_INDEXED_DATABASE=0
endif # END ENABLE_INDEXED_DATABASE
if USE_LEVELDB
@@ -259,153 +261,149 @@ endif # END USE_LEVELDB
# Support for <input type="file" directory>
# ----
if ENABLE_DIRECTORY_UPLOAD
-FEATURE_DEFINES += ENABLE_DIRECTORY_UPLOAD=1
-webcore_cppflags += -DENABLE_DIRECTORY_UPLOAD=1
+feature_defines_overrides += ENABLE_DIRECTORY_UPLOAD=1
else
-webcore_cppflags += -DENABLE_DIRECTORY_UPLOAD=0
+feature_defines_overrides += ENABLE_DIRECTORY_UPLOAD=0
endif # END ENABLE_DIRECTORY_UPLOAD
# ----
# DOM mutation observer support
# ----
if ENABLE_MUTATION_OBSERVERS
-FEATURE_DEFINES += ENABLE_MUTATION_OBSERVERS=1
-webcore_cppflags += -DENABLE_MUTATION_OBSERVERS=1
+feature_defines_overrides += ENABLE_MUTATION_OBSERVERS=1
+else
+feature_defines_overrides += ENABLE_MUTATION_OBSERVERS=0
endif # END ENABLE_MUTATION_OBSERVERS
# ----
# FileSystem API support
# ----
if ENABLE_FILE_SYSTEM
-FEATURE_DEFINES += ENABLE_FILE_SYSTEM=1
-webcore_cppflags += -DENABLE_FILE_SYSTEM=1
+feature_defines_overrides += ENABLE_FILE_SYSTEM=1
+else
+feature_defines_overrides += ENABLE_FILE_SYSTEM=0
endif # END ENABLE_FILE_SYSTEM
# ----
# Quota support
# ----
if ENABLE_QUOTA
-FEATURE_DEFINES += ENABLE_QUOTA=1
-webcore_cppflags += -DENABLE_QUOTA=1
+feature_defines_overrides += ENABLE_QUOTA=1
+else
+feature_defines_overrides += ENABLE_QUOTA=0
endif # END ENABLE_QUOTA
# ----
# Touch Icon Loading
# ----
if ENABLE_TOUCH_ICON_LOADING
-FEATURE_DEFINES += ENABLE_TOUCH_ICON_LOADING=1
-webcore_cppflags += -DENABLE_TOUCH_ICON_LOADING=1
+feature_defines_overrides += ENABLE_TOUCH_ICON_LOADING=1
else
-webcore_cppflags += -DENABLE_TOUCH_ICON_LOADING=0
+feature_defines_overrides += ENABLE_TOUCH_ICON_LOADING=0
endif # END ENABLE_TOUCH_ICON_LOADING
# ----
# Color Input API support
# ----
if ENABLE_INPUT_TYPE_COLOR
-FEATURE_DEFINES += ENABLE_INPUT_TYPE_COLOR=1
-webcore_cppflags += -DENABLE_INPUT_TYPE_COLOR=1
+feature_defines_overrides += ENABLE_INPUT_TYPE_COLOR=1
else
-webcore_cppflags += -DENABLE_INPUT_TYPE_COLOR=0
+feature_defines_overrides += ENABLE_INPUT_TYPE_COLOR=0
endif # END ENABLE_INPUT_TYPE_COLOR
# ----
# Speech Input API support
# ----
if ENABLE_INPUT_SPEECH
-FEATURE_DEFINES += ENABLE_INPUT_SPEECH=1
-webcore_cppflags += -DENABLE_INPUT_SPEECH=1
+feature_defines_overrides += ENABLE_INPUT_SPEECH=1
else
-webcore_cppflags += -DENABLE_INPUT_SPEECH=0
+feature_defines_overrides += ENABLE_INPUT_SPEECH=0
endif # END ENABLE_INPUT_SPEECH
# ----
# Scripted Speech API support
# ----
if ENABLE_SCRIPTED_SPEECH
-FEATURE_DEFINES += ENABLE_SCRIPTED_SPEECH=1
-webcore_cppflags += -DENABLE_SCRIPTED_SPEECH=1
+feature_defines_overrides += ENABLE_SCRIPTED_SPEECH=1
else
-webcore_cppflags += -DENABLE_SCRIPTED_SPEECH=0
+feature_defines_overrides += ENABLE_SCRIPTED_SPEECH=0
endif # END ENABLE_SCRIPTED_SPEECH
# ----
# Icon Database Support
# ----
if ENABLE_ICONDATABASE
-webcore_cppflags += -DENABLE_ICONDATABASE=1
+feature_defines_overrides += -DENABLE_ICONDATABASE=1
else
-webcore_cppflags += -DENABLE_ICONDATABASE=0
+feature_defines_overrides += -DENABLE_ICONDATABASE=0
endif # END ENABLE_ICONDATABASE
# ----
# Orientation Events
# ----
if ENABLE_ORIENTATION_EVENTS
-FEATURE_DEFINES += ENABLE_ORIENTATION_EVENTS=1
-webcore_cppflags += -DENABLE_ORIENTATION_EVENTS=1
+feature_defines_overrides += ENABLE_ORIENTATION_EVENTS=1
+else
+feature_defines_overrides += ENABLE_ORIENTATION_EVENTS=0
endif # END ENABLE_ORIENTATION_EVENTS
# ----
# Video Support
# ----
if ENABLE_VIDEO
-FEATURE_DEFINES += ENABLE_VIDEO=1
-webcore_cppflags += -DENABLE_VIDEO=1
-
+feature_defines_overrides += ENABLE_VIDEO=1
if USE_GSTREAMER
if ENABLE_DEBUG
webcore_cppflags += -DGST_DISABLE_DEPRECATED
endif # END ENABLE_DEBUG
endif # END USE_GSTREAMER
+else
+feature_defines_overrides += ENABLE_VIDEO=0
endif # END ENABLE_VIDEO
# ----
# Media Source Support
# ----
if ENABLE_MEDIA_SOURCE
-FEATURE_DEFINES += ENABLE_MEDIA_SOURCE=1
-webcore_cppflags += -DENABLE_MEDIA_SOURCE=1
+feature_defines_overrides += ENABLE_MEDIA_SOURCE=1
else
-webcore_cppflags += -DENABLE_MEDIA_SOURCE=0
+feature_defines_overrides += ENABLE_MEDIA_SOURCE=0
endif # END ENABLE_MEDIA_SOURCE
# ----
# Media Statistics Support
# ----
if ENABLE_MEDIA_STATISTICS
-FEATURE_DEFINES += ENABLE_MEDIA_STATISTICS=1
-webcore_cppflags += -DENABLE_MEDIA_STATISTICS=1
+feature_defines_overrides += ENABLE_MEDIA_STATISTICS=1
else
-webcore_cppflags += -DENABLE_MEDIA_STATISTICS=0
+feature_defines_overrides += ENABLE_MEDIA_STATISTICS=0
endif # END ENABLE_MEDIA_STATISTICS
# ----
# Javascript Fullscreen Support
# ----
if ENABLE_FULLSCREEN_API
-FEATURE_DEFINES += ENABLE_FULLSCREEN_API=1
-webcore_cppflags += -DENABLE_FULLSCREEN_API=1
+feature_defines_overrides += ENABLE_FULLSCREEN_API=1
+else
+feature_defines_overrides += ENABLE_FULLSCREEN_API=0
endif # END ENABLE_FULLSCREEN_API
# ----
# Track Support
# ----
if ENABLE_VIDEO_TRACK
-FEATURE_DEFINES += ENABLE_VIDEO_TRACK=1
-webcore_cppflags += -DENABLE_VIDEO_TRACK=1
+feature_defines_overrides += ENABLE_VIDEO_TRACK=1
else
-webcore_cppflags += -DENABLE_VIDEO_TRACK=0
+feature_defines_overrides += ENABLE_VIDEO_TRACK=0
endif # END ENABLE_VIDEO_TRACK
# ----
# Media Stream Support
# ----
if ENABLE_MEDIA_STREAM
-FEATURE_DEFINES += ENABLE_MEDIA_STREAM=1
-webcore_cppflags += -DENABLE_MEDIA_STREAM=1
+feature_defines_overrides += ENABLE_MEDIA_STREAM=1
else
-webcore_cppflags += -DENABLE_MEDIA_STREAM=0
+feature_defines_overrides += ENABLE_MEDIA_STREAM=0
endif # END ENABLE_MEDIA_STREAM
# XPath grammar
@@ -426,101 +424,108 @@ $(GENSOURCES_WEBCORE)/XPathGrammar.cpp: $(WebCore)/xml/XPathGrammar.y
# XSLT Support
# ----
if ENABLE_XSLT
-FEATURE_DEFINES += ENABLE_XSLT=1
-webcore_cppflags += -DENABLE_XSLT=1
+feature_defines_overrides += ENABLE_XSLT=1
+else
+feature_defines_overrides += ENABLE_XSLT=0
endif # END ENABLE_XSLT
# ----
# Web Workers support
# ----
if ENABLE_WORKERS
-FEATURE_DEFINES += ENABLE_WORKERS=1
-webcore_cppflags += -DENABLE_WORKERS=1
+feature_defines_overrides += ENABLE_WORKERS=1
+else
+feature_defines_overrides += ENABLE_WORKERS=0
endif
# ---
# Shadow DOM support
# ---
if ENABLE_SHADOW_DOM
-FEATURE_DEFINES += ENABLE_SHADOW_DOM=1
-webcore_cppflags += -DENABLE_SHADOW_DOM=1
+feature_defines_overrides += ENABLE_SHADOW_DOM=1
+else
+feature_defines_overrides += ENABLE_SHADOW_DOM=0
endif
# ---
# SharedWorker support
# ---
if ENABLE_SHARED_WORKERS
-FEATURE_DEFINES += ENABLE_SHARED_WORKERS=1
-webcore_cppflags += -DENABLE_SHARED_WORKERS=1
+feature_defines_overrides += ENABLE_SHARED_WORKERS=1
+else
+feature_defines_overrides += ENABLE_SHARED_WORKERS=0
endif
# ----
# Filters
# ----
if ENABLE_FILTERS
-FEATURE_DEFINES += ENABLE_FILTERS=1
-webcore_cppflags += -DENABLE_FILTERS=1
+feature_defines_overrides += ENABLE_FILTERS=1
+else
+feature_defines_overrides += ENABLE_FILTERS=0
endif # END ENABLE_FILTERS
# ----
# CSS box decoration break
# ----
if ENABLE_CSS_BOX_DECORATION_BREAK
-FEATURE_DEFINES += ENABLE_CSS_BOX_DECORATION_BREAK=1
-webcore_cppflags += -DENABLE_CSS_BOX_DECORATION_BREAK=1
-
+feature_defines_overrides += ENABLE_CSS_BOX_DECORATION_BREAK=1
+else
+feature_defines_overrides += ENABLE_CSS_BOX_DECORATION_BREAK=0
endif # END ENABLE_CSS_BOX_DECORATION_BREAK
# ----
# Regions
# ----
if ENABLE_CSS_REGIONS
-FEATURE_DEFINES += ENABLE_CSS_REGIONS=1
-webcore_cppflags += -DENABLE_CSS_REGIONS=1
-
+feature_defines_overrides += ENABLE_CSS_REGIONS=1
+else
+feature_defines_overrides += ENABLE_CSS_REGIONS=0
endif # END ENABLE_CSS_REGIONS
# ----
# Filters
# ----
if ENABLE_CSS_FILTERS
-FEATURE_DEFINES += ENABLE_CSS_FILTERS=1
-webcore_cppflags += -DENABLE_CSS_FILTERS=1
-
+feature_defines_overrides += ENABLE_CSS_FILTERS=1
+else
+feature_defines_overrides += ENABLE_CSS_FILTERS=0
endif # END ENABLE_CSS_FILTERS
# ----
# Compositing
# ----
if ENABLE_CSS_COMPOSITING
-FEATURE_DEFINES += ENABLE_CSS_COMPOSITING=1
-webcore_cppflags += -DENABLE_CSS_COMPOSITING=1
+feature_defines_overrides += ENABLE_CSS_COMPOSITING=1
+else
+feature_defines_overrides += ENABLE_CSS_COMPOSITING=0
endif # END ENABLE_CSS_COMPOSITING
# ----
# Exclusions
# ----
if ENABLE_CSS_EXCLUSIONS
-FEATURE_DEFINES += ENABLE_CSS_EXCLUSIONS=1
-webcore_cppflags += -DENABLE_CSS_EXCLUSIONS=1
-
+feature_defines_overrides += ENABLE_CSS_EXCLUSIONS=1
+else
+feature_defines_overrides += ENABLE_CSS_EXCLUSIONS=0
endif # END ENABLE_CSS_EXCLUSIONS
# ----
# Geolocation
# ----
if ENABLE_GEOLOCATION
-
-FEATURE_DEFINES += ENABLE_GEOLOCATION=1
-webcore_cppflags += -DENABLE_GEOLOCATION=1
+feature_defines_overrides += ENABLE_GEOLOCATION=1
+else
+feature_defines_overrides += ENABLE_GEOLOCATION=0
endif # END ENABLE_GEOLOCATION
# ----
# MathML support
# ----
if ENABLE_MATHML
-FEATURE_DEFINES += ENABLE_MATHML=1
-webcore_cppflags += -DENABLE_MATHML=1
+feature_defines_overrides += ENABLE_MATHML=1
+else
+feature_defines_overrides += ENABLE_MATHML=0
endif # END ENABLE_MATHML
# MathML tag and attribute names, and element factory
@@ -533,8 +538,9 @@ DerivedSources/WebCore/MathMLElementFactory.cpp DerivedSources/WebCore/MathMLNam
# Notifications support
# ----
if ENABLE_NOTIFICATIONS
-FEATURE_DEFINES += ENABLE_NOTIFICATIONS=1 ENABLE_LEGACY_NOTIFICATIONS=1
-webcore_cppflags += -DENABLE_NOTIFICATIONS=1 -DENABLE_LEGACY_NOTIFICATIONS=1
+feature_defines_overrides += ENABLE_NOTIFICATIONS=1 ENABLE_LEGACY_NOTIFICATIONS=1
+else
+feature_defines_overrides += ENABLE_NOTIFICATIONS=0 ENABLE_LEGACY_NOTIFICATIONS=0
endif # END ENABLE_NOTIFICATIONS
# ----
@@ -543,24 +549,24 @@ endif # END ENABLE_NOTIFICATIONS
# FIXME: allow a more fine-grained inclusion/generation of sources per SVG feature
# ----
if ENABLE_SVG
-FEATURE_DEFINES += ENABLE_SVG=1
-webcore_cppflags += -DENABLE_SVG=1
+feature_defines_overrides += ENABLE_SVG=1
WEBCORE_CSS_PROPERTY_NAMES += $(WebCore)/css/SVGCSSPropertyNames.in
WEBCORE_CSS_VALUE_KEYWORDS += $(WebCore)/css/SVGCSSValueKeywords.in
-
# SVG Features
if ENABLE_SVG_FONTS
-FEATURE_DEFINES += ENABLE_SVG_FONTS=1
-webcore_cppflags += -DENABLE_SVG_FONTS=1
+feature_defines_overrides += ENABLE_SVG_FONTS=1
+else
+feature_defines_overrides += ENABLE_SVG_FONTS=0
endif
-
+else
+feature_defines_overrides += ENABLE_SVG=0 ENABLE_SVG_FONTS=0
endif # END ENABLE_SVG
# SVG tag and attribute names (need to pass an extra flag if svg experimental features are enabled)
DerivedSources/WebCore/SVGNames.cpp: DerivedSources/WebCore/SVGElementFactory.cpp
DerivedSources/WebCore/JSSVGElementWrapperFactory.cpp: DerivedSources/WebCore/SVGElementFactory.cpp
DerivedSources/WebCore/SVGElementFactory.cpp: $(WebCore)/dom/make_names.pl $(WebCore)/svg/svgtags.in $(WebCore)/svg/svgattrs.in
- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines "$(FEATURE_DEFINES)" --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)"
+ $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines "$(feature_defines)" --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)"
# end SVG Features
@@ -572,8 +578,9 @@ DerivedSources/WebCore/XLinkNames.cpp : $(WebCore)/dom/make_names.pl $(WebCore)/
# Web Audio Support
# ----
if ENABLE_WEB_AUDIO
-FEATURE_DEFINES += ENABLE_WEB_AUDIO=1
-webcore_cppflags += -DENABLE_WEB_AUDIO=1
+feature_defines_overrides += ENABLE_WEB_AUDIO=1
+else
+feature_defines_overrides += ENABLE_WEB_AUDIO=0
endif
if USE_WEBAUDIO_GSTREAMER
@@ -584,59 +591,63 @@ endif
# Web Sockets Support
# ----
if ENABLE_WEB_SOCKETS
-FEATURE_DEFINES += ENABLE_WEB_SOCKETS=1
-webcore_cppflags += -DENABLE_WEB_SOCKETS=1
+feature_defines_overrides += ENABLE_WEB_SOCKETS=1
else
-webcore_cppflags += -DENABLE_WEB_SOCKETS=0
+feature_defines_overrides += ENABLE_WEB_SOCKETS=0
endif # END ENABLE_WEB_SOCKETS
# ---
# Blob support
# ---
if ENABLE_BLOB
-FEATURE_DEFINES += ENABLE_BLOB=1
-webcore_cppflags += -DENABLE_BLOB=1
+feature_defines_overrides += ENABLE_BLOB=1
+else
+feature_defines_overrides += ENABLE_BLOB=0
endif # END ENABLE_BLOB
# ---
# Legacy WebKitBlobBuilder support
# ---
if ENABLE_LEGACY_WEBKIT_BLOB_BUILDER
-FEATURE_DEFINES += ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1
-webcore_cppflags += -DENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1
+feature_defines_overrides += ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1
+else
+feature_defines_overrides += ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=0
endif # END ENABLE_LEGACY_WEBKIT_BLOB_BUILDER
# ---
# Animation API support
# ---
if ENABLE_ANIMATION_API
-FEATURE_DEFINES += ENABLE_ANIMATION_API=1
-webcore_cppflags += -DENABLE_ANIMATION_API=1
+feature_defines_overrides += ENABLE_ANIMATION_API=1
+else
+feature_defines_overrides += ENABLE_ANIMATION_API=0
endif # END ENABLE_ANIMATION_API
# ---
# RequestAnimationFrame support
# ---
if ENABLE_REQUEST_ANIMATION_FRAME
-FEATURE_DEFINES += ENABLE_REQUEST_ANIMATION_FRAME=1
-webcore_cppflags += -DENABLE_REQUEST_ANIMATION_FRAME=1
+feature_defines_overrides += ENABLE_REQUEST_ANIMATION_FRAME=1
+else
+feature_defines_overrides += ENABLE_REQUEST_ANIMATION_FRAME=0
endif # END ENABLE_REQUEST_ANIMATION_FRAME
# ---
# 3D canvas (WebGL) support
# ---
if ENABLE_WEBGL
-FEATURE_DEFINES += ENABLE_WEBGL=1
-webcore_cppflags += -DENABLE_WEBGL=1
+feature_defines_overrides += ENABLE_WEBGL=1
+else
+feature_defines_overrides += ENABLE_WEBGL=0
endif # END ENABLE_WEBGL
# ---
# Accelerated compositing support
# ---
if USE_ACCELERATED_COMPOSITING
-FEATURE_DEFINES += \
- ENABLE_3D_RENDERING=1 \
- ACCELERATED_COMPOSITING=1
+feature_defines_overrides += ENABLE_3D_RENDERING=1
+else
+feature_defines_overrides += ENABLE_3D_RENDERING=0
endif # END USE_ACCELERATED_COMPOSITING
if USE_TEXTURE_MAPPER_CAIRO
@@ -659,104 +670,143 @@ endif # END USE_CLUTTER
# MHTML support
# ---
if ENABLE_MHTML
-FEATURE_DEFINES += ENABLE_MHTML=1
-webcore_cppflags += \
- -DENABLE_MHTML=1 \
- -I$(srcdir)/Source/WebCore/loader/archive/mhtml
+feature_defines_overrides += ENABLE_MHTML=1
+else
+feature_defines_overrides += ENABLE_MHTML=0
endif # END ENABLE_MHTML
# ---
# HTML5 Microdata support
# ---
if ENABLE_MICRODATA
-FEATURE_DEFINES += ENABLE_MICRODATA=1
-webcore_cppflags += -DENABLE_MICRODATA=1
+feature_defines_overrides += ENABLE_MICRODATA=1
+else
+feature_defines_overrides += ENABLE_MICRODATA=0
endif # END ENABLE_MICRODATA
# ---
# Register Protocol Handler support
# ---
if ENABLE_REGISTER_PROTOCOL_HANDLER
-FEATURE_DEFINES += ENABLE_REGISTER_PROTOCOL_HANDLER=1
-webcore_cppflags += -DENABLE_REGISTER_PROTOCOL_HANDLER=1
+feature_defines_overrides += ENABLE_REGISTER_PROTOCOL_HANDLER=1
+else
+feature_defines_overrides += ENABLE_REGISTER_PROTOCOL_HANDLER=0
endif # END ENABLE_REGISTER_PROTOCOL_HANDLER
# ---
# DeviceOrientation support
# ---
if ENABLE_DEVICE_ORIENTATION
-FEATURE_DEFINES += ENABLE_DEVICE_ORIENTATION=1
-webcore_cppflags += -DENABLE_DEVICE_ORIENTATION=1
+feature_defines_overrides += ENABLE_DEVICE_ORIENTATION=1
+else
+feature_defines_overrides += ENABLE_DEVICE_ORIENTATION=0
endif # END ENABLE_DEVICE_ORIENTATION
# ---
# Text Autosizing support
# ---
if ENABLE_TEXT_AUTOSIZING
-FEATURE_DEFINES += ENABLE_TEXT_AUTOSIZING=1
-webcore_cppflags += -DENABLE_TEXT_AUTOSIZING=1
+feature_defines_overrides += ENABLE_TEXT_AUTOSIZING=1
+else
+feature_defines_overrides += ENABLE_TEXT_AUTOSIZING=0
endif # END ENABLE_TEXT_AUTOSIZING
# ---
# Web Timing support
# ---
if ENABLE_WEB_TIMING
-FEATURE_DEFINES += ENABLE_WEB_TIMING=1
-webcore_cppflags += -DENABLE_WEB_TIMING=1
+feature_defines_overrides += ENABLE_WEB_TIMING=1
+else
+feature_defines_overrides += ENABLE_WEB_TIMING=0
endif # END ENABLE_WEB_TIMING
# ---
# HTML iframe seamless attribute support
# ---
if ENABLE_IFRAME_SEAMLESS
-FEATURE_DEFINES += ENABLE_IFRAME_SEAMLESS=1
-webcore_cppflags += -DENABLE_IFRAME_SEAMLESS=1
+feature_defines_overrides += ENABLE_IFRAME_SEAMLESS=1
+else
+feature_defines_overrides += ENABLE_IFRAME_SEAMLESS=0
endif # END ENABLE_IFRAME_SEAMLESS
# ---
# CSS3 Flexbox support
# ---
if ENABLE_CSS3_FLEXBOX
-FEATURE_DEFINES += ENABLE_CSS3_FLEXBOX=1
-webcore_cppflags += -DENABLE_CSS3_FLEXBOX=1
+feature_defines_overrides += ENABLE_CSS3_FLEXBOX=1
+else
+feature_defines_overrides += ENABLE_CSS3_FLEXBOX=0
endif # END ENABLE_CSS3_FLEXBOX
# ---
# CSS3 Text Decoration support
if ENABLE_CSS3_TEXT_DECORATION
-FEATURE_DEFINES += ENABLE_CSS3_TEXT_DECORATION=1
-webcore_cppflags += -DENABLE_CSS3_TEXT_DECORATION=1
+feature_defines_overrides += ENABLE_CSS3_TEXT_DECORATION=1
+else
+feature_defines_overrides += ENABLE_CSS3_TEXT_DECORATION=0
endif # END ENABLE_CSS3_TEXT_DECORATION
# ---
# Link prefetch support
# ---
if ENABLE_LINK_PREFETCH
-FEATURE_DEFINES += ENABLE_LINK_PREFETCH=1
-webcore_cppflags += -DENABLE_LINK_PREFETCH=1
+feature_defines_overrides += ENABLE_LINK_PREFETCH=1
+else
+feature_defines_overrides += ENABLE_LINK_PREFETCH=0
endif # END ENABLE_LINK_PREFETCH
# ---
# Widget region support
# ---
if ENABLE_WIDGET_REGION
-FEATURE_DEFINES += ENABLE_WIDGET_REGION=1
-webcore_cppflags += -DENABLE_WIDGET_REGION=1
+feature_defines_overrides += ENABLE_WIDGET_REGION=1
+else
+feature_defines_overrides += ENABLE_WIDGET_REGION=0
endif # END ENABLE_WIDGET_REGION
# ---
# Spell check support
# ---
if ENABLE_SPELLCHECK
-FEATURE_DEFINES += ENABLE_SPELLCHECK=1
-webcore_cppflags += -DENABLE_SPELLCHECK=1
+feature_defines_overrides += ENABLE_SPELLCHECK=1
+else
+feature_defines_overrides += ENABLE_SPELLCHECK=0
endif # END ENABLE_SPELLCHECK
+# ---
+# Unstable features
+# If unstable features should not be enabled, their defines should be overriden with a 0 value.
+# ---
+if !ENABLE_UNSTABLE_FEATURES
+# FIXME: List unstable features here once their configuration options are removed.
+feature_defines_overrides +=
+endif
+
+
+# Fill the feature_defines variable with all the defines, making it possible
+# to override the default define value (as set in feature_defines_defaults)
+# through adding the feature define with the desired value to feature_defines_overrides.
+feature_defines += $(strip $(foreach bare_define, \
+ $(foreach define,$(feature_defines_defaults), \
+ $(foreach fvalue,0 1, \
+ $(if $(findstring =$(fvalue),$(define)),$(patsubst %=$(fvalue),%,$(define))) \
+ ) \
+ ), \
+ $(if $(findstring $(bare_define), $(feature_defines_overrides)), \
+ $(filter $(bare_define)=%,$(feature_defines_overrides)), \
+ $(filter $(bare_define)=%,$(feature_defines_defaults)) \
+ ) \
+))
+
+# Add the feature defines to webcore_cppflags in macro form.
+webcore_cppflags += $(foreach define,$(feature_defines),-D$(define))
+
+
DerivedSources/WebCore/CSSPropertyNames.cpp: DerivedSources/WebCore/CSSPropertyNames.h
DerivedSources/WebCore/CSSPropertyNames.h: $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/makeprop.pl
$(AM_V_GEN)
$(AM_V_at)cat $(WEBCORE_CSS_PROPERTY_NAMES) > CSSPropertyNames.in
- $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts "$(WebCore)/css/makeprop.pl" --defines "$(FEATURE_DEFINES)"
+ $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts "$(WebCore)/css/makeprop.pl" --defines "$(feature_defines)"
$(AM_V_at)mv CSSPropertyNames* $(GENSOURCES_WEBCORE)
# Lower case all the values, as CSS values are case-insensitive
@@ -764,7 +814,7 @@ DerivedSources/WebCore/CSSValueKeywords.cpp: DerivedSources/WebCore/CSSValueKeyw
DerivedSources/WebCore/CSSValueKeywords.h: $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/makevalues.pl
$(AM_V_GEN)
$(AM_V_at)cat $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in
- $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts "$(WebCore)/css/makevalues.pl" --defines "$(FEATURE_DEFINES)"
+ $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts "$(WebCore)/css/makevalues.pl" --defines "$(feature_defines)"
$(AM_V_at)mv CSSValueKeywords* $(GENSOURCES_WEBCORE)
# XML Viewer CSS
@@ -825,7 +875,7 @@ SCRIPTS_FOR_PREPROCESS_IDLS = \
DerivedSources/WebCore/UserAgentStyleSheetsData.cpp: DerivedSources/WebCore/UserAgentStyleSheets.h
DerivedSources/WebCore/UserAgentStyleSheets.h: $(WebCore)/css/make-css-file-arrays.pl $(WebCore)/bindings/scripts/preprocessor.pm $(USER_AGENT_STYLE_SHEETS)
- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --defines "$(FEATURE_DEFINES)" $@ DerivedSources/WebCore/UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS)
+ $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --defines "$(feature_defines)" $@ DerivedSources/WebCore/UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS)
DerivedSources/WebCore/WebKitFontFamilyNames.cpp: DerivedSources/WebCore/WebKitFontFamilyNames.h
DerivedSources/WebCore/WebKitFontFamilyNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/css/WebKitFontFamilyNames.in
@@ -838,7 +888,7 @@ DerivedSources/WebCore/HTMLElementFactory.cpp: DerivedSources/WebCore/HTMLElemen
DerivedSources/WebCore/HTMLElementFactory.h: DerivedSources/WebCore/HTMLNames.cpp
DerivedSources/WebCore/HTMLNames.cpp: DerivedSources/WebCore/HTMLNames.h
DerivedSources/WebCore/HTMLNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/html/HTMLTagNames.in $(WebCore)/html/HTMLAttributeNames.in
- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --extraDefines "$(FEATURE_DEFINES)" --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)"
+ $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --extraDefines "$(feature_defines)" --factory --wrapperFactory --outputDir "$(GENSOURCES_WEBCORE)"
DerivedSources/WebCore/XMLNSNames.cpp DerivedSources/WebCore/XMLNSNames.h: $(WebCore)/dom/make_names.pl $(WebCore)/xml/xmlnsattrs.in
@@ -930,7 +980,7 @@ $(supplemental_dependency_file): $(SCRIPTS_FOR_PREPROCESS_IDLS) $(dom_binding_id
$(AM_V_GEN)
$(AM_V_at)echo -n > $(idl_files_list)
$(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) echo -n) >> $(idl_files_list)
- $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/preprocess-idls.pl --defines "LANGUAGE_JAVASCRIPT=1 $(FEATURE_DEFINES)" --idlFilesList $(idl_files_list) --supplementalDependencyFile $@ --idlAttributesFile $(idl_attributes_file)
+ $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/preprocess-idls.pl --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --idlFilesList $(idl_files_list) --supplementalDependencyFile $@ --idlAttributesFile $(idl_attributes_file)
# This does not appear to work correctly with gnumake unless
# it includes an empty command list (the semicolon).
@@ -938,7 +988,7 @@ DerivedSources/WebCore/JS%.cpp: DerivedSources/WebCore/JS%.h;
.SECONDARY:
DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file)
- $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(FEATURE_DEFINES)" --generator JS --supplementalDependencyFile $(supplemental_dependency_file) $<
+ $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --supplementalDependencyFile $(supplemental_dependency_file) $<
# See https://bugs.webkit.org/show_bug.cgi?id=76388
# We need to introduce a manual dependency to prevent non-generated sources from
diff --git a/Source/WebCore/GNUmakefile.features.am b/Source/WebCore/GNUmakefile.features.am
new file mode 100644
index 000000000..0a8c3ce65
--- /dev/null
+++ b/Source/WebCore/GNUmakefile.features.am
@@ -0,0 +1,96 @@
+feature_defines_defaults += \
+ ENABLE_3D_RENDERING=0 \
+ ENABLE_ACCELERATED_2D_CANVAS=0 \
+ ENABLE_ANIMATION_API=0 \
+ ENABLE_BATTERY_STATUS=0 \
+ ENABLE_BLOB=1 \
+ ENABLE_CHANNEL_MESSAGING=1 \
+ ENABLE_CSP_NEXT=0 \
+ ENABLE_CSS_BOX_DECORATION_BREAK=1 \
+ ENABLE_CSS_COMPOSITING=1 \
+ ENABLE_CSS_EXCLUSIONS=1 \
+ ENABLE_CSS_FILTERS=0 \
+ ENABLE_CSS_HIERARCHIES=0 \
+ ENABLE_CSS_IMAGE_ORIENTATION=0 \
+ ENABLE_CSS_IMAGE_RESOLUTION=0 \
+ ENABLE_CSS_REGIONS=1 \
+ ENABLE_CSS_SHADERS=0 \
+ ENABLE_CSS_VARIABLES=0 \
+ ENABLE_CSS3_FLEXBOX=1 \
+ ENABLE_CUSTOM_SCHEME_HANDLER=0 \
+ ENABLE_DASHBOARD_SUPPORT=0 \
+ ENABLE_DATALIST_ELEMENT=1 \
+ ENABLE_DATA_TRANSFER_ITEMS=0 \
+ ENABLE_DETAILS_ELEMENT=1 \
+ ENABLE_DEVICE_ORIENTATION=0 \
+ ENABLE_DIALOG_ELEMENT=0 \
+ ENABLE_DIRECTORY_UPLOAD=0 \
+ ENABLE_DOWNLOAD_ATTRIBUTE=0 \
+ ENABLE_FILE_SYSTEM=0 \
+ ENABLE_FILTERS=1 \
+ ENABLE_FTPDIR=0 \
+ ENABLE_FULLSCREEN_API=1 \
+ ENABLE_GAMEPAD=1 \
+ ENABLE_GEOLOCATION=1 \
+ ENABLE_HIGH_DPI_CANVAS=0 \
+ ENABLE_ICONDATABASE=1 \
+ ENABLE_IFRAME_SEAMLESS=1 \
+ ENABLE_INDEXED_DATABASE=0 \
+ ENABLE_INPUT_SPEECH=0 \
+ ENABLE_INPUT_TYPE_COLOR=0 \
+ ENABLE_INPUT_TYPE_DATE=0 \
+ ENABLE_INPUT_TYPE_DATETIME=0 \
+ ENABLE_INPUT_TYPE_DATETIMELOCAL=0 \
+ ENABLE_INPUT_TYPE_MONTH=0 \
+ ENABLE_INPUT_TYPE_TIME=0 \
+ ENABLE_INPUT_TYPE_WEEK=0 \
+ ENABLE_INSPECTOR=1 \
+ ENABLE_JAVASCRIPT_DEBUGGER=1 \
+ ENABLE_LEGACY_CSS_VENDOR_PREFIXES=0 \
+ ENABLE_LEGACY_NOTIFICATIONS=0 \
+ ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1 \
+ ENABLE_LINK_PREFETCH=1 \
+ ENABLE_LINK_PRERENDER=0 \
+ ENABLE_MATHML=1 \
+ ENABLE_MEDIA_CAPTURE=0 \
+ ENABLE_MEDIA_SOURCE=0 \
+ ENABLE_MEDIA_STATISTICS=0 \
+ ENABLE_MEDIA_STREAM=1 \
+ ENABLE_METER_ELEMENT=1 \
+ ENABLE_MHTML=0 \
+ ENABLE_MICRODATA=0 \
+ ENABLE_MUTATION_OBSERVERS=1 \
+ ENABLE_NETSCAPE_PLUGIN_API=1 \
+ ENABLE_NETWORK_INFO=0 \
+ ENABLE_NOTIFICATIONS=0 \
+ ENABLE_ORIENTATION_EVENTS=0 \
+ ENABLE_PAGE_VISIBILITY_API=0 \
+ ENABLE_PROGRESS_ELEMENT=1 \
+ ENABLE_QUOTA=0 \
+ ENABLE_REGISTER_PROTOCOL_HANDLER=0 \
+ ENABLE_REQUEST_ANIMATION_FRAME=1 \
+ ENABLE_SCRIPTED_SPEECH=0 \
+ ENABLE_SHADOW_DOM=1 \
+ ENABLE_SHARED_WORKERS=1 \
+ ENABLE_SMOOTH_SCROLLING=1 \
+ ENABLE_SPELLCHECK=1 \
+ ENABLE_SQL_DATABASE=1 \
+ ENABLE_STYLE_SCOPED=0 \
+ ENABLE_SVG=1 \
+ ENABLE_SVG_DOM_OBJC_BINDINGS=0 \
+ ENABLE_SVG_FONTS=1 \
+ ENABLE_TEXT_AUTOSIZING=0 \
+ ENABLE_TOUCH_EVENTS=0 \
+ ENABLE_TOUCH_ICON_LOADING=0 \
+ ENABLE_UNDO_MANAGER=0 \
+ ENABLE_VIBRATION=0 \
+ ENABLE_VIDEO=1 \
+ ENABLE_VIDEO_TRACK=1 \
+ ENABLE_WEBGL=1 \
+ ENABLE_WEB_AUDIO=0 \
+ ENABLE_WEB_INTENTS=0 \
+ ENABLE_WEB_INTENTS_TAG=0 \
+ ENABLE_WEB_SOCKETS=1 \
+ ENABLE_WEB_TIMING=1 \
+ ENABLE_WORKERS=1 \
+ ENABLE_XSLT=1
diff --git a/Source/WebCore/Modules/battery/BatteryManager.idl b/Source/WebCore/Modules/battery/BatteryManager.idl
index e552df36e..49a2056ab 100644
--- a/Source/WebCore/Modules/battery/BatteryManager.idl
+++ b/Source/WebCore/Modules/battery/BatteryManager.idl
@@ -42,7 +42,7 @@ module window {
void removeEventListener(in DOMString type,
in EventListener listener,
in [Optional] boolean useCapture);
- boolean dispatchEvent(in Event evt)
+ boolean dispatchEvent(in Event event)
raises(EventException);
};
diff --git a/Source/WebCore/Modules/indexeddb/IDBCallbacks.h b/Source/WebCore/Modules/indexeddb/IDBCallbacks.h
index a79483e9b..1feb0d701 100644
--- a/Source/WebCore/Modules/indexeddb/IDBCallbacks.h
+++ b/Source/WebCore/Modules/indexeddb/IDBCallbacks.h
@@ -54,8 +54,6 @@ public:
virtual void onSuccess(PassRefPtr<DOMStringList>) = 0;
// From IDBObjectStore/IDBIndex.openCursor(), IDBIndex.openKeyCursor()
virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>, PassRefPtr<IDBKey>, PassRefPtr<IDBKey> primaryKey, PassRefPtr<SerializedScriptValue>) = 0;
- // From IDBFactory.open()
- virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) = 0;
// From IDBObjectStore.add()/put(), IDBIndex.getKey()
virtual void onSuccess(PassRefPtr<IDBKey>) = 0;
// From IDBDatabase.setVersion()
@@ -68,9 +66,12 @@ public:
virtual void onSuccess(PassRefPtr<IDBKey>, PassRefPtr<IDBKey> primaryKey, PassRefPtr<SerializedScriptValue>) = 0;
// From IDBCursor.advance()/continue()
virtual void onSuccessWithPrefetch(const Vector<RefPtr<IDBKey> >& keys, const Vector<RefPtr<IDBKey> >& primaryKeys, const Vector<RefPtr<SerializedScriptValue> >& values) = 0;
+ // From IDBFactory.open()/deleteDatabase(), IDBDatabase.setVersion()
virtual void onBlocked() { ASSERT_NOT_REACHED(); }
virtual void onBlocked(int64_t existingVersion) { ASSERT_NOT_REACHED(); }
+ // From IDBFactory.open()
virtual void onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBTransactionBackendInterface>, PassRefPtr<IDBDatabaseBackendInterface>) { ASSERT_NOT_REACHED(); }
+ virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) { ASSERT_NOT_REACHED(); }
};
} // namespace WebCore
diff --git a/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp b/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
index dab74ed0e..aa93e6a82 100644
--- a/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
+++ b/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
@@ -272,6 +272,14 @@ PassRefPtr<IDBTransaction> IDBDatabase::transaction(ScriptExecutionContext* cont
return transaction(context, prpStoreNames, modeString, ec);
}
+void IDBDatabase::forceClose()
+{
+ ExceptionCode ec = 0;
+ for (HashSet<IDBTransaction*>::iterator it = m_transactions.begin(); it != m_transactions.end(); ++it)
+ (*it)->abort(ec);
+ this->close();
+}
+
void IDBDatabase::close()
{
if (m_closePending)
diff --git a/Source/WebCore/Modules/indexeddb/IDBDatabase.h b/Source/WebCore/Modules/indexeddb/IDBDatabase.h
index a7d72ce19..27f03b6e3 100644
--- a/Source/WebCore/Modules/indexeddb/IDBDatabase.h
+++ b/Source/WebCore/Modules/indexeddb/IDBDatabase.h
@@ -88,6 +88,7 @@ public:
virtual const AtomicString& interfaceName() const;
virtual ScriptExecutionContext* scriptExecutionContext() const;
+ void forceClose();
void registerFrontendCallbacks();
const IDBDatabaseMetadata metadata() const { return m_metadata; }
void enqueueEvent(PassRefPtr<Event>);
diff --git a/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h b/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h
index faa166f7f..e83de5128 100644
--- a/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h
+++ b/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h
@@ -37,6 +37,7 @@ class IDBDatabaseCallbacks : public RefCounted<IDBDatabaseCallbacks> {
public:
virtual ~IDBDatabaseCallbacks() { }
+ virtual void onForcedClose() = 0;
virtual void onVersionChange(const String& version) = 0;
virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) = 0;
};
diff --git a/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp b/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp
index ceb7af31f..f6565dca1 100644
--- a/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp
+++ b/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp
@@ -46,6 +46,12 @@ IDBDatabaseCallbacksImpl::~IDBDatabaseCallbacksImpl()
{
}
+void IDBDatabaseCallbacksImpl::onForcedClose()
+{
+ if (m_database)
+ m_database->forceClose();
+}
+
void IDBDatabaseCallbacksImpl::onVersionChange(const String& version)
{
if (m_database)
diff --git a/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.h b/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.h
index 02c8de0df..792be3ad7 100644
--- a/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.h
+++ b/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.h
@@ -41,6 +41,7 @@ public:
static PassRefPtr<IDBDatabaseCallbacksImpl> create(IDBDatabase*);
virtual ~IDBDatabaseCallbacksImpl();
+ virtual void onForcedClose();
virtual void onVersionChange(const String& version);
virtual void onVersionChange(int64_t oldVersion, int64_t newVersion);
void unregisterDatabase(IDBDatabase*);
diff --git a/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp b/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp
index 1d849488f..e89a74cfd 100644
--- a/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp
+++ b/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp
@@ -30,6 +30,7 @@
#include "IDBDatabase.h"
#include "IDBPendingTransactionMonitor.h"
+#include "IDBTracing.h"
#include "IDBUpgradeNeededEvent.h"
#include "ScriptExecutionContext.h"
@@ -67,6 +68,7 @@ void IDBOpenDBRequest::onBlocked(int64_t oldVersion)
void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBTransactionBackendInterface> prpTransactionBackend, PassRefPtr<IDBDatabaseBackendInterface> prpDatabaseBackend)
{
+ IDB_TRACE("IDBOpenDBRequest::onUpgradeNeeded()");
if (!shouldEnqueueEvent())
return;
@@ -86,6 +88,24 @@ void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBTransac
enqueueEvent(IDBUpgradeNeededEvent::create(oldVersion, m_version, eventNames().upgradeneededEvent));
}
+void IDBOpenDBRequest::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> backend)
+{
+ IDB_TRACE("IDBOpenDBRequest::onSuccess()");
+ if (!shouldEnqueueEvent())
+ return;
+
+ RefPtr<IDBDatabase> idbDatabase;
+ if (m_result) {
+ idbDatabase = m_result->idbDatabase();
+ ASSERT(idbDatabase);
+ } else {
+ idbDatabase = IDBDatabase::create(scriptExecutionContext(), backend);
+ m_result = IDBAny::create(idbDatabase.get());
+ }
+ idbDatabase->registerFrontendCallbacks();
+ enqueueEvent(Event::create(eventNames().successEvent, false, false));
+}
+
bool IDBOpenDBRequest::shouldEnqueueEvent() const
{
if (m_contextStopped || !scriptExecutionContext())
diff --git a/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.h b/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.h
index 638f63157..c87db7ed1 100644
--- a/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.h
+++ b/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.h
@@ -37,8 +37,11 @@ public:
static PassRefPtr<IDBOpenDBRequest> create(ScriptExecutionContext*, PassRefPtr<IDBAny> source, int64_t version);
virtual ~IDBOpenDBRequest();
+ using IDBRequest::onSuccess;
+
virtual void onBlocked(int64_t existingVersion) OVERRIDE;
virtual void onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBTransactionBackendInterface>, PassRefPtr<IDBDatabaseBackendInterface>) OVERRIDE;
+ virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) OVERRIDE;
// EventTarget
virtual const AtomicString& interfaceName() const;
diff --git a/Source/WebCore/Modules/indexeddb/IDBRequest.cpp b/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
index c96b32565..a94af33ca 100644
--- a/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
+++ b/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
@@ -291,24 +291,6 @@ void IDBRequest::onSuccess(PassRefPtr<IDBCursorBackendInterface> backend, PassRe
enqueueEvent(createSuccessEvent());
}
-void IDBRequest::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> backend)
-{
- IDB_TRACE("IDBRequest::onSuccess(IDBDatabase)");
- if (!shouldEnqueueEvent())
- return;
-
- RefPtr<IDBDatabase> idbDatabase;
- if (m_result) {
- idbDatabase = m_result->idbDatabase();
- ASSERT(idbDatabase);
- } else {
- idbDatabase = IDBDatabase::create(scriptExecutionContext(), backend);
- m_result = IDBAny::create(idbDatabase.get());
- }
- idbDatabase->registerFrontendCallbacks();
- enqueueEvent(createSuccessEvent());
-}
-
void IDBRequest::onSuccess(PassRefPtr<IDBKey> idbKey)
{
IDB_TRACE("IDBRequest::onSuccess(IDBKey)");
@@ -428,11 +410,6 @@ void IDBRequest::stop()
markEarlyDeath();
}
-void IDBRequest::onBlocked()
-{
- ASSERT_NOT_REACHED();
-}
-
const AtomicString& IDBRequest::interfaceName() const
{
return eventNames().interfaceForIDBRequest;
diff --git a/Source/WebCore/Modules/indexeddb/IDBRequest.h b/Source/WebCore/Modules/indexeddb/IDBRequest.h
index 92d58b748..7f9992485 100644
--- a/Source/WebCore/Modules/indexeddb/IDBRequest.h
+++ b/Source/WebCore/Modules/indexeddb/IDBRequest.h
@@ -83,7 +83,6 @@ public:
// IDBCallbacks
virtual void onError(PassRefPtr<IDBDatabaseError>);
virtual void onSuccess(PassRefPtr<DOMStringList>);
- virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>);
virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>, PassRefPtr<IDBKey>, PassRefPtr<IDBKey> primaryKey, PassRefPtr<SerializedScriptValue>);
virtual void onSuccess(PassRefPtr<IDBKey>);
virtual void onSuccess(PassRefPtr<IDBTransactionBackendInterface>);
@@ -91,8 +90,6 @@ public:
virtual void onSuccess(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBKey>, const IDBKeyPath&);
virtual void onSuccess(PassRefPtr<IDBKey>, PassRefPtr<IDBKey> primaryKey, PassRefPtr<SerializedScriptValue>);
virtual void onSuccessWithPrefetch(const Vector<RefPtr<IDBKey> >&, const Vector<RefPtr<IDBKey> >&, const Vector<RefPtr<SerializedScriptValue> >&) { ASSERT_NOT_REACHED(); } // Not implemented. Callback should not reach the renderer side.
- virtual void onBlocked();
- virtual void onBlocked(int64_t existingVersion) { ASSERT_NOT_REACHED(); }
// ActiveDOMObject
virtual bool hasPendingActivity() const OVERRIDE;
diff --git a/Source/WebCore/UseV8.cmake b/Source/WebCore/UseV8.cmake
index 91ce8352e..45eee600e 100755
--- a/Source/WebCore/UseV8.cmake
+++ b/Source/WebCore/UseV8.cmake
@@ -64,7 +64,6 @@ LIST(APPEND WebCore_SOURCES
bindings/v8/V8ObjectConstructor.cpp
bindings/v8/V8PerContextData.cpp
bindings/v8/V8PerIsolateData.cpp
- bindings/v8/V8Proxy.cpp
bindings/v8/V8RecursionScope.cpp
bindings/v8/V8ThrowException.cpp
bindings/v8/V8Utilities.cpp
diff --git a/Source/WebCore/WebCore.exp.in b/Source/WebCore/WebCore.exp.in
index 770dd858c..dd677fd81 100644
--- a/Source/WebCore/WebCore.exp.in
+++ b/Source/WebCore/WebCore.exp.in
@@ -1619,6 +1619,7 @@ __ZN7WebCore7nsColorERKNS_5ColorE
__ZN7WebCore8IntPointC1ERK8_NSPoint
__ZN7WebCore9FloatRectC1ERK7_NSRect
__ZNK7WebCore10FloatPointcv8_NSPointEv
+__ZNK7WebCore14ScrollableArea18visibleContentRectEb
__ZNK7WebCore6Cursor14platformCursorEv
__ZNK7WebCore7IntRectcv7_NSRectEv
__ZNK7WebCore7IntSizecv6CGSizeEv
diff --git a/Source/WebCore/WebCore.gypi b/Source/WebCore/WebCore.gypi
index a6e62cada..0ba33776f 100644
--- a/Source/WebCore/WebCore.gypi
+++ b/Source/WebCore/WebCore.gypi
@@ -531,6 +531,7 @@
'platform/text/TextStream.h',
'platform/text/UnicodeBidi.h',
'platform/text/UnicodeRange.h',
+ 'platform/text/WritingMode.h',
'platform/text/mac/CharsetData.h',
'plugins/PluginData.h',
'plugins/PluginMainThreadScheduler.h',
@@ -2204,7 +2205,6 @@
'bindings/v8/NPV8Object.h',
'bindings/v8/Dictionary.cpp',
'bindings/v8/Dictionary.h',
- 'bindings/v8/OwnHandle.h',
'bindings/v8/PageScriptDebugServer.cpp',
'bindings/v8/PageScriptDebugServer.h',
'bindings/v8/RetainedDOMInfo.cpp',
@@ -2214,6 +2214,7 @@
'bindings/v8/ScheduledAction.h',
'bindings/v8/ScopedDOMDataStore.cpp',
'bindings/v8/ScopedDOMDataStore.h',
+ 'bindings/v8/ScopedPersistent.h',
'bindings/v8/ScriptCachedFrameData.cpp',
'bindings/v8/ScriptCachedFrameData.h',
'bindings/v8/ScriptCallStackFactory.cpp',
@@ -2299,8 +2300,6 @@
'bindings/v8/V8PerContextData.h',
'bindings/v8/V8PerIsolateData.cpp',
'bindings/v8/V8PerIsolateData.h',
- 'bindings/v8/V8Proxy.cpp',
- 'bindings/v8/V8Proxy.h',
'bindings/v8/V8RecursionScope.cpp',
'bindings/v8/V8RecursionScope.h',
'bindings/v8/V8StringResource.cpp',
@@ -8352,8 +8351,6 @@
'platform/graphics/chromium/LayerChromium.cpp',
'platform/graphics/chromium/LayerChromium.h',
'platform/graphics/chromium/LayerPainterChromium.h',
- 'platform/graphics/chromium/LayerRendererChromium.cpp',
- 'platform/graphics/chromium/LayerRendererChromium.h',
'platform/graphics/chromium/LayerTextureSubImage.cpp',
'platform/graphics/chromium/LayerTextureSubImage.h',
'platform/graphics/chromium/LayerTextureUpdater.h',
@@ -8463,6 +8460,8 @@
'platform/graphics/chromium/cc/CCQuadCuller.cpp',
'platform/graphics/chromium/cc/CCQuadCuller.h',
'platform/graphics/chromium/cc/CCRenderer.h',
+ 'platform/graphics/chromium/cc/CCRendererGL.cpp',
+ 'platform/graphics/chromium/cc/CCRendererGL.h',
'platform/graphics/chromium/cc/CCRenderPass.cpp',
'platform/graphics/chromium/cc/CCRenderPass.h',
'platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp',
diff --git a/Source/WebCore/WebCore.vcproj/WebCore.vcproj b/Source/WebCore/WebCore.vcproj/WebCore.vcproj
index 88752e296..8758fce19 100755
--- a/Source/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/Source/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -34026,6 +34026,10 @@
>
</File>
<File
+ RelativePath="..\platform\text\WritingMode.h"
+ >
+ </File>
+ <File
RelativePath="..\platform\graphics\WidthIterator.cpp"
>
</File>
diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj
index d95f65847..a974ffaf6 100644
--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -307,6 +307,7 @@
142B97CA13138943008BEF4B /* TextControlInnerElements.h in Headers */ = {isa = PBXBuildFile; fileRef = 142B97C813138943008BEF4B /* TextControlInnerElements.h */; };
1432E8470C51493800B1500F /* GCController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1432E8460C51493800B1500F /* GCController.h */; settings = {ATTRIBUTES = (Private, ); }; };
1432E8490C51493F00B1500F /* GCController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1432E8480C51493F00B1500F /* GCController.cpp */; };
+ 14476AA815DC4BB100305DB2 /* WritingMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 14476AA715DC4BB100305DB2 /* WritingMode.h */; settings = {ATTRIBUTES = (Private, ); }; };
1449E24C107D4A8400B5793F /* JSCallbackData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1449E24A107D4A8400B5793F /* JSCallbackData.h */; };
1449E287107D4DB400B5793F /* JSCallbackData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1449E286107D4DB400B5793F /* JSCallbackData.cpp */; };
144FCE5214EC79BC000D17A3 /* FractionalLayoutUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 144FCE5114EC79BC000D17A3 /* FractionalLayoutUnit.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -7321,6 +7322,7 @@
142B97C813138943008BEF4B /* TextControlInnerElements.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextControlInnerElements.h; sourceTree = "<group>"; };
1432E8460C51493800B1500F /* GCController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GCController.h; sourceTree = "<group>"; };
1432E8480C51493F00B1500F /* GCController.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GCController.cpp; sourceTree = "<group>"; };
+ 14476AA715DC4BB100305DB2 /* WritingMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WritingMode.h; sourceTree = "<group>"; };
1449E24A107D4A8400B5793F /* JSCallbackData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCallbackData.h; sourceTree = "<group>"; };
1449E286107D4DB400B5793F /* JSCallbackData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCallbackData.cpp; sourceTree = "<group>"; };
144FCE5114EC79BC000D17A3 /* FractionalLayoutUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FractionalLayoutUnit.h; sourceTree = "<group>"; };
@@ -19986,6 +19988,7 @@
A863E2001343412000274926 /* UnicodeBidi.h */,
B2C3DA1C0D006C1D00EF6F26 /* UnicodeRange.cpp */,
B2C3DA1D0D006C1D00EF6F26 /* UnicodeRange.h */,
+ 14476AA715DC4BB100305DB2 /* WritingMode.h */,
);
path = text;
sourceTree = "<group>";
@@ -25445,6 +25448,7 @@
977E2E0F12F0FC9C00C13379 /* XSSAuditor.h in Headers */,
FD537353137B651800008DCE /* ZeroPole.h in Headers */,
9377ABA015DEFEEF0031FD04 /* Pagination.h in Headers */,
+ 14476AA815DC4BB100305DB2 /* WritingMode.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -28592,11 +28596,6 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 1CDD45E50BA9C84600F90147 /* WebCore.xcconfig */;
buildSettings = {
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
- );
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"";
INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";
};
name = Debug;
@@ -28605,11 +28604,6 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 1CDD45E50BA9C84600F90147 /* WebCore.xcconfig */;
buildSettings = {
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
- );
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"";
INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";
};
name = Release;
@@ -28619,11 +28613,6 @@
baseConfigurationReference = 1CDD45E50BA9C84600F90147 /* WebCore.xcconfig */;
buildSettings = {
BUILD_VARIANTS = normal;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
- );
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"";
};
name = Production;
};
diff --git a/Source/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp b/Source/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
index 34c28e9ce..0f53d4420 100644
--- a/Source/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
+++ b/Source/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
@@ -64,7 +64,7 @@ bool JSSQLStatementErrorCallback::handleEvent(SQLTransaction* transaction, SQLEr
// Therefore an exception and returning true are the same thing - so, return true on an exception
return true;
}
- return result.toBoolean();
+ return result.toBoolean(exec);
}
}
diff --git a/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp b/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp
index 39beae5da..a1f0c1b22 100644
--- a/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp
+++ b/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp
@@ -641,7 +641,7 @@ JSValue JSDOMWindow::addEventListener(ExecState* exec)
if (!listener.isObject())
return jsUndefined();
- impl()->addEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), this, false, currentWorld(exec)), exec->argument(2).toBoolean());
+ impl()->addEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), this, false, currentWorld(exec)), exec->argument(2).toBoolean(exec));
return jsUndefined();
}
@@ -655,7 +655,7 @@ JSValue JSDOMWindow::removeEventListener(ExecState* exec)
if (!listener.isObject())
return jsUndefined();
- impl()->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), this, false, currentWorld(exec)).get(), exec->argument(2).toBoolean());
+ impl()->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), this, false, currentWorld(exec)).get(), exec->argument(2).toBoolean(exec));
return jsUndefined();
}
diff --git a/Source/WebCore/bindings/js/JSDataViewCustom.cpp b/Source/WebCore/bindings/js/JSDataViewCustom.cpp
index a88989bad..3eb7a3e1a 100644
--- a/Source/WebCore/bindings/js/JSDataViewCustom.cpp
+++ b/Source/WebCore/bindings/js/JSDataViewCustom.cpp
@@ -73,7 +73,7 @@ static JSValue getDataViewMember(ExecState* exec, DataView* imp, DataViewAccessT
bool littleEndian = false;
if (exec->argumentCount() > 1 && (type == AccessDataViewMemberAsFloat32 || type == AccessDataViewMemberAsFloat64)) {
- littleEndian = exec->argument(1).toBoolean();
+ littleEndian = exec->argument(1).toBoolean(exec);
if (exec->hadException())
return jsUndefined();
}
diff --git a/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp b/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp
index f4d2bf6d8..8e9948f1a 100644
--- a/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp
+++ b/Source/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp
@@ -165,8 +165,8 @@ JSValue JSDeviceMotionEvent::interval(ExecState*) const
JSValue JSDeviceMotionEvent::initDeviceMotionEvent(ExecState* exec)
{
const String& type = ustringToString(exec->argument(0).toString(exec)->value(exec));
- bool bubbles = exec->argument(1).toBoolean();
- bool cancelable = exec->argument(2).toBoolean();
+ bool bubbles = exec->argument(1).toBoolean(exec);
+ bool cancelable = exec->argument(2).toBoolean(exec);
// If any of the parameters are null or undefined, mark them as not provided.
// Otherwise, use the standard JavaScript conversion.
diff --git a/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp b/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp
index 25976e411..d03b740aa 100644
--- a/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp
+++ b/Source/WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp
@@ -71,8 +71,8 @@ JSValue JSDeviceOrientationEvent::absolute(ExecState*) const
JSValue JSDeviceOrientationEvent::initDeviceOrientationEvent(ExecState* exec)
{
const String& type = ustringToString(exec->argument(0).toString(exec)->value(exec));
- bool bubbles = exec->argument(1).toBoolean();
- bool cancelable = exec->argument(2).toBoolean();
+ bool bubbles = exec->argument(1).toBoolean(exec);
+ bool cancelable = exec->argument(2).toBoolean(exec);
// If alpha, beta or gamma are null or undefined, mark them as not provided.
// Otherwise, use the standard JavaScript conversion.
bool alphaProvided = !exec->argument(3).isUndefinedOrNull();
@@ -82,7 +82,7 @@ JSValue JSDeviceOrientationEvent::initDeviceOrientationEvent(ExecState* exec)
bool gammaProvided = !exec->argument(5).isUndefinedOrNull();
double gamma = exec->argument(5).toNumber(exec);
bool absoluteProvided = !exec->argument(6).isUndefinedOrNull();
- bool absolute = exec->argument(6).toBoolean();
+ bool absolute = exec->argument(6).toBoolean(exec);
RefPtr<DeviceOrientationData> orientation = DeviceOrientationData::create(alphaProvided, alpha, betaProvided, beta, gammaProvided, gamma, absoluteProvided, absolute);
DeviceOrientationEvent* imp = static_cast<DeviceOrientationEvent*>(impl());
imp->initDeviceOrientationEvent(type, bubbles, cancelable, orientation.get());
diff --git a/Source/WebCore/bindings/js/JSDictionary.cpp b/Source/WebCore/bindings/js/JSDictionary.cpp
index ec8948ccf..85b759198 100644
--- a/Source/WebCore/bindings/js/JSDictionary.cpp
+++ b/Source/WebCore/bindings/js/JSDictionary.cpp
@@ -63,9 +63,9 @@ JSDictionary::GetPropertyResult JSDictionary::tryGetProperty(const char* propert
return PropertyFound;
}
-void JSDictionary::convertValue(ExecState*, JSValue value, bool& result)
+void JSDictionary::convertValue(ExecState* exec, JSValue value, bool& result)
{
- result = value.toBoolean();
+ result = value.toBoolean(exec);
}
void JSDictionary::convertValue(ExecState* exec, JSValue value, int& result)
diff --git a/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp b/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp
index a72af1062..3f9a39fd2 100644
--- a/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp
+++ b/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp
@@ -55,22 +55,22 @@ JSValue JSHTMLCanvasElement::getContext(ExecState* exec)
JSObject* jsAttrs = exec->argument(1).getObject();
Identifier alpha(exec, "alpha");
if (jsAttrs->hasProperty(exec, alpha))
- webGLAttrs->setAlpha(jsAttrs->get(exec, alpha).toBoolean());
+ webGLAttrs->setAlpha(jsAttrs->get(exec, alpha).toBoolean(exec));
Identifier depth(exec, "depth");
if (jsAttrs->hasProperty(exec, depth))
- webGLAttrs->setDepth(jsAttrs->get(exec, depth).toBoolean());
+ webGLAttrs->setDepth(jsAttrs->get(exec, depth).toBoolean(exec));
Identifier stencil(exec, "stencil");
if (jsAttrs->hasProperty(exec, stencil))
- webGLAttrs->setStencil(jsAttrs->get(exec, stencil).toBoolean());
+ webGLAttrs->setStencil(jsAttrs->get(exec, stencil).toBoolean(exec));
Identifier antialias(exec, "antialias");
if (jsAttrs->hasProperty(exec, antialias))
- webGLAttrs->setAntialias(jsAttrs->get(exec, antialias).toBoolean());
+ webGLAttrs->setAntialias(jsAttrs->get(exec, antialias).toBoolean(exec));
Identifier premultipliedAlpha(exec, "premultipliedAlpha");
if (jsAttrs->hasProperty(exec, premultipliedAlpha))
- webGLAttrs->setPremultipliedAlpha(jsAttrs->get(exec, premultipliedAlpha).toBoolean());
+ webGLAttrs->setPremultipliedAlpha(jsAttrs->get(exec, premultipliedAlpha).toBoolean(exec));
Identifier preserveDrawingBuffer(exec, "preserveDrawingBuffer");
if (jsAttrs->hasProperty(exec, preserveDrawingBuffer))
- webGLAttrs->setPreserveDrawingBuffer(jsAttrs->get(exec, preserveDrawingBuffer).toBoolean());
+ webGLAttrs->setPreserveDrawingBuffer(jsAttrs->get(exec, preserveDrawingBuffer).toBoolean(exec));
}
}
#endif
diff --git a/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp b/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
index 7c4945053..338f4c479 100644
--- a/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
+++ b/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
@@ -118,9 +118,9 @@ static void populateContextMenuItems(ExecState* exec, JSArray* array, ContextMen
ContextMenuAction typedId = static_cast<ContextMenuAction>(ContextMenuItemBaseCustomTag + id.toInt32(exec));
ContextMenuItem menuItem((typeString == "checkbox" ? CheckableActionType : ActionType), typedId, ustringToString(label.toString(exec)->value(exec)));
if (!enabled.isUndefined())
- menuItem.setEnabled(enabled.toBoolean());
+ menuItem.setEnabled(enabled.toBoolean(exec));
if (!checked.isUndefined())
- menuItem.setChecked(checked.toBoolean());
+ menuItem.setChecked(checked.toBoolean(exec));
menu.appendItem(menuItem);
}
}
diff --git a/Source/WebCore/bindings/js/JSMessageEventCustom.cpp b/Source/WebCore/bindings/js/JSMessageEventCustom.cpp
index 3511e679e..64fcef88a 100644
--- a/Source/WebCore/bindings/js/JSMessageEventCustom.cpp
+++ b/Source/WebCore/bindings/js/JSMessageEventCustom.cpp
@@ -103,8 +103,8 @@ JSValue JSMessageEvent::ports(ExecState* exec) const
static JSC::JSValue handleInitMessageEvent(JSMessageEvent* jsEvent, JSC::ExecState* exec)
{
const UString& typeArg = exec->argument(0).toString(exec)->value(exec);
- bool canBubbleArg = exec->argument(1).toBoolean();
- bool cancelableArg = exec->argument(2).toBoolean();
+ bool canBubbleArg = exec->argument(1).toBoolean(exec);
+ bool cancelableArg = exec->argument(2).toBoolean(exec);
const UString& originArg = exec->argument(4).toString(exec)->value(exec);
const UString& lastEventIdArg = exec->argument(5).toString(exec)->value(exec);
DOMWindow* sourceArg = toDOMWindow(exec->argument(6));
diff --git a/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp b/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp
index d6a171fb9..af008074f 100644
--- a/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp
+++ b/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp
@@ -613,7 +613,7 @@ static JSC::JSValue dataFunctionMatrix(DataFunctionMatrixToCall f, JSC::ExecStat
if (exec->hadException())
return jsUndefined();
- bool transpose = exec->argument(1).toBoolean();
+ bool transpose = exec->argument(1).toBoolean(exec);
if (exec->hadException())
return jsUndefined();
diff --git a/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp b/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
index 40c329b73..c08c29560 100644
--- a/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
+++ b/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
@@ -89,7 +89,7 @@ JSValue JSXMLHttpRequest::open(ExecState* exec)
ExceptionCode ec = 0;
if (exec->argumentCount() >= 3) {
- bool async = exec->argument(2).toBoolean();
+ bool async = exec->argument(2).toBoolean(exec);
if (exec->argumentCount() >= 4 && !exec->argument(3).isUndefined()) {
String user = valueToStringWithNullCheck(exec, exec->argument(3));
diff --git a/Source/WebCore/bindings/js/JavaScriptCallFrame.cpp b/Source/WebCore/bindings/js/JavaScriptCallFrame.cpp
index 3aefad167..9ea9ec8f0 100644
--- a/Source/WebCore/bindings/js/JavaScriptCallFrame.cpp
+++ b/Source/WebCore/bindings/js/JavaScriptCallFrame.cpp
@@ -100,6 +100,14 @@ JSObject* JavaScriptCallFrame::thisObject() const
return m_debuggerCallFrame.thisObject();
}
+ExecState* JavaScriptCallFrame::exec() const
+{
+ ASSERT(m_isValid);
+ if (!m_isValid)
+ return 0;
+ return m_debuggerCallFrame.callFrame();
+}
+
// Evaluate some JavaScript code in the scope of this frame.
JSValue JavaScriptCallFrame::evaluate(const UString& script, JSValue& exception) const
{
diff --git a/Source/WebCore/bindings/js/JavaScriptCallFrame.h b/Source/WebCore/bindings/js/JavaScriptCallFrame.h
index a581c4fc7..e987ecf88 100644
--- a/Source/WebCore/bindings/js/JavaScriptCallFrame.h
+++ b/Source/WebCore/bindings/js/JavaScriptCallFrame.h
@@ -71,6 +71,7 @@ public:
JSC::DebuggerCallFrame::Type type() const;
JSC::ScopeChainNode* scopeChain() const;
JSC::JSGlobalObject* dynamicGlobalObject() const;
+ JSC::ExecState* exec() const;
JSC::JSObject* thisObject() const;
JSC::JSValue evaluate(const JSC::UString& script, JSC::JSValue& exception) const;
diff --git a/Source/WebCore/bindings/js/ScriptDebugServer.cpp b/Source/WebCore/bindings/js/ScriptDebugServer.cpp
index 967b3d21f..bbcd54299 100644
--- a/Source/WebCore/bindings/js/ScriptDebugServer.cpp
+++ b/Source/WebCore/bindings/js/ScriptDebugServer.cpp
@@ -206,7 +206,7 @@ bool ScriptDebugServer::hasBreakpoint(intptr_t sourceID, const TextPosition& pos
// An erroneous condition counts as "false".
return false;
}
- return result.toBoolean();
+ return result.toBoolean(m_currentCallFrame->exec());
}
void ScriptDebugServer::clearBreakpoints()
diff --git a/Source/WebCore/bindings/js/SerializedScriptValue.cpp b/Source/WebCore/bindings/js/SerializedScriptValue.cpp
index 9d5ca654d..ea702295b 100644
--- a/Source/WebCore/bindings/js/SerializedScriptValue.cpp
+++ b/Source/WebCore/bindings/js/SerializedScriptValue.cpp
@@ -56,6 +56,7 @@
#include <limits>
#include <JavaScriptCore/APICast.h>
#include <JavaScriptCore/APIShims.h>
+#include <runtime/BooleanObject.h>
#include <runtime/DateInstance.h>
#include <runtime/Error.h>
#include <runtime/ExceptionHelpers.h>
@@ -108,6 +109,11 @@ enum SerializationTag {
ArrayBufferTag = 21,
ArrayBufferViewTag = 22,
ArrayBufferTransferTag = 23,
+ TrueObjectTag = 24,
+ FalseObjectTag = 25,
+ StringObjectTag = 26,
+ EmptyStringObjectTag = 27,
+ NumberObjectTag = 28,
ErrorTag = 255
};
@@ -152,8 +158,10 @@ static unsigned typedArrayElementSize(ArrayBufferViewSubtag tag)
*
* Initial version was 1.
* Version 2. added the ObjectReferenceTag and support for serialization of cyclic graphs.
+ * Version 3. added the FalseObjectTag, TrueObjectTag, NumberObjectTag, StringObjectTag
+ * and EmptyStringObjectTag for serialization of Boolean, Number and String objects.
*/
-static const unsigned int CurrentVersion = 2;
+static const unsigned int CurrentVersion = 3;
static const unsigned int TerminatorTag = 0xFFFFFFFF;
static const unsigned int StringPoolTag = 0xFFFFFFFE;
@@ -182,10 +190,14 @@ static const unsigned int StringPoolTag = 0xFFFFFFFE;
* | OneTag
* | FalseTag
* | TrueTag
+ * | FalseObjectTag
+ * | TrueObjectTag
* | DoubleTag <value:double>
+ * | NumberObjectTag <value:double>
* | DateTag <value:double>
* | String
* | EmptyStringTag
+ * | EmptyStringObjectTag
* | File
* | FileList
* | ImageData
@@ -200,6 +212,10 @@ static const unsigned int StringPoolTag = 0xFFFFFFFE;
* EmptyStringTag
* StringTag StringData
*
+ * StringObject:
+ * EmptyStringObjectTag
+ * StringObjectTag StringData
+ *
* StringData :-
* StringPoolTag <cpIndex:IndexType>
* (not (TerminatorTag | StringPoolTag))<length:uint32_t><characters:UChar{length}> // Added to constant pool when seen, string length 0xFFFFFFFF is disallowed
@@ -517,6 +533,16 @@ private:
}
}
+ void dumpStringObject(UString str)
+ {
+ if (str.isEmpty())
+ write(EmptyStringObjectTag);
+ else {
+ write(StringObjectTag);
+ write(str);
+ }
+ }
+
bool dumpArrayBufferView(JSObject* obj, SerializationReturnCode& code)
{
write(ArrayBufferViewTag);
@@ -585,6 +611,27 @@ private:
if (value.isObject()) {
JSObject* obj = asObject(value);
+ if (obj->inherits(&BooleanObject::s_info)) {
+ if (!startObjectInternal(obj)) // handle duplicates
+ return true;
+ write(asBooleanObject(value)->internalValue().toBoolean(m_exec) ? TrueObjectTag : FalseObjectTag);
+ return true;
+ }
+ if (obj->inherits(&StringObject::s_info)) {
+ if (!startObjectInternal(obj)) // handle duplicates
+ return true;
+ UString str = asString(asStringObject(value)->internalValue())->value(m_exec);
+ dumpStringObject(str);
+ return true;
+ }
+ if (obj->inherits(&NumberObject::s_info)) {
+ if (!startObjectInternal(obj)) // handle duplicates
+ return true;
+ write(NumberObjectTag);
+ NumberObject* obj = static_cast<NumberObject*>(asObject(value));
+ write(obj->internalValue().asNumber());
+ return true;
+ }
if (obj->inherits(&JSFile::s_info)) {
write(FileTag);
write(toFile(obj));
@@ -1398,12 +1445,32 @@ private:
return jsBoolean(false);
case TrueTag:
return jsBoolean(true);
+ case FalseObjectTag: {
+ BooleanObject* obj = BooleanObject::create(m_exec->globalData(), m_globalObject->booleanObjectStructure());
+ obj->setInternalValue(m_exec->globalData(), jsBoolean(false));
+ m_gcBuffer.append(obj);
+ return obj;
+ }
+ case TrueObjectTag: {
+ BooleanObject* obj = BooleanObject::create(m_exec->globalData(), m_globalObject->booleanObjectStructure());
+ obj->setInternalValue(m_exec->globalData(), jsBoolean(true));
+ m_gcBuffer.append(obj);
+ return obj;
+ }
case DoubleTag: {
double d;
if (!read(d))
return JSValue();
return jsNumber(d);
}
+ case NumberObjectTag: {
+ double d;
+ if (!read(d))
+ return JSValue();
+ NumberObject* obj = constructNumber(m_exec, m_globalObject, jsNumber(d));
+ m_gcBuffer.append(obj);
+ return obj;
+ }
case DateTag: {
double d;
if (!read(d))
@@ -1479,6 +1546,19 @@ private:
}
case EmptyStringTag:
return jsEmptyString(&m_exec->globalData());
+ case StringObjectTag: {
+ CachedStringRef cachedString;
+ if (!readStringData(cachedString))
+ return JSValue();
+ StringObject* obj = constructString(m_exec, m_globalObject, cachedString->jsString(m_exec));
+ m_gcBuffer.append(obj);
+ return obj;
+ }
+ case EmptyStringObjectTag: {
+ StringObject* obj = constructString(m_exec, m_globalObject, jsEmptyString(&m_exec->globalData()));
+ m_gcBuffer.append(obj);
+ return obj;
+ }
case RegExpTag: {
CachedStringRef pattern;
if (!readStringData(pattern))
diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
index 997be4137..e680dbf44 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -165,7 +165,7 @@ END
JSValue listener = exec->argument(1);
if (!listener.isObject())
return JSValue::encode(jsUndefined());
- impl->${functionName}EventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), $wrapperObject, false, currentWorld(exec))$passRefPtrHandling, exec->argument(2).toBoolean());
+ impl->${functionName}EventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), $wrapperObject, false, currentWorld(exec))$passRefPtrHandling, exec->argument(2).toBoolean(exec));
return JSValue::encode(jsUndefined());
END
return @GenerateEventListenerImpl;
@@ -751,6 +751,15 @@ sub GenerateHeader
push(@headerContent, " ptr->finishCreation(globalData);\n");
push(@headerContent, " return ptr;\n");
push(@headerContent, " }\n\n");
+ } elsif ($dataNode->extendedAttributes->{"MasqueradesAsUndefined"}) {
+ AddIncludesForTypeInHeader($implType) unless $svgPropertyOrListPropertyType;
+ push(@headerContent, " static $className* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<$implType> impl)\n");
+ push(@headerContent, " {\n");
+ push(@headerContent, " globalObject->masqueradesAsUndefinedWatchpoint()->notifyWrite();\n");
+ push(@headerContent, " $className* ptr = new (NotNull, JSC::allocateCell<$className>(globalObject->globalData().heap)) $className(structure, globalObject, impl);\n");
+ push(@headerContent, " ptr->finishCreation(globalObject->globalData());\n");
+ push(@headerContent, " return ptr;\n");
+ push(@headerContent, " }\n\n");
} else {
AddIncludesForTypeInHeader($implType) unless $svgPropertyOrListPropertyType;
push(@headerContent, " static $className* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<$implType> impl)\n");
@@ -3015,7 +3024,7 @@ sub JSValueToNative
my $conditional = $signature->extendedAttributes->{"Conditional"};
my $type = $codeGenerator->StripModule($signature->type);
- return "$value.toBoolean()" if $type eq "boolean";
+ return "$value.toBoolean(exec)" if $type eq "boolean";
return "$value.toNumber(exec)" if $type eq "double";
return "$value.toFloat(exec)" if $type eq "float";
return "$value.toInt32(exec)" if $type eq "long" or $type eq "short";
diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm b/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
index 5969d2d47..c68331820 100644
--- a/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
+++ b/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
@@ -2522,7 +2522,6 @@ sub GenerateImplementation
AddToImplIncludes("BindingState.h");
AddToImplIncludes("ContextFeatures.h");
AddToImplIncludes("RuntimeEnabledFeatures.h");
- AddToImplIncludes("V8Proxy.h");
AddToImplIncludes("V8Binding.h");
AddToImplIncludes("V8DOMWrapper.h");
AddToImplIncludes("V8IsolatedContext.h");
@@ -3212,11 +3211,10 @@ sub GenerateCallbackImplementation
# - Add default header template
push(@implFixedHeader, GenerateImplementationContentHeader($dataNode));
-
+
AddToImplIncludes("ScriptExecutionContext.h");
AddToImplIncludes("V8Binding.h");
AddToImplIncludes("V8Callback.h");
- AddToImplIncludes("V8Proxy.h");
push(@implContent, "#include <wtf/Assertions.h>\n\n");
push(@implContent, "namespace WebCore {\n\n");
diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp b/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp
index 8474b1ab6..4cf95c9cf 100644
--- a/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp
+++ b/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp
@@ -253,7 +253,7 @@ EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionAddEventListener(
JSValue listener = exec->argument(1);
if (!listener.isObject())
return JSValue::encode(jsUndefined());
- impl->addEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)), exec->argument(2).toBoolean());
+ impl->addEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)), exec->argument(2).toBoolean(exec));
return JSValue::encode(jsUndefined());
}
@@ -268,7 +268,7 @@ EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionRemoveEventListen
JSValue listener = exec->argument(1);
if (!listener.isObject())
return JSValue::encode(jsUndefined());
- impl->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)).get(), exec->argument(2).toBoolean());
+ impl->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)).get(), exec->argument(2).toBoolean(exec));
return JSValue::encode(jsUndefined());
}
diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h b/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h
index c3aa1f0cd..b442c0701 100644
--- a/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h
+++ b/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h
@@ -34,6 +34,7 @@ public:
typedef JSDOMWrapper Base;
static JSTestEventTarget* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestEventTarget> impl)
{
+ globalObject->masqueradesAsUndefinedWatchpoint()->notifyWrite();
JSTestEventTarget* ptr = new (NotNull, JSC::allocateCell<JSTestEventTarget>(globalObject->globalData().heap)) JSTestEventTarget(structure, globalObject, impl);
ptr->finishCreation(globalObject->globalData());
return ptr;
diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp b/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
index 18affcc79..e172cf6c7 100644
--- a/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
+++ b/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
@@ -1048,7 +1048,7 @@ void setJSTestObjCreate(ExecState* exec, JSObject* thisObject, JSValue value)
UNUSED_PARAM(exec);
JSTestObj* castedThis = jsCast<JSTestObj*>(thisObject);
TestObj* impl = static_cast<TestObj*>(castedThis->impl());
- impl->setCreate(value.toBoolean());
+ impl->setCreate(value.toBoolean(exec));
}
@@ -1084,7 +1084,7 @@ void setJSTestObjReflectedBooleanAttr(ExecState* exec, JSObject* thisObject, JSV
UNUSED_PARAM(exec);
JSTestObj* castedThis = jsCast<JSTestObj*>(thisObject);
TestObj* impl = static_cast<TestObj*>(castedThis->impl());
- impl->setBooleanAttribute(WebCore::HTMLNames::reflectedbooleanattrAttr, value.toBoolean());
+ impl->setBooleanAttribute(WebCore::HTMLNames::reflectedbooleanattrAttr, value.toBoolean(exec));
}
@@ -1120,7 +1120,7 @@ void setJSTestObjReflectedCustomBooleanAttr(ExecState* exec, JSObject* thisObjec
UNUSED_PARAM(exec);
JSTestObj* castedThis = jsCast<JSTestObj*>(thisObject);
TestObj* impl = static_cast<TestObj*>(castedThis->impl());
- impl->setBooleanAttribute(WebCore::HTMLNames::customContentBooleanAttrAttr, value.toBoolean());
+ impl->setBooleanAttribute(WebCore::HTMLNames::customContentBooleanAttrAttr, value.toBoolean(exec));
}
@@ -1681,7 +1681,7 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionAddEventListener(ExecStat
JSValue listener = exec->argument(1);
if (!listener.isObject())
return JSValue::encode(jsUndefined());
- impl->addEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)), exec->argument(2).toBoolean());
+ impl->addEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)), exec->argument(2).toBoolean(exec));
return JSValue::encode(jsUndefined());
}
@@ -1696,7 +1696,7 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionRemoveEventListener(ExecS
JSValue listener = exec->argument(1);
if (!listener.isObject())
return JSValue::encode(jsUndefined());
- impl->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)).get(), exec->argument(2).toBoolean());
+ impl->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)).get(), exec->argument(2).toBoolean(exec));
return JSValue::encode(jsUndefined());
}
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp b/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp
index c93730d3a..bda47a5ac 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp
@@ -33,7 +33,6 @@
#include "V8Float32Array.h"
#include "V8Int32Array.h"
#include "V8IsolatedContext.h"
-#include "V8Proxy.h"
#include <wtf/Float32Array.h>
#include <wtf/Float64Array.h>
#include <wtf/GetPtr.h>
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp
index 23872e961..6e4be7579 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp
@@ -30,7 +30,6 @@
#include "V8DOMWrapper.h"
#include "V8IsolatedContext.h"
#include "V8Node.h"
-#include "V8Proxy.h"
#include <wtf/UnusedParam.h>
namespace WebCore {
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp
index 0f19bfc91..ed2de6ee6 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp
@@ -30,7 +30,6 @@
#include "V8Class2.h"
#include "V8Class8.h"
#include "V8DOMStringList.h"
-#include "V8Proxy.h"
#include "V8ThisClass.h"
#include <wtf/GetPtr.h>
#include <wtf/RefCounted.h>
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp
index e568d57ae..8975cf632 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp
@@ -29,7 +29,6 @@
#include "V8Binding.h"
#include "V8DOMWrapper.h"
#include "V8IsolatedContext.h"
-#include "V8Proxy.h"
#include <wtf/UnusedParam.h>
namespace WebCore {
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp
index dacbd1d8d..fe3eb4fff 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp
@@ -29,7 +29,6 @@
#include "V8Binding.h"
#include "V8DOMWrapper.h"
#include "V8IsolatedContext.h"
-#include "V8Proxy.h"
#include <wtf/UnusedParam.h>
namespace WebCore {
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp
index b10b607a9..1940d7dbd 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp
@@ -32,7 +32,6 @@
#include "V8Event.h"
#include "V8IsolatedContext.h"
#include "V8Node.h"
-#include "V8Proxy.h"
#include <wtf/UnusedParam.h>
namespace WebCore {
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestException.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestException.cpp
index ffb49fd4b..9375ce310 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestException.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestException.cpp
@@ -28,7 +28,6 @@
#include "V8Binding.h"
#include "V8DOMWrapper.h"
#include "V8IsolatedContext.h"
-#include "V8Proxy.h"
#include <wtf/UnusedParam.h>
namespace WebCore {
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp
index d4b8161af..0098d5eb0 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp
@@ -33,7 +33,6 @@
#include "V8DOMWrapper.h"
#include "V8IsolatedContext.h"
#include "V8Node.h"
-#include "V8Proxy.h"
#include "V8TestObj.h"
#include <wtf/GetPtr.h>
#include <wtf/RefCounted.h>
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp
index ab66706d6..ac1167998 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp
@@ -30,7 +30,6 @@
#include "V8Binding.h"
#include "V8DOMWrapper.h"
#include "V8IsolatedContext.h"
-#include "V8Proxy.h"
#include <wtf/UnusedParam.h>
namespace WebCore {
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp
index d37f46dc0..7a74f5827 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp
@@ -29,7 +29,6 @@
#include "V8Binding.h"
#include "V8DOMWrapper.h"
#include "V8IsolatedContext.h"
-#include "V8Proxy.h"
#include <wtf/UnusedParam.h>
namespace WebCore {
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp
index 9a3cef794..ce42f92ed 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp
@@ -29,7 +29,6 @@
#include "V8DOMWrapper.h"
#include "V8IsolatedContext.h"
#include "V8Node.h"
-#include "V8Proxy.h"
#include <wtf/UnusedParam.h>
namespace WebCore {
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp
index 3f0b324f0..553a3d1a6 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp
@@ -44,7 +44,6 @@
#include "V8Document.h"
#include "V8Float32Array.h"
#include "V8IsolatedContext.h"
-#include "V8Proxy.h"
#include "V8SVGDocument.h"
#include "V8SVGPoint.h"
#include "V8ScriptProfile.h"
diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp
index 45ace2076..ae8d18d45 100644
--- a/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp
+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp
@@ -34,7 +34,6 @@
#include "V8DOMWrapper.h"
#include "V8IsolatedContext.h"
#include "V8MessagePort.h"
-#include "V8Proxy.h"
#include <wtf/ArrayBuffer.h>
#include <wtf/UnusedParam.h>
diff --git a/Source/WebCore/bindings/v8/JavaScriptCallFrame.h b/Source/WebCore/bindings/v8/JavaScriptCallFrame.h
index 021616e56..21a1d6d54 100644
--- a/Source/WebCore/bindings/v8/JavaScriptCallFrame.h
+++ b/Source/WebCore/bindings/v8/JavaScriptCallFrame.h
@@ -33,8 +33,8 @@
#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include "OwnHandle.h"
#include "PlatformString.h"
+#include "ScopedPersistent.h"
#include <v8-debug.h>
#include <wtf/RefCounted.h>
@@ -66,8 +66,8 @@ private:
JavaScriptCallFrame(v8::Handle<v8::Context> debuggerContext, v8::Handle<v8::Object> callFrame);
RefPtr<JavaScriptCallFrame> m_caller;
- OwnHandle<v8::Context> m_debuggerContext;
- OwnHandle<v8::Object> m_callFrame;
+ ScopedPersistent<v8::Context> m_debuggerContext;
+ ScopedPersistent<v8::Object> m_callFrame;
};
} // namespace WebCore
diff --git a/Source/WebCore/bindings/v8/ScheduledAction.cpp b/Source/WebCore/bindings/v8/ScheduledAction.cpp
index 2a5f89d2d..40ab33dfa 100644
--- a/Source/WebCore/bindings/v8/ScheduledAction.cpp
+++ b/Source/WebCore/bindings/v8/ScheduledAction.cpp
@@ -49,49 +49,20 @@
namespace WebCore {
-ScheduledAction::ScheduledAction(v8::Handle<v8::Context> context, v8::Handle<v8::Function> func, int argc, v8::Handle<v8::Value> argv[])
+ScheduledAction::ScheduledAction(v8::Handle<v8::Context> context, v8::Handle<v8::Function> function, int argc, v8::Handle<v8::Value> argv[])
: m_context(context)
+ , m_function(function)
, m_code(String(), KURL(), TextPosition::belowRangePosition())
{
- m_function = v8::Persistent<v8::Function>::New(func);
-
-#ifndef NDEBUG
- V8GCController::registerGlobalHandle(SCHEDULED_ACTION, this, m_function);
-#endif
-
- m_argc = argc;
- if (argc > 0) {
- m_argv = new v8::Persistent<v8::Value>[argc];
- for (int i = 0; i < argc; i++) {
- m_argv[i] = v8::Persistent<v8::Value>::New(argv[i]);
-
-#ifndef NDEBUG
- V8GCController::registerGlobalHandle(SCHEDULED_ACTION, this, m_argv[i]);
-#endif
- }
- } else
- m_argv = 0;
+ m_args.reserveCapacity(argc);
+ for (int i = 0; i < argc; ++i)
+ m_args.append(v8::Persistent<v8::Value>::New(argv[i]));
}
ScheduledAction::~ScheduledAction()
{
- if (m_function.IsEmpty())
- return;
-
-#ifndef NDEBUG
- V8GCController::unregisterGlobalHandle(this, m_function);
-#endif
- m_function.Dispose();
-
- for (int i = 0; i < m_argc; i++) {
-#ifndef NDEBUG
- V8GCController::unregisterGlobalHandle(this, m_argv[i]);
-#endif
- m_argv[i].Dispose();
- }
-
- if (m_argc > 0)
- delete[] m_argv;
+ for (size_t i = 0; i < m_args.size(); ++i)
+ m_args[i].Dispose();
}
void ScheduledAction::execute(ScriptExecutionContext* context)
@@ -102,7 +73,7 @@ void ScheduledAction::execute(ScriptExecutionContext* context)
return;
if (!frame->script()->canExecuteScripts(AboutToExecuteScript))
return;
- execute(frame->script());
+ execute(frame);
}
#if ENABLE(WORKERS)
else {
@@ -112,47 +83,46 @@ void ScheduledAction::execute(ScriptExecutionContext* context)
#endif
}
-void ScheduledAction::execute(ScriptController* script)
+void ScheduledAction::execute(Frame* frame)
{
- ASSERT(script->proxy());
-
v8::HandleScope handleScope;
- v8::Handle<v8::Context> v8Context = v8::Local<v8::Context>::New(m_context.get());
- if (v8Context.IsEmpty())
- return; // JS may not be enabled.
+
+ v8::Handle<v8::Context> context = v8::Local<v8::Context>::New(m_context.get());
+ if (context.IsEmpty())
+ return;
+ v8::Context::Scope scope(context);
#if PLATFORM(CHROMIUM)
TRACE_EVENT0("v8", "ScheduledAction::execute");
#endif
- v8::Context::Scope scope(v8Context);
-
- // FIXME: Need to implement timeouts for preempting a long-running script.
- if (!m_function.IsEmpty() && m_function->IsFunction())
- script->callFunction(v8::Persistent<v8::Function>::Cast(m_function), v8Context->Global(), m_argc, m_argv);
+ v8::Handle<v8::Function> function = m_function.get();
+ if (!function.IsEmpty())
+ frame->script()->callFunction(function, context->Global(), m_args.size(), m_args.data());
else
- script->compileAndRunScript(m_code);
+ frame->script()->compileAndRunScript(m_code);
- // The 'proxy' may be invalid at this point since JS could have released the owning Frame.
+ // The frame might be invalid at this point because JavaScript could have released it.
}
#if ENABLE(WORKERS)
-void ScheduledAction::execute(WorkerContext* workerContext)
+void ScheduledAction::execute(WorkerContext* worker)
{
- // In a Worker, the execution should always happen on a worker thread.
- ASSERT(workerContext->thread()->threadID() == currentThread());
+ ASSERT(worker->thread()->threadID() == currentThread());
- V8RecursionScope recursionScope(workerContext);
- WorkerScriptController* scriptController = workerContext->script();
+ V8RecursionScope recursionScope(worker);
- if (!m_function.IsEmpty() && m_function->IsFunction()) {
+ v8::Handle<v8::Function> function = m_function.get();
+ if (!function.IsEmpty()) {
v8::HandleScope handleScope;
- v8::Handle<v8::Context> v8Context = v8::Local<v8::Context>::New(m_context.get());
- ASSERT(!v8Context.IsEmpty());
- v8::Context::Scope scope(v8Context);
- m_function->Call(v8Context->Global(), m_argc, m_argv);
+
+ v8::Handle<v8::Context> context = v8::Local<v8::Context>::New(m_context.get());
+ ASSERT(!context.IsEmpty());
+ v8::Context::Scope scope(context);
+
+ function->Call(context->Global(), m_args.size(), m_args.data());
} else
- scriptController->evaluate(m_code);
+ worker->script()->evaluate(m_code);
}
#endif
diff --git a/Source/WebCore/bindings/v8/ScheduledAction.h b/Source/WebCore/bindings/v8/ScheduledAction.h
index e3f3bb440..17ca7b41a 100644
--- a/Source/WebCore/bindings/v8/ScheduledAction.h
+++ b/Source/WebCore/bindings/v8/ScheduledAction.h
@@ -31,45 +31,42 @@
#ifndef ScheduledAction_h
#define ScheduledAction_h
-#include "OwnHandle.h"
+#include "ScopedPersistent.h"
#include "ScriptSourceCode.h"
-#include "V8GCController.h"
-#include <wtf/Forward.h>
-
#include <v8.h>
+#include <wtf/Forward.h>
+#include <wtf/Vector.h>
namespace WebCore {
- class ScriptController;
- class ScriptExecutionContext;
- class WorkerContext;
+class Frame;
+class ScriptExecutionContext;
+class WorkerContext;
+
+class ScheduledAction {
+public:
+ ScheduledAction(v8::Handle<v8::Context>, v8::Handle<v8::Function>, int argc, v8::Handle<v8::Value> argv[]);
- class ScheduledAction {
- public:
- ScheduledAction(v8::Handle<v8::Context>, v8::Handle<v8::Function>, int argc, v8::Handle<v8::Value> argv[]);
- explicit ScheduledAction(v8::Handle<v8::Context> context, const WTF::String& code, const KURL& url = KURL())
- : m_context(context)
- , m_argc(0)
- , m_argv(0)
- , m_code(code, url)
- {
- }
+ ScheduledAction(v8::Handle<v8::Context> context, const String& code, const KURL& url = KURL())
+ : m_context(context)
+ , m_code(code, url)
+ {
+ }
- virtual ~ScheduledAction();
- virtual void execute(ScriptExecutionContext*);
+ ~ScheduledAction();
+ void execute(ScriptExecutionContext*);
- private:
- void execute(ScriptController*);
+private:
+ void execute(Frame*);
#if ENABLE(WORKERS)
- void execute(WorkerContext*);
+ void execute(WorkerContext*);
#endif
- OwnHandle<v8::Context> m_context;
- v8::Persistent<v8::Function> m_function;
- int m_argc;
- v8::Persistent<v8::Value>* m_argv;
- ScriptSourceCode m_code;
- };
+ ScopedPersistent<v8::Context> m_context;
+ ScopedPersistent<v8::Function> m_function;
+ Vector<v8::Persistent<v8::Value> > m_args;
+ ScriptSourceCode m_code;
+};
} // namespace WebCore
diff --git a/Source/WebCore/bindings/v8/OwnHandle.h b/Source/WebCore/bindings/v8/ScopedPersistent.h
index 668f5d414..f5d696ccc 100644
--- a/Source/WebCore/bindings/v8/OwnHandle.h
+++ b/Source/WebCore/bindings/v8/ScopedPersistent.h
@@ -28,29 +28,31 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef OwnHandle_h
-#define OwnHandle_h
+#ifndef ScopedPersistent_h
+#define ScopedPersistent_h
#include <v8.h>
+#include <wtf/Noncopyable.h>
namespace WebCore {
template<typename T>
-class OwnHandle {
+class ScopedPersistent {
+ WTF_MAKE_NONCOPYABLE(ScopedPersistent);
public:
- OwnHandle() { }
+ ScopedPersistent() { }
- explicit OwnHandle(v8::Handle<T> handle)
+ explicit ScopedPersistent(v8::Handle<T> handle)
: m_handle(v8::Persistent<T>::New(handle))
{
}
- ~OwnHandle()
+ ~ScopedPersistent()
{
clear();
}
- v8::Handle<T> get() const { return m_handle; }
+ v8::Persistent<T> get() const { return m_handle; }
void set(v8::Handle<T> handle)
{
@@ -58,6 +60,12 @@ public:
m_handle = v8::Persistent<T>::New(handle);
}
+ void adopt(v8::Persistent<T> handle)
+ {
+ clear();
+ m_handle = handle;
+ }
+
// Note: This is clear in the OwnPtr sense, not the v8::Handle sense.
void clear()
{
@@ -73,4 +81,4 @@ private:
} // namespace WebCore
-#endif // OwnHandle_h
+#endif // ScopedPersistent_h
diff --git a/Source/WebCore/bindings/v8/ScriptController.cpp b/Source/WebCore/bindings/v8/ScriptController.cpp
index 1fb36b374..4672570e6 100644
--- a/Source/WebCore/bindings/v8/ScriptController.cpp
+++ b/Source/WebCore/bindings/v8/ScriptController.cpp
@@ -59,6 +59,7 @@
#include "V8Binding.h"
#include "V8DOMWindow.h"
#include "V8Event.h"
+#include "V8GCController.h"
#include "V8HiddenPropertyName.h"
#include "V8HTMLEmbedElement.h"
#include "V8IsolatedContext.h"
@@ -111,7 +112,6 @@ ScriptController::ScriptController(Frame* frame)
, m_sourceURL(0)
, m_windowShell(V8DOMWindowShell::create(frame))
, m_paused(false)
- , m_proxy(adoptPtr(new V8Proxy(frame)))
#if ENABLE(NETSCAPE_PLUGIN_API)
, m_wrappedWindowScriptNPObject(0)
#endif
@@ -120,6 +120,7 @@ ScriptController::ScriptController(Frame* frame)
ScriptController::~ScriptController()
{
+ windowShell()->destroyGlobal();
clearForClose();
}
@@ -193,7 +194,7 @@ bool ScriptController::processingUserGesture()
v8::Local<v8::Value> ScriptController::callFunction(v8::Handle<v8::Function> function, v8::Handle<v8::Object> receiver, int argc, v8::Handle<v8::Value> args[])
{
- // Keep Frame (and therefore ScriptController and V8Proxy) alive.
+ // Keep Frame (and therefore ScriptController) alive.
RefPtr<Frame> protect(m_frame);
return ScriptController::callFunctionWithInstrumentation(m_frame ? m_frame->document() : 0, function, receiver, argc, args);
}
@@ -647,7 +648,7 @@ NPObject* ScriptController::createScriptObjectForPluginElement(HTMLPlugInElement
void ScriptController::clearWindowShell(DOMWindow*, bool)
{
// V8 binding expects ScriptController::clearWindowShell only be called
- // when a frame is loading a new page. V8Proxy::clearForNavigation
+ // when a frame is loading a new page. ScriptController::clearForNavigation
// creates a new context for the new page.
clearForNavigation();
}
diff --git a/Source/WebCore/bindings/v8/ScriptController.h b/Source/WebCore/bindings/v8/ScriptController.h
index ca59838ac..ad9bf7116 100644
--- a/Source/WebCore/bindings/v8/ScriptController.h
+++ b/Source/WebCore/bindings/v8/ScriptController.h
@@ -31,18 +31,17 @@
#ifndef ScriptController_h
#define ScriptController_h
+#include "FrameLoaderTypes.h"
#include "ScriptControllerBase.h"
#include "ScriptInstance.h"
#include "ScriptValue.h"
-#include "V8Proxy.h"
-
#include <v8.h>
-
#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
+#include <wtf/text/TextPosition.h>
struct NPObject;
@@ -53,12 +52,25 @@ class Event;
class Frame;
class HTMLDocument;
class HTMLPlugInElement;
-class PagePopupClient;
+class KURL;
class ScriptSourceCode;
class ScriptState;
+class SecurityOrigin;
class V8DOMWindowShell;
+class V8IsolatedContext;
class Widget;
+// Note: although the pointer is raw, the instance is kept alive by a strong
+// reference to the v8 context it contains, which is not made weak until we
+// call world->destroy().
+//
+// FIXME: We want to eventually be holding window shells instead of the
+// IsolatedContext directly.
+// https://bugs.webkit.org/show_bug.cgi?id=94875
+typedef HashMap<int, V8IsolatedContext*> IsolatedWorldMap;
+
+typedef HashMap<int, RefPtr<SecurityOrigin> > IsolatedWorldSecurityOriginMap;
+
typedef WTF::Vector<v8::Extension*> V8Extensions;
class ScriptController {
@@ -66,9 +78,8 @@ public:
ScriptController(Frame*);
~ScriptController();
- // FIXME: V8Proxy should either be folded into ScriptController
- // or this accessor should be made JSProxy*
- V8Proxy* proxy() { return m_proxy.get(); }
+ // FIXME: This should eventually take DOMWrapperWorld argument.
+ // https://bugs.webkit.org/show_bug.cgi?id=94875
V8DOMWindowShell* windowShell() const { return m_windowShell.get(); }
ScriptValue executeScript(const ScriptSourceCode&);
@@ -150,11 +161,9 @@ public:
// --- and there is only one VM instance. ---
// Returns the frame for the entered context. See comments in
- // V8Proxy::retrieveFrameForEnteredContext() for more information.
static Frame* retrieveFrameForEnteredContext();
// Returns the frame for the current context. See comments in
- // V8Proxy::retrieveFrameForEnteredContext() for more information.
static Frame* retrieveFrameForCurrentContext();
// Returns V8 Context. If none exists, creates a new context.
@@ -227,7 +236,6 @@ private:
bool m_paused;
- OwnPtr<V8Proxy> m_proxy;
typedef HashMap<Widget*, NPObject*> PluginObjectMap;
// A mapping between Widgets and their corresponding script object.
diff --git a/Source/WebCore/bindings/v8/ScriptDebugServer.cpp b/Source/WebCore/bindings/v8/ScriptDebugServer.cpp
index 1455aaec4..ef1691eec 100644
--- a/Source/WebCore/bindings/v8/ScriptDebugServer.cpp
+++ b/Source/WebCore/bindings/v8/ScriptDebugServer.cpp
@@ -441,7 +441,7 @@ void ScriptDebugServer::compileScript(ScriptState* state, const String& expressi
return;
*scriptId = toWebCoreStringWithNullOrUndefinedCheck(script->Id());
- m_compiledScripts.set(*scriptId, adoptPtr(new OwnHandle<v8::Script>(script)));
+ m_compiledScripts.set(*scriptId, adoptPtr(new ScopedPersistent<v8::Script>(script)));
}
void ScriptDebugServer::clearCompiledScripts()
@@ -454,8 +454,8 @@ void ScriptDebugServer::runScript(ScriptState* state, const String& scriptId, Sc
if (!m_compiledScripts.contains(scriptId))
return;
v8::HandleScope handleScope;
- OwnHandle<v8::Script>* scriptOwnHandle = m_compiledScripts.get(scriptId);
- v8::Local<v8::Script> script = v8::Local<v8::Script>::New(scriptOwnHandle->get());
+ ScopedPersistent<v8::Script>* scriptHandle = m_compiledScripts.get(scriptId);
+ v8::Local<v8::Script> script = v8::Local<v8::Script>::New(scriptHandle->get());
m_compiledScripts.remove(scriptId);
if (script.IsEmpty())
return;
diff --git a/Source/WebCore/bindings/v8/ScriptDebugServer.h b/Source/WebCore/bindings/v8/ScriptDebugServer.h
index 4d1e65e09..244d28577 100644
--- a/Source/WebCore/bindings/v8/ScriptDebugServer.h
+++ b/Source/WebCore/bindings/v8/ScriptDebugServer.h
@@ -33,8 +33,8 @@
#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include "OwnHandle.h"
#include "PlatformString.h"
+#include "ScopedPersistent.h"
#include "ScriptBreakpoint.h"
#include "Timer.h"
#include <v8-debug.h>
@@ -125,13 +125,13 @@ protected:
v8::Local<v8::Value> callDebuggerMethod(const char* functionName, int argc, v8::Handle<v8::Value> argv[]);
PauseOnExceptionsState m_pauseOnExceptionsState;
- OwnHandle<v8::Object> m_debuggerScript;
- OwnHandle<v8::Object> m_executionState;
+ ScopedPersistent<v8::Object> m_debuggerScript;
+ ScopedPersistent<v8::Object> m_executionState;
v8::Local<v8::Context> m_pausedContext;
bool m_breakpointsActivated;
- OwnHandle<v8::FunctionTemplate> m_breakProgramCallbackTemplate;
- HashMap<String, OwnPtr<OwnHandle<v8::Script> > > m_compiledScripts;
+ ScopedPersistent<v8::FunctionTemplate> m_breakProgramCallbackTemplate;
+ HashMap<String, OwnPtr<ScopedPersistent<v8::Script> > > m_compiledScripts;
};
} // namespace WebCore
diff --git a/Source/WebCore/bindings/v8/ScriptInstance.cpp b/Source/WebCore/bindings/v8/ScriptInstance.cpp
index 1f407d0f5..e62fb7d7a 100644
--- a/Source/WebCore/bindings/v8/ScriptInstance.cpp
+++ b/Source/WebCore/bindings/v8/ScriptInstance.cpp
@@ -31,51 +31,11 @@
#include "config.h"
#include "ScriptInstance.h"
-#include "V8GCController.h"
-#include <wtf/Assertions.h>
-
namespace WebCore {
-V8ScriptInstance::V8ScriptInstance()
-{
-}
-
V8ScriptInstance::V8ScriptInstance(v8::Handle<v8::Object> instance)
+ : m_instance(instance)
{
- set(instance);
-}
-
-V8ScriptInstance::~V8ScriptInstance()
-{
- clear();
-}
-
-v8::Persistent<v8::Object> V8ScriptInstance::instance()
-{
- return m_instance;
-}
-
-void V8ScriptInstance::clear()
-{
- if (m_instance.IsEmpty())
- return;
-#ifndef NDEBUG
- V8GCController::unregisterGlobalHandle(this, m_instance);
-#endif
- m_instance.Dispose();
- m_instance.Clear();
-}
-
-void V8ScriptInstance::set(v8::Handle<v8::Object> instance)
-{
- clear();
- if (instance.IsEmpty())
- return;
-
- m_instance = v8::Persistent<v8::Object>::New(instance);
-#ifndef NDEBUG
- V8GCController::registerGlobalHandle(SCRIPTINSTANCE, this, m_instance);
-#endif
}
} // namespace WebCore
diff --git a/Source/WebCore/bindings/v8/ScriptInstance.h b/Source/WebCore/bindings/v8/ScriptInstance.h
index 2fe37364f..7f6438799 100644
--- a/Source/WebCore/bindings/v8/ScriptInstance.h
+++ b/Source/WebCore/bindings/v8/ScriptInstance.h
@@ -31,8 +31,8 @@
#ifndef ScriptInstance_h
#define ScriptInstance_h
+#include "ScopedPersistent.h"
#include <v8.h>
-
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
@@ -41,19 +41,14 @@ namespace WebCore {
class V8ScriptInstance : public RefCounted<V8ScriptInstance> {
public:
- static PassRefPtr<V8ScriptInstance> create(v8::Handle<v8::Object> instance)
- {
- return adoptRef(new V8ScriptInstance(instance));
- }
- V8ScriptInstance();
- V8ScriptInstance(v8::Handle<v8::Object>);
- ~V8ScriptInstance();
- v8::Persistent<v8::Object> instance();
+ static PassRefPtr<V8ScriptInstance> create(v8::Handle<v8::Object> instance) { return adoptRef(new V8ScriptInstance(instance)); }
+
+ v8::Persistent<v8::Object> instance() { return m_instance.get(); }
private:
- void clear();
- void set(v8::Handle<v8::Object>);
- mutable v8::Persistent<v8::Object> m_instance;
+ explicit V8ScriptInstance(v8::Handle<v8::Object>);
+
+ ScopedPersistent<v8::Object> m_instance;
};
typedef RefPtr<V8ScriptInstance> ScriptInstance;
diff --git a/Source/WebCore/bindings/v8/ScriptState.cpp b/Source/WebCore/bindings/v8/ScriptState.cpp
index a975b14c5..8a0580bcd 100644
--- a/Source/WebCore/bindings/v8/ScriptState.cpp
+++ b/Source/WebCore/bindings/v8/ScriptState.cpp
@@ -41,76 +41,53 @@
#include "WorkerContext.h"
#include "WorkerContextExecutionProxy.h"
#include "WorkerScriptController.h"
-
#include <v8.h>
#include <wtf/Assertions.h>
namespace WebCore {
ScriptState::ScriptState(v8::Handle<v8::Context> context)
- : m_context(v8::Persistent<v8::Context>::New(context))
+ : m_context(context)
{
- m_context.MakeWeak(this, &ScriptState::weakReferenceCallback);
+ m_context.get().MakeWeak(this, &ScriptState::weakReferenceCallback);
}
ScriptState::~ScriptState()
{
- m_context.Dispose();
- m_context.Clear();
}
DOMWindow* ScriptState::domWindow() const
{
v8::HandleScope handleScope;
- v8::Handle<v8::Object> v8RealGlobal = v8::Handle<v8::Object>::Cast(m_context->Global()->GetPrototype());
- if (!V8DOMWrapper::isWrapperOfType(v8RealGlobal, &V8DOMWindow::info))
- return 0;
- return V8DOMWindow::toNative(v8RealGlobal);
+ return toDOMWindow(m_context.get());
}
ScriptExecutionContext* ScriptState::scriptExecutionContext() const
{
v8::HandleScope handleScope;
-
- v8::Handle<v8::Object> global = m_context->Global();
- v8::Handle<v8::Object> v8RealGlobal = v8::Handle<v8::Object>::Cast(global->GetPrototype());
- if (V8DOMWrapper::isWrapperOfType(v8RealGlobal, &V8DOMWindow::info))
- return V8DOMWindow::toNative(v8RealGlobal)->scriptExecutionContext();
-#if ENABLE(WORKERS)
- global = V8DOMWrapper::lookupDOMWrapper(V8WorkerContext::GetTemplate(), global);
- if (!global.IsEmpty())
- return V8WorkerContext::toNative(global)->scriptExecutionContext();
-#endif
- return 0;
+ return toScriptExecutionContext(m_context.get());
}
ScriptState* ScriptState::forContext(v8::Local<v8::Context> context)
{
v8::Context::Scope contextScope(context);
- v8::Local<v8::Object> global = context->Global();
- // Skip proxy object. The proxy object will survive page navigation while we need
- // an object whose lifetime coincides with that of the inspected context.
- global = v8::Local<v8::Object>::Cast(global->GetPrototype());
+ v8::Local<v8::Object> innerGlobal = v8::Local<v8::Object>::Cast(context->Global()->GetPrototype());
- v8::Handle<v8::String> key = V8HiddenPropertyName::scriptState();
- v8::Local<v8::Value> val = global->GetHiddenValue(key);
- if (!val.IsEmpty() && val->IsExternal())
- return static_cast<ScriptState*>(v8::External::Cast(*val)->Value());
+ v8::Local<v8::Value> scriptStateWrapper = innerGlobal->GetHiddenValue(V8HiddenPropertyName::scriptState());
+ if (!scriptStateWrapper.IsEmpty() && scriptStateWrapper->IsExternal())
+ return static_cast<ScriptState*>(v8::External::Cast(*scriptStateWrapper)->Value());
- ScriptState* state = new ScriptState(context);
- global->SetHiddenValue(key, v8::External::New(state));
- return state;
+ ScriptState* scriptState = new ScriptState(context);
+ innerGlobal->SetHiddenValue(V8HiddenPropertyName::scriptState(), v8::External::New(scriptState));
+ return scriptState;
}
ScriptState* ScriptState::current()
{
v8::HandleScope handleScope;
v8::Local<v8::Context> context = v8::Context::GetCurrent();
- if (context.IsEmpty()) {
- ASSERT_NOT_REACHED();
- return 0;
- }
+ ASSERT(!context.IsEmpty());
return ScriptState::forContext(context);
}
diff --git a/Source/WebCore/bindings/v8/ScriptState.h b/Source/WebCore/bindings/v8/ScriptState.h
index 009886a17..f59aa8da0 100644
--- a/Source/WebCore/bindings/v8/ScriptState.h
+++ b/Source/WebCore/bindings/v8/ScriptState.h
@@ -32,11 +32,13 @@
#define ScriptState_h
#include "DOMWrapperWorld.h"
+#include "ScopedPersistent.h"
#include <v8.h>
#include <wtf/Noncopyable.h>
#include <wtf/RefCounted.h>
namespace WebCore {
+
class DOMWindow;
class DOMWrapperWorld;
class Frame;
@@ -57,7 +59,7 @@ public:
v8::Local<v8::Context> context() const
{
- return v8::Local<v8::Context>::New(m_context);
+ return v8::Local<v8::Context>::New(m_context.get());
}
DOMWindow* domWindow() const;
@@ -77,7 +79,7 @@ private:
static void weakReferenceCallback(v8::Persistent<v8::Value> object, void* parameter);
v8::Local<v8::Value> m_exception;
- v8::Persistent<v8::Context> m_context;
+ ScopedPersistent<v8::Context> m_context;
};
class EmptyScriptState : public ScriptState {
@@ -89,24 +91,24 @@ public:
class ScriptStateProtectedPtr {
WTF_MAKE_NONCOPYABLE(ScriptStateProtectedPtr);
public:
- ScriptStateProtectedPtr() : m_scriptState(0) { }
- ScriptStateProtectedPtr(ScriptState* scriptState) : m_scriptState(scriptState)
+ ScriptStateProtectedPtr()
+ : m_scriptState(0)
{
- v8::HandleScope handleScope;
- // Keep the context from being GC'ed. ScriptState is guaranteed to be live while the context is live.
- m_context = v8::Persistent<v8::Context>::New(scriptState->context());
}
- ~ScriptStateProtectedPtr()
+
+ ScriptStateProtectedPtr(ScriptState* scriptState)
+ : m_scriptState(scriptState)
{
- if (!m_context.IsEmpty()) {
- m_context.Dispose();
- m_context.Clear();
- }
+ v8::HandleScope handleScope;
+ // Keep the context from being GC'ed. ScriptState is guaranteed to be live while the context is live.
+ m_context.set(scriptState->context());
}
+
ScriptState* get() const { return m_scriptState; }
+
private:
ScriptState* m_scriptState;
- v8::Persistent<v8::Context> m_context;
+ ScopedPersistent<v8::Context> m_context;
};
DOMWindow* domWindowFromScriptState(ScriptState*);
diff --git a/Source/WebCore/bindings/v8/ScriptValue.cpp b/Source/WebCore/bindings/v8/ScriptValue.cpp
index 31bcd23ee..1c48fdfc6 100644
--- a/Source/WebCore/bindings/v8/ScriptValue.cpp
+++ b/Source/WebCore/bindings/v8/ScriptValue.cpp
@@ -40,14 +40,17 @@
namespace WebCore {
+ScriptValue::~ScriptValue()
+{
+}
+
PassRefPtr<SerializedScriptValue> ScriptValue::serialize(ScriptState* scriptState)
{
ScriptScope scope(scriptState);
return SerializedScriptValue::create(v8Value());
}
-PassRefPtr<SerializedScriptValue> ScriptValue::serialize(ScriptState* scriptState,
- MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers, bool& didThrow)
+PassRefPtr<SerializedScriptValue> ScriptValue::serialize(ScriptState* scriptState, MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers, bool& didThrow)
{
ScriptScope scope(scriptState);
return SerializedScriptValue::create(v8Value(), messagePorts, arrayBuffers, didThrow);
@@ -61,24 +64,23 @@ ScriptValue ScriptValue::deserialize(ScriptState* scriptState, SerializedScriptV
bool ScriptValue::getString(String& result) const
{
- if (m_value.IsEmpty())
+ if (m_value.get().IsEmpty())
return false;
- if (!m_value->IsString())
+ if (!m_value.get()->IsString())
return false;
- result = toWebCoreString(m_value);
+ result = toWebCoreString(m_value.get());
return true;
}
String ScriptValue::toString(ScriptState*) const
{
v8::TryCatch block;
- v8::Handle<v8::String> s = m_value->ToString();
- // Handle the case where an exception is thrown as part of invoking toString on the object.
+ v8::Handle<v8::String> string = m_value.get()->ToString();
if (block.HasCaught())
return String();
- return v8StringToWebCoreString<String>(s, DoNotExternalize);
+ return v8StringToWebCoreString<String>(string, DoNotExternalize);
}
#if ENABLE(INSPECTOR)
@@ -140,7 +142,7 @@ PassRefPtr<InspectorValue> ScriptValue::toInspectorValue(ScriptState* scriptStat
v8::HandleScope handleScope;
// v8::Object::GetPropertyNames() expects current context to be not null.
v8::Context::Scope contextScope(scriptState->context());
- return v8ToInspectorValue(m_value, InspectorValue::maxDepth);
+ return v8ToInspectorValue(m_value.get(), InspectorValue::maxDepth);
}
#endif
diff --git a/Source/WebCore/bindings/v8/ScriptValue.h b/Source/WebCore/bindings/v8/ScriptValue.h
index 0f489afbe..70dbff0dd 100644
--- a/Source/WebCore/bindings/v8/ScriptValue.h
+++ b/Source/WebCore/bindings/v8/ScriptValue.h
@@ -31,17 +31,17 @@
#ifndef ScriptValue_h
#define ScriptValue_h
-#include "PlatformString.h"
+#include "ScopedPersistent.h"
#include "ScriptState.h"
-
#include <v8.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
+#include <wtf/text/WTFString.h>
-#ifndef NDEBUG
-#include "V8GCController.h"
-#endif
+#ifndef NDEBUG
+#include "V8GCController.h"
+#endif
namespace WTF {
class ArrayBuffer;
@@ -57,28 +57,21 @@ typedef Vector<RefPtr<WTF::ArrayBuffer>, 1> ArrayBufferArray;
class ScriptValue {
public:
- ScriptValue() {}
+ ScriptValue() { }
+ virtual ~ScriptValue();
ScriptValue(v8::Handle<v8::Value> value)
{
if (value.IsEmpty())
return;
-
- m_value = v8::Persistent<v8::Value>::New(value);
-#ifndef NDEBUG
- V8GCController::registerGlobalHandle(SCRIPTVALUE, this, m_value);
-#endif
+ m_value.set(value);
}
ScriptValue(const ScriptValue& value)
{
- if (value.m_value.IsEmpty())
+ if (value.hasNoValue())
return;
-
- m_value = v8::Persistent<v8::Value>::New(value.m_value);
-#ifndef NDEBUG
- V8GCController::registerGlobalHandle(SCRIPTVALUE, this, m_value);
-#endif
+ m_value.set(value.m_value.get());
}
ScriptValue& operator=(const ScriptValue& value)
@@ -86,32 +79,28 @@ public:
if (this == &value)
return *this;
- clear();
+ m_value.clear();
- if (value.m_value.IsEmpty())
+ if (value.hasNoValue())
return *this;
- m_value = v8::Persistent<v8::Value>::New(value.m_value);
-#ifndef NDEBUG
- V8GCController::registerGlobalHandle(SCRIPTVALUE, this, m_value);
-#endif
-
+ m_value.set(value.m_value.get());
return *this;
}
bool operator==(const ScriptValue& value) const
{
- return m_value == value.m_value;
+ return m_value.get() == value.m_value.get();
}
bool isEqual(ScriptState*, const ScriptValue& value) const
{
- return m_value == value.m_value;
+ return m_value.get() == value.m_value.get();
}
bool isFunction() const
{
- return m_value->IsFunction();
+ return m_value.get()->IsFunction();
}
bool operator!=(const ScriptValue& value) const
@@ -121,22 +110,22 @@ public:
bool isNull() const
{
- return m_value->IsNull();
+ return m_value.get()->IsNull();
}
bool isUndefined() const
{
- return m_value->IsUndefined();
+ return m_value.get()->IsUndefined();
}
bool isObject() const
{
- return m_value->IsObject();
+ return m_value.get()->IsObject();
}
bool hasNoValue() const
{
- return m_value.IsEmpty();
+ return m_value.get().IsEmpty();
}
PassRefPtr<SerializedScriptValue> serialize(ScriptState*);
@@ -145,22 +134,11 @@ public:
void clear()
{
- if (m_value.IsEmpty())
- return;
-
-#ifndef NDEBUG
- V8GCController::unregisterGlobalHandle(this, m_value);
-#endif
- m_value.Dispose();
- m_value.Clear();
+ m_value.clear();
}
- virtual ~ScriptValue()
- {
- clear();
- }
+ v8::Handle<v8::Value> v8Value() const { return m_value.get(); }
- v8::Handle<v8::Value> v8Value() const { return m_value; }
bool getString(ScriptState*, String& result) const { return getString(result); }
bool getString(String& result) const;
String toString(ScriptState*) const;
@@ -168,7 +146,7 @@ public:
PassRefPtr<InspectorValue> toInspectorValue(ScriptState*) const;
private:
- mutable v8::Persistent<v8::Value> m_value;
+ ScopedPersistent<v8::Value> m_value;
};
} // namespace WebCore
diff --git a/Source/WebCore/bindings/v8/V8AbstractEventListener.cpp b/Source/WebCore/bindings/v8/V8AbstractEventListener.cpp
index 04f399163..0d2115276 100644
--- a/Source/WebCore/bindings/v8/V8AbstractEventListener.cpp
+++ b/Source/WebCore/bindings/v8/V8AbstractEventListener.cpp
@@ -47,10 +47,10 @@
namespace WebCore {
-static void weakEventListenerCallback(v8::Persistent<v8::Value>, void* parameter)
+void V8AbstractEventListener::weakEventListenerCallback(v8::Persistent<v8::Value>, void* parameter)
{
V8AbstractEventListener* listener = static_cast<V8AbstractEventListener*>(parameter);
- listener->disposeListenerObject();
+ listener->m_listener.clear();
}
V8AbstractEventListener::V8AbstractEventListener(bool isAttribute, const WorldContextHandle& worldContext)
@@ -65,12 +65,10 @@ V8AbstractEventListener::V8AbstractEventListener(bool isAttribute, const WorldCo
V8AbstractEventListener::~V8AbstractEventListener()
{
- if (!m_listener.IsEmpty()) {
+ if (!m_listener.get().IsEmpty()) {
v8::HandleScope scope;
- v8::Local<v8::Object> listener = v8::Local<v8::Object>::New(m_listener);
- V8EventListenerList::clearWrapper(listener, m_isAttribute);
+ V8EventListenerList::clearWrapper(v8::Local<v8::Object>::New(m_listener.get()), m_isAttribute);
}
- disposeListenerObject();
#if ENABLE(INSPECTOR)
ThreadLocalInspectorCounters::current().decrementCounter(ThreadLocalInspectorCounters::JSEventListenerCounter);
#endif
@@ -104,25 +102,10 @@ void V8AbstractEventListener::handleEvent(ScriptExecutionContext* context, Event
invokeEventHandler(context, event, jsEvent);
}
-void V8AbstractEventListener::disposeListenerObject()
-{
- if (!m_listener.IsEmpty()) {
-#ifndef NDEBUG
- V8GCController::unregisterGlobalHandle(this, m_listener);
-#endif
- m_listener.Dispose();
- m_listener.Clear();
- }
-}
-
void V8AbstractEventListener::setListenerObject(v8::Handle<v8::Object> listener)
{
- disposeListenerObject();
- m_listener = v8::Persistent<v8::Object>::New(listener);
-#ifndef NDEBUG
- V8GCController::registerGlobalHandle(EVENT_LISTENER, this, m_listener);
-#endif
- m_listener.MakeWeak(this, &weakEventListenerCallback);
+ m_listener.set(listener);
+ m_listener.get().MakeWeak(this, &V8AbstractEventListener::weakEventListenerCallback);
}
void V8AbstractEventListener::invokeEventHandler(ScriptExecutionContext* context, Event* event, v8::Handle<v8::Value> jsEvent)
@@ -201,8 +184,8 @@ bool V8AbstractEventListener::shouldPreventDefault(v8::Local<v8::Value> returnVa
v8::Local<v8::Object> V8AbstractEventListener::getReceiverObject(Event* event)
{
- if (!m_listener.IsEmpty() && !m_listener->IsFunction())
- return v8::Local<v8::Object>::New(m_listener);
+ if (!m_listener.get().IsEmpty() && !m_listener.get()->IsFunction())
+ return v8::Local<v8::Object>::New(m_listener.get());
EventTarget* target = event->currentTarget();
v8::Handle<v8::Value> value = V8DOMWrapper::convertEventTargetToV8Object(target);
diff --git a/Source/WebCore/bindings/v8/V8AbstractEventListener.h b/Source/WebCore/bindings/v8/V8AbstractEventListener.h
index 672ba6dba..19a37e0a7 100644
--- a/Source/WebCore/bindings/v8/V8AbstractEventListener.h
+++ b/Source/WebCore/bindings/v8/V8AbstractEventListener.h
@@ -32,8 +32,8 @@
#define V8AbstractEventListener_h
#include "EventListener.h"
+#include "ScopedPersistent.h"
#include "WorldContextHandle.h"
-
#include <v8.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -41,8 +41,6 @@
namespace WebCore {
class Event;
- class Frame;
- class V8Proxy;
// There are two kinds of event listeners: HTML or non-HMTL. onload,
// onfocus, etc (attributes) are always HTML event handler type; Event
@@ -80,29 +78,26 @@ namespace WebCore {
v8::Local<v8::Object> getListenerObject(ScriptExecutionContext* context)
{
prepareListenerObject(context);
- return v8::Local<v8::Object>::New(m_listener);
+ return v8::Local<v8::Object>::New(m_listener.get());
}
v8::Local<v8::Object> getExistingListenerObject()
{
- return v8::Local<v8::Object>::New(m_listener);
+ return v8::Local<v8::Object>::New(m_listener.get());
}
// Provides access to the underlying handle for GC. Returned
// value is a weak handle and so not guaranteed to stay alive.
v8::Persistent<v8::Object> existingListenerObjectPersistentHandle()
{
- return m_listener;
+ return m_listener.get();
}
bool hasExistingListenerObject()
{
- return !m_listener.IsEmpty();
+ return !m_listener.get().IsEmpty();
}
- // Dispose listener object and clear the handle.
- void disposeListenerObject();
-
const WorldContextHandle& worldContext() const { return m_worldContext; }
protected:
@@ -118,6 +113,8 @@ namespace WebCore {
v8::Local<v8::Object> getReceiverObject(Event*);
private:
+ static void weakEventListenerCallback(v8::Persistent<v8::Value>, void* parameter);
+
// Implementation of EventListener function.
virtual bool virtualisAttribute() const { return m_isAttribute; }
@@ -125,7 +122,7 @@ namespace WebCore {
virtual bool shouldPreventDefault(v8::Local<v8::Value> returnValue);
- v8::Persistent<v8::Object> m_listener;
+ ScopedPersistent<v8::Object> m_listener;
// Indicates if this is an HTML type listener.
bool m_isAttribute;
diff --git a/Source/WebCore/bindings/v8/V8Binding.cpp b/Source/WebCore/bindings/v8/V8Binding.cpp
index bf57f8286..acd043aa5 100644
--- a/Source/WebCore/bindings/v8/V8Binding.cpp
+++ b/Source/WebCore/bindings/v8/V8Binding.cpp
@@ -37,17 +37,19 @@
#include "Frame.h"
#include "MemoryInstrumentation.h"
#include "PlatformString.h"
+#include "PlatformSupport.h"
#include "QualifiedName.h"
#include "Settings.h"
#include "V8DOMStringList.h"
#include "V8DOMWindow.h"
#include "V8Element.h"
#include "V8ObjectConstructor.h"
+#include "V8WorkerContext.h"
#include "V8XPathNSResolver.h"
#include "WorkerContext.h"
#include "WorkerContextExecutionProxy.h"
+#include "WorldContextHandle.h"
#include "XPathNSResolver.h"
-
#include <wtf/MathExtras.h>
#include <wtf/MainThread.h>
#include <wtf/StdLibExtras.h>
@@ -261,6 +263,21 @@ DOMWindow* toDOMWindow(v8::Handle<v8::Context> context)
return V8DOMWindow::toNative(global);
}
+ScriptExecutionContext* toScriptExecutionContext(v8::Handle<v8::Context> context)
+{
+ v8::Handle<v8::Object> global = context->Global();
+ v8::Handle<v8::Object> windowWrapper = V8DOMWrapper::lookupDOMWrapper(V8DOMWindow::GetTemplate(), global);
+ if (!windowWrapper.IsEmpty())
+ return V8DOMWindow::toNative(windowWrapper)->scriptExecutionContext();
+#if ENABLE(WORKERS)
+ v8::Handle<v8::Object> workerWrapper = V8DOMWrapper::lookupDOMWrapper(V8WorkerContext::GetTemplate(), global);
+ if (!workerWrapper.IsEmpty())
+ return V8WorkerContext::toNative(workerWrapper)->scriptExecutionContext();
+#endif
+ // FIXME: Is this line of code reachable?
+ return 0;
+}
+
Frame* toFrameIfNotDetached(v8::Handle<v8::Context> context)
{
DOMWindow* window = toDOMWindow(context);
diff --git a/Source/WebCore/bindings/v8/V8Binding.h b/Source/WebCore/bindings/v8/V8Binding.h
index 2333cede0..c8f31b28c 100644
--- a/Source/WebCore/bindings/v8/V8Binding.h
+++ b/Source/WebCore/bindings/v8/V8Binding.h
@@ -353,8 +353,8 @@ namespace WebCore {
PassRefPtr<DOMStringList> toDOMStringList(v8::Handle<v8::Value>);
PassRefPtr<XPathNSResolver> toXPathNSResolver(v8::Handle<v8::Value>);
- // Returns the window object associated with a context.
DOMWindow* toDOMWindow(v8::Handle<v8::Context>);
+ ScriptExecutionContext* toScriptExecutionContext(v8::Handle<v8::Context>);
// Returns the context associated with a ScriptExecutionContext.
v8::Local<v8::Context> toV8Context(ScriptExecutionContext*, const WorldContextHandle&);
diff --git a/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp b/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp
index 3e6a78e24..4d87e72e1 100644
--- a/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp
+++ b/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp
@@ -54,6 +54,7 @@
#include "V8DOMMap.h"
#include "V8DOMWindow.h"
#include "V8Document.h"
+#include "V8GCController.h"
#include "V8GCForContextDispose.h"
#include "V8HTMLDocument.h"
#include "V8HiddenPropertyName.h"
@@ -93,7 +94,7 @@ static void reportFatalErrorInV8(const char* location, const char* message)
{
// V8 is shutdown, we cannot use V8 api.
// The only thing we can do is to disable JavaScript.
- // FIXME: clean up V8Proxy and disable JavaScript.
+ // FIXME: clean up ScriptController and disable JavaScript.
int memoryUsageMB = -1;
#if PLATFORM(CHROMIUM)
memoryUsageMB = MemoryUsageSupport::actualMemoryUsageMB();
@@ -158,6 +159,31 @@ static void reportUnsafeJavaScriptAccess(v8::Local<v8::Object> host, v8::AccessT
targetWindow->printErrorMessage(targetWindow->crossDomainAccessErrorMessage(activeDOMWindow(BindingState::instance())));
}
+static void initializeV8IfNeeded()
+{
+ ASSERT(isMainThread());
+
+ static bool initialized = false;
+ if (initialized)
+ return;
+ initialized = true;
+
+ v8::V8::IgnoreOutOfMemoryException();
+ v8::V8::SetFatalErrorHandler(reportFatalErrorInV8);
+ v8::V8::SetGlobalGCPrologueCallback(&V8GCController::gcPrologue);
+ v8::V8::SetGlobalGCEpilogueCallback(&V8GCController::gcEpilogue);
+ v8::V8::AddMessageListener(&v8UncaughtExceptionHandler);
+ v8::V8::SetFailedAccessCheckCallbackFunction(reportUnsafeJavaScriptAccess);
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+ ScriptProfiler::initialize();
+#endif
+ V8PerIsolateData::ensureInitialized(v8::Isolate::GetCurrent());
+
+ // FIXME: Remove the following 2 lines when V8 default has changed.
+ const char es5ReadonlyFlag[] = "--es5_readonly";
+ v8::V8::SetFlagsFromString(es5ReadonlyFlag, sizeof(es5ReadonlyFlag));
+}
+
PassRefPtr<V8DOMWindowShell> V8DOMWindowShell::create(Frame* frame)
{
return adoptRef(new V8DOMWindowShell(frame));
@@ -172,16 +198,15 @@ bool V8DOMWindowShell::isContextInitialized()
{
// m_context, m_global, and m_wrapperBoilerplates should
// all be non-empty if if m_context is non-empty.
- ASSERT(m_context.IsEmpty() || !m_global.IsEmpty());
- return !m_context.IsEmpty();
+ ASSERT(m_context.get().IsEmpty() || !m_global.get().IsEmpty());
+ return !m_context.get().IsEmpty();
}
void V8DOMWindowShell::disposeContextHandles()
{
- if (!m_context.IsEmpty()) {
- m_frame->loader()->client()->willReleaseScriptContext(m_context, 0);
- m_context.Dispose();
- m_context.Clear();
+ if (!m_context.get().IsEmpty()) {
+ m_frame->loader()->client()->willReleaseScriptContext(m_context.get(), 0);
+ m_context.clear();
// It's likely that disposing the context has created a lot of
// garbage. Notify V8 about this so it'll have a chance of cleaning
@@ -195,48 +220,40 @@ void V8DOMWindowShell::disposeContextHandles()
void V8DOMWindowShell::destroyGlobal()
{
- if (!m_global.IsEmpty()) {
-#ifndef NDEBUG
- V8GCController::unregisterGlobalHandle(this, m_global);
-#endif
- m_global.Dispose();
- m_global.Clear();
- }
+ m_global.clear();
}
void V8DOMWindowShell::clearForClose()
{
- if (!m_context.IsEmpty()) {
- v8::HandleScope handleScope;
+ if (m_context.get().IsEmpty())
+ return;
- clearDocumentWrapper();
- disposeContextHandles();
- }
+ v8::HandleScope handleScope;
+ clearDocumentWrapper();
+ disposeContextHandles();
}
void V8DOMWindowShell::clearForNavigation()
{
- if (!m_context.IsEmpty()) {
- v8::HandleScope handle;
- clearDocumentWrapper();
-
- v8::Context::Scope contextScope(m_context);
+ if (m_context.get().IsEmpty())
+ return;
- // Clear the document wrapper cache before turning on access checks on
- // the old DOMWindow wrapper. This way, access to the document wrapper
- // will be protected by the security checks on the DOMWindow wrapper.
- clearDocumentWrapperCache();
+ v8::HandleScope handleScope;
+ clearDocumentWrapper();
- // Turn on access check on the old DOMWindow wrapper.
- v8::Handle<v8::Object> wrapper = V8DOMWrapper::lookupDOMWrapper(V8DOMWindow::GetTemplate(), m_global);
- ASSERT(!wrapper.IsEmpty());
- wrapper->TurnOnAccessCheck();
+ // FIXME: Should we create a new Local handle here?
+ v8::Context::Scope contextScope(m_context.get());
- // Separate the context from its global object.
- m_context->DetachGlobal();
+ // Clear the document wrapper cache before turning on access checks on
+ // the old DOMWindow wrapper. This way, access to the document wrapper
+ // will be protected by the security checks on the DOMWindow wrapper.
+ clearDocumentWrapperCache();
- disposeContextHandles();
- }
+ v8::Handle<v8::Object> windowWrapper = V8DOMWrapper::lookupDOMWrapper(V8DOMWindow::GetTemplate(), m_global.get());
+ ASSERT(!windowWrapper.IsEmpty());
+ windowWrapper->TurnOnAccessCheck();
+ m_context.get()->DetachGlobal();
+ disposeContextHandles();
}
// Create a new environment and setup the global object.
@@ -276,67 +293,35 @@ void V8DOMWindowShell::clearForNavigation()
// it won't be able to reach the outer window via its global object.
bool V8DOMWindowShell::initContextIfNeeded()
{
- // Bail out if the context has already been initialized.
- if (!m_context.IsEmpty())
+ if (!m_context.get().IsEmpty())
return true;
- // Create a handle scope for all local handles.
v8::HandleScope handleScope;
- // Setup the security handlers and message listener. This only has
- // to be done once.
- static bool isV8Initialized = false;
- if (!isV8Initialized) {
- // Tells V8 not to call the default OOM handler, binding code
- // will handle it.
- v8::V8::IgnoreOutOfMemoryException();
- v8::V8::SetFatalErrorHandler(reportFatalErrorInV8);
-
- v8::V8::SetGlobalGCPrologueCallback(&V8GCController::gcPrologue);
- v8::V8::SetGlobalGCEpilogueCallback(&V8GCController::gcEpilogue);
-
- v8::V8::AddMessageListener(&v8UncaughtExceptionHandler);
-
- v8::V8::SetFailedAccessCheckCallbackFunction(reportUnsafeJavaScriptAccess);
-#if ENABLE(JAVASCRIPT_DEBUGGER)
- ScriptProfiler::initialize();
-#endif
- V8PerIsolateData::ensureInitialized(v8::Isolate::GetCurrent());
-
- // FIXME: Remove the following 2 lines when V8 default has changed.
- const char es5ReadonlyFlag[] = "--es5_readonly";
- v8::V8::SetFlagsFromString(es5ReadonlyFlag, sizeof(es5ReadonlyFlag));
+ initializeV8IfNeeded();
- isV8Initialized = true;
- }
-
- m_context = createNewContext(m_global, 0, 0);
- if (m_context.IsEmpty())
+ m_context.adopt(createNewContext(m_global.get(), 0, 0));
+ if (m_context.get().IsEmpty())
return false;
- v8::Local<v8::Context> v8Context = v8::Local<v8::Context>::New(m_context);
- v8::Context::Scope contextScope(v8Context);
+ v8::Local<v8::Context> context = v8::Local<v8::Context>::New(m_context.get());
+ v8::Context::Scope contextScope(context);
- // Store the first global object created so we can reuse it.
- if (m_global.IsEmpty()) {
- m_global = v8::Persistent<v8::Object>::New(v8Context->Global());
- // Bail out if allocation of the first global objects fails.
- if (m_global.IsEmpty()) {
+ if (m_global.get().IsEmpty()) {
+ m_global.set(context->Global());
+ if (m_global.get().IsEmpty()) {
disposeContextHandles();
return false;
}
-#ifndef NDEBUG
- V8GCController::registerGlobalHandle(PROXY, this, m_global);
-#endif
}
- m_perContextData = V8PerContextData::create(m_context);
+ m_perContextData = V8PerContextData::create(m_context.get());
if (!m_perContextData->init()) {
disposeContextHandles();
return false;
}
- if (!installDOMWindow(v8Context, m_frame->document()->domWindow())) {
+ if (!installDOMWindow(context, m_frame->document()->domWindow())) {
disposeContextHandles();
return false;
}
@@ -346,9 +331,9 @@ bool V8DOMWindowShell::initContextIfNeeded()
setSecurityToken();
if (m_frame->document())
- v8Context->AllowCodeGenerationFromStrings(m_frame->document()->contentSecurityPolicy()->allowEval(0, ContentSecurityPolicy::SuppressReport));
+ context->AllowCodeGenerationFromStrings(m_frame->document()->contentSecurityPolicy()->allowEval(0, ContentSecurityPolicy::SuppressReport));
- m_frame->loader()->client()->didCreateScriptContext(m_context, 0, 0);
+ m_frame->loader()->client()->didCreateScriptContext(m_context.get(), 0, 0);
// FIXME: This is wrong. We should actually do this for the proper world once
// we do isolated worlds the WebCore way.
@@ -400,12 +385,7 @@ v8::Persistent<v8::Context> V8DOMWindowShell::createNewContext(v8::Handle<v8::Ob
void V8DOMWindowShell::setContext(v8::Handle<v8::Context> context)
{
- // if we already have a context, clear it before setting the new one.
- if (!m_context.IsEmpty()) {
- m_context.Dispose();
- m_context.Clear();
- }
- m_context = v8::Persistent<v8::Context>::New(context);
+ m_context.set(context);
}
bool V8DOMWindowShell::installDOMWindow(v8::Handle<v8::Context> context, DOMWindow* window)
@@ -435,22 +415,13 @@ void V8DOMWindowShell::updateDocumentWrapper(v8::Handle<v8::Object> wrapper)
{
clearDocumentWrapper();
- ASSERT(m_document.IsEmpty());
- m_document = v8::Persistent<v8::Object>::New(wrapper);
-#ifndef NDEBUG
- V8GCController::registerGlobalHandle(PROXY, this, m_document);
-#endif
+ ASSERT(m_document.get().IsEmpty());
+ m_document.set(wrapper);
}
void V8DOMWindowShell::clearDocumentWrapper()
{
- if (!m_document.IsEmpty()) {
-#ifndef NDEBUG
- V8GCController::unregisterGlobalHandle(this, m_document);
-#endif
- m_document.Dispose();
- m_document.Clear();
- }
+ m_document.clear();
}
static void checkDocumentWrapper(v8::Handle<v8::Object> wrapper, Document* document)
@@ -462,7 +433,8 @@ static void checkDocumentWrapper(v8::Handle<v8::Object> wrapper, Document* docum
void V8DOMWindowShell::updateDocumentWrapperCache()
{
v8::HandleScope handleScope;
- v8::Context::Scope contextScope(m_context);
+ // FIXME: Should we use a new Local handle here?
+ v8::Context::Scope contextScope(m_context.get());
// If the document has no frame, NodeToV8Object might get the
// document wrapper for a document that is about to be deleted.
@@ -471,16 +443,17 @@ void V8DOMWindowShell::updateDocumentWrapperCache()
// wrapper cleared. Using the cleared global handle will lead to
// crashes. In this case we clear the cache and let the DOMWindow
// accessor handle access to the document.
+ // FIXME: This should not be possible anymore.
if (!m_frame->document()->frame()) {
clearDocumentWrapperCache();
return;
}
v8::Handle<v8::Value> documentWrapper = toV8(m_frame->document());
- ASSERT(documentWrapper == m_document || m_document.IsEmpty());
- if (m_document.IsEmpty())
+ ASSERT(documentWrapper == m_document.get() || m_document.get().IsEmpty());
+ if (m_document.get().IsEmpty())
updateDocumentWrapper(v8::Handle<v8::Object>::Cast(documentWrapper));
- checkDocumentWrapper(m_document, m_frame->document());
+ checkDocumentWrapper(m_document.get(), m_frame->document());
// If instantiation of the document wrapper fails, clear the cache
// and let the DOMWindow accessor handle access to the document.
@@ -489,27 +462,28 @@ void V8DOMWindowShell::updateDocumentWrapperCache()
return;
}
ASSERT(documentWrapper->IsObject());
- m_context->Global()->ForceSet(v8::String::New("document"), documentWrapper, static_cast<v8::PropertyAttribute>(v8::ReadOnly | v8::DontDelete));
+ m_context.get()->Global()->ForceSet(v8::String::New("document"), documentWrapper, static_cast<v8::PropertyAttribute>(v8::ReadOnly | v8::DontDelete));
// We also stash a reference to the document on the real global object so that
// DOMWindow objects we obtain from JavaScript references are guaranteed to have
// live Document objects.
- v8::Handle<v8::Object> v8RealGlobal = v8::Handle<v8::Object>::Cast(m_context->Global()->GetPrototype());
+ v8::Handle<v8::Object> v8RealGlobal = v8::Handle<v8::Object>::Cast(m_context.get()->Global()->GetPrototype());
v8RealGlobal->SetHiddenValue(V8HiddenPropertyName::document(), documentWrapper);
}
void V8DOMWindowShell::clearDocumentWrapperCache()
{
- ASSERT(!m_context.IsEmpty());
- m_context->Global()->ForceDelete(v8::String::New("document"));
+ ASSERT(!m_context.get().IsEmpty());
+ m_context.get()->Global()->ForceDelete(v8::String::New("document"));
}
void V8DOMWindowShell::setSecurityToken()
{
Document* document = m_frame->document();
- // Setup security origin and security token.
+
+ // FIXME: This shouldn't be possible anymore.
if (!document) {
- m_context->UseDefaultSecurityToken();
+ m_context.get()->UseDefaultSecurityToken();
return;
}
@@ -529,22 +503,23 @@ void V8DOMWindowShell::setSecurityToken()
// case, we use the global object as the security token to avoid
// calling canAccess when a script accesses its own objects.
if (token.isEmpty() || token == "null") {
- m_context->UseDefaultSecurityToken();
+ m_context.get()->UseDefaultSecurityToken();
return;
}
CString utf8Token = token.utf8();
// NOTE: V8 does identity comparison in fast path, must use a symbol
// as the security token.
- m_context->SetSecurityToken(v8::String::NewSymbol(utf8Token.data(), utf8Token.length()));
+ m_context.get()->SetSecurityToken(v8::String::NewSymbol(utf8Token.data(), utf8Token.length()));
}
void V8DOMWindowShell::updateDocument()
{
+ // FIXME: This shouldn't be possible anymore.
if (!m_frame->document())
return;
- if (m_global.IsEmpty())
+ if (m_global.get().IsEmpty())
return;
// There is an existing JavaScript wrapper for the global object
@@ -561,9 +536,9 @@ void V8DOMWindowShell::updateDocument()
updateSecurityOrigin();
}
-v8::Handle<v8::Value> getter(v8::Local<v8::String> property, const v8::AccessorInfo& info)
+static v8::Handle<v8::Value> getter(v8::Local<v8::String> property, const v8::AccessorInfo& info)
{
- // FIXME(antonm): consider passing AtomicStringImpl directly.
+ // FIXME: Consider passing AtomicStringImpl directly.
AtomicString name = toWebCoreAtomicString(property);
HTMLDocument* htmlDocument = V8HTMLDocument::toNative(info.Holder());
ASSERT(htmlDocument);
@@ -576,40 +551,40 @@ v8::Handle<v8::Value> getter(v8::Local<v8::String> property, const v8::AccessorI
return v8::Undefined();
}
-void V8DOMWindowShell::namedItemAdded(HTMLDocument* doc, const AtomicString& name)
+void V8DOMWindowShell::namedItemAdded(HTMLDocument* document, const AtomicString& name)
{
if (!initContextIfNeeded())
return;
v8::HandleScope handleScope;
- v8::Context::Scope contextScope(m_context);
+ v8::Context::Scope contextScope(m_context.get());
- ASSERT(!m_document.IsEmpty());
- checkDocumentWrapper(m_document, doc);
- m_document->SetAccessor(v8String(name), getter);
+ ASSERT(!m_document.get().IsEmpty());
+ checkDocumentWrapper(m_document.get(), document);
+ m_document.get()->SetAccessor(v8String(name), getter);
}
-void V8DOMWindowShell::namedItemRemoved(HTMLDocument* doc, const AtomicString& name)
+void V8DOMWindowShell::namedItemRemoved(HTMLDocument* document, const AtomicString& name)
{
- if (doc->hasNamedItem(name.impl()) || doc->hasExtraNamedItem(name.impl()))
+ if (document->hasNamedItem(name.impl()) || document->hasExtraNamedItem(name.impl()))
return;
if (!initContextIfNeeded())
return;
v8::HandleScope handleScope;
- v8::Context::Scope contextScope(m_context);
+ v8::Context::Scope contextScope(m_context.get());
- ASSERT(!m_document.IsEmpty());
- checkDocumentWrapper(m_document, doc);
- m_document->Delete(v8String(name));
+ ASSERT(!m_document.get().IsEmpty());
+ checkDocumentWrapper(m_document.get(), document);
+ m_document.get()->Delete(v8String(name));
}
void V8DOMWindowShell::updateSecurityOrigin()
{
- if (m_context.IsEmpty())
+ if (m_context.get().IsEmpty())
return;
- v8::HandleScope scope;
+ v8::HandleScope handleScope;
setSecurityToken();
}
diff --git a/Source/WebCore/bindings/v8/V8DOMWindowShell.h b/Source/WebCore/bindings/v8/V8DOMWindowShell.h
index b25bbfc48..e2ff81937 100644
--- a/Source/WebCore/bindings/v8/V8DOMWindowShell.h
+++ b/Source/WebCore/bindings/v8/V8DOMWindowShell.h
@@ -31,6 +31,7 @@
#ifndef V8DOMWindowShell_h
#define V8DOMWindowShell_h
+#include "ScopedPersistent.h"
#include "V8PerContextData.h"
#include "WrapperTypeInfo.h"
#include <wtf/Forward.h>
@@ -52,7 +53,7 @@ class V8DOMWindowShell : public RefCounted<V8DOMWindowShell> {
public:
static PassRefPtr<V8DOMWindowShell> create(Frame*);
- v8::Handle<v8::Context> context() const { return m_context; }
+ v8::Handle<v8::Context> context() const { return m_context.get(); }
// Update document object of the frame.
void updateDocument();
@@ -99,9 +100,9 @@ private:
OwnPtr<V8PerContextData> m_perContextData;
- v8::Persistent<v8::Context> m_context;
- v8::Persistent<v8::Object> m_global;
- v8::Persistent<v8::Object> m_document;
+ ScopedPersistent<v8::Context> m_context;
+ ScopedPersistent<v8::Object> m_global;
+ ScopedPersistent<v8::Object> m_document;
};
} // namespace WebCore
diff --git a/Source/WebCore/bindings/v8/V8DOMWrapper.h b/Source/WebCore/bindings/v8/V8DOMWrapper.h
index f66e89e49..25c14d694 100644
--- a/Source/WebCore/bindings/v8/V8DOMWrapper.h
+++ b/Source/WebCore/bindings/v8/V8DOMWrapper.h
@@ -53,9 +53,7 @@ namespace WebCore {
class Frame;
class Node;
class V8PerContextData;
- class V8Proxy;
class WorkerContext;
- class XPathResolver;
enum ListenerLookupType {
ListenerFindOnly,
diff --git a/Source/WebCore/bindings/v8/V8ObjectConstructor.cpp b/Source/WebCore/bindings/v8/V8ObjectConstructor.cpp
index f7877450a..d390185ca 100644
--- a/Source/WebCore/bindings/v8/V8ObjectConstructor.cpp
+++ b/Source/WebCore/bindings/v8/V8ObjectConstructor.cpp
@@ -74,8 +74,7 @@ v8::Local<v8::Object> V8ObjectConstructor::newInstanceInDocument(v8::Handle<v8::
TRACE_EVENT0("v8", "v8.newInstance");
#endif
- // No artificial limitations on the depth of recursion, see comment in
- // V8Proxy::callFunction.
+ // No artificial limitations on the depth of recursion.
V8RecursionScope recursionScope(document);
v8::Local<v8::Object> result = function->NewInstance(argc, argv);
crashIfV8IsDead();
diff --git a/Source/WebCore/bindings/v8/V8PerContextData.h b/Source/WebCore/bindings/v8/V8PerContextData.h
index c8cd6a5c6..20e910c16 100644
--- a/Source/WebCore/bindings/v8/V8PerContextData.h
+++ b/Source/WebCore/bindings/v8/V8PerContextData.h
@@ -31,7 +31,7 @@
#ifndef V8PerContextData_h
#define V8PerContextData_h
-#include "OwnHandle.h"
+#include "ScopedPersistent.h"
#include "WrapperTypeInfo.h"
#include <v8.h>
#include <wtf/HashMap.h>
@@ -90,8 +90,8 @@ private:
ConstructorMap m_constructorMap;
v8::Handle<v8::Context> m_context;
- OwnHandle<v8::Value> m_errorPrototype;
- OwnHandle<v8::Value> m_objectPrototype;
+ ScopedPersistent<v8::Value> m_errorPrototype;
+ ScopedPersistent<v8::Value> m_objectPrototype;
};
} // namespace WebCore
diff --git a/Source/WebCore/bindings/v8/V8Proxy.h b/Source/WebCore/bindings/v8/V8Proxy.h
deleted file mode 100644
index 07a7781e2..000000000
--- a/Source/WebCore/bindings/v8/V8Proxy.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef V8Proxy_h
-#define V8Proxy_h
-
-#include "PlatformSupport.h"
-#include "SharedPersistent.h"
-#include "StatsCounter.h"
-#include "V8AbstractEventListener.h"
-#include "V8DOMWrapper.h"
-#include "V8GCController.h"
-#include "V8Utilities.h"
-#include "WrapperTypeInfo.h"
-#include <v8.h>
-#include <wtf/Forward.h>
-#include <wtf/HashMap.h>
-#include <wtf/PassRefPtr.h> // so generated bindings don't have to
-#include <wtf/Vector.h>
-#include <wtf/text/TextPosition.h>
-
-namespace WebCore {
-
- class CachedScript;
- class DOMWindow;
- class Frame;
- class Node;
- class ScriptExecutionContext;
- class ScriptSourceCode;
- class SecurityOrigin;
- class V8DOMWindowShell;
- class V8EventListener;
- class V8IsolatedContext;
- class V8PerContextData;
- class WorldContextHandle;
-
- // Note: although the pointer is raw, the instance is kept alive by a strong
- // reference to the v8 context it contains, which is not made weak until we
- // call world->destroy().
- //
- // FIXME: We want to eventually be holding window shells instead of the
- // IsolatedContext directly.
- typedef HashMap<int, V8IsolatedContext*> IsolatedWorldMap;
-
- typedef HashMap<int, RefPtr<SecurityOrigin> > IsolatedWorldSecurityOriginMap;
-
- class V8Proxy {
- public:
- explicit V8Proxy(Frame*);
-
- ~V8Proxy();
-
- Frame* frame() const { return m_frame; }
-
- // FIXME: This should eventually take DOMWrapperWorld argument!
- // FIXME: This method will be soon removed, as all methods that access windowShell()
- // will be moved to ScriptController.
- V8DOMWindowShell* windowShell() const;
- private:
- Frame* m_frame;
- };
-}
-
-#endif // V8Proxy_h
diff --git a/Source/WebCore/bindings/v8/V8RecursionScope.h b/Source/WebCore/bindings/v8/V8RecursionScope.h
index 78b3f2b75..64c6c8aed 100644
--- a/Source/WebCore/bindings/v8/V8RecursionScope.h
+++ b/Source/WebCore/bindings/v8/V8RecursionScope.h
@@ -46,7 +46,7 @@ namespace WebCore {
//
// Debug-time checking of this is enforced via this class.
//
-// Calls of type (1) should generally go through V8Proxy, as inspector
+// Calls of type (1) should generally go through ScriptController, as inspector
// instrumentation is needed. Calls of type (2) should always stack-allocate a
// V8RecursionScope in the same block as the call into script. Calls of type (3)
// should stack allocate a V8RecursionScope::MicrotaskSuppression -- this
diff --git a/Source/WebCore/bindings/v8/V8Utilities.cpp b/Source/WebCore/bindings/v8/V8Utilities.cpp
index 0a45dddf0..4621818e6 100644
--- a/Source/WebCore/bindings/v8/V8Utilities.cpp
+++ b/Source/WebCore/bindings/v8/V8Utilities.cpp
@@ -38,6 +38,7 @@
#include "MessagePort.h"
#include "ScriptExecutionContext.h"
#include "ScriptState.h"
+#include "V8AbstractEventListener.h"
#include "V8ArrayBuffer.h"
#include "V8Binding.h"
#include "V8MessagePort.h"
diff --git a/Source/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h b/Source/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
index 72260e4b8..03f07e926 100644
--- a/Source/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
+++ b/Source/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
@@ -39,8 +39,6 @@
namespace WebCore {
-class V8Proxy;
-
// V8CustomXPathNSResolver does not create a persistent handle to the
// given resolver object. So the lifetime of V8CustomXPathNSResolver
// must not exceed the lifetime of the passed handle.
diff --git a/Source/WebCore/bridge/c/c_utility.cpp b/Source/WebCore/bridge/c/c_utility.cpp
index dc3755f27..308af5afd 100644
--- a/Source/WebCore/bridge/c/c_utility.cpp
+++ b/Source/WebCore/bridge/c/c_utility.cpp
@@ -80,7 +80,7 @@ void convertValueToNPVariant(ExecState* exec, JSValue value, NPVariant* result)
} else if (value.isNumber()) {
DOUBLE_TO_NPVARIANT(value.toNumber(exec), *result);
} else if (value.isBoolean()) {
- BOOLEAN_TO_NPVARIANT(value.toBoolean(), *result);
+ BOOLEAN_TO_NPVARIANT(value.toBoolean(exec), *result);
} else if (value.isNull()) {
NULL_TO_NPVARIANT(*result);
} else if (value.isObject()) {
diff --git a/Source/WebCore/bridge/jni/jni_jsobject.mm b/Source/WebCore/bridge/jni/jni_jsobject.mm
index 98f3aebdd..b5a7d220b 100644
--- a/Source/WebCore/bridge/jni/jni_jsobject.mm
+++ b/Source/WebCore/bridge/jni/jni_jsobject.mm
@@ -495,7 +495,7 @@ jobject JavaJSObject::convertValueToJObject(JSValue value) const
jclass JSObjectClass = env->FindClass ("java/lang/Boolean");
jmethodID constructorID = env->GetMethodID (JSObjectClass, "<init>", "(Z)V");
if (constructorID != NULL) {
- result = env->NewObject (JSObjectClass, constructorID, (jboolean)value.toBoolean());
+ result = env->NewObject (JSObjectClass, constructorID, (jboolean)value.toBoolean(exec));
}
}
else {
diff --git a/Source/WebCore/bridge/qt/qt_runtime.cpp b/Source/WebCore/bridge/qt/qt_runtime.cpp
index 842f95d65..785e3a056 100644
--- a/Source/WebCore/bridge/qt/qt_runtime.cpp
+++ b/Source/WebCore/bridge/qt/qt_runtime.cpp
@@ -291,9 +291,9 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
switch (hint) {
case QMetaType::Bool:
if (type == Object && object->inherits(&BooleanObject::s_info))
- ret = QVariant(asBooleanObject(value)->internalValue().toBoolean());
+ ret = QVariant(asBooleanObject(value)->internalValue().toBoolean(exec));
else
- ret = QVariant(value.toBoolean());
+ ret = QVariant(value.toBoolean(exec));
if (type == Boolean)
dist = 0;
else
diff --git a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
index fe10eb0f6..0708c23ba 100644
--- a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
+++ b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
@@ -614,7 +614,7 @@ static PassRefPtr<CSSValue> getPositionOffsetValue(RenderStyle* style, CSSProper
return 0;
}
- if (style->position() == AbsolutePosition || style->position() == FixedPosition) {
+ if (style->hasOutOfFlowPosition()) {
if (l.type() == WebCore::Fixed)
return zoomAdjustedPixelValue(l.value(), style);
else if (l.isViewportPercentage())
@@ -622,7 +622,7 @@ static PassRefPtr<CSSValue> getPositionOffsetValue(RenderStyle* style, CSSProper
return cssValuePool().createValue(l);
}
- if (style->position() == RelativePosition || style->position() == StickyPosition) {
+ if (style->hasInFlowPosition()) {
// FIXME: It's not enough to simply return "auto" values for one offset if the other side is defined.
// In other words if left is auto and right is not auto, then left's computed value is negative right().
// So we should get the opposite length unit and see if it is auto.
@@ -715,21 +715,14 @@ static LayoutRect sizingBox(RenderObject* renderer)
return box->style()->boxSizing() == BORDER_BOX ? box->borderBoxRect() : box->computedCSSContentBoxRect();
}
-static IntRect pixelSnappedSizingBox(RenderObject* renderer)
-{
- if (!renderer->isBox())
- return IntRect();
-
- RenderBox* box = toRenderBox(renderer);
- return box->style()->boxSizing() == BORDER_BOX ? box->pixelSnappedBorderBoxRect() : pixelSnappedIntRect(box->computedCSSContentBoxRect());
-}
-
static PassRefPtr<CSSValue> computedTransform(RenderObject* renderer, const RenderStyle* style)
{
- if (!renderer || style->transform().operations().isEmpty())
+ if (!renderer || !renderer->hasTransform() || !style->hasTransform())
return cssValuePool().createIdentifierValue(CSSValueNone);
- IntRect box = pixelSnappedSizingBox(renderer);
+ IntRect box;
+ if (renderer->isBox())
+ box = pixelSnappedIntRect(toRenderBox(renderer)->borderBoxRect());
TransformationMatrix transform;
style->applyTransform(transform, box.size(), RenderStyle::ExcludeTransformOrigin);
@@ -2327,7 +2320,10 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(CSSPropert
case CSSPropertyWebkitTransformOrigin: {
RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
if (renderer) {
- LayoutRect box = sizingBox(renderer);
+ LayoutRect box;
+ if (renderer->isBox())
+ box = toRenderBox(renderer)->borderBoxRect();
+
RenderView* renderView = m_node->document()->renderView();
list->append(zoomAdjustedPixelValue(minimumValueForLength(style->transformOriginX(), box.width(), renderView), style.get()));
list->append(zoomAdjustedPixelValue(minimumValueForLength(style->transformOriginY(), box.height(), renderView), style.get()));
diff --git a/Source/WebCore/css/CSSParser.cpp b/Source/WebCore/css/CSSParser.cpp
index 18c4c0352..7a5ea37d3 100644
--- a/Source/WebCore/css/CSSParser.cpp
+++ b/Source/WebCore/css/CSSParser.cpp
@@ -46,11 +46,13 @@
#include "CSSPropertySourceData.h"
#include "CSSReflectValue.h"
#include "CSSSelector.h"
+#include "CSSStyleSheet.h"
#include "CSSTimingFunctionValue.h"
#include "CSSUnicodeRangeValue.h"
#include "CSSValueKeywords.h"
#include "CSSValueList.h"
#include "CSSValuePool.h"
+#include "StylePropertyShorthand.h"
#if ENABLE(CSS_VARIABLES)
#include "CSSVariableValue.h"
#endif
@@ -1241,6 +1243,30 @@ void CSSParser::parseSelector(const String& string, CSSSelectorList& selectorLis
m_selectorListForParseSelector = 0;
}
+PassRefPtr<StylePropertySet> CSSParser::parseInlineStyleDeclaration(const String& string, Element* element)
+{
+ CSSParserContext context = element->document()->elementSheet()->contents()->parserContext();
+ context.mode = strictToCSSParserMode(element->isHTMLElement() && !element->document()->inQuirksMode());
+ return CSSParser(context).parseDeclaration(string, element->document()->elementSheet()->contents());
+}
+
+PassRefPtr<StylePropertySet> CSSParser::parseDeclaration(const String& string, StyleSheetContents* contextStyleSheet)
+{
+ setStyleSheet(contextStyleSheet);
+
+ setupParser("@-webkit-decls{", string, "} ");
+ cssyyparse(this);
+ m_rule = 0;
+
+ if (m_hasFontFaceOnlyValues)
+ deleteFontFaceOnlyValues();
+
+ RefPtr<StylePropertySet> style = createStylePropertySet();
+ clearProperties();
+ return style.release();
+}
+
+
bool CSSParser::parseDeclaration(StylePropertySet* declaration, const String& string, PassRefPtr<CSSRuleSourceData> prpRuleSourceData, StyleSheetContents* contextStyleSheet)
{
// Length of the "@-webkit-decls{" prefix.
@@ -3074,30 +3100,13 @@ void CSSParser::addAnimationValue(RefPtr<CSSValue>& lval, PassRefPtr<CSSValue> r
bool CSSParser::parseAnimationShorthand(bool important)
{
- // When we parse the animation shorthand we need to look for animation-name
- // last because otherwise it might match against the keywords for fill mode,
- // timing functions and infinite iteration. This means that animation names
- // that are the same as keywords (e.g. 'forwards') won't always match in the
- // shorthand. In that case they should be using longhands (or reconsidering
- // their approach). This is covered by the animations spec bug:
- // https://www.w3.org/Bugs/Public/show_bug.cgi?id=14790
- // And in the spec (editor's draft) at:
- // http://dev.w3.org/csswg/css3-animations/#animation-shorthand-property
-
- static const CSSPropertyID animationProperties[] = {
- CSSPropertyWebkitAnimationDuration,
- CSSPropertyWebkitAnimationTimingFunction,
- CSSPropertyWebkitAnimationDelay,
- CSSPropertyWebkitAnimationIterationCount,
- CSSPropertyWebkitAnimationDirection,
- CSSPropertyWebkitAnimationFillMode,
- CSSPropertyWebkitAnimationName
- };
+ const StylePropertyShorthand& animationProperties = webkitAnimationShorthandForParsing();
const unsigned numProperties = 7;
// The list of properties in the shorthand should be the same
- // length as the list we have here, even though they are
- // a different order.
+ // length as the list with animation name in last position, even though they are
+ // in a different order.
+ ASSERT(numProperties == webkitAnimationShorthandForParsing().length());
ASSERT(numProperties == webkitAnimationShorthand().length());
ShorthandScope scope(this, CSSPropertyWebkitAnimation);
@@ -3124,7 +3133,7 @@ bool CSSParser::parseAnimationShorthand(bool important)
for (i = 0; i < numProperties; ++i) {
if (!parsedProperty[i]) {
RefPtr<CSSValue> val;
- if (parseAnimationProperty(animationProperties[i], val)) {
+ if (parseAnimationProperty(animationProperties.properties()[i], val)) {
parsedProperty[i] = found = true;
addAnimationValue(values[i], val.release());
break;
@@ -3143,7 +3152,7 @@ bool CSSParser::parseAnimationShorthand(bool important)
if (!parsedProperty[i])
addAnimationValue(values[i], cssValuePool().createImplicitInitialValue());
- addProperty(animationProperties[i], values[i].release(), important);
+ addProperty(animationProperties.properties()[i], values[i].release(), important);
}
return true;
diff --git a/Source/WebCore/css/CSSParser.h b/Source/WebCore/css/CSSParser.h
index aec1f6635..16e5bd70c 100644
--- a/Source/WebCore/css/CSSParser.h
+++ b/Source/WebCore/css/CSSParser.h
@@ -53,6 +53,7 @@ class CSSValue;
class CSSValueList;
class CSSWrapShape;
class Document;
+class Element;
class MediaQueryExp;
class MediaQuerySet;
class StyleKeyframe;
@@ -83,6 +84,7 @@ public:
static PassRefPtr<CSSValueList> parseFontFaceValue(const AtomicString&);
PassRefPtr<CSSPrimitiveValue> parseValidPrimitive(int ident, CSSParserValue*);
bool parseDeclaration(StylePropertySet*, const String&, PassRefPtr<CSSRuleSourceData>, StyleSheetContents* contextStyleSheet);
+ static PassRefPtr<StylePropertySet> parseInlineStyleDeclaration(const String&, Element*);
PassOwnPtr<MediaQuery> parseMediaQuery(const String&);
void addProperty(CSSPropertyID, PassRefPtr<CSSValue>, bool important, bool implicit = false);
@@ -402,6 +404,7 @@ private:
bool parseGeneratedImage(CSSParserValueList*, RefPtr<CSSValue>&);
bool parseValue(StylePropertySet*, CSSPropertyID, const String&, bool important, StyleSheetContents* contextStyleSheet);
+ PassRefPtr<StylePropertySet> parseDeclaration(const String&, StyleSheetContents* contextStyleSheet);
enum SizeParameterType {
None,
diff --git a/Source/WebCore/css/CSSPrimitiveValueMappings.h b/Source/WebCore/css/CSSPrimitiveValueMappings.h
index c39a9c021..806605fe3 100644
--- a/Source/WebCore/css/CSSPrimitiveValueMappings.h
+++ b/Source/WebCore/css/CSSPrimitiveValueMappings.h
@@ -50,6 +50,7 @@
#include "TextRenderingMode.h"
#include "ThemeTypes.h"
#include "UnicodeBidi.h"
+#include "WritingMode.h"
#if ENABLE(CSS_SHADERS)
#include "CustomFilterOperation.h"
diff --git a/Source/WebCore/css/CSSProperty.h b/Source/WebCore/css/CSSProperty.h
index 57a30124f..7afaa75ec 100644
--- a/Source/WebCore/css/CSSProperty.h
+++ b/Source/WebCore/css/CSSProperty.h
@@ -25,6 +25,7 @@
#include "CSSValue.h"
#include "RenderStyleConstants.h"
#include "TextDirection.h"
+#include "WritingMode.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
diff --git a/Source/WebCore/css/CSSToStyleMap.h b/Source/WebCore/css/CSSToStyleMap.h
index 8e0fc953d..6bab40bfc 100644
--- a/Source/WebCore/css/CSSToStyleMap.h
+++ b/Source/WebCore/css/CSSToStyleMap.h
@@ -30,6 +30,7 @@ namespace WebCore {
class FillLayer;
class CSSValue;
class Animation;
+class RenderStyle;
class StyleImage;
class StyleResolver;
class NinePieceImage;
diff --git a/Source/WebCore/css/StylePropertyShorthand.cpp b/Source/WebCore/css/StylePropertyShorthand.cpp
index 045bd24f0..d5ecd9746 100644
--- a/Source/WebCore/css/StylePropertyShorthand.cpp
+++ b/Source/WebCore/css/StylePropertyShorthand.cpp
@@ -261,6 +261,31 @@ const StylePropertyShorthand& webkitAnimationShorthand()
return webkitAnimationLonghands;
}
+const StylePropertyShorthand& webkitAnimationShorthandForParsing()
+{
+ // When we parse the animation shorthand we need to look for animation-name
+ // last because otherwise it might match against the keywords for fill mode,
+ // timing functions and infinite iteration. This means that animation names
+ // that are the same as keywords (e.g. 'forwards') won't always match in the
+ // shorthand. In that case the authors should be using longhands (or
+ // reconsidering their approach). This is covered by the animations spec
+ // bug: https://www.w3.org/Bugs/Public/show_bug.cgi?id=14790
+ // And in the spec (editor's draft) at:
+ // http://dev.w3.org/csswg/css3-animations/#animation-shorthand-property
+ static const CSSPropertyID animationPropertiesForParsing[] = {
+ CSSPropertyWebkitAnimationDuration,
+ CSSPropertyWebkitAnimationTimingFunction,
+ CSSPropertyWebkitAnimationDelay,
+ CSSPropertyWebkitAnimationIterationCount,
+ CSSPropertyWebkitAnimationDirection,
+ CSSPropertyWebkitAnimationFillMode,
+ CSSPropertyWebkitAnimationName
+ };
+
+ DEFINE_STATIC_LOCAL(StylePropertyShorthand, webkitAnimationLonghandsForParsing, (animationPropertiesForParsing, WTF_ARRAY_LENGTH(animationPropertiesForParsing)));
+ return webkitAnimationLonghandsForParsing;
+}
+
const StylePropertyShorthand& webkitBorderAfterShorthand()
{
static const CSSPropertyID borderAfterProperties[] = { CSSPropertyWebkitBorderAfterWidth, CSSPropertyWebkitBorderAfterStyle, CSSPropertyWebkitBorderAfterColor };
diff --git a/Source/WebCore/css/StylePropertyShorthand.h b/Source/WebCore/css/StylePropertyShorthand.h
index ee331c732..72da501ce 100644
--- a/Source/WebCore/css/StylePropertyShorthand.h
+++ b/Source/WebCore/css/StylePropertyShorthand.h
@@ -80,6 +80,7 @@ const StylePropertyShorthand& outlineShorthand();
const StylePropertyShorthand& overflowShorthand();
const StylePropertyShorthand& paddingShorthand();
const StylePropertyShorthand& webkitAnimationShorthand();
+const StylePropertyShorthand& webkitAnimationShorthandForParsing();
const StylePropertyShorthand& webkitBorderAfterShorthand();
const StylePropertyShorthand& webkitBorderBeforeShorthand();
const StylePropertyShorthand& webkitBorderEndShorthand();
diff --git a/Source/WebCore/css/StyleResolver.cpp b/Source/WebCore/css/StyleResolver.cpp
index a7397aed3..08ee28cda 100644
--- a/Source/WebCore/css/StyleResolver.cpp
+++ b/Source/WebCore/css/StyleResolver.cpp
@@ -377,6 +377,7 @@ StyleResolver::StyleResolver(Document* document, bool matchAuthorAndUserStyles)
, m_fontDirty(false)
, m_matchAuthorAndUserStyles(matchAuthorAndUserStyles)
, m_sameOriginOnly(false)
+ , m_distributedToInsertionPoint(false)
, m_fontSelector(CSSFontSelector::create(document))
, m_applyPropertyToRegularStyle(true)
, m_applyPropertyToVisitedLinkStyle(false)
@@ -1220,9 +1221,11 @@ inline void StyleResolver::initForStyleResolve(Element* e, RenderStyle* parentSt
m_parentStyle = context.resetStyleInheritance()? 0 :
parentStyle ? parentStyle :
m_parentNode ? m_parentNode->renderStyle() : 0;
+ m_distributedToInsertionPoint = context.insertionPoint();
} else {
m_parentNode = 0;
m_parentStyle = parentStyle;
+ m_distributedToInsertionPoint = false;
}
Node* docElement = e ? e->document()->documentElement() : 0;
@@ -1752,7 +1755,7 @@ PassRefPtr<RenderStyle> StyleResolver::styleForElement(Element* element, RenderS
initElement(element);
initForStyleResolve(element, defaultParent);
m_regionForStyling = regionForStyling;
- if (sharingBehavior == AllowStyleSharing) {
+ if (sharingBehavior == AllowStyleSharing && !m_distributedToInsertionPoint) {
RenderStyle* sharedStyle = locateSharedStyle();
if (sharedStyle)
return sharedStyle;
@@ -2075,7 +2078,7 @@ static bool doesNotInheritTextDecoration(RenderStyle* style, Element* e)
{
return style->display() == TABLE || style->display() == INLINE_TABLE || style->display() == RUN_IN
|| style->display() == INLINE_BLOCK || style->display() == INLINE_BOX || isAtShadowBoundary(e)
- || style->isFloating() || style->isOutOfFlowPositioned();
+ || style->isFloating() || style->hasOutOfFlowPosition();
}
static bool isDisplayFlexibleBox(EDisplay display)
@@ -2145,7 +2148,7 @@ void StyleResolver::adjustRenderStyle(RenderStyle* style, RenderStyle* parentSty
style->setDisplay(BLOCK);
// Absolute/fixed positioned elements, floating elements and the document element need block-like outside display.
- if (style->position() == AbsolutePosition || style->position() == FixedPosition || style->isFloating() || (e && e->document()->documentElement() == e))
+ if (style->hasOutOfFlowPosition() || style->isFloating() || (e && e->document()->documentElement() == e))
style->setDisplay(equivalentBlockDisplay(style->display(), style->isFloating(), m_checker.strictParsing()));
// FIXME: Don't support this mutation for pseudo styles like first-letter or first-line, since it's not completely
@@ -2187,8 +2190,12 @@ void StyleResolver::adjustRenderStyle(RenderStyle* style, RenderStyle* parentSty
// Auto z-index becomes 0 for the root element and transparent objects. This prevents
// cases where objects that should be blended as a single unit end up with a non-transparent
// object wedged in between them. Auto z-index also becomes 0 for objects that specify transforms/masks/reflections.
- if (style->hasAutoZIndex() && ((e && e->document()->documentElement() == e) || style->opacity() < 1.0f
- || style->hasTransformRelatedProperty() || style->hasMask() || style->boxReflect() || style->hasFilter()
+ if (style->hasAutoZIndex() && ((e && e->document()->documentElement() == e)
+ || style->opacity() < 1.0f
+ || style->hasTransformRelatedProperty()
+ || style->hasMask()
+ || style->boxReflect()
+ || style->hasFilter()
#ifdef FIXED_POSITION_CREATES_STACKING_CONTEXT
|| style->position() == FixedPosition
#else
diff --git a/Source/WebCore/css/StyleResolver.h b/Source/WebCore/css/StyleResolver.h
index 712085ba2..2bbc6823e 100644
--- a/Source/WebCore/css/StyleResolver.h
+++ b/Source/WebCore/css/StyleResolver.h
@@ -496,6 +496,7 @@ private:
bool m_fontDirty;
bool m_matchAuthorAndUserStyles;
bool m_sameOriginOnly;
+ bool m_distributedToInsertionPoint;
RefPtr<CSSFontSelector> m_fontSelector;
Vector<OwnPtr<MediaQueryResult> > m_viewportDependentMediaQueryResults;
diff --git a/Source/WebCore/dom/ElementAttributeData.cpp b/Source/WebCore/dom/ElementAttributeData.cpp
index 7d89c8848..471e519e0 100644
--- a/Source/WebCore/dom/ElementAttributeData.cpp
+++ b/Source/WebCore/dom/ElementAttributeData.cpp
@@ -27,6 +27,7 @@
#include "ElementAttributeData.h"
#include "Attr.h"
+#include "CSSParser.h"
#include "CSSStyleSheet.h"
#include "MemoryInstrumentation.h"
#include "StyledElement.h"
@@ -211,8 +212,9 @@ void ElementAttributeData::updateInlineStyleAvoidingMutation(StyledElement* elem
if (m_inlineStyleDecl && !m_inlineStyleDecl->isMutable())
m_inlineStyleDecl.clear();
if (!m_inlineStyleDecl)
- m_inlineStyleDecl = StylePropertySet::create(strictToCSSParserMode(element->isHTMLElement() && !element->document()->inQuirksMode()));
- m_inlineStyleDecl->parseDeclaration(text, element->document()->elementSheet()->contents());
+ m_inlineStyleDecl = CSSParser::parseInlineStyleDeclaration(text, element);
+ else
+ m_inlineStyleDecl->parseDeclaration(text, element->document()->elementSheet()->contents());
}
void ElementAttributeData::destroyInlineStyle(StyledElement* element) const
diff --git a/Source/WebCore/editing/TextIterator.cpp b/Source/WebCore/editing/TextIterator.cpp
index 5ca7282bc..789a3fabb 100644
--- a/Source/WebCore/editing/TextIterator.cpp
+++ b/Source/WebCore/editing/TextIterator.cpp
@@ -214,8 +214,7 @@ static inline bool ignoresContainerClip(Node* node)
RenderObject* renderer = node->renderer();
if (!renderer || renderer->isText())
return false;
- EPosition position = renderer->style()->position();
- return position == AbsolutePosition || position == FixedPosition;
+ return renderer->style()->hasOutOfFlowPosition();
}
static void pushFullyClippedState(BitStack& stack, Node* node)
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp
index ffb30894b..02a5645c5 100644
--- a/Source/WebCore/html/HTMLMediaElement.cpp
+++ b/Source/WebCore/html/HTMLMediaElement.cpp
@@ -4377,6 +4377,54 @@ String HTMLMediaElement::mediaPlayerDocumentHost() const
return document()->url().host();
}
+void HTMLMediaElement::mediaPlayerExitFullscreen()
+{
+ exitFullscreen();
+}
+
+bool HTMLMediaElement::mediaPlayerIsVideo() const
+{
+ return isVideo();
+}
+
+LayoutRect HTMLMediaElement::mediaPlayerContentBoxRect() const
+{
+ if (renderer())
+ return renderer()->enclosingBox()->contentBoxRect();
+ return LayoutRect();
+}
+
+void HTMLMediaElement::mediaPlayerSetSize(const IntSize& size)
+{
+ setAttribute(widthAttr, String::number(size.width()));
+ setAttribute(heightAttr, String::number(size.height()));
+}
+
+void HTMLMediaElement::mediaPlayerPause()
+{
+ pause();
+}
+
+void HTMLMediaElement::mediaPlayerPlay()
+{
+ play();
+}
+
+bool HTMLMediaElement::mediaPlayerIsPaused() const
+{
+ return paused();
+}
+
+HostWindow* HTMLMediaElement::mediaPlayerHostWindow()
+{
+ return mediaPlayerOwningDocument()->view()->hostWindow();
+}
+
+IntRect HTMLMediaElement::mediaPlayerWindowClipRect()
+{
+ return mediaPlayerOwningDocument()->view()->windowClipRect();
+}
+
void HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture()
{
m_restrictions = NoRestrictions;
diff --git a/Source/WebCore/html/HTMLMediaElement.h b/Source/WebCore/html/HTMLMediaElement.h
index da102a6d2..32b547d32 100644
--- a/Source/WebCore/html/HTMLMediaElement.h
+++ b/Source/WebCore/html/HTMLMediaElement.h
@@ -422,6 +422,16 @@ private:
virtual bool mediaPlayerNeedsSiteSpecificHacks() const OVERRIDE;
virtual String mediaPlayerDocumentHost() const OVERRIDE;
+ virtual void mediaPlayerExitFullscreen() OVERRIDE;
+ virtual bool mediaPlayerIsVideo() const OVERRIDE;
+ virtual LayoutRect mediaPlayerContentBoxRect() const OVERRIDE;
+ virtual void mediaPlayerSetSize(const IntSize&) OVERRIDE;
+ virtual void mediaPlayerPause() OVERRIDE;
+ virtual void mediaPlayerPlay() OVERRIDE;
+ virtual bool mediaPlayerIsPaused() const OVERRIDE;
+ virtual HostWindow* mediaPlayerHostWindow() OVERRIDE;
+ virtual IntRect mediaPlayerWindowClipRect() OVERRIDE;
+
#if PLATFORM(WIN) && USE(AVFOUNDATION)
virtual GraphicsDeviceAdapter* mediaPlayerGraphicsDeviceAdapter(const MediaPlayer*) const OVERRIDE;
#endif
diff --git a/Source/WebCore/html/TimeInputType.cpp b/Source/WebCore/html/TimeInputType.cpp
index 798aeff9f..586103231 100644
--- a/Source/WebCore/html/TimeInputType.cpp
+++ b/Source/WebCore/html/TimeInputType.cpp
@@ -182,8 +182,7 @@ void TimeInputType::createShadowSubtree()
{
ASSERT(element()->shadow());
- const StepRange stepRange(createStepRange(AnyIsDefaultStep));
- RefPtr<DateTimeEditElement> dateTimeEditElement(DateTimeEditElement::create(element()->document(), m_dateTimeEditControlOwnerImpl, stepRange));
+ RefPtr<DateTimeEditElement> dateTimeEditElement(DateTimeEditElement::create(element()->document(), m_dateTimeEditControlOwnerImpl));
m_dateTimeEditElement = dateTimeEditElement.get();
element()->userAgentShadowRoot()->appendChild(m_dateTimeEditElement);
updateInnerTextValue();
@@ -238,7 +237,7 @@ bool TimeInputType::isMouseFocusable() const
void TimeInputType::minOrMaxAttributeChanged()
{
- updateEditElementLayout();
+ updateInnerTextValue();
}
void TimeInputType::readonlyAttributeChanged()
@@ -266,13 +265,7 @@ bool TimeInputType::shouldUseInputMethod() const
void TimeInputType::stepAttributeChanged()
{
- updateEditElementLayout();
-}
-
-void TimeInputType::updateEditElementLayout()
-{
- if (m_dateTimeEditElement)
- m_dateTimeEditElement->layout(createStepRange(AnyIsDefaultStep));
+ updateInnerTextValue();
}
void TimeInputType::updateInnerTextValue()
@@ -280,13 +273,13 @@ void TimeInputType::updateInnerTextValue()
if (!m_dateTimeEditElement)
return;
+ const StepRange stepRange(createStepRange(AnyIsDefaultStep));
DateComponents date;
if (parseToDateComponents(element()->value(), &date))
- m_dateTimeEditElement->setValueAsDate(date);
+ m_dateTimeEditElement->setValueAsDate(stepRange, date);
else {
- const StepRange stepRange(createStepRange(AnyIsDefaultStep));
setMillisecondToDateComponents(stepRange.minimum().toDouble(), &date);
- m_dateTimeEditElement->setEmptyValue(date);
+ m_dateTimeEditElement->setEmptyValue(stepRange, date);
}
}
#else
diff --git a/Source/WebCore/html/TimeInputType.h b/Source/WebCore/html/TimeInputType.h
index 8dc6e7740..ee877dcf1 100644
--- a/Source/WebCore/html/TimeInputType.h
+++ b/Source/WebCore/html/TimeInputType.h
@@ -80,8 +80,6 @@ private:
friend class DateTimeEditControlOwnerImpl;
- void updateEditElementLayout();
-
// InputType functions
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*) const OVERRIDE FINAL;
virtual void createShadowSubtree() OVERRIDE FINAL;
diff --git a/Source/WebCore/html/shadow/DateTimeEditElement.cpp b/Source/WebCore/html/shadow/DateTimeEditElement.cpp
index 3a64b9914..44a1c2b0a 100644
--- a/Source/WebCore/html/shadow/DateTimeEditElement.cpp
+++ b/Source/WebCore/html/shadow/DateTimeEditElement.cpp
@@ -50,7 +50,7 @@ class DateTimeEditBuilder : private DateTimeFormat::TokenHandler {
WTF_MAKE_NONCOPYABLE(DateTimeEditBuilder);
public:
- DateTimeEditBuilder(DateTimeEditElement&, const StepRange&);
+ DateTimeEditBuilder(DateTimeEditElement&, const StepRange&, const DateComponents&);
bool build(const String&);
bool needSecondField() const;
@@ -67,11 +67,13 @@ private:
virtual void visitLiteral(const String&) OVERRIDE FINAL;
DateTimeEditElement& m_editElement;
+ const DateComponents& m_dateValue;
const StepRange& m_stepRange;
};
-DateTimeEditBuilder::DateTimeEditBuilder(DateTimeEditElement& elemnt, const StepRange& stepRange)
+DateTimeEditBuilder::DateTimeEditBuilder(DateTimeEditElement& elemnt, const StepRange& stepRange, const DateComponents& dateValue)
: m_editElement(elemnt)
+ , m_dateValue(dateValue)
, m_stepRange(stepRange)
{
}
@@ -84,19 +86,22 @@ bool DateTimeEditBuilder::build(const String& formatString)
bool DateTimeEditBuilder::needMillisecondField() const
{
- return !m_stepRange.minimum().remainder(static_cast<int>(msPerSecond)).isZero()
+ return m_dateValue.millisecond()
+ || !m_stepRange.minimum().remainder(static_cast<int>(msPerSecond)).isZero()
|| !m_stepRange.step().remainder(static_cast<int>(msPerSecond)).isZero();
}
bool DateTimeEditBuilder::needMinuteField() const
{
- return !m_stepRange.minimum().remainder(static_cast<int>(msPerHour)).isZero()
+ return m_dateValue.minute()
+ || !m_stepRange.minimum().remainder(static_cast<int>(msPerHour)).isZero()
|| !m_stepRange.step().remainder(static_cast<int>(msPerHour)).isZero();
}
bool DateTimeEditBuilder::needSecondField() const
{
- return !m_stepRange.minimum().remainder(static_cast<int>(msPerMinute)).isZero()
+ return m_dateValue.second()
+ || !m_stepRange.minimum().remainder(static_cast<int>(msPerMinute)).isZero()
|| !m_stepRange.step().remainder(static_cast<int>(msPerMinute)).isZero();
}
@@ -161,17 +166,17 @@ void DateTimeEditBuilder::visitField(DateTimeFormat::FieldType fieldType, int)
bool DateTimeEditBuilder::shouldMillisecondFieldReadOnly() const
{
- return m_stepRange.step().remainder(static_cast<int>(msPerSecond)).isZero();
+ return !m_dateValue.millisecond() && m_stepRange.step().remainder(static_cast<int>(msPerSecond)).isZero();
}
bool DateTimeEditBuilder::shouldMinuteFieldReadOnly() const
{
- return m_stepRange.step().remainder(static_cast<int>(msPerHour)).isZero();
+ return !m_dateValue.minute() && m_stepRange.step().remainder(static_cast<int>(msPerHour)).isZero();
}
bool DateTimeEditBuilder::shouldSecondFieldReadOnly() const
{
- return m_stepRange.step().remainder(static_cast<int>(msPerMinute)).isZero();
+ return !m_dateValue.second() && m_stepRange.step().remainder(static_cast<int>(msPerMinute)).isZero();
}
void DateTimeEditBuilder::visitLiteral(const String& text)
@@ -213,10 +218,9 @@ void DateTimeEditElement::addField(PassRefPtr<DateTimeFieldElement> field)
appendChild(field);
}
-PassRefPtr<DateTimeEditElement> DateTimeEditElement::create(Document* document, EditControlOwner& editControlOwner, const StepRange& stepRange)
+PassRefPtr<DateTimeEditElement> DateTimeEditElement::create(Document* document, EditControlOwner& editControlOwner)
{
RefPtr<DateTimeEditElement> container = adoptRef(new DateTimeEditElement(document, editControlOwner));
- container->layout(stepRange);
return container.release();
}
@@ -341,12 +345,14 @@ bool DateTimeEditElement::isReadOnly() const
return m_editControlOwner && m_editControlOwner->isEditControlOwnerReadOnly();
}
-void DateTimeEditElement::layout(const StepRange& stepRange)
+void DateTimeEditElement::layout(const StepRange& stepRange, const DateComponents& dateValue)
{
+ size_t focusFieldIndex = m_focusFieldIndex;
DateTimeFieldElement* const focusField = fieldAt(m_focusFieldIndex);
+ const AtomicString focusFieldId = focusField ? focusField->shadowPseudoId() : nullAtom;
focusFieldAt(invalidFieldIndex);
- DateTimeEditBuilder builder(*this, stepRange);
+ DateTimeEditBuilder builder(*this, stepRange, dateValue);
const String dateTimeFormat = builder.needSecondField() ? localizedTimeFormatText() : localizedShortTimeFormatText();
if (!builder.build(dateTimeFormat) || m_fields.isEmpty())
builder.build(builder.needSecondField() ? "HH:mm:ss" : "HH:mm");
@@ -355,13 +361,14 @@ void DateTimeEditElement::layout(const StepRange& stepRange)
m_spinButton = spinButton.get();
appendChild(spinButton);
- if (focusField) {
+ if (focusFieldIndex != invalidFieldIndex) {
for (size_t fieldIndex = 0; fieldIndex < m_fields.size(); ++fieldIndex) {
- if (focusField == m_fields[fieldIndex]) {
- focusFieldAt(fieldIndex);
+ if (m_fields[fieldIndex]->shadowPseudoId() == focusFieldId) {
+ focusFieldIndex = fieldIndex;
break;
}
}
+ focusFieldAt(std::min(focusFieldIndex, m_fields.size() - 1));
}
}
@@ -434,14 +441,16 @@ void DateTimeEditElement::defaultEventHandler(Event* event)
focusField->defaultEventHandler(event);
}
-void DateTimeEditElement::setValueAsDate(const DateComponents& date)
+void DateTimeEditElement::setValueAsDate(const StepRange& stepRange, const DateComponents& date)
{
+ layout(stepRange, date);
for (size_t fieldIndex = 0; fieldIndex < m_fields.size(); ++fieldIndex)
m_fields[fieldIndex]->setValueAsDate(date);
}
-void DateTimeEditElement::setEmptyValue(const DateComponents& dateForReadOnlyField)
+void DateTimeEditElement::setEmptyValue(const StepRange& stepRange, const DateComponents& dateForReadOnlyField)
{
+ layout(stepRange, dateForReadOnlyField);
for (size_t fieldIndex = 0; fieldIndex < m_fields.size(); ++fieldIndex)
m_fields[fieldIndex]->setEmptyValue(dateForReadOnlyField, DateTimeFieldElement::DispatchNoEvent);
}
diff --git a/Source/WebCore/html/shadow/DateTimeEditElement.h b/Source/WebCore/html/shadow/DateTimeEditElement.h
index c6016febf..4767368f4 100644
--- a/Source/WebCore/html/shadow/DateTimeEditElement.h
+++ b/Source/WebCore/html/shadow/DateTimeEditElement.h
@@ -59,18 +59,17 @@ public:
virtual bool isEditControlOwnerReadOnly() const = 0;
};
- static PassRefPtr<DateTimeEditElement> create(Document*, EditControlOwner&, const StepRange&);
+ static PassRefPtr<DateTimeEditElement> create(Document*, EditControlOwner&);
virtual ~DateTimeEditElement();
void addField(PassRefPtr<DateTimeFieldElement>);
virtual void defaultEventHandler(Event*) OVERRIDE;
void disabledStateChanged();
- void layout(const StepRange&);
void readOnlyStateChanged();
void removeEditControlOwner() { m_editControlOwner = 0; }
void resetLayout();
- void setEmptyValue(const DateComponents& dateForReadOnlyField);
- void setValueAsDate(const DateComponents&);
+ void setEmptyValue(const StepRange&, const DateComponents& dateForReadOnlyField);
+ void setValueAsDate(const StepRange&, const DateComponents&);
double valueAsDouble() const;
private:
@@ -95,6 +94,7 @@ private:
void handleMouseEvent(MouseEvent*);
bool isDisabled() const;
bool isReadOnly() const;
+ void layout(const StepRange&, const DateComponents&);
size_t nextFieldIndex() const;
size_t previousFieldIndex() const;
void updateUIState();
diff --git a/Source/WebCore/html/shadow/MediaControlRootElement.h b/Source/WebCore/html/shadow/MediaControlRootElement.h
index 5ce6ac7ea..a0b09d874 100644
--- a/Source/WebCore/html/shadow/MediaControlRootElement.h
+++ b/Source/WebCore/html/shadow/MediaControlRootElement.h
@@ -152,7 +152,6 @@ private:
MediaControlPanelElement* m_panel;
#if ENABLE(VIDEO_TRACK)
MediaControlTextTrackContainerElement* m_textDisplayContainer;
- MediaControlTextTrackDisplayElement* m_textTrackDisplay;
#endif
Timer<MediaControlRootElement> m_hideFullscreenControlsTimer;
bool m_isMouseOverControls;
diff --git a/Source/WebCore/html/shadow/SliderThumbElement.cpp b/Source/WebCore/html/shadow/SliderThumbElement.cpp
index f8685279e..155e3d2de 100644
--- a/Source/WebCore/html/shadow/SliderThumbElement.cpp
+++ b/Source/WebCore/html/shadow/SliderThumbElement.cpp
@@ -258,6 +258,7 @@ void SliderThumbElement::setPositionFromPoint(const LayoutPoint& point)
input->setTextAsOfLastFormControlChangeEvent(input->value());
LayoutPoint offset = roundedLayoutPoint(input->renderer()->absoluteToLocal(point, false, true));
bool isVertical = hasVerticalAppearance(input);
+ bool isLeftToRightDirection = renderBox()->style()->isLeftToRightDirection();
LayoutUnit trackSize;
LayoutUnit position;
LayoutUnit currentPosition;
@@ -276,6 +277,8 @@ void SliderThumbElement::setPositionFromPoint(const LayoutPoint& point)
} else {
trackSize = trackElement->renderBox()->contentWidth();
position = offset.x() - renderBox()->width() / 2 - trackBoundingBox.x() + inputBoundingBox.x();
+ if (!isLeftToRightDirection)
+ position += renderBox()->width();
currentPosition = absoluteThumbOrigin.x() - absoluteSliderContentOrigin.x();
}
position = max<LayoutUnit>(0, min(position, trackSize));
@@ -283,7 +286,7 @@ void SliderThumbElement::setPositionFromPoint(const LayoutPoint& point)
return;
const Decimal ratio = Decimal::fromDouble(static_cast<double>(position) / trackSize);
- const Decimal fraction = isVertical || !renderBox()->style()->isLeftToRightDirection() ? Decimal(1) - ratio : ratio;
+ const Decimal fraction = isVertical || !isLeftToRightDirection ? Decimal(1) - ratio : ratio;
StepRange stepRange(input->createStepRange(RejectAny));
Decimal value = stepRange.clampValue(stepRange.valueFromProportion(fraction));
@@ -293,7 +296,7 @@ void SliderThumbElement::setPositionFromPoint(const LayoutPoint& point)
Decimal closest = input->findClosestTickMarkValue(value);
if (closest.isFinite()) {
double closestFraction = stepRange.proportionFromValue(closest).toDouble();
- double closestRatio = isVertical || !renderBox()->style()->isLeftToRightDirection() ? 1.0 - closestFraction : closestFraction;
+ double closestRatio = isVertical || !isLeftToRightDirection ? 1.0 - closestFraction : closestFraction;
LayoutUnit closestPosition = trackSize * closestRatio;
if ((closestPosition - position).abs() <= snappingThreshold)
value = closest;
diff --git a/Source/WebCore/inspector/CodeGeneratorInspector.py b/Source/WebCore/inspector/CodeGeneratorInspector.py
index f46ed355f..85222538b 100755
--- a/Source/WebCore/inspector/CodeGeneratorInspector.py
+++ b/Source/WebCore/inspector/CodeGeneratorInspector.py
@@ -32,7 +32,6 @@ import os.path
import sys
import string
import optparse
-from string import join
try:
import json
except ImportError:
@@ -86,8 +85,10 @@ try:
raise Exception("Output .h directory must be specified")
if not output_cpp_dirname:
raise Exception("Output .cpp directory must be specified")
-except Exception, e:
- sys.stderr.write("Failed to parse command-line arguments: %s\n\n" % e)
+except Exception:
+ # Work with python 2 and 3 http://docs.python.org/py3k/howto/pyporting.html
+ exc = sys.exc_info()[1]
+ sys.stderr.write("Failed to parse command-line arguments: %s\n\n" % exc)
sys.stderr.write("Usage: <script> Inspector.json --output_h_dir <output_header_dir> --output_cpp_dir <output_cpp_dir>\n")
exit(1)
@@ -797,7 +798,7 @@ class EnumConstants:
output = []
for item in cls.constants_:
output.append(" \"" + item + "\"")
- return join(output, ",\n") + "\n"
+ return ",\n".join(output) + "\n"
# Typebuilder code is generated in several passes: first typedefs, then other classes.
@@ -926,7 +927,7 @@ class TypeBindings:
for enum_item in enum:
enum_pos = EnumConstants.add_constant(enum_item)
condition_list.append("s == \"%s\"" % enum_item)
- validator_writer.newline(" ASSERT(%s);\n" % join(condition_list, " || "))
+ validator_writer.newline(" ASSERT(%s);\n" % " || ".join(condition_list))
validator_writer.newline("}\n")
if domain_guard:
@@ -2700,7 +2701,7 @@ class Generator:
Generator.frontend_domain_class_lines.append(Templates.frontend_domain_class.substitute(None,
domainClassName=domain_name,
domainFieldName=domain_name_lower,
- frontendDomainMethodDeclarations=join(flatten_list(frontend_method_declaration_lines), "")))
+ frontendDomainMethodDeclarations="".join(flatten_list(frontend_method_declaration_lines))))
agent_interface_name = Capitalizer.lower_camel_case_to_upper(domain_name) + "CommandHandler"
Generator.backend_agent_interface_list.append(" class %s {\n" % agent_interface_name)
@@ -2769,15 +2770,15 @@ class Generator:
backend_js_event_param_list.append("\"%s\"" % parameter_name)
method_line_list.append(" %sMessage->setObject(\"params\", paramsObject);\n" % event_name)
frontend_method_declaration_lines.append(
- " void %s(%s);\n" % (event_name, join(parameter_list, ", ")))
+ " void %s(%s);\n" % (event_name, ", ".join(parameter_list)))
Generator.frontend_method_list.append(Templates.frontend_method.substitute(None,
domainName=domain_name, eventName=event_name,
- parameters=join(parameter_list, ", "),
- code=join(method_line_list, "")))
+ parameters=", ".join(parameter_list),
+ code="".join(method_line_list)))
Generator.backend_js_domain_initializer_list.append("InspectorBackend.registerEvent(\"%s.%s\", [%s]);\n" % (
- domain_name, event_name, join(backend_js_event_param_list, ", ")))
+ domain_name, event_name, ", ".join(backend_js_event_param_list)))
@staticmethod
def process_command(json_command, domain_name, agent_field_name, agent_interface_name):
@@ -2851,7 +2852,7 @@ class Generator:
js_param_list.append(js_param_text)
- js_parameters_text = join(js_param_list, ", ")
+ js_parameters_text = ", ".join(js_param_list)
response_cook_text = ""
js_reply_list = "[]"
@@ -2900,9 +2901,9 @@ class Generator:
backend_js_reply_param_list.append("\"%s\"" % json_return_name)
- js_reply_list = "[%s]" % join(backend_js_reply_param_list, ", ")
+ js_reply_list = "[%s]" % ", ".join(backend_js_reply_param_list)
- response_cook_text = join(response_cook_list, "")
+ response_cook_text = "".join(response_cook_list)
if len(response_cook_text) != 0:
response_cook_text = " if (!error.length()) {\n" + response_cook_text + " }"
@@ -2912,7 +2913,7 @@ class Generator:
agentField="m_" + agent_field_name,
methodInCode=method_in_code,
methodOutCode=method_out_code,
- agentCallParams=join(agent_call_param_list, ""),
+ agentCallParams="".join(agent_call_param_list),
requestMessageObject=request_message_param,
responseCook=response_cook_text,
commandNameIndex=cmd_enum_name))
@@ -3090,38 +3091,38 @@ backend_js_file = SmartOutput(output_cpp_dirname + "/InspectorBackendCommands.js
backend_h_file.write(Templates.backend_h.substitute(None,
- virtualSetters=join(Generator.backend_virtual_setters_list, "\n"),
- agentInterfaces=join(flatten_list(Generator.backend_agent_interface_list), ""),
- methodNamesEnumContent=join(Generator.method_name_enum_list, "\n")))
+ virtualSetters="\n".join(Generator.backend_virtual_setters_list),
+ agentInterfaces="".join(flatten_list(Generator.backend_agent_interface_list)),
+ methodNamesEnumContent="\n".join(Generator.method_name_enum_list)))
backend_cpp_file.write(Templates.backend_cpp.substitute(None,
- constructorInit=join(Generator.backend_constructor_init_list, "\n"),
- setters=join(Generator.backend_setters_list, "\n"),
- fieldDeclarations=join(Generator.backend_field_list, "\n"),
- methodNameDeclarations=join(Generator.backend_method_name_declaration_list, "\n"),
- methods=join(Generator.backend_method_implementation_list, "\n"),
- methodDeclarations=join(Generator.backend_method_declaration_list, "\n"),
- messageHandlers=join(Generator.method_handler_list, "\n")))
+ constructorInit="\n".join(Generator.backend_constructor_init_list),
+ setters="\n".join(Generator.backend_setters_list),
+ fieldDeclarations="\n".join(Generator.backend_field_list),
+ methodNameDeclarations="\n".join(Generator.backend_method_name_declaration_list),
+ methods="\n".join(Generator.backend_method_implementation_list),
+ methodDeclarations="\n".join(Generator.backend_method_declaration_list),
+ messageHandlers="\n".join(Generator.method_handler_list)))
frontend_h_file.write(Templates.frontend_h.substitute(None,
- fieldDeclarations=join(Generator.frontend_class_field_lines, ""),
- domainClassList=join(Generator.frontend_domain_class_lines, "")))
+ fieldDeclarations="".join(Generator.frontend_class_field_lines),
+ domainClassList="".join(Generator.frontend_domain_class_lines)))
frontend_cpp_file.write(Templates.frontend_cpp.substitute(None,
- constructorInit=join(Generator.frontend_constructor_init_list, ""),
- methods=join(Generator.frontend_method_list, "\n")))
+ constructorInit="".join(Generator.frontend_constructor_init_list),
+ methods="\n".join(Generator.frontend_method_list)))
typebuilder_h_file.write(Templates.typebuilder_h.substitute(None,
- typeBuilders=join(flatten_list(Generator.type_builder_fragments), ""),
- forwards=join(Generator.type_builder_forwards, "")))
+ typeBuilders="".join(flatten_list(Generator.type_builder_fragments)),
+ forwards="".join(Generator.type_builder_forwards)))
typebuilder_cpp_file.write(Templates.typebuilder_cpp.substitute(None,
enumConstantValues=EnumConstants.get_enum_constant_code(),
- implCode=join(flatten_list(Generator.type_builder_impl_list), ""),
- validatorCode=join(flatten_list(Generator.validator_impl_list), "")))
+ implCode="".join(flatten_list(Generator.type_builder_impl_list)),
+ validatorCode="".join(flatten_list(Generator.validator_impl_list))))
backend_js_file.write(Templates.backend_js.substitute(None,
- domainInitializers=join(Generator.backend_js_domain_initializer_list, "")))
+ domainInitializers="".join(Generator.backend_js_domain_initializer_list)))
backend_h_file.close()
backend_cpp_file.close()
diff --git a/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp b/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp
index 70c2b5997..33b21b4fd 100644
--- a/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp
+++ b/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp
@@ -130,6 +130,7 @@ public:
virtual void onVersionChange(const String& version) { }
virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) { }
+ virtual void onForcedClose() { }
private:
InspectorIDBDatabaseCallbacks() { }
};
diff --git a/Source/WebCore/inspector/compile-front-end.py b/Source/WebCore/inspector/compile-front-end.py
index fee87cb77..31eadde70 100755
--- a/Source/WebCore/inspector/compile-front-end.py
+++ b/Source/WebCore/inspector/compile-front-end.py
@@ -30,7 +30,9 @@
import os
import os.path
import generate_protocol_externs
+import shutil
import sys
+import tempfile
inspector_path = "Source/WebCore/inspector"
inspector_frontend_path = inspector_path + "/front-end"
@@ -365,7 +367,8 @@ def dump_module(name, recursively, processed_modules):
command += " \\\n --js " + inspector_frontend_path + "/" + script
return command
-compiler_command = "java -jar ~/closure/compiler.jar --summary_detail_level 3 --compilation_level SIMPLE_OPTIMIZATIONS --warning_level VERBOSE --language_in ECMASCRIPT5 --accept_const_keyword \\\n"
+modules_dir = tempfile.mkdtemp()
+compiler_command = "java -jar ~/closure/compiler.jar --summary_detail_level 3 --compilation_level SIMPLE_OPTIMIZATIONS --warning_level VERBOSE --language_in ECMASCRIPT5 --accept_const_keyword --module_output_path_prefix %s/ \\\n" % modules_dir
process_recursively = len(sys.argv) == 2
if process_recursively:
@@ -407,3 +410,5 @@ if not process_recursively:
command += "\n"
os.system(command)
os.system("rm " + inspector_path + "/" + "InjectedScriptWebGLModuleSourceTmp.js")
+
+shutil.rmtree(modules_dir)
diff --git a/Source/WebCore/inspector/front-end/AdvancedSearchController.js b/Source/WebCore/inspector/front-end/AdvancedSearchController.js
index 695059375..be51bd764 100644
--- a/Source/WebCore/inspector/front-end/AdvancedSearchController.js
+++ b/Source/WebCore/inspector/front-end/AdvancedSearchController.js
@@ -585,7 +585,7 @@ WebInspector.FileBasedSearchResultsPane.prototype = {
var showMoreMatchesElement = new TreeElement(showMoreMatchesText, null, false);
fileTreeElement.appendChild(showMoreMatchesElement);
showMoreMatchesElement.listItemElement.addStyleClass("show-more-matches");
- showMoreMatchesElement.onselect = this._showMoreMatchesElementSelected.bind(this, searchResult, startMatchIndex);
+ showMoreMatchesElement.onselect = this._showMoreMatchesElementSelected.bind(this, searchResult, startMatchIndex, showMoreMatchesElement);
},
/**
@@ -629,7 +629,7 @@ WebInspector.FileBasedSearchResultsPane.prototype = {
fileTreeElement.listItemElement.appendChild(matchesCountSpan);
var searchResult = this._searchResults[searchResultIndex];
- fileTreeElement.onexpand = this._fileTreeElementExpanded.bind(this, searchResult);
+ fileTreeElement.onexpand = this._fileTreeElementExpanded.bind(this, searchResult, fileTreeElement);
// Expand until at least certain amount of matches is expanded.
if (this._matchesExpandedCount < WebInspector.FileBasedSearchResultsPane.matchesExpandedByDefaultCount)
diff --git a/Source/WebCore/inspector/front-end/ElementsTreeOutline.js b/Source/WebCore/inspector/front-end/ElementsTreeOutline.js
index 18cab8ae4..fa3bfe94f 100644
--- a/Source/WebCore/inspector/front-end/ElementsTreeOutline.js
+++ b/Source/WebCore/inspector/front-end/ElementsTreeOutline.js
@@ -1042,7 +1042,7 @@ WebInspector.ElementsTreeElement.prototype = {
}
},
- onselect: function(treeElement, selectedByUser)
+ onselect: function(selectedByUser)
{
this.treeOutline.suppressRevealAndSelect = true;
this.treeOutline.selectDOMNode(this.representedObject, selectedByUser);
diff --git a/Source/WebCore/inspector/front-end/EventListenersSidebarPane.js b/Source/WebCore/inspector/front-end/EventListenersSidebarPane.js
index d8c45d879..9324a5467 100644
--- a/Source/WebCore/inspector/front-end/EventListenersSidebarPane.js
+++ b/Source/WebCore/inspector/front-end/EventListenersSidebarPane.js
@@ -175,7 +175,7 @@ WebInspector.EventListenersSection.prototype.__proto__ = WebInspector.Properties
*/
WebInspector.EventListenerBar = function(eventListener, nodeId, linkifier)
{
- WebInspector.ObjectPropertiesSection.call(this);
+ WebInspector.ObjectPropertiesSection.call(this, WebInspector.RemoteObject.fromPrimitiveValue(""));
this.eventListener = eventListener;
this._nodeId = nodeId;
diff --git a/Source/WebCore/inspector/front-end/MemoryStatistics.js b/Source/WebCore/inspector/front-end/MemoryStatistics.js
index aa52e222e..b4596e194 100644
--- a/Source/WebCore/inspector/front-end/MemoryStatistics.js
+++ b/Source/WebCore/inspector/front-end/MemoryStatistics.js
@@ -287,8 +287,8 @@ WebInspector.MemoryStatistics.prototype = {
_calculateVisibleIndexes: function()
{
var calculator = this._timelinePanel.calculator;
- var start = calculator.minimumBoundary * 1000;
- var end = calculator.maximumBoundary * 1000;
+ var start = calculator.minimumBoundary() * 1000;
+ var end = calculator.maximumBoundary() * 1000;
var firstIndex = 0;
var lastIndex = this._counters.length - 1;
for (var i = 0; i < this._counters.length; i++) {
diff --git a/Source/WebCore/inspector/front-end/NetworkPanel.js b/Source/WebCore/inspector/front-end/NetworkPanel.js
index 6aa5fc935..b0b11e011 100644
--- a/Source/WebCore/inspector/front-end/NetworkPanel.js
+++ b/Source/WebCore/inspector/front-end/NetworkPanel.js
@@ -305,7 +305,7 @@ WebInspector.NetworkLogView.prototype = {
this._timelineSortSelector.selectedIndex = 0;
this._updateOffscreenRows();
- this.performSearch(null);
+ this.searchCanceled();
},
_sortByTimeline: function()
@@ -451,7 +451,7 @@ WebInspector.NetworkLogView.prototype = {
selectMultiple = true;
this._filter(e.target, selectMultiple);
- this.performSearch(null);
+ this.searchCanceled();
this._updateSummaryBar();
},
@@ -1083,6 +1083,7 @@ WebInspector.NetworkLogView.prototype = {
_clearSearchMatchedList: function()
{
+ delete this._searchRegExp;
this._matchedRequests = [];
this._matchedRequestsMap = {};
this._removeAllHighlights();
@@ -1170,8 +1171,8 @@ WebInspector.NetworkLogView.prototype = {
if (this._currentMatchedRequestIndex !== -1)
currentMatchedRequestId = this._matchedRequests[this._currentMatchedRequestIndex];
- this._searchRegExp = createPlainTextSearchRegex(searchQuery, "i");
this._clearSearchMatchedList();
+ this._searchRegExp = createPlainTextSearchRegex(searchQuery, "i");
var childNodes = this._dataGrid.dataTableBody.childNodes;
var requestNodes = Array.prototype.slice.call(childNodes, 0, childNodes.length - 1); // drop the filler row.
@@ -1191,7 +1192,8 @@ WebInspector.NetworkLogView.prototype = {
/**
* @param {string} query
*/
- performFilter: function(query) {
+ performFilter: function(query)
+ {
this._filteredOutRequests.clear();
var filterRegExp = createPlainTextSearchRegex(query, "i");
var shownRequests = [];
@@ -1462,19 +1464,28 @@ WebInspector.NetworkPanel.prototype = {
/**
* @param {string} searchQuery
- */
+ */
performSearch: function(searchQuery)
{
this._networkLogView.performSearch(searchQuery);
},
-
+
+ /**
+ * @return {boolean}
+ */
+ canFilter: function()
+ {
+ return true;
+ },
+
/**
* @param {string} query
*/
- performFilter: function(query){
+ performFilter: function(query)
+ {
this._networkLogView.performFilter(query);
},
-
+
jumpToPreviousSearchResult: function()
{
this._networkLogView.jumpToPreviousSearchResult();
@@ -1514,6 +1525,7 @@ WebInspector.NetworkPanel.prototype.__proto__ = WebInspector.Panel.prototype;
/**
* @constructor
+ * @implements {WebInspector.TimelineGrid.Calculator}
*/
WebInspector.NetworkBaseCalculator = function()
{
@@ -1522,12 +1534,12 @@ WebInspector.NetworkBaseCalculator = function()
WebInspector.NetworkBaseCalculator.prototype = {
computePosition: function(time)
{
- return (time - this.minimumBoundary) / this.boundarySpan * this._workingArea;
+ return (time - this._minimumBoundary) / this.boundarySpan() * this._workingArea;
},
computeBarGraphPercentages: function(item)
{
- return {start: 0, middle: 0, end: (this._value(item) / this.boundarySpan) * 100};
+ return {start: 0, middle: 0, end: (this._value(item) / this.boundarySpan()) * 100};
},
computeBarGraphLabels: function(item)
@@ -1536,18 +1548,18 @@ WebInspector.NetworkBaseCalculator.prototype = {
return {left: label, right: label, tooltip: label};
},
- get boundarySpan()
+ boundarySpan: function()
{
- return this.maximumBoundary - this.minimumBoundary;
+ return this._maximumBoundary - this._minimumBoundary;
},
updateBoundaries: function(item)
{
- this.minimumBoundary = 0;
+ this._minimumBoundary = 0;
var value = this._value(item);
- if (typeof this.maximumBoundary === "undefined" || value > this.maximumBoundary) {
- this.maximumBoundary = value;
+ if (typeof this._maximumBoundary === "undefined" || value > this._maximumBoundary) {
+ this._maximumBoundary = value;
return true;
}
return false;
@@ -1555,8 +1567,18 @@ WebInspector.NetworkBaseCalculator.prototype = {
reset: function()
{
- delete this.minimumBoundary;
- delete this.maximumBoundary;
+ delete this._minimumBoundary;
+ delete this._maximumBoundary;
+ },
+
+ maximumBoundary: function()
+ {
+ return this._maximumBoundary;
+ },
+
+ minimumBoundary: function()
+ {
+ return this._minimumBoundary;
},
_value: function(item)
@@ -1590,17 +1612,17 @@ WebInspector.NetworkTimeCalculator.prototype = {
computeBarGraphPercentages: function(request)
{
if (request.startTime !== -1)
- var start = ((request.startTime - this.minimumBoundary) / this.boundarySpan) * 100;
+ var start = ((request.startTime - this._minimumBoundary) / this.boundarySpan()) * 100;
else
var start = 0;
if (request.responseReceivedTime !== -1)
- var middle = ((request.responseReceivedTime - this.minimumBoundary) / this.boundarySpan) * 100;
+ var middle = ((request.responseReceivedTime - this._minimumBoundary) / this.boundarySpan()) * 100;
else
var middle = (this.startAtZero ? start : 100);
if (request.endTime !== -1)
- var end = ((request.endTime - this.minimumBoundary) / this.boundarySpan) * 100;
+ var end = ((request.endTime - this._minimumBoundary) / this.boundarySpan()) * 100;
else
var end = (this.startAtZero ? middle : 100);
@@ -1619,7 +1641,7 @@ WebInspector.NetworkTimeCalculator.prototype = {
// of a specific event. If startAtZero is set, then this is useless, and we
// want to return 0.
if (eventTime !== -1 && !this.startAtZero)
- return ((eventTime - this.minimumBoundary) / this.boundarySpan) * 100;
+ return ((eventTime - this._minimumBoundary) / this.boundarySpan()) * 100;
return 0;
},
@@ -1629,8 +1651,8 @@ WebInspector.NetworkTimeCalculator.prototype = {
if (eventTime === -1 || this.startAtZero)
return false;
- if (typeof this.maximumBoundary === "undefined" || eventTime > this.maximumBoundary) {
- this.maximumBoundary = eventTime;
+ if (typeof this._maximumBoundary === "undefined" || eventTime > this._maximumBoundary) {
+ this._maximumBoundary = eventTime;
return true;
}
return false;
@@ -1674,14 +1696,14 @@ WebInspector.NetworkTimeCalculator.prototype = {
else
lowerBound = this._lowerBound(request);
- if (lowerBound !== -1 && (typeof this.minimumBoundary === "undefined" || lowerBound < this.minimumBoundary)) {
- this.minimumBoundary = lowerBound;
+ if (lowerBound !== -1 && (typeof this._minimumBoundary === "undefined" || lowerBound < this._minimumBoundary)) {
+ this._minimumBoundary = lowerBound;
didChange = true;
}
var upperBound = this._upperBound(request);
- if (upperBound !== -1 && (typeof this.maximumBoundary === "undefined" || upperBound > this.maximumBoundary)) {
- this.maximumBoundary = upperBound;
+ if (upperBound !== -1 && (typeof this._maximumBoundary === "undefined" || upperBound > this._maximumBoundary)) {
+ this._maximumBoundary = upperBound;
didChange = true;
}
diff --git a/Source/WebCore/inspector/front-end/Panel.js b/Source/WebCore/inspector/front-end/Panel.js
index e0f965b07..8cee1761c 100644
--- a/Source/WebCore/inspector/front-end/Panel.js
+++ b/Source/WebCore/inspector/front-end/Panel.js
@@ -126,9 +126,25 @@ WebInspector.Panel.prototype = {
},
/**
+ * @param {string} query
* @param {string} text
*/
- replaceAllWith: function(text)
+ replaceAllWith: function(query, text)
+ {
+ },
+
+ /**
+ * @return {boolean}
+ */
+ canFilter: function()
+ {
+ return false;
+ },
+
+ /**
+ * @param {string} query
+ */
+ performFilter: function(query)
{
},
diff --git a/Source/WebCore/inspector/front-end/SearchController.js b/Source/WebCore/inspector/front-end/SearchController.js
index 8d2e726d3..04820da1d 100644
--- a/Source/WebCore/inspector/front-end/SearchController.js
+++ b/Source/WebCore/inspector/front-end/SearchController.js
@@ -276,7 +276,7 @@ WebInspector.SearchController.prototype = {
_updateFilterVisibility: function()
{
- if (typeof WebInspector.inspectorView.currentPanel().performFilter === "function")
+ if (WebInspector.inspectorView.currentPanel().canFilter())
this._filterCheckboxContainer.removeStyleClass("hidden");
else
this._filterCheckboxContainer.addStyleClass("hidden");
@@ -431,8 +431,7 @@ WebInspector.SearchController.prototype = {
*/
_performFilter: function(query)
{
- if (typeof WebInspector.inspectorView.currentPanel().performFilter === "function")
- WebInspector.inspectorView.currentPanel().performFilter(query);
+ WebInspector.inspectorView.currentPanel().performFilter(query);
},
_onFilterInput: function(event)
diff --git a/Source/WebCore/inspector/front-end/SidebarPane.js b/Source/WebCore/inspector/front-end/SidebarPane.js
index b7fa747dd..af6ed1abd 100644
--- a/Source/WebCore/inspector/front-end/SidebarPane.js
+++ b/Source/WebCore/inspector/front-end/SidebarPane.js
@@ -108,8 +108,11 @@ WebInspector.SidebarPane.prototype = {
return;
this._expanded = true;
this.element.addStyleClass("expanded");
- if (this.onexpand)
- this.onexpand(this);
+ this.onexpand();
+ },
+
+ onexpand: function()
+ {
},
collapse: function()
@@ -118,8 +121,6 @@ WebInspector.SidebarPane.prototype = {
return;
this._expanded = false;
this.element.removeStyleClass("expanded");
- if (this.oncollapse)
- this.oncollapse(this);
},
toggleExpanded: function()
diff --git a/Source/WebCore/inspector/front-end/TimelineGrid.js b/Source/WebCore/inspector/front-end/TimelineGrid.js
index a823adef6..a0cd7c85c 100644
--- a/Source/WebCore/inspector/front-end/TimelineGrid.js
+++ b/Source/WebCore/inspector/front-end/TimelineGrid.js
@@ -132,7 +132,7 @@ WebInspector.TimelineGrid.prototype = {
left = dividersElementClientWidth / dividerCount * i + paddingLeft;
dividerLabelBar._labelElement.textContent = "";
} else {
- left = calculator.computePosition(calculator.minimumBoundary + slice * i);
+ left = calculator.computePosition(calculator.minimumBoundary() + slice * i);
dividerLabelBar._labelElement.textContent = calculator.formatTime(slice * i);
}
var percentLeft = 100 * left / dividersElementClientWidth;
@@ -200,3 +200,25 @@ WebInspector.TimelineGrid.prototype = {
this._dividersElement.style.top = scrollTop + "px";
}
}
+
+/**
+ * @interface
+ */
+WebInspector.TimelineGrid.Calculator = function() { }
+
+WebInspector.TimelineGrid.Calculator.prototype = {
+ /** @param {number} time */
+ computePosition: function(time) { },
+
+ /** @param {number} time */
+ formatTime: function(time) { },
+
+ /** @return {number} */
+ minimumBoundary: function() { },
+
+ /** @return {number} */
+ maximumBoundary: function() { },
+
+ /** @return {number} */
+ boundarySpan: function() { }
+}
diff --git a/Source/WebCore/inspector/front-end/TimelineOverviewPane.js b/Source/WebCore/inspector/front-end/TimelineOverviewPane.js
index 48d99602c..797df208b 100644
--- a/Source/WebCore/inspector/front-end/TimelineOverviewPane.js
+++ b/Source/WebCore/inspector/front-end/TimelineOverviewPane.js
@@ -652,13 +652,13 @@ WebInspector.TimelineOverviewCalculator.prototype = {
*/
computePosition: function(time)
{
- return (time - this.minimumBoundary) / this.boundarySpan * this._workingArea + this.paddingLeft;
+ return (time - this._minimumBoundary) / this.boundarySpan() * this._workingArea + this.paddingLeft;
},
computeBarGraphPercentages: function(record)
{
- var start = (WebInspector.TimelineModel.startTimeInSeconds(record) - this.minimumBoundary) / this.boundarySpan * 100;
- var end = (WebInspector.TimelineModel.endTimeInSeconds(record) - this.minimumBoundary) / this.boundarySpan * 100;
+ var start = (WebInspector.TimelineModel.startTimeInSeconds(record) - this._minimumBoundary) / this.boundarySpan() * 100;
+ var end = (WebInspector.TimelineModel.endTimeInSeconds(record) - this._minimumBoundary) / this.boundarySpan() * 100;
return {start: start, end: end};
},
@@ -668,9 +668,8 @@ WebInspector.TimelineOverviewCalculator.prototype = {
*/
setWindow: function(minimum, maximum)
{
- this.minimumBoundary = minimum >= 0 ? minimum : undefined;
- this.maximumBoundary = maximum >= 0 ? maximum : undefined;
- this.boundarySpan = this.maximumBoundary - this.minimumBoundary;
+ this._minimumBoundary = minimum >= 0 ? minimum : undefined;
+ this._maximumBoundary = maximum >= 0 ? maximum : undefined;
},
/**
@@ -691,6 +690,21 @@ WebInspector.TimelineOverviewCalculator.prototype = {
formatTime: function(value)
{
return Number.secondsToString(value);
+ },
+
+ maximumBoundary: function()
+ {
+ return this._maximumBoundary;
+ },
+
+ minimumBoundary: function()
+ {
+ return this._minimumBoundary;
+ },
+
+ boundarySpan: function()
+ {
+ return this._maximumBoundary - this._minimumBoundary;
}
}
diff --git a/Source/WebCore/inspector/front-end/TimelinePanel.js b/Source/WebCore/inspector/front-end/TimelinePanel.js
index 661d6bb8c..dbfd8a8c0 100644
--- a/Source/WebCore/inspector/front-end/TimelinePanel.js
+++ b/Source/WebCore/inspector/front-end/TimelinePanel.js
@@ -415,7 +415,7 @@ WebInspector.TimelinePanel.prototype = {
_shouldShowFrames: function()
{
- return this._frameMode && this._presentationModel.frames().length > 0 && this.calculator.boundarySpan < 1.0;
+ return this._frameMode && this._presentationModel.frames().length > 0 && this.calculator.boundarySpan() < 1.0;
},
_updateFrames: function()
@@ -996,6 +996,7 @@ WebInspector.TimelinePanel.prototype.__proto__ = WebInspector.Panel.prototype;
/**
* @constructor
* @param {WebInspector.TimelineModel} model
+ * @implements {WebInspector.TimelineGrid.Calculator}
*/
WebInspector.TimelineCalculator = function(model)
{
@@ -1010,15 +1011,15 @@ WebInspector.TimelineCalculator.prototype = {
*/
computePosition: function(time)
{
- return (time - this.minimumBoundary) / this.boundarySpan * this._workingArea + this.paddingLeft;
+ return (time - this._minimumBoundary) / this.boundarySpan() * this._workingArea + this.paddingLeft;
},
computeBarGraphPercentages: function(record)
{
- var start = (record.startTime - this.minimumBoundary) / this.boundarySpan * 100;
- var end = (record.startTime + record.selfTime - this.minimumBoundary) / this.boundarySpan * 100;
- var endWithChildren = (record.lastChildEndTime - this.minimumBoundary) / this.boundarySpan * 100;
- var cpuWidth = record.cpuTime / this.boundarySpan * 100;
+ var start = (record.startTime - this._minimumBoundary) / this.boundarySpan() * 100;
+ var end = (record.startTime + record.selfTime - this._minimumBoundary) / this.boundarySpan() * 100;
+ var endWithChildren = (record.lastChildEndTime - this._minimumBoundary) / this.boundarySpan() * 100;
+ var cpuWidth = record.cpuTime / this.boundarySpan() * 100;
return {start: start, end: end, endWithChildren: endWithChildren, cpuWidth: cpuWidth};
},
@@ -1043,9 +1044,8 @@ WebInspector.TimelineCalculator.prototype = {
setWindow: function(minimumBoundary, maximumBoundary)
{
- this.minimumBoundary = minimumBoundary;
- this.maximumBoundary = maximumBoundary;
- this.boundarySpan = this.maximumBoundary - this.minimumBoundary;
+ this._minimumBoundary = minimumBoundary;
+ this._maximumBoundary = maximumBoundary;
},
/**
@@ -1060,7 +1060,22 @@ WebInspector.TimelineCalculator.prototype = {
formatTime: function(value)
{
- return Number.secondsToString(value + this.minimumBoundary - this._model.minimumRecordTime());
+ return Number.secondsToString(value + this._minimumBoundary - this._model.minimumRecordTime());
+ },
+
+ maximumBoundary: function()
+ {
+ return this._maximumBoundary;
+ },
+
+ minimumBoundary: function()
+ {
+ return this._minimumBoundary;
+ },
+
+ boundarySpan: function()
+ {
+ return this._maximumBoundary - this._minimumBoundary;
}
}
diff --git a/Source/WebCore/inspector/front-end/UIUtils.js b/Source/WebCore/inspector/front-end/UIUtils.js
index c1e07584e..e140cf6f7 100644
--- a/Source/WebCore/inspector/front-end/UIUtils.js
+++ b/Source/WebCore/inspector/front-end/UIUtils.js
@@ -60,29 +60,46 @@ WebInspector._elementDragStart = function(elementDragStart, elementDrag, element
if (elementDragStart && !elementDragStart(event))
return;
- // Install glass pane
- if (WebInspector._elementDraggingGlassPane)
+ if (WebInspector._elementDraggingGlassPane) {
WebInspector._elementDraggingGlassPane.dispose();
+ delete WebInspector._elementDraggingGlassPane;
+ }
- WebInspector._elementDraggingGlassPane = new WebInspector.GlassPane();
+ var targetDocument = event.target.ownerDocument;
WebInspector._elementDraggingEventListener = elementDrag;
WebInspector._elementEndDraggingEventListener = elementDragEnd;
+ WebInspector._mouseOutWhileDraggingTargetDocument = targetDocument;
- var targetDocument = event.target.ownerDocument;
targetDocument.addEventListener("mousemove", WebInspector._elementDraggingEventListener, true);
targetDocument.addEventListener("mouseup", WebInspector._elementDragEnd, true);
+ targetDocument.addEventListener("mouseout", WebInspector._mouseOutWhileDragging, true);
targetDocument.body.style.cursor = cursor;
event.preventDefault();
}
+WebInspector._mouseOutWhileDragging = function()
+{
+ WebInspector._unregisterMouseOutWhileDragging();
+ WebInspector._elementDraggingGlassPane = new WebInspector.GlassPane();
+}
+
+WebInspector._unregisterMouseOutWhileDragging = function()
+{
+ if (!WebInspector._mouseOutWhileDraggingTargetDocument)
+ return;
+ WebInspector._mouseOutWhileDraggingTargetDocument.removeEventListener("mouseout", WebInspector._mouseOutWhileDragging, true);
+ delete WebInspector._mouseOutWhileDraggingTargetDocument;
+}
+
WebInspector._elementDragEnd = function(event)
{
var targetDocument = event.target.ownerDocument;
targetDocument.removeEventListener("mousemove", WebInspector._elementDraggingEventListener, true);
targetDocument.removeEventListener("mouseup", WebInspector._elementDragEnd, true);
+ WebInspector._unregisterMouseOutWhileDragging();
targetDocument.body.style.removeProperty("cursor");
diff --git a/Source/WebCore/inspector/front-end/treeoutline.js b/Source/WebCore/inspector/front-end/treeoutline.js
index ddbdbb0e8..fd02f4e02 100644
--- a/Source/WebCore/inspector/front-end/treeoutline.js
+++ b/Source/WebCore/inspector/front-end/treeoutline.js
@@ -122,9 +122,6 @@ TreeOutline.prototype.insertChild = function(child, index)
}
child._attach();
-
- if (this.treeOutline.onadd)
- this.treeOutline.onadd(child);
}
TreeOutline.prototype.removeChildAtIndex = function(childIndex)
@@ -286,15 +283,6 @@ TreeOutline.prototype.findTreeElement = function(representedObject, isAncestor,
return this.getCachedTreeElement(representedObject);
}
-TreeOutline.prototype._treeElementDidChange = function(treeElement)
-{
- if (treeElement.treeOutline !== this)
- return;
-
- if (this.onchange)
- this.onchange(treeElement);
-}
-
TreeOutline.prototype.treeElementFromPoint = function(x, y)
{
var node = this._childrenListNode.ownerDocument.elementFromPoint(x, y);
@@ -376,16 +364,12 @@ TreeOutline.prototype._treeKeyDown = function(event)
this.selectedTreeElement.expand();
}
}
- } else if (event.keyCode === 8 /* Backspace */ || event.keyCode === 46 /* Delete */) {
- if (this.selectedTreeElement.ondelete)
- handled = this.selectedTreeElement.ondelete();
- } else if (isEnterKey(event)) {
- if (this.selectedTreeElement.onenter)
- handled = this.selectedTreeElement.onenter();
- } else if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Space.code) {
- if (this.selectedTreeElement.onspace)
- handled = this.selectedTreeElement.onspace();
- }
+ } else if (event.keyCode === 8 /* Backspace */ || event.keyCode === 46 /* Delete */)
+ handled = this.selectedTreeElement.ondelete();
+ else if (isEnterKey(event))
+ handled = this.selectedTreeElement.onenter();
+ else if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Space.code)
+ handled = this.selectedTreeElement.onspace();
if (nextSelectedElement) {
nextSelectedElement.reveal();
@@ -505,8 +489,7 @@ TreeOutline.prototype._searchInputKeyDown = function(event)
} else if (isEnterKey(event)) {
var lastSearchMatchElement = this._currentSearchMatchElement;
this._searchFinished();
- if (lastSearchMatchElement && lastSearchMatchElement.onenter)
- lastSearchMatchElement.onenter();
+ lastSearchMatchElement.onenter();
handled = true;
}
@@ -713,9 +696,6 @@ TreeElement.prototype = {
_fireDidChange: function()
{
delete this._didChangeTimeoutIdentifier;
-
- if (this.treeOutline)
- this.treeOutline._treeElementDidChange(this);
},
didChange: function()
@@ -773,8 +753,7 @@ TreeElement.prototype._attach = function()
this._listItemNode.addEventListener("click", TreeElement.treeElementToggled, false);
this._listItemNode.addEventListener("dblclick", TreeElement.treeElementDoubleClicked, false);
- if (this.onattach)
- this.onattach(this);
+ this.onattach();
}
var nextSibling = null;
@@ -840,11 +819,10 @@ TreeElement.treeElementDoubleClicked = function(event)
if (!element || !element.treeElement)
return;
- if (element.treeElement.ondblclick) {
- var handled = element.treeElement.ondblclick.call(element.treeElement, event);
- if (handled)
- return;
- } else if (element.treeElement.hasChildren && !element.treeElement.expanded)
+ var handled = element.treeElement.ondblclick.call(element.treeElement, event);
+ if (handled)
+ return;
+ if (element.treeElement.hasChildren && !element.treeElement.expanded)
element.treeElement.expand();
}
@@ -860,8 +838,7 @@ TreeElement.prototype.collapse = function()
if (this.treeOutline)
this.treeOutline._expandedStateMap.put(this.representedObject, false);
- if (this.oncollapse)
- this.oncollapse(this);
+ this.oncollapse();
}
TreeElement.prototype.collapseRecursively = function()
@@ -879,9 +856,9 @@ TreeElement.prototype.expand = function()
if (!this.hasChildren || (this.expanded && !this._shouldRefreshChildren && this._childrenListNode))
return;
- // Set this before onpopulate. Since onpopulate can add elements and call onadd, this makes
+ // Set this before onpopulate. Since onpopulate can add elements, this makes
// sure the expanded flag is true before calling those functions. This prevents the possibility
- // of an infinite loop if onpopulate or onadd were to call expand.
+ // of an infinite loop if onpopulate were to call expand.
this.expanded = true;
if (this.treeOutline)
@@ -915,8 +892,7 @@ TreeElement.prototype.expand = function()
if (this._childrenListNode)
this._childrenListNode.classList.add("expanded");
- if (this.onexpand)
- this.onexpand(this);
+ this.onexpand();
}
TreeElement.prototype.expandRecursively = function(maxDepth)
@@ -962,8 +938,7 @@ TreeElement.prototype.reveal = function()
currentAncestor = currentAncestor.parent;
}
- if (this.onreveal)
- this.onreveal(this);
+ this.onreveal(this);
}
TreeElement.prototype.revealed = function()
@@ -1009,9 +984,7 @@ TreeElement.prototype.select = function(omitFocus, selectedByUser)
if (this._listItemNode)
this._listItemNode.classList.add("selected");
- if (this.onselect)
- return this.onselect(this, selectedByUser);
- return false;
+ return this.onselect(selectedByUser);
}
/**
@@ -1035,16 +1008,21 @@ TreeElement.prototype.deselect = function(supressOnDeselect)
this.treeOutline.selectedTreeElement = null;
if (this._listItemNode)
this._listItemNode.classList.remove("selected");
-
- if (this.ondeselect && !supressOnDeselect)
- this.ondeselect(this);
return true;
}
-TreeElement.prototype.onpopulate = function()
-{
- // Overriden by subclasses.
-}
+// Overridden by subclasses.
+TreeElement.prototype.onpopulate = function() { }
+TreeElement.prototype.onenter = function() { }
+TreeElement.prototype.ondelete = function() { }
+TreeElement.prototype.onspace = function() { }
+TreeElement.prototype.onattach = function() { }
+TreeElement.prototype.onexpand = function() { }
+TreeElement.prototype.oncollapse = function() { }
+TreeElement.prototype.ondblclick = function() { }
+TreeElement.prototype.onreveal = function() { }
+/** @param {boolean} selectedByUser */
+TreeElement.prototype.onselect = function(selectedByUser) { }
/**
* @param {boolean} skipUnrevealed
diff --git a/Source/WebCore/page/ContentSecurityPolicy.cpp b/Source/WebCore/page/ContentSecurityPolicy.cpp
index 74bec7bca..a3834faa7 100644
--- a/Source/WebCore/page/ContentSecurityPolicy.cpp
+++ b/Source/WebCore/page/ContentSecurityPolicy.cpp
@@ -262,6 +262,9 @@ void CSPSourceList::parse(const UChar* begin, const UChar* end)
bool isFirstSourceInList = true;
while (position < end) {
skipWhile<isASCIISpace>(position, end);
+ if (position == end)
+ return;
+
const UChar* beginSource = position;
skipWhile<isSourceCharacter>(position, end);
diff --git a/Source/WebCore/page/FrameView.h b/Source/WebCore/page/FrameView.h
index 6ab968e85..7e73150b8 100644
--- a/Source/WebCore/page/FrameView.h
+++ b/Source/WebCore/page/FrameView.h
@@ -398,23 +398,21 @@ private:
// Override ScrollView methods to do point conversion via renderers, in order to
// take transforms into account.
- virtual IntRect convertToContainingView(const IntRect&) const;
- virtual IntRect convertFromContainingView(const IntRect&) const;
- virtual IntPoint convertToContainingView(const IntPoint&) const;
- virtual IntPoint convertFromContainingView(const IntPoint&) const;
+ virtual IntRect convertToContainingView(const IntRect&) const OVERRIDE;
+ virtual IntRect convertFromContainingView(const IntRect&) const OVERRIDE;
+ virtual IntPoint convertToContainingView(const IntPoint&) const OVERRIDE;
+ virtual IntPoint convertFromContainingView(const IntPoint&) const OVERRIDE;
// ScrollableArea interface
- virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&);
- virtual bool isActive() const;
- virtual void getTickmarks(Vector<IntRect>&) const;
- virtual void scrollTo(const IntSize&);
- virtual void setVisibleScrollerThumbRect(const IntRect&);
- virtual bool isOnActivePage() const;
- virtual ScrollableArea* enclosingScrollableArea() const;
+ virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&) OVERRIDE;
+ virtual bool isActive() const OVERRIDE;
+ virtual void getTickmarks(Vector<IntRect>&) const OVERRIDE;
+ virtual void scrollTo(const IntSize&) OVERRIDE;
+ virtual void setVisibleScrollerThumbRect(const IntRect&) OVERRIDE;
+ virtual bool isOnActivePage() const OVERRIDE;
+ virtual ScrollableArea* enclosingScrollableArea() const OVERRIDE;
virtual IntRect scrollableAreaBoundingBox() const OVERRIDE;
-
- void updateScrollableAreaSet();
-
+ virtual bool scrollAnimatorEnabled() const OVERRIDE;
#if USE(ACCELERATED_COMPOSITING)
virtual GraphicsLayer* layerForHorizontalScrollbar() const OVERRIDE;
virtual GraphicsLayer* layerForVerticalScrollbar() const OVERRIDE;
@@ -424,9 +422,9 @@ private:
#endif
#endif
- virtual void notifyPageThatContentAreaWillPaint() const;
+ void updateScrollableAreaSet();
- virtual bool scrollAnimatorEnabled() const;
+ virtual void notifyPageThatContentAreaWillPaint() const;
void deferredRepaintTimerFired(Timer<FrameView>*);
void doDeferredRepaints();
diff --git a/Source/WebCore/platform/FractionalLayoutUnit.h b/Source/WebCore/platform/FractionalLayoutUnit.h
index f6daceac7..c3bd697d0 100644
--- a/Source/WebCore/platform/FractionalLayoutUnit.h
+++ b/Source/WebCore/platform/FractionalLayoutUnit.h
@@ -36,6 +36,7 @@
#include <math.h>
#include <stdlib.h>
#include <wtf/MathExtras.h>
+#include <wtf/SaturatedArithmetic.h>
#if PLATFORM(QT)
#include <QDataStream>
@@ -63,7 +64,7 @@ static const int kFixedPointDenominator = 60;
static const int kFixedPointDenominator = 1;
#endif
const int intMaxForLayoutUnit = INT_MAX / kFixedPointDenominator;
-const int intMinForLayoutUnit = -intMaxForLayoutUnit;
+const int intMinForLayoutUnit = INT_MIN / kFixedPointDenominator;
class FractionalLayoutUnit {
public:
@@ -73,11 +74,27 @@ public:
FractionalLayoutUnit() : m_value(0) { }
#if ENABLE(SUBPIXEL_LAYOUT)
- FractionalLayoutUnit(int value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value * kFixedPointDenominator; }
- FractionalLayoutUnit(unsigned short value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value * kFixedPointDenominator; }
- FractionalLayoutUnit(unsigned int value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value * kFixedPointDenominator; }
- FractionalLayoutUnit(float value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value * kFixedPointDenominator; }
- FractionalLayoutUnit(double value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value * kFixedPointDenominator; }
+ FractionalLayoutUnit(int value) { setValue(value); }
+ FractionalLayoutUnit(unsigned short value) { setValue(value); }
+ FractionalLayoutUnit(unsigned int value) { setValue(value); }
+ FractionalLayoutUnit(float value)
+ {
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ m_value = clampTo<float>(value * kFixedPointDenominator, INT_MIN, INT_MAX);
+#else
+ REPORT_OVERFLOW(isInBounds(value));
+ m_value = value * kFixedPointDenominator;
+#endif
+ }
+ FractionalLayoutUnit(double value)
+ {
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ m_value = clampTo<double>(value * kFixedPointDenominator, INT_MIN, INT_MAX);
+#else
+ REPORT_OVERFLOW(isInBounds(value));
+ m_value = value * kFixedPointDenominator;
+#endif
+ }
#else
FractionalLayoutUnit(int value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value; }
FractionalLayoutUnit(unsigned short value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value; }
@@ -89,25 +106,42 @@ public:
static FractionalLayoutUnit fromFloatCeil(float value)
{
- REPORT_OVERFLOW(isInBounds(value));
FractionalLayoutUnit v;
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ v.m_value = clampToInteger(ceilf(value * kFixedPointDenominator));
+#else
+ REPORT_OVERFLOW(isInBounds(value));
v.m_value = ceilf(value * kFixedPointDenominator);
+#endif
return v;
}
static FractionalLayoutUnit fromFloatFloor(float value)
{
- REPORT_OVERFLOW(isInBounds(value));
FractionalLayoutUnit v;
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ v.m_value = clampToInteger(floorf(value * kFixedPointDenominator));
+#else
+ REPORT_OVERFLOW(isInBounds(value));
v.m_value = floorf(value * kFixedPointDenominator);
+#endif
return v;
}
static FractionalLayoutUnit fromFloatRound(float value)
{
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
if (value >= 0)
+ return clamp(value + epsilon() / 2.0f);
+ return clamp(value - epsilon() / 2.0f);
+#else
+ if (value >= 0) {
+ REPORT_OVERFLOW(isInBounds(value + epsilon() / 2.0f));
return FractionalLayoutUnit(value + epsilon() / 2.0f);
+ }
+ REPORT_OVERFLOW(isInBounds(value - epsilon() / 2.0f));
return FractionalLayoutUnit(value - epsilon() / 2.0f);
+#endif
}
#if ENABLE(SUBPIXEL_LAYOUT)
@@ -143,8 +177,8 @@ public:
return *this;
}
- int rawValue() const { return m_value; }
- void setRawValue(int value) { m_value = value; }
+ inline int rawValue() const { return m_value; }
+ inline void setRawValue(int value) { m_value = value; }
void setRawValue(long long value)
{
REPORT_OVERFLOW(value > std::numeric_limits<int>::min() && value < std::numeric_limits<int>::max());
@@ -214,7 +248,7 @@ public:
{
return clampTo<FractionalLayoutUnit>(value, FractionalLayoutUnit::min(), FractionalLayoutUnit::max());
}
-
+
private:
static bool isInBounds(int value)
{
@@ -228,6 +262,33 @@ private:
{
return ::fabs(value) <= std::numeric_limits<int>::max() / kFixedPointDenominator;
}
+
+ inline void setValue(int value)
+ {
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ if (value >= intMaxForLayoutUnit)
+ m_value = std::numeric_limits<int>::max();
+ else if (value <= intMinForLayoutUnit)
+ m_value = std::numeric_limits<int>::min();
+ else
+ m_value = value * kFixedPointDenominator;
+#else
+ REPORT_OVERFLOW(isInBounds(value));
+ m_value = value * kFixedPointDenominator;
+#endif
+ }
+ inline void setValue(unsigned value)
+ {
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ if (value >= static_cast<unsigned>(intMaxForLayoutUnit))
+ m_value = std::numeric_limits<int>::max();
+ else
+ m_value = value * kFixedPointDenominator;
+#else
+ REPORT_OVERFLOW(isInBounds(value));
+ m_value = value * kFixedPointDenominator;
+#endif
+ }
int m_value;
};
@@ -411,7 +472,9 @@ inline FractionalLayoutUnit boundedMultiply(const FractionalLayoutUnit& a, const
inline FractionalLayoutUnit operator*(const FractionalLayoutUnit& a, const FractionalLayoutUnit& b)
{
-#if ENABLE(SUBPIXEL_LAYOUT)
+#if ENABLE(SUBPIXEL_LAYOUT) && ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ return boundedMultiply(a, b);
+#elif ENABLE(SUBPIXEL_LAYOUT)
FractionalLayoutUnit returnVal;
long long rawVal = static_cast<long long>(a.rawValue()) * b.rawValue() / kFixedPointDenominator;
returnVal.setRawValue(rawVal);
@@ -516,7 +579,11 @@ inline FractionalLayoutUnit operator/(unsigned int a, const FractionalLayoutUnit
inline FractionalLayoutUnit operator+(const FractionalLayoutUnit& a, const FractionalLayoutUnit& b)
{
FractionalLayoutUnit returnVal;
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ returnVal.setRawValue(saturatedAddition(a.rawValue(), b.rawValue()));
+#else
returnVal.setRawValue(a.rawValue() + b.rawValue());
+#endif
return returnVal;
}
@@ -553,7 +620,11 @@ inline double operator+(const double a, const FractionalLayoutUnit& b)
inline FractionalLayoutUnit operator-(const FractionalLayoutUnit& a, const FractionalLayoutUnit& b)
{
FractionalLayoutUnit returnVal;
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ returnVal.setRawValue(saturatedSubtraction(a.rawValue(), b.rawValue()));
+#else
returnVal.setRawValue(a.rawValue() - b.rawValue());
+#endif
return returnVal;
}
@@ -627,7 +698,11 @@ inline FractionalLayoutUnit operator%(int a, const FractionalLayoutUnit& b)
inline FractionalLayoutUnit& operator+=(FractionalLayoutUnit& a, const FractionalLayoutUnit& b)
{
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ a.setRawValue(saturatedAddition(a.rawValue(), b.rawValue()));
+#else
a = a + b;
+#endif
return a;
}
@@ -657,7 +732,11 @@ inline FractionalLayoutUnit& operator-=(FractionalLayoutUnit& a, int b)
inline FractionalLayoutUnit& operator-=(FractionalLayoutUnit& a, const FractionalLayoutUnit& b)
{
+#if ENABLE(SATURATED_LAYOUT_ARITHMETIC)
+ a.setRawValue(saturatedSubtraction(a.rawValue(), b.rawValue()));
+#else
a = a - b;
+#endif
return a;
}
diff --git a/Source/WebCore/platform/LengthBox.cpp b/Source/WebCore/platform/LengthBox.cpp
index 4aa745192..a5205f25c 100644
--- a/Source/WebCore/platform/LengthBox.cpp
+++ b/Source/WebCore/platform/LengthBox.cpp
@@ -31,23 +31,21 @@
#include "config.h"
#include "LengthBox.h"
-#include "RenderStyle.h"
-
namespace WebCore {
-Length LengthBox::logicalLeft(const RenderStyle* style) const
+Length LengthBox::logicalLeft(WritingMode writingMode) const
{
- return style->isHorizontalWritingMode() ? m_left : m_top;
+ return isHorizontalWritingMode(writingMode) ? m_left : m_top;
}
-Length LengthBox::logicalRight(const RenderStyle* style) const
+Length LengthBox::logicalRight(WritingMode writingMode) const
{
- return style->isHorizontalWritingMode() ? m_right : m_bottom;
+ return isHorizontalWritingMode(writingMode) ? m_right : m_bottom;
}
-Length LengthBox::before(const RenderStyle* style) const
+Length LengthBox::before(WritingMode writingMode) const
{
- switch (style->writingMode()) {
+ switch (writingMode) {
case TopToBottomWritingMode:
return m_top;
case BottomToTopWritingMode:
@@ -61,9 +59,9 @@ Length LengthBox::before(const RenderStyle* style) const
return m_top;
}
-Length LengthBox::after(const RenderStyle* style) const
+Length LengthBox::after(WritingMode writingMode) const
{
- switch (style->writingMode()) {
+ switch (writingMode) {
case TopToBottomWritingMode:
return m_bottom;
case BottomToTopWritingMode:
@@ -77,18 +75,18 @@ Length LengthBox::after(const RenderStyle* style) const
return m_bottom;
}
-Length LengthBox::start(const RenderStyle* style) const
+Length LengthBox::start(WritingMode writingMode, TextDirection direction) const
{
- if (style->isHorizontalWritingMode())
- return style->isLeftToRightDirection() ? m_left : m_right;
- return style->isLeftToRightDirection() ? m_top : m_bottom;
+ if (isHorizontalWritingMode(writingMode))
+ return isLeftToRightDirection(direction) ? m_left : m_right;
+ return isLeftToRightDirection(direction) ? m_top : m_bottom;
}
-Length LengthBox::end(const RenderStyle* style) const
+Length LengthBox::end(WritingMode writingMode, TextDirection direction) const
{
- if (style->isHorizontalWritingMode())
- return style->isLeftToRightDirection() ? m_right : m_left;
- return style->isLeftToRightDirection() ? m_bottom : m_top;
+ if (isHorizontalWritingMode(writingMode))
+ return isLeftToRightDirection(direction) ? m_right : m_left;
+ return isLeftToRightDirection(direction) ? m_bottom : m_top;
}
} // namespace WebCore
diff --git a/Source/WebCore/platform/LengthBox.h b/Source/WebCore/platform/LengthBox.h
index 389cb66f8..d5dfc13bd 100644
--- a/Source/WebCore/platform/LengthBox.h
+++ b/Source/WebCore/platform/LengthBox.h
@@ -23,6 +23,8 @@
#define LengthBox_h
#include "Length.h"
+#include "TextDirection.h"
+#include "WritingMode.h"
namespace WebCore {
@@ -70,13 +72,13 @@ struct LengthBox {
Length top() const { return m_top; }
Length bottom() const { return m_bottom; }
- Length logicalLeft(const RenderStyle*) const;
- Length logicalRight(const RenderStyle*) const;
+ Length logicalLeft(WritingMode) const;
+ Length logicalRight(WritingMode) const;
- Length before(const RenderStyle*) const;
- Length after(const RenderStyle*) const;
- Length start(const RenderStyle*) const;
- Length end(const RenderStyle*) const;
+ Length before(WritingMode) const;
+ Length after(WritingMode) const;
+ Length start(WritingMode, TextDirection) const;
+ Length end(WritingMode, TextDirection) const;
bool operator==(const LengthBox& o) const
{
diff --git a/Source/WebCore/platform/ScrollView.h b/Source/WebCore/platform/ScrollView.h
index 81a56b251..2cbcc270e 100644
--- a/Source/WebCore/platform/ScrollView.h
+++ b/Source/WebCore/platform/ScrollView.h
@@ -52,13 +52,14 @@ class ScrollView : public Widget, public ScrollableArea {
public:
~ScrollView();
- // ScrollableArea functions. FrameView overrides the others.
- virtual int scrollSize(ScrollbarOrientation orientation) const;
- virtual int scrollPosition(Scrollbar*) const;
- virtual void setScrollOffset(const IntPoint&);
+ // ScrollableArea functions.
+ virtual int scrollSize(ScrollbarOrientation) const OVERRIDE;
+ virtual int scrollPosition(Scrollbar*) const OVERRIDE;
+ virtual void setScrollOffset(const IntPoint&) OVERRIDE;
+ virtual bool isScrollCornerVisible() const OVERRIDE;
+ virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate) OVERRIDE;
+
virtual void notifyPageThatContentAreaWillPaint() const;
- virtual bool isScrollCornerVisible() const;
- virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate);
// NOTE: This should only be called by the overriden setScrollOffset from ScrollableArea.
virtual void scrollTo(const IntSize& newOffset);
@@ -74,11 +75,11 @@ public:
const HashSet<RefPtr<Widget> >* children() const { return &m_children; }
virtual void addChild(PassRefPtr<Widget>);
virtual void removeChild(Widget*);
-
+
// If the scroll view does not use a native widget, then it will have cross-platform Scrollbars. These functions
// can be used to obtain those scrollbars.
- virtual Scrollbar* horizontalScrollbar() const { return m_horizontalScrollbar.get(); }
- virtual Scrollbar* verticalScrollbar() const { return m_verticalScrollbar.get(); }
+ virtual Scrollbar* horizontalScrollbar() const OVERRIDE { return m_horizontalScrollbar.get(); }
+ virtual Scrollbar* verticalScrollbar() const OVERRIDE { return m_verticalScrollbar.get(); }
bool isScrollViewScrollbar(const Widget* child) const { return horizontalScrollbar() == child || verticalScrollbar() == child; }
void positionScrollbarLayers();
@@ -107,7 +108,7 @@ public:
virtual bool avoidScrollbarCreation() const { return false; }
- virtual void setScrollbarOverlayStyle(ScrollbarOverlayStyle);
+ virtual void setScrollbarOverlayStyle(ScrollbarOverlayStyle) OVERRIDE;
// By default you only receive paint events for the area that is visible. In the case of using a
// tiled backing store, this function can be set, so that the view paints the entire contents.
@@ -143,12 +144,12 @@ public:
// In the situation the client is responsible for the scrolling (ie. with a tiled backing store) it is possible to use
// the setFixedVisibleContentRect instead for the mainframe, though this must be updated manually, e.g just before resuming the page
// which usually will happen when panning, pinching and rotation ends, or when scale or position are changed manually.
- virtual IntRect visibleContentRect(bool includeScrollbars = false) const;
+ virtual IntRect visibleContentRect(bool includeScrollbars = false) const OVERRIDE;
virtual void setFixedVisibleContentRect(const IntRect& visibleContentRect) { m_fixedVisibleContentRect = visibleContentRect; }
IntRect fixedVisibleContentRect() const { return m_fixedVisibleContentRect; }
IntSize visibleSize() const { return visibleContentRect().size(); }
- int visibleWidth() const { return visibleContentRect().width(); }
- int visibleHeight() const { return visibleContentRect().height(); }
+ virtual int visibleWidth() const OVERRIDE { return visibleContentRect().width(); }
+ virtual int visibleHeight() const OVERRIDE { return visibleContentRect().height(); }
// Functions for getting/setting the size webkit should use to layout the contents. By default this is the same as the visible
// content size. Explicitly setting a layout size value will cause webkit to layout the contents using this size instead.
@@ -162,22 +163,22 @@ public:
// Functions for getting/setting the size of the document contained inside the ScrollView (as an IntSize or as individual width and height
// values).
- IntSize contentsSize() const; // Always at least as big as the visibleWidth()/visibleHeight().
+ virtual IntSize contentsSize() const OVERRIDE; // Always at least as big as the visibleWidth()/visibleHeight().
int contentsWidth() const { return contentsSize().width(); }
int contentsHeight() const { return contentsSize().height(); }
virtual void setContentsSize(const IntSize&);
// Functions for querying the current scrolled position (both as a point, a size, or as individual X and Y values).
- IntPoint scrollPosition() const { return visibleContentRect().location(); }
+ virtual IntPoint scrollPosition() const OVERRIDE { return visibleContentRect().location(); }
IntSize scrollOffset() const { return visibleContentRect().location() - IntPoint(); } // Gets the scrolled position as an IntSize. Convenient for adding to other sizes.
- IntPoint maximumScrollPosition() const; // The maximum position we can be scrolled to.
- IntPoint minimumScrollPosition() const; // The minimum position we can be scrolled to.
+ virtual IntPoint maximumScrollPosition() const OVERRIDE; // The maximum position we can be scrolled to.
+ virtual IntPoint minimumScrollPosition() const OVERRIDE; // The minimum position we can be scrolled to.
// Adjust the passed in scroll position to keep it between the minimum and maximum positions.
IntPoint adjustScrollPositionWithinRange(const IntPoint&) const;
int scrollX() const { return scrollPosition().x(); }
int scrollY() const { return scrollPosition().y(); }
- IntSize overhangAmount() const;
+ virtual IntSize overhangAmount() const OVERRIDE;
void cacheCurrentScrollPosition() { m_cachedScrollPosition = scrollPosition(); }
IntPoint cachedScrollPosition() const { return m_cachedScrollPosition; }
@@ -277,10 +278,10 @@ public:
virtual void paintScrollCorner(GraphicsContext*, const IntRect& cornerRect);
virtual void paintScrollbar(GraphicsContext*, Scrollbar*, const IntRect&);
- virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const IntRect&) const;
- virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const IntRect&) const;
- virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, const IntPoint&) const;
- virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, const IntPoint&) const;
+ virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const IntRect&) const OVERRIDE;
+ virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const IntRect&) const OVERRIDE;
+ virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, const IntPoint&) const OVERRIDE;
+ virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, const IntPoint&) const OVERRIDE;
bool containsScrollableAreaWithOverlayScrollbars() const { return m_containsScrollableAreaWithOverlayScrollbars; }
void setContainsScrollableAreaWithOverlayScrollbars(bool contains) { m_containsScrollableAreaWithOverlayScrollbars = contains; }
@@ -302,7 +303,7 @@ protected:
void setHasVerticalScrollbar(bool);
virtual void updateScrollCorner();
- virtual void invalidateScrollCornerRect(const IntRect&);
+ virtual void invalidateScrollCornerRect(const IntRect&) OVERRIDE;
// Scroll the content by blitting the pixels.
virtual bool scrollContentsFastPath(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect);
diff --git a/Source/WebCore/platform/ScrollableArea.cpp b/Source/WebCore/platform/ScrollableArea.cpp
index 103e03899..b4e7e5591 100644
--- a/Source/WebCore/platform/ScrollableArea.cpp
+++ b/Source/WebCore/platform/ScrollableArea.cpp
@@ -373,4 +373,39 @@ void ScrollableArea::serviceScrollAnimations()
scrollAnimator->serviceScrollAnimations();
}
+IntPoint ScrollableArea::scrollPosition() const
+{
+ int x = horizontalScrollbar() ? horizontalScrollbar()->value() : 0;
+ int y = verticalScrollbar() ? verticalScrollbar()->value() : 0;
+ return IntPoint(x, y);
+}
+
+IntPoint ScrollableArea::minimumScrollPosition() const
+{
+ return IntPoint();
+}
+
+IntPoint ScrollableArea::maximumScrollPosition() const
+{
+ return IntPoint(contentsSize().width() - visibleWidth(), contentsSize().height() - visibleHeight());
+}
+
+IntRect ScrollableArea::visibleContentRect(bool includeScrollbars) const
+{
+ int verticalScrollbarWidth = 0;
+ int horizontalScrollbarHeight = 0;
+
+ if (includeScrollbars) {
+ if (Scrollbar* verticalBar = verticalScrollbar())
+ verticalScrollbarWidth = !verticalBar->isOverlayScrollbar() ? verticalBar->width() : 0;
+ if (Scrollbar* horizontalBar = horizontalScrollbar())
+ horizontalScrollbarHeight = !horizontalBar->isOverlayScrollbar() ? horizontalBar->height() : 0;
+ }
+
+ return IntRect(scrollPosition().x(),
+ scrollPosition().y(),
+ std::max(0, visibleWidth() + verticalScrollbarWidth),
+ std::max(0, visibleHeight() + horizontalScrollbarHeight));
+}
+
} // namespace WebCore
diff --git a/Source/WebCore/platform/ScrollableArea.h b/Source/WebCore/platform/ScrollableArea.h
index 5a278a9b5..721ec32ec 100644
--- a/Source/WebCore/platform/ScrollableArea.h
+++ b/Source/WebCore/platform/ScrollableArea.h
@@ -133,27 +133,27 @@ public:
virtual Scrollbar* horizontalScrollbar() const { return 0; }
virtual Scrollbar* verticalScrollbar() const { return 0; }
- virtual IntPoint scrollPosition() const { ASSERT_NOT_REACHED(); return IntPoint(); }
- virtual IntPoint minimumScrollPosition() const { ASSERT_NOT_REACHED(); return IntPoint(); }
- virtual IntPoint maximumScrollPosition() const { ASSERT_NOT_REACHED(); return IntPoint(); }
- virtual IntRect visibleContentRect(bool /*includeScrollbars*/ = false) const { ASSERT_NOT_REACHED(); return IntRect(); }
- virtual int visibleHeight() const { ASSERT_NOT_REACHED(); return 0; }
- virtual int visibleWidth() const { ASSERT_NOT_REACHED(); return 0; }
- virtual IntSize contentsSize() const { ASSERT_NOT_REACHED(); return IntSize(); }
- virtual IntSize overhangAmount() const { ASSERT_NOT_REACHED(); return IntSize(); }
+ virtual IntPoint scrollPosition() const;
+ virtual IntPoint minimumScrollPosition() const;
+ virtual IntPoint maximumScrollPosition() const;
+ virtual IntRect visibleContentRect(bool /*includeScrollbars*/ = false) const;
+ virtual int visibleHeight() const = 0;
+ virtual int visibleWidth() const = 0;
+ virtual IntSize contentsSize() const = 0;
+ virtual IntSize overhangAmount() const { return IntSize(); }
virtual IntPoint currentMousePosition() const { return IntPoint(); }
virtual bool shouldSuspendScrollAnimations() const { return true; }
virtual void scrollbarStyleChanged(int /*newStyle*/, bool /*forceUpdate*/) { }
virtual void setVisibleScrollerThumbRect(const IntRect&) { }
- virtual bool isOnActivePage() const { ASSERT_NOT_REACHED(); return true; }
+ virtual bool isOnActivePage() const = 0;
// Note that this only returns scrollable areas that can actually be scrolled.
virtual ScrollableArea* enclosingScrollableArea() const = 0;
// Returns the bounding box of this scrollable area, in the coordinate system of the enclosing scroll view.
- virtual IntRect scrollableAreaBoundingBox() const { ASSERT_NOT_REACHED(); return IntRect(); }
+ virtual IntRect scrollableAreaBoundingBox() const = 0;
virtual bool shouldRubberBandInDirection(ScrollDirection) const { return true; }
diff --git a/Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.cpp b/Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.cpp
index 09f185a9f..b2bfbea5e 100644
--- a/Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.cpp
+++ b/Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.cpp
@@ -129,6 +129,11 @@ TouchpadFlingPlatformGestureCurve::~TouchpadFlingPlatformGestureCurve()
{
}
+const char* TouchpadFlingPlatformGestureCurve::debugName() const
+{
+ return "TouchpadFling";
+}
+
bool TouchpadFlingPlatformGestureCurve::apply(double time, PlatformGestureCurveTarget* target)
{
float displacement;
diff --git a/Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.h b/Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.h
index 46b0aa5b6..e1c85575d 100644
--- a/Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.h
+++ b/Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.h
@@ -44,8 +44,8 @@ public:
static PassOwnPtr<PlatformGestureCurve> create(const FloatPoint& velocity, float p0, float p1, float p2, float p3, float p4, float curveDuration, IntPoint cumulativeScroll = IntPoint());
virtual ~TouchpadFlingPlatformGestureCurve();
- virtual const char* debugName() const { return "TouchpadFling"; }
- virtual bool apply(double monotonicTime, PlatformGestureCurveTarget*);
+ virtual const char* debugName() const OVERRIDE;
+ virtual bool apply(double monotonicTime, PlatformGestureCurveTarget*) OVERRIDE;
private:
TouchpadFlingPlatformGestureCurve(const FloatPoint& velocity, float p0, float p1, float p2, float p3, float p4, float curveDuration, const IntPoint& cumulativeScroll);
diff --git a/Source/WebCore/platform/WheelFlingPlatformGestureCurve.cpp b/Source/WebCore/platform/WheelFlingPlatformGestureCurve.cpp
index c9f173289..73ffc381d 100644
--- a/Source/WebCore/platform/WheelFlingPlatformGestureCurve.cpp
+++ b/Source/WebCore/platform/WheelFlingPlatformGestureCurve.cpp
@@ -46,6 +46,11 @@ WheelFlingPlatformGestureCurve::~WheelFlingPlatformGestureCurve()
{
}
+const char* WheelFlingPlatformGestureCurve::debugName() const
+{
+ return "WheelFling";
+}
+
bool WheelFlingPlatformGestureCurve::apply(double time, PlatformGestureCurveTarget* target)
{
// Use a Rayleigh distribution for the curve. This simulates a velocity profile
diff --git a/Source/WebCore/platform/WheelFlingPlatformGestureCurve.h b/Source/WebCore/platform/WheelFlingPlatformGestureCurve.h
index 44d552a86..96cfaca1a 100644
--- a/Source/WebCore/platform/WheelFlingPlatformGestureCurve.h
+++ b/Source/WebCore/platform/WheelFlingPlatformGestureCurve.h
@@ -43,8 +43,8 @@ public:
static PassOwnPtr<PlatformGestureCurve> create(const FloatPoint& velocity);
virtual ~WheelFlingPlatformGestureCurve();
- virtual const char* debugName() const { return "WheelFling"; }
- virtual bool apply(double time, PlatformGestureCurveTarget*);
+ virtual const char* debugName() const OVERRIDE;
+ virtual bool apply(double time, PlatformGestureCurveTarget*) OVERRIDE;
private:
explicit WheelFlingPlatformGestureCurve(const FloatPoint& velocity);
diff --git a/Source/WebCore/platform/audio/mac/AudioFileReaderMac.cpp b/Source/WebCore/platform/audio/mac/AudioFileReaderMac.cpp
index 29e81fc74..0572cc45c 100644
--- a/Source/WebCore/platform/audio/mac/AudioFileReaderMac.cpp
+++ b/Source/WebCore/platform/audio/mac/AudioFileReaderMac.cpp
@@ -60,7 +60,6 @@ static void destroyAudioBufferList(AudioBufferList* bufferList)
AudioFileReader::AudioFileReader(const char* filePath)
: m_data(0)
, m_dataSize(0)
- , m_filePath(filePath)
, m_audioFileID(0)
, m_extAudioFileRef(0)
{
@@ -75,7 +74,6 @@ AudioFileReader::AudioFileReader(const char* filePath)
AudioFileReader::AudioFileReader(const void* data, size_t dataSize)
: m_data(data)
, m_dataSize(dataSize)
- , m_filePath(0)
, m_audioFileID(0)
, m_extAudioFileRef(0)
{
diff --git a/Source/WebCore/platform/audio/mac/AudioFileReaderMac.h b/Source/WebCore/platform/audio/mac/AudioFileReaderMac.h
index 212343149..60af2f157 100644
--- a/Source/WebCore/platform/audio/mac/AudioFileReaderMac.h
+++ b/Source/WebCore/platform/audio/mac/AudioFileReaderMac.h
@@ -57,7 +57,6 @@ private:
const void* m_data;
size_t m_dataSize;
- const char* m_filePath;
AudioFileID m_audioFileID;
ExtAudioFileRef m_extAudioFileRef;
diff --git a/Source/WebCore/platform/blackberry/CookieParser.cpp b/Source/WebCore/platform/blackberry/CookieParser.cpp
index e29ea28bd..2564c568e 100644
--- a/Source/WebCore/platform/blackberry/CookieParser.cpp
+++ b/Source/WebCore/platform/blackberry/CookieParser.cpp
@@ -29,7 +29,7 @@
#include "Logging.h"
#include "ParsedCookie.h"
-#include <network/TopLevelDomain.h>
+#include <network/DomainTools.h>
#include <wtf/CurrentTime.h>
#include <wtf/text/CString.h>
@@ -274,7 +274,7 @@ ParsedCookie* CookieParser::parseOneCookie(const String& cookie, unsigned start,
// Check whether the domain is a top level domain, if it is throw it out
// http://publicsuffix.org/list/
- if (!BlackBerry::Platform::TopLevelDomain::isCookieWritableDomain(realDomain.utf8().data()))
+ if (BlackBerry::Platform::isTopLevelDomain(realDomain.utf8().data()))
LOG_AND_DELETE("Invalid cookie %s (domain): it did not pass the top level domain check", cookie.ascii().data());
res->setDomain(realDomain);
diff --git a/Source/WebCore/platform/chromium/FramelessScrollView.cpp b/Source/WebCore/platform/chromium/FramelessScrollView.cpp
index 73bec0df8..c410677cb 100644
--- a/Source/WebCore/platform/chromium/FramelessScrollView.cpp
+++ b/Source/WebCore/platform/chromium/FramelessScrollView.cpp
@@ -63,6 +63,16 @@ ScrollableArea* FramelessScrollView::enclosingScrollableArea() const
return 0;
}
+bool FramelessScrollView::isOnActivePage() const
+{
+ return isActive();
+}
+
+IntRect FramelessScrollView::scrollableAreaBoundingBox() const
+{
+ return windowClipRect(false);
+}
+
void FramelessScrollView::invalidateRect(const IntRect& rect)
{
if (HostWindow* h = hostWindow())
diff --git a/Source/WebCore/platform/chromium/FramelessScrollView.h b/Source/WebCore/platform/chromium/FramelessScrollView.h
index 3498475dc..ac1eecd1c 100644
--- a/Source/WebCore/platform/chromium/FramelessScrollView.h
+++ b/Source/WebCore/platform/chromium/FramelessScrollView.h
@@ -74,9 +74,11 @@ namespace WebCore {
#endif
// ScrollableArea public methods:
- virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&);
- virtual bool isActive() const;
- virtual ScrollableArea* enclosingScrollableArea() const;
+ virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&) OVERRIDE;
+ virtual bool isActive() const OVERRIDE;
+ virtual ScrollableArea* enclosingScrollableArea() const OVERRIDE;
+ virtual bool isOnActivePage() const OVERRIDE;
+ virtual IntRect scrollableAreaBoundingBox() const OVERRIDE;
// Widget public methods:
virtual void invalidateRect(const IntRect&);
diff --git a/Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp b/Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp
index e4e545a1b..f1c4e5b6f 100644
--- a/Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp
+++ b/Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp
@@ -31,33 +31,31 @@
#include "config.h"
#include "FractionalLayoutBoxExtent.h"
-#include "RenderStyle.h"
-
namespace WebCore {
-FractionalLayoutUnit FractionalLayoutBoxExtent::logicalTop(const RenderStyle* style) const
+FractionalLayoutUnit FractionalLayoutBoxExtent::logicalTop(WritingMode writingMode) const
{
- return style->isHorizontalWritingMode() ? m_top : m_left;
+ return isHorizontalWritingMode(writingMode) ? m_top : m_left;
}
-FractionalLayoutUnit FractionalLayoutBoxExtent::logicalBottom(const RenderStyle* style) const
+FractionalLayoutUnit FractionalLayoutBoxExtent::logicalBottom(WritingMode writingMode) const
{
- return style->isHorizontalWritingMode() ? m_bottom : m_right;
+ return isHorizontalWritingMode(writingMode) ? m_bottom : m_right;
}
-FractionalLayoutUnit FractionalLayoutBoxExtent::logicalLeft(const RenderStyle* style) const
+FractionalLayoutUnit FractionalLayoutBoxExtent::logicalLeft(WritingMode writingMode) const
{
- return style->isHorizontalWritingMode() ? m_left : m_top;
+ return isHorizontalWritingMode(writingMode) ? m_left : m_top;
}
-FractionalLayoutUnit FractionalLayoutBoxExtent::logicalRight(const RenderStyle* style) const
+FractionalLayoutUnit FractionalLayoutBoxExtent::logicalRight(WritingMode writingMode) const
{
- return style->isHorizontalWritingMode() ? m_right : m_bottom;
+ return isHorizontalWritingMode(writingMode) ? m_right : m_bottom;
}
-FractionalLayoutUnit FractionalLayoutBoxExtent::before(const RenderStyle* style) const
+FractionalLayoutUnit FractionalLayoutBoxExtent::before(WritingMode writingMode) const
{
- switch (style->writingMode()) {
+ switch (writingMode) {
case TopToBottomWritingMode:
return m_top;
case BottomToTopWritingMode:
@@ -71,9 +69,9 @@ FractionalLayoutUnit FractionalLayoutBoxExtent::before(const RenderStyle* style)
return m_top;
}
-FractionalLayoutUnit FractionalLayoutBoxExtent::after(const RenderStyle* style) const
+FractionalLayoutUnit FractionalLayoutBoxExtent::after(WritingMode writingMode) const
{
- switch (style->writingMode()) {
+ switch (writingMode) {
case TopToBottomWritingMode:
return m_bottom;
case BottomToTopWritingMode:
@@ -87,23 +85,23 @@ FractionalLayoutUnit FractionalLayoutBoxExtent::after(const RenderStyle* style)
return m_bottom;
}
-FractionalLayoutUnit FractionalLayoutBoxExtent::start(const RenderStyle* style) const
+FractionalLayoutUnit FractionalLayoutBoxExtent::start(WritingMode writingMode, TextDirection direction) const
{
- if (style->isHorizontalWritingMode())
- return style->isLeftToRightDirection() ? m_left : m_right;
- return style->isLeftToRightDirection() ? m_top : m_bottom;
+ if (isHorizontalWritingMode(writingMode))
+ return isLeftToRightDirection(direction) ? m_left : m_right;
+ return isLeftToRightDirection(direction) ? m_top : m_bottom;
}
-FractionalLayoutUnit FractionalLayoutBoxExtent::end(const RenderStyle* style) const
+FractionalLayoutUnit FractionalLayoutBoxExtent::end(WritingMode writingMode, TextDirection direction) const
{
- if (style->isHorizontalWritingMode())
- return style->isLeftToRightDirection() ? m_right : m_left;
- return style->isLeftToRightDirection() ? m_bottom : m_top;
+ if (isHorizontalWritingMode(writingMode))
+ return isLeftToRightDirection(direction) ? m_right : m_left;
+ return isLeftToRightDirection(direction) ? m_bottom : m_top;
}
-void FractionalLayoutBoxExtent::setBefore(const RenderStyle* style, FractionalLayoutUnit value)
+void FractionalLayoutBoxExtent::setBefore(WritingMode writingMode, FractionalLayoutUnit value)
{
- switch (style->writingMode()) {
+ switch (writingMode) {
case TopToBottomWritingMode:
m_top = value;
break;
@@ -122,9 +120,9 @@ void FractionalLayoutBoxExtent::setBefore(const RenderStyle* style, FractionalLa
}
}
-void FractionalLayoutBoxExtent::setAfter(const RenderStyle* style, FractionalLayoutUnit value)
+void FractionalLayoutBoxExtent::setAfter(WritingMode writingMode, FractionalLayoutUnit value)
{
- switch (style->writingMode()) {
+ switch (writingMode) {
case TopToBottomWritingMode:
m_bottom = value;
break;
@@ -143,56 +141,56 @@ void FractionalLayoutBoxExtent::setAfter(const RenderStyle* style, FractionalLay
}
}
-void FractionalLayoutBoxExtent::setStart(const RenderStyle* style, FractionalLayoutUnit value)
+void FractionalLayoutBoxExtent::setStart(WritingMode writingMode, TextDirection direction, FractionalLayoutUnit value)
{
- if (style->isHorizontalWritingMode()) {
- if (style->isLeftToRightDirection())
+ if (isHorizontalWritingMode(writingMode)) {
+ if (isLeftToRightDirection(direction))
m_left = value;
else
m_right = value;
} else {
- if (style->isLeftToRightDirection())
+ if (isLeftToRightDirection(direction))
m_top = value;
else
m_bottom = value;
}
}
-void FractionalLayoutBoxExtent::setEnd(const RenderStyle* style, FractionalLayoutUnit value)
+void FractionalLayoutBoxExtent::setEnd(WritingMode writingMode, TextDirection direction, FractionalLayoutUnit value)
{
- if (style->isHorizontalWritingMode()) {
- if (style->isLeftToRightDirection())
+ if (isHorizontalWritingMode(writingMode)) {
+ if (isLeftToRightDirection(direction))
m_right = value;
else
m_left = value;
} else {
- if (style->isLeftToRightDirection())
+ if (isLeftToRightDirection(direction))
m_bottom = value;
else
m_top = value;
}
}
-FractionalLayoutUnit& FractionalLayoutBoxExtent::mutableLogicalLeft(const RenderStyle* style)
+FractionalLayoutUnit& FractionalLayoutBoxExtent::mutableLogicalLeft(WritingMode writingMode)
{
- return style->isHorizontalWritingMode() ? m_left : m_top;
+ return isHorizontalWritingMode(writingMode) ? m_left : m_top;
}
-FractionalLayoutUnit& FractionalLayoutBoxExtent::mutableLogicalRight(const RenderStyle* style)
+FractionalLayoutUnit& FractionalLayoutBoxExtent::mutableLogicalRight(WritingMode writingMode)
{
- return style->isHorizontalWritingMode() ? m_right : m_bottom;
+ return isHorizontalWritingMode(writingMode) ? m_right : m_bottom;
}
-FractionalLayoutUnit& FractionalLayoutBoxExtent::mutableBefore(const RenderStyle* style)
+FractionalLayoutUnit& FractionalLayoutBoxExtent::mutableBefore(WritingMode writingMode)
{
- return style->isHorizontalWritingMode() ? (style->isFlippedBlocksWritingMode() ? m_bottom : m_top) :
- (style->isFlippedBlocksWritingMode() ? m_right: m_left);
+ return isHorizontalWritingMode(writingMode) ? (isFlippedBlocksWritingMode(writingMode) ? m_bottom : m_top) :
+ (isFlippedBlocksWritingMode(writingMode) ? m_right: m_left);
}
-FractionalLayoutUnit& FractionalLayoutBoxExtent::mutableAfter(const RenderStyle* style)
+FractionalLayoutUnit& FractionalLayoutBoxExtent::mutableAfter(WritingMode writingMode)
{
- return style->isHorizontalWritingMode() ? (style->isFlippedBlocksWritingMode() ? m_top : m_bottom) :
- (style->isFlippedBlocksWritingMode() ? m_left: m_right);
+ return isHorizontalWritingMode(writingMode) ? (isFlippedBlocksWritingMode(writingMode) ? m_top : m_bottom) :
+ (isFlippedBlocksWritingMode(writingMode) ? m_left: m_right);
}
} // namespace WebCore
diff --git a/Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h b/Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h
index 921c84b90..28bdb9cd7 100644
--- a/Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h
+++ b/Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h
@@ -32,11 +32,11 @@
#define FractionalLayoutBoxExtent_h
#include "FractionalLayoutUnit.h"
+#include "TextDirection.h"
+#include "WritingMode.h"
namespace WebCore {
-class RenderStyle;
-
class FractionalLayoutBoxExtent {
public:
FractionalLayoutBoxExtent() : m_top(0), m_right(0), m_bottom(0), m_left(0) { }
@@ -53,26 +53,26 @@ public:
inline void setBottom(FractionalLayoutUnit value) { m_bottom = value; }
inline void setLeft(FractionalLayoutUnit value) { m_left = value; }
- FractionalLayoutUnit logicalTop(const RenderStyle*) const;
- FractionalLayoutUnit logicalBottom(const RenderStyle*) const;
- FractionalLayoutUnit logicalLeft(const RenderStyle*) const;
- FractionalLayoutUnit logicalRight(const RenderStyle*) const;
+ FractionalLayoutUnit logicalTop(WritingMode) const;
+ FractionalLayoutUnit logicalBottom(WritingMode) const;
+ FractionalLayoutUnit logicalLeft(WritingMode) const;
+ FractionalLayoutUnit logicalRight(WritingMode) const;
- FractionalLayoutUnit before(const RenderStyle*) const;
- FractionalLayoutUnit after(const RenderStyle*) const;
- FractionalLayoutUnit start(const RenderStyle*) const;
- FractionalLayoutUnit end(const RenderStyle*) const;
+ FractionalLayoutUnit before(WritingMode) const;
+ FractionalLayoutUnit after(WritingMode) const;
+ FractionalLayoutUnit start(WritingMode, TextDirection) const;
+ FractionalLayoutUnit end(WritingMode, TextDirection) const;
- void setBefore(const RenderStyle*, FractionalLayoutUnit);
- void setAfter(const RenderStyle*, FractionalLayoutUnit);
- void setStart(const RenderStyle*, FractionalLayoutUnit);
- void setEnd(const RenderStyle*, FractionalLayoutUnit);
+ void setBefore(WritingMode, FractionalLayoutUnit);
+ void setAfter(WritingMode, FractionalLayoutUnit);
+ void setStart(WritingMode, TextDirection, FractionalLayoutUnit);
+ void setEnd(WritingMode, TextDirection, FractionalLayoutUnit);
- FractionalLayoutUnit& mutableLogicalLeft(const RenderStyle*);
- FractionalLayoutUnit& mutableLogicalRight(const RenderStyle*);
+ FractionalLayoutUnit& mutableLogicalLeft(WritingMode);
+ FractionalLayoutUnit& mutableLogicalRight(WritingMode);
- FractionalLayoutUnit& mutableBefore(const RenderStyle*);
- FractionalLayoutUnit& mutableAfter(const RenderStyle*);
+ FractionalLayoutUnit& mutableBefore(WritingMode);
+ FractionalLayoutUnit& mutableAfter(WritingMode);
private:
FractionalLayoutUnit m_top;
diff --git a/Source/WebCore/platform/graphics/Image.cpp b/Source/WebCore/platform/graphics/Image.cpp
index 2b19f1349..655b6d14f 100644
--- a/Source/WebCore/platform/graphics/Image.cpp
+++ b/Source/WebCore/platform/graphics/Image.cpp
@@ -80,7 +80,7 @@ bool Image::setData(PassRefPtr<SharedBuffer> data, bool allDataReceived)
void Image::fillWithSolidColor(GraphicsContext* ctxt, const FloatRect& dstRect, const Color& color, ColorSpace styleColorSpace, CompositeOperator op)
{
- if (color.alpha() <= 0)
+ if (!color.alpha())
return;
CompositeOperator previousOperator = ctxt->compositeOperation();
diff --git a/Source/WebCore/platform/graphics/ImageSource.h b/Source/WebCore/platform/graphics/ImageSource.h
index 40d757fa0..78f0de8ce 100644
--- a/Source/WebCore/platform/graphics/ImageSource.h
+++ b/Source/WebCore/platform/graphics/ImageSource.h
@@ -153,8 +153,11 @@ public:
private:
NativeImageSourcePtr m_decoder;
+
+#if !USE(CG)
AlphaOption m_alphaOption;
GammaAndColorProfileOption m_gammaAndColorProfileOption;
+#endif
#if ENABLE(IMAGE_DECODER_DOWN_SAMPLING)
static unsigned s_maxPixelsPerDecodedImage;
#endif
diff --git a/Source/WebCore/platform/graphics/MediaPlayer.h b/Source/WebCore/platform/graphics/MediaPlayer.h
index de692227c..eac345c17 100644
--- a/Source/WebCore/platform/graphics/MediaPlayer.h
+++ b/Source/WebCore/platform/graphics/MediaPlayer.h
@@ -98,6 +98,7 @@ class IntSize;
class MediaPlayer;
struct MediaPlayerFactory;
class TimeRanges;
+class HostWindow;
#if PLATFORM(WIN) && USE(AVFOUNDATION)
struct GraphicsDeviceAdapter;
@@ -189,6 +190,15 @@ public:
virtual String mediaPlayerReferrer() const { return String(); }
virtual String mediaPlayerUserAgent() const { return String(); }
virtual CORSMode mediaPlayerCORSMode() const { return Unspecified; }
+ virtual void mediaPlayerExitFullscreen() { }
+ virtual bool mediaPlayerIsVideo() const { return false; }
+ virtual LayoutRect mediaPlayerContentBoxRect() const { return LayoutRect(); }
+ virtual void mediaPlayerSetSize(const IntSize&) { }
+ virtual void mediaPlayerPause() { }
+ virtual void mediaPlayerPlay() { }
+ virtual bool mediaPlayerIsPaused() const { return true; }
+ virtual HostWindow* mediaPlayerHostWindow() { return 0; }
+ virtual IntRect mediaPlayerWindowClipRect() { return IntRect(); }
};
class MediaPlayerSupportsTypeClient {
diff --git a/Source/WebCore/platform/graphics/SimpleFontData.h b/Source/WebCore/platform/graphics/SimpleFontData.h
index c0b044d2c..820c26573 100644
--- a/Source/WebCore/platform/graphics/SimpleFontData.h
+++ b/Source/WebCore/platform/graphics/SimpleFontData.h
@@ -39,7 +39,7 @@
#include <wtf/PassOwnPtr.h>
#include <wtf/text/StringHash.h>
-#if PLATFORM(MAC) || (PLATFORM(CHROMIUM) && OS(DARWIN))
+#if PLATFORM(MAC) || (PLATFORM(CHROMIUM) && OS(DARWIN)) || (PLATFORM(WX) && OS(DARWIN))
#include <wtf/RetainPtr.h>
#endif
@@ -176,7 +176,7 @@ public:
NSFont* getNSFont() const { return m_platformData.nsFont(); }
#endif
-#if PLATFORM(MAC) || (PLATFORM(CHROMIUM) && OS(DARWIN))
+#if PLATFORM(MAC) || (PLATFORM(CHROMIUM) && OS(DARWIN)) || (PLATFORM(WX) && OS(DARWIN))
CFDictionaryRef getCFStringAttributes(TypesettingFeatures, FontOrientation) const;
bool canRenderCombiningCharacterSequence(const UChar*, size_t) const;
#endif
@@ -273,7 +273,7 @@ private:
float m_syntheticBoldOffset;
#endif
-#if PLATFORM(MAC) || (PLATFORM(CHROMIUM) && OS(DARWIN))
+#if PLATFORM(MAC) || (PLATFORM(CHROMIUM) && OS(DARWIN)) || (PLATFORM(WX) && OS(DARWIN))
mutable HashMap<unsigned, RetainPtr<CFDictionaryRef> > m_CFStringAttributes;
mutable OwnPtr<HashMap<String, bool> > m_combiningCharacterSequenceSupport;
#endif
diff --git a/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h b/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h
index 0fe6131d6..d44a30c73 100644
--- a/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h
+++ b/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h
@@ -124,7 +124,6 @@ private:
void paintWithVideoOutput(GraphicsContext*, const IntRect&);
#endif
- MediaPlayer* m_player;
RetainPtr<AVAsset> m_avAsset;
RetainPtr<AVPlayer> m_avPlayer;
RetainPtr<AVPlayerItem> m_avPlayerItem;
diff --git a/Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp b/Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp
index 6fad26e53..d7f9acba6 100644
--- a/Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp
+++ b/Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp
@@ -27,7 +27,6 @@
#include "Frame.h"
#include "FrameView.h"
#include "GraphicsContext.h"
-#include "HTMLMediaElement.h"
#include "HTMLNames.h"
#include "HostWindow.h"
#include "MediaStreamDescriptor.h"
@@ -122,8 +121,7 @@ MediaPlayerPrivate::MediaPlayerPrivate(MediaPlayer* player)
MediaPlayerPrivate::~MediaPlayerPrivate()
{
if (isFullscreen()) {
- HTMLMediaElement* element = static_cast<HTMLMediaElement*>(m_webCorePlayer->mediaPlayerClient());
- element->exitFullscreen();
+ m_webCorePlayer->mediaPlayerClient()->mediaPlayerExitFullscreen();
}
#if USE(ACCELERATED_COMPOSITING)
// Remove media player from platform layer.
@@ -151,9 +149,7 @@ void MediaPlayerPrivate::load(const String& url)
modifiedUrl = decodeURLEscapeSequences(modifiedUrl);
}
- void* tabId = 0;
- if (frameView() && frameView()->hostWindow())
- tabId = frameView()->hostWindow()->platformPageClient();
+ void* tabId = m_webCorePlayer->mediaPlayerClient()->mediaPlayerHostWindow()->platformPageClient();
deleteGuardedObject(m_platformPlayer);
#if USE(ACCELERATED_COMPOSITING)
@@ -370,7 +366,7 @@ void MediaPlayerPrivate::paintCurrentFrameInContext(GraphicsContext* context, co
ASSERT(graphics);
BlackBerry::Platform::IntRect platformRect(rect.x(), rect.y(), rect.width(), rect.height());
- IntRect clippedRect = frameView()->windowClipRect();
+ IntRect clippedRect = m_webCorePlayer->mediaPlayerClient()->mediaPlayerWindowClipRect();
BlackBerry::Platform::IntRect platformWindowClipRect(clippedRect.x(), clippedRect.y(), clippedRect.width(), clippedRect.height());
m_platformPlayer->paint(graphics->canvas(), platformRect, platformWindowClipRect);
}
@@ -399,39 +395,27 @@ void MediaPlayerPrivate::resizeSourceDimensions()
if (!m_webCorePlayer)
return;
- HTMLMediaElement* client = static_cast<HTMLMediaElement*>(m_webCorePlayer->mediaPlayerClient());
-
- if (!client || !client->isVideo())
- return;
-
- RenderObject* o = client->renderer();
- if (!o)
+ if (!m_webCorePlayer->mediaPlayerClient()->mediaPlayerIsVideo())
return;
// If we have an HTMLVideoElement but the source has no video, then we need to resize the media element.
if (!hasVideo()) {
- IntRect rect = o->enclosingBox()->contentBoxRect();
+ LayoutRect rect = m_webCorePlayer->mediaPlayerClient()->mediaPlayerContentBoxRect();
static const int playbookMinAudioElementWidth = 300;
static const int playbookMinAudioElementHeight = 32;
// If the rect dimensions are less than the allowed minimum, use the minimum instead.
- int newWidth = max(rect.width(), playbookMinAudioElementWidth);
- int newHeight = max(rect.height(), playbookMinAudioElementHeight);
-
- char attrString[12];
+ int newWidth = max(rect.width().toInt(), playbookMinAudioElementWidth);
+ int newHeight = max(rect.height().toInt(), playbookMinAudioElementHeight);
- sprintf(attrString, "%d", newWidth);
- client->setAttribute(HTMLNames::widthAttr, attrString);
-
- sprintf(attrString, "%d", newHeight);
- client->setAttribute(HTMLNames::heightAttr, attrString);
+ m_webCorePlayer->mediaPlayerClient()->mediaPlayerSetSize(IntSize(newWidth, newHeight));
}
// If we don't know what the width and height of the video source is, then we need to set it to something sane.
if (m_platformPlayer->sourceWidth() && m_platformPlayer->sourceHeight())
return;
- IntRect rect = o->enclosingBox()->contentBoxRect();
- m_platformPlayer->setSourceDimension(rect.width(), rect.height());
+ LayoutRect rect = m_webCorePlayer->mediaPlayerClient()->mediaPlayerContentBoxRect();
+ m_platformPlayer->setSourceDimension(rect.width().toUnsigned(), rect.height().toUnsigned());
}
void MediaPlayerPrivate::setFullscreenWebPageClient(BlackBerry::WebKit::WebPageClient* client)
@@ -511,8 +495,6 @@ void MediaPlayerPrivate::updateStates()
PlatformPlayer::Error currentError = m_platformPlayer->error();
- HTMLMediaElement* element = static_cast<HTMLMediaElement*>(m_webCorePlayer->mediaPlayerClient());
-
if (currentError != PlatformPlayer::MediaOK) {
m_readyState = MediaPlayer::HaveNothing;
if (currentError == PlatformPlayer::MediaDecodeError)
@@ -549,7 +531,7 @@ void MediaPlayerPrivate::updateStates()
}
#endif
if (isFullscreen())
- element->exitFullscreen();
+ m_webCorePlayer->mediaPlayerClient()->mediaPlayerExitFullscreen();
break;
case PlatformPlayer::MP_STATE_ACTIVE:
#if USE(ACCELERATED_COMPOSITING)
@@ -608,15 +590,14 @@ void MediaPlayerPrivate::onPauseStateChanged()
if (!isFullscreen())
return;
- HTMLMediaElement* element = static_cast<HTMLMediaElement*>(m_webCorePlayer->mediaPlayerClient());
// Paused state change not due to local controller.
if (m_platformPlayer->isPaused())
- element->pause();
+ m_webCorePlayer->mediaPlayerClient()->mediaPlayerPause();
else {
// The HMI fullscreen widget has resumed play. Check if the
// pause timeout occurred.
m_platformPlayer->processPauseTimeoutIfNecessary();
- element->play();
+ m_webCorePlayer->mediaPlayerClient()->mediaPlayerPlay();
}
}
@@ -644,14 +625,12 @@ void MediaPlayerPrivate::onSizeChanged()
void MediaPlayerPrivate::onPlayNotified()
{
- if (HTMLMediaElement* element = static_cast<HTMLMediaElement*>(m_webCorePlayer->mediaPlayerClient()))
- element->play();
+ m_webCorePlayer->mediaPlayerClient()->mediaPlayerPlay();
}
void MediaPlayerPrivate::onPauseNotified()
{
- if (HTMLMediaElement* element = static_cast<HTMLMediaElement*>(m_webCorePlayer->mediaPlayerClient()))
- element->pause();
+ m_webCorePlayer->mediaPlayerClient()->mediaPlayerPause();
}
static const int popupDialogInterval = 10;
@@ -726,8 +705,8 @@ bool MediaPlayerPrivate::onAuthenticationNeeded(MMRAuthChallenge& authChallenge)
Credential credential = CredentialStorage::get(protectionSpace);
bool isConfirmed = false;
if (credential.isEmpty()) {
- if (frameView() && frameView()->hostWindow())
- isConfirmed = frameView()->hostWindow()->platformPageClient()->authenticationChallenge(url, protectionSpace, credential);
+ isConfirmed = m_webCorePlayer->mediaPlayerClient()->mediaPlayerHostWindow()->platformPageClient()->authenticationChallenge(url, protectionSpace, credential);
+
} else
isConfirmed = true;
@@ -783,11 +762,7 @@ int MediaPlayerPrivate::showErrorDialog(PlatformPlayer::Error type)
LOG(Media, "Alert type does not exist.");
return -1;
}
-
- int rc = 0;
- if (frameView() && frameView()->hostWindow())
- rc = frameView()->hostWindow()->platformPageClient()->showAlertDialog(atype);
- return rc;
+ return m_webCorePlayer->mediaPlayerClient()->mediaPlayerHostWindow()->platformPageClient()->showAlertDialog(atype);
}
static WebMediaStreamSource toWebMediaStreamSource(MediaStreamSource* src)
@@ -817,23 +792,9 @@ WebMediaStreamDescriptor MediaPlayerPrivate::lookupMediaStream(const string& url
return toWebMediaStreamDescriptor(descriptor);
}
-FrameView* MediaPlayerPrivate::frameView() const
-{
- // We previously used m_webCorePlayer->frameView(), but this method returns
- // a null frameView until quite late in the media player initialization,
- // and starting quite early in the media player destruction (because
- // it may be set to zero by the destructor in RenderVideo.cpp before
- // our destructor is called, leaving us unable to clean up child windows
- // in mmrDisconnect).
- HTMLMediaElement* element = static_cast<HTMLMediaElement*>(m_webCorePlayer->mediaPlayerClient());
- return element->document()->view();
-}
-
BlackBerry::Platform::Graphics::Window* MediaPlayerPrivate::platformWindow()
{
- if (frameView() && frameView()->hostWindow())
- return frameView()->hostWindow()->platformPageClient()->platformWindow();
- return 0;
+ return m_webCorePlayer->mediaPlayerClient()->mediaPlayerHostWindow()->platformPageClient()->platformWindow();
}
bool MediaPlayerPrivate::isFullscreen() const
@@ -843,17 +804,12 @@ bool MediaPlayerPrivate::isFullscreen() const
bool MediaPlayerPrivate::isElementPaused() const
{
- HTMLMediaElement* element = static_cast<HTMLMediaElement*>(m_webCorePlayer->mediaPlayerClient());
- if (!element || element->paused())
- return true;
- return false;
+ return m_webCorePlayer->mediaPlayerClient()->mediaPlayerIsPaused();
}
bool MediaPlayerPrivate::isTabVisible() const
{
- if (frameView() && frameView()->hostWindow())
- return frameView()->hostWindow()->platformPageClient()->isVisible();
- return true;
+ return m_webCorePlayer->mediaPlayerClient()->mediaPlayerHostWindow()->platformPageClient()->isVisible();
}
#if USE(ACCELERATED_COMPOSITING)
diff --git a/Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h b/Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h
index 40156fbb7..570741ce2 100644
--- a/Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h
+++ b/Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h
@@ -145,7 +145,6 @@ public:
private:
MediaPlayerPrivate(MediaPlayer*);
- FrameView* frameView() const;
void updateStates();
String userAgent(const String&) const;
diff --git a/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp b/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp
index 7cf02968e..b00666759 100644
--- a/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp
+++ b/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp
@@ -70,12 +70,10 @@ void sharedBufferRelease(void* info)
}
#endif
-ImageSource::ImageSource(ImageSource::AlphaOption alphaOption, ImageSource::GammaAndColorProfileOption gammaAndColorProfileOption)
+ImageSource::ImageSource(ImageSource::AlphaOption, ImageSource::GammaAndColorProfileOption)
: m_decoder(0)
- // FIXME: m_premultiplyAlpha is ignored in cg at the moment.
- , m_alphaOption(alphaOption)
- , m_gammaAndColorProfileOption(gammaAndColorProfileOption)
{
+ // FIXME: AlphaOption and GammaAndColorProfileOption are ignored.
}
ImageSource::~ImageSource()
diff --git a/Source/WebCore/platform/graphics/chromium/AnimationTranslationUtil.cpp b/Source/WebCore/platform/graphics/chromium/AnimationTranslationUtil.cpp
index 63cff30d9..8064ae38e 100644
--- a/Source/WebCore/platform/graphics/chromium/AnimationTranslationUtil.cpp
+++ b/Source/WebCore/platform/graphics/chromium/AnimationTranslationUtil.cpp
@@ -123,16 +123,16 @@ WebTransformOperations toWebTransformOperations(const TransformOperations& trans
}
template <class Value, class Keyframe, class Curve>
-bool appendKeyframeWithStandardTimingFunction(Curve& curve, double keyTime, const Value* value, const Value* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize&)
+bool appendKeyframeWithStandardTimingFunction(Curve* curve, double keyTime, const Value* value, const Value* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize&)
{
- curve.add(Keyframe(keyTime, value->value()), timingFunctionType);
+ curve->add(Keyframe(keyTime, value->value()), timingFunctionType);
return true;
}
template <class Value, class Keyframe, class Curve>
-bool appendKeyframeWithCustomBezierTimingFunction(Curve& curve, double keyTime, const Value* value, const Value* lastValue, double x1, double y1, double x2, double y2, const FloatSize&)
+bool appendKeyframeWithCustomBezierTimingFunction(Curve* curve, double keyTime, const Value* value, const Value* lastValue, double x1, double y1, double x2, double y2, const FloatSize&)
{
- curve.add(Keyframe(keyTime, value->value()), x1, y1, x2, y2);
+ curve->add(Keyframe(keyTime, value->value()), x1, y1, x2, y2);
return true;
}
@@ -185,28 +185,28 @@ bool causesRotationOfAtLeast180Degrees(const TransformAnimationValue* value, con
}
template <>
-bool appendKeyframeWithStandardTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve& curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize& boxSize)
+bool appendKeyframeWithStandardTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve* curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, WebKit::WebAnimationCurve::TimingFunctionType timingFunctionType, const FloatSize& boxSize)
{
if (causesRotationOfAtLeast180Degrees(value, lastValue))
return false;
WebTransformOperations operations = toWebTransformOperations(*value->value(), boxSize);
if (operations.apply().isInvertible()) {
- curve.add(WebTransformKeyframe(keyTime, operations), timingFunctionType);
+ curve->add(WebTransformKeyframe(keyTime, operations), timingFunctionType);
return true;
}
return false;
}
template <>
-bool appendKeyframeWithCustomBezierTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve& curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, double x1, double y1, double x2, double y2, const FloatSize& boxSize)
+bool appendKeyframeWithCustomBezierTimingFunction<TransformAnimationValue, WebTransformKeyframe, WebTransformAnimationCurve>(WebTransformAnimationCurve* curve, double keyTime, const TransformAnimationValue* value, const TransformAnimationValue* lastValue, double x1, double y1, double x2, double y2, const FloatSize& boxSize)
{
if (causesRotationOfAtLeast180Degrees(value, lastValue))
return false;
WebTransformOperations operations = toWebTransformOperations(*value->value(), boxSize);
if (operations.apply().isInvertible()) {
- curve.add(WebTransformKeyframe(keyTime, operations), x1, y1, x2, y2);
+ curve->add(WebTransformKeyframe(keyTime, operations), x1, y1, x2, y2);
return true;
}
return false;
@@ -225,7 +225,7 @@ PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& val
reverse = true;
}
- Curve curve;
+ OwnPtr<Curve> curve = adoptPtr(Curve::create());
for (size_t i = 0; i < valueList.size(); i++) {
size_t index = reverse ? valueList.size() - i - 1 : i;
@@ -277,14 +277,14 @@ PassOwnPtr<WebKit::WebAnimation> createWebAnimation(const KeyframeValueList& val
bool addedKeyframe = false;
if (isUsingCustomBezierTimingFunction)
- addedKeyframe = appendKeyframeWithCustomBezierTimingFunction<Value, Keyframe, Curve>(curve, keyTime, originalValue, lastOriginalValue, x1, y1, x2, y2, boxSize);
+ addedKeyframe = appendKeyframeWithCustomBezierTimingFunction<Value, Keyframe, Curve>(curve.get(), keyTime, originalValue, lastOriginalValue, x1, y1, x2, y2, boxSize);
else
- addedKeyframe = appendKeyframeWithStandardTimingFunction<Value, Keyframe, Curve>(curve, keyTime, originalValue, lastOriginalValue, timingFunctionType, boxSize);
+ addedKeyframe = appendKeyframeWithStandardTimingFunction<Value, Keyframe, Curve>(curve.get(), keyTime, originalValue, lastOriginalValue, timingFunctionType, boxSize);
if (!addedKeyframe)
return nullptr;
}
- OwnPtr<WebKit::WebAnimation> anim(adoptPtr(WebKit::WebAnimation::create(curve, animationId, groupId, targetProperty)));
+ OwnPtr<WebKit::WebAnimation> anim(adoptPtr(WebKit::WebAnimation::create(*curve, animationId, groupId, targetProperty)));
int iterations = (animation && animation->isIterationCountSet()) ? animation->iterationCount() : 1;
anim->setIterations(iterations);
diff --git a/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp b/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp
index 10654312c..ed332b187 100644
--- a/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp
+++ b/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp
@@ -27,10 +27,10 @@
#include "Canvas2DLayerBridge.h"
+#include "CCRendererGL.h" // For the GLC() macro.
#include "GrContext.h"
#include "GraphicsContext3D.h"
#include "GraphicsContext3DPrivate.h"
-#include "LayerRendererChromium.h" // For GLC() macro.
#include "TraceEvent.h"
#include <public/WebCompositor.h>
#include <public/WebGraphicsContext3D.h>
@@ -166,4 +166,3 @@ unsigned Canvas2DLayerBridge::backBufferTexture()
}
}
-
diff --git a/Source/WebCore/platform/graphics/chromium/ContentLayerChromium.cpp b/Source/WebCore/platform/graphics/chromium/ContentLayerChromium.cpp
index a8f57e296..c2bf45ead 100644
--- a/Source/WebCore/platform/graphics/chromium/ContentLayerChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/ContentLayerChromium.cpp
@@ -117,7 +117,7 @@ void ContentLayerChromium::createTextureUpdaterIfNeeded()
m_textureUpdater = BitmapCanvasLayerTextureUpdater::create(ContentLayerPainter::create(m_delegate));
m_textureUpdater->setOpaque(opaque());
- GC3Denum textureFormat = layerTreeHost()->layerRendererCapabilities().bestTextureFormat;
+ GC3Denum textureFormat = layerTreeHost()->rendererCapabilities().bestTextureFormat;
setTextureFormat(textureFormat);
setSampledTexelFormat(textureUpdater()->sampledTexelFormat(textureFormat));
}
diff --git a/Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp b/Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp
index 67ab4624f..960ef958e 100644
--- a/Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp
+++ b/Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp
@@ -29,8 +29,8 @@
#include "GeometryBinding.h"
+#include "CCRendererGL.h" // For the GLC() macro.
#include "GraphicsContext3D.h"
-#include "LayerRendererChromium.h"
#include <public/WebGraphicsContext3D.h>
namespace WebCore {
diff --git a/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp b/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
index 7d5591be3..cf4435bda 100644
--- a/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
@@ -597,16 +597,17 @@ void GraphicsLayerChromium::setDebugBorder(const Color& color, float borderWidth
void GraphicsLayerChromium::updateChildList()
{
- Vector<WebLayer*> newChildren;
+ WebLayer* childHost = m_transformLayer ? m_transformLayer.get() : m_layer->layer();
+ childHost->removeAllChildren();
if (m_transformLayer) {
// Add the primary layer first. Even if we have negative z-order children, the primary layer always comes behind.
- newChildren.append(m_layer->layer());
+ childHost->addChild(m_layer->layer());
} else if (m_contentsLayer) {
// FIXME: add the contents layer in the correct order with negative z-order children.
// This does not cause visible rendering issues because currently contents layers are only used
// for replaced elements that don't have children.
- newChildren.append(m_contentsLayer);
+ childHost->addChild(m_contentsLayer);
}
const Vector<GraphicsLayer*>& childLayers = children();
@@ -614,29 +615,18 @@ void GraphicsLayerChromium::updateChildList()
for (size_t i = 0; i < numChildren; ++i) {
GraphicsLayerChromium* curChild = static_cast<GraphicsLayerChromium*>(childLayers[i]);
- newChildren.append(curChild->platformLayer());
+ childHost->addChild(curChild->platformLayer());
}
if (m_linkHighlight)
- newChildren.append(m_linkHighlight->layer());
+ childHost->addChild(m_linkHighlight->layer());
- for (size_t i = 0; i < newChildren.size(); ++i)
- newChildren[i]->removeFromParent();
-
- WebVector<WebLayer*> newWebChildren;
- newWebChildren.assign(newChildren.data(), newChildren.size());
-
- if (m_transformLayer) {
- m_transformLayer->setChildren(newWebChildren);
-
- if (m_contentsLayer) {
- // If we have a transform layer, then the contents layer is parented in the
- // primary layer (which is itself a child of the transform layer).
- m_layer->layer()->removeAllChildren();
- m_layer->layer()->addChild(m_contentsLayer);
- }
- } else
- m_layer->layer()->setChildren(newWebChildren);
+ if (m_transformLayer && m_contentsLayer) {
+ // If we have a transform layer, then the contents layer is parented in the
+ // primary layer (which is itself a child of the transform layer).
+ m_layer->layer()->removeAllChildren();
+ m_layer->layer()->addChild(m_contentsLayer);
+ }
}
void GraphicsLayerChromium::updateLayerPosition()
diff --git a/Source/WebCore/platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp b/Source/WebCore/platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp
index 2ae58ab7b..dc71d271c 100644
--- a/Source/WebCore/platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp
@@ -52,7 +52,7 @@ HeadsUpDisplayLayerChromium::~HeadsUpDisplayLayerChromium()
void HeadsUpDisplayLayerChromium::update(CCTextureUpdateQueue&, const CCOcclusionTracker*, CCRenderingStats&)
{
const CCLayerTreeSettings& settings = layerTreeHost()->settings();
- int maxTextureSize = layerTreeHost()->layerRendererCapabilities().maxTextureSize;
+ int maxTextureSize = layerTreeHost()->rendererCapabilities().maxTextureSize;
IntSize bounds;
if (settings.showPlatformLayerTree || settings.showDebugRects()) {
diff --git a/Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp b/Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp
index f8d869fad..1049e03ee 100644
--- a/Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp
@@ -157,7 +157,7 @@ void ImageLayerChromium::createTextureUpdaterIfNeeded()
return;
m_textureUpdater = ImageLayerTextureUpdater::create();
- GC3Denum textureFormat = layerTreeHost()->layerRendererCapabilities().bestTextureFormat;
+ GC3Denum textureFormat = layerTreeHost()->rendererCapabilities().bestTextureFormat;
setTextureFormat(textureFormat);
setSampledTexelFormat(textureUpdater()->sampledTexelFormat(textureFormat));
}
diff --git a/Source/WebCore/platform/graphics/chromium/LayerTextureSubImage.cpp b/Source/WebCore/platform/graphics/chromium/LayerTextureSubImage.cpp
index 83c7114ba..5c8960ee2 100644
--- a/Source/WebCore/platform/graphics/chromium/LayerTextureSubImage.cpp
+++ b/Source/WebCore/platform/graphics/chromium/LayerTextureSubImage.cpp
@@ -29,8 +29,8 @@
#include "LayerTextureSubImage.h"
+#include "CCRendererGL.h" // For the GLC() macro.
#include "Extensions3DChromium.h"
-#include "LayerRendererChromium.h" // For GLC() macro
#include "TraceEvent.h"
#include <public/WebGraphicsContext3D.h>
diff --git a/Source/WebCore/platform/graphics/chromium/ProgramBinding.cpp b/Source/WebCore/platform/graphics/chromium/ProgramBinding.cpp
index 2f6ca2286..ccc14875f 100644
--- a/Source/WebCore/platform/graphics/chromium/ProgramBinding.cpp
+++ b/Source/WebCore/platform/graphics/chromium/ProgramBinding.cpp
@@ -29,9 +29,9 @@
#include "ProgramBinding.h"
+#include "CCRendererGL.h" // For the GLC() macro.
#include "GeometryBinding.h"
#include "GraphicsContext3D.h"
-#include "LayerRendererChromium.h"
#include "TraceEvent.h"
#include <public/WebGraphicsContext3D.h>
#include <wtf/text/CString.h>
diff --git a/Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.h b/Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.h
index 7b11f6aac..787eaaec2 100644
--- a/Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.h
+++ b/Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.h
@@ -37,7 +37,6 @@
namespace WebCore {
class LayerChromium;
-class LayerRendererChromium;
class RenderSurfaceChromium {
WTF_MAKE_NONCOPYABLE(RenderSurfaceChromium);
diff --git a/Source/WebCore/platform/graphics/chromium/ScrollbarLayerChromium.cpp b/Source/WebCore/platform/graphics/chromium/ScrollbarLayerChromium.cpp
index 67fbd3679..5dd1045ab 100644
--- a/Source/WebCore/platform/graphics/chromium/ScrollbarLayerChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/ScrollbarLayerChromium.cpp
@@ -188,7 +188,7 @@ void ScrollbarLayerChromium::setLayerTreeHost(CCLayerTreeHost* host)
void ScrollbarLayerChromium::createTextureUpdaterIfNeeded()
{
- m_textureFormat = layerTreeHost()->layerRendererCapabilities().bestTextureFormat;
+ m_textureFormat = layerTreeHost()->rendererCapabilities().bestTextureFormat;
if (!m_backTrackUpdater)
m_backTrackUpdater = BitmapCanvasLayerTextureUpdater::create(ScrollbarBackgroundPainter::create(m_scrollbar.get(), m_painter, m_geometry.get(), WebKit::WebScrollbar::BackTrackPart));
diff --git a/Source/WebCore/platform/graphics/chromium/TextureCopier.cpp b/Source/WebCore/platform/graphics/chromium/TextureCopier.cpp
index fbb7cffd5..e20c323cc 100644
--- a/Source/WebCore/platform/graphics/chromium/TextureCopier.cpp
+++ b/Source/WebCore/platform/graphics/chromium/TextureCopier.cpp
@@ -26,8 +26,8 @@
#include "TextureCopier.h"
+#include "CCRendererGL.h" // For the GLC() macro.
#include "GraphicsContext3D.h"
-#include "LayerRendererChromium.h" // For the GLC() macro
#include "TraceEvent.h"
#include <public/WebGraphicsContext3D.h>
diff --git a/Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp b/Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp
index 68bfa45b0..5dc65ec5a 100644
--- a/Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp
@@ -149,7 +149,7 @@ void TiledLayerChromium::updateTileSizeAndTilingOption()
isTiled = autoTiled;
IntSize requestedSize = isTiled ? tileSize : contentBounds();
- const int maxSize = layerTreeHost()->layerRendererCapabilities().maxTextureSize;
+ const int maxSize = layerTreeHost()->rendererCapabilities().maxTextureSize;
IntSize clampedSize = requestedSize.shrunkTo(IntSize(maxSize, maxSize));
setTileSize(clampedSize);
}
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp
index 271174002..c2a8892d0 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp
@@ -97,9 +97,9 @@ double CCDelayBasedTimeSource::lastTickTime()
return m_lastTickTime;
}
-double CCDelayBasedTimeSource::nextTickTime()
+double CCDelayBasedTimeSource::nextTickTimeIfActivated()
{
- return active() ? m_currentParameters.tickTarget : 0.0;
+ return active() ? m_currentParameters.tickTarget : nextTickTarget(monotonicTimeNow());
}
void CCDelayBasedTimeSource::onTimerFired()
@@ -207,7 +207,7 @@ double CCDelayBasedTimeSource::monotonicTimeNow() const
// now=37 tickTarget=16.667 newTarget=50.000 --> tick(), postDelayedTask(floor(50.000-37)) --> postDelayedTask(13)
//
// Note, that in the above discussion, times are expressed in milliseconds, but in the code, seconds are used.
-void CCDelayBasedTimeSource::postNextTickTask(double now)
+double CCDelayBasedTimeSource::nextTickTarget(double now)
{
double newInterval = m_nextParameters.interval;
double intervalsElapsed = floor((now - m_nextParameters.tickTarget) / newInterval);
@@ -221,9 +221,16 @@ void CCDelayBasedTimeSource::postNextTickTask(double now)
if (newTickTarget - m_lastTickTime <= newInterval * doubleTickThreshold)
newTickTarget += newInterval;
+ return newTickTarget;
+}
+
+void CCDelayBasedTimeSource::postNextTickTask(double now)
+{
+ double newTickTarget = nextTickTarget(now);
+
// Post another task *before* the tick and update state
double delay = newTickTarget - now;
- ASSERT(delay <= newInterval * (1.0 + doubleTickThreshold));
+ ASSERT(delay <= m_nextParameters.interval * (1.0 + doubleTickThreshold));
m_timer.startOneShot(delay);
m_nextParameters.tickTarget = newTickTarget;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.h b/Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.h
index f99837446..c68dc0b99 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.h
@@ -50,9 +50,8 @@ public:
virtual bool active() const OVERRIDE { return m_state != STATE_INACTIVE; }
// Get the last and next tick times.
- // If not active, nextTickTime will return 0.
virtual double lastTickTime() OVERRIDE;
- virtual double nextTickTime() OVERRIDE;
+ virtual double nextTickTimeIfActivated() OVERRIDE;
// CCTimerClient implementation.
virtual void onTimerFired() OVERRIDE;
@@ -62,6 +61,7 @@ public:
protected:
CCDelayBasedTimeSource(double interval, CCThread*);
+ double nextTickTarget(double now);
void postNextTickTask(double now);
enum State {
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp
index 5b00fef79..8d85fb342 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp
@@ -151,10 +151,10 @@ void CCFrameRateController::didAbortAllPendingFrames()
m_numFramesPending = 0;
}
-double CCFrameRateController::nextTickTime()
+double CCFrameRateController::nextTickTimeIfActivated()
{
if (m_isTimeSourceThrottling)
- return m_timeSource->nextTickTime();
+ return m_timeSource->nextTickTimeIfActivated();
return monotonicallyIncreasingTime();
}
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.h b/Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.h
index 13d853b70..11b29a72e 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.h
@@ -67,7 +67,7 @@ public:
void didFinishFrame();
void didAbortAllPendingFrames();
void setMaxFramesPending(int); // 0 for unlimited.
- double nextTickTime();
+ double nextTickTimeIfActivated();
void setTimebaseAndInterval(double timebase, double intervalSeconds);
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp
index 5fdd2cd69..99df0ea57 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp
@@ -35,7 +35,6 @@
#include "CCTextureDrawQuad.h"
#include "Extensions3DChromium.h"
#include "GraphicsContext3D.h"
-#include "LayerRendererChromium.h"
#include "SkBitmap.h"
#include "SkColorMatrixFilter.h"
#include "SkPaint.h"
@@ -91,16 +90,18 @@ void CCHeadsUpDisplayLayerImpl::willDraw(CCResourceProvider* resourceProvider)
m_hudTexture->allocate(CCRenderer::ImplPool, bounds(), GraphicsContext3D::RGBA, CCResourceProvider::TextureUsageAny);
}
-void CCHeadsUpDisplayLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState* sharedQuadState, bool&)
+void CCHeadsUpDisplayLayerImpl::appendQuads(CCQuadSink& quadSink, bool&)
{
if (!m_hudTexture->id())
return;
+ CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQuadState());
+
IntRect quadRect(IntPoint(), bounds());
bool premultipliedAlpha = true;
FloatRect uvRect(0, 0, 1, 1);
bool flipped = false;
- quadList.append(CCTextureDrawQuad::create(sharedQuadState, quadRect, m_hudTexture->id(), premultipliedAlpha, uvRect, flipped));
+ quadSink.append(CCTextureDrawQuad::create(sharedQuadState, quadRect, m_hudTexture->id(), premultipliedAlpha, uvRect, flipped));
}
void CCHeadsUpDisplayLayerImpl::updateHudTexture(CCResourceProvider* resourceProvider)
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h b/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h
index 1ee24c47e..f7d477fff 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h
@@ -49,7 +49,7 @@ public:
void setFontAtlas(PassOwnPtr<CCFontAtlas>);
virtual void willDraw(CCResourceProvider*) OVERRIDE;
- virtual void appendQuads(CCQuadSink&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
+ virtual void appendQuads(CCQuadSink&, bool& hadMissingTiles) OVERRIDE;
void updateHudTexture(CCResourceProvider*);
virtual void didDraw(CCResourceProvider*) OVERRIDE;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp
index 283b7c99a..9f69e238f 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp
@@ -33,8 +33,8 @@
#include "CCIOSurfaceDrawQuad.h"
#include "CCLayerTreeHostImpl.h"
#include "CCQuadSink.h"
+#include "CCRendererGL.h" // For the GLC() macro.
#include "Extensions3D.h"
-#include "LayerRendererChromium.h"
#include "TextStream.h"
#include <public/WebGraphicsContext3D.h>
@@ -96,10 +96,13 @@ void CCIOSurfaceLayerImpl::willDraw(CCResourceProvider* resourceProvider)
}
}
-void CCIOSurfaceLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState* sharedQuadState, bool&)
+void CCIOSurfaceLayerImpl::appendQuads(CCQuadSink& quadSink, bool&)
{
+ CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQuadState());
+ appendDebugBorderQuad(quadSink, sharedQuadState);
+
IntRect quadRect(IntPoint(), contentBounds());
- quadList.append(CCIOSurfaceDrawQuad::create(sharedQuadState, quadRect, m_ioSurfaceSize, m_ioSurfaceTextureId, CCIOSurfaceDrawQuad::Flipped));
+ quadSink.append(CCIOSurfaceDrawQuad::create(sharedQuadState, quadRect, m_ioSurfaceSize, m_ioSurfaceTextureId, CCIOSurfaceDrawQuad::Flipped));
}
void CCIOSurfaceLayerImpl::dumpLayerProperties(TextStream& ts, int indent) const
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h b/Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h
index 019b8fe2d..3a55bf2e2 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h
@@ -41,7 +41,7 @@ public:
void setIOSurfaceProperties(unsigned ioSurfaceId, const IntSize&);
- virtual void appendQuads(CCQuadSink&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
+ virtual void appendQuads(CCQuadSink&, bool& hadMissingTiles) OVERRIDE;
virtual void willDraw(CCResourceProvider*) OVERRIDE;
virtual void didLoseContext() OVERRIDE;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.cpp
index 8444d1d88..e6de00e24 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.cpp
@@ -144,9 +144,9 @@ bool CCLayerImpl::descendantDrawsContent()
return false;
}
-PassOwnPtr<CCSharedQuadState> CCLayerImpl::createSharedQuadState(int id) const
+PassOwnPtr<CCSharedQuadState> CCLayerImpl::createSharedQuadState() const
{
- return CCSharedQuadState::create(id, m_drawTransform, m_visibleContentRect, m_drawableContentRect, m_drawOpacity, m_opaque);
+ return CCSharedQuadState::create(m_drawTransform, m_visibleContentRect, m_drawableContentRect, m_drawOpacity, m_opaque);
}
void CCLayerImpl::willDraw(CCResourceProvider*)
@@ -263,7 +263,7 @@ void CCLayerImpl::dumpLayerProperties(TextStream& ts, int indent) const
void sortLayers(Vector<CCLayerImpl*>::iterator first, Vector<CCLayerImpl*>::iterator end, CCLayerSorter* layerSorter)
{
- TRACE_EVENT0("cc", "LayerRendererChromium::sortLayers");
+ TRACE_EVENT0("cc", "CCLayerImpl::sortLayers");
layerSorter->sort(first, end);
}
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h b/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h
index e951c5d7c..e12b1b1a7 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h
@@ -89,15 +89,14 @@ public:
CCLayerTreeHostImpl* layerTreeHostImpl() const { return m_layerTreeHostImpl; }
void setLayerTreeHostImpl(CCLayerTreeHostImpl* hostImpl) { m_layerTreeHostImpl = hostImpl; }
- PassOwnPtr<CCSharedQuadState> createSharedQuadState(int id) const;
+ PassOwnPtr<CCSharedQuadState> createSharedQuadState() const;
// willDraw must be called before appendQuads. If willDraw is called,
// didDraw is guaranteed to be called before another willDraw or before
// the layer is destroyed. To enforce this, any class that overrides
// willDraw/didDraw must call the base class version.
virtual void willDraw(CCResourceProvider*);
- virtual void appendQuads(CCQuadSink&, const CCSharedQuadState*, bool& hadMissingTiles) { }
+ virtual void appendQuads(CCQuadSink&, bool& hadMissingTiles) { }
virtual void didDraw(CCResourceProvider*);
- void appendDebugBorderQuad(CCQuadSink&, const CCSharedQuadState*) const;
virtual CCResourceProvider::ResourceId contentsResourceId() const;
@@ -275,6 +274,8 @@ public:
protected:
explicit CCLayerImpl(int);
+ void appendDebugBorderQuad(CCQuadSink&, const CCSharedQuadState*) const;
+
virtual void dumpLayerProperties(TextStream&, int indent) const;
static void writeIndent(TextStream&, int indent);
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp
index 2e3a7deb3..5ee1bf6e9 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp
@@ -75,7 +75,7 @@ CCLayerTreeHost::CCLayerTreeHost(CCLayerTreeHostClient* client, const CCLayerTre
, m_client(client)
, m_commitNumber(0)
, m_renderingStats()
- , m_layerRendererInitialized(false)
+ , m_rendererInitialized(false)
, m_contextLost(false)
, m_numTimesRecreateShouldFail(0)
, m_numFailedRecreateAttempts(0)
@@ -131,30 +131,30 @@ void CCLayerTreeHost::setSurfaceReady()
m_proxy->setSurfaceReady();
}
-void CCLayerTreeHost::initializeLayerRenderer()
+void CCLayerTreeHost::initializeRenderer()
{
- TRACE_EVENT0("cc", "CCLayerTreeHost::initializeLayerRenderer");
- if (!m_proxy->initializeLayerRenderer()) {
+ TRACE_EVENT0("cc", "CCLayerTreeHost::initializeRenderer");
+ if (!m_proxy->initializeRenderer()) {
// Uh oh, better tell the client that we can't do anything with this context.
m_client->didRecreateOutputSurface(false);
return;
}
// Update m_settings based on capabilities that we got back from the renderer.
- m_settings.acceleratePainting = m_proxy->layerRendererCapabilities().usingAcceleratedPainting;
+ m_settings.acceleratePainting = m_proxy->rendererCapabilities().usingAcceleratedPainting;
// Update m_settings based on partial update capability.
m_settings.maxPartialTextureUpdates = min(m_settings.maxPartialTextureUpdates, m_proxy->maxPartialTextureUpdates());
- m_contentsTextureManager = CCPrioritizedTextureManager::create(0, m_proxy->layerRendererCapabilities().maxTextureSize, CCRenderer::ContentPool);
+ m_contentsTextureManager = CCPrioritizedTextureManager::create(0, m_proxy->rendererCapabilities().maxTextureSize, CCRenderer::ContentPool);
m_surfaceMemoryPlaceholder = m_contentsTextureManager->createTexture(IntSize(), GraphicsContext3D::RGBA);
- m_layerRendererInitialized = true;
+ m_rendererInitialized = true;
- m_settings.defaultTileSize = IntSize(min(m_settings.defaultTileSize.width(), m_proxy->layerRendererCapabilities().maxTextureSize),
- min(m_settings.defaultTileSize.height(), m_proxy->layerRendererCapabilities().maxTextureSize));
- m_settings.maxUntiledLayerSize = IntSize(min(m_settings.maxUntiledLayerSize.width(), m_proxy->layerRendererCapabilities().maxTextureSize),
- min(m_settings.maxUntiledLayerSize.height(), m_proxy->layerRendererCapabilities().maxTextureSize));
+ m_settings.defaultTileSize = IntSize(min(m_settings.defaultTileSize.width(), m_proxy->rendererCapabilities().maxTextureSize),
+ min(m_settings.defaultTileSize.height(), m_proxy->rendererCapabilities().maxTextureSize));
+ m_settings.maxUntiledLayerSize = IntSize(min(m_settings.maxUntiledLayerSize.width(), m_proxy->rendererCapabilities().maxTextureSize),
+ min(m_settings.maxUntiledLayerSize.height(), m_proxy->rendererCapabilities().maxTextureSize));
}
CCLayerTreeHost::RecreateResult CCLayerTreeHost::recreateContext()
@@ -195,7 +195,7 @@ CCLayerTreeHost::RecreateResult CCLayerTreeHost::recreateContext()
void CCLayerTreeHost::deleteContentsTexturesOnImplThread(CCResourceProvider* resourceProvider)
{
ASSERT(CCProxy::isImplThread());
- if (m_layerRendererInitialized)
+ if (m_rendererInitialized)
m_contentsTextureManager->clearAllMemory(resourceProvider);
}
@@ -317,7 +317,7 @@ bool CCLayerTreeHost::compositeAndReadback(void *pixels, const IntRect& rect)
void CCLayerTreeHost::finishAllRendering()
{
- if (!m_layerRendererInitialized)
+ if (!m_rendererInitialized)
return;
m_proxy->finishAllRendering();
}
@@ -328,9 +328,9 @@ void CCLayerTreeHost::renderingStats(CCRenderingStats& stats) const
m_proxy->implSideRenderingStats(stats);
}
-const LayerRendererCapabilities& CCLayerTreeHost::layerRendererCapabilities() const
+const RendererCapabilities& CCLayerTreeHost::rendererCapabilities() const
{
- return m_proxy->layerRendererCapabilities();
+ return m_proxy->rendererCapabilities();
}
void CCLayerTreeHost::setNeedsAnimate()
@@ -446,12 +446,12 @@ void CCLayerTreeHost::scheduleComposite()
m_client->scheduleComposite();
}
-bool CCLayerTreeHost::initializeLayerRendererIfNeeded()
+bool CCLayerTreeHost::initializeRendererIfNeeded()
{
- if (!m_layerRendererInitialized) {
- initializeLayerRenderer();
+ if (!m_rendererInitialized) {
+ initializeRenderer();
// If we couldn't initialize, then bail since we're returning to software mode.
- if (!m_layerRendererInitialized)
+ if (!m_rendererInitialized)
return false;
}
if (m_contextLost) {
@@ -464,7 +464,7 @@ bool CCLayerTreeHost::initializeLayerRendererIfNeeded()
void CCLayerTreeHost::updateLayers(CCTextureUpdateQueue& queue, size_t memoryAllocationLimitBytes)
{
- ASSERT(m_layerRendererInitialized);
+ ASSERT(m_rendererInitialized);
ASSERT(memoryAllocationLimitBytes);
if (!rootLayer())
@@ -486,7 +486,7 @@ void CCLayerTreeHost::updateLayers(LayerChromium* rootLayer, CCTextureUpdateQueu
{
TRACE_EVENT0("cc", "CCLayerTreeHost::updateLayers::calcDrawEtc");
- CCLayerTreeHostCommon::calculateDrawTransforms(rootLayer, deviceViewportSize(), m_deviceScaleFactor, layerRendererCapabilities().maxTextureSize, updateList);
+ CCLayerTreeHostCommon::calculateDrawTransforms(rootLayer, deviceViewportSize(), m_deviceScaleFactor, rendererCapabilities().maxTextureSize, updateList);
CCLayerTreeHostCommon::calculateVisibleRects(updateList);
}
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h b/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h
index baee9e5e5..cc0b45d3d 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h
@@ -115,8 +115,8 @@ struct CCLayerTreeSettings {
};
// Provides information on an Impl's rendering capabilities back to the CCLayerTreeHost
-struct LayerRendererCapabilities {
- LayerRendererCapabilities()
+struct RendererCapabilities {
+ RendererCapabilities()
: bestTextureFormat(0)
, contextHasCachedFrontBuffer(false)
, usingPartialSwap(false)
@@ -178,7 +178,7 @@ public:
void deleteContentsTexturesOnImplThread(CCResourceProvider*);
virtual void acquireLayerTextures();
// Returns false if we should abort this frame due to initialization failure.
- bool initializeLayerRendererIfNeeded();
+ bool initializeRendererIfNeeded();
void updateLayers(CCTextureUpdateQueue&, size_t contentsMemoryLimitBytes);
CCLayerTreeHostClient* client() { return m_client; }
@@ -200,7 +200,7 @@ public:
void renderingStats(CCRenderingStats&) const;
- const LayerRendererCapabilities& layerRendererCapabilities() const;
+ const RendererCapabilities& rendererCapabilities() const;
// Test only hook
void loseContext(int numTimes);
@@ -269,7 +269,7 @@ private:
typedef Vector<RefPtr<LayerChromium> > LayerList;
typedef Vector<OwnPtr<CCPrioritizedTexture> > TextureList;
- void initializeLayerRenderer();
+ void initializeRenderer();
void update(LayerChromium*, CCTextureUpdateQueue&, const CCOcclusionTracker*);
bool paintLayerContents(const LayerList&, CCTextureUpdateQueue&);
@@ -297,7 +297,7 @@ private:
CCRenderingStats m_renderingStats;
OwnPtr<CCProxy> m_proxy;
- bool m_layerRendererInitialized;
+ bool m_rendererInitialized;
bool m_contextLost;
int m_numTimesRecreateShouldFail;
int m_numFailedRecreateAttempts;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp
index 46edcc0a8..647de88f7 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp
@@ -41,12 +41,12 @@
#include "CCPageScaleAnimation.h"
#include "CCPrioritizedTextureManager.h"
#include "CCRenderPassDrawQuad.h"
+#include "CCRendererGL.h"
#include "CCRenderingStats.h"
#include "CCScrollbarAnimationController.h"
#include "CCScrollbarLayerImpl.h"
#include "CCSettings.h"
#include "CCSingleThreadProxy.h"
-#include "LayerRendererChromium.h"
#include "TextStream.h"
#include "TraceEvent.h"
#include <wtf/CurrentTime.h>
@@ -175,8 +175,8 @@ bool CCLayerTreeHostImpl::canDraw()
TRACE_EVENT_INSTANT0("cc", "CCLayerTreeHostImpl::canDraw empty viewport");
return false;
}
- if (!m_layerRenderer) {
- TRACE_EVENT_INSTANT0("cc", "CCLayerTreeHostImpl::canDraw no layerRenderer");
+ if (!m_renderer) {
+ TRACE_EVENT_INSTANT0("cc", "CCLayerTreeHostImpl::canDraw no renderer");
return false;
}
if (m_contentsTexturesPurged) {
@@ -255,11 +255,11 @@ void CCLayerTreeHostImpl::calculateRenderSurfaceLayerList(CCLayerList& renderSur
{
ASSERT(renderSurfaceLayerList.isEmpty());
ASSERT(m_rootLayerImpl);
- ASSERT(m_layerRenderer); // For maxTextureSize.
+ ASSERT(m_renderer); // For maxTextureSize.
{
TRACE_EVENT0("cc", "CCLayerTreeHostImpl::calcDrawEtc");
- CCLayerTreeHostCommon::calculateDrawTransforms(m_rootLayerImpl.get(), deviceViewportSize(), m_deviceScaleFactor, &m_layerSorter, layerRendererCapabilities().maxTextureSize, renderSurfaceLayerList);
+ CCLayerTreeHostCommon::calculateDrawTransforms(m_rootLayerImpl.get(), deviceViewportSize(), m_deviceScaleFactor, &m_layerSorter, rendererCapabilities().maxTextureSize, renderSurfaceLayerList);
CCLayerTreeHostCommon::calculateVisibleRects(renderSurfaceLayerList);
trackDamageForAllSurfaces(m_rootLayerImpl.get(), renderSurfaceLayerList);
@@ -281,7 +281,9 @@ bool CCLayerTreeHostImpl::calculateRenderPasses(FrameData& frame)
CCRenderSurface* renderSurface = renderSurfaceLayer->renderSurface();
int renderPassId = renderSurfaceLayer->id();
- OwnPtr<CCRenderPass> pass = CCRenderPass::create(renderSurface, renderPassId);
+ IntRect outputRect = renderSurface->contentRect();
+ const WebTransformationMatrix& transformToRootTarget = renderSurface->screenSpaceTransform();
+ OwnPtr<CCRenderPass> pass = CCRenderPass::create(renderPassId, outputRect, transformToRootTarget);
pass->setDamageRect(renderSurface->damageTracker()->currentDamageRect());
pass->setFilters(renderSurfaceLayer->filters());
pass->setBackgroundFilters(renderSurfaceLayer->backgroundFilters());
@@ -338,6 +340,13 @@ bool CCLayerTreeHostImpl::calculateRenderPasses(FrameData& frame)
occlusionTracker.leaveLayer(it);
}
+#if !ASSERT_DISABLED
+ for (size_t i = 0; i < frame.renderPasses.size(); ++i) {
+ for (size_t j = 0; j < frame.renderPasses[i]->quadList().size(); ++j)
+ ASSERT(frame.renderPasses[i]->quadList()[j]->sharedQuadStateId() >= 0);
+ }
+#endif
+
if (!m_hasTransparentBackground) {
frame.renderPasses.last()->setHasTransparentBackground(false);
frame.renderPasses.last()->appendQuadsToFillScreen(m_rootLayerImpl.get(), m_backgroundColor, occlusionTracker);
@@ -347,8 +356,8 @@ bool CCLayerTreeHostImpl::calculateRenderPasses(FrameData& frame)
occlusionTracker.overdrawMetrics().recordMetrics(this);
removeRenderPasses(CullRenderPassesWithNoQuads(), frame);
- m_layerRenderer->decideRenderPassAllocationsForFrame(frame.renderPasses);
- removeRenderPasses(CullRenderPassesWithCachedTextures(*m_layerRenderer), frame);
+ m_renderer->decideRenderPassAllocationsForFrame(frame.renderPasses);
+ removeRenderPasses(CullRenderPassesWithCachedTextures(*m_renderer), frame);
return drawFrame;
}
@@ -557,7 +566,7 @@ void CCLayerTreeHostImpl::drawLayers(const FrameData& frame)
if (m_hudLayerImpl)
m_hudLayerImpl->updateHudTexture(m_resourceProvider.get());
- m_layerRenderer->drawFrame(frame.renderPasses, frame.renderPassesById);
+ m_renderer->drawFrame(frame.renderPasses, frame.renderPassesById);
// Once a RenderPass has been drawn, its damage should be cleared in
// case the RenderPass will be reused next frame.
@@ -578,26 +587,26 @@ void CCLayerTreeHostImpl::didDrawAllLayers(const FrameData& frame)
void CCLayerTreeHostImpl::finishAllRendering()
{
- if (m_layerRenderer)
- m_layerRenderer->finish();
+ if (m_renderer)
+ m_renderer->finish();
}
bool CCLayerTreeHostImpl::isContextLost()
{
- return m_layerRenderer && m_layerRenderer->isContextLost();
+ return m_renderer && m_renderer->isContextLost();
}
-const LayerRendererCapabilities& CCLayerTreeHostImpl::layerRendererCapabilities() const
+const RendererCapabilities& CCLayerTreeHostImpl::rendererCapabilities() const
{
- return m_layerRenderer->capabilities();
+ return m_renderer->capabilities();
}
bool CCLayerTreeHostImpl::swapBuffers()
{
- ASSERT(m_layerRenderer);
+ ASSERT(m_renderer);
m_fpsCounter->markEndOfFrame();
- return m_layerRenderer->swapBuffers();
+ return m_renderer->swapBuffers();
}
void CCLayerTreeHostImpl::didLoseContext()
@@ -612,8 +621,8 @@ void CCLayerTreeHostImpl::onSwapBuffersComplete()
void CCLayerTreeHostImpl::readback(void* pixels, const IntRect& rect)
{
- ASSERT(m_layerRenderer);
- m_layerRenderer->getFramebufferPixels(pixels, rect);
+ ASSERT(m_renderer);
+ m_renderer->getFramebufferPixels(pixels, rect);
}
static CCLayerImpl* findRootScrollLayer(CCLayerImpl* layer)
@@ -681,15 +690,15 @@ void CCLayerTreeHostImpl::setVisible(bool visible)
m_visible = visible;
didVisibilityChange(this, m_visible);
- if (!m_layerRenderer)
+ if (!m_renderer)
return;
- m_layerRenderer->setVisible(visible);
+ m_renderer->setVisible(visible);
setBackgroundTickingEnabled(!m_visible && m_needsAnimateLayers);
}
-bool CCLayerTreeHostImpl::initializeLayerRenderer(PassOwnPtr<CCGraphicsContext> context, TextureUploaderOption textureUploader)
+bool CCLayerTreeHostImpl::initializeRenderer(PassOwnPtr<CCGraphicsContext> context, TextureUploaderOption textureUploader)
{
if (!context->bindToClient(this))
return false;
@@ -703,26 +712,26 @@ bool CCLayerTreeHostImpl::initializeLayerRenderer(PassOwnPtr<CCGraphicsContext>
OwnPtr<CCGraphicsContext> contextRef(context);
OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(contextRef.get());
- OwnPtr<LayerRendererChromium> layerRenderer;
+ OwnPtr<CCRendererGL> renderer;
if (resourceProvider.get())
- layerRenderer = LayerRendererChromium::create(this, resourceProvider.get(), textureUploader);
+ renderer = CCRendererGL::create(this, resourceProvider.get(), textureUploader);
- // Since we now have a new context/layerRenderer, we cannot continue to use the old
+ // Since we now have a new context/renderer, we cannot continue to use the old
// resources (i.e. renderSurfaces and texture IDs).
if (m_rootLayerImpl) {
clearRenderSurfaces();
sendDidLoseContextRecursive(m_rootLayerImpl.get());
}
- m_layerRenderer = layerRenderer.release();
+ m_renderer = renderer.release();
m_resourceProvider = resourceProvider.release();
- if (m_layerRenderer)
+ if (m_renderer)
m_context = contextRef.release();
- if (!m_visible && m_layerRenderer)
- m_layerRenderer->setVisible(m_visible);
+ if (!m_visible && m_renderer)
+ m_renderer->setVisible(m_visible);
- return m_layerRenderer;
+ return m_renderer;
}
void CCLayerTreeHostImpl::setViewportSize(const IntSize& layoutViewportSize, const IntSize& deviceViewportSize)
@@ -735,8 +744,8 @@ void CCLayerTreeHostImpl::setViewportSize(const IntSize& layoutViewportSize, con
updateMaxScrollPosition();
- if (m_layerRenderer)
- m_layerRenderer->viewportChanged();
+ if (m_renderer)
+ m_renderer->viewportChanged();
}
static void adjustScrollsForPageScaleChange(CCLayerImpl* layerImpl, float pageScaleChange)
@@ -840,7 +849,7 @@ bool CCLayerTreeHostImpl::ensureRenderSurfaceLayerList()
{
if (!m_rootLayerImpl)
return false;
- if (!m_layerRenderer)
+ if (!m_renderer)
return false;
// We need both a non-empty render surface layer list and a root render
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h b/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h
index 5a4b64a57..bfda2b129 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h
@@ -47,8 +47,7 @@ class CCLayerTreeHostImplTimeSourceAdapter;
class CCPageScaleAnimation;
class CCRenderPassDrawQuad;
class CCResourceProvider;
-class LayerRendererChromium;
-struct LayerRendererCapabilities;
+struct RendererCapabilities;
struct CCRenderingStats;
// CCLayerTreeHost->CCProxy callback interface.
@@ -129,10 +128,10 @@ public:
void finishAllRendering();
int sourceAnimationFrameNumber() const;
- bool initializeLayerRenderer(PassOwnPtr<CCGraphicsContext>, TextureUploaderOption);
+ bool initializeRenderer(PassOwnPtr<CCGraphicsContext>, TextureUploaderOption);
bool isContextLost();
- CCRenderer* layerRenderer() { return m_layerRenderer.get(); }
- const LayerRendererCapabilities& layerRendererCapabilities() const;
+ CCRenderer* renderer() { return m_renderer.get(); }
+ const RendererCapabilities& rendererCapabilities() const;
bool swapBuffers();
@@ -267,7 +266,7 @@ private:
OwnPtr<CCGraphicsContext> m_context;
OwnPtr<CCResourceProvider> m_resourceProvider;
- OwnPtr<CCRenderer> m_layerRenderer;
+ OwnPtr<CCRenderer> m_renderer;
OwnPtr<CCLayerImpl> m_rootLayerImpl;
CCLayerImpl* m_rootScrollLayerImpl;
CCLayerImpl* m_currentlyScrollingLayerImpl;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTexture.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTexture.cpp
index b1722763a..d9f68af0a 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTexture.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTexture.cpp
@@ -28,7 +28,6 @@
#include "CCPrioritizedTextureManager.h"
#include "CCPriorityCalculator.h"
-#include "LayerRendererChromium.h"
#include <algorithm>
using namespace std;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp
index 4a24179c5..96fb05d94 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp
@@ -28,7 +28,6 @@
#include "CCPrioritizedTexture.h"
#include "CCPriorityCalculator.h"
-#include "LayerRendererChromium.h"
#include "TraceEvent.h"
#include <algorithm>
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCPriorityCalculator.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCPriorityCalculator.cpp
index 90084043d..5a8bebaca 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCPriorityCalculator.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCPriorityCalculator.cpp
@@ -26,8 +26,6 @@
#include "CCPriorityCalculator.h"
-#include "LayerRendererChromium.h"
-
using namespace std;
namespace WebCore {
@@ -92,4 +90,3 @@ int CCPriorityCalculator::priorityFromVisibility(bool visible, bool drawsToRootS
}
} // WebCore
-
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCProxy.h b/Source/WebCore/platform/graphics/chromium/cc/CCProxy.h
index 935f13361..602e9d49f 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCProxy.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCProxy.h
@@ -36,7 +36,7 @@ namespace WebCore {
class CCThread;
struct CCRenderingStats;
-struct LayerRendererCapabilities;
+struct RendererCapabilities;
// Abstract class responsible for proxying commands from the main-thread side of
// the compositor over to the compositor implementation.
@@ -64,7 +64,7 @@ public:
virtual bool isStarted() const = 0;
// Attempts to initialize a context to use for rendering. Returns false if the context could not be created.
- // The context will not be used and no frames may be produced until initializeLayerRenderer() is called.
+ // The context will not be used and no frames may be produced until initializeRenderer() is called.
virtual bool initializeContext() = 0;
// Indicates that the compositing surface associated with our context is ready to use.
@@ -73,7 +73,7 @@ public:
virtual void setVisible(bool) = 0;
// Attempts to initialize the layer renderer. Returns false if the context isn't usable for compositing.
- virtual bool initializeLayerRenderer() = 0;
+ virtual bool initializeRenderer() = 0;
// Attempts to recreate the context and layer renderer after a context lost. Returns false if the renderer couldn't be
// reinitialized.
@@ -83,7 +83,7 @@ public:
virtual void implSideRenderingStats(CCRenderingStats&) = 0;
- virtual const LayerRendererCapabilities& layerRendererCapabilities() const = 0;
+ virtual const RendererCapabilities& rendererCapabilities() const = 0;
virtual void setNeedsAnimate() = 0;
virtual void setNeedsCommit() = 0;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.cpp
index f2e9e9ffe..78a0bd9ec 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.cpp
@@ -48,8 +48,10 @@ static const int debugTileBorderColorRed = 160;
static const int debugTileBorderColorGreen = 100;
static const int debugTileBorderColorBlue = 0;
-CCQuadCuller::CCQuadCuller(CCQuadList& quadList, CCLayerImpl* layer, const CCOcclusionTrackerImpl* occlusionTracker, bool showCullingWithDebugBorderQuads, bool forSurface)
+CCQuadCuller::CCQuadCuller(CCQuadList& quadList, CCSharedQuadStateList& sharedQuadStateList, CCLayerImpl* layer, const CCOcclusionTrackerImpl* occlusionTracker, bool showCullingWithDebugBorderQuads, bool forSurface)
: m_quadList(quadList)
+ , m_sharedQuadStateList(sharedQuadStateList)
+ , m_currentSharedQuadState(0)
, m_layer(layer)
, m_occlusionTracker(occlusionTracker)
, m_showCullingWithDebugBorderQuads(showCullingWithDebugBorderQuads)
@@ -58,6 +60,17 @@ CCQuadCuller::CCQuadCuller(CCQuadList& quadList, CCLayerImpl* layer, const CCOcc
{
}
+CCSharedQuadState* CCQuadCuller::useSharedQuadState(PassOwnPtr<CCSharedQuadState> passSharedQuadState)
+{
+ OwnPtr<CCSharedQuadState> sharedQuadState(passSharedQuadState);
+ sharedQuadState->id = m_sharedQuadStateList.size();
+
+ // FIXME: If all quads are culled for the sharedQuadState, we can drop it from the list.
+ m_currentSharedQuadState = sharedQuadState.get();
+ m_sharedQuadStateList.append(sharedQuadState.release());
+ return m_currentSharedQuadState;
+}
+
static inline bool appendQuadInternal(PassOwnPtr<CCDrawQuad> passDrawQuad, const IntRect& culledRect, CCQuadList& quadList, const CCOcclusionTrackerImpl& occlusionTracker, bool createDebugBorderQuads)
{
OwnPtr<CCDrawQuad> drawQuad(passDrawQuad);
@@ -82,6 +95,11 @@ static inline bool appendQuadInternal(PassOwnPtr<CCDrawQuad> passDrawQuad, const
bool CCQuadCuller::append(PassOwnPtr<CCDrawQuad> passDrawQuad)
{
+ ASSERT(passDrawQuad->sharedQuadState() == m_currentSharedQuadState);
+ ASSERT(passDrawQuad->sharedQuadStateId() == m_currentSharedQuadState->id);
+ ASSERT(!m_sharedQuadStateList.isEmpty());
+ ASSERT(m_sharedQuadStateList.last().get() == m_currentSharedQuadState);
+
IntRect culledRect;
bool hasOcclusionFromOutsideTargetSurface;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.h b/Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.h
index e67b4468d..7fd8efbe4 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.h
@@ -27,27 +27,29 @@
#define CCQuadCuller_h
#include "CCQuadSink.h"
+#include "CCRenderPass.h"
namespace WebCore {
class CCLayerImpl;
class CCRenderSurface;
-class CCQuadList;
template<typename LayerType, typename SurfaceType>
class CCOcclusionTrackerBase;
class CCQuadCuller : public CCQuadSink {
public:
- CCQuadCuller(CCQuadList&, CCLayerImpl*, const CCOcclusionTrackerBase<CCLayerImpl, CCRenderSurface>*, bool showCullingWithDebugBorderQuads, bool forSurface);
-
+ CCQuadCuller(CCQuadList&, CCSharedQuadStateList&, CCLayerImpl*, const CCOcclusionTrackerBase<CCLayerImpl, CCRenderSurface>*, bool showCullingWithDebugBorderQuads, bool forSurface);
virtual ~CCQuadCuller() { }
- // Returns true if the quad is added to the list, and false if the quad is entirely culled.
- virtual bool append(PassOwnPtr<CCDrawQuad> passDrawQuad) OVERRIDE;
+ // CCQuadSink implementation.
+ virtual CCSharedQuadState* useSharedQuadState(PassOwnPtr<CCSharedQuadState>) OVERRIDE;
+ virtual bool append(PassOwnPtr<CCDrawQuad>) OVERRIDE;
bool hasOcclusionFromOutsideTargetSurface() { return m_hasOcclusionFromOutsideTargetSurface; }
private:
CCQuadList& m_quadList;
+ CCSharedQuadStateList& m_sharedQuadStateList;
+ CCSharedQuadState* m_currentSharedQuadState;
CCLayerImpl* m_layer;
const CCOcclusionTrackerBase<CCLayerImpl, CCRenderSurface>* m_occlusionTracker;
bool m_showCullingWithDebugBorderQuads;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCQuadSink.h b/Source/WebCore/platform/graphics/chromium/cc/CCQuadSink.h
index 4ae6f238a..09bdd0ae2 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCQuadSink.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCQuadSink.h
@@ -32,10 +32,16 @@ namespace WebCore {
class CCDrawQuad;
+struct CCSharedQuadState;
+
class CCQuadSink {
public:
virtual ~CCQuadSink() { }
+ // Call this to add a SharedQuadState before appending quads that refer to it. Returns a pointer
+ // to the given SharedQuadState for convenience, that can be set on the quads to append.
+ virtual CCSharedQuadState* useSharedQuadState(PassOwnPtr<CCSharedQuadState>) = 0;
+
// Returns true if the quad is added to the list, and false if the quad is entirely culled.
virtual bool append(PassOwnPtr<CCDrawQuad> passDrawQuad) = 0;
};
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp
index 3133e23d5..04fe91802 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp
@@ -38,59 +38,44 @@ using WebKit::WebTransformationMatrix;
namespace WebCore {
-PassOwnPtr<CCRenderPass> CCRenderPass::create(CCRenderSurface* targetSurface, int id)
+PassOwnPtr<CCRenderPass> CCRenderPass::create(int id, IntRect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget)
{
- return adoptPtr(new CCRenderPass(targetSurface, id));
+ return adoptPtr(new CCRenderPass(id, outputRect, transformToRootTarget));
}
-CCRenderPass::CCRenderPass(CCRenderSurface* targetSurface, int id)
+CCRenderPass::CCRenderPass(int id, IntRect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget)
: m_id(id)
- , m_transformToRootTarget(targetSurface->screenSpaceTransform())
- , m_outputRect(targetSurface->contentRect())
+ , m_transformToRootTarget(transformToRootTarget)
+ , m_outputRect(outputRect)
, m_hasTransparentBackground(true)
, m_hasOcclusionFromOutsideTargetSurface(false)
{
- ASSERT(targetSurface);
ASSERT(id > 0);
}
void CCRenderPass::appendQuadsForLayer(CCLayerImpl* layer, CCOcclusionTrackerImpl* occlusionTracker, bool& hadMissingTiles)
{
const bool forSurface = false;
- CCQuadCuller quadCuller(m_quadList, layer, occlusionTracker, layer->hasDebugBorders(), forSurface);
+ CCQuadCuller quadCuller(m_quadList, m_sharedQuadStateList, layer, occlusionTracker, layer->hasDebugBorders(), forSurface);
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(m_sharedQuadStateList.size());
- layer->appendDebugBorderQuad(quadCuller, sharedQuadState.get());
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
- m_sharedQuadStateList.append(sharedQuadState.release());
+ layer->appendQuads(quadCuller, hadMissingTiles);
m_hasOcclusionFromOutsideTargetSurface |= quadCuller.hasOcclusionFromOutsideTargetSurface();
}
void CCRenderPass::appendQuadsForRenderSurfaceLayer(CCLayerImpl* layer, const CCRenderPass* contributingRenderPass, CCOcclusionTrackerImpl* occlusionTracker)
{
- // FIXME: render surface layers should be a CCLayerImpl-derived class and
- // not be handled specially here.
const bool forSurface = true;
- CCQuadCuller quadCuller(m_quadList, layer, occlusionTracker, layer->hasDebugBorders(), forSurface);
+ CCQuadCuller quadCuller(m_quadList, m_sharedQuadStateList, layer, occlusionTracker, layer->hasDebugBorders(), forSurface);
- CCRenderSurface* surface = layer->renderSurface();
-
- OwnPtr<CCSharedQuadState> sharedQuadState = surface->createSharedQuadState(m_sharedQuadStateList.size());
bool isReplica = false;
- surface->appendQuads(quadCuller, sharedQuadState.get(), isReplica, contributingRenderPass->id());
- m_sharedQuadStateList.append(sharedQuadState.release());
-
- m_hasOcclusionFromOutsideTargetSurface |= quadCuller.hasOcclusionFromOutsideTargetSurface();
-
- if (!layer->hasReplica())
- return;
+ layer->renderSurface()->appendQuads(quadCuller, isReplica, contributingRenderPass->id());
// Add replica after the surface so that it appears below the surface.
- OwnPtr<CCSharedQuadState> replicaSharedQuadState = surface->createReplicaSharedQuadState(m_sharedQuadStateList.size());
- isReplica = true;
- surface->appendQuads(quadCuller, replicaSharedQuadState.get(), isReplica, contributingRenderPass->id());
- m_sharedQuadStateList.append(replicaSharedQuadState.release());
+ if (layer->hasReplica()) {
+ isReplica = true;
+ layer->renderSurface()->appendQuads(quadCuller, isReplica, contributingRenderPass->id());
+ }
m_hasOcclusionFromOutsideTargetSurface |= quadCuller.hasOcclusionFromOutsideTargetSurface();
}
@@ -104,22 +89,25 @@ void CCRenderPass::appendQuadsToFillScreen(CCLayerImpl* rootLayer, SkColor scree
if (fillRegion.isEmpty())
return;
+ bool forSurface = false;
+ CCQuadCuller quadCuller(m_quadList, m_sharedQuadStateList, rootLayer, &occlusionTracker, rootLayer->hasDebugBorders(), forSurface);
+
// Manually create the quad state for the gutter quads, as the root layer
// doesn't have any bounds and so can't generate this itself.
// FIXME: Make the gutter quads generated by the solid color layer (make it smarter about generating quads to fill unoccluded areas).
IntRect rootTargetRect = rootLayer->renderSurface()->contentRect();
float opacity = 1;
bool opaque = true;
- OwnPtr<CCSharedQuadState> sharedQuadState = CCSharedQuadState::create(0, rootLayer->drawTransform(), rootTargetRect, rootTargetRect, opacity, opaque);
+ CCSharedQuadState* sharedQuadState = quadCuller.useSharedQuadState(CCSharedQuadState::create(rootLayer->drawTransform(), rootTargetRect, rootTargetRect, opacity, opaque));
ASSERT(rootLayer->screenSpaceTransform().isInvertible());
WebTransformationMatrix transformToLayerSpace = rootLayer->screenSpaceTransform().inverse();
Vector<IntRect> fillRects = fillRegion.rects();
for (size_t i = 0; i < fillRects.size(); ++i) {
// The root layer transform is composed of translations and scales only, no perspective, so mapping is sufficient.
IntRect layerRect = CCMathUtil::mapClippedRect(transformToLayerSpace, fillRects[i]);
- m_quadList.append(CCSolidColorDrawQuad::create(sharedQuadState.get(), layerRect, screenBackgroundColor));
+ // Skip the quad culler and just append the quads directly to avoid occlusion checks.
+ m_quadList.append(CCSolidColorDrawQuad::create(sharedQuadState, layerRect, screenBackgroundColor));
}
- m_sharedQuadStateList.append(sharedQuadState.release());
}
}
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.h b/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.h
index 67ecb4306..4aaaf4717 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.h
@@ -53,10 +53,12 @@ public:
inline constBackToFrontIterator backToFrontEnd() const { return rend(); }
};
+typedef Vector<OwnPtr<CCSharedQuadState> > CCSharedQuadStateList;
+
class CCRenderPass {
WTF_MAKE_NONCOPYABLE(CCRenderPass);
public:
- static PassOwnPtr<CCRenderPass> create(CCRenderSurface*, int id);
+ static PassOwnPtr<CCRenderPass> create(int id, IntRect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget);
void appendQuadsForLayer(CCLayerImpl*, CCOcclusionTrackerImpl*, bool& hadMissingTiles);
void appendQuadsForRenderSurfaceLayer(CCLayerImpl*, const CCRenderPass* contributingRenderPass, CCOcclusionTrackerImpl*);
@@ -88,14 +90,14 @@ public:
bool hasOcclusionFromOutsideTargetSurface() const { return m_hasOcclusionFromOutsideTargetSurface; }
void setHasOcclusionFromOutsideTargetSurface(bool hasOcclusionFromOutsideTargetSurface) { m_hasOcclusionFromOutsideTargetSurface = hasOcclusionFromOutsideTargetSurface; }
protected:
- CCRenderPass(CCRenderSurface*, int id);
+ CCRenderPass(int id, IntRect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget);
int m_id;
CCQuadList m_quadList;
+ CCSharedQuadStateList m_sharedQuadStateList;
WebKit::WebTransformationMatrix m_transformToRootTarget;
IntRect m_outputRect;
FloatRect m_damageRect;
- Vector<OwnPtr<CCSharedQuadState> > m_sharedQuadStateList;
bool m_hasTransparentBackground;
bool m_hasOcclusionFromOutsideTargetSurface;
WebKit::WebFilterOperations m_filters;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.cpp
index 11edbfa88..50234aca3 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.cpp
@@ -36,8 +36,6 @@
#include "CCQuadSink.h"
#include "CCRenderPassDrawQuad.h"
#include "CCSharedQuadState.h"
-#include "GraphicsContext3D.h"
-#include "LayerRendererChromium.h"
#include "TextStream.h"
#include <public/WebTransformationMatrix.h>
#include <wtf/text/CString.h>
@@ -181,30 +179,21 @@ static inline IntRect computeClippedRectInTarget(const CCLayerImpl* owningLayer)
return clippedRectInTarget;
}
-PassOwnPtr<CCSharedQuadState> CCRenderSurface::createSharedQuadState(int id) const
+void CCRenderSurface::appendQuads(CCQuadSink& quadSink, bool forReplica, int renderPassId)
{
- IntRect clippedRectInTarget = computeClippedRectInTarget(m_owningLayer);
- bool isOpaque = false;
- return CCSharedQuadState::create(id, m_drawTransform, m_contentRect, clippedRectInTarget, m_drawOpacity, isOpaque);
-}
+ ASSERT(!forReplica || m_owningLayer->hasReplica());
-PassOwnPtr<CCSharedQuadState> CCRenderSurface::createReplicaSharedQuadState(int id) const
-{
IntRect clippedRectInTarget = computeClippedRectInTarget(m_owningLayer);
bool isOpaque = false;
- return CCSharedQuadState::create(id, m_replicaDrawTransform, m_contentRect, clippedRectInTarget, m_drawOpacity, isOpaque);
-}
-
-void CCRenderSurface::appendQuads(CCQuadSink& quadList, CCSharedQuadState* sharedQuadState, bool forReplica, int renderPassId)
-{
- ASSERT(!forReplica || m_owningLayer->hasReplica());
+ const WebTransformationMatrix& drawTransform = forReplica ? m_replicaDrawTransform : m_drawTransform;
+ CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(CCSharedQuadState::create(drawTransform, m_contentRect, clippedRectInTarget, m_drawOpacity, isOpaque));
if (m_owningLayer->hasDebugBorders()) {
int red = forReplica ? debugReplicaBorderColorRed : debugSurfaceBorderColorRed;
int green = forReplica ? debugReplicaBorderColorGreen : debugSurfaceBorderColorGreen;
int blue = forReplica ? debugReplicaBorderColorBlue : debugSurfaceBorderColorBlue;
SkColor color = SkColorSetARGB(debugSurfaceBorderAlpha, red, green, blue);
- quadList.append(CCDebugBorderDrawQuad::create(sharedQuadState, contentRect(), color, debugSurfaceBorderWidth));
+ quadSink.append(CCDebugBorderDrawQuad::create(sharedQuadState, contentRect(), color, debugSurfaceBorderWidth));
}
// FIXME: By using the same RenderSurface for both the content and its reflection,
@@ -237,7 +226,7 @@ void CCRenderSurface::appendQuads(CCQuadSink& quadList, CCSharedQuadState* share
CCResourceProvider::ResourceId maskResourceId = maskLayer ? maskLayer->contentsResourceId() : 0;
IntRect contentsChangedSinceLastFrame = contentsChanged() ? m_contentRect : IntRect();
- quadList.append(CCRenderPassDrawQuad::create(sharedQuadState, contentRect(), renderPassId, forReplica, maskResourceId, contentsChangedSinceLastFrame,
+ quadSink.append(CCRenderPassDrawQuad::create(sharedQuadState, contentRect(), renderPassId, forReplica, maskResourceId, contentsChangedSinceLastFrame,
maskTexCoordScaleX, maskTexCoordScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY));
}
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.h b/Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.h
index 0e518b2aa..a7d639562 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.h
@@ -42,7 +42,6 @@ class CCDamageTracker;
class CCQuadSink;
class CCRenderPass;
class CCLayerImpl;
-class LayerRendererChromium;
class TextStream;
class CCRenderSurface {
@@ -104,10 +103,7 @@ public:
CCDamageTracker* damageTracker() const { return m_damageTracker.get(); }
- PassOwnPtr<CCSharedQuadState> createSharedQuadState(int id) const;
- PassOwnPtr<CCSharedQuadState> createReplicaSharedQuadState(int id) const;
-
- void appendQuads(CCQuadSink&, CCSharedQuadState*, bool forReplica, int renderPassId);
+ void appendQuads(CCQuadSink&, bool forReplica, int renderPassId);
private:
CCLayerImpl* m_owningLayer;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCRenderer.h b/Source/WebCore/platform/graphics/chromium/cc/CCRenderer.h
index 40ab241c5..946aec633 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCRenderer.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCRenderer.h
@@ -66,7 +66,7 @@ public:
virtual ~CCRenderer() { }
- virtual const LayerRendererCapabilities& capabilities() const = 0;
+ virtual const RendererCapabilities& capabilities() const = 0;
const CCLayerTreeSettings& settings() const { return m_client->settings(); }
diff --git a/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCRendererGL.cpp
index 84f00a1c7..b91b59a57 100644
--- a/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCRendererGL.cpp
@@ -32,7 +32,7 @@
#include "config.h"
#if USE(ACCELERATED_COMPOSITING)
-#include "LayerRendererChromium.h"
+#include "CCRendererGL.h"
#include "CCDamageTracker.h"
#include "CCLayerQuad.h"
@@ -83,16 +83,16 @@ bool needsIOSurfaceReadbackWorkaround()
} // anonymous namespace
-PassOwnPtr<LayerRendererChromium> LayerRendererChromium::create(CCRendererClient* client, CCResourceProvider* resourceProvider, TextureUploaderOption textureUploaderSetting)
+PassOwnPtr<CCRendererGL> CCRendererGL::create(CCRendererClient* client, CCResourceProvider* resourceProvider, TextureUploaderOption textureUploaderSetting)
{
- OwnPtr<LayerRendererChromium> layerRenderer(adoptPtr(new LayerRendererChromium(client, resourceProvider, textureUploaderSetting)));
- if (!layerRenderer->initialize())
+ OwnPtr<CCRendererGL> renderer(adoptPtr(new CCRendererGL(client, resourceProvider, textureUploaderSetting)));
+ if (!renderer->initialize())
return nullptr;
- return layerRenderer.release();
+ return renderer.release();
}
-LayerRendererChromium::LayerRendererChromium(CCRendererClient* client,
+CCRendererGL::CCRendererGL(CCRendererClient* client,
CCResourceProvider* resourceProvider,
TextureUploaderOption textureUploaderSetting)
: CCDirectRenderer(client, resourceProvider)
@@ -108,7 +108,7 @@ LayerRendererChromium::LayerRendererChromium(CCRendererClient* client,
ASSERT(m_context);
}
-bool LayerRendererChromium::initialize()
+bool CCRendererGL::initialize()
{
if (!m_context->makeContextCurrent())
return false;
@@ -138,15 +138,13 @@ bool LayerRendererChromium::initialize()
// Use the swapBuffers callback only with the threaded proxy.
if (CCProxy::hasImplThread())
m_capabilities.usingSwapCompleteCallback = extensions.contains("GL_CHROMIUM_swapbuffers_complete_callback");
- if (m_capabilities.usingSwapCompleteCallback) {
+ if (m_capabilities.usingSwapCompleteCallback)
m_context->setSwapBuffersCompleteCallbackCHROMIUM(this);
- }
m_capabilities.usingSetVisibility = extensions.contains("GL_CHROMIUM_set_visibility");
- if (extensions.contains("GL_CHROMIUM_iosurface")) {
+ if (extensions.contains("GL_CHROMIUM_iosurface"))
ASSERT(extensions.contains("GL_ARB_texture_rectangle"));
- }
m_capabilities.usingGpuMemoryManager = extensions.contains("GL_CHROMIUM_gpu_memory_manager");
if (m_capabilities.usingGpuMemoryManager)
@@ -169,7 +167,7 @@ bool LayerRendererChromium::initialize()
return true;
}
-LayerRendererChromium::~LayerRendererChromium()
+CCRendererGL::~CCRendererGL()
{
ASSERT(CCProxy::isImplThread());
m_context->setSwapBuffersCompleteCallbackCHROMIUM(0);
@@ -178,19 +176,19 @@ LayerRendererChromium::~LayerRendererChromium()
cleanupSharedObjects();
}
-WebGraphicsContext3D* LayerRendererChromium::context()
+WebGraphicsContext3D* CCRendererGL::context()
{
return m_context;
}
-void LayerRendererChromium::debugGLCall(WebGraphicsContext3D* context, const char* command, const char* file, int line)
+void CCRendererGL::debugGLCall(WebGraphicsContext3D* context, const char* command, const char* file, int line)
{
unsigned long error = context->getError();
if (error != GraphicsContext3D::NO_ERROR)
LOG_ERROR("GL command failed: File: %s\n\tLine %d\n\tcommand: %s, error %x\n", file, line, command, static_cast<int>(error));
}
-void LayerRendererChromium::setVisible(bool visible)
+void CCRendererGL::setVisible(bool visible)
{
if (m_visible == visible)
return;
@@ -198,22 +196,21 @@ void LayerRendererChromium::setVisible(bool visible)
// TODO: Replace setVisibilityCHROMIUM with an extension to explicitly manage front/backbuffers
// crbug.com/116049
- if (m_capabilities.usingSetVisibility) {
+ if (m_capabilities.usingSetVisibility)
m_context->setVisibilityCHROMIUM(visible);
- }
}
-void LayerRendererChromium::releaseRenderPassTextures()
+void CCRendererGL::releaseRenderPassTextures()
{
m_renderPassTextures.clear();
}
-void LayerRendererChromium::viewportChanged()
+void CCRendererGL::viewportChanged()
{
m_isViewportChanged = true;
}
-void LayerRendererChromium::clearFramebuffer(DrawingFrame& frame)
+void CCRendererGL::clearFramebuffer(DrawingFrame& frame)
{
// On DEBUG builds, opaque render passes are cleared to blue to easily see regions that were not drawn on the screen.
if (frame.currentRenderPass->hasTransparentBackground())
@@ -227,7 +224,7 @@ void LayerRendererChromium::clearFramebuffer(DrawingFrame& frame)
m_context->clear(GraphicsContext3D::COLOR_BUFFER_BIT);
}
-void LayerRendererChromium::beginDrawingFrame(DrawingFrame& frame)
+void CCRendererGL::beginDrawingFrame(DrawingFrame& frame)
{
// FIXME: Remove this once framebuffer is automatically recreated on first use
ensureFramebuffer();
@@ -235,7 +232,7 @@ void LayerRendererChromium::beginDrawingFrame(DrawingFrame& frame)
if (viewportSize().isEmpty())
return;
- TRACE_EVENT0("cc", "LayerRendererChromium::drawLayers");
+ TRACE_EVENT0("cc", "CCRendererGL::drawLayers");
if (m_isViewportChanged) {
// Only reshape when we know we are going to draw. Otherwise, the reshape
// can leave the window at the wrong size if we never draw and the proper
@@ -255,13 +252,13 @@ void LayerRendererChromium::beginDrawingFrame(DrawingFrame& frame)
GLC(m_context, m_context->blendFunc(GraphicsContext3D::ONE, GraphicsContext3D::ONE_MINUS_SRC_ALPHA));
}
-void LayerRendererChromium::doNoOp()
+void CCRendererGL::doNoOp()
{
GLC(m_context, m_context->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, 0));
GLC(m_context, m_context->flush());
}
-void LayerRendererChromium::drawQuad(DrawingFrame& frame, const CCDrawQuad* quad)
+void CCRendererGL::drawQuad(DrawingFrame& frame, const CCDrawQuad* quad)
{
if (quad->needsBlending())
GLC(m_context, m_context->enable(GraphicsContext3D::BLEND));
@@ -302,7 +299,7 @@ void LayerRendererChromium::drawQuad(DrawingFrame& frame, const CCDrawQuad* quad
}
}
-void LayerRendererChromium::drawCheckerboardQuad(const DrawingFrame& frame, const CCCheckerboardDrawQuad* quad)
+void CCRendererGL::drawCheckerboardQuad(const DrawingFrame& frame, const CCCheckerboardDrawQuad* quad)
{
const TileCheckerboardProgram* program = tileCheckerboardProgram();
ASSERT(program && program->initialized());
@@ -324,7 +321,7 @@ void LayerRendererChromium::drawCheckerboardQuad(const DrawingFrame& frame, cons
drawQuadGeometry(frame, quad->quadTransform(), quad->quadRect(), program->vertexShader().matrixLocation());
}
-void LayerRendererChromium::drawDebugBorderQuad(const DrawingFrame& frame, const CCDebugBorderDrawQuad* quad)
+void CCRendererGL::drawDebugBorderQuad(const DrawingFrame& frame, const CCDebugBorderDrawQuad* quad)
{
static float glMatrix[16];
const SolidColorProgram* program = solidColorProgram();
@@ -336,7 +333,7 @@ void LayerRendererChromium::drawDebugBorderQuad(const DrawingFrame& frame, const
WebTransformationMatrix renderMatrix = quad->quadTransform();
renderMatrix.translate(0.5 * layerRect.width() + layerRect.x(), 0.5 * layerRect.height() + layerRect.y());
renderMatrix.scaleNonUniform(layerRect.width(), layerRect.height());
- LayerRendererChromium::toGLMatrix(&glMatrix[0], frame.projectionMatrix * renderMatrix);
+ CCRendererGL::toGLMatrix(&glMatrix[0], frame.projectionMatrix * renderMatrix);
GLC(context(), context()->uniformMatrix4fv(program->vertexShader().matrixLocation(), 1, false, &glMatrix[0]));
SkColor color = quad->color();
@@ -350,7 +347,7 @@ void LayerRendererChromium::drawDebugBorderQuad(const DrawingFrame& frame, const
GLC(context(), context()->drawElements(GraphicsContext3D::LINE_LOOP, 4, GraphicsContext3D::UNSIGNED_SHORT, 6 * sizeof(unsigned short)));
}
-static inline SkBitmap applyFilters(LayerRendererChromium* layerRenderer, const WebKit::WebFilterOperations& filters, CCScopedTexture* sourceTexture)
+static inline SkBitmap applyFilters(CCRendererGL* renderer, const WebKit::WebFilterOperations& filters, CCScopedTexture* sourceTexture)
{
if (filters.isEmpty())
return SkBitmap();
@@ -361,14 +358,14 @@ static inline SkBitmap applyFilters(LayerRendererChromium* layerRenderer, const
if (!filterContext || !filterGrContext)
return SkBitmap();
- layerRenderer->context()->flush();
+ renderer->context()->flush();
- CCResourceProvider::ScopedWriteLockGL lock(layerRenderer->resourceProvider(), sourceTexture->id());
+ CCResourceProvider::ScopedWriteLockGL lock(renderer->resourceProvider(), sourceTexture->id());
SkBitmap source = CCRenderSurfaceFilters::apply(filters, lock.textureId(), sourceTexture->size(), filterContext, filterGrContext);
return source;
}
-PassOwnPtr<CCScopedTexture> LayerRendererChromium::drawBackgroundFilters(DrawingFrame& frame, const CCRenderPassDrawQuad* quad, const WebKit::WebFilterOperations& filters, const WebTransformationMatrix& contentsDeviceTransform)
+PassOwnPtr<CCScopedTexture> CCRendererGL::drawBackgroundFilters(DrawingFrame& frame, const CCRenderPassDrawQuad* quad, const WebKit::WebFilterOperations& filters, const WebTransformationMatrix& contentsDeviceTransform)
{
// This method draws a background filter, which applies a filter to any pixels behind the quad and seen through its background.
// The algorithm works as follows:
@@ -439,7 +436,7 @@ PassOwnPtr<CCScopedTexture> LayerRendererChromium::drawBackgroundFilters(Drawing
return backgroundTexture.release();
}
-void LayerRendererChromium::drawRenderPassQuad(DrawingFrame& frame, const CCRenderPassDrawQuad* quad)
+void CCRendererGL::drawRenderPassQuad(DrawingFrame& frame, const CCRenderPassDrawQuad* quad)
{
CachedTexture* contentsTexture = m_renderPassTextures.get(quad->renderPassId());
if (!contentsTexture || !contentsTexture->id())
@@ -581,7 +578,7 @@ void LayerRendererChromium::drawRenderPassQuad(DrawingFrame& frame, const CCRend
drawQuadGeometry(frame, quad->quadTransform(), quad->quadRect(), shaderMatrixLocation);
}
-void LayerRendererChromium::drawSolidColorQuad(const DrawingFrame& frame, const CCSolidColorDrawQuad* quad)
+void CCRendererGL::drawSolidColorQuad(const DrawingFrame& frame, const CCSolidColorDrawQuad* quad)
{
const SolidColorProgram* program = solidColorProgram();
GLC(context(), context()->useProgram(program->program()));
@@ -620,7 +617,7 @@ static void tileUniformLocation(T program, TileProgramUniforms& uniforms)
uniforms.edgeLocation = program->fragmentShader().edgeLocation();
}
-void LayerRendererChromium::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* quad)
+void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* quad)
{
IntRect tileRect = quad->quadVisibleRect();
@@ -754,7 +751,7 @@ void LayerRendererChromium::drawTileQuad(const DrawingFrame& frame, const CCTile
localQuad = CCMathUtil::mapQuad(inverseDeviceTransform, deviceQuad.floatQuad(), clipped);
// We should not ASSERT(!clipped) here, because anti-aliasing inflation may cause deviceQuad to become
- // clipped. To our knowledge this scenario does not need to be handled differently than the unclipped case.
+ // clipped. To our knowledge this scenario does not need to be handled differently than the unclipped case.
} else {
// Move fragment shader transform to vertex shader. We can do this while
// still producing correct results as fragmentTexTransformLocation
@@ -787,7 +784,7 @@ void LayerRendererChromium::drawTileQuad(const DrawingFrame& frame, const CCTile
drawQuadGeometry(frame, quad->quadTransform(), centeredRect, uniforms.matrixLocation);
}
-void LayerRendererChromium::drawYUVVideoQuad(const DrawingFrame& frame, const CCYUVVideoDrawQuad* quad)
+void CCRendererGL::drawYUVVideoQuad(const DrawingFrame& frame, const CCYUVVideoDrawQuad* quad)
{
const VideoYUVProgram* program = videoYUVProgram();
ASSERT(program && program->initialized());
@@ -847,7 +844,7 @@ void LayerRendererChromium::drawYUVVideoQuad(const DrawingFrame& frame, const CC
GLC(context(), context()->activeTexture(GraphicsContext3D::TEXTURE0));
}
-void LayerRendererChromium::drawStreamVideoQuad(const DrawingFrame& frame, const CCStreamVideoDrawQuad* quad)
+void CCRendererGL::drawStreamVideoQuad(const DrawingFrame& frame, const CCStreamVideoDrawQuad* quad)
{
static float glMatrix[16];
@@ -892,7 +889,7 @@ struct TexTransformTextureProgramBinding : TextureProgramBinding {
int texTransformLocation;
};
-void LayerRendererChromium::drawTextureQuad(const DrawingFrame& frame, const CCTextureDrawQuad* quad)
+void CCRendererGL::drawTextureQuad(const DrawingFrame& frame, const CCTextureDrawQuad* quad)
{
ASSERT(CCProxy::isImplThread());
@@ -936,7 +933,7 @@ void LayerRendererChromium::drawTextureQuad(const DrawingFrame& frame, const CCT
GLC(m_context, m_context->blendFunc(GraphicsContext3D::ONE, GraphicsContext3D::ONE_MINUS_SRC_ALPHA));
}
-void LayerRendererChromium::drawIOSurfaceQuad(const DrawingFrame& frame, const CCIOSurfaceDrawQuad* quad)
+void CCRendererGL::drawIOSurfaceQuad(const DrawingFrame& frame, const CCIOSurfaceDrawQuad* quad)
{
ASSERT(CCProxy::isImplThread());
TexTransformTextureProgramBinding binding;
@@ -958,7 +955,7 @@ void LayerRendererChromium::drawIOSurfaceQuad(const DrawingFrame& frame, const C
GLC(context(), context()->bindTexture(Extensions3D::TEXTURE_RECTANGLE_ARB, 0));
}
-void LayerRendererChromium::finishDrawingFrame(DrawingFrame& frame)
+void CCRendererGL::finishDrawingFrame(DrawingFrame& frame)
{
m_currentFramebufferLock.clear();
m_swapBufferRect.unite(enclosingIntRect(frame.rootDamageRect));
@@ -967,7 +964,7 @@ void LayerRendererChromium::finishDrawingFrame(DrawingFrame& frame)
GLC(m_context, m_context->disable(GraphicsContext3D::BLEND));
}
-void LayerRendererChromium::toGLMatrix(float* flattened, const WebTransformationMatrix& m)
+void CCRendererGL::toGLMatrix(float* flattened, const WebTransformationMatrix& m)
{
flattened[0] = m.m11();
flattened[1] = m.m12();
@@ -987,7 +984,7 @@ void LayerRendererChromium::toGLMatrix(float* flattened, const WebTransformation
flattened[15] = m.m44();
}
-void LayerRendererChromium::setShaderFloatQuad(const FloatQuad& quad, int quadLocation)
+void CCRendererGL::setShaderFloatQuad(const FloatQuad& quad, int quadLocation)
{
if (quadLocation == -1)
return;
@@ -1004,13 +1001,13 @@ void LayerRendererChromium::setShaderFloatQuad(const FloatQuad& quad, int quadLo
GLC(m_context, m_context->uniform2fv(quadLocation, 4, point));
}
-void LayerRendererChromium::setShaderOpacity(float opacity, int alphaLocation)
+void CCRendererGL::setShaderOpacity(float opacity, int alphaLocation)
{
if (alphaLocation != -1)
GLC(m_context, m_context->uniform1f(alphaLocation, opacity));
}
-void LayerRendererChromium::drawQuadGeometry(const DrawingFrame& frame, const WebKit::WebTransformationMatrix& drawTransform, const FloatRect& quadRect, int matrixLocation)
+void CCRendererGL::drawQuadGeometry(const DrawingFrame& frame, const WebKit::WebTransformationMatrix& drawTransform, const FloatRect& quadRect, int matrixLocation)
{
WebTransformationMatrix quadRectMatrix;
quadRectTransform(&quadRectMatrix, drawTransform, quadRect);
@@ -1021,7 +1018,7 @@ void LayerRendererChromium::drawQuadGeometry(const DrawingFrame& frame, const We
GLC(m_context, m_context->drawElements(GraphicsContext3D::TRIANGLES, 6, GraphicsContext3D::UNSIGNED_SHORT, 0));
}
-void LayerRendererChromium::copyTextureToFramebuffer(const DrawingFrame& frame, int textureId, const IntRect& rect, const WebTransformationMatrix& drawMatrix)
+void CCRendererGL::copyTextureToFramebuffer(const DrawingFrame& frame, int textureId, const IntRect& rect, const WebTransformationMatrix& drawMatrix)
{
const RenderPassProgram* program = renderPassProgram();
@@ -1038,18 +1035,18 @@ void LayerRendererChromium::copyTextureToFramebuffer(const DrawingFrame& frame,
drawQuadGeometry(frame, drawMatrix, rect, program->vertexShader().matrixLocation());
}
-void LayerRendererChromium::finish()
+void CCRendererGL::finish()
{
- TRACE_EVENT0("cc", "LayerRendererChromium::finish");
+ TRACE_EVENT0("cc", "CCRendererGL::finish");
m_context->finish();
}
-bool LayerRendererChromium::swapBuffers()
+bool CCRendererGL::swapBuffers()
{
ASSERT(m_visible);
ASSERT(!m_isFramebufferDiscarded);
- TRACE_EVENT0("cc", "LayerRendererChromium::swapBuffers");
+ TRACE_EVENT0("cc", "CCRendererGL::swapBuffers");
// We're done! Time to swapbuffers!
if (m_capabilities.usingPartialSwap) {
@@ -1068,12 +1065,12 @@ bool LayerRendererChromium::swapBuffers()
return true;
}
-void LayerRendererChromium::onSwapBuffersComplete()
+void CCRendererGL::onSwapBuffersComplete()
{
m_client->onSwapBuffersComplete();
}
-void LayerRendererChromium::onMemoryAllocationChanged(WebGraphicsMemoryAllocation allocation)
+void CCRendererGL::onMemoryAllocationChanged(WebGraphicsMemoryAllocation allocation)
{
// FIXME: This is called on the main thread in single threaded mode, but we expect it on the impl thread.
if (!CCProxy::hasImplThread()) {
@@ -1086,7 +1083,7 @@ void LayerRendererChromium::onMemoryAllocationChanged(WebGraphicsMemoryAllocatio
}
}
-void LayerRendererChromium::onMemoryAllocationChangedOnImplThread(WebKit::WebGraphicsMemoryAllocation allocation)
+void CCRendererGL::onMemoryAllocationChangedOnImplThread(WebKit::WebGraphicsMemoryAllocation allocation)
{
if (m_visible && !allocation.gpuResourceSizeInBytes)
return;
@@ -1102,7 +1099,7 @@ void LayerRendererChromium::onMemoryAllocationChangedOnImplThread(WebKit::WebGra
m_client->setMemoryAllocationLimitBytes(allocation.gpuResourceSizeInBytes);
}
-void LayerRendererChromium::discardFramebuffer()
+void CCRendererGL::discardFramebuffer()
{
if (m_isFramebufferDiscarded)
return;
@@ -1118,7 +1115,7 @@ void LayerRendererChromium::discardFramebuffer()
m_client->setFullRootLayerDamage();
}
-void LayerRendererChromium::ensureFramebuffer()
+void CCRendererGL::ensureFramebuffer()
{
if (!m_isFramebufferDiscarded)
return;
@@ -1130,13 +1127,13 @@ void LayerRendererChromium::ensureFramebuffer()
m_isFramebufferDiscarded = false;
}
-void LayerRendererChromium::onContextLost()
+void CCRendererGL::onContextLost()
{
m_client->didLoseContext();
}
-void LayerRendererChromium::getFramebufferPixels(void *pixels, const IntRect& rect)
+void CCRendererGL::getFramebufferPixels(void *pixels, const IntRect& rect)
{
ASSERT(rect.maxX() <= viewportWidth() && rect.maxY() <= viewportHeight());
@@ -1184,7 +1181,7 @@ void LayerRendererChromium::getFramebufferPixels(void *pixels, const IntRect& re
}
if (!m_visible) {
- TRACE_EVENT0("cc", "LayerRendererChromium::getFramebufferPixels dropping resources after readback");
+ TRACE_EVENT0("cc", "CCRendererGL::getFramebufferPixels dropping resources after readback");
discardFramebuffer();
releaseRenderPassTextures();
m_client->releaseContentsTextures();
@@ -1192,7 +1189,7 @@ void LayerRendererChromium::getFramebufferPixels(void *pixels, const IntRect& re
}
}
-bool LayerRendererChromium::getFramebufferTexture(CCScopedTexture* texture, const IntRect& deviceRect)
+bool CCRendererGL::getFramebufferTexture(CCScopedTexture* texture, const IntRect& deviceRect)
{
ASSERT(!texture->id() || (texture->size() == deviceRect.size() && texture->format() == GraphicsContext3D::RGB));
@@ -1206,7 +1203,7 @@ bool LayerRendererChromium::getFramebufferTexture(CCScopedTexture* texture, cons
return true;
}
-bool LayerRendererChromium::useScopedTexture(DrawingFrame& frame, const CCScopedTexture* texture, const IntRect& viewportRect)
+bool CCRendererGL::useScopedTexture(DrawingFrame& frame, const CCScopedTexture* texture, const IntRect& viewportRect)
{
ASSERT(texture->id());
frame.currentRenderPass = 0;
@@ -1215,13 +1212,13 @@ bool LayerRendererChromium::useScopedTexture(DrawingFrame& frame, const CCScoped
return bindFramebufferToTexture(frame, texture, viewportRect);
}
-void LayerRendererChromium::bindFramebufferToOutputSurface(DrawingFrame& frame)
+void CCRendererGL::bindFramebufferToOutputSurface(DrawingFrame& frame)
{
m_currentFramebufferLock.clear();
GLC(m_context, m_context->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, 0));
}
-bool LayerRendererChromium::bindFramebufferToTexture(DrawingFrame& frame, const CCScopedTexture* texture, const IntRect& framebufferRect)
+bool CCRendererGL::bindFramebufferToTexture(DrawingFrame& frame, const CCScopedTexture* texture, const IntRect& framebufferRect)
{
ASSERT(texture->id());
@@ -1243,30 +1240,30 @@ bool LayerRendererChromium::bindFramebufferToTexture(DrawingFrame& frame, const
return true;
}
-void LayerRendererChromium::enableScissorTestRect(const IntRect& scissorRect)
+void CCRendererGL::enableScissorTestRect(const IntRect& scissorRect)
{
GLC(m_context, m_context->enable(GraphicsContext3D::SCISSOR_TEST));
GLC(m_context, m_context->scissor(scissorRect.x(), scissorRect.y(), scissorRect.width(), scissorRect.height()));
}
-void LayerRendererChromium::disableScissorTest()
+void CCRendererGL::disableScissorTest()
{
GLC(m_context, m_context->disable(GraphicsContext3D::SCISSOR_TEST));
}
-void LayerRendererChromium::setDrawViewportSize(const IntSize& viewportSize)
+void CCRendererGL::setDrawViewportSize(const IntSize& viewportSize)
{
GLC(m_context, m_context->viewport(0, 0, viewportSize.width(), viewportSize.height()));
}
-bool LayerRendererChromium::makeContextCurrent()
+bool CCRendererGL::makeContextCurrent()
{
return m_context->makeContextCurrent();
}
-bool LayerRendererChromium::initializeSharedObjects()
+bool CCRendererGL::initializeSharedObjects()
{
- TRACE_EVENT0("cc", "LayerRendererChromium::initializeSharedObjects");
+ TRACE_EVENT0("cc", "CCRendererGL::initializeSharedObjects");
makeContextCurrent();
// Create an FBO for doing offscreen rendering.
@@ -1290,191 +1287,191 @@ bool LayerRendererChromium::initializeSharedObjects()
return true;
}
-const LayerRendererChromium::TileCheckerboardProgram* LayerRendererChromium::tileCheckerboardProgram()
+const CCRendererGL::TileCheckerboardProgram* CCRendererGL::tileCheckerboardProgram()
{
if (!m_tileCheckerboardProgram)
m_tileCheckerboardProgram = adoptPtr(new TileCheckerboardProgram(m_context));
if (!m_tileCheckerboardProgram->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::checkerboardProgram::initalize");
+ TRACE_EVENT0("cc", "CCRendererGL::checkerboardProgram::initalize");
m_tileCheckerboardProgram->initialize(m_context, m_isUsingBindUniform);
}
return m_tileCheckerboardProgram.get();
}
-const LayerRendererChromium::SolidColorProgram* LayerRendererChromium::solidColorProgram()
+const CCRendererGL::SolidColorProgram* CCRendererGL::solidColorProgram()
{
if (!m_solidColorProgram)
m_solidColorProgram = adoptPtr(new SolidColorProgram(m_context));
if (!m_solidColorProgram->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::solidColorProgram::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::solidColorProgram::initialize");
m_solidColorProgram->initialize(m_context, m_isUsingBindUniform);
}
return m_solidColorProgram.get();
}
-const LayerRendererChromium::RenderPassProgram* LayerRendererChromium::renderPassProgram()
+const CCRendererGL::RenderPassProgram* CCRendererGL::renderPassProgram()
{
ASSERT(m_renderPassProgram);
if (!m_renderPassProgram->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::renderPassProgram::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::renderPassProgram::initialize");
m_renderPassProgram->initialize(m_context, m_isUsingBindUniform);
}
return m_renderPassProgram.get();
}
-const LayerRendererChromium::RenderPassProgramAA* LayerRendererChromium::renderPassProgramAA()
+const CCRendererGL::RenderPassProgramAA* CCRendererGL::renderPassProgramAA()
{
if (!m_renderPassProgramAA)
m_renderPassProgramAA = adoptPtr(new RenderPassProgramAA(m_context));
if (!m_renderPassProgramAA->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::renderPassProgramAA::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::renderPassProgramAA::initialize");
m_renderPassProgramAA->initialize(m_context, m_isUsingBindUniform);
}
return m_renderPassProgramAA.get();
}
-const LayerRendererChromium::RenderPassMaskProgram* LayerRendererChromium::renderPassMaskProgram()
+const CCRendererGL::RenderPassMaskProgram* CCRendererGL::renderPassMaskProgram()
{
if (!m_renderPassMaskProgram)
m_renderPassMaskProgram = adoptPtr(new RenderPassMaskProgram(m_context));
if (!m_renderPassMaskProgram->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::renderPassMaskProgram::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::renderPassMaskProgram::initialize");
m_renderPassMaskProgram->initialize(m_context, m_isUsingBindUniform);
}
return m_renderPassMaskProgram.get();
}
-const LayerRendererChromium::RenderPassMaskProgramAA* LayerRendererChromium::renderPassMaskProgramAA()
+const CCRendererGL::RenderPassMaskProgramAA* CCRendererGL::renderPassMaskProgramAA()
{
if (!m_renderPassMaskProgramAA)
m_renderPassMaskProgramAA = adoptPtr(new RenderPassMaskProgramAA(m_context));
if (!m_renderPassMaskProgramAA->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::renderPassMaskProgramAA::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::renderPassMaskProgramAA::initialize");
m_renderPassMaskProgramAA->initialize(m_context, m_isUsingBindUniform);
}
return m_renderPassMaskProgramAA.get();
}
-const LayerRendererChromium::TileProgram* LayerRendererChromium::tileProgram()
+const CCRendererGL::TileProgram* CCRendererGL::tileProgram()
{
ASSERT(m_tileProgram);
if (!m_tileProgram->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::tileProgram::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::tileProgram::initialize");
m_tileProgram->initialize(m_context, m_isUsingBindUniform);
}
return m_tileProgram.get();
}
-const LayerRendererChromium::TileProgramOpaque* LayerRendererChromium::tileProgramOpaque()
+const CCRendererGL::TileProgramOpaque* CCRendererGL::tileProgramOpaque()
{
ASSERT(m_tileProgramOpaque);
if (!m_tileProgramOpaque->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::tileProgramOpaque::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::tileProgramOpaque::initialize");
m_tileProgramOpaque->initialize(m_context, m_isUsingBindUniform);
}
return m_tileProgramOpaque.get();
}
-const LayerRendererChromium::TileProgramAA* LayerRendererChromium::tileProgramAA()
+const CCRendererGL::TileProgramAA* CCRendererGL::tileProgramAA()
{
if (!m_tileProgramAA)
m_tileProgramAA = adoptPtr(new TileProgramAA(m_context));
if (!m_tileProgramAA->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::tileProgramAA::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::tileProgramAA::initialize");
m_tileProgramAA->initialize(m_context, m_isUsingBindUniform);
}
return m_tileProgramAA.get();
}
-const LayerRendererChromium::TileProgramSwizzle* LayerRendererChromium::tileProgramSwizzle()
+const CCRendererGL::TileProgramSwizzle* CCRendererGL::tileProgramSwizzle()
{
if (!m_tileProgramSwizzle)
m_tileProgramSwizzle = adoptPtr(new TileProgramSwizzle(m_context));
if (!m_tileProgramSwizzle->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::tileProgramSwizzle::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::tileProgramSwizzle::initialize");
m_tileProgramSwizzle->initialize(m_context, m_isUsingBindUniform);
}
return m_tileProgramSwizzle.get();
}
-const LayerRendererChromium::TileProgramSwizzleOpaque* LayerRendererChromium::tileProgramSwizzleOpaque()
+const CCRendererGL::TileProgramSwizzleOpaque* CCRendererGL::tileProgramSwizzleOpaque()
{
if (!m_tileProgramSwizzleOpaque)
m_tileProgramSwizzleOpaque = adoptPtr(new TileProgramSwizzleOpaque(m_context));
if (!m_tileProgramSwizzleOpaque->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::tileProgramSwizzleOpaque::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::tileProgramSwizzleOpaque::initialize");
m_tileProgramSwizzleOpaque->initialize(m_context, m_isUsingBindUniform);
}
return m_tileProgramSwizzleOpaque.get();
}
-const LayerRendererChromium::TileProgramSwizzleAA* LayerRendererChromium::tileProgramSwizzleAA()
+const CCRendererGL::TileProgramSwizzleAA* CCRendererGL::tileProgramSwizzleAA()
{
if (!m_tileProgramSwizzleAA)
m_tileProgramSwizzleAA = adoptPtr(new TileProgramSwizzleAA(m_context));
if (!m_tileProgramSwizzleAA->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::tileProgramSwizzleAA::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::tileProgramSwizzleAA::initialize");
m_tileProgramSwizzleAA->initialize(m_context, m_isUsingBindUniform);
}
return m_tileProgramSwizzleAA.get();
}
-const LayerRendererChromium::TextureProgram* LayerRendererChromium::textureProgram()
+const CCRendererGL::TextureProgram* CCRendererGL::textureProgram()
{
if (!m_textureProgram)
m_textureProgram = adoptPtr(new TextureProgram(m_context));
if (!m_textureProgram->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::textureProgram::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::textureProgram::initialize");
m_textureProgram->initialize(m_context, m_isUsingBindUniform);
}
return m_textureProgram.get();
}
-const LayerRendererChromium::TextureProgramFlip* LayerRendererChromium::textureProgramFlip()
+const CCRendererGL::TextureProgramFlip* CCRendererGL::textureProgramFlip()
{
if (!m_textureProgramFlip)
m_textureProgramFlip = adoptPtr(new TextureProgramFlip(m_context));
if (!m_textureProgramFlip->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::textureProgramFlip::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::textureProgramFlip::initialize");
m_textureProgramFlip->initialize(m_context, m_isUsingBindUniform);
}
return m_textureProgramFlip.get();
}
-const LayerRendererChromium::TextureIOSurfaceProgram* LayerRendererChromium::textureIOSurfaceProgram()
+const CCRendererGL::TextureIOSurfaceProgram* CCRendererGL::textureIOSurfaceProgram()
{
if (!m_textureIOSurfaceProgram)
m_textureIOSurfaceProgram = adoptPtr(new TextureIOSurfaceProgram(m_context));
if (!m_textureIOSurfaceProgram->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::textureIOSurfaceProgram::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::textureIOSurfaceProgram::initialize");
m_textureIOSurfaceProgram->initialize(m_context, m_isUsingBindUniform);
}
return m_textureIOSurfaceProgram.get();
}
-const LayerRendererChromium::VideoYUVProgram* LayerRendererChromium::videoYUVProgram()
+const CCRendererGL::VideoYUVProgram* CCRendererGL::videoYUVProgram()
{
if (!m_videoYUVProgram)
m_videoYUVProgram = adoptPtr(new VideoYUVProgram(m_context));
if (!m_videoYUVProgram->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::videoYUVProgram::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::videoYUVProgram::initialize");
m_videoYUVProgram->initialize(m_context, m_isUsingBindUniform);
}
return m_videoYUVProgram.get();
}
-const LayerRendererChromium::VideoStreamTextureProgram* LayerRendererChromium::videoStreamTextureProgram()
+const CCRendererGL::VideoStreamTextureProgram* CCRendererGL::videoStreamTextureProgram()
{
if (!m_videoStreamTextureProgram)
m_videoStreamTextureProgram = adoptPtr(new VideoStreamTextureProgram(m_context));
if (!m_videoStreamTextureProgram->initialized()) {
- TRACE_EVENT0("cc", "LayerRendererChromium::streamTextureProgram::initialize");
+ TRACE_EVENT0("cc", "CCRendererGL::streamTextureProgram::initialize");
m_videoStreamTextureProgram->initialize(m_context, m_isUsingBindUniform);
}
return m_videoStreamTextureProgram.get();
}
-void LayerRendererChromium::cleanupSharedObjects()
+void CCRendererGL::cleanupSharedObjects()
{
makeContextCurrent();
@@ -1528,7 +1525,7 @@ void LayerRendererChromium::cleanupSharedObjects()
releaseRenderPassTextures();
}
-bool LayerRendererChromium::isContextLost()
+bool CCRendererGL::isContextLost()
{
return (m_context->getGraphicsResetStatusARB() != GraphicsContext3D::NO_ERROR);
}
diff --git a/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h b/Source/WebCore/platform/graphics/chromium/cc/CCRendererGL.h
index 3575c193d..832503352 100644
--- a/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCRendererGL.h
@@ -29,8 +29,8 @@
*/
-#ifndef LayerRendererChromium_h
-#define LayerRendererChromium_h
+#ifndef CCRendererGL_h
+#define CCRendererGL_h
#if USE(ACCELERATED_COMPOSITING)
@@ -60,17 +60,17 @@ class GeometryBinding;
class ScopedEnsureFramebufferAllocation;
// Class that handles drawing of composited render layers using GL.
-class LayerRendererChromium : public CCDirectRenderer,
- public WebKit::WebGraphicsContext3D::WebGraphicsSwapBuffersCompleteCallbackCHROMIUM,
- public WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM ,
- public WebKit::WebGraphicsContext3D::WebGraphicsContextLostCallback {
- WTF_MAKE_NONCOPYABLE(LayerRendererChromium);
+class CCRendererGL : public CCDirectRenderer,
+ public WebKit::WebGraphicsContext3D::WebGraphicsSwapBuffersCompleteCallbackCHROMIUM,
+ public WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM ,
+ public WebKit::WebGraphicsContext3D::WebGraphicsContextLostCallback {
+ WTF_MAKE_NONCOPYABLE(CCRendererGL);
public:
- static PassOwnPtr<LayerRendererChromium> create(CCRendererClient*, CCResourceProvider*, TextureUploaderOption);
+ static PassOwnPtr<CCRendererGL> create(CCRendererClient*, CCResourceProvider*, TextureUploaderOption);
- virtual ~LayerRendererChromium();
+ virtual ~CCRendererGL();
- virtual const LayerRendererCapabilities& capabilities() const OVERRIDE { return m_capabilities; }
+ virtual const RendererCapabilities& capabilities() const OVERRIDE { return m_capabilities; }
WebKit::WebGraphicsContext3D* context();
@@ -100,7 +100,7 @@ public:
virtual void setVisible(bool) OVERRIDE;
protected:
- LayerRendererChromium(CCRendererClient*, CCResourceProvider*, TextureUploaderOption);
+ CCRendererGL(CCRendererClient*, CCResourceProvider*, TextureUploaderOption);
bool isFramebufferDiscarded() const { return m_isFramebufferDiscarded; }
bool initialize();
@@ -156,7 +156,7 @@ private:
// WebGraphicsContext3D::WebGraphicsContextLostCallback implementation.
virtual void onContextLost() OVERRIDE;
- LayerRendererCapabilities m_capabilities;
+ RendererCapabilities m_capabilities;
unsigned m_offscreenFramebufferId;
@@ -258,7 +258,7 @@ private:
#define DEBUG_GL_CALLS 0
#if DEBUG_GL_CALLS && !defined ( NDEBUG )
-#define GLC(context, x) (x, LayerRendererChromium::debugGLCall(&*context, #x, __FILE__, __LINE__))
+#define GLC(context, x) (x, CCRendererGL::debugGLCall(&*context, #x, __FILE__, __LINE__))
#else
#define GLC(context, x) (x)
#endif
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCResourceProvider.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCResourceProvider.cpp
index fb36b4cae..3aad147ca 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCResourceProvider.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCResourceProvider.cpp
@@ -27,9 +27,9 @@
#include "CCResourceProvider.h"
#include "CCProxy.h"
+#include "CCRendererGL.h" // For the GLC() macro.
#include "Extensions3DChromium.h"
#include "IntRect.h"
-#include "LayerRendererChromium.h" // For the GLC() macro
#include "LayerTextureSubImage.h"
#include <limits.h>
#include <public/WebGraphicsContext3D.h>
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp
index fa3dbe1ed..999a08ec9 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp
@@ -175,7 +175,7 @@ void CCScheduler::processScheduledActions()
break;
case CCSchedulerStateMachine::ACTION_BEGIN_UPDATE_MORE_RESOURCES:
if (m_client->hasMoreResourceUpdates()) {
- m_client->scheduledActionUpdateMoreResources(m_frameRateController->nextTickTime());
+ m_client->scheduledActionUpdateMoreResources(m_frameRateController->nextTickTimeIfActivated());
m_updateMoreResourcesPending = true;
} else
m_stateMachine.beginUpdateMoreResourcesComplete(false);
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp
index e29931884..dc191dc2c 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp
@@ -89,13 +89,16 @@ static FloatRect toUVRect(const WebRect& r, const IntRect& bounds)
static_cast<float>(r.width) / bounds.width(), static_cast<float>(r.height) / bounds.height());
}
-void CCScrollbarLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState* sharedQuadState, bool&)
+void CCScrollbarLayerImpl::appendQuads(CCQuadSink& quadSink, bool&)
{
bool premultipledAlpha = false;
bool flipped = false;
FloatRect uvRect(0, 0, 1, 1);
IntRect boundsRect(IntPoint(), contentBounds());
+ CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQuadState());
+ appendDebugBorderQuad(quadSink, sharedQuadState);
+
WebRect thumbRect, backTrackRect, foreTrackRect;
m_geometry->splitTrack(&m_scrollbar, m_geometry->trackRect(&m_scrollbar), backTrackRect, thumbRect, foreTrackRect);
if (!m_geometry->hasThumb(&m_scrollbar))
@@ -104,7 +107,7 @@ void CCScrollbarLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadS
if (m_thumbResourceId && !thumbRect.isEmpty()) {
OwnPtr<CCTextureDrawQuad> quad = CCTextureDrawQuad::create(sharedQuadState, IntRect(thumbRect.x, thumbRect.y, thumbRect.width, thumbRect.height), m_thumbResourceId, premultipledAlpha, uvRect, flipped);
quad->setNeedsBlending();
- quadList.append(quad.release());
+ quadSink.append(quad.release());
}
if (!m_backTrackResourceId)
@@ -112,12 +115,12 @@ void CCScrollbarLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadS
// We only paint the track in two parts if we were given a texture for the forward track part.
if (m_foreTrackResourceId && !foreTrackRect.isEmpty())
- quadList.append(CCTextureDrawQuad::create(sharedQuadState, IntRect(foreTrackRect.x, foreTrackRect.y, foreTrackRect.width, foreTrackRect.height), m_foreTrackResourceId, premultipledAlpha, toUVRect(foreTrackRect, boundsRect), flipped));
+ quadSink.append(CCTextureDrawQuad::create(sharedQuadState, IntRect(foreTrackRect.x, foreTrackRect.y, foreTrackRect.width, foreTrackRect.height), m_foreTrackResourceId, premultipledAlpha, toUVRect(foreTrackRect, boundsRect), flipped));
// Order matters here: since the back track texture is being drawn to the entire contents rect, we must append it after the thumb and
// fore track quads. The back track texture contains (and displays) the buttons.
if (!boundsRect.isEmpty())
- quadList.append(CCTextureDrawQuad::create(sharedQuadState, IntRect(boundsRect), m_backTrackResourceId, premultipledAlpha, uvRect, flipped));
+ quadSink.append(CCTextureDrawQuad::create(sharedQuadState, IntRect(boundsRect), m_backTrackResourceId, premultipledAlpha, uvRect, flipped));
}
void CCScrollbarLayerImpl::didLoseContext()
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h b/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h
index ca40d099f..f8fd7bf8c 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h
@@ -61,7 +61,7 @@ public:
WebKit::WebScrollbar::Orientation orientation() const { return m_orientation; }
- virtual void appendQuads(CCQuadSink&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
+ virtual void appendQuads(CCQuadSink&, bool& hadMissingTiles) OVERRIDE;
virtual void didLoseContext() OVERRIDE;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.cpp
index 337987497..f3922b301 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.cpp
@@ -31,13 +31,13 @@
namespace WebCore {
-PassOwnPtr<CCSharedQuadState> CCSharedQuadState::create(int id, const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque)
+PassOwnPtr<CCSharedQuadState> CCSharedQuadState::create(const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque)
{
- return adoptPtr(new CCSharedQuadState(id, quadTransform, visibleContentRect, clippedRectInTarget, opacity, opaque));
+ return adoptPtr(new CCSharedQuadState(quadTransform, visibleContentRect, clippedRectInTarget, opacity, opaque));
}
-CCSharedQuadState::CCSharedQuadState(int id, const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque)
- : id(id)
+CCSharedQuadState::CCSharedQuadState(const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque)
+ : id(-1)
, quadTransform(quadTransform)
, visibleContentRect(visibleContentRect)
, clippedRectInTarget(clippedRectInTarget)
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.h b/Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.h
index af12bec5a..f3adf0301 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.h
@@ -43,8 +43,8 @@ struct CCSharedQuadState {
float opacity;
bool opaque;
- static PassOwnPtr<CCSharedQuadState> create(int id, const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque);
- CCSharedQuadState(int id, const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque);
+ static PassOwnPtr<CCSharedQuadState> create(const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque);
+ CCSharedQuadState(const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque);
bool isLayerAxisAlignedIntRect() const;
};
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp
index 88a8ffb82..6876ea218 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp
@@ -47,7 +47,7 @@ CCSingleThreadProxy::CCSingleThreadProxy(CCLayerTreeHost* layerTreeHost)
: m_layerTreeHost(layerTreeHost)
, m_contextLost(false)
, m_compositorIdentifier(-1)
- , m_layerRendererInitialized(false)
+ , m_rendererInitialized(false)
, m_nextFrameIsNewlyCommittedFrame(false)
{
TRACE_EVENT0("cc", "CCSingleThreadProxy::CCSingleThreadProxy");
@@ -127,16 +127,16 @@ void CCSingleThreadProxy::setVisible(bool visible)
m_layerTreeHostImpl->setVisible(visible);
}
-bool CCSingleThreadProxy::initializeLayerRenderer()
+bool CCSingleThreadProxy::initializeRenderer()
{
ASSERT(CCProxy::isMainThread());
ASSERT(m_contextBeforeInitialization);
{
DebugScopedSetImplThread impl;
- bool ok = m_layerTreeHostImpl->initializeLayerRenderer(m_contextBeforeInitialization.release(), UnthrottledUploader);
+ bool ok = m_layerTreeHostImpl->initializeRenderer(m_contextBeforeInitialization.release(), UnthrottledUploader);
if (ok) {
- m_layerRendererInitialized = true;
- m_layerRendererCapabilitiesForMainThread = m_layerTreeHostImpl->layerRendererCapabilities();
+ m_rendererInitialized = true;
+ m_RendererCapabilitiesForMainThread = m_layerTreeHostImpl->rendererCapabilities();
}
return ok;
@@ -156,10 +156,11 @@ bool CCSingleThreadProxy::recreateContext()
bool initialized;
{
DebugScopedSetImplThread impl;
- m_layerTreeHost->deleteContentsTexturesOnImplThread(m_layerTreeHostImpl->resourceProvider());
- initialized = m_layerTreeHostImpl->initializeLayerRenderer(context.release(), UnthrottledUploader);
+ if (!m_layerTreeHostImpl->contentsTexturesPurged())
+ m_layerTreeHost->deleteContentsTexturesOnImplThread(m_layerTreeHostImpl->resourceProvider());
+ initialized = m_layerTreeHostImpl->initializeRenderer(context.release(), UnthrottledUploader);
if (initialized) {
- m_layerRendererCapabilitiesForMainThread = m_layerTreeHostImpl->layerRendererCapabilities();
+ m_RendererCapabilitiesForMainThread = m_layerTreeHostImpl->rendererCapabilities();
}
}
@@ -174,11 +175,11 @@ void CCSingleThreadProxy::implSideRenderingStats(CCRenderingStats& stats)
m_layerTreeHostImpl->renderingStats(stats);
}
-const LayerRendererCapabilities& CCSingleThreadProxy::layerRendererCapabilities() const
+const RendererCapabilities& CCSingleThreadProxy::rendererCapabilities() const
{
- ASSERT(m_layerRendererInitialized);
+ ASSERT(m_rendererInitialized);
// Note: this gets called during the commit by the "impl" thread
- return m_layerRendererCapabilitiesForMainThread;
+ return m_RendererCapabilitiesForMainThread;
}
void CCSingleThreadProxy::loseContext()
@@ -212,7 +213,7 @@ void CCSingleThreadProxy::doCommit(CCTextureUpdateQueue& queue)
// single thread mode. For correctness, loop until no more updates are
// pending.
while (queue.hasMoreUpdates())
- CCTextureUpdateController::updateTextures(m_layerTreeHostImpl->resourceProvider(), m_layerTreeHostImpl->layerRenderer()->textureCopier(), m_layerTreeHostImpl->layerRenderer()->textureUploader(), &queue, maxPartialTextureUpdates());
+ CCTextureUpdateController::updateTextures(m_layerTreeHostImpl->resourceProvider(), m_layerTreeHostImpl->renderer()->textureCopier(), m_layerTreeHostImpl->renderer()->textureUploader(), &queue, maxPartialTextureUpdates());
m_layerTreeHost->finishCommitOnImplThread(m_layerTreeHostImpl.get());
@@ -287,8 +288,8 @@ void CCSingleThreadProxy::forceSerializeOnSwapBuffers()
{
{
DebugScopedSetImplThread impl;
- if (m_layerRendererInitialized)
- m_layerTreeHostImpl->layerRenderer()->doNoOp();
+ if (m_rendererInitialized)
+ m_layerTreeHostImpl->renderer()->doNoOp();
}
}
@@ -297,7 +298,7 @@ bool CCSingleThreadProxy::commitAndComposite()
ASSERT(CCProxy::isMainThread());
- if (!m_layerTreeHost->initializeLayerRendererIfNeeded())
+ if (!m_layerTreeHost->initializeRendererIfNeeded())
return false;
if (m_layerTreeHostImpl->contentsTexturesPurged())
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h b/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h
index 7f8047859..a73a6aa17 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h
@@ -48,11 +48,11 @@ public:
virtual bool initializeContext() OVERRIDE;
virtual void setSurfaceReady() OVERRIDE;
virtual void setVisible(bool) OVERRIDE;
- virtual bool initializeLayerRenderer() OVERRIDE;
+ virtual bool initializeRenderer() OVERRIDE;
virtual bool recreateContext() OVERRIDE;
virtual int compositorIdentifier() const OVERRIDE { return m_compositorIdentifier; }
virtual void implSideRenderingStats(CCRenderingStats&) OVERRIDE;
- virtual const LayerRendererCapabilities& layerRendererCapabilities() const OVERRIDE;
+ virtual const RendererCapabilities& rendererCapabilities() const OVERRIDE;
virtual void loseContext() OVERRIDE;
virtual void setNeedsAnimate() OVERRIDE;
virtual void setNeedsCommit() OVERRIDE;
@@ -89,14 +89,14 @@ private:
bool m_contextLost;
int m_compositorIdentifier;
- // Holds on to the context between initializeContext() and initializeLayerRenderer() calls. Shouldn't
+ // Holds on to the context between initializeContext() and initializeRenderer() calls. Shouldn't
// be used for anything else.
OwnPtr<CCGraphicsContext> m_contextBeforeInitialization;
// Used on the CCThread, but checked on main thread during initialization/shutdown.
OwnPtr<CCLayerTreeHostImpl> m_layerTreeHostImpl;
- bool m_layerRendererInitialized;
- LayerRendererCapabilities m_layerRendererCapabilitiesForMainThread;
+ bool m_rendererInitialized;
+ RendererCapabilities m_RendererCapabilitiesForMainThread;
bool m_nextFrameIsNewlyCommittedFrame;
};
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp
index 23984f9d4..fe0007f55 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp
@@ -49,8 +49,11 @@ CCSolidColorLayerImpl::~CCSolidColorLayerImpl()
{
}
-void CCSolidColorLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState* sharedQuadState, bool&)
+void CCSolidColorLayerImpl::appendQuads(CCQuadSink& quadSink, bool&)
{
+ CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQuadState());
+ appendDebugBorderQuad(quadSink, sharedQuadState);
+
// We create a series of smaller quads instead of just one large one so that the
// culler can reduce the total pixels drawn.
int width = contentBounds().width();
@@ -58,7 +61,7 @@ void CCSolidColorLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuad
for (int x = 0; x < width; x += m_tileSize) {
for (int y = 0; y < height; y += m_tileSize) {
IntRect solidTileRect(x, y, min(width - x, m_tileSize), min(height - y, m_tileSize));
- quadList.append(CCSolidColorDrawQuad::create(sharedQuadState, solidTileRect, backgroundColor()));
+ quadSink.append(CCSolidColorDrawQuad::create(sharedQuadState, solidTileRect, backgroundColor()));
}
}
}
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.h b/Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.h
index d19a230dc..a2914017d 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.h
@@ -31,8 +31,6 @@
namespace WebCore {
-class LayerRendererChromium;
-
class CCSolidColorLayerImpl : public CCLayerImpl {
public:
static PassOwnPtr<CCSolidColorLayerImpl> create(int id)
@@ -41,7 +39,7 @@ public:
}
virtual ~CCSolidColorLayerImpl();
- virtual void appendQuads(CCQuadSink&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
+ virtual void appendQuads(CCQuadSink&, bool& hadMissingTiles) OVERRIDE;
protected:
explicit CCSolidColorLayerImpl(int id);
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.cpp
index b981f713d..59dbc8ac0 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.cpp
@@ -58,12 +58,16 @@ void CCTextureLayerImpl::willDraw(CCResourceProvider* resourceProvider)
m_externalTextureResource = resourceProvider->createResourceFromExternalTexture(m_textureId);
}
-void CCTextureLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState* sharedQuadState, bool&)
+void CCTextureLayerImpl::appendQuads(CCQuadSink& quadSink, bool&)
{
if (!m_externalTextureResource)
return;
+
+ CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQuadState());
+ appendDebugBorderQuad(quadSink, sharedQuadState);
+
IntRect quadRect(IntPoint(), contentBounds());
- quadList.append(CCTextureDrawQuad::create(sharedQuadState, quadRect, m_externalTextureResource, m_premultipliedAlpha, m_uvRect, m_flipped));
+ quadSink.append(CCTextureDrawQuad::create(sharedQuadState, quadRect, m_externalTextureResource, m_premultipliedAlpha, m_uvRect, m_flipped));
}
void CCTextureLayerImpl::didDraw(CCResourceProvider* resourceProvider)
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.h b/Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.h
index 153eb918e..55d48b451 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.h
@@ -39,7 +39,7 @@ public:
virtual ~CCTextureLayerImpl();
virtual void willDraw(CCResourceProvider*) OVERRIDE;
- virtual void appendQuads(CCQuadSink&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
+ virtual void appendQuads(CCQuadSink&, bool& hadMissingTiles) OVERRIDE;
virtual void didDraw(CCResourceProvider*) OVERRIDE;
virtual void didLoseContext() OVERRIDE;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp
index 297b13563..583c70c60 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp
@@ -71,7 +71,7 @@ CCThreadProxy::CCThreadProxy(CCLayerTreeHost* layerTreeHost)
, m_forcedCommitRequested(false)
, m_layerTreeHost(layerTreeHost)
, m_compositorIdentifier(-1)
- , m_layerRendererInitialized(false)
+ , m_rendererInitialized(false)
, m_started(false)
, m_texturesAcquired(true)
, m_inCompositeAndReadback(false)
@@ -101,7 +101,7 @@ bool CCThreadProxy::compositeAndReadback(void *pixels, const IntRect& rect)
ASSERT(isMainThread());
ASSERT(m_layerTreeHost);
- if (!m_layerTreeHost->initializeLayerRendererIfNeeded()) {
+ if (!m_layerTreeHost->initializeRendererIfNeeded()) {
TRACE_EVENT0("cc", "compositeAndReadback_EarlyOut_LR_Uninitialized");
return false;
}
@@ -208,23 +208,23 @@ void CCThreadProxy::setVisibleOnImplThread(CCCompletionEvent* completion, bool v
completion->signal();
}
-bool CCThreadProxy::initializeLayerRenderer()
+bool CCThreadProxy::initializeRenderer()
{
- TRACE_EVENT0("cc", "CCThreadProxy::initializeLayerRenderer");
- // Make a blocking call to initializeLayerRendererOnImplThread. The results of that call
+ TRACE_EVENT0("cc", "CCThreadProxy::initializeRenderer");
+ // Make a blocking call to initializeRendererOnImplThread. The results of that call
// are pushed into the initializeSucceeded and capabilities local variables.
CCCompletionEvent completion;
bool initializeSucceeded = false;
- LayerRendererCapabilities capabilities;
- CCProxy::implThread()->postTask(createCCThreadTask(this, &CCThreadProxy::initializeLayerRendererOnImplThread,
+ RendererCapabilities capabilities;
+ CCProxy::implThread()->postTask(createCCThreadTask(this, &CCThreadProxy::initializeRendererOnImplThread,
&completion,
&initializeSucceeded,
&capabilities));
completion.wait();
if (initializeSucceeded) {
- m_layerRendererInitialized = true;
- m_layerRendererCapabilitiesMainThreadCopy = capabilities;
+ m_rendererInitialized = true;
+ m_RendererCapabilitiesMainThreadCopy = capabilities;
}
return initializeSucceeded;
}
@@ -247,7 +247,7 @@ bool CCThreadProxy::recreateContext()
// variables.
CCCompletionEvent completion;
bool recreateSucceeded = false;
- LayerRendererCapabilities capabilities;
+ RendererCapabilities capabilities;
CCProxy::implThread()->postTask(createCCThreadTask(this, &CCThreadProxy::recreateContextOnImplThread,
&completion,
context.leakPtr(),
@@ -256,7 +256,7 @@ bool CCThreadProxy::recreateContext()
completion.wait();
if (recreateSucceeded)
- m_layerRendererCapabilitiesMainThreadCopy = capabilities;
+ m_RendererCapabilitiesMainThreadCopy = capabilities;
return recreateSucceeded;
}
@@ -277,10 +277,10 @@ void CCThreadProxy::implSideRenderingStats(CCRenderingStats& stats)
completion.wait();
}
-const LayerRendererCapabilities& CCThreadProxy::layerRendererCapabilities() const
+const RendererCapabilities& CCThreadProxy::rendererCapabilities() const
{
- ASSERT(m_layerRendererInitialized);
- return m_layerRendererCapabilitiesMainThreadCopy;
+ ASSERT(m_rendererInitialized);
+ return m_RendererCapabilitiesMainThreadCopy;
}
void CCThreadProxy::loseContext()
@@ -418,8 +418,8 @@ void CCThreadProxy::forceSerializeOnSwapBuffers()
void CCThreadProxy::forceSerializeOnSwapBuffersOnImplThread(CCCompletionEvent* completion)
{
- if (m_layerRendererInitialized)
- m_layerTreeHostImpl->layerRenderer()->doNoOp();
+ if (m_rendererInitialized)
+ m_layerTreeHostImpl->renderer()->doNoOp();
completion->signal();
}
@@ -517,7 +517,7 @@ void CCThreadProxy::beginFrame()
m_commitRequested = false;
m_forcedCommitRequested = false;
- if (!m_layerTreeHost->initializeLayerRendererIfNeeded())
+ if (!m_layerTreeHost->initializeRendererIfNeeded())
return;
if (request->contentsTexturesWereDeleted)
@@ -577,7 +577,7 @@ void CCThreadProxy::beginFrameCompleteOnImplThread(CCCompletionEvent* completion
} else
m_resetContentsTexturesPurgedAfterCommitOnImplThread = true;
- m_currentTextureUpdateControllerOnImplThread = CCTextureUpdateController::create(CCProxy::implThread(), queue, m_layerTreeHostImpl->resourceProvider(), m_layerTreeHostImpl->layerRenderer()->textureCopier(), m_layerTreeHostImpl->layerRenderer()->textureUploader());
+ m_currentTextureUpdateControllerOnImplThread = CCTextureUpdateController::create(CCProxy::implThread(), queue, m_layerTreeHostImpl->resourceProvider(), m_layerTreeHostImpl->renderer()->textureCopier(), m_layerTreeHostImpl->renderer()->textureUploader());
m_commitCompletionEventOnImplThread = completion;
m_schedulerOnImplThread->beginFrameComplete();
@@ -663,8 +663,8 @@ CCScheduledActionDrawAndSwapResult CCThreadProxy::scheduledActionDrawAndSwapInte
if (!m_layerTreeHostImpl)
return result;
- ASSERT(m_layerTreeHostImpl->layerRenderer());
- if (!m_layerTreeHostImpl->layerRenderer())
+ ASSERT(m_layerTreeHostImpl->renderer());
+ if (!m_layerTreeHostImpl->renderer())
return result;
// FIXME: compute the frame display time more intelligently
@@ -850,14 +850,14 @@ void CCThreadProxy::initializeContextOnImplThread(CCGraphicsContext* context)
m_contextBeforeInitializationOnImplThread = adoptPtr(context);
}
-void CCThreadProxy::initializeLayerRendererOnImplThread(CCCompletionEvent* completion, bool* initializeSucceeded, LayerRendererCapabilities* capabilities)
+void CCThreadProxy::initializeRendererOnImplThread(CCCompletionEvent* completion, bool* initializeSucceeded, RendererCapabilities* capabilities)
{
- TRACE_EVENT0("cc", "CCThreadProxy::initializeLayerRendererOnImplThread");
+ TRACE_EVENT0("cc", "CCThreadProxy::initializeRendererOnImplThread");
ASSERT(isImplThread());
ASSERT(m_contextBeforeInitializationOnImplThread);
- *initializeSucceeded = m_layerTreeHostImpl->initializeLayerRenderer(m_contextBeforeInitializationOnImplThread.release(), textureUploader);
+ *initializeSucceeded = m_layerTreeHostImpl->initializeRenderer(m_contextBeforeInitializationOnImplThread.release(), textureUploader);
if (*initializeSucceeded) {
- *capabilities = m_layerTreeHostImpl->layerRendererCapabilities();
+ *capabilities = m_layerTreeHostImpl->rendererCapabilities();
if (capabilities->usingSwapCompleteCallback)
m_schedulerOnImplThread->setMaxFramesPending(2);
}
@@ -888,14 +888,15 @@ size_t CCThreadProxy::maxPartialTextureUpdates() const
return CCTextureUpdateController::maxPartialTextureUpdates();
}
-void CCThreadProxy::recreateContextOnImplThread(CCCompletionEvent* completion, CCGraphicsContext* contextPtr, bool* recreateSucceeded, LayerRendererCapabilities* capabilities)
+void CCThreadProxy::recreateContextOnImplThread(CCCompletionEvent* completion, CCGraphicsContext* contextPtr, bool* recreateSucceeded, RendererCapabilities* capabilities)
{
TRACE_EVENT0("cc", "CCThreadProxy::recreateContextOnImplThread");
ASSERT(isImplThread());
- m_layerTreeHost->deleteContentsTexturesOnImplThread(m_layerTreeHostImpl->resourceProvider());
- *recreateSucceeded = m_layerTreeHostImpl->initializeLayerRenderer(adoptPtr(contextPtr), textureUploader);
+ if (!m_layerTreeHostImpl->contentsTexturesPurged())
+ m_layerTreeHost->deleteContentsTexturesOnImplThread(m_layerTreeHostImpl->resourceProvider());
+ *recreateSucceeded = m_layerTreeHostImpl->initializeRenderer(adoptPtr(contextPtr), textureUploader);
if (*recreateSucceeded) {
- *capabilities = m_layerTreeHostImpl->layerRendererCapabilities();
+ *capabilities = m_layerTreeHostImpl->rendererCapabilities();
m_schedulerOnImplThread->didRecreateContext();
}
completion->signal();
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h b/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h
index 91a9e4d44..a240281c5 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h
@@ -57,11 +57,11 @@ public:
virtual bool initializeContext() OVERRIDE;
virtual void setSurfaceReady() OVERRIDE;
virtual void setVisible(bool) OVERRIDE;
- virtual bool initializeLayerRenderer() OVERRIDE;
+ virtual bool initializeRenderer() OVERRIDE;
virtual bool recreateContext() OVERRIDE;
virtual int compositorIdentifier() const OVERRIDE;
virtual void implSideRenderingStats(CCRenderingStats&) OVERRIDE;
- virtual const LayerRendererCapabilities& layerRendererCapabilities() const OVERRIDE;
+ virtual const RendererCapabilities& rendererCapabilities() const OVERRIDE;
virtual void loseContext() OVERRIDE;
virtual void setNeedsAnimate() OVERRIDE;
virtual void setNeedsCommit() OVERRIDE;
@@ -136,11 +136,11 @@ private:
void setSurfaceReadyOnImplThread();
void setVisibleOnImplThread(CCCompletionEvent*, bool);
void initializeContextOnImplThread(CCGraphicsContext*);
- void initializeLayerRendererOnImplThread(CCCompletionEvent*, bool* initializeSucceeded, LayerRendererCapabilities*);
+ void initializeRendererOnImplThread(CCCompletionEvent*, bool* initializeSucceeded, RendererCapabilities*);
void layerTreeHostClosedOnImplThread(CCCompletionEvent*);
void setFullRootLayerDamageOnImplThread();
void acquireLayerTexturesForMainThreadOnImplThread(CCCompletionEvent*);
- void recreateContextOnImplThread(CCCompletionEvent*, CCGraphicsContext*, bool* recreateSucceeded, LayerRendererCapabilities*);
+ void recreateContextOnImplThread(CCCompletionEvent*, CCGraphicsContext*, bool* recreateSucceeded, RendererCapabilities*);
void implSideRenderingStatsOnImplThread(CCCompletionEvent*, CCRenderingStats*);
CCScheduledActionDrawAndSwapResult scheduledActionDrawAndSwapInternal(bool forcedDraw);
void forceSerializeOnSwapBuffersOnImplThread(CCCompletionEvent*);
@@ -153,8 +153,8 @@ private:
OwnPtr<CCThreadProxyContextRecreationTimer> m_contextRecreationTimer;
CCLayerTreeHost* m_layerTreeHost;
int m_compositorIdentifier;
- bool m_layerRendererInitialized;
- LayerRendererCapabilities m_layerRendererCapabilitiesMainThreadCopy;
+ bool m_rendererInitialized;
+ RendererCapabilities m_RendererCapabilitiesMainThreadCopy;
bool m_started;
bool m_texturesAcquired;
bool m_inCompositeAndReadback;
@@ -168,7 +168,7 @@ private:
RefPtr<CCScopedThreadProxy> m_mainThreadProxy;
// Holds on to the context we might use for compositing in between initializeContext()
- // and initializeLayerRenderer() calls.
+ // and initializeRenderer() calls.
OwnPtr<CCGraphicsContext> m_contextBeforeInitializationOnImplThread;
// Set when the main thread is waiting on a scheduledActionBeginFrame to be issued.
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp
index ad993ca15..b611d9891 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp
@@ -125,13 +125,16 @@ DrawableTile* CCTiledLayerImpl::createTile(int i, int j)
return addedTile;
}
-void CCTiledLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState* sharedQuadState, bool& hadMissingTiles)
+void CCTiledLayerImpl::appendQuads(CCQuadSink& quadSink, bool& hadMissingTiles)
{
const IntRect& contentRect = visibleContentRect();
if (!m_tiler || m_tiler->hasEmptyBounds() || contentRect.isEmpty())
return;
+ CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQuadState());
+ appendDebugBorderQuad(quadSink, sharedQuadState);
+
int left, top, right, bottom;
m_tiler->contentRectToTileIndices(contentRect, left, top, right, bottom);
@@ -146,7 +149,7 @@ void CCTiledLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState
borderColor = SkColorSetARGB(debugTileBorderAlpha, debugTileBorderMissingTileColorRed, debugTileBorderMissingTileColorGreen, debugTileBorderMissingTileColorBlue);
else
borderColor = SkColorSetARGB(debugTileBorderAlpha, debugTileBorderColorRed, debugTileBorderColorGreen, debugTileBorderColorBlue);
- quadList.append(CCDebugBorderDrawQuad::create(sharedQuadState, tileRect, borderColor, debugTileBorderWidth));
+ quadSink.append(CCDebugBorderDrawQuad::create(sharedQuadState, tileRect, borderColor, debugTileBorderWidth));
}
}
}
@@ -167,9 +170,9 @@ void CCTiledLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState
if (!tile || !tile->resourceId()) {
if (drawCheckerboardForMissingTiles())
- hadMissingTiles |= quadList.append(CCCheckerboardDrawQuad::create(sharedQuadState, tileRect));
+ hadMissingTiles |= quadSink.append(CCCheckerboardDrawQuad::create(sharedQuadState, tileRect));
else
- hadMissingTiles |= quadList.append(CCSolidColorDrawQuad::create(sharedQuadState, tileRect, backgroundColor()));
+ hadMissingTiles |= quadSink.append(CCSolidColorDrawQuad::create(sharedQuadState, tileRect, backgroundColor()));
continue;
}
@@ -195,7 +198,7 @@ void CCTiledLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState
bool bottomEdgeAA = j == m_tiler->numTilesY() - 1 && useAA;
const GC3Dint textureFilter = m_tiler->hasBorderTexels() ? GraphicsContext3D::LINEAR : GraphicsContext3D::NEAREST;
- quadList.append(CCTileDrawQuad::create(sharedQuadState, tileRect, tileOpaqueRect, tile->resourceId(), textureOffset, textureSize, textureFilter, contentsSwizzled(), leftEdgeAA, topEdgeAA, rightEdgeAA, bottomEdgeAA));
+ quadSink.append(CCTileDrawQuad::create(sharedQuadState, tileRect, tileOpaqueRect, tile->resourceId(), textureOffset, textureSize, textureFilter, contentsSwizzled(), leftEdgeAA, topEdgeAA, rightEdgeAA, bottomEdgeAA));
}
}
}
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.h b/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.h
index 6b877b341..1bc60aba4 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.h
@@ -42,7 +42,7 @@ public:
}
virtual ~CCTiledLayerImpl();
- virtual void appendQuads(CCQuadSink&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
+ virtual void appendQuads(CCQuadSink&, bool& hadMissingTiles) OVERRIDE;
virtual CCResourceProvider::ResourceId contentsResourceId() const OVERRIDE;
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCTimeSource.h b/Source/WebCore/platform/graphics/chromium/cc/CCTimeSource.h
index c6309d210..426a25364 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCTimeSource.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCTimeSource.h
@@ -52,7 +52,7 @@ public:
virtual bool active() const = 0;
virtual void setTimebaseAndInterval(double timebase, double intervalSeconds) = 0;
virtual double lastTickTime() = 0;
- virtual double nextTickTime() = 0;
+ virtual double nextTickTimeIfActivated() = 0;
};
}
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp
index 14cb32726..662cd2f03 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp
@@ -177,13 +177,16 @@ void CCVideoLayerImpl::willDrawInternal(CCResourceProvider* resourceProvider)
m_externalTextureResource = resourceProvider->createResourceFromExternalTexture(m_frame->textureId());
}
-void CCVideoLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState* sharedQuadState, bool&)
+void CCVideoLayerImpl::appendQuads(CCQuadSink& quadSink, bool&)
{
ASSERT(CCProxy::isImplThread());
if (!m_frame)
return;
+ CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQuadState());
+ appendDebugBorderQuad(quadSink, sharedQuadState);
+
// FIXME: When we pass quads out of process, we need to double-buffer, or
// otherwise synchonize use of all textures in the quad.
@@ -196,7 +199,7 @@ void CCVideoLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState
const FramePlane& uPlane = m_framePlanes[WebKit::WebVideoFrame::uPlane];
const FramePlane& vPlane = m_framePlanes[WebKit::WebVideoFrame::vPlane];
OwnPtr<CCYUVVideoDrawQuad> yuvVideoQuad = CCYUVVideoDrawQuad::create(sharedQuadState, quadRect, yPlane, uPlane, vPlane);
- quadList.append(yuvVideoQuad.release());
+ quadSink.append(yuvVideoQuad.release());
break;
}
case GraphicsContext3D::RGBA: {
@@ -208,7 +211,7 @@ void CCVideoLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState
FloatRect uvRect(0, 0, widthScaleFactor, 1);
bool flipped = false;
OwnPtr<CCTextureDrawQuad> textureQuad = CCTextureDrawQuad::create(sharedQuadState, quadRect, plane.resourceId, premultipliedAlpha, uvRect, flipped);
- quadList.append(textureQuad.release());
+ quadSink.append(textureQuad.release());
break;
}
case GraphicsContext3D::TEXTURE_2D: {
@@ -217,19 +220,19 @@ void CCVideoLayerImpl::appendQuads(CCQuadSink& quadList, const CCSharedQuadState
FloatRect uvRect(0, 0, 1, 1);
bool flipped = false;
OwnPtr<CCTextureDrawQuad> textureQuad = CCTextureDrawQuad::create(sharedQuadState, quadRect, m_externalTextureResource, premultipliedAlpha, uvRect, flipped);
- quadList.append(textureQuad.release());
+ quadSink.append(textureQuad.release());
break;
}
case Extensions3D::TEXTURE_RECTANGLE_ARB: {
IntSize textureSize(m_frame->width(), m_frame->height());
OwnPtr<CCIOSurfaceDrawQuad> ioSurfaceQuad = CCIOSurfaceDrawQuad::create(sharedQuadState, quadRect, textureSize, m_frame->textureId(), CCIOSurfaceDrawQuad::Unflipped);
- quadList.append(ioSurfaceQuad.release());
+ quadSink.append(ioSurfaceQuad.release());
break;
}
case Extensions3DChromium::GL_TEXTURE_EXTERNAL_OES: {
// StreamTexture hardware decoder.
OwnPtr<CCStreamVideoDrawQuad> streamVideoQuad = CCStreamVideoDrawQuad::create(sharedQuadState, quadRect, m_frame->textureId(), m_streamTextureMatrix);
- quadList.append(streamVideoQuad.release());
+ quadSink.append(streamVideoQuad.release());
break;
}
default:
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.h b/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.h
index 30070c8c1..2c54e3513 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.h
@@ -51,7 +51,7 @@ public:
virtual ~CCVideoLayerImpl();
virtual void willDraw(CCResourceProvider*) OVERRIDE;
- virtual void appendQuads(CCQuadSink&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
+ virtual void appendQuads(CCQuadSink&, bool& hadMissingTiles) OVERRIDE;
virtual void didDraw(CCResourceProvider*) OVERRIDE;
virtual void dumpLayerProperties(TextStream&, int indent) const OVERRIDE;
diff --git a/Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm b/Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm
index d042c660c..d570f485a 100644
--- a/Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm
+++ b/Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm
@@ -57,15 +57,9 @@ namespace WebCore {
// the restructuring in https://bugs.webkit.org/show_bug.cgi?id=66903 is done
class GraphicsContext3DPrivate {
public:
- GraphicsContext3DPrivate(GraphicsContext3D* graphicsContext3D)
- : m_graphicsContext3D(graphicsContext3D)
- {
- }
+ GraphicsContext3DPrivate(GraphicsContext3D*) { }
~GraphicsContext3DPrivate() { }
-
-private:
- GraphicsContext3D* m_graphicsContext3D; // Weak back-pointer
};
static void setPixelFormat(Vector<CGLPixelFormatAttribute>& attribs, int colorBits, int depthBits, bool accelerated, bool supersample, bool closest)
diff --git a/Source/WebCore/platform/text/TextDirection.h b/Source/WebCore/platform/text/TextDirection.h
index 5be416e49..9a074c85d 100644
--- a/Source/WebCore/platform/text/TextDirection.h
+++ b/Source/WebCore/platform/text/TextDirection.h
@@ -28,7 +28,9 @@
namespace WebCore {
- enum TextDirection { RTL, LTR };
+enum TextDirection { RTL, LTR };
+
+inline bool isLeftToRightDirection(TextDirection direction) { return direction == LTR; }
}
diff --git a/Source/WebCore/bindings/v8/V8Proxy.cpp b/Source/WebCore/platform/text/WritingMode.h
index ed36d8675..9a4a2064b 100644
--- a/Source/WebCore/bindings/v8/V8Proxy.cpp
+++ b/Source/WebCore/platform/text/WritingMode.h
@@ -1,10 +1,10 @@
/*
- * Copyright (C) 2008, 2009 Google Inc. All rights reserved.
- *
+ * Copyright (c) 2012, Google Inc. All rights reserved.
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
- *
+ *
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
@@ -14,7 +14,7 @@
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -28,69 +28,30 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "config.h"
-#include "V8Proxy.h"
-
-#include "BindingState.h"
-#include "CachedMetadata.h"
-#include "DateExtension.h"
-#include "Document.h"
-#include "DocumentLoader.h"
-#include "ExceptionHeaders.h"
-#include "ExceptionInterfaces.h"
-#include "Frame.h"
-#include "FrameLoaderClient.h"
-#include "IDBFactoryBackendInterface.h"
-#include "InspectorInstrumentation.h"
-#include "PlatformSupport.h"
-#include "ScriptCallStack.h"
-#include "ScriptCallStackFactory.h"
-#include "ScriptRunner.h"
-#include "ScriptSourceCode.h"
-#include "SecurityOrigin.h"
-#include "Settings.h"
-#include "StylePropertySet.h"
-#include "V8Binding.h"
-#include "V8Collection.h"
-#include "V8DOMCoreException.h"
-#include "V8DOMMap.h"
-#include "V8DOMWindow.h"
-#include "V8HiddenPropertyName.h"
-#include "V8IsolatedContext.h"
-#include "V8RecursionScope.h"
-#include "WorkerContext.h"
-#include "WorkerContextExecutionProxy.h"
-
-#include <algorithm>
-#include <stdio.h>
-#include <utility>
-#include <wtf/Assertions.h>
-#include <wtf/OwnArrayPtr.h>
-#include <wtf/OwnPtr.h>
-#include <wtf/StdLibExtras.h>
-#include <wtf/StringExtras.h>
-#include <wtf/UnusedParam.h>
-#include <wtf/text/WTFString.h>
-
-#if PLATFORM(CHROMIUM)
-#include "TraceEvent.h"
-#endif
+#ifndef WritingMode_h
+#define WritingMode_h
namespace WebCore {
-V8Proxy::V8Proxy(Frame* frame)
- : m_frame(frame)
+enum WritingMode {
+ TopToBottomWritingMode, RightToLeftWritingMode, LeftToRightWritingMode, BottomToTopWritingMode
+};
+
+inline bool isHorizontalWritingMode(WritingMode writingMode)
{
+ return writingMode == TopToBottomWritingMode || writingMode == BottomToTopWritingMode;
}
-V8Proxy::~V8Proxy()
+inline bool isFlippedLinesWritingMode(WritingMode writingMode)
{
- windowShell()->destroyGlobal();
+ return writingMode == LeftToRightWritingMode || writingMode == BottomToTopWritingMode;
}
-V8DOMWindowShell* V8Proxy::windowShell() const
+inline bool isFlippedBlocksWritingMode(WritingMode writingMode)
{
- return frame()->script()->windowShell();
+ return writingMode == RightToLeftWritingMode || writingMode == BottomToTopWritingMode;
}
-} // namespace WebCore
+} // namespace WebCore
+
+#endif // WritingMode_h
diff --git a/Source/WebCore/platform/win/PopupMenuWin.cpp b/Source/WebCore/platform/win/PopupMenuWin.cpp
index eb5c5b1a0..a86847ddf 100644
--- a/Source/WebCore/platform/win/PopupMenuWin.cpp
+++ b/Source/WebCore/platform/win/PopupMenuWin.cpp
@@ -726,6 +726,31 @@ void PopupMenuWin::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect&
::InvalidateRect(m_popup, &r, false);
}
+int PopupMenuWin::visibleHeight() const
+{
+ return m_scrollbar ? m_scrollbar->visibleSize() : m_windowRect.height();
+}
+
+int PopupMenuWin::visibleWidth() const
+{
+ return m_windowRect.width();
+}
+
+IntSize PopupMenuWin::contentsSize() const
+{
+ return m_windowRect.size();
+}
+
+bool PopupMenuWin::isOnActivePage() const
+{
+ return m_showPopup;
+}
+
+IntRect PopupMenuWin::scrollableAreaBoundingBox() const
+{
+ return m_windowRect;
+}
+
void PopupMenuWin::registerClass()
{
static bool haveRegisteredWindowClass = false;
diff --git a/Source/WebCore/platform/win/PopupMenuWin.h b/Source/WebCore/platform/win/PopupMenuWin.h
index 3aee51cb9..9b6ffa7d3 100644
--- a/Source/WebCore/platform/win/PopupMenuWin.h
+++ b/Source/WebCore/platform/win/PopupMenuWin.h
@@ -91,16 +91,21 @@ private:
void setScrollbarCapturingMouse(bool b) { m_scrollbarCapturingMouse = b; }
// ScrollableArea
- virtual int scrollSize(ScrollbarOrientation orientation) const;
- virtual int scrollPosition(Scrollbar*) const;
- virtual void setScrollOffset(const IntPoint&);
- virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&);
- virtual void invalidateScrollCornerRect(const WebCore::IntRect&) { }
- virtual bool isActive() const { return true; }
- ScrollableArea* enclosingScrollableArea() const { return 0; }
- virtual bool isScrollCornerVisible() const { return false; }
- virtual WebCore::IntRect scrollCornerRect() const { return WebCore::IntRect(); }
- virtual Scrollbar* verticalScrollbar() const { return m_scrollbar.get(); }
+ virtual int scrollSize(ScrollbarOrientation) const OVERRIDE;
+ virtual int scrollPosition(Scrollbar*) const OVERRIDE;
+ virtual void setScrollOffset(const IntPoint&) OVERRIDE;
+ virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&) OVERRIDE;
+ virtual void invalidateScrollCornerRect(const IntRect&) OVERRIDE { }
+ virtual bool isActive() const OVERRIDE { return true; }
+ ScrollableArea* enclosingScrollableArea() const OVERRIDE { return 0; }
+ virtual bool isScrollCornerVisible() const OVERRIDE { return false; }
+ virtual IntRect scrollCornerRect() const OVERRIDE { return IntRect(); }
+ virtual Scrollbar* verticalScrollbar() const OVERRIDE { return m_scrollbar.get(); }
+ virtual int visibleHeight() const OVERRIDE;
+ virtual int visibleWidth() const OVERRIDE;
+ virtual IntSize contentsSize() const OVERRIDE;
+ virtual bool isOnActivePage() const OVERRIDE;
+ virtual IntRect scrollableAreaBoundingBox() const OVERRIDE;
// NOTE: This should only be called by the overriden setScrollOffset from ScrollableArea.
void scrollTo(int offset);
diff --git a/Source/WebCore/platform/wx/CursorWx.cpp b/Source/WebCore/platform/wx/CursorWx.cpp
index dd61f1e88..5ffaa9db9 100644
--- a/Source/WebCore/platform/wx/CursorWx.cpp
+++ b/Source/WebCore/platform/wx/CursorWx.cpp
@@ -62,61 +62,61 @@ Cursor::Cursor(wxCursor* c)
const Cursor& pointerCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_ARROW);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_ARROW));
return c;
}
const Cursor& crossCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_CROSS);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_CROSS));
return c;
}
const Cursor& handCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_HAND);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_HAND));
return c;
}
const Cursor& iBeamCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_IBEAM);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_IBEAM));
return c;
}
const Cursor& waitCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_WAIT);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_WAIT));
return c;
}
const Cursor& helpCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_QUESTION_ARROW);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_QUESTION_ARROW));
return c;
}
const Cursor& eastResizeCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_SIZEWE);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_SIZEWE));
return c;
}
const Cursor& northResizeCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_SIZENS);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_SIZENS));
return c;
}
const Cursor& northEastResizeCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_SIZENESW);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_SIZENESW));
return c;
}
const Cursor& northWestResizeCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_SIZENWSE);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_SIZENWSE));
return c;
}
@@ -171,14 +171,14 @@ const Cursor& northWestSouthEastResizeCursor()
const Cursor& columnResizeCursor()
{
// FIXME: Windows does not have a standard column resize cursor
- static Cursor c = new wxCursor(wxCURSOR_SIZING);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_SIZING));
return c;
}
const Cursor& rowResizeCursor()
{
// FIXME: Windows does not have a standard row resize cursor
- static Cursor c = new wxCursor(wxCURSOR_SIZING);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_SIZING));
return c;
}
@@ -270,13 +270,13 @@ const Cursor& noneCursor()
const Cursor& notAllowedCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_NO_ENTRY);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_NO_ENTRY));
return c;
}
const Cursor& zoomInCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_MAGNIFIER);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_MAGNIFIER));
return c;
}
@@ -300,7 +300,7 @@ const Cursor& grabbingCursor()
const Cursor& moveCursor()
{
- static Cursor c = new wxCursor(wxCURSOR_SIZING);
+ static Cursor c = Cursor(new wxCursor(wxCURSOR_SIZING));
return c;
}
diff --git a/Source/WebCore/rendering/InlineFlowBox.cpp b/Source/WebCore/rendering/InlineFlowBox.cpp
index c3da10025..126db27f9 100644
--- a/Source/WebCore/rendering/InlineFlowBox.cpp
+++ b/Source/WebCore/rendering/InlineFlowBox.cpp
@@ -792,10 +792,10 @@ inline void InlineFlowBox::addBorderOutsetVisualOverflow(LayoutRect& logicalVisu
FractionalLayoutBoxExtent borderOutsets = style->borderImageOutsets();
- LayoutUnit borderOutsetLogicalTop = borderOutsets.logicalTop(style);
- LayoutUnit borderOutsetLogicalBottom = borderOutsets.logicalBottom(style);
- LayoutUnit borderOutsetLogicalLeft = borderOutsets.logicalLeft(style);
- LayoutUnit borderOutsetLogicalRight = borderOutsets.logicalRight(style);
+ LayoutUnit borderOutsetLogicalTop = borderOutsets.logicalTop(style->writingMode());
+ LayoutUnit borderOutsetLogicalBottom = borderOutsets.logicalBottom(style->writingMode());
+ LayoutUnit borderOutsetLogicalLeft = borderOutsets.logicalLeft(style->writingMode());
+ LayoutUnit borderOutsetLogicalRight = borderOutsets.logicalRight(style->writingMode());
// Similar to how glyph overflow works, if our lines are flipped, then it's actually the opposite border that applies, since
// the line is "upside down" in terms of block coordinates. vertical-rl and horizontal-bt are the flipped line modes.
diff --git a/Source/WebCore/rendering/LayoutState.cpp b/Source/WebCore/rendering/LayoutState.cpp
index f750cb159..1dff9533e 100644
--- a/Source/WebCore/rendering/LayoutState.cpp
+++ b/Source/WebCore/rendering/LayoutState.cpp
@@ -55,15 +55,15 @@ LayoutState::LayoutState(LayoutState* prev, RenderBox* renderer, const LayoutSiz
if (renderer->isOutOfFlowPositioned() && !fixed) {
if (RenderObject* container = renderer->container()) {
- if (container->isRelPositioned() && container->isRenderInline())
- m_paintOffset += toRenderInline(container)->relativePositionedInlineOffset(renderer);
+ if (container->isInFlowPositioned() && container->isRenderInline())
+ m_paintOffset += toRenderInline(container)->offsetForInFlowPositionedInline(renderer);
}
}
m_layoutOffset = m_paintOffset;
- if (renderer->isRelPositioned() && renderer->hasLayer())
- m_paintOffset += renderer->layer()->relativePositionOffset();
+ if (renderer->isInFlowPositioned() && renderer->hasLayer())
+ m_paintOffset += renderer->layer()->offsetForInFlowPosition();
m_clipped = !fixed && prev->m_clipped;
if (m_clipped)
diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp
index a4158f4e1..119cbb7fd 100755
--- a/Source/WebCore/rendering/RenderBlock.cpp
+++ b/Source/WebCore/rendering/RenderBlock.cpp
@@ -309,7 +309,7 @@ void RenderBlock::styleWillChange(StyleDifference diff, const RenderStyle* newSt
toRenderBlock(cb)->removePositionedObjects(this);
}
- if (containsFloats() && !isFloating() && !isOutOfFlowPositioned() && (newStyle->position() == AbsolutePosition || newStyle->position() == FixedPosition))
+ if (containsFloats() && !isFloating() && !isOutOfFlowPositioned() && newStyle->hasOutOfFlowPosition())
markAllDescendantsWithFloatsForLayout();
}
@@ -1143,6 +1143,8 @@ void RenderBlock::collapseAnonymousBoxChild(RenderBlock* parent, RenderObject* c
RenderObject* nextSibling = child->nextSibling();
RenderFlowThread* childFlowThread = child->enclosingRenderFlowThread();
+ CurrentRenderFlowThreadMaintainer flowThreadMaintainer(childFlowThread);
+
RenderBlock* anonBlock = toRenderBlock(parent->children()->removeChildNode(parent, child, child->hasLayer()));
anonBlock->moveAllChildrenTo(parent, nextSibling, child->hasLayer());
// Delete the now-empty block's lines and nuke it.
@@ -3174,9 +3176,10 @@ bool RenderBlock::isSelectionRoot() const
if (isTable())
return false;
- if (isBody() || isRoot() || hasOverflowClip() || isRelPositioned()
- || isFloatingOrOutOfFlowPositioned() || isTableCell() || isInlineBlockOrInlineTable() || hasTransform()
- || hasReflection() || hasMask() || isWritingModeRoot())
+ if (isBody() || isRoot() || hasOverflowClip()
+ || isInFlowPositioned() || isFloatingOrOutOfFlowPositioned()
+ || isTableCell() || isInlineBlockOrInlineTable()
+ || hasTransform() || hasReflection() || hasMask() || isWritingModeRoot())
return true;
if (view() && view()->selectionStart()) {
@@ -3396,10 +3399,10 @@ GapRects RenderBlock::blockSelectionGaps(RenderBlock* rootBlock, const LayoutPoi
if (curr->isFloatingOrOutOfFlowPositioned())
continue; // We must be a normal flow object in order to even be considered.
- if (curr->isRelPositioned() && curr->hasLayer()) {
+ if (curr->isInFlowPositioned() && curr->hasLayer()) {
// If the relposition offset is anything other than 0, then treat this just like an absolute positioned element.
// Just disregard it completely.
- LayoutSize relOffset = curr->layer()->relativePositionOffset();
+ LayoutSize relOffset = curr->layer()->offsetForInFlowPosition();
if (relOffset.width() || relOffset.height())
continue;
}
@@ -4879,8 +4882,9 @@ static inline bool isEditingBoundary(RenderObject* ancestor, RenderObject* child
static VisiblePosition positionForPointRespectingEditingBoundaries(RenderBlock* parent, RenderBox* child, const LayoutPoint& pointInParentCoordinates)
{
LayoutPoint childLocation = child->location();
- if (child->isRelPositioned())
- childLocation += child->relativePositionOffset();
+ if (child->isInFlowPositioned())
+ childLocation += child->offsetForInFlowPosition();
+
// FIXME: This is wrong if the child's writing-mode is different from the parent's.
LayoutPoint pointInChildCoordinates(toLayoutPoint(pointInParentCoordinates - childLocation));
diff --git a/Source/WebCore/rendering/RenderBox.cpp b/Source/WebCore/rendering/RenderBox.cpp
index a0056e03b..f16457b5e 100644
--- a/Source/WebCore/rendering/RenderBox.cpp
+++ b/Source/WebCore/rendering/RenderBox.cpp
@@ -197,9 +197,9 @@ void RenderBox::styleWillChange(StyleDifference diff, const RenderStyle* newStyl
markContainingBlocksForLayout();
if (oldStyle->position() == StaticPosition)
repaint();
- else if (newStyle->isOutOfFlowPositioned())
+ else if (newStyle->hasOutOfFlowPosition())
parent()->setChildNeedsLayout(true);
- if (isFloating() && !isOutOfFlowPositioned() && newStyle->isOutOfFlowPositioned())
+ if (isFloating() && !isOutOfFlowPositioned() && newStyle->hasOutOfFlowPosition())
removeFloatingOrPositionedChildFromBlockLists();
}
} else if (newStyle && isBody())
@@ -301,7 +301,7 @@ void RenderBox::updateBoxModelInfoFromStyle()
if (isRootObject || isViewObject)
setHasBoxDecorations(true);
- setPositioned(styleToUse->isOutOfFlowPositioned());
+ setPositioned(styleToUse->hasOutOfFlowPosition());
setFloating(!isOutOfFlowPositioned() && styleToUse->isFloating());
// We also handle <body> and <html>, whose overflow applies to the viewport.
@@ -433,19 +433,23 @@ void RenderBox::updateLayerTransform()
layer()->updateTransform();
}
-LayoutUnit RenderBox::logicalHeightConstrainedByMinMax(LayoutUnit availableHeight)
+LayoutUnit RenderBox::constrainLogicalWidthInRegionByMinMax(LayoutUnit logicalWidth, LayoutUnit availableWidth, RenderBlock* cb, RenderRegion* region, LayoutUnit offsetFromLogicalTopOfFirstPage)
{
RenderStyle* styleToUse = style();
- LayoutUnit result = computeLogicalHeightUsing(MainOrPreferredSize, styleToUse->logicalHeight());
- if (result == -1)
- result = availableHeight;
- LayoutUnit minH = computeLogicalHeightUsing(MinSize, styleToUse->logicalMinHeight()); // Leave as -1 if unset.
- LayoutUnit maxH = styleToUse->logicalMaxHeight().isUndefined() ? result : computeLogicalHeightUsing(MaxSize, styleToUse->logicalMaxHeight());
- if (maxH == -1)
- maxH = result;
- result = min(maxH, result);
- result = max(minH, result);
- return result;
+ if (!styleToUse->logicalMaxWidth().isUndefined())
+ logicalWidth = min(logicalWidth, computeLogicalWidthInRegionUsing(MaxSize, availableWidth, cb, region, offsetFromLogicalTopOfFirstPage));
+ return max(logicalWidth, computeLogicalWidthInRegionUsing(MinSize, availableWidth, cb, region, offsetFromLogicalTopOfFirstPage));
+}
+
+LayoutUnit RenderBox::constrainLogicalHeightByMinMax(LayoutUnit logicalHeight)
+{
+ RenderStyle* styleToUse = style();
+ if (!styleToUse->logicalMaxHeight().isUndefined()) {
+ LayoutUnit maxH = computeLogicalHeightUsing(MaxSize, styleToUse->logicalMaxHeight());
+ if (maxH != -1)
+ logicalHeight = min(logicalHeight, maxH);
+ }
+ return max(logicalHeight, computeLogicalHeightUsing(MinSize, styleToUse->logicalMinHeight()));
}
IntRect RenderBox::absoluteContentBox() const
@@ -1272,8 +1276,8 @@ void RenderBox::mapLocalToContainer(RenderBoxModelObject* repaintContainer, Tran
if (v->layoutStateEnabled() && !repaintContainer) {
LayoutState* layoutState = v->layoutState();
LayoutSize offset = layoutState->m_paintOffset + locationOffset();
- if (style()->position() == RelativePosition && layer())
- offset += layer()->relativePositionOffset();
+ if (style()->hasInFlowPosition() && layer())
+ offset += layer()->offsetForInFlowPosition();
transformState.move(offset);
return;
}
@@ -1390,11 +1394,11 @@ LayoutSize RenderBox::offsetFromContainer(RenderObject* o, const LayoutPoint& po
ASSERT(o == container());
LayoutSize offset;
- if (isRelPositioned())
- offset += relativePositionOffset();
+ if (isInFlowPositioned())
+ offset += offsetForInFlowPosition();
if (!isInline() || isReplaced()) {
- if (!style()->isOutOfFlowPositioned() && o->hasColumns()) {
+ if (!style()->hasOutOfFlowPosition() && o->hasColumns()) {
RenderBlock* block = toRenderBlock(o);
LayoutRect columnRect(frameRect());
block->adjustStartEdgeForWritingModeIncludingColumns(columnRect);
@@ -1413,8 +1417,8 @@ LayoutSize RenderBox::offsetFromContainer(RenderObject* o, const LayoutPoint& po
if (o->hasOverflowClip())
offset -= toRenderBox(o)->scrolledContentOffset();
- if (style()->position() == AbsolutePosition && o->isRelPositioned() && o->isRenderInline())
- offset += toRenderInline(o)->relativePositionedInlineOffset(this);
+ if (style()->position() == AbsolutePosition && o->isInFlowPositioned() && o->isRenderInline())
+ offset += toRenderInline(o)->offsetForInFlowPositionedInline(this);
return offset;
}
@@ -1527,8 +1531,9 @@ void RenderBox::computeRectForRepaint(RenderBoxModelObject* repaintContainer, La
if (layer() && layer()->transform())
rect = layer()->transform()->mapRect(pixelSnappedIntRect(rect));
- if (styleToUse->position() == RelativePosition && layer())
- rect.move(layer()->relativePositionOffset());
+ // We can't trust the bits on RenderObject, because this might be called while re-resolving style.
+ if (styleToUse->hasInFlowPosition() && layer())
+ rect.move(layer()->offsetForInFlowPosition());
rect.moveBy(location());
rect.move(layoutState->m_paintOffset);
@@ -1570,14 +1575,14 @@ void RenderBox::computeRectForRepaint(RenderBoxModelObject* repaintContainer, La
} else if (position == FixedPosition)
fixed = true;
- if (position == AbsolutePosition && o->isRelPositioned() && o->isRenderInline())
- topLeft += toRenderInline(o)->relativePositionedInlineOffset(this);
- else if (position == RelativePosition && layer()) {
+ if (position == AbsolutePosition && o->isInFlowPositioned() && o->isRenderInline())
+ topLeft += toRenderInline(o)->offsetForInFlowPositionedInline(this);
+ else if ((position == RelativePosition) && layer()) {
// Apply the relative position offset when invalidating a rectangle. The layer
// is translated, but the render box isn't, so we need to do this to get the
// right dirty rect. Since this is called from RenderObject::setStyle, the relative position
// flag on the RenderObject has been cleared, so use the one on the style().
- topLeft += layer()->relativePositionOffset();
+ topLeft += layer()->offsetForInFlowPosition();
}
if (o->isBlockFlow() && position != AbsolutePosition && position != FixedPosition) {
@@ -1690,20 +1695,8 @@ void RenderBox::computeLogicalWidthInRegion(RenderRegion* region, LayoutUnit off
if (treatAsReplaced)
setLogicalWidth(logicalWidthLength.value() + borderAndPaddingLogicalWidth());
else {
- // Calculate LogicalWidth
- setLogicalWidth(computeLogicalWidthInRegionUsing(MainOrPreferredSize, containerWidthInInlineDirection, cb, region, offsetFromLogicalTopOfFirstPage));
-
- // Calculate MaxLogicalWidth
- if (!styleToUse->logicalMaxWidth().isUndefined()) {
- LayoutUnit maxLogicalWidth = computeLogicalWidthInRegionUsing(MaxSize, containerWidthInInlineDirection, cb, region, offsetFromLogicalTopOfFirstPage);
- if (logicalWidth() > maxLogicalWidth)
- setLogicalWidth(maxLogicalWidth);
- }
-
- // Calculate MinLogicalWidth
- LayoutUnit minLogicalWidth = computeLogicalWidthInRegionUsing(MinSize, containerWidthInInlineDirection, cb, region, offsetFromLogicalTopOfFirstPage);
- if (logicalWidth() < minLogicalWidth)
- setLogicalWidth(minLogicalWidth);
+ LayoutUnit preferredWidth = computeLogicalWidthInRegionUsing(MainOrPreferredSize, containerWidthInInlineDirection, cb, region, offsetFromLogicalTopOfFirstPage);
+ setLogicalWidth(constrainLogicalWidthInRegionByMinMax(preferredWidth, containerWidthInInlineDirection, cb, region, offsetFromLogicalTopOfFirstPage));
}
// Fieldsets are currently the only objects that stretch to their minimum width.
@@ -2013,9 +2006,12 @@ void RenderBox::computeLogicalHeight()
}
LayoutUnit heightResult;
- if (checkMinMaxHeight)
- heightResult = logicalHeightConstrainedByMinMax(logicalHeight());
- else {
+ if (checkMinMaxHeight) {
+ heightResult = computeLogicalHeightUsing(MainOrPreferredSize, style()->logicalHeight());
+ if (heightResult == -1)
+ heightResult = logicalHeight();
+ heightResult = constrainLogicalHeightByMinMax(heightResult);
+ } else {
// The only times we don't check min/max height are when a fixed length has
// been given as an override. Just use that. The value has already been adjusted
// for box-sizing.
@@ -2390,7 +2386,7 @@ LayoutUnit RenderBox::containingBlockLogicalWidthForPositioned(const RenderBoxMo
return result;
}
- ASSERT(containingBlock->isRenderInline() && containingBlock->isRelPositioned());
+ ASSERT(containingBlock->isRenderInline() && containingBlock->isInFlowPositioned());
const RenderInline* flow = toRenderInline(containingBlock);
InlineFlowBox* first = flow->firstLineBox();
@@ -2431,7 +2427,7 @@ LayoutUnit RenderBox::containingBlockLogicalHeightForPositioned(const RenderBoxM
return result;
}
- ASSERT(containingBlock->isRenderInline() && containingBlock->isRelPositioned());
+ ASSERT(containingBlock->isRenderInline() && containingBlock->isInFlowPositioned());
const RenderInline* flow = toRenderInline(containingBlock);
InlineFlowBox* first = flow->firstLineBox();
@@ -2538,8 +2534,8 @@ void RenderBox::computePositionedLogicalWidth(RenderRegion* region, LayoutUnit o
const LayoutUnit bordersPlusPadding = borderAndPaddingLogicalWidth();
const Length marginLogicalLeft = isHorizontal ? style()->marginLeft() : style()->marginTop();
const Length marginLogicalRight = isHorizontal ? style()->marginRight() : style()->marginBottom();
- LayoutUnit& marginLogicalLeftAlias = m_marginBox.mutableLogicalLeft(style());
- LayoutUnit& marginLogicalRightAlias = m_marginBox.mutableLogicalRight(style());
+ LayoutUnit& marginLogicalLeftAlias = m_marginBox.mutableLogicalLeft(style()->writingMode());
+ LayoutUnit& marginLogicalRightAlias = m_marginBox.mutableLogicalRight(style()->writingMode());
Length logicalLeftLength = style()->logicalLeft();
Length logicalRightLength = style()->logicalRight();
@@ -2878,8 +2874,8 @@ void RenderBox::computePositionedLogicalHeight()
const LayoutUnit bordersPlusPadding = borderAndPaddingLogicalHeight();
const Length marginBefore = styleToUse->marginBefore();
const Length marginAfter = styleToUse->marginAfter();
- LayoutUnit& marginBeforeAlias = m_marginBox.mutableBefore(styleToUse);
- LayoutUnit& marginAfterAlias = m_marginBox.mutableAfter(styleToUse);
+ LayoutUnit& marginBeforeAlias = m_marginBox.mutableBefore(styleToUse->writingMode());
+ LayoutUnit& marginAfterAlias = m_marginBox.mutableAfter(styleToUse->writingMode());
Length logicalTopLength = styleToUse->logicalTop();
Length logicalBottomLength = styleToUse->logicalBottom();
@@ -3145,8 +3141,8 @@ void RenderBox::computePositionedLogicalWidthReplaced()
Length logicalRight = style()->logicalRight();
Length marginLogicalLeft = isHorizontal ? style()->marginLeft() : style()->marginTop();
Length marginLogicalRight = isHorizontal ? style()->marginRight() : style()->marginBottom();
- LayoutUnit& marginLogicalLeftAlias = m_marginBox.mutableLogicalLeft(style());
- LayoutUnit& marginLogicalRightAlias = m_marginBox.mutableLogicalRight(style());
+ LayoutUnit& marginLogicalLeftAlias = m_marginBox.mutableLogicalLeft(style()->writingMode());
+ LayoutUnit& marginLogicalRightAlias = m_marginBox.mutableLogicalRight(style()->writingMode());
/*-----------------------------------------------------------------------*\
* 1. The used value of 'width' is determined as for inline replaced
@@ -3306,8 +3302,8 @@ void RenderBox::computePositionedLogicalHeightReplaced()
// Variables to solve.
Length marginBefore = style()->marginBefore();
Length marginAfter = style()->marginAfter();
- LayoutUnit& marginBeforeAlias = m_marginBox.mutableBefore(style());
- LayoutUnit& marginAfterAlias = m_marginBox.mutableAfter(style());
+ LayoutUnit& marginBeforeAlias = m_marginBox.mutableBefore(style()->writingMode());
+ LayoutUnit& marginAfterAlias = m_marginBox.mutableAfter(style()->writingMode());
Length logicalTop = style()->logicalTop();
Length logicalBottom = style()->logicalBottom();
@@ -3836,7 +3832,7 @@ LayoutRect RenderBox::layoutOverflowRectForPropagation(RenderStyle* parentStyle)
rect.unite(layoutOverflowRect());
bool hasTransform = hasLayer() && layer()->transform();
- if (isRelPositioned() || hasTransform) {
+ if (isInFlowPositioned() || hasTransform) {
// If we are relatively positioned or if we have a transform, then we have to convert
// this rectangle into physical coordinates, apply relative positioning and transforms
// to it, and then convert it back.
@@ -3845,8 +3841,8 @@ LayoutRect RenderBox::layoutOverflowRectForPropagation(RenderStyle* parentStyle)
if (hasTransform)
rect = layer()->currentTransform().mapRect(rect);
- if (isRelPositioned())
- rect.move(relativePositionOffset());
+ if (isInFlowPositioned())
+ rect.move(offsetForInFlowPosition());
// Now we need to flip back.
flipForWritingMode(rect);
diff --git a/Source/WebCore/rendering/RenderBox.h b/Source/WebCore/rendering/RenderBox.h
index 00b05f4e1..f011714cb 100644
--- a/Source/WebCore/rendering/RenderBox.h
+++ b/Source/WebCore/rendering/RenderBox.h
@@ -44,7 +44,7 @@ public:
// hasAutoZIndex only returns true if the element is positioned or a flex-item since
// position:static elements that are not flex-items get their z-index coerced to auto.
- virtual bool requiresLayer() const OVERRIDE { return isRoot() || isOutOfFlowPositioned() || isRelPositioned() || isTransparent() || hasOverflowClip() || hasTransform() || hasHiddenBackface() || hasMask() || hasReflection() || hasFilter() || style()->specifiesColumns() || !style()->hasAutoZIndex(); }
+ virtual bool requiresLayer() const OVERRIDE { return isRoot() || isOutOfFlowPositioned() || isInFlowPositioned() || isTransparent() || hasOverflowClip() || hasTransform() || hasHiddenBackface() || hasMask() || hasReflection() || hasFilter() || style()->specifiesColumns() || !style()->hasAutoZIndex(); }
// Use this with caution! No type checking is done!
RenderBox* firstChildBox() const;
@@ -75,7 +75,8 @@ public:
LayoutUnit logicalWidth() const { return style()->isHorizontalWritingMode() ? width() : height(); }
LayoutUnit logicalHeight() const { return style()->isHorizontalWritingMode() ? height() : width(); }
- LayoutUnit logicalHeightConstrainedByMinMax(LayoutUnit);
+ LayoutUnit constrainLogicalWidthInRegionByMinMax(LayoutUnit, LayoutUnit, RenderBlock*, RenderRegion* = 0, LayoutUnit offsetFromLogicalTopOfFirstPage = ZERO_LAYOUT_UNIT);
+ LayoutUnit constrainLogicalHeightByMinMax(LayoutUnit);
int pixelSnappedLogicalHeight() const { return style()->isHorizontalWritingMode() ? pixelSnappedHeight() : pixelSnappedWidth(); }
int pixelSnappedLogicalWidth() const { return style()->isHorizontalWritingMode() ? pixelSnappedWidth() : pixelSnappedHeight(); }
@@ -234,17 +235,33 @@ public:
void setMarginLeft(LayoutUnit margin) { m_marginBox.setLeft(margin); }
void setMarginRight(LayoutUnit margin) { m_marginBox.setRight(margin); }
- virtual LayoutUnit marginLogicalLeft() const { return m_marginBox.logicalLeft(style()); }
- virtual LayoutUnit marginLogicalRight() const { return m_marginBox.logicalRight(style()); }
+ virtual LayoutUnit marginLogicalLeft() const { return m_marginBox.logicalLeft(style()->writingMode()); }
+ virtual LayoutUnit marginLogicalRight() const { return m_marginBox.logicalRight(style()->writingMode()); }
- virtual LayoutUnit marginBefore(const RenderStyle* overrideStyle = 0) const OVERRIDE { return m_marginBox.before(overrideStyle ? overrideStyle : style()); }
- virtual LayoutUnit marginAfter(const RenderStyle* overrideStyle = 0) const OVERRIDE { return m_marginBox.after(overrideStyle ? overrideStyle : style()); }
- virtual LayoutUnit marginStart(const RenderStyle* overrideStyle = 0) const OVERRIDE { return m_marginBox.start(overrideStyle ? overrideStyle : style()); }
- virtual LayoutUnit marginEnd(const RenderStyle* overrideStyle = 0) const OVERRIDE { return m_marginBox.end(overrideStyle ? overrideStyle : style()); }
- void setMarginBefore(LayoutUnit value, const RenderStyle* overrideStyle = 0) { m_marginBox.setBefore(overrideStyle ? overrideStyle : style(), value); }
- void setMarginAfter(LayoutUnit value, const RenderStyle* overrideStyle = 0) { m_marginBox.setAfter(overrideStyle ? overrideStyle : style(), value); }
- void setMarginStart(LayoutUnit value, const RenderStyle* overrideStyle = 0) { m_marginBox.setStart(overrideStyle ? overrideStyle : style(), value); }
- void setMarginEnd(LayoutUnit value, const RenderStyle* overrideStyle = 0) { m_marginBox.setEnd(overrideStyle ? overrideStyle : style(), value); }
+ virtual LayoutUnit marginBefore(const RenderStyle* overrideStyle = 0) const OVERRIDE { return m_marginBox.before((overrideStyle ? overrideStyle : style())->writingMode()); }
+ virtual LayoutUnit marginAfter(const RenderStyle* overrideStyle = 0) const OVERRIDE { return m_marginBox.after((overrideStyle ? overrideStyle : style())->writingMode()); }
+ virtual LayoutUnit marginStart(const RenderStyle* overrideStyle = 0) const OVERRIDE
+ {
+ const RenderStyle* styleToUse = overrideStyle ? overrideStyle : style();
+ return m_marginBox.start(styleToUse->writingMode(), styleToUse->direction());
+ }
+ virtual LayoutUnit marginEnd(const RenderStyle* overrideStyle = 0) const OVERRIDE
+ {
+ const RenderStyle* styleToUse = overrideStyle ? overrideStyle : style();
+ return m_marginBox.end(styleToUse->writingMode(), styleToUse->direction());
+ }
+ void setMarginBefore(LayoutUnit value, const RenderStyle* overrideStyle = 0) { m_marginBox.setBefore((overrideStyle ? overrideStyle : style())->writingMode(), value); }
+ void setMarginAfter(LayoutUnit value, const RenderStyle* overrideStyle = 0) { m_marginBox.setAfter((overrideStyle ? overrideStyle : style())->writingMode(), value); }
+ void setMarginStart(LayoutUnit value, const RenderStyle* overrideStyle = 0)
+ {
+ const RenderStyle* styleToUse = overrideStyle ? overrideStyle : style();
+ m_marginBox.setStart(styleToUse->writingMode(), styleToUse->direction(), value);
+ }
+ void setMarginEnd(LayoutUnit value, const RenderStyle* overrideStyle = 0)
+ {
+ const RenderStyle* styleToUse = overrideStyle ? overrideStyle : style();
+ m_marginBox.setEnd(styleToUse->writingMode(), styleToUse->direction(), value);
+ }
// The following five functions are used to implement collapsing margins.
// All objects know their maximal positive and negative margins. The
diff --git a/Source/WebCore/rendering/RenderBoxModelObject.cpp b/Source/WebCore/rendering/RenderBoxModelObject.cpp
index caf327b13..7dcd24129 100644
--- a/Source/WebCore/rendering/RenderBoxModelObject.cpp
+++ b/Source/WebCore/rendering/RenderBoxModelObject.cpp
@@ -459,16 +459,16 @@ void RenderBoxModelObject::updateBoxModelInfoFromStyle()
setHorizontalWritingMode(styleToUse->isHorizontalWritingMode());
}
-static LayoutSize accumulateRelativePositionOffsets(const RenderObject* child)
+static LayoutSize accumulateInFlowPositionOffsets(const RenderObject* child)
{
- if (!child->isAnonymousBlock() || !child->isRelPositioned())
+ if (!child->isAnonymousBlock() || !child->isInFlowPositioned())
return LayoutSize();
LayoutSize offset;
RenderObject* p = toRenderBlock(child)->inlineElementContinuation();
while (p && p->isRenderInline()) {
- if (p->isRelPositioned()) {
+ if (p->isInFlowPositioned()) {
RenderInline* renderInline = toRenderInline(p);
- offset += renderInline->relativePositionOffset();
+ offset += renderInline->offsetForInFlowPosition();
}
p = p->parent();
}
@@ -477,7 +477,7 @@ static LayoutSize accumulateRelativePositionOffsets(const RenderObject* child)
LayoutSize RenderBoxModelObject::relativePositionOffset() const
{
- LayoutSize offset = accumulateRelativePositionOffsets(this);
+ LayoutSize offset = accumulateInFlowPositionOffsets(this);
RenderBlock* containingBlock = this->containingBlock();
@@ -550,6 +550,14 @@ LayoutPoint RenderBoxModelObject::adjustedPositionRelativeToOffsetParent(const L
return referencePoint;
}
+LayoutSize RenderBoxModelObject::offsetForInFlowPosition() const
+{
+ if (isRelPositioned())
+ return relativePositionOffset();
+
+ return LayoutSize();
+}
+
LayoutUnit RenderBoxModelObject::offsetLeft() const
{
// Note that RenderInline and RenderBox override this to pass a different
@@ -745,14 +753,14 @@ void RenderBoxModelObject::paintFillLayerExtended(const PaintInfo& paintInfo, co
// while rendering.)
if (forceBackgroundToWhite) {
// Note that we can't reuse this variable below because the bgColor might be changed
- bool shouldPaintBackgroundColor = !bgLayer->next() && bgColor.isValid() && bgColor.alpha() > 0;
+ bool shouldPaintBackgroundColor = !bgLayer->next() && bgColor.isValid() && bgColor.alpha();
if (shouldPaintBackgroundImage || shouldPaintBackgroundColor) {
bgColor = Color::white;
shouldPaintBackgroundImage = false;
}
}
- bool colorVisible = bgColor.isValid() && bgColor.alpha() > 0;
+ bool colorVisible = bgColor.isValid() && bgColor.alpha();
// Fast path for drawing simple color backgrounds.
if (!isRoot && !clippedWithLocalScrolling && !shouldPaintBackgroundImage && isBorderFill && !bgLayer->next()) {
@@ -2420,7 +2428,7 @@ bool RenderBoxModelObject::boxShadowShouldBeAppliedToBackground(BackgroundBleedA
return false;
Color backgroundColor = style()->visitedDependentColor(CSSPropertyBackgroundColor);
- if (!backgroundColor.isValid() || backgroundColor.alpha() < 255)
+ if (!backgroundColor.isValid() || backgroundColor.hasAlpha())
return false;
const FillLayer* lastBackgroundLayer = style()->backgroundLayers();
@@ -2733,7 +2741,7 @@ void RenderBoxModelObject::mapAbsoluteToLocalPoint(bool fixed, bool useTransform
LayoutSize containerOffset = offsetFromContainer(o, LayoutPoint());
- if (!style()->isOutOfFlowPositioned() && o->hasColumns()) {
+ if (!style()->hasOutOfFlowPosition() && o->hasColumns()) {
RenderBlock* block = static_cast<RenderBlock*>(o);
LayoutPoint point(roundedLayoutPoint(transformState.mappedPoint()));
point -= containerOffset;
diff --git a/Source/WebCore/rendering/RenderBoxModelObject.h b/Source/WebCore/rendering/RenderBoxModelObject.h
index 067f6046d..8d5e83e7a 100644
--- a/Source/WebCore/rendering/RenderBoxModelObject.h
+++ b/Source/WebCore/rendering/RenderBoxModelObject.h
@@ -62,6 +62,8 @@ public:
LayoutSize relativePositionOffset() const;
LayoutSize relativePositionLogicalOffset() const { return style()->isHorizontalWritingMode() ? relativePositionOffset() : relativePositionOffset().transposedSize(); }
+ LayoutSize offsetForInFlowPosition() const;
+
// IE extensions. Used to calculate offsetWidth/Height. Overridden by inlines (RenderFlow)
// to return the remaining width on a given line (and the height of a single line).
virtual LayoutUnit offsetLeft() const;
@@ -74,13 +76,13 @@ public:
int pixelSnappedOffsetWidth() const;
int pixelSnappedOffsetHeight() const;
- virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle);
- virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
+ virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle) OVERRIDE;
+ virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OVERRIDE;
virtual void updateBoxModelInfoFromStyle();
bool hasSelfPaintingLayer() const;
RenderLayer* layer() const { return m_layer; }
- virtual bool requiresLayer() const { return isRoot() || isOutOfFlowPositioned() || isRelPositioned() || isTransparent() || hasTransform() || hasHiddenBackface() || hasMask() || hasReflection() || hasFilter() || style()->specifiesColumns(); }
+ virtual bool requiresLayer() const { return isRoot() || isOutOfFlowPositioned() || isInFlowPositioned() || isTransparent() || hasTransform() || hasHiddenBackface() || hasMask() || hasReflection() || hasFilter() || style()->specifiesColumns(); }
// This will work on inlines to return the bounding box of all of the lines' border boxes.
virtual IntRect borderBoundingBox() const = 0;
diff --git a/Source/WebCore/rendering/RenderFlexibleBox.cpp b/Source/WebCore/rendering/RenderFlexibleBox.cpp
index 448d4da6d..9f87cf835 100644
--- a/Source/WebCore/rendering/RenderFlexibleBox.cpp
+++ b/Source/WebCore/rendering/RenderFlexibleBox.cpp
@@ -1233,10 +1233,10 @@ void RenderFlexibleBox::alignChildren(OrderIterator& iterator, const WTF::Vector
void RenderFlexibleBox::applyStretchAlignmentToChild(RenderBox* child, LayoutUnit lineCrossAxisExtent)
{
if (!isColumnFlow() && child->style()->logicalHeight().isAuto()) {
- // FIXME: If the child has orthogonal flow, then it already has an override height set. How do we stretch?
+ // FIXME: If the child has orthogonal flow, then it already has an override height set, so use it.
if (!hasOrthogonalFlow(child)) {
LayoutUnit stretchedLogicalHeight = child->logicalHeight() + availableAlignmentSpaceForChild(lineCrossAxisExtent, child);
- LayoutUnit desiredLogicalHeight = child->logicalHeightConstrainedByMinMax(stretchedLogicalHeight);
+ LayoutUnit desiredLogicalHeight = child->constrainLogicalHeightByMinMax(stretchedLogicalHeight);
// FIXME: Can avoid laying out here in some cases. See https://webkit.org/b/87905.
if (desiredLogicalHeight != child->logicalHeight()) {
@@ -1246,14 +1246,18 @@ void RenderFlexibleBox::applyStretchAlignmentToChild(RenderBox* child, LayoutUni
child->layoutIfNeeded();
}
}
- } else if (isColumnFlow() && child->style()->logicalWidth().isAuto() && isMultiline()) {
- // FIXME: Handle min-width and max-width.
- // FIXME: We only need to relayout here if the width changes.
- // FIXME: The isMultiline check above may not be necessary if the width has not changed. See https://webkit.org/b/94237
- LayoutUnit childWidth = lineCrossAxisExtent - crossAxisMarginExtentForChild(child);
- child->setOverrideLogicalContentWidth(std::max(ZERO_LAYOUT_UNIT, childWidth));
- child->setChildNeedsLayout(true, MarkOnlyThis);
- child->layoutIfNeeded();
+ } else if (isColumnFlow() && child->style()->logicalWidth().isAuto()) {
+ // FIXME: If the child doesn't have orthogonal flow, then it already has an override width set, so use it.
+ if (hasOrthogonalFlow(child)) {
+ LayoutUnit childWidth = std::max(ZERO_LAYOUT_UNIT, lineCrossAxisExtent - crossAxisMarginExtentForChild(child));
+ childWidth = child->constrainLogicalWidthInRegionByMinMax(childWidth, childWidth, this);
+
+ if (childWidth != child->logicalWidth()) {
+ child->setOverrideLogicalContentWidth(childWidth);
+ child->setChildNeedsLayout(true, MarkOnlyThis);
+ child->layoutIfNeeded();
+ }
+ }
}
}
diff --git a/Source/WebCore/rendering/RenderFlowThread.cpp b/Source/WebCore/rendering/RenderFlowThread.cpp
index 429dad3a9..f3e47df47 100644
--- a/Source/WebCore/rendering/RenderFlowThread.cpp
+++ b/Source/WebCore/rendering/RenderFlowThread.cpp
@@ -107,26 +107,6 @@ void RenderFlowThread::removeRegionFromThread(RenderRegion* renderRegion)
checkRegionsWithStyling();
}
-class CurrentRenderFlowThreadMaintainer {
- WTF_MAKE_NONCOPYABLE(CurrentRenderFlowThreadMaintainer);
-public:
- CurrentRenderFlowThreadMaintainer(RenderFlowThread* renderFlowThread)
- : m_renderFlowThread(renderFlowThread)
- {
- RenderView* view = m_renderFlowThread->view();
- ASSERT(!view->flowThreadController()->currentRenderFlowThread());
- view->flowThreadController()->setCurrentRenderFlowThread(m_renderFlowThread);
- }
- ~CurrentRenderFlowThreadMaintainer()
- {
- RenderView* view = m_renderFlowThread->view();
- ASSERT(view->flowThreadController()->currentRenderFlowThread() == m_renderFlowThread);
- view->flowThreadController()->setCurrentRenderFlowThread(0);
- }
-private:
- RenderFlowThread* m_renderFlowThread;
-};
-
class CurrentRenderFlowThreadDisabler {
WTF_MAKE_NONCOPYABLE(CurrentRenderFlowThreadDisabler);
public:
@@ -793,4 +773,24 @@ bool RenderFlowThread::objectInFlowRegion(const RenderObject* object, const Rend
return false;
}
+CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer(RenderFlowThread* renderFlowThread)
+ : m_renderFlowThread(renderFlowThread)
+{
+ if (!m_renderFlowThread)
+ return;
+ RenderView* view = m_renderFlowThread->view();
+ ASSERT(!view->flowThreadController()->currentRenderFlowThread());
+ view->flowThreadController()->setCurrentRenderFlowThread(m_renderFlowThread);
+}
+
+CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer()
+{
+ if (!m_renderFlowThread)
+ return;
+ RenderView* view = m_renderFlowThread->view();
+ ASSERT(view->flowThreadController()->currentRenderFlowThread() == m_renderFlowThread);
+ view->flowThreadController()->setCurrentRenderFlowThread(0);
+}
+
+
} // namespace WebCore
diff --git a/Source/WebCore/rendering/RenderFlowThread.h b/Source/WebCore/rendering/RenderFlowThread.h
index 4730be8dc..34dec69d8 100644
--- a/Source/WebCore/rendering/RenderFlowThread.h
+++ b/Source/WebCore/rendering/RenderFlowThread.h
@@ -197,6 +197,15 @@ inline const RenderFlowThread* toRenderFlowThread(const RenderObject* object)
// This will catch anyone doing an unnecessary cast.
void toRenderFlowThread(const RenderFlowThread*);
+class CurrentRenderFlowThreadMaintainer {
+ WTF_MAKE_NONCOPYABLE(CurrentRenderFlowThreadMaintainer);
+public:
+ CurrentRenderFlowThreadMaintainer(RenderFlowThread*);
+ ~CurrentRenderFlowThreadMaintainer();
+private:
+ RenderFlowThread* m_renderFlowThread;
+};
+
} // namespace WebCore
#endif // RenderFlowThread_h
diff --git a/Source/WebCore/rendering/RenderInline.cpp b/Source/WebCore/rendering/RenderInline.cpp
index d58bfc1ab..b139bcb44 100644
--- a/Source/WebCore/rendering/RenderInline.cpp
+++ b/Source/WebCore/rendering/RenderInline.cpp
@@ -129,14 +129,14 @@ void RenderInline::updateBoxModelInfoFromStyle()
setHasReflection(false);
}
-static bool hasRelPositionedInlineAncestor(RenderObject* p)
+static RenderObject* inFlowPositionedInlineAncestor(RenderObject* p)
{
while (p && p->isRenderInline()) {
- if (p->isRelPositioned())
- return true;
+ if (p->isInFlowPositioned())
+ return p;
p = p->parent();
}
- return false;
+ return 0;
}
static void updateStyleOfAnonymousBlockContinuations(RenderObject* block, const RenderStyle* newStyle, const RenderStyle* oldStyle)
@@ -144,10 +144,10 @@ static void updateStyleOfAnonymousBlockContinuations(RenderObject* block, const
for (;block && block->isAnonymousBlock(); block = block->nextSibling()) {
if (!toRenderBlock(block)->isAnonymousBlockContinuation() || block->style()->position() == newStyle->position())
continue;
- // If we are no longer relatively positioned but our descendant block(s) still have a relatively positioned ancestor then
- // their containing anonymous block should keep its relative positioning.
+ // If we are no longer in-flow positioned but our descendant block(s) still have an in-flow positioned ancestor then
+ // their containing anonymous block should keep its in-flow positioning.
RenderInline* cont = toRenderBlock(block)->inlineElementContinuation();
- if (oldStyle->position() == RelativePosition && hasRelPositionedInlineAncestor(cont))
+ if (oldStyle->hasInFlowPosition() && inFlowPositionedInlineAncestor(cont))
continue;
RefPtr<RenderStyle> blockStyle = RenderStyle::createAnonymousStyleWithDisplay(block->style(), BLOCK);
blockStyle->setPosition(newStyle->position());
@@ -174,10 +174,10 @@ void RenderInline::styleDidChange(StyleDifference diff, const RenderStyle* oldSt
currCont->setContinuation(nextCont);
}
- // If an inline's relative positioning has changed then any descendant blocks will need to change their relative positioning accordingly.
+ // If an inline's in-flow positioning has changed then any descendant blocks will need to change their in-flow positioning accordingly.
// Do this by updating the position of the descendant blocks' containing anonymous blocks - there may be more than one.
- if (continuation && oldStyle && newStyle->position() != oldStyle->position()
- && (newStyle->position() == RelativePosition || (oldStyle->position() == RelativePosition))) {
+ if (continuation && oldStyle && newStyle->position() != oldStyle->position()
+ && (newStyle->hasInFlowPosition() || oldStyle->hasInFlowPosition())) {
// If any descendant blocks exist then they will be in the next anonymous block and its siblings.
RenderObject* block = containingBlock()->nextSibling();
ASSERT(block && block->isAnonymousBlock());
@@ -310,10 +310,10 @@ void RenderInline::addChildIgnoringContinuation(RenderObject* newChild, RenderOb
// the children after |beforeChild| and put them in a clone of this object.
RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), BLOCK);
- // If inside an inline affected by relative positioning the block needs to be affected by it too.
+ // If inside an inline affected by in-flow positioning the block needs to be affected by it too.
// Giving the block a layer like this allows it to collect the x/y offsets from inline parents later.
- if (hasRelPositionedInlineAncestor(this))
- newStyle->setPosition(RelativePosition);
+ if (RenderObject* positionedAncestor = inFlowPositionedInlineAncestor(this))
+ newStyle->setPosition(positionedAncestor->style()->position());
RenderBlock* newBox = new (renderArena()) RenderBlock(document() /* anonymous box */);
newBox->setStyle(newStyle.release());
@@ -969,7 +969,7 @@ LayoutRect RenderInline::clippedOverflowRectForRepaint(RenderBoxModelObject* rep
LayoutRect repaintRect(linesVisualOverflowBoundingBox());
bool hitRepaintContainer = false;
- // We need to add in the relative position offsets of any inlines (including us) up to our
+ // We need to add in the in-flow position offsets of any inlines (including us) up to our
// containing block.
RenderBlock* cb = containingBlock();
for (const RenderObject* inlineFlow = this; inlineFlow && inlineFlow->isRenderInline() && inlineFlow != cb;
@@ -978,8 +978,8 @@ LayoutRect RenderInline::clippedOverflowRectForRepaint(RenderBoxModelObject* rep
hitRepaintContainer = true;
break;
}
- if (inlineFlow->style()->position() == RelativePosition && inlineFlow->hasLayer())
- repaintRect.move(toRenderInline(inlineFlow)->layer()->relativePositionOffset());
+ if (inlineFlow->style()->hasInFlowPosition() && inlineFlow->hasLayer())
+ repaintRect.move(toRenderInline(inlineFlow)->layer()->offsetForInFlowPosition());
}
LayoutUnit outlineSize = style()->outlineSize();
@@ -1032,8 +1032,8 @@ void RenderInline::computeRectForRepaint(RenderBoxModelObject* repaintContainer,
// LayoutState is only valid for root-relative repainting
if (v->layoutStateEnabled() && !repaintContainer) {
LayoutState* layoutState = v->layoutState();
- if (style()->position() == RelativePosition && layer())
- rect.move(layer()->relativePositionOffset());
+ if (style()->hasInFlowPosition() && layer())
+ rect.move(layer()->offsetForInFlowPosition());
rect.move(layoutState->m_paintOffset);
if (layoutState->m_clipped)
rect.intersect(layoutState->m_clipRect);
@@ -1051,7 +1051,7 @@ void RenderInline::computeRectForRepaint(RenderBoxModelObject* repaintContainer,
LayoutPoint topLeft = rect.location();
- if (o->isBlockFlow() && !style()->isOutOfFlowPositioned()) {
+ if (o->isBlockFlow() && !style()->hasOutOfFlowPosition()) {
RenderBlock* cb = toRenderBlock(o);
if (cb->hasColumns()) {
LayoutRect repaintRect(topLeft, rect.size());
@@ -1061,12 +1061,12 @@ void RenderInline::computeRectForRepaint(RenderBoxModelObject* repaintContainer,
}
}
- if (style()->position() == RelativePosition && layer()) {
- // Apply the relative position offset when invalidating a rectangle. The layer
+ if (style()->hasInFlowPosition() && layer()) {
+ // Apply the in-flow position offset when invalidating a rectangle. The layer
// is translated, but the render box isn't, so we need to do this to get the
- // right dirty rect. Since this is called from RenderObject::setStyle, the relative position
+ // right dirty rect. Since this is called from RenderObject::setStyle, the relative position
// flag on the RenderObject has been cleared, so use the one on the style().
- topLeft += layer()->relativePositionOffset();
+ topLeft += layer()->offsetForInFlowPosition();
}
// FIXME: We ignore the lightweight clipping rect that controls use, since if |o| is in mid-layout,
@@ -1102,8 +1102,8 @@ LayoutSize RenderInline::offsetFromContainer(RenderObject* container, const Layo
ASSERT(container == this->container());
LayoutSize offset;
- if (isRelPositioned())
- offset += relativePositionOffset();
+ if (isInFlowPositioned())
+ offset += offsetForInFlowPosition();
container->adjustForColumns(offset, point);
@@ -1125,8 +1125,8 @@ void RenderInline::mapLocalToContainer(RenderBoxModelObject* repaintContainer, T
if (v->layoutStateEnabled() && !repaintContainer) {
LayoutState* layoutState = v->layoutState();
LayoutSize offset = layoutState->m_paintOffset;
- if (style()->position() == RelativePosition && layer())
- offset += layer()->relativePositionOffset();
+ if (style()->hasInFlowPosition() && layer())
+ offset += layer()->offsetForInFlowPosition();
transformState.move(offset);
return;
}
@@ -1311,12 +1311,12 @@ LayoutUnit RenderInline::baselinePosition(FontBaseline baselineType, bool firstL
return fontMetrics.ascent(baselineType) + (lineHeight(firstLine, direction, linePositionMode) - fontMetrics.height()) / 2;
}
-LayoutSize RenderInline::relativePositionedInlineOffset(const RenderBox* child) const
+LayoutSize RenderInline::offsetForInFlowPositionedInline(const RenderBox* child) const
{
// FIXME: This function isn't right with mixed writing modes.
- ASSERT(isRelPositioned());
- if (!isRelPositioned())
+ ASSERT(isInFlowPositioned());
+ if (!isInFlowPositioned())
return LayoutSize();
// When we have an enclosing relpositioned inline, we need to add in the offset of the first line
diff --git a/Source/WebCore/rendering/RenderInline.h b/Source/WebCore/rendering/RenderInline.h
index bb43289be..9adec42b0 100644
--- a/Source/WebCore/rendering/RenderInline.h
+++ b/Source/WebCore/rendering/RenderInline.h
@@ -72,7 +72,7 @@ public:
virtual void updateDragState(bool dragOn);
- LayoutSize relativePositionedInlineOffset(const RenderBox* child) const;
+ LayoutSize offsetForInFlowPositionedInline(const RenderBox* child) const;
virtual void addFocusRingRects(Vector<IntRect>&, const LayoutPoint&);
void paintOutline(GraphicsContext*, const LayoutPoint&);
@@ -124,7 +124,7 @@ private:
virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestPoint& pointInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) OVERRIDE;
- virtual bool requiresLayer() const { return isRelPositioned() || isTransparent() || hasMask() || hasFilter(); }
+ virtual bool requiresLayer() const { return isInFlowPositioned() || isTransparent() || hasMask() || hasFilter(); }
virtual LayoutUnit offsetLeft() const;
virtual LayoutUnit offsetTop() const;
diff --git a/Source/WebCore/rendering/RenderLayer.cpp b/Source/WebCore/rendering/RenderLayer.cpp
index 661d0eb08..edb3cf58d 100644
--- a/Source/WebCore/rendering/RenderLayer.cpp
+++ b/Source/WebCore/rendering/RenderLayer.cpp
@@ -847,8 +847,8 @@ void RenderLayer::updateLayerPosition()
LayoutSize offset = positionedParent->scrolledContentOffset();
localPoint -= offset;
- if (renderer()->isOutOfFlowPositioned() && positionedParent->renderer()->isRelPositioned() && positionedParent->renderer()->isRenderInline()) {
- LayoutSize offset = toRenderInline(positionedParent->renderer())->relativePositionedInlineOffset(toRenderBox(renderer()));
+ if (renderer()->isOutOfFlowPositioned() && positionedParent->renderer()->isInFlowPositioned() && positionedParent->renderer()->isRenderInline()) {
+ LayoutSize offset = toRenderInline(positionedParent->renderer())->offsetForInFlowPositionedInline(toRenderBox(renderer()));
localPoint += offset;
}
} else if (parent()) {
@@ -867,12 +867,12 @@ void RenderLayer::updateLayerPosition()
IntSize scrollOffset = parent()->scrolledContentOffset();
localPoint -= scrollOffset;
}
-
- if (renderer()->isRelPositioned()) {
- m_relativeOffset = renderer()->relativePositionOffset();
- localPoint.move(m_relativeOffset);
+
+ if (renderer()->isInFlowPositioned()) {
+ m_offsetForInFlowPosition = renderer()->offsetForInFlowPosition();
+ localPoint.move(m_offsetForInFlowPosition);
} else {
- m_relativeOffset = LayoutSize();
+ m_offsetForInFlowPosition = LayoutSize();
}
// FIXME: We'd really like to just get rid of the concept of a layer rectangle and rely on the renderers.
@@ -933,7 +933,7 @@ RenderLayer* RenderLayer::stackingContext() const
static inline bool isPositionedContainer(RenderLayer* layer)
{
RenderBoxModelObject* layerRenderer = layer->renderer();
- return layer->isRootLayer() || layerRenderer->isOutOfFlowPositioned() || layerRenderer->isRelPositioned() || layer->hasTransform();
+ return layer->isRootLayer() || layerRenderer->isOutOfFlowPositioned() || layerRenderer->isInFlowPositioned() || layer->hasTransform();
}
static inline bool isFixedPositionedContainer(RenderLayer* layer)
@@ -3950,8 +3950,7 @@ void RenderLayer::calculateClipRects(const RenderLayer* rootLayer, RenderRegion*
clipRects.setPosClipRect(clipRects.fixedClipRect());
clipRects.setOverflowClipRect(clipRects.fixedClipRect());
clipRects.setFixed(true);
- }
- else if (renderer()->style()->position() == RelativePosition)
+ } else if (renderer()->style()->hasInFlowPosition())
clipRects.setPosClipRect(clipRects.overflowClipRect());
else if (renderer()->style()->position() == AbsolutePosition)
clipRects.setOverflowClipRect(clipRects.posClipRect());
@@ -3976,7 +3975,7 @@ void RenderLayer::calculateClipRects(const RenderLayer* rootLayer, RenderRegion*
if (renderer()->style()->hasBorderRadius())
newOverflowClip.setHasRadius(true);
clipRects.setOverflowClipRect(intersection(newOverflowClip, clipRects.overflowClipRect()));
- if (renderer()->isOutOfFlowPositioned() || renderer()->isRelPositioned())
+ if (renderer()->isOutOfFlowPositioned() || renderer()->isInFlowPositioned())
clipRects.setPosClipRect(intersection(newOverflowClip, clipRects.posClipRect()));
}
if (renderer()->hasClip()) {
@@ -4779,7 +4778,7 @@ bool RenderLayer::shouldBeNormalFlowOnly() const
|| renderer()->isRenderIFrame()
|| (renderer()->style()->specifiesColumns() && !isRootLayer()))
&& !renderer()->isOutOfFlowPositioned()
- && !renderer()->isRelPositioned()
+ && !renderer()->isInFlowPositioned()
&& !renderer()->hasTransform()
#if ENABLE(CSS_FILTERS)
&& !renderer()->hasFilter()
diff --git a/Source/WebCore/rendering/RenderLayer.h b/Source/WebCore/rendering/RenderLayer.h
index 00c5c19d2..e4f790e05 100644
--- a/Source/WebCore/rendering/RenderLayer.h
+++ b/Source/WebCore/rendering/RenderLayer.h
@@ -402,7 +402,7 @@ public:
void updateBlendMode();
#endif
- const LayoutSize& relativePositionOffset() const { return m_relativeOffset; }
+ const LayoutSize& offsetForInFlowPosition() const { return m_offsetForInFlowPosition; }
void clearClipRectsIncludingDescendants(ClipRectsType typeToClear = AllClipRectTypes);
void clearClipRects(ClipRectsType typeToClear = AllClipRectTypes);
@@ -951,7 +951,7 @@ protected:
LayoutRect m_outlineBox;
// Our current relative position offset.
- LayoutSize m_relativeOffset;
+ LayoutSize m_offsetForInFlowPosition;
// Our (x,y) coordinates are in our parent layer's coordinate space.
LayoutPoint m_topLeft;
diff --git a/Source/WebCore/rendering/RenderListBox.cpp b/Source/WebCore/rendering/RenderListBox.cpp
index 944ea5f08..6376b098b 100644
--- a/Source/WebCore/rendering/RenderListBox.cpp
+++ b/Source/WebCore/rendering/RenderListBox.cpp
@@ -632,11 +632,6 @@ void RenderListBox::setScrollOffset(const IntPoint& offset)
scrollTo(offset.y());
}
-IntPoint RenderListBox::scrollPosition() const
-{
- return IntPoint(0, m_indexOffset);
-}
-
void RenderListBox::scrollTo(int newOffset)
{
if (newOffset == m_indexOffset)
diff --git a/Source/WebCore/rendering/RenderListBox.h b/Source/WebCore/rendering/RenderListBox.h
index d968c8717..496191206 100644
--- a/Source/WebCore/rendering/RenderListBox.h
+++ b/Source/WebCore/rendering/RenderListBox.h
@@ -101,28 +101,27 @@ private:
virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestPoint& pointInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) OVERRIDE;
// ScrollableArea interface.
- virtual int scrollSize(ScrollbarOrientation) const;
- virtual int scrollPosition(Scrollbar*) const;
- virtual void setScrollOffset(const IntPoint&);
- virtual IntPoint scrollPosition() const OVERRIDE;
- virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&);
- virtual bool isActive() const;
- virtual bool isScrollCornerVisible() const { return false; } // We don't support resize on list boxes yet. If we did these would have to change.
- virtual IntRect scrollCornerRect() const { return IntRect(); }
- virtual void invalidateScrollCornerRect(const IntRect&) { }
- virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const IntRect&) const;
- virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const IntRect&) const;
- virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, const IntPoint&) const;
- virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, const IntPoint&) const;
- virtual Scrollbar* verticalScrollbar() const { return m_vBar.get(); }
- virtual IntSize contentsSize() const;
- virtual int visibleHeight() const;
- virtual int visibleWidth() const;
- virtual IntPoint currentMousePosition() const;
- virtual bool shouldSuspendScrollAnimations() const;
- virtual bool isOnActivePage() const;
-
- virtual ScrollableArea* enclosingScrollableArea() const;
+ virtual int scrollSize(ScrollbarOrientation) const OVERRIDE;
+ virtual int scrollPosition(Scrollbar*) const OVERRIDE;
+ virtual void setScrollOffset(const IntPoint&) OVERRIDE;
+ virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&) OVERRIDE;
+ virtual bool isActive() const OVERRIDE;
+ virtual bool isScrollCornerVisible() const OVERRIDE { return false; } // We don't support resize on list boxes yet. If we did these would have to change.
+ virtual IntRect scrollCornerRect() const OVERRIDE { return IntRect(); }
+ virtual void invalidateScrollCornerRect(const IntRect&) OVERRIDE { }
+ virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const IntRect&) const OVERRIDE;
+ virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const IntRect&) const OVERRIDE;
+ virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, const IntPoint&) const OVERRIDE;
+ virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, const IntPoint&) const OVERRIDE;
+ virtual Scrollbar* verticalScrollbar() const OVERRIDE { return m_vBar.get(); }
+ virtual IntSize contentsSize() const OVERRIDE;
+ virtual int visibleHeight() const OVERRIDE;
+ virtual int visibleWidth() const OVERRIDE;
+ virtual IntPoint currentMousePosition() const OVERRIDE;
+ virtual bool shouldSuspendScrollAnimations() const OVERRIDE;
+ virtual bool isOnActivePage() const OVERRIDE;
+
+ virtual ScrollableArea* enclosingScrollableArea() const OVERRIDE;
virtual IntRect scrollableAreaBoundingBox() const OVERRIDE;
// NOTE: This should only be called by the overriden setScrollOffset from ScrollableArea.
diff --git a/Source/WebCore/rendering/RenderObject.cpp b/Source/WebCore/rendering/RenderObject.cpp
index 391c11988..933a559c4 100755
--- a/Source/WebCore/rendering/RenderObject.cpp
+++ b/Source/WebCore/rendering/RenderObject.cpp
@@ -639,7 +639,7 @@ void RenderObject::markContainingBlocksForLayout(bool scheduleRelayout, RenderOb
RenderObject* container = object->container();
if (!container && !object->isRenderView())
return;
- if (!last->isText() && last->style()->isOutOfFlowPositioned()) {
+ if (!last->isText() && last->style()->hasOutOfFlowPosition()) {
bool willSkipRelativelyPositionedInlines = !object->isRenderBlock() || object->isAnonymousBlock() || object->isRenderFlowThreadContainer();
// Skip relatively positioned inlines and anonymous blocks (and the flow threads container) to get to the enclosing RenderBlock.
while (object && (!object->isRenderBlock() || object->isAnonymousBlock() || object->isRenderFlowThreadContainer()))
@@ -690,7 +690,7 @@ void RenderObject::setPreferredLogicalWidthsDirty(bool shouldBeDirty, MarkingBeh
{
bool alreadyDirty = preferredLogicalWidthsDirty();
m_bitfields.setPreferredLogicalWidthsDirty(shouldBeDirty);
- if (shouldBeDirty && !alreadyDirty && markParents == MarkContainingBlockChain && (isText() || !style()->isOutOfFlowPositioned()))
+ if (shouldBeDirty && !alreadyDirty && markParents == MarkContainingBlockChain && (isText() || !style()->hasOutOfFlowPosition()))
invalidateContainerPreferredLogicalWidths();
}
@@ -707,7 +707,7 @@ void RenderObject::invalidateContainerPreferredLogicalWidths()
break;
o->m_bitfields.setPreferredLogicalWidthsDirty(true);
- if (o->style()->isOutOfFlowPositioned())
+ if (o->style()->hasOutOfFlowPosition())
// A positioned object has no effect on the min/max width of its containing block ever.
// We can optimize this case and not go up any further.
break;
@@ -764,7 +764,7 @@ RenderBlock* RenderObject::containingBlock() const
if (o->hasTransform() && o->isRenderBlock())
break;
- if (o->style()->position() == RelativePosition && o->isInline() && !o->isReplaced()) {
+ if (o->style()->hasInFlowPosition() && o->isInline() && !o->isReplaced()) {
o = o->containingBlock();
break;
}
@@ -2435,9 +2435,8 @@ void RenderObject::willBeRemovedFromTree()
parent()->dirtyLinesFromChangedChild(this);
if (inRenderFlowThread()) {
- if (isBox())
- enclosingRenderFlowThread()->removeRenderBoxRegionInfo(toRenderBox(this));
- enclosingRenderFlowThread()->clearRenderObjectCustomStyle(this);
+ ASSERT(enclosingRenderFlowThread());
+ enclosingRenderFlowThread()->removeFlowChildInfo(this);
}
if (RenderNamedFlowThread* containerFlowThread = parent()->enclosingRenderNamedFlowThread())
diff --git a/Source/WebCore/rendering/RenderObject.h b/Source/WebCore/rendering/RenderObject.h
index 3ca2a2255..05ccea48d 100644
--- a/Source/WebCore/rendering/RenderObject.h
+++ b/Source/WebCore/rendering/RenderObject.h
@@ -511,9 +511,11 @@ public:
virtual RenderBoxModelObject* virtualContinuation() const { return 0; }
bool isFloating() const { return m_bitfields.floating(); }
+
bool isOutOfFlowPositioned() const { return m_bitfields.positioned(); } // absolute or fixed positioning
bool isInFlowPositioned() const { return m_bitfields.relPositioned(); } // relative positioning
bool isRelPositioned() const { return m_bitfields.relPositioned(); } // relative positioning
+
bool isText() const { return m_bitfields.isText(); }
bool isBox() const { return m_bitfields.isBox(); }
bool isInline() const { return m_bitfields.isInline(); } // inline object
diff --git a/Source/WebCore/rendering/RenderObjectChildList.cpp b/Source/WebCore/rendering/RenderObjectChildList.cpp
index bdb5516b7..98a287627 100644
--- a/Source/WebCore/rendering/RenderObjectChildList.cpp
+++ b/Source/WebCore/rendering/RenderObjectChildList.cpp
@@ -397,7 +397,7 @@ void RenderObjectChildList::updateBeforeAfterContent(RenderObject* owner, Pseudo
return;
if (owner->isRenderInline() && !pseudoElementStyle->isDisplayInlineType() && !pseudoElementStyle->isFloating() &&
- !(pseudoElementStyle->position() == AbsolutePosition || pseudoElementStyle->position() == FixedPosition))
+ !pseudoElementStyle->hasOutOfFlowPosition())
// According to the CSS2 spec (the end of section 12.1), the only allowed
// display values for the pseudo style are NONE and INLINE for inline flows.
// FIXME: CSS2.1 lifted this restriction, but block display types will crash.
diff --git a/Source/WebCore/rendering/RenderTable.cpp b/Source/WebCore/rendering/RenderTable.cpp
index 77428c499..b5c308373 100644
--- a/Source/WebCore/rendering/RenderTable.cpp
+++ b/Source/WebCore/rendering/RenderTable.cpp
@@ -197,16 +197,17 @@ void RenderTable::addChild(RenderObject* child, RenderObject* beforeChild)
section->addChild(child);
}
-void RenderTable::removeChild(RenderObject* oldChild)
+void RenderTable::removeCaption(const RenderTableCaption* oldCaption)
{
- RenderBox::removeChild(oldChild);
-
- size_t index = m_captions.find(oldChild);
- if (index != notFound) {
- m_captions.remove(index);
- if (node())
- node()->setNeedsStyleRecalc();
- }
+ size_t index = m_captions.find(oldCaption);
+ ASSERT(index != notFound);
+ m_captions.remove(index);
+
+ // FIXME: The rest of this function is probably not needed since we have
+ // implemented proper multiple captions support (see bug 58249).
+ if (node())
+ node()->setNeedsStyleRecalc();
+
setNeedsSectionRecalc();
}
diff --git a/Source/WebCore/rendering/RenderTable.h b/Source/WebCore/rendering/RenderTable.h
index e4c70f47f..bbafdb716 100644
--- a/Source/WebCore/rendering/RenderTable.h
+++ b/Source/WebCore/rendering/RenderTable.h
@@ -231,6 +231,8 @@ public:
const BorderValue& tableStartBorderAdjoiningCell(const RenderTableCell*) const;
const BorderValue& tableEndBorderAdjoiningCell(const RenderTableCell*) const;
+ void removeCaption(const RenderTableCaption*);
+
protected:
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
@@ -241,8 +243,6 @@ private:
virtual bool avoidsFloats() const { return true; }
- virtual void removeChild(RenderObject* oldChild);
-
virtual void paint(PaintInfo&, const LayoutPoint&);
virtual void paintObject(PaintInfo&, const LayoutPoint&);
virtual void paintBoxDecorations(PaintInfo&, const LayoutPoint&);
diff --git a/Source/WebCore/rendering/RenderTableCaption.cpp b/Source/WebCore/rendering/RenderTableCaption.cpp
index b84891c7f..9785f372d 100644
--- a/Source/WebCore/rendering/RenderTableCaption.cpp
+++ b/Source/WebCore/rendering/RenderTableCaption.cpp
@@ -20,6 +20,8 @@
#include "config.h"
#include "RenderTableCaption.h"
+#include "RenderTable.h"
+
namespace WebCore {
RenderTableCaption::RenderTableCaption(Node* node)
@@ -37,4 +39,16 @@ LayoutUnit RenderTableCaption::containingBlockLogicalWidthForContent() const
return cb->logicalWidth();
}
+void RenderTableCaption::willBeRemovedFromTree()
+{
+ RenderBlock::willBeRemovedFromTree();
+
+ table()->removeCaption(this);
+}
+
+RenderTable* RenderTableCaption::table() const
+{
+ return toRenderTable(parent());
+}
+
}
diff --git a/Source/WebCore/rendering/RenderTableCaption.h b/Source/WebCore/rendering/RenderTableCaption.h
index 23079c0e9..b505ebe10 100644
--- a/Source/WebCore/rendering/RenderTableCaption.h
+++ b/Source/WebCore/rendering/RenderTableCaption.h
@@ -24,6 +24,8 @@
namespace WebCore {
+class RenderTable;
+
class RenderTableCaption : public RenderBlock {
public:
explicit RenderTableCaption(Node*);
@@ -32,6 +34,10 @@ public:
private:
virtual bool isTableCaption() const OVERRIDE { return true; }
+
+ virtual void willBeRemovedFromTree() OVERRIDE;
+
+ RenderTable* table() const;
};
inline RenderTableCaption* toRenderTableCaption(RenderObject* object)
diff --git a/Source/WebCore/rendering/RenderTableCol.cpp b/Source/WebCore/rendering/RenderTableCol.cpp
index 97cd8cc3e..7c5e9ed10 100644
--- a/Source/WebCore/rendering/RenderTableCol.cpp
+++ b/Source/WebCore/rendering/RenderTableCol.cpp
@@ -69,6 +69,16 @@ void RenderTableCol::updateFromElement()
setNeedsLayoutAndPrefWidthsRecalc();
}
+void RenderTableCol::willBeRemovedFromTree()
+{
+ RenderBox::willBeRemovedFromTree();
+
+ // We don't really need to recompute our sections, but we need to update our
+ // column count and whether we have a column. Currently, we only have one
+ // size-fit-all flag but we may have to consider splitting it.
+ table()->setNeedsSectionRecalc();
+}
+
bool RenderTableCol::isChildAllowed(RenderObject* child, RenderStyle* style) const
{
// We cannot use isTableColumn here as style() may return 0.
diff --git a/Source/WebCore/rendering/RenderTableCol.h b/Source/WebCore/rendering/RenderTableCol.h
index 62f3288e8..887afd6c8 100644
--- a/Source/WebCore/rendering/RenderTableCol.h
+++ b/Source/WebCore/rendering/RenderTableCol.h
@@ -75,6 +75,8 @@ private:
virtual bool isRenderTableCol() const OVERRIDE { return true; }
virtual void updateFromElement();
+ virtual void willBeRemovedFromTree() OVERRIDE;
+
virtual bool isChildAllowed(RenderObject*, RenderStyle*) const;
virtual bool canHaveChildren() const;
virtual bool requiresLayer() const { return false; }
diff --git a/Source/WebCore/rendering/RenderView.cpp b/Source/WebCore/rendering/RenderView.cpp
index 02b54c660..8cc34a330 100644
--- a/Source/WebCore/rendering/RenderView.cpp
+++ b/Source/WebCore/rendering/RenderView.cpp
@@ -315,7 +315,7 @@ void RenderView::paintBoxDecorations(PaintInfo& paintInfo, const LayoutPoint&)
frameView()->setCannotBlitToWindow(); // The parent must show behind the child.
else {
Color baseColor = frameView()->baseBackgroundColor();
- if (baseColor.alpha() > 0) {
+ if (baseColor.alpha()) {
CompositeOperator previousOperator = paintInfo.context->compositeOperation();
paintInfo.context->setCompositeOperation(CompositeCopy);
paintInfo.context->fillRect(paintInfo.rect, baseColor, style()->colorSpace());
diff --git a/Source/WebCore/rendering/TextAutosizer.cpp b/Source/WebCore/rendering/TextAutosizer.cpp
index 6122962b2..4cd735a1c 100644
--- a/Source/WebCore/rendering/TextAutosizer.cpp
+++ b/Source/WebCore/rendering/TextAutosizer.cpp
@@ -107,6 +107,34 @@ void TextAutosizer::setMultiplier(RenderObject* renderer, float multiplier)
renderer->setStyle(newStyle.release());
}
+float TextAutosizer::computeAutosizedFontSize(float specifiedSize, float multiplier)
+{
+ // Somewhat arbitrary "pleasant" font size.
+ const float pleasantSize = 16;
+
+ // Multiply fonts that the page author has specified to be larger than
+ // pleasantSize by less and less, until huge fonts are not increased at all.
+ // For specifiedSize between 0 and pleasantSize we directly apply the
+ // multiplier; hence for specifiedSize == pleasantSize, computedSize will be
+ // multiplier * pleasantSize. For greater specifiedSizes we want to
+ // gradually fade out the multiplier, so for every 1px increase in
+ // specifiedSize beyond pleasantSize we will only increase computedSize
+ // by gradientAfterPleasantSize px until we meet the
+ // computedSize = specifiedSize line, after which we stay on that line (so
+ // then every 1px increase in specifiedSize increases computedSize by 1px).
+ const float gradientAfterPleasantSize = 0.5;
+
+ float computedSize;
+ if (specifiedSize <= pleasantSize)
+ computedSize = multiplier * specifiedSize;
+ else {
+ computedSize = multiplier * pleasantSize + gradientAfterPleasantSize * (specifiedSize - pleasantSize);
+ if (computedSize < specifiedSize)
+ computedSize = specifiedSize;
+ }
+ return computedSize;
+}
+
bool TextAutosizer::isNotAnAutosizingContainer(const RenderObject* renderer)
{
// "Autosizing containers" are the smallest unit for which we can enable/disable
diff --git a/Source/WebCore/rendering/TextAutosizer.h b/Source/WebCore/rendering/TextAutosizer.h
index 3524f5f95..c8ade00f7 100644
--- a/Source/WebCore/rendering/TextAutosizer.h
+++ b/Source/WebCore/rendering/TextAutosizer.h
@@ -51,6 +51,8 @@ public:
bool processSubtree(RenderObject* layoutRoot);
+ static float computeAutosizedFontSize(float specifiedSize, float multiplier);
+
private:
explicit TextAutosizer(Document*);
diff --git a/Source/WebCore/rendering/style/RenderStyle.cpp b/Source/WebCore/rendering/style/RenderStyle.cpp
index 37d98904e..b1b5faab0 100644
--- a/Source/WebCore/rendering/style/RenderStyle.cpp
+++ b/Source/WebCore/rendering/style/RenderStyle.cpp
@@ -43,6 +43,10 @@
#include <wtf/StdLibExtras.h>
#include <algorithm>
+#if ENABLE(TEXT_AUTOSIZING)
+#include "TextAutosizer.h"
+#endif
+
using namespace std;
namespace WebCore {
@@ -1223,7 +1227,7 @@ Length RenderStyle::lineHeight() const
// too, though this involves messily poking into CalcExpressionLength.
float multiplier = textAutosizingMultiplier();
if (multiplier > 1 && lh.isFixed())
- return Length(lh.value() * multiplier, Fixed);
+ return Length(TextAutosizer::computeAutosizedFontSize(lh.value(), multiplier), Fixed);
#endif
return lh;
}
@@ -1262,8 +1266,7 @@ void RenderStyle::setFontSize(float size)
#if ENABLE(TEXT_AUTOSIZING)
float multiplier = textAutosizingMultiplier();
if (multiplier > 1) {
- // FIXME: Large font sizes needn't be multiplied as much since they are already more legible.
- desc.setComputedSize(size * multiplier);
+ desc.setComputedSize(TextAutosizer::computeAutosizedFontSize(size, multiplier));
}
#endif
diff --git a/Source/WebCore/rendering/style/RenderStyle.h b/Source/WebCore/rendering/style/RenderStyle.h
index 011950c8e..2378c7a72 100644
--- a/Source/WebCore/rendering/style/RenderStyle.h
+++ b/Source/WebCore/rendering/style/RenderStyle.h
@@ -439,7 +439,7 @@ public:
bool hasBackground() const
{
Color color = visitedDependentColor(CSSPropertyBackgroundColor);
- if (color.isValid() && color.alpha() > 0)
+ if (color.isValid() && color.alpha())
return true;
return hasBackgroundImage();
}
@@ -496,10 +496,10 @@ public:
Length bottom() const { return surround->offset.bottom(); }
// Accessors for positioned object edges that take into account writing mode.
- Length logicalLeft() const { return surround->offset.logicalLeft(this); }
- Length logicalRight() const { return surround->offset.logicalRight(this); }
- Length logicalTop() const { return surround->offset.before(this); }
- Length logicalBottom() const { return surround->offset.after(this); }
+ Length logicalLeft() const { return surround->offset.logicalLeft(writingMode()); }
+ Length logicalRight() const { return surround->offset.logicalRight(writingMode()); }
+ Length logicalTop() const { return surround->offset.before(writingMode()); }
+ Length logicalBottom() const { return surround->offset.after(writingMode()); }
// Whether or not a positioned element requires normal flow x/y to be computed
// to determine its position.
@@ -509,7 +509,8 @@ public:
bool hasStaticBlockPosition(bool horizontal) const { return horizontal ? hasAutoTopAndBottom() : hasAutoLeftAndRight(); }
EPosition position() const { return static_cast<EPosition>(noninherited_flags._position); }
- bool isOutOfFlowPositioned() const { return position() == AbsolutePosition || position() == FixedPosition; }
+ bool hasOutOfFlowPosition() const { return position() == AbsolutePosition || position() == FixedPosition; }
+ bool hasInFlowPosition() const { return position() == RelativePosition || position() == StickyPosition; }
EFloat floating() const { return static_cast<EFloat>(noninherited_flags._floating); }
Length width() const { return m_box->width(); }
@@ -728,24 +729,24 @@ public:
Length marginBottom() const { return surround->margin.bottom(); }
Length marginLeft() const { return surround->margin.left(); }
Length marginRight() const { return surround->margin.right(); }
- Length marginBefore() const { return surround->margin.before(this); }
- Length marginAfter() const { return surround->margin.after(this); }
- Length marginStart() const { return surround->margin.start(this); }
- Length marginEnd() const { return surround->margin.end(this); }
- Length marginStartUsing(const RenderStyle* otherStyle) const { return surround->margin.start(otherStyle); }
- Length marginEndUsing(const RenderStyle* otherStyle) const { return surround->margin.end(otherStyle); }
- Length marginBeforeUsing(const RenderStyle* otherStyle) const { return surround->margin.before(otherStyle); }
- Length marginAfterUsing(const RenderStyle* otherStyle) const { return surround->margin.after(otherStyle); }
+ Length marginBefore() const { return surround->margin.before(writingMode()); }
+ Length marginAfter() const { return surround->margin.after(writingMode()); }
+ Length marginStart() const { return surround->margin.start(writingMode(), direction()); }
+ Length marginEnd() const { return surround->margin.end(writingMode(), direction()); }
+ Length marginStartUsing(const RenderStyle* otherStyle) const { return surround->margin.start(otherStyle->writingMode(), otherStyle->direction()); }
+ Length marginEndUsing(const RenderStyle* otherStyle) const { return surround->margin.end(otherStyle->writingMode(), otherStyle->direction()); }
+ Length marginBeforeUsing(const RenderStyle* otherStyle) const { return surround->margin.before(otherStyle->writingMode()); }
+ Length marginAfterUsing(const RenderStyle* otherStyle) const { return surround->margin.after(otherStyle->writingMode()); }
LengthBox paddingBox() const { return surround->padding; }
Length paddingTop() const { return surround->padding.top(); }
Length paddingBottom() const { return surround->padding.bottom(); }
Length paddingLeft() const { return surround->padding.left(); }
Length paddingRight() const { return surround->padding.right(); }
- Length paddingBefore() const { return surround->padding.before(this); }
- Length paddingAfter() const { return surround->padding.after(this); }
- Length paddingStart() const { return surround->padding.start(this); }
- Length paddingEnd() const { return surround->padding.end(this); }
+ Length paddingBefore() const { return surround->padding.before(writingMode()); }
+ Length paddingAfter() const { return surround->padding.after(writingMode()); }
+ Length paddingStart() const { return surround->padding.start(writingMode(), direction()); }
+ Length paddingEnd() const { return surround->padding.end(writingMode(), direction()); }
ECursor cursor() const { return static_cast<ECursor>(inherited_flags._cursor_style); }
@@ -955,8 +956,11 @@ public:
ETextSecurity textSecurity() const { return static_cast<ETextSecurity>(rareInheritedData->textSecurity); }
WritingMode writingMode() const { return static_cast<WritingMode>(inherited_flags.m_writingMode); }
+ // Lines have horizontal orientation; modes horizontal-tb or horizontal-bt.
bool isHorizontalWritingMode() const { return writingMode() == TopToBottomWritingMode || writingMode() == BottomToTopWritingMode; }
+ // Bottom of the line occurs earlier in the block; modes vertical-rl or horizontal-bt.
bool isFlippedLinesWritingMode() const { return writingMode() == LeftToRightWritingMode || writingMode() == BottomToTopWritingMode; }
+ // Block progression increases in the opposite direction to normal; modes vertical-rl or horizontal-bt.
bool isFlippedBlocksWritingMode() const { return writingMode() == RightToLeftWritingMode || writingMode() == BottomToTopWritingMode; }
#if ENABLE(CSS_IMAGE_ORIENTATION)
diff --git a/Source/WebCore/rendering/style/RenderStyleConstants.h b/Source/WebCore/rendering/style/RenderStyleConstants.h
index 880b62243..6d967cba3 100644
--- a/Source/WebCore/rendering/style/RenderStyleConstants.h
+++ b/Source/WebCore/rendering/style/RenderStyleConstants.h
@@ -130,11 +130,6 @@ enum ETableLayout {
TAUTO, TFIXED
};
-// CSS Text Layout Module Level 3: Vertical writing support
-enum WritingMode {
- TopToBottomWritingMode, RightToLeftWritingMode, LeftToRightWritingMode, BottomToTopWritingMode
-};
-
enum TextCombine {
TextCombineNone, TextCombineHorizontal
};
diff --git a/Source/WebKit/blackberry/Api/BackingStore.cpp b/Source/WebKit/blackberry/Api/BackingStore.cpp
index 878665054..b86cc5d11 100644
--- a/Source/WebKit/blackberry/Api/BackingStore.cpp
+++ b/Source/WebKit/blackberry/Api/BackingStore.cpp
@@ -75,7 +75,6 @@ using BlackBerry::Platform::IntSize;
namespace BlackBerry {
namespace WebKit {
-const int s_renderTimerTimeout = 1.0;
WebPage* BackingStorePrivate::s_currentBackingStoreOwner = 0;
typedef std::pair<int, int> Divisor;
@@ -217,8 +216,6 @@ BackingStorePrivate::BackingStorePrivate()
m_frontState = reinterpret_cast<unsigned>(new BackingStoreGeometry);
m_backState = reinterpret_cast<unsigned>(new BackingStoreGeometry);
- m_renderTimer = adoptPtr(new Timer<BackingStorePrivate>(this, &BackingStorePrivate::renderOnTimer));
-
// Need a recursive mutex to achieve a global lock.
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
@@ -500,62 +497,27 @@ bool BackingStorePrivate::shouldPerformRegularRenderJobs() const
return shouldPerformRenderJobs() && !m_suspendRegularRenderJobs;
}
-void BackingStorePrivate::startRenderTimer()
-{
- // Called when render queue has a new job added.
- if (m_renderTimer->isActive() || m_renderQueue->isEmpty(!m_suspendRegularRenderJobs))
- return;
-
-#if DEBUG_BACKINGSTORE
- BlackBerry::Platform::log(BlackBerry::Platform::LogLevelCritical, "BackingStorePrivate::startRenderTimer time=%f", WTF::currentTime());
-#endif
- m_renderTimer->startOneShot(s_renderTimerTimeout);
-}
-
-void BackingStorePrivate::stopRenderTimer()
+static const BlackBerry::Platform::Message::Type RenderJobMessageType = BlackBerry::Platform::Message::generateUniqueMessageType();
+class RenderJobMessage : public BlackBerry::Platform::ExecutableMessage
{
- if (!m_renderTimer->isActive())
- return;
-
- // Called when we render something to restart.
-#if DEBUG_BACKINGSTORE
- BlackBerry::Platform::log(BlackBerry::Platform::LogLevelCritical, "BackingStorePrivate::stopRenderTimer time=%f", WTF::currentTime());
-#endif
- m_renderTimer->stop();
-}
+public:
+ RenderJobMessage(BlackBerry::Platform::MessageDelegate* delegate)
+ : BlackBerry::Platform::ExecutableMessage(delegate, BlackBerry::Platform::ExecutableMessage::UniqueCoalescing, RenderJobMessageType)
+ { }
+};
-void BackingStorePrivate::renderOnTimer(WebCore::Timer<BackingStorePrivate>*)
+void BackingStorePrivate::dispatchRenderJob()
{
- // This timer is a third method of starting a render operation that is a catch-all. If more
- // than s_renderTimerTimeout elapses with no rendering taking place and render jobs in the queue, then
- // renderOnTimer will be called which will actually render.
- if (!shouldPerformRenderJobs())
- return;
-
-#if DEBUG_BACKINGSTORE
- BlackBerry::Platform::log(BlackBerry::Platform::LogLevelCritical, "BackingStorePrivate::renderOnTimer time=%f", WTF::currentTime());
-#endif
- while (m_renderQueue->hasCurrentVisibleZoomJob() || m_renderQueue->hasCurrentVisibleScrollJob())
- m_renderQueue->render(!m_suspendRegularRenderJobs);
-
- if (shouldPerformRegularRenderJobs() && m_renderQueue->hasCurrentRegularRenderJob())
- m_renderQueue->renderAllCurrentRegularRenderJobs();
-
-#if USE(ACCELERATED_COMPOSITING)
- drawLayersOnCommitIfNeeded();
-#endif
+ BlackBerry::Platform::MessageDelegate* messageDelegate = BlackBerry::Platform::createMethodDelegate(&BackingStorePrivate::renderJob, this);
+ BlackBerry::Platform::webKitThreadMessageClient()->dispatchMessage(new RenderJobMessage(messageDelegate));
}
-void BackingStorePrivate::renderOnIdle()
+void BackingStorePrivate::renderJob()
{
ASSERT(shouldPerformRenderJobs());
- // Let the render queue know that we entered a new event queue cycle
- // so it can determine if it is under pressure.
- m_renderQueue->eventQueueCycled();
-
#if DEBUG_BACKINGSTORE
- BlackBerry::Platform::log(BlackBerry::Platform::LogLevelCritical, "BackingStorePrivate::renderOnIdle");
+ BlackBerry::Platform::logAlways(BlackBerry::Platform::LogLevelCritical, "BackingStorePrivate::renderJob");
#endif
m_renderQueue->render(!m_suspendRegularRenderJobs);
@@ -563,41 +525,9 @@ void BackingStorePrivate::renderOnIdle()
#if USE(ACCELERATED_COMPOSITING)
drawLayersOnCommitIfNeeded();
#endif
-}
-
-bool BackingStorePrivate::willFireTimer()
-{
- // Let the render queue know that we entered a new event queue cycle
- // so it can determine if it is under pressure.
- m_renderQueue->eventQueueCycled();
-
- if (!shouldPerformRegularRenderJobs() || !m_renderQueue->hasCurrentRegularRenderJob() || !m_renderQueue->currentRegularRenderJobBatchUnderPressure())
- return true;
-
-#if DEBUG_BACKINGSTORE
- BlackBerry::Platform::log(BlackBerry::Platform::LogLevelCritical, "BackingStorePrivate::willFireTimer");
-#endif
-
- // We've detected that the regular render jobs are coming under pressure likely
- // due to timers firing producing invalidation jobs and our efforts to break them
- // up into bite size pieces has produced a situation where we can not complete
- // a batch of them before receiving more that intersect them which causes us
- // to start the batch over. To mitigate this we have to empty the current batch
- // when this is detected.
-
- // We still want to perform priority jobs first to avoid redundant paints.
- while (m_renderQueue->hasCurrentVisibleZoomJob() || m_renderQueue->hasCurrentVisibleScrollJob())
- m_renderQueue->render(!m_suspendRegularRenderJobs);
-
- if (m_renderQueue->hasCurrentRegularRenderJob())
- m_renderQueue->renderAllCurrentRegularRenderJobs();
-#if USE(ACCELERATED_COMPOSITING)
- drawLayersOnCommitIfNeeded();
-#endif
-
- // Let the caller yield and reschedule the timer.
- return false;
+ if (shouldPerformRenderJobs())
+ dispatchRenderJob();
}
Platform::IntRect BackingStorePrivate::expandedContentsRect() const
@@ -2790,16 +2720,6 @@ void BackingStore::repaint(int x, int y, int width, int height,
d->repaint(Platform::IntRect(x, y, width, height), contentChanged, immediate);
}
-bool BackingStore::hasRenderJobs() const
-{
- return d->shouldPerformRenderJobs();
-}
-
-void BackingStore::renderOnIdle()
-{
- d->renderOnIdle();
-}
-
bool BackingStore::isDirectRenderingToWindow() const
{
BackingStoreMutexLocker locker(d);
diff --git a/Source/WebKit/blackberry/Api/BackingStore.h b/Source/WebKit/blackberry/Api/BackingStore.h
index 6ac9c38fa..c3185dc44 100644
--- a/Source/WebKit/blackberry/Api/BackingStore.h
+++ b/Source/WebKit/blackberry/Api/BackingStore.h
@@ -63,9 +63,6 @@ public:
void blitContents(const BlackBerry::Platform::IntRect& dstRect, const BlackBerry::Platform::IntRect& contents);
void repaint(int x, int y, int width, int height, bool contentChanged, bool immediate);
- bool hasRenderJobs() const;
- void renderOnIdle();
-
// In the defers blit mode, any blit requests will just return early, and
// a blit job will be queued that is executed by calling blitOnIdle().
bool defersBlit() const;
diff --git a/Source/WebKit/blackberry/Api/BackingStore_p.h b/Source/WebKit/blackberry/Api/BackingStore_p.h
index c29684717..77eeab951 100644
--- a/Source/WebKit/blackberry/Api/BackingStore_p.h
+++ b/Source/WebKit/blackberry/Api/BackingStore_p.h
@@ -131,11 +131,8 @@ public:
bool shouldSuppressNonVisibleRegularRenderJobs() const;
bool shouldPerformRenderJobs() const;
bool shouldPerformRegularRenderJobs() const;
- void startRenderTimer();
- void stopRenderTimer();
- void renderOnTimer(WebCore::Timer<BackingStorePrivate>*);
- void renderOnIdle();
- bool willFireTimer();
+ void dispatchRenderJob();
+ void renderJob();
// Set of helper methods for the scrollBackingStore() method.
Platform::IntRect contentsRect() const;
@@ -364,9 +361,6 @@ public:
Platform::IntRect m_visibleTileBufferRect;
- // Last resort timer for rendering.
- OwnPtr<WebCore::Timer<BackingStorePrivate> > m_renderTimer;
-
pthread_mutex_t m_mutex;
#if USE(ACCELERATED_COMPOSITING)
diff --git a/Source/WebKit/blackberry/Api/InRegionScroller.cpp b/Source/WebKit/blackberry/Api/InRegionScroller.cpp
index 205ef898b..aaf40168c 100644
--- a/Source/WebKit/blackberry/Api/InRegionScroller.cpp
+++ b/Source/WebKit/blackberry/Api/InRegionScroller.cpp
@@ -33,6 +33,7 @@
#include "RenderLayerBacking.h"
#include "RenderObject.h"
#include "RenderView.h"
+#include "SelectionHandler.h"
#include "WebPage_p.h"
using namespace WebCore;
@@ -65,12 +66,12 @@ bool InRegionScroller::setScrollPositionCompositingThread(unsigned camouflagedLa
return d->setScrollPositionCompositingThread(camouflagedLayer, d->m_webPage->mapFromTransformed(scrollPosition));
}
-bool InRegionScroller::setScrollPositionWebKitThread(unsigned camouflagedLayer, const Platform::IntPoint& scrollPosition)
+bool InRegionScroller::setScrollPositionWebKitThread(unsigned camouflagedLayer, const Platform::IntPoint& scrollPosition, bool supportsAcceleratedScrolling)
{
ASSERT(Platform::webKitThreadMessageClient()->isCurrentThread());
// FIXME: Negative values won't work with map{To,From}Transform methods.
- return d->setScrollPositionWebKitThread(camouflagedLayer, d->m_webPage->mapFromTransformed(scrollPosition));
+ return d->setScrollPositionWebKitThread(camouflagedLayer, d->m_webPage->mapFromTransformed(scrollPosition), supportsAcceleratedScrolling);
}
InRegionScrollerPrivate::InRegionScrollerPrivate(WebPagePrivate* webPagePrivate)
@@ -118,16 +119,25 @@ bool InRegionScrollerPrivate::setScrollPositionCompositingThread(unsigned camouf
return true;
}
-bool InRegionScrollerPrivate::setScrollPositionWebKitThread(unsigned camouflagedLayer, const WebCore::IntPoint& scrollPosition)
+bool InRegionScrollerPrivate::setScrollPositionWebKitThread(unsigned camouflagedLayer, const WebCore::IntPoint& scrollPosition, bool supportsAcceleratedScrolling)
{
RenderLayer* layer = 0;
- LayerWebKitThread* layerWebKitThread = reinterpret_cast<LayerWebKitThread*>(camouflagedLayer);
- ASSERT(layerWebKitThread);
- if (layerWebKitThread->owner()) {
- GraphicsLayer* graphicsLayer = layerWebKitThread->owner();
- RenderLayerBacking* backing = static_cast<RenderLayerBacking*>(graphicsLayer->client());
- layer = backing->owningLayer();
+ if (supportsAcceleratedScrolling) {
+ LayerWebKitThread* layerWebKitThread = reinterpret_cast<LayerWebKitThread*>(camouflagedLayer);
+ ASSERT(layerWebKitThread);
+ if (layerWebKitThread->owner()) {
+ GraphicsLayer* graphicsLayer = layerWebKitThread->owner();
+ RenderLayerBacking* backing = static_cast<RenderLayerBacking*>(graphicsLayer->client());
+ layer = backing->owningLayer();
+ }
+ } else {
+ Node* node = reinterpret_cast<Node*>(camouflagedLayer);
+ ASSERT(node);
+ if (!node->renderer())
+ return false;
+
+ layer = node->renderer()->enclosingLayer();
}
if (!layer)
@@ -137,16 +147,6 @@ bool InRegionScrollerPrivate::setScrollPositionWebKitThread(unsigned camouflaged
return setLayerScrollPosition(layer, scrollPosition);
}
-bool InRegionScrollerPrivate::scrollBy(const Platform::IntSize& delta)
-{
- ASSERT(Platform::webkitThreadMessageClient()->isCurrentThread());
-
- if (!canScroll())
- return false;
-
- return scrollNodeRecursively(node(), delta);
-}
-
void InRegionScrollerPrivate::calculateInRegionScrollableAreasForPoint(const WebCore::IntPoint& point)
{
ASSERT(m_activeInRegionScrollableAreas.empty());
@@ -243,8 +243,23 @@ bool InRegionScrollerPrivate::setLayerScrollPosition(RenderLayer* layer, const I
Frame* frame = view->frame();
ASSERT_UNUSED(frame, frame);
+ ASSERT(canScrollInnerFrame(frame));
+
+ view->setCanBlitOnScroll(false);
+
+ BackingStoreClient* backingStoreClient = m_webPage->backingStoreClientForFrame(view->frame());
+ if (backingStoreClient) {
+ backingStoreClient->setIsClientGeneratedScroll(true);
+ backingStoreClient->setIsScrollNotificationSuppressed(true);
+ }
view->setScrollPosition(scrollPosition);
+
+ if (backingStoreClient) {
+ backingStoreClient->setIsClientGeneratedScroll(false);
+ backingStoreClient->setIsScrollNotificationSuppressed(false);
+ }
+
return true;
}
@@ -252,104 +267,13 @@ bool InRegionScrollerPrivate::setLayerScrollPosition(RenderLayer* layer, const I
layer->scrollToOffset(scrollPosition.x(), scrollPosition.y());
// FIXME_agomes: Please recheck if it is needed still!
layer->renderer()->repaint(true);
- return true;
-}
-
-bool InRegionScrollerPrivate::scrollNodeRecursively(WebCore::Node* node, const WebCore::IntSize& delta)
-{
- if (delta.isZero())
- return true;
-
- if (!node)
- return false;
-
- RenderObject* renderer = node->renderer();
- if (!renderer)
- return false;
-
- FrameView* view = renderer->view()->frameView();
- if (!view)
- return false;
-
- // Try scrolling the renderer.
- if (scrollRenderer(renderer, delta))
- return true;
- // We've hit the page, don't scroll it and return false.
- if (view == m_webPage->m_mainFrame->view())
- return false;
-
- // Try scrolling the FrameView.
- if (canScrollInnerFrame(view->frame())) {
- IntSize viewDelta = delta;
- IntPoint newViewOffset = view->scrollPosition();
- IntPoint maxViewOffset = view->maximumScrollPosition();
- adjustScrollDelta(maxViewOffset, newViewOffset, viewDelta);
-
- if (!viewDelta.isZero()) {
- view->setCanBlitOnScroll(false);
-
- BackingStoreClient* backingStoreClient = m_webPage->backingStoreClientForFrame(view->frame());
- if (backingStoreClient) {
- backingStoreClient->setIsClientGeneratedScroll(true);
- backingStoreClient->setIsScrollNotificationSuppressed(true);
- }
-
- setNode(view->frame()->document());
-
- view->scrollBy(viewDelta);
-
- if (backingStoreClient) {
- backingStoreClient->setIsClientGeneratedScroll(false);
- backingStoreClient->setIsScrollNotificationSuppressed(false);
- }
-
- return true;
- }
- }
-
- // Try scrolling the node of the enclosing frame.
- Frame* frame = node->document()->frame();
- if (frame) {
- Node* ownerNode = frame->ownerElement();
- if (scrollNodeRecursively(ownerNode, delta))
- return true;
- }
-
- return false;
-}
-
-bool InRegionScrollerPrivate::scrollRenderer(WebCore::RenderObject* renderer, const WebCore::IntSize& delta)
-{
- RenderLayer* layer = renderer->enclosingLayer();
- if (!layer)
- return false;
-
- // Try to scroll layer.
- bool restrictedByLineClamp = false;
- if (renderer->parent())
- restrictedByLineClamp = !renderer->parent()->style()->lineClamp().isNone();
-
- if (renderer->hasOverflowClip() && !restrictedByLineClamp) {
- IntSize layerDelta = delta;
- IntPoint maxOffset(layer->scrollWidth() - layer->renderBox()->clientWidth(), layer->scrollHeight() - layer->renderBox()->clientHeight());
- IntPoint currentOffset(layer->scrollXOffset(), layer->scrollYOffset());
- adjustScrollDelta(maxOffset, currentOffset, layerDelta);
- if (!layerDelta.isZero()) {
- setNode(enclosingLayerNode(layer));
- IntPoint newOffset = currentOffset + layerDelta;
- layer->scrollToOffset(IntSize(newOffset.x(), newOffset.y()));
- renderer->repaint(true);
- return true;
- }
- }
-
- while (layer = layer->parent()) {
- if (canScrollRenderBox(layer->renderBox()))
- return scrollRenderer(layer->renderBox(), delta);
- }
-
- return false;
+ m_webPage->m_selectionHandler->selectionPositionChanged();
+ // FIXME: We have code in place to handle scrolling and clipping tap highlight
+ // on in-region scrolling. As soon as it is fast enough (i.e. we have it backed by
+ // a backing store), we can reliably make use of it in the real world.
+ // m_touchEventHandler->drawTapHighlight();
+ return true;
}
void InRegionScrollerPrivate::adjustScrollDelta(const WebCore::IntPoint& maxOffset, const WebCore::IntPoint& currentOffset, WebCore::IntSize& delta) const
diff --git a/Source/WebKit/blackberry/Api/InRegionScroller.h b/Source/WebKit/blackberry/Api/InRegionScroller.h
index bbdd94fff..3291f9759 100644
--- a/Source/WebKit/blackberry/Api/InRegionScroller.h
+++ b/Source/WebKit/blackberry/Api/InRegionScroller.h
@@ -36,7 +36,7 @@ public:
~InRegionScroller();
bool setScrollPositionCompositingThread(unsigned camouflagedLayer, const Platform::IntPoint& /*scrollPosition*/);
- bool setScrollPositionWebKitThread(unsigned camouflagedLayer, const Platform::IntPoint& /*scrollPosition*/);
+ bool setScrollPositionWebKitThread(unsigned camouflagedLayer, const Platform::IntPoint& /*scrollPosition*/, bool acceleratedScrolling);
private:
friend class WebPagePrivate;
diff --git a/Source/WebKit/blackberry/Api/InRegionScroller_p.h b/Source/WebKit/blackberry/Api/InRegionScroller_p.h
index 080766a3f..d9e0ebab1 100644
--- a/Source/WebKit/blackberry/Api/InRegionScroller_p.h
+++ b/Source/WebKit/blackberry/Api/InRegionScroller_p.h
@@ -49,10 +49,8 @@ public:
bool canScroll() const;
bool hasNode() const;
- bool scrollBy(const Platform::IntSize& delta);
-
bool setScrollPositionCompositingThread(unsigned camouflagedLayer, const WebCore::IntPoint& scrollPosition);
- bool setScrollPositionWebKitThread(unsigned camouflagedLayer, const WebCore::IntPoint& scrollPosition);
+ bool setScrollPositionWebKitThread(unsigned camouflagedLayer, const WebCore::IntPoint& scrollPosition, bool supportsAcceleratedScrolling);
void calculateInRegionScrollableAreasForPoint(const WebCore::IntPoint&);
const std::vector<Platform::ScrollViewBase*>& activeInRegionScrollableAreas() const;
@@ -64,9 +62,6 @@ private:
void pushBackInRegionScrollable(InRegionScrollableArea*);
- // Obsolete codepath.
- bool scrollNodeRecursively(WebCore::Node*, const WebCore::IntSize& delta);
- bool scrollRenderer(WebCore::RenderObject*, const WebCore::IntSize& delta);
void adjustScrollDelta(const WebCore::IntPoint& maxOffset, const WebCore::IntPoint& currentOffset, WebCore::IntSize& delta) const;
RefPtr<WebCore::Node> m_inRegionScrollStartingNode;
diff --git a/Source/WebKit/blackberry/Api/WebPage.cpp b/Source/WebKit/blackberry/Api/WebPage.cpp
index 7eb7e5904..2e34c366c 100644
--- a/Source/WebKit/blackberry/Api/WebPage.cpp
+++ b/Source/WebKit/blackberry/Api/WebPage.cpp
@@ -1467,40 +1467,17 @@ void WebPagePrivate::deferredTasksTimerFired(WebCore::Timer<WebPagePrivate>*)
task->perform(this);
}
-bool WebPagePrivate::scrollBy(int deltaX, int deltaY, bool scrollMainFrame)
+void WebPagePrivate::scrollBy(int deltaX, int deltaY)
{
IntSize delta(deltaX, deltaY);
- if (!scrollMainFrame) {
- // We need to work around the fact that ::map{To,From}Transformed do not
- // work well with negative values, like a negative width or height of an IntSize.
- IntSize copiedDelta(IntSize(abs(delta.width()), abs(delta.height())));
- IntSize untransformedCopiedDelta = mapFromTransformed(copiedDelta);
- delta = IntSize(
- delta.width() < 0 ? -untransformedCopiedDelta.width() : untransformedCopiedDelta.width(),
- delta.height() < 0 ? -untransformedCopiedDelta.height(): untransformedCopiedDelta.height());
-
- if (m_inRegionScroller->d->scrollBy(delta)) {
- m_selectionHandler->selectionPositionChanged();
- // FIXME: We have code in place to handle scrolling and clipping tap highlight
- // on in-region scrolling. As soon as it is fast enough (i.e. we have it backed by
- // a backing store), we can reliably make use of it in the real world.
- // m_touchEventHandler->drawTapHighlight();
- return true;
- }
-
- return false;
- }
-
setScrollPosition(scrollPosition() + delta);
- return true;
}
-bool WebPage::scrollBy(const Platform::IntSize& delta, bool scrollMainFrame)
+void WebPage::scrollBy(const Platform::IntSize& delta)
{
d->m_backingStoreClient->setIsClientGeneratedScroll(true);
- bool b = d->scrollBy(delta.width(), delta.height(), scrollMainFrame);
+ d->scrollBy(delta.width(), delta.height());
d->m_backingStoreClient->setIsClientGeneratedScroll(false);
- return b;
}
void WebPagePrivate::notifyInRegionScrollStopped()
@@ -2488,8 +2465,8 @@ IntSize WebPagePrivate::fixedLayoutSize(bool snapToIncrement) const
const int defaultLayoutHeight = m_defaultLayoutSize.height();
int minWidth = defaultLayoutWidth;
- int maxWidth = defaultMaxLayoutSize().width();
- int maxHeight = defaultMaxLayoutSize().height();
+ int maxWidth = DEFAULT_MAX_LAYOUT_WIDTH;
+ int maxHeight = DEFAULT_MAX_LAYOUT_HEIGHT;
// If the load state is none then we haven't actually got anything yet, but we need to layout
// the entire page so that the user sees the entire page (unrendered) instead of just part of it.
@@ -3500,7 +3477,7 @@ IntSize WebPagePrivate::recomputeVirtualViewportFromViewportArguments()
if (m_viewportArguments == defaultViewportArguments)
return IntSize();
- int desktopWidth = defaultMaxLayoutSize().width();
+ int desktopWidth = DEFAULT_MAX_LAYOUT_WIDTH;
int deviceWidth = Platform::Graphics::Screen::primaryScreen()->width();
int deviceHeight = Platform::Graphics::Screen::primaryScreen()->height();
ViewportAttributes result = computeViewportAttributes(m_viewportArguments, desktopWidth, deviceWidth, deviceHeight, m_webSettings->devicePixelRatio(), m_defaultLayoutSize);
@@ -5292,14 +5269,6 @@ bool WebPage::defersLoading() const
return d->m_page->defersLoading();
}
-bool WebPage::willFireTimer()
-{
- if (d->isLoading())
- return true;
-
- return d->m_backingStore->d->willFireTimer();
-}
-
void WebPage::notifyPagePause()
{
FOR_EACH_PLUGINVIEW(d->m_pluginViews)
@@ -6203,16 +6172,6 @@ void WebPagePrivate::didChangeSettings(WebSettings* webSettings)
}
}
-IntSize WebPagePrivate::defaultMaxLayoutSize()
-{
- static IntSize size;
- if (size.isEmpty())
- size = IntSize(std::max(1024, Platform::Graphics::Screen::primaryScreen()->landscapeWidth()),
- std::max(768, Platform::Graphics::Screen::primaryScreen()->landscapeHeight()));
-
- return size;
-}
-
WebString WebPage::textHasAttribute(const WebString& query) const
{
if (Document* doc = d->m_page->focusController()->focusedOrMainFrame()->document())
diff --git a/Source/WebKit/blackberry/Api/WebPage.h b/Source/WebKit/blackberry/Api/WebPage.h
index dc4cf165d..14d57a65f 100644
--- a/Source/WebKit/blackberry/Api/WebPage.h
+++ b/Source/WebKit/blackberry/Api/WebPage.h
@@ -175,7 +175,7 @@ public:
Platform::IntPoint scrollPosition() const;
// Scroll position provided should be in transformed coordinates.
void setScrollPosition(const Platform::IntPoint&);
- bool scrollBy(const Platform::IntSize&, bool scrollMainFrame = true);
+ void scrollBy(const Platform::IntSize&);
void notifyInRegionScrollStopped();
void setScrollOriginPoint(const Platform::IntPoint&);
@@ -322,8 +322,6 @@ public:
bool defersLoading() const;
- bool willFireTimer();
-
bool isEnableLocalAccessToAllCookies() const;
void setEnableLocalAccessToAllCookies(bool);
diff --git a/Source/WebKit/blackberry/Api/WebPage_p.h b/Source/WebKit/blackberry/Api/WebPage_p.h
index a005d81b6..1e5af0bce 100644
--- a/Source/WebKit/blackberry/Api/WebPage_p.h
+++ b/Source/WebKit/blackberry/Api/WebPage_p.h
@@ -41,6 +41,9 @@
#include <BlackBerryPlatformMessage.h>
+#define DEFAULT_MAX_LAYOUT_WIDTH 1024
+#define DEFAULT_MAX_LAYOUT_HEIGHT 768
+
namespace WebCore {
class AutofillManager;
class DOMWrapperWorld;
@@ -147,7 +150,7 @@ public:
WebCore::IntPoint scrollPosition() const;
WebCore::IntPoint maximumScrollPosition() const;
void setScrollPosition(const WebCore::IntPoint&);
- bool scrollBy(int deltaX, int deltaY, bool scrollMainFrame = true);
+ void scrollBy(int deltaX, int deltaY);
void enqueueRenderingOfClippedContentOfScrollableNodeAfterInRegionScrolling(WebCore::Node*);
void notifyInRegionScrollStopped();
@@ -446,7 +449,6 @@ public:
static WebCore::RenderLayer* enclosingPositionedAncestorOrSelfIfPositioned(WebCore::RenderLayer*);
static WebCore::RenderLayer* enclosingFixedPositionedAncestorOrSelfIfFixedPositioned(WebCore::RenderLayer*);
- static WebCore::IntSize defaultMaxLayoutSize();
static const String& defaultUserAgent();
void setVisible(bool);
diff --git a/Source/WebKit/blackberry/ChangeLog b/Source/WebKit/blackberry/ChangeLog
index 1059181c0..a7715af0a 100644
--- a/Source/WebKit/blackberry/ChangeLog
+++ b/Source/WebKit/blackberry/ChangeLog
@@ -1,3 +1,148 @@
+2012-08-23 Antonio Gomes <agomes@rim.com>
+
+ [BlackBerry] Obsolete the in-region scroll codepath prior to BB10's
+ https://bugs.webkit.org/show_bug.cgi?id=94839
+ PR #197775
+
+ Reviewed by George Staikos.
+
+ This codepath is not needed anymore, so lets let it RIP.
+
+ The only code addition is due to some code I've moved from WebPagePrivate::scrollNodeRecursively
+ and WebPagePrivate::scrollBy to InRegionScrollerPrivate::setLayerScrollPosition.
+ Rest is code removal ...
+
+ * Api/InRegionScroller.cpp:
+ (BlackBerry::WebKit::InRegionScrollerPrivate::setLayerScrollPosition):
+ * Api/InRegionScroller_p.h:
+ (InRegionScrollerPrivate):
+ * Api/WebPage.cpp:
+ (BlackBerry::WebKit::WebPagePrivate::scrollBy):
+ (BlackBerry::WebKit::WebPage::scrollBy):
+ * Api/WebPage.h:
+ * Api/WebPage_p.h:
+ (WebPagePrivate):
+
+2012-08-23 Adam Treat <atreat@rim.com>
+
+ [BlackBerry] Replace the three different rendering mechanisms for clearing the render queue
+ https://bugs.webkit.org/show_bug.cgi?id=94837
+
+ Reviewed by George Staikos.
+
+ PR 197738
+
+ Currently, we have three different mechanisms for clearing the render queue.
+ The first mechanism is render on idle. Whenever the webkit thread becomes idle
+ (read: no more events in its queue) we render the next job in the render queue.
+ This is the primary means we use for clearing the render queue. However, this
+ mechanism has a flaw, it is such a low priority mechanism that sometimes the
+ queue grows so fast due to higher priority events adding rects to the queue
+ that this mechanism can't possibly keep up. That is what leads to the second
+ mechanism: rendering right before a timer is fired when we discover that the
+ render queue is under pressure and rendering on idle can't keep up. However,
+ there are still degenerate cases where even this mechanism does not allow us to
+ keep up. That brings us to the third mechanism: rendering based on a timer
+ that is a catch-all.
+
+ The second and third mechanisms lead to very large render jobs as they try and
+ clear the queue faster when it comes under pressure. These very large render
+ jobs end up keeping the webkit thread busy with a message that can take large
+ fractions of a second to resolve.
+
+ These three mechanisms were put in place when the backingstore had a different
+ overall design that was not truly asynchronous. This patch replaces these
+ three mechanisms with a single one that uses the platform messaging classes to
+ full purpose - a uniquely coalescing message that has a higher priority level
+ than timers making sure the render queue can never come under pressure.
+
+ * Api/BackingStore.cpp:
+ (BlackBerry::WebKit::BackingStorePrivate::BackingStorePrivate):
+ (WebKit):
+ (RenderJobMessage):
+ (BlackBerry::WebKit::RenderJobMessage::RenderJobMessage):
+ (BlackBerry::WebKit::BackingStorePrivate::dispatchRenderJob):
+ (BlackBerry::WebKit::BackingStorePrivate::renderJob):
+ (BlackBerry::WebKit::BackingStore::blitContents):
+ * Api/BackingStore.h:
+ * Api/BackingStore_p.h:
+ (BackingStorePrivate):
+ * Api/WebPage.cpp:
+ * Api/WebPage.h:
+ * WebKitSupport/RenderQueue.cpp:
+ (BlackBerry::WebKit::RenderQueue::reset):
+ (BlackBerry::WebKit::RenderQueue::addToRegularQueue):
+ (BlackBerry::WebKit::RenderQueue::addToScrollZoomQueue):
+ (BlackBerry::WebKit::RenderQueue::clear):
+ (BlackBerry::WebKit::RenderQueue::clearVisibleZoom):
+ (BlackBerry::WebKit::RenderQueue::render):
+
+2012-08-23 Antonio Gomes <agomes@rim.com>
+
+ [BlackBerry] Unify slow and fast in-region scrolling code paths
+ https://bugs.webkit.org/show_bug.cgi?id=94834
+ PR #197662
+
+ Reviewed by Rob Buis.
+
+ Internally reviewed by Arvid Nilsson.
+
+ In order to be able to remove a bunch of obsolete code from
+ InRegionScroller.cpp, we need to unify the codepaths for slow
+ and fast in-region scrolling.
+
+ This patch caches the root scrollable node of each scrollable block
+ in InRegionScrollableArea also for the non-composited-scrolling case now too
+ (analogly to the way we cache LayerWebKitThread for the composited scrolling case).
+
+ Now the client (libwebview) can dispatch an in-region scrolling with one single code path,
+ making use of a boolean (argh!) to inform if the scroll of the given
+ layer supports compositing or not. Later on, this boolean is used to casting the proper element.
+
+ * Api/InRegionScroller.cpp:
+ (BlackBerry::WebKit::InRegionScroller::setScrollPositionWebKitThread):
+ (BlackBerry::WebKit::InRegionScrollerPrivate::setScrollPositionWebKitThread):
+ * Api/InRegionScroller.h:
+ * Api/InRegionScroller_p.h:
+ (InRegionScrollerPrivate):
+ * WebKitSupport/InRegionScrollableArea.cpp:
+ (WebKit):
+ (BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea):
+ (BlackBerry::WebKit::enclosingLayerNode):
+ * WebKitSupport/InRegionScrollableArea.h:
+ (WebCore):
+ (InRegionScrollableArea):
+
+2012-08-23 Jacky Jiang <zhajiang@rim.com>
+
+ [BlackBerry] Web pages are zoomed out to much on initial load
+ https://bugs.webkit.org/show_bug.cgi?id=94830
+
+ Reviewed by Adam Treat.
+
+ PR: 193943
+ Browser continuously adds paddings to the left and right sides of the
+ main contents which makes the main contents even smaller.
+ The issue can be reproduced on the desktop websites such as
+ huffingtonpost.ca, bloomberg.com, online.wsj.com, nytimes.com,
+ yahoo.com, thestar.com, sina.com.cn, sohu.com and so on.
+ The root cause is that we layout those contents at the width of 1280
+ although the fixed width of the main contents of those websites is
+ less than 1000, which results in adding the paddings.
+ To fix this, we need to get back to the default max layout size
+ 1024 * 768, which will make the main contents of those popular websites
+ take full advantage of the screen real estate and look much better.
+
+ Internally reviewed by Adam Treat.
+
+ * Api/WebPage.cpp:
+ (BlackBerry::WebKit::WebPagePrivate::fixedLayoutSize):
+ (BlackBerry::WebKit::WebPagePrivate::recomputeVirtualViewportFromViewportArguments):
+ * Api/WebPage_p.h:
+ (WebPagePrivate):
+ * WebKitSupport/RenderQueue.cpp:
+ (BlackBerry::WebKit::RenderQueue::splittingFactor):
+
2012-08-22 Crystal Zhang <haizhang@rim.com>
[BlackBerry] Make all pickers non-zoomable
diff --git a/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp b/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp
index 44e7b49a9..f1141c336 100644
--- a/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp
@@ -46,6 +46,17 @@ InRegionScrollableArea::~InRegionScrollableArea()
m_cachedCompositedScrollableLayer->clearOverride();
}
+// FIXME: Make RenderLayer::enclosingElement public so this one can be removed.
+static Node* enclosingLayerNode(RenderLayer* layer)
+{
+ for (RenderObject* r = layer->renderer(); r; r = r->parent()) {
+ if (Node* e = r->node())
+ return e;
+ }
+ ASSERT_NOT_REACHED();
+ return 0;
+}
+
InRegionScrollableArea::InRegionScrollableArea(WebPagePrivate* webPage, RenderLayer* layer)
: m_webPage(webPage)
, m_layer(layer)
@@ -92,11 +103,17 @@ InRegionScrollableArea::InRegionScrollableArea(WebPagePrivate* webPage, RenderLa
m_scrollsHorizontally = box->scrollWidth() != box->clientWidth() && box->scrollsOverflowX();
m_scrollsVertically = box->scrollHeight() != box->clientHeight() && box->scrollsOverflowY();
+ // Both caches below are self-exclusive.
if (m_layer->usesCompositedScrolling()) {
m_supportsCompositedScrolling = true;
ASSERT(m_layer->backing()->hasScrollingLayer());
m_camouflagedCompositedScrollableLayer = reinterpret_cast<unsigned>(m_layer->backing()->scrollingLayer()->platformLayer());
m_cachedCompositedScrollableLayer = m_layer->backing()->scrollingLayer()->platformLayer();
+ ASSERT(!m_cachedNonCompositedScrollableNode);
+ } else {
+ m_camouflagedCompositedScrollableLayer = reinterpret_cast<unsigned>(enclosingLayerNode(m_layer));
+ m_cachedNonCompositedScrollableNode = enclosingLayerNode(m_layer);
+ ASSERT(!m_cachedCompositedScrollableLayer);
}
m_overscrollLimitFactor = 0.0;
diff --git a/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.h b/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.h
index 679e490b5..443b94f5a 100644
--- a/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.h
+++ b/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.h
@@ -25,6 +25,7 @@
namespace WebCore {
class LayerWebKitThread;
+class Node;
class RenderLayer;
}
@@ -49,7 +50,10 @@ private:
WebPagePrivate* m_webPage;
WebCore::RenderLayer* m_layer;
+ // We either cache one here: in case of a composited scrollable layer
+ // cache the LayerWebKitThread. Otherwise, the Node.
RefPtr<WebCore::LayerWebKitThread> m_cachedCompositedScrollableLayer;
+ RefPtr<WebCore::Node> m_cachedNonCompositedScrollableNode;
bool m_hasWindowVisibleRectCalculated;
};
diff --git a/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp b/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp
index 1f320b9a8..3460bd8f0 100644
--- a/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp
@@ -231,7 +231,6 @@ void RenderQueue::reset()
m_currentRegularRenderJobsBatch.clear();
m_currentRegularRenderJobsBatchRegion = Platform::IntRectRegion();
m_regularRenderJobsNotRenderedRegion = Platform::IntRectRegion();
- m_parent->stopRenderTimer();
ASSERT(isEmpty());
}
@@ -244,8 +243,7 @@ int RenderQueue::splittingFactor(const Platform::IntRect& rect) const
// rendered in any one pass should stay fixed with regard to the zoom level.
Platform::IntRect untransformedRect = m_parent->m_webPage->d->mapFromTransformed(rect);
double rectArea = untransformedRect.width() * untransformedRect.height();
- Platform::IntSize defaultMaxLayoutSize = WebPagePrivate::defaultMaxLayoutSize();
- double maxArea = defaultMaxLayoutSize.width() * defaultMaxLayoutSize.height();
+ double maxArea = DEFAULT_MAX_LAYOUT_WIDTH * DEFAULT_MAX_LAYOUT_HEIGHT; // Defined in WebPage_p.h.
const unsigned splitFactor = 1 << 0;
double renderRectArea = maxArea / splitFactor;
@@ -376,7 +374,7 @@ void RenderQueue::addToRegularQueue(const Platform::IntRect& rect)
m_regularRenderJobsRegion = Platform::IntRectRegion::unionRegions(m_regularRenderJobsRegion, rect);
if (!isEmpty())
- m_parent->startRenderTimer(); // Start the render timer since we could have some stale content here...
+ m_parent->dispatchRenderJob();
}
void RenderQueue::addToScrollZoomQueue(const RenderRect& rect, RenderRectList* rectList)
@@ -391,7 +389,7 @@ void RenderQueue::addToScrollZoomQueue(const RenderRect& rect, RenderRectList* r
rectList->push_back(rect);
if (!isEmpty())
- m_parent->startRenderTimer(); // Start the render timer since we know we could have some checkerboard here...
+ m_parent->dispatchRenderJob();
}
void RenderQueue::quickSort(RenderRectList* queue)
@@ -528,9 +526,6 @@ void RenderQueue::clear(const Platform::IntRect& rect, bool clearRegularRenderJo
if (m_nonVisibleScrollJobs.empty() && !m_nonVisibleScrollJobsCompleted.empty())
nonVisibleScrollJobsCompleted();
-
- if (isEmpty())
- m_parent->stopRenderTimer();
}
void RenderQueue::clearRegularRenderJobs(const Platform::IntRect& rect)
@@ -549,8 +544,6 @@ void RenderQueue::clearRegularRenderJobs(const Platform::IntRect& rect)
void RenderQueue::clearVisibleZoom()
{
m_visibleZoomJobs.clear();
- if (isEmpty())
- m_parent->stopRenderTimer();
}
bool RenderQueue::regularRenderJobsPreviouslyAttemptedButNotRendered(const Platform::IntRect& rect)
@@ -591,9 +584,6 @@ void RenderQueue::render(bool shouldPerformRegularRenderJobs)
renderRegularRenderJob();
} else if (!m_nonVisibleScrollJobs.empty())
renderNonVisibleScrollJob();
-
- if (isEmpty())
- m_parent->stopRenderTimer();
}
void RenderQueue::renderAllCurrentRegularRenderJobs()
diff --git a/Source/WebKit/chromium/ChangeLog b/Source/WebKit/chromium/ChangeLog
index 396cc1114..2e08a17ed 100644
--- a/Source/WebKit/chromium/ChangeLog
+++ b/Source/WebKit/chromium/ChangeLog
@@ -1,3 +1,332 @@
+2012-08-23 Antoine Labour <piman@chromium.org>
+
+ [chromium] Fix lost context when textures are evicted
+ https://bugs.webkit.org/show_bug.cgi?id=94892
+
+ Reviewed by James Robinson.
+
+ After eviction, the CCPrioritizedTextureManager is in a limbo state
+ where all its resources are invalid. If we try to release them we will
+ double-destroy them.
+
+ New test: CCLayerTreeHostTestLostContextAfterEvictTextures.
+
+ * tests/CCLayerTreeHostTest.cpp:
+ (CCLayerTreeHostTestLostContextAfterEvictTextures):
+ (WTF::CCLayerTreeHostTestLostContextAfterEvictTextures::CCLayerTreeHostTestLostContextAfterEvictTextures):
+ (WTF::CCLayerTreeHostTestLostContextAfterEvictTextures::beginTest):
+ (EvictTexturesAndLoseContextTask):
+ (WTF::CCLayerTreeHostTestLostContextAfterEvictTextures::EvictTexturesAndLoseContextTask::EvictTexturesAndLoseContextTask):
+ (WTF::CCLayerTreeHostTestLostContextAfterEvictTextures::EvictTexturesAndLoseContextTask::~EvictTexturesAndLoseContextTask):
+ (WTF::CCLayerTreeHostTestLostContextAfterEvictTextures::EvictTexturesAndLoseContextTask::run):
+ (WTF::CCLayerTreeHostTestLostContextAfterEvictTextures::postEvictTexturesAndLoseContext):
+ (WTF::CCLayerTreeHostTestLostContextAfterEvictTextures::didCommitAndDrawFrame):
+ (WTF::CCLayerTreeHostTestLostContextAfterEvictTextures::commitCompleteOnCCThread):
+ (WTF::CCLayerTreeHostTestLostContextAfterEvictTextures::didRecreateOutputSurface):
+ (WTF::CCLayerTreeHostTestLostContextAfterEvictTextures::afterTest):
+ (WTF):
+ (WTF::TEST_F):
+
+2012-08-23 Antoine Labour <piman@chromium.org>
+
+ [chromium] Add OVERRIDEs in test code
+ https://bugs.webkit.org/show_bug.cgi?id=94894
+
+ Reviewed by James Robinson.
+
+ * tests/CCLayerTreeHostTest.cpp:
+
+2012-08-23 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Expose mechanism for database to force a connection to close
+ https://bugs.webkit.org/show_bug.cgi?id=91010
+
+ Reviewed by Tony Chang.
+
+ In Chromium, the browsing data deleter has a WebIDBDatabase handle which
+ it can use to terminate a connection. This handles forcefully closing
+ the front end connections and the back end, to unblock disk cleanup.
+
+ * public/WebIDBDatabase.h:
+ (WebKit::WebIDBDatabase::forceClose): Entry point.
+ * public/WebIDBDatabaseCallbacks.h:
+ (WebKit::WebIDBDatabaseCallbacks::onForcedClose): Plumbing back to front.
+ * src/IDBDatabaseCallbacksProxy.cpp:
+ (WebKit::IDBDatabaseCallbacksProxy::onForcedClose): Plumbing back to front.
+ (WebKit):
+ * src/IDBDatabaseCallbacksProxy.h:
+ (IDBDatabaseCallbacksProxy): Plumbing.
+ * src/WebIDBDatabaseCallbacksImpl.cpp:
+ (WebKit::WebIDBDatabaseCallbacksImpl::onForcedClose): Plumbing back to front.
+ (WebKit):
+ * src/WebIDBDatabaseCallbacksImpl.h:
+ (WebIDBDatabaseCallbacksImpl): Plumbing back to front.
+ * src/WebIDBDatabaseImpl.cpp:
+ (WebKit::WebIDBDatabaseImpl::close): Tidy up dropping the callback reference.
+ (WebKit):
+ (WebKit::WebIDBDatabaseImpl::forceClose): Terminate the connection by notifying
+ the back end and the front end, while avoid re-entrant badness.
+ * src/WebIDBDatabaseImpl.h: Header tweak for unit test.
+ (WebIDBDatabaseImpl):
+ * tests/IDBDatabaseBackendTest.cpp: Added unit test to exercise connections.
+
+2012-08-23 James Robinson <jamesr@chromium.org>
+
+ [chromium] Convert WebAnimationCurve subtypes into pure virtual
+ https://bugs.webkit.org/show_bug.cgi?id=94068
+
+ Reviewed by Adrienne Walker.
+
+ Updates the implementations, some callers and tests of Web*AnimationCurve to its new interface.
+
+ * WebKit.gyp:
+ * src/WebAnimation.cpp:
+ (WebKit::WebAnimation::initialize):
+ * src/WebFloatAnimationCurveImpl.cpp: Renamed from Source/WebKit/chromium/src/WebFloatAnimationCurve.cpp.
+ (WebKit):
+ (WebKit::WebFloatAnimationCurve::create):
+ (WebKit::WebFloatAnimationCurveImpl::WebFloatAnimationCurveImpl):
+ (WebKit::WebFloatAnimationCurveImpl::~WebFloatAnimationCurveImpl):
+ (WebKit::WebFloatAnimationCurveImpl::type):
+ (WebKit::WebFloatAnimationCurveImpl::add):
+ (WebKit::WebFloatAnimationCurveImpl::getValue):
+ (WebKit::WebFloatAnimationCurveImpl::cloneToCCAnimationCurve):
+ * src/WebTransformAnimationCurve.cpp: Removed.
+ * tests/WebAnimationTest.cpp:
+ (WebKit::TEST):
+ * tests/WebFloatAnimationCurveTest.cpp:
+ (WebKit::TEST):
+ * tests/WebTransformAnimationCurveTest.cpp:
+ (WebKit::TEST):
+
+2012-08-23 Kentaro Hara <haraken@chromium.org>
+
+ [V8] Remove V8Proxy.{h,cpp}
+ https://bugs.webkit.org/show_bug.cgi?id=94794
+
+ Reviewed by Dimitri Glazkov.
+
+ Now V8Proxy is no longer used. We can completely remove V8Proxy from the codebase.
+
+ No tests. No change in behavior.
+
+ * src/ChromeClientImpl.cpp:
+ * src/WebBindings.cpp:
+ * src/WebDOMMessageEvent.cpp:
+ * src/WebDevToolsAgentImpl.cpp:
+ * src/WebMediaPlayerClientImpl.cpp:
+
+2012-08-23 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Don't require a RenderSurface* in order to create a RenderPass
+ https://bugs.webkit.org/show_bug.cgi?id=94862
+
+ Reviewed by Adrienne Walker.
+
+ * tests/CCLayerTreeHostImplTest.cpp:
+ * tests/CCRendererGLTest.cpp:
+ (FakeCCRendererClient::FakeCCRendererClient):
+
+2012-08-22 James Robinson <jamesr@chromium.org>
+
+ [chromium] Remove WebLayer::setChildren API
+ https://bugs.webkit.org/show_bug.cgi?id=94749
+
+ Reviewed by Adrienne Walker.
+
+ * src/WebLayer.cpp:
+
+2012-08-23 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Create sharedQuadState at same time as creating quads and give them to the quadSink
+ https://bugs.webkit.org/show_bug.cgi?id=94752
+
+ Reviewed by Adrienne Walker.
+
+ * tests/CCLayerTreeHostImplTest.cpp:
+ * tests/CCLayerTreeHostTest.cpp:
+ (WTF::EvictionTestLayerImpl::appendQuads):
+ * tests/CCQuadCullerTest.cpp:
+ * tests/CCRenderSurfaceTest.cpp:
+ * tests/CCSolidColorLayerImplTest.cpp:
+ (CCLayerTestCommon::TEST):
+ * tests/CCTiledLayerImplTest.cpp:
+ (CCLayerTestCommon::TEST):
+ (CCLayerTestCommon::getQuads):
+ (CCLayerTestCommon::coverageVisibleRectOnTileBoundaries):
+ (CCLayerTestCommon::coverageVisibleRectIntersectsTiles):
+ (CCLayerTestCommon::coverageVisibleRectIntersectsBounds):
+ * tests/MockCCQuadCuller.h:
+ (WebCore::MockCCQuadCuller::MockCCQuadCuller):
+ (MockCCQuadCuller):
+ (WebCore::MockCCQuadCuller::quadList):
+ (WebCore::MockCCQuadCuller::sharedQuadStateList):
+
+2012-08-23 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed - fixing input list for timeline inspector module.
+ https://bugs.webkit.org/show_bug.cgi?id=94829
+
+ * WebKit.gyp:
+
+2012-08-23 Alexandre Elias <aelias@chromium.org>
+
+ [chromium] Rename LayerRendererChromium to GL-specific name
+ https://bugs.webkit.org/show_bug.cgi?id=94835
+
+ Reviewed by James Robinson.
+
+ Over time, LayerRendererChromium has evolved to be a GL-specific
+ subclass of CCRenderer that has no awareness of layers (as it operates
+ only with drawQuads).
+
+ This patch renames LayerRendererChromium to CCRendererGL, replaces all
+ instances of "layerRenderer" with just "renderer", and removes a
+ few unnecessary includes of LayerRendererChromium.h.
+
+ * WebKit.gypi:
+ * tests/CCLayerTreeHostImplTest.cpp:
+ * tests/CCLayerTreeHostTest.cpp:
+ (WTF::CCLayerTreeHostTestLayerOcclusion::beginTest):
+ (WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::beginTest):
+ (WTF::CCLayerTreeHostTestManySurfaces::beginTest):
+ (WTF::CCLayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit::drawLayersOnCCThread):
+ * tests/CCRendererGLTest.cpp: Renamed from Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp.
+ (FrameCountingMemoryAllocationSettingContext):
+ (FrameCountingMemoryAllocationSettingContext::FrameCountingMemoryAllocationSettingContext):
+ (FrameCountingMemoryAllocationSettingContext::prepareTexture):
+ (FrameCountingMemoryAllocationSettingContext::setMemoryAllocationChangedCallbackCHROMIUM):
+ (FrameCountingMemoryAllocationSettingContext::getString):
+ (FrameCountingMemoryAllocationSettingContext::frameCount):
+ (FrameCountingMemoryAllocationSettingContext::setMemoryAllocation):
+ (FakeCCRendererClient):
+ (FakeCCRendererClient::FakeCCRendererClient):
+ (FakeCCRendererClient::setFullRootLayerDamageCount):
+ (FakeCCRendererClient::rootRenderPass):
+ (FakeCCRendererClient::renderPassesInDrawOrder):
+ (FakeCCRendererClient::renderPasses):
+ (FakeCCRendererClient::memoryAllocationLimitBytes):
+ (FakeCCRendererGL):
+ (FakeCCRendererGL::FakeCCRendererGL):
+ (CCRendererGLTest):
+ (CCRendererGLTest::CCRendererGLTest):
+ (CCRendererGLTest::SetUp):
+ (CCRendererGLTest::TearDown):
+ (CCRendererGLTest::swapBuffers):
+ (CCRendererGLTest::context):
+ (TEST_F):
+ (ForbidSynchronousCallContext):
+ (ForbidSynchronousCallContext::ForbidSynchronousCallContext):
+ (ForbidSynchronousCallContext::getActiveAttrib):
+ (ForbidSynchronousCallContext::getActiveUniform):
+ (ForbidSynchronousCallContext::getAttachedShaders):
+ (ForbidSynchronousCallContext::getAttribLocation):
+ (ForbidSynchronousCallContext::getBooleanv):
+ (ForbidSynchronousCallContext::getBufferParameteriv):
+ (ForbidSynchronousCallContext::getContextAttributes):
+ (ForbidSynchronousCallContext::getError):
+ (ForbidSynchronousCallContext::getFloatv):
+ (ForbidSynchronousCallContext::getFramebufferAttachmentParameteriv):
+ (ForbidSynchronousCallContext::getIntegerv):
+ (ForbidSynchronousCallContext::getProgramiv):
+ (ForbidSynchronousCallContext::getShaderiv):
+ (ForbidSynchronousCallContext::getString):
+ (ForbidSynchronousCallContext::getProgramInfoLog):
+ (ForbidSynchronousCallContext::getRenderbufferParameteriv):
+ (ForbidSynchronousCallContext::getShaderInfoLog):
+ (ForbidSynchronousCallContext::getShaderPrecisionFormat):
+ (ForbidSynchronousCallContext::getShaderSource):
+ (ForbidSynchronousCallContext::getTexParameterfv):
+ (ForbidSynchronousCallContext::getTexParameteriv):
+ (ForbidSynchronousCallContext::getUniformfv):
+ (ForbidSynchronousCallContext::getUniformiv):
+ (ForbidSynchronousCallContext::getUniformLocation):
+ (ForbidSynchronousCallContext::getVertexAttribfv):
+ (ForbidSynchronousCallContext::getVertexAttribiv):
+ (ForbidSynchronousCallContext::getVertexAttribOffset):
+ (TEST):
+ (LoseContextOnFirstGetContext):
+ (LoseContextOnFirstGetContext::LoseContextOnFirstGetContext):
+ (ContextThatDoesNotSupportMemoryManagmentExtensions):
+ (ContextThatDoesNotSupportMemoryManagmentExtensions::ContextThatDoesNotSupportMemoryManagmentExtensions):
+ (ContextThatDoesNotSupportMemoryManagmentExtensions::prepareTexture):
+ (ContextThatDoesNotSupportMemoryManagmentExtensions::setMemoryAllocationChangedCallbackCHROMIUM):
+ (ContextThatDoesNotSupportMemoryManagmentExtensions::getString):
+ (ClearCountingContext):
+ (ClearCountingContext::ClearCountingContext):
+ (ClearCountingContext::clear):
+ (ClearCountingContext::clearCount):
+ * tests/TiledLayerChromiumTest.cpp:
+
+2012-08-23 Stephen White <senorblanco@chromium.org>
+
+ Unreviewed. Rolled DEPS.
+
+ * DEPS:
+
+2012-08-23 Wei Jia <wjia@chromium.org>
+
+ create different WebKit::WebMediaPlayer based on URL
+ https://bugs.webkit.org/show_bug.cgi?id=91301
+
+ Reviewed by Adam Barth.
+
+ Pass URL to WebFrameClient::createMediaPlayer(). This allows creation
+ of different WebMediaPlayer implementations based on the URL.
+
+ * public/WebFrameClient.h:
+ (WebKit::WebFrameClient::createMediaPlayer): add URL as additional argument.
+ * src/WebMediaPlayerClientImpl.cpp:
+ (WebKit::createWebMediaPlayer): add URL as additional argument.
+ (WebKit::WebMediaPlayerClientImpl::loadInternal):
+
+2012-08-23 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Move onSuccess(IDBDatabaseBackendInterface) to IDBOpenDBRequest
+ https://bugs.webkit.org/show_bug.cgi?id=94757
+
+ Reviewed by Tony Chang.
+
+ Drop onSuccess(IDBDatabaseBackendImpl) overload from test, as it is no longer
+ implemented by IDBRequest.
+
+ * tests/IDBRequestTest.cpp:
+ (WebCore::TEST):
+
+2012-08-23 Kenneth Russell <kbr@google.com>
+
+ Convert ScrollableArea ASSERT_NOT_REACHED virtuals into pure virtuals
+ https://bugs.webkit.org/show_bug.cgi?id=93306
+
+ Unreviewed build fix.
+
+ * src/ScrollbarGroup.h:
+
+2012-08-23 Adrienne Walker <enne@google.com>
+
+ Convert ScrollableArea ASSERT_NOT_REACHED virtuals
+ https://bugs.webkit.org/show_bug.cgi?id=93306
+
+ Reviewed by Darin Adler.
+
+ Add implementations where necessary to make derived classes concrete.
+ Add OVERRIDE for ScrollableArea functions.
+
+ * src/ScrollbarGroup.h:
+ (ScrollbarGroup):
+ (WebKit::ScrollbarGroup::scrollCornerRect):
+ * tests/ScrollAnimatorNoneTest.cpp:
+ (MockScrollableArea):
+
+2012-08-23 David Reveman <reveman@chromium.org>
+
+ [Chromium] Unnecessary delay when starting to update resources with an inactive vsync timer.
+ https://bugs.webkit.org/show_bug.cgi?id=94719
+
+ Reviewed by James Robinson.
+
+ * tests/CCSchedulerTestCommon.h:
+
2012-08-23 Peter Beverloo <peter@chromium.org>
Unreviewed. Rolled DEPS.
diff --git a/Source/WebKit/chromium/DEPS b/Source/WebKit/chromium/DEPS
index 6322e4843..479de4270 100644
--- a/Source/WebKit/chromium/DEPS
+++ b/Source/WebKit/chromium/DEPS
@@ -32,7 +32,7 @@
vars = {
'chromium_svn': 'http://src.chromium.org/svn/trunk/src',
- 'chromium_rev': '152985'
+ 'chromium_rev': '153032'
}
deps = {
diff --git a/Source/WebKit/chromium/WebKit.gyp b/Source/WebKit/chromium/WebKit.gyp
index 1a46375fa..1fd2164bc 100644
--- a/Source/WebKit/chromium/WebKit.gyp
+++ b/Source/WebKit/chromium/WebKit.gyp
@@ -1177,7 +1177,7 @@
'input_file': '../../WebCore/inspector/front-end/TimelinePanel.js',
'inputs': [
'<@(_script_name)',
- '<@(webinspector_resources_js_files)',
+ '<@(webinspector_timeline_js_files)',
],
'search_path': '../../WebCore/inspector/front-end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/TimelinePanel.js'],
diff --git a/Source/WebKit/chromium/WebKit.gypi b/Source/WebKit/chromium/WebKit.gypi
index fc86f83b3..890b3f675 100644
--- a/Source/WebKit/chromium/WebKit.gypi
+++ b/Source/WebKit/chromium/WebKit.gypi
@@ -125,7 +125,7 @@
'tests/KeyboardTest.cpp',
'tests/KURLTest.cpp',
'tests/LayerChromiumTest.cpp',
- 'tests/LayerRendererChromiumTest.cpp',
+ 'tests/CCRendererGLTest.cpp',
'tests/LevelDBTest.cpp',
'tests/LinkHighlightTest.cpp',
'tests/ListenerLeakTest.cpp',
@@ -187,7 +187,8 @@
'src/WebContentLayerImpl.h',
'src/WebExternalTextureLayerImpl.cpp',
'src/WebExternalTextureLayerImpl.h',
- 'src/WebFloatAnimationCurve.cpp',
+ 'src/WebFloatAnimationCurveImpl.cpp',
+ 'src/WebFloatAnimationCurveImpl.h',
'src/WebIOSurfaceLayerImpl.cpp',
'src/WebIOSurfaceLayerImpl.h',
'src/WebImageLayerImpl.cpp',
@@ -201,7 +202,8 @@
'src/WebScrollbarLayerImpl.h',
'src/WebSolidColorLayerImpl.cpp',
'src/WebSolidColorLayerImpl.h',
- 'src/WebTransformAnimationCurve.cpp',
+ 'src/WebTransformAnimationCurveImpl.cpp',
+ 'src/WebTransformAnimationCurveImpl.h',
'src/WebVideoLayerImpl.cpp',
'src/WebVideoLayerImpl.h',
],
diff --git a/Source/WebKit/chromium/public/WebFrameClient.h b/Source/WebKit/chromium/public/WebFrameClient.h
index cc8923d80..b4fccebc2 100644
--- a/Source/WebKit/chromium/public/WebFrameClient.h
+++ b/Source/WebKit/chromium/public/WebFrameClient.h
@@ -88,7 +88,7 @@ public:
virtual WebSharedWorker* createSharedWorker(WebFrame*, const WebURL&, const WebString&, unsigned long long) { return 0; }
// May return null.
- virtual WebMediaPlayer* createMediaPlayer(WebFrame*, WebMediaPlayerClient*) { return 0; }
+ virtual WebMediaPlayer* createMediaPlayer(WebFrame*, const WebURL&, WebMediaPlayerClient*) { return 0; }
// May return null.
virtual WebApplicationCacheHost* createApplicationCacheHost(WebFrame*, WebApplicationCacheHostClient*) { return 0; }
diff --git a/Source/WebKit/chromium/public/WebIDBDatabase.h b/Source/WebKit/chromium/public/WebIDBDatabase.h
index 3eb1ecb74..a8b035c72 100644
--- a/Source/WebKit/chromium/public/WebIDBDatabase.h
+++ b/Source/WebKit/chromium/public/WebIDBDatabase.h
@@ -64,6 +64,7 @@ public:
return 0;
}
virtual void close() { WEBKIT_ASSERT_NOT_REACHED(); }
+ virtual void forceClose() { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void open(WebIDBDatabaseCallbacks*) { WEBKIT_ASSERT_NOT_REACHED(); }
diff --git a/Source/WebKit/chromium/public/WebIDBDatabaseCallbacks.h b/Source/WebKit/chromium/public/WebIDBDatabaseCallbacks.h
index 0907b8bf0..12da7e0b4 100644
--- a/Source/WebKit/chromium/public/WebIDBDatabaseCallbacks.h
+++ b/Source/WebKit/chromium/public/WebIDBDatabaseCallbacks.h
@@ -35,6 +35,7 @@ class WebIDBDatabaseCallbacks {
public:
virtual ~WebIDBDatabaseCallbacks() { }
+ virtual void onForcedClose() { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onVersionChange(long long oldVersion, long long newVersion) { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onVersionChange(const WebString& requestedVersion) { WEBKIT_ASSERT_NOT_REACHED(); }
};
diff --git a/Source/WebKit/chromium/src/ChromeClientImpl.cpp b/Source/WebKit/chromium/src/ChromeClientImpl.cpp
index 329a99f19..d73654578 100644
--- a/Source/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/Source/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -71,9 +71,6 @@
#include "SecurityOrigin.h"
#include "Settings.h"
#include "TextFieldDecorationElement.h"
-#if USE(V8)
-#include "V8Proxy.h"
-#endif
#include "WebAccessibilityObject.h"
#if ENABLE(INPUT_TYPE_COLOR)
#include "WebColorChooser.h"
diff --git a/Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.cpp b/Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.cpp
index 019e59ba0..31897da9e 100644
--- a/Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.cpp
+++ b/Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.cpp
@@ -48,6 +48,11 @@ IDBDatabaseCallbacksProxy::~IDBDatabaseCallbacksProxy()
{
}
+void IDBDatabaseCallbacksProxy::onForcedClose()
+{
+ m_callbacks->onForcedClose();
+}
+
void IDBDatabaseCallbacksProxy::onVersionChange(int64_t oldVersion, int64_t newVersion)
{
m_callbacks->onVersionChange(oldVersion, newVersion);
diff --git a/Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.h b/Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.h
index 9995abd2b..cb1ddb346 100644
--- a/Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.h
+++ b/Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.h
@@ -40,6 +40,7 @@ public:
static PassRefPtr<IDBDatabaseCallbacksProxy> create(PassOwnPtr<WebIDBDatabaseCallbacks>);
virtual ~IDBDatabaseCallbacksProxy();
+ virtual void onForcedClose();
virtual void onVersionChange(const String& requestedVersion);
virtual void onVersionChange(int64_t oldVersion, int64_t newVersion);
diff --git a/Source/WebKit/chromium/src/LinkHighlight.cpp b/Source/WebKit/chromium/src/LinkHighlight.cpp
index fa34d1d0d..2c804a8cd 100644
--- a/Source/WebKit/chromium/src/LinkHighlight.cpp
+++ b/Source/WebKit/chromium/src/LinkHighlight.cpp
@@ -200,13 +200,13 @@ void LinkHighlight::startHighlightAnimation()
m_contentLayer->layer()->setOpacity(startOpacity);
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, startOpacity));
- curve.add(WebFloatKeyframe(duration / 2, startOpacity));
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, startOpacity));
+ curve->add(WebFloatKeyframe(duration / 2, startOpacity));
// For layout tests we don't fade out.
- curve.add(WebFloatKeyframe(duration, WebKit::layoutTestMode() ? startOpacity : 0));
+ curve->add(WebFloatKeyframe(duration, WebKit::layoutTestMode() ? startOpacity : 0));
- m_animation = adoptPtr(WebAnimation::create(curve, WebAnimation::TargetPropertyOpacity));
+ m_animation = adoptPtr(WebAnimation::create(*curve, WebAnimation::TargetPropertyOpacity));
m_contentLayer->layer()->setDrawsContent(true);
m_contentLayer->layer()->addAnimation(m_animation.get());
diff --git a/Source/WebKit/chromium/src/ScrollbarGroup.h b/Source/WebKit/chromium/src/ScrollbarGroup.h
index a0479c206..b2df772f4 100644
--- a/Source/WebKit/chromium/src/ScrollbarGroup.h
+++ b/Source/WebKit/chromium/src/ScrollbarGroup.h
@@ -49,31 +49,31 @@ public:
void setFrameRect(const WebCore::IntRect&);
// WebCore::ScrollableArea methods
- virtual int scrollSize(WebCore::ScrollbarOrientation) const;
- virtual int scrollPosition(WebCore::Scrollbar*) const;
- virtual void setScrollOffset(const WebCore::IntPoint&);
- virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&);
- virtual void invalidateScrollCornerRect(const WebCore::IntRect&);
- virtual bool isActive() const;
- virtual ScrollableArea* enclosingScrollableArea() const;
- virtual WebCore::IntRect scrollCornerRect() const { return WebCore::IntRect(); }
- virtual bool isScrollCornerVisible() const;
- virtual void getTickmarks(Vector<WebCore::IntRect>&) const;
- virtual WebCore::IntPoint convertFromContainingViewToScrollbar(const WebCore::Scrollbar*, const WebCore::IntPoint& parentPoint) const;
- virtual WebCore::Scrollbar* horizontalScrollbar() const;
- virtual WebCore::Scrollbar* verticalScrollbar() const;
- virtual WebCore::IntPoint scrollPosition() const;
- virtual WebCore::IntPoint minimumScrollPosition() const;
- virtual WebCore::IntPoint maximumScrollPosition() const;
- virtual int visibleHeight() const;
- virtual int visibleWidth() const;
- virtual WebCore::IntSize contentsSize() const;
- virtual WebCore::IntSize overhangAmount() const;
- virtual WebCore::IntPoint currentMousePosition() const;
- virtual bool shouldSuspendScrollAnimations() const;
- virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate);
- virtual bool isOnActivePage() const;
- virtual WebCore::IntRect scrollableAreaBoundingBox() const;
+ virtual int scrollSize(WebCore::ScrollbarOrientation) const OVERRIDE;
+ virtual int scrollPosition(WebCore::Scrollbar*) const OVERRIDE;
+ virtual void setScrollOffset(const WebCore::IntPoint&) OVERRIDE;
+ virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&) OVERRIDE;
+ virtual void invalidateScrollCornerRect(const WebCore::IntRect&) OVERRIDE;
+ virtual bool isActive() const OVERRIDE;
+ virtual ScrollableArea* enclosingScrollableArea() const OVERRIDE;
+ virtual WebCore::IntRect scrollCornerRect() const OVERRIDE { return WebCore::IntRect(); }
+ virtual bool isScrollCornerVisible() const OVERRIDE;
+ virtual void getTickmarks(Vector<WebCore::IntRect>&) const OVERRIDE;
+ virtual WebCore::IntPoint convertFromContainingViewToScrollbar(const WebCore::Scrollbar*, const WebCore::IntPoint& parentPoint) const OVERRIDE;
+ virtual WebCore::Scrollbar* horizontalScrollbar() const OVERRIDE;
+ virtual WebCore::Scrollbar* verticalScrollbar() const OVERRIDE;
+ virtual WebCore::IntPoint scrollPosition() const OVERRIDE;
+ virtual WebCore::IntPoint minimumScrollPosition() const OVERRIDE;
+ virtual WebCore::IntPoint maximumScrollPosition() const OVERRIDE;
+ virtual int visibleHeight() const OVERRIDE;
+ virtual int visibleWidth() const OVERRIDE;
+ virtual WebCore::IntSize contentsSize() const OVERRIDE;
+ virtual WebCore::IntSize overhangAmount() const OVERRIDE;
+ virtual WebCore::IntPoint currentMousePosition() const OVERRIDE;
+ virtual bool shouldSuspendScrollAnimations() const OVERRIDE;
+ virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate) OVERRIDE;
+ virtual bool isOnActivePage() const OVERRIDE;
+ virtual WebCore::IntRect scrollableAreaBoundingBox() const OVERRIDE;
private:
WebCore::FrameView* m_frameView;
diff --git a/Source/WebKit/chromium/src/WebAnimationImpl.cpp b/Source/WebKit/chromium/src/WebAnimationImpl.cpp
index 187272ef2..e5d9ef2a3 100644
--- a/Source/WebKit/chromium/src/WebAnimationImpl.cpp
+++ b/Source/WebKit/chromium/src/WebAnimationImpl.cpp
@@ -29,6 +29,8 @@
#include "AnimationIdVendor.h"
#include "CCActiveAnimation.h"
#include "CCAnimationCurve.h"
+#include "WebFloatAnimationCurveImpl.h"
+#include "WebTransformAnimationCurveImpl.h"
#include <public/WebAnimation.h>
#include <public/WebAnimationCurve.h>
#include <wtf/OwnPtr.h>
@@ -46,7 +48,30 @@ WebAnimation* WebAnimation::create(const WebAnimationCurve& curve, TargetPropert
WebAnimation* WebAnimation::create(const WebAnimationCurve& curve, int animationId, int groupId, TargetProperty targetProperty)
{
- return new WebAnimationImpl(CCActiveAnimation::create(curve, animationId, groupId, static_cast<WebCore::CCActiveAnimation::TargetProperty>(targetProperty)));
+ return new WebAnimationImpl(curve, animationId, groupId, targetProperty);
+}
+
+WebAnimationImpl::WebAnimationImpl(const WebAnimationCurve& webCurve, int animationId, int groupId, TargetProperty targetProperty)
+{
+ WebAnimationCurve::AnimationCurveType curveType = webCurve.type();
+ OwnPtr<WebCore::CCAnimationCurve> curve;
+ switch (curveType) {
+ case WebAnimationCurve::AnimationCurveTypeFloat: {
+ const WebFloatAnimationCurveImpl* floatCurveImpl = static_cast<const WebFloatAnimationCurveImpl*>(&webCurve);
+ curve = floatCurveImpl->cloneToCCAnimationCurve();
+ break;
+ }
+ case WebAnimationCurve::AnimationCurveTypeTransform: {
+ const WebTransformAnimationCurveImpl* transformCurveImpl = static_cast<const WebTransformAnimationCurveImpl*>(&webCurve);
+ curve = transformCurveImpl->cloneToCCAnimationCurve();
+ break;
+ }
+ }
+ m_animation = CCActiveAnimation::create(curve.release(), animationId, groupId, static_cast<WebCore::CCActiveAnimation::TargetProperty>(targetProperty));
+}
+
+WebAnimationImpl::~WebAnimationImpl()
+{
}
WebAnimation::TargetProperty WebAnimationImpl::targetProperty() const
diff --git a/Source/WebKit/chromium/src/WebAnimationImpl.h b/Source/WebKit/chromium/src/WebAnimationImpl.h
index 8677b9c60..d7ceba51f 100644
--- a/Source/WebKit/chromium/src/WebAnimationImpl.h
+++ b/Source/WebKit/chromium/src/WebAnimationImpl.h
@@ -37,11 +37,8 @@ namespace WebKit {
class WebAnimationImpl : public WebAnimation {
public:
- explicit WebAnimationImpl(PassOwnPtr<WebCore::CCActiveAnimation> animation)
- : m_animation(animation)
- {
- }
- virtual ~WebAnimationImpl() { }
+ WebAnimationImpl(const WebAnimationCurve&, int animationId, int groupId, TargetProperty);
+ virtual ~WebAnimationImpl();
// WebAnimation implementation
virtual TargetProperty targetProperty() const OVERRIDE;
diff --git a/Source/WebKit/chromium/src/WebBindings.cpp b/Source/WebKit/chromium/src/WebBindings.cpp
index 71a74db1b..c44dc429e 100644
--- a/Source/WebKit/chromium/src/WebBindings.cpp
+++ b/Source/WebKit/chromium/src/WebBindings.cpp
@@ -45,7 +45,6 @@
#include "V8DOMWrapper.h"
#include "V8Element.h"
#include "V8NPUtils.h"
-#include "V8Proxy.h"
#include "V8Range.h"
#include <wtf/ArrayBufferView.h>
// FIXME: Remove the USE(JSC) ifdefs because we don't support USE(JSC) anymore.
diff --git a/Source/WebKit/chromium/src/WebDOMMessageEvent.cpp b/Source/WebKit/chromium/src/WebDOMMessageEvent.cpp
index 06cf66fc5..383c7de21 100644
--- a/Source/WebKit/chromium/src/WebDOMMessageEvent.cpp
+++ b/Source/WebKit/chromium/src/WebDOMMessageEvent.cpp
@@ -42,10 +42,6 @@
#include "platform/WebSerializedScriptValue.h"
#include "platform/WebString.h"
-#if USE(V8)
-#include "V8Proxy.h"
-#endif
-
using namespace WebCore;
namespace WebKit {
diff --git a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
index e3a80e0d4..c639f674d 100644
--- a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
+++ b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
@@ -51,7 +51,6 @@
#include "ResourceRequest.h"
#include "ResourceResponse.h"
#include "V8Binding.h"
-#include "V8Proxy.h"
#include "V8Utilities.h"
#include "WebDataSource.h"
#include "WebDevToolsAgentClient.h"
diff --git a/Source/WebKit/chromium/src/WebFloatAnimationCurve.cpp b/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.cpp
index e8cf7c2d2..9f5665cb8 100644
--- a/Source/WebKit/chromium/src/WebFloatAnimationCurve.cpp
+++ b/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.cpp
@@ -24,8 +24,9 @@
#include "config.h"
-#include <public/WebFloatAnimationCurve.h>
+#include "WebFloatAnimationCurveImpl.h"
+#include "CCAnimationCurve.h"
#include "CCKeyframedAnimationCurve.h"
#include "CCTimingFunction.h"
#include "WebAnimationCurveCommon.h"
@@ -34,39 +35,48 @@
namespace WebKit {
-void WebFloatAnimationCurve::add(const WebFloatKeyframe& keyframe)
+WebFloatAnimationCurve* WebFloatAnimationCurve::create()
+{
+ return new WebFloatAnimationCurveImpl(WebCore::CCKeyframedFloatAnimationCurve::create());
+}
+
+WebFloatAnimationCurveImpl::WebFloatAnimationCurveImpl(PassOwnPtr<WebCore::CCKeyframedFloatAnimationCurve> curve)
+ : m_curve(curve)
{
- add(keyframe, TimingFunctionTypeEase);
}
-void WebFloatAnimationCurve::add(const WebFloatKeyframe& keyframe, TimingFunctionType type)
+WebFloatAnimationCurveImpl::~WebFloatAnimationCurveImpl()
{
- m_private->addKeyframe(WebCore::CCFloatKeyframe::create(keyframe.time, keyframe.value, createTimingFunction(type)));
}
-void WebFloatAnimationCurve::add(const WebFloatKeyframe& keyframe, double x1, double y1, double x2, double y2)
+WebAnimationCurve::AnimationCurveType WebFloatAnimationCurveImpl::type() const
{
- m_private->addKeyframe(WebCore::CCFloatKeyframe::create(keyframe.time, keyframe.value, WebCore::CCCubicBezierTimingFunction::create(x1, y1, x2, y2)));
+ return WebAnimationCurve::AnimationCurveTypeFloat;
+}
+
+void WebFloatAnimationCurveImpl::add(const WebFloatKeyframe& keyframe)
+{
+ add(keyframe, TimingFunctionTypeEase);
}
-float WebFloatAnimationCurve::getValue(double time) const
+void WebFloatAnimationCurveImpl::add(const WebFloatKeyframe& keyframe, TimingFunctionType type)
{
- return m_private->getValue(time);
+ m_curve->addKeyframe(WebCore::CCFloatKeyframe::create(keyframe.time, keyframe.value, createTimingFunction(type)));
}
-WebFloatAnimationCurve::operator PassOwnPtr<WebCore::CCAnimationCurve>() const
+void WebFloatAnimationCurveImpl::add(const WebFloatKeyframe& keyframe, double x1, double y1, double x2, double y2)
{
- return m_private->clone();
+ m_curve->addKeyframe(WebCore::CCFloatKeyframe::create(keyframe.time, keyframe.value, WebCore::CCCubicBezierTimingFunction::create(x1, y1, x2, y2)));
}
-void WebFloatAnimationCurve::initialize()
+float WebFloatAnimationCurveImpl::getValue(double time) const
{
- m_private.reset(WebCore::CCKeyframedFloatAnimationCurve::create().leakPtr());
+ return m_curve->getValue(time);
}
-void WebFloatAnimationCurve::destroy()
+PassOwnPtr<WebCore::CCAnimationCurve> WebFloatAnimationCurveImpl::cloneToCCAnimationCurve() const
{
- m_private.reset(0);
+ return m_curve->clone();
}
} // namespace WebKit
diff --git a/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.h b/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.h
new file mode 100644
index 000000000..e8f1620d6
--- /dev/null
+++ b/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebFloatAnimationCurveImpl_h
+#define WebFloatAnimationCurveImpl_h
+
+#include <public/WebFloatAnimationCurve.h>
+#include <wtf/OwnPtr.h>
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+class CCAnimationCurve;
+class CCKeyframedFloatAnimationCurve;
+}
+
+namespace WebKit {
+
+class WebFloatAnimationCurveImpl : public WebFloatAnimationCurve {
+public:
+ explicit WebFloatAnimationCurveImpl(PassOwnPtr<WebCore::CCKeyframedFloatAnimationCurve>);
+ virtual ~WebFloatAnimationCurveImpl();
+
+ // WebAnimationCurve implementation.
+ virtual AnimationCurveType type() const OVERRIDE;
+
+ // WebFloatAnimationCurve implementation.
+ virtual void add(const WebFloatKeyframe&) OVERRIDE;
+ virtual void add(const WebFloatKeyframe&, TimingFunctionType) OVERRIDE;
+ virtual void add(const WebFloatKeyframe&, double x1, double y1, double x2, double y2) OVERRIDE;
+
+ virtual float getValue(double time) const OVERRIDE;
+
+ PassOwnPtr<WebCore::CCAnimationCurve> cloneToCCAnimationCurve() const;
+
+private:
+ OwnPtr<WebCore::CCKeyframedFloatAnimationCurve> m_curve;
+};
+
+}
+
+#endif // WebFloatAnimationCurveImpl_h
diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.cpp b/Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.cpp
index 14757bac6..5ae86a679 100644
--- a/Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.cpp
+++ b/Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.cpp
@@ -44,6 +44,11 @@ WebIDBDatabaseCallbacksImpl::~WebIDBDatabaseCallbacksImpl()
{
}
+void WebIDBDatabaseCallbacksImpl::onForcedClose()
+{
+ m_callbacks->onForcedClose();
+}
+
void WebIDBDatabaseCallbacksImpl::onVersionChange(long long oldVersion, long long newVersion)
{
m_callbacks->onVersionChange(oldVersion, newVersion);
diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.h b/Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.h
index 1857ca658..b0737eeb2 100644
--- a/Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.h
+++ b/Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.h
@@ -43,6 +43,7 @@ public:
WebIDBDatabaseCallbacksImpl(PassRefPtr<WebCore::IDBDatabaseCallbacks>);
virtual ~WebIDBDatabaseCallbacksImpl();
+ virtual void onForcedClose();
virtual void onVersionChange(long long oldVersion, long long newVersion);
virtual void onVersionChange(const WebString& version);
diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
index 9343281cf..0d142bc02 100644
--- a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
+++ b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
@@ -99,8 +99,18 @@ void WebIDBDatabaseImpl::close()
m_closePending = true;
return;
}
- m_databaseBackend->close(m_databaseCallbacks);
- m_databaseCallbacks = 0;
+ m_databaseBackend->close(m_databaseCallbacks.release());
+}
+
+void WebIDBDatabaseImpl::forceClose()
+{
+ if (!m_databaseCallbacks) {
+ m_closePending = true;
+ return;
+ }
+ RefPtr<IDBDatabaseCallbacksProxy> callbacks = m_databaseCallbacks.release();
+ m_databaseBackend->close(callbacks);
+ callbacks->onForcedClose();
}
void WebIDBDatabaseImpl::open(WebIDBDatabaseCallbacks* callbacks)
diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
index 1409cb65f..4a8284ce5 100644
--- a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
+++ b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
@@ -28,6 +28,7 @@
#if ENABLE(INDEXED_DATABASE)
+#include "IDBDatabaseCallbacksProxy.h"
#include "platform/WebCommon.h"
#include "WebExceptionCode.h"
#include "WebIDBDatabase.h"
@@ -38,7 +39,6 @@ namespace WebCore { class IDBDatabaseBackendInterface; }
namespace WebKit {
-class IDBDatabaseCallbacksProxy;
class WebIDBDatabaseCallbacks;
class WebIDBDatabaseMetadata;
class WebIDBObjectStore;
@@ -56,6 +56,7 @@ public:
virtual void deleteObjectStore(const WebString& name, const WebIDBTransaction&, WebExceptionCode&);
virtual void setVersion(const WebString& version, WebIDBCallbacks*, WebExceptionCode&);
virtual WebIDBTransaction* transaction(const WebDOMStringList& names, unsigned short mode, WebExceptionCode&);
+ virtual void forceClose();
virtual void close();
// FIXME: Rename "open" to registerFrontendCallbacks.
diff --git a/Source/WebKit/chromium/src/WebLayerImpl.cpp b/Source/WebKit/chromium/src/WebLayerImpl.cpp
index 40ced485d..bf64a8f2a 100644
--- a/Source/WebKit/chromium/src/WebLayerImpl.cpp
+++ b/Source/WebKit/chromium/src/WebLayerImpl.cpp
@@ -123,14 +123,6 @@ void WebLayerImpl::replaceChild(WebLayer* reference, WebLayer* newLayer)
m_layer->replaceChild(static_cast<WebLayerImpl*>(reference)->layer(), static_cast<WebLayerImpl*>(newLayer)->layer());
}
-void WebLayerImpl::setChildren(const WebVector<WebLayer*>& webChildren)
-{
- Vector<RefPtr<LayerChromium> > children(webChildren.size());
- for (size_t i = 0; i < webChildren.size(); ++i)
- children[i] = static_cast<WebLayerImpl*>(webChildren[i])->layer();
- m_layer->setChildren(children);
-}
-
void WebLayerImpl::removeFromParent()
{
m_layer->removeFromParent();
diff --git a/Source/WebKit/chromium/src/WebLayerImpl.h b/Source/WebKit/chromium/src/WebLayerImpl.h
index 7e3b533bc..0a61826a5 100644
--- a/Source/WebKit/chromium/src/WebLayerImpl.h
+++ b/Source/WebKit/chromium/src/WebLayerImpl.h
@@ -47,7 +47,6 @@ public:
virtual void addChild(WebLayer*) OVERRIDE;
virtual void insertChild(WebLayer*, size_t index) OVERRIDE;
virtual void replaceChild(WebLayer* reference, WebLayer* newLayer) OVERRIDE;
- virtual void setChildren(const WebVector<WebLayer*>&) OVERRIDE;
virtual void removeFromParent() OVERRIDE;
virtual void removeAllChildren() OVERRIDE;
virtual void setAnchorPoint(const WebFloatPoint&) OVERRIDE;
diff --git a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
index cb756233e..72e871637 100644
--- a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
+++ b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
@@ -7,6 +7,7 @@
#if ENABLE(VIDEO)
+#include "AudioBus.h"
#include "AudioSourceProvider.h"
#include "AudioSourceProviderClient.h"
#include "Frame.h"
@@ -45,13 +46,13 @@ using namespace WebCore;
namespace WebKit {
-static PassOwnPtr<WebMediaPlayer> createWebMediaPlayer(WebMediaPlayerClient* client, Frame* frame)
+static PassOwnPtr<WebMediaPlayer> createWebMediaPlayer(WebMediaPlayerClient* client, const WebURL& url, Frame* frame)
{
WebFrameImpl* webFrame = WebFrameImpl::fromFrame(frame);
if (!webFrame->client())
return nullptr;
- return adoptPtr(webFrame->client()->createMediaPlayer(webFrame, client));
+ return adoptPtr(webFrame->client()->createMediaPlayer(webFrame, url, client));
}
bool WebMediaPlayerClientImpl::m_isEnabled = false;
@@ -321,7 +322,7 @@ void WebMediaPlayerClientImpl::loadInternal()
#endif
Frame* frame = static_cast<HTMLMediaElement*>(m_mediaPlayer->mediaPlayerClient())->document()->frame();
- m_webMediaPlayer = createWebMediaPlayer(this, frame);
+ m_webMediaPlayer = createWebMediaPlayer(this, KURL(ParsedURLString, m_url), frame);
if (m_webMediaPlayer) {
#if ENABLE(WEB_AUDIO)
// Make sure if we create/re-create the WebMediaPlayer that we update our wrapper.
diff --git a/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.cpp b/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.cpp
new file mode 100644
index 000000000..201042e95
--- /dev/null
+++ b/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.cpp
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#include "WebTransformAnimationCurveImpl.h"
+
+#include "CCKeyframedAnimationCurve.h"
+#include "CCTimingFunction.h"
+#include "WebAnimationCurveCommon.h"
+#include <wtf/OwnPtr.h>
+#include <wtf/PassOwnPtr.h>
+
+namespace WebKit {
+
+WebTransformAnimationCurve* WebTransformAnimationCurve::create()
+{
+ return new WebTransformAnimationCurveImpl(WebCore::CCKeyframedTransformAnimationCurve::create());
+}
+
+WebTransformAnimationCurveImpl::WebTransformAnimationCurveImpl(PassOwnPtr<WebCore::CCKeyframedTransformAnimationCurve> curve)
+ : m_curve(curve)
+{
+}
+
+WebTransformAnimationCurveImpl::~WebTransformAnimationCurveImpl()
+{
+}
+
+WebAnimationCurve::AnimationCurveType WebTransformAnimationCurveImpl::type() const
+{
+ return WebAnimationCurve::AnimationCurveTypeTransform;
+}
+
+void WebTransformAnimationCurveImpl::add(const WebTransformKeyframe& keyframe)
+{
+ add(keyframe, TimingFunctionTypeEase);
+}
+
+void WebTransformAnimationCurveImpl::add(const WebTransformKeyframe& keyframe, TimingFunctionType type)
+{
+ m_curve->addKeyframe(WebCore::CCTransformKeyframe::create(keyframe.time, keyframe.value, createTimingFunction(type)));
+}
+
+void WebTransformAnimationCurveImpl::add(const WebTransformKeyframe& keyframe, double x1, double y1, double x2, double y2)
+{
+ m_curve->addKeyframe(WebCore::CCTransformKeyframe::create(keyframe.time, keyframe.value, WebCore::CCCubicBezierTimingFunction::create(x1, y1, x2, y2)));
+}
+
+WebTransformationMatrix WebTransformAnimationCurveImpl::getValue(double time) const
+{
+ return m_curve->getValue(time);
+}
+
+PassOwnPtr<WebCore::CCAnimationCurve> WebTransformAnimationCurveImpl::cloneToCCAnimationCurve() const
+{
+ return m_curve->clone();
+}
+
+} // namespace WebKit
diff --git a/Source/WebKit/chromium/src/WebTransformAnimationCurve.cpp b/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.h
index dad084987..45a03ef06 100644
--- a/Source/WebKit/chromium/src/WebTransformAnimationCurve.cpp
+++ b/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.h
@@ -22,51 +22,41 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "config.h"
+#ifndef WebTransformAnimationCurveImpl_h
+#define WebTransformAnimationCurveImpl_h
#include <public/WebTransformAnimationCurve.h>
-
-#include "CCKeyframedAnimationCurve.h"
-#include "CCTimingFunction.h"
-#include "WebAnimationCurveCommon.h"
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
+namespace WebCore {
+class CCAnimationCurve;
+class CCKeyframedTransformAnimationCurve;
+}
+
namespace WebKit {
-void WebTransformAnimationCurve::add(const WebTransformKeyframe& keyframe)
-{
- add(keyframe, TimingFunctionTypeEase);
-}
+class WebTransformAnimationCurveImpl : public WebTransformAnimationCurve {
+public:
+ explicit WebTransformAnimationCurveImpl(PassOwnPtr<WebCore::CCKeyframedTransformAnimationCurve>);
+ virtual ~WebTransformAnimationCurveImpl();
-void WebTransformAnimationCurve::add(const WebTransformKeyframe& keyframe, TimingFunctionType type)
-{
- m_private->addKeyframe(WebCore::CCTransformKeyframe::create(keyframe.time, keyframe.value, createTimingFunction(type)));
-}
+ // WebAnimationCurve implementation.
+ virtual AnimationCurveType type() const OVERRIDE;
-void WebTransformAnimationCurve::add(const WebTransformKeyframe& keyframe, double x1, double y1, double x2, double y2)
-{
- m_private->addKeyframe(WebCore::CCTransformKeyframe::create(keyframe.time, keyframe.value, WebCore::CCCubicBezierTimingFunction::create(x1, y1, x2, y2)));
-}
+ // WebTransformAnimationCurve implementation.
+ virtual void add(const WebTransformKeyframe&) OVERRIDE;
+ virtual void add(const WebTransformKeyframe&, TimingFunctionType) OVERRIDE;
+ virtual void add(const WebTransformKeyframe&, double x1, double y1, double x2, double y2) OVERRIDE;
-WebTransformationMatrix WebTransformAnimationCurve::getValue(double time) const
-{
- return m_private->getValue(time);
-}
+ virtual WebTransformationMatrix getValue(double time) const OVERRIDE;
-WebTransformAnimationCurve::operator PassOwnPtr<WebCore::CCAnimationCurve>() const
-{
- return m_private->clone();
-}
+ PassOwnPtr<WebCore::CCAnimationCurve> cloneToCCAnimationCurve() const;
-void WebTransformAnimationCurve::initialize()
-{
- m_private.reset(WebCore::CCKeyframedTransformAnimationCurve::create().leakPtr());
-}
+private:
+ OwnPtr<WebCore::CCKeyframedTransformAnimationCurve> m_curve;
+};
-void WebTransformAnimationCurve::destroy()
-{
- m_private.reset(0);
}
-} // namespace WebKit
+#endif // WebTransformAnimationCurveImpl_h
diff --git a/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp b/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp
index 6ec0ce5d7..a715f5b9a 100644
--- a/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp
+++ b/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp
@@ -35,6 +35,7 @@
#include "CCLayerTreeTestCommon.h"
#include "CCQuadCuller.h"
#include "CCRenderPassDrawQuad.h"
+#include "CCRendererGL.h"
#include "CCScrollbarLayerImpl.h"
#include "CCSettings.h"
#include "CCSingleThreadProxy.h"
@@ -47,7 +48,6 @@
#include "FakeWebCompositorOutputSurface.h"
#include "FakeWebGraphicsContext3D.h"
#include "FakeWebScrollbarThemeGeometry.h"
-#include "LayerRendererChromium.h"
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <public/WebVideoFrame.h>
@@ -76,7 +76,7 @@ public:
settings.minimumOcclusionTrackingSize = IntSize();
m_hostImpl = CCLayerTreeHostImpl::create(settings, this);
- m_hostImpl->initializeLayerRenderer(createContext(), UnthrottledUploader);
+ m_hostImpl->initializeRenderer(createContext(), UnthrottledUploader);
m_hostImpl->setViewportSize(IntSize(10, 10), IntSize(10, 10));
}
@@ -96,7 +96,7 @@ public:
OwnPtr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(settings, this);
- myHostImpl->initializeLayerRenderer(graphicsContext, UnthrottledUploader);
+ myHostImpl->initializeRenderer(graphicsContext, UnthrottledUploader);
myHostImpl->setViewportSize(IntSize(10, 10), IntSize(10, 10));
OwnPtr<CCLayerImpl> root = rootPtr;
@@ -165,9 +165,9 @@ public:
return layer.release();
}
- void initializeLayerRendererAndDrawFrame()
+ void initializeRendererAndDrawFrame()
{
- m_hostImpl->initializeLayerRenderer(createContext(), UnthrottledUploader);
+ m_hostImpl->initializeRenderer(createContext(), UnthrottledUploader);
CCLayerTreeHostImpl::FrameData frame;
EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
m_hostImpl->drawLayers(frame);
@@ -265,7 +265,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollRootCallsCommitAndRedraw)
{
setupScrollAndContentsLayers(IntSize(100, 100));
m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(0, 0), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollStarted);
m_hostImpl->scrollBy(IntPoint(), IntSize(0, 10));
@@ -286,7 +286,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollWithoutRenderer)
m_hostImpl = CCLayerTreeHostImpl::create(settings, this);
// Initialization will fail here.
- m_hostImpl->initializeLayerRenderer(FakeWebCompositorOutputSurface::create(adoptPtr(new FakeWebGraphicsContext3DMakeCurrentFails)), UnthrottledUploader);
+ m_hostImpl->initializeRenderer(FakeWebCompositorOutputSurface::create(adoptPtr(new FakeWebGraphicsContext3DMakeCurrentFails)), UnthrottledUploader);
m_hostImpl->setViewportSize(IntSize(10, 10), IntSize(10, 10));
setupScrollAndContentsLayers(IntSize(100, 100));
@@ -301,7 +301,7 @@ TEST_F(CCLayerTreeHostImplTest, replaceTreeWhileScrolling)
setupScrollAndContentsLayers(IntSize(100, 100));
m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
// We should not crash if the tree is replaced while we are scrolling.
EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(0, 0), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollStarted);
@@ -321,7 +321,7 @@ TEST_F(CCLayerTreeHostImplTest, clearRootRenderSurfaceAndScroll)
{
setupScrollAndContentsLayers(IntSize(100, 100));
m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
// We should be able to scroll even if the root layer loses its render surface after the most
// recent render.
@@ -333,7 +333,7 @@ TEST_F(CCLayerTreeHostImplTest, wheelEventHandlers)
{
setupScrollAndContentsLayers(IntSize(100, 100));
m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
CCLayerImpl* root = m_hostImpl->rootLayer();
root->setHaveWheelEventHandlers(true);
@@ -349,7 +349,7 @@ TEST_F(CCLayerTreeHostImplTest, shouldScrollOnMainThread)
{
setupScrollAndContentsLayers(IntSize(100, 100));
m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
CCLayerImpl* root = m_hostImpl->rootLayer();
root->setShouldScrollOnMainThread(true);
@@ -362,7 +362,7 @@ TEST_F(CCLayerTreeHostImplTest, nonFastScrollableRegionBasic)
{
setupScrollAndContentsLayers(IntSize(200, 200));
m_hostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
CCLayerImpl* root = m_hostImpl->rootLayer();
root->setNonFastScrollableRegion(IntRect(0, 0, 50, 50));
@@ -388,7 +388,7 @@ TEST_F(CCLayerTreeHostImplTest, nonFastScrollableRegionWithOffset)
root->setNonFastScrollableRegion(IntRect(0, 0, 50, 50));
root->setPosition(FloatPoint(-25, 0));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
// This point would fall into the non-fast scrollable region except that we've moved the layer down by 25 pixels.
EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(40, 10), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollStarted);
@@ -403,7 +403,7 @@ TEST_F(CCLayerTreeHostImplTest, pinchGesture)
{
setupScrollAndContentsLayers(IntSize(100, 100));
m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
CCLayerImpl* scrollLayer = m_hostImpl->rootScrollLayer();
ASSERT(scrollLayer);
@@ -484,7 +484,7 @@ TEST_F(CCLayerTreeHostImplTest, pageScaleAnimation)
{
setupScrollAndContentsLayers(IntSize(100, 100));
m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
CCLayerImpl* scrollLayer = m_hostImpl->rootScrollLayer();
ASSERT(scrollLayer);
@@ -534,7 +534,7 @@ TEST_F(CCLayerTreeHostImplTest, inhibitScrollAndPageScaleUpdatesWhilePinchZoomin
{
setupScrollAndContentsLayers(IntSize(100, 100));
m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
CCLayerImpl* scrollLayer = m_hostImpl->rootScrollLayer();
ASSERT(scrollLayer);
@@ -588,7 +588,7 @@ TEST_F(CCLayerTreeHostImplTest, inhibitScrollAndPageScaleUpdatesWhileAnimatingPa
{
setupScrollAndContentsLayers(IntSize(100, 100));
m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50));
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
CCLayerImpl* scrollLayer = m_hostImpl->rootScrollLayer();
ASSERT(scrollLayer);
@@ -849,7 +849,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollRootIgnored)
OwnPtr<CCLayerImpl> root = CCLayerImpl::create(1);
root->setScrollable(false);
m_hostImpl->setRootLayer(root.release());
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
// Scroll event is ignored because layer is not scrollable.
EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(0, 0), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollIgnored);
@@ -882,7 +882,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollNonCompositedRoot)
m_hostImpl->setRootLayer(scrollLayer.release());
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(5, 5), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollStarted);
m_hostImpl->scrollBy(IntPoint(), IntSize(0, 10));
@@ -900,7 +900,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollChildCallsCommitAndRedraw)
root->addChild(createScrollableLayer(2, surfaceSize));
m_hostImpl->setRootLayer(root.release());
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(5, 5), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollStarted);
m_hostImpl->scrollBy(IntPoint(), IntSize(0, 10));
@@ -916,7 +916,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollMissesChild)
root->addChild(createScrollableLayer(2, surfaceSize));
m_hostImpl->setRootLayer(root.release());
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
// Scroll event is ignored because the input coordinate is outside the layer boundaries.
EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(15, 5), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollIgnored);
@@ -938,7 +938,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollMissesBackfacingChild)
root->addChild(child.release());
m_hostImpl->setRootLayer(root.release());
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
// Scroll event is ignored because the scrollable layer is not facing the viewer and there is
// nothing scrollable behind it.
@@ -959,7 +959,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollBlockedByContentLayer)
m_hostImpl->setRootLayer(scrollLayer.release());
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
// Scrolling fails because the content layer is asking to be scrolled on the main thread.
EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(5, 5), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollOnMainThread);
@@ -972,7 +972,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollRootAndChangePageScaleOnMainThread)
OwnPtr<CCLayerImpl> root = createScrollableLayer(1, surfaceSize);
m_hostImpl->setRootLayer(root.release());
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
IntSize scrollDelta(0, 10);
IntSize expectedScrollDelta(scrollDelta);
@@ -1004,7 +1004,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollRootAndChangePageScaleOnImplThread)
m_hostImpl->setRootLayer(root.release());
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
m_hostImpl->setPageScaleFactorAndLimits(1, 1, pageScale);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
IntSize scrollDelta(0, 10);
IntSize expectedScrollDelta(scrollDelta);
@@ -1081,7 +1081,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollChildAndChangePageScaleOnMainThread)
root->addChild(createScrollableLayer(scrollLayerId, surfaceSize));
m_hostImpl->setRootLayer(root.release());
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
CCLayerImpl* child = m_hostImpl->rootLayer()->children()[0].get();
@@ -1125,7 +1125,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollChildBeyondLimit)
root->addChild(child.release());
m_hostImpl->setRootLayer(root.release());
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
{
IntSize scrollDelta(-8, -7);
EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(5, 5), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollStarted);
@@ -1157,7 +1157,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollEventBubbling)
m_hostImpl->setRootLayer(root.release());
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
{
IntSize scrollDelta(0, 4);
EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(5, 5), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollStarted);
@@ -1179,7 +1179,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollBeforeRedraw)
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
// Draw one frame and then immediately rebuild the layer tree to mimic a tree synchronization.
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
m_hostImpl->detachLayerTree();
m_hostImpl->setRootLayer(createScrollableLayer(2, surfaceSize));
@@ -1198,7 +1198,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollAxisAlignedRotatedLayer)
IntSize surfaceSize(50, 50);
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
// Scroll to the right in screen coordinates with a gesture.
IntSize gestureScrollDelta(10, 0);
@@ -1242,7 +1242,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollNonAxisAlignedRotatedLayer)
IntSize surfaceSize(50, 50);
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
{
// Scroll down in screen coordinates with a gesture.
@@ -1295,7 +1295,7 @@ TEST_F(CCLayerTreeHostImplTest, scrollScaledLayer)
IntSize surfaceSize(50, 50);
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- initializeLayerRendererAndDrawFrame();
+ initializeRendererAndDrawFrame();
// Scroll down in screen coordinates with a gesture.
IntSize scrollDelta(0, 10);
@@ -1345,7 +1345,7 @@ class BlendStateCheckLayer : public CCLayerImpl {
public:
static PassOwnPtr<BlendStateCheckLayer> create(int id, CCResourceProvider* resourceProvider) { return adoptPtr(new BlendStateCheckLayer(id, resourceProvider)); }
- virtual void appendQuads(CCQuadSink& quadList, const CCSharedQuadState* sharedQuadState, bool&) OVERRIDE
+ virtual void appendQuads(CCQuadSink& quadSink, bool&) OVERRIDE
{
m_quadsAppended = true;
@@ -1354,11 +1354,13 @@ public:
opaqueRect = m_quadRect;
else
opaqueRect = m_opaqueContentRect;
+
+ CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQuadState());
OwnPtr<CCDrawQuad> testBlendingDrawQuad = CCTileDrawQuad::create(sharedQuadState, m_quadRect, opaqueRect, m_resourceId, IntPoint(), IntSize(1, 1), 0, false, false, false, false, false);
testBlendingDrawQuad->setQuadVisibleRect(m_quadVisibleRect);
EXPECT_EQ(m_blend, testBlendingDrawQuad->needsBlending());
EXPECT_EQ(m_hasRenderSurface, !!renderSurface());
- quadList.append(testBlendingDrawQuad.release());
+ quadSink.append(testBlendingDrawQuad.release());
}
void setExpectation(bool blend, bool hasRenderSurface)
@@ -1622,7 +1624,7 @@ TEST_F(CCLayerTreeHostImplTest, blendingOffWhenDrawingOpaqueLayers)
TEST_F(CCLayerTreeHostImplTest, viewportCovered)
{
- m_hostImpl->initializeLayerRenderer(createContext(), UnthrottledUploader);
+ m_hostImpl->initializeRenderer(createContext(), UnthrottledUploader);
m_hostImpl->setBackgroundColor(SK_ColorGRAY);
IntSize viewportSize(1000, 1000);
@@ -1733,7 +1735,7 @@ TEST_F(CCLayerTreeHostImplTest, reshapeNotCalledUntilDraw)
{
OwnPtr<CCGraphicsContext> ccContext = FakeWebCompositorOutputSurface::create(adoptPtr(new ReshapeTrackerContext));
ReshapeTrackerContext* reshapeTracker = static_cast<ReshapeTrackerContext*>(ccContext->context3D());
- m_hostImpl->initializeLayerRenderer(ccContext.release(), UnthrottledUploader);
+ m_hostImpl->initializeRenderer(ccContext.release(), UnthrottledUploader);
CCLayerImpl* root = new FakeDrawableCCLayerImpl(1);
root->setAnchorPoint(FloatPoint(0, 0));
@@ -1782,7 +1784,7 @@ TEST_F(CCLayerTreeHostImplTest, partialSwapReceivesDamageRect)
CCLayerTreeSettings settings;
CCSettings::setPartialSwapEnabled(true);
OwnPtr<CCLayerTreeHostImpl> layerTreeHostImpl = CCLayerTreeHostImpl::create(settings, this);
- layerTreeHostImpl->initializeLayerRenderer(ccContext.release(), UnthrottledUploader);
+ layerTreeHostImpl->initializeRenderer(ccContext.release(), UnthrottledUploader);
layerTreeHostImpl->setViewportSize(IntSize(500, 500), IntSize(500, 500));
CCLayerImpl* root = new FakeDrawableCCLayerImpl(1);
@@ -1877,12 +1879,14 @@ class FakeLayerWithQuads : public CCLayerImpl {
public:
static PassOwnPtr<FakeLayerWithQuads> create(int id) { return adoptPtr(new FakeLayerWithQuads(id)); }
- virtual void appendQuads(CCQuadSink& quadList, const CCSharedQuadState* sharedQuadState, bool&) OVERRIDE
+ virtual void appendQuads(CCQuadSink& quadSink, bool&) OVERRIDE
{
+ CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQuadState());
+
SkColor gray = SkColorSetRGB(100, 100, 100);
IntRect quadRect(IntPoint(0, 0), contentBounds());
OwnPtr<CCDrawQuad> myQuad = CCSolidColorDrawQuad::create(sharedQuadState, quadRect, gray);
- quadList.append(myQuad.release());
+ quadSink.append(myQuad.release());
}
private:
@@ -2067,7 +2071,7 @@ static PassOwnPtr<CCLayerTreeHostImpl> setupLayersForOpacity(bool partialSwap, C
CCLayerTreeSettings settings;
OwnPtr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(settings, client);
- myHostImpl->initializeLayerRenderer(context.release(), UnthrottledUploader);
+ myHostImpl->initializeRenderer(context.release(), UnthrottledUploader);
myHostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100));
/*
@@ -2206,7 +2210,7 @@ TEST_F(CCLayerTreeHostImplTest, contextLostAndRestoredNotificationSentToAllLayer
EXPECT_FALSE(layer1->didLoseContextCalled());
EXPECT_FALSE(layer2->didLoseContextCalled());
- m_hostImpl->initializeLayerRenderer(createContext(), UnthrottledUploader);
+ m_hostImpl->initializeRenderer(createContext(), UnthrottledUploader);
EXPECT_TRUE(root->didLoseContextCalled());
EXPECT_TRUE(layer1->didLoseContextCalled());
@@ -2219,7 +2223,7 @@ TEST_F(CCLayerTreeHostImplTest, finishAllRenderingAfterContextLost)
m_hostImpl = CCLayerTreeHostImpl::create(settings, this);
// The context initialization will fail, but we should still be able to call finishAllRendering() without any ill effects.
- m_hostImpl->initializeLayerRenderer(FakeWebCompositorOutputSurface::create(adoptPtr(new FakeWebGraphicsContext3DMakeCurrentFails)), UnthrottledUploader);
+ m_hostImpl->initializeRenderer(FakeWebCompositorOutputSurface::create(adoptPtr(new FakeWebGraphicsContext3DMakeCurrentFails)), UnthrottledUploader);
m_hostImpl->finishAllRendering();
}
@@ -2501,7 +2505,7 @@ TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext)
rootLayer->addChild(scrollbarLayer.release());
// Use a context that supports IOSurfaces
- m_hostImpl->initializeLayerRenderer(FakeWebCompositorOutputSurface::create(adoptPtr(new FakeWebGraphicsContext3DWithIOSurface)), UnthrottledUploader);
+ m_hostImpl->initializeRenderer(FakeWebCompositorOutputSurface::create(adoptPtr(new FakeWebGraphicsContext3DWithIOSurface)), UnthrottledUploader);
hwVideoFrame.setTextureId(m_hostImpl->resourceProvider()->graphicsContext3D()->createTexture());
@@ -2517,7 +2521,7 @@ TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext)
// Lose the context, replacing it with a StrictWebGraphicsContext3DWithIOSurface,
// that will warn if any resource from the previous context gets used.
- m_hostImpl->initializeLayerRenderer(FakeWebCompositorOutputSurface::create(adoptPtr(new StrictWebGraphicsContext3DWithIOSurface)), UnthrottledUploader);
+ m_hostImpl->initializeRenderer(FakeWebCompositorOutputSurface::create(adoptPtr(new StrictWebGraphicsContext3DWithIOSurface)), UnthrottledUploader);
// Create dummy resources so that looking up an old resource will get an
// invalid texture id mapping.
@@ -2630,7 +2634,7 @@ TEST_F(CCLayerTreeHostImplTest, layersFreeTextures)
// Lose the context, replacing it with a TrackingWebGraphicsContext3D (which the CCLayerTreeHostImpl takes ownership of).
OwnPtr<CCGraphicsContext> ccContext(FakeWebCompositorOutputSurface::create(adoptPtr(new TrackingWebGraphicsContext3D)));
TrackingWebGraphicsContext3D* trackingWebGraphicsContext = static_cast<TrackingWebGraphicsContext3D*>(ccContext->context3D());
- m_hostImpl->initializeLayerRenderer(ccContext.release(), UnthrottledUploader);
+ m_hostImpl->initializeRenderer(ccContext.release(), UnthrottledUploader);
m_hostImpl->setRootLayer(rootLayer.release());
@@ -2702,7 +2706,7 @@ static void setupLayersForTextureCaching(CCLayerTreeHostImpl* layerTreeHostImpl,
{
OwnPtr<CCGraphicsContext> context = FakeWebCompositorOutputSurface::create(adoptPtr(new PartialSwapContext));
- layerTreeHostImpl->initializeLayerRenderer(context.release(), UnthrottledUploader);
+ layerTreeHostImpl->initializeRenderer(context.release(), UnthrottledUploader);
layerTreeHostImpl->setViewportSize(rootSize, rootSize);
OwnPtr<CCLayerImpl> root = CCLayerImpl::create(1);
@@ -2728,9 +2732,9 @@ static void setupLayersForTextureCaching(CCLayerTreeHostImpl* layerTreeHostImpl,
addDrawingLayerTo(surfaceLayerPtr, 4, IntRect(5, 5, rootSize.width() - 25, rootSize.height() - 25), &childPtr);
}
-class LayerRendererChromiumWithReleaseTextures : public LayerRendererChromium {
+class CCRendererGLWithReleaseTextures : public CCRendererGL {
public:
- using LayerRendererChromium::releaseRenderPassTextures;
+ using CCRendererGL::releaseRenderPassTextures;
};
TEST_F(CCLayerTreeHostImplTest, textureCachingWithClipping)
@@ -2748,7 +2752,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithClipping)
IntSize rootSize(100, 100);
- myHostImpl->initializeLayerRenderer(context.release(), UnthrottledUploader);
+ myHostImpl->initializeRenderer(context.release(), UnthrottledUploader);
myHostImpl->setViewportSize(IntSize(rootSize.width(), rootSize.height()), IntSize(rootSize.width(), rootSize.height()));
OwnPtr<CCLayerImpl> root = CCLayerImpl::create(1);
@@ -2860,7 +2864,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithOcclusion)
IntSize rootSize(1000, 1000);
- myHostImpl->initializeLayerRenderer(context.release(), UnthrottledUploader);
+ myHostImpl->initializeRenderer(context.release(), UnthrottledUploader);
myHostImpl->setViewportSize(IntSize(rootSize.width(), rootSize.height()), IntSize(rootSize.width(), rootSize.height()));
OwnPtr<CCLayerImpl> root = CCLayerImpl::create(1);
@@ -2973,7 +2977,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithOcclusionEarlyOut)
IntSize rootSize(1000, 1000);
- myHostImpl->initializeLayerRenderer(context.release(), UnthrottledUploader);
+ myHostImpl->initializeRenderer(context.release(), UnthrottledUploader);
myHostImpl->setViewportSize(IntSize(rootSize.width(), rootSize.height()), IntSize(rootSize.width(), rootSize.height()));
OwnPtr<CCLayerImpl> root = CCLayerImpl::create(1);
@@ -3087,7 +3091,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithOcclusionExternalOverInternal)
IntSize rootSize(1000, 1000);
- myHostImpl->initializeLayerRenderer(context.release(), UnthrottledUploader);
+ myHostImpl->initializeRenderer(context.release(), UnthrottledUploader);
myHostImpl->setViewportSize(IntSize(rootSize.width(), rootSize.height()), IntSize(rootSize.width(), rootSize.height()));
OwnPtr<CCLayerImpl> root = CCLayerImpl::create(1);
@@ -3170,7 +3174,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithOcclusionExternalNotAligned)
IntSize rootSize(1000, 1000);
- myHostImpl->initializeLayerRenderer(context.release(), UnthrottledUploader);
+ myHostImpl->initializeRenderer(context.release(), UnthrottledUploader);
myHostImpl->setViewportSize(IntSize(rootSize.width(), rootSize.height()), IntSize(rootSize.width(), rootSize.height()));
OwnPtr<CCLayerImpl> root = CCLayerImpl::create(1);
@@ -3255,7 +3259,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithOcclusionPartialSwap)
IntSize rootSize(1000, 1000);
- myHostImpl->initializeLayerRenderer(context.release(), UnthrottledUploader);
+ myHostImpl->initializeRenderer(context.release(), UnthrottledUploader);
myHostImpl->setViewportSize(IntSize(rootSize.width(), rootSize.height()), IntSize(rootSize.width(), rootSize.height()));
OwnPtr<CCLayerImpl> root = CCLayerImpl::create(1);
@@ -3373,7 +3377,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor)
IntRect grandChildRect(5, 5, 150, 150);
OwnPtr<CCGraphicsContext> context = FakeWebCompositorOutputSurface::create(adoptPtr(new PartialSwapContext));
- myHostImpl->initializeLayerRenderer(context.release(), UnthrottledUploader);
+ myHostImpl->initializeRenderer(context.release(), UnthrottledUploader);
root->setAnchorPoint(FloatPoint(0, 0));
root->setPosition(FloatPoint(rootRect.x(), rootRect.y()));
@@ -3408,7 +3412,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor)
myHostImpl->setRootLayer(root.release());
myHostImpl->setViewportSize(rootRect.size(), rootRect.size());
- EXPECT_FALSE(myHostImpl->layerRenderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
+ EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
{
CCLayerTreeHostImpl::FrameData frame;
@@ -3418,7 +3422,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor)
}
// We should have cached textures for surface 2.
- EXPECT_TRUE(myHostImpl->layerRenderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
+ EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
{
CCLayerTreeHostImpl::FrameData frame;
@@ -3428,7 +3432,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor)
}
// We should still have cached textures for surface 2 after drawing with no damage.
- EXPECT_TRUE(myHostImpl->layerRenderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
+ EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
// Damage a single tile of surface 2.
childPtr->setUpdateRect(IntRect(10, 10, 10, 10));
@@ -3441,7 +3445,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor)
}
// We should have a cached texture for surface 2 again even though it was damaged.
- EXPECT_TRUE(myHostImpl->layerRenderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
+ EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id()));
}
TEST_F(CCLayerTreeHostImplTest, surfaceTextureCaching)
@@ -3537,7 +3541,7 @@ TEST_F(CCLayerTreeHostImplTest, surfaceTextureCaching)
// Change opacity again, and evict the cached surface texture.
surfaceLayerPtr->setOpacity(0.5f);
- static_cast<LayerRendererChromiumWithReleaseTextures*>(myHostImpl->layerRenderer())->releaseRenderPassTextures();
+ static_cast<CCRendererGLWithReleaseTextures*>(myHostImpl->renderer())->releaseRenderPassTextures();
// Change opacity and draw
surfaceLayerPtr->setOpacity(0.6f);
@@ -3559,7 +3563,7 @@ TEST_F(CCLayerTreeHostImplTest, surfaceTextureCaching)
EXPECT_TRUE(targetPass->damageRect().isEmpty());
// Was our surface evicted?
- EXPECT_FALSE(myHostImpl->layerRenderer()->haveCachedResourcesForRenderPassId(targetPass->id()));
+ EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(targetPass->id()));
myHostImpl->drawLayers(frame);
myHostImpl->didDrawAllLayers(frame);
@@ -3703,7 +3707,7 @@ TEST_F(CCLayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap)
// Change opacity again, and evict the cached surface texture.
surfaceLayerPtr->setOpacity(0.5f);
- static_cast<LayerRendererChromiumWithReleaseTextures*>(myHostImpl->layerRenderer())->releaseRenderPassTextures();
+ static_cast<CCRendererGLWithReleaseTextures*>(myHostImpl->renderer())->releaseRenderPassTextures();
// Change opacity and draw
surfaceLayerPtr->setOpacity(0.6f);
@@ -3725,7 +3729,7 @@ TEST_F(CCLayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap)
EXPECT_TRUE(targetPass->damageRect().isEmpty());
// Was our surface evicted?
- EXPECT_FALSE(myHostImpl->layerRenderer()->haveCachedResourcesForRenderPassId(targetPass->id()));
+ EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(targetPass->id()));
myHostImpl->drawLayers(frame);
myHostImpl->didDrawAllLayers(frame);
@@ -3804,22 +3808,20 @@ struct RenderPassCacheEntry {
struct RenderPassRemovalTestData : public CCLayerTreeHostImpl::FrameData {
std::map<char, RenderPassCacheEntry> renderPassCache;
- Vector<OwnPtr<CCRenderSurface> > renderSurfaceStore;
- Vector<OwnPtr<CCLayerImpl> > layerStore;
OwnPtr<CCSharedQuadState> sharedQuadState;
};
class CCTestRenderPass: public CCRenderPass {
public:
- static PassOwnPtr<CCRenderPass> create(CCRenderSurface* renderSurface, int id) { return adoptPtr(new CCTestRenderPass(renderSurface, id)); }
+ static PassOwnPtr<CCRenderPass> create(int id, IntRect outputRect, const WebTransformationMatrix& rootTransform) { return adoptPtr(new CCTestRenderPass(id, outputRect, rootTransform)); }
void appendQuad(PassOwnPtr<CCDrawQuad> quad) { m_quadList.append(quad); }
protected:
- CCTestRenderPass(CCRenderSurface* renderSurface, int id) : CCRenderPass(renderSurface, id) { }
+ CCTestRenderPass(int id, IntRect outputRect, const WebTransformationMatrix& rootTransform) : CCRenderPass(id, outputRect, rootTransform) { }
};
-class CCTestRenderer : public LayerRendererChromium, public CCRendererClient {
+class CCTestRenderer : public CCRendererGL, public CCRendererClient {
public:
static PassOwnPtr<CCTestRenderer> create(CCResourceProvider* resourceProvider)
{
@@ -3845,7 +3847,7 @@ public:
virtual void setMemoryAllocationLimitBytes(size_t) OVERRIDE { }
protected:
- CCTestRenderer(CCResourceProvider* resourceProvider) : LayerRendererChromium(this, resourceProvider, UnthrottledUploader) { }
+ CCTestRenderer(CCResourceProvider* resourceProvider) : CCRendererGL(this, resourceProvider, UnthrottledUploader) { }
private:
CCLayerTreeSettings m_settings;
@@ -3853,29 +3855,18 @@ private:
HashSet<int> m_textures;
};
-static PassOwnPtr<CCRenderPass> createDummyRenderPass(RenderPassRemovalTestData& testData, int id)
-{
- OwnPtr<CCLayerImpl> layerImpl(CCLayerImpl::create(id));
- OwnPtr<CCRenderSurface> renderSurface(adoptPtr(new CCRenderSurface(layerImpl.get())));
- OwnPtr<CCRenderPass> renderPassPtr(CCTestRenderPass::create(renderSurface.get(), layerImpl->id()));
-
- testData.renderSurfaceStore.append(renderSurface.release());
- testData.layerStore.append(layerImpl.release());
- return renderPassPtr.release();
-}
-
static void configureRenderPassTestData(const char* testScript, RenderPassRemovalTestData& testData, CCTestRenderer* renderer)
{
renderer->clearCachedTextures();
// One shared state for all quads - we don't need the correct details
- testData.sharedQuadState = CCSharedQuadState::create(0, WebTransformationMatrix(), IntRect(), IntRect(), 1.0, true);
+ testData.sharedQuadState = CCSharedQuadState::create(WebTransformationMatrix(), IntRect(), IntRect(), 1.0, true);
const char* currentChar = testScript;
// Pre-create root pass
char rootRenderPassId = testScript[0];
- OwnPtr<CCRenderPass> rootRenderPass = createDummyRenderPass(testData, rootRenderPassId);
+ OwnPtr<CCRenderPass> rootRenderPass = CCTestRenderPass::create(rootRenderPassId, IntRect(), WebTransformationMatrix());
testData.renderPassCache.insert(std::pair<char, RenderPassCacheEntry>(rootRenderPassId, RenderPassCacheEntry(rootRenderPass.release())));
while (*currentChar) {
char renderPassId = currentChar[0];
@@ -3926,7 +3917,7 @@ static void configureRenderPassTestData(const char* testScript, RenderPassRemova
if (hasTexture)
renderer->setHaveCachedResourcesForRenderPassId(newRenderPassId);
- OwnPtr<CCRenderPass> renderPass = createDummyRenderPass(testData, newRenderPassId);
+ OwnPtr<CCRenderPass> renderPass = CCTestRenderPass::create(newRenderPassId, IntRect(), WebTransformationMatrix());
testData.renderPassCache.insert(std::pair<char, RenderPassCacheEntry>(newRenderPassId, RenderPassCacheEntry(renderPass.release())));
}
diff --git a/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp b/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp
index 5202208b9..c026bd4f5 100644
--- a/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp
+++ b/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp
@@ -30,6 +30,7 @@
#include "CCLayerTreeHostImpl.h"
#include "CCOcclusionTrackerTestCommon.h"
#include "CCSettings.h"
+#include "CCSingleThreadProxy.h"
#include "CCTextureUpdateQueue.h"
#include "CCThreadedTest.h"
#include "CCTimingFunction.h"
@@ -61,7 +62,7 @@ class CCLayerTreeHostTestShortlived1 : public CCLayerTreeHostTest {
public:
CCLayerTreeHostTestShortlived1() { }
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
// Kill the layerTreeHost immediately.
m_layerTreeHost->setRootLayer(0);
@@ -70,7 +71,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
};
@@ -80,7 +81,7 @@ class CCLayerTreeHostTestShortlived2 : public CCLayerTreeHostTest {
public:
CCLayerTreeHostTestShortlived2() { }
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsCommitToMainThread();
@@ -91,7 +92,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
};
@@ -103,7 +104,7 @@ class CCLayerTreeHostTestShortlived3 : public CCLayerTreeHostTest {
public:
CCLayerTreeHostTestShortlived3() { }
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsRedrawToMainThread();
@@ -114,7 +115,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
};
@@ -130,19 +131,19 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsCommitToMainThread();
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
m_numCompleteCommits++;
if (m_numCompleteCommits == 2)
endTest();
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl*)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
if (m_numDraws == 1)
postSetNeedsCommitToMainThread();
@@ -150,7 +151,7 @@ public:
postSetNeedsRedrawToMainThread();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -174,25 +175,25 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsCommitToMainThread();
postSetNeedsCommitToMainThread();
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
m_numDraws++;
if (!impl->sourceFrameNumber())
endTest();
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
m_numCommits++;
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
EXPECT_GE(1, m_numCommits);
EXPECT_GE(1, m_numDraws);
@@ -218,12 +219,12 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsCommitToMainThread();
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
if (!impl->sourceFrameNumber())
postSetNeedsCommitToMainThread();
@@ -231,12 +232,12 @@ public:
endTest();
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
m_numCommits++;
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
EXPECT_EQ(2, m_numCommits);
EXPECT_GE(2, m_numDraws);
@@ -267,12 +268,12 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsCommitToMainThread();
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
EXPECT_EQ(0, impl->sourceFrameNumber());
if (!m_numDraws)
@@ -282,13 +283,13 @@ public:
m_numDraws++;
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
EXPECT_EQ(0, m_numDraws);
m_numCommits++;
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
EXPECT_GE(2, m_numDraws);
EXPECT_EQ(1, m_numCommits);
@@ -312,19 +313,19 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsCommitToMainThread();
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
// Only the initial draw should bring us here.
EXPECT_TRUE(impl->canDraw());
EXPECT_EQ(0, impl->sourceFrameNumber());
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
if (m_numCommits >= 1) {
// After the first commit, we should not be able to draw.
@@ -332,7 +333,7 @@ public:
}
}
- virtual void didCommit()
+ virtual void didCommit() OVERRIDE
{
m_numCommits++;
if (m_numCommits == 1) {
@@ -348,7 +349,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -367,26 +368,26 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postAcquireLayerTextures();
postSetNeedsRedrawToMainThread(); // should be inhibited without blocking
postSetNeedsCommitToMainThread();
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
m_numDraws++;
EXPECT_EQ(m_numDraws, m_numCommits);
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
m_numCommits++;
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
EXPECT_EQ(1, m_numCommits);
}
@@ -413,12 +414,12 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsCommitToMainThread();
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
m_numCommits++;
if (m_numCommits == 2)
@@ -431,7 +432,7 @@ public:
}
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -452,11 +453,11 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
}
- virtual void didCommitAndDrawFrame()
+ virtual void didCommitAndDrawFrame() OVERRIDE
{
m_numCommits++;
if (m_numCommits == 1) {
@@ -470,7 +471,7 @@ public:
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -489,7 +490,7 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
// Request a commit (from the main thread), which will trigger the commit flow from the impl side.
m_layerTreeHost->setNeedsCommit();
@@ -505,7 +506,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -530,12 +531,12 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsAnimateToMainThread();
}
- virtual void updateAnimations(double)
+ virtual void updateAnimations(double) OVERRIDE
{
if (!m_numAnimates) {
m_layerTreeHost->setNeedsAnimate();
@@ -545,7 +546,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -570,12 +571,12 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postAddInstantAnimationToMainThread();
}
- virtual void animateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime)
+ virtual void animateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime) OVERRIDE
{
if (!m_numAnimates) {
// The animation had zero duration so layerTreeHostImpl should no
@@ -592,13 +593,13 @@ public:
endTest();
}
- virtual void notifyAnimationStarted(double wallClockTime)
+ virtual void notifyAnimationStarted(double wallClockTime) OVERRIDE
{
m_receivedAnimationStartedNotification = true;
m_startTime = wallClockTime;
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -623,27 +624,27 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postAddAnimationToMainThread();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
- virtual void animateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime)
+ virtual void animateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime) OVERRIDE
{
m_startedAnimating = true;
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl*)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
if (m_startedAnimating)
endTest();
}
- virtual bool prepareToDrawOnCCThread(CCLayerTreeHostImpl*)
+ virtual bool prepareToDrawOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
return false;
}
@@ -666,7 +667,7 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postAddAnimationToMainThread();
}
@@ -674,7 +675,7 @@ public:
// Use willAnimateLayers to set visible false before the animation runs and
// causes a commit, so we block the second visible animate in single-thread
// mode.
- virtual void willAnimateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime)
+ virtual void willAnimateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime) OVERRIDE
{
if (m_numAnimates < 2) {
if (!m_numAnimates) {
@@ -687,7 +688,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -704,12 +705,12 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postAddAnimationToMainThread();
}
- virtual void animateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime)
+ virtual void animateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime) OVERRIDE
{
const CCActiveAnimation* animation = m_layerTreeHost->rootLayer()->layerAnimationController()->getActiveAnimation(0, CCActiveAnimation::Opacity);
if (!animation)
@@ -726,7 +727,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -742,7 +743,7 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->rootLayer()->setDrawOpacity(1);
m_layerTreeHost->setViewportSize(IntSize(10, 10), IntSize(10, 10));
@@ -750,7 +751,7 @@ public:
postAddAnimationToMainThread();
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
// If the subtree was skipped when preparing to draw, the layer's draw opacity
// will not have been updated. It should be set to 0 due to the animation.
@@ -759,7 +760,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
};
@@ -782,18 +783,18 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postAddAnimationToMainThread();
}
// This is guaranteed to be called before CCLayerTreeHostImpl::animateLayers.
- virtual void willAnimateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime)
+ virtual void willAnimateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime) OVERRIDE
{
m_layerTreeHostImpl = layerTreeHostImpl;
}
- virtual void notifyAnimationStarted(double time)
+ virtual void notifyAnimationStarted(double time) OVERRIDE
{
EXPECT_TRUE(m_layerTreeHostImpl);
@@ -807,7 +808,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -824,17 +825,17 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postAddInstantAnimationToMainThread();
}
- virtual void notifyAnimationFinished(double time)
+ virtual void notifyAnimationFinished(double time) OVERRIDE
{
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -853,14 +854,14 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->rootLayer()->setScrollable(true);
m_layerTreeHost->rootLayer()->setScrollPosition(m_initialScroll);
postSetNeedsCommitToMainThread();
}
- virtual void layout()
+ virtual void layout() OVERRIDE
{
LayerChromium* root = m_layerTreeHost->rootLayer();
if (!m_layerTreeHost->commitNumber())
@@ -873,7 +874,7 @@ public:
}
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
CCLayerImpl* root = impl->rootLayer();
EXPECT_EQ(root->scrollDelta(), IntSize());
@@ -893,14 +894,14 @@ public:
}
}
- virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale)
+ virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale) OVERRIDE
{
IntPoint position = m_layerTreeHost->rootLayer()->scrollPosition();
m_layerTreeHost->rootLayer()->setScrollPosition(position + scrollDelta);
m_scrolls++;
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
EXPECT_EQ(1, m_scrolls);
}
@@ -925,14 +926,14 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->rootLayer()->setScrollable(true);
m_layerTreeHost->rootLayer()->setScrollPosition(m_initialScroll);
postSetNeedsCommitToMainThread();
}
- virtual void beginCommitOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void beginCommitOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
LayerChromium* root = m_layerTreeHost->rootLayer();
if (!impl->sourceFrameNumber())
@@ -943,7 +944,7 @@ public:
EXPECT_EQ(root->scrollPosition(), m_initialScroll + m_scrollAmount + m_scrollAmount);
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
CCLayerImpl* root = impl->rootLayer();
root->setScrollable(true);
@@ -974,14 +975,14 @@ public:
}
}
- virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale)
+ virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale) OVERRIDE
{
IntPoint position = m_layerTreeHost->rootLayer()->scrollPosition();
m_layerTreeHost->rootLayer()->setScrollPosition(position + scrollDelta);
m_scrolls++;
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
EXPECT_EQ(1, m_scrolls);
}
@@ -1002,7 +1003,7 @@ public:
CCLayerTreeHostTestCommit() { }
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->setViewportSize(IntSize(20, 20), IntSize(20, 20));
m_layerTreeHost->setBackgroundColor(SK_ColorGRAY);
@@ -1011,7 +1012,7 @@ public:
postSetNeedsCommitToMainThread();
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
EXPECT_EQ(IntSize(20, 20), impl->layoutViewportSize());
EXPECT_EQ(SK_ColorGRAY, impl->backgroundColor());
@@ -1020,7 +1021,7 @@ public:
endTest();
}
- virtual void afterTest() { }
+ virtual void afterTest() OVERRIDE { }
};
TEST_F(CCLayerTreeHostTestCommit, runTest)
@@ -1038,7 +1039,7 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->rootLayer()->setScrollable(true);
m_layerTreeHost->rootLayer()->setScrollPosition(IntPoint());
@@ -1052,7 +1053,7 @@ public:
test->layerTreeHost()->startPageScaleAnimation(IntSize(), false, 1.25, 0);
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
impl->rootLayer()->setScrollable(true);
impl->rootLayer()->setScrollPosition(IntPoint());
@@ -1065,14 +1066,14 @@ public:
}
}
- virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale)
+ virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale) OVERRIDE
{
IntPoint position = m_layerTreeHost->rootLayer()->scrollPosition();
m_layerTreeHost->rootLayer()->setScrollPosition(position + scrollDelta);
m_layerTreeHost->setPageScaleFactorAndLimits(scale, 0.5, 2);
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
impl->processScrollDeltas();
// We get one commit before the first draw, and the animation doesn't happen until the second draw.
@@ -1083,7 +1084,7 @@ public:
postSetNeedsRedrawToMainThread();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -1104,21 +1105,21 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetVisibleToMainThread(false);
postSetNeedsRedrawToMainThread(); // This is suppressed while we're invisible.
postSetVisibleToMainThread(true); // Triggers the redraw.
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
EXPECT_TRUE(impl->visible());
++m_numDraws;
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
EXPECT_EQ(1, m_numDraws);
}
@@ -1145,8 +1146,6 @@ public:
m_test->layerTreeHost()->rootLayer()->setOpacity(0);
}
- virtual bool preserves3D() { return false; }
-
private:
CCLayerTreeHostTest* m_test;
};
@@ -1186,7 +1185,7 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->setRootLayer(m_updateCheckLayer);
m_layerTreeHost->setViewportSize(IntSize(10, 10), IntSize(10, 10));
@@ -1194,12 +1193,12 @@ public:
postSetNeedsCommitToMainThread();
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE
{
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
// update() should have been called once.
EXPECT_EQ(1, m_updateCheckLayer->paintContentsCount());
@@ -1235,7 +1234,7 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->setViewportSize(IntSize(40, 40), IntSize(60, 60));
m_layerTreeHost->setDeviceScaleFactor(1.5);
@@ -1256,7 +1255,7 @@ public:
m_layerTreeHost->setRootLayer(m_rootLayer);
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
// Get access to protected methods.
MockLayerTreeHostImpl* mockImpl = static_cast<MockLayerTreeHostImpl*>(impl);
@@ -1314,7 +1313,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
m_rootLayer.clear();
m_childLayer.clear();
@@ -1341,7 +1340,7 @@ public:
m_settings.maxPartialTextureUpdates = 0;
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->setRootLayer(m_layer);
m_layerTreeHost->setViewportSize(IntSize(10, 10), IntSize(10, 10));
@@ -1350,7 +1349,7 @@ public:
postSetNeedsRedrawToMainThread();
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->context()->context3D());
@@ -1384,7 +1383,7 @@ public:
}
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->context()->context3D());
@@ -1399,12 +1398,12 @@ public:
endTest();
}
- virtual void layout()
+ virtual void layout() OVERRIDE
{
m_layer->setNeedsDisplay();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -1441,7 +1440,7 @@ public:
m_settings.maxPartialTextureUpdates = 1;
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->setRootLayer(m_parent);
m_layerTreeHost->setViewportSize(IntSize(10, 20), IntSize(10, 20));
@@ -1454,7 +1453,7 @@ public:
postSetNeedsRedrawToMainThread();
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->context()->context3D());
@@ -1506,7 +1505,7 @@ public:
}
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->context()->context3D());
@@ -1525,7 +1524,7 @@ public:
endTest();
}
- virtual void layout()
+ virtual void layout() OVERRIDE
{
switch (m_numCommits++) {
case 0:
@@ -1551,7 +1550,7 @@ public:
}
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -1599,7 +1598,7 @@ class CCLayerTreeHostTestLayerOcclusion : public CCLayerTreeHostTest {
public:
CCLayerTreeHostTestLayerOcclusion() { }
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
RefPtr<TestLayerChromium> rootLayer = TestLayerChromium::create();
RefPtr<TestLayerChromium> child = TestLayerChromium::create();
@@ -1625,7 +1624,7 @@ public:
m_layerTreeHost->setRootLayer(rootLayer);
m_layerTreeHost->setViewportSize(rootLayer->bounds(), rootLayer->bounds());
- ASSERT_TRUE(m_layerTreeHost->initializeLayerRendererIfNeeded());
+ ASSERT_TRUE(m_layerTreeHost->initializeRendererIfNeeded());
CCTextureUpdateQueue queue;
m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
@@ -1791,7 +1790,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
};
@@ -1802,7 +1801,7 @@ class CCLayerTreeHostTestLayerOcclusionWithFilters : public CCLayerTreeHostTest
public:
CCLayerTreeHostTestLayerOcclusionWithFilters() { }
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
RefPtr<TestLayerChromium> rootLayer = TestLayerChromium::create();
RefPtr<TestLayerChromium> child = TestLayerChromium::create();
@@ -1833,7 +1832,7 @@ public:
m_layerTreeHost->setRootLayer(rootLayer);
m_layerTreeHost->setViewportSize(rootLayer->bounds(), rootLayer->bounds());
- ASSERT_TRUE(m_layerTreeHost->initializeLayerRendererIfNeeded());
+ ASSERT_TRUE(m_layerTreeHost->initializeRendererIfNeeded());
CCTextureUpdateQueue queue;
m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
@@ -1882,7 +1881,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
};
@@ -1893,7 +1892,7 @@ class CCLayerTreeHostTestManySurfaces : public CCLayerTreeHostTest {
public:
CCLayerTreeHostTestManySurfaces() { }
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
// We create enough RenderSurfaces that it will trigger Vector reallocation while computing occlusion.
Region occluded;
@@ -1922,7 +1921,7 @@ public:
m_layerTreeHost->setRootLayer(layers[0].get());
m_layerTreeHost->setViewportSize(layers[0]->bounds(), layers[0]->bounds());
- ASSERT_TRUE(m_layerTreeHost->initializeLayerRendererIfNeeded());
+ ASSERT_TRUE(m_layerTreeHost->initializeRendererIfNeeded());
CCTextureUpdateQueue queue;
m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
@@ -1941,7 +1940,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
};
@@ -1955,23 +1954,23 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsCommitToMainThread();
}
- virtual void didCommitAndDrawFrame()
+ virtual void didCommitAndDrawFrame() OVERRIDE
{
m_layerTreeHost->loseContext(1);
}
- virtual void didRecreateOutputSurface(bool succeeded)
+ virtual void didRecreateOutputSurface(bool succeeded) OVERRIDE
{
EXPECT_TRUE(succeeded);
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
};
@@ -1989,24 +1988,24 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
postSetNeedsCommitToMainThread();
}
- virtual void didCommitAndDrawFrame()
+ virtual void didCommitAndDrawFrame() OVERRIDE
{
m_layerTreeHost->loseContext(10);
}
- virtual void didRecreateOutputSurface(bool succeeded)
+ virtual void didRecreateOutputSurface(bool succeeded) OVERRIDE
{
EXPECT_FALSE(succeeded);
m_layerTreeHost->finishAllRendering();
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
};
@@ -2023,13 +2022,13 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->rootLayer()->setScrollable(true);
postSetNeedsCommitToMainThread();
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
CCLayerImpl* root = impl->rootLayer();
root->setMaxScrollPosition(IntSize(100, 100));
@@ -2051,13 +2050,13 @@ public:
root->scrollBy(m_scrollAmount);
}
- virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale)
+ virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale) OVERRIDE
{
IntPoint position = m_layerTreeHost->rootLayer()->scrollPosition();
m_layerTreeHost->rootLayer()->setScrollPosition(position + scrollDelta);
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
private:
@@ -2078,12 +2077,12 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->setNeedsRedraw();
}
- virtual void didCommitAndDrawFrame()
+ virtual void didCommitAndDrawFrame() OVERRIDE
{
if (m_once)
return;
@@ -2102,13 +2101,13 @@ public:
endTest();
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
Locker<Mutex> lock(m_mutex);
++m_drawCount;
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
private:
@@ -2129,7 +2128,7 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
EXPECT_FALSE(m_addedAnimation);
@@ -2148,12 +2147,12 @@ public:
endTest();
}
- virtual void didAddAnimation()
+ virtual void didAddAnimation() OVERRIDE
{
m_addedAnimation = true;
}
- virtual void afterTest() { }
+ virtual void afterTest() OVERRIDE { }
private:
bool m_addedAnimation;
@@ -2249,7 +2248,7 @@ class CCLayerTreeHostTestCompositeAndReadbackCleanup : public CCLayerTreeHostTes
public:
CCLayerTreeHostTestCompositeAndReadbackCleanup() { }
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
LayerChromium* rootLayer = m_layerTreeHost->rootLayer();
@@ -2260,7 +2259,7 @@ public:
endTest();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
};
@@ -2278,7 +2277,7 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->setViewportSize(IntSize(100, 100), IntSize(100, 100));
@@ -2298,9 +2297,9 @@ public:
m_layerTreeHost->setRootLayer(m_rootLayer);
}
- virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* hostImpl)
+ virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* hostImpl) OVERRIDE
{
- CCRenderer* renderer = hostImpl->layerRenderer();
+ CCRenderer* renderer = hostImpl->renderer();
unsigned surface1RenderPassId = hostImpl->rootLayer()->children()[0]->id();
unsigned surface2RenderPassId = hostImpl->rootLayer()->children()[0]->children()[0]->id();
@@ -2322,7 +2321,7 @@ public:
}
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
EXPECT_EQ(2, m_rootLayer->paintContentsCount());
EXPECT_EQ(2, m_surfaceLayer1->paintContentsCount());
@@ -2409,7 +2408,7 @@ public:
return adoptPtr(new EvictionTestLayerImpl(id));
}
virtual ~EvictionTestLayerImpl() { }
- virtual void appendQuads(CCQuadSink&, const CCSharedQuadState*, bool& hadMissingTiles)
+ virtual void appendQuads(CCQuadSink&, bool& hadMissingTiles) OVERRIDE
{
ASSERT_TRUE(m_hasTexture);
ASSERT_NE(0u, layerTreeHostImpl()->resourceProvider()->numResources());
@@ -2464,7 +2463,7 @@ public:
{
}
- virtual void beginTest()
+ virtual void beginTest() OVERRIDE
{
m_layerTreeHost->setRootLayer(m_layer);
m_layerTreeHost->setViewportSize(IntSize(10, 20), IntSize(10, 20));
@@ -2477,7 +2476,7 @@ public:
public:
EvictTexturesTask(CCLayerTreeHostTestEvictTextures* test) : m_test(test) { }
virtual ~EvictTexturesTask() { }
- virtual void run()
+ virtual void run() OVERRIDE
{
ASSERT(m_test->m_implForEvictTextures);
m_test->m_implForEvictTextures->releaseContentsTextures();
@@ -2515,7 +2514,7 @@ public:
// the beginFrame/commit pair.
// Commits 5+6 test the path where an eviction happens during the eviction
// recovery path.
- virtual void didCommitAndDrawFrame()
+ virtual void didCommitAndDrawFrame() OVERRIDE
{
switch (m_numCommits) {
case 1:
@@ -2544,12 +2543,12 @@ public:
}
}
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl)
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
{
m_implForEvictTextures = impl;
}
- virtual void layout()
+ virtual void layout() OVERRIDE
{
++m_numCommits;
switch (m_numCommits) {
@@ -2578,7 +2577,7 @@ public:
m_layer->resetUpdated();
}
- virtual void afterTest()
+ virtual void afterTest() OVERRIDE
{
}
@@ -2594,4 +2593,97 @@ TEST_F(CCLayerTreeHostTestEvictTextures, runMultiThread)
runTest(true);
}
+class CCLayerTreeHostTestLostContextAfterEvictTextures : public CCLayerTreeHostTest {
+public:
+ CCLayerTreeHostTestLostContextAfterEvictTextures()
+ : m_layer(EvictionTestLayer::create())
+ , m_implForEvictTextures(0)
+ , m_numCommits(0)
+ {
+ }
+
+ virtual void beginTest() OVERRIDE
+ {
+ m_layerTreeHost->setRootLayer(m_layer);
+ m_layerTreeHost->setViewportSize(IntSize(10, 20), IntSize(10, 20));
+
+ WebTransformationMatrix identityMatrix;
+ setLayerPropertiesForTesting(m_layer.get(), 0, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(10, 20), true);
+ }
+
+ class EvictTexturesTask : public WebKit::WebThread::Task {
+ public:
+ EvictTexturesTask(CCLayerTreeHostTestLostContextAfterEvictTextures* test) : m_test(test) { }
+ virtual ~EvictTexturesTask() { }
+ virtual void run() OVERRIDE
+ {
+ m_test->evictTexturesOnImplThread();
+ }
+
+ private:
+ CCLayerTreeHostTestLostContextAfterEvictTextures* m_test;
+ };
+
+ void postEvictTextures()
+ {
+ if (webThread())
+ webThread()->postTask(new EvictTexturesTask(this));
+ else {
+ DebugScopedSetImplThread impl;
+ evictTexturesOnImplThread();
+ }
+ }
+
+ void evictTexturesOnImplThread()
+ {
+ ASSERT(m_implForEvictTextures);
+ m_implForEvictTextures->releaseContentsTextures();
+ }
+
+ // Commit 1: Just commit and draw normally, then at the end, set ourselves
+ // invisible (to prevent a commit that would recreate textures after
+ // eviction, before the context recovery), and post a task that will evict
+ // textures, then cause the context to be lost, and then set ourselves
+ // visible again (to allow commits, since that's what causes context
+ // recovery in single thread).
+ virtual void didCommitAndDrawFrame() OVERRIDE
+ {
+ ++m_numCommits;
+ switch (m_numCommits) {
+ case 1:
+ EXPECT_TRUE(m_layer->updated());
+ m_layerTreeHost->setVisible(false);
+ postEvictTextures();
+ m_layerTreeHost->loseContext(1);
+ m_layerTreeHost->setVisible(true);
+ break;
+ default:
+ break;
+ }
+ }
+
+ virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE
+ {
+ m_implForEvictTextures = impl;
+ }
+
+ virtual void didRecreateOutputSurface(bool succeeded) OVERRIDE
+ {
+ EXPECT_TRUE(succeeded);
+ endTest();
+ }
+
+ virtual void afterTest() OVERRIDE
+ {
+ }
+
+private:
+ MockContentLayerDelegate m_delegate;
+ RefPtr<EvictionTestLayer> m_layer;
+ CCLayerTreeHostImpl* m_implForEvictTextures;
+ int m_numCommits;
+};
+
+SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestLostContextAfterEvictTextures)
+
} // namespace
diff --git a/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp b/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp
index f732cdc68..2c5e8859c 100644
--- a/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp
+++ b/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp
@@ -96,14 +96,12 @@ static PassOwnPtr<CCTiledLayerImpl> makeLayer(CCTiledLayerImpl* parent, const We
return layer.release();
}
-static void appendQuads(CCQuadList& quadList, Vector<OwnPtr<CCSharedQuadState> >& sharedStateList, CCTiledLayerImpl* layer, CCLayerIteratorType& it, CCOcclusionTrackerImpl& occlusionTracker)
+static void appendQuads(CCQuadList& quadList, CCSharedQuadStateList& sharedStateList, CCTiledLayerImpl* layer, CCLayerIteratorType& it, CCOcclusionTrackerImpl& occlusionTracker)
{
occlusionTracker.enterLayer(it);
- CCQuadCuller quadCuller(quadList, layer, &occlusionTracker, false, false);
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(0);
+ CCQuadCuller quadCuller(quadList, sharedStateList, layer, &occlusionTracker, false, false);
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
- sharedStateList.append(sharedQuadState.release());
+ layer->appendQuads(quadCuller, hadMissingTiles);
occlusionTracker.leaveLayer(it);
++it;
}
@@ -111,9 +109,9 @@ static void appendQuads(CCQuadList& quadList, Vector<OwnPtr<CCSharedQuadState> >
#define DECLARE_AND_INITIALIZE_TEST_QUADS \
DebugScopedSetImplThread impl; \
CCQuadList quadList; \
- Vector<OwnPtr<CCSharedQuadState> > sharedStateList; \
+ CCSharedQuadStateList sharedStateList; \
Vector<CCLayerImpl*> renderSurfaceLayerList; \
- WebTransformationMatrix childTransform; \
+ WebTransformationMatrix childTransform; \
IntSize rootSize = IntSize(300, 300); \
IntRect rootRect = IntRect(IntPoint(), rootSize); \
IntSize childSize = IntSize(200, 200); \
diff --git a/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp b/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp
index a6a422e32..05d716641 100644
--- a/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp
+++ b/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp
@@ -29,6 +29,7 @@
#include "CCLayerImpl.h"
#include "CCSharedQuadState.h"
#include "CCSingleThreadProxy.h"
+#include "MockCCQuadCuller.h"
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <public/WebTransformationMatrix.h>
@@ -115,7 +116,15 @@ TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectSharedQuadState)
renderSurface->setClipRect(clipRect);
renderSurface->setDrawOpacity(1);
- OwnPtr<CCSharedQuadState> sharedQuadState = renderSurface->createSharedQuadState(0);
+ CCQuadList quadList;
+ CCSharedQuadStateList sharedStateList;
+ MockCCQuadCuller mockQuadCuller(quadList, sharedStateList);
+
+ bool forReplica = false;
+ renderSurface->appendQuads(mockQuadCuller, forReplica, 1);
+
+ ASSERT_EQ(1u, sharedStateList.size());
+ CCSharedQuadState* sharedQuadState = sharedStateList[0].get();
EXPECT_EQ(30, sharedQuadState->quadTransform.m41());
EXPECT_EQ(40, sharedQuadState->quadTransform.m42());
diff --git a/Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp b/Source/WebKit/chromium/tests/CCRendererGLTest.cpp
index 36eddc534..2f3fd6a08 100644
--- a/Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp
+++ b/Source/WebKit/chromium/tests/CCRendererGLTest.cpp
@@ -23,7 +23,7 @@
*/
#include "config.h"
-#include "LayerRendererChromium.h"
+#include "CCRendererGL.h"
#include "CCDrawQuad.h"
#include "CCPrioritizedTextureManager.h"
@@ -36,6 +36,7 @@
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <public/WebCompositor.h>
+#include <public/WebTransformationMatrix.h>
using namespace WebCore;
using namespace WebKit;
@@ -79,8 +80,7 @@ public:
, m_rootLayer(CCLayerImpl::create(1))
, m_memoryAllocationLimitBytes(CCPrioritizedTextureManager::defaultMemoryAllocationLimit())
{
- m_rootLayer->createRenderSurface();
- OwnPtr<CCRenderPass> rootRenderPass = CCRenderPass::create(m_rootLayer->renderSurface(), m_rootLayer->id());
+ OwnPtr<CCRenderPass> rootRenderPass = CCRenderPass::create(m_rootLayer->id(), IntRect(), WebTransformationMatrix());
m_renderPassesInDrawOrder.append(rootRenderPass.get());
m_renderPasses.set(m_rootLayer->id(), rootRenderPass.release());
}
@@ -112,32 +112,32 @@ private:
size_t m_memoryAllocationLimitBytes;
};
-class FakeLayerRendererChromium : public LayerRendererChromium {
+class FakeCCRendererGL : public CCRendererGL {
public:
- FakeLayerRendererChromium(CCRendererClient* client, CCResourceProvider* resourceProvider) : LayerRendererChromium(client, resourceProvider, UnthrottledUploader) { }
+ FakeCCRendererGL(CCRendererClient* client, CCResourceProvider* resourceProvider) : CCRendererGL(client, resourceProvider, UnthrottledUploader) { }
- // LayerRendererChromium methods.
+ // CCRendererGL methods.
// Changing visibility to public.
- using LayerRendererChromium::initialize;
- using LayerRendererChromium::isFramebufferDiscarded;
+ using CCRendererGL::initialize;
+ using CCRendererGL::isFramebufferDiscarded;
};
-class LayerRendererChromiumTest : public testing::Test {
+class CCRendererGLTest : public testing::Test {
protected:
- LayerRendererChromiumTest()
+ CCRendererGLTest()
: m_suggestHaveBackbufferYes(1, true)
, m_suggestHaveBackbufferNo(1, false)
, m_context(FakeWebCompositorOutputSurface::create(adoptPtr(new FrameCountingMemoryAllocationSettingContext())))
, m_resourceProvider(CCResourceProvider::create(m_context.get()))
- , m_layerRendererChromium(&m_mockClient, m_resourceProvider.get())
+ , m_renderer(&m_mockClient, m_resourceProvider.get())
{
}
virtual void SetUp()
{
WebKit::WebCompositor::initialize(0);
- m_layerRendererChromium.initialize();
+ m_renderer.initialize();
}
virtual void TearDown()
@@ -147,7 +147,7 @@ protected:
void swapBuffers()
{
- m_layerRendererChromium.swapBuffers();
+ m_renderer.swapBuffers();
}
FrameCountingMemoryAllocationSettingContext* context() { return static_cast<FrameCountingMemoryAllocationSettingContext*>(m_context->context3D()); }
@@ -158,92 +158,92 @@ protected:
OwnPtr<CCGraphicsContext> m_context;
FakeCCRendererClient m_mockClient;
OwnPtr<CCResourceProvider> m_resourceProvider;
- FakeLayerRendererChromium m_layerRendererChromium;
+ FakeCCRendererGL m_renderer;
CCScopedSettings m_scopedSettings;
};
-// Test LayerRendererChromium discardFramebuffer functionality:
+// Test CCRendererGL discardFramebuffer functionality:
// Suggest recreating framebuffer when one already exists.
// Expected: it does nothing.
-TEST_F(LayerRendererChromiumTest, SuggestBackbufferYesWhenItAlreadyExistsShouldDoNothing)
+TEST_F(CCRendererGLTest, SuggestBackbufferYesWhenItAlreadyExistsShouldDoNothing)
{
context()->setMemoryAllocation(m_suggestHaveBackbufferYes);
EXPECT_EQ(0, m_mockClient.setFullRootLayerDamageCount());
- EXPECT_FALSE(m_layerRendererChromium.isFramebufferDiscarded());
+ EXPECT_FALSE(m_renderer.isFramebufferDiscarded());
swapBuffers();
EXPECT_EQ(1, context()->frameCount());
}
-// Test LayerRendererChromium discardFramebuffer functionality:
+// Test CCRendererGL discardFramebuffer functionality:
// Suggest discarding framebuffer when one exists and the renderer is not visible.
// Expected: it is discarded and damage tracker is reset.
-TEST_F(LayerRendererChromiumTest, SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLayerWhileNotVisible)
+TEST_F(CCRendererGLTest, SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLayerWhileNotVisible)
{
- m_layerRendererChromium.setVisible(false);
+ m_renderer.setVisible(false);
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount());
- EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
}
-// Test LayerRendererChromium discardFramebuffer functionality:
+// Test CCRendererGL discardFramebuffer functionality:
// Suggest discarding framebuffer when one exists and the renderer is visible.
// Expected: the allocation is ignored.
-TEST_F(LayerRendererChromiumTest, SuggestBackbufferNoDoNothingWhenVisible)
+TEST_F(CCRendererGLTest, SuggestBackbufferNoDoNothingWhenVisible)
{
- m_layerRendererChromium.setVisible(true);
+ m_renderer.setVisible(true);
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
EXPECT_EQ(0, m_mockClient.setFullRootLayerDamageCount());
- EXPECT_FALSE(m_layerRendererChromium.isFramebufferDiscarded());
+ EXPECT_FALSE(m_renderer.isFramebufferDiscarded());
}
-// Test LayerRendererChromium discardFramebuffer functionality:
+// Test CCRendererGL discardFramebuffer functionality:
// Suggest discarding framebuffer when one does not exist.
// Expected: it does nothing.
-TEST_F(LayerRendererChromiumTest, SuggestBackbufferNoWhenItDoesntExistShouldDoNothing)
+TEST_F(CCRendererGLTest, SuggestBackbufferNoWhenItDoesntExistShouldDoNothing)
{
- m_layerRendererChromium.setVisible(false);
+ m_renderer.setVisible(false);
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount());
- EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount());
- EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
}
-// Test LayerRendererChromium discardFramebuffer functionality:
+// Test CCRendererGL discardFramebuffer functionality:
// Begin drawing a frame while a framebuffer is discarded.
// Expected: will recreate framebuffer.
-TEST_F(LayerRendererChromiumTest, DiscardedBackbufferIsRecreatedForScopeDuration)
+TEST_F(CCRendererGLTest, DiscardedBackbufferIsRecreatedForScopeDuration)
{
- m_layerRendererChromium.setVisible(false);
+ m_renderer.setVisible(false);
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
- EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount());
- m_layerRendererChromium.setVisible(true);
- m_layerRendererChromium.drawFrame(m_mockClient.renderPassesInDrawOrder(), m_mockClient.renderPasses());
- EXPECT_FALSE(m_layerRendererChromium.isFramebufferDiscarded());
+ m_renderer.setVisible(true);
+ m_renderer.drawFrame(m_mockClient.renderPassesInDrawOrder(), m_mockClient.renderPasses());
+ EXPECT_FALSE(m_renderer.isFramebufferDiscarded());
swapBuffers();
EXPECT_EQ(1, context()->frameCount());
}
-TEST_F(LayerRendererChromiumTest, FramebufferDiscardedAfterReadbackWhenNotVisible)
+TEST_F(CCRendererGLTest, FramebufferDiscardedAfterReadbackWhenNotVisible)
{
- m_layerRendererChromium.setVisible(false);
+ m_renderer.setVisible(false);
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
- EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount());
char pixels[4];
- m_layerRendererChromium.drawFrame(m_mockClient.renderPassesInDrawOrder(), m_mockClient.renderPasses());
- EXPECT_FALSE(m_layerRendererChromium.isFramebufferDiscarded());
+ m_renderer.drawFrame(m_mockClient.renderPassesInDrawOrder(), m_mockClient.renderPasses());
+ EXPECT_FALSE(m_renderer.isFramebufferDiscarded());
- m_layerRendererChromium.getFramebufferPixels(pixels, IntRect(0, 0, 1, 1));
- EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded());
+ m_renderer.getFramebufferPixels(pixels, IntRect(0, 0, 1, 1));
+ EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
EXPECT_EQ(2, m_mockClient.setFullRootLayerDamageCount());
}
@@ -313,16 +313,16 @@ public:
virtual WGC3Dsizeiptr getVertexAttribOffset(WGC3Duint index, WGC3Denum pname) { ADD_FAILURE(); return 0; }
};
-// This test isn't using the same fixture as LayerRendererChromiumTest, and you can't mix TEST() and TEST_F() with the same name, hence LRC2.
-TEST(LayerRendererChromiumTest2, initializationDoesNotMakeSynchronousCalls)
+// This test isn't using the same fixture as CCRendererGLTest, and you can't mix TEST() and TEST_F() with the same name, hence LRC2.
+TEST(CCRendererGLTest2, initializationDoesNotMakeSynchronousCalls)
{
CCScopedSettings scopedSettings;
FakeCCRendererClient mockClient;
OwnPtr<CCGraphicsContext> context(FakeWebCompositorOutputSurface::create(adoptPtr(new ForbidSynchronousCallContext)));
OwnPtr<CCResourceProvider> resourceProvider(CCResourceProvider::create(context.get()));
- FakeLayerRendererChromium layerRendererChromium(&mockClient, resourceProvider.get());
+ FakeCCRendererGL renderer(&mockClient, resourceProvider.get());
- EXPECT_TRUE(layerRendererChromium.initialize());
+ EXPECT_TRUE(renderer.initialize());
}
class LoseContextOnFirstGetContext : public FakeWebGraphicsContext3D {
@@ -358,15 +358,15 @@ private:
bool m_contextLost;
};
-TEST(LayerRendererChromiumTest2, initializationWithQuicklyLostContextDoesNotAssert)
+TEST(CCRendererGLTest2, initializationWithQuicklyLostContextDoesNotAssert)
{
CCScopedSettings scopedSettings;
FakeCCRendererClient mockClient;
OwnPtr<CCGraphicsContext> context(FakeWebCompositorOutputSurface::create(adoptPtr(new LoseContextOnFirstGetContext)));
OwnPtr<CCResourceProvider> resourceProvider(CCResourceProvider::create(context.get()));
- FakeLayerRendererChromium layerRendererChromium(&mockClient, resourceProvider.get());
+ FakeCCRendererGL renderer(&mockClient, resourceProvider.get());
- layerRendererChromium.initialize();
+ renderer.initialize();
}
class ContextThatDoesNotSupportMemoryManagmentExtensions : public FakeWebGraphicsContext3D {
@@ -381,14 +381,14 @@ public:
virtual WebString getString(WebKit::WGC3Denum name) { return WebString(); }
};
-TEST(LayerRendererChromiumTest2, initializationWithoutGpuMemoryManagerExtensionSupportShouldDefaultToNonZeroAllocation)
+TEST(CCRendererGLTest2, initializationWithoutGpuMemoryManagerExtensionSupportShouldDefaultToNonZeroAllocation)
{
FakeCCRendererClient mockClient;
OwnPtr<CCGraphicsContext> context(FakeWebCompositorOutputSurface::create(adoptPtr(new ContextThatDoesNotSupportMemoryManagmentExtensions)));
OwnPtr<CCResourceProvider> resourceProvider(CCResourceProvider::create(context.get()));
- FakeLayerRendererChromium layerRendererChromium(&mockClient, resourceProvider.get());
+ FakeCCRendererGL renderer(&mockClient, resourceProvider.get());
- layerRendererChromium.initialize();
+ renderer.initialize();
EXPECT_GT(mockClient.memoryAllocationLimitBytes(), 0ul);
}
@@ -408,19 +408,19 @@ private:
int m_clear;
};
-TEST(LayerRendererChromiumTest2, opaqueBackground)
+TEST(CCRendererGLTest2, opaqueBackground)
{
FakeCCRendererClient mockClient;
OwnPtr<CCGraphicsContext> ccContext(FakeWebCompositorOutputSurface::create(adoptPtr(new ClearCountingContext)));
ClearCountingContext* context = static_cast<ClearCountingContext*>(ccContext->context3D());
OwnPtr<CCResourceProvider> resourceProvider(CCResourceProvider::create(ccContext.get()));
- FakeLayerRendererChromium layerRendererChromium(&mockClient, resourceProvider.get());
+ FakeCCRendererGL renderer(&mockClient, resourceProvider.get());
mockClient.rootRenderPass()->setHasTransparentBackground(false);
- EXPECT_TRUE(layerRendererChromium.initialize());
+ EXPECT_TRUE(renderer.initialize());
- layerRendererChromium.drawFrame(mockClient.renderPassesInDrawOrder(), mockClient.renderPasses());
+ renderer.drawFrame(mockClient.renderPassesInDrawOrder(), mockClient.renderPasses());
// On DEBUG builds, render passes with opaque background clear to blue to
// easily see regions that were not drawn on the screen.
@@ -431,19 +431,19 @@ TEST(LayerRendererChromiumTest2, opaqueBackground)
#endif
}
-TEST(LayerRendererChromiumTest2, transparentBackground)
+TEST(CCRendererGLTest2, transparentBackground)
{
FakeCCRendererClient mockClient;
OwnPtr<CCGraphicsContext> ccContext(FakeWebCompositorOutputSurface::create(adoptPtr(new ClearCountingContext)));
ClearCountingContext* context = static_cast<ClearCountingContext*>(ccContext->context3D());
OwnPtr<CCResourceProvider> resourceProvider(CCResourceProvider::create(ccContext.get()));
- FakeLayerRendererChromium layerRendererChromium(&mockClient, resourceProvider.get());
+ FakeCCRendererGL renderer(&mockClient, resourceProvider.get());
mockClient.rootRenderPass()->setHasTransparentBackground(true);
- EXPECT_TRUE(layerRendererChromium.initialize());
+ EXPECT_TRUE(renderer.initialize());
- layerRendererChromium.drawFrame(mockClient.renderPassesInDrawOrder(), mockClient.renderPasses());
+ renderer.drawFrame(mockClient.renderPassesInDrawOrder(), mockClient.renderPasses());
EXPECT_EQ(1, context->clearCount());
}
diff --git a/Source/WebKit/chromium/tests/CCSchedulerTestCommon.h b/Source/WebKit/chromium/tests/CCSchedulerTestCommon.h
index 824af26c7..a504b60bb 100644
--- a/Source/WebKit/chromium/tests/CCSchedulerTestCommon.h
+++ b/Source/WebKit/chromium/tests/CCSchedulerTestCommon.h
@@ -106,7 +106,7 @@ public:
virtual bool active() const OVERRIDE { return m_active; }
virtual void setTimebaseAndInterval(double timebase, double interval) OVERRIDE { }
virtual double lastTickTime() OVERRIDE { return 0; }
- virtual double nextTickTime() OVERRIDE { return 0; }
+ virtual double nextTickTimeIfActivated() OVERRIDE { return 0; }
void tick()
{
diff --git a/Source/WebKit/chromium/tests/CCSolidColorLayerImplTest.cpp b/Source/WebKit/chromium/tests/CCSolidColorLayerImplTest.cpp
index 1eba991c3..220189b41 100644
--- a/Source/WebKit/chromium/tests/CCSolidColorLayerImplTest.cpp
+++ b/Source/WebKit/chromium/tests/CCSolidColorLayerImplTest.cpp
@@ -53,9 +53,8 @@ TEST(CCSolidColorLayerImplTest, verifyTilingCompleteAndNoOverlap)
layer->createRenderSurface();
layer->setRenderTarget(layer.get());
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(0);
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ layer->appendQuads(quadCuller, hadMissingTiles);
verifyQuadsExactlyCoverRect(quadCuller.quadList(), visibleContentRect);
}
@@ -78,9 +77,8 @@ TEST(CCSolidColorLayerImplTest, verifyCorrectBackgroundColorInQuad)
layer->createRenderSurface();
layer->setRenderTarget(layer.get());
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(0);
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ layer->appendQuads(quadCuller, hadMissingTiles);
ASSERT_EQ(quadCuller.quadList().size(), 1U);
EXPECT_EQ(CCSolidColorDrawQuad::materialCast(quadCuller.quadList()[0].get())->color(), testColor);
@@ -104,9 +102,8 @@ TEST(CCSolidColorLayerImplTest, verifyCorrectOpacityInQuad)
layer->createRenderSurface();
layer->setRenderTarget(layer.get());
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(0);
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ layer->appendQuads(quadCuller, hadMissingTiles);
ASSERT_EQ(quadCuller.quadList().size(), 1U);
EXPECT_EQ(opacity, CCSolidColorDrawQuad::materialCast(quadCuller.quadList()[0].get())->opacity());
diff --git a/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp b/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp
index 62336bb50..8b4bd20e8 100644
--- a/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp
+++ b/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp
@@ -76,9 +76,8 @@ TEST(CCTiledLayerImplTest, emptyQuadList)
{
OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels);
MockCCQuadCuller quadCuller;
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(0);
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ layer->appendQuads(quadCuller, hadMissingTiles);
const unsigned numTiles = numTilesX * numTilesY;
EXPECT_EQ(quadCuller.quadList().size(), numTiles);
}
@@ -89,9 +88,8 @@ TEST(CCTiledLayerImplTest, emptyQuadList)
layer->setVisibleContentRect(IntRect());
MockCCQuadCuller quadCuller;
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(0);
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ layer->appendQuads(quadCuller, hadMissingTiles);
EXPECT_EQ(quadCuller.quadList().size(), 0u);
}
@@ -103,9 +101,8 @@ TEST(CCTiledLayerImplTest, emptyQuadList)
layer->setVisibleContentRect(outsideBounds);
MockCCQuadCuller quadCuller;
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(0);
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ layer->appendQuads(quadCuller, hadMissingTiles);
EXPECT_EQ(quadCuller.quadList().size(), 0u);
}
@@ -115,9 +112,8 @@ TEST(CCTiledLayerImplTest, emptyQuadList)
layer->setSkipsDraw(true);
MockCCQuadCuller quadCuller;
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(0);
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ layer->appendQuads(quadCuller, hadMissingTiles);
EXPECT_EQ(quadCuller.quadList().size(), 0u);
}
}
@@ -132,13 +128,12 @@ TEST(CCTiledLayerImplTest, checkerboarding)
const IntSize layerSize(tileSize.width() * numTilesX, tileSize.height() * numTilesY);
OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels);
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(0);
// No checkerboarding
{
MockCCQuadCuller quadCuller;
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ layer->appendQuads(quadCuller, hadMissingTiles);
EXPECT_EQ(quadCuller.quadList().size(), 4u);
EXPECT_FALSE(hadMissingTiles);
@@ -154,7 +149,7 @@ TEST(CCTiledLayerImplTest, checkerboarding)
{
MockCCQuadCuller quadCuller;
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
+ layer->appendQuads(quadCuller, hadMissingTiles);
EXPECT_TRUE(hadMissingTiles);
EXPECT_EQ(quadCuller.quadList().size(), 4u);
for (size_t i = 0; i < quadCuller.quadList().size(); ++i)
@@ -162,17 +157,15 @@ TEST(CCTiledLayerImplTest, checkerboarding)
}
}
-static PassOwnPtr<CCSharedQuadState> getQuads(CCQuadList& quads, IntSize tileSize, const IntSize& layerSize, CCLayerTilingData::BorderTexelOption borderTexelOption, const IntRect& visibleContentRect)
+static void getQuads(CCQuadList& quads, CCSharedQuadStateList& sharedStates, IntSize tileSize, const IntSize& layerSize, CCLayerTilingData::BorderTexelOption borderTexelOption, const IntRect& visibleContentRect)
{
OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, borderTexelOption);
layer->setVisibleContentRect(visibleContentRect);
layer->setBounds(layerSize);
- MockCCQuadCuller quadCuller(quads);
- OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState(0);
+ MockCCQuadCuller quadCuller(quads, sharedStates);
bool hadMissingTiles = false;
- layer->appendQuads(quadCuller, sharedQuadState.get(), hadMissingTiles);
- return sharedQuadState.release(); // The shared data must be owned as long as the quad list exists.
+ layer->appendQuads(quadCuller, hadMissingTiles);
}
// Test with both border texels and without.
@@ -192,8 +185,8 @@ static void coverageVisibleRectOnTileBoundaries(CCLayerTilingData::BorderTexelOp
IntSize layerSize(1000, 1000);
CCQuadList quads;
- OwnPtr<CCSharedQuadState> sharedState;
- sharedState = getQuads(quads, IntSize(100, 100), layerSize, borders, IntRect(IntPoint(), layerSize));
+ CCSharedQuadStateList sharedStates;
+ getQuads(quads, sharedStates, IntSize(100, 100), layerSize, borders, IntRect(IntPoint(), layerSize));
verifyQuadsExactlyCoverRect(quads, IntRect(IntPoint(), layerSize));
}
WITH_AND_WITHOUT_BORDER_TEST(coverageVisibleRectOnTileBoundaries);
@@ -209,8 +202,8 @@ static void coverageVisibleRectIntersectsTiles(CCLayerTilingData::BorderTexelOpt
IntSize layerSize(250, 250);
CCQuadList quads;
- OwnPtr<CCSharedQuadState> sharedState;
- sharedState = getQuads(quads, IntSize(50, 50), IntSize(250, 250), CCLayerTilingData::NoBorderTexels, visibleContentRect);
+ CCSharedQuadStateList sharedStates;
+ getQuads(quads, sharedStates, IntSize(50, 50), IntSize(250, 250), CCLayerTilingData::NoBorderTexels, visibleContentRect);
verifyQuadsExactlyCoverRect(quads, visibleContentRect);
}
WITH_AND_WITHOUT_BORDER_TEST(coverageVisibleRectIntersectsTiles);
@@ -222,8 +215,8 @@ static void coverageVisibleRectIntersectsBounds(CCLayerTilingData::BorderTexelOp
IntSize layerSize(220, 210);
IntRect visibleContentRect(IntPoint(), layerSize);
CCQuadList quads;
- OwnPtr<CCSharedQuadState> sharedState;
- sharedState = getQuads(quads, IntSize(100, 100), layerSize, CCLayerTilingData::NoBorderTexels, visibleContentRect);
+ CCSharedQuadStateList sharedStates;
+ getQuads(quads, sharedStates, IntSize(100, 100), layerSize, CCLayerTilingData::NoBorderTexels, visibleContentRect);
verifyQuadsExactlyCoverRect(quads, visibleContentRect);
}
WITH_AND_WITHOUT_BORDER_TEST(coverageVisibleRectIntersectsBounds);
@@ -235,8 +228,8 @@ TEST(CCTiledLayerImplTest, textureInfoForLayerNoBorders)
IntSize tileSize(50, 50);
IntSize layerSize(250, 250);
CCQuadList quads;
- OwnPtr<CCSharedQuadState> sharedState;
- sharedState = getQuads(quads, tileSize, layerSize, CCLayerTilingData::NoBorderTexels, IntRect(IntPoint(), layerSize));
+ CCSharedQuadStateList sharedStates;
+ getQuads(quads, sharedStates, tileSize, layerSize, CCLayerTilingData::NoBorderTexels, IntRect(IntPoint(), layerSize));
for (size_t i = 0; i < quads.size(); ++i) {
ASSERT_EQ(quads[i]->material(), CCDrawQuad::TiledContent) << quadString << i;
@@ -256,8 +249,8 @@ TEST(CCTiledLayerImplTest, tileOpaqueRectForLayerNoBorders)
IntSize tileSize(50, 50);
IntSize layerSize(250, 250);
CCQuadList quads;
- OwnPtr<CCSharedQuadState> sharedState;
- sharedState = getQuads(quads, tileSize, layerSize, CCLayerTilingData::NoBorderTexels, IntRect(IntPoint(), layerSize));
+ CCSharedQuadStateList sharedStates;
+ getQuads(quads, sharedStates, tileSize, layerSize, CCLayerTilingData::NoBorderTexels, IntRect(IntPoint(), layerSize));
for (size_t i = 0; i < quads.size(); ++i) {
ASSERT_EQ(quads[i]->material(), CCDrawQuad::TiledContent) << quadString << i;
diff --git a/Source/WebKit/chromium/tests/GraphicsLayerChromiumTest.cpp b/Source/WebKit/chromium/tests/GraphicsLayerChromiumTest.cpp
index 26627ec8d..c0a9cf2ef 100644
--- a/Source/WebKit/chromium/tests/GraphicsLayerChromiumTest.cpp
+++ b/Source/WebKit/chromium/tests/GraphicsLayerChromiumTest.cpp
@@ -96,9 +96,9 @@ TEST_F(GraphicsLayerChromiumTest, updateLayerPreserves3DWithAnimations)
{
ASSERT_FALSE(m_platformLayer->hasActiveAnimation());
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0.0, 0.0));
- OwnPtr<WebAnimation> floatAnimation(adoptPtr(WebAnimation::create(curve, 1, 1, WebAnimation::TargetPropertyOpacity)));
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0.0, 0.0));
+ OwnPtr<WebAnimation> floatAnimation(adoptPtr(WebAnimation::create(*curve, 1, 1, WebAnimation::TargetPropertyOpacity)));
ASSERT_TRUE(m_platformLayer->addAnimation(floatAnimation.get()));
ASSERT_TRUE(m_platformLayer->hasActiveAnimation());
diff --git a/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp b/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
index 8605c0f1a..ead7f9bb9 100644
--- a/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
+++ b/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
@@ -32,12 +32,17 @@
#include "IDBIndexBackendImpl.h"
#include "IDBObjectStoreBackendImpl.h"
#include "IDBTransactionCoordinator.h"
+#include "WebIDBDatabaseCallbacksImpl.h"
+#include "WebIDBDatabaseImpl.h"
#include <gtest/gtest.h>
#if ENABLE(INDEXED_DATABASE)
using namespace WebCore;
+using WebKit::WebIDBDatabase;
+using WebKit::WebIDBDatabaseCallbacksImpl;
+using WebKit::WebIDBDatabaseImpl;
namespace {
@@ -101,6 +106,7 @@ public:
virtual ~FakeIDBDatabaseCallbacks() { }
virtual void onVersionChange(const String& version) OVERRIDE { }
virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) OVERRIDE { }
+ virtual void onForcedClose() OVERRIDE { }
private:
FakeIDBDatabaseCallbacks() { }
};
@@ -134,6 +140,72 @@ TEST(IDBDatabaseBackendTest, ConnectionLifecycle)
EXPECT_TRUE(backingStore->hasOneRef());
}
+class MockIDBDatabaseBackendProxy : public IDBDatabaseBackendInterface {
+public:
+ static PassRefPtr<MockIDBDatabaseBackendProxy> create(WebIDBDatabaseImpl& database)
+ {
+ return adoptRef(new MockIDBDatabaseBackendProxy(database));
+ }
+
+ ~MockIDBDatabaseBackendProxy()
+ {
+ EXPECT_TRUE(m_wasRegisterFrontendCallbacksCalled);
+ }
+
+ virtual IDBDatabaseMetadata metadata() const { return IDBDatabaseMetadata(); }
+ virtual PassRefPtr<IDBObjectStoreBackendInterface> createObjectStore(const String& name, const IDBKeyPath&, bool autoIncrement, IDBTransactionBackendInterface*, ExceptionCode&) { return 0; }
+ virtual void deleteObjectStore(const String& name, IDBTransactionBackendInterface*, ExceptionCode&) { }
+ virtual void setVersion(const String& version, PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, ExceptionCode&) { }
+ virtual PassRefPtr<IDBTransactionBackendInterface> transaction(DOMStringList* storeNames, unsigned short mode, ExceptionCode&) { return 0; }
+
+ virtual void close(PassRefPtr<IDBDatabaseCallbacks>)
+ {
+ m_wasCloseCalled = true;
+ m_webDatabase.close();
+ }
+ virtual void registerFrontendCallbacks(PassRefPtr<IDBDatabaseCallbacks> connection)
+ {
+ m_wasRegisterFrontendCallbacksCalled = true;
+ m_webDatabase.open(new WebIDBDatabaseCallbacksImpl(connection));
+ }
+
+private:
+ MockIDBDatabaseBackendProxy(WebIDBDatabaseImpl& webDatabase)
+ : m_wasRegisterFrontendCallbacksCalled(false)
+ , m_wasCloseCalled(false)
+ , m_webDatabase(webDatabase) { }
+
+ bool m_wasRegisterFrontendCallbacksCalled;
+ bool m_wasCloseCalled;
+
+ WebIDBDatabaseImpl& m_webDatabase;
+};
+
+TEST(IDBDatabaseBackendTest, ForcedClose)
+{
+ RefPtr<IDBFakeBackingStore> backingStore = adoptRef(new IDBFakeBackingStore());
+ EXPECT_TRUE(backingStore->hasOneRef());
+
+ IDBTransactionCoordinator* coordinator = 0;
+ IDBFactoryBackendImpl* factory = 0;
+ RefPtr<IDBDatabaseBackendImpl> backend = IDBDatabaseBackendImpl::create("db", backingStore.get(), coordinator, factory, "uniqueid");
+ EXPECT_GT(backingStore->refCount(), 1);
+
+ WebIDBDatabaseImpl webDatabase(backend);
+
+ RefPtr<MockIDBCallbacks> request1 = MockIDBCallbacks::create();
+ backend->openConnection(request1);
+
+ RefPtr<MockIDBDatabaseBackendProxy> proxy = MockIDBDatabaseBackendProxy::create(webDatabase);
+
+ ScriptExecutionContext* context = 0;
+ RefPtr<IDBDatabase> idbDatabase = IDBDatabase::create(context, proxy);
+ idbDatabase->registerFrontendCallbacks();
+
+ webDatabase.forceClose();
+ EXPECT_TRUE(backingStore->hasOneRef());
+}
+
} // namespace
#endif // ENABLE(INDEXED_DATABASE)
diff --git a/Source/WebKit/chromium/tests/IDBRequestTest.cpp b/Source/WebKit/chromium/tests/IDBRequestTest.cpp
index 77757193b..9e2459d39 100644
--- a/Source/WebKit/chromium/tests/IDBRequestTest.cpp
+++ b/Source/WebKit/chromium/tests/IDBRequestTest.cpp
@@ -50,7 +50,6 @@ TEST(IDBRequestTest, EventsAfterStopping)
// Ensure none of the following raise assertions in stopped state:
request->onError(IDBDatabaseError::create(IDBDatabaseException::IDB_ABORT_ERR, "Description goes here."));
request->onSuccess(DOMStringList::create());
- request->onSuccess(PassRefPtr<IDBDatabaseBackendInterface>());
request->onSuccess(PassRefPtr<IDBCursorBackendInterface>(), IDBKey::createInvalid(), IDBKey::createInvalid(), SerializedScriptValue::nullValue());
request->onSuccess(IDBKey::createInvalid());
request->onSuccess(PassRefPtr<IDBTransactionBackendInterface>());
diff --git a/Source/WebKit/chromium/tests/MockCCQuadCuller.h b/Source/WebKit/chromium/tests/MockCCQuadCuller.h
index 7f6e0f85a..59a0073ce 100644
--- a/Source/WebKit/chromium/tests/MockCCQuadCuller.h
+++ b/Source/WebKit/chromium/tests/MockCCQuadCuller.h
@@ -32,19 +32,21 @@
namespace WebCore {
-class MockCCQuadCuller : public WebCore::CCQuadSink {
+class MockCCQuadCuller : public CCQuadSink {
public:
MockCCQuadCuller()
: m_activeQuadList(m_quadListStorage)
+ , m_activeSharedQuadStateList(m_sharedQuadStateStorage)
{ }
- explicit MockCCQuadCuller(CCQuadList& externalQuadList)
+ explicit MockCCQuadCuller(CCQuadList& externalQuadList, CCSharedQuadStateList& externalSharedQuadStateList)
: m_activeQuadList(externalQuadList)
+ , m_activeSharedQuadStateList(externalSharedQuadStateList)
{ }
- virtual bool append(WTF::PassOwnPtr<WebCore::CCDrawQuad> newQuad)
+ virtual bool append(WTF::PassOwnPtr<CCDrawQuad> newQuad) OVERRIDE
{
- OwnPtr<WebCore::CCDrawQuad> drawQuad = newQuad;
+ OwnPtr<CCDrawQuad> drawQuad = newQuad;
if (!drawQuad->quadRect().isEmpty()) {
m_activeQuadList.append(drawQuad.release());
return true;
@@ -52,11 +54,24 @@ public:
return false;
}
- const WebCore::CCQuadList& quadList() const { return m_activeQuadList; };
+ virtual CCSharedQuadState* useSharedQuadState(PassOwnPtr<CCSharedQuadState> passSharedQuadState) OVERRIDE
+ {
+ OwnPtr<CCSharedQuadState> sharedQuadState(passSharedQuadState);
+ sharedQuadState->id = m_activeSharedQuadStateList.size();
+
+ CCSharedQuadState* rawPtr = sharedQuadState.get();
+ m_activeSharedQuadStateList.append(sharedQuadState.release());
+ return rawPtr;
+ }
+
+ const CCQuadList& quadList() const { return m_activeQuadList; };
+ const CCSharedQuadStateList& sharedQuadStateList() const { return m_activeSharedQuadStateList; };
private:
- WebCore::CCQuadList& m_activeQuadList;
- WebCore::CCQuadList m_quadListStorage;
+ CCQuadList& m_activeQuadList;
+ CCQuadList m_quadListStorage;
+ CCSharedQuadStateList& m_activeSharedQuadStateList;
+ CCSharedQuadStateList m_sharedQuadStateStorage;
};
} // namespace WebCore
diff --git a/Source/WebKit/chromium/tests/ScrollAnimatorNoneTest.cpp b/Source/WebKit/chromium/tests/ScrollAnimatorNoneTest.cpp
index 927d4a9c3..e71846adb 100644
--- a/Source/WebKit/chromium/tests/ScrollAnimatorNoneTest.cpp
+++ b/Source/WebKit/chromium/tests/ScrollAnimatorNoneTest.cpp
@@ -63,12 +63,20 @@ public:
MOCK_METHOD1(invalidateScrollCornerRect, void(const IntRect&));
MOCK_METHOD1(setScrollOffsetFromAnimation, void(const IntPoint&));
MOCK_CONST_METHOD0(enclosingScrollableArea, ScrollableArea*());
-
- virtual IntPoint scrollPosition() const { return IntPoint(); }
- virtual int visibleHeight() const { return 768; }
- virtual int visibleWidth() const { return 1024; }
-
- bool scrollAnimatorEnabled() const { return m_scrollAnimatorEnabled; }
+ MOCK_CONST_METHOD0(minimumScrollPosition, IntPoint());
+ MOCK_CONST_METHOD0(maximumScrollPosition, IntPoint());
+ MOCK_CONST_METHOD1(visibleContentRect, IntRect(bool));
+ MOCK_CONST_METHOD0(contentsSize, IntSize());
+ MOCK_CONST_METHOD0(overhangAmount, IntSize());
+ MOCK_CONST_METHOD0(isOnActivePage, bool());
+ MOCK_CONST_METHOD0(scrollableAreaBoundingBox, IntRect());
+
+ virtual IntPoint scrollPosition() const OVERRIDE { return IntPoint(); }
+ virtual int visibleHeight() const OVERRIDE { return 768; }
+ virtual int visibleWidth() const OVERRIDE { return 1024; }
+ virtual bool scrollAnimatorEnabled() const OVERRIDE { return m_scrollAnimatorEnabled; }
+
+private:
bool m_scrollAnimatorEnabled;
};
diff --git a/Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp b/Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp
index 2efb8e5dc..00ee28a68 100644
--- a/Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp
+++ b/Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp
@@ -705,7 +705,7 @@ TEST_F(TiledLayerChromiumTest, skipsDrawGetsReset)
WebKit::WebCompositor::initialize(0);
FakeCCLayerTreeHostClient fakeCCLayerTreeHostClient;
OwnPtr<CCLayerTreeHost> ccLayerTreeHost = CCLayerTreeHost::create(&fakeCCLayerTreeHostClient, CCLayerTreeSettings());
- ASSERT_TRUE(ccLayerTreeHost->initializeLayerRendererIfNeeded());
+ ASSERT_TRUE(ccLayerTreeHost->initializeRendererIfNeeded());
// Create two 300 x 300 tiled layers.
IntSize contentBounds(300, 300);
@@ -791,7 +791,7 @@ TEST_F(TiledLayerChromiumTest, partialUpdates)
FakeCCLayerTreeHostClient fakeCCLayerTreeHostClient;
OwnPtr<CCLayerTreeHost> ccLayerTreeHost = CCLayerTreeHost::create(&fakeCCLayerTreeHostClient, settings);
- ASSERT_TRUE(ccLayerTreeHost->initializeLayerRendererIfNeeded());
+ ASSERT_TRUE(ccLayerTreeHost->initializeRendererIfNeeded());
// Create one 300 x 200 tiled layer with 3 x 2 tiles.
IntSize contentBounds(300, 200);
@@ -1333,7 +1333,7 @@ TEST_F(TiledLayerChromiumTest, dontAllocateContentsWhenTargetSurfaceCantBeAlloca
CCLayerTreeSettings settings;
FakeCCLayerTreeHostClient fakeCCLayerTreeHostClient;
OwnPtr<CCLayerTreeHost> ccLayerTreeHost = CCLayerTreeHost::create(&fakeCCLayerTreeHostClient, settings);
- ASSERT_TRUE(ccLayerTreeHost->initializeLayerRendererIfNeeded());
+ ASSERT_TRUE(ccLayerTreeHost->initializeRendererIfNeeded());
RefPtr<FakeTiledLayerChromium> root = adoptRef(new FakeTiledLayerChromium(ccLayerTreeHost->contentsTextureManager()));
RefPtr<LayerChromium> surface = LayerChromium::create();
diff --git a/Source/WebKit/chromium/tests/WebAnimationTest.cpp b/Source/WebKit/chromium/tests/WebAnimationTest.cpp
index a682ab020..1822ff6a0 100644
--- a/Source/WebKit/chromium/tests/WebAnimationTest.cpp
+++ b/Source/WebKit/chromium/tests/WebAnimationTest.cpp
@@ -46,8 +46,8 @@ namespace {
#endif
TEST(WebAnimationTest, MAYBE_DefaultSettings)
{
- WebFloatAnimationCurve curve;
- OwnPtr<WebAnimation> animation = adoptPtr(WebAnimation::create(curve, WebAnimation::TargetPropertyOpacity));
+ OwnPtr<WebAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ OwnPtr<WebAnimation> animation = adoptPtr(WebAnimation::create(*curve, WebAnimation::TargetPropertyOpacity));
// Ensure that the defaults are correct.
EXPECT_EQ(1, animation->iterations());
@@ -67,8 +67,8 @@ TEST(WebAnimationTest, MAYBE_DefaultSettings)
#endif
TEST(WebAnimationTest, MAYBE_ModifiedSettings)
{
- WebFloatAnimationCurve curve;
- OwnPtr<WebAnimation> animation = adoptPtr(WebAnimation::create(curve, WebAnimation::TargetPropertyOpacity));
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ OwnPtr<WebAnimation> animation = adoptPtr(WebAnimation::create(*curve, WebAnimation::TargetPropertyOpacity));
animation->setIterations(2);
animation->setStartTime(2);
animation->setTimeOffset(2);
diff --git a/Source/WebKit/chromium/tests/WebFloatAnimationCurveTest.cpp b/Source/WebKit/chromium/tests/WebFloatAnimationCurveTest.cpp
index 3cac764b6..7a6a52405 100644
--- a/Source/WebKit/chromium/tests/WebFloatAnimationCurveTest.cpp
+++ b/Source/WebKit/chromium/tests/WebFloatAnimationCurveTest.cpp
@@ -39,197 +39,197 @@ namespace {
// Tests that a float animation with one keyframe works as expected.
TEST(WebFloatAnimationCurveTest, OneFloatKeyframe)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 2), WebAnimationCurve::TimingFunctionTypeLinear);
- EXPECT_FLOAT_EQ(2, curve.getValue(-1));
- EXPECT_FLOAT_EQ(2, curve.getValue(0));
- EXPECT_FLOAT_EQ(2, curve.getValue(0.5));
- EXPECT_FLOAT_EQ(2, curve.getValue(1));
- EXPECT_FLOAT_EQ(2, curve.getValue(2));
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 2), WebAnimationCurve::TimingFunctionTypeLinear);
+ EXPECT_FLOAT_EQ(2, curve->getValue(-1));
+ EXPECT_FLOAT_EQ(2, curve->getValue(0));
+ EXPECT_FLOAT_EQ(2, curve->getValue(0.5));
+ EXPECT_FLOAT_EQ(2, curve->getValue(1));
+ EXPECT_FLOAT_EQ(2, curve->getValue(2));
}
// Tests that a float animation with two keyframes works as expected.
TEST(WebFloatAnimationCurveTest, TwoFloatKeyframe)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 2), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebFloatKeyframe(1, 4), WebAnimationCurve::TimingFunctionTypeLinear);
- EXPECT_FLOAT_EQ(2, curve.getValue(-1));
- EXPECT_FLOAT_EQ(2, curve.getValue(0));
- EXPECT_FLOAT_EQ(3, curve.getValue(0.5));
- EXPECT_FLOAT_EQ(4, curve.getValue(1));
- EXPECT_FLOAT_EQ(4, curve.getValue(2));
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebFloatKeyframe(1, 4), WebAnimationCurve::TimingFunctionTypeLinear);
+ EXPECT_FLOAT_EQ(2, curve->getValue(-1));
+ EXPECT_FLOAT_EQ(2, curve->getValue(0));
+ EXPECT_FLOAT_EQ(3, curve->getValue(0.5));
+ EXPECT_FLOAT_EQ(4, curve->getValue(1));
+ EXPECT_FLOAT_EQ(4, curve->getValue(2));
}
// Tests that a float animation with three keyframes works as expected.
TEST(WebFloatAnimationCurveTest, ThreeFloatKeyframe)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 2), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebFloatKeyframe(1, 4), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebFloatKeyframe(2, 8), WebAnimationCurve::TimingFunctionTypeLinear);
- EXPECT_FLOAT_EQ(2, curve.getValue(-1));
- EXPECT_FLOAT_EQ(2, curve.getValue(0));
- EXPECT_FLOAT_EQ(3, curve.getValue(0.5));
- EXPECT_FLOAT_EQ(4, curve.getValue(1));
- EXPECT_FLOAT_EQ(6, curve.getValue(1.5));
- EXPECT_FLOAT_EQ(8, curve.getValue(2));
- EXPECT_FLOAT_EQ(8, curve.getValue(3));
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebFloatKeyframe(1, 4), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebFloatKeyframe(2, 8), WebAnimationCurve::TimingFunctionTypeLinear);
+ EXPECT_FLOAT_EQ(2, curve->getValue(-1));
+ EXPECT_FLOAT_EQ(2, curve->getValue(0));
+ EXPECT_FLOAT_EQ(3, curve->getValue(0.5));
+ EXPECT_FLOAT_EQ(4, curve->getValue(1));
+ EXPECT_FLOAT_EQ(6, curve->getValue(1.5));
+ EXPECT_FLOAT_EQ(8, curve->getValue(2));
+ EXPECT_FLOAT_EQ(8, curve->getValue(3));
}
// Tests that a float animation with multiple keys at a given time works sanely.
TEST(WebFloatAnimationCurveTest, RepeatedFloatKeyTimes)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 4), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebFloatKeyframe(1, 4), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebFloatKeyframe(1, 6), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebFloatKeyframe(2, 6), WebAnimationCurve::TimingFunctionTypeLinear);
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 4), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebFloatKeyframe(1, 4), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebFloatKeyframe(1, 6), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebFloatKeyframe(2, 6), WebAnimationCurve::TimingFunctionTypeLinear);
- EXPECT_FLOAT_EQ(4, curve.getValue(-1));
- EXPECT_FLOAT_EQ(4, curve.getValue(0));
- EXPECT_FLOAT_EQ(4, curve.getValue(0.5));
+ EXPECT_FLOAT_EQ(4, curve->getValue(-1));
+ EXPECT_FLOAT_EQ(4, curve->getValue(0));
+ EXPECT_FLOAT_EQ(4, curve->getValue(0.5));
// There is a discontinuity at 1. Any value between 4 and 6 is valid.
- float value = curve.getValue(1);
+ float value = curve->getValue(1);
EXPECT_TRUE(value >= 4 && value <= 6);
- EXPECT_FLOAT_EQ(6, curve.getValue(1.5));
- EXPECT_FLOAT_EQ(6, curve.getValue(2));
- EXPECT_FLOAT_EQ(6, curve.getValue(3));
+ EXPECT_FLOAT_EQ(6, curve->getValue(1.5));
+ EXPECT_FLOAT_EQ(6, curve->getValue(2));
+ EXPECT_FLOAT_EQ(6, curve->getValue(3));
}
// Tests that the keyframes may be added out of order.
TEST(WebFloatAnimationCurveTest, UnsortedKeyframes)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(2, 8), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebFloatKeyframe(0, 2), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebFloatKeyframe(1, 4), WebAnimationCurve::TimingFunctionTypeLinear);
-
- EXPECT_FLOAT_EQ(2, curve.getValue(-1));
- EXPECT_FLOAT_EQ(2, curve.getValue(0));
- EXPECT_FLOAT_EQ(3, curve.getValue(0.5));
- EXPECT_FLOAT_EQ(4, curve.getValue(1));
- EXPECT_FLOAT_EQ(6, curve.getValue(1.5));
- EXPECT_FLOAT_EQ(8, curve.getValue(2));
- EXPECT_FLOAT_EQ(8, curve.getValue(3));
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(2, 8), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebFloatKeyframe(0, 2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebFloatKeyframe(1, 4), WebAnimationCurve::TimingFunctionTypeLinear);
+
+ EXPECT_FLOAT_EQ(2, curve->getValue(-1));
+ EXPECT_FLOAT_EQ(2, curve->getValue(0));
+ EXPECT_FLOAT_EQ(3, curve->getValue(0.5));
+ EXPECT_FLOAT_EQ(4, curve->getValue(1));
+ EXPECT_FLOAT_EQ(6, curve->getValue(1.5));
+ EXPECT_FLOAT_EQ(8, curve->getValue(2));
+ EXPECT_FLOAT_EQ(8, curve->getValue(3));
}
// Tests that a cubic bezier timing function works as expected.
TEST(WebFloatAnimationCurveTest, CubicBezierTimingFunction)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 0), 0.25, 0, 0.75, 1);
- curve.add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
-
- EXPECT_FLOAT_EQ(0, curve.getValue(0));
- EXPECT_LT(0, curve.getValue(0.25));
- EXPECT_GT(0.25, curve.getValue(0.25));
- EXPECT_FLOAT_EQ(0.5, curve.getValue(0.5));
- EXPECT_LT(0.75, curve.getValue(0.75));
- EXPECT_GT(1, curve.getValue(0.75));
- EXPECT_FLOAT_EQ(1, curve.getValue(1));
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 0), 0.25, 0, 0.75, 1);
+ curve->add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
+
+ EXPECT_FLOAT_EQ(0, curve->getValue(0));
+ EXPECT_LT(0, curve->getValue(0.25));
+ EXPECT_GT(0.25, curve->getValue(0.25));
+ EXPECT_FLOAT_EQ(0.5, curve->getValue(0.5));
+ EXPECT_LT(0.75, curve->getValue(0.75));
+ EXPECT_GT(1, curve->getValue(0.75));
+ EXPECT_FLOAT_EQ(1, curve->getValue(1));
}
// Tests that an ease timing function works as expected.
TEST(WebFloatAnimationCurveTest, EaseTimingFunction)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 0), WebAnimationCurve::TimingFunctionTypeEase);
- curve.add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 0), WebAnimationCurve::TimingFunctionTypeEase);
+ curve->add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCEaseTimingFunction::create());
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time));
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time));
}
}
// Tests using a linear timing function.
TEST(WebFloatAnimationCurveTest, LinearTimingFunction)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 0), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 0), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(time, curve.getValue(time));
+ EXPECT_FLOAT_EQ(time, curve->getValue(time));
}
}
// Tests that an ease in timing function works as expected.
TEST(WebFloatAnimationCurveTest, EaseInTimingFunction)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 0), WebAnimationCurve::TimingFunctionTypeEaseIn);
- curve.add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 0), WebAnimationCurve::TimingFunctionTypeEaseIn);
+ curve->add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCEaseInTimingFunction::create());
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time));
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time));
}
}
// Tests that an ease in timing function works as expected.
TEST(WebFloatAnimationCurveTest, EaseOutTimingFunction)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 0), WebAnimationCurve::TimingFunctionTypeEaseOut);
- curve.add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 0), WebAnimationCurve::TimingFunctionTypeEaseOut);
+ curve->add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCEaseOutTimingFunction::create());
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time));
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time));
}
}
// Tests that an ease in timing function works as expected.
TEST(WebFloatAnimationCurveTest, EaseInOutTimingFunction)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 0), WebAnimationCurve::TimingFunctionTypeEaseInOut);
- curve.add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 0), WebAnimationCurve::TimingFunctionTypeEaseInOut);
+ curve->add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCEaseInOutTimingFunction::create());
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time));
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time));
}
}
// Tests that an ease in timing function works as expected.
TEST(WebFloatAnimationCurveTest, CustomBezierTimingFunction)
{
- WebFloatAnimationCurve curve;
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
double x1 = 0.3;
double y1 = 0.2;
double x2 = 0.8;
double y2 = 0.7;
- curve.add(WebFloatKeyframe(0, 0), x1, y1, x2, y2);
- curve.add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebFloatKeyframe(0, 0), x1, y1, x2, y2);
+ curve->add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCCubicBezierTimingFunction::create(x1, y1, x2, y2));
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time));
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time));
}
}
// Tests that the default timing function is indeed ease.
TEST(WebFloatAnimationCurveTest, DefaultTimingFunction)
{
- WebFloatAnimationCurve curve;
- curve.add(WebFloatKeyframe(0, 0));
- curve.add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
+ OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create());
+ curve->add(WebFloatKeyframe(0, 0));
+ curve->add(WebFloatKeyframe(1, 1), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCEaseTimingFunction::create());
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time));
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time));
}
}
diff --git a/Source/WebKit/chromium/tests/WebTransformAnimationCurveTest.cpp b/Source/WebKit/chromium/tests/WebTransformAnimationCurveTest.cpp
index 2f4de73cb..96acb3cc1 100644
--- a/Source/WebKit/chromium/tests/WebTransformAnimationCurveTest.cpp
+++ b/Source/WebKit/chromium/tests/WebTransformAnimationCurveTest.cpp
@@ -41,62 +41,62 @@ namespace {
// Tests that a transform animation with one keyframe works as expected.
TEST(WebTransformAnimationCurveTest, OneTransformKeyframe)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations;
operations.appendTranslate(2, 0, 0);
- curve.add(WebTransformKeyframe(0, operations), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(0, operations), WebAnimationCurve::TimingFunctionTypeLinear);
- EXPECT_FLOAT_EQ(2, curve.getValue(-1).m41());
- EXPECT_FLOAT_EQ(2, curve.getValue(0).m41());
- EXPECT_FLOAT_EQ(2, curve.getValue(0.5).m41());
- EXPECT_FLOAT_EQ(2, curve.getValue(1).m41());
- EXPECT_FLOAT_EQ(2, curve.getValue(2).m41());
+ EXPECT_FLOAT_EQ(2, curve->getValue(-1).m41());
+ EXPECT_FLOAT_EQ(2, curve->getValue(0).m41());
+ EXPECT_FLOAT_EQ(2, curve->getValue(0.5).m41());
+ EXPECT_FLOAT_EQ(2, curve->getValue(1).m41());
+ EXPECT_FLOAT_EQ(2, curve->getValue(2).m41());
}
// Tests that a transform animation with two keyframes works as expected.
TEST(WebTransformAnimationCurveTest, TwoTransformKeyframe)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(2, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(4, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
- EXPECT_FLOAT_EQ(2, curve.getValue(-1).m41());
- EXPECT_FLOAT_EQ(2, curve.getValue(0).m41());
- EXPECT_FLOAT_EQ(3, curve.getValue(0.5).m41());
- EXPECT_FLOAT_EQ(4, curve.getValue(1).m41());
- EXPECT_FLOAT_EQ(4, curve.getValue(2).m41());
+ curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ EXPECT_FLOAT_EQ(2, curve->getValue(-1).m41());
+ EXPECT_FLOAT_EQ(2, curve->getValue(0).m41());
+ EXPECT_FLOAT_EQ(3, curve->getValue(0.5).m41());
+ EXPECT_FLOAT_EQ(4, curve->getValue(1).m41());
+ EXPECT_FLOAT_EQ(4, curve->getValue(2).m41());
}
// Tests that a transform animation with three keyframes works as expected.
TEST(WebTransformAnimationCurveTest, ThreeTransformKeyframe)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(2, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(4, 0, 0);
WebKit::WebTransformOperations operations3;
operations3.appendTranslate(8, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebTransformKeyframe(2, operations3), WebAnimationCurve::TimingFunctionTypeLinear);
- EXPECT_FLOAT_EQ(2, curve.getValue(-1).m41());
- EXPECT_FLOAT_EQ(2, curve.getValue(0).m41());
- EXPECT_FLOAT_EQ(3, curve.getValue(0.5).m41());
- EXPECT_FLOAT_EQ(4, curve.getValue(1).m41());
- EXPECT_FLOAT_EQ(6, curve.getValue(1.5).m41());
- EXPECT_FLOAT_EQ(8, curve.getValue(2).m41());
- EXPECT_FLOAT_EQ(8, curve.getValue(3).m41());
+ curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(2, operations3), WebAnimationCurve::TimingFunctionTypeLinear);
+ EXPECT_FLOAT_EQ(2, curve->getValue(-1).m41());
+ EXPECT_FLOAT_EQ(2, curve->getValue(0).m41());
+ EXPECT_FLOAT_EQ(3, curve->getValue(0.5).m41());
+ EXPECT_FLOAT_EQ(4, curve->getValue(1).m41());
+ EXPECT_FLOAT_EQ(6, curve->getValue(1.5).m41());
+ EXPECT_FLOAT_EQ(8, curve->getValue(2).m41());
+ EXPECT_FLOAT_EQ(8, curve->getValue(3).m41());
}
// Tests that a transform animation with multiple keys at a given time works sanely.
TEST(WebTransformAnimationCurveTest, RepeatedTransformKeyTimes)
{
// A step function.
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(4, 0, 0);
WebKit::WebTransformOperations operations2;
@@ -105,159 +105,159 @@ TEST(WebTransformAnimationCurveTest, RepeatedTransformKeyTimes)
operations3.appendTranslate(6, 0, 0);
WebKit::WebTransformOperations operations4;
operations4.appendTranslate(6, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebTransformKeyframe(1, operations3), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebTransformKeyframe(2, operations4), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(1, operations3), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(2, operations4), WebAnimationCurve::TimingFunctionTypeLinear);
- EXPECT_FLOAT_EQ(4, curve.getValue(-1).m41());
- EXPECT_FLOAT_EQ(4, curve.getValue(0).m41());
- EXPECT_FLOAT_EQ(4, curve.getValue(0.5).m41());
+ EXPECT_FLOAT_EQ(4, curve->getValue(-1).m41());
+ EXPECT_FLOAT_EQ(4, curve->getValue(0).m41());
+ EXPECT_FLOAT_EQ(4, curve->getValue(0.5).m41());
// There is a discontinuity at 1. Any value between 4 and 6 is valid.
- WebTransformationMatrix value = curve.getValue(1);
+ WebTransformationMatrix value = curve->getValue(1);
EXPECT_TRUE(value.m41() >= 4 && value.m41() <= 6);
- EXPECT_FLOAT_EQ(6, curve.getValue(1.5).m41());
- EXPECT_FLOAT_EQ(6, curve.getValue(2).m41());
- EXPECT_FLOAT_EQ(6, curve.getValue(3).m41());
+ EXPECT_FLOAT_EQ(6, curve->getValue(1.5).m41());
+ EXPECT_FLOAT_EQ(6, curve->getValue(2).m41());
+ EXPECT_FLOAT_EQ(6, curve->getValue(3).m41());
}
// Tests that the keyframes may be added out of order.
TEST(WebTransformAnimationCurveTest, UnsortedKeyframes)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(2, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(4, 0, 0);
WebKit::WebTransformOperations operations3;
operations3.appendTranslate(8, 0, 0);
- curve.add(WebTransformKeyframe(2, operations3), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
-
- EXPECT_FLOAT_EQ(2, curve.getValue(-1).m41());
- EXPECT_FLOAT_EQ(2, curve.getValue(0).m41());
- EXPECT_FLOAT_EQ(3, curve.getValue(0.5).m41());
- EXPECT_FLOAT_EQ(4, curve.getValue(1).m41());
- EXPECT_FLOAT_EQ(6, curve.getValue(1.5).m41());
- EXPECT_FLOAT_EQ(8, curve.getValue(2).m41());
- EXPECT_FLOAT_EQ(8, curve.getValue(3).m41());
+ curve->add(WebTransformKeyframe(2, operations3), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+
+ EXPECT_FLOAT_EQ(2, curve->getValue(-1).m41());
+ EXPECT_FLOAT_EQ(2, curve->getValue(0).m41());
+ EXPECT_FLOAT_EQ(3, curve->getValue(0.5).m41());
+ EXPECT_FLOAT_EQ(4, curve->getValue(1).m41());
+ EXPECT_FLOAT_EQ(6, curve->getValue(1.5).m41());
+ EXPECT_FLOAT_EQ(8, curve->getValue(2).m41());
+ EXPECT_FLOAT_EQ(8, curve->getValue(3).m41());
}
// Tests that a cubic bezier timing function works as expected.
TEST(WebTransformAnimationCurveTest, CubicBezierTimingFunction)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(0, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(1, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1), 0.25, 0, 0.75, 1);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
- EXPECT_FLOAT_EQ(0, curve.getValue(0).m41());
- EXPECT_LT(0, curve.getValue(0.25).m41());
- EXPECT_GT(0.25, curve.getValue(0.25).m41());
- EXPECT_FLOAT_EQ(0.5, curve.getValue(0.5).m41());
- EXPECT_LT(0.75, curve.getValue(0.75).m41());
- EXPECT_GT(1, curve.getValue(0.75).m41());
- EXPECT_FLOAT_EQ(1, curve.getValue(1).m41());
+ curve->add(WebTransformKeyframe(0, operations1), 0.25, 0, 0.75, 1);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ EXPECT_FLOAT_EQ(0, curve->getValue(0).m41());
+ EXPECT_LT(0, curve->getValue(0.25).m41());
+ EXPECT_GT(0.25, curve->getValue(0.25).m41());
+ EXPECT_FLOAT_EQ(0.5, curve->getValue(0.5).m41());
+ EXPECT_LT(0.75, curve->getValue(0.75).m41());
+ EXPECT_GT(1, curve->getValue(0.75).m41());
+ EXPECT_FLOAT_EQ(1, curve->getValue(1).m41());
}
// Tests that an ease timing function works as expected.
TEST(WebTransformAnimationCurveTest, EaseTimingFunction)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(0, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(1, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEase);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEase);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCEaseTimingFunction::create());
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time).m41());
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time).m41());
}
}
// Tests using a linear timing function.
TEST(WebTransformAnimationCurveTest, LinearTimingFunction)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(0, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(1, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(time, curve.getValue(time).m41());
+ EXPECT_FLOAT_EQ(time, curve->getValue(time).m41());
}
}
// Tests that an ease in timing function works as expected.
TEST(WebTransformAnimationCurveTest, EaseInTimingFunction)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(0, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(1, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEaseIn);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEaseIn);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCEaseInTimingFunction::create());
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time).m41());
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time).m41());
}
}
// Tests that an ease in timing function works as expected.
TEST(WebTransformAnimationCurveTest, EaseOutTimingFunction)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(0, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(1, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEaseOut);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEaseOut);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCEaseOutTimingFunction::create());
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time).m41());
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time).m41());
}
}
// Tests that an ease in timing function works as expected.
TEST(WebTransformAnimationCurveTest, EaseInOutTimingFunction)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(0, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(1, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEaseInOut);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEaseInOut);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCEaseInOutTimingFunction::create());
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time).m41());
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time).m41());
}
}
// Tests that an ease in timing function works as expected.
TEST(WebTransformAnimationCurveTest, CustomBezierTimingFunction)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
double x1 = 0.3;
double y1 = 0.2;
double x2 = 0.8;
@@ -266,31 +266,31 @@ TEST(WebTransformAnimationCurveTest, CustomBezierTimingFunction)
operations1.appendTranslate(0, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(1, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1), x1, y1, x2, y2);
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(0, operations1), x1, y1, x2, y2);
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCCubicBezierTimingFunction::create(x1, y1, x2, y2));
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time).m41());
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time).m41());
}
}
// Tests that the default timing function is indeed ease.
TEST(WebTransformAnimationCurveTest, DefaultTimingFunction)
{
- WebTransformAnimationCurve curve;
+ OwnPtr<WebTransformAnimationCurve> curve = adoptPtr(WebTransformAnimationCurve::create());
WebKit::WebTransformOperations operations1;
operations1.appendTranslate(0, 0, 0);
WebKit::WebTransformOperations operations2;
operations2.appendTranslate(1, 0, 0);
- curve.add(WebTransformKeyframe(0, operations1));
- curve.add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
+ curve->add(WebTransformKeyframe(0, operations1));
+ curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear);
OwnPtr<WebCore::CCTimingFunction> timingFunction(WebCore::CCEaseTimingFunction::create());
for (int i = 0; i <= 4; ++i) {
const double time = i * 0.25;
- EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve.getValue(time).m41());
+ EXPECT_FLOAT_EQ(timingFunction->getValue(time), curve->getValue(time).m41());
}
}
diff --git a/Source/WebKit/efl/ChangeLog b/Source/WebKit/efl/ChangeLog
index a22e49348..cc655735b 100644
--- a/Source/WebKit/efl/ChangeLog
+++ b/Source/WebKit/efl/ChangeLog
@@ -1,3 +1,15 @@
+2012-08-23 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL] Remove ewk_tile_matrix_tile_update.
+ https://bugs.webkit.org/show_bug.cgi?id=63437
+
+ Reviewed by Gyuyoung Kim.
+
+ * ewk/ewk_tiled_matrix.cpp:
+ Removed ewk_tile_matrix_tile_update and ewk_tile_matrix_tile_update_full
+ which are dead code.
+ * ewk/ewk_tiled_matrix_private.h: Ditto.
+
2012-08-21 Kihong Kwon <kihong.kwon@samsung.com>
[EFL][GTK][BlackBerry] Fix build error in the DeviceOrientationClient
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp b/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp
index a14a1d7e5..f93764fe5 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp
+++ b/Source/WebKit/efl/ewk/ewk_tiled_matrix.cpp
@@ -523,59 +523,6 @@ Eina_Bool ewk_tile_matrix_tile_put(Ewk_Tile_Matrix* tileMatrix, Ewk_Tile* tile,
return ewk_tile_unused_cache_tile_put(tileMatrix->tileUnusedCache, tile, _ewk_tile_matrix_tile_free, tileMatrix);
}
-Eina_Bool ewk_tile_matrix_tile_update(Ewk_Tile_Matrix* tileMatrix, unsigned long col, unsigned long row, const Eina_Rectangle* update)
-{
- Eina_Rectangle newUpdate;
- EINA_SAFETY_ON_NULL_RETURN_VAL(tileMatrix, false);
- EINA_SAFETY_ON_NULL_RETURN_VAL(update, false);
-
- memcpy(&newUpdate, update, sizeof(newUpdate));
- // check update is valid, otherwise return false
- if (update->x < 0 || update->y < 0 || update->w <= 0 || update->h <= 0) {
- ERR("invalid update region.");
- return false;
- }
-
- if (update->x + update->w - 1 >= tileMatrix->tile.width)
- newUpdate.w = tileMatrix->tile.width - update->x;
- if (update->y + update->h - 1 >= tileMatrix->tile.height)
- newUpdate.h = tileMatrix->tile.height - update->y;
-
- Ewk_Tile* tile = static_cast<Ewk_Tile*>(eina_matrixsparse_data_idx_get(tileMatrix->matrix, row, col));
- if (!tile)
- return true;
-
- if (!tile->updates && !tile->stats.full_update)
- tileMatrix->updates = eina_list_append(tileMatrix->updates, tile);
- ewk_tile_update_area(tile, &newUpdate);
-
- return true;
-}
-
-Eina_Bool ewk_tile_matrix_tile_update_full(Ewk_Tile_Matrix* tileMatrix, unsigned long column, unsigned long row)
-{
- Eina_Matrixsparse_Cell* cell;
- EINA_SAFETY_ON_NULL_RETURN_VAL(tileMatrix, false);
-
- if (!eina_matrixsparse_cell_idx_get(tileMatrix->matrix, row, column, &cell))
- return false;
-
- if (!cell)
- return true;
-
- Ewk_Tile* tile = static_cast<Ewk_Tile*>(eina_matrixsparse_cell_data_get(cell));
- if (!tile) {
- CRITICAL("matrix cell with no tile!");
- return true;
- }
-
- if (!tile->updates && !tile->stats.full_update)
- tileMatrix->updates = eina_list_append(tileMatrix->updates, tile);
- ewk_tile_update_full(tile);
-
- return true;
-}
-
void ewk_tile_matrix_tile_updates_clear(Ewk_Tile_Matrix* tileMatrix, Ewk_Tile* tile)
{
EINA_SAFETY_ON_NULL_RETURN(tileMatrix);
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_matrix_private.h b/Source/WebKit/efl/ewk/ewk_tiled_matrix_private.h
index b3793b5c7..151ebb0b7 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_matrix_private.h
+++ b/Source/WebKit/efl/ewk/ewk_tiled_matrix_private.h
@@ -44,8 +44,6 @@ Ewk_Tile *ewk_tile_matrix_tile_nearest_get(Ewk_Tile_Matrix *tm, unsigned long co
Ewk_Tile *ewk_tile_matrix_tile_new(Ewk_Tile_Matrix *tm, Evas *evas, unsigned long col, unsigned long row, float zoom);
Eina_Bool ewk_tile_matrix_tile_put(Ewk_Tile_Matrix *tm, Ewk_Tile *t, double last_used);
-Eina_Bool ewk_tile_matrix_tile_update(Ewk_Tile_Matrix *tm, unsigned long col, unsigned long row, const Eina_Rectangle *update);
-Eina_Bool ewk_tile_matrix_tile_update_full(Ewk_Tile_Matrix *tm, unsigned long col, unsigned long row);
void ewk_tile_matrix_tile_updates_clear(Ewk_Tile_Matrix *tm, Ewk_Tile *t);
Eina_Bool ewk_tile_matrix_update(Ewk_Tile_Matrix *tm, const Eina_Rectangle *update, float zoom);
diff --git a/Source/WebKit/mac/ChangeLog b/Source/WebKit/mac/ChangeLog
index 53112e658..e156f61d2 100644
--- a/Source/WebKit/mac/ChangeLog
+++ b/Source/WebKit/mac/ChangeLog
@@ -1,3 +1,20 @@
+2012-08-23 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
+ https://bugs.webkit.org/show_bug.cgi?id=93884
+
+ Reviewed by Filip Pizlo.
+
+ With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of
+ MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines,
+ we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined
+ objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject).
+ For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not
+ masquerade as undefined within frame B, but it will continue to masquerade in frame A.
+
+ * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
+ (WebKit::NetscapePluginInstanceProxy::addValueToArray): Passing ExecState to toBoolean call.
+
2012-08-22 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=94401
diff --git a/Source/WebKit/mac/Configurations/Version.xcconfig b/Source/WebKit/mac/Configurations/Version.xcconfig
index c88c7e97b..ac1a2c149 100644
--- a/Source/WebKit/mac/Configurations/Version.xcconfig
+++ b/Source/WebKit/mac/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 537;
-MINOR_VERSION = 6;
+MINOR_VERSION = 8;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
index 4a7d3d266..91044305f 100644
--- a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
+++ b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
@@ -1271,7 +1271,7 @@ void NetscapePluginInstanceProxy::addValueToArray(NSMutableArray *array, ExecSta
[array addObject:[NSNumber numberWithDouble:value.toNumber(exec)]];
} else if (value.isBoolean()) {
[array addObject:[NSNumber numberWithInt:BoolValueType]];
- [array addObject:[NSNumber numberWithBool:value.toBoolean()]];
+ [array addObject:[NSNumber numberWithBool:value.toBoolean(exec)]];
} else if (value.isNull())
[array addObject:[NSNumber numberWithInt:NullValueType]];
else if (value.isObject()) {
diff --git a/Source/WebKit/win/ChangeLog b/Source/WebKit/win/ChangeLog
index 96ce099ee..319a75ceb 100644
--- a/Source/WebKit/win/ChangeLog
+++ b/Source/WebKit/win/ChangeLog
@@ -1,3 +1,22 @@
+2012-08-23 Adrienne Walker <enne@google.com>
+
+ Convert ScrollableArea ASSERT_NOT_REACHED virtuals
+ https://bugs.webkit.org/show_bug.cgi?id=93306
+
+ Reviewed by Darin Adler.
+
+ Add implementations where necessary to make derived classes concrete.
+ Add OVERRIDE for ScrollableArea functions.
+
+ * WebScrollBar.cpp:
+ (WebScrollBar::visibleHeight):
+ (WebScrollBar::visibleWidth):
+ (WebScrollBar::contentsSize):
+ (WebScrollBar::isOnActivePage):
+ (WebScrollBar::scrollableAreaBoundingBox):
+ * WebScrollBar.h:
+ (WebScrollBar):
+
2012-08-22 Nikhil Bhargava <nbhargava@google.com>
Reduce Font.h includes across project -- improves RenderObject.h compile time
diff --git a/Source/WebKit/win/WebScrollBar.cpp b/Source/WebKit/win/WebScrollBar.cpp
index d3388c3d9..f172196b3 100644
--- a/Source/WebKit/win/WebScrollBar.cpp
+++ b/Source/WebKit/win/WebScrollBar.cpp
@@ -284,3 +284,28 @@ Scrollbar* WebScrollBar::verticalScrollbar() const
{
return m_scrollBar->orientation() == VerticalScrollbar ? m_scrollBar.get() : 0;
}
+
+int WebScrollBar::visibleHeight() const
+{
+ return m_scrollBar->height();
+}
+
+int WebScrollBar::visibleWidth() const
+{
+ return m_scrollBar->width();
+}
+
+WebCore::IntSize WebScrollBar::contentsSize() const
+{
+ return m_scrollBar->frameRect().size();
+}
+
+bool WebScrollBar::isOnActivePage() const
+{
+ return true;
+}
+
+WebCore::IntRect WebScrollBar::scrollableAreaBoundingBox() const
+{
+ return m_scrollBar->frameRect();
+}
diff --git a/Source/WebKit/win/WebScrollBar.h b/Source/WebKit/win/WebScrollBar.h
index c97d0d701..dfd1ef040 100644
--- a/Source/WebKit/win/WebScrollBar.h
+++ b/Source/WebKit/win/WebScrollBar.h
@@ -117,6 +117,11 @@ protected:
virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&);
virtual void invalidateScrollCornerRect(const WebCore::IntRect&) { }
virtual WebCore::ScrollableArea* enclosingScrollableArea() const { return 0; }
+ virtual int visibleHeight() const OVERRIDE;
+ virtual int visibleWidth() const OVERRIDE;
+ virtual WebCore::IntSize contentsSize() const OVERRIDE;
+ virtual bool isOnActivePage() const OVERRIDE;
+ virtual WebCore::IntRect scrollableAreaBoundingBox() const OVERRIDE;
// FIXME: We should provide a way to set this value.
virtual bool isActive() const { return true; }
diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog
index c848e9e6d..c956117b3 100644
--- a/Source/WebKit2/ChangeLog
+++ b/Source/WebKit2/ChangeLog
@@ -1,3 +1,114 @@
+2012-08-23 Frederik Gladhorn <gladhorn@kde.org>
+
+ Make it possible to build WebKit with Python 3 (and 2)
+ https://bugs.webkit.org/show_bug.cgi?id=94814
+
+ Reviewed by Ryosuke Niwa.
+
+ Exceptions need a hack to work with both.
+ string.join was already deprecated in Python 2.
+ Relative imports are no longer supported, use package name instead.
+
+ * Scripts/webkit2/messages.py:
+ * Scripts/webkit2/parser.py:
+
+2012-08-23 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
+ https://bugs.webkit.org/show_bug.cgi?id=93884
+
+ Reviewed by Filip Pizlo.
+
+ With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of
+ MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines,
+ we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined
+ objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject).
+ For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not
+ masquerade as undefined within frame B, but it will continue to masquerade in frame A.
+
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): Passing ExecState to toBoolean call.
+
+2012-08-23 Brady Eidson <beidson@apple.com>
+
+ REGRESSION (r124815): PDF in frame does not display any more
+ <rdar://problem/12063306> and https://bugs.webkit.org/show_bug.cgi?id=94869
+
+ Reviewed by Alexey Proskuryakov.
+
+ * WebProcess/Plugins/PDF/BuiltInPDFView.mm:
+ (WebKit::BuiltInPDFView::initialize): Tell the controller that initialization was successful.
+
+2012-08-23 Mark Rowe <mrowe@apple.com>
+
+ Make WebKit2 build with the latest version of clang.
+
+ Reviewed by Dan Bernstein.
+
+ * Configurations/Base.xcconfig: Ensure that operator new isn't exported as a weak external symbol.
+
+2012-08-22 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
+
+ [EFL] Use WTF_USE_SOUP instead BUILDING_SOUP__
+ https://bugs.webkit.org/show_bug.cgi?id=94744
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Use #if defined(WTF_USE_SOUP) instead of #if defined(BUILDING_SOUP__)
+ since the former is used everywhere.
+
+ * Shared/API/c/WKBase.h:
+
+2012-08-23 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Free ewk context data on program exit.
+ https://bugs.webkit.org/show_bug.cgi?id=94808
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Make sure the default Ewk_Context gets freed
+ on program exit.
+
+ The patch also fixes leaking of WKContextRef
+ inside Ewk_Context which should have been
+ adopted.
+
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::_Ewk_Context):
+ (ewk_context_default_get):
+
+2012-08-23 Adrienne Walker <enne@google.com>
+
+ Convert ScrollableArea ASSERT_NOT_REACHED virtuals
+ https://bugs.webkit.org/show_bug.cgi?id=93306
+
+ Reviewed by Darin Adler.
+
+ Add implementations where necessary to make derived classes concrete.
+ Add OVERRIDE for ScrollableArea functions.
+
+ * UIProcess/win/WebPopupMenuProxyWin.cpp:
+ (WebKit::WebPopupMenuProxyWin::visibleHeight):
+ (WebKit):
+ (WebKit::WebPopupMenuProxyWin::visibleWidth):
+ (WebKit::WebPopupMenuProxyWin::contentsSize):
+ (WebKit::WebPopupMenuProxyWin::scrollableAreaBoundingBox):
+ * UIProcess/win/WebPopupMenuProxyWin.h:
+ (WebPopupMenuProxyWin):
+ * WebProcess/Plugins/PDF/BuiltInPDFView.h:
+
+2012-08-23 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][WK2] ewk_intent_request API test does not free Eina_List
+ https://bugs.webkit.org/show_bug.cgi?id=94809
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The used Eina_List should be freed due to ewk_intent_suggestions_get() documentation.
+
+ * UIProcess/API/efl/tests/test_ewk2_intents.cpp:
+ (onIntentReceived):
+
2012-08-23 Andras Becsi <andras.becsi@nokia.com>
[Qt][WK2] Helper functions used by the raw webview tests should not be guarded by HAVE_QTQUICK
diff --git a/Source/WebKit2/Configurations/Base.xcconfig b/Source/WebKit2/Configurations/Base.xcconfig
index 0182371b9..ab4fec7fb 100644
--- a/Source/WebKit2/Configurations/Base.xcconfig
+++ b/Source/WebKit2/Configurations/Base.xcconfig
@@ -59,7 +59,7 @@ VALID_ARCHS = i386 x86_64;
WARNING_CFLAGS = -Wall -Wextra -Wchar-subscripts -Wextra-tokens -Wformat-security -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wno-unused-parameter -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings $(COMPILER_SPECIFIC_WARNING_CFLAGS);
// Prevent C++ standard library operator new, delete and their related exception types from being exported as weak symbols.
-OTHER_LDFLAGS = -Wl,-unexported_symbol -Wl,__ZTISt9bad_alloc -Wl,-unexported_symbol -Wl,__ZTISt9exception -Wl,-unexported_symbol -Wl,__ZTSSt9bad_alloc -Wl,-unexported_symbol -Wl,__ZTSSt9exception -Wl,-unexported_symbol -Wl,__ZdlPvS_ -Wl,-unexported_symbol -Wl,__ZnwmPv;
+OTHER_LDFLAGS = -Wl,-unexported_symbol -Wl,__ZTISt9bad_alloc -Wl,-unexported_symbol -Wl,__ZTISt9exception -Wl,-unexported_symbol -Wl,__ZTSSt9bad_alloc -Wl,-unexported_symbol -Wl,__ZTSSt9exception -Wl,-unexported_symbol -Wl,__ZdlPvS_ -Wl,-unexported_symbol -Wl,__ZnwmPv -Wl,-unexported_symbol -Wl,__Znwm;
CLANG_CXX_LIBRARY = $(CLANG_CXX_LIBRARY_$(TARGET_MAC_OS_X_VERSION_MAJOR));
CLANG_CXX_LIBRARY_1060 = libstdc++;
diff --git a/Source/WebKit2/Configurations/Version.xcconfig b/Source/WebKit2/Configurations/Version.xcconfig
index fef7ac72e..0b9cad4e0 100644
--- a/Source/WebKit2/Configurations/Version.xcconfig
+++ b/Source/WebKit2/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 537;
-MINOR_VERSION = 6;
+MINOR_VERSION = 8;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/Source/WebKit2/Scripts/webkit2/messages.py b/Source/WebKit2/Scripts/webkit2/messages.py
index 2a87d62de..bd9dc9a28 100644
--- a/Source/WebKit2/Scripts/webkit2/messages.py
+++ b/Source/WebKit2/Scripts/webkit2/messages.py
@@ -22,9 +22,7 @@
import collections
import re
-
-import parser
-
+from webkit2 import parser
DELAYED_ATTRIBUTE = 'Delayed'
DISPATCH_ON_CONNECTION_QUEUE_ATTRIBUTE = 'DispatchOnConnectionQueue'
diff --git a/Source/WebKit2/Scripts/webkit2/parser.py b/Source/WebKit2/Scripts/webkit2/parser.py
index 525f137ec..c40080f0a 100644
--- a/Source/WebKit2/Scripts/webkit2/parser.py
+++ b/Source/WebKit2/Scripts/webkit2/parser.py
@@ -22,7 +22,7 @@
import re
-import model
+from webkit2 import model
def parse(file):
diff --git a/Source/WebKit2/Shared/API/c/WKBase.h b/Source/WebKit2/Shared/API/c/WKBase.h
index a6a8bd66f..06aa286ab 100644
--- a/Source/WebKit2/Shared/API/c/WKBase.h
+++ b/Source/WebKit2/Shared/API/c/WKBase.h
@@ -37,7 +37,7 @@
#include <WebKit2/WKBaseGtk.h>
#endif
-#if defined(BUILDING_SOUP__)
+#if defined(WTF_USE_SOUP)
#include <WebKit2/WKBaseSoup.h>
#endif
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp
index d6453757e..71504f641 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp
@@ -70,18 +70,18 @@ struct _Ewk_Context {
WKRetainPtr<WKSoupRequestManagerRef> requestManager;
URLSchemeHandlerMap urlSchemeHandlers;
- _Ewk_Context(WKContextRef contextRef)
+ _Ewk_Context(WKRetainPtr<WKContextRef> contextRef)
: context(contextRef)
, cookieManager(0)
- , requestManager(WKContextGetSoupRequestManager(contextRef))
+ , requestManager(WKContextGetSoupRequestManager(contextRef.get()))
{
#if ENABLE(BATTERY_STATUS)
- WKBatteryManagerRef wkBatteryManager = WKContextGetBatteryManager(contextRef);
+ WKBatteryManagerRef wkBatteryManager = WKContextGetBatteryManager(contextRef.get());
batteryProvider = BatteryProvider::create(wkBatteryManager);
#endif
#if ENABLE(VIBRATION)
- WKVibrationRef wkVibrationRef = WKContextGetVibration(contextRef);
+ WKVibrationRef wkVibrationRef = WKContextGetVibration(contextRef.get());
vibrationProvider = VibrationProvider::create(wkVibrationRef);
#endif
@@ -198,16 +198,11 @@ void ewk_context_url_scheme_request_received(Ewk_Context* ewkContext, Ewk_Url_Sc
handler.callback(schemeRequest, handler.userData);
}
-static inline Ewk_Context* createDefaultEwkContext()
-{
- return new Ewk_Context(WKContextCreate());
-}
-
Ewk_Context* ewk_context_default_get()
{
- static Ewk_Context* defaultContext = createDefaultEwkContext();
+ static Ewk_Context defaultContext(adoptWK(WKContextCreate()));
- return defaultContext;
+ return &defaultContext;
}
Eina_Bool ewk_context_uri_scheme_register(Ewk_Context* ewkContext, const char* scheme, Ewk_Url_Scheme_Request_Cb callback, void* userData)
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp
index fdf7fdf23..be8b0ffa8 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp
@@ -92,6 +92,10 @@ static void onIntentReceived(void* userData, Evas_Object*, void* eventInfo)
suggestions = eina_list_sort(suggestions, 2, stringSortCb);
EXPECT_STREQ(static_cast<const char*>(eina_list_nth(suggestions, 0)), "http://service1.com/");
EXPECT_STREQ(static_cast<const char*>(eina_list_nth(suggestions, 1)), "http://service2.com/");
+
+ void* listData = 0;
+ EINA_LIST_FREE(suggestions, listData)
+ eina_stringshare_del(static_cast<const char*>(listData));
}
}
diff --git a/Source/WebKit2/UIProcess/win/WebPopupMenuProxyWin.cpp b/Source/WebKit2/UIProcess/win/WebPopupMenuProxyWin.cpp
index df4e9854b..a45280733 100644
--- a/Source/WebKit2/UIProcess/win/WebPopupMenuProxyWin.cpp
+++ b/Source/WebKit2/UIProcess/win/WebPopupMenuProxyWin.cpp
@@ -469,6 +469,27 @@ void WebPopupMenuProxyWin::setScrollOffset(const IntPoint& offset)
scrollTo(offset.y());
}
+int WebPopupMenuProxyWin::visibleHeight() const
+{
+ return m_scrollbar ? m_scrollbar->visibleSize() : contentsSize().height();
+}
+
+int WebPopupMenuProxyWin::visibleWidth() const
+{
+ int scrollbarWidth = m_scrollbar ? m_scrollbar->frameRect().width() : 0;
+ return contentsSize().width() - scrollbarWidth;
+}
+
+WebCore::IntSize WebPopupMenuProxyWin::contentsSize() const
+{
+ return clientRect().size();
+}
+
+WebCore::IntRect WebPopupMenuProxyWin::scrollableAreaBoundingBox() const
+{
+ return m_windowRect;
+}
+
void WebPopupMenuProxyWin::scrollTo(int offset)
{
ASSERT(m_scrollbar);
diff --git a/Source/WebKit2/UIProcess/win/WebPopupMenuProxyWin.h b/Source/WebKit2/UIProcess/win/WebPopupMenuProxyWin.h
index b7c4d6d29..1d25373f1 100644
--- a/Source/WebKit2/UIProcess/win/WebPopupMenuProxyWin.h
+++ b/Source/WebKit2/UIProcess/win/WebPopupMenuProxyWin.h
@@ -61,16 +61,21 @@ private:
WebCore::Scrollbar* scrollbar() const { return m_scrollbar.get(); }
// ScrollableArea
- virtual int scrollSize(WebCore::ScrollbarOrientation) const;
- virtual int scrollPosition(WebCore::Scrollbar*) const;
- virtual void setScrollOffset(const WebCore::IntPoint&);
- virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&);
- virtual void invalidateScrollCornerRect(const WebCore::IntRect&) { }
- virtual bool isActive() const { return true; }
- virtual bool isScrollCornerVisible() const { return false; }
- virtual WebCore::IntRect scrollCornerRect() const { return WebCore::IntRect(); }
- virtual WebCore::Scrollbar* verticalScrollbar() const { return m_scrollbar.get(); }
- virtual WebCore::ScrollableArea* enclosingScrollableArea() const { return 0; }
+ virtual int scrollSize(WebCore::ScrollbarOrientation) const OVERRIDE;
+ virtual int scrollPosition(WebCore::Scrollbar*) const OVERRIDE;
+ virtual void setScrollOffset(const WebCore::IntPoint&) OVERRIDE;
+ virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&) OVERRIDE;
+ virtual void invalidateScrollCornerRect(const WebCore::IntRect&) OVERRIDE { }
+ virtual bool isActive() const OVERRIDE { return true; }
+ virtual bool isScrollCornerVisible() const OVERRIDE { return false; }
+ virtual WebCore::IntRect scrollCornerRect() const OVERRIDE { return WebCore::IntRect(); }
+ virtual WebCore::Scrollbar* verticalScrollbar() const OVERRIDE { return m_scrollbar.get(); }
+ virtual WebCore::ScrollableArea* enclosingScrollableArea() const OVERRIDE { return 0; }
+ virtual int visibleHeight() const OVERRIDE;
+ virtual int visibleWidth() const OVERRIDE;
+ virtual WebCore::IntSize contentsSize() const OVERRIDE;
+ virtual WebCore::IntRect scrollableAreaBoundingBox() const OVERRIDE;
+ virtual bool isOnActivePage() const OVERRIDE { return true; }
// NOTE: This should only be called by the overriden setScrollOffset from ScrollableArea.
void scrollTo(int offset);
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp
index 2b115f1e4..358533feb 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp
@@ -154,7 +154,7 @@ void NPRuntimeObjectMap::convertJSValueToNPVariant(ExecState* exec, JSValue valu
}
if (value.isBoolean()) {
- BOOLEAN_TO_NPVARIANT(value.toBoolean(), variant);
+ BOOLEAN_TO_NPVARIANT(value.toBoolean(exec), variant);
return;
}
diff --git a/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h b/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h
index 8a7c28a5b..9ccd80400 100644
--- a/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h
+++ b/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h
@@ -122,30 +122,29 @@ private:
virtual RetainPtr<PDFDocument> pdfDocumentForPrinting() const OVERRIDE { return m_pdfDocument; }
// ScrollableArea methods.
- virtual WebCore::IntRect scrollCornerRect() const;
- virtual WebCore::ScrollableArea* enclosingScrollableArea() const;
+ virtual WebCore::IntRect scrollCornerRect() const OVERRIDE;
+ virtual WebCore::ScrollableArea* enclosingScrollableArea() const OVERRIDE;
virtual WebCore::IntRect scrollableAreaBoundingBox() const OVERRIDE;
- virtual void setScrollOffset(const WebCore::IntPoint&);
- virtual int scrollSize(WebCore::ScrollbarOrientation) const;
- virtual bool isActive() const;
- virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&);
- virtual void invalidateScrollCornerRect(const WebCore::IntRect&);
- virtual bool isScrollCornerVisible() const;
- virtual int scrollPosition(WebCore::Scrollbar*) const;
- virtual WebCore::IntPoint scrollPosition() const;
- virtual WebCore::IntPoint minimumScrollPosition() const;
- virtual WebCore::IntPoint maximumScrollPosition() const;
- virtual int visibleHeight() const;
- virtual int visibleWidth() const;
- virtual WebCore::IntSize contentsSize() const;
- virtual WebCore::Scrollbar* horizontalScrollbar() const { return m_horizontalScrollbar.get(); }
- virtual WebCore::Scrollbar* verticalScrollbar() const { return m_verticalScrollbar.get(); }
- virtual bool isOnActivePage() const;
- virtual bool shouldSuspendScrollAnimations() const { return false; } // If we return true, ScrollAnimatorMac will keep cycling a timer forever, waiting for a good time to animate.
- virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate);
-
+ virtual void setScrollOffset(const WebCore::IntPoint&) OVERRIDE;
+ virtual int scrollSize(WebCore::ScrollbarOrientation) const OVERRIDE;
+ virtual bool isActive() const OVERRIDE;
+ virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&) OVERRIDE;
+ virtual void invalidateScrollCornerRect(const WebCore::IntRect&) OVERRIDE;
+ virtual bool isScrollCornerVisible() const OVERRIDE;
+ virtual int scrollPosition(WebCore::Scrollbar*) const OVERRIDE;
+ virtual WebCore::IntPoint scrollPosition() const OVERRIDE;
+ virtual WebCore::IntPoint minimumScrollPosition() const OVERRIDE;
+ virtual WebCore::IntPoint maximumScrollPosition() const OVERRIDE;
+ virtual int visibleHeight() const OVERRIDE;
+ virtual int visibleWidth() const OVERRIDE;
+ virtual WebCore::IntSize contentsSize() const OVERRIDE;
+ virtual WebCore::Scrollbar* horizontalScrollbar() const OVERRIDE { return m_horizontalScrollbar.get(); }
+ virtual WebCore::Scrollbar* verticalScrollbar() const OVERRIDE { return m_verticalScrollbar.get(); }
+ virtual bool isOnActivePage() const OVERRIDE;
+ virtual bool shouldSuspendScrollAnimations() const OVERRIDE { return false; } // If we return true, ScrollAnimatorMac will keep cycling a timer forever, waiting for a good time to animate.
+ virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate) OVERRIDE;
// FIXME: Implement the other conversion functions; this one is enough to get scrollbar hit testing working.
- virtual WebCore::IntPoint convertFromContainingViewToScrollbar(const WebCore::Scrollbar*, const WebCore::IntPoint& parentPoint) const;
+ virtual WebCore::IntPoint convertFromContainingViewToScrollbar(const WebCore::Scrollbar*, const WebCore::IntPoint& parentPoint) const OVERRIDE;
JSObjectRef makeJSPDFDoc(JSContextRef);
static JSValueRef jsPDFDocPrint(JSContextRef, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
diff --git a/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.mm b/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.mm
index 61db553fc..fe7f258b0 100644
--- a/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.mm
+++ b/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.mm
@@ -342,6 +342,7 @@ bool BuiltInPDFView::initialize(const Parameters& parameters)
if (!parameters.shouldUseManualLoader && !parameters.url.isEmpty())
controller()->loadURL(pdfDocumentRequestID, "GET", parameters.url.string(), String(), HTTPHeaderMap(), Vector<uint8_t>(), false);
+ controller()->didInitializePlugin();
return true;
}
diff --git a/Source/cmake/OptionsEfl.cmake b/Source/cmake/OptionsEfl.cmake
index 581f4ab89..25bf597d9 100644
--- a/Source/cmake/OptionsEfl.cmake
+++ b/Source/cmake/OptionsEfl.cmake
@@ -33,7 +33,6 @@ SET(ENABLE_GLIB_SUPPORT ON)
SET(WTF_USE_SOUP 1)
ADD_DEFINITIONS(-DWTF_USE_SOUP=1)
-ADD_DEFINITIONS(-DBUILDING_SOUP__=1)
ADD_DEFINITIONS(-DENABLE_CONTEXT_MENUS=0)
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 7cfd033bd..02deb5d68 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,115 @@
+2012-08-23 Dirk Pranke <dpranke@chromium.org>
+
+ leak detection broken after r126247 on mac
+ https://bugs.webkit.org/show_bug.cgi?id=94893
+
+ Unreviewed, build fix.
+
+ Adds is_snowleopard(), is_lion back() in for the mac port. We'll
+ probably need an is_mountainlion() or equivalent at some point,
+ I'm guessing (but I've deleted the leopard code).
+
+ * Scripts/webkitpy/layout_tests/port/leakdetector.py:
+ (LeakDetector._callstacks_to_exclude_from_leaks):
+ * Scripts/webkitpy/layout_tests/port/mac.py:
+ (MacPort):
+ (MacPort.is_snowleopard):
+ (MacPort.is_lion):
+
+2012-08-23 Julien Chaffraix <jchaffraix@webkit.org>
+
+ [Chromium] Enable AtomicString && CString && WTFString && StringImpl unit tests
+ https://bugs.webkit.org/show_bug.cgi?id=94871
+
+ Reviewed by Benjamin Poulain.
+
+ * TestWebKitAPI/TestWebKitAPI.gypi:
+ Added the missing files to Chromium's build system.
+
+2012-08-23 Raphael Kubo da Costa <rakuco@webkit.org>
+
+ [watchlist] Unreviewed, subscribe to WebKit2-EFL bugs.
+
+ * Scripts/webkitpy/common/config/watchlist:
+
+2012-08-23 Ryosuke Niwa <rniwa@webkit.org>
+
+ Replay tests take forever to load
+ https://bugs.webkit.org/show_bug.cgi?id=94764
+
+ Reviewed by Adam Barth.
+
+ Don't load about:blank at the beginning. This appears to clog the DRT.
+
+ * Scripts/webkitpy/performance_tests/perftest.py:
+ (ReplayPerfTest.run_single):
+ * Scripts/webkitpy/performance_tests/perftest_unittest.py:
+ (TestReplayPerfTest.test_run_single):
+ (TestReplayPerfTest.test_run_single_fails_when_output_has_error):
+
+2012-08-23 Kenneth Russell <kbr@google.com>
+
+ Unreviewed, rolling out r126497.
+ http://trac.webkit.org/changeset/126497
+ https://bugs.webkit.org/show_bug.cgi?id=94764
+
+ Caused webkitpy-test step to start failing.
+
+ * Scripts/webkitpy/performance_tests/perftest.py:
+ (ReplayPerfTest.run_single):
+
+2012-08-23 Emil A Eklund <eae@chromium.org>
+
+ Add saturation arithmetic support to FractionalLayoutUnit
+ https://bugs.webkit.org/show_bug.cgi?id=94364
+
+ Reviewed by Benjamin Poulain.
+
+ Add test for new saturatedArithmetic functions.
+
+ * TestWebKitAPI/CMakeLists.txt:
+ * TestWebKitAPI/GNUmakefile.am:
+ * TestWebKitAPI/TestWebKitAPI.gypi:
+ * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
+ * TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp: Added.
+ (TestWebKitAPI):
+ (TestWebKitAPI::TEST):
+ * TestWebKitAPI/win/TestWebKitAPI.vcproj:
+
+2012-08-23 Ryosuke Niwa <rniwa@webkit.org>
+
+ Replay tests take forever to load
+ https://bugs.webkit.org/show_bug.cgi?id=94764
+
+ Reviewed by Adam Barth.
+
+ Don't load about:blank at the beginning. This appears to clog the DRT.
+
+ * Scripts/webkitpy/performance_tests/perftest.py:
+ (ReplayPerfTest.run_single):
+
+2012-08-23 Wei Jia <wjia@chromium.org>
+
+ create different WebKit::WebMediaPlayer based on URL
+ https://bugs.webkit.org/show_bug.cgi?id=91301
+
+ Reviewed by Adam Barth.
+
+ Pass URL to createMediaPlayer. This corresponds to change in base
+ class WebKit::WebFrameClient.
+
+ * DumpRenderTree/chromium/WebViewHost.cpp:
+ (WebViewHost::createMediaPlayer): add URL as additional argument.
+ * DumpRenderTree/chromium/WebViewHost.h:
+ (WebViewHost):
+
+2012-08-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Unreviewed, upgrade gyuyoung to reviewer.
+ http://lists.webkit.org/pipermail/webkit-dev/2012-August/022004.html
+
+ * Scripts/webkitpy/common/config/committers.py:
+
2012-08-23 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r126306): it broke the plugin process
diff --git a/Tools/DumpRenderTree/chromium/WebViewHost.cpp b/Tools/DumpRenderTree/chromium/WebViewHost.cpp
index 3ab8a8639..62ee93891 100644
--- a/Tools/DumpRenderTree/chromium/WebViewHost.cpp
+++ b/Tools/DumpRenderTree/chromium/WebViewHost.cpp
@@ -1006,12 +1006,12 @@ WebPlugin* WebViewHost::createPlugin(WebFrame* frame, const WebPluginParams& par
return webkit_support::CreateWebPlugin(frame, params);
}
-WebMediaPlayer* WebViewHost::createMediaPlayer(WebFrame* frame, WebMediaPlayerClient* client)
+WebMediaPlayer* WebViewHost::createMediaPlayer(WebFrame* frame, const WebURL& url, WebMediaPlayerClient* client)
{
#if ENABLE(MEDIA_STREAM)
- return webkit_support::CreateMediaPlayer(frame, client, testMediaStreamClient());
+ return webkit_support::CreateMediaPlayer(frame, url, client, testMediaStreamClient());
#else
- return webkit_support::CreateMediaPlayer(frame, client);
+ return webkit_support::CreateMediaPlayer(frame, url, client);
#endif
}
diff --git a/Tools/DumpRenderTree/chromium/WebViewHost.h b/Tools/DumpRenderTree/chromium/WebViewHost.h
index 94ed4cd8d..78939541d 100644
--- a/Tools/DumpRenderTree/chromium/WebViewHost.h
+++ b/Tools/DumpRenderTree/chromium/WebViewHost.h
@@ -225,7 +225,7 @@ class WebViewHost : public WebKit::WebViewClient, public WebKit::WebFrameClient,
// WebKit::WebFrameClient
virtual WebKit::WebPlugin* createPlugin(WebKit::WebFrame*, const WebKit::WebPluginParams&);
- virtual WebKit::WebMediaPlayer* createMediaPlayer(WebKit::WebFrame*, WebKit::WebMediaPlayerClient*);
+ virtual WebKit::WebMediaPlayer* createMediaPlayer(WebKit::WebFrame*, const WebKit::WebURL&, WebKit::WebMediaPlayerClient*);
virtual WebKit::WebApplicationCacheHost* createApplicationCacheHost(WebKit::WebFrame*, WebKit::WebApplicationCacheHostClient*);
virtual void loadURLExternally(WebKit::WebFrame*, const WebKit::WebURLRequest&, WebKit::WebNavigationPolicy);
virtual void loadURLExternally(WebKit::WebFrame*, const WebKit::WebURLRequest&, WebKit::WebNavigationPolicy, const WebKit::WebString& downloadName);
diff --git a/Tools/Scripts/webkitpy/common/config/committers.py b/Tools/Scripts/webkitpy/common/config/committers.py
index 1b170847b..bfdc30e9d 100644
--- a/Tools/Scripts/webkitpy/common/config/committers.py
+++ b/Tools/Scripts/webkitpy/common/config/committers.py
@@ -260,7 +260,6 @@ committers_unable_to_review = [
Committer("Graham Dennis", ["Graham.Dennis@gmail.com", "gdennis@webkit.org"]),
Committer("Greg Bolsinga", "bolsinga@apple.com"),
Committer("Grzegorz Czajkowski", "g.czajkowski@samsung.com", "grzegorz"),
- Committer("Gyuyoung Kim", ["gyuyoung.kim@samsung.com", "gyuyoung.kim@webkit.org"], "gyuyoung"),
Committer("Hans Wennborg", "hans@chromium.org", "hwennborg"),
Committer("Hayato Ito", "hayato@chromium.org", "hayato"),
Committer("Hironori Bono", "hbono@chromium.org", "hbono"),
@@ -471,6 +470,7 @@ reviewers_list = [
Reviewer("Geoffrey Garen", "ggaren@apple.com", "ggaren"),
Reviewer("George Staikos", ["staikos@kde.org", "staikos@webkit.org"]),
Reviewer("Gustavo Noronha Silva", ["gns@gnome.org", "kov@webkit.org", "gustavo.noronha@collabora.co.uk", "gustavo.noronha@collabora.com"], "kov"),
+ Reviewer("Gyuyoung Kim", ["gyuyoung.kim@samsung.com", "gyuyoung.kim@webkit.org"], "gyuyoung"),
Reviewer("Hajime Morita", ["morrita@google.com", "morrita@chromium.org"], "morrita"),
Reviewer("Holger Freyther", ["zecke@selfish.org", "zecke@webkit.org"], "zecke"),
Reviewer("James Robinson", ["jamesr@chromium.org", "jamesr@google.com"], "jamesr"),
diff --git a/Tools/Scripts/webkitpy/common/config/watchlist b/Tools/Scripts/webkitpy/common/config/watchlist
index 513403bc7..13c912ff9 100755
--- a/Tools/Scripts/webkitpy/common/config/watchlist
+++ b/Tools/Scripts/webkitpy/common/config/watchlist
@@ -229,8 +229,8 @@
"ChromiumPublicApi": [ "abarth@webkit.org", "dglazkov@chromium.org", "fishd@chromium.org", "jamesr@chromium.org", "tkent+wkapi@chromium.org" ],
"DOMAttributes": [ "cmarcelo@webkit.org", ],
"EFL": [ "rakuco@webkit.org", "gyuyoung.kim@samsung.com" ],
- "EFLWebKit2PlatformSpecific": [ "gyuyoung.kim@samsung.com" ],
- "EFLWebKit2PublicAPI": [ "gyuyoung.kim@samsung.com" ],
+ "EFLWebKit2PlatformSpecific": [ "gyuyoung.kim@samsung.com", "rakuco@webkit.org" ],
+ "EFLWebKit2PublicAPI": [ "gyuyoung.kim@samsung.com", "rakuco@webkit.org" ],
"Editing": [ "mifenton@rim.com" ],
"Forms": [ "tkent@chromium.org", "mifenton@rim.com" ],
"FrameLoader": [ "abarth@webkit.org", "japhet@chromium.org" ],
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/leakdetector.py b/Tools/Scripts/webkitpy/layout_tests/port/leakdetector.py
index 25dd44f40..f46cd34e5 100644
--- a/Tools/Scripts/webkitpy/layout_tests/port/leakdetector.py
+++ b/Tools/Scripts/webkitpy/layout_tests/port/leakdetector.py
@@ -57,18 +57,7 @@ class LeakDetector(object):
"Flash_EnforceLocalSecurity", # leaks in Flash plug-in code, rdar://problem/4449747
"ScanFromString", # <http://code.google.com/p/angleproject/issues/detail?id=249> leak in ANGLE
]
- if self._port.is_leopard():
- callstacks += [
- "CFHTTPMessageAppendBytes", # leak in CFNetwork, rdar://problem/5435912
- "sendDidReceiveDataCallback", # leak in CFNetwork, rdar://problem/5441619
- "_CFHTTPReadStreamReadMark", # leak in CFNetwork, rdar://problem/5441468
- "httpProtocolStart", # leak in CFNetwork, rdar://problem/5468837
- "_CFURLConnectionSendCallbacks", # leak in CFNetwork, rdar://problem/5441600
- "DispatchQTMsg", # leak in QuickTime, PPC only, rdar://problem/5667132
- "QTMovieContentView createVisualContext", # leak in QuickTime, PPC only, rdar://problem/5667132
- "_CopyArchitecturesForJVMVersion", # leak in Java, rdar://problem/5910823
- ]
- elif self._port.is_snowleopard():
+ if self._port.is_snowleopard():
callstacks += [
"readMakerNoteProps", # <rdar://problem/7156432> leak in ImageIO
"QTKitMovieControllerView completeUISetup", # <rdar://problem/7155156> leak in QTKit
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/mac.py b/Tools/Scripts/webkitpy/layout_tests/port/mac.py
index deee3d1be..400959cfd 100644
--- a/Tools/Scripts/webkitpy/layout_tests/port/mac.py
+++ b/Tools/Scripts/webkitpy/layout_tests/port/mac.py
@@ -98,6 +98,14 @@ class MacPort(ApplePort):
def operating_system(self):
return 'mac'
+ # Belongs on a Platform object.
+ def is_snowleopard(self):
+ return self._version == "snowleopard"
+
+ # Belongs on a Platform object.
+ def is_lion(self):
+ return self._version == "lion"
+
def default_child_processes(self):
# FIXME: The Printer isn't initialized when this is called, so using _log would just show an unitialized logger error.
diff --git a/Tools/Scripts/webkitpy/performance_tests/perftest.py b/Tools/Scripts/webkitpy/performance_tests/perftest.py
index 8ef945893..69d9363f4 100644
--- a/Tools/Scripts/webkitpy/performance_tests/perftest.py
+++ b/Tools/Scripts/webkitpy/performance_tests/perftest.py
@@ -319,9 +319,7 @@ class ReplayPerfTest(PageLoadingPerfTest):
_log.error("Web page replay didn't start.")
return None
- super(ReplayPerfTest, self).run_single(driver, "about:blank", time_out_ms)
- _log.debug("Loading the page")
-
+ _log.debug("Web page replay started. Loading the page.")
output = super(ReplayPerfTest, self).run_single(driver, self._url, time_out_ms, should_run_pixel_test=True)
if self.run_failed(output):
return None
diff --git a/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py b/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py
index 3b7c609ce..2b35e71ee 100755
--- a/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py
+++ b/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py
@@ -192,9 +192,8 @@ class TestReplayPerfTest(unittest.TestCase):
finally:
actual_stdout, actual_stderr, actual_logs = output_capture.restore_output()
- self.assertEqual(len(loaded_pages), 2)
- self.assertEqual(loaded_pages[0].test_name, 'about:blank')
- self.assertEqual(loaded_pages[1].test_name, 'http://some-test/')
+ self.assertEqual(len(loaded_pages), 1)
+ self.assertEqual(loaded_pages[0].test_name, 'http://some-test/')
self.assertEqual(actual_stdout, '')
self.assertEqual(actual_stderr, '')
self.assertEqual(actual_logs, '')
@@ -259,9 +258,8 @@ class TestReplayPerfTest(unittest.TestCase):
finally:
actual_stdout, actual_stderr, actual_logs = output_capture.restore_output()
- self.assertEqual(len(loaded_pages), 2)
- self.assertEqual(loaded_pages[0].test_name, 'about:blank')
- self.assertEqual(loaded_pages[1].test_name, 'http://some-test/')
+ self.assertEqual(len(loaded_pages), 1)
+ self.assertEqual(loaded_pages[0].test_name, 'http://some-test/')
self.assertEqual(actual_stdout, '')
self.assertEqual(actual_stderr, '')
self.assertEqual(actual_logs, 'error: some-test.replay\nsome error\n')
diff --git a/Tools/TestWebKitAPI/CMakeLists.txt b/Tools/TestWebKitAPI/CMakeLists.txt
index fffbb31bb..5afadba2b 100644
--- a/Tools/TestWebKitAPI/CMakeLists.txt
+++ b/Tools/TestWebKitAPI/CMakeLists.txt
@@ -73,6 +73,7 @@ ADD_EXECUTABLE(test_wtf
${TESTWEBKITAPI_DIR}/Tests/WTF/HashMap.cpp
${TESTWEBKITAPI_DIR}/Tests/WTF/MetaAllocator.cpp
${TESTWEBKITAPI_DIR}/Tests/WTF/RedBlackTree.cpp
+ ${TESTWEBKITAPI_DIR}/Tests/WTF/SaturatedArithmeticOperations.cpp
${TESTWEBKITAPI_DIR}/Tests/WTF/StringBuilder.cpp
${TESTWEBKITAPI_DIR}/Tests/WTF/StringImpl.cpp
${TESTWEBKITAPI_DIR}/Tests/WTF/StringOperators.cpp
diff --git a/Tools/TestWebKitAPI/GNUmakefile.am b/Tools/TestWebKitAPI/GNUmakefile.am
index 0c575d809..56f430006 100644
--- a/Tools/TestWebKitAPI/GNUmakefile.am
+++ b/Tools/TestWebKitAPI/GNUmakefile.am
@@ -57,6 +57,7 @@ Programs_TestWebKitAPI_TestWTF_SOURCES = \
Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp \
Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp \
Tools/TestWebKitAPI/Tests/WTF/RedBlackTree.cpp \
+ Tools/TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp \
Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp \
Tools/TestWebKitAPI/Tests/WTF/StringImpl.cpp \
Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp \
diff --git a/Tools/TestWebKitAPI/TestWebKitAPI.gypi b/Tools/TestWebKitAPI/TestWebKitAPI.gypi
index 941e776d5..197723344 100644
--- a/Tools/TestWebKitAPI/TestWebKitAPI.gypi
+++ b/Tools/TestWebKitAPI/TestWebKitAPI.gypi
@@ -31,17 +31,22 @@
{
'variables': {
'TestWebKitAPI_files': [
+ 'Tests/WTF/AtomicString.cpp',
'Tests/WTF/CheckedArithmeticOperations.cpp',
+ 'Tests/WTF/CString.cpp',
'Tests/WTF/Functional.cpp',
'Tests/WTF/HashMap.cpp',
'Tests/WTF/MediaTime.cpp',
'Tests/WTF/RedBlackTree.cpp',
+ 'Tests/WTF/SaturatedArithmeticOperations.cpp',
'Tests/WTF/StringBuilder.cpp',
+ 'Tests/WTF/StringImpl.cpp',
'Tests/WTF/StringOperators.cpp',
'Tests/WTF/TemporaryChange.cpp',
'Tests/WTF/Vector.cpp',
'Tests/WTF/VectorBasic.cpp',
'Tests/WTF/VectorReverse.cpp',
+ 'Tests/WTF/WTFString.cpp',
],
},
}
diff --git a/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj b/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
index 65fe48c67..9576250f2 100644
--- a/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
+++ b/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
@@ -13,6 +13,7 @@
0F17BBD615AF6C4D007AB753 /* WebCoreStatisticsWithNoWebProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F17BBD415AF6C4D007AB753 /* WebCoreStatisticsWithNoWebProcess.cpp */; };
0FC6C4CC141027E0005B7F0C /* RedBlackTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FC6C4CB141027E0005B7F0C /* RedBlackTree.cpp */; };
0FC6C4CF141034AD005B7F0C /* MetaAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FC6C4CE141034AD005B7F0C /* MetaAllocator.cpp */; };
+ 14F3B11315E45EAB00210069 /* SaturatedArithmeticOperations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 14F3B11215E45EAB00210069 /* SaturatedArithmeticOperations.cpp */; };
1A02C84F125D4A8400E3F4BD /* Find.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A02C84E125D4A8400E3F4BD /* Find.cpp */; };
1A02C870125D4CFD00E3F4BD /* find.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 1A02C84B125D4A5E00E3F4BD /* find.html */; };
1A5FEFDD1270E2A3000E2921 /* EvaluateJavaScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A5FEFDC1270E2A3000E2921 /* EvaluateJavaScript.cpp */; };
@@ -245,6 +246,7 @@
0F17BBD415AF6C4D007AB753 /* WebCoreStatisticsWithNoWebProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreStatisticsWithNoWebProcess.cpp; sourceTree = "<group>"; };
0FC6C4CB141027E0005B7F0C /* RedBlackTree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RedBlackTree.cpp; path = WTF/RedBlackTree.cpp; sourceTree = "<group>"; };
0FC6C4CE141034AD005B7F0C /* MetaAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MetaAllocator.cpp; path = WTF/MetaAllocator.cpp; sourceTree = "<group>"; };
+ 14F3B11215E45EAB00210069 /* SaturatedArithmeticOperations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SaturatedArithmeticOperations.cpp; path = WTF/SaturatedArithmeticOperations.cpp; sourceTree = "<group>"; };
1A02C84B125D4A5E00E3F4BD /* find.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = find.html; sourceTree = "<group>"; };
1A02C84E125D4A8400E3F4BD /* Find.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Find.cpp; sourceTree = "<group>"; };
1A5FEFDC1270E2A3000E2921 /* EvaluateJavaScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EvaluateJavaScript.cpp; sourceTree = "<group>"; };
@@ -638,6 +640,7 @@
1AA9E55714980A9900001A8A /* Functional.cpp */,
0BCD833414857CE400EA2003 /* HashMap.cpp */,
26B2DFF815BDE599004F691D /* HashSet.cpp */,
+ 14F3B11215E45EAB00210069 /* SaturatedArithmeticOperations.cpp */,
81B50192140F232300D9EB58 /* StringBuilder.cpp */,
26F1B44315CA434F00D1E4BF /* StringImpl.cpp */,
C01363C713C3997300EF3964 /* StringOperators.cpp */,
@@ -873,105 +876,106 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ BC246D8E132F115A00B56D7C /* AboutBlankLoad.cpp in Sources */,
+ 379028B614FABD92007E6B43 /* AcceptsFirstMouse.mm in Sources */,
26F1B44415CA434F00D1E4BF /* AtomicString.cpp in Sources */,
+ B55F11A01516834F00915916 /* AttributedString.mm in Sources */,
+ 00CD9F6315BE312C002DA2CE /* BackForwardList.mm in Sources */,
+ 26DF5A5E15A29BAA003689C2 /* CancelLoadFromResourceLoadDelegate.mm in Sources */,
+ BC246D9A132F1FE100B56D7C /* CanHandleRequest.cpp in Sources */,
+ A7A966DB140ECCC8005EF9B4 /* CheckedArithmeticOperations.cpp in Sources */,
+ 5142B2711517C88B00C32B19 /* ContextMenuCanCopyURL.mm in Sources */,
+ F6F3F29113342FEB00A6BF19 /* CookieManager.cpp in Sources */,
26A2C72F15E2E73C005B1A14 /* CString.cpp in Sources */,
- BC131885117114B600B69727 /* PlatformUtilitiesMac.mm in Sources */,
- BC131A9B1171316900B69727 /* main.mm in Sources */,
- BC131AA9117131FC00B69727 /* TestsController.cpp in Sources */,
- BC90955D125548AA00083756 /* PlatformWebViewMac.mm in Sources */,
- BC90964C125561BF00083756 /* VectorBasic.cpp in Sources */,
- BC90977A125571AB00083756 /* PageLoadBasic.cpp in Sources */,
- BC90995E12567BC100083756 /* WKString.cpp in Sources */,
- BC9099941256ACF100083756 /* WKStringJSString.cpp in Sources */,
- BCBD3710125AA2EB00D2C29F /* FrameMIMETypeHTML.cpp in Sources */,
- BCBD3761125ABCFE00D2C29F /* FrameMIMETypePNG.cpp in Sources */,
- 1A02C84F125D4A8400E3F4BD /* Find.cpp in Sources */,
- BCC8B95B12611F4700DE46A4 /* FailedLoad.cpp in Sources */,
- C02B77F2126612140026BF0F /* SpacebarScrolling.cpp in Sources */,
- BC575AAD126E83B9006F0F12 /* InjectedBundleBasic.cpp in Sources */,
- BC575BC0126F5752006F0F12 /* PlatformUtilities.cpp in Sources */,
+ 3776BC63150946BC0043A66D /* DeviceScaleFactorInDashboardRegions.mm in Sources */,
+ 939BA91714103412001A01BD /* DeviceScaleFactorOnBack.mm in Sources */,
BCB68040126FBFE100642A61 /* DocumentStartUserScriptAlertCrash.cpp in Sources */,
+ 37DC678D140D7C5000ABCCDB /* DOMRangeOfString.mm in Sources */,
+ 51393E201523944A005F39C5 /* DOMWindowExtensionBasic.cpp in Sources */,
+ F6F49C6915545C8E0007F39D /* DOMWindowExtensionNoCache.cpp in Sources */,
+ C045F9451385C2EA00C0F3CD /* DownloadDecideDestinationCrash.cpp in Sources */,
+ C07E6CAF13FD67650038B22B /* DynamicDeviceScaleFactor.mm in Sources */,
+ BCAA485814A044D40088FAC4 /* EditorCommands.mm in Sources */,
1A5FEFDD1270E2A3000E2921 /* EvaluateJavaScript.cpp in Sources */,
- 333B9CE21277F23100FEFCE3 /* PreventEmptyUserAgent.cpp in Sources */,
- BC7B61AA129A038700D174A4 /* WKPreferences.cpp in Sources */,
- BC2D004912A9FDFA00E732A3 /* PageLoadDidChangeLocationWithinPageForFrame.cpp in Sources */,
- C0ADBE7C12FCA4D000D2C129 /* JavaScriptTest.cpp in Sources */,
- C0ADBE8312FCA6AA00D2C129 /* RestoreSessionStateContainingFormData.cpp in Sources */,
+ BCC8B95B12611F4700DE46A4 /* FailedLoad.cpp in Sources */,
+ 1A02C84F125D4A8400E3F4BD /* Find.cpp in Sources */,
1ADBEFAE130C689C00D61D19 /* ForceRepaint.cpp in Sources */,
+ BCBD3710125AA2EB00D2C29F /* FrameMIMETypeHTML.cpp in Sources */,
+ BCBD3761125ABCFE00D2C29F /* FrameMIMETypePNG.cpp in Sources */,
+ 1AA9E55914980A9900001A8A /* Functional.cpp in Sources */,
+ C0C5D3BE14598B6F00A802A6 /* GetBackingScaleFactor.mm in Sources */,
+ F660AA0D15A5F061003A1243 /* GetInjectedBundleInitializationUserDataCallback.cpp in Sources */,
+ 0BCD833514857CE400EA2003 /* HashMap.cpp in Sources */,
+ 26B2DFF915BDE599004F691D /* HashSet.cpp in Sources */,
4BFDFFA9131477770061F24B /* HitTestResultNodeHandle.cpp in Sources */,
- C0BD669D131D3CF700E18F2A /* ResponsivenessTimerDoesntFireEarly.cpp in Sources */,
- BC246D8E132F115A00B56D7C /* AboutBlankLoad.cpp in Sources */,
- BC246D9A132F1FE100B56D7C /* CanHandleRequest.cpp in Sources */,
- F6F3F29113342FEB00A6BF19 /* CookieManager.cpp in Sources */,
- 33BE5AF5137B5A6C00705813 /* MouseMoveAfterCrash.cpp in Sources */,
- C045F9451385C2EA00C0F3CD /* DownloadDecideDestinationCrash.cpp in Sources */,
- 37200B9213A16230007A4FAD /* VectorReverse.cpp in Sources */,
- C01363C813C3997300EF3964 /* StringOperators.cpp in Sources */,
- C081224213FC172400DC39AE /* JavaScriptTestMac.mm in Sources */,
- C081224513FC19EC00DC39AE /* SyntheticBackingScaleFactorWindow.m in Sources */,
- C07E6CAF13FD67650038B22B /* DynamicDeviceScaleFactor.mm in Sources */,
- C08587BF13FE956C001EF4E5 /* WebKitAgnosticTest.mm in Sources */,
+ 9B4F8FA4159D52B1002D9F94 /* HTMLCollectionNamedItem.mm in Sources */,
+ 9B26FC6C159D061000CC3765 /* HTMLFormCollectionNamedItem.mm in Sources */,
+ BC575AAD126E83B9006F0F12 /* InjectedBundleBasic.cpp in Sources */,
+ F660AA1315A619C9003A1243 /* InjectedBundleInitializationUserDataCallbackWins.cpp in Sources */,
+ C507E8A714C6545B005D6B3B /* InspectorBar.mm in Sources */,
C08587FC13FEC39B001EF4E5 /* InstanceMethodSwizzler.mm in Sources */,
C085880013FEC3A6001EF4E5 /* InstanceMethodSwizzler.mm in Sources */,
- 37DC678D140D7C5000ABCCDB /* DOMRangeOfString.mm in Sources */,
- 81B50193140F232300D9EB58 /* StringBuilder.cpp in Sources */,
- 26F1B44515CA434F00D1E4BF /* StringImpl.cpp in Sources */,
- 0FC6C4CC141027E0005B7F0C /* RedBlackTree.cpp in Sources */,
- 0FC6C4CF141034AD005B7F0C /* MetaAllocator.cpp in Sources */,
- A7A966DB140ECCC8005EF9B4 /* CheckedArithmeticOperations.cpp in Sources */,
- 939BA91714103412001A01BD /* DeviceScaleFactorOnBack.mm in Sources */,
- 3799AD3A14120A43005EB0C6 /* StringByEvaluatingJavaScriptFromString.mm in Sources */,
+ C0ADBE7C12FCA4D000D2C129 /* JavaScriptTest.cpp in Sources */,
+ C081224213FC172400DC39AE /* JavaScriptTestMac.mm in Sources */,
+ 440A1D3914A0103A008A66F2 /* KURL.cpp in Sources */,
+ 52CB47411448FB9300873995 /* LoadAlternateHTMLStringWithNonDirectoryURL.cpp in Sources */,
33DC8911141953A300747EF7 /* LoadCanceledNoServerRedirectCallback.cpp in Sources */,
- 520BCF4D141EB09E00937EA8 /* WebArchive.cpp in Sources */,
+ BC131A9B1171316900B69727 /* main.mm in Sources */,
+ CD5497B415857F0C00B5BC30 /* MediaTime.cpp in Sources */,
+ E1220DA0155B25480013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.mm in Sources */,
+ 517E7DFC15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm in Sources */,
+ 0FC6C4CF141034AD005B7F0C /* MetaAllocator.cpp in Sources */,
+ 33BE5AF5137B5A6C00705813 /* MouseMoveAfterCrash.cpp in Sources */,
+ 93F1DB3114DA20760024C362 /* NewFirstVisuallyNonEmptyLayout.cpp in Sources */,
+ 93F1DB5514DB1B730024C362 /* NewFirstVisuallyNonEmptyLayoutFails.cpp in Sources */,
+ 93F7E86C14DC8E4D00C84A99 /* NewFirstVisuallyNonEmptyLayoutFrames.cpp in Sources */,
+ BC90977A125571AB00083756 /* PageLoadBasic.cpp in Sources */,
+ BC2D004912A9FDFA00E732A3 /* PageLoadDidChangeLocationWithinPageForFrame.cpp in Sources */,
+ 52E5CE4614D21E9D003B2BD8 /* ParentFrame.cpp in Sources */,
+ BC575BC0126F5752006F0F12 /* PlatformUtilities.cpp in Sources */,
+ BC131885117114B600B69727 /* PlatformUtilitiesMac.mm in Sources */,
+ BC90955D125548AA00083756 /* PlatformWebViewMac.mm in Sources */,
+ 333B9CE21277F23100FEFCE3 /* PreventEmptyUserAgent.cpp in Sources */,
F6FDDDD314241AD4004F1729 /* PrivateBrowsingPushStateNoHistoryCallback.cpp in Sources */,
- C0991C51143C7D68007998F2 /* RetainPtrHashing.cpp in Sources */,
- 52CB47411448FB9300873995 /* LoadAlternateHTMLStringWithNonDirectoryURL.cpp in Sources */,
- BC3C4C7214575B6A0025FB62 /* WKBrowsingContextLoadDelegateTest.mm in Sources */,
- BC3C4C7F14587AA60025FB62 /* WKBrowsingContextGroupTest.mm in Sources */,
- C0C5D3BE14598B6F00A802A6 /* GetBackingScaleFactor.mm in Sources */,
- 0BCD833514857CE400EA2003 /* HashMap.cpp in Sources */,
+ 0FC6C4CC141027E0005B7F0C /* RedBlackTree.cpp in Sources */,
3722C8691461E03E00C45D00 /* RenderedImageFromDOMRange.mm in Sources */,
- 0BCD856A1485C98B00EA2003 /* TemporaryChange.cpp in Sources */,
- 37A6895F148A9B50005100FA /* SubresourceErrorCrash.mm in Sources */,
+ C0BD669D131D3CF700E18F2A /* ResponsivenessTimerDoesntFireEarly.cpp in Sources */,
+ C0ADBE8312FCA6AA00D2C129 /* RestoreSessionStateContainingFormData.cpp in Sources */,
BC029B181486AD6400817DA9 /* RetainPtr.cpp in Sources */,
+ C0991C51143C7D68007998F2 /* RetainPtrHashing.cpp in Sources */,
BC029B1C1486B25900817DA9 /* RetainPtr.mm in Sources */,
- BC901E241492ADCE0074A667 /* WKConnection.cpp in Sources */,
- 1AA9E55914980A9900001A8A /* Functional.cpp in Sources */,
- BCAA485814A044D40088FAC4 /* EditorCommands.mm in Sources */,
- BC55F5F914AD78EE00484BE1 /* Vector.cpp in Sources */,
- 440A1D3914A0103A008A66F2 /* KURL.cpp in Sources */,
- C507E8A714C6545B005D6B3B /* InspectorBar.mm in Sources */,
- 52E5CE4614D21E9D003B2BD8 /* ParentFrame.cpp in Sources */,
- 93F1DB3114DA20760024C362 /* NewFirstVisuallyNonEmptyLayout.cpp in Sources */,
- 93F1DB5514DB1B730024C362 /* NewFirstVisuallyNonEmptyLayoutFails.cpp in Sources */,
- 93F7E86C14DC8E4D00C84A99 /* NewFirstVisuallyNonEmptyLayoutFrames.cpp in Sources */,
- BC22D31514DC689800FFB1DD /* UserMessage.cpp in Sources */,
+ 14F3B11315E45EAB00210069 /* SaturatedArithmeticOperations.cpp in Sources */,
+ 261516D615B0E60500A2C201 /* SetAndUpdateCacheModel.mm in Sources */,
+ 52B8CF9615868CF000281053 /* SetDocumentURI.mm in Sources */,
+ 51FCF79A1534AC6D00104491 /* ShouldGoToBackForwardListItem.cpp in Sources */,
+ C540F776152E4DA000A40C8C /* SimplifyMarkup.mm in Sources */,
+ C02B77F2126612140026BF0F /* SpacebarScrolling.cpp in Sources */,
+ 81B50193140F232300D9EB58 /* StringBuilder.cpp in Sources */,
+ 3799AD3A14120A43005EB0C6 /* StringByEvaluatingJavaScriptFromString.mm in Sources */,
+ 26F1B44515CA434F00D1E4BF /* StringImpl.cpp in Sources */,
+ C01363C813C3997300EF3964 /* StringOperators.cpp in Sources */,
+ 37A6895F148A9B50005100FA /* SubresourceErrorCrash.mm in Sources */,
+ C081224513FC19EC00DC39AE /* SyntheticBackingScaleFactorWindow.m in Sources */,
+ 0BCD856A1485C98B00EA2003 /* TemporaryChange.cpp in Sources */,
+ BC131AA9117131FC00B69727 /* TestsController.cpp in Sources */,
E490296814E2E3A4002BEDD1 /* TypingStyleCrash.mm in Sources */,
- 379028B614FABD92007E6B43 /* AcceptsFirstMouse.mm in Sources */,
- 3776BC63150946BC0043A66D /* DeviceScaleFactorInDashboardRegions.mm in Sources */,
- B55F11A01516834F00915916 /* AttributedString.mm in Sources */,
- 517E7DFC15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm in Sources */,
+ BC22D31514DC689800FFB1DD /* UserMessage.cpp in Sources */,
+ BC90964C125561BF00083756 /* VectorBasic.cpp in Sources */,
+ BC55F5F914AD78EE00484BE1 /* Vector.cpp in Sources */,
+ 37200B9213A16230007A4FAD /* VectorReverse.cpp in Sources */,
+ 520BCF4D141EB09E00937EA8 /* WebArchive.cpp in Sources */,
+ 0F17BBD615AF6C4D007AB753 /* WebCoreStatisticsWithNoWebProcess.cpp in Sources */,
+ C08587BF13FE956C001EF4E5 /* WebKitAgnosticTest.mm in Sources */,
51FBBB4D1513D4E900822738 /* WebViewCanPasteURL.mm in Sources */,
- 5142B2711517C88B00C32B19 /* ContextMenuCanCopyURL.mm in Sources */,
- C540F776152E4DA000A40C8C /* SimplifyMarkup.mm in Sources */,
- 51FCF79A1534AC6D00104491 /* ShouldGoToBackForwardListItem.cpp in Sources */,
- 51393E201523944A005F39C5 /* DOMWindowExtensionBasic.cpp in Sources */,
76E182DA1547550100F1FADD /* WillSendSubmitEvent.cpp in Sources */,
- E1220DA0155B25480013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.mm in Sources */,
- F6F49C6915545C8E0007F39D /* DOMWindowExtensionNoCache.cpp in Sources */,
- 51E93017156B13E1004C99DF /* WKPageGetScaleFactorNotZero.cpp in Sources */,
- 52B8CF9615868CF000281053 /* SetDocumentURI.mm in Sources */,
- 9B26FC6C159D061000CC3765 /* HTMLFormCollectionNamedItem.mm in Sources */,
- 9B4F8FA4159D52B1002D9F94 /* HTMLCollectionNamedItem.mm in Sources */,
- 26DF5A5E15A29BAA003689C2 /* CancelLoadFromResourceLoadDelegate.mm in Sources */,
- F660AA0D15A5F061003A1243 /* GetInjectedBundleInitializationUserDataCallback.cpp in Sources */,
- F660AA1315A619C9003A1243 /* InjectedBundleInitializationUserDataCallbackWins.cpp in Sources */,
- 0F17BBD615AF6C4D007AB753 /* WebCoreStatisticsWithNoWebProcess.cpp in Sources */,
- 261516D615B0E60500A2C201 /* SetAndUpdateCacheModel.mm in Sources */,
A5E2027315B2181900C13E14 /* WindowlessWebViewWithMedia.mm in Sources */,
- 26B2DFF915BDE599004F691D /* HashSet.cpp in Sources */,
- 00CD9F6315BE312C002DA2CE /* BackForwardList.mm in Sources */,
- CD5497B415857F0C00B5BC30 /* MediaTime.cpp in Sources */,
+ BC3C4C7F14587AA60025FB62 /* WKBrowsingContextGroupTest.mm in Sources */,
+ BC3C4C7214575B6A0025FB62 /* WKBrowsingContextLoadDelegateTest.mm in Sources */,
+ BC901E241492ADCE0074A667 /* WKConnection.cpp in Sources */,
+ 51E93017156B13E1004C99DF /* WKPageGetScaleFactorNotZero.cpp in Sources */,
+ BC7B61AA129A038700D174A4 /* WKPreferences.cpp in Sources */,
+ BC90995E12567BC100083756 /* WKString.cpp in Sources */,
+ BC9099941256ACF100083756 /* WKStringJSString.cpp in Sources */,
265AF55015D1E48A00B0CB4A /* WTFString.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
diff --git a/Tools/TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp b/Tools/TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp
new file mode 100644
index 000000000..e854e256e
--- /dev/null
+++ b/Tools/TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2012, Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "limits.h"
+#include <wtf/SaturatedArithmetic.h>
+
+namespace TestWebKitAPI {
+
+TEST(WTF, SaturatedArithmeticAddition)
+{
+ ASSERT_EQ(saturatedAddition(0, 0), 0);
+ ASSERT_EQ(saturatedAddition(0, 1), 1);
+ ASSERT_EQ(saturatedAddition(0, 100), 100);
+ ASSERT_EQ(saturatedAddition(100, 50), 150);
+
+ ASSERT_EQ(saturatedAddition(0, -1), -1);
+ ASSERT_EQ(saturatedAddition(1, -1), 0);
+ ASSERT_EQ(saturatedAddition(100, -50), 50);
+ ASSERT_EQ(saturatedAddition(50, -100), -50);
+
+ ASSERT_EQ(saturatedAddition(INT_MAX - 1, 0), INT_MAX - 1);
+ ASSERT_EQ(saturatedAddition(INT_MAX - 1, 1), INT_MAX);
+ ASSERT_EQ(saturatedAddition(INT_MAX - 1, 2), INT_MAX);
+ ASSERT_EQ(saturatedAddition(0, INT_MAX - 1), INT_MAX - 1);
+ ASSERT_EQ(saturatedAddition(1, INT_MAX - 1), INT_MAX);
+ ASSERT_EQ(saturatedAddition(2, INT_MAX - 1), INT_MAX);
+ ASSERT_EQ(saturatedAddition(INT_MAX - 1, INT_MAX - 1), INT_MAX);
+ ASSERT_EQ(saturatedAddition(INT_MAX, INT_MAX), INT_MAX);
+
+ ASSERT_EQ(saturatedAddition(INT_MIN, 0), INT_MIN);
+ ASSERT_EQ(saturatedAddition(INT_MIN + 1, 0), INT_MIN + 1);
+ ASSERT_EQ(saturatedAddition(INT_MIN + 1, 1), INT_MIN + 2);
+ ASSERT_EQ(saturatedAddition(INT_MIN + 1, 2), INT_MIN + 3);
+ ASSERT_EQ(saturatedAddition(INT_MIN + 1, -1), INT_MIN);
+ ASSERT_EQ(saturatedAddition(INT_MIN + 1, -2), INT_MIN);
+ ASSERT_EQ(saturatedAddition(0, INT_MIN + 1), INT_MIN + 1);
+ ASSERT_EQ(saturatedAddition(-1, INT_MIN + 1), INT_MIN);
+ ASSERT_EQ(saturatedAddition(-2, INT_MIN + 1), INT_MIN);
+
+ ASSERT_EQ(saturatedAddition(INT_MAX / 2, 10000), INT_MAX / 2 + 10000);
+ ASSERT_EQ(saturatedAddition(INT_MAX / 2 + 1, INT_MAX / 2 + 1), INT_MAX);
+ ASSERT_EQ(saturatedAddition(INT_MIN, INT_MAX), -1);
+}
+
+TEST(WTF, SaturatedArithmeticSubtraction)
+{
+ ASSERT_EQ(saturatedSubtraction(0, 0), 0);
+ ASSERT_EQ(saturatedSubtraction(0, 1), -1);
+ ASSERT_EQ(saturatedSubtraction(0, 100), -100);
+ ASSERT_EQ(saturatedSubtraction(100, 50), 50);
+
+ ASSERT_EQ(saturatedSubtraction(0, -1), 1);
+ ASSERT_EQ(saturatedSubtraction(1, -1), 2);
+ ASSERT_EQ(saturatedSubtraction(100, -50), 150);
+ ASSERT_EQ(saturatedSubtraction(50, -100), 150);
+
+ ASSERT_EQ(saturatedSubtraction(INT_MAX, 0), INT_MAX);
+ ASSERT_EQ(saturatedSubtraction(INT_MAX, 1), INT_MAX - 1);
+ ASSERT_EQ(saturatedSubtraction(INT_MAX - 1, 0), INT_MAX - 1);
+ ASSERT_EQ(saturatedSubtraction(INT_MAX - 1, -1), INT_MAX);
+ ASSERT_EQ(saturatedSubtraction(INT_MAX - 1, -2), INT_MAX);
+ ASSERT_EQ(saturatedSubtraction(0, INT_MAX - 1), -INT_MAX + 1);
+ ASSERT_EQ(saturatedSubtraction(-1, INT_MAX - 1), -INT_MAX);
+ ASSERT_EQ(saturatedSubtraction(-2, INT_MAX - 1), -INT_MAX - 1);
+ ASSERT_EQ(saturatedSubtraction(-3, INT_MAX - 1), -INT_MAX - 1);
+
+ ASSERT_EQ(saturatedSubtraction(INT_MIN, 0), INT_MIN);
+ ASSERT_EQ(saturatedSubtraction(INT_MIN + 1, 0), INT_MIN + 1);
+ ASSERT_EQ(saturatedSubtraction(INT_MIN + 1, 1), INT_MIN);
+ ASSERT_EQ(saturatedSubtraction(INT_MIN + 1, 2), INT_MIN);
+
+ ASSERT_EQ(saturatedSubtraction(INT_MIN, INT_MIN), 0);
+ ASSERT_EQ(saturatedSubtraction(INT_MAX, INT_MAX), 0);
+ ASSERT_EQ(saturatedSubtraction(INT_MAX, INT_MIN), INT_MAX);
+}
+
+} // namespace TestWebKitAPI
diff --git a/Tools/TestWebKitAPI/win/TestWebKitAPI.vcproj b/Tools/TestWebKitAPI/win/TestWebKitAPI.vcproj
index a941cd686..01c94b570 100644
--- a/Tools/TestWebKitAPI/win/TestWebKitAPI.vcproj
+++ b/Tools/TestWebKitAPI/win/TestWebKitAPI.vcproj
@@ -656,6 +656,10 @@
>
</File>
<File
+ RelativePath="..\Tests\WTF\SaturatedArithmeticOperations.cpp"
+ >
+ </File>
+ <File
RelativePath="..\Tests\WTF\StringOperators.cpp"
>
</File>
diff --git a/configure.ac b/configure.ac
index 28f9af88b..206f18cec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
AC_PREREQ(2.60)
m4_define([webkit_major_version], [1])
-m4_define([webkit_minor_version], [9])
-m4_define([webkit_micro_version], [6])
+m4_define([webkit_minor_version], [11])
+m4_define([webkit_micro_version], [0])
# This is the version we'll be using as part of our User-Agent string
# e.g., AppleWebKit/$(webkit_user_agent_version) ...
@@ -11,7 +11,7 @@ m4_define([webkit_micro_version], [6])
m4_define([webkit_user_agent_major_version], [537])
m4_define([webkit_user_agent_minor_version], [4])
-AC_INIT([WebKit],[webkit_major_version.webkit_minor_version.webkit_micro_version],[http://bugs.webkit.org/])
+AC_INIT([WebKitGTK],[webkit_major_version.webkit_minor_version.webkit_micro_version],[http://bugs.webkit.org/])
AC_CONFIG_MACRO_DIR([Source/autotools])
AC_CONFIG_AUX_DIR([Source/autotools])
diff --git a/wscript b/wscript
index a6676132d..83fe505d4 100644
--- a/wscript
+++ b/wscript
@@ -169,6 +169,7 @@ def build(bld):
os.path.join(wk_root, 'Source', 'JavaScriptCore'),
os.path.join(wk_root, 'Source', 'WebCore'),
os.path.join(wk_root, 'Source', 'WebCore', 'DerivedSources'),
+ os.path.join(wk_root, 'Source', 'WebCore', 'platform', 'graphics', 'opentype'),
os.path.join(wk_root, 'Source', 'WebCore', 'platform', 'image-decoders'),
os.path.join(wk_root, 'Source', 'WebCore', 'platform', 'win'),
os.path.join(wk_root, 'Source', 'WebCore', 'workers'),
@@ -238,9 +239,7 @@ def build(bld):
'Source/WebCore/platform/graphics/cg/FloatSizeCG.cpp',
'Source/WebCore/platform/graphics/mac/ComplexTextController.cpp',
'Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm',
- 'Source/WebCore/platform/graphics/mac/ComplexTextControllerATSUI.cpp',
'Source/WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp',
- 'Source/WebCore/platform/graphics/mac/SimpleFontDataATSUI.mm',
'Source/WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp',
'Source/WebCore/platform/graphics/wx/FontPlatformDataWxMac.mm',
'Source/WebCore/platform/wx/wxcode/mac/carbon/fontprops.mm',
@@ -382,6 +381,9 @@ def build(bld):
excludes.append('WebNativeNodeFilterCondition.cpp')
excludes.append('WebDOMNodeFilterCustom.cpp')
+ # don't compile for now until we figure out the issue with using DOMStringList
+ excludes.append('WebDOMInternals.cpp')
+
# this file is unused by any port, not sure why it was
# left in the tree
excludes.append('GeneratedImage.cpp')